diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/acinclude.m4 ./bfd/acinclude.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/acinclude.m4	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/acinclude.m4	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 dnl
-dnl   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+dnl   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 dnl
 dnl This file is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aix386-core.c ./bfd/aix386-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aix386-core.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/aix386-core.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,7 +1,7 @@
 /* BFD back-end for AIX on PS/2 core files.
    This was based on trad-core.c, which was written by John Gilmore of
-        Cygnus Support.
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+	Cygnus Support.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
    Written by Minh Tran-Le <TRANLE@INTELLICORP.COM>.
    Converted to back end form by Ian Lance Taylor <ian@cygnus.com>.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aix5ppc-core.c ./bfd/aix5ppc-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aix5ppc-core.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/aix5ppc-core.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* IBM RS/6000 "XCOFF" back-end for BFD.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    Written by Tom Rix
    Contributed by Red Hat Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout0.c ./bfd/aout0.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout0.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/aout0.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD backend for SunOS style a.out with flags set to 0
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout32.c ./bfd/aout32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout32.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/aout32.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for 32-bit a.out files.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout64.c ./bfd/aout64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/aout64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for 64-bit a.out files.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout-adobe.c ./bfd/aout-adobe.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout-adobe.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/aout-adobe.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for a.out.adobe binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.  Based on bout.c.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -452,28 +452,30 @@ aout_adobe_sizeof_headers (bfd *ignore_a
 #define aout_32_bfd_make_debug_symbol		    _bfd_nosymbols_bfd_make_debug_symbol
 #define aout_32_bfd_reloc_type_lookup		    _bfd_norelocs_bfd_reloc_type_lookup
 #define aout_32_bfd_reloc_name_lookup		    _bfd_norelocs_bfd_reloc_name_lookup
-#define aout_32_close_and_cleanup                   aout_32_bfd_free_cached_info
-#define	aout_32_set_arch_mach		            aout_adobe_set_arch_mach
-#define	aout_32_set_section_contents	            aout_adobe_set_section_contents
-#define	aout_32_sizeof_headers		            aout_adobe_sizeof_headers
+#define aout_32_close_and_cleanup		    aout_32_bfd_free_cached_info
+#define	aout_32_set_arch_mach			    aout_adobe_set_arch_mach
+#define	aout_32_set_section_contents		    aout_adobe_set_section_contents
+#define	aout_32_sizeof_headers			    aout_adobe_sizeof_headers
 #define aout_32_bfd_get_relocated_section_contents  bfd_generic_get_relocated_section_contents
-#define aout_32_get_section_contents_in_window      _bfd_generic_get_section_contents_in_window
-#define aout_32_bfd_relax_section                   bfd_generic_relax_section
-#define aout_32_bfd_gc_sections                     bfd_generic_gc_sections
+#define aout_32_get_section_contents_in_window	    _bfd_generic_get_section_contents_in_window
+#define aout_32_bfd_relax_section		    bfd_generic_relax_section
+#define aout_32_bfd_gc_sections			    bfd_generic_gc_sections
 #define aout_32_bfd_lookup_section_flags	    bfd_generic_lookup_section_flags
-#define aout_32_bfd_merge_sections	            bfd_generic_merge_sections
-#define aout_32_bfd_is_group_section	            bfd_generic_is_group_section
-#define aout_32_bfd_discard_group	            bfd_generic_discard_group
-#define aout_32_section_already_linked              _bfd_generic_section_already_linked
-#define aout_32_bfd_define_common_symbol            bfd_generic_define_common_symbol
-#define aout_32_bfd_link_hash_table_create          _bfd_generic_link_hash_table_create
-#define aout_32_bfd_link_add_symbols	            _bfd_generic_link_add_symbols
-#define aout_32_bfd_link_just_syms	            _bfd_generic_link_just_syms
+#define aout_32_bfd_merge_sections		    bfd_generic_merge_sections
+#define aout_32_bfd_is_group_section		    bfd_generic_is_group_section
+#define aout_32_bfd_discard_group		    bfd_generic_discard_group
+#define aout_32_section_already_linked		    _bfd_generic_section_already_linked
+#define aout_32_bfd_define_common_symbol	    bfd_generic_define_common_symbol
+#define aout_32_bfd_define_start_stop		    bfd_generic_define_start_stop
+#define aout_32_bfd_link_hash_table_create	    _bfd_generic_link_hash_table_create
+#define aout_32_bfd_link_add_symbols		    _bfd_generic_link_add_symbols
+#define aout_32_bfd_link_just_syms		    _bfd_generic_link_just_syms
 #define aout_32_bfd_copy_link_hash_symbol_type \
   _bfd_generic_copy_link_hash_symbol_type
-#define aout_32_bfd_final_link		            _bfd_generic_final_link
-#define aout_32_bfd_link_split_section	            _bfd_generic_link_split_section
-#define aout_32_bfd_link_check_relocs               _bfd_generic_link_check_relocs
+#define aout_32_bfd_final_link			    _bfd_generic_final_link
+#define aout_32_bfd_link_split_section		    _bfd_generic_link_split_section
+#define aout_32_bfd_link_check_relocs		    _bfd_generic_link_check_relocs
+#define aout_32_set_reloc			    _bfd_generic_set_reloc
 
 const bfd_target aout_adobe_vec =
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout-arm.c ./bfd/aout-arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout-arm.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/aout-arm.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for raw ARM a.out binaries.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -44,8 +44,8 @@
 
 #define MY(OP) CONCAT2 (arm_aout_,OP)
 #define N_BADMAG(x) ((((x)->a_info & ~007200) != ZMAGIC) && \
-                     (((x)->a_info & ~006000) != OMAGIC) && \
-                     ((x)->a_info != NMAGIC))
+		     (((x)->a_info & ~006000) != OMAGIC) && \
+		     ((x)->a_info != NMAGIC))
 #define N_MAGIC(x) ((x)->a_info & ~07200)
 
 #define MY_bfd_reloc_type_lookup arm_aout_bfd_reloc_type_lookup
@@ -111,7 +111,7 @@ MY (reloc_howto) (bfd *abfd,
 		       | rel->r_index[2]);
       *r_extern    = (0 != (rel->r_type[0] & RELOC_STD_BITS_EXTERN_BIG));
       r_pcrel_done = (0 != (rel->r_type[0] & RELOC_STD_BITS_PCREL_BIG));
-      r_neg 	   = (0 != (rel->r_type[0] & RELOC_ARM_BITS_NEG_BIG));
+      r_neg	   = (0 != (rel->r_type[0] & RELOC_ARM_BITS_NEG_BIG));
       r_length     = ((rel->r_type[0] & RELOC_STD_BITS_LENGTH_BIG)
 		      >> RELOC_STD_BITS_LENGTH_SH_BIG);
     }
@@ -122,7 +122,7 @@ MY (reloc_howto) (bfd *abfd,
 		      | rel->r_index[0]);
       *r_extern    = (0 != (rel->r_type[0] & RELOC_STD_BITS_EXTERN_LITTLE));
       r_pcrel_done = (0 != (rel->r_type[0] & RELOC_STD_BITS_PCREL_LITTLE));
-      r_neg 	   = (0 != (rel->r_type[0] & RELOC_ARM_BITS_NEG_LITTLE));
+      r_neg	   = (0 != (rel->r_type[0] & RELOC_ARM_BITS_NEG_LITTLE));
       r_length     = ((rel->r_type[0] & RELOC_STD_BITS_LENGTH_LITTLE)
 		      >> RELOC_STD_BITS_LENGTH_SH_LITTLE);
     }
@@ -156,7 +156,7 @@ MY (put_reloc) (bfd *abfd,
   if (howto->type == 3 || howto->type == 7)
     r_length = 3;
 
-  r_pcrel  = howto->type & 4; 	/* PC Relative done?  */
+  r_pcrel  = howto->type & 4;	/* PC Relative done?  */
   r_neg = howto->type & 8;	/* Negative relocation.  */
 
   if (bfd_header_big_endian (abfd))
@@ -298,8 +298,8 @@ MY (bfd_reloc_type_lookup) (bfd *abfd,
     switch (bfd_arch_bits_per_address (abfd))
       {
       case 32:
-        code = BFD_RELOC_32;
-        break;
+	code = BFD_RELOC_32;
+	break;
       default:
 	return NULL;
       }
@@ -465,17 +465,17 @@ extern const bfd_target arm_aout_be_vec;
 
 const bfd_target arm_aout_le_vec =
 {
-  "a.out-arm-little",           /* Name.  */
+  "a.out-arm-little",		/* Name.  */
   bfd_target_aout_flavour,
-  BFD_ENDIAN_LITTLE,            /* Target byte order (little).  */
-  BFD_ENDIAN_LITTLE,            /* Target headers byte order (little).  */
-  (HAS_RELOC | EXEC_P |         /* Object flags.  */
+  BFD_ENDIAN_LITTLE,		/* Target byte order (little).  */
+  BFD_ENDIAN_LITTLE,		/* Target headers byte order (little).  */
+  (HAS_RELOC | EXEC_P |		/* Object flags.  */
    HAS_LINENO | HAS_DEBUG |
    HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED),
   (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA),
   MY_symbol_leading_char,
-  AR_PAD_CHAR,                  /* AR_pad_char.  */
-  15,                           /* AR_max_namelen.  */
+  AR_PAD_CHAR,			/* AR_pad_char.  */
+  15,				/* AR_max_namelen.  */
   0,				/* match priority.  */
   bfd_getl64, bfd_getl_signed_64, bfd_putl64,
   bfd_getl32, bfd_getl_signed_32, bfd_putl32,
@@ -507,11 +507,11 @@ const bfd_target arm_aout_le_vec =
 
 const bfd_target arm_aout_be_vec =
 {
-  "a.out-arm-big",              /* Name.  */
+  "a.out-arm-big",		/* Name.  */
   bfd_target_aout_flavour,
-  BFD_ENDIAN_BIG,               /* Target byte order (big).  */
-  BFD_ENDIAN_BIG,               /* Target headers byte order (big).  */
-  (HAS_RELOC | EXEC_P |         /* Object flags.  */
+  BFD_ENDIAN_BIG,		/* Target byte order (big).  */
+  BFD_ENDIAN_BIG,		/* Target headers byte order (big).  */
+  (HAS_RELOC | EXEC_P |		/* Object flags.  */
    HAS_LINENO | HAS_DEBUG |
    HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED),
   (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_CODE | SEC_DATA),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout-cris.c ./bfd/aout-cris.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout-cris.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/aout-cris.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD backend for CRIS a.out binaries.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Axis Communications AB.
    Written by Hans-Peter Nilsson.
 
@@ -24,7 +24,7 @@
    functions.  Beware; some of the information there is outdated.  */
 
 #define N_HEADER_IN_TEXT(x) 0
-#define N_TXTOFF(x)         32
+#define N_TXTOFF(x)	    32
 #define ENTRY_CAN_BE_ZERO
 #define TEXT_START_ADDR     0
 
@@ -253,7 +253,7 @@ MY (swap_ext_reloc_in) (bfd *abfd,
     {
       _bfd_error_handler
 	/* xgettext:c-format */
-        (_("%B: Bad relocation record imported: %d"), abfd, r_index);
+	(_("%B: Bad relocation record imported: %d"), abfd, r_index);
 
       bfd_set_error (bfd_error_wrong_format);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aoutf1.h ./bfd/aoutf1.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aoutf1.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/aoutf1.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* A.out "format 1" file handling code for BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -775,7 +775,7 @@ static const struct aout_backend_data su
   MY_finish_dynamic_link
 };
 
-#define	MY_core_file_failing_command 	sunos4_core_file_failing_command
+#define	MY_core_file_failing_command	sunos4_core_file_failing_command
 #define	MY_core_file_failing_signal	sunos4_core_file_failing_signal
 #define	MY_core_file_matches_executable_p sunos4_core_file_matches_executable_p
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout-ns32k.c ./bfd/aout-ns32k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout-ns32k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/aout-ns32k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for ns32k a.out-ish binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Contributed by Ian Dall (idall@eleceng.adelaide.edu.au).
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -31,7 +31,7 @@
 
 reloc_howto_type * MYNS (bfd_reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
 reloc_howto_type * MYNS (bfd_reloc_name_lookup) (bfd *, const char *);
-bfd_boolean        MYNS (write_object_contents) (bfd *);
+bfd_boolean	   MYNS (write_object_contents) (bfd *);
 
 /* Avoid multiple definitions from aoutx if supporting
    standard a.out format(s) as well as this one.  */
@@ -67,10 +67,10 @@ void bfd_ns32k_arch (void);
    sym1: .long foo	 # 2's complement not pc relative
 
    self:  movd @self, r0 # pc relative displacement
-          movd foo, r0   # non pc relative displacement
+	  movd foo, r0   # non pc relative displacement
 
    self:  movd self, r0  # pc relative immediate
-          movd foo, r0   # non pc relative immediate
+	  movd foo, r0   # non pc relative immediate
 
    In addition, for historical reasons the encoding of the relocation types
    in the a.out format relocation entries is such that even the relocation
@@ -135,10 +135,10 @@ reloc_howto_type MY (howto_table)[] =
 
 #define CTOR_TABLE_RELOC_HOWTO(BFD) (MY (howto_table) + 14)
 
-#define RELOC_STD_BITS_NS32K_TYPE_BIG 		0x06
-#define RELOC_STD_BITS_NS32K_TYPE_LITTLE 	0x60
-#define RELOC_STD_BITS_NS32K_TYPE_SH_BIG 	1
-#define RELOC_STD_BITS_NS32K_TYPE_SH_LITTLE 	5
+#define RELOC_STD_BITS_NS32K_TYPE_BIG		0x06
+#define RELOC_STD_BITS_NS32K_TYPE_LITTLE	0x60
+#define RELOC_STD_BITS_NS32K_TYPE_SH_BIG	1
+#define RELOC_STD_BITS_NS32K_TYPE_SH_LITTLE	5
 
 static reloc_howto_type *
 MY (reloc_howto) (bfd *abfd ATTRIBUTE_UNUSED,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout-sparcle.c ./bfd/aout-sparcle.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout-sparcle.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/aout-sparcle.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD backend for sparc little-endian aout binaries.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout-target.h ./bfd/aout-target.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout-target.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/aout-target.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Define a target vector and some small routines for a variant of a.out.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -450,6 +450,9 @@ MY_bfd_final_link (bfd *abfd, struct bfd
 #ifndef MY_canonicalize_reloc
 #define MY_canonicalize_reloc NAME (aout, canonicalize_reloc)
 #endif
+#ifndef MY_set_reloc
+#define MY_set_reloc _bfd_generic_set_reloc
+#endif
 #ifndef MY_make_empty_symbol
 #define MY_make_empty_symbol NAME (aout, make_empty_symbol)
 #endif
@@ -510,6 +513,9 @@ MY_bfd_final_link (bfd *abfd, struct bfd
 #ifndef MY_bfd_define_common_symbol
 #define MY_bfd_define_common_symbol bfd_generic_define_common_symbol
 #endif
+#ifndef MY_bfd_define_start_stop
+#define MY_bfd_define_start_stop bfd_generic_define_start_stop
+#endif
 #ifndef MY_bfd_reloc_type_lookup
 #define MY_bfd_reloc_type_lookup NAME (aout, reloc_type_lookup)
 #endif
@@ -663,11 +669,11 @@ const bfd_target MY (vec) =
      bfd_getl32, bfd_getl_signed_32, bfd_putl32,
      bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Headers.  */
 #endif
-    {_bfd_dummy_target, MY_object_p, 		/* bfd_check_format.  */
+    {_bfd_dummy_target, MY_object_p,		/* bfd_check_format.  */
        bfd_generic_archive_p, MY_core_file_p},
     {bfd_false, MY_mkobject,			/* bfd_set_format.  */
        _bfd_generic_mkarchive, bfd_false},
-    {bfd_false, MY_write_object_contents, 	/* bfd_write_contents.  */
+    {bfd_false, MY_write_object_contents,	/* bfd_write_contents.  */
        _bfd_write_archive_contents, bfd_false},
 
      BFD_JUMP_TABLE_GENERIC (MY),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout-tic30.c ./bfd/aout-tic30.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aout-tic30.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/aout-tic30.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for TMS320C30 a.out binaries.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
    Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au)
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -21,10 +21,10 @@
 
 #define TARGET_IS_BIG_ENDIAN_P
 #define N_HEADER_IN_TEXT(x)	1
-#define TEXT_START_ADDR 	1024
-#define TARGET_PAGE_SIZE 	128
-#define SEGMENT_SIZE   		TARGET_PAGE_SIZE
-#define DEFAULT_ARCH 		bfd_arch_tic30
+#define TEXT_START_ADDR		1024
+#define TARGET_PAGE_SIZE	128
+#define SEGMENT_SIZE		TARGET_PAGE_SIZE
+#define DEFAULT_ARCH		bfd_arch_tic30
 #define ARCH_SIZE 32
 
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
@@ -43,11 +43,11 @@
 
 #define MY_reloc_howto(BFD, REL, IN, EX, PC)   tic30_aout_reloc_howto (BFD, REL, & IN, & EX, & PC)
 
-#define MY_final_link_relocate    tic30_aout_final_link_relocate
-#define MY_object_p               tic30_aout_object_p
-#define MY_mkobject               NAME (aout,mkobject)
+#define MY_final_link_relocate	  tic30_aout_final_link_relocate
+#define MY_object_p		  tic30_aout_object_p
+#define MY_mkobject		  NAME (aout,mkobject)
 #define MY_write_object_contents  tic30_aout_write_object_contents
-#define MY_set_sizes              tic30_aout_set_sizes
+#define MY_set_sizes		  tic30_aout_set_sizes
 
 #ifndef MY_exec_hdr_flags
 #define MY_exec_hdr_flags 1
@@ -324,9 +324,9 @@ tic30_aout_reloc_howto (bfd *abfd,
  (bfd_get_8 (BFD, ADDR + 2)      )
 
 #define bfd_putb_24(BFD,DATA,ADDR)				\
- bfd_put_8 (BFD, (bfd_byte) ((DATA >> 16) & 0xFF), ADDR    );	\
+ bfd_put_8 (BFD, (bfd_byte) ((DATA >> 16) & 0xFF), ADDR	   );	\
  bfd_put_8 (BFD, (bfd_byte) ((DATA >>  8) & 0xFF), ADDR + 1);	\
- bfd_put_8 (BFD, (bfd_byte) ( DATA        & 0xFF), ADDR + 2)
+ bfd_put_8 (BFD, (bfd_byte) ( DATA	  & 0xFF), ADDR + 2)
 
 /* Set parameters about this a.out file that are machine-dependent.
    This routine is called from some_aout_object_p just before it returns.  */
@@ -840,12 +840,12 @@ tic30_aout_set_arch_mach (bfd *abfd,
 #define	MY_truncate_arname		bfd_bsd_truncate_arname
 #endif
 #ifndef MY_update_armap_timestamp
-#define MY_update_armap_timestamp 	_bfd_archive_bsd_update_armap_timestamp
+#define MY_update_armap_timestamp	_bfd_archive_bsd_update_armap_timestamp
 #endif
 
 /* No core file defined here -- configure in trad-core.c separately.  */
 #ifndef	MY_core_file_failing_command
-#define	MY_core_file_failing_command 	_bfd_nocore_core_file_failing_command
+#define	MY_core_file_failing_command	_bfd_nocore_core_file_failing_command
 #endif
 #ifndef	MY_core_file_failing_signal
 #define	MY_core_file_failing_signal	_bfd_nocore_core_file_failing_signal
@@ -855,7 +855,7 @@ tic30_aout_set_arch_mach (bfd *abfd,
 				_bfd_nocore_core_file_matches_executable_p
 #endif
 #ifndef	MY_core_file_pid
-#define	MY_core_file_pid  		_bfd_nocore_core_file_pid
+#define	MY_core_file_pid		_bfd_nocore_core_file_pid
 #endif
 #ifndef	MY_core_file_p
 #define	MY_core_file_p			_bfd_dummy_target
@@ -905,6 +905,9 @@ tic30_aout_set_arch_mach (bfd *abfd,
 #ifndef MY_canonicalize_reloc
 #define MY_canonicalize_reloc NAME (aout, canonicalize_reloc)
 #endif
+#ifndef MY_set_reloc
+#define MY_set_reloc _bfd_generic_set_reloc
+#endif
 #ifndef MY_make_empty_symbol
 #define MY_make_empty_symbol NAME (aout, make_empty_symbol)
 #endif
@@ -965,6 +968,9 @@ tic30_aout_set_arch_mach (bfd *abfd,
 #ifndef MY_bfd_define_common_symbol
 #define MY_bfd_define_common_symbol bfd_generic_define_common_symbol
 #endif
+#ifndef MY_bfd_define_start_stop
+#define MY_bfd_define_start_stop bfd_generic_define_start_stop
+#endif
 #ifndef MY_bfd_reloc_type_lookup
 #define MY_bfd_reloc_type_lookup tic30_aout_reloc_type_lookup
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aoutx.h ./bfd/aoutx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/aoutx.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/aoutx.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD semi-generic back-end for a.out binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -178,59 +178,59 @@ DESCRIPTION
 
 reloc_howto_type howto_table_ext[] =
 {
-  /*     Type         rs   size bsz  pcrel bitpos ovrf                  sf name          part_inpl readmask setmask pcdone.  */
-  HOWTO (RELOC_8,       0,  0,  8,  FALSE, 0, complain_overflow_bitfield, 0, "8",           FALSE, 0, 0x000000ff, FALSE),
-  HOWTO (RELOC_16,      0,  1, 	16, FALSE, 0, complain_overflow_bitfield, 0, "16",          FALSE, 0, 0x0000ffff, FALSE),
-  HOWTO (RELOC_32,      0,  2, 	32, FALSE, 0, complain_overflow_bitfield, 0, "32",          FALSE, 0, 0xffffffff, FALSE),
-  HOWTO (RELOC_DISP8,   0,  0, 	8,  TRUE,  0, complain_overflow_signed,   0, "DISP8", 	    FALSE, 0, 0x000000ff, FALSE),
-  HOWTO (RELOC_DISP16,  0,  1, 	16, TRUE,  0, complain_overflow_signed,   0, "DISP16", 	    FALSE, 0, 0x0000ffff, FALSE),
-  HOWTO (RELOC_DISP32,  0,  2, 	32, TRUE,  0, complain_overflow_signed,   0, "DISP32", 	    FALSE, 0, 0xffffffff, FALSE),
-  HOWTO (RELOC_WDISP30, 2,  2, 	30, TRUE,  0, complain_overflow_signed,   0, "WDISP30",     FALSE, 0, 0x3fffffff, FALSE),
-  HOWTO (RELOC_WDISP22, 2,  2, 	22, TRUE,  0, complain_overflow_signed,   0, "WDISP22",     FALSE, 0, 0x003fffff, FALSE),
-  HOWTO (RELOC_HI22,   10,  2, 	22, FALSE, 0, complain_overflow_bitfield, 0, "HI22",	    FALSE, 0, 0x003fffff, FALSE),
-  HOWTO (RELOC_22,      0,  2, 	22, FALSE, 0, complain_overflow_bitfield, 0, "22",          FALSE, 0, 0x003fffff, FALSE),
-  HOWTO (RELOC_13,      0,  2, 	13, FALSE, 0, complain_overflow_bitfield, 0, "13",          FALSE, 0, 0x00001fff, FALSE),
-  HOWTO (RELOC_LO10,    0,  2, 	10, FALSE, 0, complain_overflow_dont,     0, "LO10",        FALSE, 0, 0x000003ff, FALSE),
-  HOWTO (RELOC_SFA_BASE,0,  2, 	32, FALSE, 0, complain_overflow_bitfield, 0, "SFA_BASE",    FALSE, 0, 0xffffffff, FALSE),
-  HOWTO (RELOC_SFA_OFF13,0, 2, 	32, FALSE, 0, complain_overflow_bitfield, 0, "SFA_OFF13",   FALSE, 0, 0xffffffff, FALSE),
-  HOWTO (RELOC_BASE10,  0,  2, 	10, FALSE, 0, complain_overflow_dont,     0, "BASE10",      FALSE, 0, 0x000003ff, FALSE),
-  HOWTO (RELOC_BASE13,  0,  2,	13, FALSE, 0, complain_overflow_signed,   0, "BASE13",      FALSE, 0, 0x00001fff, FALSE),
-  HOWTO (RELOC_BASE22, 10,  2,	22, FALSE, 0, complain_overflow_bitfield, 0, "BASE22",      FALSE, 0, 0x003fffff, FALSE),
-  HOWTO (RELOC_PC10,    0,  2,	10, TRUE,  0, complain_overflow_dont,     0, "PC10",	    FALSE, 0, 0x000003ff, TRUE),
-  HOWTO (RELOC_PC22,   10,  2,	22, TRUE,  0, complain_overflow_signed,   0, "PC22",  	    FALSE, 0, 0x003fffff, TRUE),
-  HOWTO (RELOC_JMP_TBL, 2,  2, 	30, TRUE,  0, complain_overflow_signed,   0, "JMP_TBL",     FALSE, 0, 0x3fffffff, FALSE),
+  /*	 Type	      rs   size bsz  pcrel bitpos ovrf			sf name		 part_inpl readmask setmask pcdone.  */
+  HOWTO (RELOC_8,	0,  0,	8,  FALSE, 0, complain_overflow_bitfield, 0, "8",	    FALSE, 0, 0x000000ff, FALSE),
+  HOWTO (RELOC_16,	0,  1,	16, FALSE, 0, complain_overflow_bitfield, 0, "16",	    FALSE, 0, 0x0000ffff, FALSE),
+  HOWTO (RELOC_32,	0,  2,	32, FALSE, 0, complain_overflow_bitfield, 0, "32",	    FALSE, 0, 0xffffffff, FALSE),
+  HOWTO (RELOC_DISP8,	0,  0,	8,  TRUE,  0, complain_overflow_signed,	  0, "DISP8",	    FALSE, 0, 0x000000ff, FALSE),
+  HOWTO (RELOC_DISP16,	0,  1,	16, TRUE,  0, complain_overflow_signed,	  0, "DISP16",	    FALSE, 0, 0x0000ffff, FALSE),
+  HOWTO (RELOC_DISP32,	0,  2,	32, TRUE,  0, complain_overflow_signed,	  0, "DISP32",	    FALSE, 0, 0xffffffff, FALSE),
+  HOWTO (RELOC_WDISP30, 2,  2,	30, TRUE,  0, complain_overflow_signed,	  0, "WDISP30",	    FALSE, 0, 0x3fffffff, FALSE),
+  HOWTO (RELOC_WDISP22, 2,  2,	22, TRUE,  0, complain_overflow_signed,	  0, "WDISP22",	    FALSE, 0, 0x003fffff, FALSE),
+  HOWTO (RELOC_HI22,   10,  2,	22, FALSE, 0, complain_overflow_bitfield, 0, "HI22",	    FALSE, 0, 0x003fffff, FALSE),
+  HOWTO (RELOC_22,	0,  2,	22, FALSE, 0, complain_overflow_bitfield, 0, "22",	    FALSE, 0, 0x003fffff, FALSE),
+  HOWTO (RELOC_13,	0,  2,	13, FALSE, 0, complain_overflow_bitfield, 0, "13",	    FALSE, 0, 0x00001fff, FALSE),
+  HOWTO (RELOC_LO10,	0,  2,	10, FALSE, 0, complain_overflow_dont,	  0, "LO10",	    FALSE, 0, 0x000003ff, FALSE),
+  HOWTO (RELOC_SFA_BASE,0,  2,	32, FALSE, 0, complain_overflow_bitfield, 0, "SFA_BASE",    FALSE, 0, 0xffffffff, FALSE),
+  HOWTO (RELOC_SFA_OFF13,0, 2,	32, FALSE, 0, complain_overflow_bitfield, 0, "SFA_OFF13",   FALSE, 0, 0xffffffff, FALSE),
+  HOWTO (RELOC_BASE10,	0,  2,	10, FALSE, 0, complain_overflow_dont,	  0, "BASE10",	    FALSE, 0, 0x000003ff, FALSE),
+  HOWTO (RELOC_BASE13,	0,  2,	13, FALSE, 0, complain_overflow_signed,	  0, "BASE13",	    FALSE, 0, 0x00001fff, FALSE),
+  HOWTO (RELOC_BASE22, 10,  2,	22, FALSE, 0, complain_overflow_bitfield, 0, "BASE22",	    FALSE, 0, 0x003fffff, FALSE),
+  HOWTO (RELOC_PC10,	0,  2,	10, TRUE,  0, complain_overflow_dont,	  0, "PC10",	    FALSE, 0, 0x000003ff, TRUE),
+  HOWTO (RELOC_PC22,   10,  2,	22, TRUE,  0, complain_overflow_signed,	  0, "PC22",	    FALSE, 0, 0x003fffff, TRUE),
+  HOWTO (RELOC_JMP_TBL, 2,  2,	30, TRUE,  0, complain_overflow_signed,	  0, "JMP_TBL",	    FALSE, 0, 0x3fffffff, FALSE),
   HOWTO (RELOC_SEGOFF16,0,  2,	0,  FALSE, 0, complain_overflow_bitfield, 0, "SEGOFF16",    FALSE, 0, 0x00000000, FALSE),
   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,  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),
+  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),
+  HOWTO (RELOC_SPARC_REV32, 0, 2, 32, FALSE, 0, complain_overflow_dont,	  0,"R_SPARC_REV32",FALSE, 0, 0xffffffff, FALSE),
 };
 
 /* Convert standard reloc records to "arelent" format (incl byte swap).  */
 
 reloc_howto_type howto_table_std[] =
 {
-  /* type              rs size bsz  pcrel bitpos ovrf                     sf name     part_inpl readmask  setmask    pcdone.  */
-HOWTO ( 0,	       0,  0,  	8,  FALSE, 0, complain_overflow_bitfield,0,"8",		TRUE, 0x000000ff,0x000000ff, FALSE),
-HOWTO ( 1,	       0,  1, 	16, FALSE, 0, complain_overflow_bitfield,0,"16",	TRUE, 0x0000ffff,0x0000ffff, FALSE),
-HOWTO ( 2,	       0,  2, 	32, FALSE, 0, complain_overflow_bitfield,0,"32",	TRUE, 0xffffffff,0xffffffff, FALSE),
-HOWTO ( 3,	       0,  4, 	64, FALSE, 0, complain_overflow_bitfield,0,"64",	TRUE, 0xdeaddead,0xdeaddead, FALSE),
-HOWTO ( 4,	       0,  0, 	8,  TRUE,  0, complain_overflow_signed,  0,"DISP8",	TRUE, 0x000000ff,0x000000ff, FALSE),
-HOWTO ( 5,	       0,  1, 	16, TRUE,  0, complain_overflow_signed,  0,"DISP16",	TRUE, 0x0000ffff,0x0000ffff, FALSE),
-HOWTO ( 6,	       0,  2, 	32, TRUE,  0, complain_overflow_signed,  0,"DISP32",	TRUE, 0xffffffff,0xffffffff, FALSE),
-HOWTO ( 7,	       0,  4, 	64, TRUE,  0, complain_overflow_signed,  0,"DISP64",	TRUE, 0xfeedface,0xfeedface, FALSE),
-HOWTO ( 8,	       0,  2,    0, FALSE, 0, complain_overflow_bitfield,0,"GOT_REL",	FALSE,         0,0x00000000, FALSE),
-HOWTO ( 9,	       0,  1,   16, FALSE, 0, complain_overflow_bitfield,0,"BASE16",	FALSE,0xffffffff,0xffffffff, FALSE),
-HOWTO (10,	       0,  2,   32, FALSE, 0, complain_overflow_bitfield,0,"BASE32",	FALSE,0xffffffff,0xffffffff, FALSE),
+  /* type	       rs size bsz  pcrel bitpos ovrf			  sf name     part_inpl readmask  setmask    pcdone.  */
+HOWTO ( 0,	       0,  0,	8,  FALSE, 0, complain_overflow_bitfield,0,"8",		TRUE, 0x000000ff,0x000000ff, FALSE),
+HOWTO ( 1,	       0,  1,	16, FALSE, 0, complain_overflow_bitfield,0,"16",	TRUE, 0x0000ffff,0x0000ffff, FALSE),
+HOWTO ( 2,	       0,  2,	32, FALSE, 0, complain_overflow_bitfield,0,"32",	TRUE, 0xffffffff,0xffffffff, FALSE),
+HOWTO ( 3,	       0,  4,	64, FALSE, 0, complain_overflow_bitfield,0,"64",	TRUE, 0xdeaddead,0xdeaddead, FALSE),
+HOWTO ( 4,	       0,  0,	8,  TRUE,  0, complain_overflow_signed,	 0,"DISP8",	TRUE, 0x000000ff,0x000000ff, FALSE),
+HOWTO ( 5,	       0,  1,	16, TRUE,  0, complain_overflow_signed,	 0,"DISP16",	TRUE, 0x0000ffff,0x0000ffff, FALSE),
+HOWTO ( 6,	       0,  2,	32, TRUE,  0, complain_overflow_signed,	 0,"DISP32",	TRUE, 0xffffffff,0xffffffff, FALSE),
+HOWTO ( 7,	       0,  4,	64, TRUE,  0, complain_overflow_signed,	 0,"DISP64",	TRUE, 0xfeedface,0xfeedface, FALSE),
+HOWTO ( 8,	       0,  2,	 0, FALSE, 0, complain_overflow_bitfield,0,"GOT_REL",	FALSE,	       0,0x00000000, FALSE),
+HOWTO ( 9,	       0,  1,	16, FALSE, 0, complain_overflow_bitfield,0,"BASE16",	FALSE,0xffffffff,0xffffffff, FALSE),
+HOWTO (10,	       0,  2,	32, FALSE, 0, complain_overflow_bitfield,0,"BASE32",	FALSE,0xffffffff,0xffffffff, FALSE),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
-  HOWTO (16,	       0,  2,	 0, FALSE, 0, complain_overflow_bitfield,0,"JMP_TABLE", FALSE,         0,0x00000000, FALSE),
+  HOWTO (16,	       0,  2,	 0, FALSE, 0, complain_overflow_bitfield,0,"JMP_TABLE", FALSE,	       0,0x00000000, FALSE),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
@@ -246,7 +246,7 @@ EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
-  HOWTO (32,	       0,  2,	 0, FALSE, 0, complain_overflow_bitfield,0,"RELATIVE",  FALSE,         0,0x00000000, FALSE),
+  HOWTO (32,	       0,  2,	 0, FALSE, 0, complain_overflow_bitfield,0,"RELATIVE",	FALSE,	       0,0x00000000, FALSE),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
@@ -254,7 +254,7 @@ EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
-  HOWTO (40,	       0,  2,	 0, FALSE, 0, complain_overflow_bitfield,0,"BASEREL",   FALSE,         0,0x00000000, FALSE),
+  HOWTO (40,	       0,  2,	 0, FALSE, 0, complain_overflow_bitfield,0,"BASEREL",	FALSE,	       0,0x00000000, FALSE),
 };
 
 #define TABLE_SIZE(TABLE)	(sizeof (TABLE) / sizeof (TABLE[0]))
@@ -357,9 +357,9 @@ FUNCTION
 
 SYNOPSIS
 	void aout_@var{size}_swap_exec_header_in,
-           (bfd *abfd,
-            struct external_exec *bytes,
-            struct internal_exec *execp);
+	   (bfd *abfd,
+	    struct external_exec *bytes,
+	    struct internal_exec *execp);
 
 DESCRIPTION
 	Swap the information in an executable header @var{raw_bytes} taken
@@ -442,7 +442,7 @@ FUNCTION
 SYNOPSIS
 	const bfd_target *aout_@var{size}_some_aout_object_p
 	 (bfd *abfd,
-          struct internal_exec *execp,
+	  struct internal_exec *execp,
 	  const bfd_target *(*callback_to_real_object_p) (bfd *));
 
 DESCRIPTION
@@ -637,12 +637,12 @@ NAME (aout, some_aout_object_p) (bfd *ab
       struct stat stat_buf;
 
       /* The original heuristic doesn't work in some important cases.
-        The a.out file has no information about the text start
-        address.  For files (like kernels) linked to non-standard
-        addresses (ld -Ttext nnn) the entry point may not be between
-        the default text start (obj_textsec(abfd)->vma) and
-        (obj_textsec(abfd)->vma) + text size.  This is not just a mach
-        issue.  Many kernels are loaded at non standard addresses.  */
+	The a.out file has no information about the text start
+	address.  For files (like kernels) linked to non-standard
+	addresses (ld -Ttext nnn) the entry point may not be between
+	the default text start (obj_textsec(abfd)->vma) and
+	(obj_textsec(abfd)->vma) + text size.  This is not just a mach
+	issue.  Many kernels are loaded at non standard addresses.  */
       if (abfd->iostream != NULL
 	  && (abfd->flags & BFD_IN_MEMORY) == 0
 	  && (fstat (fileno ((FILE *) (abfd->iostream)), &stat_buf) == 0)
@@ -701,7 +701,7 @@ SYNOPSIS
 	enum machine_type  aout_@var{size}_machine_type
 	 (enum bfd_architecture arch,
 	  unsigned long machine,
-          bfd_boolean *unknown);
+	  bfd_boolean *unknown);
 
 DESCRIPTION
 	Keep track of machine architecture and machine type for
@@ -733,19 +733,21 @@ NAME (aout, machine_type) (enum bfd_arch
 	  || machine == bfd_mach_sparc_v8plus
 	  || machine == bfd_mach_sparc_v8plusa
 	  || machine == bfd_mach_sparc_v8plusb
-          || machine == bfd_mach_sparc_v8plusc
-          || machine == bfd_mach_sparc_v8plusd
-          || machine == bfd_mach_sparc_v8pluse
-          || machine == bfd_mach_sparc_v8plusv
-          || machine == bfd_mach_sparc_v8plusm
+	  || machine == bfd_mach_sparc_v8plusc
+	  || machine == bfd_mach_sparc_v8plusd
+	  || machine == bfd_mach_sparc_v8pluse
+	  || machine == bfd_mach_sparc_v8plusv
+	  || machine == bfd_mach_sparc_v8plusm
+	  || machine == bfd_mach_sparc_v8plusm8
 	  || machine == bfd_mach_sparc_v9
 	  || machine == bfd_mach_sparc_v9a
 	  || machine == bfd_mach_sparc_v9b
-          || machine == bfd_mach_sparc_v9c
-          || machine == bfd_mach_sparc_v9d
-          || machine == bfd_mach_sparc_v9e
-          || machine == bfd_mach_sparc_v9v
-	  || machine == bfd_mach_sparc_v9m)
+	  || machine == bfd_mach_sparc_v9c
+	  || machine == bfd_mach_sparc_v9d
+	  || machine == bfd_mach_sparc_v9e
+	  || machine == bfd_mach_sparc_v9v
+	  || machine == bfd_mach_sparc_v9m
+	  || machine == bfd_mach_sparc_v9m8)
 	arch_flags = M_SPARC;
       else if (machine == bfd_mach_sparc_sparclet)
 	arch_flags = M_SPARCLET;
@@ -824,7 +826,7 @@ NAME (aout, machine_type) (enum bfd_arch
     case bfd_arch_ns32k:
       switch (machine)
 	{
-	case 0:    	arch_flags = M_NS32532; break;
+	case 0:		arch_flags = M_NS32532; break;
 	case 32032:	arch_flags = M_NS32032; break;
 	case 32532:	arch_flags = M_NS32532; break;
 	default:	arch_flags = M_UNKNOWN; break;
@@ -944,8 +946,8 @@ adjust_o_magic (bfd *abfd, struct intern
   else
     {
       /* The VMA of the .bss section is set by the VMA of the
-         .data section plus the size of the .data section.  We may
-         need to add padding bytes to make this true.  */
+	 .data section plus the size of the .data section.  We may
+	 need to add padding bytes to make this true.  */
       pad = obj_bsssec (abfd)->vma - vma;
       if (pad > 0)
 	{
@@ -994,8 +996,8 @@ adjust_z_magic (bfd *abfd, struct intern
   else
     {
       /* The .text section is being loaded at an unusual address.  We
-         may need to pad it such that the .data section starts at a page
-         boundary.  */
+	 may need to pad it such that the .data section starts at a page
+	 boundary.  */
       if (ztih)
 	text_pad = ((obj_textsec (abfd)->filepos - obj_textsec (abfd)->vma)
 		    & (adata (abfd).page_size - 1));
@@ -1173,11 +1175,11 @@ NAME (aout, adjust_sizes_and_vmas) (bfd 
 	      str;
 	    }),
 	   obj_textsec (abfd)->vma, obj_textsec (abfd)->size,
-	   	obj_textsec (abfd)->alignment_power,
+		obj_textsec (abfd)->alignment_power,
 	   obj_datasec (abfd)->vma, obj_datasec (abfd)->size,
-	   	obj_datasec (abfd)->alignment_power,
+		obj_datasec (abfd)->alignment_power,
 	   obj_bsssec (abfd)->vma, obj_bsssec (abfd)->size,
-	   	obj_bsssec (abfd)->alignment_power);
+		obj_bsssec (abfd)->alignment_power);
 #endif
 #endif
 
@@ -1199,9 +1201,9 @@ NAME (aout, adjust_sizes_and_vmas) (bfd 
 #ifdef BFD_AOUT_DEBUG
   fprintf (stderr, "       text=<%x,%x,%x> data=<%x,%x,%x> bss=<%x,%x>\n",
 	   obj_textsec (abfd)->vma, obj_textsec (abfd)->size,
-	   	obj_textsec (abfd)->filepos,
+		obj_textsec (abfd)->filepos,
 	   obj_datasec (abfd)->vma, obj_datasec (abfd)->size,
-	   	obj_datasec (abfd)->filepos,
+		obj_datasec (abfd)->filepos,
 	   obj_bsssec (abfd)->vma, obj_bsssec (abfd)->size);
 #endif
 
@@ -1213,7 +1215,7 @@ FUNCTION
 	aout_@var{size}_new_section_hook
 
 SYNOPSIS
-        bfd_boolean aout_@var{size}_new_section_hook,
+	bfd_boolean aout_@var{size}_new_section_hook,
 	   (bfd *abfd,
 	    asection *newsect);
 
@@ -1281,8 +1283,8 @@ NAME (aout, set_section_contents) (bfd *
 	    /* xgettext:c-format */
 	   (_("%B: can not represent section `%A' in a.out object file format"),
 	     abfd, section);
-          bfd_set_error (bfd_error_nonrepresentable_section);
-          return FALSE;
+	  bfd_set_error (bfd_error_nonrepresentable_section);
+	  return FALSE;
 	}
     }
 
@@ -1349,27 +1351,42 @@ aout_get_external_symbols (bfd *abfd)
 	  || bfd_bread ((void *) string_chars, amt, abfd) != amt)
 	return FALSE;
       stringsize = GET_WORD (abfd, string_chars);
+      if (stringsize == 0)
+	stringsize = 1;
+      else if (stringsize < BYTES_IN_WORD
+	       || (size_t) stringsize != stringsize)
+	{
+	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
+	}
 
 #ifdef USE_MMAP
-      if (! bfd_get_file_window (abfd, obj_str_filepos (abfd), stringsize,
-				 &obj_aout_string_window (abfd), TRUE))
-	return FALSE;
-      strings = (char *) obj_aout_string_window (abfd).data;
-#else
-      strings = (char *) bfd_malloc (stringsize + 1);
-      if (strings == NULL)
-	return FALSE;
-
-      /* Skip space for the string count in the buffer for convenience
-	 when using indexes.  */
-      amt = stringsize - BYTES_IN_WORD;
-      if (bfd_bread (strings + BYTES_IN_WORD, amt, abfd) != amt)
+      if (stringsize >= BYTES_IN_WORD)
 	{
-	  free (strings);
-	  return FALSE;
+	  if (! bfd_get_file_window (abfd, obj_str_filepos (abfd), stringsize,
+				     &obj_aout_string_window (abfd), TRUE))
+	    return FALSE;
+	  strings = (char *) obj_aout_string_window (abfd).data;
 	}
+      else
 #endif
+	{
+	  strings = (char *) bfd_malloc (stringsize);
+	  if (strings == NULL)
+	    return FALSE;
 
+	  if (stringsize >= BYTES_IN_WORD)
+	    {
+	      /* Keep the string count in the buffer for convenience
+		 when indexing with e_strx.  */
+	      amt = stringsize - BYTES_IN_WORD;
+	      if (bfd_bread (strings + BYTES_IN_WORD, amt, abfd) != amt)
+		{
+		  free (strings);
+		  return FALSE;
+		}
+	    }
+	}
       /* Ensure that a zero index yields an empty string.  */
       strings[0] = '\0';
 
@@ -1485,8 +1502,8 @@ translate_from_native_sym_flags (bfd *ab
     case N_SETB: case N_SETB | N_EXT:
       {
 	/* This code is no longer needed.  It used to be used to make
-           the linker handle set symbols, but they are now handled in
-           the add_symbols routine instead.  */
+	   the linker handle set symbols, but they are now handled in
+	   the add_symbols routine instead.  */
 	switch (cache_ptr->type & N_TYPE)
 	  {
 	  case N_SETA:
@@ -1618,8 +1635,8 @@ translate_to_native_sym_flags (bfd *abfd
 	    /* xgettext:c-format */
 	   (_("%B: can not represent section `%A' in a.out object file format"),
 	     abfd, sec);
-          bfd_set_error (bfd_error_nonrepresentable_section);
-          return FALSE;
+	  bfd_set_error (bfd_error_nonrepresentable_section);
+	  return FALSE;
 	}
     }
 
@@ -2196,7 +2213,7 @@ NAME (aout, swap_ext_reloc_in) (bfd *abf
   if (r_extern && r_index > symcount)
     {
       /* We could arrange to return an error, but it might be useful
-         to see the file even if it is bad.  */
+	 to see the file even if it is bad.  */
       r_extern = 0;
       r_index = N_ABS;
     }
@@ -2269,7 +2286,7 @@ NAME (aout, swap_std_reloc_in) (bfd *abf
   if (r_extern && r_index > symcount)
     {
       /* We could arrange to return an error, but it might be useful
-         to see the file even if it is bad.  */
+	 to see the file even if it is bad.  */
       r_extern = 0;
       r_index = N_ABS;
     }
@@ -2932,7 +2949,7 @@ NAME (aout, link_hash_newfunc) (struct b
      subclass.  */
   if (ret == NULL)
     ret = (struct aout_link_hash_entry *) bfd_hash_allocate (table,
-                                                             sizeof (* ret));
+							     sizeof (* ret));
   if (ret == NULL)
     return NULL;
 
@@ -3330,13 +3347,13 @@ aout_link_check_ar_symbols (bfd *abfd,
 	     in.  This is true regardless of whether the current
 	     definition of the symbol is undefined or common.
 
-             If the current definition is common, we have a case in
+	     If the current definition is common, we have a case in
 	     which we have already seen an object file including:
-	         int a;
+		 int a;
 	     and this object file from the archive includes:
-	         int a = 5;
+		 int a = 5;
 	     In such a case, whether to include this object is target
-             dependant for backward compatibility.
+	     dependant for backward compatibility.
 
 	     FIXME: The SunOS 4.1.3 linker will pull in the archive
 	     element if the symbol is defined in the .data section,
@@ -3593,7 +3610,7 @@ aout_link_includes_newfunc (struct bfd_h
      subclass.  */
   if (ret == NULL)
     ret = (struct aout_link_includes_entry *)
-        bfd_hash_allocate (table, sizeof (* ret));
+	bfd_hash_allocate (table, sizeof (* ret));
   if (ret == NULL)
     return NULL;
 
@@ -3665,7 +3682,7 @@ aout_link_write_other_symbol (struct bfd
       return TRUE;
     case bfd_link_hash_new:
       /* This can happen for set symbols when sets are not being
-         built.  */
+	 built.  */
       return TRUE;
     case bfd_link_hash_undefined:
       type = N_UNDF | N_EXT;
@@ -4127,10 +4144,10 @@ aout_link_input_section_std (struct aout
 		      if (h != NULL)
 			{
 			  /* We decided to strip this symbol, but it
-                             turns out that we can't.  Note that we
-                             lose the other and desc information here.
-                             I don't think that will ever matter for a
-                             global symbol.  */
+			     turns out that we can't.  Note that we
+			     lose the other and desc information here.
+			     I don't think that will ever matter for a
+			     global symbol.  */
 			  if (h->indx < 0)
 			    {
 			      h->indx = -2;
@@ -4261,8 +4278,8 @@ aout_link_input_section_std (struct aout
 	    }
 
 	  /* Now warn if a global symbol is undefined.  We could not
-             do this earlier, because check_dynamic_reloc might want
-             to skip this reloc.  */
+	     do this earlier, because check_dynamic_reloc might want
+	     to skip this reloc.  */
 	  if (hundef && ! bfd_link_pic (flaginfo->info) && ! r_baserel)
 	    {
 	      const char *name;
@@ -4464,10 +4481,10 @@ aout_link_input_section_ext (struct aout
 		      if (h != NULL)
 			{
 			  /* We decided to strip this symbol, but it
-                             turns out that we can't.  Note that we
-                             lose the other and desc information here.
-                             I don't think that will ever matter for a
-                             global symbol.  */
+			     turns out that we can't.  Note that we
+			     lose the other and desc information here.
+			     I don't think that will ever matter for a
+			     global symbol.  */
 			  if (h->indx < 0)
 			    {
 			      h->indx = -2;
@@ -4587,7 +4604,7 @@ aout_link_input_section_ext (struct aout
 	      int type;
 
 	      /* For base relative relocs, r_index is always an index
-                 into the symbol table, even if r_extern is 0.  */
+		 into the symbol table, even if r_extern is 0.  */
 	      sym = syms + r_index;
 	      type = H_GET_8 (input_bfd, sym->e_type);
 	      if ((type & N_TYPE) == N_TEXT
@@ -4659,8 +4676,8 @@ aout_link_input_section_ext (struct aout
 	    }
 
 	  /* Now warn if a global symbol is undefined.  We could not
-             do this earlier, because check_dynamic_reloc might want
-             to skip this reloc.  */
+	     do this earlier, because check_dynamic_reloc might want
+	     to skip this reloc.  */
 	  if (hundef
 	      && ! bfd_link_pic (flaginfo->info)
 	      && r_type != (unsigned int) RELOC_BASE10
@@ -4882,15 +4899,15 @@ aout_link_write_symbols (struct aout_fin
       bfd_boolean copy;
 
       /* We set *symbol_map to 0 above for all symbols.  If it has
-         already been set to -1 for this symbol, it means that we are
-         discarding it because it appears in a duplicate header file.
-         See the N_BINCL code below.  */
+	 already been set to -1 for this symbol, it means that we are
+	 discarding it because it appears in a duplicate header file.
+	 See the N_BINCL code below.  */
       if (*symbol_map == -1)
 	continue;
 
       /* Initialize *symbol_map to -1, which means that the symbol was
-         not copied into the output file.  We will change it later if
-         we do copy the symbol over.  */
+	 not copied into the output file.  We will change it later if
+	 we do copy the symbol over.  */
       *symbol_map = -1;
 
       type = H_GET_8 (input_bfd, sym->e_type);
@@ -4924,7 +4941,7 @@ aout_link_write_symbols (struct aout_fin
 	  h = *sym_hash;
 
 	  /* Use the name from the hash table, in case the symbol was
-             wrapped.  */
+	     wrapped.  */
 	  if (h != NULL
 	      && h->root.type != bfd_link_hash_warning)
 	    name = h->root.root.string;
@@ -5194,8 +5211,8 @@ aout_link_write_symbols (struct aout_fin
 		}
 
 	      /* If we have already included a header file with the
-                 same value, then replace this one with an N_EXCL
-                 symbol.  */
+		 same value, then replace this one with an N_EXCL
+		 symbol.  */
 	      copy = (bfd_boolean) (! flaginfo->info->keep_memory);
 	      incl_entry = aout_link_includes_lookup (&flaginfo->includes,
 						      name, TRUE, copy);
@@ -5207,9 +5224,9 @@ aout_link_write_symbols (struct aout_fin
 	      if (t == NULL)
 		{
 		  /* This is the first time we have seen this header
-                     file with this set of stabs strings.  */
+		     file with this set of stabs strings.  */
 		  t = (struct aout_link_includes_totals *)
-                      bfd_hash_allocate (&flaginfo->includes.root,
+		      bfd_hash_allocate (&flaginfo->includes.root,
 					 sizeof *t);
 		  if (t == NULL)
 		    return FALSE;
@@ -5222,8 +5239,8 @@ aout_link_write_symbols (struct aout_fin
 		  int *incl_map;
 
 		  /* This is a duplicate header file.  We must change
-                     it to be an N_EXCL entry, and mark all the
-                     included symbols to prevent outputting them.  */
+		     it to be an N_EXCL entry, and mark all the
+		     included symbols to prevent outputting them.  */
 		  type = (int) N_EXCL;
 
 		  nest = 0;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/arc-got.h ./bfd/arc-got.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/arc-got.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/arc-got.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* ARC-specific support for 32-bit ELF
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    Contributed by Cupertino Miranda (cmiranda@synopsys.com).
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -22,6 +22,8 @@
 #ifndef ARC_GOT_H
 #define ARC_GOT_H
 
+#define TCB_SIZE (8)
+
 enum tls_type_e
 {
   GOT_UNKNOWN = 0,
@@ -225,10 +227,10 @@ arc_fill_got_info_for_reloc (enum tls_ty
     {
       case GOT_NORMAL:
 	{
-  	  bfd_vma offset
+	  bfd_vma offset
 	    = ADD_SYMBOL_REF_SEC_AND_RELOC (got, bfd_link_pic (info)
 						 || h != NULL, h);
-  	  new_got_entry_to_list (list, type, offset, TLS_GOT_NONE);
+	  new_got_entry_to_list (list, type, offset, TLS_GOT_NONE);
 	}
 	break;
 
@@ -260,14 +262,14 @@ arc_fill_got_info_for_reloc (enum tls_ty
 
 
 static bfd_vma
-relocate_fix_got_relocs_for_got_info (struct got_entry **          list_p,
-				      enum tls_type_e              type,
-				      struct bfd_link_info *       info,
-				      bfd *                        output_bfd,
-				      unsigned long                r_symndx,
-				      Elf_Internal_Sym *           local_syms,
-			  	      asection **                  local_sections,
-			     	      struct elf_link_hash_entry * h,
+relocate_fix_got_relocs_for_got_info (struct got_entry **	   list_p,
+				      enum tls_type_e		   type,
+				      struct bfd_link_info *	   info,
+				      bfd *			   output_bfd,
+				      unsigned long		   r_symndx,
+				      Elf_Internal_Sym *	   local_syms,
+				      asection **		   local_sections,
+				      struct elf_link_hash_entry * h,
 				      struct arc_relocation_data * reloc_data)
 {
   struct elf_link_hash_table *htab = elf_hash_table (info);
@@ -318,7 +320,7 @@ relocate_fix_got_relocs_for_got_info (st
 	}
 
 
-      if (entry && entry->processed == FALSE)
+      if (entry && !entry->processed)
 	{
 	  switch (entry->type)
 	    {
@@ -354,7 +356,8 @@ relocate_fix_got_relocs_for_got_info (st
 		  = tls_sec->output_section->vma;
 
 		bfd_put_32 (output_bfd,
-			    sym_value - sec_vma,
+			    sym_value - sec_vma
+			    + (elf_hash_table (info)->dynamic_sections_created ? 0 : TCB_SIZE),
 			    htab->sgot->contents + entry->offset
 			    + (entry->existing_entries == TLS_GOT_MOD_AND_OFF
 			       ? 4 : 0));
@@ -427,7 +430,7 @@ create_got_dynrelocs_for_single_entry (s
   bfd_vma got_offset = list->offset;
 
   if (list->type == GOT_NORMAL
-      && list->created_dyn_relocation == FALSE)
+      && !list->created_dyn_relocation)
     {
       if (bfd_link_pic (info)
 	  && h != NULL
@@ -446,7 +449,7 @@ create_got_dynrelocs_for_single_entry (s
       list->created_dyn_relocation = TRUE;
     }
   else if (list->existing_entries != TLS_GOT_NONE
-	   && list->created_dyn_relocation == FALSE)
+	   && !list->created_dyn_relocation)
     {
        /* TODO TLS: This is not called for local symbols.
 	  In order to correctly implement TLS, this should also
@@ -457,14 +460,14 @@ create_got_dynrelocs_for_single_entry (s
       enum tls_got_entries e = list->existing_entries;
 
       BFD_ASSERT (list->type != GOT_TLS_GD
-    	      || list->existing_entries == TLS_GOT_MOD_AND_OFF);
+		  || list->existing_entries == TLS_GOT_MOD_AND_OFF);
 
       bfd_vma dynindx = (h == NULL || h->dynindx == -1) ? 0 : h->dynindx;
 
       if (e == TLS_GOT_MOD_AND_OFF || e == TLS_GOT_MOD)
 	{
 	      ADD_RELA (output_bfd, got, got_offset, dynindx,
-	    	    R_ARC_TLS_DTPMOD, 0);
+			R_ARC_TLS_DTPMOD, 0);
 	      ARC_DEBUG ("arc_info: TLS_DYNRELOC: type = %d, \
 GOT_OFFSET = %#lx, GOT_VMA = %#lx, INDEX = %ld, ADDEND = 0x0\n",
 			 list->type,
@@ -478,8 +481,10 @@ GOT_OFFSET = %#lx, GOT_VMA = %#lx, INDEX
 	{
 	  bfd_vma addend = 0;
 	  if (list->type == GOT_TLS_IE)
+	  {
 	    addend = bfd_get_32 (output_bfd,
 				 htab->sgot->contents + got_offset);
+	  }
 
 	  ADD_RELA (output_bfd, got,
 		    got_offset + (e == TLS_GOT_MOD_AND_OFF ? 4 : 0),
@@ -504,7 +509,7 @@ static void
 create_got_dynrelocs_for_got_info (struct got_entry **list_p,
 				   bfd *output_bfd,
 				   struct bfd_link_info *  info,
-			     	   struct elf_link_hash_entry *h)
+				   struct elf_link_hash_entry *h)
 {
   if (list_p == NULL)
     return;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/archive64.c ./bfd/archive64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/archive64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/archive64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for 64-bit archives.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Ian Lance Taylor, Cygnus Support
    Linker support added by Mark Mitchell, CodeSourcery, LLC.
    <mark@codesourcery.com>
@@ -177,7 +177,7 @@ _bfd_archive_64_bit_write_armap (bfd *ar
   if (!_bfd_ar_sizepad (hdr.ar_size, sizeof (hdr.ar_size), mapsize))
     return FALSE;
   _bfd_ar_spacepad (hdr.ar_date, sizeof (hdr.ar_date), "%ld",
-                    time (NULL));
+		    time (NULL));
   /* This, at least, is what Intel coff sets the values to.: */
   _bfd_ar_spacepad (hdr.ar_uid, sizeof (hdr.ar_uid), "%ld", 0);
   _bfd_ar_spacepad (hdr.ar_gid, sizeof (hdr.ar_gid), "%ld", 0);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/archive.c ./bfd/archive.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/archive.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/archive.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for archive files (libraries).
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.  Mostly Gumby Henkel-Wallace's fault.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -764,10 +764,11 @@ SYNOPSIS
 DESCRIPTION
 	Provided a BFD, @var{archive}, containing an archive and NULL, open
 	an input BFD on the first contained element and returns that.
-	Subsequent calls should pass
-	the archive and the previous return value to return a created
-	BFD to the next contained element. NULL is returned when there
-	are no more.
+	Subsequent calls should pass the archive and the previous return
+	value to return a created BFD to the next contained element.  NULL
+	is returned when there are no more.
+	Note - if you want to process the bfd returned by this call be
+	sure to call bfd_check_format() on it first.
 */
 
 bfd *
@@ -834,7 +835,12 @@ bfd_generic_archive_p (bfd *abfd)
   if (strncmp (armag, ARMAG, SARMAG) != 0
       && strncmp (armag, ARMAGB, SARMAG) != 0
       && ! bfd_is_thin_archive (abfd))
-    return NULL;
+    {
+      bfd_set_error (bfd_error_wrong_format);
+      if (abfd->format == bfd_archive)
+	abfd->format = bfd_unknown;
+      return NULL;
+    }
 
   tdata_hold = bfd_ardata (abfd);
 
@@ -1432,16 +1438,16 @@ normalize (bfd *abfd ATTRIBUTE_UNUSED, c
 
      Relative path  Reference path  Result
      -------------  --------------  ------
-     bar.o          lib.a           bar.o
-     foo/bar.o      lib.a           foo/bar.o
-     bar.o          foo/lib.a       ../bar.o
-     foo/bar.o      baz/lib.a       ../foo/bar.o
-     bar.o          ../lib.a        <parent of current dir>/bar.o
-   ; ../bar.o       ../lib.a        bar.o
-   ; ../bar.o       lib.a           ../bar.o
-     foo/bar.o      ../lib.a        <parent of current dir>/foo/bar.o
-     bar.o          ../../lib.a     <grandparent>/<parent>/bar.o
-     bar.o          foo/baz/lib.a   ../../bar.o
+     bar.o	    lib.a	    bar.o
+     foo/bar.o	    lib.a	    foo/bar.o
+     bar.o	    foo/lib.a	    ../bar.o
+     foo/bar.o	    baz/lib.a	    ../foo/bar.o
+     bar.o	    ../lib.a	    <parent of current dir>/bar.o
+   ; ../bar.o	    ../lib.a	    bar.o
+   ; ../bar.o	    lib.a	    ../bar.o
+     foo/bar.o	    ../lib.a	    <parent of current dir>/foo/bar.o
+     bar.o	    ../../lib.a	    <grandparent>/<parent>/bar.o
+     bar.o	    foo/baz/lib.a   ../../bar.o
 
    Note - the semicolons above are there to prevent the BFD chew
    utility from interpreting those lines as prototypes to put into
@@ -1975,6 +1981,12 @@ bfd_ar_hdr_from_filesystem (bfd *abfd, c
 		      status.st_gid);
   _bfd_ar_spacepad (hdr->ar_mode, sizeof (hdr->ar_mode), "%-8lo",
 		    status.st_mode);
+  if (status.st_size - (bfd_size_type) status.st_size != 0)
+    {
+      bfd_set_error (bfd_error_file_too_big);
+      free (ared);
+      return NULL;
+    }
   if (!_bfd_ar_sizepad (hdr->ar_size, sizeof (hdr->ar_size), status.st_size))
     {
       free (ared);
@@ -2007,7 +2019,7 @@ bfd_generic_stat_arch_elt (bfd *abfd, st
     return -1;
 #define foo(arelt, stelt, size)				\
   buf->stelt = strtol (hdr->arelt, &aloser, size);	\
-  if (aloser == hdr->arelt)	      			\
+  if (aloser == hdr->arelt)				\
     return -1;
 
   /* Some platforms support special notations for large IDs.  */
@@ -2298,7 +2310,7 @@ _bfd_write_archive_contents (bfd *arch)
   return TRUE;
 
  input_err:
-  bfd_set_error (bfd_error_on_input, current, bfd_get_error ());
+  bfd_set_input_error (current, bfd_get_error ());
   return FALSE;
 }
 
@@ -2400,7 +2412,11 @@ _bfd_compute_and_write_armap (bfd *arch,
 			  map = new_map;
 			}
 
-		      if (strcmp (syms[src_count]->name, "__gnu_lto_slim") == 0)
+		      if (syms[src_count]->name[0] == '_'
+			  && syms[src_count]->name[1] == '_'
+			  && strcmp (syms[src_count]->name
+				     + (syms[src_count]->name[2] == '_'),
+				     "__gnu_lto_slim") == 0)
 			_bfd_error_handler
 			  (_("%B: plugin needed to handle lto object"),
 			   current);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/archures.c ./bfd/archures.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/archures.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/archures.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD library support routines for architectures.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Hacked by John Gilmore and Steve Chamberlain of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -70,62 +70,62 @@ DESCRIPTION
 .{
 .  bfd_arch_unknown,   {* File arch not known.  *}
 .  bfd_arch_obscure,   {* Arch known, not one of these.  *}
-.  bfd_arch_m68k,      {* Motorola 68xxx *}
-.#define bfd_mach_m68000 1
-.#define bfd_mach_m68008 2
-.#define bfd_mach_m68010 3
-.#define bfd_mach_m68020 4
-.#define bfd_mach_m68030 5
-.#define bfd_mach_m68040 6
-.#define bfd_mach_m68060 7
-.#define bfd_mach_cpu32  8
-.#define bfd_mach_fido   9
-.#define bfd_mach_mcf_isa_a_nodiv 10
-.#define bfd_mach_mcf_isa_a 11
-.#define bfd_mach_mcf_isa_a_mac 12
-.#define bfd_mach_mcf_isa_a_emac 13
-.#define bfd_mach_mcf_isa_aplus 14
-.#define bfd_mach_mcf_isa_aplus_mac 15
-.#define bfd_mach_mcf_isa_aplus_emac 16
-.#define bfd_mach_mcf_isa_b_nousp 17
-.#define bfd_mach_mcf_isa_b_nousp_mac 18
-.#define bfd_mach_mcf_isa_b_nousp_emac 19
-.#define bfd_mach_mcf_isa_b 20
-.#define bfd_mach_mcf_isa_b_mac 21
-.#define bfd_mach_mcf_isa_b_emac 22
-.#define bfd_mach_mcf_isa_b_float 23
-.#define bfd_mach_mcf_isa_b_float_mac 24
-.#define bfd_mach_mcf_isa_b_float_emac 25
-.#define bfd_mach_mcf_isa_c 26
-.#define bfd_mach_mcf_isa_c_mac 27
-.#define bfd_mach_mcf_isa_c_emac 28
-.#define bfd_mach_mcf_isa_c_nodiv 29
-.#define bfd_mach_mcf_isa_c_nodiv_mac 30
-.#define bfd_mach_mcf_isa_c_nodiv_emac 31
-.  bfd_arch_vax,       {* DEC Vax *}
-.  bfd_arch_i960,      {* Intel 960 *}
+.  bfd_arch_m68k,      {* Motorola 68xxx.  *}
+.#define bfd_mach_m68000		1
+.#define bfd_mach_m68008		2
+.#define bfd_mach_m68010		3
+.#define bfd_mach_m68020		4
+.#define bfd_mach_m68030		5
+.#define bfd_mach_m68040		6
+.#define bfd_mach_m68060		7
+.#define bfd_mach_cpu32			8
+.#define bfd_mach_fido			9
+.#define bfd_mach_mcf_isa_a_nodiv	10
+.#define bfd_mach_mcf_isa_a		11
+.#define bfd_mach_mcf_isa_a_mac		12
+.#define bfd_mach_mcf_isa_a_emac	13
+.#define bfd_mach_mcf_isa_aplus		14
+.#define bfd_mach_mcf_isa_aplus_mac	15
+.#define bfd_mach_mcf_isa_aplus_emac	16
+.#define bfd_mach_mcf_isa_b_nousp	17
+.#define bfd_mach_mcf_isa_b_nousp_mac	18
+.#define bfd_mach_mcf_isa_b_nousp_emac	19
+.#define bfd_mach_mcf_isa_b		20
+.#define bfd_mach_mcf_isa_b_mac		21
+.#define bfd_mach_mcf_isa_b_emac	22
+.#define bfd_mach_mcf_isa_b_float	23
+.#define bfd_mach_mcf_isa_b_float_mac	24
+.#define bfd_mach_mcf_isa_b_float_emac	25
+.#define bfd_mach_mcf_isa_c		26
+.#define bfd_mach_mcf_isa_c_mac		27
+.#define bfd_mach_mcf_isa_c_emac	28
+.#define bfd_mach_mcf_isa_c_nodiv	29
+.#define bfd_mach_mcf_isa_c_nodiv_mac	30
+.#define bfd_mach_mcf_isa_c_nodiv_emac	31
+.  bfd_arch_vax,       {* DEC Vax.  *}
+.  bfd_arch_i960,      {* Intel 960.  *}
 .    {* The order of the following is important.
-.       lower number indicates a machine type that
-.       only accepts a subset of the instructions
-.       available to machines with higher numbers.
-.       The exception is the "ca", which is
-.       incompatible with all other machines except
-.       "core".  *}
+.	lower number indicates a machine type that
+.	only accepts a subset of the instructions
+.	available to machines with higher numbers.
+.	The exception is the "ca", which is
+.	incompatible with all other machines except
+.	"core".  *}
 .
-.#define bfd_mach_i960_core      1
-.#define bfd_mach_i960_ka_sa     2
-.#define bfd_mach_i960_kb_sb     3
-.#define bfd_mach_i960_mc        4
-.#define bfd_mach_i960_xa        5
-.#define bfd_mach_i960_ca        6
-.#define bfd_mach_i960_jx	 7
-.#define bfd_mach_i960_hx        8
+.#define bfd_mach_i960_core	1
+.#define bfd_mach_i960_ka_sa	2
+.#define bfd_mach_i960_kb_sb	3
+.#define bfd_mach_i960_mc	4
+.#define bfd_mach_i960_xa	5
+.#define bfd_mach_i960_ca	6
+.#define bfd_mach_i960_jx	7
+.#define bfd_mach_i960_hx	8
 .
-.  bfd_arch_or1k,      {* OpenRISC 1000 *}
-.#define bfd_mach_or1k           1
-.#define bfd_mach_or1knd         2
+.  bfd_arch_or1k,      {* OpenRISC 1000.  *}
+.#define bfd_mach_or1k		1
+.#define bfd_mach_or1knd	2
 .
-.  bfd_arch_sparc,     {* SPARC *}
+.  bfd_arch_sparc,     {* SPARC.  *}
 .#define bfd_mach_sparc			1
 .{* The difference between v8plus and v9 is that v9 is a true 64 bit env.  *}
 .#define bfd_mach_sparc_sparclet	2
@@ -147,9 +147,11 @@ DESCRIPTION
 .#define bfd_mach_sparc_v9v		18 {* with OSA2011 and T4 and IMA and FJMAU add'ns.  *}
 .#define bfd_mach_sparc_v8plusm		19 {* with OSA2015 and M7 add'ns.  *}
 .#define bfd_mach_sparc_v9m		20 {* with OSA2015 and M7 add'ns.  *}
+.#define bfd_mach_sparc_v8plusm8	21 {* with OSA2017 and M8 add'ns.  *}
+.#define bfd_mach_sparc_v9m8		22 {* with OSA2017 and M8 add'ns.  *}
 .{* Nonzero if MACH has the v9 instruction set.  *}
 .#define bfd_mach_sparc_v9_p(mach) \
-.  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m \
+.  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m8 \
 .   && (mach) != bfd_mach_sparc_sparclite_le)
 .{* Nonzero if MACH is a 64 bit sparc architecture.  *}
 .#define bfd_mach_sparc_64bit_p(mach) \
@@ -159,10 +161,11 @@ DESCRIPTION
 .   && (mach) != bfd_mach_sparc_v8plusd \
 .   && (mach) != bfd_mach_sparc_v8pluse \
 .   && (mach) != bfd_mach_sparc_v8plusv \
-.   && (mach) != bfd_mach_sparc_v8plusm)
-.  bfd_arch_spu,       {* PowerPC SPU *}
+.   && (mach) != bfd_mach_sparc_v8plusm \
+.   && (mach) != bfd_mach_sparc_v8plusm8)
+.  bfd_arch_spu,       {* PowerPC SPU.  *}
 .#define bfd_mach_spu		256
-.  bfd_arch_mips,      {* MIPS Rxxxx *}
+.  bfd_arch_mips,      {* MIPS Rxxxx.  *}
 .#define bfd_mach_mips3000		3000
 .#define bfd_mach_mips3900		3900
 .#define bfd_mach_mips4000		4000
@@ -187,28 +190,29 @@ DESCRIPTION
 .#define bfd_mach_mips14000		14000
 .#define bfd_mach_mips16000		16000
 .#define bfd_mach_mips16		16
-.#define bfd_mach_mips5                 5
-.#define bfd_mach_mips_loongson_2e      3001
-.#define bfd_mach_mips_loongson_2f      3002
-.#define bfd_mach_mips_loongson_3a      3003
-.#define bfd_mach_mips_sb1              12310201 {* octal 'SB', 01 *}
+.#define bfd_mach_mips5			5
+.#define bfd_mach_mips_loongson_2e	3001
+.#define bfd_mach_mips_loongson_2f	3002
+.#define bfd_mach_mips_loongson_3a	3003
+.#define bfd_mach_mips_sb1		12310201 {* octal 'SB', 01.  *}
 .#define bfd_mach_mips_octeon		6501
 .#define bfd_mach_mips_octeonp		6601
 .#define bfd_mach_mips_octeon2		6502
-.#define bfd_mach_mips_octeon3          6503
-.#define bfd_mach_mips_xlr              887682   {* decimal 'XLR'  *}
-.#define bfd_mach_mipsisa32             32
-.#define bfd_mach_mipsisa32r2           33
-.#define bfd_mach_mipsisa32r3           34
-.#define bfd_mach_mipsisa32r5           36
-.#define bfd_mach_mipsisa32r6           37
-.#define bfd_mach_mipsisa64             64
-.#define bfd_mach_mipsisa64r2           65
-.#define bfd_mach_mipsisa64r3           66
-.#define bfd_mach_mipsisa64r5           68
-.#define bfd_mach_mipsisa64r6           69
-.#define bfd_mach_mips_micromips        96
-.  bfd_arch_i386,      {* Intel 386 *}
+.#define bfd_mach_mips_octeon3		6503
+.#define bfd_mach_mips_xlr		887682	 {* decimal 'XLR'.  *}
+.#define bfd_mach_mips_interaptiv_mr2	736550	 {* decimal 'IA2'.  *}
+.#define bfd_mach_mipsisa32		32
+.#define bfd_mach_mipsisa32r2		33
+.#define bfd_mach_mipsisa32r3		34
+.#define bfd_mach_mipsisa32r5		36
+.#define bfd_mach_mipsisa32r6		37
+.#define bfd_mach_mipsisa64		64
+.#define bfd_mach_mipsisa64r2		65
+.#define bfd_mach_mipsisa64r3		66
+.#define bfd_mach_mipsisa64r5		68
+.#define bfd_mach_mipsisa64r6		69
+.#define bfd_mach_mips_micromips	96
+.  bfd_arch_i386,      {* Intel 386.  *}
 .#define bfd_mach_i386_intel_syntax	(1 << 0)
 .#define bfd_mach_i386_i8086		(1 << 1)
 .#define bfd_mach_i386_i386		(1 << 2)
@@ -217,40 +221,40 @@ DESCRIPTION
 .#define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax)
 .#define bfd_mach_x86_64_intel_syntax	(bfd_mach_x86_64 | bfd_mach_i386_intel_syntax)
 .#define bfd_mach_x64_32_intel_syntax	(bfd_mach_x64_32 | bfd_mach_i386_intel_syntax)
-.  bfd_arch_l1om,   {* Intel L1OM *}
+.  bfd_arch_l1om,      {* Intel L1OM.  *}
 .#define bfd_mach_l1om			(1 << 5)
 .#define bfd_mach_l1om_intel_syntax	(bfd_mach_l1om | bfd_mach_i386_intel_syntax)
-.  bfd_arch_k1om,   {* Intel K1OM *}
+.  bfd_arch_k1om,      {* Intel K1OM.  *}
 .#define bfd_mach_k1om			(1 << 6)
 .#define bfd_mach_k1om_intel_syntax	(bfd_mach_k1om | bfd_mach_i386_intel_syntax)
 .#define bfd_mach_i386_nacl		(1 << 7)
 .#define bfd_mach_i386_i386_nacl	(bfd_mach_i386_i386 | bfd_mach_i386_nacl)
 .#define bfd_mach_x86_64_nacl		(bfd_mach_x86_64 | bfd_mach_i386_nacl)
 .#define bfd_mach_x64_32_nacl		(bfd_mach_x64_32 | bfd_mach_i386_nacl)
-.  bfd_arch_iamcu,   {* Intel MCU *}
+.  bfd_arch_iamcu,     {* Intel MCU.  *}
 .#define bfd_mach_iamcu			(1 << 8)
 .#define bfd_mach_i386_iamcu		(bfd_mach_i386_i386 | bfd_mach_iamcu)
 .#define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax)
-.  bfd_arch_we32k,     {* AT&T WE32xxx *}
-.  bfd_arch_tahoe,     {* CCI/Harris Tahoe *}
-.  bfd_arch_i860,      {* Intel 860 *}
-.  bfd_arch_i370,      {* IBM 360/370 Mainframes *}
-.  bfd_arch_romp,      {* IBM ROMP PC/RT *}
-.  bfd_arch_convex,    {* Convex *}
-.  bfd_arch_m88k,      {* Motorola 88xxx *}
-.  bfd_arch_m98k,      {* Motorola 98xxx *}
-.  bfd_arch_pyramid,   {* Pyramid Technology *}
-.  bfd_arch_h8300,     {* Renesas H8/300 (formerly Hitachi H8/300) *}
-.#define bfd_mach_h8300    1
-.#define bfd_mach_h8300h   2
-.#define bfd_mach_h8300s   3
-.#define bfd_mach_h8300hn  4
-.#define bfd_mach_h8300sn  5
-.#define bfd_mach_h8300sx  6
-.#define bfd_mach_h8300sxn 7
-.  bfd_arch_pdp11,     {* DEC PDP-11 *}
+.  bfd_arch_we32k,     {* AT&T WE32xxx.  *}
+.  bfd_arch_tahoe,     {* CCI/Harris Tahoe.  *}
+.  bfd_arch_i860,      {* Intel 860.  *}
+.  bfd_arch_i370,      {* IBM 360/370 Mainframes.  *}
+.  bfd_arch_romp,      {* IBM ROMP PC/RT.  *}
+.  bfd_arch_convex,    {* Convex.  *}
+.  bfd_arch_m88k,      {* Motorola 88xxx.  *}
+.  bfd_arch_m98k,      {* Motorola 98xxx.  *}
+.  bfd_arch_pyramid,   {* Pyramid Technology.  *}
+.  bfd_arch_h8300,     {* Renesas H8/300 (formerly Hitachi H8/300).  *}
+.#define bfd_mach_h8300		1
+.#define bfd_mach_h8300h	2
+.#define bfd_mach_h8300s	3
+.#define bfd_mach_h8300hn	4
+.#define bfd_mach_h8300sn	5
+.#define bfd_mach_h8300sx	6
+.#define bfd_mach_h8300sxn	7
+.  bfd_arch_pdp11,     {* DEC PDP-11.  *}
 .  bfd_arch_plugin,
-.  bfd_arch_powerpc,   {* PowerPC *}
+.  bfd_arch_powerpc,   {* PowerPC.  *}
 .#define bfd_mach_ppc		32
 .#define bfd_mach_ppc64		64
 .#define bfd_mach_ppc_403	403
@@ -270,121 +274,121 @@ DESCRIPTION
 .#define bfd_mach_ppc_rs64ii	642
 .#define bfd_mach_ppc_rs64iii	643
 .#define bfd_mach_ppc_7400	7400
-.#define bfd_mach_ppc_e500      500
-.#define bfd_mach_ppc_e500mc    5001
-.#define bfd_mach_ppc_e500mc64  5005
-.#define bfd_mach_ppc_e5500     5006
-.#define bfd_mach_ppc_e6500     5007
-.#define bfd_mach_ppc_titan     83
-.#define bfd_mach_ppc_vle       84
-.  bfd_arch_rs6000,    {* IBM RS/6000 *}
+.#define bfd_mach_ppc_e500	500
+.#define bfd_mach_ppc_e500mc	5001
+.#define bfd_mach_ppc_e500mc64	5005
+.#define bfd_mach_ppc_e5500	5006
+.#define bfd_mach_ppc_e6500	5007
+.#define bfd_mach_ppc_titan	83
+.#define bfd_mach_ppc_vle	84
+.  bfd_arch_rs6000,    {* IBM RS/6000.  *}
 .#define bfd_mach_rs6k		6000
 .#define bfd_mach_rs6k_rs1	6001
 .#define bfd_mach_rs6k_rsc	6003
 .#define bfd_mach_rs6k_rs2	6002
-.  bfd_arch_hppa,      {* HP PA RISC *}
+.  bfd_arch_hppa,      {* HP PA RISC.  *}
 .#define bfd_mach_hppa10	10
 .#define bfd_mach_hppa11	11
 .#define bfd_mach_hppa20	20
 .#define bfd_mach_hppa20w	25
-.  bfd_arch_d10v,      {* Mitsubishi D10V *}
+.  bfd_arch_d10v,      {* Mitsubishi D10V.  *}
 .#define bfd_mach_d10v		1
 .#define bfd_mach_d10v_ts2	2
 .#define bfd_mach_d10v_ts3	3
-.  bfd_arch_d30v,      {* Mitsubishi D30V *}
-.  bfd_arch_dlx,       {* DLX *}
-.  bfd_arch_m68hc11,   {* Motorola 68HC11 *}
-.  bfd_arch_m68hc12,   {* Motorola 68HC12 *}
+.  bfd_arch_d30v,      {* Mitsubishi D30V.  *}
+.  bfd_arch_dlx,       {* DLX.  *}
+.  bfd_arch_m68hc11,   {* Motorola 68HC11.  *}
+.  bfd_arch_m68hc12,   {* Motorola 68HC12.  *}
 .#define bfd_mach_m6812_default 0
-.#define bfd_mach_m6812         1
-.#define bfd_mach_m6812s        2
-.  bfd_arch_m9s12x,   {* Freescale S12X *}
-.  bfd_arch_m9s12xg,  {* Freescale XGATE *}
-.  bfd_arch_z8k,       {* Zilog Z8000 *}
+.#define bfd_mach_m6812		1
+.#define bfd_mach_m6812s	2
+.  bfd_arch_m9s12x,    {* Freescale S12X.  *}
+.  bfd_arch_m9s12xg,   {* Freescale XGATE.  *}
+.  bfd_arch_z8k,       {* Zilog Z8000.  *}
 .#define bfd_mach_z8001		1
 .#define bfd_mach_z8002		2
-.  bfd_arch_h8500,     {* Renesas H8/500 (formerly Hitachi H8/500) *}
-.  bfd_arch_sh,        {* Renesas / SuperH SH (formerly Hitachi SH) *}
-.#define bfd_mach_sh            1
-.#define bfd_mach_sh2        0x20
-.#define bfd_mach_sh_dsp     0x2d
-.#define bfd_mach_sh2a       0x2a
-.#define bfd_mach_sh2a_nofpu 0x2b
+.  bfd_arch_h8500,     {* Renesas H8/500 (formerly Hitachi H8/500).  *}
+.  bfd_arch_sh,	       {* Renesas / SuperH SH (formerly Hitachi SH).  *}
+.#define bfd_mach_sh				1
+.#define bfd_mach_sh2				0x20
+.#define bfd_mach_sh_dsp			0x2d
+.#define bfd_mach_sh2a				0x2a
+.#define bfd_mach_sh2a_nofpu			0x2b
 .#define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
-.#define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
-.#define bfd_mach_sh2a_or_sh4  0x2a3
-.#define bfd_mach_sh2a_or_sh3e 0x2a4
-.#define bfd_mach_sh2e       0x2e
-.#define bfd_mach_sh3        0x30
-.#define bfd_mach_sh3_nommu  0x31
-.#define bfd_mach_sh3_dsp    0x3d
-.#define bfd_mach_sh3e       0x3e
-.#define bfd_mach_sh4        0x40
-.#define bfd_mach_sh4_nofpu  0x41
-.#define bfd_mach_sh4_nommu_nofpu  0x42
-.#define bfd_mach_sh4a       0x4a
-.#define bfd_mach_sh4a_nofpu 0x4b
-.#define bfd_mach_sh4al_dsp  0x4d
-.#define bfd_mach_sh5        0x50
-.  bfd_arch_alpha,     {* Dec Alpha *}
-.#define bfd_mach_alpha_ev4  0x10
-.#define bfd_mach_alpha_ev5  0x20
-.#define bfd_mach_alpha_ev6  0x30
+.#define bfd_mach_sh2a_nofpu_or_sh3_nommu	0x2a2
+.#define bfd_mach_sh2a_or_sh4			0x2a3
+.#define bfd_mach_sh2a_or_sh3e			0x2a4
+.#define bfd_mach_sh2e				0x2e
+.#define bfd_mach_sh3				0x30
+.#define bfd_mach_sh3_nommu			0x31
+.#define bfd_mach_sh3_dsp			0x3d
+.#define bfd_mach_sh3e				0x3e
+.#define bfd_mach_sh4				0x40
+.#define bfd_mach_sh4_nofpu			0x41
+.#define bfd_mach_sh4_nommu_nofpu		0x42
+.#define bfd_mach_sh4a				0x4a
+.#define bfd_mach_sh4a_nofpu			0x4b
+.#define bfd_mach_sh4al_dsp			0x4d
+.#define bfd_mach_sh5				0x50
+.  bfd_arch_alpha,     {* Dec Alpha.  *}
+.#define bfd_mach_alpha_ev4	0x10
+.#define bfd_mach_alpha_ev5	0x20
+.#define bfd_mach_alpha_ev6	0x30
 .  bfd_arch_arm,       {* Advanced Risc Machines ARM.  *}
 .#define bfd_mach_arm_unknown	0
 .#define bfd_mach_arm_2		1
 .#define bfd_mach_arm_2a	2
 .#define bfd_mach_arm_3		3
-.#define bfd_mach_arm_3M 	4
-.#define bfd_mach_arm_4 	5
-.#define bfd_mach_arm_4T 	6
-.#define bfd_mach_arm_5 	7
+.#define bfd_mach_arm_3M	4
+.#define bfd_mach_arm_4		5
+.#define bfd_mach_arm_4T	6
+.#define bfd_mach_arm_5		7
 .#define bfd_mach_arm_5T	8
 .#define bfd_mach_arm_5TE	9
 .#define bfd_mach_arm_XScale	10
 .#define bfd_mach_arm_ep9312	11
 .#define bfd_mach_arm_iWMMXt	12
 .#define bfd_mach_arm_iWMMXt2	13
-.  bfd_arch_nds32,     {* Andes NDS32 *}
-.#define bfd_mach_n1            1
-.#define bfd_mach_n1h           2
-.#define bfd_mach_n1h_v2        3
-.#define bfd_mach_n1h_v3        4
-.#define bfd_mach_n1h_v3m       5
-.  bfd_arch_ns32k,     {* National Semiconductors ns32000 *}
-.  bfd_arch_w65,       {* WDC 65816 *}
-.  bfd_arch_tic30,     {* Texas Instruments TMS320C30 *}
-.  bfd_arch_tic4x,     {* Texas Instruments TMS320C3X/4X *}
-.#define bfd_mach_tic3x         30
-.#define bfd_mach_tic4x         40
-.  bfd_arch_tic54x,    {* Texas Instruments TMS320C54X *}
-.  bfd_arch_tic6x,     {* Texas Instruments TMS320C6X *}
-.  bfd_arch_tic80,     {* TI TMS320c80 (MVP) *}
-.  bfd_arch_v850,      {* NEC V850 *}
-.  bfd_arch_v850_rh850,{* NEC V850 (using RH850 ABI) *}
-.#define bfd_mach_v850          1
-.#define bfd_mach_v850e 	'E'
-.#define bfd_mach_v850e1        '1'
-.#define bfd_mach_v850e2        0x4532
-.#define bfd_mach_v850e2v3      0x45325633
-.#define bfd_mach_v850e3v5      0x45335635 {* ('E'|'3'|'V'|'5') *}
-.  bfd_arch_arc,       {* ARC Cores *}
-.#define bfd_mach_arc_a4        0
-.#define bfd_mach_arc_a5        1
-.#define bfd_mach_arc_arc600    2
-.#define bfd_mach_arc_arc601    4
-.#define bfd_mach_arc_arc700    3
-.#define bfd_mach_arc_arcv2     5
-. bfd_arch_m32c,     {* Renesas M16C/M32C.  *}
-.#define bfd_mach_m16c        0x75
-.#define bfd_mach_m32c        0x78
-.  bfd_arch_m32r,      {* Renesas M32R (formerly Mitsubishi M32R/D) *}
+.  bfd_arch_nds32,     {* Andes NDS32.  *}
+.#define bfd_mach_n1		1
+.#define bfd_mach_n1h		2
+.#define bfd_mach_n1h_v2	3
+.#define bfd_mach_n1h_v3	4
+.#define bfd_mach_n1h_v3m	5
+.  bfd_arch_ns32k,     {* National Semiconductors ns32000.  *}
+.  bfd_arch_w65,       {* WDC 65816.  *}
+.  bfd_arch_tic30,     {* Texas Instruments TMS320C30.  *}
+.  bfd_arch_tic4x,     {* Texas Instruments TMS320C3X/4X.  *}
+.#define bfd_mach_tic3x		30
+.#define bfd_mach_tic4x		40
+.  bfd_arch_tic54x,    {* Texas Instruments TMS320C54X.  *}
+.  bfd_arch_tic6x,     {* Texas Instruments TMS320C6X.  *}
+.  bfd_arch_tic80,     {* TI TMS320c80 (MVP).  *}
+.  bfd_arch_v850,      {* NEC V850.  *}
+.  bfd_arch_v850_rh850,{* NEC V850 (using RH850 ABI).  *}
+.#define bfd_mach_v850		1
+.#define bfd_mach_v850e		'E'
+.#define bfd_mach_v850e1	'1'
+.#define bfd_mach_v850e2	0x4532
+.#define bfd_mach_v850e2v3	0x45325633
+.#define bfd_mach_v850e3v5	0x45335635 {* ('E'|'3'|'V'|'5').  *}
+.  bfd_arch_arc,       {* ARC Cores.  *}
+.#define bfd_mach_arc_a4	0
+.#define bfd_mach_arc_a5	1
+.#define bfd_mach_arc_arc600	2
+.#define bfd_mach_arc_arc601	4
+.#define bfd_mach_arc_arc700	3
+.#define bfd_mach_arc_arcv2	5
+. bfd_arch_m32c,       {* Renesas M16C/M32C.  *}
+.#define bfd_mach_m16c		0x75
+.#define bfd_mach_m32c		0x78
+.  bfd_arch_m32r,      {* Renesas M32R (formerly Mitsubishi M32R/D).  *}
 .#define bfd_mach_m32r		1 {* For backwards compatibility.  *}
 .#define bfd_mach_m32rx		'x'
 .#define bfd_mach_m32r2		'2'
-.  bfd_arch_mn10200,   {* Matsushita MN10200 *}
-.  bfd_arch_mn10300,   {* Matsushita MN10300 *}
-.#define bfd_mach_mn10300		300
+.  bfd_arch_mn10200,   {* Matsushita MN10200.  *}
+.  bfd_arch_mn10300,   {* Matsushita MN10300.  *}
+.#define bfd_mach_mn10300	300
 .#define bfd_mach_am33		330
 .#define bfd_mach_am33_2	332
 .  bfd_arch_fr30,
@@ -395,13 +399,14 @@ DESCRIPTION
 .#define bfd_mach_fr300		300
 .#define bfd_mach_fr400		400
 .#define bfd_mach_fr450		450
-.#define bfd_mach_frvtomcat	499	{* fr500 prototype *}
+.#define bfd_mach_frvtomcat	499	{* fr500 prototype.  *}
 .#define bfd_mach_fr500		500
 .#define bfd_mach_fr550		550
-.  bfd_arch_moxie,       {* The moxie processor *}
+.  bfd_arch_moxie,     {* The moxie processor.  *}
 .#define bfd_mach_moxie		1
-.  bfd_arch_ft32,       {* The ft32 processor *}
+.  bfd_arch_ft32,      {* The ft32 processor.  *}
 .#define bfd_mach_ft32		1
+.#define bfd_mach_ft32b		2
 .  bfd_arch_mcore,
 .  bfd_arch_mep,
 .#define bfd_mach_mep		1
@@ -409,22 +414,22 @@ DESCRIPTION
 .#define bfd_mach_mep_c5	0x6335
 .  bfd_arch_metag,
 .#define bfd_mach_metag		1
-.  bfd_arch_ia64,      {* HP/Intel ia64 *}
+.  bfd_arch_ia64,      {* HP/Intel ia64.  *}
 .#define bfd_mach_ia64_elf64	64
 .#define bfd_mach_ia64_elf32	32
 .  bfd_arch_ip2k,      {* Ubicom IP2K microcontrollers. *}
 .#define bfd_mach_ip2022	1
 .#define bfd_mach_ip2022ext	2
 . bfd_arch_iq2000,     {* Vitesse IQ2000.  *}
-.#define bfd_mach_iq2000        1
-.#define bfd_mach_iq10          2
-.  bfd_arch_epiphany,	{* Adapteva EPIPHANY *}
+.#define bfd_mach_iq2000	1
+.#define bfd_mach_iq10		2
+.  bfd_arch_epiphany,  {* Adapteva EPIPHANY.  *}
 .#define bfd_mach_epiphany16	1
 .#define bfd_mach_epiphany32	2
 .  bfd_arch_mt,
-.#define bfd_mach_ms1           1
-.#define bfd_mach_mrisc2        2
-.#define bfd_mach_ms2           3
+.#define bfd_mach_ms1		1
+.#define bfd_mach_mrisc2	2
+.#define bfd_mach_ms2		3
 .  bfd_arch_pj,
 .  bfd_arch_avr,       {* Atmel AVR microcontrollers.  *}
 .#define bfd_mach_avr1		1
@@ -437,23 +442,23 @@ DESCRIPTION
 .#define bfd_mach_avr5		5
 .#define bfd_mach_avr51		51
 .#define bfd_mach_avr6		6
-.#define bfd_mach_avrtiny   100
-.#define bfd_mach_avrxmega1 101
-.#define bfd_mach_avrxmega2 102
-.#define bfd_mach_avrxmega3 103
-.#define bfd_mach_avrxmega4 104
-.#define bfd_mach_avrxmega5 105
-.#define bfd_mach_avrxmega6 106
-.#define bfd_mach_avrxmega7 107
-.  bfd_arch_bfin,        {* ADI Blackfin *}
-.#define bfd_mach_bfin          1
-.  bfd_arch_cr16,       {* National Semiconductor CompactRISC (ie CR16). *}
+.#define bfd_mach_avrtiny	100
+.#define bfd_mach_avrxmega1	101
+.#define bfd_mach_avrxmega2	102
+.#define bfd_mach_avrxmega3	103
+.#define bfd_mach_avrxmega4	104
+.#define bfd_mach_avrxmega5	105
+.#define bfd_mach_avrxmega6	106
+.#define bfd_mach_avrxmega7	107
+.  bfd_arch_bfin,      {* ADI Blackfin.  *}
+.#define bfd_mach_bfin		1
+.  bfd_arch_cr16,      {* National Semiconductor CompactRISC (ie CR16).  *}
 .#define bfd_mach_cr16		1
-.  bfd_arch_cr16c,       {* National Semiconductor CompactRISC. *}
+.  bfd_arch_cr16c,     {* National Semiconductor CompactRISC.  *}
 .#define bfd_mach_cr16c		1
 .  bfd_arch_crx,       {*  National Semiconductor CRX.  *}
 .#define bfd_mach_crx		1
-.  bfd_arch_cris,      {* Axis CRIS *}
+.  bfd_arch_cris,      {* Axis CRIS.  *}
 .#define bfd_mach_cris_v0_v10	255
 .#define bfd_mach_cris_v32	32
 .#define bfd_mach_cris_v10_v32	1032
@@ -461,77 +466,77 @@ DESCRIPTION
 .#define bfd_mach_riscv32	132
 .#define bfd_mach_riscv64	164
 .  bfd_arch_rl78,
-.#define bfd_mach_rl78	0x75
-.  bfd_arch_rx,        {* Renesas RX.  *}
-.#define bfd_mach_rx            0x75
-.  bfd_arch_s390,      {* IBM s390 *}
-.#define bfd_mach_s390_31       31
-.#define bfd_mach_s390_64       64
-.  bfd_arch_score,     {* Sunplus score *}
-.#define bfd_mach_score3         3
-.#define bfd_mach_score7         7
+.#define bfd_mach_rl78		0x75
+.  bfd_arch_rx,	       {* Renesas RX.  *}
+.#define bfd_mach_rx		0x75
+.  bfd_arch_s390,      {* IBM s390.  *}
+.#define bfd_mach_s390_31	31
+.#define bfd_mach_s390_64	64
+.  bfd_arch_score,     {* Sunplus score.  *}
+.#define bfd_mach_score3	3
+.#define bfd_mach_score7	7
 .  bfd_arch_mmix,      {* Donald Knuth's educational processor.  *}
 .  bfd_arch_xstormy16,
 .#define bfd_mach_xstormy16	1
 .  bfd_arch_msp430,    {* Texas Instruments MSP430 architecture.  *}
-.#define bfd_mach_msp11          11
-.#define bfd_mach_msp110         110
-.#define bfd_mach_msp12          12
-.#define bfd_mach_msp13          13
-.#define bfd_mach_msp14          14
-.#define bfd_mach_msp15          15
-.#define bfd_mach_msp16          16
-.#define bfd_mach_msp20          20
-.#define bfd_mach_msp21          21
-.#define bfd_mach_msp22          22
-.#define bfd_mach_msp23          23
-.#define bfd_mach_msp24          24
-.#define bfd_mach_msp26          26
-.#define bfd_mach_msp31          31
-.#define bfd_mach_msp32          32
-.#define bfd_mach_msp33          33
-.#define bfd_mach_msp41          41
-.#define bfd_mach_msp42          42
-.#define bfd_mach_msp43          43
-.#define bfd_mach_msp44          44
-.#define bfd_mach_msp430x        45
-.#define bfd_mach_msp46          46
-.#define bfd_mach_msp47          47
-.#define bfd_mach_msp54          54
-.  bfd_arch_xc16x,     {* Infineon's XC16X Series.               *}
-.#define bfd_mach_xc16x         1
-.#define bfd_mach_xc16xl        2
-.#define bfd_mach_xc16xs        3
-.  bfd_arch_xgate,   {* Freescale XGATE *}
-.#define bfd_mach_xgate         1
+.#define bfd_mach_msp11		11
+.#define bfd_mach_msp110	110
+.#define bfd_mach_msp12		12
+.#define bfd_mach_msp13		13
+.#define bfd_mach_msp14		14
+.#define bfd_mach_msp15		15
+.#define bfd_mach_msp16		16
+.#define bfd_mach_msp20		20
+.#define bfd_mach_msp21		21
+.#define bfd_mach_msp22		22
+.#define bfd_mach_msp23		23
+.#define bfd_mach_msp24		24
+.#define bfd_mach_msp26		26
+.#define bfd_mach_msp31		31
+.#define bfd_mach_msp32		32
+.#define bfd_mach_msp33		33
+.#define bfd_mach_msp41		41
+.#define bfd_mach_msp42		42
+.#define bfd_mach_msp43		43
+.#define bfd_mach_msp44		44
+.#define bfd_mach_msp430x	45
+.#define bfd_mach_msp46		46
+.#define bfd_mach_msp47		47
+.#define bfd_mach_msp54		54
+.  bfd_arch_xc16x,     {* Infineon's XC16X Series.  *}
+.#define bfd_mach_xc16x		1
+.#define bfd_mach_xc16xl	2
+.#define bfd_mach_xc16xs	3
+.  bfd_arch_xgate,     {* Freescale XGATE.  *}
+.#define bfd_mach_xgate		1
 .  bfd_arch_xtensa,    {* Tensilica's Xtensa cores.  *}
 .#define bfd_mach_xtensa	1
 .  bfd_arch_z80,
-.#define bfd_mach_z80strict      1 {* No undocumented opcodes.  *}
-.#define bfd_mach_z80            3 {* With ixl, ixh, iyl, and iyh.  *}
-.#define bfd_mach_z80full        7 {* All undocumented instructions.  *}
-.#define bfd_mach_r800           11 {* R800: successor with multiplication.  *}
-.  bfd_arch_lm32,      {* Lattice Mico32 *}
-.#define bfd_mach_lm32      1
-.  bfd_arch_microblaze,{* Xilinx MicroBlaze. *}
-.  bfd_arch_tilepro,   {* Tilera TILEPro *}
-.  bfd_arch_tilegx, {* Tilera TILE-Gx *}
-.#define bfd_mach_tilepro   1
-.#define bfd_mach_tilegx    1
-.#define bfd_mach_tilegx32  2
-.  bfd_arch_aarch64,   {* AArch64  *}
+.#define bfd_mach_z80strict	1 {* No undocumented opcodes.  *}
+.#define bfd_mach_z80		3 {* With ixl, ixh, iyl, and iyh.  *}
+.#define bfd_mach_z80full	7 {* All undocumented instructions.  *}
+.#define bfd_mach_r800		11 {* R800: successor with multiplication.  *}
+.  bfd_arch_lm32,      {* Lattice Mico32.  *}
+.#define bfd_mach_lm32		1
+.  bfd_arch_microblaze,{* Xilinx MicroBlaze.  *}
+.  bfd_arch_tilepro,   {* Tilera TILEPro.  *}
+.  bfd_arch_tilegx,    {* Tilera TILE-Gx.  *}
+.#define bfd_mach_tilepro	1
+.#define bfd_mach_tilegx	1
+.#define bfd_mach_tilegx32	2
+.  bfd_arch_aarch64,   {* AArch64.  *}
 .#define bfd_mach_aarch64 0
 .#define bfd_mach_aarch64_ilp32	32
-.  bfd_arch_nios2,	{* Nios II *}
+.  bfd_arch_nios2,     {* Nios II.  *}
 .#define bfd_mach_nios2		0
 .#define bfd_mach_nios2r1	1
 .#define bfd_mach_nios2r2	2
-.  bfd_arch_visium,	{* Visium *}
+.  bfd_arch_visium,    {* Visium.  *}
 .#define bfd_mach_visium	1
-.  bfd_arch_wasm32,     {* WebAssembly *}
-.#define bfd_mach_wasm32        1
-.  bfd_arch_pru,	{* PRU *}
-.#define bfd_mach_pru	0
+.  bfd_arch_wasm32,    {* WebAssembly.  *}
+.#define bfd_mach_wasm32	1
+.  bfd_arch_pru,       {* PRU.  *}
+.#define bfd_mach_pru		0
 .  bfd_arch_last
 .  };
 */
@@ -559,8 +564,8 @@ DESCRIPTION
 .     The default arch should be the first entry for an arch so that
 .     all the entries for that arch can be accessed via <<next>>.  *}
 .  bfd_boolean the_default;
-.  const struct bfd_arch_info * (*compatible)
-.    (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
+.  const struct bfd_arch_info * (*compatible) (const struct bfd_arch_info *,
+.					       const struct bfd_arch_info *);
 .
 .  bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
 .
@@ -1385,8 +1390,8 @@ SYNOPSIS
 
 DESCRIPTION
 	Return the number of octets (8-bit quantities) per target byte
-        (minimum addressable unit).  In most cases, this will be one, but some
-        DSP targets have 16, 32, or even 48 bits per byte.
+	(minimum addressable unit).  In most cases, this will be one, but some
+	DSP targets have 16, 32, or even 48 bits per byte.
 */
 
 unsigned int
@@ -1407,8 +1412,8 @@ SYNOPSIS
 DESCRIPTION
 	See bfd_octets_per_byte.
 
-        This routine is provided for those cases where a bfd * is not
-        available
+	This routine is provided for those cases where a bfd * is not
+	available
 */
 
 unsigned int
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/arc-plt.def ./bfd/arc-plt.def
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/arc-plt.def	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/arc-plt.def	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Arc V2 Related PLT entries.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
    Contributed by Cupertino Miranda (cmiranda@synopsys.com).
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -58,7 +58,7 @@ PLT_TYPE_END (ELF_ARCV2_ABS)
 
 /* Non Arc V2 Related PLT entries.  */
 
-PLT_TYPE_START (ELF_ARC_PIC) 
+PLT_TYPE_START (ELF_ARC_PIC)
   PLT_ENTRY (0x2730,0x7f8b,0x0000,0x0000) /* ld %r11, [pcl,0] : 0 to be replaced by _DYNAMIC@GOTPC+4 */
   PLT_ENTRY (0x2730,0x7f8a,0x0000,0x0000) /* ld %r10, [pcl,0] : 0 to be replaced by -DYNAMIC@GOTPC+8  */
   PLT_ENTRY (0x2020,0x0280)		 /* j [%r10] */
@@ -74,9 +74,9 @@ PLT_TYPE_START (ELF_ARC_PIC) 
 
   ELEM_RELOC (4, 32, 0xFFFFFFFF, SGOT | RELATIVE_INSN_32 | MIDDLE_ENDIAN, 0)
 
-PLT_TYPE_END (ELF_ARC_PIC) 
+PLT_TYPE_END (ELF_ARC_PIC)
 
-PLT_TYPE_START (ELF_ARC_ABS) 
+PLT_TYPE_START (ELF_ARC_ABS)
   PLT_ENTRY (0x1600,0x700b,0x0000,0x0000) /* ld %r11, [0] */
   PLT_ENTRY (0x1600,0x700a,0x0000,0x0000) /* ld %r10, [0] */
   PLT_ENTRY (0x2020,0x0280)		 /* j [%r10] */
@@ -91,4 +91,4 @@ PLT_TYPE_START (ELF_ARC_ABS) 
 
   ELEM_RELOC (4, 32, 0xFFFFFFFF, SGOT | RELATIVE_INSN_32 | MIDDLE_ENDIAN, 0)
 
-PLT_TYPE_END (ELF_ARC_ABS) 
+PLT_TYPE_END (ELF_ARC_ABS)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/arc-plt.h ./bfd/arc-plt.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/arc-plt.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/arc-plt.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* ARC-specific header file for PLT support.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
    Contributed by Cupertino Miranda (cmiranda@synopsys.com).
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -43,11 +43,11 @@ enum plt_reloc_symbol
   MIDDLE_ENDIAN = (1 << 11)
 };
 
-#define IS_RELATIVE(S)      ((S & (RELATIVE | RELATIVE_INSN_24 | RELATIVE_INSN_32)) != 0)
-#define IS_INSN_32(S)       ((S & RELATIVE_INSN_32) != 0)
-#define IS_INSN_24(S)       ((S & RELATIVE_INSN_24) != 0)
+#define IS_RELATIVE(S)	    ((S & (RELATIVE | RELATIVE_INSN_24 | RELATIVE_INSN_32)) != 0)
+#define IS_INSN_32(S)	    ((S & RELATIVE_INSN_32) != 0)
+#define IS_INSN_24(S)	    ((S & RELATIVE_INSN_24) != 0)
 #define IS_MIDDLE_ENDIAN(S) ((S & MIDDLE_ENDIAN) != 0)
-#define SYM_ONLY(S)         (S & 0xFF)
+#define SYM_ONLY(S)	    (S & 0xFF)
 
 struct plt_reloc
 {
@@ -115,7 +115,7 @@ struct plt_version_t
 #define PLT_TYPE_END(NAME) \
     {0, 0, 0, LAST_RELOC, 0} \
   };
-#define PLT_ENTRY(...) 
+#define PLT_ENTRY(...)
 #define PLT_ELEM(...)
 #define ENTRY_RELOC(...) { __VA_ARGS__ },
 #define ELEM_RELOC(...)
@@ -152,7 +152,7 @@ struct plt_version_t
 #define PLT_TYPE_END(NAME) \
     {0, 0, 0, LAST_RELOC, 0} \
   };
-#define PLT_ENTRY(...) 
+#define PLT_ENTRY(...)
 #define PLT_ELEM(...)
 #define ENTRY_RELOC(...)
 #define ELEM_RELOC(...) { __VA_ARGS__ },
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/armnetbsd.c ./bfd/armnetbsd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/armnetbsd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/armnetbsd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for NetBSD/ARM a.out-ish binaries.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -25,15 +25,15 @@
 #define	SEGMENT_SIZE		TARGET_PAGE_SIZE
 
 #define	DEFAULT_ARCH		bfd_arch_arm
-#define	DEFAULT_MID 		M_ARM6_NETBSD
+#define	DEFAULT_MID		M_ARM6_NETBSD
 /*#define MACHTYPE_OK(mtype) ((mtype) == M_ARM6_NETBSD)*/
 
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
    remove whitespace added here, and thus will fail to concatenate
    the tokens.  */
-#define MY(OP) 			CONCAT2 (arm_aout_nbsd_, OP)
+#define MY(OP)			CONCAT2 (arm_aout_nbsd_, OP)
 
 /* This needs to start with a.out so GDB knows it is an a.out variant.  */
-#define TARGETNAME 		"a.out-arm-netbsd"
+#define TARGETNAME		"a.out-arm-netbsd"
 
 #include "netbsd.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/bfd.c ./bfd/bfd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/bfd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/bfd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Generic BFD library interface and support routines.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -100,59 +100,59 @@ CODE_FRAGMENT
 .     the object_flags values have mostly just been copied from backend
 .     to another, and are not necessarily correct).  *}
 .
-.#define BFD_NO_FLAGS	0x00
+.#define BFD_NO_FLAGS                0x0
 .
 .  {* BFD contains relocation entries.  *}
-.#define HAS_RELOC   	0x01
+.#define HAS_RELOC                   0x1
 .
 .  {* BFD is directly executable.  *}
-.#define EXEC_P      	0x02
+.#define EXEC_P                      0x2
 .
 .  {* BFD has line number information (basically used for F_LNNO in a
 .     COFF header).  *}
-.#define HAS_LINENO  	0x04
+.#define HAS_LINENO                  0x4
 .
 .  {* BFD has debugging information.  *}
-.#define HAS_DEBUG   	0x08
+.#define HAS_DEBUG                  0x08
 .
 .  {* BFD has symbols.  *}
-.#define HAS_SYMS    	0x10
+.#define HAS_SYMS                   0x10
 .
 .  {* BFD has local symbols (basically used for F_LSYMS in a COFF
 .     header).  *}
-.#define HAS_LOCALS  	0x20
+.#define HAS_LOCALS                 0x20
 .
 .  {* BFD is a dynamic object.  *}
-.#define DYNAMIC     	0x40
+.#define DYNAMIC                    0x40
 .
 .  {* Text section is write protected (if D_PAGED is not set, this is
 .     like an a.out NMAGIC file) (the linker sets this by default, but
 .     clears it for -r or -N).  *}
-.#define WP_TEXT     	0x80
+.#define WP_TEXT                    0x80
 .
 .  {* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
 .     linker sets this by default, but clears it for -r or -n or -N).  *}
-.#define D_PAGED     	0x100
+.#define D_PAGED                   0x100
 .
 .  {* BFD is relaxable (this means that bfd_relax_section may be able to
 .     do something) (sometimes bfd_relax_section can do something even if
 .     this is not set).  *}
-.#define BFD_IS_RELAXABLE 0x200
+.#define BFD_IS_RELAXABLE          0x200
 .
 .  {* This may be set before writing out a BFD to request using a
 .     traditional format.  For example, this is used to request that when
 .     writing out an a.out object the symbols not be hashed to eliminate
 .     duplicates.  *}
-.#define BFD_TRADITIONAL_FORMAT 0x400
+.#define BFD_TRADITIONAL_FORMAT    0x400
 .
 .  {* This flag indicates that the BFD contents are actually cached
 .     in memory.  If this is set, iostream points to a bfd_in_memory
 .     struct.  *}
-.#define BFD_IN_MEMORY 0x800
+.#define BFD_IN_MEMORY             0x800
 .
 .  {* This BFD has been created by the linker and doesn't correspond
 .     to any input file.  *}
-.#define BFD_LINKER_CREATED 0x1000
+.#define BFD_LINKER_CREATED       0x1000
 .
 .  {* This may be set before writing out a BFD to request that it
 .     be written using values for UIDs, GIDs, timestamps, etc. that
@@ -160,23 +160,23 @@ CODE_FRAGMENT
 .#define BFD_DETERMINISTIC_OUTPUT 0x2000
 .
 .  {* Compress sections in this BFD.  *}
-.#define BFD_COMPRESS 0x4000
+.#define BFD_COMPRESS             0x4000
 .
 .  {* Decompress sections in this BFD.  *}
-.#define BFD_DECOMPRESS 0x8000
+.#define BFD_DECOMPRESS           0x8000
 .
 .  {* BFD is a dummy, for plugins.  *}
-.#define BFD_PLUGIN 0x10000
+.#define BFD_PLUGIN              0x10000
 .
 .  {* Compress sections in this BFD with SHF_COMPRESSED from gABI.  *}
-.#define BFD_COMPRESS_GABI 0x20000
+.#define BFD_COMPRESS_GABI       0x20000
 .
 .  {* Convert ELF common symbol type to STT_COMMON or STT_OBJECT in this
 .     BFD.  *}
-.#define BFD_CONVERT_ELF_COMMON 0x40000
+.#define BFD_CONVERT_ELF_COMMON  0x40000
 .
 .  {* Use the ELF STT_COMMON type in this BFD.  *}
-.#define BFD_USE_ELF_STT_COMMON 0x80000
+.#define BFD_USE_ELF_STT_COMMON  0x80000
 .
 .  {* Flags bits to be saved in bfd_preserve_save.  *}
 .#define BFD_FLAGS_SAVED \
@@ -290,7 +290,7 @@ CODE_FRAGMENT
 .  struct bfd *archive_next;    {* The next BFD in the archive.  *}
 .  struct bfd *archive_head;    {* The first BFD in the archive.  *}
 .  struct bfd *nested_archives; {* List of nested archive in a flattened
-.                                  thin archive.  *}
+.				   thin archive.  *}
 .
 .  union {
 .    {* For input BFDs, a chain of BFDs involved in a link.  *}
@@ -402,7 +402,7 @@ SECTION
 	individual documentation for precise semantics).  On an error,
 	they call <<bfd_set_error>> to set an error condition that callers
 	can check by calling <<bfd_get_error>>.
-        If that returns <<bfd_error_system_call>>, then check
+	If that returns <<bfd_error_system_call>>, then check
 	<<errno>>.
 
 	The easiest way to report a BFD error to the user is to
@@ -497,32 +497,47 @@ FUNCTION
 	bfd_set_error
 
 SYNOPSIS
-	void bfd_set_error (bfd_error_type error_tag, ...);
+	void bfd_set_error (bfd_error_type error_tag);
 
 DESCRIPTION
 	Set the BFD error condition to be @var{error_tag}.
-	If @var{error_tag} is bfd_error_on_input, then this function
-	takes two more parameters, the input bfd where the error
-	occurred, and the bfd_error_type error.
+
+	@var{error_tag} must not be bfd_error_on_input.  Use
+	bfd_set_input_error for input errors instead.
 */
 
 void
-bfd_set_error (bfd_error_type error_tag, ...)
+bfd_set_error (bfd_error_type error_tag)
 {
   bfd_error = error_tag;
-  if (error_tag == bfd_error_on_input)
-    {
-      /* This is an error that occurred during bfd_close when
-	 writing an archive, but on one of the input files.  */
-      va_list ap;
-
-      va_start (ap, error_tag);
-      input_bfd = va_arg (ap, bfd *);
-      input_error = (bfd_error_type) va_arg (ap, int);
-      if (input_error >= bfd_error_on_input)
-	abort ();
-      va_end (ap);
-    }
+  if (bfd_error >= bfd_error_on_input)
+    abort ();
+}
+
+/*
+FUNCTION
+	bfd_set_input_error
+
+SYNOPSIS
+	void bfd_set_input_error (bfd *input, bfd_error_type error_tag);
+
+DESCRIPTION
+
+	Set the BFD error condition to be bfd_error_on_input.
+	@var{input} is the input bfd where the error occurred, and
+	@var{error_tag} the bfd_error_type error.
+*/
+
+void
+bfd_set_input_error (bfd *input, bfd_error_type error_tag)
+{
+  /* This is an error that occurred during bfd_close when writing an
+     archive, but on one of the input files.  */
+  bfd_error = bfd_error_on_input;
+  input_bfd = input;
+  input_error = error_tag;
+  if (input_error >= bfd_error_on_input)
+    abort ();
 }
 
 /*
@@ -611,22 +626,48 @@ CODE_FRAGMENT
 
 static const char *_bfd_error_program_name;
 
-/* This macro and _doprnt taken from libiberty _doprnt.c, tidied a
-   little and extended to handle '%A' and '%B'.  */
+/* Support for positional parameters.  */
+
+union _bfd_doprnt_args
+{
+  int i;
+  long l;
+  long long ll;
+  double d;
+  long double ld;
+  void *p;
+  enum
+  {
+    Bad,
+    Int,
+    Long,
+    LongLong,
+    Double,
+    LongDouble,
+    Ptr
+  } type;
+};
+
+/* This macro and _bfd_doprnt taken from libiberty _doprnt.c, tidied a
+   little and extended to handle '%A', '%B' and positional parameters.
+   'L' as a modifer for integer formats is used for bfd_vma and
+   bfd_size_type args, which vary in size depending on BFD
+   configuration.  */
 
-#define PRINT_TYPE(TYPE) \
+#define PRINT_TYPE(TYPE, FIELD) \
   do								\
     {								\
-      TYPE value = va_arg (ap, TYPE);				\
+      TYPE value = (TYPE) args[arg_no].FIELD;			\
       result = fprintf (stream, specifier, value);		\
     } while (0)
 
 static int
-_doprnt (FILE *stream, const char *format, va_list ap)
+_bfd_doprnt (FILE *stream, const char *format, union _bfd_doprnt_args *args)
 {
   const char *ptr = format;
   char specifier[128];
   int total_printed = 0;
+  unsigned int arg_count = 0;
 
   while (*ptr != '\0')
     {
@@ -642,39 +683,75 @@ _doprnt (FILE *stream, const char *forma
 	    result = fprintf (stream, "%s", ptr);
 	  ptr += result;
 	}
+      else if (ptr[1] == '%')
+	{
+	  fputc ('%', stream);
+	  result = 1;
+	  ptr += 2;
+	}
       else
 	{
 	  /* We have a format specifier!  */
 	  char *sptr = specifier;
 	  int wide_width = 0, short_width = 0;
+	  unsigned int arg_no;
 
 	  /* Copy the % and move forward.  */
 	  *sptr++ = *ptr++;
 
+	  /* Check for a positional parameter.  */
+	  arg_no = -1u;
+	  if (*ptr != '0' && ISDIGIT (*ptr) && ptr[1] == '$')
+	    {
+	      arg_no = *ptr - '1';
+	      ptr += 2;
+	    }
+
 	  /* Move past flags.  */
-	  while (strchr ("-+ #0", *ptr))
+	  while (strchr ("-+ #0'I", *ptr))
 	    *sptr++ = *ptr++;
 
 	  if (*ptr == '*')
 	    {
-	      int value = abs (va_arg (ap, int));
-	      sptr += sprintf (sptr, "%d", value);
+	      int value;
+	      unsigned int arg_index;
+
 	      ptr++;
+	      arg_index = arg_count;
+	      if (*ptr != '0' && ISDIGIT (*ptr) && ptr[1] == '$')
+		{
+		  arg_index = *ptr - '1';
+		  ptr += 2;
+		}
+	      value = abs (args[arg_index].i);
+	      arg_count++;
+	      sptr += sprintf (sptr, "%d", value);
 	    }
 	  else
 	    /* Handle explicit numeric value.  */
 	    while (ISDIGIT (*ptr))
 	      *sptr++ = *ptr++;
 
+	  /* Precision.  */
 	  if (*ptr == '.')
 	    {
 	      /* Copy and go past the period.  */
 	      *sptr++ = *ptr++;
 	      if (*ptr == '*')
 		{
-		  int value = abs (va_arg (ap, int));
-		  sptr += sprintf (sptr, "%d", value);
+		  int value;
+		  unsigned int arg_index;
+
 		  ptr++;
+		  arg_index = arg_count;
+		  if (*ptr != '0' && ISDIGIT (*ptr) && ptr[1] == '$')
+		    {
+		      arg_index = *ptr - '1';
+		      ptr += 2;
+		    }
+		  value = abs (args[arg_index].i);
+		  arg_count++;
+		  sptr += sprintf (sptr, "%d", value);
 		}
 	      else
 		/* Handle explicit numeric value.  */
@@ -703,6 +780,8 @@ _doprnt (FILE *stream, const char *forma
 	  /* Copy the type specifier, and NULL terminate.  */
 	  *sptr++ = *ptr++;
 	  *sptr = '\0';
+	  if ((int) arg_no < 0)
+	    arg_no = arg_count;
 
 	  switch (ptr[-1])
 	    {
@@ -718,24 +797,46 @@ _doprnt (FILE *stream, const char *forma
 		   as an int and trust the C library printf to cast it
 		   to the right width.  */
 		if (short_width)
-		  PRINT_TYPE (int);
+		  PRINT_TYPE (int, i);
 		else
 		  {
+		    /* L modifier for bfd_vma or bfd_size_type may be
+		       either long long or long.  */
+		    if (ptr[-2] == 'L')
+		      {
+			sptr[-2] = 'l';
+			if (BFD_ARCH_SIZE < 64 || BFD_HOST_64BIT_LONG)
+			  wide_width = 1;
+			else
+			  {
+			    sptr[-1] = 'l';
+			    *sptr++ = ptr[-1];
+			    *sptr = '\0';
+			  }
+		      }
+
 		    switch (wide_width)
 		      {
 		      case 0:
-			PRINT_TYPE (int);
+			PRINT_TYPE (int, i);
 			break;
 		      case 1:
-			PRINT_TYPE (long);
+			PRINT_TYPE (long, l);
 			break;
 		      case 2:
 		      default:
-#if defined(__GNUC__) || defined(HAVE_LONG_LONG)
-			PRINT_TYPE (long long);
+#if defined (__MSVCRT__)
+			sptr[-3] = 'I';
+			sptr[-2] = '6';
+			sptr[-1] = '4';
+			*sptr++ = ptr[-1];
+			*sptr = '\0';
+#endif
+#if defined (__GNUC__) || defined (HAVE_LONG_LONG)
+			PRINT_TYPE (long long, ll);
 #else
 			/* Fake it and hope for the best.  */
-			PRINT_TYPE (long);
+			PRINT_TYPE (long, l);
 #endif
 			break;
 		      }
@@ -749,35 +850,32 @@ _doprnt (FILE *stream, const char *forma
 	    case 'G':
 	      {
 		if (wide_width == 0)
-		  PRINT_TYPE (double);
+		  PRINT_TYPE (double, d);
 		else
 		  {
-#if defined(__GNUC__) || defined(HAVE_LONG_DOUBLE)
-		    PRINT_TYPE (long double);
+#if defined (__GNUC__) || defined (HAVE_LONG_DOUBLE)
+		    PRINT_TYPE (long double, ld);
 #else
 		    /* Fake it and hope for the best.  */
-		    PRINT_TYPE (double);
+		    PRINT_TYPE (double, d);
 #endif
 		  }
 	      }
 	      break;
 	    case 's':
-	      PRINT_TYPE (char *);
+	      PRINT_TYPE (char *, p);
 	      break;
 	    case 'p':
-	      PRINT_TYPE (void *);
-	      break;
-	    case '%':
-	      fputc ('%', stream);
-	      result = 1;
+	      PRINT_TYPE (void *, p);
 	      break;
 	    case 'A':
 	      {
-		asection *sec = va_arg (ap, asection *);
+		asection *sec;
 		bfd *abfd;
 		const char *group = NULL;
 		struct coff_comdat_info *ci;
 
+		sec = (asection *) args[arg_no].p;
 		if (sec == NULL)
 		  /* Invoking %A with a null section pointer is an
 		     internal error.  */
@@ -801,8 +899,9 @@ _doprnt (FILE *stream, const char *forma
 	      break;
 	    case 'B':
 	      {
-		bfd *abfd = va_arg (ap, bfd *);
+		bfd *abfd;
 
+		abfd = (bfd *) args[arg_no].p;
 		if (abfd == NULL)
 		  /* Invoking %B with a null bfd pointer is an
 		     internal error.  */
@@ -818,6 +917,7 @@ _doprnt (FILE *stream, const char *forma
 	    default:
 	      abort();
 	    }
+	  arg_count++;
 	}
       if (result == -1)
 	return -1;
@@ -827,15 +927,237 @@ _doprnt (FILE *stream, const char *forma
   return total_printed;
 }
 
+/* First pass over FORMAT to gather ARGS.  Returns number of args.  */
+
+static unsigned int
+_bfd_doprnt_scan (const char *format, union _bfd_doprnt_args *args)
+{
+  const char *ptr = format;
+  unsigned int arg_count = 0;
+
+  while (*ptr != '\0')
+    {
+      if (*ptr != '%')
+	{
+	  ptr = strchr (ptr, '%');
+	  if (ptr == NULL)
+	    break;
+	}
+      else if (ptr[1] == '%')
+	ptr += 2;
+      else
+	{
+	  int wide_width = 0, short_width = 0;
+	  unsigned int arg_no;
+	  int arg_type;
+
+	  ptr++;
+
+	  /* Check for a positional parameter.  */
+	  arg_no = -1u;
+	  if (*ptr != '0' && ISDIGIT (*ptr) && ptr[1] == '$')
+	    {
+	      arg_no = *ptr - '1';
+	      ptr += 2;
+	    }
+
+	  /* Move past flags.  */
+	  while (strchr ("-+ #0'I", *ptr))
+	    ptr++;
+
+	  if (*ptr == '*')
+	    {
+	      unsigned int arg_index;
+
+	      ptr++;
+	      arg_index = arg_count;
+	      if (*ptr != '0' && ISDIGIT (*ptr) && ptr[1] == '$')
+		{
+		  arg_index = *ptr - '1';
+		  ptr += 2;
+		}
+	      if (arg_index >= 9)
+		abort ();
+	      args[arg_index].type = Int;
+	      arg_count++;
+	    }
+	  else
+	    /* Handle explicit numeric value.  */
+	    while (ISDIGIT (*ptr))
+	      ptr++;
+
+	  /* Precision.  */
+	  if (*ptr == '.')
+	    {
+	      ptr++;
+	      if (*ptr == '*')
+		{
+		  unsigned int arg_index;
+
+		  ptr++;
+		  arg_index = arg_count;
+		  if (*ptr != '0' && ISDIGIT (*ptr) && ptr[1] == '$')
+		    {
+		      arg_index = *ptr - '1';
+		      ptr += 2;
+		    }
+		  if (arg_index >= 9)
+		    abort ();
+		  args[arg_index].type = Int;
+		  arg_count++;
+		}
+	      else
+		/* Handle explicit numeric value.  */
+		while (ISDIGIT (*ptr))
+		  ptr++;
+	    }
+	  while (strchr ("hlL", *ptr))
+	    {
+	      switch (*ptr)
+		{
+		case 'h':
+		  short_width = 1;
+		  break;
+		case 'l':
+		  wide_width++;
+		  break;
+		case 'L':
+		  wide_width = 2;
+		  break;
+		default:
+		  abort();
+		}
+	      ptr++;
+	    }
+
+	  ptr++;
+	  if ((int) arg_no < 0)
+	    arg_no = arg_count;
+
+	  arg_type = Bad;
+	  switch (ptr[-1])
+	    {
+	    case 'd':
+	    case 'i':
+	    case 'o':
+	    case 'u':
+	    case 'x':
+	    case 'X':
+	    case 'c':
+	      {
+		if (short_width)
+		  arg_type = Int;
+		else
+		  {
+		    if (ptr[-2] == 'L')
+		      {
+			if (BFD_ARCH_SIZE < 64 || BFD_HOST_64BIT_LONG)
+			  wide_width = 1;
+		      }
+
+		    switch (wide_width)
+		      {
+		      case 0:
+			arg_type = Int;
+			break;
+		      case 1:
+			arg_type = Long;
+			break;
+		      case 2:
+		      default:
+#if defined (__GNUC__) || defined (HAVE_LONG_LONG)
+			arg_type = LongLong;
+#else
+			arg_type = Long;
+#endif
+			break;
+		      }
+		  }
+	      }
+	      break;
+	    case 'f':
+	    case 'e':
+	    case 'E':
+	    case 'g':
+	    case 'G':
+	      {
+		if (wide_width == 0)
+		  arg_type = Double;
+		else
+		  {
+#if defined (__GNUC__) || defined (HAVE_LONG_DOUBLE)
+		    arg_type = LongDouble;
+#else
+		    arg_type = Double;
+#endif
+		  }
+	      }
+	      break;
+	    case 's':
+	    case 'p':
+	    case 'A':
+	    case 'B':
+	      arg_type = Ptr;
+	      break;
+	    default:
+	      abort();
+	    }
+
+	  if (arg_no >= 9)
+	    abort ();
+	  args[arg_no].type = arg_type;
+	  arg_count++;
+	}
+    }
+
+  return arg_count;
+}
+
 /* This is the default routine to handle BFD error messages.
    Like fprintf (stderr, ...), but also handles some extra format specifiers.
 
-   %A section name from section.  For group components, print group name too.
-   %B file name from bfd.  For archive components, prints archive too.  */
+   %A section name from section.  For group components, prints group name too.
+   %B file name from bfd.  For archive components, prints archive too.
+
+   Beware: Only supports a maximum of 9 format arguments.  */
 
 static void
 error_handler_internal (const char *fmt, va_list ap)
 {
+  unsigned int i, arg_count;
+  union _bfd_doprnt_args args[9];
+
+  for (i = 0; i < sizeof (args) / sizeof (args[0]); i++)
+    args[i].type = Bad;
+
+  arg_count = _bfd_doprnt_scan (fmt, args);
+  for (i = 0; i < arg_count; i++)
+    {
+      switch (args[i].type)
+	{
+	case Int:
+	  args[i].i = va_arg (ap, int);
+	  break;
+	case Long:
+	  args[i].l = va_arg (ap, long);
+	  break;
+	case LongLong:
+	  args[i].ll = va_arg (ap, long long);
+	  break;
+	case Double:
+	  args[i].d = va_arg (ap, double);
+	  break;
+	case LongDouble:
+	  args[i].ld = va_arg (ap, long double);
+	  break;
+	case Ptr:
+	  args[i].p = va_arg (ap, void *);
+	  break;
+	default:
+	  abort ();
+	}
+    }
+
   /* PR 4992: Don't interrupt output being sent to stdout.  */
   fflush (stdout);
 
@@ -844,7 +1166,7 @@ error_handler_internal (const char *fmt,
   else
     fprintf (stderr, "BFD: ");
 
-  _doprnt (stderr, fmt, ap);
+  _bfd_doprnt (stderr, fmt, args);
 
   /* On AIX, putc is implemented as a macro that triggers a -Wunused-value
      warning, so use the fputc function to avoid it.  */
@@ -927,9 +1249,9 @@ SUBSECTION
 CODE_FRAGMENT
 .
 .typedef void (*bfd_assert_handler_type) (const char *bfd_formatmsg,
-.                                         const char *bfd_version,
-.                                         const char *bfd_file,
-.                                         int bfd_line);
+.					  const char *bfd_version,
+.					  const char *bfd_file,
+.					  int bfd_line);
 .
 */
 
@@ -1064,18 +1386,10 @@ DESCRIPTION
 	section @var{sec} to the values @var{rel} and @var{count}.
 	The argument @var{abfd} is ignored.
 
+.#define bfd_set_reloc(abfd, asect, location, count) \
+.	BFD_SEND (abfd, _bfd_set_reloc, (abfd, asect, location, count))
 */
 
-void
-bfd_set_reloc (bfd *ignore_abfd ATTRIBUTE_UNUSED,
-	       sec_ptr asect,
-	       arelent **location,
-	       unsigned int count)
-{
-  asect->orelocation = location;
-  asect->reloc_count = count;
-}
-
 /*
 FUNCTION
 	bfd_set_file_flags
@@ -1154,7 +1468,7 @@ FUNCTION
 	bfd_get_arch_size
 
 SYNOPSIS
- 	int bfd_get_arch_size (bfd *abfd);
+	int bfd_get_arch_size (bfd *abfd);
 
 DESCRIPTION
 	Returns the normalized architecture address size, in bits, as
@@ -1181,7 +1495,7 @@ FUNCTION
 	bfd_get_sign_extend_vma
 
 SYNOPSIS
- 	int bfd_get_sign_extend_vma (bfd *abfd);
+	int bfd_get_sign_extend_vma (bfd *abfd);
 
 DESCRIPTION
 	Indicates if the target architecture "naturally" sign extends
@@ -1219,7 +1533,8 @@ bfd_get_sign_extend_vma (bfd *abfd)
       || strcmp (name, "pei-x86-64") == 0
       || strcmp (name, "pe-arm-wince-little") == 0
       || strcmp (name, "pei-arm-wince-little") == 0
-      || strcmp (name, "aixcoff-rs6000") == 0)
+      || strcmp (name, "aixcoff-rs6000") == 0
+      || strcmp (name, "aix5coff64-rs6000") == 0)
     return 1;
 
   if (CONST_STRNEQ (name, "mach-o"))
@@ -1234,7 +1549,7 @@ FUNCTION
 	bfd_set_start_address
 
 SYNOPSIS
- 	bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
+	bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
 
 DESCRIPTION
 	Make @var{vma} the entry point of output BFD @var{abfd}.
@@ -1371,7 +1686,7 @@ bfd_scan_vma (const char *string, const 
   if (sizeof (bfd_vma) <= sizeof (unsigned long))
     return strtoul (string, (char **) end, base);
 
-#ifdef HAVE_STRTOULL
+#if defined (HAVE_STRTOULL) && defined (HAVE_LONG_LONG)
   if (sizeof (bfd_vma) <= sizeof (unsigned long long))
     return strtoull (string, (char **) end, base);
 #endif
@@ -1448,8 +1763,8 @@ DESCRIPTION
 	Not enough memory exists to create private data for @var{obfd}.
 
 .#define bfd_copy_private_header_data(ibfd, obfd) \
-.     BFD_SEND (obfd, _bfd_copy_private_header_data, \
-.		(ibfd, obfd))
+.	BFD_SEND (obfd, _bfd_copy_private_header_data, \
+.		  (ibfd, obfd))
 
 */
 
@@ -1469,8 +1784,8 @@ DESCRIPTION
 	Not enough memory exists to create private data for @var{obfd}.
 
 .#define bfd_copy_private_bfd_data(ibfd, obfd) \
-.     BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
-.		(ibfd, obfd))
+.	BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
+.		  (ibfd, obfd))
 
 */
 
@@ -1490,7 +1805,7 @@ DESCRIPTION
 	Not enough memory exists to create private data for @var{obfd}.
 
 .#define bfd_set_private_flags(abfd, flags) \
-.     BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
+.	BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
 
 */
 
@@ -1502,45 +1817,45 @@ DESCRIPTION
 	The following functions exist but have not yet been documented.
 
 .#define bfd_sizeof_headers(abfd, info) \
-.       BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
+.	BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
 .
 .#define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
-.       BFD_SEND (abfd, _bfd_find_nearest_line, \
-.                 (abfd, syms, sec, off, file, func, line, NULL))
+.	BFD_SEND (abfd, _bfd_find_nearest_line, \
+.		  (abfd, syms, sec, off, file, func, line, NULL))
 .
 .#define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \
-.                                            line, disc) \
-.       BFD_SEND (abfd, _bfd_find_nearest_line, \
-.                 (abfd, syms, sec, off, file, func, line, disc))
+.					    line, disc) \
+.	BFD_SEND (abfd, _bfd_find_nearest_line, \
+.		  (abfd, syms, sec, off, file, func, line, disc))
 .
 .#define bfd_find_line(abfd, syms, sym, file, line) \
-.       BFD_SEND (abfd, _bfd_find_line, \
-.                 (abfd, syms, sym, file, line))
+.	BFD_SEND (abfd, _bfd_find_line, \
+.		  (abfd, syms, sym, file, line))
 .
 .#define bfd_find_inliner_info(abfd, file, func, line) \
-.       BFD_SEND (abfd, _bfd_find_inliner_info, \
-.                 (abfd, file, func, line))
+.	BFD_SEND (abfd, _bfd_find_inliner_info, \
+.		  (abfd, file, func, line))
 .
 .#define bfd_debug_info_start(abfd) \
-.       BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
+.	BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
 .
 .#define bfd_debug_info_end(abfd) \
-.       BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
+.	BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
 .
 .#define bfd_debug_info_accumulate(abfd, section) \
-.       BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
+.	BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
 .
 .#define bfd_stat_arch_elt(abfd, stat) \
-.       BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
+.	BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
 .
 .#define bfd_update_armap_timestamp(abfd) \
-.       BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
+.	BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
 .
 .#define bfd_set_arch_mach(abfd, arch, mach)\
-.       BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
+.	BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
 .
 .#define bfd_relax_section(abfd, section, link_info, again) \
-.       BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
+.	BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
 .
 .#define bfd_gc_sections(abfd, link_info) \
 .	BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
@@ -1570,7 +1885,7 @@ DESCRIPTION
 .	BFD_SEND (abfd, _bfd_final_link, (abfd, info))
 .
 .#define bfd_free_cached_info(abfd) \
-.       BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
+.	BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
 .
 .#define bfd_get_dynamic_symtab_upper_bound(abfd) \
 .	BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
@@ -1772,7 +2087,7 @@ FUNCTION
 	bfd_emul_get_maxpagesize
 
 SYNOPSIS
- 	bfd_vma bfd_emul_get_maxpagesize (const char *);
+	bfd_vma bfd_emul_get_maxpagesize (const char *);
 
 DESCRIPTION
 	Returns the maximum page size, in bytes, as determined by
@@ -1818,7 +2133,7 @@ FUNCTION
 	bfd_emul_set_maxpagesize
 
 SYNOPSIS
- 	void bfd_emul_set_maxpagesize (const char *, bfd_vma);
+	void bfd_emul_set_maxpagesize (const char *, bfd_vma);
 
 DESCRIPTION
 	For ELF, set the maximum page size for the emulation.  It is
@@ -1843,7 +2158,7 @@ FUNCTION
 	bfd_emul_get_commonpagesize
 
 SYNOPSIS
- 	bfd_vma bfd_emul_get_commonpagesize (const char *);
+	bfd_vma bfd_emul_get_commonpagesize (const char *);
 
 DESCRIPTION
 	Returns the common page size, in bytes, as determined by
@@ -1871,7 +2186,7 @@ FUNCTION
 	bfd_emul_set_commonpagesize
 
 SYNOPSIS
- 	void bfd_emul_set_commonpagesize (const char *, bfd_vma);
+	void bfd_emul_set_commonpagesize (const char *, bfd_vma);
 
 DESCRIPTION
 	For ELF, set the common page size for the emulation.  It is
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/bfd-in2.h ./bfd/bfd-in2.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/bfd-in2.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/bfd-in2.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,13 +1,13 @@
-/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
-   generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c", 
-   "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c", 
-   "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c", 
+/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically
+   generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c",
+   "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c",
+   "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c",
    "linker.c", "simple.c" and "compress.c".
    Run "make headers" in your build bfd/ to regenerate.  */
 
 /* Main header file for the bfd library -- portable access to object files.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.
 
@@ -111,7 +111,7 @@ typedef BFD_HOST_U_64_BIT bfd_uint64_t;
 #endif
 
 /* Declaring a type wide enough to hold a host long and a host pointer.  */
-#define BFD_HOSTPTR_T	@BFD_HOSTPTR_T@
+#define BFD_HOSTPTR_T @BFD_HOSTPTR_T@
 typedef BFD_HOSTPTR_T bfd_hostptr_t;
 
 /* Forward declaration.  */
@@ -254,7 +254,7 @@ carsym;			/* To make these you call a ca
 
 /* Used in generating armaps (archive tables of contents).
    Perhaps just a forward definition would do?  */
-struct orl 			/* Output ranlib.  */
+struct orl		/* Output ranlib.  */
 {
   char **name;		/* Symbol name.  */
   union
@@ -272,7 +272,7 @@ typedef struct lineno_cache_entry
   union
   {
     struct bfd_symbol *sym;	/* Function name.  */
-    bfd_vma offset;	    		/* Offset into section.  */
+    bfd_vma offset;		/* Offset into section.  */
   } u;
 }
 alent;
@@ -336,11 +336,11 @@ typedef struct _symbol_info
 {
   symvalue value;
   char type;
-  const char *name;            /* Symbol name.  */
-  unsigned char stab_type;     /* Stab type.  */
-  char stab_other;             /* Stab other.  */
-  short stab_desc;             /* Stab desc.  */
-  const char *stab_name;       /* String for stab type.  */
+  const char *name;		/* Symbol name.  */
+  unsigned char stab_type;	/* Stab type.  */
+  char stab_other;		/* Stab other.  */
+  short stab_desc;		/* Stab desc.  */
+  const char *stab_name;	/* String for stab type.  */
 } symbol_info;
 
 /* Get the name of a stabs type code.  */
@@ -378,7 +378,7 @@ struct bfd_hash_table
      only if the argument is NULL.  */
   struct bfd_hash_entry *(*newfunc)
     (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
-   /* An objalloc for this hash table.  This is a struct objalloc *,
+  /* An objalloc for this hash table.  This is a struct objalloc *,
      but we use void * to avoid requiring the inclusion of objalloc.h.  */
   void *memory;
   /* The number of slots in the hash table.  */
@@ -496,7 +496,7 @@ extern int bfd_stat (bfd *, struct stat 
   (_bfd_warn_deprecated ("bfd_read", __FILE__, __LINE__, __FUNCTION__),	\
    bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 #define bfd_write(BUF, ELTSIZE, NITEMS, ABFD)				\
-  (_bfd_warn_deprecated ("bfd_write", __FILE__, __LINE__, __FUNCTION__),	\
+  (_bfd_warn_deprecated ("bfd_write", __FILE__, __LINE__, __FUNCTION__), \
    bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 #else
 #define bfd_read(BUF, ELTSIZE, NITEMS, ABFD)				\
@@ -942,7 +942,7 @@ extern void bfd_elf32_arm_keep_private_s
 /* ELF ARM mapping symbol support.  */
 #define BFD_ARM_SPECIAL_SYM_TYPE_MAP	(1 << 0)
 #define BFD_ARM_SPECIAL_SYM_TYPE_TAG	(1 << 1)
-#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER  (1 << 2)
+#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER	(1 << 2)
 #define BFD_ARM_SPECIAL_SYM_TYPE_ANY	(~0)
 
 extern bfd_boolean bfd_is_arm_special_symbol_name
@@ -1173,9 +1173,9 @@ char *bfd_follow_build_id_debuglink (bfd
 
 #define bfd_put(bits, abfd, val, ptr)                  \
   ((bits) == 8 ? bfd_put_8  (abfd, val, ptr)           \
-   : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)                \
-   : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)                \
-   : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)                \
+   : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)        \
+   : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)        \
+   : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)        \
    : (abort (), (void) 0))
 
 
@@ -1240,7 +1240,9 @@ char *bfd_follow_build_id_debuglink (bfd
 /* Extracted from bfdio.c.  */
 long bfd_get_mtime (bfd *abfd);
 
-file_ptr bfd_get_size (bfd *abfd);
+ufile_ptr bfd_get_size (bfd *abfd);
+
+ufile_ptr bfd_get_file_size (bfd *abfd);
 
 void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len,
     int prot, int flags, file_ptr offset,
@@ -1272,31 +1274,31 @@ typedef struct bfd_section
      synthesized from other information.  */
   flagword flags;
 
-#define SEC_NO_FLAGS   0x000
+#define SEC_NO_FLAGS                      0x0
 
   /* Tells the OS to allocate space for this section when loading.
      This is clear for a section containing debug information only.  */
-#define SEC_ALLOC      0x001
+#define SEC_ALLOC                         0x1
 
   /* Tells the OS to load the section from the file when loading.
      This is clear for a .bss section.  */
-#define SEC_LOAD       0x002
+#define SEC_LOAD                          0x2
 
   /* The section contains data still to be relocated, so there is
      some relocation information too.  */
-#define SEC_RELOC      0x004
+#define SEC_RELOC                         0x4
 
   /* A signal to the OS that the section contains read only data.  */
-#define SEC_READONLY   0x008
+#define SEC_READONLY                      0x8
 
   /* The section contains code only.  */
-#define SEC_CODE       0x010
+#define SEC_CODE                         0x10
 
   /* The section contains data only.  */
-#define SEC_DATA       0x020
+#define SEC_DATA                         0x20
 
   /* The section will reside in ROM.  */
-#define SEC_ROM        0x040
+#define SEC_ROM                          0x40
 
   /* The section contains constructor information. This section
      type is used by the linker to create lists of constructors and
@@ -1308,19 +1310,19 @@ typedef struct bfd_section
      sections called <<__CTOR_LIST__>> and relocate the data
      contained within - exactly the operations it would peform on
      standard data.  */
-#define SEC_CONSTRUCTOR 0x080
+#define SEC_CONSTRUCTOR                  0x80
 
   /* The section has contents - a data section could be
      <<SEC_ALLOC>> | <<SEC_HAS_CONTENTS>>; a debug section could be
      <<SEC_HAS_CONTENTS>>  */
-#define SEC_HAS_CONTENTS 0x100
+#define SEC_HAS_CONTENTS                0x100
 
   /* An instruction to the linker to not output the section
      even if it has information which would normally be written.  */
-#define SEC_NEVER_LOAD 0x200
+#define SEC_NEVER_LOAD                  0x200
 
   /* The section contains thread local data.  */
-#define SEC_THREAD_LOCAL 0x400
+#define SEC_THREAD_LOCAL                0x400
 
   /* The section has GOT references.  This flag is only for the
      linker, and is currently only used by the elf32-hppa back end.
@@ -1328,55 +1330,55 @@ typedef struct bfd_section
      in this section, which indicate to the linker that the section
      contains PIC code, and must be handled specially when doing a
      static link.  */
-#define SEC_HAS_GOT_REF 0x800
+#define SEC_HAS_GOT_REF                 0x800
 
   /* The section contains common symbols (symbols may be defined
      multiple times, the value of a symbol is the amount of
      space it requires, and the largest symbol value is the one
      used).  Most targets have exactly one of these (which we
      translate to bfd_com_section_ptr), but ECOFF has two.  */
-#define SEC_IS_COMMON 0x1000
+#define SEC_IS_COMMON                  0x1000
 
   /* The section contains only debugging information.  For
      example, this is set for ELF .debug and .stab sections.
      strip tests this flag to see if a section can be
      discarded.  */
-#define SEC_DEBUGGING 0x2000
+#define SEC_DEBUGGING                  0x2000
 
   /* The contents of this section are held in memory pointed to
      by the contents field.  This is checked by bfd_get_section_contents,
      and the data is retrieved from memory if appropriate.  */
-#define SEC_IN_MEMORY 0x4000
+#define SEC_IN_MEMORY                  0x4000
 
   /* The contents of this section are to be excluded by the
      linker for executable and shared objects unless those
      objects are to be further relocated.  */
-#define SEC_EXCLUDE 0x8000
+#define SEC_EXCLUDE                    0x8000
 
   /* The contents of this section are to be sorted based on the sum of
      the symbol and addend values specified by the associated relocation
      entries.  Entries without associated relocation entries will be
      appended to the end of the section in an unspecified order.  */
-#define SEC_SORT_ENTRIES 0x10000
+#define SEC_SORT_ENTRIES              0x10000
 
   /* When linking, duplicate sections of the same name should be
      discarded, rather than being combined into a single section as
      is usually done.  This is similar to how common symbols are
      handled.  See SEC_LINK_DUPLICATES below.  */
-#define SEC_LINK_ONCE 0x20000
+#define SEC_LINK_ONCE                 0x20000
 
   /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
      should handle duplicate sections.  */
-#define SEC_LINK_DUPLICATES 0xc0000
+#define SEC_LINK_DUPLICATES           0xc0000
 
   /* This value for SEC_LINK_DUPLICATES means that duplicate
      sections with the same name should simply be discarded.  */
-#define SEC_LINK_DUPLICATES_DISCARD 0x0
+#define SEC_LINK_DUPLICATES_DISCARD       0x0
 
   /* This value for SEC_LINK_DUPLICATES means that the linker
      should warn if there are any duplicate sections, although
      it should still only link one copy.  */
-#define SEC_LINK_DUPLICATES_ONE_ONLY 0x40000
+#define SEC_LINK_DUPLICATES_ONE_ONLY  0x40000
 
   /* This value for SEC_LINK_DUPLICATES means that the linker
      should warn if any duplicate sections are a different size.  */
@@ -1392,28 +1394,28 @@ typedef struct bfd_section
      relocation or other arcane processing.  It is skipped when
      going through the first-pass output, trusting that someone
      else up the line will take care of it later.  */
-#define SEC_LINKER_CREATED 0x100000
+#define SEC_LINKER_CREATED           0x100000
 
   /* This section should not be subject to garbage collection.
      Also set to inform the linker that this section should not be
      listed in the link map as discarded.  */
-#define SEC_KEEP 0x200000
+#define SEC_KEEP                     0x200000
 
   /* This section contains "short" data, and should be placed
      "near" the GP.  */
-#define SEC_SMALL_DATA 0x400000
+#define SEC_SMALL_DATA               0x400000
 
   /* Attempt to merge identical entities in the section.
      Entity size is given in the entsize field.  */
-#define SEC_MERGE 0x800000
+#define SEC_MERGE                    0x800000
 
   /* If given with SEC_MERGE, entities to merge are zero terminated
      strings where entsize specifies character size instead of fixed
      size entries.  */
-#define SEC_STRINGS 0x1000000
+#define SEC_STRINGS                 0x1000000
 
   /* This section contains data about section groups.  */
-#define SEC_GROUP 0x2000000
+#define SEC_GROUP                   0x2000000
 
   /* The section is a COFF shared library section.  This flag is
      only for the linker.  If this type of section appears in
@@ -1424,46 +1426,46 @@ typedef struct bfd_section
      might be cleaner to have some more general mechanism to
      allow the back end to control what the linker does with
      sections.  */
-#define SEC_COFF_SHARED_LIBRARY 0x4000000
+#define SEC_COFF_SHARED_LIBRARY     0x4000000
 
   /* This input section should be copied to output in reverse order
      as an array of pointers.  This is for ELF linker internal use
      only.  */
-#define SEC_ELF_REVERSE_COPY 0x4000000
+#define SEC_ELF_REVERSE_COPY        0x4000000
 
   /* This section contains data which may be shared with other
      executables or shared objects. This is for COFF only.  */
-#define SEC_COFF_SHARED 0x8000000
+#define SEC_COFF_SHARED             0x8000000
 
   /* This section should be compressed.  This is for ELF linker
      internal use only.  */
-#define SEC_ELF_COMPRESS 0x8000000
+#define SEC_ELF_COMPRESS            0x8000000
 
   /* When a section with this flag is being linked, then if the size of
      the input section is less than a page, it should not cross a page
      boundary.  If the size of the input section is one page or more,
      it should be aligned on a page boundary.  This is for TI
      TMS320C54X only.  */
-#define SEC_TIC54X_BLOCK 0x10000000
+#define SEC_TIC54X_BLOCK           0x10000000
 
   /* This section should be renamed.  This is for ELF linker
      internal use only.  */
-#define SEC_ELF_RENAME 0x10000000
+#define SEC_ELF_RENAME             0x10000000
 
   /* Conditionally link this section; do not link if there are no
      references found to any symbol in the section.  This is for TI
      TMS320C54X only.  */
-#define SEC_TIC54X_CLINK 0x20000000
+#define SEC_TIC54X_CLINK           0x20000000
 
   /* This section contains vliw code.  This is for Toshiba MeP only.  */
-#define SEC_MEP_VLIW 0x20000000
+#define SEC_MEP_VLIW               0x20000000
 
   /* Indicate that section has the no read flag set. This happens
      when memory read flag isn't set. */
-#define SEC_COFF_NOREAD 0x40000000
+#define SEC_COFF_NOREAD            0x40000000
 
   /* Indicate that section has the purecode flag set.  */
-#define SEC_ELF_PURECODE 0x80000000
+#define SEC_ELF_PURECODE           0x80000000
 
   /*  End of section flags.  */
 
@@ -1661,7 +1663,8 @@ struct relax_table {
    would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
    compilers will complain about comma expressions that have no effect.  */
 static inline bfd_boolean
-bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val)
+bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
+                          void * val)
 {
   ptr->userdata = val;
   return TRUE;
@@ -1676,7 +1679,8 @@ bfd_set_section_vma (bfd * abfd ATTRIBUT
 }
 
 static inline bfd_boolean
-bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val)
+bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
+                           unsigned int val)
 {
   ptr->alignment_power = val;
   return TRUE;
@@ -1839,6 +1843,18 @@ extern asection _bfd_std_section[4];
      { NULL }, { NULL }                                                \
     }
 
+/* We use a macro to initialize the static asymbol structures because
+   traditional C does not permit us to initialize a union member while
+   gcc warns if we don't initialize it.
+   the_bfd, name, value, attr, section [, udata]  */
+#ifdef __STDC__
+#define GLOBAL_SYM_INIT(NAME, SECTION) \
+  { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }}
+#else
+#define GLOBAL_SYM_INIT(NAME, SECTION) \
+  { 0, NAME, 0, BSF_SECTION_SYM, SECTION }
+#endif
+
 void bfd_section_list_clear (bfd *);
 
 asection *bfd_get_section_by_name (bfd *abfd, const char *name);
@@ -1904,8 +1920,8 @@ bfd_boolean bfd_copy_private_section_dat
    (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
 
 #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
-     BFD_SEND (obfd, _bfd_copy_private_section_data, \
-               (ibfd, isection, obfd, osection))
+       BFD_SEND (obfd, _bfd_copy_private_section_data, \
+                 (ibfd, isection, obfd, osection))
 bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
 
 bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
@@ -1915,40 +1931,40 @@ enum bfd_architecture
 {
   bfd_arch_unknown,   /* File arch not known.  */
   bfd_arch_obscure,   /* Arch known, not one of these.  */
-  bfd_arch_m68k,      /* Motorola 68xxx */
-#define bfd_mach_m68000 1
-#define bfd_mach_m68008 2
-#define bfd_mach_m68010 3
-#define bfd_mach_m68020 4
-#define bfd_mach_m68030 5
-#define bfd_mach_m68040 6
-#define bfd_mach_m68060 7
-#define bfd_mach_cpu32  8
-#define bfd_mach_fido   9
-#define bfd_mach_mcf_isa_a_nodiv 10
-#define bfd_mach_mcf_isa_a 11
-#define bfd_mach_mcf_isa_a_mac 12
-#define bfd_mach_mcf_isa_a_emac 13
-#define bfd_mach_mcf_isa_aplus 14
-#define bfd_mach_mcf_isa_aplus_mac 15
-#define bfd_mach_mcf_isa_aplus_emac 16
-#define bfd_mach_mcf_isa_b_nousp 17
-#define bfd_mach_mcf_isa_b_nousp_mac 18
-#define bfd_mach_mcf_isa_b_nousp_emac 19
-#define bfd_mach_mcf_isa_b 20
-#define bfd_mach_mcf_isa_b_mac 21
-#define bfd_mach_mcf_isa_b_emac 22
-#define bfd_mach_mcf_isa_b_float 23
-#define bfd_mach_mcf_isa_b_float_mac 24
-#define bfd_mach_mcf_isa_b_float_emac 25
-#define bfd_mach_mcf_isa_c 26
-#define bfd_mach_mcf_isa_c_mac 27
-#define bfd_mach_mcf_isa_c_emac 28
-#define bfd_mach_mcf_isa_c_nodiv 29
-#define bfd_mach_mcf_isa_c_nodiv_mac 30
-#define bfd_mach_mcf_isa_c_nodiv_emac 31
-  bfd_arch_vax,       /* DEC Vax */
-  bfd_arch_i960,      /* Intel 960 */
+  bfd_arch_m68k,      /* Motorola 68xxx.  */
+#define bfd_mach_m68000                1
+#define bfd_mach_m68008                2
+#define bfd_mach_m68010                3
+#define bfd_mach_m68020                4
+#define bfd_mach_m68030                5
+#define bfd_mach_m68040                6
+#define bfd_mach_m68060                7
+#define bfd_mach_cpu32                 8
+#define bfd_mach_fido                  9
+#define bfd_mach_mcf_isa_a_nodiv       10
+#define bfd_mach_mcf_isa_a             11
+#define bfd_mach_mcf_isa_a_mac         12
+#define bfd_mach_mcf_isa_a_emac        13
+#define bfd_mach_mcf_isa_aplus         14
+#define bfd_mach_mcf_isa_aplus_mac     15
+#define bfd_mach_mcf_isa_aplus_emac    16
+#define bfd_mach_mcf_isa_b_nousp       17
+#define bfd_mach_mcf_isa_b_nousp_mac   18
+#define bfd_mach_mcf_isa_b_nousp_emac  19
+#define bfd_mach_mcf_isa_b             20
+#define bfd_mach_mcf_isa_b_mac         21
+#define bfd_mach_mcf_isa_b_emac        22
+#define bfd_mach_mcf_isa_b_float       23
+#define bfd_mach_mcf_isa_b_float_mac   24
+#define bfd_mach_mcf_isa_b_float_emac  25
+#define bfd_mach_mcf_isa_c             26
+#define bfd_mach_mcf_isa_c_mac         27
+#define bfd_mach_mcf_isa_c_emac        28
+#define bfd_mach_mcf_isa_c_nodiv       29
+#define bfd_mach_mcf_isa_c_nodiv_mac   30
+#define bfd_mach_mcf_isa_c_nodiv_emac  31
+  bfd_arch_vax,       /* DEC Vax.  */
+  bfd_arch_i960,      /* Intel 960.  */
     /* The order of the following is important.
        lower number indicates a machine type that
        only accepts a subset of the instructions
@@ -1957,20 +1973,20 @@ enum bfd_architecture
        incompatible with all other machines except
        "core".  */
 
-#define bfd_mach_i960_core      1
-#define bfd_mach_i960_ka_sa     2
-#define bfd_mach_i960_kb_sb     3
-#define bfd_mach_i960_mc        4
-#define bfd_mach_i960_xa        5
-#define bfd_mach_i960_ca        6
-#define bfd_mach_i960_jx        7
-#define bfd_mach_i960_hx        8
-
-  bfd_arch_or1k,      /* OpenRISC 1000 */
-#define bfd_mach_or1k           1
-#define bfd_mach_or1knd         2
+#define bfd_mach_i960_core     1
+#define bfd_mach_i960_ka_sa    2
+#define bfd_mach_i960_kb_sb    3
+#define bfd_mach_i960_mc       4
+#define bfd_mach_i960_xa       5
+#define bfd_mach_i960_ca       6
+#define bfd_mach_i960_jx       7
+#define bfd_mach_i960_hx       8
+
+  bfd_arch_or1k,      /* OpenRISC 1000.  */
+#define bfd_mach_or1k          1
+#define bfd_mach_or1knd        2
 
-  bfd_arch_sparc,     /* SPARC */
+  bfd_arch_sparc,     /* SPARC.  */
 #define bfd_mach_sparc                 1
 /* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
 #define bfd_mach_sparc_sparclet        2
@@ -1992,9 +2008,11 @@ enum bfd_architecture
 #define bfd_mach_sparc_v9v             18 /* with OSA2011 and T4 and IMA and FJMAU add'ns.  */
 #define bfd_mach_sparc_v8plusm         19 /* with OSA2015 and M7 add'ns.  */
 #define bfd_mach_sparc_v9m             20 /* with OSA2015 and M7 add'ns.  */
+#define bfd_mach_sparc_v8plusm8        21 /* with OSA2017 and M8 add'ns.  */
+#define bfd_mach_sparc_v9m8            22 /* with OSA2017 and M8 add'ns.  */
 /* Nonzero if MACH has the v9 instruction set.  */
 #define bfd_mach_sparc_v9_p(mach) \
-  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m \
+  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m8 \
    && (mach) != bfd_mach_sparc_sparclite_le)
 /* Nonzero if MACH is a 64 bit sparc architecture.  */
 #define bfd_mach_sparc_64bit_p(mach) \
@@ -2004,10 +2022,11 @@ enum bfd_architecture
    && (mach) != bfd_mach_sparc_v8plusd \
    && (mach) != bfd_mach_sparc_v8pluse \
    && (mach) != bfd_mach_sparc_v8plusv \
-   && (mach) != bfd_mach_sparc_v8plusm)
-  bfd_arch_spu,       /* PowerPC SPU */
+   && (mach) != bfd_mach_sparc_v8plusm \
+   && (mach) != bfd_mach_sparc_v8plusm8)
+  bfd_arch_spu,       /* PowerPC SPU.  */
 #define bfd_mach_spu           256
-  bfd_arch_mips,      /* MIPS Rxxxx */
+  bfd_arch_mips,      /* MIPS Rxxxx.  */
 #define bfd_mach_mips3000              3000
 #define bfd_mach_mips3900              3900
 #define bfd_mach_mips4000              4000
@@ -2036,12 +2055,13 @@ enum bfd_architecture
 #define bfd_mach_mips_loongson_2e      3001
 #define bfd_mach_mips_loongson_2f      3002
 #define bfd_mach_mips_loongson_3a      3003
-#define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */
+#define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01.  */
 #define bfd_mach_mips_octeon           6501
 #define bfd_mach_mips_octeonp          6601
 #define bfd_mach_mips_octeon2          6502
 #define bfd_mach_mips_octeon3          6503
-#define bfd_mach_mips_xlr              887682   /* decimal 'XLR'  */
+#define bfd_mach_mips_xlr              887682   /* decimal 'XLR'.  */
+#define bfd_mach_mips_interaptiv_mr2   736550   /* decimal 'IA2'.  */
 #define bfd_mach_mipsisa32             32
 #define bfd_mach_mipsisa32r2           33
 #define bfd_mach_mipsisa32r3           34
@@ -2053,7 +2073,7 @@ enum bfd_architecture
 #define bfd_mach_mipsisa64r5           68
 #define bfd_mach_mipsisa64r6           69
 #define bfd_mach_mips_micromips        96
-  bfd_arch_i386,      /* Intel 386 */
+  bfd_arch_i386,      /* Intel 386.  */
 #define bfd_mach_i386_intel_syntax     (1 << 0)
 #define bfd_mach_i386_i8086            (1 << 1)
 #define bfd_mach_i386_i386             (1 << 2)
@@ -2062,40 +2082,40 @@ enum bfd_architecture
 #define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax)
 #define bfd_mach_x86_64_intel_syntax   (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax)
 #define bfd_mach_x64_32_intel_syntax   (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax)
-  bfd_arch_l1om,   /* Intel L1OM */
+  bfd_arch_l1om,      /* Intel L1OM.  */
 #define bfd_mach_l1om                  (1 << 5)
 #define bfd_mach_l1om_intel_syntax     (bfd_mach_l1om | bfd_mach_i386_intel_syntax)
-  bfd_arch_k1om,   /* Intel K1OM */
+  bfd_arch_k1om,      /* Intel K1OM.  */
 #define bfd_mach_k1om                  (1 << 6)
 #define bfd_mach_k1om_intel_syntax     (bfd_mach_k1om | bfd_mach_i386_intel_syntax)
 #define bfd_mach_i386_nacl             (1 << 7)
 #define bfd_mach_i386_i386_nacl        (bfd_mach_i386_i386 | bfd_mach_i386_nacl)
 #define bfd_mach_x86_64_nacl           (bfd_mach_x86_64 | bfd_mach_i386_nacl)
 #define bfd_mach_x64_32_nacl           (bfd_mach_x64_32 | bfd_mach_i386_nacl)
-  bfd_arch_iamcu,   /* Intel MCU */
+  bfd_arch_iamcu,     /* Intel MCU.  */
 #define bfd_mach_iamcu                 (1 << 8)
 #define bfd_mach_i386_iamcu            (bfd_mach_i386_i386 | bfd_mach_iamcu)
 #define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax)
-  bfd_arch_we32k,     /* AT&T WE32xxx */
-  bfd_arch_tahoe,     /* CCI/Harris Tahoe */
-  bfd_arch_i860,      /* Intel 860 */
-  bfd_arch_i370,      /* IBM 360/370 Mainframes */
-  bfd_arch_romp,      /* IBM ROMP PC/RT */
-  bfd_arch_convex,    /* Convex */
-  bfd_arch_m88k,      /* Motorola 88xxx */
-  bfd_arch_m98k,      /* Motorola 98xxx */
-  bfd_arch_pyramid,   /* Pyramid Technology */
-  bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300) */
-#define bfd_mach_h8300    1
-#define bfd_mach_h8300h   2
-#define bfd_mach_h8300s   3
-#define bfd_mach_h8300hn  4
-#define bfd_mach_h8300sn  5
-#define bfd_mach_h8300sx  6
-#define bfd_mach_h8300sxn 7
-  bfd_arch_pdp11,     /* DEC PDP-11 */
+  bfd_arch_we32k,     /* AT&T WE32xxx.  */
+  bfd_arch_tahoe,     /* CCI/Harris Tahoe.  */
+  bfd_arch_i860,      /* Intel 860.  */
+  bfd_arch_i370,      /* IBM 360/370 Mainframes.  */
+  bfd_arch_romp,      /* IBM ROMP PC/RT.  */
+  bfd_arch_convex,    /* Convex.  */
+  bfd_arch_m88k,      /* Motorola 88xxx.  */
+  bfd_arch_m98k,      /* Motorola 98xxx.  */
+  bfd_arch_pyramid,   /* Pyramid Technology.  */
+  bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300).  */
+#define bfd_mach_h8300         1
+#define bfd_mach_h8300h        2
+#define bfd_mach_h8300s        3
+#define bfd_mach_h8300hn       4
+#define bfd_mach_h8300sn       5
+#define bfd_mach_h8300sx       6
+#define bfd_mach_h8300sxn      7
+  bfd_arch_pdp11,     /* DEC PDP-11.  */
   bfd_arch_plugin,
-  bfd_arch_powerpc,   /* PowerPC */
+  bfd_arch_powerpc,   /* PowerPC.  */
 #define bfd_mach_ppc           32
 #define bfd_mach_ppc64         64
 #define bfd_mach_ppc_403       403
@@ -2122,59 +2142,59 @@ enum bfd_architecture
 #define bfd_mach_ppc_e6500     5007
 #define bfd_mach_ppc_titan     83
 #define bfd_mach_ppc_vle       84
-  bfd_arch_rs6000,    /* IBM RS/6000 */
+  bfd_arch_rs6000,    /* IBM RS/6000.  */
 #define bfd_mach_rs6k          6000
 #define bfd_mach_rs6k_rs1      6001
 #define bfd_mach_rs6k_rsc      6003
 #define bfd_mach_rs6k_rs2      6002
-  bfd_arch_hppa,      /* HP PA RISC */
+  bfd_arch_hppa,      /* HP PA RISC.  */
 #define bfd_mach_hppa10        10
 #define bfd_mach_hppa11        11
 #define bfd_mach_hppa20        20
 #define bfd_mach_hppa20w       25
-  bfd_arch_d10v,      /* Mitsubishi D10V */
+  bfd_arch_d10v,      /* Mitsubishi D10V.  */
 #define bfd_mach_d10v          1
 #define bfd_mach_d10v_ts2      2
 #define bfd_mach_d10v_ts3      3
-  bfd_arch_d30v,      /* Mitsubishi D30V */
-  bfd_arch_dlx,       /* DLX */
-  bfd_arch_m68hc11,   /* Motorola 68HC11 */
-  bfd_arch_m68hc12,   /* Motorola 68HC12 */
+  bfd_arch_d30v,      /* Mitsubishi D30V.  */
+  bfd_arch_dlx,       /* DLX.  */
+  bfd_arch_m68hc11,   /* Motorola 68HC11.  */
+  bfd_arch_m68hc12,   /* Motorola 68HC12.  */
 #define bfd_mach_m6812_default 0
 #define bfd_mach_m6812         1
 #define bfd_mach_m6812s        2
-  bfd_arch_m9s12x,   /* Freescale S12X */
-  bfd_arch_m9s12xg,  /* Freescale XGATE */
-  bfd_arch_z8k,       /* Zilog Z8000 */
+  bfd_arch_m9s12x,    /* Freescale S12X.  */
+  bfd_arch_m9s12xg,   /* Freescale XGATE.  */
+  bfd_arch_z8k,       /* Zilog Z8000.  */
 #define bfd_mach_z8001         1
 #define bfd_mach_z8002         2
-  bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500) */
-  bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH) */
-#define bfd_mach_sh            1
-#define bfd_mach_sh2        0x20
-#define bfd_mach_sh_dsp     0x2d
-#define bfd_mach_sh2a       0x2a
-#define bfd_mach_sh2a_nofpu 0x2b
+  bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500).  */
+  bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH).  */
+#define bfd_mach_sh                            1
+#define bfd_mach_sh2                           0x20
+#define bfd_mach_sh_dsp                        0x2d
+#define bfd_mach_sh2a                          0x2a
+#define bfd_mach_sh2a_nofpu                    0x2b
 #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
-#define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
-#define bfd_mach_sh2a_or_sh4  0x2a3
-#define bfd_mach_sh2a_or_sh3e 0x2a4
-#define bfd_mach_sh2e       0x2e
-#define bfd_mach_sh3        0x30
-#define bfd_mach_sh3_nommu  0x31
-#define bfd_mach_sh3_dsp    0x3d
-#define bfd_mach_sh3e       0x3e
-#define bfd_mach_sh4        0x40
-#define bfd_mach_sh4_nofpu  0x41
-#define bfd_mach_sh4_nommu_nofpu  0x42
-#define bfd_mach_sh4a       0x4a
-#define bfd_mach_sh4a_nofpu 0x4b
-#define bfd_mach_sh4al_dsp  0x4d
-#define bfd_mach_sh5        0x50
-  bfd_arch_alpha,     /* Dec Alpha */
-#define bfd_mach_alpha_ev4  0x10
-#define bfd_mach_alpha_ev5  0x20
-#define bfd_mach_alpha_ev6  0x30
+#define bfd_mach_sh2a_nofpu_or_sh3_nommu       0x2a2
+#define bfd_mach_sh2a_or_sh4                   0x2a3
+#define bfd_mach_sh2a_or_sh3e                  0x2a4
+#define bfd_mach_sh2e                          0x2e
+#define bfd_mach_sh3                           0x30
+#define bfd_mach_sh3_nommu                     0x31
+#define bfd_mach_sh3_dsp                       0x3d
+#define bfd_mach_sh3e                          0x3e
+#define bfd_mach_sh4                           0x40
+#define bfd_mach_sh4_nofpu                     0x41
+#define bfd_mach_sh4_nommu_nofpu               0x42
+#define bfd_mach_sh4a                          0x4a
+#define bfd_mach_sh4a_nofpu                    0x4b
+#define bfd_mach_sh4al_dsp                     0x4d
+#define bfd_mach_sh5                           0x50
+  bfd_arch_alpha,     /* Dec Alpha.  */
+#define bfd_mach_alpha_ev4     0x10
+#define bfd_mach_alpha_ev5     0x20
+#define bfd_mach_alpha_ev6     0x30
   bfd_arch_arm,       /* Advanced Risc Machines ARM.  */
 #define bfd_mach_arm_unknown   0
 #define bfd_mach_arm_2         1
@@ -2190,46 +2210,46 @@ enum bfd_architecture
 #define bfd_mach_arm_ep9312    11
 #define bfd_mach_arm_iWMMXt    12
 #define bfd_mach_arm_iWMMXt2   13
-  bfd_arch_nds32,     /* Andes NDS32 */
+  bfd_arch_nds32,     /* Andes NDS32.  */
 #define bfd_mach_n1            1
 #define bfd_mach_n1h           2
 #define bfd_mach_n1h_v2        3
 #define bfd_mach_n1h_v3        4
 #define bfd_mach_n1h_v3m       5
-  bfd_arch_ns32k,     /* National Semiconductors ns32000 */
-  bfd_arch_w65,       /* WDC 65816 */
-  bfd_arch_tic30,     /* Texas Instruments TMS320C30 */
-  bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X */
+  bfd_arch_ns32k,     /* National Semiconductors ns32000.  */
+  bfd_arch_w65,       /* WDC 65816.  */
+  bfd_arch_tic30,     /* Texas Instruments TMS320C30.  */
+  bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X.  */
 #define bfd_mach_tic3x         30
 #define bfd_mach_tic4x         40
-  bfd_arch_tic54x,    /* Texas Instruments TMS320C54X */
-  bfd_arch_tic6x,     /* Texas Instruments TMS320C6X */
-  bfd_arch_tic80,     /* TI TMS320c80 (MVP) */
-  bfd_arch_v850,      /* NEC V850 */
-  bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI) */
+  bfd_arch_tic54x,    /* Texas Instruments TMS320C54X.  */
+  bfd_arch_tic6x,     /* Texas Instruments TMS320C6X.  */
+  bfd_arch_tic80,     /* TI TMS320c80 (MVP).  */
+  bfd_arch_v850,      /* NEC V850.  */
+  bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI).  */
 #define bfd_mach_v850          1
 #define bfd_mach_v850e         'E'
 #define bfd_mach_v850e1        '1'
 #define bfd_mach_v850e2        0x4532
 #define bfd_mach_v850e2v3      0x45325633
-#define bfd_mach_v850e3v5      0x45335635 /* ('E'|'3'|'V'|'5') */
-  bfd_arch_arc,       /* ARC Cores */
+#define bfd_mach_v850e3v5      0x45335635 /* ('E'|'3'|'V'|'5').  */
+  bfd_arch_arc,       /* ARC Cores.  */
 #define bfd_mach_arc_a4        0
 #define bfd_mach_arc_a5        1
 #define bfd_mach_arc_arc600    2
 #define bfd_mach_arc_arc601    4
 #define bfd_mach_arc_arc700    3
 #define bfd_mach_arc_arcv2     5
- bfd_arch_m32c,     /* Renesas M16C/M32C.  */
-#define bfd_mach_m16c        0x75
-#define bfd_mach_m32c        0x78
-  bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D) */
+ bfd_arch_m32c,       /* Renesas M16C/M32C.  */
+#define bfd_mach_m16c          0x75
+#define bfd_mach_m32c          0x78
+  bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D).  */
 #define bfd_mach_m32r          1 /* For backwards compatibility.  */
 #define bfd_mach_m32rx         'x'
 #define bfd_mach_m32r2         '2'
-  bfd_arch_mn10200,   /* Matsushita MN10200 */
-  bfd_arch_mn10300,   /* Matsushita MN10300 */
-#define bfd_mach_mn10300               300
+  bfd_arch_mn10200,   /* Matsushita MN10200.  */
+  bfd_arch_mn10300,   /* Matsushita MN10300.  */
+#define bfd_mach_mn10300       300
 #define bfd_mach_am33          330
 #define bfd_mach_am33_2        332
   bfd_arch_fr30,
@@ -2240,13 +2260,14 @@ enum bfd_architecture
 #define bfd_mach_fr300         300
 #define bfd_mach_fr400         400
 #define bfd_mach_fr450         450
-#define bfd_mach_frvtomcat     499     /* fr500 prototype */
+#define bfd_mach_frvtomcat     499     /* fr500 prototype.  */
 #define bfd_mach_fr500         500
 #define bfd_mach_fr550         550
-  bfd_arch_moxie,       /* The moxie processor */
+  bfd_arch_moxie,     /* The moxie processor.  */
 #define bfd_mach_moxie         1
-  bfd_arch_ft32,       /* The ft32 processor */
+  bfd_arch_ft32,      /* The ft32 processor.  */
 #define bfd_mach_ft32          1
+#define bfd_mach_ft32b         2
   bfd_arch_mcore,
   bfd_arch_mep,
 #define bfd_mach_mep           1
@@ -2254,7 +2275,7 @@ enum bfd_architecture
 #define bfd_mach_mep_c5        0x6335
   bfd_arch_metag,
 #define bfd_mach_metag         1
-  bfd_arch_ia64,      /* HP/Intel ia64 */
+  bfd_arch_ia64,      /* HP/Intel ia64.  */
 #define bfd_mach_ia64_elf64    64
 #define bfd_mach_ia64_elf32    32
   bfd_arch_ip2k,      /* Ubicom IP2K microcontrollers. */
@@ -2263,7 +2284,7 @@ enum bfd_architecture
  bfd_arch_iq2000,     /* Vitesse IQ2000.  */
 #define bfd_mach_iq2000        1
 #define bfd_mach_iq10          2
-  bfd_arch_epiphany,   /* Adapteva EPIPHANY */
+  bfd_arch_epiphany,  /* Adapteva EPIPHANY.  */
 #define bfd_mach_epiphany16    1
 #define bfd_mach_epiphany32    2
   bfd_arch_mt,
@@ -2282,23 +2303,23 @@ enum bfd_architecture
 #define bfd_mach_avr5          5
 #define bfd_mach_avr51         51
 #define bfd_mach_avr6          6
-#define bfd_mach_avrtiny   100
-#define bfd_mach_avrxmega1 101
-#define bfd_mach_avrxmega2 102
-#define bfd_mach_avrxmega3 103
-#define bfd_mach_avrxmega4 104
-#define bfd_mach_avrxmega5 105
-#define bfd_mach_avrxmega6 106
-#define bfd_mach_avrxmega7 107
-  bfd_arch_bfin,        /* ADI Blackfin */
+#define bfd_mach_avrtiny       100
+#define bfd_mach_avrxmega1     101
+#define bfd_mach_avrxmega2     102
+#define bfd_mach_avrxmega3     103
+#define bfd_mach_avrxmega4     104
+#define bfd_mach_avrxmega5     105
+#define bfd_mach_avrxmega6     106
+#define bfd_mach_avrxmega7     107
+  bfd_arch_bfin,      /* ADI Blackfin.  */
 #define bfd_mach_bfin          1
-  bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
+  bfd_arch_cr16,      /* National Semiconductor CompactRISC (ie CR16).  */
 #define bfd_mach_cr16          1
-  bfd_arch_cr16c,       /* National Semiconductor CompactRISC. */
+  bfd_arch_cr16c,     /* National Semiconductor CompactRISC.  */
 #define bfd_mach_cr16c         1
   bfd_arch_crx,       /*  National Semiconductor CRX.  */
 #define bfd_mach_crx           1
-  bfd_arch_cris,      /* Axis CRIS */
+  bfd_arch_cris,      /* Axis CRIS.  */
 #define bfd_mach_cris_v0_v10   255
 #define bfd_mach_cris_v32      32
 #define bfd_mach_cris_v10_v32  1032
@@ -2306,77 +2327,77 @@ enum bfd_architecture
 #define bfd_mach_riscv32       132
 #define bfd_mach_riscv64       164
   bfd_arch_rl78,
-#define bfd_mach_rl78  0x75
+#define bfd_mach_rl78          0x75
   bfd_arch_rx,        /* Renesas RX.  */
 #define bfd_mach_rx            0x75
-  bfd_arch_s390,      /* IBM s390 */
+  bfd_arch_s390,      /* IBM s390.  */
 #define bfd_mach_s390_31       31
 #define bfd_mach_s390_64       64
-  bfd_arch_score,     /* Sunplus score */
-#define bfd_mach_score3         3
-#define bfd_mach_score7         7
+  bfd_arch_score,     /* Sunplus score.  */
+#define bfd_mach_score3        3
+#define bfd_mach_score7        7
   bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
   bfd_arch_xstormy16,
 #define bfd_mach_xstormy16     1
   bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
-#define bfd_mach_msp11          11
-#define bfd_mach_msp110         110
-#define bfd_mach_msp12          12
-#define bfd_mach_msp13          13
-#define bfd_mach_msp14          14
-#define bfd_mach_msp15          15
-#define bfd_mach_msp16          16
-#define bfd_mach_msp20          20
-#define bfd_mach_msp21          21
-#define bfd_mach_msp22          22
-#define bfd_mach_msp23          23
-#define bfd_mach_msp24          24
-#define bfd_mach_msp26          26
-#define bfd_mach_msp31          31
-#define bfd_mach_msp32          32
-#define bfd_mach_msp33          33
-#define bfd_mach_msp41          41
-#define bfd_mach_msp42          42
-#define bfd_mach_msp43          43
-#define bfd_mach_msp44          44
-#define bfd_mach_msp430x        45
-#define bfd_mach_msp46          46
-#define bfd_mach_msp47          47
-#define bfd_mach_msp54          54
-  bfd_arch_xc16x,     /* Infineon's XC16X Series.               */
+#define bfd_mach_msp11         11
+#define bfd_mach_msp110        110
+#define bfd_mach_msp12         12
+#define bfd_mach_msp13         13
+#define bfd_mach_msp14         14
+#define bfd_mach_msp15         15
+#define bfd_mach_msp16         16
+#define bfd_mach_msp20         20
+#define bfd_mach_msp21         21
+#define bfd_mach_msp22         22
+#define bfd_mach_msp23         23
+#define bfd_mach_msp24         24
+#define bfd_mach_msp26         26
+#define bfd_mach_msp31         31
+#define bfd_mach_msp32         32
+#define bfd_mach_msp33         33
+#define bfd_mach_msp41         41
+#define bfd_mach_msp42         42
+#define bfd_mach_msp43         43
+#define bfd_mach_msp44         44
+#define bfd_mach_msp430x       45
+#define bfd_mach_msp46         46
+#define bfd_mach_msp47         47
+#define bfd_mach_msp54         54
+  bfd_arch_xc16x,     /* Infineon's XC16X Series.  */
 #define bfd_mach_xc16x         1
 #define bfd_mach_xc16xl        2
 #define bfd_mach_xc16xs        3
-  bfd_arch_xgate,   /* Freescale XGATE */
+  bfd_arch_xgate,     /* Freescale XGATE.  */
 #define bfd_mach_xgate         1
   bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
 #define bfd_mach_xtensa        1
   bfd_arch_z80,
-#define bfd_mach_z80strict      1 /* No undocumented opcodes.  */
-#define bfd_mach_z80            3 /* With ixl, ixh, iyl, and iyh.  */
-#define bfd_mach_z80full        7 /* All undocumented instructions.  */
-#define bfd_mach_r800           11 /* R800: successor with multiplication.  */
-  bfd_arch_lm32,      /* Lattice Mico32 */
-#define bfd_mach_lm32      1
-  bfd_arch_microblaze,/* Xilinx MicroBlaze. */
-  bfd_arch_tilepro,   /* Tilera TILEPro */
-  bfd_arch_tilegx, /* Tilera TILE-Gx */
-#define bfd_mach_tilepro   1
-#define bfd_mach_tilegx    1
-#define bfd_mach_tilegx32  2
-  bfd_arch_aarch64,   /* AArch64  */
+#define bfd_mach_z80strict     1 /* No undocumented opcodes.  */
+#define bfd_mach_z80           3 /* With ixl, ixh, iyl, and iyh.  */
+#define bfd_mach_z80full       7 /* All undocumented instructions.  */
+#define bfd_mach_r800          11 /* R800: successor with multiplication.  */
+  bfd_arch_lm32,      /* Lattice Mico32.  */
+#define bfd_mach_lm32          1
+  bfd_arch_microblaze,/* Xilinx MicroBlaze.  */
+  bfd_arch_tilepro,   /* Tilera TILEPro.  */
+  bfd_arch_tilegx,    /* Tilera TILE-Gx.  */
+#define bfd_mach_tilepro       1
+#define bfd_mach_tilegx        1
+#define bfd_mach_tilegx32      2
+  bfd_arch_aarch64,   /* AArch64.  */
 #define bfd_mach_aarch64 0
 #define bfd_mach_aarch64_ilp32 32
-  bfd_arch_nios2,      /* Nios II */
+  bfd_arch_nios2,     /* Nios II.  */
 #define bfd_mach_nios2         0
 #define bfd_mach_nios2r1       1
 #define bfd_mach_nios2r2       2
-  bfd_arch_visium,     /* Visium */
+  bfd_arch_visium,    /* Visium.  */
 #define bfd_mach_visium        1
-  bfd_arch_wasm32,     /* WebAssembly */
+  bfd_arch_wasm32,    /* WebAssembly.  */
 #define bfd_mach_wasm32        1
-  bfd_arch_pru,        /* PRU */
-#define bfd_mach_pru   0
+  bfd_arch_pru,       /* PRU.  */
+#define bfd_mach_pru           0
   bfd_arch_last
   };
 
@@ -2394,8 +2415,8 @@ typedef struct bfd_arch_info
      The default arch should be the first entry for an arch so that
      all the entries for that arch can be accessed via <<next>>.  */
   bfd_boolean the_default;
-  const struct bfd_arch_info * (*compatible)
-    (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
+  const struct bfd_arch_info * (*compatible) (const struct bfd_arch_info *,
+                                              const struct bfd_arch_info *);
 
   bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
 
@@ -2448,8 +2469,9 @@ unsigned int bfd_arch_mach_octets_per_by
 
 typedef enum bfd_reloc_status
 {
-  /* No errors detected.  */
-  bfd_reloc_ok,
+  /* No errors detected.  Note - the value 2 is used so that it
+     will not be mistaken for the boolean TRUE or FALSE values.  */
+  bfd_reloc_ok = 2,
 
   /* The relocation was performed, but there was an overflow.  */
   bfd_reloc_overflow,
@@ -2611,19 +2633,19 @@ struct reloc_howto_struct
   HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
          NULL, FALSE, 0, 0, FALSE)
 
-#define HOWTO_PREPARE(relocation, symbol)               \
-  {                                                     \
-    if (symbol != NULL)                                 \
-      {                                                 \
-        if (bfd_is_com_section (symbol->section))       \
-          {                                             \
-            relocation = 0;                             \
-          }                                             \
-        else                                            \
-          {                                             \
-            relocation = symbol->value;                 \
-          }                                             \
-      }                                                 \
+#define HOWTO_PREPARE(relocation, symbol)              \
+  {                                                    \
+    if (symbol != NULL)                                \
+      {                                                \
+        if (bfd_is_com_section (symbol->section))      \
+          {                                            \
+            relocation = 0;                            \
+          }                                            \
+        else                                           \
+          {                                            \
+            relocation = symbol->value;                \
+          }                                            \
+      }                                                \
   }
 
 unsigned int bfd_get_reloc_size (reloc_howto_type *);
@@ -2642,6 +2664,12 @@ bfd_reloc_status_type bfd_check_overflow
     unsigned int addrsize,
     bfd_vma relocation);
 
+bfd_boolean bfd_reloc_offset_in_range
+   (reloc_howto_type *howto,
+    bfd *abfd,
+    asection *section,
+    bfd_size_type offset);
+
 bfd_reloc_status_type bfd_perform_relocation
    (bfd *abfd,
     arelent *reloc_entry,
@@ -3130,6 +3158,11 @@ to compensate for the borrow when the lo
   BFD_RELOC_FT32_20,
   BFD_RELOC_FT32_17,
   BFD_RELOC_FT32_18,
+  BFD_RELOC_FT32_RELAX,
+  BFD_RELOC_FT32_SC0,
+  BFD_RELOC_FT32_SC1,
+  BFD_RELOC_FT32_15,
+  BFD_RELOC_FT32_DIFF32,
 
 
 /* Fujitsu Frv Relocations.  */
@@ -3782,6 +3815,7 @@ pc-relative or some form of GOT-indirect
   BFD_RELOC_ARC_S25W_PCREL_PLT,
   BFD_RELOC_ARC_S21H_PCREL_PLT,
   BFD_RELOC_ARC_NPS_CMEM16,
+  BFD_RELOC_ARC_JLI_SECTOFF,
 
 /* ADI Blackfin 16 bit immediate absolute reloc.  */
   BFD_RELOC_BFIN_16_IMM,
@@ -4754,6 +4788,7 @@ number for the SBIC, SBIS, SBI and CBI i
   BFD_RELOC_RISCV_SET8,
   BFD_RELOC_RISCV_SET16,
   BFD_RELOC_RISCV_SET32,
+  BFD_RELOC_RISCV_32_PCREL,
 
 /* Renesas RL78 Relocations.  */
   BFD_RELOC_RL78_NEG8,
@@ -5997,12 +6032,12 @@ conjunction with BFD_RELOC_AARCH64_LD64_
 
 /* Unsigned 12 bit byte offset for 64 bit load/store from the page of
 the GOT entry for this symbol.  Used in conjunction with
-BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in LP64 ABI only.  */
+BFD_RELOC_AARCH64_ADR_GOT_PAGE.  Valid in LP64 ABI only.  */
   BFD_RELOC_AARCH64_LD64_GOT_LO12_NC,
 
 /* Unsigned 12 bit byte offset for 32 bit load/store from the page of
 the GOT entry for this symbol.  Used in conjunction with
-BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in ILP32 ABI only.  */
+BFD_RELOC_AARCH64_ADR_GOT_PAGE.  Valid in ILP32 ABI only.  */
   BFD_RELOC_AARCH64_LD32_GOT_LO12_NC,
 
 /* Unsigned 16 bit byte offset for 64 bit load/store from the GOT entry
@@ -6512,98 +6547,98 @@ typedef struct bfd_symbol
   symvalue value;
 
   /* Attributes of a symbol.  */
-#define BSF_NO_FLAGS           0x00
+#define BSF_NO_FLAGS            0
 
   /* The symbol has local scope; <<static>> in <<C>>. The value
      is the offset into the section of the data.  */
-#define BSF_LOCAL              (1 << 0)
+#define BSF_LOCAL               (1 << 0)
 
   /* The symbol has global scope; initialized data in <<C>>. The
      value is the offset into the section of the data.  */
-#define BSF_GLOBAL             (1 << 1)
+#define BSF_GLOBAL              (1 << 1)
 
   /* The symbol has global scope and is exported. The value is
      the offset into the section of the data.  */
-#define BSF_EXPORT     BSF_GLOBAL /* No real difference.  */
+#define BSF_EXPORT              BSF_GLOBAL /* No real difference.  */
 
   /* A normal C symbol would be one of:
      <<BSF_LOCAL>>, <<BSF_UNDEFINED>> or <<BSF_GLOBAL>>.  */
 
   /* The symbol is a debugging record. The value has an arbitrary
      meaning, unless BSF_DEBUGGING_RELOC is also set.  */
-#define BSF_DEBUGGING          (1 << 2)
+#define BSF_DEBUGGING           (1 << 2)
 
   /* The symbol denotes a function entry point.  Used in ELF,
      perhaps others someday.  */
-#define BSF_FUNCTION           (1 << 3)
+#define BSF_FUNCTION            (1 << 3)
 
   /* Used by the linker.  */
-#define BSF_KEEP               (1 << 5)
+#define BSF_KEEP                (1 << 5)
 
   /* An ELF common symbol.  */
-#define BSF_ELF_COMMON         (1 << 6)
+#define BSF_ELF_COMMON          (1 << 6)
 
   /* A weak global symbol, overridable without warnings by
      a regular global symbol of the same name.  */
-#define BSF_WEAK               (1 << 7)
+#define BSF_WEAK                (1 << 7)
 
   /* This symbol was created to point to a section, e.g. ELF's
      STT_SECTION symbols.  */
-#define BSF_SECTION_SYM        (1 << 8)
+#define BSF_SECTION_SYM         (1 << 8)
 
   /* The symbol used to be a common symbol, but now it is
      allocated.  */
-#define BSF_OLD_COMMON         (1 << 9)
+#define BSF_OLD_COMMON          (1 << 9)
 
   /* In some files the type of a symbol sometimes alters its
      location in an output file - ie in coff a <<ISFCN>> symbol
      which is also <<C_EXT>> symbol appears where it was
      declared and not at the end of a section.  This bit is set
      by the target BFD part to convey this information.  */
-#define BSF_NOT_AT_END         (1 << 10)
+#define BSF_NOT_AT_END          (1 << 10)
 
   /* Signal that the symbol is the label of constructor section.  */
-#define BSF_CONSTRUCTOR        (1 << 11)
+#define BSF_CONSTRUCTOR         (1 << 11)
 
   /* Signal that the symbol is a warning symbol.  The name is a
      warning.  The name of the next symbol is the one to warn about;
      if a reference is made to a symbol with the same name as the next
      symbol, a warning is issued by the linker.  */
-#define BSF_WARNING            (1 << 12)
+#define BSF_WARNING             (1 << 12)
 
   /* Signal that the symbol is indirect.  This symbol is an indirect
      pointer to the symbol with the same name as the next symbol.  */
-#define BSF_INDIRECT           (1 << 13)
+#define BSF_INDIRECT            (1 << 13)
 
   /* BSF_FILE marks symbols that contain a file name.  This is used
      for ELF STT_FILE symbols.  */
-#define BSF_FILE               (1 << 14)
+#define BSF_FILE                (1 << 14)
 
   /* Symbol is from dynamic linking information.  */
-#define BSF_DYNAMIC            (1 << 15)
+#define BSF_DYNAMIC             (1 << 15)
 
   /* The symbol denotes a data object.  Used in ELF, and perhaps
      others someday.  */
-#define BSF_OBJECT             (1 << 16)
+#define BSF_OBJECT              (1 << 16)
 
   /* This symbol is a debugging symbol.  The value is the offset
      into the section of the data.  BSF_DEBUGGING should be set
      as well.  */
-#define BSF_DEBUGGING_RELOC    (1 << 17)
+#define BSF_DEBUGGING_RELOC     (1 << 17)
 
   /* This symbol is thread local.  Used in ELF.  */
-#define BSF_THREAD_LOCAL       (1 << 18)
+#define BSF_THREAD_LOCAL        (1 << 18)
 
   /* This symbol represents a complex relocation expression,
      with the expression tree serialized in the symbol name.  */
-#define BSF_RELC               (1 << 19)
+#define BSF_RELC                (1 << 19)
 
   /* This symbol represents a signed complex relocation expression,
      with the expression tree serialized in the symbol name.  */
-#define BSF_SRELC              (1 << 20)
+#define BSF_SRELC               (1 << 20)
 
   /* This symbol was created by bfd_get_synthetic_symtab.  */
-#define BSF_SYNTHETIC          (1 << 21)
+#define BSF_SYNTHETIC           (1 << 21)
 
   /* This symbol is an indirect code object.  Unrelated to BSF_INDIRECT.
      The dynamic linker will compute the value of this symbol by
@@ -6613,7 +6648,7 @@ typedef struct bfd_symbol
   /* This symbol is a globally unique data object.  The dynamic linker
      will make sure that in the entire process there is just one symbol
      with this name and type in use.  BSF_OBJECT must also be set.  */
-#define BSF_GNU_UNIQUE         (1 << 23)
+#define BSF_GNU_UNIQUE          (1 << 23)
 
   flagword flags;
 
@@ -6633,22 +6668,22 @@ typedef struct bfd_symbol
 asymbol;
 
 #define bfd_get_symtab_upper_bound(abfd) \
-     BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
+       BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
 
 bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
 
 bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
 
 #define bfd_is_local_label_name(abfd, name) \
-  BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
+       BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
 
 bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
 
 #define bfd_is_target_special_symbol(abfd, sym) \
-  BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
+       BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
 
 #define bfd_canonicalize_symtab(abfd, location) \
-  BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
+       BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
 
 bfd_boolean bfd_set_symtab
    (bfd *abfd, asymbol **location, unsigned int count);
@@ -6656,12 +6691,12 @@ bfd_boolean bfd_set_symtab
 void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
 
 #define bfd_make_empty_symbol(abfd) \
-  BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
+       BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
 
 asymbol *_bfd_generic_make_empty_symbol (bfd *);
 
 #define bfd_make_debug_symbol(abfd,ptr,size) \
-  BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
+       BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
 
 int bfd_decode_symclass (asymbol *symbol);
 
@@ -6673,8 +6708,8 @@ bfd_boolean bfd_copy_private_symbol_data
    (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
 
 #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
-  BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
-            (ibfd, isymbol, obfd, osymbol))
+       BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
+                 (ibfd, isymbol, obfd, osymbol))
 
 /* Extracted from bfd.c.  */
 
@@ -6742,59 +6777,59 @@ struct bfd
      the object_flags values have mostly just been copied from backend
      to another, and are not necessarily correct).  */
 
-#define BFD_NO_FLAGS   0x00
+#define BFD_NO_FLAGS                0x0
 
   /* BFD contains relocation entries.  */
-#define HAS_RELOC      0x01
+#define HAS_RELOC                   0x1
 
   /* BFD is directly executable.  */
-#define EXEC_P         0x02
+#define EXEC_P                      0x2
 
   /* BFD has line number information (basically used for F_LNNO in a
      COFF header).  */
-#define HAS_LINENO     0x04
+#define HAS_LINENO                  0x4
 
   /* BFD has debugging information.  */
-#define HAS_DEBUG      0x08
+#define HAS_DEBUG                  0x08
 
   /* BFD has symbols.  */
-#define HAS_SYMS       0x10
+#define HAS_SYMS                   0x10
 
   /* BFD has local symbols (basically used for F_LSYMS in a COFF
      header).  */
-#define HAS_LOCALS     0x20
+#define HAS_LOCALS                 0x20
 
   /* BFD is a dynamic object.  */
-#define DYNAMIC        0x40
+#define DYNAMIC                    0x40
 
   /* Text section is write protected (if D_PAGED is not set, this is
      like an a.out NMAGIC file) (the linker sets this by default, but
      clears it for -r or -N).  */
-#define WP_TEXT        0x80
+#define WP_TEXT                    0x80
 
   /* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
      linker sets this by default, but clears it for -r or -n or -N).  */
-#define D_PAGED        0x100
+#define D_PAGED                   0x100
 
   /* BFD is relaxable (this means that bfd_relax_section may be able to
      do something) (sometimes bfd_relax_section can do something even if
      this is not set).  */
-#define BFD_IS_RELAXABLE 0x200
+#define BFD_IS_RELAXABLE          0x200
 
   /* This may be set before writing out a BFD to request using a
      traditional format.  For example, this is used to request that when
      writing out an a.out object the symbols not be hashed to eliminate
      duplicates.  */
-#define BFD_TRADITIONAL_FORMAT 0x400
+#define BFD_TRADITIONAL_FORMAT    0x400
 
   /* This flag indicates that the BFD contents are actually cached
      in memory.  If this is set, iostream points to a bfd_in_memory
      struct.  */
-#define BFD_IN_MEMORY 0x800
+#define BFD_IN_MEMORY             0x800
 
   /* This BFD has been created by the linker and doesn't correspond
      to any input file.  */
-#define BFD_LINKER_CREATED 0x1000
+#define BFD_LINKER_CREATED       0x1000
 
   /* This may be set before writing out a BFD to request that it
      be written using values for UIDs, GIDs, timestamps, etc. that
@@ -6802,23 +6837,23 @@ struct bfd
 #define BFD_DETERMINISTIC_OUTPUT 0x2000
 
   /* Compress sections in this BFD.  */
-#define BFD_COMPRESS 0x4000
+#define BFD_COMPRESS             0x4000
 
   /* Decompress sections in this BFD.  */
-#define BFD_DECOMPRESS 0x8000
+#define BFD_DECOMPRESS           0x8000
 
   /* BFD is a dummy, for plugins.  */
-#define BFD_PLUGIN 0x10000
+#define BFD_PLUGIN              0x10000
 
   /* Compress sections in this BFD with SHF_COMPRESSED from gABI.  */
-#define BFD_COMPRESS_GABI 0x20000
+#define BFD_COMPRESS_GABI       0x20000
 
   /* Convert ELF common symbol type to STT_COMMON or STT_OBJECT in this
      BFD.  */
-#define BFD_CONVERT_ELF_COMMON 0x40000
+#define BFD_CONVERT_ELF_COMMON  0x40000
 
   /* Use the ELF STT_COMMON type in this BFD.  */
-#define BFD_USE_ELF_STT_COMMON 0x80000
+#define BFD_USE_ELF_STT_COMMON  0x80000
 
   /* Flags bits to be saved in bfd_preserve_save.  */
 #define BFD_FLAGS_SAVED \
@@ -7034,7 +7069,9 @@ bfd_error_type;
 
 bfd_error_type bfd_get_error (void);
 
-void bfd_set_error (bfd_error_type error_tag, ...);
+void bfd_set_error (bfd_error_type error_tag);
+
+void bfd_set_input_error (bfd *input, bfd_error_type error_tag);
 
 const char *bfd_errmsg (bfd_error_type error_tag);
 
@@ -7063,6 +7100,8 @@ long bfd_canonicalize_reloc
 void bfd_set_reloc
    (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
 
+#define bfd_set_reloc(abfd, asect, location, count) \
+       BFD_SEND (abfd, _bfd_set_reloc, (abfd, asect, location, count))
 bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
 
 int bfd_get_arch_size (bfd *abfd);
@@ -7080,17 +7119,17 @@ bfd_vma bfd_scan_vma (const char *string
 bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
 
 #define bfd_copy_private_header_data(ibfd, obfd) \
-     BFD_SEND (obfd, _bfd_copy_private_header_data, \
-               (ibfd, obfd))
+       BFD_SEND (obfd, _bfd_copy_private_header_data, \
+                 (ibfd, obfd))
 bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
 
 #define bfd_copy_private_bfd_data(ibfd, obfd) \
-     BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
-               (ibfd, obfd))
+       BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
+                 (ibfd, obfd))
 bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
 
 #define bfd_set_private_flags(abfd, flags) \
-     BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
+       BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
 #define bfd_sizeof_headers(abfd, info) \
        BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
 
@@ -7099,7 +7138,7 @@ bfd_boolean bfd_set_private_flags (bfd *
                  (abfd, syms, sec, off, file, func, line, NULL))
 
 #define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \
-                                            line, disc) \
+                                           line, disc) \
        BFD_SEND (abfd, _bfd_find_nearest_line, \
                  (abfd, syms, sec, off, file, func, line, disc))
 
@@ -7358,7 +7397,8 @@ typedef struct bfd_target
      within the target vector structure, one for each format to check.  */
 
   /* Check the format of a file being read.  Return a <<bfd_target *>> or zero.  */
-  const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
+  const struct bfd_target *
+              (*_bfd_check_format[bfd_type_end]) (bfd *);
 
   /* Set the format of a file being written.  */
   bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
@@ -7382,10 +7422,11 @@ typedef struct bfd_target
   /* Called when a new section is created.  */
   bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
   /* Read the contents of a section.  */
-  bfd_boolean (*_bfd_get_section_contents)
-    (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
-  bfd_boolean (*_bfd_get_section_contents_in_window)
-    (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
+  bfd_boolean (*_bfd_get_section_contents) (bfd *, sec_ptr, void *, file_ptr,
+                                            bfd_size_type);
+  bfd_boolean (*_bfd_get_section_contents_in_window) (bfd *, sec_ptr,
+                                                      bfd_window *, file_ptr,
+                                                      bfd_size_type);
 
   /* Entry points to copy private data.  */
 #define BFD_JUMP_TABLE_COPY(NAME) \
@@ -7407,21 +7448,22 @@ typedef struct bfd_target
   /* Called to initialize BFD private section data from one object file
      to another.  */
 #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
-  BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
-  bfd_boolean (*_bfd_init_private_section_data)
-    (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
+       BFD_SEND (obfd, _bfd_init_private_section_data, \
+                 (ibfd, isec, obfd, osec, link_info))
+  bfd_boolean (*_bfd_init_private_section_data) (bfd *, sec_ptr, bfd *,
+                                                 sec_ptr,
+                                                 struct bfd_link_info *);
   /* Called to copy BFD private section data from one object file
      to another.  */
-  bfd_boolean (*_bfd_copy_private_section_data)
-    (bfd *, sec_ptr, bfd *, sec_ptr);
+  bfd_boolean (*_bfd_copy_private_section_data) (bfd *, sec_ptr, bfd *,
+                                                 sec_ptr);
   /* Called to copy BFD private symbol data from one symbol
      to another.  */
-  bfd_boolean (*_bfd_copy_private_symbol_data)
-    (bfd *, asymbol *, bfd *, asymbol *);
+  bfd_boolean (*_bfd_copy_private_symbol_data) (bfd *, asymbol *, bfd *,
+                                                asymbol *);
   /* Called to copy BFD private header data from one object file
      to another.  */
-  bfd_boolean (*_bfd_copy_private_header_data)
-    (bfd *, bfd *);
+  bfd_boolean (*_bfd_copy_private_header_data) (bfd *, bfd *);
   /* Called to set private backend flags.  */
   bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
 
@@ -7456,15 +7498,17 @@ typedef struct bfd_target
 
   bfd_boolean (*_bfd_slurp_armap) (bfd *);
   bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
-  bfd_boolean (*_bfd_construct_extended_name_table)
-    (bfd *, char **, bfd_size_type *, const char **);
+  bfd_boolean (*_bfd_construct_extended_name_table) (bfd *, char **,
+                                                     bfd_size_type *,
+                                                     const char **);
   void        (*_bfd_truncate_arname) (bfd *, const char *, char *);
-  bfd_boolean (*write_armap)
-    (bfd *, unsigned int, struct orl *, unsigned int, int);
+  bfd_boolean (*write_armap) (bfd *, unsigned int, struct orl *,
+                              unsigned int, int);
   void *      (*_bfd_read_ar_hdr_fn) (bfd *);
   bfd_boolean (*_bfd_write_ar_hdr_fn) (bfd *, bfd *);
   bfd *       (*openr_next_archived_file) (bfd *, bfd *);
-#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
+#define bfd_get_elt_at_index(b,i) \
+       BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
   bfd *       (*_bfd_get_elt_at_index) (bfd *, symindex);
   int         (*_bfd_stat_arch_elt) (bfd *, struct stat *);
   bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
@@ -7488,70 +7532,73 @@ typedef struct bfd_target
   NAME##_minisymbol_to_symbol
 
   long        (*_bfd_get_symtab_upper_bound) (bfd *);
-  long        (*_bfd_canonicalize_symtab)
-    (bfd *, struct bfd_symbol **);
+  long        (*_bfd_canonicalize_symtab) (bfd *, struct bfd_symbol **);
   struct bfd_symbol *
               (*_bfd_make_empty_symbol) (bfd *);
-  void        (*_bfd_print_symbol)
-    (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
-#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
-  void        (*_bfd_get_symbol_info)
-    (bfd *, struct bfd_symbol *, symbol_info *);
-#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
-  const char *(*_bfd_get_symbol_version_string)
-    (bfd *, struct bfd_symbol *, bfd_boolean *);
-#define bfd_get_symbol_version_string(b,s,h) BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h))
+  void        (*_bfd_print_symbol) (bfd *, void *, struct bfd_symbol *,
+                                    bfd_print_symbol_type);
+#define bfd_print_symbol(b,p,s,e) \
+       BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
+  void        (*_bfd_get_symbol_info) (bfd *, struct bfd_symbol *,
+                                       symbol_info *);
+#define bfd_get_symbol_info(b,p,e) \
+       BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
+  const char *(*_bfd_get_symbol_version_string) (bfd *, struct bfd_symbol *,
+                                                 bfd_boolean *);
+#define bfd_get_symbol_version_string(b,s,h) \
+       BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h))
   bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
   bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
   alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
-  bfd_boolean (*_bfd_find_nearest_line)
-    (bfd *, struct bfd_symbol **, struct bfd_section *, bfd_vma,
-     const char **, const char **, unsigned int *, unsigned int *);
-  bfd_boolean (*_bfd_find_line)
-    (bfd *, struct bfd_symbol **, struct bfd_symbol *,
-     const char **, unsigned int *);
+  bfd_boolean (*_bfd_find_nearest_line) (bfd *, struct bfd_symbol **,
+                                         struct bfd_section *, bfd_vma,
+                                         const char **, const char **,
+                                         unsigned int *, unsigned int *);
+  bfd_boolean (*_bfd_find_line) (bfd *, struct bfd_symbol **,
+                                 struct bfd_symbol *, const char **,
+                                 unsigned int *);
   bfd_boolean (*_bfd_find_inliner_info)
     (bfd *, const char **, const char **, unsigned int *);
  /* Back-door to allow format-aware applications to create debug symbols
     while using BFD for everything else.  Currently used by the assembler
     when creating COFF files.  */
-  asymbol *   (*_bfd_make_debug_symbol)
-    (bfd *, void *, unsigned long size);
+  asymbol *   (*_bfd_make_debug_symbol) (bfd *, void *, unsigned long size);
 #define bfd_read_minisymbols(b, d, m, s) \
-  BFD_SEND (b, _read_minisymbols, (b, d, m, s))
-  long        (*_read_minisymbols)
-    (bfd *, bfd_boolean, void **, unsigned int *);
+       BFD_SEND (b, _read_minisymbols, (b, d, m, s))
+  long        (*_read_minisymbols) (bfd *, bfd_boolean, void **,
+                                    unsigned int *);
 #define bfd_minisymbol_to_symbol(b, d, m, f) \
-  BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
-  asymbol *   (*_minisymbol_to_symbol)
-    (bfd *, bfd_boolean, const void *, asymbol *);
+       BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
+  asymbol *   (*_minisymbol_to_symbol) (bfd *, bfd_boolean, const void *,
+                                        asymbol *);
 
   /* Routines for relocs.  */
 #define BFD_JUMP_TABLE_RELOCS(NAME) \
   NAME##_get_reloc_upper_bound, \
   NAME##_canonicalize_reloc, \
+  NAME##_set_reloc, \
   NAME##_bfd_reloc_type_lookup, \
   NAME##_bfd_reloc_name_lookup
 
   long        (*_get_reloc_upper_bound) (bfd *, sec_ptr);
-  long        (*_bfd_canonicalize_reloc)
-    (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
+  long        (*_bfd_canonicalize_reloc) (bfd *, sec_ptr, arelent **,
+                                          struct bfd_symbol **);
+  void        (*_bfd_set_reloc) (bfd *, sec_ptr, arelent **, unsigned int);
   /* See documentation on reloc types.  */
   reloc_howto_type *
               (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
   reloc_howto_type *
               (*reloc_name_lookup) (bfd *, const char *);
 
-
   /* Routines used when writing an object file.  */
 #define BFD_JUMP_TABLE_WRITE(NAME) \
   NAME##_set_arch_mach, \
   NAME##_set_section_contents
 
-  bfd_boolean (*_bfd_set_arch_mach)
-    (bfd *, enum bfd_architecture, unsigned long);
-  bfd_boolean (*_bfd_set_section_contents)
-    (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
+  bfd_boolean (*_bfd_set_arch_mach) (bfd *, enum bfd_architecture,
+                                     unsigned long);
+  bfd_boolean (*_bfd_set_section_contents) (bfd *, sec_ptr, const void *,
+                                            file_ptr, bfd_size_type);
 
   /* Routines used by the linker.  */
 #define BFD_JUMP_TABLE_LINK(NAME) \
@@ -7571,15 +7618,18 @@ typedef struct bfd_target
   NAME##_bfd_is_group_section, \
   NAME##_bfd_discard_group, \
   NAME##_section_already_linked, \
-  NAME##_bfd_define_common_symbol
+  NAME##_bfd_define_common_symbol, \
+  NAME##_bfd_define_start_stop
 
   int         (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
-  bfd_byte *  (*_bfd_get_relocated_section_contents)
-    (bfd *, struct bfd_link_info *, struct bfd_link_order *,
-     bfd_byte *, bfd_boolean, struct bfd_symbol **);
+  bfd_byte *  (*_bfd_get_relocated_section_contents) (bfd *,
+                                                      struct bfd_link_info *,
+                                                      struct bfd_link_order *,
+                                                      bfd_byte *, bfd_boolean,
+                                                      struct bfd_symbol **);
 
-  bfd_boolean (*_bfd_relax_section)
-    (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
+  bfd_boolean (*_bfd_relax_section) (bfd *, struct bfd_section *,
+                                     struct bfd_link_info *, bfd_boolean *);
 
   /* Create a hash table for the linker.  Different backends store
      different information in this table.  */
@@ -7595,9 +7645,10 @@ typedef struct bfd_target
   /* Copy the symbol type and other attributes for a linker script
      assignment of one symbol to another.  */
 #define bfd_copy_link_hash_symbol_type(b, t, f) \
-  BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
-  void (*_bfd_copy_link_hash_symbol_type)
-    (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *);
+       BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
+  void        (*_bfd_copy_link_hash_symbol_type) (bfd *,
+                                                  struct bfd_link_hash_entry *,
+                                                  struct bfd_link_hash_entry *);
 
   /* Do a link based on the link_order structures attached to each
      section of the BFD.  */
@@ -7614,8 +7665,7 @@ typedef struct bfd_target
 
   /* Sets the bitmask of allowed and disallowed section flags.  */
   bfd_boolean (*_bfd_lookup_section_flags) (struct bfd_link_info *,
-                                            struct flag_info *,
-                                            asection *);
+                                            struct flag_info *, asection *);
 
   /* Attempt to merge SEC_MERGE sections.  */
   bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
@@ -7635,6 +7685,11 @@ typedef struct bfd_target
   bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *,
                                             struct bfd_link_hash_entry *);
 
+  /* Define a __start, __stop, .startof. or .sizeof. symbol.  */
+  struct bfd_link_hash_entry *
+              (*_bfd_define_start_stop) (struct bfd_link_info *, const char *,
+                                         asection *);
+
   /* Routines to handle dynamic symbols and relocs.  */
 #define BFD_JUMP_TABLE_DYNAMIC(NAME) \
   NAME##_get_dynamic_symtab_upper_bound, \
@@ -7646,20 +7701,19 @@ typedef struct bfd_target
   /* Get the amount of memory required to hold the dynamic symbols.  */
   long        (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
   /* Read in the dynamic symbols.  */
-  long        (*_bfd_canonicalize_dynamic_symtab)
-    (bfd *, struct bfd_symbol **);
+  long        (*_bfd_canonicalize_dynamic_symtab) (bfd *, struct bfd_symbol **);
   /* Create synthetized symbols.  */
-  long        (*_bfd_get_synthetic_symtab)
-    (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
-     struct bfd_symbol **);
+  long        (*_bfd_get_synthetic_symtab) (bfd *, long, struct bfd_symbol **,
+                                            long, struct bfd_symbol **,
+                                            struct bfd_symbol **);
   /* Get the amount of memory required to hold the dynamic relocs.  */
   long        (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
   /* Read in the dynamic relocs.  */
-  long        (*_bfd_canonicalize_dynamic_reloc)
-    (bfd *, arelent **, struct bfd_symbol **);
+  long        (*_bfd_canonicalize_dynamic_reloc) (bfd *, arelent **,
+                                                  struct bfd_symbol **);
 
   /* Opposite endian version of this target.  */
-  const struct bfd_target * alternative_target;
+  const struct bfd_target *alternative_target;
 
   /* Data for use by back-end routines, which isn't
      generic enough to belong in this structure.  */
@@ -7714,6 +7768,13 @@ bfd_boolean bfd_generic_define_common_sy
 #define bfd_define_common_symbol(output_bfd, info, h) \
        BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h))
 
+struct bfd_link_hash_entry *bfd_generic_define_start_stop
+   (struct bfd_link_info *info,
+    const char *symbol, asection *sec);
+
+#define bfd_define_start_stop(output_bfd, info, symbol, sec) \
+       BFD_SEND (output_bfd, _bfd_define_start_stop, (info, symbol, sec))
+
 struct bfd_elf_version_tree * bfd_find_version_for_sym
    (struct bfd_elf_version_tree *verdefs,
     const char *sym_name, bfd_boolean *hide);
@@ -7731,8 +7792,8 @@ bfd_boolean bfd_merge_private_bfd_data
    (bfd *ibfd, struct bfd_link_info *info);
 
 #define bfd_merge_private_bfd_data(ibfd, info) \
-     BFD_SEND ((info)->output_bfd, _bfd_merge_private_bfd_data, \
-               (ibfd, info))
+       BFD_SEND ((info)->output_bfd, _bfd_merge_private_bfd_data, \
+                 (ibfd, info))
 /* Extracted from simple.c.  */
 bfd_byte *bfd_simple_get_relocated_section_contents
    (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/bfd-in.h ./bfd/bfd-in.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/bfd-in.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/bfd-in.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* Main header file for the bfd library -- portable access to object files.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.
 
@@ -104,7 +104,7 @@ typedef BFD_HOST_U_64_BIT bfd_uint64_t;
 #endif
 
 /* Declaring a type wide enough to hold a host long and a host pointer.  */
-#define BFD_HOSTPTR_T	@BFD_HOSTPTR_T@
+#define BFD_HOSTPTR_T @BFD_HOSTPTR_T@
 typedef BFD_HOSTPTR_T bfd_hostptr_t;
 
 /* Forward declaration.  */
@@ -247,7 +247,7 @@ carsym;			/* To make these you call a ca
 
 /* Used in generating armaps (archive tables of contents).
    Perhaps just a forward definition would do?  */
-struct orl 			/* Output ranlib.  */
+struct orl		/* Output ranlib.  */
 {
   char **name;		/* Symbol name.  */
   union
@@ -265,7 +265,7 @@ typedef struct lineno_cache_entry
   union
   {
     struct bfd_symbol *sym;	/* Function name.  */
-    bfd_vma offset;	    		/* Offset into section.  */
+    bfd_vma offset;		/* Offset into section.  */
   } u;
 }
 alent;
@@ -329,11 +329,11 @@ typedef struct _symbol_info
 {
   symvalue value;
   char type;
-  const char *name;            /* Symbol name.  */
-  unsigned char stab_type;     /* Stab type.  */
-  char stab_other;             /* Stab other.  */
-  short stab_desc;             /* Stab desc.  */
-  const char *stab_name;       /* String for stab type.  */
+  const char *name;		/* Symbol name.  */
+  unsigned char stab_type;	/* Stab type.  */
+  char stab_other;		/* Stab other.  */
+  short stab_desc;		/* Stab desc.  */
+  const char *stab_name;	/* String for stab type.  */
 } symbol_info;
 
 /* Get the name of a stabs type code.  */
@@ -371,7 +371,7 @@ struct bfd_hash_table
      only if the argument is NULL.  */
   struct bfd_hash_entry *(*newfunc)
     (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
-   /* An objalloc for this hash table.  This is a struct objalloc *,
+  /* An objalloc for this hash table.  This is a struct objalloc *,
      but we use void * to avoid requiring the inclusion of objalloc.h.  */
   void *memory;
   /* The number of slots in the hash table.  */
@@ -489,7 +489,7 @@ extern int bfd_stat (bfd *, struct stat 
   (_bfd_warn_deprecated ("bfd_read", __FILE__, __LINE__, __FUNCTION__),	\
    bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 #define bfd_write(BUF, ELTSIZE, NITEMS, ABFD)				\
-  (_bfd_warn_deprecated ("bfd_write", __FILE__, __LINE__, __FUNCTION__),	\
+  (_bfd_warn_deprecated ("bfd_write", __FILE__, __LINE__, __FUNCTION__), \
    bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
 #else
 #define bfd_read(BUF, ELTSIZE, NITEMS, ABFD)				\
@@ -935,7 +935,7 @@ extern void bfd_elf32_arm_keep_private_s
 /* ELF ARM mapping symbol support.  */
 #define BFD_ARM_SPECIAL_SYM_TYPE_MAP	(1 << 0)
 #define BFD_ARM_SPECIAL_SYM_TYPE_TAG	(1 << 1)
-#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER  (1 << 2)
+#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER	(1 << 2)
 #define BFD_ARM_SPECIAL_SYM_TYPE_ANY	(~0)
 
 extern bfd_boolean bfd_is_arm_special_symbol_name
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/bfdio.c ./bfd/bfdio.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/bfdio.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/bfdio.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low-level I/O routines for BFDs.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Written by Cygnus Support.
 
@@ -145,12 +145,12 @@ DESCRIPTION
 .     or -1 (setting <<bfd_error>>) if an error occurs.  *}
 .  file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes);
 .  file_ptr (*bwrite) (struct bfd *abfd, const void *ptr,
-.                      file_ptr nbytes);
+.		       file_ptr nbytes);
 .  {* Return the current IOSTREAM file offset, or -1 (setting <<bfd_error>>
 .     if an error occurs.  *}
 .  file_ptr (*btell) (struct bfd *abfd);
 .  {* For the following, on successful completion a value of 0 is returned.
-.     Otherwise, a value of -1 is returned (and  <<bfd_error>> is set).  *}
+.     Otherwise, a value of -1 is returned (and <<bfd_error>> is set).  *}
 .  int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
 .  int (*bclose) (struct bfd *abfd);
 .  int (*bflush) (struct bfd *abfd);
@@ -162,8 +162,8 @@ DESCRIPTION
 .     MAP_LEN the size mapped (a page multiple).  Use unmap with MAP_ADDR and
 .     MAP_LEN to unmap.  *}
 .  void *(*bmmap) (struct bfd *abfd, void *addr, bfd_size_type len,
-.                  int prot, int flags, file_ptr offset,
-.                  void **map_addr, bfd_size_type *map_len);
+.		   int prot, int flags, file_ptr offset,
+.		   void **map_addr, bfd_size_type *map_len);
 .};
 
 .extern const struct bfd_iovec _bfd_memory_iovec;
@@ -185,11 +185,11 @@ bfd_bread (void *ptr, bfd_size_type size
       bfd_size_type maxbytes = arelt_size (abfd);
 
       if (abfd->where + size > maxbytes)
-        {
-          if (abfd->where >= maxbytes)
-            return 0;
-          size = maxbytes - abfd->where;
-        }
+	{
+	  if (abfd->where >= maxbytes)
+	    return 0;
+	  size = maxbytes - abfd->where;
+	}
     }
 
   if (abfd->iovec)
@@ -317,10 +317,10 @@ bfd_seek (bfd *abfd, file_ptr position, 
 
       while (parent_bfd->my_archive != NULL
 	     && !bfd_is_thin_archive (parent_bfd->my_archive))
-        {
-          file_position += parent_bfd->origin;
-          parent_bfd = parent_bfd->my_archive;
-        }
+	{
+	  file_position += parent_bfd->origin;
+	  parent_bfd = parent_bfd->my_archive;
+	}
     }
 
   if (abfd->iovec)
@@ -336,7 +336,7 @@ bfd_seek (bfd *abfd, file_ptr position, 
       bfd_tell (abfd);
 
       /* An EINVAL error probably means that the file offset was
-         absurd.  */
+	 absurd.  */
       if (hold_errno == EINVAL)
 	bfd_set_error (bfd_error_file_truncated);
       else
@@ -392,7 +392,7 @@ FUNCTION
 	bfd_get_size
 
 SYNOPSIS
-	file_ptr bfd_get_size (bfd *abfd);
+	ufile_ptr bfd_get_size (bfd *abfd);
 
 DESCRIPTION
 	Return the file size (as read from file system) for the file
@@ -420,7 +420,7 @@ DESCRIPTION
 	size reasonable?".
 */
 
-file_ptr
+ufile_ptr
 bfd_get_size (bfd *abfd)
 {
   struct stat buf;
@@ -434,6 +434,29 @@ bfd_get_size (bfd *abfd)
   return buf.st_size;
 }
 
+/*
+FUNCTION
+	bfd_get_file_size
+
+SYNOPSIS
+	ufile_ptr bfd_get_file_size (bfd *abfd);
+
+DESCRIPTION
+	Return the file size (as read from file system) for the file
+	associated with BFD @var{abfd}.  It supports both normal files
+	and archive elements.
+
+*/
+
+ufile_ptr
+bfd_get_file_size (bfd *abfd)
+{
+  if (abfd->my_archive != NULL
+      && !bfd_is_thin_archive (abfd->my_archive))
+    return arelt_size (abfd);
+
+  return bfd_get_size (abfd);
+}
 
 /*
 FUNCTION
@@ -441,20 +464,20 @@ FUNCTION
 
 SYNOPSIS
 	void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len,
-	                int prot, int flags, file_ptr offset,
-	                void **map_addr, bfd_size_type *map_len);
+			int prot, int flags, file_ptr offset,
+			void **map_addr, bfd_size_type *map_len);
 
 DESCRIPTION
 	Return mmap()ed region of the file, if possible and implemented.
-        LEN and OFFSET do not need to be page aligned.  The page aligned
-        address and length are written to MAP_ADDR and MAP_LEN.
+	LEN and OFFSET do not need to be page aligned.  The page aligned
+	address and length are written to MAP_ADDR and MAP_LEN.
 
 */
 
 void *
 bfd_mmap (bfd *abfd, void *addr, bfd_size_type len,
 	  int prot, int flags, file_ptr offset,
-          void **map_addr, bfd_size_type *map_len)
+	  void **map_addr, bfd_size_type *map_len)
 {
   void *ret = (void *)-1;
 
@@ -462,7 +485,7 @@ bfd_mmap (bfd *abfd, void *addr, bfd_siz
     return ret;
 
   return abfd->iovec->bmmap (abfd, addr, len, prot, flags, offset,
-                             map_addr, map_len);
+			     map_addr, map_len);
 }
 
 /* Memory file I/O operations.  */
@@ -478,9 +501,9 @@ memory_bread (bfd *abfd, void *ptr, file
   if (abfd->where + get > bim->size)
     {
       if (bim->size < (bfd_size_type) abfd->where)
-        get = 0;
+	get = 0;
       else
-        get = bim->size - abfd->where;
+	get = bim->size - abfd->where;
       bfd_set_error (bfd_error_file_truncated);
     }
   memcpy (ptr, bim->buffer + abfd->where, (size_t) get);
@@ -501,16 +524,16 @@ memory_bwrite (bfd *abfd, const void *pt
       /* Round up to cut down on memory fragmentation */
       newsize = (bim->size + 127) & ~(bfd_size_type) 127;
       if (newsize > oldsize)
-        {
-          bim->buffer = (bfd_byte *) bfd_realloc_or_free (bim->buffer, newsize);
-          if (bim->buffer == NULL)
-            {
-              bim->size = 0;
-              return 0;
-            }
-          if (newsize > bim->size)
-            memset (bim->buffer + bim->size, 0, newsize - bim->size);
-        }
+	{
+	  bim->buffer = (bfd_byte *) bfd_realloc_or_free (bim->buffer, newsize);
+	  if (bim->buffer == NULL)
+	    {
+	      bim->size = 0;
+	      return 0;
+	    }
+	  if (newsize > bim->size)
+	    memset (bim->buffer + bim->size, 0, newsize - bim->size);
+	}
     }
   memcpy (bim->buffer + abfd->where, ptr, (size_t) size);
   return size;
@@ -545,33 +568,33 @@ memory_bseek (bfd *abfd, file_ptr positi
   if ((bfd_size_type)nwhere > bim->size)
     {
       if (abfd->direction == write_direction
-          || abfd->direction == both_direction)
-        {
-          bfd_size_type newsize, oldsize;
-
-          oldsize = (bim->size + 127) & ~(bfd_size_type) 127;
-          bim->size = nwhere;
-          /* Round up to cut down on memory fragmentation */
-          newsize = (bim->size + 127) & ~(bfd_size_type) 127;
-          if (newsize > oldsize)
-            {
-              bim->buffer = (bfd_byte *) bfd_realloc_or_free (bim->buffer, newsize);
-              if (bim->buffer == NULL)
-                {
-                  errno = EINVAL;
-                  bim->size = 0;
-                  return -1;
-                }
-              memset (bim->buffer + oldsize, 0, newsize - oldsize);
-            }
-        }
+	  || abfd->direction == both_direction)
+	{
+	  bfd_size_type newsize, oldsize;
+
+	  oldsize = (bim->size + 127) & ~(bfd_size_type) 127;
+	  bim->size = nwhere;
+	  /* Round up to cut down on memory fragmentation */
+	  newsize = (bim->size + 127) & ~(bfd_size_type) 127;
+	  if (newsize > oldsize)
+	    {
+	      bim->buffer = (bfd_byte *) bfd_realloc_or_free (bim->buffer, newsize);
+	      if (bim->buffer == NULL)
+		{
+		  errno = EINVAL;
+		  bim->size = 0;
+		  return -1;
+		}
+	      memset (bim->buffer + oldsize, 0, newsize - oldsize);
+	    }
+	}
       else
-        {
-          abfd->where = bim->size;
-          errno = EINVAL;
-          bfd_set_error (bfd_error_file_truncated);
-          return -1;
-        }
+	{
+	  abfd->where = bim->size;
+	  errno = EINVAL;
+	  bfd_set_error (bfd_error_file_truncated);
+	  return -1;
+	}
     }
   return 0;
 }
@@ -608,10 +631,10 @@ memory_bstat (bfd *abfd, struct stat *st
 
 static void *
 memory_bmmap (bfd *abfd ATTRIBUTE_UNUSED, void *addr ATTRIBUTE_UNUSED,
-              bfd_size_type len ATTRIBUTE_UNUSED, int prot ATTRIBUTE_UNUSED,
-              int flags ATTRIBUTE_UNUSED, file_ptr offset ATTRIBUTE_UNUSED,
-              void **map_addr ATTRIBUTE_UNUSED,
-              bfd_size_type *map_len ATTRIBUTE_UNUSED)
+	      bfd_size_type len ATTRIBUTE_UNUSED, int prot ATTRIBUTE_UNUSED,
+	      int flags ATTRIBUTE_UNUSED, file_ptr offset ATTRIBUTE_UNUSED,
+	      void **map_addr ATTRIBUTE_UNUSED,
+	      bfd_size_type *map_len ATTRIBUTE_UNUSED)
 {
   return (void *)-1;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/bfd.m4 ./bfd/bfd.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/bfd.m4	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/bfd.m4	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 dnl This file was derived from acinclude.m4.
 dnl
-dnl   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+dnl   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 dnl
 dnl This file is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/bfdwin.c ./bfd/bfdwin.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/bfdwin.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/bfdwin.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for memory-mapped windows into a BFD.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/binary.c ./bfd/binary.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/binary.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/binary.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for binary objects.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -203,14 +203,14 @@ binary_get_symbol_info (bfd *ignore_abfd
   bfd_symbol_info (symbol, ret);
 }
 
-#define binary_bfd_is_local_label_name      bfd_generic_is_local_label_name
-#define binary_get_lineno                  _bfd_nosymbols_get_lineno
-#define binary_find_nearest_line           _bfd_nosymbols_find_nearest_line
-#define binary_find_line                   _bfd_nosymbols_find_line
-#define binary_find_inliner_info           _bfd_nosymbols_find_inliner_info
-#define binary_bfd_make_debug_symbol       _bfd_nosymbols_bfd_make_debug_symbol
-#define binary_read_minisymbols            _bfd_generic_read_minisymbols
-#define binary_minisymbol_to_symbol        _bfd_generic_minisymbol_to_symbol
+#define binary_bfd_is_local_label_name	    bfd_generic_is_local_label_name
+#define binary_get_lineno		   _bfd_nosymbols_get_lineno
+#define binary_find_nearest_line	   _bfd_nosymbols_find_nearest_line
+#define binary_find_line		   _bfd_nosymbols_find_line
+#define binary_find_inliner_info	   _bfd_nosymbols_find_inliner_info
+#define binary_bfd_make_debug_symbol	   _bfd_nosymbols_bfd_make_debug_symbol
+#define binary_read_minisymbols		   _bfd_generic_read_minisymbols
+#define binary_minisymbol_to_symbol	   _bfd_generic_minisymbol_to_symbol
 #define binary_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
 
 /* Set the architecture of a binary file.  */
@@ -230,13 +230,14 @@ binary_set_section_contents (bfd *abfd,
 
   if (! abfd->output_has_begun)
     {
+      unsigned int opb;
       bfd_boolean found_low;
       bfd_vma low;
       asection *s;
 
       /* The lowest section LMA sets the virtual address of the start
-         of the file.  We use this to set the file position of all the
-         sections.  */
+	 of the file.  We use this to set the file position of all the
+	 sections.  */
       found_low = FALSE;
       low = 0;
       for (s = abfd->sections; s != NULL; s = s->next)
@@ -250,9 +251,10 @@ binary_set_section_contents (bfd *abfd,
 	    found_low = TRUE;
 	  }
 
+      opb = bfd_octets_per_byte (abfd);
       for (s = abfd->sections; s != NULL; s = s->next)
 	{
-	  s->filepos = s->lma - low;
+	  s->filepos = (s->lma - low) * opb;
 
 	  /* Skip following warning check for sections that will not
 	     occupy file space.  */
@@ -272,8 +274,8 @@ binary_set_section_contents (bfd *abfd,
 	    _bfd_error_handler
 	      /* xgettext:c-format */
 	      (_("warning: writing section `%A' at huge (ie negative) "
-		 "file offset 0x%lx."),
-	       s, (unsigned long) s->filepos);
+		 "file offset"),
+	       s);
 	}
 
       abfd->output_has_begun = TRUE;
@@ -300,22 +302,23 @@ binary_sizeof_headers (bfd *abfd ATTRIBU
 }
 
 #define binary_bfd_get_relocated_section_contents  bfd_generic_get_relocated_section_contents
-#define binary_bfd_relax_section                   bfd_generic_relax_section
-#define binary_bfd_gc_sections                     bfd_generic_gc_sections
-#define binary_bfd_lookup_section_flags            bfd_generic_lookup_section_flags
-#define binary_bfd_merge_sections                  bfd_generic_merge_sections
-#define binary_bfd_is_group_section                bfd_generic_is_group_section
-#define binary_bfd_discard_group                   bfd_generic_discard_group
-#define binary_section_already_linked             _bfd_generic_section_already_linked
-#define binary_bfd_define_common_symbol            bfd_generic_define_common_symbol
-#define binary_bfd_link_hash_table_create         _bfd_generic_link_hash_table_create
-#define binary_bfd_link_just_syms                 _bfd_generic_link_just_syms
-#define binary_bfd_copy_link_hash_symbol_type     _bfd_generic_copy_link_hash_symbol_type
-#define binary_bfd_link_add_symbols               _bfd_generic_link_add_symbols
-#define binary_bfd_final_link                     _bfd_generic_final_link
-#define binary_bfd_link_split_section             _bfd_generic_link_split_section
-#define binary_get_section_contents_in_window     _bfd_generic_get_section_contents_in_window
-#define binary_bfd_link_check_relocs              _bfd_generic_link_check_relocs
+#define binary_bfd_relax_section		   bfd_generic_relax_section
+#define binary_bfd_gc_sections			   bfd_generic_gc_sections
+#define binary_bfd_lookup_section_flags		   bfd_generic_lookup_section_flags
+#define binary_bfd_merge_sections		   bfd_generic_merge_sections
+#define binary_bfd_is_group_section		   bfd_generic_is_group_section
+#define binary_bfd_discard_group		   bfd_generic_discard_group
+#define binary_section_already_linked		  _bfd_generic_section_already_linked
+#define binary_bfd_define_common_symbol		   bfd_generic_define_common_symbol
+#define binary_bfd_define_start_stop		   bfd_generic_define_start_stop
+#define binary_bfd_link_hash_table_create	  _bfd_generic_link_hash_table_create
+#define binary_bfd_link_just_syms		  _bfd_generic_link_just_syms
+#define binary_bfd_copy_link_hash_symbol_type	  _bfd_generic_copy_link_hash_symbol_type
+#define binary_bfd_link_add_symbols		  _bfd_generic_link_add_symbols
+#define binary_bfd_final_link			  _bfd_generic_final_link
+#define binary_bfd_link_split_section		  _bfd_generic_link_split_section
+#define binary_get_section_contents_in_window	  _bfd_generic_get_section_contents_in_window
+#define binary_bfd_link_check_relocs		  _bfd_generic_link_check_relocs
 
 const bfd_target binary_vec =
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/bout.c ./bfd/bout.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/bout.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/bout.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel 960 b.out binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -476,7 +476,7 @@ b_out_write_object_contents (bfd *abfd)
 /* Some reloc hackery.  */
 
 #define CALLS	  0x66003800	/* Template for 'calls' instruction	*/
-#define BAL	  0x0b000000	/* Template for 'bal' instruction 	*/
+#define BAL	  0x0b000000	/* Template for 'bal' instruction	*/
 #define BAL_MASK  0x00ffffff
 #define BALX	  0x85f00000	/* Template for 'balx' instruction	*/
 #define BALX_MASK 0x0007ffff
@@ -613,9 +613,9 @@ callj_callback (bfd *abfd,
   else if ((symbol->symbol.flags & BSF_SECTION_SYM) != 0)
     {
       /* A callj against a symbol in the same section is a fully
-         resolved relative call.  We don't need to do anything here.
-         If the symbol is not in the same section, I'm not sure what
-         to do; fortunately, this case will probably never arise.  */
+	 resolved relative call.  We don't need to do anything here.
+	 If the symbol is not in the same section, I'm not sure what
+	 to do; fortunately, this case will probably never arise.  */
       BFD_ASSERT (! shrinking);
       BFD_ASSERT (symbol->symbol.section == input_section);
     }
@@ -1372,26 +1372,28 @@ b_out_bfd_get_relocated_section_contents
 
 /* Build the transfer vectors for Big and Little-Endian B.OUT files.  */
 
-#define aout_32_find_line                      _bfd_nosymbols_find_line
+#define aout_32_find_line		       _bfd_nosymbols_find_line
 #define aout_32_get_symbol_version_string      _bfd_nosymbols_get_symbol_version_string
-#define aout_32_bfd_make_debug_symbol          _bfd_nosymbols_bfd_make_debug_symbol
-#define aout_32_close_and_cleanup              aout_32_bfd_free_cached_info
+#define aout_32_bfd_make_debug_symbol	       _bfd_nosymbols_bfd_make_debug_symbol
+#define aout_32_close_and_cleanup	       aout_32_bfd_free_cached_info
 #define b_out_bfd_link_hash_table_create       _bfd_generic_link_hash_table_create
-#define b_out_bfd_link_add_symbols             _bfd_generic_link_add_symbols
-#define b_out_bfd_link_just_syms               _bfd_generic_link_just_syms
+#define b_out_bfd_link_add_symbols	       _bfd_generic_link_add_symbols
+#define b_out_bfd_link_just_syms	       _bfd_generic_link_just_syms
 #define b_out_bfd_copy_link_hash_symbol_type \
   _bfd_generic_copy_link_hash_symbol_type
-#define b_out_bfd_final_link                   _bfd_generic_final_link
-#define b_out_bfd_link_split_section           _bfd_generic_link_split_section
-#define b_out_bfd_gc_sections                  bfd_generic_gc_sections
-#define b_out_bfd_lookup_section_flags         bfd_generic_lookup_section_flags
-#define b_out_bfd_merge_sections               bfd_generic_merge_sections
-#define b_out_bfd_is_group_section             bfd_generic_is_group_section
-#define b_out_bfd_discard_group                bfd_generic_discard_group
-#define b_out_section_already_linked           _bfd_generic_section_already_linked
-#define b_out_bfd_define_common_symbol         bfd_generic_define_common_symbol
+#define b_out_bfd_final_link		       _bfd_generic_final_link
+#define b_out_bfd_link_split_section	       _bfd_generic_link_split_section
+#define b_out_bfd_gc_sections		       bfd_generic_gc_sections
+#define b_out_bfd_lookup_section_flags	       bfd_generic_lookup_section_flags
+#define b_out_bfd_merge_sections	       bfd_generic_merge_sections
+#define b_out_bfd_is_group_section	       bfd_generic_is_group_section
+#define b_out_bfd_discard_group		       bfd_generic_discard_group
+#define b_out_section_already_linked	       _bfd_generic_section_already_linked
+#define b_out_bfd_define_common_symbol	       bfd_generic_define_common_symbol
+#define b_out_bfd_define_start_stop	       bfd_generic_define_start_stop
 #define aout_32_get_section_contents_in_window _bfd_generic_get_section_contents_in_window
-#define b_out_bfd_link_check_relocs            _bfd_generic_link_check_relocs
+#define b_out_bfd_link_check_relocs	       _bfd_generic_link_check_relocs
+#define b_out_set_reloc			       _bfd_generic_set_reloc
 
 extern const bfd_target bout_le_vec;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cache.c ./bfd/cache.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cache.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cache.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* BFD library -- caching of file descriptors.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Hacked by Steve Chamberlain of Cygnus Support (steve@cygnus.com).
 
@@ -82,13 +82,13 @@ bfd_cache_max_open (void)
       /* PR ld/19260: 32-bit Solaris has very inelegant handling of the 255
 	 file descriptor limit.  The problem is that setrlimit(2) can raise
 	 RLIMIT_NOFILE to a value that is not supported by libc, resulting
-         in "Too many open files" errors.  This can happen here even though
+	 in "Too many open files" errors.  This can happen here even though
 	 max_open_files is set to rlim.rlim_cur / 8.  For example, if
 	 a parent process has set rlim.rlim_cur to 65536, then max_open_files
 	 will be computed as 8192.
 
 	 This check essentially reverts to the behavior from binutils 2.23.1
-         for 32-bit Solaris only.  (It is hoped that the 32-bit libc
+	 for 32-bit Solaris only.  (It is hoped that the 32-bit libc
 	 limitation will be removed soon).  64-bit Solaris libc does not have
 	 this limitation.  */
       max = 16;
@@ -104,7 +104,7 @@ bfd_cache_max_open (void)
 #ifdef _SC_OPEN_MAX
 	max = sysconf (_SC_OPEN_MAX) / 8;
 #else
-        max = 10;
+	max = 10;
 #endif
 #endif /* not 32-bit Solaris */
 
@@ -366,23 +366,23 @@ cache_bread (struct bfd *abfd, void *buf
       file_ptr chunk_nread;
 
       if (chunk_size > max_chunk_size)
-        chunk_size = max_chunk_size;
+	chunk_size = max_chunk_size;
 
       chunk_nread = cache_bread_1 (abfd, (char *) buf + nread, chunk_size);
 
       /* Update the nread count.
 
-         We just have to be careful of the case when cache_bread_1 returns
-         a negative count:  If this is our first read, then set nread to
-         that negative count in order to return that negative value to the
-         caller.  Otherwise, don't add it to our total count, or we would
-         end up returning a smaller number of bytes read than we actually
-         did.  */
+	 We just have to be careful of the case when cache_bread_1 returns
+	 a negative count:  If this is our first read, then set nread to
+	 that negative count in order to return that negative value to the
+	 caller.  Otherwise, don't add it to our total count, or we would
+	 end up returning a smaller number of bytes read than we actually
+	 did.  */
       if (nread == 0 || chunk_nread > 0)
-        nread += chunk_nread;
+	nread += chunk_nread;
 
       if (chunk_nread < chunk_size)
-        break;
+	break;
     }
 
   return nread;
@@ -446,8 +446,8 @@ cache_bmmap (struct bfd *abfd ATTRIBUTE_
 	     int prot ATTRIBUTE_UNUSED,
 	     int flags ATTRIBUTE_UNUSED,
 	     file_ptr offset ATTRIBUTE_UNUSED,
-             void **map_addr ATTRIBUTE_UNUSED,
-             bfd_size_type *map_len ATTRIBUTE_UNUSED)
+	     void **map_addr ATTRIBUTE_UNUSED,
+	     bfd_size_type *map_len ATTRIBUTE_UNUSED)
 {
   void *ret = (void *) -1;
 
@@ -466,12 +466,12 @@ cache_bmmap (struct bfd *abfd ATTRIBUTE_
 	return ret;
 
       if (pagesize_m1 == 0)
-        pagesize_m1 = getpagesize () - 1;
+	pagesize_m1 = getpagesize () - 1;
 
       /* Handle archive members.  */
       if (abfd->my_archive != NULL
 	  && !bfd_is_thin_archive (abfd->my_archive))
-        offset += abfd->origin;
+	offset += abfd->origin;
 
       /* Align.  */
       pg_offset = offset & ~pagesize_m1;
@@ -481,11 +481,11 @@ cache_bmmap (struct bfd *abfd ATTRIBUTE_
       if (ret == (void *) -1)
 	bfd_set_error (bfd_error_system_call);
       else
-        {
-          *map_addr = ret;
-          *map_len = pg_len;
-          ret = (char *) ret + (offset & pagesize_m1);
-        }
+	{
+	  *map_addr = ret;
+	  *map_len = pg_len;
+	  ret = (char *) ret + (offset & pagesize_m1);
+	}
     }
 #endif
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cf-i386lynx.c ./bfd/cf-i386lynx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cf-i386lynx.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cf-i386lynx.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel 386 COFF LynxOS files.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cf-sparclynx.c ./bfd/cf-sparclynx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cf-sparclynx.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cf-sparclynx.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Sparc COFF LynxOS files.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ChangeLog ./bfd/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ChangeLog	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/ChangeLog	2018-01-09 02:04:54.000000000 +0000
@@ -1,1020 +1,20 @@
-2017-04-17  Joel Brobecker  <brobecker@adacore.com>
+2018-01-05  Joel Brobecker  <brobecker@adacore.com>
 
 	* development.sh (development): Set to false.
 
-2017-04-13  Alan Modra  <amodra@gmail.com>
+2018-01-03  John Baldwin  <jhb@FreeBSD.org>
 
-	* coffcode.h: Wrap some overly long _bfd_error_handler args.
-	* elf.c: Likewise.
-	* elf32-arm.c: Likewise.
-	* elf32-i386.c: Likewise.
-	* elf32-mep.c: Likewise.
-	* elf64-ia64-vms.c: Likewise.
-	* elf64-x86-64.c: Likewise.
-	* elflink.c: Likewise.
-	* elfnn-ia64.c: Likewise.
-	* elfxx-mips.c: Likewise.
+	* elf.c (elfcore_grok_freebsd_note): Handle
+	NT_FREEBSD_PROCSTAT_PROC, NT_FREEBSD_PROCSTAT_FILES, and
+	NT_FREEBSD_PROCSTAT_VMMAP.
 
-2017-04-13  Alan Modra  <amodra@gmail.com>
-
-	* aoutx.h: Use %B and %A in error messages throughout file.
-	* aout-cris.c: Likewise.
-	* archive.c: Likewise.
-	* binary.c: Likewise.
-	* coff-rs6000.c: Likewise.
-	* coff-tic4x.c: Likewise.
-	* coffcode.h: Likewise.
-	* coffgen.c: Likewise.
-	* cofflink.c: Likewise.
-	* coffswap.h: Likewise.
-	* cpu-arm.c: Likewise.
-	* elf-eh-frame.c: Likewise.
-	* elf-m10300.c: Likewise.
-	* elf.c: Likewise.
-	* elf32-arc.c: Likewise.
-	* elf32-arm.c: Likewise.
-	* elf32-bfin.c: Likewise.
-	* elf32-frv.c: Likewise.
-	* elf32-iq2000.c: Likewise.
-	* elf32-m32c.c: Likewise.
-	* elf32-microblaze.c: Likewise.
-	* elf32-nds32.c: Likewise.
-	* elf32-rl78.c: Likewise.
-	* elf32-rx.c: Likewise.
-	* elf32-score.c: Likewise.
-	* elf32-score7.c: Likewise.
-	* elf32-sh64.c: Likewise.
-	* elf32-v850.c: Likewise.
-	* elf32-vax.c: Likewise.
-	* elf32-visium.c: Likewise.
-	* elf64-ia64-vms.c: Likewise.
-	* elf64-mmix.c: Likewise.
-	* elf64-sh64.c: Likewise.
-	* elfcode.h: Likewise.
-	* elfnn-aarch64.c: Likewise.
-	* elfnn-ia64.c: Likewise.
-	* elfxx-mips.c: Likewise.
-	* hpux-core.c: Likewise.
-	* ieee.c: Likewise.
-	* ihex.c: Likewise.
-	* linker.c: Likewise.
-	* merge.c: Likewise.
-	* mmo.c: Likewise.
-	* oasys.c: Likewise.
-	* pdp11.c: Likewise.
-	* peXXigen.c: Likewise.
-	* rs6000-core.c: Likewise.
-	* vms-alpha.c: Likewise.
-	* xcofflink.c: Likewise.
-
-2017-04-13  Alan Modra  <amodra@gmail.com>
-
-	* bfd.c (PRINT_TYPE): Define.
-	(_doprnt): New function.
-	(error_handler_internal): Use _doprnt.
-	* coff-arm.c: Put %A and %B arguments to _bfd_error_handler
-	calls in their natural order, throughout file.
-	* coff-mcore.c: Likewise.
-	* coff-ppc.c: Likewise.
-	* coff-tic80.c: Likewise.
-	* cofflink.c: Likewise.
-	* elf-s390-common.c: Likewise.
-	* elf.c: Likewise.
-	* elf32-arm.c: Likewise.
-	* elf32-i386.c: Likewise.
-	* elf32-m32r.c: Likewise.
-	* elf32-msp430.c: Likewise.
-	* elf32-spu.c: Likewise.
-	* elf64-ia64-vms.c: Likewise.
-	* elf64-sparc.c: Likewise.
-	* elf64-x86-64.c: Likewise.
-	* elflink.c: Likewise.
-	* elfnn-aarch64.c: Likewise.
-	* elfnn-ia64.c: Likewise.
-	* elfxx-mips.c: Likewise.
-
-2017-04-13  Alan Modra  <amodra@gmail.com>
-
-	* elf32-arm.c (arm_type_of_stub): Supply missing args to "long
-	branch veneers" error.  Fix double space and format message.
-	* elf32-avr.c (avr_add_stub): Do not pass NULL as %B arg.
-	* elf64-ppc.c (tocsave_find): Supply missing %B arg.
-
-2017-04-13  Alan Modra  <amodra@gmail.com>
-
-	* bfd-in2.h: Regenerate.
-
-2017-04-11  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* elf-properties.c (_bfd_elf_parse_gnu_properties): Remove the
-	extra `\n' in warning/error messages.
-	* elf32-i386.c (elf_i386_parse_gnu_properties): Likewise.
-	* elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise.
-
-2017-04-11  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* elf-properties.c (_bfd_elf_parse_gnu_properties): Ignore
-	processor-specific properties with generic ELF target vector.
-
-2017-04-10  Qing Zhao  <qing.zhao@oracle.com>
-
-        * elf32-sparc.c (elf_backend_fixup_symbol): New.
-        * elf64-sparc.c (elf_backend_fixup_symbol): New.
-        * elfxx-sparc.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
-        (_bfd_sparc_elf_link_hash_entry): Add has_got_reloc and
-        has_non_got_reloc.
-        (link_hash_newfunc): Initialize has_got_reloc and
-	has_non_got_reloc.
-        (_bfd_sparc_elf_size_dynamic_sections): Set interp to .interp
-        section.
-        (_bfd_sparc_elf_copy_indirect_symbol): Copy has_got_reloc and
-        has_non_got_reloc.
-        (_bfd_sparc_elf_check_relocs): Set has_got_reloc and
-        has_non_got_reloc.
-        (_bfd_sparc_elf_fixup_symbol): New function.
-        (allocate_dynrelocs): Don't allocate space for dynamic
-        relocations and discard relocations against resolved undefined
-        weak symbols in executable.  Don't make resolved undefined weak
-        symbols in executable dynamic.  Keep dynamic non-GOT/non-PLT
-        relocation against undefined weak symbols in PIE.
-        (_bfd_sparc_elf_relocate_section): Don't generate dynamic
-        relocations against resolved undefined weak symbols in PIE
-        (_bfd_sparc_elf_finish_dynamic_symbol): Keep PLT/GOT entries
-        without ynamic PLT/GOT relocations for resolved undefined weak
-        symbols.
-        Don't generate dynamic relocation against resolved undefined
-        weak symbol in executable.
-        (pie_finish_undefweak_symbol): New function.
-        (_bfd_sparc_elf_finish_dynamic_sections): Call
-        pie_finish_undefweak_symbol on all symbols in PIE.
-        * elfxx-sparc.h (_bfd_sparc_elf_link_hash_table): Add interp.
-        (_bfd_sparc_elf_fixup_symbol): New function.
-
-2017-04-10  Nick Clifton  <nickc@redhat.com>
-
-	* config.bfd: Remove ns32k from obsolete list.
-
-2017-04-10  Alan Modra  <amodra@gmail.com>
-
-	PR 21287
-	* elf.c (special_sections_f): Match .fini_array and .fini_array.*.
-	(special_sections_i): Likewise for .init_array.
-	(special_sections_p): Likewise for .preinit_array.
-
-2017-04-07  H.J. Lu  <hongjiu.lu@intel.com>
-
-	PR ld/19579
-	PR ld/21306
-	* elf32-s390.c (elf_s390_finish_dynamic_symbol): Check
-	ELF_COMMON_DEF_P for common symbols.
-	* elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
-	* elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
-	* elflink.c (_bfd_elf_merge_symbol): Revert commits
-	202ac193bbbecc96a4978d1ac3d17148253f9b01 and
-	07492f668d2173da7a2bda3707ff0985e0f460b6.
-
-2017-04-07  Pedro Alves  <palves@redhat.com>
-
-	* opncls.c (bfd_get_debug_link_info): Rename to...
-	(bfd_get_debug_link_info_1): ... this.  Change type of second
-	parameter to void pointer.  Adjust.
-	(bfd_get_debug_link_info): Reimplement on top of
-	bfd_get_debug_link_info_1.
-	(separate_debug_file_exists, separate_alt_debug_file_exists):
-	Change type of second parameter to void pointer.  Adjust.
-	(get_func_type, check_func_type): Change type of second parameter
-	to void pointer.
-	(find_separate_debug_file): Add 'func_data' parameter.  Pass it to
-	the callback functions instead of passing the address of a local.
-	(bfd_follow_gnu_debuglink): Pass address of unsigned long local to
-	find_separate_debug_file.
-	(get_alt_debug_link_info_shim): Change type of second parameter to
-	void pointer.  Adjust.
-	(bfd_follow_gnu_debugaltlink): Adjust to pass NULL to
-	find_separate_debug_file.
-	(get_build_id_name, bfd_boolean check_build_id_file): Change type
-	of second parameter to void pointer.  Adjust.
-	(bfd_follow_build_id_debuglink): Pass address of bfd_build_id
-	pointer local to find_separate_debug_file.
-
-2017-04-07  Tristan Gingold  <gingold@gingold-Precision-7510>
-
-	* coffgen.c (_bfd_coff_gc_mark_hook): Handle PE weak
-	external symbols with a definition.
-	(_bfd_coff_gc_mark_extra_sections): Fix typo.
-
-2017-04-07  Alan Modra  <amodra@gmail.com>
-
-	* po/SRC-POTFILES.in: Regenerate.
-
-2017-04-05  Alan Modra  <amodra@gmail.com>
-
-	* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Support ELFv2 PLT
-	reference counting.
-
-2017-04-02  Jon Turney  <jon.turney@dronecode.org.uk>
-
-	(_bfd_XXi_swap_aouthdr_out): For clarity, use defines rather than
-	numbers for DataDirectory entry indicies passed to
-	add_data_entry().
-
-2017-04-04  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* elf.c (get_program_header_size): Add a GNU_MBIND segment for
-	each GNU_MBIND section and align GNU_MBIND section to page size.
-	(_bfd_elf_map_sections_to_segments): Create a GNU_MBIND
-	segment for each GNU_MBIND section.
-	(_bfd_elf_init_private_section_data): Copy sh_info from input
-	for GNU_MBIND section.
-
-2017-04-03  Palmer Dabbelt  <palmer@dabbelt.com>
-
-	* elfnn-riscv.c (GP_NAME): Delete.
-	(riscv_global_pointer_value): Change GP_NAME to RISCV_GP_SYMBOL.
-	(_bfd_riscv_relax_lui): Likewise.
-
-2017-04-04  Nick Clifton  <nickc@redhat.com>
-
-	PR binutils/21342
-	* elflink.c (_bfd_elf_define_linkage_sym): Prevent null pointer
-	dereference.
-	(bfd_elf_final_link): Only initialize the extended symbol index
-	section if there are extended symbol tables to list.
-
-2017-04-03  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* Makefile.am (BFD32_BACKENDS): Add elf-properties.lo.
-	(BFD32_BACKENDS_CFILES): Add elf-properties.c.
-	* configure.ac (elf): Add elf-properties.lo.
-	* Makefile.in: Regenerated.
-	* configure: Likewise.
-	* elf-bfd.h (elf_property_kind): New.
-	(elf_property): Likewise.
-	(elf_property_list): Likewise.
-	(elf_properties): Likewise.
-	(_bfd_elf_parse_gnu_properties): Likewise.
-	(_bfd_elf_get_property): Likewise.
-	(_bfd_elf_link_setup_gnu_properties): Likewise.
-	(elf_backend_data): Add parse_gnu_properties, merge_gnu_properties
-	and setup_gnu_properties.
-	(elf_obj_tdata): Add properties.
-	* elf-properties.c: New file.
-	* elf32-i386.c (elf_i386_parse_gnu_properties): New.
-	(elf_i386_merge_gnu_properties): Likewise.
-	(elf_backend_parse_gnu_properties): Likewise.
-	(elf_backend_merge_gnu_properties): Likewise.
-	* elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise.
-	(elf_x86_64_merge_gnu_properties): Likewise.
-	(elf_backend_parse_gnu_properties): Likewise.
-	(elf_backend_merge_gnu_properties): Likewise.
-	* elfxx-target.h (elf_backend_merge_gnu_properties): Likewise.
-	(elf_backend_parse_gnu_properties): Likewise.
-	(elf_backend_setup_gnu_properties): Likewise.
-	(elfNN_bed): Add elf_backend_parse_gnu_properties,
-	elf_backend_merge_gnu_properties and
-	elf_backend_setup_gnu_properties.
-
-2017-03-30  Pip Cet  <pipcet@gmail.com>
-
-	* elf32-wasm32.c: Add relocation code, two relocs.
-	* reloc.c: Add wasm32 relocations.
-	* libbfd.h: Regenerate.
-	* bfd-in2.h: Regenerate.
-	* bfd/po/bfd.pot: Regenerate.
-
-2017-03-29  Nick Clifton  <nickc@redhat.com>
-
-	PR binutils/18025
-	* coff-bfd.h (struct coff_section_data): Add new fields:
-	saved_bias and bias.
-	* coffgen.c (coff_find_nearest_line_with_names): Cache the bias
-	computed for PE binaries.
-	* dwarf2.c (scan_unit_for_symbols): Only warn once about each
-	missing abbrev.
-
-2017-03-28  Hans-Peter Nilsson  <hp@axis.com>
-
-	PR ld/16044
-	* elf32-cris.c (elf_cris_adjust_gotplt_to_got): Adjust BFD_ASSERT
-	to handle a local symbol with a hash-symbol-entry; without PLT.
-	Add BFD_ASSERT for an incidental case with GOT entry present.
-	(cris_elf_check_relocs): Increment PLT refcount only if the symbol
-	isn't forced-or-set local.
-
-2017-03-27  Pip Cet  <pipcet@gmail.com>
-
-	* wasm-module.c: New file to support WebAssembly modules.
-	* wasm-module.h: New file to support WebAssembly modules.
-	* doc/webassembly.texi: Start documenting wasm-module.c.
-	* config.bfd: Add wasm_vec.
-	* targets.c: Likewise.
-	* configure.ac: Likewise.
-	* Makefile.am: Add entries for wasm-module.c.
-	* Makefile.in: Regenerate.
-	* configure: Regenerate.
-	* po/SRC-POTFILES.in: Regenerate.
-
-2017-03-27  Pip Cet  <pipcet@gmail.com>
-
-	* cpu-wasm32.c: New file to support wasm32 architecture.
-	* elf32-wasm32.c: New file to support wasm32 architecture.
-	* Makefile.am: Add wasm32 architecture.
-	* archures.c: Likewise.
-	* config.bfd: Likewise.
-	* configure.ac: Likewise.
-	* targets.c: Likewise.
-	* Makefile.in: Regenerate.
-	* bfd-in2.h: Regenerate.
-	* configure: Regenerate.
-	* po/SRC-POTFILES.in: Regenerate.
-
-2017-03-20  Alan Modra  <amodra@gmail.com>
-
-	PR 21266
-	* elf64-ppc.c (compare_symbols): Stabilize sort.
-
-2017-03-18  Alan Modra  <amodra@gmail.com>
-
-	* elf64-ppc.c (struct ppc_link_hash_table): Add
-	local_ifunc_resolver and maybe_local_ifunc_resolver.
-	(ppc_build_one_stub): Set flags on emitting dynamic
-	relocation to ifunc.
-	(ppc64_elf_relocate_section): Likewise.
-	(ppc64_elf_finish_dynamic_symbol): Likewise.
-	(ppc64_elf_finish_dynamic_sections): Error on DT_TEXTREL with
-	local dynamic relocs to ifuncs.
-	* elf32-ppc.c (struct ppc_elf_link_hash_table): Add
-	local_ifunc_resolver and maybe_local_ifunc_resolver.
-	(ppc_elf_relocate_section): Set flag on emitting dynamic
-	relocation to ifuncs.
-	(ppc_elf_finish_dynamic_symbol): Likewise.
-	(ppc_elf_finish_dynamic_sections): Error on DT_TEXTREL with local
-	dynamic relocs to ifuncs.
-
-2017-03-13  Nick Clifton  <nickc@redhat.com>
-
-	PR binutils/21202
-	* reloc.c (BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC): Rename to
-	BFD_RELOC_AARCH64_TLSDESC_LD64_LO12.
-	(BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC): Rename to
-	BFD_RELOC_AARCH64_TLSDESC_ADD_LO12.
-	* bfd-in2.h: Regenerate.
-	* libbfd.h: Regenerate.
-	* elfnn-aarch64.c (IS_AARCH64_TLS_RELAX_RELOC): Update reloc
-	names.
-	(IS_AARCH64_TLSDESC_RELOC): Likewise.
-	(elfNN_aarch64_howto_table): Likewise.
-	(aarch64_tls_transition_without_check): Likewise.
-	(aarch64_reloc_got_type): Likewise.
-	(elfNN_aarch64_final_link_relocate): Likewise.
-	(elfNN_aarch64_tls_relax): Likewise.
-	(elfNN_aarch64_relocate_section): Likewise.
-	(elfNN_aarch64_gc_sweep_hook): Likewise.
-	(elfNN_aarch64_check_relocs): Likewise.
-	* elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
-	(_bfd_aarch64_elf_resolve_relocation): Likewise.
-
-2017-03-11  Alan Modra  <amodra@gmail.com>
-
-	* elf32-ppc.c: Remove ATTRIBUTE_UNUSED throughout when function
-	parameter is in fact used.  Whitespace fixes.
-	* elf64-ppc.c: Likewise.
-
-2017-03-09  Sam Thursfield  <sam.thursfield@codethink.co.uk>
-
-	* rs6000-core.c (CORE_NEW): Simplify macro when
-	AIX_CORE_DUMPX_CORE and BFD64 are true to avoid compile warning.
-
-2017-03-07  Alan Modra  <amodra@gmail.com>
-
-	PR 21224
-	PR 20519
-	* elf64-ppc.c (ppc64_elf_relocate_section): Add missing
-	dyn_relocs check.
-
-2017-03-05  Alan Modra  <amodra@gmail.com>
-
-	* elf-bfd.h (struct eh_cie_fde): Add u.cie.per_encoding_aligned8.
-	* elf-eh-frame.c (size_of_output_cie_fde): Don't align here.
-	(next_cie_fde_offset): New function.
-	(_bfd_elf_parse_eh_frame): Set u.cie.per_encoding_aligned8.
-	(_bfd_elf_discard_section_eh_frame): Align zero terminator to
-	four bytes.  Align CIEs to four or eight bytes depending on
-	per_encoding_aligned8.  Align FDEs according to their encoding.
-	Pad last FDE to output section alignment.
-	(_bfd_elf_write_section_eh_frame): Adjust to suit.  Remove
-	assertion.
-	* elf64-ppc.c (glink_eh_frame_cie): Delete padding.
-	(ppc64_elf_size_stubs): Pad glink eh_frame as per elf-eh-frame.c.
-	(ppc64_elf_finish_dynamic_sections): Adjust to suit.
-
-2017-03-02  Martin Bickel  <binutils@ineranves.de>
-
-	PR ld/21212
-	* elf.c (rewrite_elf_program_header): Do not issue a warning for
-	empty segments which have a zero filesz, but a non-zero memsz.
-
-2017-03-02  Alan Modra  <amodra@gmail.com>
-
-	* elf32-ppc.c (ppc_elf_vle_split16): Correct insn mask typo.
-
-2017-02-28  Alan Modra  <amodra@gmail.com>
-
-	* elf64-ppc.c (ppc64_elf_ha_reloc): Revert last change.
-	(ppc64_elf_relocate_section): Likewise.
-
-2017-02-28  Alan Modra  <amodra@gmail.com>
-
-	PR 20995
-	* elf32-nios2.c (nios2_elf32_relocate_section): Use htab
-	rather than elf32_nios2_hash_table or elf_hash_table.
-	(create_got_section): Likewise.
-	(nios2_elf32_finish_dynamic_symbol): Likewise.
-	(nios2_elf32_adjust_dynamic_symbol): Likewise.
-	(nios2_elf32_size_dynamic_sections): Likewise.
-	(nios2_elf32_check_relocs): Delete dynobj, sgot, and srelgot
-	vars.  Use htab equivalents directly instead.  Don't create
-	all dynamic sections on needing just the GOT.  Use a goto
-	rather than a fall-through with reloc test.  Ensure
-	htab->dynobj is set when making dynamic sreloc section.
-	(nios2_elf32_finish_dynamic_sections): Delete dynobj, use htab
-	equivalent directly instead.  Don't segfault on looking for
-	.dynamic when dynamic sections have not been created.  Don't
-	segfault on .got.plt being discarded.
-	(nios2_elf32_size_dynamic_sections): Delete plt and got vars.
-	Don't set "relocs" on .rela.plt.  Do handle .sbss.  Delete
-	fixme and another not so relevant comment.
-	(nios2_elf_add_symbol_hook): Delete dynobj var.  If not
-	already set, set hash table dynobj on creating .sbss.
-
-2017-02-28  Alan Modra  <amodra@gmail.com>
-
-	* reloc.c (BFD_RELOC_PPC_16DX_HA): New.
-	* elf64-ppc.c (ppc64_elf_howto_raw <R_PPC64_16DX_HA>): New howto.
-	(ppc64_elf_reloc_type_lookup): Translate new bfd reloc.
-	(ppc64_elf_ha_reloc): Correct overflow test on REL16DX_HA.
-	(ppc64_elf_relocate_section): Likewise.
-	* elf32-ppc.c (ppc_elf_howto_raw <R_PPC_16DX_HA>): New howto.
-	(ppc_elf_reloc_type_lookup): Translate new bfd reloc.
-	(ppc_elf_check_relocs): Handle R_PPC_16DX_HA to pacify gcc.
-	* libbfd.h: Regenerate.
-	* bfd-in2.h: Regenerate.
-
-2017-02-28  Alan Modra  <amodra@gmail.com>
-
-	* elflink.c (_bfd_elf_create_dynamic_sections): Don't make
-	dynamic .data.rel.ro read-only.
-	* elf32-arm.c (elf32_arm_finish_dynamic_symbol): Compare section
-	rather than section flags when deciding where copy reloc goes.
-	* elf32-cris.c (elf_cris_finish_dynamic_symbol): Likewise.
-	* elf32-hppa.c (elf32_hppa_finish_dynamic_symbol): Likewise.
-	* elf32-i386.c (elf_i386_finish_dynamic_symbol): Likewise.
-	* elf32-metag.c (elf_metag_finish_dynamic_symbol): Likewise.
-	* elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): Likewise.
-	* elf32-nios2.c (nios2_elf32_finish_dynamic_symbol): Likewise.
-	* elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Likewise.
-	* elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Likewise.
-	* elf32-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
-	* elf32-tic6x.c (elf32_tic6x_finish_dynamic_symbol): Likewise.
-	* elf32-tilepro.c (tilepro_elf_finish_dynamic_symbol): Likewise.
-	* elf64-ppc.c (ppc64_elf_finish_dynamic_symbol): Likewise.
-	* elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
-	* elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise.
-	* elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Likewise.
-	* elfnn-riscv.c (riscv_elf_finish_dynamic_symbol): Likewise.
-	* elfxx-mips.c (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
-	* elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Likewise.
-	* elfxx-tilegx.c (tilegx_elf_finish_dynamic_symbol): Likewise.
-
-2017-02-28  Maciej W. Rozycki  <macro@imgtec.com>
-
-	* elfxx-mips.c (mips_elf_perform_relocation): Also handle the
-	`jalr $0, $25' instruction encoding.
-
-2017-02-27  Nick Clifton  <nickc@redhat.com>
-
-	PR ld/21180
-	* elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): Avoid
-	generating a seg-fault when encountering a symbol that has been
-	deleted by garbage collection.
-
-2017-02-25  Alan Modra  <amodra@gmail.com>
-
-	* elf32-arc.c (struct dynamic_sections): Delete.
-	(enum dyn_section_types): Delete.
-	(dyn_section_names): Delete.
-	(arc_create_dynamic_sections): Delete.
-	(elf_arc_finish_dynamic_sections): Don't call the above.  Don't
-	segfault on discarded .rela.plt section.
-	(elf_arc_size_dynamic_sections): Formatting.  Don't call
-	arc_create_dynamic_sections.  Don't allocate memory for sections
-	handled by the generic linker.  Correct code finding relocs in
-	read-only sections.  Set SEC_EXCLUDE on zero size .got,
-	.got.plt, and .dynbss sections.  Do set .interp for pies.
-
-2017-02-24  Andrew Waterman  <andrew@sifive.com>
-
-	* elfnn-riscv.c (GP_NAME): New macro.
-	(riscv_global_pointer_value): Use it.
-	(_bfd_riscv_relax_lui): If symbol and global pointer are in same
-	output section, consider only that section's alignment.
-
-2017-02-23  Maciej W. Rozycki  <macro@imgtec.com>
-
-	* elfxx-mips.h (_bfd_mips_relax_section): Remove prototype.
-	* elfxx-mips.c (_bfd_mips_relax_section): Remove function.
-	* elf64-mips.c (bfd_elf64_bfd_relax_section): Remove macro.
-	* elfn32-mips.c (bfd_elf32_bfd_relax_section): Likewise.
-
-2017-02-23  Maciej W. Rozycki  <macro@imgtec.com>
-
-	* elfxx-mips.c (mips_elf_calculate_relocation) <R_MIPS_JALR>
-	<R_MICROMIPS_JALR>: Discard relocation if `cross_mode_jump_p'
-	or misaligned.
-
-2017-02-23  Alan Modra  <amodra@gmail.com>
-
-	PR 20744
-	* elf32-ppc.c (ppc_elf_howto_raw): Correct dst_mask on all VLE
-	16D relocations.
-	(ppc_elf_vle_split16): Correct field mask and shift for 16D relocs.
-	(ppc_elf_relocate_section): Correct calculation for VLE SDAREL
-	relocs.
-
-2017-02-22  Maciej W. Rozycki  <macro@imgtec.com>
-
-	PR ld/20828
-	* elflink.c (bfd_elf_size_dynamic_sections): Move symbol version
-	processing ahead of the call to `elf_gc_sweep_symbol'.
-
-2017-02-22  Nick Clifton  <nickc@redhat.com>
-
-	PR binutils/21193
-	* opncls.c (bfd_create_gnu_debuglink_section): Give the newly
-	created section 4-byte alignment.
-
-2017-02-22  Alan Modra  <amodra@gmail.com>
-
-	* elf64-ppc.c (ppc64_elf_finish_dynamic_sections): Don't segfault
-	on .got or .plt output section being discarded by script.
-	* elf32-ppc.c (ppc_elf_finish_dynamic_sections): Likewise.  Move
-	vxworks splt temp.
-
-2017-02-21  Alan Modra  <amodra@gmail.com>
-
-	* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Only emit
-	DT_RELA, DT_RELASZ, and DT_RELAENT when DT_RELASZ is non-zero.
-
-2017-02-20  Alan Modra  <amodra@gmail.com>
-
-	PR 21181
-	* elflink.c (bfd_elf_final_link): Make DT_REL/DT_RELA zero
-	if DT_RELSZ/DT_RELASZ is zero.
-
-2017-02-17  Nick Clifton  <nickc@redhat.com>
-
-	* compress.c (bfd_get_full_section_contents): Remember to reduce
-	compressed size by the sizeof the compression header when
-	decompressing the contents.
-
-2017-02-17  Pedro Alves  <palves@redhat.com>
-
-	* srec.c (Chunk): Rename to ...
-	(_bfd_srec_len): ... this.
-	(S3Forced): Rename to ...
-	(_bfd_srec_forceS3): ... this.
-	* objcopy.c: Adjust all references.
-
-2017-02-17  Pedro Alves  <palves@redhat.com>
-
-	* archive.c (bsd_write_armap): Rename to ...
-	(_bfd_bsd_write_armap): ... this.
-	(coff_write_armap): Rename to ...
-	(_bfd_coff_write_armap): ... this.
-	* libbfd-in.h (bsd_write_armap): Rename to ...
-	(_bfd_bsd_write_armap): ... this.
-	(coff_write_armap): Rename to ...
-	(_bfd_coff_write_armap): ... this.
-	* aout-target.h, aout-tic30.c: Adjust all users.
-	* libbfd.h: Regenerate.
-
-2017-02-17  Pedro Alves  <palves@redhat.com>
-
-	* bfd-in.h (bfd_read, bfd_write): Adjust to rename.
-	(warn_deprecated): Rename to ...
-	(_bfd_warn_deprecated): ... this.
-	* libbfd.c (warn_deprecated): Rename to ...
-	(_bfd_warn_deprecated): ... this.
-	* bfd-in2.h: Regenerate.
-
-2017-02-17  Pedro Alves  <palves@redhat.com>
-
-	* bfdio.c (real_ftell): Rename to ...
-	(_bfd_real_ftell): ... this.
-	(real_fseek): Rename to ...
-	(_bfd_real_fseek): ... this.
-	(real_fopen): Rename to ...
-	(_bfd_real_fopen): ... this.
-	* libbfd-in.h (real_ftell): Rename to ...
-	(_bfd_real_ftell): ... this.
-	(real_fseek): Rename to ...
-	(_bfd_real_fseek): ... this.
-	(real_fopen): Rename to ...
-	(_bfd_real_fopen): ... this.
-	* cache.c, dwarf2.c, opncls.c: Adjust all callers.
-	* libbfd.h: Regenerate.
-
-2017-02-17  Pedro Alves  <palves@redhat.com>
-
-	* dwarf2.c, elf-attrs.c, elf32-nds32.c: Adjust all callers.
-	* libbfd.c (read_unsigned_leb128): Rename to ...
-	(_bfd_read_unsigned_leb128): ... this.
-	(read_signed_leb128): Rename to ...
-	(_bfd_read_signed_leb128): ... this.
-	(safe_read_leb128): Rename to ...
-	(_bfd_safe_read_leb128): ... this.
-	* libbfd-in.h (read_unsigned_leb128): Rename to ...
-	(_bfd_read_unsigned_leb128): ... this.
-	(read_signed_leb128): Rename to ...
-	(_bfd_read_signed_leb128): ... this.
-	(safe_read_leb128): Rename to ...
-	(_bfd_safe_read_leb128): ... this.
-	* libbfd.h: Renegerate.
-
-2017-02-16  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	* dwarf2.c (_bfd_dwarf2_find_nearest_line): Perform symbol lookup
-	before trying to fine matching file and line information.
-
-2017-02-16  Andrew Burgess  <andrew.burgess@embecosm.com>
-
-	* dwarf2.c (struct dwarf2_debug): Add orig_bfd member.
-	(_bfd_dwarf2_slurp_debug_info): If stashed debug information does
-	not match current bfd, then reload debug information.  Record bfd
-	we're loading debug info for in the stash.  If we have debug
-	informatin in the cache then perform section placement before
-	returning.
-
-2017-02-16  Alan Modra  <amodra@gmail.com>
-
-	PR 21000
-	* elf-bfd.h (struct elf_backend_data): Add no_page_alias.
-	* elfxx-target.h (elf_backend_no_page_alias): Define.
-	(elfNN_bed): Init new field.
-	* elf.c (assign_file_positions_for_load_sections): If no_page_alias
-	ensure PT_LOAD segment starts on a new page.
-	* elf32-hppa.c (elf_backend_no_page_alias): Define.
-
-2017-02-16  Alan Modra  <amodra@gmail.com>
-
-	PR 21132
-	* elf32-hppa.c (allocate_plt_static): Allocate space for relocs
-	if pic.
-
-2017-02-16  Jiong Wang <jiong.wang@arm.com>
-
-	* bfd.c (BFD_FLAGS_SAVED): Add BFD_LINKER_CREATED.
-	* bfd-in2.h: Regenerated.
-
-2017-02-15  H.J. Lu  <hongjiu.lu@intel.com>
-
-	PR ld/21168
-	* elf32-i386.c (elf_i386_relocate_section): Allow
-	"lea foo@GOT, %reg" in PIC.
-
-2017-02-15  H.J. Lu  <hongjiu.lu@intel.com>
-
-	PR ld/20244
-	* elf32-i386.c (elf_i386_relocate_section): Properly get IFUNC
-	symbol name when reporting R_386_GOT32/R_386_GOT32X relocation
-	error against local IFUNC symbol without a base register for
-	PIC.
-
-2017-02-15  Maciej W. Rozycki  <macro@imgtec.com>
-
-	* elf32-ppc.c (ppc_elf_check_relocs): Use `%H:' rather than
-	`%P: %H:' with `info->callbacks->einfo'.
-	(ppc_elf_relocate_section): Likewise.
-	* elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
-	(ppc64_elf_edit_toc): Likewise.
-	(ppc64_elf_relocate_section): Likewise.
-
-2017-02-14  Alan Modra  <amodra@gmail.com>
-
-	* elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Support
-	--gc-keep-exported, and test versioned field of sym rather than
-	looking for @ in name.
-
-2017-02-13  Palmer Dabbelt  <palmer@dabbelt.com>
-
-	* elfnn-riscv.c (riscv_global_pointer_value): Change _gp to
-	__global_pointer$.
-
-2017-02-13  Nick Clifton  <nickc@redhat.com>
-
-	PR binutils/21151
-	* dwarf2.c (_bfd_dwarf2_find_nearest_line): Check for an invalid
-	unit length field.
-
-2017-02-07  Andrew Waterman  <andrew@sifive.com>
-
-	* elfnn-riscv.c (riscv_elf_finish_dynamic_sections): Only write PLT
-	entry size if PLT header is written.
-
-2017-02-06  Sheldon Lobo  <sheldon.lobo@oracle.com>
-
-	Fix sparc64 dynamic relocation processing to use the dynamic
-        symbol count.
-	* elf64-sparc.c (elf64_sparc_slurp_one_reloc_table): Use 'dynamic'
-	to determine if bfd_get_symcount() or bfd_get_dynamic_symcount()
-	should be used.
-
-2017-02-03  Nick Clifton  <nickc@redhat.com>
-
-	PR 21096
-	* coffcode.h (coff_write_object_contents): Enlarge size of
-	s_name_buf in order to avoid compile time warning about possible
-	integer truncation.
-	* elf32-nds32.c (nds32_elf_ex9_import_table): Mask off lower
-	32-bits of insn value before printing into buffer.
-
-2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
-
-	* elfxx-mips.c (mips_elf_hash_sort_data): Add
-	`max_local_dynindx'.
-	(mips_elf_sort_hash_table): Handle it.
-	(mips_elf_sort_hash_table_f) <GGA_NONE>: For forced local
-	symbols bump up `max_local_dynindx' rather than
-	`max_non_got_dynindx'.
-
-2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
-
-	* elfxx-mips.c (mips_elf_hash_sort_data): Convert the
-	`min_got_dynindx', `max_unref_got_dynindx' and
-	`max_non_got_dynindx' members to the `bfd_size_type' data type.
-	(mips_elf_sort_hash_table): Adjust accordingly.
-
-2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
-
-	* elfxx-mips.c (mips_elf_sort_hash_table): Use `htab' throughout
-	to access the hash table.
-
-2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
-
-	* elfxx-mips.c (mips_elf_sort_hash_table): Move assertion on
-	non-NULL `htab' to the beginning.
-
-2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
-
-	* elflink.c (elf_gc_sweep): Wrap overlong line.
-
-2017-01-30  Maciej W. Rozycki  <macro@imgtec.com>
-
-	* elfxx-mips.h (_bfd_mips_elf_insn32): Rename prototype to...
-	(_bfd_mips_elf_linker_flags): ... this.  Add another parameter.
-	* elfxx-mips.c (mips_elf_link_hash_table): Add
-	`ignore_branch_isa' member.
-	(mips_elf_perform_relocation): Do not treat an ISA mode mismatch
-	in branch relocation calculation as an error if
-	`ignore_branch_isa' has been set.
-	(_bfd_mips_elf_insn32): Rename to...
-	(_bfd_mips_elf_linker_flags): ... this.  Rename the `on'
-	parameter to `insn32' and add an `ignore_branch_isa' parameter.
-	Handle the new parameter.
-
-2017-01-27  Hans-Peter Nilsson  <hp@axis.com>
-
-	* elf32-cris.c (elf_cris_finish_dynamic_symbol): Remove now unused
-	local variable dynobj.
-
-	PR ld/20995
-	* elf32-cris.c (elf_cris_size_dynamic_sections): Handle sdynrelro.
-	(elf_cris_adjust_dynamic_symbol): Place variables copied into the
-	executable from read-only sections into sdynrelro.
-	(elf_cris_finish_dynamic_symbol): Select sreldynrelro for
-	dynamic relocs in sdynrelro.
-	(elf_backend_want_dynrelro): Define.
-
-2017-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
-
-	* config.bfd (*-*-rtemsaout*): Mark as removed.
-
-2017-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
-
-	* config.bfd (powerpcle-*-rtems*): Do not mark as removed.
-	(arm-*-rtems*): Move to (arm*-*-eabi*).
-	(i[3-7]86-*-rtems*): Move to (i[3-7]86-*-elf*).
-	(m68-*-rtems*): Move to (m68*-*-elf*).
-
-2017-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
-
-	* config.bfd (*-*-rtemscoff*): Mark as removed.
-
-2017-01-24  Maciej W. Rozycki  <macro@imgtec.com>
-
-	PR ld/20828
-	* elflink.c (bfd_elf_record_link_assignment): Revert last
-	change and don't ever clear `forced_local'.  Set `mark'
-	unconditionally.
-	(elf_gc_sweep_symbol_info, elf_gc_sweep_symbol): Reorder within
-	file.
-	(elf_gc_sweep): Move the call to `elf_gc_sweep_symbol'...
-	(bfd_elf_size_dynamic_sections): ... here.
-	* elf32-ppc.c (ppc_elf_tls_setup): Don't clear `forced_local'
-	and set `mark' instead in `__tls_get_addr_opt' processing.
-	* elf64-ppc.c (ppc64_elf_tls_setup): Likewise.
-
-2017-01-24  Alan Modra  <amodra@gmail.com>
-
-	* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Merge two cases
-	where dynamic relocs are preferable.  Allow ifunc too.
-	(ensure_undefweak_dynamic): New function.
-	(allocate_dynrelocs): Use it here.  Move plt handling last and
-	don't make symbols dynamic, simplifying loop.  Only make undef
-	weak symbols with GOT entries dynamic.  Correct condition
-	for GOT relocs.  Handle dynamic relocs on ifuncs.  Correct
-	comments.  Remove goto.
-	(ppc_elf_relocate_section): Correct test for using dynamic
-	symbol on GOT relocs.  Rearrange test for emitting GOT relocs
-	to suit.  Set up explicit tls_index entries and implicit GOT
-	tls_index entries resolvable at link time for
-	__tls_get_addr_opt.  Simplify test to clear mem for prelink.
-	* elf64-ppc.c (allocate_got): Correct condition for GOT relocs.
-	(ensure_undefweak_dynamic): New function.
-	(allocate_dynrelocs): Use it here.  Only make undef weak symbols
-	with GOT entries dynamic.  Remove unnecessary test of
-	WILL_CALL_FINISH_DYNAMIC_SYMBOL in PLT handling.
-	(ppc64_elf_relocate_section): Correct test for using dynamic
-	symbol on GOT relocs.  Rearrange test for emitting GOT relocs
-	to suit.  Set up explicit tls_index entries and implicit GOT
-	tls_index entries resolvable at link time for __tls_get_addr_opt.
-	Simplify expression to clear mem for prelink.
-
-2017-01-23  Yury Norov  <ynorov@caviumnetworks.com>
-
-	* elfnn-aarch64.c: Fix relaxations for ILP32 mode.
-
-2017-01-20  Jiong Wang <jiong.wang@arm.com>
-
-	* elfnn-aarch64.c (elf_aarch64_hash_symbol): New function.
-	(elf_backend_hash_symbol): Define.
-
-2017-01-18  Maciej W. Rozycki  <macro@imgtec.com>
-
-	PR ld/20828
-	* elflink.c (bfd_elf_record_link_assignment): Clear any
-	`forced_local' marking for DSO symbols that are not being
-	provided.
-
-2017-01-17  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
-
-	* elfnn-riscv.c (riscv_elf_object_p): New function.
-
-2017-01-12  H.J. Lu  <hongjiu.lu@intel.com>
-
-	PR ld/21038
-	* elf64-x86-64.c (elf_x86_64_link_hash_table): Add
-	plt_bnd_eh_frame.
-	(elf_x86_64_check_relocs): Create .eh_frame section for the
-	.plt.bnd section.
-	(elf_x86_64_size_dynamic_sections): Allocate and initialize
-	.eh_frame section for the .plt.bnd section.
-	(elf_x86_64_finish_dynamic_sections): Adjust .eh_frame section
-	for the .plt.bnd section.
-
-2017-01-12  Nick Clifton  <nickc@redhat.com>
-
-	PR binutils/20876
-	* opncls.c (find_separate_debug_file): Add include_dirs
-	parameter.  Only include the directory part of the bfd's filename
-	in search paths if include_dirs is true.  Add a couple of extra
-	locations for looking for debug files.
-	( bfd_follow_gnu_debuglink): Update invocation of
-	find_separate_debug_file.
-	(bfd_follow_gnu_debugaltlink): Likewise.
-	(get_build_id): New function: Finds the build-id of the given bfd.
-	(get_build_id_name): New function: Computes the name of the
-	separate debug info file for a bfd, based upon its build-id.
-	(check_build_id_file): New function: Checks to see if a separate
-	debug info file exists at the given location, and that its
-	build-id matches that of the original bfd.
-	(bfd_follow_build_id_debuglink): New function: Finds a separate
-	debug info file for a given bfd by using the build-id method.
-	* dwarf2.c (_bfd_dwarf2_slurp_debug_info): Try using the build-id
-	method of locating a separate debug info file before using the
-	debuglink method.
-	* bfd-in2.h: Regenerate.
-
-2017-01-11  H.J. Lu  <hongjiu.lu@intel.com>
-
-	PR ld/21038
-	* elf64-x86-64.c (elf_x86_64_eh_frame_bnd_plt): New.
-	(elf_x86_64_bnd_arch_bed): Use elf_x86_64_eh_frame_bnd_plt and
-	elf_x86_64_eh_frame_plt_got.
-	(elf_x86_64_size_dynamic_sections): Get unwind info from
-	elf_x86_64_bnd_arch_bed for the BND PLT.
-
-2017-01-11  Jeremy Soller  <jackpot51@gmail.com>
-
-	* config.bfd: Add entries for i686-redox and x86_64-redox.
-
-2017-01-10  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* elf32-i386.c (elf_i386_check_relocs): Align .eh_frame section
-	to 4 bytes.
-	* elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Align
-	.eh_frame section to 4 bytes for x32.
-	(elf_x86_64_check_relocs): Likewise.
-
-2017-01-10  H.J. Lu  <hongjiu.lu@intel.com>
-
-	PR ld/20830
-	* elf32-i386.c (elf_i386_eh_frame_plt_got): New.
-	(PLT_GOT_FDE_LENGTH): Likewise.
-	(elf_i386_plt_layout): Add eh_frame_plt_got and
-	eh_frame_plt_got_size.
-	(elf_i386_plt): Updated.
-	(elf_i386_link_hash_table): Add plt_got_eh_frame.
-	(elf_i386_check_relocs): Create .eh_frame section for .plt.got.
-	(elf_i386_size_dynamic_sections): Allocate and initialize
-	.eh_frame section for .plt.got.
-	(elf_i386_finish_dynamic_sections): Adjust .eh_frame section for
-	.plt.got.
-	(elf_i386_nacl_plt): Add FIXME for eh_frame_plt_got and
-	eh_frame_plt_got_size.
-	* elf64-x86-64.c (elf_x86_64_eh_frame_plt_got): New.
-	(PLT_GOT_FDE_LENGTH): Likewise.
-	(elf_x86_64_backend_data): Add eh_frame_plt_got and
-	eh_frame_plt_got_size.
-	(elf_x86_64_arch_bed): Updated.
-	(elf_x86_64_bnd_arch_bed): Add FIXME for eh_frame_plt_got and
-	eh_frame_plt_got_size.
-	(elf_x86_64_nacl_arch_bed): Likewise.
-	(elf_x86_64_link_hash_table): Add plt_got_eh_frame.
-	(elf_x86_64_check_relocs): Create .eh_frame section for .plt.got.
-	(elf_x86_64_size_dynamic_sections): Allocate and initialize
-	.eh_frame section for .plt.got.
-	(elf_x86_64_finish_dynamic_sections): Adjust .eh_frame section
-	for .plt.got.
-
-2017-01-10  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* elf32-i386.c (elf_i386_size_dynamic_sections): Set
-	plt_eh_frame->size to eh_frame_plt_size and use eh_frame_plt.
-
-2017-01-09  Nick Clifton  <nickc@redhat.com>
-
-	* dwarf2.c (lookup_address_in_function_table): Return early if
-	there are no functions in the given comp unit, or if the high
-	address of the last function in the comp unit is less than the
-	desired address.
-
-2017-01-09  Nick Clifton  <nickc@redhat.com>
-
-	PR binutils/21013
-	* coffgen.c (_bfd_coff_get_external_symbols): Generate an error
-	message if there are too many symbols to load.
-
-2017-01-04  James Clarke  <jrtc27@jrtc27.com>
-
-	* elf64-alpha.c (elf64_alpha_relax_opt_call): Don't set tsec_free
-	if relocs are cached.
-
-2017-01-03  Rich Felker  <bugdal@aerifal.cx>
-
-	PR ld/21017
-	* elf32-microblaze.c (microblaze_elf_check_relocs): Add an entry
-	for R_MICROBLAZE_GOTOFF_64.
-
-2017-01-03  Nick Clifton  <nickc@redhat.com>
-
-	* mach-o.c (bfd_mach_o_lookup_uuid_command): Fix compile time
-	warning about using a possibly uninitialised variable.
-
-2017-01-02  Alan Modra  <amodra@gmail.com>
-
-	* elf32-hppa.c (ensure_undef_weak_dynamic): New function.
-	(allocate_plt_static, allocate_dynrelocs): Use it.
-
-2017-01-02  Alan Modra  <amodra@gmail.com>
-
-	* elf-hppa.h (elf_hppa_fake_sections): Set SHF_INFO_LINK for
-	.PARISC.unwind section.
-
-2017-01-02  Alan Modra  <amodra@gmail.com>
-
-	PR ld/20989
-	* elfxx-sparc.c (gdop_relative_offset_ok): New function.
-	(_bfd_sparc_elf_relocate_section): Use it to validate GOT
-	indirect to GOT pointer relative code edit.
-
-2017-01-02  Alan Modra  <amodra@gmail.com>
+2018-01-03  Alan Modra  <amodra@gmail.com>
 
 	Update year range in copyright notice of all files.
 
-For older changes see ChangeLog-2016
+For older changes see ChangeLog-2017
 
-Copyright (C) 2017 Free Software Foundation, Inc.
+Copyright (C) 2018 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ChangeLog-2017 ./bfd/ChangeLog-2017
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ChangeLog-2017	1970-01-01 00:00:00.000000000 +0000
+++ ./bfd/ChangeLog-2017	2018-01-09 02:04:54.000000000 +0000
@@ -0,0 +1,5727 @@
+2017-12-19  Alan Modra  <amodra@gmail.com>
+
+	PR 22626
+	* elflink.c (_bfd_elf_link_renumber_dynsyms): Don't set section
+	dynindx when section_sym_count is NULL.
+	(bfd_elf_size_dynamic_sections): Pass NULL section_sym_count to
+	preliminary _bfd_elf_link_renumber_dynsyms call.
+
+2017-12-15  Nick Clifton  <nickc@redhat.com>
+
+	PR 22571
+	* archive.c (bfd_openr_next_archived_file): Extend the
+	documentation to note that it is necessary to call
+	bfd_check_format on the rrturned bfd before using it.
+
+2017-12-14  Nick Clifton  <nickc@redhat.com>
+
+	* cpu-mt.c: Update address of FSF in copyright notice.
+	* elf32-m32c.c: Likewise.
+	* elf32-mt.c: Likewise.
+	* elf32-rl78.c: Likewise.
+	* elf32-rx.c: Likewise.
+	* elf32-rx.h: Likewise.
+	* elf32-spu.h: Likewise.
+	* hosts/x86-64linux.h: Likewise.
+
+2017-12-13  Renlin Li  <renlin.li@arm.com>
+
+	* elfnn-aarch64.c (elfNN_aarch64_check_relocs): Disallow
+	BFD_RELOC_AARCH64_16 in shared object const section. Disallow
+	BFD_RELOC_AARCH64_32 in shared object const section under LP64.
+
+2017-12-11  Sangamesh Mallayya  <sangamesh.swamy@in.ibm.com>
+
+	* bfd.c (bfd_get_sign_extend_vma): Correct typo.
+
+2017-12-09  Alan Modra  <amodra@gmail.com>
+
+	* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): When emitting
+	dynamic R_SPARC_RELATIVE for GOT entries, ensure the section
+	contents are zeroed.
+
+2017-12-08  Nick Clifton  <nickc@redhat.com>
+
+	* elfcode.h (elf_write_relocs): Check for an empty howto field.
+
+2017-12-08  Sangamesh Mallayya  <sangamesh.swamy@in.ibm.com>
+
+	* bfd.c (bfd_get_sign_extend_vma): Handle aix5coff64-rs6000.
+
+2017-12-06  Alan Modra  <amodra@gmail.com>
+
+	* doc/header.sed: Trim trailing space when splitting lines.
+	* aix386-core.c, * aout-adobe.c, * aout-arm.c, * aout-cris.c,
+	* aout-ns32k.c, * aout-target.h, * aout-tic30.c, * aoutf1.h, * aoutx.h,
+	* arc-got.h, * arc-plt.def, * arc-plt.h, * archive.c, * archive64.c,
+	* archures.c, * armnetbsd.c, * bfd-in.h, * bfd.c, * bfdio.c, * binary.c,
+	* bout.c, * cache.c, * cisco-core.c, * coff-alpha.c, * coff-apollo.c,
+	* coff-arm.c, * coff-h8300.c, * coff-i386.c, * coff-i860.c,
+	* coff-i960.c, * coff-m68k.c, * coff-m88k.c, * coff-mcore.c,
+	* coff-mips.c, * coff-ppc.c, * coff-rs6000.c, * coff-sh.c,
+	* coff-stgo32.c, * coff-tic4x.c, * coff-tic54x.c, * coff-tic80.c,
+	* coff-we32k.c, * coff-x86_64.c, * coff-z80.c, * coff-z8k.c,
+	* coff64-rs6000.c, * coffcode.h, * coffgen.c, * cofflink.c,
+	* coffswap.h, * compress.c, * corefile.c, * cpu-alpha.c, * cpu-arm.c,
+	* cpu-avr.c, * cpu-bfin.c, * cpu-cr16.c, * cpu-cr16c.c, * cpu-crx.c,
+	* cpu-d10v.c, * cpu-frv.c, * cpu-ft32.c, * cpu-i370.c, * cpu-i960.c,
+	* cpu-ia64-opc.c, * cpu-ip2k.c, * cpu-lm32.c, * cpu-m32r.c,
+	* cpu-mcore.c, * cpu-microblaze.c, * cpu-mips.c, * cpu-moxie.c,
+	* cpu-mt.c, * cpu-nios2.c, * cpu-ns32k.c, * cpu-or1k.c, * cpu-powerpc.c,
+	* cpu-pru.c, * cpu-sh.c, * cpu-spu.c, * cpu-v850.c, * cpu-v850_rh850.c,
+	* cpu-xgate.c, * cpu-z80.c, * dwarf1.c, * dwarf2.c, * ecoff.c,
+	* ecofflink.c, * ecoffswap.h, * elf-bfd.h, * elf-eh-frame.c,
+	* elf-hppa.h, * elf-m10200.c, * elf-m10300.c, * elf-s390-common.c,
+	* elf-strtab.c, * elf-vxworks.c, * elf.c, * elf32-am33lin.c,
+	* elf32-arc.c, * elf32-arm.c, * elf32-avr.c, * elf32-avr.h,
+	* elf32-bfin.c, * elf32-cr16.c, * elf32-cr16c.c, * elf32-cris.c,
+	* elf32-crx.c, * elf32-d10v.c, * elf32-d30v.c, * elf32-dlx.c,
+	* elf32-epiphany.c, * elf32-fr30.c, * elf32-frv.c, * elf32-ft32.c,
+	* elf32-h8300.c, * elf32-hppa.c, * elf32-i386.c, * elf32-i860.c,
+	* elf32-i960.c, * elf32-ip2k.c, * elf32-lm32.c, * elf32-m32c.c,
+	* elf32-m32r.c, * elf32-m68hc11.c, * elf32-m68hc12.c, * elf32-m68hc1x.c,
+	* elf32-m68hc1x.h, * elf32-m68k.c, * elf32-m88k.c, * elf32-mcore.c,
+	* elf32-mep.c, * elf32-metag.c, * elf32-microblaze.c, * elf32-mips.c,
+	* elf32-moxie.c, * elf32-msp430.c, * elf32-mt.c, * elf32-nds32.c,
+	* elf32-nds32.h, * elf32-nios2.c, * elf32-or1k.c, * elf32-pj.c,
+	* elf32-ppc.c, * elf32-ppc.h, * elf32-pru.c, * elf32-rl78.c,
+	* elf32-rx.c, * elf32-s390.c, * elf32-score.c, * elf32-score.h,
+	* elf32-score7.c, * elf32-sh-symbian.c, * elf32-sh.c, * elf32-sh64.c,
+	* elf32-sparc.c, * elf32-spu.c, * elf32-tic6x.c, * elf32-tilegx.c,
+	* elf32-tilegx.h, * elf32-tilepro.c, * elf32-tilepro.h, * elf32-v850.c,
+	* elf32-vax.c, * elf32-wasm32.c, * elf32-xc16x.c, * elf32-xgate.c,
+	* elf32-xgate.h, * elf32-xstormy16.c, * elf32-xtensa.c, * elf64-alpha.c,
+	* elf64-hppa.c, * elf64-ia64-vms.c, * elf64-mips.c, * elf64-mmix.c,
+	* elf64-ppc.c, * elf64-s390.c, * elf64-sh64.c, * elf64-sparc.c,
+	* elf64-tilegx.c, * elf64-tilegx.h, * elf64-x86-64.c, * elfcore.h,
+	* elflink.c, * elfn32-mips.c, * elfnn-aarch64.c, * elfnn-ia64.c,
+	* elfnn-riscv.c, * elfxx-aarch64.c, * elfxx-aarch64.h, * elfxx-ia64.c,
+	* elfxx-ia64.h, * elfxx-mips.c, * elfxx-riscv.c, * elfxx-sparc.c,
+	* elfxx-tilegx.c, * elfxx-x86.c, * elfxx-x86.h, * freebsd.h, * hash.c,
+	* host-aout.c, * hp300hpux.c, * hppabsd-core.c, * hpux-core.c,
+	* i386aout.c, * i386linux.c, * i386lynx.c, * i386mach3.c, * i386msdos.c,
+	* i386netbsd.c, * ieee.c, * ihex.c, * irix-core.c, * libaout.h,
+	* libbfd-in.h, * libbfd.c, * libcoff-in.h, * libnlm.h, * libpei.h,
+	* libxcoff.h, * linker.c, * lynx-core.c, * m68k4knetbsd.c,
+	* m68klinux.c, * m68knetbsd.c, * m88kmach3.c, * mach-o-aarch64.c,
+	* mach-o-arm.c, * mach-o-i386.c, * mach-o-target.c, * mach-o-x86-64.c,
+	* mach-o.c, * mach-o.h, * merge.c, * mipsbsd.c, * mmo.c, * netbsd.h,
+	* netbsd-core.c, * newsos3.c, * nlm-target.h, * nlm32-ppc.c,
+	* nlm32-sparc.c, * nlmcode.h, * ns32k.h, * ns32knetbsd.c, * oasys.c,
+	* opncls.c, * pc532-mach.c, * pdp11.c, * pe-arm.c, * pe-i386.c,
+	* pe-mcore.c, * pe-mips.c, * pe-x86_64.c, * peXXigen.c, * pef.c,
+	* pef.h, * pei-arm.c, * pei-i386.c, * pei-mcore.c, * pei-x86_64.c,
+	* peicode.h, * plugin.c, * ppcboot.c, * ptrace-core.c, * reloc.c,
+	* riscix.c, * rs6000-core.c, * section.c, * som.c, * som.h,
+	* sparclinux.c, * sparcnetbsd.c, * srec.c, * stabs.c, * sunos.c,
+	* syms.c, * targets.c, * tekhex.c, * trad-core.c, * vax1knetbsd.c,
+	* vaxnetbsd.c, * verilog.c, * versados.c, * vms-alpha.c, * vms-lib.c,
+	* vms-misc.c, * wasm-module.c, * wasm-module.h, * xcofflink.c,
+	* xsym.c, * xsym.h: Whitespace fixes.
+	* bfd-in2.h, * libbfd.h, * libcoff.h: Regenerate.
+
+2017-12-06  Alan Modra  <amodra@gmail.com>
+
+	* elf32-lm32.c (lm32_elf_check_relocs): Skip non-ALLOC sections.
+	* elf32-m32r.c (m32r_elf_check_relocs): Likewise.
+	* elf32-nds32.c (nds32_elf_check_relocs): Likewise.
+	* elf32-or1k.c (or1k_elf_check_relocs): Likewise.
+	* elf32-sh.c (sh_elf_check_relocs): Likewise.
+
+2017-12-06  Alan Modra  <amodra@gmail.com>
+
+	* elf32-hppa.c (struct elf32_hppa_dyn_reloc_entry): Delete.  Use
+	struct elf_dyn_relocs throughout file instead.
+	(elf32_hppa_adjust_dynamic_symbol): Comment tidy.
+	* elf32-lm32.c (struct elf_lm32_dyn_relocs): Delete.  Use
+	struct elf_dyn_relocs throughout file instead.
+	(lm32_elf_adjust_dynamic_symbol): Use readonly_dynrelocs.
+	* elf32-m32r.c (struct elf_m32r_dyn_relocs): Delete.  Use
+	struct elf_dyn_relocs throughout file instead.
+	(m32r_elf_adjust_dynamic_symbol): Use readonly_dynrelocs, but disable.
+	Disable -z no-copyreloc too.
+	* elf32-metag.c (struct elf_metag_dyn_reloc_entry): Delete.  Use
+	struct elf_dyn_relocs throughout file instead.
+	(elf_metag_adjust_dynamic_symbol): Use readonly_dynrelocs.
+	* elf32-microblaze.c (struct elf32_mb_dyn_relocs): Delete.  Use
+	struct elf_dyn_relocs throughout file instead.
+	(readonly_dynrelocs): New function.
+	(microblaze_elf_adjust_dynamic_symbol): Use it.
+	* elf32-nds32.c (struct elf_nds32_dyn_relocs): Delete.  Use
+	struct elf_dyn_relocs throughout file instead.
+	(nds32_elf_adjust_dynamic_symbol): Use readonly_dynrelocs, but disable.
+	Disable -z no-copyreloc too.
+	* elf32-nios2.c (struct elf32_nios2_dyn_relocs): Delete.  Use
+	struct elf_dyn_relocs throughout file instead.
+	* elf32-or1k.c (struct elf_or1k_dyn_relocs): Delete.  Use
+	struct elf_dyn_relocs throughout file instead.
+	(or1k_elf_adjust_dynamic_symbol): Use readonly_dynrelocs.
+	* elf32-sh.c (struct elf_sh_dyn_relocs): Delete.  Use
+	struct elf_dyn_relocs throughout file instead.
+	(sh_elf_adjust_dynamic_symbol): Use readonly_dynrelocs, but disable.
+	Disable -z no-copyreloc too.
+	* elf32-tilepro.c (struct tilepro_elf_dyn_relocs): Delete.  Use
+	struct elf_dyn_relocs throughout file instead.
+	(tilepro_elf_adjust_dynamic_symbol): Use readonly_dynrelocs.
+	* elfnn-riscv.c (struct riscv_elf_dyn_relocs): Delete.  Use
+	struct elf_dyn_relocs throughout file instead.
+	(riscv_elf_adjust_dynamic_symbol): Use readonly_dynrelocs.
+	* elfxx-sparc.c (struct _bfd_sparc_elf_dyn_relocs): Delete.  Use
+	struct elf_dyn_relocs throughout file instead.
+	(_bfd_sparc_elf_adjust_dynamic_symbol): Use readonly_dynrelocs.
+	* elfxx-tilegx.c (struct tilegx_elf_dyn_relocs): Delete.  Use
+	struct elf_dyn_relocs throughout file instead.
+	(tilegx_elf_adjust_dynamic_symbol): Use readonly_dynrelocs.
+	* elf32-s390.c (elf_s390_adjust_dynamic_symbol): Use readonly_dynrelocs.
+	* elf64-s390.c (elf_s390_adjust_dynamic_symbol): Use readonly_dynrelocs.
+
+2017-12-06  Alan Modra  <amodra@gmail.com>
+
+	* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Comment tidy.
+	* elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Likewise.
+	* elfnn-aarch64.c (elfNN_aarch64_adjust_dynamic_symbol): Likewise.
+
+2017-12-04  Alan Modra  <amodra@gmail.com>
+
+	* elfxx-x86.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function.  Always prints via minfo and
+	correct "readonly" to "read-only" in warning message., replacing..
+	(_bfd_x86_elf_readonly_dynrelocs): ..this.
+	(_bfd_x86_elf_size_dynamic_sections): Correct "readonly" to
+	"read-only" in warning message.  Formatting.
+	(_bfd_x86_elf_adjust_dynamic_symbol): Use readonly_dynrelocs.
+	* linker.c (bfd_link_hash_traverse): Comment typo fix.
+
+2017-12-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.c (_bfd_x86_elf_readonly_dynrelocs): Print symbol
+	for map file output.
+
+2017-12-01  Alan Modra  <amodra@gmail.com>
+
+	* elf32-hppa.c (maybe_set_textrel): Print symbol for map file output.
+	* elf32-ppc.c (maybe_set_textrel): Likewise.
+	* elf64-ppc.c (maybe_set_textrel): Likewise.
+	* elf32-arm.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing..
+	(elf32_arm_readonly_dynrelocs): ..this.
+	* elf32-lm32.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing old version of..
+	(readonly_dynrelocs): ..this.
+	* elf32-m32r.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing old version of..
+	(readonly_dynrelocs): ..this.
+	* elf32-metag.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing old version of..
+	(readonly_dynrelocs): ..this.
+	* elf32-nds32.c: Delete unnecessary forward declarations.
+	(readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing old version of..
+	(readonly_dynrelocs): ..this.
+	* elf32-or1k.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing old version of..
+	(readonly_dynrelocs): ..this.
+	* elf32-s390.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing old version of..
+	(readonly_dynrelocs): ..this.
+	* elf32-sh.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing old version of..
+	(readonly_dynrelocs): ..this.
+	* elf32-tic6x.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing..
+	(elf32_tic6x_readonly_dynrelocs): ..this.
+	* elf32-tilepro.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing old version of..
+	(readonly_dynrelocs): ..this.
+	* elf64-s390.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing old version of..
+	(readonly_dynrelocs): ..this.
+	* elfnn-aarch64.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing..
+	(aarch64_readonly_readonly_dynrelocs): ..this.
+	* elfnn-riscv.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing old version of..
+	(readonly_dynrelocs): ..this.
+	* elfxx-sparc.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing old version of..
+	(readonly_dynrelocs): ..this.
+	* elfxx-tilegx.c (readonly_dynrelocs): New function.
+	(maybe_set_textrel): New function, replacing old version of..
+	(readonly_dynrelocs): ..this.
+
+2017-12-01  Alan Modra  <amodra@gmail.com>
+
+	PR 22533
+	* elf32-hppa.c (elf32_hppa_copy_indirect_symbol): Don't do anything
+	special with non_got_ref for weak aliases.
+	(elf32_hppa_check_relocs): Tweak setting of non_got_ref.
+	(elf32_hppa_adjust_dynamic_symbol): When initialising weak aliases,
+	don't uselessly copy non_got_ref.  Clear dyn_relocs instead if
+	strong symbol is allocated in dynbss.  Tidy comments.
+	(elf32_hppa_relocate_section): Comment fix.
+	* elf32-ppc.c (ppc_elf_copy_indirect_symbol): Don't do anything
+	special with non_got_ref for weak aliases.
+	(ppc_elf_adjust_dynamic_symbol): When initialising weak aliases,
+	don't uselessly copy non_got_ref.  Clear dyn_relocs instead if
+	strong symbol is allocated in dynbss.  Tidy comments.
+	* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't do anything
+	special with non_got_ref for weak aliases.
+	(ppc64_elf_adjust_dynamic_symbol): When initialising weak aliases,
+	don't uselessly copy non_got_ref.  Clear dyn_relocs instead if
+	strong symbol is allocated in dynbss.  Tidy comments.
+
+2017-11-29  Nick Clifton  <nickc@redhat.com>
+
+	PR 22509
+	* coffcode.h (coff_slurp_reloc_table): Check for a NULL symbol
+	pointer when processing relocs.
+
+2017-11-29  Stefan Stroe  <stroestefan@gmail.com>
+
+	* po/Make-in (datadir): Define as @datadir@.
+	(localedir): Define as @localedir@.
+	(gnulocaledir, gettextsrcdir): Use @datarootdir@.
+
+2017-11-28  Nick Clifton  <nickc@redhat.com>
+
+	PR 22507
+	* coffgen.c (_bfd_coff_read_string_table): Check for an excessive
+	size of the external string table.
+
+2017-11-28  Nick Clifton  <nickc@redhat.com>
+
+	PR 22506
+	* reloc.c (reloc_offset_in_range): Rename to
+	bfd_reloc_offset_in_range and export.
+	(bfd_perform_relocation): Rename function invocation.
+	(bfd_install_relocation): Likewise.
+	(bfd_final_link_relocate): Likewise.
+	* bfd-in2.h: Regenerate.
+	* coff-arm.c (coff_arm_reloc): Use bfd_reloc_offset_in_range.
+	* coff-i386.c (coff_i386_reloc): Likewise.
+	* coff-i860.c (coff_i860_reloc): Likewise.
+	* coff-m68k.c (mk68kcoff_common_addend_special_fn): Likewise.
+	* coff-m88k.c (m88k_special_reloc): Likewise.
+	* coff-mips.c (mips_reflo_reloc): Likewise.
+	* coff-x86_64.c (coff_amd64_reloc): Likewise.
+
+2017-11-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf-m10300.c (mn10300_elf_check_relocs): Don't set
+	non_ir_ref_regular.
+	* elf32-arm.c (elf32_arm_check_relocs): Likewise.
+	* elf32-bfin.c (bfin_check_relocs): Likewise.
+	* elf32-cr16.c (cr16_elf_check_relocs): Likewise.
+	* elf32-cris.c (cris_elf_check_relocs): Likewise.
+	* elf32-d10v.c (elf32_d10v_check_relocs): Likewise.
+	* elf32-dlx.c (elf32_dlx_check_relocs): Likewise.
+	* elf32-fr30.c (fr30_elf_check_relocs): Likewise.
+	* elf32-frv.c (elf32_frv_check_relocs): Likewise.
+	* elf32-hppa.c (elf32_hppa_check_relocs): Likewise.
+	* elf32-i370.c (i370_elf_check_relocs): Likewise.
+	* elf32-i386.c (elf_i386_check_relocs): Likewise.
+	* elf32-iq2000.c (iq2000_elf_check_relocs): Likewise.
+	* elf32-lm32.c (lm32_elf_check_relocs): Likewise.
+	* elf32-m32c.c (m32c_elf_check_relocs): Likewise.
+	* elf32-m32r.c (m32r_elf_check_relocs): Likewise.
+	* elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise.
+	* elf32-m68k.c (elf_m68k_check_relocs): Likewise.
+	* elf32-mcore.c (mcore_elf_check_relocs): Likewise.
+	* elf32-metag.c (elf_metag_check_relocs): Likewise.
+	* elf32-microblaze.c (microblaze_elf_check_relocs): Likewise.
+	* elf32-moxie.c (moxie_elf_check_relocs): Likewise.
+	* elf32-msp430.c (elf32_msp430_check_relocs): Likewise.
+	* elf32-mt.c (mt_elf_check_relocs): Likewise.
+	* elf32-nios2.c (nios2_elf32_check_relocs): Likewise.
+	* elf32-or1k.c (or1k_elf_check_relocs): Likewise.
+	* elf32-ppc.c (ppc_elf_check_relocs): Likewise.
+	* elf32-rl78.c (rl78_elf_check_relocs): Likewise.
+	* elf32-s390.c (elf_s390_check_relocs): Likewise.
+	* elf32-score.c (s3_bfd_score_elf_check_relocs): Likewise.
+	* elf32-score7.c (s7_bfd_score_elf_check_relocs): Likewise.
+	* elf32-sh.c (sh_elf_check_relocs): Likewise.
+	* elf32-tic6x.c (elf32_tic6x_check_relocs): Likewise.
+	* elf32-tilepro.c (tilepro_elf_check_relocs): Likewise.
+	* elf32-v850.c (v850_elf_check_relocs): Likewise.
+	* elf32-vax.c (elf_vax_check_relocs): Likewise.
+	* elf32-xstormy16.c (xstormy16_elf_check_relocs): Likewise.
+	* elf32-xtensa.c (elf_xtensa_check_relocs): Likewise.
+	* elf64-aarch64.c (elf64_aarch64_check_relocs): Likewise.
+	* elf64-alpha.c (elf64_alpha_check_relocs): Likewise.
+	* elf64-hppa.c (elf64_hppa_check_relocs): Likewise.
+	* elf64-ia64-vms.c (elf64_ia64_check_relocs): Likewise.
+	* elf64-mmix.c (mmix_elf_check_relocs): Likewise.
+	* elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
+	* elf64-s390.c (elf_s390_check_relocs): Likewise.
+	* elf64-sh64.c (sh_elf64_check_relocs): Likewise.
+	* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+	* elfnn-aarch64.c (elfNN_aarch64_check_relocs): Likewise.
+	* elfnn-ia64.c (elfNN_ia64_check_relocs): Likewise.
+	* elfnn-riscv.c (riscv_elf_check_relocs): Likewise.
+	* elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise.
+	* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise.
+	* elfxx-tilegx.c (tilegx_elf_check_relocs): Likewise.
+
+2017-11-28  Alan Modra  <amodra@gmail.com>
+
+	PR 22471
+	* elflink.c (_bfd_elf_merge_symbol): Allow weak symbols to override
+	early passes over linker script symbols.
+	* linker.c (_bfd_generic_link_add_one_symbol): Allow symbols to
+	override early passes over linker script symbols.  Clear ldscript_def
+	on symbol definitions.
+
+2017-11-28  Alan Modra  <amodra@gmail.com>
+
+	* elf64-mmix.c (bfd_elf64_bfd_copy_link_hash_symbol_type): Define.
+
+2017-11-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22502
+	* elflink.c (_bfd_elf_merge_symbol): Also skip definition from
+	an IR object.
+	(elf_link_add_object_symbols): If linker plugin is enabled, set
+	non_ir_ref_regular on symbols referenced in regular objects so
+	that linker plugin will get the correct symbol resolution.
+
+2017-11-27  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	PR ld/22263
+	* elfnn-aarch64.c (elfNN_aarch64_relocate_section): Use
+	bfd_link_executable instead of bfd_link_pic for TLS.
+	(elfNN_aarch64_allocate_dynrelocs): Likewise.
+	(aarch64_can_relax_tls): Likewise.
+
+2017-11-27  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	PR ld/22269
+	* elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Use
+	UNDEFWEAK_NO_DYNAMIC_RELOC to avoid dynamic GOT relocs.
+	(elfNN_aarch64_allocate_dynrelocs): Likewise.
+
+2017-11-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/22444
+	* elf.c (elf_read_notes): Add an argument for note aligment.
+	(elf_parse_notes): Likewise.
+	(_bfd_elf_make_section_from_shdr): Pass section aligment to
+	elf_parse_notes.
+	(bfd_section_from_phdr): Pass segment aligment to elf_read_notes.
+	(elf_parse_notes): Add an argument for note aligment.  Use
+	ELF_NOTE_DESC_OFFSET to get the offset of the note descriptor.
+	Use ELF_NOTE_NEXT_OFFSET to get the offset of the next note
+	entry.
+	(elf_read_notes): Add an argument for note aligment and pass it
+	to elf_parse_notes.
+
+2017-11-23  Alan Modra  <amodra@gmail.com>
+
+	* elf32-hppa.c (pc_dynrelocs): Define.
+	(elf32_hppa_copy_indirect_symbol): Don't copy dyn_relocs to weakdefs.
+	(alias_readonly_dynrelocs): New function.
+	(elf32_hppa_adjust_dynamic_symbol): Don't clear non_got_ref to
+	indicate dyn_relocs should be discarded, discard them here.
+	Use alias_readonly_dynrelocs.
+	(allocate_dynrelocs): Don't test or clear non_got_ref.
+	(elf32_hppa_relocate_section): Simplify test for dynamic relocs.
+	* elf32-ppc.c (ppc_elf_copy_indirect_symbol): Don't copy dyn_relocs
+	to weakdefs.
+	(alias_readonly_dynrelocs, pc_dynrelocs): New functions.
+	(ppc_elf_adjust_dynamic_symbol): Don't clear non_got_ref to
+	indicate dyn_relocs should be discarded, discard them here.
+	Use alias_readonly_dynrelocs.
+	(allocate_dynrelocs): Don't test or clear non_got_ref.
+	(ppc_elf_relocate_section): Simplify test for dynamic relocs.
+
+2017-11-23  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (struct ppc_link_hash_entry): Delete weakref field.
+	(ppc64_elf_copy_indirect_symbol): Don't set weakref.
+	(alias_readonly_dynrelocs): Use u.alias rather than weakref.
+	(ppc64_elf_adjust_dynamic_symbol): Don't use
+	alias_readonly_dynrelocs for function symbols.
+
+2017-11-23  Alan Modra  <amodra@gmail.com>
+
+	* elf-bfd.h (struct elf_link_hash_entry): Add is_weakalias.
+	Rename u.weakdef to u.alias and update comment.
+	(weakdef): New static inline function.
+	* elflink.c (bfd_elf_record_link_assignment) Test is_weakalias
+	rather than u.weakdef != NULL, and use weakdef function.
+	(_bfd_elf_adjust_dynamic_symbol): Likewise.
+	(_bfd_elf_fix_symbol_flags): Likewise.  Clear is_weakalias on
+	all aliases if def has been overridden in a regular object, not
+	u.weakdef.
+	(elf_link_add_object_symbols): Delete new_weakdef flag.  Test
+	is_weakalias and use weakdef.  Set is_weakalias and circular
+	u.alias.  Update comments.
+	(_bfd_elf_gc_mark_rsec): Test is_weakalias rather than
+	u.weakdef != NULL and use weakdef function.
+	* elf-m10300.c (_bfd_mn10300_elf_adjust_dynamic_symbol): Test
+	is_weakalias rather than u.weakdef != NULL and use weakdef
+	function.  Assert that def is strong defined.
+	* elf32-arc.c (elf_arc_adjust_dynamic_symbol): Likewise.
+	* elf32-arm.c (elf32_arm_adjust_dynamic_symbol): Likewise.
+	* elf32-bfin.c (elf32_bfinfdpic_adjust_dynamic_symbol): Likewise.
+	(bfin_adjust_dynamic_symbol): Likewise.
+	* elf32-cr16.c (_bfd_cr16_elf_adjust_dynamic_symbol): Likewise.
+	* elf32-cris.c (elf_cris_adjust_dynamic_symbol): Likewise.
+	* elf32-frv.c (elf32_frvfdpic_adjust_dynamic_symbol): Likewise.
+	* elf32-hppa.c (elf32_hppa_adjust_dynamic_symbol): Likewise.
+	* elf32-i370.c (i370_elf_adjust_dynamic_symbol): Likewise.
+	* elf32-lm32.c (lm32_elf_adjust_dynamic_symbol): Likewise.
+	* elf32-m32r.c (m32r_elf_adjust_dynamic_symbol): Likewise.
+	* elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Likewise.
+	* elf32-metag.c (elf_metag_adjust_dynamic_symbol): Likewise.
+	* elf32-microblaze.c (microblaze_elf_adjust_dynamic_symbol): Likewise.
+	* elf32-nds32.c (nds32_elf_adjust_dynamic_symbol): Likewise.
+	* elf32-nios2.c (nios2_elf32_adjust_dynamic_symbol): Likewise.
+	* elf32-or1k.c (or1k_elf_adjust_dynamic_symbol): Likewise.
+	* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Likewise.
+	* elf32-s390.c (elf_s390_adjust_dynamic_symbol): Likewise.
+	* elf32-score.c (s3_bfd_score_elf_adjust_dynamic_symbol): Likewise.
+	* elf32-score7.c (s7_bfd_score_elf_adjust_dynamic_symbol): Likewise.
+	* elf32-sh.c (sh_elf_adjust_dynamic_symbol): Likewise.
+	* elf32-tic6x.c (elf32_tic6x_adjust_dynamic_symbol): Likewise.
+	* elf32-tilepro.c (tilepro_elf_gc_mark_hook): Likewise.
+	(tilepro_elf_adjust_dynamic_symbol): Likewise.
+	* elf32-vax.c (elf_vax_adjust_dynamic_symbol): Likewise.
+	* elf32-xtensa.c (elf_xtensa_adjust_dynamic_symbol): Likewise.
+	* elf64-alpha.c (elf64_alpha_adjust_dynamic_symbol): Likewise.
+	* elf64-hppa.c (elf64_hppa_adjust_dynamic_symbol): Likewise.
+	* elf64-ia64-vms.c (elf64_ia64_adjust_dynamic_symbol): Likewise.
+	* elf64-ppc.c (ppc64_elf_gc_mark_hook): Likewise.
+	(ppc64_elf_adjust_dynamic_symbol): Likewise.
+	* elf64-s390.c (elf_s390_adjust_dynamic_symbol): Likewise.
+	* elf64-sh64.c (sh64_elf64_adjust_dynamic_symbol): Likewise.
+	* elfnn-aarch64.c (elfNN_aarch64_adjust_dynamic_symbol): Likewise.
+	* elfnn-ia64.c (elfNN_ia64_adjust_dynamic_symbol): Likewise.
+	* elfnn-riscv.c (riscv_elf_adjust_dynamic_symbol): Likewise.
+	* elfxx-mips.c (_bfd_mips_elf_adjust_dynamic_symbol): Likewise.
+	* elfxx-sparc.c (_bfd_sparc_elf_gc_mark_hook): Likewise.
+	(_bfd_sparc_elf_adjust_dynamic_symbol): Likewise.
+	* elfxx-tilegx.c (tilegx_elf_gc_mark_hook): Likewise.
+	(tilegx_elf_adjust_dynamic_symbol): Likewise.
+	* elfxx-x86.c (_bfd_x86_elf_adjust_dynamic_symbol): Likewise.
+
+2017-11-21  Alan Modra  <amodra@gmail.com>
+
+	* elf-bfd.h (elf_symbol_from): Check for NULL symbol bfd.
+	* elfcode.h (elf_slurp_reloc_table_from_section): Add FIXME comment.
+
+2017-11-20  Nick Clifton  <nickc@redhat.com>
+
+	PR 22450
+	* elf-properties.c (_bfd_elf_link_setup_gnu_properties): Skip
+	objects without a GNU_PROPERTY note section when looking for a bfd
+	onto which notes can be accumulated.
+
+2017-11-20  Alan Modra  <amodra@gmail.com>
+
+	PR 22451
+	PR 22460
+	* elf.c (_bfd_elf_init_reloc_shdr): Delete "sec_hdr" parameter
+	and leave rel_hdr->sh_flags zero.  Update calls.
+	(bfd_elf_set_group_contents): Check input rel/rela SHF_GROUP
+	flag when !gas before adding rel/rela section to group.  Set
+	output rel/rela SHF_GROUP flags.
+
+2017-11-18  Jim Wilson  <jimw@sifive.com>
+
+	* elfnn-riscv.c (_bfd_riscv_relax_align): Add space between alignment
+	and to in error message.
+
+2017-11-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Pass
+	"%F%P:", instead of "%F:", to linker callback in case of error.
+
+2017-11-16  Nick Clifton  <nickc@redhat.com>
+
+	PR 22421
+	* elf.c (elfcore_grok_netbsd_procinfo): Check that the note is big enough.
+	(elfcore_grok_openbsd_procinfo): Likewise.
+	(elfcore_grok_nto_status): Likewise.
+
+2017-11-16  Nick Clifton  <nickc@redhat.com>
+
+	* merge.c (sec_merge_emit): Always create padding buffer.  Add
+	asserts to make sure that the buffer is long enough.
+
+2017-11-15  Alan Modra  <amodra@gmail.com>
+
+	* bfd.c (union _bfd_doprnt_args): Add "Bad".
+	(_bfd_doprnt): Handle more flags.
+	(_bfd_doprnt_scan): Likewise.  Tidy setting of args array.
+	(error_handler_internal): Init args type to Bad.
+
+2017-11-14  Alan Modra  <amodra@gmail.com>
+
+	PR 22431
+	* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Warn on discarding
+	non-empty dynamic section.
+	(ppc_build_one_stub): Take elf_gp from output bfd, not output
+	section owner.
+	(ppc_size_one_stub, ppc64_elf_next_toc_section): Likewise.
+
+2017-11-14  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_size_stubs): Correct test for user
+	.eh_frame info.
+
+2017-11-13  Jan Beulich  <jbeulich@suse.com>
+
+	* coff-tic80.c (COFF_ENCODE_ALIGNMENT, COFF_DECODE_ALIGNMENT):
+	Define.
+	* coffcode.h (coff_set_alignment_hook): Drop tic80 special case.
+	(coff_write_object_contents): Likewise. Issue diagnostic for too
+	large alignment.
+
+2017-11-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22423
+	* elf.c (_bfd_elf_map_sections_to_segments): Remove PF_X from
+	PT_PHDR segment.
+
+2017-11-12  Alan Modra  <amodra@gmail.com>
+
+	* elflink.c (elf_link_add_object_symbols): Ignore anything but
+	defined and defweak symbols when setting up weakdefs.
+
+2017-11-12  Alan Modra  <amodra@gmail.com>
+
+	* elf32-hppa.c (elf32_hppa_adjust_dynamic_symbol): Set non_got_ref
+	to keep dyn_relocs, clear to discard.  Comment.
+	(allocate_dynrelocs): Always clear non_got_ref when clearing
+	dyn_relocs in non-pic case.  Invert non_got_ref test.  Also test
+	dynamic_adjusted and ELF_COMMON_DEF_P.  Move code deleting
+	dyn_relocs on undefined syms to handle for non-pic too.
+	(elf32_hppa_relocate_section): Simplify test for non-pic dyn relocs.
+	* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Set non_got_ref
+	to keep dyn_relocs, clear to discard.  Comment.
+	(allocate_dynrelocs): Always clear non_got_ref when clearing
+	dyn_relocs in non-pic case.  Invert non_got_ref test.  Also test
+	dynamic_adjusted and ELF_COMMON_DEF_P.  Move code deleting
+	dyn_relocs on undefined syms to handle for non-pic too.
+	(ppc_elf_relocate_section): Simplify test for non-pic dyn relocs.
+	* elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Discard
+	dyn_relocs here.  Don't bother setting non_got_ref.  Comment.
+	(allocate_dynrelocs): Delete special handling of non-pic ELFv2
+	ifuncs.  Move code deleting dyn_relocs on undefined symbols to
+	handle for non-pic too.  Don't test non_got_ref.  Do test
+	dynamic_adjusted and ELF_COMMON_DEF_P.
+
+2017-11-08  Djordje Todorovic  <djordje.todorovic@rt-rk.com>
+
+	* elf32-mips.c (elf32_mips_grok_psinfo): Extract core->pid.
+	* elf64-mips.c (elf64_mips_grok_psinfo): Likewise.
+	* elfn32-mips.c (elf32_mips_grok_psinfo): Likewise.
+
+2017-11-08  Djordje Todorovic  <djordje.todorovic@rt-rk.com>
+
+	* elf32-mips.c (elf32_mips_write_core_note): New function.
+	(elf_backend_write_core_note): New macro.
+	* elf64-mips.c (elf64_mips_write_core_note): New function.
+	(elf_backend_write_core_note): New macro.
+	* elfn32-mips.c (elf32_mips_write_core_note): New function.
+	(elf_backend_write_core_note): New macro.
+
+2017-11-07  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_build_stubs): Correct pluralization in
+	statistics message.
+
+2017-11-07  Alan Modra  <amodra@gmail.com>
+
+	* sysdep.h: Formatting, comment fixes.
+	(gettext, ngettext): Redefine when ENABLE_NLS.
+	(ngettext, dngettext, dcngettext): Define when !ENABLE_NLS.
+	(_): Define using gettext.
+	(textdomain, bindtextdomain): Use safer "do nothing".
+	* hosts/alphavms.h (textdomain, bindtextdomain): Likewise.
+	(ngettext, dngettext, dcngettext): Define when !ENABLE_NLS.
+
+2017-11-05  Alan Modra  <amodra@gmail.com>
+
+	PR 22397
+	* bfd.c (_bfd_doprnt_scan): Check args index before storing, not
+	after.
+
+2017-11-05  Alan Modra  <amodra@gmail.com>
+
+	PR 22397
+	* bfd.c (union _bfd_doprnt_args): New.
+	(PRINT_TYPE): Add FIELD arg.  Take value from args.
+	(_bfd_doprnt): Replace ap parameter with args.  Adjust all
+	PRINT_TYPE invocations and reading of format args to suit.
+	Move "%%" handling out of switch handling args.  Support
+	positional parameters.
+	(_bfd_doprnt_scan): New function.
+	(error_handler_internal): Call _bfd_doprnt_scan and read args.
+
+2017-11-04  Alan Modra  <amodra@gmail.com>
+
+	* elf32-ppc.c (got_entries_needed, got_relocs_needed): New functions.
+	(allocate_dynrelocs, ppc_elf_size_dynamic_sections): Use them here.
+	(ppc_elf_relocate_section): Don't output a dynamic relocation
+	for IE GOT entries in an executable.
+	* elf64-ppc.c (allocate_got): Trim unnecessary TPREL relocs.
+	(ppc64_elf_size_dynamic_sections): Likewise.
+	(ppc64_elf_relocate_section): Likewise.
+
+2017-11-04  Alan Modra  <amodra@gmail.com>
+
+	* elf32-ppc.c (readonly_dynrelocs): Delete info param.  Update all
+	callers.  Don't bother with SEC_ALLOC test.  Return section pointer.
+	Move minfo call to..
+	(maybe_set_textrel): ..here.
+	* elf64-ppc.c (readonly_dynrelocs): Return section pointer.
+	(maybe_set_textrel): Call minfo to print textrel warning to map file.
+
+2017-11-04  Alan Modra  <amodra@gmail.com>
+
+	* elf32-hppa.c (enum _tls_type): Move.
+	(struct elf32_hppa_link_hash_entry): Make tls_type a bitfield.
+	(elf32_hppa_check_relocs): Set DF_STATIC_TLS only for shared libraries.
+	Tidy tls_type handling.  Set symbol tls_type for GOT_TLS_LDM too.
+	(got_entries_needed, got_relocs_needed): New functions.
+	(allocate_dynrelocs): Use them.
+	(elf32_hppa_size_dynamic_sections): Likewise.
+	(elf32_hppa_relocate_section): Delete bogus FIXME.  Formatting.
+	Correct code emitting relocs on GD/IE got entries.  Report an
+	error when a symbol has both normal and TLS GOT relocs.
+
+2017-11-04  Alan Modra  <amodra@gmail.com>
+
+	PR 22394
+	* elf32-hppa.c (elf32_hppa_check_relocs): Don't create dyn_relocs
+	for plabels when non-pic.
+	(maybe_set_textrel): New function.
+	(readonly_dynrelocs): Move and rewrite.
+	(elf32_hppa_adjust_dynamic_symbol): Use it.  Don't create copy
+	relocs when def_regular or -z nocopyreloc.  Handle non_got_ref
+	for functions.  Expand non_got_ref comments.
+	(elf32_hppa_size_dynamic_sections): Use maybe_set_textrel.
+
+2017-11-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_check_relocs): Set plt.refcount to 1.
+	Don't use func_pointer_refcount.  Don't set plt.refcount nor
+	non_got_ref for function pointer reference.
+	* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+	* elfxx-x86.c (elf_x86_allocate_dynrelocs): Don't use
+	func_pointer_refcount.
+	(_bfd_x86_elf_copy_indirect_symbol): Don't copy
+	func_pointer_refcount.
+	(_bfd_x86_elf_hide_symbol): Don't use func_pointer_refcount.
+	* elfxx-x86.h (GENERATE_DYNAMIC_RELOCATION_P): Likewise.
+	(elf_x86_link_hash_entry): Remove func_pointer_refcount.
+
+2017-11-03  Mingi Cho  <mgcho.minic@gmail.com>
+	    Nick Clifton  <nickc@redhat.com>
+
+	PR 22385
+	* coffgen.c (_bfd_coff_get_external_symbols): Check for an
+	overlarge raw syment count.
+	(coff_get_normalized_symtab): Likewise.
+
+2017-11-01  James Bowman  <james.bowman@ftdichip.com>
+
+	* archures.c: Add bfd_mach_ft32b.
+	* cpu-ft32.c: Add arch_info_struct.
+	* elf32-ft32.c: Add R_FT32_RELAX, SC0, SC1,
+	DIFF32.
+	(ft32_elf_relocate_section): Add clauses for R_FT32_SC0, SC1,
+	DIFF32.
+	(ft32_reloc_shortable, elf32_ft32_is_diff_reloc)
+	(elf32_ft32_adjust_diff_reloc_value)
+	(elf32_ft32_adjust_reloc_if_spans_insn)
+	(elf32_ft32_relax_delete_bytes, elf32_ft32_relax_is_branch_target)
+	(ft32_elf_relax_section): New function.
+	* reloc.c: Add BFD_RELOC_FT32_RELAX, SC0, SC1, DIFF32.
+	* bfd-in2.h: Regenerate.
+	* libbfd.h: Regenerate.
+
+2017-11-01  Nick Clifton  <nickc@redhat.com>
+
+	PR 22376
+	* coffcode.h (coff_slurp_line_table): Check for an excessively
+	large line number count.
+
+2017-11-01  Nick Clifton  <nickc@redhat.com>
+
+	PR 22373
+	* peicode.h (pe_bfd_read_buildid): Revise check for invalid size
+	and offset in light of further possible bogus values.
+
+2017-11-01  Alan Modra  <amodra@gmail.com>
+
+	PR 22374
+	* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Don't create a plt
+	entry when just a dynamic reloc can serve.  Ensure no dynamic
+	relocations when UNDEFWEAK_NO_DYNAMIC_RELOC by setting non_got_ref.
+	Expand and move the non_got_ref comment.
+	* elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Likewise.
+
+2017-11-01  Nick Clifton  <nickc@redhat.com>
+
+	PR 22369
+	* coffgen.c (_bfd_coff_free_symbols): Fail if called on a non-COFF
+	file.
+	* cofflink.c (coff_link_check_archive_element): Skip non-COFF
+	members of an archive.
+
+2017-10-31  Nick Clifton  <nickc@redhat.com>
+
+	PR 22373
+	* peicode.h (pe_bfd_read_buildid): Check for invalid size and data
+	offset values.
+
+2017-10-30  Alan Modra  <amodra@gmail.com>
+
+	* elf32-frv.c (ELF_TARGET_ID): Don't define for generic
+	elf target.
+
+	* elflink.c (elf_gc_sweep): Test elf_object_id in addition to
+	relocs_compatible.
+	(bfd_elf_gc_sections): Likewise.
+
+2017-10-30  Alan Modra  <amodra@gmail.com>
+
+	PR 22269
+	* elf32-hppa.c (elf32_hppa_check_relocs): Move SEC_ALLOC test to
+	ensure non_got_ref is not set due to debug references.
+	(elf32_hppa_adjust_dynamic_symbol): Tidy plabel handling.  Use
+	SYMBOL_CALLS_LOCAL and UNDEFWEAK_NO_DYNAMIC_RELOC when determining
+	need for a plt entry.
+	(allocate_dynrelocs): Similarly for got entries.  Tidy code discarding
+	dynamic relocs when pic.  Remove bogus code attempting to handle
+	commons.
+	(elf32_hppa_relocate_section): Similarly.  Delete resolved_to_zero
+	and simplify.
+	(elf32_hppa_finish_dynamic_symbol): Use UNDEFWEAK_NO_DYNAMIC_RELOC
+	and SYMBOL_REFERENCES_LOCAL in GOT handling.
+
+2017-10-28  Alan Modra  <amodra@gmail.com>
+
+	PR 22300
+	* elflink.c (_bfd_elf_merge_symbol): Remove relocs_compatible check.
+	* elf32-hppa.c (elf_backend_relocs_compatible): Define.
+	* elf32-ppc.c (elf_backend_relocs_compatible): Define.
+	* elf64-ppc.c (elf_backend_relocs_compatible): Define.
+
+2017-10-25  Alan Modra  <amodra@gmail.com>
+
+	* archive.c (_bfd_compute_and_write_armap): Match "__gnu_lto_slim"
+	optionally prefixed with "_".
+	* linker.c (_bfd_generic_link_add_one_symbol): Likewise.
+
+2017-10-24  Andrew Waterman  <andrew@sifive.com>
+
+	* elfnn-riscv.c (_bfd_riscv_relax_lui): Don't relax to c.lui
+	when rd is x0.
+
+2017-10-24  Renlin Li  <renlin.li@arm.com>
+
+	PR ld/21703
+	* elflink.c (_bfd_elf_merge_symbol): Handle multiple definition case.
+
+2017-10-23  Nick Clifton  <nickc@redhat.com>
+
+	PR 22319
+	* elflink.c (elf_link_output_extsym): Keep global undefined
+	symbols if they have been marked as needed.
+
+2017-10-23  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elfn32-mips.c (mips_elf_n32_mkobject): New prototype and
+	function.
+	(bfd_elf32_mkobject): Use `mips_elf_n32_mkobject' rather than
+	`_bfd_mips_elf_mkobject'.
+
+2017-10-22  Hans-Peter Nilsson  <hp@axis.com>
+
+	PR gas/22304
+	* config.bfd (cris-*-* | crisv32-*-*): Require a 64-bit BFD.
+
+2017-10-19  Palmer Dabbelt  <palmer@dabbelt.com>
+
+	* elfnn-riscv.c (riscv_pcgp_hi_reloc): New structure.
+	(riscv_pcgp_lo_reloc): Likewise.
+	(riscv_pcgp_relocs): Likewise.
+	(riscv_init_pcgp_relocs): New function.
+	(riscv_free_pcgp_relocs): Likewise.
+	(riscv_record_pcgp_hi_reloc): Likewise.
+	(riscv_record_pcgp_lo_reloc): Likewise.
+	(riscv_delete_pcgp_hi_reloc): Likewise.
+	(riscv_use_pcgp_hi_reloc): Likewise.
+	(riscv_record_pcgp_lo_reloc): Likewise.
+	(riscv_find_pcgp_lo_reloc): Likewise.
+	(riscv_delete_pcgp_lo_reloc): Likewise.
+	(_bfd_riscv_relax_pc): Likewise.
+	(_bfd_riscv_relax_section): Handle R_RISCV_PCREL_* relocations
+	via the new functions above.
+
+2017-10-19  Palmer Dabbelt  <palmer@dabbelt.com>
+
+	* elfnn-riscv.c (R_RISCV_DELETE): New define.
+	(_bfd_riscv_relax_delete): New function.
+	(perform_relocation): Handle R_RISCV_DELETE.
+	(_bfd_riscv_relax_section): Likewise.
+
+2017-10-19  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22263
+	* elfxx-tilegx.c (tilegx_elf_tls_transition): Replace
+	bfd_link_pic with !bfd_link_executable, !bfd_link_pic with
+	bfd_link_executable for TLS check.
+	(tilegx_elf_check_relocs): Likewise.
+	(allocate_dynrelocs): Likewise.
+	(tilegx_elf_relocate_section): Likewise.
+
+2017-10-19  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22263
+	* elf32-tilepro.c (tilepro_elf_tls_transition): Replace
+	bfd_link_pic with !bfd_link_executable, !bfd_link_pic with
+	bfd_link_executable for TLS check.
+	(tilepro_elf_check_relocs): Likewise.
+	(allocate_dynrelocs): Likewise.
+	(tilepro_elf_relocate_section): Likewise.
+
+2017-10-19  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22263
+	* elfxx-sparc.c (sparc_elf_tls_transition): Replace
+	bfd_link_pic with !bfd_link_executable, !bfd_link_pic with
+	bfd_link_executable for TLS check.
+	(_bfd_sparc_elf_check_relocs): Likewise.
+	(allocate_dynrelocs): Likewise.
+	(_bfd_sparc_elf_relocate_section): Likewise.
+
+2017-10-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-tilepro.c (tilepro_elf_gc_mark_hook): Call
+	_bfd_generic_link_add_one_symbol to mark __tls_get_addr.
+	* elfxx-tilegx.c (tilegx_elf_gc_mark_hook): Likewise.
+
+2017-10-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-microblaze.c (microblaze_elf_check_relocs): Check for
+	indirect and warning symbols.
+
+2017-10-17  Alan Modra  <amodra@gmail.com>
+
+	PR 22307
+	* elf-properties.c (_bfd_elf_parse_gnu_properties): Compare datasz
+	against size left rather than comparing pointers.  Reorganise loop.
+
+2017-10-17  Alan Modra  <amodra@gmail.com>
+
+	PR 22306
+	* aoutx.h (aout_get_external_symbols): Handle stringsize of zero,
+	and error for any other size that doesn't cover the header word.
+
+2017-10-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf-bfd.h (elf_backend_data): Remove gc_sweep_hook.
+	* elf32-arm.c (elf32_arm_gc_sweep_hook): Removed.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-bfin.c (bfin_gc_sweep_hook): Likewise.
+	(bfinfdpic_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-cr16.c (elf32_cr16_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-cris.c (cris_elf_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-lm32.c (lm32_elf_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-m68k.c (elf_m68k_got_entry): Remove elf_m68k_gc_sweep_hook
+	from comments.
+	(elf_m68k_remove_got_entry_type): Removed.
+	(elf_m68k_find_got_entry_ptr): Likewise.
+	(elf_m68k_remove_got_entry): Likewise.
+	(elf_m68k_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-mcore.c (mcore_elf_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-metag.c (elf_metag_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-microblaze.c (elf_backend_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-mips.c (elf_backend_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-nds32.c (nds32_elf_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-nios2.c (nios2_elf32_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-or1k.c (or1k_elf_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-ppc.c (ppc_elf_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-s390.c (elf_s390_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-sparc.c (elf_backend_gc_sweep_hook): Likewise.
+	* elf32-tic6x.c (elf32_tic6x_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-tilegx.c (elf_backend_gc_sweep_hook): Likewise.
+	* elf32-tilepro.c (tilepro_elf_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf64-alpha.c (elf64_alpha_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf64-mips.c (elf_backend_gc_sweep_hook): Likewise.
+	* elf64-mmix.c (mmix_elf_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf64-ppc.c (elf_backend_gc_sweep_hook): Likewise.
+	(ppc64_elf_gc_sweep_hook): Likewise.
+	* elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elf64-sparc.c (elf_backend_gc_sweep_hook): Likewise.
+	* elf64-tilegx.c (elf_backend_gc_sweep_hook): Likewise.
+	* elflink.c (elf_link_add_object_symbols): Don't call
+	_bfd_elf_link_check_relocs here.
+	(gc_sweep_hook_fn): Removed.
+	(elf_gc_sweep): Remove gc_sweep_hook.
+	* elfnn-aarch64.c (elfNN_aarch64_gc_sweep_hook): Removed.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elfnn-riscv.c (riscv_elf_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elfxx-mips.c (_bfd_mips_elf_gc_sweep_hook): Likewise.
+	* elfxx-mips.h (_bfd_mips_elf_gc_sweep_hook): Likewise.
+	(elf_backend_gc_sweep_hook): Likewise.
+	* elfxx-sparc.c (_bfd_sparc_elf_gc_sweep_hook): Likewise.
+	* elfxx-sparc.h (_bfd_sparc_elf_gc_sweep_hook): Likewise.
+	* elfxx-target.h (elf_backend_gc_sweep_hook): Likewise.
+	(elfNN_bed): Remove elf_backend_gc_sweep_hook.
+	* elfxx-tilegx.c (tilegx_elf_gc_sweep_hook): Removed.
+	* elfxx-tilegx.h (tilegx_elf_gc_sweep_hook): Likewise.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_backend_data): Removed.
+	(get_elf_i386_backend_data): Likewise.
+	(elf_i386_arch_bed): Replace elf_i386_backend_data with
+	elf_x86_backend_data.
+	(elf_i386_get_synthetic_symtab): Likewise.
+	(elf_i386_nacl_arch_bed): Likewise.
+	(elf_i386_vxworks_arch_bed): Likewise.
+	(elf_i386_relocate_section): Check target_os instead of
+	is_vxworks.
+	(elf_i386_finish_dynamic_symbol): Likewise.
+	(elf_i386_finish_dynamic_sections): Use htab->plt0_pad_byte.
+	Check target_os instead of is_vxworks.
+	(elf_i386_link_setup_gnu_properties): Remove normal_target and
+	is_vxworks.  Initialize plt0_pad_byte.
+	* elf64-x86-64.c (elf_x86_64_backend_data); Removed.
+	(get_elf_x86_64_arch_data): Likewise.
+	(get_elf_x86_64_backend_data): Likewise.
+	(elf_x86_64_arch_bed): Replace elf_x86_64_backend_data with
+	elf_x86_backend_data.
+	(elf_x86_64_get_synthetic_symtab): Likewise.
+	(elf_x86_64_nacl_arch_bed): Likewise.
+	(elf_x86_64_link_setup_gnu_properties): Remove is_vxworks and
+	normal_target.  Initialize plt0_pad_byte.
+	* elfxx-x86.c (elf_x86_allocate_dynrelocs): Check target_os
+	instead of is_vxworks.
+	(_bfd_x86_elf_size_dynamic_sections): Likewise.
+	(_bfd_x86_elf_finish_dynamic_sections): Likewise.
+	(_bfd_x86_elf_adjust_dynamic_symbol): Likewise.
+	(_bfd_x86_elf_link_hash_table_create): Initialize target_os.
+	(_bfd_x86_elf_link_setup_gnu_properties): Remove is_vxworks.
+	Update normal_target.  Set up plt0_pad_byte.  Check target_os
+	instead of is_vxworks.
+	* elfxx-x86.h (elf_x86_target_os): New.
+	(elf_x86_backend_data): Likewise.
+	(get_elf_x86_backend_data): Likewise.
+	(elf_x86_link_hash_table): Remove is_vxworks.  Add plt0_pad_byte
+	and target_os.
+	(elf_x86_init_table): Remove normal_target and is_vxworks.  Add
+	plt0_pad_byte.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_finish_dynamic_sections): Call
+	_bfd_x86_elf_finish_dynamic_sections.
+	* elf64-x86-64.c (elf_x86_64_finish_dynamic_sections): Likewise.
+	* elfxx-x86.c (_bfd_x86_elf_finish_dynamic_sections): New
+	function.
+	* elfxx-x86.h (_bfd_x86_elf_finish_dynamic_sections): New
+	prototype.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21384
+	* elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
+	hide symbol which was forced to be dynamic.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22269
+	* elf32-cris.c (cris_elf_relocate_section): Don't generate
+	dynamic relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(cris_elf_check_relocs): Don't allocate dynamic relocation
+	if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22269
+	* elf32-sh.c (allocate_dynrelocs): Discard dynamic relocations
+	if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(sh_elf_relocate_section): Don't generate dynamic relocation if
+	UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22269
+	* elf32-s390.c (allocate_dynrelocs): Discard dynamic
+	relocations if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(elf_s390_relocate_section): Don't generate dynamic relocation
+	if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	* elf64-s390.c (allocate_dynrelocs): Discard dynamic
+	relocations if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(elf_s390_relocate_section): Don't generate dynamic relocation
+	if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22269
+	* elf32-nios2.c (nios2_elf32_relocate_section): Don't generate
+	dynamic relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(allocate_dynrelocs): Discard dynamic relocations if
+	UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22269
+	* elf32-microblaze.c (microblaze_elf_relocate_section): Don't
+	generate dynamic relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is
+	true.
+	(allocate_dynrelocs): Discard dynamic relocations if
+	UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22269
+	* elf32-m68k.c (elf_m68k_check_relocs): Don't allocate dynamic
+	relocations if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(elf_m68k_adjust_dynamic_symbol): Don't make symbol dynamic if
+	UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(elf_m68k_relocate_section): Don't generate dynamic relocation
+	if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22269
+	* elf32-hppa.c (ensure_undef_dynamic): Don't make undefined
+	symbol dynamic if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(allocate_dynrelocs): Discard dynamic relocations if
+	UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(elf32_hppa_relocate_section): Don't generate dynamic
+	relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22269
+	* elfnn-ia64.c (elfNN_ia64_check_relocs): Don't allocate
+	dynamic relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(allocate_fptr): Don't allocate function pointer if
+	UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(allocate_dynrel_entries): Don't allocate dynamic relocation
+	if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(set_got_entry): Don't set GOT entry if
+	UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(set_pltoff_entry): Don't set PLTOFF entry if
+	UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(elfNN_ia64_relocate_section): Don't install dynamic relocation
+	UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22269
+	* elfxx-mips.c (mips_elf_calculate_relocation): Don't generate
+	dynamic relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(allocate_dynrelocs): Don't allocate dynamic relocations if
+	UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22269
+	* elf32-arm.c (elf32_arm_final_link_relocate): Don't generate
+	dynamic relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(allocate_dynrelocs_for_symbol): Discard dynamic relocations
+	if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22269
+	* elf32-tilepro.c (allocate_dynrelocs): Discard dynamic
+	relocations if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(tilepro_elf_relocate_section): Don't generate dynamic
+	relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	* elfxx-tilegx.c (allocate_dynrelocs): Discard dynamic
+	relocations if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+	(tilegx_elf_relocate_section): Don't generate dynamic
+	relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22269
+	* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Don't
+	generate dynamic relocation if UNDEFWEAK_NO_DYNAMIC_RELOC is
+	true.
+	(elfNN_aarch64_allocate_dynrelocs): Discard dynamic relocations
+	if UNDEFWEAK_NO_DYNAMIC_RELOC is true.
+
+2017-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Moved to ...
+	* elf-bfd.h (UNDEFWEAK_NO_DYNAMIC_RELOC): Here.
+	* elf64-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Removed.
+
+2017-10-12  James Bowman  <james.bowman@ftdichip.com>
+
+	* bfd-in2.h: Regenerate.
+	* libbfd.h: Regenerate.
+	* elf32-ft32.c: Add HOWTO R_FT32_15.
+	* reloc.c: Add BFD_RELOC_FT32_15.
+
+2017-10-12  Nick Clifton  <nickc@redhat.com>
+
+	* reloc.c (enum bfd_reloc_status): Start values at 2.
+	* bfd-in2.h: Regenerate.
+	* elfnn-aarch64.c (aarch64_relocate): Invert sense of function, so
+	that a TRUE return indicates success.  Compare the result of
+	calling _bfd_aarch64_elf_put_addend against bfd_reloc_ok.
+	(build_one_stub): Change sense of tests against aarch64_relocate
+	return value.
+	(elfNN_aarch64_tls_relax): Return bfd_reloc_notsupported, rather
+	than FALSE, when an error is detected.
+	(elfNN_aarch64_final_link_relocate): Likewise.
+
+2017-10-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_backend_hide_symbol): New.
+	* elf64-x86-64.c (elf_backend_hide_symbol): Likewise.
+	* elfxx-x86.c (_bfd_x86_elf_hide_symbol): Likewise.
+	* elfxx-x86.h (_bfd_x86_elf_hide_symbol): Likewise.
+
+2017-10-12  Alan Modra  <amodra@gmail.com>
+
+	* elflink.c (_bfd_elf_adjust_dynamic_symbol): Call
+	elf_backend_hide_symbol, not _bfd_elf_link_hash_hide_symbol.
+	(bfd_elf_define_start_stop): Likewise.
+
+2017-10-12  Alan Modra  <amodra@gmail.com>
+
+	* elf32-nds32.c (nds32_elf_size_dynamic_sections): Set .interp
+	when executable rather than non-PIC.
+	* elf32-score.c (s3_bfd_score_elf_size_dynamic_sections): Likewise.
+	* elf32-score7.c (s7_bfd_score_elf_size_dynamic_sections): Likewise.
+
+2017-10-11  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elf-bfd.h (elf_backend_data): Add `linux_prpsinfo64_ugid16'
+	member.
+	* elf-linux-core.h (elf_external_linux_prpsinfo64): Rename to...
+	(elf_external_linux_prpsinfo64_ugid32): ... this.
+	(swap_linux_prpsinfo32_out): Rename to...
+	(swap_linux_prpsinfo32_ugid32_out): ... this.
+	(elf_external_linux_prpsinfo64_ugid16): New structure.
+	(swap_linux_prpsinfo64_ugid16_out): New function.
+	* elfxx-target.h [!elf_backend_linux_prpsinfo64_ugid16]
+	(elf_backend_linux_prpsinfo64_ugid16): Define.
+	(elfNN_bed): Initialize `linux_prpsinfo64_ugid16' member.
+	* elf.c (elfcore_write_linux_prpsinfo64): Handle both variants
+	of the 64-bit Linux core PRPSINFO note.
+	* elf64-sh64.c (elf_backend_linux_prpsinfo64_ugid16): Define.
+
+2017-10-11  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elf-bfd.h (elf_backend_data): Add `linux_prpsinfo32_ugid16'
+	member.
+	(elfcore_write_ppc_linux_prpsinfo32): Remove prototype.
+	* elf32-ppc.c (elfcore_write_ppc_linux_prpsinfo32): Remove.
+	(elf_external_ppc_linux_prpsinfo32)
+	(swap_ppc_linux_prpsinfo32_out): Move to...
+	* elf-linux-core.h (elf_external_linux_prpsinfo32_ugid32)
+	(swap_linux_prpsinfo32_ugid32_out): ... these.
+	(elf_external_linux_prpsinfo32): Rename to...
+	(elf_external_linux_prpsinfo32_ugid16): ... this.
+	(swap_linux_prpsinfo32_out): Rename to...
+	(swap_linux_prpsinfo32_ugid16_out): ... this.
+	* elfxx-target.h [!elf_backend_linux_prpsinfo32_ugid16]
+	(elf_backend_linux_prpsinfo32_ugid16): Define.
+	(elfNN_bed): Initialize `linux_prpsinfo32_ugid16' member.
+	* elf.c (elfcore_write_linux_prpsinfo32): Handle both variants
+	of the 32-bit Linux core PRPSINFO note.
+	* elf32-am33lin.c (elf_backend_linux_prpsinfo32_ugid16): Define.
+	* elf32-arm.c (elf_backend_linux_prpsinfo32_ugid16): Define.
+	* elf32-cris.c (elf_backend_linux_prpsinfo32_ugid16): Define.
+	* elf32-frv.c (elf_backend_linux_prpsinfo32_ugid16): Define.
+	* elf32-i386.c (elf_backend_linux_prpsinfo32_ugid16): Define.
+	* elf32-m32r.c (elf_backend_linux_prpsinfo32_ugid16): Define.
+	* elf32-m68k.c (elf_backend_linux_prpsinfo32_ugid16): Define.
+	* elf32-s390.c (elf_backend_linux_prpsinfo32_ugid16): Define.
+	* elf32-sh.c (elf_backend_linux_prpsinfo32_ugid16): Define.
+	* elf32-sparc.c (elf_backend_linux_prpsinfo32_ugid16): Define.
+
+2017-10-11  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elf-linux-core.h (elf_external_linux_prpsinfo64): Move the
+	`gap' member ahead of `pr_flag'.
+
+2017-10-11  Pedro Alves  <palves@redhat.com>
+
+	* bfd.c (_doprnt): Rename to ...
+	(_bfd_doprnt): ... this.
+	(error_handler_internal): Adjust.
+
+2017-10-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_check_relocs): Set GOT refcount to 1
+	instead of incrementing it.
+	* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+
+2017-10-10  Renlin Li  <renlin.li@arm.com>
+
+	PR ld/21402
+	* elf32-arm.c (allocate_dynrelocs_for_symbol): Only make undefined weak
+	 symbols into dynamic.
+
+2017-10-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22274
+	* elfnn-riscv.c (riscv_elf_link_hash_table): Add max_alignment.
+	(riscv_elf_link_hash_table_create): Initialize max_alignment to
+	(bfd_vma) -1.
+	(_bfd_riscv_relax_section): Cache the max alignment of output
+	sections if possible.
+
+2017-10-10  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_before_check_relocs): Set sec_type for
+	.opd whenever .opd is present and non-zero size.  Move code
+	setting abiversion to/from output file earlier.  Only set
+	u.opd.func_sec when --gc-sections.  Read relocs and set up
+	u.opd.func_sec values here..
+	(ppc64_elf_check_relocs): ..rather than here.  Simplify opd
+	section tests.
+	(ppc64_elf_edit_opd): Don't set sec_type for .opd here.
+
+2017-10-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf-m10300.c (mn10300_elf_check_relocs): Don't free cached
+	isymbuf.
+
+2017-10-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-bfin.c (bfin_size_dynamic_sections): Don't create the
+	.interp section with "ld --no-dynamic-linker".
+
+2017-10-09  Alan Modra  <amodra@gmail.com>
+
+	PR 22212
+	* dwarf2.c (_bfd_dwarf2_cleanup_debug_info): Free
+	funcinfo_hash_table and varinfo_hash_table.
+
+2017-10-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-sh.c (readonly_dynrelocs): Dump dynamic relocation
+	in read-only section with minfo.
+	(sh_elf_size_dynamic_sections): Likewise.
+
+2017-10-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections): Remove
+	a strayed comment.
+
+2017-10-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-tilegx.c (tilegx_elf_finish_dynamic_sections): Set
+	this_hdr.sh_entsize only if section size > 0.
+
+2017-10-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.c (elf_x86_allocate_dynrelocs): Reformat.
+
+2017-10-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-sparc.c (readonly_dynrelocs): Dump dynamic relocation
+	in read-only section with minfo.
+	(_bfd_sparc_elf_size_dynamic_sections): Likewise.
+
+2017-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.h (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Update
+	comments.
+
+2017-10-06  John Baldwin  <jhb@FreeBSD.org>
+
+	* elf-bfd.h (struct elf_backend_data): Add
+	`elf_backend_grok_freebsd_prstatus'.
+	* elf.c (elfcore_grok_freebsd_note): Call
+	`elf_backend_grok_freebsd_prstatus' to handle NT_PRSTATUS if
+	present.
+	* elfn32-mips.c (elf_n32_mips_grok_freebsd_prstatus): New
+	function.
+	(elf_backend_grok_freebsd_prstatus): Define.
+	* elfxx-target.h (elf_backend_grok_freebsd_prstatus): Define.
+	(elfNN_bed): Initialize `elf_backend_grok_freebsd_prstatus'.
+
+2017-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_check_relocs): Replace has_got_reloc
+	and has_non_got_reloc with zero_undefweak.
+	* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+	* elfxx-x86.c (_bfd_x86_elf_link_hash_newfunc): Initialize
+	zero_undefweak to 1.
+	(_bfd_x86_elf_copy_indirect_symbol): Replace has_got_reloc and
+	has_non_got_reloc with zero_undefweak.
+	* elfxx-x86.h (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Replace
+	has_got_reloc and has_non_got_reloc with zero_undefweak.
+	(elf_x86_link_hash_entry): Likewise.
+
+2017-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.h (COPY_INPUT_RELOC_P): Add "do/while(0);".
+	(VERIFY_COPY_RELOC): Likewise.
+
+2017-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.h (VERIFY_COPY_RELOC): New.
+	* elf32-i386.c (elf_i386_finish_dynamic_symbol): Use it.
+	* elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise.
+
+2017-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.h (VERIFY_PLT_ENTRY): New.
+	* elf32-i386.c (elf_i386_finish_dynamic_symbol): Use it.
+	* elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise.
+
+2017-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.h (COPY_INPUT_RELOC_P): New.
+	* elf32-i386.c (elf_i386_relocate_section): Use it.
+	* elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
+
+2017-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (X86_SIZE_TYPE_P): New.
+	(elf_i386_relocate_section): Use GENERATE_DYNAMIC_RELOCATION_P.
+	* elf64-x86-64.c (X86_SIZE_TYPE_P): New.
+	(elf_x86_64_relocate_section): Use GENERATE_DYNAMIC_RELOCATION_P.
+	* elfxx-x86.h (GENERATE_DYNAMIC_RELOCATION_P): New.
+
+2017-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.h (POINTER_LOCAL_IFUNC_P): New.
+	(PLT_LOCAL_IFUNC_P): Likewise.
+	* elf32-i386.c (elf_i386_relocate_section): Use them.
+	* elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
+
+2017-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.h (GENERATE_RELATIVE_RELOC_P): New.
+	* elf32-i386.c (elf_i386_relocate_section): Use it.
+	* elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
+
+2017-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.h (RESOLVED_LOCALLY_P): New.
+	* elf32-i386.c (elf_i386_relocate_section): Use it.
+	* elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
+
+2017-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (X86_PCREL_TYPE_P): New.
+	(elf_i386_check_relocs): Use NEED_DYNAMIC_RELOCATION_P.
+	* elf64-x86-64.c (IS_X86_64_PCREL_TYPE): Renamed to ...
+	(X86_PCREL_TYPE_P): This.
+	(elf_x86_64_check_relocs): Use NEED_DYNAMIC_RELOCATION_P.
+	Replace IS_X86_64_PCREL_TYPE with X86_PCREL_TYPE_P.
+	(elf_x86_64_relocate_section): Replace IS_X86_64_PCREL_TYPE with
+	X86_PCREL_TYPE_P.
+	* elfxx-x86.h (NEED_DYNAMIC_RELOCATION_P): New.
+
+2017-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.h (TLS_TRANSITION_IE_TO_LE_P): New.
+	* elf32-i386.c (elf_i386_tls_transition): Use it.
+	* elf64-x86-64.c (elf_x86_64_tls_transition): Likewise.
+
+2017-10-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-ppc.c (readonly_dynrelocs): Add a link_info argument.
+	Dump dynamic relocation in read-only section with minfo if
+	needed.
+	(ppc_elf_adjust_dynamic_symbol): Pass NULL to readonly_dynrelocs.
+	(maybe_set_textrel): Likewise.
+	(ppc_elf_size_dynamic_sections): Dump dynamic relocation in
+	read-only section with minfo.
+
+2017-10-05  John Baldwin  <jhb@FreeBSD.org>
+
+	* elf.c (elfcore_grok_freebsd_note): Handle NT_ARM_VFP.
+
+2017-10-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-tilepro.c (readonly_dynrelocs): Dump dynamic relocation
+	in read-only section with minfo.
+	(tilepro_elf_size_dynamic_sections): Likewise.
+	* elfxx-tilegx.c (readonly_dynrelocs): Likewise.
+	(tilegx_elf_size_dynamic_sections): Likewise.
+
+2017-10-05  Pedro Alves  <palves@redhat.com>
+
+	PR 22245
+	* bfd.c (bfd_set_error): Revert 2017-10-04 change.  Remove
+	ellipsis parameter.  Split out bfd_error_on_input code to..
+	(bfd_set_input_error): .. New function.
+	* archive.c (_bfd_write_archive_contents): Use bfd_set_input_error.
+	* vms-lib.c (_bfd_vms_lib_write_archive_contents): Likewise.
+	* bfd-in2.h: Regenerate.
+
+2017-10-05  Alan Modra  <amodra@gmail.com>
+
+	* elflink.c (elf_link_input_bfd): Correct ctor/dtor in init_array/
+	fini_array error value.
+
+2017-10-05  Alan Modra  <amodra@gmail.com>
+
+	PR 21167
+	* elf.c (_bfd_elf_setup_sections): Don't trim reloc sections from
+	groups.
+	(_bfd_elf_init_reloc_shdr): Pass sec_hdr, use it to copy SHF_GROUP
+	flag from section.
+	(elf_fake_sections): Adjust calls.  Exit immediately on failure.
+	(bfd_elf_set_group_contents): Add associated reloc section indices
+	to group contents.
+
+2017-10-04  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't sort or
+	classify symbols for ELFv2.
+
+2017-10-04  Pavel I. Kryukov <kryukov@frtk.ru>
+
+	PR 22245
+	* bfd.c (bfd_set_error): Avoid UB on passing arg to va_start that
+	undergoes default promotion.
+	* bfd-in2.h: Regenerate.
+
+2017-10-02  Alan Modra  <amodra@gmail.com>
+
+	* elf32-ppc.c (ppc_elf_relocate_section): Fix comment typo.
+	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+
+2017-10-01  Alan Modra  <amodra@gmail.com>
+
+	PR 21957
+	* dwarf2.c (new_line_sorts_after): Remove end_sequence comparison.
+	(add_line_info): Always put end_sequence last.
+
+2017-10-01  Alan Modra  <amodra@gmail.com>
+
+	PR 22047
+	* dwarf2.c (read_section): Allocate buffer with extra byte for
+	bfd_simple_get_relocated_section_contents rather than copying
+	afterwards.
+
+2017-09-29  Alan Modra  <amodra@gmail.com>
+
+	* merge.c (merge_strings): Return FALSE on malloc failure.
+	(_bfd_merge_sections): Return failures from record_section and
+	merge_strings.
+
+2017-09-28  Alan Modra  <amodra@gmail.com>
+
+	PR 22220
+	* elflink.c (_bfd_elf_merge_symbol): Set non_ir_ref_dynamic in
+	a case where plugin_notice isn't called.
+
+2017-09-27  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
+
+	* elf32-nds32.c (nds32_elf_relax_section): Fix a tautological
+	comparison.
+
+2017-09-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22199
+	* elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Don't pass
+	output_bfd to info->callbacks->minfo.
+
+2017-09-26  Nick Clifton  <nickc@redhat.com>
+
+	PR 22172
+	* elf64-x86-64.c (elf_x86_64_info_to_howto): Do not trigger an
+	assertion failure if elf_x86_64_rtype_to_howto has already issued
+	an error message.
+
+2017-09-26  Alan Modra  <amodra@gmail.com>
+
+	PR 22210
+	* dwarf2.c (read_formatted_entries): Use read_attribute_value to
+	read data.
+
+2017-09-26  Nick Clifton  <nickc@redhat.com>
+
+	PR 22210
+	* dwarf2.c (read_formatted_entries): Fail early if we know that
+	the loop parsing data entries will overflow the end of the
+	section.
+
+2017-09-26  Alan Modra  <amodra@gmail.com>
+
+	PR 22209
+	* dwarf2.c (struct comp_unit): Delete sec_info_ptr field.
+	(find_abstract_instance_name): Calculate DW_FORM_ref_addr relative
+	to stash->info_ptr_memory, and check die_ref is within that memory.
+	Set info_ptr_end correctly when another CU is refd.  Check die_ref
+	for DW_FORM_ref4 etc. is within CU.
+
+2017-09-26  Alan Modra  <amodra@gmail.com>
+
+	PR 22205
+	* dwarf2.c (concat_filename): Return "<unknown>" on NULL filename.
+	(read_formatted_entries): Init "fe".
+	(decode_line_info <DW_LNE_define_file>): Use line_info_add_file_name.
+
+2017-09-26  Alan Modra  <amodra@gmail.com>
+
+	PR 22204
+	* dwarf2.c (decode_line_info): Ensure line_ptr stays within
+	bounds in inner loop.
+
+2017-09-25  Alan Modra  <amodra@gmail.com>
+
+	PR 22202
+	* dwarf1.c (parse_die): Sanity check pointer against section limit
+	before dereferencing.
+	(parse_line_table): Likewise.
+
+2017-09-25  Alan Modra  <amodra@gmail.com>
+
+	PR 22201
+	* dwarf2.c (scan_unit_for_symbols): Ignore DW_AT_name unless it
+	has string form.
+	(parse_comp_unit): Likewise.
+
+2017-09-25  Alan Modra  <amodra@gmail.com>
+
+	PR 22200
+	* dwarf2.c (read_formatted_entries): Error on format_count zero.
+
+2017-09-24  Alan Modra  <amodra@gmail.com>
+
+	PR 22197
+	* opncls.c (bfd_get_debug_link_info_1): Properly check that crc is
+	within section bounds.
+
+2017-09-24  Alan Modra  <amodra@gmail.com>
+
+	PR 22191
+	* dwarf2.c (decode_line_info): Properly free line sequences on error.
+
+2017-09-24  Alan Modra  <amodra@gmail.com>
+
+	PR 22187
+	* dwarf2.c (find_abstract_instance_name): Add orig_info_ptr and
+	pname param.  Return status.  Make name const.  Don't abort,
+	return an error.  Formatting.  Exit if current info_ptr matches
+	orig_info_ptr.  Update callers.
+	(scan_unit_for_symbols): Start at nesting_level of zero.  Make
+	nested_funcs an array of structs for extensibility.  Formatting.
+
+2017-09-24  Alan Modra  <amodra@gmail.com>
+
+	PR 22186
+	* dwarf2.c (decode_line_info): Fail on lh.line_range of zero
+	rather than dividing by zero.
+
+2017-09-24  Alan Modra  <amodra@gmail.com>
+
+	PR 22169
+	* dwarf2.c (decode_line_info): Correct .debug_line unit_length check.
+
+2017-09-24  Alan Modra  <amodra@gmail.com>
+
+	PR 22167
+	* dwarf2.c (scan_unit_for_symbols): Check u.blk->data is non-NULL.
+
+2017-09-24  Alan Modra  <amodra@gmail.com>
+
+	PR 22166
+	* elf.c (_bfd_elf_slurp_version_tables): Test sh_info on
+	SHT_GNU_verneed section for sanity.  Don't zalloc memory for
+	verref.
+
+2017-09-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/22170
+	* elfxx-x86.c (_bfd_x86_elf_get_synthetic_symtab): Guard against
+	corrupted PLT.
+
+2017-09-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/22163
+	* elfxx-x86.c (_bfd_x86_elf_get_synthetic_symtab): Also return
+	-1 if bfd_canonicalize_dynamic_reloc returns 0.
+
+2017-09-22  Pedro Alves  <palves@redhat.com>
+	    Alan Modra  <amodra@gmail.com>
+
+	* version.h: Add comment.
+
+2017-09-21  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* elf.c (elfcore_grok_note): For the cases NT_S390_GS_CB and
+	NT_S390_GS_BC, correct the previously swapped invocations of
+	elfcore_grok_s390_gs_bc and elfcore_grok_s390_gs_cb.
+
+2017-09-19  Alan Modra  <amodra@gmail.com>
+
+	PR 21441
+	* elf64-ppc.c (ppc64_elf_build_stubs): Don't check glink_eh_frame
+	size.
+
+2017-09-19  Alan Modra  <amodra@gmail.com>
+
+	PR 22150
+	* elflink.c (bfd_elf_size_dynamic_sections): Garbage collect
+	symbols before calculating verrefs.  Don't renumber dynsyms
+	after gc.  Exclude .gnu.version when zero or one dynsym.
+	Localize some vars and reindent.
+
+2017-09-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22148
+	* elfxx-x86.c (_bfd_x86_elf_get_synthetic_symtab): Check error
+	return from bfd_canonicalize_dynamic_reloc.
+
+2017-09-15  Alan Modra  <amodra@gmail.com>
+
+	PR 22116
+	* archive.c (bfd_ar_hdr_from_filesystem): Detect when status.st_size
+	overflows bfd_size_type.
+
+2017-09-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22135
+	* elf32-i386.c (elf_i386_convert_load_reloc): Add an argument
+	to indicate if conversion is performed.
+	(elf_i386_check_relocs): Cache section contents and relocations
+	if conversion is performed.
+	* elf64-x86-64.c (elf_x86_64_check_relocs): Cache section
+	contents and relocations if conversion is performed.
+
+2017-09-14  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/22113
+	* peXXigen.c (pe_print_idata): Extend check for HintName vector
+	entries.
+
+2017-09-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.h: Fix a typo in comments.
+
+2017-09-09  Kamil Rytarowski  <n54@gmx.com>
+
+	* elf32-nds32.c: Rename __BIT() to N32_BIT().
+
+2017-09-09  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppp.c (plt_stub_pad): Handle positive and negative
+	plt_stub_align.
+
+2017-09-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_relocate_section): Update usage of
+	UNDEFINED_WEAK_RESOLVED_TO_ZERO.
+	(elf_i386_finish_dynamic_symbol): Likewise.
+	* elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
+	(elf_x86_64_finish_dynamic_symbol): Likewise.
+	* elfxx-x86.c (elf_x86_allocate_dynrelocs): Likewise.
+	(_bfd_x86_elf_fixup_symbol): Likewise.
+
+2017-09-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.c (_bfd_x86_elf_link_symbol_references_local): Don't
+	check has_non_got_reloc.
+
+2017-09-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22115
+	* elf32-i386.c (elf_i386_convert_load_reloc): Check linker_def.
+	Don't use UNDEFINED_WEAK_RESOLVED_TO_ZERO.
+	* elf64-x86-64.c (elf_x86_64_convert_load_reloc): Check
+	linker_def.  Don't use UNDEFINED_WEAK_RESOLVED_TO_ZERO.
+	* elfxx-x86.c (_bfd_x86_elf_link_check_relocs): Set local_ref
+	and linker_def on __ehdr_start if it is referenced and not
+	defined.
+	(_bfd_x86_elf_link_symbol_references_local): Also set local_ref
+	and return TRUE when building executable, if a symbol has
+	non-GOT/non-PLT relocations in text section or there is no
+	dynamic linker.
+	* elfxx-x86.h (elf_x86_link_hash_entry): Add linker_def.
+
+2017-09-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.h: Update comments.
+
+2017-09-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_link_setup_gnu_properties): Replace
+	elf_x86_plt_layout_table with elf_x86_init_table.
+	* elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties):
+	Likewise.
+	* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties):
+	Likewise.
+	* elfxx-x86.h (elf_x86_plt_layout_table): Renamed to ...
+	(elf_x86_init_table): This.
+	(_bfd_x86_elf_link_setup_gnu_properties): Replace
+	elf_x86_plt_layout_table with elf_x86_init_table.
+
+2017-09-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* configure.ac (bfd_backends): Don't add elf64-x86-64.lo nor
+	elf64.lo together with elfxx-x86.lo for 64-bit BFD.
+	* configure: Regenerated.
+	* elf32-i386.c (elf_i386_link_setup_gnu_properties): Set r_info
+	and r_sym fields of plt_layout.
+	* elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties):
+	Likewise.
+	* elfxx-x86.c (elf_x86_64_is_reloc_section): Remove BFD64 check.
+	(_bfd_x86_elf_link_hash_table_create): Likewise.  Don't set
+	r_info nor r_sym fields.
+	(_bfd_x86_elf_link_setup_gnu_properties): Set r_info and r_sym
+	fields of htab.
+	* elfxx-x86.h (elf_x86_plt_layout_table): Add r_info and r_sym.
+
+2017-09-07  Palmer Dabbelt  <palmer@dabbelt.com>
+
+	* (_bfd_riscv_relax_align): Call bfd_set_error and
+	print an error message when unable to relax a .align directive.
+
+2017-09-07  Palmer Dabbelt  <palmer@dabbelt.com>
+
+	* elfnn-riscv.c (riscv_zero_pcrel_hi_reloc): New function.
+	(riscv_record_pcrel_hi_reloc): Add absolute argument.
+	(riscv_elf_relocate_section): Call riscv_zero_pcrel_hi_reloc for
+	R_RISCV_PCREL_HI20 relocs, and pass the result to
+	riscv_record_pcrel_hi_reloc.
+
+2017-09-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_convert_load_reloc): Add an argument,
+	r_type_p.  Remove the converted argument.  Replace
+	SYMBOL_REFERENCES_LOCAL with SYMBOL_REFERENCES_LOCAL_P.  Return
+	the new relocation type via r_type_p.
+	(elf_i386_relocate_section): Likewise.
+	(elf_i386_finish_dynamic_symbol): Likewise.
+	(need_convert_load): Removed.
+	(check_relocs_failed): Updated.
+	(elf_i386_check_relocs): Call elf_i386_convert_load_reloc,
+	instead of setting need_convert_load.
+	(_bfd_i386_elf_convert_load): Removed.
+	* elf64-x86-64.c (need_convert_load): Removed.
+	(check_relocs_failed): Updated.
+	(elf_x86_64_convert_load_reloc): Add an argument, r_type_p.
+	Replace SYMBOL_REFERENCES_LOCAL with SYMBOL_REFERENCES_LOCAL_P.
+	Return the new relocation type via r_type_p.
+	(elf_x86_64_check_relocs): Call elf_x86_64_convert_load_reloc,
+	instead of setting need_convert_load.
+	(elf_x86_64_check_relocs): Don't check PIC if relocation has
+	been converted.
+	(_bfd_x86_64_elf_convert_load): Removed.
+	(elf_x86_64_relocate_section): Replace SYMBOL_REFERENCES_LOCAL
+	with SYMBOL_REFERENCES_LOCAL_P.
+	(elf_x86_64_finish_dynamic_symbol): Likewise.
+	* elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Don't
+	set convert_load.
+	(_bfd_x86_elf_size_dynamic_sections): Don't call convert_load.
+	(_bfd_x86_elf_link_symbol_references_local): New function.
+	* elfxx-x86.h (SYMBOL_REFERENCES_LOCAL_P): New.
+	(UNDEFINED_WEAK_RESOLVED_TO_ZERO): Replace elf.forced_local with
+	SYMBOL_REFERENCES_LOCAL_P.
+	(elf_x86_link_hash_entry): Add local_ref.
+	(elf_x86_link_hash_table): Remove convert_load.
+	(_bfd_i386_elf_convert_load): Removed.
+	(_bfd_x86_64_elf_convert_load): Likewise.
+	(_bfd_x86_elf_link_symbol_references_local): New.
+
+2017-09-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf64-x86-64.c (R_X86_64_converted_reloc_bit): New.
+	(elf_x86_64_info_to_howto): Get the real relocation type by
+	masking out R_X86_64_converted_reloc_bit.
+	(elf_x86_64_check_tls_transition): Get the real relocation type
+	by masking out R_X86_64_converted_reloc_bit.
+	(elf_x86_64_convert_load_reloc): Set R_X86_64_converted_reloc_bit
+	instead of setting converted_reloc.
+	(elf_x86_64_relocate_section): Check R_X86_64_converted_reloc_bit
+	instead of converted_reloc. Get the real relocation type by
+	masking out R_X86_64_converted_reloc_bit.
+	(elf_x86_64_link_setup_gnu_properties): Verify that the value of
+	R_X86_64_converted_reloc_bit is valid.
+	* elfxx-x86.h (converted_reloc): Removed.
+
+2017-09-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_relocate_section): Don't change r_type
+	when calling elf_i386_tls_transition.  Don't use ELF32_R_TYPE
+	to get the relocation type again.
+	* elf64-x86-64.c (elf_x86_64_relocate_section): Don't change
+	r_type when calling elf_x86_64_tls_transition.  Don't use
+	ELF32_R_TYPE to get the relocation type again.
+
+2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf64-x86-64.c (elf_x86_64_convert_load_reloc): Properly set
+	converted_reloc.
+
+2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf64-x86-64.c (elf_x86_64_convert_load_reloc): Remove the sec
+	argument.  Don't check relocation overflow.  Avoid relocation
+	overflow if --no-relax is used.  Set converted_reloc on symbol
+	if a GOTPCREL relocation is converted.
+	(elf_x86_64_relocate_section): Issue a fatal error and suggest
+	--no-relax if GOTPCREL relocation conversion leads to relocation
+	overflow.
+	* elfxx-x86.h (elf_x86_link_hash_entry): Add converted_reloc.
+
+2017-09-05  Alexander Fedotov <alexander.fedotov@nxp.com>
+	    Edmar Wienskoski <edmar.wienskoski@nxp.com
+
+	* elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_VLE_ADDR20.
+	(ppc_elf_check_relocs): Handle it.
+	(ppc_elf_vle_split20): New function.
+	(ppc_elf_relocate_section): Handle R_PPC_VLE_ADDR20.
+
+2017-09-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22071
+	* elfxx-x86.c (elf_x86_allocate_dynrelocs): Set tlsdesc_plt
+	for x86-64 if GOT_TLS_GDESC_P is true.
+
+2017-09-03  Alan Modra  <amodra@gmail.com>
+
+	PR 22067
+	* elfxx-x86.h (elf_x86_hash_table): Check is_elf_hash_table first.
+
+2017-09-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Initialize
+	tls_get_addr for x86-64 in one place.
+
+2017-09-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* configure.ac (bfd_backends): Add elf64-x86-64.lo together
+	with elfxx-x86.lo for 64-bit BFD.
+	* configure: Regenerated.
+
+2017-09-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_convert_load): Renamed to ...
+	(_bfd_i386_elf_convert_load): This.  Remove static.
+	(elf_i386_size_dynamic_sections): Removed.
+	(elf_backend_size_dynamic_sections): Likewise.
+	* elf64-x86-64.c (elf_x86_64_convert_load): Renamed to ...
+	(_bfd_x86_64_elf_convert_load): This.  Remove static.
+	(elf_x86_64_size_dynamic_sections): Removed.
+	(elf_backend_size_dynamic_sections): Likewise.
+	* elfxx-x86.c (_bfd_x86_elf_allocate_dynrelocs): Renamed to ...
+	(elf_x86_allocate_dynrelocs): This.  Make it static.
+	(_bfd_x86_elf_allocate_local_dynrelocs): Renamed to ...
+	(elf_x86_allocate_local_dynreloc): This.  Make it static.
+	(elf_i386_is_reloc_section): New function.
+	(elf_x86_64_is_reloc_section): Likewise.
+	(_bfd_x86_elf_link_hash_table_create): Initialize convert_load,
+	is_reloc_section, dt_reloc, dt_reloc_sz and dt_reloc_ent.
+	Rearrange got_entry_size initialization.
+	(_bfd_x86_elf_size_dynamic_sections): New function.
+	* elfxx-x86.h (elf_x86_link_hash_table): Add convert_load,
+	is_reloc_section, dt_reloc, dt_reloc_sz and dt_reloc_ent.
+	(_bfd_i386_elf_convert_load): New.
+	(_bfd_x86_64_elf_convert_load): Likewise.
+	(_bfd_x86_elf_size_dynamic_sections): Likewise.
+	(elf_backend_size_dynamic_sections): Likewise.
+	(_bfd_x86_elf_allocate_dynrelocs): Removed.
+	(_bfd_x86_elf_allocate_local_dynrelocs): Likewise.
+
+2017-09-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.h (elf_x86_link_hash_table): Rearrange fields and
+	update comments.
+
+2017-09-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_size_dynamic_sections): Set
+	sgotplt_jump_table_size with elf_x86_compute_jump_table_size.
+
+2017-09-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (PLT_CIE_LENGTH, PLT_FDE_LENGTH,
+	PLT_FDE_START_OFFSET, PLT_FDE_LEN_OFFSET): Moved to ...
+	* elfxx-x86.h (PLT_CIE_LENGTH, PLT_FDE_LENGTH,
+	PLT_FDE_START_OFFSET, PLT_FDE_LEN_OFFSET): Here.
+	* elf64-x86-64.c (PLT_CIE_LENGTH, PLT_FDE_LENGTH,
+	PLT_FDE_START_OFFSET, PLT_FDE_LEN_OFFSET): Removed.
+
+2017-09-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_allocate_dynrelocs): Removed.
+	(elf_i386_allocate_local_dynrelocs): Likewise.
+	(elf_i386_size_dynamic_sections): Replace
+	elf_i386_allocate_dynrelocs/elf_i386_allocate_local_dynrelocs
+	with _bfd_x86_elf_allocate_dynrelocs and
+	_bfd_x86_elf_allocate_local_dynrelocs.
+	* elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Removed.
+	(elf_x86_64_allocate_local_dynrelocs): Likewise.
+	(elf_x86_64_size_dynamic_sections): Replace
+	elf_x86_64_allocate_dynrelocs/elf_x86_64_allocate_local_dynrelocs
+	with _bfd_x86_elf_allocate_dynrelocs and
+	_bfd_x86_elf_allocate_local_dynrelocs.
+	* elfxx-x86.c (_bfd_x86_elf_allocate_dynrelocs): New function.
+	(_bfd_x86_elf_allocate_local_dynrelocs): Likewise.
+	* elfxx-x86.h (_bfd_x86_elf_allocate_dynrelocs): New prototype.
+	(_bfd_x86_elf_allocate_local_dynrelocs): Likewise.
+
+2017-09-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (is_i386_elf): Removed.
+	(elf_i386_check_relocs): Replace is_i386_elf with is_x86_elf.
+	(elf_i386_size_dynamic_sections): Likewise.
+	(elf_i386_relocate_section): Likewise.
+	* elf64-x86-64.c (is_x86_64_elf): Removed.
+	(elf_x86_64_check_relocs): Replace is_x86_64_elf with
+	is_x86_elf.
+	(elf_x86_64_size_dynamic_sections): Likewise.
+	(elf_x86_64_relocate_section): Likewise.
+	* elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Initialize
+	target_id.
+	* elfxx-x86.h (elf_x86_link_hash_table): Add target_id.
+	(is_x86_elf): New.
+
+2017-09-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_compute_jump_table_size): Removed.
+	(elf_i386_allocate_dynrelocs): Replace
+	elf_i386_compute_jump_table_size with
+	elf_x86_compute_jump_table_size.
+	(elf_i386_size_dynamic_sections): Likewise.
+	* elf64-x86-64.c (elf_x86_64_compute_jump_table_size): Removed.
+	(elf_x86_64_allocate_dynrelocs): Replace
+	elf_x86_64_compute_jump_table_size with
+	elf_x86_compute_jump_table_size.
+	(elf_x86_64_size_dynamic_sections): Likewise.
+	* elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Initialize
+	got_entry_size.
+	* elfxx-x86.h (elf_x86_link_hash_table): Add got_entry_size.
+	(elf_x86_compute_jump_table_size): New.
+
+2017-09-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Initialize
+	sizeof_reloc.
+	(_bfd_x86_elf_adjust_dynamic_symbol): Use sizeof_reloc.
+	* elfxx-x86.h (elf_x86_link_hash_table): Add sizeof_reloc.
+
+2017-09-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_allocate_dynrelocs): Check VxWorks
+	with htab->is_vxworks.
+	(elf_i386_size_dynamic_sections): Likewise.
+	(elf_i386_relocate_section): Likewise.
+	(elf_i386_finish_dynamic_symbol): Likewise.
+	(elf_i386_finish_dynamic_sections): Likewise.
+
+2017-09-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (GOT_TLS_IE, GOT_TLS_IE_POS, GOT_TLS_IE_NEG,
+	GOT_TLS_IE_BOTH, GOT_TLS_GDESC, GOT_TLS_GD_BOTH_P,
+	GOT_TLS_GD_P, GOT_TLS_GDESC_P, GOT_TLS_GD_ANY_P): Moved to ...
+	* elfxx-x86.h (GOT_TLS_IE, GOT_TLS_IE_POS, GOT_TLS_IE_NEG,
+	GOT_TLS_IE_BOTH, GOT_TLS_GDESC, GOT_TLS_GD_BOTH_P,
+	GOT_TLS_GD_P, GOT_TLS_GDESC_P, GOT_TLS_GD_ANY_P): Here.
+	* elf64-x86-64.c (GOT_TLS_IE, GOT_TLS_GDESC, GOT_TLS_GD_BOTH_P,
+	GOT_TLS_GD_P, GOT_TLS_GDESC_P, GOT_TLS_GD_ANY_P): Removed.
+
+2017-09-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22064
+	* elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Check
+	ELF_COMMON_DEF_P for common symbols.
+
+2017-09-02  Alan Modra  <amodra@gmail.com>
+
+	* elf-eh-frame.c (offset_adjust): Avoid false positive gcc warning.
+	* elflink.c (bfd_elf_size_dynsym_hash_dynstr): Likewise.
+	* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Likewise.
+
+2017-09-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_gc_mark_hook): Removed.
+	(elf_backend_gc_mark_hook): Likewise.
+	* elf64-x86-64.c (elf_x86_64_gc_mark_hook): Likewise.
+	(elf_backend_gc_mark_hook): Likewise.
+	* elfxx-x86.c (_bfd_x86_elf_gc_mark_hook): New function.
+	* elfxx-x86.h (_bfd_x86_elf_gc_mark_hook): New.
+	(elf_backend_gc_mark_hook): Likewise.
+
+2017-09-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Removed.
+	(elf_backend_adjust_dynamic_symbol): Likewise.
+	* elf64-x86-64.c (elf_x86_64_adjust_dynamic_symbol): Likewise.
+	(elf_backend_adjust_dynamic_symbol): Likewise.
+	* elfxx-x86.c (_bfd_x86_elf_adjust_dynamic_symbol): New function.
+	(_bfd_x86_elf_link_setup_gnu_properties): Copy is_vxworks.
+	* elfxx-x86.h (elf_x86_link_hash_table): Add is_vxworks.
+	(_bfd_x86_elf_adjust_dynamic_symbol): New.
+	(elf_backend_adjust_dynamic_symbol): Likewise.
+
+2017-09-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.h (elf_x86_plt_layout_table): Fix a typo in
+	comments.
+
+2017-09-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_mkobject): Removed.
+	(bfd_elf32_mkobject): Likewise.
+	* elf64-x86-64.c (elf_x86_64_mkobject): Likewise.
+	(bfd_elf64_mkobject): Likewise.
+	(bfd_elf32_mkobject): Likewise.
+	* elfxx-x86.c (_bfd_x86_elf_mkobject): New function.
+	* elfxx-x86.h (_bfd_x86_elf_mkobject): New.
+	(bfd_elf64_mkobject): Likewise.
+	(bfd_elf32_mkobject): Likewise.
+
+2017-09-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_link_setup_gnu_properties): Updated.
+	Call _bfd_x86_elf_link_setup_gnu_properties.
+	* elf64-x86-64.c (elf_x86_lazy_plt_layout): Initialize
+	pic_plt0_entry and pic_plt_entry fields with the non-PIC PLT
+	entries.
+	(elf_x86_64_non_lazy_plt): Likewise.
+	(elf_x86_64_lazy_bnd_plt): Likewise.
+	(elf_x86_64_non_lazy_bnd_plt): Likewise.
+	(elf_x86_64_lazy_ibt_plt): Likewise.
+	(elf_x32_lazy_ibt_plt): Likewise.
+	(elf_x86_64_non_lazy_ibt_plt): Likewise.
+	(elf_x32_non_lazy_ibt_plt): Likewise.
+	(elf_x86_64_nacl_plt): Likewise.
+	(elf_x86_64_link_setup_gnu_properties): Updated.  Call
+	_bfd_x86_elf_link_setup_gnu_properties.
+	* elfxx-x86.c: Include elf-vxworks.h".
+	(_bfd_x86_elf_link_setup_gnu_properties): New function.
+	* elfxx-x86.h (elf_x86_lazy_plt_layout): Remove "for i386 only"
+	comments for pic_plt0_entry and pic_plt_entry.
+	(elf_x86_non_lazy_plt_layout): Likewise.
+	(elf_x86_plt_layout_table): New.
+	(_bfd_x86_elf_link_setup_gnu_properties): Likewise.
+
+2017-09-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22061
+	* elf32-i386.c (elf_i386_link_setup_gnu_properties): Create
+	.eh_frame section for the second PLT.
+	* elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Correct
+	alignment of .eh_frame section for the second PLT.
+
+2017-09-01  Nick Clifton  <nickc@redhat.com>
+
+	PR 22059
+	* dwarf2.c (decode_line_info): Fix test for an overlong line info
+	structure.
+
+2017-09-01  Nick Clifton  <nickc@redhat.com>
+
+	PR 22058
+	* elf-attrs.c (_bfd_elf_parse_attributes): Ensure that the
+	attribute buffer is NUL terminated.
+
+2017-08-31  Nick Clifton  <nickc@redhat.com>
+
+	PR 22047
+	* dwarf2.c (read_section): If necessary add a terminating NUL byte
+	to dwarf string sections.
+
+2017-08-31  Alan Modra  <amodra@gmail.com>
+
+	* po/SRC-POTFILES.in: Regenerate.
+
+2017-08-31  Alan Modra  <amodra@gmail.com>
+
+	* elf-eh-frame.c (_bfd_elf_parse_eh_frame): Don't exit early
+	for a section containing just a terminator.  Allow multiple
+	terminators at end of section.
+	* elflink.c (bfd_elf_discard_info): Iterate over .eh_frame
+	sections when not adding alignment.  Assert on terminator in
+	the middle of FDEs.
+
+2017-08-31  Alan Modra  <amodra@gmail.com>
+
+	PR 21441
+	PR 22048
+	* elflink.c (bfd_elf_discard_info): Don't pad embedded zero
+	terminators.
+
+2017-08-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* configure.ac (bfd_backends): Add elf64.lo together with
+	elfxx-x86.lo for 64-bit BFD.
+	* configure: Regenerated.
+
+2017-08-31  James Bowman  <james.bowman@ftdichip.com>
+
+	* elf32-ft32.c (ft32_elf_howto_table): Use complain_overflow_dont
+	for R_FT32_18.
+
+2017-08-31  Alan Modra  <amodra@gmail.com>
+
+	PR binutils/22032
+	* opncls.c (bfd_close_all_done): Don't call bfd_cache_close
+	before _close_and_cleanup.  Call iovec->bclose after.
+	(bfd_close): Remove code common to, and call, bfd_close_all_done.
+
+2017-08-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_plt_type): Removed.
+	(elf_i386_plt): Likewise.
+	(elf_i386_get_synthetic_symtab): Updated.   Call
+	_bfd_x86_elf_get_synthetic_symtab.
+	* elf64-x86-64.c (elf_x86_64_plt_type): Removed.
+	(elf_x86_64_plt): Likewise.
+	(elf_x86_64_get_synthetic_symtab): Updated.  Call
+	_bfd_x86_elf_get_synthetic_symtab.
+	* elfxx-x86.c (elf_i386_get_plt_got_vma): New function.
+	(elf_x86_64_get_plt_got_vma): Likewise.
+	(elf_i386_valid_plt_reloc_p): Likewise.
+	(elf_x86_64_valid_plt_reloc_p): Likewise.
+	(_bfd_x86_elf_get_synthetic_symtab): Likewise.
+	* elfxx-x86.h (elf_x86_plt_type): New.
+	(elf_x86_plt): Likewise.
+	(_bfd_x86_elf_get_synthetic_symtab): Likewise.
+
+2017-08-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elfxx-x86.c (_bfd_x86_elf_link_hash_table_create): Check
+	target_id instead of elf_machine_code.
+
+2017-08-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (ELF_DYNAMIC_INTERPRETER): Removed.
+	(elf_i386_lazy_plt_layout): Likewise.
+	(elf_i386_non_lazy_plt_layout): Likewise.
+	(elf_i386_plt_layout): Likewise.
+	(elf_i386_link_hash_table): Likewise.
+	(elf_i386_next_tls_desc_index): Likewise.
+	(elf_i386_srelplt2): Likewise.
+	(elf_i386_plt): Likewise.
+	(elf_i386_lazy_plt): Likewise.
+	(elf_i386_non_lazy_plt): Likewise.
+	(elf_i386_link_hash_table_create): Likewise.
+	(bfd_elf32_bfd_link_hash_table_create): Likewise.
+	(elf_i386_lazy_plt): Updated.
+	(elf_i386_non_lazy_plt): Likewise.
+	(elf_i386_lazy_ibt_plt): Likewise.
+	(elf_i386_non_lazy_ibt_plt): Likewise.
+	(elf_i386_allocate_dynrelocs): Likewise.
+	(elf_i386_size_dynamic_sections): Likewise.
+	(elf_i386_relocate_section): Likewise.
+	(elf_i386_finish_dynamic_symbol): Likewise.
+	(elf_i386_finish_dynamic_sections): Likewise.
+	(elf_i386_get_synthetic_symtab): Likewise.
+	(elf_i386_link_setup_gnu_properties): Likewise.
+	(elf_i386_nacl_plt): Likewise.
+	* elf64-x86-64.c (ABI_64_P): Removed.
+	(ELF64_DYNAMIC_INTERPRETER): Likewise.
+	(ELF32_DYNAMIC_INTERPRETER): Likewise.
+	(elf_x86_64_lazy_plt_layout): Likewise.
+	(elf_x86_64_non_lazy_plt_layout): Likewise.
+	(elf_x86_64_plt_layout): Likewise.
+	(elf_x86_64_link_hash_table): Likewise.
+	(elf_x86_64_plt): Likewise.
+	(elf_x86_64_lazy_plt): Likewise.
+	(elf_x86_64_non_lazy_plt): Likewise.
+	(elf_x86_64_link_hash_table_create): Likewise.
+	(bfd_elf64_bfd_link_hash_table_create): Likewise.
+	(bfd_elf32_bfd_link_hash_table_create): Likewise.
+	(elf_x86_64_lazy_plt): Updated.
+	(elf_x86_64_non_lazy_plt): Likewise.
+	(elf_x86_64_lazy_bnd_plt): Likewise.
+	(elf_x86_64_non_lazy_bnd_plt): Likewise.
+	(elf_x86_64_lazy_ibt_plt): Likewise.
+	(elf_x32_lazy_ibt_plt): Likewise.
+	(elf_x86_64_non_lazy_ibt_plt): Likewise.
+	(elf_x32_non_lazy_ibt_plt): Likewise.
+	(elf_x86_64_allocate_dynrelocs): Likewise.
+	(elf_x86_64_size_dynamic_sections): Likewise.
+	(elf_x86_64_relocate_section): Likewise.
+	(elf_x86_64_finish_dynamic_symbol): Likewise.
+	(elf_x86_64_finish_dynamic_sections): Likewise.
+	(elf_x86_64_get_synthetic_symtab): Likewise.
+	(elf_x86_64_link_setup_gnu_properties): Likewise.
+	(elf_x86_64_nacl_plt): Likewise.
+	* elfxx-x86.c: Include "objalloc.h", "elf/i386.h" and
+	"elf/x86-64.h".
+	(ELF32_DYNAMIC_INTERPRETER): New.
+	(ELF64_DYNAMIC_INTERPRETER): Likewise.
+	(ELFX32_DYNAMIC_INTERPRETER): Likewise.
+	(_bfd_x86_elf_link_hash_table_create): Likewise.
+	(_bfd_x86_elf_link_hash_table_free): Renamed to ...
+	(elf_x86_link_hash_table_free): This.  Make it static.
+	* elfxx-x86.h: Don't include "objalloc.h".
+	(ABI_64_P): New.
+	(elf_x86_lazy_plt_layout): Likewise.
+	(elf_x86_non_lazy_plt_layout): Likewise.
+	(elf_x86_plt_layout): Likewise.
+	(_bfd_x86_elf_link_hash_table_create): Likewise.
+	(bfd_elf64_bfd_link_hash_table_create): Likewise.
+	(bfd_elf32_bfd_link_hash_table_create): Likewise.
+	(elf_x86_link_hash_table): Add plt, lazy_plt, non_lazy_plt,
+	srelplt2 and next_tls_desc_index.
+	(_bfd_x86_elf_link_hash_table_free): Removed.
+
+2017-08-30  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elfxx-mips.c (mips_elf_perform_relocation): Correct microMIPS
+	branch offset interpretation.
+
+2017-08-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/22032
+	* opncls.c (bfd_close_all_done): Call _close_and_cleanup.
+
+2017-08-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf64-x86-64.c (elf_x86_64_next_tls_desc_index): Removed.
+	(elf_x86_64_srelplt2): Likewise.
+
+2017-08-30  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (struct ppc_link_hash_table): Add do_tls_opt.
+	(ppc64_elf_tls_optimize): Set it.
+	(ppc64_elf_relocate_section): Nop addis on TPREL16_HA, and convert
+	insn on TPREL16_LO and TPREL16_LO_DS relocs to use r13 when
+	addis would add zero.
+	* elf32-ppc.c (struct ppc_elf_link_hash_table): Add do_tls_opt.
+	(ppc_elf_tls_optimize): Set it.
+	(ppc_elf_relocate_section): Nop addis on TPREL16_HA, and convert
+	insn on TPREL16_LO relocs to use r2 when addis would add zero.
+
+2017-08-30  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_relocate_section): When optimizing
+	__tls_get_addr call sequences to LE, don't move the addi down
+	to the nop.  Replace the bl with addi and leave the nop alone.
+
+2017-08-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_pie_finish_undefweak_symbol):
+	Re-indent.
+	* elf64-x86-64.c (elf_x86_64_finish_local_dynamic_symbol):
+	Likewise.
+	(elf_x86_64_pie_finish_undefweak_symbol): Likewise.
+
+2017-08-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* Makefile.am (BFD32_BACKENDS): Add elfxx-x86.lo.
+	(BFD64_BACKENDS): Likewise.
+	(BFD32_BACKENDS_CFILES): Add elfxx-x86.c.
+	(BFD64_BACKENDS_CFILES): Likewise.
+	* Makefile.in: Regenerated.
+	* configure.ac (bfd_backends): Add elfxx-x86.lo together with
+	elf32-i386.lo and elf64-x86-64.lo.
+	* configure: Regenerated.
+	* elf32-i386.c: Include "elfxx-x86.h" instead of "sysdep.h",
+	"bfd.h", "bfdlink.h", "libbfd.h", "elf-bfd.h", "bfd_stdint.h",
+	"objalloc.h" and "hashtab.h".
+	(ELIMINATE_COPY_RELOCS): Removed.
+	(UNDEFINED_WEAK_RESOLVED_TO_ZERO):Likewise.
+	(SYMBOL_NO_COPYRELOC): Likewise.
+	(elf_i386_link_hash_entry): Likewise.
+	(GOT_UNKNOWN): Likewise.
+	(GOT_NORMAL): Likewise.
+	(GOT_TLS_GD): Likewise.
+	(elf_i386_hash_entry): Likewise.
+	(elf_i386_obj_tdata): Likewise.
+	(elf_i386_tdata): Likewise.
+	(elf_i386_local_got_tls_type): Likewise.
+	(elf_i386_local_tlsdesc_gotent): Likewise.
+	(elf_i386_hash_table): Likewise.
+	(elf_i386_link_hash_newfunc): Likewise.
+	(elf_i386_local_htab_hash): Likewise.
+	(elf_i386_local_htab_eq): Likewise.
+	(elf_i386_get_local_sym_hash): Likewise.
+	(elf_i386_link_hash_table_free): Likewise.
+	(elf_i386_copy_indirect_symbol): Likewise.
+	(elf_i386_fixup_symbol): Likewise.
+	(elf_i386_readonly_dynrelocs): Likewise.
+	(elf_i386_always_size_sections): Likewise.
+	(elf_i386_set_tls_module_base): Likewise.
+	(elf_i386_dtpoff_base): Likewise.
+	(compare_relocs): Likewise.
+	(elf_i386_hash_symbol): Likewise.
+	(elf_i386_parse_gnu_properties): Likewise.
+	(elf_i386_merge_gnu_properties): Likewise.
+	(elf_i386_link_check_relocs): Likewise.
+	(elf_i386_merge_symbol_attribute): Likewise.
+	(bfd_elf32_bfd_link_check_relocs): Likewise.
+	(elf_backend_copy_indirect_symbol): Likewise.
+	(elf_backend_always_size_sections): Likewise.
+	(elf_backend_omit_section_dynsym): Likewise.
+	(elf_backend_hash_symbol): Likewise.
+	(elf_backend_fixup_symbol): Likewise.
+	(elf_backend_parse_gnu_properties): Likewise.
+	(elf_backend_merge_gnu_properties): Likewise.
+	(elf_backend_merge_symbol_attribute): Likewise.
+	(elf_i386_mkobject): Updated.
+	(elf_i386_link_hash_table_create): Likewise.
+	(elf_i386_check_tls_transition): Likewise.
+	(elf_i386_tls_transition): Likewise.
+	(elf_i386_convert_load_reloc): Likewise.
+	(elf_i386_check_relocs): Likewise.
+	(elf_i386_adjust_dynamic_symbol): Likewise.
+	(elf_i386_allocate_dynrelocs): Likewise.
+	(elf_i386_convert_load): Likewise.
+	(elf_i386_size_dynamic_sections): Likewise.
+	(elf_i386_relocate_section): Likewise.
+	(elf_i386_finish_dynamic_symbol ): Likewise.
+	(elf_i386_finish_dynamic_sections): Likewise.
+	(elf_i386_output_arch_local_syms): Likewise.
+	(elf_i386_get_synthetic_symtab): Likewise.
+	(elf_i386_link_setup_gnu_properties): Likewise.
+	(elf_i386_link_hash_table): Use elf_x86_link_hash_table, instead
+	of elf_link_hash_table, as base.
+	(elf_i386_next_tls_desc_index): New.
+	(elf_i386_srelplt2): Likewise.
+	(elf_i386_plt): Likewise.
+	(elf_i386_lazy_plt): Likewise.
+	(elf_i386_non_lazy_plt): Likewise.
+	* elf32-x86-64.c: Include "elfxx-x86.h" instead of "sysdep.h",
+	"bfd.h", "bfdlink.h", "libbfd.h", "elf-bfd.h", "bfd_stdint.h",
+	"objalloc.h" and "hashtab.h".
+	(ELIMINATE_COPY_RELOCS): Removed.
+	(UNDEFINED_WEAK_RESOLVED_TO_ZERO):Likewise.
+	(SYMBOL_NO_COPYRELOC): Likewise.
+	(elf_x86_64_link_hash_entry): Likewise.
+	(GOT_UNKNOWN): Likewise.
+	(GOT_NORMAL): Likewise.
+	(GOT_TLS_GD): Likewise.
+	(elf_x86_64_hash_entry): Likewise.
+	(elf_x86_64_obj_tdata): Likewise.
+	(elf_x86_64_tdata): Likewise.
+	(elf_x86_64_local_got_tls_type): Likewise.
+	(elf_x86_64_local_tlsdesc_gotent): Likewise.
+	(elf_x86_64_hash_table): Likewise.
+	(elf_x86_64_link_hash_newfunc): Likewise.
+	(elf_x86_64_local_htab_hash): Likewise.
+	(elf_x86_64_local_htab_eq): Likewise.
+	(elf_x86_64_get_local_sym_hash): Likewise.
+	(elf_x86_64_link_hash_table_free): Likewise.
+	(elf_x86_64_copy_indirect_symbol): Likewise.
+	(elf_x86_64_fixup_symbol): Likewise.
+	(elf_x86_64_readonly_dynrelocs): Likewise.
+	(elf_x86_64_always_size_sections): Likewise.
+	(elf_x86_64_set_tls_module_base): Likewise.
+	(elf_x86_64_dtpoff_base): Likewise.
+	(compare_relocs): Likewise.
+	(elf_x86_64_merge_symbol_attribute): Likewise.
+	(elf_x86_64_hash_symbol): Likewise.
+	(elf_x86_64_parse_gnu_properties): Likewise.
+	(elf_x86_64_merge_gnu_properties): Likewise.
+	(elf_x86_64_link_check_relocs): Likewise.
+	(elf_backend_copy_indirect_symbol): Likewise.
+	(elf_backend_always_size_sections): Likewise.
+	(bfd_elf64_bfd_link_check_relocs): Likewise.
+	(elf_backend_merge_symbol_attribute): Likewise.
+	(elf_backend_hash_symbol): Likewise.
+	(elf_backend_omit_section_dynsym): Likewise.
+	(elf_backend_fixup_symbol): Likewise.
+	(elf_backend_parse_gnu_properties): Likewise.
+	(elf_backend_merge_gnu_properties): Likewise.
+	(bfd_elf32_bfd_link_check_relocs): Likewise.
+	(elf_x86_64_mkobject): Updated.
+	(elf_x86_64_link_hash_table_create): Likewise.
+	(elf_x86_64_check_tls_transition): Likewise.
+	(elf_x86_64_tls_transition): Likewise.
+	(elf_x86_64_convert_load_reloc): Likewise.
+	(elf_x86_64_check_relocs): Likewise.
+	(elf_x86_64_adjust_dynamic_symbol): Likewise.
+	(elf_x86_64_allocate_dynrelocs): Likewise.
+	(elf_x86_64_convert_load): Likewise.
+	(elf_x86_64_size_dynamic_sections): Likewise.
+	(elf_x86_64_relocate_section): Likewise.
+	(elf_x86_64_finish_dynamic_symbol ): Likewise.
+	(elf_x86_64_finish_dynamic_sections): Likewise.
+	(elf_x86_64_output_arch_local_syms): Likewise.
+	(elf_x86_64_get_synthetic_symtab): Likewise.
+	(elf_x86_64_link_setup_gnu_properties): Likewise.
+	(elf_x86_64_link_hash_table): Use elf_x86_link_hash_table,
+	instead of elf_link_hash_table, as base.
+	(elf_x86_64_next_tls_desc_index): New.
+	(elf_x86_64_srelplt2): Likewise.
+	(elf_x86_64_plt): Likewise.
+	(elf_x86_64_lazy_plt): Likewise.
+	(elf_x86_64_non_lazy_plt): Likewise.
+	* elfxx-x86.c: New file.
+	* elfxx-x86.h: Likewise.
+
+2017-08-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_get_synthetic_symtab): Simplify bad
+	return.
+	* elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise.
+
+2017-08-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_get_synthetic_symtab): Check valid PLT
+	sections before checking dynamic relocations and free invalid
+	PLT section contents.
+	* elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise.
+
+2017-08-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf-bfd.h (_bfd_elf_ifunc_get_synthetic_symtab): Removed.
+	* elf-ifunc.c (_bfd_elf_ifunc_get_synthetic_symtab): Likewise.
+
+2017-08-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/22018
+	* elf32-i386.c (elf_i386_get_synthetic_symtab): Check for valid
+	PLT section size.
+	* elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise.
+
+2017-08-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_link_hash_newfunc): Initialize
+	def_protected.
+	* elf64-x86-64.c (elf_x86_64_link_hash_newfunc): Likewise.
+
+2017-08-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21997
+	* elf-bfd.h (elf_obj_tdata): Use ENUM_BITFIELD on object_id,
+	dyn_lib_class and has_gnu_symbols.  Change bad_symtab to bitfield.
+	Add a has_no_copy_on_protected bitfield.
+	(elf_has_no_copy_on_protected): New.
+	* elf-properties.c (_bfd_elf_parse_gnu_properties): Set
+	elf_has_no_copy_on_protected for GNU_PROPERTY_NO_COPY_ON_PROTECTED.
+	(elf_merge_gnu_property_list): Likewise.
+	(_bfd_elf_link_setup_gnu_properties): Set extern_protected_data
+	to FALSE for elf_has_no_copy_on_protected.
+	* elf32-i386.c (SYMBOL_NO_COPYRELOC): New.
+	(elf_i386_link_hash_entry): Add def_protected.
+	(elf_i386_adjust_dynamic_symbol): Also check SYMBOL_NO_COPYRELOC
+	when checking info->nocopyreloc.
+	(elf_i386_link_setup_gnu_properties): Don't set
+	extern_protected_data here.
+	(elf_i386_merge_symbol_attribute): New function.
+	(elf_backend_merge_symbol_attribute): New.
+	* elf64-x86-64.c (SYMBOL_NO_COPYRELOC): New.
+	(elf_x86_64_link_hash_entry): Add def_protected.
+	(elf_x86_64_need_pic): Report protected symbol for def_protected.
+	(elf_x86_64_adjust_dynamic_symbol): Also check SYMBOL_NO_COPYRELOC
+	when checking info->nocopyreloc.
+	(elf_x86_64_relocate_section): Also check for R_X86_64_PC32
+	relocation run-time overflow and unresolvable R_X86_64_32S
+	relocation against protected data symbol defined in shared object
+	with GNU_PROPERTY_NO_COPY_ON_PROTECTED.
+	(elf_x86_64_link_setup_gnu_properties): Don't set
+	extern_protected_data here.
+	(elf_x86_64_merge_symbol_attribute): New function.
+	(elf_backend_merge_symbol_attribute): New.
+
+2017-08-26  Alan Modra  <amodra@gmail.com>
+
+	* elf32-ppc.c (must_be_dyn_reloc): Use bfd_link_dll.  Comment.
+	(ppc_elf_check_relocs): Only set DF_STATIC_TLS in shared libs.
+	(ppc_elf_relocate_section): Comment fix.
+	* elf64-ppc.c (must_be_dyn_reloc): Use bfd_link_dll.  Comment.
+	(ppc64_elf_check_relocs): Only set DF_STATIC_TLS in shared libs.
+	Support dynamic relocs for TPREL16 when non-pic too.
+	(dec_dynrel_count): Adjust TPREL16 handling as per check_relocs.
+	(ppc64_elf_relocate_section): Support dynamic relocs for TPREL16
+	when non-pic too.
+
+2017-08-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_link_hash_entry): Remove redundant
+	"symbol" in comments.
+	* elf64-x86-64.c (elf_x86_64_link_hash_entry): Likewise.
+
+2017-08-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/22001
+	* elf64-x86-64.c (elf_x86_64_relocate_section): Check for
+	R_X86_64_PC32 relocation run-time overflow and unresolvable
+	R_X86_64_32S relocation with -z nocopyreloc.
+
+2017-08-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_check_relocs): Revert the last change.
+	Undefined symbols may not have a type.
+	* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+
+2017-08-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf64-x86-64.c (elf_x86_64_need_pic): Add an argument for
+	bfd_link_info.  Report shared, PIE or PDE object based on
+	bfd_link_info.
+	(elf_x86_64_check_relocs): Update elf_x86_64_need_pic call.
+	(elf_x86_64_relocate_section): Likewise.
+
+2017-08-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_check_relocs): Increment PLT count only
+	for function symbols.
+	* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+
+2017-08-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_link_setup_gnu_properties): Set
+	extern_protected_data to FALSE if GNU_PROPERTY_NO_COPY_ON_PROTECTED
+	is set on any input relocatable file.
+	* elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Likewise.
+
+2017-08-23  Alan Modra  <amodra@gmail.com>
+
+	PR 21988
+	* elf64-ppc.c (ensure_undef_dynamic): Rename from
+	ensure_undefweak_dynamic.  Handle undefined too.
+	* elf32-ppc.c (ensure_undef_dynamic): Likewise.
+	* elf32-hppa.c (ensure_undef_dynamic): Likewise.
+	(allocate_dynrelocs): Discard undefined non-default visibility
+	relocs first.  Make undefined syms dynamic.  Tidy goto.
+
+2017-08-21  Alan Modra  <amodra@gmail.com>
+	    H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21964
+	* elf-bfd.h (SYMBOLIC_BIND): Return TRUE for __start/__stop symbols.
+	* elflink.c (bfd_elf_define_start_stop): Rewrite.
+
+2017-08-21  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	PR ld/20125
+	* elf64-mmix.c (mmix_elf_relax_section): Correct handling of
+	undefined weak symbols.
+
+2017-08-18  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21962
+	* tekhex.c (getsym): Fix check for source pointer walking off the
+	end of the input buffer.
+
+2017-08-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	PR ld/18808
+	* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Skip IFUNC
+	relocations in debug sections, change abort to _bfd_error_handler.
+
+2017-08-14  Nick Clifton  <nickc@redhat.com>
+
+	PR 21957
+	* elf.c (setup_group): Check for an empty or very small group
+	section.
+	* po/bfd.pot: Regenerate.
+
+2017-08-14  Alan Modra  <amodra@gmail.com>
+
+	PR 21441
+	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't add
+	alignment padding here.
+	* elflink.c (bfd_elf_discard_info): Add .eh_frame padding here
+	in a reverse pass over sections.
+
+2017-08-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/21943
+	* elf32-i386.c (elf_i386_get_synthetic_symtab): Allocate space
+	for @plt suffixes first.
+	* elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise.
+
+2017-08-08  Nick Clifton  <nickc@redhat.com>
+
+	PR 21916
+	* elf-attrs.c (_bfd_elf_parse_attributes): Complain about very
+	small section lengths.
+	* elf.c (_bfd_elf_setup_sections): Skip empty entries in the group
+	table.
+	(elfcore_grok_freebsd_prstatus): Add checks to make sure that
+	there is enough data present in the note.
+
+2017-08-08  Alan Modra  <amodra@gmail.com>
+
+	PR 21017
+	* elf32-microblaze.c (microblaze_elf_check_relocs): Don't bump
+	got.refcount for GOTOFF relocs, just create .got section.
+
+2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elflink.c (elf_link_add_object_symbols): Move common symbol
+	check after bed->common_definition.
+
+2017-08-07  Alan Modra  <amodra@gmail.com>
+
+	PR 21910
+	* elflink.c (bfd_elf_final_link): Don't segfault when sections
+	needed to define various dynamic tags have been discarded.
+
+2017-08-07  Nick Clifton  <nickc@redhat.com>
+
+	PR 21884
+	* elf32-i386.c (elf_i386_link_setup_gnu_properties): If the dynobj
+	has not been set then use the bfd returned by
+	_bfd_elf_link_setup_gnu_properties.  If that is null then search
+	through all the input bfds selecting the first normal, ELF format
+	one.
+	* elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Likewise.
+
+2017-08-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_link_hash_entry): Change tls_get_addr
+	to 1 bit.
+	(elf_i386_link_hash_newfunc): Initialize tls_get_addr to 0.
+	(elf_i386_check_tls_transition): Check tls_get_addr directly.
+	(elf_i386_convert_load_reloc): Update tls_get_addr check.
+	(elf_i386_link_check_relocs): New function.
+	(bfd_elf32_bfd_link_check_relocs): New.
+	* elf64-x86-64.c (elf_x86_64_link_hash_entry): Change tls_get_addr
+	to 1 bit.
+	(elf_x86_64_link_hash_newfunc): Initialize tls_get_addr to 0.
+	(elf_x86_64_check_tls_transition): Check tls_get_addr directly.
+	(elf_x86_64_convert_load_reloc): Update tls_get_addr check.
+	(elf_x86_64_link_check_relocs): New function.
+	(bfd_elf64_bfd_link_check_relocs): New.
+	(bfd_elf32_bfd_link_check_relocs): Likewise.
+
+2017-08-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21903:
+	* elflink.c (elf_link_add_object_symbols): Treat common symbol
+	as undefined for --no-define-common.
+
+2017-08-05  Alan Modra  <amodra@gmail.com>
+
+	* elf32-hppa.c (elf32_hppa_set_gp): Don't require an
+	hppa_link_hash_table.
+
+2017-08-02  Max Filippov  <jcmvbkbc@gmail.com>
+
+	* xtensa-isa.c (xtensa_isa_init): Don't update lookup table
+	entries for sysregs with negative indices.
+
+2017-08-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+	* elf32-s390.c (elf_s390_finish_dynamic_sections): Skip if it
+	isn't the S/390 specific elf data.
+	* elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise.
+
+2017-07-31  Kuan-Lin Chen  <rufus@andestech.com>
+
+	* elfxx-riscv.c (riscv_elf_add_sub_reloc): New function.
+	* (howto_table) [R_RISCV_ADD8]: Use riscv_elf_add_sub_reloc.
+	[R_RISCV_ADD16]: Likewise.
+	[R_RISCV_ADD32]: Likewise.
+	[R_RISCV_ADD64]: Likewise.
+	[R_RISCV_SUB6]: Likewise.
+	[R_RISCV_SUB8]: Likewise.
+	[R_RISCV_SUB16]: Likewise.
+	[R_RISCV_SUB32]: Likewise.
+	[R_RISCV_SUB64]: Likewise.
+
+2017-07-31  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_tls_setup): Warn on --plt-localentry
+	without ld.so checks.
+
+2017-07-29  Alan Modra  <amodra@gmail.com>
+
+	PR 21847
+	* elf64-ppc.c (struct ppc_link_hash_entry): Add non_zero_localentry.
+	(ppc64_elf_merge_symbol): Set non_zero_localentry.
+	(is_elfv2_localentry0): Test non_zero_localentry.
+	(ppc64_elf_tls_setup): Default to --no-plt-localentry.
+
+2017-07-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+	* elf32-s390.c (elf_s390_finish_dynamic_sections): Add NULL
+	pointer check for htab->elf.irelplt.
+	* elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise.
+
+2017-07-27  Nick Clifton  <nickc@redhat.com>
+
+	PR 21840
+	* mach-o.c (bfd_mach_o_read_symtab_strtab): Fail if the symtab
+	size is -1.
+	* nlmcode.h (nlm_swap_auxiliary_headers_in): Replace assertion
+	with error return.
+	* section.c (bfd_make_section_with_flags): Fail if the name or bfd
+	are NULL.
+	* vms-alpha.c (bfd_make_section_with_flags): Correct computation
+	of end pointer.
+	(evax_bfd_print_emh): Check for invalid string lengths.
+
+2017-07-25  Nick Clifton  <nickc@redhat.com>
+
+	* po/fr.po: Updated French translation.
+
+2017-07-25  Benjamin Green  <bengreen5mx@gmail.com>
+
+	PR 21824
+	* elf32-msp430.c (msp430_elf_relax_section): Allow conversion of
+	16-bit absolute branches into 10-bit pc-relative branches on the
+	MSP430 as well as the MSP430X.
+
+2017-07-25  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (struct map_stub): Add tls_get_addr_opt_bctrl.
+	(stub_eh_frame_size): New function.
+	(ppc_size_one_stub): Set group tls_get_addr_opt_bctrl.
+	(group_sections): Init group tls_get_addr_opt_bctrl.
+	(ppc64_elf_size_stubs): Update sizing and initialization of
+	.eh_frame.  Iteration over stubs via group list.
+	(ppc64_elf_build_stubs): Iterate over stubs via group list.
+	(ppc64_elf_finish_dynamic_sections): Update finalization of
+	.eh_frame.
+
+2017-07-24  Nick Clifton  <nickc@redhat.com>
+
+	PR 21813
+	* mach-o.c (bfd_mach_o_canonicalize_relocs): Pass the base address
+	of the relocs to the canonicalize_one_reloc routine.
+	* mach-o.h (struct bfd_mach_o_backend_data): Update the prototype
+	for the _bfd_mach_o_canonicalize_one_reloc field.
+	* mach-o-arm.c (bfd_mach_o_arm_canonicalize_one_reloc): Add
+	res_base parameter.  Use to check for corrupt pair relocs.
+	* mach-o-aarch64.c (bfd_mach_o_arm64_canonicalize_one_reloc):
+	Likewise.
+	* mach-o-i386.c (bfd_mach_o_i386_canonicalize_one_reloc):
+	Likewise.
+	* mach-o-x86-64.c (bfd_mach_o_x86_64_canonicalize_one_reloc):
+	Likewise.
+
+	* vms-alpha.c (_bfd_vms_slurp_eihd): Make sure that there is
+	enough data in the record before attempting to parse it.
+	(_bfd_vms_slurp_eeom): Likewise.
+
+	(_bfd_vms_slurp_egsd): Check for an invalid section index.
+	(image_set_ptr): Likewise.
+	(alpha_vms_slurp_relocs): Likewise.
+
+	(alpha_vms_object_p): Check for a truncated record.
+
+2017-07-24  Nick Clifton  <nickc@redhat.com>
+
+	PR 21803
+	* reloc.c (_bfd_unrecognized_reloc): New function.  Reports
+	an unrecognized reloc and sets the bfd_error value.
+	* libbfd.h: Regenerate.
+	* elf32-arm.c (elf32_arm_final_link_relocate): Use the new
+	function.
+	* elf32-i386.c (elf_i386_relocate_section): Likewise.
+	* elf32-tilepro.c (tilepro_elf_relocate_section): Likewise.
+	* elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
+	* elfnn-aarch64.c (elfNN_aarch64_relocate_section): Likewise.
+	* elfxx-tilegx.c (tilegx_elf_relocate_section): Likewise.
+
+2017-07-23  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_size_stubs): Correct advance to
+	restore of LR.
+
+2017-07-19  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	PR ld/18841
+	* elfnn-aarch64.c (elfNN_aarch64_reloc_type_class): Return
+	reloc_class_ifunc for ifunc symbols.
+
+2017-07-19  Nick Clifton  <nickc@redhat.com>
+
+	PR 21787
+	* archive.c (bfd_generic_archive_p): If the bfd does not have the
+	correct magic bytes at the start, set the error to wrong format
+	and clear the format selector before returning NULL.
+
+2017-07-19  Nick Clifton  <nickc@redhat.com>
+
+	PR 21786
+	* coff-rs6000.c (_bfd_strntol): New function.
+	(_bfd_strntoll): New function.
+	(GET_VALUE_IN_FIELD): New macro.
+	(EQ_VALUE_IN_FIELD): new macro.
+	(_bfd_xcoff_slurp_armap): Use new macros.
+	(_bfd_xcoff_archive_p): Likewise.
+	(_bfd_xcoff_read_ar_hdr): Likewise.
+	(_bfd_xcoff_openr_next_archived_file): Likewise.
+	(_bfd_xcoff_stat_arch_elt): Likewise.
+	* coff64-rs6000.c (_bfd_strntol): New function.
+	(_bfd_strntoll): New function.
+	(GET_VALUE_IN_FIELD): New macro.
+	(xcoff64_slurp_armap): Use new macros.
+
+2017-07-19  Claudiu Zissulescu  <claziss@synopsys.com>
+	    John Eric Martin  <John.Martin@emmicro-us.com>
+
+	* bfd-in2.h: Regenerate.
+	* libbfd.h: Regenerate.
+	* elf32-arc.c (JLI): Define.
+	* reloc.c: Add JLI relocations.
+
+2017-07-18  Nick Clifton  <nickc@redhat.com>
+
+	PR 21775
+	* coff-sh.c: Fix spelling typos.
+	* compress.c: Likewise.
+	* cpu-pdp11.c: Likewise.
+	* ecofflink.c: Likewise.
+	* elf-m10300.c: Likewise.
+	* elf.c: Likewise.
+	* elf32-arm.c: Likewise.
+	* elf32-m68k.c: Likewise.
+	* elf32-nds32.c: Likewise.
+	* elf32-ppc.c: Likewise.
+	* elf32-sh.c: Likewise.
+	* elf32-v850.c: Likewise.
+	* elf64-ppc.c: Likewise.
+	* elf64-x86-64.c: Likewise.
+	* elflink.c: Likewise.
+	* elfnn-aarch64.c: Likewise.
+	* elfxx-mips.c: Likewise.
+	* som.c: Likewise.
+	* sunos.c: Likewise.
+	* vms-alpha.c: Likewise.
+	* xcofflink.c: Likewise.
+
+2017-07-18  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21781
+	* coffcode.h (handle_COMDAT): Replace abort with an error message
+	and return.
+
+2017-07-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21782
+	* elf64-x86-64.c (elf_x86_64_relocate_section): Limit PIC check
+	to shared library.
+
+2017-07-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf64-x86-64.c (elf_x86_64_relocate_section): Re-indent.
+
+2017-07-16  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_relocate_section): Don't optimize
+	__tls_index GOT entries when using __tls_get_addr_opt stub.
+	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+
+2017-07-12  Alan Modra  <amodra@gmail.com>
+
+	* po/es.po: Update from translationproject.org/latest/bfd/.
+	* po/fi.po: Likewise.
+	* po/fr.po: Likewise.
+	* po/id.po: Likewise.
+	* po/ja.po: Likewise.
+	* po/ro.po: Likewise.
+	* po/ru.po: Likewise.
+	* po/sr.po: Likewise.
+	* po/sv.po: Likewise.
+	* po/tr.po: Likewise.
+	* po/uk.po: Likewise.
+	* po/vi.po: Likewise.
+	* po/zh_CN.po: Likewise.
+	* po/hr.po: New file from translationproject.org.
+	* configure.ac (ALL_LINGUAS): Add hr.  Sort.
+	* configure: Regenerate.
+
+2017-07-12  Nick Clifton  <nickc@redhat.com>
+
+	Fix compile time warnings using gcc 7.1.1.
+	* elf32-xtensa.c (elf_xtensa_get_plt_section): Increase length of
+	plt_name buffer.
+	(elf_xtensa_get_gotplt_section): Increase length of got_name
+	buffer.
+	* mach-o-arm.c (bfd_mach_o_arm_canonicalize_one_reloc): Add a
+	default return of FALSE.
+	* mach-o-i386.c (bfd_mach_o_i386_canonicalize_one_reloc): Add a
+	default return of FALSE.
+
+2017-07-12  Alan Modra  <amodra@gmail.com>
+
+	* binary.c (binary_set_section_contents): Don't print filepos in
+	error message.
+	(coff_write_object_contents): Cast size_t for error message.
+	(coff_slurp_line_table): Don't use bfd_vma symndx.
+	(coff_slurp_reloc_table): Remove unneeded cast.
+	* dwarf2.c (read_section): Cast bfd_int64_t to long long for
+	error message.
+	(find_abstract_instance_name): Likewise.
+	* elf32-arm.c (arm_type_of_stub): Correct error arg order.
+	(bfd_elf32_arm_stm32l4xx_erratum_scan): Don't cast error arg.
+	(elf32_arm_check_relocs): Make r_symndx an int.
+	* elf32-cris.c (cris_elf_check_relocs): Delete extraneous %s in
+	format string.
+	* elf32-metag.c (elf_metag_relocate_section): Delete extra error
+	message arg.
+	* elf32-nds32.c (nds32_elf_ex9_build_hash_table): Rewrite bogus
+	error message.
+	* elf32-i386.c (elf_i386_check_relocs): Make r_symndx an int.
+	* elf32-s390.c (elf_s390_check_relocs): Likewise.
+	* elf32-tic6x.c (elf32_tic6x_check_relocs): Likewise.
+	* elf32-tilepro.c (tilepro_elf_check_relocs): Likewise.
+	* elf32-xtensa.c (elf_xtensa_check_relocs): Likewise.
+	* elf64-s390.c (elf_s390_check_relocs): Likewise.
+	* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+	* elfnn-aarch64.c (elfNN_aarch64_check_relocs): Likewise.
+	* elfnn-riscv.c (riscv_elf_check_relocs): Likewise.
+	* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise.
+	* elfxx-tilegx.c (tilegx_elf_check_relocs): Likewise.
+	* elf64-mmix.c (_bfd_mmix_after_linker_allocation): Cast size_t args
+	and use %lu for error message.
+	* elflink.c (elf_link_adjust_relocs): Delete extra error message arg.
+	* mmo.c (mmo_scan): Make stab_loc a file_ptr.  Cast expression for
+	error message.
+
+	* elf32-arm.c (elf32_arm_tls_relax): Correct format string and args
+	in error message.
+	(elf32_arm_final_link_relocate): Likewise.
+	* coff-arm.c (bfd_arm_process_before_allocation): Likewise.
+	* coffcode.h (styp_to_sec_flags): Likewise.
+	* cofflink.c (_bfd_coff_write_global_sym): Likewise.
+	* ecoff.c (_bfd_ecoff_slurp_symbol_table): Likewise.
+	* elf32-arc.c (arc_elf_merge_private_bfd_data): Likewise.
+	* elf32-bfin.c (bfinfdpic_check_relocs): Likewise.
+	(elf32_bfin_merge_private_bfd_data): Likewise.
+	* elf32-cris.c (cris_elf_relocate_section): Likewise.
+	* elf32-frv.c (frv_elf_merge_private_bfd_data): Likewise.
+	* elf32-i370.c (i370_elf_merge_private_bfd_data): Likewise.
+	(i370_elf_relocate_section): Likewise.
+	* elf32-iq2000.c (iq2000_elf_merge_private_bfd_data): Likewise.
+	* elf32-m32c.c (m32c_elf_merge_private_bfd_data): Likewise.
+	* elf32-m68hc1x.c (_bfd_m68hc11_elf_merge_private_bfd_data): Likewise.
+	* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
+	* elf32-mep.c (mep_elf_merge_private_bfd_data): Likewise.
+	* elf32-mt.c (mt_elf_merge_private_bfd_data): Likewise.
+	* elf64-sparc.c (elf64_sparc_merge_private_bfd_data): Likewise.
+	* elfxx-mips.c (mips_elf_merge_obj_e_flags): Likewise.
+	(_bfd_mips_elf_merge_private_bfd_data): Likewise.
+	* ieee.c (ieee_write_id, read_id): Likewise.
+	* mach-o.c (bfd_mach_o_write_contents): Likewise.
+	(bfd_mach_o_layout_commands, bfd_mach_o_read_section_32): Likewise.
+	(bfd_mach_o_read_section_64, bfd_mach_o_read_symtab_symbol): Likewise.
+	(bfd_mach_o_read_command, bfd_mach_o_header_p): Likewise.
+	* peXXigen.c (_bfd_XXi_swap_aouthdr_in): Likewise.
+	* stabs.c (_bfd_link_section_stabs): Likewise.
+
+	* coff-arm.c (coff_arm_relocate_section): Use L modifier in error
+	format.
+	* coff-mcore.c (coff_mcore_relocate_section): Likewise.
+	* coff-ppc.c (coff_ppc_relocate_section): Likewise.
+	* coff-rs6000.c (xcoff_reloc_type_toc): Likewise.
+	* coff-sh.c (sh_relax_section): Likewise.
+	(sh_relax_delete_bytes, sh_swap_insns): Likewise.
+	* coff-tic80.c (coff_tic80_relocate_section): Likewise.
+	* coffcode.h (coff_slurp_reloc_table): Likewise.
+	* coffgen.c (_bfd_coff_get_external_symbols): Likewise.
+	(_bfd_coff_read_string_table): Likewise.
+	* cofflink.c (_bfd_coff_generic_relocate_section): Likewise.
+	* compress.c (bfd_get_full_section_contents): Likewise.
+	* dwarf2.c (read_formatted_entries, decode_line_info): Likewise.
+	* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
+	* elf.c (bfd_elf_string_from_elf_section): Likewise.
+	* elf32-arc.c (arc_special_overflow_checks): Likewise.
+	* elf32-arm.c (elf32_arm_tls_relax): Likewise.
+	(elf32_arm_final_link_relocate, elf32_arm_relocate_section): Likewise.
+	(elf32_arm_write_section): Likewise.
+	* elf32-bfin.c (bfin_relocate_section): Likewise.
+	(bfinfdpic_relocate_section): Likewise.
+	* elf32-hppa.c (hppa_build_one_stub): Likewise.
+	(final_link_relocate, elf32_hppa_relocate_section): Likewise.
+	* elf32-i386.c (elf_i386_tls_transition): Likewise.
+	(elf_i386_relocate_section): Likewise.
+	* elf32-ip2k.c (ip2k_final_link_relocate): Likewise.
+	* elf32-lm32.c (lm32_elf_finish_dynamic_sections): Likewise.
+	* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
+	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
+	* elf32-metag.c (elf_metag_relocate_section): Likewise.
+	* elf32-nds32.c (unrecognized_reloc_msg): Likewise.
+	(nds32_elf_relax_longcall1, nds32_elf_relax_longcall2): Likewise.
+	(nds32_elf_relax_longcall3, nds32_elf_relax_longjump1): Likewise.
+	(nds32_elf_relax_longjump2, nds32_elf_relax_longjump3): Likewise.
+	(nds32_elf_relax_longcall4, nds32_elf_relax_longcall5): Likewise.
+	(nds32_elf_relax_longcall6, nds32_elf_relax_longjump4): Likewise.
+	(nds32_elf_relax_longjump5, nds32_elf_relax_longjump6): Likewise.
+	(nds32_elf_relax_longjump7, nds32_elf_relax_loadstore): Likewise.
+	(nds32_elf_relax_ptr, nds32_elf_ex9_build_hash_table): Likewise.
+	* elf32-nios2.c (nios2_elf32_relocate_section): Likewise.
+	* elf32-rx.c (UNSAFE_FOR_PID): Likewise.
+	* elf32-s390.c (invalid_tls_insn, elf_s390_relocate_section): Likewise.
+	* elf32-score.c (s3_bfd_score_elf_check_relocs): Likewise.
+	* elf32-score7.c (s7_bfd_score_elf_check_relocs): Likewise.
+	* elf32-sh.c (sh_elf_relax_section): Likewise.
+	(sh_elf_relax_delete_bytes, sh_elf_swap_insns): Likewise.
+	(sh_elf_relocate_section): Likewise.
+	* elf32-sh64.c (shmedia_prepare_reloc): Likewise.
+	* elf32-spu.c (spu_elf_relocate_section): Likewise.
+	* elf32-tic6x.c (elf32_tic6x_relocate_section): Likewise.
+	* elf32-tilepro.c (tilepro_elf_relocate_section): Likewise.
+	* elf32-v850.c (v850_elf_relax_section): Likewise.
+	* elf32-vax.c (elf_vax_check_relocs): Likewise.
+	(elf_vax_relocate_section): Likewise.
+	* elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
+	(extend_ebb_bounds_forward, extend_ebb_bounds_backward): Likewise.
+	(compute_text_actions, compute_ebb_proposed_actions): Likewise.
+	(do_fix_for_relocatable_link): Likewise.
+	* elf64-alpha.c (elf64_alpha_relax_got_load): Likewise.
+	(elf64_alpha_relax_with_lituse): Likewise.
+	* elf64-hppa.c (elf64_hppa_finish_dynamic_symbol): Likewise.
+	(elf_hppa_final_link_relocate): Likewise.
+	* elf64-ia64-vms.c (elf64_ia64_relax_section): Likewise.
+	(elf64_ia64_choose_gp, elf64_ia64_relocate_section): Likewise.
+	(elf64_vms_link_add_object_symbols): Likewise.
+	* elf64-mmix.c (mmix_elf_perform_relocation): Likewise.
+	(mmix_final_link_relocate): Likewise.
+	* elf64-s390.c (invalid_tls_insn): Likewise.
+	(elf_s390_relocate_section): Likewise.
+	* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
+	* elf64-x86-64.c (elf_x86_64_tls_transition): Likewise.
+	(elf_x86_64_relocate_section): Likewise.
+	* elfcode.h (elf_slurp_symbol_table): Likewise.
+	* elfcore.h (elf_core_file_p): Likewise.
+	* elflink.c (elf_link_read_relocs_from_section): Likewise.
+	* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Likewise.
+	(elfNN_aarch64_relocate_section): Likewise.
+	* elfnn-ia64.c (elfNN_ia64_relax_section): Likewise.
+	(elfNN_ia64_choose_gp, elfNN_ia64_relocate_section): Likewise.
+	* elfnn-riscv.c (riscv_elf_relocate_section): Likewise.
+	* elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise.
+	(_bfd_mips_elf_relocate_section): Likewise.
+	(_bfd_mips_elf_finish_dynamic_symbol, mips_finish_exec_plt): Likewise.
+	* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Likewise.
+	* elfxx-tilegx.c (tilegx_elf_relocate_section): Likewise.
+	* ieee.c (ieee_slurp_external_symbols): Likewise.
+	* ihex.c (ihex_write_object_content): Likewise.
+	* mach-o.c (bfd_mach_o_build_exec_seg_command): Likewise.
+	* merge.c (_bfd_merged_section_offset): Likewise.
+	* mmo.c (mmo_write_loc_chunk): Likewise.
+	(mmo_write_object_contents): Likewise.
+	* peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Likewise.
+	* stabs.c (_bfd_link_section_stabs): Likewise.
+	* xcofflink.c (xcoff_link_add_symbols, xcoff_find_tc0): Likewise.
+
+2017-07-11  Alan Modra  <amodra@gmail.com>
+
+	* elf32-ppc.c (ppc_elf_relocate_section): Fix typo.
+
+2017-07-11  Alan Modra  <amodra@gmail.com>
+
+	* elf32-ppc.c (ppc_elf_relocate_section): Emit "unexpected
+	instruction" error using _bfd_error_handler, not einfo.
+
+2017-07-10  Nick Clifton  <nickc@redhat.com>
+
+	* coffcode.h (coff_slurp_symbol_table): Do not include an entry
+	for C_AIX_WEAKEXT if it has the same value as C_WEAKEXT.
+
+2017-07-07  John Baldwin  <jhb@FreeBSD.org>
+
+	* elf.c (elfcore_grok_freebsd_note): Handle NT_FREEBSD_PTLWPINFO.
+
+2017-07-07  Alan Modra  <amodra@gmail.com>
+
+	* coffcode.h (coff_slurp_symbol_table): Handle C_AIX_WEAKEXT.
+
+2017-07-07  Alan Modra  <amodra@gmail.com>
+
+	* bfd.c (_doprnt): Replace "L" with "ll" when printing bfd_vma
+	as long long.  Move code replacing "ll" with "I64", and simplify.
+
+2017-07-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* bfd.c (_doprnt): Convert 'L' to 'l' when setting wide_width
+	to 1.
+
+2017-07-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* dwarf2.c (line_info_add_include_dir_stub): Replace time with
+	xtime.
+	(line_info_add_file_name): Likewise.
+	(decode_line_info): Likewise.
+
+2017-07-04  Tristan Gingold  <gingold@adacore.com>
+
+	* version.m4: Bump version to 2.29.51
+	* configure: Regenerate.
+
+2017-07-04  Jiong Wang  <jiong.wang@arm.com>
+
+	* elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Remove the
+	sanity check at the head of this function.
+
+2017-07-04  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* dwarf2.c (struct dwarf2_debug): Add fields dwarf_line_str_buffer and
+	dwarf_line_str_size.
+	(struct attr_abbrev): Add field implicit_const.
+	(dwarf_debug_sections): Add .debug_line_str.
+	(enum dwarf_debug_section_enum): Add debug_line_str and debug_max.
+	(dwarf_debug_section_assert): Add static assertion.
+	(read_indirect_line_string): New.
+	(read_abbrevs): Support DW_FORM_implicit_const.
+	(is_str_attr): Support DW_FORM_line_strp.
+	(read_attribute_value): Support DW_FORM_line_strp and
+	DW_FORM_implicit_const.
+	(read_attribute): Support DW_FORM_implicit_const.
+	(line_info_add_include_dir, line_info_add_include_dir_stub):
+	(line_info_add_file_name, read_formatted_entries): New.
+	(decode_line_info, parse_comp_unit): Support DWARF 5.
+	(_bfd_dwarf2_cleanup_debug_info): Free dwarf_line_str_buffer.
+
+2017-07-03  Egeyar Bagcioglu  <egeyar.bagcioglu@oracle.com>
+
+	* elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Remove the
+	abort statement that was put for symbols that are not dynamic.
+
+2017-07-03  Tristan Gingold  <gingold@adacore.com>
+
+	* po/bfd.pot: Regenerate
+
+2017-07-03  Alan Modra  <amodra@gmail.com>
+
+	* bfd.c (_doprnt): Rewrite "ll" and "L" modifiers to "I64" for
+	__MSVCRT__.  Support "L" modifier for bfd_vma.  Formatting.
+	* elf.c (setup_group): Use "Lx" to print sh_size.
+	(_bfd_elf_setup_sections): Remove unnecessary cast and print
+	unknown section type in hex.
+	(copy_special_section_fields): Style fix.
+	(bfd_section_from_shdr): Correct format for sh_link.  Use a
+	common error message for all the variants of unrecognized
+	section types.
+	(assign_file_positions_for_load_sections): Use "Lx" for lma
+	adjust error message.
+	(assign_file_positions_for_non_load_sections): Formatting.
+	(rewrite_elf_program_header): Formatting.  Use "Lx" for
+	bfd_vma values in error messages.
+	* elfcode.h (elf_slurp_reloc_table_from_section): Cast
+	ELF_R_SYM value to type expected by format.
+	* elflink.c (elf_link_read_relocs_from_section): Use "Lx"
+	in error messages.
+	(elf_link_add_object_symbols): Use "Lu" for symbol sizes.
+	(elf_link_input_bfd): Use "Lx" for r_info.
+	(bfd_elf_gc_record_vtinherit): Use "Lx" for offset.
+
+2017-07-03  Alan Modra  <amodra@gmail.com>
+
+	* bfd.c (bfd_scan_vma): Don't use long long unless HAVE_LONG_LONG.
+	* coff-rs6000.c (FMT20): Handle hosts with 64-bit long and
+	Microsoft C library variant of long long format specifier.
+	(PRINT20): Cast value to bfd_uint64_t not long long.
+	* coffcode.h (coff_print_aux): Use BFD_VMA_FMT.
+	* coff-x86_64.c (coff_amd64_reloc): Use bfd_uint64_t rather than
+	long long.  Don't cast to bfd_vma.
+	* elf32-score.c (score3_bfd_getl48): Likewise.
+	* vms-alpha.c (_bfd_vms_slurp_eisd): Likewise.
+
+2017-07-03  Alan Modra  <amodra@gmail.com>
+
+	* elf.c (_bfd_elf_print_private_bfd_data): Use BFD_VMA_FMT to
+	print d_tag.
+	(bfd_elf_print_symbol): Don't cast symbol->flags.
+	(_bfd_elf_symbol_from_bfd_symbol): Likewise.
+	* elf32-ppc.c (ppc_elf_begin_write_processing): Correct
+	_bfd_error_handler argument order.
+	(ppc_elf_merge_private_bfd_data): Don't cast flags.
+
+2017-07-03  Alan Modra  <amodra@gmail.com>
+
+	* configure.ac: Invoke AC_CHECK_TYPES for long long.  Invoke
+	AC_TYPE_LONG_DOUBLE.
+	* configure: Regenerate.
+	* config.in: Regenerate.
+
+2017-06-29  Andrew Waterman  <andrew@sifive.com>
+
+	* elfnn-riscv.c (riscv_elf_adjust_dynamic_symbol): Fix TLS copy
+	relocs.
+
+2017-06-29  Egeyar Bagcioglu  <egeyar.bagcioglu@oracle.com>
+
+	* elfxx-sparc.c (allocate_dynrelocs): Don't make a symbol dynamic
+	unless it is undefined weak.
+	* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Set the flag
+	relative_reloc to direct non-dynamic symbols to R_SPARC_RELATIVE
+	relocation.
+	* elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): If symbol
+	is not dynamic in PIC, abort.
+
+2017-06-29  Jiong Wang  <jiong.wang@arm.com>
+
+	PR ld/21402
+	* elfnn-aarch64.c (elfNN_aarch64_allocate_dynrelocs): Only make
+	undefined weak symbols into dynamic.
+	(elfNN_aarch64_final_link_relocate): Generate runtime RELATIVE
+	relocation for non-dynamic symbols.
+	(elfNN_aarch64_finish_dynamic_symbol): Add sanity check.
+
+2017-06-29  Jiong Wang  <jiong.wang@arm.com>
+
+	* elfnn-aarch64.c (aarch64_relocation_aginst_gp_p): New function.
+	(elfNN_aarch64_final_link_relocate): Delete duplicated code for
+	BFD_RELOC_AARCH64_LD64_GOTOFF_LO15, BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC,
+	BFD_RELOC_AARCH64_MOVW_GOTOFF_G1.
+	* elfxx-aarch64.c (_bfd_aarch64_elf_resolve_relocation): Optimize the
+	support for them.
+
+2017-06-29  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* elf-bfd.h (elfcore_write_s390_gs_cb): Add prototype.
+	(elfcore_write_s390_gs_bc): Likewise.
+	* elf.c (elfcore_grok_s390_gs_cb): New function.
+	(elfcore_grok_s390_gs_bc): New function.
+	(elfcore_grok_note): Call them.
+	(elfcore_write_s390_gs_cb): New function.
+	(elfcore_write_s390_gs_bc): New function.
+	(elfcore_write_register_note): Call them.
+
+2017-06-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* libbfd.c (_bfd_generic_get_section_contents): Don't call
+	bfd_get_file_size.  Check archive element size.
+	(_bfd_generic_get_section_contents_in_window): Likewise.
+
+2017-06-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* bfd-in2.h: Regenerated.
+	* bfdio.c (bfd_get_size): Change return type to ufile_ptr.
+	(bfd_get_file_size): Likewise.
+
+2017-06-28  Maciej W. Rozycki  <macro@imgtec.com>
+	    Matthew Fortune  <matthew.fortune@imgtec.com>
+
+	* archures.c (bfd_mach_mips_interaptiv_mr2): New macro.
+	* cpu-mips.c (I_interaptiv_mr2): New enum value.
+	(arch_info_struct): Add "mips:interaptiv-mr2" entry.
+	* elfxx-mips.c (_bfd_elf_mips_mach) <E_MIPS_MACH_IAMR2>: New
+	case.
+	(mips_set_isa_flags) <bfd_mach_mips_interaptiv_mr2>: Likewise.
+	(bfd_mips_isa_ext) <bfd_mach_mips_interaptiv_mr2>: Likewise.
+	(print_mips_isa_ext) <AFL_EXT_INTERAPTIV_MR2>: Likewise.
+	(mips_mach_extensions): Add `bfd_mach_mipsisa32r3' and
+	`bfd_mach_mips_interaptiv_mr2' entries.
+	* bfd-in2.h: Regenerate.
+
+2017-06-27  Nick Clifton  <nickc@redhat.com>
+
+	* tekhex.c (pass_over): Revert accidental conversion of a local
+	array to a static array.
+
+2017-06-27  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
+
+	PR ld/13402
+	* elf32-avr.c (elf32_avr_adjust_diff_reloc_value): Adjust
+	reloc addend if necessary. Adjust diff only if
+	shrinked_insn_address < end_address.
+
+2017-06-27  Alan Modra  <amodra@gmail.com>
+
+	PR binutils/21665
+	* libbfd.c (_bfd_generic_get_section_contents): Warning fix.
+	(_bfd_generic_get_section_contents_in_window): Likewise.
+
+2017-06-26  Kuan-Lin Chen  <rufus@andestech.com>
+
+	* elfnn-riscv.c (perform_relocation): Support the new
+	R_RISCV_32_PCREL relocation.
+	(riscv_elf_relocate_section): Likewise.
+	* elfxx-riscv.c (howto_table): Likewise.
+	(riscv_reloc_map): Likewise.
+	* bfd-in2.h (BFD_RELOC_RISCV_32_PCREL): New relocation.
+	* libbfd.h: Regenerate.
+
+2017-06-27  Alan Modra  <amodra@gmail.com>
+
+	PR binutils/21665
+	* libbfd.c (_bfd_generic_get_section_contents): Delete abort.
+	Use unsigned file pointer type, and remove cast.
+	* libbfd.c (_bfd_generic_get_section_contents_in_window): Likewise.
+	Add "count", not "sz".
+
+2017-06-26  Pedro Alves  <palves@redhat.com>
+
+	PR binutils/21665
+	* libbfd.c (_bfd_generic_get_section_contents): Add "count", not
+	"sz".
+
+2017-06-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/21665
+	* libbfd.c (_bfd_generic_get_section_contents_in_window): Add
+	a missing line.
+
+2017-06-26  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* cpu-mips.c (arch_info_struct): Mark the 4010 32-bit.
+	* elfxx-mips.c (mips_set_isa_flags) <bfd_mach_mips4010>: Set
+	E_MIPS_ARCH_2 rather than E_MIPS_ARCH_3 in `e_flags'.
+	(mips_mach_extensions): Mark `bfd_mach_mips4010' as extending
+	`bfd_mach_mips6000' rather than `bfd_mach_mips4000'.
+
+2017-06-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/21665
+	* compress.c (bfd_get_full_section_contents): Don't check the
+	file size here.
+	* libbfd.c (_bfd_generic_get_section_contents): Check for and
+	reject a section whose size + offset is greater than the size
+	of the entire file.
+	(_bfd_generic_get_section_contents_in_window): Likewise.
+
+2017-06-26  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21670
+	* tekhex.c (getvalue): Check for the source pointer exceeding the
+	end pointer before the first byte is read.
+
+2017-06-26  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21665
+	* opncls.c (get_build_id): Check that the section is big enough
+	to contain the whole note.
+	* compress.c (bfd_get_full_section_contents): Check for and reject
+	a section whose size is greater than the size of the entire file.
+	* elf32-v850.c (v850_elf_copy_notes): Allow for the ouput to not
+	contain a notes section.
+
+2017-06-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+	* elf64-s390.c (elf_s390_additional_program_headers): Add NULL
+	pointer checks.
+	(elf_s390_modify_segment_map): Likewise.
+	(bfd_elf_s390_set_options): Lisewise.
+
+2017-06-26  Alan Modra  <amodra@gmail.com>
+
+	* elflink.c (_bfd_elf_link_create_dynstrtab): Don't make dynobj
+	a --just-syms bfd.
+	(_bfd_elf_size_group_sections): Skip --just-syms bfds.
+	(bfd_elf_size_dynamic_sections): Ignore .note.GNU-stack and
+	.preinit_array on --just-syms bfds.
+	(_bfd_elf_gc_mark_extra_sections): Skip --just-syms bfds.
+	(elf_gc_sweep, bfd_elf_parse_eh_frame_entries): Likewise.
+	(bfd_elf_gc_sections, bfd_elf_discard_info): Likewise.
+
+2017-06-25  Sergei Trofimovich  <slyfox@gentoo.org>
+
+	* elf.c (find_link): Bounds check "hint".
+
+2017-06-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+	* elf32-arm.c (using_thumb_only): Update list of architectures in
+	BFD_ASSERT for which the logic is valid.
+	(using_thumb2_bl): Likewise.
+	(using_thumb2): Likewise and return true for ARMv8-R.
+	(arch_has_arm_nop): Likewise.
+	(tag_cpu_arch_combine): New v8r table for ARMv8-R Tag_CPU_arch
+	merging logic.  Update commentis for value 15 of v8m_baseline,
+	v8m_mainline and v4t_plus_v6_m arrays.  Use v8r array to decide
+	merging of value 15 of Tag_CPU_arch.
+
+2017-06-23  Jiong Wang  <jiong.wang@arm.com>
+
+	* reloc.c (BFD_RELOC_AARCH64_ADR_GOTPAGE): Rename to
+	BFD_RELOC_AARCH64_ADR_GOT_PAGE
+	* bfd-in2.h: Regenerate.
+
+2017-06-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Move
+	the error_alignment label forward.  Properly align program
+	property note section.
+
+2017-06-22  Eric Christopher  <echristo@gmail.com>
+
+	* elf32-arm.c (elf32_arm_final_link_relocate): Use labs rather than
+	abs to fix a truncation warning.
+
+2017-06-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Resolve
+	local undefined weak symbol to 0.
+	* elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Likewise.
+
+2017-06-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_merge_gnu_properties): If info->shstk
+	is set, turn on GNU_PROPERTY_X86_FEATURE_1_SHSTK.
+	(elf_i386_link_setup_gnu_properties): If info->shstk is set,
+	turn on GNU_PROPERTY_X86_FEATURE_1_IBT.
+	* elf64-x86-64.c (elf_x86_64_merge_gnu_properties): If
+	info->shstk is set, turn on GNU_PROPERTY_X86_FEATURE_1_SHSTK.
+	(elf_x86_64_link_setup_gnu_properties): If info->shstk is set,
+	turn on GNU_PROPERTY_X86_FEATURE_1_IBT.
+
+2017-06-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_lazy_ibt_plt0_entry): New.
+	(elf_i386_lazy_ibt_plt_entry): Likewise.
+	(elf_i386_pic_lazy_ibt_plt0_entry): Likewise.
+	(elf_i386_non_lazy_ibt_plt_entry): Likewise.
+	(elf_i386_pic_non_lazy_ibt_plt_entry): Likewise.
+	(elf_i386_eh_frame_lazy_ibt_plt): Likewise.
+	(elf_i386_lazy_plt_layout): Likewise.
+	(elf_i386_non_lazy_plt_layout): Likewise.
+	(elf_i386_link_hash_entry): Add plt_second.
+	(elf_i386_link_hash_table): Add plt_second and
+	plt_second_eh_frame.
+	(elf_i386_allocate_dynrelocs): Use the second PLT if needed.
+	(elf_i386_size_dynamic_sections): Use .plt.got unwind info for
+	the second PLT.  Check the second PLT.
+	(elf_i386_relocate_section): Use the second PLT to resolve
+	PLT reference if needed.
+	(elf_i386_finish_dynamic_symbol): Fill and use the second PLT if
+	needed.
+	(elf_i386_finish_dynamic_sections): Set sh_entsize on the
+	second PLT.  Generate unwind info for the second PLT.
+	(elf_i386_plt_type): Add plt_second.
+	(elf_i386_get_synthetic_symtab): Support the second PLT.
+	(elf_i386_parse_gnu_properties): Support
+	GNU_PROPERTY_X86_FEATURE_1_AND.
+	(elf_i386_merge_gnu_properties): Support
+	GNU_PROPERTY_X86_FEATURE_1_AND.  If info->ibt is set, turn
+	on GNU_PROPERTY_X86_FEATURE_1_IBT
+	(elf_i386_link_setup_gnu_properties): If info->ibt is set,
+	turn on GNU_PROPERTY_X86_FEATURE_1_IBT.  Use IBT-enabled PLT
+	for info->ibtplt, info->ibt or GNU_PROPERTY_X86_FEATURE_1_IBT
+	is set on all relocatable inputs.
+	* elf64-x86-64.c (elf_x86_64_lazy_ibt_plt_entry): New.
+	(elf_x32_lazy_ibt_plt_entry): Likewise.
+	(elf_x86_64_non_lazy_ibt_plt_entry): Likewise.
+	(elf_x32_non_lazy_ibt_plt_entry): Likewise.
+	(elf_x86_64_eh_frame_lazy_ibt_plt): Likewise.
+	(elf_x32_eh_frame_lazy_ibt_plt): Likewise.
+	(elf_x86_64_lazy_ibt_plt): Likewise.
+	(elf_x32_lazy_ibt_plt): Likewise.
+	(elf_x86_64_non_lazy_ibt_plt): Likewise.
+	(elf_x32_non_lazy_ibt_plt): Likewise.
+	(elf_x86_64_get_synthetic_symtab): Support the second PLT.
+	(elf_x86_64_parse_gnu_properties): Support
+	GNU_PROPERTY_X86_FEATURE_1_AND.
+	(elf_x86_64_merge_gnu_properties): Support
+	GNU_PROPERTY_X86_FEATURE_1_AND.  If info->ibt is set, turn
+	on GNU_PROPERTY_X86_FEATURE_1_IBT
+	(elf_x86_64_link_setup_gnu_properties): If info->ibt is set,
+	turn on GNU_PROPERTY_X86_FEATURE_1_IBT.  Use IBT-enabled PLT
+	for info->ibtplt, info->ibt or GNU_PROPERTY_X86_FEATURE_1_IBT
+	is set on all relocatable inputs.
+
+2017-06-22  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21649
+	* som.c (setup_sections): NUL terminate the space_strings buffer.
+	Check that the space.name field does not index beyond the end of
+	the space_strings buffer.
+
+2017-06-21  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21646
+	* coff-sh.c (sh_reloc): Check for an out of range reloc.
+
+2017-06-21  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21639
+	* vms-misc.c (_bfd_vms_save_sized_string): Use unsigned int as
+	type of the size parameter.
+	(_bfd_vms_save_counted_string): Add second parameter - the maximum
+	length of the counted string.
+	* vms.h (_bfd_vms_save_sized_string): Update prototype.
+	(_bfd_vms_save_counted_string): Likewise.
+	* vms-alpha.c (_bfd_vms_slurp_eisd): Update calls to
+	_bfd_vms_save_counted_string.
+	(_bfd_vms_slurp_ehdr): Likewise.
+	(_bfd_vms_slurp_egsd): Likewise.
+	(Parse_module): Likewise.
+
+2017-06-21  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_size_stubs): Test for localentry:0 plt
+	calls before tocsave calls.
+	(ppc64_elf_relocate_section): Allow localentry:0 plt calls without
+	following nop.
+
+2017-06-21  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21645
+	* reloc.c (bfd_generic_get_relocated_section_contents): Fail if
+	bfd_get_full_section_contents returns no contents.
+
+2017-06-21  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21638
+	* vms-alpha.c (_bfd_vms_slurp_egsd): Check for an undersized
+	record.
+
+2017-06-21  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21637
+	* vms-alpha.c (_bfd_vms_slurp_egsd): Check for an empty section
+	list.
+	(image_set_ptr): Likewise.
+	(alpha_vms_fix_sec_rel): Likewise.
+	(alpha_vms_slurp_relocs): Likewise.
+
+2017-06-21  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21633
+	* ieee.c (ieee_slurp_sections): Check for a NULL return from
+	read_id.
+	(ieee_archive_p): Likewise.
+	(ieee_object_p): Likewise.
+
+2017-06-21  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21640
+	* elf.c (setup_group): Zero the group section pointer list after
+	allocation so that loops can be caught.  Check for NULL pointers
+	when processing a group list.
+
+2017-06-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+	* elf-s390.h: New file.
+	* elf64-s390.c (struct elf_s390_link_hash_table): Add params
+	field.
+	(elf_s390_additional_program_headers): New function.
+	(elf_s390_modify_segment_map): New function.
+	(bfd_elf_s390_set_options): New function.
+	(elf_backend_additional_program_headers)
+	(elf_backend_modify_segment_map): Add macro definitions.
+
+2017-06-19  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21626
+	* elf-properties.c (_bfd_elf_link_setup_gnu_properties): Check
+	the DYNAMIC bit instead of bfd_count_sections.
+
+2017-06-19  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21618
+	* vms-alpha.c (evax_bfd_print_emh): Check for insufficient record
+	length.
+	(evax_bfd_print_eeom): Likewise.
+	(evax_bfd_print_egsd): Check for an overlarge record length.
+	(evax_bfd_print_etir): Likewise.
+
+2017-06-19  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21612
+	* libieee.h (struct common_header_type): Add end_p field.
+	* ieee.c (this_byte_and_next): Do not advance input_p beyond
+	end_p.
+	(read_id): Check for a length that exceeds the remaining bytes in
+	the input buffer.
+	(ieee_seek): Initialise end_p.
+	(ieee_archive_p): Likewise.
+	(ieee_object_p): Likewise.
+
+2017-06-19  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21611
+	* vms-alpha.c (_bfd_vms_slurp_eihs): Check for invalid offset
+	before reading the EIHS structure entries.
+
+2017-06-19  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21615
+	* vms-alpha.c (_bfd_vms_slurp_egsd): Use unsigned int for
+	gsd_size.  Check that there are enough bytes remaining to read the
+	type and size of the next egsd.  Check that the size of the egsd
+	does not exceed the size of the record.
+
+2017-06-19  Alan Modra  <amodra@gmail.com>
+
+	* config.bfd: Correct targ_underscore for cris.
+
+2017-06-18  Alan Modra  <amodra@gmail.com>
+
+	* config.bfd: Correct targ_underscore for epiphany, ip2k,
+	m32c, mn10200, pru, rl78, rx, crisv32 and v850.
+
+2017-06-16  Nick Clifton  <nickc@redhat.com>
+
+	* elflink.c (bfd_elf_size_dynsym_hash_dynstr): Do not fail if the
+	bucketlist is empty because there are no symbols to add to the
+	list.
+
+2017-06-16  Alan Modra  <amodra@gmail.com>
+
+	PR ld/20022
+	PR ld/21557
+	PR ld/21562
+	PR ld/21571
+	* targets.c (struct bfd_target): Add _bfd_define_start_stop.
+	(BFD_JUMP_TABLE_LINK): Likewise.
+	* elf-bfd.h (bfd_elf_define_start_stop): Declare.
+	* elflink.c (_bfd_elf_gc_mark_rsec): Update comment.
+	(bfd_elf_define_start_stop): New function.
+	* linker.c (bfd_generic_define_start_stop): New function.
+	* coff64-rs6000.c (rs6000_xcoff64_vec, rs6000_xcoff64_aix_vec): Init
+	new field.
+	* aout-adobe.c (aout_32_bfd_define_start_stop): Define.
+	* aout-target.h (MY_bfd_define_start_stop): Define.
+	* aout-tic30.c (MY_bfd_define_start_stop): Define.
+	* binary.c (binary_bfd_define_start_stop): Define.
+	* bout.c (b_out_bfd_define_start_stop): Define.
+	* coff-alpha.c (_bfd_ecoff_bfd_define_start_stop): Define.
+	* coff-mips.c (_bfd_ecoff_bfd_define_start_stop): Define.
+	* coff-rs6000.c (_bfd_xcoff_bfd_define_start_stop): Define.
+	* coffcode.h (coff_bfd_define_start_stop): Define.
+	* elfxx-target.h (bfd_elfNN_bfd_define_start_stop): Define.
+	* i386msdos.c (msdos_bfd_define_start_stop): Define.
+	* i386os9k.c (os9k_bfd_define_start_stop): Define.
+	* ieee.c (ieee_bfd_define_start_stop): Define.
+	* ihex.c (ihex_bfd_define_start_stop): Define.
+	* libbfd-in.h (_bfd_nolink_bfd_define_start_stop): Define.
+	* mach-o-target.c (bfd_mach_o_bfd_define_start_stop): Define.
+	* mmo.c (mmo_bfd_define_start_stop): Define.
+	* nlm-target.h (nlm_bfd_define_start_stop): Define.
+	* oasys.c (oasys_bfd_define_start_stop): Define.
+	* pef.c (bfd_pef_bfd_define_start_stop): Define.
+	* plugin.c (bfd_plugin_bfd_define_start_stop): Define.
+	* ppcboot.c (ppcboot_bfd_define_start_stop): Define.
+	* som.c (som_bfd_define_start_stop): Define.
+	* srec.c (srec_bfd_define_start_stop): Define.
+	* tekhex.c (tekhex_bfd_define_start_stop): Define.
+	* versados.c (versados_bfd_define_start_stop): Define.
+	* vms-alpha.c (vms_bfd_define_start_stop): Define.
+	(alpha_vms_bfd_define_start_stop): Define.
+	* xsym.c (bfd_sym_bfd_define_start_stop): Define.
+	* bfd-in2.h: Regenerate.
+	* libbfd.h: Regenerate.
+
+2017-06-16  Jiong Wang  <jiong.wang@arm.com>
+
+	* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use
+	SYMBOL_REFERENCES_LOCAL.
+
+2017-06-15  Jiong Wang  <jiong.wang@arm.com>
+
+	PR ld/21532
+	* elfnn-aarch64.c (ELIMINATE_COPY_RELOCS): Set to 1.
+	(elfNN_aarch64_final_link_relocate): Also propagate relocations to
+	runtime for if there needs copy relocation elimination.
+	(need_copy_relocation_p): New function.  Return true for symbol with
+	pc-relative references and if it's against read-only sections.
+	(elfNN_aarch64_adjust_dynamic_symbol): Use need_copy_relocation_p.
+	(elfNN_aarch64_check_relocs): Allocate dynrelocs for relocation types
+	that are related with accessing external objects.
+	(elfNN_aarch64_gc_sweep_hook): Sync the relocation types with the change
+	in elfNN_aarch64_check_relocs.
+
+2017-06-15  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21582
+	* ieee.c (ieee_object_p): Use a static buffer to avoid compiler
+	bugs.
+	PR binutils/21581
+	(ieee_archive_p): Likewise.
+
+2017-06-15  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21579
+	* vms-alpha.c (_bfd_vms_slurp_etir): Extend check of cmd_length.
+
+2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
+
+	* elf32-xtensa.c (elf_xtensa_be_plt_entry,
+	elf_xtensa_le_plt_entry): Add dimension for the ABI to arrays,
+	keep both windowed and call0 ABI PLT definitions.
+	(elf_xtensa_create_plt_entry): Use selected ABI to choose upper
+	elf_xtensa_*_plt_entry endex.
+	(ELF_MAXPAGESIZE): Fix at minimal supported MMU page size.
+
+2017-06-14  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21578
+	* elf32-sh.c (sh_elf_set_mach_from_flags): Fix check for invalid
+	flag value.
+
+2017-06-14  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21589
+	* vms-alpha.c (_bfd_vms_get_value): Add an extra parameter - the
+	maximum value for the ascic pointer.  Check that name processing
+	does not read beyond this value.
+	(_bfd_vms_slurp_etir): Add checks for attempts to read beyond the
+	end of etir record.
+
+2017-06-14  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21591
+	* versados.c (versados_mkobject): Zero the allocated tdata structure.
+	(process_otr): Check for an invalid offset in the otr structure.
+
+2017-06-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+	* config.bfd (epiphany-*-elf): Accept epiphany-*-*.
+
+2017-06-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/20022
+	PR ld/21557
+	PR ld/21562
+	PR ld/21571
+	* elf-bfd.h (elf_link_hash_entry): Add start_stop.  Change the
+	vtable field to a union.
+	(_bfd_elf_is_start_stop): Removed.
+	* elf32-i386.c (elf_i386_convert_load_reloc): Also check for
+	__start_SECNAME and __stop_SECNAME symbols.
+	* elf64-x86-64.c (elf_x86_64_convert_load_reloc): Likewise.
+	* elflink.c (_bfd_elf_is_start_stop): Removed.
+	(_bfd_elf_gc_mark_rsec): Check start_stop instead of calling
+	_bfd_elf_is_start_stop.
+	(elf_gc_propagate_vtable_entries_used): Skip __start_SECNAME and
+	__stop_SECNAME symbols.  Updated.
+	(elf_gc_smash_unused_vtentry_relocs): Likewise.
+	(bfd_elf_gc_record_vtinherit): Likewise.
+	(bfd_elf_gc_record_vtentry): Likewise.
+
+2017-06-13  Nick Clifton  <nickc@redhat.com>
+
+	PR ld/21524
+	* elflink.c (elf_link_adjust_relocs): Generate an error when
+	encountering a reloc against a symbol removed by garbage
+	collection.
+
+2017-06-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf-bfd.h (elf_backend_data): Add struct bfd_link_info *
+	to merge_gnu_properties.
+	* elf-properties.c (elf_merge_gnu_properties): Add struct
+	bfd_link_info * and pass it to merge_gnu_properties.
+	(elf_merge_gnu_property_list): Add struct bfd_link_info *
+	and pass it to elf_merge_gnu_properties.
+	(_bfd_elf_link_setup_gnu_properties): Pass info to
+	elf_merge_gnu_property_list.
+	* elf32-i386.c (elf_i386_merge_gnu_properties): Add struct
+	bfd_link_info *.
+	* elf64-x86-64.c (elf_x86_64_merge_gnu_properties): Likewise.
+
+2017-06-11  Joe Zbiciak  <joe.zbiciak@leftturnonly.info>
+
+	PR 21564
+	* binary.c (binary_set_section_contents): Scale lma by octets
+	per byte to set filepos.
+
+2017-06-08  Cupertino Miranda  <cmiranda@synopsys.com>
+
+	* elf32-arc.c (elf_arc_check_relocs): Fixed conditions to generate
+	dynamic sections.
+
+2017-06-08  Cupertino Miranda  <cmiranda@synopsys.com>
+
+	* elf32-arc.c (elf_arc_size_dynamic_sections): Changed condition to
+	require TEXTREL.
+
+2017-06-08  Cupertino Miranda  <cmiranda@synopsys.com>
+
+	* arc-got.h (relocate_fix_got_relocs_for_got_info): Added TCB_SIZE to
+	patched section contents for TLS IE reloc.
+	* elf32-arc.c: Remove TCB_SIZE preprocessor macro.
+
+2017-06-08  Cupertino Miranda  <cmiranda@synopsys.com>
+
+	* elf32-arc.c (elf_arc_relocate_section): Added "call" to
+	RELOC_FOR_GLOBAL_SYMBOL macro.
+
+2018-06-08  Cupertino Miranda  <cmiranda@synopsys.com>
+
+	* elf32-arc.c (elf_arc_relocate_section): Small refactor and condition
+	changes.
+
+2017-06-08  Cupertino Miranda  <cmiranda@synopsys.com>
+
+	* config/tc-arc.c (md_undefined_symbol): Changed.
+	* config/tc-arc.h (DYNAMIC_STRUCT_NAME): Removed.
+
+2017-06-08  Cupertino Miranda  <cmiranda@synopsys.com>
+
+	* elf32-arc.c (elf_arc_relocate_section): Fixed reassign of indirect
+	symbols.
+
+2017-06-08  Cupertino Miranda  <cmiranda@synopsys.com>
+
+	* elf32-arc.c (elf_arc_check_relocs): Added condition to disable
+	warning and "Bad value" for local symbols ARC_32 or ARC_32_ME relocs.
+
+2017-06-08  Cupertino Miranda  <cmiranda@synopsys.com>
+
+	* elf32-arc.c (ADD_RELA): Changed to only work when dynamic
+	object is created.
+
+2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
+
+	* elf32-arm.c (elf32_arm_merge_eabi_attributes): Remove assertion
+	that the input bfd has Tag_FP_ARCH non-zero if Tag_ABI_HardFP_use
+	is non-zero.  Add clarifying comments.
+
+2017-06-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_check_relocs): Set local IFUNC symbol
+	name.  Use local IFUNC symbol name string to report unsupported
+	non-PIC call to IFUNC function.
+	(elf_i386_relocate_section): Dump local IFUNC name with minfo
+	when generating R_386_IRELATIVE relocation.
+	(elf_i386_finish_dynamic_symbol): Likewise.
+	* elf_x86_64_check_relocs (elf_x86_64_check_relocs): Set local
+	IFUNC symbol name.
+	(elf_x86_64_relocate_section): Dump local IFUNC name with minfo
+	when generating R_X86_64_IRELATIVE relocation.
+	(elf_x86_64_finish_dynamic_symbol): Likewise.
+
+2017-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* elf.c (setup_group): Make sure BFD sections are created for all
+	group sections in the input file when processing SHF_GROUP
+	sections.
+	(bfd_section_from_shdr): Avoid duplicating logic already
+	implemented in `setup_group'.
+
+2017-06-06  Daniel Bonniot de Ruisselet  <bonniot@gmail.com>
+
+	PR binutils/21546
+	* peXXigen.c (pe_print_idata): Use the address of the first thunk
+	if the hint address is zero.
+
+2017-06-06  James Clarke  <jrtc27@jrtc27.com>
+
+	PR ld/19579
+	* elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Check
+	ELF_COMMON_DEF_P for common symbols.
+
+2017-06-06  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* elf.c (_bfd_elf_make_section_from_shdr): Don't initially mark
+	SEC_GROUP sections as SEC_EXCLUDE.
+	(bfd_elf_set_group_contents): Replace use of abort with an assert.
+	(assign_section_numbers): Use resolve_section_groups flag instead
+	of relocatable link type.
+	(_bfd_elf_init_private_section_data): Use resolve_section_groups
+	flag instead of checking the final_link flag for part of the
+	checks in here.  Fix white space as a result.
+	* elflink.c (elf_link_input_bfd): Use resolve_section_groups flag
+	instead of relocatable link type.
+	(bfd_elf_final_link): Likewise.
+
+2017-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* elfxx-mips.c (_bfd_mips_elf_relocate_section): Remove unused
+	variable `bed'.
+	* elf32-score.c (score_elf_final_link_relocate): Likewise.
+	(s3_bfd_score_elf_check_relocs): Likewise.
+	* elf32-score7.c (s7_bfd_score_elf_relocate_section): Likewise.
+	(score_elf_final_link_relocate): Likewise.
+	(s7_bfd_score_elf_check_relocs): Likewise.
+
+2017-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* elflink.c (init_reloc_cookie_rels): Remove unused variable
+	`bed'.
+
+2017-06-06  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elf-bfd.h (RELOC_AGAINST_DISCARDED_SECTION): Subtract `count'
+	from `reloc_count' rather than decrementing it.
+	* elf.c (bfd_section_from_shdr): Multiply the adjustment to
+	`reloc_count' by `int_rels_per_ext_rel'.
+	* elf32-score.c (score_elf_final_link_relocate): Do not multiply
+	`reloc_count' by `int_rels_per_ext_rel' for last relocation
+	entry determination.
+	(s3_bfd_score_elf_check_relocs): Likewise.
+	* elf32-score7.c (score_elf_final_link_relocate): Likewise.
+	(s7_bfd_score_elf_relocate_section): Likewise.
+	(s7_bfd_score_elf_check_relocs): Likewise.
+	* elf64-mips.c (mips_elf64_get_reloc_upper_bound): Remove
+	prototype and function.
+	(mips_elf64_slurp_one_reloc_table): Do not update `reloc_count'.
+	(mips_elf64_slurp_reloc_table): Assert that `reloc_count' is
+	triple rather than once the sum of REL and RELA relocation entry
+	counts.
+	(bfd_elf64_get_reloc_upper_bound): Remove macro.
+	* elflink.c (_bfd_elf_link_read_relocs): Do not multiply
+	`reloc_count' by `int_rels_per_ext_rel' for internal relocation
+	storage allocation size determination.
+	(elf_link_input_bfd): Multiply `.ctors' and `.dtors' section's
+	size by `int_rels_per_ext_rel'.  Do not multiply `reloc_count'
+	by `int_rels_per_ext_rel' for last relocation entry
+	determination.
+	(bfd_elf_final_link): Do not multiply `reloc_count' by
+	`int_rels_per_ext_rel' for internal relocation storage
+	allocation size determination.
+	(init_reloc_cookie_rels): Do not multiply `reloc_count' by
+	`int_rels_per_ext_rel' for last relocation entry determination.
+	(elf_gc_smash_unused_vtentry_relocs): Likewise.
+	* elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise.
+	(_bfd_mips_elf_relocate_section): Likewise.
+
+2017-06-05  Alan Modra  <amodra@gmail.com>
+
+	PR 21529
+	* linker.c (_bfd_generic_link_output_symbols): Handle BSF_GNU_UNIQUE.
+
+2017-06-01  John Baldwin  <jhb@FreeBSD.org>
+
+	* elf.c (elfcore_grok_freebsd_psinfo): Use ELF header class to
+	determine structure sizes.
+	(elfcore_grok_freebsd_prstatus): Likewise.
+
+2017-06-01  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (struct ppc_link_hash_table): Add has_plt_localentry0.
+	(ppc64_elf_merge_symbol_attribute): Merge localentry bits from
+	dynamic objects.
+	(is_elfv2_localentry0): New function.
+	(ppc64_elf_tls_setup): Default params->plt_localentry0.
+	(plt_stub_size): Adjust size for tls_get_addr_opt stub.
+	(build_tls_get_addr_stub): Use a simpler stub when r2 is not saved.
+	(ppc64_elf_size_stubs): Leave stub_type as ppc_stub_plt_call for
+	optimized localentry:0 stubs.
+	(ppc64_elf_build_stubs): Save r2 in ELFv2 __glink_PLTresolve.
+	(ppc64_elf_relocate_section): Leave nop unchanged for optimized
+	localentry:0 stubs.
+	(ppc64_elf_finish_dynamic_sections): Set PPC64_OPT_LOCALENTRY in
+	DT_PPC64_OPT.
+	* elf64-ppc.h (struct ppc64_elf_params): Add plt_localentry0.
+
+2017-05-30  Casey Smith  <clegg89@gmail.com>
+
+	PR ld/21523
+	* elf32-arm.c (elf32_arm_final_link_relocate): Install an absolute
+	value when processing the R_ARM_THM_ALU_PREL_11_0 reloc.
+
+2017-05-30  Anton Kolesov  Anton.Kolesov@synopsys.com
+
+	* cpu-arc.c (arc_compatible): New function.
+
+2017-05-30  Anton Kolesov  <anton.kolesov@synopsys.com>
+
+	* cpu-arc.c (arch_info_struct): Remove duplicate ARC600 entry.
+
+2017-05-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/21519
+	* bfdio.c (bfd_get_file_size): New function.
+	* bfd-in2.h: Regenerated.
+
+2017-05-23  Dilian Palauzov  <git-dpa@aegee.org>
+
+	* elf32-arc.c (arc_elf_merge_attributes): Add fall through
+	comments.
+
+2017-05-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Use
+	dynobj instead of htab->elf.dynobj.
+
+2017-05-19  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elf64-mips.c (mips_elf64_canonicalize_reloc): Remove prototype
+	and function.
+	(mips_elf64_canonicalize_dynamic_reloc): Likewise.
+	(mips_elf64_slurp_one_reloc_table): Set `reloc_count' to the
+	actual number of internal relocations retrieved.  Adjust
+	function description.
+	(bfd_elf64_canonicalize_reloc): Remove macro.
+	(bfd_elf64_canonicalize_dynamic_reloc): Likewise.
+
+2017-05-19  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* archures.c (bfd_mach_sparc_v9m8): Define.
+	(bfd_mach_sparc_v8plusm8): Likewise.
+	(bfd_mach_sparc_v9_p): Adjust to M8.
+	(bfd_mach_sparc_64bit_p): Likewise.
+	* aoutx.h (machine_type): Handle bfd_mach_sparc_v9m8 and
+	bfd_mach_sparc_v8plusm8.
+	* bfd-in2.h: Regenerated.
+	* cpu-sparc.c (arch_info_struct): Entries for sparc:v9m8 and
+	sparc:v8plusm8.
+	* elfxx-sparc.c (_bfd_sparc_elf_object_p): Handle
+	bfd_mach_sparc_v8plusm8 and bfd_mach_sparc_v9m8 using the new hw
+	capabilities ONADDSUB, ONMUL, ONDIV, DICTUNP, FPCPSHL, RLE and
+	SHA3.
+	* elf32-sparc.c (elf32_sparc_final_write_processing): Handle
+	bfd_mach_sparc_v8plusm8.
+
+2017-05-19  Alan Modra  <amodra@gmail.com>
+
+	* elflink.c (_bfd_elf_gc_mark_extra_sections): Don't keep
+	debug and special sections when no non-note alloc sections in an
+	object are kept.
+
+2017-05-18  Alan Modra  <amodra@gmail.com>
+
+	* arc-got.h: Don't compare boolean values against TRUE or FALSE.
+	* elf-m10300.c: Likewise.
+	* elf.c: Likewise.
+	* elf32-arc.c: Likewise.
+	* elf32-bfin.c: Likewise.
+	* elf32-m68k.c: Likewise.
+	* elf32-nds32.c: Likewise.
+	* elf32-tilepro.c: Likewise.
+	* elflink.c: Likewise.
+	* elfnn-aarch64.c: Likewise.
+	* elfnn-riscv.c: Likewise.
+	* elfxx-tilegx.c: Likewise.
+	* mach-o.c: Likewise.
+	* peXXigen.c: Likewise.
+	* vms-alpha.c: Likewise.
+	* vms-lib.c: Likewise.
+
+2017-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/20882
+	* elflink.c (elf_gc_mark_debug_section): New function.
+	(_bfd_elf_gc_mark_extra_sections): Mark any debug sections
+	referenced by kept debug sections.
+
+2017-05-16  Alan Modra  <amodra@gmail.com>
+
+	* elf-m10300.c: Rename occurrences of non_ir_ref.
+	* elf32-arm.c: Likewise.
+	* elf32-bfin.c: Likewise.
+	* elf32-cr16.c: Likewise.
+	* elf32-cris.c: Likewise.
+	* elf32-d10v.c: Likewise.
+	* elf32-dlx.c: Likewise.
+	* elf32-fr30.c: Likewise.
+	* elf32-frv.c: Likewise.
+	* elf32-hppa.c: Likewise.
+	* elf32-i370.c: Likewise.
+	* elf32-i386.c: Likewise.
+	* elf32-iq2000.c: Likewise.
+	* elf32-lm32.c: Likewise.
+	* elf32-m32c.c: Likewise.
+	* elf32-m32r.c: Likewise.
+	* elf32-m68hc1x.c: Likewise.
+	* elf32-m68k.c: Likewise.
+	* elf32-mcore.c: Likewise.
+	* elf32-metag.c: Likewise.
+	* elf32-microblaze.c: Likewise.
+	* elf32-moxie.c: Likewise.
+	* elf32-msp430.c: Likewise.
+	* elf32-mt.c: Likewise.
+	* elf32-nios2.c: Likewise.
+	* elf32-or1k.c: Likewise.
+	* elf32-ppc.c: Likewise.
+	* elf32-rl78.c: Likewise.
+	* elf32-s390.c: Likewise.
+	* elf32-score.c: Likewise.
+	* elf32-score7.c: Likewise.
+	* elf32-sh.c: Likewise.
+	* elf32-tic6x.c: Likewise.
+	* elf32-tilepro.c: Likewise.
+	* elf32-v850.c: Likewise.
+	* elf32-vax.c: Likewise.
+	* elf32-xstormy16.c: Likewise.
+	* elf32-xtensa.c: Likewise.
+	* elf64-alpha.c: Likewise.
+	* elf64-hppa.c: Likewise.
+	* elf64-ia64-vms.c: Likewise.
+	* elf64-mmix.c: Likewise.
+	* elf64-ppc.c: Likewise.
+	* elf64-s390.c: Likewise.
+	* elf64-sh64.c: Likewise.
+	* elf64-x86-64.c: Likewise.
+	* elflink.c: Likewise.
+	* elfnn-aarch64.c: Likewise.
+	* elfnn-ia64.c: Likewise.
+	* elfnn-riscv.c: Likewise.
+	* elfxx-mips.c: Likewise.
+	* elfxx-sparc.c: Likewise.
+	* elfxx-tilegx.c: Likewise.
+	* linker.c: Likewise.
+
+2017-05-16  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (add_symbol_adjust): Transfer non_ir_ref_dynamic.
+	* elflink.c (elf_link_add_object_symbols): Update to use
+	non_ir_ref_dynamic.
+	(elf_link_input_bfd): Test non_ir_ref_dynamic in addition to
+	non_ir_ref.
+	* linker.c (_bfd_generic_link_add_one_symbol): Likewise.
+
+2017-05-15  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elfxx-mips.c (print_mips_ases): Handle MIPS16e2 ASE.
+
+2017-05-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_parse_gnu_properties): Merge
+	GNU_PROPERTY_X86_ISA_1_USED and GNU_PROPERTY_X86_ISA_1_NEEDED
+	properties.
+	* elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise.
+
+2017-05-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf64-x86-64.c (elf_x86_64_link_hash_entry): Rename plt_bnd
+	to plt_second.
+	(elf_x86_64_link_hash_table): Rename plt_bnd/plt_bnd_eh_frame
+	to plt_second/plt_second_eh_frame.
+	(elf_x86_64_link_hash_newfunc): Updated.
+	(elf_x86_64_allocate_dynrelocs): Likewise.
+	(elf_x86_64_size_dynamic_sections): Likewise.
+	(elf_x86_64_relocate_section): Likewise.
+	(elf_x86_64_finish_dynamic_symbol): Likewise.
+	(elf_x86_64_finish_dynamic_sections): Likewise.
+	(elf_x86_64_plt_type): Rename plt_bnd to plt_second.
+	(elf_x86_64_get_synthetic_symtab): Updated.  Also scan the
+	.plt.sec section.
+	(elf_backend_setup_gnu_properties): Updated.  Create the
+	.plt.sec section instead of the .plt.sec section.
+
+2017-05-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_allocate_dynrelocs): Partially revert
+	commit 25070364b0ce33eed46aa5d78ebebbec6accec7e.
+	* elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewse.
+
+2017-05-10  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* elf64-sparc.c (elf64_sparc_set_reloc): New function.
+	(bfd_elf64_set_reloc): Define.
+	(elf64_sparc_write_relocs): Use `canon_reloc_count'.
+
+2017-05-10  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* targets.c (BFD_JUMP_TABLE_RELOCS): Add NAME##_set_reloc.
+	(struct bfd_target): New field _bfd_set_reloc.
+	* bfd.c (bfd_set_reloc): Call backend _set_bfd.
+	* reloc.c (_bfd_generic_set_reloc): New function.
+	* coffcode.h (coff_set_reloc): Define to _bfd_generic_set_reloc.
+	* nlm-target.h (nlm_set_reloc): Likewise.
+	* coff-rs6000.c (_bfd_xcoff_set_reloc): Likewise.
+	* aout-tic30.c (MY_set_reloc): Likewise.
+	* aout-target.h (MY_set_reloc): Likewise.
+	* elfxx-target.h (bfd_elfNN_set_reloc): Likewise.
+	* coff-alpha.c (_bfd_ecoff_set_reloc): Likewise.
+	* mach-o-target.c (bfd_mach_o_set_reloc): Likewise.
+	* vms-alpha.c (alpha_vms_set_reloc): Likewise.
+	* aout-adobe.c (aout_32_set_reloc): Likewise.
+	* bout.c (b_out_set_reloc): Likewise.
+	* coff-mips.c (_bfd_ecoff_set_reloc): Likewise.
+	* i386os9k.c (aout_32_set_reloc): Likewise.
+	* ieee.c (ieee_set_reloc): Likewise.
+	* oasys.c (oasys_set_reloc): Likewise.
+	* som.c (som_set_reloc): Likewise.
+	* versados.c (versados_set_reloc): Likewise.
+	* coff64-rs6000.c (rs6000_xcoff64_vec): Add
+	_bfd_generic_set_reloc.
+	(rs6000_xcoff64_aix_vec): LIkewise.
+	* libbfd.c (_bfd_norelocs_set_reloc): New function.
+	* libbfd-in.h: Prototype for _bfd_norelocs_set_reloc.
+	* i386msdos.c (msdos_set_reloc): Define to
+	_bfd_norelocs_set_reloc.
+	* elfcode.h (elf_set_reloc): Define.
+	* bfd-in2.h: Regenerated.
+
+2017-05-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21481
+	* elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Use .plt.bnd
+	for IFUNC function address.
+
+2017-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* elf32-arc.c (FEATURE_LIST_NAME): Define.
+	(CONFLICT_LIST): Likewise.
+	(opcode/arc-attrs.h): Include.
+	(arc_elf_print_private_bfd_data): Print OSABI v4 flag.
+	(arc_extract_features): New file.
+	(arc_stralloc): Likewise.
+	(arc_elf_merge_attributes): Likewise.
+	(arc_elf_merge_private_bfd_data): Use object attributes.
+	(bfd_arc_get_mach_from_attributes): New function.
+	(arc_elf_object_p): Use object attributes.
+	(arc_elf_final_write_processing): Likewise.
+	(elf32_arc_obj_attrs_arg_type): New function.
+	(elf32_arc_obj_attrs_handle_unknown): Likewise.
+	(elf32_arc_section_from_shdr): Likewise.
+	(elf_backend_obj_attrs_vendor): Define.
+	(elf_backend_obj_attrs_section): Likewise.
+	(elf_backend_obj_attrs_arg_type): Likewise.
+	(elf_backend_obj_attrs_section_type): Likewise.
+	(elf_backend_obj_attrs_handle_unknown): Likewise.
+	(elf_backend_section_from_shdr): Likewise.
+
+2017-05-09  Andrew Goedhart  <Andrewgoedhart@simplepowersolutions.co.za>
+
+	PR ld/21458
+	* elf32-arm.c (elf32_arm_final_link_relocate): Set the bottom bit
+	of the value when resolving a R_ARM_THM_ALU_PREL_11_0 relocation
+	and the destination is a Thumb symbol.
+
+2017-05-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_get_synthetic_symtab): Add missing
+	initializer to silence GCC 4.2.
+	* lf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Likewise.
+
+2017-05-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf64-x86-64.c (PLT_ENTRY_SIZE): Renamed to ...
+	(LAZY_PLT_ENTRY_SIZE): This.
+	(NON_LAZY_PLT_ENTRY_SIZE): New.
+	(elf_x86_64_plt0_entry): Renamed to ...
+	(elf_x86_64_lazy_plt0_entry): This.
+	(elf_x86_64_plt_entry): Renamed to ...
+	(elf_x86_64_lazy_plt_entry): This.
+	(elf_x86_64_bnd_plt0_entry): Renamed to ...
+	(elf_x86_64_lazy_bnd_plt0_entry): This.
+	(elf_x86_64_legacy_plt_entry): Removed.
+	(elf_x86_64_bnd_plt_entry): Renamed to ...
+	(elf_x86_64_lazy_bnd_plt_entry): This.
+	(elf_x86_64_legacy_plt2_entry): Renamed to ...
+	(elf_x86_64_non_lazy_plt_entry): This.
+	(elf_x86_64_bnd_plt2_entry): Renamed to ...
+	(elf_x86_64_non_lazy_bnd_plt_entry): This.
+	(elf_x86_64_eh_frame_plt): Renamed to ...
+	(elf_x86_64_eh_frame_lazy_plt): This.
+	(elf_x86_64_eh_frame_bnd_plt): Renamed to ...
+	(elf_x86_64_eh_frame_lazy_bnd_plt): This.
+	(elf_x86_64_eh_frame_plt_got): Renamed to ...
+	(elf_x86_64_eh_frame_non_lazy_plt): This.
+	(elf_x86_64_lazy_plt_layout): New.
+	(elf_x86_64_non_lazy_plt_layout): Likewise.
+	(elf_x86_64_plt_layout): Likewise.
+	(elf_x86_64_backend_data): Remove PLT layout information.  Add
+	os for target system.
+	(GET_PLT_ENTRY_SIZE): Removed.
+	(elf_x86_64_lazy_plt): New.
+	(elf_x86_64_non_lazy_plt): Likewise.
+	(elf_x86_64_lazy_bnd_plt): Likewise.
+	(elf_x86_64_non_lazy_bnd_plt): Likewise.
+	(elf_x86-64_arch_bed): Updated.
+	(elf_x86_64_link_hash_table): Add plt, lazy_plt and non_lazy_plt.
+	(elf_x86_64_create_dynamic_sections): Removed.
+	(elf_x86_64_check_relocs): Don't check elf.dynobj.  Don't call
+	_bfd_elf_create_ifunc_sections nor _bfd_elf_create_got_section.
+	(elf_x86-64_adjust_dynamic_symbol): Updated.
+	(elf_x86_64_allocate_dynrelocs): Updated.  Pass 0 as PLT header
+	size to _bfd_elf_allocate_ifunc_dyn_relocs and don't allocate
+	size for PLT0 if there is no PLT0.  Get plt_entry_size from
+	non_lazy_plt for non-lazy PLT entries.
+	(elf_x86_64_size_dynamic_sections): Updated.  Get plt_entry_size
+	from non_lazy_plt for non-lazy PLT entries.
+	(elf_x86-64_relocate_section): Updated.  Properly get PLT index
+	if there is no PLT0.
+	(elf_x86_64_finish_dynamic_symbol): Updated.  Fill the first slot
+	in the PLT entry with generic PLT layout.  Fill the non-lazy PLT
+	entries with non-lazy PLT layout.  Don't fill the second and third
+	slots in the PLT entry if there is no PLT0.
+	(elf_x86_64_finish_dynamic_sections): Updated.  Don't fill PLT0
+	if there is no PLT0.  Set sh_entsize on the .plt.got section.
+	(compare_relocs): New.
+	(elf_x86_64_plt_type): Likewise.
+	(elf_x86_64_plt): Likewise.
+	(elf_x86_64_nacl_plt): New. Forward declaration.
+	(elf_x86_64_get_plt_sym_val): Removed.
+	(elf_x86_64_get_synthetic_symtab): Rewrite to check PLT sections
+	against all dynamic relocations.
+	(elf_x86_64_link_setup_gnu_properties): New function.
+	(elf_backend_create_dynamic_sections): Updated.
+	(elf_backend_setup_gnu_properties): New.
+	(elf_x86_64_nacl_plt): New.
+	(elf_x86_64_nacl_arch_bed): Updated.
+
+2017-05-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (PLT_ENTRY_SIZE): Renamed to ...
+	(LAZY_PLT_ENTRY_SIZE): This.
+	(NON_LAZY_PLT_ENTRY_SIZE): New.
+	(elf_i386_plt0_entry): Renamed to ...
+	(elf_i386_lazy_plt0_entry): This.
+	(elf_i386_plt_entry): Renamed to ...
+	(elf_i386_lazy_plt_entry): This.
+	(elf_i386_pic_plt0_entry): Renamed to ...
+	(elf_i386_pic_lazy_plt0_entry): This.
+	(elf_i386_pic_plt_entry): Renamed to ...
+	(elf_i386_pic_lazy_plt_entry): This.
+	(elf_i386_got_plt_entry): Renamed to ...
+	(elf_i386_non_lazy_plt_entry): This.
+	(elf_i386_pic_got_plt_entry): Renamed to ...
+	(elf_i386_pic_non_lazy_plt_entry): This.
+	(elf_i386_eh_frame_plt): Renamed to ...
+	(elf_i386_eh_frame_lazy_plt): This.
+	(elf_i386_eh_frame_plt_got): Renamed to ...
+	(elf_i386_eh_frame_non_lazy_plt): This.
+	(elf_i386_plt_layout): Renamed to ...
+	(elf_i386_lazy_plt_layout): This.  Remove eh_frame_plt_got and
+	eh_frame_plt_got_size.
+	(elf_i386_non_lazy_plt_layout): New.
+	(elf_i386_plt_layout): Likewise.
+	(elf_i386_non_lazy_plt): Likewise.
+	(GET_PLT_ENTRY_SIZE): Removed.
+	(elf_i386_plt): Renamed to ...
+	(elf_i386_lazy_plt): This.
+	(elf_i386_backend_data): Remove plt.  Rename is_vxworks to os.
+	(elf_i386_arch_bed): Updated.
+	(elf_i386_link_hash_table): Add plt, lazy_plt and non_lazy_plt.
+	(elf_i386_create_dynamic_sections): Removed.
+	(elf_i386_check_relocs): Don't check elf.dynobj.  Don't call
+	_bfd_elf_create_ifunc_sections nor _bfd_elf_create_got_section.
+	(elf_i386_adjust_dynamic_symbol): Updated.
+	(elf_i386_allocate_dynrelocs): Updated.  Pass 0 as PLT header
+	size to _bfd_elf_allocate_ifunc_dyn_relocs and don't allocate
+	size for PLT0 if there is no PLT0.
+	(elf_i386_size_dynamic_sections): Updated.  Check whether GOT
+	output section is discarded only if GOT isn't empty.
+	(elf_i386_relocate_section): Updated.  Properly get PLT index
+	if there is no PLT0.
+	(elf_i386_finish_dynamic_symbol): Updated.  Don't fill the
+	second and third slots in the PLT entry if there is no PLT0.
+	(elf_i386_finish_dynamic_sections): Updated.  Don't fill PLT0
+	if there is no PLT0.  Set sh_entsize on the .plt.got section.
+	(elf_i386_nacl_plt): Forward declaration.
+	(elf_i386_get_plt_sym_val): Removed.
+	(elf_i386_get_synthetic_symtab): Rewrite to check PLT sections
+	against all dynamic relocations.
+	(elf_i386_link_setup_gnu_properties): New function.
+	(elf_backend_create_dynamic_sections): Updated.
+	(elf_backend_setup_gnu_properties): New.
+	(elf_i386_nacl_plt): Updated.
+	(elf_i386_nacl_arch_bed): Likewise.
+	(elf_i386_vxworks_arch_bed): Likewise.
+
+2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+	* elflink.c (elf_output_implib): Remove executable flag from import
+	library bfd.
+	* elf32-arm.c (elf32_arm_filter_implib_symbols): Assert that the import
+	library is a relocatable object file.
+
+2017-05-01  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
+
+	PR ld/21404
+	* elf32-avr.c (avr_should_move_sym): New function.
+	(avr_should_reduce_sym_size): Likewise.
+	(avr_should_increase_sym_size): Likewise.
+	(elf32_avr_relax_delete_bytes): Adjust symbol values
+	and sizes by calling new functions.
+
+2017-05-01  Palmer Dabbelt  <palmer@dabbelt.com>
+
+	* config.bfd (riscv32-*): Enable rv64.
+
+2017-05-02  Alan Modra  <amodra@gmail.com>
+
+	PR 21384
+	* elflink.c (bfd_elf_link_mark_dynamic_symbol): Test h->non_elf
+	rather than h->root.type == bfd_link_hash_new.
+	(bfd_elf_record_link_assignment): Similarly, call
+	bfd_elf_link_mark_dynamic_symbol when h->non_elf.
+
+2017-04-29  Alan Modra  <amodra@gmail.com>
+
+	PR 21432
+	* reloc.c (reloc_offset_in_range): New function.
+	(bfd_perform_relocation, bfd_install_relocation): Use it.
+	(_bfd_final_link_relocate): Likewise.
+
+2017-04-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_allocate_dynrelocs): Check plt_got
+	before using .plt.got.
+	* elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
+
+2017-04-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Use "="
+	instead of "+=" to update 0.
+
+2017-04-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_create_dynamic_sections): Create the
+	.plt.got section here.
+	(elf_i386_check_relocs): Don't create the .plt.got section.
+	* elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Create
+	the .plt.got and .plt.bnd sections here.
+	(elf_x86_64_check_relocs): Don't create the .plt.got nor
+	.plt.bnd sections.
+
+2017-04-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf64-x86-64.c (elf_x86_64_link_hash_entry): Remove
+	has_bnd_reloc.
+	(elf_x86_64_link_hash_newfunc): Don't clear has_bnd_reloc.
+	(elf_x86_64_copy_indirect_symbol): Don't copy has_bnd_reloc.
+	(elf_x86_64_check_relocs): Don't set has_bnd_reloc.
+	(elf_x86_64_finish_dynamic_symbol): Check bndplt instead of
+	has_bnd_reloc.
+
+2017-04-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf-bfd.h (elf_backend_data): Change setup_gnu_properties
+	to return bfd *.
+	(_bfd_elf_link_setup_gnu_properties): Return bfd *.
+	* elf-properties.c (_bfd_elf_link_setup_gnu_properties): Return
+	the first relocatable ELF input with GNU properties.
+
+2017-04-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_finish_dynamic_sections): Simplify
+	VxWorks for non-PIC.
+
+2017-04-27  Alan Modra  <amodra@gmail.com>
+
+	* elf-bfd.h (struct elf_backend_data): Make asection param of
+	elf_backend_eh_frame_address_size const.
+	(_bfd_elf_eh_frame_address_size): Likewise.
+	* elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): Likewise.
+	* elf32-msp430.c (elf32_msp430_eh_frame_address_size): Likewise.
+	* elfxx-mips.c (_bfd_mips_elf_eh_frame_address_size): Likewise.
+	* elfxx-mips.h (_bfd_mips_elf_eh_frame_address_size): Likewise.
+	* elf-eh-frame.c (_bfd_elf_eh_frame_address_size): Likewise.
+	(next_cie_fde_offset): Constify params.
+	(offset_adjust, adjust_eh_frame_local_symbols): Likewise.
+
+2017-04-27  Alan Modra  <amodra@gmail.com>
+
+	* elf-bfd.h (struct eh_cie_fde): Add aug_str_len and aug_data_len.
+	(_bfd_elf_adjust_eh_frame_global_symbol): Declare.
+	* elf-eh-frame.c (_bfd_elf_parse_eh_frame): Set aug_str_len and
+	aug_data_len.
+	(offset_adjust): New function.
+	(_bfd_elf_adjust_eh_frame_global_symbol): Likewise.
+	(adjust_eh_frame_local_symbols): Likewise.
+	(_bfd_elf_discard_section_eh_frame): Call adjust_eh_frame_local_symbols
+	after changing anything.  Return true if anything changed.
+	* elflink.c (bfd_elf_discard_info): If .eh_frame changed, call
+	_bfd_elf_adjust_eh_frame_global_symbol for globals.
+
+2017-04-27  Alan Modra  <amodra@gmail.com>
+
+	* elflink.c (_bfd_elf_link_hash_hide_symbol): Clear dynstr_index
+	when force_local.
+
+2017-04-27  Alan Modra  <amodra@gmail.com>
+
+	* elf32-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Define.
+	(ppc_elf_select_plt_layout, ppc_elf_tls_setup): Use it.
+	(ppc_elf_adjust_dynamic_symbol, allocate_dynrelocs): Likewise.
+	(ppc_elf_relocate_section): Likewise.  Delete silly optimisation
+	for undef and undefweak dyn_relocs.
+	* elf64-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Define.
+	(ppc64_elf_adjust_dynamic_symbol, ppc64_elf_tls_setup): Use it.
+	(allocate_got, allocate_dynrelocs): Likewise.
+	(ppc64_elf_relocate_section): Likewise.
+
+2017-04-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_size_dynamic_sections): Alwasys add
+	DT_PLTRELSZ, DT_PLTREL and DT_JMPREL for .rel.plt section.
+	* elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Alwasys
+	add DT_PLTRELSZ, DT_PLTREL and DT_JMPREL for .rela.plt section.
+
+2017-04-26  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21434
+	* reloc.c (bfd_perform_relocation): Check for a negative address
+	in the reloc.
+
+2017-04-26  Maciej W. Rozycki  <macro@imgtec.com>
+
+	PR ld/21334
+	* elf-bfd.h (elf_backend_data): Add `always_renumber_dynsyms'
+	member.
+	* elfxx-target.h [!elf_backend_always_renumber_dynsyms]
+	(elf_backend_always_renumber_dynsyms): Define.
+	(elfNN_bed): Initialize `always_renumber_dynsyms' member.
+	* elfxx-mips.h (elf_backend_always_renumber_dynsyms): Define.
+	* elflink.c (bfd_elf_size_dynamic_sections): Also call
+	`_bfd_elf_link_renumber_dynsyms' if the backend has requested
+	it.
+	(bfd_elf_size_dynsym_hash_dynstr): Likewise.
+
+2017-04-26  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elflink.c (bfd_elf_size_dynamic_sections): Only call
+	`_bfd_elf_link_renumber_dynsyms' after section GC if dynamic
+	sections have been created.
+
+2017-04-26  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21431
+	* compress.c (bfd_init_section_compress_status): Check the return
+	value from bfd_malloc.
+
+2017-04-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf64-x86-64.c (elf_x86_64_link_hash_entry): Add
+	no_finish_dynamic_symbol.
+	(elf_x86_64_link_hash_newfunc): Set no_finish_dynamic_symbol to
+	0.
+	(elf_x86_64_allocate_dynrelocs): If a symbol isn't undefined
+	weak symbol, don't make it dynamic.
+	(elf_x86_64_relocate_section): If a symbol isn't dynamic in PIC,
+	set no_finish_dynamic_symbol and generate R_X86_64_RELATIVE
+	relocation for GOT reference.
+	(elf_x86_64_finish_dynamic_symbol): Abort if
+	no_finish_dynamic_symbol isn't 0.
+
+2017-04-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21402
+	* elf32-i386.c (elf_i386_allocate_dynrelocs): If a symbol isn't
+	undefined weak symbol, don't make it dynamic.
+	(elf_i386_relocate_section): If a symbol isn't dynamic in PIC,
+	set no_finish_dynamic_symbol and generate R_386_RELATIVE
+	relocation for R_386_GOT32.
+
+2017-04-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21425
+	* elf32-i386.c (ELF_MAXPAGESIZE): Set to 0x1000 for VxWorks.
+
+2017-04-23  Alan Modra  <amodra@gmail.com>
+
+	PR 21414
+	* section.c (GLOBAL_SYM_INIT): Make available in bfd.h.
+	* elf.c (lcomm_sym): New.
+	(_bfd_elf_large_com_section): Use lcomm_sym section symbol.
+	* bfd-in2.h: Regenerate.
+
+2017-04-23  Alan Modra  <amodra@gmail.com>
+
+	PR 21412
+	* elf-bfd.h (struct elf_backend_data <get_reloc_section>): Change
+	parameters and comment.
+	(_bfd_elf_get_reloc_section): Delete.
+	(_bfd_elf_plt_get_reloc_section): Declare.
+	* elf.c (_bfd_elf_plt_get_reloc_section, elf_get_reloc_section):
+	New functions.  Don't blindly skip over assumed .rel/.rela prefix.
+	Extracted from..
+	(_bfd_elf_get_reloc_section): ..here.  Delete.
+	(assign_section_numbers): Call elf_get_reloc_section.
+	* elf64-ppc.c (elf_backend_get_reloc_section): Define.
+	* elfxx-target.h (elf_backend_get_reloc_section): Update.
+
+2017-04-23  Alan Modra  <amodra@gmail.com>
+
+	PR 21409
+	* dwarf2.c (_bfd_dwarf2_find_nearest_line): Don't segfault when
+	no symbols.
+
+2017-04-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21402
+	* elf32-i386.c (elf_i386_link_hash_entry): Add
+	no_finish_dynamic_symbol.
+	(elf_i386_link_hash_newfunc): Set no_finish_dynamic_symbol to 0.
+	(elf_i386_allocate_dynrelocs): If a symbol isn't undefined weak
+	symbol, don't make it dynamic in PIE.
+	(elf_i386_relocate_section): If a symbol isn't dynamic in PIE,
+	set no_finish_dynamic_symbol and generate R_386_RELATIVE
+	relocation for R_386_GOT32
+	(elf_i386_finish_dynamic_symbol): Abort if no_finish_dynamic_symbol
+	isn't 0.
+
+2017-04-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/19617
+	PR ld/21086
+	* elflink.c (elf_link_add_object_symbols): Require
+	--no-dynamic-linker with -E/--dynamic-list when creating
+	dynamic sections.
+
+2017-04-20  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elflink.c (_bfd_elf_symbol_refs_local_p): Always return TRUE
+	if forced local.
+
+2017-04-20  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elfxx-mips.c (_bfd_mips_elf_final_link): Reorder comment about
+	dynamic symbol sorting.
+
+2017-04-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21382
+	* elflink.c (elf_link_add_object_symbols): Preserve
+	dynamic_ref_after_ir_def when restoring the symbol table for
+	unneeded dynamic object.
+
+2017-04-19  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21401
+	* elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Don't abort
+	on on undefined IFUNC symbol in the second PLT.
+
+2017-04-19  Wedson Almeida Filho  <wedsonaf@gmail.com>
+
+	* peXXigen.c (pe_print_reloc): Correct chunk_end.
+
+2017-04-19  Alan Modra  <amodra@gmail.com>
+
+	* elflink.c (_bfd_elf_adjust_dynamic_symbol): Hide undefweak
+	or make dynamic for info->dynamic_undefined_weak 0 and 1.
+	* elf32-ppc.c:Formatting.
+	(ensure_undefweak_dynamic): Don't make dynamic when
+	info->dynamic_undefined_weak is zero.
+	(allocate_dynrelocs): Discard undefweak dyn_relocs for
+	info->dynamic_undefined_weak.  Discard undef dyn_relocs when
+	not default visibility.  Discard undef and undefweak
+	dyn_relocs earlier.
+	(ppc_elf_relocate_section): Adjust to suit.
+	* elf64-ppc.c: Formatting.
+	(ensure_undefweak_dynamic): Don't make dynamic when
+	info->dynamic_undefined_weak is zero.
+	(allocate_dynrelocs): Discard undefweak dyn_relocs for
+	info->dynamic_undefined_weak.  Discard them earlier.
+
+2017-04-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21389
+	* elflink.c (bfd_elf_size_dynamic_sections): Get soname index
+	before generating the version definition section.
+
+2017-04-17  Alan Modra  <amodra@gmail.com>
+
+	* elflink.c (_bfd_elf_merge_symbol): Undo dynamic linking
+	state when a regular object file defines a symbol with
+	incompatible type to that defined by an earlier shared lib.
+
+2017-04-13  Alan Modra  <amodra@gmail.com>
+
+	* coffcode.h: Wrap some overly long _bfd_error_handler args.
+	* elf.c: Likewise.
+	* elf32-arm.c: Likewise.
+	* elf32-i386.c: Likewise.
+	* elf32-mep.c: Likewise.
+	* elf64-ia64-vms.c: Likewise.
+	* elf64-x86-64.c: Likewise.
+	* elflink.c: Likewise.
+	* elfnn-ia64.c: Likewise.
+	* elfxx-mips.c: Likewise.
+
+2017-04-13  Alan Modra  <amodra@gmail.com>
+
+	* aoutx.h: Use %B and %A in error messages throughout file.
+	* aout-cris.c: Likewise.
+	* archive.c: Likewise.
+	* binary.c: Likewise.
+	* coff-rs6000.c: Likewise.
+	* coff-tic4x.c: Likewise.
+	* coffcode.h: Likewise.
+	* coffgen.c: Likewise.
+	* cofflink.c: Likewise.
+	* coffswap.h: Likewise.
+	* cpu-arm.c: Likewise.
+	* elf-eh-frame.c: Likewise.
+	* elf-m10300.c: Likewise.
+	* elf.c: Likewise.
+	* elf32-arc.c: Likewise.
+	* elf32-arm.c: Likewise.
+	* elf32-bfin.c: Likewise.
+	* elf32-frv.c: Likewise.
+	* elf32-iq2000.c: Likewise.
+	* elf32-m32c.c: Likewise.
+	* elf32-microblaze.c: Likewise.
+	* elf32-nds32.c: Likewise.
+	* elf32-rl78.c: Likewise.
+	* elf32-rx.c: Likewise.
+	* elf32-score.c: Likewise.
+	* elf32-score7.c: Likewise.
+	* elf32-sh64.c: Likewise.
+	* elf32-v850.c: Likewise.
+	* elf32-vax.c: Likewise.
+	* elf32-visium.c: Likewise.
+	* elf64-ia64-vms.c: Likewise.
+	* elf64-mmix.c: Likewise.
+	* elf64-sh64.c: Likewise.
+	* elfcode.h: Likewise.
+	* elfnn-aarch64.c: Likewise.
+	* elfnn-ia64.c: Likewise.
+	* elfxx-mips.c: Likewise.
+	* hpux-core.c: Likewise.
+	* ieee.c: Likewise.
+	* ihex.c: Likewise.
+	* linker.c: Likewise.
+	* merge.c: Likewise.
+	* mmo.c: Likewise.
+	* oasys.c: Likewise.
+	* pdp11.c: Likewise.
+	* peXXigen.c: Likewise.
+	* rs6000-core.c: Likewise.
+	* vms-alpha.c: Likewise.
+	* xcofflink.c: Likewise.
+
+2017-04-13  Alan Modra  <amodra@gmail.com>
+
+	* bfd.c (PRINT_TYPE): Define.
+	(_doprnt): New function.
+	(error_handler_internal): Use _doprnt.
+	* coff-arm.c: Put %A and %B arguments to _bfd_error_handler
+	calls in their natural order, throughout file.
+	* coff-mcore.c: Likewise.
+	* coff-ppc.c: Likewise.
+	* coff-tic80.c: Likewise.
+	* cofflink.c: Likewise.
+	* elf-s390-common.c: Likewise.
+	* elf.c: Likewise.
+	* elf32-arm.c: Likewise.
+	* elf32-i386.c: Likewise.
+	* elf32-m32r.c: Likewise.
+	* elf32-msp430.c: Likewise.
+	* elf32-spu.c: Likewise.
+	* elf64-ia64-vms.c: Likewise.
+	* elf64-sparc.c: Likewise.
+	* elf64-x86-64.c: Likewise.
+	* elflink.c: Likewise.
+	* elfnn-aarch64.c: Likewise.
+	* elfnn-ia64.c: Likewise.
+	* elfxx-mips.c: Likewise.
+
+2017-04-13  Alan Modra  <amodra@gmail.com>
+
+	* elf32-arm.c (arm_type_of_stub): Supply missing args to "long
+	branch veneers" error.  Fix double space and format message.
+	* elf32-avr.c (avr_add_stub): Do not pass NULL as %B arg.
+	* elf64-ppc.c (tocsave_find): Supply missing %B arg.
+
+2017-04-13  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in2.h: Regenerate.
+
+2017-04-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf-properties.c (_bfd_elf_parse_gnu_properties): Remove the
+	extra `\n' in warning/error messages.
+	* elf32-i386.c (elf_i386_parse_gnu_properties): Likewise.
+	* elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise.
+
+2017-04-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf-properties.c (_bfd_elf_parse_gnu_properties): Ignore
+	processor-specific properties with generic ELF target vector.
+
+2017-04-10  Qing Zhao  <qing.zhao@oracle.com>
+
+	* elf32-sparc.c (elf_backend_fixup_symbol): New.
+	* elf64-sparc.c (elf_backend_fixup_symbol): New.
+	* elfxx-sparc.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
+	(_bfd_sparc_elf_link_hash_entry): Add has_got_reloc and
+	has_non_got_reloc.
+	(link_hash_newfunc): Initialize has_got_reloc and
+	has_non_got_reloc.
+	(_bfd_sparc_elf_size_dynamic_sections): Set interp to .interp
+	section.
+	(_bfd_sparc_elf_copy_indirect_symbol): Copy has_got_reloc and
+	has_non_got_reloc.
+	(_bfd_sparc_elf_check_relocs): Set has_got_reloc and
+	has_non_got_reloc.
+	(_bfd_sparc_elf_fixup_symbol): New function.
+	(allocate_dynrelocs): Don't allocate space for dynamic
+	relocations and discard relocations against resolved undefined
+	weak symbols in executable.  Don't make resolved undefined weak
+	symbols in executable dynamic.  Keep dynamic non-GOT/non-PLT
+	relocation against undefined weak symbols in PIE.
+	(_bfd_sparc_elf_relocate_section): Don't generate dynamic
+	relocations against resolved undefined weak symbols in PIE
+	(_bfd_sparc_elf_finish_dynamic_symbol): Keep PLT/GOT entries
+	without ynamic PLT/GOT relocations for resolved undefined weak
+	symbols.
+	Don't generate dynamic relocation against resolved undefined
+	weak symbol in executable.
+	(pie_finish_undefweak_symbol): New function.
+	(_bfd_sparc_elf_finish_dynamic_sections): Call
+	pie_finish_undefweak_symbol on all symbols in PIE.
+	* elfxx-sparc.h (_bfd_sparc_elf_link_hash_table): Add interp.
+	(_bfd_sparc_elf_fixup_symbol): New function.
+
+2017-04-10  Nick Clifton  <nickc@redhat.com>
+
+	* config.bfd: Remove ns32k from obsolete list.
+
+2017-04-10  Alan Modra  <amodra@gmail.com>
+
+	PR 21287
+	* elf.c (special_sections_f): Match .fini_array and .fini_array.*.
+	(special_sections_i): Likewise for .init_array.
+	(special_sections_p): Likewise for .preinit_array.
+
+2017-04-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/19579
+	PR ld/21306
+	* elf32-s390.c (elf_s390_finish_dynamic_symbol): Check
+	ELF_COMMON_DEF_P for common symbols.
+	* elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
+	* elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
+	* elflink.c (_bfd_elf_merge_symbol): Revert commits
+	202ac193bbbecc96a4978d1ac3d17148253f9b01 and
+	07492f668d2173da7a2bda3707ff0985e0f460b6.
+
+2017-04-07  Pedro Alves  <palves@redhat.com>
+
+	* opncls.c (bfd_get_debug_link_info): Rename to...
+	(bfd_get_debug_link_info_1): ... this.  Change type of second
+	parameter to void pointer.  Adjust.
+	(bfd_get_debug_link_info): Reimplement on top of
+	bfd_get_debug_link_info_1.
+	(separate_debug_file_exists, separate_alt_debug_file_exists):
+	Change type of second parameter to void pointer.  Adjust.
+	(get_func_type, check_func_type): Change type of second parameter
+	to void pointer.
+	(find_separate_debug_file): Add 'func_data' parameter.  Pass it to
+	the callback functions instead of passing the address of a local.
+	(bfd_follow_gnu_debuglink): Pass address of unsigned long local to
+	find_separate_debug_file.
+	(get_alt_debug_link_info_shim): Change type of second parameter to
+	void pointer.  Adjust.
+	(bfd_follow_gnu_debugaltlink): Adjust to pass NULL to
+	find_separate_debug_file.
+	(get_build_id_name, bfd_boolean check_build_id_file): Change type
+	of second parameter to void pointer.  Adjust.
+	(bfd_follow_build_id_debuglink): Pass address of bfd_build_id
+	pointer local to find_separate_debug_file.
+
+2017-04-07  Tristan Gingold  <gingold@gingold-Precision-7510>
+
+	* coffgen.c (_bfd_coff_gc_mark_hook): Handle PE weak
+	external symbols with a definition.
+	(_bfd_coff_gc_mark_extra_sections): Fix typo.
+
+2017-04-07  Alan Modra  <amodra@gmail.com>
+
+	* po/SRC-POTFILES.in: Regenerate.
+
+2017-04-05  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Support ELFv2 PLT
+	reference counting.
+
+2017-04-02  Jon Turney  <jon.turney@dronecode.org.uk>
+
+	(_bfd_XXi_swap_aouthdr_out): For clarity, use defines rather than
+	numbers for DataDirectory entry indicies passed to
+	add_data_entry().
+
+2017-04-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf.c (get_program_header_size): Add a GNU_MBIND segment for
+	each GNU_MBIND section and align GNU_MBIND section to page size.
+	(_bfd_elf_map_sections_to_segments): Create a GNU_MBIND
+	segment for each GNU_MBIND section.
+	(_bfd_elf_init_private_section_data): Copy sh_info from input
+	for GNU_MBIND section.
+
+2017-04-03  Palmer Dabbelt  <palmer@dabbelt.com>
+
+	* elfnn-riscv.c (GP_NAME): Delete.
+	(riscv_global_pointer_value): Change GP_NAME to RISCV_GP_SYMBOL.
+	(_bfd_riscv_relax_lui): Likewise.
+
+2017-04-04  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21342
+	* elflink.c (_bfd_elf_define_linkage_sym): Prevent null pointer
+	dereference.
+	(bfd_elf_final_link): Only initialize the extended symbol index
+	section if there are extended symbol tables to list.
+
+2017-04-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* Makefile.am (BFD32_BACKENDS): Add elf-properties.lo.
+	(BFD32_BACKENDS_CFILES): Add elf-properties.c.
+	* configure.ac (elf): Add elf-properties.lo.
+	* Makefile.in: Regenerated.
+	* configure: Likewise.
+	* elf-bfd.h (elf_property_kind): New.
+	(elf_property): Likewise.
+	(elf_property_list): Likewise.
+	(elf_properties): Likewise.
+	(_bfd_elf_parse_gnu_properties): Likewise.
+	(_bfd_elf_get_property): Likewise.
+	(_bfd_elf_link_setup_gnu_properties): Likewise.
+	(elf_backend_data): Add parse_gnu_properties, merge_gnu_properties
+	and setup_gnu_properties.
+	(elf_obj_tdata): Add properties.
+	* elf-properties.c: New file.
+	* elf32-i386.c (elf_i386_parse_gnu_properties): New.
+	(elf_i386_merge_gnu_properties): Likewise.
+	(elf_backend_parse_gnu_properties): Likewise.
+	(elf_backend_merge_gnu_properties): Likewise.
+	* elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise.
+	(elf_x86_64_merge_gnu_properties): Likewise.
+	(elf_backend_parse_gnu_properties): Likewise.
+	(elf_backend_merge_gnu_properties): Likewise.
+	* elfxx-target.h (elf_backend_merge_gnu_properties): Likewise.
+	(elf_backend_parse_gnu_properties): Likewise.
+	(elf_backend_setup_gnu_properties): Likewise.
+	(elfNN_bed): Add elf_backend_parse_gnu_properties,
+	elf_backend_merge_gnu_properties and
+	elf_backend_setup_gnu_properties.
+
+2017-03-30  Pip Cet  <pipcet@gmail.com>
+
+	* elf32-wasm32.c: Add relocation code, two relocs.
+	* reloc.c: Add wasm32 relocations.
+	* libbfd.h: Regenerate.
+	* bfd-in2.h: Regenerate.
+	* bfd/po/bfd.pot: Regenerate.
+
+2017-03-29  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/18025
+	* coff-bfd.h (struct coff_section_data): Add new fields:
+	saved_bias and bias.
+	* coffgen.c (coff_find_nearest_line_with_names): Cache the bias
+	computed for PE binaries.
+	* dwarf2.c (scan_unit_for_symbols): Only warn once about each
+	missing abbrev.
+
+2017-03-28  Hans-Peter Nilsson  <hp@axis.com>
+
+	PR ld/16044
+	* elf32-cris.c (elf_cris_adjust_gotplt_to_got): Adjust BFD_ASSERT
+	to handle a local symbol with a hash-symbol-entry; without PLT.
+	Add BFD_ASSERT for an incidental case with GOT entry present.
+	(cris_elf_check_relocs): Increment PLT refcount only if the symbol
+	isn't forced-or-set local.
+
+2017-03-27  Pip Cet  <pipcet@gmail.com>
+
+	* wasm-module.c: New file to support WebAssembly modules.
+	* wasm-module.h: New file to support WebAssembly modules.
+	* doc/webassembly.texi: Start documenting wasm-module.c.
+	* config.bfd: Add wasm_vec.
+	* targets.c: Likewise.
+	* configure.ac: Likewise.
+	* Makefile.am: Add entries for wasm-module.c.
+	* Makefile.in: Regenerate.
+	* configure: Regenerate.
+	* po/SRC-POTFILES.in: Regenerate.
+
+2017-03-27  Pip Cet  <pipcet@gmail.com>
+
+	* cpu-wasm32.c: New file to support wasm32 architecture.
+	* elf32-wasm32.c: New file to support wasm32 architecture.
+	* Makefile.am: Add wasm32 architecture.
+	* archures.c: Likewise.
+	* config.bfd: Likewise.
+	* configure.ac: Likewise.
+	* targets.c: Likewise.
+	* Makefile.in: Regenerate.
+	* bfd-in2.h: Regenerate.
+	* configure: Regenerate.
+	* po/SRC-POTFILES.in: Regenerate.
+
+2017-03-20  Alan Modra  <amodra@gmail.com>
+
+	PR 21266
+	* elf64-ppc.c (compare_symbols): Stabilize sort.
+
+2017-03-18  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (struct ppc_link_hash_table): Add
+	local_ifunc_resolver and maybe_local_ifunc_resolver.
+	(ppc_build_one_stub): Set flags on emitting dynamic
+	relocation to ifunc.
+	(ppc64_elf_relocate_section): Likewise.
+	(ppc64_elf_finish_dynamic_symbol): Likewise.
+	(ppc64_elf_finish_dynamic_sections): Error on DT_TEXTREL with
+	local dynamic relocs to ifuncs.
+	* elf32-ppc.c (struct ppc_elf_link_hash_table): Add
+	local_ifunc_resolver and maybe_local_ifunc_resolver.
+	(ppc_elf_relocate_section): Set flag on emitting dynamic
+	relocation to ifuncs.
+	(ppc_elf_finish_dynamic_symbol): Likewise.
+	(ppc_elf_finish_dynamic_sections): Error on DT_TEXTREL with local
+	dynamic relocs to ifuncs.
+
+2017-03-13  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21202
+	* reloc.c (BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC): Rename to
+	BFD_RELOC_AARCH64_TLSDESC_LD64_LO12.
+	(BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC): Rename to
+	BFD_RELOC_AARCH64_TLSDESC_ADD_LO12.
+	* bfd-in2.h: Regenerate.
+	* libbfd.h: Regenerate.
+	* elfnn-aarch64.c (IS_AARCH64_TLS_RELAX_RELOC): Update reloc
+	names.
+	(IS_AARCH64_TLSDESC_RELOC): Likewise.
+	(elfNN_aarch64_howto_table): Likewise.
+	(aarch64_tls_transition_without_check): Likewise.
+	(aarch64_reloc_got_type): Likewise.
+	(elfNN_aarch64_final_link_relocate): Likewise.
+	(elfNN_aarch64_tls_relax): Likewise.
+	(elfNN_aarch64_relocate_section): Likewise.
+	(elfNN_aarch64_gc_sweep_hook): Likewise.
+	(elfNN_aarch64_check_relocs): Likewise.
+	* elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
+	(_bfd_aarch64_elf_resolve_relocation): Likewise.
+
+2017-03-11  Alan Modra  <amodra@gmail.com>
+
+	* elf32-ppc.c: Remove ATTRIBUTE_UNUSED throughout when function
+	parameter is in fact used.  Whitespace fixes.
+	* elf64-ppc.c: Likewise.
+
+2017-03-09  Sam Thursfield  <sam.thursfield@codethink.co.uk>
+
+	* rs6000-core.c (CORE_NEW): Simplify macro when
+	AIX_CORE_DUMPX_CORE and BFD64 are true to avoid compile warning.
+
+2017-03-07  Alan Modra  <amodra@gmail.com>
+
+	PR 21224
+	PR 20519
+	* elf64-ppc.c (ppc64_elf_relocate_section): Add missing
+	dyn_relocs check.
+
+2017-03-05  Alan Modra  <amodra@gmail.com>
+
+	* elf-bfd.h (struct eh_cie_fde): Add u.cie.per_encoding_aligned8.
+	* elf-eh-frame.c (size_of_output_cie_fde): Don't align here.
+	(next_cie_fde_offset): New function.
+	(_bfd_elf_parse_eh_frame): Set u.cie.per_encoding_aligned8.
+	(_bfd_elf_discard_section_eh_frame): Align zero terminator to
+	four bytes.  Align CIEs to four or eight bytes depending on
+	per_encoding_aligned8.  Align FDEs according to their encoding.
+	Pad last FDE to output section alignment.
+	(_bfd_elf_write_section_eh_frame): Adjust to suit.  Remove
+	assertion.
+	* elf64-ppc.c (glink_eh_frame_cie): Delete padding.
+	(ppc64_elf_size_stubs): Pad glink eh_frame as per elf-eh-frame.c.
+	(ppc64_elf_finish_dynamic_sections): Adjust to suit.
+
+2017-03-02  Martin Bickel  <binutils@ineranves.de>
+
+	PR ld/21212
+	* elf.c (rewrite_elf_program_header): Do not issue a warning for
+	empty segments which have a zero filesz, but a non-zero memsz.
+
+2017-03-02  Alan Modra  <amodra@gmail.com>
+
+	* elf32-ppc.c (ppc_elf_vle_split16): Correct insn mask typo.
+
+2017-02-28  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_ha_reloc): Revert last change.
+	(ppc64_elf_relocate_section): Likewise.
+
+2017-02-28  Alan Modra  <amodra@gmail.com>
+
+	PR 20995
+	* elf32-nios2.c (nios2_elf32_relocate_section): Use htab
+	rather than elf32_nios2_hash_table or elf_hash_table.
+	(create_got_section): Likewise.
+	(nios2_elf32_finish_dynamic_symbol): Likewise.
+	(nios2_elf32_adjust_dynamic_symbol): Likewise.
+	(nios2_elf32_size_dynamic_sections): Likewise.
+	(nios2_elf32_check_relocs): Delete dynobj, sgot, and srelgot
+	vars.  Use htab equivalents directly instead.  Don't create
+	all dynamic sections on needing just the GOT.  Use a goto
+	rather than a fall-through with reloc test.  Ensure
+	htab->dynobj is set when making dynamic sreloc section.
+	(nios2_elf32_finish_dynamic_sections): Delete dynobj, use htab
+	equivalent directly instead.  Don't segfault on looking for
+	.dynamic when dynamic sections have not been created.  Don't
+	segfault on .got.plt being discarded.
+	(nios2_elf32_size_dynamic_sections): Delete plt and got vars.
+	Don't set "relocs" on .rela.plt.  Do handle .sbss.  Delete
+	fixme and another not so relevant comment.
+	(nios2_elf_add_symbol_hook): Delete dynobj var.  If not
+	already set, set hash table dynobj on creating .sbss.
+
+2017-02-28  Alan Modra  <amodra@gmail.com>
+
+	* reloc.c (BFD_RELOC_PPC_16DX_HA): New.
+	* elf64-ppc.c (ppc64_elf_howto_raw <R_PPC64_16DX_HA>): New howto.
+	(ppc64_elf_reloc_type_lookup): Translate new bfd reloc.
+	(ppc64_elf_ha_reloc): Correct overflow test on REL16DX_HA.
+	(ppc64_elf_relocate_section): Likewise.
+	* elf32-ppc.c (ppc_elf_howto_raw <R_PPC_16DX_HA>): New howto.
+	(ppc_elf_reloc_type_lookup): Translate new bfd reloc.
+	(ppc_elf_check_relocs): Handle R_PPC_16DX_HA to pacify gcc.
+	* libbfd.h: Regenerate.
+	* bfd-in2.h: Regenerate.
+
+2017-02-28  Alan Modra  <amodra@gmail.com>
+
+	* elflink.c (_bfd_elf_create_dynamic_sections): Don't make
+	dynamic .data.rel.ro read-only.
+	* elf32-arm.c (elf32_arm_finish_dynamic_symbol): Compare section
+	rather than section flags when deciding where copy reloc goes.
+	* elf32-cris.c (elf_cris_finish_dynamic_symbol): Likewise.
+	* elf32-hppa.c (elf32_hppa_finish_dynamic_symbol): Likewise.
+	* elf32-i386.c (elf_i386_finish_dynamic_symbol): Likewise.
+	* elf32-metag.c (elf_metag_finish_dynamic_symbol): Likewise.
+	* elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): Likewise.
+	* elf32-nios2.c (nios2_elf32_finish_dynamic_symbol): Likewise.
+	* elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Likewise.
+	* elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Likewise.
+	* elf32-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
+	* elf32-tic6x.c (elf32_tic6x_finish_dynamic_symbol): Likewise.
+	* elf32-tilepro.c (tilepro_elf_finish_dynamic_symbol): Likewise.
+	* elf64-ppc.c (ppc64_elf_finish_dynamic_symbol): Likewise.
+	* elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
+	* elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise.
+	* elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Likewise.
+	* elfnn-riscv.c (riscv_elf_finish_dynamic_symbol): Likewise.
+	* elfxx-mips.c (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
+	* elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Likewise.
+	* elfxx-tilegx.c (tilegx_elf_finish_dynamic_symbol): Likewise.
+
+2017-02-28  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elfxx-mips.c (mips_elf_perform_relocation): Also handle the
+	`jalr $0, $25' instruction encoding.
+
+2017-02-27  Nick Clifton  <nickc@redhat.com>
+
+	PR ld/21180
+	* elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): Avoid
+	generating a seg-fault when encountering a symbol that has been
+	deleted by garbage collection.
+
+2017-02-25  Alan Modra  <amodra@gmail.com>
+
+	* elf32-arc.c (struct dynamic_sections): Delete.
+	(enum dyn_section_types): Delete.
+	(dyn_section_names): Delete.
+	(arc_create_dynamic_sections): Delete.
+	(elf_arc_finish_dynamic_sections): Don't call the above.  Don't
+	segfault on discarded .rela.plt section.
+	(elf_arc_size_dynamic_sections): Formatting.  Don't call
+	arc_create_dynamic_sections.  Don't allocate memory for sections
+	handled by the generic linker.  Correct code finding relocs in
+	read-only sections.  Set SEC_EXCLUDE on zero size .got,
+	.got.plt, and .dynbss sections.  Do set .interp for pies.
+
+2017-02-24  Andrew Waterman  <andrew@sifive.com>
+
+	* elfnn-riscv.c (GP_NAME): New macro.
+	(riscv_global_pointer_value): Use it.
+	(_bfd_riscv_relax_lui): If symbol and global pointer are in same
+	output section, consider only that section's alignment.
+
+2017-02-23  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elfxx-mips.h (_bfd_mips_relax_section): Remove prototype.
+	* elfxx-mips.c (_bfd_mips_relax_section): Remove function.
+	* elf64-mips.c (bfd_elf64_bfd_relax_section): Remove macro.
+	* elfn32-mips.c (bfd_elf32_bfd_relax_section): Likewise.
+
+2017-02-23  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elfxx-mips.c (mips_elf_calculate_relocation) <R_MIPS_JALR>
+	<R_MICROMIPS_JALR>: Discard relocation if `cross_mode_jump_p'
+	or misaligned.
+
+2017-02-23  Alan Modra  <amodra@gmail.com>
+
+	PR 20744
+	* elf32-ppc.c (ppc_elf_howto_raw): Correct dst_mask on all VLE
+	16D relocations.
+	(ppc_elf_vle_split16): Correct field mask and shift for 16D relocs.
+	(ppc_elf_relocate_section): Correct calculation for VLE SDAREL
+	relocs.
+
+2017-02-22  Maciej W. Rozycki  <macro@imgtec.com>
+
+	PR ld/20828
+	* elflink.c (bfd_elf_size_dynamic_sections): Move symbol version
+	processing ahead of the call to `elf_gc_sweep_symbol'.
+
+2017-02-22  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21193
+	* opncls.c (bfd_create_gnu_debuglink_section): Give the newly
+	created section 4-byte alignment.
+
+2017-02-22  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_finish_dynamic_sections): Don't segfault
+	on .got or .plt output section being discarded by script.
+	* elf32-ppc.c (ppc_elf_finish_dynamic_sections): Likewise.  Move
+	vxworks splt temp.
+
+2017-02-21  Alan Modra  <amodra@gmail.com>
+
+	* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Only emit
+	DT_RELA, DT_RELASZ, and DT_RELAENT when DT_RELASZ is non-zero.
+
+2017-02-20  Alan Modra  <amodra@gmail.com>
+
+	PR 21181
+	* elflink.c (bfd_elf_final_link): Make DT_REL/DT_RELA zero
+	if DT_RELSZ/DT_RELASZ is zero.
+
+2017-02-17  Nick Clifton  <nickc@redhat.com>
+
+	* compress.c (bfd_get_full_section_contents): Remember to reduce
+	compressed size by the sizeof the compression header when
+	decompressing the contents.
+
+2017-02-17  Pedro Alves  <palves@redhat.com>
+
+	* srec.c (Chunk): Rename to ...
+	(_bfd_srec_len): ... this.
+	(S3Forced): Rename to ...
+	(_bfd_srec_forceS3): ... this.
+	* objcopy.c: Adjust all references.
+
+2017-02-17  Pedro Alves  <palves@redhat.com>
+
+	* archive.c (bsd_write_armap): Rename to ...
+	(_bfd_bsd_write_armap): ... this.
+	(coff_write_armap): Rename to ...
+	(_bfd_coff_write_armap): ... this.
+	* libbfd-in.h (bsd_write_armap): Rename to ...
+	(_bfd_bsd_write_armap): ... this.
+	(coff_write_armap): Rename to ...
+	(_bfd_coff_write_armap): ... this.
+	* aout-target.h, aout-tic30.c: Adjust all users.
+	* libbfd.h: Regenerate.
+
+2017-02-17  Pedro Alves  <palves@redhat.com>
+
+	* bfd-in.h (bfd_read, bfd_write): Adjust to rename.
+	(warn_deprecated): Rename to ...
+	(_bfd_warn_deprecated): ... this.
+	* libbfd.c (warn_deprecated): Rename to ...
+	(_bfd_warn_deprecated): ... this.
+	* bfd-in2.h: Regenerate.
+
+2017-02-17  Pedro Alves  <palves@redhat.com>
+
+	* bfdio.c (real_ftell): Rename to ...
+	(_bfd_real_ftell): ... this.
+	(real_fseek): Rename to ...
+	(_bfd_real_fseek): ... this.
+	(real_fopen): Rename to ...
+	(_bfd_real_fopen): ... this.
+	* libbfd-in.h (real_ftell): Rename to ...
+	(_bfd_real_ftell): ... this.
+	(real_fseek): Rename to ...
+	(_bfd_real_fseek): ... this.
+	(real_fopen): Rename to ...
+	(_bfd_real_fopen): ... this.
+	* cache.c, dwarf2.c, opncls.c: Adjust all callers.
+	* libbfd.h: Regenerate.
+
+2017-02-17  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2.c, elf-attrs.c, elf32-nds32.c: Adjust all callers.
+	* libbfd.c (read_unsigned_leb128): Rename to ...
+	(_bfd_read_unsigned_leb128): ... this.
+	(read_signed_leb128): Rename to ...
+	(_bfd_read_signed_leb128): ... this.
+	(safe_read_leb128): Rename to ...
+	(_bfd_safe_read_leb128): ... this.
+	* libbfd-in.h (read_unsigned_leb128): Rename to ...
+	(_bfd_read_unsigned_leb128): ... this.
+	(read_signed_leb128): Rename to ...
+	(_bfd_read_signed_leb128): ... this.
+	(safe_read_leb128): Rename to ...
+	(_bfd_safe_read_leb128): ... this.
+	* libbfd.h: Renegerate.
+
+2017-02-16  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* dwarf2.c (_bfd_dwarf2_find_nearest_line): Perform symbol lookup
+	before trying to fine matching file and line information.
+
+2017-02-16  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* dwarf2.c (struct dwarf2_debug): Add orig_bfd member.
+	(_bfd_dwarf2_slurp_debug_info): If stashed debug information does
+	not match current bfd, then reload debug information.  Record bfd
+	we're loading debug info for in the stash.  If we have debug
+	informatin in the cache then perform section placement before
+	returning.
+
+2017-02-16  Alan Modra  <amodra@gmail.com>
+
+	PR 21000
+	* elf-bfd.h (struct elf_backend_data): Add no_page_alias.
+	* elfxx-target.h (elf_backend_no_page_alias): Define.
+	(elfNN_bed): Init new field.
+	* elf.c (assign_file_positions_for_load_sections): If no_page_alias
+	ensure PT_LOAD segment starts on a new page.
+	* elf32-hppa.c (elf_backend_no_page_alias): Define.
+
+2017-02-16  Alan Modra  <amodra@gmail.com>
+
+	PR 21132
+	* elf32-hppa.c (allocate_plt_static): Allocate space for relocs
+	if pic.
+
+2017-02-16  Jiong Wang <jiong.wang@arm.com>
+
+	* bfd.c (BFD_FLAGS_SAVED): Add BFD_LINKER_CREATED.
+	* bfd-in2.h: Regenerated.
+
+2017-02-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21168
+	* elf32-i386.c (elf_i386_relocate_section): Allow
+	"lea foo@GOT, %reg" in PIC.
+
+2017-02-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/20244
+	* elf32-i386.c (elf_i386_relocate_section): Properly get IFUNC
+	symbol name when reporting R_386_GOT32/R_386_GOT32X relocation
+	error against local IFUNC symbol without a base register for
+	PIC.
+
+2017-02-15  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elf32-ppc.c (ppc_elf_check_relocs): Use `%H:' rather than
+	`%P: %H:' with `info->callbacks->einfo'.
+	(ppc_elf_relocate_section): Likewise.
+	* elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
+	(ppc64_elf_edit_toc): Likewise.
+	(ppc64_elf_relocate_section): Likewise.
+
+2017-02-14  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Support
+	--gc-keep-exported, and test versioned field of sym rather than
+	looking for @ in name.
+
+2017-02-13  Palmer Dabbelt  <palmer@dabbelt.com>
+
+	* elfnn-riscv.c (riscv_global_pointer_value): Change _gp to
+	__global_pointer$.
+
+2017-02-13  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21151
+	* dwarf2.c (_bfd_dwarf2_find_nearest_line): Check for an invalid
+	unit length field.
+
+2017-02-07  Andrew Waterman  <andrew@sifive.com>
+
+	* elfnn-riscv.c (riscv_elf_finish_dynamic_sections): Only write PLT
+	entry size if PLT header is written.
+
+2017-02-06  Sheldon Lobo  <sheldon.lobo@oracle.com>
+
+	Fix sparc64 dynamic relocation processing to use the dynamic
+	symbol count.
+	* elf64-sparc.c (elf64_sparc_slurp_one_reloc_table): Use 'dynamic'
+	to determine if bfd_get_symcount() or bfd_get_dynamic_symcount()
+	should be used.
+
+2017-02-03  Nick Clifton  <nickc@redhat.com>
+
+	PR 21096
+	* coffcode.h (coff_write_object_contents): Enlarge size of
+	s_name_buf in order to avoid compile time warning about possible
+	integer truncation.
+	* elf32-nds32.c (nds32_elf_ex9_import_table): Mask off lower
+	32-bits of insn value before printing into buffer.
+
+2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elfxx-mips.c (mips_elf_hash_sort_data): Add
+	`max_local_dynindx'.
+	(mips_elf_sort_hash_table): Handle it.
+	(mips_elf_sort_hash_table_f) <GGA_NONE>: For forced local
+	symbols bump up `max_local_dynindx' rather than
+	`max_non_got_dynindx'.
+
+2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elfxx-mips.c (mips_elf_hash_sort_data): Convert the
+	`min_got_dynindx', `max_unref_got_dynindx' and
+	`max_non_got_dynindx' members to the `bfd_size_type' data type.
+	(mips_elf_sort_hash_table): Adjust accordingly.
+
+2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elfxx-mips.c (mips_elf_sort_hash_table): Use `htab' throughout
+	to access the hash table.
+
+2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elfxx-mips.c (mips_elf_sort_hash_table): Move assertion on
+	non-NULL `htab' to the beginning.
+
+2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elflink.c (elf_gc_sweep): Wrap overlong line.
+
+2017-01-30  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* elfxx-mips.h (_bfd_mips_elf_insn32): Rename prototype to...
+	(_bfd_mips_elf_linker_flags): ... this.  Add another parameter.
+	* elfxx-mips.c (mips_elf_link_hash_table): Add
+	`ignore_branch_isa' member.
+	(mips_elf_perform_relocation): Do not treat an ISA mode mismatch
+	in branch relocation calculation as an error if
+	`ignore_branch_isa' has been set.
+	(_bfd_mips_elf_insn32): Rename to...
+	(_bfd_mips_elf_linker_flags): ... this.  Rename the `on'
+	parameter to `insn32' and add an `ignore_branch_isa' parameter.
+	Handle the new parameter.
+
+2017-01-27  Hans-Peter Nilsson  <hp@axis.com>
+
+	* elf32-cris.c (elf_cris_finish_dynamic_symbol): Remove now unused
+	local variable dynobj.
+
+	PR ld/20995
+	* elf32-cris.c (elf_cris_size_dynamic_sections): Handle sdynrelro.
+	(elf_cris_adjust_dynamic_symbol): Place variables copied into the
+	executable from read-only sections into sdynrelro.
+	(elf_cris_finish_dynamic_symbol): Select sreldynrelro for
+	dynamic relocs in sdynrelro.
+	(elf_backend_want_dynrelro): Define.
+
+2017-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+	* config.bfd (*-*-rtemsaout*): Mark as removed.
+
+2017-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+	* config.bfd (powerpcle-*-rtems*): Do not mark as removed.
+	(arm-*-rtems*): Move to (arm*-*-eabi*).
+	(i[3-7]86-*-rtems*): Move to (i[3-7]86-*-elf*).
+	(m68-*-rtems*): Move to (m68*-*-elf*).
+
+2017-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+	* config.bfd (*-*-rtemscoff*): Mark as removed.
+
+2017-01-24  Maciej W. Rozycki  <macro@imgtec.com>
+
+	PR ld/20828
+	* elflink.c (bfd_elf_record_link_assignment): Revert last
+	change and don't ever clear `forced_local'.  Set `mark'
+	unconditionally.
+	(elf_gc_sweep_symbol_info, elf_gc_sweep_symbol): Reorder within
+	file.
+	(elf_gc_sweep): Move the call to `elf_gc_sweep_symbol'...
+	(bfd_elf_size_dynamic_sections): ... here.
+	* elf32-ppc.c (ppc_elf_tls_setup): Don't clear `forced_local'
+	and set `mark' instead in `__tls_get_addr_opt' processing.
+	* elf64-ppc.c (ppc64_elf_tls_setup): Likewise.
+
+2017-01-24  Alan Modra  <amodra@gmail.com>
+
+	* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Merge two cases
+	where dynamic relocs are preferable.  Allow ifunc too.
+	(ensure_undefweak_dynamic): New function.
+	(allocate_dynrelocs): Use it here.  Move plt handling last and
+	don't make symbols dynamic, simplifying loop.  Only make undef
+	weak symbols with GOT entries dynamic.  Correct condition
+	for GOT relocs.  Handle dynamic relocs on ifuncs.  Correct
+	comments.  Remove goto.
+	(ppc_elf_relocate_section): Correct test for using dynamic
+	symbol on GOT relocs.  Rearrange test for emitting GOT relocs
+	to suit.  Set up explicit tls_index entries and implicit GOT
+	tls_index entries resolvable at link time for
+	__tls_get_addr_opt.  Simplify test to clear mem for prelink.
+	* elf64-ppc.c (allocate_got): Correct condition for GOT relocs.
+	(ensure_undefweak_dynamic): New function.
+	(allocate_dynrelocs): Use it here.  Only make undef weak symbols
+	with GOT entries dynamic.  Remove unnecessary test of
+	WILL_CALL_FINISH_DYNAMIC_SYMBOL in PLT handling.
+	(ppc64_elf_relocate_section): Correct test for using dynamic
+	symbol on GOT relocs.  Rearrange test for emitting GOT relocs
+	to suit.  Set up explicit tls_index entries and implicit GOT
+	tls_index entries resolvable at link time for __tls_get_addr_opt.
+	Simplify expression to clear mem for prelink.
+
+2017-01-23  Yury Norov  <ynorov@caviumnetworks.com>
+
+	* elfnn-aarch64.c: Fix relaxations for ILP32 mode.
+
+2017-01-20  Jiong Wang <jiong.wang@arm.com>
+
+	* elfnn-aarch64.c (elf_aarch64_hash_symbol): New function.
+	(elf_backend_hash_symbol): Define.
+
+2017-01-18  Maciej W. Rozycki  <macro@imgtec.com>
+
+	PR ld/20828
+	* elflink.c (bfd_elf_record_link_assignment): Clear any
+	`forced_local' marking for DSO symbols that are not being
+	provided.
+
+2017-01-17  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
+
+	* elfnn-riscv.c (riscv_elf_object_p): New function.
+
+2017-01-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21038
+	* elf64-x86-64.c (elf_x86_64_link_hash_table): Add
+	plt_bnd_eh_frame.
+	(elf_x86_64_check_relocs): Create .eh_frame section for the
+	.plt.bnd section.
+	(elf_x86_64_size_dynamic_sections): Allocate and initialize
+	.eh_frame section for the .plt.bnd section.
+	(elf_x86_64_finish_dynamic_sections): Adjust .eh_frame section
+	for the .plt.bnd section.
+
+2017-01-12  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/20876
+	* opncls.c (find_separate_debug_file): Add include_dirs
+	parameter.  Only include the directory part of the bfd's filename
+	in search paths if include_dirs is true.  Add a couple of extra
+	locations for looking for debug files.
+	( bfd_follow_gnu_debuglink): Update invocation of
+	find_separate_debug_file.
+	(bfd_follow_gnu_debugaltlink): Likewise.
+	(get_build_id): New function: Finds the build-id of the given bfd.
+	(get_build_id_name): New function: Computes the name of the
+	separate debug info file for a bfd, based upon its build-id.
+	(check_build_id_file): New function: Checks to see if a separate
+	debug info file exists at the given location, and that its
+	build-id matches that of the original bfd.
+	(bfd_follow_build_id_debuglink): New function: Finds a separate
+	debug info file for a given bfd by using the build-id method.
+	* dwarf2.c (_bfd_dwarf2_slurp_debug_info): Try using the build-id
+	method of locating a separate debug info file before using the
+	debuglink method.
+	* bfd-in2.h: Regenerate.
+
+2017-01-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21038
+	* elf64-x86-64.c (elf_x86_64_eh_frame_bnd_plt): New.
+	(elf_x86_64_bnd_arch_bed): Use elf_x86_64_eh_frame_bnd_plt and
+	elf_x86_64_eh_frame_plt_got.
+	(elf_x86_64_size_dynamic_sections): Get unwind info from
+	elf_x86_64_bnd_arch_bed for the BND PLT.
+
+2017-01-11  Jeremy Soller  <jackpot51@gmail.com>
+
+	* config.bfd: Add entries for i686-redox and x86_64-redox.
+
+2017-01-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_check_relocs): Align .eh_frame section
+	to 4 bytes.
+	* elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Align
+	.eh_frame section to 4 bytes for x32.
+	(elf_x86_64_check_relocs): Likewise.
+
+2017-01-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/20830
+	* elf32-i386.c (elf_i386_eh_frame_plt_got): New.
+	(PLT_GOT_FDE_LENGTH): Likewise.
+	(elf_i386_plt_layout): Add eh_frame_plt_got and
+	eh_frame_plt_got_size.
+	(elf_i386_plt): Updated.
+	(elf_i386_link_hash_table): Add plt_got_eh_frame.
+	(elf_i386_check_relocs): Create .eh_frame section for .plt.got.
+	(elf_i386_size_dynamic_sections): Allocate and initialize
+	.eh_frame section for .plt.got.
+	(elf_i386_finish_dynamic_sections): Adjust .eh_frame section for
+	.plt.got.
+	(elf_i386_nacl_plt): Add FIXME for eh_frame_plt_got and
+	eh_frame_plt_got_size.
+	* elf64-x86-64.c (elf_x86_64_eh_frame_plt_got): New.
+	(PLT_GOT_FDE_LENGTH): Likewise.
+	(elf_x86_64_backend_data): Add eh_frame_plt_got and
+	eh_frame_plt_got_size.
+	(elf_x86_64_arch_bed): Updated.
+	(elf_x86_64_bnd_arch_bed): Add FIXME for eh_frame_plt_got and
+	eh_frame_plt_got_size.
+	(elf_x86_64_nacl_arch_bed): Likewise.
+	(elf_x86_64_link_hash_table): Add plt_got_eh_frame.
+	(elf_x86_64_check_relocs): Create .eh_frame section for .plt.got.
+	(elf_x86_64_size_dynamic_sections): Allocate and initialize
+	.eh_frame section for .plt.got.
+	(elf_x86_64_finish_dynamic_sections): Adjust .eh_frame section
+	for .plt.got.
+
+2017-01-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_size_dynamic_sections): Set
+	plt_eh_frame->size to eh_frame_plt_size and use eh_frame_plt.
+
+2017-01-09  Nick Clifton  <nickc@redhat.com>
+
+	* dwarf2.c (lookup_address_in_function_table): Return early if
+	there are no functions in the given comp unit, or if the high
+	address of the last function in the comp unit is less than the
+	desired address.
+
+2017-01-09  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21013
+	* coffgen.c (_bfd_coff_get_external_symbols): Generate an error
+	message if there are too many symbols to load.
+
+2017-01-04  James Clarke  <jrtc27@jrtc27.com>
+
+	* elf64-alpha.c (elf64_alpha_relax_opt_call): Don't set tsec_free
+	if relocs are cached.
+
+2017-01-03  Rich Felker  <bugdal@aerifal.cx>
+
+	PR ld/21017
+	* elf32-microblaze.c (microblaze_elf_check_relocs): Add an entry
+	for R_MICROBLAZE_GOTOFF_64.
+
+2017-01-03  Nick Clifton  <nickc@redhat.com>
+
+	* mach-o.c (bfd_mach_o_lookup_uuid_command): Fix compile time
+	warning about using a possibly uninitialised variable.
+
+2017-01-02  Alan Modra  <amodra@gmail.com>
+
+	* elf32-hppa.c (ensure_undef_weak_dynamic): New function.
+	(allocate_plt_static, allocate_dynrelocs): Use it.
+
+2017-01-02  Alan Modra  <amodra@gmail.com>
+
+	* elf-hppa.h (elf_hppa_fake_sections): Set SHF_INFO_LINK for
+	.PARISC.unwind section.
+
+2017-01-02  Alan Modra  <amodra@gmail.com>
+
+	PR ld/20989
+	* elfxx-sparc.c (gdop_relative_offset_ok): New function.
+	(_bfd_sparc_elf_relocate_section): Use it to validate GOT
+	indirect to GOT pointer relative code edit.
+
+2017-01-02  Alan Modra  <amodra@gmail.com>
+
+	Update year range in copyright notice of all files.
+
+For older changes see ChangeLog-2016
+
+Copyright (C) 2017 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+
+Local Variables:
+mode: change-log
+left-margin: 8
+fill-column: 74
+version-control: never
+End:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cisco-core.c ./bfd/cisco-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cisco-core.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cisco-core.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for CISCO crash dumps.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -179,21 +179,21 @@ cisco_core_file_validate (bfd *abfd, int
 
       switch (bfd_get_32 (abfd, crashinfo.cpu_vector))
 	{
-	   /* bus error           */
+	   /* bus error		  */
 	case 2 : abfd->tdata.cisco_core_data->sig = SIGBUS; break;
-	   /* address error       */
+	   /* address error	  */
 	case 3 : abfd->tdata.cisco_core_data->sig = SIGBUS; break;
 	   /* illegal instruction */
 	case 4 : abfd->tdata.cisco_core_data->sig = SIGILL;  break;
-	   /* zero divide         */
+	   /* zero divide	  */
 	case 5 : abfd->tdata.cisco_core_data->sig = SIGFPE;  break;
-	   /* chk instruction     */
+	   /* chk instruction	  */
 	case 6 : abfd->tdata.cisco_core_data->sig = SIGFPE; break;
-	   /* trapv instruction   */
+	   /* trapv instruction	  */
 	case 7 : abfd->tdata.cisco_core_data->sig = SIGFPE; break;
 	   /* privilege violation */
 	case 8 : abfd->tdata.cisco_core_data->sig = SIGSEGV; break;
-	   /* trace trap          */
+	   /* trace trap	  */
 	case 9 : abfd->tdata.cisco_core_data->sig = SIGTRAP;  break;
 	   /* line 1010 emulator  */
 	case 10: abfd->tdata.cisco_core_data->sig = SIGILL;  break;
@@ -204,24 +204,24 @@ cisco_core_file_validate (bfd *abfd, int
 	     this cannot be triggered by software.  Call it a SIGBUS.  */
 	case 13: abfd->tdata.cisco_core_data->sig = SIGBUS;  break;
 
-	  /* interrupt           */
+	  /* interrupt		 */
 	case 31: abfd->tdata.cisco_core_data->sig = SIGINT;  break;
-	  /* breakpoint          */
+	  /* breakpoint		 */
 	case 33: abfd->tdata.cisco_core_data->sig = SIGTRAP;  break;
 
-	  /* floating point err  */
+	  /* floating point err	 */
 	case 48: abfd->tdata.cisco_core_data->sig = SIGFPE;  break;
-	  /* floating point err  */
+	  /* floating point err	 */
 	case 49: abfd->tdata.cisco_core_data->sig = SIGFPE;  break;
-	  /* zero divide         */
+	  /* zero divide	 */
 	case 50: abfd->tdata.cisco_core_data->sig = SIGFPE;  break;
-	  /* underflow           */
+	  /* underflow		 */
 	case 51: abfd->tdata.cisco_core_data->sig = SIGFPE;  break;
-	  /* operand error       */
+	  /* operand error	 */
 	case 52: abfd->tdata.cisco_core_data->sig = SIGFPE;  break;
-	   /* overflow            */
+	   /* overflow		  */
 	case 53: abfd->tdata.cisco_core_data->sig = SIGFPE;  break;
-	  /* NAN                 */
+	  /* NAN		 */
 	case 54: abfd->tdata.cisco_core_data->sig = SIGFPE;  break;
 	default:
 #ifndef SIGEMT
@@ -376,7 +376,7 @@ const bfd_target core_cisco_le_vec =
      HAS_LINENO | HAS_DEBUG |
      HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED),
     (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
-    0,			                                   /* symbol prefix */
+    0,							   /* symbol prefix */
     ' ',						   /* ar_pad_char */
     16,							   /* ar_max_namelen */
     0,				/* match_priority */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff64-rs6000.c ./bfd/coff64-rs6000.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff64-rs6000.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff64-rs6000.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for IBM RS/6000 "XCOFF64" files.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Written Clinton Popetz.
    Contributed by Cygnus Support.
 
@@ -345,7 +345,7 @@ _bfd_xcoff64_swap_sym_out (bfd *abfd, vo
 
 static void
 _bfd_xcoff64_swap_aux_in (bfd *abfd, void *ext1, int type, int in_class,
-                          int indx, int numaux, void *in1)
+			  int indx, int numaux, void *in1)
 {
   union external_auxent *ext = (union external_auxent *) ext1;
   union internal_auxent *in = (union internal_auxent *) in1;
@@ -357,7 +357,7 @@ _bfd_xcoff64_swap_aux_in (bfd *abfd, voi
 	{
 	  in->x_file.x_n.x_zeroes = 0;
 	  in->x_file.x_n.x_offset =
-            H_GET_32 (abfd, ext->x_file.x_n.x_n.x_offset);
+	    H_GET_32 (abfd, ext->x_file.x_n.x_n.x_offset);
 	}
       else
 	{
@@ -432,9 +432,9 @@ _bfd_xcoff64_swap_aux_in (bfd *abfd, voi
 
 static unsigned int
 _bfd_xcoff64_swap_aux_out (bfd *abfd, void *inp, int type, int in_class,
-                           int indx ATTRIBUTE_UNUSED,
-                           int numaux ATTRIBUTE_UNUSED,
-                           void *extp)
+			   int indx ATTRIBUTE_UNUSED,
+			   int numaux ATTRIBUTE_UNUSED,
+			   void *extp)
 {
   union internal_auxent *in = (union internal_auxent *) inp;
   union external_auxent *ext = (union external_auxent *) extp;
@@ -447,7 +447,7 @@ _bfd_xcoff64_swap_aux_out (bfd *abfd, vo
 	{
 	  H_PUT_32 (abfd, 0, ext->x_file.x_n.x_n.x_zeroes);
 	  H_PUT_32 (abfd, in->x_file.x_n.x_offset,
-                    ext->x_file.x_n.x_n.x_offset);
+		    ext->x_file.x_n.x_n.x_offset);
 	}
       else
 	{
@@ -521,8 +521,8 @@ _bfd_xcoff64_swap_aux_out (bfd *abfd, vo
 static bfd_boolean
 _bfd_xcoff64_put_symbol_name (struct bfd_link_info *info,
 			      struct bfd_strtab_hash *strtab,
-                              struct internal_syment *sym,
-                              const char *name)
+			      struct internal_syment *sym,
+			      const char *name)
 {
   bfd_boolean hash;
   bfd_size_type indx;
@@ -541,9 +541,9 @@ _bfd_xcoff64_put_symbol_name (struct bfd
 
 static bfd_boolean
 _bfd_xcoff64_put_ldsymbol_name (bfd *abfd ATTRIBUTE_UNUSED,
-                                struct xcoff_loader_info *ldinfo,
-                                struct internal_ldsym *ldsym,
-                                const char *name)
+				struct xcoff_loader_info *ldinfo,
+				struct internal_ldsym *ldsym,
+				const char *name)
 {
   size_t len;
   len = strlen (name);
@@ -588,8 +588,8 @@ _bfd_xcoff64_put_ldsymbol_name (bfd *abf
 
 static void
 xcoff64_swap_ldhdr_in (bfd *abfd,
-                       const void *s,
-                       struct internal_ldhdr *dst)
+		       const void *s,
+		       struct internal_ldhdr *dst)
 {
   const struct external_ldhdr *src = (const struct external_ldhdr *) s;
 
@@ -1062,15 +1062,15 @@ xcoff64_write_object_contents (bfd *abfd
 
 static bfd_boolean
 xcoff64_reloc_type_br (bfd *input_bfd,
-                       asection *input_section,
-                       bfd *output_bfd ATTRIBUTE_UNUSED,
-                       struct internal_reloc *rel,
-                       struct internal_syment *sym ATTRIBUTE_UNUSED,
-                       struct reloc_howto_struct *howto,
-                       bfd_vma val,
-                       bfd_vma addend,
-                       bfd_vma *relocation,
-                       bfd_byte *contents)
+		       asection *input_section,
+		       bfd *output_bfd ATTRIBUTE_UNUSED,
+		       struct internal_reloc *rel,
+		       struct internal_syment *sym ATTRIBUTE_UNUSED,
+		       struct reloc_howto_struct *howto,
+		       bfd_vma val,
+		       bfd_vma addend,
+		       bfd_vma *relocation,
+		       bfd_byte *contents)
 {
   struct xcoff_link_hash_entry *h;
   bfd_vma section_offset;
@@ -1169,13 +1169,13 @@ xcoff64_reloc_type_br (bfd *input_bfd,
 
 bfd_boolean
 xcoff64_ppc_relocate_section (bfd *output_bfd,
-                              struct bfd_link_info *info,
-                              bfd *input_bfd,
-                              asection *input_section,
-                              bfd_byte *contents,
-                              struct internal_reloc *relocs,
-                              struct internal_syment *syms,
-                              asection **sections)
+			      struct bfd_link_info *info,
+			      bfd *input_bfd,
+			      asection *input_section,
+			      bfd_byte *contents,
+			      struct internal_reloc *relocs,
+			      struct internal_syment *syms,
+			      asection **sections)
 {
   struct internal_reloc *rel;
   struct internal_reloc *relend;
@@ -1807,7 +1807,7 @@ xcoff64_rtype2howto (arelent *relent, st
 
 reloc_howto_type *
 xcoff64_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                           bfd_reloc_code_real_type code)
+			   bfd_reloc_code_real_type code)
 {
   switch (code)
     {
@@ -1852,6 +1852,46 @@ xcoff64_reloc_name_lookup (bfd *abfd ATT
   return NULL;
 }
 
+/* PR 21786:  The PE/COFF standard does not require NUL termination for any of
+   the ASCII fields in the archive headers.  So in order to be able to extract
+   numerical values we provide our own versions of strtol and strtoll which
+   take a maximum length as an additional parameter.  Also - just to save space,
+   we omit the endptr return parameter, since we know that it is never used.  */
+
+static long
+_bfd_strntol (const char * nptr, int base, unsigned int maxlen)
+{
+  char buf[24]; /* Should be enough.  */
+
+  BFD_ASSERT (maxlen < (sizeof (buf) - 1));
+
+  memcpy (buf, nptr, maxlen);
+  buf[maxlen] = 0;
+  return strtol (buf, NULL, base);
+}
+
+static long long
+_bfd_strntoll (const char * nptr, int base, unsigned int maxlen)
+{
+  char buf[32]; /* Should be enough.  */
+
+  BFD_ASSERT (maxlen < (sizeof (buf) - 1));
+
+  memcpy (buf, nptr, maxlen);
+  buf[maxlen] = 0;
+  return strtoll (buf, NULL, base);
+}
+
+/* Macro to read an ASCII value stored in an archive header field.  */
+#define GET_VALUE_IN_FIELD(VAR, FIELD)		  \
+  do						  \
+    {						  \
+      (VAR) = sizeof (VAR) > sizeof (long)	  \
+	? _bfd_strntoll (FIELD, 10, sizeof FIELD) \
+	: _bfd_strntol (FIELD, 10, sizeof FIELD); \
+    }						  \
+  while (0)
+
 /* Read in the armap of an XCOFF archive.  */
 
 static bfd_boolean
@@ -1892,7 +1932,7 @@ xcoff64_slurp_armap (bfd *abfd)
     return FALSE;
 
   /* Skip the name (normally empty).  */
-  namlen = strtol (hdr.namlen, (char **) NULL, 10);
+  GET_VALUE_IN_FIELD (namlen, hdr.namlen);
   pos = ((namlen + 1) & ~(size_t) 1) + SXCOFFARFMAG;
   if (bfd_seek (abfd, pos, SEEK_CUR) != 0)
     return FALSE;
@@ -2081,7 +2121,7 @@ xcoff64_sizeof_headers (bfd *abfd,
 
 static asection *
 xcoff64_create_csect_from_smclas (bfd *abfd, union internal_auxent *aux,
-                                  const char *symbol_name)
+				  const char *symbol_name)
 {
   asection *return_value = NULL;
 
@@ -2117,28 +2157,28 @@ xcoff64_create_csect_from_smclas (bfd *a
 
 static bfd_boolean
 xcoff64_is_lineno_count_overflow (bfd *abfd ATTRIBUTE_UNUSED,
-                                  bfd_vma value ATTRIBUTE_UNUSED)
+				  bfd_vma value ATTRIBUTE_UNUSED)
 {
   return FALSE;
 }
 
 static bfd_boolean
 xcoff64_is_reloc_count_overflow (bfd *abfd ATTRIBUTE_UNUSED,
-                                 bfd_vma value ATTRIBUTE_UNUSED)
+				 bfd_vma value ATTRIBUTE_UNUSED)
 {
   return FALSE;
 }
 
 static bfd_vma
 xcoff64_loader_symbol_offset (bfd *abfd ATTRIBUTE_UNUSED,
-                              struct internal_ldhdr *ldhdr)
+			      struct internal_ldhdr *ldhdr)
 {
   return (ldhdr->l_symoff);
 }
 
 static bfd_vma
 xcoff64_loader_reloc_offset (bfd *abfd ATTRIBUTE_UNUSED,
-                             struct internal_ldhdr *ldhdr)
+			     struct internal_ldhdr *ldhdr)
 {
   return (ldhdr->l_rldoff);
 }
@@ -2160,7 +2200,7 @@ xcoff64_bad_format_hook (bfd * abfd, voi
 
 static bfd_boolean
 xcoff64_generate_rtinit (bfd *abfd, const char *init, const char *fini,
-                         bfd_boolean rtld)
+			 bfd_boolean rtld)
 {
   bfd_byte filehdr_ext[FILHSZ];
   bfd_byte scnhdr_ext[SCNHSZ * 3];
@@ -2720,6 +2760,7 @@ const bfd_target rs6000_xcoff64_vec =
     /* Reloc */
     coff_get_reloc_upper_bound,
     coff_canonicalize_reloc,
+    _bfd_generic_set_reloc,
     xcoff64_reloc_type_lookup,
     xcoff64_reloc_name_lookup,
 
@@ -2745,6 +2786,7 @@ const bfd_target rs6000_xcoff64_vec =
     bfd_generic_discard_group,
     _bfd_generic_section_already_linked,
     _bfd_xcoff_define_common_symbol,
+    bfd_generic_define_start_stop,
 
     /* Dynamic */
     _bfd_xcoff_get_dynamic_symtab_upper_bound,
@@ -2979,6 +3021,7 @@ const bfd_target rs6000_xcoff64_aix_vec 
     /* Reloc */
     coff_get_reloc_upper_bound,
     coff_canonicalize_reloc,
+    _bfd_generic_set_reloc,
     xcoff64_reloc_type_lookup,
     xcoff64_reloc_name_lookup,
 
@@ -3004,6 +3047,7 @@ const bfd_target rs6000_xcoff64_aix_vec 
     bfd_generic_discard_group,
     _bfd_generic_section_already_linked,
     _bfd_xcoff_define_common_symbol,
+    bfd_generic_define_start_stop,
 
     /* Dynamic */
     _bfd_xcoff_get_dynamic_symtab_upper_bound,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-alpha.c ./bfd/coff-alpha.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-alpha.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-alpha.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for ALPHA Extended-Coff files.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Modified from coff-mips.c by Steve Chamberlain <sac@cygnus.com> and
    Ian Lance Taylor <ian@cygnus.com>.
 
@@ -614,8 +614,8 @@ alpha_adjust_reloc_in (bfd *abfd,
     case ALPHA_R_SREL32:
     case ALPHA_R_SREL64:
       /* This relocs appear to be fully resolved when they are against
-         internal symbols.  Against external symbols, BRADDR at least
-         appears to be resolved against the next instruction.  */
+	 internal symbols.  Against external symbols, BRADDR at least
+	 appears to be resolved against the next instruction.  */
       if (! intern->r_extern)
 	rptr->addend = 0;
       else
@@ -2027,7 +2027,7 @@ alpha_ecoff_read_ar_hdr (bfd *abfd)
       bfd_byte ab[8];
 
       /* This is a compressed file.  We must set the size correctly.
-         The size is the eight bytes after the dummy file header.  */
+	 The size is the eight bytes after the dummy file header.  */
       if (bfd_seek (abfd, (file_ptr) FILHSZ, SEEK_CUR) != 0
 	  || bfd_bread (ab, (bfd_size_type) 8, abfd) != 8
 	  || bfd_seek (abfd, (file_ptr) (- (FILHSZ + 8)), SEEK_CUR) != 0)
@@ -2187,7 +2187,7 @@ alpha_ecoff_openr_next_archived_file (bf
       bfd_size_type size;
 
       /* We can't use arelt_size here, because that uses parsed_size,
-         which is the uncompressed size.  We need the compressed size.  */
+	 which is the uncompressed size.  We need the compressed size.  */
       t = (struct areltdata *) last_file->arelt_data;
       h = (struct ar_hdr *) t->arch_header;
       size = strtol (h->ar_size, (char **) NULL, 10);
@@ -2340,8 +2340,12 @@ static const struct ecoff_backend_data a
 #define _bfd_ecoff_section_already_linked \
   _bfd_coff_section_already_linked
 #define _bfd_ecoff_bfd_define_common_symbol bfd_generic_define_common_symbol
+#define _bfd_ecoff_bfd_define_start_stop    bfd_generic_define_start_stop
 #define _bfd_ecoff_bfd_link_check_relocs    _bfd_generic_link_check_relocs
 
+/* Installing internal relocations in a section is also generic.  */
+#define _bfd_ecoff_set_reloc _bfd_generic_set_reloc
+
 const bfd_target alpha_ecoff_le_vec =
 {
   "ecoff-littlealpha",		/* name */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-apollo.c ./bfd/coff-apollo.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-apollo.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-apollo.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Apollo 68000 COFF binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    By Troy Rollo (troy@cbme.unsw.edu.au)
    Based on m68k standard COFF version Written by Cygnus Support.
 
@@ -34,13 +34,13 @@ extern reloc_howto_type apollocoff_howto
 #else
 reloc_howto_type apollocoff_howto_table[] =
   {
-    HOWTO (R_RELBYTE,	       0,  0,  	8,  FALSE, 0, complain_overflow_bitfield, 0, "8",	TRUE, 0x000000ff,0x000000ff, FALSE),
-    HOWTO (R_RELWORD,	       0,  1, 	16, FALSE, 0, complain_overflow_bitfield, 0, "16",	TRUE, 0x0000ffff,0x0000ffff, FALSE),
-    HOWTO (R_RELLONG,	       0,  2, 	32, FALSE, 0, complain_overflow_bitfield, 0, "32",	TRUE, 0xffffffff,0xffffffff, FALSE),
-    HOWTO (R_PCRBYTE,	       0,  0, 	8,  TRUE,  0, complain_overflow_signed,   0, "DISP8",   TRUE, 0x000000ff,0x000000ff, FALSE),
-    HOWTO (R_PCRWORD,	       0,  1, 	16, TRUE,  0, complain_overflow_signed,   0, "DISP16",  TRUE, 0x0000ffff,0x0000ffff, FALSE),
-    HOWTO (R_PCRLONG,	       0,  2, 	32, TRUE,  0, complain_overflow_signed,   0, "DISP32",  TRUE, 0xffffffff,0xffffffff, FALSE),
-    HOWTO (R_RELLONG_NEG,      0,  -2, 	32, FALSE, 0, complain_overflow_bitfield, 0, "-32",	TRUE, 0xffffffff,0xffffffff, FALSE),
+    HOWTO (R_RELBYTE,	       0,  0,	8,  FALSE, 0, complain_overflow_bitfield, 0, "8",	TRUE, 0x000000ff,0x000000ff, FALSE),
+    HOWTO (R_RELWORD,	       0,  1,	16, FALSE, 0, complain_overflow_bitfield, 0, "16",	TRUE, 0x0000ffff,0x0000ffff, FALSE),
+    HOWTO (R_RELLONG,	       0,  2,	32, FALSE, 0, complain_overflow_bitfield, 0, "32",	TRUE, 0xffffffff,0xffffffff, FALSE),
+    HOWTO (R_PCRBYTE,	       0,  0,	8,  TRUE,  0, complain_overflow_signed,	  0, "DISP8",	TRUE, 0x000000ff,0x000000ff, FALSE),
+    HOWTO (R_PCRWORD,	       0,  1,	16, TRUE,  0, complain_overflow_signed,	  0, "DISP16",	TRUE, 0x0000ffff,0x0000ffff, FALSE),
+    HOWTO (R_PCRLONG,	       0,  2,	32, TRUE,  0, complain_overflow_signed,	  0, "DISP32",	TRUE, 0xffffffff,0xffffffff, FALSE),
+    HOWTO (R_RELLONG_NEG,      0,  -2,	32, FALSE, 0, complain_overflow_bitfield, 0, "-32",	TRUE, 0xffffffff,0xffffffff, FALSE),
   };
 #endif /* not ONLY_DECLARE_RELOCS */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-arm.c ./bfd/coff-arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-arm.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-arm.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for ARM COFF files.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -109,41 +109,46 @@ coff_arm_reloc (bfd *abfd,
   x = ((x & ~howto->dst_mask)					\
        | (((x & howto->src_mask) + diff) & howto->dst_mask))
 
-    if (diff != 0)
-      {
-	reloc_howto_type *howto = reloc_entry->howto;
-	unsigned char *addr = (unsigned char *) data + reloc_entry->address;
+  if (diff != 0)
+    {
+      reloc_howto_type *howto = reloc_entry->howto;
+      unsigned char *addr = (unsigned char *) data + reloc_entry->address;
 
-	switch (howto->size)
-	  {
-	  case 0:
-	    {
-	      char x = bfd_get_8 (abfd, addr);
-	      DOIT (x);
-	      bfd_put_8 (abfd, x, addr);
-	    }
-	    break;
+      if (! bfd_reloc_offset_in_range (howto, abfd, input_section,
+				       reloc_entry->address
+				       * bfd_octets_per_byte (abfd)))
+	return bfd_reloc_outofrange;
 
-	  case 1:
-	    {
-	      short x = bfd_get_16 (abfd, addr);
-	      DOIT (x);
-	      bfd_put_16 (abfd, (bfd_vma) x, addr);
-	    }
-	    break;
+      switch (howto->size)
+	{
+	case 0:
+	  {
+	    char x = bfd_get_8 (abfd, addr);
+	    DOIT (x);
+	    bfd_put_8 (abfd, x, addr);
+	  }
+	  break;
 
-	  case 2:
-	    {
-	      long x = bfd_get_32 (abfd, addr);
-	      DOIT (x);
-	      bfd_put_32 (abfd, (bfd_vma) x, addr);
-	    }
-	    break;
+	case 1:
+	  {
+	    short x = bfd_get_16 (abfd, addr);
+	    DOIT (x);
+	    bfd_put_16 (abfd, (bfd_vma) x, addr);
+	  }
+	  break;
 
-	  default:
-	    abort ();
+	case 2:
+	  {
+	    long x = bfd_get_32 (abfd, addr);
+	    DOIT (x);
+	    bfd_put_32 (abfd, (bfd_vma) x, addr);
 	  }
-      }
+	  break;
+
+	default:
+	  abort ();
+	}
+    }
 
   /* Now let bfd_perform_relocation finish everything up.  */
   return bfd_reloc_continue;
@@ -175,14 +180,14 @@ coff_arm_reloc (bfd *abfd,
 
 #else
 
-#define ARM_8        0
-#define ARM_16       1
-#define ARM_32       2
-#define ARM_26       3
+#define ARM_8	     0
+#define ARM_16	     1
+#define ARM_32	     2
+#define ARM_26	     3
 #define ARM_DISP8    4
 #define ARM_DISP16   5
 #define ARM_DISP32   6
-#define ARM_26D      7
+#define ARM_26D	     7
 /* 8 is unused.  */
 #define ARM_NEG16    9
 #define ARM_NEG32   10
@@ -218,7 +223,7 @@ static reloc_howto_type aoutarm_std_relo
 	   complain_overflow_dont,
 	   aoutarm_fix_pcrel_26_done,
 	   "ARM_26D",
-	   TRUE, 	/* partial_inplace.  */
+	   TRUE,	/* partial_inplace.  */
 	   0x00ffffff,
 	   0x0,
 	   PCRELOFFSET),
@@ -231,7 +236,7 @@ static reloc_howto_type aoutarm_std_relo
 	   complain_overflow_bitfield,
 	   coff_arm_reloc,
 	   "ARM_32",
-	   TRUE, 	/* partial_inplace.  */
+	   TRUE,	/* partial_inplace.  */
 	   0xffffffff,
 	   0xffffffff,
 	   PCRELOFFSET),
@@ -244,7 +249,7 @@ static reloc_howto_type aoutarm_std_relo
 	   complain_overflow_bitfield,
 	   coff_arm_reloc,
 	   "ARM_RVA32",
-	   TRUE, 	/* partial_inplace.  */
+	   TRUE,	/* partial_inplace.  */
 	   0xffffffff,
 	   0xffffffff,
 	   PCRELOFFSET),
@@ -292,7 +297,7 @@ static reloc_howto_type aoutarm_std_relo
 	   complain_overflow_bitfield,
 	   coff_arm_reloc,
 	   "ARM_SECTION",
-	   TRUE, 	/* partial_inplace.  */
+	   TRUE,	/* partial_inplace.  */
 	   0x0000ffff,
 	   0x0000ffff,
 	   PCRELOFFSET),
@@ -305,7 +310,7 @@ static reloc_howto_type aoutarm_std_relo
 	   complain_overflow_bitfield,
 	   coff_arm_reloc,
 	   "ARM_SECREL",
-	   TRUE, 	/* partial_inplace.  */
+	   TRUE,	/* partial_inplace.  */
 	   0xffffffff,
 	   0xffffffff,
 	   PCRELOFFSET),
@@ -776,7 +781,7 @@ coff_thumb_pcrel_23 (bfd *abfd,
 		     char **error_message)
 {
   return coff_thumb_pcrel_common (abfd, reloc_entry, symbol, data,
-                                  input_section, output_bfd, error_message,
+				  input_section, output_bfd, error_message,
 				  b23);
 }
 
@@ -790,7 +795,7 @@ coff_thumb_pcrel_9 (bfd *abfd,
 		    char **error_message)
 {
   return coff_thumb_pcrel_common (abfd, reloc_entry, symbol, data,
-                                  input_section, output_bfd, error_message,
+				  input_section, output_bfd, error_message,
 				  b9);
 }
 #endif /* not ARM_WINCE */
@@ -805,7 +810,7 @@ coff_thumb_pcrel_12 (bfd *abfd,
 		     char **error_message)
 {
   return coff_thumb_pcrel_common (abfd, reloc_entry, symbol, data,
-                                  input_section, output_bfd, error_message,
+				  input_section, output_bfd, error_message,
 				  b12);
 }
 
@@ -818,8 +823,8 @@ coff_arm_reloc_type_lookup (bfd * abfd, 
     switch (bfd_arch_bits_per_address (abfd))
       {
       case 32:
-        code = BFD_RELOC_32;
-        break;
+	code = BFD_RELOC_32;
+	break;
       default:
 	return NULL;
       }
@@ -827,25 +832,25 @@ coff_arm_reloc_type_lookup (bfd * abfd, 
   switch (code)
     {
 #ifdef ARM_WINCE
-      ASTD (BFD_RELOC_32,                   ARM_32);
-      ASTD (BFD_RELOC_RVA,                  ARM_RVA32);
-      ASTD (BFD_RELOC_ARM_PCREL_BRANCH,     ARM_26);
+      ASTD (BFD_RELOC_32,		    ARM_32);
+      ASTD (BFD_RELOC_RVA,		    ARM_RVA32);
+      ASTD (BFD_RELOC_ARM_PCREL_BRANCH,	    ARM_26);
       ASTD (BFD_RELOC_THUMB_PCREL_BRANCH12, ARM_THUMB12);
-      ASTD (BFD_RELOC_32_SECREL,            ARM_SECREL);
+      ASTD (BFD_RELOC_32_SECREL,	    ARM_SECREL);
 #else
-      ASTD (BFD_RELOC_8,                    ARM_8);
-      ASTD (BFD_RELOC_16,                   ARM_16);
-      ASTD (BFD_RELOC_32,                   ARM_32);
-      ASTD (BFD_RELOC_ARM_PCREL_BRANCH,     ARM_26);
-      ASTD (BFD_RELOC_ARM_PCREL_BLX,        ARM_26);
-      ASTD (BFD_RELOC_8_PCREL,              ARM_DISP8);
-      ASTD (BFD_RELOC_16_PCREL,             ARM_DISP16);
-      ASTD (BFD_RELOC_32_PCREL,             ARM_DISP32);
-      ASTD (BFD_RELOC_RVA,                  ARM_RVA32);
+      ASTD (BFD_RELOC_8,		    ARM_8);
+      ASTD (BFD_RELOC_16,		    ARM_16);
+      ASTD (BFD_RELOC_32,		    ARM_32);
+      ASTD (BFD_RELOC_ARM_PCREL_BRANCH,	    ARM_26);
+      ASTD (BFD_RELOC_ARM_PCREL_BLX,	    ARM_26);
+      ASTD (BFD_RELOC_8_PCREL,		    ARM_DISP8);
+      ASTD (BFD_RELOC_16_PCREL,		    ARM_DISP16);
+      ASTD (BFD_RELOC_32_PCREL,		    ARM_DISP32);
+      ASTD (BFD_RELOC_RVA,		    ARM_RVA32);
       ASTD (BFD_RELOC_THUMB_PCREL_BRANCH9,  ARM_THUMB9);
       ASTD (BFD_RELOC_THUMB_PCREL_BRANCH12, ARM_THUMB12);
       ASTD (BFD_RELOC_THUMB_PCREL_BRANCH23, ARM_THUMB23);
-      ASTD (BFD_RELOC_THUMB_PCREL_BLX,      ARM_THUMB23);
+      ASTD (BFD_RELOC_THUMB_PCREL_BLX,	    ARM_THUMB23);
 #endif
     default: return NULL;
     }
@@ -869,12 +874,12 @@ coff_arm_reloc_name_lookup (bfd *abfd AT
 }
 
 #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER  2
-#define COFF_PAGE_SIZE                        0x1000
+#define COFF_PAGE_SIZE			      0x1000
 
 /* Turn a howto into a reloc  nunmber.  */
 #define SELECT_RELOC(x,howto) { x.r_type = howto->type; }
-#define BADMAG(x)             ARMBADMAG(x)
-#define ARM                   1			/* Customize coffcode.h.  */
+#define BADMAG(x)	      ARMBADMAG(x)
+#define ARM		      1			/* Customize coffcode.h.  */
 
 #ifndef ARM_WINCE
 /* Make sure that the 'r_offset' field is copied properly
@@ -901,7 +906,7 @@ struct coff_arm_link_hash_table
     bfd *			bfd_of_glue_owner;
 
     /* Support interworking with old, non-interworking aware ARM code.  */
-    int 			support_old_code;
+    int				support_old_code;
 };
 
 /* Get the ARM coff linker hash table from a link_info structure.  */
@@ -992,8 +997,8 @@ insert_thumb_branch (insn32 br_insn, int
 
   BFD_ASSERT ((rel_off & 1) != 1);
 
-  rel_off >>= 1;                              /* Half word aligned address.  */
-  low_bits = rel_off & 0x000007FF;            /* The bottom 11 bits.  */
+  rel_off >>= 1;			      /* Half word aligned address.  */
+  low_bits = rel_off & 0x000007FF;	      /* The bottom 11 bits.  */
   high_bits = (rel_off >> 11) & 0x000007FF;   /* The top 11 bits.  */
 
   if ((br_insn & LOW_HI_ORDER) == LOW_HI_ORDER)
@@ -1074,7 +1079,7 @@ find_arm_glue (struct bfd_link_info *inf
 	     ldr r12, __func_addr
 	     bx  r12
        __func_addr:
-            .word func    @ behave as if you saw a ARM_32 reloc
+	    .word func    @ behave as if you saw a ARM_32 reloc
 */
 
 #define ARM2THUMB_GLUE_SIZE 12
@@ -1092,12 +1097,12 @@ static const insn32 a2t3_func_addr_insn 
 	   nop					ldr  r6, __func_addr
    .arm						mov  lr, pc
       __func_change_to_arm:			bx   r6
-	   b func   			.arm
+	   b func			.arm
 					   __func_back_to_thumb:
-   		  				ldmia r13! {r6, lr}
-   					        bx    lr
-   					   __func_addr:
-					        .word	func
+						ldmia r13! {r6, lr}
+						bx    lr
+					   __func_addr:
+						.word	func
 */
 
 #define THUMB2ARM_GLUE_SIZE (globals->support_old_code ? 20 : 8)
@@ -1176,15 +1181,15 @@ coff_arm_relocate_section (bfd *output_b
 
   for (; rel < relend; rel++)
     {
-      int                            done = 0;
-      long                           symndx;
+      int			     done = 0;
+      long			     symndx;
       struct coff_link_hash_entry *  h;
-      struct internal_syment *       sym;
-      bfd_vma                        addend;
-      bfd_vma                        val;
-      reloc_howto_type *             howto;
-      bfd_reloc_status_type          rstat;
-      bfd_vma                        h_val;
+      struct internal_syment *	     sym;
+      bfd_vma			     addend;
+      bfd_vma			     val;
+      reloc_howto_type *	     howto;
+      bfd_reloc_status_type	     rstat;
+      bfd_vma			     h_val;
 
       symndx = rel->r_symndx;
 
@@ -1200,9 +1205,9 @@ coff_arm_relocate_section (bfd *output_b
 	}
 
       /* COFF treats common symbols in one of two ways.  Either the
-         size of the symbol is included in the section contents, or it
-         is not.  We assume that the size is not included, and force
-         the rtype_to_howto function to adjust the addend as needed.  */
+	 size of the symbol is included in the section contents, or it
+	 is not.  We assume that the size is not included, and force
+	 the rtype_to_howto function to adjust the addend as needed.  */
 
       if (sym != NULL && sym->n_scnum != 0)
 	addend = - sym->n_value;
@@ -1215,42 +1220,42 @@ coff_arm_relocate_section (bfd *output_b
 	return FALSE;
 
       /* The relocation_section function will skip pcrel_offset relocs
-         when doing a relocatable link.  However, we want to convert
-         ARM_26 to ARM_26D relocs if possible.  We return a fake howto in
-         this case without pcrel_offset set, and adjust the addend to
-         compensate.  'partial_inplace' is also set, since we want 'done'
-         relocations to be reflected in section's data.  */
+	 when doing a relocatable link.  However, we want to convert
+	 ARM_26 to ARM_26D relocs if possible.  We return a fake howto in
+	 this case without pcrel_offset set, and adjust the addend to
+	 compensate.  'partial_inplace' is also set, since we want 'done'
+	 relocations to be reflected in section's data.  */
       if (rel->r_type == ARM_26
-          && h != NULL
-          && bfd_link_relocatable (info)
-          && (h->root.type == bfd_link_hash_defined
+	  && h != NULL
+	  && bfd_link_relocatable (info)
+	  && (h->root.type == bfd_link_hash_defined
 	      || h->root.type == bfd_link_hash_defweak)
-          && (h->root.u.def.section->output_section
+	  && (h->root.u.def.section->output_section
 	      == input_section->output_section))
-        {
-          static reloc_howto_type fake_arm26_reloc =
+	{
+	  static reloc_howto_type fake_arm26_reloc =
 	    HOWTO (ARM_26,
-    	       2,
-    	       2,
-    	       24,
-    	       TRUE,
-    	       0,
-    	       complain_overflow_signed,
-    	       aoutarm_fix_pcrel_26 ,
-    	       "ARM_26",
-    	       TRUE,
-    	       0x00ffffff,
-    	       0x00ffffff,
-    	       FALSE);
+	       2,
+	       2,
+	       24,
+	       TRUE,
+	       0,
+	       complain_overflow_signed,
+	       aoutarm_fix_pcrel_26 ,
+	       "ARM_26",
+	       TRUE,
+	       0x00ffffff,
+	       0x00ffffff,
+	       FALSE);
 
-          addend -= rel->r_vaddr - input_section->vma;
+	  addend -= rel->r_vaddr - input_section->vma;
 #ifdef ARM_WINCE
-          /* FIXME: I don't know why, but the hack is necessary for correct
-                    generation of bl's instruction offset.  */
-          addend -= 8;
+	  /* FIXME: I don't know why, but the hack is necessary for correct
+		    generation of bl's instruction offset.  */
+	  addend -= 8;
 #endif
-          howto = & fake_arm26_reloc;
-        }
+	  howto = & fake_arm26_reloc;
+	}
 
 #ifdef ARM_WINCE
       /* MS ARM-CE makes the reloc relative to the opcode's pc, not
@@ -1260,13 +1265,13 @@ coff_arm_relocate_section (bfd *output_b
 #endif
 
       /* If we are doing a relocatable link, then we can just ignore
-         a PC relative reloc that is pcrel_offset.  It will already
-         have the correct value.  If this is not a relocatable link,
-         then we should ignore the symbol value.  */
+	 a PC relative reloc that is pcrel_offset.  It will already
+	 have the correct value.  If this is not a relocatable link,
+	 then we should ignore the symbol value.  */
       if (howto->pc_relative && howto->pcrel_offset)
-        {
-          if (bfd_link_relocatable (info))
-            continue;
+	{
+	  if (bfd_link_relocatable (info))
+	    continue;
 	  /* FIXME - it is not clear which targets need this next test
 	     and which do not.  It is known that it is needed for the
 	     VxWorks and EPOC-PE targets, but it is also known that it
@@ -1279,10 +1284,10 @@ coff_arm_relocate_section (bfd *output_b
 	     the beginning of the symbol's section, so we must not cancel
 	     out the symbol's value, otherwise we'll be adding it in
 	     twice.  */
-          if (sym != NULL && sym->n_scnum != 0)
-            addend += sym->n_value;
+	  if (sym != NULL && sym->n_scnum != 0)
+	    addend += sym->n_value;
 #endif
-        }
+	}
 
       val = 0;
 
@@ -1298,7 +1303,7 @@ coff_arm_relocate_section (bfd *output_b
 	  else
 	    {
 	      sec = sections[symndx];
-              val = (sec->output_section->vma
+	      val = (sec->output_section->vma
 		     + sec->output_offset
 		     + sym->n_value
 		     - sec->vma);
@@ -1306,15 +1311,15 @@ coff_arm_relocate_section (bfd *output_b
 	}
       else
 	{
-          /* We don't output the stubs if we are generating a
-             relocatable output file, since we may as well leave the
-             stub generation to the final linker pass. If we fail to
+	  /* We don't output the stubs if we are generating a
+	     relocatable output file, since we may as well leave the
+	     stub generation to the final linker pass. If we fail to
 	     verify that the name is defined, we'll try to build stubs
 	     for an undefined name...  */
-          if (! bfd_link_relocatable (info)
+	  if (! bfd_link_relocatable (info)
 	      && (   h->root.type == bfd_link_hash_defined
 		  || h->root.type == bfd_link_hash_defweak))
-            {
+	    {
 	      asection *   h_sec = h->root.u.def.section;
 	      const char * name  = h->root.root.string;
 
@@ -1323,17 +1328,17 @@ coff_arm_relocate_section (bfd *output_b
 		       + h_sec->output_section->vma
 		       + h_sec->output_offset);
 
-              if (howto->type == ARM_26)
-                {
-                  if (   h->symbol_class == C_THUMBSTATFUNC
+	      if (howto->type == ARM_26)
+		{
+		  if (   h->symbol_class == C_THUMBSTATFUNC
 		      || h->symbol_class == C_THUMBEXTFUNC)
 		    {
 		      /* Arm code calling a Thumb function.  */
-		      unsigned long int                 tmp;
-		      bfd_vma                           my_offset;
-		      asection *                        s;
-		      long int                          ret_offset;
-		      struct coff_link_hash_entry *     myh;
+		      unsigned long int			tmp;
+		      bfd_vma				my_offset;
+		      asection *			s;
+		      long int				ret_offset;
+		      struct coff_link_hash_entry *	myh;
 		      struct coff_arm_link_hash_table * globals;
 
 		      myh = find_arm_glue (info, name, input_bfd);
@@ -1377,7 +1382,7 @@ coff_arm_relocate_section (bfd *output_b
 			  bfd_put_32 (output_bfd, h_val | a2t3_func_addr_insn,
 				      s->contents + my_offset + 8);
 
-                          if (info->base_file
+			  if (info->base_file
 			      && !arm_emit_base_file_entry (info, output_bfd,
 							    s, my_offset + 8))
 			    return FALSE;
@@ -1406,23 +1411,23 @@ coff_arm_relocate_section (bfd *output_b
 				  contents + rel->r_vaddr - input_section->vma);
 		      done = 1;
 		    }
-                }
+		}
 
 #ifndef ARM_WINCE
 	      /* Note: We used to check for ARM_THUMB9 and ARM_THUMB12.  */
-              else if (howto->type == ARM_THUMB23)
-                {
-                  if (   h->symbol_class == C_EXT
+	      else if (howto->type == ARM_THUMB23)
+		{
+		  if (   h->symbol_class == C_EXT
 		      || h->symbol_class == C_STAT
 		      || h->symbol_class == C_LABEL)
 		    {
 		      /* Thumb code calling an ARM function.  */
-		      asection *                         s = 0;
-		      bfd_vma                            my_offset;
-		      unsigned long int                  tmp;
-		      long int                           ret_offset;
-		      struct coff_link_hash_entry *      myh;
-		      struct coff_arm_link_hash_table *  globals;
+		      asection *			 s = 0;
+		      bfd_vma				 my_offset;
+		      unsigned long int			 tmp;
+		      long int				 ret_offset;
+		      struct coff_link_hash_entry *	 myh;
+		      struct coff_arm_link_hash_table *	 globals;
 
 		      myh = find_thumb_glue (info, name, input_bfd);
 		      if (myh == NULL)
@@ -1482,7 +1487,7 @@ coff_arm_relocate_section (bfd *output_b
 			      bfd_put_32 (output_bfd, h_val,
 					  s->contents + my_offset + 16);
 
-                              if (info->base_file
+			      if (info->base_file
 				  && !arm_emit_base_file_entry (info,
 								output_bfd, s,
 								my_offset + 16))
@@ -1538,14 +1543,14 @@ coff_arm_relocate_section (bfd *output_b
 				  contents + rel->r_vaddr - input_section->vma);
 
 		      done = 1;
-                    }
-                }
+		    }
+		}
 #endif
-            }
+	    }
 
-          /* If the relocation type and destination symbol does not
-             fall into one of the above categories, then we can just
-             perform a direct link.  */
+	  /* If the relocation type and destination symbol does not
+	     fall into one of the above categories, then we can just
+	     perform a direct link.  */
 
 	  if (done)
 	    rstat = bfd_reloc_ok;
@@ -1581,22 +1586,22 @@ coff_arm_relocate_section (bfd *output_b
       /* Only perform this fix during the final link, not a relocatable link.  */
       else if (! bfd_link_relocatable (info)
 	       && howto->type == ARM_THUMB23)
-        {
-          /* This is pretty much a copy of what the default
-             _bfd_final_link_relocate and _bfd_relocate_contents
-             routines do to perform a relocation, with special
-             processing for the split addressing of the Thumb BL
-             instruction.  Again, it would probably be simpler adding a
-             ThumbBRANCH23 specific macro expansion into the default
-             code.  */
+	{
+	  /* This is pretty much a copy of what the default
+	     _bfd_final_link_relocate and _bfd_relocate_contents
+	     routines do to perform a relocation, with special
+	     processing for the split addressing of the Thumb BL
+	     instruction.  Again, it would probably be simpler adding a
+	     ThumbBRANCH23 specific macro expansion into the default
+	     code.  */
 
-          bfd_vma address = rel->r_vaddr - input_section->vma;
+	  bfd_vma address = rel->r_vaddr - input_section->vma;
 
 	  if (address > high_address)
 	    rstat = bfd_reloc_outofrange;
-          else
-            {
-              bfd_vma relocation = val + addend;
+	  else
+	    {
+	      bfd_vma relocation = val + addend;
 	      int size = bfd_get_reloc_size (howto);
 	      bfd_boolean overflow = FALSE;
 	      bfd_byte *location = contents + address;
@@ -1611,12 +1616,12 @@ coff_arm_relocate_section (bfd *output_b
 
 	      BFD_ASSERT (size == 4);
 
-              /* howto->pc_relative should be TRUE for type 14 BRANCH23.  */
-              relocation -= (input_section->output_section->vma
-                             + input_section->output_offset);
+	      /* howto->pc_relative should be TRUE for type 14 BRANCH23.  */
+	      relocation -= (input_section->output_section->vma
+			     + input_section->output_offset);
 
-              /* howto->pcrel_offset should be TRUE for type 14 BRANCH23.  */
-              relocation -= address;
+	      /* howto->pcrel_offset should be TRUE for type 14 BRANCH23.  */
+	      relocation -= address;
 
 	      /* No need to negate the relocation with BRANCH23.  */
 	      /* howto->complain_on_overflow == complain_overflow_signed for BRANCH23.  */
@@ -1672,13 +1677,13 @@ coff_arm_relocate_section (bfd *output_b
 		 which specifies that bit 1 of the target address will come from bit
 		 1 of the base address.  */
 	      if (bfd_big_endian (input_bfd))
-	        {
+		{
 		  if ((x & 0x1800) == 0x0800 && (relocation & 0x02))
 		    relocation += 2;
 		  relocation = (((relocation & 0xffe) >> 1)  | ((relocation << 4) & 0x07ff0000));
 		}
 	      else
-	        {
+		{
 		  if ((x & 0x18000000) == 0x08000000 && (relocation & 0x02))
 		    relocation += 2;
 		  relocation = (((relocation & 0xffe) << 15) | ((relocation >> 12) & 0x7ff));
@@ -1691,13 +1696,13 @@ coff_arm_relocate_section (bfd *output_b
 	      bfd_put_32 (input_bfd, x, location);
 
 	      rstat = overflow ? bfd_reloc_overflow : bfd_reloc_ok;
-            }
-        }
+	    }
+	}
 #endif
       else
-        if (bfd_link_relocatable (info) && ! howto->partial_inplace)
-            rstat = bfd_reloc_ok;
-        else
+	if (bfd_link_relocatable (info) && ! howto->partial_inplace)
+	    rstat = bfd_reloc_ok;
+	else
 	  rstat = _bfd_final_link_relocate (howto, input_bfd, input_section,
 					    contents,
 					    rel->r_vaddr - input_section->vma,
@@ -1728,7 +1733,7 @@ coff_arm_relocate_section (bfd *output_b
 	  if (patchit)
 	    {
 	      bfd_byte * location = contents + rel->r_vaddr - input_section->vma;
-	      bfd_vma    x        = bfd_get_32 (input_bfd, location);
+	      bfd_vma	 x	  = bfd_get_32 (input_bfd, location);
 
 	      bfd_put_32 (input_bfd, x | 1, location);
 	    }
@@ -1743,8 +1748,8 @@ coff_arm_relocate_section (bfd *output_b
 	case bfd_reloc_outofrange:
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: bad reloc address 0x%lx in section `%A'"),
-	     input_bfd, (unsigned long) rel->r_vaddr, input_section);
+	    (_("%B: bad reloc address %#Lx in section `%A'"),
+	     input_bfd, rel->r_vaddr, input_section);
 	  return FALSE;
 	case bfd_reloc_overflow:
 	  {
@@ -1778,8 +1783,8 @@ coff_arm_relocate_section (bfd *output_b
 bfd_boolean
 bfd_arm_allocate_interworking_sections (struct bfd_link_info * info)
 {
-  asection *                        s;
-  bfd_byte *                        foo;
+  asection *			    s;
+  bfd_byte *			    foo;
   struct coff_arm_link_hash_table * globals;
 
   globals = coff_arm_hash_table (info);
@@ -1820,14 +1825,14 @@ bfd_arm_allocate_interworking_sections (
 }
 
 static void
-record_arm_to_thumb_glue (struct bfd_link_info *        info,
+record_arm_to_thumb_glue (struct bfd_link_info *	info,
 			  struct coff_link_hash_entry * h)
 {
-  const char *                      name = h->root.root.string;
-  register asection *               s;
-  char *                            tmp_name;
-  struct coff_link_hash_entry *     myh;
-  struct bfd_link_hash_entry *      bh;
+  const char *			    name = h->root.root.string;
+  register asection *		    s;
+  char *			    tmp_name;
+  struct coff_link_hash_entry *	    myh;
+  struct bfd_link_hash_entry *	    bh;
   struct coff_arm_link_hash_table * globals;
   bfd_vma val;
   bfd_size_type amt;
@@ -1876,14 +1881,14 @@ record_arm_to_thumb_glue (struct bfd_lin
 
 #ifndef ARM_WINCE
 static void
-record_thumb_to_arm_glue (struct bfd_link_info *        info,
+record_thumb_to_arm_glue (struct bfd_link_info *	info,
 			  struct coff_link_hash_entry * h)
 {
-  const char *                       name = h->root.root.string;
-  asection *                         s;
-  char *                             tmp_name;
-  struct coff_link_hash_entry *      myh;
-  struct bfd_link_hash_entry *       bh;
+  const char *			     name = h->root.root.string;
+  asection *			     s;
+  char *			     tmp_name;
+  struct coff_link_hash_entry *	     myh;
+  struct bfd_link_hash_entry *	     bh;
   struct coff_arm_link_hash_table *  globals;
   bfd_vma val;
   bfd_size_type amt;
@@ -1956,12 +1961,12 @@ record_thumb_to_arm_glue (struct bfd_lin
    {armcoff/pe}.em  */
 
 bfd_boolean
-bfd_arm_get_bfd_for_interworking (bfd * 		 abfd,
+bfd_arm_get_bfd_for_interworking (bfd *			 abfd,
 				  struct bfd_link_info * info)
 {
   struct coff_arm_link_hash_table * globals;
-  flagword   			    flags;
-  asection * 			    sec;
+  flagword			    flags;
+  asection *			    sec;
 
   /* If we are only performing a partial link do not bother
      getting a bfd to hold the glue.  */
@@ -2009,9 +2014,9 @@ bfd_arm_get_bfd_for_interworking (bfd * 
 }
 
 bfd_boolean
-bfd_arm_process_before_allocation (bfd *                   abfd,
+bfd_arm_process_before_allocation (bfd *		   abfd,
 				   struct bfd_link_info *  info,
-				   int		           support_old_code)
+				   int			   support_old_code)
 {
   asection * sec;
   struct coff_arm_link_hash_table * globals;
@@ -2054,9 +2059,9 @@ bfd_arm_process_before_allocation (bfd *
 
       for (rel = i; rel < i + sec->reloc_count; ++rel)
 	{
-	  unsigned short                 r_type  = rel->r_type;
-	  long                           symndx;
-	  struct coff_link_hash_entry *  h;
+	  unsigned short		 r_type	 = rel->r_type;
+	  long				 symndx;
+	  struct coff_link_hash_entry *	 h;
 
 	  symndx = rel->r_symndx;
 
@@ -2068,7 +2073,7 @@ bfd_arm_process_before_allocation (bfd *
 	  if (symndx >= obj_conv_table_size (abfd))
 	    {
 	      /* xgettext:c-format */
-	      _bfd_error_handler (_("%B: illegal symbol index in reloc: %d"),
+	      _bfd_error_handler (_("%B: illegal symbol index in reloc: %ld"),
 				  abfd, symndx);
 	      continue;
 	    }
@@ -2125,17 +2130,17 @@ bfd_arm_process_before_allocation (bfd *
 
 #endif /* ! defined (COFF_IMAGE_WITH_PE) */
 
-#define coff_bfd_reloc_type_lookup 		coff_arm_reloc_type_lookup
-#define coff_bfd_reloc_name_lookup	coff_arm_reloc_name_lookup
-#define coff_relocate_section 			coff_arm_relocate_section
-#define coff_bfd_is_local_label_name 		coff_arm_is_local_label_name
+#define coff_bfd_reloc_type_lookup		coff_arm_reloc_type_lookup
+#define coff_bfd_reloc_name_lookup		coff_arm_reloc_name_lookup
+#define coff_relocate_section			coff_arm_relocate_section
+#define coff_bfd_is_local_label_name		coff_arm_is_local_label_name
 #define coff_adjust_symndx			coff_arm_adjust_symndx
-#define coff_link_output_has_begun 		coff_arm_link_output_has_begun
+#define coff_link_output_has_begun		coff_arm_link_output_has_begun
 #define coff_final_link_postscript		coff_arm_final_link_postscript
 #define coff_bfd_merge_private_bfd_data		coff_arm_merge_private_bfd_data
 #define coff_bfd_print_private_bfd_data		coff_arm_print_private_bfd_data
-#define coff_bfd_set_private_flags              _bfd_coff_arm_set_private_flags
-#define coff_bfd_copy_private_bfd_data          coff_arm_copy_private_bfd_data
+#define coff_bfd_set_private_flags		_bfd_coff_arm_set_private_flags
+#define coff_bfd_copy_private_bfd_data		coff_arm_copy_private_bfd_data
 #define coff_bfd_link_hash_table_create		coff_arm_link_hash_table_create
 
 /* When doing a relocatable link, we want to convert ARM_26 relocs
@@ -2232,12 +2237,12 @@ error: %B passes floats in integer regis
 		/* xgettext: c-format */
 		_bfd_error_handler (_("\
 error: %B is compiled as position independent code, whereas target %B is absolute position"),
-                                    ibfd, obfd);
+				    ibfd, obfd);
 	      else
 		/* xgettext: c-format */
 		_bfd_error_handler (_("\
 error: %B is compiled as absolute position code, whereas target %B is position independent"),
-                                    ibfd, obfd);
+				    ibfd, obfd);
 
 	      bfd_set_error (bfd_error_wrong_format);
 	      return FALSE;
@@ -2341,7 +2346,7 @@ _bfd_coff_arm_set_private_flags (bfd * a
   if (APCS_SET (abfd)
       && (   (APCS_26_FLAG    (abfd) != flag)
 	  || (APCS_FLOAT_FLAG (abfd) != (flags & F_APCS_FLOAT))
-	  || (PIC_FLAG        (abfd) != (flags & F_PIC))
+	  || (PIC_FLAG	      (abfd) != (flags & F_PIC))
 	  ))
     return FALSE;
 
@@ -2451,7 +2456,7 @@ Warning: Clearing the interworking flag 
       labels of the form Lxxx to be stripped.  */
 
 static bfd_boolean
-coff_arm_is_local_label_name (bfd *        abfd ATTRIBUTE_UNUSED,
+coff_arm_is_local_label_name (bfd *	   abfd ATTRIBUTE_UNUSED,
 			      const char * name)
 {
 #ifdef USER_LABEL_PREFIX
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-aux.c ./bfd/coff-aux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-aux.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-aux.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Apple M68K COFF A/UX 3.x files.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Written by Richard Henderson <rth@tamu.edu>.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-bfd.c ./bfd/coff-bfd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-bfd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-bfd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD COFF interfaces used outside of BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-bfd.h ./bfd/coff-bfd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-bfd.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-bfd.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD COFF interfaces used outside of BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coffcode.h ./bfd/coffcode.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coffcode.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coffcode.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for the generic parts of most COFF variants, for BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -383,7 +383,7 @@ CODE_FRAGMENT
 #define COFFLONGSECTIONCATHELPER(x,y)    x ## y
 /* If the input macro Y is blank or '1', return an odd number; if it is
    '0', return an even number.  Result undefined in all other cases.  */
-#define BLANKOR1TOODD(y)                 COFFLONGSECTIONCATHELPER(1,y)
+#define BLANKOR1TOODD(y)		 COFFLONGSECTIONCATHELPER(1,y)
 /* Defined to numerical 0 or 1 according to whether generation of long
    section names is disabled or enabled by default.  */
 #define COFF_ENABLE_LONG_SECTION_NAMES   (BLANKOR1TOODD(COFF_LONG_SECTION_NAMES) & 1)
@@ -548,7 +548,7 @@ sec_to_styp_flags (const char *sec_name,
 #endif /* _LIT */
     }
   else if (CONST_STRNEQ (sec_name, DOT_DEBUG)
-           || CONST_STRNEQ (sec_name, DOT_ZDEBUG))
+	   || CONST_STRNEQ (sec_name, DOT_ZDEBUG))
     {
       /* Handle the XCOFF debug section and DWARF2 debug sections.  */
       if (!sec_name[6])
@@ -562,7 +562,7 @@ sec_to_styp_flags (const char *sec_name,
     }
 #ifdef COFF_LONG_SECTION_NAMES
   else if (CONST_STRNEQ (sec_name, GNU_LINKONCE_WI)
-  	   || CONST_STRNEQ (sec_name, GNU_LINKONCE_WT))
+	   || CONST_STRNEQ (sec_name, GNU_LINKONCE_WT))
     {
       styp_flags = STYP_DEBUG_INFO;
     }
@@ -589,11 +589,11 @@ sec_to_styp_flags (const char *sec_name,
       int i;
 
       for (i = 0; i < XCOFF_DWSECT_NBR_NAMES; i++)
-        if (!strcmp (sec_name, xcoff_dwsect_names[i].name))
-          {
-            styp_flags = STYP_DWARF | xcoff_dwsect_names[i].flag;
-            break;
-          }
+	if (!strcmp (sec_name, xcoff_dwsect_names[i].name))
+	  {
+	    styp_flags = STYP_DWARF | xcoff_dwsect_names[i].flag;
+	    break;
+	  }
     }
 #endif
   /* Try and figure out what it should be */
@@ -675,8 +675,8 @@ sec_to_styp_flags (const char *sec_name,
   if (is_dbg)
     {
       sec_flags &= (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD
-      		    | SEC_LINK_DUPLICATES_SAME_CONTENTS
-      		    | SEC_LINK_DUPLICATES_SAME_SIZE);
+		    | SEC_LINK_DUPLICATES_SAME_CONTENTS
+		    | SEC_LINK_DUPLICATES_SAME_SIZE);
       sec_flags |= SEC_DEBUGGING | SEC_READONLY;
     }
 
@@ -706,7 +706,7 @@ sec_to_styp_flags (const char *sec_name,
     styp_flags |= IMAGE_SCN_LNK_COMDAT;
   if ((sec_flags
        & (SEC_LINK_DUPLICATES_DISCARD | SEC_LINK_DUPLICATES_SAME_CONTENTS
-          | SEC_LINK_DUPLICATES_SAME_SIZE)) != 0)
+	  | SEC_LINK_DUPLICATES_SAME_SIZE)) != 0)
     styp_flags |= IMAGE_SCN_LNK_COMDAT;
 
   /* skip LINKER_CREATED */
@@ -997,7 +997,13 @@ handle_COMDAT (bfd * abfd,
 			|| isym.n_sclass == C_EXT)
 		       && BTYPE (isym.n_type) == T_NULL
 		       && isym.n_value == 0))
-		  abort ();
+		  {
+		    /* Malformed input files can trigger this test.
+		       cf PR 21781.  */
+		    _bfd_error_handler (_("%B: error: unexpected symbol '%s' in COMDAT section"),
+					abfd, symname);
+		    goto breakloop;
+		  }
 
 		/* FIXME LATER: MSVC generates section names
 		   like .text for comdats.  Gas generates
@@ -1311,7 +1317,7 @@ styp_to_sec_flags (bfd *abfd,
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B (%s): Section flag %s (0x%x) ignored"),
+	    (_("%B (%s): Section flag %s (%#lx) ignored"),
 	     abfd, name, unhandled, flag);
 	  result = FALSE;
 	}
@@ -1451,19 +1457,19 @@ Special entry points for gdb to swap in 
 .
 .  bfd_boolean (*_bfd_coff_pointerize_aux_hook)
 .    (bfd *, combined_entry_type *, combined_entry_type *,
-.	     unsigned int, combined_entry_type *);
+.     unsigned int, combined_entry_type *);
 .
 .  bfd_boolean (*_bfd_coff_print_aux)
 .    (bfd *, FILE *, combined_entry_type *, combined_entry_type *,
-.	     combined_entry_type *, unsigned int);
+.     combined_entry_type *, unsigned int);
 .
 .  void (*_bfd_coff_reloc16_extra_cases)
 .    (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
-.	    bfd_byte *, unsigned int *, unsigned int *);
+.     bfd_byte *, unsigned int *, unsigned int *);
 .
 .  int (*_bfd_coff_reloc16_estimate)
 .    (bfd *, asection *, arelent *, unsigned int,
-.	     struct bfd_link_info *);
+.     struct bfd_link_info *);
 .
 .  enum coff_symbol_classification (*_bfd_coff_classify_symbol)
 .    (bfd *, struct internal_syment *);
@@ -1476,21 +1482,20 @@ Special entry points for gdb to swap in 
 .
 .  bfd_boolean (*_bfd_coff_relocate_section)
 .    (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
-.	     struct internal_reloc *, struct internal_syment *, asection **);
+.     struct internal_reloc *, struct internal_syment *, asection **);
 .
 .  reloc_howto_type *(*_bfd_coff_rtype_to_howto)
 .    (bfd *, asection *, struct internal_reloc *,
-.	     struct coff_link_hash_entry *, struct internal_syment *,
-.	     bfd_vma *);
+.     struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *);
 .
 .  bfd_boolean (*_bfd_coff_adjust_symndx)
 .    (bfd *, struct bfd_link_info *, bfd *, asection *,
-.	     struct internal_reloc *, bfd_boolean *);
+.     struct internal_reloc *, bfd_boolean *);
 .
 .  bfd_boolean (*_bfd_coff_link_add_one_symbol)
 .    (struct bfd_link_info *, bfd *, const char *, flagword,
-.	     asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
-.	     struct bfd_link_hash_entry **);
+.     asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
+.     struct bfd_link_hash_entry **);
 .
 .  bfd_boolean (*_bfd_coff_link_output_has_begun)
 .    (bfd *, struct coff_final_link_info *);
@@ -1600,7 +1605,7 @@ Special entry points for gdb to swap in 
 .   (abfd, file, base, symbol, aux, indaux))
 .
 .#define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\
-.                                     reloc, data, src_ptr, dst_ptr)\
+.				      reloc, data, src_ptr, dst_ptr)\
 .  ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
 .   (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
 .
@@ -1629,7 +1634,7 @@ Special entry points for gdb to swap in 
 .  ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
 .   (obfd, info, ibfd, sec, rel, adjustedp))
 .#define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
-.                                     value, string, cp, coll, hashp)\
+.				      value, string, cp, coll, hashp)\
 .  ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
 .   (info, abfd, name, flags, section, value, string, cp, coll, hashp))
 .
@@ -1788,13 +1793,13 @@ coff_new_section_hook (bfd * abfd, asect
       int i;
 
       for (i = 0; i < XCOFF_DWSECT_NBR_NAMES; i++)
-        if (strcmp (bfd_get_section_name (abfd, section),
-                    xcoff_dwsect_names[i].name) == 0)
-          {
-            section->alignment_power = 0;
-            sclass = C_DWARF;
-            break;
-          }
+	if (strcmp (bfd_get_section_name (abfd, section),
+		    xcoff_dwsect_names[i].name) == 0)
+	  {
+	    section->alignment_power = 0;
+	    sclass = C_DWARF;
+	    break;
+	  }
     }
 #endif
 
@@ -1849,10 +1854,6 @@ coff_set_alignment_hook (bfd * abfd ATTR
     if ((1 << i) >= hdr->s_align)
       break;
 #endif
-#ifdef TIC80COFF
-  /* TI tools puts the alignment power in bits 8-11.  */
-  i = (hdr->s_flags >> 8) & 0xF ;
-#endif
 #ifdef COFF_DECODE_ALIGNMENT
   i = COFF_DECODE_ALIGNMENT(hdr->s_flags);
 #endif
@@ -2599,23 +2600,15 @@ coff_print_aux (bfd *abfd ATTRIBUTE_UNUS
       if (SMTYP_SMTYP (aux->u.auxent.x_csect.x_smtyp) != XTY_LD)
 	{
 	  BFD_ASSERT (! aux->fix_scnlen);
-#ifdef XCOFF64
-	  fprintf (file, "val %5lld",
-		   (long long) aux->u.auxent.x_csect.x_scnlen.l);
-#else
-	  fprintf (file, "val %5ld", (long) aux->u.auxent.x_csect.x_scnlen.l);
-#endif
+	  fprintf (file, "val %5" BFD_VMA_FMT "d",
+		   aux->u.auxent.x_csect.x_scnlen.l);
 	}
       else
 	{
 	  fprintf (file, "indx ");
 	  if (! aux->fix_scnlen)
-#ifdef XCOFF64
-	    fprintf (file, "%4lld",
-		     (long long) aux->u.auxent.x_csect.x_scnlen.l);
-#else
-	    fprintf (file, "%4ld", (long) aux->u.auxent.x_csect.x_scnlen.l);
-#endif
+	    fprintf (file, "%4" BFD_VMA_FMT "d",
+		     aux->u.auxent.x_csect.x_scnlen.l);
 	  else
 	    fprintf (file, "%4ld",
 		     (long) (aux->u.auxent.x_csect.x_scnlen.p - table_base));
@@ -3423,8 +3416,8 @@ coff_compute_section_file_positions (bfd
 	     and the native linker doesn't try to align the text sections.
 	     For example:
 
-	     0 .text         000054cc  10000128  10000128  00000128  2**5
-                             CONTENTS, ALLOC, LOAD, CODE
+	     0 .text	     000054cc  10000128	 10000128  00000128  2**5
+			     CONTENTS, ALLOC, LOAD, CODE
 	  */
 
 	  if (!strcmp (current->name, _TEXT)
@@ -3773,7 +3766,7 @@ coff_write_object_contents (bfd * abfd)
 		  _bfd_error_handler
 		    /* xgettext:c-format */
 		    (_("%B: section %A: string table overflow at offset %ld"),
-		    abfd, current, string_size);
+		    abfd, current, (unsigned long) string_size);
 		  return FALSE;
 		}
 
@@ -3867,12 +3860,25 @@ coff_write_object_contents (bfd * abfd)
 			 ? 1 << current->alignment_power
 			 : 0);
 #endif
-#ifdef TIC80COFF
-      /* TI COFF puts the alignment power in bits 8-11 of the flags.  */
-      section.s_flags |= (current->alignment_power & 0xF) << 8;
-#endif
 #ifdef COFF_ENCODE_ALIGNMENT
       COFF_ENCODE_ALIGNMENT(section, current->alignment_power);
+      if ((unsigned int)COFF_DECODE_ALIGNMENT(section.s_flags)
+	  != current->alignment_power)
+	{
+	  bfd_boolean warn = coff_data (abfd)->link_info
+	    && !bfd_link_relocatable (coff_data (abfd)->link_info);
+
+	  _bfd_error_handler
+	    /* xgettext:c-format */
+	    (_("%B:%s section %s: alignment 2**%u not representable"),
+	    abfd, warn ? " warning:" : "", current->name,
+	    current->alignment_power);
+	  if (!warn)
+	    {
+	      bfd_set_error (bfd_error_nonrepresentable_section);
+	      return FALSE;
+	    }
+	}
 #endif
 
 #ifdef COFF_IMAGE_WITH_PE
@@ -4471,7 +4477,7 @@ coff_set_section_contents (bfd * abfd,
       - a (four byte) word holding the length of this record, in words,
       - a word that always seems to be set to "2",
       - the path to a shared library, null-terminated and then padded
-        to a whole word boundary.
+	to a whole word boundary.
 
       bfd_assert calls have been added to alert if an attempt is made
       to write a section which doesn't follow these assumptions.  The
@@ -4580,6 +4586,14 @@ coff_slurp_line_table (bfd *abfd, asecti
 
   BFD_ASSERT (asect->lineno == NULL);
 
+  if (asect->lineno_count > asect->size)
+    {
+      _bfd_error_handler
+	(_("%B: warning: line number count (%#lx) exceeds section size (%#lx)"),
+	 abfd, (unsigned long) asect->lineno_count, (unsigned long) asect->size);
+      return FALSE;
+    }
+
   amt = ((bfd_size_type) asect->lineno_count + 1) * sizeof (alent);
   lineno_cache = (alent *) bfd_alloc (abfd, amt);
   if (lineno_cache == NULL)
@@ -4615,7 +4629,7 @@ coff_slurp_line_table (bfd *abfd, asecti
       if (cache_ptr->line_number == 0)
 	{
 	  combined_entry_type * ent;
-	  bfd_vma symndx;
+	  unsigned long symndx;
 	  coff_symbol_type *sym;
 
 	  have_func = FALSE;
@@ -4625,7 +4639,7 @@ coff_slurp_line_table (bfd *abfd, asecti
 	      _bfd_error_handler
 		/* xgettext:c-format */
 		(_("%B: warning: illegal symbol index 0x%lx in line number entry %d"),
-		 abfd, (long) symndx, counter);
+		 abfd, symndx, counter);
 	      cache_ptr->line_number = -1;
 	      ret = FALSE;
 	      continue;
@@ -4639,7 +4653,7 @@ coff_slurp_line_table (bfd *abfd, asecti
 	      _bfd_error_handler
 		/* xgettext:c-format */
 		(_("%B: warning: illegal symbol index 0x%lx in line number entry %d"),
-		 abfd, (long) symndx, counter);
+		 abfd, symndx, counter);
 	      cache_ptr->line_number = -1;
 	      ret = FALSE;
 	      continue;
@@ -4819,6 +4833,9 @@ coff_slurp_symbol_table (bfd * abfd)
 #endif
 #ifdef RS6000COFF_C
 	    case C_HIDEXT:
+#if ! defined _AIX52 && ! defined AIX_WEAK_SUPPORT
+	    case C_AIX_WEAKEXT:
+#endif
 #endif
 #ifdef C_SYSTEM
 	    case C_SYSTEM:	/* System Wide variable.  */
@@ -4891,7 +4908,11 @@ coff_slurp_symbol_table (bfd * abfd)
 		  && src->u.syment.n_scnum > 0)
 		dst->symbol.flags = BSF_LOCAL;
 #endif
-	      if (src->u.syment.n_sclass == C_WEAKEXT)
+	      if (src->u.syment.n_sclass == C_WEAKEXT
+#ifdef RS6000COFF_C
+		  || src->u.syment.n_sclass == C_AIX_WEAKEXT
+#endif
+		  )
 		dst->symbol.flags |= BSF_WEAK;
 
 	      break;
@@ -4906,8 +4927,8 @@ coff_slurp_symbol_table (bfd * abfd)
 	    case C_THUMBSTATFUNC:/* Thumb static function.  */
 #endif
 #ifdef RS6000COFF_C
-            case C_DWARF:	 /* A label in a dwarf section.  */
-            case C_INFO:	 /* A label in a comment section.  */
+	    case C_DWARF:	 /* A label in a dwarf section.  */
+	    case C_INFO:	 /* A label in a comment section.  */
 #endif
 	    case C_LABEL:	 /* Label.  */
 	      if (src->u.syment.n_scnum == N_DEBUG)
@@ -5056,9 +5077,9 @@ coff_slurp_symbol_table (bfd * abfd)
 		  && src->u.syment.n_scnum == 0)
 		break;
 #ifdef RS6000COFF_C
-              /* XCOFF specific: deleted entry.  */
-              if (src->u.syment.n_value == C_NULL_VALUE)
-                break;
+	      /* XCOFF specific: deleted entry.  */
+	      if (src->u.syment.n_value == C_NULL_VALUE)
+		break;
 #endif
 	      /* Fall through.  */
 	    case C_EXTDEF:	/* External definition.  */
@@ -5180,10 +5201,10 @@ coff_classify_symbol (bfd *abfd,
 	{
 	  asection *sec;
 	  char * name;
- 	  char buf[SYMNMLEN + 1];
+	  char buf[SYMNMLEN + 1];
 
 	  name = _bfd_coff_internal_syment_name (abfd, syment, buf)
- 	  sec = coff_section_from_bfd_index (abfd, syment->n_scnum);
+	  sec = coff_section_from_bfd_index (abfd, syment->n_scnum);
 	  if (sec != NULL && name != NULL
 	      && (strcmp (bfd_get_section_name (abfd, sec), name) == 0))
 	    return COFF_SYMBOL_PE_SECTION;
@@ -5313,14 +5334,14 @@ coff_slurp_reloc_table (bfd * abfd, sec_
 #else
       cache_ptr->address = dst.r_vaddr;
 
-      if (dst.r_symndx != -1)
+      if (dst.r_symndx != -1 && symbols != NULL)
 	{
 	  if (dst.r_symndx < 0 || dst.r_symndx >= obj_conv_table_size (abfd))
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
 		(_("%B: warning: illegal symbol index %ld in relocs"),
-		 abfd, (long) dst.r_symndx);
+		 abfd, dst.r_symndx);
 	      cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
 	      ptr = NULL;
 	    }
@@ -5359,8 +5380,8 @@ coff_slurp_reloc_table (bfd * abfd, sec_
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: illegal relocation type %d at address 0x%lx"),
-	     abfd, dst.r_type, (long) dst.r_vaddr);
+	    (_("%B: illegal relocation type %d at address %#Lx"),
+	     abfd, dst.r_type, dst.r_vaddr);
 	  bfd_set_error (bfd_error_bad_value);
 	  return FALSE;
 	}
@@ -5439,6 +5460,10 @@ coff_canonicalize_reloc (bfd * abfd,
   return section->reloc_count;
 }
 
+#ifndef coff_set_reloc
+#define coff_set_reloc _bfd_generic_set_reloc
+#endif
+
 #ifndef coff_reloc16_estimate
 #define coff_reloc16_estimate dummy_reloc16_estimate
 
@@ -6057,6 +6082,10 @@ static bfd_coff_backend_data bigobj_swap
 #define coff_bfd_define_common_symbol	    bfd_generic_define_common_symbol
 #endif
 
+#ifndef coff_bfd_define_start_stop
+#define coff_bfd_define_start_stop	    bfd_generic_define_start_stop
+#endif
+
 #define CREATE_BIG_COFF_TARGET_VEC(VAR, NAME, EXTRA_O_FLAGS, EXTRA_S_FLAGS, UNDER, ALTERNATIVE, SWAP_TABLE)	\
 const bfd_target VAR =							\
 {									\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coffgen.c ./bfd/coffgen.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coffgen.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coffgen.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for the generic parts of COFF, for BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -72,9 +72,9 @@ make_a_section_from_file (bfd *abfd,
       const char *strings;
 
       /* Flag that this BFD uses long names, even though the format might
-         expect them to be off by default.  This won't directly affect the
-         format of any output BFD created from this one, but the information
-         can be used to decide what to do.  */
+	 expect them to be off by default.  This won't directly affect the
+	 format of any output BFD created from this one, but the information
+	 can be used to decide what to do.  */
       bfd_coff_set_long_section_names (abfd, TRUE);
       memcpy (buf, hdr->s_name + 1, SCNNMLEN - 1);
       buf[SCNNMLEN - 1] = '\0';
@@ -88,7 +88,7 @@ make_a_section_from_file (bfd *abfd,
 	    return FALSE;
 	  strings += strindex;
 	  name = (char *) bfd_alloc (abfd,
-                                     (bfd_size_type) strlen (strings) + 1 + 1);
+				     (bfd_size_type) strlen (strings) + 1 + 1);
 	  if (name == NULL)
 	    return FALSE;
 	  strcpy (name, strings);
@@ -99,7 +99,7 @@ make_a_section_from_file (bfd *abfd,
     {
       /* Assorted wastage to null-terminate the name, thanks AT&T! */
       name = (char *) bfd_alloc (abfd,
-                                 (bfd_size_type) sizeof (hdr->s_name) + 1 + 1);
+				 (bfd_size_type) sizeof (hdr->s_name) + 1 + 1);
       if (name == NULL)
 	return FALSE;
       strncpy (name, (char *) &hdr->s_name[0], sizeof (hdr->s_name));
@@ -193,7 +193,7 @@ make_a_section_from_file (bfd *abfd,
 		  memcpy (new_name + 2, name + 1, len);
 		}
 	    }
-         break;
+	 break;
 	case decompress:
 	  if (!bfd_init_section_decompress_status (abfd, return_section))
 	    {
@@ -226,9 +226,9 @@ make_a_section_from_file (bfd *abfd,
    ECOFF as well.  */
 const bfd_target *
 coff_real_object_p (bfd *,
-                    unsigned,
-                    struct internal_filehdr *,
-                    struct internal_aouthdr *);
+		    unsigned,
+		    struct internal_filehdr *,
+		    struct internal_aouthdr *);
 const bfd_target *
 coff_real_object_p (bfd *abfd,
 		    unsigned nscns,
@@ -595,7 +595,7 @@ coff_count_linenumbers (bfd *abfd)
   if (limit == 0)
     {
       /* This may be from the backend linker, in which case the
-         lineno_count in the sections is correct.  */
+	 lineno_count in the sections is correct.  */
       for (s = abfd->sections; s != NULL; s = s->next)
 	total += s->lineno_count;
       return total;
@@ -613,13 +613,13 @@ coff_count_linenumbers (bfd *abfd)
 	  coff_symbol_type *q = coffsymbol (q_maybe);
 
 	  /* The AIX 4.1 compiler can sometimes generate line numbers
-             attached to debugging symbols.  We try to simply ignore
-             those here.  */
+	     attached to debugging symbols.  We try to simply ignore
+	     those here.  */
 	  if (q->lineno != NULL
 	      && q->symbol.section->owner != NULL)
 	    {
 	      /* This symbol has line numbers.  Increment the owning
-	         section's linenumber count.  */
+		 section's linenumber count.  */
 	      alent *l = q->lineno;
 
 	      do
@@ -675,11 +675,11 @@ fixup_symbol_value (bfd *abfd,
 	  syment->n_value = (coff_symbol_ptr->symbol.value
 			     + coff_symbol_ptr->symbol.section->output_offset);
 	  if (! obj_pe (abfd))
-            {
-              syment->n_value += (syment->n_sclass == C_STATLAB)
-                ? coff_symbol_ptr->symbol.section->output_section->lma
-                : coff_symbol_ptr->symbol.section->output_section->vma;
-            }
+	    {
+	      syment->n_value += (syment->n_sclass == C_STATLAB)
+		? coff_symbol_ptr->symbol.section->output_section->lma
+		: coff_symbol_ptr->symbol.section->output_section->vma;
+	    }
 	}
       else
 	{
@@ -823,8 +823,8 @@ coff_mangle_symbols (bfd *bfd_ptr)
 	  if (s->fix_line)
 	    {
 	      /* The value is the offset into the line number entries
-                 for the symbol's section.  On output, the symbol's
-                 section should be N_DEBUG.  */
+		 for the symbol's section.  On output, the symbol's
+		 section should be N_DEBUG.  */
 	      s->u.syment.n_value =
 		(coff_symbol_ptr->symbol.section->output_section->line_filepos
 		 + s->u.syment.n_value * bfd_coff_linesz (bfd_ptr));
@@ -888,13 +888,13 @@ coff_fix_symbol_name (bfd *abfd,
 
       if (bfd_coff_force_symnames_in_strings (abfd))
 	{
-          native->u.syment._n._n_n._n_offset =
+	  native->u.syment._n._n_n._n_offset =
 	      (*string_size_p + STRING_SIZE_SIZE);
 	  native->u.syment._n._n_n._n_zeroes = 0;
 	  *string_size_p += 6;  /* strlen(".file") + 1 */
 	}
       else
-  	strncpy (native->u.syment._n._n_name, ".file", SYMNMLEN);
+	strncpy (native->u.syment._n._n_name, ".file", SYMNMLEN);
 
       BFD_ASSERT (! (native + 1)->is_sym);
       auxent = &(native + 1)->u.auxent;
@@ -1088,7 +1088,7 @@ coff_write_alien_symbol (bfd *abfd,
     {
       symbol->name = "";
       if (isym != NULL)
-        memset (isym, 0, sizeof (*isym));
+	memset (isym, 0, sizeof (*isym));
       return TRUE;
     }
   native = dummy;
@@ -1115,12 +1115,12 @@ coff_write_alien_symbol (bfd *abfd,
   else if (symbol->flags & BSF_DEBUGGING)
     {
       /* There isn't much point to writing out a debugging symbol
-         unless we are prepared to convert it into COFF debugging
-         format.  So, we just ignore them.  We must clobber the symbol
-         name to keep it from being put in the string table.  */
+	 unless we are prepared to convert it into COFF debugging
+	 format.  So, we just ignore them.  We must clobber the symbol
+	 name to keep it from being put in the string table.  */
       symbol->name = "";
       if (isym != NULL)
-        memset (isym, 0, sizeof (*isym));
+	memset (isym, 0, sizeof (*isym));
       return TRUE;
     }
   else
@@ -1132,7 +1132,7 @@ coff_write_alien_symbol (bfd *abfd,
 	native->u.syment.n_value += output_section->vma;
 
       /* Copy the any flags from the file header into the symbol.
-         FIXME: Why?  */
+	 FIXME: Why?  */
       {
 	coff_symbol_type *c = coff_symbol_from (symbol);
 	if (c != (coff_symbol_type *) NULL)
@@ -1418,8 +1418,8 @@ coff_write_symbols (bfd *abfd)
   else
     {
       /* We would normally not write anything here, but we'll write
-         out 4 so that any stupid coff reader which tries to read the
-         string table even when there isn't one won't croak.  */
+	 out 4 so that any stupid coff reader which tries to read the
+	 string table even when there isn't one won't croak.  */
       unsigned int size = STRING_SIZE_SIZE;
       bfd_byte buffer[STRING_SIZE_SIZE];
 
@@ -1640,13 +1640,23 @@ _bfd_coff_get_external_symbols (bfd *abf
   size = obj_raw_syment_count (abfd) * symesz;
   if (size == 0)
     return TRUE;
+  /* Check for integer overflow and for unreasonable symbol counts.  */
+  if (size < obj_raw_syment_count (abfd)
+      || (bfd_get_file_size (abfd) > 0
+	  && size > bfd_get_file_size (abfd)))
+
+    {
+      _bfd_error_handler (_("%B: corrupt symbol count: %#Lx"),
+			  abfd, obj_raw_syment_count (abfd));
+      return FALSE;
+    }
 
   syms = bfd_malloc (size);
   if (syms == NULL)
     {
       /* PR 21013: Provide an error message when the alloc fails.  */
-      _bfd_error_handler (_("%B: Not enough memory to allocate space for %lu symbols"),
-			  abfd, size);
+      _bfd_error_handler (_("%B: not enough memory to allocate space for %#Lx symbols of size %#Lx"),
+			  abfd, obj_raw_syment_count (abfd), symesz);
       return FALSE;
     }
 
@@ -1659,7 +1669,6 @@ _bfd_coff_get_external_symbols (bfd *abf
     }
 
   obj_coff_external_syms (abfd) = syms;
-
   return TRUE;
 }
 
@@ -1709,11 +1718,11 @@ _bfd_coff_read_string_table (bfd *abfd)
 #endif
     }
 
-  if (strsize < STRING_SIZE_SIZE)
+  if (strsize < STRING_SIZE_SIZE || strsize > bfd_get_file_size (abfd))
     {
       _bfd_error_handler
 	/* xgettext: c-format */
-	(_("%B: bad string table size %lu"), abfd, (unsigned long) strsize);
+	(_("%B: bad string table size %Lu"), abfd, strsize);
       bfd_set_error (bfd_error_bad_value);
       return NULL;
     }
@@ -1747,12 +1756,16 @@ _bfd_coff_read_string_table (bfd *abfd)
 bfd_boolean
 _bfd_coff_free_symbols (bfd *abfd)
 {
+  if (! bfd_family_coff (abfd))
+    return FALSE;
+
   if (obj_coff_external_syms (abfd) != NULL
       && ! obj_coff_keep_syms (abfd))
     {
       free (obj_coff_external_syms (abfd));
       obj_coff_external_syms (abfd) = NULL;
     }
+
   if (obj_coff_strings (abfd) != NULL
       && ! obj_coff_keep_strings (abfd))
     {
@@ -1760,6 +1773,7 @@ _bfd_coff_free_symbols (bfd *abfd)
       obj_coff_strings (abfd) = NULL;
       obj_coff_strings_len (abfd) = 0;
     }
+
   return TRUE;
 }
 
@@ -1790,6 +1804,9 @@ coff_get_normalized_symtab (bfd *abfd)
     return NULL;
 
   size = obj_raw_syment_count (abfd) * sizeof (combined_entry_type);
+  /* Check for integer overflow.  */
+  if (size < obj_raw_syment_count (abfd))
+    return NULL;
   internal = (combined_entry_type *) bfd_zalloc (abfd, size);
   if (internal == NULL && size != 0)
     return NULL;
@@ -1890,8 +1907,8 @@ coff_get_normalized_symtab (bfd *abfd)
 	  else
 	    {
 	      /* Ordinary short filename, put into memory anyway.  The
-                 Microsoft PE tools sometimes store a filename in
-                 multiple AUX entries.  */
+		 Microsoft PE tools sometimes store a filename in
+		 multiple AUX entries.  */
 	      if (internal_ptr->u.syment.n_numaux > 1
 		  && coff_data (abfd)->pe)
 		internal_ptr->u.syment._n._n_n._n_offset =
@@ -1916,7 +1933,7 @@ coff_get_normalized_symtab (bfd *abfd)
 	      char *newstring;
 
 	      /* Find the length of this string without walking into memory
-	         that isn't ours.  */
+		 that isn't ours.  */
 	      for (i = 0; i < 8; ++i)
 		if (internal_ptr->u.syment._n._n_name[i] == '\0')
 		  break;
@@ -1933,7 +1950,7 @@ coff_get_normalized_symtab (bfd *abfd)
 	  else if (!bfd_coff_symname_in_debug (abfd, &internal_ptr->u.syment))
 	    {
 	      /* Long name already.  Point symbol at the string in the
-                 table.  */
+		 table.  */
 	      if (string_table == NULL)
 		{
 		  string_table = _bfd_coff_read_string_table (abfd);
@@ -2222,13 +2239,13 @@ _bfd_coff_is_local_label_name (bfd *abfd
 
 bfd_boolean
 coff_find_nearest_line_with_names (bfd *abfd,
-                                   asymbol **symbols,
-                                   asection *section,
-                                   bfd_vma offset,
-                                   const char **filename_ptr,
-                                   const char **functionname_ptr,
-                                   unsigned int *line_ptr,
-                                   const struct dwarf_debug_section *debug_sections)
+				   asymbol **symbols,
+				   asection *section,
+				   bfd_vma offset,
+				   const char **filename_ptr,
+				   const char **functionname_ptr,
+				   unsigned int *line_ptr,
+				   const struct dwarf_debug_section *debug_sections)
 {
   bfd_boolean found;
   unsigned int i;
@@ -2363,7 +2380,7 @@ coff_find_nearest_line_with_names (bfd *
 	    file_addr += coff_section_from_bfd_index (abfd,
 						      p2->u.syment.n_scnum)->vma;
 	  /* We use <= MAXDIFF here so that if we get a zero length
-             file, we actually use the next file entry.  */
+	     file, we actually use the next file entry.  */
 	  if (p2 < pend
 	      && offset + sec_vma >= file_addr
 	      && offset + sec_vma - file_addr <= maxdiff)
@@ -2503,8 +2520,8 @@ coff_find_nearest_line (bfd *abfd,
   if (discriminator_ptr)
     *discriminator_ptr = 0;
   return coff_find_nearest_line_with_names (abfd, symbols, section, offset,
-                                            filename_ptr, functionname_ptr,
-                                            line_ptr, dwarf_debug_sections);
+					    filename_ptr, functionname_ptr,
+					    line_ptr, dwarf_debug_sections);
 }
 
 bfd_boolean
@@ -2538,9 +2555,9 @@ coff_sizeof_headers (bfd *abfd, struct b
 /* Change the class of a coff symbol held by BFD.  */
 
 bfd_boolean
-bfd_coff_set_symbol_class (bfd *         abfd,
-			   asymbol *     symbol,
-			   unsigned int  symbol_class)
+bfd_coff_set_symbol_class (bfd *	 abfd,
+			   asymbol *	 symbol,
+			   unsigned int	 symbol_class)
 {
   coff_symbol_type * csym;
 
@@ -2777,13 +2794,13 @@ _bfd_coff_gc_mark_hook (asection *sec,
   if (h != NULL)
     {
       switch (h->root.type)
-        {
-        case bfd_link_hash_defined:
-        case bfd_link_hash_defweak:
-          return h->root.u.def.section;
+	{
+	case bfd_link_hash_defined:
+	case bfd_link_hash_defweak:
+	  return h->root.u.def.section;
 
-        case bfd_link_hash_common:
-          return h->root.u.c.p->section;
+	case bfd_link_hash_common:
+	  return h->root.u.c.p->section;
 
 	case bfd_link_hash_undefweak:
 	  if (h->symbol_class == C_NT_WEAK && h->numaux == 1)
@@ -2801,9 +2818,9 @@ _bfd_coff_gc_mark_hook (asection *sec,
 	  break;
 
 	case bfd_link_hash_undefined:
-        default:
-          break;
-        }
+	default:
+	  break;
+	}
       return NULL;
     }
 
@@ -2882,19 +2899,19 @@ _bfd_coff_gc_mark (struct bfd_link_info 
       struct coff_reloc_cookie cookie;
 
       if (!init_reloc_cookie_for_section (&cookie, info, sec))
-        ret = FALSE;
+	ret = FALSE;
       else
-        {
-          for (; cookie.rel < cookie.relend; cookie.rel++)
-            {
+	{
+	  for (; cookie.rel < cookie.relend; cookie.rel++)
+	    {
 	      if (!_bfd_coff_gc_mark_reloc (info, sec, gc_mark_hook, &cookie))
 		{
 		  ret = FALSE;
 		  break;
 		}
 	    }
-          fini_reloc_cookie_for_section (&cookie, sec);
-        }
+	  fini_reloc_cookie_for_section (&cookie, sec);
+	}
     }
 
   return ret;
@@ -2982,10 +2999,10 @@ coff_gc_sweep (bfd *abfd ATTRIBUTE_UNUSE
       for (o = sub->sections; o != NULL; o = o->next)
 	{
 	    /* Keep debug and special sections.  */
-          if ((o->flags & (SEC_DEBUGGING | SEC_LINKER_CREATED)) != 0
+	  if ((o->flags & (SEC_DEBUGGING | SEC_LINKER_CREATED)) != 0
 	      || (o->flags & (SEC_ALLOC | SEC_LOAD | SEC_RELOC)) == 0)
 	    o->gc_mark = 1;
-          else if (CONST_STRNEQ (o->name, ".idata")
+	  else if (CONST_STRNEQ (o->name, ".idata")
 		   || CONST_STRNEQ (o->name, ".pdata")
 		   || CONST_STRNEQ (o->name, ".xdata")
 		   || CONST_STRNEQ (o->name, ".rsrc"))
@@ -3094,10 +3111,10 @@ bfd_coff_gc_sections (bfd *abfd ATTRIBUT
       asection *o;
 
       if (bfd_get_flavour (sub) != bfd_target_coff_flavour)
-        continue;
+	continue;
 
       for (o = sub->sections; o != NULL; o = o->next)
-        {
+	{
 	  if (((o->flags & (SEC_EXCLUDE | SEC_KEEP)) == SEC_KEEP
 	       || CONST_STRNEQ (o->name, ".vectors")
 	       || CONST_STRNEQ (o->name, ".ctors")
@@ -3107,7 +3124,7 @@ bfd_coff_gc_sections (bfd *abfd ATTRIBUT
 	      if (!_bfd_coff_gc_mark (info, o, _bfd_coff_gc_mark_hook))
 		return FALSE;
 	    }
-        }
+	}
     }
 
   /* Allow the backend to mark additional target specific sections.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-go32.c ./bfd/coff-go32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-go32.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-go32.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel 386 COFF files (DJGPP variant).
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by DJ Delorie.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-h8300.c ./bfd/coff-h8300.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-h8300.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-h8300.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Renesas H8/300 COFF binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Steve Chamberlain, <sac@cygnus.com>.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -589,7 +589,7 @@ h8300_reloc16_estimate (bfd *abfd, asect
       value = bfd_h8300_pad_address (abfd, value);
 
       /* If the address is a sign-extended 16-bit value then we can
-         relax this instruction.  */
+	 relax this instruction.  */
       if (value <= 0x7fff || value >= 0xffff8000u)
 	{
 	  /* Change the reloc type.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-h8500.c ./bfd/coff-h8500.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-h8500.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-h8500.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Renesas H8/500 COFF binaries.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Support.
    Written by Steve Chamberlain, <sac@cygnus.com>.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-i386.c ./bfd/coff-i386.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-i386.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-i386.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel 386 COFF files.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -144,6 +144,11 @@ coff_i386_reloc (bfd *abfd,
       reloc_howto_type *howto = reloc_entry->howto;
       unsigned char *addr = (unsigned char *) data + reloc_entry->address;
 
+      if (! bfd_reloc_offset_in_range (howto, abfd, input_section,
+				       reloc_entry->address
+				       * bfd_octets_per_byte (abfd)))
+	return bfd_reloc_outofrange;
+
       switch (howto->size)
 	{
 	case 0:
@@ -377,7 +382,7 @@ static reloc_howto_type howto_table[] =
     coff_symbol_type *coffsym = (coff_symbol_type *) NULL;	\
     if (ptr && bfd_asymbol_bfd (ptr) != abfd)			\
       coffsym = (obj_symbols (abfd)				\
-	         + (cache_ptr->sym_ptr_ptr - symbols));		\
+		 + (cache_ptr->sym_ptr_ptr - symbols));		\
     else if (ptr)						\
       coffsym = coff_symbol_from (ptr);				\
     if (coffsym != (coff_symbol_type *) NULL			\
@@ -493,11 +498,11 @@ coff_i386_rtype_to_howto (bfd *abfd ATTR
       *addendp -= 4;
 
       /* If the symbol is defined, then the generic code is going to
-         add back the symbol value in order to cancel out an
-         adjustment it made to the addend.  However, we set the addend
-         to 0 at the start of this function.  We need to adjust here,
-         to avoid the adjustment the generic code will make.  FIXME:
-         This is getting a bit hackish.  */
+	 add back the symbol value in order to cancel out an
+	 adjustment it made to the addend.  However, we set the addend
+	 to 0 at the start of this function.  We need to adjust here,
+	 to avoid the adjustment the generic code will make.  FIXME:
+	 This is getting a bit hackish.  */
       if (sym != NULL && sym->n_scnum != 0)
 	*addendp -= sym->n_value;
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-i860.c ./bfd/coff-i860.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-i860.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-i860.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel i860 COFF files.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Created mostly by substituting "860" for "386" in coff-i386.c
    Harry Dolan <dolan@ssd.intel.com>, October 1995
 
@@ -95,6 +95,11 @@ coff_i860_reloc (bfd *abfd,
 	reloc_howto_type *howto = reloc_entry->howto;
 	unsigned char *addr = (unsigned char *) data + reloc_entry->address;
 
+	if (! bfd_reloc_offset_in_range (howto, abfd, input_section,
+					 reloc_entry->address
+					 * bfd_octets_per_byte (abfd)))
+	  return bfd_reloc_outofrange;
+
 	switch (howto->size)
 	  {
 	  case 0:
@@ -159,33 +164,33 @@ static reloc_howto_type howto_table[] =
   EMPTY_HOWTO (3),
   EMPTY_HOWTO (4),
   EMPTY_HOWTO (5),
-  HOWTO (R_DIR32,               /* type */
-	 0,	                /* rightshift */
-	 2,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 32,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+  HOWTO (R_DIR32,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
-	 coff_i860_reloc,       /* special_function */
-	 "dir32",               /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffffffff,            /* src_mask */
-	 0xffffffff,            /* dst_mask */
-	 TRUE),                /* pcrel_offset */
+	 coff_i860_reloc,	/* special_function */
+	 "dir32",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 TRUE),		       /* pcrel_offset */
   /* {7}, */
-  HOWTO (R_IMAGEBASE,            /* type */
-	 0,	                /* rightshift */
-	 2,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 32,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+  HOWTO (R_IMAGEBASE,		 /* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
-	 coff_i860_reloc,       /* special_function */
-	 "rva32",	           /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffffffff,            /* src_mask */
-	 0xffffffff,            /* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 coff_i860_reloc,	/* special_function */
+	 "rva32",		   /* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
   EMPTY_HOWTO (010),
   EMPTY_HOWTO (011),
   EMPTY_HOWTO (012),
@@ -290,7 +295,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
   EMPTY_HOWTO (0x1d),
   HOWTO (COFF860_R_HIGH,	/* type */
 	 16,			/* rightshift */
@@ -304,8 +309,8 @@ static reloc_howto_type howto_table[] =
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
-  HOWTO (COFF860_R_LOW0,        /* type */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (COFF860_R_LOW0,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -317,8 +322,8 @@ static reloc_howto_type howto_table[] =
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
-  HOWTO (COFF860_R_LOW1,        /* type */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (COFF860_R_LOW1,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -330,8 +335,8 @@ static reloc_howto_type howto_table[] =
 	 FALSE,			/* partial_inplace */
 	 0xfffe,		/* src_mask */
 	 0xfffe,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
-  HOWTO (COFF860_R_LOW2,        /* type */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (COFF860_R_LOW2,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -343,8 +348,8 @@ static reloc_howto_type howto_table[] =
 	 FALSE,			/* partial_inplace */
 	 0xfffc,		/* src_mask */
 	 0xfffc,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
-  HOWTO (COFF860_R_LOW3,        /* type */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (COFF860_R_LOW3,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -356,8 +361,8 @@ static reloc_howto_type howto_table[] =
 	 FALSE,			/* partial_inplace */
 	 0xfff8,		/* src_mask */
 	 0xfff8,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
-  HOWTO (COFF860_R_LOW4,        /* type */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (COFF860_R_LOW4,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -369,8 +374,8 @@ static reloc_howto_type howto_table[] =
 	 FALSE,			/* partial_inplace */
 	 0xfff0,		/* src_mask */
 	 0xfff0,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
-  HOWTO (COFF860_R_SPLIT0,      /* type */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (COFF860_R_SPLIT0,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -382,8 +387,8 @@ static reloc_howto_type howto_table[] =
 	 FALSE,			/* partial_inplace */
 	 0x1f07ff,		/* src_mask */
 	 0x1f07ff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
-  HOWTO (COFF860_R_SPLIT1,      /* type */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (COFF860_R_SPLIT1,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -395,8 +400,8 @@ static reloc_howto_type howto_table[] =
 	 FALSE,			/* partial_inplace */
 	 0x1f07fe,		/* src_mask */
 	 0x1f07fe,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
-  HOWTO (COFF860_R_SPLIT2,      /* type */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (COFF860_R_SPLIT2,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -408,8 +413,8 @@ static reloc_howto_type howto_table[] =
 	 FALSE,			/* partial_inplace */
 	 0x1f07fc,		/* src_mask */
 	 0x1f07fc,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
-  HOWTO (COFF860_R_HIGHADJ,     /* type */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (COFF860_R_HIGHADJ,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -421,8 +426,8 @@ static reloc_howto_type howto_table[] =
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
-  HOWTO (COFF860_R_BRADDR,      /* type */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (COFF860_R_BRADDR,	/* type */
 	 2,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 26,			/* bitsize */
@@ -434,7 +439,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,			/* partial_inplace */
 	 0x3ffffff,		/* src_mask */
 	 0x3ffffff,		/* dst_mask */
-	 TRUE)		        /* pcrel_offset */
+	 TRUE)			/* pcrel_offset */
 };
 
 /* Turn a howto into a reloc number.  */
@@ -595,7 +600,7 @@ i860_reloc_processing (arelent *cache_pt
   else
     {
       /* For every other relocation, do exactly what coff_slurp_reloc_table
-         would do (which this code is taken directly from).  */
+	 would do (which this code is taken directly from).  */
       asymbol *ptr = NULL;
       cache_ptr->address = dst->r_vaddr;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-i960.c ./bfd/coff-i960.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-i960.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-i960.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel 960 COFF files.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -128,7 +128,7 @@ optcall_callback (bfd *abfd,
       {
       case C_LEAFSTAT:
       case C_LEAFEXT:
-  	/* This is a call to a leaf procedure, replace instruction with a bal
+	/* This is a call to a leaf procedure, replace instruction with a bal
 	   to the correct location.  */
 	{
 	  union internal_auxent *aux = &((cs->native+2)->u.auxent);
@@ -142,9 +142,9 @@ optcall_callback (bfd *abfd,
 	     sym and auxents untouched, so the delta between the two
 	     is the offset of the bal entry point.  */
 	  word = ((word +  olf)  & BAL_MASK) | BAL;
-  	  bfd_put_32 (abfd, (bfd_vma) word,
+	  bfd_put_32 (abfd, (bfd_vma) word,
 		      (bfd_byte *) data + reloc_entry->address);
-  	}
+	}
 	result = bfd_reloc_ok;
 	break;
       case C_SCALL:
@@ -201,7 +201,7 @@ coff_i960_relocate (bfd *abfd,
   if (bfd_is_com_section (bfd_get_section (symbol)))
     {
       /* I don't really know what the right action is for a common
-         symbol.  */
+	 symbol.  */
       return bfd_reloc_continue;
     }
 
@@ -429,7 +429,7 @@ coff_i960_relocate_section (bfd *output_
 	  else
 	    {
 	      sec = sections[symndx];
-              val = (sec->output_section->vma
+	      val = (sec->output_section->vma
 		     + sec->output_offset
 		     + sym->n_value
 		     - sec->vma);
@@ -468,8 +468,8 @@ coff_i960_relocate_section (bfd *output_
 	    {
 	    case C_NULL:
 	      /* This symbol is apparently not from a COFF input file.
-                 We warn, and then assume that it is not a leaf
-                 function.  */
+		 We warn, and then assume that it is not a leaf
+		 function.  */
 	      (*info->callbacks->reloc_dangerous)
 		(info,
 		 _("uncertain calling convention for non-COFF symbol"),
@@ -479,7 +479,7 @@ coff_i960_relocate_section (bfd *output_
 	    case C_LEAFSTAT:
 	    case C_LEAFEXT:
 	      /* This is a call to a leaf procedure; use the bal
-                 instruction.  */
+		 instruction.  */
 	      {
 		long olf;
 		unsigned long word;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-ia64.c ./bfd/coff-ia64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-ia64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-ia64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for HP/Intel IA-64 COFF files.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Contributed by David Mosberger <davidm@hpl.hp.com>
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cofflink.c ./bfd/cofflink.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cofflink.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cofflink.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* COFF specific linker code.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -212,6 +212,10 @@ coff_link_check_archive_element (bfd *ab
   if (h->type != bfd_link_hash_undefined)
     return TRUE;
 
+  /* PR 22369 - Skip non COFF objects in the archive.  */
+  if (! bfd_family_coff (abfd))
+    return TRUE;
+
   /* Include this element?  */
   if (!(*info->callbacks->add_archive_element) (info, abfd, name, &abfd))
     return TRUE;
@@ -290,7 +294,7 @@ coff_link_add_symbols (bfd *abfd,
 	    goto error_return;
 
 	  /* We must copy the name into memory if we got it from the
-             syment itself, rather than the string table.  */
+	     syment itself, rather than the string table.  */
 	  copy = default_copy;
 	  if (sym._n._n_n._n_zeroes != 0
 	      || sym._n._n_n._n_offset == 0)
@@ -332,8 +336,8 @@ coff_link_add_symbols (bfd *abfd,
 	  addit = TRUE;
 
 	  /* In the PE format, section symbols actually refer to the
-             start of the output section.  We handle them specially
-             here.  */
+	     start of the output section.  We handle them specially
+	     here.  */
 	  if (obj_pe (abfd) && (flags & BSF_SECTION_SYM) != 0)
 	    {
 	      *sym_hash = coff_link_hash_lookup (coff_hash_table (info),
@@ -407,10 +411,10 @@ coff_link_add_symbols (bfd *abfd,
 	      COFF_LINK_HASH_PE_SECTION_SYMBOL;
 
 	  /* Limit the alignment of a common symbol to the possible
-             alignment of a section.  There is no point to permitting
-             a higher alignment for a common symbol: we can not
-             guarantee it, and it may cause us to allocate extra space
-             in the common section.  */
+	     alignment of a section.  There is no point to permitting
+	     a higher alignment for a common symbol: we can not
+	     guarantee it, and it may cause us to allocate extra space
+	     in the common section.  */
 	  if (section == bfd_com_section_ptr
 	      && (*sym_hash)->root.type == bfd_link_hash_common
 	      && ((*sym_hash)->root.u.c.p->alignment_power
@@ -421,44 +425,44 @@ coff_link_add_symbols (bfd *abfd,
 	  if (bfd_get_flavour (info->output_bfd) == bfd_get_flavour (abfd))
 	    {
 	      /* If we don't have any symbol information currently in
-                 the hash table, or if we are looking at a symbol
-                 definition, then update the symbol class and type in
-                 the hash table.  */
-  	      if (((*sym_hash)->symbol_class == C_NULL
-  		   && (*sym_hash)->type == T_NULL)
-  		  || sym.n_scnum != 0
-  		  || (sym.n_value != 0
-  		      && (*sym_hash)->root.type != bfd_link_hash_defined
-  		      && (*sym_hash)->root.type != bfd_link_hash_defweak))
-  		{
-  		  (*sym_hash)->symbol_class = sym.n_sclass;
-  		  if (sym.n_type != T_NULL)
-  		    {
-  		      /* We want to warn if the type changed, but not
-  			 if it changed from an unspecified type.
-  			 Testing the whole type byte may work, but the
-  			 change from (e.g.) a function of unspecified
-  			 type to function of known type also wants to
-  			 skip the warning.  */
-  		      if ((*sym_hash)->type != T_NULL
-  			  && (*sym_hash)->type != sym.n_type
-  		          && !(DTYPE ((*sym_hash)->type) == DTYPE (sym.n_type)
-  		               && (BTYPE ((*sym_hash)->type) == T_NULL
-  		                   || BTYPE (sym.n_type) == T_NULL)))
+		 the hash table, or if we are looking at a symbol
+		 definition, then update the symbol class and type in
+		 the hash table.  */
+	      if (((*sym_hash)->symbol_class == C_NULL
+		   && (*sym_hash)->type == T_NULL)
+		  || sym.n_scnum != 0
+		  || (sym.n_value != 0
+		      && (*sym_hash)->root.type != bfd_link_hash_defined
+		      && (*sym_hash)->root.type != bfd_link_hash_defweak))
+		{
+		  (*sym_hash)->symbol_class = sym.n_sclass;
+		  if (sym.n_type != T_NULL)
+		    {
+		      /* We want to warn if the type changed, but not
+			 if it changed from an unspecified type.
+			 Testing the whole type byte may work, but the
+			 change from (e.g.) a function of unspecified
+			 type to function of known type also wants to
+			 skip the warning.  */
+		      if ((*sym_hash)->type != T_NULL
+			  && (*sym_hash)->type != sym.n_type
+			  && !(DTYPE ((*sym_hash)->type) == DTYPE (sym.n_type)
+			       && (BTYPE ((*sym_hash)->type) == T_NULL
+				   || BTYPE (sym.n_type) == T_NULL)))
 			_bfd_error_handler
 			  /* xgettext: c-format */
 			  (_("Warning: type of symbol `%s' changed"
 			     " from %d to %d in %B"),
 			   name, (*sym_hash)->type, sym.n_type, abfd);
 
-  		      /* We don't want to change from a meaningful
-  			 base type to a null one, but if we know
-  			 nothing, take what little we might now know.  */
-  		      if (BTYPE (sym.n_type) != T_NULL
-  			  || (*sym_hash)->type == T_NULL)
+		      /* We don't want to change from a meaningful
+			 base type to a null one, but if we know
+			 nothing, take what little we might now know.  */
+		      if (BTYPE (sym.n_type) != T_NULL
+			  || (*sym_hash)->type == T_NULL)
 			(*sym_hash)->type = sym.n_type;
-  		    }
-  		  (*sym_hash)->auxbfd = abfd;
+		    }
+		  (*sym_hash)->auxbfd = abfd;
 		  if (sym.n_numaux != 0)
 		    {
 		      union internal_auxent *alloc;
@@ -488,8 +492,8 @@ coff_link_add_symbols (bfd *abfd,
 	      && (*sym_hash)->numaux != 0)
 	    {
 	      /* Some PE sections (such as .bss) have a zero size in
-                 the section header, but a non-zero size in the AUX
-                 record.  Correct that here.
+		 the section header, but a non-zero size in the AUX
+		 record.  Correct that here.
 
 		 FIXME: This is not at all the right place to do this.
 		 For example, it won't help objdump.  This needs to be
@@ -499,8 +503,8 @@ coff_link_add_symbols (bfd *abfd,
 		section->size = (*sym_hash)->aux[0].x_scn.x_scnlen;
 
 	      /* FIXME: We could test whether the section sizes
-                 matches the size in the aux entry, but apparently
-                 that sometimes fails unexpectedly.  */
+		 matches the size in the aux entry, but apparently
+		 that sometimes fails unexpectedly.  */
 	    }
 	}
 
@@ -689,10 +693,10 @@ _bfd_coff_final_link (bfd *abfd,
 	  && strlen (o->name) > SCNNMLEN)
 	{
 	  /* This section has a long name which must go in the string
-             table.  This must correspond to the code in
-             coff_write_object_contents which puts the string index
-             into the s_name field of the section header.  That is why
-             we pass hash as FALSE.  */
+	     table.  This must correspond to the code in
+	     coff_write_object_contents which puts the string index
+	     into the s_name field of the section header.  That is why
+	     we pass hash as FALSE.  */
 	  if (_bfd_stringtab_add (flaginfo.strtab, o->name, FALSE, FALSE)
 	      == (bfd_size_type) -1)
 	    goto error_return;
@@ -707,7 +711,7 @@ _bfd_coff_final_link (bfd *abfd,
       unsigned int i;
 
       /* We use section_count + 1, rather than section_count, because
-         the target_index fields are 1 based.  */
+	 the target_index fields are 1 based.  */
       amt = abfd->section_count + 1;
       amt *= sizeof (struct coff_link_section_info);
       flaginfo.section_info = (struct coff_link_section_info *) bfd_malloc (amt);
@@ -738,13 +742,13 @@ _bfd_coff_final_link (bfd *abfd,
       if (o->reloc_count != 0)
 	{
 	  /* We don't know the indices of global symbols until we have
-             written out all the local symbols.  For each section in
-             the output file, we keep an array of pointers to hash
-             table entries.  Each entry in the array corresponds to a
-             reloc.  When we find a reloc against a global symbol, we
-             set the corresponding entry in this array so that we can
-             fix up the symbol index after we have written out all the
-             local symbols.
+	     written out all the local symbols.  For each section in
+	     the output file, we keep an array of pointers to hash
+	     table entries.  Each entry in the array corresponds to a
+	     reloc.  When we find a reloc against a global symbol, we
+	     set the corresponding entry in this array so that we can
+	     fix up the symbol index after we have written out all the
+	     local symbols.
 
 	     Because of this problem, we also keep the relocs in
 	     memory until the end of the link.  This wastes memory,
@@ -754,11 +758,11 @@ _bfd_coff_final_link (bfd *abfd,
 	  amt = o->reloc_count;
 	  amt *= sizeof (struct internal_reloc);
 	  flaginfo.section_info[o->target_index].relocs =
-              (struct internal_reloc *) bfd_malloc (amt);
+	      (struct internal_reloc *) bfd_malloc (amt);
 	  amt = o->reloc_count;
 	  amt *= sizeof (struct coff_link_hash_entry *);
 	  flaginfo.section_info[o->target_index].rel_hashes =
-              (struct coff_link_hash_entry **) bfd_malloc (amt);
+	      (struct coff_link_hash_entry **) bfd_malloc (amt);
 	  if (flaginfo.section_info[o->target_index].relocs == NULL
 	      || flaginfo.section_info[o->target_index].rel_hashes == NULL)
 	    goto error_return;
@@ -1514,7 +1518,7 @@ _bfd_coff_link_input_bfd (struct coff_fi
 	}
 
       /* Extract the flag indicating if this symbol is used by a
-         relocation.  */
+	 relocation.  */
       if ((flaginfo->info->strip != strip_none
 	   || flaginfo->info->discard != discard_none)
 	  && bfd_link_relocatable (flaginfo->info))
@@ -1558,7 +1562,7 @@ _bfd_coff_link_input_bfd (struct coff_fi
 
 	    case COFF_SYMBOL_LOCAL:
 	      /* This is a local symbol.  Skip it if we are discarding
-                 local symbols.  */
+		 local symbols.  */
 	      if (flaginfo->info->discard == discard_all && ! dont_skip_symbol)
 		skip = TRUE;
 	      break;
@@ -1580,9 +1584,9 @@ _bfd_coff_link_input_bfd (struct coff_fi
 #endif
 
       /* If we stripping debugging symbols, and this is a debugging
-         symbol, then skip it.  FIXME: gas sets the section to N_ABS
-         for some types of debugging symbols; I don't know if this is
-         a bug or not.  In any case, we handle it here.  */
+	 symbol, then skip it.  FIXME: gas sets the section to N_ABS
+	 for some types of debugging symbols; I don't know if this is
+	 a bug or not.  In any case, we handle it here.  */
       if (! skip
 	  && flaginfo->info->strip == strip_debugger
 	  && ! dont_skip_symbol
@@ -1623,7 +1627,7 @@ _bfd_coff_link_input_bfd (struct coff_fi
 	}
 
       /* If this is an enum, struct, or union tag, see if we have
-         already output an identical type.  */
+	 already output an identical type.  */
       if (! skip
 	  && !flaginfo->info->traditional_format
 	  && (isym.n_sclass == C_ENTAG
@@ -1646,7 +1650,7 @@ _bfd_coff_link_input_bfd (struct coff_fi
 	    return FALSE;
 
 	  /* Ignore fake names invented by compiler; treat them all as
-             the same name.  */
+	     the same name.  */
 	  if (*name == '~' || *name == '.' || *name == '$'
 	      || (*name == bfd_get_symbol_leading_char (input_bfd)
 		  && (name[1] == '~' || name[1] == '.' || name[1] == '$')))
@@ -1658,8 +1662,8 @@ _bfd_coff_link_input_bfd (struct coff_fi
 	    return FALSE;
 
 	  /* Allocate memory to hold type information.  If this turns
-             out to be a duplicate, we pass this address to
-             bfd_release.  */
+	     out to be a duplicate, we pass this address to
+	     bfd_release.  */
 	  amt = sizeof (struct coff_debug_merge_type);
 	  mt = (struct coff_debug_merge_type *) bfd_alloc (input_bfd, amt);
 	  if (mt == NULL)
@@ -1667,7 +1671,7 @@ _bfd_coff_link_input_bfd (struct coff_fi
 	  mt->type_class = isym.n_sclass;
 
 	  /* Pick up the aux entry, which points to the end of the tag
-             entries.  */
+	     entries.  */
 	  bfd_coff_swap_aux_in (input_bfd, (esym + isymesz),
 				isym.n_type, isym.n_sclass, 0, isym.n_numaux,
 				&aux);
@@ -1689,7 +1693,7 @@ _bfd_coff_link_input_bfd (struct coff_fi
 
 	      amt = sizeof (struct coff_debug_merge_element);
 	      *epp = (struct coff_debug_merge_element *)
-                  bfd_alloc (input_bfd, amt);
+		  bfd_alloc (input_bfd, amt);
 	      if (*epp == NULL)
 		return FALSE;
 
@@ -1742,8 +1746,8 @@ _bfd_coff_link_input_bfd (struct coff_fi
 	    }
 
 	  /* See if we already have a definition which matches this
-             type.  We always output the type if it has no elements,
-             for simplicity.  */
+	     type.  We always output the type if it has no elements,
+	     for simplicity.  */
 	  if (mt->elements == NULL)
 	    bfd_release (input_bfd, mt);
 	  else
@@ -1882,7 +1886,7 @@ _bfd_coff_link_input_bfd (struct coff_fi
 		  && flaginfo->last_file.n_value != (bfd_vma) output_index)
 		{
 		  /* We must correct the value of the last C_FILE
-                     entry.  */
+		     entry.  */
 		  flaginfo->last_file.n_value = output_index;
 		  if ((bfd_size_type) flaginfo->last_file_index >= syment_base)
 		    {
@@ -1937,7 +1941,7 @@ _bfd_coff_link_input_bfd (struct coff_fi
 	      if (h == NULL)
 		{
 		  /* This can happen if there were errors earlier in
-                     the link.  */
+		     the link.  */
 		  bfd_set_error (bfd_error_bad_value);
 		  return FALSE;
 		}
@@ -1991,8 +1995,8 @@ _bfd_coff_link_input_bfd (struct coff_fi
 	      h = *sym_hash;
 
 	      /* The m68k-motorola-sysv assembler will sometimes
-                 generate two symbols with the same name, but only one
-                 will have aux entries.  */
+		 generate two symbols with the same name, but only one
+		 will have aux entries.  */
 	      BFD_ASSERT (isymp->n_numaux == 0
 			  || h->numaux == 0
 			  || h->numaux == isymp->n_numaux);
@@ -2063,9 +2067,9 @@ _bfd_coff_link_input_bfd (struct coff_fi
 			  && indx < obj_raw_syment_count (input_bfd))
 			{
 			  /* We look forward through the symbol for
-                             the index of the next symbol we are going
-                             to include.  I don't know if this is
-                             entirely right.  */
+			     the index of the next symbol we are going
+			     to include.  I don't know if this is
+			     entirely right.  */
 			  while ((flaginfo->sym_indices[indx] < 0
 				  || ((bfd_size_type) flaginfo->sym_indices[indx]
 				      < syment_base))
@@ -2135,10 +2139,10 @@ _bfd_coff_link_input_bfd (struct coff_fi
 			      file_ptr pos;
 
 			      /* We have already written out the last
-                                 .bf aux entry.  We need to write it
-                                 out again.  We borrow *outsym
-                                 temporarily.  FIXME: This case should
-                                 be made faster.  */
+				 .bf aux entry.  We need to write it
+				 out again.  We borrow *outsym
+				 temporarily.  FIXME: This case should
+				 be made faster.  */
 			      bfd_coff_swap_aux_out (output_bfd,
 						     &flaginfo->last_bf,
 						     isymp->n_type,
@@ -2159,8 +2163,8 @@ _bfd_coff_link_input_bfd (struct coff_fi
 		      else
 			{
 			  /* The endndx field of this aux entry must
-                             be updated with the symbol number of the
-                             next .bf symbol.  */
+			     be updated with the symbol number of the
+			     next .bf symbol.  */
 			  flaginfo->last_bf = *auxp;
 			  flaginfo->last_bf_index = (((outsym - flaginfo->outsyms)
 						   / osymesz)
@@ -2294,7 +2298,7 @@ _bfd_coff_link_input_bfd (struct coff_fi
 		}
 
 	      if (!skipping)
-	        {
+		{
 		  bfd_coff_swap_lineno_out (output_bfd, &iline, oeline);
 		  oeline += linesz;
 		}
@@ -2435,7 +2439,7 @@ _bfd_coff_link_input_bfd (struct coff_fi
 	    }
 
 	  /* Call processor specific code to relocate the section
-             contents.  */
+	     contents.  */
 	  if (! bfd_coff_relocate_section (output_bfd, flaginfo->info,
 					   input_bfd, o,
 					   contents,
@@ -2510,7 +2514,7 @@ _bfd_coff_link_input_bfd (struct coff_fi
 			  char buf[SYMNMLEN + 1];
 
 			  /* This reloc is against a symbol we are
-                             stripping.  This should have been handled
+			     stripping.  This should have been handled
 			     by the 'dont_skip_symbol' code in the while
 			     loop at the top of this function.  */
 			  is = flaginfo->internal_syms + irel->r_symndx;
@@ -2705,7 +2709,7 @@ _bfd_coff_write_global_sym (struct bfd_h
       auxp = h->aux + i;
 
       /* Look for a section aux entry here using the same tests that
-         coff_swap_aux_out uses.  */
+	 coff_swap_aux_out uses.  */
       if (i == 0
 	  && (isym.n_sclass == C_STAT
 	      || isym.n_sclass == C_HIDDEN)
@@ -2721,13 +2725,13 @@ _bfd_coff_write_global_sym (struct bfd_h
 	      auxp->x_scn.x_scnlen = sec->size;
 
 	      /* For PE, an overflow on the final link reportedly does
-                 not matter.  FIXME: Why not?  */
+		 not matter.  FIXME: Why not?  */
 	      if (sec->reloc_count > 0xffff
 		  && (! obj_pe (output_bfd)
 		      || bfd_link_relocatable (flaginfo->info)))
 		_bfd_error_handler
 		  /* xgettext: c-format */
-		  (_("%B: %A: reloc overflow: 0x%lx > 0xffff"),
+		  (_("%B: %A: reloc overflow: %#x > 0xffff"),
 		   output_bfd, sec, sec->reloc_count);
 
 	      if (sec->lineno_count > 0xffff
@@ -2735,7 +2739,7 @@ _bfd_coff_write_global_sym (struct bfd_h
 		      || bfd_link_relocatable (flaginfo->info)))
 		_bfd_error_handler
 		  /* xgettext: c-format */
-		  (_("%B: warning: %A: line number overflow: 0x%lx > 0xffff"),
+		  (_("%B: warning: %A: line number overflow: %#x > 0xffff"),
 		   output_bfd, sec, sec->lineno_count);
 
 	      auxp->x_scn.x_nreloc = sec->reloc_count;
@@ -2847,7 +2851,7 @@ _bfd_coff_reloc_link_order (bfd *output_
 	}
       loc = link_order->offset * bfd_octets_per_byte (output_bfd);
       ok = bfd_set_section_contents (output_bfd, output_section, buf,
-                                     loc, size);
+				     loc, size);
       free (buf);
       if (! ok)
 	return FALSE;
@@ -2868,9 +2872,9 @@ _bfd_coff_reloc_link_order (bfd *output_
   if (link_order->type == bfd_section_reloc_link_order)
     {
       /* We need to somehow locate a symbol in the right section.  The
-         symbol must either have a value of zero, or we must adjust
-         the addend by the value of the symbol.  FIXME: Write this
-         when we need it.  The old linker couldn't handle this anyhow.  */
+	 symbol must either have a value of zero, or we must adjust
+	 the addend by the value of the symbol.  FIXME: Write this
+	 when we need it.  The old linker couldn't handle this anyhow.  */
       abort ();
       *rel_hash_ptr = NULL;
       irel->r_symndx = 0;
@@ -2968,9 +2972,9 @@ _bfd_coff_generic_relocate_section (bfd 
 	}
 
       /* COFF treats common symbols in one of two ways.  Either the
-         size of the symbol is included in the section contents, or it
-         is not.  We assume that the size is not included, and force
-         the rtype_to_howto function to adjust the addend as needed.  */
+	 size of the symbol is included in the section contents, or it
+	 is not.  We assume that the size is not included, and force
+	 the rtype_to_howto function to adjust the addend as needed.  */
       if (sym != NULL && sym->n_scnum != 0)
 	addend = - sym->n_value;
       else
@@ -2982,9 +2986,9 @@ _bfd_coff_generic_relocate_section (bfd 
 	return FALSE;
 
       /* If we are doing a relocatable link, then we can just ignore
-         a PC relative reloc that is pcrel_offset.  It will already
-         have the correct value.  If this is not a relocatable link,
-         then we should ignore the symbol value.  */
+	 a PC relative reloc that is pcrel_offset.  It will already
+	 have the correct value.  If this is not a relocatable link,
+	 then we should ignore the symbol value.  */
       if (howto->pc_relative && howto->pcrel_offset)
 	{
 	  if (bfd_link_relocatable (info))
@@ -3008,10 +3012,10 @@ _bfd_coff_generic_relocate_section (bfd 
 
 	      /* PR 19623: Relocations against symbols in
 		 the absolute sections should ignored.  */
-              if (bfd_is_abs_section (sec))
+	      if (bfd_is_abs_section (sec))
 		continue;
 
-              val = (sec->output_section->vma
+	      val = (sec->output_section->vma
 		     + sec->output_offset
 		     + sym->n_value);
 	      if (! obj_pe (input_bfd))
@@ -3032,10 +3036,10 @@ _bfd_coff_generic_relocate_section (bfd 
 
 	  else if (h->root.type == bfd_link_hash_undefweak)
 	    {
-              if (h->symbol_class == C_NT_WEAK && h->numaux == 1)
+	      if (h->symbol_class == C_NT_WEAK && h->numaux == 1)
 		{
 		  /* See _Microsoft Portable Executable and Common Object
-                     File Format Specification_, section 5.5.3.
+		     File Format Specification_, section 5.5.3.
 		     Note that weak symbols without aux records are a GNU
 		     extension.
 		     FIXME: All weak externals are treated as having
@@ -3061,7 +3065,7 @@ _bfd_coff_generic_relocate_section (bfd 
 		    }
 		}
 	      else
-                /* This is a GNU extension.  */
+		/* This is a GNU extension.  */
 		val = 0;
 	    }
 
@@ -3120,8 +3124,8 @@ _bfd_coff_generic_relocate_section (bfd 
 	case bfd_reloc_outofrange:
 	  _bfd_error_handler
 	    /* xgettext: c-format */
-	    (_("%B: bad reloc address 0x%lx in section `%A'"),
-	     input_bfd, (unsigned long) rel->r_vaddr, input_section);
+	    (_("%B: bad reloc address %#Lx in section `%A'"),
+	     input_bfd, rel->r_vaddr, input_section);
 	  return FALSE;
 	case bfd_reloc_overflow:
 	  {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-m68k.c ./bfd/coff-m68k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-m68k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-m68k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Motorola 68000 COFF binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -95,13 +95,13 @@ static
 #endif
 reloc_howto_type m68kcoff_howto_table[] =
   {
-    HOWTO (R_RELBYTE,	       0,  0,  	8,  FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "8",	TRUE, 0x000000ff,0x000000ff, FALSE),
-    HOWTO (R_RELWORD,	       0,  1, 	16, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "16",	TRUE, 0x0000ffff,0x0000ffff, FALSE),
-    HOWTO (R_RELLONG,	       0,  2, 	32, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "32",	TRUE, 0xffffffff,0xffffffff, FALSE),
-    HOWTO (R_PCRBYTE,	       0,  0, 	8,  TRUE,  0, complain_overflow_signed,   RELOC_SPECIAL_FN, "DISP8",    TRUE, 0x000000ff,0x000000ff, FALSE),
-    HOWTO (R_PCRWORD,	       0,  1, 	16, TRUE,  0, complain_overflow_signed,   RELOC_SPECIAL_FN, "DISP16",   TRUE, 0x0000ffff,0x0000ffff, FALSE),
-    HOWTO (R_PCRLONG,	       0,  2, 	32, TRUE,  0, complain_overflow_signed,   RELOC_SPECIAL_FN, "DISP32",   TRUE, 0xffffffff,0xffffffff, FALSE),
-    HOWTO (R_RELLONG_NEG,      0, -2, 	32, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "-32",	TRUE, 0xffffffff,0xffffffff, FALSE),
+    HOWTO (R_RELBYTE,	       0,  0,	8,  FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "8",	TRUE, 0x000000ff,0x000000ff, FALSE),
+    HOWTO (R_RELWORD,	       0,  1,	16, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "16",	TRUE, 0x0000ffff,0x0000ffff, FALSE),
+    HOWTO (R_RELLONG,	       0,  2,	32, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "32",	TRUE, 0xffffffff,0xffffffff, FALSE),
+    HOWTO (R_PCRBYTE,	       0,  0,	8,  TRUE,  0, complain_overflow_signed,	  RELOC_SPECIAL_FN, "DISP8",	TRUE, 0x000000ff,0x000000ff, FALSE),
+    HOWTO (R_PCRWORD,	       0,  1,	16, TRUE,  0, complain_overflow_signed,	  RELOC_SPECIAL_FN, "DISP16",	TRUE, 0x0000ffff,0x0000ffff, FALSE),
+    HOWTO (R_PCRLONG,	       0,  2,	32, TRUE,  0, complain_overflow_signed,	  RELOC_SPECIAL_FN, "DISP32",	TRUE, 0xffffffff,0xffffffff, FALSE),
+    HOWTO (R_RELLONG_NEG,      0, -2,	32, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "-32",	TRUE, 0xffffffff,0xffffffff, FALSE),
   };
 #endif /* not ONLY_DECLARE_RELOCS */
 
@@ -143,7 +143,7 @@ m68k_rtype2howto (arelent *internal, int
     case R_PCRWORD:	internal->howto = m68kcoff_howto_table + 4; break;
     case R_PCRLONG:	internal->howto = m68kcoff_howto_table + 5; break;
     case R_RELLONG_NEG:	internal->howto = m68kcoff_howto_table + 6; break;
-    default:            internal->howto = NULL; break;
+    default:		internal->howto = NULL; break;
     }
 }
 
@@ -192,7 +192,7 @@ m68k_reloc_type_lookup (bfd *abfd ATTRIB
 
 STAT_REL reloc_howto_type *
 m68k_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-		        const char *r_name)
+			const char *r_name)
 {
   unsigned int i;
 
@@ -305,6 +305,11 @@ m68kcoff_common_addend_special_fn (bfd *
       reloc_howto_type *howto = reloc_entry->howto;
       unsigned char *addr = (unsigned char *) data + reloc_entry->address;
 
+      if (! bfd_reloc_offset_in_range (howto, abfd, input_section,
+				       reloc_entry->address
+				       * bfd_octets_per_byte (abfd)))
+	return bfd_reloc_outofrange;
+
       switch (howto->size)
 	{
 	case 0:
@@ -358,7 +363,7 @@ m68kcoff_common_addend_special_fn (bfd *
     coff_symbol_type *coffsym = (coff_symbol_type *) NULL;	\
     if (ptr && bfd_asymbol_bfd (ptr) != abfd)			\
       coffsym = (obj_symbols (abfd)				\
-	         + (cache_ptr->sym_ptr_ptr - symbols));		\
+		 + (cache_ptr->sym_ptr_ptr - symbols));		\
     else if (ptr)						\
       coffsym = coff_symbol_from (ptr);				\
     if (coffsym != (coff_symbol_type *) NULL			\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-m88k.c ./bfd/coff-m88k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-m88k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-m88k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Motorola 88000 COFF "Binary Compatibility Standard" files.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -72,10 +72,17 @@ m88k_special_reloc (bfd *abfd,
 	{
 	  bfd_vma output_base = 0;
 	  bfd_vma addr = reloc_entry->address;
-	  bfd_vma x = bfd_get_16 (abfd, (bfd_byte *) data + addr);
+	  bfd_vma x;
 	  asection *reloc_target_output_section;
 	  long relocation = 0;
 
+	  if (! bfd_reloc_offset_in_range (howto, abfd, input_section,
+					   reloc_entry->address
+					   * bfd_octets_per_byte (abfd)))
+	    return bfd_reloc_outofrange;
+
+	  x = bfd_get_16 (abfd, (bfd_byte *) data + addr);
+
 	  /* Work out which section the relocation is targeted at and the
 	     initial relocation command value.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-mcore.c ./bfd/coff-mcore.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-mcore.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-mcore.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Motorola MCore COFF/PE
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -60,32 +60,32 @@ static reloc_howto_type mcore_coff_howto
 {
   /* Unused: */
   HOWTO (IMAGE_REL_MCORE_ABSOLUTE,/* type */
-	 0,	                 /* rightshift */
-	 0,	                 /* size (0 = byte, 1 = short, 2 = long) */
-	 0,	                 /* bitsize */
-	 FALSE,	                 /* pc_relative */
-	 0,	                 /* bitpos */
+	 0,			 /* rightshift */
+	 0,			 /* size (0 = byte, 1 = short, 2 = long) */
+	 0,			 /* bitsize */
+	 FALSE,			 /* pc_relative */
+	 0,			 /* bitpos */
 	 complain_overflow_dont, /* dont complain_on_overflow */
-	 NULL,		         /* special_function */
-	 "ABSOLUTE",             /* name */
-	 FALSE,	                 /* partial_inplace */
-	 0x00,	 	         /* src_mask */
-	 0x00,        		 /* dst_mask */
-	 FALSE),                 /* pcrel_offset */
+	 NULL,			 /* special_function */
+	 "ABSOLUTE",		 /* name */
+	 FALSE,			 /* partial_inplace */
+	 0x00,			 /* src_mask */
+	 0x00,			 /* dst_mask */
+	 FALSE),		 /* pcrel_offset */
 
   HOWTO (IMAGE_REL_MCORE_ADDR32,/* type */
-	 0,	                /* rightshift */
-	 2,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 32,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
-	 NULL,		        /* special_function */
-	 "ADDR32",              /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffffffff,            /* src_mask */
-	 0xffffffff,            /* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 NULL,			/* special_function */
+	 "ADDR32",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* 8 bits + 2 zero bits; jmpi/jsri/lrw instructions.
      Should not appear in object files.  */
@@ -97,7 +97,7 @@ static reloc_howto_type mcore_coff_howto
 	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
 	 mcore_coff_unsupported_reloc, /* special_function */
-	 "IMM8BY4",             /* name */
+	 "IMM8BY4",		/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0,			/* dst_mask */
@@ -113,8 +113,8 @@ static reloc_howto_type mcore_coff_howto
 	 TRUE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 NULL,	                /* special_function */
-	 "IMM11BY2",            /* name */
+	 NULL,			/* special_function */
+	 "IMM11BY2",		/* name */
 	 FALSE,			/* partial_inplace */
 	 0x0,			/* src_mask */
 	 0x7ff,			/* dst_mask */
@@ -129,7 +129,7 @@ static reloc_howto_type mcore_coff_howto
 	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
 	 mcore_coff_unsupported_reloc, /* special_function */
-	 "IMM4BY2",              /* name */
+	 "IMM4BY2",		 /* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0,			/* dst_mask */
@@ -143,8 +143,8 @@ static reloc_howto_type mcore_coff_howto
 	 TRUE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
-	 NULL,	                /* special_function */
-	 "PCREL_32",	        /* name */
+	 NULL,			/* special_function */
+	 "PCREL_32",		/* name */
 	 FALSE,			/* partial_inplace */
 	 0x0,			/* src_mask */
 	 0xffffffff,		/* dst_mask */
@@ -164,22 +164,22 @@ static reloc_howto_type mcore_coff_howto
 	 TRUE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 NULL,	                /* special_function */
-	 "JSR_IMM11BY2",        /* name */
+	 NULL,			/* special_function */
+	 "JSR_IMM11BY2",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0x0,			/* src_mask */
 	 0x7ff,			/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (IMAGE_REL_MCORE_RVA,   /* type */
+  HOWTO (IMAGE_REL_MCORE_RVA,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 NULL,                  /* special_function */
-	 "MCORE_RVA",           /* name */
+	 NULL,			/* special_function */
+	 "MCORE_RVA",		/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
@@ -194,11 +194,11 @@ typedef struct coff_mcore_link_hash_tabl
   /* The original coff_link_hash_table structure.  MUST be first field.  */
   struct coff_link_hash_table	root;
 
-  bfd *                         bfd_of_toc_owner;
-  long int                      global_toc_size;
-  long int                      import_table_size;
-  long int                      first_thunk_address;
-  long int                      thunk_size;
+  bfd *				bfd_of_toc_owner;
+  long int			global_toc_size;
+  long int			import_table_size;
+  long int			first_thunk_address;
+  long int			thunk_size;
 }
 mcore_hash_table;
 
@@ -216,9 +216,9 @@ mcore_emit_base_file_entry (struct bfd_l
 			    bfd_vma reloc_offset)
 {
   bfd_vma addr = reloc_offset
-                 - input_section->vma
-                 + input_section->output_offset
-                 + input_section->output_section->vma;
+		 - input_section->vma
+		 + input_section->output_offset
+		 + input_section->output_section->vma;
 
   if (coff_data (output_bfd)->pe)
      addr -= pe_data (output_bfd)->pe_opthdr.ImageBase;
@@ -260,13 +260,13 @@ mcore_coff_reloc_type_lookup (bfd * abfd
 {
   switch (code)
     {
-      HOW2MAP (BFD_RELOC_32,                       IMAGE_REL_MCORE_ADDR32);
-      HOW2MAP (BFD_RELOC_MCORE_PCREL_IMM8BY4,      IMAGE_REL_MCORE_PCREL_IMM8BY4);
-      HOW2MAP (BFD_RELOC_MCORE_PCREL_IMM11BY2,     IMAGE_REL_MCORE_PCREL_IMM11BY2);
-      HOW2MAP (BFD_RELOC_MCORE_PCREL_IMM4BY2,      IMAGE_REL_MCORE_PCREL_IMM4BY2);
-      HOW2MAP (BFD_RELOC_32_PCREL,                 IMAGE_REL_MCORE_PCREL_32);
+      HOW2MAP (BFD_RELOC_32,			   IMAGE_REL_MCORE_ADDR32);
+      HOW2MAP (BFD_RELOC_MCORE_PCREL_IMM8BY4,	   IMAGE_REL_MCORE_PCREL_IMM8BY4);
+      HOW2MAP (BFD_RELOC_MCORE_PCREL_IMM11BY2,	   IMAGE_REL_MCORE_PCREL_IMM11BY2);
+      HOW2MAP (BFD_RELOC_MCORE_PCREL_IMM4BY2,	   IMAGE_REL_MCORE_PCREL_IMM4BY2);
+      HOW2MAP (BFD_RELOC_32_PCREL,		   IMAGE_REL_MCORE_PCREL_32);
       HOW2MAP (BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2, IMAGE_REL_MCORE_PCREL_JSR_IMM11BY2);
-      HOW2MAP (BFD_RELOC_RVA,                      IMAGE_REL_MCORE_RVA);
+      HOW2MAP (BFD_RELOC_RVA,			   IMAGE_REL_MCORE_RVA);
    default:
       return NULL;
     }
@@ -319,11 +319,11 @@ coff_mcore_rtype_to_howto (bfd * abfd AT
       * addendp = sec->vma - 2; /* XXX guess - is this right ? */
 
       /* If the symbol is defined, then the generic code is going to
-         add back the symbol value in order to cancel out an
-         adjustment it made to the addend.  However, we set the addend
-         to 0 at the start of this function.  We need to adjust here,
-         to avoid the adjustment the generic code will make.  FIXME:
-         This is getting a bit hackish.  */
+	 add back the symbol value in order to cancel out an
+	 adjustment it made to the addend.  However, we set the addend
+	 to 0 at the start of this function.  We need to adjust here,
+	 to avoid the adjustment the generic code will make.  FIXME:
+	 This is getting a bit hackish.  */
       if (sym != NULL && sym->n_scnum != 0)
 	* addendp -= sym->n_value;
     }
@@ -370,8 +370,8 @@ coff_mcore_relocate_section (bfd * outpu
 	/* xgettext: c-format */
 	(_("%B: compiled for a %s system and target is %s.\n"),
 	 input_bfd,
-         bfd_big_endian (input_bfd) ? _("big endian") : _("little endian"),
-         bfd_big_endian (output_bfd) ? _("big endian") : _("little endian"));
+	 bfd_big_endian (input_bfd) ? _("big endian") : _("little endian"),
+	 bfd_big_endian (output_bfd) ? _("big endian") : _("little endian"));
 
       bfd_set_error (bfd_error_wrong_format);
       return FALSE;
@@ -382,16 +382,16 @@ coff_mcore_relocate_section (bfd * outpu
 
   for (; rel < relend; rel++)
     {
-      long                           symndx;
-      struct internal_syment *       sym;
-      bfd_vma                        val;
-      bfd_vma                        addend;
-      bfd_reloc_status_type          rstat;
-      bfd_byte *                     loc;
-      unsigned short                 r_type = rel->r_type;
-      reloc_howto_type *             howto = NULL;
+      long			     symndx;
+      struct internal_syment *	     sym;
+      bfd_vma			     val;
+      bfd_vma			     addend;
+      bfd_reloc_status_type	     rstat;
+      bfd_byte *		     loc;
+      unsigned short		     r_type = rel->r_type;
+      reloc_howto_type *	     howto = NULL;
       struct coff_link_hash_entry *  h;
-      const char *                   my_name;
+      const char *		     my_name;
 
       symndx = rel->r_symndx;
       loc = contents + rel->r_vaddr - input_section->vma;
@@ -479,10 +479,9 @@ coff_mcore_relocate_section (bfd * outpu
 	  _bfd_error_handler
 	    /* xgettext: c-format */
 	    (_("Warning: unsupported reloc %s <file %B, section %A>\n"
-	       "sym %ld (%s), r_vaddr %ld (%lx)"),
+	       "sym %ld (%s), r_vaddr %Ld (%#Lx)"),
 	     howto->name, input_bfd, input_section,
-	     rel->r_symndx, my_name, (long) rel->r_vaddr,
-	     (unsigned long) rel->r_vaddr);
+	     rel->r_symndx, my_name, rel->r_vaddr, rel->r_vaddr);
 	  break;
 
 	case IMAGE_REL_MCORE_PCREL_IMM8BY4:
@@ -536,17 +535,17 @@ coff_mcore_relocate_section (bfd * outpu
 
 #define coff_bfd_reloc_type_lookup   mcore_coff_reloc_type_lookup
 #define coff_bfd_reloc_name_lookup mcore_coff_reloc_name_lookup
-#define coff_relocate_section        coff_mcore_relocate_section
-#define coff_rtype_to_howto          coff_mcore_rtype_to_howto
+#define coff_relocate_section	     coff_mcore_relocate_section
+#define coff_rtype_to_howto	     coff_mcore_rtype_to_howto
 
 #define SELECT_RELOC(internal, howto) {internal.r_type = howto->type;}
 
 /* Make sure that the 'r_offset' field is copied properly
    so that identical binaries will compare the same.  */
-#define SWAP_IN_RELOC_OFFSET         H_GET_32
-#define SWAP_OUT_RELOC_OFFSET        H_PUT_32
+#define SWAP_IN_RELOC_OFFSET	     H_GET_32
+#define SWAP_OUT_RELOC_OFFSET	     H_PUT_32
 
-#define COFF_PAGE_SIZE               0x1000
+#define COFF_PAGE_SIZE		     0x1000
 
 #include "coffcode.h"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-mips.c ./bfd/coff-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-mips.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-mips.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for MIPS Extended-Coff files.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Original version by Per Bothner.
    Full support added by Ian Lance Taylor, ian@cygnus.com.
 
@@ -131,7 +131,7 @@ static reloc_howto_type mips_howto_table
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 			/* This needs complex overflow
+				/* This needs complex overflow
 				   detection, because the upper four
 				   bits must match the PC.  */
 	 mips_generic_reloc,	/* special_function */
@@ -504,6 +504,12 @@ mips_reflo_reloc (bfd *abfd ATTRIBUTE_UN
 	  unsigned long vallo;
 	  struct mips_hi *next;
 
+	  if (! bfd_reloc_offset_in_range (reloc_entry->howto, abfd,
+					   input_section,
+					   reloc_entry->address
+					   * bfd_octets_per_byte (abfd)))
+	    return bfd_reloc_outofrange;
+
 	  /* Do the REFHI relocation.  Note that we actually don't
 	     need to know anything about the REFLO itself, except
 	     where to find the low 16 bits of the addend needed by the
@@ -886,7 +892,7 @@ mips_relocate_section (bfd *output_bfd,
 	  struct external_reloc *lo_ext_rel;
 
 	  /* As a GNU extension, permit an arbitrary number of REFHI
-             relocs before the REFLO reloc.  This permits gcc to emit
+	     relocs before the REFLO reloc.  This permits gcc to emit
 	     the HI and LO relocs itself.  */
 	  for (lo_ext_rel = ext_rel + 1;
 	       lo_ext_rel < ext_rel_end;
@@ -1356,6 +1362,8 @@ static const struct ecoff_backend_data m
 #define _bfd_ecoff_section_already_linked \
   _bfd_coff_section_already_linked
 #define _bfd_ecoff_bfd_define_common_symbol bfd_generic_define_common_symbol
+#define _bfd_ecoff_bfd_define_start_stop bfd_generic_define_start_stop
+#define _bfd_ecoff_set_reloc _bfd_generic_set_reloc
 
 extern const bfd_target mips_ecoff_be_vec;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-ppc.c ./bfd/coff-ppc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-ppc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-ppc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for PowerPC Microsoft Portable Executable files.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Original version pieced together by Kim Knuttila (krk@cygnus.com)
 
@@ -107,7 +107,7 @@ struct ppc_coff_link_hash_entry
 
   /* As we wonder around the relocs, we'll keep the assigned toc_offset
      here.  */
-  bfd_vma toc_offset;               /* Our addition, as required.  */
+  bfd_vma toc_offset;		    /* Our addition, as required.  */
   int symbol_is_glue;
   unsigned long int glue_insn;
 
@@ -165,7 +165,7 @@ static bfd_boolean
 ppc_coff_link_hash_table_init (struct ppc_coff_link_hash_table *table,
 			       bfd *abfd,
 			       struct bfd_hash_entry *(*newfunc)
-			         (struct bfd_hash_entry *,
+				 (struct bfd_hash_entry *,
 				  struct bfd_hash_table *,
 				  const char *),
 			       unsigned int entsize)
@@ -215,85 +215,85 @@ ppc_coff_link_hash_table_create (bfd *ab
 /* These should definitely go in a header file somewhere...  */
 
 /* NOP */
-#define IMAGE_REL_PPC_ABSOLUTE          0x0000
+#define IMAGE_REL_PPC_ABSOLUTE		0x0000
 
 /* 64-bit address */
-#define IMAGE_REL_PPC_ADDR64            0x0001
+#define IMAGE_REL_PPC_ADDR64		0x0001
 
 /* 32-bit address */
-#define IMAGE_REL_PPC_ADDR32            0x0002
+#define IMAGE_REL_PPC_ADDR32		0x0002
 
 /* 26-bit address, shifted left 2 (branch absolute) */
-#define IMAGE_REL_PPC_ADDR24            0x0003
+#define IMAGE_REL_PPC_ADDR24		0x0003
 
 /* 16-bit address */
-#define IMAGE_REL_PPC_ADDR16            0x0004
+#define IMAGE_REL_PPC_ADDR16		0x0004
 
 /* 16-bit address, shifted left 2 (load doubleword) */
-#define IMAGE_REL_PPC_ADDR14            0x0005
+#define IMAGE_REL_PPC_ADDR14		0x0005
 
 /* 26-bit PC-relative offset, shifted left 2 (branch relative) */
-#define IMAGE_REL_PPC_REL24             0x0006
+#define IMAGE_REL_PPC_REL24		0x0006
 
 /* 16-bit PC-relative offset, shifted left 2 (br cond relative) */
-#define IMAGE_REL_PPC_REL14             0x0007
+#define IMAGE_REL_PPC_REL14		0x0007
 
 /* 16-bit offset from TOC base */
-#define IMAGE_REL_PPC_TOCREL16          0x0008
+#define IMAGE_REL_PPC_TOCREL16		0x0008
 
 /* 16-bit offset from TOC base, shifted left 2 (load doubleword) */
-#define IMAGE_REL_PPC_TOCREL14          0x0009
+#define IMAGE_REL_PPC_TOCREL14		0x0009
 
 /* 32-bit addr w/o image base */
-#define IMAGE_REL_PPC_ADDR32NB          0x000A
+#define IMAGE_REL_PPC_ADDR32NB		0x000A
 
 /* va of containing section (as in an image sectionhdr) */
-#define IMAGE_REL_PPC_SECREL            0x000B
+#define IMAGE_REL_PPC_SECREL		0x000B
 
 /* sectionheader number */
-#define IMAGE_REL_PPC_SECTION           0x000C
+#define IMAGE_REL_PPC_SECTION		0x000C
 
 /* substitute TOC restore instruction iff symbol is glue code */
-#define IMAGE_REL_PPC_IFGLUE            0x000D
+#define IMAGE_REL_PPC_IFGLUE		0x000D
 
 /* symbol is glue code; virtual address is TOC restore instruction */
-#define IMAGE_REL_PPC_IMGLUE            0x000E
+#define IMAGE_REL_PPC_IMGLUE		0x000E
 
 /* va of containing section (limited to 16 bits) */
-#define IMAGE_REL_PPC_SECREL16          0x000F
+#define IMAGE_REL_PPC_SECREL16		0x000F
 
 /* Stuff to handle immediate data when the number of bits in the
    data is greater than the number of bits in the immediate field
    We need to do (usually) 32 bit arithmetic on 16 bit chunks.  */
-#define IMAGE_REL_PPC_REFHI             0x0010
-#define IMAGE_REL_PPC_REFLO             0x0011
-#define IMAGE_REL_PPC_PAIR              0x0012
+#define IMAGE_REL_PPC_REFHI		0x0010
+#define IMAGE_REL_PPC_REFLO		0x0011
+#define IMAGE_REL_PPC_PAIR		0x0012
 
 /* This is essentially the same as tocrel16, with TOCDEFN assumed.  */
-#define IMAGE_REL_PPC_TOCREL16_DEFN     0x0013
+#define IMAGE_REL_PPC_TOCREL16_DEFN	0x0013
 
 /* Flag bits in IMAGE_RELOCATION.TYPE.  */
 
 /* Subtract reloc value rather than adding it.  */
-#define IMAGE_REL_PPC_NEG               0x0100
+#define IMAGE_REL_PPC_NEG		0x0100
 
 /* Fix branch prediction bit to predict branch taken.  */
-#define IMAGE_REL_PPC_BRTAKEN           0x0200
+#define IMAGE_REL_PPC_BRTAKEN		0x0200
 
 /* Fix branch prediction bit to predict branch not taken.  */
-#define IMAGE_REL_PPC_BRNTAKEN          0x0400
+#define IMAGE_REL_PPC_BRNTAKEN		0x0400
 
 /* TOC slot defined in file (or, data in toc).  */
-#define IMAGE_REL_PPC_TOCDEFN           0x0800
+#define IMAGE_REL_PPC_TOCDEFN		0x0800
 
 /* Masks to isolate above values in IMAGE_RELOCATION.Type.  */
-#define IMAGE_REL_PPC_TYPEMASK          0x00FF
-#define IMAGE_REL_PPC_FLAGMASK          0x0F00
+#define IMAGE_REL_PPC_TYPEMASK		0x00FF
+#define IMAGE_REL_PPC_FLAGMASK		0x0F00
 
-#define EXTRACT_TYPE(x)                 ((x) & IMAGE_REL_PPC_TYPEMASK)
+#define EXTRACT_TYPE(x)			((x) & IMAGE_REL_PPC_TYPEMASK)
 #define EXTRACT_FLAGS(x) ((x) & IMAGE_REL_PPC_FLAGMASK)
-#define EXTRACT_JUNK(x)  \
-           ((x) & ~(IMAGE_REL_PPC_TYPEMASK | IMAGE_REL_PPC_FLAGMASK))
+#define EXTRACT_JUNK(x)	 \
+	   ((x) & ~(IMAGE_REL_PPC_TYPEMASK | IMAGE_REL_PPC_FLAGMASK))
 
 /* Static helper functions to make relocation work.  */
 /* (Work In Progress) */
@@ -319,26 +319,26 @@ static bfd_reloc_status_type ppc_imglue_
 
    From the document "" we find the following listed as used relocs:
 
-     ABSOLUTE       : The noop
+     ABSOLUTE	    : The noop
      ADDR[64|32|16] : fields that hold addresses in data fields or the
-                      16 bit displacement field on a load/store.
+		      16 bit displacement field on a load/store.
      ADDR[24|14]    : fields that hold addresses in branch and cond
-                      branches. These represent [26|16] bit addresses.
-                      The low order 2 bits are preserved.
-     REL[24|14]     : branches relative to the Instruction Address
-                      register. These represent [26|16] bit addresses,
-                      as before. The instruction field will be zero, and
-                      the address of the SYM will be inserted at link time.
-     TOCREL16       : 16 bit displacement field referring to a slot in
-                      toc.
-     TOCREL14       : 16 bit displacement field, similar to REL14 or ADDR14.
-     ADDR32NB       : 32 bit address relative to the virtual origin.
-                      (On the alpha, this is always a linker generated thunk)
-                      (i.e. 32bit addr relative to the image base)
-     SECREL         : The value is relative to the start of the section
-                      containing the symbol.
-     SECTION        : access to the header containing the item. Supports the
-                      codeview debugger.
+		      branches. These represent [26|16] bit addresses.
+		      The low order 2 bits are preserved.
+     REL[24|14]	    : branches relative to the Instruction Address
+		      register. These represent [26|16] bit addresses,
+		      as before. The instruction field will be zero, and
+		      the address of the SYM will be inserted at link time.
+     TOCREL16	    : 16 bit displacement field referring to a slot in
+		      toc.
+     TOCREL14	    : 16 bit displacement field, similar to REL14 or ADDR14.
+     ADDR32NB	    : 32 bit address relative to the virtual origin.
+		      (On the alpha, this is always a linker generated thunk)
+		      (i.e. 32bit addr relative to the image base)
+     SECREL	    : The value is relative to the start of the section
+		      containing the symbol.
+     SECTION	    : access to the header containing the item. Supports the
+		      codeview debugger.
 
    In particular, note that the document does not indicate that the
    relocations listed in the header file are used.  */
@@ -349,361 +349,361 @@ static reloc_howto_type ppc_coff_howto_t
   /* IMAGE_REL_PPC_ABSOLUTE 0x0000   NOP */
   /* Unused: */
   HOWTO (IMAGE_REL_PPC_ABSOLUTE, /* type */
-	 0,	                 /* rightshift */
-	 0,	                 /* size (0 = byte, 1 = short, 2 = long) */
-	 0,	                 /* bitsize */
-	 FALSE,	                 /* pc_relative */
-	 0,	                 /* bitpos */
+	 0,			/* rightshift */
+	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_dont, /* dont complain_on_overflow */
-	 0,		         /* special_function */
-	 "ABSOLUTE",             /* name */
-	 FALSE,	                 /* partial_inplace */
-	 0x00,	 	         /* src_mask */
-	 0x00,        		 /* dst_mask */
-	 FALSE),                 /* pcrel_offset */
+	 0,			/* special_function */
+	 "ABSOLUTE",		/* name */
+	 FALSE,			/* partial_inplace */
+	 0x00,			/* src_mask */
+	 0x00,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* IMAGE_REL_PPC_ADDR64 0x0001  64-bit address */
   /* Unused: */
-  HOWTO(IMAGE_REL_PPC_ADDR64,    /* type */
-	0,	                 /* rightshift */
-	3,	                 /* size (0 = byte, 1 = short, 2 = long) */
-	64,	                 /* bitsize */
-	FALSE,	                 /* pc_relative */
-	0,	                 /* bitpos */
-	complain_overflow_bitfield, 	 /* complain_on_overflow */
-	0,		         /* special_function */
-	"ADDR64",               /* name */
-	TRUE,	                 /* partial_inplace */
-	MINUS_ONE,	 	 /* src_mask */
-	MINUS_ONE,        	 /* dst_mask */
-	FALSE),                 /* pcrel_offset */
+  HOWTO(IMAGE_REL_PPC_ADDR64,	/* type */
+	0,			/* rightshift */
+	3,			/* size (0 = byte, 1 = short, 2 = long) */
+	64,			/* bitsize */
+	FALSE,			/* pc_relative */
+	0,			/* bitpos */
+	complain_overflow_bitfield, /* complain_on_overflow */
+	0,			/* special_function */
+	"ADDR64",		/* name */
+	TRUE,			/* partial_inplace */
+	MINUS_ONE,		/* src_mask */
+	MINUS_ONE,		/* dst_mask */
+	FALSE),			/* pcrel_offset */
 
   /* IMAGE_REL_PPC_ADDR32 0x0002  32-bit address */
   /* Used: */
   HOWTO (IMAGE_REL_PPC_ADDR32,	/* type */
-	 0,	                /* rightshift */
-	 2,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 32,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
-	 0,		        /* special_function */
-	 "ADDR32",              /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffffffff,            /* src_mask */
-	 0xffffffff,            /* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 0,			/* special_function */
+	 "ADDR32",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* IMAGE_REL_PPC_ADDR24 0x0003  26-bit address, shifted left 2 (branch absolute) */
   /* the LI field is in bit 6 through bit 29 is 24 bits, + 2 for the shift */
   /* Of course, That's the IBM approved bit numbering, which is not what */
   /* anyone else uses.... The li field is in bit 2 thru 25 */
   /* Used: */
-  HOWTO (IMAGE_REL_PPC_ADDR24,  /* type */
-	 0,	                /* rightshift */
-	 2,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 26,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+  HOWTO (IMAGE_REL_PPC_ADDR24,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 26,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
-	 0,		        /* special_function */
-	 "ADDR24",              /* name */
-	 TRUE,	                /* partial_inplace */
-	 0x07fffffc,	        /* src_mask */
-	 0x07fffffc,        	/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 0,			/* special_function */
+	 "ADDR24",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0x07fffffc,		/* src_mask */
+	 0x07fffffc,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* IMAGE_REL_PPC_ADDR16 0x0004  16-bit address */
   /* Used: */
-  HOWTO (IMAGE_REL_PPC_ADDR16,  /* type */
-	 0,	                /* rightshift */
-	 1,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 16,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+  HOWTO (IMAGE_REL_PPC_ADDR16,	/* type */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 0,		        /* special_function */
-	 "ADDR16",              /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffff,	        /* src_mask */
-	 0xffff,        	/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 0,			/* special_function */
+	 "ADDR16",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* IMAGE_REL_PPC_ADDR14 0x0005 */
   /*  16-bit address, shifted left 2 (load doubleword) */
   /* FIXME: the mask is likely wrong, and the bit position may be as well */
   /* Unused: */
-  HOWTO (IMAGE_REL_PPC_ADDR14,  /* type */
-	 1,	                /* rightshift */
-	 1,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 16,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+  HOWTO (IMAGE_REL_PPC_ADDR14,	/* type */
+	 1,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 0,		        /* special_function */
-	 "ADDR16",              /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffff,	        /* src_mask */
-	 0xffff,        	/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 0,			/* special_function */
+	 "ADDR16",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* IMAGE_REL_PPC_REL24 0x0006 */
   /*   26-bit PC-relative offset, shifted left 2 (branch relative) */
   /* Used: */
-  HOWTO (IMAGE_REL_PPC_REL24,   /* type */
-	 0,	                /* rightshift */
-	 2,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 26,	                /* bitsize */
-	 TRUE,	                /* pc_relative */
-	 0,	                /* bitpos */
+  HOWTO (IMAGE_REL_PPC_REL24,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 26,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 0,		        /* special_function */
-	 "REL24",               /* name */
-	 TRUE,	                /* partial_inplace */
-	 0x3fffffc,	        /* src_mask */
-	 0x3fffffc,        	/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 0,			/* special_function */
+	 "REL24",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0x3fffffc,		/* src_mask */
+	 0x3fffffc,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* IMAGE_REL_PPC_REL14 0x0007 */
   /*   16-bit PC-relative offset, shifted left 2 (br cond relative) */
   /* FIXME: the mask is likely wrong, and the bit position may be as well */
   /* FIXME: how does it know how far to shift? */
   /* Unused: */
-  HOWTO (IMAGE_REL_PPC_ADDR14,  /* type */
-	 1,	                /* rightshift */
-	 1,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 16,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+  HOWTO (IMAGE_REL_PPC_ADDR14,	/* type */
+	 1,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 0,		        /* special_function */
-	 "ADDR16",              /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffff,	        /* src_mask */
-	 0xffff,        	/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 0,			/* special_function */
+	 "ADDR16",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
 
   /* IMAGE_REL_PPC_TOCREL16 0x0008 */
   /*   16-bit offset from TOC base */
   /* Used: */
   HOWTO (IMAGE_REL_PPC_TOCREL16,/* type */
-	 0,	                /* rightshift */
-	 1,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 16,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 ppc_toc16_reloc,       /* special_function */
-	 "TOCREL16",            /* name */
-	 FALSE,	                /* partial_inplace */
-	 0xffff,	        /* src_mask */
-	 0xffff,        	/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 ppc_toc16_reloc,	/* special_function */
+	 "TOCREL16",		/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* IMAGE_REL_PPC_TOCREL14 0x0009 */
   /*   16-bit offset from TOC base, shifted left 2 (load doubleword) */
   /* Unused: */
   HOWTO (IMAGE_REL_PPC_TOCREL14,/* type */
-	 1,	                /* rightshift */
-	 1,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 16,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+	 1,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 0,		        /* special_function */
-	 "TOCREL14",            /* name */
-	 FALSE,	                /* partial_inplace */
-	 0xffff,	        /* src_mask */
-	 0xffff,        	/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 0,			/* special_function */
+	 "TOCREL14",		/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* IMAGE_REL_PPC_ADDR32NB 0x000A */
   /*   32-bit addr w/ image base */
   /* Unused: */
   HOWTO (IMAGE_REL_PPC_ADDR32NB,/* type */
-	 0,	                /* rightshift */
-	 2,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 32,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 0,                     /* special_function */
-	 "ADDR32NB",            /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffffffff,	        /* src_mask */
-	 0xffffffff,        	/* dst_mask */
-	 FALSE),                 /* pcrel_offset */
+	 0,			/* special_function */
+	 "ADDR32NB",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* IMAGE_REL_PPC_SECREL 0x000B */
   /*   va of containing section (as in an image sectionhdr) */
   /* Unused: */
   HOWTO (IMAGE_REL_PPC_SECREL,/* type */
-	 0,	                /* rightshift */
-	 2,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 32,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 ppc_secrel_reloc,      /* special_function */
-	 "SECREL",              /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffffffff,	        /* src_mask */
-	 0xffffffff,        	/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 ppc_secrel_reloc,	/* special_function */
+	 "SECREL",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
 
   /* IMAGE_REL_PPC_SECTION 0x000C */
   /*   sectionheader number */
   /* Unused: */
   HOWTO (IMAGE_REL_PPC_SECTION,/* type */
-	 0,	                /* rightshift */
-	 2,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 32,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 ppc_section_reloc,     /* special_function */
-	 "SECTION",             /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffffffff,	        /* src_mask */
-	 0xffffffff,        	/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 ppc_section_reloc,	/* special_function */
+	 "SECTION",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
 
   /* IMAGE_REL_PPC_IFGLUE 0x000D */
   /*   substitute TOC restore instruction iff symbol is glue code */
   /* Used: */
   HOWTO (IMAGE_REL_PPC_IFGLUE,/* type */
-	 0,	                /* rightshift */
-	 2,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 32,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 0,		        /* special_function */
-	 "IFGLUE",              /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffffffff,	        /* src_mask */
-	 0xffffffff,        	/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 0,			/* special_function */
+	 "IFGLUE",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* IMAGE_REL_PPC_IMGLUE 0x000E */
   /*   symbol is glue code; virtual address is TOC restore instruction */
   /* Unused: */
   HOWTO (IMAGE_REL_PPC_IMGLUE,/* type */
-	 0,	                /* rightshift */
-	 2,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 32,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 ppc_imglue_reloc,      /* special_function */
-	 "IMGLUE",              /* name */
-	 FALSE,	                /* partial_inplace */
-	 0xffffffff,	        /* src_mask */
-	 0xffffffff,        	/* dst_mask */
-	 FALSE),                 /* pcrel_offset */
+	 ppc_imglue_reloc,	/* special_function */
+	 "IMGLUE",		/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* IMAGE_REL_PPC_SECREL16 0x000F */
   /*   va of containing section (limited to 16 bits) */
   /* Unused: */
   HOWTO (IMAGE_REL_PPC_SECREL16,/* type */
-	 0,	                /* rightshift */
-	 1,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 16,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 0,		        /* special_function */
-	 "SECREL16",            /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffff,	        /* src_mask */
-	 0xffff,        	/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 0,			/* special_function */
+	 "SECREL16",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
 
-  /* IMAGE_REL_PPC_REFHI             0x0010 */
+  /* IMAGE_REL_PPC_REFHI	     0x0010 */
   /* Unused: */
-  HOWTO (IMAGE_REL_PPC_REFHI,   /* type */
-	 0,	                /* rightshift */
-	 1,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 16,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+  HOWTO (IMAGE_REL_PPC_REFHI,	/* type */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
 	 ppc_refhi_reloc,	/* special_function */
-	 "REFHI",               /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffffffff,	        /* src_mask */
-	 0xffffffff,        	/* dst_mask */
-	 FALSE),                 /* pcrel_offset */
+	 "REFHI",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
-  /* IMAGE_REL_PPC_REFLO             0x0011 */
+  /* IMAGE_REL_PPC_REFLO	     0x0011 */
   /* Unused: */
-  HOWTO (IMAGE_REL_PPC_REFLO,   /* type */
-	 0,	                /* rightshift */
-	 1,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 16,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+  HOWTO (IMAGE_REL_PPC_REFLO,	/* type */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
 	 ppc_refhi_reloc,	/* special_function */
-	 "REFLO",               /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffffffff,	        /* src_mask */
-	 0xffffffff,        	/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 "REFLO",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
-  /* IMAGE_REL_PPC_PAIR              0x0012 */
+  /* IMAGE_REL_PPC_PAIR		     0x0012 */
   /* Unused: */
-  HOWTO (IMAGE_REL_PPC_PAIR,    /* type */
-	 0,	                /* rightshift */
-	 1,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 16,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+  HOWTO (IMAGE_REL_PPC_PAIR,	/* type */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 ppc_pair_reloc,        /* special_function */
-	 "PAIR",                /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffffffff,	        /* src_mask */
-	 0xffffffff,        	/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 ppc_pair_reloc,	/* special_function */
+	 "PAIR",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* IMAGE_REL_PPC_TOCREL16_DEFN 0x0013 */
   /*   16-bit offset from TOC base, without causing a definition */
   /* Used: */
   HOWTO ( (IMAGE_REL_PPC_TOCREL16 | IMAGE_REL_PPC_TOCDEFN), /* type */
-	 0,	                /* rightshift */
-	 1,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 16,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 0,                     /* special_function */
-	 "TOCREL16, TOCDEFN",   /* name */
-	 FALSE,	                /* partial_inplace */
-	 0xffff,	        /* src_mask */
-	 0xffff,        	/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 0,			/* special_function */
+	 "TOCREL16, TOCDEFN",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
 };
 
 /* Some really cheezy macros that can be turned on to test stderr :-)  */
 
 #ifdef DEBUG_RELOC
-#define UN_IMPL(x)                                           \
-{                                                            \
-   static int i;                                             \
-   if (i == 0)                                               \
-     {                                                       \
-       i = 1;                                                \
+#define UN_IMPL(x)					     \
+{							     \
+   static int i;					     \
+   if (i == 0)						     \
+     {							     \
+       i = 1;						     \
        fprintf (stderr,_("Unimplemented Relocation -- %s\n"),x); \
-     }                                                       \
+     }							     \
 }
 
-#define DUMP_RELOC(n,r)                              \
-{                                                    \
+#define DUMP_RELOC(n,r)				     \
+{						     \
    fprintf (stderr,"%s sym %d, addr %d, addend %d\n", \
-	   n, (*(r->sym_ptr_ptr))->name,             \
-	   r->address, r->addend);                   \
+	   n, (*(r->sym_ptr_ptr))->name,	     \
+	   r->address, r->addend);		     \
 }
 
 /* Given a reloc name, n, and a pointer to an internal_reloc,
@@ -713,12 +713,12 @@ static reloc_howto_type ppc_coff_howto_t
 #define n_zeroes	_n._n_n._n_zeroes
 #define n_offset	_n._n_n._n_offset  */
 
-#define DUMP_RELOC2(n,r)                     		\
-{                                            		\
-   fprintf (stderr,"%s sym %d, r_vaddr %d %s\n", 	\
+#define DUMP_RELOC2(n,r)				\
+{							\
+   fprintf (stderr,"%s sym %d, r_vaddr %d %s\n",	\
 	   n, r->r_symndx, r->r_vaddr,			\
 	   (((r->r_type) & IMAGE_REL_PPC_TOCDEFN) == 0) \
-	   ?" ":" TOCDEFN"  );      			\
+	   ?" ":" TOCDEFN"  );				\
 }
 
 #else
@@ -1131,10 +1131,9 @@ coff_ppc_relocate_section (bfd *output_b
 		      {
 			_bfd_error_handler
 			  /* xgettext: c-format */
-			  (_("%B: Relocation for %s of %lx exceeds "
+			  (_("%B: Relocation for %s of %#Lx exceeds "
 			     "Toc size limit"),
-			   input_bfd, name,
-			   (unsigned long) our_toc_offset);
+			   input_bfd, name, our_toc_offset);
 			bfd_set_error (bfd_error_bad_value);
 			return FALSE;
 		      }
@@ -1186,8 +1185,8 @@ coff_ppc_relocate_section (bfd *output_b
 	      {
 		_bfd_error_handler
 		  /* xgettext: c-format */
-		  (_("%B: Relocation exceeds allocated TOC (%lx)"),
-		   input_bfd, (unsigned long) toc_section->size);
+		  (_("%B: Relocation exceeds allocated TOC (%#Lx)"),
+		   input_bfd, toc_section->size);
 		bfd_set_error (bfd_error_bad_value);
 		return FALSE;
 	      }
@@ -1242,10 +1241,9 @@ coff_ppc_relocate_section (bfd *output_b
 	    _bfd_error_handler
 	      /* xgettext: c-format */
 	      (_("Warning: unsupported reloc %s <file %B, section %A>\n"
-		 "sym %ld (%s), r_vaddr %ld (%lx)"),
+		 "sym %ld (%s), r_vaddr %Ld (%#Lx)"),
 	       howto->name, input_bfd, input_section,
-	       rel->r_symndx, my_name, (long) rel->r_vaddr,
-	       (unsigned long) rel->r_vaddr);
+	       rel->r_symndx, my_name, rel->r_vaddr, rel->r_vaddr);
 	  }
 	  break;
 	case IMAGE_REL_PPC_IMGLUE:
@@ -1714,7 +1712,7 @@ ppc_imglue_reloc (bfd *abfd ATTRIBUTE_UN
       (sizeof (ppc_coff_howto_table) / sizeof (ppc_coff_howto_table[0]) - 1)
 
 /* FIXME: There is a possibility that when we read in a reloc from a file,
-          that there are some bits encoded in the upper portion of the
+	  that there are some bits encoded in the upper portion of the
 	  type field. Not yet implemented.  */
 
 static void
@@ -1723,9 +1721,9 @@ ppc_coff_rtype2howto (arelent *relent, s
   /* We can encode one of three things in the type field, aside from the
      type:
      1. IMAGE_REL_PPC_NEG - indicates the value field is a subtraction
-        value, rather than an addition value
+	value, rather than an addition value
      2. IMAGE_REL_PPC_BRTAKEN, IMAGE_REL_PPC_BRNTAKEN - indicates that
-        the branch is expected to be taken or not.
+	the branch is expected to be taken or not.
      3. IMAGE_REL_PPC_TOCDEFN - toc slot definition in the file
      For now, we just strip this stuff to find the type, and ignore it other
      than that.  */
@@ -1791,9 +1789,9 @@ coff_ppc_rtype_to_howto (bfd *abfd ATTRI
   /* We can encode one of three things in the type field, aside from the
      type:
      1. IMAGE_REL_PPC_NEG - indicates the value field is a subtraction
-        value, rather than an addition value
+	value, rather than an addition value
      2. IMAGE_REL_PPC_BRTAKEN, IMAGE_REL_PPC_BRNTAKEN - indicates that
-        the branch is expected to be taken or not.
+	the branch is expected to be taken or not.
      3. IMAGE_REL_PPC_TOCDEFN - toc slot definition in the file
      For now, we just strip this stuff to find the type, and ignore it other
      than that.  */
@@ -1862,13 +1860,13 @@ ppc_coff_reloc_type_lookup (bfd *abfd AT
     {
       HOW2MAP(BFD_RELOC_32_GOTOFF,    IMAGE_REL_PPC_IMGLUE);
       HOW2MAP(BFD_RELOC_16_GOT_PCREL, IMAGE_REL_PPC_IFGLUE);
-      HOW2MAP(BFD_RELOC_16,           IMAGE_REL_PPC_ADDR16);
+      HOW2MAP(BFD_RELOC_16,	      IMAGE_REL_PPC_ADDR16);
       HOW2MAP(BFD_RELOC_PPC_B26,      IMAGE_REL_PPC_REL24);
       HOW2MAP(BFD_RELOC_PPC_BA26,     IMAGE_REL_PPC_ADDR24);
       HOW2MAP(BFD_RELOC_PPC_TOC16,    IMAGE_REL_PPC_TOCREL16);
       HOW2MAP(BFD_RELOC_16_GOTOFF,    IMAGE_REL_PPC_TOCREL16_DEFN);
-      HOW2MAP(BFD_RELOC_32,           IMAGE_REL_PPC_ADDR32);
-      HOW2MAP(BFD_RELOC_RVA,          IMAGE_REL_PPC_ADDR32NB);
+      HOW2MAP(BFD_RELOC_32,	      IMAGE_REL_PPC_ADDR32);
+      HOW2MAP(BFD_RELOC_RVA,	      IMAGE_REL_PPC_ADDR32NB);
     default:
       return NULL;
     }
@@ -1899,16 +1897,16 @@ ppc_coff_reloc_name_lookup (bfd *abfd AT
 
 #define coff_bfd_reloc_type_lookup   ppc_coff_reloc_type_lookup
 #define coff_bfd_reloc_name_lookup ppc_coff_reloc_name_lookup
-#define coff_rtype_to_howto          coff_ppc_rtype_to_howto
-#define coff_relocate_section        coff_ppc_relocate_section
-#define coff_bfd_final_link          ppc_bfd_coff_final_link
+#define coff_rtype_to_howto	     coff_ppc_rtype_to_howto
+#define coff_relocate_section	     coff_ppc_relocate_section
+#define coff_bfd_final_link	     ppc_bfd_coff_final_link
 
 #ifndef COFF_IMAGE_WITH_PE
 #endif
 
 #define SELECT_RELOC(internal, howto) {internal.r_type=howto->type;}
 
-#define COFF_PAGE_SIZE                       0x1000
+#define COFF_PAGE_SIZE			     0x1000
 
 /* FIXME: This controls some code that used to be in peicode.h and is
    now in peigen.c.  It will not control the code in peigen.c.  If
@@ -2083,7 +2081,7 @@ ppc_bfd_coff_final_link (bfd *abfd, stru
       unsigned int i;
 
       /* We use section_count + 1, rather than section_count, because
-         the target_index fields are 1 based.  */
+	 the target_index fields are 1 based.  */
       amt = abfd->section_count + 1;
       amt *= sizeof (struct coff_link_section_info);
       flaginfo.section_info = (struct coff_link_section_info *) bfd_malloc (amt);
@@ -2117,13 +2115,13 @@ ppc_bfd_coff_final_link (bfd *abfd, stru
       if (o->reloc_count != 0)
 	{
 	  /* We don't know the indices of global symbols until we have
-             written out all the local symbols.  For each section in
-             the output file, we keep an array of pointers to hash
-             table entries.  Each entry in the array corresponds to a
-             reloc.  When we find a reloc against a global symbol, we
-             set the corresponding entry in this array so that we can
-             fix up the symbol index after we have written out all the
-             local symbols.
+	     written out all the local symbols.  For each section in
+	     the output file, we keep an array of pointers to hash
+	     table entries.  Each entry in the array corresponds to a
+	     reloc.  When we find a reloc against a global symbol, we
+	     set the corresponding entry in this array so that we can
+	     fix up the symbol index after we have written out all the
+	     local symbols.
 
 	     Because of this problem, we also keep the relocs in
 	     memory until the end of the link.  This wastes memory,
@@ -2507,7 +2505,7 @@ const bfd_target TARGET_LITTLE_SYM =
   bfd_getl32, bfd_getl_signed_32, bfd_putl32,
   bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* hdrs */
 
-  {_bfd_dummy_target, coff_object_p, 	/* bfd_check_format */
+  {_bfd_dummy_target, coff_object_p,	/* bfd_check_format */
      bfd_generic_archive_p, /* _bfd_dummy_target */ coff_object_p },
   {bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */
      bfd_false},
@@ -2568,7 +2566,7 @@ const bfd_target TARGET_BIG_SYM =
   bfd_getb32, bfd_getb_signed_32, bfd_putb32,
   bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* hdrs */
 
-  {_bfd_dummy_target, coff_object_p, 	/* bfd_check_format */
+  {_bfd_dummy_target, coff_object_p,	/* bfd_check_format */
      bfd_generic_archive_p, /* _bfd_dummy_target */ coff_object_p },
   {bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */
      bfd_false},
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-rs6000.c ./bfd/coff-rs6000.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-rs6000.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-rs6000.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for IBM RS/6000 "XCOFF" files.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Metin G. Ozisik, Mimi Phuong-Thao Vo, and John Gilmore.
    Archive support from Damon A. Permezel.
    Contributed by IBM Corporation and Cygnus Support.
@@ -203,7 +203,8 @@ bfd_boolean (*xcoff_complain_overflow[XC
 };
 
 /* Information about one member of an archive.  */
-struct member_layout {
+struct member_layout
+{
   /* The archive member that this structure describes.  */
   bfd *member;
 
@@ -237,7 +238,8 @@ struct member_layout {
 };
 
 /* A structure used for iterating over the members of an archive.  */
-struct archive_iterator {
+struct archive_iterator
+{
   /* The archive itself.  */
   bfd *archive;
 
@@ -398,7 +400,7 @@ _bfd_xcoff_copy_private_bfd_data (bfd *i
 
 bfd_boolean
 _bfd_xcoff_is_local_label_name (bfd *abfd ATTRIBUTE_UNUSED,
-                                const char *name ATTRIBUTE_UNUSED)
+				const char *name ATTRIBUTE_UNUSED)
 {
   return FALSE;
 }
@@ -452,7 +454,7 @@ _bfd_xcoff_swap_sym_out (bfd *abfd, void
 
 void
 _bfd_xcoff_swap_aux_in (bfd *abfd, void * ext1, int type, int in_class,
-                        int indx, int numaux, void * in1)
+			int indx, int numaux, void * in1)
 {
   AUXENT * ext = (AUXENT *)ext1;
   union internal_auxent *in = (union internal_auxent *)in1;
@@ -562,9 +564,9 @@ _bfd_xcoff_swap_aux_in (bfd *abfd, void 
 
 unsigned int
 _bfd_xcoff_swap_aux_out (bfd *abfd, void * inp, int type, int in_class,
-                         int indx ATTRIBUTE_UNUSED,
-                         int numaux ATTRIBUTE_UNUSED,
-                         void * extp)
+			 int indx ATTRIBUTE_UNUSED,
+			 int numaux ATTRIBUTE_UNUSED,
+			 void * extp)
 {
   union internal_auxent *in = (union internal_auxent *)inp;
   AUXENT *ext = (AUXENT *)extp;
@@ -577,7 +579,7 @@ _bfd_xcoff_swap_aux_out (bfd *abfd, void
 	{
 	  H_PUT_32 (abfd, 0, ext->x_file.x_n.x_n.x_zeroes);
 	  H_PUT_32 (abfd, in->x_file.x_n.x_offset,
-                    ext->x_file.x_n.x_n.x_offset);
+		    ext->x_file.x_n.x_n.x_offset);
 	}
       else
 	{
@@ -654,8 +656,6 @@ _bfd_xcoff_swap_aux_out (bfd *abfd, void
 end:
   return bfd_coff_auxesz (abfd);
 }
-
-
 
 /* The XCOFF reloc table.  Actually, XCOFF relocations specify the
    bitsize and whether they are signed or not, along with a
@@ -663,7 +663,6 @@ end:
    different algorithms for putting in the reloc.  Many of these
    relocs need special_function entries, which I have not written.  */
 
-
 reloc_howto_type xcoff_howto_table[] =
 {
   /* 0x00: Standard 32 bit relocation.  */
@@ -1086,7 +1085,7 @@ xcoff_rtype2howto (arelent *relent, stru
 
 reloc_howto_type *
 _bfd_xcoff_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                              bfd_reloc_code_real_type code)
+			      bfd_reloc_code_real_type code)
 {
   switch (code)
     {
@@ -1178,13 +1177,58 @@ _bfd_xcoff_reloc_name_lookup (bfd *abfd 
 
 bfd_boolean
 bfd_xcoff_ar_archive_set_magic (bfd *abfd ATTRIBUTE_UNUSED,
-                                char *magic ATTRIBUTE_UNUSED)
+				char *magic ATTRIBUTE_UNUSED)
 {
   /* Not supported yet.  */
   return FALSE;
  /* bfd_xcoff_archive_set_magic (abfd, magic); */
 }
 
+/* PR 21786:  The PE/COFF standard does not require NUL termination for any of
+   the ASCII fields in the archive headers.  So in order to be able to extract
+   numerical values we provide our own versions of strtol and strtoll which
+   take a maximum length as an additional parameter.  Also - just to save space,
+   we omit the endptr return parameter, since we know that it is never used.  */
+
+static long
+_bfd_strntol (const char * nptr, int base, unsigned int maxlen)
+{
+  char buf[24]; /* Should be enough.  */
+
+  BFD_ASSERT (maxlen < (sizeof (buf) - 1));
+
+  memcpy (buf, nptr, maxlen);
+  buf[maxlen] = 0;
+  return strtol (buf, NULL, base);
+}
+
+static long long
+_bfd_strntoll (const char * nptr, int base, unsigned int maxlen)
+{
+  char buf[32]; /* Should be enough.  */
+
+  BFD_ASSERT (maxlen < (sizeof (buf) - 1));
+
+  memcpy (buf, nptr, maxlen);
+  buf[maxlen] = 0;
+  return strtoll (buf, NULL, base);
+}
+
+/* Macro to read an ASCII value stored in an archive header field.  */
+#define GET_VALUE_IN_FIELD(VAR, FIELD)		  \
+  do						  \
+    {						  \
+      (VAR) = sizeof (VAR) > sizeof (long)	  \
+	? _bfd_strntoll (FIELD, 10, sizeof FIELD) \
+	: _bfd_strntol (FIELD, 10, sizeof FIELD); \
+    }						  \
+  while (0)
+
+#define EQ_VALUE_IN_FIELD(VAR, FIELD)			\
+  (sizeof (VAR) > sizeof (long)				\
+   ? (VAR) ==_bfd_strntoll (FIELD, 10, sizeof FIELD)	\
+   : (VAR) == _bfd_strntol (FIELD, 10, sizeof FIELD))
+
 /* Read in the armap of an XCOFF archive.  */
 
 bfd_boolean
@@ -1209,7 +1253,7 @@ _bfd_xcoff_slurp_armap (bfd *abfd)
       /* This is for the old format.  */
       struct xcoff_ar_hdr hdr;
 
-      off = strtol (xcoff_ardata (abfd)->symoff, (char **) NULL, 10);
+      GET_VALUE_IN_FIELD (off, xcoff_ardata (abfd)->symoff);
       if (off == 0)
 	{
 	  bfd_has_map (abfd) = FALSE;
@@ -1225,12 +1269,12 @@ _bfd_xcoff_slurp_armap (bfd *abfd)
 	return FALSE;
 
       /* Skip the name (normally empty).  */
-      namlen = strtol (hdr.namlen, (char **) NULL, 10);
+      GET_VALUE_IN_FIELD (namlen, hdr.namlen);
       off = ((namlen + 1) & ~ (size_t) 1) + SXCOFFARFMAG;
       if (bfd_seek (abfd, off, SEEK_CUR) != 0)
 	return FALSE;
 
-      sz = strtol (hdr.size, (char **) NULL, 10);
+      GET_VALUE_IN_FIELD (sz, hdr.size);
 
       /* Read in the entire symbol table.  */
       contents = (bfd_byte *) bfd_alloc (abfd, sz);
@@ -1264,7 +1308,7 @@ _bfd_xcoff_slurp_armap (bfd *abfd)
       /* This is for the new format.  */
       struct xcoff_ar_hdr_big hdr;
 
-      off = strtol (xcoff_ardata_big (abfd)->symoff, (char **) NULL, 10);
+      GET_VALUE_IN_FIELD (off, xcoff_ardata_big (abfd)->symoff);
       if (off == 0)
 	{
 	  bfd_has_map (abfd) = FALSE;
@@ -1280,15 +1324,12 @@ _bfd_xcoff_slurp_armap (bfd *abfd)
 	return FALSE;
 
       /* Skip the name (normally empty).  */
-      namlen = strtol (hdr.namlen, (char **) NULL, 10);
+      GET_VALUE_IN_FIELD (namlen, hdr.namlen);
       off = ((namlen + 1) & ~ (size_t) 1) + SXCOFFARFMAG;
       if (bfd_seek (abfd, off, SEEK_CUR) != 0)
 	return FALSE;
 
-      /* XXX This actually has to be a call to strtoll (at least on 32-bit
-	 machines) since the field width is 20 and there numbers with more
-	 than 32 bits can be represented.  */
-      sz = strtol (hdr.size, (char **) NULL, 10);
+      GET_VALUE_IN_FIELD (sz, hdr.size);
 
       /* Read in the entire symbol table.  */
       contents = (bfd_byte *) bfd_alloc (abfd, sz);
@@ -1393,8 +1434,8 @@ _bfd_xcoff_archive_p (bfd *abfd)
 	  goto error_ret;
 	}
 
-      bfd_ardata (abfd)->first_file_filepos = strtol (hdr.firstmemoff,
-						      (char **) NULL, 10);
+      GET_VALUE_IN_FIELD (bfd_ardata (abfd)->first_file_filepos,
+			  hdr.firstmemoff);
 
       amt = SIZEOF_AR_FILE_HDR;
       bfd_ardata (abfd)->tdata = bfd_zalloc (abfd, amt);
@@ -1469,7 +1510,7 @@ _bfd_xcoff_read_ar_hdr (bfd *abfd)
 	  return NULL;
 	}
 
-      namlen = strtol (hdr.namlen, (char **) NULL, 10);
+      GET_VALUE_IN_FIELD (namlen, hdr.namlen);
       amt = SIZEOF_AR_HDR + namlen + 1;
       hdrp = (struct xcoff_ar_hdr *) bfd_alloc (abfd, amt);
       if (hdrp == NULL)
@@ -1486,7 +1527,7 @@ _bfd_xcoff_read_ar_hdr (bfd *abfd)
       ((char *) hdrp)[SIZEOF_AR_HDR + namlen] = '\0';
 
       ret->arch_header = (char *) hdrp;
-      ret->parsed_size = strtol (hdr.size, (char **) NULL, 10);
+      GET_VALUE_IN_FIELD (ret->parsed_size, hdr.size);
       ret->filename = (char *) hdrp + SIZEOF_AR_HDR;
     }
   else
@@ -1501,7 +1542,7 @@ _bfd_xcoff_read_ar_hdr (bfd *abfd)
 	  return NULL;
 	}
 
-      namlen = strtol (hdr.namlen, (char **) NULL, 10);
+      GET_VALUE_IN_FIELD (namlen, hdr.namlen);
       amt = SIZEOF_AR_HDR_BIG + namlen + 1;
       hdrp = (struct xcoff_ar_hdr_big *) bfd_alloc (abfd, amt);
       if (hdrp == NULL)
@@ -1518,10 +1559,7 @@ _bfd_xcoff_read_ar_hdr (bfd *abfd)
       ((char *) hdrp)[SIZEOF_AR_HDR_BIG + namlen] = '\0';
 
       ret->arch_header = (char *) hdrp;
-      /* XXX This actually has to be a call to strtoll (at least on 32-bit
-	 machines) since the field width is 20 and there numbers with more
-	 than 32 bits can be represented.  */
-      ret->parsed_size = strtol (hdr.size, (char **) NULL, 10);
+      GET_VALUE_IN_FIELD (ret->parsed_size, hdr.size);
       ret->filename = (char *) hdrp + SIZEOF_AR_HDR_BIG;
     }
 
@@ -1550,14 +1588,11 @@ _bfd_xcoff_openr_next_archived_file (bfd
       if (last_file == NULL)
 	filestart = bfd_ardata (archive)->first_file_filepos;
       else
-	filestart = strtol (arch_xhdr (last_file)->nextoff, (char **) NULL,
-			    10);
+	GET_VALUE_IN_FIELD (filestart, arch_xhdr (last_file)->nextoff);
 
       if (filestart == 0
-	  || filestart == strtol (xcoff_ardata (archive)->memoff,
-				  (char **) NULL, 10)
-	  || filestart == strtol (xcoff_ardata (archive)->symoff,
-				  (char **) NULL, 10))
+	  || EQ_VALUE_IN_FIELD (filestart, xcoff_ardata (archive)->memoff)
+	  || EQ_VALUE_IN_FIELD (filestart, xcoff_ardata (archive)->symoff))
 	{
 	  bfd_set_error (bfd_error_no_more_archived_files);
 	  return NULL;
@@ -1568,20 +1603,11 @@ _bfd_xcoff_openr_next_archived_file (bfd
       if (last_file == NULL)
 	filestart = bfd_ardata (archive)->first_file_filepos;
       else
-	/* XXX These actually have to be a calls to strtoll (at least
-	   on 32-bit machines) since the fields's width is 20 and
-	   there numbers with more than 32 bits can be represented.  */
-	filestart = strtol (arch_xhdr_big (last_file)->nextoff, (char **) NULL,
-			    10);
-
-      /* XXX These actually have to be calls to strtoll (at least on 32-bit
-	 machines) since the fields's width is 20 and there numbers with more
-	 than 32 bits can be represented.  */
+	GET_VALUE_IN_FIELD (filestart, arch_xhdr_big (last_file)->nextoff);
+
       if (filestart == 0
-	  || filestart == strtol (xcoff_ardata_big (archive)->memoff,
-				  (char **) NULL, 10)
-	  || filestart == strtol (xcoff_ardata_big (archive)->symoff,
-				  (char **) NULL, 10))
+	  || EQ_VALUE_IN_FIELD (filestart, xcoff_ardata_big (archive)->memoff)
+	  || EQ_VALUE_IN_FIELD (filestart, xcoff_ardata_big (archive)->symoff))
 	{
 	  bfd_set_error (bfd_error_no_more_archived_files);
 	  return NULL;
@@ -1606,20 +1632,20 @@ _bfd_xcoff_stat_arch_elt (bfd *abfd, str
     {
       struct xcoff_ar_hdr *hdrp = arch_xhdr (abfd);
 
-      s->st_mtime = strtol (hdrp->date, (char **) NULL, 10);
-      s->st_uid = strtol (hdrp->uid, (char **) NULL, 10);
-      s->st_gid = strtol (hdrp->gid, (char **) NULL, 10);
-      s->st_mode = strtol (hdrp->mode, (char **) NULL, 8);
+      GET_VALUE_IN_FIELD (s->st_mtime, hdrp->date);
+      GET_VALUE_IN_FIELD (s->st_uid, hdrp->uid);
+      GET_VALUE_IN_FIELD (s->st_gid, hdrp->gid);
+      GET_VALUE_IN_FIELD (s->st_mode, hdrp->mode);
       s->st_size = arch_eltdata (abfd)->parsed_size;
     }
   else
     {
       struct xcoff_ar_hdr_big *hdrp = arch_xhdr_big (abfd);
 
-      s->st_mtime = strtol (hdrp->date, (char **) NULL, 10);
-      s->st_uid = strtol (hdrp->uid, (char **) NULL, 10);
-      s->st_gid = strtol (hdrp->gid, (char **) NULL, 10);
-      s->st_mode = strtol (hdrp->mode, (char **) NULL, 8);
+      GET_VALUE_IN_FIELD (s->st_mtime, hdrp->date);
+      GET_VALUE_IN_FIELD (s->st_uid, hdrp->uid);
+      GET_VALUE_IN_FIELD (s->st_gid, hdrp->gid);
+      GET_VALUE_IN_FIELD (s->st_mode, hdrp->mode);
       s->st_size = arch_eltdata (abfd)->parsed_size;
     }
 
@@ -1647,7 +1673,7 @@ normalize_filename (bfd *abfd)
 
 static bfd_boolean
 xcoff_write_armap_old (bfd *abfd, unsigned int elength ATTRIBUTE_UNUSED,
-                       struct orl *map, unsigned int orl_count, int stridx)
+		       struct orl *map, unsigned int orl_count, int stridx)
 {
   struct archive_iterator iterator;
   struct xcoff_ar_hdr hdr;
@@ -1715,12 +1741,18 @@ xcoff_write_armap_old (bfd *abfd, unsign
 }
 
 static char buff20[XCOFFARMAGBIG_ELEMENT_SIZE + 1];
+#if BFD_HOST_64BIT_LONG
+#define FMT20  "%-20ld"
+#elif defined (__MSVCRT__)
+#define FMT20  "%-20I64d"
+#else
 #define FMT20  "%-20lld"
+#endif
 #define FMT12  "%-12d"
 #define FMT12_OCTAL  "%-12o"
 #define FMT4  "%-4d"
 #define PRINT20(d, v) \
-  sprintf (buff20, FMT20, (long long)(v)), \
+  sprintf (buff20, FMT20, (bfd_uint64_t)(v)), \
   memcpy ((void *) (d), buff20, 20)
 
 #define PRINT12(d, v) \
@@ -1788,7 +1820,7 @@ do_copy (bfd *out_bfd, bfd *in_bfd)
 
 static bfd_boolean
 xcoff_write_armap_big (bfd *abfd, unsigned int elength ATTRIBUTE_UNUSED,
-                       struct orl *map, unsigned int orl_count, int stridx)
+		       struct orl *map, unsigned int orl_count, int stridx)
 {
   struct archive_iterator iterator;
   struct xcoff_ar_file_hdr_big *fhdr;
@@ -2028,7 +2060,7 @@ xcoff_write_armap_big (bfd *abfd, unsign
 
 bfd_boolean
 _bfd_xcoff_write_armap (bfd *abfd, unsigned int elength ATTRIBUTE_UNUSED,
-                        struct orl *map, unsigned int orl_count, int stridx)
+			struct orl *map, unsigned int orl_count, int stridx)
 {
   if (! xcoff_big_format_p (abfd))
     return xcoff_write_armap_old (abfd, elength, map, orl_count, stridx);
@@ -2711,30 +2743,30 @@ xcoff_swap_ldrel_out (bfd *abfd, const s
 
 bfd_boolean
 xcoff_reloc_type_noop (bfd *input_bfd ATTRIBUTE_UNUSED,
-                       asection *input_section ATTRIBUTE_UNUSED,
-                       bfd *output_bfd ATTRIBUTE_UNUSED,
-                       struct internal_reloc *rel ATTRIBUTE_UNUSED,
-                       struct internal_syment *sym ATTRIBUTE_UNUSED,
-                       struct reloc_howto_struct *howto ATTRIBUTE_UNUSED,
-                       bfd_vma val ATTRIBUTE_UNUSED,
-                       bfd_vma addend ATTRIBUTE_UNUSED,
-                       bfd_vma *relocation ATTRIBUTE_UNUSED,
-                       bfd_byte *contents ATTRIBUTE_UNUSED)
+		       asection *input_section ATTRIBUTE_UNUSED,
+		       bfd *output_bfd ATTRIBUTE_UNUSED,
+		       struct internal_reloc *rel ATTRIBUTE_UNUSED,
+		       struct internal_syment *sym ATTRIBUTE_UNUSED,
+		       struct reloc_howto_struct *howto ATTRIBUTE_UNUSED,
+		       bfd_vma val ATTRIBUTE_UNUSED,
+		       bfd_vma addend ATTRIBUTE_UNUSED,
+		       bfd_vma *relocation ATTRIBUTE_UNUSED,
+		       bfd_byte *contents ATTRIBUTE_UNUSED)
 {
   return TRUE;
 }
 
 bfd_boolean
 xcoff_reloc_type_fail (bfd *input_bfd,
-                       asection *input_section ATTRIBUTE_UNUSED,
-                       bfd *output_bfd ATTRIBUTE_UNUSED,
-                       struct internal_reloc *rel,
-                       struct internal_syment *sym ATTRIBUTE_UNUSED,
-                       struct reloc_howto_struct *howto ATTRIBUTE_UNUSED,
-                       bfd_vma val ATTRIBUTE_UNUSED,
-                       bfd_vma addend ATTRIBUTE_UNUSED,
-                       bfd_vma *relocation ATTRIBUTE_UNUSED,
-                       bfd_byte *contents ATTRIBUTE_UNUSED)
+		       asection *input_section ATTRIBUTE_UNUSED,
+		       bfd *output_bfd ATTRIBUTE_UNUSED,
+		       struct internal_reloc *rel,
+		       struct internal_syment *sym ATTRIBUTE_UNUSED,
+		       struct reloc_howto_struct *howto ATTRIBUTE_UNUSED,
+		       bfd_vma val ATTRIBUTE_UNUSED,
+		       bfd_vma addend ATTRIBUTE_UNUSED,
+		       bfd_vma *relocation ATTRIBUTE_UNUSED,
+		       bfd_byte *contents ATTRIBUTE_UNUSED)
 {
   _bfd_error_handler
     /* xgettext: c-format */
@@ -2746,15 +2778,15 @@ xcoff_reloc_type_fail (bfd *input_bfd,
 
 bfd_boolean
 xcoff_reloc_type_pos (bfd *input_bfd ATTRIBUTE_UNUSED,
-                      asection *input_section ATTRIBUTE_UNUSED,
-                      bfd *output_bfd ATTRIBUTE_UNUSED,
-                      struct internal_reloc *rel ATTRIBUTE_UNUSED,
-                      struct internal_syment *sym ATTRIBUTE_UNUSED,
-                      struct reloc_howto_struct *howto ATTRIBUTE_UNUSED,
-                      bfd_vma val,
-                      bfd_vma addend,
-                      bfd_vma *relocation,
-                      bfd_byte *contents ATTRIBUTE_UNUSED)
+		      asection *input_section ATTRIBUTE_UNUSED,
+		      bfd *output_bfd ATTRIBUTE_UNUSED,
+		      struct internal_reloc *rel ATTRIBUTE_UNUSED,
+		      struct internal_syment *sym ATTRIBUTE_UNUSED,
+		      struct reloc_howto_struct *howto ATTRIBUTE_UNUSED,
+		      bfd_vma val,
+		      bfd_vma addend,
+		      bfd_vma *relocation,
+		      bfd_byte *contents ATTRIBUTE_UNUSED)
 {
   *relocation = val + addend;
   return TRUE;
@@ -2762,15 +2794,15 @@ xcoff_reloc_type_pos (bfd *input_bfd ATT
 
 bfd_boolean
 xcoff_reloc_type_neg (bfd *input_bfd ATTRIBUTE_UNUSED,
-                      asection *input_section ATTRIBUTE_UNUSED,
-                      bfd *output_bfd ATTRIBUTE_UNUSED,
-                      struct internal_reloc *rel ATTRIBUTE_UNUSED,
-                      struct internal_syment *sym ATTRIBUTE_UNUSED,
-                      struct reloc_howto_struct *howto ATTRIBUTE_UNUSED,
-                      bfd_vma val,
-                      bfd_vma addend,
-                      bfd_vma *relocation,
-                      bfd_byte *contents ATTRIBUTE_UNUSED)
+		      asection *input_section ATTRIBUTE_UNUSED,
+		      bfd *output_bfd ATTRIBUTE_UNUSED,
+		      struct internal_reloc *rel ATTRIBUTE_UNUSED,
+		      struct internal_syment *sym ATTRIBUTE_UNUSED,
+		      struct reloc_howto_struct *howto ATTRIBUTE_UNUSED,
+		      bfd_vma val,
+		      bfd_vma addend,
+		      bfd_vma *relocation,
+		      bfd_byte *contents ATTRIBUTE_UNUSED)
 {
   *relocation = addend - val;
   return TRUE;
@@ -2778,15 +2810,15 @@ xcoff_reloc_type_neg (bfd *input_bfd ATT
 
 bfd_boolean
 xcoff_reloc_type_rel (bfd *input_bfd ATTRIBUTE_UNUSED,
-                      asection *input_section,
-                      bfd *output_bfd ATTRIBUTE_UNUSED,
-                      struct internal_reloc *rel ATTRIBUTE_UNUSED,
-                      struct internal_syment *sym ATTRIBUTE_UNUSED,
-                      struct reloc_howto_struct *howto,
-                      bfd_vma val,
-                      bfd_vma addend,
-                      bfd_vma *relocation,
-                      bfd_byte *contents ATTRIBUTE_UNUSED)
+		      asection *input_section,
+		      bfd *output_bfd ATTRIBUTE_UNUSED,
+		      struct internal_reloc *rel ATTRIBUTE_UNUSED,
+		      struct internal_syment *sym ATTRIBUTE_UNUSED,
+		      struct reloc_howto_struct *howto,
+		      bfd_vma val,
+		      bfd_vma addend,
+		      bfd_vma *relocation,
+		      bfd_byte *contents ATTRIBUTE_UNUSED)
 {
   howto->pc_relative = TRUE;
 
@@ -2801,15 +2833,15 @@ xcoff_reloc_type_rel (bfd *input_bfd ATT
 
 bfd_boolean
 xcoff_reloc_type_toc (bfd *input_bfd,
-                      asection *input_section ATTRIBUTE_UNUSED,
-                      bfd *output_bfd,
-                      struct internal_reloc *rel,
-                      struct internal_syment *sym,
-                      struct reloc_howto_struct *howto ATTRIBUTE_UNUSED,
-                      bfd_vma val,
-                      bfd_vma addend ATTRIBUTE_UNUSED,
-                      bfd_vma *relocation,
-                      bfd_byte *contents ATTRIBUTE_UNUSED)
+		      asection *input_section ATTRIBUTE_UNUSED,
+		      bfd *output_bfd,
+		      struct internal_reloc *rel,
+		      struct internal_syment *sym,
+		      struct reloc_howto_struct *howto ATTRIBUTE_UNUSED,
+		      bfd_vma val,
+		      bfd_vma addend ATTRIBUTE_UNUSED,
+		      bfd_vma *relocation,
+		      bfd_byte *contents ATTRIBUTE_UNUSED)
 {
   struct xcoff_link_hash_entry *h;
 
@@ -2824,7 +2856,7 @@ xcoff_reloc_type_toc (bfd *input_bfd,
 	{
 	  _bfd_error_handler
 	    /* xgettext: c-format */
-	    (_("%B: TOC reloc at 0x%x to symbol `%s' with no TOC entry"),
+	    (_("%B: TOC reloc at %#Lx to symbol `%s' with no TOC entry"),
 	     input_bfd, rel->r_vaddr, h->root.root.string);
 	  bfd_set_error (bfd_error_bad_value);
 	  return FALSE;
@@ -2842,15 +2874,15 @@ xcoff_reloc_type_toc (bfd *input_bfd,
 
 bfd_boolean
 xcoff_reloc_type_ba (bfd *input_bfd ATTRIBUTE_UNUSED,
-                     asection *input_section ATTRIBUTE_UNUSED,
-                     bfd *output_bfd ATTRIBUTE_UNUSED,
-                     struct internal_reloc *rel ATTRIBUTE_UNUSED,
-                     struct internal_syment *sym ATTRIBUTE_UNUSED,
-                     struct reloc_howto_struct *howto,
-                     bfd_vma val,
-                     bfd_vma addend,
-                     bfd_vma *relocation,
-                     bfd_byte *contents ATTRIBUTE_UNUSED)
+		     asection *input_section ATTRIBUTE_UNUSED,
+		     bfd *output_bfd ATTRIBUTE_UNUSED,
+		     struct internal_reloc *rel ATTRIBUTE_UNUSED,
+		     struct internal_syment *sym ATTRIBUTE_UNUSED,
+		     struct reloc_howto_struct *howto,
+		     bfd_vma val,
+		     bfd_vma addend,
+		     bfd_vma *relocation,
+		     bfd_byte *contents ATTRIBUTE_UNUSED)
 {
   howto->src_mask &= ~3;
   howto->dst_mask = howto->src_mask;
@@ -2862,15 +2894,15 @@ xcoff_reloc_type_ba (bfd *input_bfd ATTR
 
 static bfd_boolean
 xcoff_reloc_type_br (bfd *input_bfd,
-                     asection *input_section,
-                     bfd *output_bfd ATTRIBUTE_UNUSED,
-                     struct internal_reloc *rel,
-                     struct internal_syment *sym ATTRIBUTE_UNUSED,
-                     struct reloc_howto_struct *howto,
-                     bfd_vma val,
-                     bfd_vma addend,
-                     bfd_vma *relocation,
-                     bfd_byte *contents)
+		     asection *input_section,
+		     bfd *output_bfd ATTRIBUTE_UNUSED,
+		     struct internal_reloc *rel,
+		     struct internal_syment *sym ATTRIBUTE_UNUSED,
+		     struct reloc_howto_struct *howto,
+		     bfd_vma val,
+		     bfd_vma addend,
+		     bfd_vma *relocation,
+		     bfd_byte *contents)
 {
   struct xcoff_link_hash_entry *h;
   bfd_vma section_offset;
@@ -2968,15 +3000,15 @@ xcoff_reloc_type_br (bfd *input_bfd,
 
 bfd_boolean
 xcoff_reloc_type_crel (bfd *input_bfd ATTRIBUTE_UNUSED,
-                       asection *input_section,
-                       bfd *output_bfd ATTRIBUTE_UNUSED,
-                       struct internal_reloc *rel ATTRIBUTE_UNUSED,
-                       struct internal_syment *sym ATTRIBUTE_UNUSED,
-                       struct reloc_howto_struct *howto,
-                       bfd_vma val ATTRIBUTE_UNUSED,
-                       bfd_vma addend,
-                       bfd_vma *relocation,
-                       bfd_byte *contents ATTRIBUTE_UNUSED)
+		       asection *input_section,
+		       bfd *output_bfd ATTRIBUTE_UNUSED,
+		       struct internal_reloc *rel ATTRIBUTE_UNUSED,
+		       struct internal_syment *sym ATTRIBUTE_UNUSED,
+		       struct reloc_howto_struct *howto,
+		       bfd_vma val ATTRIBUTE_UNUSED,
+		       bfd_vma addend,
+		       bfd_vma *relocation,
+		       bfd_byte *contents ATTRIBUTE_UNUSED)
 {
   howto->pc_relative = TRUE;
   howto->src_mask &= ~3;
@@ -2993,19 +3025,19 @@ xcoff_reloc_type_crel (bfd *input_bfd AT
 
 static bfd_boolean
 xcoff_complain_overflow_dont_func (bfd *input_bfd ATTRIBUTE_UNUSED,
-                                   bfd_vma val ATTRIBUTE_UNUSED,
-                                   bfd_vma relocation ATTRIBUTE_UNUSED,
-                                   struct reloc_howto_struct *
-                                      howto ATTRIBUTE_UNUSED)
+				   bfd_vma val ATTRIBUTE_UNUSED,
+				   bfd_vma relocation ATTRIBUTE_UNUSED,
+				   struct reloc_howto_struct *
+				      howto ATTRIBUTE_UNUSED)
 {
   return FALSE;
 }
 
 static bfd_boolean
 xcoff_complain_overflow_bitfield_func (bfd *input_bfd,
-                                       bfd_vma val,
-                                       bfd_vma relocation,
-                                       struct reloc_howto_struct *howto)
+				       bfd_vma val,
+				       bfd_vma relocation,
+				       struct reloc_howto_struct *howto)
 {
   bfd_vma fieldmask, signmask, ss;
   bfd_vma a, b, sum;
@@ -3077,9 +3109,9 @@ xcoff_complain_overflow_bitfield_func (b
 
 static bfd_boolean
 xcoff_complain_overflow_signed_func (bfd *input_bfd,
-                                     bfd_vma val,
-                                     bfd_vma relocation,
-                                     struct reloc_howto_struct *howto)
+				     bfd_vma val,
+				     bfd_vma relocation,
+				     struct reloc_howto_struct *howto)
 {
   bfd_vma addrmask, fieldmask, signmask, ss;
   bfd_vma a, b, sum;
@@ -3138,9 +3170,9 @@ xcoff_complain_overflow_signed_func (bfd
 
 static bfd_boolean
 xcoff_complain_overflow_unsigned_func (bfd *input_bfd,
-                                       bfd_vma val,
-                                       bfd_vma relocation,
-                                       struct reloc_howto_struct *howto)
+				       bfd_vma val,
+				       bfd_vma relocation,
+				       struct reloc_howto_struct *howto)
 {
   bfd_vma addrmask, fieldmask;
   bfd_vma a, b, sum;
@@ -3287,13 +3319,13 @@ xcoff_complain_overflow_unsigned_func (b
 
 bfd_boolean
 xcoff_ppc_relocate_section (bfd *output_bfd,
-                            struct bfd_link_info *info,
-                            bfd *input_bfd,
-                            asection *input_section,
-                            bfd_byte *contents,
-                            struct internal_reloc *relocs,
-                            struct internal_syment *syms,
-                            asection **sections)
+			    struct bfd_link_info *info,
+			    bfd *input_bfd,
+			    asection *input_section,
+			    bfd_byte *contents,
+			    struct internal_reloc *relocs,
+			    struct internal_syment *syms,
+			    asection **sections)
 {
   struct internal_reloc *rel;
   struct internal_reloc *relend;
@@ -3476,9 +3508,9 @@ xcoff_ppc_relocate_section (bfd *output_
 
 static bfd_boolean
 _bfd_xcoff_put_ldsymbol_name (bfd *abfd ATTRIBUTE_UNUSED,
-                              struct xcoff_loader_info *ldinfo,
-                              struct internal_ldsym *ldsym,
-                              const char *name)
+			      struct xcoff_loader_info *ldinfo,
+			      struct internal_ldsym *ldsym,
+			      const char *name)
 {
   size_t len;
   len = strlen (name);
@@ -3546,8 +3578,8 @@ _bfd_xcoff_put_symbol_name (struct bfd_l
 
 static asection *
 xcoff_create_csect_from_smclas (bfd *abfd,
-                                union internal_auxent *aux,
-                                const char *symbol_name)
+				union internal_auxent *aux,
+				const char *symbol_name)
 {
   asection *return_value = NULL;
 
@@ -3598,7 +3630,7 @@ xcoff_is_reloc_count_overflow (bfd *abfd
 
 static bfd_vma
 xcoff_loader_symbol_offset (bfd *abfd,
-                            struct internal_ldhdr *ldhdr ATTRIBUTE_UNUSED)
+			    struct internal_ldhdr *ldhdr ATTRIBUTE_UNUSED)
 {
   return bfd_xcoff_ldhdrsz (abfd);
 }
@@ -3611,7 +3643,7 @@ xcoff_loader_reloc_offset (bfd *abfd, st
 
 static bfd_boolean
 xcoff_generate_rtinit  (bfd *abfd, const char *init, const char *fini,
-                        bfd_boolean rtld)
+			bfd_boolean rtld)
 {
   bfd_byte filehdr_ext[FILHSZ];
   bfd_byte scnhdr_ext[SCNHSZ];
@@ -3993,6 +4025,7 @@ const struct xcoff_dwsect_name xcoff_dws
 /* For reloc entry points.  */
 #define _bfd_xcoff_get_reloc_upper_bound coff_get_reloc_upper_bound
 #define _bfd_xcoff_canonicalize_reloc coff_canonicalize_reloc
+#define _bfd_xcoff_set_reloc _bfd_generic_set_reloc
 #define _bfd_xcoff_bfd_reloc_type_lookup _bfd_xcoff_reloc_type_lookup
 #define _bfd_xcoff_bfd_reloc_name_lookup _bfd_xcoff_reloc_name_lookup
 
@@ -4012,6 +4045,7 @@ const struct xcoff_dwsect_name xcoff_dws
 #define _bfd_xcoff_bfd_discard_group bfd_generic_discard_group
 #define _bfd_xcoff_section_already_linked _bfd_generic_section_already_linked
 #define _bfd_xcoff_bfd_define_common_symbol _bfd_xcoff_define_common_symbol
+#define _bfd_xcoff_bfd_define_start_stop    bfd_generic_define_start_stop
 #define _bfd_xcoff_bfd_link_check_relocs    _bfd_generic_link_check_relocs
 
 /* For dynamic symbols and relocs entry points.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-sh.c ./bfd/coff-sh.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-sh.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-sh.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Renesas Super-H COFF binaries.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Support.
    Written by Steve Chamberlain, <sac@cygnus.com>.
    Relaxing code written by Ian Lance Taylor, <ian@cygnus.com>.
@@ -173,19 +173,19 @@ static reloc_howto_type sh_coff_howtos[]
 
   EMPTY_HOWTO (15),
 #ifdef COFF_WITH_PE
-  HOWTO (R_SH_IMAGEBASE,        /* type */
-	 0,	                /* rightshift */
-	 2,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 32,	                /* bitsize */
-	 FALSE,	                /* pc_relative */
-	 0,	                /* bitpos */
+  HOWTO (R_SH_IMAGEBASE,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
-	 sh_reloc,       	/* special_function */
-	 "rva32",	        /* name */
-	 TRUE,	                /* partial_inplace */
-	 0xffffffff,            /* src_mask */
-	 0xffffffff,            /* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 sh_reloc,		/* special_function */
+	 "rva32",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 #else
   EMPTY_HOWTO (16), /* R_SH_IMM8 */
 #endif
@@ -445,11 +445,11 @@ coff_sh_rtype_to_howto (bfd * abfd ATTRI
       *addendp -= 4;
 
       /* If the symbol is defined, then the generic code is going to
-         add back the symbol value in order to cancel out an
-         adjustment it made to the addend.  However, we set the addend
-         to 0 at the start of this function.  We need to adjust here,
-         to avoid the adjustment the generic code will make.  FIXME:
-         This is getting a bit hackish.  */
+	 add back the symbol value in order to cancel out an
+	 adjustment it made to the addend.  However, we set the addend
+	 to 0 at the start of this function.  We need to adjust here,
+	 to avoid the adjustment the generic code will make.  FIXME:
+	 This is getting a bit hackish.  */
       if (sym != NULL && sym->n_scnum != 0)
 	*addendp -= sym->n_value;
     }
@@ -596,6 +596,9 @@ sh_reloc (bfd *      abfd,
       && bfd_is_und_section (symbol_in->section))
     return bfd_reloc_undefined;
 
+  if (addr > input_section->size)
+    return bfd_reloc_outofrange;
+
   sym_value = get_symbol_value (symbol_in);
 
   switch (r_type)
@@ -763,17 +766,17 @@ sh_relax_section (bfd *abfd,
 	}
 
       /* The r_offset field of the R_SH_USES reloc will point us to
-         the register load.  The 4 is because the r_offset field is
-         computed as though it were a jump offset, which are based
-         from 4 bytes after the jump instruction.  */
+	 the register load.  The 4 is because the r_offset field is
+	 computed as though it were a jump offset, which are based
+	 from 4 bytes after the jump instruction.  */
       laddr = irel->r_vaddr - sec->vma + 4;
       /* Careful to sign extend the 32-bit offset.  */
       laddr += ((irel->r_offset & 0xffffffff) ^ 0x80000000) - 0x80000000;
       if (laddr >= sec->size)
 	{
 	  /* xgettext: c-format */
-	  _bfd_error_handler (_("%B: 0x%lx: warning: bad R_SH_USES offset"),
-			      abfd, (unsigned long) irel->r_vaddr);
+	  _bfd_error_handler (_("%B: %#Lx: warning: bad R_SH_USES offset"),
+			      abfd, irel->r_vaddr);
 	  continue;
 	}
       insn = bfd_get_16 (abfd, contents + laddr);
@@ -783,17 +786,17 @@ sh_relax_section (bfd *abfd,
 	{
 	  _bfd_error_handler
 	    /* xgettext: c-format */
-	    (_("%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"),
-	     abfd, (unsigned long) irel->r_vaddr, insn);
+	    (_("%B: %#Lx: warning: R_SH_USES points to unrecognized insn %#x"),
+	     abfd, irel->r_vaddr, insn);
 	  continue;
 	}
 
       /* Get the address from which the register is being loaded.  The
-      	 displacement in the mov.l instruction is quadrupled.  It is a
-      	 displacement from four bytes after the movl instruction, but,
-      	 before adding in the PC address, two least significant bits
-      	 of the PC are cleared.  We assume that the section is aligned
-      	 on a four byte boundary.  */
+	 displacement in the mov.l instruction is quadrupled.  It is a
+	 displacement from four bytes after the movl instruction, but,
+	 before adding in the PC address, two least significant bits
+	 of the PC are cleared.  We assume that the section is aligned
+	 on a four byte boundary.  */
       paddr = insn & 0xff;
       paddr *= 4;
       paddr += (laddr + 4) &~ (bfd_vma) 3;
@@ -801,14 +804,14 @@ sh_relax_section (bfd *abfd,
 	{
 	  _bfd_error_handler
 	    /* xgettext: c-format */
-	    (_("%B: 0x%lx: warning: bad R_SH_USES load offset"),
-	     abfd, (unsigned long) irel->r_vaddr);
+	    (_("%B: %#Lx: warning: bad R_SH_USES load offset"),
+	     abfd, irel->r_vaddr);
 	  continue;
 	}
 
       /* Get the reloc for the address from which the register is
-         being loaded.  This reloc will tell us which function is
-         actually being called.  */
+	 being loaded.  This reloc will tell us which function is
+	 actually being called.  */
       paddr += sec->vma;
       for (irelfn = internal_relocs; irelfn < irelend; irelfn++)
 	if (irelfn->r_vaddr == paddr
@@ -826,8 +829,8 @@ sh_relax_section (bfd *abfd,
 	{
 	  _bfd_error_handler
 	    /* xgettext: c-format */
-	    (_("%B: 0x%lx: warning: could not find expected reloc"),
-	     abfd, (unsigned long) paddr);
+	    (_("%B: %#Lx: warning: could not find expected reloc"),
+	     abfd, paddr);
 	  continue;
 	}
 
@@ -843,8 +846,8 @@ sh_relax_section (bfd *abfd,
 	{
 	  _bfd_error_handler
 	    /* xgettext: c-format */
-	    (_("%B: 0x%lx: warning: symbol in unexpected section"),
-	     abfd, (unsigned long) paddr);
+	    (_("%B: %#Lx: warning: symbol in unexpected section"),
+	     abfd, paddr);
 	  continue;
 	}
 
@@ -865,8 +868,8 @@ sh_relax_section (bfd *abfd,
 	      && h->root.type != bfd_link_hash_defweak)
 	    {
 	      /* This appears to be a reference to an undefined
-                 symbol.  Just ignore it--it will be caught by the
-                 regular reloc processing.  */
+		 symbol.  Just ignore it--it will be caught by the
+		 regular reloc processing.  */
 	      continue;
 	    }
 
@@ -911,14 +914,14 @@ sh_relax_section (bfd *abfd,
       /* Replace the jsr with a bsr.  */
 
       /* Change the R_SH_USES reloc into an R_SH_PCDISP reloc, and
-         replace the jsr with a bsr.  */
+	 replace the jsr with a bsr.  */
       irel->r_type = R_SH_PCDISP;
       irel->r_symndx = irelfn->r_symndx;
       if (sym.n_sclass != C_EXT)
 	{
 	  /* If this needs to be changed because of future relaxing,
-             it will be handled here like other internal PCDISP
-             relocs.  */
+	     it will be handled here like other internal PCDISP
+	     relocs.  */
 	  bfd_put_16 (abfd,
 		      (bfd_vma) 0xb000 | ((foff >> 1) & 0xfff),
 		      contents + irel->r_vaddr - sec->vma);
@@ -926,14 +929,14 @@ sh_relax_section (bfd *abfd,
       else
 	{
 	  /* We can't fully resolve this yet, because the external
-             symbol value may be changed by future relaxing.  We let
-             the final link phase handle it.  */
+	     symbol value may be changed by future relaxing.  We let
+	     the final link phase handle it.  */
 	  bfd_put_16 (abfd, (bfd_vma) 0xb000,
 		      contents + irel->r_vaddr - sec->vma);
 	}
 
       /* See if there is another R_SH_USES reloc referring to the same
-         register load.  */
+	 register load.  */
       for (irelscan = internal_relocs; irelscan < irelend; irelscan++)
 	if (irelscan->r_type == R_SH_USES
 	    && laddr == irelscan->r_vaddr - sec->vma + 4 + irelscan->r_offset)
@@ -948,8 +951,8 @@ sh_relax_section (bfd *abfd,
 	}
 
       /* Look for a R_SH_COUNT reloc on the location where the
-         function address is stored.  Do this before deleting any
-         bytes, to avoid confusion about the address.  */
+	 function address is stored.  Do this before deleting any
+	 bytes, to avoid confusion about the address.  */
       for (irelcount = internal_relocs; irelcount < irelend; irelcount++)
 	if (irelcount->r_vaddr == paddr
 	    && irelcount->r_type == R_SH_COUNT)
@@ -960,8 +963,8 @@ sh_relax_section (bfd *abfd,
 	goto error_return;
 
       /* That will change things, so, just in case it permits some
-         other function call to come within range, we should relax
-         again.  Note that this is not required, and it may be slow.  */
+	 other function call to come within range, we should relax
+	 again.  Note that this is not required, and it may be slow.  */
       *again = TRUE;
 
       /* Now check whether we got a COUNT reloc.  */
@@ -969,26 +972,26 @@ sh_relax_section (bfd *abfd,
 	{
 	  _bfd_error_handler
 	    /* xgettext: c-format */
-	    (_("%B: 0x%lx: warning: could not find expected COUNT reloc"),
-	     abfd, (unsigned long) paddr);
+	    (_("%B: %#Lx: warning: could not find expected COUNT reloc"),
+	     abfd, paddr);
 	  continue;
 	}
 
       /* The number of uses is stored in the r_offset field.  We've
-         just deleted one.  */
+	 just deleted one.  */
       if (irelcount->r_offset == 0)
 	{
 	  /* xgettext: c-format */
-	  _bfd_error_handler (_("%B: 0x%lx: warning: bad count"),
-			      abfd, (unsigned long) paddr);
+	  _bfd_error_handler (_("%B: %#Lx: warning: bad count"),
+			      abfd, paddr);
 	  continue;
 	}
 
       --irelcount->r_offset;
 
       /* If there are no more uses, we can delete the address.  Reload
-         the address from irelfn, in case it was changed by the
-         previous call to sh_relax_delete_bytes.  */
+	 the address from irelfn, in case it was changed by the
+	 previous call to sh_relax_delete_bytes.  */
       if (irelcount->r_offset == 0)
 	{
 	  if (! sh_relax_delete_bytes (abfd, sec,
@@ -1080,7 +1083,7 @@ sh_relax_delete_bytes (bfd *abfd,
 
   contents = coff_section_data (abfd, sec)->contents;
 
-  /* The deletion must stop at the next ALIGN reloc for an aligment
+  /* The deletion must stop at the next ALIGN reloc for an alignment
      power larger than the number of bytes we are deleting.  */
 
   irelalign = NULL;
@@ -1147,7 +1150,7 @@ sh_relax_delete_bytes (bfd *abfd,
 	irel->r_type = R_SH_UNUSED;
 
       /* If this is a PC relative reloc, see if the range it covers
-         includes the bytes we have deleted.  */
+	 includes the bytes we have deleted.  */
       switch (irel->r_type)
 	{
 	default:
@@ -1174,9 +1177,9 @@ sh_relax_delete_bytes (bfd *abfd,
 	case R_SH_IMAGEBASE:
 #endif
 	  /* If this reloc is against a symbol defined in this
-             section, and the symbol will not be adjusted below, we
-             must check the addend to see it will put the value in
-             range to be adjusted, and hence must be changed.  */
+	     section, and the symbol will not be adjusted below, we
+	     must check the addend to see it will put the value in
+	     range to be adjusted, and hence must be changed.  */
 	  bfd_coff_swap_sym_in (abfd,
 				((bfd_byte *) obj_coff_external_syms (abfd)
 				 + (irel->r_symndx
@@ -1351,8 +1354,8 @@ sh_relax_delete_bytes (bfd *abfd,
 	    {
 	      _bfd_error_handler
 		/* xgettext: c-format */
-		(_("%B: 0x%lx: fatal: reloc overflow while relaxing"),
-		 abfd, (unsigned long) irel->r_vaddr);
+		(_("%B: %#Lx: fatal: reloc overflow while relaxing"),
+		 abfd, irel->r_vaddr);
 	      bfd_set_error (bfd_error_bad_value);
 	      return FALSE;
 	    }
@@ -1376,8 +1379,8 @@ sh_relax_delete_bytes (bfd *abfd,
 	continue;
 
       /* We always cache the relocs.  Perhaps, if info->keep_memory is
-         FALSE, we should free them, if we are permitted to, when we
-         leave sh_coff_relax_section.  */
+	 FALSE, we should free them, if we are permitted to, when we
+	 leave sh_coff_relax_section.  */
       internal_relocs = (_bfd_coff_read_internal_relocs
 			 (abfd, o, TRUE, (bfd_byte *) NULL, FALSE,
 			  (struct internal_reloc *) NULL));
@@ -1420,9 +1423,9 @@ sh_relax_delete_bytes (bfd *abfd,
 		      if (!bfd_malloc_and_get_section (abfd, o, &ocontents))
 			return FALSE;
 		      /* We always cache the section contents.
-                         Perhaps, if info->keep_memory is FALSE, we
-                         should free them, if we are permitted to,
-                         when we leave sh_coff_relax_section.  */
+			 Perhaps, if info->keep_memory is FALSE, we
+			 should free them, if we are permitted to,
+			 when we leave sh_coff_relax_section.  */
 		      coff_section_data (abfd, o)->contents = ocontents;
 		    }
 		}
@@ -2044,7 +2047,7 @@ sh_insn_info (unsigned int insn)
       opend = op + min->count;
 
       /* Since the opcodes tables are sorted, we could use a binary
-         search here if the count were above some cutoff value.  */
+	 search here if the count were above some cutoff value.  */
       for (; op < opend; op++)
 	if (op->opcode == l)
 	  return op;
@@ -2544,8 +2547,8 @@ sh_swap_insns (bfd *      abfd,
       int type, add;
 
       /* There are a few special types of relocs that we don't want to
-         adjust.  These relocs do not apply to the instruction itself,
-         but are only associated with the address.  */
+	 adjust.  These relocs do not apply to the instruction itself,
+	 but are only associated with the address.  */
       type = irel->r_type;
       if (type == R_SH_ALIGN
 	  || type == R_SH_CODE
@@ -2554,11 +2557,11 @@ sh_swap_insns (bfd *      abfd,
 	continue;
 
       /* If an R_SH_USES reloc points to one of the addresses being
-         swapped, we must adjust it.  It would be incorrect to do this
-         for a jump, though, since we want to execute both
-         instructions after the jump.  (We have avoided swapping
-         around a label, so the jump will not wind up executing an
-         instruction it shouldn't).  */
+	 swapped, we must adjust it.  It would be incorrect to do this
+	 for a jump, though, since we want to execute both
+	 instructions after the jump.  (We have avoided swapping
+	 around a label, so the jump will not wind up executing an
+	 instruction it shouldn't).  */
       if (type == R_SH_USES)
 	{
 	  bfd_vma off;
@@ -2617,11 +2620,11 @@ sh_swap_insns (bfd *      abfd,
 
 	    case R_SH_PCRELIMM8BY4:
 	      /* This reloc ignores the least significant 3 bits of
-                 the program counter before adding in the offset.
-                 This means that if ADDR is at an even address, the
-                 swap will not affect the offset.  If ADDR is an at an
-                 odd address, then the instruction will be crossing a
-                 four byte boundary, and must be adjusted.  */
+		 the program counter before adding in the offset.
+		 This means that if ADDR is at an even address, the
+		 swap will not affect the offset.  If ADDR is an at an
+		 odd address, then the instruction will be crossing a
+		 four byte boundary, and must be adjusted.  */
 	      if ((addr & 3) != 0)
 		{
 		  insn = bfd_get_16 (abfd, loc);
@@ -2639,8 +2642,8 @@ sh_swap_insns (bfd *      abfd,
 	    {
 	      _bfd_error_handler
 		/* xgettext: c-format */
-		(_("%B: 0x%lx: fatal: reloc overflow while relaxing"),
-		 abfd, (unsigned long) irel->r_vaddr);
+		(_("%B: %#Lx: fatal: reloc overflow while relaxing"),
+		 abfd, irel->r_vaddr);
 	      bfd_set_error (bfd_error_bad_value);
 	      return FALSE;
 	    }
@@ -2754,7 +2757,7 @@ sh_relocate_section (bfd *output_bfd ATT
       bfd_reloc_status_type rstat;
 
       /* Almost all relocs have to do with relaxing.  If any work must
-         be done for them, it has been done in sh_relax_section.  */
+	 be done for them, it has been done in sh_relax_section.  */
       if (rel->r_type != R_SH_IMM32
 #ifdef COFF_WITH_PE
 	  && rel->r_type != R_SH_IMM32CE
@@ -2828,7 +2831,7 @@ sh_relocate_section (bfd *output_bfd ATT
 	  else
 	    {
 	      sec = sections[symndx];
-              val = (sec->output_section->vma
+	      val = (sec->output_section->vma
 		     + sec->output_offset
 		     + sym->n_value
 		     - sec->vma);
@@ -2877,7 +2880,7 @@ sh_relocate_section (bfd *output_bfd ATT
 	      name = obj_coff_strings (input_bfd) + sym->_n._n_n._n_offset;
 	    else
 	      {
- 		strncpy (buf, sym->_n._n_name, SYMNMLEN);
+		strncpy (buf, sym->_n._n_name, SYMNMLEN);
 		buf[SYMNMLEN] = '\0';
 		name = buf;
 	      }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-sparc.c ./bfd/coff-sparc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-sparc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-sparc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Sparc COFF files.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-stgo32.c ./bfd/coff-stgo32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-stgo32.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-stgo32.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel 386 COFF files (DJGPP variant with a stub).
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
    Written by Robert Hoehne.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -318,13 +318,13 @@ create_go32_stub (bfd *abfd)
 	  goto stub_end;
 	}
       /* Compute the size of the stub (it is every thing up
-         to the beginning of the coff image).  */
+	 to the beginning of the coff image).  */
       coff_start = (long) _H (2) * 512L;
       if (_H (1))
 	coff_start += (long) _H (1) - 512L;
 
       /* Currently there is only a fixed stub size of 2048 bytes
-         supported.  */
+	 supported.  */
       if (coff_start != 2048)
 	{
 	  close (f);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-svm68k.c ./bfd/coff-svm68k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-svm68k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-svm68k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Motorola sysv68
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
    Written by Philippe De Muyter <phdm@info.ucl.ac.be>.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coffswap.h ./bfd/coffswap.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coffswap.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coffswap.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Generic COFF swapping routines, for BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -429,7 +429,7 @@ coff_swap_aux_in (bfd *abfd,
 	  in->x_scn.x_nlinno = GET_SCN_NLINNO (abfd, ext);
 
 	  /* PE defines some extra fields; we zero them out for
-             safety.  */
+	     safety.  */
 	  in->x_scn.x_checksum = 0;
 	  in->x_scn.x_associated = 0;
 	  in->x_scn.x_comdat = 0;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-tic30.c ./bfd/coff-tic30.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-tic30.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-tic30.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for TMS320C30 coff binaries.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
    Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au)
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-tic4x.c ./bfd/coff-tic4x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-tic4x.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-tic4x.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for TMS320C4X coff binaries.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz)
 
@@ -82,8 +82,8 @@ tic4x_relocation (bfd *abfd ATTRIBUTE_UN
   if (output_bfd != (bfd *) NULL)
     {
       /* This is a partial relocation, and we want to apply the
- 	 relocation to the reloc entry rather than the raw data.
- 	 Modify the reloc inplace to reflect what we now know.  */
+	 relocation to the reloc entry rather than the raw data.
+	 Modify the reloc inplace to reflect what we now know.  */
       reloc_entry->address += input_section->output_offset;
       return bfd_reloc_ok;
     }
@@ -221,20 +221,20 @@ tic4x_reloc_processing (arelent *relent,
   if (reloc->r_symndx != -1)
     {
       if (reloc->r_symndx < 0 || reloc->r_symndx >= obj_conv_table_size (abfd))
-        {
+	{
 	  _bfd_error_handler
 	    /* xgettext: c-format */
 	    (_("%B: warning: illegal symbol index %ld in relocs"),
 	     abfd, reloc->r_symndx);
-          relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
-          ptr = NULL;
-        }
+	  relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
+	  ptr = NULL;
+	}
       else
-        {
-          relent->sym_ptr_ptr = (symbols
-                                 + obj_convert (abfd)[reloc->r_symndx]);
-          ptr = *(relent->sym_ptr_ptr);
-        }
+	{
+	  relent->sym_ptr_ptr = (symbols
+				 + obj_convert (abfd)[reloc->r_symndx]);
+	  ptr = *(relent->sym_ptr_ptr);
+	}
     }
   else
     {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-tic54x.c ./bfd/coff-tic54x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-tic54x.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-tic54x.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for TMS320C54X coff binaries.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Contributed by Timothy Wall (twall@cygnus.com)
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -138,8 +138,8 @@ tic54x_relocation (bfd *abfd ATTRIBUTE_U
   if (output_bfd != (bfd *) NULL)
     {
       /* This is a partial relocation, and we want to apply the
- 	 relocation to the reloc entry rather than the raw data.
- 	 Modify the reloc inplace to reflect what we now know.  */
+	 relocation to the reloc entry rather than the raw data.
+	 Modify the reloc inplace to reflect what we now know.  */
       reloc_entry->address += input_section->output_offset;
       return bfd_reloc_ok;
     }
@@ -342,7 +342,7 @@ tic54x_set_section_contents (bfd *abfd,
 			     bfd_size_type bytes_to_do)
 {
   return coff_set_section_contents (abfd, section, location,
-                                    offset, bytes_to_do);
+				    offset, bytes_to_do);
 }
 
 static void
@@ -359,20 +359,20 @@ tic54x_reloc_processing (arelent *relent
   if (reloc->r_symndx != -1)
     {
       if (reloc->r_symndx < 0 || reloc->r_symndx >= obj_conv_table_size (abfd))
-        {
-          _bfd_error_handler
+	{
+	  _bfd_error_handler
 	    /* xgettext: c-format */
-            (_("%B: warning: illegal symbol index %ld in relocs"),
-             abfd, reloc->r_symndx);
-          relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
-          ptr = NULL;
-        }
+	    (_("%B: warning: illegal symbol index %ld in relocs"),
+	     abfd, reloc->r_symndx);
+	  relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
+	  ptr = NULL;
+	}
       else
-        {
-          relent->sym_ptr_ptr = (symbols
-                                 + obj_convert (abfd)[reloc->r_symndx]);
-          ptr = *(relent->sym_ptr_ptr);
-        }
+	{
+	  relent->sym_ptr_ptr = (symbols
+				 + obj_convert (abfd)[reloc->r_symndx]);
+	  ptr = *(relent->sym_ptr_ptr);
+	}
     }
   else
     {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-tic80.c ./bfd/coff-tic80.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-tic80.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-tic80.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Texas Instruments TMS320C80 Multimedia Video Processor (MVP).
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    Written by Fred Fish (fnf@cygnus.com)
 
@@ -42,6 +42,8 @@
 #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (2)
 #define COFF_ALIGN_IN_SECTION_HEADER 1
 #define COFF_ALIGN_IN_SFLAGS 1
+#define COFF_ENCODE_ALIGNMENT(S,X) ((S).s_flags |= (((unsigned)(X) & 0xf) << 8))
+#define COFF_DECODE_ALIGNMENT(X) (((X) >> 8) & 0xf)
 
 #define GET_SCNHDR_FLAGS H_GET_16
 #define PUT_SCNHDR_FLAGS H_PUT_16
@@ -514,9 +516,9 @@ coff_tic80_relocate_section (bfd *output
 	}
 
       /* COFF treats common symbols in one of two ways.  Either the
-         size of the symbol is included in the section contents, or it
-         is not.  We assume that the size is not included, and force
-         the rtype_to_howto function to adjust the addend as needed.  */
+	 size of the symbol is included in the section contents, or it
+	 is not.  We assume that the size is not included, and force
+	 the rtype_to_howto function to adjust the addend as needed.  */
 
       if (sym != NULL && sym->n_scnum != 0)
 	addend = - sym->n_value;
@@ -542,7 +544,7 @@ coff_tic80_relocate_section (bfd *output
 	  else
 	    {
 	      sec = sections[symndx];
-              val = (sec->output_section->vma
+	      val = (sec->output_section->vma
 		     + sec->output_offset
 		     + sym->n_value);
 	      if (! obj_pe (output_bfd))
@@ -571,8 +573,8 @@ coff_tic80_relocate_section (bfd *output
       addr = rel->r_vaddr - input_section->vma;
 
       /* FIXME: This code assumes little endian, but the PP can
-         apparently be bi-endian.  I don't know if the bi-endianness
-         applies to the instruction set or just to the data.  */
+	 apparently be bi-endian.  I don't know if the bi-endianness
+	 applies to the instruction set or just to the data.  */
       switch (howto->type)
 	{
 	default:
@@ -667,8 +669,8 @@ coff_tic80_relocate_section (bfd *output
 	case bfd_reloc_outofrange:
 	  _bfd_error_handler
 	    /* xgettext: c-format */
-	    (_("%B: bad reloc address 0x%lx in section `%A'"),
-	     input_bfd, (unsigned long) rel->r_vaddr, input_section);
+	    (_("%B: bad reloc address %#Lx in section `%A'"),
+	     input_bfd, rel->r_vaddr, input_section);
 	  return FALSE;
 	case bfd_reloc_overflow:
 	  {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-u68k.c ./bfd/coff-u68k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-u68k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-u68k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Motorola 68000 COFF binaries having underscore with name.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-w65.c ./bfd/coff-w65.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-w65.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-w65.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for WDC 65816 COFF binaries.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
    Written by Steve Chamberlain, <sac@cygnus.com>.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-we32k.c ./bfd/coff-we32k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-we32k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-we32k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for we32k COFF files.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
    Contributed by Brendan Kehoe (brendan@cs.widener.edu).
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -36,7 +36,7 @@ static reloc_howto_type howto_table[] =
     EMPTY_HOWTO (3),
     EMPTY_HOWTO (4),
     EMPTY_HOWTO (5),
-  HOWTO(R_DIR32,	       0,  2, 	32, FALSE, 0,complain_overflow_bitfield, 0, "dir32",	TRUE, 0xffffffff,0xffffffff, FALSE),
+  HOWTO(R_DIR32,	       0,  2,	32, FALSE, 0,complain_overflow_bitfield, 0, "dir32",	TRUE, 0xffffffff,0xffffffff, FALSE),
     EMPTY_HOWTO (7),
     EMPTY_HOWTO (010),
     EMPTY_HOWTO (011),
@@ -45,12 +45,12 @@ static reloc_howto_type howto_table[] =
     EMPTY_HOWTO (014),
     EMPTY_HOWTO (015),
     EMPTY_HOWTO (016),
-  HOWTO(R_RELBYTE,	       0,  0,  	8,  FALSE, 0, complain_overflow_bitfield, 0, "8",	TRUE, 0x000000ff,0x000000ff, FALSE),
-  HOWTO(R_RELWORD,	       0,  1, 	16, FALSE, 0, complain_overflow_bitfield, 0, "16",	TRUE, 0x0000ffff,0x0000ffff, FALSE),
-  HOWTO(R_RELLONG,	       0,  2, 	32, FALSE, 0, complain_overflow_bitfield, 0, "32",	TRUE, 0xffffffff,0xffffffff, FALSE),
-  HOWTO(R_PCRBYTE,	       0,  0, 	8,  TRUE,  0, complain_overflow_signed, 0, "DISP8",    TRUE, 0x000000ff,0x000000ff, FALSE),
-  HOWTO(R_PCRWORD,	       0,  1, 	16, TRUE,  0, complain_overflow_signed, 0, "DISP16",   TRUE, 0x0000ffff,0x0000ffff, FALSE),
-  HOWTO(R_PCRLONG,	       0,  2, 	32, TRUE,  0, complain_overflow_signed, 0, "DISP32",   TRUE, 0xffffffff,0xffffffff, FALSE),
+  HOWTO(R_RELBYTE,	       0,  0,	8,  FALSE, 0, complain_overflow_bitfield, 0, "8",	TRUE, 0x000000ff,0x000000ff, FALSE),
+  HOWTO(R_RELWORD,	       0,  1,	16, FALSE, 0, complain_overflow_bitfield, 0, "16",	TRUE, 0x0000ffff,0x0000ffff, FALSE),
+  HOWTO(R_RELLONG,	       0,  2,	32, FALSE, 0, complain_overflow_bitfield, 0, "32",	TRUE, 0xffffffff,0xffffffff, FALSE),
+  HOWTO(R_PCRBYTE,	       0,  0,	8,  TRUE,  0, complain_overflow_signed, 0, "DISP8",    TRUE, 0x000000ff,0x000000ff, FALSE),
+  HOWTO(R_PCRWORD,	       0,  1,	16, TRUE,  0, complain_overflow_signed, 0, "DISP16",   TRUE, 0x0000ffff,0x0000ffff, FALSE),
+  HOWTO(R_PCRLONG,	       0,  2,	32, TRUE,  0, complain_overflow_signed, 0, "DISP32",   TRUE, 0xffffffff,0xffffffff, FALSE),
 };
 
 #define NUM_HOWTOS (sizeof (howto_table) / sizeof (howto_table[0]))
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-x86_64.c ./bfd/coff-x86_64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-x86_64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-x86_64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for AMD 64 COFF files.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -143,16 +143,10 @@ coff_amd64_reloc (bfd *abfd,
       reloc_howto_type *howto = reloc_entry->howto;
       unsigned char *addr = (unsigned char *) data + reloc_entry->address;
 
-      /* FIXME: We do not have an end address for data, so we cannot
-	 accurately range check any addresses computed against it.
-	 cf: PR binutils/17512: file: 1085-1761-0.004.
-	 For now we do the best that we can.  */
-      if (addr < (unsigned char *) data
-	  || addr > ((unsigned char *) data) + input_section->size)
-	{
-	  bfd_set_error (bfd_error_bad_value);
-	  return bfd_reloc_notsupported;
-	}
+      if (! bfd_reloc_offset_in_range (howto, abfd, input_section,
+				       reloc_entry->address
+				       * bfd_octets_per_byte (abfd)))
+	return bfd_reloc_outofrange;
 
       switch (howto->size)
 	{
@@ -182,9 +176,9 @@ coff_amd64_reloc (bfd *abfd,
 
 	case 4:
 	  {
-	    long long x = bfd_get_64 (abfd, addr);
+	    bfd_uint64_t x = bfd_get_64 (abfd, addr);
 	    DOIT (x);
-	    bfd_put_64 (abfd, (bfd_vma) x, addr);
+	    bfd_put_64 (abfd, x, addr);
 	  }
 	  break;
 
@@ -360,18 +354,18 @@ static reloc_howto_type howto_table[] =
   EMPTY_HOWTO (13),
 #ifndef DONT_EXTEND_AMD64
   HOWTO (R_AMD64_PCRQUAD,
-         0,                     /* rightshift */
-         4,                     /* size (0 = byte, 1 = short, 2 = long) */
-         64,                    /* bitsize */
-         TRUE,                  /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_signed, /* complain_on_overflow */
-         coff_amd64_reloc,      /* special_function */
-         "R_X86_64_PC64",       /* name */
-         TRUE,                  /* partial_inplace */
-         0xffffffffffffffffll,  /* src_mask */
-         0xffffffffffffffffll,  /* dst_mask */
-         PCRELOFFSET),           /* pcrel_offset */
+	 0,			/* rightshift */
+	 4,			/* size (0 = byte, 1 = short, 2 = long) */
+	 64,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 coff_amd64_reloc,	/* special_function */
+	 "R_X86_64_PC64",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffffffffffffll,	/* src_mask */
+	 0xffffffffffffffffll,	/* dst_mask */
+	 PCRELOFFSET),		 /* pcrel_offset */
 #else
   EMPTY_HOWTO (14),
 #endif
@@ -496,13 +490,13 @@ static reloc_howto_type howto_table[] =
 #define CALC_ADDEND(abfd, ptr, reloc, cache_ptr)		\
   {								\
     coff_symbol_type *coffsym = NULL;				\
-    								\
+								\
     if (ptr && bfd_asymbol_bfd (ptr) != abfd)			\
       coffsym = (obj_symbols (abfd)				\
-	         + (cache_ptr->sym_ptr_ptr - symbols));		\
+		 + (cache_ptr->sym_ptr_ptr - symbols));		\
     else if (ptr)						\
       coffsym = coff_symbol_from (ptr);				\
-    								\
+								\
     if (coffsym != NULL						\
 	&& coffsym->native->u.syment.n_scnum == 0)		\
       cache_ptr->addend = - coffsym->native->u.syment.n_value;	\
@@ -622,11 +616,11 @@ coff_amd64_rtype_to_howto (bfd *abfd ATT
 	*addendp -= 4;
 
       /* If the symbol is defined, then the generic code is going to
-         add back the symbol value in order to cancel out an
-         adjustment it made to the addend.  However, we set the addend
-         to 0 at the start of this function.  We need to adjust here,
-         to avoid the adjustment the generic code will make.  FIXME:
-         This is getting a bit hackish.  */
+	 add back the symbol value in order to cancel out an
+	 adjustment it made to the addend.  However, we set the addend
+	 to 0 at the start of this function.  We need to adjust here,
+	 to avoid the adjustment the generic code will make.  FIXME:
+	 This is getting a bit hackish.  */
       if (sym != NULL && sym->n_scnum != 0)
 	*addendp -= sym->n_value;
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-z80.c ./bfd/coff-z80.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-z80.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-z80.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Zilog Z80 COFF binaries.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
    Contributed by Arnold Metselaar <arnold_m@operamail.com>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -153,10 +153,10 @@ coff_z80_reloc_name_lookup (bfd *abfd AT
 
 static void
 reloc_processing (arelent *relent,
-                  struct internal_reloc *reloc,
-                  asymbol **symbols,
-                  bfd *abfd,
-                  asection *section)
+		  struct internal_reloc *reloc,
+		  asymbol **symbols,
+		  bfd *abfd,
+		  asection *section)
 {
   relent->address = reloc->r_vaddr;
   rtype2howto (relent, reloc);
@@ -172,12 +172,12 @@ reloc_processing (arelent *relent,
 
 static void
 extra_case (bfd *in_abfd,
-            struct bfd_link_info *link_info,
-            struct bfd_link_order *link_order,
-            arelent *reloc,
-            bfd_byte *data,
-            unsigned int *src_ptr,
-            unsigned int *dst_ptr)
+	    struct bfd_link_info *link_info,
+	    struct bfd_link_order *link_order,
+	    arelent *reloc,
+	    bfd_byte *data,
+	    unsigned int *src_ptr,
+	    unsigned int *dst_ptr)
 {
   asection * input_section = link_order->u.indirect.section;
   int val;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-z8k.c ./bfd/coff-z8k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/coff-z8k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/coff-z8k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Zilog Z800n COFF binaries.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Support.
    Written by Steve Chamberlain, <sac@cygnus.com>.
 
@@ -118,18 +118,18 @@ rtype2howto (arelent *internal, struct i
 
 static reloc_howto_type *
 coff_z8k_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                            bfd_reloc_code_real_type code)
+			    bfd_reloc_code_real_type code)
 {
   switch (code)
     {
-    case BFD_RELOC_8:      	return & r_imm8;
-    case BFD_RELOC_16:      	return & r_da;
-    case BFD_RELOC_32:      	return & r_imm32;
-    case BFD_RELOC_8_PCREL:     return & r_jr;
-    case BFD_RELOC_16_PCREL:    return & r_rel16;
-    case BFD_RELOC_Z8K_DISP7:   return & r_disp7;
-    case BFD_RELOC_Z8K_CALLR:   return & r_callr;
-    case BFD_RELOC_Z8K_IMM4L:   return & r_imm4l;
+    case BFD_RELOC_8:		return & r_imm8;
+    case BFD_RELOC_16:		return & r_da;
+    case BFD_RELOC_32:		return & r_imm32;
+    case BFD_RELOC_8_PCREL:	return & r_jr;
+    case BFD_RELOC_16_PCREL:	return & r_rel16;
+    case BFD_RELOC_Z8K_DISP7:	return & r_disp7;
+    case BFD_RELOC_Z8K_CALLR:	return & r_callr;
+    case BFD_RELOC_Z8K_IMM4L:	return & r_imm4l;
     default:			BFD_FAIL ();
       return 0;
     }
@@ -169,10 +169,10 @@ coff_z8k_reloc_name_lookup (bfd *abfd AT
 
 static void
 reloc_processing (arelent *relent,
-                  struct internal_reloc *reloc,
-                  asymbol **symbols,
-                  bfd *abfd,
-                  asection *section)
+		  struct internal_reloc *reloc,
+		  asymbol **symbols,
+		  bfd *abfd,
+		  asection *section)
 {
   relent->address = reloc->r_vaddr;
   rtype2howto (relent, reloc);
@@ -188,12 +188,12 @@ reloc_processing (arelent *relent,
 
 static void
 extra_case (bfd *in_abfd,
-            struct bfd_link_info *link_info,
-            struct bfd_link_order *link_order,
-            arelent *reloc,
-            bfd_byte *data,
-            unsigned int *src_ptr,
-            unsigned int *dst_ptr)
+	    struct bfd_link_info *link_info,
+	    struct bfd_link_order *link_order,
+	    arelent *reloc,
+	    bfd_byte *data,
+	    unsigned int *src_ptr,
+	    unsigned int *dst_ptr)
 {
   asection * input_section = link_order->u.indirect.section;
 
@@ -258,7 +258,7 @@ extra_case (bfd *in_abfd,
 		       + input_section->output_offset
 		       + input_section->output_section->vma);
 	int gap = dst - dot - 1;  /* -1, since we're in the odd byte of the
-                                     word and the pc's been incremented.  */
+				     word and the pc's been incremented.  */
 
 	if (gap & 1)
 	  abort ();
@@ -283,7 +283,7 @@ extra_case (bfd *in_abfd,
 		       + input_section->output_offset
 		       + input_section->output_section->vma);
 	int gap = dst - dot - 1;  /* -1, since we're in the odd byte of the
-                                     word and the pc's been incremented.  */
+				     word and the pc's been incremented.  */
 
 	if (gap & 1)
 	  abort ();
@@ -296,8 +296,8 @@ extra_case (bfd *in_abfd,
 	     input_section, reloc->address);
 
 	bfd_put_8 (in_abfd,
-                   (bfd_get_8 ( in_abfd, data + *dst_ptr) & 0x80) + (-gap & 0x7f),
-                   data + *dst_ptr);
+		   (bfd_get_8 ( in_abfd, data + *dst_ptr) & 0x80) + (-gap & 0x7f),
+		   data + *dst_ptr);
 	(*dst_ptr)++;
 	(*src_ptr)++;
 	break;
@@ -322,8 +322,8 @@ extra_case (bfd *in_abfd,
 
 	gap /= 2;
 	bfd_put_16 (in_abfd,
-                    (bfd_get_16 ( in_abfd, data + *dst_ptr) & 0xf000) | (-gap & 0x0fff),
-                    data + *dst_ptr);
+		    (bfd_get_16 ( in_abfd, data + *dst_ptr) & 0xf000) | (-gap & 0x0fff),
+		    data + *dst_ptr);
 	(*dst_ptr) += 2;
 	(*src_ptr) += 2;
 	break;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/compress.c ./bfd/compress.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/compress.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/compress.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Compressed section support (intended for debug sections).
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -54,7 +54,7 @@ decompress_contents (bfd_byte *compresse
       if (rc != Z_OK)
 	break;
       strm.next_out = ((Bytef*) uncompressed_buffer
-                       + (uncompressed_size - strm.avail_out));
+		       + (uncompressed_size - strm.avail_out));
       rc = inflate (&strm, Z_FINISH);
       if (rc != Z_STREAM_END)
 	break;
@@ -106,7 +106,7 @@ bfd_compress_section_contents (bfd *abfd
       if (orig_compression_header_size == 0)
 	{
 	  /* Convert it from .zdebug* section.  Get the uncompressed
-	     size first.  We need to substract the 12-byte overhead in
+	     size first.  We need to subtract the 12-byte overhead in
 	     .zdebug* section.  Set orig_compression_header_size to
 	     the 12-bye overhead.  */
 	  orig_compression_header_size = 12;
@@ -252,9 +252,9 @@ bfd_get_full_section_contents (bfd *abfd
 	      if (bfd_get_error () == bfd_error_no_memory)
 		_bfd_error_handler
 		  /* xgettext:c-format */
-		  (_("error: %B(%A) is too large (%#lx bytes)"),
-		  abfd, sec, (long) sz);
-	    return FALSE;
+		  (_("error: %B(%A) is too large (%#Lx bytes)"),
+		  abfd, sec, sz);
+	      return FALSE;
 	    }
 	}
 
@@ -397,7 +397,7 @@ bfd_is_section_compressed_with_header (b
   if (bfd_get_section_contents (abfd, sec, header, 0, header_size))
     {
       if (compression_header_size == 0)
-        /* In this case, it should be "ZLIB" followed by the uncompressed
+	/* In this case, it should be "ZLIB" followed by the uncompressed
 	   section size, 8 bytes in big-endian order.  */
 	compressed = CONST_STRNEQ ((char*) header , "ZLIB");
       else
@@ -542,7 +542,6 @@ bfd_init_section_compress_status (bfd *a
 {
   bfd_size_type uncompressed_size;
   bfd_byte *uncompressed_buffer;
-  bfd_boolean ret;
 
   /* Error if not opened for read.  */
   if (abfd->direction != read_direction
@@ -558,18 +557,18 @@ bfd_init_section_compress_status (bfd *a
   /* Read in the full section contents and compress it.  */
   uncompressed_size = sec->size;
   uncompressed_buffer = (bfd_byte *) bfd_malloc (uncompressed_size);
+  /* PR 21431 */
+  if (uncompressed_buffer == NULL)
+    return FALSE;
+
   if (!bfd_get_section_contents (abfd, sec, uncompressed_buffer,
 				 0, uncompressed_size))
-    ret = FALSE;
-  else
-    {
-      uncompressed_size = bfd_compress_section_contents (abfd, sec,
-							 uncompressed_buffer,
-							 uncompressed_size);
-      ret = uncompressed_size != 0;
-    }
+    return FALSE;
 
-  return ret;
+  uncompressed_size = bfd_compress_section_contents (abfd, sec,
+						     uncompressed_buffer,
+						     uncompressed_size);
+  return uncompressed_size != 0;
 }
 
 /*
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/config.bfd ./bfd/config.bfd
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/config.bfd	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/config.bfd	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 # config.bfd
 #
-#   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -500,11 +500,17 @@ case "${targ}" in
     targ_underscore=yes
     ;;
 
+#ifdef BFD64
   cris-*-* | crisv32-*-*)
     targ_defvec=cris_aout_vec
     targ_selvecs="cris_elf32_us_vec cris_elf32_vec ieee_vec"
-    targ_underscore=yes # Note: not true for cris_elf32_vec.
+    case "${targ}" in
+	*-*-linux*) ;;
+	*) targ_underscore=yes ;;
+    esac
+    want64=true
     ;;
+#endif
 
   crx-*-elf*)
     targ_defvec=crx_elf32_vec
@@ -524,8 +530,9 @@ case "${targ}" in
     targ_defvec=d30v_elf32_vec
     ;;
 
-  epiphany-*-elf)
+  epiphany-*-*)
     targ_defvec=epiphany_elf32_vec
+    targ_underscore=yes
     ;;
 
   fido-*-elf* )
@@ -913,6 +920,7 @@ case "${targ}" in
 
   ip2k-*-elf)
     targ_defvec=ip2k_elf32_vec
+    targ_underscore=yes
     ;;
 
   iq2000-*-elf)
@@ -931,6 +939,7 @@ case "${targ}" in
 
   m32c-*-elf | m32c-*-rtems*)
     targ_defvec=m32c_elf32_vec
+    targ_underscore=yes
     ;;
 
   m32r*le-*-linux*)
@@ -1231,6 +1240,7 @@ case "${targ}" in
 #endif
   mn10200-*-*)
     targ_defvec=mn10200_elf32_vec
+    targ_underscore=yes
     ;;
 
   mn10300-*-*)
@@ -1435,16 +1445,14 @@ case "${targ}" in
 
   pru-*-*)
     targ_defvec=pru_elf32_vec
-    targ_underscore=yes
     ;;
 
 #ifdef BFD64
   riscv32-*-*)
     targ_defvec=riscv_elf32_vec
-    targ_selvecs="riscv_elf32_vec"
+    targ_selvecs="riscv_elf32_vec riscv_elf64_vec"
     want64=true
     ;;
-
   riscv64-*-*)
     targ_defvec=riscv_elf64_vec
     targ_selvecs="riscv_elf32_vec riscv_elf64_vec"
@@ -1454,11 +1462,13 @@ case "${targ}" in
 
   rl78-*-elf)
     targ_defvec=rl78_elf32_vec
+    targ_underscore=yes
     ;;
 
   rx-*-elf)
     targ_defvec=rx_elf32_le_vec
     targ_selvecs="rx_elf32_be_vec rx_elf32_le_vec rx_elf32_be_ns_vec"
+    targ_underscore=yes
     ;;
 
   s390-*-linux*)
@@ -1768,6 +1778,7 @@ case "${targ}" in
   v850*-*-*)
     targ_defvec=v850_elf32_vec
     targ_selvecs="v800_elf32_vec"
+    targ_underscore=yes
     ;;
 
   vax-*-netbsdelf*)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/config.in ./bfd/config.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/config.in	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/config.in	2018-01-09 02:04:54.000000000 +0000
@@ -133,6 +133,12 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
+/* Define to 1 if the system has the type `long double'. */
+#undef HAVE_LONG_DOUBLE
+
+/* Define to 1 if the system has the type `long long'. */
+#undef HAVE_LONG_LONG
+
 /* Define if <sys/procfs.h> has lwpstatus_t. */
 #undef HAVE_LWPSTATUS_T
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/configure ./bfd/configure
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/configure	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/configure	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.64 for bfd 2.28.51.
+# Generated by GNU Autoconf 2.64 for bfd 2.29.51.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
@@ -556,8 +556,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='bfd'
 PACKAGE_TARNAME='bfd'
-PACKAGE_VERSION='2.28.51'
-PACKAGE_STRING='bfd 2.28.51'
+PACKAGE_VERSION='2.29.51'
+PACKAGE_STRING='bfd 2.29.51'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1354,7 +1354,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures bfd 2.28.51 to adapt to many kinds of systems.
+\`configure' configures bfd 2.29.51 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1425,7 +1425,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of bfd 2.28.51:";;
+     short | recursive ) echo "Configuration of bfd 2.29.51:";;
    esac
   cat <<\_ACEOF
 
@@ -1546,7 +1546,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-bfd configure 2.28.51
+bfd configure 2.29.51
 generated by GNU Autoconf 2.64
 
 Copyright (C) 2009 Free Software Foundation, Inc.
@@ -1908,6 +1908,60 @@ eval ac_res=\$$3
 
 } # ac_fn_c_check_func
 
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=no"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+	 return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+	    return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_type
+
 # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
 # --------------------------------------------
 # Tries to find the compile-time value of EXPR in a program that includes
@@ -2086,60 +2140,6 @@ rm -f conftest.val
 
 } # ac_fn_c_compute_int
 
-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
-# -------------------------------------------
-# Tests whether TYPE exists after having included INCLUDES, setting cache
-# variable VAR accordingly.
-ac_fn_c_check_type ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=no"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-if (sizeof ($2))
-	 return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-if (sizeof (($2)))
-	    return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  eval "$3=yes"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-
-} # ac_fn_c_check_type
-
 # ac_fn_c_check_decl LINENO SYMBOL VAR
 # ------------------------------------
 # Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
@@ -2188,7 +2188,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by bfd $as_me 2.28.51, which was
+It was created by bfd $as_me 2.29.51, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   $ $0 $@
@@ -3997,7 +3997,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='bfd'
- VERSION='2.28.51'
+ VERSION='2.29.51'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -12495,7 +12495,7 @@ bfd_default_target_size=32
 
 # host stuff:
 
-ALL_LINGUAS="fr tr ja es sv da zh_CN ro rw vi fi id ru uk sr"
+ALL_LINGUAS="da es fi fr hr id ja ro ru rw sr sv tr uk vi zh_CN"
 # If we haven't got the data from the intl directory,
 # assume NLS is disabled.
 USE_NLS=no
@@ -12888,6 +12888,54 @@ BFD_HOST_64_BIT=
 BFD_HOST_U_64_BIT=
 BFD_HOSTPTR_T="unsigned long"
 
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double" >&5
+$as_echo_n "checking for long double... " >&6; }
+if test "${ac_cv_type_long_double+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$GCC" = yes; then
+       ac_cv_type_long_double=yes
+     else
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* The Stardent Vistra knows sizeof (long double), but does
+		 not support it.  */
+	      long double foo = 0.0L;
+int
+main ()
+{
+static int test_array [1 - 2 * !(/* On Ultrix 4.3 cc, long double is 4 and double is 8.  */
+	      sizeof (double) <= sizeof (long double))];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_type_long_double=yes
+else
+  ac_cv_type_long_double=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double" >&5
+$as_echo "$ac_cv_type_long_double" >&6; }
+  if test $ac_cv_type_long_double = yes; then
+
+$as_echo "#define HAVE_LONG_DOUBLE 1" >>confdefs.h
+
+  fi
+
+ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default"
+if test "x$ac_cv_type_long_long" = x""yes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_LONG_LONG 1
+_ACEOF
+
 # The cast to long int works around a bug in the HP C Compiler
 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
@@ -12922,6 +12970,8 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
+fi
+
 # The cast to long int works around a bug in the HP C Compiler
 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
@@ -14341,17 +14391,17 @@ do
     i386_coff_go32_vec)		 tb="$tb coff-go32.lo $coff" ;;
     i386_coff_go32stubbed_vec)	 tb="$tb coff-stgo32.lo $coff" ;;
     i386_coff_lynx_vec)		 tb="$tb cf-i386lynx.lo lynx-core.lo $coff" ;;
-    i386_elf32_vec)		 tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
-    i386_elf32_fbsd_vec)	 tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
-    i386_elf32_nacl_vec)	 tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
-    i386_elf32_sol2_vec)	 tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
-    i386_elf32_vxworks_vec)	 tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    i386_elf32_vec)		 tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    i386_elf32_fbsd_vec)	 tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    i386_elf32_nacl_vec)	 tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    i386_elf32_sol2_vec)	 tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    i386_elf32_vxworks_vec)	 tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
     i386_mach_o_vec)		 tb="$tb mach-o-i386.lo" ;;
     i386_msdos_vec)		 tb="$tb i386msdos.lo" ;;
     i386_nlm32_vec)		 tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;;
     i386_pe_vec)		 tb="$tb pe-i386.lo peigen.lo $coff" ;;
     i386_pei_vec)		 tb="$tb pei-i386.lo peigen.lo $coff" ;;
-    iamcu_elf32_vec)		 tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    iamcu_elf32_vec)		 tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
     i860_coff_vec)		 tb="$tb coff-i860.lo $coff" ;;
     i860_elf32_vec)		 tb="$tb elf32-i860.lo elf32.lo $elf" ;;
     i860_elf32_le_vec)		 tb="$tb elf32-i860.lo elf32.lo $elf" ;;
@@ -14368,10 +14418,10 @@ do
     ieee_vec)			 tb="$tb ieee.lo" ;;
     ip2k_elf32_vec)		 tb="$tb elf32-ip2k.lo elf32.lo $elf" ;;
     iq2000_elf32_vec)		 tb="$tb elf32-iq2000.lo elf32.lo $elf" ;;
-    k1om_elf64_vec)		 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
-    k1om_elf64_fbsd_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
-    l1om_elf64_vec)		 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
-    l1om_elf64_fbsd_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    k1om_elf64_vec)		 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    k1om_elf64_fbsd_vec)	 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    l1om_elf64_vec)		 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    l1om_elf64_fbsd_vec)	 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
     lm32_elf32_vec)		 tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
     lm32_elf32_fdpic_vec)	 tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
     m32c_elf32_vec)		 tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
@@ -14573,13 +14623,13 @@ do
     wasm32_elf32_vec)            tb="$tb elf32-wasm32.lo elf32.lo $elf" ;;
     we32k_coff_vec)		 tb="$tb coff-we32k.lo $coffgen" ;;
     x86_64_coff_vec)		 tb="$tb coff-x86_64.lo $coff"; target_size=64 ;;
-    x86_64_elf32_vec)		 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
-    x86_64_elf32_nacl_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
-    x86_64_elf64_vec)		 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
-    x86_64_elf64_cloudabi_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
-    x86_64_elf64_fbsd_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
-    x86_64_elf64_nacl_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
-    x86_64_elf64_sol2_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    x86_64_elf32_vec)		 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
+    x86_64_elf32_nacl_vec)	 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
+    x86_64_elf64_vec)		 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    x86_64_elf64_cloudabi_vec)	 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    x86_64_elf64_fbsd_vec)	 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    x86_64_elf64_nacl_vec)	 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    x86_64_elf64_sol2_vec)	 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
     x86_64_mach_o_vec)		 tb="$tb mach-o-x86-64.lo" ;;
     x86_64_pe_vec)		 tb="$tb pe-x86_64.lo pex64igen.lo $coff"; target_size=64 ;;
     x86_64_pe_be_vec)		 tb="$tb pe-x86_64.lo pex64igen.lo $coff"; target_size=64 ;;
@@ -16616,7 +16666,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by bfd $as_me 2.28.51, which was
+This file was extended by bfd $as_me 2.29.51, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16680,7 +16730,7 @@ Report bugs to the package provider."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-bfd config.status 2.28.51
+bfd config.status 2.29.51
 configured by $0, generated by GNU Autoconf 2.64,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/configure.ac ./bfd/configure.ac
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/configure.ac	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/configure.ac	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 dnl
-dnl   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+dnl   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 dnl
 dnl This file is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
@@ -143,7 +143,7 @@ bfd_default_target_size=32
 
 # host stuff:
 
-ALL_LINGUAS="fr tr ja es sv da zh_CN ro rw vi fi id ru uk sr"
+ALL_LINGUAS="da es fi fr hr id ja ro ru rw sr sv tr uk vi zh_CN"
 ZW_GNU_GETTEXT_SISTER_DIR
 AM_PO_SUBDIRS
 
@@ -160,7 +160,8 @@ BFD_HOST_64_BIT=
 BFD_HOST_U_64_BIT=
 BFD_HOSTPTR_T="unsigned long"
 
-AC_CHECK_SIZEOF(long long)
+AC_TYPE_LONG_DOUBLE
+AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)])
 AC_CHECK_SIZEOF(void *)
 AC_CHECK_SIZEOF(long)
 
@@ -472,17 +473,17 @@ do
     i386_coff_go32_vec)		 tb="$tb coff-go32.lo $coff" ;;
     i386_coff_go32stubbed_vec)	 tb="$tb coff-stgo32.lo $coff" ;;
     i386_coff_lynx_vec)		 tb="$tb cf-i386lynx.lo lynx-core.lo $coff" ;;
-    i386_elf32_vec)		 tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
-    i386_elf32_fbsd_vec)	 tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
-    i386_elf32_nacl_vec)	 tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
-    i386_elf32_sol2_vec)	 tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
-    i386_elf32_vxworks_vec)	 tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    i386_elf32_vec)		 tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    i386_elf32_fbsd_vec)	 tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    i386_elf32_nacl_vec)	 tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    i386_elf32_sol2_vec)	 tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    i386_elf32_vxworks_vec)	 tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
     i386_mach_o_vec)		 tb="$tb mach-o-i386.lo" ;;
     i386_msdos_vec)		 tb="$tb i386msdos.lo" ;;
     i386_nlm32_vec)		 tb="$tb nlm32-i386.lo nlm32.lo nlm.lo" ;;
     i386_pe_vec)		 tb="$tb pe-i386.lo peigen.lo $coff" ;;
     i386_pei_vec)		 tb="$tb pei-i386.lo peigen.lo $coff" ;;
-    iamcu_elf32_vec)		 tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    iamcu_elf32_vec)		 tb="$tb elf32-i386.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
     i860_coff_vec)		 tb="$tb coff-i860.lo $coff" ;;
     i860_elf32_vec)		 tb="$tb elf32-i860.lo elf32.lo $elf" ;;
     i860_elf32_le_vec)		 tb="$tb elf32-i860.lo elf32.lo $elf" ;;
@@ -499,10 +500,10 @@ do
     ieee_vec)			 tb="$tb ieee.lo" ;;
     ip2k_elf32_vec)		 tb="$tb elf32-ip2k.lo elf32.lo $elf" ;;
     iq2000_elf32_vec)		 tb="$tb elf32-iq2000.lo elf32.lo $elf" ;;
-    k1om_elf64_vec)		 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
-    k1om_elf64_fbsd_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
-    l1om_elf64_vec)		 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
-    l1om_elf64_fbsd_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    k1om_elf64_vec)		 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    k1om_elf64_fbsd_vec)	 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    l1om_elf64_vec)		 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    l1om_elf64_fbsd_vec)	 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
     lm32_elf32_vec)		 tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
     lm32_elf32_fdpic_vec)	 tb="$tb elf32-lm32.lo elf32.lo $elf" ;;
     m32c_elf32_vec)		 tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
@@ -704,13 +705,13 @@ do
     wasm32_elf32_vec)            tb="$tb elf32-wasm32.lo elf32.lo $elf" ;;
     we32k_coff_vec)		 tb="$tb coff-we32k.lo $coffgen" ;;
     x86_64_coff_vec)		 tb="$tb coff-x86_64.lo $coff"; target_size=64 ;;
-    x86_64_elf32_vec)		 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
-    x86_64_elf32_nacl_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
-    x86_64_elf64_vec)		 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
-    x86_64_elf64_cloudabi_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
-    x86_64_elf64_fbsd_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
-    x86_64_elf64_nacl_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
-    x86_64_elf64_sol2_vec)	 tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    x86_64_elf32_vec)		 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
+    x86_64_elf32_nacl_vec)	 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
+    x86_64_elf64_vec)		 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    x86_64_elf64_cloudabi_vec)	 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    x86_64_elf64_fbsd_vec)	 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    x86_64_elf64_nacl_vec)	 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    x86_64_elf64_sol2_vec)	 tb="$tb elf64-x86-64.lo elfxx-x86.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
     x86_64_mach_o_vec)		 tb="$tb mach-o-x86-64.lo" ;;
     x86_64_pe_vec)		 tb="$tb pe-x86_64.lo pex64igen.lo $coff"; target_size=64 ;;
     x86_64_pe_be_vec)		 tb="$tb pe-x86_64.lo pex64igen.lo $coff"; target_size=64 ;;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/configure.com ./bfd/configure.com
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/configure.com	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/configure.com	2018-01-09 02:04:54.000000000 +0000
@@ -7,7 +7,7 @@
 $! Written by Klaus K"ampf (kkaempf@rmi.de)
 $! Rewritten by Tristan Gingold (gingold@adacore.com)
 $!
-$!   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+$!   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 $!
 $! This file is free software; you can redistribute it and/or modify
 $! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/configure.host ./bfd/configure.host
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/configure.host	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/configure.host	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 #
-#   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/corefile.c ./bfd/corefile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/corefile.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/corefile.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Core file generic interface routines for BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -135,23 +135,23 @@ core_file_matches_executable_p (bfd *cor
 
 /*
 FUNCTION
-        generic_core_file_matches_executable_p
+	generic_core_file_matches_executable_p
 
 SYNOPSIS
-        bfd_boolean generic_core_file_matches_executable_p
-          (bfd *core_bfd, bfd *exec_bfd);
+	bfd_boolean generic_core_file_matches_executable_p
+	  (bfd *core_bfd, bfd *exec_bfd);
 
 DESCRIPTION
-        Return TRUE if the core file attached to @var{core_bfd}
-        was generated by a run of the executable file attached
-        to @var{exec_bfd}.  The match is based on executable
-        basenames only.
-
-        Note: When not able to determine the core file failing
-        command or the executable name, we still return TRUE even
-        though we're not sure that core file and executable match.
-        This is to avoid generating a false warning in situations
-        where we really don't know whether they match or not.
+	Return TRUE if the core file attached to @var{core_bfd}
+	was generated by a run of the executable file attached
+	to @var{exec_bfd}.  The match is based on executable
+	basenames only.
+
+	Note: When not able to determine the core file failing
+	command or the executable name, we still return TRUE even
+	though we're not sure that core file and executable match.
+	This is to avoid generating a false warning in situations
+	where we really don't know whether they match or not.
 */
 
 bfd_boolean
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-aarch64.c ./bfd/cpu-aarch64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-aarch64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-aarch64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for AArch64.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-alpha.c ./bfd/cpu-alpha.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-alpha.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-alpha.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Alpha architecture.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -33,7 +33,7 @@
     PRINT,						\
     3,							\
     DEFAULT,						\
-    bfd_default_compatible, 				\
+    bfd_default_compatible,				\
     bfd_default_scan,					\
     bfd_arch_default_fill,				\
     NEXT,						\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-arc.c ./bfd/cpu-arc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-arc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-arc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the ARC processor
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    Contributed by Doug Evans (dje@cygnus.com).
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -23,6 +23,9 @@
 #include "bfd.h"
 #include "libbfd.h"
 
+static const bfd_arch_info_type *
+arc_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
+
 #define ARC(mach, print_name, default_p, next) \
 {					\
     32,	/* 32 bits in a word  */	\
@@ -34,7 +37,7 @@
     print_name,				\
     4, /* section alignment power  */	\
     default_p,				\
-    bfd_default_compatible,		\
+    arc_compatible,			\
     bfd_default_scan,			\
     bfd_arch_default_fill,		\
     next,				\
@@ -42,15 +45,56 @@
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  ARC (bfd_mach_arc_arc600, "ARC600", FALSE, &arch_info_struct[1]),
-  ARC (bfd_mach_arc_arc600, "A6"    , FALSE, &arch_info_struct[2]),
-  ARC (bfd_mach_arc_arc601, "ARC601", FALSE, &arch_info_struct[3]),
-  ARC (bfd_mach_arc_arc700, "ARC700", FALSE, &arch_info_struct[4]),
-  ARC (bfd_mach_arc_arc700, "A7",     FALSE, &arch_info_struct[5]),
-  ARC (bfd_mach_arc_arcv2,  "ARCv2",  FALSE, &arch_info_struct[6]),
-  ARC (bfd_mach_arc_arcv2,  "EM",     FALSE, &arch_info_struct[7]),
+  ARC (bfd_mach_arc_arc600, "A6"    , FALSE, &arch_info_struct[1]),
+  ARC (bfd_mach_arc_arc601, "ARC601", FALSE, &arch_info_struct[2]),
+  ARC (bfd_mach_arc_arc700, "ARC700", FALSE, &arch_info_struct[3]),
+  ARC (bfd_mach_arc_arc700, "A7",     FALSE, &arch_info_struct[4]),
+  ARC (bfd_mach_arc_arcv2,  "ARCv2",  FALSE, &arch_info_struct[5]),
+  ARC (bfd_mach_arc_arcv2,  "EM",     FALSE, &arch_info_struct[6]),
   ARC (bfd_mach_arc_arcv2,  "HS",     FALSE, NULL),
 };
 
 const bfd_arch_info_type bfd_arc_arch =
   ARC (bfd_mach_arc_arc600, "ARC600", TRUE, &arch_info_struct[0]);
+
+/* ARC-specific "compatible" function.  The general rule is that if A and B are
+   compatible, then this function should return architecture that is more
+   "feature-rich", that is, can run both A and B.  ARCv2, EM and HS all has
+   same mach number, so bfd_default_compatible assumes they are the same, and
+   returns an A.  That causes issues with GDB, because GDB assumes that if
+   machines are compatible, then "compatible ()" always returns same machine
+   regardless of argument order.  As a result GDB gets confused because, for
+   example, compatible (ARCv2, EM) returns ARCv2, but compatible (EM, ARCv2)
+   returns EM, hence GDB is not sure if they are compatible and prints a
+   warning.  */
+
+static const bfd_arch_info_type *
+arc_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b)
+{
+  const bfd_arch_info_type * const em = &arch_info_struct[5];
+  const bfd_arch_info_type * const hs = &arch_info_struct[6];
+
+  /* Trivial case where a and b is the same instance.  Some callers already
+     check this condition but some do not and get an invalid result.  */
+  if (a == b)
+    return a;
+
+  /* If a & b are for different architecture we can do nothing.  */
+  if (a->arch != b->arch)
+    return NULL;
+
+  if (a->bits_per_word != b->bits_per_word)
+    return NULL;
+
+  /* ARCv2|EM and EM.  */
+  if ((a->mach == bfd_mach_arc_arcv2 && b == em)
+      || (b->mach == bfd_mach_arc_arcv2 && a == em))
+    return em;
+
+  /* ARCv2|HS and HS.  */
+  if ((a->mach == bfd_mach_arc_arcv2 && b == hs)
+      || (b->mach == bfd_mach_arc_arcv2 && a == hs))
+    return hs;
+
+  return bfd_default_compatible (a, b);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-arm.c ./bfd/cpu-arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-arm.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-arm.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the ARM processor
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -233,7 +233,7 @@ arm_check_note (bfd *abfd,
   unsigned long namesz;
   unsigned long descsz;
   unsigned long type;
-  char *        descr;
+  char *	descr;
 
   if (buffer_size < offsetof (arm_Note, name))
     return FALSE;
@@ -274,16 +274,16 @@ arm_check_note (bfd *abfd,
   return TRUE;
 }
 
-#define NOTE_ARCH_STRING 	"arch: "
+#define NOTE_ARCH_STRING	"arch: "
 
 bfd_boolean
 bfd_arm_update_notes (bfd *abfd, const char *note_section)
 {
-  asection *     arm_arch_section;
-  bfd_size_type  buffer_size;
-  bfd_byte *     buffer;
-  char *         arch_string;
-  char *         expected;
+  asection *	 arm_arch_section;
+  bfd_size_type	 buffer_size;
+  bfd_byte *	 buffer;
+  char *	 arch_string;
+  char *	 expected;
 
   /* Look for a note section.  If one is present check the architecture
      string encoded in it, and set it to the current architecture if it is
@@ -378,11 +378,11 @@ architectures[] =
 unsigned int
 bfd_arm_get_mach_from_notes (bfd *abfd, const char *note_section)
 {
-  asection *     arm_arch_section;
-  bfd_size_type  buffer_size;
-  bfd_byte *     buffer;
-  char *         arch_string;
-  int            i;
+  asection *	 arm_arch_section;
+  bfd_size_type	 buffer_size;
+  bfd_byte *	 buffer;
+  char *	 arch_string;
+  int		 i;
 
   /* Look for a note section.  If one is present check the architecture
      string encoded in it, and set it to the current architecture if it is
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-avr.c ./bfd/cpu-avr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-avr.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-avr.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD library support routines for the AVR architecture.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Contributed by Denis Chertykov <denisc@overta.ru>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -48,7 +48,7 @@ compatible (const bfd_arch_info_type * a
     {
       /* Special case for ATmega[16]03 (avr:3) and ATmega83 (avr:4).  */
       if ((a->mach == bfd_mach_avr3 && b->mach == bfd_mach_avr4)
-         || (a->mach == bfd_mach_avr4 && b->mach == bfd_mach_avr3))
+	 || (a->mach == bfd_mach_avr4 && b->mach == bfd_mach_avr3))
        return NULL;
 
       if (a->mach <= b->mach)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-bfin.c ./bfd/cpu-bfin.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-bfin.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-bfin.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* BFD Support for the ADI Blackfin processor.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -25,15 +25,15 @@
 
 const bfd_arch_info_type bfd_bfin_arch =
   {
-    16,     		/* Bits in a word.  */
-    32,  		/* Bits in an address.  */
-    8,     		/* Bits in a byte.  */
+    16,			/* Bits in a word.  */
+    32,			/* Bits in an address.  */
+    8,			/* Bits in a byte.  */
     bfd_arch_bfin,
-    0,                	/* Only one machine.  */
-    "bfin",        	/* Arch name.  */
-    "bfin",        	/* Arch printable name.  */
-    4,                	/* Section align power.  */
-    TRUE,             	/* The one and only.  */
+    0,			/* Only one machine.  */
+    "bfin",		/* Arch name.  */
+    "bfin",		/* Arch printable name.  */
+    4,			/* Section align power.  */
+    TRUE,		/* The one and only.  */
     bfd_default_compatible,
     bfd_default_scan,
     bfd_arch_default_fill,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-cr16.c ./bfd/cpu-cr16.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-cr16.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-cr16.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the CR16 processor.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
    Written by M R Swami Reddy
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -25,15 +25,15 @@
 
 const bfd_arch_info_type bfd_cr16_arch =
   {
-    16,               /* 16 bits in a word.  */
-    32,               /* 32 bits in an address.  */
-    8,                /*  8 bits in a byte.  */
+    16,		      /* 16 bits in a word.  */
+    32,		      /* 32 bits in an address.  */
+    8,		      /*  8 bits in a byte.  */
     bfd_arch_cr16,    /* enum bfd_architecture arch.  */
     bfd_mach_cr16,
-    "cr16",           /* Arch name.  */
-    "cr16",           /* Printable name.  */
-    1,                /* Unsigned int section alignment power.  */
-    TRUE,             /* The one and only.  */
+    "cr16",	      /* Arch name.  */
+    "cr16",	      /* Printable name.  */
+    1,		      /* Unsigned int section alignment power.  */
+    TRUE,	      /* The one and only.  */
     bfd_default_compatible,
     bfd_default_scan,
     bfd_arch_default_fill,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-cr16c.c ./bfd/cpu-cr16c.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-cr16c.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-cr16c.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the CR16C processor.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_cr16c_arch 
     "cr16c",
     "cr16c",
     1,
-    TRUE, 	/* The one and only.  */
+    TRUE,	/* The one and only.  */
     bfd_default_compatible,
     bfd_default_scan,
     bfd_arch_default_fill,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-cris.c ./bfd/cpu-cris.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-cris.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-cris.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Axis CRIS architecture.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Axis Communications AB.
    Written by Hans-Peter Nilsson.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-crx.c ./bfd/cpu-crx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-crx.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-crx.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the CRX processor.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -30,10 +30,10 @@ const bfd_arch_info_type bfd_crx_arch =
     8,		/*  8 bits in a byte.  */
     bfd_arch_crx, /* enum bfd_architecture arch.  */
     bfd_mach_crx,
-    "crx", 	/* Arch name.  */
-    "crx", 	/* Printable name.  */
-    1,      	/* Unsigned int section alignment power.  */
-    TRUE, 	/* The one and only.  */
+    "crx",	/* Arch name.  */
+    "crx",	/* Printable name.  */
+    1,		/* Unsigned int section alignment power.  */
+    TRUE,	/* The one and only.  */
     bfd_default_compatible,
     bfd_default_scan,
     bfd_arch_default_fill,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-d10v.c ./bfd/cpu-d10v.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-d10v.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-d10v.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the D10V processor
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Contributed by Martin Hunt (hunt@cygnus.com).
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -32,7 +32,7 @@ static const bfd_arch_info_type d10v_ts3
   bfd_mach_d10v_ts3,
   "d10v",
   "d10v:ts3",
-  4, 	/* Section alignment power.  */
+  4,	/* Section alignment power.  */
   FALSE,
   bfd_default_compatible,
   bfd_default_scan,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-d30v.c ./bfd/cpu-d30v.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-d30v.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-d30v.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Mitsubishi D30V processor
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
    Contributed by Martin Hunt (hunt@cygnus.com).
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-dlx.c ./bfd/cpu-dlx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-dlx.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-dlx.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the DLX Microprocessor architecture.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Hacked by Kuang Hwa Lin <kuang@sbcglobal.net>
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-epiphany.c ./bfd/cpu-epiphany.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-epiphany.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-epiphany.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Adapteva EPIPHANY processor.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by Embecosm on behalf of Adapteva, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-fr30.c ./bfd/cpu-fr30.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-fr30.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-fr30.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the FR30 processor.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-frv.c ./bfd/cpu-frv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-frv.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-frv.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the FRV processor.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -24,9 +24,9 @@
 
 #define FRV_ARCH(MACHINE, NAME, DEFAULT, NEXT)				\
 {									\
-  32,	                        /* 32 bits in a word */			\
-  32,	                        /* 32 bits in an address */		\
-  8,	                        /* 8 bits in a byte */			\
+  32,				/* 32 bits in a word */			\
+  32,				/* 32 bits in an address */		\
+  8,				/* 8 bits in a byte */			\
   bfd_arch_frv,			/* architecture */			\
   MACHINE,			/* which machine */			\
   "frv",			/* architecture name */			\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-ft32.c ./bfd/cpu-ft32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-ft32.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-ft32.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the ft32 processor.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Written by FTDI (support@ftdichip.com)
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -23,19 +23,53 @@
 #include "libbfd.h"
 
 
+static const bfd_arch_info_type arch_info_struct[] =
+  {
+    {
+      32,		/* 32 bits in a word.  */
+      32,		/* 32 bits in an address.  */
+      8,		/*  8 bits in a byte.  */
+      bfd_arch_ft32,	/* enum bfd_architecture arch.  */
+      bfd_mach_ft32,
+      "ft32",		/* Arch name.  */
+      "ft32",		/* Printable name.  */
+      2,		/* Unsigned int section alignment power.  */
+      FALSE,		/* The one and only.  */
+      bfd_default_compatible,
+      bfd_default_scan,
+      bfd_arch_default_fill,
+      &arch_info_struct[1],
+    },
+    {
+      32,		/* 32 bits in a word.  */
+      32,		/* 32 bits in an address.  */
+      8,		/*  8 bits in a byte.  */
+      bfd_arch_ft32,	/* enum bfd_architecture arch.  */
+      bfd_mach_ft32b,
+      "ft32b",		/* Arch name.  */
+      "ft32b",		/* Printable name.  */
+      2,		/* Unsigned int section alignment power.  */
+      FALSE,		/* The one and only.  */
+      bfd_default_compatible,
+      bfd_default_scan,
+      bfd_arch_default_fill,
+      0,
+    },
+  };
+
 const bfd_arch_info_type bfd_ft32_arch =
   {
-    32,               /* 32 bits in a word.  */
-    32,               /* 32 bits in an address.  */
-    8,                /*  8 bits in a byte.  */
-    bfd_arch_ft32,   /* enum bfd_architecture arch.  */
+    32,			/* 32 bits in a word.  */
+    32,			/* 32 bits in an address.  */
+    8,			/*  8 bits in a byte.  */
+    bfd_arch_ft32,	/* enum bfd_architecture arch.  */
     bfd_mach_ft32,
-    "ft32",          /* Arch name.  */
-    "ft32",          /* Printable name.  */
-    2,                /* Unsigned int section alignment power.  */
-    TRUE,             /* The one and only.  */
+    "ft32",		/* Arch name.  */
+    "ft32",		/* Printable name.  */
+    2,			/* Unsigned int section alignment power.  */
+    TRUE,		/* The one and only.  */
     bfd_default_compatible,
     bfd_default_scan,
     bfd_arch_default_fill,
-    0,
+    arch_info_struct,
   };
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-h8300.c ./bfd/cpu-h8300.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-h8300.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-h8300.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD library support routines for the Renesas H8/300 architecture.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-h8500.c ./bfd/cpu-h8500.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-h8500.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-h8500.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD library support routines for the H8/500 architecture.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-hppa.c ./bfd/cpu-hppa.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-hppa.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-hppa.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the HP Precision Architecture architecture.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-i370.c ./bfd/cpu-i370.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-i370.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-i370.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD i370 CPU definition
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    Contributed by Ian Lance Taylor, Cygnus Support.
    Hacked by Linas Vepstas <linas@linas.org> in 1998, 1999
 
@@ -28,30 +28,30 @@ static const bfd_arch_info_type arch_inf
 {
   /* Hack alert: old old machines are really 16 and 24 bit arch ...  */
   {
-    32, 	/* 32 bits in a word.  */
-    32, 	/* 32 bits in an address.  */
-    8,  	/* 8 bits in a byte.  */
+    32,		/* 32 bits in a word.  */
+    32,		/* 32 bits in an address.  */
+    8,		/* 8 bits in a byte.  */
     bfd_arch_i370,
-    360, 	/* For the 360.  */
+    360,	/* For the 360.  */
     "i370",
     "i370:360",
     3,
-    FALSE, 	/* Not the default.  */
+    FALSE,	/* Not the default.  */
     bfd_default_compatible,
     bfd_default_scan,
     bfd_arch_default_fill,
     &arch_info_struct[1]
   },
   {
-    32, 	/* 32 bits in a word.  */
-    32, 	/* 32 bits in an address.  */
-    8,  	/* 8 bits in a byte.  */
+    32,		/* 32 bits in a word.  */
+    32,		/* 32 bits in an address.  */
+    8,		/* 8 bits in a byte.  */
     bfd_arch_i370,
-    370, 	/* For the 370.  */
+    370,	/* For the 370.  */
     "i370",
     "i370:370",
     3,
-    FALSE, 	/* Not the default.  */
+    FALSE,	/* Not the default.  */
     bfd_default_compatible,
     bfd_default_scan,
     bfd_arch_default_fill,
@@ -61,15 +61,15 @@ static const bfd_arch_info_type arch_inf
 
 const bfd_arch_info_type bfd_i370_arch =
 {
-  32, 		/* 32 bits in a word.  */
-  32, 		/* 32 bits in an address.  */
-  8,  		/* 8 bits in a byte.  */
+  32,		/* 32 bits in a word.  */
+  32,		/* 32 bits in an address.  */
+  8,		/* 8 bits in a byte.  */
   bfd_arch_i370,
   0,		/* For the 360/370 common architecture.  */
   "i370",
   "i370:common",
   3,
-  TRUE, 	/* The default.  */
+  TRUE,		/* The default.  */
   bfd_default_compatible,
   bfd_default_scan,
   bfd_arch_default_fill,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-i386.c ./bfd/cpu-i386.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-i386.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-i386.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Intel 386 architecture.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-i860.c ./bfd/cpu-i860.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-i860.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-i860.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Intel 860 architecture.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
    Created mostly by substituting "860" for "386" in cpu-i386.c
    Harry Dolan <dolan@ssd.intel.com>, October 1995
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-i960.c ./bfd/cpu-i960.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-i960.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-i960.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD library support routines for the i960 architecture.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -125,11 +125,11 @@ compatible (const bfd_arch_info_type *a,
 
 #define ERROR	0
 #define CORE	bfd_mach_i960_core  /*1*/
-#define KA 	bfd_mach_i960_ka_sa /*2*/
-#define KB 	bfd_mach_i960_kb_sb /*3*/
-#define MC 	bfd_mach_i960_mc    /*4*/
-#define XA 	bfd_mach_i960_xa    /*5*/
-#define CA 	bfd_mach_i960_ca    /*6*/
+#define KA	bfd_mach_i960_ka_sa /*2*/
+#define KB	bfd_mach_i960_kb_sb /*3*/
+#define MC	bfd_mach_i960_mc    /*4*/
+#define XA	bfd_mach_i960_xa    /*5*/
+#define CA	bfd_mach_i960_ca    /*6*/
 #define JX	bfd_mach_i960_jx    /*7*/
 #define HX	bfd_mach_i960_hx    /*8*/
 #define MAX_ARCH ((int)HX)
@@ -139,7 +139,7 @@ compatible (const bfd_arch_info_type *a,
       { ERROR,	CORE,	KA,	KB,	MC,	XA,	CA,	JX,	HX },
       { CORE,	CORE,	KA,	KB,	MC,	XA,	CA,	JX,	HX },
       { KA,	KA,	KA,	KB,	MC,	XA,	ERROR,	ERROR,	ERROR},
-      { KB,	KB,	KB,	KB,	MC,	XA,	ERROR, 	ERROR,	ERROR},
+      { KB,	KB,	KB,	KB,	MC,	XA,	ERROR,	ERROR,	ERROR},
       { MC,	MC,	MC,	MC,	MC,	XA,	ERROR,	ERROR,	ERROR},
       { XA,	XA,	XA,	XA,	XA,	XA,	ERROR,	ERROR,	ERROR},
       { CA,	CA,	ERROR,	ERROR,	ERROR,	ERROR,	CA,	ERROR,	ERROR},
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-ia64.c ./bfd/cpu-ia64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-ia64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-ia64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the ia64 architecture.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-ia64-opc.c ./bfd/cpu-ia64-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-ia64-opc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-ia64-opc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -86,7 +86,7 @@ ins_immu (const struct ia64_operand *sel
   for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
     {
       new_insn |= ((value & ((((ia64_insn) 1) << self->field[i].bits) - 1))
-                 << self->field[i].shift);
+		 << self->field[i].shift);
       value >>= self->field[i].bits;
     }
   if (value)
@@ -170,7 +170,7 @@ ins_imms_scaled (const struct ia64_opera
   for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
     {
       new_insn |= ((svalue & ((((ia64_insn) 1) << self->field[i].bits) - 1))
-                 << self->field[i].shift);
+		 << self->field[i].shift);
       sign_bit = (svalue >> (self->field[i].bits - 1)) & 1;
       svalue >>= self->field[i].bits;
     }
@@ -657,7 +657,7 @@ const struct ia64_operand elf64_ia64_ope
       "a branch target" },
     { REL, ins_imms4, ext_imms4, 0, {{20, 13}, { 1, 36}}, 0,	/* TGT25c */
       "a branch target" },
-    { REL, ins_rsvd, ext_rsvd, 0, {{0, 0}}, 0,                  /* TGT64  */
+    { REL, ins_rsvd, ext_rsvd, 0, {{0, 0}}, 0,			/* TGT64  */
       "a branch target" },
 
     { ABS, ins_const, ext_const, 0, {{0, 0}}, 0,		/* LDXMOV */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-iamcu.c ./bfd/cpu-iamcu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-iamcu.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-iamcu.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Intel MCU architecture.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-ip2k.c ./bfd/cpu-ip2k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-ip2k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-ip2k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Scenix IP2xxx processor.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_ip2k_nonext
   "ip2k",			/* Architecture name.  */
   "ip2022",			/* Machine name.  */
   1,				/* Section align power.  */
-  FALSE,		        /* The default ?  */
+  FALSE,			/* The default ?  */
   bfd_default_compatible,	/* Architecture comparison fn.  */
   bfd_default_scan,		/* String to architecture convert fn.  */
   bfd_arch_default_fill,	/* Default fill.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-iq2000.c ./bfd/cpu-iq2000.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-iq2000.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-iq2000.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Vitesse IQ2000 processor.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-k1om.c ./bfd/cpu-k1om.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-k1om.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-k1om.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Intel K1OM architecture.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-l1om.c ./bfd/cpu-l1om.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-l1om.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-l1om.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Intel L1OM architecture.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-lm32.c ./bfd/cpu-lm32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-lm32.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-lm32.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Lattice Mico32 architecture.
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
    Contributed by Jon Beniston <jon@beniston.com>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -25,18 +25,17 @@
 
 const bfd_arch_info_type bfd_lm32_arch =
 {
-    32,                           /* Bits in word.  */
-    32,                           /* Bits in address.  */
-    8,                            /* Bits in byte.  */
-    bfd_arch_lm32,                /* Enum bfd_architecture.  */
-    bfd_mach_lm32,                /* Machine number.  */
-    "lm32",                       /* Architecture name.  */
-    "lm32",                       /* Printable name.  */
-    4,                            /* Alignment.  */
-    TRUE,                         /* Is this the default machine for the target.  */
-    bfd_default_compatible,       /* Function callback to test if two files have compatible machines.  */
+    32,				  /* Bits in word.  */
+    32,				  /* Bits in address.  */
+    8,				  /* Bits in byte.  */
+    bfd_arch_lm32,		  /* Enum bfd_architecture.  */
+    bfd_mach_lm32,		  /* Machine number.  */
+    "lm32",			  /* Architecture name.  */
+    "lm32",			  /* Printable name.  */
+    4,				  /* Alignment.  */
+    TRUE,			  /* Is this the default machine for the target.  */
+    bfd_default_compatible,	  /* Function callback to test if two files have compatible machines.  */
     bfd_default_scan,
     bfd_arch_default_fill,
-    NULL                          /* Next.  */
+    NULL			  /* Next.  */
 };
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m10200.c ./bfd/cpu-m10200.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m10200.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-m10200.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Matsushita 10200 processor
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m10300.c ./bfd/cpu-m10300.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m10300.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-m10300.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Matsushita 10300 processor
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m32c.c ./bfd/cpu-m32c.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m32c.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-m32c.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the M16C/M32C processors.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m32r.c ./bfd/cpu-m32r.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m32r.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-m32r.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the M32R processor.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -27,7 +27,7 @@
      bfd_default_compatible, bfd_default_scan, bfd_arch_default_fill, next }
 
 #define M32R2_NEXT   & arch_info_struct [1]
-#define NEXT         & arch_info_struct [0]
+#define NEXT	     & arch_info_struct [0]
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m68hc11.c ./bfd/cpu-m68hc11.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m68hc11.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-m68hc11.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Motorola 68HC11 processor
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m68hc12.c ./bfd/cpu-m68hc12.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m68hc12.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-m68hc12.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Motorola 68HC12 processor
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m68k.c ./bfd/cpu-m68k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m68k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-m68k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD library support routines for architectures.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m88k.c ./bfd/cpu-m88k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m88k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-m88k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* bfd back-end for m88k support
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m9s12x.c ./bfd/cpu-m9s12x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m9s12x.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-m9s12x.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Freescale 9S12X processor
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m9s12xg.c ./bfd/cpu-m9s12xg.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-m9s12xg.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-m9s12xg.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Freescale 9S12-XGATE co-processor
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-mcore.c ./bfd/cpu-mcore.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-mcore.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-mcore.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD library support routines for Motorola's MCore architecture
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -24,17 +24,17 @@
 
 const bfd_arch_info_type bfd_mcore_arch =
 {
-  32,		  		/* 32 bits in a word */
-  32,		  		/* 32 bits in an address */
-  8,		  		/* 8 bits in a byte */
-  bfd_arch_mcore, 		/* Architecture */
-  0,		  		/* Machine number - 0 for now */
-  "MCore",	  		/* Architecture name */
-  "MCore",	  		/* Printable name */
-  3,		  		/* Section align power */
-  TRUE,		  		/* Is this the default architecture ? */
+  32,				/* 32 bits in a word */
+  32,				/* 32 bits in an address */
+  8,				/* 8 bits in a byte */
+  bfd_arch_mcore,		/* Architecture */
+  0,				/* Machine number - 0 for now */
+  "MCore",			/* Architecture name */
+  "MCore",			/* Printable name */
+  3,				/* Section align power */
+  TRUE,				/* Is this the default architecture ? */
   bfd_default_compatible,	/* Architecture comparison function */
-  bfd_default_scan,	   	/* String to architecture conversion */
+  bfd_default_scan,		/* String to architecture conversion */
   bfd_arch_default_fill,	/* Default fill.  */
-  NULL			   	/* Next in list */
+  NULL				/* Next in list */
 };
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-mep.c ./bfd/cpu-mep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-mep.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-mep.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Toshiba Media Engine Processor.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-metag.c ./bfd/cpu-metag.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-metag.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-metag.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Imagination Technologies Meta processor.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Contributed by Imagination Technologies Ltd.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-microblaze.c ./bfd/cpu-microblaze.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-microblaze.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-microblaze.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* BFD Xilinx MicroBlaze architecture definition
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -25,17 +25,17 @@
 
 const bfd_arch_info_type bfd_microblaze_arch =
 {
-  32,		  		/* 32 bits in a word.  */
-  32,		  		/* 32 bits in an address.  */
-  8,		  		/* 8 bits in a byte.  */
-  bfd_arch_microblaze, 		/* Architecture.  */
-  0,		  		/* Machine number - 0 for now.  */
-  "microblaze",	  		/* Architecture name.  */
-  "MicroBlaze",	  		/* Printable name.  */
-  3,		  		/* Section align power.  */
-  TRUE,		  		/* Is this the default architecture ?  */
+  32,				/* 32 bits in a word.  */
+  32,				/* 32 bits in an address.  */
+  8,				/* 8 bits in a byte.  */
+  bfd_arch_microblaze,		/* Architecture.  */
+  0,				/* Machine number - 0 for now.  */
+  "microblaze",			/* Architecture name.  */
+  "MicroBlaze",			/* Printable name.  */
+  3,				/* Section align power.  */
+  TRUE,				/* Is this the default architecture ?  */
   bfd_default_compatible,	/* Architecture comparison function.  */
-  bfd_default_scan,	   	/* String to architecture conversion.  */
+  bfd_default_scan,		/* String to architecture conversion.  */
   bfd_arch_default_fill,	/* Default fill.  */
-  NULL			   	/* Next in list.  */
+  NULL				/* Next in list.  */
 };
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-mips.c ./bfd/cpu-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-mips.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-mips.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* bfd back-end for mips support
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -104,6 +104,7 @@ enum
   I_mipsocteon2,
   I_mipsocteon3,
   I_xlr,
+  I_interaptiv_mr2,
   I_micromips
 };
 
@@ -111,50 +112,52 @@ enum
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  N (32, 32, bfd_mach_mips3000, "mips:3000",      FALSE, NN(I_mips3000)),
-  N (32, 32, bfd_mach_mips3900, "mips:3900",      FALSE, NN(I_mips3900)),
-  N (64, 64, bfd_mach_mips4000, "mips:4000",      FALSE, NN(I_mips4000)),
-  N (64, 64, bfd_mach_mips4010, "mips:4010",      FALSE, NN(I_mips4010)),
-  N (64, 64, bfd_mach_mips4100, "mips:4100",      FALSE, NN(I_mips4100)),
-  N (64, 64, bfd_mach_mips4111, "mips:4111",      FALSE, NN(I_mips4111)),
-  N (64, 64, bfd_mach_mips4120, "mips:4120",      FALSE, NN(I_mips4120)),
-  N (64, 64, bfd_mach_mips4300, "mips:4300",      FALSE, NN(I_mips4300)),
-  N (64, 64, bfd_mach_mips4400, "mips:4400",      FALSE, NN(I_mips4400)),
-  N (64, 64, bfd_mach_mips4600, "mips:4600",      FALSE, NN(I_mips4600)),
-  N (64, 64, bfd_mach_mips4650, "mips:4650",      FALSE, NN(I_mips4650)),
-  N (64, 64, bfd_mach_mips5000, "mips:5000",      FALSE, NN(I_mips5000)),
-  N (64, 64, bfd_mach_mips5400, "mips:5400",      FALSE, NN(I_mips5400)),
-  N (64, 64, bfd_mach_mips5500, "mips:5500",      FALSE, NN(I_mips5500)),
-  N (64, 32, bfd_mach_mips5900, "mips:5900",      FALSE, NN(I_mips5900)),
-  N (32, 32, bfd_mach_mips6000, "mips:6000",      FALSE, NN(I_mips6000)),
-  N (64, 64, bfd_mach_mips7000, "mips:7000",      FALSE, NN(I_mips7000)),
-  N (64, 64, bfd_mach_mips8000, "mips:8000",      FALSE, NN(I_mips8000)),
-  N (64, 64, bfd_mach_mips9000, "mips:9000",      FALSE, NN(I_mips9000)),
-  N (64, 64, bfd_mach_mips10000,"mips:10000",     FALSE, NN(I_mips10000)),
-  N (64, 64, bfd_mach_mips12000,"mips:12000",     FALSE, NN(I_mips12000)),
-  N (64, 64, bfd_mach_mips14000,"mips:14000",     FALSE, NN(I_mips14000)),
-  N (64, 64, bfd_mach_mips16000,"mips:16000",     FALSE, NN(I_mips16000)),
-  N (64, 64, bfd_mach_mips16,   "mips:16",        FALSE, NN(I_mips16)),
-  N (64, 64, bfd_mach_mips5,    "mips:mips5",     FALSE, NN(I_mips5)),
-  N (32, 32, bfd_mach_mipsisa32,  "mips:isa32",   FALSE, NN(I_mipsisa32)),
+  N (32, 32, bfd_mach_mips3000, "mips:3000",	  FALSE, NN(I_mips3000)),
+  N (32, 32, bfd_mach_mips3900, "mips:3900",	  FALSE, NN(I_mips3900)),
+  N (64, 64, bfd_mach_mips4000, "mips:4000",	  FALSE, NN(I_mips4000)),
+  N (32, 32, bfd_mach_mips4010, "mips:4010",	  FALSE, NN(I_mips4010)),
+  N (64, 64, bfd_mach_mips4100, "mips:4100",	  FALSE, NN(I_mips4100)),
+  N (64, 64, bfd_mach_mips4111, "mips:4111",	  FALSE, NN(I_mips4111)),
+  N (64, 64, bfd_mach_mips4120, "mips:4120",	  FALSE, NN(I_mips4120)),
+  N (64, 64, bfd_mach_mips4300, "mips:4300",	  FALSE, NN(I_mips4300)),
+  N (64, 64, bfd_mach_mips4400, "mips:4400",	  FALSE, NN(I_mips4400)),
+  N (64, 64, bfd_mach_mips4600, "mips:4600",	  FALSE, NN(I_mips4600)),
+  N (64, 64, bfd_mach_mips4650, "mips:4650",	  FALSE, NN(I_mips4650)),
+  N (64, 64, bfd_mach_mips5000, "mips:5000",	  FALSE, NN(I_mips5000)),
+  N (64, 64, bfd_mach_mips5400, "mips:5400",	  FALSE, NN(I_mips5400)),
+  N (64, 64, bfd_mach_mips5500, "mips:5500",	  FALSE, NN(I_mips5500)),
+  N (64, 32, bfd_mach_mips5900, "mips:5900",	  FALSE, NN(I_mips5900)),
+  N (32, 32, bfd_mach_mips6000, "mips:6000",	  FALSE, NN(I_mips6000)),
+  N (64, 64, bfd_mach_mips7000, "mips:7000",	  FALSE, NN(I_mips7000)),
+  N (64, 64, bfd_mach_mips8000, "mips:8000",	  FALSE, NN(I_mips8000)),
+  N (64, 64, bfd_mach_mips9000, "mips:9000",	  FALSE, NN(I_mips9000)),
+  N (64, 64, bfd_mach_mips10000,"mips:10000",	  FALSE, NN(I_mips10000)),
+  N (64, 64, bfd_mach_mips12000,"mips:12000",	  FALSE, NN(I_mips12000)),
+  N (64, 64, bfd_mach_mips14000,"mips:14000",	  FALSE, NN(I_mips14000)),
+  N (64, 64, bfd_mach_mips16000,"mips:16000",	  FALSE, NN(I_mips16000)),
+  N (64, 64, bfd_mach_mips16,	"mips:16",	  FALSE, NN(I_mips16)),
+  N (64, 64, bfd_mach_mips5,	"mips:mips5",	  FALSE, NN(I_mips5)),
+  N (32, 32, bfd_mach_mipsisa32,  "mips:isa32",	  FALSE, NN(I_mipsisa32)),
   N (32, 32, bfd_mach_mipsisa32r2,"mips:isa32r2", FALSE, NN(I_mipsisa32r2)),
   N (32, 32, bfd_mach_mipsisa32r3,"mips:isa32r3", FALSE, NN(I_mipsisa32r3)),
   N (32, 32, bfd_mach_mipsisa32r5,"mips:isa32r5", FALSE, NN(I_mipsisa32r5)),
   N (32, 32, bfd_mach_mipsisa32r6,"mips:isa32r6", FALSE, NN(I_mipsisa32r6)),
-  N (64, 64, bfd_mach_mipsisa64,  "mips:isa64",   FALSE, NN(I_mipsisa64)),
+  N (64, 64, bfd_mach_mipsisa64,  "mips:isa64",	  FALSE, NN(I_mipsisa64)),
   N (64, 64, bfd_mach_mipsisa64r2,"mips:isa64r2", FALSE, NN(I_mipsisa64r2)),
   N (64, 64, bfd_mach_mipsisa64r3,"mips:isa64r3", FALSE, NN(I_mipsisa64r3)),
   N (64, 64, bfd_mach_mipsisa64r5,"mips:isa64r5", FALSE, NN(I_mipsisa64r5)),
   N (64, 64, bfd_mach_mipsisa64r6,"mips:isa64r6", FALSE, NN(I_mipsisa64r6)),
-  N (64, 64, bfd_mach_mips_sb1, "mips:sb1",       FALSE, NN(I_sb1)),
-  N (64, 64, bfd_mach_mips_loongson_2e, "mips:loongson_2e",       FALSE, NN(I_loongson_2e)),
-  N (64, 64, bfd_mach_mips_loongson_2f, "mips:loongson_2f",       FALSE, NN(I_loongson_2f)),
-  N (64, 64, bfd_mach_mips_loongson_3a, "mips:loongson_3a",       FALSE, NN(I_loongson_3a)),
+  N (64, 64, bfd_mach_mips_sb1, "mips:sb1",	  FALSE, NN(I_sb1)),
+  N (64, 64, bfd_mach_mips_loongson_2e, "mips:loongson_2e",	  FALSE, NN(I_loongson_2e)),
+  N (64, 64, bfd_mach_mips_loongson_2f, "mips:loongson_2f",	  FALSE, NN(I_loongson_2f)),
+  N (64, 64, bfd_mach_mips_loongson_3a, "mips:loongson_3a",	  FALSE, NN(I_loongson_3a)),
   N (64, 64, bfd_mach_mips_octeon,"mips:octeon",  FALSE, NN(I_mipsocteon)),
   N (64, 64, bfd_mach_mips_octeonp,"mips:octeon+",  FALSE, NN(I_mipsocteonp)),
   N (64, 64, bfd_mach_mips_octeon2,"mips:octeon2",  FALSE, NN(I_mipsocteon2)),
   N (64, 64, bfd_mach_mips_octeon3, "mips:octeon3",  FALSE, NN(I_mipsocteon3)),
-  N (64, 64, bfd_mach_mips_xlr, "mips:xlr",       FALSE, NN(I_xlr)),
+  N (64, 64, bfd_mach_mips_xlr, "mips:xlr",	  FALSE, NN(I_xlr)),
+  N (32, 32, bfd_mach_mips_interaptiv_mr2, "mips:interaptiv-mr2", FALSE,
+     NN(I_interaptiv_mr2)),
   N (64, 64, bfd_mach_mips_micromips,"mips:micromips",FALSE,0)
 };
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-mmix.c ./bfd/cpu-mmix.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-mmix.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-mmix.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD library support routines for MMIX.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    Contributed by Hans-Peter Nilsson (hp@bitrange.com)
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-moxie.c ./bfd/cpu-moxie.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-moxie.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-moxie.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the moxie processor.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Written by Anthony Green
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -25,15 +25,15 @@
 
 const bfd_arch_info_type bfd_moxie_arch =
   {
-    32,               /* 32 bits in a word.  */
-    32,               /* 32 bits in an address.  */
-    8,                /*  8 bits in a byte.  */
+    32,		      /* 32 bits in a word.  */
+    32,		      /* 32 bits in an address.  */
+    8,		      /*  8 bits in a byte.  */
     bfd_arch_moxie,   /* enum bfd_architecture arch.  */
     bfd_mach_moxie,
-    "moxie",          /* Arch name.  */
-    "moxie",          /* Printable name.  */
-    2,                /* Unsigned int section alignment power.  */
-    TRUE,             /* The one and only.  */
+    "moxie",	      /* Arch name.  */
+    "moxie",	      /* Printable name.  */
+    2,		      /* Unsigned int section alignment power.  */
+    TRUE,	      /* The one and only.  */
     bfd_default_compatible,
     bfd_default_scan,
     bfd_arch_default_fill,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-msp430.c ./bfd/cpu-msp430.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-msp430.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-msp430.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD library support routines for the MSP architecture.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by Dmitry Diky <diwil@mail.ru>
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-mt.c ./bfd/cpu-mt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-mt.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-mt.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Morpho Technologies MT processor.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -15,8 +15,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-   MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 #include "sysdep.h"
 #include "bfd.h"
@@ -33,22 +33,22 @@ const bfd_arch_info_type arch_info_struc
   "mt",				/* Architecture name.  */
   "ms1-003",			/* Printable name.  */
   1,				/* Section align power.  */
-  FALSE,		        /* The default ?  */
+  FALSE,			/* The default ?  */
   bfd_default_compatible,	/* Architecture comparison fn.  */
   bfd_default_scan,		/* String to architecture convert fn.  */
   bfd_arch_default_fill,	/* Default fill.  */
-  &arch_info_struct[1]          /* Next in list.  */
+  &arch_info_struct[1]		/* Next in list.  */
 },
 {
   32,				/* Bits per word - not really true.  */
   32,				/* Bits per address.  */
   8,				/* Bits per byte.  */
   bfd_arch_mt,			/* Architecture.  */
-  bfd_mach_ms2,		        /* Machine.  */
+  bfd_mach_ms2,			/* Machine.  */
   "mt",				/* Architecture name.  */
   "ms2",			/* Printable name.  */
   1,				/* Section align power.  */
-  FALSE,		        /* The default ?  */
+  FALSE,			/* The default ?  */
   bfd_default_compatible,	/* Architecture comparison fn.  */
   bfd_default_scan,		/* String to architecture convert fn.  */
   bfd_arch_default_fill,	/* Default fill.  */
@@ -66,7 +66,7 @@ const bfd_arch_info_type bfd_mt_arch =
   "mt",				/* Architecture name.  */
   "ms1",			/* Printable name.  */
   1,				/* Section align power.  */
-  TRUE,		        	/* The default ?  */
+  TRUE,				/* The default ?  */
   bfd_default_compatible,	/* Architecture comparison fn.  */
   bfd_default_scan,		/* String to architecture convert fn.  */
   bfd_arch_default_fill,	/* Default fill.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-nds32.c ./bfd/cpu-nds32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-nds32.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-nds32.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the NDS32 processor
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by Andes Technology Corporation.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-nios2.c ./bfd/cpu-nios2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-nios2.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-nios2.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Altera Nios II processor.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by Nigel Gray (ngray@altera.com).
    Contributed by Mentor Graphics, Inc.
 
@@ -57,7 +57,7 @@ nios2_compatible (const bfd_arch_info_ty
     DEFAULT,						\
     nios2_compatible,					\
     bfd_default_scan,					\
-    bfd_arch_default_fill,			       	\
+    bfd_arch_default_fill,				\
     NEXT						\
   }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-ns32k.c ./bfd/cpu-ns32k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-ns32k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-ns32k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the ns32k architecture.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Almost totally rewritten by Ian Dall from initial work
    by Andrew Cagney.
 
@@ -483,23 +483,23 @@ do_ns32k_reloc (bfd *      abfd,
      R result
 
      Do this:
-     i i i i i o o o o o        from bfd_get<size>
-     and           S S S S S    to get the size offset we want
-     +   r r r r r r r r r r  to get the final value to place
-     and           D D D D D  to chop to right size
+     i i i i i o o o o o	from bfd_get<size>
+     and	   S S S S S	to get the size offset we want
+     +	 r r r r r r r r r r  to get the final value to place
+     and	   D D D D D  to chop to right size
      -----------------------
      A A A A A
      And this:
-     ...   i i i i i o o o o o  from bfd_get<size>
-     and   N N N N N            get instruction
+     ...   i i i i i o o o o o	from bfd_get<size>
+     and   N N N N N		get instruction
      -----------------------
      ...   B B B B B
 
      And then:
      B B B B B
-     or              A A A A A
+     or		     A A A A A
      -----------------------
-     R R R R R R R R R R        put into bfd_put<size>.  */
+     R R R R R R R R R R	put into bfd_put<size>.  */
 
 #define DOIT(x) \
   x = ( (x & ~howto->dst_mask) | (((x & howto->src_mask) +  relocation) & howto->dst_mask))
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-or1k.c ./bfd/cpu-or1k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-or1k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-or1k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the OpenRISC 1000 architecture.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed for OR32 by Ivan Guzvinec  <ivang@opencores.org>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -26,9 +26,9 @@ const bfd_arch_info_type bfd_or1knd_arch
 
 const bfd_arch_info_type bfd_or1k_arch =
   {
-    32,           /* 32 bits in a word.  */
-    32,	          /* 32 bits in an address.  */
-    8,	          /* 8 bits in a byte.  */
+    32,		  /* 32 bits in a word.  */
+    32,		  /* 32 bits in an address.  */
+    8,		  /* 8 bits in a byte.  */
     bfd_arch_or1k,
     bfd_mach_or1k,
     "or1k",
@@ -43,9 +43,9 @@ const bfd_arch_info_type bfd_or1k_arch =
 
 const bfd_arch_info_type bfd_or1knd_arch =
   {
-    32,           /* 32 bits in a word.  */
-    32,	          /* 32 bits in an address.  */
-    8,	          /* 8 bits in a byte.  */
+    32,		  /* 32 bits in a word.  */
+    32,		  /* 32 bits in an address.  */
+    8,		  /* 8 bits in a byte.  */
     bfd_arch_or1k,
     bfd_mach_or1knd,
     "or1knd",
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-pdp11.c ./bfd/cpu-pdp11.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-pdp11.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-pdp11.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for PDP-11 support.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_pdp11_arch 
     0,	/* only 1 machine */
     "pdp11",
     "pdp11",
-    1,		/* aligment = 16 bit */
+    1,		/* alignment = 16 bit */
     TRUE, /* the one and only */
     bfd_default_compatible,
     bfd_default_scan,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-pj.c ./bfd/cpu-pj.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-pj.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-pj.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD library support routines for the Pico Java architecture.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Transmeta. sac@pobox.com
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-plugin.c ./bfd/cpu-plugin.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-plugin.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-plugin.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for plugins.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-powerpc.c ./bfd/cpu-powerpc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-powerpc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-powerpc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD PowerPC CPU definition
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    Contributed by Ian Lance Taylor, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -285,9 +285,9 @@ const bfd_arch_info_type bfd_powerpc_arc
     &bfd_powerpc_archs[13]
   },
   {
-    32, /* 32 bits in a word */
-    32, /* 32 bits in an address */
-    8,  /* 8 bits in a byte */
+    32,	/* 32 bits in a word */
+    32,	/* 32 bits in an address */
+    8,	/* 8 bits in a byte */
     bfd_arch_powerpc,
     bfd_mach_ppc_e500,
     "powerpc",
@@ -300,9 +300,9 @@ const bfd_arch_info_type bfd_powerpc_arc
     &bfd_powerpc_archs[14]
   },
   {
-    32,        /* 32 bits in a word */
-    32,        /* 32 bits in an address */
-    8, /* 8 bits in a byte */
+    32,	/* 32 bits in a word */
+    32,	/* 32 bits in an address */
+    8,	/* 8 bits in a byte */
     bfd_arch_powerpc,
     bfd_mach_ppc_e500mc,
     "powerpc",
@@ -315,9 +315,9 @@ const bfd_arch_info_type bfd_powerpc_arc
     &bfd_powerpc_archs[15]
   },
   {
-    64, /* 64 bits in a word */
-    64, /* 64 bits in an address */
-    8,  /* 8 bits in a byte */
+    64,	/* 64 bits in a word */
+    64,	/* 64 bits in an address */
+    8,	/* 8 bits in a byte */
     bfd_arch_powerpc,
     bfd_mach_ppc_e500mc64,
     "powerpc",
@@ -330,9 +330,9 @@ const bfd_arch_info_type bfd_powerpc_arc
     &bfd_powerpc_archs[16]
   },
   {
-    32,       /* 32 bits in a word */
-    32,       /* 32 bits in an address */
-    8,        /* 8 bits in a byte */
+    32,	/* 32 bits in a word */
+    32,	/* 32 bits in an address */
+    8,	/* 8 bits in a byte */
     bfd_arch_powerpc,
     bfd_mach_ppc_860,
     "powerpc",
@@ -345,9 +345,9 @@ const bfd_arch_info_type bfd_powerpc_arc
     &bfd_powerpc_archs[17]
   },
   {
-    32, /* 32 bits in a word */
-    32, /* 32 bits in an address */
-    8,  /* 8 bits in a byte */
+    32,	/* 32 bits in a word */
+    32,	/* 32 bits in an address */
+    8,	/* 8 bits in a byte */
     bfd_arch_powerpc,
     bfd_mach_ppc_750,
     "powerpc",
@@ -360,9 +360,9 @@ const bfd_arch_info_type bfd_powerpc_arc
     &bfd_powerpc_archs[18]
   },
   {
-    32, /* 32 bits in a word */
-    32, /* 32 bits in an address */
-    8,  /* 8 bits in a byte */
+    32,	/* 32 bits in a word */
+    32,	/* 32 bits in an address */
+    8,	/* 8 bits in a byte */
     bfd_arch_powerpc,
     bfd_mach_ppc_titan,
     "powerpc",
@@ -375,9 +375,9 @@ const bfd_arch_info_type bfd_powerpc_arc
     &bfd_powerpc_archs[19]
   },
   {
-    16, /* 16 or 32 bits in a word */
-    32, /* 32 bits in an address */
-    8,  /* 8 bits in a byte */
+    16,	/* 16 or 32 bits in a word */
+    32,	/* 32 bits in an address */
+    8,	/* 8 bits in a byte */
     bfd_arch_powerpc,
     bfd_mach_ppc_vle,
     "powerpc",
@@ -390,9 +390,9 @@ const bfd_arch_info_type bfd_powerpc_arc
     &bfd_powerpc_archs[20]
   },
   {
-    64, /* 64 bits in a word */
-    64, /* 64 bits in an address */
-    8,  /* 8 bits in a byte */
+    64,	/* 64 bits in a word */
+    64,	/* 64 bits in an address */
+    8,	/* 8 bits in a byte */
     bfd_arch_powerpc,
     bfd_mach_ppc_e5500,
     "powerpc",
@@ -405,9 +405,9 @@ const bfd_arch_info_type bfd_powerpc_arc
     &bfd_powerpc_archs[21]
   },
   {
-    64, /* 64 bits in a word */
-    64, /* 64 bits in an address */
-    8,  /* 8 bits in a byte */
+    64,	/* 64 bits in a word */
+    64,	/* 64 bits in an address */
+    8,	/* 8 bits in a byte */
     bfd_arch_powerpc,
     bfd_mach_ppc_e6500,
     "powerpc",
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-pru.c ./bfd/cpu-pru.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-pru.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-pru.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the TI PRU microprocessor.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
    Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -36,7 +36,7 @@
     DEFAULT,						\
     bfd_default_compatible,				\
     bfd_default_scan,					\
-    bfd_arch_default_fill,			       	\
+    bfd_arch_default_fill,				\
     NEXT						\
   }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-riscv.c ./bfd/cpu-riscv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-riscv.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-riscv.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD backend for RISC-V
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    Contributed by Andrew Waterman (andrew@sifive.com).
    Based on MIPS target.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-rl78.c ./bfd/cpu-rl78.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-rl78.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-rl78.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the RL78 processor.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-rs6000.c ./bfd/cpu-rs6000.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-rs6000.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-rs6000.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for rs6000 support
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Mimi Phuong-Thao Vo of IBM
    and John Gilmore of Cygnus Support.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-rx.c ./bfd/cpu-rx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-rx.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-rx.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the RX processor.
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-s390.c ./bfd/cpu-s390.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-s390.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-s390.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the s390 processor.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Carl B. Pedersen and Martin Schwidefsky.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-score.c ./bfd/cpu-score.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-score.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-score.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the score processor
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
    Contributed by
    Brain.lin (brain.lin@sunplusct.com)
    Mei Ligang (ligang@sunnorth.com.cn)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-sh.c ./bfd/cpu-sh.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-sh.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-sh.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD library support routines for the Renesas / SuperH SH architecture.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -24,27 +24,27 @@
 #include "libbfd.h"
 #include "../opcodes/sh-opc.h"
 
-#define SH_NEXT                            arch_info_struct + 0
-#define SH2_NEXT                           arch_info_struct + 1
-#define SH2E_NEXT                          arch_info_struct + 2
-#define SH_DSP_NEXT                        arch_info_struct + 3
-#define SH3_NEXT                           arch_info_struct + 4
-#define SH3_NOMMU_NEXT                     arch_info_struct + 5
-#define SH3_DSP_NEXT                       arch_info_struct + 6
-#define SH3E_NEXT                          arch_info_struct + 7
-#define SH4_NEXT                           arch_info_struct + 8
-#define SH4A_NEXT                          arch_info_struct + 9
-#define SH4AL_DSP_NEXT                     arch_info_struct + 10
-#define SH4_NOFPU_NEXT                     arch_info_struct + 11
-#define SH4_NOMMU_NOFPU_NEXT               arch_info_struct + 12
-#define SH4A_NOFPU_NEXT                    arch_info_struct + 13
-#define SH2A_NEXT                          arch_info_struct + 14
-#define SH2A_NOFPU_NEXT                    arch_info_struct + 15
+#define SH_NEXT				   arch_info_struct + 0
+#define SH2_NEXT			   arch_info_struct + 1
+#define SH2E_NEXT			   arch_info_struct + 2
+#define SH_DSP_NEXT			   arch_info_struct + 3
+#define SH3_NEXT			   arch_info_struct + 4
+#define SH3_NOMMU_NEXT			   arch_info_struct + 5
+#define SH3_DSP_NEXT			   arch_info_struct + 6
+#define SH3E_NEXT			   arch_info_struct + 7
+#define SH4_NEXT			   arch_info_struct + 8
+#define SH4A_NEXT			   arch_info_struct + 9
+#define SH4AL_DSP_NEXT			   arch_info_struct + 10
+#define SH4_NOFPU_NEXT			   arch_info_struct + 11
+#define SH4_NOMMU_NOFPU_NEXT		   arch_info_struct + 12
+#define SH4A_NOFPU_NEXT			   arch_info_struct + 13
+#define SH2A_NEXT			   arch_info_struct + 14
+#define SH2A_NOFPU_NEXT			   arch_info_struct + 15
 #define SH2A_NOFPU_OR_SH4_NOMMU_NOFPU_NEXT arch_info_struct + 16
-#define SH2A_NOFPU_OR_SH3_NOMMU_NEXT       arch_info_struct + 17
-#define SH2A_OR_SH4_NEXT                   arch_info_struct + 18
-#define SH2A_OR_SH3E_NEXT                  arch_info_struct + 19
-#define SH64_NEXT                          NULL
+#define SH2A_NOFPU_OR_SH3_NOMMU_NEXT	   arch_info_struct + 17
+#define SH2A_OR_SH4_NEXT		   arch_info_struct + 18
+#define SH2A_OR_SH3E_NEXT		   arch_info_struct + 19
+#define SH64_NEXT			   NULL
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
@@ -376,29 +376,29 @@ const bfd_arch_info_type bfd_sh_arch =
 
 static struct { unsigned long bfd_mach, arch, arch_up; } bfd_to_arch_table[] =
 {
-  { bfd_mach_sh,              arch_sh1,             arch_sh_up },
-  { bfd_mach_sh2,             arch_sh2,             arch_sh2_up },
-  { bfd_mach_sh2e,            arch_sh2e,            arch_sh2e_up },
-  { bfd_mach_sh_dsp,          arch_sh_dsp,          arch_sh_dsp_up },
-  { bfd_mach_sh2a,            arch_sh2a,            arch_sh2a_up },
-  { bfd_mach_sh2a_nofpu,      arch_sh2a_nofpu,      arch_sh2a_nofpu_up },
-
-  { bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu,         arch_sh2a_nofpu_or_sh4_nommu_nofpu,   arch_sh2a_nofpu_or_sh4_nommu_nofpu_up },
-  { bfd_mach_sh2a_nofpu_or_sh3_nommu,               arch_sh2a_nofpu_or_sh3_nommu,         arch_sh2a_nofpu_or_sh3_nommu_up },
-  { bfd_mach_sh2a_or_sh4,     arch_sh2a_or_sh4,     arch_sh2a_or_sh4_up },
+  { bfd_mach_sh,	      arch_sh1,		    arch_sh_up },
+  { bfd_mach_sh2,	      arch_sh2,		    arch_sh2_up },
+  { bfd_mach_sh2e,	      arch_sh2e,	    arch_sh2e_up },
+  { bfd_mach_sh_dsp,	      arch_sh_dsp,	    arch_sh_dsp_up },
+  { bfd_mach_sh2a,	      arch_sh2a,	    arch_sh2a_up },
+  { bfd_mach_sh2a_nofpu,      arch_sh2a_nofpu,	    arch_sh2a_nofpu_up },
+
+  { bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu,	    arch_sh2a_nofpu_or_sh4_nommu_nofpu,	  arch_sh2a_nofpu_or_sh4_nommu_nofpu_up },
+  { bfd_mach_sh2a_nofpu_or_sh3_nommu,		    arch_sh2a_nofpu_or_sh3_nommu,	  arch_sh2a_nofpu_or_sh3_nommu_up },
+  { bfd_mach_sh2a_or_sh4,     arch_sh2a_or_sh4,	    arch_sh2a_or_sh4_up },
   { bfd_mach_sh2a_or_sh3e,    arch_sh2a_or_sh3e,    arch_sh2a_or_sh3e_up },
 
-  { bfd_mach_sh3,             arch_sh3,             arch_sh3_up },
-  { bfd_mach_sh3_nommu,       arch_sh3_nommu,       arch_sh3_nommu_up },
-  { bfd_mach_sh3_dsp,         arch_sh3_dsp,         arch_sh3_dsp_up },
-  { bfd_mach_sh3e,            arch_sh3e,            arch_sh3e_up },
-  { bfd_mach_sh4,             arch_sh4,             arch_sh4_up },
-  { bfd_mach_sh4a,            arch_sh4a,            arch_sh4a_up },
-  { bfd_mach_sh4al_dsp,       arch_sh4al_dsp,       arch_sh4al_dsp_up },
-  { bfd_mach_sh4_nofpu,       arch_sh4_nofpu,       arch_sh4_nofpu_up },
+  { bfd_mach_sh3,	      arch_sh3,		    arch_sh3_up },
+  { bfd_mach_sh3_nommu,	      arch_sh3_nommu,	    arch_sh3_nommu_up },
+  { bfd_mach_sh3_dsp,	      arch_sh3_dsp,	    arch_sh3_dsp_up },
+  { bfd_mach_sh3e,	      arch_sh3e,	    arch_sh3e_up },
+  { bfd_mach_sh4,	      arch_sh4,		    arch_sh4_up },
+  { bfd_mach_sh4a,	      arch_sh4a,	    arch_sh4a_up },
+  { bfd_mach_sh4al_dsp,	      arch_sh4al_dsp,	    arch_sh4al_dsp_up },
+  { bfd_mach_sh4_nofpu,	      arch_sh4_nofpu,	    arch_sh4_nofpu_up },
   { bfd_mach_sh4_nommu_nofpu, arch_sh4_nommu_nofpu, arch_sh4_nommu_nofpu_up },
-  { bfd_mach_sh4a_nofpu,      arch_sh4a_nofpu,      arch_sh4a_nofpu_up },
-  { 0, 0, 0 }   /* Terminator.  */
+  { bfd_mach_sh4a_nofpu,      arch_sh4a_nofpu,	    arch_sh4a_nofpu_up },
+  { 0, 0, 0 }	/* Terminator.  */
 };
 
 
@@ -476,7 +476,7 @@ sh_get_bfd_mach_from_arch_set (unsigned 
       /* Conceptually: Find the architecture with the least number
 	 of extra features or, if they have the same number, then
 	 the greatest number of required features.  Disregard
-         architectures where the required features alone do
+	 architectures where the required features alone do
 	 not describe a valid architecture.  */
       if (((try & ~arch_set) < (best & ~arch_set)
 	   || ((try & ~arch_set) == (best & ~arch_set)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-sparc.c ./bfd/cpu-sparc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-sparc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-sparc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the SPARC architecture.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -307,6 +307,36 @@ static const bfd_arch_info_type arch_inf
     bfd_default_compatible,
     bfd_default_scan,
     bfd_arch_default_fill,
+    &arch_info_struct[19],
+  },
+  {
+    32,	/* bits in a word */
+    32,	/* bits in an address */
+    8,	/* bits in a byte */
+    bfd_arch_sparc,
+    bfd_mach_sparc_v8plusm8,
+    "sparc",
+    "sparc:v8plusm8",
+    3,
+    FALSE,
+    bfd_default_compatible,
+    bfd_default_scan,
+    bfd_arch_default_fill,
+    &arch_info_struct[20],
+  },
+  {
+    64,	/* bits in a word */
+    64,	/* bits in an address */
+    8,	/* bits in a byte */
+    bfd_arch_sparc,
+    bfd_mach_sparc_v9m8,
+    "sparc",
+    "sparc:v9m8",
+    3,
+    FALSE,
+    bfd_default_compatible,
+    bfd_default_scan,
+    bfd_arch_default_fill,
     0,
   }
 };
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-spu.c ./bfd/cpu-spu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-spu.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-spu.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -46,7 +46,7 @@ const bfd_arch_info_type bfd_spu_arch[] 
     "spu",		/* architecture name */
     "spu:256K",		/* printable name */
     3,			/* aligned power */
-    TRUE, 		/* the default machine for the architecture */
+    TRUE,		/* the default machine for the architecture */
     spu_compatible,	/* the spu is only compatible with itself, see above */
     bfd_default_scan,
     bfd_arch_default_fill,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-tic30.c ./bfd/cpu-tic30.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-tic30.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-tic30.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Texas Instruments TMS320C30 architecture.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-tic4x.c ./bfd/cpu-tic4x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-tic4x.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-tic4x.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* bfd back-end for TMS320C[34]x support
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz)
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-tic54x.c ./bfd/cpu-tic54x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-tic54x.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-tic54x.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Texas Instruments TMS320C54X architecture.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-tic6x.c ./bfd/cpu-tic6x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-tic6x.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-tic6x.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the TI C6X processor.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-tic80.c ./bfd/cpu-tic80.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-tic80.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-tic80.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* bfd back-end for TI TMS320C80 (MVP) support
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Written by Fred Fish at Cygnus support (fnf@cygnus.com)
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-tilegx.c ./bfd/cpu-tilegx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-tilegx.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-tilegx.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the TILE-Gx processor.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-tilepro.c ./bfd/cpu-tilepro.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-tilepro.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-tilepro.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the TILEPro processor.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-v850.c ./bfd/cpu-v850.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-v850.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-v850.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the NEC V850 processor
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,12 +31,12 @@
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  N (bfd_mach_v850e3v5, "v850e3v5", 	FALSE, & arch_info_struct[1]),
-  N (bfd_mach_v850e3v5, "v850e2v4", 	FALSE, & arch_info_struct[2]),
-  N (bfd_mach_v850e2v3, "v850e2v3", 	FALSE, & arch_info_struct[3]),
-  N (bfd_mach_v850e2,   "v850e2", 	FALSE, & arch_info_struct[4]),
-  N (bfd_mach_v850e1,   "v850e1",  	FALSE, & arch_info_struct[5]),
-  N (bfd_mach_v850e,    "v850e",   	FALSE, NULL)
+  N (bfd_mach_v850e3v5, "v850e3v5",	FALSE, & arch_info_struct[1]),
+  N (bfd_mach_v850e3v5, "v850e2v4",	FALSE, & arch_info_struct[2]),
+  N (bfd_mach_v850e2v3, "v850e2v3",	FALSE, & arch_info_struct[3]),
+  N (bfd_mach_v850e2,	"v850e2",	FALSE, & arch_info_struct[4]),
+  N (bfd_mach_v850e1,	"v850e1",	FALSE, & arch_info_struct[5]),
+  N (bfd_mach_v850e,	"v850e",	FALSE, NULL)
 };
 
 #undef  NEXT
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-v850_rh850.c ./bfd/cpu-v850_rh850.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-v850_rh850.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-v850_rh850.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the NEC V850 processor with the RH850 ABI.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -29,14 +29,14 @@
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  R (bfd_mach_v850e3v5, "v850e3v5", 	FALSE, & arch_info_struct[1]),
-  R (bfd_mach_v850e3v5, "v850e2v4", 	FALSE, & arch_info_struct[2]),
-  R (bfd_mach_v850e2v3, "v850e2v3", 	FALSE, & arch_info_struct[3]),
-  R (bfd_mach_v850e2,   "v850e2", 	FALSE, & arch_info_struct[4]),
-  R (bfd_mach_v850e1,   "v850e1",  	FALSE, & arch_info_struct[5]),
-  R (bfd_mach_v850e,    "v850e",   	FALSE, & arch_info_struct[6]),
-  R (bfd_mach_v850,     "v850-rh850",   FALSE, NULL) /* For backwards compatibility.  */
+  R (bfd_mach_v850e3v5, "v850e3v5",	FALSE, & arch_info_struct[1]),
+  R (bfd_mach_v850e3v5, "v850e2v4",	FALSE, & arch_info_struct[2]),
+  R (bfd_mach_v850e2v3, "v850e2v3",	FALSE, & arch_info_struct[3]),
+  R (bfd_mach_v850e2,	"v850e2",	FALSE, & arch_info_struct[4]),
+  R (bfd_mach_v850e1,	"v850e1",	FALSE, & arch_info_struct[5]),
+  R (bfd_mach_v850e,	"v850e",	FALSE, & arch_info_struct[6]),
+  R (bfd_mach_v850,	"v850-rh850",	FALSE, NULL) /* For backwards compatibility.  */
 };
 
 const bfd_arch_info_type bfd_v850_rh850_arch =
-  R (bfd_mach_v850,     "v850:rh850",   TRUE,  & arch_info_struct[0]);
+  R (bfd_mach_v850,	"v850:rh850",	TRUE,  & arch_info_struct[0]);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-vax.c ./bfd/cpu-vax.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-vax.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-vax.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* bfd back-end for vax support
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-visium.c ./bfd/cpu-visium.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-visium.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-visium.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* BFD support for the Visium processor.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-w65.c ./bfd/cpu-w65.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-w65.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-w65.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD library support routines for the WDC 65816 architecture.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-wasm32.c ./bfd/cpu-wasm32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-wasm32.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-wasm32.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the WebAssembly target
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-we32k.c ./bfd/cpu-we32k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-we32k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-we32k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* bfd back-end for we32k support
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
    Contributed by Brendan Kehoe (brendan@cs.widener.edu).
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-xc16x.c ./bfd/cpu-xc16x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-xc16x.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-xc16x.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Infineon XC16X Microcontroller.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
    Contributed by KPIT Cummins Infosystems
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-xgate.c ./bfd/cpu-xgate.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-xgate.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-xgate.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Freescale XGATE processor
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_xgate_arch 
     bfd_mach_xgate,
     "xgate",
     "xgate",
-    4, 	/* Section alignment power.  */
+    4,	/* Section alignment power.  */
     TRUE,
     bfd_default_compatible,
     bfd_default_scan,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-xstormy16.c ./bfd/cpu-xstormy16.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-xstormy16.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-xstormy16.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the XSTORMY16 processor.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-xtensa.c ./bfd/cpu-xtensa.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-xtensa.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-xtensa.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for the Xtensa processor.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-z80.c ./bfd/cpu-z80.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-z80.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-z80.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD library support routines for the Z80 architecture.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
    Contributed by Arnold Metselaar <arnold_m@operamail.com>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -49,9 +49,9 @@ compatible (const bfd_arch_info_type *a,
 static const bfd_arch_info_type arch_info_struct[] =
 {
   N (bfd_mach_z80strict, "z80-strict", FALSE, M(1)),
-  N (bfd_mach_z80,       "z80",        FALSE, M(2)),
-  N (bfd_mach_z80full,   "z80-full",   FALSE, M(3)),
-  N (bfd_mach_r800,      "r800",       FALSE, NULL)
+  N (bfd_mach_z80,	 "z80",	       FALSE, M(2)),
+  N (bfd_mach_z80full,	 "z80-full",   FALSE, M(3)),
+  N (bfd_mach_r800,	 "r800",       FALSE, NULL)
 };
 
 const bfd_arch_info_type bfd_z80_arch = N (0, "z80-any", TRUE, M(0));
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-z8k.c ./bfd/cpu-z8k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/cpu-z8k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/cpu-z8k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD library support routines for the Z800n architecture.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
    Hacked by Steve Chamberlain of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/demo64.c ./bfd/demo64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/demo64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/demo64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD backend for demonstration 64-bit a.out binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/development.sh ./bfd/development.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/development.sh	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/development.sh	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/archive.texi ./bfd/doc/archive.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/archive.texi	2018-01-02 02:04:53.000000000 +0000
+++ ./bfd/doc/archive.texi	2018-01-09 02:06:19.000000000 +0000
@@ -98,8 +98,9 @@ bfd *bfd_openr_next_archived_file (bfd *
 @strong{Description}@*
 Provided a BFD, @var{archive}, containing an archive and NULL, open
 an input BFD on the first contained element and returns that.
-Subsequent calls should pass
-the archive and the previous return value to return a created
-BFD to the next contained element. NULL is returned when there
-are no more.
+Subsequent calls should pass the archive and the previous return
+value to return a created BFD to the next contained element.  NULL
+is returned when there are no more.
+Note - if you want to process the bfd returned by this call be
+sure to call bfd_check_format() on it first.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/archures.texi ./bfd/doc/archures.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/archures.texi	2018-01-02 02:04:53.000000000 +0000
+++ ./bfd/doc/archures.texi	2018-01-09 02:06:19.000000000 +0000
@@ -37,40 +37,40 @@ enum bfd_architecture
 @{
   bfd_arch_unknown,   /* File arch not known.  */
   bfd_arch_obscure,   /* Arch known, not one of these.  */
-  bfd_arch_m68k,      /* Motorola 68xxx */
-#define bfd_mach_m68000 1
-#define bfd_mach_m68008 2
-#define bfd_mach_m68010 3
-#define bfd_mach_m68020 4
-#define bfd_mach_m68030 5
-#define bfd_mach_m68040 6
-#define bfd_mach_m68060 7
-#define bfd_mach_cpu32  8
-#define bfd_mach_fido   9
-#define bfd_mach_mcf_isa_a_nodiv 10
-#define bfd_mach_mcf_isa_a 11
-#define bfd_mach_mcf_isa_a_mac 12
-#define bfd_mach_mcf_isa_a_emac 13
-#define bfd_mach_mcf_isa_aplus 14
-#define bfd_mach_mcf_isa_aplus_mac 15
-#define bfd_mach_mcf_isa_aplus_emac 16
-#define bfd_mach_mcf_isa_b_nousp 17
-#define bfd_mach_mcf_isa_b_nousp_mac 18
-#define bfd_mach_mcf_isa_b_nousp_emac 19
-#define bfd_mach_mcf_isa_b 20
-#define bfd_mach_mcf_isa_b_mac 21
-#define bfd_mach_mcf_isa_b_emac 22
-#define bfd_mach_mcf_isa_b_float 23
-#define bfd_mach_mcf_isa_b_float_mac 24
-#define bfd_mach_mcf_isa_b_float_emac 25
-#define bfd_mach_mcf_isa_c 26
-#define bfd_mach_mcf_isa_c_mac 27
-#define bfd_mach_mcf_isa_c_emac 28
-#define bfd_mach_mcf_isa_c_nodiv 29
-#define bfd_mach_mcf_isa_c_nodiv_mac 30
-#define bfd_mach_mcf_isa_c_nodiv_emac 31
-  bfd_arch_vax,       /* DEC Vax */
-  bfd_arch_i960,      /* Intel 960 */
+  bfd_arch_m68k,      /* Motorola 68xxx.  */
+#define bfd_mach_m68000                1
+#define bfd_mach_m68008                2
+#define bfd_mach_m68010                3
+#define bfd_mach_m68020                4
+#define bfd_mach_m68030                5
+#define bfd_mach_m68040                6
+#define bfd_mach_m68060                7
+#define bfd_mach_cpu32                 8
+#define bfd_mach_fido                  9
+#define bfd_mach_mcf_isa_a_nodiv       10
+#define bfd_mach_mcf_isa_a             11
+#define bfd_mach_mcf_isa_a_mac         12
+#define bfd_mach_mcf_isa_a_emac        13
+#define bfd_mach_mcf_isa_aplus         14
+#define bfd_mach_mcf_isa_aplus_mac     15
+#define bfd_mach_mcf_isa_aplus_emac    16
+#define bfd_mach_mcf_isa_b_nousp       17
+#define bfd_mach_mcf_isa_b_nousp_mac   18
+#define bfd_mach_mcf_isa_b_nousp_emac  19
+#define bfd_mach_mcf_isa_b             20
+#define bfd_mach_mcf_isa_b_mac         21
+#define bfd_mach_mcf_isa_b_emac        22
+#define bfd_mach_mcf_isa_b_float       23
+#define bfd_mach_mcf_isa_b_float_mac   24
+#define bfd_mach_mcf_isa_b_float_emac  25
+#define bfd_mach_mcf_isa_c             26
+#define bfd_mach_mcf_isa_c_mac         27
+#define bfd_mach_mcf_isa_c_emac        28
+#define bfd_mach_mcf_isa_c_nodiv       29
+#define bfd_mach_mcf_isa_c_nodiv_mac   30
+#define bfd_mach_mcf_isa_c_nodiv_emac  31
+  bfd_arch_vax,       /* DEC Vax.  */
+  bfd_arch_i960,      /* Intel 960.  */
     /* The order of the following is important.
        lower number indicates a machine type that
        only accepts a subset of the instructions
@@ -79,20 +79,20 @@ enum bfd_architecture
        incompatible with all other machines except
        "core".  */
 
-#define bfd_mach_i960_core      1
-#define bfd_mach_i960_ka_sa     2
-#define bfd_mach_i960_kb_sb     3
-#define bfd_mach_i960_mc        4
-#define bfd_mach_i960_xa        5
-#define bfd_mach_i960_ca        6
-#define bfd_mach_i960_jx        7
-#define bfd_mach_i960_hx        8
-
-  bfd_arch_or1k,      /* OpenRISC 1000 */
-#define bfd_mach_or1k           1
-#define bfd_mach_or1knd         2
+#define bfd_mach_i960_core     1
+#define bfd_mach_i960_ka_sa    2
+#define bfd_mach_i960_kb_sb    3
+#define bfd_mach_i960_mc       4
+#define bfd_mach_i960_xa       5
+#define bfd_mach_i960_ca       6
+#define bfd_mach_i960_jx       7
+#define bfd_mach_i960_hx       8
+
+  bfd_arch_or1k,      /* OpenRISC 1000.  */
+#define bfd_mach_or1k          1
+#define bfd_mach_or1knd        2
 
-  bfd_arch_sparc,     /* SPARC */
+  bfd_arch_sparc,     /* SPARC.  */
 #define bfd_mach_sparc                 1
 /* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
 #define bfd_mach_sparc_sparclet        2
@@ -114,9 +114,11 @@ enum bfd_architecture
 #define bfd_mach_sparc_v9v             18 /* with OSA2011 and T4 and IMA and FJMAU add'ns.  */
 #define bfd_mach_sparc_v8plusm         19 /* with OSA2015 and M7 add'ns.  */
 #define bfd_mach_sparc_v9m             20 /* with OSA2015 and M7 add'ns.  */
+#define bfd_mach_sparc_v8plusm8        21 /* with OSA2017 and M8 add'ns.  */
+#define bfd_mach_sparc_v9m8            22 /* with OSA2017 and M8 add'ns.  */
 /* Nonzero if MACH has the v9 instruction set.  */
 #define bfd_mach_sparc_v9_p(mach) \
-  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m \
+  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m8 \
    && (mach) != bfd_mach_sparc_sparclite_le)
 /* Nonzero if MACH is a 64 bit sparc architecture.  */
 #define bfd_mach_sparc_64bit_p(mach) \
@@ -126,10 +128,11 @@ enum bfd_architecture
    && (mach) != bfd_mach_sparc_v8plusd \
    && (mach) != bfd_mach_sparc_v8pluse \
    && (mach) != bfd_mach_sparc_v8plusv \
-   && (mach) != bfd_mach_sparc_v8plusm)
-  bfd_arch_spu,       /* PowerPC SPU */
+   && (mach) != bfd_mach_sparc_v8plusm \
+   && (mach) != bfd_mach_sparc_v8plusm8)
+  bfd_arch_spu,       /* PowerPC SPU.  */
 #define bfd_mach_spu           256
-  bfd_arch_mips,      /* MIPS Rxxxx */
+  bfd_arch_mips,      /* MIPS Rxxxx.  */
 #define bfd_mach_mips3000              3000
 #define bfd_mach_mips3900              3900
 #define bfd_mach_mips4000              4000
@@ -158,12 +161,13 @@ enum bfd_architecture
 #define bfd_mach_mips_loongson_2e      3001
 #define bfd_mach_mips_loongson_2f      3002
 #define bfd_mach_mips_loongson_3a      3003
-#define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */
+#define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01.  */
 #define bfd_mach_mips_octeon           6501
 #define bfd_mach_mips_octeonp          6601
 #define bfd_mach_mips_octeon2          6502
 #define bfd_mach_mips_octeon3          6503
-#define bfd_mach_mips_xlr              887682   /* decimal 'XLR'  */
+#define bfd_mach_mips_xlr              887682   /* decimal 'XLR'.  */
+#define bfd_mach_mips_interaptiv_mr2   736550   /* decimal 'IA2'.  */
 #define bfd_mach_mipsisa32             32
 #define bfd_mach_mipsisa32r2           33
 #define bfd_mach_mipsisa32r3           34
@@ -175,7 +179,7 @@ enum bfd_architecture
 #define bfd_mach_mipsisa64r5           68
 #define bfd_mach_mipsisa64r6           69
 #define bfd_mach_mips_micromips        96
-  bfd_arch_i386,      /* Intel 386 */
+  bfd_arch_i386,      /* Intel 386.  */
 #define bfd_mach_i386_intel_syntax     (1 << 0)
 #define bfd_mach_i386_i8086            (1 << 1)
 #define bfd_mach_i386_i386             (1 << 2)
@@ -184,40 +188,40 @@ enum bfd_architecture
 #define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax)
 #define bfd_mach_x86_64_intel_syntax   (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax)
 #define bfd_mach_x64_32_intel_syntax   (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax)
-  bfd_arch_l1om,   /* Intel L1OM */
+  bfd_arch_l1om,      /* Intel L1OM.  */
 #define bfd_mach_l1om                  (1 << 5)
 #define bfd_mach_l1om_intel_syntax     (bfd_mach_l1om | bfd_mach_i386_intel_syntax)
-  bfd_arch_k1om,   /* Intel K1OM */
+  bfd_arch_k1om,      /* Intel K1OM.  */
 #define bfd_mach_k1om                  (1 << 6)
 #define bfd_mach_k1om_intel_syntax     (bfd_mach_k1om | bfd_mach_i386_intel_syntax)
 #define bfd_mach_i386_nacl             (1 << 7)
 #define bfd_mach_i386_i386_nacl        (bfd_mach_i386_i386 | bfd_mach_i386_nacl)
 #define bfd_mach_x86_64_nacl           (bfd_mach_x86_64 | bfd_mach_i386_nacl)
 #define bfd_mach_x64_32_nacl           (bfd_mach_x64_32 | bfd_mach_i386_nacl)
-  bfd_arch_iamcu,   /* Intel MCU */
+  bfd_arch_iamcu,     /* Intel MCU.  */
 #define bfd_mach_iamcu                 (1 << 8)
 #define bfd_mach_i386_iamcu            (bfd_mach_i386_i386 | bfd_mach_iamcu)
 #define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax)
-  bfd_arch_we32k,     /* AT&T WE32xxx */
-  bfd_arch_tahoe,     /* CCI/Harris Tahoe */
-  bfd_arch_i860,      /* Intel 860 */
-  bfd_arch_i370,      /* IBM 360/370 Mainframes */
-  bfd_arch_romp,      /* IBM ROMP PC/RT */
-  bfd_arch_convex,    /* Convex */
-  bfd_arch_m88k,      /* Motorola 88xxx */
-  bfd_arch_m98k,      /* Motorola 98xxx */
-  bfd_arch_pyramid,   /* Pyramid Technology */
-  bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300) */
-#define bfd_mach_h8300    1
-#define bfd_mach_h8300h   2
-#define bfd_mach_h8300s   3
-#define bfd_mach_h8300hn  4
-#define bfd_mach_h8300sn  5
-#define bfd_mach_h8300sx  6
-#define bfd_mach_h8300sxn 7
-  bfd_arch_pdp11,     /* DEC PDP-11 */
+  bfd_arch_we32k,     /* AT&T WE32xxx.  */
+  bfd_arch_tahoe,     /* CCI/Harris Tahoe.  */
+  bfd_arch_i860,      /* Intel 860.  */
+  bfd_arch_i370,      /* IBM 360/370 Mainframes.  */
+  bfd_arch_romp,      /* IBM ROMP PC/RT.  */
+  bfd_arch_convex,    /* Convex.  */
+  bfd_arch_m88k,      /* Motorola 88xxx.  */
+  bfd_arch_m98k,      /* Motorola 98xxx.  */
+  bfd_arch_pyramid,   /* Pyramid Technology.  */
+  bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300).  */
+#define bfd_mach_h8300         1
+#define bfd_mach_h8300h        2
+#define bfd_mach_h8300s        3
+#define bfd_mach_h8300hn       4
+#define bfd_mach_h8300sn       5
+#define bfd_mach_h8300sx       6
+#define bfd_mach_h8300sxn      7
+  bfd_arch_pdp11,     /* DEC PDP-11.  */
   bfd_arch_plugin,
-  bfd_arch_powerpc,   /* PowerPC */
+  bfd_arch_powerpc,   /* PowerPC.  */
 #define bfd_mach_ppc           32
 #define bfd_mach_ppc64         64
 #define bfd_mach_ppc_403       403
@@ -244,59 +248,59 @@ enum bfd_architecture
 #define bfd_mach_ppc_e6500     5007
 #define bfd_mach_ppc_titan     83
 #define bfd_mach_ppc_vle       84
-  bfd_arch_rs6000,    /* IBM RS/6000 */
+  bfd_arch_rs6000,    /* IBM RS/6000.  */
 #define bfd_mach_rs6k          6000
 #define bfd_mach_rs6k_rs1      6001
 #define bfd_mach_rs6k_rsc      6003
 #define bfd_mach_rs6k_rs2      6002
-  bfd_arch_hppa,      /* HP PA RISC */
+  bfd_arch_hppa,      /* HP PA RISC.  */
 #define bfd_mach_hppa10        10
 #define bfd_mach_hppa11        11
 #define bfd_mach_hppa20        20
 #define bfd_mach_hppa20w       25
-  bfd_arch_d10v,      /* Mitsubishi D10V */
+  bfd_arch_d10v,      /* Mitsubishi D10V.  */
 #define bfd_mach_d10v          1
 #define bfd_mach_d10v_ts2      2
 #define bfd_mach_d10v_ts3      3
-  bfd_arch_d30v,      /* Mitsubishi D30V */
-  bfd_arch_dlx,       /* DLX */
-  bfd_arch_m68hc11,   /* Motorola 68HC11 */
-  bfd_arch_m68hc12,   /* Motorola 68HC12 */
+  bfd_arch_d30v,      /* Mitsubishi D30V.  */
+  bfd_arch_dlx,       /* DLX.  */
+  bfd_arch_m68hc11,   /* Motorola 68HC11.  */
+  bfd_arch_m68hc12,   /* Motorola 68HC12.  */
 #define bfd_mach_m6812_default 0
 #define bfd_mach_m6812         1
 #define bfd_mach_m6812s        2
-  bfd_arch_m9s12x,   /* Freescale S12X */
-  bfd_arch_m9s12xg,  /* Freescale XGATE */
-  bfd_arch_z8k,       /* Zilog Z8000 */
+  bfd_arch_m9s12x,    /* Freescale S12X.  */
+  bfd_arch_m9s12xg,   /* Freescale XGATE.  */
+  bfd_arch_z8k,       /* Zilog Z8000.  */
 #define bfd_mach_z8001         1
 #define bfd_mach_z8002         2
-  bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500) */
-  bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH) */
-#define bfd_mach_sh            1
-#define bfd_mach_sh2        0x20
-#define bfd_mach_sh_dsp     0x2d
-#define bfd_mach_sh2a       0x2a
-#define bfd_mach_sh2a_nofpu 0x2b
+  bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500).  */
+  bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH).  */
+#define bfd_mach_sh                            1
+#define bfd_mach_sh2                           0x20
+#define bfd_mach_sh_dsp                        0x2d
+#define bfd_mach_sh2a                          0x2a
+#define bfd_mach_sh2a_nofpu                    0x2b
 #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
-#define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
-#define bfd_mach_sh2a_or_sh4  0x2a3
-#define bfd_mach_sh2a_or_sh3e 0x2a4
-#define bfd_mach_sh2e       0x2e
-#define bfd_mach_sh3        0x30
-#define bfd_mach_sh3_nommu  0x31
-#define bfd_mach_sh3_dsp    0x3d
-#define bfd_mach_sh3e       0x3e
-#define bfd_mach_sh4        0x40
-#define bfd_mach_sh4_nofpu  0x41
-#define bfd_mach_sh4_nommu_nofpu  0x42
-#define bfd_mach_sh4a       0x4a
-#define bfd_mach_sh4a_nofpu 0x4b
-#define bfd_mach_sh4al_dsp  0x4d
-#define bfd_mach_sh5        0x50
-  bfd_arch_alpha,     /* Dec Alpha */
-#define bfd_mach_alpha_ev4  0x10
-#define bfd_mach_alpha_ev5  0x20
-#define bfd_mach_alpha_ev6  0x30
+#define bfd_mach_sh2a_nofpu_or_sh3_nommu       0x2a2
+#define bfd_mach_sh2a_or_sh4                   0x2a3
+#define bfd_mach_sh2a_or_sh3e                  0x2a4
+#define bfd_mach_sh2e                          0x2e
+#define bfd_mach_sh3                           0x30
+#define bfd_mach_sh3_nommu                     0x31
+#define bfd_mach_sh3_dsp                       0x3d
+#define bfd_mach_sh3e                          0x3e
+#define bfd_mach_sh4                           0x40
+#define bfd_mach_sh4_nofpu                     0x41
+#define bfd_mach_sh4_nommu_nofpu               0x42
+#define bfd_mach_sh4a                          0x4a
+#define bfd_mach_sh4a_nofpu                    0x4b
+#define bfd_mach_sh4al_dsp                     0x4d
+#define bfd_mach_sh5                           0x50
+  bfd_arch_alpha,     /* Dec Alpha.  */
+#define bfd_mach_alpha_ev4     0x10
+#define bfd_mach_alpha_ev5     0x20
+#define bfd_mach_alpha_ev6     0x30
   bfd_arch_arm,       /* Advanced Risc Machines ARM.  */
 #define bfd_mach_arm_unknown   0
 #define bfd_mach_arm_2         1
@@ -312,46 +316,46 @@ enum bfd_architecture
 #define bfd_mach_arm_ep9312    11
 #define bfd_mach_arm_iWMMXt    12
 #define bfd_mach_arm_iWMMXt2   13
-  bfd_arch_nds32,     /* Andes NDS32 */
+  bfd_arch_nds32,     /* Andes NDS32.  */
 #define bfd_mach_n1            1
 #define bfd_mach_n1h           2
 #define bfd_mach_n1h_v2        3
 #define bfd_mach_n1h_v3        4
 #define bfd_mach_n1h_v3m       5
-  bfd_arch_ns32k,     /* National Semiconductors ns32000 */
-  bfd_arch_w65,       /* WDC 65816 */
-  bfd_arch_tic30,     /* Texas Instruments TMS320C30 */
-  bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X */
+  bfd_arch_ns32k,     /* National Semiconductors ns32000.  */
+  bfd_arch_w65,       /* WDC 65816.  */
+  bfd_arch_tic30,     /* Texas Instruments TMS320C30.  */
+  bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X.  */
 #define bfd_mach_tic3x         30
 #define bfd_mach_tic4x         40
-  bfd_arch_tic54x,    /* Texas Instruments TMS320C54X */
-  bfd_arch_tic6x,     /* Texas Instruments TMS320C6X */
-  bfd_arch_tic80,     /* TI TMS320c80 (MVP) */
-  bfd_arch_v850,      /* NEC V850 */
-  bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI) */
+  bfd_arch_tic54x,    /* Texas Instruments TMS320C54X.  */
+  bfd_arch_tic6x,     /* Texas Instruments TMS320C6X.  */
+  bfd_arch_tic80,     /* TI TMS320c80 (MVP).  */
+  bfd_arch_v850,      /* NEC V850.  */
+  bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI).  */
 #define bfd_mach_v850          1
 #define bfd_mach_v850e         'E'
 #define bfd_mach_v850e1        '1'
 #define bfd_mach_v850e2        0x4532
 #define bfd_mach_v850e2v3      0x45325633
-#define bfd_mach_v850e3v5      0x45335635 /* ('E'|'3'|'V'|'5') */
-  bfd_arch_arc,       /* ARC Cores */
+#define bfd_mach_v850e3v5      0x45335635 /* ('E'|'3'|'V'|'5').  */
+  bfd_arch_arc,       /* ARC Cores.  */
 #define bfd_mach_arc_a4        0
 #define bfd_mach_arc_a5        1
 #define bfd_mach_arc_arc600    2
 #define bfd_mach_arc_arc601    4
 #define bfd_mach_arc_arc700    3
 #define bfd_mach_arc_arcv2     5
- bfd_arch_m32c,     /* Renesas M16C/M32C.  */
-#define bfd_mach_m16c        0x75
-#define bfd_mach_m32c        0x78
-  bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D) */
+ bfd_arch_m32c,       /* Renesas M16C/M32C.  */
+#define bfd_mach_m16c          0x75
+#define bfd_mach_m32c          0x78
+  bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D).  */
 #define bfd_mach_m32r          1 /* For backwards compatibility.  */
 #define bfd_mach_m32rx         'x'
 #define bfd_mach_m32r2         '2'
-  bfd_arch_mn10200,   /* Matsushita MN10200 */
-  bfd_arch_mn10300,   /* Matsushita MN10300 */
-#define bfd_mach_mn10300               300
+  bfd_arch_mn10200,   /* Matsushita MN10200.  */
+  bfd_arch_mn10300,   /* Matsushita MN10300.  */
+#define bfd_mach_mn10300       300
 #define bfd_mach_am33          330
 #define bfd_mach_am33_2        332
   bfd_arch_fr30,
@@ -362,13 +366,14 @@ enum bfd_architecture
 #define bfd_mach_fr300         300
 #define bfd_mach_fr400         400
 #define bfd_mach_fr450         450
-#define bfd_mach_frvtomcat     499     /* fr500 prototype */
+#define bfd_mach_frvtomcat     499     /* fr500 prototype.  */
 #define bfd_mach_fr500         500
 #define bfd_mach_fr550         550
-  bfd_arch_moxie,       /* The moxie processor */
+  bfd_arch_moxie,     /* The moxie processor.  */
 #define bfd_mach_moxie         1
-  bfd_arch_ft32,       /* The ft32 processor */
+  bfd_arch_ft32,      /* The ft32 processor.  */
 #define bfd_mach_ft32          1
+#define bfd_mach_ft32b         2
   bfd_arch_mcore,
   bfd_arch_mep,
 #define bfd_mach_mep           1
@@ -376,7 +381,7 @@ enum bfd_architecture
 #define bfd_mach_mep_c5        0x6335
   bfd_arch_metag,
 #define bfd_mach_metag         1
-  bfd_arch_ia64,      /* HP/Intel ia64 */
+  bfd_arch_ia64,      /* HP/Intel ia64.  */
 #define bfd_mach_ia64_elf64    64
 #define bfd_mach_ia64_elf32    32
   bfd_arch_ip2k,      /* Ubicom IP2K microcontrollers. */
@@ -385,7 +390,7 @@ enum bfd_architecture
  bfd_arch_iq2000,     /* Vitesse IQ2000.  */
 #define bfd_mach_iq2000        1
 #define bfd_mach_iq10          2
-  bfd_arch_epiphany,   /* Adapteva EPIPHANY */
+  bfd_arch_epiphany,  /* Adapteva EPIPHANY.  */
 #define bfd_mach_epiphany16    1
 #define bfd_mach_epiphany32    2
   bfd_arch_mt,
@@ -404,23 +409,23 @@ enum bfd_architecture
 #define bfd_mach_avr5          5
 #define bfd_mach_avr51         51
 #define bfd_mach_avr6          6
-#define bfd_mach_avrtiny   100
-#define bfd_mach_avrxmega1 101
-#define bfd_mach_avrxmega2 102
-#define bfd_mach_avrxmega3 103
-#define bfd_mach_avrxmega4 104
-#define bfd_mach_avrxmega5 105
-#define bfd_mach_avrxmega6 106
-#define bfd_mach_avrxmega7 107
-  bfd_arch_bfin,        /* ADI Blackfin */
+#define bfd_mach_avrtiny       100
+#define bfd_mach_avrxmega1     101
+#define bfd_mach_avrxmega2     102
+#define bfd_mach_avrxmega3     103
+#define bfd_mach_avrxmega4     104
+#define bfd_mach_avrxmega5     105
+#define bfd_mach_avrxmega6     106
+#define bfd_mach_avrxmega7     107
+  bfd_arch_bfin,      /* ADI Blackfin.  */
 #define bfd_mach_bfin          1
-  bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
+  bfd_arch_cr16,      /* National Semiconductor CompactRISC (ie CR16).  */
 #define bfd_mach_cr16          1
-  bfd_arch_cr16c,       /* National Semiconductor CompactRISC. */
+  bfd_arch_cr16c,     /* National Semiconductor CompactRISC.  */
 #define bfd_mach_cr16c         1
   bfd_arch_crx,       /*  National Semiconductor CRX.  */
 #define bfd_mach_crx           1
-  bfd_arch_cris,      /* Axis CRIS */
+  bfd_arch_cris,      /* Axis CRIS.  */
 #define bfd_mach_cris_v0_v10   255
 #define bfd_mach_cris_v32      32
 #define bfd_mach_cris_v10_v32  1032
@@ -428,77 +433,77 @@ enum bfd_architecture
 #define bfd_mach_riscv32       132
 #define bfd_mach_riscv64       164
   bfd_arch_rl78,
-#define bfd_mach_rl78  0x75
+#define bfd_mach_rl78          0x75
   bfd_arch_rx,        /* Renesas RX.  */
 #define bfd_mach_rx            0x75
-  bfd_arch_s390,      /* IBM s390 */
+  bfd_arch_s390,      /* IBM s390.  */
 #define bfd_mach_s390_31       31
 #define bfd_mach_s390_64       64
-  bfd_arch_score,     /* Sunplus score */
-#define bfd_mach_score3         3
-#define bfd_mach_score7         7
+  bfd_arch_score,     /* Sunplus score.  */
+#define bfd_mach_score3        3
+#define bfd_mach_score7        7
   bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
   bfd_arch_xstormy16,
 #define bfd_mach_xstormy16     1
   bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
-#define bfd_mach_msp11          11
-#define bfd_mach_msp110         110
-#define bfd_mach_msp12          12
-#define bfd_mach_msp13          13
-#define bfd_mach_msp14          14
-#define bfd_mach_msp15          15
-#define bfd_mach_msp16          16
-#define bfd_mach_msp20          20
-#define bfd_mach_msp21          21
-#define bfd_mach_msp22          22
-#define bfd_mach_msp23          23
-#define bfd_mach_msp24          24
-#define bfd_mach_msp26          26
-#define bfd_mach_msp31          31
-#define bfd_mach_msp32          32
-#define bfd_mach_msp33          33
-#define bfd_mach_msp41          41
-#define bfd_mach_msp42          42
-#define bfd_mach_msp43          43
-#define bfd_mach_msp44          44
-#define bfd_mach_msp430x        45
-#define bfd_mach_msp46          46
-#define bfd_mach_msp47          47
-#define bfd_mach_msp54          54
-  bfd_arch_xc16x,     /* Infineon's XC16X Series.               */
+#define bfd_mach_msp11         11
+#define bfd_mach_msp110        110
+#define bfd_mach_msp12         12
+#define bfd_mach_msp13         13
+#define bfd_mach_msp14         14
+#define bfd_mach_msp15         15
+#define bfd_mach_msp16         16
+#define bfd_mach_msp20         20
+#define bfd_mach_msp21         21
+#define bfd_mach_msp22         22
+#define bfd_mach_msp23         23
+#define bfd_mach_msp24         24
+#define bfd_mach_msp26         26
+#define bfd_mach_msp31         31
+#define bfd_mach_msp32         32
+#define bfd_mach_msp33         33
+#define bfd_mach_msp41         41
+#define bfd_mach_msp42         42
+#define bfd_mach_msp43         43
+#define bfd_mach_msp44         44
+#define bfd_mach_msp430x       45
+#define bfd_mach_msp46         46
+#define bfd_mach_msp47         47
+#define bfd_mach_msp54         54
+  bfd_arch_xc16x,     /* Infineon's XC16X Series.  */
 #define bfd_mach_xc16x         1
 #define bfd_mach_xc16xl        2
 #define bfd_mach_xc16xs        3
-  bfd_arch_xgate,   /* Freescale XGATE */
+  bfd_arch_xgate,     /* Freescale XGATE.  */
 #define bfd_mach_xgate         1
   bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
 #define bfd_mach_xtensa        1
   bfd_arch_z80,
-#define bfd_mach_z80strict      1 /* No undocumented opcodes.  */
-#define bfd_mach_z80            3 /* With ixl, ixh, iyl, and iyh.  */
-#define bfd_mach_z80full        7 /* All undocumented instructions.  */
-#define bfd_mach_r800           11 /* R800: successor with multiplication.  */
-  bfd_arch_lm32,      /* Lattice Mico32 */
-#define bfd_mach_lm32      1
-  bfd_arch_microblaze,/* Xilinx MicroBlaze. */
-  bfd_arch_tilepro,   /* Tilera TILEPro */
-  bfd_arch_tilegx, /* Tilera TILE-Gx */
-#define bfd_mach_tilepro   1
-#define bfd_mach_tilegx    1
-#define bfd_mach_tilegx32  2
-  bfd_arch_aarch64,   /* AArch64  */
+#define bfd_mach_z80strict     1 /* No undocumented opcodes.  */
+#define bfd_mach_z80           3 /* With ixl, ixh, iyl, and iyh.  */
+#define bfd_mach_z80full       7 /* All undocumented instructions.  */
+#define bfd_mach_r800          11 /* R800: successor with multiplication.  */
+  bfd_arch_lm32,      /* Lattice Mico32.  */
+#define bfd_mach_lm32          1
+  bfd_arch_microblaze,/* Xilinx MicroBlaze.  */
+  bfd_arch_tilepro,   /* Tilera TILEPro.  */
+  bfd_arch_tilegx,    /* Tilera TILE-Gx.  */
+#define bfd_mach_tilepro       1
+#define bfd_mach_tilegx        1
+#define bfd_mach_tilegx32      2
+  bfd_arch_aarch64,   /* AArch64.  */
 #define bfd_mach_aarch64 0
 #define bfd_mach_aarch64_ilp32 32
-  bfd_arch_nios2,      /* Nios II */
+  bfd_arch_nios2,     /* Nios II.  */
 #define bfd_mach_nios2         0
 #define bfd_mach_nios2r1       1
 #define bfd_mach_nios2r2       2
-  bfd_arch_visium,     /* Visium */
+  bfd_arch_visium,    /* Visium.  */
 #define bfd_mach_visium        1
-  bfd_arch_wasm32,     /* WebAssembly */
+  bfd_arch_wasm32,    /* WebAssembly.  */
 #define bfd_mach_wasm32        1
-  bfd_arch_pru,        /* PRU */
-#define bfd_mach_pru   0
+  bfd_arch_pru,       /* PRU.  */
+#define bfd_mach_pru           0
   bfd_arch_last
   @};
 @end example
@@ -525,8 +530,8 @@ typedef struct bfd_arch_info
      The default arch should be the first entry for an arch so that
      all the entries for that arch can be accessed via @code{next}.  */
   bfd_boolean the_default;
-  const struct bfd_arch_info * (*compatible)
-    (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
+  const struct bfd_arch_info * (*compatible) (const struct bfd_arch_info *,
+                                              const struct bfd_arch_info *);
 
   bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/bfd.info ./bfd/doc/bfd.info
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/bfd.info	2018-01-02 02:05:00.000000000 +0000
+++ ./bfd/doc/bfd.info	2018-01-09 02:06:26.000000000 +0000
@@ -2,7 +2,7 @@ This is bfd.info, produced by makeinfo v
 
 This file documents the BFD library.
 
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -394,59 +394,59 @@ major data about the file and pointers t
           the object_flags values have mostly just been copied from backend
           to another, and are not necessarily correct).  */
 
-     #define BFD_NO_FLAGS   0x00
+     #define BFD_NO_FLAGS                0x0
 
        /* BFD contains relocation entries.  */
-     #define HAS_RELOC      0x01
+     #define HAS_RELOC                   0x1
 
        /* BFD is directly executable.  */
-     #define EXEC_P         0x02
+     #define EXEC_P                      0x2
 
        /* BFD has line number information (basically used for F_LNNO in a
           COFF header).  */
-     #define HAS_LINENO     0x04
+     #define HAS_LINENO                  0x4
 
        /* BFD has debugging information.  */
-     #define HAS_DEBUG      0x08
+     #define HAS_DEBUG                  0x08
 
        /* BFD has symbols.  */
-     #define HAS_SYMS       0x10
+     #define HAS_SYMS                   0x10
 
        /* BFD has local symbols (basically used for F_LSYMS in a COFF
           header).  */
-     #define HAS_LOCALS     0x20
+     #define HAS_LOCALS                 0x20
 
        /* BFD is a dynamic object.  */
-     #define DYNAMIC        0x40
+     #define DYNAMIC                    0x40
 
        /* Text section is write protected (if D_PAGED is not set, this is
           like an a.out NMAGIC file) (the linker sets this by default, but
           clears it for -r or -N).  */
-     #define WP_TEXT        0x80
+     #define WP_TEXT                    0x80
 
        /* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
           linker sets this by default, but clears it for -r or -n or -N).  */
-     #define D_PAGED        0x100
+     #define D_PAGED                   0x100
 
        /* BFD is relaxable (this means that bfd_relax_section may be able to
           do something) (sometimes bfd_relax_section can do something even if
           this is not set).  */
-     #define BFD_IS_RELAXABLE 0x200
+     #define BFD_IS_RELAXABLE          0x200
 
        /* This may be set before writing out a BFD to request using a
           traditional format.  For example, this is used to request that when
           writing out an a.out object the symbols not be hashed to eliminate
           duplicates.  */
-     #define BFD_TRADITIONAL_FORMAT 0x400
+     #define BFD_TRADITIONAL_FORMAT    0x400
 
        /* This flag indicates that the BFD contents are actually cached
           in memory.  If this is set, iostream points to a bfd_in_memory
           struct.  */
-     #define BFD_IN_MEMORY 0x800
+     #define BFD_IN_MEMORY             0x800
 
        /* This BFD has been created by the linker and doesn't correspond
           to any input file.  */
-     #define BFD_LINKER_CREATED 0x1000
+     #define BFD_LINKER_CREATED       0x1000
 
        /* This may be set before writing out a BFD to request that it
           be written using values for UIDs, GIDs, timestamps, etc. that
@@ -454,23 +454,23 @@ major data about the file and pointers t
      #define BFD_DETERMINISTIC_OUTPUT 0x2000
 
        /* Compress sections in this BFD.  */
-     #define BFD_COMPRESS 0x4000
+     #define BFD_COMPRESS             0x4000
 
        /* Decompress sections in this BFD.  */
-     #define BFD_DECOMPRESS 0x8000
+     #define BFD_DECOMPRESS           0x8000
 
        /* BFD is a dummy, for plugins.  */
-     #define BFD_PLUGIN 0x10000
+     #define BFD_PLUGIN              0x10000
 
        /* Compress sections in this BFD with SHF_COMPRESSED from gABI.  */
-     #define BFD_COMPRESS_GABI 0x20000
+     #define BFD_COMPRESS_GABI       0x20000
 
        /* Convert ELF common symbol type to STT_COMMON or STT_OBJECT in this
           BFD.  */
-     #define BFD_CONVERT_ELF_COMMON 0x40000
+     #define BFD_CONVERT_ELF_COMMON  0x40000
 
        /* Use the ELF STT_COMMON type in this BFD.  */
-     #define BFD_USE_ELF_STT_COMMON 0x80000
+     #define BFD_USE_ELF_STT_COMMON  0x80000
 
        /* Flags bits to be saved in bfd_preserve_save.  */
      #define BFD_FLAGS_SAVED \
@@ -719,13 +719,24 @@ Return the current BFD error condition.
 .......................
 
 *Synopsis*
-     void bfd_set_error (bfd_error_type error_tag, ...);
+     void bfd_set_error (bfd_error_type error_tag);
    *Description*
-Set the BFD error condition to be ERROR_TAG.  If ERROR_TAG is
-bfd_error_on_input, then this function takes two more parameters, the
-input bfd where the error occurred, and the bfd_error_type error.
+Set the BFD error condition to be ERROR_TAG.
 
-2.2.1.3 'bfd_errmsg'
+   ERROR_TAG must not be bfd_error_on_input.  Use bfd_set_input_error
+for input errors instead.
+
+2.2.1.3 'bfd_set_input_error'
+.............................
+
+*Synopsis*
+     void bfd_set_input_error (bfd *input, bfd_error_type error_tag);
+   *Description*
+Set the BFD error condition to be bfd_error_on_input.  INPUT is the
+input bfd where the error occurred, and ERROR_TAG the bfd_error_type
+error.
+
+2.2.1.4 'bfd_errmsg'
 ....................
 
 *Synopsis*
@@ -734,7 +745,7 @@ input bfd where the error occurred, and 
 Return a string describing the error ERROR_TAG, or the system error if
 ERROR_TAG is 'bfd_error_system_call'.
 
-2.2.1.4 'bfd_perror'
+2.2.1.5 'bfd_perror'
 ....................
 
 *Synopsis*
@@ -845,6 +856,8 @@ Returns the number of relocs, or -1 on e
    *Description*
 Set the relocation pointer and count within section SEC to the values
 REL and COUNT.  The argument ABFD is ignored.
+     #define bfd_set_reloc(abfd, asect, location, count) \
+            BFD_SEND (abfd, _bfd_set_reloc, (abfd, asect, location, count))
 
 2.3.1.4 'bfd_set_file_flags'
 ............................
@@ -957,8 +970,8 @@ error.  Possible error returns are:
    * 'bfd_error_no_memory' - Not enough memory exists to create private
      data for OBFD.
      #define bfd_copy_private_header_data(ibfd, obfd) \
-          BFD_SEND (obfd, _bfd_copy_private_header_data, \
-                    (ibfd, obfd))
+            BFD_SEND (obfd, _bfd_copy_private_header_data, \
+                      (ibfd, obfd))
 
 2.3.1.12 'bfd_copy_private_bfd_data'
 ....................................
@@ -972,8 +985,8 @@ Return 'TRUE' on success, 'FALSE' on err
    * 'bfd_error_no_memory' - Not enough memory exists to create private
      data for OBFD.
      #define bfd_copy_private_bfd_data(ibfd, obfd) \
-          BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
-                    (ibfd, obfd))
+            BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
+                      (ibfd, obfd))
 
 2.3.1.13 'bfd_set_private_flags'
 ................................
@@ -987,7 +1000,7 @@ success, 'FALSE' on error.  Possible err
    * 'bfd_error_no_memory' - Not enough memory exists to create private
      data for OBFD.
      #define bfd_set_private_flags(abfd, flags) \
-          BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
+            BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
 
 2.3.1.14 'Other functions'
 ..........................
@@ -1002,7 +1015,7 @@ The following functions exist but have n
                       (abfd, syms, sec, off, file, func, line, NULL))
 
      #define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \
-                                                 line, disc) \
+                                                line, disc) \
             BFD_SEND (abfd, _bfd_find_nearest_line, \
                       (abfd, syms, sec, off, file, func, line, disc))
 
@@ -1232,7 +1245,7 @@ is assumed that the instance implements 
           if an error occurs.  */
        file_ptr (*btell) (struct bfd *abfd);
        /* For the following, on successful completion a value of 0 is returned.
-          Otherwise, a value of -1 is returned (and  bfd_error is set).  */
+          Otherwise, a value of -1 is returned (and bfd_error is set).  */
        int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
        int (*bclose) (struct bfd *abfd);
        int (*bflush) (struct bfd *abfd);
@@ -1262,7 +1275,7 @@ the archive header for archive members).
 .......................
 
 *Synopsis*
-     file_ptr bfd_get_size (bfd *abfd);
+     ufile_ptr bfd_get_size (bfd *abfd);
    *Description*
 Return the file size (as read from file system) for the file associated
 with BFD ABFD.
@@ -1286,7 +1299,16 @@ memory exhausted" error when it tries to
 space for the 15 bazillon byte table it is about to read.  This function
 at least allows us to answer the question, "is the size reasonable?".
 
-2.3.1.29 'bfd_mmap'
+2.3.1.29 'bfd_get_file_size'
+............................
+
+*Synopsis*
+     ufile_ptr bfd_get_file_size (bfd *abfd);
+   *Description*
+Return the file size (as read from file system) for the file associated
+with BFD ABFD.  It supports both normal files and archive elements.
+
+2.3.1.30 'bfd_mmap'
 ...................
 
 *Synopsis*
@@ -1485,31 +1507,31 @@ Here is the section structure:
           synthesized from other information.  */
        flagword flags;
 
-     #define SEC_NO_FLAGS   0x000
+     #define SEC_NO_FLAGS                      0x0
 
        /* Tells the OS to allocate space for this section when loading.
           This is clear for a section containing debug information only.  */
-     #define SEC_ALLOC      0x001
+     #define SEC_ALLOC                         0x1
 
        /* Tells the OS to load the section from the file when loading.
           This is clear for a .bss section.  */
-     #define SEC_LOAD       0x002
+     #define SEC_LOAD                          0x2
 
        /* The section contains data still to be relocated, so there is
           some relocation information too.  */
-     #define SEC_RELOC      0x004
+     #define SEC_RELOC                         0x4
 
        /* A signal to the OS that the section contains read only data.  */
-     #define SEC_READONLY   0x008
+     #define SEC_READONLY                      0x8
 
        /* The section contains code only.  */
-     #define SEC_CODE       0x010
+     #define SEC_CODE                         0x10
 
        /* The section contains data only.  */
-     #define SEC_DATA       0x020
+     #define SEC_DATA                         0x20
 
        /* The section will reside in ROM.  */
-     #define SEC_ROM        0x040
+     #define SEC_ROM                          0x40
 
        /* The section contains constructor information. This section
           type is used by the linker to create lists of constructors and
@@ -1521,19 +1543,19 @@ Here is the section structure:
           sections called __CTOR_LIST__ and relocate the data
           contained within - exactly the operations it would peform on
           standard data.  */
-     #define SEC_CONSTRUCTOR 0x080
+     #define SEC_CONSTRUCTOR                  0x80
 
        /* The section has contents - a data section could be
           SEC_ALLOC | SEC_HAS_CONTENTS; a debug section could be
           SEC_HAS_CONTENTS  */
-     #define SEC_HAS_CONTENTS 0x100
+     #define SEC_HAS_CONTENTS                0x100
 
        /* An instruction to the linker to not output the section
           even if it has information which would normally be written.  */
-     #define SEC_NEVER_LOAD 0x200
+     #define SEC_NEVER_LOAD                  0x200
 
        /* The section contains thread local data.  */
-     #define SEC_THREAD_LOCAL 0x400
+     #define SEC_THREAD_LOCAL                0x400
 
        /* The section has GOT references.  This flag is only for the
           linker, and is currently only used by the elf32-hppa back end.
@@ -1541,55 +1563,55 @@ Here is the section structure:
           in this section, which indicate to the linker that the section
           contains PIC code, and must be handled specially when doing a
           static link.  */
-     #define SEC_HAS_GOT_REF 0x800
+     #define SEC_HAS_GOT_REF                 0x800
 
        /* The section contains common symbols (symbols may be defined
           multiple times, the value of a symbol is the amount of
           space it requires, and the largest symbol value is the one
           used).  Most targets have exactly one of these (which we
           translate to bfd_com_section_ptr), but ECOFF has two.  */
-     #define SEC_IS_COMMON 0x1000
+     #define SEC_IS_COMMON                  0x1000
 
        /* The section contains only debugging information.  For
           example, this is set for ELF .debug and .stab sections.
           strip tests this flag to see if a section can be
           discarded.  */
-     #define SEC_DEBUGGING 0x2000
+     #define SEC_DEBUGGING                  0x2000
 
        /* The contents of this section are held in memory pointed to
           by the contents field.  This is checked by bfd_get_section_contents,
           and the data is retrieved from memory if appropriate.  */
-     #define SEC_IN_MEMORY 0x4000
+     #define SEC_IN_MEMORY                  0x4000
 
        /* The contents of this section are to be excluded by the
           linker for executable and shared objects unless those
           objects are to be further relocated.  */
-     #define SEC_EXCLUDE 0x8000
+     #define SEC_EXCLUDE                    0x8000
 
        /* The contents of this section are to be sorted based on the sum of
           the symbol and addend values specified by the associated relocation
           entries.  Entries without associated relocation entries will be
           appended to the end of the section in an unspecified order.  */
-     #define SEC_SORT_ENTRIES 0x10000
+     #define SEC_SORT_ENTRIES              0x10000
 
        /* When linking, duplicate sections of the same name should be
           discarded, rather than being combined into a single section as
           is usually done.  This is similar to how common symbols are
           handled.  See SEC_LINK_DUPLICATES below.  */
-     #define SEC_LINK_ONCE 0x20000
+     #define SEC_LINK_ONCE                 0x20000
 
        /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
           should handle duplicate sections.  */
-     #define SEC_LINK_DUPLICATES 0xc0000
+     #define SEC_LINK_DUPLICATES           0xc0000
 
        /* This value for SEC_LINK_DUPLICATES means that duplicate
           sections with the same name should simply be discarded.  */
-     #define SEC_LINK_DUPLICATES_DISCARD 0x0
+     #define SEC_LINK_DUPLICATES_DISCARD       0x0
 
        /* This value for SEC_LINK_DUPLICATES means that the linker
           should warn if there are any duplicate sections, although
           it should still only link one copy.  */
-     #define SEC_LINK_DUPLICATES_ONE_ONLY 0x40000
+     #define SEC_LINK_DUPLICATES_ONE_ONLY  0x40000
 
        /* This value for SEC_LINK_DUPLICATES means that the linker
           should warn if any duplicate sections are a different size.  */
@@ -1605,28 +1627,28 @@ Here is the section structure:
           relocation or other arcane processing.  It is skipped when
           going through the first-pass output, trusting that someone
           else up the line will take care of it later.  */
-     #define SEC_LINKER_CREATED 0x100000
+     #define SEC_LINKER_CREATED           0x100000
 
        /* This section should not be subject to garbage collection.
           Also set to inform the linker that this section should not be
           listed in the link map as discarded.  */
-     #define SEC_KEEP 0x200000
+     #define SEC_KEEP                     0x200000
 
        /* This section contains "short" data, and should be placed
           "near" the GP.  */
-     #define SEC_SMALL_DATA 0x400000
+     #define SEC_SMALL_DATA               0x400000
 
        /* Attempt to merge identical entities in the section.
           Entity size is given in the entsize field.  */
-     #define SEC_MERGE 0x800000
+     #define SEC_MERGE                    0x800000
 
        /* If given with SEC_MERGE, entities to merge are zero terminated
           strings where entsize specifies character size instead of fixed
           size entries.  */
-     #define SEC_STRINGS 0x1000000
+     #define SEC_STRINGS                 0x1000000
 
        /* This section contains data about section groups.  */
-     #define SEC_GROUP 0x2000000
+     #define SEC_GROUP                   0x2000000
 
        /* The section is a COFF shared library section.  This flag is
           only for the linker.  If this type of section appears in
@@ -1637,46 +1659,46 @@ Here is the section structure:
           might be cleaner to have some more general mechanism to
           allow the back end to control what the linker does with
           sections.  */
-     #define SEC_COFF_SHARED_LIBRARY 0x4000000
+     #define SEC_COFF_SHARED_LIBRARY     0x4000000
 
        /* This input section should be copied to output in reverse order
           as an array of pointers.  This is for ELF linker internal use
           only.  */
-     #define SEC_ELF_REVERSE_COPY 0x4000000
+     #define SEC_ELF_REVERSE_COPY        0x4000000
 
        /* This section contains data which may be shared with other
           executables or shared objects. This is for COFF only.  */
-     #define SEC_COFF_SHARED 0x8000000
+     #define SEC_COFF_SHARED             0x8000000
 
        /* This section should be compressed.  This is for ELF linker
           internal use only.  */
-     #define SEC_ELF_COMPRESS 0x8000000
+     #define SEC_ELF_COMPRESS            0x8000000
 
        /* When a section with this flag is being linked, then if the size of
           the input section is less than a page, it should not cross a page
           boundary.  If the size of the input section is one page or more,
           it should be aligned on a page boundary.  This is for TI
           TMS320C54X only.  */
-     #define SEC_TIC54X_BLOCK 0x10000000
+     #define SEC_TIC54X_BLOCK           0x10000000
 
        /* This section should be renamed.  This is for ELF linker
           internal use only.  */
-     #define SEC_ELF_RENAME 0x10000000
+     #define SEC_ELF_RENAME             0x10000000
 
        /* Conditionally link this section; do not link if there are no
           references found to any symbol in the section.  This is for TI
           TMS320C54X only.  */
-     #define SEC_TIC54X_CLINK 0x20000000
+     #define SEC_TIC54X_CLINK           0x20000000
 
        /* This section contains vliw code.  This is for Toshiba MeP only.  */
-     #define SEC_MEP_VLIW 0x20000000
+     #define SEC_MEP_VLIW               0x20000000
 
        /* Indicate that section has the no read flag set. This happens
           when memory read flag isn't set. */
-     #define SEC_COFF_NOREAD 0x40000000
+     #define SEC_COFF_NOREAD            0x40000000
 
        /* Indicate that section has the purecode flag set.  */
-     #define SEC_ELF_PURECODE 0x80000000
+     #define SEC_ELF_PURECODE           0x80000000
 
        /*  End of section flags.  */
 
@@ -1874,7 +1896,8 @@ Here is the section structure:
         would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
         compilers will complain about comma expressions that have no effect.  */
      static inline bfd_boolean
-     bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val)
+     bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
+                               void * val)
      {
        ptr->userdata = val;
        return TRUE;
@@ -1889,7 +1912,8 @@ Here is the section structure:
      }
 
      static inline bfd_boolean
-     bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val)
+     bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
+                                unsigned int val)
      {
        ptr->alignment_power = val;
        return TRUE;
@@ -2052,6 +2076,18 @@ Here is the section structure:
           { NULL }, { NULL }                                                \
          }
 
+     /* We use a macro to initialize the static asymbol structures because
+        traditional C does not permit us to initialize a union member while
+        gcc warns if we don't initialize it.
+        the_bfd, name, value, attr, section [, udata]  */
+     #ifdef __STDC__
+     #define GLOBAL_SYM_INIT(NAME, SECTION) \
+       { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }}
+     #else
+     #define GLOBAL_SYM_INIT(NAME, SECTION) \
+       { 0, NAME, 0, BSF_SECTION_SYM, SECTION }
+     #endif
+
 
 
 File: bfd.info,  Node: section prototypes,  Prev: typedef asection,  Up: Sections
@@ -2355,8 +2391,8 @@ error.  Possible error returns are:
    * 'bfd_error_no_memory' - Not enough memory exists to create private
      data for OSEC.
      #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
-          BFD_SEND (obfd, _bfd_copy_private_section_data, \
-                    (ibfd, isection, obfd, osection))
+            BFD_SEND (obfd, _bfd_copy_private_section_data, \
+                      (ibfd, isection, obfd, osection))
 
 2.6.5.22 'bfd_generic_is_group_section'
 .......................................
@@ -2548,98 +2584,98 @@ An 'asymbol' has the form:
        symvalue value;
 
        /* Attributes of a symbol.  */
-     #define BSF_NO_FLAGS           0x00
+     #define BSF_NO_FLAGS            0
 
        /* The symbol has local scope; static in C. The value
           is the offset into the section of the data.  */
-     #define BSF_LOCAL              (1 << 0)
+     #define BSF_LOCAL               (1 << 0)
 
        /* The symbol has global scope; initialized data in C. The
           value is the offset into the section of the data.  */
-     #define BSF_GLOBAL             (1 << 1)
+     #define BSF_GLOBAL              (1 << 1)
 
        /* The symbol has global scope and is exported. The value is
           the offset into the section of the data.  */
-     #define BSF_EXPORT     BSF_GLOBAL /* No real difference.  */
+     #define BSF_EXPORT              BSF_GLOBAL /* No real difference.  */
 
        /* A normal C symbol would be one of:
           BSF_LOCAL, BSF_UNDEFINED or BSF_GLOBAL.  */
 
        /* The symbol is a debugging record. The value has an arbitrary
           meaning, unless BSF_DEBUGGING_RELOC is also set.  */
-     #define BSF_DEBUGGING          (1 << 2)
+     #define BSF_DEBUGGING           (1 << 2)
 
        /* The symbol denotes a function entry point.  Used in ELF,
           perhaps others someday.  */
-     #define BSF_FUNCTION           (1 << 3)
+     #define BSF_FUNCTION            (1 << 3)
 
        /* Used by the linker.  */
-     #define BSF_KEEP               (1 << 5)
+     #define BSF_KEEP                (1 << 5)
 
        /* An ELF common symbol.  */
-     #define BSF_ELF_COMMON         (1 << 6)
+     #define BSF_ELF_COMMON          (1 << 6)
 
        /* A weak global symbol, overridable without warnings by
           a regular global symbol of the same name.  */
-     #define BSF_WEAK               (1 << 7)
+     #define BSF_WEAK                (1 << 7)
 
        /* This symbol was created to point to a section, e.g. ELF's
           STT_SECTION symbols.  */
-     #define BSF_SECTION_SYM        (1 << 8)
+     #define BSF_SECTION_SYM         (1 << 8)
 
        /* The symbol used to be a common symbol, but now it is
           allocated.  */
-     #define BSF_OLD_COMMON         (1 << 9)
+     #define BSF_OLD_COMMON          (1 << 9)
 
        /* In some files the type of a symbol sometimes alters its
           location in an output file - ie in coff a ISFCN symbol
           which is also C_EXT symbol appears where it was
           declared and not at the end of a section.  This bit is set
           by the target BFD part to convey this information.  */
-     #define BSF_NOT_AT_END         (1 << 10)
+     #define BSF_NOT_AT_END          (1 << 10)
 
        /* Signal that the symbol is the label of constructor section.  */
-     #define BSF_CONSTRUCTOR        (1 << 11)
+     #define BSF_CONSTRUCTOR         (1 << 11)
 
        /* Signal that the symbol is a warning symbol.  The name is a
           warning.  The name of the next symbol is the one to warn about;
           if a reference is made to a symbol with the same name as the next
           symbol, a warning is issued by the linker.  */
-     #define BSF_WARNING            (1 << 12)
+     #define BSF_WARNING             (1 << 12)
 
        /* Signal that the symbol is indirect.  This symbol is an indirect
           pointer to the symbol with the same name as the next symbol.  */
-     #define BSF_INDIRECT           (1 << 13)
+     #define BSF_INDIRECT            (1 << 13)
 
        /* BSF_FILE marks symbols that contain a file name.  This is used
           for ELF STT_FILE symbols.  */
-     #define BSF_FILE               (1 << 14)
+     #define BSF_FILE                (1 << 14)
 
        /* Symbol is from dynamic linking information.  */
-     #define BSF_DYNAMIC            (1 << 15)
+     #define BSF_DYNAMIC             (1 << 15)
 
        /* The symbol denotes a data object.  Used in ELF, and perhaps
           others someday.  */
-     #define BSF_OBJECT             (1 << 16)
+     #define BSF_OBJECT              (1 << 16)
 
        /* This symbol is a debugging symbol.  The value is the offset
           into the section of the data.  BSF_DEBUGGING should be set
           as well.  */
-     #define BSF_DEBUGGING_RELOC    (1 << 17)
+     #define BSF_DEBUGGING_RELOC     (1 << 17)
 
        /* This symbol is thread local.  Used in ELF.  */
-     #define BSF_THREAD_LOCAL       (1 << 18)
+     #define BSF_THREAD_LOCAL        (1 << 18)
 
        /* This symbol represents a complex relocation expression,
           with the expression tree serialized in the symbol name.  */
-     #define BSF_RELC               (1 << 19)
+     #define BSF_RELC                (1 << 19)
 
        /* This symbol represents a signed complex relocation expression,
           with the expression tree serialized in the symbol name.  */
-     #define BSF_SRELC              (1 << 20)
+     #define BSF_SRELC               (1 << 20)
 
        /* This symbol was created by bfd_get_synthetic_symtab.  */
-     #define BSF_SYNTHETIC          (1 << 21)
+     #define BSF_SYNTHETIC           (1 << 21)
 
        /* This symbol is an indirect code object.  Unrelated to BSF_INDIRECT.
           The dynamic linker will compute the value of this symbol by
@@ -2649,7 +2685,7 @@ An 'asymbol' has the form:
        /* This symbol is a globally unique data object.  The dynamic linker
           will make sure that in the entire process there is just one symbol
           with this name and type in use.  BSF_OBJECT must also be set.  */
-     #define BSF_GNU_UNIQUE         (1 << 23)
+     #define BSF_GNU_UNIQUE          (1 << 23)
 
        flagword flags;
 
@@ -2684,7 +2720,7 @@ Return the number of bytes required to s
 NULL pointer.  If there are no symbols in the BFD, then return 0.  If an
 error occurs, return -1.
      #define bfd_get_symtab_upper_bound(abfd) \
-          BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
+            BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
 
 
 2.7.5.2 'bfd_is_local_label'
@@ -2706,7 +2742,7 @@ Return TRUE if a symbol with the name NA
 generated local label, else return FALSE. This just checks whether the
 name has the form of a local label.
      #define bfd_is_local_label_name(abfd, name) \
-       BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
+            BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
 
 
 2.7.5.4 'bfd_is_target_special_symbol'
@@ -2719,7 +2755,7 @@ Return TRUE iff a symbol SYM in the BFD 
 particular target represented by the BFD. Such symbols should normally
 not be mentioned to the user.
      #define bfd_is_target_special_symbol(abfd, sym) \
-       BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
+            BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
 
 
 2.7.5.5 'bfd_canonicalize_symtab'
@@ -2730,7 +2766,7 @@ Read the symbols from the BFD ABFD, and 
 with pointers to the symbols and a trailing NULL. Return the actual
 number of symbol pointers, not including the NULL.
      #define bfd_canonicalize_symtab(abfd, location) \
-       BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
+            BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
 
 
 2.7.5.6 'bfd_set_symtab'
@@ -2763,7 +2799,7 @@ information surrounding the 'asymbol'.  
 pointing to it will not create the private information, and will cause
 problems later on.
      #define bfd_make_empty_symbol(abfd) \
-       BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
+            BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
 
 
 2.7.5.9 '_bfd_generic_make_empty_symbol'
@@ -2783,7 +2819,7 @@ where no private info is needed.
 Create a new 'asymbol' structure for the BFD ABFD, to be used as a
 debugging symbol.  Further details of its use have yet to be worked out.
      #define bfd_make_debug_symbol(abfd,ptr,size) \
-       BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
+            BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
 
 
 2.7.5.11 'bfd_decode_symclass'
@@ -2830,8 +2866,8 @@ Possible error returns are:
    * 'bfd_error_no_memory' - Not enough memory exists to create private
      data for OSEC.
      #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
-       BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
-                 (ibfd, isymbol, obfd, osymbol))
+            BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
+                      (ibfd, isymbol, obfd, osymbol))
 
 
 
@@ -2928,7 +2964,8 @@ Provided a BFD, ARCHIVE, containing an a
 BFD on the first contained element and returns that.  Subsequent calls
 should pass the archive and the previous return value to return a
 created BFD to the next contained element.  NULL is returned when there
-are no more.
+are no more.  Note - if you want to process the bfd returned by this
+call be sure to call bfd_check_format() on it first.
 
 
 File: bfd.info,  Node: Formats,  Next: Relocations,  Prev: Archives,  Up: BFD front end
@@ -3052,8 +3089,9 @@ This is the structure of a relocation en
 
      typedef enum bfd_reloc_status
      {
-       /* No errors detected.  */
-       bfd_reloc_ok,
+       /* No errors detected.  Note - the value 2 is used so that it
+          will not be mistaken for the boolean TRUE or FALSE values.  */
+       bfd_reloc_ok = 2,
 
        /* The relocation was performed, but there was an overflow.  */
        bfd_reloc_overflow,
@@ -3357,19 +3395,19 @@ This is used to fill in an empty howto e
 
    *Description*
 Helper routine to turn a symbol into a relocation value.
-     #define HOWTO_PREPARE(relocation, symbol)               \
-       {                                                     \
-         if (symbol != NULL)                                 \
-           {                                                 \
-             if (bfd_is_com_section (symbol->section))       \
-               {                                             \
-                 relocation = 0;                             \
-               }                                             \
-             else                                            \
-               {                                             \
-                 relocation = symbol->value;                 \
-               }                                             \
-           }                                                 \
+     #define HOWTO_PREPARE(relocation, symbol)              \
+       {                                                    \
+         if (symbol != NULL)                                \
+           {                                                \
+             if (bfd_is_com_section (symbol->section))      \
+               {                                            \
+                 relocation = 0;                            \
+               }                                            \
+             else                                           \
+               {                                            \
+                 relocation = symbol->value;                \
+               }                                            \
+           }                                                \
        }
 
 
@@ -3411,7 +3449,20 @@ bits and will be shifted right by RIGHTS
 addresses containing ADDRSIZE significant bits.  The result is either of
 'bfd_reloc_ok' or 'bfd_reloc_overflow'.
 
-2.10.1.7 'bfd_perform_relocation'
+2.10.1.7 'bfd_reloc_offset_in_range'
+....................................
+
+*Synopsis*
+     bfd_boolean bfd_reloc_offset_in_range
+        (reloc_howto_type *howto,
+         bfd *abfd,
+         asection *section,
+         bfd_size_type offset);
+   *Description*
+Returns TRUE if the reloc described by HOWTO can be applied at OFFSET
+octets in SECTION.
+
+2.10.1.8 'bfd_perform_relocation'
 .................................
 
 *Synopsis*
@@ -3436,7 +3487,7 @@ reloc types with addends were invented t
 ERROR_MESSAGE argument is set to an error message if this return
 'bfd_reloc_dangerous'.
 
-2.10.1.8 'bfd_install_relocation'
+2.10.1.9 'bfd_install_relocation'
 .................................
 
 *Synopsis*
@@ -3891,6 +3942,11 @@ attributes.
  -- : BFD_RELOC_FT32_20
  -- : BFD_RELOC_FT32_17
  -- : BFD_RELOC_FT32_18
+ -- : BFD_RELOC_FT32_RELAX
+ -- : BFD_RELOC_FT32_SC0
+ -- : BFD_RELOC_FT32_SC1
+ -- : BFD_RELOC_FT32_15
+ -- : BFD_RELOC_FT32_DIFF32
      FT32 ELF relocations.
  -- : BFD_RELOC_FRV_LABEL16
  -- : BFD_RELOC_FRV_LABEL24
@@ -4498,6 +4554,7 @@ attributes.
  -- : BFD_RELOC_ARC_S25W_PCREL_PLT
  -- : BFD_RELOC_ARC_S21H_PCREL_PLT
  -- : BFD_RELOC_ARC_NPS_CMEM16
+ -- : BFD_RELOC_ARC_JLI_SECTOFF
      ARC relocs.
  -- : BFD_RELOC_BFIN_16_IMM
      ADI Blackfin 16 bit immediate absolute reloc.
@@ -5268,6 +5325,7 @@ attributes.
  -- : BFD_RELOC_RISCV_SET8
  -- : BFD_RELOC_RISCV_SET16
  -- : BFD_RELOC_RISCV_SET32
+ -- : BFD_RELOC_RISCV_32_PCREL
      RISC-V relocations.
  -- : BFD_RELOC_RL78_NEG8
  -- : BFD_RELOC_RL78_NEG16
@@ -6297,11 +6355,11 @@ attributes.
  -- : BFD_RELOC_AARCH64_LD64_GOT_LO12_NC
      Unsigned 12 bit byte offset for 64 bit load/store from the page of
      the GOT entry for this symbol.  Used in conjunction with
-     BFD_RELOC_AARCH64_ADR_GOTPAGE. Valid in LP64 ABI only.
+     BFD_RELOC_AARCH64_ADR_GOT_PAGE. Valid in LP64 ABI only.
  -- : BFD_RELOC_AARCH64_LD32_GOT_LO12_NC
      Unsigned 12 bit byte offset for 32 bit load/store from the page of
      the GOT entry for this symbol.  Used in conjunction with
-     BFD_RELOC_AARCH64_ADR_GOTPAGE. Valid in ILP32 ABI only.
+     BFD_RELOC_AARCH64_ADR_GOT_PAGE. Valid in ILP32 ABI only.
  -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC
      Unsigned 16 bit byte offset for 64 bit load/store from the GOT
      entry for this symbol.  Valid in LP64 ABI only.
@@ -6796,6 +6854,31 @@ which don't have SEC_MERGE support - i.e
 Provides default handling of relocation effort for back ends which can't
 be bothered to do it efficiently.
 
+2.10.2.10 '_bfd_generic_set_reloc'
+..................................
+
+*Synopsis*
+     void _bfd_generic_set_reloc
+        (bfd *abfd,
+         sec_ptr section,
+         arelent **relptr,
+         unsigned int count);
+   *Description*
+Installs a new set of internal relocations in SECTION.
+
+2.10.2.11 '_bfd_unrecognized_reloc'
+...................................
+
+*Synopsis*
+     bfd_boolean _bfd_unrecognized_reloc
+        (bfd * abfd,
+         sec_ptr section,
+         unsigned int r_type);
+   *Description*
+Reports an unrecognized reloc.  Written as a function in order to reduce
+code duplication.  Returns FALSE so that it can be called from a return
+statement.
+
 
 File: bfd.info,  Node: Core Files,  Next: Targets,  Prev: Relocations,  Up: BFD front end
 
@@ -7063,7 +7146,8 @@ both!
           within the target vector structure, one for each format to check.  */
 
        /* Check the format of a file being read.  Return a bfd_target * or zero.  */
-       const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
+       const struct bfd_target *
+                   (*_bfd_check_format[bfd_type_end]) (bfd *);
 
        /* Set the format of a file being written.  */
        bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
@@ -7089,10 +7173,11 @@ BFD_JUMP_TABLE macros.
        /* Called when a new section is created.  */
        bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
        /* Read the contents of a section.  */
-       bfd_boolean (*_bfd_get_section_contents)
-         (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
-       bfd_boolean (*_bfd_get_section_contents_in_window)
-         (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
+       bfd_boolean (*_bfd_get_section_contents) (bfd *, sec_ptr, void *, file_ptr,
+                                                 bfd_size_type);
+       bfd_boolean (*_bfd_get_section_contents_in_window) (bfd *, sec_ptr,
+                                                           bfd_window *, file_ptr,
+                                                           bfd_size_type);
 
        /* Entry points to copy private data.  */
      #define BFD_JUMP_TABLE_COPY(NAME) \
@@ -7114,21 +7199,22 @@ BFD_JUMP_TABLE macros.
        /* Called to initialize BFD private section data from one object file
           to another.  */
      #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
-       BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
-       bfd_boolean (*_bfd_init_private_section_data)
-         (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
+            BFD_SEND (obfd, _bfd_init_private_section_data, \
+                      (ibfd, isec, obfd, osec, link_info))
+       bfd_boolean (*_bfd_init_private_section_data) (bfd *, sec_ptr, bfd *,
+                                                      sec_ptr,
+                                                      struct bfd_link_info *);
        /* Called to copy BFD private section data from one object file
           to another.  */
-       bfd_boolean (*_bfd_copy_private_section_data)
-         (bfd *, sec_ptr, bfd *, sec_ptr);
+       bfd_boolean (*_bfd_copy_private_section_data) (bfd *, sec_ptr, bfd *,
+                                                      sec_ptr);
        /* Called to copy BFD private symbol data from one symbol
           to another.  */
-       bfd_boolean (*_bfd_copy_private_symbol_data)
-         (bfd *, asymbol *, bfd *, asymbol *);
+       bfd_boolean (*_bfd_copy_private_symbol_data) (bfd *, asymbol *, bfd *,
+                                                     asymbol *);
        /* Called to copy BFD private header data from one object file
           to another.  */
-       bfd_boolean (*_bfd_copy_private_header_data)
-         (bfd *, bfd *);
+       bfd_boolean (*_bfd_copy_private_header_data) (bfd *, bfd *);
        /* Called to set private backend flags.  */
        bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
 
@@ -7163,15 +7249,17 @@ BFD_JUMP_TABLE macros.
 
        bfd_boolean (*_bfd_slurp_armap) (bfd *);
        bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
-       bfd_boolean (*_bfd_construct_extended_name_table)
-         (bfd *, char **, bfd_size_type *, const char **);
+       bfd_boolean (*_bfd_construct_extended_name_table) (bfd *, char **,
+                                                          bfd_size_type *,
+                                                          const char **);
        void        (*_bfd_truncate_arname) (bfd *, const char *, char *);
-       bfd_boolean (*write_armap)
-         (bfd *, unsigned int, struct orl *, unsigned int, int);
+       bfd_boolean (*write_armap) (bfd *, unsigned int, struct orl *,
+                                   unsigned int, int);
        void *      (*_bfd_read_ar_hdr_fn) (bfd *);
        bfd_boolean (*_bfd_write_ar_hdr_fn) (bfd *, bfd *);
        bfd *       (*openr_next_archived_file) (bfd *, bfd *);
-     #define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
+     #define bfd_get_elt_at_index(b,i) \
+            BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
        bfd *       (*_bfd_get_elt_at_index) (bfd *, symindex);
        int         (*_bfd_stat_arch_elt) (bfd *, struct stat *);
        bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
@@ -7195,70 +7283,73 @@ BFD_JUMP_TABLE macros.
        NAME##_minisymbol_to_symbol
 
        long        (*_bfd_get_symtab_upper_bound) (bfd *);
-       long        (*_bfd_canonicalize_symtab)
-         (bfd *, struct bfd_symbol **);
+       long        (*_bfd_canonicalize_symtab) (bfd *, struct bfd_symbol **);
        struct bfd_symbol *
                    (*_bfd_make_empty_symbol) (bfd *);
-       void        (*_bfd_print_symbol)
-         (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
-     #define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
-       void        (*_bfd_get_symbol_info)
-         (bfd *, struct bfd_symbol *, symbol_info *);
-     #define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
-       const char *(*_bfd_get_symbol_version_string)
-         (bfd *, struct bfd_symbol *, bfd_boolean *);
-     #define bfd_get_symbol_version_string(b,s,h) BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h))
+       void        (*_bfd_print_symbol) (bfd *, void *, struct bfd_symbol *,
+                                         bfd_print_symbol_type);
+     #define bfd_print_symbol(b,p,s,e) \
+            BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
+       void        (*_bfd_get_symbol_info) (bfd *, struct bfd_symbol *,
+                                            symbol_info *);
+     #define bfd_get_symbol_info(b,p,e) \
+            BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
+       const char *(*_bfd_get_symbol_version_string) (bfd *, struct bfd_symbol *,
+                                                      bfd_boolean *);
+     #define bfd_get_symbol_version_string(b,s,h) \
+            BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h))
        bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
        bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
        alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
-       bfd_boolean (*_bfd_find_nearest_line)
-         (bfd *, struct bfd_symbol **, struct bfd_section *, bfd_vma,
-          const char **, const char **, unsigned int *, unsigned int *);
-       bfd_boolean (*_bfd_find_line)
-         (bfd *, struct bfd_symbol **, struct bfd_symbol *,
-          const char **, unsigned int *);
+       bfd_boolean (*_bfd_find_nearest_line) (bfd *, struct bfd_symbol **,
+                                              struct bfd_section *, bfd_vma,
+                                              const char **, const char **,
+                                              unsigned int *, unsigned int *);
+       bfd_boolean (*_bfd_find_line) (bfd *, struct bfd_symbol **,
+                                      struct bfd_symbol *, const char **,
+                                      unsigned int *);
        bfd_boolean (*_bfd_find_inliner_info)
          (bfd *, const char **, const char **, unsigned int *);
       /* Back-door to allow format-aware applications to create debug symbols
          while using BFD for everything else.  Currently used by the assembler
          when creating COFF files.  */
-       asymbol *   (*_bfd_make_debug_symbol)
-         (bfd *, void *, unsigned long size);
+       asymbol *   (*_bfd_make_debug_symbol) (bfd *, void *, unsigned long size);
      #define bfd_read_minisymbols(b, d, m, s) \
-       BFD_SEND (b, _read_minisymbols, (b, d, m, s))
-       long        (*_read_minisymbols)
-         (bfd *, bfd_boolean, void **, unsigned int *);
+            BFD_SEND (b, _read_minisymbols, (b, d, m, s))
+       long        (*_read_minisymbols) (bfd *, bfd_boolean, void **,
+                                         unsigned int *);
      #define bfd_minisymbol_to_symbol(b, d, m, f) \
-       BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
-       asymbol *   (*_minisymbol_to_symbol)
-         (bfd *, bfd_boolean, const void *, asymbol *);
+            BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
+       asymbol *   (*_minisymbol_to_symbol) (bfd *, bfd_boolean, const void *,
+                                             asymbol *);
 
        /* Routines for relocs.  */
      #define BFD_JUMP_TABLE_RELOCS(NAME) \
        NAME##_get_reloc_upper_bound, \
        NAME##_canonicalize_reloc, \
+       NAME##_set_reloc, \
        NAME##_bfd_reloc_type_lookup, \
        NAME##_bfd_reloc_name_lookup
 
        long        (*_get_reloc_upper_bound) (bfd *, sec_ptr);
-       long        (*_bfd_canonicalize_reloc)
-         (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
+       long        (*_bfd_canonicalize_reloc) (bfd *, sec_ptr, arelent **,
+                                               struct bfd_symbol **);
+       void        (*_bfd_set_reloc) (bfd *, sec_ptr, arelent **, unsigned int);
        /* See documentation on reloc types.  */
        reloc_howto_type *
                    (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
        reloc_howto_type *
                    (*reloc_name_lookup) (bfd *, const char *);
 
-
        /* Routines used when writing an object file.  */
      #define BFD_JUMP_TABLE_WRITE(NAME) \
        NAME##_set_arch_mach, \
        NAME##_set_section_contents
 
-       bfd_boolean (*_bfd_set_arch_mach)
-         (bfd *, enum bfd_architecture, unsigned long);
-       bfd_boolean (*_bfd_set_section_contents)
-         (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
+       bfd_boolean (*_bfd_set_arch_mach) (bfd *, enum bfd_architecture,
+                                          unsigned long);
+       bfd_boolean (*_bfd_set_section_contents) (bfd *, sec_ptr, const void *,
+                                                 file_ptr, bfd_size_type);
 
        /* Routines used by the linker.  */
      #define BFD_JUMP_TABLE_LINK(NAME) \
@@ -7278,15 +7369,18 @@ BFD_JUMP_TABLE macros.
        NAME##_bfd_is_group_section, \
        NAME##_bfd_discard_group, \
        NAME##_section_already_linked, \
-       NAME##_bfd_define_common_symbol
+       NAME##_bfd_define_common_symbol, \
+       NAME##_bfd_define_start_stop
 
        int         (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
-       bfd_byte *  (*_bfd_get_relocated_section_contents)
-         (bfd *, struct bfd_link_info *, struct bfd_link_order *,
-          bfd_byte *, bfd_boolean, struct bfd_symbol **);
+       bfd_byte *  (*_bfd_get_relocated_section_contents) (bfd *,
+                                                           struct bfd_link_info *,
+                                                           struct bfd_link_order *,
+                                                           bfd_byte *, bfd_boolean,
+                                                           struct bfd_symbol **);
 
-       bfd_boolean (*_bfd_relax_section)
-         (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
+       bfd_boolean (*_bfd_relax_section) (bfd *, struct bfd_section *,
+                                          struct bfd_link_info *, bfd_boolean *);
 
        /* Create a hash table for the linker.  Different backends store
           different information in this table.  */
@@ -7302,9 +7396,10 @@ BFD_JUMP_TABLE macros.
        /* Copy the symbol type and other attributes for a linker script
           assignment of one symbol to another.  */
      #define bfd_copy_link_hash_symbol_type(b, t, f) \
-       BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
-       void (*_bfd_copy_link_hash_symbol_type)
-         (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *);
+            BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
+       void        (*_bfd_copy_link_hash_symbol_type) (bfd *,
+                                                       struct bfd_link_hash_entry *,
+                                                       struct bfd_link_hash_entry *);
 
        /* Do a link based on the link_order structures attached to each
           section of the BFD.  */
@@ -7321,8 +7416,7 @@ BFD_JUMP_TABLE macros.
 
        /* Sets the bitmask of allowed and disallowed section flags.  */
        bfd_boolean (*_bfd_lookup_section_flags) (struct bfd_link_info *,
-                                                 struct flag_info *,
-                                                 asection *);
+                                                 struct flag_info *, asection *);
 
        /* Attempt to merge SEC_MERGE sections.  */
        bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
@@ -7342,6 +7436,11 @@ BFD_JUMP_TABLE macros.
        bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *,
                                                  struct bfd_link_hash_entry *);
 
+       /* Define a __start, __stop, .startof. or .sizeof. symbol.  */
+       struct bfd_link_hash_entry *
+                   (*_bfd_define_start_stop) (struct bfd_link_info *, const char *,
+                                              asection *);
+
        /* Routines to handle dynamic symbols and relocs.  */
      #define BFD_JUMP_TABLE_DYNAMIC(NAME) \
        NAME##_get_dynamic_symtab_upper_bound, \
@@ -7353,17 +7452,16 @@ BFD_JUMP_TABLE macros.
        /* Get the amount of memory required to hold the dynamic symbols.  */
        long        (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
        /* Read in the dynamic symbols.  */
-       long        (*_bfd_canonicalize_dynamic_symtab)
-         (bfd *, struct bfd_symbol **);
+       long        (*_bfd_canonicalize_dynamic_symtab) (bfd *, struct bfd_symbol **);
        /* Create synthetized symbols.  */
-       long        (*_bfd_get_synthetic_symtab)
-         (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
-          struct bfd_symbol **);
+       long        (*_bfd_get_synthetic_symtab) (bfd *, long, struct bfd_symbol **,
+                                                 long, struct bfd_symbol **,
+                                                 struct bfd_symbol **);
        /* Get the amount of memory required to hold the dynamic relocs.  */
        long        (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
        /* Read in the dynamic relocs.  */
-       long        (*_bfd_canonicalize_dynamic_reloc)
-         (bfd *, arelent **, struct bfd_symbol **);
+       long        (*_bfd_canonicalize_dynamic_reloc) (bfd *, arelent **,
+                                                       struct bfd_symbol **);
 
    A pointer to an alternative bfd_target in case the current one is not
 satisfactory.  This can happen when the target cpu supports both big and
@@ -7371,7 +7469,7 @@ little endian code, and target chosen by
 endianness.  The function open_output() in ld/ldlang.c uses this field
 to find an alternative output format that is suitable.
        /* Opposite endian version of this target.  */
-       const struct bfd_target * alternative_target;
+       const struct bfd_target *alternative_target;
 
        /* Data for use by back-end routines, which isn't
           generic enough to belong in this structure.  */
@@ -7502,40 +7600,40 @@ i960 KB, and 68020 and 68030 for Motorol
      {
        bfd_arch_unknown,   /* File arch not known.  */
        bfd_arch_obscure,   /* Arch known, not one of these.  */
-       bfd_arch_m68k,      /* Motorola 68xxx */
-     #define bfd_mach_m68000 1
-     #define bfd_mach_m68008 2
-     #define bfd_mach_m68010 3
-     #define bfd_mach_m68020 4
-     #define bfd_mach_m68030 5
-     #define bfd_mach_m68040 6
-     #define bfd_mach_m68060 7
-     #define bfd_mach_cpu32  8
-     #define bfd_mach_fido   9
-     #define bfd_mach_mcf_isa_a_nodiv 10
-     #define bfd_mach_mcf_isa_a 11
-     #define bfd_mach_mcf_isa_a_mac 12
-     #define bfd_mach_mcf_isa_a_emac 13
-     #define bfd_mach_mcf_isa_aplus 14
-     #define bfd_mach_mcf_isa_aplus_mac 15
-     #define bfd_mach_mcf_isa_aplus_emac 16
-     #define bfd_mach_mcf_isa_b_nousp 17
-     #define bfd_mach_mcf_isa_b_nousp_mac 18
-     #define bfd_mach_mcf_isa_b_nousp_emac 19
-     #define bfd_mach_mcf_isa_b 20
-     #define bfd_mach_mcf_isa_b_mac 21
-     #define bfd_mach_mcf_isa_b_emac 22
-     #define bfd_mach_mcf_isa_b_float 23
-     #define bfd_mach_mcf_isa_b_float_mac 24
-     #define bfd_mach_mcf_isa_b_float_emac 25
-     #define bfd_mach_mcf_isa_c 26
-     #define bfd_mach_mcf_isa_c_mac 27
-     #define bfd_mach_mcf_isa_c_emac 28
-     #define bfd_mach_mcf_isa_c_nodiv 29
-     #define bfd_mach_mcf_isa_c_nodiv_mac 30
-     #define bfd_mach_mcf_isa_c_nodiv_emac 31
-       bfd_arch_vax,       /* DEC Vax */
-       bfd_arch_i960,      /* Intel 960 */
+       bfd_arch_m68k,      /* Motorola 68xxx.  */
+     #define bfd_mach_m68000                1
+     #define bfd_mach_m68008                2
+     #define bfd_mach_m68010                3
+     #define bfd_mach_m68020                4
+     #define bfd_mach_m68030                5
+     #define bfd_mach_m68040                6
+     #define bfd_mach_m68060                7
+     #define bfd_mach_cpu32                 8
+     #define bfd_mach_fido                  9
+     #define bfd_mach_mcf_isa_a_nodiv       10
+     #define bfd_mach_mcf_isa_a             11
+     #define bfd_mach_mcf_isa_a_mac         12
+     #define bfd_mach_mcf_isa_a_emac        13
+     #define bfd_mach_mcf_isa_aplus         14
+     #define bfd_mach_mcf_isa_aplus_mac     15
+     #define bfd_mach_mcf_isa_aplus_emac    16
+     #define bfd_mach_mcf_isa_b_nousp       17
+     #define bfd_mach_mcf_isa_b_nousp_mac   18
+     #define bfd_mach_mcf_isa_b_nousp_emac  19
+     #define bfd_mach_mcf_isa_b             20
+     #define bfd_mach_mcf_isa_b_mac         21
+     #define bfd_mach_mcf_isa_b_emac        22
+     #define bfd_mach_mcf_isa_b_float       23
+     #define bfd_mach_mcf_isa_b_float_mac   24
+     #define bfd_mach_mcf_isa_b_float_emac  25
+     #define bfd_mach_mcf_isa_c             26
+     #define bfd_mach_mcf_isa_c_mac         27
+     #define bfd_mach_mcf_isa_c_emac        28
+     #define bfd_mach_mcf_isa_c_nodiv       29
+     #define bfd_mach_mcf_isa_c_nodiv_mac   30
+     #define bfd_mach_mcf_isa_c_nodiv_emac  31
+       bfd_arch_vax,       /* DEC Vax.  */
+       bfd_arch_i960,      /* Intel 960.  */
          /* The order of the following is important.
             lower number indicates a machine type that
             only accepts a subset of the instructions
@@ -7544,20 +7642,20 @@ i960 KB, and 68020 and 68030 for Motorol
             incompatible with all other machines except
             "core".  */
 
-     #define bfd_mach_i960_core      1
-     #define bfd_mach_i960_ka_sa     2
-     #define bfd_mach_i960_kb_sb     3
-     #define bfd_mach_i960_mc        4
-     #define bfd_mach_i960_xa        5
-     #define bfd_mach_i960_ca        6
-     #define bfd_mach_i960_jx        7
-     #define bfd_mach_i960_hx        8
-
-       bfd_arch_or1k,      /* OpenRISC 1000 */
-     #define bfd_mach_or1k           1
-     #define bfd_mach_or1knd         2
+     #define bfd_mach_i960_core     1
+     #define bfd_mach_i960_ka_sa    2
+     #define bfd_mach_i960_kb_sb    3
+     #define bfd_mach_i960_mc       4
+     #define bfd_mach_i960_xa       5
+     #define bfd_mach_i960_ca       6
+     #define bfd_mach_i960_jx       7
+     #define bfd_mach_i960_hx       8
+
+       bfd_arch_or1k,      /* OpenRISC 1000.  */
+     #define bfd_mach_or1k          1
+     #define bfd_mach_or1knd        2
 
-       bfd_arch_sparc,     /* SPARC */
+       bfd_arch_sparc,     /* SPARC.  */
      #define bfd_mach_sparc                 1
      /* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
      #define bfd_mach_sparc_sparclet        2
@@ -7579,9 +7677,11 @@ i960 KB, and 68020 and 68030 for Motorol
      #define bfd_mach_sparc_v9v             18 /* with OSA2011 and T4 and IMA and FJMAU add'ns.  */
      #define bfd_mach_sparc_v8plusm         19 /* with OSA2015 and M7 add'ns.  */
      #define bfd_mach_sparc_v9m             20 /* with OSA2015 and M7 add'ns.  */
+     #define bfd_mach_sparc_v8plusm8        21 /* with OSA2017 and M8 add'ns.  */
+     #define bfd_mach_sparc_v9m8            22 /* with OSA2017 and M8 add'ns.  */
      /* Nonzero if MACH has the v9 instruction set.  */
      #define bfd_mach_sparc_v9_p(mach) \
-       ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m \
+       ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m8 \
         && (mach) != bfd_mach_sparc_sparclite_le)
      /* Nonzero if MACH is a 64 bit sparc architecture.  */
      #define bfd_mach_sparc_64bit_p(mach) \
@@ -7591,10 +7691,11 @@ i960 KB, and 68020 and 68030 for Motorol
         && (mach) != bfd_mach_sparc_v8plusd \
         && (mach) != bfd_mach_sparc_v8pluse \
         && (mach) != bfd_mach_sparc_v8plusv \
-        && (mach) != bfd_mach_sparc_v8plusm)
-       bfd_arch_spu,       /* PowerPC SPU */
+        && (mach) != bfd_mach_sparc_v8plusm \
+        && (mach) != bfd_mach_sparc_v8plusm8)
+       bfd_arch_spu,       /* PowerPC SPU.  */
      #define bfd_mach_spu           256
-       bfd_arch_mips,      /* MIPS Rxxxx */
+       bfd_arch_mips,      /* MIPS Rxxxx.  */
      #define bfd_mach_mips3000              3000
      #define bfd_mach_mips3900              3900
      #define bfd_mach_mips4000              4000
@@ -7623,12 +7724,13 @@ i960 KB, and 68020 and 68030 for Motorol
      #define bfd_mach_mips_loongson_2e      3001
      #define bfd_mach_mips_loongson_2f      3002
      #define bfd_mach_mips_loongson_3a      3003
-     #define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */
+     #define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01.  */
      #define bfd_mach_mips_octeon           6501
      #define bfd_mach_mips_octeonp          6601
      #define bfd_mach_mips_octeon2          6502
      #define bfd_mach_mips_octeon3          6503
-     #define bfd_mach_mips_xlr              887682   /* decimal 'XLR'  */
+     #define bfd_mach_mips_xlr              887682   /* decimal 'XLR'.  */
+     #define bfd_mach_mips_interaptiv_mr2   736550   /* decimal 'IA2'.  */
      #define bfd_mach_mipsisa32             32
      #define bfd_mach_mipsisa32r2           33
      #define bfd_mach_mipsisa32r3           34
@@ -7640,7 +7742,7 @@ i960 KB, and 68020 and 68030 for Motorol
      #define bfd_mach_mipsisa64r5           68
      #define bfd_mach_mipsisa64r6           69
      #define bfd_mach_mips_micromips        96
-       bfd_arch_i386,      /* Intel 386 */
+       bfd_arch_i386,      /* Intel 386.  */
      #define bfd_mach_i386_intel_syntax     (1 << 0)
      #define bfd_mach_i386_i8086            (1 << 1)
      #define bfd_mach_i386_i386             (1 << 2)
@@ -7649,40 +7751,40 @@ i960 KB, and 68020 and 68030 for Motorol
      #define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax)
      #define bfd_mach_x86_64_intel_syntax   (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax)
      #define bfd_mach_x64_32_intel_syntax   (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax)
-       bfd_arch_l1om,   /* Intel L1OM */
+       bfd_arch_l1om,      /* Intel L1OM.  */
      #define bfd_mach_l1om                  (1 << 5)
      #define bfd_mach_l1om_intel_syntax     (bfd_mach_l1om | bfd_mach_i386_intel_syntax)
-       bfd_arch_k1om,   /* Intel K1OM */
+       bfd_arch_k1om,      /* Intel K1OM.  */
      #define bfd_mach_k1om                  (1 << 6)
      #define bfd_mach_k1om_intel_syntax     (bfd_mach_k1om | bfd_mach_i386_intel_syntax)
      #define bfd_mach_i386_nacl             (1 << 7)
      #define bfd_mach_i386_i386_nacl        (bfd_mach_i386_i386 | bfd_mach_i386_nacl)
      #define bfd_mach_x86_64_nacl           (bfd_mach_x86_64 | bfd_mach_i386_nacl)
      #define bfd_mach_x64_32_nacl           (bfd_mach_x64_32 | bfd_mach_i386_nacl)
-       bfd_arch_iamcu,   /* Intel MCU */
+       bfd_arch_iamcu,     /* Intel MCU.  */
      #define bfd_mach_iamcu                 (1 << 8)
      #define bfd_mach_i386_iamcu            (bfd_mach_i386_i386 | bfd_mach_iamcu)
      #define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax)
-       bfd_arch_we32k,     /* AT&T WE32xxx */
-       bfd_arch_tahoe,     /* CCI/Harris Tahoe */
-       bfd_arch_i860,      /* Intel 860 */
-       bfd_arch_i370,      /* IBM 360/370 Mainframes */
-       bfd_arch_romp,      /* IBM ROMP PC/RT */
-       bfd_arch_convex,    /* Convex */
-       bfd_arch_m88k,      /* Motorola 88xxx */
-       bfd_arch_m98k,      /* Motorola 98xxx */
-       bfd_arch_pyramid,   /* Pyramid Technology */
-       bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300) */
-     #define bfd_mach_h8300    1
-     #define bfd_mach_h8300h   2
-     #define bfd_mach_h8300s   3
-     #define bfd_mach_h8300hn  4
-     #define bfd_mach_h8300sn  5
-     #define bfd_mach_h8300sx  6
-     #define bfd_mach_h8300sxn 7
-       bfd_arch_pdp11,     /* DEC PDP-11 */
+       bfd_arch_we32k,     /* AT&T WE32xxx.  */
+       bfd_arch_tahoe,     /* CCI/Harris Tahoe.  */
+       bfd_arch_i860,      /* Intel 860.  */
+       bfd_arch_i370,      /* IBM 360/370 Mainframes.  */
+       bfd_arch_romp,      /* IBM ROMP PC/RT.  */
+       bfd_arch_convex,    /* Convex.  */
+       bfd_arch_m88k,      /* Motorola 88xxx.  */
+       bfd_arch_m98k,      /* Motorola 98xxx.  */
+       bfd_arch_pyramid,   /* Pyramid Technology.  */
+       bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300).  */
+     #define bfd_mach_h8300         1
+     #define bfd_mach_h8300h        2
+     #define bfd_mach_h8300s        3
+     #define bfd_mach_h8300hn       4
+     #define bfd_mach_h8300sn       5
+     #define bfd_mach_h8300sx       6
+     #define bfd_mach_h8300sxn      7
+       bfd_arch_pdp11,     /* DEC PDP-11.  */
        bfd_arch_plugin,
-       bfd_arch_powerpc,   /* PowerPC */
+       bfd_arch_powerpc,   /* PowerPC.  */
      #define bfd_mach_ppc           32
      #define bfd_mach_ppc64         64
      #define bfd_mach_ppc_403       403
@@ -7709,59 +7811,59 @@ i960 KB, and 68020 and 68030 for Motorol
      #define bfd_mach_ppc_e6500     5007
      #define bfd_mach_ppc_titan     83
      #define bfd_mach_ppc_vle       84
-       bfd_arch_rs6000,    /* IBM RS/6000 */
+       bfd_arch_rs6000,    /* IBM RS/6000.  */
      #define bfd_mach_rs6k          6000
      #define bfd_mach_rs6k_rs1      6001
      #define bfd_mach_rs6k_rsc      6003
      #define bfd_mach_rs6k_rs2      6002
-       bfd_arch_hppa,      /* HP PA RISC */
+       bfd_arch_hppa,      /* HP PA RISC.  */
      #define bfd_mach_hppa10        10
      #define bfd_mach_hppa11        11
      #define bfd_mach_hppa20        20
      #define bfd_mach_hppa20w       25
-       bfd_arch_d10v,      /* Mitsubishi D10V */
+       bfd_arch_d10v,      /* Mitsubishi D10V.  */
      #define bfd_mach_d10v          1
      #define bfd_mach_d10v_ts2      2
      #define bfd_mach_d10v_ts3      3
-       bfd_arch_d30v,      /* Mitsubishi D30V */
-       bfd_arch_dlx,       /* DLX */
-       bfd_arch_m68hc11,   /* Motorola 68HC11 */
-       bfd_arch_m68hc12,   /* Motorola 68HC12 */
+       bfd_arch_d30v,      /* Mitsubishi D30V.  */
+       bfd_arch_dlx,       /* DLX.  */
+       bfd_arch_m68hc11,   /* Motorola 68HC11.  */
+       bfd_arch_m68hc12,   /* Motorola 68HC12.  */
      #define bfd_mach_m6812_default 0
      #define bfd_mach_m6812         1
      #define bfd_mach_m6812s        2
-       bfd_arch_m9s12x,   /* Freescale S12X */
-       bfd_arch_m9s12xg,  /* Freescale XGATE */
-       bfd_arch_z8k,       /* Zilog Z8000 */
+       bfd_arch_m9s12x,    /* Freescale S12X.  */
+       bfd_arch_m9s12xg,   /* Freescale XGATE.  */
+       bfd_arch_z8k,       /* Zilog Z8000.  */
      #define bfd_mach_z8001         1
      #define bfd_mach_z8002         2
-       bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500) */
-       bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH) */
-     #define bfd_mach_sh            1
-     #define bfd_mach_sh2        0x20
-     #define bfd_mach_sh_dsp     0x2d
-     #define bfd_mach_sh2a       0x2a
-     #define bfd_mach_sh2a_nofpu 0x2b
+       bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500).  */
+       bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH).  */
+     #define bfd_mach_sh                            1
+     #define bfd_mach_sh2                           0x20
+     #define bfd_mach_sh_dsp                        0x2d
+     #define bfd_mach_sh2a                          0x2a
+     #define bfd_mach_sh2a_nofpu                    0x2b
      #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
-     #define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
-     #define bfd_mach_sh2a_or_sh4  0x2a3
-     #define bfd_mach_sh2a_or_sh3e 0x2a4
-     #define bfd_mach_sh2e       0x2e
-     #define bfd_mach_sh3        0x30
-     #define bfd_mach_sh3_nommu  0x31
-     #define bfd_mach_sh3_dsp    0x3d
-     #define bfd_mach_sh3e       0x3e
-     #define bfd_mach_sh4        0x40
-     #define bfd_mach_sh4_nofpu  0x41
-     #define bfd_mach_sh4_nommu_nofpu  0x42
-     #define bfd_mach_sh4a       0x4a
-     #define bfd_mach_sh4a_nofpu 0x4b
-     #define bfd_mach_sh4al_dsp  0x4d
-     #define bfd_mach_sh5        0x50
-       bfd_arch_alpha,     /* Dec Alpha */
-     #define bfd_mach_alpha_ev4  0x10
-     #define bfd_mach_alpha_ev5  0x20
-     #define bfd_mach_alpha_ev6  0x30
+     #define bfd_mach_sh2a_nofpu_or_sh3_nommu       0x2a2
+     #define bfd_mach_sh2a_or_sh4                   0x2a3
+     #define bfd_mach_sh2a_or_sh3e                  0x2a4
+     #define bfd_mach_sh2e                          0x2e
+     #define bfd_mach_sh3                           0x30
+     #define bfd_mach_sh3_nommu                     0x31
+     #define bfd_mach_sh3_dsp                       0x3d
+     #define bfd_mach_sh3e                          0x3e
+     #define bfd_mach_sh4                           0x40
+     #define bfd_mach_sh4_nofpu                     0x41
+     #define bfd_mach_sh4_nommu_nofpu               0x42
+     #define bfd_mach_sh4a                          0x4a
+     #define bfd_mach_sh4a_nofpu                    0x4b
+     #define bfd_mach_sh4al_dsp                     0x4d
+     #define bfd_mach_sh5                           0x50
+       bfd_arch_alpha,     /* Dec Alpha.  */
+     #define bfd_mach_alpha_ev4     0x10
+     #define bfd_mach_alpha_ev5     0x20
+     #define bfd_mach_alpha_ev6     0x30
        bfd_arch_arm,       /* Advanced Risc Machines ARM.  */
      #define bfd_mach_arm_unknown   0
      #define bfd_mach_arm_2         1
@@ -7777,46 +7879,46 @@ i960 KB, and 68020 and 68030 for Motorol
      #define bfd_mach_arm_ep9312    11
      #define bfd_mach_arm_iWMMXt    12
      #define bfd_mach_arm_iWMMXt2   13
-       bfd_arch_nds32,     /* Andes NDS32 */
+       bfd_arch_nds32,     /* Andes NDS32.  */
      #define bfd_mach_n1            1
      #define bfd_mach_n1h           2
      #define bfd_mach_n1h_v2        3
      #define bfd_mach_n1h_v3        4
      #define bfd_mach_n1h_v3m       5
-       bfd_arch_ns32k,     /* National Semiconductors ns32000 */
-       bfd_arch_w65,       /* WDC 65816 */
-       bfd_arch_tic30,     /* Texas Instruments TMS320C30 */
-       bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X */
+       bfd_arch_ns32k,     /* National Semiconductors ns32000.  */
+       bfd_arch_w65,       /* WDC 65816.  */
+       bfd_arch_tic30,     /* Texas Instruments TMS320C30.  */
+       bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X.  */
      #define bfd_mach_tic3x         30
      #define bfd_mach_tic4x         40
-       bfd_arch_tic54x,    /* Texas Instruments TMS320C54X */
-       bfd_arch_tic6x,     /* Texas Instruments TMS320C6X */
-       bfd_arch_tic80,     /* TI TMS320c80 (MVP) */
-       bfd_arch_v850,      /* NEC V850 */
-       bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI) */
+       bfd_arch_tic54x,    /* Texas Instruments TMS320C54X.  */
+       bfd_arch_tic6x,     /* Texas Instruments TMS320C6X.  */
+       bfd_arch_tic80,     /* TI TMS320c80 (MVP).  */
+       bfd_arch_v850,      /* NEC V850.  */
+       bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI).  */
      #define bfd_mach_v850          1
      #define bfd_mach_v850e         'E'
      #define bfd_mach_v850e1        '1'
      #define bfd_mach_v850e2        0x4532
      #define bfd_mach_v850e2v3      0x45325633
-     #define bfd_mach_v850e3v5      0x45335635 /* ('E'|'3'|'V'|'5') */
-       bfd_arch_arc,       /* ARC Cores */
+     #define bfd_mach_v850e3v5      0x45335635 /* ('E'|'3'|'V'|'5').  */
+       bfd_arch_arc,       /* ARC Cores.  */
      #define bfd_mach_arc_a4        0
      #define bfd_mach_arc_a5        1
      #define bfd_mach_arc_arc600    2
      #define bfd_mach_arc_arc601    4
      #define bfd_mach_arc_arc700    3
      #define bfd_mach_arc_arcv2     5
-      bfd_arch_m32c,     /* Renesas M16C/M32C.  */
-     #define bfd_mach_m16c        0x75
-     #define bfd_mach_m32c        0x78
-       bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D) */
+      bfd_arch_m32c,       /* Renesas M16C/M32C.  */
+     #define bfd_mach_m16c          0x75
+     #define bfd_mach_m32c          0x78
+       bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D).  */
      #define bfd_mach_m32r          1 /* For backwards compatibility.  */
      #define bfd_mach_m32rx         'x'
      #define bfd_mach_m32r2         '2'
-       bfd_arch_mn10200,   /* Matsushita MN10200 */
-       bfd_arch_mn10300,   /* Matsushita MN10300 */
-     #define bfd_mach_mn10300               300
+       bfd_arch_mn10200,   /* Matsushita MN10200.  */
+       bfd_arch_mn10300,   /* Matsushita MN10300.  */
+     #define bfd_mach_mn10300       300
      #define bfd_mach_am33          330
      #define bfd_mach_am33_2        332
        bfd_arch_fr30,
@@ -7827,13 +7929,14 @@ i960 KB, and 68020 and 68030 for Motorol
      #define bfd_mach_fr300         300
      #define bfd_mach_fr400         400
      #define bfd_mach_fr450         450
-     #define bfd_mach_frvtomcat     499     /* fr500 prototype */
+     #define bfd_mach_frvtomcat     499     /* fr500 prototype.  */
      #define bfd_mach_fr500         500
      #define bfd_mach_fr550         550
-       bfd_arch_moxie,       /* The moxie processor */
+       bfd_arch_moxie,     /* The moxie processor.  */
      #define bfd_mach_moxie         1
-       bfd_arch_ft32,       /* The ft32 processor */
+       bfd_arch_ft32,      /* The ft32 processor.  */
      #define bfd_mach_ft32          1
+     #define bfd_mach_ft32b         2
        bfd_arch_mcore,
        bfd_arch_mep,
      #define bfd_mach_mep           1
@@ -7841,7 +7944,7 @@ i960 KB, and 68020 and 68030 for Motorol
      #define bfd_mach_mep_c5        0x6335
        bfd_arch_metag,
      #define bfd_mach_metag         1
-       bfd_arch_ia64,      /* HP/Intel ia64 */
+       bfd_arch_ia64,      /* HP/Intel ia64.  */
      #define bfd_mach_ia64_elf64    64
      #define bfd_mach_ia64_elf32    32
        bfd_arch_ip2k,      /* Ubicom IP2K microcontrollers. */
@@ -7850,7 +7953,7 @@ i960 KB, and 68020 and 68030 for Motorol
       bfd_arch_iq2000,     /* Vitesse IQ2000.  */
      #define bfd_mach_iq2000        1
      #define bfd_mach_iq10          2
-       bfd_arch_epiphany,   /* Adapteva EPIPHANY */
+       bfd_arch_epiphany,  /* Adapteva EPIPHANY.  */
      #define bfd_mach_epiphany16    1
      #define bfd_mach_epiphany32    2
        bfd_arch_mt,
@@ -7869,23 +7972,23 @@ i960 KB, and 68020 and 68030 for Motorol
      #define bfd_mach_avr5          5
      #define bfd_mach_avr51         51
      #define bfd_mach_avr6          6
-     #define bfd_mach_avrtiny   100
-     #define bfd_mach_avrxmega1 101
-     #define bfd_mach_avrxmega2 102
-     #define bfd_mach_avrxmega3 103
-     #define bfd_mach_avrxmega4 104
-     #define bfd_mach_avrxmega5 105
-     #define bfd_mach_avrxmega6 106
-     #define bfd_mach_avrxmega7 107
-       bfd_arch_bfin,        /* ADI Blackfin */
+     #define bfd_mach_avrtiny       100
+     #define bfd_mach_avrxmega1     101
+     #define bfd_mach_avrxmega2     102
+     #define bfd_mach_avrxmega3     103
+     #define bfd_mach_avrxmega4     104
+     #define bfd_mach_avrxmega5     105
+     #define bfd_mach_avrxmega6     106
+     #define bfd_mach_avrxmega7     107
+       bfd_arch_bfin,      /* ADI Blackfin.  */
      #define bfd_mach_bfin          1
-       bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
+       bfd_arch_cr16,      /* National Semiconductor CompactRISC (ie CR16).  */
      #define bfd_mach_cr16          1
-       bfd_arch_cr16c,       /* National Semiconductor CompactRISC. */
+       bfd_arch_cr16c,     /* National Semiconductor CompactRISC.  */
      #define bfd_mach_cr16c         1
        bfd_arch_crx,       /*  National Semiconductor CRX.  */
      #define bfd_mach_crx           1
-       bfd_arch_cris,      /* Axis CRIS */
+       bfd_arch_cris,      /* Axis CRIS.  */
      #define bfd_mach_cris_v0_v10   255
      #define bfd_mach_cris_v32      32
      #define bfd_mach_cris_v10_v32  1032
@@ -7893,77 +7996,77 @@ i960 KB, and 68020 and 68030 for Motorol
      #define bfd_mach_riscv32       132
      #define bfd_mach_riscv64       164
        bfd_arch_rl78,
-     #define bfd_mach_rl78  0x75
+     #define bfd_mach_rl78          0x75
        bfd_arch_rx,        /* Renesas RX.  */
      #define bfd_mach_rx            0x75
-       bfd_arch_s390,      /* IBM s390 */
+       bfd_arch_s390,      /* IBM s390.  */
      #define bfd_mach_s390_31       31
      #define bfd_mach_s390_64       64
-       bfd_arch_score,     /* Sunplus score */
-     #define bfd_mach_score3         3
-     #define bfd_mach_score7         7
+       bfd_arch_score,     /* Sunplus score.  */
+     #define bfd_mach_score3        3
+     #define bfd_mach_score7        7
        bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
        bfd_arch_xstormy16,
      #define bfd_mach_xstormy16     1
        bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
-     #define bfd_mach_msp11          11
-     #define bfd_mach_msp110         110
-     #define bfd_mach_msp12          12
-     #define bfd_mach_msp13          13
-     #define bfd_mach_msp14          14
-     #define bfd_mach_msp15          15
-     #define bfd_mach_msp16          16
-     #define bfd_mach_msp20          20
-     #define bfd_mach_msp21          21
-     #define bfd_mach_msp22          22
-     #define bfd_mach_msp23          23
-     #define bfd_mach_msp24          24
-     #define bfd_mach_msp26          26
-     #define bfd_mach_msp31          31
-     #define bfd_mach_msp32          32
-     #define bfd_mach_msp33          33
-     #define bfd_mach_msp41          41
-     #define bfd_mach_msp42          42
-     #define bfd_mach_msp43          43
-     #define bfd_mach_msp44          44
-     #define bfd_mach_msp430x        45
-     #define bfd_mach_msp46          46
-     #define bfd_mach_msp47          47
-     #define bfd_mach_msp54          54
-       bfd_arch_xc16x,     /* Infineon's XC16X Series.               */
+     #define bfd_mach_msp11         11
+     #define bfd_mach_msp110        110
+     #define bfd_mach_msp12         12
+     #define bfd_mach_msp13         13
+     #define bfd_mach_msp14         14
+     #define bfd_mach_msp15         15
+     #define bfd_mach_msp16         16
+     #define bfd_mach_msp20         20
+     #define bfd_mach_msp21         21
+     #define bfd_mach_msp22         22
+     #define bfd_mach_msp23         23
+     #define bfd_mach_msp24         24
+     #define bfd_mach_msp26         26
+     #define bfd_mach_msp31         31
+     #define bfd_mach_msp32         32
+     #define bfd_mach_msp33         33
+     #define bfd_mach_msp41         41
+     #define bfd_mach_msp42         42
+     #define bfd_mach_msp43         43
+     #define bfd_mach_msp44         44
+     #define bfd_mach_msp430x       45
+     #define bfd_mach_msp46         46
+     #define bfd_mach_msp47         47
+     #define bfd_mach_msp54         54
+       bfd_arch_xc16x,     /* Infineon's XC16X Series.  */
      #define bfd_mach_xc16x         1
      #define bfd_mach_xc16xl        2
      #define bfd_mach_xc16xs        3
-       bfd_arch_xgate,   /* Freescale XGATE */
+       bfd_arch_xgate,     /* Freescale XGATE.  */
      #define bfd_mach_xgate         1
        bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
      #define bfd_mach_xtensa        1
        bfd_arch_z80,
-     #define bfd_mach_z80strict      1 /* No undocumented opcodes.  */
-     #define bfd_mach_z80            3 /* With ixl, ixh, iyl, and iyh.  */
-     #define bfd_mach_z80full        7 /* All undocumented instructions.  */
-     #define bfd_mach_r800           11 /* R800: successor with multiplication.  */
-       bfd_arch_lm32,      /* Lattice Mico32 */
-     #define bfd_mach_lm32      1
-       bfd_arch_microblaze,/* Xilinx MicroBlaze. */
-       bfd_arch_tilepro,   /* Tilera TILEPro */
-       bfd_arch_tilegx, /* Tilera TILE-Gx */
-     #define bfd_mach_tilepro   1
-     #define bfd_mach_tilegx    1
-     #define bfd_mach_tilegx32  2
-       bfd_arch_aarch64,   /* AArch64  */
+     #define bfd_mach_z80strict     1 /* No undocumented opcodes.  */
+     #define bfd_mach_z80           3 /* With ixl, ixh, iyl, and iyh.  */
+     #define bfd_mach_z80full       7 /* All undocumented instructions.  */
+     #define bfd_mach_r800          11 /* R800: successor with multiplication.  */
+       bfd_arch_lm32,      /* Lattice Mico32.  */
+     #define bfd_mach_lm32          1
+       bfd_arch_microblaze,/* Xilinx MicroBlaze.  */
+       bfd_arch_tilepro,   /* Tilera TILEPro.  */
+       bfd_arch_tilegx,    /* Tilera TILE-Gx.  */
+     #define bfd_mach_tilepro       1
+     #define bfd_mach_tilegx        1
+     #define bfd_mach_tilegx32      2
+       bfd_arch_aarch64,   /* AArch64.  */
      #define bfd_mach_aarch64 0
      #define bfd_mach_aarch64_ilp32 32
-       bfd_arch_nios2,      /* Nios II */
+       bfd_arch_nios2,     /* Nios II.  */
      #define bfd_mach_nios2         0
      #define bfd_mach_nios2r1       1
      #define bfd_mach_nios2r2       2
-       bfd_arch_visium,     /* Visium */
+       bfd_arch_visium,    /* Visium.  */
      #define bfd_mach_visium        1
-       bfd_arch_wasm32,     /* WebAssembly */
+       bfd_arch_wasm32,    /* WebAssembly.  */
      #define bfd_mach_wasm32        1
-       bfd_arch_pru,        /* PRU */
-     #define bfd_mach_pru   0
+       bfd_arch_pru,       /* PRU.  */
+     #define bfd_mach_pru           0
        bfd_arch_last
        };
 
@@ -7987,8 +8090,8 @@ This structure contains information on a
           The default arch should be the first entry for an arch so that
           all the entries for that arch can be accessed via next.  */
        bfd_boolean the_default;
-       const struct bfd_arch_info * (*compatible)
-         (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
+       const struct bfd_arch_info * (*compatible) (const struct bfd_arch_info *,
+                                                   const struct bfd_arch_info *);
 
        bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
 
@@ -8811,9 +8914,9 @@ less than a 'bfd_vma', use 'gcc -Wconver
 
      #define bfd_put(bits, abfd, val, ptr)                  \
        ((bits) == 8 ? bfd_put_8  (abfd, val, ptr)           \
-        : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)                \
-        : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)                \
-        : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)                \
+        : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)        \
+        : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)        \
+        : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)        \
         : (abort (), (void) 0))
 
 
@@ -9341,7 +9444,21 @@ and FALSE on failure.
             BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h))
 
 
-2.17.3.7 'bfd_find_version_for_sym'
+2.17.3.7 'bfd_generic_define_start_stop'
+........................................
+
+*Synopsis*
+     struct bfd_link_hash_entry *bfd_generic_define_start_stop
+        (struct bfd_link_info *info,
+         const char *symbol, asection *sec);
+   *Description*
+Define a __start, __stop, .startof.  or .sizeof.  symbol.  Return the
+symbol or NULL if no such undefined symbol exists.
+     #define bfd_define_start_stop(output_bfd, info, symbol, sec) \
+            BFD_SEND (output_bfd, _bfd_define_start_stop, (info, symbol, sec))
+
+
+2.17.3.8 'bfd_find_version_for_sym'
 ...................................
 
 *Synopsis*
@@ -9353,7 +9470,7 @@ Search an elf version script tree for sy
 / don't-export status for a given symbol.  Return non-NULL on success
 and NULL on failure; also sets the output 'hide' boolean parameter.
 
-2.17.3.8 'bfd_hide_sym_by_version'
+2.17.3.9 'bfd_hide_sym_by_version'
 ..................................
 
 *Synopsis*
@@ -9363,8 +9480,8 @@ and NULL on failure; also sets the outpu
 Search an elf version script tree for symbol versioning info for a given
 symbol.  Return TRUE if the symbol is hidden.
 
-2.17.3.9 'bfd_link_check_relocs'
-................................
+2.17.3.10 'bfd_link_check_relocs'
+.................................
 
 *Synopsis*
      bfd_boolean bfd_link_check_relocs
@@ -9374,7 +9491,7 @@ Checks the relocs in ABFD for validity. 
 Return TRUE if everything is OK, FALSE otherwise.  This is the external
 entry point to this code.
 
-2.17.3.10 '_bfd_generic_link_check_relocs'
+2.17.3.11 '_bfd_generic_link_check_relocs'
 ..........................................
 
 *Synopsis*
@@ -9385,7 +9502,7 @@ Stub function for targets that do not im
 TRUE. This is an internal function.  It should not be called from
 outside the BFD library.
 
-2.17.3.11 'bfd_merge_private_bfd_data'
+2.17.3.12 'bfd_merge_private_bfd_data'
 ......................................
 
 *Synopsis*
@@ -9399,10 +9516,10 @@ error returns are:
    * 'bfd_error_no_memory' - Not enough memory exists to create private
      data for OBFD.
      #define bfd_merge_private_bfd_data(ibfd, info) \
-          BFD_SEND ((info)->output_bfd, _bfd_merge_private_bfd_data, \
-                    (ibfd, info))
+            BFD_SEND ((info)->output_bfd, _bfd_merge_private_bfd_data, \
+                      (ibfd, info))
 
-2.17.3.12 '_bfd_generic_verify_endian_match'
+2.17.3.13 '_bfd_generic_verify_endian_match'
 ............................................
 
 *Synopsis*
@@ -9617,7 +9734,7 @@ routine of the hash table type your hash
 
       /* Call the allocation method of the base class.  */
        ret = ((ENTRY_TYPE *)
-             BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string));
+              BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string));
 
       /* Initialize the local fields here.  */
 
@@ -10289,19 +10406,19 @@ The hidden information for an 'asymbol' 
 
        bfd_boolean (*_bfd_coff_pointerize_aux_hook)
          (bfd *, combined_entry_type *, combined_entry_type *,
-                 unsigned int, combined_entry_type *);
+          unsigned int, combined_entry_type *);
 
        bfd_boolean (*_bfd_coff_print_aux)
          (bfd *, FILE *, combined_entry_type *, combined_entry_type *,
-                 combined_entry_type *, unsigned int);
+          combined_entry_type *, unsigned int);
 
        void (*_bfd_coff_reloc16_extra_cases)
          (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
-                bfd_byte *, unsigned int *, unsigned int *);
+          bfd_byte *, unsigned int *, unsigned int *);
 
        int (*_bfd_coff_reloc16_estimate)
          (bfd *, asection *, arelent *, unsigned int,
-                 struct bfd_link_info *);
+          struct bfd_link_info *);
 
        enum coff_symbol_classification (*_bfd_coff_classify_symbol)
          (bfd *, struct internal_syment *);
@@ -10314,21 +10431,20 @@ The hidden information for an 'asymbol' 
 
        bfd_boolean (*_bfd_coff_relocate_section)
          (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
-                 struct internal_reloc *, struct internal_syment *, asection **);
+          struct internal_reloc *, struct internal_syment *, asection **);
 
        reloc_howto_type *(*_bfd_coff_rtype_to_howto)
          (bfd *, asection *, struct internal_reloc *,
-                 struct coff_link_hash_entry *, struct internal_syment *,
-                 bfd_vma *);
+          struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *);
 
        bfd_boolean (*_bfd_coff_adjust_symndx)
          (bfd *, struct bfd_link_info *, bfd *, asection *,
-                 struct internal_reloc *, bfd_boolean *);
+          struct internal_reloc *, bfd_boolean *);
 
        bfd_boolean (*_bfd_coff_link_add_one_symbol)
          (struct bfd_link_info *, bfd *, const char *, flagword,
-                 asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
-                 struct bfd_link_hash_entry **);
+          asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
+          struct bfd_link_hash_entry **);
 
        bfd_boolean (*_bfd_coff_link_output_has_begun)
          (bfd *, struct coff_final_link_info *);
@@ -11398,11 +11514,12 @@ BFD Index
 * _bfd_generic_link_add_one_symbol:      Adding symbols from an object file.
                                                              (line   19)
 * _bfd_generic_link_check_relocs:        Writing the symbol table.
-                                                             (line  116)
+                                                             (line  130)
 * _bfd_generic_make_empty_symbol:        symbol handling functions.
                                                              (line   96)
+* _bfd_generic_set_reloc:                howto manager.      (line 3348)
 * _bfd_generic_verify_endian_match:      Writing the symbol table.
-                                                             (line  144)
+                                                             (line  158)
 * _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table.
                                                              (line    6)
 * _bfd_link_final_link in target vector: Performing the Final Link.
@@ -11411,6 +11528,7 @@ BFD Index
                                                              (line    6)
 * _bfd_relocate_contents:                Relocating the section contents.
                                                              (line   22)
+* _bfd_unrecognized_reloc:               howto manager.      (line 3360)
 * aout_SIZE_machine_type:                aout.               (line  145)
 * aout_SIZE_mkobject:                    aout.               (line  137)
 * aout_SIZE_new_section_hook:            aout.               (line  175)
@@ -11418,40 +11536,40 @@ BFD Index
 * aout_SIZE_some_aout_object_p:          aout.               (line  123)
 * aout_SIZE_swap_exec_header_in:         aout.               (line   99)
 * aout_SIZE_swap_exec_header_out:        aout.               (line  111)
-* arelent_chain:                         typedef arelent.    (line  340)
+* arelent_chain:                         typedef arelent.    (line  341)
 * BFD:                                   Overview.           (line    6)
 * BFD canonical format:                  Canonical format.   (line   11)
 * bfd_alloc:                             Opening and Closing.
                                                              (line  239)
 * bfd_alloc2:                            Opening and Closing.
                                                              (line  248)
-* bfd_alt_mach_code:                     Miscellaneous.      (line  286)
-* bfd_arch_bits_per_address:             Architectures.      (line  634)
-* bfd_arch_bits_per_byte:                Architectures.      (line  626)
-* bfd_arch_default_fill:                 Architectures.      (line  715)
-* bfd_arch_get_compatible:               Architectures.      (line  569)
-* bfd_arch_list:                         Architectures.      (line  560)
-* bfd_arch_mach_octets_per_byte:         Architectures.      (line  703)
-* BFD_ARELOC_BFIN_ADD:                   howto manager.      (line 1090)
-* BFD_ARELOC_BFIN_ADDR:                  howto manager.      (line 1124)
-* BFD_ARELOC_BFIN_AND:                   howto manager.      (line 1104)
-* BFD_ARELOC_BFIN_COMP:                  howto manager.      (line 1118)
-* BFD_ARELOC_BFIN_CONST:                 howto manager.      (line 1088)
-* BFD_ARELOC_BFIN_DIV:                   howto manager.      (line 1096)
-* BFD_ARELOC_BFIN_HWPAGE:                howto manager.      (line 1122)
-* BFD_ARELOC_BFIN_LAND:                  howto manager.      (line 1110)
-* BFD_ARELOC_BFIN_LEN:                   howto manager.      (line 1114)
-* BFD_ARELOC_BFIN_LOR:                   howto manager.      (line 1112)
-* BFD_ARELOC_BFIN_LSHIFT:                howto manager.      (line 1100)
-* BFD_ARELOC_BFIN_MOD:                   howto manager.      (line 1098)
-* BFD_ARELOC_BFIN_MULT:                  howto manager.      (line 1094)
-* BFD_ARELOC_BFIN_NEG:                   howto manager.      (line 1116)
-* BFD_ARELOC_BFIN_OR:                    howto manager.      (line 1106)
-* BFD_ARELOC_BFIN_PAGE:                  howto manager.      (line 1120)
-* BFD_ARELOC_BFIN_PUSH:                  howto manager.      (line 1086)
-* BFD_ARELOC_BFIN_RSHIFT:                howto manager.      (line 1102)
-* BFD_ARELOC_BFIN_SUB:                   howto manager.      (line 1092)
-* BFD_ARELOC_BFIN_XOR:                   howto manager.      (line 1108)
+* bfd_alt_mach_code:                     Miscellaneous.      (line  288)
+* bfd_arch_bits_per_address:             Architectures.      (line  639)
+* bfd_arch_bits_per_byte:                Architectures.      (line  631)
+* bfd_arch_default_fill:                 Architectures.      (line  720)
+* bfd_arch_get_compatible:               Architectures.      (line  574)
+* bfd_arch_list:                         Architectures.      (line  565)
+* bfd_arch_mach_octets_per_byte:         Architectures.      (line  708)
+* BFD_ARELOC_BFIN_ADD:                   howto manager.      (line 1096)
+* BFD_ARELOC_BFIN_ADDR:                  howto manager.      (line 1130)
+* BFD_ARELOC_BFIN_AND:                   howto manager.      (line 1110)
+* BFD_ARELOC_BFIN_COMP:                  howto manager.      (line 1124)
+* BFD_ARELOC_BFIN_CONST:                 howto manager.      (line 1094)
+* BFD_ARELOC_BFIN_DIV:                   howto manager.      (line 1102)
+* BFD_ARELOC_BFIN_HWPAGE:                howto manager.      (line 1128)
+* BFD_ARELOC_BFIN_LAND:                  howto manager.      (line 1116)
+* BFD_ARELOC_BFIN_LEN:                   howto manager.      (line 1120)
+* BFD_ARELOC_BFIN_LOR:                   howto manager.      (line 1118)
+* BFD_ARELOC_BFIN_LSHIFT:                howto manager.      (line 1106)
+* BFD_ARELOC_BFIN_MOD:                   howto manager.      (line 1104)
+* BFD_ARELOC_BFIN_MULT:                  howto manager.      (line 1100)
+* BFD_ARELOC_BFIN_NEG:                   howto manager.      (line 1122)
+* BFD_ARELOC_BFIN_OR:                    howto manager.      (line 1112)
+* BFD_ARELOC_BFIN_PAGE:                  howto manager.      (line 1126)
+* BFD_ARELOC_BFIN_PUSH:                  howto manager.      (line 1092)
+* BFD_ARELOC_BFIN_RSHIFT:                howto manager.      (line 1108)
+* BFD_ARELOC_BFIN_SUB:                   howto manager.      (line 1098)
+* BFD_ARELOC_BFIN_XOR:                   howto manager.      (line 1114)
 * bfd_cache_close:                       File Caching.       (line   25)
 * bfd_cache_close_all:                   File Caching.       (line   38)
 * bfd_cache_init:                        File Caching.       (line   17)
@@ -11460,19 +11578,19 @@ BFD Index
 * bfd_canonicalize_reloc:                Miscellaneous.      (line   18)
 * bfd_canonicalize_symtab:               symbol handling functions.
                                                              (line   52)
-* bfd_check_compression_header:          Miscellaneous.      (line  358)
+* bfd_check_compression_header:          Miscellaneous.      (line  360)
 * bfd_check_format:                      Formats.            (line   20)
 * bfd_check_format_matches:              Formats.            (line   51)
-* bfd_check_overflow:                    typedef arelent.    (line  353)
+* bfd_check_overflow:                    typedef arelent.    (line  354)
 * bfd_close:                             Opening and Closing.
                                                              (line  161)
 * bfd_close_all_done:                    Opening and Closing.
                                                              (line  179)
 * bfd_coff_backend_data:                 coff.               (line  307)
-* bfd_convert_section_contents:          Miscellaneous.      (line  394)
-* bfd_convert_section_size:              Miscellaneous.      (line  384)
-* bfd_copy_private_bfd_data:             Miscellaneous.      (line  157)
-* bfd_copy_private_header_data:          Miscellaneous.      (line  140)
+* bfd_convert_section_contents:          Miscellaneous.      (line  396)
+* bfd_convert_section_size:              Miscellaneous.      (line  386)
+* bfd_copy_private_bfd_data:             Miscellaneous.      (line  159)
+* bfd_copy_private_header_data:          Miscellaneous.      (line  142)
 * bfd_copy_private_section_data:         section prototypes. (line  287)
 * bfd_copy_private_symbol_data:          symbol handling functions.
                                                              (line  145)
@@ -11485,25 +11603,25 @@ BFD Index
                                                              (line  431)
 * bfd_decode_symclass:                   symbol handling functions.
                                                              (line  116)
-* bfd_default_arch_struct:               Architectures.      (line  581)
-* bfd_default_compatible:                Architectures.      (line  643)
-* bfd_default_reloc_type_lookup:         howto manager.      (line 3265)
-* bfd_default_scan:                      Architectures.      (line  652)
-* bfd_default_set_arch_mach:             Architectures.      (line  599)
-* bfd_demangle:                          Miscellaneous.      (line  337)
-* bfd_emul_get_commonpagesize:           Miscellaneous.      (line  317)
-* bfd_emul_get_maxpagesize:              Miscellaneous.      (line  297)
-* bfd_emul_set_commonpagesize:           Miscellaneous.      (line  328)
-* bfd_emul_set_maxpagesize:              Miscellaneous.      (line  308)
-* bfd_errmsg:                            Error reporting.    (line   67)
+* bfd_default_arch_struct:               Architectures.      (line  586)
+* bfd_default_compatible:                Architectures.      (line  648)
+* bfd_default_reloc_type_lookup:         howto manager.      (line 3272)
+* bfd_default_scan:                      Architectures.      (line  657)
+* bfd_default_set_arch_mach:             Architectures.      (line  604)
+* bfd_demangle:                          Miscellaneous.      (line  339)
+* bfd_emul_get_commonpagesize:           Miscellaneous.      (line  319)
+* bfd_emul_get_maxpagesize:              Miscellaneous.      (line  299)
+* bfd_emul_set_commonpagesize:           Miscellaneous.      (line  330)
+* bfd_emul_set_maxpagesize:              Miscellaneous.      (line  310)
+* bfd_errmsg:                            Error reporting.    (line   78)
 * bfd_fdopenr:                           Opening and Closing.
                                                              (line   56)
 * bfd_fill_in_gnu_debuglink_section:     Opening and Closing.
                                                              (line  445)
-* bfd_find_target:                       bfd_target.         (line  478)
+* bfd_find_target:                       bfd_target.         (line  493)
 * bfd_find_version_for_sym:              Writing the symbol table.
-                                                             (line   83)
-* bfd_flavour_name:                      bfd_target.         (line  541)
+                                                             (line   97)
+* bfd_flavour_name:                      bfd_target.         (line  556)
 * bfd_follow_build_id_debuglink:         Opening and Closing.
                                                              (line  505)
 * bfd_follow_gnu_debugaltlink:           Opening and Closing.
@@ -11515,43 +11633,46 @@ BFD Index
 * bfd_format_string:                     Formats.            (line   78)
 * bfd_generic_define_common_symbol:      Writing the symbol table.
                                                              (line   69)
+* bfd_generic_define_start_stop:         Writing the symbol table.
+                                                             (line   83)
 * bfd_generic_discard_group:             section prototypes. (line  312)
-* bfd_generic_gc_sections:               howto manager.      (line 3296)
-* bfd_generic_get_relocated_section_contents: howto manager. (line 3326)
+* bfd_generic_gc_sections:               howto manager.      (line 3303)
+* bfd_generic_get_relocated_section_contents: howto manager. (line 3333)
 * bfd_generic_is_group_section:          section prototypes. (line  304)
-* bfd_generic_lookup_section_flags:      howto manager.      (line 3306)
-* bfd_generic_merge_sections:            howto manager.      (line 3316)
-* bfd_generic_relax_section:             howto manager.      (line 3283)
+* bfd_generic_lookup_section_flags:      howto manager.      (line 3313)
+* bfd_generic_merge_sections:            howto manager.      (line 3323)
+* bfd_generic_relax_section:             howto manager.      (line 3290)
 * bfd_get_alt_debug_link_info:           Opening and Closing.
                                                              (line  329)
-* bfd_get_arch:                          Architectures.      (line  610)
-* bfd_get_arch_info:                     Architectures.      (line  662)
-* bfd_get_arch_size:                     Miscellaneous.      (line   61)
-* bfd_get_compression_header_size:       Miscellaneous.      (line  373)
+* bfd_get_arch:                          Architectures.      (line  615)
+* bfd_get_arch_info:                     Architectures.      (line  667)
+* bfd_get_arch_size:                     Miscellaneous.      (line   63)
+* bfd_get_compression_header_size:       Miscellaneous.      (line  375)
 * bfd_get_debug_link_info:               Opening and Closing.
                                                              (line  311)
 * bfd_get_debug_link_info_1:             Opening and Closing.
                                                              (line  289)
 * bfd_get_error:                         Error reporting.    (line   48)
-* bfd_get_gp_size:                       Miscellaneous.      (line  104)
+* bfd_get_file_size:                     Miscellaneous.      (line  485)
+* bfd_get_gp_size:                       Miscellaneous.      (line  106)
 * bfd_get_linker_section:                section prototypes. (line   37)
-* bfd_get_mach:                          Architectures.      (line  618)
-* bfd_get_mtime:                         Miscellaneous.      (line  446)
+* bfd_get_mach:                          Architectures.      (line  623)
+* bfd_get_mtime:                         Miscellaneous.      (line  448)
 * bfd_get_next_mapent:                   Archives.           (line   57)
 * bfd_get_next_section_by_name:          section prototypes. (line   25)
 * bfd_get_next_section_id:               section prototypes. (line  154)
-* bfd_get_reloc_code_name:               howto manager.      (line 3274)
-* bfd_get_reloc_size:                    typedef arelent.    (line  331)
+* bfd_get_reloc_code_name:               howto manager.      (line 3281)
+* bfd_get_reloc_size:                    typedef arelent.    (line  332)
 * bfd_get_reloc_upper_bound:             Miscellaneous.      (line    8)
 * bfd_get_section_by_name:               section prototypes. (line   16)
 * bfd_get_section_by_name_if:            section prototypes. (line   46)
 * bfd_get_section_contents:              section prototypes. (line  260)
-* bfd_get_sign_extend_vma:               Miscellaneous.      (line   76)
-* bfd_get_size:                          Miscellaneous.      (line  455)
+* bfd_get_sign_extend_vma:               Miscellaneous.      (line   78)
+* bfd_get_size:                          Miscellaneous.      (line  457)
 * bfd_get_size <1>:                      Internal.           (line   24)
 * bfd_get_symtab_upper_bound:            symbol handling functions.
                                                              (line    5)
-* bfd_get_target_info:                   bfd_target.         (line  494)
+* bfd_get_target_info:                   bfd_target.         (line  509)
 * bfd_get_unique_section_name:           section prototypes. (line   65)
 * bfd_hash_allocate:                     Creating and Freeing a Hash Table.
                                                              (line   17)
@@ -11570,10 +11691,10 @@ BFD Index
 * bfd_hash_traverse:                     Traversing a Hash Table.
                                                              (line    6)
 * bfd_hide_sym_by_version:               Writing the symbol table.
-                                                             (line   95)
+                                                             (line  109)
 * bfd_h_put_size:                        Internal.           (line   97)
 * bfd_init:                              Initialization.     (line   10)
-* bfd_install_relocation:                typedef arelent.    (line  394)
+* bfd_install_relocation:                typedef arelent.    (line  408)
 * bfd_is_local_label:                    symbol handling functions.
                                                              (line   17)
 * bfd_is_local_label_name:               symbol handling functions.
@@ -11582,13 +11703,13 @@ BFD Index
                                                              (line   39)
 * bfd_is_undefined_symclass:             symbol handling functions.
                                                              (line  125)
-* bfd_iterate_over_targets:              bfd_target.         (line  529)
+* bfd_iterate_over_targets:              bfd_target.         (line  544)
 * bfd_link_check_relocs:                 Writing the symbol table.
-                                                             (line  105)
+                                                             (line  119)
 * bfd_link_split_section:                Writing the symbol table.
                                                              (line   43)
 * bfd_log2:                              Internal.           (line  166)
-* bfd_lookup_arch:                       Architectures.      (line  670)
+* bfd_lookup_arch:                       Architectures.      (line  675)
 * bfd_make_debug_symbol:                 symbol handling functions.
                                                              (line  106)
 * bfd_make_empty_symbol:                 symbol handling functions.
@@ -11605,9 +11726,9 @@ BFD Index
 * bfd_malloc_and_get_section:            section prototypes. (line  277)
 * bfd_map_over_sections:                 section prototypes. (line  186)
 * bfd_merge_private_bfd_data:            Writing the symbol table.
-                                                             (line  127)
-* bfd_mmap:                              Miscellaneous.      (line  483)
-* bfd_octets_per_byte:                   Architectures.      (line  693)
+                                                             (line  141)
+* bfd_mmap:                              Miscellaneous.      (line  494)
+* bfd_octets_per_byte:                   Architectures.      (line  698)
 * bfd_openr:                             Opening and Closing.
                                                              (line   37)
 * bfd_openr_iovec:                       Opening and Closing.
@@ -11618,56 +11739,56 @@ BFD Index
 * bfd_openw:                             Opening and Closing.
                                                              (line  146)
 * bfd_open_file:                         File Caching.       (line   51)
-* bfd_perform_relocation:                typedef arelent.    (line  369)
-* bfd_perror:                            Error reporting.    (line   76)
-* bfd_printable_arch_mach:               Architectures.      (line  681)
-* bfd_printable_name:                    Architectures.      (line  541)
+* bfd_perform_relocation:                typedef arelent.    (line  383)
+* bfd_perror:                            Error reporting.    (line   87)
+* bfd_printable_arch_mach:               Architectures.      (line  686)
+* bfd_printable_name:                    Architectures.      (line  546)
 * bfd_print_symbol_vandf:                symbol handling functions.
                                                              (line   73)
 * bfd_put_size:                          Internal.           (line   21)
 * BFD_RELOC_12_PCREL:                    howto manager.      (line   37)
 * BFD_RELOC_14:                          howto manager.      (line   30)
 * BFD_RELOC_16:                          howto manager.      (line   29)
-* BFD_RELOC_16C_ABS20:                   howto manager.      (line 2214)
-* BFD_RELOC_16C_ABS20_C:                 howto manager.      (line 2215)
-* BFD_RELOC_16C_ABS24:                   howto manager.      (line 2216)
-* BFD_RELOC_16C_ABS24_C:                 howto manager.      (line 2217)
-* BFD_RELOC_16C_DISP04:                  howto manager.      (line 2194)
-* BFD_RELOC_16C_DISP04_C:                howto manager.      (line 2195)
-* BFD_RELOC_16C_DISP08:                  howto manager.      (line 2196)
-* BFD_RELOC_16C_DISP08_C:                howto manager.      (line 2197)
-* BFD_RELOC_16C_DISP16:                  howto manager.      (line 2198)
-* BFD_RELOC_16C_DISP16_C:                howto manager.      (line 2199)
-* BFD_RELOC_16C_DISP24:                  howto manager.      (line 2200)
-* BFD_RELOC_16C_DISP24a:                 howto manager.      (line 2202)
-* BFD_RELOC_16C_DISP24a_C:               howto manager.      (line 2203)
-* BFD_RELOC_16C_DISP24_C:                howto manager.      (line 2201)
-* BFD_RELOC_16C_IMM04:                   howto manager.      (line 2218)
-* BFD_RELOC_16C_IMM04_C:                 howto manager.      (line 2219)
-* BFD_RELOC_16C_IMM16:                   howto manager.      (line 2220)
-* BFD_RELOC_16C_IMM16_C:                 howto manager.      (line 2221)
-* BFD_RELOC_16C_IMM20:                   howto manager.      (line 2222)
-* BFD_RELOC_16C_IMM20_C:                 howto manager.      (line 2223)
-* BFD_RELOC_16C_IMM24:                   howto manager.      (line 2224)
-* BFD_RELOC_16C_IMM24_C:                 howto manager.      (line 2225)
-* BFD_RELOC_16C_IMM32:                   howto manager.      (line 2226)
-* BFD_RELOC_16C_IMM32_C:                 howto manager.      (line 2227)
-* BFD_RELOC_16C_NUM08:                   howto manager.      (line 2188)
-* BFD_RELOC_16C_NUM08_C:                 howto manager.      (line 2189)
-* BFD_RELOC_16C_NUM16:                   howto manager.      (line 2190)
-* BFD_RELOC_16C_NUM16_C:                 howto manager.      (line 2191)
-* BFD_RELOC_16C_NUM32:                   howto manager.      (line 2192)
-* BFD_RELOC_16C_NUM32_C:                 howto manager.      (line 2193)
-* BFD_RELOC_16C_REG04:                   howto manager.      (line 2204)
-* BFD_RELOC_16C_REG04a:                  howto manager.      (line 2206)
-* BFD_RELOC_16C_REG04a_C:                howto manager.      (line 2207)
-* BFD_RELOC_16C_REG04_C:                 howto manager.      (line 2205)
-* BFD_RELOC_16C_REG14:                   howto manager.      (line 2208)
-* BFD_RELOC_16C_REG14_C:                 howto manager.      (line 2209)
-* BFD_RELOC_16C_REG16:                   howto manager.      (line 2210)
-* BFD_RELOC_16C_REG16_C:                 howto manager.      (line 2211)
-* BFD_RELOC_16C_REG20:                   howto manager.      (line 2212)
-* BFD_RELOC_16C_REG20_C:                 howto manager.      (line 2213)
+* BFD_RELOC_16C_ABS20:                   howto manager.      (line 2221)
+* BFD_RELOC_16C_ABS20_C:                 howto manager.      (line 2222)
+* BFD_RELOC_16C_ABS24:                   howto manager.      (line 2223)
+* BFD_RELOC_16C_ABS24_C:                 howto manager.      (line 2224)
+* BFD_RELOC_16C_DISP04:                  howto manager.      (line 2201)
+* BFD_RELOC_16C_DISP04_C:                howto manager.      (line 2202)
+* BFD_RELOC_16C_DISP08:                  howto manager.      (line 2203)
+* BFD_RELOC_16C_DISP08_C:                howto manager.      (line 2204)
+* BFD_RELOC_16C_DISP16:                  howto manager.      (line 2205)
+* BFD_RELOC_16C_DISP16_C:                howto manager.      (line 2206)
+* BFD_RELOC_16C_DISP24:                  howto manager.      (line 2207)
+* BFD_RELOC_16C_DISP24a:                 howto manager.      (line 2209)
+* BFD_RELOC_16C_DISP24a_C:               howto manager.      (line 2210)
+* BFD_RELOC_16C_DISP24_C:                howto manager.      (line 2208)
+* BFD_RELOC_16C_IMM04:                   howto manager.      (line 2225)
+* BFD_RELOC_16C_IMM04_C:                 howto manager.      (line 2226)
+* BFD_RELOC_16C_IMM16:                   howto manager.      (line 2227)
+* BFD_RELOC_16C_IMM16_C:                 howto manager.      (line 2228)
+* BFD_RELOC_16C_IMM20:                   howto manager.      (line 2229)
+* BFD_RELOC_16C_IMM20_C:                 howto manager.      (line 2230)
+* BFD_RELOC_16C_IMM24:                   howto manager.      (line 2231)
+* BFD_RELOC_16C_IMM24_C:                 howto manager.      (line 2232)
+* BFD_RELOC_16C_IMM32:                   howto manager.      (line 2233)
+* BFD_RELOC_16C_IMM32_C:                 howto manager.      (line 2234)
+* BFD_RELOC_16C_NUM08:                   howto manager.      (line 2195)
+* BFD_RELOC_16C_NUM08_C:                 howto manager.      (line 2196)
+* BFD_RELOC_16C_NUM16:                   howto manager.      (line 2197)
+* BFD_RELOC_16C_NUM16_C:                 howto manager.      (line 2198)
+* BFD_RELOC_16C_NUM32:                   howto manager.      (line 2199)
+* BFD_RELOC_16C_NUM32_C:                 howto manager.      (line 2200)
+* BFD_RELOC_16C_REG04:                   howto manager.      (line 2211)
+* BFD_RELOC_16C_REG04a:                  howto manager.      (line 2213)
+* BFD_RELOC_16C_REG04a_C:                howto manager.      (line 2214)
+* BFD_RELOC_16C_REG04_C:                 howto manager.      (line 2212)
+* BFD_RELOC_16C_REG14:                   howto manager.      (line 2215)
+* BFD_RELOC_16C_REG14_C:                 howto manager.      (line 2216)
+* BFD_RELOC_16C_REG16:                   howto manager.      (line 2217)
+* BFD_RELOC_16C_REG16_C:                 howto manager.      (line 2218)
+* BFD_RELOC_16C_REG20:                   howto manager.      (line 2219)
+* BFD_RELOC_16C_REG20_C:                 howto manager.      (line 2220)
 * BFD_RELOC_16_BASEREL:                  howto manager.      (line   92)
 * BFD_RELOC_16_GOTOFF:                   howto manager.      (line   51)
 * BFD_RELOC_16_GOT_PCREL:                howto manager.      (line   48)
@@ -11689,86 +11810,86 @@ BFD Index
 * BFD_RELOC_32_PLTOFF:                   howto manager.      (line   62)
 * BFD_RELOC_32_PLT_PCREL:                howto manager.      (line   57)
 * BFD_RELOC_32_SECREL:                   howto manager.      (line   45)
-* BFD_RELOC_386_COPY:                    howto manager.      (line  522)
-* BFD_RELOC_386_GLOB_DAT:                howto manager.      (line  523)
-* BFD_RELOC_386_GOT32:                   howto manager.      (line  520)
-* BFD_RELOC_386_GOT32X:                  howto manager.      (line  544)
-* BFD_RELOC_386_GOTOFF:                  howto manager.      (line  526)
-* BFD_RELOC_386_GOTPC:                   howto manager.      (line  527)
-* BFD_RELOC_386_IRELATIVE:               howto manager.      (line  543)
-* BFD_RELOC_386_JUMP_SLOT:               howto manager.      (line  524)
-* BFD_RELOC_386_PLT32:                   howto manager.      (line  521)
-* BFD_RELOC_386_RELATIVE:                howto manager.      (line  525)
-* BFD_RELOC_386_TLS_DESC:                howto manager.      (line  542)
-* BFD_RELOC_386_TLS_DESC_CALL:           howto manager.      (line  541)
-* BFD_RELOC_386_TLS_DTPMOD32:            howto manager.      (line  537)
-* BFD_RELOC_386_TLS_DTPOFF32:            howto manager.      (line  538)
-* BFD_RELOC_386_TLS_GD:                  howto manager.      (line  532)
-* BFD_RELOC_386_TLS_GOTDESC:             howto manager.      (line  540)
-* BFD_RELOC_386_TLS_GOTIE:               howto manager.      (line  530)
-* BFD_RELOC_386_TLS_IE:                  howto manager.      (line  529)
-* BFD_RELOC_386_TLS_IE_32:               howto manager.      (line  535)
-* BFD_RELOC_386_TLS_LDM:                 howto manager.      (line  533)
-* BFD_RELOC_386_TLS_LDO_32:              howto manager.      (line  534)
-* BFD_RELOC_386_TLS_LE:                  howto manager.      (line  531)
-* BFD_RELOC_386_TLS_LE_32:               howto manager.      (line  536)
-* BFD_RELOC_386_TLS_TPOFF:               howto manager.      (line  528)
-* BFD_RELOC_386_TLS_TPOFF32:             howto manager.      (line  539)
-* BFD_RELOC_390_12:                      howto manager.      (line 1878)
-* BFD_RELOC_390_20:                      howto manager.      (line 1959)
-* BFD_RELOC_390_COPY:                    howto manager.      (line 1884)
-* BFD_RELOC_390_GLOB_DAT:                howto manager.      (line 1886)
-* BFD_RELOC_390_GOT12:                   howto manager.      (line 1880)
-* BFD_RELOC_390_GOT16:                   howto manager.      (line 1894)
-* BFD_RELOC_390_GOT20:                   howto manager.      (line 1960)
-* BFD_RELOC_390_GOT64:                   howto manager.      (line 1914)
-* BFD_RELOC_390_GOTENT:                  howto manager.      (line 1918)
-* BFD_RELOC_390_GOTOFF64:                howto manager.      (line 1920)
-* BFD_RELOC_390_GOTPC:                   howto manager.      (line 1892)
-* BFD_RELOC_390_GOTPCDBL:                howto manager.      (line 1912)
-* BFD_RELOC_390_GOTPLT12:                howto manager.      (line 1922)
-* BFD_RELOC_390_GOTPLT16:                howto manager.      (line 1924)
-* BFD_RELOC_390_GOTPLT20:                howto manager.      (line 1961)
-* BFD_RELOC_390_GOTPLT32:                howto manager.      (line 1926)
-* BFD_RELOC_390_GOTPLT64:                howto manager.      (line 1928)
-* BFD_RELOC_390_GOTPLTENT:               howto manager.      (line 1930)
-* BFD_RELOC_390_IRELATIVE:               howto manager.      (line 1964)
-* BFD_RELOC_390_JMP_SLOT:                howto manager.      (line 1888)
-* BFD_RELOC_390_PC12DBL:                 howto manager.      (line 1896)
-* BFD_RELOC_390_PC16DBL:                 howto manager.      (line 1900)
-* BFD_RELOC_390_PC24DBL:                 howto manager.      (line 1904)
-* BFD_RELOC_390_PC32DBL:                 howto manager.      (line 1908)
-* BFD_RELOC_390_PLT12DBL:                howto manager.      (line 1898)
-* BFD_RELOC_390_PLT16DBL:                howto manager.      (line 1902)
-* BFD_RELOC_390_PLT24DBL:                howto manager.      (line 1906)
-* BFD_RELOC_390_PLT32:                   howto manager.      (line 1882)
-* BFD_RELOC_390_PLT32DBL:                howto manager.      (line 1910)
-* BFD_RELOC_390_PLT64:                   howto manager.      (line 1916)
-* BFD_RELOC_390_PLTOFF16:                howto manager.      (line 1932)
-* BFD_RELOC_390_PLTOFF32:                howto manager.      (line 1934)
-* BFD_RELOC_390_PLTOFF64:                howto manager.      (line 1936)
-* BFD_RELOC_390_RELATIVE:                howto manager.      (line 1890)
-* BFD_RELOC_390_TLS_DTPMOD:              howto manager.      (line 1955)
-* BFD_RELOC_390_TLS_DTPOFF:              howto manager.      (line 1956)
-* BFD_RELOC_390_TLS_GD32:                howto manager.      (line 1941)
-* BFD_RELOC_390_TLS_GD64:                howto manager.      (line 1942)
-* BFD_RELOC_390_TLS_GDCALL:              howto manager.      (line 1939)
-* BFD_RELOC_390_TLS_GOTIE12:             howto manager.      (line 1943)
-* BFD_RELOC_390_TLS_GOTIE20:             howto manager.      (line 1962)
-* BFD_RELOC_390_TLS_GOTIE32:             howto manager.      (line 1944)
-* BFD_RELOC_390_TLS_GOTIE64:             howto manager.      (line 1945)
-* BFD_RELOC_390_TLS_IE32:                howto manager.      (line 1948)
-* BFD_RELOC_390_TLS_IE64:                howto manager.      (line 1949)
-* BFD_RELOC_390_TLS_IEENT:               howto manager.      (line 1950)
-* BFD_RELOC_390_TLS_LDCALL:              howto manager.      (line 1940)
-* BFD_RELOC_390_TLS_LDM32:               howto manager.      (line 1946)
-* BFD_RELOC_390_TLS_LDM64:               howto manager.      (line 1947)
-* BFD_RELOC_390_TLS_LDO32:               howto manager.      (line 1953)
-* BFD_RELOC_390_TLS_LDO64:               howto manager.      (line 1954)
-* BFD_RELOC_390_TLS_LE32:                howto manager.      (line 1951)
-* BFD_RELOC_390_TLS_LE64:                howto manager.      (line 1952)
-* BFD_RELOC_390_TLS_LOAD:                howto manager.      (line 1938)
-* BFD_RELOC_390_TLS_TPOFF:               howto manager.      (line 1957)
+* BFD_RELOC_386_COPY:                    howto manager.      (line  527)
+* BFD_RELOC_386_GLOB_DAT:                howto manager.      (line  528)
+* BFD_RELOC_386_GOT32:                   howto manager.      (line  525)
+* BFD_RELOC_386_GOT32X:                  howto manager.      (line  549)
+* BFD_RELOC_386_GOTOFF:                  howto manager.      (line  531)
+* BFD_RELOC_386_GOTPC:                   howto manager.      (line  532)
+* BFD_RELOC_386_IRELATIVE:               howto manager.      (line  548)
+* BFD_RELOC_386_JUMP_SLOT:               howto manager.      (line  529)
+* BFD_RELOC_386_PLT32:                   howto manager.      (line  526)
+* BFD_RELOC_386_RELATIVE:                howto manager.      (line  530)
+* BFD_RELOC_386_TLS_DESC:                howto manager.      (line  547)
+* BFD_RELOC_386_TLS_DESC_CALL:           howto manager.      (line  546)
+* BFD_RELOC_386_TLS_DTPMOD32:            howto manager.      (line  542)
+* BFD_RELOC_386_TLS_DTPOFF32:            howto manager.      (line  543)
+* BFD_RELOC_386_TLS_GD:                  howto manager.      (line  537)
+* BFD_RELOC_386_TLS_GOTDESC:             howto manager.      (line  545)
+* BFD_RELOC_386_TLS_GOTIE:               howto manager.      (line  535)
+* BFD_RELOC_386_TLS_IE:                  howto manager.      (line  534)
+* BFD_RELOC_386_TLS_IE_32:               howto manager.      (line  540)
+* BFD_RELOC_386_TLS_LDM:                 howto manager.      (line  538)
+* BFD_RELOC_386_TLS_LDO_32:              howto manager.      (line  539)
+* BFD_RELOC_386_TLS_LE:                  howto manager.      (line  536)
+* BFD_RELOC_386_TLS_LE_32:               howto manager.      (line  541)
+* BFD_RELOC_386_TLS_TPOFF:               howto manager.      (line  533)
+* BFD_RELOC_386_TLS_TPOFF32:             howto manager.      (line  544)
+* BFD_RELOC_390_12:                      howto manager.      (line 1885)
+* BFD_RELOC_390_20:                      howto manager.      (line 1966)
+* BFD_RELOC_390_COPY:                    howto manager.      (line 1891)
+* BFD_RELOC_390_GLOB_DAT:                howto manager.      (line 1893)
+* BFD_RELOC_390_GOT12:                   howto manager.      (line 1887)
+* BFD_RELOC_390_GOT16:                   howto manager.      (line 1901)
+* BFD_RELOC_390_GOT20:                   howto manager.      (line 1967)
+* BFD_RELOC_390_GOT64:                   howto manager.      (line 1921)
+* BFD_RELOC_390_GOTENT:                  howto manager.      (line 1925)
+* BFD_RELOC_390_GOTOFF64:                howto manager.      (line 1927)
+* BFD_RELOC_390_GOTPC:                   howto manager.      (line 1899)
+* BFD_RELOC_390_GOTPCDBL:                howto manager.      (line 1919)
+* BFD_RELOC_390_GOTPLT12:                howto manager.      (line 1929)
+* BFD_RELOC_390_GOTPLT16:                howto manager.      (line 1931)
+* BFD_RELOC_390_GOTPLT20:                howto manager.      (line 1968)
+* BFD_RELOC_390_GOTPLT32:                howto manager.      (line 1933)
+* BFD_RELOC_390_GOTPLT64:                howto manager.      (line 1935)
+* BFD_RELOC_390_GOTPLTENT:               howto manager.      (line 1937)
+* BFD_RELOC_390_IRELATIVE:               howto manager.      (line 1971)
+* BFD_RELOC_390_JMP_SLOT:                howto manager.      (line 1895)
+* BFD_RELOC_390_PC12DBL:                 howto manager.      (line 1903)
+* BFD_RELOC_390_PC16DBL:                 howto manager.      (line 1907)
+* BFD_RELOC_390_PC24DBL:                 howto manager.      (line 1911)
+* BFD_RELOC_390_PC32DBL:                 howto manager.      (line 1915)
+* BFD_RELOC_390_PLT12DBL:                howto manager.      (line 1905)
+* BFD_RELOC_390_PLT16DBL:                howto manager.      (line 1909)
+* BFD_RELOC_390_PLT24DBL:                howto manager.      (line 1913)
+* BFD_RELOC_390_PLT32:                   howto manager.      (line 1889)
+* BFD_RELOC_390_PLT32DBL:                howto manager.      (line 1917)
+* BFD_RELOC_390_PLT64:                   howto manager.      (line 1923)
+* BFD_RELOC_390_PLTOFF16:                howto manager.      (line 1939)
+* BFD_RELOC_390_PLTOFF32:                howto manager.      (line 1941)
+* BFD_RELOC_390_PLTOFF64:                howto manager.      (line 1943)
+* BFD_RELOC_390_RELATIVE:                howto manager.      (line 1897)
+* BFD_RELOC_390_TLS_DTPMOD:              howto manager.      (line 1962)
+* BFD_RELOC_390_TLS_DTPOFF:              howto manager.      (line 1963)
+* BFD_RELOC_390_TLS_GD32:                howto manager.      (line 1948)
+* BFD_RELOC_390_TLS_GD64:                howto manager.      (line 1949)
+* BFD_RELOC_390_TLS_GDCALL:              howto manager.      (line 1946)
+* BFD_RELOC_390_TLS_GOTIE12:             howto manager.      (line 1950)
+* BFD_RELOC_390_TLS_GOTIE20:             howto manager.      (line 1969)
+* BFD_RELOC_390_TLS_GOTIE32:             howto manager.      (line 1951)
+* BFD_RELOC_390_TLS_GOTIE64:             howto manager.      (line 1952)
+* BFD_RELOC_390_TLS_IE32:                howto manager.      (line 1955)
+* BFD_RELOC_390_TLS_IE64:                howto manager.      (line 1956)
+* BFD_RELOC_390_TLS_IEENT:               howto manager.      (line 1957)
+* BFD_RELOC_390_TLS_LDCALL:              howto manager.      (line 1947)
+* BFD_RELOC_390_TLS_LDM32:               howto manager.      (line 1953)
+* BFD_RELOC_390_TLS_LDM64:               howto manager.      (line 1954)
+* BFD_RELOC_390_TLS_LDO32:               howto manager.      (line 1960)
+* BFD_RELOC_390_TLS_LDO64:               howto manager.      (line 1961)
+* BFD_RELOC_390_TLS_LE32:                howto manager.      (line 1958)
+* BFD_RELOC_390_TLS_LE64:                howto manager.      (line 1959)
+* BFD_RELOC_390_TLS_LOAD:                howto manager.      (line 1945)
+* BFD_RELOC_390_TLS_TPOFF:               howto manager.      (line 1964)
 * BFD_RELOC_64:                          howto manager.      (line   25)
 * BFD_RELOC_64_PCREL:                    howto manager.      (line   33)
 * BFD_RELOC_64_PLTOFF:                   howto manager.      (line   61)
@@ -11792,38 +11913,38 @@ BFD Index
 * BFD_RELOC_68K_TLS_LE32:                howto manager.      (line   87)
 * BFD_RELOC_68K_TLS_LE8:                 howto manager.      (line   89)
 * BFD_RELOC_8:                           howto manager.      (line   31)
-* BFD_RELOC_860_COPY:                    howto manager.      (line 2329)
-* BFD_RELOC_860_GLOB_DAT:                howto manager.      (line 2330)
-* BFD_RELOC_860_HAGOT:                   howto manager.      (line 2355)
-* BFD_RELOC_860_HAGOTOFF:                howto manager.      (line 2356)
-* BFD_RELOC_860_HAPC:                    howto manager.      (line 2357)
-* BFD_RELOC_860_HIGH:                    howto manager.      (line 2358)
-* BFD_RELOC_860_HIGHADJ:                 howto manager.      (line 2354)
-* BFD_RELOC_860_HIGOT:                   howto manager.      (line 2359)
-* BFD_RELOC_860_HIGOTOFF:                howto manager.      (line 2360)
-* BFD_RELOC_860_JUMP_SLOT:               howto manager.      (line 2331)
-* BFD_RELOC_860_LOGOT0:                  howto manager.      (line 2343)
-* BFD_RELOC_860_LOGOT1:                  howto manager.      (line 2345)
-* BFD_RELOC_860_LOGOTOFF0:               howto manager.      (line 2347)
-* BFD_RELOC_860_LOGOTOFF1:               howto manager.      (line 2349)
-* BFD_RELOC_860_LOGOTOFF2:               howto manager.      (line 2351)
-* BFD_RELOC_860_LOGOTOFF3:               howto manager.      (line 2352)
-* BFD_RELOC_860_LOPC:                    howto manager.      (line 2353)
-* BFD_RELOC_860_LOW0:                    howto manager.      (line 2336)
-* BFD_RELOC_860_LOW1:                    howto manager.      (line 2338)
-* BFD_RELOC_860_LOW2:                    howto manager.      (line 2340)
-* BFD_RELOC_860_LOW3:                    howto manager.      (line 2342)
-* BFD_RELOC_860_PC16:                    howto manager.      (line 2335)
-* BFD_RELOC_860_PC26:                    howto manager.      (line 2333)
-* BFD_RELOC_860_PLT26:                   howto manager.      (line 2334)
-* BFD_RELOC_860_RELATIVE:                howto manager.      (line 2332)
-* BFD_RELOC_860_SPGOT0:                  howto manager.      (line 2344)
-* BFD_RELOC_860_SPGOT1:                  howto manager.      (line 2346)
-* BFD_RELOC_860_SPGOTOFF0:               howto manager.      (line 2348)
-* BFD_RELOC_860_SPGOTOFF1:               howto manager.      (line 2350)
-* BFD_RELOC_860_SPLIT0:                  howto manager.      (line 2337)
-* BFD_RELOC_860_SPLIT1:                  howto manager.      (line 2339)
-* BFD_RELOC_860_SPLIT2:                  howto manager.      (line 2341)
+* BFD_RELOC_860_COPY:                    howto manager.      (line 2336)
+* BFD_RELOC_860_GLOB_DAT:                howto manager.      (line 2337)
+* BFD_RELOC_860_HAGOT:                   howto manager.      (line 2362)
+* BFD_RELOC_860_HAGOTOFF:                howto manager.      (line 2363)
+* BFD_RELOC_860_HAPC:                    howto manager.      (line 2364)
+* BFD_RELOC_860_HIGH:                    howto manager.      (line 2365)
+* BFD_RELOC_860_HIGHADJ:                 howto manager.      (line 2361)
+* BFD_RELOC_860_HIGOT:                   howto manager.      (line 2366)
+* BFD_RELOC_860_HIGOTOFF:                howto manager.      (line 2367)
+* BFD_RELOC_860_JUMP_SLOT:               howto manager.      (line 2338)
+* BFD_RELOC_860_LOGOT0:                  howto manager.      (line 2350)
+* BFD_RELOC_860_LOGOT1:                  howto manager.      (line 2352)
+* BFD_RELOC_860_LOGOTOFF0:               howto manager.      (line 2354)
+* BFD_RELOC_860_LOGOTOFF1:               howto manager.      (line 2356)
+* BFD_RELOC_860_LOGOTOFF2:               howto manager.      (line 2358)
+* BFD_RELOC_860_LOGOTOFF3:               howto manager.      (line 2359)
+* BFD_RELOC_860_LOPC:                    howto manager.      (line 2360)
+* BFD_RELOC_860_LOW0:                    howto manager.      (line 2343)
+* BFD_RELOC_860_LOW1:                    howto manager.      (line 2345)
+* BFD_RELOC_860_LOW2:                    howto manager.      (line 2347)
+* BFD_RELOC_860_LOW3:                    howto manager.      (line 2349)
+* BFD_RELOC_860_PC16:                    howto manager.      (line 2342)
+* BFD_RELOC_860_PC26:                    howto manager.      (line 2340)
+* BFD_RELOC_860_PLT26:                   howto manager.      (line 2341)
+* BFD_RELOC_860_RELATIVE:                howto manager.      (line 2339)
+* BFD_RELOC_860_SPGOT0:                  howto manager.      (line 2351)
+* BFD_RELOC_860_SPGOT1:                  howto manager.      (line 2353)
+* BFD_RELOC_860_SPGOTOFF0:               howto manager.      (line 2355)
+* BFD_RELOC_860_SPGOTOFF1:               howto manager.      (line 2357)
+* BFD_RELOC_860_SPLIT0:                  howto manager.      (line 2344)
+* BFD_RELOC_860_SPLIT1:                  howto manager.      (line 2346)
+* BFD_RELOC_860_SPLIT2:                  howto manager.      (line 2348)
 * BFD_RELOC_8_BASEREL:                   howto manager.      (line   96)
 * BFD_RELOC_8_FFnn:                      howto manager.      (line   99)
 * BFD_RELOC_8_GOTOFF:                    howto manager.      (line   55)
@@ -11831,130 +11952,130 @@ BFD Index
 * BFD_RELOC_8_PCREL:                     howto manager.      (line   38)
 * BFD_RELOC_8_PLTOFF:                    howto manager.      (line   67)
 * BFD_RELOC_8_PLT_PCREL:                 howto manager.      (line   60)
-* BFD_RELOC_AARCH64_16:                  howto manager.      (line 2734)
-* BFD_RELOC_AARCH64_16_PCREL:            howto manager.      (line 2740)
-* BFD_RELOC_AARCH64_32:                  howto manager.      (line 2733)
-* BFD_RELOC_AARCH64_32_PCREL:            howto manager.      (line 2739)
-* BFD_RELOC_AARCH64_64:                  howto manager.      (line 2732)
-* BFD_RELOC_AARCH64_64_PCREL:            howto manager.      (line 2738)
-* BFD_RELOC_AARCH64_ADD_LO12:            howto manager.      (line 2790)
-* BFD_RELOC_AARCH64_ADR_GOT_PAGE:        howto manager.      (line 2836)
-* BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL:   howto manager.      (line 2786)
-* BFD_RELOC_AARCH64_ADR_HI21_PCREL:      howto manager.      (line 2783)
-* BFD_RELOC_AARCH64_ADR_LO21_PCREL:      howto manager.      (line 2780)
-* BFD_RELOC_AARCH64_BRANCH19:            howto manager.      (line 2802)
-* BFD_RELOC_AARCH64_CALL26:              howto manager.      (line 2810)
-* BFD_RELOC_AARCH64_COPY:                howto manager.      (line 2979)
-* BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP:  howto manager.      (line 3003)
-* BFD_RELOC_AARCH64_GLOB_DAT:            howto manager.      (line 2981)
-* BFD_RELOC_AARCH64_GOT_LD_PREL19:       howto manager.      (line 2830)
-* BFD_RELOC_AARCH64_IRELATIVE:           howto manager.      (line 2995)
-* BFD_RELOC_AARCH64_JUMP26:              howto manager.      (line 2806)
-* BFD_RELOC_AARCH64_JUMP_SLOT:           howto manager.      (line 2983)
-* BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14:   howto manager.      (line 2857)
-* BFD_RELOC_AARCH64_LD32_GOT_LO12_NC:    howto manager.      (line 2844)
-* BFD_RELOC_AARCH64_LD64_GOTOFF_LO15:    howto manager.      (line 2854)
-* BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15:   howto manager.      (line 2860)
-* BFD_RELOC_AARCH64_LD64_GOT_LO12_NC:    howto manager.      (line 2840)
-* BFD_RELOC_AARCH64_LDST128_LO12:        howto manager.      (line 2826)
-* BFD_RELOC_AARCH64_LDST16_LO12:         howto manager.      (line 2814)
-* BFD_RELOC_AARCH64_LDST32_LO12:         howto manager.      (line 2818)
-* BFD_RELOC_AARCH64_LDST64_LO12:         howto manager.      (line 2822)
-* BFD_RELOC_AARCH64_LDST8_LO12:          howto manager.      (line 2794)
-* BFD_RELOC_AARCH64_LDST_LO12:           howto manager.      (line 3006)
-* BFD_RELOC_AARCH64_LD_GOT_LO12_NC:      howto manager.      (line 3017)
-* BFD_RELOC_AARCH64_LD_LO19_PCREL:       howto manager.      (line 2776)
-* BFD_RELOC_AARCH64_MOVW_G0:             howto manager.      (line 2743)
-* BFD_RELOC_AARCH64_MOVW_G0_NC:          howto manager.      (line 2746)
-* BFD_RELOC_AARCH64_MOVW_G0_S:           howto manager.      (line 2764)
-* BFD_RELOC_AARCH64_MOVW_G1:             howto manager.      (line 2749)
-* BFD_RELOC_AARCH64_MOVW_G1_NC:          howto manager.      (line 2752)
-* BFD_RELOC_AARCH64_MOVW_G1_S:           howto manager.      (line 2768)
-* BFD_RELOC_AARCH64_MOVW_G2:             howto manager.      (line 2755)
-* BFD_RELOC_AARCH64_MOVW_G2_NC:          howto manager.      (line 2758)
-* BFD_RELOC_AARCH64_MOVW_G2_S:           howto manager.      (line 2772)
-* BFD_RELOC_AARCH64_MOVW_G3:             howto manager.      (line 2761)
-* BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC:   howto manager.      (line 2848)
-* BFD_RELOC_AARCH64_MOVW_GOTOFF_G1:      howto manager.      (line 2851)
-* BFD_RELOC_AARCH64_NONE:                howto manager.      (line 2730)
-* BFD_RELOC_AARCH64_NULL:                howto manager.      (line 2728)
-* BFD_RELOC_AARCH64_RELATIVE:            howto manager.      (line 2985)
-* BFD_RELOC_AARCH64_RELOC_END:           howto manager.      (line 2997)
-* BFD_RELOC_AARCH64_RELOC_START:         howto manager.      (line 2723)
-* BFD_RELOC_AARCH64_TLSDESC:             howto manager.      (line 2993)
-* BFD_RELOC_AARCH64_TLSDESC_ADD:         howto manager.      (line 2975)
-* BFD_RELOC_AARCH64_TLSDESC_ADD_LO12:    howto manager.      (line 2967)
-* BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21:  howto manager.      (line 2961)
-* BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21:  howto manager.      (line 2959)
-* BFD_RELOC_AARCH64_TLSDESC_CALL:        howto manager.      (line 2977)
-* BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC: howto manager.     (line 2965)
-* BFD_RELOC_AARCH64_TLSDESC_LD64_LO12:   howto manager.      (line 2963)
-* BFD_RELOC_AARCH64_TLSDESC_LDR:         howto manager.      (line 2973)
-* BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC:  howto manager.      (line 3023)
-* BFD_RELOC_AARCH64_TLSDESC_LD_PREL19:   howto manager.      (line 2957)
-* BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC:   howto manager.      (line 2971)
-* BFD_RELOC_AARCH64_TLSDESC_OFF_G1:      howto manager.      (line 2969)
-* BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC:   howto manager.      (line 2870)
-* BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21:    howto manager.      (line 2863)
-* BFD_RELOC_AARCH64_TLSGD_ADR_PREL21:    howto manager.      (line 2868)
-* BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:    howto manager.      (line 2874)
-* BFD_RELOC_AARCH64_TLSGD_MOVW_G1:       howto manager.      (line 2876)
+* BFD_RELOC_AARCH64_16:                  howto manager.      (line 2741)
+* BFD_RELOC_AARCH64_16_PCREL:            howto manager.      (line 2747)
+* BFD_RELOC_AARCH64_32:                  howto manager.      (line 2740)
+* BFD_RELOC_AARCH64_32_PCREL:            howto manager.      (line 2746)
+* BFD_RELOC_AARCH64_64:                  howto manager.      (line 2739)
+* BFD_RELOC_AARCH64_64_PCREL:            howto manager.      (line 2745)
+* BFD_RELOC_AARCH64_ADD_LO12:            howto manager.      (line 2797)
+* BFD_RELOC_AARCH64_ADR_GOT_PAGE:        howto manager.      (line 2843)
+* BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL:   howto manager.      (line 2793)
+* BFD_RELOC_AARCH64_ADR_HI21_PCREL:      howto manager.      (line 2790)
+* BFD_RELOC_AARCH64_ADR_LO21_PCREL:      howto manager.      (line 2787)
+* BFD_RELOC_AARCH64_BRANCH19:            howto manager.      (line 2809)
+* BFD_RELOC_AARCH64_CALL26:              howto manager.      (line 2817)
+* BFD_RELOC_AARCH64_COPY:                howto manager.      (line 2986)
+* BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP:  howto manager.      (line 3010)
+* BFD_RELOC_AARCH64_GLOB_DAT:            howto manager.      (line 2988)
+* BFD_RELOC_AARCH64_GOT_LD_PREL19:       howto manager.      (line 2837)
+* BFD_RELOC_AARCH64_IRELATIVE:           howto manager.      (line 3002)
+* BFD_RELOC_AARCH64_JUMP26:              howto manager.      (line 2813)
+* BFD_RELOC_AARCH64_JUMP_SLOT:           howto manager.      (line 2990)
+* BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14:   howto manager.      (line 2864)
+* BFD_RELOC_AARCH64_LD32_GOT_LO12_NC:    howto manager.      (line 2851)
+* BFD_RELOC_AARCH64_LD64_GOTOFF_LO15:    howto manager.      (line 2861)
+* BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15:   howto manager.      (line 2867)
+* BFD_RELOC_AARCH64_LD64_GOT_LO12_NC:    howto manager.      (line 2847)
+* BFD_RELOC_AARCH64_LDST128_LO12:        howto manager.      (line 2833)
+* BFD_RELOC_AARCH64_LDST16_LO12:         howto manager.      (line 2821)
+* BFD_RELOC_AARCH64_LDST32_LO12:         howto manager.      (line 2825)
+* BFD_RELOC_AARCH64_LDST64_LO12:         howto manager.      (line 2829)
+* BFD_RELOC_AARCH64_LDST8_LO12:          howto manager.      (line 2801)
+* BFD_RELOC_AARCH64_LDST_LO12:           howto manager.      (line 3013)
+* BFD_RELOC_AARCH64_LD_GOT_LO12_NC:      howto manager.      (line 3024)
+* BFD_RELOC_AARCH64_LD_LO19_PCREL:       howto manager.      (line 2783)
+* BFD_RELOC_AARCH64_MOVW_G0:             howto manager.      (line 2750)
+* BFD_RELOC_AARCH64_MOVW_G0_NC:          howto manager.      (line 2753)
+* BFD_RELOC_AARCH64_MOVW_G0_S:           howto manager.      (line 2771)
+* BFD_RELOC_AARCH64_MOVW_G1:             howto manager.      (line 2756)
+* BFD_RELOC_AARCH64_MOVW_G1_NC:          howto manager.      (line 2759)
+* BFD_RELOC_AARCH64_MOVW_G1_S:           howto manager.      (line 2775)
+* BFD_RELOC_AARCH64_MOVW_G2:             howto manager.      (line 2762)
+* BFD_RELOC_AARCH64_MOVW_G2_NC:          howto manager.      (line 2765)
+* BFD_RELOC_AARCH64_MOVW_G2_S:           howto manager.      (line 2779)
+* BFD_RELOC_AARCH64_MOVW_G3:             howto manager.      (line 2768)
+* BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC:   howto manager.      (line 2855)
+* BFD_RELOC_AARCH64_MOVW_GOTOFF_G1:      howto manager.      (line 2858)
+* BFD_RELOC_AARCH64_NONE:                howto manager.      (line 2737)
+* BFD_RELOC_AARCH64_NULL:                howto manager.      (line 2735)
+* BFD_RELOC_AARCH64_RELATIVE:            howto manager.      (line 2992)
+* BFD_RELOC_AARCH64_RELOC_END:           howto manager.      (line 3004)
+* BFD_RELOC_AARCH64_RELOC_START:         howto manager.      (line 2730)
+* BFD_RELOC_AARCH64_TLSDESC:             howto manager.      (line 3000)
+* BFD_RELOC_AARCH64_TLSDESC_ADD:         howto manager.      (line 2982)
+* BFD_RELOC_AARCH64_TLSDESC_ADD_LO12:    howto manager.      (line 2974)
+* BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21:  howto manager.      (line 2968)
+* BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21:  howto manager.      (line 2966)
+* BFD_RELOC_AARCH64_TLSDESC_CALL:        howto manager.      (line 2984)
+* BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC: howto manager.     (line 2972)
+* BFD_RELOC_AARCH64_TLSDESC_LD64_LO12:   howto manager.      (line 2970)
+* BFD_RELOC_AARCH64_TLSDESC_LDR:         howto manager.      (line 2980)
+* BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC:  howto manager.      (line 3030)
+* BFD_RELOC_AARCH64_TLSDESC_LD_PREL19:   howto manager.      (line 2964)
+* BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC:   howto manager.      (line 2978)
+* BFD_RELOC_AARCH64_TLSDESC_OFF_G1:      howto manager.      (line 2976)
+* BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC:   howto manager.      (line 2877)
+* BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21:    howto manager.      (line 2870)
+* BFD_RELOC_AARCH64_TLSGD_ADR_PREL21:    howto manager.      (line 2875)
+* BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:    howto manager.      (line 2881)
+* BFD_RELOC_AARCH64_TLSGD_MOVW_G1:       howto manager.      (line 2883)
 * BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21: howto manager.
-                                                             (line 2878)
+                                                             (line 2885)
 * BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC: howto manager.
-                                                             (line 2882)
+                                                             (line 2889)
 * BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC: howto manager.
-                                                             (line 2880)
+                                                             (line 2887)
 * BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC: howto manager.
-                                                             (line 3020)
-* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19: howto manager. (line 2884)
+                                                             (line 3027)
+* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19: howto manager. (line 2891)
 * BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC: howto manager.
-                                                             (line 2886)
-* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1: howto manager.   (line 2888)
-* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12: howto manager.    (line 2890)
-* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12: howto manager.    (line 2892)
-* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC: howto manager. (line 2894)
-* BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC:   howto manager.      (line 2897)
-* BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21:    howto manager.      (line 2901)
-* BFD_RELOC_AARCH64_TLSLD_ADR_PREL21:    howto manager.      (line 2904)
-* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12: howto manager. (line 2907)
+                                                             (line 2893)
+* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1: howto manager.   (line 2895)
+* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12: howto manager.    (line 2897)
+* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12: howto manager.    (line 2899)
+* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC: howto manager. (line 2901)
+* BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC:   howto manager.      (line 2904)
+* BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21:    howto manager.      (line 2908)
+* BFD_RELOC_AARCH64_TLSLD_ADR_PREL21:    howto manager.      (line 2911)
+* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12: howto manager. (line 2914)
 * BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC: howto manager.
-                                                             (line 2910)
-* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12: howto manager. (line 2913)
+                                                             (line 2917)
+* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12: howto manager. (line 2920)
 * BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC: howto manager.
-                                                             (line 2916)
-* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12: howto manager. (line 2919)
+                                                             (line 2923)
+* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12: howto manager. (line 2926)
 * BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC: howto manager.
-                                                             (line 2922)
-* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12: howto manager.  (line 2925)
+                                                             (line 2929)
+* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12: howto manager.  (line 2932)
 * BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC: howto manager.
-                                                             (line 2928)
-* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12: howto manager.   (line 3010)
+                                                             (line 2935)
+* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12: howto manager.   (line 3017)
 * BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC: howto manager.
-                                                             (line 3014)
-* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0: howto manager.     (line 2931)
-* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC: howto manager.  (line 2933)
-* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1: howto manager.     (line 2935)
-* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC: howto manager.  (line 2937)
-* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2: howto manager.     (line 2939)
-* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12: howto manager.     (line 2951)
-* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12: howto manager.     (line 2953)
-* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC: howto manager.  (line 2955)
-* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0: howto manager.      (line 2947)
-* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: howto manager.   (line 2949)
-* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1: howto manager.      (line 2943)
-* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC: howto manager.   (line 2945)
-* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2: howto manager.      (line 2941)
-* BFD_RELOC_AARCH64_TLS_DTPMOD:          howto manager.      (line 2987)
-* BFD_RELOC_AARCH64_TLS_DTPREL:          howto manager.      (line 2989)
-* BFD_RELOC_AARCH64_TLS_TPREL:           howto manager.      (line 2991)
-* BFD_RELOC_AARCH64_TSTBR14:             howto manager.      (line 2798)
-* BFD_RELOC_AC_SECTOFF_S9:               howto manager.      (line 1009)
-* BFD_RELOC_AC_SECTOFF_S9_1:             howto manager.      (line 1010)
-* BFD_RELOC_AC_SECTOFF_S9_2:             howto manager.      (line 1011)
-* BFD_RELOC_AC_SECTOFF_U8:               howto manager.      (line 1006)
-* BFD_RELOC_AC_SECTOFF_U8_1:             howto manager.      (line 1007)
-* BFD_RELOC_AC_SECTOFF_U8_2:             howto manager.      (line 1008)
+                                                             (line 3021)
+* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0: howto manager.     (line 2938)
+* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC: howto manager.  (line 2940)
+* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1: howto manager.     (line 2942)
+* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC: howto manager.  (line 2944)
+* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2: howto manager.     (line 2946)
+* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12: howto manager.     (line 2958)
+* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12: howto manager.     (line 2960)
+* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC: howto manager.  (line 2962)
+* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0: howto manager.      (line 2954)
+* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: howto manager.   (line 2956)
+* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1: howto manager.      (line 2950)
+* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC: howto manager.   (line 2952)
+* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2: howto manager.      (line 2948)
+* BFD_RELOC_AARCH64_TLS_DTPMOD:          howto manager.      (line 2994)
+* BFD_RELOC_AARCH64_TLS_DTPREL:          howto manager.      (line 2996)
+* BFD_RELOC_AARCH64_TLS_TPREL:           howto manager.      (line 2998)
+* BFD_RELOC_AARCH64_TSTBR14:             howto manager.      (line 2805)
+* BFD_RELOC_AC_SECTOFF_S9:               howto manager.      (line 1014)
+* BFD_RELOC_AC_SECTOFF_S9_1:             howto manager.      (line 1015)
+* BFD_RELOC_AC_SECTOFF_S9_2:             howto manager.      (line 1016)
+* BFD_RELOC_AC_SECTOFF_U8:               howto manager.      (line 1011)
+* BFD_RELOC_AC_SECTOFF_U8_1:             howto manager.      (line 1012)
+* BFD_RELOC_AC_SECTOFF_U8_2:             howto manager.      (line 1013)
 * BFD_RELOC_ALPHA_BOH:                   howto manager.      (line  292)
 * BFD_RELOC_ALPHA_BRSGP:                 howto manager.      (line  279)
 * BFD_RELOC_ALPHA_BSR:                   howto manager.      (line  286)
@@ -11984,430 +12105,436 @@ BFD Index
 * BFD_RELOC_ALPHA_TPREL64:               howto manager.      (line  304)
 * BFD_RELOC_ALPHA_TPREL_HI16:            howto manager.      (line  305)
 * BFD_RELOC_ALPHA_TPREL_LO16:            howto manager.      (line  306)
-* BFD_RELOC_ARC_16:                      howto manager.      (line  978)
-* BFD_RELOC_ARC_24:                      howto manager.      (line  979)
-* BFD_RELOC_ARC_32:                      howto manager.      (line  980)
-* BFD_RELOC_ARC_32_ME:                   howto manager.      (line 1000)
-* BFD_RELOC_ARC_32_ME_S:                 howto manager.      (line 1001)
-* BFD_RELOC_ARC_32_PCREL:                howto manager.      (line 1018)
-* BFD_RELOC_ARC_8:                       howto manager.      (line  977)
-* BFD_RELOC_ARC_COPY:                    howto manager.      (line 1023)
-* BFD_RELOC_ARC_GLOB_DAT:                howto manager.      (line 1024)
-* BFD_RELOC_ARC_GOT32:                   howto manager.      (line 1020)
-* BFD_RELOC_ARC_GOTOFF:                  howto manager.      (line 1027)
-* BFD_RELOC_ARC_GOTPC:                   howto manager.      (line 1028)
-* BFD_RELOC_ARC_GOTPC32:                 howto manager.      (line 1021)
-* BFD_RELOC_ARC_JMP_SLOT:                howto manager.      (line 1025)
-* BFD_RELOC_ARC_N16:                     howto manager.      (line  982)
-* BFD_RELOC_ARC_N24:                     howto manager.      (line  983)
-* BFD_RELOC_ARC_N32:                     howto manager.      (line  984)
-* BFD_RELOC_ARC_N32_ME:                  howto manager.      (line 1002)
-* BFD_RELOC_ARC_N8:                      howto manager.      (line  981)
-* BFD_RELOC_ARC_NONE:                    howto manager.      (line  976)
-* BFD_RELOC_ARC_NPS_CMEM16:              howto manager.      (line 1043)
-* BFD_RELOC_ARC_PC32:                    howto manager.      (line 1019)
-* BFD_RELOC_ARC_PLT32:                   howto manager.      (line 1022)
-* BFD_RELOC_ARC_RELATIVE:                howto manager.      (line 1026)
-* BFD_RELOC_ARC_S13_PCREL:               howto manager.      (line  998)
-* BFD_RELOC_ARC_S21H_PCREL:              howto manager.      (line  987)
-* BFD_RELOC_ARC_S21H_PCREL_PLT:          howto manager.      (line 1042)
-* BFD_RELOC_ARC_S21W_PCREL:              howto manager.      (line  988)
-* BFD_RELOC_ARC_S21W_PCREL_PLT:          howto manager.      (line 1029)
-* BFD_RELOC_ARC_S25H_PCREL:              howto manager.      (line  989)
-* BFD_RELOC_ARC_S25H_PCREL_PLT:          howto manager.      (line 1030)
-* BFD_RELOC_ARC_S25W_PCREL:              howto manager.      (line  990)
-* BFD_RELOC_ARC_S25W_PCREL_PLT:          howto manager.      (line 1041)
-* BFD_RELOC_ARC_SDA:                     howto manager.      (line  985)
-* BFD_RELOC_ARC_SDA16_LD:                howto manager.      (line  995)
-* BFD_RELOC_ARC_SDA16_LD1:               howto manager.      (line  996)
-* BFD_RELOC_ARC_SDA16_LD2:               howto manager.      (line  997)
-* BFD_RELOC_ARC_SDA16_ST2:               howto manager.      (line 1017)
-* BFD_RELOC_ARC_SDA32:                   howto manager.      (line  991)
-* BFD_RELOC_ARC_SDA32_ME:                howto manager.      (line 1004)
-* BFD_RELOC_ARC_SDA_12:                  howto manager.      (line 1016)
-* BFD_RELOC_ARC_SDA_LDST:                howto manager.      (line  992)
-* BFD_RELOC_ARC_SDA_LDST1:               howto manager.      (line  993)
-* BFD_RELOC_ARC_SDA_LDST2:               howto manager.      (line  994)
-* BFD_RELOC_ARC_SECTOFF:                 howto manager.      (line  986)
-* BFD_RELOC_ARC_SECTOFF_1:               howto manager.      (line 1014)
-* BFD_RELOC_ARC_SECTOFF_2:               howto manager.      (line 1015)
-* BFD_RELOC_ARC_SECTOFF_ME:              howto manager.      (line 1003)
-* BFD_RELOC_ARC_SECTOFF_ME_1:            howto manager.      (line 1012)
-* BFD_RELOC_ARC_SECTOFF_ME_2:            howto manager.      (line 1013)
-* BFD_RELOC_ARC_TLS_DTPMOD:              howto manager.      (line 1031)
-* BFD_RELOC_ARC_TLS_DTPOFF:              howto manager.      (line 1037)
-* BFD_RELOC_ARC_TLS_DTPOFF_S9:           howto manager.      (line 1038)
-* BFD_RELOC_ARC_TLS_GD_CALL:             howto manager.      (line 1035)
-* BFD_RELOC_ARC_TLS_GD_GOT:              howto manager.      (line 1033)
-* BFD_RELOC_ARC_TLS_GD_LD:               howto manager.      (line 1034)
-* BFD_RELOC_ARC_TLS_IE_GOT:              howto manager.      (line 1036)
-* BFD_RELOC_ARC_TLS_LE_32:               howto manager.      (line 1040)
-* BFD_RELOC_ARC_TLS_LE_S9:               howto manager.      (line 1039)
-* BFD_RELOC_ARC_TLS_TPOFF:               howto manager.      (line 1032)
-* BFD_RELOC_ARC_W:                       howto manager.      (line  999)
-* BFD_RELOC_ARC_W_ME:                    howto manager.      (line 1005)
-* BFD_RELOC_ARM_ADRL_IMMEDIATE:          howto manager.      (line  850)
-* BFD_RELOC_ARM_ADR_IMM:                 howto manager.      (line  864)
-* BFD_RELOC_ARM_ALU_PC_G0:               howto manager.      (line  812)
-* BFD_RELOC_ARM_ALU_PC_G0_NC:            howto manager.      (line  811)
-* BFD_RELOC_ARM_ALU_PC_G1:               howto manager.      (line  814)
-* BFD_RELOC_ARM_ALU_PC_G1_NC:            howto manager.      (line  813)
-* BFD_RELOC_ARM_ALU_PC_G2:               howto manager.      (line  815)
-* BFD_RELOC_ARM_ALU_SB_G0:               howto manager.      (line  826)
-* BFD_RELOC_ARM_ALU_SB_G0_NC:            howto manager.      (line  825)
-* BFD_RELOC_ARM_ALU_SB_G1:               howto manager.      (line  828)
-* BFD_RELOC_ARM_ALU_SB_G1_NC:            howto manager.      (line  827)
-* BFD_RELOC_ARM_ALU_SB_G2:               howto manager.      (line  829)
-* BFD_RELOC_ARM_CP_OFF_IMM:              howto manager.      (line  860)
-* BFD_RELOC_ARM_CP_OFF_IMM_S2:           howto manager.      (line  861)
-* BFD_RELOC_ARM_GLOB_DAT:                howto manager.      (line  788)
-* BFD_RELOC_ARM_GOT32:                   howto manager.      (line  789)
-* BFD_RELOC_ARM_GOTOFF:                  howto manager.      (line  792)
-* BFD_RELOC_ARM_GOTPC:                   howto manager.      (line  793)
-* BFD_RELOC_ARM_GOT_PREL:                howto manager.      (line  794)
-* BFD_RELOC_ARM_HVC:                     howto manager.      (line  857)
-* BFD_RELOC_ARM_HWLITERAL:               howto manager.      (line  871)
-* BFD_RELOC_ARM_IMMEDIATE:               howto manager.      (line  849)
-* BFD_RELOC_ARM_IN_POOL:                 howto manager.      (line  867)
-* BFD_RELOC_ARM_IRELATIVE:               howto manager.      (line  842)
-* BFD_RELOC_ARM_JUMP_SLOT:               howto manager.      (line  787)
-* BFD_RELOC_ARM_LDC_PC_G0:               howto manager.      (line  822)
-* BFD_RELOC_ARM_LDC_PC_G1:               howto manager.      (line  823)
-* BFD_RELOC_ARM_LDC_PC_G2:               howto manager.      (line  824)
-* BFD_RELOC_ARM_LDC_SB_G0:               howto manager.      (line  836)
-* BFD_RELOC_ARM_LDC_SB_G1:               howto manager.      (line  837)
-* BFD_RELOC_ARM_LDC_SB_G2:               howto manager.      (line  838)
-* BFD_RELOC_ARM_LDRS_PC_G0:              howto manager.      (line  819)
-* BFD_RELOC_ARM_LDRS_PC_G1:              howto manager.      (line  820)
-* BFD_RELOC_ARM_LDRS_PC_G2:              howto manager.      (line  821)
-* BFD_RELOC_ARM_LDRS_SB_G0:              howto manager.      (line  833)
-* BFD_RELOC_ARM_LDRS_SB_G1:              howto manager.      (line  834)
-* BFD_RELOC_ARM_LDRS_SB_G2:              howto manager.      (line  835)
-* BFD_RELOC_ARM_LDR_IMM:                 howto manager.      (line  865)
-* BFD_RELOC_ARM_LDR_PC_G0:               howto manager.      (line  816)
-* BFD_RELOC_ARM_LDR_PC_G1:               howto manager.      (line  817)
-* BFD_RELOC_ARM_LDR_PC_G2:               howto manager.      (line  818)
-* BFD_RELOC_ARM_LDR_SB_G0:               howto manager.      (line  830)
-* BFD_RELOC_ARM_LDR_SB_G1:               howto manager.      (line  831)
-* BFD_RELOC_ARM_LDR_SB_G2:               howto manager.      (line  832)
-* BFD_RELOC_ARM_LITERAL:                 howto manager.      (line  866)
-* BFD_RELOC_ARM_MOVT:                    howto manager.      (line  779)
-* BFD_RELOC_ARM_MOVT_PCREL:              howto manager.      (line  781)
-* BFD_RELOC_ARM_MOVW:                    howto manager.      (line  778)
-* BFD_RELOC_ARM_MOVW_PCREL:              howto manager.      (line  780)
-* BFD_RELOC_ARM_MULTI:                   howto manager.      (line  859)
-* BFD_RELOC_ARM_OFFSET_IMM:              howto manager.      (line  759)
-* BFD_RELOC_ARM_OFFSET_IMM8:             howto manager.      (line  868)
-* BFD_RELOC_ARM_PCREL_BLX:               howto manager.      (line  735)
-* BFD_RELOC_ARM_PCREL_BRANCH:            howto manager.      (line  732)
-* BFD_RELOC_ARM_PCREL_CALL:              howto manager.      (line  743)
-* BFD_RELOC_ARM_PCREL_JUMP:              howto manager.      (line  746)
-* BFD_RELOC_ARM_PLT32:                   howto manager.      (line  790)
-* BFD_RELOC_ARM_PREL31:                  howto manager.      (line  776)
-* BFD_RELOC_ARM_RELATIVE:                howto manager.      (line  791)
-* BFD_RELOC_ARM_ROSEGREL32:              howto manager.      (line  768)
-* BFD_RELOC_ARM_SBREL32:                 howto manager.      (line  770)
-* BFD_RELOC_ARM_SHIFT_IMM:               howto manager.      (line  855)
-* BFD_RELOC_ARM_SMC:                     howto manager.      (line  856)
-* BFD_RELOC_ARM_SWI:                     howto manager.      (line  858)
-* BFD_RELOC_ARM_T32_ADD_IMM:             howto manager.      (line  852)
-* BFD_RELOC_ARM_T32_ADD_PC12:            howto manager.      (line  854)
-* BFD_RELOC_ARM_T32_CP_OFF_IMM:          howto manager.      (line  862)
-* BFD_RELOC_ARM_T32_CP_OFF_IMM_S2:       howto manager.      (line  863)
-* BFD_RELOC_ARM_T32_IMM12:               howto manager.      (line  853)
-* BFD_RELOC_ARM_T32_IMMEDIATE:           howto manager.      (line  851)
-* BFD_RELOC_ARM_T32_OFFSET_IMM:          howto manager.      (line  870)
-* BFD_RELOC_ARM_T32_OFFSET_U8:           howto manager.      (line  869)
-* BFD_RELOC_ARM_TARGET1:                 howto manager.      (line  765)
-* BFD_RELOC_ARM_TARGET2:                 howto manager.      (line  772)
-* BFD_RELOC_ARM_THM_TLS_CALL:            howto manager.      (line  806)
-* BFD_RELOC_ARM_THM_TLS_DESCSEQ:         howto manager.      (line  808)
-* BFD_RELOC_ARM_THUMB_ADD:               howto manager.      (line  872)
-* BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC:     howto manager.      (line  844)
-* BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC:     howto manager.      (line  845)
-* BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC:     howto manager.      (line  846)
-* BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC:     howto manager.      (line  847)
-* BFD_RELOC_ARM_THUMB_IMM:               howto manager.      (line  873)
-* BFD_RELOC_ARM_THUMB_MOVT:              howto manager.      (line  783)
-* BFD_RELOC_ARM_THUMB_MOVT_PCREL:        howto manager.      (line  785)
-* BFD_RELOC_ARM_THUMB_MOVW:              howto manager.      (line  782)
-* BFD_RELOC_ARM_THUMB_MOVW_PCREL:        howto manager.      (line  784)
-* BFD_RELOC_ARM_THUMB_OFFSET:            howto manager.      (line  762)
-* BFD_RELOC_ARM_THUMB_SHIFT:             howto manager.      (line  874)
-* BFD_RELOC_ARM_TLS_CALL:                howto manager.      (line  805)
-* BFD_RELOC_ARM_TLS_DESC:                howto manager.      (line  809)
-* BFD_RELOC_ARM_TLS_DESCSEQ:             howto manager.      (line  807)
-* BFD_RELOC_ARM_TLS_DTPMOD32:            howto manager.      (line  800)
-* BFD_RELOC_ARM_TLS_DTPOFF32:            howto manager.      (line  799)
-* BFD_RELOC_ARM_TLS_GD32:                howto manager.      (line  796)
-* BFD_RELOC_ARM_TLS_GOTDESC:             howto manager.      (line  804)
-* BFD_RELOC_ARM_TLS_IE32:                howto manager.      (line  802)
-* BFD_RELOC_ARM_TLS_LDM32:               howto manager.      (line  798)
-* BFD_RELOC_ARM_TLS_LDO32:               howto manager.      (line  797)
-* BFD_RELOC_ARM_TLS_LE32:                howto manager.      (line  803)
-* BFD_RELOC_ARM_TLS_TPOFF32:             howto manager.      (line  801)
-* BFD_RELOC_ARM_V4BX:                    howto manager.      (line  840)
-* BFD_RELOC_AVR_13_PCREL:                howto manager.      (line 1663)
-* BFD_RELOC_AVR_16_PM:                   howto manager.      (line 1666)
-* BFD_RELOC_AVR_6:                       howto manager.      (line 1734)
-* BFD_RELOC_AVR_6_ADIW:                  howto manager.      (line 1737)
-* BFD_RELOC_AVR_7_PCREL:                 howto manager.      (line 1660)
-* BFD_RELOC_AVR_8_HI:                    howto manager.      (line 1743)
-* BFD_RELOC_AVR_8_HLO:                   howto manager.      (line 1746)
-* BFD_RELOC_AVR_8_LO:                    howto manager.      (line 1740)
-* BFD_RELOC_AVR_CALL:                    howto manager.      (line 1728)
-* BFD_RELOC_AVR_DIFF16:                  howto manager.      (line 1750)
-* BFD_RELOC_AVR_DIFF32:                  howto manager.      (line 1751)
-* BFD_RELOC_AVR_DIFF8:                   howto manager.      (line 1749)
-* BFD_RELOC_AVR_HH8_LDI:                 howto manager.      (line 1675)
-* BFD_RELOC_AVR_HH8_LDI_NEG:             howto manager.      (line 1690)
-* BFD_RELOC_AVR_HH8_LDI_PM:              howto manager.      (line 1713)
-* BFD_RELOC_AVR_HH8_LDI_PM_NEG:          howto manager.      (line 1724)
-* BFD_RELOC_AVR_HI8_LDI:                 howto manager.      (line 1672)
-* BFD_RELOC_AVR_HI8_LDI_GS:              howto manager.      (line 1708)
-* BFD_RELOC_AVR_HI8_LDI_NEG:             howto manager.      (line 1686)
-* BFD_RELOC_AVR_HI8_LDI_PM:              howto manager.      (line 1705)
-* BFD_RELOC_AVR_HI8_LDI_PM_NEG:          howto manager.      (line 1720)
-* BFD_RELOC_AVR_LDI:                     howto manager.      (line 1731)
-* BFD_RELOC_AVR_LDS_STS_16:              howto manager.      (line 1758)
-* BFD_RELOC_AVR_LO8_LDI:                 howto manager.      (line 1669)
-* BFD_RELOC_AVR_LO8_LDI_GS:              howto manager.      (line 1700)
-* BFD_RELOC_AVR_LO8_LDI_NEG:             howto manager.      (line 1682)
-* BFD_RELOC_AVR_LO8_LDI_PM:              howto manager.      (line 1697)
-* BFD_RELOC_AVR_LO8_LDI_PM_NEG:          howto manager.      (line 1717)
-* BFD_RELOC_AVR_MS8_LDI:                 howto manager.      (line 1679)
-* BFD_RELOC_AVR_MS8_LDI_NEG:             howto manager.      (line 1694)
-* BFD_RELOC_AVR_PORT5:                   howto manager.      (line 1764)
-* BFD_RELOC_AVR_PORT6:                   howto manager.      (line 1761)
-* BFD_RELOC_BFIN_10_PCREL:               howto manager.      (line 1055)
-* BFD_RELOC_BFIN_11_PCREL:               howto manager.      (line 1057)
-* BFD_RELOC_BFIN_12_PCREL_JUMP:          howto manager.      (line 1059)
-* BFD_RELOC_BFIN_12_PCREL_JUMP_S:        howto manager.      (line 1061)
-* BFD_RELOC_BFIN_16_HIGH:                howto manager.      (line 1047)
-* BFD_RELOC_BFIN_16_IMM:                 howto manager.      (line 1045)
-* BFD_RELOC_BFIN_16_LOW:                 howto manager.      (line 1053)
-* BFD_RELOC_BFIN_24_PCREL_CALL_X:        howto manager.      (line 1063)
-* BFD_RELOC_BFIN_24_PCREL_JUMP_L:        howto manager.      (line 1065)
-* BFD_RELOC_BFIN_4_PCREL:                howto manager.      (line 1049)
-* BFD_RELOC_BFIN_5_PCREL:                howto manager.      (line 1051)
-* BFD_RELOC_BFIN_FUNCDESC:               howto manager.      (line 1070)
-* BFD_RELOC_BFIN_FUNCDESC_GOT17M4:       howto manager.      (line 1071)
-* BFD_RELOC_BFIN_FUNCDESC_GOTHI:         howto manager.      (line 1072)
-* BFD_RELOC_BFIN_FUNCDESC_GOTLO:         howto manager.      (line 1073)
-* BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4:    howto manager.      (line 1075)
-* BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI:      howto manager.      (line 1076)
-* BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO:      howto manager.      (line 1077)
-* BFD_RELOC_BFIN_FUNCDESC_VALUE:         howto manager.      (line 1074)
-* BFD_RELOC_BFIN_GOT:                    howto manager.      (line 1082)
-* BFD_RELOC_BFIN_GOT17M4:                howto manager.      (line 1067)
-* BFD_RELOC_BFIN_GOTHI:                  howto manager.      (line 1068)
-* BFD_RELOC_BFIN_GOTLO:                  howto manager.      (line 1069)
-* BFD_RELOC_BFIN_GOTOFF17M4:             howto manager.      (line 1078)
-* BFD_RELOC_BFIN_GOTOFFHI:               howto manager.      (line 1079)
-* BFD_RELOC_BFIN_GOTOFFLO:               howto manager.      (line 1080)
-* BFD_RELOC_BFIN_PLTPC:                  howto manager.      (line 1084)
-* BFD_RELOC_C6000_ABS_H16:               howto manager.      (line 1505)
-* BFD_RELOC_C6000_ABS_L16:               howto manager.      (line 1504)
-* BFD_RELOC_C6000_ABS_S16:               howto manager.      (line 1503)
-* BFD_RELOC_C6000_ALIGN:                 howto manager.      (line 1526)
-* BFD_RELOC_C6000_COPY:                  howto manager.      (line 1521)
-* BFD_RELOC_C6000_DSBT_INDEX:            howto manager.      (line 1519)
-* BFD_RELOC_C6000_EHTYPE:                howto manager.      (line 1523)
-* BFD_RELOC_C6000_FPHEAD:                howto manager.      (line 1527)
-* BFD_RELOC_C6000_JUMP_SLOT:             howto manager.      (line 1522)
-* BFD_RELOC_C6000_NOCMP:                 howto manager.      (line 1528)
-* BFD_RELOC_C6000_PCR_H16:               howto manager.      (line 1524)
-* BFD_RELOC_C6000_PCR_L16:               howto manager.      (line 1525)
-* BFD_RELOC_C6000_PCR_S10:               howto manager.      (line 1501)
-* BFD_RELOC_C6000_PCR_S12:               howto manager.      (line 1500)
-* BFD_RELOC_C6000_PCR_S21:               howto manager.      (line 1499)
-* BFD_RELOC_C6000_PCR_S7:                howto manager.      (line 1502)
-* BFD_RELOC_C6000_PREL31:                howto manager.      (line 1520)
-* BFD_RELOC_C6000_SBR_GOT_H16_W:         howto manager.      (line 1518)
-* BFD_RELOC_C6000_SBR_GOT_L16_W:         howto manager.      (line 1517)
-* BFD_RELOC_C6000_SBR_GOT_U15_W:         howto manager.      (line 1516)
-* BFD_RELOC_C6000_SBR_H16_B:             howto manager.      (line 1513)
-* BFD_RELOC_C6000_SBR_H16_H:             howto manager.      (line 1514)
-* BFD_RELOC_C6000_SBR_H16_W:             howto manager.      (line 1515)
-* BFD_RELOC_C6000_SBR_L16_B:             howto manager.      (line 1510)
-* BFD_RELOC_C6000_SBR_L16_H:             howto manager.      (line 1511)
-* BFD_RELOC_C6000_SBR_L16_W:             howto manager.      (line 1512)
-* BFD_RELOC_C6000_SBR_S16:               howto manager.      (line 1509)
-* BFD_RELOC_C6000_SBR_U15_B:             howto manager.      (line 1506)
-* BFD_RELOC_C6000_SBR_U15_H:             howto manager.      (line 1507)
-* BFD_RELOC_C6000_SBR_U15_W:             howto manager.      (line 1508)
+* BFD_RELOC_ARC_16:                      howto manager.      (line  983)
+* BFD_RELOC_ARC_24:                      howto manager.      (line  984)
+* BFD_RELOC_ARC_32:                      howto manager.      (line  985)
+* BFD_RELOC_ARC_32_ME:                   howto manager.      (line 1005)
+* BFD_RELOC_ARC_32_ME_S:                 howto manager.      (line 1006)
+* BFD_RELOC_ARC_32_PCREL:                howto manager.      (line 1023)
+* BFD_RELOC_ARC_8:                       howto manager.      (line  982)
+* BFD_RELOC_ARC_COPY:                    howto manager.      (line 1028)
+* BFD_RELOC_ARC_GLOB_DAT:                howto manager.      (line 1029)
+* BFD_RELOC_ARC_GOT32:                   howto manager.      (line 1025)
+* BFD_RELOC_ARC_GOTOFF:                  howto manager.      (line 1032)
+* BFD_RELOC_ARC_GOTPC:                   howto manager.      (line 1033)
+* BFD_RELOC_ARC_GOTPC32:                 howto manager.      (line 1026)
+* BFD_RELOC_ARC_JLI_SECTOFF:             howto manager.      (line 1049)
+* BFD_RELOC_ARC_JMP_SLOT:                howto manager.      (line 1030)
+* BFD_RELOC_ARC_N16:                     howto manager.      (line  987)
+* BFD_RELOC_ARC_N24:                     howto manager.      (line  988)
+* BFD_RELOC_ARC_N32:                     howto manager.      (line  989)
+* BFD_RELOC_ARC_N32_ME:                  howto manager.      (line 1007)
+* BFD_RELOC_ARC_N8:                      howto manager.      (line  986)
+* BFD_RELOC_ARC_NONE:                    howto manager.      (line  981)
+* BFD_RELOC_ARC_NPS_CMEM16:              howto manager.      (line 1048)
+* BFD_RELOC_ARC_PC32:                    howto manager.      (line 1024)
+* BFD_RELOC_ARC_PLT32:                   howto manager.      (line 1027)
+* BFD_RELOC_ARC_RELATIVE:                howto manager.      (line 1031)
+* BFD_RELOC_ARC_S13_PCREL:               howto manager.      (line 1003)
+* BFD_RELOC_ARC_S21H_PCREL:              howto manager.      (line  992)
+* BFD_RELOC_ARC_S21H_PCREL_PLT:          howto manager.      (line 1047)
+* BFD_RELOC_ARC_S21W_PCREL:              howto manager.      (line  993)
+* BFD_RELOC_ARC_S21W_PCREL_PLT:          howto manager.      (line 1034)
+* BFD_RELOC_ARC_S25H_PCREL:              howto manager.      (line  994)
+* BFD_RELOC_ARC_S25H_PCREL_PLT:          howto manager.      (line 1035)
+* BFD_RELOC_ARC_S25W_PCREL:              howto manager.      (line  995)
+* BFD_RELOC_ARC_S25W_PCREL_PLT:          howto manager.      (line 1046)
+* BFD_RELOC_ARC_SDA:                     howto manager.      (line  990)
+* BFD_RELOC_ARC_SDA16_LD:                howto manager.      (line 1000)
+* BFD_RELOC_ARC_SDA16_LD1:               howto manager.      (line 1001)
+* BFD_RELOC_ARC_SDA16_LD2:               howto manager.      (line 1002)
+* BFD_RELOC_ARC_SDA16_ST2:               howto manager.      (line 1022)
+* BFD_RELOC_ARC_SDA32:                   howto manager.      (line  996)
+* BFD_RELOC_ARC_SDA32_ME:                howto manager.      (line 1009)
+* BFD_RELOC_ARC_SDA_12:                  howto manager.      (line 1021)
+* BFD_RELOC_ARC_SDA_LDST:                howto manager.      (line  997)
+* BFD_RELOC_ARC_SDA_LDST1:               howto manager.      (line  998)
+* BFD_RELOC_ARC_SDA_LDST2:               howto manager.      (line  999)
+* BFD_RELOC_ARC_SECTOFF:                 howto manager.      (line  991)
+* BFD_RELOC_ARC_SECTOFF_1:               howto manager.      (line 1019)
+* BFD_RELOC_ARC_SECTOFF_2:               howto manager.      (line 1020)
+* BFD_RELOC_ARC_SECTOFF_ME:              howto manager.      (line 1008)
+* BFD_RELOC_ARC_SECTOFF_ME_1:            howto manager.      (line 1017)
+* BFD_RELOC_ARC_SECTOFF_ME_2:            howto manager.      (line 1018)
+* BFD_RELOC_ARC_TLS_DTPMOD:              howto manager.      (line 1036)
+* BFD_RELOC_ARC_TLS_DTPOFF:              howto manager.      (line 1042)
+* BFD_RELOC_ARC_TLS_DTPOFF_S9:           howto manager.      (line 1043)
+* BFD_RELOC_ARC_TLS_GD_CALL:             howto manager.      (line 1040)
+* BFD_RELOC_ARC_TLS_GD_GOT:              howto manager.      (line 1038)
+* BFD_RELOC_ARC_TLS_GD_LD:               howto manager.      (line 1039)
+* BFD_RELOC_ARC_TLS_IE_GOT:              howto manager.      (line 1041)
+* BFD_RELOC_ARC_TLS_LE_32:               howto manager.      (line 1045)
+* BFD_RELOC_ARC_TLS_LE_S9:               howto manager.      (line 1044)
+* BFD_RELOC_ARC_TLS_TPOFF:               howto manager.      (line 1037)
+* BFD_RELOC_ARC_W:                       howto manager.      (line 1004)
+* BFD_RELOC_ARC_W_ME:                    howto manager.      (line 1010)
+* BFD_RELOC_ARM_ADRL_IMMEDIATE:          howto manager.      (line  855)
+* BFD_RELOC_ARM_ADR_IMM:                 howto manager.      (line  869)
+* BFD_RELOC_ARM_ALU_PC_G0:               howto manager.      (line  817)
+* BFD_RELOC_ARM_ALU_PC_G0_NC:            howto manager.      (line  816)
+* BFD_RELOC_ARM_ALU_PC_G1:               howto manager.      (line  819)
+* BFD_RELOC_ARM_ALU_PC_G1_NC:            howto manager.      (line  818)
+* BFD_RELOC_ARM_ALU_PC_G2:               howto manager.      (line  820)
+* BFD_RELOC_ARM_ALU_SB_G0:               howto manager.      (line  831)
+* BFD_RELOC_ARM_ALU_SB_G0_NC:            howto manager.      (line  830)
+* BFD_RELOC_ARM_ALU_SB_G1:               howto manager.      (line  833)
+* BFD_RELOC_ARM_ALU_SB_G1_NC:            howto manager.      (line  832)
+* BFD_RELOC_ARM_ALU_SB_G2:               howto manager.      (line  834)
+* BFD_RELOC_ARM_CP_OFF_IMM:              howto manager.      (line  865)
+* BFD_RELOC_ARM_CP_OFF_IMM_S2:           howto manager.      (line  866)
+* BFD_RELOC_ARM_GLOB_DAT:                howto manager.      (line  793)
+* BFD_RELOC_ARM_GOT32:                   howto manager.      (line  794)
+* BFD_RELOC_ARM_GOTOFF:                  howto manager.      (line  797)
+* BFD_RELOC_ARM_GOTPC:                   howto manager.      (line  798)
+* BFD_RELOC_ARM_GOT_PREL:                howto manager.      (line  799)
+* BFD_RELOC_ARM_HVC:                     howto manager.      (line  862)
+* BFD_RELOC_ARM_HWLITERAL:               howto manager.      (line  876)
+* BFD_RELOC_ARM_IMMEDIATE:               howto manager.      (line  854)
+* BFD_RELOC_ARM_IN_POOL:                 howto manager.      (line  872)
+* BFD_RELOC_ARM_IRELATIVE:               howto manager.      (line  847)
+* BFD_RELOC_ARM_JUMP_SLOT:               howto manager.      (line  792)
+* BFD_RELOC_ARM_LDC_PC_G0:               howto manager.      (line  827)
+* BFD_RELOC_ARM_LDC_PC_G1:               howto manager.      (line  828)
+* BFD_RELOC_ARM_LDC_PC_G2:               howto manager.      (line  829)
+* BFD_RELOC_ARM_LDC_SB_G0:               howto manager.      (line  841)
+* BFD_RELOC_ARM_LDC_SB_G1:               howto manager.      (line  842)
+* BFD_RELOC_ARM_LDC_SB_G2:               howto manager.      (line  843)
+* BFD_RELOC_ARM_LDRS_PC_G0:              howto manager.      (line  824)
+* BFD_RELOC_ARM_LDRS_PC_G1:              howto manager.      (line  825)
+* BFD_RELOC_ARM_LDRS_PC_G2:              howto manager.      (line  826)
+* BFD_RELOC_ARM_LDRS_SB_G0:              howto manager.      (line  838)
+* BFD_RELOC_ARM_LDRS_SB_G1:              howto manager.      (line  839)
+* BFD_RELOC_ARM_LDRS_SB_G2:              howto manager.      (line  840)
+* BFD_RELOC_ARM_LDR_IMM:                 howto manager.      (line  870)
+* BFD_RELOC_ARM_LDR_PC_G0:               howto manager.      (line  821)
+* BFD_RELOC_ARM_LDR_PC_G1:               howto manager.      (line  822)
+* BFD_RELOC_ARM_LDR_PC_G2:               howto manager.      (line  823)
+* BFD_RELOC_ARM_LDR_SB_G0:               howto manager.      (line  835)
+* BFD_RELOC_ARM_LDR_SB_G1:               howto manager.      (line  836)
+* BFD_RELOC_ARM_LDR_SB_G2:               howto manager.      (line  837)
+* BFD_RELOC_ARM_LITERAL:                 howto manager.      (line  871)
+* BFD_RELOC_ARM_MOVT:                    howto manager.      (line  784)
+* BFD_RELOC_ARM_MOVT_PCREL:              howto manager.      (line  786)
+* BFD_RELOC_ARM_MOVW:                    howto manager.      (line  783)
+* BFD_RELOC_ARM_MOVW_PCREL:              howto manager.      (line  785)
+* BFD_RELOC_ARM_MULTI:                   howto manager.      (line  864)
+* BFD_RELOC_ARM_OFFSET_IMM:              howto manager.      (line  764)
+* BFD_RELOC_ARM_OFFSET_IMM8:             howto manager.      (line  873)
+* BFD_RELOC_ARM_PCREL_BLX:               howto manager.      (line  740)
+* BFD_RELOC_ARM_PCREL_BRANCH:            howto manager.      (line  737)
+* BFD_RELOC_ARM_PCREL_CALL:              howto manager.      (line  748)
+* BFD_RELOC_ARM_PCREL_JUMP:              howto manager.      (line  751)
+* BFD_RELOC_ARM_PLT32:                   howto manager.      (line  795)
+* BFD_RELOC_ARM_PREL31:                  howto manager.      (line  781)
+* BFD_RELOC_ARM_RELATIVE:                howto manager.      (line  796)
+* BFD_RELOC_ARM_ROSEGREL32:              howto manager.      (line  773)
+* BFD_RELOC_ARM_SBREL32:                 howto manager.      (line  775)
+* BFD_RELOC_ARM_SHIFT_IMM:               howto manager.      (line  860)
+* BFD_RELOC_ARM_SMC:                     howto manager.      (line  861)
+* BFD_RELOC_ARM_SWI:                     howto manager.      (line  863)
+* BFD_RELOC_ARM_T32_ADD_IMM:             howto manager.      (line  857)
+* BFD_RELOC_ARM_T32_ADD_PC12:            howto manager.      (line  859)
+* BFD_RELOC_ARM_T32_CP_OFF_IMM:          howto manager.      (line  867)
+* BFD_RELOC_ARM_T32_CP_OFF_IMM_S2:       howto manager.      (line  868)
+* BFD_RELOC_ARM_T32_IMM12:               howto manager.      (line  858)
+* BFD_RELOC_ARM_T32_IMMEDIATE:           howto manager.      (line  856)
+* BFD_RELOC_ARM_T32_OFFSET_IMM:          howto manager.      (line  875)
+* BFD_RELOC_ARM_T32_OFFSET_U8:           howto manager.      (line  874)
+* BFD_RELOC_ARM_TARGET1:                 howto manager.      (line  770)
+* BFD_RELOC_ARM_TARGET2:                 howto manager.      (line  777)
+* BFD_RELOC_ARM_THM_TLS_CALL:            howto manager.      (line  811)
+* BFD_RELOC_ARM_THM_TLS_DESCSEQ:         howto manager.      (line  813)
+* BFD_RELOC_ARM_THUMB_ADD:               howto manager.      (line  877)
+* BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC:     howto manager.      (line  849)
+* BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC:     howto manager.      (line  850)
+* BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC:     howto manager.      (line  851)
+* BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC:     howto manager.      (line  852)
+* BFD_RELOC_ARM_THUMB_IMM:               howto manager.      (line  878)
+* BFD_RELOC_ARM_THUMB_MOVT:              howto manager.      (line  788)
+* BFD_RELOC_ARM_THUMB_MOVT_PCREL:        howto manager.      (line  790)
+* BFD_RELOC_ARM_THUMB_MOVW:              howto manager.      (line  787)
+* BFD_RELOC_ARM_THUMB_MOVW_PCREL:        howto manager.      (line  789)
+* BFD_RELOC_ARM_THUMB_OFFSET:            howto manager.      (line  767)
+* BFD_RELOC_ARM_THUMB_SHIFT:             howto manager.      (line  879)
+* BFD_RELOC_ARM_TLS_CALL:                howto manager.      (line  810)
+* BFD_RELOC_ARM_TLS_DESC:                howto manager.      (line  814)
+* BFD_RELOC_ARM_TLS_DESCSEQ:             howto manager.      (line  812)
+* BFD_RELOC_ARM_TLS_DTPMOD32:            howto manager.      (line  805)
+* BFD_RELOC_ARM_TLS_DTPOFF32:            howto manager.      (line  804)
+* BFD_RELOC_ARM_TLS_GD32:                howto manager.      (line  801)
+* BFD_RELOC_ARM_TLS_GOTDESC:             howto manager.      (line  809)
+* BFD_RELOC_ARM_TLS_IE32:                howto manager.      (line  807)
+* BFD_RELOC_ARM_TLS_LDM32:               howto manager.      (line  803)
+* BFD_RELOC_ARM_TLS_LDO32:               howto manager.      (line  802)
+* BFD_RELOC_ARM_TLS_LE32:                howto manager.      (line  808)
+* BFD_RELOC_ARM_TLS_TPOFF32:             howto manager.      (line  806)
+* BFD_RELOC_ARM_V4BX:                    howto manager.      (line  845)
+* BFD_RELOC_AVR_13_PCREL:                howto manager.      (line 1669)
+* BFD_RELOC_AVR_16_PM:                   howto manager.      (line 1672)
+* BFD_RELOC_AVR_6:                       howto manager.      (line 1740)
+* BFD_RELOC_AVR_6_ADIW:                  howto manager.      (line 1743)
+* BFD_RELOC_AVR_7_PCREL:                 howto manager.      (line 1666)
+* BFD_RELOC_AVR_8_HI:                    howto manager.      (line 1749)
+* BFD_RELOC_AVR_8_HLO:                   howto manager.      (line 1752)
+* BFD_RELOC_AVR_8_LO:                    howto manager.      (line 1746)
+* BFD_RELOC_AVR_CALL:                    howto manager.      (line 1734)
+* BFD_RELOC_AVR_DIFF16:                  howto manager.      (line 1756)
+* BFD_RELOC_AVR_DIFF32:                  howto manager.      (line 1757)
+* BFD_RELOC_AVR_DIFF8:                   howto manager.      (line 1755)
+* BFD_RELOC_AVR_HH8_LDI:                 howto manager.      (line 1681)
+* BFD_RELOC_AVR_HH8_LDI_NEG:             howto manager.      (line 1696)
+* BFD_RELOC_AVR_HH8_LDI_PM:              howto manager.      (line 1719)
+* BFD_RELOC_AVR_HH8_LDI_PM_NEG:          howto manager.      (line 1730)
+* BFD_RELOC_AVR_HI8_LDI:                 howto manager.      (line 1678)
+* BFD_RELOC_AVR_HI8_LDI_GS:              howto manager.      (line 1714)
+* BFD_RELOC_AVR_HI8_LDI_NEG:             howto manager.      (line 1692)
+* BFD_RELOC_AVR_HI8_LDI_PM:              howto manager.      (line 1711)
+* BFD_RELOC_AVR_HI8_LDI_PM_NEG:          howto manager.      (line 1726)
+* BFD_RELOC_AVR_LDI:                     howto manager.      (line 1737)
+* BFD_RELOC_AVR_LDS_STS_16:              howto manager.      (line 1764)
+* BFD_RELOC_AVR_LO8_LDI:                 howto manager.      (line 1675)
+* BFD_RELOC_AVR_LO8_LDI_GS:              howto manager.      (line 1706)
+* BFD_RELOC_AVR_LO8_LDI_NEG:             howto manager.      (line 1688)
+* BFD_RELOC_AVR_LO8_LDI_PM:              howto manager.      (line 1703)
+* BFD_RELOC_AVR_LO8_LDI_PM_NEG:          howto manager.      (line 1723)
+* BFD_RELOC_AVR_MS8_LDI:                 howto manager.      (line 1685)
+* BFD_RELOC_AVR_MS8_LDI_NEG:             howto manager.      (line 1700)
+* BFD_RELOC_AVR_PORT5:                   howto manager.      (line 1770)
+* BFD_RELOC_AVR_PORT6:                   howto manager.      (line 1767)
+* BFD_RELOC_BFIN_10_PCREL:               howto manager.      (line 1061)
+* BFD_RELOC_BFIN_11_PCREL:               howto manager.      (line 1063)
+* BFD_RELOC_BFIN_12_PCREL_JUMP:          howto manager.      (line 1065)
+* BFD_RELOC_BFIN_12_PCREL_JUMP_S:        howto manager.      (line 1067)
+* BFD_RELOC_BFIN_16_HIGH:                howto manager.      (line 1053)
+* BFD_RELOC_BFIN_16_IMM:                 howto manager.      (line 1051)
+* BFD_RELOC_BFIN_16_LOW:                 howto manager.      (line 1059)
+* BFD_RELOC_BFIN_24_PCREL_CALL_X:        howto manager.      (line 1069)
+* BFD_RELOC_BFIN_24_PCREL_JUMP_L:        howto manager.      (line 1071)
+* BFD_RELOC_BFIN_4_PCREL:                howto manager.      (line 1055)
+* BFD_RELOC_BFIN_5_PCREL:                howto manager.      (line 1057)
+* BFD_RELOC_BFIN_FUNCDESC:               howto manager.      (line 1076)
+* BFD_RELOC_BFIN_FUNCDESC_GOT17M4:       howto manager.      (line 1077)
+* BFD_RELOC_BFIN_FUNCDESC_GOTHI:         howto manager.      (line 1078)
+* BFD_RELOC_BFIN_FUNCDESC_GOTLO:         howto manager.      (line 1079)
+* BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4:    howto manager.      (line 1081)
+* BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI:      howto manager.      (line 1082)
+* BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO:      howto manager.      (line 1083)
+* BFD_RELOC_BFIN_FUNCDESC_VALUE:         howto manager.      (line 1080)
+* BFD_RELOC_BFIN_GOT:                    howto manager.      (line 1088)
+* BFD_RELOC_BFIN_GOT17M4:                howto manager.      (line 1073)
+* BFD_RELOC_BFIN_GOTHI:                  howto manager.      (line 1074)
+* BFD_RELOC_BFIN_GOTLO:                  howto manager.      (line 1075)
+* BFD_RELOC_BFIN_GOTOFF17M4:             howto manager.      (line 1084)
+* BFD_RELOC_BFIN_GOTOFFHI:               howto manager.      (line 1085)
+* BFD_RELOC_BFIN_GOTOFFLO:               howto manager.      (line 1086)
+* BFD_RELOC_BFIN_PLTPC:                  howto manager.      (line 1090)
+* BFD_RELOC_C6000_ABS_H16:               howto manager.      (line 1511)
+* BFD_RELOC_C6000_ABS_L16:               howto manager.      (line 1510)
+* BFD_RELOC_C6000_ABS_S16:               howto manager.      (line 1509)
+* BFD_RELOC_C6000_ALIGN:                 howto manager.      (line 1532)
+* BFD_RELOC_C6000_COPY:                  howto manager.      (line 1527)
+* BFD_RELOC_C6000_DSBT_INDEX:            howto manager.      (line 1525)
+* BFD_RELOC_C6000_EHTYPE:                howto manager.      (line 1529)
+* BFD_RELOC_C6000_FPHEAD:                howto manager.      (line 1533)
+* BFD_RELOC_C6000_JUMP_SLOT:             howto manager.      (line 1528)
+* BFD_RELOC_C6000_NOCMP:                 howto manager.      (line 1534)
+* BFD_RELOC_C6000_PCR_H16:               howto manager.      (line 1530)
+* BFD_RELOC_C6000_PCR_L16:               howto manager.      (line 1531)
+* BFD_RELOC_C6000_PCR_S10:               howto manager.      (line 1507)
+* BFD_RELOC_C6000_PCR_S12:               howto manager.      (line 1506)
+* BFD_RELOC_C6000_PCR_S21:               howto manager.      (line 1505)
+* BFD_RELOC_C6000_PCR_S7:                howto manager.      (line 1508)
+* BFD_RELOC_C6000_PREL31:                howto manager.      (line 1526)
+* BFD_RELOC_C6000_SBR_GOT_H16_W:         howto manager.      (line 1524)
+* BFD_RELOC_C6000_SBR_GOT_L16_W:         howto manager.      (line 1523)
+* BFD_RELOC_C6000_SBR_GOT_U15_W:         howto manager.      (line 1522)
+* BFD_RELOC_C6000_SBR_H16_B:             howto manager.      (line 1519)
+* BFD_RELOC_C6000_SBR_H16_H:             howto manager.      (line 1520)
+* BFD_RELOC_C6000_SBR_H16_W:             howto manager.      (line 1521)
+* BFD_RELOC_C6000_SBR_L16_B:             howto manager.      (line 1516)
+* BFD_RELOC_C6000_SBR_L16_H:             howto manager.      (line 1517)
+* BFD_RELOC_C6000_SBR_L16_W:             howto manager.      (line 1518)
+* BFD_RELOC_C6000_SBR_S16:               howto manager.      (line 1515)
+* BFD_RELOC_C6000_SBR_U15_B:             howto manager.      (line 1512)
+* BFD_RELOC_C6000_SBR_U15_H:             howto manager.      (line 1513)
+* BFD_RELOC_C6000_SBR_U15_W:             howto manager.      (line 1514)
 * bfd_reloc_code_type:                   howto manager.      (line    9)
-* BFD_RELOC_CR16_ABS20:                  howto manager.      (line 2241)
-* BFD_RELOC_CR16_ABS24:                  howto manager.      (line 2242)
-* BFD_RELOC_CR16_DISP16:                 howto manager.      (line 2252)
-* BFD_RELOC_CR16_DISP20:                 howto manager.      (line 2253)
-* BFD_RELOC_CR16_DISP24:                 howto manager.      (line 2254)
-* BFD_RELOC_CR16_DISP24a:                howto manager.      (line 2255)
-* BFD_RELOC_CR16_DISP4:                  howto manager.      (line 2250)
-* BFD_RELOC_CR16_DISP8:                  howto manager.      (line 2251)
-* BFD_RELOC_CR16_GLOB_DAT:               howto manager.      (line 2261)
-* BFD_RELOC_CR16_GOTC_REGREL20:          howto manager.      (line 2260)
-* BFD_RELOC_CR16_GOT_REGREL20:           howto manager.      (line 2259)
-* BFD_RELOC_CR16_IMM16:                  howto manager.      (line 2245)
-* BFD_RELOC_CR16_IMM20:                  howto manager.      (line 2246)
-* BFD_RELOC_CR16_IMM24:                  howto manager.      (line 2247)
-* BFD_RELOC_CR16_IMM32:                  howto manager.      (line 2248)
-* BFD_RELOC_CR16_IMM32a:                 howto manager.      (line 2249)
-* BFD_RELOC_CR16_IMM4:                   howto manager.      (line 2243)
-* BFD_RELOC_CR16_IMM8:                   howto manager.      (line 2244)
-* BFD_RELOC_CR16_NUM16:                  howto manager.      (line 2230)
-* BFD_RELOC_CR16_NUM32:                  howto manager.      (line 2231)
-* BFD_RELOC_CR16_NUM32a:                 howto manager.      (line 2232)
-* BFD_RELOC_CR16_NUM8:                   howto manager.      (line 2229)
-* BFD_RELOC_CR16_REGREL0:                howto manager.      (line 2233)
-* BFD_RELOC_CR16_REGREL14:               howto manager.      (line 2236)
-* BFD_RELOC_CR16_REGREL14a:              howto manager.      (line 2237)
-* BFD_RELOC_CR16_REGREL16:               howto manager.      (line 2238)
-* BFD_RELOC_CR16_REGREL20:               howto manager.      (line 2239)
-* BFD_RELOC_CR16_REGREL20a:              howto manager.      (line 2240)
-* BFD_RELOC_CR16_REGREL4:                howto manager.      (line 2234)
-* BFD_RELOC_CR16_REGREL4a:               howto manager.      (line 2235)
-* BFD_RELOC_CR16_SWITCH16:               howto manager.      (line 2257)
-* BFD_RELOC_CR16_SWITCH32:               howto manager.      (line 2258)
-* BFD_RELOC_CR16_SWITCH8:                howto manager.      (line 2256)
-* BFD_RELOC_CRIS_16_DTPREL:              howto manager.      (line 2321)
-* BFD_RELOC_CRIS_16_GOT:                 howto manager.      (line 2303)
-* BFD_RELOC_CRIS_16_GOTPLT:              howto manager.      (line 2307)
-* BFD_RELOC_CRIS_16_GOT_GD:              howto manager.      (line 2317)
-* BFD_RELOC_CRIS_16_GOT_TPREL:           howto manager.      (line 2323)
-* BFD_RELOC_CRIS_16_TPREL:               howto manager.      (line 2325)
-* BFD_RELOC_CRIS_32_DTPREL:              howto manager.      (line 2320)
-* BFD_RELOC_CRIS_32_GD:                  howto manager.      (line 2318)
-* BFD_RELOC_CRIS_32_GOT:                 howto manager.      (line 2301)
-* BFD_RELOC_CRIS_32_GOTPLT:              howto manager.      (line 2305)
-* BFD_RELOC_CRIS_32_GOTREL:              howto manager.      (line 2309)
-* BFD_RELOC_CRIS_32_GOT_GD:              howto manager.      (line 2316)
-* BFD_RELOC_CRIS_32_GOT_TPREL:           howto manager.      (line 2322)
-* BFD_RELOC_CRIS_32_IE:                  howto manager.      (line 2327)
-* BFD_RELOC_CRIS_32_PLT_GOTREL:          howto manager.      (line 2311)
-* BFD_RELOC_CRIS_32_PLT_PCREL:           howto manager.      (line 2313)
-* BFD_RELOC_CRIS_32_TPREL:               howto manager.      (line 2324)
-* BFD_RELOC_CRIS_BDISP8:                 howto manager.      (line 2284)
-* BFD_RELOC_CRIS_COPY:                   howto manager.      (line 2296)
-* BFD_RELOC_CRIS_DTP:                    howto manager.      (line 2319)
-* BFD_RELOC_CRIS_DTPMOD:                 howto manager.      (line 2326)
-* BFD_RELOC_CRIS_GLOB_DAT:               howto manager.      (line 2297)
-* BFD_RELOC_CRIS_JUMP_SLOT:              howto manager.      (line 2298)
-* BFD_RELOC_CRIS_LAPCQ_OFFSET:           howto manager.      (line 2292)
-* BFD_RELOC_CRIS_RELATIVE:               howto manager.      (line 2299)
-* BFD_RELOC_CRIS_SIGNED_16:              howto manager.      (line 2290)
-* BFD_RELOC_CRIS_SIGNED_6:               howto manager.      (line 2286)
-* BFD_RELOC_CRIS_SIGNED_8:               howto manager.      (line 2288)
-* BFD_RELOC_CRIS_UNSIGNED_16:            howto manager.      (line 2291)
-* BFD_RELOC_CRIS_UNSIGNED_4:             howto manager.      (line 2293)
-* BFD_RELOC_CRIS_UNSIGNED_5:             howto manager.      (line 2285)
-* BFD_RELOC_CRIS_UNSIGNED_6:             howto manager.      (line 2287)
-* BFD_RELOC_CRIS_UNSIGNED_8:             howto manager.      (line 2289)
-* BFD_RELOC_CRX_ABS16:                   howto manager.      (line 2273)
-* BFD_RELOC_CRX_ABS32:                   howto manager.      (line 2274)
-* BFD_RELOC_CRX_IMM16:                   howto manager.      (line 2278)
-* BFD_RELOC_CRX_IMM32:                   howto manager.      (line 2279)
-* BFD_RELOC_CRX_NUM16:                   howto manager.      (line 2276)
-* BFD_RELOC_CRX_NUM32:                   howto manager.      (line 2277)
-* BFD_RELOC_CRX_NUM8:                    howto manager.      (line 2275)
-* BFD_RELOC_CRX_REGREL12:                howto manager.      (line 2269)
-* BFD_RELOC_CRX_REGREL22:                howto manager.      (line 2270)
-* BFD_RELOC_CRX_REGREL28:                howto manager.      (line 2271)
-* BFD_RELOC_CRX_REGREL32:                howto manager.      (line 2272)
-* BFD_RELOC_CRX_REL16:                   howto manager.      (line 2266)
-* BFD_RELOC_CRX_REL24:                   howto manager.      (line 2267)
-* BFD_RELOC_CRX_REL32:                   howto manager.      (line 2268)
-* BFD_RELOC_CRX_REL4:                    howto manager.      (line 2263)
-* BFD_RELOC_CRX_REL8:                    howto manager.      (line 2264)
-* BFD_RELOC_CRX_REL8_CMP:                howto manager.      (line 2265)
-* BFD_RELOC_CRX_SWITCH16:                howto manager.      (line 2281)
-* BFD_RELOC_CRX_SWITCH32:                howto manager.      (line 2282)
-* BFD_RELOC_CRX_SWITCH8:                 howto manager.      (line 2280)
-* BFD_RELOC_CTOR:                        howto manager.      (line  727)
-* BFD_RELOC_D10V_10_PCREL_L:             howto manager.      (line 1129)
-* BFD_RELOC_D10V_10_PCREL_R:             howto manager.      (line 1126)
-* BFD_RELOC_D10V_18:                     howto manager.      (line 1133)
-* BFD_RELOC_D10V_18_PCREL:               howto manager.      (line 1135)
-* BFD_RELOC_D30V_15:                     howto manager.      (line 1146)
-* BFD_RELOC_D30V_15_PCREL:               howto manager.      (line 1149)
-* BFD_RELOC_D30V_15_PCREL_R:             howto manager.      (line 1152)
-* BFD_RELOC_D30V_21:                     howto manager.      (line 1156)
-* BFD_RELOC_D30V_21_PCREL:               howto manager.      (line 1159)
-* BFD_RELOC_D30V_21_PCREL_R:             howto manager.      (line 1162)
-* BFD_RELOC_D30V_32:                     howto manager.      (line 1166)
-* BFD_RELOC_D30V_32_PCREL:               howto manager.      (line 1168)
-* BFD_RELOC_D30V_6:                      howto manager.      (line 1137)
-* BFD_RELOC_D30V_9_PCREL:                howto manager.      (line 1139)
-* BFD_RELOC_D30V_9_PCREL_R:              howto manager.      (line 1142)
-* BFD_RELOC_DLX_HI16_S:                  howto manager.      (line 1170)
-* BFD_RELOC_DLX_JMP26:                   howto manager.      (line 1174)
-* BFD_RELOC_DLX_LO16:                    howto manager.      (line 1172)
-* BFD_RELOC_EPIPHANY_HIGH:               howto manager.      (line 3220)
-* BFD_RELOC_EPIPHANY_IMM11:              howto manager.      (line 3226)
-* BFD_RELOC_EPIPHANY_IMM8:               howto manager.      (line 3229)
-* BFD_RELOC_EPIPHANY_LOW:                howto manager.      (line 3222)
-* BFD_RELOC_EPIPHANY_SIMM11:             howto manager.      (line 3224)
-* BFD_RELOC_EPIPHANY_SIMM24:             howto manager.      (line 3218)
-* BFD_RELOC_EPIPHANY_SIMM8:              howto manager.      (line 3216)
-* BFD_RELOC_FR30_10_IN_8:                howto manager.      (line 1544)
-* BFD_RELOC_FR30_12_PCREL:               howto manager.      (line 1550)
-* BFD_RELOC_FR30_20:                     howto manager.      (line 1532)
-* BFD_RELOC_FR30_48:                     howto manager.      (line 1530)
-* BFD_RELOC_FR30_6_IN_4:                 howto manager.      (line 1535)
-* BFD_RELOC_FR30_8_IN_8:                 howto manager.      (line 1538)
-* BFD_RELOC_FR30_9_IN_8:                 howto manager.      (line 1541)
-* BFD_RELOC_FR30_9_PCREL:                howto manager.      (line 1547)
-* BFD_RELOC_FRV_FUNCDESC:                howto manager.      (line  450)
-* BFD_RELOC_FRV_FUNCDESC_GOT12:          howto manager.      (line  451)
-* BFD_RELOC_FRV_FUNCDESC_GOTHI:          howto manager.      (line  452)
-* BFD_RELOC_FRV_FUNCDESC_GOTLO:          howto manager.      (line  453)
-* BFD_RELOC_FRV_FUNCDESC_GOTOFF12:       howto manager.      (line  455)
-* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI:       howto manager.      (line  456)
-* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO:       howto manager.      (line  457)
-* BFD_RELOC_FRV_FUNCDESC_VALUE:          howto manager.      (line  454)
-* BFD_RELOC_FRV_GETTLSOFF:               howto manager.      (line  461)
-* BFD_RELOC_FRV_GETTLSOFF_RELAX:         howto manager.      (line  474)
-* BFD_RELOC_FRV_GOT12:                   howto manager.      (line  447)
-* BFD_RELOC_FRV_GOTHI:                   howto manager.      (line  448)
-* BFD_RELOC_FRV_GOTLO:                   howto manager.      (line  449)
-* BFD_RELOC_FRV_GOTOFF12:                howto manager.      (line  458)
-* BFD_RELOC_FRV_GOTOFFHI:                howto manager.      (line  459)
-* BFD_RELOC_FRV_GOTOFFLO:                howto manager.      (line  460)
-* BFD_RELOC_FRV_GOTTLSDESC12:            howto manager.      (line  463)
-* BFD_RELOC_FRV_GOTTLSDESCHI:            howto manager.      (line  464)
-* BFD_RELOC_FRV_GOTTLSDESCLO:            howto manager.      (line  465)
-* BFD_RELOC_FRV_GOTTLSOFF12:             howto manager.      (line  469)
-* BFD_RELOC_FRV_GOTTLSOFFHI:             howto manager.      (line  470)
-* BFD_RELOC_FRV_GOTTLSOFFLO:             howto manager.      (line  471)
-* BFD_RELOC_FRV_GPREL12:                 howto manager.      (line  442)
-* BFD_RELOC_FRV_GPREL32:                 howto manager.      (line  444)
-* BFD_RELOC_FRV_GPRELHI:                 howto manager.      (line  445)
-* BFD_RELOC_FRV_GPRELLO:                 howto manager.      (line  446)
-* BFD_RELOC_FRV_GPRELU12:                howto manager.      (line  443)
-* BFD_RELOC_FRV_HI16:                    howto manager.      (line  441)
-* BFD_RELOC_FRV_LABEL16:                 howto manager.      (line  438)
-* BFD_RELOC_FRV_LABEL24:                 howto manager.      (line  439)
-* BFD_RELOC_FRV_LO16:                    howto manager.      (line  440)
-* BFD_RELOC_FRV_TLSDESC_RELAX:           howto manager.      (line  473)
-* BFD_RELOC_FRV_TLSDESC_VALUE:           howto manager.      (line  462)
-* BFD_RELOC_FRV_TLSMOFF:                 howto manager.      (line  476)
-* BFD_RELOC_FRV_TLSMOFF12:               howto manager.      (line  466)
-* BFD_RELOC_FRV_TLSMOFFHI:               howto manager.      (line  467)
-* BFD_RELOC_FRV_TLSMOFFLO:               howto manager.      (line  468)
-* BFD_RELOC_FRV_TLSOFF:                  howto manager.      (line  472)
-* BFD_RELOC_FRV_TLSOFF_RELAX:            howto manager.      (line  475)
+* BFD_RELOC_CR16_ABS20:                  howto manager.      (line 2248)
+* BFD_RELOC_CR16_ABS24:                  howto manager.      (line 2249)
+* BFD_RELOC_CR16_DISP16:                 howto manager.      (line 2259)
+* BFD_RELOC_CR16_DISP20:                 howto manager.      (line 2260)
+* BFD_RELOC_CR16_DISP24:                 howto manager.      (line 2261)
+* BFD_RELOC_CR16_DISP24a:                howto manager.      (line 2262)
+* BFD_RELOC_CR16_DISP4:                  howto manager.      (line 2257)
+* BFD_RELOC_CR16_DISP8:                  howto manager.      (line 2258)
+* BFD_RELOC_CR16_GLOB_DAT:               howto manager.      (line 2268)
+* BFD_RELOC_CR16_GOTC_REGREL20:          howto manager.      (line 2267)
+* BFD_RELOC_CR16_GOT_REGREL20:           howto manager.      (line 2266)
+* BFD_RELOC_CR16_IMM16:                  howto manager.      (line 2252)
+* BFD_RELOC_CR16_IMM20:                  howto manager.      (line 2253)
+* BFD_RELOC_CR16_IMM24:                  howto manager.      (line 2254)
+* BFD_RELOC_CR16_IMM32:                  howto manager.      (line 2255)
+* BFD_RELOC_CR16_IMM32a:                 howto manager.      (line 2256)
+* BFD_RELOC_CR16_IMM4:                   howto manager.      (line 2250)
+* BFD_RELOC_CR16_IMM8:                   howto manager.      (line 2251)
+* BFD_RELOC_CR16_NUM16:                  howto manager.      (line 2237)
+* BFD_RELOC_CR16_NUM32:                  howto manager.      (line 2238)
+* BFD_RELOC_CR16_NUM32a:                 howto manager.      (line 2239)
+* BFD_RELOC_CR16_NUM8:                   howto manager.      (line 2236)
+* BFD_RELOC_CR16_REGREL0:                howto manager.      (line 2240)
+* BFD_RELOC_CR16_REGREL14:               howto manager.      (line 2243)
+* BFD_RELOC_CR16_REGREL14a:              howto manager.      (line 2244)
+* BFD_RELOC_CR16_REGREL16:               howto manager.      (line 2245)
+* BFD_RELOC_CR16_REGREL20:               howto manager.      (line 2246)
+* BFD_RELOC_CR16_REGREL20a:              howto manager.      (line 2247)
+* BFD_RELOC_CR16_REGREL4:                howto manager.      (line 2241)
+* BFD_RELOC_CR16_REGREL4a:               howto manager.      (line 2242)
+* BFD_RELOC_CR16_SWITCH16:               howto manager.      (line 2264)
+* BFD_RELOC_CR16_SWITCH32:               howto manager.      (line 2265)
+* BFD_RELOC_CR16_SWITCH8:                howto manager.      (line 2263)
+* BFD_RELOC_CRIS_16_DTPREL:              howto manager.      (line 2328)
+* BFD_RELOC_CRIS_16_GOT:                 howto manager.      (line 2310)
+* BFD_RELOC_CRIS_16_GOTPLT:              howto manager.      (line 2314)
+* BFD_RELOC_CRIS_16_GOT_GD:              howto manager.      (line 2324)
+* BFD_RELOC_CRIS_16_GOT_TPREL:           howto manager.      (line 2330)
+* BFD_RELOC_CRIS_16_TPREL:               howto manager.      (line 2332)
+* BFD_RELOC_CRIS_32_DTPREL:              howto manager.      (line 2327)
+* BFD_RELOC_CRIS_32_GD:                  howto manager.      (line 2325)
+* BFD_RELOC_CRIS_32_GOT:                 howto manager.      (line 2308)
+* BFD_RELOC_CRIS_32_GOTPLT:              howto manager.      (line 2312)
+* BFD_RELOC_CRIS_32_GOTREL:              howto manager.      (line 2316)
+* BFD_RELOC_CRIS_32_GOT_GD:              howto manager.      (line 2323)
+* BFD_RELOC_CRIS_32_GOT_TPREL:           howto manager.      (line 2329)
+* BFD_RELOC_CRIS_32_IE:                  howto manager.      (line 2334)
+* BFD_RELOC_CRIS_32_PLT_GOTREL:          howto manager.      (line 2318)
+* BFD_RELOC_CRIS_32_PLT_PCREL:           howto manager.      (line 2320)
+* BFD_RELOC_CRIS_32_TPREL:               howto manager.      (line 2331)
+* BFD_RELOC_CRIS_BDISP8:                 howto manager.      (line 2291)
+* BFD_RELOC_CRIS_COPY:                   howto manager.      (line 2303)
+* BFD_RELOC_CRIS_DTP:                    howto manager.      (line 2326)
+* BFD_RELOC_CRIS_DTPMOD:                 howto manager.      (line 2333)
+* BFD_RELOC_CRIS_GLOB_DAT:               howto manager.      (line 2304)
+* BFD_RELOC_CRIS_JUMP_SLOT:              howto manager.      (line 2305)
+* BFD_RELOC_CRIS_LAPCQ_OFFSET:           howto manager.      (line 2299)
+* BFD_RELOC_CRIS_RELATIVE:               howto manager.      (line 2306)
+* BFD_RELOC_CRIS_SIGNED_16:              howto manager.      (line 2297)
+* BFD_RELOC_CRIS_SIGNED_6:               howto manager.      (line 2293)
+* BFD_RELOC_CRIS_SIGNED_8:               howto manager.      (line 2295)
+* BFD_RELOC_CRIS_UNSIGNED_16:            howto manager.      (line 2298)
+* BFD_RELOC_CRIS_UNSIGNED_4:             howto manager.      (line 2300)
+* BFD_RELOC_CRIS_UNSIGNED_5:             howto manager.      (line 2292)
+* BFD_RELOC_CRIS_UNSIGNED_6:             howto manager.      (line 2294)
+* BFD_RELOC_CRIS_UNSIGNED_8:             howto manager.      (line 2296)
+* BFD_RELOC_CRX_ABS16:                   howto manager.      (line 2280)
+* BFD_RELOC_CRX_ABS32:                   howto manager.      (line 2281)
+* BFD_RELOC_CRX_IMM16:                   howto manager.      (line 2285)
+* BFD_RELOC_CRX_IMM32:                   howto manager.      (line 2286)
+* BFD_RELOC_CRX_NUM16:                   howto manager.      (line 2283)
+* BFD_RELOC_CRX_NUM32:                   howto manager.      (line 2284)
+* BFD_RELOC_CRX_NUM8:                    howto manager.      (line 2282)
+* BFD_RELOC_CRX_REGREL12:                howto manager.      (line 2276)
+* BFD_RELOC_CRX_REGREL22:                howto manager.      (line 2277)
+* BFD_RELOC_CRX_REGREL28:                howto manager.      (line 2278)
+* BFD_RELOC_CRX_REGREL32:                howto manager.      (line 2279)
+* BFD_RELOC_CRX_REL16:                   howto manager.      (line 2273)
+* BFD_RELOC_CRX_REL24:                   howto manager.      (line 2274)
+* BFD_RELOC_CRX_REL32:                   howto manager.      (line 2275)
+* BFD_RELOC_CRX_REL4:                    howto manager.      (line 2270)
+* BFD_RELOC_CRX_REL8:                    howto manager.      (line 2271)
+* BFD_RELOC_CRX_REL8_CMP:                howto manager.      (line 2272)
+* BFD_RELOC_CRX_SWITCH16:                howto manager.      (line 2288)
+* BFD_RELOC_CRX_SWITCH32:                howto manager.      (line 2289)
+* BFD_RELOC_CRX_SWITCH8:                 howto manager.      (line 2287)
+* BFD_RELOC_CTOR:                        howto manager.      (line  732)
+* BFD_RELOC_D10V_10_PCREL_L:             howto manager.      (line 1135)
+* BFD_RELOC_D10V_10_PCREL_R:             howto manager.      (line 1132)
+* BFD_RELOC_D10V_18:                     howto manager.      (line 1139)
+* BFD_RELOC_D10V_18_PCREL:               howto manager.      (line 1141)
+* BFD_RELOC_D30V_15:                     howto manager.      (line 1152)
+* BFD_RELOC_D30V_15_PCREL:               howto manager.      (line 1155)
+* BFD_RELOC_D30V_15_PCREL_R:             howto manager.      (line 1158)
+* BFD_RELOC_D30V_21:                     howto manager.      (line 1162)
+* BFD_RELOC_D30V_21_PCREL:               howto manager.      (line 1165)
+* BFD_RELOC_D30V_21_PCREL_R:             howto manager.      (line 1168)
+* BFD_RELOC_D30V_32:                     howto manager.      (line 1172)
+* BFD_RELOC_D30V_32_PCREL:               howto manager.      (line 1174)
+* BFD_RELOC_D30V_6:                      howto manager.      (line 1143)
+* BFD_RELOC_D30V_9_PCREL:                howto manager.      (line 1145)
+* BFD_RELOC_D30V_9_PCREL_R:              howto manager.      (line 1148)
+* BFD_RELOC_DLX_HI16_S:                  howto manager.      (line 1176)
+* BFD_RELOC_DLX_JMP26:                   howto manager.      (line 1180)
+* BFD_RELOC_DLX_LO16:                    howto manager.      (line 1178)
+* BFD_RELOC_EPIPHANY_HIGH:               howto manager.      (line 3227)
+* BFD_RELOC_EPIPHANY_IMM11:              howto manager.      (line 3233)
+* BFD_RELOC_EPIPHANY_IMM8:               howto manager.      (line 3236)
+* BFD_RELOC_EPIPHANY_LOW:                howto manager.      (line 3229)
+* BFD_RELOC_EPIPHANY_SIMM11:             howto manager.      (line 3231)
+* BFD_RELOC_EPIPHANY_SIMM24:             howto manager.      (line 3225)
+* BFD_RELOC_EPIPHANY_SIMM8:              howto manager.      (line 3223)
+* BFD_RELOC_FR30_10_IN_8:                howto manager.      (line 1550)
+* BFD_RELOC_FR30_12_PCREL:               howto manager.      (line 1556)
+* BFD_RELOC_FR30_20:                     howto manager.      (line 1538)
+* BFD_RELOC_FR30_48:                     howto manager.      (line 1536)
+* BFD_RELOC_FR30_6_IN_4:                 howto manager.      (line 1541)
+* BFD_RELOC_FR30_8_IN_8:                 howto manager.      (line 1544)
+* BFD_RELOC_FR30_9_IN_8:                 howto manager.      (line 1547)
+* BFD_RELOC_FR30_9_PCREL:                howto manager.      (line 1553)
+* BFD_RELOC_FRV_FUNCDESC:                howto manager.      (line  455)
+* BFD_RELOC_FRV_FUNCDESC_GOT12:          howto manager.      (line  456)
+* BFD_RELOC_FRV_FUNCDESC_GOTHI:          howto manager.      (line  457)
+* BFD_RELOC_FRV_FUNCDESC_GOTLO:          howto manager.      (line  458)
+* BFD_RELOC_FRV_FUNCDESC_GOTOFF12:       howto manager.      (line  460)
+* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI:       howto manager.      (line  461)
+* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO:       howto manager.      (line  462)
+* BFD_RELOC_FRV_FUNCDESC_VALUE:          howto manager.      (line  459)
+* BFD_RELOC_FRV_GETTLSOFF:               howto manager.      (line  466)
+* BFD_RELOC_FRV_GETTLSOFF_RELAX:         howto manager.      (line  479)
+* BFD_RELOC_FRV_GOT12:                   howto manager.      (line  452)
+* BFD_RELOC_FRV_GOTHI:                   howto manager.      (line  453)
+* BFD_RELOC_FRV_GOTLO:                   howto manager.      (line  454)
+* BFD_RELOC_FRV_GOTOFF12:                howto manager.      (line  463)
+* BFD_RELOC_FRV_GOTOFFHI:                howto manager.      (line  464)
+* BFD_RELOC_FRV_GOTOFFLO:                howto manager.      (line  465)
+* BFD_RELOC_FRV_GOTTLSDESC12:            howto manager.      (line  468)
+* BFD_RELOC_FRV_GOTTLSDESCHI:            howto manager.      (line  469)
+* BFD_RELOC_FRV_GOTTLSDESCLO:            howto manager.      (line  470)
+* BFD_RELOC_FRV_GOTTLSOFF12:             howto manager.      (line  474)
+* BFD_RELOC_FRV_GOTTLSOFFHI:             howto manager.      (line  475)
+* BFD_RELOC_FRV_GOTTLSOFFLO:             howto manager.      (line  476)
+* BFD_RELOC_FRV_GPREL12:                 howto manager.      (line  447)
+* BFD_RELOC_FRV_GPREL32:                 howto manager.      (line  449)
+* BFD_RELOC_FRV_GPRELHI:                 howto manager.      (line  450)
+* BFD_RELOC_FRV_GPRELLO:                 howto manager.      (line  451)
+* BFD_RELOC_FRV_GPRELU12:                howto manager.      (line  448)
+* BFD_RELOC_FRV_HI16:                    howto manager.      (line  446)
+* BFD_RELOC_FRV_LABEL16:                 howto manager.      (line  443)
+* BFD_RELOC_FRV_LABEL24:                 howto manager.      (line  444)
+* BFD_RELOC_FRV_LO16:                    howto manager.      (line  445)
+* BFD_RELOC_FRV_TLSDESC_RELAX:           howto manager.      (line  478)
+* BFD_RELOC_FRV_TLSDESC_VALUE:           howto manager.      (line  467)
+* BFD_RELOC_FRV_TLSMOFF:                 howto manager.      (line  481)
+* BFD_RELOC_FRV_TLSMOFF12:               howto manager.      (line  471)
+* BFD_RELOC_FRV_TLSMOFFHI:               howto manager.      (line  472)
+* BFD_RELOC_FRV_TLSMOFFLO:               howto manager.      (line  473)
+* BFD_RELOC_FRV_TLSOFF:                  howto manager.      (line  477)
+* BFD_RELOC_FRV_TLSOFF_RELAX:            howto manager.      (line  480)
 * BFD_RELOC_FT32_10:                     howto manager.      (line  433)
+* BFD_RELOC_FT32_15:                     howto manager.      (line  440)
 * BFD_RELOC_FT32_17:                     howto manager.      (line  435)
 * BFD_RELOC_FT32_18:                     howto manager.      (line  436)
 * BFD_RELOC_FT32_20:                     howto manager.      (line  434)
+* BFD_RELOC_FT32_DIFF32:                 howto manager.      (line  441)
+* BFD_RELOC_FT32_RELAX:                  howto manager.      (line  437)
+* BFD_RELOC_FT32_SC0:                    howto manager.      (line  438)
+* BFD_RELOC_FT32_SC1:                    howto manager.      (line  439)
 * BFD_RELOC_GPREL16:                     howto manager.      (line  114)
 * BFD_RELOC_GPREL32:                     howto manager.      (line  115)
-* BFD_RELOC_H8_DIR16A8:                  howto manager.      (line 2387)
-* BFD_RELOC_H8_DIR16R8:                  howto manager.      (line 2388)
-* BFD_RELOC_H8_DIR24A8:                  howto manager.      (line 2389)
-* BFD_RELOC_H8_DIR24R8:                  howto manager.      (line 2390)
-* BFD_RELOC_H8_DIR32A16:                 howto manager.      (line 2391)
-* BFD_RELOC_H8_DISP32A16:                howto manager.      (line 2392)
+* BFD_RELOC_H8_DIR16A8:                  howto manager.      (line 2394)
+* BFD_RELOC_H8_DIR16R8:                  howto manager.      (line 2395)
+* BFD_RELOC_H8_DIR24A8:                  howto manager.      (line 2396)
+* BFD_RELOC_H8_DIR24R8:                  howto manager.      (line 2397)
+* BFD_RELOC_H8_DIR32A16:                 howto manager.      (line 2398)
+* BFD_RELOC_H8_DISP32A16:                howto manager.      (line 2399)
 * BFD_RELOC_HI16:                        howto manager.      (line  316)
 * BFD_RELOC_HI16_BASEREL:                howto manager.      (line   94)
 * BFD_RELOC_HI16_GOTOFF:                 howto manager.      (line   53)
@@ -12419,261 +12546,261 @@ BFD Index
 * BFD_RELOC_HI16_S_PCREL:                howto manager.      (line  327)
 * BFD_RELOC_HI16_S_PLTOFF:               howto manager.      (line   66)
 * BFD_RELOC_HI22:                        howto manager.      (line  110)
-* BFD_RELOC_I370_D12:                    howto manager.      (line  725)
+* BFD_RELOC_I370_D12:                    howto manager.      (line  730)
 * BFD_RELOC_I960_CALLJ:                  howto manager.      (line  120)
-* BFD_RELOC_IA64_COPY:                   howto manager.      (line 2090)
-* BFD_RELOC_IA64_DIR32LSB:               howto manager.      (line 2035)
-* BFD_RELOC_IA64_DIR32MSB:               howto manager.      (line 2034)
-* BFD_RELOC_IA64_DIR64LSB:               howto manager.      (line 2037)
-* BFD_RELOC_IA64_DIR64MSB:               howto manager.      (line 2036)
-* BFD_RELOC_IA64_DTPMOD64LSB:            howto manager.      (line 2100)
-* BFD_RELOC_IA64_DTPMOD64MSB:            howto manager.      (line 2099)
-* BFD_RELOC_IA64_DTPREL14:               howto manager.      (line 2102)
-* BFD_RELOC_IA64_DTPREL22:               howto manager.      (line 2103)
-* BFD_RELOC_IA64_DTPREL32LSB:            howto manager.      (line 2106)
-* BFD_RELOC_IA64_DTPREL32MSB:            howto manager.      (line 2105)
-* BFD_RELOC_IA64_DTPREL64I:              howto manager.      (line 2104)
-* BFD_RELOC_IA64_DTPREL64LSB:            howto manager.      (line 2108)
-* BFD_RELOC_IA64_DTPREL64MSB:            howto manager.      (line 2107)
-* BFD_RELOC_IA64_FPTR32LSB:              howto manager.      (line 2052)
-* BFD_RELOC_IA64_FPTR32MSB:              howto manager.      (line 2051)
-* BFD_RELOC_IA64_FPTR64I:                howto manager.      (line 2050)
-* BFD_RELOC_IA64_FPTR64LSB:              howto manager.      (line 2054)
-* BFD_RELOC_IA64_FPTR64MSB:              howto manager.      (line 2053)
-* BFD_RELOC_IA64_GPREL22:                howto manager.      (line 2038)
-* BFD_RELOC_IA64_GPREL32LSB:             howto manager.      (line 2041)
-* BFD_RELOC_IA64_GPREL32MSB:             howto manager.      (line 2040)
-* BFD_RELOC_IA64_GPREL64I:               howto manager.      (line 2039)
-* BFD_RELOC_IA64_GPREL64LSB:             howto manager.      (line 2043)
-* BFD_RELOC_IA64_GPREL64MSB:             howto manager.      (line 2042)
-* BFD_RELOC_IA64_IMM14:                  howto manager.      (line 2031)
-* BFD_RELOC_IA64_IMM22:                  howto manager.      (line 2032)
-* BFD_RELOC_IA64_IMM64:                  howto manager.      (line 2033)
-* BFD_RELOC_IA64_IPLTLSB:                howto manager.      (line 2089)
-* BFD_RELOC_IA64_IPLTMSB:                howto manager.      (line 2088)
-* BFD_RELOC_IA64_LDXMOV:                 howto manager.      (line 2092)
-* BFD_RELOC_IA64_LTOFF22:                howto manager.      (line 2044)
-* BFD_RELOC_IA64_LTOFF22X:               howto manager.      (line 2091)
-* BFD_RELOC_IA64_LTOFF64I:               howto manager.      (line 2045)
-* BFD_RELOC_IA64_LTOFF_DTPMOD22:         howto manager.      (line 2101)
-* BFD_RELOC_IA64_LTOFF_DTPREL22:         howto manager.      (line 2109)
-* BFD_RELOC_IA64_LTOFF_FPTR22:           howto manager.      (line 2066)
-* BFD_RELOC_IA64_LTOFF_FPTR32LSB:        howto manager.      (line 2069)
-* BFD_RELOC_IA64_LTOFF_FPTR32MSB:        howto manager.      (line 2068)
-* BFD_RELOC_IA64_LTOFF_FPTR64I:          howto manager.      (line 2067)
-* BFD_RELOC_IA64_LTOFF_FPTR64LSB:        howto manager.      (line 2071)
-* BFD_RELOC_IA64_LTOFF_FPTR64MSB:        howto manager.      (line 2070)
-* BFD_RELOC_IA64_LTOFF_TPREL22:          howto manager.      (line 2098)
-* BFD_RELOC_IA64_LTV32LSB:               howto manager.      (line 2085)
-* BFD_RELOC_IA64_LTV32MSB:               howto manager.      (line 2084)
-* BFD_RELOC_IA64_LTV64LSB:               howto manager.      (line 2087)
-* BFD_RELOC_IA64_LTV64MSB:               howto manager.      (line 2086)
-* BFD_RELOC_IA64_PCREL21B:               howto manager.      (line 2055)
-* BFD_RELOC_IA64_PCREL21BI:              howto manager.      (line 2056)
-* BFD_RELOC_IA64_PCREL21F:               howto manager.      (line 2058)
-* BFD_RELOC_IA64_PCREL21M:               howto manager.      (line 2057)
-* BFD_RELOC_IA64_PCREL22:                howto manager.      (line 2059)
-* BFD_RELOC_IA64_PCREL32LSB:             howto manager.      (line 2063)
-* BFD_RELOC_IA64_PCREL32MSB:             howto manager.      (line 2062)
-* BFD_RELOC_IA64_PCREL60B:               howto manager.      (line 2060)
-* BFD_RELOC_IA64_PCREL64I:               howto manager.      (line 2061)
-* BFD_RELOC_IA64_PCREL64LSB:             howto manager.      (line 2065)
-* BFD_RELOC_IA64_PCREL64MSB:             howto manager.      (line 2064)
-* BFD_RELOC_IA64_PLTOFF22:               howto manager.      (line 2046)
-* BFD_RELOC_IA64_PLTOFF64I:              howto manager.      (line 2047)
-* BFD_RELOC_IA64_PLTOFF64LSB:            howto manager.      (line 2049)
-* BFD_RELOC_IA64_PLTOFF64MSB:            howto manager.      (line 2048)
-* BFD_RELOC_IA64_REL32LSB:               howto manager.      (line 2081)
-* BFD_RELOC_IA64_REL32MSB:               howto manager.      (line 2080)
-* BFD_RELOC_IA64_REL64LSB:               howto manager.      (line 2083)
-* BFD_RELOC_IA64_REL64MSB:               howto manager.      (line 2082)
-* BFD_RELOC_IA64_SECREL32LSB:            howto manager.      (line 2077)
-* BFD_RELOC_IA64_SECREL32MSB:            howto manager.      (line 2076)
-* BFD_RELOC_IA64_SECREL64LSB:            howto manager.      (line 2079)
-* BFD_RELOC_IA64_SECREL64MSB:            howto manager.      (line 2078)
-* BFD_RELOC_IA64_SEGREL32LSB:            howto manager.      (line 2073)
-* BFD_RELOC_IA64_SEGREL32MSB:            howto manager.      (line 2072)
-* BFD_RELOC_IA64_SEGREL64LSB:            howto manager.      (line 2075)
-* BFD_RELOC_IA64_SEGREL64MSB:            howto manager.      (line 2074)
-* BFD_RELOC_IA64_TPREL14:                howto manager.      (line 2093)
-* BFD_RELOC_IA64_TPREL22:                howto manager.      (line 2094)
-* BFD_RELOC_IA64_TPREL64I:               howto manager.      (line 2095)
-* BFD_RELOC_IA64_TPREL64LSB:             howto manager.      (line 2097)
-* BFD_RELOC_IA64_TPREL64MSB:             howto manager.      (line 2096)
-* BFD_RELOC_IP2K_ADDR16CJP:              howto manager.      (line 1992)
-* BFD_RELOC_IP2K_BANK:                   howto manager.      (line 1990)
-* BFD_RELOC_IP2K_EX8DATA:                howto manager.      (line 1998)
-* BFD_RELOC_IP2K_FR9:                    howto manager.      (line 1988)
-* BFD_RELOC_IP2K_FR_OFFSET:              howto manager.      (line 2007)
-* BFD_RELOC_IP2K_HI8DATA:                howto manager.      (line 1997)
-* BFD_RELOC_IP2K_HI8INSN:                howto manager.      (line 2001)
-* BFD_RELOC_IP2K_LO8DATA:                howto manager.      (line 1996)
-* BFD_RELOC_IP2K_LO8INSN:                howto manager.      (line 2000)
-* BFD_RELOC_IP2K_PAGE3:                  howto manager.      (line 1994)
-* BFD_RELOC_IP2K_PC_SKIP:                howto manager.      (line 2003)
-* BFD_RELOC_IP2K_TEXT:                   howto manager.      (line 2005)
-* BFD_RELOC_IQ2000_OFFSET_16:            howto manager.      (line 2526)
-* BFD_RELOC_IQ2000_OFFSET_21:            howto manager.      (line 2527)
-* BFD_RELOC_IQ2000_UHI16:                howto manager.      (line 2528)
-* BFD_RELOC_LM32_16_GOT:                 howto manager.      (line 2618)
-* BFD_RELOC_LM32_BRANCH:                 howto manager.      (line 2617)
-* BFD_RELOC_LM32_CALL:                   howto manager.      (line 2616)
-* BFD_RELOC_LM32_COPY:                   howto manager.      (line 2621)
-* BFD_RELOC_LM32_GLOB_DAT:               howto manager.      (line 2622)
-* BFD_RELOC_LM32_GOTOFF_HI16:            howto manager.      (line 2619)
-* BFD_RELOC_LM32_GOTOFF_LO16:            howto manager.      (line 2620)
-* BFD_RELOC_LM32_JMP_SLOT:               howto manager.      (line 2623)
-* BFD_RELOC_LM32_RELATIVE:               howto manager.      (line 2624)
+* BFD_RELOC_IA64_COPY:                   howto manager.      (line 2097)
+* BFD_RELOC_IA64_DIR32LSB:               howto manager.      (line 2042)
+* BFD_RELOC_IA64_DIR32MSB:               howto manager.      (line 2041)
+* BFD_RELOC_IA64_DIR64LSB:               howto manager.      (line 2044)
+* BFD_RELOC_IA64_DIR64MSB:               howto manager.      (line 2043)
+* BFD_RELOC_IA64_DTPMOD64LSB:            howto manager.      (line 2107)
+* BFD_RELOC_IA64_DTPMOD64MSB:            howto manager.      (line 2106)
+* BFD_RELOC_IA64_DTPREL14:               howto manager.      (line 2109)
+* BFD_RELOC_IA64_DTPREL22:               howto manager.      (line 2110)
+* BFD_RELOC_IA64_DTPREL32LSB:            howto manager.      (line 2113)
+* BFD_RELOC_IA64_DTPREL32MSB:            howto manager.      (line 2112)
+* BFD_RELOC_IA64_DTPREL64I:              howto manager.      (line 2111)
+* BFD_RELOC_IA64_DTPREL64LSB:            howto manager.      (line 2115)
+* BFD_RELOC_IA64_DTPREL64MSB:            howto manager.      (line 2114)
+* BFD_RELOC_IA64_FPTR32LSB:              howto manager.      (line 2059)
+* BFD_RELOC_IA64_FPTR32MSB:              howto manager.      (line 2058)
+* BFD_RELOC_IA64_FPTR64I:                howto manager.      (line 2057)
+* BFD_RELOC_IA64_FPTR64LSB:              howto manager.      (line 2061)
+* BFD_RELOC_IA64_FPTR64MSB:              howto manager.      (line 2060)
+* BFD_RELOC_IA64_GPREL22:                howto manager.      (line 2045)
+* BFD_RELOC_IA64_GPREL32LSB:             howto manager.      (line 2048)
+* BFD_RELOC_IA64_GPREL32MSB:             howto manager.      (line 2047)
+* BFD_RELOC_IA64_GPREL64I:               howto manager.      (line 2046)
+* BFD_RELOC_IA64_GPREL64LSB:             howto manager.      (line 2050)
+* BFD_RELOC_IA64_GPREL64MSB:             howto manager.      (line 2049)
+* BFD_RELOC_IA64_IMM14:                  howto manager.      (line 2038)
+* BFD_RELOC_IA64_IMM22:                  howto manager.      (line 2039)
+* BFD_RELOC_IA64_IMM64:                  howto manager.      (line 2040)
+* BFD_RELOC_IA64_IPLTLSB:                howto manager.      (line 2096)
+* BFD_RELOC_IA64_IPLTMSB:                howto manager.      (line 2095)
+* BFD_RELOC_IA64_LDXMOV:                 howto manager.      (line 2099)
+* BFD_RELOC_IA64_LTOFF22:                howto manager.      (line 2051)
+* BFD_RELOC_IA64_LTOFF22X:               howto manager.      (line 2098)
+* BFD_RELOC_IA64_LTOFF64I:               howto manager.      (line 2052)
+* BFD_RELOC_IA64_LTOFF_DTPMOD22:         howto manager.      (line 2108)
+* BFD_RELOC_IA64_LTOFF_DTPREL22:         howto manager.      (line 2116)
+* BFD_RELOC_IA64_LTOFF_FPTR22:           howto manager.      (line 2073)
+* BFD_RELOC_IA64_LTOFF_FPTR32LSB:        howto manager.      (line 2076)
+* BFD_RELOC_IA64_LTOFF_FPTR32MSB:        howto manager.      (line 2075)
+* BFD_RELOC_IA64_LTOFF_FPTR64I:          howto manager.      (line 2074)
+* BFD_RELOC_IA64_LTOFF_FPTR64LSB:        howto manager.      (line 2078)
+* BFD_RELOC_IA64_LTOFF_FPTR64MSB:        howto manager.      (line 2077)
+* BFD_RELOC_IA64_LTOFF_TPREL22:          howto manager.      (line 2105)
+* BFD_RELOC_IA64_LTV32LSB:               howto manager.      (line 2092)
+* BFD_RELOC_IA64_LTV32MSB:               howto manager.      (line 2091)
+* BFD_RELOC_IA64_LTV64LSB:               howto manager.      (line 2094)
+* BFD_RELOC_IA64_LTV64MSB:               howto manager.      (line 2093)
+* BFD_RELOC_IA64_PCREL21B:               howto manager.      (line 2062)
+* BFD_RELOC_IA64_PCREL21BI:              howto manager.      (line 2063)
+* BFD_RELOC_IA64_PCREL21F:               howto manager.      (line 2065)
+* BFD_RELOC_IA64_PCREL21M:               howto manager.      (line 2064)
+* BFD_RELOC_IA64_PCREL22:                howto manager.      (line 2066)
+* BFD_RELOC_IA64_PCREL32LSB:             howto manager.      (line 2070)
+* BFD_RELOC_IA64_PCREL32MSB:             howto manager.      (line 2069)
+* BFD_RELOC_IA64_PCREL60B:               howto manager.      (line 2067)
+* BFD_RELOC_IA64_PCREL64I:               howto manager.      (line 2068)
+* BFD_RELOC_IA64_PCREL64LSB:             howto manager.      (line 2072)
+* BFD_RELOC_IA64_PCREL64MSB:             howto manager.      (line 2071)
+* BFD_RELOC_IA64_PLTOFF22:               howto manager.      (line 2053)
+* BFD_RELOC_IA64_PLTOFF64I:              howto manager.      (line 2054)
+* BFD_RELOC_IA64_PLTOFF64LSB:            howto manager.      (line 2056)
+* BFD_RELOC_IA64_PLTOFF64MSB:            howto manager.      (line 2055)
+* BFD_RELOC_IA64_REL32LSB:               howto manager.      (line 2088)
+* BFD_RELOC_IA64_REL32MSB:               howto manager.      (line 2087)
+* BFD_RELOC_IA64_REL64LSB:               howto manager.      (line 2090)
+* BFD_RELOC_IA64_REL64MSB:               howto manager.      (line 2089)
+* BFD_RELOC_IA64_SECREL32LSB:            howto manager.      (line 2084)
+* BFD_RELOC_IA64_SECREL32MSB:            howto manager.      (line 2083)
+* BFD_RELOC_IA64_SECREL64LSB:            howto manager.      (line 2086)
+* BFD_RELOC_IA64_SECREL64MSB:            howto manager.      (line 2085)
+* BFD_RELOC_IA64_SEGREL32LSB:            howto manager.      (line 2080)
+* BFD_RELOC_IA64_SEGREL32MSB:            howto manager.      (line 2079)
+* BFD_RELOC_IA64_SEGREL64LSB:            howto manager.      (line 2082)
+* BFD_RELOC_IA64_SEGREL64MSB:            howto manager.      (line 2081)
+* BFD_RELOC_IA64_TPREL14:                howto manager.      (line 2100)
+* BFD_RELOC_IA64_TPREL22:                howto manager.      (line 2101)
+* BFD_RELOC_IA64_TPREL64I:               howto manager.      (line 2102)
+* BFD_RELOC_IA64_TPREL64LSB:             howto manager.      (line 2104)
+* BFD_RELOC_IA64_TPREL64MSB:             howto manager.      (line 2103)
+* BFD_RELOC_IP2K_ADDR16CJP:              howto manager.      (line 1999)
+* BFD_RELOC_IP2K_BANK:                   howto manager.      (line 1997)
+* BFD_RELOC_IP2K_EX8DATA:                howto manager.      (line 2005)
+* BFD_RELOC_IP2K_FR9:                    howto manager.      (line 1995)
+* BFD_RELOC_IP2K_FR_OFFSET:              howto manager.      (line 2014)
+* BFD_RELOC_IP2K_HI8DATA:                howto manager.      (line 2004)
+* BFD_RELOC_IP2K_HI8INSN:                howto manager.      (line 2008)
+* BFD_RELOC_IP2K_LO8DATA:                howto manager.      (line 2003)
+* BFD_RELOC_IP2K_LO8INSN:                howto manager.      (line 2007)
+* BFD_RELOC_IP2K_PAGE3:                  howto manager.      (line 2001)
+* BFD_RELOC_IP2K_PC_SKIP:                howto manager.      (line 2010)
+* BFD_RELOC_IP2K_TEXT:                   howto manager.      (line 2012)
+* BFD_RELOC_IQ2000_OFFSET_16:            howto manager.      (line 2533)
+* BFD_RELOC_IQ2000_OFFSET_21:            howto manager.      (line 2534)
+* BFD_RELOC_IQ2000_UHI16:                howto manager.      (line 2535)
+* BFD_RELOC_LM32_16_GOT:                 howto manager.      (line 2625)
+* BFD_RELOC_LM32_BRANCH:                 howto manager.      (line 2624)
+* BFD_RELOC_LM32_CALL:                   howto manager.      (line 2623)
+* BFD_RELOC_LM32_COPY:                   howto manager.      (line 2628)
+* BFD_RELOC_LM32_GLOB_DAT:               howto manager.      (line 2629)
+* BFD_RELOC_LM32_GOTOFF_HI16:            howto manager.      (line 2626)
+* BFD_RELOC_LM32_GOTOFF_LO16:            howto manager.      (line 2627)
+* BFD_RELOC_LM32_JMP_SLOT:               howto manager.      (line 2630)
+* BFD_RELOC_LM32_RELATIVE:               howto manager.      (line 2631)
 * BFD_RELOC_LO10:                        howto manager.      (line  111)
 * BFD_RELOC_LO16:                        howto manager.      (line  323)
 * BFD_RELOC_LO16_BASEREL:                howto manager.      (line   93)
 * BFD_RELOC_LO16_GOTOFF:                 howto manager.      (line   52)
 * BFD_RELOC_LO16_PCREL:                  howto manager.      (line  329)
 * BFD_RELOC_LO16_PLTOFF:                 howto manager.      (line   64)
-* BFD_RELOC_M32C_HI8:                    howto manager.      (line 1176)
-* BFD_RELOC_M32C_RL_1ADDR:               howto manager.      (line 1178)
-* BFD_RELOC_M32C_RL_2ADDR:               howto manager.      (line 1179)
-* BFD_RELOC_M32C_RL_JUMP:                howto manager.      (line 1177)
-* BFD_RELOC_M32R_10_PCREL:               howto manager.      (line 1184)
-* BFD_RELOC_M32R_18_PCREL:               howto manager.      (line 1187)
-* BFD_RELOC_M32R_24:                     howto manager.      (line 1181)
-* BFD_RELOC_M32R_26_PCREL:               howto manager.      (line 1189)
-* BFD_RELOC_M32R_26_PLTREL:              howto manager.      (line 1203)
-* BFD_RELOC_M32R_COPY:                   howto manager.      (line 1204)
-* BFD_RELOC_M32R_GLOB_DAT:               howto manager.      (line 1205)
-* BFD_RELOC_M32R_GOT16_HI_SLO:           howto manager.      (line 1214)
-* BFD_RELOC_M32R_GOT16_HI_ULO:           howto manager.      (line 1213)
-* BFD_RELOC_M32R_GOT16_LO:               howto manager.      (line 1215)
-* BFD_RELOC_M32R_GOT24:                  howto manager.      (line 1202)
-* BFD_RELOC_M32R_GOTOFF:                 howto manager.      (line 1208)
-* BFD_RELOC_M32R_GOTOFF_HI_SLO:          howto manager.      (line 1210)
-* BFD_RELOC_M32R_GOTOFF_HI_ULO:          howto manager.      (line 1209)
-* BFD_RELOC_M32R_GOTOFF_LO:              howto manager.      (line 1211)
-* BFD_RELOC_M32R_GOTPC24:                howto manager.      (line 1212)
-* BFD_RELOC_M32R_GOTPC_HI_SLO:           howto manager.      (line 1217)
-* BFD_RELOC_M32R_GOTPC_HI_ULO:           howto manager.      (line 1216)
-* BFD_RELOC_M32R_GOTPC_LO:               howto manager.      (line 1218)
-* BFD_RELOC_M32R_HI16_SLO:               howto manager.      (line 1194)
-* BFD_RELOC_M32R_HI16_ULO:               howto manager.      (line 1191)
-* BFD_RELOC_M32R_JMP_SLOT:               howto manager.      (line 1206)
-* BFD_RELOC_M32R_LO16:                   howto manager.      (line 1197)
-* BFD_RELOC_M32R_RELATIVE:               howto manager.      (line 1207)
-* BFD_RELOC_M32R_SDA16:                  howto manager.      (line 1199)
-* BFD_RELOC_M68HC11_24:                  howto manager.      (line 2137)
-* BFD_RELOC_M68HC11_3B:                  howto manager.      (line 2117)
-* BFD_RELOC_M68HC11_HI8:                 howto manager.      (line 2111)
-* BFD_RELOC_M68HC11_LO16:                howto manager.      (line 2128)
-* BFD_RELOC_M68HC11_LO8:                 howto manager.      (line 2114)
-* BFD_RELOC_M68HC11_PAGE:                howto manager.      (line 2133)
-* BFD_RELOC_M68HC11_RL_GROUP:            howto manager.      (line 2124)
-* BFD_RELOC_M68HC11_RL_JUMP:             howto manager.      (line 2119)
-* BFD_RELOC_M68HC12_10_PCREL:            howto manager.      (line 2180)
-* BFD_RELOC_M68HC12_16B:                 howto manager.      (line 2176)
-* BFD_RELOC_M68HC12_5B:                  howto manager.      (line 2142)
-* BFD_RELOC_M68HC12_9B:                  howto manager.      (line 2174)
-* BFD_RELOC_M68HC12_9_PCREL:             howto manager.      (line 2178)
-* BFD_RELOC_M68HC12_HI8XG:               howto manager.      (line 2185)
-* BFD_RELOC_M68HC12_LO8XG:               howto manager.      (line 2182)
-* BFD_RELOC_MACH_O_ARM64_ADDEND:         howto manager.      (line 2652)
-* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21: howto manager.     (line 2654)
-* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12: howto manager.  (line 2656)
-* BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT: howto manager.      (line 2658)
-* BFD_RELOC_MACH_O_LOCAL_SECTDIFF:       howto manager.      (line 2629)
-* BFD_RELOC_MACH_O_PAIR:                 howto manager.      (line 2631)
-* BFD_RELOC_MACH_O_SECTDIFF:             howto manager.      (line 2626)
-* BFD_RELOC_MACH_O_SUBTRACTOR32:         howto manager.      (line 2633)
-* BFD_RELOC_MACH_O_SUBTRACTOR64:         howto manager.      (line 2635)
-* BFD_RELOC_MACH_O_X86_64_BRANCH32:      howto manager.      (line 2637)
-* BFD_RELOC_MACH_O_X86_64_BRANCH8:       howto manager.      (line 2638)
-* BFD_RELOC_MACH_O_X86_64_GOT:           howto manager.      (line 2641)
-* BFD_RELOC_MACH_O_X86_64_GOT_LOAD:      howto manager.      (line 2643)
-* BFD_RELOC_MACH_O_X86_64_PCREL32_1:     howto manager.      (line 2646)
-* BFD_RELOC_MACH_O_X86_64_PCREL32_2:     howto manager.      (line 2648)
-* BFD_RELOC_MACH_O_X86_64_PCREL32_4:     howto manager.      (line 2650)
-* BFD_RELOC_MCORE_PCREL_32:              howto manager.      (line 1556)
-* BFD_RELOC_MCORE_PCREL_IMM11BY2:        howto manager.      (line 1554)
-* BFD_RELOC_MCORE_PCREL_IMM4BY2:         howto manager.      (line 1555)
-* BFD_RELOC_MCORE_PCREL_IMM8BY4:         howto manager.      (line 1553)
-* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2:    howto manager.      (line 1557)
-* BFD_RELOC_MCORE_RVA:                   howto manager.      (line 1558)
-* BFD_RELOC_MEP_16:                      howto manager.      (line 1561)
-* BFD_RELOC_MEP_32:                      howto manager.      (line 1562)
-* BFD_RELOC_MEP_8:                       howto manager.      (line 1560)
-* BFD_RELOC_MEP_ADDR24A4:                howto manager.      (line 1577)
-* BFD_RELOC_MEP_GNU_VTENTRY:             howto manager.      (line 1579)
-* BFD_RELOC_MEP_GNU_VTINHERIT:           howto manager.      (line 1578)
-* BFD_RELOC_MEP_GPREL:                   howto manager.      (line 1571)
-* BFD_RELOC_MEP_HI16S:                   howto manager.      (line 1570)
-* BFD_RELOC_MEP_HI16U:                   howto manager.      (line 1569)
-* BFD_RELOC_MEP_LOW16:                   howto manager.      (line 1568)
-* BFD_RELOC_MEP_PCABS24A2:               howto manager.      (line 1567)
-* BFD_RELOC_MEP_PCREL12A2:               howto manager.      (line 1564)
-* BFD_RELOC_MEP_PCREL17A2:               howto manager.      (line 1565)
-* BFD_RELOC_MEP_PCREL24A2:               howto manager.      (line 1566)
-* BFD_RELOC_MEP_PCREL8A2:                howto manager.      (line 1563)
-* BFD_RELOC_MEP_TPREL:                   howto manager.      (line 1572)
-* BFD_RELOC_MEP_TPREL7:                  howto manager.      (line 1573)
-* BFD_RELOC_MEP_TPREL7A2:                howto manager.      (line 1574)
-* BFD_RELOC_MEP_TPREL7A4:                howto manager.      (line 1575)
-* BFD_RELOC_MEP_UIMM24:                  howto manager.      (line 1576)
-* BFD_RELOC_METAG_COPY:                  howto manager.      (line 1600)
-* BFD_RELOC_METAG_GETSETOFF:             howto manager.      (line 1584)
-* BFD_RELOC_METAG_GETSET_GOT:            howto manager.      (line 1592)
-* BFD_RELOC_METAG_GETSET_GOTOFF:         howto manager.      (line 1591)
-* BFD_RELOC_METAG_GLOB_DAT:              howto manager.      (line 1603)
-* BFD_RELOC_METAG_GOTOFF:                howto manager.      (line 1598)
-* BFD_RELOC_METAG_HI16_GOTOFF:           howto manager.      (line 1589)
-* BFD_RELOC_METAG_HI16_GOTPC:            howto manager.      (line 1593)
-* BFD_RELOC_METAG_HI16_PLT:              howto manager.      (line 1595)
-* BFD_RELOC_METAG_HIADDR16:              howto manager.      (line 1581)
-* BFD_RELOC_METAG_HIOG:                  howto manager.      (line 1585)
-* BFD_RELOC_METAG_JMP_SLOT:              howto manager.      (line 1601)
-* BFD_RELOC_METAG_LO16_GOTOFF:           howto manager.      (line 1590)
-* BFD_RELOC_METAG_LO16_GOTPC:            howto manager.      (line 1594)
-* BFD_RELOC_METAG_LO16_PLT:              howto manager.      (line 1596)
-* BFD_RELOC_METAG_LOADDR16:              howto manager.      (line 1582)
-* BFD_RELOC_METAG_LOOG:                  howto manager.      (line 1586)
-* BFD_RELOC_METAG_PLT:                   howto manager.      (line 1599)
-* BFD_RELOC_METAG_REL16:                 howto manager.      (line 1588)
-* BFD_RELOC_METAG_REL8:                  howto manager.      (line 1587)
-* BFD_RELOC_METAG_RELATIVE:              howto manager.      (line 1602)
-* BFD_RELOC_METAG_RELBRANCH:             howto manager.      (line 1583)
-* BFD_RELOC_METAG_RELBRANCH_PLT:         howto manager.      (line 1597)
-* BFD_RELOC_METAG_TLS_DTPMOD:            howto manager.      (line 1614)
-* BFD_RELOC_METAG_TLS_DTPOFF:            howto manager.      (line 1615)
-* BFD_RELOC_METAG_TLS_GD:                howto manager.      (line 1604)
-* BFD_RELOC_METAG_TLS_IE:                howto manager.      (line 1609)
-* BFD_RELOC_METAG_TLS_IENONPIC:          howto manager.      (line 1610)
-* BFD_RELOC_METAG_TLS_IENONPIC_HI16:     howto manager.      (line 1611)
-* BFD_RELOC_METAG_TLS_IENONPIC_LO16:     howto manager.      (line 1612)
-* BFD_RELOC_METAG_TLS_LDM:               howto manager.      (line 1605)
-* BFD_RELOC_METAG_TLS_LDO:               howto manager.      (line 1608)
-* BFD_RELOC_METAG_TLS_LDO_HI16:          howto manager.      (line 1606)
-* BFD_RELOC_METAG_TLS_LDO_LO16:          howto manager.      (line 1607)
-* BFD_RELOC_METAG_TLS_LE:                howto manager.      (line 1616)
-* BFD_RELOC_METAG_TLS_LE_HI16:           howto manager.      (line 1617)
-* BFD_RELOC_METAG_TLS_LE_LO16:           howto manager.      (line 1618)
-* BFD_RELOC_METAG_TLS_TPOFF:             howto manager.      (line 1613)
-* BFD_RELOC_MICROBLAZE_32_GOTOFF:        howto manager.      (line 2694)
-* BFD_RELOC_MICROBLAZE_32_LO:            howto manager.      (line 2660)
-* BFD_RELOC_MICROBLAZE_32_LO_PCREL:      howto manager.      (line 2663)
-* BFD_RELOC_MICROBLAZE_32_ROSDA:         howto manager.      (line 2666)
-* BFD_RELOC_MICROBLAZE_32_RWSDA:         howto manager.      (line 2669)
-* BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM:    howto manager.      (line 2672)
-* BFD_RELOC_MICROBLAZE_32_TLSDTPMOD:     howto manager.      (line 2710)
-* BFD_RELOC_MICROBLAZE_32_TLSDTPREL:     howto manager.      (line 2712)
-* BFD_RELOC_MICROBLAZE_64_GOT:           howto manager.      (line 2683)
-* BFD_RELOC_MICROBLAZE_64_GOTOFF:        howto manager.      (line 2690)
-* BFD_RELOC_MICROBLAZE_64_GOTPC:         howto manager.      (line 2679)
-* BFD_RELOC_MICROBLAZE_64_NONE:          howto manager.      (line 2675)
-* BFD_RELOC_MICROBLAZE_64_PLT:           howto manager.      (line 2686)
-* BFD_RELOC_MICROBLAZE_64_TLS:           howto manager.      (line 2700)
-* BFD_RELOC_MICROBLAZE_64_TLSDTPREL:     howto manager.      (line 2714)
-* BFD_RELOC_MICROBLAZE_64_TLSGD:         howto manager.      (line 2702)
-* BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL:   howto manager.      (line 2717)
-* BFD_RELOC_MICROBLAZE_64_TLSLD:         howto manager.      (line 2706)
-* BFD_RELOC_MICROBLAZE_64_TLSTPREL:      howto manager.      (line 2720)
-* BFD_RELOC_MICROBLAZE_COPY:             howto manager.      (line 2697)
+* BFD_RELOC_M32C_HI8:                    howto manager.      (line 1182)
+* BFD_RELOC_M32C_RL_1ADDR:               howto manager.      (line 1184)
+* BFD_RELOC_M32C_RL_2ADDR:               howto manager.      (line 1185)
+* BFD_RELOC_M32C_RL_JUMP:                howto manager.      (line 1183)
+* BFD_RELOC_M32R_10_PCREL:               howto manager.      (line 1190)
+* BFD_RELOC_M32R_18_PCREL:               howto manager.      (line 1193)
+* BFD_RELOC_M32R_24:                     howto manager.      (line 1187)
+* BFD_RELOC_M32R_26_PCREL:               howto manager.      (line 1195)
+* BFD_RELOC_M32R_26_PLTREL:              howto manager.      (line 1209)
+* BFD_RELOC_M32R_COPY:                   howto manager.      (line 1210)
+* BFD_RELOC_M32R_GLOB_DAT:               howto manager.      (line 1211)
+* BFD_RELOC_M32R_GOT16_HI_SLO:           howto manager.      (line 1220)
+* BFD_RELOC_M32R_GOT16_HI_ULO:           howto manager.      (line 1219)
+* BFD_RELOC_M32R_GOT16_LO:               howto manager.      (line 1221)
+* BFD_RELOC_M32R_GOT24:                  howto manager.      (line 1208)
+* BFD_RELOC_M32R_GOTOFF:                 howto manager.      (line 1214)
+* BFD_RELOC_M32R_GOTOFF_HI_SLO:          howto manager.      (line 1216)
+* BFD_RELOC_M32R_GOTOFF_HI_ULO:          howto manager.      (line 1215)
+* BFD_RELOC_M32R_GOTOFF_LO:              howto manager.      (line 1217)
+* BFD_RELOC_M32R_GOTPC24:                howto manager.      (line 1218)
+* BFD_RELOC_M32R_GOTPC_HI_SLO:           howto manager.      (line 1223)
+* BFD_RELOC_M32R_GOTPC_HI_ULO:           howto manager.      (line 1222)
+* BFD_RELOC_M32R_GOTPC_LO:               howto manager.      (line 1224)
+* BFD_RELOC_M32R_HI16_SLO:               howto manager.      (line 1200)
+* BFD_RELOC_M32R_HI16_ULO:               howto manager.      (line 1197)
+* BFD_RELOC_M32R_JMP_SLOT:               howto manager.      (line 1212)
+* BFD_RELOC_M32R_LO16:                   howto manager.      (line 1203)
+* BFD_RELOC_M32R_RELATIVE:               howto manager.      (line 1213)
+* BFD_RELOC_M32R_SDA16:                  howto manager.      (line 1205)
+* BFD_RELOC_M68HC11_24:                  howto manager.      (line 2144)
+* BFD_RELOC_M68HC11_3B:                  howto manager.      (line 2124)
+* BFD_RELOC_M68HC11_HI8:                 howto manager.      (line 2118)
+* BFD_RELOC_M68HC11_LO16:                howto manager.      (line 2135)
+* BFD_RELOC_M68HC11_LO8:                 howto manager.      (line 2121)
+* BFD_RELOC_M68HC11_PAGE:                howto manager.      (line 2140)
+* BFD_RELOC_M68HC11_RL_GROUP:            howto manager.      (line 2131)
+* BFD_RELOC_M68HC11_RL_JUMP:             howto manager.      (line 2126)
+* BFD_RELOC_M68HC12_10_PCREL:            howto manager.      (line 2187)
+* BFD_RELOC_M68HC12_16B:                 howto manager.      (line 2183)
+* BFD_RELOC_M68HC12_5B:                  howto manager.      (line 2149)
+* BFD_RELOC_M68HC12_9B:                  howto manager.      (line 2181)
+* BFD_RELOC_M68HC12_9_PCREL:             howto manager.      (line 2185)
+* BFD_RELOC_M68HC12_HI8XG:               howto manager.      (line 2192)
+* BFD_RELOC_M68HC12_LO8XG:               howto manager.      (line 2189)
+* BFD_RELOC_MACH_O_ARM64_ADDEND:         howto manager.      (line 2659)
+* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21: howto manager.     (line 2661)
+* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12: howto manager.  (line 2663)
+* BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT: howto manager.      (line 2665)
+* BFD_RELOC_MACH_O_LOCAL_SECTDIFF:       howto manager.      (line 2636)
+* BFD_RELOC_MACH_O_PAIR:                 howto manager.      (line 2638)
+* BFD_RELOC_MACH_O_SECTDIFF:             howto manager.      (line 2633)
+* BFD_RELOC_MACH_O_SUBTRACTOR32:         howto manager.      (line 2640)
+* BFD_RELOC_MACH_O_SUBTRACTOR64:         howto manager.      (line 2642)
+* BFD_RELOC_MACH_O_X86_64_BRANCH32:      howto manager.      (line 2644)
+* BFD_RELOC_MACH_O_X86_64_BRANCH8:       howto manager.      (line 2645)
+* BFD_RELOC_MACH_O_X86_64_GOT:           howto manager.      (line 2648)
+* BFD_RELOC_MACH_O_X86_64_GOT_LOAD:      howto manager.      (line 2650)
+* BFD_RELOC_MACH_O_X86_64_PCREL32_1:     howto manager.      (line 2653)
+* BFD_RELOC_MACH_O_X86_64_PCREL32_2:     howto manager.      (line 2655)
+* BFD_RELOC_MACH_O_X86_64_PCREL32_4:     howto manager.      (line 2657)
+* BFD_RELOC_MCORE_PCREL_32:              howto manager.      (line 1562)
+* BFD_RELOC_MCORE_PCREL_IMM11BY2:        howto manager.      (line 1560)
+* BFD_RELOC_MCORE_PCREL_IMM4BY2:         howto manager.      (line 1561)
+* BFD_RELOC_MCORE_PCREL_IMM8BY4:         howto manager.      (line 1559)
+* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2:    howto manager.      (line 1563)
+* BFD_RELOC_MCORE_RVA:                   howto manager.      (line 1564)
+* BFD_RELOC_MEP_16:                      howto manager.      (line 1567)
+* BFD_RELOC_MEP_32:                      howto manager.      (line 1568)
+* BFD_RELOC_MEP_8:                       howto manager.      (line 1566)
+* BFD_RELOC_MEP_ADDR24A4:                howto manager.      (line 1583)
+* BFD_RELOC_MEP_GNU_VTENTRY:             howto manager.      (line 1585)
+* BFD_RELOC_MEP_GNU_VTINHERIT:           howto manager.      (line 1584)
+* BFD_RELOC_MEP_GPREL:                   howto manager.      (line 1577)
+* BFD_RELOC_MEP_HI16S:                   howto manager.      (line 1576)
+* BFD_RELOC_MEP_HI16U:                   howto manager.      (line 1575)
+* BFD_RELOC_MEP_LOW16:                   howto manager.      (line 1574)
+* BFD_RELOC_MEP_PCABS24A2:               howto manager.      (line 1573)
+* BFD_RELOC_MEP_PCREL12A2:               howto manager.      (line 1570)
+* BFD_RELOC_MEP_PCREL17A2:               howto manager.      (line 1571)
+* BFD_RELOC_MEP_PCREL24A2:               howto manager.      (line 1572)
+* BFD_RELOC_MEP_PCREL8A2:                howto manager.      (line 1569)
+* BFD_RELOC_MEP_TPREL:                   howto manager.      (line 1578)
+* BFD_RELOC_MEP_TPREL7:                  howto manager.      (line 1579)
+* BFD_RELOC_MEP_TPREL7A2:                howto manager.      (line 1580)
+* BFD_RELOC_MEP_TPREL7A4:                howto manager.      (line 1581)
+* BFD_RELOC_MEP_UIMM24:                  howto manager.      (line 1582)
+* BFD_RELOC_METAG_COPY:                  howto manager.      (line 1606)
+* BFD_RELOC_METAG_GETSETOFF:             howto manager.      (line 1590)
+* BFD_RELOC_METAG_GETSET_GOT:            howto manager.      (line 1598)
+* BFD_RELOC_METAG_GETSET_GOTOFF:         howto manager.      (line 1597)
+* BFD_RELOC_METAG_GLOB_DAT:              howto manager.      (line 1609)
+* BFD_RELOC_METAG_GOTOFF:                howto manager.      (line 1604)
+* BFD_RELOC_METAG_HI16_GOTOFF:           howto manager.      (line 1595)
+* BFD_RELOC_METAG_HI16_GOTPC:            howto manager.      (line 1599)
+* BFD_RELOC_METAG_HI16_PLT:              howto manager.      (line 1601)
+* BFD_RELOC_METAG_HIADDR16:              howto manager.      (line 1587)
+* BFD_RELOC_METAG_HIOG:                  howto manager.      (line 1591)
+* BFD_RELOC_METAG_JMP_SLOT:              howto manager.      (line 1607)
+* BFD_RELOC_METAG_LO16_GOTOFF:           howto manager.      (line 1596)
+* BFD_RELOC_METAG_LO16_GOTPC:            howto manager.      (line 1600)
+* BFD_RELOC_METAG_LO16_PLT:              howto manager.      (line 1602)
+* BFD_RELOC_METAG_LOADDR16:              howto manager.      (line 1588)
+* BFD_RELOC_METAG_LOOG:                  howto manager.      (line 1592)
+* BFD_RELOC_METAG_PLT:                   howto manager.      (line 1605)
+* BFD_RELOC_METAG_REL16:                 howto manager.      (line 1594)
+* BFD_RELOC_METAG_REL8:                  howto manager.      (line 1593)
+* BFD_RELOC_METAG_RELATIVE:              howto manager.      (line 1608)
+* BFD_RELOC_METAG_RELBRANCH:             howto manager.      (line 1589)
+* BFD_RELOC_METAG_RELBRANCH_PLT:         howto manager.      (line 1603)
+* BFD_RELOC_METAG_TLS_DTPMOD:            howto manager.      (line 1620)
+* BFD_RELOC_METAG_TLS_DTPOFF:            howto manager.      (line 1621)
+* BFD_RELOC_METAG_TLS_GD:                howto manager.      (line 1610)
+* BFD_RELOC_METAG_TLS_IE:                howto manager.      (line 1615)
+* BFD_RELOC_METAG_TLS_IENONPIC:          howto manager.      (line 1616)
+* BFD_RELOC_METAG_TLS_IENONPIC_HI16:     howto manager.      (line 1617)
+* BFD_RELOC_METAG_TLS_IENONPIC_LO16:     howto manager.      (line 1618)
+* BFD_RELOC_METAG_TLS_LDM:               howto manager.      (line 1611)
+* BFD_RELOC_METAG_TLS_LDO:               howto manager.      (line 1614)
+* BFD_RELOC_METAG_TLS_LDO_HI16:          howto manager.      (line 1612)
+* BFD_RELOC_METAG_TLS_LDO_LO16:          howto manager.      (line 1613)
+* BFD_RELOC_METAG_TLS_LE:                howto manager.      (line 1622)
+* BFD_RELOC_METAG_TLS_LE_HI16:           howto manager.      (line 1623)
+* BFD_RELOC_METAG_TLS_LE_LO16:           howto manager.      (line 1624)
+* BFD_RELOC_METAG_TLS_TPOFF:             howto manager.      (line 1619)
+* BFD_RELOC_MICROBLAZE_32_GOTOFF:        howto manager.      (line 2701)
+* BFD_RELOC_MICROBLAZE_32_LO:            howto manager.      (line 2667)
+* BFD_RELOC_MICROBLAZE_32_LO_PCREL:      howto manager.      (line 2670)
+* BFD_RELOC_MICROBLAZE_32_ROSDA:         howto manager.      (line 2673)
+* BFD_RELOC_MICROBLAZE_32_RWSDA:         howto manager.      (line 2676)
+* BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM:    howto manager.      (line 2679)
+* BFD_RELOC_MICROBLAZE_32_TLSDTPMOD:     howto manager.      (line 2717)
+* BFD_RELOC_MICROBLAZE_32_TLSDTPREL:     howto manager.      (line 2719)
+* BFD_RELOC_MICROBLAZE_64_GOT:           howto manager.      (line 2690)
+* BFD_RELOC_MICROBLAZE_64_GOTOFF:        howto manager.      (line 2697)
+* BFD_RELOC_MICROBLAZE_64_GOTPC:         howto manager.      (line 2686)
+* BFD_RELOC_MICROBLAZE_64_NONE:          howto manager.      (line 2682)
+* BFD_RELOC_MICROBLAZE_64_PLT:           howto manager.      (line 2693)
+* BFD_RELOC_MICROBLAZE_64_TLS:           howto manager.      (line 2707)
+* BFD_RELOC_MICROBLAZE_64_TLSDTPREL:     howto manager.      (line 2721)
+* BFD_RELOC_MICROBLAZE_64_TLSGD:         howto manager.      (line 2709)
+* BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL:   howto manager.      (line 2724)
+* BFD_RELOC_MICROBLAZE_64_TLSLD:         howto manager.      (line 2713)
+* BFD_RELOC_MICROBLAZE_64_TLSTPREL:      howto manager.      (line 2727)
+* BFD_RELOC_MICROBLAZE_COPY:             howto manager.      (line 2704)
 * BFD_RELOC_MICROMIPS_10_PCREL_S1:       howto manager.      (line  356)
 * BFD_RELOC_MICROMIPS_16_PCREL_S1:       howto manager.      (line  357)
 * BFD_RELOC_MICROMIPS_7_PCREL_S1:        howto manager.      (line  355)
@@ -12762,646 +12889,648 @@ BFD Index
 * BFD_RELOC_MIPS_TLS_TPREL64:            howto manager.      (line  421)
 * BFD_RELOC_MIPS_TLS_TPREL_HI16:         howto manager.      (line  422)
 * BFD_RELOC_MIPS_TLS_TPREL_LO16:         howto manager.      (line  424)
-* BFD_RELOC_MMIX_ADDR19:                 howto manager.      (line 1642)
-* BFD_RELOC_MMIX_ADDR27:                 howto manager.      (line 1645)
-* BFD_RELOC_MMIX_BASE_PLUS_OFFSET:       howto manager.      (line 1654)
-* BFD_RELOC_MMIX_CBRANCH:                howto manager.      (line 1625)
-* BFD_RELOC_MMIX_CBRANCH_1:              howto manager.      (line 1627)
-* BFD_RELOC_MMIX_CBRANCH_2:              howto manager.      (line 1628)
-* BFD_RELOC_MMIX_CBRANCH_3:              howto manager.      (line 1629)
-* BFD_RELOC_MMIX_CBRANCH_J:              howto manager.      (line 1626)
-* BFD_RELOC_MMIX_GETA:                   howto manager.      (line 1620)
-* BFD_RELOC_MMIX_GETA_1:                 howto manager.      (line 1621)
-* BFD_RELOC_MMIX_GETA_2:                 howto manager.      (line 1622)
-* BFD_RELOC_MMIX_GETA_3:                 howto manager.      (line 1623)
-* BFD_RELOC_MMIX_JMP:                    howto manager.      (line 1637)
-* BFD_RELOC_MMIX_JMP_1:                  howto manager.      (line 1638)
-* BFD_RELOC_MMIX_JMP_2:                  howto manager.      (line 1639)
-* BFD_RELOC_MMIX_JMP_3:                  howto manager.      (line 1640)
-* BFD_RELOC_MMIX_LOCAL:                  howto manager.      (line 1657)
-* BFD_RELOC_MMIX_PUSHJ:                  howto manager.      (line 1631)
-* BFD_RELOC_MMIX_PUSHJ_1:                howto manager.      (line 1632)
-* BFD_RELOC_MMIX_PUSHJ_2:                howto manager.      (line 1633)
-* BFD_RELOC_MMIX_PUSHJ_3:                howto manager.      (line 1634)
-* BFD_RELOC_MMIX_PUSHJ_STUBBABLE:        howto manager.      (line 1635)
-* BFD_RELOC_MMIX_REG:                    howto manager.      (line 1651)
-* BFD_RELOC_MMIX_REG_OR_BYTE:            howto manager.      (line 1648)
-* BFD_RELOC_MN10300_16_PCREL:            howto manager.      (line  517)
-* BFD_RELOC_MN10300_32_PCREL:            howto manager.      (line  514)
-* BFD_RELOC_MN10300_ALIGN:               howto manager.      (line  501)
-* BFD_RELOC_MN10300_COPY:                howto manager.      (line  489)
-* BFD_RELOC_MN10300_GLOB_DAT:            howto manager.      (line  491)
-* BFD_RELOC_MN10300_GOT16:               howto manager.      (line  486)
-* BFD_RELOC_MN10300_GOT24:               howto manager.      (line  483)
-* BFD_RELOC_MN10300_GOT32:               howto manager.      (line  480)
-* BFD_RELOC_MN10300_GOTOFF24:            howto manager.      (line  478)
-* BFD_RELOC_MN10300_JMP_SLOT:            howto manager.      (line  493)
-* BFD_RELOC_MN10300_RELATIVE:            howto manager.      (line  495)
-* BFD_RELOC_MN10300_SYM_DIFF:            howto manager.      (line  497)
-* BFD_RELOC_MN10300_TLS_DTPMOD:          howto manager.      (line  510)
-* BFD_RELOC_MN10300_TLS_DTPOFF:          howto manager.      (line  511)
-* BFD_RELOC_MN10300_TLS_GD:              howto manager.      (line  504)
-* BFD_RELOC_MN10300_TLS_GOTIE:           howto manager.      (line  507)
-* BFD_RELOC_MN10300_TLS_IE:              howto manager.      (line  508)
-* BFD_RELOC_MN10300_TLS_LD:              howto manager.      (line  505)
-* BFD_RELOC_MN10300_TLS_LDO:             howto manager.      (line  506)
-* BFD_RELOC_MN10300_TLS_LE:              howto manager.      (line  509)
-* BFD_RELOC_MN10300_TLS_TPOFF:           howto manager.      (line  512)
+* BFD_RELOC_MMIX_ADDR19:                 howto manager.      (line 1648)
+* BFD_RELOC_MMIX_ADDR27:                 howto manager.      (line 1651)
+* BFD_RELOC_MMIX_BASE_PLUS_OFFSET:       howto manager.      (line 1660)
+* BFD_RELOC_MMIX_CBRANCH:                howto manager.      (line 1631)
+* BFD_RELOC_MMIX_CBRANCH_1:              howto manager.      (line 1633)
+* BFD_RELOC_MMIX_CBRANCH_2:              howto manager.      (line 1634)
+* BFD_RELOC_MMIX_CBRANCH_3:              howto manager.      (line 1635)
+* BFD_RELOC_MMIX_CBRANCH_J:              howto manager.      (line 1632)
+* BFD_RELOC_MMIX_GETA:                   howto manager.      (line 1626)
+* BFD_RELOC_MMIX_GETA_1:                 howto manager.      (line 1627)
+* BFD_RELOC_MMIX_GETA_2:                 howto manager.      (line 1628)
+* BFD_RELOC_MMIX_GETA_3:                 howto manager.      (line 1629)
+* BFD_RELOC_MMIX_JMP:                    howto manager.      (line 1643)
+* BFD_RELOC_MMIX_JMP_1:                  howto manager.      (line 1644)
+* BFD_RELOC_MMIX_JMP_2:                  howto manager.      (line 1645)
+* BFD_RELOC_MMIX_JMP_3:                  howto manager.      (line 1646)
+* BFD_RELOC_MMIX_LOCAL:                  howto manager.      (line 1663)
+* BFD_RELOC_MMIX_PUSHJ:                  howto manager.      (line 1637)
+* BFD_RELOC_MMIX_PUSHJ_1:                howto manager.      (line 1638)
+* BFD_RELOC_MMIX_PUSHJ_2:                howto manager.      (line 1639)
+* BFD_RELOC_MMIX_PUSHJ_3:                howto manager.      (line 1640)
+* BFD_RELOC_MMIX_PUSHJ_STUBBABLE:        howto manager.      (line 1641)
+* BFD_RELOC_MMIX_REG:                    howto manager.      (line 1657)
+* BFD_RELOC_MMIX_REG_OR_BYTE:            howto manager.      (line 1654)
+* BFD_RELOC_MN10300_16_PCREL:            howto manager.      (line  522)
+* BFD_RELOC_MN10300_32_PCREL:            howto manager.      (line  519)
+* BFD_RELOC_MN10300_ALIGN:               howto manager.      (line  506)
+* BFD_RELOC_MN10300_COPY:                howto manager.      (line  494)
+* BFD_RELOC_MN10300_GLOB_DAT:            howto manager.      (line  496)
+* BFD_RELOC_MN10300_GOT16:               howto manager.      (line  491)
+* BFD_RELOC_MN10300_GOT24:               howto manager.      (line  488)
+* BFD_RELOC_MN10300_GOT32:               howto manager.      (line  485)
+* BFD_RELOC_MN10300_GOTOFF24:            howto manager.      (line  483)
+* BFD_RELOC_MN10300_JMP_SLOT:            howto manager.      (line  498)
+* BFD_RELOC_MN10300_RELATIVE:            howto manager.      (line  500)
+* BFD_RELOC_MN10300_SYM_DIFF:            howto manager.      (line  502)
+* BFD_RELOC_MN10300_TLS_DTPMOD:          howto manager.      (line  515)
+* BFD_RELOC_MN10300_TLS_DTPOFF:          howto manager.      (line  516)
+* BFD_RELOC_MN10300_TLS_GD:              howto manager.      (line  509)
+* BFD_RELOC_MN10300_TLS_GOTIE:           howto manager.      (line  512)
+* BFD_RELOC_MN10300_TLS_IE:              howto manager.      (line  513)
+* BFD_RELOC_MN10300_TLS_LD:              howto manager.      (line  510)
+* BFD_RELOC_MN10300_TLS_LDO:             howto manager.      (line  511)
+* BFD_RELOC_MN10300_TLS_LE:              howto manager.      (line  514)
+* BFD_RELOC_MN10300_TLS_TPOFF:           howto manager.      (line  517)
 * BFD_RELOC_MOXIE_10_PCREL:              howto manager.      (line  431)
-* BFD_RELOC_MSP430X_ABS16:               howto manager.      (line 2440)
-* BFD_RELOC_MSP430X_ABS20_ADR_DST:       howto manager.      (line 2437)
-* BFD_RELOC_MSP430X_ABS20_ADR_SRC:       howto manager.      (line 2436)
-* BFD_RELOC_MSP430X_ABS20_EXT_DST:       howto manager.      (line 2434)
-* BFD_RELOC_MSP430X_ABS20_EXT_ODST:      howto manager.      (line 2435)
-* BFD_RELOC_MSP430X_ABS20_EXT_SRC:       howto manager.      (line 2433)
-* BFD_RELOC_MSP430X_PCR16:               howto manager.      (line 2438)
-* BFD_RELOC_MSP430X_PCR20_CALL:          howto manager.      (line 2439)
-* BFD_RELOC_MSP430X_PCR20_EXT_DST:       howto manager.      (line 2431)
-* BFD_RELOC_MSP430X_PCR20_EXT_ODST:      howto manager.      (line 2432)
-* BFD_RELOC_MSP430X_PCR20_EXT_SRC:       howto manager.      (line 2430)
-* BFD_RELOC_MSP430_10_PCREL:             howto manager.      (line 2422)
-* BFD_RELOC_MSP430_16:                   howto manager.      (line 2424)
-* BFD_RELOC_MSP430_16_BYTE:              howto manager.      (line 2426)
-* BFD_RELOC_MSP430_16_PCREL:             howto manager.      (line 2423)
-* BFD_RELOC_MSP430_16_PCREL_BYTE:        howto manager.      (line 2425)
-* BFD_RELOC_MSP430_2X_PCREL:             howto manager.      (line 2427)
-* BFD_RELOC_MSP430_ABS8:                 howto manager.      (line 2429)
-* BFD_RELOC_MSP430_ABS_HI16:             howto manager.      (line 2441)
-* BFD_RELOC_MSP430_PREL31:               howto manager.      (line 2442)
-* BFD_RELOC_MSP430_RL_PCREL:             howto manager.      (line 2428)
-* BFD_RELOC_MSP430_SYM_DIFF:             howto manager.      (line 2443)
-* BFD_RELOC_MT_GNU_VTENTRY:              howto manager.      (line 2418)
-* BFD_RELOC_MT_GNU_VTINHERIT:            howto manager.      (line 2416)
-* BFD_RELOC_MT_HI16:                     howto manager.      (line 2412)
-* BFD_RELOC_MT_LO16:                     howto manager.      (line 2414)
-* BFD_RELOC_MT_PC16:                     howto manager.      (line 2410)
-* BFD_RELOC_MT_PCINSN8:                  howto manager.      (line 2420)
-* BFD_RELOC_NDS32_10IFCU_PCREL:          howto manager.      (line 1370)
-* BFD_RELOC_NDS32_10_UPCREL:             howto manager.      (line 1341)
-* BFD_RELOC_NDS32_15_FIXED:              howto manager.      (line 1302)
-* BFD_RELOC_NDS32_15_PCREL:              howto manager.      (line 1228)
-* BFD_RELOC_NDS32_17IFC_PCREL:           howto manager.      (line 1369)
-* BFD_RELOC_NDS32_17_FIXED:              howto manager.      (line 1303)
-* BFD_RELOC_NDS32_17_PCREL:              howto manager.      (line 1230)
-* BFD_RELOC_NDS32_20:                    howto manager.      (line 1220)
-* BFD_RELOC_NDS32_25_ABS:                howto manager.      (line 1365)
-* BFD_RELOC_NDS32_25_FIXED:              howto manager.      (line 1304)
-* BFD_RELOC_NDS32_25_PCREL:              howto manager.      (line 1232)
-* BFD_RELOC_NDS32_25_PLTREL:             howto manager.      (line 1278)
-* BFD_RELOC_NDS32_5:                     howto manager.      (line 1339)
-* BFD_RELOC_NDS32_9_FIXED:               howto manager.      (line 1301)
-* BFD_RELOC_NDS32_9_PCREL:               howto manager.      (line 1222)
-* BFD_RELOC_NDS32_9_PLTREL:              howto manager.      (line 1277)
-* BFD_RELOC_NDS32_COPY:                  howto manager.      (line 1279)
-* BFD_RELOC_NDS32_DATA:                  howto manager.      (line 1367)
-* BFD_RELOC_NDS32_DIFF16:                howto manager.      (line 1360)
-* BFD_RELOC_NDS32_DIFF32:                howto manager.      (line 1361)
-* BFD_RELOC_NDS32_DIFF8:                 howto manager.      (line 1359)
-* BFD_RELOC_NDS32_DIFF_ULEB128:          howto manager.      (line 1362)
-* BFD_RELOC_NDS32_DWARF2_LEB:            howto manager.      (line 1325)
-* BFD_RELOC_NDS32_DWARF2_OP1:            howto manager.      (line 1323)
-* BFD_RELOC_NDS32_DWARF2_OP2:            howto manager.      (line 1324)
-* BFD_RELOC_NDS32_EMPTY:                 howto manager.      (line 1363)
-* BFD_RELOC_NDS32_GLOB_DAT:              howto manager.      (line 1280)
-* BFD_RELOC_NDS32_GOT15S2:               howto manager.      (line 1336)
-* BFD_RELOC_NDS32_GOT17S2:               howto manager.      (line 1337)
-* BFD_RELOC_NDS32_GOT20:                 howto manager.      (line 1276)
-* BFD_RELOC_NDS32_GOTOFF:                howto manager.      (line 1283)
-* BFD_RELOC_NDS32_GOTOFF_HI20:           howto manager.      (line 1284)
-* BFD_RELOC_NDS32_GOTOFF_LO12:           howto manager.      (line 1285)
-* BFD_RELOC_NDS32_GOTOFF_LO15:           howto manager.      (line 1334)
-* BFD_RELOC_NDS32_GOTOFF_LO19:           howto manager.      (line 1335)
-* BFD_RELOC_NDS32_GOTOFF_SUFF:           howto manager.      (line 1348)
-* BFD_RELOC_NDS32_GOTPC20:               howto manager.      (line 1286)
-* BFD_RELOC_NDS32_GOTPC_HI20:            howto manager.      (line 1289)
-* BFD_RELOC_NDS32_GOTPC_LO12:            howto manager.      (line 1290)
-* BFD_RELOC_NDS32_GOTTPOFF:              howto manager.      (line 1377)
-* BFD_RELOC_NDS32_GOT_HI20:              howto manager.      (line 1287)
-* BFD_RELOC_NDS32_GOT_LO12:              howto manager.      (line 1288)
-* BFD_RELOC_NDS32_GOT_LO15:              howto manager.      (line 1332)
-* BFD_RELOC_NDS32_GOT_LO19:              howto manager.      (line 1333)
-* BFD_RELOC_NDS32_GOT_SUFF:              howto manager.      (line 1347)
-* BFD_RELOC_NDS32_HI20:                  howto manager.      (line 1234)
-* BFD_RELOC_NDS32_INSN16:                howto manager.      (line 1292)
-* BFD_RELOC_NDS32_JMP_SLOT:              howto manager.      (line 1281)
-* BFD_RELOC_NDS32_LABEL:                 howto manager.      (line 1293)
-* BFD_RELOC_NDS32_LO12S0:                howto manager.      (line 1246)
-* BFD_RELOC_NDS32_LO12S0_ORI:            howto manager.      (line 1249)
-* BFD_RELOC_NDS32_LO12S1:                howto manager.      (line 1243)
-* BFD_RELOC_NDS32_LO12S2:                howto manager.      (line 1240)
-* BFD_RELOC_NDS32_LO12S2_DP:             howto manager.      (line 1320)
-* BFD_RELOC_NDS32_LO12S2_SP:             howto manager.      (line 1321)
-* BFD_RELOC_NDS32_LO12S3:                howto manager.      (line 1237)
-* BFD_RELOC_NDS32_LOADSTORE:             howto manager.      (line 1300)
-* BFD_RELOC_NDS32_LONGCALL1:             howto manager.      (line 1294)
-* BFD_RELOC_NDS32_LONGCALL2:             howto manager.      (line 1295)
-* BFD_RELOC_NDS32_LONGCALL3:             howto manager.      (line 1296)
-* BFD_RELOC_NDS32_LONGCALL4:             howto manager.      (line 1305)
-* BFD_RELOC_NDS32_LONGCALL5:             howto manager.      (line 1306)
-* BFD_RELOC_NDS32_LONGCALL6:             howto manager.      (line 1307)
-* BFD_RELOC_NDS32_LONGJUMP1:             howto manager.      (line 1297)
-* BFD_RELOC_NDS32_LONGJUMP2:             howto manager.      (line 1298)
-* BFD_RELOC_NDS32_LONGJUMP3:             howto manager.      (line 1299)
-* BFD_RELOC_NDS32_LONGJUMP4:             howto manager.      (line 1308)
-* BFD_RELOC_NDS32_LONGJUMP5:             howto manager.      (line 1309)
-* BFD_RELOC_NDS32_LONGJUMP6:             howto manager.      (line 1310)
-* BFD_RELOC_NDS32_LONGJUMP7:             howto manager.      (line 1311)
-* BFD_RELOC_NDS32_MINUEND:               howto manager.      (line 1357)
-* BFD_RELOC_NDS32_MULCALL_SUFF:          howto manager.      (line 1350)
-* BFD_RELOC_NDS32_PLTBLOCK:              howto manager.      (line 1354)
-* BFD_RELOC_NDS32_PLTREL_HI20:           howto manager.      (line 1313)
-* BFD_RELOC_NDS32_PLTREL_LO12:           howto manager.      (line 1314)
-* BFD_RELOC_NDS32_PLT_GOTREL_HI20:       howto manager.      (line 1315)
-* BFD_RELOC_NDS32_PLT_GOTREL_LO12:       howto manager.      (line 1316)
-* BFD_RELOC_NDS32_PLT_GOTREL_LO15:       howto manager.      (line 1330)
-* BFD_RELOC_NDS32_PLT_GOTREL_LO19:       howto manager.      (line 1331)
-* BFD_RELOC_NDS32_PLT_GOTREL_LO20:       howto manager.      (line 1329)
-* BFD_RELOC_NDS32_PLT_GOT_SUFF:          howto manager.      (line 1349)
-* BFD_RELOC_NDS32_PTR:                   howto manager.      (line 1351)
-* BFD_RELOC_NDS32_PTR_COUNT:             howto manager.      (line 1352)
-* BFD_RELOC_NDS32_PTR_RESOLVED:          howto manager.      (line 1353)
-* BFD_RELOC_NDS32_RELATIVE:              howto manager.      (line 1282)
-* BFD_RELOC_NDS32_RELAX_ENTRY:           howto manager.      (line 1346)
-* BFD_RELOC_NDS32_RELAX_REGION_BEGIN:    howto manager.      (line 1355)
-* BFD_RELOC_NDS32_RELAX_REGION_END:      howto manager.      (line 1356)
-* BFD_RELOC_NDS32_SDA12S2_DP:            howto manager.      (line 1318)
-* BFD_RELOC_NDS32_SDA12S2_SP:            howto manager.      (line 1319)
-* BFD_RELOC_NDS32_SDA15S0:               howto manager.      (line 1261)
-* BFD_RELOC_NDS32_SDA15S1:               howto manager.      (line 1258)
-* BFD_RELOC_NDS32_SDA15S2:               howto manager.      (line 1255)
-* BFD_RELOC_NDS32_SDA15S3:               howto manager.      (line 1252)
-* BFD_RELOC_NDS32_SDA16S3:               howto manager.      (line 1264)
-* BFD_RELOC_NDS32_SDA17S2:               howto manager.      (line 1267)
-* BFD_RELOC_NDS32_SDA18S1:               howto manager.      (line 1270)
-* BFD_RELOC_NDS32_SDA19S0:               howto manager.      (line 1273)
-* BFD_RELOC_NDS32_SDA_FP7U2_RELA:        howto manager.      (line 1344)
-* BFD_RELOC_NDS32_SUBTRAHEND:            howto manager.      (line 1358)
-* BFD_RELOC_NDS32_TLS_IE_HI20:           howto manager.      (line 1378)
-* BFD_RELOC_NDS32_TLS_IE_LO12S2:         howto manager.      (line 1379)
-* BFD_RELOC_NDS32_TLS_LE_15S0:           howto manager.      (line 1382)
-* BFD_RELOC_NDS32_TLS_LE_15S1:           howto manager.      (line 1383)
-* BFD_RELOC_NDS32_TLS_LE_15S2:           howto manager.      (line 1384)
-* BFD_RELOC_NDS32_TLS_LE_20:             howto manager.      (line 1381)
-* BFD_RELOC_NDS32_TLS_LE_ADD:            howto manager.      (line 1375)
-* BFD_RELOC_NDS32_TLS_LE_HI20:           howto manager.      (line 1373)
-* BFD_RELOC_NDS32_TLS_LE_LO12:           howto manager.      (line 1374)
-* BFD_RELOC_NDS32_TLS_LE_LS:             howto manager.      (line 1376)
-* BFD_RELOC_NDS32_TLS_TPOFF:             howto manager.      (line 1380)
-* BFD_RELOC_NDS32_TPOFF:                 howto manager.      (line 1372)
-* BFD_RELOC_NDS32_TRAN:                  howto manager.      (line 1368)
-* BFD_RELOC_NDS32_UPDATE_TA:             howto manager.      (line 1327)
-* BFD_RELOC_NDS32_WORD_9_PCREL:          howto manager.      (line 1225)
-* BFD_RELOC_NIOS2_ALIGN:                 howto manager.      (line 2459)
-* BFD_RELOC_NIOS2_CACHE_OPX:             howto manager.      (line 2449)
-* BFD_RELOC_NIOS2_CALL16:                howto manager.      (line 2461)
-* BFD_RELOC_NIOS2_CALL26:                howto manager.      (line 2447)
-* BFD_RELOC_NIOS2_CALL26_NOAT:           howto manager.      (line 2479)
-* BFD_RELOC_NIOS2_CALLR:                 howto manager.      (line 2458)
-* BFD_RELOC_NIOS2_CALL_HA:               howto manager.      (line 2483)
-* BFD_RELOC_NIOS2_CALL_LO:               howto manager.      (line 2482)
-* BFD_RELOC_NIOS2_CJMP:                  howto manager.      (line 2457)
-* BFD_RELOC_NIOS2_COPY:                  howto manager.      (line 2474)
-* BFD_RELOC_NIOS2_GLOB_DAT:              howto manager.      (line 2475)
-* BFD_RELOC_NIOS2_GOT16:                 howto manager.      (line 2460)
-* BFD_RELOC_NIOS2_GOTOFF:                howto manager.      (line 2478)
-* BFD_RELOC_NIOS2_GOTOFF_HA:             howto manager.      (line 2463)
-* BFD_RELOC_NIOS2_GOTOFF_LO:             howto manager.      (line 2462)
-* BFD_RELOC_NIOS2_GOT_HA:                howto manager.      (line 2481)
-* BFD_RELOC_NIOS2_GOT_LO:                howto manager.      (line 2480)
-* BFD_RELOC_NIOS2_GPREL:                 howto manager.      (line 2455)
-* BFD_RELOC_NIOS2_HI16:                  howto manager.      (line 2452)
-* BFD_RELOC_NIOS2_HIADJ16:               howto manager.      (line 2454)
-* BFD_RELOC_NIOS2_IMM5:                  howto manager.      (line 2448)
-* BFD_RELOC_NIOS2_IMM6:                  howto manager.      (line 2450)
-* BFD_RELOC_NIOS2_IMM8:                  howto manager.      (line 2451)
-* BFD_RELOC_NIOS2_JUMP_SLOT:             howto manager.      (line 2476)
-* BFD_RELOC_NIOS2_LO16:                  howto manager.      (line 2453)
-* BFD_RELOC_NIOS2_PCREL_HA:              howto manager.      (line 2465)
-* BFD_RELOC_NIOS2_PCREL_LO:              howto manager.      (line 2464)
-* BFD_RELOC_NIOS2_R2_F1I5_2:             howto manager.      (line 2493)
-* BFD_RELOC_NIOS2_R2_I10_1_PCREL:        howto manager.      (line 2485)
-* BFD_RELOC_NIOS2_R2_L5I4X1:             howto manager.      (line 2494)
-* BFD_RELOC_NIOS2_R2_S12:                howto manager.      (line 2484)
-* BFD_RELOC_NIOS2_R2_T1I7_1_PCREL:       howto manager.      (line 2486)
-* BFD_RELOC_NIOS2_R2_T1I7_2:             howto manager.      (line 2487)
-* BFD_RELOC_NIOS2_R2_T1X1I6:             howto manager.      (line 2495)
-* BFD_RELOC_NIOS2_R2_T1X1I6_2:           howto manager.      (line 2496)
-* BFD_RELOC_NIOS2_R2_T2I4:               howto manager.      (line 2488)
-* BFD_RELOC_NIOS2_R2_T2I4_1:             howto manager.      (line 2489)
-* BFD_RELOC_NIOS2_R2_T2I4_2:             howto manager.      (line 2490)
-* BFD_RELOC_NIOS2_R2_X1I7_2:             howto manager.      (line 2491)
-* BFD_RELOC_NIOS2_R2_X2L5:               howto manager.      (line 2492)
-* BFD_RELOC_NIOS2_RELATIVE:              howto manager.      (line 2477)
-* BFD_RELOC_NIOS2_S16:                   howto manager.      (line 2445)
-* BFD_RELOC_NIOS2_TLS_DTPMOD:            howto manager.      (line 2471)
-* BFD_RELOC_NIOS2_TLS_DTPREL:            howto manager.      (line 2472)
-* BFD_RELOC_NIOS2_TLS_GD16:              howto manager.      (line 2466)
-* BFD_RELOC_NIOS2_TLS_IE16:              howto manager.      (line 2469)
-* BFD_RELOC_NIOS2_TLS_LDM16:             howto manager.      (line 2467)
-* BFD_RELOC_NIOS2_TLS_LDO16:             howto manager.      (line 2468)
-* BFD_RELOC_NIOS2_TLS_LE16:              howto manager.      (line 2470)
-* BFD_RELOC_NIOS2_TLS_TPREL:             howto manager.      (line 2473)
-* BFD_RELOC_NIOS2_U16:                   howto manager.      (line 2446)
-* BFD_RELOC_NIOS2_UJMP:                  howto manager.      (line 2456)
+* BFD_RELOC_MSP430X_ABS16:               howto manager.      (line 2447)
+* BFD_RELOC_MSP430X_ABS20_ADR_DST:       howto manager.      (line 2444)
+* BFD_RELOC_MSP430X_ABS20_ADR_SRC:       howto manager.      (line 2443)
+* BFD_RELOC_MSP430X_ABS20_EXT_DST:       howto manager.      (line 2441)
+* BFD_RELOC_MSP430X_ABS20_EXT_ODST:      howto manager.      (line 2442)
+* BFD_RELOC_MSP430X_ABS20_EXT_SRC:       howto manager.      (line 2440)
+* BFD_RELOC_MSP430X_PCR16:               howto manager.      (line 2445)
+* BFD_RELOC_MSP430X_PCR20_CALL:          howto manager.      (line 2446)
+* BFD_RELOC_MSP430X_PCR20_EXT_DST:       howto manager.      (line 2438)
+* BFD_RELOC_MSP430X_PCR20_EXT_ODST:      howto manager.      (line 2439)
+* BFD_RELOC_MSP430X_PCR20_EXT_SRC:       howto manager.      (line 2437)
+* BFD_RELOC_MSP430_10_PCREL:             howto manager.      (line 2429)
+* BFD_RELOC_MSP430_16:                   howto manager.      (line 2431)
+* BFD_RELOC_MSP430_16_BYTE:              howto manager.      (line 2433)
+* BFD_RELOC_MSP430_16_PCREL:             howto manager.      (line 2430)
+* BFD_RELOC_MSP430_16_PCREL_BYTE:        howto manager.      (line 2432)
+* BFD_RELOC_MSP430_2X_PCREL:             howto manager.      (line 2434)
+* BFD_RELOC_MSP430_ABS8:                 howto manager.      (line 2436)
+* BFD_RELOC_MSP430_ABS_HI16:             howto manager.      (line 2448)
+* BFD_RELOC_MSP430_PREL31:               howto manager.      (line 2449)
+* BFD_RELOC_MSP430_RL_PCREL:             howto manager.      (line 2435)
+* BFD_RELOC_MSP430_SYM_DIFF:             howto manager.      (line 2450)
+* BFD_RELOC_MT_GNU_VTENTRY:              howto manager.      (line 2425)
+* BFD_RELOC_MT_GNU_VTINHERIT:            howto manager.      (line 2423)
+* BFD_RELOC_MT_HI16:                     howto manager.      (line 2419)
+* BFD_RELOC_MT_LO16:                     howto manager.      (line 2421)
+* BFD_RELOC_MT_PC16:                     howto manager.      (line 2417)
+* BFD_RELOC_MT_PCINSN8:                  howto manager.      (line 2427)
+* BFD_RELOC_NDS32_10IFCU_PCREL:          howto manager.      (line 1376)
+* BFD_RELOC_NDS32_10_UPCREL:             howto manager.      (line 1347)
+* BFD_RELOC_NDS32_15_FIXED:              howto manager.      (line 1308)
+* BFD_RELOC_NDS32_15_PCREL:              howto manager.      (line 1234)
+* BFD_RELOC_NDS32_17IFC_PCREL:           howto manager.      (line 1375)
+* BFD_RELOC_NDS32_17_FIXED:              howto manager.      (line 1309)
+* BFD_RELOC_NDS32_17_PCREL:              howto manager.      (line 1236)
+* BFD_RELOC_NDS32_20:                    howto manager.      (line 1226)
+* BFD_RELOC_NDS32_25_ABS:                howto manager.      (line 1371)
+* BFD_RELOC_NDS32_25_FIXED:              howto manager.      (line 1310)
+* BFD_RELOC_NDS32_25_PCREL:              howto manager.      (line 1238)
+* BFD_RELOC_NDS32_25_PLTREL:             howto manager.      (line 1284)
+* BFD_RELOC_NDS32_5:                     howto manager.      (line 1345)
+* BFD_RELOC_NDS32_9_FIXED:               howto manager.      (line 1307)
+* BFD_RELOC_NDS32_9_PCREL:               howto manager.      (line 1228)
+* BFD_RELOC_NDS32_9_PLTREL:              howto manager.      (line 1283)
+* BFD_RELOC_NDS32_COPY:                  howto manager.      (line 1285)
+* BFD_RELOC_NDS32_DATA:                  howto manager.      (line 1373)
+* BFD_RELOC_NDS32_DIFF16:                howto manager.      (line 1366)
+* BFD_RELOC_NDS32_DIFF32:                howto manager.      (line 1367)
+* BFD_RELOC_NDS32_DIFF8:                 howto manager.      (line 1365)
+* BFD_RELOC_NDS32_DIFF_ULEB128:          howto manager.      (line 1368)
+* BFD_RELOC_NDS32_DWARF2_LEB:            howto manager.      (line 1331)
+* BFD_RELOC_NDS32_DWARF2_OP1:            howto manager.      (line 1329)
+* BFD_RELOC_NDS32_DWARF2_OP2:            howto manager.      (line 1330)
+* BFD_RELOC_NDS32_EMPTY:                 howto manager.      (line 1369)
+* BFD_RELOC_NDS32_GLOB_DAT:              howto manager.      (line 1286)
+* BFD_RELOC_NDS32_GOT15S2:               howto manager.      (line 1342)
+* BFD_RELOC_NDS32_GOT17S2:               howto manager.      (line 1343)
+* BFD_RELOC_NDS32_GOT20:                 howto manager.      (line 1282)
+* BFD_RELOC_NDS32_GOTOFF:                howto manager.      (line 1289)
+* BFD_RELOC_NDS32_GOTOFF_HI20:           howto manager.      (line 1290)
+* BFD_RELOC_NDS32_GOTOFF_LO12:           howto manager.      (line 1291)
+* BFD_RELOC_NDS32_GOTOFF_LO15:           howto manager.      (line 1340)
+* BFD_RELOC_NDS32_GOTOFF_LO19:           howto manager.      (line 1341)
+* BFD_RELOC_NDS32_GOTOFF_SUFF:           howto manager.      (line 1354)
+* BFD_RELOC_NDS32_GOTPC20:               howto manager.      (line 1292)
+* BFD_RELOC_NDS32_GOTPC_HI20:            howto manager.      (line 1295)
+* BFD_RELOC_NDS32_GOTPC_LO12:            howto manager.      (line 1296)
+* BFD_RELOC_NDS32_GOTTPOFF:              howto manager.      (line 1383)
+* BFD_RELOC_NDS32_GOT_HI20:              howto manager.      (line 1293)
+* BFD_RELOC_NDS32_GOT_LO12:              howto manager.      (line 1294)
+* BFD_RELOC_NDS32_GOT_LO15:              howto manager.      (line 1338)
+* BFD_RELOC_NDS32_GOT_LO19:              howto manager.      (line 1339)
+* BFD_RELOC_NDS32_GOT_SUFF:              howto manager.      (line 1353)
+* BFD_RELOC_NDS32_HI20:                  howto manager.      (line 1240)
+* BFD_RELOC_NDS32_INSN16:                howto manager.      (line 1298)
+* BFD_RELOC_NDS32_JMP_SLOT:              howto manager.      (line 1287)
+* BFD_RELOC_NDS32_LABEL:                 howto manager.      (line 1299)
+* BFD_RELOC_NDS32_LO12S0:                howto manager.      (line 1252)
+* BFD_RELOC_NDS32_LO12S0_ORI:            howto manager.      (line 1255)
+* BFD_RELOC_NDS32_LO12S1:                howto manager.      (line 1249)
+* BFD_RELOC_NDS32_LO12S2:                howto manager.      (line 1246)
+* BFD_RELOC_NDS32_LO12S2_DP:             howto manager.      (line 1326)
+* BFD_RELOC_NDS32_LO12S2_SP:             howto manager.      (line 1327)
+* BFD_RELOC_NDS32_LO12S3:                howto manager.      (line 1243)
+* BFD_RELOC_NDS32_LOADSTORE:             howto manager.      (line 1306)
+* BFD_RELOC_NDS32_LONGCALL1:             howto manager.      (line 1300)
+* BFD_RELOC_NDS32_LONGCALL2:             howto manager.      (line 1301)
+* BFD_RELOC_NDS32_LONGCALL3:             howto manager.      (line 1302)
+* BFD_RELOC_NDS32_LONGCALL4:             howto manager.      (line 1311)
+* BFD_RELOC_NDS32_LONGCALL5:             howto manager.      (line 1312)
+* BFD_RELOC_NDS32_LONGCALL6:             howto manager.      (line 1313)
+* BFD_RELOC_NDS32_LONGJUMP1:             howto manager.      (line 1303)
+* BFD_RELOC_NDS32_LONGJUMP2:             howto manager.      (line 1304)
+* BFD_RELOC_NDS32_LONGJUMP3:             howto manager.      (line 1305)
+* BFD_RELOC_NDS32_LONGJUMP4:             howto manager.      (line 1314)
+* BFD_RELOC_NDS32_LONGJUMP5:             howto manager.      (line 1315)
+* BFD_RELOC_NDS32_LONGJUMP6:             howto manager.      (line 1316)
+* BFD_RELOC_NDS32_LONGJUMP7:             howto manager.      (line 1317)
+* BFD_RELOC_NDS32_MINUEND:               howto manager.      (line 1363)
+* BFD_RELOC_NDS32_MULCALL_SUFF:          howto manager.      (line 1356)
+* BFD_RELOC_NDS32_PLTBLOCK:              howto manager.      (line 1360)
+* BFD_RELOC_NDS32_PLTREL_HI20:           howto manager.      (line 1319)
+* BFD_RELOC_NDS32_PLTREL_LO12:           howto manager.      (line 1320)
+* BFD_RELOC_NDS32_PLT_GOTREL_HI20:       howto manager.      (line 1321)
+* BFD_RELOC_NDS32_PLT_GOTREL_LO12:       howto manager.      (line 1322)
+* BFD_RELOC_NDS32_PLT_GOTREL_LO15:       howto manager.      (line 1336)
+* BFD_RELOC_NDS32_PLT_GOTREL_LO19:       howto manager.      (line 1337)
+* BFD_RELOC_NDS32_PLT_GOTREL_LO20:       howto manager.      (line 1335)
+* BFD_RELOC_NDS32_PLT_GOT_SUFF:          howto manager.      (line 1355)
+* BFD_RELOC_NDS32_PTR:                   howto manager.      (line 1357)
+* BFD_RELOC_NDS32_PTR_COUNT:             howto manager.      (line 1358)
+* BFD_RELOC_NDS32_PTR_RESOLVED:          howto manager.      (line 1359)
+* BFD_RELOC_NDS32_RELATIVE:              howto manager.      (line 1288)
+* BFD_RELOC_NDS32_RELAX_ENTRY:           howto manager.      (line 1352)
+* BFD_RELOC_NDS32_RELAX_REGION_BEGIN:    howto manager.      (line 1361)
+* BFD_RELOC_NDS32_RELAX_REGION_END:      howto manager.      (line 1362)
+* BFD_RELOC_NDS32_SDA12S2_DP:            howto manager.      (line 1324)
+* BFD_RELOC_NDS32_SDA12S2_SP:            howto manager.      (line 1325)
+* BFD_RELOC_NDS32_SDA15S0:               howto manager.      (line 1267)
+* BFD_RELOC_NDS32_SDA15S1:               howto manager.      (line 1264)
+* BFD_RELOC_NDS32_SDA15S2:               howto manager.      (line 1261)
+* BFD_RELOC_NDS32_SDA15S3:               howto manager.      (line 1258)
+* BFD_RELOC_NDS32_SDA16S3:               howto manager.      (line 1270)
+* BFD_RELOC_NDS32_SDA17S2:               howto manager.      (line 1273)
+* BFD_RELOC_NDS32_SDA18S1:               howto manager.      (line 1276)
+* BFD_RELOC_NDS32_SDA19S0:               howto manager.      (line 1279)
+* BFD_RELOC_NDS32_SDA_FP7U2_RELA:        howto manager.      (line 1350)
+* BFD_RELOC_NDS32_SUBTRAHEND:            howto manager.      (line 1364)
+* BFD_RELOC_NDS32_TLS_IE_HI20:           howto manager.      (line 1384)
+* BFD_RELOC_NDS32_TLS_IE_LO12S2:         howto manager.      (line 1385)
+* BFD_RELOC_NDS32_TLS_LE_15S0:           howto manager.      (line 1388)
+* BFD_RELOC_NDS32_TLS_LE_15S1:           howto manager.      (line 1389)
+* BFD_RELOC_NDS32_TLS_LE_15S2:           howto manager.      (line 1390)
+* BFD_RELOC_NDS32_TLS_LE_20:             howto manager.      (line 1387)
+* BFD_RELOC_NDS32_TLS_LE_ADD:            howto manager.      (line 1381)
+* BFD_RELOC_NDS32_TLS_LE_HI20:           howto manager.      (line 1379)
+* BFD_RELOC_NDS32_TLS_LE_LO12:           howto manager.      (line 1380)
+* BFD_RELOC_NDS32_TLS_LE_LS:             howto manager.      (line 1382)
+* BFD_RELOC_NDS32_TLS_TPOFF:             howto manager.      (line 1386)
+* BFD_RELOC_NDS32_TPOFF:                 howto manager.      (line 1378)
+* BFD_RELOC_NDS32_TRAN:                  howto manager.      (line 1374)
+* BFD_RELOC_NDS32_UPDATE_TA:             howto manager.      (line 1333)
+* BFD_RELOC_NDS32_WORD_9_PCREL:          howto manager.      (line 1231)
+* BFD_RELOC_NIOS2_ALIGN:                 howto manager.      (line 2466)
+* BFD_RELOC_NIOS2_CACHE_OPX:             howto manager.      (line 2456)
+* BFD_RELOC_NIOS2_CALL16:                howto manager.      (line 2468)
+* BFD_RELOC_NIOS2_CALL26:                howto manager.      (line 2454)
+* BFD_RELOC_NIOS2_CALL26_NOAT:           howto manager.      (line 2486)
+* BFD_RELOC_NIOS2_CALLR:                 howto manager.      (line 2465)
+* BFD_RELOC_NIOS2_CALL_HA:               howto manager.      (line 2490)
+* BFD_RELOC_NIOS2_CALL_LO:               howto manager.      (line 2489)
+* BFD_RELOC_NIOS2_CJMP:                  howto manager.      (line 2464)
+* BFD_RELOC_NIOS2_COPY:                  howto manager.      (line 2481)
+* BFD_RELOC_NIOS2_GLOB_DAT:              howto manager.      (line 2482)
+* BFD_RELOC_NIOS2_GOT16:                 howto manager.      (line 2467)
+* BFD_RELOC_NIOS2_GOTOFF:                howto manager.      (line 2485)
+* BFD_RELOC_NIOS2_GOTOFF_HA:             howto manager.      (line 2470)
+* BFD_RELOC_NIOS2_GOTOFF_LO:             howto manager.      (line 2469)
+* BFD_RELOC_NIOS2_GOT_HA:                howto manager.      (line 2488)
+* BFD_RELOC_NIOS2_GOT_LO:                howto manager.      (line 2487)
+* BFD_RELOC_NIOS2_GPREL:                 howto manager.      (line 2462)
+* BFD_RELOC_NIOS2_HI16:                  howto manager.      (line 2459)
+* BFD_RELOC_NIOS2_HIADJ16:               howto manager.      (line 2461)
+* BFD_RELOC_NIOS2_IMM5:                  howto manager.      (line 2455)
+* BFD_RELOC_NIOS2_IMM6:                  howto manager.      (line 2457)
+* BFD_RELOC_NIOS2_IMM8:                  howto manager.      (line 2458)
+* BFD_RELOC_NIOS2_JUMP_SLOT:             howto manager.      (line 2483)
+* BFD_RELOC_NIOS2_LO16:                  howto manager.      (line 2460)
+* BFD_RELOC_NIOS2_PCREL_HA:              howto manager.      (line 2472)
+* BFD_RELOC_NIOS2_PCREL_LO:              howto manager.      (line 2471)
+* BFD_RELOC_NIOS2_R2_F1I5_2:             howto manager.      (line 2500)
+* BFD_RELOC_NIOS2_R2_I10_1_PCREL:        howto manager.      (line 2492)
+* BFD_RELOC_NIOS2_R2_L5I4X1:             howto manager.      (line 2501)
+* BFD_RELOC_NIOS2_R2_S12:                howto manager.      (line 2491)
+* BFD_RELOC_NIOS2_R2_T1I7_1_PCREL:       howto manager.      (line 2493)
+* BFD_RELOC_NIOS2_R2_T1I7_2:             howto manager.      (line 2494)
+* BFD_RELOC_NIOS2_R2_T1X1I6:             howto manager.      (line 2502)
+* BFD_RELOC_NIOS2_R2_T1X1I6_2:           howto manager.      (line 2503)
+* BFD_RELOC_NIOS2_R2_T2I4:               howto manager.      (line 2495)
+* BFD_RELOC_NIOS2_R2_T2I4_1:             howto manager.      (line 2496)
+* BFD_RELOC_NIOS2_R2_T2I4_2:             howto manager.      (line 2497)
+* BFD_RELOC_NIOS2_R2_X1I7_2:             howto manager.      (line 2498)
+* BFD_RELOC_NIOS2_R2_X2L5:               howto manager.      (line 2499)
+* BFD_RELOC_NIOS2_RELATIVE:              howto manager.      (line 2484)
+* BFD_RELOC_NIOS2_S16:                   howto manager.      (line 2452)
+* BFD_RELOC_NIOS2_TLS_DTPMOD:            howto manager.      (line 2478)
+* BFD_RELOC_NIOS2_TLS_DTPREL:            howto manager.      (line 2479)
+* BFD_RELOC_NIOS2_TLS_GD16:              howto manager.      (line 2473)
+* BFD_RELOC_NIOS2_TLS_IE16:              howto manager.      (line 2476)
+* BFD_RELOC_NIOS2_TLS_LDM16:             howto manager.      (line 2474)
+* BFD_RELOC_NIOS2_TLS_LDO16:             howto manager.      (line 2475)
+* BFD_RELOC_NIOS2_TLS_LE16:              howto manager.      (line 2477)
+* BFD_RELOC_NIOS2_TLS_TPREL:             howto manager.      (line 2480)
+* BFD_RELOC_NIOS2_U16:                   howto manager.      (line 2453)
+* BFD_RELOC_NIOS2_UJMP:                  howto manager.      (line 2463)
 * BFD_RELOC_NONE:                        howto manager.      (line  122)
-* BFD_RELOC_NS32K_DISP_16:               howto manager.      (line  585)
-* BFD_RELOC_NS32K_DISP_16_PCREL:         howto manager.      (line  588)
-* BFD_RELOC_NS32K_DISP_32:               howto manager.      (line  586)
-* BFD_RELOC_NS32K_DISP_32_PCREL:         howto manager.      (line  589)
-* BFD_RELOC_NS32K_DISP_8:                howto manager.      (line  584)
-* BFD_RELOC_NS32K_DISP_8_PCREL:          howto manager.      (line  587)
-* BFD_RELOC_NS32K_IMM_16:                howto manager.      (line  579)
-* BFD_RELOC_NS32K_IMM_16_PCREL:          howto manager.      (line  582)
-* BFD_RELOC_NS32K_IMM_32:                howto manager.      (line  580)
-* BFD_RELOC_NS32K_IMM_32_PCREL:          howto manager.      (line  583)
-* BFD_RELOC_NS32K_IMM_8:                 howto manager.      (line  578)
-* BFD_RELOC_NS32K_IMM_8_PCREL:           howto manager.      (line  581)
-* BFD_RELOC_OR1K_COPY:                   howto manager.      (line 2369)
-* BFD_RELOC_OR1K_GLOB_DAT:               howto manager.      (line 2370)
-* BFD_RELOC_OR1K_GOT16:                  howto manager.      (line 2365)
-* BFD_RELOC_OR1K_GOTOFF_HI16:            howto manager.      (line 2367)
-* BFD_RELOC_OR1K_GOTOFF_LO16:            howto manager.      (line 2368)
-* BFD_RELOC_OR1K_GOTPC_HI16:             howto manager.      (line 2363)
-* BFD_RELOC_OR1K_GOTPC_LO16:             howto manager.      (line 2364)
-* BFD_RELOC_OR1K_JMP_SLOT:               howto manager.      (line 2371)
-* BFD_RELOC_OR1K_PLT26:                  howto manager.      (line 2366)
-* BFD_RELOC_OR1K_RELATIVE:               howto manager.      (line 2372)
-* BFD_RELOC_OR1K_REL_26:                 howto manager.      (line 2362)
-* BFD_RELOC_OR1K_TLS_DTPMOD:             howto manager.      (line 2385)
-* BFD_RELOC_OR1K_TLS_DTPOFF:             howto manager.      (line 2384)
-* BFD_RELOC_OR1K_TLS_GD_HI16:            howto manager.      (line 2373)
-* BFD_RELOC_OR1K_TLS_GD_LO16:            howto manager.      (line 2374)
-* BFD_RELOC_OR1K_TLS_IE_HI16:            howto manager.      (line 2379)
-* BFD_RELOC_OR1K_TLS_IE_LO16:            howto manager.      (line 2380)
-* BFD_RELOC_OR1K_TLS_LDM_HI16:           howto manager.      (line 2375)
-* BFD_RELOC_OR1K_TLS_LDM_LO16:           howto manager.      (line 2376)
-* BFD_RELOC_OR1K_TLS_LDO_HI16:           howto manager.      (line 2377)
-* BFD_RELOC_OR1K_TLS_LDO_LO16:           howto manager.      (line 2378)
-* BFD_RELOC_OR1K_TLS_LE_HI16:            howto manager.      (line 2381)
-* BFD_RELOC_OR1K_TLS_LE_LO16:            howto manager.      (line 2382)
-* BFD_RELOC_OR1K_TLS_TPOFF:              howto manager.      (line 2383)
-* BFD_RELOC_PDP11_DISP_6_PCREL:          howto manager.      (line  592)
-* BFD_RELOC_PDP11_DISP_8_PCREL:          howto manager.      (line  591)
-* BFD_RELOC_PJ_CODE_DIR16:               howto manager.      (line  596)
-* BFD_RELOC_PJ_CODE_DIR32:               howto manager.      (line  597)
-* BFD_RELOC_PJ_CODE_HI16:                howto manager.      (line  594)
-* BFD_RELOC_PJ_CODE_LO16:                howto manager.      (line  595)
-* BFD_RELOC_PJ_CODE_REL16:               howto manager.      (line  598)
-* BFD_RELOC_PJ_CODE_REL32:               howto manager.      (line  599)
-* BFD_RELOC_PPC64_ADDR16_DS:             howto manager.      (line  662)
-* BFD_RELOC_PPC64_ADDR16_HIGH:           howto manager.      (line  673)
-* BFD_RELOC_PPC64_ADDR16_HIGHA:          howto manager.      (line  674)
-* BFD_RELOC_PPC64_ADDR16_LO_DS:          howto manager.      (line  663)
-* BFD_RELOC_PPC64_ADDR64_LOCAL:          howto manager.      (line  675)
-* BFD_RELOC_PPC64_DTPREL16_DS:           howto manager.      (line  714)
-* BFD_RELOC_PPC64_DTPREL16_HIGH:         howto manager.      (line  722)
-* BFD_RELOC_PPC64_DTPREL16_HIGHA:        howto manager.      (line  723)
-* BFD_RELOC_PPC64_DTPREL16_HIGHER:       howto manager.      (line  716)
-* BFD_RELOC_PPC64_DTPREL16_HIGHERA:      howto manager.      (line  717)
-* BFD_RELOC_PPC64_DTPREL16_HIGHEST:      howto manager.      (line  718)
-* BFD_RELOC_PPC64_DTPREL16_HIGHESTA:     howto manager.      (line  719)
-* BFD_RELOC_PPC64_DTPREL16_LO_DS:        howto manager.      (line  715)
-* BFD_RELOC_PPC64_ENTRY:                 howto manager.      (line  676)
-* BFD_RELOC_PPC64_GOT16_DS:              howto manager.      (line  664)
-* BFD_RELOC_PPC64_GOT16_LO_DS:           howto manager.      (line  665)
-* BFD_RELOC_PPC64_HIGHER:                howto manager.      (line  650)
-* BFD_RELOC_PPC64_HIGHER_S:              howto manager.      (line  651)
-* BFD_RELOC_PPC64_HIGHEST:               howto manager.      (line  652)
-* BFD_RELOC_PPC64_HIGHEST_S:             howto manager.      (line  653)
-* BFD_RELOC_PPC64_PLT16_LO_DS:           howto manager.      (line  666)
-* BFD_RELOC_PPC64_PLTGOT16:              howto manager.      (line  658)
-* BFD_RELOC_PPC64_PLTGOT16_DS:           howto manager.      (line  671)
-* BFD_RELOC_PPC64_PLTGOT16_HA:           howto manager.      (line  661)
-* BFD_RELOC_PPC64_PLTGOT16_HI:           howto manager.      (line  660)
-* BFD_RELOC_PPC64_PLTGOT16_LO:           howto manager.      (line  659)
-* BFD_RELOC_PPC64_PLTGOT16_LO_DS:        howto manager.      (line  672)
-* BFD_RELOC_PPC64_SECTOFF_DS:            howto manager.      (line  667)
-* BFD_RELOC_PPC64_SECTOFF_LO_DS:         howto manager.      (line  668)
-* BFD_RELOC_PPC64_TOC:                   howto manager.      (line  657)
-* BFD_RELOC_PPC64_TOC16_DS:              howto manager.      (line  669)
-* BFD_RELOC_PPC64_TOC16_HA:              howto manager.      (line  656)
-* BFD_RELOC_PPC64_TOC16_HI:              howto manager.      (line  655)
-* BFD_RELOC_PPC64_TOC16_LO:              howto manager.      (line  654)
-* BFD_RELOC_PPC64_TOC16_LO_DS:           howto manager.      (line  670)
-* BFD_RELOC_PPC64_TPREL16_DS:            howto manager.      (line  708)
-* BFD_RELOC_PPC64_TPREL16_HIGH:          howto manager.      (line  720)
-* BFD_RELOC_PPC64_TPREL16_HIGHA:         howto manager.      (line  721)
-* BFD_RELOC_PPC64_TPREL16_HIGHER:        howto manager.      (line  710)
-* BFD_RELOC_PPC64_TPREL16_HIGHERA:       howto manager.      (line  711)
-* BFD_RELOC_PPC64_TPREL16_HIGHEST:       howto manager.      (line  712)
-* BFD_RELOC_PPC64_TPREL16_HIGHESTA:      howto manager.      (line  713)
-* BFD_RELOC_PPC64_TPREL16_LO_DS:         howto manager.      (line  709)
-* BFD_RELOC_PPC_16DX_HA:                 howto manager.      (line  648)
-* BFD_RELOC_PPC_B16:                     howto manager.      (line  604)
-* BFD_RELOC_PPC_B16_BRNTAKEN:            howto manager.      (line  606)
-* BFD_RELOC_PPC_B16_BRTAKEN:             howto manager.      (line  605)
-* BFD_RELOC_PPC_B26:                     howto manager.      (line  601)
-* BFD_RELOC_PPC_BA16:                    howto manager.      (line  607)
-* BFD_RELOC_PPC_BA16_BRNTAKEN:           howto manager.      (line  609)
-* BFD_RELOC_PPC_BA16_BRTAKEN:            howto manager.      (line  608)
-* BFD_RELOC_PPC_BA26:                    howto manager.      (line  602)
-* BFD_RELOC_PPC_COPY:                    howto manager.      (line  610)
-* BFD_RELOC_PPC_DTPMOD:                  howto manager.      (line  681)
-* BFD_RELOC_PPC_DTPREL:                  howto manager.      (line  691)
-* BFD_RELOC_PPC_DTPREL16:                howto manager.      (line  687)
-* BFD_RELOC_PPC_DTPREL16_HA:             howto manager.      (line  690)
-* BFD_RELOC_PPC_DTPREL16_HI:             howto manager.      (line  689)
-* BFD_RELOC_PPC_DTPREL16_LO:             howto manager.      (line  688)
-* BFD_RELOC_PPC_EMB_BIT_FLD:             howto manager.      (line  629)
-* BFD_RELOC_PPC_EMB_MRKREF:              howto manager.      (line  624)
-* BFD_RELOC_PPC_EMB_NADDR16:             howto manager.      (line  616)
-* BFD_RELOC_PPC_EMB_NADDR16_HA:          howto manager.      (line  619)
-* BFD_RELOC_PPC_EMB_NADDR16_HI:          howto manager.      (line  618)
-* BFD_RELOC_PPC_EMB_NADDR16_LO:          howto manager.      (line  617)
-* BFD_RELOC_PPC_EMB_NADDR32:             howto manager.      (line  615)
-* BFD_RELOC_PPC_EMB_RELSDA:              howto manager.      (line  630)
-* BFD_RELOC_PPC_EMB_RELSEC16:            howto manager.      (line  625)
-* BFD_RELOC_PPC_EMB_RELST_HA:            howto manager.      (line  628)
-* BFD_RELOC_PPC_EMB_RELST_HI:            howto manager.      (line  627)
-* BFD_RELOC_PPC_EMB_RELST_LO:            howto manager.      (line  626)
-* BFD_RELOC_PPC_EMB_SDA21:               howto manager.      (line  623)
-* BFD_RELOC_PPC_EMB_SDA2I16:             howto manager.      (line  621)
-* BFD_RELOC_PPC_EMB_SDA2REL:             howto manager.      (line  622)
-* BFD_RELOC_PPC_EMB_SDAI16:              howto manager.      (line  620)
-* BFD_RELOC_PPC_GLOB_DAT:                howto manager.      (line  611)
-* BFD_RELOC_PPC_GOT_DTPREL16:            howto manager.      (line  704)
-* BFD_RELOC_PPC_GOT_DTPREL16_HA:         howto manager.      (line  707)
-* BFD_RELOC_PPC_GOT_DTPREL16_HI:         howto manager.      (line  706)
-* BFD_RELOC_PPC_GOT_DTPREL16_LO:         howto manager.      (line  705)
-* BFD_RELOC_PPC_GOT_TLSGD16:             howto manager.      (line  692)
-* BFD_RELOC_PPC_GOT_TLSGD16_HA:          howto manager.      (line  695)
-* BFD_RELOC_PPC_GOT_TLSGD16_HI:          howto manager.      (line  694)
-* BFD_RELOC_PPC_GOT_TLSGD16_LO:          howto manager.      (line  693)
-* BFD_RELOC_PPC_GOT_TLSLD16:             howto manager.      (line  696)
-* BFD_RELOC_PPC_GOT_TLSLD16_HA:          howto manager.      (line  699)
-* BFD_RELOC_PPC_GOT_TLSLD16_HI:          howto manager.      (line  698)
-* BFD_RELOC_PPC_GOT_TLSLD16_LO:          howto manager.      (line  697)
-* BFD_RELOC_PPC_GOT_TPREL16:             howto manager.      (line  700)
-* BFD_RELOC_PPC_GOT_TPREL16_HA:          howto manager.      (line  703)
-* BFD_RELOC_PPC_GOT_TPREL16_HI:          howto manager.      (line  702)
-* BFD_RELOC_PPC_GOT_TPREL16_LO:          howto manager.      (line  701)
-* BFD_RELOC_PPC_JMP_SLOT:                howto manager.      (line  612)
-* BFD_RELOC_PPC_LOCAL24PC:               howto manager.      (line  614)
-* BFD_RELOC_PPC_REL16DX_HA:              howto manager.      (line  649)
-* BFD_RELOC_PPC_RELATIVE:                howto manager.      (line  613)
-* BFD_RELOC_PPC_TLS:                     howto manager.      (line  678)
-* BFD_RELOC_PPC_TLSGD:                   howto manager.      (line  679)
-* BFD_RELOC_PPC_TLSLD:                   howto manager.      (line  680)
-* BFD_RELOC_PPC_TOC16:                   howto manager.      (line  603)
-* BFD_RELOC_PPC_TPREL:                   howto manager.      (line  686)
-* BFD_RELOC_PPC_TPREL16:                 howto manager.      (line  682)
-* BFD_RELOC_PPC_TPREL16_HA:              howto manager.      (line  685)
-* BFD_RELOC_PPC_TPREL16_HI:              howto manager.      (line  684)
-* BFD_RELOC_PPC_TPREL16_LO:              howto manager.      (line  683)
-* BFD_RELOC_PPC_VLE_HA16A:               howto manager.      (line  638)
-* BFD_RELOC_PPC_VLE_HA16D:               howto manager.      (line  639)
-* BFD_RELOC_PPC_VLE_HI16A:               howto manager.      (line  636)
-* BFD_RELOC_PPC_VLE_HI16D:               howto manager.      (line  637)
-* BFD_RELOC_PPC_VLE_LO16A:               howto manager.      (line  634)
-* BFD_RELOC_PPC_VLE_LO16D:               howto manager.      (line  635)
-* BFD_RELOC_PPC_VLE_REL15:               howto manager.      (line  632)
-* BFD_RELOC_PPC_VLE_REL24:               howto manager.      (line  633)
-* BFD_RELOC_PPC_VLE_REL8:                howto manager.      (line  631)
-* BFD_RELOC_PPC_VLE_SDA21:               howto manager.      (line  640)
-* BFD_RELOC_PPC_VLE_SDA21_LO:            howto manager.      (line  641)
-* BFD_RELOC_PPC_VLE_SDAREL_HA16A:        howto manager.      (line  646)
-* BFD_RELOC_PPC_VLE_SDAREL_HA16D:        howto manager.      (line  647)
-* BFD_RELOC_PPC_VLE_SDAREL_HI16A:        howto manager.      (line  644)
-* BFD_RELOC_PPC_VLE_SDAREL_HI16D:        howto manager.      (line  645)
-* BFD_RELOC_PPC_VLE_SDAREL_LO16A:        howto manager.      (line  642)
-* BFD_RELOC_PPC_VLE_SDAREL_LO16D:        howto manager.      (line  643)
-* BFD_RELOC_PRU_16_PMEM:                 howto manager.      (line 2511)
-* BFD_RELOC_PRU_32_PMEM:                 howto manager.      (line 2510)
-* BFD_RELOC_PRU_GNU_DIFF16:              howto manager.      (line 2515)
-* BFD_RELOC_PRU_GNU_DIFF16_PMEM:         howto manager.      (line 2517)
-* BFD_RELOC_PRU_GNU_DIFF32:              howto manager.      (line 2516)
-* BFD_RELOC_PRU_GNU_DIFF32_PMEM:         howto manager.      (line 2518)
-* BFD_RELOC_PRU_GNU_DIFF8:               howto manager.      (line 2514)
-* BFD_RELOC_PRU_LDI32:                   howto manager.      (line 2502)
-* BFD_RELOC_PRU_S10_PCREL:               howto manager.      (line 2506)
-* BFD_RELOC_PRU_U16:                     howto manager.      (line 2498)
-* BFD_RELOC_PRU_U16_PMEMIMM:             howto manager.      (line 2500)
-* BFD_RELOC_PRU_U8_PCREL:                howto manager.      (line 2508)
-* BFD_RELOC_RELC:                        howto manager.      (line 2399)
-* BFD_RELOC_RISCV_ADD16:                 howto manager.      (line 1782)
-* BFD_RELOC_RISCV_ADD32:                 howto manager.      (line 1783)
-* BFD_RELOC_RISCV_ADD64:                 howto manager.      (line 1784)
-* BFD_RELOC_RISCV_ADD8:                  howto manager.      (line 1781)
-* BFD_RELOC_RISCV_ALIGN:                 howto manager.      (line 1799)
-* BFD_RELOC_RISCV_CALL:                  howto manager.      (line 1779)
-* BFD_RELOC_RISCV_CALL_PLT:              howto manager.      (line 1780)
-* BFD_RELOC_RISCV_CFA:                   howto manager.      (line 1808)
-* BFD_RELOC_RISCV_GOT_HI20:              howto manager.      (line 1789)
-* BFD_RELOC_RISCV_GPREL12_I:             howto manager.      (line 1773)
-* BFD_RELOC_RISCV_GPREL12_S:             howto manager.      (line 1774)
-* BFD_RELOC_RISCV_GPREL_I:               howto manager.      (line 1803)
-* BFD_RELOC_RISCV_GPREL_S:               howto manager.      (line 1804)
-* BFD_RELOC_RISCV_HI20:                  howto manager.      (line 1767)
-* BFD_RELOC_RISCV_JMP:                   howto manager.      (line 1792)
-* BFD_RELOC_RISCV_LO12_I:                howto manager.      (line 1771)
-* BFD_RELOC_RISCV_LO12_S:                howto manager.      (line 1772)
-* BFD_RELOC_RISCV_PCREL_HI20:            howto manager.      (line 1768)
-* BFD_RELOC_RISCV_PCREL_LO12_I:          howto manager.      (line 1769)
-* BFD_RELOC_RISCV_PCREL_LO12_S:          howto manager.      (line 1770)
-* BFD_RELOC_RISCV_RELAX:                 howto manager.      (line 1807)
-* BFD_RELOC_RISCV_RVC_BRANCH:            howto manager.      (line 1800)
-* BFD_RELOC_RISCV_RVC_JUMP:              howto manager.      (line 1801)
-* BFD_RELOC_RISCV_RVC_LUI:               howto manager.      (line 1802)
-* BFD_RELOC_RISCV_SET16:                 howto manager.      (line 1812)
-* BFD_RELOC_RISCV_SET32:                 howto manager.      (line 1813)
-* BFD_RELOC_RISCV_SET6:                  howto manager.      (line 1810)
-* BFD_RELOC_RISCV_SET8:                  howto manager.      (line 1811)
-* BFD_RELOC_RISCV_SUB16:                 howto manager.      (line 1786)
-* BFD_RELOC_RISCV_SUB32:                 howto manager.      (line 1787)
-* BFD_RELOC_RISCV_SUB6:                  howto manager.      (line 1809)
-* BFD_RELOC_RISCV_SUB64:                 howto manager.      (line 1788)
-* BFD_RELOC_RISCV_SUB8:                  howto manager.      (line 1785)
-* BFD_RELOC_RISCV_TLS_DTPMOD32:          howto manager.      (line 1793)
-* BFD_RELOC_RISCV_TLS_DTPMOD64:          howto manager.      (line 1795)
-* BFD_RELOC_RISCV_TLS_DTPREL32:          howto manager.      (line 1794)
-* BFD_RELOC_RISCV_TLS_DTPREL64:          howto manager.      (line 1796)
-* BFD_RELOC_RISCV_TLS_GD_HI20:           howto manager.      (line 1791)
-* BFD_RELOC_RISCV_TLS_GOT_HI20:          howto manager.      (line 1790)
-* BFD_RELOC_RISCV_TLS_TPREL32:           howto manager.      (line 1797)
-* BFD_RELOC_RISCV_TLS_TPREL64:           howto manager.      (line 1798)
-* BFD_RELOC_RISCV_TPREL_ADD:             howto manager.      (line 1778)
-* BFD_RELOC_RISCV_TPREL_HI20:            howto manager.      (line 1775)
-* BFD_RELOC_RISCV_TPREL_I:               howto manager.      (line 1805)
-* BFD_RELOC_RISCV_TPREL_LO12_I:          howto manager.      (line 1776)
-* BFD_RELOC_RISCV_TPREL_LO12_S:          howto manager.      (line 1777)
-* BFD_RELOC_RISCV_TPREL_S:               howto manager.      (line 1806)
-* BFD_RELOC_RL78_16U:                    howto manager.      (line 1823)
-* BFD_RELOC_RL78_16_OP:                  howto manager.      (line 1819)
-* BFD_RELOC_RL78_24U:                    howto manager.      (line 1824)
-* BFD_RELOC_RL78_24_OP:                  howto manager.      (line 1820)
-* BFD_RELOC_RL78_32_OP:                  howto manager.      (line 1821)
-* BFD_RELOC_RL78_8U:                     howto manager.      (line 1822)
-* BFD_RELOC_RL78_ABS16:                  howto manager.      (line 1836)
-* BFD_RELOC_RL78_ABS16U:                 howto manager.      (line 1840)
-* BFD_RELOC_RL78_ABS16UL:                howto manager.      (line 1842)
-* BFD_RELOC_RL78_ABS16UW:                howto manager.      (line 1841)
-* BFD_RELOC_RL78_ABS16_REV:              howto manager.      (line 1837)
-* BFD_RELOC_RL78_ABS32:                  howto manager.      (line 1838)
-* BFD_RELOC_RL78_ABS32_REV:              howto manager.      (line 1839)
-* BFD_RELOC_RL78_ABS8:                   howto manager.      (line 1835)
-* BFD_RELOC_RL78_CODE:                   howto manager.      (line 1847)
-* BFD_RELOC_RL78_DIFF:                   howto manager.      (line 1826)
-* BFD_RELOC_RL78_DIR3U_PCREL:            howto manager.      (line 1825)
-* BFD_RELOC_RL78_GPRELB:                 howto manager.      (line 1827)
-* BFD_RELOC_RL78_GPRELL:                 howto manager.      (line 1829)
-* BFD_RELOC_RL78_GPRELW:                 howto manager.      (line 1828)
-* BFD_RELOC_RL78_HI16:                   howto manager.      (line 1844)
-* BFD_RELOC_RL78_HI8:                    howto manager.      (line 1845)
-* BFD_RELOC_RL78_LO16:                   howto manager.      (line 1846)
-* BFD_RELOC_RL78_NEG16:                  howto manager.      (line 1816)
-* BFD_RELOC_RL78_NEG24:                  howto manager.      (line 1817)
-* BFD_RELOC_RL78_NEG32:                  howto manager.      (line 1818)
-* BFD_RELOC_RL78_NEG8:                   howto manager.      (line 1815)
-* BFD_RELOC_RL78_OP_AND:                 howto manager.      (line 1833)
-* BFD_RELOC_RL78_OP_NEG:                 howto manager.      (line 1832)
-* BFD_RELOC_RL78_OP_SHRA:                howto manager.      (line 1834)
-* BFD_RELOC_RL78_OP_SUBTRACT:            howto manager.      (line 1831)
-* BFD_RELOC_RL78_RELAX:                  howto manager.      (line 1843)
-* BFD_RELOC_RL78_SADDR:                  howto manager.      (line 1848)
-* BFD_RELOC_RL78_SYM:                    howto manager.      (line 1830)
+* BFD_RELOC_NS32K_DISP_16:               howto manager.      (line  590)
+* BFD_RELOC_NS32K_DISP_16_PCREL:         howto manager.      (line  593)
+* BFD_RELOC_NS32K_DISP_32:               howto manager.      (line  591)
+* BFD_RELOC_NS32K_DISP_32_PCREL:         howto manager.      (line  594)
+* BFD_RELOC_NS32K_DISP_8:                howto manager.      (line  589)
+* BFD_RELOC_NS32K_DISP_8_PCREL:          howto manager.      (line  592)
+* BFD_RELOC_NS32K_IMM_16:                howto manager.      (line  584)
+* BFD_RELOC_NS32K_IMM_16_PCREL:          howto manager.      (line  587)
+* BFD_RELOC_NS32K_IMM_32:                howto manager.      (line  585)
+* BFD_RELOC_NS32K_IMM_32_PCREL:          howto manager.      (line  588)
+* BFD_RELOC_NS32K_IMM_8:                 howto manager.      (line  583)
+* BFD_RELOC_NS32K_IMM_8_PCREL:           howto manager.      (line  586)
+* bfd_reloc_offset_in_range:             typedef arelent.    (line  370)
+* BFD_RELOC_OR1K_COPY:                   howto manager.      (line 2376)
+* BFD_RELOC_OR1K_GLOB_DAT:               howto manager.      (line 2377)
+* BFD_RELOC_OR1K_GOT16:                  howto manager.      (line 2372)
+* BFD_RELOC_OR1K_GOTOFF_HI16:            howto manager.      (line 2374)
+* BFD_RELOC_OR1K_GOTOFF_LO16:            howto manager.      (line 2375)
+* BFD_RELOC_OR1K_GOTPC_HI16:             howto manager.      (line 2370)
+* BFD_RELOC_OR1K_GOTPC_LO16:             howto manager.      (line 2371)
+* BFD_RELOC_OR1K_JMP_SLOT:               howto manager.      (line 2378)
+* BFD_RELOC_OR1K_PLT26:                  howto manager.      (line 2373)
+* BFD_RELOC_OR1K_RELATIVE:               howto manager.      (line 2379)
+* BFD_RELOC_OR1K_REL_26:                 howto manager.      (line 2369)
+* BFD_RELOC_OR1K_TLS_DTPMOD:             howto manager.      (line 2392)
+* BFD_RELOC_OR1K_TLS_DTPOFF:             howto manager.      (line 2391)
+* BFD_RELOC_OR1K_TLS_GD_HI16:            howto manager.      (line 2380)
+* BFD_RELOC_OR1K_TLS_GD_LO16:            howto manager.      (line 2381)
+* BFD_RELOC_OR1K_TLS_IE_HI16:            howto manager.      (line 2386)
+* BFD_RELOC_OR1K_TLS_IE_LO16:            howto manager.      (line 2387)
+* BFD_RELOC_OR1K_TLS_LDM_HI16:           howto manager.      (line 2382)
+* BFD_RELOC_OR1K_TLS_LDM_LO16:           howto manager.      (line 2383)
+* BFD_RELOC_OR1K_TLS_LDO_HI16:           howto manager.      (line 2384)
+* BFD_RELOC_OR1K_TLS_LDO_LO16:           howto manager.      (line 2385)
+* BFD_RELOC_OR1K_TLS_LE_HI16:            howto manager.      (line 2388)
+* BFD_RELOC_OR1K_TLS_LE_LO16:            howto manager.      (line 2389)
+* BFD_RELOC_OR1K_TLS_TPOFF:              howto manager.      (line 2390)
+* BFD_RELOC_PDP11_DISP_6_PCREL:          howto manager.      (line  597)
+* BFD_RELOC_PDP11_DISP_8_PCREL:          howto manager.      (line  596)
+* BFD_RELOC_PJ_CODE_DIR16:               howto manager.      (line  601)
+* BFD_RELOC_PJ_CODE_DIR32:               howto manager.      (line  602)
+* BFD_RELOC_PJ_CODE_HI16:                howto manager.      (line  599)
+* BFD_RELOC_PJ_CODE_LO16:                howto manager.      (line  600)
+* BFD_RELOC_PJ_CODE_REL16:               howto manager.      (line  603)
+* BFD_RELOC_PJ_CODE_REL32:               howto manager.      (line  604)
+* BFD_RELOC_PPC64_ADDR16_DS:             howto manager.      (line  667)
+* BFD_RELOC_PPC64_ADDR16_HIGH:           howto manager.      (line  678)
+* BFD_RELOC_PPC64_ADDR16_HIGHA:          howto manager.      (line  679)
+* BFD_RELOC_PPC64_ADDR16_LO_DS:          howto manager.      (line  668)
+* BFD_RELOC_PPC64_ADDR64_LOCAL:          howto manager.      (line  680)
+* BFD_RELOC_PPC64_DTPREL16_DS:           howto manager.      (line  719)
+* BFD_RELOC_PPC64_DTPREL16_HIGH:         howto manager.      (line  727)
+* BFD_RELOC_PPC64_DTPREL16_HIGHA:        howto manager.      (line  728)
+* BFD_RELOC_PPC64_DTPREL16_HIGHER:       howto manager.      (line  721)
+* BFD_RELOC_PPC64_DTPREL16_HIGHERA:      howto manager.      (line  722)
+* BFD_RELOC_PPC64_DTPREL16_HIGHEST:      howto manager.      (line  723)
+* BFD_RELOC_PPC64_DTPREL16_HIGHESTA:     howto manager.      (line  724)
+* BFD_RELOC_PPC64_DTPREL16_LO_DS:        howto manager.      (line  720)
+* BFD_RELOC_PPC64_ENTRY:                 howto manager.      (line  681)
+* BFD_RELOC_PPC64_GOT16_DS:              howto manager.      (line  669)
+* BFD_RELOC_PPC64_GOT16_LO_DS:           howto manager.      (line  670)
+* BFD_RELOC_PPC64_HIGHER:                howto manager.      (line  655)
+* BFD_RELOC_PPC64_HIGHER_S:              howto manager.      (line  656)
+* BFD_RELOC_PPC64_HIGHEST:               howto manager.      (line  657)
+* BFD_RELOC_PPC64_HIGHEST_S:             howto manager.      (line  658)
+* BFD_RELOC_PPC64_PLT16_LO_DS:           howto manager.      (line  671)
+* BFD_RELOC_PPC64_PLTGOT16:              howto manager.      (line  663)
+* BFD_RELOC_PPC64_PLTGOT16_DS:           howto manager.      (line  676)
+* BFD_RELOC_PPC64_PLTGOT16_HA:           howto manager.      (line  666)
+* BFD_RELOC_PPC64_PLTGOT16_HI:           howto manager.      (line  665)
+* BFD_RELOC_PPC64_PLTGOT16_LO:           howto manager.      (line  664)
+* BFD_RELOC_PPC64_PLTGOT16_LO_DS:        howto manager.      (line  677)
+* BFD_RELOC_PPC64_SECTOFF_DS:            howto manager.      (line  672)
+* BFD_RELOC_PPC64_SECTOFF_LO_DS:         howto manager.      (line  673)
+* BFD_RELOC_PPC64_TOC:                   howto manager.      (line  662)
+* BFD_RELOC_PPC64_TOC16_DS:              howto manager.      (line  674)
+* BFD_RELOC_PPC64_TOC16_HA:              howto manager.      (line  661)
+* BFD_RELOC_PPC64_TOC16_HI:              howto manager.      (line  660)
+* BFD_RELOC_PPC64_TOC16_LO:              howto manager.      (line  659)
+* BFD_RELOC_PPC64_TOC16_LO_DS:           howto manager.      (line  675)
+* BFD_RELOC_PPC64_TPREL16_DS:            howto manager.      (line  713)
+* BFD_RELOC_PPC64_TPREL16_HIGH:          howto manager.      (line  725)
+* BFD_RELOC_PPC64_TPREL16_HIGHA:         howto manager.      (line  726)
+* BFD_RELOC_PPC64_TPREL16_HIGHER:        howto manager.      (line  715)
+* BFD_RELOC_PPC64_TPREL16_HIGHERA:       howto manager.      (line  716)
+* BFD_RELOC_PPC64_TPREL16_HIGHEST:       howto manager.      (line  717)
+* BFD_RELOC_PPC64_TPREL16_HIGHESTA:      howto manager.      (line  718)
+* BFD_RELOC_PPC64_TPREL16_LO_DS:         howto manager.      (line  714)
+* BFD_RELOC_PPC_16DX_HA:                 howto manager.      (line  653)
+* BFD_RELOC_PPC_B16:                     howto manager.      (line  609)
+* BFD_RELOC_PPC_B16_BRNTAKEN:            howto manager.      (line  611)
+* BFD_RELOC_PPC_B16_BRTAKEN:             howto manager.      (line  610)
+* BFD_RELOC_PPC_B26:                     howto manager.      (line  606)
+* BFD_RELOC_PPC_BA16:                    howto manager.      (line  612)
+* BFD_RELOC_PPC_BA16_BRNTAKEN:           howto manager.      (line  614)
+* BFD_RELOC_PPC_BA16_BRTAKEN:            howto manager.      (line  613)
+* BFD_RELOC_PPC_BA26:                    howto manager.      (line  607)
+* BFD_RELOC_PPC_COPY:                    howto manager.      (line  615)
+* BFD_RELOC_PPC_DTPMOD:                  howto manager.      (line  686)
+* BFD_RELOC_PPC_DTPREL:                  howto manager.      (line  696)
+* BFD_RELOC_PPC_DTPREL16:                howto manager.      (line  692)
+* BFD_RELOC_PPC_DTPREL16_HA:             howto manager.      (line  695)
+* BFD_RELOC_PPC_DTPREL16_HI:             howto manager.      (line  694)
+* BFD_RELOC_PPC_DTPREL16_LO:             howto manager.      (line  693)
+* BFD_RELOC_PPC_EMB_BIT_FLD:             howto manager.      (line  634)
+* BFD_RELOC_PPC_EMB_MRKREF:              howto manager.      (line  629)
+* BFD_RELOC_PPC_EMB_NADDR16:             howto manager.      (line  621)
+* BFD_RELOC_PPC_EMB_NADDR16_HA:          howto manager.      (line  624)
+* BFD_RELOC_PPC_EMB_NADDR16_HI:          howto manager.      (line  623)
+* BFD_RELOC_PPC_EMB_NADDR16_LO:          howto manager.      (line  622)
+* BFD_RELOC_PPC_EMB_NADDR32:             howto manager.      (line  620)
+* BFD_RELOC_PPC_EMB_RELSDA:              howto manager.      (line  635)
+* BFD_RELOC_PPC_EMB_RELSEC16:            howto manager.      (line  630)
+* BFD_RELOC_PPC_EMB_RELST_HA:            howto manager.      (line  633)
+* BFD_RELOC_PPC_EMB_RELST_HI:            howto manager.      (line  632)
+* BFD_RELOC_PPC_EMB_RELST_LO:            howto manager.      (line  631)
+* BFD_RELOC_PPC_EMB_SDA21:               howto manager.      (line  628)
+* BFD_RELOC_PPC_EMB_SDA2I16:             howto manager.      (line  626)
+* BFD_RELOC_PPC_EMB_SDA2REL:             howto manager.      (line  627)
+* BFD_RELOC_PPC_EMB_SDAI16:              howto manager.      (line  625)
+* BFD_RELOC_PPC_GLOB_DAT:                howto manager.      (line  616)
+* BFD_RELOC_PPC_GOT_DTPREL16:            howto manager.      (line  709)
+* BFD_RELOC_PPC_GOT_DTPREL16_HA:         howto manager.      (line  712)
+* BFD_RELOC_PPC_GOT_DTPREL16_HI:         howto manager.      (line  711)
+* BFD_RELOC_PPC_GOT_DTPREL16_LO:         howto manager.      (line  710)
+* BFD_RELOC_PPC_GOT_TLSGD16:             howto manager.      (line  697)
+* BFD_RELOC_PPC_GOT_TLSGD16_HA:          howto manager.      (line  700)
+* BFD_RELOC_PPC_GOT_TLSGD16_HI:          howto manager.      (line  699)
+* BFD_RELOC_PPC_GOT_TLSGD16_LO:          howto manager.      (line  698)
+* BFD_RELOC_PPC_GOT_TLSLD16:             howto manager.      (line  701)
+* BFD_RELOC_PPC_GOT_TLSLD16_HA:          howto manager.      (line  704)
+* BFD_RELOC_PPC_GOT_TLSLD16_HI:          howto manager.      (line  703)
+* BFD_RELOC_PPC_GOT_TLSLD16_LO:          howto manager.      (line  702)
+* BFD_RELOC_PPC_GOT_TPREL16:             howto manager.      (line  705)
+* BFD_RELOC_PPC_GOT_TPREL16_HA:          howto manager.      (line  708)
+* BFD_RELOC_PPC_GOT_TPREL16_HI:          howto manager.      (line  707)
+* BFD_RELOC_PPC_GOT_TPREL16_LO:          howto manager.      (line  706)
+* BFD_RELOC_PPC_JMP_SLOT:                howto manager.      (line  617)
+* BFD_RELOC_PPC_LOCAL24PC:               howto manager.      (line  619)
+* BFD_RELOC_PPC_REL16DX_HA:              howto manager.      (line  654)
+* BFD_RELOC_PPC_RELATIVE:                howto manager.      (line  618)
+* BFD_RELOC_PPC_TLS:                     howto manager.      (line  683)
+* BFD_RELOC_PPC_TLSGD:                   howto manager.      (line  684)
+* BFD_RELOC_PPC_TLSLD:                   howto manager.      (line  685)
+* BFD_RELOC_PPC_TOC16:                   howto manager.      (line  608)
+* BFD_RELOC_PPC_TPREL:                   howto manager.      (line  691)
+* BFD_RELOC_PPC_TPREL16:                 howto manager.      (line  687)
+* BFD_RELOC_PPC_TPREL16_HA:              howto manager.      (line  690)
+* BFD_RELOC_PPC_TPREL16_HI:              howto manager.      (line  689)
+* BFD_RELOC_PPC_TPREL16_LO:              howto manager.      (line  688)
+* BFD_RELOC_PPC_VLE_HA16A:               howto manager.      (line  643)
+* BFD_RELOC_PPC_VLE_HA16D:               howto manager.      (line  644)
+* BFD_RELOC_PPC_VLE_HI16A:               howto manager.      (line  641)
+* BFD_RELOC_PPC_VLE_HI16D:               howto manager.      (line  642)
+* BFD_RELOC_PPC_VLE_LO16A:               howto manager.      (line  639)
+* BFD_RELOC_PPC_VLE_LO16D:               howto manager.      (line  640)
+* BFD_RELOC_PPC_VLE_REL15:               howto manager.      (line  637)
+* BFD_RELOC_PPC_VLE_REL24:               howto manager.      (line  638)
+* BFD_RELOC_PPC_VLE_REL8:                howto manager.      (line  636)
+* BFD_RELOC_PPC_VLE_SDA21:               howto manager.      (line  645)
+* BFD_RELOC_PPC_VLE_SDA21_LO:            howto manager.      (line  646)
+* BFD_RELOC_PPC_VLE_SDAREL_HA16A:        howto manager.      (line  651)
+* BFD_RELOC_PPC_VLE_SDAREL_HA16D:        howto manager.      (line  652)
+* BFD_RELOC_PPC_VLE_SDAREL_HI16A:        howto manager.      (line  649)
+* BFD_RELOC_PPC_VLE_SDAREL_HI16D:        howto manager.      (line  650)
+* BFD_RELOC_PPC_VLE_SDAREL_LO16A:        howto manager.      (line  647)
+* BFD_RELOC_PPC_VLE_SDAREL_LO16D:        howto manager.      (line  648)
+* BFD_RELOC_PRU_16_PMEM:                 howto manager.      (line 2518)
+* BFD_RELOC_PRU_32_PMEM:                 howto manager.      (line 2517)
+* BFD_RELOC_PRU_GNU_DIFF16:              howto manager.      (line 2522)
+* BFD_RELOC_PRU_GNU_DIFF16_PMEM:         howto manager.      (line 2524)
+* BFD_RELOC_PRU_GNU_DIFF32:              howto manager.      (line 2523)
+* BFD_RELOC_PRU_GNU_DIFF32_PMEM:         howto manager.      (line 2525)
+* BFD_RELOC_PRU_GNU_DIFF8:               howto manager.      (line 2521)
+* BFD_RELOC_PRU_LDI32:                   howto manager.      (line 2509)
+* BFD_RELOC_PRU_S10_PCREL:               howto manager.      (line 2513)
+* BFD_RELOC_PRU_U16:                     howto manager.      (line 2505)
+* BFD_RELOC_PRU_U16_PMEMIMM:             howto manager.      (line 2507)
+* BFD_RELOC_PRU_U8_PCREL:                howto manager.      (line 2515)
+* BFD_RELOC_RELC:                        howto manager.      (line 2406)
+* BFD_RELOC_RISCV_32_PCREL:              howto manager.      (line 1820)
+* BFD_RELOC_RISCV_ADD16:                 howto manager.      (line 1788)
+* BFD_RELOC_RISCV_ADD32:                 howto manager.      (line 1789)
+* BFD_RELOC_RISCV_ADD64:                 howto manager.      (line 1790)
+* BFD_RELOC_RISCV_ADD8:                  howto manager.      (line 1787)
+* BFD_RELOC_RISCV_ALIGN:                 howto manager.      (line 1805)
+* BFD_RELOC_RISCV_CALL:                  howto manager.      (line 1785)
+* BFD_RELOC_RISCV_CALL_PLT:              howto manager.      (line 1786)
+* BFD_RELOC_RISCV_CFA:                   howto manager.      (line 1814)
+* BFD_RELOC_RISCV_GOT_HI20:              howto manager.      (line 1795)
+* BFD_RELOC_RISCV_GPREL12_I:             howto manager.      (line 1779)
+* BFD_RELOC_RISCV_GPREL12_S:             howto manager.      (line 1780)
+* BFD_RELOC_RISCV_GPREL_I:               howto manager.      (line 1809)
+* BFD_RELOC_RISCV_GPREL_S:               howto manager.      (line 1810)
+* BFD_RELOC_RISCV_HI20:                  howto manager.      (line 1773)
+* BFD_RELOC_RISCV_JMP:                   howto manager.      (line 1798)
+* BFD_RELOC_RISCV_LO12_I:                howto manager.      (line 1777)
+* BFD_RELOC_RISCV_LO12_S:                howto manager.      (line 1778)
+* BFD_RELOC_RISCV_PCREL_HI20:            howto manager.      (line 1774)
+* BFD_RELOC_RISCV_PCREL_LO12_I:          howto manager.      (line 1775)
+* BFD_RELOC_RISCV_PCREL_LO12_S:          howto manager.      (line 1776)
+* BFD_RELOC_RISCV_RELAX:                 howto manager.      (line 1813)
+* BFD_RELOC_RISCV_RVC_BRANCH:            howto manager.      (line 1806)
+* BFD_RELOC_RISCV_RVC_JUMP:              howto manager.      (line 1807)
+* BFD_RELOC_RISCV_RVC_LUI:               howto manager.      (line 1808)
+* BFD_RELOC_RISCV_SET16:                 howto manager.      (line 1818)
+* BFD_RELOC_RISCV_SET32:                 howto manager.      (line 1819)
+* BFD_RELOC_RISCV_SET6:                  howto manager.      (line 1816)
+* BFD_RELOC_RISCV_SET8:                  howto manager.      (line 1817)
+* BFD_RELOC_RISCV_SUB16:                 howto manager.      (line 1792)
+* BFD_RELOC_RISCV_SUB32:                 howto manager.      (line 1793)
+* BFD_RELOC_RISCV_SUB6:                  howto manager.      (line 1815)
+* BFD_RELOC_RISCV_SUB64:                 howto manager.      (line 1794)
+* BFD_RELOC_RISCV_SUB8:                  howto manager.      (line 1791)
+* BFD_RELOC_RISCV_TLS_DTPMOD32:          howto manager.      (line 1799)
+* BFD_RELOC_RISCV_TLS_DTPMOD64:          howto manager.      (line 1801)
+* BFD_RELOC_RISCV_TLS_DTPREL32:          howto manager.      (line 1800)
+* BFD_RELOC_RISCV_TLS_DTPREL64:          howto manager.      (line 1802)
+* BFD_RELOC_RISCV_TLS_GD_HI20:           howto manager.      (line 1797)
+* BFD_RELOC_RISCV_TLS_GOT_HI20:          howto manager.      (line 1796)
+* BFD_RELOC_RISCV_TLS_TPREL32:           howto manager.      (line 1803)
+* BFD_RELOC_RISCV_TLS_TPREL64:           howto manager.      (line 1804)
+* BFD_RELOC_RISCV_TPREL_ADD:             howto manager.      (line 1784)
+* BFD_RELOC_RISCV_TPREL_HI20:            howto manager.      (line 1781)
+* BFD_RELOC_RISCV_TPREL_I:               howto manager.      (line 1811)
+* BFD_RELOC_RISCV_TPREL_LO12_I:          howto manager.      (line 1782)
+* BFD_RELOC_RISCV_TPREL_LO12_S:          howto manager.      (line 1783)
+* BFD_RELOC_RISCV_TPREL_S:               howto manager.      (line 1812)
+* BFD_RELOC_RL78_16U:                    howto manager.      (line 1830)
+* BFD_RELOC_RL78_16_OP:                  howto manager.      (line 1826)
+* BFD_RELOC_RL78_24U:                    howto manager.      (line 1831)
+* BFD_RELOC_RL78_24_OP:                  howto manager.      (line 1827)
+* BFD_RELOC_RL78_32_OP:                  howto manager.      (line 1828)
+* BFD_RELOC_RL78_8U:                     howto manager.      (line 1829)
+* BFD_RELOC_RL78_ABS16:                  howto manager.      (line 1843)
+* BFD_RELOC_RL78_ABS16U:                 howto manager.      (line 1847)
+* BFD_RELOC_RL78_ABS16UL:                howto manager.      (line 1849)
+* BFD_RELOC_RL78_ABS16UW:                howto manager.      (line 1848)
+* BFD_RELOC_RL78_ABS16_REV:              howto manager.      (line 1844)
+* BFD_RELOC_RL78_ABS32:                  howto manager.      (line 1845)
+* BFD_RELOC_RL78_ABS32_REV:              howto manager.      (line 1846)
+* BFD_RELOC_RL78_ABS8:                   howto manager.      (line 1842)
+* BFD_RELOC_RL78_CODE:                   howto manager.      (line 1854)
+* BFD_RELOC_RL78_DIFF:                   howto manager.      (line 1833)
+* BFD_RELOC_RL78_DIR3U_PCREL:            howto manager.      (line 1832)
+* BFD_RELOC_RL78_GPRELB:                 howto manager.      (line 1834)
+* BFD_RELOC_RL78_GPRELL:                 howto manager.      (line 1836)
+* BFD_RELOC_RL78_GPRELW:                 howto manager.      (line 1835)
+* BFD_RELOC_RL78_HI16:                   howto manager.      (line 1851)
+* BFD_RELOC_RL78_HI8:                    howto manager.      (line 1852)
+* BFD_RELOC_RL78_LO16:                   howto manager.      (line 1853)
+* BFD_RELOC_RL78_NEG16:                  howto manager.      (line 1823)
+* BFD_RELOC_RL78_NEG24:                  howto manager.      (line 1824)
+* BFD_RELOC_RL78_NEG32:                  howto manager.      (line 1825)
+* BFD_RELOC_RL78_NEG8:                   howto manager.      (line 1822)
+* BFD_RELOC_RL78_OP_AND:                 howto manager.      (line 1840)
+* BFD_RELOC_RL78_OP_NEG:                 howto manager.      (line 1839)
+* BFD_RELOC_RL78_OP_SHRA:                howto manager.      (line 1841)
+* BFD_RELOC_RL78_OP_SUBTRACT:            howto manager.      (line 1838)
+* BFD_RELOC_RL78_RELAX:                  howto manager.      (line 1850)
+* BFD_RELOC_RL78_SADDR:                  howto manager.      (line 1855)
+* BFD_RELOC_RL78_SYM:                    howto manager.      (line 1837)
 * BFD_RELOC_RVA:                         howto manager.      (line   97)
-* BFD_RELOC_RX_16U:                      howto manager.      (line 1858)
-* BFD_RELOC_RX_16_OP:                    howto manager.      (line 1854)
-* BFD_RELOC_RX_24U:                      howto manager.      (line 1859)
-* BFD_RELOC_RX_24_OP:                    howto manager.      (line 1855)
-* BFD_RELOC_RX_32_OP:                    howto manager.      (line 1856)
-* BFD_RELOC_RX_8U:                       howto manager.      (line 1857)
-* BFD_RELOC_RX_ABS16:                    howto manager.      (line 1869)
-* BFD_RELOC_RX_ABS16U:                   howto manager.      (line 1873)
-* BFD_RELOC_RX_ABS16UL:                  howto manager.      (line 1875)
-* BFD_RELOC_RX_ABS16UW:                  howto manager.      (line 1874)
-* BFD_RELOC_RX_ABS16_REV:                howto manager.      (line 1870)
-* BFD_RELOC_RX_ABS32:                    howto manager.      (line 1871)
-* BFD_RELOC_RX_ABS32_REV:                howto manager.      (line 1872)
-* BFD_RELOC_RX_ABS8:                     howto manager.      (line 1868)
-* BFD_RELOC_RX_DIFF:                     howto manager.      (line 1861)
-* BFD_RELOC_RX_DIR3U_PCREL:              howto manager.      (line 1860)
-* BFD_RELOC_RX_GPRELB:                   howto manager.      (line 1862)
-* BFD_RELOC_RX_GPRELL:                   howto manager.      (line 1864)
-* BFD_RELOC_RX_GPRELW:                   howto manager.      (line 1863)
-* BFD_RELOC_RX_NEG16:                    howto manager.      (line 1851)
-* BFD_RELOC_RX_NEG24:                    howto manager.      (line 1852)
-* BFD_RELOC_RX_NEG32:                    howto manager.      (line 1853)
-* BFD_RELOC_RX_NEG8:                     howto manager.      (line 1850)
-* BFD_RELOC_RX_OP_NEG:                   howto manager.      (line 1867)
-* BFD_RELOC_RX_OP_SUBTRACT:              howto manager.      (line 1866)
-* BFD_RELOC_RX_RELAX:                    howto manager.      (line 1876)
-* BFD_RELOC_RX_SYM:                      howto manager.      (line 1865)
-* BFD_RELOC_SCORE16_BRANCH:              howto manager.      (line 1979)
-* BFD_RELOC_SCORE16_JMP:                 howto manager.      (line 1977)
-* BFD_RELOC_SCORE_BCMP:                  howto manager.      (line 1981)
-* BFD_RELOC_SCORE_BRANCH:                howto manager.      (line 1971)
-* BFD_RELOC_SCORE_CALL15:                howto manager.      (line 1985)
-* BFD_RELOC_SCORE_DUMMY2:                howto manager.      (line 1968)
-* BFD_RELOC_SCORE_DUMMY_HI16:            howto manager.      (line 1986)
-* BFD_RELOC_SCORE_GOT15:                 howto manager.      (line 1983)
-* BFD_RELOC_SCORE_GOT_LO16:              howto manager.      (line 1984)
-* BFD_RELOC_SCORE_GPREL15:               howto manager.      (line 1966)
-* BFD_RELOC_SCORE_IMM30:                 howto manager.      (line 1973)
-* BFD_RELOC_SCORE_IMM32:                 howto manager.      (line 1975)
-* BFD_RELOC_SCORE_JMP:                   howto manager.      (line 1969)
-* BFD_RELOC_SH_ALIGN:                    howto manager.      (line  899)
-* BFD_RELOC_SH_CODE:                     howto manager.      (line  900)
-* BFD_RELOC_SH_COPY:                     howto manager.      (line  905)
-* BFD_RELOC_SH_COPY64:                   howto manager.      (line  930)
-* BFD_RELOC_SH_COUNT:                    howto manager.      (line  898)
-* BFD_RELOC_SH_DATA:                     howto manager.      (line  901)
-* BFD_RELOC_SH_DISP12:                   howto manager.      (line  881)
-* BFD_RELOC_SH_DISP12BY2:                howto manager.      (line  882)
-* BFD_RELOC_SH_DISP12BY4:                howto manager.      (line  883)
-* BFD_RELOC_SH_DISP12BY8:                howto manager.      (line  884)
-* BFD_RELOC_SH_DISP20:                   howto manager.      (line  885)
-* BFD_RELOC_SH_DISP20BY8:                howto manager.      (line  886)
-* BFD_RELOC_SH_FUNCDESC:                 howto manager.      (line  973)
-* BFD_RELOC_SH_GLOB_DAT:                 howto manager.      (line  906)
-* BFD_RELOC_SH_GLOB_DAT64:               howto manager.      (line  931)
-* BFD_RELOC_SH_GOT10BY4:                 howto manager.      (line  934)
-* BFD_RELOC_SH_GOT10BY8:                 howto manager.      (line  935)
-* BFD_RELOC_SH_GOT20:                    howto manager.      (line  967)
-* BFD_RELOC_SH_GOTFUNCDESC:              howto manager.      (line  969)
-* BFD_RELOC_SH_GOTFUNCDESC20:            howto manager.      (line  970)
-* BFD_RELOC_SH_GOTOFF20:                 howto manager.      (line  968)
-* BFD_RELOC_SH_GOTOFFFUNCDESC:           howto manager.      (line  971)
-* BFD_RELOC_SH_GOTOFFFUNCDESC20:         howto manager.      (line  972)
-* BFD_RELOC_SH_GOTOFF_HI16:              howto manager.      (line  925)
-* BFD_RELOC_SH_GOTOFF_LOW16:             howto manager.      (line  922)
-* BFD_RELOC_SH_GOTOFF_MEDHI16:           howto manager.      (line  924)
-* BFD_RELOC_SH_GOTOFF_MEDLOW16:          howto manager.      (line  923)
-* BFD_RELOC_SH_GOTPC:                    howto manager.      (line  909)
-* BFD_RELOC_SH_GOTPC_HI16:               howto manager.      (line  929)
-* BFD_RELOC_SH_GOTPC_LOW16:              howto manager.      (line  926)
-* BFD_RELOC_SH_GOTPC_MEDHI16:            howto manager.      (line  928)
-* BFD_RELOC_SH_GOTPC_MEDLOW16:           howto manager.      (line  927)
-* BFD_RELOC_SH_GOTPLT10BY4:              howto manager.      (line  936)
-* BFD_RELOC_SH_GOTPLT10BY8:              howto manager.      (line  937)
-* BFD_RELOC_SH_GOTPLT32:                 howto manager.      (line  938)
-* BFD_RELOC_SH_GOTPLT_HI16:              howto manager.      (line  917)
-* BFD_RELOC_SH_GOTPLT_LOW16:             howto manager.      (line  914)
-* BFD_RELOC_SH_GOTPLT_MEDHI16:           howto manager.      (line  916)
-* BFD_RELOC_SH_GOTPLT_MEDLOW16:          howto manager.      (line  915)
-* BFD_RELOC_SH_GOT_HI16:                 howto manager.      (line  913)
-* BFD_RELOC_SH_GOT_LOW16:                howto manager.      (line  910)
-* BFD_RELOC_SH_GOT_MEDHI16:              howto manager.      (line  912)
-* BFD_RELOC_SH_GOT_MEDLOW16:             howto manager.      (line  911)
-* BFD_RELOC_SH_IMM3:                     howto manager.      (line  879)
-* BFD_RELOC_SH_IMM3U:                    howto manager.      (line  880)
-* BFD_RELOC_SH_IMM4:                     howto manager.      (line  887)
-* BFD_RELOC_SH_IMM4BY2:                  howto manager.      (line  888)
-* BFD_RELOC_SH_IMM4BY4:                  howto manager.      (line  889)
-* BFD_RELOC_SH_IMM8:                     howto manager.      (line  890)
-* BFD_RELOC_SH_IMM8BY2:                  howto manager.      (line  891)
-* BFD_RELOC_SH_IMM8BY4:                  howto manager.      (line  892)
-* BFD_RELOC_SH_IMMS10:                   howto manager.      (line  944)
-* BFD_RELOC_SH_IMMS10BY2:                howto manager.      (line  945)
-* BFD_RELOC_SH_IMMS10BY4:                howto manager.      (line  946)
-* BFD_RELOC_SH_IMMS10BY8:                howto manager.      (line  947)
-* BFD_RELOC_SH_IMMS16:                   howto manager.      (line  948)
-* BFD_RELOC_SH_IMMS6:                    howto manager.      (line  941)
-* BFD_RELOC_SH_IMMS6BY32:                howto manager.      (line  942)
-* BFD_RELOC_SH_IMMU16:                   howto manager.      (line  949)
-* BFD_RELOC_SH_IMMU5:                    howto manager.      (line  940)
-* BFD_RELOC_SH_IMMU6:                    howto manager.      (line  943)
-* BFD_RELOC_SH_IMM_HI16:                 howto manager.      (line  956)
-* BFD_RELOC_SH_IMM_HI16_PCREL:           howto manager.      (line  957)
-* BFD_RELOC_SH_IMM_LOW16:                howto manager.      (line  950)
-* BFD_RELOC_SH_IMM_LOW16_PCREL:          howto manager.      (line  951)
-* BFD_RELOC_SH_IMM_MEDHI16:              howto manager.      (line  954)
-* BFD_RELOC_SH_IMM_MEDHI16_PCREL:        howto manager.      (line  955)
-* BFD_RELOC_SH_IMM_MEDLOW16:             howto manager.      (line  952)
-* BFD_RELOC_SH_IMM_MEDLOW16_PCREL:       howto manager.      (line  953)
-* BFD_RELOC_SH_JMP_SLOT:                 howto manager.      (line  907)
-* BFD_RELOC_SH_JMP_SLOT64:               howto manager.      (line  932)
-* BFD_RELOC_SH_LABEL:                    howto manager.      (line  902)
-* BFD_RELOC_SH_LOOP_END:                 howto manager.      (line  904)
-* BFD_RELOC_SH_LOOP_START:               howto manager.      (line  903)
-* BFD_RELOC_SH_PCDISP12BY2:              howto manager.      (line  878)
-* BFD_RELOC_SH_PCDISP8BY2:               howto manager.      (line  877)
-* BFD_RELOC_SH_PCRELIMM8BY2:             howto manager.      (line  893)
-* BFD_RELOC_SH_PCRELIMM8BY4:             howto manager.      (line  894)
-* BFD_RELOC_SH_PLT_HI16:                 howto manager.      (line  921)
-* BFD_RELOC_SH_PLT_LOW16:                howto manager.      (line  918)
-* BFD_RELOC_SH_PLT_MEDHI16:              howto manager.      (line  920)
-* BFD_RELOC_SH_PLT_MEDLOW16:             howto manager.      (line  919)
-* BFD_RELOC_SH_PT_16:                    howto manager.      (line  958)
-* BFD_RELOC_SH_RELATIVE:                 howto manager.      (line  908)
-* BFD_RELOC_SH_RELATIVE64:               howto manager.      (line  933)
-* BFD_RELOC_SH_SHMEDIA_CODE:             howto manager.      (line  939)
-* BFD_RELOC_SH_SWITCH16:                 howto manager.      (line  895)
-* BFD_RELOC_SH_SWITCH32:                 howto manager.      (line  896)
-* BFD_RELOC_SH_TLS_DTPMOD32:             howto manager.      (line  964)
-* BFD_RELOC_SH_TLS_DTPOFF32:             howto manager.      (line  965)
-* BFD_RELOC_SH_TLS_GD_32:                howto manager.      (line  959)
-* BFD_RELOC_SH_TLS_IE_32:                howto manager.      (line  962)
-* BFD_RELOC_SH_TLS_LDO_32:               howto manager.      (line  961)
-* BFD_RELOC_SH_TLS_LD_32:                howto manager.      (line  960)
-* BFD_RELOC_SH_TLS_LE_32:                howto manager.      (line  963)
-* BFD_RELOC_SH_TLS_TPOFF32:              howto manager.      (line  966)
-* BFD_RELOC_SH_USES:                     howto manager.      (line  897)
+* BFD_RELOC_RX_16U:                      howto manager.      (line 1865)
+* BFD_RELOC_RX_16_OP:                    howto manager.      (line 1861)
+* BFD_RELOC_RX_24U:                      howto manager.      (line 1866)
+* BFD_RELOC_RX_24_OP:                    howto manager.      (line 1862)
+* BFD_RELOC_RX_32_OP:                    howto manager.      (line 1863)
+* BFD_RELOC_RX_8U:                       howto manager.      (line 1864)
+* BFD_RELOC_RX_ABS16:                    howto manager.      (line 1876)
+* BFD_RELOC_RX_ABS16U:                   howto manager.      (line 1880)
+* BFD_RELOC_RX_ABS16UL:                  howto manager.      (line 1882)
+* BFD_RELOC_RX_ABS16UW:                  howto manager.      (line 1881)
+* BFD_RELOC_RX_ABS16_REV:                howto manager.      (line 1877)
+* BFD_RELOC_RX_ABS32:                    howto manager.      (line 1878)
+* BFD_RELOC_RX_ABS32_REV:                howto manager.      (line 1879)
+* BFD_RELOC_RX_ABS8:                     howto manager.      (line 1875)
+* BFD_RELOC_RX_DIFF:                     howto manager.      (line 1868)
+* BFD_RELOC_RX_DIR3U_PCREL:              howto manager.      (line 1867)
+* BFD_RELOC_RX_GPRELB:                   howto manager.      (line 1869)
+* BFD_RELOC_RX_GPRELL:                   howto manager.      (line 1871)
+* BFD_RELOC_RX_GPRELW:                   howto manager.      (line 1870)
+* BFD_RELOC_RX_NEG16:                    howto manager.      (line 1858)
+* BFD_RELOC_RX_NEG24:                    howto manager.      (line 1859)
+* BFD_RELOC_RX_NEG32:                    howto manager.      (line 1860)
+* BFD_RELOC_RX_NEG8:                     howto manager.      (line 1857)
+* BFD_RELOC_RX_OP_NEG:                   howto manager.      (line 1874)
+* BFD_RELOC_RX_OP_SUBTRACT:              howto manager.      (line 1873)
+* BFD_RELOC_RX_RELAX:                    howto manager.      (line 1883)
+* BFD_RELOC_RX_SYM:                      howto manager.      (line 1872)
+* BFD_RELOC_SCORE16_BRANCH:              howto manager.      (line 1986)
+* BFD_RELOC_SCORE16_JMP:                 howto manager.      (line 1984)
+* BFD_RELOC_SCORE_BCMP:                  howto manager.      (line 1988)
+* BFD_RELOC_SCORE_BRANCH:                howto manager.      (line 1978)
+* BFD_RELOC_SCORE_CALL15:                howto manager.      (line 1992)
+* BFD_RELOC_SCORE_DUMMY2:                howto manager.      (line 1975)
+* BFD_RELOC_SCORE_DUMMY_HI16:            howto manager.      (line 1993)
+* BFD_RELOC_SCORE_GOT15:                 howto manager.      (line 1990)
+* BFD_RELOC_SCORE_GOT_LO16:              howto manager.      (line 1991)
+* BFD_RELOC_SCORE_GPREL15:               howto manager.      (line 1973)
+* BFD_RELOC_SCORE_IMM30:                 howto manager.      (line 1980)
+* BFD_RELOC_SCORE_IMM32:                 howto manager.      (line 1982)
+* BFD_RELOC_SCORE_JMP:                   howto manager.      (line 1976)
+* BFD_RELOC_SH_ALIGN:                    howto manager.      (line  904)
+* BFD_RELOC_SH_CODE:                     howto manager.      (line  905)
+* BFD_RELOC_SH_COPY:                     howto manager.      (line  910)
+* BFD_RELOC_SH_COPY64:                   howto manager.      (line  935)
+* BFD_RELOC_SH_COUNT:                    howto manager.      (line  903)
+* BFD_RELOC_SH_DATA:                     howto manager.      (line  906)
+* BFD_RELOC_SH_DISP12:                   howto manager.      (line  886)
+* BFD_RELOC_SH_DISP12BY2:                howto manager.      (line  887)
+* BFD_RELOC_SH_DISP12BY4:                howto manager.      (line  888)
+* BFD_RELOC_SH_DISP12BY8:                howto manager.      (line  889)
+* BFD_RELOC_SH_DISP20:                   howto manager.      (line  890)
+* BFD_RELOC_SH_DISP20BY8:                howto manager.      (line  891)
+* BFD_RELOC_SH_FUNCDESC:                 howto manager.      (line  978)
+* BFD_RELOC_SH_GLOB_DAT:                 howto manager.      (line  911)
+* BFD_RELOC_SH_GLOB_DAT64:               howto manager.      (line  936)
+* BFD_RELOC_SH_GOT10BY4:                 howto manager.      (line  939)
+* BFD_RELOC_SH_GOT10BY8:                 howto manager.      (line  940)
+* BFD_RELOC_SH_GOT20:                    howto manager.      (line  972)
+* BFD_RELOC_SH_GOTFUNCDESC:              howto manager.      (line  974)
+* BFD_RELOC_SH_GOTFUNCDESC20:            howto manager.      (line  975)
+* BFD_RELOC_SH_GOTOFF20:                 howto manager.      (line  973)
+* BFD_RELOC_SH_GOTOFFFUNCDESC:           howto manager.      (line  976)
+* BFD_RELOC_SH_GOTOFFFUNCDESC20:         howto manager.      (line  977)
+* BFD_RELOC_SH_GOTOFF_HI16:              howto manager.      (line  930)
+* BFD_RELOC_SH_GOTOFF_LOW16:             howto manager.      (line  927)
+* BFD_RELOC_SH_GOTOFF_MEDHI16:           howto manager.      (line  929)
+* BFD_RELOC_SH_GOTOFF_MEDLOW16:          howto manager.      (line  928)
+* BFD_RELOC_SH_GOTPC:                    howto manager.      (line  914)
+* BFD_RELOC_SH_GOTPC_HI16:               howto manager.      (line  934)
+* BFD_RELOC_SH_GOTPC_LOW16:              howto manager.      (line  931)
+* BFD_RELOC_SH_GOTPC_MEDHI16:            howto manager.      (line  933)
+* BFD_RELOC_SH_GOTPC_MEDLOW16:           howto manager.      (line  932)
+* BFD_RELOC_SH_GOTPLT10BY4:              howto manager.      (line  941)
+* BFD_RELOC_SH_GOTPLT10BY8:              howto manager.      (line  942)
+* BFD_RELOC_SH_GOTPLT32:                 howto manager.      (line  943)
+* BFD_RELOC_SH_GOTPLT_HI16:              howto manager.      (line  922)
+* BFD_RELOC_SH_GOTPLT_LOW16:             howto manager.      (line  919)
+* BFD_RELOC_SH_GOTPLT_MEDHI16:           howto manager.      (line  921)
+* BFD_RELOC_SH_GOTPLT_MEDLOW16:          howto manager.      (line  920)
+* BFD_RELOC_SH_GOT_HI16:                 howto manager.      (line  918)
+* BFD_RELOC_SH_GOT_LOW16:                howto manager.      (line  915)
+* BFD_RELOC_SH_GOT_MEDHI16:              howto manager.      (line  917)
+* BFD_RELOC_SH_GOT_MEDLOW16:             howto manager.      (line  916)
+* BFD_RELOC_SH_IMM3:                     howto manager.      (line  884)
+* BFD_RELOC_SH_IMM3U:                    howto manager.      (line  885)
+* BFD_RELOC_SH_IMM4:                     howto manager.      (line  892)
+* BFD_RELOC_SH_IMM4BY2:                  howto manager.      (line  893)
+* BFD_RELOC_SH_IMM4BY4:                  howto manager.      (line  894)
+* BFD_RELOC_SH_IMM8:                     howto manager.      (line  895)
+* BFD_RELOC_SH_IMM8BY2:                  howto manager.      (line  896)
+* BFD_RELOC_SH_IMM8BY4:                  howto manager.      (line  897)
+* BFD_RELOC_SH_IMMS10:                   howto manager.      (line  949)
+* BFD_RELOC_SH_IMMS10BY2:                howto manager.      (line  950)
+* BFD_RELOC_SH_IMMS10BY4:                howto manager.      (line  951)
+* BFD_RELOC_SH_IMMS10BY8:                howto manager.      (line  952)
+* BFD_RELOC_SH_IMMS16:                   howto manager.      (line  953)
+* BFD_RELOC_SH_IMMS6:                    howto manager.      (line  946)
+* BFD_RELOC_SH_IMMS6BY32:                howto manager.      (line  947)
+* BFD_RELOC_SH_IMMU16:                   howto manager.      (line  954)
+* BFD_RELOC_SH_IMMU5:                    howto manager.      (line  945)
+* BFD_RELOC_SH_IMMU6:                    howto manager.      (line  948)
+* BFD_RELOC_SH_IMM_HI16:                 howto manager.      (line  961)
+* BFD_RELOC_SH_IMM_HI16_PCREL:           howto manager.      (line  962)
+* BFD_RELOC_SH_IMM_LOW16:                howto manager.      (line  955)
+* BFD_RELOC_SH_IMM_LOW16_PCREL:          howto manager.      (line  956)
+* BFD_RELOC_SH_IMM_MEDHI16:              howto manager.      (line  959)
+* BFD_RELOC_SH_IMM_MEDHI16_PCREL:        howto manager.      (line  960)
+* BFD_RELOC_SH_IMM_MEDLOW16:             howto manager.      (line  957)
+* BFD_RELOC_SH_IMM_MEDLOW16_PCREL:       howto manager.      (line  958)
+* BFD_RELOC_SH_JMP_SLOT:                 howto manager.      (line  912)
+* BFD_RELOC_SH_JMP_SLOT64:               howto manager.      (line  937)
+* BFD_RELOC_SH_LABEL:                    howto manager.      (line  907)
+* BFD_RELOC_SH_LOOP_END:                 howto manager.      (line  909)
+* BFD_RELOC_SH_LOOP_START:               howto manager.      (line  908)
+* BFD_RELOC_SH_PCDISP12BY2:              howto manager.      (line  883)
+* BFD_RELOC_SH_PCDISP8BY2:               howto manager.      (line  882)
+* BFD_RELOC_SH_PCRELIMM8BY2:             howto manager.      (line  898)
+* BFD_RELOC_SH_PCRELIMM8BY4:             howto manager.      (line  899)
+* BFD_RELOC_SH_PLT_HI16:                 howto manager.      (line  926)
+* BFD_RELOC_SH_PLT_LOW16:                howto manager.      (line  923)
+* BFD_RELOC_SH_PLT_MEDHI16:              howto manager.      (line  925)
+* BFD_RELOC_SH_PLT_MEDLOW16:             howto manager.      (line  924)
+* BFD_RELOC_SH_PT_16:                    howto manager.      (line  963)
+* BFD_RELOC_SH_RELATIVE:                 howto manager.      (line  913)
+* BFD_RELOC_SH_RELATIVE64:               howto manager.      (line  938)
+* BFD_RELOC_SH_SHMEDIA_CODE:             howto manager.      (line  944)
+* BFD_RELOC_SH_SWITCH16:                 howto manager.      (line  900)
+* BFD_RELOC_SH_SWITCH32:                 howto manager.      (line  901)
+* BFD_RELOC_SH_TLS_DTPMOD32:             howto manager.      (line  969)
+* BFD_RELOC_SH_TLS_DTPOFF32:             howto manager.      (line  970)
+* BFD_RELOC_SH_TLS_GD_32:                howto manager.      (line  964)
+* BFD_RELOC_SH_TLS_IE_32:                howto manager.      (line  967)
+* BFD_RELOC_SH_TLS_LDO_32:               howto manager.      (line  966)
+* BFD_RELOC_SH_TLS_LD_32:                howto manager.      (line  965)
+* BFD_RELOC_SH_TLS_LE_32:                howto manager.      (line  968)
+* BFD_RELOC_SH_TLS_TPOFF32:              howto manager.      (line  971)
+* BFD_RELOC_SH_USES:                     howto manager.      (line  902)
 * BFD_RELOC_SIZE32:                      howto manager.      (line   69)
 * BFD_RELOC_SIZE64:                      howto manager.      (line   70)
 * BFD_RELOC_SPARC13:                     howto manager.      (line  125)
@@ -13497,414 +13626,415 @@ BFD Index
 * BFD_RELOC_SPU_PCREL9b:                 howto manager.      (line  215)
 * BFD_RELOC_SPU_PPU32:                   howto manager.      (line  219)
 * BFD_RELOC_SPU_PPU64:                   howto manager.      (line  220)
-* BFD_RELOC_THUMB_PCREL_BLX:             howto manager.      (line  739)
-* BFD_RELOC_THUMB_PCREL_BRANCH12:        howto manager.      (line  750)
-* BFD_RELOC_THUMB_PCREL_BRANCH20:        howto manager.      (line  751)
-* BFD_RELOC_THUMB_PCREL_BRANCH23:        howto manager.      (line  752)
-* BFD_RELOC_THUMB_PCREL_BRANCH25:        howto manager.      (line  753)
-* BFD_RELOC_THUMB_PCREL_BRANCH7:         howto manager.      (line  748)
-* BFD_RELOC_THUMB_PCREL_BRANCH9:         howto manager.      (line  749)
-* BFD_RELOC_TIC30_LDP:                   howto manager.      (line 1478)
-* BFD_RELOC_TIC54X_16_OF_23:             howto manager.      (line 1492)
-* BFD_RELOC_TIC54X_23:                   howto manager.      (line 1490)
-* BFD_RELOC_TIC54X_MS7_OF_23:            howto manager.      (line 1496)
-* BFD_RELOC_TIC54X_PARTLS7:              howto manager.      (line 1482)
-* BFD_RELOC_TIC54X_PARTMS9:              howto manager.      (line 1486)
-* BFD_RELOC_TILEGX_BROFF_X1:             howto manager.      (line 3117)
-* BFD_RELOC_TILEGX_COPY:                 howto manager.      (line 3113)
-* BFD_RELOC_TILEGX_DEST_IMM8_X1:         howto manager.      (line 3124)
-* BFD_RELOC_TILEGX_GLOB_DAT:             howto manager.      (line 3114)
-* BFD_RELOC_TILEGX_HW0:                  howto manager.      (line 3106)
-* BFD_RELOC_TILEGX_HW0_LAST:             howto manager.      (line 3110)
-* BFD_RELOC_TILEGX_HW1:                  howto manager.      (line 3107)
-* BFD_RELOC_TILEGX_HW1_LAST:             howto manager.      (line 3111)
-* BFD_RELOC_TILEGX_HW2:                  howto manager.      (line 3108)
-* BFD_RELOC_TILEGX_HW2_LAST:             howto manager.      (line 3112)
-* BFD_RELOC_TILEGX_HW3:                  howto manager.      (line 3109)
-* BFD_RELOC_TILEGX_IMM16_X0_HW0:         howto manager.      (line 3133)
-* BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT:     howto manager.      (line 3161)
-* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST:    howto manager.      (line 3141)
-* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT: howto manager.     (line 3169)
-* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL: howto manager.   (line 3155)
+* BFD_RELOC_THUMB_PCREL_BLX:             howto manager.      (line  744)
+* BFD_RELOC_THUMB_PCREL_BRANCH12:        howto manager.      (line  755)
+* BFD_RELOC_THUMB_PCREL_BRANCH20:        howto manager.      (line  756)
+* BFD_RELOC_THUMB_PCREL_BRANCH23:        howto manager.      (line  757)
+* BFD_RELOC_THUMB_PCREL_BRANCH25:        howto manager.      (line  758)
+* BFD_RELOC_THUMB_PCREL_BRANCH7:         howto manager.      (line  753)
+* BFD_RELOC_THUMB_PCREL_BRANCH9:         howto manager.      (line  754)
+* BFD_RELOC_TIC30_LDP:                   howto manager.      (line 1484)
+* BFD_RELOC_TIC54X_16_OF_23:             howto manager.      (line 1498)
+* BFD_RELOC_TIC54X_23:                   howto manager.      (line 1496)
+* BFD_RELOC_TIC54X_MS7_OF_23:            howto manager.      (line 1502)
+* BFD_RELOC_TIC54X_PARTLS7:              howto manager.      (line 1488)
+* BFD_RELOC_TIC54X_PARTMS9:              howto manager.      (line 1492)
+* BFD_RELOC_TILEGX_BROFF_X1:             howto manager.      (line 3124)
+* BFD_RELOC_TILEGX_COPY:                 howto manager.      (line 3120)
+* BFD_RELOC_TILEGX_DEST_IMM8_X1:         howto manager.      (line 3131)
+* BFD_RELOC_TILEGX_GLOB_DAT:             howto manager.      (line 3121)
+* BFD_RELOC_TILEGX_HW0:                  howto manager.      (line 3113)
+* BFD_RELOC_TILEGX_HW0_LAST:             howto manager.      (line 3117)
+* BFD_RELOC_TILEGX_HW1:                  howto manager.      (line 3114)
+* BFD_RELOC_TILEGX_HW1_LAST:             howto manager.      (line 3118)
+* BFD_RELOC_TILEGX_HW2:                  howto manager.      (line 3115)
+* BFD_RELOC_TILEGX_HW2_LAST:             howto manager.      (line 3119)
+* BFD_RELOC_TILEGX_HW3:                  howto manager.      (line 3116)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0:         howto manager.      (line 3140)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT:     howto manager.      (line 3168)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST:    howto manager.      (line 3148)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT: howto manager.     (line 3176)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL: howto manager.   (line 3162)
 * BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL: howto manager.
-                                                             (line 3189)
-* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: howto manager.  (line 3183)
-* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: howto manager.  (line 3195)
-* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE: howto manager.  (line 3179)
-* BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL:   howto manager.      (line 3147)
-* BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL: howto manager.    (line 3163)
-* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD:  howto manager.      (line 3175)
-* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE:  howto manager.      (line 3187)
-* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE:  howto manager.      (line 3177)
-* BFD_RELOC_TILEGX_IMM16_X0_HW1:         howto manager.      (line 3135)
-* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST:    howto manager.      (line 3143)
-* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT: howto manager.     (line 3171)
-* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL: howto manager.   (line 3157)
+                                                             (line 3196)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: howto manager.  (line 3190)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: howto manager.  (line 3202)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE: howto manager.  (line 3186)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL:   howto manager.      (line 3154)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL: howto manager.    (line 3170)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD:  howto manager.      (line 3182)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE:  howto manager.      (line 3194)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE:  howto manager.      (line 3184)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1:         howto manager.      (line 3142)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST:    howto manager.      (line 3150)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT: howto manager.     (line 3178)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL: howto manager.   (line 3164)
 * BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL: howto manager.
-                                                             (line 3191)
-* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: howto manager.  (line 3185)
-* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: howto manager.  (line 3197)
-* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE: howto manager.  (line 3181)
-* BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL:   howto manager.      (line 3149)
-* BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL: howto manager.    (line 3165)
-* BFD_RELOC_TILEGX_IMM16_X0_HW2:         howto manager.      (line 3137)
-* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST:    howto manager.      (line 3145)
-* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL: howto manager.   (line 3159)
+                                                             (line 3198)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: howto manager.  (line 3192)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: howto manager.  (line 3204)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE: howto manager.  (line 3188)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL:   howto manager.      (line 3156)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL: howto manager.    (line 3172)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2:         howto manager.      (line 3144)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST:    howto manager.      (line 3152)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL: howto manager.   (line 3166)
 * BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL: howto manager.
-                                                             (line 3193)
-* BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL:   howto manager.      (line 3151)
-* BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL: howto manager.    (line 3167)
-* BFD_RELOC_TILEGX_IMM16_X0_HW3:         howto manager.      (line 3139)
-* BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL:   howto manager.      (line 3153)
-* BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL: howto manager.    (line 3173)
-* BFD_RELOC_TILEGX_IMM16_X1_HW0:         howto manager.      (line 3134)
-* BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT:     howto manager.      (line 3162)
-* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST:    howto manager.      (line 3142)
-* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT: howto manager.     (line 3170)
-* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL: howto manager.   (line 3156)
+                                                             (line 3200)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL:   howto manager.      (line 3158)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL: howto manager.    (line 3174)
+* BFD_RELOC_TILEGX_IMM16_X0_HW3:         howto manager.      (line 3146)
+* BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL:   howto manager.      (line 3160)
+* BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL: howto manager.    (line 3180)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0:         howto manager.      (line 3141)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT:     howto manager.      (line 3169)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST:    howto manager.      (line 3149)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT: howto manager.     (line 3177)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL: howto manager.   (line 3163)
 * BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL: howto manager.
-                                                             (line 3190)
-* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: howto manager.  (line 3184)
-* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: howto manager.  (line 3196)
-* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE: howto manager.  (line 3180)
-* BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL:   howto manager.      (line 3148)
-* BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL: howto manager.    (line 3164)
-* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD:  howto manager.      (line 3176)
-* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE:  howto manager.      (line 3188)
-* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE:  howto manager.      (line 3178)
-* BFD_RELOC_TILEGX_IMM16_X1_HW1:         howto manager.      (line 3136)
-* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST:    howto manager.      (line 3144)
-* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT: howto manager.     (line 3172)
-* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL: howto manager.   (line 3158)
+                                                             (line 3197)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: howto manager.  (line 3191)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: howto manager.  (line 3203)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE: howto manager.  (line 3187)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL:   howto manager.      (line 3155)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL: howto manager.    (line 3171)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD:  howto manager.      (line 3183)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE:  howto manager.      (line 3195)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE:  howto manager.      (line 3185)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1:         howto manager.      (line 3143)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST:    howto manager.      (line 3151)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT: howto manager.     (line 3179)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL: howto manager.   (line 3165)
 * BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL: howto manager.
-                                                             (line 3192)
-* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: howto manager.  (line 3186)
-* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: howto manager.  (line 3198)
-* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE: howto manager.  (line 3182)
-* BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL:   howto manager.      (line 3150)
-* BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL: howto manager.    (line 3166)
-* BFD_RELOC_TILEGX_IMM16_X1_HW2:         howto manager.      (line 3138)
-* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST:    howto manager.      (line 3146)
-* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL: howto manager.   (line 3160)
+                                                             (line 3199)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: howto manager.  (line 3193)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: howto manager.  (line 3205)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE: howto manager.  (line 3189)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL:   howto manager.      (line 3157)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL: howto manager.    (line 3173)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2:         howto manager.      (line 3145)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST:    howto manager.      (line 3153)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL: howto manager.   (line 3167)
 * BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL: howto manager.
-                                                             (line 3194)
-* BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL:   howto manager.      (line 3152)
-* BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL: howto manager.    (line 3168)
-* BFD_RELOC_TILEGX_IMM16_X1_HW3:         howto manager.      (line 3140)
-* BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL:   howto manager.      (line 3154)
-* BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL: howto manager.    (line 3174)
-* BFD_RELOC_TILEGX_IMM8_X0:              howto manager.      (line 3120)
-* BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD:      howto manager.      (line 3211)
-* BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD:   howto manager.      (line 3206)
-* BFD_RELOC_TILEGX_IMM8_X1:              howto manager.      (line 3122)
-* BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD:      howto manager.      (line 3212)
-* BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD:   howto manager.      (line 3207)
-* BFD_RELOC_TILEGX_IMM8_Y0:              howto manager.      (line 3121)
-* BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD:      howto manager.      (line 3213)
-* BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD:   howto manager.      (line 3208)
-* BFD_RELOC_TILEGX_IMM8_Y1:              howto manager.      (line 3123)
-* BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD:      howto manager.      (line 3214)
-* BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD:   howto manager.      (line 3209)
-* BFD_RELOC_TILEGX_JMP_SLOT:             howto manager.      (line 3115)
-* BFD_RELOC_TILEGX_JUMPOFF_X1:           howto manager.      (line 3118)
-* BFD_RELOC_TILEGX_JUMPOFF_X1_PLT:       howto manager.      (line 3119)
-* BFD_RELOC_TILEGX_MF_IMM14_X1:          howto manager.      (line 3126)
-* BFD_RELOC_TILEGX_MMEND_X0:             howto manager.      (line 3128)
-* BFD_RELOC_TILEGX_MMSTART_X0:           howto manager.      (line 3127)
-* BFD_RELOC_TILEGX_MT_IMM14_X1:          howto manager.      (line 3125)
-* BFD_RELOC_TILEGX_RELATIVE:             howto manager.      (line 3116)
-* BFD_RELOC_TILEGX_SHAMT_X0:             howto manager.      (line 3129)
-* BFD_RELOC_TILEGX_SHAMT_X1:             howto manager.      (line 3130)
-* BFD_RELOC_TILEGX_SHAMT_Y0:             howto manager.      (line 3131)
-* BFD_RELOC_TILEGX_SHAMT_Y1:             howto manager.      (line 3132)
-* BFD_RELOC_TILEGX_TLS_DTPMOD32:         howto manager.      (line 3202)
-* BFD_RELOC_TILEGX_TLS_DTPMOD64:         howto manager.      (line 3199)
-* BFD_RELOC_TILEGX_TLS_DTPOFF32:         howto manager.      (line 3203)
-* BFD_RELOC_TILEGX_TLS_DTPOFF64:         howto manager.      (line 3200)
-* BFD_RELOC_TILEGX_TLS_GD_CALL:          howto manager.      (line 3205)
-* BFD_RELOC_TILEGX_TLS_IE_LOAD:          howto manager.      (line 3210)
-* BFD_RELOC_TILEGX_TLS_TPOFF32:          howto manager.      (line 3204)
-* BFD_RELOC_TILEGX_TLS_TPOFF64:          howto manager.      (line 3201)
-* BFD_RELOC_TILEPRO_BROFF_X1:            howto manager.      (line 3030)
-* BFD_RELOC_TILEPRO_COPY:                howto manager.      (line 3026)
-* BFD_RELOC_TILEPRO_DEST_IMM8_X1:        howto manager.      (line 3037)
-* BFD_RELOC_TILEPRO_GLOB_DAT:            howto manager.      (line 3027)
-* BFD_RELOC_TILEPRO_IMM16_X0:            howto manager.      (line 3040)
-* BFD_RELOC_TILEPRO_IMM16_X0_GOT:        howto manager.      (line 3056)
-* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA:     howto manager.      (line 3062)
-* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI:     howto manager.      (line 3060)
-* BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO:     howto manager.      (line 3058)
-* BFD_RELOC_TILEPRO_IMM16_X0_HA:         howto manager.      (line 3046)
-* BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL:   howto manager.      (line 3054)
-* BFD_RELOC_TILEPRO_IMM16_X0_HI:         howto manager.      (line 3044)
-* BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL:   howto manager.      (line 3052)
-* BFD_RELOC_TILEPRO_IMM16_X0_LO:         howto manager.      (line 3042)
-* BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL:   howto manager.      (line 3050)
-* BFD_RELOC_TILEPRO_IMM16_X0_PCREL:      howto manager.      (line 3048)
-* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD:     howto manager.      (line 3078)
-* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA:  howto manager.      (line 3084)
-* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI:  howto manager.      (line 3082)
-* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO:  howto manager.      (line 3080)
-* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE:     howto manager.      (line 3086)
-* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA:  howto manager.      (line 3092)
-* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI:  howto manager.      (line 3090)
-* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO:  howto manager.      (line 3088)
-* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE:     howto manager.      (line 3097)
-* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA:  howto manager.      (line 3103)
-* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI:  howto manager.      (line 3101)
-* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO:  howto manager.      (line 3099)
-* BFD_RELOC_TILEPRO_IMM16_X1:            howto manager.      (line 3041)
-* BFD_RELOC_TILEPRO_IMM16_X1_GOT:        howto manager.      (line 3057)
-* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA:     howto manager.      (line 3063)
-* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI:     howto manager.      (line 3061)
-* BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO:     howto manager.      (line 3059)
-* BFD_RELOC_TILEPRO_IMM16_X1_HA:         howto manager.      (line 3047)
-* BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL:   howto manager.      (line 3055)
-* BFD_RELOC_TILEPRO_IMM16_X1_HI:         howto manager.      (line 3045)
-* BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL:   howto manager.      (line 3053)
-* BFD_RELOC_TILEPRO_IMM16_X1_LO:         howto manager.      (line 3043)
-* BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL:   howto manager.      (line 3051)
-* BFD_RELOC_TILEPRO_IMM16_X1_PCREL:      howto manager.      (line 3049)
-* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD:     howto manager.      (line 3079)
-* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA:  howto manager.      (line 3085)
-* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI:  howto manager.      (line 3083)
-* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO:  howto manager.      (line 3081)
-* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE:     howto manager.      (line 3087)
-* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA:  howto manager.      (line 3093)
-* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI:  howto manager.      (line 3091)
-* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO:  howto manager.      (line 3089)
-* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE:     howto manager.      (line 3098)
-* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA:  howto manager.      (line 3104)
-* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI:  howto manager.      (line 3102)
-* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO:  howto manager.      (line 3100)
-* BFD_RELOC_TILEPRO_IMM8_X0:             howto manager.      (line 3033)
-* BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD:  howto manager.      (line 3073)
-* BFD_RELOC_TILEPRO_IMM8_X1:             howto manager.      (line 3035)
-* BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD:  howto manager.      (line 3074)
-* BFD_RELOC_TILEPRO_IMM8_Y0:             howto manager.      (line 3034)
-* BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD:  howto manager.      (line 3075)
-* BFD_RELOC_TILEPRO_IMM8_Y1:             howto manager.      (line 3036)
-* BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD:  howto manager.      (line 3076)
-* BFD_RELOC_TILEPRO_JMP_SLOT:            howto manager.      (line 3028)
-* BFD_RELOC_TILEPRO_JOFFLONG_X1:         howto manager.      (line 3031)
-* BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT:     howto manager.      (line 3032)
-* BFD_RELOC_TILEPRO_MF_IMM15_X1:         howto manager.      (line 3039)
-* BFD_RELOC_TILEPRO_MMEND_X0:            howto manager.      (line 3065)
-* BFD_RELOC_TILEPRO_MMEND_X1:            howto manager.      (line 3067)
-* BFD_RELOC_TILEPRO_MMSTART_X0:          howto manager.      (line 3064)
-* BFD_RELOC_TILEPRO_MMSTART_X1:          howto manager.      (line 3066)
-* BFD_RELOC_TILEPRO_MT_IMM15_X1:         howto manager.      (line 3038)
-* BFD_RELOC_TILEPRO_RELATIVE:            howto manager.      (line 3029)
-* BFD_RELOC_TILEPRO_SHAMT_X0:            howto manager.      (line 3068)
-* BFD_RELOC_TILEPRO_SHAMT_X1:            howto manager.      (line 3069)
-* BFD_RELOC_TILEPRO_SHAMT_Y0:            howto manager.      (line 3070)
-* BFD_RELOC_TILEPRO_SHAMT_Y1:            howto manager.      (line 3071)
-* BFD_RELOC_TILEPRO_TLS_DTPMOD32:        howto manager.      (line 3094)
-* BFD_RELOC_TILEPRO_TLS_DTPOFF32:        howto manager.      (line 3095)
-* BFD_RELOC_TILEPRO_TLS_GD_CALL:         howto manager.      (line 3072)
-* BFD_RELOC_TILEPRO_TLS_IE_LOAD:         howto manager.      (line 3077)
-* BFD_RELOC_TILEPRO_TLS_TPOFF32:         howto manager.      (line 3096)
-* bfd_reloc_type_lookup:                 howto manager.      (line 3252)
-* BFD_RELOC_V850_16_GOT:                 howto manager.      (line 1454)
-* BFD_RELOC_V850_16_GOTOFF:              howto manager.      (line 1470)
-* BFD_RELOC_V850_16_PCREL:               howto manager.      (line 1434)
-* BFD_RELOC_V850_16_S1:                  howto manager.      (line 1446)
-* BFD_RELOC_V850_16_SPLIT_OFFSET:        howto manager.      (line 1444)
-* BFD_RELOC_V850_17_PCREL:               howto manager.      (line 1436)
-* BFD_RELOC_V850_22_PCREL:               howto manager.      (line 1388)
-* BFD_RELOC_V850_22_PLT_PCREL:           howto manager.      (line 1458)
-* BFD_RELOC_V850_23:                     howto manager.      (line 1438)
-* BFD_RELOC_V850_32_ABS:                 howto manager.      (line 1442)
-* BFD_RELOC_V850_32_GOT:                 howto manager.      (line 1456)
-* BFD_RELOC_V850_32_GOTOFF:              howto manager.      (line 1472)
-* BFD_RELOC_V850_32_GOTPCREL:            howto manager.      (line 1452)
-* BFD_RELOC_V850_32_PCREL:               howto manager.      (line 1440)
-* BFD_RELOC_V850_32_PLT_PCREL:           howto manager.      (line 1460)
-* BFD_RELOC_V850_9_PCREL:                howto manager.      (line 1386)
-* BFD_RELOC_V850_ALIGN:                  howto manager.      (line 1429)
-* BFD_RELOC_V850_CALLT_15_16_OFFSET:     howto manager.      (line 1450)
-* BFD_RELOC_V850_CALLT_16_16_OFFSET:     howto manager.      (line 1423)
-* BFD_RELOC_V850_CALLT_6_7_OFFSET:       howto manager.      (line 1421)
-* BFD_RELOC_V850_CODE:                   howto manager.      (line 1474)
-* BFD_RELOC_V850_COPY:                   howto manager.      (line 1462)
-* BFD_RELOC_V850_DATA:                   howto manager.      (line 1476)
-* BFD_RELOC_V850_GLOB_DAT:               howto manager.      (line 1464)
-* BFD_RELOC_V850_JMP_SLOT:               howto manager.      (line 1466)
-* BFD_RELOC_V850_LO16_S1:                howto manager.      (line 1448)
-* BFD_RELOC_V850_LO16_SPLIT_OFFSET:      howto manager.      (line 1431)
-* BFD_RELOC_V850_LONGCALL:               howto manager.      (line 1425)
-* BFD_RELOC_V850_LONGJUMP:               howto manager.      (line 1427)
-* BFD_RELOC_V850_RELATIVE:               howto manager.      (line 1468)
-* BFD_RELOC_V850_SDA_15_16_OFFSET:       howto manager.      (line 1392)
-* BFD_RELOC_V850_SDA_16_16_OFFSET:       howto manager.      (line 1390)
-* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager.      (line 1415)
-* BFD_RELOC_V850_TDA_16_16_OFFSET:       howto manager.      (line 1408)
-* BFD_RELOC_V850_TDA_4_4_OFFSET:         howto manager.      (line 1413)
-* BFD_RELOC_V850_TDA_4_5_OFFSET:         howto manager.      (line 1410)
-* BFD_RELOC_V850_TDA_6_8_OFFSET:         howto manager.      (line 1400)
-* BFD_RELOC_V850_TDA_7_7_OFFSET:         howto manager.      (line 1406)
-* BFD_RELOC_V850_TDA_7_8_OFFSET:         howto manager.      (line 1403)
-* BFD_RELOC_V850_ZDA_15_16_OFFSET:       howto manager.      (line 1397)
-* BFD_RELOC_V850_ZDA_16_16_OFFSET:       howto manager.      (line 1395)
-* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager.      (line 1418)
-* BFD_RELOC_VAX_GLOB_DAT:                howto manager.      (line 2406)
-* BFD_RELOC_VAX_JMP_SLOT:                howto manager.      (line 2407)
-* BFD_RELOC_VAX_RELATIVE:                howto manager.      (line 2408)
-* BFD_RELOC_VISIUM_HI16:                 howto manager.      (line 3231)
-* BFD_RELOC_VISIUM_HI16_PCREL:           howto manager.      (line 3235)
-* BFD_RELOC_VISIUM_IM16:                 howto manager.      (line 3233)
-* BFD_RELOC_VISIUM_IM16_PCREL:           howto manager.      (line 3237)
-* BFD_RELOC_VISIUM_LO16:                 howto manager.      (line 3232)
-* BFD_RELOC_VISIUM_LO16_PCREL:           howto manager.      (line 3236)
-* BFD_RELOC_VISIUM_REL16:                howto manager.      (line 3234)
-* BFD_RELOC_VPE4KMATH_DATA:              howto manager.      (line 2009)
-* BFD_RELOC_VPE4KMATH_INSN:              howto manager.      (line 2010)
-* BFD_RELOC_VTABLE_ENTRY:                howto manager.      (line 2013)
-* BFD_RELOC_VTABLE_INHERIT:              howto manager.      (line 2012)
-* BFD_RELOC_WASM32_ABS32_CODE:           howto manager.      (line 3244)
-* BFD_RELOC_WASM32_CODE_POINTER:         howto manager.      (line 3246)
-* BFD_RELOC_WASM32_COPY:                 howto manager.      (line 3245)
-* BFD_RELOC_WASM32_INDEX:                howto manager.      (line 3247)
-* BFD_RELOC_WASM32_LEB128:               howto manager.      (line 3239)
-* BFD_RELOC_WASM32_LEB128_GOT:           howto manager.      (line 3240)
-* BFD_RELOC_WASM32_LEB128_GOT_CODE:      howto manager.      (line 3241)
-* BFD_RELOC_WASM32_LEB128_PLT:           howto manager.      (line 3242)
-* BFD_RELOC_WASM32_PLT_INDEX:            howto manager.      (line 3243)
-* BFD_RELOC_WASM32_PLT_SIG:              howto manager.      (line 3248)
-* BFD_RELOC_X86_64_32S:                  howto manager.      (line  553)
-* BFD_RELOC_X86_64_COPY:                 howto manager.      (line  548)
-* BFD_RELOC_X86_64_DTPMOD64:             howto manager.      (line  554)
-* BFD_RELOC_X86_64_DTPOFF32:             howto manager.      (line  559)
-* BFD_RELOC_X86_64_DTPOFF64:             howto manager.      (line  555)
-* BFD_RELOC_X86_64_GLOB_DAT:             howto manager.      (line  549)
-* BFD_RELOC_X86_64_GOT32:                howto manager.      (line  546)
-* BFD_RELOC_X86_64_GOT64:                howto manager.      (line  564)
-* BFD_RELOC_X86_64_GOTOFF64:             howto manager.      (line  562)
-* BFD_RELOC_X86_64_GOTPC32:              howto manager.      (line  563)
-* BFD_RELOC_X86_64_GOTPC32_TLSDESC:      howto manager.      (line  569)
-* BFD_RELOC_X86_64_GOTPC64:              howto manager.      (line  566)
-* BFD_RELOC_X86_64_GOTPCREL:             howto manager.      (line  552)
-* BFD_RELOC_X86_64_GOTPCREL64:           howto manager.      (line  565)
-* BFD_RELOC_X86_64_GOTPCRELX:            howto manager.      (line  575)
-* BFD_RELOC_X86_64_GOTPLT64:             howto manager.      (line  567)
-* BFD_RELOC_X86_64_GOTTPOFF:             howto manager.      (line  560)
-* BFD_RELOC_X86_64_IRELATIVE:            howto manager.      (line  572)
-* BFD_RELOC_X86_64_JUMP_SLOT:            howto manager.      (line  550)
-* BFD_RELOC_X86_64_PC32_BND:             howto manager.      (line  573)
-* BFD_RELOC_X86_64_PLT32:                howto manager.      (line  547)
-* BFD_RELOC_X86_64_PLT32_BND:            howto manager.      (line  574)
-* BFD_RELOC_X86_64_PLTOFF64:             howto manager.      (line  568)
-* BFD_RELOC_X86_64_RELATIVE:             howto manager.      (line  551)
-* BFD_RELOC_X86_64_REX_GOTPCRELX:        howto manager.      (line  576)
-* BFD_RELOC_X86_64_TLSDESC:              howto manager.      (line  571)
-* BFD_RELOC_X86_64_TLSDESC_CALL:         howto manager.      (line  570)
-* BFD_RELOC_X86_64_TLSGD:                howto manager.      (line  557)
-* BFD_RELOC_X86_64_TLSLD:                howto manager.      (line  558)
-* BFD_RELOC_X86_64_TPOFF32:              howto manager.      (line  561)
-* BFD_RELOC_X86_64_TPOFF64:              howto manager.      (line  556)
-* BFD_RELOC_XC16X_PAG:                   howto manager.      (line 2401)
-* BFD_RELOC_XC16X_POF:                   howto manager.      (line 2402)
-* BFD_RELOC_XC16X_SEG:                   howto manager.      (line 2403)
-* BFD_RELOC_XC16X_SOF:                   howto manager.      (line 2404)
-* BFD_RELOC_XGATE_24:                    howto manager.      (line 2156)
-* BFD_RELOC_XGATE_GPAGE:                 howto manager.      (line 2154)
-* BFD_RELOC_XGATE_IMM3:                  howto manager.      (line 2168)
-* BFD_RELOC_XGATE_IMM4:                  howto manager.      (line 2170)
-* BFD_RELOC_XGATE_IMM5:                  howto manager.      (line 2172)
-* BFD_RELOC_XGATE_IMM8_HI:               howto manager.      (line 2165)
-* BFD_RELOC_XGATE_IMM8_LO:               howto manager.      (line 2162)
-* BFD_RELOC_XGATE_LO16:                  howto manager.      (line 2151)
-* BFD_RELOC_XGATE_PCREL_10:              howto manager.      (line 2160)
-* BFD_RELOC_XGATE_PCREL_9:               howto manager.      (line 2158)
-* BFD_RELOC_XGATE_RL_GROUP:              howto manager.      (line 2147)
-* BFD_RELOC_XGATE_RL_JUMP:               howto manager.      (line 2144)
-* BFD_RELOC_XSTORMY16_12:                howto manager.      (line 2395)
-* BFD_RELOC_XSTORMY16_24:                howto manager.      (line 2396)
-* BFD_RELOC_XSTORMY16_FPTR16:            howto manager.      (line 2397)
-* BFD_RELOC_XSTORMY16_REL_12:            howto manager.      (line 2394)
-* BFD_RELOC_XTENSA_ASM_EXPAND:           howto manager.      (line 2592)
-* BFD_RELOC_XTENSA_ASM_SIMPLIFY:         howto manager.      (line 2596)
-* BFD_RELOC_XTENSA_DIFF16:               howto manager.      (line 2543)
-* BFD_RELOC_XTENSA_DIFF32:               howto manager.      (line 2544)
-* BFD_RELOC_XTENSA_DIFF8:                howto manager.      (line 2542)
-* BFD_RELOC_XTENSA_GLOB_DAT:             howto manager.      (line 2534)
-* BFD_RELOC_XTENSA_JMP_SLOT:             howto manager.      (line 2535)
-* BFD_RELOC_XTENSA_OP0:                  howto manager.      (line 2587)
-* BFD_RELOC_XTENSA_OP1:                  howto manager.      (line 2588)
-* BFD_RELOC_XTENSA_OP2:                  howto manager.      (line 2589)
-* BFD_RELOC_XTENSA_PLT:                  howto manager.      (line 2538)
-* BFD_RELOC_XTENSA_RELATIVE:             howto manager.      (line 2536)
-* BFD_RELOC_XTENSA_RTLD:                 howto manager.      (line 2530)
-* BFD_RELOC_XTENSA_SLOT0_ALT:            howto manager.      (line 2570)
-* BFD_RELOC_XTENSA_SLOT0_OP:             howto manager.      (line 2551)
-* BFD_RELOC_XTENSA_SLOT10_ALT:           howto manager.      (line 2580)
-* BFD_RELOC_XTENSA_SLOT10_OP:            howto manager.      (line 2561)
-* BFD_RELOC_XTENSA_SLOT11_ALT:           howto manager.      (line 2581)
-* BFD_RELOC_XTENSA_SLOT11_OP:            howto manager.      (line 2562)
-* BFD_RELOC_XTENSA_SLOT12_ALT:           howto manager.      (line 2582)
-* BFD_RELOC_XTENSA_SLOT12_OP:            howto manager.      (line 2563)
-* BFD_RELOC_XTENSA_SLOT13_ALT:           howto manager.      (line 2583)
-* BFD_RELOC_XTENSA_SLOT13_OP:            howto manager.      (line 2564)
-* BFD_RELOC_XTENSA_SLOT14_ALT:           howto manager.      (line 2584)
-* BFD_RELOC_XTENSA_SLOT14_OP:            howto manager.      (line 2565)
-* BFD_RELOC_XTENSA_SLOT1_ALT:            howto manager.      (line 2571)
-* BFD_RELOC_XTENSA_SLOT1_OP:             howto manager.      (line 2552)
-* BFD_RELOC_XTENSA_SLOT2_ALT:            howto manager.      (line 2572)
-* BFD_RELOC_XTENSA_SLOT2_OP:             howto manager.      (line 2553)
-* BFD_RELOC_XTENSA_SLOT3_ALT:            howto manager.      (line 2573)
-* BFD_RELOC_XTENSA_SLOT3_OP:             howto manager.      (line 2554)
-* BFD_RELOC_XTENSA_SLOT4_ALT:            howto manager.      (line 2574)
-* BFD_RELOC_XTENSA_SLOT4_OP:             howto manager.      (line 2555)
-* BFD_RELOC_XTENSA_SLOT5_ALT:            howto manager.      (line 2575)
-* BFD_RELOC_XTENSA_SLOT5_OP:             howto manager.      (line 2556)
-* BFD_RELOC_XTENSA_SLOT6_ALT:            howto manager.      (line 2576)
-* BFD_RELOC_XTENSA_SLOT6_OP:             howto manager.      (line 2557)
-* BFD_RELOC_XTENSA_SLOT7_ALT:            howto manager.      (line 2577)
-* BFD_RELOC_XTENSA_SLOT7_OP:             howto manager.      (line 2558)
-* BFD_RELOC_XTENSA_SLOT8_ALT:            howto manager.      (line 2578)
-* BFD_RELOC_XTENSA_SLOT8_OP:             howto manager.      (line 2559)
-* BFD_RELOC_XTENSA_SLOT9_ALT:            howto manager.      (line 2579)
-* BFD_RELOC_XTENSA_SLOT9_OP:             howto manager.      (line 2560)
-* BFD_RELOC_XTENSA_TLSDESC_ARG:          howto manager.      (line 2601)
-* BFD_RELOC_XTENSA_TLSDESC_FN:           howto manager.      (line 2600)
-* BFD_RELOC_XTENSA_TLS_ARG:              howto manager.      (line 2605)
-* BFD_RELOC_XTENSA_TLS_CALL:             howto manager.      (line 2606)
-* BFD_RELOC_XTENSA_TLS_DTPOFF:           howto manager.      (line 2602)
-* BFD_RELOC_XTENSA_TLS_FUNC:             howto manager.      (line 2604)
-* BFD_RELOC_XTENSA_TLS_TPOFF:            howto manager.      (line 2603)
-* BFD_RELOC_Z80_DISP8:                   howto manager.      (line 2608)
-* BFD_RELOC_Z8K_CALLR:                   howto manager.      (line 2612)
-* BFD_RELOC_Z8K_DISP7:                   howto manager.      (line 2610)
-* BFD_RELOC_Z8K_IMM4L:                   howto manager.      (line 2614)
+                                                             (line 3201)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL:   howto manager.      (line 3159)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL: howto manager.    (line 3175)
+* BFD_RELOC_TILEGX_IMM16_X1_HW3:         howto manager.      (line 3147)
+* BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL:   howto manager.      (line 3161)
+* BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL: howto manager.    (line 3181)
+* BFD_RELOC_TILEGX_IMM8_X0:              howto manager.      (line 3127)
+* BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD:      howto manager.      (line 3218)
+* BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD:   howto manager.      (line 3213)
+* BFD_RELOC_TILEGX_IMM8_X1:              howto manager.      (line 3129)
+* BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD:      howto manager.      (line 3219)
+* BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD:   howto manager.      (line 3214)
+* BFD_RELOC_TILEGX_IMM8_Y0:              howto manager.      (line 3128)
+* BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD:      howto manager.      (line 3220)
+* BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD:   howto manager.      (line 3215)
+* BFD_RELOC_TILEGX_IMM8_Y1:              howto manager.      (line 3130)
+* BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD:      howto manager.      (line 3221)
+* BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD:   howto manager.      (line 3216)
+* BFD_RELOC_TILEGX_JMP_SLOT:             howto manager.      (line 3122)
+* BFD_RELOC_TILEGX_JUMPOFF_X1:           howto manager.      (line 3125)
+* BFD_RELOC_TILEGX_JUMPOFF_X1_PLT:       howto manager.      (line 3126)
+* BFD_RELOC_TILEGX_MF_IMM14_X1:          howto manager.      (line 3133)
+* BFD_RELOC_TILEGX_MMEND_X0:             howto manager.      (line 3135)
+* BFD_RELOC_TILEGX_MMSTART_X0:           howto manager.      (line 3134)
+* BFD_RELOC_TILEGX_MT_IMM14_X1:          howto manager.      (line 3132)
+* BFD_RELOC_TILEGX_RELATIVE:             howto manager.      (line 3123)
+* BFD_RELOC_TILEGX_SHAMT_X0:             howto manager.      (line 3136)
+* BFD_RELOC_TILEGX_SHAMT_X1:             howto manager.      (line 3137)
+* BFD_RELOC_TILEGX_SHAMT_Y0:             howto manager.      (line 3138)
+* BFD_RELOC_TILEGX_SHAMT_Y1:             howto manager.      (line 3139)
+* BFD_RELOC_TILEGX_TLS_DTPMOD32:         howto manager.      (line 3209)
+* BFD_RELOC_TILEGX_TLS_DTPMOD64:         howto manager.      (line 3206)
+* BFD_RELOC_TILEGX_TLS_DTPOFF32:         howto manager.      (line 3210)
+* BFD_RELOC_TILEGX_TLS_DTPOFF64:         howto manager.      (line 3207)
+* BFD_RELOC_TILEGX_TLS_GD_CALL:          howto manager.      (line 3212)
+* BFD_RELOC_TILEGX_TLS_IE_LOAD:          howto manager.      (line 3217)
+* BFD_RELOC_TILEGX_TLS_TPOFF32:          howto manager.      (line 3211)
+* BFD_RELOC_TILEGX_TLS_TPOFF64:          howto manager.      (line 3208)
+* BFD_RELOC_TILEPRO_BROFF_X1:            howto manager.      (line 3037)
+* BFD_RELOC_TILEPRO_COPY:                howto manager.      (line 3033)
+* BFD_RELOC_TILEPRO_DEST_IMM8_X1:        howto manager.      (line 3044)
+* BFD_RELOC_TILEPRO_GLOB_DAT:            howto manager.      (line 3034)
+* BFD_RELOC_TILEPRO_IMM16_X0:            howto manager.      (line 3047)
+* BFD_RELOC_TILEPRO_IMM16_X0_GOT:        howto manager.      (line 3063)
+* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA:     howto manager.      (line 3069)
+* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI:     howto manager.      (line 3067)
+* BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO:     howto manager.      (line 3065)
+* BFD_RELOC_TILEPRO_IMM16_X0_HA:         howto manager.      (line 3053)
+* BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL:   howto manager.      (line 3061)
+* BFD_RELOC_TILEPRO_IMM16_X0_HI:         howto manager.      (line 3051)
+* BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL:   howto manager.      (line 3059)
+* BFD_RELOC_TILEPRO_IMM16_X0_LO:         howto manager.      (line 3049)
+* BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL:   howto manager.      (line 3057)
+* BFD_RELOC_TILEPRO_IMM16_X0_PCREL:      howto manager.      (line 3055)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD:     howto manager.      (line 3085)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA:  howto manager.      (line 3091)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI:  howto manager.      (line 3089)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO:  howto manager.      (line 3087)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE:     howto manager.      (line 3093)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA:  howto manager.      (line 3099)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI:  howto manager.      (line 3097)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO:  howto manager.      (line 3095)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE:     howto manager.      (line 3104)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA:  howto manager.      (line 3110)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI:  howto manager.      (line 3108)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO:  howto manager.      (line 3106)
+* BFD_RELOC_TILEPRO_IMM16_X1:            howto manager.      (line 3048)
+* BFD_RELOC_TILEPRO_IMM16_X1_GOT:        howto manager.      (line 3064)
+* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA:     howto manager.      (line 3070)
+* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI:     howto manager.      (line 3068)
+* BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO:     howto manager.      (line 3066)
+* BFD_RELOC_TILEPRO_IMM16_X1_HA:         howto manager.      (line 3054)
+* BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL:   howto manager.      (line 3062)
+* BFD_RELOC_TILEPRO_IMM16_X1_HI:         howto manager.      (line 3052)
+* BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL:   howto manager.      (line 3060)
+* BFD_RELOC_TILEPRO_IMM16_X1_LO:         howto manager.      (line 3050)
+* BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL:   howto manager.      (line 3058)
+* BFD_RELOC_TILEPRO_IMM16_X1_PCREL:      howto manager.      (line 3056)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD:     howto manager.      (line 3086)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA:  howto manager.      (line 3092)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI:  howto manager.      (line 3090)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO:  howto manager.      (line 3088)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE:     howto manager.      (line 3094)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA:  howto manager.      (line 3100)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI:  howto manager.      (line 3098)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO:  howto manager.      (line 3096)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE:     howto manager.      (line 3105)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA:  howto manager.      (line 3111)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI:  howto manager.      (line 3109)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO:  howto manager.      (line 3107)
+* BFD_RELOC_TILEPRO_IMM8_X0:             howto manager.      (line 3040)
+* BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD:  howto manager.      (line 3080)
+* BFD_RELOC_TILEPRO_IMM8_X1:             howto manager.      (line 3042)
+* BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD:  howto manager.      (line 3081)
+* BFD_RELOC_TILEPRO_IMM8_Y0:             howto manager.      (line 3041)
+* BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD:  howto manager.      (line 3082)
+* BFD_RELOC_TILEPRO_IMM8_Y1:             howto manager.      (line 3043)
+* BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD:  howto manager.      (line 3083)
+* BFD_RELOC_TILEPRO_JMP_SLOT:            howto manager.      (line 3035)
+* BFD_RELOC_TILEPRO_JOFFLONG_X1:         howto manager.      (line 3038)
+* BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT:     howto manager.      (line 3039)
+* BFD_RELOC_TILEPRO_MF_IMM15_X1:         howto manager.      (line 3046)
+* BFD_RELOC_TILEPRO_MMEND_X0:            howto manager.      (line 3072)
+* BFD_RELOC_TILEPRO_MMEND_X1:            howto manager.      (line 3074)
+* BFD_RELOC_TILEPRO_MMSTART_X0:          howto manager.      (line 3071)
+* BFD_RELOC_TILEPRO_MMSTART_X1:          howto manager.      (line 3073)
+* BFD_RELOC_TILEPRO_MT_IMM15_X1:         howto manager.      (line 3045)
+* BFD_RELOC_TILEPRO_RELATIVE:            howto manager.      (line 3036)
+* BFD_RELOC_TILEPRO_SHAMT_X0:            howto manager.      (line 3075)
+* BFD_RELOC_TILEPRO_SHAMT_X1:            howto manager.      (line 3076)
+* BFD_RELOC_TILEPRO_SHAMT_Y0:            howto manager.      (line 3077)
+* BFD_RELOC_TILEPRO_SHAMT_Y1:            howto manager.      (line 3078)
+* BFD_RELOC_TILEPRO_TLS_DTPMOD32:        howto manager.      (line 3101)
+* BFD_RELOC_TILEPRO_TLS_DTPOFF32:        howto manager.      (line 3102)
+* BFD_RELOC_TILEPRO_TLS_GD_CALL:         howto manager.      (line 3079)
+* BFD_RELOC_TILEPRO_TLS_IE_LOAD:         howto manager.      (line 3084)
+* BFD_RELOC_TILEPRO_TLS_TPOFF32:         howto manager.      (line 3103)
+* bfd_reloc_type_lookup:                 howto manager.      (line 3259)
+* BFD_RELOC_V850_16_GOT:                 howto manager.      (line 1460)
+* BFD_RELOC_V850_16_GOTOFF:              howto manager.      (line 1476)
+* BFD_RELOC_V850_16_PCREL:               howto manager.      (line 1440)
+* BFD_RELOC_V850_16_S1:                  howto manager.      (line 1452)
+* BFD_RELOC_V850_16_SPLIT_OFFSET:        howto manager.      (line 1450)
+* BFD_RELOC_V850_17_PCREL:               howto manager.      (line 1442)
+* BFD_RELOC_V850_22_PCREL:               howto manager.      (line 1394)
+* BFD_RELOC_V850_22_PLT_PCREL:           howto manager.      (line 1464)
+* BFD_RELOC_V850_23:                     howto manager.      (line 1444)
+* BFD_RELOC_V850_32_ABS:                 howto manager.      (line 1448)
+* BFD_RELOC_V850_32_GOT:                 howto manager.      (line 1462)
+* BFD_RELOC_V850_32_GOTOFF:              howto manager.      (line 1478)
+* BFD_RELOC_V850_32_GOTPCREL:            howto manager.      (line 1458)
+* BFD_RELOC_V850_32_PCREL:               howto manager.      (line 1446)
+* BFD_RELOC_V850_32_PLT_PCREL:           howto manager.      (line 1466)
+* BFD_RELOC_V850_9_PCREL:                howto manager.      (line 1392)
+* BFD_RELOC_V850_ALIGN:                  howto manager.      (line 1435)
+* BFD_RELOC_V850_CALLT_15_16_OFFSET:     howto manager.      (line 1456)
+* BFD_RELOC_V850_CALLT_16_16_OFFSET:     howto manager.      (line 1429)
+* BFD_RELOC_V850_CALLT_6_7_OFFSET:       howto manager.      (line 1427)
+* BFD_RELOC_V850_CODE:                   howto manager.      (line 1480)
+* BFD_RELOC_V850_COPY:                   howto manager.      (line 1468)
+* BFD_RELOC_V850_DATA:                   howto manager.      (line 1482)
+* BFD_RELOC_V850_GLOB_DAT:               howto manager.      (line 1470)
+* BFD_RELOC_V850_JMP_SLOT:               howto manager.      (line 1472)
+* BFD_RELOC_V850_LO16_S1:                howto manager.      (line 1454)
+* BFD_RELOC_V850_LO16_SPLIT_OFFSET:      howto manager.      (line 1437)
+* BFD_RELOC_V850_LONGCALL:               howto manager.      (line 1431)
+* BFD_RELOC_V850_LONGJUMP:               howto manager.      (line 1433)
+* BFD_RELOC_V850_RELATIVE:               howto manager.      (line 1474)
+* BFD_RELOC_V850_SDA_15_16_OFFSET:       howto manager.      (line 1398)
+* BFD_RELOC_V850_SDA_16_16_OFFSET:       howto manager.      (line 1396)
+* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager.      (line 1421)
+* BFD_RELOC_V850_TDA_16_16_OFFSET:       howto manager.      (line 1414)
+* BFD_RELOC_V850_TDA_4_4_OFFSET:         howto manager.      (line 1419)
+* BFD_RELOC_V850_TDA_4_5_OFFSET:         howto manager.      (line 1416)
+* BFD_RELOC_V850_TDA_6_8_OFFSET:         howto manager.      (line 1406)
+* BFD_RELOC_V850_TDA_7_7_OFFSET:         howto manager.      (line 1412)
+* BFD_RELOC_V850_TDA_7_8_OFFSET:         howto manager.      (line 1409)
+* BFD_RELOC_V850_ZDA_15_16_OFFSET:       howto manager.      (line 1403)
+* BFD_RELOC_V850_ZDA_16_16_OFFSET:       howto manager.      (line 1401)
+* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager.      (line 1424)
+* BFD_RELOC_VAX_GLOB_DAT:                howto manager.      (line 2413)
+* BFD_RELOC_VAX_JMP_SLOT:                howto manager.      (line 2414)
+* BFD_RELOC_VAX_RELATIVE:                howto manager.      (line 2415)
+* BFD_RELOC_VISIUM_HI16:                 howto manager.      (line 3238)
+* BFD_RELOC_VISIUM_HI16_PCREL:           howto manager.      (line 3242)
+* BFD_RELOC_VISIUM_IM16:                 howto manager.      (line 3240)
+* BFD_RELOC_VISIUM_IM16_PCREL:           howto manager.      (line 3244)
+* BFD_RELOC_VISIUM_LO16:                 howto manager.      (line 3239)
+* BFD_RELOC_VISIUM_LO16_PCREL:           howto manager.      (line 3243)
+* BFD_RELOC_VISIUM_REL16:                howto manager.      (line 3241)
+* BFD_RELOC_VPE4KMATH_DATA:              howto manager.      (line 2016)
+* BFD_RELOC_VPE4KMATH_INSN:              howto manager.      (line 2017)
+* BFD_RELOC_VTABLE_ENTRY:                howto manager.      (line 2020)
+* BFD_RELOC_VTABLE_INHERIT:              howto manager.      (line 2019)
+* BFD_RELOC_WASM32_ABS32_CODE:           howto manager.      (line 3251)
+* BFD_RELOC_WASM32_CODE_POINTER:         howto manager.      (line 3253)
+* BFD_RELOC_WASM32_COPY:                 howto manager.      (line 3252)
+* BFD_RELOC_WASM32_INDEX:                howto manager.      (line 3254)
+* BFD_RELOC_WASM32_LEB128:               howto manager.      (line 3246)
+* BFD_RELOC_WASM32_LEB128_GOT:           howto manager.      (line 3247)
+* BFD_RELOC_WASM32_LEB128_GOT_CODE:      howto manager.      (line 3248)
+* BFD_RELOC_WASM32_LEB128_PLT:           howto manager.      (line 3249)
+* BFD_RELOC_WASM32_PLT_INDEX:            howto manager.      (line 3250)
+* BFD_RELOC_WASM32_PLT_SIG:              howto manager.      (line 3255)
+* BFD_RELOC_X86_64_32S:                  howto manager.      (line  558)
+* BFD_RELOC_X86_64_COPY:                 howto manager.      (line  553)
+* BFD_RELOC_X86_64_DTPMOD64:             howto manager.      (line  559)
+* BFD_RELOC_X86_64_DTPOFF32:             howto manager.      (line  564)
+* BFD_RELOC_X86_64_DTPOFF64:             howto manager.      (line  560)
+* BFD_RELOC_X86_64_GLOB_DAT:             howto manager.      (line  554)
+* BFD_RELOC_X86_64_GOT32:                howto manager.      (line  551)
+* BFD_RELOC_X86_64_GOT64:                howto manager.      (line  569)
+* BFD_RELOC_X86_64_GOTOFF64:             howto manager.      (line  567)
+* BFD_RELOC_X86_64_GOTPC32:              howto manager.      (line  568)
+* BFD_RELOC_X86_64_GOTPC32_TLSDESC:      howto manager.      (line  574)
+* BFD_RELOC_X86_64_GOTPC64:              howto manager.      (line  571)
+* BFD_RELOC_X86_64_GOTPCREL:             howto manager.      (line  557)
+* BFD_RELOC_X86_64_GOTPCREL64:           howto manager.      (line  570)
+* BFD_RELOC_X86_64_GOTPCRELX:            howto manager.      (line  580)
+* BFD_RELOC_X86_64_GOTPLT64:             howto manager.      (line  572)
+* BFD_RELOC_X86_64_GOTTPOFF:             howto manager.      (line  565)
+* BFD_RELOC_X86_64_IRELATIVE:            howto manager.      (line  577)
+* BFD_RELOC_X86_64_JUMP_SLOT:            howto manager.      (line  555)
+* BFD_RELOC_X86_64_PC32_BND:             howto manager.      (line  578)
+* BFD_RELOC_X86_64_PLT32:                howto manager.      (line  552)
+* BFD_RELOC_X86_64_PLT32_BND:            howto manager.      (line  579)
+* BFD_RELOC_X86_64_PLTOFF64:             howto manager.      (line  573)
+* BFD_RELOC_X86_64_RELATIVE:             howto manager.      (line  556)
+* BFD_RELOC_X86_64_REX_GOTPCRELX:        howto manager.      (line  581)
+* BFD_RELOC_X86_64_TLSDESC:              howto manager.      (line  576)
+* BFD_RELOC_X86_64_TLSDESC_CALL:         howto manager.      (line  575)
+* BFD_RELOC_X86_64_TLSGD:                howto manager.      (line  562)
+* BFD_RELOC_X86_64_TLSLD:                howto manager.      (line  563)
+* BFD_RELOC_X86_64_TPOFF32:              howto manager.      (line  566)
+* BFD_RELOC_X86_64_TPOFF64:              howto manager.      (line  561)
+* BFD_RELOC_XC16X_PAG:                   howto manager.      (line 2408)
+* BFD_RELOC_XC16X_POF:                   howto manager.      (line 2409)
+* BFD_RELOC_XC16X_SEG:                   howto manager.      (line 2410)
+* BFD_RELOC_XC16X_SOF:                   howto manager.      (line 2411)
+* BFD_RELOC_XGATE_24:                    howto manager.      (line 2163)
+* BFD_RELOC_XGATE_GPAGE:                 howto manager.      (line 2161)
+* BFD_RELOC_XGATE_IMM3:                  howto manager.      (line 2175)
+* BFD_RELOC_XGATE_IMM4:                  howto manager.      (line 2177)
+* BFD_RELOC_XGATE_IMM5:                  howto manager.      (line 2179)
+* BFD_RELOC_XGATE_IMM8_HI:               howto manager.      (line 2172)
+* BFD_RELOC_XGATE_IMM8_LO:               howto manager.      (line 2169)
+* BFD_RELOC_XGATE_LO16:                  howto manager.      (line 2158)
+* BFD_RELOC_XGATE_PCREL_10:              howto manager.      (line 2167)
+* BFD_RELOC_XGATE_PCREL_9:               howto manager.      (line 2165)
+* BFD_RELOC_XGATE_RL_GROUP:              howto manager.      (line 2154)
+* BFD_RELOC_XGATE_RL_JUMP:               howto manager.      (line 2151)
+* BFD_RELOC_XSTORMY16_12:                howto manager.      (line 2402)
+* BFD_RELOC_XSTORMY16_24:                howto manager.      (line 2403)
+* BFD_RELOC_XSTORMY16_FPTR16:            howto manager.      (line 2404)
+* BFD_RELOC_XSTORMY16_REL_12:            howto manager.      (line 2401)
+* BFD_RELOC_XTENSA_ASM_EXPAND:           howto manager.      (line 2599)
+* BFD_RELOC_XTENSA_ASM_SIMPLIFY:         howto manager.      (line 2603)
+* BFD_RELOC_XTENSA_DIFF16:               howto manager.      (line 2550)
+* BFD_RELOC_XTENSA_DIFF32:               howto manager.      (line 2551)
+* BFD_RELOC_XTENSA_DIFF8:                howto manager.      (line 2549)
+* BFD_RELOC_XTENSA_GLOB_DAT:             howto manager.      (line 2541)
+* BFD_RELOC_XTENSA_JMP_SLOT:             howto manager.      (line 2542)
+* BFD_RELOC_XTENSA_OP0:                  howto manager.      (line 2594)
+* BFD_RELOC_XTENSA_OP1:                  howto manager.      (line 2595)
+* BFD_RELOC_XTENSA_OP2:                  howto manager.      (line 2596)
+* BFD_RELOC_XTENSA_PLT:                  howto manager.      (line 2545)
+* BFD_RELOC_XTENSA_RELATIVE:             howto manager.      (line 2543)
+* BFD_RELOC_XTENSA_RTLD:                 howto manager.      (line 2537)
+* BFD_RELOC_XTENSA_SLOT0_ALT:            howto manager.      (line 2577)
+* BFD_RELOC_XTENSA_SLOT0_OP:             howto manager.      (line 2558)
+* BFD_RELOC_XTENSA_SLOT10_ALT:           howto manager.      (line 2587)
+* BFD_RELOC_XTENSA_SLOT10_OP:            howto manager.      (line 2568)
+* BFD_RELOC_XTENSA_SLOT11_ALT:           howto manager.      (line 2588)
+* BFD_RELOC_XTENSA_SLOT11_OP:            howto manager.      (line 2569)
+* BFD_RELOC_XTENSA_SLOT12_ALT:           howto manager.      (line 2589)
+* BFD_RELOC_XTENSA_SLOT12_OP:            howto manager.      (line 2570)
+* BFD_RELOC_XTENSA_SLOT13_ALT:           howto manager.      (line 2590)
+* BFD_RELOC_XTENSA_SLOT13_OP:            howto manager.      (line 2571)
+* BFD_RELOC_XTENSA_SLOT14_ALT:           howto manager.      (line 2591)
+* BFD_RELOC_XTENSA_SLOT14_OP:            howto manager.      (line 2572)
+* BFD_RELOC_XTENSA_SLOT1_ALT:            howto manager.      (line 2578)
+* BFD_RELOC_XTENSA_SLOT1_OP:             howto manager.      (line 2559)
+* BFD_RELOC_XTENSA_SLOT2_ALT:            howto manager.      (line 2579)
+* BFD_RELOC_XTENSA_SLOT2_OP:             howto manager.      (line 2560)
+* BFD_RELOC_XTENSA_SLOT3_ALT:            howto manager.      (line 2580)
+* BFD_RELOC_XTENSA_SLOT3_OP:             howto manager.      (line 2561)
+* BFD_RELOC_XTENSA_SLOT4_ALT:            howto manager.      (line 2581)
+* BFD_RELOC_XTENSA_SLOT4_OP:             howto manager.      (line 2562)
+* BFD_RELOC_XTENSA_SLOT5_ALT:            howto manager.      (line 2582)
+* BFD_RELOC_XTENSA_SLOT5_OP:             howto manager.      (line 2563)
+* BFD_RELOC_XTENSA_SLOT6_ALT:            howto manager.      (line 2583)
+* BFD_RELOC_XTENSA_SLOT6_OP:             howto manager.      (line 2564)
+* BFD_RELOC_XTENSA_SLOT7_ALT:            howto manager.      (line 2584)
+* BFD_RELOC_XTENSA_SLOT7_OP:             howto manager.      (line 2565)
+* BFD_RELOC_XTENSA_SLOT8_ALT:            howto manager.      (line 2585)
+* BFD_RELOC_XTENSA_SLOT8_OP:             howto manager.      (line 2566)
+* BFD_RELOC_XTENSA_SLOT9_ALT:            howto manager.      (line 2586)
+* BFD_RELOC_XTENSA_SLOT9_OP:             howto manager.      (line 2567)
+* BFD_RELOC_XTENSA_TLSDESC_ARG:          howto manager.      (line 2608)
+* BFD_RELOC_XTENSA_TLSDESC_FN:           howto manager.      (line 2607)
+* BFD_RELOC_XTENSA_TLS_ARG:              howto manager.      (line 2612)
+* BFD_RELOC_XTENSA_TLS_CALL:             howto manager.      (line 2613)
+* BFD_RELOC_XTENSA_TLS_DTPOFF:           howto manager.      (line 2609)
+* BFD_RELOC_XTENSA_TLS_FUNC:             howto manager.      (line 2611)
+* BFD_RELOC_XTENSA_TLS_TPOFF:            howto manager.      (line 2610)
+* BFD_RELOC_Z80_DISP8:                   howto manager.      (line 2615)
+* BFD_RELOC_Z8K_CALLR:                   howto manager.      (line 2619)
+* BFD_RELOC_Z8K_DISP7:                   howto manager.      (line 2617)
+* BFD_RELOC_Z8K_IMM4L:                   howto manager.      (line 2621)
 * bfd_rename_section:                    section prototypes. (line  177)
-* bfd_scan_arch:                         Architectures.      (line  550)
-* bfd_scan_vma:                          Miscellaneous.      (line  124)
+* bfd_scan_arch:                         Architectures.      (line  555)
+* bfd_scan_vma:                          Miscellaneous.      (line  126)
 * bfd_sections_find_if:                  section prototypes. (line  207)
 * bfd_section_already_linked:            Writing the symbol table.
                                                              (line   55)
 * bfd_section_list_clear:                section prototypes. (line    7)
 * bfd_set_archive_head:                  Archives.           (line   74)
-* bfd_set_arch_info:                     Architectures.      (line  591)
-* bfd_set_assert_handler:                Error reporting.    (line  135)
-* bfd_set_default_target:                bfd_target.         (line  468)
+* bfd_set_arch_info:                     Architectures.      (line  596)
+* bfd_set_assert_handler:                Error reporting.    (line  146)
+* bfd_set_default_target:                bfd_target.         (line  483)
 * bfd_set_error:                         Error reporting.    (line   57)
-* bfd_set_error_handler:                 Error reporting.    (line  100)
-* bfd_set_error_program_name:            Error reporting.    (line  109)
-* bfd_set_file_flags:                    Miscellaneous.      (line   43)
+* bfd_set_error_handler:                 Error reporting.    (line  111)
+* bfd_set_error_program_name:            Error reporting.    (line  120)
+* bfd_set_file_flags:                    Miscellaneous.      (line   45)
 * bfd_set_format:                        Formats.            (line   67)
-* bfd_set_gp_size:                       Miscellaneous.      (line  114)
-* bfd_set_private_flags:                 Miscellaneous.      (line  172)
+* bfd_set_gp_size:                       Miscellaneous.      (line  116)
+* bfd_set_input_error:                   Error reporting.    (line   68)
+* bfd_set_private_flags:                 Miscellaneous.      (line  174)
 * bfd_set_reloc:                         Miscellaneous.      (line   33)
 * bfd_set_section_contents:              section prototypes. (line  239)
 * bfd_set_section_flags:                 section prototypes. (line  162)
 * bfd_set_section_size:                  section prototypes. (line  224)
-* bfd_set_start_address:                 Miscellaneous.      (line   93)
+* bfd_set_start_address:                 Miscellaneous.      (line   95)
 * bfd_set_symtab:                        symbol handling functions.
                                                              (line   63)
 * bfd_symbol_info:                       symbol handling functions.
                                                              (line  135)
-* bfd_target_list:                       bfd_target.         (line  520)
-* bfd_update_compression_header:         Miscellaneous.      (line  348)
+* bfd_target_list:                       bfd_target.         (line  535)
+* bfd_update_compression_header:         Miscellaneous.      (line  350)
 * bfd_write_bigendian_4byte_int:         Internal.           (line   12)
 * bfd_zalloc:                            Opening and Closing.
                                                              (line  257)
@@ -13924,19 +14054,19 @@ BFD Index
 * Hash tables:                           Hash Tables.        (line    6)
 * internal object-file format:           Canonical format.   (line   11)
 * Linker:                                Linker Functions.   (line    6)
-* Other functions:                       Miscellaneous.      (line  186)
+* Other functions:                       Miscellaneous.      (line  188)
 * separate_alt_debug_file_exists:        Opening and Closing.
                                                              (line  356)
 * separate_debug_file_exists:            Opening and Closing.
                                                              (line  343)
-* struct bfd_iovec:                      Miscellaneous.      (line  407)
+* struct bfd_iovec:                      Miscellaneous.      (line  409)
 * target vector (_bfd_final_link):       Performing the Final Link.
                                                              (line    6)
 * target vector (_bfd_link_add_symbols): Adding Symbols to the Hash Table.
                                                              (line    6)
 * target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table.
                                                              (line    6)
-* The HOWTO Macro:                       typedef arelent.    (line  289)
+* The HOWTO Macro:                       typedef arelent.    (line  290)
 * what is it?:                           Overview.           (line    6)
 
 
@@ -13951,61 +14081,61 @@ Node: BFD information loss6247
 Node: Canonical format8788
 Node: BFD front end13165
 Node: typedef bfd13589
-Node: Error reporting25924
-Node: Miscellaneous30404
-Node: Memory Usage48866
-Node: Initialization50097
-Node: Sections50556
-Node: Section Input51039
-Node: Section Output52408
-Node: typedef asection54895
-Node: section prototypes81628
-Node: Symbols92235
-Node: Reading Symbols93838
-Node: Writing Symbols94946
-Node: Mini Symbols96690
-Node: typedef asymbol97664
-Node: symbol handling functions103720
-Node: Archives109058
-Node: Formats113086
-Node: Relocations116037
-Node: typedef arelent116764
-Node: howto manager132420
-Node: Core Files257099
-Node: Targets259137
-Node: bfd_target261112
-Node: Architectures284618
-Node: Opening and Closing314118
-Node: Internal332293
-Node: File Caching338642
-Node: Linker Functions340560
-Node: Creating a Linker Hash Table342234
-Node: Adding Symbols to the Hash Table343973
-Node: Differing file formats344873
-Node: Adding symbols from an object file346598
-Node: Adding symbols from an archive348748
-Node: Performing the Final Link351094
-Node: Information provided by the linker352335
-Node: Relocating the section contents353489
-Node: Writing the symbol table355241
-Node: Hash Tables361375
-Node: Creating and Freeing a Hash Table362573
-Node: Looking Up or Entering a String363823
-Node: Traversing a Hash Table365076
-Node: Deriving a New Hash Table Type365865
-Node: Define the Derived Structures366931
-Node: Write the Derived Creation Routine368012
-Node: Write Other Derived Routines370636
-Node: BFD back ends371951
-Node: What to Put Where372221
-Node: aout372401
-Node: coff378744
-Node: elf407614
-Node: mmo408015
-Node: File layout408885
-Node: Symbol-table414798
-Node: mmo section mapping418561
-Node: GNU Free Documentation License422215
-Node: BFD Index447279
+Node: Error reporting26116
+Node: Miscellaneous30839
+Node: Memory Usage49719
+Node: Initialization50950
+Node: Sections51409
+Node: Section Input51892
+Node: Section Output53261
+Node: typedef asection55748
+Node: section prototypes83566
+Node: Symbols94177
+Node: Reading Symbols95780
+Node: Writing Symbols96888
+Node: Mini Symbols98632
+Node: typedef asymbol99606
+Node: symbol handling functions105691
+Node: Archives111066
+Node: Formats115203
+Node: Relocations118154
+Node: typedef arelent118881
+Node: howto manager134986
+Node: Core Files260527
+Node: Targets262565
+Node: bfd_target264540
+Node: Architectures289896
+Node: Opening and Closing320577
+Node: Internal338752
+Node: File Caching345077
+Node: Linker Functions346995
+Node: Creating a Linker Hash Table348669
+Node: Adding Symbols to the Hash Table350408
+Node: Differing file formats351308
+Node: Adding symbols from an object file353033
+Node: Adding symbols from an archive355183
+Node: Performing the Final Link357529
+Node: Information provided by the linker358770
+Node: Relocating the section contents359924
+Node: Writing the symbol table361676
+Node: Hash Tables368342
+Node: Creating and Freeing a Hash Table369540
+Node: Looking Up or Entering a String370790
+Node: Traversing a Hash Table372043
+Node: Deriving a New Hash Table Type372832
+Node: Define the Derived Structures373898
+Node: Write the Derived Creation Routine374979
+Node: Write Other Derived Routines377604
+Node: BFD back ends378919
+Node: What to Put Where379189
+Node: aout379369
+Node: coff385712
+Node: elf414503
+Node: mmo414904
+Node: File layout415774
+Node: Symbol-table421687
+Node: mmo section mapping425450
+Node: GNU Free Documentation License429104
+Node: BFD Index454168
 
 End Tag Table
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/bfdint.texi ./bfd/doc/bfdint.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/bfdint.texi	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/doc/bfdint.texi	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 \input texinfo
-@c Copyright (C) 1988-2017 Free Software Foundation, Inc.
+@c Copyright (C) 1988-2018 Free Software Foundation, Inc.
 @setfilename bfdint.info
 
 @settitle BFD Internals
@@ -14,7 +14,7 @@
 @copying
 This file documents the internals of the BFD library.
 
-Copyright @copyright{} 1988-2017 Free Software Foundation, Inc.
+Copyright @copyright{} 1988-2018 Free Software Foundation, Inc.
 Contributed by Cygnus Support.
 
 Permission is granted to copy, distribute and/or modify this document
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/bfdio.texi ./bfd/doc/bfdio.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/bfdio.texi	2018-01-02 02:04:53.000000000 +0000
+++ ./bfd/doc/bfdio.texi	2018-01-09 02:06:19.000000000 +0000
@@ -21,7 +21,7 @@ struct bfd_iovec
      if an error occurs.  */
   file_ptr (*btell) (struct bfd *abfd);
   /* For the following, on successful completion a value of 0 is returned.
-     Otherwise, a value of -1 is returned (and  @code{bfd_error} is set).  */
+     Otherwise, a value of -1 is returned (and @code{bfd_error} is set).  */
   int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
   int (*bclose) (struct bfd *abfd);
   int (*bflush) (struct bfd *abfd);
@@ -53,7 +53,7 @@ from the archive header for archive memb
 @subsubsection @code{bfd_get_size}
 @strong{Synopsis}
 @example
-file_ptr bfd_get_size (bfd *abfd);
+ufile_ptr bfd_get_size (bfd *abfd);
 @end example
 @strong{Description}@*
 Return the file size (as read from file system) for the file
@@ -80,6 +80,17 @@ of space for the 15 bazillon byte table 
 This function at least allows us to answer the question, "is the
 size reasonable?".
 
+@findex bfd_get_file_size
+@subsubsection @code{bfd_get_file_size}
+@strong{Synopsis}
+@example
+ufile_ptr bfd_get_file_size (bfd *abfd);
+@end example
+@strong{Description}@*
+Return the file size (as read from file system) for the file
+associated with BFD @var{abfd}.  It supports both normal files
+and archive elements.
+
 @findex bfd_mmap
 @subsubsection @code{bfd_mmap}
 @strong{Synopsis}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/bfdsumm.texi ./bfd/doc/bfdsumm.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/bfdsumm.texi	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/doc/bfdsumm.texi	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 @c This summary of BFD is shared by the BFD and LD docs.
-@c Copyright (C) 2012-2017 Free Software Foundation, Inc.
+@c Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 When an object file is opened, BFD subroutines automatically determine
 the format of the input object file.  They then build a descriptor in
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/bfd.texinfo ./bfd/doc/bfd.texinfo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/bfd.texinfo	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/doc/bfd.texinfo	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 \input texinfo.tex
 @setfilename bfd.info
-@c Copyright (C) 1988-2017 Free Software Foundation, Inc.
+@c Copyright (C) 1988-2018 Free Software Foundation, Inc.
 @c 
 @synindex fn cp
 
@@ -14,7 +14,7 @@
 @copying
 This file documents the BFD library.
 
-Copyright @copyright{} 1991-2017 Free Software Foundation, Inc.
+Copyright @copyright{} 1991-2018 Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -62,7 +62,7 @@ included in the section entitled ``GNU F
 @end tex
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1991-2017 Free Software Foundation, Inc.
+Copyright @copyright{} 1991-2018 Free Software Foundation, Inc.
 
       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/bfdt.texi ./bfd/doc/bfdt.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/bfdt.texi	2018-01-02 02:04:53.000000000 +0000
+++ ./bfd/doc/bfdt.texi	2018-01-09 02:06:19.000000000 +0000
@@ -75,59 +75,59 @@ struct bfd
      the object_flags values have mostly just been copied from backend
      to another, and are not necessarily correct).  */
 
-#define BFD_NO_FLAGS   0x00
+#define BFD_NO_FLAGS                0x0
 
   /* BFD contains relocation entries.  */
-#define HAS_RELOC      0x01
+#define HAS_RELOC                   0x1
 
   /* BFD is directly executable.  */
-#define EXEC_P         0x02
+#define EXEC_P                      0x2
 
   /* BFD has line number information (basically used for F_LNNO in a
      COFF header).  */
-#define HAS_LINENO     0x04
+#define HAS_LINENO                  0x4
 
   /* BFD has debugging information.  */
-#define HAS_DEBUG      0x08
+#define HAS_DEBUG                  0x08
 
   /* BFD has symbols.  */
-#define HAS_SYMS       0x10
+#define HAS_SYMS                   0x10
 
   /* BFD has local symbols (basically used for F_LSYMS in a COFF
      header).  */
-#define HAS_LOCALS     0x20
+#define HAS_LOCALS                 0x20
 
   /* BFD is a dynamic object.  */
-#define DYNAMIC        0x40
+#define DYNAMIC                    0x40
 
   /* Text section is write protected (if D_PAGED is not set, this is
      like an a.out NMAGIC file) (the linker sets this by default, but
      clears it for -r or -N).  */
-#define WP_TEXT        0x80
+#define WP_TEXT                    0x80
 
   /* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
      linker sets this by default, but clears it for -r or -n or -N).  */
-#define D_PAGED        0x100
+#define D_PAGED                   0x100
 
   /* BFD is relaxable (this means that bfd_relax_section may be able to
      do something) (sometimes bfd_relax_section can do something even if
      this is not set).  */
-#define BFD_IS_RELAXABLE 0x200
+#define BFD_IS_RELAXABLE          0x200
 
   /* This may be set before writing out a BFD to request using a
      traditional format.  For example, this is used to request that when
      writing out an a.out object the symbols not be hashed to eliminate
      duplicates.  */
-#define BFD_TRADITIONAL_FORMAT 0x400
+#define BFD_TRADITIONAL_FORMAT    0x400
 
   /* This flag indicates that the BFD contents are actually cached
      in memory.  If this is set, iostream points to a bfd_in_memory
      struct.  */
-#define BFD_IN_MEMORY 0x800
+#define BFD_IN_MEMORY             0x800
 
   /* This BFD has been created by the linker and doesn't correspond
      to any input file.  */
-#define BFD_LINKER_CREATED 0x1000
+#define BFD_LINKER_CREATED       0x1000
 
   /* This may be set before writing out a BFD to request that it
      be written using values for UIDs, GIDs, timestamps, etc. that
@@ -135,23 +135,23 @@ struct bfd
 #define BFD_DETERMINISTIC_OUTPUT 0x2000
 
   /* Compress sections in this BFD.  */
-#define BFD_COMPRESS 0x4000
+#define BFD_COMPRESS             0x4000
 
   /* Decompress sections in this BFD.  */
-#define BFD_DECOMPRESS 0x8000
+#define BFD_DECOMPRESS           0x8000
 
   /* BFD is a dummy, for plugins.  */
-#define BFD_PLUGIN 0x10000
+#define BFD_PLUGIN              0x10000
 
   /* Compress sections in this BFD with SHF_COMPRESSED from gABI.  */
-#define BFD_COMPRESS_GABI 0x20000
+#define BFD_COMPRESS_GABI       0x20000
 
   /* Convert ELF common symbol type to STT_COMMON or STT_OBJECT in this
      BFD.  */
-#define BFD_CONVERT_ELF_COMMON 0x40000
+#define BFD_CONVERT_ELF_COMMON  0x40000
 
   /* Use the ELF STT_COMMON type in this BFD.  */
-#define BFD_USE_ELF_STT_COMMON 0x80000
+#define BFD_USE_ELF_STT_COMMON  0x80000
 
   /* Flags bits to be saved in bfd_preserve_save.  */
 #define BFD_FLAGS_SAVED \
@@ -398,13 +398,24 @@ Return the current BFD error condition.
 @subsubsection @code{bfd_set_error}
 @strong{Synopsis}
 @example
-void bfd_set_error (bfd_error_type error_tag, ...);
+void bfd_set_error (bfd_error_type error_tag);
 @end example
 @strong{Description}@*
 Set the BFD error condition to be @var{error_tag}.
-If @var{error_tag} is bfd_error_on_input, then this function
-takes two more parameters, the input bfd where the error
-occurred, and the bfd_error_type error.
+
+@var{error_tag} must not be bfd_error_on_input.  Use
+bfd_set_input_error for input errors instead.
+
+@findex bfd_set_input_error
+@subsubsection @code{bfd_set_input_error}
+@strong{Synopsis}
+@example
+void bfd_set_input_error (bfd *input, bfd_error_type error_tag);
+@end example
+@strong{Description}@*
+Set the BFD error condition to be bfd_error_on_input.
+@var{input} is the input bfd where the error occurred, and
+@var{error_tag} the bfd_error_type error.
 
 @findex bfd_errmsg
 @subsubsection @code{bfd_errmsg}
@@ -540,6 +551,10 @@ void bfd_set_reloc
 Set the relocation pointer and count within
 section @var{sec} to the values @var{rel} and @var{count}.
 The argument @var{abfd} is ignored.
+@example
+#define bfd_set_reloc(abfd, asect, location, count) \
+       BFD_SEND (abfd, _bfd_set_reloc, (abfd, asect, location, count))
+@end example
 
 @findex bfd_set_file_flags
 @subsubsection @code{bfd_set_file_flags}
@@ -673,8 +688,8 @@ Not enough memory exists to create priva
 @end itemize
 @example
 #define bfd_copy_private_header_data(ibfd, obfd) \
-     BFD_SEND (obfd, _bfd_copy_private_header_data, \
-               (ibfd, obfd))
+       BFD_SEND (obfd, _bfd_copy_private_header_data, \
+                 (ibfd, obfd))
 @end example
 
 @findex bfd_copy_private_bfd_data
@@ -696,8 +711,8 @@ Not enough memory exists to create priva
 @end itemize
 @example
 #define bfd_copy_private_bfd_data(ibfd, obfd) \
-     BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
-               (ibfd, obfd))
+       BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
+                 (ibfd, obfd))
 @end example
 
 @findex bfd_set_private_flags
@@ -719,7 +734,7 @@ Not enough memory exists to create priva
 @end itemize
 @example
 #define bfd_set_private_flags(abfd, flags) \
-     BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
+       BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
 @end example
 
 @findex Other functions
@@ -735,7 +750,7 @@ The following functions exist but have n
                  (abfd, syms, sec, off, file, func, line, NULL))
 
 #define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \
-                                            line, disc) \
+                                           line, disc) \
        BFD_SEND (abfd, _bfd_find_nearest_line, \
                  (abfd, syms, sec, off, file, func, line, disc))
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/bfdver.texi ./bfd/doc/bfdver.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/bfdver.texi	2018-01-02 02:04:53.000000000 +0000
+++ ./bfd/doc/bfdver.texi	2018-01-09 02:06:19.000000000 +0000
@@ -1,4 +1,4 @@
-@set VERSION 2.28.51
+@set VERSION 2.29.51
 @set VERSION_PACKAGE (GNU Binutils) 
 @set UPDATED January 2018
 @set BUGURL @uref{http://www.sourceware.org/bugzilla/}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/chew.c ./bfd/doc/chew.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/chew.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/doc/chew.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* chew
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Contributed by steve chamberlain @cygnus
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/coffcode.texi ./bfd/doc/coffcode.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/coffcode.texi	2018-01-02 02:04:53.000000000 +0000
+++ ./bfd/doc/coffcode.texi	2018-01-09 02:06:19.000000000 +0000
@@ -438,19 +438,19 @@ typedef struct
 
   bfd_boolean (*_bfd_coff_pointerize_aux_hook)
     (bfd *, combined_entry_type *, combined_entry_type *,
-            unsigned int, combined_entry_type *);
+     unsigned int, combined_entry_type *);
 
   bfd_boolean (*_bfd_coff_print_aux)
     (bfd *, FILE *, combined_entry_type *, combined_entry_type *,
-            combined_entry_type *, unsigned int);
+     combined_entry_type *, unsigned int);
 
   void (*_bfd_coff_reloc16_extra_cases)
     (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
-           bfd_byte *, unsigned int *, unsigned int *);
+     bfd_byte *, unsigned int *, unsigned int *);
 
   int (*_bfd_coff_reloc16_estimate)
     (bfd *, asection *, arelent *, unsigned int,
-            struct bfd_link_info *);
+     struct bfd_link_info *);
 
   enum coff_symbol_classification (*_bfd_coff_classify_symbol)
     (bfd *, struct internal_syment *);
@@ -463,21 +463,20 @@ typedef struct
 
   bfd_boolean (*_bfd_coff_relocate_section)
     (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
-            struct internal_reloc *, struct internal_syment *, asection **);
+     struct internal_reloc *, struct internal_syment *, asection **);
 
   reloc_howto_type *(*_bfd_coff_rtype_to_howto)
     (bfd *, asection *, struct internal_reloc *,
-            struct coff_link_hash_entry *, struct internal_syment *,
-            bfd_vma *);
+     struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *);
 
   bfd_boolean (*_bfd_coff_adjust_symndx)
     (bfd *, struct bfd_link_info *, bfd *, asection *,
-            struct internal_reloc *, bfd_boolean *);
+     struct internal_reloc *, bfd_boolean *);
 
   bfd_boolean (*_bfd_coff_link_add_one_symbol)
     (struct bfd_link_info *, bfd *, const char *, flagword,
-            asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
-            struct bfd_link_hash_entry **);
+     asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
+     struct bfd_link_hash_entry **);
 
   bfd_boolean (*_bfd_coff_link_output_has_begun)
     (bfd *, struct coff_final_link_info *);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/hash.texi ./bfd/doc/hash.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/hash.texi	2018-01-02 02:04:53.000000000 +0000
+++ ./bfd/doc/hash.texi	2018-01-09 02:06:19.000000000 +0000
@@ -199,7 +199,7 @@ struct bfd_hash_entry *
 
  /* Call the allocation method of the base class.  */
   ret = ((@var{entry_type} *)
-        @var{base_newfunc} ((struct bfd_hash_entry *) ret, table, string));
+         @var{base_newfunc} ((struct bfd_hash_entry *) ret, table, string));
 
  /* Initialize the local fields here.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/header.sed ./bfd/doc/header.sed
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/header.sed	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/doc/header.sed	2018-01-09 02:04:54.000000000 +0000
@@ -6,7 +6,7 @@ s| |", "|g
 s|$|"|
 s|, \([^ ]*\)$| and \1|
 s|^|/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically generated from |
-s|\(.\{60\}[^ ]* \)|\1\
+s|\(.\{60\}[^ ]*\) |\1\
    |g
 s|$|.\
    Run "make headers" in your build bfd/ to regenerate.  */\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/libbfd.texi ./bfd/doc/libbfd.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/libbfd.texi	2018-01-02 02:04:53.000000000 +0000
+++ ./bfd/doc/libbfd.texi	2018-01-09 02:06:19.000000000 +0000
@@ -90,9 +90,9 @@ To detect calling these with less than a
 
 #define bfd_put(bits, abfd, val, ptr)                  \
   ((bits) == 8 ? bfd_put_8  (abfd, val, ptr)           \
-   : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)                \
-   : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)                \
-   : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)                \
+   : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)        \
+   : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)        \
+   : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)        \
    : (abort (), (void) 0))
 
 @end example
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/linker.texi ./bfd/doc/linker.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/linker.texi	2018-01-02 02:04:53.000000000 +0000
+++ ./bfd/doc/linker.texi	2018-01-09 02:06:19.000000000 +0000
@@ -393,6 +393,23 @@ Return TRUE on success and FALSE on fail
 
 @end example
 
+@findex bfd_generic_define_start_stop
+@subsubsection @code{bfd_generic_define_start_stop}
+@strong{Synopsis}
+@example
+struct bfd_link_hash_entry *bfd_generic_define_start_stop
+   (struct bfd_link_info *info,
+    const char *symbol, asection *sec);
+@end example
+@strong{Description}@*
+Define a __start, __stop, .startof. or .sizeof. symbol.
+Return the symbol or NULL if no such undefined symbol exists.
+@example
+#define bfd_define_start_stop(output_bfd, info, symbol, sec) \
+       BFD_SEND (output_bfd, _bfd_define_start_stop, (info, symbol, sec))
+
+@end example
+
 @findex bfd_find_version_for_sym
 @subsubsection @code{bfd_find_version_for_sym}
 @strong{Synopsis}
@@ -464,8 +481,8 @@ Not enough memory exists to create priva
 @end itemize
 @example
 #define bfd_merge_private_bfd_data(ibfd, info) \
-     BFD_SEND ((info)->output_bfd, _bfd_merge_private_bfd_data, \
-               (ibfd, info))
+       BFD_SEND ((info)->output_bfd, _bfd_merge_private_bfd_data, \
+                 (ibfd, info))
 @end example
 
 @findex _bfd_generic_verify_endian_match
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/Makefile.am ./bfd/doc/Makefile.am
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/Makefile.am	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/doc/Makefile.am	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 ## Process this file with automake to generate Makefile.in
 #
-#   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/Makefile.in ./bfd/doc/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/Makefile.in	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/doc/Makefile.in	2018-01-09 02:04:54.000000000 +0000
@@ -16,7 +16,7 @@
 @SET_MAKE@
 
 #
-#   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/makefile.vms ./bfd/doc/makefile.vms
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/makefile.vms	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/doc/makefile.vms	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/reloc.texi ./bfd/doc/reloc.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/reloc.texi	2018-01-02 02:04:53.000000000 +0000
+++ ./bfd/doc/reloc.texi	2018-01-09 02:06:19.000000000 +0000
@@ -27,8 +27,9 @@ This is the structure of a relocation en
 
 typedef enum bfd_reloc_status
 @{
-  /* No errors detected.  */
-  bfd_reloc_ok,
+  /* No errors detected.  Note - the value 2 is used so that it
+     will not be mistaken for the boolean TRUE or FALSE values.  */
+  bfd_reloc_ok = 2,
 
   /* The relocation was performed, but there was an overflow.  */
   bfd_reloc_overflow,
@@ -375,19 +376,19 @@ This is used to fill in an empty howto e
 @strong{Description}@*
 Helper routine to turn a symbol into a relocation value.
 @example
-#define HOWTO_PREPARE(relocation, symbol)               \
-  @{                                                     \
-    if (symbol != NULL)                                 \
-      @{                                                 \
-        if (bfd_is_com_section (symbol->section))       \
-          @{                                             \
-            relocation = 0;                             \
-          @}                                             \
-        else                                            \
-          @{                                             \
-            relocation = symbol->value;                 \
-          @}                                             \
-      @}                                                 \
+#define HOWTO_PREPARE(relocation, symbol)              \
+  @{                                                    \
+    if (symbol != NULL)                                \
+      @{                                                \
+        if (bfd_is_com_section (symbol->section))      \
+          @{                                            \
+            relocation = 0;                            \
+          @}                                            \
+        else                                           \
+          @{                                            \
+            relocation = symbol->value;                \
+          @}                                            \
+      @}                                                \
   @}
 
 @end example
@@ -434,6 +435,20 @@ Perform overflow checking on @var{reloca
 @var{addrsize} significant bits.  The result is either of
 @code{bfd_reloc_ok} or @code{bfd_reloc_overflow}.
 
+@findex bfd_reloc_offset_in_range
+@subsubsection @code{bfd_reloc_offset_in_range}
+@strong{Synopsis}
+@example
+bfd_boolean bfd_reloc_offset_in_range
+   (reloc_howto_type *howto,
+    bfd *abfd,
+    asection *section,
+    bfd_size_type offset);
+@end example
+@strong{Description}@*
+Returns TRUE if the reloc described by @var{HOWTO} can be
+applied at @var{OFFSET} octets in @var{SECTION}.
+
 @findex bfd_perform_relocation
 @subsubsection @code{bfd_perform_relocation}
 @strong{Synopsis}
@@ -968,6 +983,11 @@ Moxie ELF relocations.
 @deffnx {} BFD_RELOC_FT32_20
 @deffnx {} BFD_RELOC_FT32_17
 @deffnx {} BFD_RELOC_FT32_18
+@deffnx {} BFD_RELOC_FT32_RELAX
+@deffnx {} BFD_RELOC_FT32_SC0
+@deffnx {} BFD_RELOC_FT32_SC1
+@deffnx {} BFD_RELOC_FT32_15
+@deffnx {} BFD_RELOC_FT32_DIFF32
 FT32 ELF relocations.
 @end deffn
 @deffn {} BFD_RELOC_FRV_LABEL16
@@ -1617,6 +1637,7 @@ Renesas / SuperH SH relocs.  Not all of 
 @deffnx {} BFD_RELOC_ARC_S25W_PCREL_PLT
 @deffnx {} BFD_RELOC_ARC_S21H_PCREL_PLT
 @deffnx {} BFD_RELOC_ARC_NPS_CMEM16
+@deffnx {} BFD_RELOC_ARC_JLI_SECTOFF
 ARC relocs.
 @end deffn
 @deffn {} BFD_RELOC_BFIN_16_IMM
@@ -2588,6 +2609,7 @@ number for the SBIC, SBIS, SBI and CBI i
 @deffnx {} BFD_RELOC_RISCV_SET8
 @deffnx {} BFD_RELOC_RISCV_SET16
 @deffnx {} BFD_RELOC_RISCV_SET32
+@deffnx {} BFD_RELOC_RISCV_32_PCREL
 RISC-V relocations.
 @end deffn
 @deffn {} BFD_RELOC_RL78_NEG8
@@ -3832,12 +3854,12 @@ conjunction with BFD_RELOC_AARCH64_LD64_
 @deffn {} BFD_RELOC_AARCH64_LD64_GOT_LO12_NC
 Unsigned 12 bit byte offset for 64 bit load/store from the page of
 the GOT entry for this symbol.  Used in conjunction with
-BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in LP64 ABI only.
+BFD_RELOC_AARCH64_ADR_GOT_PAGE.  Valid in LP64 ABI only.
 @end deffn
 @deffn {} BFD_RELOC_AARCH64_LD32_GOT_LO12_NC
 Unsigned 12 bit byte offset for 32 bit load/store from the page of
 the GOT entry for this symbol.  Used in conjunction with
-BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in ILP32 ABI only.
+BFD_RELOC_AARCH64_ADR_GOT_PAGE.  Valid in ILP32 ABI only.
 @end deffn
 @deffn {} BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC
 Unsigned 16 bit byte offset for 64 bit load/store from the GOT entry
@@ -4415,3 +4437,30 @@ bfd_byte *bfd_generic_get_relocated_sect
 Provides default handling of relocation effort for back ends
 which can't be bothered to do it efficiently.
 
+@findex _bfd_generic_set_reloc
+@subsubsection @code{_bfd_generic_set_reloc}
+@strong{Synopsis}
+@example
+void _bfd_generic_set_reloc
+   (bfd *abfd,
+    sec_ptr section,
+    arelent **relptr,
+    unsigned int count);
+@end example
+@strong{Description}@*
+Installs a new set of internal relocations in SECTION.
+
+@findex _bfd_unrecognized_reloc
+@subsubsection @code{_bfd_unrecognized_reloc}
+@strong{Synopsis}
+@example
+bfd_boolean _bfd_unrecognized_reloc
+   (bfd * abfd,
+    sec_ptr section,
+    unsigned int r_type);
+@end example
+@strong{Description}@*
+Reports an unrecognized reloc.
+Written as a function in order to reduce code duplication.
+Returns FALSE so that it can be called from a return statement.
+
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/section.texi ./bfd/doc/section.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/section.texi	2018-01-02 02:04:53.000000000 +0000
+++ ./bfd/doc/section.texi	2018-01-09 02:06:19.000000000 +0000
@@ -130,31 +130,31 @@ typedef struct bfd_section
      synthesized from other information.  */
   flagword flags;
 
-#define SEC_NO_FLAGS   0x000
+#define SEC_NO_FLAGS                      0x0
 
   /* Tells the OS to allocate space for this section when loading.
      This is clear for a section containing debug information only.  */
-#define SEC_ALLOC      0x001
+#define SEC_ALLOC                         0x1
 
   /* Tells the OS to load the section from the file when loading.
      This is clear for a .bss section.  */
-#define SEC_LOAD       0x002
+#define SEC_LOAD                          0x2
 
   /* The section contains data still to be relocated, so there is
      some relocation information too.  */
-#define SEC_RELOC      0x004
+#define SEC_RELOC                         0x4
 
   /* A signal to the OS that the section contains read only data.  */
-#define SEC_READONLY   0x008
+#define SEC_READONLY                      0x8
 
   /* The section contains code only.  */
-#define SEC_CODE       0x010
+#define SEC_CODE                         0x10
 
   /* The section contains data only.  */
-#define SEC_DATA       0x020
+#define SEC_DATA                         0x20
 
   /* The section will reside in ROM.  */
-#define SEC_ROM        0x040
+#define SEC_ROM                          0x40
 
   /* The section contains constructor information. This section
      type is used by the linker to create lists of constructors and
@@ -166,19 +166,19 @@ typedef struct bfd_section
      sections called @code{__CTOR_LIST__} and relocate the data
      contained within - exactly the operations it would peform on
      standard data.  */
-#define SEC_CONSTRUCTOR 0x080
+#define SEC_CONSTRUCTOR                  0x80
 
   /* The section has contents - a data section could be
      @code{SEC_ALLOC} | @code{SEC_HAS_CONTENTS}; a debug section could be
      @code{SEC_HAS_CONTENTS}  */
-#define SEC_HAS_CONTENTS 0x100
+#define SEC_HAS_CONTENTS                0x100
 
   /* An instruction to the linker to not output the section
      even if it has information which would normally be written.  */
-#define SEC_NEVER_LOAD 0x200
+#define SEC_NEVER_LOAD                  0x200
 
   /* The section contains thread local data.  */
-#define SEC_THREAD_LOCAL 0x400
+#define SEC_THREAD_LOCAL                0x400
 
   /* The section has GOT references.  This flag is only for the
      linker, and is currently only used by the elf32-hppa back end.
@@ -186,55 +186,55 @@ typedef struct bfd_section
      in this section, which indicate to the linker that the section
      contains PIC code, and must be handled specially when doing a
      static link.  */
-#define SEC_HAS_GOT_REF 0x800
+#define SEC_HAS_GOT_REF                 0x800
 
   /* The section contains common symbols (symbols may be defined
      multiple times, the value of a symbol is the amount of
      space it requires, and the largest symbol value is the one
      used).  Most targets have exactly one of these (which we
      translate to bfd_com_section_ptr), but ECOFF has two.  */
-#define SEC_IS_COMMON 0x1000
+#define SEC_IS_COMMON                  0x1000
 
   /* The section contains only debugging information.  For
      example, this is set for ELF .debug and .stab sections.
      strip tests this flag to see if a section can be
      discarded.  */
-#define SEC_DEBUGGING 0x2000
+#define SEC_DEBUGGING                  0x2000
 
   /* The contents of this section are held in memory pointed to
      by the contents field.  This is checked by bfd_get_section_contents,
      and the data is retrieved from memory if appropriate.  */
-#define SEC_IN_MEMORY 0x4000
+#define SEC_IN_MEMORY                  0x4000
 
   /* The contents of this section are to be excluded by the
      linker for executable and shared objects unless those
      objects are to be further relocated.  */
-#define SEC_EXCLUDE 0x8000
+#define SEC_EXCLUDE                    0x8000
 
   /* The contents of this section are to be sorted based on the sum of
      the symbol and addend values specified by the associated relocation
      entries.  Entries without associated relocation entries will be
      appended to the end of the section in an unspecified order.  */
-#define SEC_SORT_ENTRIES 0x10000
+#define SEC_SORT_ENTRIES              0x10000
 
   /* When linking, duplicate sections of the same name should be
      discarded, rather than being combined into a single section as
      is usually done.  This is similar to how common symbols are
      handled.  See SEC_LINK_DUPLICATES below.  */
-#define SEC_LINK_ONCE 0x20000
+#define SEC_LINK_ONCE                 0x20000
 
   /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
      should handle duplicate sections.  */
-#define SEC_LINK_DUPLICATES 0xc0000
+#define SEC_LINK_DUPLICATES           0xc0000
 
   /* This value for SEC_LINK_DUPLICATES means that duplicate
      sections with the same name should simply be discarded.  */
-#define SEC_LINK_DUPLICATES_DISCARD 0x0
+#define SEC_LINK_DUPLICATES_DISCARD       0x0
 
   /* This value for SEC_LINK_DUPLICATES means that the linker
      should warn if there are any duplicate sections, although
      it should still only link one copy.  */
-#define SEC_LINK_DUPLICATES_ONE_ONLY 0x40000
+#define SEC_LINK_DUPLICATES_ONE_ONLY  0x40000
 
   /* This value for SEC_LINK_DUPLICATES means that the linker
      should warn if any duplicate sections are a different size.  */
@@ -250,28 +250,28 @@ typedef struct bfd_section
      relocation or other arcane processing.  It is skipped when
      going through the first-pass output, trusting that someone
      else up the line will take care of it later.  */
-#define SEC_LINKER_CREATED 0x100000
+#define SEC_LINKER_CREATED           0x100000
 
   /* This section should not be subject to garbage collection.
      Also set to inform the linker that this section should not be
      listed in the link map as discarded.  */
-#define SEC_KEEP 0x200000
+#define SEC_KEEP                     0x200000
 
   /* This section contains "short" data, and should be placed
      "near" the GP.  */
-#define SEC_SMALL_DATA 0x400000
+#define SEC_SMALL_DATA               0x400000
 
   /* Attempt to merge identical entities in the section.
      Entity size is given in the entsize field.  */
-#define SEC_MERGE 0x800000
+#define SEC_MERGE                    0x800000
 
   /* If given with SEC_MERGE, entities to merge are zero terminated
      strings where entsize specifies character size instead of fixed
      size entries.  */
-#define SEC_STRINGS 0x1000000
+#define SEC_STRINGS                 0x1000000
 
   /* This section contains data about section groups.  */
-#define SEC_GROUP 0x2000000
+#define SEC_GROUP                   0x2000000
 
   /* The section is a COFF shared library section.  This flag is
      only for the linker.  If this type of section appears in
@@ -282,46 +282,46 @@ typedef struct bfd_section
      might be cleaner to have some more general mechanism to
      allow the back end to control what the linker does with
      sections.  */
-#define SEC_COFF_SHARED_LIBRARY 0x4000000
+#define SEC_COFF_SHARED_LIBRARY     0x4000000
 
   /* This input section should be copied to output in reverse order
      as an array of pointers.  This is for ELF linker internal use
      only.  */
-#define SEC_ELF_REVERSE_COPY 0x4000000
+#define SEC_ELF_REVERSE_COPY        0x4000000
 
   /* This section contains data which may be shared with other
      executables or shared objects. This is for COFF only.  */
-#define SEC_COFF_SHARED 0x8000000
+#define SEC_COFF_SHARED             0x8000000
 
   /* This section should be compressed.  This is for ELF linker
      internal use only.  */
-#define SEC_ELF_COMPRESS 0x8000000
+#define SEC_ELF_COMPRESS            0x8000000
 
   /* When a section with this flag is being linked, then if the size of
      the input section is less than a page, it should not cross a page
      boundary.  If the size of the input section is one page or more,
      it should be aligned on a page boundary.  This is for TI
      TMS320C54X only.  */
-#define SEC_TIC54X_BLOCK 0x10000000
+#define SEC_TIC54X_BLOCK           0x10000000
 
   /* This section should be renamed.  This is for ELF linker
      internal use only.  */
-#define SEC_ELF_RENAME 0x10000000
+#define SEC_ELF_RENAME             0x10000000
 
   /* Conditionally link this section; do not link if there are no
      references found to any symbol in the section.  This is for TI
      TMS320C54X only.  */
-#define SEC_TIC54X_CLINK 0x20000000
+#define SEC_TIC54X_CLINK           0x20000000
 
   /* This section contains vliw code.  This is for Toshiba MeP only.  */
-#define SEC_MEP_VLIW 0x20000000
+#define SEC_MEP_VLIW               0x20000000
 
   /* Indicate that section has the no read flag set. This happens
      when memory read flag isn't set. */
-#define SEC_COFF_NOREAD 0x40000000
+#define SEC_COFF_NOREAD            0x40000000
 
   /* Indicate that section has the purecode flag set.  */
-#define SEC_ELF_PURECODE 0x80000000
+#define SEC_ELF_PURECODE           0x80000000
 
   /*  End of section flags.  */
 
@@ -519,7 +519,8 @@ struct relax_table @{
    would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
    compilers will complain about comma expressions that have no effect.  */
 static inline bfd_boolean
-bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val)
+bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
+                          void * val)
 @{
   ptr->userdata = val;
   return TRUE;
@@ -534,7 +535,8 @@ bfd_set_section_vma (bfd * abfd ATTRIBUT
 @}
 
 static inline bfd_boolean
-bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val)
+bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
+                           unsigned int val)
 @{
   ptr->alignment_power = val;
   return TRUE;
@@ -697,6 +699,18 @@ extern asection _bfd_std_section[4];
      @{ NULL @}, @{ NULL @}                                                \
     @}
 
+/* We use a macro to initialize the static asymbol structures because
+   traditional C does not permit us to initialize a union member while
+   gcc warns if we don't initialize it.
+   the_bfd, name, value, attr, section [, udata]  */
+#ifdef __STDC__
+#define GLOBAL_SYM_INIT(NAME, SECTION) \
+  @{ 0, NAME, 0, BSF_SECTION_SYM, SECTION, @{ 0 @}@}
+#else
+#define GLOBAL_SYM_INIT(NAME, SECTION) \
+  @{ 0, NAME, 0, BSF_SECTION_SYM, SECTION @}
+#endif
+
 @end example
 
 @node section prototypes,  , typedef asection, Sections
@@ -1064,8 +1078,8 @@ Not enough memory exists to create priva
 @end itemize
 @example
 #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
-     BFD_SEND (obfd, _bfd_copy_private_section_data, \
-               (ibfd, isection, obfd, osection))
+       BFD_SEND (obfd, _bfd_copy_private_section_data, \
+                 (ibfd, isection, obfd, osection))
 @end example
 
 @findex bfd_generic_is_group_section
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/syms.texi ./bfd/doc/syms.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/syms.texi	2018-01-02 02:04:53.000000000 +0000
+++ ./bfd/doc/syms.texi	2018-01-09 02:06:19.000000000 +0000
@@ -163,98 +163,98 @@ typedef struct bfd_symbol
   symvalue value;
 
   /* Attributes of a symbol.  */
-#define BSF_NO_FLAGS           0x00
+#define BSF_NO_FLAGS            0
 
   /* The symbol has local scope; @code{static} in @code{C}. The value
      is the offset into the section of the data.  */
-#define BSF_LOCAL              (1 << 0)
+#define BSF_LOCAL               (1 << 0)
 
   /* The symbol has global scope; initialized data in @code{C}. The
      value is the offset into the section of the data.  */
-#define BSF_GLOBAL             (1 << 1)
+#define BSF_GLOBAL              (1 << 1)
 
   /* The symbol has global scope and is exported. The value is
      the offset into the section of the data.  */
-#define BSF_EXPORT     BSF_GLOBAL /* No real difference.  */
+#define BSF_EXPORT              BSF_GLOBAL /* No real difference.  */
 
   /* A normal C symbol would be one of:
      @code{BSF_LOCAL}, @code{BSF_UNDEFINED} or @code{BSF_GLOBAL}.  */
 
   /* The symbol is a debugging record. The value has an arbitrary
      meaning, unless BSF_DEBUGGING_RELOC is also set.  */
-#define BSF_DEBUGGING          (1 << 2)
+#define BSF_DEBUGGING           (1 << 2)
 
   /* The symbol denotes a function entry point.  Used in ELF,
      perhaps others someday.  */
-#define BSF_FUNCTION           (1 << 3)
+#define BSF_FUNCTION            (1 << 3)
 
   /* Used by the linker.  */
-#define BSF_KEEP               (1 << 5)
+#define BSF_KEEP                (1 << 5)
 
   /* An ELF common symbol.  */
-#define BSF_ELF_COMMON         (1 << 6)
+#define BSF_ELF_COMMON          (1 << 6)
 
   /* A weak global symbol, overridable without warnings by
      a regular global symbol of the same name.  */
-#define BSF_WEAK               (1 << 7)
+#define BSF_WEAK                (1 << 7)
 
   /* This symbol was created to point to a section, e.g. ELF's
      STT_SECTION symbols.  */
-#define BSF_SECTION_SYM        (1 << 8)
+#define BSF_SECTION_SYM         (1 << 8)
 
   /* The symbol used to be a common symbol, but now it is
      allocated.  */
-#define BSF_OLD_COMMON         (1 << 9)
+#define BSF_OLD_COMMON          (1 << 9)
 
   /* In some files the type of a symbol sometimes alters its
      location in an output file - ie in coff a @code{ISFCN} symbol
      which is also @code{C_EXT} symbol appears where it was
      declared and not at the end of a section.  This bit is set
      by the target BFD part to convey this information.  */
-#define BSF_NOT_AT_END         (1 << 10)
+#define BSF_NOT_AT_END          (1 << 10)
 
   /* Signal that the symbol is the label of constructor section.  */
-#define BSF_CONSTRUCTOR        (1 << 11)
+#define BSF_CONSTRUCTOR         (1 << 11)
 
   /* Signal that the symbol is a warning symbol.  The name is a
      warning.  The name of the next symbol is the one to warn about;
      if a reference is made to a symbol with the same name as the next
      symbol, a warning is issued by the linker.  */
-#define BSF_WARNING            (1 << 12)
+#define BSF_WARNING             (1 << 12)
 
   /* Signal that the symbol is indirect.  This symbol is an indirect
      pointer to the symbol with the same name as the next symbol.  */
-#define BSF_INDIRECT           (1 << 13)
+#define BSF_INDIRECT            (1 << 13)
 
   /* BSF_FILE marks symbols that contain a file name.  This is used
      for ELF STT_FILE symbols.  */
-#define BSF_FILE               (1 << 14)
+#define BSF_FILE                (1 << 14)
 
   /* Symbol is from dynamic linking information.  */
-#define BSF_DYNAMIC            (1 << 15)
+#define BSF_DYNAMIC             (1 << 15)
 
   /* The symbol denotes a data object.  Used in ELF, and perhaps
      others someday.  */
-#define BSF_OBJECT             (1 << 16)
+#define BSF_OBJECT              (1 << 16)
 
   /* This symbol is a debugging symbol.  The value is the offset
      into the section of the data.  BSF_DEBUGGING should be set
      as well.  */
-#define BSF_DEBUGGING_RELOC    (1 << 17)
+#define BSF_DEBUGGING_RELOC     (1 << 17)
 
   /* This symbol is thread local.  Used in ELF.  */
-#define BSF_THREAD_LOCAL       (1 << 18)
+#define BSF_THREAD_LOCAL        (1 << 18)
 
   /* This symbol represents a complex relocation expression,
      with the expression tree serialized in the symbol name.  */
-#define BSF_RELC               (1 << 19)
+#define BSF_RELC                (1 << 19)
 
   /* This symbol represents a signed complex relocation expression,
      with the expression tree serialized in the symbol name.  */
-#define BSF_SRELC              (1 << 20)
+#define BSF_SRELC               (1 << 20)
 
   /* This symbol was created by bfd_get_synthetic_symtab.  */
-#define BSF_SYNTHETIC          (1 << 21)
+#define BSF_SYNTHETIC           (1 << 21)
 
   /* This symbol is an indirect code object.  Unrelated to BSF_INDIRECT.
      The dynamic linker will compute the value of this symbol by
@@ -264,7 +264,7 @@ typedef struct bfd_symbol
   /* This symbol is a globally unique data object.  The dynamic linker
      will make sure that in the entire process there is just one symbol
      with this name and type in use.  BSF_OBJECT must also be set.  */
-#define BSF_GNU_UNIQUE         (1 << 23)
+#define BSF_GNU_UNIQUE          (1 << 23)
 
   flagword flags;
 
@@ -298,7 +298,7 @@ including a terminal NULL pointer. If th
 the BFD, then return 0.  If an error occurs, return -1.
 @example
 #define bfd_get_symtab_upper_bound(abfd) \
-     BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
+       BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
 
 @end example
 
@@ -325,7 +325,7 @@ FALSE.  This just checks whether the nam
 local label.
 @example
 #define bfd_is_local_label_name(abfd, name) \
-  BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
+       BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
 
 @end example
 
@@ -341,7 +341,7 @@ special to the particular target represe
 should normally not be mentioned to the user.
 @example
 #define bfd_is_target_special_symbol(abfd, sym) \
-  BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
+       BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
 
 @end example
 
@@ -355,7 +355,7 @@ Return the actual number of symbol point
 including the NULL.
 @example
 #define bfd_canonicalize_symtab(abfd, location) \
-  BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
+       BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
 
 @end example
 
@@ -393,7 +393,7 @@ information surrounding the @code{asymbo
 information, and will cause problems later on.
 @example
 #define bfd_make_empty_symbol(abfd) \
-  BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
+       BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
 
 @end example
 
@@ -417,7 +417,7 @@ to be used as a debugging symbol.  Furth
 yet to be worked out.
 @example
 #define bfd_make_debug_symbol(abfd,ptr,size) \
-  BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
+       BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
 
 @end example
 
@@ -474,8 +474,8 @@ Not enough memory exists to create priva
 @end itemize
 @example
 #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
-  BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
-            (ibfd, isymbol, obfd, osymbol))
+       BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
+                 (ibfd, isymbol, obfd, osymbol))
 
 @end example
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/targets.texi ./bfd/doc/targets.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/doc/targets.texi	2018-01-02 02:04:53.000000000 +0000
+++ ./bfd/doc/targets.texi	2018-01-09 02:06:19.000000000 +0000
@@ -214,7 +214,8 @@ typedef struct bfd_target
      within the target vector structure, one for each format to check.  */
 
   /* Check the format of a file being read.  Return a @code{bfd_target *} or zero.  */
-  const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
+  const struct bfd_target *
+              (*_bfd_check_format[bfd_type_end]) (bfd *);
 
   /* Set the format of a file being written.  */
   bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
@@ -242,10 +243,11 @@ BFD_JUMP_TABLE macros.
   /* Called when a new section is created.  */
   bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
   /* Read the contents of a section.  */
-  bfd_boolean (*_bfd_get_section_contents)
-    (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
-  bfd_boolean (*_bfd_get_section_contents_in_window)
-    (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
+  bfd_boolean (*_bfd_get_section_contents) (bfd *, sec_ptr, void *, file_ptr,
+                                            bfd_size_type);
+  bfd_boolean (*_bfd_get_section_contents_in_window) (bfd *, sec_ptr,
+                                                      bfd_window *, file_ptr,
+                                                      bfd_size_type);
 
   /* Entry points to copy private data.  */
 #define BFD_JUMP_TABLE_COPY(NAME) \
@@ -267,21 +269,22 @@ BFD_JUMP_TABLE macros.
   /* Called to initialize BFD private section data from one object file
      to another.  */
 #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
-  BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
-  bfd_boolean (*_bfd_init_private_section_data)
-    (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
+       BFD_SEND (obfd, _bfd_init_private_section_data, \
+                 (ibfd, isec, obfd, osec, link_info))
+  bfd_boolean (*_bfd_init_private_section_data) (bfd *, sec_ptr, bfd *,
+                                                 sec_ptr,
+                                                 struct bfd_link_info *);
   /* Called to copy BFD private section data from one object file
      to another.  */
-  bfd_boolean (*_bfd_copy_private_section_data)
-    (bfd *, sec_ptr, bfd *, sec_ptr);
+  bfd_boolean (*_bfd_copy_private_section_data) (bfd *, sec_ptr, bfd *,
+                                                 sec_ptr);
   /* Called to copy BFD private symbol data from one symbol
      to another.  */
-  bfd_boolean (*_bfd_copy_private_symbol_data)
-    (bfd *, asymbol *, bfd *, asymbol *);
+  bfd_boolean (*_bfd_copy_private_symbol_data) (bfd *, asymbol *, bfd *,
+                                                asymbol *);
   /* Called to copy BFD private header data from one object file
      to another.  */
-  bfd_boolean (*_bfd_copy_private_header_data)
-    (bfd *, bfd *);
+  bfd_boolean (*_bfd_copy_private_header_data) (bfd *, bfd *);
   /* Called to set private backend flags.  */
   bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
 
@@ -316,15 +319,17 @@ BFD_JUMP_TABLE macros.
 
   bfd_boolean (*_bfd_slurp_armap) (bfd *);
   bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
-  bfd_boolean (*_bfd_construct_extended_name_table)
-    (bfd *, char **, bfd_size_type *, const char **);
+  bfd_boolean (*_bfd_construct_extended_name_table) (bfd *, char **,
+                                                     bfd_size_type *,
+                                                     const char **);
   void        (*_bfd_truncate_arname) (bfd *, const char *, char *);
-  bfd_boolean (*write_armap)
-    (bfd *, unsigned int, struct orl *, unsigned int, int);
+  bfd_boolean (*write_armap) (bfd *, unsigned int, struct orl *,
+                              unsigned int, int);
   void *      (*_bfd_read_ar_hdr_fn) (bfd *);
   bfd_boolean (*_bfd_write_ar_hdr_fn) (bfd *, bfd *);
   bfd *       (*openr_next_archived_file) (bfd *, bfd *);
-#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
+#define bfd_get_elt_at_index(b,i) \
+       BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
   bfd *       (*_bfd_get_elt_at_index) (bfd *, symindex);
   int         (*_bfd_stat_arch_elt) (bfd *, struct stat *);
   bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
@@ -348,70 +353,73 @@ BFD_JUMP_TABLE macros.
   NAME##_minisymbol_to_symbol
 
   long        (*_bfd_get_symtab_upper_bound) (bfd *);
-  long        (*_bfd_canonicalize_symtab)
-    (bfd *, struct bfd_symbol **);
+  long        (*_bfd_canonicalize_symtab) (bfd *, struct bfd_symbol **);
   struct bfd_symbol *
               (*_bfd_make_empty_symbol) (bfd *);
-  void        (*_bfd_print_symbol)
-    (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
-#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
-  void        (*_bfd_get_symbol_info)
-    (bfd *, struct bfd_symbol *, symbol_info *);
-#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
-  const char *(*_bfd_get_symbol_version_string)
-    (bfd *, struct bfd_symbol *, bfd_boolean *);
-#define bfd_get_symbol_version_string(b,s,h) BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h))
+  void        (*_bfd_print_symbol) (bfd *, void *, struct bfd_symbol *,
+                                    bfd_print_symbol_type);
+#define bfd_print_symbol(b,p,s,e) \
+       BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
+  void        (*_bfd_get_symbol_info) (bfd *, struct bfd_symbol *,
+                                       symbol_info *);
+#define bfd_get_symbol_info(b,p,e) \
+       BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
+  const char *(*_bfd_get_symbol_version_string) (bfd *, struct bfd_symbol *,
+                                                 bfd_boolean *);
+#define bfd_get_symbol_version_string(b,s,h) \
+       BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h))
   bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
   bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
   alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
-  bfd_boolean (*_bfd_find_nearest_line)
-    (bfd *, struct bfd_symbol **, struct bfd_section *, bfd_vma,
-     const char **, const char **, unsigned int *, unsigned int *);
-  bfd_boolean (*_bfd_find_line)
-    (bfd *, struct bfd_symbol **, struct bfd_symbol *,
-     const char **, unsigned int *);
+  bfd_boolean (*_bfd_find_nearest_line) (bfd *, struct bfd_symbol **,
+                                         struct bfd_section *, bfd_vma,
+                                         const char **, const char **,
+                                         unsigned int *, unsigned int *);
+  bfd_boolean (*_bfd_find_line) (bfd *, struct bfd_symbol **,
+                                 struct bfd_symbol *, const char **,
+                                 unsigned int *);
   bfd_boolean (*_bfd_find_inliner_info)
     (bfd *, const char **, const char **, unsigned int *);
  /* Back-door to allow format-aware applications to create debug symbols
     while using BFD for everything else.  Currently used by the assembler
     when creating COFF files.  */
-  asymbol *   (*_bfd_make_debug_symbol)
-    (bfd *, void *, unsigned long size);
+  asymbol *   (*_bfd_make_debug_symbol) (bfd *, void *, unsigned long size);
 #define bfd_read_minisymbols(b, d, m, s) \
-  BFD_SEND (b, _read_minisymbols, (b, d, m, s))
-  long        (*_read_minisymbols)
-    (bfd *, bfd_boolean, void **, unsigned int *);
+       BFD_SEND (b, _read_minisymbols, (b, d, m, s))
+  long        (*_read_minisymbols) (bfd *, bfd_boolean, void **,
+                                    unsigned int *);
 #define bfd_minisymbol_to_symbol(b, d, m, f) \
-  BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
-  asymbol *   (*_minisymbol_to_symbol)
-    (bfd *, bfd_boolean, const void *, asymbol *);
+       BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
+  asymbol *   (*_minisymbol_to_symbol) (bfd *, bfd_boolean, const void *,
+                                        asymbol *);
 
   /* Routines for relocs.  */
 #define BFD_JUMP_TABLE_RELOCS(NAME) \
   NAME##_get_reloc_upper_bound, \
   NAME##_canonicalize_reloc, \
+  NAME##_set_reloc, \
   NAME##_bfd_reloc_type_lookup, \
   NAME##_bfd_reloc_name_lookup
 
   long        (*_get_reloc_upper_bound) (bfd *, sec_ptr);
-  long        (*_bfd_canonicalize_reloc)
-    (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
+  long        (*_bfd_canonicalize_reloc) (bfd *, sec_ptr, arelent **,
+                                          struct bfd_symbol **);
+  void        (*_bfd_set_reloc) (bfd *, sec_ptr, arelent **, unsigned int);
   /* See documentation on reloc types.  */
   reloc_howto_type *
               (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
   reloc_howto_type *
               (*reloc_name_lookup) (bfd *, const char *);
 
-
   /* Routines used when writing an object file.  */
 #define BFD_JUMP_TABLE_WRITE(NAME) \
   NAME##_set_arch_mach, \
   NAME##_set_section_contents
 
-  bfd_boolean (*_bfd_set_arch_mach)
-    (bfd *, enum bfd_architecture, unsigned long);
-  bfd_boolean (*_bfd_set_section_contents)
-    (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
+  bfd_boolean (*_bfd_set_arch_mach) (bfd *, enum bfd_architecture,
+                                     unsigned long);
+  bfd_boolean (*_bfd_set_section_contents) (bfd *, sec_ptr, const void *,
+                                            file_ptr, bfd_size_type);
 
   /* Routines used by the linker.  */
 #define BFD_JUMP_TABLE_LINK(NAME) \
@@ -431,15 +439,18 @@ BFD_JUMP_TABLE macros.
   NAME##_bfd_is_group_section, \
   NAME##_bfd_discard_group, \
   NAME##_section_already_linked, \
-  NAME##_bfd_define_common_symbol
+  NAME##_bfd_define_common_symbol, \
+  NAME##_bfd_define_start_stop
 
   int         (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
-  bfd_byte *  (*_bfd_get_relocated_section_contents)
-    (bfd *, struct bfd_link_info *, struct bfd_link_order *,
-     bfd_byte *, bfd_boolean, struct bfd_symbol **);
+  bfd_byte *  (*_bfd_get_relocated_section_contents) (bfd *,
+                                                      struct bfd_link_info *,
+                                                      struct bfd_link_order *,
+                                                      bfd_byte *, bfd_boolean,
+                                                      struct bfd_symbol **);
 
-  bfd_boolean (*_bfd_relax_section)
-    (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
+  bfd_boolean (*_bfd_relax_section) (bfd *, struct bfd_section *,
+                                     struct bfd_link_info *, bfd_boolean *);
 
   /* Create a hash table for the linker.  Different backends store
      different information in this table.  */
@@ -455,9 +466,10 @@ BFD_JUMP_TABLE macros.
   /* Copy the symbol type and other attributes for a linker script
      assignment of one symbol to another.  */
 #define bfd_copy_link_hash_symbol_type(b, t, f) \
-  BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
-  void (*_bfd_copy_link_hash_symbol_type)
-    (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *);
+       BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
+  void        (*_bfd_copy_link_hash_symbol_type) (bfd *,
+                                                  struct bfd_link_hash_entry *,
+                                                  struct bfd_link_hash_entry *);
 
   /* Do a link based on the link_order structures attached to each
      section of the BFD.  */
@@ -474,8 +486,7 @@ BFD_JUMP_TABLE macros.
 
   /* Sets the bitmask of allowed and disallowed section flags.  */
   bfd_boolean (*_bfd_lookup_section_flags) (struct bfd_link_info *,
-                                            struct flag_info *,
-                                            asection *);
+                                            struct flag_info *, asection *);
 
   /* Attempt to merge SEC_MERGE sections.  */
   bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
@@ -495,6 +506,11 @@ BFD_JUMP_TABLE macros.
   bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *,
                                             struct bfd_link_hash_entry *);
 
+  /* Define a __start, __stop, .startof. or .sizeof. symbol.  */
+  struct bfd_link_hash_entry *
+              (*_bfd_define_start_stop) (struct bfd_link_info *, const char *,
+                                         asection *);
+
   /* Routines to handle dynamic symbols and relocs.  */
 #define BFD_JUMP_TABLE_DYNAMIC(NAME) \
   NAME##_get_dynamic_symtab_upper_bound, \
@@ -506,17 +522,16 @@ BFD_JUMP_TABLE macros.
   /* Get the amount of memory required to hold the dynamic symbols.  */
   long        (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
   /* Read in the dynamic symbols.  */
-  long        (*_bfd_canonicalize_dynamic_symtab)
-    (bfd *, struct bfd_symbol **);
+  long        (*_bfd_canonicalize_dynamic_symtab) (bfd *, struct bfd_symbol **);
   /* Create synthetized symbols.  */
-  long        (*_bfd_get_synthetic_symtab)
-    (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
-     struct bfd_symbol **);
+  long        (*_bfd_get_synthetic_symtab) (bfd *, long, struct bfd_symbol **,
+                                            long, struct bfd_symbol **,
+                                            struct bfd_symbol **);
   /* Get the amount of memory required to hold the dynamic relocs.  */
   long        (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
   /* Read in the dynamic relocs.  */
-  long        (*_bfd_canonicalize_dynamic_reloc)
-    (bfd *, arelent **, struct bfd_symbol **);
+  long        (*_bfd_canonicalize_dynamic_reloc) (bfd *, arelent **,
+                                                  struct bfd_symbol **);
 
 @end example
 A pointer to an alternative bfd_target in case the current one is not
@@ -526,7 +541,7 @@ endianness.  The function open_output() 
 to find an alternative output format that is suitable.
 @example
   /* Opposite endian version of this target.  */
-  const struct bfd_target * alternative_target;
+  const struct bfd_target *alternative_target;
 
   /* Data for use by back-end routines, which isn't
      generic enough to belong in this structure.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/dwarf1.c ./bfd/dwarf1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/dwarf1.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/dwarf1.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* DWARF 1 find nearest line (_bfd_dwarf1_find_nearest_line).
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Written by Gavin Romig-Koch of Cygnus Solutions (gavin@cygnus.com).
 
@@ -178,10 +178,10 @@ alloc_dwarf1_func (struct dwarf1_debug* 
    Return FALSE if the die is invalidly formatted; TRUE otherwise.  */
 
 static bfd_boolean
-parse_die (bfd *             abfd,
+parse_die (bfd *	     abfd,
 	   struct die_info * aDieInfo,
-	   bfd_byte *        aDiePtr,
-	   bfd_byte *        aDiePtrEnd)
+	   bfd_byte *	     aDiePtr,
+	   bfd_byte *	     aDiePtrEnd)
 {
   bfd_byte *this_die = aDiePtr;
   bfd_byte *xptr = this_die;
@@ -189,11 +189,14 @@ parse_die (bfd *             abfd,
   memset (aDieInfo, 0, sizeof (* aDieInfo));
 
   /* First comes the length.  */
-  aDieInfo->length = bfd_get_32 (abfd, (bfd_byte *) xptr);
+  if (xptr + 4 > aDiePtrEnd)
+    return FALSE;
+  aDieInfo->length = bfd_get_32 (abfd, xptr);
   xptr += 4;
   if (aDieInfo->length == 0
-      || (this_die + aDieInfo->length) >= aDiePtrEnd)
+      || this_die + aDieInfo->length > aDiePtrEnd)
     return FALSE;
+  aDiePtrEnd = this_die + aDieInfo->length;
   if (aDieInfo->length < 6)
     {
       /* Just padding bytes.  */
@@ -202,18 +205,20 @@ parse_die (bfd *             abfd,
     }
 
   /* Then the tag.  */
-  aDieInfo->tag = bfd_get_16 (abfd, (bfd_byte *) xptr);
+  if (xptr + 2 > aDiePtrEnd)
+    return FALSE;
+  aDieInfo->tag = bfd_get_16 (abfd, xptr);
   xptr += 2;
 
   /* Then the attributes.  */
-  while (xptr < (this_die + aDieInfo->length))
+  while (xptr + 2 <= aDiePtrEnd)
     {
       unsigned short attr;
 
       /* Parse the attribute based on its form.  This section
-         must handle all dwarf1 forms, but need only handle the
+	 must handle all dwarf1 forms, but need only handle the
 	 actual attributes that we care about.  */
-      attr = bfd_get_16 (abfd, (bfd_byte *) xptr);
+      attr = bfd_get_16 (abfd, xptr);
       xptr += 2;
 
       switch (FORM_FROM_ATTR (attr))
@@ -223,12 +228,15 @@ parse_die (bfd *             abfd,
 	  break;
 	case FORM_DATA4:
 	case FORM_REF:
-	  if (attr == AT_sibling)
-	    aDieInfo->sibling = bfd_get_32 (abfd, (bfd_byte *) xptr);
-	  else if (attr == AT_stmt_list)
+	  if (xptr + 4 <= aDiePtrEnd)
 	    {
-	      aDieInfo->stmt_list_offset = bfd_get_32 (abfd, (bfd_byte *) xptr);
-	      aDieInfo->has_stmt_list = 1;
+	      if (attr == AT_sibling)
+		aDieInfo->sibling = bfd_get_32 (abfd, xptr);
+	      else if (attr == AT_stmt_list)
+		{
+		  aDieInfo->stmt_list_offset = bfd_get_32 (abfd, xptr);
+		  aDieInfo->has_stmt_list = 1;
+		}
 	    }
 	  xptr += 4;
 	  break;
@@ -236,22 +244,29 @@ parse_die (bfd *             abfd,
 	  xptr += 8;
 	  break;
 	case FORM_ADDR:
-	  if (attr == AT_low_pc)
-	    aDieInfo->low_pc = bfd_get_32 (abfd, (bfd_byte *) xptr);
-	  else if (attr == AT_high_pc)
-	    aDieInfo->high_pc = bfd_get_32 (abfd, (bfd_byte *) xptr);
+	  if (xptr + 4 <= aDiePtrEnd)
+	    {
+	      if (attr == AT_low_pc)
+		aDieInfo->low_pc = bfd_get_32 (abfd, xptr);
+	      else if (attr == AT_high_pc)
+		aDieInfo->high_pc = bfd_get_32 (abfd, xptr);
+	    }
 	  xptr += 4;
 	  break;
 	case FORM_BLOCK2:
-	  xptr += 2 + bfd_get_16 (abfd, (bfd_byte *) xptr);
+	  if (xptr + 2 <= aDiePtrEnd)
+	    xptr += bfd_get_16 (abfd, xptr);
+	  xptr += 2;
 	  break;
 	case FORM_BLOCK4:
-	  xptr += 4 + bfd_get_32 (abfd, (bfd_byte *) xptr);
+	  if (xptr + 4 <= aDiePtrEnd)
+	    xptr += bfd_get_32 (abfd, xptr);
+	  xptr += 4;
 	  break;
 	case FORM_STRING:
 	  if (attr == AT_name)
 	    aDieInfo->name = (char *) xptr;
-	  xptr += strlen ((char *) xptr) + 1;
+	  xptr += strnlen ((char *) xptr, aDiePtrEnd - xptr) + 1;
 	  break;
 	}
     }
@@ -290,7 +305,7 @@ parse_line_table (struct dwarf1_debug* s
     }
 
   xptr = stash->line_section + aUnit->stmt_list_offset;
-  if (xptr < stash->line_section_end)
+  if (xptr + 8 <= stash->line_section_end)
     {
       unsigned long eachLine;
       bfd_byte *tblend;
@@ -312,12 +327,17 @@ parse_line_table (struct dwarf1_debug* s
       /* Allocate an array for the entries.  */
       amt = sizeof (struct linenumber) * aUnit->line_count;
       aUnit->linenumber_table = (struct linenumber *) bfd_alloc (stash->abfd,
-                                                                 amt);
+								 amt);
       if (!aUnit->linenumber_table)
 	return FALSE;
 
       for (eachLine = 0; eachLine < aUnit->line_count; eachLine++)
 	{
+	  if (xptr + 10 > stash->line_section_end)
+	    {
+	      aUnit->line_count = eachLine;
+	      break;
+	    }
 	  /* A line number.  */
 	  aUnit->linenumber_table[eachLine].linenumber
 	    = bfd_get_32 (stash->abfd, (bfd_byte *) xptr);
@@ -348,7 +368,7 @@ parse_functions_in_unit (struct dwarf1_d
 
   if (aUnit->first_child)
     for (eachDie = aUnit->first_child;
- 	 eachDie < stash->debug_section_end;
+	 eachDie < stash->debug_section_end;
 	 )
       {
 	struct die_info eachDieInfo;
@@ -539,9 +559,9 @@ _bfd_dwarf1_find_nearest_line (bfd *abfd
 	     not it's sibling.  */
 	  if (aDieInfo.sibling
 	      && stash->currentDie + aDieInfo.length
-                    < stash->debug_section_end
+		    < stash->debug_section_end
 	      && stash->currentDie + aDieInfo.length
-	            != stash->debug_section + aDieInfo.sibling)
+		    != stash->debug_section + aDieInfo.sibling)
 	    aUnit->first_child = stash->currentDie + aDieInfo.length;
 	  else
 	    aUnit->first_child = 0;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/dwarf2.c ./bfd/dwarf2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/dwarf2.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/dwarf2.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* DWARF 2 support.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    Adapted from gdb/dwarf2read.c by Gavin Koch of Cygnus Solutions
    (gavin@cygnus.com).
@@ -117,16 +117,15 @@ struct dwarf2_debug
      This includes a pointer to an alternate bfd which contains *extra*,
      possibly duplicate debug sections, and pointers to the loaded
      .debug_str and .debug_info sections from this bfd.  */
-  bfd *          alt_bfd_ptr;
-  bfd_byte *     alt_dwarf_str_buffer;
-  bfd_size_type  alt_dwarf_str_size;
-  bfd_byte *     alt_dwarf_info_buffer;
-  bfd_size_type  alt_dwarf_info_size;
+  bfd *		 alt_bfd_ptr;
+  bfd_byte *	 alt_dwarf_str_buffer;
+  bfd_size_type	 alt_dwarf_str_size;
+  bfd_byte *	 alt_dwarf_info_buffer;
+  bfd_size_type	 alt_dwarf_info_size;
 
   /* A pointer to the memory block allocated for info_ptr.  Neither
      info_ptr nor sec_info_ptr are guaranteed to stay pointing to the
-     beginning of the malloc block.  This is used only to free the
-     memory later.  */
+     beginning of the malloc block.  */
   bfd_byte *info_ptr_memory;
 
   /* Pointer to the symbol table.  */
@@ -150,6 +149,12 @@ struct dwarf2_debug
   /* Length of the loaded .debug_str section.  */
   bfd_size_type dwarf_str_size;
 
+  /* Pointer to the .debug_line_str section loaded into memory.  */
+  bfd_byte *dwarf_line_str_buffer;
+
+  /* Length of the loaded .debug_line_str section.  */
+  bfd_size_type dwarf_line_str_size;
+
   /* Pointer to the .debug_ranges section loaded into memory.  */
   bfd_byte *dwarf_ranges_buffer;
 
@@ -188,8 +193,8 @@ struct dwarf2_debug
 
   /* Status of info hash.  */
   int info_hash_status;
-#define STASH_INFO_HASH_OFF        0
-#define STASH_INFO_HASH_ON         1
+#define STASH_INFO_HASH_OFF	   0
+#define STASH_INFO_HASH_ON	   1
 #define STASH_INFO_HASH_DISABLED   2
 
   /* True if we opened bfd_ptr.  */
@@ -244,9 +249,6 @@ struct comp_unit
      by its reference.  */
   bfd_byte *info_ptr_unit;
 
-  /* Pointer to the start of the debug section, for DW_FORM_ref_addr.  */
-  bfd_byte *sec_info_ptr;
-
   /* The offset into .debug_line of the line number table.  */
   unsigned long line_offset;
 
@@ -306,6 +308,7 @@ struct attr_abbrev
 {
   enum dwarf_attribute name;
   enum dwarf_form form;
+  bfd_vma implicit_const;
 };
 
 /* Map of uncompressed DWARF debug section name to compressed one.  It
@@ -329,6 +332,7 @@ const struct dwarf_debug_section dwarf_d
   { ".debug_static_vars",	".zdebug_static_vars" },
   { ".debug_str",		".zdebug_str", },
   { ".debug_str",		".zdebug_str", },
+  { ".debug_line_str",		".zdebug_line_str", },
   { ".debug_types",		".zdebug_types" },
   /* GNU DWARF 1 extensions */
   { ".debug_sfnames",		".zdebug_sfnames" },
@@ -361,15 +365,21 @@ enum dwarf_debug_section_enum
   debug_static_vars,
   debug_str,
   debug_str_alt,
+  debug_line_str,
   debug_types,
   debug_sfnames,
   debug_srcinfo,
   debug_funcnames,
   debug_typenames,
   debug_varnames,
-  debug_weaknames
+  debug_weaknames,
+  debug_max
 };
 
+/* A static assertion.  */
+extern int dwarf_debug_section_assert[ARRAY_SIZE (dwarf_debug_sections)
+				      == debug_max + 1 ? 1 : -1];
+
 #ifndef ABBREV_HASH_SIZE
 #define ABBREV_HASH_SIZE 121
 #endif
@@ -507,7 +517,7 @@ lookup_info_hash_table (struct info_hash
    the located section does not contain at least OFFSET bytes.  */
 
 static bfd_boolean
-read_section (bfd *           abfd,
+read_section (bfd *	      abfd,
 	      const struct dwarf_debug_section *sec,
 	      asymbol **      syms,
 	      bfd_uint64_t    offset,
@@ -516,9 +526,10 @@ read_section (bfd *           abfd,
 {
   asection *msec;
   const char *section_name = sec->uncompressed_name;
+  bfd_byte *contents = *section_buffer;
 
   /* The section may have already been read.  */
-  if (*section_buffer == NULL)
+  if (contents == NULL)
     {
       msec = bfd_get_section_by_name (abfd, section_name);
       if (! msec)
@@ -536,22 +547,21 @@ read_section (bfd *           abfd,
 	}
 
       *section_size = msec->rawsize ? msec->rawsize : msec->size;
-      if (syms)
-	{
-	  *section_buffer
-	    = bfd_simple_get_relocated_section_contents (abfd, msec, NULL, syms);
-	  if (! *section_buffer)
-	    return FALSE;
-	}
-      else
+      /* Paranoia - alloc one extra so that we can make sure a string
+	 section is NUL terminated.  */
+      contents = (bfd_byte *) bfd_malloc (*section_size + 1);
+      if (contents == NULL)
+	return FALSE;
+      if (syms
+	  ? !bfd_simple_get_relocated_section_contents (abfd, msec, contents,
+							syms)
+	  : !bfd_get_section_contents (abfd, msec, contents, 0, *section_size))
 	{
-	  *section_buffer = (bfd_byte *) bfd_malloc (*section_size);
-	  if (! *section_buffer)
-	    return FALSE;
-	  if (! bfd_get_section_contents (abfd, msec, *section_buffer,
-					  0, *section_size))
-	    return FALSE;
+	  free (contents);
+	  return FALSE;
 	}
+      contents[*section_size] = 0;
+      *section_buffer = contents;
     }
 
   /* It is possible to get a bad value for the offset into the section
@@ -559,9 +569,9 @@ read_section (bfd *           abfd,
   if (offset != 0 && offset >= *section_size)
     {
       /* xgettext: c-format */
-      _bfd_error_handler (_("Dwarf Error: Offset (%lu)"
-			    " greater than or equal to %s size (%lu)."),
-			  (long) offset, section_name, *section_size);
+      _bfd_error_handler (_("Dwarf Error: Offset (%llu)"
+			    " greater than or equal to %s size (%Lu)."),
+			  (long long) offset, section_name, *section_size);
       bfd_set_error (bfd_error_bad_value);
       return FALSE;
     }
@@ -629,9 +639,9 @@ read_n_bytes (bfd *abfd ATTRIBUTE_UNUSED
    problem, or if the string is empty.  */
 
 static char *
-read_string (bfd *          abfd ATTRIBUTE_UNUSED,
-	     bfd_byte *     buf,
-	     bfd_byte *     buf_end,
+read_string (bfd *	    abfd ATTRIBUTE_UNUSED,
+	     bfd_byte *	    buf,
+	     bfd_byte *	    buf_end,
 	     unsigned int * bytes_read_ptr)
 {
   bfd_byte *str = buf;
@@ -669,9 +679,9 @@ read_string (bfd *          abfd ATTRIBU
 
 static char *
 read_indirect_string (struct comp_unit * unit,
-		      bfd_byte *         buf,
-		      bfd_byte *         buf_end,
-		      unsigned int *     bytes_read_ptr)
+		      bfd_byte *	 buf,
+		      bfd_byte *	 buf_end,
+		      unsigned int *	 bytes_read_ptr)
 {
   bfd_uint64_t offset;
   struct dwarf2_debug *stash = unit->stash;
@@ -703,14 +713,53 @@ read_indirect_string (struct comp_unit *
   return str;
 }
 
+/* Like read_indirect_string but from .debug_line_str section.  */
+
+static char *
+read_indirect_line_string (struct comp_unit * unit,
+			   bfd_byte *	      buf,
+			   bfd_byte *	      buf_end,
+			   unsigned int *     bytes_read_ptr)
+{
+  bfd_uint64_t offset;
+  struct dwarf2_debug *stash = unit->stash;
+  char *str;
+
+  if (buf + unit->offset_size > buf_end)
+    {
+      * bytes_read_ptr = 0;
+      return NULL;
+    }
+
+  if (unit->offset_size == 4)
+    offset = read_4_bytes (unit->abfd, buf, buf_end);
+  else
+    offset = read_8_bytes (unit->abfd, buf, buf_end);
+
+  *bytes_read_ptr = unit->offset_size;
+
+  if (! read_section (unit->abfd, &stash->debug_sections[debug_line_str],
+		      stash->syms, offset,
+		      &stash->dwarf_line_str_buffer,
+		      &stash->dwarf_line_str_size))
+    return NULL;
+
+  if (offset >= stash->dwarf_line_str_size)
+    return NULL;
+  str = (char *) stash->dwarf_line_str_buffer + offset;
+  if (*str == '\0')
+    return NULL;
+  return str;
+}
+
 /* Like read_indirect_string but uses a .debug_str located in
    an alternate file pointed to by the .gnu_debugaltlink section.
    Used to impement DW_FORM_GNU_strp_alt.  */
 
 static char *
 read_alt_indirect_string (struct comp_unit * unit,
-			  bfd_byte *         buf,
-			  bfd_byte *         buf_end,
+			  bfd_byte *	     buf,
+			  bfd_byte *	     buf_end,
 			  unsigned int *     bytes_read_ptr)
 {
   bfd_uint64_t offset;
@@ -928,15 +977,28 @@ read_abbrevs (bfd *abfd, bfd_uint64_t of
       abbrev_ptr += 1;
 
       /* Now read in declarations.  */
-      abbrev_name = _bfd_safe_read_leb128 (abfd, abbrev_ptr, &bytes_read,
-					   FALSE, abbrev_end);
-      abbrev_ptr += bytes_read;
-      abbrev_form = _bfd_safe_read_leb128 (abfd, abbrev_ptr, &bytes_read,
-					   FALSE, abbrev_end);
-      abbrev_ptr += bytes_read;
-
-      while (abbrev_name)
+      for (;;)
 	{
+	  /* Initialize it just to avoid a GCC false warning.  */
+	  bfd_vma implicit_const = -1;
+
+	  abbrev_name = _bfd_safe_read_leb128 (abfd, abbrev_ptr, &bytes_read,
+					       FALSE, abbrev_end);
+	  abbrev_ptr += bytes_read;
+	  abbrev_form = _bfd_safe_read_leb128 (abfd, abbrev_ptr, &bytes_read,
+					       FALSE, abbrev_end);
+	  abbrev_ptr += bytes_read;
+	  if (abbrev_form == DW_FORM_implicit_const)
+	    {
+	      implicit_const = _bfd_safe_read_leb128 (abfd, abbrev_ptr,
+						      &bytes_read, TRUE,
+						      abbrev_end);
+	      abbrev_ptr += bytes_read;
+	    }
+
+	  if (abbrev_name == 0)
+	    break;
+
 	  if ((cur_abbrev->num_attrs % ATTR_ALLOC_CHUNK) == 0)
 	    {
 	      struct attr_abbrev *tmp;
@@ -965,14 +1027,11 @@ read_abbrevs (bfd *abfd, bfd_uint64_t of
 
 	  cur_abbrev->attrs[cur_abbrev->num_attrs].name
 	    = (enum dwarf_attribute) abbrev_name;
-	  cur_abbrev->attrs[cur_abbrev->num_attrs++].form
+	  cur_abbrev->attrs[cur_abbrev->num_attrs].form
 	    = (enum dwarf_form) abbrev_form;
-	  abbrev_name = _bfd_safe_read_leb128 (abfd, abbrev_ptr, &bytes_read,
-					       FALSE, abbrev_end);
-	  abbrev_ptr += bytes_read;
-	  abbrev_form = _bfd_safe_read_leb128 (abfd, abbrev_ptr, &bytes_read,
-					       FALSE, abbrev_end);
-	  abbrev_ptr += bytes_read;
+	  cur_abbrev->attrs[cur_abbrev->num_attrs].implicit_const
+	    = implicit_const;
+	  ++cur_abbrev->num_attrs;
 	}
 
       hash_number = abbrev_number % ABBREV_HASH_SIZE;
@@ -1004,7 +1063,8 @@ read_abbrevs (bfd *abfd, bfd_uint64_t of
 static inline bfd_boolean
 is_str_attr (enum dwarf_form form)
 {
-  return form == DW_FORM_string || form == DW_FORM_strp || form == DW_FORM_GNU_strp_alt;
+  return (form == DW_FORM_string || form == DW_FORM_strp
+	  || form == DW_FORM_line_strp || form == DW_FORM_GNU_strp_alt);
 }
 
 /* Read and fill in the value of attribute ATTR as described by FORM.
@@ -1013,10 +1073,11 @@ is_str_attr (enum dwarf_form form)
 
 static bfd_byte *
 read_attribute_value (struct attribute *  attr,
-		      unsigned            form,
+		      unsigned		  form,
+		      bfd_vma		  implicit_const,
 		      struct comp_unit *  unit,
-		      bfd_byte *          info_ptr,
-		      bfd_byte *          info_ptr_end)
+		      bfd_byte *	  info_ptr,
+		      bfd_byte *	  info_ptr_end)
 {
   bfd *abfd = unit->abfd;
   unsigned int bytes_read;
@@ -1101,6 +1162,10 @@ read_attribute_value (struct attribute *
       attr->u.str = read_indirect_string (unit, info_ptr, info_ptr_end, &bytes_read);
       info_ptr += bytes_read;
       break;
+    case DW_FORM_line_strp:
+      attr->u.str = read_indirect_line_string (unit, info_ptr, info_ptr_end, &bytes_read);
+      info_ptr += bytes_read;
+      break;
     case DW_FORM_GNU_strp_alt:
       attr->u.str = read_alt_indirect_string (unit, info_ptr, info_ptr_end, &bytes_read);
       info_ptr += bytes_read;
@@ -1179,7 +1244,18 @@ read_attribute_value (struct attribute *
       form = _bfd_safe_read_leb128 (abfd, info_ptr, &bytes_read,
 				    FALSE, info_ptr_end);
       info_ptr += bytes_read;
-      info_ptr = read_attribute_value (attr, form, unit, info_ptr, info_ptr_end);
+      if (form == DW_FORM_implicit_const)
+	{
+	  implicit_const = _bfd_safe_read_leb128 (abfd, info_ptr, &bytes_read,
+						  TRUE, info_ptr_end);
+	  info_ptr += bytes_read;
+	}
+      info_ptr = read_attribute_value (attr, form, implicit_const, unit,
+				       info_ptr, info_ptr_end);
+      break;
+    case DW_FORM_implicit_const:
+      attr->form = DW_FORM_sdata;
+      attr->u.sval = implicit_const;
       break;
     default:
       _bfd_error_handler (_("Dwarf Error: Invalid or unhandled FORM value: %#x."),
@@ -1196,11 +1272,12 @@ static bfd_byte *
 read_attribute (struct attribute *    attr,
 		struct attr_abbrev *  abbrev,
 		struct comp_unit *    unit,
-		bfd_byte *            info_ptr,
-		bfd_byte *            info_ptr_end)
+		bfd_byte *	      info_ptr,
+		bfd_byte *	      info_ptr_end)
 {
   attr->name = abbrev->name;
-  info_ptr = read_attribute_value (attr, abbrev->form, unit, info_ptr, info_ptr_end);
+  info_ptr = read_attribute_value (attr, abbrev->form, abbrev->implicit_const,
+				   unit, info_ptr, info_ptr_end);
   return info_ptr;
 }
 
@@ -1258,24 +1335,24 @@ struct fileinfo
 
 struct line_sequence
 {
-  bfd_vma               low_pc;
+  bfd_vma		low_pc;
   struct line_sequence* prev_sequence;
-  struct line_info*     last_line;  /* Largest VMA.  */
-  struct line_info**    line_info_lookup;
+  struct line_info*	last_line;  /* Largest VMA.  */
+  struct line_info**	line_info_lookup;
   bfd_size_type		num_lines;
 };
 
 struct line_info_table
 {
-  bfd *                 abfd;
-  unsigned int          num_files;
-  unsigned int          num_dirs;
-  unsigned int          num_sequences;
-  char *                comp_dir;
-  char **               dirs;
-  struct fileinfo*      files;
+  bfd *			abfd;
+  unsigned int		num_files;
+  unsigned int		num_dirs;
+  unsigned int		num_sequences;
+  char *		comp_dir;
+  char **		dirs;
+  struct fileinfo*	files;
   struct line_sequence* sequences;
-  struct line_info*     lcl_head;   /* Local head; used in 'add_line_info'.  */
+  struct line_info*	lcl_head;   /* Local head; used in 'add_line_info'.  */
 };
 
 /* Remember some information about each function.  If the function is
@@ -1311,12 +1388,12 @@ struct lookup_funcinfo
   struct funcinfo *	funcinfo;
 
   /* The lowest address for this specific function.  */
-  bfd_vma 		low_addr;
+  bfd_vma		low_addr;
 
   /* The highest address of this function before the lookup table is sorted.
      The highest address of all prior functions after the lookup table is
      sorted, which is used for binary search.  */
-  bfd_vma 		high_addr;
+  bfd_vma		high_addr;
 };
 
 struct varinfo
@@ -1343,9 +1420,7 @@ new_line_sorts_after (struct line_info *
 {
   return (new_line->address > line->address
 	  || (new_line->address == line->address
-	      && (new_line->op_index > line->op_index
-		  || (new_line->op_index == line->op_index
-		      && new_line->end_sequence < line->end_sequence))));
+	      && new_line->op_index > line->op_index));
 }
 
 
@@ -1431,7 +1506,8 @@ add_line_info (struct line_info_table *t
       table->sequences = seq;
       table->num_sequences++;
     }
-  else if (new_line_sorts_after (info, seq->last_line))
+  else if (info->end_sequence
+	   || new_line_sorts_after (info, seq->last_line))
     {
       /* Normal case: add 'info' to the beginning of the current sequence.  */
       info->prev_line = seq->last_line;
@@ -1493,6 +1569,8 @@ concat_filename (struct line_info_table 
     }
 
   filename = table->files[file - 1].name;
+  if (filename == NULL)
+    return strdup ("<unknown>");
 
   if (!IS_ABSOLUTE_PATH (filename))
     {
@@ -1669,12 +1747,12 @@ build_line_info_table (struct line_info_
 static bfd_boolean
 sort_line_sequences (struct line_info_table* table)
 {
-  bfd_size_type          amt;
-  struct line_sequence*  sequences;
-  struct line_sequence*  seq;
-  unsigned int           n = 0;
-  unsigned int           num_sequences = table->num_sequences;
-  bfd_vma                last_high_pc;
+  bfd_size_type		 amt;
+  struct line_sequence*	 sequences;
+  struct line_sequence*	 seq;
+  unsigned int		 n = 0;
+  unsigned int		 num_sequences = table->num_sequences;
+  bfd_vma		 last_high_pc;
 
   if (num_sequences == 0)
     return TRUE;
@@ -1734,6 +1812,191 @@ sort_line_sequences (struct line_info_ta
   return TRUE;
 }
 
+/* Add directory to TABLE.  CUR_DIR memory ownership is taken by TABLE.  */
+
+static bfd_boolean
+line_info_add_include_dir (struct line_info_table *table, char *cur_dir)
+{
+  if ((table->num_dirs % DIR_ALLOC_CHUNK) == 0)
+    {
+      char **tmp;
+      bfd_size_type amt;
+
+      amt = table->num_dirs + DIR_ALLOC_CHUNK;
+      amt *= sizeof (char *);
+
+      tmp = (char **) bfd_realloc (table->dirs, amt);
+      if (tmp == NULL)
+	return FALSE;
+      table->dirs = tmp;
+    }
+
+  table->dirs[table->num_dirs++] = cur_dir;
+  return TRUE;
+}
+
+static bfd_boolean
+line_info_add_include_dir_stub (struct line_info_table *table, char *cur_dir,
+				unsigned int dir ATTRIBUTE_UNUSED,
+				unsigned int xtime ATTRIBUTE_UNUSED,
+				unsigned int size ATTRIBUTE_UNUSED)
+{
+  return line_info_add_include_dir (table, cur_dir);
+}
+
+/* Add file to TABLE.  CUR_FILE memory ownership is taken by TABLE.  */
+
+static bfd_boolean
+line_info_add_file_name (struct line_info_table *table, char *cur_file,
+			 unsigned int dir, unsigned int xtime,
+			 unsigned int size)
+{
+  if ((table->num_files % FILE_ALLOC_CHUNK) == 0)
+    {
+      struct fileinfo *tmp;
+      bfd_size_type amt;
+
+      amt = table->num_files + FILE_ALLOC_CHUNK;
+      amt *= sizeof (struct fileinfo);
+
+      tmp = (struct fileinfo *) bfd_realloc (table->files, amt);
+      if (tmp == NULL)
+	return FALSE;
+      table->files = tmp;
+    }
+
+  table->files[table->num_files].name = cur_file;
+  table->files[table->num_files].dir = dir;
+  table->files[table->num_files].time = xtime;
+  table->files[table->num_files].size = size;
+  table->num_files++;
+  return TRUE;
+}
+
+/* Read directory or file name entry format, starting with byte of
+   format count entries, ULEB128 pairs of entry formats, ULEB128 of
+   entries count and the entries themselves in the described entry
+   format.  */
+
+static bfd_boolean
+read_formatted_entries (struct comp_unit *unit, bfd_byte **bufp,
+			bfd_byte *buf_end, struct line_info_table *table,
+			bfd_boolean (*callback) (struct line_info_table *table,
+						 char *cur_file,
+						 unsigned int dir,
+						 unsigned int time,
+						 unsigned int size))
+{
+  bfd *abfd = unit->abfd;
+  bfd_byte format_count, formati;
+  bfd_vma data_count, datai;
+  bfd_byte *buf = *bufp;
+  bfd_byte *format_header_data;
+  unsigned int bytes_read;
+
+  format_count = read_1_byte (abfd, buf, buf_end);
+  buf += 1;
+  format_header_data = buf;
+  for (formati = 0; formati < format_count; formati++)
+    {
+      _bfd_safe_read_leb128 (abfd, buf, &bytes_read, FALSE, buf_end);
+      buf += bytes_read;
+      _bfd_safe_read_leb128 (abfd, buf, &bytes_read, FALSE, buf_end);
+      buf += bytes_read;
+    }
+
+  data_count = _bfd_safe_read_leb128 (abfd, buf, &bytes_read, FALSE, buf_end);
+  buf += bytes_read;
+  if (format_count == 0 && data_count != 0)
+    {
+      _bfd_error_handler (_("Dwarf Error: Zero format count."));
+      bfd_set_error (bfd_error_bad_value);
+      return FALSE;
+    }
+
+  /* PR 22210.  Paranoia check.  Don't bother running the loop
+     if we know that we are going to run out of buffer.  */
+  if (data_count > (bfd_vma) (buf_end - buf))
+    {
+      _bfd_error_handler (_("Dwarf Error: data count (%Lx) larger than buffer size."),
+			  data_count);
+      bfd_set_error (bfd_error_bad_value);
+      return FALSE;
+    }
+
+  for (datai = 0; datai < data_count; datai++)
+    {
+      bfd_byte *format = format_header_data;
+      struct fileinfo fe;
+
+      memset (&fe, 0, sizeof fe);
+      for (formati = 0; formati < format_count; formati++)
+	{
+	  bfd_vma content_type, form;
+	  char *string_trash;
+	  char **stringp = &string_trash;
+	  unsigned int uint_trash, *uintp = &uint_trash;
+	  struct attribute attr;
+
+	  content_type = _bfd_safe_read_leb128 (abfd, format, &bytes_read,
+						FALSE, buf_end);
+	  format += bytes_read;
+	  switch (content_type)
+	    {
+	    case DW_LNCT_path:
+	      stringp = &fe.name;
+	      break;
+	    case DW_LNCT_directory_index:
+	      uintp = &fe.dir;
+	      break;
+	    case DW_LNCT_timestamp:
+	      uintp = &fe.time;
+	      break;
+	    case DW_LNCT_size:
+	      uintp = &fe.size;
+	      break;
+	    case DW_LNCT_MD5:
+	      break;
+	    default:
+	      _bfd_error_handler
+		(_("Dwarf Error: Unknown format content type %Lu."),
+		 content_type);
+	      bfd_set_error (bfd_error_bad_value);
+	      return FALSE;
+	    }
+
+	  form = _bfd_safe_read_leb128 (abfd, format, &bytes_read, FALSE,
+					buf_end);
+	  format += bytes_read;
+
+	  buf = read_attribute_value (&attr, form, 0, unit, buf, buf_end);
+	  if (buf == NULL)
+	    return FALSE;
+	  switch (form)
+	    {
+	    case DW_FORM_string:
+	    case DW_FORM_line_strp:
+	      *stringp = attr.u.str;
+	      break;
+
+	    case DW_FORM_data1:
+	    case DW_FORM_data2:
+	    case DW_FORM_data4:
+	    case DW_FORM_data8:
+	    case DW_FORM_udata:
+	      *uintp = attr.u.val;
+	      break;
+	    }
+	}
+
+      if (!callback (table, fe.name, fe.dir, fe.time, fe.size))
+	return FALSE;
+    }
+
+  *bufp = buf;
+  return TRUE;
+}
+
 /* Decode the line number information for UNIT.  */
 
 static struct line_info_table*
@@ -1776,8 +2039,8 @@ decode_line_info (struct comp_unit *unit
   if (stash->dwarf_line_size < 16)
     {
       _bfd_error_handler
-	(_("Dwarf Error: Line info section is too small (%ld)"),
-	 (long) stash->dwarf_line_size);
+	(_("Dwarf Error: Line info section is too small (%Ld)"),
+	 stash->dwarf_line_size);
       bfd_set_error (bfd_error_bad_value);
       return NULL;
     }
@@ -1802,12 +2065,13 @@ decode_line_info (struct comp_unit *unit
       offset_size = 8;
     }
 
-  if (lh.total_length > stash->dwarf_line_size)
+  if (lh.total_length > (size_t) (line_end - line_ptr))
     {
       _bfd_error_handler
 	/* xgettext: c-format */
-	(_("Dwarf Error: Line info data is bigger (0x%lx) than the section (0x%lx)"),
-	 (long) lh.total_length, (long) stash->dwarf_line_size);
+	(_("Dwarf Error: Line info data is bigger (%#Lx)"
+	   " than the space remaining in the section (%#lx)"),
+	 lh.total_length, (unsigned long) (line_end - line_ptr));
       bfd_set_error (bfd_error_bad_value);
       return NULL;
     }
@@ -1815,7 +2079,7 @@ decode_line_info (struct comp_unit *unit
   line_end = line_ptr + lh.total_length;
 
   lh.version = read_2_bytes (abfd, line_ptr, line_end);
-  if (lh.version < 2 || lh.version > 4)
+  if (lh.version < 2 || lh.version > 5)
     {
       _bfd_error_handler
 	(_("Dwarf Error: Unhandled .debug_line version %d."), lh.version);
@@ -1824,7 +2088,8 @@ decode_line_info (struct comp_unit *unit
     }
   line_ptr += 2;
 
-  if (line_ptr + offset_size + (lh.version >=4 ? 6 : 5) >= line_end)
+  if (line_ptr + offset_size + (lh.version >= 5 ? 8 : (lh.version >= 4 ? 6 : 5))
+      >= line_end)
     {
       _bfd_error_handler
 	(_("Dwarf Error: Ran out of room reading prologue"));
@@ -1832,6 +2097,26 @@ decode_line_info (struct comp_unit *unit
       return NULL;
     }
 
+  if (lh.version >= 5)
+    {
+      unsigned int segment_selector_size;
+
+      /* Skip address size.  */
+      read_1_byte (abfd, line_ptr, line_end);
+      line_ptr += 1;
+
+      segment_selector_size = read_1_byte (abfd, line_ptr, line_end);
+      line_ptr += 1;
+      if (segment_selector_size != 0)
+	{
+	  _bfd_error_handler
+	    (_("Dwarf Error: Line info unsupported segment selector size %u."),
+	     segment_selector_size);
+	  bfd_set_error (bfd_error_bad_value);
+	  return NULL;
+	}
+    }
+
   if (offset_size == 4)
     lh.prologue_length = read_4_bytes (abfd, line_ptr, line_end);
   else
@@ -1887,62 +2172,52 @@ decode_line_info (struct comp_unit *unit
       line_ptr += 1;
     }
 
-  /* Read directory table.  */
-  while ((cur_dir = read_string (abfd, line_ptr, line_end, &bytes_read)) != NULL)
+  if (lh.version >= 5)
     {
-      line_ptr += bytes_read;
+      /* Read directory table.  */
+      if (!read_formatted_entries (unit, &line_ptr, line_end, table,
+				   line_info_add_include_dir_stub))
+	goto fail;
 
-      if ((table->num_dirs % DIR_ALLOC_CHUNK) == 0)
+      /* Read file name table.  */
+      if (!read_formatted_entries (unit, &line_ptr, line_end, table,
+				   line_info_add_file_name))
+	goto fail;
+    }
+  else
+    {
+      /* Read directory table.  */
+      while ((cur_dir = read_string (abfd, line_ptr, line_end, &bytes_read)) != NULL)
 	{
-	  char **tmp;
+	  line_ptr += bytes_read;
 
-	  amt = table->num_dirs + DIR_ALLOC_CHUNK;
-	  amt *= sizeof (char *);
-
-	  tmp = (char **) bfd_realloc (table->dirs, amt);
-	  if (tmp == NULL)
+	  if (!line_info_add_include_dir (table, cur_dir))
 	    goto fail;
-	  table->dirs = tmp;
 	}
 
-      table->dirs[table->num_dirs++] = cur_dir;
-    }
-
-  line_ptr += bytes_read;
-
-  /* Read file name table.  */
-  while ((cur_file = read_string (abfd, line_ptr, line_end, &bytes_read)) != NULL)
-    {
       line_ptr += bytes_read;
 
-      if ((table->num_files % FILE_ALLOC_CHUNK) == 0)
+      /* Read file name table.  */
+      while ((cur_file = read_string (abfd, line_ptr, line_end, &bytes_read)) != NULL)
 	{
-	  struct fileinfo *tmp;
+	  unsigned int dir, xtime, size;
+
+	  line_ptr += bytes_read;
 
-	  amt = table->num_files + FILE_ALLOC_CHUNK;
-	  amt *= sizeof (struct fileinfo);
+	  dir = _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read, FALSE, line_end);
+	  line_ptr += bytes_read;
+	  xtime = _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read, FALSE, line_end);
+	  line_ptr += bytes_read;
+	  size = _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read, FALSE, line_end);
+	  line_ptr += bytes_read;
 
-	  tmp = (struct fileinfo *) bfd_realloc (table->files, amt);
-	  if (tmp == NULL)
+	  if (!line_info_add_file_name (table, cur_file, dir, xtime, size))
 	    goto fail;
-	  table->files = tmp;
 	}
 
-      table->files[table->num_files].name = cur_file;
-      table->files[table->num_files].dir =
-	_bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read, FALSE, line_end);
-      line_ptr += bytes_read;
-      table->files[table->num_files].time
-	= _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read, FALSE, line_end);
-      line_ptr += bytes_read;
-      table->files[table->num_files].size
-	= _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read, FALSE, line_end);
       line_ptr += bytes_read;
-      table->num_files++;
     }
 
-  line_ptr += bytes_read;
-
   /* Read the statement sequences until there's nothing left.  */
   while (line_ptr < line_end)
     {
@@ -1955,6 +2230,7 @@ decode_line_info (struct comp_unit *unit
       unsigned int discriminator = 0;
       int is_stmt = lh.default_is_stmt;
       int end_sequence = 0;
+      unsigned int dir, xtime, size;
       /* eraxxon@alumni.rice.edu: Against the DWARF2 specs, some
 	 compilers generate address sequences that are wildly out of
 	 order using DW_LNE_set_address (e.g. Intel C++ 6.0 compiler
@@ -1964,7 +2240,7 @@ decode_line_info (struct comp_unit *unit
       bfd_vma high_pc = 0;
 
       /* Decode the table.  */
-      while (! end_sequence)
+      while (!end_sequence && line_ptr < line_end)
 	{
 	  op_code = read_1_byte (abfd, line_ptr, line_end);
 	  line_ptr += 1;
@@ -2029,31 +2305,18 @@ decode_line_info (struct comp_unit *unit
 		case DW_LNE_define_file:
 		  cur_file = read_string (abfd, line_ptr, line_end, &bytes_read);
 		  line_ptr += bytes_read;
-		  if ((table->num_files % FILE_ALLOC_CHUNK) == 0)
-		    {
-		      struct fileinfo *tmp;
-
-		      amt = table->num_files + FILE_ALLOC_CHUNK;
-		      amt *= sizeof (struct fileinfo);
-		      tmp = (struct fileinfo *) bfd_realloc (table->files, amt);
-		      if (tmp == NULL)
-			goto line_fail;
-		      table->files = tmp;
-		    }
-		  table->files[table->num_files].name = cur_file;
-		  table->files[table->num_files].dir =
-		    _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read,
-					   FALSE, line_end);
+		  dir = _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read,
+					       FALSE, line_end);
 		  line_ptr += bytes_read;
-		  table->files[table->num_files].time =
-		    _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read,
-					   FALSE, line_end);
+		  xtime = _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read,
+						 FALSE, line_end);
 		  line_ptr += bytes_read;
-		  table->files[table->num_files].size =
-		    _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read,
-					   FALSE, line_end);
+		  size = _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read,
+						FALSE, line_end);
 		  line_ptr += bytes_read;
-		  table->num_files++;
+		  if (!line_info_add_file_name (table, cur_file, dir,
+						xtime, size))
+		    goto line_fail;
 		  break;
 		case DW_LNE_set_discriminator:
 		  discriminator =
@@ -2131,6 +2394,8 @@ decode_line_info (struct comp_unit *unit
 	    case DW_LNS_set_basic_block:
 	      break;
 	    case DW_LNS_const_add_pc:
+	      if (lh.line_range == 0)
+		goto line_fail;
 	      if (lh.maximum_ops_per_insn == 1)
 		address += (lh.minimum_instruction_length
 			    * ((255 - lh.opcode_base) / lh.line_range));
@@ -2168,8 +2433,12 @@ decode_line_info (struct comp_unit *unit
     return table;
 
  fail:
-  if (table->sequences != NULL)
-    free (table->sequences);
+  while (table->sequences != NULL)
+    {
+      struct line_sequence* seq = table->sequences;
+      table->sequences = table->sequences->prev_sequence;
+      free (seq);
+    }
   if (table->files != NULL)
     free (table->files);
   if (table->dirs != NULL)
@@ -2375,7 +2644,7 @@ lookup_address_in_function_table (struct
 
   if (unit->lookup_funcinfo_table[number_of_functions - 1].high_addr < addr)
     return FALSE;
-  
+
   /* Find the first function in the lookup table which may contain the
      specified address.  */
   low = 0;
@@ -2518,9 +2787,11 @@ lookup_symbol_in_variable_table (struct 
   return FALSE;
 }
 
-static char *
+static bfd_boolean
 find_abstract_instance_name (struct comp_unit *unit,
+			     bfd_byte *orig_info_ptr,
 			     struct attribute *attr_ptr,
+			     const char **pname,
 			     bfd_boolean *is_linkage)
 {
   bfd *abfd = unit->abfd;
@@ -2530,23 +2801,44 @@ find_abstract_instance_name (struct comp
   struct abbrev_info *abbrev;
   bfd_uint64_t die_ref = attr_ptr->u.val;
   struct attribute attr;
-  char *name = NULL;
+  const char *name = NULL;
 
   /* DW_FORM_ref_addr can reference an entry in a different CU. It
      is an offset from the .debug_info section, not the current CU.  */
   if (attr_ptr->form == DW_FORM_ref_addr)
     {
       /* We only support DW_FORM_ref_addr within the same file, so
-	 any relocations should be resolved already.  */
-      if (!die_ref)
-	abort ();
-
-      info_ptr = unit->sec_info_ptr + die_ref;
-      info_ptr_end = unit->end_ptr;
+	 any relocations should be resolved already.  Check this by
+	 testing for a zero die_ref;  There can't be a valid reference
+	 to the header of a .debug_info section.
+	 DW_FORM_ref_addr is an offset relative to .debug_info.
+	 Normally when using the GNU linker this is accomplished by
+	 emitting a symbolic reference to a label, because .debug_info
+	 sections are linked at zero.  When there are multiple section
+	 groups containing .debug_info, as there might be in a
+	 relocatable object file, it would be reasonable to assume that
+	 a symbolic reference to a label in any .debug_info section
+	 might be used.  Since we lay out multiple .debug_info
+	 sections at non-zero VMAs (see place_sections), and read
+	 them contiguously into stash->info_ptr_memory, that means
+	 the reference is relative to stash->info_ptr_memory.  */
+      size_t total;
+
+      info_ptr = unit->stash->info_ptr_memory;
+      info_ptr_end = unit->stash->info_ptr_end;
+      total = info_ptr_end - info_ptr;
+      if (!die_ref || die_ref >= total)
+	{
+	  _bfd_error_handler
+	    (_("Dwarf Error: Invalid abstract instance DIE ref."));
+	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
+	}
+      info_ptr += die_ref;
 
       /* Now find the CU containing this pointer.  */
       if (info_ptr >= unit->info_ptr_unit && info_ptr < unit->end_ptr)
-	;
+	info_ptr_end = unit->end_ptr;
       else
 	{
 	  /* Check other CUs to see if they contain the abbrev.  */
@@ -2562,7 +2854,10 @@ find_abstract_instance_name (struct comp
 		break;
 
 	  if (u)
-	    unit = u;
+	    {
+	      unit = u;
+	      info_ptr_end = unit->end_ptr;
+	    }
 	  /* else FIXME: What do we do now ?  */
 	}
     }
@@ -2572,19 +2867,35 @@ find_abstract_instance_name (struct comp
       if (info_ptr == NULL)
 	{
 	  _bfd_error_handler
-	    (_("Dwarf Error: Unable to read alt ref %u."), die_ref);
+	    (_("Dwarf Error: Unable to read alt ref %llu."),
+	     (long long) die_ref);
 	  bfd_set_error (bfd_error_bad_value);
-	  return NULL;
+	  return FALSE;
 	}
-      info_ptr_end = unit->stash->alt_dwarf_info_buffer + unit->stash->alt_dwarf_info_size;
+      info_ptr_end = (unit->stash->alt_dwarf_info_buffer
+		      + unit->stash->alt_dwarf_info_size);
 
       /* FIXME: Do we need to locate the correct CU, in a similar
 	 fashion to the code in the DW_FORM_ref_addr case above ?  */
     }
   else
     {
-      info_ptr = unit->info_ptr_unit + die_ref;
+      /* DW_FORM_ref1, DW_FORM_ref2, DW_FORM_ref4, DW_FORM_ref8 or
+	 DW_FORM_ref_udata.  These are all references relative to the
+	 start of the current CU.  */
+      size_t total;
+
+      info_ptr = unit->info_ptr_unit;
       info_ptr_end = unit->end_ptr;
+      total = info_ptr_end - info_ptr;
+      if (!die_ref || die_ref >= total)
+	{
+	  _bfd_error_handler
+	    (_("Dwarf Error: Invalid abstract instance DIE ref."));
+	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
+	}
+      info_ptr += die_ref;
     }
 
   abbrev_number = _bfd_safe_read_leb128 (abfd, info_ptr, &bytes_read,
@@ -2599,6 +2910,7 @@ find_abstract_instance_name (struct comp
 	  _bfd_error_handler
 	    (_("Dwarf Error: Could not find abbrev number %u."), abbrev_number);
 	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
 	}
       else
 	{
@@ -2608,6 +2920,15 @@ find_abstract_instance_name (struct comp
 					 info_ptr, info_ptr_end);
 	      if (info_ptr == NULL)
 		break;
+	      /* It doesn't ever make sense for DW_AT_specification to
+		 refer to the same DIE.  Stop simple recursion.  */
+	      if (info_ptr == orig_info_ptr)
+		{
+		  _bfd_error_handler
+		    (_("Dwarf Error: Abstract instance recursion detected."));
+		  bfd_set_error (bfd_error_bad_value);
+		  return FALSE;
+		}
 	      switch (attr.name)
 		{
 		case DW_AT_name:
@@ -2621,7 +2942,9 @@ find_abstract_instance_name (struct comp
 		    }
 		  break;
 		case DW_AT_specification:
-		  name = find_abstract_instance_name (unit, &attr, is_linkage);
+		  if (!find_abstract_instance_name (unit, info_ptr, &attr,
+						    pname, is_linkage))
+		    return FALSE;
 		  break;
 		case DW_AT_linkage_name:
 		case DW_AT_MIPS_linkage_name:
@@ -2639,7 +2962,8 @@ find_abstract_instance_name (struct comp
 	    }
 	}
     }
-  return name;
+  *pname = name;
+  return TRUE;
 }
 
 static bfd_boolean
@@ -2700,20 +3024,22 @@ scan_unit_for_symbols (struct comp_unit 
   bfd *abfd = unit->abfd;
   bfd_byte *info_ptr = unit->first_child_die_ptr;
   bfd_byte *info_ptr_end = unit->stash->info_ptr_end;
-  int nesting_level = 1;
-  struct funcinfo **nested_funcs;
+  int nesting_level = 0;
+  struct nest_funcinfo {
+    struct funcinfo *func;
+  } *nested_funcs;
   int nested_funcs_size;
 
   /* Maintain a stack of in-scope functions and inlined functions, which we
      can use to set the caller_func field.  */
   nested_funcs_size = 32;
-  nested_funcs = (struct funcinfo **)
-    bfd_malloc (nested_funcs_size * sizeof (struct funcinfo *));
+  nested_funcs = (struct nest_funcinfo *)
+    bfd_malloc (nested_funcs_size * sizeof (*nested_funcs));
   if (nested_funcs == NULL)
     return FALSE;
-  nested_funcs[nesting_level] = 0;
+  nested_funcs[nesting_level].func = 0;
 
-  while (nesting_level)
+  while (nesting_level >= 0)
     {
       unsigned int abbrev_number, bytes_read, i;
       struct abbrev_info *abbrev;
@@ -2771,13 +3097,13 @@ scan_unit_for_symbols (struct comp_unit 
 	  BFD_ASSERT (!unit->cached);
 
 	  if (func->tag == DW_TAG_inlined_subroutine)
-	    for (i = nesting_level - 1; i >= 1; i--)
-	      if (nested_funcs[i])
+	    for (i = nesting_level; i-- != 0; )
+	      if (nested_funcs[i].func)
 		{
-		  func->caller_func = nested_funcs[i];
+		  func->caller_func = nested_funcs[i].func;
 		  break;
 		}
-	  nested_funcs[nesting_level] = func;
+	  nested_funcs[nesting_level].func = func;
 	}
       else
 	{
@@ -2797,12 +3123,13 @@ scan_unit_for_symbols (struct comp_unit 
 	    }
 
 	  /* No inline function in scope at this nesting level.  */
-	  nested_funcs[nesting_level] = 0;
+	  nested_funcs[nesting_level].func = 0;
 	}
 
       for (i = 0; i < abbrev->num_attrs; ++i)
 	{
-	  info_ptr = read_attribute (&attr, &abbrev->attrs[i], unit, info_ptr, info_ptr_end);
+	  info_ptr = read_attribute (&attr, &abbrev->attrs[i],
+				     unit, info_ptr, info_ptr_end);
 	  if (info_ptr == NULL)
 	    goto fail;
 
@@ -2821,8 +3148,10 @@ scan_unit_for_symbols (struct comp_unit 
 
 		case DW_AT_abstract_origin:
 		case DW_AT_specification:
-		  func->name = find_abstract_instance_name (unit, &attr,
-							    &func->is_linkage);
+		  if (!find_abstract_instance_name (unit, info_ptr, &attr,
+						    &func->name,
+						    &func->is_linkage))
+		    goto fail;
 		  break;
 
 		case DW_AT_name:
@@ -2879,7 +3208,8 @@ scan_unit_for_symbols (struct comp_unit 
 	      switch (attr.name)
 		{
 		case DW_AT_name:
-		  var->name = attr.u.str;
+		  if (is_str_attr (attr.form))
+		    var->name = attr.u.str;
 		  break;
 
 		case DW_AT_decl_file:
@@ -2904,7 +3234,8 @@ scan_unit_for_symbols (struct comp_unit 
 		    case DW_FORM_block2:
 		    case DW_FORM_block4:
 		    case DW_FORM_exprloc:
-		      if (*attr.u.blk->data == DW_OP_addr)
+		      if (attr.u.blk->data != NULL
+			  && *attr.u.blk->data == DW_OP_addr)
 			{
 			  var->stack = 0;
 
@@ -2947,17 +3278,17 @@ scan_unit_for_symbols (struct comp_unit 
 
 	  if (nesting_level >= nested_funcs_size)
 	    {
-	      struct funcinfo **tmp;
+	      struct nest_funcinfo *tmp;
 
 	      nested_funcs_size *= 2;
-	      tmp = (struct funcinfo **)
+	      tmp = (struct nest_funcinfo *)
 		bfd_realloc (nested_funcs,
-			     nested_funcs_size * sizeof (struct funcinfo *));
+			     nested_funcs_size * sizeof (*nested_funcs));
 	      if (tmp == NULL)
 		goto fail;
 	      nested_funcs = tmp;
 	    }
-	  nested_funcs[nesting_level] = 0;
+	  nested_funcs[nesting_level].func = 0;
 	}
     }
 
@@ -2987,7 +3318,8 @@ parse_comp_unit (struct dwarf2_debug *st
   struct comp_unit* unit;
   unsigned int version;
   bfd_uint64_t abbrev_offset = 0;
-  unsigned int addr_size;
+  /* Initialize it just to avoid a GCC false warning.  */
+  unsigned int addr_size = -1;
   struct abbrev_info** abbrevs;
   unsigned int abbrev_number, bytes_read, i;
   struct abbrev_info *abbrev;
@@ -2999,19 +3331,11 @@ parse_comp_unit (struct dwarf2_debug *st
   bfd_vma high_pc = 0;
   bfd *abfd = stash->bfd_ptr;
   bfd_boolean high_pc_relative = FALSE;
+  enum dwarf_unit_type unit_type;
 
   version = read_2_bytes (abfd, info_ptr, end_ptr);
   info_ptr += 2;
-  BFD_ASSERT (offset_size == 4 || offset_size == 8);
-  if (offset_size == 4)
-    abbrev_offset = read_4_bytes (abfd, info_ptr, end_ptr);
-  else
-    abbrev_offset = read_8_bytes (abfd, info_ptr, end_ptr);
-  info_ptr += offset_size;
-  addr_size = read_1_byte (abfd, info_ptr, end_ptr);
-  info_ptr += 1;
-
-  if (version != 2 && version != 3 && version != 4)
+  if (version < 2 || version > 5)
     {
       /* PR 19872: A version number of 0 probably means that there is padding
 	 at the end of the .debug_info section.  Gold puts it there when
@@ -3021,12 +3345,45 @@ parse_comp_unit (struct dwarf2_debug *st
 	{
 	  _bfd_error_handler
 	    (_("Dwarf Error: found dwarf version '%u', this reader"
-	       " only handles version 2, 3 and 4 information."), version);
+	       " only handles version 2, 3, 4 and 5 information."), version);
 	  bfd_set_error (bfd_error_bad_value);
 	}
       return NULL;
     }
 
+  if (version < 5)
+    unit_type = DW_UT_compile;
+  else
+    {
+      unit_type = read_1_byte (abfd, info_ptr, end_ptr);
+      info_ptr += 1;
+
+      addr_size = read_1_byte (abfd, info_ptr, end_ptr);
+      info_ptr += 1;
+    }
+
+  BFD_ASSERT (offset_size == 4 || offset_size == 8);
+  if (offset_size == 4)
+    abbrev_offset = read_4_bytes (abfd, info_ptr, end_ptr);
+  else
+    abbrev_offset = read_8_bytes (abfd, info_ptr, end_ptr);
+  info_ptr += offset_size;
+
+  if (version < 5)
+    {
+      addr_size = read_1_byte (abfd, info_ptr, end_ptr);
+      info_ptr += 1;
+    }
+
+  if (unit_type == DW_UT_type)
+    {
+      /* Skip type signature.  */
+      info_ptr += 8;
+
+      /* Skip type offset.  */
+      info_ptr += offset_size;
+    }
+
   if (addr_size > sizeof (bfd_vma))
     {
       _bfd_error_handler
@@ -3086,7 +3443,6 @@ parse_comp_unit (struct dwarf2_debug *st
   unit->end_ptr = end_ptr;
   unit->stash = stash;
   unit->info_ptr_unit = info_ptr_unit;
-  unit->sec_info_ptr = stash->sec_info_ptr;
 
   for (i = 0; i < abbrev->num_attrs; ++i)
     {
@@ -3104,7 +3460,8 @@ parse_comp_unit (struct dwarf2_debug *st
 	  break;
 
 	case DW_AT_name:
-	  unit->name = attr.u.str;
+	  if (is_str_attr (attr.form))
+	    unit->name = attr.u.str;
 	  break;
 
 	case DW_AT_low_pc:
@@ -3940,19 +4297,19 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd,
   if (stash != NULL)
     {
       if (stash->orig_bfd == abfd
-          && section_vma_same (abfd, stash))
-        {
-          /* Check that we did previously find some debug information
-             before attempting to make use of it.  */
-          if (stash->bfd_ptr != NULL)
-            {
-              if (do_place && !place_sections (abfd, stash))
-                return FALSE;
-              return TRUE;
-            }
+	  && section_vma_same (abfd, stash))
+	{
+	  /* Check that we did previously find some debug information
+	     before attempting to make use of it.  */
+	  if (stash->bfd_ptr != NULL)
+	    {
+	      if (do_place && !place_sections (abfd, stash))
+		return FALSE;
+	      return TRUE;
+	    }
 
-          return FALSE;
-        }
+	  return FALSE;
+	}
       _bfd_dwarf2_cleanup_debug_info (abfd, pinfo);
       memset (stash, 0, amt);
     }
@@ -4193,19 +4550,19 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd
       addr = offset;
 
       /* If we have no SYMBOL but the section we're looking at is not a
-         code section, then take a look through the list of symbols to see
-         if we have a symbol at the address we're looking for.  If we do
-         then use this to look up line information.  This will allow us to
-         give file and line results for data symbols.  We exclude code
-         symbols here, if we look up a function symbol and then look up the
-         line information we'll actually return the line number for the
-         opening '{' rather than the function definition line.  This is
-         because looking up by symbol uses the line table, in which the
-         first line for a function is usually the opening '{', while
-         looking up the function by section + offset uses the
-         DW_AT_decl_line from the function DW_TAG_subprogram for the line,
-         which will be the line of the function name.  */
-      if ((section->flags & SEC_CODE) == 0)
+	 code section, then take a look through the list of symbols to see
+	 if we have a symbol at the address we're looking for.  If we do
+	 then use this to look up line information.  This will allow us to
+	 give file and line results for data symbols.  We exclude code
+	 symbols here, if we look up a function symbol and then look up the
+	 line information we'll actually return the line number for the
+	 opening '{' rather than the function definition line.  This is
+	 because looking up by symbol uses the line table, in which the
+	 first line for a function is usually the opening '{', while
+	 looking up the function by section + offset uses the
+	 DW_AT_decl_line from the function DW_TAG_subprogram for the line,
+	 which will be the line of the function name.  */
+      if (symbols != NULL && (section->flags & SEC_CODE) == 0)
 	{
 	  asymbol **tmp;
 
@@ -4217,10 +4574,10 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd
 	      {
 		symbol = *tmp;
 		do_line = TRUE;
-                /* For local symbols, keep going in the hope we find a
-                   global.  */
-                if ((symbol->flags & BSF_GLOBAL) != 0)
-                  break;
+		/* For local symbols, keep going in the hope we find a
+		   global.  */
+		if ((symbol->flags & BSF_GLOBAL) != 0)
+		  break;
 	      }
 	}
     }
@@ -4570,12 +4927,18 @@ _bfd_dwarf2_cleanup_debug_info (bfd *abf
 	}
     }
 
+  if (stash->funcinfo_hash_table)
+    bfd_hash_table_free (&stash->funcinfo_hash_table->base);
+  if (stash->varinfo_hash_table)
+    bfd_hash_table_free (&stash->varinfo_hash_table->base);
   if (stash->dwarf_abbrev_buffer)
     free (stash->dwarf_abbrev_buffer);
   if (stash->dwarf_line_buffer)
     free (stash->dwarf_line_buffer);
   if (stash->dwarf_str_buffer)
     free (stash->dwarf_str_buffer);
+  if (stash->dwarf_line_str_buffer)
+    free (stash->dwarf_line_str_buffer);
   if (stash->dwarf_ranges_buffer)
     free (stash->dwarf_ranges_buffer);
   if (stash->info_ptr_memory)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ecoff.c ./bfd/ecoff.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ecoff.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/ecoff.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Generic ECOFF (Extended-COFF) routines.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Original version by Per Bothner.
    Full support added by Ian Lance Taylor, ian@cygnus.com.
 
@@ -51,31 +51,31 @@
 /* This stuff is somewhat copied from coffcode.h.  */
 static asection bfd_debug_section =
 {
-  /* name,      id,  index, next, prev, flags, user_set_vma,       */
-     "*DEBUG*", 0,   0,     NULL, NULL, 0,     0,
-  /* linker_mark, linker_has_input, gc_mark, compress_status,      */
-     0,           0,                1,       0,
-  /* segment_mark, sec_info_type, use_rela_p,                      */
-     0,            0,             0,
+  /* name,	id,  index, next, prev, flags, user_set_vma,	   */
+     "*DEBUG*", 0,   0,	    NULL, NULL, 0,     0,
+  /* linker_mark, linker_has_input, gc_mark, compress_status,	   */
+     0,		  0,		    1,	     0,
+  /* segment_mark, sec_info_type, use_rela_p,			   */
+     0,		   0,		  0,
   /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5,   */
-     0,        0,        0,        0,        0,        0,
+     0,	       0,	 0,	   0,	     0,	       0,
   /* vma, lma, size, rawsize, compressed_size, relax, relax_count, */
-     0,   0,   0,    0,       0,               0,     0,
-  /* output_offset, output_section, alignment_power,               */
-     0,             NULL,           0,
+     0,	  0,   0,    0,	      0,	       0,     0,
+  /* output_offset, output_section, alignment_power,		   */
+     0,		    NULL,	    0,
   /* relocation, orelocation, reloc_count, filepos, rel_filepos,   */
-     NULL,       NULL,        0,           0,       0,
-  /* line_filepos, userdata, contents, lineno, lineno_count,       */
-     0,            NULL,     NULL,     NULL,   0,
-  /* entsize, kept_section, moving_line_filepos,                   */
-     0,       NULL,         0,
-  /* target_index, used_by_bfd, constructor_chain, owner,          */
-     0,            NULL,        NULL,              NULL,
-  /* symbol,                                                       */
+     NULL,	 NULL,	      0,	   0,	    0,
+  /* line_filepos, userdata, contents, lineno, lineno_count,	   */
+     0,		   NULL,     NULL,     NULL,   0,
+  /* entsize, kept_section, moving_line_filepos,		   */
+     0,	      NULL,	    0,
+  /* target_index, used_by_bfd, constructor_chain, owner,	   */
+     0,		   NULL,	NULL,		   NULL,
+  /* symbol,							   */
      NULL,
-  /* symbol_ptr_ptr,                                               */
+  /* symbol_ptr_ptr,						   */
      NULL,
-  /* map_head, map_tail                                            */
+  /* map_head, map_tail						   */
      { NULL }, { NULL }
 };
 
@@ -294,29 +294,29 @@ ecoff_sec_to_styp_flags (const char *nam
   }
   styp_flags [] =
   {
-    { _TEXT,    STYP_TEXT       },
-    { _DATA,    STYP_DATA       },
-    { _SDATA,   STYP_SDATA      },
-    { _RDATA,   STYP_RDATA      },
-    { _LITA,    STYP_LITA       },
-    { _LIT8,    STYP_LIT8       },
-    { _LIT4,    STYP_LIT4       },
-    { _BSS,     STYP_BSS        },
-    { _SBSS,    STYP_SBSS       },
-    { _INIT,    STYP_ECOFF_INIT },
-    { _FINI,    STYP_ECOFF_FINI },
-    { _PDATA,   STYP_PDATA      },
-    { _XDATA,   STYP_XDATA      },
-    { _LIB,     STYP_ECOFF_LIB  },
-    { _GOT,     STYP_GOT        },
-    { _HASH,    STYP_HASH       },
-    { _DYNAMIC, STYP_DYNAMIC    },
-    { _LIBLIST, STYP_LIBLIST    },
-    { _RELDYN,  STYP_RELDYN     },
-    { _CONFLIC, STYP_CONFLIC    },
-    { _DYNSTR,  STYP_DYNSTR     },
-    { _DYNSYM,  STYP_DYNSYM     },
-    { _RCONST,  STYP_RCONST     }
+    { _TEXT,	STYP_TEXT	},
+    { _DATA,	STYP_DATA	},
+    { _SDATA,	STYP_SDATA	},
+    { _RDATA,	STYP_RDATA	},
+    { _LITA,	STYP_LITA	},
+    { _LIT8,	STYP_LIT8	},
+    { _LIT4,	STYP_LIT4	},
+    { _BSS,	STYP_BSS	},
+    { _SBSS,	STYP_SBSS	},
+    { _INIT,	STYP_ECOFF_INIT },
+    { _FINI,	STYP_ECOFF_FINI },
+    { _PDATA,	STYP_PDATA	},
+    { _XDATA,	STYP_XDATA	},
+    { _LIB,	STYP_ECOFF_LIB	},
+    { _GOT,	STYP_GOT	},
+    { _HASH,	STYP_HASH	},
+    { _DYNAMIC, STYP_DYNAMIC	},
+    { _LIBLIST, STYP_LIBLIST	},
+    { _RELDYN,	STYP_RELDYN	},
+    { _CONFLIC, STYP_CONFLIC	},
+    { _DYNSTR,	STYP_DYNSTR	},
+    { _DYNSYM,	STYP_DYNSYM	},
+    { _RCONST,	STYP_RCONST	}
   };
   long styp = 0;
 
@@ -697,11 +697,11 @@ ecoff_set_symbol_info (bfd *abfd,
     {
       asym->flags = BSF_LOCAL;
       /* Normally, a local stProc symbol will have a corresponding
-         external symbol.  We mark the local symbol as a debugging
-         symbol, in order to prevent nm from printing both out.
-         Similarly, we mark stLabel and stabs symbols as debugging
-         symbols.  In both cases, we do want to set the value
-         correctly based on the symbol class.  */
+	 external symbol.  We mark the local symbol as a debugging
+	 symbol, in order to prevent nm from printing both out.
+	 Similarly, we mark stLabel and stabs symbols as debugging
+	 symbols.  In both cases, we do want to set the value
+	 correctly based on the symbol class.  */
       if (ecoff_sym->st == stProc
 	  || ecoff_sym->st == stLabel
 	  || ECOFF_IS_STAB (ecoff_sym))
@@ -961,7 +961,7 @@ _bfd_ecoff_slurp_symbol_table (bfd *abfd
       bfd_get_symcount (abfd) = internal_ptr - internal;
       _bfd_error_handler
 	/* xgettext:c-format */
-	(_("%B: warning: isymMax (%ld) is greater than ifdMax (%d)\n"),
+	(_("%B: warning: isymMax (%ld) is greater than ifdMax (%ld)"),
 	 abfd, ecoff_data (abfd)->debug_info.symbolic_header.isymMax,
 	 ecoff_data (abfd)->debug_info.symbolic_header.ifdMax);
     }
@@ -1278,12 +1278,12 @@ ecoff_type_to_string (bfd *abfd, FDR *fd
   if (qualifiers[0].type != tqNil)
     {
       /* Snarf up any array bounds in the correct order.  Arrays
-         store 5 successive words in the aux. table:
-        	word 0	RNDXR to type of the bounds (ie, int)
-        	word 1	Current file descriptor index
-        	word 2	low bound
-        	word 3	high bound (or -1 if [])
-        	word 4	stride size in bits.  */
+	 store 5 successive words in the aux. table:
+		word 0	RNDXR to type of the bounds (ie, int)
+		word 1	Current file descriptor index
+		word 2	low bound
+		word 3	high bound (or -1 if [])
+		word 4	stride size in bits.  */
       for (i = 0; i < 7; i++)
 	{
 	  if (qualifiers[i].type == tqArray)
@@ -1756,7 +1756,7 @@ _bfd_ecoff_find_nearest_line (bfd *abfd,
       bfd_size_type amt = sizeof (struct ecoff_find_line);
 
       ecoff_data (abfd)->find_line_info =
-          (struct ecoff_find_line *) bfd_zalloc (abfd, amt);
+	  (struct ecoff_find_line *) bfd_zalloc (abfd, amt);
       if (ecoff_data (abfd)->find_line_info == NULL)
 	return FALSE;
     }
@@ -2066,8 +2066,8 @@ ecoff_compute_section_file_positions (bf
 	       && (abfd->flags & D_PAGED) != 0)
 	{
 	  /* Skip up to the next page for an unallocated section, such
-             as the .comment section on the Alpha.  This leaves room
-             for the .bss section.  */
+	     as the .comment section on the Alpha.  This leaves room
+	     for the .bss section.  */
 	  first_nonalloc = FALSE;
 	  sofar = (sofar + round - 1) &~ (round - 1);
 	  file_sofar = (file_sofar + round - 1) &~ (round - 1);
@@ -2832,19 +2832,19 @@ _bfd_ecoff_write_object_contents (bfd *a
 
    The Alpha seems to use ________64E[BL]E[BL]_.  */
 
-#define ARMAP_BIG_ENDIAN 		'B'
-#define ARMAP_LITTLE_ENDIAN 		'L'
-#define ARMAP_MARKER 			'E'
-#define ARMAP_START_LENGTH 		10
+#define ARMAP_BIG_ENDIAN		'B'
+#define ARMAP_LITTLE_ENDIAN		'L'
+#define ARMAP_MARKER			'E'
+#define ARMAP_START_LENGTH		10
 #define ARMAP_HEADER_MARKER_INDEX	10
-#define ARMAP_HEADER_ENDIAN_INDEX 	11
-#define ARMAP_OBJECT_MARKER_INDEX 	12
-#define ARMAP_OBJECT_ENDIAN_INDEX 	13
-#define ARMAP_END_INDEX 		14
-#define ARMAP_END 			"_ "
+#define ARMAP_HEADER_ENDIAN_INDEX	11
+#define ARMAP_OBJECT_MARKER_INDEX	12
+#define ARMAP_OBJECT_ENDIAN_INDEX	13
+#define ARMAP_END_INDEX			14
+#define ARMAP_END			"_ "
 
 /* This is a magic number used in the hashing algorithm.  */
-#define ARMAP_HASH_MAGIC 		0x9dd68ab5
+#define ARMAP_HASH_MAGIC		0x9dd68ab5
 
 /* This returns the hash value to use for a string.  It also sets
    *REHASH to the rehash adjustment if the first slot is taken.  SIZE
@@ -3759,17 +3759,17 @@ ecoff_final_link_debug_accumulate (bfd *
   else									 \
     {									 \
       bfd_size_type amt = (bfd_size_type) size * symhdr->count;		 \
-      debug->ptr = (type) bfd_malloc (amt);                              \
+      debug->ptr = (type) bfd_malloc (amt);				 \
       if (debug->ptr == NULL)						 \
 	{								 \
-          ret = FALSE;							 \
-          goto return_something;					 \
+	  ret = FALSE;							 \
+	  goto return_something;					 \
 	}								 \
       if (bfd_seek (input_bfd, (file_ptr) symhdr->offset, SEEK_SET) != 0 \
 	  || bfd_bread (debug->ptr, amt, input_bfd) != amt)		 \
 	{								 \
-          ret = FALSE;							 \
-          goto return_something;					 \
+	  ret = FALSE;							 \
+	  goto return_something;					 \
 	}								 \
     }
 
@@ -3969,7 +3969,7 @@ ecoff_reloc_link_order (bfd *output_bfd,
       struct bfd_link_hash_entry *h;
 
       /* Treat a reloc against a defined symbol as though it were
-         actually against the section.  */
+	 actually against the section.  */
       h = bfd_wrapped_link_hash_lookup (output_bfd, info,
 					link_order->u.reloc.p->u.name,
 					FALSE, FALSE, FALSE);
@@ -3980,8 +3980,8 @@ ecoff_reloc_link_order (bfd *output_bfd,
 	  type = bfd_section_reloc_link_order;
 	  section = h->u.def.section->output_section;
 	  /* It seems that we ought to add the symbol value to the
-             addend here, but in practice it has already been added
-             because it was passed to constructor_callback.  */
+	     addend here, but in practice it has already been added
+	     because it was passed to constructor_callback.  */
 	  addend += section->vma + h->u.def.section->output_offset;
 	}
       else
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ecofflink.c ./bfd/ecofflink.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ecofflink.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/ecofflink.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Routines to link ECOFF debugging information.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -51,40 +51,40 @@ _bfd_ecoff_swap_tir_in (int bigend, cons
   /* now the fun stuff...  */
   if (bigend)
     {
-      intern->fBitfield   = 0 != (ext->t_bits1[0] & TIR_BITS1_FBITFIELD_BIG);
-      intern->continued   = 0 != (ext->t_bits1[0] & TIR_BITS1_CONTINUED_BIG);
-      intern->bt          = (ext->t_bits1[0] & TIR_BITS1_BT_BIG)
-                          >>                   TIR_BITS1_BT_SH_BIG;
-      intern->tq4         = (ext->t_tq45[0] & TIR_BITS_TQ4_BIG)
+      intern->fBitfield	  = 0 != (ext->t_bits1[0] & TIR_BITS1_FBITFIELD_BIG);
+      intern->continued	  = 0 != (ext->t_bits1[0] & TIR_BITS1_CONTINUED_BIG);
+      intern->bt	  = (ext->t_bits1[0] & TIR_BITS1_BT_BIG)
+			  >>		       TIR_BITS1_BT_SH_BIG;
+      intern->tq4	  = (ext->t_tq45[0] & TIR_BITS_TQ4_BIG)
 			  >>		      TIR_BITS_TQ4_SH_BIG;
-      intern->tq5         = (ext->t_tq45[0] & TIR_BITS_TQ5_BIG)
+      intern->tq5	  = (ext->t_tq45[0] & TIR_BITS_TQ5_BIG)
 			  >>		      TIR_BITS_TQ5_SH_BIG;
-      intern->tq0         = (ext->t_tq01[0] & TIR_BITS_TQ0_BIG)
+      intern->tq0	  = (ext->t_tq01[0] & TIR_BITS_TQ0_BIG)
 			  >>		      TIR_BITS_TQ0_SH_BIG;
-      intern->tq1         = (ext->t_tq01[0] & TIR_BITS_TQ1_BIG)
+      intern->tq1	  = (ext->t_tq01[0] & TIR_BITS_TQ1_BIG)
 			  >>		      TIR_BITS_TQ1_SH_BIG;
-      intern->tq2         = (ext->t_tq23[0] & TIR_BITS_TQ2_BIG)
+      intern->tq2	  = (ext->t_tq23[0] & TIR_BITS_TQ2_BIG)
 			  >>		      TIR_BITS_TQ2_SH_BIG;
-      intern->tq3         = (ext->t_tq23[0] & TIR_BITS_TQ3_BIG)
+      intern->tq3	  = (ext->t_tq23[0] & TIR_BITS_TQ3_BIG)
 			  >>		      TIR_BITS_TQ3_SH_BIG;
     }
   else
     {
-      intern->fBitfield   = 0 != (ext->t_bits1[0] & TIR_BITS1_FBITFIELD_LITTLE);
-      intern->continued   = 0 != (ext->t_bits1[0] & TIR_BITS1_CONTINUED_LITTLE);
-      intern->bt          = (ext->t_bits1[0] & TIR_BITS1_BT_LITTLE)
+      intern->fBitfield	  = 0 != (ext->t_bits1[0] & TIR_BITS1_FBITFIELD_LITTLE);
+      intern->continued	  = 0 != (ext->t_bits1[0] & TIR_BITS1_CONTINUED_LITTLE);
+      intern->bt	  = (ext->t_bits1[0] & TIR_BITS1_BT_LITTLE)
 			  >>		    TIR_BITS1_BT_SH_LITTLE;
-      intern->tq4         = (ext->t_tq45[0] & TIR_BITS_TQ4_LITTLE)
+      intern->tq4	  = (ext->t_tq45[0] & TIR_BITS_TQ4_LITTLE)
 			  >>		    TIR_BITS_TQ4_SH_LITTLE;
-      intern->tq5         = (ext->t_tq45[0] & TIR_BITS_TQ5_LITTLE)
+      intern->tq5	  = (ext->t_tq45[0] & TIR_BITS_TQ5_LITTLE)
 			  >>		    TIR_BITS_TQ5_SH_LITTLE;
-      intern->tq0         = (ext->t_tq01[0] & TIR_BITS_TQ0_LITTLE)
+      intern->tq0	  = (ext->t_tq01[0] & TIR_BITS_TQ0_LITTLE)
 			  >>		    TIR_BITS_TQ0_SH_LITTLE;
-      intern->tq1         = (ext->t_tq01[0] & TIR_BITS_TQ1_LITTLE)
+      intern->tq1	  = (ext->t_tq01[0] & TIR_BITS_TQ1_LITTLE)
 			  >>		    TIR_BITS_TQ1_SH_LITTLE;
-      intern->tq2         = (ext->t_tq23[0] & TIR_BITS_TQ2_LITTLE)
+      intern->tq2	  = (ext->t_tq23[0] & TIR_BITS_TQ2_LITTLE)
 			  >>		    TIR_BITS_TQ2_SH_LITTLE;
-      intern->tq3         = (ext->t_tq23[0] & TIR_BITS_TQ3_LITTLE)
+      intern->tq3	  = (ext->t_tq23[0] & TIR_BITS_TQ3_LITTLE)
 			  >>		    TIR_BITS_TQ3_SH_LITTLE;
     }
 
@@ -170,9 +170,9 @@ _bfd_ecoff_swap_rndx_in (int bigend,
     {
       intern->rfd   = (ext->r_bits[0] << RNDX_BITS0_RFD_SH_LEFT_BIG)
 		  | ((ext->r_bits[1] & RNDX_BITS1_RFD_BIG)
-		    		    >> RNDX_BITS1_RFD_SH_BIG);
+				    >> RNDX_BITS1_RFD_SH_BIG);
       intern->index = ((ext->r_bits[1] & RNDX_BITS1_INDEX_BIG)
-		    		    << RNDX_BITS1_INDEX_SH_LEFT_BIG)
+				    << RNDX_BITS1_INDEX_SH_LEFT_BIG)
 		  | (ext->r_bits[2] << RNDX_BITS2_INDEX_SH_LEFT_BIG)
 		  | (ext->r_bits[3] << RNDX_BITS3_INDEX_SH_LEFT_BIG);
     }
@@ -180,9 +180,9 @@ _bfd_ecoff_swap_rndx_in (int bigend,
     {
       intern->rfd   = (ext->r_bits[0] << RNDX_BITS0_RFD_SH_LEFT_LITTLE)
 		  | ((ext->r_bits[1] & RNDX_BITS1_RFD_LITTLE)
-		    		    << RNDX_BITS1_RFD_SH_LEFT_LITTLE);
+				    << RNDX_BITS1_RFD_SH_LEFT_LITTLE);
       intern->index = ((ext->r_bits[1] & RNDX_BITS1_INDEX_LITTLE)
-		    		    >> RNDX_BITS1_INDEX_SH_LITTLE)
+				    >> RNDX_BITS1_INDEX_SH_LITTLE)
 		  | (ext->r_bits[2] << RNDX_BITS2_INDEX_SH_LEFT_LITTLE)
 		  | ((unsigned int) ext->r_bits[3]
 		     << RNDX_BITS3_INDEX_SH_LEFT_LITTLE);
@@ -898,7 +898,7 @@ bfd_ecoff_debug_accumulate (void * handl
       if (! bfd_link_relocatable (info))
 	{
 
-	  /* When are are hashing strings, we lie about the number of
+	  /* When we are hashing strings, we lie about the number of
 	     strings attached to each FDR.  We need to set cbSs
 	     because some versions of dbx apparently use it to decide
 	     how much of the string table to read in.  */
@@ -1044,7 +1044,7 @@ ecoff_add_string (struct accumulate *ain
   if (bfd_link_relocatable (info))
     {
       if (!add_memory_shuffle (ainfo, &ainfo->ss, &ainfo->ss_end,
-                               (bfd_byte *) string, len + 1))
+			       (bfd_byte *) string, len + 1))
 	return -1;
       ret = symhdr->issMax;
       symhdr->issMax += len + 1;
@@ -1897,11 +1897,11 @@ lookup_line (bfd *abfd,
      (output format has been edited for our purposes):
 
      FDR [2]: (main.C): First instruction: 0x12000207c <x>
-       PDR [5] for File [2]: LoopTest__Xv                 <0x1200020a0> (a)
-       PDR [7] for File [2]: foo__Xv                      <0x120002168>
-     FDR [1]: (-1):     First instruction: 0x1200020e8 <y>
-       PDR [3] for File [1]:                              <0x120001ad0> (b)
-     FDR [6]: (-1):     First instruction: 0x1200026f0 <z>
+       PDR [5] for File [2]: LoopTest__Xv		  <0x1200020a0> (a)
+       PDR [7] for File [2]: foo__Xv			  <0x120002168>
+     FDR [1]: (-1):	First instruction: 0x1200020e8 <y>
+       PDR [3] for File [1]:				  <0x120001ad0> (b)
+     FDR [6]: (-1):	First instruction: 0x1200026f0 <z>
 
      (a) In the case of PDR5, the vma is such that the first few instructions
      of the procedure can be found.  But since the size of this procedure is
@@ -1987,60 +1987,60 @@ lookup_line (bfd *abfd,
       unsigned char *line_end;
       int lineno;
       /* This file uses ECOFF debugging information.  Each FDR has a
-         list of procedure descriptors (PDR).  The address in the FDR
-         is the absolute address of the first procedure.  The address
-         in the first PDR gives the offset of that procedure relative
-         to the object file's base-address.  The addresses in
-         subsequent PDRs specify each procedure's address relative to
-         the object file's base-address.  To make things more juicy,
-         whenever the PROF bit in the PDR is set, the real entry point
-         of the procedure may be 16 bytes below what would normally be
-         the procedure's entry point.  Instead, DEC came up with a
-         wicked scheme to create profiled libraries "on the fly":
-         instead of shipping a regular and a profiled version of each
-         library, they insert 16 bytes of unused space in front of
-         each procedure and set the "prof" bit in the PDR to indicate
-         that there is a gap there (this is done automagically by "as"
-         when option "-pg" is specified).  Thus, normally, you link
-         against such a library and, except for lots of 16 byte gaps
-         between functions, things will behave as usual.  However,
-         when invoking "ld" with option "-pg", it will fill those gaps
-         with code that calls mcount().  It then moves the function's
-         entry point down by 16 bytes, and out pops a binary that has
-         all functions profiled.
-
-         NOTE: Neither FDRs nor PDRs are strictly sorted in memory
-               order.  For example, when including header-files that
-               define functions, the FDRs follow behind the including
-               file, even though their code may have been generated at
-               a lower address.  File coff-alpha.c from libbfd
-               illustrates this (use "odump -PFv" to look at a file's
-               FDR/PDR).  Similarly, PDRs are sometimes out of order
-               as well.  An example of this is OSF/1 v3.0 libc's
-               malloc.c.  I'm not sure why this happens, but it could
-               be due to optimizations that reorder a function's
-               position within an object-file.
-
-         Strategy:
-
-         On the first call to this function, we build a table of FDRs
-         that is sorted by the base-address of the object-file the FDR
-         is referring to.  Notice that each object-file may contain
-         code from multiple source files (e.g., due to code defined in
-         include files).  Thus, for any given base-address, there may
-         be multiple FDRs (but this case is, fortunately, uncommon).
-         lookup(addr) guarantees to return the first FDR that applies
-         to address ADDR.  Thus, after invoking lookup(), we have a
-         list of FDRs that may contain the PDR for ADDR.  Next, we
-         walk through the PDRs of these FDRs and locate the one that
-         is closest to ADDR (i.e., for which the difference between
-         ADDR and the PDR's entry point is positive and minimal).
-         Once, the right FDR and PDR are located, we simply walk
-         through the line-number table to lookup the line-number that
-         best matches ADDR.  Obviously, things could be sped up by
-         keeping a sorted list of PDRs instead of a sorted list of
-         FDRs.  However, this would increase space requirements
-         considerably, which is undesirable.  */
+	 list of procedure descriptors (PDR).  The address in the FDR
+	 is the absolute address of the first procedure.  The address
+	 in the first PDR gives the offset of that procedure relative
+	 to the object file's base-address.  The addresses in
+	 subsequent PDRs specify each procedure's address relative to
+	 the object file's base-address.  To make things more juicy,
+	 whenever the PROF bit in the PDR is set, the real entry point
+	 of the procedure may be 16 bytes below what would normally be
+	 the procedure's entry point.  Instead, DEC came up with a
+	 wicked scheme to create profiled libraries "on the fly":
+	 instead of shipping a regular and a profiled version of each
+	 library, they insert 16 bytes of unused space in front of
+	 each procedure and set the "prof" bit in the PDR to indicate
+	 that there is a gap there (this is done automagically by "as"
+	 when option "-pg" is specified).  Thus, normally, you link
+	 against such a library and, except for lots of 16 byte gaps
+	 between functions, things will behave as usual.  However,
+	 when invoking "ld" with option "-pg", it will fill those gaps
+	 with code that calls mcount().  It then moves the function's
+	 entry point down by 16 bytes, and out pops a binary that has
+	 all functions profiled.
+
+	 NOTE: Neither FDRs nor PDRs are strictly sorted in memory
+	       order.  For example, when including header-files that
+	       define functions, the FDRs follow behind the including
+	       file, even though their code may have been generated at
+	       a lower address.  File coff-alpha.c from libbfd
+	       illustrates this (use "odump -PFv" to look at a file's
+	       FDR/PDR).  Similarly, PDRs are sometimes out of order
+	       as well.  An example of this is OSF/1 v3.0 libc's
+	       malloc.c.  I'm not sure why this happens, but it could
+	       be due to optimizations that reorder a function's
+	       position within an object-file.
+
+	 Strategy:
+
+	 On the first call to this function, we build a table of FDRs
+	 that is sorted by the base-address of the object-file the FDR
+	 is referring to.  Notice that each object-file may contain
+	 code from multiple source files (e.g., due to code defined in
+	 include files).  Thus, for any given base-address, there may
+	 be multiple FDRs (but this case is, fortunately, uncommon).
+	 lookup(addr) guarantees to return the first FDR that applies
+	 to address ADDR.  Thus, after invoking lookup(), we have a
+	 list of FDRs that may contain the PDR for ADDR.  Next, we
+	 walk through the PDRs of these FDRs and locate the one that
+	 is closest to ADDR (i.e., for which the difference between
+	 ADDR and the PDR's entry point is positive and minimal).
+	 Once, the right FDR and PDR are located, we simply walk
+	 through the line-number table to lookup the line-number that
+	 best matches ADDR.  Obviously, things could be sped up by
+	 keeping a sorted list of PDRs instead of a sorted list of
+	 FDRs.  However, this would increase space requirements
+	 considerably, which is undesirable.  */
       external_pdr_size = debug_swap->external_pdr_size;
 
       /* eraxxon: The Horrible Hack: Because of the problems above, set 'i'
@@ -2053,13 +2053,13 @@ lookup_line (bfd *abfd,
       i = 0;
 
       /* Search FDR list starting at tab[i] for the PDR that best matches
-         OFFSET.  Normally, the FDR list is only one entry long.  */
+	 OFFSET.  Normally, the FDR list is only one entry long.  */
       best_fdr = NULL;
       do
 	{
 	  /* eraxxon: 'dist' and 'min_dist' can be negative now
-             because we iterate over every FDR rather than just ones
-             with a base address less than or equal to 'offset'.  */
+	     because we iterate over every FDR rather than just ones
+	     with a base address less than or equal to 'offset'.  */
 	  bfd_signed_vma dist = -1, min_dist = -1;
 	  char *pdr_hold;
 	  char *pdr_end;
@@ -2085,7 +2085,7 @@ lookup_line (bfd *abfd,
 		  dist = offset - (pdr.adr - 0x10 * pdr.prof);
 
 		  /* eraxxon: 'dist' can be negative now.  Note that
-                     'min_dist' can be negative if 'pdr_hold' below is NULL.  */
+		     'min_dist' can be negative if 'pdr_hold' below is NULL.  */
 		  if (!pdr_hold || (dist >= 0 && dist < min_dist))
 		    {
 		      min_dist = dist;
@@ -2114,9 +2114,9 @@ lookup_line (bfd *abfd,
       pdr_ptr = best_pdr;
       (*debug_swap->swap_pdr_in) (abfd, pdr_ptr, &pdr);
       /* Now we can look for the actual line number.  The line numbers
-         are stored in a very funky format, which I won't try to
-         describe.  The search is bounded by the end of the FDRs line
-         number entries.  */
+	 are stored in a very funky format, which I won't try to
+	 describe.  The search is bounded by the end of the FDRs line
+	 number entries.  */
       line_end = debug_info->line + fdr_ptr->cbLineOffset + fdr_ptr->cbLine;
 
       /* Make offset relative to procedure entry.  */
@@ -2150,7 +2150,7 @@ lookup_line (bfd *abfd,
 	}
 
       /* If fdr_ptr->rss is -1, then this file does not have full
-         symbols, at least according to gdb/mipsread.c.  */
+	 symbols, at least according to gdb/mipsread.c.  */
       if (fdr_ptr->rss == -1)
 	{
 	  line_info->cache.filename = NULL;
@@ -2252,7 +2252,7 @@ lookup_line (bfd *abfd,
 		    debug_info->ss + fdr_ptr->issBase + sym.iss;
 
 		  /* Check the next symbol to see if it is also an
-                     N_SO symbol.  */
+		     N_SO symbol.  */
 		  if (sym_ptr + external_sym_size < sym_ptr_end)
 		    {
 		      SYMR nextsym;
@@ -2263,7 +2263,7 @@ lookup_line (bfd *abfd,
 		      if (ECOFF_IS_STAB (&nextsym)
 			  && ECOFF_UNMARK_STAB (nextsym.index) == N_SO)
 			{
- 			  directory_name = current_file_name;
+			  directory_name = current_file_name;
 			  main_file_name = current_file_name =
 			    debug_info->ss + fdr_ptr->issBase + nextsym.iss;
 			  sym_ptr += external_sym_size;
@@ -2305,8 +2305,8 @@ lookup_line (bfd *abfd,
 	main_file_name = line_file_name;
 
       /* We need to remove the stuff after the colon in the function
-         name.  We also need to put the directory name and the file
-         name together.  */
+	 name.  We also need to put the directory name and the file
+	 name together.  */
       if (function_name == NULL)
 	len = funclen = 0;
       else
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ecoffswap.h ./bfd/ecoffswap.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ecoffswap.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/ecoffswap.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Generic ECOFF swapping routines, for BFD.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -102,31 +102,31 @@ ecoff_swap_hdr_in (bfd *abfd, void * ext
 
   *ext = *(struct hdr_ext *) ext_copy;
 
-  intern->magic         = H_GET_S16     (abfd, ext->h_magic);
-  intern->vstamp        = H_GET_S16     (abfd, ext->h_vstamp);
-  intern->ilineMax      = H_GET_32      (abfd, ext->h_ilineMax);
-  intern->cbLine        = ECOFF_GET_OFF (abfd, ext->h_cbLine);
-  intern->cbLineOffset  = ECOFF_GET_OFF (abfd, ext->h_cbLineOffset);
-  intern->idnMax        = H_GET_32      (abfd, ext->h_idnMax);
-  intern->cbDnOffset    = ECOFF_GET_OFF (abfd, ext->h_cbDnOffset);
-  intern->ipdMax        = H_GET_32      (abfd, ext->h_ipdMax);
-  intern->cbPdOffset    = ECOFF_GET_OFF (abfd, ext->h_cbPdOffset);
-  intern->isymMax       = H_GET_32      (abfd, ext->h_isymMax);
-  intern->cbSymOffset   = ECOFF_GET_OFF (abfd, ext->h_cbSymOffset);
-  intern->ioptMax       = H_GET_32      (abfd, ext->h_ioptMax);
-  intern->cbOptOffset   = ECOFF_GET_OFF (abfd, ext->h_cbOptOffset);
-  intern->iauxMax       = H_GET_32      (abfd, ext->h_iauxMax);
-  intern->cbAuxOffset   = ECOFF_GET_OFF (abfd, ext->h_cbAuxOffset);
-  intern->issMax        = H_GET_32      (abfd, ext->h_issMax);
-  intern->cbSsOffset    = ECOFF_GET_OFF (abfd, ext->h_cbSsOffset);
-  intern->issExtMax     = H_GET_32      (abfd, ext->h_issExtMax);
+  intern->magic		= H_GET_S16	(abfd, ext->h_magic);
+  intern->vstamp	= H_GET_S16	(abfd, ext->h_vstamp);
+  intern->ilineMax	= H_GET_32	(abfd, ext->h_ilineMax);
+  intern->cbLine	= ECOFF_GET_OFF (abfd, ext->h_cbLine);
+  intern->cbLineOffset	= ECOFF_GET_OFF (abfd, ext->h_cbLineOffset);
+  intern->idnMax	= H_GET_32	(abfd, ext->h_idnMax);
+  intern->cbDnOffset	= ECOFF_GET_OFF (abfd, ext->h_cbDnOffset);
+  intern->ipdMax	= H_GET_32	(abfd, ext->h_ipdMax);
+  intern->cbPdOffset	= ECOFF_GET_OFF (abfd, ext->h_cbPdOffset);
+  intern->isymMax	= H_GET_32	(abfd, ext->h_isymMax);
+  intern->cbSymOffset	= ECOFF_GET_OFF (abfd, ext->h_cbSymOffset);
+  intern->ioptMax	= H_GET_32	(abfd, ext->h_ioptMax);
+  intern->cbOptOffset	= ECOFF_GET_OFF (abfd, ext->h_cbOptOffset);
+  intern->iauxMax	= H_GET_32	(abfd, ext->h_iauxMax);
+  intern->cbAuxOffset	= ECOFF_GET_OFF (abfd, ext->h_cbAuxOffset);
+  intern->issMax	= H_GET_32	(abfd, ext->h_issMax);
+  intern->cbSsOffset	= ECOFF_GET_OFF (abfd, ext->h_cbSsOffset);
+  intern->issExtMax	= H_GET_32	(abfd, ext->h_issExtMax);
   intern->cbSsExtOffset = ECOFF_GET_OFF (abfd, ext->h_cbSsExtOffset);
-  intern->ifdMax        = H_GET_32      (abfd, ext->h_ifdMax);
-  intern->cbFdOffset    = ECOFF_GET_OFF (abfd, ext->h_cbFdOffset);
-  intern->crfd          = H_GET_32      (abfd, ext->h_crfd);
-  intern->cbRfdOffset   = ECOFF_GET_OFF (abfd, ext->h_cbRfdOffset);
-  intern->iextMax       = H_GET_32      (abfd, ext->h_iextMax);
-  intern->cbExtOffset   = ECOFF_GET_OFF (abfd, ext->h_cbExtOffset);
+  intern->ifdMax	= H_GET_32	(abfd, ext->h_ifdMax);
+  intern->cbFdOffset	= ECOFF_GET_OFF (abfd, ext->h_cbFdOffset);
+  intern->crfd		= H_GET_32	(abfd, ext->h_crfd);
+  intern->cbRfdOffset	= ECOFF_GET_OFF (abfd, ext->h_cbRfdOffset);
+  intern->iextMax	= H_GET_32	(abfd, ext->h_iextMax);
+  intern->cbExtOffset	= ECOFF_GET_OFF (abfd, ext->h_cbExtOffset);
 
 #ifdef TEST
   if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
@@ -144,30 +144,30 @@ ecoff_swap_hdr_out (bfd *abfd, const HDR
 
   *intern = *intern_copy;
 
-  H_PUT_S16     (abfd, intern->magic,         ext->h_magic);
-  H_PUT_S16     (abfd, intern->vstamp,        ext->h_vstamp);
-  H_PUT_32      (abfd, intern->ilineMax,      ext->h_ilineMax);
-  ECOFF_PUT_OFF (abfd, intern->cbLine,        ext->h_cbLine);
+  H_PUT_S16	(abfd, intern->magic,	      ext->h_magic);
+  H_PUT_S16	(abfd, intern->vstamp,	      ext->h_vstamp);
+  H_PUT_32	(abfd, intern->ilineMax,      ext->h_ilineMax);
+  ECOFF_PUT_OFF (abfd, intern->cbLine,	      ext->h_cbLine);
   ECOFF_PUT_OFF (abfd, intern->cbLineOffset,  ext->h_cbLineOffset);
-  H_PUT_32      (abfd, intern->idnMax,        ext->h_idnMax);
+  H_PUT_32	(abfd, intern->idnMax,	      ext->h_idnMax);
   ECOFF_PUT_OFF (abfd, intern->cbDnOffset,    ext->h_cbDnOffset);
-  H_PUT_32      (abfd, intern->ipdMax,        ext->h_ipdMax);
+  H_PUT_32	(abfd, intern->ipdMax,	      ext->h_ipdMax);
   ECOFF_PUT_OFF (abfd, intern->cbPdOffset,    ext->h_cbPdOffset);
-  H_PUT_32      (abfd, intern->isymMax,       ext->h_isymMax);
+  H_PUT_32	(abfd, intern->isymMax,	      ext->h_isymMax);
   ECOFF_PUT_OFF (abfd, intern->cbSymOffset,   ext->h_cbSymOffset);
-  H_PUT_32      (abfd, intern->ioptMax,       ext->h_ioptMax);
+  H_PUT_32	(abfd, intern->ioptMax,	      ext->h_ioptMax);
   ECOFF_PUT_OFF (abfd, intern->cbOptOffset,   ext->h_cbOptOffset);
-  H_PUT_32      (abfd, intern->iauxMax,       ext->h_iauxMax);
+  H_PUT_32	(abfd, intern->iauxMax,	      ext->h_iauxMax);
   ECOFF_PUT_OFF (abfd, intern->cbAuxOffset,   ext->h_cbAuxOffset);
-  H_PUT_32      (abfd, intern->issMax,        ext->h_issMax);
+  H_PUT_32	(abfd, intern->issMax,	      ext->h_issMax);
   ECOFF_PUT_OFF (abfd, intern->cbSsOffset,    ext->h_cbSsOffset);
-  H_PUT_32      (abfd, intern->issExtMax,     ext->h_issExtMax);
+  H_PUT_32	(abfd, intern->issExtMax,     ext->h_issExtMax);
   ECOFF_PUT_OFF (abfd, intern->cbSsExtOffset, ext->h_cbSsExtOffset);
-  H_PUT_32      (abfd, intern->ifdMax,        ext->h_ifdMax);
+  H_PUT_32	(abfd, intern->ifdMax,	      ext->h_ifdMax);
   ECOFF_PUT_OFF (abfd, intern->cbFdOffset,    ext->h_cbFdOffset);
-  H_PUT_32      (abfd, intern->crfd,          ext->h_crfd);
+  H_PUT_32	(abfd, intern->crfd,	      ext->h_crfd);
   ECOFF_PUT_OFF (abfd, intern->cbRfdOffset,   ext->h_cbRfdOffset);
-  H_PUT_32      (abfd, intern->iextMax,       ext->h_iextMax);
+  H_PUT_32	(abfd, intern->iextMax,	      ext->h_iextMax);
   ECOFF_PUT_OFF (abfd, intern->cbExtOffset,   ext->h_cbExtOffset);
 
 #ifdef TEST
@@ -185,32 +185,32 @@ ecoff_swap_fdr_in (bfd *abfd, void * ext
 
   *ext = *(struct fdr_ext *) ext_copy;
 
-  intern->adr           = ECOFF_GET_OFF (abfd, ext->f_adr);
-  intern->rss           = H_GET_32 (abfd, ext->f_rss);
+  intern->adr		= ECOFF_GET_OFF (abfd, ext->f_adr);
+  intern->rss		= H_GET_32 (abfd, ext->f_rss);
 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
   if (intern->rss == (signed long) 0xffffffff)
     intern->rss = -1;
 #endif
-  intern->issBase       = H_GET_32 (abfd, ext->f_issBase);
-  intern->cbSs          = ECOFF_GET_OFF (abfd, ext->f_cbSs);
-  intern->isymBase      = H_GET_32 (abfd, ext->f_isymBase);
-  intern->csym          = H_GET_32 (abfd, ext->f_csym);
-  intern->ilineBase     = H_GET_32 (abfd, ext->f_ilineBase);
-  intern->cline         = H_GET_32 (abfd, ext->f_cline);
-  intern->ioptBase      = H_GET_32 (abfd, ext->f_ioptBase);
-  intern->copt          = H_GET_32 (abfd, ext->f_copt);
+  intern->issBase	= H_GET_32 (abfd, ext->f_issBase);
+  intern->cbSs		= ECOFF_GET_OFF (abfd, ext->f_cbSs);
+  intern->isymBase	= H_GET_32 (abfd, ext->f_isymBase);
+  intern->csym		= H_GET_32 (abfd, ext->f_csym);
+  intern->ilineBase	= H_GET_32 (abfd, ext->f_ilineBase);
+  intern->cline		= H_GET_32 (abfd, ext->f_cline);
+  intern->ioptBase	= H_GET_32 (abfd, ext->f_ioptBase);
+  intern->copt		= H_GET_32 (abfd, ext->f_copt);
 #if defined (ECOFF_32) || defined (ECOFF_SIGNED_32)
-  intern->ipdFirst      = H_GET_16 (abfd, ext->f_ipdFirst);
-  intern->cpd           = H_GET_16 (abfd, ext->f_cpd);
+  intern->ipdFirst	= H_GET_16 (abfd, ext->f_ipdFirst);
+  intern->cpd		= H_GET_16 (abfd, ext->f_cpd);
 #endif
 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
-  intern->ipdFirst      = H_GET_32 (abfd, ext->f_ipdFirst);
-  intern->cpd           = H_GET_32 (abfd, ext->f_cpd);
+  intern->ipdFirst	= H_GET_32 (abfd, ext->f_ipdFirst);
+  intern->cpd		= H_GET_32 (abfd, ext->f_cpd);
 #endif
-  intern->iauxBase      = H_GET_32 (abfd, ext->f_iauxBase);
-  intern->caux          = H_GET_32 (abfd, ext->f_caux);
-  intern->rfdBase       = H_GET_32 (abfd, ext->f_rfdBase);
-  intern->crfd          = H_GET_32 (abfd, ext->f_crfd);
+  intern->iauxBase	= H_GET_32 (abfd, ext->f_iauxBase);
+  intern->caux		= H_GET_32 (abfd, ext->f_caux);
+  intern->rfdBase	= H_GET_32 (abfd, ext->f_rfdBase);
+  intern->crfd		= H_GET_32 (abfd, ext->f_crfd);
 
   /* Now the fun stuff...  */
   if (bfd_header_big_endian (abfd))
@@ -235,8 +235,8 @@ ecoff_swap_fdr_in (bfd *abfd, void * ext
     }
   intern->reserved = 0;
 
-  intern->cbLineOffset  = ECOFF_GET_OFF (abfd, ext->f_cbLineOffset);
-  intern->cbLine        = ECOFF_GET_OFF (abfd, ext->f_cbLine);
+  intern->cbLineOffset	= ECOFF_GET_OFF (abfd, ext->f_cbLineOffset);
+  intern->cbLine	= ECOFF_GET_OFF (abfd, ext->f_cbLine);
 
 #ifdef TEST
   if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
@@ -324,20 +324,20 @@ ecoff_swap_pdr_in (bfd *abfd, void * ext
 
   memset ((void *) intern, 0, sizeof (*intern));
 
-  intern->adr           = ECOFF_GET_OFF (abfd, ext->p_adr);
-  intern->isym          = H_GET_32 (abfd, ext->p_isym);
-  intern->iline         = H_GET_32 (abfd, ext->p_iline);
-  intern->regmask       = H_GET_32 (abfd, ext->p_regmask);
-  intern->regoffset     = H_GET_S32 (abfd, ext->p_regoffset);
-  intern->iopt          = H_GET_S32 (abfd, ext->p_iopt);
-  intern->fregmask      = H_GET_32 (abfd, ext->p_fregmask);
-  intern->fregoffset    = H_GET_S32 (abfd, ext->p_fregoffset);
-  intern->frameoffset   = H_GET_S32 (abfd, ext->p_frameoffset);
-  intern->framereg      = H_GET_16 (abfd, ext->p_framereg);
-  intern->pcreg         = H_GET_16 (abfd, ext->p_pcreg);
-  intern->lnLow         = H_GET_32 (abfd, ext->p_lnLow);
-  intern->lnHigh        = H_GET_32 (abfd, ext->p_lnHigh);
-  intern->cbLineOffset  = ECOFF_GET_OFF (abfd, ext->p_cbLineOffset);
+  intern->adr		= ECOFF_GET_OFF (abfd, ext->p_adr);
+  intern->isym		= H_GET_32 (abfd, ext->p_isym);
+  intern->iline		= H_GET_32 (abfd, ext->p_iline);
+  intern->regmask	= H_GET_32 (abfd, ext->p_regmask);
+  intern->regoffset	= H_GET_S32 (abfd, ext->p_regoffset);
+  intern->iopt		= H_GET_S32 (abfd, ext->p_iopt);
+  intern->fregmask	= H_GET_32 (abfd, ext->p_fregmask);
+  intern->fregoffset	= H_GET_S32 (abfd, ext->p_fregoffset);
+  intern->frameoffset	= H_GET_S32 (abfd, ext->p_frameoffset);
+  intern->framereg	= H_GET_16 (abfd, ext->p_framereg);
+  intern->pcreg		= H_GET_16 (abfd, ext->p_pcreg);
+  intern->lnLow		= H_GET_32 (abfd, ext->p_lnLow);
+  intern->lnHigh	= H_GET_32 (abfd, ext->p_lnHigh);
+  intern->cbLineOffset	= ECOFF_GET_OFF (abfd, ext->p_cbLineOffset);
 
 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
   if (intern->isym == (signed long) 0xffffffff)
@@ -386,19 +386,19 @@ ecoff_swap_pdr_out (bfd *abfd, const PDR
   /* Make it reasonable to do in-place.  */
   *intern = *intern_copy;
 
-  ECOFF_PUT_OFF (abfd, intern->adr,          ext->p_adr);
-  H_PUT_32      (abfd, intern->isym,         ext->p_isym);
-  H_PUT_32      (abfd, intern->iline,        ext->p_iline);
-  H_PUT_32      (abfd, intern->regmask,      ext->p_regmask);
-  H_PUT_32      (abfd, intern->regoffset,    ext->p_regoffset);
-  H_PUT_32      (abfd, intern->iopt,         ext->p_iopt);
-  H_PUT_32      (abfd, intern->fregmask,     ext->p_fregmask);
-  H_PUT_32      (abfd, intern->fregoffset,   ext->p_fregoffset);
-  H_PUT_32      (abfd, intern->frameoffset,  ext->p_frameoffset);
-  H_PUT_16      (abfd, intern->framereg,     ext->p_framereg);
-  H_PUT_16      (abfd, intern->pcreg,        ext->p_pcreg);
-  H_PUT_32      (abfd, intern->lnLow,        ext->p_lnLow);
-  H_PUT_32      (abfd, intern->lnHigh,       ext->p_lnHigh);
+  ECOFF_PUT_OFF (abfd, intern->adr,	     ext->p_adr);
+  H_PUT_32	(abfd, intern->isym,	     ext->p_isym);
+  H_PUT_32	(abfd, intern->iline,	     ext->p_iline);
+  H_PUT_32	(abfd, intern->regmask,	     ext->p_regmask);
+  H_PUT_32	(abfd, intern->regoffset,    ext->p_regoffset);
+  H_PUT_32	(abfd, intern->iopt,	     ext->p_iopt);
+  H_PUT_32	(abfd, intern->fregmask,     ext->p_fregmask);
+  H_PUT_32	(abfd, intern->fregoffset,   ext->p_fregoffset);
+  H_PUT_32	(abfd, intern->frameoffset,  ext->p_frameoffset);
+  H_PUT_16	(abfd, intern->framereg,     ext->p_framereg);
+  H_PUT_16	(abfd, intern->pcreg,	     ext->p_pcreg);
+  H_PUT_32	(abfd, intern->lnLow,	     ext->p_lnLow);
+  H_PUT_32	(abfd, intern->lnHigh,	     ext->p_lnHigh);
   ECOFF_PUT_OFF (abfd, intern->cbLineOffset, ext->p_cbLineOffset);
 
 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
@@ -444,8 +444,8 @@ ecoff_swap_sym_in (bfd *abfd, void * ext
 
   *ext = *(struct sym_ext *) ext_copy;
 
-  intern->iss           = H_GET_32 (abfd, ext->s_iss);
-  intern->value         = ECOFF_GET_OFF (abfd, ext->s_value);
+  intern->iss		= H_GET_32 (abfd, ext->s_iss);
+  intern->value		= ECOFF_GET_OFF (abfd, ext->s_value);
 
 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
   if (intern->iss == (signed long) 0xffffffff)
@@ -455,28 +455,28 @@ ecoff_swap_sym_in (bfd *abfd, void * ext
   /* Now the fun stuff...  */
   if (bfd_header_big_endian (abfd))
     {
-      intern->st          =  (ext->s_bits1[0] & SYM_BITS1_ST_BIG)
+      intern->st	  =  (ext->s_bits1[0] & SYM_BITS1_ST_BIG)
 					     >> SYM_BITS1_ST_SH_BIG;
-      intern->sc          = ((ext->s_bits1[0] & SYM_BITS1_SC_BIG)
+      intern->sc	  = ((ext->s_bits1[0] & SYM_BITS1_SC_BIG)
 					     << SYM_BITS1_SC_SH_LEFT_BIG)
 			  | ((ext->s_bits2[0] & SYM_BITS2_SC_BIG)
 					     >> SYM_BITS2_SC_SH_BIG);
-      intern->reserved    = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_BIG);
-      intern->index       = ((ext->s_bits2[0] & SYM_BITS2_INDEX_BIG)
+      intern->reserved	  = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_BIG);
+      intern->index	  = ((ext->s_bits2[0] & SYM_BITS2_INDEX_BIG)
 					     << SYM_BITS2_INDEX_SH_LEFT_BIG)
 			  | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_BIG)
 			  | (ext->s_bits4[0] << SYM_BITS4_INDEX_SH_LEFT_BIG);
     }
   else
     {
-      intern->st          =  (ext->s_bits1[0] & SYM_BITS1_ST_LITTLE)
+      intern->st	  =  (ext->s_bits1[0] & SYM_BITS1_ST_LITTLE)
 					     >> SYM_BITS1_ST_SH_LITTLE;
-      intern->sc          = ((ext->s_bits1[0] & SYM_BITS1_SC_LITTLE)
+      intern->sc	  = ((ext->s_bits1[0] & SYM_BITS1_SC_LITTLE)
 					     >> SYM_BITS1_SC_SH_LITTLE)
 			  | ((ext->s_bits2[0] & SYM_BITS2_SC_LITTLE)
 					     << SYM_BITS2_SC_SH_LEFT_LITTLE);
-      intern->reserved    = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_LITTLE);
-      intern->index       = ((ext->s_bits2[0] & SYM_BITS2_INDEX_LITTLE)
+      intern->reserved	  = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_LITTLE);
+      intern->index	  = ((ext->s_bits2[0] & SYM_BITS2_INDEX_LITTLE)
 					     >> SYM_BITS2_INDEX_SH_LITTLE)
 			  | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_LITTLE)
 			  | ((unsigned int) ext->s_bits4[0]
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-am33lin.c ./bfd/elf32-am33lin.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-am33lin.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-am33lin.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Matsushita AM33/2.0 support for 32-bit GNU/Linux ELF
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -33,9 +33,9 @@
 #define ELF_MAXPAGESIZE		0x1000
 
 /* Rename global functions.  */
-#define _bfd_mn10300_elf_merge_private_bfd_data  _bfd_am33_elf_merge_private_bfd_data
-#define _bfd_mn10300_elf_object_p                _bfd_am33_elf_object_p
-#define _bfd_mn10300_elf_final_write_processing  _bfd_am33_elf_final_write_processing
+#define _bfd_mn10300_elf_merge_private_bfd_data	 _bfd_am33_elf_merge_private_bfd_data
+#define _bfd_mn10300_elf_object_p		 _bfd_am33_elf_object_p
+#define _bfd_mn10300_elf_final_write_processing	 _bfd_am33_elf_final_write_processing
 
 /* Support for core dump NOTE sections.  */
 static bfd_boolean
@@ -102,4 +102,6 @@ elf32_am33lin_grok_psinfo (bfd *abfd, El
 #define elf_backend_grok_prstatus	elf32_am33lin_grok_prstatus
 #define elf_backend_grok_psinfo		elf32_am33lin_grok_psinfo
 
+#define elf_backend_linux_prpsinfo32_ugid16	TRUE
+
 #include "elf-m10300.c"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-arc.c ./bfd/elf32-arc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-arc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-arc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* ARC-specific support for 32-bit ELF
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    Contributed by Cupertino Miranda (cmiranda@synopsys.com).
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -29,6 +29,10 @@
 #include "opcode/arc.h"
 #include "arc-plt.h"
 
+#define FEATURE_LIST_NAME bfd_feature_list
+#define CONFLICT_LIST bfd_conflict_list
+#include "opcode/arc-attrs.h"
+
 /* #define ARC_ENABLE_DEBUG 1  */
 #ifdef ARC_ENABLE_DEBUG
 static const char *
@@ -51,17 +55,20 @@ name_for_global_symbol (struct elf_link_
     Elf_Internal_Rela _rel;						\
     bfd_byte * _loc;							\
 									\
-    BFD_ASSERT (_htab->srel##SECTION &&_htab->srel##SECTION->contents); \
-    _loc = _htab->srel##SECTION->contents				\
-      + ((_htab->srel##SECTION->reloc_count)				\
-	 * sizeof (Elf32_External_Rela));				\
-    _htab->srel##SECTION->reloc_count++;				\
-    _rel.r_addend = ADDEND;						\
-    _rel.r_offset = (_htab->s##SECTION)->output_section->vma		\
-      + (_htab->s##SECTION)->output_offset + OFFSET;			\
-    BFD_ASSERT ((long) SYM_IDX != -1);					\
-    _rel.r_info = ELF32_R_INFO (SYM_IDX, TYPE);				\
-    bfd_elf32_swap_reloca_out (BFD, &_rel, _loc);			\
+    if (_htab->dynamic_sections_created == TRUE)				\
+      {									\
+	BFD_ASSERT (_htab->srel##SECTION &&_htab->srel##SECTION->contents); \
+	_loc = _htab->srel##SECTION->contents				\
+	  + ((_htab->srel##SECTION->reloc_count)			\
+	     * sizeof (Elf32_External_Rela));				\
+	_htab->srel##SECTION->reloc_count++;				\
+	_rel.r_addend = ADDEND;						\
+	_rel.r_offset = (_htab->s##SECTION)->output_section->vma	\
+	  + (_htab->s##SECTION)->output_offset + OFFSET;		\
+	BFD_ASSERT ((long) SYM_IDX != -1);				\
+	_rel.r_info = ELF32_R_INFO (SYM_IDX, TYPE);			\
+	bfd_elf32_swap_reloca_out (BFD, &_rel, _loc);			\
+      }									\
   }
 
 
@@ -442,8 +449,9 @@ arc_elf_print_private_bfd_data (bfd *abf
     case E_ARC_OSABI_ORIG : fprintf (file, " (ABI:legacy)"); break;
     case E_ARC_OSABI_V2   : fprintf (file, " (ABI:v2)");     break;
     case E_ARC_OSABI_V3   : fprintf (file, " (ABI:v3)");     break;
+    case E_ARC_OSABI_V4   : fprintf (file, " (ABI:v4)");     break;
     default:
-      fprintf (file, "(ABI:unknown)");
+      fprintf (file, " (ABI:unknown)");
       break;
     }
 
@@ -500,6 +508,305 @@ arc_info_to_howto_rel (bfd * abfd ATTRIB
   cache_ptr->howto = arc_elf_howto (r_type);
 }
 
+/* Extract CPU features from an NTBS.  */
+
+static unsigned
+arc_extract_features (const char *p)
+{
+  unsigned i, r = 0;
+
+  if (!p)
+    return 0;
+
+  for (i = 0; i < ARRAY_SIZE (bfd_feature_list); i++)
+    {
+      char *t = strstr (p, bfd_feature_list[i].attr);
+      unsigned l = strlen (bfd_feature_list[i].attr);
+      if ((t != NULL)
+	  && (t[l] == ','
+	      || t[l] == '\0'))
+	r |= bfd_feature_list[i].feature;
+    }
+
+  return r;
+}
+
+/* Concatenate two strings.  s1 can be NULL but not
+   s2.  */
+
+static char *
+arc_stralloc (char * s1, const char * s2)
+{
+  char *p;
+
+  /* Only s1 can be null.  */
+  BFD_ASSERT (s2);
+
+  p = s1 ? concat (s1, ",", s2, NULL) : (char *)s2;
+
+  return p;
+}
+
+/* Merge ARC object attributes from IBFD into OBFD.  Raise an error if
+   there are conflicting attributes.  */
+
+static bfd_boolean
+arc_elf_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
+{
+  bfd *obfd = info->output_bfd;
+  obj_attribute *in_attr;
+  obj_attribute *out_attr;
+  int i;
+  bfd_boolean result = TRUE;
+  const char *sec_name = get_elf_backend_data (ibfd)->obj_attrs_section;
+  char *tagname = NULL;
+
+  /* Skip the linker stubs file.  This preserves previous behavior
+     of accepting unknown attributes in the first input file - but
+     is that a bug?  */
+  if (ibfd->flags & BFD_LINKER_CREATED)
+    return TRUE;
+
+  /* Skip any input that hasn't attribute section.
+     This enables to link object files without attribute section with
+     any others.  */
+  if (bfd_get_section_by_name (ibfd, sec_name) == NULL)
+    return TRUE;
+
+  if (!elf_known_obj_attributes_proc (obfd)[0].i)
+    {
+      /* This is the first object.  Copy the attributes.  */
+      _bfd_elf_copy_obj_attributes (ibfd, obfd);
+
+      out_attr = elf_known_obj_attributes_proc (obfd);
+
+      /* Use the Tag_null value to indicate the attributes have been
+	 initialized.  */
+      out_attr[0].i = 1;
+
+      return TRUE;
+    }
+
+  in_attr = elf_known_obj_attributes_proc (ibfd);
+  out_attr = elf_known_obj_attributes_proc (obfd);
+
+  for (i = LEAST_KNOWN_OBJ_ATTRIBUTE; i < NUM_KNOWN_OBJ_ATTRIBUTES; i++)
+    {
+      /* Merge this attribute with existing attributes.  */
+      switch (i)
+	{
+	case Tag_ARC_PCS_config:
+	  if (out_attr[i].i == 0)
+	    out_attr[i].i = in_attr[i].i;
+	  else if (in_attr[i].i != 0 && out_attr[i].i != in_attr[i].i)
+	    {
+	      const char *tagval[] = { "Absent", "Bare-metal/mwdt",
+					"Bare-metal/newlib", "Linux/uclibc",
+					"Linux/glibc" };
+	      BFD_ASSERT (in_attr[i].i < 5);
+	      BFD_ASSERT (out_attr[i].i < 5);
+	      /* It's sometimes ok to mix different configs, so this is only
+		 a warning.  */
+	      _bfd_error_handler
+		(_("Warning: %B: Conflicting platform configuration "
+		   "%s with %s.\n"), ibfd,
+		 tagval[in_attr[i].i],
+		 tagval[out_attr[i].i]);
+	    }
+	  break;
+
+	case Tag_ARC_CPU_base:
+	  if (out_attr[i].i == 0)
+	    out_attr[i].i = in_attr[i].i;
+	  else if (in_attr[i].i != 0 && out_attr[i].i != in_attr[i].i
+		   && ((out_attr[i].i + in_attr[i].i) < 6))
+	    {
+	      const char *tagval[] = { "Absent", "ARC6xx", "ARC7xx",
+					"ARCEM", "ARCHS" };
+	      BFD_ASSERT (in_attr[i].i < 5);
+	      BFD_ASSERT (out_attr[i].i < 5);
+	      /* We cannot mix code for different CPUs.  */
+	      _bfd_error_handler
+		(_("error: %B: unable to merge CPU base attributes "
+		   "%s with %s.\n"),
+		 obfd,
+		 tagval[in_attr[i].i],
+		 tagval[out_attr[i].i]);
+	      result = FALSE;
+	      break;
+	    }
+	  else
+	    {
+	      /* The CPUs may be different, check if we can still mix
+		 the objects against the output choosen CPU.  */
+	      unsigned in_feature = 0;
+	      unsigned out_feature = 0;
+	      char *p1 = in_attr[Tag_ARC_ISA_config].s;
+	      char *p2 = out_attr[Tag_ARC_ISA_config].s;
+	      unsigned j;
+	      unsigned cpu_out;
+	      unsigned opcode_map[] = {0, ARC_OPCODE_ARC600, ARC_OPCODE_ARC700,
+				       ARC_OPCODE_ARCv2EM, ARC_OPCODE_ARCv2HS};
+
+	      BFD_ASSERT (in_attr[i].i < (sizeof (opcode_map)
+					  / sizeof (unsigned)));
+	      BFD_ASSERT (out_attr[i].i < (sizeof (opcode_map)
+					   / sizeof (unsigned)));
+	      cpu_out = opcode_map[out_attr[i].i];
+
+	      in_feature = arc_extract_features (p1);
+	      out_feature = arc_extract_features (p2);
+
+	      /* First, check if a feature is compatible with the
+		 output object chosen CPU.  */
+	      for (j = 0; j < ARRAY_SIZE (bfd_feature_list); j++)
+		if (((in_feature | out_feature) & bfd_feature_list[j].feature)
+		    && (!(cpu_out & bfd_feature_list[j].cpus)))
+		  {
+		    _bfd_error_handler
+		      (_("error: %B: unable to merge ISA extension attributes "
+			 "%s.\n"),
+		       obfd, bfd_feature_list[j].name);
+		    result = FALSE;
+		    break;
+		  }
+	      /* Second, if we have compatible features with the
+		 chosen CPU, check if they are compatible among
+		 them.  */
+	      for (j = 0; j < ARRAY_SIZE (bfd_conflict_list); j++)
+		if (((in_feature | out_feature) & bfd_conflict_list[j])
+		    == bfd_conflict_list[j])
+		  {
+		    unsigned k;
+		    for (k = 0; k < ARRAY_SIZE (bfd_feature_list); k++)
+		      {
+			if (in_feature &  bfd_feature_list[k].feature
+			    & bfd_conflict_list[j])
+			  p1 = (char *) bfd_feature_list[k].name;
+			if (out_feature &  bfd_feature_list[k].feature
+			    & bfd_conflict_list[j])
+			  p2 = (char *) bfd_feature_list[k].name;
+		      }
+		    _bfd_error_handler
+		      (_("error: %B: conflicting ISA extension attributes "
+			 "%s with %s.\n"),
+		       obfd, p1, p2);
+		    result = FALSE;
+		    break;
+		  }
+	      /* Everithing is alright.  */
+	      out_feature |= in_feature;
+	      p1 = NULL;
+	      for (j = 0; j < ARRAY_SIZE (bfd_feature_list); j++)
+		if (out_feature & bfd_feature_list[j].feature)
+		  p1 = arc_stralloc (p1, bfd_feature_list[j].attr);
+	      if (p1)
+		out_attr[Tag_ARC_ISA_config].s =
+		  _bfd_elf_attr_strdup (obfd, p1);
+	    }
+	  /* Fall through.  */
+	case Tag_ARC_CPU_variation:
+	case Tag_ARC_ISA_mpy_option:
+	case Tag_ARC_ABI_osver:
+	  /* Use the largest value specified.  */
+	  if (in_attr[i].i > out_attr[i].i)
+	    out_attr[i].i = in_attr[i].i;
+	  break;
+
+	case Tag_ARC_CPU_name:
+	  break;
+
+	case Tag_ARC_ABI_rf16:
+	  if (out_attr[i].i == 0)
+	    out_attr[i].i = in_attr[i].i;
+	  else if (out_attr[i].i != in_attr[i].i)
+	    {
+	      /* We cannot mix code with rf16 and without.  */
+	      _bfd_error_handler
+		(_("error: %B: cannot mix rf16 with full register set %B.\n"),
+		 obfd, ibfd);
+	      result = FALSE;
+	    }
+	  break;
+
+	case Tag_ARC_ABI_pic:
+	  tagname = "PIC";
+	  /* fall through */
+	case Tag_ARC_ABI_sda:
+	  if (!tagname)
+	    tagname = "SDA";
+	  /* fall through */
+	case Tag_ARC_ABI_tls:
+	  {
+	    const char *tagval[] = { "Absent", "MWDT", "GNU" };
+
+	    if (!tagname)
+	      tagname = "TLS";
+
+	    BFD_ASSERT (in_attr[i].i < 3);
+	    BFD_ASSERT (out_attr[i].i < 3);
+	    if (out_attr[i].i != 0 && in_attr[i].i != 0
+		&& out_attr[i].i != in_attr[i].i)
+	      {
+		_bfd_error_handler
+		  (_("error: %B: conflicting attributes %s: %s with %s.\n"),
+		   obfd, tagname,
+		   tagval[in_attr[i].i],
+		   tagval[out_attr[i].i]);
+		result = FALSE;
+	      }
+	    tagname = NULL;
+	    break;
+	  }
+
+	case Tag_ARC_ABI_double_size:
+	  tagname = "Double size";
+	  /* fall through */
+	case Tag_ARC_ABI_enumsize:
+	  if (!tagname)
+	    tagname = "Enum size";
+	  /* fall through */
+	case Tag_ARC_ABI_exceptions:
+	  if (!tagname)
+	    tagname = "ABI exceptions";
+
+	  if (out_attr[i].i != 0 && in_attr[i].i != 0
+	      && out_attr[i].i != in_attr[i].i)
+	    {
+	      _bfd_error_handler
+		(_("error: %B: conflicting attributes %s.\n"),
+		 obfd, tagname);
+	      result = FALSE;
+	    }
+	  break;
+
+	case Tag_ARC_ISA_apex:
+	  break; /* Do nothing for APEX attributes.  */
+
+	case Tag_ARC_ISA_config:
+	  /* It is handled in Tag_ARC_CPU_base.  */
+	  break;
+
+	default:
+	  result
+	    = result && _bfd_elf_merge_unknown_attribute_low (ibfd, obfd, i);
+	}
+
+      /* If out_attr was copied from in_attr then it won't have a type yet.  */
+      if (in_attr[i].type && !out_attr[i].type)
+	out_attr[i].type = in_attr[i].type;
+    }
+
+  /* Merge Tag_compatibility attributes and any common GNU ones.  */
+  if (!_bfd_elf_merge_object_attributes (ibfd, info))
+    return FALSE;
+
+  /* Check for any attributes not known on ARC.  */
+  result &= _bfd_elf_merge_unknown_attribute_list (ibfd, obfd);
+
+  return result;
+}
+
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 
@@ -517,6 +824,10 @@ arc_elf_merge_private_bfd_data (bfd *ibf
   if (! _bfd_generic_verify_endian_match (ibfd, info))
     return FALSE;
 
+  if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
+      || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
+    return TRUE;
+
   /* Collect ELF flags.  */
   in_flags = elf_elfheader (ibfd)->e_flags & EF_ARC_MACH_MSK;
   out_flags = elf_elfheader (obfd)->e_flags & EF_ARC_MACH_MSK;
@@ -527,9 +838,8 @@ arc_elf_merge_private_bfd_data (bfd *ibf
       out_flags = in_flags;
     }
 
-  if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
-      || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return TRUE;
+  if (!arc_elf_merge_attributes (ibfd, info))
+    return FALSE;
 
   /* Check to see if the input BFD actually contains any sections.  Do
      not short-circuit dynamic objects; their section list may be
@@ -569,20 +879,29 @@ arc_elf_merge_private_bfd_data (bfd *ibf
 			      ibfd, obfd);
 	  return FALSE;
 	}
-      else if (in_flags != out_flags)
+      else if ((in_flags != out_flags)
+	       /* If we have object attributes, then we already
+		  checked the objects compatibility, skip it.  */
+	       && !bfd_elf_get_obj_attr_int (ibfd, OBJ_ATTR_PROC,
+					     Tag_ARC_CPU_base))
 	{
 	  /* Warn if different flags.  */
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: uses different e_flags (0x%lx) fields than "
-	       "previous modules (0x%lx)"),
-	     ibfd, (long) in_flags, (long) out_flags);
+	    (_("%B: uses different e_flags (%#x) fields than "
+	       "previous modules (%#x)"),
+	     ibfd, in_flags, out_flags);
 	  if (in_flags && out_flags)
 	    return FALSE;
 	  /* MWDT doesnt set the eflags hence make sure we choose the
 	     eflags set by gcc.  */
 	  in_flags = in_flags > out_flags ? in_flags : out_flags;
 	}
+      else
+	{
+	  /* Everything is correct; don't change the output flags.  */
+	  in_flags = out_flags;
+	}
     }
 
   /* Update the flags.  */
@@ -596,6 +915,30 @@ arc_elf_merge_private_bfd_data (bfd *ibf
   return TRUE;
 }
 
+/* Return a best guess for the machine number based on the attributes.  */
+
+static unsigned int
+bfd_arc_get_mach_from_attributes (bfd * abfd)
+{
+  int arch = bfd_elf_get_obj_attr_int (abfd, OBJ_ATTR_PROC, Tag_ARC_CPU_base);
+  unsigned e_machine = elf_elfheader (abfd)->e_machine;
+
+  switch (arch)
+    {
+    case TAG_CPU_ARC6xx:
+      return bfd_mach_arc_arc600;
+    case TAG_CPU_ARC7xx:
+      return bfd_mach_arc_arc700;
+    case TAG_CPU_ARCEM:
+    case TAG_CPU_ARCHS:
+      return bfd_mach_arc_arcv2;
+    default:
+      break;
+    }
+  return (e_machine == EM_ARC_COMPACT)
+    ? bfd_mach_arc_arc700 : bfd_mach_arc_arcv2;
+}
+
 /* Set the right machine number for an ARC ELF file.  */
 static bfd_boolean
 arc_elf_object_p (bfd * abfd)
@@ -603,7 +946,7 @@ arc_elf_object_p (bfd * abfd)
   /* Make sure this is initialised, or you'll have the potential of passing
      garbage---or misleading values---into the call to
      bfd_default_set_arch_mach ().  */
-  int		  mach = bfd_mach_arc_arc700;
+  unsigned int	  mach = bfd_mach_arc_arc700;
   unsigned long   arch = elf_elfheader (abfd)->e_flags & EF_ARC_MACH_MSK;
   unsigned	  e_machine = elf_elfheader (abfd)->e_machine;
 
@@ -625,8 +968,7 @@ arc_elf_object_p (bfd * abfd)
 	    mach = bfd_mach_arc_arcv2;
 	    break;
 	  default:
-	    mach = (e_machine == EM_ARC_COMPACT)
-	      ? bfd_mach_arc_arc700 : bfd_mach_arc_arcv2;
+	    mach = bfd_arc_get_mach_from_attributes (abfd);
 	    break;
 	}
     }
@@ -657,6 +999,9 @@ arc_elf_final_write_processing (bfd * ab
 				bfd_boolean linker ATTRIBUTE_UNUSED)
 {
   unsigned long emf;
+  int osver = bfd_elf_get_obj_attr_int (abfd, OBJ_ATTR_PROC,
+					Tag_ARC_ABI_osver);
+  flagword e_flags = elf_elfheader (abfd)->e_flags & ~EF_ARC_OSABI_MSK;
 
   switch (bfd_get_mach (abfd))
     {
@@ -673,16 +1018,18 @@ arc_elf_final_write_processing (bfd * ab
       emf = EM_ARC_COMPACT2;
       break;
     default:
-      goto DO_NOTHING;
+      return;
     }
 
   elf_elfheader (abfd)->e_machine = emf;
 
   /* Record whatever is the current syscall ABI version.  */
-  elf_elfheader (abfd)->e_flags |= E_ARC_OSABI_CURRENT;
+  if (osver)
+    e_flags |= ((osver & 0x0f) << 8);
+  else
+    e_flags |= E_ARC_OSABI_V3;
 
-DO_NOTHING:
-  return;
+  elf_elfheader (abfd)->e_flags |=  e_flags;
 }
 
 #ifdef ARC_ENABLE_DEBUG
@@ -769,26 +1116,26 @@ arc_special_overflow_checks (const struc
 	  if (reloc_data.reloc_addend == 0)
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("%B(%A+0x%lx): CMEM relocation to `%s' is invalid, "
-		 "16 MSB should be 0x%04x (value is 0x%lx)"),
+	      (_("%B(%A+%#Lx): CMEM relocation to `%s' is invalid, "
+		 "16 MSB should be %#x (value is %#Lx)"),
 	       reloc_data.input_section->owner,
 	       reloc_data.input_section,
 	       reloc_data.reloc_offset,
 	       reloc_data.symbol_name,
 	       NPS_CMEM_HIGH_VALUE,
-	       (relocation));
+	       relocation);
 	  else
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("%B(%A+0x%lx): CMEM relocation to `%s+0x%lx' is invalid, "
-		 "16 MSB should be 0x%04x (value is 0x%lx)"),
+	      (_("%B(%A+%#Lx): CMEM relocation to `%s+%#Lx' is invalid, "
+		 "16 MSB should be %#x (value is %#Lx)"),
 	       reloc_data.input_section->owner,
 	       reloc_data.input_section,
 	       reloc_data.reloc_offset,
 	       reloc_data.symbol_name,
 	       reloc_data.reloc_addend,
 	       NPS_CMEM_HIGH_VALUE,
-	       (relocation));
+	       relocation);
 	  return bfd_reloc_overflow;
 	}
       break;
@@ -835,12 +1182,11 @@ arc_special_overflow_checks (const struc
 	     + (reloc_data.reloc_offset))))
 #define SECTSTART (bfd_signed_vma) (reloc_data.sym_section->output_section->vma \
 				    + reloc_data.sym_section->output_offset)
-
+#define JLI (bfd_signed_vma) (reloc_data.sym_section->output_section->vma)
 #define _SDA_BASE_ (bfd_signed_vma) (reloc_data.sdata_begin_symbol_vma)
 #define TLS_REL (bfd_signed_vma) \
   ((elf_hash_table (info))->tls_sec->output_section->vma)
 #define TLS_TBSS (8)
-#define TCB_SIZE (8)
 
 #define none (0)
 
@@ -890,7 +1236,7 @@ arc_special_overflow_checks (const struc
 #else
 
 #define PRINT_DEBUG_RELOC_INFO_BEFORE(...)
-#define PRINT_DEBUG_RELOC_INFO_AFTER 
+#define PRINT_DEBUG_RELOC_INFO_AFTER
 
 #endif /* ARC_ENABLE_DEBUG */
 
@@ -919,7 +1265,7 @@ arc_do_relocation (bfd_byte * contents,
   struct elf_link_hash_table *htab ATTRIBUTE_UNUSED = elf_hash_table (info);
   bfd_reloc_status_type flag;
 
-  if (reloc_data.should_relocate == FALSE)
+  if (!reloc_data.should_relocate)
     return bfd_reloc_ok;
 
   switch (reloc_data.howto->size)
@@ -1013,6 +1359,7 @@ arc_do_relocation (bfd_byte * contents,
 #undef P
 #undef SECTSTAR
 #undef SECTSTART
+#undef JLI
 #undef _SDA_BASE_
 #undef none
 
@@ -1034,20 +1381,20 @@ arc_do_relocation (bfd_byte * contents,
 			      corresponding to the st_shndx field of each
 			      local symbol.  */
 static bfd_boolean
-elf_arc_relocate_section (bfd *		          output_bfd,
+elf_arc_relocate_section (bfd *			  output_bfd,
 			  struct bfd_link_info *  info,
-			  bfd *		          input_bfd,
-			  asection *	          input_section,
-			  bfd_byte *	          contents,
+			  bfd *			  input_bfd,
+			  asection *		  input_section,
+			  bfd_byte *		  contents,
 			  Elf_Internal_Rela *     relocs,
 			  Elf_Internal_Sym *      local_syms,
-			  asection **	          local_sections)
+			  asection **		  local_sections)
 {
-  Elf_Internal_Shdr *	         symtab_hdr;
+  Elf_Internal_Shdr *		 symtab_hdr;
   struct elf_link_hash_entry **  sym_hashes;
-  Elf_Internal_Rela *	         rel;
-  Elf_Internal_Rela *	         wrel;
-  Elf_Internal_Rela *	         relend;
+  Elf_Internal_Rela *		 rel;
+  Elf_Internal_Rela *		 wrel;
+  Elf_Internal_Rela *		 relend;
   struct elf_link_hash_table *   htab = elf_hash_table (info);
 
   symtab_hdr = &((elf_tdata (input_bfd))->symtab_hdr);
@@ -1057,21 +1404,22 @@ elf_arc_relocate_section (bfd *		       
   relend = relocs + input_section->reloc_count;
   for (; rel < relend; wrel++, rel++)
     {
-      enum elf_arc_reloc_type       r_type;
+      enum elf_arc_reloc_type	    r_type;
       reloc_howto_type *	    howto;
       unsigned long		    r_symndx;
       struct elf_link_hash_entry *  h;
       Elf_Internal_Sym *	    sym;
       asection *		    sec;
       struct elf_link_hash_entry *  h2;
-      const char *                  msg;
+      const char *		    msg;
+      bfd_boolean		    unresolved_reloc = FALSE;
 
       struct arc_relocation_data reloc_data =
       {
 	.reloc_offset = 0,
 	.reloc_addend = 0,
 	.got_offset_value = 0,
-	.sym_value = 0,	
+	.sym_value = 0,
 	.sym_section = NULL,
 	.howto = NULL,
 	.input_section = NULL,
@@ -1124,9 +1472,9 @@ elf_arc_relocate_section (bfd *		       
       h2 = elf_link_hash_lookup (elf_hash_table (info), "__SDATA_BEGIN__",
 				 FALSE, FALSE, TRUE);
 
-      if (reloc_data.sdata_begin_symbol_vma_set == FALSE
-	    && h2 != NULL && h2->root.type != bfd_link_hash_undefined
-	    && h2->root.u.def.section->output_section != NULL)
+      if (!reloc_data.sdata_begin_symbol_vma_set
+	  && h2 != NULL && h2->root.type != bfd_link_hash_undefined
+	  && h2->root.u.def.section->output_section != NULL)
 	/* TODO: Verify this condition.  */
 	{
 	  reloc_data.sdata_begin_symbol_vma =
@@ -1152,6 +1500,14 @@ elf_arc_relocate_section (bfd *		       
 	}
       else
 	{
+	  bfd_boolean warned, ignored;
+	  bfd_vma relocation ATTRIBUTE_UNUSED;
+
+	  RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
+				   r_symndx, symtab_hdr, sym_hashes,
+				   h, sec, relocation,
+				   unresolved_reloc, warned, ignored);
+
 	  /* TODO: This code is repeated from below.  We should
 	     clean it and remove duplications.
 	     Sec is used check for discarded sections.
@@ -1241,7 +1597,12 @@ elf_arc_relocate_section (bfd *		       
 
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
+	  {
+	    struct elf_link_hash_entry *h_old = h;
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
+	    if (h->got.glist == 0 && h_old->got.glist != h->got.glist)
+	      h->got.glist = h_old->got.glist;
+	  }
 
 	  /* TODO: Need to validate what was the intention.  */
 	  /* BFD_ASSERT ((h->dynindx == -1) || (h->forced_local != 0)); */
@@ -1356,21 +1717,27 @@ elf_arc_relocate_section (bfd *		       
 	    {
 	      create_got_dynrelocs_for_single_entry (
 		  got_entry_for_type (list,
-		      		arc_got_entry_type_for_reloc (howto)),
+				arc_got_entry_type_for_reloc (howto)),
 		  output_bfd, info, NULL);
 	    }
 	}
 
+
+#define IS_ARC_PCREL_TYPE(TYPE) \
+  (   (TYPE == R_ARC_PC32)      \
+   || (TYPE == R_ARC_32_PCREL))
+
       switch (r_type)
 	{
 	  case R_ARC_32:
 	  case R_ARC_32_ME:
 	  case R_ARC_PC32:
 	  case R_ARC_32_PCREL:
-	    if ((bfd_link_pic (info))
-		&& ((r_type != R_ARC_PC32 && r_type != R_ARC_32_PCREL)
+	    if (bfd_link_pic (info)
+		&& (!IS_ARC_PCREL_TYPE (r_type)
 		    || (h != NULL
 			&& h->dynindx != -1
+			&& !h->def_regular
 			&& (!info->symbolic || !h->def_regular))))
 	      {
 		Elf_Internal_Rela outrel;
@@ -1387,6 +1754,7 @@ elf_arc_relocate_section (bfd *		       
 							   info,
 							   input_section,
 							   rel->r_offset);
+
 		if (outrel.r_offset == (bfd_vma) -1)
 		  skip = TRUE;
 
@@ -1394,10 +1762,6 @@ elf_arc_relocate_section (bfd *		       
 		outrel.r_offset += (input_section->output_section->vma
 				    + input_section->output_offset);
 
-#define IS_ARC_PCREL_TYPE(TYPE) \
-  (   (TYPE == R_ARC_PC32)      \
-   || (TYPE == R_ARC_32_PCREL))
-
 		if (skip)
 		  {
 		    memset (&outrel, 0, sizeof outrel);
@@ -1405,10 +1769,10 @@ elf_arc_relocate_section (bfd *		       
 		  }
 		else if (h != NULL
 			 && h->dynindx != -1
-			 && ((IS_ARC_PCREL_TYPE (r_type))
-			 || !(bfd_link_executable (info)
-			      || SYMBOLIC_BIND (info, h))
-			 || ! h->def_regular))
+			 && (IS_ARC_PCREL_TYPE (r_type)
+			     || !(bfd_link_executable (info)
+				  || SYMBOLIC_BIND (info, h))
+			     || ! h->def_regular))
 		  {
 		    BFD_ASSERT (h != NULL);
 		    if ((input_section->flags & SEC_ALLOC) != 0)
@@ -1444,7 +1808,7 @@ elf_arc_relocate_section (bfd *		       
 
 		bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 
-		if (relocate == FALSE)
+		if (!relocate)
 		  continue;
 	      }
 	    break;
@@ -1453,7 +1817,7 @@ elf_arc_relocate_section (bfd *		       
 	}
 
       if (is_reloc_SDA_relative (howto)
-	  && (reloc_data.sdata_begin_symbol_vma_set == FALSE))
+	  && !reloc_data.sdata_begin_symbol_vma_set)
 	{
 	  _bfd_error_handler
 	    ("Error: Linker symbol __SDATA_BEGIN__ not found");
@@ -1541,10 +1905,14 @@ elf_arc_check_relocs (bfd *			 abfd,
   const Elf_Internal_Rela *	rel_end;
   bfd *				dynobj;
   asection *			sreloc = NULL;
+  struct elf_link_hash_table *	htab = elf_hash_table (info);
 
   if (bfd_link_relocatable (info))
     return TRUE;
 
+  if (htab->dynobj == NULL)
+    htab->dynobj = abfd;
+
   dynobj = (elf_hash_table (info))->dynobj;
   symtab_hdr = &((elf_tdata (abfd))->symtab_hdr);
   sym_hashes = elf_sym_hashes (abfd);
@@ -1566,15 +1934,6 @@ elf_arc_check_relocs (bfd *			 abfd,
 	}
       howto = arc_elf_howto (r_type);
 
-      if (dynobj == NULL
-	  && (is_reloc_for_GOT (howto) == TRUE
-	      || is_reloc_for_TLS (howto) == TRUE))
-	{
-	  dynobj = elf_hash_table (info)->dynobj = abfd;
-	  if (! _bfd_elf_create_got_section (abfd, info))
-	    return FALSE;
-	}
-
       /* Load symbol information.  */
       r_symndx = ELF32_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info) /* Is a local symbol.  */
@@ -1591,7 +1950,8 @@ elf_arc_check_relocs (bfd *			 abfd,
 	       and the dynamic linker can not resolve these.  However
 	       the error should not occur for e.g. debugging or
 	       non-readonly sections.  */
-	    if ((bfd_link_dll (info) && !bfd_link_pie (info))
+	    if (h != NULL
+		&& (bfd_link_dll (info) && !bfd_link_pie (info))
 		&& (sec->flags & SEC_ALLOC) != 0
 		&& (sec->flags & SEC_READONLY) != 0
 		&& ((sec->flags & SEC_CODE) != 0
@@ -1630,6 +1990,10 @@ elf_arc_check_relocs (bfd *			 abfd,
 	      {
 		if (sreloc == NULL)
 		  {
+		    if (info->dynamic
+			&& ! htab->dynamic_sections_created
+			&& ! _bfd_elf_link_create_dynamic_sections (abfd, info))
+		      return FALSE;
 		    sreloc = _bfd_elf_make_dynamic_reloc_section (sec, dynobj,
 								  2, abfd,
 								  /*rela*/
@@ -1645,7 +2009,7 @@ elf_arc_check_relocs (bfd *			 abfd,
 	    break;
 	}
 
-      if (is_reloc_for_PLT (howto) == TRUE)
+      if (is_reloc_for_PLT (howto))
 	{
 	  if (h == NULL)
 	    continue;
@@ -1654,9 +2018,12 @@ elf_arc_check_relocs (bfd *			 abfd,
 	}
 
       /* Add info to the symbol got_entry_list.  */
-      if (is_reloc_for_GOT (howto) == TRUE
-	  || is_reloc_for_TLS (howto) == TRUE)
+      if (is_reloc_for_GOT (howto)
+	  || is_reloc_for_TLS (howto))
 	{
+	  if (! _bfd_elf_create_got_section (dynobj, info))
+	    return FALSE;
+
 	  arc_fill_got_info_for_reloc (
 		  arc_got_entry_type_for_reloc (howto),
 		  get_got_entry_list_for_symbol (abfd, r_symndx, h),
@@ -1924,12 +2291,12 @@ elf_arc_adjust_dynamic_symbol (struct bf
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -2283,7 +2650,8 @@ elf_arc_size_dynamic_sections (bfd *outp
 		  const char *name = s->name + 5;
 		  bfd *ibfd;
 		  for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link.next)
-		    if (bfd_get_flavour (ibfd) == bfd_target_elf_flavour)
+		    if (bfd_get_flavour (ibfd) == bfd_target_elf_flavour
+			&& ibfd->flags & DYNAMIC)
 		      {
 			asection *target = bfd_get_section_by_name (ibfd, name);
 			if (target != NULL
@@ -2465,6 +2833,69 @@ elf32_arc_grok_prstatus (bfd *abfd, Elf_
 					  note->descpos + offset);
 }
 
+/* Determine whether an object attribute tag takes an integer, a
+   string or both.  */
+
+static int
+elf32_arc_obj_attrs_arg_type (int tag)
+{
+  if (tag == Tag_ARC_CPU_name
+	   || tag == Tag_ARC_ISA_config
+	   || tag == Tag_ARC_ISA_apex)
+    return ATTR_TYPE_FLAG_STR_VAL;
+  else if (tag < (Tag_ARC_ISA_mpy_option + 1))
+    return ATTR_TYPE_FLAG_INT_VAL;
+  else
+    return (tag & 1) != 0 ? ATTR_TYPE_FLAG_STR_VAL : ATTR_TYPE_FLAG_INT_VAL;
+}
+
+/* Attribute numbers >=14 can be safely ignored.  */
+
+static bfd_boolean
+elf32_arc_obj_attrs_handle_unknown (bfd *abfd, int tag)
+{
+  if ((tag & 127) < (Tag_ARC_ISA_mpy_option + 1))
+    {
+      _bfd_error_handler
+	(_("%B: Unknown mandatory ARC object attribute %d."),
+	 abfd, tag);
+      bfd_set_error (bfd_error_bad_value);
+      return FALSE;
+    }
+  else
+    {
+      _bfd_error_handler
+	(_("Warning: %B: Unknown ARC object attribute %d."),
+	 abfd, tag);
+      return TRUE;
+    }
+}
+
+/* Handle an ARC specific section when reading an object file.  This is
+   called when bfd_section_from_shdr finds a section with an unknown
+   type.  */
+
+static bfd_boolean
+elf32_arc_section_from_shdr (bfd *abfd,
+			     Elf_Internal_Shdr * hdr,
+			     const char *name,
+			     int shindex)
+{
+  switch (hdr->sh_type)
+    {
+    case SHT_ARC_ATTRIBUTES:
+      break;
+
+    default:
+      return FALSE;
+    }
+
+  if (!_bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex))
+    return FALSE;
+
+  return TRUE;
+}
+
 #define TARGET_LITTLE_SYM   arc_elf32_le_vec
 #define TARGET_LITTLE_NAME  "elf32-littlearc"
 #define TARGET_BIG_SYM	    arc_elf32_be_vec
@@ -2516,4 +2947,16 @@ elf32_arc_grok_prstatus (bfd *abfd, Elf_
 
 #define elf_backend_default_execstack	0
 
+#undef  elf_backend_obj_attrs_vendor
+#define elf_backend_obj_attrs_vendor		"ARC"
+#undef  elf_backend_obj_attrs_section
+#define elf_backend_obj_attrs_section		".ARC.attributes"
+#undef  elf_backend_obj_attrs_arg_type
+#define elf_backend_obj_attrs_arg_type		elf32_arc_obj_attrs_arg_type
+#undef  elf_backend_obj_attrs_section_type
+#define elf_backend_obj_attrs_section_type	SHT_ARC_ATTRIBUTES
+#define elf_backend_obj_attrs_handle_unknown	elf32_arc_obj_attrs_handle_unknown
+
+#define elf_backend_section_from_shdr		elf32_arc_section_from_shdr
+
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-arm.c ./bfd/elf32-arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-arm.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-arm.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* 32-bit ELF support for ARM
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -56,8 +56,8 @@
    ? bfd_elf32_swap_reloc_out \
    : bfd_elf32_swap_reloca_out)
 
-#define elf_info_to_howto               0
-#define elf_info_to_howto_rel           elf32_arm_info_to_howto
+#define elf_info_to_howto		0
+#define elf_info_to_howto_rel		elf32_arm_info_to_howto
 
 #define ARM_ELF_ABI_VERSION		0
 #define ARM_ELF_OS_ABI_VERSION		ELFOSABI_ARM
@@ -237,7 +237,7 @@ static reloc_howto_type elf32_arm_howto_
 	 0x07ff2fff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_THM_PC8,	        /* type */
+  HOWTO (R_ARM_THM_PC8,		/* type */
 	 1,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
 	 8,			/* bitsize */
@@ -326,125 +326,125 @@ static reloc_howto_type elf32_arm_howto_
   /* Dynamic TLS relocations.  */
 
   HOWTO (R_ARM_TLS_DTPMOD32,	/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_ARM_TLS_DTPMOD32",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_TLS_DTPOFF32,	/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_ARM_TLS_DTPOFF32",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_TLS_TPOFF32,	/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_ARM_TLS_TPOFF32",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Relocs used in ARM Linux */
 
   HOWTO (R_ARM_COPY,		/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_ARM_COPY",		/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_GLOB_DAT,	/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_ARM_GLOB_DAT",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_JUMP_SLOT,	/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_ARM_JUMP_SLOT",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_RELATIVE,	/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_ARM_RELATIVE",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_GOTOFF32,	/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_ARM_GOTOFF32",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_GOTPC,		/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
 	 TRUE,			/* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_ARM_GOTPC",		/* name */
@@ -454,11 +454,11 @@ static reloc_howto_type elf32_arm_howto_
 	 TRUE),			/* pcrel_offset */
 
   HOWTO (R_ARM_GOT32,		/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
 	 FALSE,			/* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_ARM_GOT32",		/* name */
@@ -468,11 +468,11 @@ static reloc_howto_type elf32_arm_howto_
 	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_PLT32,		/* type */
-	 2,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 24,                    /* bitsize */
+	 2,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 24,			/* bitsize */
 	 TRUE,			/* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_ARM_PLT32",		/* name */
@@ -906,7 +906,7 @@ static reloc_howto_type elf32_arm_howto_
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_ALU_PC_G0,   	/* type */
+  HOWTO (R_ARM_ALU_PC_G0,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -914,7 +914,7 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_ALU_PC_G0",   	/* name */
+	 "R_ARM_ALU_PC_G0",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
@@ -934,7 +934,7 @@ static reloc_howto_type elf32_arm_howto_
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_ALU_PC_G1,   	/* type */
+  HOWTO (R_ARM_ALU_PC_G1,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -942,13 +942,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_ALU_PC_G1",   	/* name */
+	 "R_ARM_ALU_PC_G1",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_ALU_PC_G2,   	/* type */
+  HOWTO (R_ARM_ALU_PC_G2,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -956,13 +956,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_ALU_PC_G2",   	/* name */
+	 "R_ARM_ALU_PC_G2",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDR_PC_G1,   	/* type */
+  HOWTO (R_ARM_LDR_PC_G1,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -970,13 +970,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDR_PC_G1",   	/* name */
+	 "R_ARM_LDR_PC_G1",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDR_PC_G2,   	/* type */
+  HOWTO (R_ARM_LDR_PC_G2,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -984,13 +984,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDR_PC_G2",   	/* name */
+	 "R_ARM_LDR_PC_G2",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDRS_PC_G0,   	/* type */
+  HOWTO (R_ARM_LDRS_PC_G0,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -998,13 +998,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDRS_PC_G0",   	/* name */
+	 "R_ARM_LDRS_PC_G0",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDRS_PC_G1,   	/* type */
+  HOWTO (R_ARM_LDRS_PC_G1,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1012,13 +1012,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDRS_PC_G1",   	/* name */
+	 "R_ARM_LDRS_PC_G1",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDRS_PC_G2,   	/* type */
+  HOWTO (R_ARM_LDRS_PC_G2,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1026,13 +1026,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDRS_PC_G2",   	/* name */
+	 "R_ARM_LDRS_PC_G2",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDC_PC_G0,   	/* type */
+  HOWTO (R_ARM_LDC_PC_G0,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1040,13 +1040,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDC_PC_G0",   	/* name */
+	 "R_ARM_LDC_PC_G0",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDC_PC_G1,   	/* type */
+  HOWTO (R_ARM_LDC_PC_G1,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1054,13 +1054,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDC_PC_G1",   	/* name */
+	 "R_ARM_LDC_PC_G1",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDC_PC_G2,   	/* type */
+  HOWTO (R_ARM_LDC_PC_G2,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1068,13 +1068,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDC_PC_G2",   	/* name */
+	 "R_ARM_LDC_PC_G2",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_ALU_SB_G0_NC,   	/* type */
+  HOWTO (R_ARM_ALU_SB_G0_NC,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1082,13 +1082,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_ALU_SB_G0_NC", 	/* name */
+	 "R_ARM_ALU_SB_G0_NC",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_ALU_SB_G0,   	/* type */
+  HOWTO (R_ARM_ALU_SB_G0,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1096,13 +1096,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_ALU_SB_G0", 	/* name */
+	 "R_ARM_ALU_SB_G0",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_ALU_SB_G1_NC,   	/* type */
+  HOWTO (R_ARM_ALU_SB_G1_NC,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1110,13 +1110,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_ALU_SB_G1_NC", 	/* name */
+	 "R_ARM_ALU_SB_G1_NC",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_ALU_SB_G1,   	/* type */
+  HOWTO (R_ARM_ALU_SB_G1,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1124,13 +1124,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_ALU_SB_G1", 	/* name */
+	 "R_ARM_ALU_SB_G1",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_ALU_SB_G2,   	/* type */
+  HOWTO (R_ARM_ALU_SB_G2,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1138,13 +1138,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_ALU_SB_G2", 	/* name */
+	 "R_ARM_ALU_SB_G2",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDR_SB_G0,   	/* type */
+  HOWTO (R_ARM_LDR_SB_G0,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1152,13 +1152,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDR_SB_G0", 	/* name */
+	 "R_ARM_LDR_SB_G0",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDR_SB_G1,   	/* type */
+  HOWTO (R_ARM_LDR_SB_G1,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1166,13 +1166,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDR_SB_G1", 	/* name */
+	 "R_ARM_LDR_SB_G1",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDR_SB_G2,   	/* type */
+  HOWTO (R_ARM_LDR_SB_G2,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1180,13 +1180,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDR_SB_G2", 	/* name */
+	 "R_ARM_LDR_SB_G2",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDRS_SB_G0,   	/* type */
+  HOWTO (R_ARM_LDRS_SB_G0,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1194,13 +1194,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDRS_SB_G0", 	/* name */
+	 "R_ARM_LDRS_SB_G0",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDRS_SB_G1,   	/* type */
+  HOWTO (R_ARM_LDRS_SB_G1,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1208,13 +1208,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDRS_SB_G1", 	/* name */
+	 "R_ARM_LDRS_SB_G1",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDRS_SB_G2,   	/* type */
+  HOWTO (R_ARM_LDRS_SB_G2,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1222,13 +1222,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDRS_SB_G2", 	/* name */
+	 "R_ARM_LDRS_SB_G2",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDC_SB_G0,   	/* type */
+  HOWTO (R_ARM_LDC_SB_G0,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1236,13 +1236,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDC_SB_G0", 	/* name */
+	 "R_ARM_LDC_SB_G0",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDC_SB_G1,   	/* type */
+  HOWTO (R_ARM_LDC_SB_G1,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1250,13 +1250,13 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDC_SB_G1", 	/* name */
+	 "R_ARM_LDC_SB_G1",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_LDC_SB_G2,   	/* type */
+  HOWTO (R_ARM_LDC_SB_G2,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1264,7 +1264,7 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_LDC_SB_G2", 	/* name */
+	 "R_ARM_LDC_SB_G2",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
@@ -1482,37 +1482,37 @@ static reloc_howto_type elf32_arm_howto_
 	 0x00000fff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  EMPTY_HOWTO (R_ARM_GOTRELAX),  /* reserved for future GOT-load optimizations */
+  EMPTY_HOWTO (R_ARM_GOTRELAX),	 /* reserved for future GOT-load optimizations */
 
   /* GNU extension to record C++ vtable member usage */
-  HOWTO (R_ARM_GNU_VTENTRY,     /* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 0,                     /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+  HOWTO (R_ARM_GNU_VTENTRY,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
-	 "R_ARM_GNU_VTENTRY",   /* name */
-	 FALSE,                 /* partial_inplace */
-	 0,                     /* src_mask */
-	 0,                     /* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 _bfd_elf_rel_vtable_reloc_fn,	/* special_function */
+	 "R_ARM_GNU_VTENTRY",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_ARM_GNU_VTINHERIT, /* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 0,                     /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 NULL,                  /* special_function */
+	 NULL,			/* special_function */
 	 "R_ARM_GNU_VTINHERIT", /* name */
-	 FALSE,                 /* partial_inplace */
-	 0,                     /* src_mask */
-	 0,                     /* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_THM_JUMP11,	/* type */
 	 1,			/* rightshift */
@@ -1544,74 +1544,74 @@ static reloc_howto_type elf32_arm_howto_
 
   /* TLS relocations */
   HOWTO (R_ARM_TLS_GD32,	/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 NULL,			/* special_function */
 	 "R_ARM_TLS_GD32",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_TLS_LDM32,	/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_ARM_TLS_LDM32",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_TLS_LDO32,	/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_ARM_TLS_LDO32",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_TLS_IE32,	/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
-	 FALSE,                  /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			 /* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 NULL,			/* special_function */
 	 "R_ARM_TLS_IE32",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_TLS_LE32,	/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
-	 NULL, 			/* special_function */
+	 NULL,			/* special_function */
 	 "R_ARM_TLS_LE32",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),                /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_TLS_LDO12,	/* type */
 	 0,			/* rightshift */
@@ -1749,11 +1749,11 @@ static reloc_howto_type elf32_arm_howto_
 static reloc_howto_type elf32_arm_howto_table_2[1] =
 {
   HOWTO (R_ARM_IRELATIVE,	/* type */
-	 0,                     /* rightshift */
-	 2,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 32,                    /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_ARM_IRELATIVE",	/* name */
@@ -1852,23 +1852,23 @@ elf32_arm_info_to_howto (bfd * abfd ATTR
 struct elf32_arm_reloc_map
   {
     bfd_reloc_code_real_type  bfd_reloc_val;
-    unsigned char             elf_reloc_val;
+    unsigned char	      elf_reloc_val;
   };
 
 /* All entries in this list must also be present in elf32_arm_howto_table.  */
 static const struct elf32_arm_reloc_map elf32_arm_reloc_map[] =
   {
-    {BFD_RELOC_NONE,                 R_ARM_NONE},
+    {BFD_RELOC_NONE,		     R_ARM_NONE},
     {BFD_RELOC_ARM_PCREL_BRANCH,     R_ARM_PC24},
     {BFD_RELOC_ARM_PCREL_CALL,	     R_ARM_CALL},
     {BFD_RELOC_ARM_PCREL_JUMP,	     R_ARM_JUMP24},
-    {BFD_RELOC_ARM_PCREL_BLX,        R_ARM_XPC25},
-    {BFD_RELOC_THUMB_PCREL_BLX,      R_ARM_THM_XPC22},
-    {BFD_RELOC_32,                   R_ARM_ABS32},
-    {BFD_RELOC_32_PCREL,             R_ARM_REL32},
-    {BFD_RELOC_8,                    R_ARM_ABS8},
-    {BFD_RELOC_16,                   R_ARM_ABS16},
-    {BFD_RELOC_ARM_OFFSET_IMM,       R_ARM_ABS12},
+    {BFD_RELOC_ARM_PCREL_BLX,	     R_ARM_XPC25},
+    {BFD_RELOC_THUMB_PCREL_BLX,	     R_ARM_THM_XPC22},
+    {BFD_RELOC_32,		     R_ARM_ABS32},
+    {BFD_RELOC_32_PCREL,	     R_ARM_REL32},
+    {BFD_RELOC_8,		     R_ARM_ABS8},
+    {BFD_RELOC_16,		     R_ARM_ABS16},
+    {BFD_RELOC_ARM_OFFSET_IMM,	     R_ARM_ABS12},
     {BFD_RELOC_ARM_THUMB_OFFSET,     R_ARM_THM_ABS5},
     {BFD_RELOC_THUMB_PCREL_BRANCH25, R_ARM_THM_JUMP24},
     {BFD_RELOC_THUMB_PCREL_BRANCH23, R_ARM_THM_CALL},
@@ -1876,35 +1876,35 @@ static const struct elf32_arm_reloc_map 
     {BFD_RELOC_THUMB_PCREL_BRANCH20, R_ARM_THM_JUMP19},
     {BFD_RELOC_THUMB_PCREL_BRANCH9,  R_ARM_THM_JUMP8},
     {BFD_RELOC_THUMB_PCREL_BRANCH7,  R_ARM_THM_JUMP6},
-    {BFD_RELOC_ARM_GLOB_DAT,         R_ARM_GLOB_DAT},
-    {BFD_RELOC_ARM_JUMP_SLOT,        R_ARM_JUMP_SLOT},
-    {BFD_RELOC_ARM_RELATIVE,         R_ARM_RELATIVE},
-    {BFD_RELOC_ARM_GOTOFF,           R_ARM_GOTOFF32},
-    {BFD_RELOC_ARM_GOTPC,            R_ARM_GOTPC},
-    {BFD_RELOC_ARM_GOT_PREL,         R_ARM_GOT_PREL},
-    {BFD_RELOC_ARM_GOT32,            R_ARM_GOT32},
-    {BFD_RELOC_ARM_PLT32,            R_ARM_PLT32},
+    {BFD_RELOC_ARM_GLOB_DAT,	     R_ARM_GLOB_DAT},
+    {BFD_RELOC_ARM_JUMP_SLOT,	     R_ARM_JUMP_SLOT},
+    {BFD_RELOC_ARM_RELATIVE,	     R_ARM_RELATIVE},
+    {BFD_RELOC_ARM_GOTOFF,	     R_ARM_GOTOFF32},
+    {BFD_RELOC_ARM_GOTPC,	     R_ARM_GOTPC},
+    {BFD_RELOC_ARM_GOT_PREL,	     R_ARM_GOT_PREL},
+    {BFD_RELOC_ARM_GOT32,	     R_ARM_GOT32},
+    {BFD_RELOC_ARM_PLT32,	     R_ARM_PLT32},
     {BFD_RELOC_ARM_TARGET1,	     R_ARM_TARGET1},
     {BFD_RELOC_ARM_ROSEGREL32,	     R_ARM_ROSEGREL32},
     {BFD_RELOC_ARM_SBREL32,	     R_ARM_SBREL32},
     {BFD_RELOC_ARM_PREL31,	     R_ARM_PREL31},
     {BFD_RELOC_ARM_TARGET2,	     R_ARM_TARGET2},
-    {BFD_RELOC_ARM_PLT32,            R_ARM_PLT32},
-    {BFD_RELOC_ARM_TLS_GOTDESC,      R_ARM_TLS_GOTDESC},
-    {BFD_RELOC_ARM_TLS_CALL,         R_ARM_TLS_CALL},
+    {BFD_RELOC_ARM_PLT32,	     R_ARM_PLT32},
+    {BFD_RELOC_ARM_TLS_GOTDESC,	     R_ARM_TLS_GOTDESC},
+    {BFD_RELOC_ARM_TLS_CALL,	     R_ARM_TLS_CALL},
     {BFD_RELOC_ARM_THM_TLS_CALL,     R_ARM_THM_TLS_CALL},
-    {BFD_RELOC_ARM_TLS_DESCSEQ,      R_ARM_TLS_DESCSEQ},
+    {BFD_RELOC_ARM_TLS_DESCSEQ,	     R_ARM_TLS_DESCSEQ},
     {BFD_RELOC_ARM_THM_TLS_DESCSEQ,  R_ARM_THM_TLS_DESCSEQ},
-    {BFD_RELOC_ARM_TLS_DESC,         R_ARM_TLS_DESC},
+    {BFD_RELOC_ARM_TLS_DESC,	     R_ARM_TLS_DESC},
     {BFD_RELOC_ARM_TLS_GD32,	     R_ARM_TLS_GD32},
     {BFD_RELOC_ARM_TLS_LDO32,	     R_ARM_TLS_LDO32},
     {BFD_RELOC_ARM_TLS_LDM32,	     R_ARM_TLS_LDM32},
     {BFD_RELOC_ARM_TLS_DTPMOD32,     R_ARM_TLS_DTPMOD32},
     {BFD_RELOC_ARM_TLS_DTPOFF32,     R_ARM_TLS_DTPOFF32},
-    {BFD_RELOC_ARM_TLS_TPOFF32,      R_ARM_TLS_TPOFF32},
-    {BFD_RELOC_ARM_TLS_IE32,         R_ARM_TLS_IE32},
-    {BFD_RELOC_ARM_TLS_LE32,         R_ARM_TLS_LE32},
-    {BFD_RELOC_ARM_IRELATIVE,        R_ARM_IRELATIVE},
+    {BFD_RELOC_ARM_TLS_TPOFF32,	     R_ARM_TLS_TPOFF32},
+    {BFD_RELOC_ARM_TLS_IE32,	     R_ARM_TLS_IE32},
+    {BFD_RELOC_ARM_TLS_LE32,	     R_ARM_TLS_LE32},
+    {BFD_RELOC_ARM_IRELATIVE,	     R_ARM_IRELATIVE},
     {BFD_RELOC_VTABLE_INHERIT,	     R_ARM_GNU_VTINHERIT},
     {BFD_RELOC_VTABLE_ENTRY,	     R_ARM_GNU_VTENTRY},
     {BFD_RELOC_ARM_MOVW,	     R_ARM_MOVW_ABS_NC},
@@ -2098,10 +2098,10 @@ elf32_arm_nabi_write_core_note (bfd *abf
     }
 }
 
-#define TARGET_LITTLE_SYM               arm_elf32_le_vec
-#define TARGET_LITTLE_NAME              "elf32-littlearm"
-#define TARGET_BIG_SYM                  arm_elf32_be_vec
-#define TARGET_BIG_NAME                 "elf32-bigarm"
+#define TARGET_LITTLE_SYM		arm_elf32_le_vec
+#define TARGET_LITTLE_NAME		"elf32-littlearm"
+#define TARGET_BIG_SYM			arm_elf32_be_vec
+#define TARGET_BIG_NAME			"elf32-bigarm"
 
 #define elf_backend_grok_prstatus	elf32_arm_nabi_grok_prstatus
 #define elf_backend_grok_psinfo		elf32_arm_nabi_grok_psinfo
@@ -2196,11 +2196,11 @@ static const bfd_vma elf32_arm_plt_entry
    linker first.  */
 static const bfd_vma elf32_arm_plt0_entry [] =
 {
-  0xe52de004,		/* str   lr, [sp, #-4]! */
-  0xe59fe004,		/* ldr   lr, [pc, #4]   */
-  0xe08fe00e,		/* add   lr, pc, lr     */
-  0xe5bef008,		/* ldr   pc, [lr, #8]!  */
-  0x00000000,		/* &GOT[0] - .          */
+  0xe52de004,		/* str	 lr, [sp, #-4]! */
+  0xe59fe004,		/* ldr	 lr, [pc, #4]	*/
+  0xe08fe00e,		/* add	 lr, pc, lr	*/
+  0xe5bef008,		/* ldr	 pc, [lr, #8]!	*/
+  0x00000000,		/* &GOT[0] - .		*/
 };
 
 /* By default subsequent entries in a procedure linkage table look like
@@ -2216,8 +2216,8 @@ static const bfd_vma elf32_arm_plt_entry
    which can cope with arbitrary displacements.  */
 static const bfd_vma elf32_arm_plt_entry_long [] =
 {
-  0xe28fc200,           /* add   ip, pc, #0xN0000000 */
-  0xe28cc600,		/* add   ip, ip, #0xNN00000  */
+  0xe28fc200,		/* add	 ip, pc, #0xN0000000 */
+  0xe28cc600,		/* add	 ip, ip, #0xNN00000  */
   0xe28cca00,		/* add	 ip, ip, #0xNN000    */
   0xe5bcf000,		/* ldr	 pc, [ip, #0xNNN]!   */
 };
@@ -2233,11 +2233,11 @@ static const bfd_vma elf32_thumb2_plt0_e
 {
   /* NOTE: As this is a mixture of 16-bit and 32-bit instructions,
      an instruction maybe encoded to one or two array elements.  */
-  0xf8dfb500,		/* push    {lr}          */
-  0x44fee008,		/* ldr.w   lr, [pc, #8]  */
-			/* add     lr, pc        */
+  0xf8dfb500,		/* push	   {lr}		 */
+  0x44fee008,		/* ldr.w   lr, [pc, #8]	 */
+			/* add	   lr, pc	 */
   0xff08f85e,		/* ldr.w   pc, [lr, #8]! */
-  0x00000000,		/* &GOT[0] - .           */
+  0x00000000,		/* &GOT[0] - .		 */
 };
 
 /* Subsequent entries in a procedure linkage table for thumb only target
@@ -2246,43 +2246,43 @@ static const bfd_vma elf32_thumb2_plt_en
 {
   /* NOTE: As this is a mixture of 16-bit and 32-bit instructions,
      an instruction maybe encoded to one or two array elements.  */
-  0x0c00f240,		/* movw    ip, #0xNNNN    */
-  0x0c00f2c0,		/* movt    ip, #0xNNNN    */
-  0xf8dc44fc,           /* add     ip, pc         */
-  0xbf00f000            /* ldr.w   pc, [ip]       */
-			/* nop                    */
+  0x0c00f240,		/* movw	   ip, #0xNNNN	  */
+  0x0c00f2c0,		/* movt	   ip, #0xNNNN	  */
+  0xf8dc44fc,		/* add	   ip, pc	  */
+  0xbf00f000		/* ldr.w   pc, [ip]	  */
+			/* nop			  */
 };
 
 /* The format of the first entry in the procedure linkage table
    for a VxWorks executable.  */
 static const bfd_vma elf32_arm_vxworks_exec_plt0_entry[] =
 {
-  0xe52dc008,	        /* str    ip,[sp,#-8]!			*/
-  0xe59fc000,   	/* ldr    ip,[pc]			*/
-  0xe59cf008,   	/* ldr    pc,[ip,#8]			*/
-  0x00000000,   	/* .long  _GLOBAL_OFFSET_TABLE_		*/
+  0xe52dc008,		/* str	  ip,[sp,#-8]!			*/
+  0xe59fc000,		/* ldr	  ip,[pc]			*/
+  0xe59cf008,		/* ldr	  pc,[ip,#8]			*/
+  0x00000000,		/* .long  _GLOBAL_OFFSET_TABLE_		*/
 };
 
 /* The format of subsequent entries in a VxWorks executable.  */
 static const bfd_vma elf32_arm_vxworks_exec_plt_entry[] =
 {
-  0xe59fc000,         /* ldr    ip,[pc]			*/
-  0xe59cf000,         /* ldr    pc,[ip]			*/
-  0x00000000,         /* .long  @got				*/
-  0xe59fc000,         /* ldr    ip,[pc]			*/
-  0xea000000,         /* b      _PLT				*/
-  0x00000000,         /* .long  @pltindex*sizeof(Elf32_Rela)	*/
+  0xe59fc000,	      /* ldr	ip,[pc]			*/
+  0xe59cf000,	      /* ldr	pc,[ip]			*/
+  0x00000000,	      /* .long	@got				*/
+  0xe59fc000,	      /* ldr	ip,[pc]			*/
+  0xea000000,	      /* b	_PLT				*/
+  0x00000000,	      /* .long	@pltindex*sizeof(Elf32_Rela)	*/
 };
 
 /* The format of entries in a VxWorks shared library.  */
 static const bfd_vma elf32_arm_vxworks_shared_plt_entry[] =
 {
-  0xe59fc000,         /* ldr    ip,[pc]			*/
-  0xe79cf009,         /* ldr    pc,[ip,r9]			*/
-  0x00000000,         /* .long  @got				*/
-  0xe59fc000,         /* ldr    ip,[pc]			*/
-  0xe599f008,         /* ldr    pc,[r9,#8]			*/
-  0x00000000,         /* .long  @pltindex*sizeof(Elf32_Rela)	*/
+  0xe59fc000,	      /* ldr	ip,[pc]			*/
+  0xe79cf009,	      /* ldr	pc,[ip,r9]			*/
+  0x00000000,	      /* .long	@got				*/
+  0xe59fc000,	      /* ldr	ip,[pc]			*/
+  0xe599f008,	      /* ldr	pc,[r9,#8]			*/
+  0x00000000,	      /* .long	@pltindex*sizeof(Elf32_Rela)	*/
 };
 
 /* An initial stub used if the PLT entry is referenced from Thumb code.  */
@@ -2297,8 +2297,8 @@ static const bfd_vma elf32_arm_plt_thumb
    address spaces.  */
 static const bfd_vma elf32_arm_symbian_plt_entry [] =
 {
-  0xe51ff004,         /* ldr   pc, [pc, #-4] */
-  0x00000000,         /* dcd   R_ARM_GLOB_DAT(X) */
+  0xe51ff004,	      /* ldr   pc, [pc, #-4] */
+  0x00000000,	      /* dcd   R_ARM_GLOB_DAT(X) */
 };
 
 /* The first entry in a procedure linkage table looks like
@@ -2371,17 +2371,17 @@ enum stub_insn_type
 
 typedef struct
 {
-  bfd_vma              data;
+  bfd_vma	       data;
   enum stub_insn_type  type;
-  unsigned int         r_type;
-  int                  reloc_addend;
+  unsigned int	       r_type;
+  int		       reloc_addend;
 }  insn_sequence;
 
 /* Arm/Thumb -> Arm/Thumb long branch stub. On V5T and above, use blx
    to reach the stub if necessary.  */
 static const insn_sequence elf32_arm_stub_long_branch_any_any[] =
 {
-  ARM_INSN (0xe51ff004),            /* ldr   pc, [pc, #-4] */
+  ARM_INSN (0xe51ff004),	    /* ldr   pc, [pc, #-4] */
   DATA_WORD (0, R_ARM_ABS32, 0),    /* dcd   R_ARM_ABS32(X) */
 };
 
@@ -2389,27 +2389,27 @@ static const insn_sequence elf32_arm_stu
    available.  */
 static const insn_sequence elf32_arm_stub_long_branch_v4t_arm_thumb[] =
 {
-  ARM_INSN (0xe59fc000),            /* ldr   ip, [pc, #0] */
-  ARM_INSN (0xe12fff1c),            /* bx    ip */
+  ARM_INSN (0xe59fc000),	    /* ldr   ip, [pc, #0] */
+  ARM_INSN (0xe12fff1c),	    /* bx    ip */
   DATA_WORD (0, R_ARM_ABS32, 0),    /* dcd   R_ARM_ABS32(X) */
 };
 
 /* Thumb -> Thumb long branch stub. Used on M-profile architectures.  */
 static const insn_sequence elf32_arm_stub_long_branch_thumb_only[] =
 {
-  THUMB16_INSN (0xb401),             /* push {r0} */
-  THUMB16_INSN (0x4802),             /* ldr  r0, [pc, #8] */
-  THUMB16_INSN (0x4684),             /* mov  ip, r0 */
-  THUMB16_INSN (0xbc01),             /* pop  {r0} */
-  THUMB16_INSN (0x4760),             /* bx   ip */
-  THUMB16_INSN (0xbf00),             /* nop */
+  THUMB16_INSN (0xb401),	     /* push {r0} */
+  THUMB16_INSN (0x4802),	     /* ldr  r0, [pc, #8] */
+  THUMB16_INSN (0x4684),	     /* mov  ip, r0 */
+  THUMB16_INSN (0xbc01),	     /* pop  {r0} */
+  THUMB16_INSN (0x4760),	     /* bx   ip */
+  THUMB16_INSN (0xbf00),	     /* nop */
   DATA_WORD (0, R_ARM_ABS32, 0),     /* dcd  R_ARM_ABS32(X) */
 };
 
 /* Thumb -> Thumb long branch stub in thumb2 encoding.  Used on armv7.  */
 static const insn_sequence elf32_arm_stub_long_branch_thumb2_only[] =
 {
-  THUMB32_INSN (0xf85ff000),         /* ldr.w  pc, [pc, #-0] */
+  THUMB32_INSN (0xf85ff000),	     /* ldr.w  pc, [pc, #-0] */
   DATA_WORD (0, R_ARM_ABS32, 0),     /* dcd  R_ARM_ABS32(x) */
 };
 
@@ -2419,17 +2419,17 @@ static const insn_sequence elf32_arm_stu
 {
   THUMB32_MOVW (0xf2400c00),	     /* mov.w ip, R_ARM_MOVW_ABS_NC */
   THUMB32_MOVT (0xf2c00c00),	     /* movt  ip, R_ARM_MOVT_ABS << 16 */
-  THUMB16_INSN (0x4760),             /* bx   ip */
+  THUMB16_INSN (0x4760),	     /* bx   ip */
 };
 
 /* V4T Thumb -> Thumb long branch stub. Using the stack is not
    allowed.  */
 static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_thumb[] =
 {
-  THUMB16_INSN (0x4778),             /* bx   pc */
-  THUMB16_INSN (0x46c0),             /* nop */
-  ARM_INSN (0xe59fc000),             /* ldr  ip, [pc, #0] */
-  ARM_INSN (0xe12fff1c),             /* bx   ip */
+  THUMB16_INSN (0x4778),	     /* bx   pc */
+  THUMB16_INSN (0x46c0),	     /* nop */
+  ARM_INSN (0xe59fc000),	     /* ldr  ip, [pc, #0] */
+  ARM_INSN (0xe12fff1c),	     /* bx   ip */
   DATA_WORD (0, R_ARM_ABS32, 0),     /* dcd  R_ARM_ABS32(X) */
 };
 
@@ -2437,9 +2437,9 @@ static const insn_sequence elf32_arm_stu
    available.  */
 static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_arm[] =
 {
-  THUMB16_INSN (0x4778),             /* bx   pc */
-  THUMB16_INSN (0x46c0),             /* nop   */
-  ARM_INSN (0xe51ff004),             /* ldr   pc, [pc, #-4] */
+  THUMB16_INSN (0x4778),	     /* bx   pc */
+  THUMB16_INSN (0x46c0),	     /* nop   */
+  ARM_INSN (0xe51ff004),	     /* ldr   pc, [pc, #-4] */
   DATA_WORD (0, R_ARM_ABS32, 0),     /* dcd   R_ARM_ABS32(X) */
 };
 
@@ -2447,8 +2447,8 @@ static const insn_sequence elf32_arm_stu
    one, when the destination is close enough.  */
 static const insn_sequence elf32_arm_stub_short_branch_v4t_thumb_arm[] =
 {
-  THUMB16_INSN (0x4778),             /* bx   pc */
-  THUMB16_INSN (0x46c0),             /* nop   */
+  THUMB16_INSN (0x4778),	     /* bx   pc */
+  THUMB16_INSN (0x46c0),	     /* nop   */
   ARM_REL_INSN (0xea000000, -8),     /* b    (X-8) */
 };
 
@@ -2456,8 +2456,8 @@ static const insn_sequence elf32_arm_stu
    blx to reach the stub if necessary.  */
 static const insn_sequence elf32_arm_stub_long_branch_any_arm_pic[] =
 {
-  ARM_INSN (0xe59fc000),             /* ldr   ip, [pc] */
-  ARM_INSN (0xe08ff00c),             /* add   pc, pc, ip */
+  ARM_INSN (0xe59fc000),	     /* ldr   ip, [pc] */
+  ARM_INSN (0xe08ff00c),	     /* add   pc, pc, ip */
   DATA_WORD (0, R_ARM_REL32, -4),    /* dcd   R_ARM_REL32(X-4) */
 };
 
@@ -2467,28 +2467,28 @@ static const insn_sequence elf32_arm_stu
    ARMv7).  */
 static const insn_sequence elf32_arm_stub_long_branch_any_thumb_pic[] =
 {
-  ARM_INSN (0xe59fc004),             /* ldr   ip, [pc, #4] */
-  ARM_INSN (0xe08fc00c),             /* add   ip, pc, ip */
-  ARM_INSN (0xe12fff1c),             /* bx    ip */
+  ARM_INSN (0xe59fc004),	     /* ldr   ip, [pc, #4] */
+  ARM_INSN (0xe08fc00c),	     /* add   ip, pc, ip */
+  ARM_INSN (0xe12fff1c),	     /* bx    ip */
   DATA_WORD (0, R_ARM_REL32, 0),     /* dcd   R_ARM_REL32(X) */
 };
 
 /* V4T ARM -> ARM long branch stub, PIC.  */
 static const insn_sequence elf32_arm_stub_long_branch_v4t_arm_thumb_pic[] =
 {
-  ARM_INSN (0xe59fc004),             /* ldr   ip, [pc, #4] */
-  ARM_INSN (0xe08fc00c),             /* add   ip, pc, ip */
-  ARM_INSN (0xe12fff1c),             /* bx    ip */
+  ARM_INSN (0xe59fc004),	     /* ldr   ip, [pc, #4] */
+  ARM_INSN (0xe08fc00c),	     /* add   ip, pc, ip */
+  ARM_INSN (0xe12fff1c),	     /* bx    ip */
   DATA_WORD (0, R_ARM_REL32, 0),     /* dcd   R_ARM_REL32(X) */
 };
 
 /* V4T Thumb -> ARM long branch stub, PIC.  */
 static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_arm_pic[] =
 {
-  THUMB16_INSN (0x4778),             /* bx   pc */
-  THUMB16_INSN (0x46c0),             /* nop  */
-  ARM_INSN (0xe59fc000),             /* ldr  ip, [pc, #0] */
-  ARM_INSN (0xe08cf00f),             /* add  pc, ip, pc */
+  THUMB16_INSN (0x4778),	     /* bx   pc */
+  THUMB16_INSN (0x46c0),	     /* nop  */
+  ARM_INSN (0xe59fc000),	     /* ldr  ip, [pc, #0] */
+  ARM_INSN (0xe08cf00f),	     /* add  pc, ip, pc */
   DATA_WORD (0, R_ARM_REL32, -4),     /* dcd  R_ARM_REL32(X) */
 };
 
@@ -2496,12 +2496,12 @@ static const insn_sequence elf32_arm_stu
    architectures.  */
 static const insn_sequence elf32_arm_stub_long_branch_thumb_only_pic[] =
 {
-  THUMB16_INSN (0xb401),             /* push {r0} */
-  THUMB16_INSN (0x4802),             /* ldr  r0, [pc, #8] */
-  THUMB16_INSN (0x46fc),             /* mov  ip, pc */
-  THUMB16_INSN (0x4484),             /* add  ip, r0 */
-  THUMB16_INSN (0xbc01),             /* pop  {r0} */
-  THUMB16_INSN (0x4760),             /* bx   ip */
+  THUMB16_INSN (0xb401),	     /* push {r0} */
+  THUMB16_INSN (0x4802),	     /* ldr  r0, [pc, #8] */
+  THUMB16_INSN (0x46fc),	     /* mov  ip, pc */
+  THUMB16_INSN (0x4484),	     /* add  ip, r0 */
+  THUMB16_INSN (0xbc01),	     /* pop  {r0} */
+  THUMB16_INSN (0x4760),	     /* bx   ip */
   DATA_WORD (0, R_ARM_REL32, 4),     /* dcd  R_ARM_REL32(X) */
 };
 
@@ -2509,11 +2509,11 @@ static const insn_sequence elf32_arm_stu
    allowed.  */
 static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_thumb_pic[] =
 {
-  THUMB16_INSN (0x4778),             /* bx   pc */
-  THUMB16_INSN (0x46c0),             /* nop */
-  ARM_INSN (0xe59fc004),             /* ldr  ip, [pc, #4] */
-  ARM_INSN (0xe08fc00c),             /* add   ip, pc, ip */
-  ARM_INSN (0xe12fff1c),             /* bx   ip */
+  THUMB16_INSN (0x4778),	     /* bx   pc */
+  THUMB16_INSN (0x46c0),	     /* nop */
+  ARM_INSN (0xe59fc004),	     /* ldr  ip, [pc, #4] */
+  ARM_INSN (0xe08fc00c),	     /* add   ip, pc, ip */
+  ARM_INSN (0xe12fff1c),	     /* bx   ip */
   DATA_WORD (0, R_ARM_REL32, 0),     /* dcd  R_ARM_REL32(X) */
 };
 
@@ -2521,8 +2521,8 @@ static const insn_sequence elf32_arm_stu
    long PIC stub.  We can use r1 as a scratch -- and cannot use ip.  */
 static const insn_sequence elf32_arm_stub_long_branch_any_tls_pic[] =
 {
-  ARM_INSN (0xe59f1000),             /* ldr   r1, [pc] */
-  ARM_INSN (0xe08ff001),             /* add   pc, pc, r1 */
+  ARM_INSN (0xe59f1000),	     /* ldr   r1, [pc] */
+  ARM_INSN (0xe08ff001),	     /* add   pc, pc, r1 */
   DATA_WORD (0, R_ARM_REL32, -4),    /* dcd   R_ARM_REL32(X-4) */
 };
 
@@ -2530,10 +2530,10 @@ static const insn_sequence elf32_arm_stu
    long PIC stub.  We can use r1 as a scratch -- and cannot use ip.  */
 static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_tls_pic[] =
 {
-  THUMB16_INSN (0x4778),             /* bx   pc */
-  THUMB16_INSN (0x46c0),             /* nop */
-  ARM_INSN (0xe59f1000),             /* ldr  r1, [pc, #0] */
-  ARM_INSN (0xe081f00f),             /* add  pc, r1, pc */
+  THUMB16_INSN (0x4778),	     /* bx   pc */
+  THUMB16_INSN (0x46c0),	     /* nop */
+  ARM_INSN (0xe59f1000),	     /* ldr  r1, [pc, #0] */
+  ARM_INSN (0xe081f00f),	     /* add  pc, r1, pc */
   DATA_WORD (0, R_ARM_REL32, -4),    /* dcd  R_ARM_REL32(X) */
 };
 
@@ -2542,25 +2542,25 @@ static const insn_sequence elf32_arm_stu
 {
   ARM_INSN (0xe59fc00c),		/* ldr	ip, [pc, #12] */
   ARM_INSN (0xe3ccc13f),		/* bic	ip, ip, #0xc000000f */
-  ARM_INSN (0xe12fff1c),                /* bx	ip */
-  ARM_INSN (0xe320f000),                /* nop */
-  ARM_INSN (0xe125be70),                /* bkpt	0x5be0 */
-  DATA_WORD (0, R_ARM_ABS32, 0),        /* dcd	R_ARM_ABS32(X) */
-  DATA_WORD (0, R_ARM_NONE, 0),         /* .word 0 */
-  DATA_WORD (0, R_ARM_NONE, 0),         /* .word 0 */
+  ARM_INSN (0xe12fff1c),		/* bx	ip */
+  ARM_INSN (0xe320f000),		/* nop */
+  ARM_INSN (0xe125be70),		/* bkpt	0x5be0 */
+  DATA_WORD (0, R_ARM_ABS32, 0),	/* dcd	R_ARM_ABS32(X) */
+  DATA_WORD (0, R_ARM_NONE, 0),		/* .word 0 */
+  DATA_WORD (0, R_ARM_NONE, 0),		/* .word 0 */
 };
 
 /* NaCl ARM -> ARM long branch stub, PIC.  */
 static const insn_sequence elf32_arm_stub_long_branch_arm_nacl_pic[] =
 {
   ARM_INSN (0xe59fc00c),		/* ldr	ip, [pc, #12] */
-  ARM_INSN (0xe08cc00f),                /* add	ip, ip, pc */
+  ARM_INSN (0xe08cc00f),		/* add	ip, ip, pc */
   ARM_INSN (0xe3ccc13f),		/* bic	ip, ip, #0xc000000f */
-  ARM_INSN (0xe12fff1c),                /* bx	ip */
-  ARM_INSN (0xe125be70),                /* bkpt	0x5be0 */
-  DATA_WORD (0, R_ARM_REL32, 8),        /* dcd	R_ARM_REL32(X+8) */
-  DATA_WORD (0, R_ARM_NONE, 0),         /* .word 0 */
-  DATA_WORD (0, R_ARM_NONE, 0),         /* .word 0 */
+  ARM_INSN (0xe12fff1c),		/* bx	ip */
+  ARM_INSN (0xe125be70),		/* bkpt	0x5be0 */
+  DATA_WORD (0, R_ARM_REL32, 8),	/* dcd	R_ARM_REL32(X+8) */
+  DATA_WORD (0, R_ARM_NONE, 0),		/* .word 0 */
+  DATA_WORD (0, R_ARM_NONE, 0),		/* .word 0 */
 };
 
 /* Stub used for transition to secure state (aka SG veneer).  */
@@ -2578,7 +2578,7 @@ static const insn_sequence elf32_arm_stu
 
 static const insn_sequence elf32_arm_stub_a8_veneer_b_cond[] =
 {
-  THUMB16_BCOND_INSN (0xd001),         /* b<cond>.n true.  */
+  THUMB16_BCOND_INSN (0xd001),	       /* b<cond>.n true.  */
   THUMB32_B_INSN (0xf000b800, -4),     /* b.w insn_after_original_branch.  */
   THUMB32_B_INSN (0xf000b800, -4)      /* true: b.w original_branch_dest.  */
 };
@@ -3567,9 +3567,7 @@ using_thumb_only (struct elf32_arm_link_
   arch = bfd_elf_get_obj_attr_int (globals->obfd, OBJ_ATTR_PROC, Tag_CPU_arch);
 
   /* Force return logic to be reviewed for each new architecture.  */
-  BFD_ASSERT (arch <= TAG_CPU_ARCH_V8
-	      || arch == TAG_CPU_ARCH_V8M_BASE
-	      || arch == TAG_CPU_ARCH_V8M_MAIN);
+  BFD_ASSERT (arch <= TAG_CPU_ARCH_V8M_MAIN);
 
   if (arch == TAG_CPU_ARCH_V6_M
       || arch == TAG_CPU_ARCH_V6S_M
@@ -3596,14 +3594,13 @@ using_thumb2 (struct elf32_arm_link_hash
   arch = bfd_elf_get_obj_attr_int (globals->obfd, OBJ_ATTR_PROC, Tag_CPU_arch);
 
   /* Force return logic to be reviewed for each new architecture.  */
-  BFD_ASSERT (arch <= TAG_CPU_ARCH_V8
-	      || arch == TAG_CPU_ARCH_V8M_BASE
-	      || arch == TAG_CPU_ARCH_V8M_MAIN);
+  BFD_ASSERT (arch <= TAG_CPU_ARCH_V8M_MAIN);
 
   return (arch == TAG_CPU_ARCH_V6T2
 	  || arch == TAG_CPU_ARCH_V7
 	  || arch == TAG_CPU_ARCH_V7E_M
 	  || arch == TAG_CPU_ARCH_V8
+	  || arch == TAG_CPU_ARCH_V8R
 	  || arch == TAG_CPU_ARCH_V8M_MAIN);
 }
 
@@ -3616,9 +3613,7 @@ using_thumb2_bl (struct elf32_arm_link_h
     bfd_elf_get_obj_attr_int (globals->obfd, OBJ_ATTR_PROC, Tag_CPU_arch);
 
   /* Force return logic to be reviewed for each new architecture.  */
-  BFD_ASSERT (arch <= TAG_CPU_ARCH_V8
-	      || arch == TAG_CPU_ARCH_V8M_BASE
-	      || arch == TAG_CPU_ARCH_V8M_MAIN);
+  BFD_ASSERT (arch <= TAG_CPU_ARCH_V8M_MAIN);
 
   /* Architecture was introduced after ARMv6T2 (eg. ARMv6-M).  */
   return (arch == TAG_CPU_ARCH_V6T2
@@ -3824,14 +3819,13 @@ arch_has_arm_nop (struct elf32_arm_link_
 					     Tag_CPU_arch);
 
   /* Force return logic to be reviewed for each new architecture.  */
-  BFD_ASSERT (arch <= TAG_CPU_ARCH_V8
-	      || arch == TAG_CPU_ARCH_V8M_BASE
-	      || arch == TAG_CPU_ARCH_V8M_MAIN);
+  BFD_ASSERT (arch <= TAG_CPU_ARCH_V8M_MAIN);
 
   return (arch == TAG_CPU_ARCH_V6T2
 	  || arch == TAG_CPU_ARCH_V6K
 	  || arch == TAG_CPU_ARCH_V7
-	  || arch == TAG_CPU_ARCH_V8);
+	  || arch == TAG_CPU_ARCH_V8
+	  || arch == TAG_CPU_ARCH_V8R);
 }
 
 static bfd_boolean
@@ -3911,7 +3905,7 @@ arm_type_of_stub (struct bfd_link_info *
   /* ST_BRANCH_TO_ARM is nonsense to thumb-only targets when we
      are considering a function call relocation.  */
   if (thumb_only && (r_type == R_ARM_THM_CALL || r_type == R_ARM_THM_JUMP24
-                     || r_type == R_ARM_THM_JUMP19)
+		     || r_type == R_ARM_THM_JUMP19)
       && branch_type == ST_BRANCH_TO_ARM)
     branch_type = ST_BRANCH_TO_THUMB;
 
@@ -4005,7 +3999,7 @@ arm_type_of_stub (struct bfd_link_info *
 	      && (((r_type == R_ARM_THM_CALL
 		    || r_type == R_ARM_THM_TLS_CALL) && !globals->use_blx)
 		  || (r_type == R_ARM_THM_JUMP24)
-                  || (r_type == R_ARM_THM_JUMP19))
+		  || (r_type == R_ARM_THM_JUMP19))
 	      && !use_plt))
 	{
 	  /* If we need to insert a Thumb-Thumb long branch stub to a
@@ -4146,7 +4140,7 @@ arm_type_of_stub (struct bfd_link_info *
 	      _bfd_error_handler
 		(_("%B(%s): warning: interworking not enabled.\n"
 		   "  first occurrence: %B: ARM call to Thumb"),
-		 sym_sec->owner, input_bfd, name);
+		 sym_sec->owner, name, input_bfd);
 	    }
 
 	  /* We have an extra 2-bytes reach because of
@@ -6847,21 +6841,21 @@ static const insn32 a2t1p_ldr_insn = 0xe
 static const insn32 a2t2p_add_pc_insn = 0xe08cc00f;
 static const insn32 a2t3p_bx_r12_insn = 0xe12fff1c;
 
-/* Thumb->ARM:                          Thumb->(non-interworking aware) ARM
+/* Thumb->ARM:				Thumb->(non-interworking aware) ARM
 
-     .thumb                             .thumb
-     .align 2                           .align 2
- __func_from_thumb:                 __func_from_thumb:
-     bx pc                              push {r6, lr}
-     nop                                ldr  r6, __func_addr
-     .arm                               mov  lr, pc
-     b func                             bx   r6
+     .thumb				.thumb
+     .align 2				.align 2
+ __func_from_thumb:		    __func_from_thumb:
+     bx pc				push {r6, lr}
+     nop				ldr  r6, __func_addr
+     .arm				mov  lr, pc
+     b func				bx   r6
 					.arm
 				    ;; back_to_thumb
 					ldmia r13! {r6, lr}
 					bx    lr
 				    __func_addr:
-					.word        func  */
+					.word	     func  */
 
 #define THUMB2ARM_GLUE_SIZE 8
 static const insn16 t2a1_bx_pc_insn = 0x4778;
@@ -8621,12 +8615,12 @@ bfd_elf32_arm_stm32l4xx_erratum_scan (bf
 			  {
 			    _bfd_error_handler
 			      /* xgettext:c-format */
-			      (_("%B(%A+0x%lx): error: multiple load detected"
+			      (_("%B(%A+%#x): error: multiple load detected"
 				 " in non-last IT block instruction :"
 				 " STM32L4XX veneer cannot be generated.\n"
 				 "Use gcc option -mrestrict-it to generate"
 				 " only one instruction per IT block.\n"),
-			       abfd, sec, (long) i);
+			       abfd, sec, i);
 			  }
 			else
 			  {
@@ -8768,15 +8762,15 @@ insert_thumb_branch (bfd *abfd, long int
 
 static int
 elf32_thumb_to_arm_stub (struct bfd_link_info * info,
-			 const char *           name,
-			 bfd *                  input_bfd,
-			 bfd *                  output_bfd,
-			 asection *             input_section,
-			 bfd_byte *             hit_data,
-			 asection *             sym_sec,
-			 bfd_vma                offset,
-			 bfd_signed_vma         addend,
-			 bfd_vma                val,
+			 const char *		name,
+			 bfd *			input_bfd,
+			 bfd *			output_bfd,
+			 asection *		input_section,
+			 bfd_byte *		hit_data,
+			 asection *		sym_sec,
+			 bfd_vma		offset,
+			 bfd_signed_vma		addend,
+			 bfd_vma		val,
 			 char **error_message)
 {
   asection * s = 0;
@@ -8869,13 +8863,13 @@ elf32_thumb_to_arm_stub (struct bfd_link
 
 static struct elf_link_hash_entry *
 elf32_arm_create_thumb_stub (struct bfd_link_info * info,
-			     const char *           name,
-			     bfd *                  input_bfd,
-			     bfd *                  output_bfd,
-			     asection *             sym_sec,
-			     bfd_vma                val,
-			     asection *             s,
-			     char **                error_message)
+			     const char *	    name,
+			     bfd *		    input_bfd,
+			     bfd *		    output_bfd,
+			     asection *		    sym_sec,
+			     bfd_vma		    val,
+			     asection *		    s,
+			     char **		    error_message)
 {
   bfd_vma my_offset;
   long int ret_offset;
@@ -8964,15 +8958,15 @@ elf32_arm_create_thumb_stub (struct bfd_
 
 static int
 elf32_arm_to_thumb_stub (struct bfd_link_info * info,
-			 const char *           name,
-			 bfd *                  input_bfd,
-			 bfd *                  output_bfd,
-			 asection *             input_section,
-			 bfd_byte *             hit_data,
-			 asection *             sym_sec,
-			 bfd_vma                offset,
-			 bfd_signed_vma         addend,
-			 bfd_vma                val,
+			 const char *		name,
+			 bfd *			input_bfd,
+			 bfd *			output_bfd,
+			 asection *		input_section,
+			 bfd_byte *		hit_data,
+			 asection *		sym_sec,
+			 bfd_vma		offset,
+			 bfd_signed_vma		addend,
+			 bfd_vma		val,
 			 char **error_message)
 {
   unsigned long int tmp;
@@ -9726,8 +9720,8 @@ elf32_arm_tls_relax (struct elf32_arm_li
 	      | bfd_get_16 (input_bfd, contents + rel->r_offset + 2);
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): unexpected Thumb instruction '0x%x' in TLS trampoline"),
-	     input_bfd, input_sec, (unsigned long)rel->r_offset, insn);
+	    (_("%B(%A+%#Lx): unexpected Thumb instruction '%#lx' in TLS trampoline"),
+	     input_bfd, input_sec, rel->r_offset, insn);
 	  return bfd_reloc_notsupported;
 	}
       break;
@@ -9766,8 +9760,8 @@ elf32_arm_tls_relax (struct elf32_arm_li
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): unexpected ARM instruction '0x%x' in TLS trampoline"),
-	     input_bfd, input_sec, (unsigned long)rel->r_offset, insn);
+	    (_("%B(%A+%#Lx): unexpected ARM instruction '%#lx' in TLS trampoline"),
+	     input_bfd, input_sec, rel->r_offset, insn);
 	  return bfd_reloc_notsupported;
 	}
       break;
@@ -9870,48 +9864,50 @@ identify_add_or_sub (bfd_vma insn)
 /* Perform a relocation as part of a final link.  */
 
 static bfd_reloc_status_type
-elf32_arm_final_link_relocate (reloc_howto_type *           howto,
-			       bfd *                        input_bfd,
-			       bfd *                        output_bfd,
-			       asection *                   input_section,
-			       bfd_byte *                   contents,
-			       Elf_Internal_Rela *          rel,
-			       bfd_vma                      value,
-			       struct bfd_link_info *       info,
-			       asection *                   sym_sec,
-			       const char *                 sym_name,
-			       unsigned char                st_type,
-			       enum arm_st_branch_type      branch_type,
+elf32_arm_final_link_relocate (reloc_howto_type *	    howto,
+			       bfd *			    input_bfd,
+			       bfd *			    output_bfd,
+			       asection *		    input_section,
+			       bfd_byte *		    contents,
+			       Elf_Internal_Rela *	    rel,
+			       bfd_vma			    value,
+			       struct bfd_link_info *	    info,
+			       asection *		    sym_sec,
+			       const char *		    sym_name,
+			       unsigned char		    st_type,
+			       enum arm_st_branch_type	    branch_type,
 			       struct elf_link_hash_entry * h,
-			       bfd_boolean *                unresolved_reloc_p,
-			       char **                      error_message)
+			       bfd_boolean *		    unresolved_reloc_p,
+			       char **			    error_message)
 {
-  unsigned long                 r_type = howto->type;
-  unsigned long                 r_symndx;
-  bfd_byte *                    hit_data = contents + rel->r_offset;
-  bfd_vma *                     local_got_offsets;
-  bfd_vma *                     local_tlsdesc_gotents;
-  asection *                    sgot;
-  asection *                    splt;
-  asection *                    sreloc = NULL;
-  asection *                    srelgot;
-  bfd_vma                       addend;
-  bfd_signed_vma                signed_addend;
-  unsigned char                 dynreloc_st_type;
-  bfd_vma                       dynreloc_value;
+  unsigned long			r_type = howto->type;
+  unsigned long			r_symndx;
+  bfd_byte *			hit_data = contents + rel->r_offset;
+  bfd_vma *			local_got_offsets;
+  bfd_vma *			local_tlsdesc_gotents;
+  asection *			sgot;
+  asection *			splt;
+  asection *			sreloc = NULL;
+  asection *			srelgot;
+  bfd_vma			addend;
+  bfd_signed_vma		signed_addend;
+  unsigned char			dynreloc_st_type;
+  bfd_vma			dynreloc_value;
   struct elf32_arm_link_hash_table * globals;
   struct elf32_arm_link_hash_entry *eh;
-  union gotplt_union           *root_plt;
-  struct arm_plt_info          *arm_plt;
-  bfd_vma                       plt_offset;
-  bfd_vma                       gotplt_offset;
-  bfd_boolean                   has_iplt_entry;
+  union gotplt_union	       *root_plt;
+  struct arm_plt_info	       *arm_plt;
+  bfd_vma			plt_offset;
+  bfd_vma			gotplt_offset;
+  bfd_boolean			has_iplt_entry;
+  bfd_boolean			resolved_to_zero;
 
   globals = elf32_arm_hash_table (info);
   if (globals == NULL)
     return bfd_reloc_notsupported;
 
   BFD_ASSERT (is_arm_elf (input_bfd));
+  BFD_ASSERT (howto != NULL);
 
   /* Some relocation types map to different relocations depending on the
      target.  We pick the right one here.  */
@@ -10022,6 +10018,9 @@ elf32_arm_final_link_relocate (reloc_how
       gotplt_offset = (bfd_vma) -1;
     }
 
+  resolved_to_zero = (h != NULL
+		      && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h));
+
   switch (r_type)
     {
     case R_ARM_NONE:
@@ -10086,7 +10085,8 @@ elf32_arm_final_link_relocate (reloc_how
 	  && !(input_bfd == globals->stub_bfd
 	       && strstr (input_section->name, STUB_SUFFIX))
 	  && (h == NULL
-	      || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+	      || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		  && !resolved_to_zero)
 	      || h->root.type != bfd_link_hash_undefweak)
 	  && r_type != R_ARM_PC24
 	  && r_type != R_ARM_CALL
@@ -10506,11 +10506,17 @@ elf32_arm_final_link_relocate (reloc_how
 			  + input_section->output_offset
 			  + rel->r_offset);
 
-	value = relocation;
+	/* PR 21523: Use an absolute value.  The user of this reloc will
+	   have already selected an ADD or SUB insn appropriately.  */
+	value = labs (relocation);
 
 	if (value >= 0x1000)
 	  return bfd_reloc_overflow;
 
+	/* Destination is Thumb.  Force bit 0 to 1 to reflect this.  */
+	if (branch_type == ST_BRANCH_TO_THUMB)
+	  value |= 1;
+
 	insn = (insn & 0xfb0f8f00) | (value & 0xff)
 	     | ((value & 0x700) << 4)
 	     | ((value & 0x800) << 15);
@@ -10832,7 +10838,7 @@ elf32_arm_final_link_relocate (reloc_how
 	bfd_signed_vma reloc_signed_max = 0xffffe;
 	bfd_signed_vma reloc_signed_min = -0x100000;
 	bfd_signed_vma signed_check;
-        enum elf32_arm_stub_type stub_type = arm_stub_none;
+	enum elf32_arm_stub_type stub_type = arm_stub_none;
 	struct elf32_arm_stub_hash_entry *stub_entry;
 	struct elf32_arm_link_hash_entry *hash;
 
@@ -10869,20 +10875,20 @@ elf32_arm_final_link_relocate (reloc_how
 	hash = (struct elf32_arm_link_hash_entry *)h;
 
 	stub_type = arm_type_of_stub (info, input_section, rel,
-		                      st_type, &branch_type,
-		                      hash, value, sym_sec,
-		                      input_bfd, sym_name);
+				      st_type, &branch_type,
+				      hash, value, sym_sec,
+				      input_bfd, sym_name);
 	if (stub_type != arm_stub_none)
 	  {
 	    stub_entry = elf32_arm_get_stub_entry (input_section,
-				                   sym_sec, h,
-				                   rel, globals,
-				                   stub_type);
+						   sym_sec, h,
+						   rel, globals,
+						   stub_type);
 	    if (stub_entry != NULL)
 	      {
-	        value = (stub_entry->stub_offset
-                        + stub_entry->stub_sec->output_offset
-                        + stub_entry->stub_sec->output_section->vma);
+		value = (stub_entry->stub_offset
+			+ stub_entry->stub_sec->output_offset
+			+ stub_entry->stub_sec->output_section->vma);
 	      }
 	  }
 
@@ -11283,7 +11289,8 @@ elf32_arm_final_link_relocate (reloc_how
 
 	    if ((bfd_link_pic (info) || indx != 0)
 		&& (h == NULL
-		    || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		    || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+			&& !resolved_to_zero)
 		    || h->root.type != bfd_link_hash_undefweak))
 	      {
 		need_relocs = TRUE;
@@ -11524,9 +11531,8 @@ elf32_arm_final_link_relocate (reloc_how
 		  {
 		    _bfd_error_handler
 		      /* xgettext:c-format */
-		      (_("%B(%A+0x%lx): unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC"),
-		       input_bfd, input_section,
-		       (unsigned long)rel->r_offset, insn);
+		      (_("%B(%A+%#Lx): unexpected Thumb instruction '%#lx' referenced by TLS_GOTDESC"),
+		       input_bfd, input_section, rel->r_offset, insn);
 		    return bfd_reloc_notsupported;
 		  }
 	      }
@@ -11548,9 +11554,8 @@ elf32_arm_final_link_relocate (reloc_how
 		  default:
 		    _bfd_error_handler
 		      /* xgettext:c-format */
-		      (_("%B(%A+0x%lx): unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC"),
-		       input_bfd, input_section,
-		       (unsigned long)rel->r_offset, insn);
+		      (_("%B(%A+%#Lx): unexpected ARM instruction '%#lx' referenced by TLS_GOTDESC"),
+		       input_bfd, input_section, rel->r_offset, insn);
 		    return bfd_reloc_notsupported;
 		  }
 	      }
@@ -11578,9 +11583,8 @@ elf32_arm_final_link_relocate (reloc_how
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object"),
-	     input_bfd, input_section,
-	     (long) rel->r_offset, howto->name);
+	    (_("%B(%A+%#Lx): %s relocation not permitted in shared object"),
+	     input_bfd, input_section, rel->r_offset, howto->name);
 	  return bfd_reloc_notsupported;
 	}
       else
@@ -11686,7 +11690,7 @@ elf32_arm_final_link_relocate (reloc_how
 	    addend = ((insn >> 4)  & 0xf000)
 		   | ((insn >> 15) & 0x0800)
 		   | ((insn >> 4)  & 0x0700)
-		   | (insn         & 0x00ff);
+		   | (insn	   & 0x00ff);
 	    signed_addend = (addend ^ 0x8000) - 0x8000;
 	  }
 
@@ -11792,9 +11796,8 @@ elf32_arm_final_link_relocate (reloc_how
 	      {
 		_bfd_error_handler
 		  /* xgettext:c-format */
-		  (_("%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations"),
-		  input_bfd, input_section,
-		  (long) rel->r_offset, howto->name);
+		  (_("%B(%A+%#Lx): Only ADD or SUB instructions are allowed for ALU group relocations"),
+		  input_bfd, input_section, rel->r_offset);
 		return bfd_reloc_overflow;
 	      }
 
@@ -11833,10 +11836,9 @@ elf32_arm_final_link_relocate (reloc_how
 	  {
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"),
-	      input_bfd, input_section,
-	       (long) rel->r_offset, signed_value < 0 ? - signed_value : signed_value,
-	       howto->name);
+	      (_("%B(%A+%#Lx): Overflow whilst splitting %#Lx for group relocation %s"),
+	       input_bfd, input_section, rel->r_offset,
+	       signed_value < 0 ? -signed_value : signed_value, howto->name);
 	    return bfd_reloc_overflow;
 	  }
 
@@ -11924,9 +11926,9 @@ elf32_arm_final_link_relocate (reloc_how
 	  {
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"),
-	       input_bfd, input_section,
-	       (long) rel->r_offset, labs (signed_value), howto->name);
+	      (_("%B(%A+%#Lx): Overflow whilst splitting %#Lx for group relocation %s"),
+	       input_bfd, input_section, rel->r_offset,
+	       signed_value < 0 ? -signed_value : signed_value, howto->name);
 	    return bfd_reloc_overflow;
 	  }
 
@@ -12010,9 +12012,9 @@ elf32_arm_final_link_relocate (reloc_how
 	  {
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"),
-	       input_bfd, input_section,
-	       (long) rel->r_offset, labs (signed_value), howto->name);
+	      (_("%B(%A+%#Lx): Overflow whilst splitting %#Lx for group relocation %s"),
+	       input_bfd, input_section, rel->r_offset,
+	       signed_value < 0 ? -signed_value : signed_value, howto->name);
 	    return bfd_reloc_overflow;
 	  }
 
@@ -12098,9 +12100,9 @@ elf32_arm_final_link_relocate (reloc_how
 	  {
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"),
-	      input_bfd, input_section,
-	      (long) rel->r_offset, labs (signed_value), howto->name);
+	      (_("%B(%A+%#Lx): Overflow whilst splitting %#Lx for group relocation %s"),
+	       input_bfd, input_section, rel->r_offset,
+	       signed_value < 0 ? -signed_value : signed_value, howto->name);
 	    return bfd_reloc_overflow;
 	  }
 
@@ -12152,10 +12154,10 @@ elf32_arm_final_link_relocate (reloc_how
 
 /* Add INCREMENT to the reloc (of type HOWTO) at ADDRESS.  */
 static void
-arm_add_to_rel (bfd *              abfd,
-		bfd_byte *         address,
+arm_add_to_rel (bfd *		   abfd,
+		bfd_byte *	   address,
 		reloc_howto_type * howto,
-		bfd_signed_vma     increment)
+		bfd_signed_vma	   increment)
 {
   bfd_signed_vma addend;
 
@@ -12182,7 +12184,7 @@ arm_add_to_rel (bfd *              abfd,
     }
   else
     {
-      bfd_vma        contents;
+      bfd_vma	     contents;
 
       contents = bfd_get_32 (abfd, address);
 
@@ -12246,14 +12248,14 @@ arm_add_to_rel (bfd *              abfd,
 /* Relocate an ARM ELF section.  */
 
 static bfd_boolean
-elf32_arm_relocate_section (bfd *                  output_bfd,
+elf32_arm_relocate_section (bfd *		   output_bfd,
 			    struct bfd_link_info * info,
-			    bfd *                  input_bfd,
-			    asection *             input_section,
-			    bfd_byte *             contents,
-			    Elf_Internal_Rela *    relocs,
-			    Elf_Internal_Sym *     local_syms,
-			    asection **            local_sections)
+			    bfd *		   input_bfd,
+			    asection *		   input_section,
+			    bfd_byte *		   contents,
+			    Elf_Internal_Rela *	   relocs,
+			    Elf_Internal_Sym *	   local_syms,
+			    asection **		   local_sections)
 {
   Elf_Internal_Shdr *symtab_hdr;
   struct elf_link_hash_entry **sym_hashes;
@@ -12273,17 +12275,17 @@ elf32_arm_relocate_section (bfd *       
   relend = relocs + input_section->reloc_count;
   for (; rel < relend; rel++)
     {
-      int                          r_type;
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
+      int			   r_type;
+      reloc_howto_type *	   howto;
+      unsigned long		   r_symndx;
+      Elf_Internal_Sym *	   sym;
+      asection *		   sec;
       struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      arelent                      bfd_reloc;
-      char                         sym_type;
-      bfd_boolean                  unresolved_reloc = FALSE;
+      bfd_vma			   relocation;
+      bfd_reloc_status_type	   r;
+      arelent			   bfd_reloc;
+      char			   sym_type;
+      bfd_boolean		   unresolved_reloc = FALSE;
       char *error_message = NULL;
 
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -12294,8 +12296,10 @@ elf32_arm_relocate_section (bfd *       
 	  || r_type == R_ARM_GNU_VTINHERIT)
 	continue;
 
-      bfd_reloc.howto = elf32_arm_howto_from_type (r_type);
-      howto = bfd_reloc.howto;
+      howto = bfd_reloc.howto = elf32_arm_howto_from_type (r_type);
+
+      if (howto == NULL)
+	return _bfd_unrecognized_reloc (input_bfd, input_section, r_type);
 
       h = NULL;
       sym = NULL;
@@ -12362,9 +12366,9 @@ elf32_arm_relocate_section (bfd *       
 			{
 			  _bfd_error_handler
 			    /* xgettext:c-format */
-			    (_("%B(%A+0x%lx): %s relocation against SEC_MERGE section"),
+			    (_("%B(%A+%#Lx): %s relocation against SEC_MERGE section"),
 			     input_bfd, input_section,
-			     (long) rel->r_offset, howto->name);
+			     rel->r_offset, howto->name);
 			  return FALSE;
 			}
 
@@ -12474,12 +12478,12 @@ elf32_arm_relocate_section (bfd *       
 	  _bfd_error_handler
 	    ((sym_type == STT_TLS
 	      /* xgettext:c-format */
-	      ? _("%B(%A+0x%lx): %s used with TLS symbol %s")
+	      ? _("%B(%A+%#Lx): %s used with TLS symbol %s")
 	      /* xgettext:c-format */
-	      : _("%B(%A+0x%lx): %s used with non-TLS symbol %s")),
+	      : _("%B(%A+%#Lx): %s used with non-TLS symbol %s")),
 	     input_bfd,
 	     input_section,
-	     (long) rel->r_offset,
+	     rel->r_offset,
 	     howto->name,
 	     name);
 	}
@@ -12529,10 +12533,10 @@ elf32_arm_relocate_section (bfd *       
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+	    (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
 	     input_bfd,
 	     input_section,
-	     (long) rel->r_offset,
+	     rel->r_offset,
 	     howto->name,
 	     h->root.root.string);
 	  return FALSE;
@@ -13259,8 +13263,8 @@ tag_cpu_arch_combine (bfd *ibfd, int old
     };
   const int v6_m[] =
     {
-      -1,        /* PRE_V4.  */
-      -1,        /* V4.  */
+      -1,	 /* PRE_V4.  */
+      -1,	 /* V4.  */
       T(V6K),    /* V4T.  */
       T(V6K),    /* V5T.  */
       T(V6K),    /* V5TE.  */
@@ -13274,8 +13278,8 @@ tag_cpu_arch_combine (bfd *ibfd, int old
     };
   const int v6s_m[] =
     {
-      -1,        /* PRE_V4.  */
-      -1,        /* V4.  */
+      -1,	 /* PRE_V4.  */
+      -1,	 /* V4.  */
       T(V6K),    /* V4T.  */
       T(V6K),    /* V5T.  */
       T(V6K),    /* V5TE.  */
@@ -13290,8 +13294,8 @@ tag_cpu_arch_combine (bfd *ibfd, int old
     };
   const int v7e_m[] =
     {
-      -1,        /* PRE_V4.  */
-      -1,        /* V4.  */
+      -1,	 /* PRE_V4.  */
+      -1,	 /* V4.  */
       T(V7E_M),  /* V4T.  */
       T(V7E_M),  /* V5T.  */
       T(V7E_M),  /* V5TE.  */
@@ -13323,6 +13327,25 @@ tag_cpu_arch_combine (bfd *ibfd, int old
       T(V8),		/* V7E_M.  */
       T(V8)		/* V8.  */
     };
+  const int v8r[] =
+    {
+      T(V8R),		/* PRE_V4.  */
+      T(V8R),		/* V4.  */
+      T(V8R),		/* V4T.  */
+      T(V8R),		/* V5T.  */
+      T(V8R),		/* V5TE.  */
+      T(V8R),		/* V5TEJ.  */
+      T(V8R),		/* V6.  */
+      T(V8R),		/* V6KZ.  */
+      T(V8R),		/* V6T2.  */
+      T(V8R),		/* V6K.  */
+      T(V8R),		/* V7.  */
+      T(V8R),		/* V6_M.  */
+      T(V8R),		/* V6S_M.  */
+      T(V8R),		/* V7E_M.  */
+      T(V8),		/* V8.  */
+      T(V8R),		/* V8R.  */
+    };
   const int v8m_baseline[] =
     {
       -1,		/* PRE_V4.  */
@@ -13340,7 +13363,7 @@ tag_cpu_arch_combine (bfd *ibfd, int old
       T(V8M_BASE),	/* V6S_M.  */
       -1,		/* V7E_M.  */
       -1,		/* V8.  */
-      -1,
+      -1,		/* V8R.  */
       T(V8M_BASE)	/* V8-M BASELINE.  */
     };
   const int v8m_mainline[] =
@@ -13360,7 +13383,7 @@ tag_cpu_arch_combine (bfd *ibfd, int old
       T(V8M_MAIN),	/* V6S_M.  */
       T(V8M_MAIN),	/* V7E_M.  */
       -1,		/* V8.  */
-      -1,
+      -1,		/* V8R.  */
       T(V8M_MAIN),	/* V8-M BASELINE.  */
       T(V8M_MAIN)	/* V8-M MAINLINE.  */
     };
@@ -13381,7 +13404,7 @@ tag_cpu_arch_combine (bfd *ibfd, int old
       T(V6S_M),		/* V6S_M.  */
       T(V7E_M),		/* V7E_M.  */
       T(V8),		/* V8.  */
-      -1,		/* Unused.  */
+      -1,		/* V8R.  */
       T(V8M_BASE),	/* V8-M BASELINE.  */
       T(V8M_MAIN),	/* V8-M MAINLINE.  */
       T(V4T_PLUS_V6_M)	/* V4T plus V6_M.  */
@@ -13395,7 +13418,7 @@ tag_cpu_arch_combine (bfd *ibfd, int old
       v6s_m,
       v7e_m,
       v8,
-      NULL,
+      v8r,
       v8m_baseline,
       v8m_mainline,
       /* Pseudo-architecture.  */
@@ -13819,6 +13842,9 @@ elf32_arm_merge_eabi_attributes (bfd *ib
 		 follow the requirement of the input.  */
 	      if (out_attr[i].i == 0)
 		{
+		  /* This assert is still reasonable, we shouldn't
+		     produce the suspicious build attribute
+		     combination (See below for in_attr).  */
 		  BFD_ASSERT (out_attr[Tag_ABI_HardFP_use].i == 0);
 		  out_attr[i].i = in_attr[i].i;
 		  out_attr[Tag_ABI_HardFP_use].i
@@ -13829,7 +13855,13 @@ elf32_arm_merge_eabi_attributes (bfd *ib
 		 nothing.  */
 	      else if (in_attr[i].i == 0)
 		{
-		  BFD_ASSERT (in_attr[Tag_ABI_HardFP_use].i == 0);
+		  /* We used to assert that Tag_ABI_HardFP_use was
+		     zero here, but we should never assert when
+		     consuming an object file that has suspicious
+		     build attributes.  The single precision variant
+		     of 'no FP architecture' is still 'no FP
+		     architecture', so we just ignore the tag in this
+		     case.  */
 		  break;
 		}
 
@@ -14014,7 +14046,7 @@ elf32_arm_merge_eabi_attributes (bfd *ib
 	      if (in_attr[Tag_MPextension_use].i != in_attr[i].i)
 		{
 		  _bfd_error_handler
-		    (_("%B has has both the current and legacy "
+		    (_("%B has both the current and legacy "
 		       "Tag_MPextension_use attributes"),
 		     ibfd);
 		  result = FALSE;
@@ -14265,199 +14297,6 @@ elf32_arm_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-/* Update the got entry reference counts for the section being removed.  */
-
-static bfd_boolean
-elf32_arm_gc_sweep_hook (bfd *                     abfd,
-			 struct bfd_link_info *    info,
-			 asection *                sec,
-			 const Elf_Internal_Rela * relocs)
-{
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-  struct elf32_arm_link_hash_table * globals;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  globals = elf32_arm_hash_table (info);
-  if (globals == NULL)
-    return FALSE;
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  symtab_hdr = & elf_symtab_hdr (abfd);
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  check_use_blx (globals);
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      struct elf_link_hash_entry *h = NULL;
-      struct elf32_arm_link_hash_entry *eh;
-      int r_type;
-      bfd_boolean call_reloc_p;
-      bfd_boolean may_become_dynamic_p;
-      bfd_boolean may_need_local_target_p;
-      union gotplt_union *root_plt;
-      struct arm_plt_info *arm_plt;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	}
-      eh = (struct elf32_arm_link_hash_entry *) h;
-
-      call_reloc_p = FALSE;
-      may_become_dynamic_p = FALSE;
-      may_need_local_target_p = FALSE;
-
-      r_type = ELF32_R_TYPE (rel->r_info);
-      r_type = arm_real_reloc_type (globals, r_type);
-      switch (r_type)
-	{
-	case R_ARM_GOT32:
-	case R_ARM_GOT_PREL:
-	case R_ARM_TLS_GD32:
-	case R_ARM_TLS_IE32:
-	  if (h != NULL)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount -= 1;
-	    }
-	  else if (local_got_refcounts != NULL)
-	    {
-	      if (local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx] -= 1;
-	    }
-	  break;
-
-	case R_ARM_TLS_LDM32:
-	  globals->tls_ldm_got.refcount -= 1;
-	  break;
-
-	case R_ARM_PC24:
-	case R_ARM_PLT32:
-	case R_ARM_CALL:
-	case R_ARM_JUMP24:
-	case R_ARM_PREL31:
-	case R_ARM_THM_CALL:
-	case R_ARM_THM_JUMP24:
-	case R_ARM_THM_JUMP19:
-	  call_reloc_p = TRUE;
-	  may_need_local_target_p = TRUE;
-	  break;
-
-	case R_ARM_ABS12:
-	  if (!globals->vxworks_p)
-	    {
-	      may_need_local_target_p = TRUE;
-	      break;
-	    }
-	  /* Fall through.  */
-	case R_ARM_ABS32:
-	case R_ARM_ABS32_NOI:
-	case R_ARM_REL32:
-	case R_ARM_REL32_NOI:
-	case R_ARM_MOVW_ABS_NC:
-	case R_ARM_MOVT_ABS:
-	case R_ARM_MOVW_PREL_NC:
-	case R_ARM_MOVT_PREL:
-	case R_ARM_THM_MOVW_ABS_NC:
-	case R_ARM_THM_MOVT_ABS:
-	case R_ARM_THM_MOVW_PREL_NC:
-	case R_ARM_THM_MOVT_PREL:
-	  /* Should the interworking branches be here also?  */
-	  if ((bfd_link_pic (info) || globals->root.is_relocatable_executable)
-	      && (sec->flags & SEC_ALLOC) != 0)
-	    {
-	      if (h == NULL
-		  && elf32_arm_howto_from_type (r_type)->pc_relative)
-		{
-		  call_reloc_p = TRUE;
-		  may_need_local_target_p = TRUE;
-		}
-	      else
-		may_become_dynamic_p = TRUE;
-	    }
-	  else
-	    may_need_local_target_p = TRUE;
-	  break;
-
-	default:
-	  break;
-	}
-
-      if (may_need_local_target_p
-	  && elf32_arm_get_plt_info (abfd, globals, eh, r_symndx, &root_plt,
-				     &arm_plt))
-	{
-	  /* If PLT refcount book-keeping is wrong and too low, we'll
-	     see a zero value (going to -1) for the root PLT reference
-	     count.  */
-	  if (root_plt->refcount >= 0)
-	    {
-	      BFD_ASSERT (root_plt->refcount != 0);
-	      root_plt->refcount -= 1;
-	    }
-	  else
-	    /* A value of -1 means the symbol has become local, forced
-	       or seeing a hidden definition.  Any other negative value
-	       is an error.  */
-	    BFD_ASSERT (root_plt->refcount == -1);
-
-	  if (!call_reloc_p)
-	    arm_plt->noncall_refcount--;
-
-	  if (r_type == R_ARM_THM_CALL)
-	    arm_plt->maybe_thumb_refcount--;
-
-	  if (r_type == R_ARM_THM_JUMP24
-	      || r_type == R_ARM_THM_JUMP19)
-	    arm_plt->thumb_refcount--;
-	}
-
-      if (may_become_dynamic_p)
-	{
-	  struct elf_dyn_relocs **pp;
-	  struct elf_dyn_relocs *p;
-
-	  if (h != NULL)
-	    pp = &(eh->dyn_relocs);
-	  else
-	    {
-	      Elf_Internal_Sym *isym;
-
-	      isym = bfd_sym_from_r_symndx (&globals->sym_cache,
-					    abfd, r_symndx);
-	      if (isym == NULL)
-		return FALSE;
-	      pp = elf32_arm_get_local_dynreloc_list (abfd, r_symndx, isym);
-	      if (pp == NULL)
-		return FALSE;
-	    }
-	  for (; (p = *pp) != NULL; pp = &p->next)
-	    if (p->sec == sec)
-	      {
-		/* Everything must go for SEC.  */
-		*pp = p->next;
-		break;
-	      }
-	}
-    }
-
-  return TRUE;
-}
-
 /* Look through the relocs for a section during the first phase.  */
 
 static bfd_boolean
@@ -14513,7 +14352,7 @@ elf32_arm_check_relocs (bfd *abfd, struc
       Elf_Internal_Sym *isym;
       struct elf_link_hash_entry *h;
       struct elf32_arm_link_hash_entry *eh;
-      unsigned long r_symndx;
+      unsigned int r_symndx;
       int r_type;
 
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -14549,10 +14388,6 @@ elf32_arm_check_relocs (bfd *abfd, struc
 	      while (h->root.type == bfd_link_hash_indirect
 		     || h->root.type == bfd_link_hash_warning)
 		h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	      /* PR15323, ref flags aren't set for references in the
-		 same object.  */
-	      h->root.non_ir_ref = 1;
 	    }
 	}
 
@@ -15133,10 +14968,10 @@ elf32_arm_is_target_special_symbol (bfd 
    and STT_ARM_TFUNC is considered to a function type.  */
 
 static bfd_boolean
-arm_elf_find_function (bfd *         abfd ATTRIBUTE_UNUSED,
+arm_elf_find_function (bfd *	     abfd ATTRIBUTE_UNUSED,
 		       asymbol **    symbols,
 		       asection *    section,
-		       bfd_vma       offset,
+		       bfd_vma	     offset,
 		       const char ** filename_ptr,
 		       const char ** functionname_ptr)
 {
@@ -15195,10 +15030,10 @@ arm_elf_find_function (bfd *         abf
    that it uses arm_elf_find_function.  */
 
 static bfd_boolean
-elf32_arm_find_nearest_line (bfd *          abfd,
-			     asymbol **     symbols,
-			     asection *     section,
-			     bfd_vma        offset,
+elf32_arm_find_nearest_line (bfd *	    abfd,
+			     asymbol **	    symbols,
+			     asection *	    section,
+			     bfd_vma	    offset,
 			     const char **  filename_ptr,
 			     const char **  functionname_ptr,
 			     unsigned int * line_ptr,
@@ -15244,7 +15079,7 @@ elf32_arm_find_nearest_line (bfd *      
 }
 
 static bfd_boolean
-elf32_arm_find_inliner_info (bfd *          abfd,
+elf32_arm_find_inliner_info (bfd *	    abfd,
 			     const char **  filename_ptr,
 			     const char **  functionname_ptr,
 			     unsigned int * line_ptr)
@@ -15256,6 +15091,23 @@ elf32_arm_find_inliner_info (bfd *      
   return found;
 }
 
+/* Find dynamic relocs for H that apply to read-only sections.  */
+
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
+
+  for (p = elf32_arm_hash_entry (h)->dyn_relocs; p != NULL; p = p->next)
+    {
+      asection *s = p->sec->output_section;
+
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
+    }
+  return NULL;
+}
+
 /* Adjust a symbol defined by a dynamic object and referenced by a
    regular object.  The current definition is in some section of the
    dynamic object, but we're not including those sections.  We have to
@@ -15281,7 +15133,7 @@ elf32_arm_adjust_dynamic_symbol (struct 
   BFD_ASSERT (dynobj != NULL
 	      && (h->needs_plt
 		  || h->type == STT_GNU_IFUNC
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -15331,12 +15183,12 @@ elf32_arm_adjust_dynamic_symbol (struct 
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -15417,8 +15269,8 @@ allocate_dynrelocs_for_symbol (struct el
     {
       /* Make sure this symbol is output as a dynamic symbol.
 	 Undefined weak syms won't yet be marked as dynamic.  */
-      if (h->dynindx == -1
-	  && !h->forced_local)
+      if (h->dynindx == -1 && !h->forced_local
+	  && h->root.type == bfd_link_hash_undefweak)
 	{
 	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
 	    return FALSE;
@@ -15505,8 +15357,8 @@ allocate_dynrelocs_for_symbol (struct el
 
       /* Make sure this symbol is output as a dynamic symbol.
 	 Undefined weak syms won't yet be marked as dynamic.  */
-      if (h->dynindx == -1
-	  && !h->forced_local)
+      if (h->dynindx == -1 && !h->forced_local
+	  && h->root.type == bfd_link_hash_undefweak)
 	{
 	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
 	    return FALSE;
@@ -15690,7 +15542,8 @@ allocate_dynrelocs_for_symbol (struct el
       if (eh->dyn_relocs != NULL
 	  && h->root.type == bfd_link_hash_undefweak)
 	{
-	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
+	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+	      || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	    eh->dyn_relocs = NULL;
 
 	  /* Make sure undefined weak symbols are output as a dynamic
@@ -15729,8 +15582,8 @@ allocate_dynrelocs_for_symbol (struct el
 	{
 	  /* Make sure this symbol is output as a dynamic symbol.
 	     Undefined weak syms won't yet be marked as dynamic.  */
-	  if (h->dynindx == -1
-	      && !h->forced_local)
+	  if (h->dynindx == -1 && !h->forced_local
+	      && h->root.type == bfd_link_hash_undefweak)
 	    {
 	      if (! bfd_elf_link_record_dynamic_symbol (info, h))
 		return FALSE;
@@ -15762,28 +15615,29 @@ allocate_dynrelocs_for_symbol (struct el
   return TRUE;
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-elf32_arm_readonly_dynrelocs (struct elf_link_hash_entry * h, void * inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct elf32_arm_link_hash_entry * eh;
-  struct elf_dyn_relocs * p;
+  asection *sec;
 
-  eh = (struct elf32_arm_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection *s = p->sec;
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	{
-	  struct bfd_link_info *info = (struct bfd_link_info *) inf;
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
+    {
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-	  info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
-	  /* Not an error, just cut short the traversal.  */
-	  return FALSE;
-	}
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -16180,8 +16034,7 @@ elf32_arm_size_dynamic_sections (bfd * o
       /* If any dynamic relocs apply to a read-only section,
 	 then we need a DT_TEXTREL entry.  */
       if ((info->flags & DF_TEXTREL) == 0)
-	elf_link_hash_traverse (& htab->root, elf32_arm_readonly_dynrelocs,
-				info);
+	elf_link_hash_traverse (&htab->root, maybe_set_textrel, info);
 
       if ((info->flags & DF_TEXTREL) != 0)
 	{
@@ -17498,6 +17351,10 @@ elf32_arm_filter_implib_symbols (bfd *ab
 {
   struct elf32_arm_link_hash_table *globals = elf32_arm_hash_table (info);
 
+  /* Requirement 8 of "ARM v8-M Security Extensions: Requirements on
+     Development Tools" (ARM-ECM-0359818) mandates Secure Gateway import
+     library to be a relocatable object file.  */
+  BFD_ASSERT (!(bfd_get_file_flags (info->out_implib_bfd) & EXEC_P));
   if (globals->cmse_implib)
     return elf32_arm_filter_cmse_symbols (abfd, info, syms, symcount);
   else
@@ -17862,10 +17719,10 @@ push_thumb2_insn16 (struct elf32_arm_lin
 
 static bfd_byte *
 stm32l4xx_fill_stub_udf (struct elf32_arm_link_hash_table * htab,
-			 bfd *                   output_bfd,
-			 const bfd_byte * const  base_stub_contents,
-			 bfd_byte * const        from_stub_contents,
-			 const bfd_byte * const  end_stub_contents)
+			 bfd *			 output_bfd,
+			 const bfd_byte * const	 base_stub_contents,
+			 bfd_byte * const	 from_stub_contents,
+			 const bfd_byte * const	 end_stub_contents)
 {
   bfd_byte *current_stub_contents = from_stub_contents;
 
@@ -18561,11 +18418,11 @@ elf32_arm_write_section (bfd *output_bfd
 		      branch_to_veneer - (1 << 24) : 0;
 
 		    _bfd_error_handler
-		      (_("%B(%#x): error: Cannot create STM32L4XX veneer. "
-			 "Jump out of range by %ld bytes. "
+		      (_("%B(%#Lx): error: Cannot create STM32L4XX veneer. "
+			 "Jump out of range by %Ld bytes. "
 			 "Cannot encode branch instruction. "),
 		       output_bfd,
-		       (long) (stm32l4xx_errnode->vma - 4),
+		       stm32l4xx_errnode->vma - 4,
 		       out_of_range);
 		    continue;
 		  }
@@ -19344,32 +19201,31 @@ elf32_arm_backend_symbol_processing (bfd
 #define ELF_MINPAGESIZE			0x1000
 #define ELF_COMMONPAGESIZE		0x1000
 
-#define bfd_elf32_mkobject		        elf32_arm_mkobject
+#define bfd_elf32_mkobject			elf32_arm_mkobject
 
 #define bfd_elf32_bfd_copy_private_bfd_data	elf32_arm_copy_private_bfd_data
 #define bfd_elf32_bfd_merge_private_bfd_data	elf32_arm_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags		elf32_arm_set_private_flags
 #define bfd_elf32_bfd_print_private_bfd_data	elf32_arm_print_private_bfd_data
-#define bfd_elf32_bfd_link_hash_table_create    elf32_arm_link_hash_table_create
+#define bfd_elf32_bfd_link_hash_table_create	elf32_arm_link_hash_table_create
 #define bfd_elf32_bfd_reloc_type_lookup		elf32_arm_reloc_type_lookup
 #define bfd_elf32_bfd_reloc_name_lookup		elf32_arm_reloc_name_lookup
-#define bfd_elf32_find_nearest_line	        elf32_arm_find_nearest_line
-#define bfd_elf32_find_inliner_info	        elf32_arm_find_inliner_info
+#define bfd_elf32_find_nearest_line		elf32_arm_find_nearest_line
+#define bfd_elf32_find_inliner_info		elf32_arm_find_inliner_info
 #define bfd_elf32_new_section_hook		elf32_arm_new_section_hook
 #define bfd_elf32_bfd_is_target_special_symbol	elf32_arm_is_target_special_symbol
 #define bfd_elf32_bfd_final_link		elf32_arm_final_link
-#define bfd_elf32_get_synthetic_symtab  elf32_arm_get_synthetic_symtab
+#define bfd_elf32_get_synthetic_symtab	elf32_arm_get_synthetic_symtab
 
-#define elf_backend_get_symbol_type             elf32_arm_get_symbol_type
-#define elf_backend_gc_mark_hook                elf32_arm_gc_mark_hook
+#define elf_backend_get_symbol_type		elf32_arm_get_symbol_type
+#define elf_backend_gc_mark_hook		elf32_arm_gc_mark_hook
 #define elf_backend_gc_mark_extra_sections	elf32_arm_gc_mark_extra_sections
-#define elf_backend_gc_sweep_hook               elf32_arm_gc_sweep_hook
-#define elf_backend_check_relocs                elf32_arm_check_relocs
+#define elf_backend_check_relocs		elf32_arm_check_relocs
 #define elf_backend_update_relocs		elf32_arm_update_relocs
 #define elf_backend_relocate_section		elf32_arm_relocate_section
 #define elf_backend_write_section		elf32_arm_write_section
 #define elf_backend_adjust_dynamic_symbol	elf32_arm_adjust_dynamic_symbol
-#define elf_backend_create_dynamic_sections     elf32_arm_create_dynamic_sections
+#define elf_backend_create_dynamic_sections	elf32_arm_create_dynamic_sections
 #define elf_backend_finish_dynamic_symbol	elf32_arm_finish_dynamic_symbol
 #define elf_backend_finish_dynamic_sections	elf32_arm_finish_dynamic_sections
 #define elf_backend_size_dynamic_sections	elf32_arm_size_dynamic_sections
@@ -19378,16 +19234,16 @@ elf32_arm_backend_symbol_processing (bfd
 #define elf_backend_post_process_headers	elf32_arm_post_process_headers
 #define elf_backend_reloc_type_class		elf32_arm_reloc_type_class
 #define elf_backend_object_p			elf32_arm_object_p
-#define elf_backend_fake_sections  		elf32_arm_fake_sections
-#define elf_backend_section_from_shdr  		elf32_arm_section_from_shdr
-#define elf_backend_final_write_processing      elf32_arm_final_write_processing
-#define elf_backend_copy_indirect_symbol        elf32_arm_copy_indirect_symbol
+#define elf_backend_fake_sections		elf32_arm_fake_sections
+#define elf_backend_section_from_shdr		elf32_arm_section_from_shdr
+#define elf_backend_final_write_processing	elf32_arm_final_write_processing
+#define elf_backend_copy_indirect_symbol	elf32_arm_copy_indirect_symbol
 #define elf_backend_size_info			elf32_arm_size_info
 #define elf_backend_modify_segment_map		elf32_arm_modify_segment_map
-#define elf_backend_additional_program_headers  elf32_arm_additional_program_headers
-#define elf_backend_output_arch_local_syms      elf32_arm_output_arch_local_syms
+#define elf_backend_additional_program_headers	elf32_arm_additional_program_headers
+#define elf_backend_output_arch_local_syms	elf32_arm_output_arch_local_syms
 #define elf_backend_filter_implib_symbols	elf32_arm_filter_implib_symbols
-#define elf_backend_begin_write_processing      elf32_arm_begin_write_processing
+#define elf_backend_begin_write_processing	elf32_arm_begin_write_processing
 #define elf_backend_add_symbol_hook		elf32_arm_add_symbol_hook
 #define elf_backend_count_additional_relocs	elf32_arm_count_additional_relocs
 #define elf_backend_symbol_processing		elf32_arm_backend_symbol_processing
@@ -19406,21 +19262,23 @@ elf32_arm_backend_symbol_processing (bfd
 #define elf_backend_got_header_size	12
 #define elf_backend_extern_protected_data 1
 
-#undef  elf_backend_obj_attrs_vendor
+#undef	elf_backend_obj_attrs_vendor
 #define elf_backend_obj_attrs_vendor		"aeabi"
-#undef  elf_backend_obj_attrs_section
+#undef	elf_backend_obj_attrs_section
 #define elf_backend_obj_attrs_section		".ARM.attributes"
-#undef  elf_backend_obj_attrs_arg_type
+#undef	elf_backend_obj_attrs_arg_type
 #define elf_backend_obj_attrs_arg_type		elf32_arm_obj_attrs_arg_type
-#undef  elf_backend_obj_attrs_section_type
+#undef	elf_backend_obj_attrs_section_type
 #define elf_backend_obj_attrs_section_type	SHT_ARM_ATTRIBUTES
 #define elf_backend_obj_attrs_order		elf32_arm_obj_attrs_order
-#define elf_backend_obj_attrs_handle_unknown 	elf32_arm_obj_attrs_handle_unknown
+#define elf_backend_obj_attrs_handle_unknown	elf32_arm_obj_attrs_handle_unknown
 
-#undef  elf_backend_section_flags
+#undef	elf_backend_section_flags
 #define elf_backend_section_flags		elf32_arm_section_flags
-#undef  elf_backend_lookup_section_flags_hook
-#define elf_backend_lookup_section_flags_hook   elf32_arm_lookup_section_flags
+#undef	elf_backend_lookup_section_flags_hook
+#define elf_backend_lookup_section_flags_hook	elf32_arm_lookup_section_flags
+
+#define elf_backend_linux_prpsinfo32_ugid16	TRUE
 
 #include "elf32-target.h"
 
@@ -19523,14 +19381,14 @@ elf32_arm_nacl_plt_sym_val (bfd_vma i, c
 
 /* VxWorks Targets.  */
 
-#undef  TARGET_LITTLE_SYM
-#define TARGET_LITTLE_SYM               arm_elf32_vxworks_le_vec
-#undef  TARGET_LITTLE_NAME
-#define TARGET_LITTLE_NAME              "elf32-littlearm-vxworks"
-#undef  TARGET_BIG_SYM
-#define TARGET_BIG_SYM                  arm_elf32_vxworks_be_vec
-#undef  TARGET_BIG_NAME
-#define TARGET_BIG_NAME                 "elf32-bigarm-vxworks"
+#undef	TARGET_LITTLE_SYM
+#define TARGET_LITTLE_SYM		arm_elf32_vxworks_le_vec
+#undef	TARGET_LITTLE_NAME
+#define TARGET_LITTLE_NAME		"elf32-littlearm-vxworks"
+#undef	TARGET_BIG_SYM
+#define TARGET_BIG_SYM			arm_elf32_vxworks_be_vec
+#undef	TARGET_BIG_NAME
+#define TARGET_BIG_NAME			"elf32-bigarm-vxworks"
 
 /* Like elf32_arm_link_hash_table_create -- but overrides
    appropriately for VxWorks.  */
@@ -19808,14 +19666,14 @@ elf32_arm_merge_private_bfd_data (bfd *i
 
 /* Symbian OS Targets.  */
 
-#undef  TARGET_LITTLE_SYM
-#define TARGET_LITTLE_SYM               arm_elf32_symbian_le_vec
-#undef  TARGET_LITTLE_NAME
-#define TARGET_LITTLE_NAME              "elf32-littlearm-symbian"
-#undef  TARGET_BIG_SYM
-#define TARGET_BIG_SYM                  arm_elf32_symbian_be_vec
-#undef  TARGET_BIG_NAME
-#define TARGET_BIG_NAME                 "elf32-bigarm-symbian"
+#undef	TARGET_LITTLE_SYM
+#define TARGET_LITTLE_SYM		arm_elf32_symbian_le_vec
+#undef	TARGET_LITTLE_NAME
+#define TARGET_LITTLE_NAME		"elf32-littlearm-symbian"
+#undef	TARGET_BIG_SYM
+#define TARGET_BIG_SYM			arm_elf32_symbian_be_vec
+#undef	TARGET_BIG_NAME
+#define TARGET_BIG_NAME			"elf32-bigarm-symbian"
 
 /* Like elf32_arm_link_hash_table_create -- but overrides
    appropriately for Symbian OS.  */
@@ -19849,18 +19707,18 @@ elf32_arm_symbian_special_sections[] =
      the loadable read-only segment.  The post-linker may wish to
      refer to these sections, but they are not part of the final
      program image.  */
-  { STRING_COMMA_LEN (".dynamic"),       0, SHT_DYNAMIC,  0 },
-  { STRING_COMMA_LEN (".dynstr"),        0, SHT_STRTAB,   0 },
-  { STRING_COMMA_LEN (".dynsym"),        0, SHT_DYNSYM,   0 },
-  { STRING_COMMA_LEN (".got"),           0, SHT_PROGBITS, 0 },
-  { STRING_COMMA_LEN (".hash"),          0, SHT_HASH,     0 },
+  { STRING_COMMA_LEN (".dynamic"),	 0, SHT_DYNAMIC,  0 },
+  { STRING_COMMA_LEN (".dynstr"),	 0, SHT_STRTAB,	  0 },
+  { STRING_COMMA_LEN (".dynsym"),	 0, SHT_DYNSYM,	  0 },
+  { STRING_COMMA_LEN (".got"),		 0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".hash"),		 0, SHT_HASH,	  0 },
   /* These sections do not need to be writable as the SymbianOS
      postlinker will arrange things so that no dynamic relocation is
      required.  */
-  { STRING_COMMA_LEN (".init_array"),    0, SHT_INIT_ARRAY,    SHF_ALLOC },
-  { STRING_COMMA_LEN (".fini_array"),    0, SHT_FINI_ARRAY,    SHF_ALLOC },
+  { STRING_COMMA_LEN (".init_array"),	 0, SHT_INIT_ARRAY,    SHF_ALLOC },
+  { STRING_COMMA_LEN (".fini_array"),	 0, SHT_FINI_ARRAY,    SHF_ALLOC },
   { STRING_COMMA_LEN (".preinit_array"), 0, SHT_PREINIT_ARRAY, SHF_ALLOC },
-  { NULL,                             0, 0, 0,                 0 }
+  { NULL,			      0, 0, 0,		       0 }
 };
 
 static void
@@ -19933,7 +19791,7 @@ elf32_arm_symbian_plt_sym_val (bfd_vma i
 #undef  bfd_elf32_bfd_link_hash_table_create
 #define bfd_elf32_bfd_link_hash_table_create	elf32_arm_symbian_link_hash_table_create
 #undef  elf_backend_special_sections
-#define elf_backend_special_sections 		elf32_arm_symbian_special_sections
+#define elf_backend_special_sections		elf32_arm_symbian_special_sections
 #undef  elf_backend_begin_write_processing
 #define elf_backend_begin_write_processing	elf32_arm_symbian_begin_write_processing
 #undef  elf_backend_final_write_processing
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-avr.c ./bfd/elf32-avr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-avr.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-avr.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* AVR-specific support for 32-bit ELF
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Contributed by Denis Chertykov <denisc@overta.ru>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -88,9 +88,9 @@ struct elf32_avr_link_hash_table
   bfd_vma vector_base;
 
   /* Assorted information used by elf32_avr_size_stubs.  */
-  unsigned int        bfd_count;
-  unsigned int        top_index;
-  asection **         input_list;
+  unsigned int	      bfd_count;
+  unsigned int	      top_index;
+  asection **	      input_list;
   Elf_Internal_Sym ** all_local_syms;
 
   /* Tables for mapping vma beyond the 128k boundary to the address of the
@@ -475,37 +475,37 @@ static reloc_howto_type elf_avr_howto_ta
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE), 		/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
   /* A low 8 bit absolute relocation of 24 bit program memory address.
      For LDI command.  Will be changed when linker stubs are needed.  */
-  HOWTO (R_AVR_LO8_LDI_GS,      /* type */
-         1,                     /* rightshift */
-         1,                     /* size (0 = byte, 1 = short, 2 = long) */
-         8,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_AVR_LO8_LDI_GS",    /* name */
-         FALSE,                 /* partial_inplace */
-         0xffff,                /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_AVR_LO8_LDI_GS,	/* type */
+	 1,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 8,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_AVR_LO8_LDI_GS",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
   /* A low 8 bit absolute relocation of 24 bit program memory address.
      For LDI command.  Will be changed when linker stubs are needed.  */
-  HOWTO (R_AVR_HI8_LDI_GS,      /* type */
-         9,                     /* rightshift */
-         1,                     /* size (0 = byte, 1 = short, 2 = long) */
-         8,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_AVR_HI8_LDI_GS",    /* name */
-         FALSE,                 /* partial_inplace */
-         0xffff,                /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_AVR_HI8_LDI_GS,	/* type */
+	 9,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 8,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_AVR_HI8_LDI_GS",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
   /* 8 bit offset.  */
   HOWTO (R_AVR_8,		/* type */
 	 0,			/* rightshift */
@@ -563,57 +563,57 @@ static reloc_howto_type elf_avr_howto_ta
 	 0xffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
   HOWTO (R_AVR_DIFF8,		/* type */
-	 0,             	/* rightshift */
-	 0, 			/* size (0 = byte, 1 = short, 2 = long) */
-	 8, 			/* bitsize */
-	 FALSE,         	/* pc_relative */
-	 0,             	/* bitpos */
+	 0,			/* rightshift */
+	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 8,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
 	 bfd_elf_avr_diff_reloc, /* special_function */
-	 "R_AVR_DIFF8",     	/* name */
-	 FALSE,         	/* partial_inplace */
-	 0,             	/* src_mask */
-	 0xff,          	/* dst_mask */
-	 FALSE),        	/* pcrel_offset */
-  HOWTO (R_AVR_DIFF16,  	/* type */
-	 0,             	/* rightshift */
+	 "R_AVR_DIFF8",		/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xff,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (R_AVR_DIFF16,		/* type */
+	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
-	 FALSE,         	/* pc_relative */
-	 0,             	/* bitpos */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
 	 bfd_elf_avr_diff_reloc,/* special_function */
-	 "R_AVR_DIFF16",     	/* name */
-	 FALSE,         	/* partial_inplace */
-	 0,             	/* src_mask */
-	 0xffff,        	/* dst_mask */
-	 FALSE),        	/* pcrel_offset */
-  HOWTO (R_AVR_DIFF32,  	/* type */
-	 0,             	/* rightshift */
-	 2,         		/* size (0 = byte, 1 = short, 2 = long) */
-	 32,        		/* bitsize */
-	 FALSE,         	/* pc_relative */
-	 0,             	/* bitpos */
+	 "R_AVR_DIFF16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (R_AVR_DIFF32,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
 	 bfd_elf_avr_diff_reloc,/* special_function */
-	 "R_AVR_DIFF32",     	/* name */
-	 FALSE,         	/* partial_inplace */
-	 0,             	/* src_mask */
-	 0xffffffff,    	/* dst_mask */
-	 FALSE),        	/* pcrel_offset */
+	 "R_AVR_DIFF32",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
   /* 7 bit immediate for LDS/STS in Tiny core.  */
   HOWTO (R_AVR_LDS_STS_16,  /* type */
-	 0,                     /* rightshift */
-	 1,                     /* size (0 = byte, 1 = short, 2 = long) */
-	 7,                     /* bitsize */
-	 FALSE,                 /* pc_relative */
-	 0,                     /* bitpos */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 7,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
-	 "R_AVR_LDS_STS_16",    /* name */
-	 FALSE,                 /* partial_inplace */
-	 0xffff,                /* src_mask */
-	 0xffff,                /* dst_mask */
+	 "R_AVR_LDS_STS_16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_AVR_PORT6,		/* type */
@@ -641,21 +641,21 @@ static reloc_howto_type elf_avr_howto_ta
 	 FALSE,			/* partial_inplace */
 	 0xffffff,		/* src_mask */
 	 0xffffff,		/* dst_mask */
-	 FALSE), 		/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* A 32 bit PC relative relocation.  */
   HOWTO (R_AVR_32_PCREL,	/* type */
-	 0,				/* rightshift */
-	 2,				/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
 	 TRUE,			/* pc_relative */
-	 0,				/* bitpos */
+	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
 	 bfd_elf_generic_reloc, /* special_function */
 	 "R_AVR_32_PCREL",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0xffffffff,	/* src_mask */
-	 0xffffffff,	/* dst_mask */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 };
 
@@ -669,43 +669,43 @@ struct avr_reloc_map
 
 static const struct avr_reloc_map avr_reloc_map[] =
 {
-  { BFD_RELOC_NONE,                 R_AVR_NONE },
-  { BFD_RELOC_32,                   R_AVR_32 },
-  { BFD_RELOC_AVR_7_PCREL,          R_AVR_7_PCREL },
-  { BFD_RELOC_AVR_13_PCREL,         R_AVR_13_PCREL },
-  { BFD_RELOC_16,                   R_AVR_16 },
-  { BFD_RELOC_AVR_16_PM,            R_AVR_16_PM },
-  { BFD_RELOC_AVR_LO8_LDI,          R_AVR_LO8_LDI},
-  { BFD_RELOC_AVR_HI8_LDI,          R_AVR_HI8_LDI },
-  { BFD_RELOC_AVR_HH8_LDI,          R_AVR_HH8_LDI },
-  { BFD_RELOC_AVR_MS8_LDI,          R_AVR_MS8_LDI },
-  { BFD_RELOC_AVR_LO8_LDI_NEG,      R_AVR_LO8_LDI_NEG },
-  { BFD_RELOC_AVR_HI8_LDI_NEG,      R_AVR_HI8_LDI_NEG },
-  { BFD_RELOC_AVR_HH8_LDI_NEG,      R_AVR_HH8_LDI_NEG },
-  { BFD_RELOC_AVR_MS8_LDI_NEG,      R_AVR_MS8_LDI_NEG },
-  { BFD_RELOC_AVR_LO8_LDI_PM,       R_AVR_LO8_LDI_PM },
-  { BFD_RELOC_AVR_LO8_LDI_GS,       R_AVR_LO8_LDI_GS },
-  { BFD_RELOC_AVR_HI8_LDI_PM,       R_AVR_HI8_LDI_PM },
-  { BFD_RELOC_AVR_HI8_LDI_GS,       R_AVR_HI8_LDI_GS },
-  { BFD_RELOC_AVR_HH8_LDI_PM,       R_AVR_HH8_LDI_PM },
+  { BFD_RELOC_NONE,		    R_AVR_NONE },
+  { BFD_RELOC_32,		    R_AVR_32 },
+  { BFD_RELOC_AVR_7_PCREL,	    R_AVR_7_PCREL },
+  { BFD_RELOC_AVR_13_PCREL,	    R_AVR_13_PCREL },
+  { BFD_RELOC_16,		    R_AVR_16 },
+  { BFD_RELOC_AVR_16_PM,	    R_AVR_16_PM },
+  { BFD_RELOC_AVR_LO8_LDI,	    R_AVR_LO8_LDI},
+  { BFD_RELOC_AVR_HI8_LDI,	    R_AVR_HI8_LDI },
+  { BFD_RELOC_AVR_HH8_LDI,	    R_AVR_HH8_LDI },
+  { BFD_RELOC_AVR_MS8_LDI,	    R_AVR_MS8_LDI },
+  { BFD_RELOC_AVR_LO8_LDI_NEG,	    R_AVR_LO8_LDI_NEG },
+  { BFD_RELOC_AVR_HI8_LDI_NEG,	    R_AVR_HI8_LDI_NEG },
+  { BFD_RELOC_AVR_HH8_LDI_NEG,	    R_AVR_HH8_LDI_NEG },
+  { BFD_RELOC_AVR_MS8_LDI_NEG,	    R_AVR_MS8_LDI_NEG },
+  { BFD_RELOC_AVR_LO8_LDI_PM,	    R_AVR_LO8_LDI_PM },
+  { BFD_RELOC_AVR_LO8_LDI_GS,	    R_AVR_LO8_LDI_GS },
+  { BFD_RELOC_AVR_HI8_LDI_PM,	    R_AVR_HI8_LDI_PM },
+  { BFD_RELOC_AVR_HI8_LDI_GS,	    R_AVR_HI8_LDI_GS },
+  { BFD_RELOC_AVR_HH8_LDI_PM,	    R_AVR_HH8_LDI_PM },
   { BFD_RELOC_AVR_LO8_LDI_PM_NEG,   R_AVR_LO8_LDI_PM_NEG },
   { BFD_RELOC_AVR_HI8_LDI_PM_NEG,   R_AVR_HI8_LDI_PM_NEG },
   { BFD_RELOC_AVR_HH8_LDI_PM_NEG,   R_AVR_HH8_LDI_PM_NEG },
-  { BFD_RELOC_AVR_CALL,             R_AVR_CALL },
-  { BFD_RELOC_AVR_LDI,              R_AVR_LDI  },
-  { BFD_RELOC_AVR_6,                R_AVR_6    },
-  { BFD_RELOC_AVR_6_ADIW,           R_AVR_6_ADIW },
-  { BFD_RELOC_8,                    R_AVR_8 },
-  { BFD_RELOC_AVR_8_LO,             R_AVR_8_LO8 },
-  { BFD_RELOC_AVR_8_HI,             R_AVR_8_HI8 },
-  { BFD_RELOC_AVR_8_HLO,            R_AVR_8_HLO8 },
-  { BFD_RELOC_AVR_DIFF8,            R_AVR_DIFF8 },
-  { BFD_RELOC_AVR_DIFF16,           R_AVR_DIFF16 },
-  { BFD_RELOC_AVR_DIFF32,           R_AVR_DIFF32 },
-  { BFD_RELOC_AVR_LDS_STS_16,       R_AVR_LDS_STS_16},
-  { BFD_RELOC_AVR_PORT6,            R_AVR_PORT6},
-  { BFD_RELOC_AVR_PORT5,            R_AVR_PORT5},
-  { BFD_RELOC_32_PCREL,             R_AVR_32_PCREL}
+  { BFD_RELOC_AVR_CALL,		    R_AVR_CALL },
+  { BFD_RELOC_AVR_LDI,		    R_AVR_LDI  },
+  { BFD_RELOC_AVR_6,		    R_AVR_6    },
+  { BFD_RELOC_AVR_6_ADIW,	    R_AVR_6_ADIW },
+  { BFD_RELOC_8,		    R_AVR_8 },
+  { BFD_RELOC_AVR_8_LO,		    R_AVR_8_LO8 },
+  { BFD_RELOC_AVR_8_HI,		    R_AVR_8_HI8 },
+  { BFD_RELOC_AVR_8_HLO,	    R_AVR_8_HLO8 },
+  { BFD_RELOC_AVR_DIFF8,	    R_AVR_DIFF8 },
+  { BFD_RELOC_AVR_DIFF16,	    R_AVR_DIFF16 },
+  { BFD_RELOC_AVR_DIFF32,	    R_AVR_DIFF32 },
+  { BFD_RELOC_AVR_LDS_STS_16,	    R_AVR_LDS_STS_16},
+  { BFD_RELOC_AVR_PORT6,	    R_AVR_PORT6},
+  { BFD_RELOC_AVR_PORT5,	    R_AVR_PORT5},
+  { BFD_RELOC_32_PCREL,		    R_AVR_32_PCREL}
 };
 
 /* Meant to be filled one day with the wrap around address for the
@@ -804,17 +804,17 @@ init_avr_relax_info (asection *sec)
 
 static struct bfd_hash_entry *
 stub_hash_newfunc (struct bfd_hash_entry *entry,
-                   struct bfd_hash_table *table,
-                   const char *string)
+		   struct bfd_hash_table *table,
+		   const char *string)
 {
   /* Allocate the structure if it has not already been allocated by a
      subclass.  */
   if (entry == NULL)
     {
       entry = bfd_hash_allocate (table,
-                                 sizeof (struct elf32_avr_stub_hash_entry));
+				 sizeof (struct elf32_avr_stub_hash_entry));
       if (entry == NULL)
-        return entry;
+	return entry;
     }
 
   /* Call the allocation method of the superclass.  */
@@ -877,8 +877,8 @@ elf32_avr_link_hash_table_create (bfd *a
     return NULL;
 
   if (!_bfd_elf_link_hash_table_init (&htab->etab, abfd,
-                                      elf32_avr_link_hash_newfunc,
-                                      sizeof (struct elf_link_hash_entry),
+				      elf32_avr_link_hash_newfunc,
+				      sizeof (struct elf_link_hash_entry),
 				      AVR_ELF_DATA))
     {
       free (htab);
@@ -887,7 +887,7 @@ elf32_avr_link_hash_table_create (bfd *a
 
   /* Init the stub hash table too.  */
   if (!bfd_hash_table_init (&htab->bstab, stub_hash_newfunc,
-                            sizeof (struct elf32_avr_stub_hash_entry)))
+			    sizeof (struct elf32_avr_stub_hash_entry)))
     {
       _bfd_elf_link_hash_table_free (abfd);
       return NULL;
@@ -975,11 +975,11 @@ avr_stub_is_required_for_16_bit_reloc (b
 
 static bfd_vma
 avr_get_stub_addr (bfd_vma srel,
-                   struct elf32_avr_link_hash_table *htab)
+		   struct elf32_avr_link_hash_table *htab)
 {
   unsigned int sindex;
   bfd_vma stub_sec_addr =
-              (htab->stub_sec->output_section->vma +
+	      (htab->stub_sec->output_section->vma +
 	       htab->stub_sec->output_offset);
 
   for (sindex = 0; sindex < htab->amt_max_entry_cnt; sindex ++)
@@ -996,11 +996,11 @@ avr_get_stub_addr (bfd_vma srel,
 static bfd_reloc_status_type
 bfd_elf_avr_diff_reloc (bfd *abfd ATTRIBUTE_UNUSED,
 		      arelent *reloc_entry ATTRIBUTE_UNUSED,
-              asymbol *symbol ATTRIBUTE_UNUSED,
-              void *data ATTRIBUTE_UNUSED,
-              asection *input_section ATTRIBUTE_UNUSED,
-              bfd *output_bfd ATTRIBUTE_UNUSED,
-              char **error_message ATTRIBUTE_UNUSED)
+	      asymbol *symbol ATTRIBUTE_UNUSED,
+	      void *data ATTRIBUTE_UNUSED,
+	      asection *input_section ATTRIBUTE_UNUSED,
+	      bfd *output_bfd ATTRIBUTE_UNUSED,
+	      char **error_message ATTRIBUTE_UNUSED)
 {
   return bfd_reloc_ok;
 }
@@ -1010,21 +1010,21 @@ bfd_elf_avr_diff_reloc (bfd *abfd ATTRIB
    routines, but a few relocs, we have to do them ourselves.  */
 
 static bfd_reloc_status_type
-avr_final_link_relocate (reloc_howto_type *                 howto,
-			 bfd *                              input_bfd,
-			 asection *                         input_section,
-			 bfd_byte *                         contents,
-			 Elf_Internal_Rela *                rel,
-                         bfd_vma                            relocation,
-                         struct elf32_avr_link_hash_table * htab)
+avr_final_link_relocate (reloc_howto_type *		    howto,
+			 bfd *				    input_bfd,
+			 asection *			    input_section,
+			 bfd_byte *			    contents,
+			 Elf_Internal_Rela *		    rel,
+			 bfd_vma			    relocation,
+			 struct elf32_avr_link_hash_table * htab)
 {
   bfd_reloc_status_type r = bfd_reloc_ok;
-  bfd_vma               x;
+  bfd_vma		x;
   bfd_signed_vma	srel;
   bfd_signed_vma	reloc_addr;
-  bfd_boolean           use_stubs = FALSE;
+  bfd_boolean		use_stubs = FALSE;
   /* Usually is 0, unless we are generating code for a bootloader.  */
-  bfd_signed_vma        base_addr = htab->vector_base;
+  bfd_signed_vma	base_addr = htab->vector_base;
 
   /* Absolute addr of the reloc in the final excecutable.  */
   reloc_addr = rel->r_offset + input_section->output_section->vma
@@ -1070,7 +1070,7 @@ avr_final_link_relocate (reloc_howto_typ
       /* Check for overflow.  */
       if (srel < -2048 || srel > 2047)
 	{
-          /* Relative distance is too large.  */
+	  /* Relative distance is too large.  */
 
 	  /* Always apply WRAPAROUND for avr2, avr25, and avr4.  */
 	  switch (bfd_get_mach (input_bfd))
@@ -1103,8 +1103,8 @@ avr_final_link_relocate (reloc_howto_typ
       srel = (bfd_signed_vma) relocation + rel->r_addend;
       if (((srel > 0) && (srel & 0xffff) > 255)
 	  || ((srel < 0) && ((-srel) & 0xffff) > 128))
-        /* Remove offset for data/eeprom section.  */
-        return bfd_reloc_overflow;
+	/* Remove offset for data/eeprom section.  */
+	return bfd_reloc_overflow;
 
       x = bfd_get_16 (input_bfd, contents);
       x = (x & 0xf0f0) | (srel & 0xf) | ((srel << 4) & 0xf00);
@@ -1119,7 +1119,7 @@ avr_final_link_relocate (reloc_howto_typ
 	return bfd_reloc_overflow;
       x = bfd_get_16 (input_bfd, contents);
       x = (x & 0xd3f8) | ((srel & 7) | ((srel & (3 << 3)) << 7)
-                       | ((srel & (1 << 5)) << 8));
+		       | ((srel & (1 << 5)) << 8));
       bfd_put_16 (input_bfd, x, contents);
       break;
 
@@ -1208,22 +1208,22 @@ avr_final_link_relocate (reloc_howto_typ
       srel = (bfd_signed_vma) relocation + rel->r_addend;
 
       if (use_stubs
-          && avr_stub_is_required_for_16_bit_reloc (srel - base_addr))
-        {
-          bfd_vma old_srel = srel;
-
-          /* We need to use the address of the stub instead.  */
-          srel = avr_get_stub_addr (srel, htab);
-          if (debug_stubs)
-            printf ("LD: Using jump stub (at 0x%x) with destination 0x%x for "
-                    "reloc at address 0x%x.\n",
-                    (unsigned int) srel,
-                    (unsigned int) old_srel,
-                    (unsigned int) reloc_addr);
+	  && avr_stub_is_required_for_16_bit_reloc (srel - base_addr))
+	{
+	  bfd_vma old_srel = srel;
+
+	  /* We need to use the address of the stub instead.  */
+	  srel = avr_get_stub_addr (srel, htab);
+	  if (debug_stubs)
+	    printf ("LD: Using jump stub (at 0x%x) with destination 0x%x for "
+		    "reloc at address 0x%x.\n",
+		    (unsigned int) srel,
+		    (unsigned int) old_srel,
+		    (unsigned int) reloc_addr);
 
 	  if (avr_stub_is_required_for_16_bit_reloc (srel - base_addr))
 	    return bfd_reloc_outofrange;
-        }
+	}
 
       if (srel & 1)
 	return bfd_reloc_outofrange;
@@ -1241,22 +1241,22 @@ avr_final_link_relocate (reloc_howto_typ
       srel = (bfd_signed_vma) relocation + rel->r_addend;
 
       if (use_stubs
-          && avr_stub_is_required_for_16_bit_reloc (srel - base_addr))
-        {
-          bfd_vma old_srel = srel;
-
-          /* We need to use the address of the stub instead.  */
-          srel = avr_get_stub_addr (srel, htab);
-          if (debug_stubs)
-            printf ("LD: Using jump stub (at 0x%x) with destination 0x%x for "
-                    "reloc at address 0x%x.\n",
-                    (unsigned int) srel,
-                    (unsigned int) old_srel,
-                    (unsigned int) reloc_addr);
+	  && avr_stub_is_required_for_16_bit_reloc (srel - base_addr))
+	{
+	  bfd_vma old_srel = srel;
+
+	  /* We need to use the address of the stub instead.  */
+	  srel = avr_get_stub_addr (srel, htab);
+	  if (debug_stubs)
+	    printf ("LD: Using jump stub (at 0x%x) with destination 0x%x for "
+		    "reloc at address 0x%x.\n",
+		    (unsigned int) srel,
+		    (unsigned int) old_srel,
+		    (unsigned int) reloc_addr);
 
 	  if (avr_stub_is_required_for_16_bit_reloc (srel - base_addr))
 	    return bfd_reloc_outofrange;
-        }
+	}
 
       if (srel & 1)
 	return bfd_reloc_outofrange;
@@ -1335,22 +1335,22 @@ avr_final_link_relocate (reloc_howto_typ
       srel = (bfd_signed_vma) relocation + rel->r_addend;
 
       if (use_stubs
-          && avr_stub_is_required_for_16_bit_reloc (srel - base_addr))
-        {
-          bfd_vma old_srel = srel;
-
-          /* We need to use the address of the stub instead.  */
-          srel = avr_get_stub_addr (srel,htab);
-          if (debug_stubs)
-            printf ("LD: Using jump stub (at 0x%x) with destination 0x%x for "
-                    "reloc at address 0x%x.\n",
-                    (unsigned int) srel,
-                    (unsigned int) old_srel,
-                    (unsigned int) reloc_addr);
+	  && avr_stub_is_required_for_16_bit_reloc (srel - base_addr))
+	{
+	  bfd_vma old_srel = srel;
+
+	  /* We need to use the address of the stub instead.  */
+	  srel = avr_get_stub_addr (srel,htab);
+	  if (debug_stubs)
+	    printf ("LD: Using jump stub (at 0x%x) with destination 0x%x for "
+		    "reloc at address 0x%x.\n",
+		    (unsigned int) srel,
+		    (unsigned int) old_srel,
+		    (unsigned int) reloc_addr);
 
 	  if (avr_stub_is_required_for_16_bit_reloc (srel - base_addr))
 	    return bfd_reloc_outofrange;
-        }
+	}
 
       if (srel & 1)
 	return bfd_reloc_outofrange;
@@ -1369,7 +1369,7 @@ avr_final_link_relocate (reloc_howto_typ
       contents += rel->r_offset;
       srel = (bfd_signed_vma) relocation + rel->r_addend;
       if ((srel & 0xFFFF) < 0x40 || (srel & 0xFFFF) > 0xbf)
-        return bfd_reloc_outofrange;
+	return bfd_reloc_outofrange;
       srel = srel & 0x7f;
       x = bfd_get_16 (input_bfd, contents);
       x |= (srel & 0x0f) | ((srel & 0x30) << 5) | ((srel & 0x40) << 2);
@@ -1380,7 +1380,7 @@ avr_final_link_relocate (reloc_howto_typ
       contents += rel->r_offset;
       srel = (bfd_signed_vma) relocation + rel->r_addend;
       if ((srel & 0xffff) > 0x3f)
-        return bfd_reloc_outofrange;
+	return bfd_reloc_outofrange;
       x = bfd_get_16 (input_bfd, contents);
       x = (x & 0xf9f0) | ((srel & 0x30) << 5) | (srel & 0x0f);
       bfd_put_16 (input_bfd, x, contents);
@@ -1390,7 +1390,7 @@ avr_final_link_relocate (reloc_howto_typ
       contents += rel->r_offset;
       srel = (bfd_signed_vma) relocation + rel->r_addend;
       if ((srel & 0xffff) > 0x1f)
-        return bfd_reloc_outofrange;
+	return bfd_reloc_outofrange;
       x = bfd_get_16 (input_bfd, contents);
       x = (x & 0xff07) | ((srel & 0x1f) << 3);
       bfd_put_16 (input_bfd, x, contents);
@@ -1417,10 +1417,10 @@ elf32_avr_relocate_section (bfd *output_
 			    Elf_Internal_Sym *local_syms,
 			    asection **local_sections)
 {
-  Elf_Internal_Shdr *           symtab_hdr;
+  Elf_Internal_Shdr *		symtab_hdr;
   struct elf_link_hash_entry ** sym_hashes;
-  Elf_Internal_Rela *           rel;
-  Elf_Internal_Rela *           relend;
+  Elf_Internal_Rela *		rel;
+  Elf_Internal_Rela *		relend;
   struct elf32_avr_link_hash_table * htab = avr_link_hash_table (info);
 
   if (htab == NULL)
@@ -1432,15 +1432,15 @@ elf32_avr_relocate_section (bfd *output_
 
   for (rel = relocs; rel < relend; rel ++)
     {
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
+      reloc_howto_type *	   howto;
+      unsigned long		   r_symndx;
+      Elf_Internal_Sym *	   sym;
+      asection *		   sec;
       struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 name;
-      int                          r_type;
+      bfd_vma			   relocation;
+      bfd_reloc_status_type	   r;
+      const char *		   name;
+      int			   r_type;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -1713,8 +1713,8 @@ static bfd_boolean
 elf32_avr_is_diff_reloc (Elf_Internal_Rela *irel)
 {
   return (ELF32_R_TYPE (irel->r_info) == R_AVR_DIFF8
-          ||ELF32_R_TYPE (irel->r_info) == R_AVR_DIFF16
-          || ELF32_R_TYPE (irel->r_info) == R_AVR_DIFF32);
+	  ||ELF32_R_TYPE (irel->r_info) == R_AVR_DIFF16
+	  || ELF32_R_TYPE (irel->r_info) == R_AVR_DIFF32);
 }
 
 /* Reduce the diff value written in the section by count if the shrinked
@@ -1723,11 +1723,11 @@ elf32_avr_is_diff_reloc (Elf_Internal_Re
 
 static void
 elf32_avr_adjust_diff_reloc_value (bfd *abfd,
-                                   struct bfd_section *isec,
-                                   Elf_Internal_Rela *irel,
-                                   bfd_vma symval,
-                                   bfd_vma shrinked_insn_address,
-                                   int count)
+				   struct bfd_section *isec,
+				   Elf_Internal_Rela *irel,
+				   bfd_vma symval,
+				   bfd_vma shrinked_insn_address,
+				   int count)
 {
   unsigned char *reloc_contents = NULL;
   unsigned char *isec_contents = elf_section_data (isec)->this_hdr.contents;
@@ -1785,32 +1785,35 @@ elf32_avr_adjust_diff_reloc_value (bfd *
 
 
   if (shrinked_insn_address >= start_address
-      && shrinked_insn_address <= end_address)
+      && shrinked_insn_address < end_address)
   {
     /* Reduce the diff value by count bytes and write it back into section
        contents. */
     bfd_signed_vma new_diff = x < 0 ? x + count : x - count;
 
+    if (sym2_address > shrinked_insn_address)
+      irel->r_addend -= count;
+
     switch (ELF32_R_TYPE (irel->r_info))
     {
     case R_AVR_DIFF8:
       {
-        bfd_put_signed_8 (abfd, new_diff, reloc_contents);
-        break;
+	bfd_put_signed_8 (abfd, new_diff, reloc_contents);
+	break;
       }
     case R_AVR_DIFF16:
       {
-        bfd_put_signed_16 (abfd, new_diff & 0xFFFF, reloc_contents);
-        break;
+	bfd_put_signed_16 (abfd, new_diff & 0xFFFF, reloc_contents);
+	break;
       }
     case R_AVR_DIFF32:
       {
-        bfd_put_signed_32 (abfd, new_diff & 0xFFFFFFFF, reloc_contents);
-        break;
+	bfd_put_signed_32 (abfd, new_diff & 0xFFFFFFFF, reloc_contents);
+	break;
       }
     default:
       {
-        BFD_FAIL();
+	BFD_FAIL();
       }
     }
 
@@ -1819,41 +1822,75 @@ elf32_avr_adjust_diff_reloc_value (bfd *
 
 static void
 elf32_avr_adjust_reloc_if_spans_insn (bfd *abfd,
-                                      asection *isec,
-                                      Elf_Internal_Rela *irel,  bfd_vma symval,
-                                      bfd_vma shrinked_insn_address,
-                                      bfd_vma shrink_boundary,
-                                      int count)
+				      asection *isec,
+				      Elf_Internal_Rela *irel,  bfd_vma symval,
+				      bfd_vma shrinked_insn_address,
+				      bfd_vma shrink_boundary,
+				      int count)
 {
 
   if (elf32_avr_is_diff_reloc (irel))
     {
       elf32_avr_adjust_diff_reloc_value (abfd, isec, irel,
-                                         symval,
-                                         shrinked_insn_address,
-                                         count);
+					 symval,
+					 shrinked_insn_address,
+					 count);
     }
   else
     {
       bfd_vma reloc_value = symval + irel->r_addend;
       bfd_boolean addend_within_shrink_boundary =
-        (reloc_value <= shrink_boundary);
+	(reloc_value <= shrink_boundary);
 
       bfd_boolean reloc_spans_insn =
-        (symval <= shrinked_insn_address
-         && reloc_value > shrinked_insn_address
-         && addend_within_shrink_boundary);
+	(symval <= shrinked_insn_address
+	 && reloc_value > shrinked_insn_address
+	 && addend_within_shrink_boundary);
 
       if (! reloc_spans_insn)
-        return;
+	return;
 
       irel->r_addend -= count;
 
       if (debug_relax)
-        printf ("Relocation's addend needed to be fixed \n");
+	printf ("Relocation's addend needed to be fixed \n");
     }
 }
 
+static bfd_boolean
+avr_should_move_sym (symvalue symval,
+		     bfd_vma start,
+		     bfd_vma end,
+		     bfd_boolean did_pad)
+{
+  bfd_boolean sym_within_boundary =
+	  did_pad ? symval < end : symval <= end;
+  return (symval > start && sym_within_boundary);
+}
+
+static bfd_boolean
+avr_should_reduce_sym_size (symvalue symval,
+			    symvalue symend,
+			    bfd_vma start,
+			    bfd_vma end,
+			    bfd_boolean did_pad)
+{
+  bfd_boolean sym_end_within_boundary =
+	  did_pad ? symend < end : symend <= end;
+  return (symval <= start && symend > start && sym_end_within_boundary);
+}
+
+static bfd_boolean
+avr_should_increase_sym_size (symvalue symval,
+			      symvalue symend,
+			      bfd_vma start,
+			      bfd_vma end,
+			      bfd_boolean did_pad)
+{
+  return avr_should_move_sym (symval, start, end, did_pad)
+	  && symend >= end && did_pad;
+}
+
 /* Delete some bytes from a section while changing the size of an instruction.
    The parameter "addr" denotes the section-relative offset pointing just
    behind the shrinked instruction. "addr+count" point at the first
@@ -1864,10 +1901,10 @@ elf32_avr_adjust_reloc_if_spans_insn (bf
 
 static bfd_boolean
 elf32_avr_relax_delete_bytes (bfd *abfd,
-                              asection *sec,
-                              bfd_vma addr,
-                              int count,
-                              bfd_boolean delete_shrinks_insn)
+			      asection *sec,
+			      bfd_vma addr,
+			      int count,
+			      bfd_boolean delete_shrinks_insn)
 {
   Elf_Internal_Shdr *symtab_hdr;
   unsigned int sec_shndx;
@@ -1875,13 +1912,14 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
   Elf_Internal_Rela *irel, *irelend;
   Elf_Internal_Sym *isym;
   Elf_Internal_Sym *isymbuf = NULL;
-  bfd_vma toaddr, reloc_toaddr;
+  bfd_vma toaddr;
   struct elf_link_hash_entry **sym_hashes;
   struct elf_link_hash_entry **end_hashes;
   unsigned int symcount;
   struct avr_relax_info *relax_info;
   struct avr_property_record *prop_record = NULL;
   bfd_boolean did_shrink = FALSE;
+  bfd_boolean did_pad = FALSE;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sec_shndx = _bfd_elf_section_from_bfd_section (abfd, sec);
@@ -1893,35 +1931,24 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
   if (relax_info->records.count > 0)
     {
       /* There should be no property record within the range of deleted
-         bytes, however, there might be a property record for ADDR, this is
-         how we handle alignment directives.
-         Find the next (if any) property record after the deleted bytes.  */
+	 bytes, however, there might be a property record for ADDR, this is
+	 how we handle alignment directives.
+	 Find the next (if any) property record after the deleted bytes.  */
       unsigned int i;
 
       for (i = 0; i < relax_info->records.count; ++i)
-        {
-          bfd_vma offset = relax_info->records.items [i].offset;
+	{
+	  bfd_vma offset = relax_info->records.items [i].offset;
 
-          BFD_ASSERT (offset <= addr || offset >= (addr + count));
-          if (offset >= (addr + count))
-            {
-              prop_record = &relax_info->records.items [i];
-              toaddr = offset;
-              break;
-            }
-        }
-    }
-
-  /* We need to look at all relocs with offsets less than toaddr. prop
-     records handling adjusts toaddr downwards to avoid moving syms at the
-     address of the property record, but all relocs with offsets between addr
-     and the current value of toaddr need to have their offsets adjusted.
-     Assume addr = 0, toaddr = 4 and count = 2. After prop records handling,
-     toaddr becomes 2, but relocs with offsets 2 and 3 still need to be
-     adjusted (to 0 and 1 respectively), as the first 2 bytes are now gone.
-     So record the current value of toaddr here, and use it when adjusting
-     reloc offsets. */
-  reloc_toaddr = toaddr;
+	  BFD_ASSERT (offset <= addr || offset >= (addr + count));
+	  if (offset >= (addr + count))
+	    {
+	      prop_record = &relax_info->records.items [i];
+	      toaddr = offset;
+	      break;
+	    }
+	}
+    }
 
   irel = elf_section_data (sec)->relocs;
   irelend = irel + sec->reloc_count;
@@ -1930,7 +1957,7 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
   if (toaddr - addr - count > 0)
     {
       memmove (contents + addr, contents + addr + count,
-               (size_t) (toaddr - addr - count));
+	       (size_t) (toaddr - addr - count));
       did_shrink = TRUE;
     }
   if (prop_record == NULL)
@@ -1943,29 +1970,26 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
       /* Use the property record to fill in the bytes we've opened up.  */
       int fill = 0;
       switch (prop_record->type)
-        {
-        case RECORD_ORG_AND_FILL:
-          fill = prop_record->data.org.fill;
-          /* Fall through.  */
-        case RECORD_ORG:
-          break;
-        case RECORD_ALIGN_AND_FILL:
-          fill = prop_record->data.align.fill;
-          /* Fall through.  */
-        case RECORD_ALIGN:
-          prop_record->data.align.preceding_deleted += count;
-          break;
-        };
+	{
+	case RECORD_ORG_AND_FILL:
+	  fill = prop_record->data.org.fill;
+	  /* Fall through.  */
+	case RECORD_ORG:
+	  break;
+	case RECORD_ALIGN_AND_FILL:
+	  fill = prop_record->data.align.fill;
+	  /* Fall through.  */
+	case RECORD_ALIGN:
+	  prop_record->data.align.preceding_deleted += count;
+	  break;
+	};
       /* If toaddr == (addr + count), then we didn't delete anything, yet
-         we fill count bytes backwards from toaddr. This is still ok - we
-         end up overwriting the bytes we would have deleted. We just need
-         to remember we didn't delete anything i.e. don't set did_shrink,
-         so that we don't corrupt reloc offsets or symbol values.*/
+	 we fill count bytes backwards from toaddr. This is still ok - we
+	 end up overwriting the bytes we would have deleted. We just need
+	 to remember we didn't delete anything i.e. don't set did_shrink,
+	 so that we don't corrupt reloc offsets or symbol values.*/
       memset (contents + toaddr - count, fill, count);
-
-      /* Adjust the TOADDR to avoid moving symbols located at the address
-         of the property record, which has not moved.  */
-      toaddr -= count;
+      did_pad = TRUE;
     }
 
   if (!did_shrink)
@@ -1977,28 +2001,28 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
       bfd_vma old_reloc_address;
 
       old_reloc_address = (sec->output_section->vma
-                           + sec->output_offset + irel->r_offset);
+			   + sec->output_offset + irel->r_offset);
 
       /* Get the new reloc address.  */
       if ((irel->r_offset > addr
-           && irel->r_offset < reloc_toaddr))
-        {
-          if (debug_relax)
-            printf ("Relocation at address 0x%x needs to be moved.\n"
-                    "Old section offset: 0x%x, New section offset: 0x%x \n",
-                    (unsigned int) old_reloc_address,
-                    (unsigned int) irel->r_offset,
-                    (unsigned int) ((irel->r_offset) - count));
+	   && irel->r_offset < toaddr))
+	{
+	  if (debug_relax)
+	    printf ("Relocation at address 0x%x needs to be moved.\n"
+		    "Old section offset: 0x%x, New section offset: 0x%x \n",
+		    (unsigned int) old_reloc_address,
+		    (unsigned int) irel->r_offset,
+		    (unsigned int) ((irel->r_offset) - count));
 
-          irel->r_offset -= count;
-        }
+	  irel->r_offset -= count;
+	}
 
     }
 
    /* The reloc's own addresses are now ok. However, we need to readjust
       the reloc's addend, i.e. the reloc's value if two conditions are met:
       1.) the reloc is relative to a symbol in this section that
-          is located in front of the shrinked instruction
+	  is located in front of the shrinked instruction
       2.) symbol plus addend end up behind the shrinked instruction.
 
       The most common case where this happens are relocs relative to
@@ -2018,70 +2042,70 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
 	 continue;
 
        shrinked_insn_address = (sec->output_section->vma
-                                + sec->output_offset + addr);
+				+ sec->output_offset + addr);
        if (delete_shrinks_insn)
-         shrinked_insn_address -= count;
+	 shrinked_insn_address -= count;
 
        irel = elf_section_data (isec)->relocs;
        /* PR 12161: Read in the relocs for this section if necessary.  */
        if (irel == NULL)
-         irel = _bfd_elf_link_read_relocs (abfd, isec, NULL, NULL, TRUE);
+	 irel = _bfd_elf_link_read_relocs (abfd, isec, NULL, NULL, TRUE);
 
        for (irelend = irel + isec->reloc_count;
-            irel < irelend;
-            irel++)
-         {
-           /* Read this BFD's local symbols if we haven't done
-              so already.  */
-           if (isymbuf == NULL && symtab_hdr->sh_info != 0)
-             {
-               isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
-               if (isymbuf == NULL)
-                 isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr,
-                                                 symtab_hdr->sh_info, 0,
-                                                 NULL, NULL, NULL);
-               if (isymbuf == NULL)
-                 return FALSE;
-             }
-
-           /* Get the value of the symbol referred to by the reloc.  */
-           if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info)
-             {
-               /* A local symbol.  */
-               asection *sym_sec;
-
-               isym = isymbuf + ELF32_R_SYM (irel->r_info);
-               sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx);
-               symval = isym->st_value;
-               /* If the reloc is absolute, it will not have
-                  a symbol or section associated with it.  */
-               if (sym_sec == sec)
-                 {
-                   /* If there is an alignment boundary, we only need to
-                      adjust addends that end up below the boundary. */
-                   bfd_vma shrink_boundary = (reloc_toaddr
-                                              + sec->output_section->vma
-                                              + sec->output_offset);
-
-                   symval += sym_sec->output_section->vma
-                             + sym_sec->output_offset;
-
-                   if (debug_relax)
-                     printf ("Checking if the relocation's "
-                             "addend needs corrections.\n"
-                             "Address of anchor symbol: 0x%x \n"
-                             "Address of relocation target: 0x%x \n"
-                             "Address of relaxed insn: 0x%x \n",
-                             (unsigned int) symval,
-                             (unsigned int) (symval + irel->r_addend),
-                             (unsigned int) shrinked_insn_address);
-
-                   elf32_avr_adjust_reloc_if_spans_insn (abfd, isec, irel,
-                                                         symval,
-                                                         shrinked_insn_address,
-                                                         shrink_boundary,
-                                                         count);
-                 }
+	    irel < irelend;
+	    irel++)
+	 {
+	   /* Read this BFD's local symbols if we haven't done
+	      so already.  */
+	   if (isymbuf == NULL && symtab_hdr->sh_info != 0)
+	     {
+	       isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
+	       if (isymbuf == NULL)
+		 isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr,
+						 symtab_hdr->sh_info, 0,
+						 NULL, NULL, NULL);
+	       if (isymbuf == NULL)
+		 return FALSE;
+	     }
+
+	   /* Get the value of the symbol referred to by the reloc.  */
+	   if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info)
+	     {
+	       /* A local symbol.  */
+	       asection *sym_sec;
+
+	       isym = isymbuf + ELF32_R_SYM (irel->r_info);
+	       sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx);
+	       symval = isym->st_value;
+	       /* If the reloc is absolute, it will not have
+		  a symbol or section associated with it.  */
+	       if (sym_sec == sec)
+		 {
+		   /* If there is an alignment boundary, we only need to
+		      adjust addends that end up below the boundary. */
+		   bfd_vma shrink_boundary = (toaddr
+					      + sec->output_section->vma
+					      + sec->output_offset);
+
+		   symval += sym_sec->output_section->vma
+			     + sym_sec->output_offset;
+
+		   if (debug_relax)
+		     printf ("Checking if the relocation's "
+			     "addend needs corrections.\n"
+			     "Address of anchor symbol: 0x%x \n"
+			     "Address of relocation target: 0x%x \n"
+			     "Address of relaxed insn: 0x%x \n",
+			     (unsigned int) symval,
+			     (unsigned int) (symval + irel->r_addend),
+			     (unsigned int) shrinked_insn_address);
+
+		   elf32_avr_adjust_reloc_if_spans_insn (abfd, isec, irel,
+							 symval,
+							 shrinked_insn_address,
+							 shrink_boundary,
+							 count);
+		 }
 	       /* else...Reference symbol is absolute.  No adjustment needed.  */
 	     }
 	   /* else...Reference symbol is extern.  No need for adjusting
@@ -2101,51 +2125,59 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
       for (; isym < isymend; isym++)
 	{
 	  if (isym->st_shndx == sec_shndx)
-            {
-	      if (isym->st_value > addr
-                  && isym->st_value <= toaddr)
-                isym->st_value -= count;
-
-              if (isym->st_value <= addr
-                  && isym->st_value + isym->st_size > addr)
-                {
-                  /* If this assert fires then we have a symbol that ends
-                     part way through an instruction.  Does that make
-                     sense?  */
-                  BFD_ASSERT (isym->st_value + isym->st_size >= addr + count);
-                  isym->st_size -= count;
-                }
-            }
+	    {
+	      symvalue symval = isym->st_value;
+	      symvalue symend = symval + isym->st_size;
+	      if (avr_should_reduce_sym_size (symval, symend,
+				      addr, toaddr, did_pad))
+		{
+		  /* If this assert fires then we have a symbol that ends
+		     part way through an instruction.  Does that make
+		     sense?  */
+		  BFD_ASSERT (isym->st_value + isym->st_size >= addr + count);
+		  isym->st_size -= count;
+		}
+	      else if (avr_should_increase_sym_size (symval, symend,
+				      addr, toaddr, did_pad))
+		isym->st_size += count;
+
+	      if (avr_should_move_sym (symval, addr, toaddr, did_pad))
+		isym->st_value -= count;
+	    }
 	}
     }
 
   /* Now adjust the global symbols defined in this section.  */
   symcount = (symtab_hdr->sh_size / sizeof (Elf32_External_Sym)
-              - symtab_hdr->sh_info);
+	      - symtab_hdr->sh_info);
   sym_hashes = elf_sym_hashes (abfd);
   end_hashes = sym_hashes + symcount;
   for (; sym_hashes < end_hashes; sym_hashes++)
     {
       struct elf_link_hash_entry *sym_hash = *sym_hashes;
       if ((sym_hash->root.type == bfd_link_hash_defined
-           || sym_hash->root.type == bfd_link_hash_defweak)
-          && sym_hash->root.u.def.section == sec)
-        {
-          if (sym_hash->root.u.def.value > addr
-              && sym_hash->root.u.def.value <= toaddr)
-            sym_hash->root.u.def.value -= count;
-
-          if (sym_hash->root.u.def.value <= addr
-              && (sym_hash->root.u.def.value + sym_hash->size > addr))
-            {
-              /* If this assert fires then we have a symbol that ends
-                 part way through an instruction.  Does that make
-                 sense?  */
-              BFD_ASSERT (sym_hash->root.u.def.value + sym_hash->size
-                          >= addr + count);
-              sym_hash->size -= count;
-            }
-        }
+	   || sym_hash->root.type == bfd_link_hash_defweak)
+	  && sym_hash->root.u.def.section == sec)
+	{
+	  symvalue symval = sym_hash->root.u.def.value;
+	  symvalue symend = symval + sym_hash->size;
+
+	  if (avr_should_reduce_sym_size (symval, symend,
+				  addr, toaddr, did_pad))
+	    {
+	      /* If this assert fires then we have a symbol that ends
+		 part way through an instruction.  Does that make
+		 sense?  */
+	      BFD_ASSERT (symend >= addr + count);
+	      sym_hash->size -= count;
+	    }
+	  else if (avr_should_increase_sym_size (symval, symend,
+				  addr, toaddr, did_pad))
+	      sym_hash->size += count;
+
+	  if (avr_should_move_sym (symval, addr, toaddr, did_pad))
+	    sym_hash->root.u.def.value -= count;
+	}
     }
 
   return TRUE;
@@ -2209,8 +2241,8 @@ get_elf_r_symndx_section (bfd *abfd, uns
       struct elf_link_hash_entry *h = elf_sym_hashes (abfd)[indx];
 
       while (h->root.type == bfd_link_hash_indirect
-             || h->root.type == bfd_link_hash_warning)
-        h = (struct elf_link_hash_entry *) h->root.u.i.link;
+	     || h->root.type == bfd_link_hash_warning)
+	h = (struct elf_link_hash_entry *) h->root.u.i.link;
 
       switch (h->root.type)
 	{
@@ -2254,10 +2286,10 @@ get_elf_r_symndx_offset (bfd *abfd, unsi
 	elf_sym_hashes (abfd)[indx];
 
       while (h->root.type == bfd_link_hash_indirect
-             || h->root.type == bfd_link_hash_warning)
+	     || h->root.type == bfd_link_hash_warning)
 	h = (struct elf_link_hash_entry *) h->root.u.i.link;
       if (h->root.type == bfd_link_hash_defined
-          || h->root.type == bfd_link_hash_defweak)
+	  || h->root.type == bfd_link_hash_defweak)
 	offset = h->root.u.def.value;
     }
   return offset;
@@ -2280,21 +2312,21 @@ avr_elf32_assign_records_to_sections (st
       BFD_ASSERT (relax_info != NULL);
 
       if (relax_info->records.count
-          == relax_info->records.allocated)
-        {
-          /* Allocate more space.  */
-          bfd_size_type size;
-
-          relax_info->records.allocated += 10;
-          size = (sizeof (struct avr_property_record)
-                  * relax_info->records.allocated);
-          relax_info->records.items
-            = bfd_realloc (relax_info->records.items, size);
-        }
+	  == relax_info->records.allocated)
+	{
+	  /* Allocate more space.  */
+	  bfd_size_type size;
+
+	  relax_info->records.allocated += 10;
+	  size = (sizeof (struct avr_property_record)
+		  * relax_info->records.allocated);
+	  relax_info->records.items
+	    = bfd_realloc (relax_info->records.items, size);
+	}
 
       memcpy (&relax_info->records.items [relax_info->records.count],
-              &r_list->records [i],
-              sizeof (struct avr_property_record));
+	      &r_list->records [i],
+	      sizeof (struct avr_property_record));
       relax_info->records.count++;
     }
 }
@@ -2315,7 +2347,7 @@ avr_property_record_compare (const void 
 
   if (a->section != b->section)
     return (bfd_get_section_vma (a->section->owner, a->section)
-            - bfd_get_section_vma (b->section->owner, b->section));
+	    - bfd_get_section_vma (b->section->owner, b->section));
 
   return (a->type - b->type);
 }
@@ -2345,7 +2377,7 @@ avr_load_all_property_sections (struct b
 
       r_list = avr_elf32_load_property_records (abfd);
       if (r_list != NULL)
-        avr_elf32_assign_records_to_sections (r_list);
+	avr_elf32_assign_records_to_sections (r_list);
 
       free (r_list);
     }
@@ -2355,32 +2387,32 @@ avr_load_all_property_sections (struct b
   for (abfd = link_info->input_bfds; abfd != NULL; abfd = abfd->link.next)
     for (sec = abfd->sections; sec != NULL; sec = sec->next)
       {
-        struct avr_relax_info *relax_info = get_avr_relax_info (sec);
-        if (relax_info && relax_info->records.count > 0)
-          {
-            unsigned int i;
-
-            qsort (relax_info->records.items,
-                   relax_info->records.count,
-                   sizeof (struct avr_property_record),
-                   avr_property_record_compare);
-
-            /* For debug purposes, list all the descriptors.  */
-            for (i = 0; i < relax_info->records.count; ++i)
-              {
-                switch (relax_info->records.items [i].type)
-                  {
-                  case RECORD_ORG:
-                    break;
-                  case RECORD_ORG_AND_FILL:
-                    break;
-                  case RECORD_ALIGN:
-                    break;
-                  case RECORD_ALIGN_AND_FILL:
-                    break;
-                  };
-              }
-          }
+	struct avr_relax_info *relax_info = get_avr_relax_info (sec);
+	if (relax_info && relax_info->records.count > 0)
+	  {
+	    unsigned int i;
+
+	    qsort (relax_info->records.items,
+		   relax_info->records.count,
+		   sizeof (struct avr_property_record),
+		   avr_property_record_compare);
+
+	    /* For debug purposes, list all the descriptors.  */
+	    for (i = 0; i < relax_info->records.count; ++i)
+	      {
+		switch (relax_info->records.items [i].type)
+		  {
+		  case RECORD_ORG:
+		    break;
+		  case RECORD_ORG_AND_FILL:
+		    break;
+		  case RECORD_ALIGN:
+		    break;
+		  case RECORD_ALIGN_AND_FILL:
+		    break;
+		  };
+	      }
+	  }
       }
 }
 
@@ -2418,8 +2450,8 @@ avr_load_all_property_sections (struct b
 static bfd_boolean
 elf32_avr_relax_section (bfd *abfd,
 			 asection *sec,
-                         struct bfd_link_info *link_info,
-                         bfd_boolean *again)
+			 struct bfd_link_info *link_info,
+			 bfd_boolean *again)
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Rela *internal_relocs;
@@ -2465,19 +2497,19 @@ elf32_avr_relax_section (bfd *abfd,
       bfd_size_type last_estimated_stub_section_size = htab->stub_sec->size;
 
       if (debug_relax)
-        printf ("Relaxing the stub section. Size prior to this pass: %i\n",
-                (int) last_estimated_stub_section_size);
+	printf ("Relaxing the stub section. Size prior to this pass: %i\n",
+		(int) last_estimated_stub_section_size);
 
       elf32_avr_size_stubs (htab->stub_sec->output_section->owner,
-                            link_info, FALSE);
+			    link_info, FALSE);
 
       /* Check if the number of trampolines changed.  */
       if (last_estimated_stub_section_size != htab->stub_sec->size)
-        *again = TRUE;
+	*again = TRUE;
 
       if (debug_relax)
-        printf ("Size of stub section after this pass: %i\n",
-                (int) htab->stub_sec->size);
+	printf ("Size of stub section after this pass: %i\n",
+		(int) htab->stub_sec->size);
 
       return TRUE;
     }
@@ -2500,7 +2532,7 @@ elf32_avr_relax_section (bfd *abfd,
 
   /* Get a copy of the native relocations.  */
   internal_relocs = (_bfd_elf_link_read_relocs
-                     (abfd, sec, NULL, NULL, link_info->keep_memory));
+		     (abfd, sec, NULL, NULL, link_info->keep_memory));
   if (internal_relocs == NULL)
     goto error_return;
 
@@ -2513,114 +2545,114 @@ elf32_avr_relax_section (bfd *abfd,
       if (   ELF32_R_TYPE (irel->r_info) != R_AVR_13_PCREL
 	  && ELF32_R_TYPE (irel->r_info) != R_AVR_7_PCREL
 	  && ELF32_R_TYPE (irel->r_info) != R_AVR_CALL)
-        continue;
+	continue;
 
       /* Get the section contents if we haven't done so already.  */
       if (contents == NULL)
-        {
-          /* Get cached copy if it exists.  */
-          if (elf_section_data (sec)->this_hdr.contents != NULL)
-            contents = elf_section_data (sec)->this_hdr.contents;
-          else
-            {
-              /* Go get them off disk.  */
-              if (! bfd_malloc_and_get_section (abfd, sec, &contents))
-                goto error_return;
-            }
-        }
+	{
+	  /* Get cached copy if it exists.  */
+	  if (elf_section_data (sec)->this_hdr.contents != NULL)
+	    contents = elf_section_data (sec)->this_hdr.contents;
+	  else
+	    {
+	      /* Go get them off disk.  */
+	      if (! bfd_malloc_and_get_section (abfd, sec, &contents))
+		goto error_return;
+	    }
+	}
 
       /* Read this BFD's local symbols if we haven't done so already.  */
       if (isymbuf == NULL && symtab_hdr->sh_info != 0)
-        {
-          isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
-          if (isymbuf == NULL)
-            isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr,
-                                            symtab_hdr->sh_info, 0,
-                                            NULL, NULL, NULL);
-          if (isymbuf == NULL)
-            goto error_return;
-        }
+	{
+	  isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
+	  if (isymbuf == NULL)
+	    isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr,
+					    symtab_hdr->sh_info, 0,
+					    NULL, NULL, NULL);
+	  if (isymbuf == NULL)
+	    goto error_return;
+	}
 
 
       /* Get the value of the symbol referred to by the reloc.  */
       if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info)
-        {
-          /* A local symbol.  */
-          Elf_Internal_Sym *isym;
-          asection *sym_sec;
-
-          isym = isymbuf + ELF32_R_SYM (irel->r_info);
-          sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx);
-          symval = isym->st_value;
-          /* If the reloc is absolute, it will not have
-             a symbol or section associated with it.  */
-          if (sym_sec)
-            symval += sym_sec->output_section->vma
-              + sym_sec->output_offset;
-        }
+	{
+	  /* A local symbol.  */
+	  Elf_Internal_Sym *isym;
+	  asection *sym_sec;
+
+	  isym = isymbuf + ELF32_R_SYM (irel->r_info);
+	  sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx);
+	  symval = isym->st_value;
+	  /* If the reloc is absolute, it will not have
+	     a symbol or section associated with it.  */
+	  if (sym_sec)
+	    symval += sym_sec->output_section->vma
+	      + sym_sec->output_offset;
+	}
       else
-        {
-          unsigned long indx;
-          struct elf_link_hash_entry *h;
-
-          /* An external symbol.  */
-          indx = ELF32_R_SYM (irel->r_info) - symtab_hdr->sh_info;
-          h = elf_sym_hashes (abfd)[indx];
-          BFD_ASSERT (h != NULL);
-          if (h->root.type != bfd_link_hash_defined
-              && h->root.type != bfd_link_hash_defweak)
+	{
+	  unsigned long indx;
+	  struct elf_link_hash_entry *h;
+
+	  /* An external symbol.  */
+	  indx = ELF32_R_SYM (irel->r_info) - symtab_hdr->sh_info;
+	  h = elf_sym_hashes (abfd)[indx];
+	  BFD_ASSERT (h != NULL);
+	  if (h->root.type != bfd_link_hash_defined
+	      && h->root.type != bfd_link_hash_defweak)
 	    /* This appears to be a reference to an undefined
 	       symbol.  Just ignore it--it will be caught by the
 	       regular reloc processing.  */
 	    continue;
 
-          symval = (h->root.u.def.value
-                    + h->root.u.def.section->output_section->vma
-                    + h->root.u.def.section->output_offset);
-        }
+	  symval = (h->root.u.def.value
+		    + h->root.u.def.section->output_section->vma
+		    + h->root.u.def.section->output_offset);
+	}
 
       /* For simplicity of coding, we are going to modify the section
-         contents, the section relocs, and the BFD symbol table.  We
-         must tell the rest of the code not to free up this
-         information.  It would be possible to instead create a table
-         of changes which have to be made, as is done in coff-mips.c;
-         that would be more work, but would require less memory when
-         the linker is run.  */
+	 contents, the section relocs, and the BFD symbol table.  We
+	 must tell the rest of the code not to free up this
+	 information.  It would be possible to instead create a table
+	 of changes which have to be made, as is done in coff-mips.c;
+	 that would be more work, but would require less memory when
+	 the linker is run.  */
       switch (ELF32_R_TYPE (irel->r_info))
-        {
+	{
 	  /* Try to turn a 22-bit absolute call/jump into an 13-bit
 	     pc-relative rcall/rjmp.  */
 	case R_AVR_CALL:
-          {
-            bfd_vma value = symval + irel->r_addend;
-            bfd_vma dot, gap;
-            int distance_short_enough = 0;
-
-            /* Get the address of this instruction.  */
-            dot = (sec->output_section->vma
-                   + sec->output_offset + irel->r_offset);
-
-            /* Compute the distance from this insn to the branch target.  */
-            gap = value - dot;
-
-            /* Check if the gap falls in the range that can be accommodated
-               in 13bits signed (It is 12bits when encoded, as we deal with
-               word addressing). */
-            if (!shrinkable && ((int) gap >= -4096 && (int) gap <= 4095))
-              distance_short_enough = 1;
-            /* If shrinkable, then we can check for a range of distance which
-               is two bytes farther on both the directions because the call
-               or jump target will be closer by two bytes after the
-               relaxation. */
-            else if (shrinkable && ((int) gap >= -4094 && (int) gap <= 4097))
-              distance_short_enough = 1;
-
-            /* Here we handle the wrap-around case.  E.g. for a 16k device
-               we could use a rjmp to jump from address 0x100 to 0x3d00!
-               In order to make this work properly, we need to fill the
-               vaiable avr_pc_wrap_around with the appropriate value.
-               I.e. 0x4000 for a 16k device.  */
-            {
+	  {
+	    bfd_vma value = symval + irel->r_addend;
+	    bfd_vma dot, gap;
+	    int distance_short_enough = 0;
+
+	    /* Get the address of this instruction.  */
+	    dot = (sec->output_section->vma
+		   + sec->output_offset + irel->r_offset);
+
+	    /* Compute the distance from this insn to the branch target.  */
+	    gap = value - dot;
+
+	    /* Check if the gap falls in the range that can be accommodated
+	       in 13bits signed (It is 12bits when encoded, as we deal with
+	       word addressing). */
+	    if (!shrinkable && ((int) gap >= -4096 && (int) gap <= 4095))
+	      distance_short_enough = 1;
+	    /* If shrinkable, then we can check for a range of distance which
+	       is two bytes farther on both the directions because the call
+	       or jump target will be closer by two bytes after the
+	       relaxation. */
+	    else if (shrinkable && ((int) gap >= -4094 && (int) gap <= 4097))
+	      distance_short_enough = 1;
+
+	    /* Here we handle the wrap-around case.  E.g. for a 16k device
+	       we could use a rjmp to jump from address 0x100 to 0x3d00!
+	       In order to make this work properly, we need to fill the
+	       vaiable avr_pc_wrap_around with the appropriate value.
+	       I.e. 0x4000 for a 16k device.  */
+	    {
 	      /* Shrinking the code size makes the gaps larger in the
 		 case of wrap-arounds.  So we use a heuristical safety
 		 margin to avoid that during relax the distance gets
@@ -2642,258 +2674,258 @@ elf32_avr_relax_section (bfd *abfd,
 	      if (rgap >= (-4092 + safety_margin)
 		  && rgap <= (4094 - safety_margin))
 		distance_short_enough = 1;
-            }
+	    }
 
-            if (distance_short_enough)
-              {
-                unsigned char code_msb;
-                unsigned char code_lsb;
-
-                if (debug_relax)
-                  printf ("shrinking jump/call instruction at address 0x%x"
-                          " in section %s\n\n",
-                          (int) dot, sec->name);
-
-                /* Note that we've changed the relocs, section contents,
-                   etc.  */
-                elf_section_data (sec)->relocs = internal_relocs;
-                elf_section_data (sec)->this_hdr.contents = contents;
-                symtab_hdr->contents = (unsigned char *) isymbuf;
-
-                /* Get the instruction code for relaxing.  */
-                code_lsb = bfd_get_8 (abfd, contents + irel->r_offset);
-                code_msb = bfd_get_8 (abfd, contents + irel->r_offset + 1);
-
-                /* Mask out the relocation bits.  */
-                code_msb &= 0x94;
-                code_lsb &= 0x0E;
-                if (code_msb == 0x94 && code_lsb == 0x0E)
-                  {
-                    /* we are changing call -> rcall .  */
-                    bfd_put_8 (abfd, 0x00, contents + irel->r_offset);
-                    bfd_put_8 (abfd, 0xD0, contents + irel->r_offset + 1);
-                  }
-                else if (code_msb == 0x94 && code_lsb == 0x0C)
-                  {
-                    /* we are changeing jump -> rjmp.  */
-                    bfd_put_8 (abfd, 0x00, contents + irel->r_offset);
-                    bfd_put_8 (abfd, 0xC0, contents + irel->r_offset + 1);
-                  }
-                else
-                  abort ();
-
-                /* Fix the relocation's type.  */
-                irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-                                             R_AVR_13_PCREL);
-
-                /* We should not modify the ordering if 'shrinkable' is
-                   FALSE. */
-                if (!shrinkable)
-                  {
-                    /* Let's insert a nop.  */
-                    bfd_put_8 (abfd, 0x00, contents + irel->r_offset + 2);
-                    bfd_put_8 (abfd, 0x00, contents + irel->r_offset + 3);
-                  }
-                else
-                  {
-                    /* Delete two bytes of data.  */
-                    if (!elf32_avr_relax_delete_bytes (abfd, sec,
-                                                       irel->r_offset + 2, 2,
-                                                       TRUE))
-                      goto error_return;
-
-                    /* That will change things, so, we should relax again.
-                       Note that this is not required, and it may be slow.  */
-                    *again = TRUE;
-                  }
-              }
-          }
+	    if (distance_short_enough)
+	      {
+		unsigned char code_msb;
+		unsigned char code_lsb;
+
+		if (debug_relax)
+		  printf ("shrinking jump/call instruction at address 0x%x"
+			  " in section %s\n\n",
+			  (int) dot, sec->name);
+
+		/* Note that we've changed the relocs, section contents,
+		   etc.  */
+		elf_section_data (sec)->relocs = internal_relocs;
+		elf_section_data (sec)->this_hdr.contents = contents;
+		symtab_hdr->contents = (unsigned char *) isymbuf;
+
+		/* Get the instruction code for relaxing.  */
+		code_lsb = bfd_get_8 (abfd, contents + irel->r_offset);
+		code_msb = bfd_get_8 (abfd, contents + irel->r_offset + 1);
+
+		/* Mask out the relocation bits.  */
+		code_msb &= 0x94;
+		code_lsb &= 0x0E;
+		if (code_msb == 0x94 && code_lsb == 0x0E)
+		  {
+		    /* we are changing call -> rcall .  */
+		    bfd_put_8 (abfd, 0x00, contents + irel->r_offset);
+		    bfd_put_8 (abfd, 0xD0, contents + irel->r_offset + 1);
+		  }
+		else if (code_msb == 0x94 && code_lsb == 0x0C)
+		  {
+		    /* we are changeing jump -> rjmp.  */
+		    bfd_put_8 (abfd, 0x00, contents + irel->r_offset);
+		    bfd_put_8 (abfd, 0xC0, contents + irel->r_offset + 1);
+		  }
+		else
+		  abort ();
+
+		/* Fix the relocation's type.  */
+		irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+					     R_AVR_13_PCREL);
+
+		/* We should not modify the ordering if 'shrinkable' is
+		   FALSE. */
+		if (!shrinkable)
+		  {
+		    /* Let's insert a nop.  */
+		    bfd_put_8 (abfd, 0x00, contents + irel->r_offset + 2);
+		    bfd_put_8 (abfd, 0x00, contents + irel->r_offset + 3);
+		  }
+		else
+		  {
+		    /* Delete two bytes of data.  */
+		    if (!elf32_avr_relax_delete_bytes (abfd, sec,
+						       irel->r_offset + 2, 2,
+						       TRUE))
+		      goto error_return;
+
+		    /* That will change things, so, we should relax again.
+		       Note that this is not required, and it may be slow.  */
+		    *again = TRUE;
+		  }
+	      }
+	  }
 	  /* Fall through.  */
 
-        default:
-          {
-            unsigned char code_msb;
-            unsigned char code_lsb;
-            bfd_vma dot;
-
-            code_msb = bfd_get_8 (abfd, contents + irel->r_offset + 1);
-            code_lsb = bfd_get_8 (abfd, contents + irel->r_offset + 0);
-
-            /* Get the address of this instruction.  */
-            dot = (sec->output_section->vma
-                   + sec->output_offset + irel->r_offset);
-
-            /* Here we look for rcall/ret or call/ret sequences that could be
-               safely replaced by rjmp/ret or jmp/ret.  */
-            if (((code_msb & 0xf0) == 0xd0)
-                && avr_replace_call_ret_sequences)
-              {
-                /* This insn is a rcall.  */
-                unsigned char next_insn_msb = 0;
-                unsigned char next_insn_lsb = 0;
-
-                if (irel->r_offset + 3 < sec->size)
-                  {
-                    next_insn_msb =
+	default:
+	  {
+	    unsigned char code_msb;
+	    unsigned char code_lsb;
+	    bfd_vma dot;
+
+	    code_msb = bfd_get_8 (abfd, contents + irel->r_offset + 1);
+	    code_lsb = bfd_get_8 (abfd, contents + irel->r_offset + 0);
+
+	    /* Get the address of this instruction.  */
+	    dot = (sec->output_section->vma
+		   + sec->output_offset + irel->r_offset);
+
+	    /* Here we look for rcall/ret or call/ret sequences that could be
+	       safely replaced by rjmp/ret or jmp/ret.  */
+	    if (((code_msb & 0xf0) == 0xd0)
+		&& avr_replace_call_ret_sequences)
+	      {
+		/* This insn is a rcall.  */
+		unsigned char next_insn_msb = 0;
+		unsigned char next_insn_lsb = 0;
+
+		if (irel->r_offset + 3 < sec->size)
+		  {
+		    next_insn_msb =
 		      bfd_get_8 (abfd, contents + irel->r_offset + 3);
-                    next_insn_lsb =
+		    next_insn_lsb =
 		      bfd_get_8 (abfd, contents + irel->r_offset + 2);
-                  }
+		  }
 
 		if ((0x95 == next_insn_msb) && (0x08 == next_insn_lsb))
-                  {
-                    /* The next insn is a ret. We now convert the rcall insn
-                       into a rjmp instruction.  */
-                    code_msb &= 0xef;
-                    bfd_put_8 (abfd, code_msb, contents + irel->r_offset + 1);
-                    if (debug_relax)
-                      printf ("converted rcall/ret sequence at address 0x%x"
-                              " into rjmp/ret sequence. Section is %s\n\n",
-                              (int) dot, sec->name);
-                    *again = TRUE;
-                    break;
-                  }
-              }
-            else if ((0x94 == (code_msb & 0xfe))
+		  {
+		    /* The next insn is a ret. We now convert the rcall insn
+		       into a rjmp instruction.  */
+		    code_msb &= 0xef;
+		    bfd_put_8 (abfd, code_msb, contents + irel->r_offset + 1);
+		    if (debug_relax)
+		      printf ("converted rcall/ret sequence at address 0x%x"
+			      " into rjmp/ret sequence. Section is %s\n\n",
+			      (int) dot, sec->name);
+		    *again = TRUE;
+		    break;
+		  }
+	      }
+	    else if ((0x94 == (code_msb & 0xfe))
 		     && (0x0e == (code_lsb & 0x0e))
 		     && avr_replace_call_ret_sequences)
-              {
-                /* This insn is a call.  */
-                unsigned char next_insn_msb = 0;
-                unsigned char next_insn_lsb = 0;
-
-                if (irel->r_offset + 5 < sec->size)
-                  {
-                    next_insn_msb =
+	      {
+		/* This insn is a call.  */
+		unsigned char next_insn_msb = 0;
+		unsigned char next_insn_lsb = 0;
+
+		if (irel->r_offset + 5 < sec->size)
+		  {
+		    next_insn_msb =
 		      bfd_get_8 (abfd, contents + irel->r_offset + 5);
-                    next_insn_lsb =
+		    next_insn_lsb =
 		      bfd_get_8 (abfd, contents + irel->r_offset + 4);
-                  }
+		  }
 
-                if ((0x95 == next_insn_msb) && (0x08 == next_insn_lsb))
-                  {
-                    /* The next insn is a ret. We now convert the call insn
-                       into a jmp instruction.  */
-
-                    code_lsb &= 0xfd;
-                    bfd_put_8 (abfd, code_lsb, contents + irel->r_offset);
-                    if (debug_relax)
-                      printf ("converted call/ret sequence at address 0x%x"
-                              " into jmp/ret sequence. Section is %s\n\n",
-                              (int) dot, sec->name);
-                    *again = TRUE;
-                    break;
-                  }
-              }
-            else if ((0xc0 == (code_msb & 0xf0))
-                     || ((0x94 == (code_msb & 0xfe))
-                         && (0x0c == (code_lsb & 0x0e))))
-              {
-                /* This insn is a rjmp or a jmp.  */
-                unsigned char next_insn_msb = 0;
-                unsigned char next_insn_lsb = 0;
-                int insn_size;
-
-                if (0xc0 == (code_msb & 0xf0))
-                  insn_size = 2; /* rjmp insn */
-                else
-                  insn_size = 4; /* jmp insn */
-
-                if (irel->r_offset + insn_size + 1 < sec->size)
-                  {
-                    next_insn_msb =
+		if ((0x95 == next_insn_msb) && (0x08 == next_insn_lsb))
+		  {
+		    /* The next insn is a ret. We now convert the call insn
+		       into a jmp instruction.  */
+
+		    code_lsb &= 0xfd;
+		    bfd_put_8 (abfd, code_lsb, contents + irel->r_offset);
+		    if (debug_relax)
+		      printf ("converted call/ret sequence at address 0x%x"
+			      " into jmp/ret sequence. Section is %s\n\n",
+			      (int) dot, sec->name);
+		    *again = TRUE;
+		    break;
+		  }
+	      }
+	    else if ((0xc0 == (code_msb & 0xf0))
+		     || ((0x94 == (code_msb & 0xfe))
+			 && (0x0c == (code_lsb & 0x0e))))
+	      {
+		/* This insn is a rjmp or a jmp.  */
+		unsigned char next_insn_msb = 0;
+		unsigned char next_insn_lsb = 0;
+		int insn_size;
+
+		if (0xc0 == (code_msb & 0xf0))
+		  insn_size = 2; /* rjmp insn */
+		else
+		  insn_size = 4; /* jmp insn */
+
+		if (irel->r_offset + insn_size + 1 < sec->size)
+		  {
+		    next_insn_msb =
 		      bfd_get_8 (abfd, contents + irel->r_offset
 				 + insn_size + 1);
-                    next_insn_lsb =
+		    next_insn_lsb =
 		      bfd_get_8 (abfd, contents + irel->r_offset
 				 + insn_size);
-                  }
+		  }
 
-                if ((0x95 == next_insn_msb) && (0x08 == next_insn_lsb))
-                  {
-                    /* The next insn is a ret. We possibly could delete
-                       this ret. First we need to check for preceding
-                       sbis/sbic/sbrs or cpse "skip" instructions.  */
-
-                    int there_is_preceding_non_skip_insn = 1;
-                    bfd_vma address_of_ret;
-
-                    address_of_ret = dot + insn_size;
-
-                    if (debug_relax && (insn_size == 2))
-                      printf ("found rjmp / ret sequence at address 0x%x\n",
-                              (int) dot);
-                    if (debug_relax && (insn_size == 4))
-                      printf ("found jmp / ret sequence at address 0x%x\n",
-                              (int) dot);
-
-                    /* We have to make sure that there is a preceding insn.  */
-                    if (irel->r_offset >= 2)
-                      {
-                        unsigned char preceding_msb;
-                        unsigned char preceding_lsb;
+		if ((0x95 == next_insn_msb) && (0x08 == next_insn_lsb))
+		  {
+		    /* The next insn is a ret. We possibly could delete
+		       this ret. First we need to check for preceding
+		       sbis/sbic/sbrs or cpse "skip" instructions.  */
+
+		    int there_is_preceding_non_skip_insn = 1;
+		    bfd_vma address_of_ret;
+
+		    address_of_ret = dot + insn_size;
+
+		    if (debug_relax && (insn_size == 2))
+		      printf ("found rjmp / ret sequence at address 0x%x\n",
+			      (int) dot);
+		    if (debug_relax && (insn_size == 4))
+		      printf ("found jmp / ret sequence at address 0x%x\n",
+			      (int) dot);
+
+		    /* We have to make sure that there is a preceding insn.  */
+		    if (irel->r_offset >= 2)
+		      {
+			unsigned char preceding_msb;
+			unsigned char preceding_lsb;
 
-                        preceding_msb =
+			preceding_msb =
 			  bfd_get_8 (abfd, contents + irel->r_offset - 1);
-                        preceding_lsb =
+			preceding_lsb =
 			  bfd_get_8 (abfd, contents + irel->r_offset - 2);
 
-                        /* sbic.  */
-                        if (0x99 == preceding_msb)
-                          there_is_preceding_non_skip_insn = 0;
-
-                        /* sbis.  */
-                        if (0x9b == preceding_msb)
-                          there_is_preceding_non_skip_insn = 0;
+			/* sbic.  */
+			if (0x99 == preceding_msb)
+			  there_is_preceding_non_skip_insn = 0;
+
+			/* sbis.  */
+			if (0x9b == preceding_msb)
+			  there_is_preceding_non_skip_insn = 0;
 
-                        /* sbrc */
-                        if ((0xfc == (preceding_msb & 0xfe)
+			/* sbrc */
+			if ((0xfc == (preceding_msb & 0xfe)
 			     && (0x00 == (preceding_lsb & 0x08))))
-                          there_is_preceding_non_skip_insn = 0;
+			  there_is_preceding_non_skip_insn = 0;
 
-                        /* sbrs */
-                        if ((0xfe == (preceding_msb & 0xfe)
+			/* sbrs */
+			if ((0xfe == (preceding_msb & 0xfe)
 			     && (0x00 == (preceding_lsb & 0x08))))
-                          there_is_preceding_non_skip_insn = 0;
+			  there_is_preceding_non_skip_insn = 0;
 
-                        /* cpse */
-                        if (0x10 == (preceding_msb & 0xfc))
-                          there_is_preceding_non_skip_insn = 0;
-
-                        if (there_is_preceding_non_skip_insn == 0)
-                          if (debug_relax)
-                            printf ("preceding skip insn prevents deletion of"
-                                    " ret insn at Addy 0x%x in section %s\n",
-                                    (int) dot + 2, sec->name);
-                      }
-                    else
-                      {
-                        /* There is no previous instruction.  */
-                        there_is_preceding_non_skip_insn = 0;
-                      }
-
-                    if (there_is_preceding_non_skip_insn)
-                      {
-                        /* We now only have to make sure that there is no
-                           local label defined at the address of the ret
-                           instruction and that there is no local relocation
-                           in this section pointing to the ret.  */
+			/* cpse */
+			if (0x10 == (preceding_msb & 0xfc))
+			  there_is_preceding_non_skip_insn = 0;
+
+			if (there_is_preceding_non_skip_insn == 0)
+			  if (debug_relax)
+			    printf ("preceding skip insn prevents deletion of"
+				    " ret insn at Addy 0x%x in section %s\n",
+				    (int) dot + 2, sec->name);
+		      }
+		    else
+		      {
+			/* There is no previous instruction.  */
+			there_is_preceding_non_skip_insn = 0;
+		      }
+
+		    if (there_is_preceding_non_skip_insn)
+		      {
+			/* We now only have to make sure that there is no
+			   local label defined at the address of the ret
+			   instruction and that there is no local relocation
+			   in this section pointing to the ret.  */
 
-                        int deleting_ret_is_safe = 1;
-                        unsigned int section_offset_of_ret_insn =
+			int deleting_ret_is_safe = 1;
+			unsigned int section_offset_of_ret_insn =
 			  irel->r_offset + insn_size;
-                        Elf_Internal_Sym *isym, *isymend;
-                        unsigned int sec_shndx;
+			Elf_Internal_Sym *isym, *isymend;
+			unsigned int sec_shndx;
 			struct bfd_section *isec;
 
-                        sec_shndx =
+			sec_shndx =
 			  _bfd_elf_section_from_bfd_section (abfd, sec);
 
-                        /* Check for local symbols.  */
-                        isym = (Elf_Internal_Sym *) symtab_hdr->contents;
-                        isymend = isym + symtab_hdr->sh_info;
+			/* Check for local symbols.  */
+			isym = (Elf_Internal_Sym *) symtab_hdr->contents;
+			isymend = isym + symtab_hdr->sh_info;
 			/* PR 6019: There may not be any local symbols.  */
-                        for (; isym != NULL && isym < isymend; isym++)
+			for (; isym != NULL && isym < isymend; isym++)
 			  {
 			    if (isym->st_value == section_offset_of_ret_insn
 				&& isym->st_shndx == sec_shndx)
@@ -3034,85 +3066,85 @@ elf32_avr_relax_section (bfd *abfd,
 			    *again = TRUE;
 			    break;
 			  }
-                      }
-                  }
-              }
-            break;
-          }
-        }
+		      }
+		  }
+	      }
+	    break;
+	  }
+	}
     }
 
   if (!*again)
     {
       /* Look through all the property records in this section to see if
-         there's any alignment records that can be moved.  */
+	 there's any alignment records that can be moved.  */
       struct avr_relax_info *relax_info;
 
       relax_info = get_avr_relax_info (sec);
       if (relax_info->records.count > 0)
-        {
-          unsigned int i;
+	{
+	  unsigned int i;
 
-          for (i = 0; i < relax_info->records.count; ++i)
-            {
-              switch (relax_info->records.items [i].type)
-                {
-                case RECORD_ORG:
-                case RECORD_ORG_AND_FILL:
-                  break;
-                case RECORD_ALIGN:
-                case RECORD_ALIGN_AND_FILL:
-                  {
-                    struct avr_property_record *record;
-                    unsigned long bytes_to_align;
-                    int count = 0;
-
-                    /* Look for alignment directives that have had enough
-                       bytes deleted before them, such that the directive
-                       can be moved backwards and still maintain the
-                       required alignment.  */
-                    record = &relax_info->records.items [i];
-                    bytes_to_align
-                      = (unsigned long) (1 << record->data.align.bytes);
-                    while (record->data.align.preceding_deleted >=
-                           bytes_to_align)
-                      {
-                        record->data.align.preceding_deleted
-                          -= bytes_to_align;
-                        count += bytes_to_align;
-                      }
-
-                    if (count > 0)
-                      {
-                        bfd_vma addr = record->offset;
-
-                        /* We can delete COUNT bytes and this alignment
-                           directive will still be correctly aligned.
-                           First move the alignment directive, then delete
-                           the bytes.  */
-                        record->offset -= count;
-                        elf32_avr_relax_delete_bytes (abfd, sec,
-                                                      addr - count,
-                                                      count, FALSE);
-                        *again = TRUE;
-                      }
-                  }
-                  break;
-                }
-            }
-        }
+	  for (i = 0; i < relax_info->records.count; ++i)
+	    {
+	      switch (relax_info->records.items [i].type)
+		{
+		case RECORD_ORG:
+		case RECORD_ORG_AND_FILL:
+		  break;
+		case RECORD_ALIGN:
+		case RECORD_ALIGN_AND_FILL:
+		  {
+		    struct avr_property_record *record;
+		    unsigned long bytes_to_align;
+		    int count = 0;
+
+		    /* Look for alignment directives that have had enough
+		       bytes deleted before them, such that the directive
+		       can be moved backwards and still maintain the
+		       required alignment.  */
+		    record = &relax_info->records.items [i];
+		    bytes_to_align
+		      = (unsigned long) (1 << record->data.align.bytes);
+		    while (record->data.align.preceding_deleted >=
+			   bytes_to_align)
+		      {
+			record->data.align.preceding_deleted
+			  -= bytes_to_align;
+			count += bytes_to_align;
+		      }
+
+		    if (count > 0)
+		      {
+			bfd_vma addr = record->offset;
+
+			/* We can delete COUNT bytes and this alignment
+			   directive will still be correctly aligned.
+			   First move the alignment directive, then delete
+			   the bytes.  */
+			record->offset -= count;
+			elf32_avr_relax_delete_bytes (abfd, sec,
+						      addr - count,
+						      count, FALSE);
+			*again = TRUE;
+		      }
+		  }
+		  break;
+		}
+	    }
+	}
     }
 
   if (contents != NULL
       && elf_section_data (sec)->this_hdr.contents != contents)
     {
       if (! link_info->keep_memory)
-        free (contents);
+	free (contents);
       else
-        {
-          /* Cache the section contents for elf_link_input_bfd.  */
-          elf_section_data (sec)->this_hdr.contents = contents;
-        }
+	{
+	  /* Cache the section contents for elf_link_input_bfd.  */
+	  elf_section_data (sec)->this_hdr.contents = contents;
+	}
     }
 
   if (internal_relocs != NULL
@@ -3145,11 +3177,11 @@ elf32_avr_relax_section (bfd *abfd,
 
 static bfd_byte *
 elf32_avr_get_relocated_section_contents (bfd *output_bfd,
-                                          struct bfd_link_info *link_info,
-                                          struct bfd_link_order *link_order,
-                                          bfd_byte *data,
-                                          bfd_boolean relocatable,
-                                          asymbol **symbols)
+					  struct bfd_link_info *link_info,
+					  struct bfd_link_order *link_order,
+					  bfd_byte *data,
+					  bfd_boolean relocatable,
+					  asymbol **symbols)
 {
   Elf_Internal_Shdr *symtab_hdr;
   asection *input_section = link_order->u.indirect.section;
@@ -3163,13 +3195,13 @@ elf32_avr_get_relocated_section_contents
   if (relocatable
       || elf_section_data (input_section)->this_hdr.contents == NULL)
     return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
-                                                       link_order, data,
-                                                       relocatable,
-                                                       symbols);
+						       link_order, data,
+						       relocatable,
+						       symbols);
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
 
   memcpy (data, elf_section_data (input_section)->this_hdr.contents,
-          (size_t) input_section->size);
+	  (size_t) input_section->size);
 
   if ((input_section->flags & SEC_RELOC) != 0
       && input_section->reloc_count > 0)
@@ -3179,56 +3211,56 @@ elf32_avr_get_relocated_section_contents
       bfd_size_type amt;
 
       internal_relocs = (_bfd_elf_link_read_relocs
-                         (input_bfd, input_section, NULL, NULL, FALSE));
+			 (input_bfd, input_section, NULL, NULL, FALSE));
       if (internal_relocs == NULL)
-        goto error_return;
+	goto error_return;
 
       if (symtab_hdr->sh_info != 0)
-        {
-          isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
-          if (isymbuf == NULL)
-            isymbuf = bfd_elf_get_elf_syms (input_bfd, symtab_hdr,
-                                            symtab_hdr->sh_info, 0,
-                                            NULL, NULL, NULL);
-          if (isymbuf == NULL)
-            goto error_return;
-        }
+	{
+	  isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
+	  if (isymbuf == NULL)
+	    isymbuf = bfd_elf_get_elf_syms (input_bfd, symtab_hdr,
+					    symtab_hdr->sh_info, 0,
+					    NULL, NULL, NULL);
+	  if (isymbuf == NULL)
+	    goto error_return;
+	}
 
       amt = symtab_hdr->sh_info;
       amt *= sizeof (asection *);
       sections = bfd_malloc (amt);
       if (sections == NULL && amt != 0)
-        goto error_return;
+	goto error_return;
 
       isymend = isymbuf + symtab_hdr->sh_info;
       for (isym = isymbuf, secpp = sections; isym < isymend; ++isym, ++secpp)
-        {
-          asection *isec;
+	{
+	  asection *isec;
 
-          if (isym->st_shndx == SHN_UNDEF)
-            isec = bfd_und_section_ptr;
-          else if (isym->st_shndx == SHN_ABS)
-            isec = bfd_abs_section_ptr;
-          else if (isym->st_shndx == SHN_COMMON)
-            isec = bfd_com_section_ptr;
-          else
-            isec = bfd_section_from_elf_index (input_bfd, isym->st_shndx);
+	  if (isym->st_shndx == SHN_UNDEF)
+	    isec = bfd_und_section_ptr;
+	  else if (isym->st_shndx == SHN_ABS)
+	    isec = bfd_abs_section_ptr;
+	  else if (isym->st_shndx == SHN_COMMON)
+	    isec = bfd_com_section_ptr;
+	  else
+	    isec = bfd_section_from_elf_index (input_bfd, isym->st_shndx);
 
-          *secpp = isec;
-        }
+	  *secpp = isec;
+	}
 
       if (! elf32_avr_relocate_section (output_bfd, link_info, input_bfd,
-                                        input_section, data, internal_relocs,
-                                        isymbuf, sections))
-        goto error_return;
+					input_section, data, internal_relocs,
+					isymbuf, sections))
+	goto error_return;
 
       if (sections != NULL)
-        free (sections);
+	free (sections);
       if (isymbuf != NULL
-          && symtab_hdr->contents != (unsigned char *) isymbuf)
-        free (isymbuf);
+	  && symtab_hdr->contents != (unsigned char *) isymbuf)
+	free (isymbuf);
       if (elf_section_data (input_section)->relocs != internal_relocs)
-        free (internal_relocs);
+	free (internal_relocs);
     }
 
   return data;
@@ -3252,8 +3284,8 @@ elf32_avr_get_relocated_section_contents
 
 static char *
 avr_stub_name (const asection *symbol_section,
-               const bfd_vma symbol_offset,
-               const Elf_Internal_Rela *rela)
+	       const bfd_vma symbol_offset,
+	       const Elf_Internal_Rela *rela)
 {
   char *stub_name;
   bfd_size_type len;
@@ -3262,8 +3294,8 @@ avr_stub_name (const asection *symbol_se
   stub_name = bfd_malloc (len);
 
   sprintf (stub_name, "%08x+%08x",
-           symbol_section->id & 0xffffffff,
-           (unsigned int) ((rela->r_addend & 0xffffffff) + symbol_offset));
+	   symbol_section->id & 0xffffffff,
+	   (unsigned int) ((rela->r_addend & 0xffffffff) + symbol_offset));
 
   return stub_name;
 }
@@ -3274,7 +3306,7 @@ avr_stub_name (const asection *symbol_se
 
 static struct elf32_avr_stub_hash_entry *
 avr_add_stub (const char *stub_name,
-              struct elf32_avr_link_hash_table *htab)
+	      struct elf32_avr_link_hash_table *htab)
 {
   struct elf32_avr_stub_hash_entry *hsh;
 
@@ -3336,8 +3368,8 @@ avr_build_one_stub (struct bfd_hash_entr
 
   if (debug_stubs)
     printf ("Building one Stub. Address: 0x%x, Offset: 0x%x\n",
-             (unsigned int) target,
-             (unsigned int) hsh->stub_offset);
+	     (unsigned int) target,
+	     (unsigned int) hsh->stub_offset);
 
   /* We now have to add the information on the jump target to the bare
      opcode bits already set in jmp_insn.  */
@@ -3361,10 +3393,10 @@ avr_build_one_stub (struct bfd_hash_entr
     nr = htab->amt_entry_cnt + 1;
     if (nr <= htab->amt_max_entry_cnt)
       {
-        htab->amt_entry_cnt = nr;
+	htab->amt_entry_cnt = nr;
 
-        htab->amt_stub_offsets[nr - 1] = hsh->stub_offset;
-        htab->amt_destination_addr[nr - 1] = target;
+	htab->amt_stub_offsets[nr - 1] = hsh->stub_offset;
+	htab->amt_destination_addr[nr - 1] = target;
       }
   }
 
@@ -3373,7 +3405,7 @@ avr_build_one_stub (struct bfd_hash_entr
 
 static bfd_boolean
 avr_mark_stub_not_to_be_necessary (struct bfd_hash_entry *bh,
-                                   void *in_arg ATTRIBUTE_UNUSED)
+				   void *in_arg ATTRIBUTE_UNUSED)
 {
   struct elf32_avr_stub_hash_entry *hsh;
 
@@ -3405,13 +3437,13 @@ avr_size_one_stub (struct bfd_hash_entry
 
 void
 elf32_avr_setup_params (struct bfd_link_info *info,
-                        bfd *avr_stub_bfd,
-                        asection *avr_stub_section,
-                        bfd_boolean no_stubs,
-                        bfd_boolean deb_stubs,
-                        bfd_boolean deb_relax,
-                        bfd_vma pc_wrap_around,
-                        bfd_boolean call_ret_replacement)
+			bfd *avr_stub_bfd,
+			asection *avr_stub_section,
+			bfd_boolean no_stubs,
+			bfd_boolean deb_stubs,
+			bfd_boolean deb_relax,
+			bfd_vma pc_wrap_around,
+			bfd_boolean call_ret_replacement)
 {
   struct elf32_avr_link_hash_table *htab = avr_link_hash_table (info);
 
@@ -3436,7 +3468,7 @@ elf32_avr_setup_params (struct bfd_link_
 
 int
 elf32_avr_setup_section_lists (bfd *output_bfd,
-                               struct bfd_link_info *info)
+			       struct bfd_link_info *info)
 {
   bfd *input_bfd;
   unsigned int bfd_count;
@@ -3456,8 +3488,8 @@ elf32_avr_setup_section_lists (bfd *outp
     {
       bfd_count += 1;
       for (section = input_bfd->sections;
-           section != NULL;
-           section = section->next)
+	   section != NULL;
+	   section = section->next)
 	if (top_id < section->id)
 	  top_id = section->id;
     }
@@ -3558,8 +3590,8 @@ get_local_syms (bfd *input_bfd, struct b
 
 bfd_boolean
 elf32_avr_size_stubs (bfd *output_bfd,
-                      struct bfd_link_info *info,
-                      bfd_boolean is_prealloc_run)
+		      struct bfd_link_info *info,
+		      bfd_boolean is_prealloc_run)
 {
   struct elf32_avr_link_hash_table *htab;
   int stub_changed = 0;
@@ -3598,89 +3630,89 @@ elf32_avr_size_stubs (bfd *output_bfd,
       unsigned int bfd_indx;
 
       /* We will have to re-generate the stub hash table each time anything
-         in memory has changed.  */
+	 in memory has changed.  */
 
       bfd_hash_traverse (&htab->bstab, avr_mark_stub_not_to_be_necessary, htab);
       for (input_bfd = info->input_bfds, bfd_indx = 0;
-           input_bfd != NULL;
-           input_bfd = input_bfd->link.next, bfd_indx++)
-        {
-          Elf_Internal_Shdr *symtab_hdr;
-          asection *section;
-          Elf_Internal_Sym *local_syms;
-
-          /* We'll need the symbol table in a second.  */
-          symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
-          if (symtab_hdr->sh_info == 0)
-            continue;
-
-          local_syms = htab->all_local_syms[bfd_indx];
-
-          /* Walk over each section attached to the input bfd.  */
-          for (section = input_bfd->sections;
-               section != NULL;
-               section = section->next)
-            {
-              Elf_Internal_Rela *internal_relocs, *irelaend, *irela;
-
-              /* If there aren't any relocs, then there's nothing more
-                 to do.  */
-              if ((section->flags & SEC_RELOC) == 0
-                  || section->reloc_count == 0)
-                continue;
-
-              /* If this section is a link-once section that will be
-                 discarded, then don't create any stubs.  */
-              if (section->output_section == NULL
-                  || section->output_section->owner != output_bfd)
-                continue;
-
-              /* Get the relocs.  */
-              internal_relocs
-                = _bfd_elf_link_read_relocs (input_bfd, section, NULL, NULL,
-                                             info->keep_memory);
-              if (internal_relocs == NULL)
-                goto error_ret_free_local;
-
-              /* Now examine each relocation.  */
-              irela = internal_relocs;
-              irelaend = irela + section->reloc_count;
-              for (; irela < irelaend; irela++)
-                {
-                  unsigned int r_type, r_indx;
-                  struct elf32_avr_stub_hash_entry *hsh;
-                  asection *sym_sec;
-                  bfd_vma sym_value;
-                  bfd_vma destination;
-                  struct elf_link_hash_entry *hh;
-                  char *stub_name;
-
-                  r_type = ELF32_R_TYPE (irela->r_info);
-                  r_indx = ELF32_R_SYM (irela->r_info);
-
-                  /* Only look for 16 bit GS relocs. No other reloc will need a
-                     stub.  */
-                  if (!((r_type == R_AVR_16_PM)
-                        || (r_type == R_AVR_LO8_LDI_GS)
-                        || (r_type == R_AVR_HI8_LDI_GS)))
-                    continue;
-
-                  /* Now determine the call target, its name, value,
-                     section.  */
-                  sym_sec = NULL;
-                  sym_value = 0;
-                  destination = 0;
-                  hh = NULL;
-                  if (r_indx < symtab_hdr->sh_info)
-                    {
-                      /* It's a local symbol.  */
-                      Elf_Internal_Sym *sym;
-                      Elf_Internal_Shdr *hdr;
+	   input_bfd != NULL;
+	   input_bfd = input_bfd->link.next, bfd_indx++)
+	{
+	  Elf_Internal_Shdr *symtab_hdr;
+	  asection *section;
+	  Elf_Internal_Sym *local_syms;
+
+	  /* We'll need the symbol table in a second.  */
+	  symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
+	  if (symtab_hdr->sh_info == 0)
+	    continue;
+
+	  local_syms = htab->all_local_syms[bfd_indx];
+
+	  /* Walk over each section attached to the input bfd.  */
+	  for (section = input_bfd->sections;
+	       section != NULL;
+	       section = section->next)
+	    {
+	      Elf_Internal_Rela *internal_relocs, *irelaend, *irela;
+
+	      /* If there aren't any relocs, then there's nothing more
+		 to do.  */
+	      if ((section->flags & SEC_RELOC) == 0
+		  || section->reloc_count == 0)
+		continue;
+
+	      /* If this section is a link-once section that will be
+		 discarded, then don't create any stubs.  */
+	      if (section->output_section == NULL
+		  || section->output_section->owner != output_bfd)
+		continue;
+
+	      /* Get the relocs.  */
+	      internal_relocs
+		= _bfd_elf_link_read_relocs (input_bfd, section, NULL, NULL,
+					     info->keep_memory);
+	      if (internal_relocs == NULL)
+		goto error_ret_free_local;
+
+	      /* Now examine each relocation.  */
+	      irela = internal_relocs;
+	      irelaend = irela + section->reloc_count;
+	      for (; irela < irelaend; irela++)
+		{
+		  unsigned int r_type, r_indx;
+		  struct elf32_avr_stub_hash_entry *hsh;
+		  asection *sym_sec;
+		  bfd_vma sym_value;
+		  bfd_vma destination;
+		  struct elf_link_hash_entry *hh;
+		  char *stub_name;
+
+		  r_type = ELF32_R_TYPE (irela->r_info);
+		  r_indx = ELF32_R_SYM (irela->r_info);
+
+		  /* Only look for 16 bit GS relocs. No other reloc will need a
+		     stub.  */
+		  if (!((r_type == R_AVR_16_PM)
+			|| (r_type == R_AVR_LO8_LDI_GS)
+			|| (r_type == R_AVR_HI8_LDI_GS)))
+		    continue;
+
+		  /* Now determine the call target, its name, value,
+		     section.  */
+		  sym_sec = NULL;
+		  sym_value = 0;
+		  destination = 0;
+		  hh = NULL;
+		  if (r_indx < symtab_hdr->sh_info)
+		    {
+		      /* It's a local symbol.  */
+		      Elf_Internal_Sym *sym;
+		      Elf_Internal_Shdr *hdr;
 		      unsigned int shndx;
 
-                      sym = local_syms + r_indx;
-                      if (ELF_ST_TYPE (sym->st_info) != STT_SECTION)
-                        sym_value = sym->st_value;
+		      sym = local_syms + r_indx;
+		      if (ELF_ST_TYPE (sym->st_info) != STT_SECTION)
+			sym_value = sym->st_value;
 		      shndx = sym->st_shndx;
 		      if (shndx < elf_numsections (input_bfd))
 			{
@@ -3690,116 +3722,116 @@ elf32_avr_size_stubs (bfd *output_bfd,
 					 + sym_sec->output_offset
 					 + sym_sec->output_section->vma);
 			}
-                    }
-                  else
-                    {
-                      /* It's an external symbol.  */
-                      int e_indx;
-
-                      e_indx = r_indx - symtab_hdr->sh_info;
-                      hh = elf_sym_hashes (input_bfd)[e_indx];
-
-                      while (hh->root.type == bfd_link_hash_indirect
-                             || hh->root.type == bfd_link_hash_warning)
-                        hh = (struct elf_link_hash_entry *)
-                              (hh->root.u.i.link);
-
-                      if (hh->root.type == bfd_link_hash_defined
-                          || hh->root.type == bfd_link_hash_defweak)
-                        {
-                          sym_sec = hh->root.u.def.section;
-                          sym_value = hh->root.u.def.value;
-                          if (sym_sec->output_section != NULL)
-                          destination = (sym_value + irela->r_addend
-                                         + sym_sec->output_offset
-                                         + sym_sec->output_section->vma);
-                        }
-                      else if (hh->root.type == bfd_link_hash_undefweak)
-                        {
-                          if (! bfd_link_pic (info))
-                            continue;
-                        }
-                      else if (hh->root.type == bfd_link_hash_undefined)
-                        {
-                          if (! (info->unresolved_syms_in_objects == RM_IGNORE
-                                 && (ELF_ST_VISIBILITY (hh->other)
-                                     == STV_DEFAULT)))
-                             continue;
-                        }
-                      else
-                        {
-                          bfd_set_error (bfd_error_bad_value);
-
-                          error_ret_free_internal:
-                          if (elf_section_data (section)->relocs == NULL)
-                            free (internal_relocs);
-                          goto error_ret_free_local;
-                        }
-                    }
+		    }
+		  else
+		    {
+		      /* It's an external symbol.  */
+		      int e_indx;
+
+		      e_indx = r_indx - symtab_hdr->sh_info;
+		      hh = elf_sym_hashes (input_bfd)[e_indx];
+
+		      while (hh->root.type == bfd_link_hash_indirect
+			     || hh->root.type == bfd_link_hash_warning)
+			hh = (struct elf_link_hash_entry *)
+			      (hh->root.u.i.link);
+
+		      if (hh->root.type == bfd_link_hash_defined
+			  || hh->root.type == bfd_link_hash_defweak)
+			{
+			  sym_sec = hh->root.u.def.section;
+			  sym_value = hh->root.u.def.value;
+			  if (sym_sec->output_section != NULL)
+			  destination = (sym_value + irela->r_addend
+					 + sym_sec->output_offset
+					 + sym_sec->output_section->vma);
+			}
+		      else if (hh->root.type == bfd_link_hash_undefweak)
+			{
+			  if (! bfd_link_pic (info))
+			    continue;
+			}
+		      else if (hh->root.type == bfd_link_hash_undefined)
+			{
+			  if (! (info->unresolved_syms_in_objects == RM_IGNORE
+				 && (ELF_ST_VISIBILITY (hh->other)
+				     == STV_DEFAULT)))
+			     continue;
+			}
+		      else
+			{
+			  bfd_set_error (bfd_error_bad_value);
+
+			  error_ret_free_internal:
+			  if (elf_section_data (section)->relocs == NULL)
+			    free (internal_relocs);
+			  goto error_ret_free_local;
+			}
+		    }
 
-                  if (! avr_stub_is_required_for_16_bit_reloc
+		  if (! avr_stub_is_required_for_16_bit_reloc
 		      (destination - htab->vector_base))
-                    {
-                      if (!is_prealloc_run)
+		    {
+		      if (!is_prealloc_run)
 			/* We are having a reloc that does't need a stub.  */
 			continue;
 
 		      /* We don't right now know if a stub will be needed.
 			 Let's rather be on the safe side.  */
-                    }
+		    }
 
-                  /* Get the name of this stub.  */
-                  stub_name = avr_stub_name (sym_sec, sym_value, irela);
+		  /* Get the name of this stub.  */
+		  stub_name = avr_stub_name (sym_sec, sym_value, irela);
 
-                  if (!stub_name)
-                    goto error_ret_free_internal;
+		  if (!stub_name)
+		    goto error_ret_free_internal;
 
 
-                  hsh = avr_stub_hash_lookup (&htab->bstab,
-                                              stub_name,
-                                              FALSE, FALSE);
-                  if (hsh != NULL)
-                    {
-                      /* The proper stub has already been created.  Mark it
-                         to be used and write the possibly changed destination
-                         value.  */
-                      hsh->is_actually_needed = TRUE;
-                      hsh->target_value = destination;
-                      free (stub_name);
-                      continue;
-                    }
-
-                  hsh = avr_add_stub (stub_name, htab);
-                  if (hsh == NULL)
-                    {
-                      free (stub_name);
-                      goto error_ret_free_internal;
-                    }
-
-                  hsh->is_actually_needed = TRUE;
-                  hsh->target_value = destination;
-
-                  if (debug_stubs)
-                    printf ("Adding stub with destination 0x%x to the"
-                            " hash table.\n", (unsigned int) destination);
-                  if (debug_stubs)
-                    printf ("(Pre-Alloc run: %i)\n", is_prealloc_run);
-
-                  stub_changed = TRUE;
-                }
-
-              /* We're done with the internal relocs, free them.  */
-              if (elf_section_data (section)->relocs == NULL)
-                free (internal_relocs);
-            }
-        }
+		  hsh = avr_stub_hash_lookup (&htab->bstab,
+					      stub_name,
+					      FALSE, FALSE);
+		  if (hsh != NULL)
+		    {
+		      /* The proper stub has already been created.  Mark it
+			 to be used and write the possibly changed destination
+			 value.  */
+		      hsh->is_actually_needed = TRUE;
+		      hsh->target_value = destination;
+		      free (stub_name);
+		      continue;
+		    }
+
+		  hsh = avr_add_stub (stub_name, htab);
+		  if (hsh == NULL)
+		    {
+		      free (stub_name);
+		      goto error_ret_free_internal;
+		    }
+
+		  hsh->is_actually_needed = TRUE;
+		  hsh->target_value = destination;
+
+		  if (debug_stubs)
+		    printf ("Adding stub with destination 0x%x to the"
+			    " hash table.\n", (unsigned int) destination);
+		  if (debug_stubs)
+		    printf ("(Pre-Alloc run: %i)\n", is_prealloc_run);
+
+		  stub_changed = TRUE;
+		}
+
+	      /* We're done with the internal relocs, free them.  */
+	      if (elf_section_data (section)->relocs == NULL)
+		free (internal_relocs);
+	    }
+	}
 
       /* Re-Calculate the number of needed stubs.  */
       htab->stub_sec->size = 0;
       bfd_hash_traverse (&htab->bstab, avr_size_one_stub, htab);
 
       if (!stub_changed)
-        break;
+	break;
 
       stub_changed = FALSE;
     }
@@ -3852,7 +3884,7 @@ elf32_avr_build_stubs (struct bfd_link_i
   htab->amt_entry_cnt = 0;
   htab->amt_max_entry_cnt = total_size / 4;
   htab->amt_stub_offsets = bfd_malloc (sizeof (bfd_vma)
-                                       * htab->amt_max_entry_cnt);
+				       * htab->amt_max_entry_cnt);
   htab->amt_destination_addr = bfd_malloc (sizeof (bfd_vma)
 					   * htab->amt_max_entry_cnt );
 
@@ -3934,7 +3966,7 @@ struct avr_find_section_data
 
 static void
 avr_find_section_for_address (bfd *abfd,
-                              asection *section, void *data)
+			      asection *section, void *data)
 {
   struct avr_find_section_data *fs_data
     = (struct avr_find_section_data *) data;
@@ -3979,10 +4011,10 @@ avr_elf32_load_records_from_section (bfd
   /* Load the relocations for the '.avr.prop' section if there are any, and
      sort them.  */
   internal_relocs = (_bfd_elf_link_read_relocs
-                     (abfd, sec, NULL, NULL, FALSE));
+		     (abfd, sec, NULL, NULL, FALSE));
   if (internal_relocs)
     qsort (internal_relocs, sec->reloc_count,
-           sizeof (Elf_Internal_Rela), internal_reloc_compare);
+	   sizeof (Elf_Internal_Rela), internal_reloc_compare);
 
   /* There is a header at the start of the property record section SEC, the
      format of this header is:
@@ -4030,116 +4062,116 @@ avr_elf32_load_records_from_section (bfd
       bfd_vma address;
 
       /* Each entry is a 32-bit address, followed by a single byte type.
-         After that is the type specific data.  We must take care to
-         ensure that we don't read beyond the end of the section data.  */
+	 After that is the type specific data.  We must take care to
+	 ensure that we don't read beyond the end of the section data.  */
       if (size < 5)
-        goto load_failed;
+	goto load_failed;
 
       r_list->records [i].section = NULL;
       r_list->records [i].offset = 0;
 
       if (rel)
-        {
-          /* The offset of the address within the .avr.prop section.  */
-          size_t offset = ptr - contents;
-
-          while (rel < rel_end && rel->r_offset < offset)
-            ++rel;
-
-          if (rel == rel_end)
-            rel = NULL;
-          else if (rel->r_offset == offset)
-            {
-              /* Find section and section offset.  */
-              unsigned long r_symndx;
-
-              asection * rel_sec;
-              bfd_vma sec_offset;
-
-              r_symndx = ELF32_R_SYM (rel->r_info);
-              rel_sec = get_elf_r_symndx_section (abfd, r_symndx);
-              sec_offset = get_elf_r_symndx_offset (abfd, r_symndx)
-                + rel->r_addend;
-
-              r_list->records [i].section = rel_sec;
-              r_list->records [i].offset = sec_offset;
-            }
-        }
+	{
+	  /* The offset of the address within the .avr.prop section.  */
+	  size_t offset = ptr - contents;
+
+	  while (rel < rel_end && rel->r_offset < offset)
+	    ++rel;
+
+	  if (rel == rel_end)
+	    rel = NULL;
+	  else if (rel->r_offset == offset)
+	    {
+	      /* Find section and section offset.  */
+	      unsigned long r_symndx;
+
+	      asection * rel_sec;
+	      bfd_vma sec_offset;
+
+	      r_symndx = ELF32_R_SYM (rel->r_info);
+	      rel_sec = get_elf_r_symndx_section (abfd, r_symndx);
+	      sec_offset = get_elf_r_symndx_offset (abfd, r_symndx)
+		+ rel->r_addend;
+
+	      r_list->records [i].section = rel_sec;
+	      r_list->records [i].offset = sec_offset;
+	    }
+	}
 
       address = *((uint32_t *) ptr);
       ptr += 4;
       size -= 4;
 
       if (r_list->records [i].section == NULL)
-        {
-          /* Try to find section and offset from address.  */
-          if (fs_data.section != NULL
-              && !avr_is_section_for_address (abfd, fs_data.section,
-                                              address))
-            fs_data.section = NULL;
-
-          if (fs_data.section == NULL)
-            {
-              fs_data.address = address;
-              bfd_map_over_sections (abfd, avr_find_section_for_address,
-                                     &fs_data);
-            }
-
-          if (fs_data.section == NULL)
-            {
-              fprintf (stderr, "Failed to find matching section.\n");
-              goto load_failed;
-            }
-
-          r_list->records [i].section = fs_data.section;
-          r_list->records [i].offset
-            = address - bfd_get_section_vma (abfd, fs_data.section);
-        }
+	{
+	  /* Try to find section and offset from address.  */
+	  if (fs_data.section != NULL
+	      && !avr_is_section_for_address (abfd, fs_data.section,
+					      address))
+	    fs_data.section = NULL;
+
+	  if (fs_data.section == NULL)
+	    {
+	      fs_data.address = address;
+	      bfd_map_over_sections (abfd, avr_find_section_for_address,
+				     &fs_data);
+	    }
+
+	  if (fs_data.section == NULL)
+	    {
+	      fprintf (stderr, "Failed to find matching section.\n");
+	      goto load_failed;
+	    }
+
+	  r_list->records [i].section = fs_data.section;
+	  r_list->records [i].offset
+	    = address - bfd_get_section_vma (abfd, fs_data.section);
+	}
 
       r_list->records [i].type = *((bfd_byte *) ptr);
       ptr += 1;
       size -= 1;
 
       switch (r_list->records [i].type)
-        {
-        case RECORD_ORG:
-          /* Nothing else to load.  */
-          break;
-        case RECORD_ORG_AND_FILL:
-          /* Just a 4-byte fill to load.  */
-          if (size < 4)
-            goto load_failed;
-          r_list->records [i].data.org.fill = *((uint32_t *) ptr);
-          ptr += 4;
-          size -= 4;
-          break;
-        case RECORD_ALIGN:
-          /* Just a 4-byte alignment to load.  */
-          if (size < 4)
-            goto load_failed;
-          r_list->records [i].data.align.bytes = *((uint32_t *) ptr);
-          ptr += 4;
-          size -= 4;
-          /* Just initialise PRECEDING_DELETED field, this field is
-             used during linker relaxation.  */
-          r_list->records [i].data.align.preceding_deleted = 0;
-          break;
-        case RECORD_ALIGN_AND_FILL:
-          /* A 4-byte alignment, and a 4-byte fill to load.  */
-          if (size < 8)
-            goto load_failed;
-          r_list->records [i].data.align.bytes = *((uint32_t *) ptr);
-          ptr += 4;
-          r_list->records [i].data.align.fill = *((uint32_t *) ptr);
-          ptr += 4;
-          size -= 8;
-          /* Just initialise PRECEDING_DELETED field, this field is
-             used during linker relaxation.  */
-          r_list->records [i].data.align.preceding_deleted = 0;
-          break;
-        default:
-          goto load_failed;
-        }
+	{
+	case RECORD_ORG:
+	  /* Nothing else to load.  */
+	  break;
+	case RECORD_ORG_AND_FILL:
+	  /* Just a 4-byte fill to load.  */
+	  if (size < 4)
+	    goto load_failed;
+	  r_list->records [i].data.org.fill = *((uint32_t *) ptr);
+	  ptr += 4;
+	  size -= 4;
+	  break;
+	case RECORD_ALIGN:
+	  /* Just a 4-byte alignment to load.  */
+	  if (size < 4)
+	    goto load_failed;
+	  r_list->records [i].data.align.bytes = *((uint32_t *) ptr);
+	  ptr += 4;
+	  size -= 4;
+	  /* Just initialise PRECEDING_DELETED field, this field is
+	     used during linker relaxation.  */
+	  r_list->records [i].data.align.preceding_deleted = 0;
+	  break;
+	case RECORD_ALIGN_AND_FILL:
+	  /* A 4-byte alignment, and a 4-byte fill to load.  */
+	  if (size < 8)
+	    goto load_failed;
+	  r_list->records [i].data.align.bytes = *((uint32_t *) ptr);
+	  ptr += 4;
+	  r_list->records [i].data.align.fill = *((uint32_t *) ptr);
+	  ptr += 4;
+	  size -= 8;
+	  /* Just initialise PRECEDING_DELETED field, this field is
+	     used during linker relaxation.  */
+	  r_list->records [i].data.align.preceding_deleted = 0;
+	  break;
+	default:
+	  goto load_failed;
+	}
     }
 
   free (contents);
@@ -4203,15 +4235,15 @@ avr_elf32_property_record_name (struct a
 #define ELF_MACHINE_ALT1	EM_AVR_OLD
 #define ELF_MAXPAGESIZE		1
 
-#define TARGET_LITTLE_SYM       avr_elf32_vec
+#define TARGET_LITTLE_SYM	avr_elf32_vec
 #define TARGET_LITTLE_NAME	"elf32-avr"
 
 #define bfd_elf32_bfd_link_hash_table_create elf32_avr_link_hash_table_create
 
-#define elf_info_to_howto	             avr_info_to_howto_rela
-#define elf_info_to_howto_rel	             NULL
-#define elf_backend_relocate_section         elf32_avr_relocate_section
-#define elf_backend_can_gc_sections          1
+#define elf_info_to_howto		     avr_info_to_howto_rela
+#define elf_info_to_howto_rel		     NULL
+#define elf_backend_relocate_section	     elf32_avr_relocate_section
+#define elf_backend_can_gc_sections	     1
 #define elf_backend_rela_normal		     1
 #define elf_backend_final_write_processing \
 					bfd_elf_avr_final_write_processing
@@ -4219,7 +4251,7 @@ avr_elf32_property_record_name (struct a
 
 #define bfd_elf32_bfd_relax_section elf32_avr_relax_section
 #define bfd_elf32_bfd_get_relocated_section_contents \
-                                        elf32_avr_get_relocated_section_contents
+					elf32_avr_get_relocated_section_contents
 #define bfd_elf32_new_section_hook	elf_avr_new_section_hook
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-avr.h ./bfd/elf32-avr.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-avr.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-avr.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* AVR-specific support for 32-bit ELF.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    Written by Bjoern Haase <bjoern.m.haase@web.de>
 
@@ -25,8 +25,8 @@
 
 extern void
 elf32_avr_setup_params (struct bfd_link_info *, bfd *, asection *,
-                        bfd_boolean, bfd_boolean, bfd_boolean,
-                        bfd_vma, bfd_boolean);
+			bfd_boolean, bfd_boolean, bfd_boolean,
+			bfd_vma, bfd_boolean);
 
 extern int
 elf32_avr_setup_section_lists (bfd *, struct bfd_link_info *);
@@ -80,10 +80,10 @@ struct avr_property_record
       unsigned long fill;
 
       /* This field is used during linker relaxation to track the number of
-         bytes that have been opened up before this alignment directive.
-         When we have enough bytes available it is possible to move the
-         re-align this directive backwards while still maintaining the
-         alignment requirement.  */
+	 bytes that have been opened up before this alignment directive.
+	 When we have enough bytes available it is possible to move the
+	 re-align this directive backwards while still maintaining the
+	 alignment requirement.  */
       unsigned long preceding_deleted;
     } align;
   } data;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-bfin.c ./bfd/elf32-bfin.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-bfin.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-bfin.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* ADI Blackfin BFD support for 32-bit ELF.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -45,12 +45,12 @@ bfin_pltpc_reloc (
 
 static bfd_reloc_status_type
 bfin_pcrel24_reloc (bfd *abfd,
-                    arelent *reloc_entry,
-                    asymbol *symbol,
-                    void * data,
-                    asection *input_section,
-                    bfd *output_bfd,
-                    char **error_message ATTRIBUTE_UNUSED)
+		    arelent *reloc_entry,
+		    asymbol *symbol,
+		    void * data,
+		    asection *input_section,
+		    bfd *output_bfd,
+		    char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma relocation;
   bfd_size_type addr = reloc_entry->address;
@@ -214,12 +214,12 @@ bfin_imm16_reloc (bfd *abfd,
 
 static bfd_reloc_status_type
 bfin_byte4_reloc (bfd *abfd,
-                  arelent *reloc_entry,
-                  asymbol *symbol,
-                  void * data,
-                  asection *input_section,
-                  bfd *output_bfd,
-                  char **error_message ATTRIBUTE_UNUSED)
+		  arelent *reloc_entry,
+		  asymbol *symbol,
+		  void * data,
+		  asection *input_section,
+		  bfd *output_bfd,
+		  char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma relocation, x;
   bfd_size_type addr = reloc_entry->address;
@@ -329,12 +329,12 @@ bfin_bfd_reloc (bfd *abfd,
   /* Here the variable relocation holds the final address of the
      symbol we are relocating against, plus any addend.  */
 
-  if (howto->pc_relative == TRUE)
+  if (howto->pc_relative)
     {
       relocation -= input_section->output_section->vma + input_section->output_offset;
 
-      if (howto->pcrel_offset == TRUE)
-        relocation -= reloc_entry->address;
+      if (howto->pcrel_offset)
+	relocation -= reloc_entry->address;
     }
 
   if (relocatable)
@@ -348,10 +348,10 @@ bfin_bfd_reloc (bfd *abfd,
       bfd_reloc_status_type status;
 
       status = bfd_check_overflow (howto->complain_on_overflow,
-                                  howto->bitsize,
-                                  howto->rightshift,
-                                  bfd_arch_bits_per_address(abfd),
-                                  relocation);
+				  howto->bitsize,
+				  howto->rightshift,
+				  bfd_arch_bits_per_address(abfd),
+				  relocation);
       if (status != bfd_reloc_ok)
 	return status;
     }
@@ -377,17 +377,17 @@ bfin_bfd_reloc (bfd *abfd,
     {
     case 0:
       {
-        char x = bfd_get_8 (abfd, (char *) data + addr);
-        DOIT (x);
-        bfd_put_8 (abfd, x, (unsigned char *) data + addr);
+	char x = bfd_get_8 (abfd, (char *) data + addr);
+	DOIT (x);
+	bfd_put_8 (abfd, x, (unsigned char *) data + addr);
       }
       break;
 
     case 1:
       {
-        unsigned short x = bfd_get_16 (abfd, (bfd_byte *) data + addr);
-        DOIT (x);
-        bfd_put_16 (abfd, (bfd_vma) x, (unsigned char *) data + addr);
+	unsigned short x = bfd_get_16 (abfd, (bfd_byte *) data + addr);
+	DOIT (x);
+	bfd_put_16 (abfd, (bfd_vma) x, (unsigned char *) data + addr);
       }
       break;
 
@@ -552,13 +552,13 @@ static reloc_howto_type bfin_howto_table
 	 TRUE),			/* pcrel_offset.  */
 
   HOWTO (R_BFIN_PCREL24_JUMP_X,	/* type.  */
-         1,			/* rightshift.  */
-         2,			/* size (0 = byte, 1 = short, 2 = long).  */
-         24,			/* bitsize.  */
-         TRUE,			/* pc_relative.  */
-         0,			/* bitpos.  */
-         complain_overflow_signed, /* complain_on_overflow.  */
-         bfin_pcrel24_reloc,	/* special_function.  */
+	 1,			/* rightshift.  */
+	 2,			/* size (0 = byte, 1 = short, 2 = long).  */
+	 24,			/* bitsize.  */
+	 TRUE,			/* pc_relative.  */
+	 0,			/* bitpos.  */
+	 complain_overflow_signed, /* complain_on_overflow.  */
+	 bfin_pcrel24_reloc,	/* special_function.  */
 	"R_BFIN_PCREL24_JUMP_X", /* name.  */
 	 FALSE,			/* partial_inplace.  */
 	 0,			/* src_mask.  */
@@ -708,7 +708,7 @@ static reloc_howto_type bfin_howto_table
 
   /* A 18-bit signed operand with the GOT offset for the address of
      the symbol.  */
-  HOWTO (R_BFIN_GOT17M4,        /* type */
+  HOWTO (R_BFIN_GOT17M4,	/* type */
 	 2,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -718,13 +718,13 @@ static reloc_howto_type bfin_howto_table
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_BFIN_GOT17M4",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0xffff,	        /* src_mask */
-	 0xffff,	        /* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* The upper 16 bits of the GOT offset for the address of the
      symbol.  */
-  HOWTO (R_BFIN_GOTHI,	        /* type */
+  HOWTO (R_BFIN_GOTHI,		/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -734,13 +734,13 @@ static reloc_howto_type bfin_howto_table
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_BFIN_GOTHI",		/* name */
 	 FALSE,			/* partial_inplace */
-	 0xffff,		        /* src_mask */
+	 0xffff,			/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* The lower 16 bits of the GOT offset for the address of the
      symbol.  */
-  HOWTO (R_BFIN_GOTLO,	        /* type */
+  HOWTO (R_BFIN_GOTLO,		/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -752,7 +752,7 @@ static reloc_howto_type bfin_howto_table
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* The 32-bit address of the canonical descriptor of a function.  */
   HOWTO (R_BFIN_FUNCDESC,	/* type */
@@ -781,9 +781,9 @@ static reloc_howto_type bfin_howto_table
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_BFIN_FUNCDESC_GOT17M4", /* name */
 	 FALSE,			/* partial_inplace */
-	 0xffff,	        /* src_mask */
-	 0xffff,	        /* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* The upper 16 bits of the GOT offset for the address of the
      canonical descriptor of a function.  */
@@ -799,7 +799,7 @@ static reloc_howto_type bfin_howto_table
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* The lower 16 bits of the GOT offset for the address of the
      canonical descriptor of a function.  */
@@ -815,7 +815,7 @@ static reloc_howto_type bfin_howto_table
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* The 32-bit address of the canonical descriptor of a function.  */
   HOWTO (R_BFIN_FUNCDESC_VALUE,	/* type */
@@ -844,9 +844,9 @@ static reloc_howto_type bfin_howto_table
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_BFIN_FUNCDESC_GOTOFF17M4", /* name */
 	 FALSE,			/* partial_inplace */
-	 0xffff,	        /* src_mask */
-	 0xffff,	        /* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* The upper 16 bits of the GOT offset for the address of the
      canonical descriptor of a function.  */
@@ -862,7 +862,7 @@ static reloc_howto_type bfin_howto_table
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* The lower 16 bits of the GOT offset for the address of the
      canonical descriptor of a function.  */
@@ -878,11 +878,11 @@ static reloc_howto_type bfin_howto_table
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* A 12-bit signed operand with the GOT offset for the address of
      the symbol.  */
-  HOWTO (R_BFIN_GOTOFF17M4,     /* type */
+  HOWTO (R_BFIN_GOTOFF17M4,	/* type */
 	 2,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -892,13 +892,13 @@ static reloc_howto_type bfin_howto_table
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_BFIN_GOTOFF17M4",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0xffff,	        /* src_mask */
-	 0xffff,	        /* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* The upper 16 bits of the GOT offset for the address of the
      symbol.  */
-  HOWTO (R_BFIN_GOTOFFHI,        /* type */
+  HOWTO (R_BFIN_GOTOFFHI,	 /* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -910,7 +910,7 @@ static reloc_howto_type bfin_howto_table
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* The lower 16 bits of the GOT offset for the address of the
      symbol.  */
@@ -926,7 +926,7 @@ static reloc_howto_type bfin_howto_table
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 };
 
 static reloc_howto_type bfin_gnuext_howto_table [] =
@@ -960,39 +960,39 @@ static reloc_howto_type bfin_gnuext_howt
 	 FALSE),		/* pcrel_offset.  */
 
 /* GNU extension to record C++ vtable hierarchy.  */
-  HOWTO (R_BFIN_GNU_VTINHERIT, /* type.  */
-         0,                     /* rightshift.  */
-         2,                     /* size (0 = byte, 1 = short, 2 = long).  */
-         0,                     /* bitsize.  */
-         FALSE,                 /* pc_relative.  */
-         0,                     /* bitpos.  */
-         complain_overflow_dont, /* complain_on_overflow.  */
-         NULL,                  /* special_function.  */
-         "R_BFIN_GNU_VTINHERIT", /* name.  */
-         FALSE,                 /* partial_inplace.  */
-         0,                     /* src_mask.  */
-         0,                     /* dst_mask.  */
-         FALSE),                /* pcrel_offset.  */
+  HOWTO (R_BFIN_GNU_VTINHERIT,	/* type.  */
+	 0,			/* rightshift.  */
+	 2,			/* size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* bitsize.  */
+	 FALSE,			/* pc_relative.  */
+	 0,			/* bitpos.  */
+	 complain_overflow_dont, /* complain_on_overflow.  */
+	 NULL,			/* special_function.  */
+	 "R_BFIN_GNU_VTINHERIT", /* name.  */
+	 FALSE,			/* partial_inplace.  */
+	 0,			/* src_mask.  */
+	 0,			/* dst_mask.  */
+	 FALSE),		/* pcrel_offset.  */
 
 /* GNU extension to record C++ vtable member usage.  */
   HOWTO (R_BFIN_GNU_VTENTRY,	/* type.  */
-         0,                     /* rightshift.  */
-         2,                     /* size (0 = byte, 1 = short, 2 = long).  */
-         0,                     /* bitsize.  */
-         FALSE,                 /* pc_relative.  */
-         0,			/* bitpos.  */
-         complain_overflow_dont, /* complain_on_overflow.  */
-         _bfd_elf_rel_vtable_reloc_fn, /* special_function.  */
-         "R_BFIN_GNU_VTENTRY",	/* name.  */
-         FALSE,                 /* partial_inplace.  */
-         0,                     /* src_mask.  */
-         0,                     /* dst_mask.  */
-         FALSE)                 /* pcrel_offset.  */
+	 0,			/* rightshift.  */
+	 2,			/* size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* bitsize.  */
+	 FALSE,			/* pc_relative.  */
+	 0,			/* bitpos.  */
+	 complain_overflow_dont, /* complain_on_overflow.  */
+	 _bfd_elf_rel_vtable_reloc_fn, /* special_function.  */
+	 "R_BFIN_GNU_VTENTRY",	/* name.  */
+	 FALSE,			/* partial_inplace.  */
+	 0,			/* src_mask.  */
+	 0,			/* dst_mask.  */
+	 FALSE)			/* pcrel_offset.  */
 };
 
 struct bfin_reloc_map
 {
-  bfd_reloc_code_real_type 	bfd_reloc_val;
+  bfd_reloc_code_real_type	bfd_reloc_val;
   unsigned int			bfin_reloc_val;
 };
 
@@ -1042,8 +1042,8 @@ static const struct bfin_reloc_map bfin_
 
 static void
 bfin_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
-                    arelent *cache_ptr,
-                    Elf_Internal_Rela *dst)
+		    arelent *cache_ptr,
+		    Elf_Internal_Rela *dst)
 {
   unsigned int r_type;
 
@@ -1154,7 +1154,7 @@ static bfd_boolean
 bfin_check_relocs (bfd * abfd,
 		   struct bfd_link_info *info,
 		   asection *sec,
-                   const Elf_Internal_Rela *relocs)
+		   const Elf_Internal_Rela *relocs)
 {
   bfd *dynobj;
   Elf_Internal_Shdr *symtab_hdr;
@@ -1188,29 +1188,25 @@ bfin_check_relocs (bfd * abfd,
       else
 	{
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
 	{
        /* This relocation describes the C++ object vtable hierarchy.
-           Reconstruct it for later use during GC.  */
-        case R_BFIN_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-        /* This relocation describes which C++ vtable entries
-           are actually used.  Record for later use during GC.  */
-        case R_BFIN_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
+	   Reconstruct it for later use during GC.  */
+	case R_BFIN_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	/* This relocation describes which C++ vtable entries
+	   are actually used.  Record for later use during GC.  */
+	case R_BFIN_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
 
 	case R_BFIN_GOT:
 	  if (h != NULL
@@ -1269,8 +1265,8 @@ bfin_check_relocs (bfd * abfd,
 		  if (bfd_link_pic (info))
 		    {
 		      /* If we are generating a shared object, we need to
-		         output a R_68K_RELATIVE reloc so that the dynamic
-		         linker can adjust this GOT entry.  */
+			 output a R_68K_RELATIVE reloc so that the dynamic
+			 linker can adjust this GOT entry.  */
 		      srelgot->size += sizeof (Elf32_External_Rela);
 		    }
 		}
@@ -1400,7 +1396,7 @@ bfin_relocate_section (bfd * output_bfd,
 	}
 
       if (r_type == R_BFIN_GNU_VTENTRY
-          || r_type == R_BFIN_GNU_VTINHERIT)
+	  || r_type == R_BFIN_GNU_VTINHERIT)
 	continue;
 
       howto = bfin_reloc_type_lookup (input_bfd, r_type);
@@ -1554,8 +1550,8 @@ bfin_relocate_section (bfd * output_bfd,
 
 	    relocation = sgot->output_offset + off;
 	    rel->r_addend = 0;
-            /* bfin : preg = [preg + 17bitdiv4offset] relocation is div by 4.  */
-            relocation /= 4;
+	    /* bfin : preg = [preg + 17bitdiv4offset] relocation is div by 4.  */
+	    relocation /= 4;
 	  }
 	  goto do_default;
 
@@ -1569,8 +1565,8 @@ bfin_relocate_section (bfd * output_bfd,
 	}
 
       /* Dynamic relocs are not propagated for SEC_DEBUGGING sections
-         because such sections are not SEC_ALLOC and thus ld.so will
-         not process them.  */
+	 because such sections are not SEC_ALLOC and thus ld.so will
+	 not process them.  */
       if (unresolved_reloc
 	  && !((input_section->flags & SEC_DEBUGGING) != 0 && h->def_dynamic)
 	  && _bfd_elf_section_offset (output_bfd, info, input_section,
@@ -1578,9 +1574,9 @@ bfin_relocate_section (bfd * output_bfd,
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): unresolvable relocation against symbol `%s'"),
+	    (_("%B(%A+%#Lx): unresolvable relocation against symbol `%s'"),
 	     input_bfd,
-	     input_section, (long) rel->r_offset, h->root.root.string);
+	     input_section, rel->r_offset, h->root.root.string);
 	  return FALSE;
 	}
 
@@ -1609,9 +1605,8 @@ bfin_relocate_section (bfd * output_bfd,
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B(%A+0x%lx): reloc against `%s': error %d"),
-		 input_bfd, input_section,
-		 (long) rel->r_offset, name, (int) r);
+		(_("%B(%A+%#Lx): reloc against `%s': error %d"),
+		 input_bfd, input_section, rel->r_offset, name, (int) r);
 	      return FALSE;
 	    }
 	}
@@ -1625,7 +1620,7 @@ bfin_gc_mark_hook (asection * sec,
 		   struct bfd_link_info *info,
 		   Elf_Internal_Rela * rel,
 		   struct elf_link_hash_entry *h,
-                   Elf_Internal_Sym * sym)
+		   Elf_Internal_Sym * sym)
 {
   if (h != NULL)
     switch (ELF32_R_TYPE (rel->r_info))
@@ -1637,79 +1632,6 @@ bfin_gc_mark_hook (asection * sec,
 
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
-
-/* Update the got entry reference counts for the section being removed.  */
-
-static bfd_boolean
-bfin_gc_sweep_hook (bfd * abfd,
-		    struct bfd_link_info *info,
-		    asection * sec,
-                    const Elf_Internal_Rela * relocs)
-{
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-  bfd *dynobj;
-  asection *sgot;
-  asection *srelgot;
-
-  dynobj = elf_hash_table (info)->dynobj;
-  if (dynobj == NULL)
-    return TRUE;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  sgot = elf_hash_table (info)->sgot;
-  srelgot = elf_hash_table (info)->srelgot;
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      struct elf_link_hash_entry *h;
-
-      switch (ELF32_R_TYPE (rel->r_info))
-	{
-	case R_BFIN_GOT:
-	  r_symndx = ELF32_R_SYM (rel->r_info);
-	  if (r_symndx >= symtab_hdr->sh_info)
-	    {
-	      h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	      if (h->got.refcount > 0)
-		{
-		  --h->got.refcount;
-		  if (h->got.refcount == 0)
-		    {
-		      /* We don't need the .got entry any more.  */
-		      sgot->size -= 4;
-		      srelgot->size -= sizeof (Elf32_External_Rela);
-		    }
-		}
-	    }
-	  else if (local_got_refcounts != NULL)
-	    {
-	      if (local_got_refcounts[r_symndx] > 0)
-		{
-		  --local_got_refcounts[r_symndx];
-		  if (local_got_refcounts[r_symndx] == 0)
-		    {
-		      /* We don't need the .got entry any more.  */
-		      sgot->size -= 4;
-		      if (bfd_link_pic (info))
-			srelgot->size -= sizeof (Elf32_External_Rela);
-		    }
-		}
-	    }
-	  break;
-	default:
-	  break;
-	}
-    }
-  return TRUE;
-}
 
 extern const bfd_target bfin_elf32_fdpic_vec;
 #define IS_FDPIC(bfd) ((bfd)->xvec == &bfin_elf32_fdpic_vec)
@@ -1879,7 +1801,7 @@ struct bfinfdpic_relocs_info
      for symbol+addend.  Should be implied by something like:
      (plt || fdgotoff17m4 || fdgotofflohi
       || ((fd || fdgot17m4 || fdgothilo)
-          && (symndx != -1 || BFINFDPIC_FUNCDESC_LOCAL (info, d.h))))  */
+	  && (symndx != -1 || BFINFDPIC_FUNCDESC_LOCAL (info, d.h))))  */
   unsigned privfd:1;
   /* Whether a lazy PLT entry is needed for this symbol+addend.
      Should be implied by something like:
@@ -2703,7 +2625,7 @@ bfinfdpic_relocate_section (bfd * output
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend"),
+		(_("%B: relocation at `%A+%#Lx' references symbol `%s' with nonzero addend"),
 		 input_bfd, input_section, rel->r_offset, name);
 	      return FALSE;
 
@@ -3216,118 +3138,6 @@ bfinfdpic_relocate_section (bfd * output
   return TRUE;
 }
 
-/* Update the relocation information for the relocations of the section
-   being removed.  */
-
-static bfd_boolean
-bfinfdpic_gc_sweep_hook (bfd *abfd,
-			 struct bfd_link_info *info,
-			 asection *sec,
-			 const Elf_Internal_Rela *relocs)
-{
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes, **sym_hashes_end;
-  const Elf_Internal_Rela *rel;
-  const Elf_Internal_Rela *rel_end;
-  struct bfinfdpic_relocs_info *picrel;
-
-  BFD_ASSERT (IS_FDPIC (abfd));
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  sym_hashes = elf_sym_hashes (abfd);
-  sym_hashes_end = sym_hashes + symtab_hdr->sh_size/sizeof(Elf32_External_Sym);
-  if (!elf_bad_symtab (abfd))
-    sym_hashes_end -= symtab_hdr->sh_info;
-
-  rel_end = relocs + sec->reloc_count;
-  for (rel = relocs; rel < rel_end; rel++)
-    {
-      struct elf_link_hash_entry *h;
-      unsigned long r_symndx;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
-      else
-        h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-
-      if (h != NULL)
-	picrel = bfinfdpic_relocs_info_for_global (bfinfdpic_relocs_info (info),
-						   abfd, h,
-						   rel->r_addend, NO_INSERT);
-      else
-	picrel = bfinfdpic_relocs_info_for_local (bfinfdpic_relocs_info
-						  (info), abfd, r_symndx,
-						  rel->r_addend, NO_INSERT);
-
-      if (!picrel)
-	return TRUE;
-
-      switch (ELF32_R_TYPE (rel->r_info))
-        {
-	case R_BFIN_PCREL24:
-	case R_BFIN_PCREL24_JUMP_L:
-	  picrel->call--;
-	  break;
-
-	case R_BFIN_FUNCDESC_VALUE:
-	  picrel->relocsfdv--;
-	  if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
-	    picrel->relocs32++;
-	  /* Fall through.  */
-
-	case R_BFIN_BYTE4_DATA:
-	  picrel->sym--;
-	  if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
-	    picrel->relocs32--;
-	  break;
-
-	case R_BFIN_GOT17M4:
-	  picrel->got17m4--;
-	  break;
-
-	case R_BFIN_GOTHI:
-	case R_BFIN_GOTLO:
-	  picrel->gothilo--;
-	  break;
-
-	case R_BFIN_FUNCDESC_GOT17M4:
-	  picrel->fdgot17m4--;
-	  break;
-
-	case R_BFIN_FUNCDESC_GOTHI:
-	case R_BFIN_FUNCDESC_GOTLO:
-	  picrel->fdgothilo--;
-	  break;
-
-	case R_BFIN_GOTOFF17M4:
-	case R_BFIN_GOTOFFHI:
-	case R_BFIN_GOTOFFLO:
-	  picrel->gotoff--;
-	  break;
-
-	case R_BFIN_FUNCDESC_GOTOFF17M4:
-	  picrel->fdgoff17m4--;
-	  break;
-
-	case R_BFIN_FUNCDESC_GOTOFFHI:
-	case R_BFIN_FUNCDESC_GOTOFFLO:
-	  picrel->fdgoffhilo--;
-	  break;
-
-	case R_BFIN_FUNCDESC:
-	  picrel->fd--;
-	  picrel->relocsfd--;
-	  break;
-
-	default:
-	  break;
-        }
-    }
-
-  return TRUE;
-}
-
 /* We need dynamic symbols for every section, since segments can
    relocate independently.  */
 static bfd_boolean
@@ -4513,7 +4323,7 @@ elf32_bfinfdpic_adjust_dynamic_symbol (s
 
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
-	      && (h->u.weakdef != NULL
+	      && (h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -4521,12 +4331,12 @@ elf32_bfinfdpic_adjust_dynamic_symbol (s
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
     }
 
   return TRUE;
@@ -4720,9 +4530,9 @@ bfinfdpic_check_relocs (bfd *abfd, struc
 
       r_symndx = ELF32_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
-        h = sym_hashes[r_symndx - symtab_hdr->sh_info];
+	h = sym_hashes[r_symndx - symtab_hdr->sh_info];
 
       switch (ELF32_R_TYPE (rel->r_info))
 	{
@@ -4788,7 +4598,7 @@ bfinfdpic_check_relocs (bfd *abfd, struc
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
-        {
+	{
 	case R_BFIN_PCREL24:
 	case R_BFIN_PCREL24_JUMP_L:
 	  if (IS_FDPIC (abfd))
@@ -4848,21 +4658,21 @@ bfinfdpic_check_relocs (bfd *abfd, struc
 	  picrel->relocsfd++;
 	  break;
 
-        /* This relocation describes the C++ object vtable hierarchy.
-           Reconstruct it for later use during GC.  */
-        case R_BFIN_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-        /* This relocation describes which C++ vtable entries are actually
-           used.  Record for later use during GC.  */
-        case R_BFIN_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
+	/* This relocation describes the C++ object vtable hierarchy.
+	   Reconstruct it for later use during GC.  */
+	case R_BFIN_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	/* This relocation describes which C++ vtable entries are actually
+	   used.  Record for later use during GC.  */
+	case R_BFIN_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
 
 	case R_BFIN_HUIMM16:
 	case R_BFIN_LUIMM16:
@@ -4874,10 +4684,10 @@ bfinfdpic_check_relocs (bfd *abfd, struc
 	bad_reloc:
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: unsupported relocation type %i"),
-	     abfd, ELF32_R_TYPE (rel->r_info));
+	    (_("%B: unsupported relocation type %d"),
+	     abfd, (int) ELF32_R_TYPE (rel->r_info));
 	  return FALSE;
-        }
+	}
     }
 
   return TRUE;
@@ -4949,7 +4759,7 @@ elf32_bfin_merge_private_bfd_data (bfd *
   if (0)
 #endif
   _bfd_error_handler
-    ("old_flags = 0x%.8lx, new_flags = 0x%.8lx, init = %s, filename = %B",
+    ("old_flags = 0x%.8x, new_flags = 0x%.8x, init = %s, filename = %B",
      old_flags, new_flags, elf_flags_init (obfd) ? "yes" : "no", ibfd);
 
   if (!elf_flags_init (obfd))			/* First call, no flags set.  */
@@ -5098,7 +4908,7 @@ bfin_finish_dynamic_symbol (bfd * output
       bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.
-         Set it up.  */
+	 Set it up.  */
 
       sgot = elf_hash_table (info)->sgot;
       srela = elf_hash_table (info)->srelgot;
@@ -5109,10 +4919,10 @@ bfin_finish_dynamic_symbol (bfd * output
 		       + (h->got.offset & ~(bfd_vma) 1));
 
       /* If this is a -Bsymbolic link, and the symbol is defined
-         locally, we just want to emit a RELATIVE reloc.  Likewise if
-         the symbol was forced to be local because of a version file.
-         The entry in the global offset table will already have been
-         initialized in the relocate_section function.  */
+	 locally, we just want to emit a RELATIVE reloc.  Likewise if
+	 the symbol was forced to be local because of a version file.
+	 The entry in the global offset table will already have been
+	 initialized in the relocate_section function.  */
       if (bfd_link_pic (info)
 	  && (info->symbolic
 	      || h->dynindx == -1 || h->forced_local) && h->def_regular)
@@ -5170,7 +4980,7 @@ bfin_adjust_dynamic_symbol (struct bfd_l
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
 	      && (h->needs_plt
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic && h->ref_regular && !h->def_regular)));
 
   /* If this is a function, put it in the procedure linkage table.  We
@@ -5184,12 +4994,12 @@ bfin_adjust_dynamic_symbol (struct bfd_l
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -5337,7 +5147,7 @@ bfin_size_dynamic_sections (bfd * output
   if (elf_hash_table (info)->dynamic_sections_created)
     {
       /* Set the contents of the .interp section to the interpreter.  */
-      if (bfd_link_executable (info))
+      if (bfd_link_executable (info) && !info->nointerp)
 	{
 	  s = bfd_get_linker_section (dynobj, ".interp");
 	  BFD_ASSERT (s != NULL);
@@ -5348,10 +5158,10 @@ bfin_size_dynamic_sections (bfd * output
   else
     {
       /* We may have created entries in the .rela.got section.
-         However, if we are not creating the dynamic sections, we will
-         not actually use these entries.  Reset the size of .rela.got,
-         which will cause it to get stripped from the output file
-         below.  */
+	 However, if we are not creating the dynamic sections, we will
+	 not actually use these entries.  Reset the size of .rela.got,
+	 which will cause it to get stripped from the output file
+	 below.  */
       s = elf_hash_table (info)->srelgot;
       if (s != NULL)
 	s->size = 0;
@@ -5380,7 +5190,7 @@ bfin_size_dynamic_sections (bfd * output
 	continue;
 
       /* It's OK to base decisions on the section name, because none
-         of the dynobj section names depend upon the input files.  */
+	 of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
       strip = FALSE;
@@ -5390,14 +5200,14 @@ bfin_size_dynamic_sections (bfd * output
 	  if (s->size == 0)
 	    {
 	      /* If we don't need this section, strip it from the
-	         output file.  This is mostly to handle .rela.bss and
-	         .rela.plt.  We must create both sections in
-	         create_dynamic_sections, because they must be created
-	         before the linker maps input sections to output
-	         sections.  The linker does that before
-	         adjust_dynamic_symbol is called, and it is that
-	         function which decides whether anything needs to go
-	         into these sections.  */
+		 output file.  This is mostly to handle .rela.bss and
+		 .rela.plt.  We must create both sections in
+		 create_dynamic_sections, because they must be created
+		 before the linker maps input sections to output
+		 sections.  The linker does that before
+		 adjust_dynamic_symbol is called, and it is that
+		 function which decides whether anything needs to go
+		 into these sections.  */
 	      strip = TRUE;
 	    }
 	  else
@@ -5405,7 +5215,7 @@ bfin_size_dynamic_sections (bfd * output
 	      relocs = TRUE;
 
 	      /* We use the reloc_count field as a counter if we need
-	         to copy relocs into the output file.  */
+		 to copy relocs into the output file.  */
 	      s->reloc_count = 0;
 	    }
 	}
@@ -5423,10 +5233,10 @@ bfin_size_dynamic_sections (bfd * output
 
       /* Allocate memory for the section contents.  */
       /* FIXME: This should be a call to bfd_alloc not bfd_zalloc.
-         Unused entries should be reclaimed before the section's contents
-         are written out, but at the moment this does not happen.  Thus in
-         order to prevent writing out garbage, we initialise the section's
-         contents to zero.  */
+	 Unused entries should be reclaimed before the section's contents
+	 are written out, but at the moment this does not happen.  Thus in
+	 order to prevent writing out garbage, we initialise the section's
+	 contents to zero.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->size);
       if (s->contents == NULL && s->size != 0)
 	return FALSE;
@@ -5435,10 +5245,10 @@ bfin_size_dynamic_sections (bfd * output
   if (elf_hash_table (info)->dynamic_sections_created)
     {
       /* Add some entries to the .dynamic section.  We fill in the
-         values later, in bfin_finish_dynamic_sections, but we
-         must add the entries now so that we get the correct size for
-         the .dynamic section.  The DT_DEBUG entry is filled in by the
-         dynamic linker and used by the debugger.  */
+	 values later, in bfin_finish_dynamic_sections, but we
+	 must add the entries now so that we get the correct size for
+	 the .dynamic section.  The DT_DEBUG entry is filled in by the
+	 dynamic linker and used by the debugger.  */
 #define add_dynamic_entry(TAG, VAL) \
   _bfd_elf_add_dynamic_entry (info, TAG, VAL)
 
@@ -5595,7 +5405,7 @@ struct bfd_elf_special_section const elf
 {
   { ".l1.text",		8, -2, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
   { ".l1.data",		8, -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { NULL,		0,  0, 0,            0 }
+  { NULL,		0,  0, 0,	     0 }
 };
 
 
@@ -5615,39 +5425,38 @@ struct bfd_elf_special_section const elf
 #define elf_backend_object_p		elf32_bfin_object_p
 
 #define bfd_elf32_bfd_is_local_label_name \
-                                        bfin_is_local_label_name
+					bfin_is_local_label_name
 #define bfin_hash_table(p) \
   ((struct bfin_link_hash_table *) (p)->hash)
 
 
 
 #define elf_backend_create_dynamic_sections \
-                                        _bfd_elf_create_dynamic_sections
+					_bfd_elf_create_dynamic_sections
 #define bfd_elf32_bfd_link_hash_table_create \
-                                        bfin_link_hash_table_create
-#define bfd_elf32_bfd_final_link        bfd_elf_gc_common_final_link
+					bfin_link_hash_table_create
+#define bfd_elf32_bfd_final_link	bfd_elf_gc_common_final_link
 
-#define elf_backend_check_relocs        bfin_check_relocs
+#define elf_backend_check_relocs	bfin_check_relocs
 #define elf_backend_adjust_dynamic_symbol \
-                                        bfin_adjust_dynamic_symbol
+					bfin_adjust_dynamic_symbol
 #define elf_backend_size_dynamic_sections \
-                                        bfin_size_dynamic_sections
-#define elf_backend_relocate_section    bfin_relocate_section
+					bfin_size_dynamic_sections
+#define elf_backend_relocate_section	bfin_relocate_section
 #define elf_backend_finish_dynamic_symbol \
-                                        bfin_finish_dynamic_symbol
+					bfin_finish_dynamic_symbol
 #define elf_backend_finish_dynamic_sections \
-                                        bfin_finish_dynamic_sections
-#define elf_backend_gc_mark_hook        bfin_gc_mark_hook
-#define elf_backend_gc_sweep_hook       bfin_gc_sweep_hook
+					bfin_finish_dynamic_sections
+#define elf_backend_gc_mark_hook	bfin_gc_mark_hook
 #define bfd_elf32_bfd_merge_private_bfd_data \
-                                        elf32_bfin_merge_private_bfd_data
+					elf32_bfin_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags \
-                                        elf32_bfin_set_private_flags
+					elf32_bfin_set_private_flags
 #define bfd_elf32_bfd_print_private_bfd_data \
-                                        elf32_bfin_print_private_bfd_data
+					elf32_bfin_print_private_bfd_data
 #define elf_backend_final_write_processing \
-                                        elf32_bfin_final_write_processing
-#define elf_backend_reloc_type_class    elf32_bfin_reloc_type_class
+					elf32_bfin_final_write_processing
+#define elf_backend_reloc_type_class	elf32_bfin_reloc_type_class
 #define elf_backend_stack_align		8
 #define elf_backend_can_gc_sections 1
 #define elf_backend_special_sections	elf32_bfin_special_sections
@@ -5655,28 +5464,25 @@ struct bfd_elf_special_section const elf
 #define elf_backend_want_got_plt 0
 #define elf_backend_plt_readonly 1
 #define elf_backend_want_plt_sym 0
-#define elf_backend_got_header_size     12
-#define elf_backend_rela_normal         1
+#define elf_backend_got_header_size	12
+#define elf_backend_rela_normal		1
 
 #include "elf32-target.h"
 
 #undef TARGET_LITTLE_SYM
-#define TARGET_LITTLE_SYM          bfin_elf32_fdpic_vec
+#define TARGET_LITTLE_SYM		bfin_elf32_fdpic_vec
 #undef TARGET_LITTLE_NAME
 #define TARGET_LITTLE_NAME		"elf32-bfinfdpic"
 #undef	elf32_bed
-#define	elf32_bed		elf32_bfinfdpic_bed
-
-#undef elf_backend_gc_sweep_hook
-#define elf_backend_gc_sweep_hook       bfinfdpic_gc_sweep_hook
+#define	elf32_bed			elf32_bfinfdpic_bed
 
 #undef elf_backend_got_header_size
-#define elf_backend_got_header_size     0
+#define elf_backend_got_header_size	0
 
 #undef elf_backend_relocate_section
-#define elf_backend_relocate_section    bfinfdpic_relocate_section
+#define elf_backend_relocate_section	bfinfdpic_relocate_section
 #undef elf_backend_check_relocs
-#define elf_backend_check_relocs        bfinfdpic_check_relocs
+#define elf_backend_check_relocs	bfinfdpic_check_relocs
 
 #undef bfd_elf32_bfd_link_hash_table_create
 #define bfd_elf32_bfd_link_hash_table_create \
@@ -5715,12 +5521,12 @@ struct bfd_elf_special_section const elf
 		bfinfdpic_elf_encode_eh_address
 
 #undef elf_backend_may_use_rel_p
-#define elf_backend_may_use_rel_p       1
+#define elf_backend_may_use_rel_p	1
 #undef elf_backend_may_use_rela_p
-#define elf_backend_may_use_rela_p      1
+#define elf_backend_may_use_rela_p	1
 /* We use REL for dynamic relocations only.  */
 #undef elf_backend_default_use_rela_p
-#define elf_backend_default_use_rela_p  1
+#define elf_backend_default_use_rela_p	1
 
 #undef elf_backend_omit_section_dynsym
 #define elf_backend_omit_section_dynsym _bfinfdpic_link_omit_section_dynsym
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32.c ./bfd/elf32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* ELF 32-bit executable support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-cr16.c ./bfd/elf32-cr16.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-cr16.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-cr16.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for National Semiconductor's CR16 ELF
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
    Written by M R Swami Reddy.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -72,13 +72,13 @@ struct elf32_cr16_link_hash_entry
 struct cr16_reloc_map
 {
   bfd_reloc_code_real_type bfd_reloc_enum; /* BFD relocation enum.  */
-  unsigned short cr16_reloc_type;          /* CR16 relocation type.  */
+  unsigned short cr16_reloc_type;	   /* CR16 relocation type.  */
 };
 
 static const struct cr16_reloc_map cr16_reloc_map[R_CR16_MAX] =
 {
-  {BFD_RELOC_NONE,           R_CR16_NONE},
-  {BFD_RELOC_CR16_NUM8,      R_CR16_NUM8},
+  {BFD_RELOC_NONE,	     R_CR16_NONE},
+  {BFD_RELOC_CR16_NUM8,	     R_CR16_NUM8},
   {BFD_RELOC_CR16_NUM16,     R_CR16_NUM16},
   {BFD_RELOC_CR16_NUM32,     R_CR16_NUM32},
   {BFD_RELOC_CR16_NUM32a,    R_CR16_NUM32a},
@@ -91,8 +91,8 @@ static const struct cr16_reloc_map cr16_
   {BFD_RELOC_CR16_REGREL20a, R_CR16_REGREL20a},
   {BFD_RELOC_CR16_ABS20,     R_CR16_ABS20},
   {BFD_RELOC_CR16_ABS24,     R_CR16_ABS24},
-  {BFD_RELOC_CR16_IMM4,      R_CR16_IMM4},
-  {BFD_RELOC_CR16_IMM8,      R_CR16_IMM8},
+  {BFD_RELOC_CR16_IMM4,	     R_CR16_IMM4},
+  {BFD_RELOC_CR16_IMM8,	     R_CR16_IMM8},
   {BFD_RELOC_CR16_IMM16,     R_CR16_IMM16},
   {BFD_RELOC_CR16_IMM20,     R_CR16_IMM20},
   {BFD_RELOC_CR16_IMM24,     R_CR16_IMM24},
@@ -113,463 +113,463 @@ static const struct cr16_reloc_map cr16_
 
 static reloc_howto_type cr16_elf_howto_table[] =
 {
-  HOWTO (R_CR16_NONE,              /* type */
-         0,                        /* rightshift */
-         3,                        /* size */
-         0,                        /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_dont,   /* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_NONE",            /* name */
-         FALSE,                    /* partial_inplace */
-         0,                        /* src_mask */
-         0,                        /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_NUM8,              /* type */
-         0,                        /* rightshift */
-         0,                        /* size */
-         8,                        /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_NUM8",            /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xff,                     /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_NUM16,             /* type */
-         0,                        /* rightshift */
-         1,                        /* size */
-         16,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_NUM16",           /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xffff,                   /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_NUM32,             /* type */
-         0,                        /* rightshift */
-         2,                        /* size */
-         32,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_NUM32",           /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xffffffff,               /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_NUM32a,            /* type */
-         1,                        /* rightshift */
-         2,                        /* size */
-         32,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_NUM32a",          /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xffffffff,               /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_REGREL4,           /* type */
-         0,                        /* rightshift */
-         0,                        /* size */
-         4,                        /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_REGREL4",         /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xf,                      /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_REGREL4a,          /* type */
-         0,                        /* rightshift */
-         0,                        /* size */
-         4,                        /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_REGREL4a",        /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xf,                      /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_REGREL14,          /* type */
-         0,                        /* rightshift */
-         1,                        /* size */
-         14,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_REGREL14",        /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0x3fff,                   /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_REGREL14a,         /* type */
-         0,                        /* rightshift */
-         1,                        /* size */
-         14,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_REGREL14a",       /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0x3fff,                   /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_REGREL16,          /* type */
-         0,                        /* rightshift */
-         1,                        /* size */
-         16,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_REGREL16",        /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xffff,                   /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_REGREL20,          /* type */
-         0,                        /* rightshift */
-         2,                        /* size */
-         20,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_REGREL20",        /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xfffff,                  /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_REGREL20a,         /* type */
-         0,                        /* rightshift */
-         2,                        /* size */
-         20,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_REGREL20a",       /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xfffff,                  /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_ABS20,             /* type */
-         0,                        /* rightshift */
-         2,                        /* size */
-         20,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_ABS20",           /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xfffff,                  /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_ABS24,             /* type */
-         0,                        /* rightshift */
-         2,                        /* size */
-         24,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_ABS24",           /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xffffff,                 /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_IMM4,              /* type */
-         0,                        /* rightshift */
-         0,                        /* size */
-         4,                        /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_IMM4",            /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xf,                      /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_IMM8,              /* type */
-         0,                        /* rightshift */
-         0,                        /* size */
-         8,                        /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_IMM8",            /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xff,                     /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_IMM16,             /* type */
-         0,                        /* rightshift */
-         1,                        /* size */
-         16,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_IMM16",           /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xffff,                   /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_IMM20,             /* type */
-         0,                        /* rightshift */
-         2,                        /* size */
-         20,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_IMM20",           /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xfffff,                  /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_IMM24,             /* type */
-         0,                        /* rightshift */
-         2,                        /* size */
-         24,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_IMM24",           /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xffffff,                 /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_IMM32,             /* type */
-         0,                        /* rightshift */
-         2,                        /* size */
-         32,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_IMM32",           /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xffffffff,               /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_IMM32a,            /* type */
-         1,                        /* rightshift */
-         2,                        /* size */
-         32,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_IMM32a",          /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xffffffff,               /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_DISP4,             /* type */
-         1,                        /* rightshift */
-         0,                        /* size (0 = byte, 1 = short, 2 = long) */
-         4,                        /* bitsize */
-         TRUE,                     /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_unsigned, /* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_DISP4",           /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xf,                      /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_DISP8,             /* type */
-         1,                        /* rightshift */
-         0,                        /* size (0 = byte, 1 = short, 2 = long) */
-         8,                        /* bitsize */
-         TRUE,                     /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_unsigned, /* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_DISP8",           /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0x1ff,                    /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_DISP16,            /* type */
-         0,                        /* rightshift REVIITS: To sync with WinIDEA*/
-         1,                        /* size (0 = byte, 1 = short, 2 = long) */
-         16,                       /* bitsize */
-         TRUE,                     /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_unsigned, /* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_DISP16",          /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0x1ffff,                  /* dst_mask */
-         FALSE),                   /* pcrel_offset */
+  HOWTO (R_CR16_NONE,		   /* type */
+	 0,			   /* rightshift */
+	 3,			   /* size */
+	 0,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_dont,   /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_NONE",		   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0,			   /* src_mask */
+	 0,			   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_NUM8,		   /* type */
+	 0,			   /* rightshift */
+	 0,			   /* size */
+	 8,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_NUM8",		   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xff,			   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_NUM16,		   /* type */
+	 0,			   /* rightshift */
+	 1,			   /* size */
+	 16,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_NUM16",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_NUM32,		   /* type */
+	 0,			   /* rightshift */
+	 2,			   /* size */
+	 32,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_NUM32",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xffffffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_NUM32a,		   /* type */
+	 1,			   /* rightshift */
+	 2,			   /* size */
+	 32,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_NUM32a",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xffffffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_REGREL4,	   /* type */
+	 0,			   /* rightshift */
+	 0,			   /* size */
+	 4,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_REGREL4",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xf,			   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_REGREL4a,	   /* type */
+	 0,			   /* rightshift */
+	 0,			   /* size */
+	 4,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_REGREL4a",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xf,			   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_REGREL14,	   /* type */
+	 0,			   /* rightshift */
+	 1,			   /* size */
+	 14,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_REGREL14",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0x3fff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_REGREL14a,	   /* type */
+	 0,			   /* rightshift */
+	 1,			   /* size */
+	 14,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_REGREL14a",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0x3fff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_REGREL16,	   /* type */
+	 0,			   /* rightshift */
+	 1,			   /* size */
+	 16,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_REGREL16",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_REGREL20,	   /* type */
+	 0,			   /* rightshift */
+	 2,			   /* size */
+	 20,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_REGREL20",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xfffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_REGREL20a,	   /* type */
+	 0,			   /* rightshift */
+	 2,			   /* size */
+	 20,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_REGREL20a",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xfffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_ABS20,		   /* type */
+	 0,			   /* rightshift */
+	 2,			   /* size */
+	 20,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_ABS20",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xfffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_ABS24,		   /* type */
+	 0,			   /* rightshift */
+	 2,			   /* size */
+	 24,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_ABS24",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xffffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_IMM4,		   /* type */
+	 0,			   /* rightshift */
+	 0,			   /* size */
+	 4,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_IMM4",		   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xf,			   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_IMM8,		   /* type */
+	 0,			   /* rightshift */
+	 0,			   /* size */
+	 8,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_IMM8",		   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xff,			   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_IMM16,		   /* type */
+	 0,			   /* rightshift */
+	 1,			   /* size */
+	 16,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_IMM16",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_IMM20,		   /* type */
+	 0,			   /* rightshift */
+	 2,			   /* size */
+	 20,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_IMM20",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xfffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_IMM24,		   /* type */
+	 0,			   /* rightshift */
+	 2,			   /* size */
+	 24,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_IMM24",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xffffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_IMM32,		   /* type */
+	 0,			   /* rightshift */
+	 2,			   /* size */
+	 32,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_IMM32",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xffffffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_IMM32a,		   /* type */
+	 1,			   /* rightshift */
+	 2,			   /* size */
+	 32,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_IMM32a",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xffffffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_DISP4,		   /* type */
+	 1,			   /* rightshift */
+	 0,			   /* size (0 = byte, 1 = short, 2 = long) */
+	 4,			   /* bitsize */
+	 TRUE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_unsigned, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_DISP4",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xf,			   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_DISP8,		   /* type */
+	 1,			   /* rightshift */
+	 0,			   /* size (0 = byte, 1 = short, 2 = long) */
+	 8,			   /* bitsize */
+	 TRUE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_unsigned, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_DISP8",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0x1ff,			   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_DISP16,		   /* type */
+	 0,			   /* rightshift REVIITS: To sync with WinIDEA*/
+	 1,			   /* size (0 = byte, 1 = short, 2 = long) */
+	 16,			   /* bitsize */
+	 TRUE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_unsigned, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_DISP16",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0x1ffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
   /* REVISIT: DISP24 should be left-shift by 2 as per ISA doc
      but its not done, to sync with WinIDEA and CR16 4.1 tools */
-  HOWTO (R_CR16_DISP24,            /* type */
-         0,                        /* rightshift */
-         2,                        /* size (0 = byte, 1 = short, 2 = long) */
-         24,                       /* bitsize */
-         TRUE,                     /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_unsigned, /* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_DISP24",          /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0x1ffffff,                /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_DISP24a,           /* type */
-         0,                        /* rightshift */
-         2,                        /* size (0 = byte, 1 = short, 2 = long) */
-         24,                       /* bitsize */
-         TRUE,                     /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_unsigned, /* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_DISP24a",         /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xffffff,                 /* dst_mask */
-         FALSE),                   /* pcrel_offset */
+  HOWTO (R_CR16_DISP24,		   /* type */
+	 0,			   /* rightshift */
+	 2,			   /* size (0 = byte, 1 = short, 2 = long) */
+	 24,			   /* bitsize */
+	 TRUE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_unsigned, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_DISP24",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0x1ffffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_DISP24a,	   /* type */
+	 0,			   /* rightshift */
+	 2,			   /* size (0 = byte, 1 = short, 2 = long) */
+	 24,			   /* bitsize */
+	 TRUE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_unsigned, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_DISP24a",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xffffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
 
   /* An 8 bit switch table entry.  This is generated for an expression
      such as ``.byte L1 - L2''.  The offset holds the difference
      between the reloc address and L2.  */
-  HOWTO (R_CR16_SWITCH8,           /* type */
-         0,                        /* rightshift */
-         0,                        /* size (0 = byte, 1 = short, 2 = long) */
-         8,                        /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_unsigned, /* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_SWITCH8",         /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xff,                     /* dst_mask */
-         TRUE),                    /* pcrel_offset */
+  HOWTO (R_CR16_SWITCH8,	   /* type */
+	 0,			   /* rightshift */
+	 0,			   /* size (0 = byte, 1 = short, 2 = long) */
+	 8,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_unsigned, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_SWITCH8",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xff,			   /* dst_mask */
+	 TRUE),			   /* pcrel_offset */
 
   /* A 16 bit switch table entry.  This is generated for an expression
      such as ``.word L1 - L2''.  The offset holds the difference
      between the reloc address and L2.  */
-  HOWTO (R_CR16_SWITCH16,          /* type */
-         0,                        /* rightshift */
-         1,                        /* size (0 = byte, 1 = short, 2 = long) */
-         16,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_unsigned, /* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_SWITCH16",        /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xffff,                   /* dst_mask */
-         TRUE),                    /* pcrel_offset */
+  HOWTO (R_CR16_SWITCH16,	   /* type */
+	 0,			   /* rightshift */
+	 1,			   /* size (0 = byte, 1 = short, 2 = long) */
+	 16,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_unsigned, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_SWITCH16",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xffff,		   /* dst_mask */
+	 TRUE),			   /* pcrel_offset */
 
   /* A 32 bit switch table entry.  This is generated for an expression
      such as ``.long L1 - L2''.  The offset holds the difference
      between the reloc address and L2.  */
-  HOWTO (R_CR16_SWITCH32,          /* type */
-         0,                        /* rightshift */
-         2,                        /* size (0 = byte, 1 = short, 2 = long) */
-         32,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_unsigned, /* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_SWITCH32",        /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xffffffff,               /* dst_mask */
-         TRUE),                    /* pcrel_offset */
-
-  HOWTO (R_CR16_GOT_REGREL20,      /* type */
-         0,                        /* rightshift */
-         2,                        /* size */
-         20,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_GOT_REGREL20",    /* name */
-         TRUE,                     /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xfffff,                  /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_GOTC_REGREL20,     /* type */
-         0,                        /* rightshift */
-         2,                        /* size */
-         20,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_GOTC_REGREL20",   /* name */
-         TRUE,                     /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xfffff,                  /* dst_mask */
-         FALSE),                   /* pcrel_offset */
-
-  HOWTO (R_CR16_GLOB_DAT,          /* type */
-         0,                        /* rightshift */
-         2,                        /* size (0 = byte, 1 = short, 2 = long) */
-         32,                       /* bitsize */
-         FALSE,                    /* pc_relative */
-         0,                        /* bitpos */
-         complain_overflow_unsigned, /* complain_on_overflow */
-         bfd_elf_generic_reloc,    /* special_function */
-         "R_CR16_GLOB_DAT",        /* name */
-         FALSE,                    /* partial_inplace */
-         0x0,                      /* src_mask */
-         0xffffffff,               /* dst_mask */
-         TRUE)                     /* pcrel_offset */
+  HOWTO (R_CR16_SWITCH32,	   /* type */
+	 0,			   /* rightshift */
+	 2,			   /* size (0 = byte, 1 = short, 2 = long) */
+	 32,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_unsigned, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_SWITCH32",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xffffffff,		   /* dst_mask */
+	 TRUE),			   /* pcrel_offset */
+
+  HOWTO (R_CR16_GOT_REGREL20,	   /* type */
+	 0,			   /* rightshift */
+	 2,			   /* size */
+	 20,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_GOT_REGREL20",	   /* name */
+	 TRUE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xfffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_GOTC_REGREL20,	   /* type */
+	 0,			   /* rightshift */
+	 2,			   /* size */
+	 20,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_GOTC_REGREL20",   /* name */
+	 TRUE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xfffff,		   /* dst_mask */
+	 FALSE),		   /* pcrel_offset */
+
+  HOWTO (R_CR16_GLOB_DAT,	   /* type */
+	 0,			   /* rightshift */
+	 2,			   /* size (0 = byte, 1 = short, 2 = long) */
+	 32,			   /* bitsize */
+	 FALSE,			   /* pc_relative */
+	 0,			   /* bitpos */
+	 complain_overflow_unsigned, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	   /* special_function */
+	 "R_CR16_GLOB_DAT",	   /* name */
+	 FALSE,			   /* partial_inplace */
+	 0x0,			   /* src_mask */
+	 0xffffffff,		   /* dst_mask */
+	 TRUE)			   /* pcrel_offset */
 };
 
 
@@ -605,7 +605,7 @@ _bfd_cr16_elf_create_got_section (bfd * 
     }
 
   flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
-           | SEC_LINKER_CREATED);
+	   | SEC_LINKER_CREATED);
 
   s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
   htab->sgot= s;
@@ -618,8 +618,8 @@ _bfd_cr16_elf_create_got_section (bfd * 
       s = bfd_make_section_anyway_with_flags (abfd, ".got.plt", flags);
       htab->sgotplt = s;
       if (s == NULL
-          || ! bfd_set_section_alignment (abfd, s, ptralign))
-        return FALSE;
+	  || ! bfd_set_section_alignment (abfd, s, ptralign))
+	return FALSE;
     }
 
   /* Define the symbol _GLOBAL_OFFSET_TABLE_ at the start of the .got
@@ -642,7 +642,7 @@ _bfd_cr16_elf_create_got_section (bfd * 
 
 static reloc_howto_type *
 elf_cr16_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                            bfd_reloc_code_real_type code)
+			    bfd_reloc_code_real_type code)
 {
   unsigned int i;
 
@@ -656,13 +656,13 @@ elf_cr16_reloc_type_lookup (bfd *abfd AT
 
 static reloc_howto_type *
 elf_cr16_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                            const char *r_name)
+			    const char *r_name)
 {
   unsigned int i;
 
   for (i = 0; ARRAY_SIZE (cr16_elf_howto_table); i++)
     if (cr16_elf_howto_table[i].name != NULL
-        && strcasecmp (cr16_elf_howto_table[i].name, r_name) == 0)
+	&& strcasecmp (cr16_elf_howto_table[i].name, r_name) == 0)
       return cr16_elf_howto_table + i;
 
   return NULL;
@@ -672,7 +672,7 @@ elf_cr16_reloc_name_lookup (bfd *abfd AT
 
 static void
 elf_cr16_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *cache_ptr,
-                        Elf_Internal_Rela *dst)
+			Elf_Internal_Rela *dst)
 {
   unsigned int r_type = ELF32_R_TYPE (dst->r_info);
 
@@ -693,7 +693,7 @@ elf_cr16_info_to_howto (bfd *abfd ATTRIB
 
 static bfd_boolean
 cr16_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
-                       const Elf_Internal_Rela *relocs)
+		       const Elf_Internal_Rela *relocs)
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Sym * isymbuf = NULL;
@@ -728,101 +728,97 @@ cr16_elf_check_relocs (bfd *abfd, struct
 
       r_symndx = ELF32_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
-        {
-          h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-          while (h->root.type == bfd_link_hash_indirect
-                 || h->root.type == bfd_link_hash_warning)
-            h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
-        }
+	{
+	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
+	  while (h->root.type == bfd_link_hash_indirect
+		 || h->root.type == bfd_link_hash_warning)
+	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
+	}
 
       /* Some relocs require a global offset table.  */
       if (dynobj == NULL)
-        {
-          switch (ELF32_R_TYPE (rel->r_info))
-            {
-            case R_CR16_GOT_REGREL20:
-            case R_CR16_GOTC_REGREL20:
-              elf_hash_table (info)->dynobj = dynobj = abfd;
-              if (! _bfd_cr16_elf_create_got_section (dynobj, info))
-                goto fail;
-              break;
-
-            default:
-              break;
-            }
-        }
+	{
+	  switch (ELF32_R_TYPE (rel->r_info))
+	    {
+	    case R_CR16_GOT_REGREL20:
+	    case R_CR16_GOTC_REGREL20:
+	      elf_hash_table (info)->dynobj = dynobj = abfd;
+	      if (! _bfd_cr16_elf_create_got_section (dynobj, info))
+		goto fail;
+	      break;
+
+	    default:
+	      break;
+	    }
+	}
 
       switch (ELF32_R_TYPE (rel->r_info))
-        {
-        case R_CR16_GOT_REGREL20:
-        case R_CR16_GOTC_REGREL20:
-          /* This symbol requires a global offset table entry.  */
+	{
+	case R_CR16_GOT_REGREL20:
+	case R_CR16_GOTC_REGREL20:
+	  /* This symbol requires a global offset table entry.  */
 
 	  sgot = elf_hash_table (info)->sgot;
 	  srelgot = elf_hash_table (info)->srelgot;
 	  BFD_ASSERT (sgot != NULL && srelgot != NULL);
 
-          if (h != NULL)
-            {
-              if (h->got.offset != (bfd_vma) -1)
-                /* We have already allocated space in the .got.  */
-                break;
-
-              h->got.offset = sgot->size;
-
-              /* Make sure this symbol is output as a dynamic symbol.  */
-              if (h->dynindx == -1)
-                {
-                  if (! bfd_elf_link_record_dynamic_symbol (info, h))
-                    goto fail;
-                }
-
-              srelgot->size += sizeof (Elf32_External_Rela);
-            }
-          else
-            {
-              /* This is a global offset table entry for a local
-                 symbol.  */
-              if (local_got_offsets == NULL)
-                {
-                  size_t       size;
-                  unsigned int i;
-
-                  size = symtab_hdr->sh_info * sizeof (bfd_vma);
-                  local_got_offsets = (bfd_vma *) bfd_alloc (abfd, size);
-
-                  if (local_got_offsets == NULL)
-                    goto fail;
-
-                  elf_local_got_offsets (abfd) = local_got_offsets;
-
-                  for (i = 0; i < symtab_hdr->sh_info; i++)
-                    local_got_offsets[i] = (bfd_vma) -1;
-                }
-
-              if (local_got_offsets[r_symndx] != (bfd_vma) -1)
-                /* We have already allocated space in the .got.  */
-                break;
-
-              local_got_offsets[r_symndx] = sgot->size;
-
-              if (bfd_link_executable (info))
-                /* If we are generating a shared object, we need to
-                   output a R_CR16_RELATIVE reloc so that the dynamic
-                   linker can adjust this GOT entry.  */
-                srelgot->size += sizeof (Elf32_External_Rela);
-            }
+	  if (h != NULL)
+	    {
+	      if (h->got.offset != (bfd_vma) -1)
+		/* We have already allocated space in the .got.  */
+		break;
+
+	      h->got.offset = sgot->size;
+
+	      /* Make sure this symbol is output as a dynamic symbol.  */
+	      if (h->dynindx == -1)
+		{
+		  if (! bfd_elf_link_record_dynamic_symbol (info, h))
+		    goto fail;
+		}
+
+	      srelgot->size += sizeof (Elf32_External_Rela);
+	    }
+	  else
+	    {
+	      /* This is a global offset table entry for a local
+		 symbol.  */
+	      if (local_got_offsets == NULL)
+		{
+		  size_t       size;
+		  unsigned int i;
+
+		  size = symtab_hdr->sh_info * sizeof (bfd_vma);
+		  local_got_offsets = (bfd_vma *) bfd_alloc (abfd, size);
+
+		  if (local_got_offsets == NULL)
+		    goto fail;
+
+		  elf_local_got_offsets (abfd) = local_got_offsets;
+
+		  for (i = 0; i < symtab_hdr->sh_info; i++)
+		    local_got_offsets[i] = (bfd_vma) -1;
+		}
+
+	      if (local_got_offsets[r_symndx] != (bfd_vma) -1)
+		/* We have already allocated space in the .got.  */
+		break;
+
+	      local_got_offsets[r_symndx] = sgot->size;
+
+	      if (bfd_link_executable (info))
+		/* If we are generating a shared object, we need to
+		   output a R_CR16_RELATIVE reloc so that the dynamic
+		   linker can adjust this GOT entry.  */
+		srelgot->size += sizeof (Elf32_External_Rela);
+	    }
 
-          sgot->size += 4;
-          break;
+	  sgot->size += 4;
+	  break;
 
-        }
+	}
     }
 
    result = TRUE;
@@ -837,18 +833,18 @@ cr16_elf_check_relocs (bfd *abfd, struct
 
 static bfd_reloc_status_type
 cr16_elf_final_link_relocate (reloc_howto_type *howto,
-                              bfd *input_bfd,
-                              bfd *output_bfd ATTRIBUTE_UNUSED,
-                              asection *input_section,
-                              bfd_byte *contents,
-                              bfd_vma offset,
-                              bfd_vma Rvalue,
-                              bfd_vma addend,
-                              struct elf_link_hash_entry * h,
-                              unsigned long symndx  ATTRIBUTE_UNUSED,
-                              struct bfd_link_info *info ATTRIBUTE_UNUSED,
-                              asection *sec ATTRIBUTE_UNUSED,
-                              int is_local ATTRIBUTE_UNUSED)
+			      bfd *input_bfd,
+			      bfd *output_bfd ATTRIBUTE_UNUSED,
+			      asection *input_section,
+			      bfd_byte *contents,
+			      bfd_vma offset,
+			      bfd_vma Rvalue,
+			      bfd_vma addend,
+			      struct elf_link_hash_entry * h,
+			      unsigned long symndx  ATTRIBUTE_UNUSED,
+			      struct bfd_link_info *info ATTRIBUTE_UNUSED,
+			      asection *sec ATTRIBUTE_UNUSED,
+			      int is_local ATTRIBUTE_UNUSED)
 {
   unsigned short r_type = howto->type;
   bfd_byte *hit_data = contents + offset;
@@ -878,7 +874,7 @@ cr16_elf_final_link_relocate (reloc_howt
      case R_CR16_DISP16:
      case R_CR16_DISP24:
        /* 'hit_data' is relative to the start of the instruction, not the
-           relocation offset. Advance it to account for the exact offset.  */
+	   relocation offset. Advance it to account for the exact offset.  */
        hit_data += 2;
        break;
 
@@ -888,20 +884,20 @@ cr16_elf_final_link_relocate (reloc_howt
 
      case R_CR16_DISP4:
        if (is_local)
-        Rvalue += -1;
+	Rvalue += -1;
        break;
 
      case R_CR16_DISP8:
      case R_CR16_DISP24a:
        if (is_local)
-        Rvalue -= -1;
+	Rvalue -= -1;
        break;
 
      case R_CR16_SWITCH8:
      case R_CR16_SWITCH16:
      case R_CR16_SWITCH32:
        /* We only care about the addend, where the difference between
-          expressions is kept.  */
+	  expressions is kept.  */
        Rvalue = 0;
 
      default:
@@ -912,7 +908,7 @@ cr16_elf_final_link_relocate (reloc_howt
     {
       /* Subtract the address of the section containing the location.  */
       Rvalue -= (input_section->output_section->vma
-                 + input_section->output_offset);
+		 + input_section->output_offset);
       /* Subtract the position of the location within the section.  */
       Rvalue -= offset;
     }
@@ -934,25 +930,25 @@ cr16_elf_final_link_relocate (reloc_howt
       || (r_type == R_CR16_GOTC_REGREL20)))
     {
       if (((bfd_vma) check & ~reloc_bits) != 0
-          && (((bfd_vma) check & ~reloc_bits)
-          != (-(bfd_vma) 1 & ~reloc_bits)))
-        {
-          /* The above right shift is incorrect for a signed
-             value.  See if turning on the upper bits fixes the
-             overflow.  */
-          if (howto->rightshift && (bfd_signed_vma) Rvalue < 0)
-            {
-              check |= ((bfd_vma) - 1
-                        & ~((bfd_vma) - 1
-                         >> howto->rightshift));
-
-              if (((bfd_vma) check & ~reloc_bits)
-                  != (-(bfd_vma) 1 & ~reloc_bits))
-                 return bfd_reloc_overflow;
-            }
-          else
-            return bfd_reloc_overflow;
-        }
+	  && (((bfd_vma) check & ~reloc_bits)
+	  != (-(bfd_vma) 1 & ~reloc_bits)))
+	{
+	  /* The above right shift is incorrect for a signed
+	     value.  See if turning on the upper bits fixes the
+	     overflow.  */
+	  if (howto->rightshift && (bfd_signed_vma) Rvalue < 0)
+	    {
+	      check |= ((bfd_vma) - 1
+			& ~((bfd_vma) - 1
+			 >> howto->rightshift));
+
+	      if (((bfd_vma) check & ~reloc_bits)
+		  != (-(bfd_vma) 1 & ~reloc_bits))
+		 return bfd_reloc_overflow;
+	    }
+	  else
+	    return bfd_reloc_overflow;
+	}
 
       /* Drop unwanted bits from the value we are relocating to.  */
       Rvalue >>= (bfd_vma) howto->rightshift;
@@ -964,275 +960,275 @@ cr16_elf_final_link_relocate (reloc_howt
   switch (howto->size)
     {
       case 0:
-        if (r_type == R_CR16_DISP8)
-          {
-             Rvalue1 = bfd_get_16 (input_bfd, hit_data);
-             Rvalue = ((Rvalue1 & 0xf000) | ((Rvalue << 4) & 0xf00)
-                       | (Rvalue1 & 0x00f0) | (Rvalue & 0xf));
-             bfd_put_16 (input_bfd, Rvalue, hit_data);
-          }
-        else if (r_type == R_CR16_IMM4)
-          {
-             Rvalue1 = bfd_get_16 (input_bfd, hit_data);
-             Rvalue = (((Rvalue1 & 0xff) << 8) | ((Rvalue << 4) & 0xf0)
-                       | ((Rvalue1 & 0x0f00) >> 8));
-             bfd_put_16 (input_bfd, Rvalue, hit_data);
-          }
-        else if (r_type == R_CR16_DISP4)
-          {
-             Rvalue1 = bfd_get_16 (input_bfd, hit_data);
-             Rvalue = (Rvalue1 | ((Rvalue & 0xf) << 4));
-             bfd_put_16 (input_bfd, Rvalue, hit_data);
-          }
-        else
-          {
-             bfd_put_8 (input_bfd, (unsigned char) Rvalue, hit_data);
-          }
-        break;
+	if (r_type == R_CR16_DISP8)
+	  {
+	     Rvalue1 = bfd_get_16 (input_bfd, hit_data);
+	     Rvalue = ((Rvalue1 & 0xf000) | ((Rvalue << 4) & 0xf00)
+		       | (Rvalue1 & 0x00f0) | (Rvalue & 0xf));
+	     bfd_put_16 (input_bfd, Rvalue, hit_data);
+	  }
+	else if (r_type == R_CR16_IMM4)
+	  {
+	     Rvalue1 = bfd_get_16 (input_bfd, hit_data);
+	     Rvalue = (((Rvalue1 & 0xff) << 8) | ((Rvalue << 4) & 0xf0)
+		       | ((Rvalue1 & 0x0f00) >> 8));
+	     bfd_put_16 (input_bfd, Rvalue, hit_data);
+	  }
+	else if (r_type == R_CR16_DISP4)
+	  {
+	     Rvalue1 = bfd_get_16 (input_bfd, hit_data);
+	     Rvalue = (Rvalue1 | ((Rvalue & 0xf) << 4));
+	     bfd_put_16 (input_bfd, Rvalue, hit_data);
+	  }
+	else
+	  {
+	     bfd_put_8 (input_bfd, (unsigned char) Rvalue, hit_data);
+	  }
+	break;
 
       case 1:
-        if (r_type == R_CR16_DISP16)
-          {
-            Rvalue |= (bfd_get_16 (input_bfd, hit_data));
-            Rvalue = ((Rvalue & 0xfffe) | ((Rvalue >> 16) & 0x1));
-          }
-        if (r_type == R_CR16_IMM16)
-          {
-            Rvalue1 = bfd_get_16 (input_bfd, hit_data);
-
-            /* Add or subtract the offset value.  */
-            if (Rvalue1 & 0x8000)
-              Rvalue -= (~Rvalue1 + 1) & 0xffff;
-            else
-              Rvalue += Rvalue1;
-
-             /* Check for range.  */
-             if ((long) Rvalue > 0xffff || (long) Rvalue < 0x0)
-              return bfd_reloc_overflow;
-          }
+	if (r_type == R_CR16_DISP16)
+	  {
+	    Rvalue |= (bfd_get_16 (input_bfd, hit_data));
+	    Rvalue = ((Rvalue & 0xfffe) | ((Rvalue >> 16) & 0x1));
+	  }
+	if (r_type == R_CR16_IMM16)
+	  {
+	    Rvalue1 = bfd_get_16 (input_bfd, hit_data);
+
+	    /* Add or subtract the offset value.  */
+	    if (Rvalue1 & 0x8000)
+	      Rvalue -= (~Rvalue1 + 1) & 0xffff;
+	    else
+	      Rvalue += Rvalue1;
+
+	     /* Check for range.  */
+	     if ((long) Rvalue > 0xffff || (long) Rvalue < 0x0)
+	      return bfd_reloc_overflow;
+	  }
 
-        bfd_put_16 (input_bfd, Rvalue, hit_data);
-        break;
+	bfd_put_16 (input_bfd, Rvalue, hit_data);
+	break;
 
       case 2:
-        if ((r_type == R_CR16_ABS20) || (r_type == R_CR16_IMM20))
-          {
-             Rvalue1 = (bfd_get_16 (input_bfd, hit_data + 2)
-                        | (((bfd_get_16 (input_bfd, hit_data) & 0xf) <<16)));
-
-             /* Add or subtract the offset value.  */
-             if (Rvalue1 & 0x80000)
-                Rvalue -= (~Rvalue1 + 1) & 0xfffff;
-              else
-                Rvalue += Rvalue1;
-
-              /* Check for range.  */
-              if ((long) Rvalue > 0xfffff || (long) Rvalue < 0x0)
-               return bfd_reloc_overflow;
-
-            bfd_put_16 (input_bfd, ((bfd_get_16 (input_bfd, hit_data) & 0xfff0)
-                        | ((Rvalue >> 16) & 0xf)), hit_data);
-            bfd_put_16 (input_bfd, (Rvalue) & 0xffff, hit_data + 2);
-          }
-        else if (r_type == R_CR16_GOT_REGREL20)
-          {
-            asection *sgot = elf_hash_table (info)->sgot;
-
-            if (h != NULL)
-              {
-                bfd_vma off;
-
-                off = h->got.offset;
-                BFD_ASSERT (off != (bfd_vma) -1);
-
-                if (! elf_hash_table (info)->dynamic_sections_created
-                     || SYMBOL_REFERENCES_LOCAL (info, h))
-                    /* This is actually a static link, or it is a
-                       -Bsymbolic link and the symbol is defined
-                       locally, or the symbol was forced to be local
-                       because of a version file.  We must initialize
-                       this entry in the global offset table.
-                       When doing a dynamic link, we create a .rela.got
-                       relocation entry to initialize the value.  This
-                       is done in the finish_dynamic_symbol routine.  */
-                  bfd_put_32 (output_bfd, Rvalue, sgot->contents + off);
-
-                  Rvalue = sgot->output_offset + off;
-                }
-              else
-                {
-                   bfd_vma off;
-
-                   off = elf_local_got_offsets (input_bfd)[symndx];
-                   bfd_put_32 (output_bfd,Rvalue, sgot->contents + off);
-
-                   Rvalue = sgot->output_offset + off;
-                }
-
-             Rvalue += addend;
-
-             /* REVISIT: if ((long) Rvalue > 0xffffff ||
-                                    (long) Rvalue < -0x800000).  */
-             if ((long) Rvalue > 0xffffff || (long) Rvalue < 0)
-               return bfd_reloc_overflow;
-
-
-             bfd_put_16 (input_bfd, (bfd_get_16 (input_bfd, hit_data))
-                         | (((Rvalue >> 16) & 0xf) << 8), hit_data);
-             bfd_put_16 (input_bfd, (Rvalue) & 0xffff, hit_data + 2);
-
-          }
-        else if (r_type == R_CR16_GOTC_REGREL20)
-          {
-             asection *sgot = elf_hash_table (info)->sgot;
-
-             if (h != NULL)
-               {
-                 bfd_vma off;
-
-                 off = h->got.offset;
-                 BFD_ASSERT (off != (bfd_vma) -1);
-
-                  Rvalue >>=1; /* For code symbols.  */
-
-                 if (! elf_hash_table (info)->dynamic_sections_created
-                      || SYMBOL_REFERENCES_LOCAL (info, h))
-                 /* This is actually a static link, or it is a
-                    -Bsymbolic link and the symbol is defined
-                     locally, or the symbol was forced to be local
-                     because of a version file.  We must initialize
-                     this entry in the global offset table.
-                     When doing a dynamic link, we create a .rela.got
-                     relocation entry to initialize the value.  This
-                     is done in the finish_dynamic_symbol routine.  */
-                  bfd_put_32 (output_bfd, Rvalue, sgot->contents + off);
-
-                  Rvalue = sgot->output_offset + off;
-               }
-             else
-               {
-                  bfd_vma off;
-
-                  off = elf_local_got_offsets (input_bfd)[symndx];
-                  Rvalue >>= 1;
-                  bfd_put_32 (output_bfd,Rvalue, sgot->contents + off);
-                  Rvalue = sgot->output_offset + off;
-               }
-
-             Rvalue += addend;
-
-             /* Check if any value in DISP.  */
-             Rvalue1 =((bfd_get_32 (input_bfd, hit_data) >>16)
-                       | (((bfd_get_32 (input_bfd, hit_data) & 0xfff) >> 8) <<16));
-
-             /* Add or subtract the offset value.  */
-             if (Rvalue1 & 0x80000)
-               Rvalue -= (~Rvalue1 + 1) & 0xfffff;
-             else
-               Rvalue += Rvalue1;
-
-              /* Check for range.  */
-             /* REVISIT: if ((long) Rvalue > 0xffffff
-                             || (long) Rvalue < -0x800000).  */
-             if ((long) Rvalue > 0xffffff || (long) Rvalue < 0)
-               return bfd_reloc_overflow;
-
-             bfd_put_16 (input_bfd, (bfd_get_16 (input_bfd, hit_data))
-                         | (((Rvalue >> 16) & 0xf) << 8), hit_data);
-             bfd_put_16 (input_bfd, (Rvalue) & 0xffff, hit_data + 2);
-          }
-        else
-          {
-             if (r_type == R_CR16_ABS24)
-               {
-                  Rvalue1 = ((bfd_get_32 (input_bfd, hit_data) >> 16)
-                             | (((bfd_get_32 (input_bfd, hit_data) & 0xfff) >> 8) <<16)
-                             | (((bfd_get_32 (input_bfd, hit_data) & 0xf) <<20)));
-
-                  /* Add or subtract the offset value.  */
-                  if (Rvalue1 & 0x800000)
-                    Rvalue -= (~Rvalue1 + 1) & 0xffffff;
-                  else
-                    Rvalue += Rvalue1;
-
-                 /* Check for Range.  */
-                 if ((long) Rvalue > 0xffffff || (long) Rvalue < 0x0)
-                   return bfd_reloc_overflow;
-
-                 Rvalue = ((((Rvalue >> 20) & 0xf) | (((Rvalue >> 16) & 0xf)<<8)
-                           | (bfd_get_32 (input_bfd, hit_data) & 0xf0f0))
-                           | ((Rvalue & 0xffff) << 16));
-               }
-             else if (r_type == R_CR16_DISP24)
-               {
-                  Rvalue = ((((Rvalue >> 20)& 0xf) | (((Rvalue >>16) & 0xf)<<8)
-                            | (bfd_get_16 (input_bfd, hit_data)))
-                            | (((Rvalue & 0xfffe) | ((Rvalue >> 24) & 0x1)) << 16));
-               }
-             else if ((r_type == R_CR16_IMM32) || (r_type == R_CR16_IMM32a))
-               {
-                  Rvalue1 =((((bfd_get_32 (input_bfd, hit_data)) >> 16) &0xffff)
-                            | (((bfd_get_32 (input_bfd, hit_data)) &0xffff)) << 16);
-
-                 /* Add or subtract the offset value.  */
-                 if (Rvalue1 & 0x80000000)
-                   Rvalue -= (~Rvalue1 + 1) & 0xffffffff;
-                 else
-                   Rvalue += Rvalue1;
-
-                 /* Check for range.  */
-                 if (Rvalue > 0xffffffff || (long) Rvalue < 0x0)
-                   return bfd_reloc_overflow;
-
-                 Rvalue = (((Rvalue >> 16)& 0xffff) | (Rvalue & 0xffff) << 16);
-               }
-             else if (r_type == R_CR16_DISP24a)
-               {
-                  Rvalue = (((Rvalue & 0xfffffe) | (Rvalue >> 23)));
-                  Rvalue = ((Rvalue >> 16) & 0xff) | ((Rvalue & 0xffff) << 16)
-                            | (bfd_get_32 (input_bfd, hit_data));
-               }
-             else if ((r_type == R_CR16_REGREL20)
-                      || (r_type == R_CR16_REGREL20a))
-               {
-                  Rvalue1 = ((bfd_get_32 (input_bfd, hit_data) >> 16)
-                             | (((bfd_get_32 (input_bfd, hit_data) & 0xfff) >> 8) <<16));
-                  /* Add or subtract the offset value.  */
-                  if (Rvalue1 & 0x80000)
-                     Rvalue -= (~Rvalue1 + 1) & 0xfffff;
-                  else
-                     Rvalue += Rvalue1;
-
-                  /* Check for range.  */
-                  if ((long) Rvalue > 0xfffff || (long) Rvalue < 0x0)
-                    return bfd_reloc_overflow;
-
-                  Rvalue = (((((Rvalue >> 20)& 0xf) | (((Rvalue >>16) & 0xf)<<8)
-                            | ((Rvalue & 0xffff) << 16)))
-                            | (bfd_get_32 (input_bfd, hit_data) & 0xf0ff));
-
-              }
-            else if (r_type == R_CR16_NUM32)
-              {
-                 Rvalue1 = (bfd_get_32 (input_bfd, hit_data));
-
-                 /* Add or subtract the offset value */
-                 if (Rvalue1 & 0x80000000)
-                   Rvalue -= (~Rvalue1 + 1) & 0xffffffff;
-                 else
-                   Rvalue += Rvalue1;
-
-                /* Check for Ranga */
-                if (Rvalue > 0xffffffff)
-                  return bfd_reloc_overflow;
-              }
-
-            bfd_put_32 (input_bfd, Rvalue, hit_data);
-          }
-        break;
+	if ((r_type == R_CR16_ABS20) || (r_type == R_CR16_IMM20))
+	  {
+	     Rvalue1 = (bfd_get_16 (input_bfd, hit_data + 2)
+			| (((bfd_get_16 (input_bfd, hit_data) & 0xf) <<16)));
+
+	     /* Add or subtract the offset value.  */
+	     if (Rvalue1 & 0x80000)
+		Rvalue -= (~Rvalue1 + 1) & 0xfffff;
+	      else
+		Rvalue += Rvalue1;
+
+	      /* Check for range.  */
+	      if ((long) Rvalue > 0xfffff || (long) Rvalue < 0x0)
+	       return bfd_reloc_overflow;
+
+	    bfd_put_16 (input_bfd, ((bfd_get_16 (input_bfd, hit_data) & 0xfff0)
+			| ((Rvalue >> 16) & 0xf)), hit_data);
+	    bfd_put_16 (input_bfd, (Rvalue) & 0xffff, hit_data + 2);
+	  }
+	else if (r_type == R_CR16_GOT_REGREL20)
+	  {
+	    asection *sgot = elf_hash_table (info)->sgot;
+
+	    if (h != NULL)
+	      {
+		bfd_vma off;
+
+		off = h->got.offset;
+		BFD_ASSERT (off != (bfd_vma) -1);
+
+		if (! elf_hash_table (info)->dynamic_sections_created
+		     || SYMBOL_REFERENCES_LOCAL (info, h))
+		    /* This is actually a static link, or it is a
+		       -Bsymbolic link and the symbol is defined
+		       locally, or the symbol was forced to be local
+		       because of a version file.  We must initialize
+		       this entry in the global offset table.
+		       When doing a dynamic link, we create a .rela.got
+		       relocation entry to initialize the value.  This
+		       is done in the finish_dynamic_symbol routine.  */
+		  bfd_put_32 (output_bfd, Rvalue, sgot->contents + off);
+
+		  Rvalue = sgot->output_offset + off;
+		}
+	      else
+		{
+		   bfd_vma off;
+
+		   off = elf_local_got_offsets (input_bfd)[symndx];
+		   bfd_put_32 (output_bfd,Rvalue, sgot->contents + off);
+
+		   Rvalue = sgot->output_offset + off;
+		}
+
+	     Rvalue += addend;
+
+	     /* REVISIT: if ((long) Rvalue > 0xffffff ||
+				    (long) Rvalue < -0x800000).  */
+	     if ((long) Rvalue > 0xffffff || (long) Rvalue < 0)
+	       return bfd_reloc_overflow;
+
+
+	     bfd_put_16 (input_bfd, (bfd_get_16 (input_bfd, hit_data))
+			 | (((Rvalue >> 16) & 0xf) << 8), hit_data);
+	     bfd_put_16 (input_bfd, (Rvalue) & 0xffff, hit_data + 2);
+
+	  }
+	else if (r_type == R_CR16_GOTC_REGREL20)
+	  {
+	     asection *sgot = elf_hash_table (info)->sgot;
+
+	     if (h != NULL)
+	       {
+		 bfd_vma off;
+
+		 off = h->got.offset;
+		 BFD_ASSERT (off != (bfd_vma) -1);
+
+		  Rvalue >>=1; /* For code symbols.  */
+
+		 if (! elf_hash_table (info)->dynamic_sections_created
+		      || SYMBOL_REFERENCES_LOCAL (info, h))
+		 /* This is actually a static link, or it is a
+		    -Bsymbolic link and the symbol is defined
+		     locally, or the symbol was forced to be local
+		     because of a version file.  We must initialize
+		     this entry in the global offset table.
+		     When doing a dynamic link, we create a .rela.got
+		     relocation entry to initialize the value.  This
+		     is done in the finish_dynamic_symbol routine.  */
+		  bfd_put_32 (output_bfd, Rvalue, sgot->contents + off);
+
+		  Rvalue = sgot->output_offset + off;
+	       }
+	     else
+	       {
+		  bfd_vma off;
+
+		  off = elf_local_got_offsets (input_bfd)[symndx];
+		  Rvalue >>= 1;
+		  bfd_put_32 (output_bfd,Rvalue, sgot->contents + off);
+		  Rvalue = sgot->output_offset + off;
+	       }
+
+	     Rvalue += addend;
+
+	     /* Check if any value in DISP.  */
+	     Rvalue1 =((bfd_get_32 (input_bfd, hit_data) >>16)
+		       | (((bfd_get_32 (input_bfd, hit_data) & 0xfff) >> 8) <<16));
+
+	     /* Add or subtract the offset value.  */
+	     if (Rvalue1 & 0x80000)
+	       Rvalue -= (~Rvalue1 + 1) & 0xfffff;
+	     else
+	       Rvalue += Rvalue1;
+
+	      /* Check for range.  */
+	     /* REVISIT: if ((long) Rvalue > 0xffffff
+			     || (long) Rvalue < -0x800000).  */
+	     if ((long) Rvalue > 0xffffff || (long) Rvalue < 0)
+	       return bfd_reloc_overflow;
+
+	     bfd_put_16 (input_bfd, (bfd_get_16 (input_bfd, hit_data))
+			 | (((Rvalue >> 16) & 0xf) << 8), hit_data);
+	     bfd_put_16 (input_bfd, (Rvalue) & 0xffff, hit_data + 2);
+	  }
+	else
+	  {
+	     if (r_type == R_CR16_ABS24)
+	       {
+		  Rvalue1 = ((bfd_get_32 (input_bfd, hit_data) >> 16)
+			     | (((bfd_get_32 (input_bfd, hit_data) & 0xfff) >> 8) <<16)
+			     | (((bfd_get_32 (input_bfd, hit_data) & 0xf) <<20)));
+
+		  /* Add or subtract the offset value.  */
+		  if (Rvalue1 & 0x800000)
+		    Rvalue -= (~Rvalue1 + 1) & 0xffffff;
+		  else
+		    Rvalue += Rvalue1;
+
+		 /* Check for Range.  */
+		 if ((long) Rvalue > 0xffffff || (long) Rvalue < 0x0)
+		   return bfd_reloc_overflow;
+
+		 Rvalue = ((((Rvalue >> 20) & 0xf) | (((Rvalue >> 16) & 0xf)<<8)
+			   | (bfd_get_32 (input_bfd, hit_data) & 0xf0f0))
+			   | ((Rvalue & 0xffff) << 16));
+	       }
+	     else if (r_type == R_CR16_DISP24)
+	       {
+		  Rvalue = ((((Rvalue >> 20)& 0xf) | (((Rvalue >>16) & 0xf)<<8)
+			    | (bfd_get_16 (input_bfd, hit_data)))
+			    | (((Rvalue & 0xfffe) | ((Rvalue >> 24) & 0x1)) << 16));
+	       }
+	     else if ((r_type == R_CR16_IMM32) || (r_type == R_CR16_IMM32a))
+	       {
+		  Rvalue1 =((((bfd_get_32 (input_bfd, hit_data)) >> 16) &0xffff)
+			    | (((bfd_get_32 (input_bfd, hit_data)) &0xffff)) << 16);
+
+		 /* Add or subtract the offset value.  */
+		 if (Rvalue1 & 0x80000000)
+		   Rvalue -= (~Rvalue1 + 1) & 0xffffffff;
+		 else
+		   Rvalue += Rvalue1;
+
+		 /* Check for range.  */
+		 if (Rvalue > 0xffffffff || (long) Rvalue < 0x0)
+		   return bfd_reloc_overflow;
+
+		 Rvalue = (((Rvalue >> 16)& 0xffff) | (Rvalue & 0xffff) << 16);
+	       }
+	     else if (r_type == R_CR16_DISP24a)
+	       {
+		  Rvalue = (((Rvalue & 0xfffffe) | (Rvalue >> 23)));
+		  Rvalue = ((Rvalue >> 16) & 0xff) | ((Rvalue & 0xffff) << 16)
+			    | (bfd_get_32 (input_bfd, hit_data));
+	       }
+	     else if ((r_type == R_CR16_REGREL20)
+		      || (r_type == R_CR16_REGREL20a))
+	       {
+		  Rvalue1 = ((bfd_get_32 (input_bfd, hit_data) >> 16)
+			     | (((bfd_get_32 (input_bfd, hit_data) & 0xfff) >> 8) <<16));
+		  /* Add or subtract the offset value.  */
+		  if (Rvalue1 & 0x80000)
+		     Rvalue -= (~Rvalue1 + 1) & 0xfffff;
+		  else
+		     Rvalue += Rvalue1;
+
+		  /* Check for range.  */
+		  if ((long) Rvalue > 0xfffff || (long) Rvalue < 0x0)
+		    return bfd_reloc_overflow;
+
+		  Rvalue = (((((Rvalue >> 20)& 0xf) | (((Rvalue >>16) & 0xf)<<8)
+			    | ((Rvalue & 0xffff) << 16)))
+			    | (bfd_get_32 (input_bfd, hit_data) & 0xf0ff));
+
+	      }
+	    else if (r_type == R_CR16_NUM32)
+	      {
+		 Rvalue1 = (bfd_get_32 (input_bfd, hit_data));
+
+		 /* Add or subtract the offset value */
+		 if (Rvalue1 & 0x80000000)
+		   Rvalue -= (~Rvalue1 + 1) & 0xffffffff;
+		 else
+		   Rvalue += Rvalue1;
+
+		/* Check for Ranga */
+		if (Rvalue > 0xffffffff)
+		  return bfd_reloc_overflow;
+	      }
+
+	    bfd_put_32 (input_bfd, Rvalue, hit_data);
+	  }
+	break;
 
       default:
-        return bfd_reloc_notsupported;
+	return bfd_reloc_notsupported;
     }
 
   return bfd_reloc_ok;
@@ -1242,7 +1238,7 @@ cr16_elf_final_link_relocate (reloc_howt
 
 static bfd_boolean
 elf32_cr16_relax_delete_bytes (struct bfd_link_info *link_info, bfd *abfd,
-                               asection *sec, bfd_vma addr, int count)
+			       asection *sec, bfd_vma addr, int count)
 {
   Elf_Internal_Shdr *symtab_hdr;
   unsigned int sec_shndx;
@@ -1267,14 +1263,14 @@ elf32_cr16_relax_delete_bytes (struct bf
 
   /* Actually delete the bytes.  */
   memmove (contents + addr, contents + addr + count,
-           (size_t) (toaddr - addr - count));
+	   (size_t) (toaddr - addr - count));
   sec->size -= count;
 
   /* Adjust all the relocs.  */
   for (irel = elf_section_data (sec)->relocs; irel < irelend; irel++)
     /* Get the new reloc address.  */
     if ((irel->r_offset > addr && irel->r_offset < toaddr))
-        irel->r_offset -= count;
+	irel->r_offset -= count;
 
   /* Adjust the local symbols defined in this section.  */
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -1282,49 +1278,49 @@ elf32_cr16_relax_delete_bytes (struct bf
   for (isymend = isym + symtab_hdr->sh_info; isym < isymend; isym++)
     {
       if (isym->st_shndx == sec_shndx
-          && isym->st_value > addr
-          && isym->st_value < toaddr)
-        {
-          /* Adjust the addend of SWITCH relocations in this section,
-             which reference this local symbol.  */
+	  && isym->st_value > addr
+	  && isym->st_value < toaddr)
+	{
+	  /* Adjust the addend of SWITCH relocations in this section,
+	     which reference this local symbol.  */
 #if 0
-          for (irel = elf_section_data (sec)->relocs; irel < irelend; irel++)
-            {
-              unsigned long r_symndx;
-              Elf_Internal_Sym *rsym;
-              bfd_vma addsym, subsym;
-
-              /* Skip if not a SWITCH relocation.  */
-              if (ELF32_R_TYPE (irel->r_info) != (int) R_CR16_SWITCH8
-                  && ELF32_R_TYPE (irel->r_info) != (int) R_CR16_SWITCH16
-                  && ELF32_R_TYPE (irel->r_info) != (int) R_CR16_SWITCH32)
-                 continue;
-
-              r_symndx = ELF32_R_SYM (irel->r_info);
-              rsym = (Elf_Internal_Sym *) symtab_hdr->contents + r_symndx;
-
-              /* Skip if not the local adjusted symbol.  */
-              if (rsym != isym)
-                continue;
-
-              addsym = isym->st_value;
-              subsym = addsym - irel->r_addend;
-
-              /* Fix the addend only when -->> (addsym > addr >= subsym).  */
-              if (subsym <= addr)
-                irel->r_addend -= count;
-              else
-                continue;
-            }
+	  for (irel = elf_section_data (sec)->relocs; irel < irelend; irel++)
+	    {
+	      unsigned long r_symndx;
+	      Elf_Internal_Sym *rsym;
+	      bfd_vma addsym, subsym;
+
+	      /* Skip if not a SWITCH relocation.  */
+	      if (ELF32_R_TYPE (irel->r_info) != (int) R_CR16_SWITCH8
+		  && ELF32_R_TYPE (irel->r_info) != (int) R_CR16_SWITCH16
+		  && ELF32_R_TYPE (irel->r_info) != (int) R_CR16_SWITCH32)
+		 continue;
+
+	      r_symndx = ELF32_R_SYM (irel->r_info);
+	      rsym = (Elf_Internal_Sym *) symtab_hdr->contents + r_symndx;
+
+	      /* Skip if not the local adjusted symbol.  */
+	      if (rsym != isym)
+		continue;
+
+	      addsym = isym->st_value;
+	      subsym = addsym - irel->r_addend;
+
+	      /* Fix the addend only when -->> (addsym > addr >= subsym).  */
+	      if (subsym <= addr)
+		irel->r_addend -= count;
+	      else
+		continue;
+	    }
 #endif
 
-          isym->st_value -= count;
-        }
+	  isym->st_value -= count;
+	}
     }
 
   /* Now adjust the global symbols defined in this section.  */
   symcount = (symtab_hdr->sh_size / sizeof (Elf32_External_Sym)
-               - symtab_hdr->sh_info);
+	       - symtab_hdr->sh_info);
   sym_hashes = start_hashes = elf_sym_hashes (abfd);
   end_hashes = sym_hashes + symcount;
 
@@ -1333,35 +1329,35 @@ elf32_cr16_relax_delete_bytes (struct bf
       struct elf_link_hash_entry *sym_hash = *sym_hashes;
 
       /* The '--wrap SYMBOL' option is causing a pain when the object file,
-         containing the definition of __wrap_SYMBOL, includes a direct
-         call to SYMBOL as well. Since both __wrap_SYMBOL and SYMBOL reference
-         the same symbol (which is __wrap_SYMBOL), but still exist as two
-         different symbols in 'sym_hashes', we don't want to adjust
-         the global symbol __wrap_SYMBOL twice.
-         This check is only relevant when symbols are being wrapped.  */
+	 containing the definition of __wrap_SYMBOL, includes a direct
+	 call to SYMBOL as well. Since both __wrap_SYMBOL and SYMBOL reference
+	 the same symbol (which is __wrap_SYMBOL), but still exist as two
+	 different symbols in 'sym_hashes', we don't want to adjust
+	 the global symbol __wrap_SYMBOL twice.
+	 This check is only relevant when symbols are being wrapped.  */
       if (link_info->wrap_hash != NULL)
-        {
-          struct elf_link_hash_entry **cur_sym_hashes;
+	{
+	  struct elf_link_hash_entry **cur_sym_hashes;
 
-          /* Loop only over the symbols whom been already checked.  */
-          for (cur_sym_hashes = start_hashes; cur_sym_hashes < sym_hashes;
-               cur_sym_hashes++)
-            /* If the current symbol is identical to 'sym_hash', that means
-               the symbol was already adjusted (or at least checked).  */
-            if (*cur_sym_hashes == sym_hash)
-              break;
-
-          /* Don't adjust the symbol again.  */
-          if (cur_sym_hashes < sym_hashes)
-            continue;
-        }
+	  /* Loop only over the symbols whom been already checked.  */
+	  for (cur_sym_hashes = start_hashes; cur_sym_hashes < sym_hashes;
+	       cur_sym_hashes++)
+	    /* If the current symbol is identical to 'sym_hash', that means
+	       the symbol was already adjusted (or at least checked).  */
+	    if (*cur_sym_hashes == sym_hash)
+	      break;
+
+	  /* Don't adjust the symbol again.  */
+	  if (cur_sym_hashes < sym_hashes)
+	    continue;
+	}
 
       if ((sym_hash->root.type == bfd_link_hash_defined
-          || sym_hash->root.type == bfd_link_hash_defweak)
-          && sym_hash->root.u.def.section == sec
-          && sym_hash->root.u.def.value > addr
-          && sym_hash->root.u.def.value < toaddr)
-        sym_hash->root.u.def.value -= count;
+	  || sym_hash->root.type == bfd_link_hash_defweak)
+	  && sym_hash->root.u.def.section == sec
+	  && sym_hash->root.u.def.value > addr
+	  && sym_hash->root.u.def.value < toaddr)
+	sym_hash->root.u.def.value -= count;
     }
 
   return TRUE;
@@ -1371,10 +1367,10 @@ elf32_cr16_relax_delete_bytes (struct bf
 
 static bfd_boolean
 elf32_cr16_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
-                             bfd *input_bfd, asection *input_section,
-                             bfd_byte *contents, Elf_Internal_Rela *relocs,
-                             Elf_Internal_Sym *local_syms,
-                             asection **local_sections)
+			     bfd *input_bfd, asection *input_section,
+			     bfd_byte *contents, Elf_Internal_Rela *relocs,
+			     Elf_Internal_Sym *local_syms,
+			     asection **local_sections)
 {
   Elf_Internal_Shdr *symtab_hdr;
   struct elf_link_hash_entry **sym_hashes;
@@ -1404,86 +1400,86 @@ elf32_cr16_relocate_section (bfd *output
       sym = NULL;
       sec = NULL;
       if (r_symndx < symtab_hdr->sh_info)
-        {
-          sym = local_syms + r_symndx;
-          sec = local_sections[r_symndx];
-          relocation = _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel);
-        }
+	{
+	  sym = local_syms + r_symndx;
+	  sec = local_sections[r_symndx];
+	  relocation = _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel);
+	}
       else
-        {
-          bfd_boolean unresolved_reloc, warned, ignored;
+	{
+	  bfd_boolean unresolved_reloc, warned, ignored;
 
-          RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
-                                   r_symndx, symtab_hdr, sym_hashes,
-                                   h, sec, relocation,
-                                   unresolved_reloc, warned, ignored);
-        }
+	  RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
+				   r_symndx, symtab_hdr, sym_hashes,
+				   h, sec, relocation,
+				   unresolved_reloc, warned, ignored);
+	}
 
       if (sec != NULL && discarded_section (sec))
 	RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
 					 rel, 1, relend, howto, 0, contents);
 
       if (bfd_link_relocatable (info))
-        continue;
+	continue;
 
       r = cr16_elf_final_link_relocate (howto, input_bfd, output_bfd,
-                                        input_section,
-                                        contents, rel->r_offset,
-                                        relocation, rel->r_addend,
-                                        (struct elf_link_hash_entry *) h,
-                                        r_symndx,
-                                        info, sec, h == NULL);
+					input_section,
+					contents, rel->r_offset,
+					relocation, rel->r_addend,
+					(struct elf_link_hash_entry *) h,
+					r_symndx,
+					info, sec, h == NULL);
 
       if (r != bfd_reloc_ok)
-        {
-          const char *name;
-          const char *msg = NULL;
-
-          if (h != NULL)
-            name = h->root.root.string;
-          else
-            {
-              name = (bfd_elf_string_from_elf_section
-                      (input_bfd, symtab_hdr->sh_link, sym->st_name));
-              if (name == NULL || *name == '\0')
-                name = bfd_section_name (input_bfd, sec);
-            }
-
-          switch (r)
-            {
-             case bfd_reloc_overflow:
+	{
+	  const char *name;
+	  const char *msg = NULL;
+
+	  if (h != NULL)
+	    name = h->root.root.string;
+	  else
+	    {
+	      name = (bfd_elf_string_from_elf_section
+		      (input_bfd, symtab_hdr->sh_link, sym->st_name));
+	      if (name == NULL || *name == '\0')
+		name = bfd_section_name (input_bfd, sec);
+	    }
+
+	  switch (r)
+	    {
+	     case bfd_reloc_overflow:
 	       (*info->callbacks->reloc_overflow)
 		 (info, (h ? &h->root : NULL), name, howto->name,
 		  (bfd_vma) 0, input_bfd, input_section, rel->r_offset);
-               break;
+	       break;
 
-             case bfd_reloc_undefined:
+	     case bfd_reloc_undefined:
 	       (*info->callbacks->undefined_symbol)
 		 (info, name, input_bfd, input_section, rel->r_offset, TRUE);
-               break;
+	       break;
 
-             case bfd_reloc_outofrange:
-               msg = _("internal error: out of range error");
-               goto common_error;
+	     case bfd_reloc_outofrange:
+	       msg = _("internal error: out of range error");
+	       goto common_error;
 
-             case bfd_reloc_notsupported:
-               msg = _("internal error: unsupported relocation error");
-               goto common_error;
+	     case bfd_reloc_notsupported:
+	       msg = _("internal error: unsupported relocation error");
+	       goto common_error;
 
-             case bfd_reloc_dangerous:
-               msg = _("internal error: dangerous error");
-               goto common_error;
+	     case bfd_reloc_dangerous:
+	       msg = _("internal error: dangerous error");
+	       goto common_error;
 
-             default:
-               msg = _("internal error: unknown error");
-               /* Fall through.  */
+	     default:
+	       msg = _("internal error: unknown error");
+	       /* Fall through.  */
 
-             common_error:
+	     common_error:
 	       (*info->callbacks->warning) (info, msg, name, input_bfd,
 					    input_section, rel->r_offset);
-               break;
-            }
-        }
+	       break;
+	    }
+	}
     }
 
   return TRUE;
@@ -1494,11 +1490,11 @@ elf32_cr16_relocate_section (bfd *output
 
 static bfd_byte *
 elf32_cr16_get_relocated_section_contents (bfd *output_bfd,
-                                           struct bfd_link_info *link_info,
-                                           struct bfd_link_order *link_order,
-                                           bfd_byte *data,
-                                           bfd_boolean relocatable,
-                                           asymbol **symbols)
+					   struct bfd_link_info *link_info,
+					   struct bfd_link_order *link_order,
+					   bfd_byte *data,
+					   bfd_boolean relocatable,
+					   asymbol **symbols)
 {
   Elf_Internal_Shdr *symtab_hdr;
   asection *input_section = link_order->u.indirect.section;
@@ -1512,14 +1508,14 @@ elf32_cr16_get_relocated_section_content
   if (relocatable
       || elf_section_data (input_section)->this_hdr.contents == NULL)
     return bfd_generic_get_relocated_section_contents (output_bfd, link_info,
-                                                       link_order, data,
-                                                       relocatable,
-                                                       symbols);
+						       link_order, data,
+						       relocatable,
+						       symbols);
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
 
   memcpy (data, elf_section_data (input_section)->this_hdr.contents,
-          (size_t) input_section->size);
+	  (size_t) input_section->size);
 
   if ((input_section->flags & SEC_RELOC) != 0
       && input_section->reloc_count > 0)
@@ -1530,56 +1526,56 @@ elf32_cr16_get_relocated_section_content
       bfd_size_type amt;
 
       internal_relocs = _bfd_elf_link_read_relocs (input_bfd, input_section,
-                                                   NULL, NULL, FALSE);
+						   NULL, NULL, FALSE);
       if (internal_relocs == NULL)
-        goto error_return;
+	goto error_return;
 
       if (symtab_hdr->sh_info != 0)
-        {
-          isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
-          if (isymbuf == NULL)
-            isymbuf = bfd_elf_get_elf_syms (input_bfd, symtab_hdr,
-                                            symtab_hdr->sh_info, 0,
-                                            NULL, NULL, NULL);
-          if (isymbuf == NULL)
-            goto error_return;
-        }
+	{
+	  isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
+	  if (isymbuf == NULL)
+	    isymbuf = bfd_elf_get_elf_syms (input_bfd, symtab_hdr,
+					    symtab_hdr->sh_info, 0,
+					    NULL, NULL, NULL);
+	  if (isymbuf == NULL)
+	    goto error_return;
+	}
 
       amt = symtab_hdr->sh_info;
       amt *= sizeof (asection *);
       sections = bfd_malloc (amt);
       if (sections == NULL && amt != 0)
-        goto error_return;
+	goto error_return;
 
       isymend = isymbuf + symtab_hdr->sh_info;
       for (isym = isymbuf, secpp = sections; isym < isymend; ++isym, ++secpp)
-        {
-          asection *isec;
+	{
+	  asection *isec;
 
-          if (isym->st_shndx == SHN_UNDEF)
-            isec = bfd_und_section_ptr;
-          else if (isym->st_shndx == SHN_ABS)
-            isec = bfd_abs_section_ptr;
-          else if (isym->st_shndx == SHN_COMMON)
-            isec = bfd_com_section_ptr;
-          else
-            isec = bfd_section_from_elf_index (input_bfd, isym->st_shndx);
+	  if (isym->st_shndx == SHN_UNDEF)
+	    isec = bfd_und_section_ptr;
+	  else if (isym->st_shndx == SHN_ABS)
+	    isec = bfd_abs_section_ptr;
+	  else if (isym->st_shndx == SHN_COMMON)
+	    isec = bfd_com_section_ptr;
+	  else
+	    isec = bfd_section_from_elf_index (input_bfd, isym->st_shndx);
 
-          *secpp = isec;
-        }
+	  *secpp = isec;
+	}
 
       if (! elf32_cr16_relocate_section (output_bfd, link_info, input_bfd,
-                                     input_section, data, internal_relocs,
-                                     isymbuf, sections))
-        goto error_return;
+				     input_section, data, internal_relocs,
+				     isymbuf, sections))
+	goto error_return;
 
       if (sections != NULL)
-        free (sections);
+	free (sections);
       if (isymbuf != NULL
-          && symtab_hdr->contents != (unsigned char *) isymbuf)
-        free (isymbuf);
+	  && symtab_hdr->contents != (unsigned char *) isymbuf)
+	free (isymbuf);
       if (elf_section_data (input_section)->relocs != internal_relocs)
-        free (internal_relocs);
+	free (internal_relocs);
     }
 
   return data;
@@ -1604,8 +1600,8 @@ elf32_cr16_get_relocated_section_content
 
 static struct bfd_hash_entry *
 elf32_cr16_link_hash_newfunc (struct bfd_hash_entry *entry,
-                              struct bfd_hash_table *table,
-                              const char *string)
+			      struct bfd_hash_table *table,
+			      const char *string)
 {
   struct elf32_cr16_link_hash_entry *ret =
     (struct elf32_cr16_link_hash_entry *) entry;
@@ -1614,15 +1610,15 @@ elf32_cr16_link_hash_newfunc (struct bfd
      subclass.  */
   if (ret == (struct elf32_cr16_link_hash_entry *) NULL)
     ret = ((struct elf32_cr16_link_hash_entry *)
-           bfd_hash_allocate (table,
-                              sizeof (struct elf32_cr16_link_hash_entry)));
+	   bfd_hash_allocate (table,
+			      sizeof (struct elf32_cr16_link_hash_entry)));
   if (ret == (struct elf32_cr16_link_hash_entry *) NULL)
     return (struct bfd_hash_entry *) ret;
 
   /* Call the allocation method of the superclass.  */
   ret = ((struct elf32_cr16_link_hash_entry *)
-         _bfd_elf_link_hash_newfunc ((struct bfd_hash_entry *) ret,
-                                     table, string));
+	 _bfd_elf_link_hash_newfunc ((struct bfd_hash_entry *) ret,
+				     table, string));
   if (ret != (struct elf32_cr16_link_hash_entry *) NULL)
     {
       ret->direct_calls = 0;
@@ -1649,8 +1645,8 @@ elf32_cr16_link_hash_table_create (bfd *
     return NULL;
 
   if (!_bfd_elf_link_hash_table_init (ret, abfd,
-                                      elf32_cr16_link_hash_newfunc,
-                                      sizeof (struct elf32_cr16_link_hash_entry),
+				      elf32_cr16_link_hash_newfunc,
+				      sizeof (struct elf32_cr16_link_hash_entry),
 				      GENERIC_ELF_DATA))
     {
       free (ret);
@@ -1677,15 +1673,15 @@ elf_cr16_mach (flagword flags)
 
 static void
 _bfd_cr16_elf_final_write_processing (bfd *abfd,
-                                      bfd_boolean linker ATTRIBUTE_UNUSED)
+				      bfd_boolean linker ATTRIBUTE_UNUSED)
 {
   unsigned long val;
   switch (bfd_get_mach (abfd))
     {
      default:
      case bfd_mach_cr16:
-        val = EM_CR16;
-        break;
+	val = EM_CR16;
+	break;
     }
 
 
@@ -1697,7 +1693,7 @@ static bfd_boolean
 _bfd_cr16_elf_object_p (bfd *abfd)
 {
   bfd_default_set_arch_mach (abfd, bfd_arch_cr16,
-                             elf_cr16_mach (elf_elfheader (abfd)->e_flags));
+			     elf_cr16_mach (elf_elfheader (abfd)->e_flags));
   return TRUE;
 }
 
@@ -1717,8 +1713,8 @@ _bfd_cr16_elf_merge_private_bfd_data (bf
       && bfd_get_mach (obfd) < bfd_get_mach (ibfd))
     {
       if (! bfd_set_arch_mach (obfd, bfd_get_arch (ibfd),
-                               bfd_get_mach (ibfd)))
-         return FALSE;
+			       bfd_get_mach (ibfd)))
+	 return FALSE;
      }
 
   return TRUE;
@@ -1729,16 +1725,16 @@ _bfd_cr16_elf_merge_private_bfd_data (bf
 
    There's quite a few relaxing opportunites available on the CR16:
 
-        * bcond:24 -> bcond:16                                1 byte
-        * bcond:16 -> bcond:8                                 1 byte
-        * arithmetic imm32 -> arithmetic imm20                12 bits
-        * arithmetic imm20/imm16 -> arithmetic imm4           12/16 bits
+	* bcond:24 -> bcond:16				      1 byte
+	* bcond:16 -> bcond:8				      1 byte
+	* arithmetic imm32 -> arithmetic imm20		      12 bits
+	* arithmetic imm20/imm16 -> arithmetic imm4	      12/16 bits
 
    Symbol- and reloc-reading infrastructure copied from elf-m10200.c.  */
 
 static bfd_boolean
 elf32_cr16_relax_section (bfd *abfd, asection *sec,
-                          struct bfd_link_info *link_info, bfd_boolean *again)
+			  struct bfd_link_info *link_info, bfd_boolean *again)
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Rela *internal_relocs;
@@ -1762,7 +1758,7 @@ elf32_cr16_relax_section (bfd *abfd, ase
 
   /* Get a copy of the native relocations.  */
   internal_relocs = _bfd_elf_link_read_relocs (abfd, sec, NULL, NULL,
-                                               link_info->keep_memory);
+					       link_info->keep_memory);
   if (internal_relocs == NULL)
     goto error_return;
 
@@ -1773,386 +1769,386 @@ elf32_cr16_relax_section (bfd *abfd, ase
       bfd_vma symval;
 
       /* If this isn't something that can be relaxed, then ignore
-         this reloc.  */
+	 this reloc.  */
       if (ELF32_R_TYPE (irel->r_info) != (int) R_CR16_DISP16
-          && ELF32_R_TYPE (irel->r_info) != (int) R_CR16_DISP24
-          && ELF32_R_TYPE (irel->r_info) != (int) R_CR16_IMM32
-          && ELF32_R_TYPE (irel->r_info) != (int) R_CR16_IMM20
-          && ELF32_R_TYPE (irel->r_info) != (int) R_CR16_IMM16)
-        continue;
+	  && ELF32_R_TYPE (irel->r_info) != (int) R_CR16_DISP24
+	  && ELF32_R_TYPE (irel->r_info) != (int) R_CR16_IMM32
+	  && ELF32_R_TYPE (irel->r_info) != (int) R_CR16_IMM20
+	  && ELF32_R_TYPE (irel->r_info) != (int) R_CR16_IMM16)
+	continue;
 
       /* Get the section contents if we haven't done so already.  */
       if (contents == NULL)
-        {
-          /* Get cached copy if it exists.  */
-          if (elf_section_data (sec)->this_hdr.contents != NULL)
-            contents = elf_section_data (sec)->this_hdr.contents;
-          /* Go get them off disk.  */
-          else if (!bfd_malloc_and_get_section (abfd, sec, &contents))
-            goto error_return;
-        }
+	{
+	  /* Get cached copy if it exists.  */
+	  if (elf_section_data (sec)->this_hdr.contents != NULL)
+	    contents = elf_section_data (sec)->this_hdr.contents;
+	  /* Go get them off disk.  */
+	  else if (!bfd_malloc_and_get_section (abfd, sec, &contents))
+	    goto error_return;
+	}
 
       /* Read this BFD's local symbols if we haven't done so already.  */
       if (isymbuf == NULL && symtab_hdr->sh_info != 0)
-        {
-          isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
-          if (isymbuf == NULL)
-            isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr,
-                                            symtab_hdr->sh_info, 0,
-                                            NULL, NULL, NULL);
-          if (isymbuf == NULL)
-            goto error_return;
-        }
+	{
+	  isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
+	  if (isymbuf == NULL)
+	    isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr,
+					    symtab_hdr->sh_info, 0,
+					    NULL, NULL, NULL);
+	  if (isymbuf == NULL)
+	    goto error_return;
+	}
 
       /* Get the value of the symbol referred to by the reloc.  */
       if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info)
-        {
-          /* A local symbol.  */
-          Elf_Internal_Sym *isym;
-          asection *sym_sec;
-
-          isym = isymbuf + ELF32_R_SYM (irel->r_info);
-          if (isym->st_shndx == SHN_UNDEF)
-            sym_sec = bfd_und_section_ptr;
-          else if (isym->st_shndx == SHN_ABS)
-            sym_sec = bfd_abs_section_ptr;
-          else if (isym->st_shndx == SHN_COMMON)
-            sym_sec = bfd_com_section_ptr;
-          else
-            sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx);
-          symval = (isym->st_value
-                    + sym_sec->output_section->vma
-                    + sym_sec->output_offset);
-        }
+	{
+	  /* A local symbol.  */
+	  Elf_Internal_Sym *isym;
+	  asection *sym_sec;
+
+	  isym = isymbuf + ELF32_R_SYM (irel->r_info);
+	  if (isym->st_shndx == SHN_UNDEF)
+	    sym_sec = bfd_und_section_ptr;
+	  else if (isym->st_shndx == SHN_ABS)
+	    sym_sec = bfd_abs_section_ptr;
+	  else if (isym->st_shndx == SHN_COMMON)
+	    sym_sec = bfd_com_section_ptr;
+	  else
+	    sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx);
+	  symval = (isym->st_value
+		    + sym_sec->output_section->vma
+		    + sym_sec->output_offset);
+	}
       else
-        {
-          unsigned long indx;
-          struct elf_link_hash_entry *h;
-
-          /* An external symbol.  */
-          indx = ELF32_R_SYM (irel->r_info) - symtab_hdr->sh_info;
-          h = elf_sym_hashes (abfd)[indx];
-          BFD_ASSERT (h != NULL);
-
-          if (h->root.type != bfd_link_hash_defined
-              && h->root.type != bfd_link_hash_defweak)
-            /* This appears to be a reference to an undefined
-               symbol.  Just ignore it--it will be caught by the
-               regular reloc processing.  */
-            continue;
-
-          symval = (h->root.u.def.value
-                    + h->root.u.def.section->output_section->vma
-                    + h->root.u.def.section->output_offset);
-        }
+	{
+	  unsigned long indx;
+	  struct elf_link_hash_entry *h;
+
+	  /* An external symbol.  */
+	  indx = ELF32_R_SYM (irel->r_info) - symtab_hdr->sh_info;
+	  h = elf_sym_hashes (abfd)[indx];
+	  BFD_ASSERT (h != NULL);
+
+	  if (h->root.type != bfd_link_hash_defined
+	      && h->root.type != bfd_link_hash_defweak)
+	    /* This appears to be a reference to an undefined
+	       symbol.  Just ignore it--it will be caught by the
+	       regular reloc processing.  */
+	    continue;
+
+	  symval = (h->root.u.def.value
+		    + h->root.u.def.section->output_section->vma
+		    + h->root.u.def.section->output_offset);
+	}
 
       /* For simplicity of coding, we are going to modify the section
-         contents, the section relocs, and the BFD symbol table.  We
-         must tell the rest of the code not to free up this
-         information.  It would be possible to instead create a table
-         of changes which have to be made, as is done in coff-mips.c;
-         that would be more work, but would require less memory when
-         the linker is run.  */
+	 contents, the section relocs, and the BFD symbol table.  We
+	 must tell the rest of the code not to free up this
+	 information.  It would be possible to instead create a table
+	 of changes which have to be made, as is done in coff-mips.c;
+	 that would be more work, but would require less memory when
+	 the linker is run.  */
 
       /* Try to turn a 24  branch/call into a 16bit relative
-         branch/call.  */
+	 branch/call.  */
       if (ELF32_R_TYPE (irel->r_info) == (int) R_CR16_DISP24)
-        {
-          bfd_vma value = symval;
+	{
+	  bfd_vma value = symval;
 
-          /* Deal with pc-relative gunk.  */
-          value -= (sec->output_section->vma + sec->output_offset);
-          value -= irel->r_offset;
-          value += irel->r_addend;
-
-          /* See if the value will fit in 16 bits, note the high value is
-             0xfffe + 2 as the target will be two bytes closer if we are
-             able to relax.  */
-          if ((long) value < 0x10000 && (long) value > -0x10002)
-            {
-              unsigned int code;
-
-              /* Get the opcode.  */
-              code = (unsigned int) bfd_get_32 (abfd, contents + irel->r_offset);
-
-              /* Verify it's a 'bcond' and fix the opcode.  */
-              if ((code  & 0xffff) == 0x0010)
-                bfd_put_16 (abfd, 0x1800 | ((0xf & (code >> 20)) << 4), contents + irel->r_offset);
-              else
-                continue;
-
-              /* Note that we've changed the relocs, section contents, etc.  */
-              elf_section_data (sec)->relocs = internal_relocs;
-              elf_section_data (sec)->this_hdr.contents = contents;
-              symtab_hdr->contents = (unsigned char *) isymbuf;
-
-              /* Fix the relocation's type.  */
-              irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-                                           R_CR16_DISP16);
-
-              /* Delete two bytes of data.  */
-              if (!elf32_cr16_relax_delete_bytes (link_info, abfd, sec,
-                                                   irel->r_offset + 2, 2))
-                goto error_return;
-
-              /* That will change things, so, we should relax again.
-                 Note that this is not required, and it may be slow.  */
-              *again = TRUE;
-            }
-        }
+	  /* Deal with pc-relative gunk.  */
+	  value -= (sec->output_section->vma + sec->output_offset);
+	  value -= irel->r_offset;
+	  value += irel->r_addend;
+
+	  /* See if the value will fit in 16 bits, note the high value is
+	     0xfffe + 2 as the target will be two bytes closer if we are
+	     able to relax.  */
+	  if ((long) value < 0x10000 && (long) value > -0x10002)
+	    {
+	      unsigned int code;
+
+	      /* Get the opcode.  */
+	      code = (unsigned int) bfd_get_32 (abfd, contents + irel->r_offset);
+
+	      /* Verify it's a 'bcond' and fix the opcode.  */
+	      if ((code  & 0xffff) == 0x0010)
+		bfd_put_16 (abfd, 0x1800 | ((0xf & (code >> 20)) << 4), contents + irel->r_offset);
+	      else
+		continue;
+
+	      /* Note that we've changed the relocs, section contents, etc.  */
+	      elf_section_data (sec)->relocs = internal_relocs;
+	      elf_section_data (sec)->this_hdr.contents = contents;
+	      symtab_hdr->contents = (unsigned char *) isymbuf;
+
+	      /* Fix the relocation's type.  */
+	      irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+					   R_CR16_DISP16);
+
+	      /* Delete two bytes of data.  */
+	      if (!elf32_cr16_relax_delete_bytes (link_info, abfd, sec,
+						   irel->r_offset + 2, 2))
+		goto error_return;
+
+	      /* That will change things, so, we should relax again.
+		 Note that this is not required, and it may be slow.  */
+	      *again = TRUE;
+	    }
+	}
 
       /* Try to turn a 16bit pc-relative branch into an
-         8bit pc-relative branch.  */
+	 8bit pc-relative branch.  */
       if (ELF32_R_TYPE (irel->r_info) == (int) R_CR16_DISP16)
-        {
-          bfd_vma value = symval;
+	{
+	  bfd_vma value = symval;
 
-          /* Deal with pc-relative gunk.  */
-          value -= (sec->output_section->vma + sec->output_offset);
-          value -= irel->r_offset;
-          value += irel->r_addend;
-
-          /* See if the value will fit in 8 bits, note the high value is
-             0xfc + 2 as the target will be two bytes closer if we are
-             able to relax.  */
-          /*if ((long) value < 0x1fa && (long) value > -0x100) REVISIT:range */
-          if ((long) value < 0xfa && (long) value > -0x100)
-            {
-              unsigned short code;
-
-              /* Get the opcode.  */
-              code = (unsigned short) bfd_get_16 (abfd, contents + irel->r_offset);
-
-              /* Verify it's a 'bcond' and fix the opcode.  */
-              if ((code & 0xff0f) == 0x1800)
-                bfd_put_16 (abfd, (code & 0xf0f0), contents + irel->r_offset);
-              else
-                continue;
-
-              /* Note that we've changed the relocs, section contents, etc.  */
-              elf_section_data (sec)->relocs = internal_relocs;
-              elf_section_data (sec)->this_hdr.contents = contents;
-              symtab_hdr->contents = (unsigned char *) isymbuf;
-
-              /* Fix the relocation's type.  */
-              irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-                                           R_CR16_DISP8);
-
-              /* Delete two bytes of data.  */
-              if (!elf32_cr16_relax_delete_bytes (link_info, abfd, sec,
-                                                   irel->r_offset + 2, 2))
-                goto error_return;
-
-              /* That will change things, so, we should relax again.
-                 Note that this is not required, and it may be slow.  */
-              *again = TRUE;
-            }
-        }
+	  /* Deal with pc-relative gunk.  */
+	  value -= (sec->output_section->vma + sec->output_offset);
+	  value -= irel->r_offset;
+	  value += irel->r_addend;
+
+	  /* See if the value will fit in 8 bits, note the high value is
+	     0xfc + 2 as the target will be two bytes closer if we are
+	     able to relax.  */
+	  /*if ((long) value < 0x1fa && (long) value > -0x100) REVISIT:range */
+	  if ((long) value < 0xfa && (long) value > -0x100)
+	    {
+	      unsigned short code;
+
+	      /* Get the opcode.  */
+	      code = (unsigned short) bfd_get_16 (abfd, contents + irel->r_offset);
+
+	      /* Verify it's a 'bcond' and fix the opcode.  */
+	      if ((code & 0xff0f) == 0x1800)
+		bfd_put_16 (abfd, (code & 0xf0f0), contents + irel->r_offset);
+	      else
+		continue;
+
+	      /* Note that we've changed the relocs, section contents, etc.  */
+	      elf_section_data (sec)->relocs = internal_relocs;
+	      elf_section_data (sec)->this_hdr.contents = contents;
+	      symtab_hdr->contents = (unsigned char *) isymbuf;
+
+	      /* Fix the relocation's type.  */
+	      irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+					   R_CR16_DISP8);
+
+	      /* Delete two bytes of data.  */
+	      if (!elf32_cr16_relax_delete_bytes (link_info, abfd, sec,
+						   irel->r_offset + 2, 2))
+		goto error_return;
+
+	      /* That will change things, so, we should relax again.
+		 Note that this is not required, and it may be slow.  */
+	      *again = TRUE;
+	    }
+	}
 
       /* Try to turn a 32-bit IMM address into a 20/16-bit IMM address */
       if (ELF32_R_TYPE (irel->r_info) == (int) R_CR16_IMM32)
-        {
-          bfd_vma value = symval;
-          unsigned short is_add_mov = 0;
-          bfd_vma value1 = 0;
-
-          /* Get the existing value from the mcode */
-          value1 = ((bfd_get_32 (abfd, contents + irel->r_offset + 2) >> 16)
-                   |(((bfd_get_32 (abfd, contents + irel->r_offset + 2) & 0xffff) << 16)));
-
-          /* See if the value will fit in 20 bits.  */
-          if ((long) (value + value1) < 0xfffff && (long) (value + value1) > 0)
-            {
-              unsigned short code;
-
-              /* Get the opcode.  */
-              code = (unsigned short) bfd_get_16 (abfd, contents + irel->r_offset);
-
-              /* Verify it's a 'arithmetic ADDD or MOVD instruction'.
-                 For ADDD and MOVD only, convert to IMM32 -> IMM20.  */
-
-              if (((code & 0xfff0) == 0x0070) || ((code & 0xfff0) == 0x0020))
-                 is_add_mov = 1;
-
-              if (is_add_mov)
-                {
-                  /* Note that we've changed the relocs, section contents,
-                     etc.  */
-                  elf_section_data (sec)->relocs = internal_relocs;
-                  elf_section_data (sec)->this_hdr.contents = contents;
-                  symtab_hdr->contents = (unsigned char *) isymbuf;
-
-                  /* Fix the opcode.  */
-                  if ((code & 0xfff0) == 0x0070) /* For movd.  */
-                    bfd_put_8 (abfd, 0x05, contents + irel->r_offset + 1);
-                  else                           /* code == 0x0020 for addd.  */
-                    bfd_put_8 (abfd, 0x04, contents + irel->r_offset + 1);
-
-                  bfd_put_8 (abfd, (code & 0xf) << 4, contents + irel->r_offset);
-
-                  /* If existing value is nagavive adjust approriately
-                     place the 16-20bits (ie 4 bit) in new opcode,
-                     as the 0xffffxxxx, the higher 2 byte values removed. */
-                  if (value1 & 0x80000000)
-                    bfd_put_8 (abfd, (0x0f | (bfd_get_8(abfd, contents + irel->r_offset))), contents + irel->r_offset);
-                  else
-                    bfd_put_8 (abfd, (((value1 >> 16)&0xf) | (bfd_get_8(abfd, contents + irel->r_offset))), contents + irel->r_offset);
-
-                  /* Fix the relocation's type.  */
-                  irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-                                               R_CR16_IMM20);
-
-                  /* Delete two bytes of data.  */
-                  if (!elf32_cr16_relax_delete_bytes (link_info, abfd, sec,
-                                                      irel->r_offset + 2, 2))
-                    goto error_return;
-
-                  /* That will change things, so, we should relax again.
-                     Note that this is not required, and it may be slow.  */
-                  *again = TRUE;
-                }
-            }
-
-          /* See if the value will fit in 16 bits.  */
-          if ((!is_add_mov)
-              && ((long)(value + value1) < 0x7fff && (long)(value + value1) > 0))
-            {
-              unsigned short code;
-
-              /* Get the opcode.  */
-              code = (unsigned short) bfd_get_16 (abfd, contents + irel->r_offset);
-
-              /* Note that we've changed the relocs, section contents, etc.  */
-              elf_section_data (sec)->relocs = internal_relocs;
-              elf_section_data (sec)->this_hdr.contents = contents;
-              symtab_hdr->contents = (unsigned char *) isymbuf;
-
-              /* Fix the opcode.  */
-              if ((code & 0xf0) == 0x70)          /* For movd.  */
-                bfd_put_8 (abfd, 0x54, contents + irel->r_offset + 1);
-              else if ((code & 0xf0) == 0x20)     /* For addd.  */
-                bfd_put_8 (abfd, 0x60, contents + irel->r_offset + 1);
-              else if ((code & 0xf0) == 0x90)     /* For cmpd.  */
-                bfd_put_8 (abfd, 0x56, contents + irel->r_offset + 1);
-              else
-                continue;
-
-              bfd_put_8 (abfd, 0xb0 | (code & 0xf), contents + irel->r_offset);
-
-              /* If existing value is nagavive adjust approriately
-                 place the 12-16bits (ie 4 bit) in new opcode,
-                 as the 0xfffffxxx, the higher 2 byte values removed. */
-              if (value1 & 0x80000000)
-                bfd_put_8 (abfd, (0x0f | (bfd_get_8(abfd, contents + irel->r_offset))), contents + irel->r_offset);
-              else
-                bfd_put_16 (abfd, value1, contents + irel->r_offset + 2);
-
-
-              /* Fix the relocation's type.  */
-              irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-                                           R_CR16_IMM16);
-
-              /* Delete two bytes of data.  */
-              if (!elf32_cr16_relax_delete_bytes (link_info, abfd, sec,
-                                                  irel->r_offset + 2, 2))
-                goto error_return;
-
-              /* That will change things, so, we should relax again.
-                 Note that this is not required, and it may be slow.  */
-              *again = TRUE;
-            }
-        }
+	{
+	  bfd_vma value = symval;
+	  unsigned short is_add_mov = 0;
+	  bfd_vma value1 = 0;
+
+	  /* Get the existing value from the mcode */
+	  value1 = ((bfd_get_32 (abfd, contents + irel->r_offset + 2) >> 16)
+		   |(((bfd_get_32 (abfd, contents + irel->r_offset + 2) & 0xffff) << 16)));
+
+	  /* See if the value will fit in 20 bits.  */
+	  if ((long) (value + value1) < 0xfffff && (long) (value + value1) > 0)
+	    {
+	      unsigned short code;
+
+	      /* Get the opcode.  */
+	      code = (unsigned short) bfd_get_16 (abfd, contents + irel->r_offset);
+
+	      /* Verify it's a 'arithmetic ADDD or MOVD instruction'.
+		 For ADDD and MOVD only, convert to IMM32 -> IMM20.  */
+
+	      if (((code & 0xfff0) == 0x0070) || ((code & 0xfff0) == 0x0020))
+		 is_add_mov = 1;
+
+	      if (is_add_mov)
+		{
+		  /* Note that we've changed the relocs, section contents,
+		     etc.  */
+		  elf_section_data (sec)->relocs = internal_relocs;
+		  elf_section_data (sec)->this_hdr.contents = contents;
+		  symtab_hdr->contents = (unsigned char *) isymbuf;
+
+		  /* Fix the opcode.  */
+		  if ((code & 0xfff0) == 0x0070) /* For movd.  */
+		    bfd_put_8 (abfd, 0x05, contents + irel->r_offset + 1);
+		  else				 /* code == 0x0020 for addd.  */
+		    bfd_put_8 (abfd, 0x04, contents + irel->r_offset + 1);
+
+		  bfd_put_8 (abfd, (code & 0xf) << 4, contents + irel->r_offset);
+
+		  /* If existing value is nagavive adjust approriately
+		     place the 16-20bits (ie 4 bit) in new opcode,
+		     as the 0xffffxxxx, the higher 2 byte values removed. */
+		  if (value1 & 0x80000000)
+		    bfd_put_8 (abfd, (0x0f | (bfd_get_8(abfd, contents + irel->r_offset))), contents + irel->r_offset);
+		  else
+		    bfd_put_8 (abfd, (((value1 >> 16)&0xf) | (bfd_get_8(abfd, contents + irel->r_offset))), contents + irel->r_offset);
+
+		  /* Fix the relocation's type.  */
+		  irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+					       R_CR16_IMM20);
+
+		  /* Delete two bytes of data.  */
+		  if (!elf32_cr16_relax_delete_bytes (link_info, abfd, sec,
+						      irel->r_offset + 2, 2))
+		    goto error_return;
+
+		  /* That will change things, so, we should relax again.
+		     Note that this is not required, and it may be slow.  */
+		  *again = TRUE;
+		}
+	    }
+
+	  /* See if the value will fit in 16 bits.  */
+	  if ((!is_add_mov)
+	      && ((long)(value + value1) < 0x7fff && (long)(value + value1) > 0))
+	    {
+	      unsigned short code;
+
+	      /* Get the opcode.  */
+	      code = (unsigned short) bfd_get_16 (abfd, contents + irel->r_offset);
+
+	      /* Note that we've changed the relocs, section contents, etc.  */
+	      elf_section_data (sec)->relocs = internal_relocs;
+	      elf_section_data (sec)->this_hdr.contents = contents;
+	      symtab_hdr->contents = (unsigned char *) isymbuf;
+
+	      /* Fix the opcode.  */
+	      if ((code & 0xf0) == 0x70)	  /* For movd.  */
+		bfd_put_8 (abfd, 0x54, contents + irel->r_offset + 1);
+	      else if ((code & 0xf0) == 0x20)	  /* For addd.  */
+		bfd_put_8 (abfd, 0x60, contents + irel->r_offset + 1);
+	      else if ((code & 0xf0) == 0x90)	  /* For cmpd.  */
+		bfd_put_8 (abfd, 0x56, contents + irel->r_offset + 1);
+	      else
+		continue;
+
+	      bfd_put_8 (abfd, 0xb0 | (code & 0xf), contents + irel->r_offset);
+
+	      /* If existing value is nagavive adjust approriately
+		 place the 12-16bits (ie 4 bit) in new opcode,
+		 as the 0xfffffxxx, the higher 2 byte values removed. */
+	      if (value1 & 0x80000000)
+		bfd_put_8 (abfd, (0x0f | (bfd_get_8(abfd, contents + irel->r_offset))), contents + irel->r_offset);
+	      else
+		bfd_put_16 (abfd, value1, contents + irel->r_offset + 2);
+
+
+	      /* Fix the relocation's type.  */
+	      irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+					   R_CR16_IMM16);
+
+	      /* Delete two bytes of data.  */
+	      if (!elf32_cr16_relax_delete_bytes (link_info, abfd, sec,
+						  irel->r_offset + 2, 2))
+		goto error_return;
+
+	      /* That will change things, so, we should relax again.
+		 Note that this is not required, and it may be slow.  */
+	      *again = TRUE;
+	    }
+	}
 
 #if 0
       /* Try to turn a 16bit immediate address into a 4bit
-         immediate address.  */
+	 immediate address.  */
       if ((ELF32_R_TYPE (irel->r_info) == (int) R_CR16_IMM20)
-          || (ELF32_R_TYPE (irel->r_info) == (int) R_CR16_IMM16))
-        {
-          bfd_vma value = symval;
-          bfd_vma value1 = 0;
-
-          /* Get the existing value from the mcode */
-          value1 = ((bfd_get_16 (abfd, contents + irel->r_offset + 2) & 0xffff));
-
-          if (ELF32_R_TYPE (irel->r_info) == (int) R_CR16_IMM20)
-            {
-              value1 |= ((bfd_get_16 (abfd, contents + irel->r_offset + 1) & 0xf000) << 0x4);
-            }
-
-          /* See if the value will fit in 4 bits.  */
-          if ((((long) (value + value1)) < 0xf)
-              && (((long) (value + value1)) > 0))
-            {
-              unsigned short code;
-
-              /* Get the opcode.  */
-              code = (unsigned short) bfd_get_16 (abfd, contents + irel->r_offset);
-
-              /* Note that we've changed the relocs, section contents, etc.  */
-              elf_section_data (sec)->relocs = internal_relocs;
-              elf_section_data (sec)->this_hdr.contents = contents;
-              symtab_hdr->contents = (unsigned char *) isymbuf;
-
-              /* Fix the opcode.  */
-              if (((code & 0x0f00) == 0x0400) || ((code & 0x0f00) == 0x0500))
-                {
-                  if ((code & 0x0f00) == 0x0400)      /* For movd imm20.  */
-                    bfd_put_8 (abfd, 0x60, contents + irel->r_offset);
-                  else                                /* For addd imm20.  */
-                    bfd_put_8 (abfd, 0x54, contents + irel->r_offset);
-                  bfd_put_8 (abfd, (code & 0xf0) >> 4, contents + irel->r_offset + 1);
-                }
-              else
-                {
-                  if ((code & 0xfff0) == 0x56b0)       /*  For cmpd imm16.  */
-                    bfd_put_8 (abfd, 0x56, contents + irel->r_offset);
-                  else if ((code & 0xfff0) == 0x54b0)  /*  For movd imm16.  */
-                    bfd_put_8 (abfd, 0x54, contents + irel->r_offset);
-                  else if ((code & 0xfff0) == 0x58b0)  /*  For movb imm16.  */
-                    bfd_put_8 (abfd, 0x58, contents + irel->r_offset);
-                  else if ((code & 0xfff0) == 0x5Ab0)  /*  For movw imm16.  */
-                    bfd_put_8 (abfd, 0x5A, contents + irel->r_offset);
-                  else if ((code & 0xfff0) == 0x60b0)  /*  For addd imm16.  */
-                    bfd_put_8 (abfd, 0x60, contents + irel->r_offset);
-                  else if ((code & 0xfff0) == 0x30b0)  /*  For addb imm16.  */
-                    bfd_put_8 (abfd, 0x30, contents + irel->r_offset);
-                  else if ((code & 0xfff0) == 0x2Cb0)  /*  For addub imm16.  */
-                    bfd_put_8 (abfd, 0x2C, contents + irel->r_offset);
-                  else if ((code & 0xfff0) == 0x32b0)  /*  For adduw imm16.  */
-                    bfd_put_8 (abfd, 0x32, contents + irel->r_offset);
-                  else if ((code & 0xfff0) == 0x38b0)  /*  For subb imm16.  */
-                    bfd_put_8 (abfd, 0x38, contents + irel->r_offset);
-                  else if ((code & 0xfff0) == 0x3Cb0)  /*  For subcb imm16.  */
-                    bfd_put_8 (abfd, 0x3C, contents + irel->r_offset);
-                  else if ((code & 0xfff0) == 0x3Fb0)  /*  For subcw imm16.  */
-                    bfd_put_8 (abfd, 0x3F, contents + irel->r_offset);
-                  else if ((code & 0xfff0) == 0x3Ab0)  /*  For subw imm16.  */
-                    bfd_put_8 (abfd, 0x3A, contents + irel->r_offset);
-                  else if ((code & 0xfff0) == 0x50b0)  /*  For cmpb imm16.  */
-                    bfd_put_8 (abfd, 0x50, contents + irel->r_offset);
-                  else if ((code & 0xfff0) == 0x52b0)  /*  For cmpw imm16.  */
-                    bfd_put_8 (abfd, 0x52, contents + irel->r_offset);
-                  else
-                    continue;
-
-                  bfd_put_8 (abfd, (code & 0xf), contents + irel->r_offset + 1);
-                }
-
-              /* Fix the relocation's type.  */
-              irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-                                           R_CR16_IMM4);
-
-              /* Delete two bytes of data.  */
-              if (!elf32_cr16_relax_delete_bytes (link_info, abfd, sec,
-                                                  irel->r_offset + 2, 2))
-                goto error_return;
-
-              /* That will change things, so, we should relax again.
-                 Note that this is not required, and it may be slow.  */
-              *again = TRUE;
-            }
-        }
+	  || (ELF32_R_TYPE (irel->r_info) == (int) R_CR16_IMM16))
+	{
+	  bfd_vma value = symval;
+	  bfd_vma value1 = 0;
+
+	  /* Get the existing value from the mcode */
+	  value1 = ((bfd_get_16 (abfd, contents + irel->r_offset + 2) & 0xffff));
+
+	  if (ELF32_R_TYPE (irel->r_info) == (int) R_CR16_IMM20)
+	    {
+	      value1 |= ((bfd_get_16 (abfd, contents + irel->r_offset + 1) & 0xf000) << 0x4);
+	    }
+
+	  /* See if the value will fit in 4 bits.  */
+	  if ((((long) (value + value1)) < 0xf)
+	      && (((long) (value + value1)) > 0))
+	    {
+	      unsigned short code;
+
+	      /* Get the opcode.  */
+	      code = (unsigned short) bfd_get_16 (abfd, contents + irel->r_offset);
+
+	      /* Note that we've changed the relocs, section contents, etc.  */
+	      elf_section_data (sec)->relocs = internal_relocs;
+	      elf_section_data (sec)->this_hdr.contents = contents;
+	      symtab_hdr->contents = (unsigned char *) isymbuf;
+
+	      /* Fix the opcode.  */
+	      if (((code & 0x0f00) == 0x0400) || ((code & 0x0f00) == 0x0500))
+		{
+		  if ((code & 0x0f00) == 0x0400)      /* For movd imm20.  */
+		    bfd_put_8 (abfd, 0x60, contents + irel->r_offset);
+		  else				      /* For addd imm20.  */
+		    bfd_put_8 (abfd, 0x54, contents + irel->r_offset);
+		  bfd_put_8 (abfd, (code & 0xf0) >> 4, contents + irel->r_offset + 1);
+		}
+	      else
+		{
+		  if ((code & 0xfff0) == 0x56b0)       /*  For cmpd imm16.  */
+		    bfd_put_8 (abfd, 0x56, contents + irel->r_offset);
+		  else if ((code & 0xfff0) == 0x54b0)  /*  For movd imm16.  */
+		    bfd_put_8 (abfd, 0x54, contents + irel->r_offset);
+		  else if ((code & 0xfff0) == 0x58b0)  /*  For movb imm16.  */
+		    bfd_put_8 (abfd, 0x58, contents + irel->r_offset);
+		  else if ((code & 0xfff0) == 0x5Ab0)  /*  For movw imm16.  */
+		    bfd_put_8 (abfd, 0x5A, contents + irel->r_offset);
+		  else if ((code & 0xfff0) == 0x60b0)  /*  For addd imm16.  */
+		    bfd_put_8 (abfd, 0x60, contents + irel->r_offset);
+		  else if ((code & 0xfff0) == 0x30b0)  /*  For addb imm16.  */
+		    bfd_put_8 (abfd, 0x30, contents + irel->r_offset);
+		  else if ((code & 0xfff0) == 0x2Cb0)  /*  For addub imm16.  */
+		    bfd_put_8 (abfd, 0x2C, contents + irel->r_offset);
+		  else if ((code & 0xfff0) == 0x32b0)  /*  For adduw imm16.  */
+		    bfd_put_8 (abfd, 0x32, contents + irel->r_offset);
+		  else if ((code & 0xfff0) == 0x38b0)  /*  For subb imm16.  */
+		    bfd_put_8 (abfd, 0x38, contents + irel->r_offset);
+		  else if ((code & 0xfff0) == 0x3Cb0)  /*  For subcb imm16.  */
+		    bfd_put_8 (abfd, 0x3C, contents + irel->r_offset);
+		  else if ((code & 0xfff0) == 0x3Fb0)  /*  For subcw imm16.  */
+		    bfd_put_8 (abfd, 0x3F, contents + irel->r_offset);
+		  else if ((code & 0xfff0) == 0x3Ab0)  /*  For subw imm16.  */
+		    bfd_put_8 (abfd, 0x3A, contents + irel->r_offset);
+		  else if ((code & 0xfff0) == 0x50b0)  /*  For cmpb imm16.  */
+		    bfd_put_8 (abfd, 0x50, contents + irel->r_offset);
+		  else if ((code & 0xfff0) == 0x52b0)  /*  For cmpw imm16.  */
+		    bfd_put_8 (abfd, 0x52, contents + irel->r_offset);
+		  else
+		    continue;
+
+		  bfd_put_8 (abfd, (code & 0xf), contents + irel->r_offset + 1);
+		}
+
+	      /* Fix the relocation's type.  */
+	      irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+					   R_CR16_IMM4);
+
+	      /* Delete two bytes of data.  */
+	      if (!elf32_cr16_relax_delete_bytes (link_info, abfd, sec,
+						  irel->r_offset + 2, 2))
+		goto error_return;
+
+	      /* That will change things, so, we should relax again.
+		 Note that this is not required, and it may be slow.  */
+	      *again = TRUE;
+	    }
+	}
 #endif
     }
 
@@ -2160,7 +2156,7 @@ elf32_cr16_relax_section (bfd *abfd, ase
       && symtab_hdr->contents != (unsigned char *) isymbuf)
     {
       if (! link_info->keep_memory)
-        free (isymbuf);
+	free (isymbuf);
       else
        /* Cache the symbols for elf_link_input_bfd.  */
        symtab_hdr->contents = (unsigned char *) isymbuf;
@@ -2170,7 +2166,7 @@ elf32_cr16_relax_section (bfd *abfd, ase
       && elf_section_data (sec)->this_hdr.contents != contents)
     {
       if (! link_info->keep_memory)
-        free (contents);
+	free (contents);
       else
        /* Cache the section contents for elf_link_input_bfd.  */
        elf_section_data (sec)->this_hdr.contents = contents;
@@ -2199,26 +2195,14 @@ elf32_cr16_relax_section (bfd *abfd, ase
 
 static asection *
 elf32_cr16_gc_mark_hook (asection *sec,
-                         struct bfd_link_info *info,
-                         Elf_Internal_Rela *rel,
-                         struct elf_link_hash_entry *h,
-                         Elf_Internal_Sym *sym)
+			 struct bfd_link_info *info,
+			 Elf_Internal_Rela *rel,
+			 struct elf_link_hash_entry *h,
+			 Elf_Internal_Sym *sym)
 {
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-/* Update the got entry reference counts for the section being removed.  */
-
-static bfd_boolean
-elf32_cr16_gc_sweep_hook (bfd *abfd ATTRIBUTE_UNUSED,
-                          struct bfd_link_info *info ATTRIBUTE_UNUSED,
-                          asection *sec ATTRIBUTE_UNUSED,
-                          const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED)
-{
-  /* We don't support garbage collection of GOT and PLT relocs yet.  */
-  return TRUE;
-}
-
 /* Create dynamic sections when linking against a dynamic object.  */
 
 static bfd_boolean
@@ -2249,7 +2233,7 @@ _bfd_cr16_elf_create_dynamic_sections (b
      .rel[a].bss sections.  */
 
   flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
-           | SEC_LINKER_CREATED);
+	   | SEC_LINKER_CREATED);
 
   s = bfd_make_section_anyway_with_flags (abfd,
 					  (bed->default_use_rela_p
@@ -2266,37 +2250,37 @@ _bfd_cr16_elf_create_dynamic_sections (b
   if (bed->want_dynbss)
     {
       /* The .dynbss section is a place to put symbols which are defined
-         by dynamic objects, are referenced by regular objects, and are
-         not functions.  We must allocate space for them in the process
-         image and use a R_*_COPY reloc to tell the dynamic linker to
-         initialize them at run time.  The linker script puts the .dynbss
-         section into the .bss section of the final image.  */
+	 by dynamic objects, are referenced by regular objects, and are
+	 not functions.  We must allocate space for them in the process
+	 image and use a R_*_COPY reloc to tell the dynamic linker to
+	 initialize them at run time.  The linker script puts the .dynbss
+	 section into the .bss section of the final image.  */
       s = bfd_make_section_anyway_with_flags (abfd, ".dynbss",
 					      SEC_ALLOC | SEC_LINKER_CREATED);
       if (s == NULL)
-        return FALSE;
+	return FALSE;
 
       /* The .rel[a].bss section holds copy relocs.  This section is not
-         normally needed.  We need to create it here, though, so that the
-         linker will map it to an output section.  We can't just create it
-         only if we need it, because we will not know whether we need it
-         until we have seen all the input files, and the first time the
-         main linker code calls BFD after examining all the input files
-         (size_dynamic_sections) the input sections have already been
-         mapped to the output sections.  If the section turns out not to
-         be needed, we can discard it later.  We will never need this
-         section when generating a shared object, since they do not use
-         copy relocs.  */
+	 normally needed.  We need to create it here, though, so that the
+	 linker will map it to an output section.  We can't just create it
+	 only if we need it, because we will not know whether we need it
+	 until we have seen all the input files, and the first time the
+	 main linker code calls BFD after examining all the input files
+	 (size_dynamic_sections) the input sections have already been
+	 mapped to the output sections.  If the section turns out not to
+	 be needed, we can discard it later.  We will never need this
+	 section when generating a shared object, since they do not use
+	 copy relocs.  */
       if (! bfd_link_executable (info))
-        {
-          s = bfd_make_section_anyway_with_flags (abfd,
+	{
+	  s = bfd_make_section_anyway_with_flags (abfd,
 						  (bed->default_use_rela_p
 						   ? ".rela.bss" : ".rel.bss"),
 						  flags | SEC_READONLY);
-          if (s == NULL
-              || ! bfd_set_section_alignment (abfd, s, ptralign))
-            return FALSE;
-        }
+	  if (s == NULL
+	      || ! bfd_set_section_alignment (abfd, s, ptralign))
+	    return FALSE;
+	}
     }
 
   return TRUE;
@@ -2310,7 +2294,7 @@ _bfd_cr16_elf_create_dynamic_sections (b
 
 static bfd_boolean
 _bfd_cr16_elf_adjust_dynamic_symbol (struct bfd_link_info * info,
-                                     struct elf_link_hash_entry * h)
+				     struct elf_link_hash_entry * h)
 {
   bfd * dynobj;
   asection * s;
@@ -2319,11 +2303,11 @@ _bfd_cr16_elf_adjust_dynamic_symbol (str
 
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
-              && (h->needs_plt
-                  || h->u.weakdef != NULL
-                  || (h->def_dynamic
-                      && h->ref_regular
-                      && !h->def_regular)));
+	      && (h->needs_plt
+		  || h->is_weakalias
+		  || (h->def_dynamic
+		      && h->ref_regular
+		      && !h->def_regular)));
 
   /* If this is a function, put it in the procedure linkage table.  We
      will fill in the contents of the procedure linkage table later,
@@ -2332,27 +2316,27 @@ _bfd_cr16_elf_adjust_dynamic_symbol (str
       || h->needs_plt)
     {
       if (! bfd_link_executable (info)
-          && !h->def_dynamic
-          && !h->ref_dynamic)
-        {
-          /* This case can occur if we saw a PLT reloc in an input
-             file, but the symbol was never referred to by a dynamic
-             object.  In such a case, we don't actually need to build
-             a procedure linkage table, and we can just do a REL32
-             reloc instead.  */
-          BFD_ASSERT (h->needs_plt);
-          return TRUE;
-        }
+	  && !h->def_dynamic
+	  && !h->ref_dynamic)
+	{
+	  /* This case can occur if we saw a PLT reloc in an input
+	     file, but the symbol was never referred to by a dynamic
+	     object.  In such a case, we don't actually need to build
+	     a procedure linkage table, and we can just do a REL32
+	     reloc instead.  */
+	  BFD_ASSERT (h->needs_plt);
+	  return TRUE;
+	}
 
       /* Make sure this symbol is output as a dynamic symbol.  */
       if (h->dynindx == -1)
-        {
-          if (! bfd_elf_link_record_dynamic_symbol (info, h))
-            return FALSE;
-        }
+	{
+	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
+	    return FALSE;
+	}
 
       /* We also need to make an entry in the .got.plt section, which
-         will be placed in the .got section by the linker script.  */
+	 will be placed in the .got section by the linker script.  */
 
       s = elf_hash_table (info)->sgotplt;
       BFD_ASSERT (s != NULL);
@@ -2370,12 +2354,12 @@ _bfd_cr16_elf_adjust_dynamic_symbol (str
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-                  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -2428,7 +2412,7 @@ _bfd_cr16_elf_adjust_dynamic_symbol (str
 
 static bfd_boolean
 _bfd_cr16_elf_size_dynamic_sections (bfd * output_bfd,
-                                     struct bfd_link_info * info)
+				     struct bfd_link_info * info)
 {
   bfd * dynobj;
   asection * s;
@@ -2443,25 +2427,25 @@ _bfd_cr16_elf_size_dynamic_sections (bfd
     {
       /* Set the contents of the .interp section to the interpreter.  */
       if (bfd_link_executable (info) && !info->nointerp)
-        {
+	{
 #if 0
-          s = bfd_get_linker_section (dynobj, ".interp");
-          BFD_ASSERT (s != NULL);
-          s->size = sizeof ELF_DYNAMIC_INTERPRETER;
-          s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
+	  s = bfd_get_linker_section (dynobj, ".interp");
+	  BFD_ASSERT (s != NULL);
+	  s->size = sizeof ELF_DYNAMIC_INTERPRETER;
+	  s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
 #endif
-        }
+	}
     }
   else
     {
       /* We may have created entries in the .rela.got section.
-         However, if we are not creating the dynamic sections, we will
-         not actually use these entries.  Reset the size of .rela.got,
-         which will cause it to get stripped from the output file
-         below.  */
+	 However, if we are not creating the dynamic sections, we will
+	 not actually use these entries.  Reset the size of .rela.got,
+	 which will cause it to get stripped from the output file
+	 below.  */
       s = elf_hash_table (info)->srelgot;
       if (s != NULL)
-        s->size = 0;
+	s->size = 0;
     }
 
   /* The check_relocs and adjust_dynamic_symbol entry points have
@@ -2475,119 +2459,119 @@ _bfd_cr16_elf_size_dynamic_sections (bfd
       const char * name;
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
-        continue;
+	continue;
 
       /* It's OK to base decisions on the section name, because none
-         of the dynobj section names depend upon the input files.  */
+	 of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
       if (strcmp (name, ".plt") == 0)
-        {
-          /* Remember whether there is a PLT.  */
-          plt = s->size != 0;
-        }
+	{
+	  /* Remember whether there is a PLT.  */
+	  plt = s->size != 0;
+	}
       else if (CONST_STRNEQ (name, ".rela"))
-        {
-          if (s->size != 0)
-            {
-              asection * target;
-
-              /* Remember whether there are any reloc sections other
-                 than .rela.plt.  */
-              if (strcmp (name, ".rela.plt") != 0)
-                {
-                  const char * outname;
-
-                  relocs = TRUE;
-
-                  /* If this relocation section applies to a read only
-                     section, then we probably need a DT_TEXTREL
-                     entry.  The entries in the .rela.plt section
-                     really apply to the .got section, which we
-                     created ourselves and so know is not readonly.  */
-                  outname = bfd_get_section_name (output_bfd,
-                                                  s->output_section);
-                  target = bfd_get_section_by_name (output_bfd, outname + 5);
-                  if (target != NULL
-                      && (target->flags & SEC_READONLY) != 0
-                      && (target->flags & SEC_ALLOC) != 0)
-                    reltext = TRUE;
-                }
-
-              /* We use the reloc_count field as a counter if we need
-                 to copy relocs into the output file.  */
-              s->reloc_count = 0;
-            }
-        }
+	{
+	  if (s->size != 0)
+	    {
+	      asection * target;
+
+	      /* Remember whether there are any reloc sections other
+		 than .rela.plt.  */
+	      if (strcmp (name, ".rela.plt") != 0)
+		{
+		  const char * outname;
+
+		  relocs = TRUE;
+
+		  /* If this relocation section applies to a read only
+		     section, then we probably need a DT_TEXTREL
+		     entry.  The entries in the .rela.plt section
+		     really apply to the .got section, which we
+		     created ourselves and so know is not readonly.  */
+		  outname = bfd_get_section_name (output_bfd,
+						  s->output_section);
+		  target = bfd_get_section_by_name (output_bfd, outname + 5);
+		  if (target != NULL
+		      && (target->flags & SEC_READONLY) != 0
+		      && (target->flags & SEC_ALLOC) != 0)
+		    reltext = TRUE;
+		}
+
+	      /* We use the reloc_count field as a counter if we need
+		 to copy relocs into the output file.  */
+	      s->reloc_count = 0;
+	    }
+	}
       else if (! CONST_STRNEQ (name, ".got")
-               && strcmp (name, ".dynbss") != 0)
-        /* It's not one of our sections, so don't allocate space.  */
-        continue;
+	       && strcmp (name, ".dynbss") != 0)
+	/* It's not one of our sections, so don't allocate space.  */
+	continue;
 
       if (s->size == 0)
-        {
-          /* If we don't need this section, strip it from the
-             output file.  This is mostly to handle .rela.bss and
-             .rela.plt.  We must create both sections in
-             create_dynamic_sections, because they must be created
-             before the linker maps input sections to output
-             sections.  The linker does that before
-             adjust_dynamic_symbol is called, and it is that
-             function which decides whether anything needs to go
-             into these sections.  */
-          s->flags |= SEC_EXCLUDE;
-          continue;
-        }
+	{
+	  /* If we don't need this section, strip it from the
+	     output file.  This is mostly to handle .rela.bss and
+	     .rela.plt.  We must create both sections in
+	     create_dynamic_sections, because they must be created
+	     before the linker maps input sections to output
+	     sections.  The linker does that before
+	     adjust_dynamic_symbol is called, and it is that
+	     function which decides whether anything needs to go
+	     into these sections.  */
+	  s->flags |= SEC_EXCLUDE;
+	  continue;
+	}
 
-        if ((s->flags & SEC_HAS_CONTENTS) == 0)
-          continue;
+	if ((s->flags & SEC_HAS_CONTENTS) == 0)
+	  continue;
 
       /* Allocate memory for the section contents.  We use bfd_zalloc
-         here in case unused entries are not reclaimed before the
-         section's contents are written out.  This should not happen,
-         but this way if it does, we get a R_CR16_NONE reloc
-         instead of garbage.  */
+	 here in case unused entries are not reclaimed before the
+	 section's contents are written out.  This should not happen,
+	 but this way if it does, we get a R_CR16_NONE reloc
+	 instead of garbage.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->size);
       if (s->contents == NULL)
-        return FALSE;
+	return FALSE;
     }
 
   if (elf_hash_table (info)->dynamic_sections_created)
     {
       /* Add some entries to the .dynamic section.  We fill in the
-         values later, in _bfd_cr16_elf_finish_dynamic_sections,
-         but we must add the entries now so that we get the correct
-         size for the .dynamic section.  The DT_DEBUG entry is filled
-         in by the dynamic linker and used by the debugger.  */
+	 values later, in _bfd_cr16_elf_finish_dynamic_sections,
+	 but we must add the entries now so that we get the correct
+	 size for the .dynamic section.  The DT_DEBUG entry is filled
+	 in by the dynamic linker and used by the debugger.  */
       if (! bfd_link_executable (info))
-        {
-          if (!_bfd_elf_add_dynamic_entry (info, DT_DEBUG, 0))
-            return FALSE;
-        }
+	{
+	  if (!_bfd_elf_add_dynamic_entry (info, DT_DEBUG, 0))
+	    return FALSE;
+	}
 
       if (plt)
-        {
-          if (!_bfd_elf_add_dynamic_entry (info, DT_PLTGOT, 0)
-              || !_bfd_elf_add_dynamic_entry (info, DT_PLTRELSZ, 0)
-              || !_bfd_elf_add_dynamic_entry (info, DT_PLTREL, DT_RELA)
-              || !_bfd_elf_add_dynamic_entry (info, DT_JMPREL, 0))
-            return FALSE;
-        }
+	{
+	  if (!_bfd_elf_add_dynamic_entry (info, DT_PLTGOT, 0)
+	      || !_bfd_elf_add_dynamic_entry (info, DT_PLTRELSZ, 0)
+	      || !_bfd_elf_add_dynamic_entry (info, DT_PLTREL, DT_RELA)
+	      || !_bfd_elf_add_dynamic_entry (info, DT_JMPREL, 0))
+	    return FALSE;
+	}
 
       if (relocs)
-        {
-          if (!_bfd_elf_add_dynamic_entry (info, DT_RELA, 0)
-              || !_bfd_elf_add_dynamic_entry (info, DT_RELASZ, 0)
-              || !_bfd_elf_add_dynamic_entry (info, DT_RELAENT,
-                                              sizeof (Elf32_External_Rela)))
-            return FALSE;
-        }
+	{
+	  if (!_bfd_elf_add_dynamic_entry (info, DT_RELA, 0)
+	      || !_bfd_elf_add_dynamic_entry (info, DT_RELASZ, 0)
+	      || !_bfd_elf_add_dynamic_entry (info, DT_RELAENT,
+					      sizeof (Elf32_External_Rela)))
+	    return FALSE;
+	}
 
       if (reltext)
-        {
-          if (!_bfd_elf_add_dynamic_entry (info, DT_TEXTREL, 0))
-            return FALSE;
-        }
+	{
+	  if (!_bfd_elf_add_dynamic_entry (info, DT_TEXTREL, 0))
+	    return FALSE;
+	}
     }
 
   return TRUE;
@@ -2598,9 +2582,9 @@ _bfd_cr16_elf_size_dynamic_sections (bfd
 
 static bfd_boolean
 _bfd_cr16_elf_finish_dynamic_symbol (bfd * output_bfd,
-                                     struct bfd_link_info * info,
-                                     struct elf_link_hash_entry * h,
-                                     Elf_Internal_Sym * sym)
+				     struct bfd_link_info * info,
+				     struct elf_link_hash_entry * h,
+				     Elf_Internal_Sym * sym)
 {
   bfd * dynobj;
 
@@ -2608,8 +2592,8 @@ _bfd_cr16_elf_finish_dynamic_symbol (bfd
 
   if (h->got.offset != (bfd_vma) -1)
     {
-      asection *        sgot;
-      asection *        srel;
+      asection *	sgot;
+      asection *	srel;
       Elf_Internal_Rela rel;
 
       /* This symbol has an entry in the global offset table.  Set it up.  */
@@ -2619,57 +2603,57 @@ _bfd_cr16_elf_finish_dynamic_symbol (bfd
       BFD_ASSERT (sgot != NULL && srel != NULL);
 
       rel.r_offset = (sgot->output_section->vma
-                      + sgot->output_offset
-                      + (h->got.offset & ~1));
+		      + sgot->output_offset
+		      + (h->got.offset & ~1));
 
       /* If this is a -Bsymbolic link, and the symbol is defined
-         locally, we just want to emit a RELATIVE reloc.  Likewise if
-         the symbol was forced to be local because of a version file.
-         The entry in the global offset table will already have been
-         initialized in the relocate_section function.  */
+	 locally, we just want to emit a RELATIVE reloc.  Likewise if
+	 the symbol was forced to be local because of a version file.
+	 The entry in the global offset table will already have been
+	 initialized in the relocate_section function.  */
       if (bfd_link_executable (info)
-          && (info->symbolic || h->dynindx == -1)
-          && h->def_regular)
-        {
-          rel.r_info = ELF32_R_INFO (0, R_CR16_GOT_REGREL20);
-          rel.r_addend = (h->root.u.def.value
-                          + h->root.u.def.section->output_section->vma
-                          + h->root.u.def.section->output_offset);
-        }
+	  && (info->symbolic || h->dynindx == -1)
+	  && h->def_regular)
+	{
+	  rel.r_info = ELF32_R_INFO (0, R_CR16_GOT_REGREL20);
+	  rel.r_addend = (h->root.u.def.value
+			  + h->root.u.def.section->output_section->vma
+			  + h->root.u.def.section->output_offset);
+	}
       else
-        {
-          bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset);
-          rel.r_info = ELF32_R_INFO (h->dynindx, R_CR16_GOT_REGREL20);
-          rel.r_addend = 0;
-        }
+	{
+	  bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset);
+	  rel.r_info = ELF32_R_INFO (h->dynindx, R_CR16_GOT_REGREL20);
+	  rel.r_addend = 0;
+	}
 
       bfd_elf32_swap_reloca_out (output_bfd, &rel,
-                                 (bfd_byte *) ((Elf32_External_Rela *) srel->contents
-                                               + srel->reloc_count));
+				 (bfd_byte *) ((Elf32_External_Rela *) srel->contents
+					       + srel->reloc_count));
       ++ srel->reloc_count;
     }
 
   if (h->needs_copy)
     {
-      asection *        s;
+      asection *	s;
       Elf_Internal_Rela rel;
 
       /* This symbol needs a copy reloc.  Set it up.  */
       BFD_ASSERT (h->dynindx != -1
-                  && (h->root.type == bfd_link_hash_defined
-                      || h->root.type == bfd_link_hash_defweak));
+		  && (h->root.type == bfd_link_hash_defined
+		      || h->root.type == bfd_link_hash_defweak));
 
       s = bfd_get_linker_section (dynobj, ".rela.bss");
       BFD_ASSERT (s != NULL);
 
       rel.r_offset = (h->root.u.def.value
-                      + h->root.u.def.section->output_section->vma
-                      + h->root.u.def.section->output_offset);
+		      + h->root.u.def.section->output_section->vma
+		      + h->root.u.def.section->output_offset);
       rel.r_info = ELF32_R_INFO (h->dynindx, R_CR16_GOT_REGREL20);
       rel.r_addend = 0;
       bfd_elf32_swap_reloca_out (output_bfd, &rel,
-                                 (bfd_byte *) ((Elf32_External_Rela *) s->contents
-                                               + s->reloc_count));
+				 (bfd_byte *) ((Elf32_External_Rela *) s->contents
+					       + s->reloc_count));
      ++ s->reloc_count;
     }
 
@@ -2685,7 +2669,7 @@ _bfd_cr16_elf_finish_dynamic_symbol (bfd
 
 static bfd_boolean
 _bfd_cr16_elf_finish_dynamic_sections (bfd * output_bfd,
-                                       struct bfd_link_info * info)
+				       struct bfd_link_info * info)
 {
   bfd *      dynobj;
   asection * sgot;
@@ -2708,35 +2692,35 @@ _bfd_cr16_elf_finish_dynamic_sections (b
       dynconend = (Elf32_External_Dyn *) (sdyn->contents + sdyn->size);
 
       for (; dyncon < dynconend; dyncon++)
-        {
-          Elf_Internal_Dyn dyn;
-          asection * s;
-
-          bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
-
-          switch (dyn.d_tag)
-            {
-            default:
-              break;
-
-            case DT_PLTGOT:
-              s = elf_hash_table (info)->sgotplt;
-              goto get_vma;
-
-            case DT_JMPREL:
-              s = elf_hash_table (info)->srelplt;
-            get_vma:
-              dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
-              bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
-              break;
-
-            case DT_PLTRELSZ:
-              s = elf_hash_table (info)->srelplt;
-              dyn.d_un.d_val = s->size;
-              bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
-              break;
-            }
-        }
+	{
+	  Elf_Internal_Dyn dyn;
+	  asection * s;
+
+	  bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
+
+	  switch (dyn.d_tag)
+	    {
+	    default:
+	      break;
+
+	    case DT_PLTGOT:
+	      s = elf_hash_table (info)->sgotplt;
+	      goto get_vma;
+
+	    case DT_JMPREL:
+	      s = elf_hash_table (info)->srelplt;
+	    get_vma:
+	      dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
+	      bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
+	      break;
+
+	    case DT_PLTRELSZ:
+	      s = elf_hash_table (info)->srelplt;
+	      dyn.d_un.d_val = s->size;
+	      bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
+	      break;
+	    }
+	}
 
     }
 
@@ -2744,11 +2728,11 @@ _bfd_cr16_elf_finish_dynamic_sections (b
   if (sgot->size > 0)
     {
       if (sdyn == NULL)
-        bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents);
+	bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents);
       else
-        bfd_put_32 (output_bfd,
-                    sdyn->output_section->vma + sdyn->output_offset,
-                    sgot->contents);
+	bfd_put_32 (output_bfd,
+		    sdyn->output_section->vma + sdyn->output_offset,
+		    sgot->contents);
     }
 
   elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4;
@@ -2765,10 +2749,10 @@ _bfd_cr16_elf_finish_dynamic_sections (b
 
 bfd_boolean
 bfd_cr16_elf32_create_embedded_relocs (bfd *abfd,
-                                       struct bfd_link_info *info,
-                                       asection *datasec,
-                                       asection *relsec,
-                                       char **errmsg)
+				       struct bfd_link_info *info,
+				       asection *datasec,
+				       asection *relsec,
+				       char **errmsg)
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Sym *isymbuf = NULL;
@@ -2788,7 +2772,7 @@ bfd_cr16_elf32_create_embedded_relocs (b
 
   /* Get a copy of the native relocations.  */
   internal_relocs = (_bfd_elf_link_read_relocs
-                     (abfd, datasec, NULL, NULL, info->keep_memory));
+		     (abfd, datasec, NULL, NULL, info->keep_memory));
   if (internal_relocs == NULL)
     goto error_return;
 
@@ -2812,55 +2796,55 @@ bfd_cr16_elf32_create_embedded_relocs (b
 
       /* We can only relocate absolute longword relocs at run time.  */
       if (!((ELF32_R_TYPE (irel->r_info) == (int) R_CR16_NUM32a)
-          || (ELF32_R_TYPE (irel->r_info) == (int) R_CR16_NUM32)))
-        {
-          *errmsg = _("unsupported reloc type");
-          bfd_set_error (bfd_error_bad_value);
-          goto error_return;
-        }
+	  || (ELF32_R_TYPE (irel->r_info) == (int) R_CR16_NUM32)))
+	{
+	  *errmsg = _("unsupported reloc type");
+	  bfd_set_error (bfd_error_bad_value);
+	  goto error_return;
+	}
 
       /* Get the target section referred to by the reloc.  */
       if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info)
-        {
-          /* A local symbol.  */
-          Elf_Internal_Sym *isym;
-
-          /* Read this BFD's local symbols if we haven't done so already.  */
-          if (isymbuf == NULL)
-            {
-              isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
-              if (isymbuf == NULL)
-                isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr,
-                                                symtab_hdr->sh_info, 0,
-                                                NULL, NULL, NULL);
-              if (isymbuf == NULL)
-                goto error_return;
-            }
-
-          isym = isymbuf + ELF32_R_SYM (irel->r_info);
-          targetsec = bfd_section_from_elf_index (abfd, isym->st_shndx);
-        }
+	{
+	  /* A local symbol.  */
+	  Elf_Internal_Sym *isym;
+
+	  /* Read this BFD's local symbols if we haven't done so already.  */
+	  if (isymbuf == NULL)
+	    {
+	      isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
+	      if (isymbuf == NULL)
+		isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr,
+						symtab_hdr->sh_info, 0,
+						NULL, NULL, NULL);
+	      if (isymbuf == NULL)
+		goto error_return;
+	    }
+
+	  isym = isymbuf + ELF32_R_SYM (irel->r_info);
+	  targetsec = bfd_section_from_elf_index (abfd, isym->st_shndx);
+	}
       else
-        {
-          unsigned long indx;
-          struct elf_link_hash_entry *h;
-
-          /* An external symbol.  */
-          indx = ELF32_R_SYM (irel->r_info) - symtab_hdr->sh_info;
-          h = elf_sym_hashes (abfd)[indx];
-          BFD_ASSERT (h != NULL);
-          if (h->root.type == bfd_link_hash_defined
-              || h->root.type == bfd_link_hash_defweak)
-            targetsec = h->root.u.def.section;
-          else
-            targetsec = NULL;
-        }
+	{
+	  unsigned long indx;
+	  struct elf_link_hash_entry *h;
+
+	  /* An external symbol.  */
+	  indx = ELF32_R_SYM (irel->r_info) - symtab_hdr->sh_info;
+	  h = elf_sym_hashes (abfd)[indx];
+	  BFD_ASSERT (h != NULL);
+	  if (h->root.type == bfd_link_hash_defined
+	      || h->root.type == bfd_link_hash_defweak)
+	    targetsec = h->root.u.def.section;
+	  else
+	    targetsec = NULL;
+	}
 
       bfd_put_32 (abfd, irel->r_offset + datasec->output_offset, p);
       memset (p + 4, 0, 4);
       if ((ELF32_R_TYPE (irel->r_info) == (int) R_CR16_NUM32a)
-          && (targetsec != NULL) )
-         strncpy ((char *) p + 4, targetsec->output_section->name, 4);
+	  && (targetsec != NULL) )
+	 strncpy ((char *) p + 4, targetsec->output_section->name, 4);
     }
 
   if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
@@ -2899,59 +2883,58 @@ _bfd_cr16_elf_reloc_type_class (const st
 }
 
 /* Definitions for setting CR16 target vector.  */
-#define TARGET_LITTLE_SYM                 cr16_elf32_vec
-#define TARGET_LITTLE_NAME                "elf32-cr16"
-#define ELF_ARCH                          bfd_arch_cr16
-#define ELF_MACHINE_CODE                  EM_CR16
-#define ELF_MACHINE_ALT1                  EM_CR16_OLD
-#define ELF_MAXPAGESIZE                   0x1
-#define elf_symbol_leading_char           '_'
-
-#define bfd_elf32_bfd_reloc_type_lookup   elf_cr16_reloc_type_lookup
-#define bfd_elf32_bfd_reloc_name_lookup   elf_cr16_reloc_name_lookup
-#define elf_info_to_howto                 elf_cr16_info_to_howto
-#define elf_info_to_howto_rel             0
-#define elf_backend_relocate_section      elf32_cr16_relocate_section
-#define bfd_elf32_bfd_relax_section       elf32_cr16_relax_section
+#define TARGET_LITTLE_SYM		  cr16_elf32_vec
+#define TARGET_LITTLE_NAME		  "elf32-cr16"
+#define ELF_ARCH			  bfd_arch_cr16
+#define ELF_MACHINE_CODE		  EM_CR16
+#define ELF_MACHINE_ALT1		  EM_CR16_OLD
+#define ELF_MAXPAGESIZE			  0x1
+#define elf_symbol_leading_char		  '_'
+
+#define bfd_elf32_bfd_reloc_type_lookup	  elf_cr16_reloc_type_lookup
+#define bfd_elf32_bfd_reloc_name_lookup	  elf_cr16_reloc_name_lookup
+#define elf_info_to_howto		  elf_cr16_info_to_howto
+#define elf_info_to_howto_rel		  0
+#define elf_backend_relocate_section	  elf32_cr16_relocate_section
+#define bfd_elf32_bfd_relax_section	  elf32_cr16_relax_section
 #define bfd_elf32_bfd_get_relocated_section_contents \
-                                elf32_cr16_get_relocated_section_contents
-#define elf_backend_gc_mark_hook          elf32_cr16_gc_mark_hook
-#define elf_backend_gc_sweep_hook         elf32_cr16_gc_sweep_hook
-#define elf_backend_can_gc_sections       1
-#define elf_backend_rela_normal           1
-#define elf_backend_check_relocs          cr16_elf_check_relocs
+				elf32_cr16_get_relocated_section_contents
+#define elf_backend_gc_mark_hook	  elf32_cr16_gc_mark_hook
+#define elf_backend_can_gc_sections	  1
+#define elf_backend_rela_normal		  1
+#define elf_backend_check_relocs	  cr16_elf_check_relocs
 /* So we can set bits in e_flags.  */
 #define elf_backend_final_write_processing \
-                                 _bfd_cr16_elf_final_write_processing
-#define elf_backend_object_p     _bfd_cr16_elf_object_p
+				 _bfd_cr16_elf_final_write_processing
+#define elf_backend_object_p	 _bfd_cr16_elf_object_p
 
 #define bfd_elf32_bfd_merge_private_bfd_data \
-                                 _bfd_cr16_elf_merge_private_bfd_data
+				 _bfd_cr16_elf_merge_private_bfd_data
 
 
 #define bfd_elf32_bfd_link_hash_table_create \
-                                  elf32_cr16_link_hash_table_create
+				  elf32_cr16_link_hash_table_create
 
 #define elf_backend_create_dynamic_sections \
-                                  _bfd_cr16_elf_create_dynamic_sections
+				  _bfd_cr16_elf_create_dynamic_sections
 #define elf_backend_adjust_dynamic_symbol \
-                                  _bfd_cr16_elf_adjust_dynamic_symbol
+				  _bfd_cr16_elf_adjust_dynamic_symbol
 #define elf_backend_size_dynamic_sections \
-                                  _bfd_cr16_elf_size_dynamic_sections
+				  _bfd_cr16_elf_size_dynamic_sections
 #define elf_backend_omit_section_dynsym \
       ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
 #define elf_backend_finish_dynamic_symbol \
-                                   _bfd_cr16_elf_finish_dynamic_symbol
+				   _bfd_cr16_elf_finish_dynamic_symbol
 #define elf_backend_finish_dynamic_sections \
-                                   _bfd_cr16_elf_finish_dynamic_sections
+				   _bfd_cr16_elf_finish_dynamic_sections
 
 #define elf_backend_reloc_type_class   _bfd_cr16_elf_reloc_type_class
 
 
-#define elf_backend_want_got_plt        1
-#define elf_backend_plt_readonly        1
-#define elf_backend_want_plt_sym        0
-#define elf_backend_got_header_size     12
+#define elf_backend_want_got_plt	1
+#define elf_backend_plt_readonly	1
+#define elf_backend_want_plt_sym	0
+#define elf_backend_got_header_size	12
 #define elf_backend_dtrel_excludes_plt	1
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-cr16c.c ./bfd/elf32-cr16c.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-cr16c.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-cr16c.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for National Semiconductor's CR16C ELF
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -233,10 +233,10 @@ cr16c_elf_final_link_relocate (reloc_how
     case R_NUMBER:
       switch (size)
 	{
-	case R_S_16C_08: 	/* One byte.  */
+	case R_S_16C_08:	/* One byte.  */
 	  value = bfd_get_8 (abfd, (char *) data + octets);
 	  break;
-	case R_S_16C_16: 	/* Two bytes. */
+	case R_S_16C_16:	/* Two bytes. */
 	  sword = bfd_get_16 (abfd, (bfd_byte *) data + octets);
 	  value = sword;
 	  break;
@@ -437,7 +437,7 @@ cr16c_elf_final_link_relocate (reloc_how
     case R_NUMBER:
       switch (size)
 	{
-	case R_S_16C_08: 	/* One byte.  */
+	case R_S_16C_08:	/* One byte.  */
 	  if (value > (int) MAX_UBYTE || value < MIN_BYTE)
 	    return bfd_reloc_overflow;
 	  value &= 0xFF;
@@ -582,7 +582,7 @@ cr16c_elf_final_link_relocate (reloc_how
 	  if (neg2pos)
 	    {
 	      /* Change load/stor negative displ opcode
-	         to load/stor positive displ opcode.  */
+		 to load/stor positive displ opcode.  */
 	      value = bfd_get_8 (abfd, (char *) data + octets - 3);
 	      value &= 0xF7;
 	      value |= 0x2;
@@ -951,9 +951,9 @@ elf32_cr16c_link_output_symbol_hook (str
 #define elf_info_to_howto_rel			elf_cr16c_info_to_howto_rel
 #define elf_backend_relocate_section		elf32_cr16c_relocate_section
 #define elf_backend_symbol_processing		elf32_cr16c_symbol_processing
-#define elf_backend_section_from_bfd_section 	elf32_cr16c_section_from_bfd_section
+#define elf_backend_section_from_bfd_section	elf32_cr16c_section_from_bfd_section
 #define elf_backend_add_symbol_hook		elf32_cr16c_add_symbol_hook
-#define elf_backend_link_output_symbol_hook 	elf32_cr16c_link_output_symbol_hook
+#define elf_backend_link_output_symbol_hook	elf32_cr16c_link_output_symbol_hook
 
 #define elf_backend_can_gc_sections     1
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-cris.c ./bfd/elf32-cris.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-cris.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-cris.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* CRIS-specific support for 32-bit ELF.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Axis Communications AB.
    Written by Hans-Peter Nilsson, based on elf32-fr30.c
    PIC and shlib bits based primarily on elf32-m68k.c and elf32-i386.c.
@@ -358,10 +358,10 @@ static reloc_howto_type cris_elf_howto_t
      relocs for cross-format linking.  */
 #define TLSHOWTO32(name) \
  HOWTO (name, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, \
-        bfd_elf_generic_reloc, #name, FALSE, 0, 0xffffffff, FALSE)
+	bfd_elf_generic_reloc, #name, FALSE, 0, 0xffffffff, FALSE)
 #define TLSHOWTO16X(name, X)	     \
  HOWTO (name, 0, 1, 16, FALSE, 0, complain_overflow_ ## X, \
-        bfd_elf_generic_reloc, #name, FALSE, 0, 0xffff, FALSE)
+	bfd_elf_generic_reloc, #name, FALSE, 0, 0xffff, FALSE)
 #define TLSHOWTO16(name) TLSHOWTO16X(name, unsigned)
 #define TLSHOWTO16S(name) TLSHOWTO16X(name, signed)
 
@@ -913,11 +913,11 @@ elf_cris_link_hash_table_create (bfd *ab
 
 static bfd_reloc_status_type
 cris_final_link_relocate (reloc_howto_type *  howto,
-			  bfd *               input_bfd,
-			  asection *          input_section,
-			  bfd_byte *          contents,
+			  bfd *		      input_bfd,
+			  asection *	      input_section,
+			  bfd_byte *	      contents,
 			  Elf_Internal_Rela * rel,
-			  bfd_vma             relocation)
+			  bfd_vma	      relocation)
 {
   bfd_reloc_status_type r;
   enum elf_cris_reloc_type r_type = ELF32_R_TYPE (rel->r_info);
@@ -1018,6 +1018,7 @@ cris_elf_relocate_section (bfd *output_b
       bfd_reloc_status_type r;
       const char *symname = NULL;
       enum elf_cris_reloc_type r_type;
+      bfd_boolean resolved_to_zero;
 
       r_type = ELF32_R_TYPE (rel->r_info);
 
@@ -1130,6 +1131,9 @@ cris_elf_relocate_section (bfd *output_b
       if (bfd_link_relocatable (info))
 	continue;
 
+      resolved_to_zero = (h != NULL
+			  && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h));
+
       switch (r_type)
 	{
 	case R_CRIS_16_GOTPLT:
@@ -1301,7 +1305,7 @@ cris_elf_relocate_section (bfd *output_b
 		if (h == NULL)
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B, section %A: relocation %s with non-zero addend %d"
+		    (_("%B, section %A: relocation %s with non-zero addend %Ld"
 		       " against local symbol"),
 		     input_bfd,
 		     input_section,
@@ -1310,7 +1314,7 @@ cris_elf_relocate_section (bfd *output_b
 		else
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B, section %A: relocation %s with non-zero addend %d"
+		    (_("%B, section %A: relocation %s with non-zero addend %Ld"
 		       " against symbol `%s'"),
 		     input_bfd,
 		     input_section,
@@ -1432,6 +1436,7 @@ cris_elf_relocate_section (bfd *output_b
 	case R_CRIS_16:
 	case R_CRIS_32:
 	  if (bfd_link_pic (info)
+	      && !resolved_to_zero
 	      && r_symndx != STN_UNDEF
 	      && (input_section->flags & SEC_ALLOC) != 0
 	      && ((r_type != R_CRIS_8_PCREL
@@ -1544,8 +1549,8 @@ cris_elf_relocate_section (bfd *output_b
 	      bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 
 	      /* This reloc will be computed at runtime, so there's no
-                 need to do anything now, except for R_CRIS_32 relocations
-                 that have been turned into R_CRIS_RELATIVE.  */
+		 need to do anything now, except for R_CRIS_32 relocations
+		 that have been turned into R_CRIS_RELATIVE.  */
 	      if (!relocate)
 		continue;
 	    }
@@ -1657,7 +1662,7 @@ cris_elf_relocate_section (bfd *output_b
 		 to pass us these kinds of things.  */
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B, section %A: relocation %s with non-zero addend %d"
+		(_("%B, section %A: relocation %s with non-zero addend %Ld"
 		   " against symbol `%s'"),
 		 input_bfd,
 		 input_section,
@@ -1810,7 +1815,7 @@ cris_elf_relocate_section (bfd *output_b
 		 things.  */
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B, section %A: relocation %s with non-zero addend %d"
+		(_("%B, section %A: relocation %s with non-zero addend %Ld"
 		   " against symbol `%s'"),
 		 input_bfd,
 		 input_section,
@@ -2404,7 +2409,7 @@ elf_cris_finish_dynamic_sections (bfd *o
 		  elf_section_data (splt->output_section)->this_hdr.sh_entsize
 		    = PLT_ENTRY_SIZE;
 		}
-            }
+	    }
 	}
     }
 
@@ -2451,193 +2456,6 @@ cris_elf_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-/* Update the got entry reference counts for the section being removed.  */
-
-static bfd_boolean
-cris_elf_gc_sweep_hook (bfd *abfd,
-			struct bfd_link_info *info,
-			asection *sec,
-			const Elf_Internal_Rela *relocs)
-{
-  struct elf_cris_link_hash_table * htab;
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-  bfd *dynobj;
-  asection *sgot;
-  asection *srelgot;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  dynobj = elf_hash_table (info)->dynobj;
-  if (dynobj == NULL)
-    return TRUE;
-
-  htab = elf_cris_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  sgot = htab->root.sgot;
-  srelgot = htab->root.srelgot;
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      struct elf_link_hash_entry *h = NULL;
-      bfd_signed_vma got_element_size = 4;
-      bfd_signed_vma *specific_refcount = NULL;
-      enum elf_cris_reloc_type r_type;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	}
-
-      r_type = ELF32_R_TYPE (rel->r_info);
-      switch (r_type)
-	{
-	case R_CRIS_32_GOT:
-	case R_CRIS_16_GOT:
-	case R_CRIS_16_GOTPLT:
-	case R_CRIS_32_GOTPLT:
-	  specific_refcount = h != NULL
-	    ? &((struct elf_cris_link_hash_entry *) h)->reg_got_refcount
-	    : &local_got_refcounts[LGOT_REG_NDX (r_symndx)];
-	  break;
-
-	case R_CRIS_32_GD:
-	case R_CRIS_32_GOT_GD:
-	case R_CRIS_16_GOT_GD:
-	  got_element_size = 8;
-	  specific_refcount = h != NULL
-	    ? &((struct elf_cris_link_hash_entry *) h)->dtp_refcount
-	    : &local_got_refcounts[LGOT_DTP_NDX (r_symndx)];
-	  break;
-
-	case R_CRIS_32_IE:
-	case R_CRIS_16_GOT_TPREL:
-	case R_CRIS_32_GOT_TPREL:
-	  specific_refcount = h != NULL
-	    ? &((struct elf_cris_link_hash_entry *) h)->tprel_refcount
-	    : &local_got_refcounts[LGOT_TPREL_NDX (r_symndx)];
-	  break;
-
-	default:
-	  break;
-	}
-
-      switch (r_type)
-	{
-	case R_CRIS_32_IE:
-	case R_CRIS_32_GD:
-	case R_CRIS_16_GOT_TPREL:
-	case R_CRIS_32_GOT_TPREL:
-	case R_CRIS_32_GOT_GD:
-	case R_CRIS_16_GOT_GD:
-	case R_CRIS_16_GOT:
-	case R_CRIS_32_GOT:
-	  if (h != NULL)
-	    {
-	      /* If the counters are 0 when we got here, we've
-		 miscounted somehow somewhere, an internal error.  */
-	      BFD_ASSERT (h->got.refcount > 0);
-	      --h->got.refcount;
-
-	      BFD_ASSERT (*specific_refcount > 0);
-	      --*specific_refcount;
-	      if (*specific_refcount == 0)
-		{
-		  /* We don't need the .got entry any more.  */
-		  sgot->size -= got_element_size;
-		  srelgot->size -= sizeof (Elf32_External_Rela);
-		}
-	      break;
-	    }
-
-	local_got_reloc:
-	  if (local_got_refcounts != NULL)
-	    {
-	      /* If the counters are 0 when we got here, we've
-		 miscounted somehow somewhere, an internal error.  */
-	      BFD_ASSERT (local_got_refcounts[r_symndx] > 0);
-	      --local_got_refcounts[r_symndx];
-
-	      BFD_ASSERT (*specific_refcount > 0);
-	      --*specific_refcount;
-	      if (*specific_refcount == 0)
-		{
-		  /* We don't need the .got entry any more.  */
-		  sgot->size -= got_element_size;
-		  if (bfd_link_pic (info))
-		    srelgot->size -= sizeof (Elf32_External_Rela);
-		}
-	    }
-	  break;
-
-	case R_CRIS_16_GOTPLT:
-	case R_CRIS_32_GOTPLT:
-	  /* For local symbols, treat these like GOT relocs.  */
-	  if (h == NULL)
-	    goto local_got_reloc;
-	  else
-	    /* For global symbols, adjust the reloc-specific refcount.  */
-	    elf_cris_hash_entry (h)->gotplt_refcount--;
-	  /* Fall through.  */
-
-	case R_CRIS_32_PLT_GOTREL:
-	  /* FIXME: We don't garbage-collect away the .got section.  */
-	  if (local_got_refcounts != NULL)
-	    local_got_refcounts[-1]--;
-	  /* Fall through.  */
-
-	case R_CRIS_8:
-	case R_CRIS_16:
-	case R_CRIS_32:
-	case R_CRIS_8_PCREL:
-	case R_CRIS_16_PCREL:
-	case R_CRIS_32_PCREL:
-	case R_CRIS_32_PLT_PCREL:
-	  /* Negate the increment we did in cris_elf_check_relocs.  */
-	  if (h != NULL)
-	    {
-	      if (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-		  && h->plt.refcount > 0)
-		--h->plt.refcount;
-	    }
-	  break;
-
-	case R_CRIS_32_DTPREL:
-	  /* This'd be a .dtpreld entry in e.g. debug info.  */
-	  if ((sec->flags & SEC_ALLOC) == 0)
-	    break;
-	  /* Fall through.  */
-	case R_CRIS_16_DTPREL:
-	  htab->dtpmod_refcount--;
-	  if (htab->dtpmod_refcount == 0)
-	    htab->next_gotplt_entry -= 8;
-	  BFD_ASSERT (local_got_refcounts != NULL);
-	  local_got_refcounts[-1]--;
-	  break;
-
-	default:
-	  break;
-	}
-    }
-
-  return TRUE;
-}
-
 /* The elf_backend_plt_sym_val hook function.  */
 
 static bfd_vma
@@ -2853,7 +2671,7 @@ elf_cris_adjust_dynamic_symbol (struct b
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
 	      && (h->needs_plt
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -2995,12 +2813,12 @@ elf_cris_adjust_dynamic_symbol (struct b
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -3175,10 +2993,6 @@ cris_elf_check_relocs (bfd *abfd,
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       r_type = ELF32_R_TYPE (rel->r_info);
@@ -3230,7 +3044,7 @@ cris_elf_check_relocs (bfd *abfd,
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B, section %A:\n  v10/v32 compatible object %s"
+		    (_("%B, section %A:\n  v10/v32 compatible object"
 		       " must not contain a PIC relocation"),
 		     abfd, sec);
 		  return FALSE;
@@ -3336,7 +3150,7 @@ cris_elf_check_relocs (bfd *abfd,
 	}
 
       switch (r_type)
-        {
+	{
 	case R_CRIS_16_GOTPLT:
 	case R_CRIS_32_GOTPLT:
 	  /* Mark that we need a GOT entry if the PLT entry (and its GOT
@@ -3463,10 +3277,10 @@ cris_elf_check_relocs (bfd *abfd,
 	case R_CRIS_32_PLT_PCREL:
 	  /* This symbol requires a procedure linkage table entry.  We
 	     actually build the entry in adjust_dynamic_symbol,
-             because this might be a case of linking PIC code which is
-             never referenced by a dynamic object, in which case we
-             don't need to generate a procedure linkage table entry
-             after all.  */
+	     because this might be a case of linking PIC code which is
+	     never referenced by a dynamic object, in which case we
+	     don't need to generate a procedure linkage table entry
+	     after all.  */
 
 	  /* Beware: if we'd check for visibility of the symbol here
 	     (and not marking the need for a PLT when non-visible), we'd
@@ -3540,7 +3354,8 @@ cris_elf_check_relocs (bfd *abfd,
 	     render the symbol local.  */
 
 	  /* No need to do anything if we're not creating a shared object.  */
-	  if (! bfd_link_pic (info))
+	  if (! bfd_link_pic (info)
+	      || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	    break;
 
 	  /* We may need to create a reloc section in the dynobj and made room
@@ -3657,21 +3472,21 @@ cris_elf_check_relocs (bfd *abfd,
 	  }
 	  break;
 
-        /* This relocation describes the C++ object vtable hierarchy.
-           Reconstruct it for later use during GC.  */
-        case R_CRIS_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-        /* This relocation describes which C++ vtable entries are actually
-           used.  Record for later use during GC.  */
-        case R_CRIS_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
+	/* This relocation describes the C++ object vtable hierarchy.
+	   Reconstruct it for later use during GC.  */
+	case R_CRIS_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	/* This relocation describes which C++ vtable entries are actually
+	   used.  Record for later use during GC.  */
+	case R_CRIS_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
 
 	case R_CRIS_16_TPREL:
 	case R_CRIS_32_TPREL:
@@ -3682,7 +3497,7 @@ cris_elf_check_relocs (bfd *abfd,
 	  /* Other relocs do not appear here.  */
 	  bfd_set_error (bfd_error_bad_value);
 	  return FALSE;
-        }
+	}
     }
 
   return TRUE;
@@ -3789,7 +3604,7 @@ elf_cris_size_dynamic_sections (bfd *out
 	  if (s->size != 0)
 	    {
 	      /* Remember whether there are any reloc sections other
-                 than .rela.plt.  */
+		 than .rela.plt.  */
 	      if (strcmp (name, ".rela.plt") != 0)
 		  relocs = TRUE;
 
@@ -3982,6 +3797,7 @@ elf_cris_discard_excess_program_dynamics
       if (! (info->export_dynamic
 	     || (h->root.type != STT_FUNC && info->dynamic_data))
 	  && h->root.dynindx != -1
+	  && !h->root.dynamic
 	  && !h->root.def_dynamic
 	  && !h->root.ref_dynamic)
 	{
@@ -4290,9 +4106,8 @@ elf_cris_got_elt_size (bfd *abfd ATTRIBU
 #define elf_info_to_howto			cris_info_to_howto_rela
 #define elf_backend_relocate_section		cris_elf_relocate_section
 #define elf_backend_gc_mark_hook		cris_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook		cris_elf_gc_sweep_hook
 #define elf_backend_plt_sym_val			cris_elf_plt_sym_val
-#define elf_backend_check_relocs                cris_elf_check_relocs
+#define elf_backend_check_relocs		cris_elf_check_relocs
 #define elf_backend_grok_prstatus		cris_elf_grok_prstatus
 #define elf_backend_grok_psinfo			cris_elf_grok_psinfo
 
@@ -4347,6 +4162,8 @@ elf_cris_got_elt_size (bfd *abfd ATTRIBU
 #define elf_backend_may_use_rela_p 1
 #define elf_backend_rela_normal		1
 
+#define elf_backend_linux_prpsinfo32_ugid16	TRUE
+
 #include "elf32-target.h"
 
 #undef TARGET_LITTLE_SYM
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-crx.c ./bfd/elf32-crx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-crx.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-crx.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for National Semiconductor's CRX ELF
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
    Written by Tomer Levi, NSC, Israel.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -272,7 +272,7 @@ static reloc_howto_type crx_elf_howto_ta
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_CRX_NUM8",		/* name */
 	 FALSE,			/* partial_inplace */
-	 0x0,	  		/* src_mask */
+	 0x0,			/* src_mask */
 	 0xff,			/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
@@ -286,7 +286,7 @@ static reloc_howto_type crx_elf_howto_ta
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_CRX_NUM16",		/* name */
 	 FALSE,			/* partial_inplace */
-	 0x0,	  		/* src_mask */
+	 0x0,			/* src_mask */
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
@@ -300,7 +300,7 @@ static reloc_howto_type crx_elf_howto_ta
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_CRX_NUM32",		/* name */
 	 FALSE,			/* partial_inplace */
-	 0x0,	  		/* src_mask */
+	 0x0,			/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
@@ -314,7 +314,7 @@ static reloc_howto_type crx_elf_howto_ta
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_CRX_IMM16",		/* name */
 	 FALSE,			/* partial_inplace */
-	 0x0, 	 		/* src_mask */
+	 0x0,			/* src_mask */
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
@@ -328,7 +328,7 @@ static reloc_howto_type crx_elf_howto_ta
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_CRX_IMM32",		/* name */
 	 FALSE,			/* partial_inplace */
-	 0x0,  			/* src_mask */
+	 0x0,			/* src_mask */
 	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-d10v.c ./bfd/elf32-d10v.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-d10v.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-d10v.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* D10V-specific support for 32-bit ELF
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Contributed by Martin Hunt (hunt@cygnus.com).
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -47,32 +47,32 @@ static reloc_howto_type elf_d10v_howto_t
 
   /* An PC Relative 10-bit relocation, shifted by 2, right container.  */
   HOWTO (R_D10V_10_PCREL_R,	/* Type.  */
-	 2,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 8,	                /* Bitsize.  */
-	 TRUE,	        	/* PC_relative.  */
-	 0,	                /* Bitpos.  */
+	 2,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 8,			/* Bitsize.  */
+	 TRUE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_signed, /* Complain_on_overflow.  */
 	 bfd_elf_generic_reloc, /* Special_function.  */
 	 "R_D10V_10_PCREL_R",	/* Name.  */
-	 FALSE,	        	/* Partial_inplace.  */
+	 FALSE,			/* Partial_inplace.  */
 	 0xff,			/* Src_mask.  */
-	 0xff,   		/* Dst_mask.  */
+	 0xff,			/* Dst_mask.  */
 	 TRUE),			/* PCrel_offset.  */
 
   /* An PC Relative 10-bit relocation, shifted by 2, left container.  */
   HOWTO (R_D10V_10_PCREL_L,	/* Type.  */
-	 2,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 8,	                /* Bitsize.  */
-	 TRUE,	        	/* PC_relative.  */
-	 15,	                /* Bitpos.  */
+	 2,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 8,			/* Bitsize.  */
+	 TRUE,			/* PC_relative.  */
+	 15,			/* Bitpos.  */
 	 complain_overflow_signed, /* Complain_on_overflow.  */
 	 bfd_elf_generic_reloc, /* Special_function.  */
 	 "R_D10V_10_PCREL_L",	/* Name.  */
-	 FALSE,	        	/* Partial_inplace.  */
+	 FALSE,			/* Partial_inplace.  */
 	 0x07f8000,		/* Src_mask.  */
-	 0x07f8000,   		/* Dst_mask.  */
+	 0x07f8000,		/* Dst_mask.  */
 	 TRUE),			/* PCrel_offset.  */
 
   /* A 16 bit absolute relocation.  */
@@ -137,33 +137,33 @@ static reloc_howto_type elf_d10v_howto_t
 
   /* GNU extension to record C++ vtable hierarchy.  */
   HOWTO (R_D10V_GNU_VTINHERIT,	/* Type.  */
-	 0,                     /* Rightshift.  */
-	 2,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-	 0,                     /* Bitsize.  */
-	 FALSE,                 /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* Bitsize.  */
+	 FALSE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_dont,/* Complain_on_overflow.  */
-	 NULL,                  /* Special_function.  */
+	 NULL,			/* Special_function.  */
 	 "R_D10V_GNU_VTINHERIT",/* Name.  */
-	 FALSE,                 /* Partial_inplace.  */
-	 0,                     /* Src_mask.  */
-	 0,                     /* Dst_mask.  */
-	 FALSE),                /* PCrel_offset.  */
+	 FALSE,			/* Partial_inplace.  */
+	 0,			/* Src_mask.  */
+	 0,			/* Dst_mask.  */
+	 FALSE),		/* PCrel_offset.  */
 
   /* GNU extension to record C++ vtable member usage.  */
-  HOWTO (R_D10V_GNU_VTENTRY,    /* Type.  */
-	 0,                     /* Rightshift.  */
-	 2,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-	 0,                     /* Bitsize.  */
-	 FALSE,                 /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+  HOWTO (R_D10V_GNU_VTENTRY,	/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* Bitsize.  */
+	 FALSE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_dont,/* Complain_on_overflow.  */
 	 _bfd_elf_rel_vtable_reloc_fn,  /* Special_function.  */
-	 "R_D10V_GNU_VTENTRY",  /* Name.  */
-	 FALSE,                 /* Partial_inplace.  */
-	 0,                     /* Src_mask.  */
-	 0,                     /* Dst_mask.  */
-	 FALSE),                /* PCrel_offset.  */
+	 "R_D10V_GNU_VTENTRY",	/* Name.  */
+	 FALSE,			/* Partial_inplace.  */
+	 0,			/* Src_mask.  */
+	 0,			/* Dst_mask.  */
+	 FALSE),		/* PCrel_offset.  */
 };
 
 /* Map BFD reloc types to D10V ELF reloc types.  */
@@ -284,37 +284,33 @@ elf32_d10v_check_relocs (bfd *abfd,
 
       r_symndx = ELF32_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
-        {
-        /* This relocation describes the C++ object vtable hierarchy.
-           Reconstruct it for later use during GC.  */
-        case R_D10V_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-        /* This relocation describes which C++ vtable entries are actually
-           used.  Record for later use during GC.  */
-        case R_D10V_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-        }
+	{
+	/* This relocation describes the C++ object vtable hierarchy.
+	   Reconstruct it for later use during GC.  */
+	case R_D10V_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	/* This relocation describes which C++ vtable entries are actually
+	   used.  Record for later use during GC.  */
+	case R_D10V_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+	}
     }
 
   return TRUE;
@@ -424,8 +420,8 @@ elf32_d10v_relocate_section (bfd *output
       r_type = ELF32_R_TYPE (rel->r_info);
 
       if (r_type == R_D10V_GNU_VTENTRY
-          || r_type == R_D10V_GNU_VTINHERIT)
-        continue;
+	  || r_type == R_D10V_GNU_VTINHERIT)
+	continue;
 
       howto = elf_d10v_howto_table + r_type;
       h = NULL;
@@ -489,8 +485,8 @@ elf32_d10v_relocate_section (bfd *output
 	}
 
       r = _bfd_final_link_relocate (howto, input_bfd, input_section,
-                                    contents, rel->r_offset,
-                                    relocation, (bfd_vma) 0);
+				    contents, rel->r_offset,
+				    relocation, (bfd_vma) 0);
 
       if (r != bfd_reloc_ok)
 	{
@@ -540,16 +536,16 @@ elf32_d10v_relocate_section (bfd *output
 #define ELF_MACHINE_ALT1	EM_CYGNUS_D10V
 #define ELF_MAXPAGESIZE		0x1000
 
-#define TARGET_BIG_SYM          d10v_elf32_vec
+#define TARGET_BIG_SYM		d10v_elf32_vec
 #define TARGET_BIG_NAME		"elf32-d10v"
 
-#define elf_info_to_howto	             0
-#define elf_info_to_howto_rel	             d10v_info_to_howto_rel
-#define elf_backend_object_p	             0
+#define elf_info_to_howto		     0
+#define elf_info_to_howto_rel		     d10v_info_to_howto_rel
+#define elf_backend_object_p		     0
 #define elf_backend_final_write_processing   0
-#define elf_backend_gc_mark_hook             elf32_d10v_gc_mark_hook
-#define elf_backend_check_relocs             elf32_d10v_check_relocs
-#define elf_backend_relocate_section         elf32_d10v_relocate_section
-#define elf_backend_can_gc_sections          1
+#define elf_backend_gc_mark_hook	     elf32_d10v_gc_mark_hook
+#define elf_backend_check_relocs	     elf32_d10v_check_relocs
+#define elf_backend_relocate_section	     elf32_d10v_relocate_section
+#define elf_backend_can_gc_sections	     1
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-d30v.c ./bfd/elf32-d30v.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-d30v.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-d30v.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* D30V-specific support for 32-bit ELF
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
    Contributed by Martin Hunt (hunt@cygnus.com).
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -56,7 +56,7 @@ bfd_elf_d30v_reloc (bfd *abfd,
     }
 
   r = bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
-                             input_section, output_bfd, error_message);
+			     input_section, output_bfd, error_message);
   if (r != bfd_reloc_continue)
     return r;
 
@@ -123,7 +123,7 @@ bfd_elf_d30v_reloc (bfd *abfd,
     }
 
   in1 |= (relocation >> 26) & 0x3F;		/* Top 6 bits.  */
-  in2 |= ((relocation & 0x03FC0000) << 2);  	/* Next 8 bits.  */
+  in2 |= ((relocation & 0x03FC0000) << 2);	/* Next 8 bits.  */
   in2 |= relocation & 0x0003FFFF;		/* Bottom 18 bits.  */
 
   /* Change a PC-relative instruction to its
@@ -164,7 +164,7 @@ bfd_elf_d30v_reloc_21 (bfd *abfd,
     }
 
   r = bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
-                             input_section, output_bfd, error_message);
+			     input_section, output_bfd, error_message);
   if (r != bfd_reloc_continue)
     return r;
 
@@ -549,7 +549,7 @@ d30v_info_to_howto_rela (bfd *abfd ATTRI
 #define ELF_MACHINE_ALT1	EM_CYGNUS_D30V
 #define ELF_MAXPAGESIZE		0x1000
 
-#define TARGET_BIG_SYM          d30v_elf32_vec
+#define TARGET_BIG_SYM		d30v_elf32_vec
 #define TARGET_BIG_NAME		"elf32-d30v"
 
 #define elf_info_to_howto	d30v_info_to_howto_rela
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-dlx.c ./bfd/elf32-dlx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-dlx.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-dlx.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* DLX specific support for 32-bit ELF
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -29,9 +29,9 @@
 
 #define bfd_elf32_bfd_reloc_type_lookup elf32_dlx_reloc_type_lookup
 #define bfd_elf32_bfd_reloc_name_lookup elf32_dlx_reloc_name_lookup
-#define elf_info_to_howto               elf32_dlx_info_to_howto
-#define elf_info_to_howto_rel           elf32_dlx_info_to_howto_rel
-#define elf_backend_check_relocs        elf32_dlx_check_relocs
+#define elf_info_to_howto		elf32_dlx_info_to_howto
+#define elf_info_to_howto_rel		elf32_dlx_info_to_howto_rel
+#define elf_backend_check_relocs	elf32_dlx_check_relocs
 
 /* The gas default behavior is not to preform the %hi modifier so that the
    GNU assembler can have the lower 16 bits offset placed in the insn, BUT
@@ -65,7 +65,7 @@ _bfd_dlx_elf_hi16_reloc (bfd *abfd,
      fixup like mips gld did.   */
   if (skip_dlx_elf_hi16_reloc)
     return bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
-                          input_section, output_bfd, error_message);
+			  input_section, output_bfd, error_message);
 
   /* If we're relocating, and this an external symbol, we don't want
      to change anything.  */
@@ -93,7 +93,7 @@ _bfd_dlx_elf_hi16_reloc (bfd *abfd,
     return bfd_reloc_outofrange;
 
   bfd_put_16 (abfd, (short)((relocation >> 16) & 0xFFFF),
-              (bfd_byte *)data + reloc_entry->address);
+	      (bfd_byte *)data + reloc_entry->address);
 
   return ret;
 }
@@ -118,7 +118,7 @@ elf32_dlx_relocate16 (bfd *abfd,
 		      char **error_message ATTRIBUTE_UNUSED)
 {
   unsigned long insn, vallo, allignment;
-  int           val;
+  int		val;
 
   /* HACK: I think this first condition is necessary when producing
      relocatable output.  After the end of HACK, the code is identical
@@ -127,7 +127,7 @@ elf32_dlx_relocate16 (bfd *abfd,
 
   if (skip_dlx_elf_hi16_reloc)
     return bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
-                                 input_section, output_bfd, error_message);
+				 input_section, output_bfd, error_message);
 
   /* Check undefined section and undefined symbols.  */
   if (bfd_is_und_section (symbol->section)
@@ -152,8 +152,8 @@ elf32_dlx_relocate16 (bfd *abfd,
 
   /* vallo points to the vma of next instruction.  */
   vallo += (((unsigned long)(input_section->output_section->vma +
-                           input_section->output_offset) +
-            allignment) & ~allignment);
+			   input_section->output_offset) +
+	    allignment) & ~allignment);
 
   /* val is the displacement (PC relative to next instruction).  */
   val =  (symbol->section->output_offset +
@@ -166,7 +166,7 @@ elf32_dlx_relocate16 (bfd *abfd,
   insn  = (insn & 0xFFFF0000) | (val & 0x0000FFFF);
 
   bfd_put_32 (abfd, insn,
-              (bfd_byte *) data + reloc_entry->address);
+	      (bfd_byte *) data + reloc_entry->address);
 
   return bfd_reloc_ok;
 }
@@ -181,7 +181,7 @@ elf32_dlx_relocate26 (bfd *abfd,
 		      char **error_message ATTRIBUTE_UNUSED)
 {
   unsigned long insn, vallo, allignment;
-  int           val;
+  int		val;
 
   /* HACK: I think this first condition is necessary when producing
      relocatable output.  After the end of HACK, the code is identical
@@ -190,7 +190,7 @@ elf32_dlx_relocate26 (bfd *abfd,
 
   if (skip_dlx_elf_hi16_reloc)
     return bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
-                                 input_section, output_bfd, error_message);
+				 input_section, output_bfd, error_message);
 
   /* Check undefined section and undefined symbols.  */
   if (bfd_is_und_section (symbol->section)
@@ -228,7 +228,7 @@ elf32_dlx_relocate26 (bfd *abfd,
 
   insn  = (insn & 0xFC000000) | (val & 0x03FFFFFF);
   bfd_put_32 (abfd, insn,
-              (bfd_byte *) data + reloc_entry->address);
+	      (bfd_byte *) data + reloc_entry->address);
 
   return bfd_reloc_ok;
 }
@@ -236,67 +236,67 @@ elf32_dlx_relocate26 (bfd *abfd,
 static reloc_howto_type dlx_elf_howto_table[]=
 {
   /* No relocation.  */
-  HOWTO (R_DLX_NONE,            /* Type. */
-	 0,                     /* Rightshift.  */
-	 3,                     /* size (0 = byte, 1 = short, 2 = long).  */
-	 0,                     /* Bitsize.  */
-	 FALSE,                 /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+  HOWTO (R_DLX_NONE,		/* Type. */
+	 0,			/* Rightshift.  */
+	 3,			/* size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* Bitsize.  */
+	 FALSE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_dont,/* Complain_on_overflow.  */
 	 bfd_elf_generic_reloc, /* Special_function.  */
-	 "R_DLX_NONE",          /* Name.  */
-	 FALSE,                 /* Partial_inplace.  */
-	 0,                     /* Src_mask.  */
-	 0,                     /* Dst_mask.  */
-	 FALSE),                /* PCrel_offset.  */
+	 "R_DLX_NONE",		/* Name.  */
+	 FALSE,			/* Partial_inplace.  */
+	 0,			/* Src_mask.  */
+	 0,			/* Dst_mask.  */
+	 FALSE),		/* PCrel_offset.  */
 
   /* 8 bit relocation.  */
-  HOWTO (R_DLX_RELOC_8,         /* Type. */
-	 0,                     /* Rightshift.  */
-	 0,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-	 8,                     /* Bitsize.  */
-	 FALSE,                 /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+  HOWTO (R_DLX_RELOC_8,		/* Type. */
+	 0,			/* Rightshift.  */
+	 0,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 8,			/* Bitsize.  */
+	 FALSE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_dont,/* Complain_on_overflow.  */
 	 bfd_elf_generic_reloc, /* Special_function.  */
-	 "R_DLX_RELOC_8",       /* Name.  */
-	 TRUE,                  /* Partial_inplace.  */
-	 0xff,                  /* Src_mask.  */
-	 0xff,                  /* Dst_mask.  */
-	 FALSE),                /* PCrel_offset.  */
+	 "R_DLX_RELOC_8",	/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xff,			/* Src_mask.  */
+	 0xff,			/* Dst_mask.  */
+	 FALSE),		/* PCrel_offset.  */
 
   /* 16 bit relocation.  */
-  HOWTO (R_DLX_RELOC_16,        /* Type. */
-	 0,                     /* Rightshift.  */
-	 1,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,                    /* Bitsize.  */
-	 FALSE,                 /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+  HOWTO (R_DLX_RELOC_16,	/* Type. */
+	 0,			/* Rightshift.  */
+	 1,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 FALSE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_dont,/* Complain_on_overflow.  */
 	 bfd_elf_generic_reloc, /* Special_function.  */
-	 "R_DLX_RELOC_16",      /* Name.  */
-	 TRUE,                  /* Partial_inplace.  */
-	 0xffff,                /* Src_mask.  */
-	 0xffff,                /* Dst_mask.  */
-	 FALSE),                /* PCrel_offset.  */
+	 "R_DLX_RELOC_16",	/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Src_mask.  */
+	 0xffff,		/* Dst_mask.  */
+	 FALSE),		/* PCrel_offset.  */
 
   /* 32 bit relocation.  */
-  HOWTO (R_DLX_RELOC_32,        /* Type. */
-	 0,                     /* Rightshift.  */
-	 2,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,                    /* Bitsize.  */
-	 FALSE,                 /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+  HOWTO (R_DLX_RELOC_32,	/* Type. */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 32,			/* Bitsize.  */
+	 FALSE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_dont,/* Complain_on_overflow.  */
 	 bfd_elf_generic_reloc, /* Special_function.  */
-	 "R_DLX_RELOC_32",      /* Name.  */
-	 TRUE,                  /* Partial_inplace.  */
-	 0xffffffff,            /* Src_mask.  */
-	 0xffffffff,            /* Dst_mask.  */
-	 FALSE),                /* PCrel_offset.  */
+	 "R_DLX_RELOC_32",	/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffffffff,		/* Src_mask.  */
+	 0xffffffff,		/* Dst_mask.  */
+	 FALSE),		/* PCrel_offset.  */
 
   /* GNU extension to record C++ vtable hierarchy.  */
-  HOWTO (R_DLX_GNU_VTINHERIT,   /* Type. */
+  HOWTO (R_DLX_GNU_VTINHERIT,	/* Type. */
 	 0,			/* Rightshift.  */
 	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
 	 0,			/* Bitsize.  */
@@ -311,7 +311,7 @@ static reloc_howto_type dlx_elf_howto_ta
 	 FALSE),		/* PCrel_offset.  */
 
   /* GNU extension to record C++ vtable member usage.  */
-  HOWTO (R_DLX_GNU_VTENTRY,     /* Type. */
+  HOWTO (R_DLX_GNU_VTENTRY,	/* Type. */
 	 0,			/* Rightshift.  */
 	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
 	 0,			/* Bitsize.  */
@@ -320,75 +320,75 @@ static reloc_howto_type dlx_elf_howto_ta
 	 complain_overflow_dont,/* Complain_on_overflow.  */
 	 _bfd_elf_rel_vtable_reloc_fn,/* Special_function.  */
 	 "R_DLX_GNU_VTENTRY",	/* Name.  */
-	 FALSE,		  	/* Partial_inplace.  */
+	 FALSE,			/* Partial_inplace.  */
 	 0,			/* Src_mask.  */
 	 0,			/* Dst_mask.  */
-	 FALSE)		  	/* PCrel_offset.  */
+	 FALSE)			/* PCrel_offset.  */
 };
 
 /* 16 bit offset for pc-relative branches.  */
 static reloc_howto_type elf_dlx_gnu_rel16_s2 =
-  HOWTO (R_DLX_RELOC_16_PCREL,  /* Type. */
-	 0,                     /* Rightshift.  */
-	 1,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,                    /* Bitsize.  */
-	 TRUE,                  /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+  HOWTO (R_DLX_RELOC_16_PCREL,	/* Type. */
+	 0,			/* Rightshift.  */
+	 1,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 TRUE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_signed, /* Complain_on_overflow.  */
-	 elf32_dlx_relocate16,  /* Special_function.  */
+	 elf32_dlx_relocate16,	/* Special_function.  */
 	 "R_DLX_RELOC_16_PCREL",/* Name.  */
-	 TRUE,                  /* Partial_inplace.  */
-	 0xffff,                /* Src_mask.  */
-	 0xffff,                /* Dst_mask.  */
-	 TRUE);                 /* PCrel_offset.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Src_mask.  */
+	 0xffff,		/* Dst_mask.  */
+	 TRUE);			/* PCrel_offset.  */
 
 /* 26 bit offset for pc-relative branches.  */
 static reloc_howto_type elf_dlx_gnu_rel26_s2 =
-  HOWTO (R_DLX_RELOC_26_PCREL,  /* Type. */
-	 0,                     /* Rightshift.  */
-	 2,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-	 26,                    /* Bitsize.  */
-	 TRUE,                  /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+  HOWTO (R_DLX_RELOC_26_PCREL,	/* Type. */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 26,			/* Bitsize.  */
+	 TRUE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_dont,/* Complain_on_overflow.  */
-	 elf32_dlx_relocate26,  /* Special_function.  */
+	 elf32_dlx_relocate26,	/* Special_function.  */
 	 "R_DLX_RELOC_26_PCREL",/* Name.  */
-	 TRUE,                  /* Partial_inplace.  */
-	 0xffff,                /* Src_mask.  */
-	 0xffff,                /* Dst_mask.  */
-	 TRUE);                 /* PCrel_offset.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Src_mask.  */
+	 0xffff,		/* Dst_mask.  */
+	 TRUE);			/* PCrel_offset.  */
 
 /* High 16 bits of symbol value.  */
 static reloc_howto_type elf_dlx_reloc_16_hi =
-  HOWTO (R_DLX_RELOC_16_HI,     /* Type. */
-	 16,                    /* Rightshift.  */
-	 2,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,                    /* Bitsize.  */
-	 FALSE,                 /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+  HOWTO (R_DLX_RELOC_16_HI,	/* Type. */
+	 16,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 32,			/* Bitsize.  */
+	 FALSE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_dont,/* Complain_on_overflow.  */
 	 _bfd_dlx_elf_hi16_reloc,/* Special_function.  */
-	 "R_DLX_RELOC_16_HI",   /* Name.  */
-	 TRUE,                  /* Partial_inplace.  */
-	 0xFFFF,                /* Src_mask.  */
-	 0xffff,                /* Dst_mask.  */
-	 FALSE);                /* PCrel_offset.  */
+	 "R_DLX_RELOC_16_HI",	/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xFFFF,		/* Src_mask.  */
+	 0xffff,		/* Dst_mask.  */
+	 FALSE);		/* PCrel_offset.  */
 
   /* Low 16 bits of symbol value.  */
 static reloc_howto_type elf_dlx_reloc_16_lo =
-  HOWTO (R_DLX_RELOC_16_LO,     /* Type. */
-	 0,                     /* Rightshift.  */
-	 1,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,                    /* Bitsize.  */
-	 FALSE,                 /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+  HOWTO (R_DLX_RELOC_16_LO,	/* Type. */
+	 0,			/* Rightshift.  */
+	 1,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 FALSE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_dont,/* Complain_on_overflow.  */
 	 bfd_elf_generic_reloc, /* Special_function.  */
-	 "R_DLX_RELOC_16_LO",   /* Name.  */
-	 TRUE,                  /* Partial_inplace.  */
-	 0xffff,                /* Src_mask.  */
-	 0xffff,                /* Dst_mask.  */
-	 FALSE);                /* PCrel_offset.  */
+	 "R_DLX_RELOC_16_LO",	/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Src_mask.  */
+	 0xffff,		/* Dst_mask.  */
+	 FALSE);		/* PCrel_offset.  */
 
 /* A mapping from BFD reloc types to DLX ELF reloc types.
    Stolen from elf32-mips.c.
@@ -406,11 +406,11 @@ struct elf_reloc_map
 
 static const struct elf_reloc_map dlx_reloc_map[] =
 {
-  { BFD_RELOC_NONE,           R_DLX_NONE },
-  { BFD_RELOC_16,             R_DLX_RELOC_16 },
-  { BFD_RELOC_32,             R_DLX_RELOC_32 },
+  { BFD_RELOC_NONE,	      R_DLX_NONE },
+  { BFD_RELOC_16,	      R_DLX_RELOC_16 },
+  { BFD_RELOC_32,	      R_DLX_RELOC_32 },
   { BFD_RELOC_DLX_HI16_S,     R_DLX_RELOC_16_HI },
-  { BFD_RELOC_DLX_LO16,       R_DLX_RELOC_16_LO },
+  { BFD_RELOC_DLX_LO16,	      R_DLX_RELOC_16_LO },
   { BFD_RELOC_VTABLE_INHERIT,	R_DLX_GNU_VTINHERIT },
   { BFD_RELOC_VTABLE_ENTRY,	R_DLX_GNU_VTENTRY }
 };
@@ -444,37 +444,33 @@ elf32_dlx_check_relocs (bfd *abfd,
 
       r_symndx = ELF32_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
-        {
-        /* This relocation describes the C++ object vtable hierarchy.
-           Reconstruct it for later use during GC.  */
-        case R_DLX_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-        /* This relocation describes which C++ vtable entries are actually
-           used.  Record for later use during GC.  */
-        case R_DLX_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
-        }
+	{
+	/* This relocation describes the C++ object vtable hierarchy.
+	   Reconstruct it for later use during GC.  */
+	case R_DLX_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	/* This relocation describes which C++ vtable entries are actually
+	   used.  Record for later use during GC.  */
+	case R_DLX_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
+	}
     }
 
   return TRUE;
@@ -576,10 +572,10 @@ elf32_dlx_info_to_howto_rel (bfd *abfd A
   return;
 }
 
-#define TARGET_BIG_SYM          dlx_elf32_be_vec
-#define TARGET_BIG_NAME         "elf32-dlx"
-#define ELF_ARCH                bfd_arch_dlx
-#define ELF_MACHINE_CODE        EM_DLX
-#define ELF_MAXPAGESIZE         1 /* FIXME: This number is wrong,  It should be the page size in bytes.  */
+#define TARGET_BIG_SYM		dlx_elf32_be_vec
+#define TARGET_BIG_NAME		"elf32-dlx"
+#define ELF_ARCH		bfd_arch_dlx
+#define ELF_MACHINE_CODE	EM_DLX
+#define ELF_MAXPAGESIZE		1 /* FIXME: This number is wrong,  It should be the page size in bytes.  */
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-dlx.h ./bfd/elf32-dlx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-dlx.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-dlx.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* DLX specific support for 32-bit ELF
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-epiphany.c ./bfd/elf32-epiphany.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-epiphany.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-epiphany.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Adapteva epiphany specific support for 32-bit ELF
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Embecosm on behalf of Adapteva, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -32,7 +32,7 @@ struct misc
 {
   Elf_Internal_Shdr *  symtab_hdr;
   Elf_Internal_Rela *  irelbase;
-  bfd_byte *           contents;
+  bfd_byte *	       contents;
   Elf_Internal_Sym *   isymbuf;
 };
 
@@ -48,29 +48,29 @@ static bfd_boolean epiphany_relaxed = FA
 static reloc_howto_type epiphany_elf_howto_table [] =
 {
 #define AHOW(t,rs,s,bs,pr,bp,co,name,sm,dm)	\
-    HOWTO(t,                    /* type */ \
-	  rs,                   /* rightshift */ \
-	  s,                    /* size (0 = byte, 1 = short, 2 = long) */ \
-	  bs,                   /* bitsize */ \
-	  pr,                   /* pc_relative */ \
-	  bp,                   /* bitpos */ \
+    HOWTO(t,			/* type */ \
+	  rs,			/* rightshift */ \
+	  s,			/* size (0 = byte, 1 = short, 2 = long) */ \
+	  bs,			/* bitsize */ \
+	  pr,			/* pc_relative */ \
+	  bp,			/* bitpos */ \
 	  co,			/* complain_on_overflow */	       \
 	  bfd_elf_generic_reloc,/* special_function */ \
-	  name,                 /* name */ \
-	  FALSE,                /* partial_inplace */ \
-	  sm,                   /* src_mask */ \
-	  dm,                   /* dst_mask */ \
-	  pr)                   /* pcrel_offset */
+	  name,			/* name */ \
+	  FALSE,		/* partial_inplace */ \
+	  sm,			/* src_mask */ \
+	  dm,			/* dst_mask */ \
+	  pr)			/* pcrel_offset */
 
   /* This reloc does nothing.  */
-  AHOW (R_EPIPHANY_NONE,    0, 3,0, 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),
+  AHOW (R_EPIPHANY_8,	    0, 0, 8, FALSE, 0, complain_overflow_bitfield, "R_EPIPHANY_8",	0x000000ff, 0x000000ff),
   /* 16 bit absolute */
-  AHOW (R_EPIPHANY_16,      0, 1,16, FALSE, 0, complain_overflow_bitfield, "R_EPIPHANY_16",     0x0000ffff, 0x00ff1fe0),
+  AHOW (R_EPIPHANY_16,	    0, 1,16, FALSE, 0, complain_overflow_bitfield, "R_EPIPHANY_16",	0x0000ffff, 0x00ff1fe0),
   /* A 32 bit absolute relocation.  */
-  AHOW (R_EPIPHANY_32,      0, 2,32, FALSE, 0, complain_overflow_dont,     "R_EPIPHANY_32",     0xffffffff, 0xffffffff),
+  AHOW (R_EPIPHANY_32,	    0, 2,32, FALSE, 0, complain_overflow_dont,	   "R_EPIPHANY_32",	0xffffffff, 0xffffffff),
 
   /*  8 bit relative relocation */
   HOWTO ( R_EPIPHANY_8_PCREL,  0, 0,  8, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_EPIPHANY_8_PCREL", FALSE, 0x000000ff, 0x000000ff, FALSE),
@@ -80,22 +80,22 @@ static reloc_howto_type epiphany_elf_how
   HOWTO ( R_EPIPHANY_32_PCREL, 0, 2, 32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_EPIPHANY_8_PCREL", FALSE, 0x000000ff, 0x000000ff, FALSE),
 
   /* 8 bit pc-relative relocation */
-  AHOW (R_EPIPHANY_SIMM8,   1, 0, 8,  TRUE, 8, complain_overflow_signed,   "R_EPIPHANY_SIMM8",   0x000000ff, 0x0000ff00),
+  AHOW (R_EPIPHANY_SIMM8,   1, 0, 8,  TRUE, 8, complain_overflow_signed,   "R_EPIPHANY_SIMM8",	 0x000000ff, 0x0000ff00),
   /* 24 bit pc-relative relocation */
-  AHOW (R_EPIPHANY_SIMM24,  1, 2,24,  TRUE, 8, complain_overflow_signed,   "R_EPIPHANY_SIMM24",  0x00ffffff, 0xffffff00),
+  AHOW (R_EPIPHANY_SIMM24,  1, 2,24,  TRUE, 8, complain_overflow_signed,   "R_EPIPHANY_SIMM24",	 0x00ffffff, 0xffffff00),
 
   /* %HIGH(EA) */
-  AHOW (R_EPIPHANY_HIGH,    0, 2,16, FALSE, 0, complain_overflow_dont,     "R_EPIPHANY_HIGH",    0x0ff01fe0, 0x0ff01fe0),
+  AHOW (R_EPIPHANY_HIGH,    0, 2,16, FALSE, 0, complain_overflow_dont,	   "R_EPIPHANY_HIGH",	 0x0ff01fe0, 0x0ff01fe0),
 
   /* %LOW(EA) */
-  AHOW (R_EPIPHANY_LOW,     0, 2,16, FALSE, 0, complain_overflow_dont,	"R_EPIPHANY_LOW",     0x0ff01fe0, 0x0ff01fe0),
+  AHOW (R_EPIPHANY_LOW,	    0, 2,16, FALSE, 0, complain_overflow_dont,	"R_EPIPHANY_LOW",     0x0ff01fe0, 0x0ff01fe0),
 
   /* simm11 */
-  AHOW (R_EPIPHANY_SIMM11,  0, 2,11, FALSE, 0, complain_overflow_bitfield, "R_EPIPHANY_SIMM11",  0x00ff0380, 0x00ff0380),
+  AHOW (R_EPIPHANY_SIMM11,  0, 2,11, FALSE, 0, complain_overflow_bitfield, "R_EPIPHANY_SIMM11",	 0x00ff0380, 0x00ff0380),
   /* imm12 - sign-magnitude */
-  AHOW (R_EPIPHANY_IMM11,   0, 2,11, FALSE, 0, complain_overflow_bitfield, "R_EPIPHANY_IMM12",   0x00ff0380, 0x00ff0380),
+  AHOW (R_EPIPHANY_IMM11,   0, 2,11, FALSE, 0, complain_overflow_bitfield, "R_EPIPHANY_IMM12",	 0x00ff0380, 0x00ff0380),
   /* imm8 */
-  AHOW (R_EPIPHANY_IMM8,    0, 1, 8, FALSE, 8, complain_overflow_signed,   "R_EPIPHANY_IMM8",    0x0000ff00, 0x0000ff00)
+  AHOW (R_EPIPHANY_IMM8,    0, 1, 8, FALSE, 8, complain_overflow_signed,   "R_EPIPHANY_IMM8",	 0x0000ff00, 0x0000ff00)
 
 
 };
@@ -384,11 +384,11 @@ epiphany_info_to_howto_rela (bfd * abfd 
 
 static bfd_reloc_status_type
 epiphany_final_link_relocate (reloc_howto_type *  howto,
-			      bfd *               input_bfd,
-			      asection *          input_section,
-			      bfd_byte *          contents,
+			      bfd *		  input_bfd,
+			      asection *	  input_section,
+			      bfd_byte *	  contents,
 			      Elf_Internal_Rela * rel,
-			      bfd_vma             relocation)
+			      bfd_vma		  relocation)
 {
   switch (howto->type)
     {
@@ -490,15 +490,15 @@ epiphany_elf_relocate_section (bfd *outp
 
   for (rel = relocs; rel < relend; rel ++)
     {
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
+      reloc_howto_type *	   howto;
+      unsigned long		   r_symndx;
+      Elf_Internal_Sym *	   sym;
+      asection *		   sec;
       struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 name = NULL;
-      int                          r_type ATTRIBUTE_UNUSED;
+      bfd_vma			   relocation;
+      bfd_reloc_status_type	   r;
+      const char *		   name = NULL;
+      int			   r_type ATTRIBUTE_UNUSED;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -600,7 +600,7 @@ epiphany_elf_relocate_section (bfd *outp
 #define elf_info_to_howto_rel			NULL
 #define elf_info_to_howto			epiphany_info_to_howto_rela
 
-#define elf_backend_can_gc_sections     	1
+#define elf_backend_can_gc_sections		1
 #define elf_backend_rela_normal			1
 #define elf_backend_relocate_section		epiphany_elf_relocate_section
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-fr30.c ./bfd/elf32-fr30.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-fr30.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-fr30.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* FR30-specific support for 32-bit ELF.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -200,33 +200,33 @@ static reloc_howto_type fr30_elf_howto_t
 	 FALSE),		/* pcrel_offset */
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_FR30_GNU_VTINHERIT, /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         NULL,                  /* special_function */
-         "R_FR30_GNU_VTINHERIT", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 NULL,			/* special_function */
+	 "R_FR30_GNU_VTINHERIT", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
-  HOWTO (R_FR30_GNU_VTENTRY,     /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
-         "R_FR30_GNU_VTENTRY",   /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_FR30_GNU_VTENTRY,	 /* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 _bfd_elf_rel_vtable_reloc_fn,	/* special_function */
+	 "R_FR30_GNU_VTENTRY",	 /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 };
 
 /* Utility to actually perform an R_FR30_20 reloc.  */
@@ -321,11 +321,11 @@ struct fr30_reloc_map
 
 static const struct fr30_reloc_map fr30_reloc_map [] =
 {
-  { BFD_RELOC_NONE,           R_FR30_NONE },
-  { BFD_RELOC_8,              R_FR30_8 },
-  { BFD_RELOC_FR30_20,        R_FR30_20 },
-  { BFD_RELOC_32,             R_FR30_32 },
-  { BFD_RELOC_FR30_48,        R_FR30_48 },
+  { BFD_RELOC_NONE,	      R_FR30_NONE },
+  { BFD_RELOC_8,	      R_FR30_8 },
+  { BFD_RELOC_FR30_20,	      R_FR30_20 },
+  { BFD_RELOC_32,	      R_FR30_32 },
+  { BFD_RELOC_FR30_48,	      R_FR30_48 },
   { BFD_RELOC_FR30_6_IN_4,    R_FR30_6_IN_4 },
   { BFD_RELOC_FR30_8_IN_8,    R_FR30_8_IN_8 },
   { BFD_RELOC_FR30_9_IN_8,    R_FR30_9_IN_8 },
@@ -663,37 +663,33 @@ fr30_elf_check_relocs (bfd *abfd,
 
       r_symndx = ELF32_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
-        {
-        /* This relocation describes the C++ object vtable hierarchy.
-           Reconstruct it for later use during GC.  */
-        case R_FR30_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-        /* This relocation describes which C++ vtable entries are actually
-           used.  Record for later use during GC.  */
-        case R_FR30_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
-        }
+	{
+	/* This relocation describes the C++ object vtable hierarchy.
+	   Reconstruct it for later use during GC.  */
+	case R_FR30_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	/* This relocation describes which C++ vtable entries are actually
+	   used.  Record for later use during GC.  */
+	case R_FR30_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
+	}
     }
 
   return TRUE;
@@ -704,19 +700,19 @@ fr30_elf_check_relocs (bfd *abfd,
 #define ELF_MACHINE_ALT1	EM_CYGNUS_FR30
 #define ELF_MAXPAGESIZE		0x1000
 
-#define TARGET_BIG_SYM          fr30_elf32_vec
+#define TARGET_BIG_SYM		fr30_elf32_vec
 #define TARGET_BIG_NAME		"elf32-fr30"
 
 #define elf_info_to_howto_rel			NULL
 #define elf_info_to_howto			fr30_info_to_howto_rela
 #define elf_backend_relocate_section		fr30_elf_relocate_section
 #define elf_backend_gc_mark_hook		fr30_elf_gc_mark_hook
-#define elf_backend_check_relocs                fr30_elf_check_relocs
+#define elf_backend_check_relocs		fr30_elf_check_relocs
 
 #define elf_backend_can_gc_sections		1
 #define elf_backend_rela_normal			1
 
 #define bfd_elf32_bfd_reloc_type_lookup		fr30_reloc_type_lookup
-#define bfd_elf32_bfd_reloc_name_lookup	fr30_reloc_name_lookup
+#define bfd_elf32_bfd_reloc_name_lookup		fr30_reloc_name_lookup
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-frv.c ./bfd/elf32-frv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-frv.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-frv.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* FRV-specific support for 32-bit ELF.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -1046,7 +1046,7 @@ struct frvfdpic_relocs_info
      for symbol+addend.  Should be implied by something like:
      (plt || fdgotoff12 || fdgotofflos || fdgotofflohi
       || ((fd || fdgot12 || fdgotlos || fdgothilo)
-          && (symndx != -1 || FRVFDPIC_FUNCDESC_LOCAL (info, d.h))))  */
+	  && (symndx != -1 || FRVFDPIC_FUNCDESC_LOCAL (info, d.h))))  */
   unsigned privfd:1;
   /* Whether a lazy PLT entry is needed for this symbol+addend.
      Should be implied by something like:
@@ -2299,8 +2299,8 @@ elf32_frv_relocate_gprelhi (struct bfd_l
   h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE);
 
   gp = (h->u.def.value
-        + h->u.def.section->output_section->vma
-        + h->u.def.section->output_offset);
+	+ h->u.def.section->output_section->vma
+	+ h->u.def.section->output_offset);
 
   value -= input_section->output_section->vma;
   value -= (gp - input_section->output_section->vma);
@@ -2332,8 +2332,8 @@ elf32_frv_relocate_gprello (struct bfd_l
   h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE);
 
   gp = (h->u.def.value
-        + h->u.def.section->output_section->vma
-        + h->u.def.section->output_offset);
+	+ h->u.def.section->output_section->vma
+	+ h->u.def.section->output_offset);
 
   value -= input_section->output_section->vma;
   value -= (gp - input_section->output_section->vma);
@@ -3179,8 +3179,8 @@ elf32_frv_relocate_section (bfd *output_
 		bfd_put_32 (input_bfd, insn, contents + rel->r_offset);
 
 		/* #tlsoff(symbol+offset) is just a relaxation
-                    annotation, so there's nothing left to
-                    relocate.  */
+		    annotation, so there's nothing left to
+		    relocate.  */
 		continue;
 	      }
 
@@ -5824,7 +5824,7 @@ elf32_frvfdpic_adjust_dynamic_symbol
 
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
-	      && (h->u.weakdef != NULL
+	      && (h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -5832,12 +5832,13 @@ elf32_frvfdpic_adjust_dynamic_symbol
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
+      return TRUE;
     }
 
   return TRUE;
@@ -6031,17 +6032,13 @@ elf32_frv_check_relocs (bfd *abfd,
 
       r_symndx = ELF32_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
@@ -6124,7 +6121,7 @@ elf32_frv_check_relocs (bfd *abfd,
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
-        {
+	{
 	case R_FRV_LABEL24:
 	  if (IS_FDPIC (abfd))
 	    picrel->call = 1;
@@ -6222,21 +6219,21 @@ elf32_frv_check_relocs (bfd *abfd,
 	  info->flags |= DF_STATIC_TLS;
 	  goto bad_reloc;
 
-        /* This relocation describes the C++ object vtable hierarchy.
-           Reconstruct it for later use during GC.  */
-        case R_FRV_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-        /* This relocation describes which C++ vtable entries are actually
-           used.  Record for later use during GC.  */
-        case R_FRV_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
+	/* This relocation describes the C++ object vtable hierarchy.
+	   Reconstruct it for later use during GC.  */
+	case R_FRV_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	/* This relocation describes which C++ vtable entries are actually
+	   used.  Record for later use during GC.  */
+	case R_FRV_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
 
 	case R_FRV_LABEL16:
 	case R_FRV_LO16:
@@ -6258,7 +6255,7 @@ elf32_frv_check_relocs (bfd *abfd,
 	    (_("%B: unsupported relocation type %i\n"),
 	     abfd, ELF32_R_TYPE (rel->r_info));
 	  return FALSE;
-        }
+	}
     }
 
   return TRUE;
@@ -6355,7 +6352,7 @@ frv_elf_merge_private_bfd_data (bfd *ibf
 
 #ifdef DEBUG
   _bfd_error_handler
-    ("old_flags = 0x%.8lx, new_flags = 0x%.8lx, init = %s, filename = %s",
+    ("old_flags = 0x%.8x, new_flags = 0x%.8x, init = %s, filename = %s",
      old_flags, new_flags, elf_flags_init (obfd) ? "yes" : "no",
      bfd_get_filename (ibfd));
 #endif
@@ -6372,7 +6369,7 @@ frv_elf_merge_private_bfd_data (bfd *ibf
   else						/* Possibly incompatible flags.  */
     {
       /* Warn if different # of gprs are used.  Note, 0 means nothing is
-         said about the size of gprs.  */
+	 said about the size of gprs.  */
       new_partial = (new_flags & EF_FRV_GPR_MASK);
       old_partial = (old_flags & EF_FRV_GPR_MASK);
       if (new_partial == old_partial)
@@ -6402,7 +6399,7 @@ frv_elf_merge_private_bfd_data (bfd *ibf
 	}
 
       /* Warn if different # of fprs are used.  Note, 0 means nothing is
-         said about the size of fprs.  */
+	 said about the size of fprs.  */
       new_partial = (new_flags & EF_FRV_FPR_MASK);
       old_partial = (old_flags & EF_FRV_FPR_MASK);
       if (new_partial == old_partial)
@@ -6434,7 +6431,7 @@ frv_elf_merge_private_bfd_data (bfd *ibf
 	}
 
       /* Warn if different dword support was used.  Note, 0 means nothing is
-         said about the dword support.  */
+	 said about the dword support.  */
       new_partial = (new_flags & EF_FRV_DWORD_MASK);
       old_partial = (old_flags & EF_FRV_DWORD_MASK);
       if (new_partial == old_partial)
@@ -6479,14 +6476,14 @@ frv_elf_merge_private_bfd_data (bfd *ibf
 		   | (old_flags & new_flags & EF_FRV_NOPACK));
 
       /* We don't have to do anything if the pic flags are the same, or the new
-         module(s) were compiled with -mlibrary-pic.  */
+	 module(s) were compiled with -mlibrary-pic.  */
       new_partial = (new_flags & EF_FRV_PIC_FLAGS);
       old_partial = (old_flags & EF_FRV_PIC_FLAGS);
       if ((new_partial == old_partial) || ((new_partial & EF_FRV_LIBPIC) != 0))
 	;
 
       /* If the old module(s) were compiled with -mlibrary-pic, copy in the pic
-         flags if any from the new module.  */
+	 flags if any from the new module.  */
       else if ((old_partial & EF_FRV_LIBPIC) != 0)
 	old_flags = (old_flags & ~ EF_FRV_PIC_FLAGS) | new_partial;
 
@@ -6495,7 +6492,7 @@ frv_elf_merge_private_bfd_data (bfd *ibf
 	old_flags |= new_partial;
 
       /* One module was compiled for pic and the other was not, see if we have
-         had any relocations that are not pic-safe.  */
+	 had any relocations that are not pic-safe.  */
       else
 	{
 	  if ((old_flags & EF_FRV_NON_PIC_RELOCS) == 0)
@@ -6574,9 +6571,9 @@ frv_elf_merge_private_bfd_data (bfd *ibf
 	  error = TRUE;
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: uses different unknown e_flags (0x%lx) fields"
-	       " than previous modules (0x%lx)"),
-	     ibfd, (long) new_partial, (long) old_partial);
+	    (_("%B: uses different unknown e_flags (%#x) fields"
+	       " than previous modules (%#x)"),
+	     ibfd, new_partial, old_partial);
 	}
     }
 
@@ -6706,7 +6703,7 @@ elf32_frv_grok_prstatus (bfd *abfd, Elf_
 	return FALSE;
 
       /* The Linux/FRV elf_prstatus struct is 268 bytes long.  The other
-         hardcoded offsets and sizes listed below (and contained within
+	 hardcoded offsets and sizes listed below (and contained within
 	 this lexical block) refer to fields in the target's elf_prstatus
 	 struct.  */
       case 268:
@@ -6773,19 +6770,18 @@ elf32_frv_grok_psinfo (bfd *abfd, Elf_In
   return TRUE;
 }
 #define ELF_ARCH		bfd_arch_frv
-#define ELF_TARGET_ID		FRV_ELF_DATA
 #define ELF_MACHINE_CODE	EM_CYGNUS_FRV
 #define ELF_MAXPAGESIZE		0x1000
 
-#define TARGET_BIG_SYM          frv_elf32_vec
+#define TARGET_BIG_SYM		frv_elf32_vec
 #define TARGET_BIG_NAME		"elf32-frv"
 
 #define elf_info_to_howto			frv_info_to_howto_rela
 #define elf_backend_relocate_section		elf32_frv_relocate_section
 #define elf_backend_gc_mark_hook		elf32_frv_gc_mark_hook
-#define elf_backend_check_relocs                elf32_frv_check_relocs
+#define elf_backend_check_relocs		elf32_frv_check_relocs
 #define elf_backend_object_p			elf32_frv_object_p
-#define elf_backend_add_symbol_hook             elf32_frv_add_symbol_hook
+#define elf_backend_add_symbol_hook		elf32_frv_add_symbol_hook
 
 #define elf_backend_stack_align			8
 #define elf_backend_can_gc_sections		1
@@ -6810,13 +6806,17 @@ elf32_frv_grok_psinfo (bfd *abfd, Elf_In
 #define elf_backend_grok_prstatus	elf32_frv_grok_prstatus
 #define elf_backend_grok_psinfo		elf32_frv_grok_psinfo
 
+#define elf_backend_linux_prpsinfo32_ugid16	TRUE
+
 #include "elf32-target.h"
 
+#undef ELF_TARGET_ID
+#define ELF_TARGET_ID		FRV_ELF_DATA
 #undef ELF_MAXPAGESIZE
 #define ELF_MAXPAGESIZE		0x4000
 
 #undef TARGET_BIG_SYM
-#define TARGET_BIG_SYM          frv_elf32_fdpic_vec
+#define TARGET_BIG_SYM		frv_elf32_fdpic_vec
 #undef TARGET_BIG_NAME
 #define TARGET_BIG_NAME		"elf32-frvfdpic"
 #undef	elf32_bed
@@ -6865,12 +6865,12 @@ elf32_frv_grok_psinfo (bfd *abfd, Elf_In
 		frvfdpic_elf_encode_eh_address
 
 #undef elf_backend_may_use_rel_p
-#define elf_backend_may_use_rel_p       1
+#define elf_backend_may_use_rel_p	1
 #undef elf_backend_may_use_rela_p
-#define elf_backend_may_use_rela_p      1
+#define elf_backend_may_use_rela_p	1
 /* We use REL for dynamic relocations only.  */
 #undef elf_backend_default_use_rela_p
-#define elf_backend_default_use_rela_p  1
+#define elf_backend_default_use_rela_p	1
 
 #undef elf_backend_omit_section_dynsym
 #define elf_backend_omit_section_dynsym _frvfdpic_link_omit_section_dynsym
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-ft32.c ./bfd/elf32-ft32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-ft32.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-ft32.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,8 +1,8 @@
 /* ft32-specific support for 32-bit ELF.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    Copied from elf32-moxie.c which is..
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -27,8 +27,13 @@
 #include "libbfd.h"
 #include "elf-bfd.h"
 #include "elf/ft32.h"
+#include "opcode/ft32.h"
 
-/* Forward declarations.  */
+static bfd_boolean debug_relax = FALSE;
+
+static bfd_reloc_status_type
+bfd_elf_ft32_diff_reloc (bfd *, arelent *, asymbol *, void *,
+			asection *, bfd *, char **);
 
 static reloc_howto_type ft32_elf_howto_table [] =
 {
@@ -69,7 +74,7 @@ static reloc_howto_type ft32_elf_howto_t
 	 16,			/* 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_FT32_16",		/* name */
 	 FALSE,			/* partial_inplace */
@@ -97,7 +102,7 @@ static reloc_howto_type ft32_elf_howto_t
 	 10,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 4,			/* bitpos */
-	 complain_overflow_signed, /* complain_on_overflow */
+	 complain_overflow_bitfield, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_FT32_10",		/* name */
 	 FALSE,			/* partial_inplace */
@@ -139,16 +144,83 @@ static reloc_howto_type ft32_elf_howto_t
 	 18,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_signed, /* complain_on_overflow */
+	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_FT32_18",		/* name */
-	 FALSE,		/* partial_inplace */
+	 FALSE,			/* partial_inplace */
 	 0x00000000,		/* src_mask */
 	 0x0003ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
+  HOWTO (R_FT32_RELAX,		/* type */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 10,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 4,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_FT32_RELAX",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x00000000,		/* src_mask */
+	 0x00000000,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_FT32_SC0,		/* type */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 10,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 4,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_FT32_SC0",		/* name */
+	 FALSE,			/* partial_inplace */
+	 0x00000000,		/* src_mask */
+	 0x00000000,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (R_FT32_SC1,		/* type */
+	 2,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 22,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 7,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_FT32_SC1",		/* name */
+	 TRUE,			/* partial_inplace */
+	 0x07ffff80,		/* src_mask */
+	 0x07ffff80,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (R_FT32_15,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 15,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_FT32_15",		/* name */
+	 FALSE,			/* partial_inplace */
+	 0x00000000,		/* src_mask */
+	 0x00007fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+  HOWTO (R_FT32_DIFF32,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_ft32_diff_reloc, /* special_function */
+	 "R_FT32_DIFF32",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 };
 
+
 /* Map BFD reloc types to FT32 ELF reloc types.  */
 
 struct ft32_reloc_map
@@ -159,16 +231,36 @@ struct ft32_reloc_map
 
 static const struct ft32_reloc_map ft32_reloc_map [] =
 {
-  { BFD_RELOC_NONE,            R_FT32_NONE },
-  { BFD_RELOC_32,              R_FT32_32 },
-  { BFD_RELOC_16,              R_FT32_16 },
-  { BFD_RELOC_8,               R_FT32_8 },
-  { BFD_RELOC_FT32_10,           R_FT32_10 },
-  { BFD_RELOC_FT32_20,           R_FT32_20 },
-  { BFD_RELOC_FT32_17,           R_FT32_17 },
-  { BFD_RELOC_FT32_18,           R_FT32_18 },
+  { BFD_RELOC_NONE,		R_FT32_NONE },
+  { BFD_RELOC_32,		R_FT32_32 },
+  { BFD_RELOC_16,		R_FT32_16 },
+  { BFD_RELOC_8,		R_FT32_8 },
+  { BFD_RELOC_FT32_10,		R_FT32_10 },
+  { BFD_RELOC_FT32_20,		R_FT32_20 },
+  { BFD_RELOC_FT32_17,		R_FT32_17 },
+  { BFD_RELOC_FT32_18,		R_FT32_18 },
+  { BFD_RELOC_FT32_RELAX,	R_FT32_RELAX },
+  { BFD_RELOC_FT32_SC0,		R_FT32_SC0 },
+  { BFD_RELOC_FT32_SC1,		R_FT32_SC1 },
+  { BFD_RELOC_FT32_15,		R_FT32_15 },
+  { BFD_RELOC_FT32_DIFF32,	R_FT32_DIFF32 },
 };
 
+/* Perform a diff relocation. Nothing to do, as the difference value is
+   already written into the section's contents. */
+
+static bfd_reloc_status_type
+bfd_elf_ft32_diff_reloc (bfd *abfd ATTRIBUTE_UNUSED,
+		      arelent *reloc_entry ATTRIBUTE_UNUSED,
+	      asymbol *symbol ATTRIBUTE_UNUSED,
+	      void *data ATTRIBUTE_UNUSED,
+	      asection *input_section ATTRIBUTE_UNUSED,
+	      bfd *output_bfd ATTRIBUTE_UNUSED,
+	      char **error_message ATTRIBUTE_UNUSED)
+{
+  return bfd_reloc_ok;
+}
+
 static reloc_howto_type *
 ft32_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
 			 bfd_reloc_code_real_type code)
@@ -211,7 +303,7 @@ ft32_info_to_howto_rela (bfd *abfd ATTRI
   BFD_ASSERT (r_type < (unsigned int) R_FT32_max);
   cache_ptr->howto = & ft32_elf_howto_table [r_type];
 }
-
+
 /* Relocate an FT32 ELF section.
 
    The RELOCATE_SECTION function is called by the new ELF backend linker
@@ -309,9 +401,68 @@ ft32_elf_relocate_section (bfd *output_b
       if (bfd_link_relocatable (info))
 	continue;
 
-      r = _bfd_final_link_relocate (howto, input_bfd, input_section,
-				    contents, rel->r_offset,
-				    relocation, rel->r_addend);
+      switch (howto->type)
+	{
+	  case R_FT32_SC0:
+	    {
+	      unsigned int insn;
+	      int offset;
+	      unsigned int code15[2];
+
+	      insn = bfd_get_32 (input_bfd, contents + rel->r_offset);
+	      ft32_split_shortcode (insn, code15);
+
+	      offset = (int)relocation;
+	      offset += (int)(rel->r_addend - rel->r_offset);
+	      offset -= (input_section->output_section->vma +
+			 input_section->output_offset);
+	      if ((offset < -1024) || (offset >= 1024))
+		{
+		  r = bfd_reloc_outofrange;
+		  break;
+		}
+	      code15[0] |= ((offset / 4) & 511);
+	      insn = ft32_merge_shortcode (code15);
+	      bfd_put_32 (input_bfd, insn, contents + rel->r_offset);
+	    }
+	    r = bfd_reloc_ok;
+	    break;
+
+	  case R_FT32_SC1:
+	    {
+	      unsigned int insn;
+	      int offset;
+	      unsigned int code15[2];
+
+	      insn = bfd_get_32 (input_bfd, contents + rel->r_offset);
+	      ft32_split_shortcode (insn, code15);
+
+	      offset = (int)relocation;
+	      offset += (int)(rel->r_addend - rel->r_offset);
+	      offset -= (input_section->output_section->vma +
+			 input_section->output_offset);
+	      if ((offset < -1024) || (offset >= 1024))
+		{
+		  r = bfd_reloc_outofrange;
+		  break;
+		}
+	      code15[1] |= ((offset / 4) & 511);
+	      insn = ft32_merge_shortcode (code15);
+	      bfd_put_32 (input_bfd, insn, contents + rel->r_offset);
+	    }
+	    r = bfd_reloc_ok;
+	    break;
+
+	  case R_FT32_DIFF32:
+	    r = bfd_reloc_ok;
+	    break;
+
+	  default:
+	    r = _bfd_final_link_relocate (howto, input_bfd, input_section,
+					  contents, rel->r_offset,
+					  relocation, rel->r_addend);
+	    break;
+	}
 
       if (r != bfd_reloc_ok)
 	{
@@ -356,6 +507,733 @@ ft32_elf_relocate_section (bfd *output_b
   return TRUE;
 }
 
+/* Relaxation.  */
+
+static bfd_boolean
+ft32_reloc_shortable
+    (bfd *		    abfd,
+     asection *		    sec,
+     Elf_Internal_Sym *	    isymbuf ATTRIBUTE_UNUSED,
+     bfd_byte *		    contents,
+     bfd_vma		    pc ATTRIBUTE_UNUSED,
+     Elf_Internal_Rela *    irel,
+     unsigned int *	    sc)
+{
+  Elf_Internal_Shdr *symtab_hdr ATTRIBUTE_UNUSED;
+  bfd_vma symval;
+
+  enum elf_ft32_reloc_type r_type;
+  reloc_howto_type *howto = NULL;
+  unsigned int insn;
+  int offset;
+  bfd_vma dot, value;
+
+  r_type = ELF32_R_TYPE (irel->r_info);
+  howto = &ft32_elf_howto_table [r_type];
+
+  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
+
+  /* Get the value of the symbol referred to by the reloc.  */
+  if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info)
+    {
+      /* A local symbol.  */
+      Elf_Internal_Sym *isym;
+      asection *sym_sec;
+
+      isym = isymbuf + ELF32_R_SYM (irel->r_info);
+      sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx);
+      symval = isym->st_value;
+      /* If the reloc is absolute, it will not have
+	 a symbol or section associated with it.  */
+      if (sym_sec)
+	symval += sym_sec->output_section->vma
+	  + sym_sec->output_offset;
+    }
+  else
+    {
+      unsigned long indx;
+      struct elf_link_hash_entry *h;
+
+      /* An external symbol.  */
+      indx = ELF32_R_SYM (irel->r_info) - symtab_hdr->sh_info;
+      h = elf_sym_hashes (abfd)[indx];
+      BFD_ASSERT (h != NULL);
+      if (h->root.type != bfd_link_hash_defined
+	  && h->root.type != bfd_link_hash_defweak)
+	/* This appears to be a reference to an undefined
+	   symbol.  Just ignore it--it will be caught by the
+	   regular reloc processing.  */
+	return FALSE;
+
+      symval = (h->root.u.def.value
+		+ h->root.u.def.section->output_section->vma
+		+ h->root.u.def.section->output_offset);
+    }
+
+  switch (r_type)
+    {
+      case R_FT32_8:
+      case R_FT32_10:
+      case R_FT32_16:
+      case R_FT32_20:
+      case R_FT32_RELAX:
+	if (symval != 0)
+	  return FALSE;
+	insn = bfd_get_32 (abfd, contents + irel->r_offset);
+	insn |= ((symval + irel->r_addend) << howto->bitpos) & howto->dst_mask;
+	return ft32_shortcode (insn, sc);
+
+      case R_FT32_18:
+	insn = bfd_get_32 (abfd, contents + irel->r_offset);
+	/* Get the address of this instruction.  */
+	dot = (sec->output_section->vma
+	       + sec->output_offset + irel->r_offset);
+	value = symval + irel->r_addend;
+	offset = (value - dot) / 4;
+
+	if ((dot > 0x8c) && (-256 <= offset) && (offset < 256))
+	  {
+	    switch (insn)
+	      {
+		case 0x00200000: *sc = (3 << 13) | (0  << 9); return TRUE;
+		case 0x00280000: *sc = (3 << 13) | (1  << 9); return TRUE;
+		case 0x00600000: *sc = (3 << 13) | (2  << 9); return TRUE;
+		case 0x00680000: *sc = (3 << 13) | (3  << 9); return TRUE;
+		case 0x00a00000: *sc = (3 << 13) | (4  << 9); return TRUE;
+		case 0x00a80000: *sc = (3 << 13) | (5  << 9); return TRUE;
+		case 0x00e00000: *sc = (3 << 13) | (6  << 9); return TRUE;
+		case 0x00e80000: *sc = (3 << 13) | (7  << 9); return TRUE;
+		case 0x01200000: *sc = (3 << 13) | (8  << 9); return TRUE;
+		case 0x01280000: *sc = (3 << 13) | (9  << 9); return TRUE;
+		case 0x01600000: *sc = (3 << 13) | (10 << 9); return TRUE;
+		case 0x01680000: *sc = (3 << 13) | (11 << 9); return TRUE;
+		case 0x01a00000: *sc = (3 << 13) | (12 << 9); return TRUE;
+		case 0x01a80000: *sc = (3 << 13) | (13 << 9); return TRUE;
+
+		case 0x00300000: *sc = (3 << 13) | (14 << 9); return TRUE;
+		case 0x00340000: *sc = (3 << 13) | (15 << 9); return TRUE;
+
+		default:
+		  break;
+	      }
+	  }
+	break;
+
+      default:
+	break;
+    }
+  return FALSE;
+}
+
+/* Returns whether the relocation type passed is a diff reloc.  */
+
+static bfd_boolean
+elf32_ft32_is_diff_reloc (Elf_Internal_Rela *irel)
+{
+  return (ELF32_R_TYPE (irel->r_info) == R_FT32_DIFF32);
+}
+
+/* Reduce the diff value written in the section by count if the shrinked
+   insn address happens to fall between the two symbols for which this
+   diff reloc was emitted.  */
+
+static bfd_boolean
+elf32_ft32_adjust_diff_reloc_value (bfd *abfd,
+				   struct bfd_section *isec,
+				   Elf_Internal_Rela *irel,
+				   bfd_vma symval,
+				   bfd_vma shrinked_insn_address,
+				   int count)
+{
+  unsigned char * reloc_contents = NULL;
+  unsigned char * isec_contents = elf_section_data (isec)->this_hdr.contents;
+  bfd_signed_vma x = 0;
+  bfd_vma sym2_address;
+  bfd_vma sym1_address;
+  bfd_vma start_address;
+  bfd_vma end_address;
+
+
+  if (isec_contents == NULL)
+    {
+      if (! bfd_malloc_and_get_section (abfd, isec, &isec_contents))
+	return FALSE;
+
+      elf_section_data (isec)->this_hdr.contents = isec_contents;
+    }
+
+  reloc_contents = isec_contents + irel->r_offset;
+
+  /* Read value written in object file.  */
+  switch (ELF32_R_TYPE (irel->r_info))
+    {
+    case R_FT32_DIFF32:
+      x = bfd_get_signed_32 (abfd, reloc_contents);
+      break;
+
+    default:
+      return FALSE;
+    }
+
+  /* For a diff reloc sym1 - sym2 the diff at assembly time (x) is written
+     into the object file at the reloc offset. sym2's logical value is
+     symval (<start_of_section>) + reloc addend. Compute the start and end
+     addresses and check if the shrinked insn falls between sym1 and sym2.  */
+  sym2_address = symval + irel->r_addend;
+  sym1_address = sym2_address - x;
+
+  /* Don't assume sym2 is bigger than sym1 - the difference
+     could be negative. Compute start and end addresses, and
+     use those to see if they span shrinked_insn_address.  */
+  start_address = sym1_address < sym2_address ? sym1_address : sym2_address;
+  end_address = sym1_address > sym2_address ? sym1_address : sym2_address;
+
+  if (shrinked_insn_address >= start_address
+      && shrinked_insn_address < end_address)
+    {
+      /* Reduce the diff value by count bytes and write it back into section
+	 contents.  */
+      bfd_signed_vma new_diff = x < 0 ? x + count : x - count;
+
+      if (sym2_address > shrinked_insn_address)
+	irel->r_addend -= count;
+
+      switch (ELF32_R_TYPE (irel->r_info))
+	{
+	case R_FT32_DIFF32:
+	  bfd_put_signed_32 (abfd, new_diff & 0xFFFFFFFF, reloc_contents);
+	  break;
+
+	default:
+	  return FALSE;
+	}
+    }
+
+  return TRUE;
+}
+
+static bfd_boolean
+elf32_ft32_adjust_reloc_if_spans_insn (bfd *abfd,
+				      asection *isec,
+				      Elf_Internal_Rela *irel,  bfd_vma symval,
+				      bfd_vma shrinked_insn_address,
+				      bfd_vma shrink_boundary,
+				      int count)
+{
+
+  if (elf32_ft32_is_diff_reloc (irel))
+    {
+      if (!elf32_ft32_adjust_diff_reloc_value (abfd, isec, irel,
+					       symval,
+					       shrinked_insn_address,
+					       count))
+	return FALSE;
+    }
+  else
+    {
+      bfd_vma reloc_value = symval + irel->r_addend;
+      bfd_boolean addend_within_shrink_boundary =
+	(reloc_value <= shrink_boundary);
+      bfd_boolean reloc_spans_insn =
+	(symval <= shrinked_insn_address
+	 && reloc_value > shrinked_insn_address
+	 && addend_within_shrink_boundary);
+
+      if (! reloc_spans_insn)
+	return TRUE;
+
+      irel->r_addend -= count;
+
+      if (debug_relax)
+	printf ("Relocation's addend needed to be fixed \n");
+    }
+  return TRUE;
+}
+
+/* Delete some bytes from a section while relaxing.  */
+
+static bfd_boolean
+elf32_ft32_relax_delete_bytes (struct bfd_link_info *link_info, bfd * abfd,
+			       asection * sec, bfd_vma addr, int count)
+{
+  Elf_Internal_Shdr *symtab_hdr;
+  unsigned int sec_shndx;
+  bfd_byte *contents;
+  Elf_Internal_Rela *irel, *irelend;
+  bfd_vma toaddr;
+  Elf_Internal_Sym *isym;
+  Elf_Internal_Sym *isymend;
+  struct elf_link_hash_entry **sym_hashes;
+  struct elf_link_hash_entry **end_hashes;
+  struct elf_link_hash_entry **start_hashes;
+  unsigned int symcount;
+  Elf_Internal_Sym *isymbuf = NULL;
+
+  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
+  sec_shndx = _bfd_elf_section_from_bfd_section (abfd, sec);
+
+  contents = elf_section_data (sec)->this_hdr.contents;
+
+  toaddr = sec->size;
+
+  irel = elf_section_data (sec)->relocs;
+  irelend = irel + sec->reloc_count;
+
+  /* Actually delete the bytes.  */
+  memmove (contents + addr, contents + addr + count,
+	   (size_t) (toaddr - addr - count));
+  sec->size -= count;
+
+  /* Adjust all the relocs.  */
+  for (irel = elf_section_data (sec)->relocs; irel < irelend; irel++)
+    /* Get the new reloc address.  */
+    if ((irel->r_offset > addr && irel->r_offset < toaddr))
+      irel->r_offset -= count;
+
+  /* The reloc's own addresses are now ok. However, we need to readjust
+     the reloc's addend, i.e. the reloc's value if two conditions are met:
+     1.) the reloc is relative to a symbol in this section that
+     is located in front of the shrinked instruction
+     2.) symbol plus addend end up behind the shrinked instruction.
+
+     The most common case where this happens are relocs relative to
+     the section-start symbol.
+
+     This step needs to be done for all of the sections of the bfd.  */
+  {
+    struct bfd_section *isec;
+
+    for (isec = abfd->sections; isec; isec = isec->next)
+      {
+	bfd_vma symval;
+	bfd_vma shrinked_insn_address;
+
+	if (isec->reloc_count == 0)
+	  continue;
+
+	shrinked_insn_address = (sec->output_section->vma
+				 + sec->output_offset + addr - count);
+
+	irel = elf_section_data (isec)->relocs;
+	/* PR 12161: Read in the relocs for this section if necessary.  */
+	if (irel == NULL)
+	  irel = _bfd_elf_link_read_relocs (abfd, isec, NULL, NULL, TRUE);
+
+	for (irelend = irel + isec->reloc_count; irel < irelend; irel++)
+	  {
+	    /* Read this BFD's local symbols if we haven't done
+	       so already.  */
+	    if (isymbuf == NULL && symtab_hdr->sh_info != 0)
+	      {
+		isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
+		if (isymbuf == NULL)
+		  isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr,
+						  symtab_hdr->sh_info, 0,
+						  NULL, NULL, NULL);
+		if (isymbuf == NULL)
+		  return FALSE;
+	      }
+
+	    /* Get the value of the symbol referred to by the reloc.  */
+	    if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info)
+	      {
+		/* A local symbol.  */
+		asection *sym_sec;
+
+		isym = isymbuf + ELF32_R_SYM (irel->r_info);
+		sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx);
+		symval = isym->st_value;
+		/* If the reloc is absolute, it will not have
+		   a symbol or section associated with it.  */
+		if (sym_sec == sec)
+		  {
+		    symval += sym_sec->output_section->vma
+		      + sym_sec->output_offset;
+
+		    if (debug_relax)
+		      printf ("Checking if the relocation's "
+			      "addend needs corrections.\n"
+			      "Address of anchor symbol: 0x%x \n"
+			      "Address of relocation target: 0x%x \n"
+			      "Address of relaxed insn: 0x%x \n",
+			      (unsigned int) symval,
+			      (unsigned int) (symval + irel->r_addend),
+			      (unsigned int) shrinked_insn_address);
+
+		    if (symval <= shrinked_insn_address
+			&& (symval + irel->r_addend) > shrinked_insn_address)
+		      {
+			/* If there is an alignment boundary, we only need to
+			   adjust addends that end up below the boundary. */
+			bfd_vma shrink_boundary = (toaddr
+						   + sec->output_section->vma
+						   + sec->output_offset);
+
+			if (debug_relax)
+			  printf
+			    ("Relocation's addend needed to be fixed \n");
+
+			if (!elf32_ft32_adjust_reloc_if_spans_insn (abfd, isec,
+								    irel, symval,
+								    shrinked_insn_address,
+								    shrink_boundary,
+								    count))
+			  return FALSE;
+		      }
+		  }
+		/* else reference symbol is absolute. No adjustment needed. */
+	      }
+	    /* else...Reference symbol is extern.  No need for adjusting
+	       the addend.  */
+	  }
+      }
+  }
+
+  /* Adjust the local symbols defined in this section.  */
+  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
+  isym = (Elf_Internal_Sym *) symtab_hdr->contents;
+  if (isym)
+    {
+      for (isymend = isym + symtab_hdr->sh_info; isym < isymend; isym++)
+	{
+	  if (isym->st_shndx == sec_shndx
+	      && isym->st_value > addr && isym->st_value < toaddr)
+	    isym->st_value -= count;
+	}
+    }
+
+  /* Now adjust the global symbols defined in this section.  */
+  symcount = (symtab_hdr->sh_size / sizeof (Elf32_External_Sym)
+	      - symtab_hdr->sh_info);
+  sym_hashes = start_hashes = elf_sym_hashes (abfd);
+  end_hashes = sym_hashes + symcount;
+
+  for (; sym_hashes < end_hashes; sym_hashes++)
+    {
+      struct elf_link_hash_entry *sym_hash = *sym_hashes;
+
+      /* The '--wrap SYMBOL' option is causing a pain when the object file,
+	 containing the definition of __wrap_SYMBOL, includes a direct
+	 call to SYMBOL as well. Since both __wrap_SYMBOL and SYMBOL reference
+	 the same symbol (which is __wrap_SYMBOL), but still exist as two
+	 different symbols in 'sym_hashes', we don't want to adjust
+	 the global symbol __wrap_SYMBOL twice.
+	 This check is only relevant when symbols are being wrapped.  */
+      if (link_info->wrap_hash != NULL)
+	{
+	  struct elf_link_hash_entry **cur_sym_hashes;
+
+	  /* Loop only over the symbols whom been already checked.  */
+	  for (cur_sym_hashes = start_hashes; cur_sym_hashes < sym_hashes;
+	       cur_sym_hashes++)
+	    /* If the current symbol is identical to 'sym_hash', that means
+	       the symbol was already adjusted (or at least checked).  */
+	    if (*cur_sym_hashes == sym_hash)
+	      break;
+
+	  /* Don't adjust the symbol again.  */
+	  if (cur_sym_hashes < sym_hashes)
+	    continue;
+	}
+
+      if ((sym_hash->root.type == bfd_link_hash_defined
+	   || sym_hash->root.type == bfd_link_hash_defweak)
+	  && sym_hash->root.u.def.section == sec
+	  && sym_hash->root.u.def.value > addr
+	  && sym_hash->root.u.def.value < toaddr)
+	sym_hash->root.u.def.value -= count;
+    }
+
+  return TRUE;
+}
+
+/* Return TRUE if LOC can be a target of a branch, jump or call.  */
+
+static bfd_boolean
+elf32_ft32_relax_is_branch_target (struct bfd_link_info *link_info,
+				   bfd * abfd, asection * sec,
+				   bfd_vma loc)
+{
+  Elf_Internal_Shdr *symtab_hdr;
+  Elf_Internal_Rela *irel, *irelend;
+  Elf_Internal_Sym *isym;
+  Elf_Internal_Sym *isymbuf = NULL;
+  bfd_vma symval;
+  struct bfd_section *isec;
+
+  struct elf_link_hash_entry **sym_hashes;
+  struct elf_link_hash_entry **end_hashes;
+  struct elf_link_hash_entry **start_hashes;
+  unsigned int symcount;
+
+  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
+
+  /* Now we check for relocations pointing to ret.  */
+  for (isec = abfd->sections; isec; isec = isec->next)
+    {
+      irel = elf_section_data (isec)->relocs;
+      if (irel == NULL)
+	irel = _bfd_elf_link_read_relocs (abfd, isec, NULL, NULL, TRUE);
+
+      irelend = irel + isec->reloc_count;
+
+      for (; irel < irelend; irel++)
+	{
+	  /* Read this BFD's local symbols if we haven't done
+	     so already.  */
+	  if (isymbuf == NULL && symtab_hdr->sh_info != 0)
+	    {
+	      isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
+	      if (isymbuf == NULL)
+		isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr,
+						symtab_hdr->sh_info, 0,
+						NULL, NULL, NULL);
+	      if (isymbuf == NULL)
+		return FALSE;
+	    }
+
+	  /* Get the value of the symbol referred to by the reloc.  */
+	  if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info)
+	    {
+	      /* A local symbol.  */
+	      asection *sym_sec;
+
+	      isym = isymbuf + ELF32_R_SYM (irel->r_info);
+	      sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx);
+	      symval = isym->st_value;
+	      /* If the reloc is absolute, it will not have
+		 a symbol or section associated with it.  */
+	      if (sym_sec == sec)
+		{
+		  symval += sym_sec->output_section->vma
+			    + sym_sec->output_offset;
+
+		  if (debug_relax)
+		    printf ("0x%x: Address of anchor symbol: 0x%x "
+			    "Address of relocation target: 0x%x \n",
+			    (unsigned int) irel->r_offset,
+			    (unsigned int) symval,
+			    (unsigned int) (symval + irel->r_addend));
+		  if ((irel->r_addend) == loc)
+		    return TRUE;
+		}
+	    }
+	}
+    }
+
+  symcount = (symtab_hdr->sh_size / sizeof (Elf32_External_Sym)
+	       - symtab_hdr->sh_info);
+  sym_hashes = start_hashes = elf_sym_hashes (abfd);
+  end_hashes = sym_hashes + symcount;
+
+  for (; sym_hashes < end_hashes; sym_hashes++)
+    {
+      struct elf_link_hash_entry *sym_hash = *sym_hashes;
+
+      /* The '--wrap SYMBOL' option is causing a pain when the object file,
+	 containing the definition of __wrap_SYMBOL, includes a direct
+	 call to SYMBOL as well. Since both __wrap_SYMBOL and SYMBOL reference
+	 the same symbol (which is __wrap_SYMBOL), but still exist as two
+	 different symbols in 'sym_hashes', we don't want to adjust
+	 the global symbol __wrap_SYMBOL twice.
+	 This check is only relevant when symbols are being wrapped.  */
+      if (link_info->wrap_hash != NULL)
+	{
+	  struct elf_link_hash_entry **cur_sym_hashes;
+
+	  /* Loop only over the symbols whom been already checked.  */
+	  for (cur_sym_hashes = start_hashes; cur_sym_hashes < sym_hashes;
+	       cur_sym_hashes++)
+	    /* If the current symbol is identical to 'sym_hash', that means
+	       the symbol was already adjusted (or at least checked).  */
+	    if (*cur_sym_hashes == sym_hash)
+	      break;
+
+	  /* Don't adjust the symbol again.  */
+	  if (cur_sym_hashes < sym_hashes)
+	    continue;
+	}
+
+      if ((sym_hash->root.type == bfd_link_hash_defined
+	  || sym_hash->root.type == bfd_link_hash_defweak)
+	  && sym_hash->root.u.def.section == sec
+	  && sym_hash->root.u.def.value == loc)
+	return TRUE;
+    }
+
+  return FALSE;
+}
+
+static bfd_boolean
+ft32_elf_relax_section
+    (bfd *		    abfd,
+     asection *		    sec,
+     struct bfd_link_info * link_info,
+     bfd_boolean *	    again)
+{
+  Elf_Internal_Rela * free_relocs = NULL;
+  Elf_Internal_Rela * internal_relocs;
+  Elf_Internal_Rela * irelend;
+  Elf_Internal_Rela * irel;
+  bfd_byte *	      contents = NULL;
+  Elf_Internal_Shdr * symtab_hdr;
+  Elf_Internal_Sym *  isymbuf = NULL;
+
+  /* Assume nothing changes.  */
+  *again = FALSE;
+
+  /* We don't have to do anything for a relocatable link, if
+     this section does not have relocs, or if this is not a
+     code section.  */
+  if (bfd_link_relocatable (link_info)
+      || (sec->flags & SEC_RELOC) == 0
+      || sec->reloc_count == 0
+      || (sec->flags & SEC_CODE) == 0)
+    return TRUE;
+
+  /* Get the section contents.  */
+  if (elf_section_data (sec)->this_hdr.contents != NULL)
+    contents = elf_section_data (sec)->this_hdr.contents;
+  /* Go get them off disk.  */
+  else
+    {
+      if (! bfd_malloc_and_get_section (abfd, sec, &contents))
+	goto error_return;
+      elf_section_data (sec)->this_hdr.contents = contents;
+    }
+
+  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
+
+  /* Read this BFD's local symbols if we haven't done so already.  */
+  if (isymbuf == NULL && symtab_hdr->sh_info != 0)
+    {
+      isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents;
+      if (isymbuf == NULL)
+	isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr,
+					symtab_hdr->sh_info, 0,
+					NULL, NULL, NULL);
+      if (isymbuf == NULL)
+	goto error_return;
+      symtab_hdr->contents = (unsigned char *) isymbuf;
+    }
+
+  internal_relocs = _bfd_elf_link_read_relocs (abfd, sec, NULL, NULL,
+					       link_info->keep_memory);
+  if (internal_relocs == NULL)
+    goto error_return;
+  if (! link_info->keep_memory)
+    free_relocs = internal_relocs;
+
+  /* Walk through them looking for relaxing opportunities.  */
+  irelend = internal_relocs + sec->reloc_count;
+
+  /* Test every adjacent pair of relocs. If both have shortcodes,
+     fuse them and delete the relocs.  */
+  irel = internal_relocs;
+  while (irel < irelend - 1)
+    {
+      Elf_Internal_Rela * irel_next = irel + 1;
+      unsigned int sc0, sc1;
+      bfd_vma pc;
+
+      pc = irel->r_offset;
+
+      if (((pc + 4) == (irel_next->r_offset))
+	  && ft32_reloc_shortable (abfd, sec, isymbuf, contents, pc, irel,
+				   &sc0)
+	  && ft32_reloc_shortable (abfd, sec, isymbuf, contents, pc,
+				   irel_next, &sc1)
+	  && !elf32_ft32_relax_is_branch_target (link_info, abfd, sec,
+						 irel_next->r_offset))
+	{
+	  unsigned int code30 = (sc1 << 15) | sc0;
+	  unsigned int code27 = code30 >> 3;
+	  unsigned int code3 = code30 & 7;
+	  static const unsigned char pat3[] = {2, 3, 4, 5, 6, 9, 10, 14};
+	  unsigned int pattern = pat3[code3];
+	  unsigned int fused = (pattern << 27) | code27;
+
+	  /* Move second reloc to same place as first.  */
+	  irel_next->r_offset = irel->r_offset;
+
+	  /* Change both relocs to R_FT32_NONE.  */
+
+	  if (ELF32_R_TYPE (irel->r_info) == R_FT32_18)
+	    {
+	      irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+					   R_FT32_SC0);
+	    }
+	  else
+	    {
+	      irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+					   R_FT32_NONE);
+	    }
+
+	  if (ELF32_R_TYPE (irel_next->r_info) == R_FT32_18)
+	    {
+	      irel_next->r_info = ELF32_R_INFO (ELF32_R_SYM (irel_next->r_info),
+						R_FT32_SC1);
+	    }
+	  else
+	    {
+	      irel_next->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+						R_FT32_NONE);
+	    }
+
+	  /* Replace the first insn with the fused version.  */
+	  bfd_put_32 (abfd, fused, contents + irel->r_offset);
+
+	  /* Delete the second insn.  */
+	  if (!elf32_ft32_relax_delete_bytes (link_info, abfd, sec,
+					       irel->r_offset + 4, 4))
+	    goto error_return;
+
+	  /* That will change things, so, we should relax again.
+	     Note that this is not required, and it may be slow.  */
+	  *again = TRUE;
+
+	  irel += 2;
+	}
+      else
+	{
+	  irel += 1;
+	}
+    }
+
+  if (isymbuf != NULL
+      && symtab_hdr->contents != (unsigned char *) isymbuf)
+    {
+      if (! link_info->keep_memory)
+	free (isymbuf);
+      else
+       /* Cache the symbols for elf_link_input_bfd.  */
+       symtab_hdr->contents = (unsigned char *) isymbuf;
+    }
+
+  if (contents != NULL
+      && elf_section_data (sec)->this_hdr.contents != contents)
+    {
+      if (! link_info->keep_memory)
+	free (contents);
+      else
+       /* Cache the section contents for elf_link_input_bfd.  */
+       elf_section_data (sec)->this_hdr.contents = contents;
+
+    }
+
+  if (internal_relocs != NULL
+      && elf_section_data (sec)->relocs != internal_relocs)
+    free (internal_relocs);
+
+  return TRUE;
+
+ error_return:
+  if (free_relocs != NULL)
+    free (free_relocs);
+
+  return TRUE;
+}
+
 #define ELF_ARCH		bfd_arch_ft32
 #define ELF_MACHINE_CODE	EM_FT32
 #define ELF_MAXPAGESIZE		0x1
@@ -373,4 +1251,6 @@ ft32_elf_relocate_section (bfd *output_b
 #define bfd_elf32_bfd_reloc_type_lookup		ft32_reloc_type_lookup
 #define bfd_elf32_bfd_reloc_name_lookup		ft32_reloc_name_lookup
 
+#define bfd_elf32_bfd_relax_section		ft32_elf_relax_section
+
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-gen.c ./bfd/elf32-gen.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-gen.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-gen.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Generic support for 32-bit ELF
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-h8300.c ./bfd/elf32-h8300.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-h8300.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-h8300.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Renesas H8/300 ELF binaries.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -664,27 +664,27 @@ elf32_h8_merge_private_bfd_data (bfd *ib
 
    There are a few relaxing opportunities available on the H8:
 
-     jmp/jsr:24    ->    bra/bsr:8		2 bytes
+     jmp/jsr:24	   ->	 bra/bsr:8		2 bytes
      The jmp may be completely eliminated if the previous insn is a
      conditional branch to the insn after the jump.  In that case
      we invert the branch and delete the jump and save 4 bytes.
 
-     bCC:16          ->    bCC:8                  2 bytes
-     bsr:16          ->    bsr:8                  2 bytes
+     bCC:16	     ->	   bCC:8		  2 bytes
+     bsr:16	     ->	   bsr:8		  2 bytes
 
-     bset:16	     ->    bset:8                 2 bytes
-     bset:24/32	     ->    bset:8                 4 bytes
+     bset:16	     ->	   bset:8		  2 bytes
+     bset:24/32	     ->	   bset:8		  4 bytes
      (also applicable to other bit manipulation instructions)
 
-     mov.b:16	     ->    mov.b:8                2 bytes
-     mov.b:24/32     ->    mov.b:8                4 bytes
+     mov.b:16	     ->	   mov.b:8		  2 bytes
+     mov.b:24/32     ->	   mov.b:8		  4 bytes
 
-     bset:24/32	     ->    bset:16                2 bytes
+     bset:24/32	     ->	   bset:16		  2 bytes
      (also applicable to other bit manipulation instructions)
 
-     mov.[bwl]:24/32 ->    mov.[bwl]:16           2 bytes
+     mov.[bwl]:24/32 ->	   mov.[bwl]:16		  2 bytes
 
-     mov.[bwl] @(displ:24/32+ERx) -> mov.[bwl] @(displ:16+ERx)  4 bytes.  */
+     mov.[bwl] @(displ:24/32+ERx) -> mov.[bwl] @(displ:16+ERx)	4 bytes.  */
 
 static bfd_boolean
 elf32_h8_relax_section (bfd *abfd, asection *sec,
@@ -808,8 +808,8 @@ elf32_h8_relax_section (bfd *abfd, asect
 	      && h->root.type != bfd_link_hash_defweak)
 	    {
 	      /* This appears to be a reference to an undefined
-                 symbol.  Just ignore it--it will be caught by the
-                 regular reloc processing.  */
+		 symbol.  Just ignore it--it will be caught by the
+		 regular reloc processing.  */
 	      continue;
 	    }
 
@@ -1736,7 +1736,7 @@ elf32_h8_get_relocated_section_contents 
 /* And relaxing stuff.  */
 #define bfd_elf32_bfd_relax_section     elf32_h8_relax_section
 #define bfd_elf32_bfd_get_relocated_section_contents \
-                                elf32_h8_get_relocated_section_contents
+				elf32_h8_get_relocated_section_contents
 
 #define elf_symbol_leading_char '_'
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-hppa.c ./bfd/elf32-hppa.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-hppa.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-hppa.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for HP PA-RISC ELF files.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Original code by
 	Center for Software Science
@@ -119,7 +119,7 @@
 /* Variable names follow a coding style.
    Please follow this (Apps Hungarian) style:
 
-   Structure/Variable         		Prefix
+   Structure/Variable			Prefix
    elf_link_hash_table			"etab"
    elf_link_hash_entry			"eh"
 
@@ -132,8 +132,6 @@
    bfd_hash_table containing stubs	"bstab"
    elf32_hppa_stub_hash_entry		"hsh"
 
-   elf32_hppa_dyn_reloc_entry		"hdh"
-
    Always remember to use GNU Coding Style. */
 
 #define PLT_ENTRY_SIZE 8
@@ -162,6 +160,7 @@ static const bfd_byte plt_stub[] =
 #ifndef RELATIVE_DYNRELOCS
 #define RELATIVE_DYNRELOCS 0
 #define IS_ABSOLUTE_RELOC(r_type) 1
+#define pc_dynrelocs(hh) 0
 #endif
 
 /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid
@@ -206,6 +205,15 @@ struct elf32_hppa_stub_hash_entry
   asection *id_sec;
 };
 
+enum _tls_type
+  {
+    GOT_UNKNOWN = 0,
+    GOT_NORMAL = 1,
+    GOT_TLS_GD = 2,
+    GOT_TLS_LDM = 4,
+    GOT_TLS_IE = 8
+  };
+
 struct elf32_hppa_link_hash_entry
 {
   struct elf_link_hash_entry eh;
@@ -216,27 +224,9 @@ struct elf32_hppa_link_hash_entry
 
   /* Used to count relocations for delayed sizing of relocation
      sections.  */
-  struct elf32_hppa_dyn_reloc_entry
-  {
-    /* Next relocation in the chain.  */
-    struct elf32_hppa_dyn_reloc_entry *hdh_next;
-
-    /* The input section of the reloc.  */
-    asection *sec;
-
-    /* Number of relocs copied in this section.  */
-    bfd_size_type count;
-
-#if RELATIVE_DYNRELOCS
-  /* Number of relative relocs copied for the input section.  */
-    bfd_size_type relative_count;
-#endif
-  } *dyn_relocs;
+  struct elf_dyn_relocs *dyn_relocs;
 
-  enum
-  {
-    GOT_UNKNOWN = 0, GOT_NORMAL = 1, GOT_TLS_GD = 2, GOT_TLS_LDM = 4, GOT_TLS_IE = 8
-  } tls_type;
+  ENUM_BITFIELD (_tls_type) tls_type : 8;
 
   /* Set if this symbol is used by a plabel reloc.  */
   unsigned int plabel:1;
@@ -836,10 +826,10 @@ hppa_build_one_stub (struct bfd_hash_ent
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections"),
+	    (_("%B(%A+%#Lx): cannot reach %s, recompile with -ffunction-sections"),
 	     hsh->target_section->owner,
 	     stub_sec,
-	     (long) hsh->stub_offset,
+	     hsh->stub_offset,
 	     hsh->bh_root.string);
 	  bfd_set_error (bfd_error_bad_value);
 	  return FALSE;
@@ -852,7 +842,7 @@ hppa_build_one_stub (struct bfd_hash_ent
 	insn = hppa_rebuild_insn ((int) BL22_RP, val, 22);
       bfd_put_32 (stub_bfd, insn, loc);
 
-      bfd_put_32 (stub_bfd, (bfd_vma) NOP,         loc + 4);
+      bfd_put_32 (stub_bfd, (bfd_vma) NOP,	   loc + 4);
       bfd_put_32 (stub_bfd, (bfd_vma) LDW_RP,      loc + 8);
       bfd_put_32 (stub_bfd, (bfd_vma) LDSID_RP_R1, loc + 12);
       bfd_put_32 (stub_bfd, (bfd_vma) MTSP_R1,     loc + 16);
@@ -1014,33 +1004,34 @@ elf32_hppa_copy_indirect_symbol (struct 
   hh_dir = hppa_elf_hash_entry (eh_dir);
   hh_ind = hppa_elf_hash_entry (eh_ind);
 
-  if (hh_ind->dyn_relocs != NULL)
+  if (hh_ind->dyn_relocs != NULL
+      && eh_ind->root.type == bfd_link_hash_indirect)
     {
       if (hh_dir->dyn_relocs != NULL)
 	{
-	  struct elf32_hppa_dyn_reloc_entry **hdh_pp;
-	  struct elf32_hppa_dyn_reloc_entry *hdh_p;
+	  struct elf_dyn_relocs **hdh_pp;
+	  struct elf_dyn_relocs *hdh_p;
 
 	  /* Add reloc counts against the indirect sym to the direct sym
 	     list.  Merge any entries against the same section.  */
 	  for (hdh_pp = &hh_ind->dyn_relocs; (hdh_p = *hdh_pp) != NULL; )
 	    {
-	      struct elf32_hppa_dyn_reloc_entry *hdh_q;
+	      struct elf_dyn_relocs *hdh_q;
 
 	      for (hdh_q = hh_dir->dyn_relocs;
 		   hdh_q != NULL;
-		   hdh_q = hdh_q->hdh_next)
+		   hdh_q = hdh_q->next)
 		if (hdh_q->sec == hdh_p->sec)
 		  {
 #if RELATIVE_DYNRELOCS
-		    hdh_q->relative_count += hdh_p->relative_count;
+		    hdh_q->pc_count += hdh_p->pc_count;
 #endif
 		    hdh_q->count += hdh_p->count;
-		    *hdh_pp = hdh_p->hdh_next;
+		    *hdh_pp = hdh_p->next;
 		    break;
 		  }
 	      if (hdh_q == NULL)
-		hdh_pp = &hdh_p->hdh_next;
+		hdh_pp = &hdh_p->next;
 	    }
 	  *hdh_pp = hh_dir->dyn_relocs;
 	}
@@ -1049,30 +1040,14 @@ elf32_hppa_copy_indirect_symbol (struct 
       hh_ind->dyn_relocs = NULL;
     }
 
-  if (ELIMINATE_COPY_RELOCS
-      && eh_ind->root.type != bfd_link_hash_indirect
-      && eh_dir->dynamic_adjusted)
+  if (eh_ind->root.type == bfd_link_hash_indirect)
     {
-      /* If called to transfer flags for a weakdef during processing
-	 of elf_adjust_dynamic_symbol, don't copy non_got_ref.
-	 We clear it ourselves for ELIMINATE_COPY_RELOCS.  */
-      if (eh_dir->versioned != versioned_hidden)
-	eh_dir->ref_dynamic |= eh_ind->ref_dynamic;
-      eh_dir->ref_regular |= eh_ind->ref_regular;
-      eh_dir->ref_regular_nonweak |= eh_ind->ref_regular_nonweak;
-      eh_dir->needs_plt |= eh_ind->needs_plt;
+      hh_dir->plabel |= hh_ind->plabel;
+      hh_dir->tls_type |= hh_ind->tls_type;
+      hh_ind->tls_type = GOT_UNKNOWN;
     }
-  else
-    {
-      if (eh_ind->root.type == bfd_link_hash_indirect)
-	{
-	  hh_dir->plabel |= hh_ind->plabel;
-	  hh_dir->tls_type |= hh_ind->tls_type;
-	  hh_ind->tls_type = GOT_UNKNOWN;
-	}
 
-      _bfd_elf_link_hash_copy_indirect (info, eh_dir, eh_ind);
-    }
+  _bfd_elf_link_hash_copy_indirect (info, eh_dir, eh_ind);
 }
 
 static int
@@ -1132,7 +1107,6 @@ elf32_hppa_check_relocs (bfd *abfd,
   const Elf_Internal_Rela *rela_end;
   struct elf32_hppa_link_hash_table *htab;
   asection *sreloc;
-  int tls_type = GOT_UNKNOWN, old_tls_type = GOT_UNKNOWN;
 
   if (bfd_link_relocatable (info))
     return TRUE;
@@ -1168,10 +1142,6 @@ elf32_hppa_check_relocs (bfd *abfd,
 	  while (hh->eh.root.type == bfd_link_hash_indirect
 		 || hh->eh.root.type == bfd_link_hash_warning)
 	    hh = hppa_elf_hash_entry (hh->eh.root.u.i.link);
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  hh->eh.root.non_ir_ref = 1;
 	}
 
       r_type = ELF32_R_TYPE (rela->r_info);
@@ -1210,7 +1180,9 @@ elf32_hppa_check_relocs (bfd *abfd,
 	     functions indirectly or to compare function pointers.
 	     We avoid the mess by always pointing a PLABEL into the
 	     .plt, even for local functions.  */
-	  need_entry = PLT_PLABEL | NEED_PLT | NEED_DYNREL;
+	  need_entry = PLT_PLABEL | NEED_PLT;
+	  if (bfd_link_pic (info))
+	    need_entry |= NEED_DYNREL;
 	  break;
 
 	case R_PARISC_PCREL12F:
@@ -1310,8 +1282,8 @@ elf32_hppa_check_relocs (bfd *abfd,
 
 	case R_PARISC_TLS_IE21L:
 	case R_PARISC_TLS_IE14R:
-	  if (bfd_link_pic (info))
-            info->flags |= DF_STATIC_TLS;
+	  if (bfd_link_dll (info))
+	    info->flags |= DF_STATIC_TLS;
 	  need_entry = NEED_GOT;
 	  break;
 
@@ -1322,22 +1294,23 @@ elf32_hppa_check_relocs (bfd *abfd,
       /* Now carry out our orders.  */
       if (need_entry & NEED_GOT)
 	{
+	  int tls_type = GOT_NORMAL;
+
 	  switch (r_type)
 	    {
 	    default:
-	      tls_type = GOT_NORMAL;
 	      break;
 	    case R_PARISC_TLS_GD21L:
 	    case R_PARISC_TLS_GD14R:
-	      tls_type |= GOT_TLS_GD;
+	      tls_type = GOT_TLS_GD;
 	      break;
 	    case R_PARISC_TLS_LDM21L:
 	    case R_PARISC_TLS_LDM14R:
-	      tls_type |= GOT_TLS_LDM;
+	      tls_type = GOT_TLS_LDM;
 	      break;
 	    case R_PARISC_TLS_IE21L:
 	    case R_PARISC_TLS_IE14R:
-	      tls_type |= GOT_TLS_IE;
+	      tls_type = GOT_TLS_IE;
 	      break;
 	    }
 
@@ -1349,39 +1322,28 @@ elf32_hppa_check_relocs (bfd *abfd,
 		return FALSE;
 	    }
 
-	  if (r_type == R_PARISC_TLS_LDM21L
-	      || r_type == R_PARISC_TLS_LDM14R)
-	    htab->tls_ldm_got.refcount += 1;
-	  else
+	  if (hh != NULL)
 	    {
-	      if (hh != NULL)
-	        {
-	          hh->eh.got.refcount += 1;
-	          old_tls_type = hh->tls_type;
-	        }
+	      if (tls_type == GOT_TLS_LDM)
+		htab->tls_ldm_got.refcount += 1;
 	      else
-	        {
-	          bfd_signed_vma *local_got_refcounts;
-
-	          /* This is a global offset table entry for a local symbol.  */
-	          local_got_refcounts = hppa32_elf_local_refcounts (abfd);
-	          if (local_got_refcounts == NULL)
-		    return FALSE;
-	          local_got_refcounts[r_symndx] += 1;
-
-	          old_tls_type = hppa_elf_local_got_tls_type (abfd) [r_symndx];
-	        }
-
-	      tls_type |= old_tls_type;
+		hh->eh.got.refcount += 1;
+	      hh->tls_type |= tls_type;
+	    }
+	  else
+	    {
+	      bfd_signed_vma *local_got_refcounts;
 
-	      if (old_tls_type != tls_type)
-	        {
-	          if (hh != NULL)
-		    hh->tls_type = tls_type;
-	          else
-		    hppa_elf_local_got_tls_type (abfd) [r_symndx] = tls_type;
-	        }
+	      /* This is a global offset table entry for a local symbol.  */
+	      local_got_refcounts = hppa32_elf_local_refcounts (abfd);
+	      if (local_got_refcounts == NULL)
+		return FALSE;
+	      if (tls_type == GOT_TLS_LDM)
+		htab->tls_ldm_got.refcount += 1;
+	      else
+		local_got_refcounts[r_symndx] += 1;
 
+	      hppa_elf_local_got_tls_type (abfd) [r_symndx] |= tls_type;
 	    }
 	}
 
@@ -1423,12 +1385,13 @@ elf32_hppa_check_relocs (bfd *abfd,
 	    }
 	}
 
-      if (need_entry & NEED_DYNREL)
+      if ((need_entry & NEED_DYNREL) != 0
+	  && (sec->flags & SEC_ALLOC) != 0)
 	{
 	  /* Flag this symbol as having a non-got, non-plt reference
 	     so that we generate copy relocs if it turns out to be
 	     dynamic.  */
-	  if (hh != NULL && !bfd_link_pic (info))
+	  if (hh != NULL)
 	    hh->eh.non_got_ref = 1;
 
 	  /* If we are creating a shared library then we need to copy
@@ -1460,7 +1423,6 @@ elf32_hppa_check_relocs (bfd *abfd,
 	     dynamic library if we manage to avoid copy relocs for the
 	     symbol.  */
 	  if ((bfd_link_pic (info)
-	       && (sec->flags & SEC_ALLOC) != 0
 	       && (IS_ABSOLUTE_RELOC (r_type)
 		   || (hh != NULL
 		       && (!SYMBOLIC_BIND (info, &hh->eh)
@@ -1468,13 +1430,12 @@ elf32_hppa_check_relocs (bfd *abfd,
 			   || !hh->eh.def_regular))))
 	      || (ELIMINATE_COPY_RELOCS
 		  && !bfd_link_pic (info)
-		  && (sec->flags & SEC_ALLOC) != 0
 		  && hh != NULL
 		  && (hh->eh.root.type == bfd_link_hash_defweak
 		      || !hh->eh.def_regular)))
 	    {
-	      struct elf32_hppa_dyn_reloc_entry *hdh_p;
-	      struct elf32_hppa_dyn_reloc_entry **hdh_head;
+	      struct elf_dyn_relocs *hdh_p;
+	      struct elf_dyn_relocs **hdh_head;
 
 	      /* Create a reloc section in dynobj and make room for
 		 this reloc.  */
@@ -1515,7 +1476,7 @@ elf32_hppa_check_relocs (bfd *abfd,
 		    sr = sec;
 
 		  vpp = &elf_section_data (sr)->local_dynrel;
-		  hdh_head = (struct elf32_hppa_dyn_reloc_entry **) vpp;
+		  hdh_head = (struct elf_dyn_relocs **) vpp;
 		}
 
 	      hdh_p = *hdh_head;
@@ -1524,19 +1485,19 @@ elf32_hppa_check_relocs (bfd *abfd,
 		  hdh_p = bfd_alloc (htab->etab.dynobj, sizeof *hdh_p);
 		  if (hdh_p == NULL)
 		    return FALSE;
-		  hdh_p->hdh_next = *hdh_head;
+		  hdh_p->next = *hdh_head;
 		  *hdh_head = hdh_p;
 		  hdh_p->sec = sec;
 		  hdh_p->count = 0;
 #if RELATIVE_DYNRELOCS
-		  hdh_p->relative_count = 0;
+		  hdh_p->pc_count = 0;
 #endif
 		}
 
 	      hdh_p->count += 1;
 #if RELATIVE_DYNRELOCS
 	      if (!IS_ABSOLUTE_RELOC (rtype))
-		hdh_p->relative_count += 1;
+		hdh_p->pc_count += 1;
 #endif
 	    }
 	}
@@ -1566,130 +1527,6 @@ elf32_hppa_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rela, hh, sym);
 }
 
-/* Update the got and plt entry reference counts for the section being
-   removed.  */
-
-static bfd_boolean
-elf32_hppa_gc_sweep_hook (bfd *abfd,
-			  struct bfd_link_info *info ATTRIBUTE_UNUSED,
-			  asection *sec,
-			  const Elf_Internal_Rela *relocs)
-{
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **eh_syms;
-  bfd_signed_vma *local_got_refcounts;
-  bfd_signed_vma *local_plt_refcounts;
-  const Elf_Internal_Rela *rela, *relend;
-  struct elf32_hppa_link_hash_table *htab;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  htab = hppa_link_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  eh_syms = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-  local_plt_refcounts = local_got_refcounts;
-  if (local_plt_refcounts != NULL)
-    local_plt_refcounts += symtab_hdr->sh_info;
-
-  relend = relocs + sec->reloc_count;
-  for (rela = relocs; rela < relend; rela++)
-    {
-      unsigned long r_symndx;
-      unsigned int r_type;
-      struct elf_link_hash_entry *eh = NULL;
-
-      r_symndx = ELF32_R_SYM (rela->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  struct elf32_hppa_link_hash_entry *hh;
-	  struct elf32_hppa_dyn_reloc_entry **hdh_pp;
-	  struct elf32_hppa_dyn_reloc_entry *hdh_p;
-
-	  eh = eh_syms[r_symndx - symtab_hdr->sh_info];
-	  while (eh->root.type == bfd_link_hash_indirect
-		 || eh->root.type == bfd_link_hash_warning)
-	    eh = (struct elf_link_hash_entry *) eh->root.u.i.link;
-	  hh = hppa_elf_hash_entry (eh);
-
-	  for (hdh_pp = &hh->dyn_relocs; (hdh_p = *hdh_pp) != NULL; hdh_pp = &hdh_p->hdh_next)
-	    if (hdh_p->sec == sec)
-	      {
-		/* Everything must go for SEC.  */
-		*hdh_pp = hdh_p->hdh_next;
-		break;
-	      }
-	}
-
-      r_type = ELF32_R_TYPE (rela->r_info);
-      r_type = elf32_hppa_optimized_tls_reloc (info, r_type, eh != NULL);
-
-      switch (r_type)
-	{
-	case R_PARISC_DLTIND14F:
-	case R_PARISC_DLTIND14R:
-	case R_PARISC_DLTIND21L:
-	case R_PARISC_TLS_GD21L:
-	case R_PARISC_TLS_GD14R:
-	case R_PARISC_TLS_IE21L:
-	case R_PARISC_TLS_IE14R:
-	  if (eh != NULL)
-	    {
-	      if (eh->got.refcount > 0)
-		eh->got.refcount -= 1;
-	    }
-	  else if (local_got_refcounts != NULL)
-	    {
-	      if (local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx] -= 1;
-	    }
-	  break;
-
-	case R_PARISC_TLS_LDM21L:
-	case R_PARISC_TLS_LDM14R:
-	  htab->tls_ldm_got.refcount -= 1;
-	  break;
-
-	case R_PARISC_PCREL12F:
-	case R_PARISC_PCREL17C:
-	case R_PARISC_PCREL17F:
-	case R_PARISC_PCREL22F:
-	  if (eh != NULL)
-	    {
-	      if (eh->plt.refcount > 0)
-		eh->plt.refcount -= 1;
-	    }
-	  break;
-
-	case R_PARISC_PLABEL14R:
-	case R_PARISC_PLABEL21L:
-	case R_PARISC_PLABEL32:
-	  if (eh != NULL)
-	    {
-	      if (eh->plt.refcount > 0)
-		eh->plt.refcount -= 1;
-	    }
-	  else if (local_plt_refcounts != NULL)
-	    {
-	      if (local_plt_refcounts[r_symndx] > 0)
-		local_plt_refcounts[r_symndx] -= 1;
-	    }
-	  break;
-
-	default:
-	  break;
-	}
-    }
-
-  return TRUE;
-}
-
 /* Support for core dump NOTE sections.  */
 
 static bfd_boolean
@@ -1783,6 +1620,43 @@ elf32_hppa_hide_symbol (struct bfd_link_
     }
 }
 
+/* Find any dynamic relocs that apply to read-only sections.  */
+
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *eh)
+{
+  struct elf32_hppa_link_hash_entry *hh;
+  struct elf_dyn_relocs *hdh_p;
+
+  hh = hppa_elf_hash_entry (eh);
+  for (hdh_p = hh->dyn_relocs; hdh_p != NULL; hdh_p = hdh_p->next)
+    {
+      asection *sec = hdh_p->sec->output_section;
+
+      if (sec != NULL && (sec->flags & SEC_READONLY) != 0)
+	return hdh_p->sec;
+    }
+  return NULL;
+}
+
+/* Return true if we have dynamic relocs against H or any of its weak
+   aliases, that apply to read-only sections.  Cannot be used after
+   size_dynamic_sections.  */
+
+static bfd_boolean
+alias_readonly_dynrelocs (struct elf_link_hash_entry *eh)
+{
+  struct elf32_hppa_link_hash_entry *hh = hppa_elf_hash_entry (eh);
+  do
+    {
+      if (readonly_dynrelocs (&hh->eh))
+	return TRUE;
+      hh = hppa_elf_hash_entry (hh->eh.u.alias);
+    } while (hh != NULL && &hh->eh != eh);
+
+  return FALSE;
+}
+
 /* Adjust a symbol defined by a dynamic object and referenced by a
    regular object.  The current definition is in some section of the
    dynamic object, but we're not including those sections.  We have to
@@ -1801,18 +1675,23 @@ elf32_hppa_adjust_dynamic_symbol (struct
   if (eh->type == STT_FUNC
       || eh->needs_plt)
     {
+      bfd_boolean local = (SYMBOL_CALLS_LOCAL (info, eh)
+			   || UNDEFWEAK_NO_DYNAMIC_RELOC (info, eh));
+      /* Discard dyn_relocs when non-pic if we've decided that a
+	 function symbol is local.  */
+      if (!bfd_link_pic (info) && local)
+	hppa_elf_hash_entry (eh)->dyn_relocs = NULL;
+
       /* If the symbol is used by a plabel, we must allocate a PLT slot.
 	 The refcounts are not reliable when it has been hidden since
 	 hide_symbol can be called before the plabel flag is set.  */
-      if (hppa_elf_hash_entry (eh)->plabel
-	  && eh->plt.refcount <= 0)
+      if (hppa_elf_hash_entry (eh)->plabel)
 	eh->plt.refcount = 1;
 
-      if (eh->plt.refcount <= 0
-	  || (eh->def_regular
-	      && eh->root.type != bfd_link_hash_defweak
-	      && ! hppa_elf_hash_entry (eh)->plabel
-	      && (!bfd_link_pic (info) || SYMBOLIC_BIND (info, eh))))
+      /* Note that unlike some other backends, the refcount is not
+	 incremented for a non-call (and non-plabel) function reference.  */
+      else if (eh->plt.refcount <= 0
+	       || local)
 	{
 	  /* The .plt entry is not needed when:
 	     a) Garbage collection has removed all references to the
@@ -1821,28 +1700,37 @@ elf32_hppa_adjust_dynamic_symbol (struct
 	     object, and it's not a weak definition, nor is the symbol
 	     used by a plabel relocation.  Either this object is the
 	     application or we are doing a shared symbolic link.  */
-
 	  eh->plt.offset = (bfd_vma) -1;
 	  eh->needs_plt = 0;
 	}
 
+      /* Unlike other targets, elf32-hppa.c does not define a function
+	 symbol in a non-pic executable on PLT stub code, so we don't
+	 have a local definition in that case.  ie. dyn_relocs can't
+	 be discarded.  */
+
+      /* Function symbols can't have copy relocs.  */
       return TRUE;
     }
   else
     eh->plt.offset = (bfd_vma) -1;
 
+  htab = hppa_link_hash_table (info);
+  if (htab == NULL)
+    return FALSE;
+
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (eh->u.weakdef != NULL)
+  if (eh->is_weakalias)
     {
-      if (eh->u.weakdef->root.type != bfd_link_hash_defined
-	  && eh->u.weakdef->root.type != bfd_link_hash_defweak)
-	abort ();
-      eh->root.u.def.section = eh->u.weakdef->root.u.def.section;
-      eh->root.u.def.value = eh->u.weakdef->root.u.def.value;
-      if (ELIMINATE_COPY_RELOCS)
-	eh->non_got_ref = eh->u.weakdef->non_got_ref;
+      struct elf_link_hash_entry *def = weakdef (eh);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      eh->root.u.def.section = def->root.u.def.section;
+      eh->root.u.def.value = def->root.u.def.value;
+      if (def->root.u.def.section == htab->etab.sdynbss
+	  || def->root.u.def.section == htab->etab.sdynrelro)
+	hppa_elf_hash_entry (eh)->dyn_relocs = NULL;
       return TRUE;
     }
 
@@ -1861,27 +1749,15 @@ elf32_hppa_adjust_dynamic_symbol (struct
   if (!eh->non_got_ref)
     return TRUE;
 
-  if (ELIMINATE_COPY_RELOCS)
-    {
-      struct elf32_hppa_link_hash_entry *hh;
-      struct elf32_hppa_dyn_reloc_entry *hdh_p;
-
-      hh = hppa_elf_hash_entry (eh);
-      for (hdh_p = hh->dyn_relocs; hdh_p != NULL; hdh_p = hdh_p->hdh_next)
-	{
-	  sec = hdh_p->sec->output_section;
-	  if (sec != NULL && (sec->flags & SEC_READONLY) != 0)
-	    break;
-	}
+  /* If -z nocopyreloc was given, we won't generate them either.  */
+  if (info->nocopyreloc)
+    return TRUE;
 
-      /* If we didn't find any dynamic relocs in read-only sections, then
-	 we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
-      if (hdh_p == NULL)
-	{
-	  eh->non_got_ref = 0;
-	  return TRUE;
-	}
-    }
+  /* If we don't find any dynamic relocs in read-only sections, then
+     we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
+  if (ELIMINATE_COPY_RELOCS
+      && !alias_readonly_dynrelocs (eh))
+    return TRUE;
 
   /* We must allocate the symbol in our .dynbss section, which will
      become part of the .bss section of the executable.  There will be
@@ -1892,14 +1768,6 @@ elf32_hppa_adjust_dynamic_symbol (struct
      determine the address it must put in the global offset table, so
      both the dynamic object and the regular object will refer to the
      same memory location for the variable.  */
-
-  htab = hppa_link_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-
-  /* We must generate a COPY reloc to tell the dynamic linker to
-     copy the initial value out of the dynamic object and into the
-     runtime process image.  */
   if ((eh->root.u.def.section->flags & SEC_READONLY) != 0)
     {
       sec = htab->etab.sdynrelro;
@@ -1912,23 +1780,33 @@ elf32_hppa_adjust_dynamic_symbol (struct
     }
   if ((eh->root.u.def.section->flags & SEC_ALLOC) != 0 && eh->size != 0)
     {
+      /* We must generate a COPY reloc to tell the dynamic linker to
+	 copy the initial value out of the dynamic object and into the
+	 runtime process image.  */
       srel->size += sizeof (Elf32_External_Rela);
       eh->needs_copy = 1;
     }
 
+  /* We no longer want dyn_relocs.  */
+  hppa_elf_hash_entry (eh)->dyn_relocs = NULL;
   return _bfd_elf_adjust_dynamic_copy (info, eh, sec);
 }
 
-/* Make an undefined weak symbol dynamic.  */
+/* If EH is undefined, make it dynamic if that makes sense.  */
 
 static bfd_boolean
-ensure_undef_weak_dynamic (struct bfd_link_info *info,
-			   struct elf_link_hash_entry *eh)
+ensure_undef_dynamic (struct bfd_link_info *info,
+		      struct elf_link_hash_entry *eh)
 {
-  if (eh->dynindx == -1
+  struct elf_link_hash_table *htab = elf_hash_table (info);
+
+  if (htab->dynamic_sections_created
+      && (eh->root.type == bfd_link_hash_undefweak
+	  || eh->root.type == bfd_link_hash_undefined)
+      && eh->dynindx == -1
       && !eh->forced_local
       && eh->type != STT_PARISC_MILLI
-      && eh->root.type == bfd_link_hash_undefweak
+      && !UNDEFWEAK_NO_DYNAMIC_RELOC (info, eh)
       && ELF_ST_VISIBILITY (eh->other) == STV_DEFAULT)
     return bfd_elf_link_record_dynamic_symbol (info, eh);
   return TRUE;
@@ -1957,7 +1835,7 @@ allocate_plt_static (struct elf_link_has
   if (htab->etab.dynamic_sections_created
       && eh->plt.refcount > 0)
     {
-      if (!ensure_undef_weak_dynamic (info, eh))
+      if (!ensure_undef_dynamic (info, eh))
 	return FALSE;
 
       if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, bfd_link_pic (info), eh))
@@ -1995,6 +1873,39 @@ allocate_plt_static (struct elf_link_has
   return TRUE;
 }
 
+/* Calculate size of GOT entries for symbol given its TLS_TYPE.  */
+
+static inline unsigned int
+got_entries_needed (int tls_type)
+{
+  unsigned int need = 0;
+
+  if ((tls_type & GOT_NORMAL) != 0)
+    need += GOT_ENTRY_SIZE;
+  if ((tls_type & GOT_TLS_GD) != 0)
+    need += GOT_ENTRY_SIZE * 2;
+  if ((tls_type & GOT_TLS_IE) != 0)
+    need += GOT_ENTRY_SIZE;
+  return need;
+}
+
+/* Calculate size of relocs needed for symbol given its TLS_TYPE and
+   NEEDed GOT entries.  KNOWN says a TPREL offset can be calculated
+   at link time.  */
+
+static inline unsigned int
+got_relocs_needed (int tls_type, unsigned int need, bfd_boolean known)
+{
+  /* All the entries we allocated need relocs.
+     Except IE in executable with a local symbol.  We could also omit
+     the DTPOFF reloc on the second word of a GD entry under the same
+     condition as that for IE, but ld.so might want to differentiate
+     LD and GD entries at some stage.  */
+  if ((tls_type & GOT_TLS_IE) != 0 && known)
+    need -= GOT_ENTRY_SIZE;
+  return need * sizeof (Elf32_External_Rela) / GOT_ENTRY_SIZE;
+}
+
 /* Allocate space in .plt, .got and associated reloc sections for
    global syms.  */
 
@@ -2005,7 +1916,7 @@ allocate_dynrelocs (struct elf_link_hash
   struct elf32_hppa_link_hash_table *htab;
   asection *sec;
   struct elf32_hppa_link_hash_entry *hh;
-  struct elf32_hppa_dyn_reloc_entry *hdh_p;
+  struct elf_dyn_relocs *hdh_p;
 
   if (eh->root.type == bfd_link_hash_indirect)
     return TRUE;
@@ -2034,32 +1945,40 @@ allocate_dynrelocs (struct elf_link_hash
 
   if (eh->got.refcount > 0)
     {
-      if (!ensure_undef_weak_dynamic (info, eh))
+      unsigned int need;
+
+      if (!ensure_undef_dynamic (info, eh))
 	return FALSE;
 
       sec = htab->etab.sgot;
       eh->got.offset = sec->size;
-      sec->size += GOT_ENTRY_SIZE;
-      /* R_PARISC_TLS_GD* needs two GOT entries */
-      if ((hh->tls_type & (GOT_TLS_GD | GOT_TLS_IE)) == (GOT_TLS_GD | GOT_TLS_IE))
-      	sec->size += GOT_ENTRY_SIZE * 2;
-      else if ((hh->tls_type & GOT_TLS_GD) == GOT_TLS_GD)
-      	sec->size += GOT_ENTRY_SIZE;
+      need = got_entries_needed (hh->tls_type);
+      sec->size += need;
       if (htab->etab.dynamic_sections_created
 	  && (bfd_link_pic (info)
 	      || (eh->dynindx != -1
-		  && !eh->forced_local)))
+		  && !SYMBOL_REFERENCES_LOCAL (info, eh)))
+	  && !UNDEFWEAK_NO_DYNAMIC_RELOC (info, eh))
 	{
-	  htab->etab.srelgot->size += sizeof (Elf32_External_Rela);
-	  if ((hh->tls_type & (GOT_TLS_GD | GOT_TLS_IE)) == (GOT_TLS_GD | GOT_TLS_IE))
-	    htab->etab.srelgot->size += 2 * sizeof (Elf32_External_Rela);
-	  else if ((hh->tls_type & GOT_TLS_GD) == GOT_TLS_GD)
-	    htab->etab.srelgot->size += sizeof (Elf32_External_Rela);
+	  bfd_boolean tprel_known = (bfd_link_executable (info)
+				     && SYMBOL_REFERENCES_LOCAL (info, eh));
+	  htab->etab.srelgot->size
+	    += got_relocs_needed (hh->tls_type, need, tprel_known);
 	}
     }
   else
     eh->got.offset = (bfd_vma) -1;
 
+  /* If no dynamic sections we can't have dynamic relocs.  */
+  if (!htab->etab.dynamic_sections_created)
+    hh->dyn_relocs = NULL;
+
+  /* Discard relocs on undefined syms with non-default visibility.  */
+  else if ((eh->root.type == bfd_link_hash_undefined
+	    && ELF_ST_VISIBILITY (eh->other) != STV_DEFAULT)
+	   || UNDEFWEAK_NO_DYNAMIC_RELOC (info, eh))
+    hh->dyn_relocs = NULL;
+
   if (hh->dyn_relocs == NULL)
     return TRUE;
 
@@ -2073,63 +1992,48 @@ allocate_dynrelocs (struct elf_link_hash
 #if RELATIVE_DYNRELOCS
       if (SYMBOL_CALLS_LOCAL (info, eh))
 	{
-	  struct elf32_hppa_dyn_reloc_entry **hdh_pp;
+	  struct elf_dyn_relocs **hdh_pp;
 
 	  for (hdh_pp = &hh->dyn_relocs; (hdh_p = *hdh_pp) != NULL; )
 	    {
-	      hdh_p->count -= hdh_p->relative_count;
-	      hdh_p->relative_count = 0;
+	      hdh_p->count -= hdh_p->pc_count;
+	      hdh_p->pc_count = 0;
 	      if (hdh_p->count == 0)
-		*hdh_pp = hdh_p->hdh_next;
+		*hdh_pp = hdh_p->next;
 	      else
-		hdh_pp = &hdh_p->hdh_next;
+		hdh_pp = &hdh_p->next;
 	    }
 	}
 #endif
 
-      /* Also discard relocs on undefined weak syms with non-default
-	 visibility.  */
-      if (hh->dyn_relocs != NULL
-	  && eh->root.type == bfd_link_hash_undefweak)
+      if (hh->dyn_relocs != NULL)
 	{
-	  if (ELF_ST_VISIBILITY (eh->other) != STV_DEFAULT)
-	    hh->dyn_relocs = NULL;
-
-	  else if (!ensure_undef_weak_dynamic (info, eh))
+	  if (!ensure_undef_dynamic (info, eh))
 	    return FALSE;
 	}
     }
-  else
+  else if (ELIMINATE_COPY_RELOCS)
     {
       /* For the non-shared case, discard space for relocs against
 	 symbols which turn out to need copy relocs or are not
 	 dynamic.  */
 
-      if (!eh->non_got_ref
-	  && ((ELIMINATE_COPY_RELOCS
-	       && eh->def_dynamic
-	       && !eh->def_regular)
-	       || (htab->etab.dynamic_sections_created
-		   && (eh->root.type == bfd_link_hash_undefweak
-		       || eh->root.type == bfd_link_hash_undefined))))
+      if (eh->dynamic_adjusted
+	  && !eh->def_regular
+	  && !ELF_COMMON_DEF_P (eh))
 	{
-	  if (!ensure_undef_weak_dynamic (info, eh))
+	  if (!ensure_undef_dynamic (info, eh))
 	    return FALSE;
 
-	  /* If that succeeded, we know we'll be keeping all the
-	     relocs.  */
-	  if (eh->dynindx != -1)
-	    goto keep;
+	  if (eh->dynindx == -1)
+	    hh->dyn_relocs = NULL;
 	}
-
-      hh->dyn_relocs = NULL;
-      return TRUE;
-
-    keep: ;
+      else
+	hh->dyn_relocs = NULL;
     }
 
   /* Finally, allocate space.  */
-  for (hdh_p = hh->dyn_relocs; hdh_p != NULL; hdh_p = hdh_p->hdh_next)
+  for (hdh_p = hh->dyn_relocs; hdh_p != NULL; hdh_p = hdh_p->next)
     {
       asection *sreloc = elf_section_data (hdh_p->sec)->sreloc;
       sreloc->size += hdh_p->count * sizeof (Elf32_External_Rela);
@@ -2157,28 +2061,29 @@ clobber_millicode_symbols (struct elf_li
   return TRUE;
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (struct elf_link_hash_entry *eh, void *inf)
+maybe_set_textrel (struct elf_link_hash_entry *eh, void *inf)
 {
-  struct elf32_hppa_link_hash_entry *hh;
-  struct elf32_hppa_dyn_reloc_entry *hdh_p;
+  asection *sec;
 
-  hh = hppa_elf_hash_entry (eh);
-  for (hdh_p = hh->dyn_relocs; hdh_p != NULL; hdh_p = hdh_p->hdh_next)
-    {
-      asection *sec = hdh_p->sec->output_section;
+  if (eh->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-      if (sec != NULL && (sec->flags & SEC_READONLY) != 0)
-	{
-	  struct bfd_link_info *info = inf;
+  sec = readonly_dynrelocs (eh);
+  if (sec != NULL)
+    {
+      struct bfd_link_info *info = (struct bfd_link_info *) inf;
 
-	  info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, eh->root.root.string, sec);
 
-	  /* Not an error, just cut short the traversal.  */
-	  return FALSE;
-	}
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -2239,12 +2144,12 @@ elf32_hppa_size_dynamic_sections (bfd *o
 
       for (sec = ibfd->sections; sec != NULL; sec = sec->next)
 	{
-	  struct elf32_hppa_dyn_reloc_entry *hdh_p;
+	  struct elf_dyn_relocs *hdh_p;
 
-	  for (hdh_p = ((struct elf32_hppa_dyn_reloc_entry *)
+	  for (hdh_p = ((struct elf_dyn_relocs *)
 		    elf_section_data (sec)->local_dynrel);
 	       hdh_p != NULL;
-	       hdh_p = hdh_p->hdh_next)
+	       hdh_p = hdh_p->next)
 	    {
 	      if (!bfd_is_abs_section (hdh_p->sec)
 		  && bfd_is_abs_section (hdh_p->sec->output_section))
@@ -2278,20 +2183,17 @@ elf32_hppa_size_dynamic_sections (bfd *o
 	{
 	  if (*local_got > 0)
 	    {
+	      unsigned int need;
+
 	      *local_got = sec->size;
-	      sec->size += GOT_ENTRY_SIZE;
-	      if ((*local_tls_type & (GOT_TLS_GD | GOT_TLS_IE)) == (GOT_TLS_GD | GOT_TLS_IE))
-		sec->size += 2 * GOT_ENTRY_SIZE;
-	      else if ((*local_tls_type & GOT_TLS_GD) == GOT_TLS_GD)
-		sec->size += GOT_ENTRY_SIZE;
+	      need = got_entries_needed (*local_tls_type);
+	      sec->size += need;
 	      if (bfd_link_pic (info))
-	        {
-		  srel->size += sizeof (Elf32_External_Rela);
-		  if ((*local_tls_type & (GOT_TLS_GD | GOT_TLS_IE)) == (GOT_TLS_GD | GOT_TLS_IE))
-		    srel->size += 2 * sizeof (Elf32_External_Rela);
-		  else if ((*local_tls_type & GOT_TLS_GD) == GOT_TLS_GD)
-		    srel->size += sizeof (Elf32_External_Rela);
-	        }
+		{
+		  bfd_boolean tprel_known = bfd_link_executable (info);
+		  htab->etab.srelgot->size
+		    += got_relocs_needed (*local_tls_type, need, tprel_known);
+		}
 	    }
 	  else
 	    *local_got = (bfd_vma) -1;
@@ -2329,7 +2231,7 @@ elf32_hppa_size_dynamic_sections (bfd *o
   if (htab->tls_ldm_got.refcount > 0)
     {
       /* Allocate 2 got entries and 1 dynamic reloc for
-         R_PARISC_TLS_DTPMOD32 relocs.  */
+	 R_PARISC_TLS_DTPMOD32 relocs.  */
       htab->tls_ldm_got.offset = htab->etab.sgot->size;
       htab->etab.sgot->size += (GOT_ENTRY_SIZE * 2);
       htab->etab.srelgot->size += sizeof (Elf32_External_Rela);
@@ -2462,7 +2364,7 @@ elf32_hppa_size_dynamic_sections (bfd *o
 	  /* If any dynamic relocs apply to a read-only section,
 	     then we need a DT_TEXTREL entry.  */
 	  if ((info->flags & DF_TEXTREL) == 0)
-	    elf_link_hash_traverse (&htab->etab, readonly_dynrelocs, info);
+	    elf_link_hash_traverse (&htab->etab, maybe_set_textrel, info);
 
 	  if ((info->flags & DF_TEXTREL) != 0)
 	    {
@@ -3090,13 +2992,8 @@ elf32_hppa_set_gp (bfd *abfd, struct bfd
   struct bfd_link_hash_entry *h;
   asection *sec = NULL;
   bfd_vma gp_val = 0;
-  struct elf32_hppa_link_hash_table *htab;
-
-  htab = hppa_link_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
 
-  h = bfd_link_hash_lookup (&htab->etab.root, "$global$", FALSE, FALSE, FALSE);
+  h = bfd_link_hash_lookup (info->hash, "$global$", FALSE, FALSE, FALSE);
 
   if (h != NULL
       && (h->type == bfd_link_hash_defined
@@ -3135,9 +3032,9 @@ elf32_hppa_set_gp (bfd *abfd, struct bfd
 	    {
 	      if (strcmp (bfd_get_target (abfd), "elf32-hppa-netbsd") != 0)
 		{
-	          /* We know we don't have a .plt.  If .got is large,
+		  /* We know we don't have a .plt.  If .got is large,
 		     offset our LTP.  */
-	          if (sec->size > 0x2000)
+		  if (sec->size > 0x2000)
 		    gp_val = 0x2000;
 		}
 	    }
@@ -3159,10 +3056,13 @@ elf32_hppa_set_gp (bfd *abfd, struct bfd
 	}
     }
 
-  if (sec != NULL && sec->output_section != NULL)
-    gp_val += sec->output_section->vma + sec->output_offset;
+  if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
+    {
+      if (sec != NULL && sec->output_section != NULL)
+	gp_val += sec->output_section->vma + sec->output_offset;
 
-  elf_gp (abfd) = gp_val;
+      elf_gp (abfd) = gp_val;
+    }
   return TRUE;
 }
 
@@ -3430,10 +3330,10 @@ final_link_relocate (asection *input_sec
 		   error.  */
 		_bfd_error_handler
 		  /* xgettext:c-format */
-		  (_("%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link"),
+		  (_("%B(%A+%#Lx): %s fixup for insn %#x is not supported in a non-shared link"),
 		   input_bfd,
 		   input_section,
-		   (long) offset,
+		   offset,
 		   howto->name,
 		   insn);
 	    }
@@ -3596,10 +3496,10 @@ final_link_relocate (asection *input_sec
     {
       _bfd_error_handler
 	/* xgettext:c-format */
-	(_("%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections"),
+	(_("%B(%A+%#Lx): cannot reach %s, recompile with -ffunction-sections"),
 	 input_bfd,
 	 input_section,
-	 (long) offset,
+	 offset,
 	 hsh->bh_root.string);
       bfd_set_error (bfd_error_bad_value);
       return bfd_reloc_notsupported;
@@ -3749,7 +3649,8 @@ elf32_hppa_relocate_section (bfd *output
 	case R_PARISC_DLTIND21L:
 	  {
 	    bfd_vma off;
-	    bfd_boolean do_got = 0;
+	    bfd_boolean do_got = FALSE;
+	    bfd_boolean reloc = bfd_link_pic (info);
 
 	    /* Relocation is to the entry for this symbol in the
 	       global offset table.  */
@@ -3759,9 +3660,14 @@ elf32_hppa_relocate_section (bfd *output
 
 		off = hh->eh.got.offset;
 		dyn = htab->etab.dynamic_sections_created;
-		if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
-						       bfd_link_pic (info),
-						       &hh->eh))
+		reloc = (!UNDEFWEAK_NO_DYNAMIC_RELOC (info, &hh->eh)
+			 && (reloc
+			     || (hh->eh.dynindx != -1
+				 && !SYMBOL_REFERENCES_LOCAL (info, &hh->eh))));
+		if (!reloc
+		    || !WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
+							 bfd_link_pic (info),
+							 &hh->eh))
 		  {
 		    /* If we aren't going to call finish_dynamic_symbol,
 		       then we need to handle initialisation of the .got
@@ -3774,7 +3680,7 @@ elf32_hppa_relocate_section (bfd *output
 		    else
 		      {
 			hh->eh.got.offset |= 1;
-			do_got = 1;
+			do_got = TRUE;
 		      }
 		  }
 	      }
@@ -3794,13 +3700,13 @@ elf32_hppa_relocate_section (bfd *output
 		else
 		  {
 		    local_got_offsets[r_symndx] |= 1;
-		    do_got = 1;
+		    do_got = TRUE;
 		  }
 	      }
 
 	    if (do_got)
 	      {
-		if (bfd_link_pic (info))
+		if (reloc)
 		  {
 		    /* Output a dynamic relocation for this GOT entry.
 		       In this case it is relative to the base of the
@@ -3856,7 +3762,7 @@ elf32_hppa_relocate_section (bfd *output
 							 bfd_link_pic (info),
 							 &hh->eh))
 		    {
-		      /* In a non-shared link, adjust_dynamic_symbols
+		      /* In a non-shared link, adjust_dynamic_symbol
 			 isn't called for symbols forced local.  We
 			 need to write out the plt entry here.  */
 		      if ((off & 1) != 0)
@@ -3954,33 +3860,13 @@ elf32_hppa_relocate_section (bfd *output
 	  if ((input_section->flags & SEC_ALLOC) == 0)
 	    break;
 
-	  /* The reloc types handled here and this conditional
-	     expression must match the code in ..check_relocs and
-	     allocate_dynrelocs.  ie. We need exactly the same condition
-	     as in ..check_relocs, with some extra conditions (dynindx
-	     test in this case) to cater for relocs removed by
-	     allocate_dynrelocs.  If you squint, the non-shared test
-	     here does indeed match the one in ..check_relocs, the
-	     difference being that here we test DEF_DYNAMIC as well as
-	     !DEF_REGULAR.  All common syms end up with !DEF_REGULAR,
-	     which is why we can't use just that test here.
-	     Conversely, DEF_DYNAMIC can't be used in check_relocs as
-	     there all files have not been loaded.  */
-	  if ((bfd_link_pic (info)
-	       && (hh == NULL
-		   || ELF_ST_VISIBILITY (hh->eh.other) == STV_DEFAULT
-		   || hh->eh.root.type != bfd_link_hash_undefweak)
-	       && (IS_ABSOLUTE_RELOC (r_type)
-		   || !SYMBOL_CALLS_LOCAL (info, &hh->eh)))
-	      || (!bfd_link_pic (info)
-		  && hh != NULL
-		  && hh->eh.dynindx != -1
-		  && !hh->eh.non_got_ref
-		  && ((ELIMINATE_COPY_RELOCS
-		       && hh->eh.def_dynamic
-		       && !hh->eh.def_regular)
-		      || hh->eh.root.type == bfd_link_hash_undefweak
-		      || hh->eh.root.type == bfd_link_hash_undefined)))
+	  if (bfd_link_pic (info)
+	      ? ((hh == NULL
+		  || hh->dyn_relocs != NULL)
+		 && ((hh != NULL && pc_dynrelocs (hh))
+		     || IS_ABSOLUTE_RELOC (r_type)))
+	      : (hh != NULL
+		 && hh->dyn_relocs != NULL))
 	    {
 	      Elf_Internal_Rela outrel;
 	      bfd_boolean skip;
@@ -4112,17 +3998,17 @@ elf32_hppa_relocate_section (bfd *output
 	    indx = 0;
 	    if (hh != NULL)
 	      {
-	        bfd_boolean dyn;
-	        dyn = htab->etab.dynamic_sections_created;
-
-		if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
-						     bfd_link_pic (info),
-						     &hh->eh)
-		    && (!bfd_link_pic (info)
-			|| !SYMBOL_REFERENCES_LOCAL (info, &hh->eh)))
-		  {
-		    indx = hh->eh.dynindx;
-		  }
+		if (!htab->etab.dynamic_sections_created
+		    || hh->eh.dynindx == -1
+		    || SYMBOL_REFERENCES_LOCAL (info, &hh->eh)
+		    || UNDEFWEAK_NO_DYNAMIC_RELOC (info, &hh->eh))
+		  /* This is actually a static link, or it is a
+		     -Bsymbolic link and the symbol is defined
+		     locally, or the symbol was forced to be local
+		     because of a version file.  */
+		  ;
+		else
+		  indx = hh->eh.dynindx;
 		off = hh->eh.got.offset;
 		tls_type = hh->tls_type;
 	      }
@@ -4144,80 +4030,77 @@ elf32_hppa_relocate_section (bfd *output
 		bfd_byte *loc = NULL;
 		int cur_off = off;
 
-	        /* The GOT entries have not been initialized yet.  Do it
-	           now, and emit any relocations.  If both an IE GOT and a
-	           GD GOT are necessary, we emit the GD first.  */
-
-		if ((bfd_link_pic (info) || indx != 0)
-		    && (hh == NULL
-			|| ELF_ST_VISIBILITY (hh->eh.other) == STV_DEFAULT
-			|| hh->eh.root.type != bfd_link_hash_undefweak))
+		/* The GOT entries have not been initialized yet.  Do it
+		   now, and emit any relocations.  If both an IE GOT and a
+		   GD GOT are necessary, we emit the GD first.  */
+
+		if (indx != 0
+		    || (bfd_link_pic (info)
+			&& (hh == NULL
+			    || !UNDEFWEAK_NO_DYNAMIC_RELOC (info, &hh->eh))))
 		  {
 		    need_relocs = TRUE;
 		    loc = htab->etab.srelgot->contents;
-		    /* FIXME (CAO): Should this be reloc_count++ ? */
-		    loc += htab->etab.srelgot->reloc_count * sizeof (Elf32_External_Rela);
+		    loc += (htab->etab.srelgot->reloc_count
+			    * sizeof (Elf32_External_Rela));
 		  }
 
 		if (tls_type & GOT_TLS_GD)
 		  {
 		    if (need_relocs)
 		      {
-			outrel.r_offset = (cur_off
-					   + htab->etab.sgot->output_section->vma
-					   + htab->etab.sgot->output_offset);
-			outrel.r_info = ELF32_R_INFO (indx,R_PARISC_TLS_DTPMOD32);
+			outrel.r_offset
+			  = (cur_off
+			     + htab->etab.sgot->output_section->vma
+			     + htab->etab.sgot->output_offset);
+			outrel.r_info
+			  = ELF32_R_INFO (indx, R_PARISC_TLS_DTPMOD32);
 			outrel.r_addend = 0;
-			bfd_put_32 (output_bfd, 0, htab->etab.sgot->contents + cur_off);
 			bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 			htab->etab.srelgot->reloc_count++;
 			loc += sizeof (Elf32_External_Rela);
-
-			if (indx == 0)
-			  bfd_put_32 (output_bfd, relocation - dtpoff_base (info),
-				      htab->etab.sgot->contents + cur_off + 4);
-			else
-			  {
-			    bfd_put_32 (output_bfd, 0,
-					htab->etab.sgot->contents + cur_off + 4);
-			    outrel.r_info = ELF32_R_INFO (indx, R_PARISC_TLS_DTPOFF32);
-			    outrel.r_offset += 4;
-			    bfd_elf32_swap_reloca_out (output_bfd, &outrel,loc);
-			    htab->etab.srelgot->reloc_count++;
-			    loc += sizeof (Elf32_External_Rela);
-			  }
+			outrel.r_info
+			  = ELF32_R_INFO (indx, R_PARISC_TLS_DTPOFF32);
+			outrel.r_offset += 4;
+			bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
+			htab->etab.srelgot->reloc_count++;
+			loc += sizeof (Elf32_External_Rela);
+			bfd_put_32 (output_bfd, 0,
+				    htab->etab.sgot->contents + cur_off);
+			bfd_put_32 (output_bfd, 0,
+				    htab->etab.sgot->contents + cur_off + 4);
 		      }
 		    else
 		      {
-		        /* If we are not emitting relocations for a
-		           general dynamic reference, then we must be in a
-		           static link or an executable link with the
-		           symbol binding locally.  Mark it as belonging
-		           to module 1, the executable.  */
-		        bfd_put_32 (output_bfd, 1,
+			/* If we are not emitting relocations for a
+			   general dynamic reference, then we must be in a
+			   static link or an executable link with the
+			   symbol binding locally.  Mark it as belonging
+			   to module 1, the executable.  */
+			bfd_put_32 (output_bfd, 1,
 				    htab->etab.sgot->contents + cur_off);
-		        bfd_put_32 (output_bfd, relocation - dtpoff_base (info),
+			bfd_put_32 (output_bfd, relocation - dtpoff_base (info),
 				    htab->etab.sgot->contents + cur_off + 4);
 		      }
-
-
 		    cur_off += 8;
 		  }
 
 		if (tls_type & GOT_TLS_IE)
 		  {
-		    if (need_relocs)
+		    if (need_relocs
+			&& !(bfd_link_executable (info)
+			     && SYMBOL_REFERENCES_LOCAL (info, &hh->eh)))
 		      {
-			outrel.r_offset = (cur_off
-					   + htab->etab.sgot->output_section->vma
-					   + htab->etab.sgot->output_offset);
-			outrel.r_info = ELF32_R_INFO (indx, R_PARISC_TLS_TPREL32);
-
+			outrel.r_offset
+			  = (cur_off
+			     + htab->etab.sgot->output_section->vma
+			     + htab->etab.sgot->output_offset);
+			outrel.r_info = ELF32_R_INFO (indx,
+						      R_PARISC_TLS_TPREL32);
 			if (indx == 0)
 			  outrel.r_addend = relocation - dtpoff_base (info);
 			else
 			  outrel.r_addend = 0;
-
 			bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 			htab->etab.srelgot->reloc_count++;
 			loc += sizeof (Elf32_External_Rela);
@@ -4225,7 +4108,6 @@ elf32_hppa_relocate_section (bfd *output
 		    else
 		      bfd_put_32 (output_bfd, tpoff (info, relocation),
 				  htab->etab.sgot->contents + cur_off);
-
 		    cur_off += 4;
 		  }
 
@@ -4235,9 +4117,38 @@ elf32_hppa_relocate_section (bfd *output
 		  local_got_offsets[r_symndx] |= 1;
 	      }
 
+	    if ((tls_type & GOT_NORMAL) != 0
+		&& (tls_type & (GOT_TLS_GD | GOT_TLS_LDM | GOT_TLS_IE)) != 0)
+	      {
+		if (hh != NULL)
+		  _bfd_error_handler (_("%s has both normal and TLS relocs"),
+				      hh_name (hh));
+		else
+		  {
+		    Elf_Internal_Sym *isym
+		      = bfd_sym_from_r_symndx (&htab->sym_cache,
+					       input_bfd, r_symndx);
+		    if (isym == NULL)
+		      return FALSE;
+		    sym_name
+		      = bfd_elf_string_from_elf_section (input_bfd,
+							 symtab_hdr->sh_link,
+							 isym->st_name);
+		    if (sym_name == NULL)
+		      return FALSE;
+		    if (*sym_name == '\0')
+		      sym_name = bfd_section_name (input_bfd, sym_sec);
+		    _bfd_error_handler
+		      (_("%B:%s has both normal and TLS relocs"),
+		       input_bfd, sym_name);
+		  }
+		bfd_set_error (bfd_error_bad_value);
+		return FALSE;
+	      }
+
 	    if ((tls_type & GOT_TLS_GD)
-	  	&& r_type != R_PARISC_TLS_GD21L
-	  	&& r_type != R_PARISC_TLS_GD14R)
+		&& r_type != R_PARISC_TLS_GD21L
+		&& r_type != R_PARISC_TLS_GD14R)
 	      off += 2 * GOT_ENTRY_SIZE;
 
 	    /* Add the base of the GOT to the relocation value.  */
@@ -4287,10 +4198,10 @@ elf32_hppa_relocate_section (bfd *output
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B(%A+0x%lx): cannot handle %s for %s"),
+		(_("%B(%A+%#Lx): cannot handle %s for %s"),
 		 input_bfd,
 		 input_section,
-		 (long) rela->r_offset,
+		 rela->r_offset,
 		 howto->name,
 		 sym_name);
 	      bfd_set_error (bfd_error_bad_value);
@@ -4377,43 +4288,49 @@ elf32_hppa_finish_dynamic_symbol (bfd *o
     }
 
   if (eh->got.offset != (bfd_vma) -1
-      && (hppa_elf_hash_entry (eh)->tls_type & GOT_TLS_GD) == 0
-      && (hppa_elf_hash_entry (eh)->tls_type & GOT_TLS_IE) == 0)
+      && (hppa_elf_hash_entry (eh)->tls_type & GOT_NORMAL) != 0
+      && !UNDEFWEAK_NO_DYNAMIC_RELOC (info, eh))
     {
-      /* This symbol has an entry in the global offset table.  Set it
-	 up.  */
+      bfd_boolean is_dyn = (eh->dynindx != -1
+			    && !SYMBOL_REFERENCES_LOCAL (info, eh));
 
-      rela.r_offset = ((eh->got.offset &~ (bfd_vma) 1)
-		      + htab->etab.sgot->output_offset
-		      + htab->etab.sgot->output_section->vma);
-
-      /* If this is a -Bsymbolic link and the symbol is defined
-	 locally or was forced to be local because of a version file,
-	 we just want to emit a RELATIVE reloc.  The entry in the
-	 global offset table will already have been initialized in the
-	 relocate_section function.  */
-      if (bfd_link_pic (info)
-	  && (SYMBOLIC_BIND (info, eh) || eh->dynindx == -1)
-	  && eh->def_regular)
-	{
-	  rela.r_info = ELF32_R_INFO (0, R_PARISC_DIR32);
-	  rela.r_addend = (eh->root.u.def.value
-			  + eh->root.u.def.section->output_offset
-			  + eh->root.u.def.section->output_section->vma);
-	}
-      else
+      if (is_dyn || bfd_link_pic (info))
 	{
-	  if ((eh->got.offset & 1) != 0)
-	    abort ();
+	  /* This symbol has an entry in the global offset table.  Set
+	     it up.  */
+
+	  rela.r_offset = ((eh->got.offset &~ (bfd_vma) 1)
+			   + htab->etab.sgot->output_offset
+			   + htab->etab.sgot->output_section->vma);
+
+	  /* If this is a -Bsymbolic link and the symbol is defined
+	     locally or was forced to be local because of a version
+	     file, we just want to emit a RELATIVE reloc.  The entry
+	     in the global offset table will already have been
+	     initialized in the relocate_section function.  */
+	  if (!is_dyn)
+	    {
+	      rela.r_info = ELF32_R_INFO (0, R_PARISC_DIR32);
+	      rela.r_addend = (eh->root.u.def.value
+			       + eh->root.u.def.section->output_offset
+			       + eh->root.u.def.section->output_section->vma);
+	    }
+	  else
+	    {
+	      if ((eh->got.offset & 1) != 0)
+		abort ();
 
-	  bfd_put_32 (output_bfd, 0, htab->etab.sgot->contents + (eh->got.offset & ~1));
-	  rela.r_info = ELF32_R_INFO (eh->dynindx, R_PARISC_DIR32);
-	  rela.r_addend = 0;
-	}
+	      bfd_put_32 (output_bfd, 0,
+			  htab->etab.sgot->contents + (eh->got.offset & ~1));
+	      rela.r_info = ELF32_R_INFO (eh->dynindx, R_PARISC_DIR32);
+	      rela.r_addend = 0;
+	    }
 
-      loc = htab->etab.srelgot->contents;
-      loc += htab->etab.srelgot->reloc_count++ * sizeof (Elf32_External_Rela);
-      bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
+	  loc = htab->etab.srelgot->contents;
+	  loc += (htab->etab.srelgot->reloc_count++
+		  * sizeof (Elf32_External_Rela));
+	  bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
+	}
     }
 
   if (eh->needs_copy)
@@ -4465,7 +4382,7 @@ elf32_hppa_reloc_type_class (const struc
       case R_PARISC_TLS_DTPMOD32:
       case R_PARISC_TLS_DTPOFF32:
       case R_PARISC_TLS_TPREL32:
-        return reloc_class_normal;
+	return reloc_class_normal;
     }
 
   if (ELF32_R_SYM (rela->r_info) == STN_UNDEF)
@@ -4618,6 +4535,7 @@ elf32_hppa_elf_get_symbol_type (Elf_Inte
 #define elf_backend_adjust_dynamic_symbol    elf32_hppa_adjust_dynamic_symbol
 #define elf_backend_copy_indirect_symbol     elf32_hppa_copy_indirect_symbol
 #define elf_backend_check_relocs	     elf32_hppa_check_relocs
+#define elf_backend_relocs_compatible	     _bfd_elf_relocs_compatible
 #define elf_backend_create_dynamic_sections  elf32_hppa_create_dynamic_sections
 #define elf_backend_fake_sections	     elf_hppa_fake_sections
 #define elf_backend_relocate_section	     elf32_hppa_relocate_section
@@ -4627,7 +4545,6 @@ elf32_hppa_elf_get_symbol_type (Elf_Inte
 #define elf_backend_size_dynamic_sections    elf32_hppa_size_dynamic_sections
 #define elf_backend_init_index_section	     _bfd_elf_init_1_index_section
 #define elf_backend_gc_mark_hook	     elf32_hppa_gc_mark_hook
-#define elf_backend_gc_sweep_hook	     elf32_hppa_gc_sweep_hook
 #define elf_backend_grok_prstatus	     elf32_hppa_grok_prstatus
 #define elf_backend_grok_psinfo		     elf32_hppa_grok_psinfo
 #define elf_backend_object_p		     elf32_hppa_object_p
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-hppa.h ./bfd/elf32-hppa.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-hppa.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-hppa.h	2018-01-09 02:04:54.000000000 +0000
@@ -4,7 +4,7 @@
    in the Stratus FTX/Golf Object File Format (SED-1762) dated
    February 1994.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Written by:
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-i370.c ./bfd/elf32-i370.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-i370.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-i370.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* i370-specific support for 32-bit ELF
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support.
    Hacked by Linas Vepstas for i370 linas@linas.org
 
@@ -356,8 +356,8 @@ i370_elf_merge_private_bfd_data (bfd *ib
     {
       _bfd_error_handler
 	/* xgettext:c-format */
-	(_("%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"),
-	 ibfd, (long) new_flags, (long) old_flags);
+	(_("%B: uses different e_flags (%#x) fields than previous modules (%#x)"),
+	 ibfd, new_flags, old_flags);
 
       bfd_set_error (bfd_error_bad_value);
       return FALSE;
@@ -478,7 +478,7 @@ i370_elf_adjust_dynamic_symbol (struct b
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
 	      && (h->needs_plt
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -490,12 +490,12 @@ i370_elf_adjust_dynamic_symbol (struct b
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -836,10 +836,6 @@ i370_elf_check_relocs (bfd *abfd,
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       if (bfd_link_pic (info))
@@ -1053,9 +1049,9 @@ i370_elf_relocate_section (bfd *output_b
   bfd_boolean ret = TRUE;
 
 #ifdef DEBUG
-  _bfd_error_handler ("i370_elf_relocate_section called for %B section %A, %ld relocations%s",
+  _bfd_error_handler ("i370_elf_relocate_section called for %B section %A, %u relocations%s",
 		      input_bfd, input_section,
-		      (long) input_section->reloc_count,
+		      input_section->reloc_count,
 		      (bfd_link_relocatable (info)) ? " (relocatable)" : "");
 #endif
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-i386.c ./bfd/elf32-i386.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-i386.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-i386.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Intel 80386/80486-specific support for 32-bit ELF
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -18,16 +18,9 @@
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
    MA 02110-1301, USA.  */
 
-#include "sysdep.h"
-#include "bfd.h"
-#include "bfdlink.h"
-#include "libbfd.h"
-#include "elf-bfd.h"
+#include "elfxx-x86.h"
 #include "elf-nacl.h"
 #include "elf-vxworks.h"
-#include "bfd_stdint.h"
-#include "objalloc.h"
-#include "hashtab.h"
 #include "dwarf2.h"
 #include "opcode/i386.h"
 
@@ -189,6 +182,10 @@ static reloc_howto_type elf_howto_table[
 
 };
 
+#define X86_PCREL_TYPE_P(TYPE) ((TYPE) == R_386_PC32)
+
+#define X86_SIZE_TYPE_P(TYPE) ((TYPE) == R_386_SIZE32)
+
 #ifdef DEBUG_GEN_RELOC
 #define TRACE(str) \
   fprintf (stderr, "i386 bfd reloc lookup %d (%s)\n", code, str)
@@ -431,7 +428,7 @@ elf_i386_grok_prstatus (bfd *abfd, Elf_I
       int pr_version = bfd_get_32 (abfd, note->descdata);
 
       if (pr_version != 1)
- 	return FALSE;
+	return FALSE;
 
       /* pr_cursig */
       elf_tdata (abfd)->core->signal = bfd_get_32 (abfd, note->descdata + 20);
@@ -529,27 +526,20 @@ elf_i386_grok_psinfo (bfd *abfd, Elf_Int
    early in the link process, elf_i386_finish_dynamic_sections is
    one of the last functions.  */
 
+/* The size in bytes of an entry in the lazy procedure linkage table.  */
 
-/* The name of the dynamic interpreter.  This is put in the .interp
-   section.  */
-
-#define ELF_DYNAMIC_INTERPRETER "/usr/lib/libc.so.1"
+#define LAZY_PLT_ENTRY_SIZE 16
 
-/* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid
-   copying dynamic variables from a shared lib into an app's dynbss
-   section, and instead use a dynamic relocation to point into the
-   shared lib.  */
-#define ELIMINATE_COPY_RELOCS 1
+/* The size in bytes of an entry in the non-lazy procedure linkage
+   table.  */
 
-/* The size in bytes of an entry in the procedure linkage table.  */
+#define NON_LAZY_PLT_ENTRY_SIZE 8
 
-#define PLT_ENTRY_SIZE 16
+/* The first entry in an absolute lazy procedure linkage table looks
+   like this.  See the SVR4 ABI i386 supplement to see how this works.
+   Will be padded to LAZY_PLT_ENTRY_SIZE with lazy_plt->plt0_pad_byte.  */
 
-/* The first entry in an absolute procedure linkage table looks like
-   this.  See the SVR4 ABI i386 supplement to see how this works.
-   Will be padded to PLT_ENTRY_SIZE with htab->plt0_pad_byte.  */
-
-static const bfd_byte elf_i386_plt0_entry[12] =
+static const bfd_byte elf_i386_lazy_plt0_entry[12] =
 {
   0xff, 0x35,	/* pushl contents of address */
   0, 0, 0, 0,	/* replaced with address of .got + 4.  */
@@ -557,10 +547,10 @@ static const bfd_byte elf_i386_plt0_entr
   0, 0, 0, 0	/* replaced with address of .got + 8.  */
 };
 
-/* Subsequent entries in an absolute procedure linkage table look like
-   this.  */
+/* Subsequent entries in an absolute lazy procedure linkage table look
+   like this.  */
 
-static const bfd_byte elf_i386_plt_entry[PLT_ENTRY_SIZE] =
+static const bfd_byte elf_i386_lazy_plt_entry[LAZY_PLT_ENTRY_SIZE] =
 {
   0xff, 0x25,	/* jmp indirect */
   0, 0, 0, 0,	/* replaced with address of this symbol in .got.  */
@@ -570,18 +560,20 @@ static const bfd_byte elf_i386_plt_entry
   0, 0, 0, 0	/* replaced with offset to start of .plt.  */
 };
 
-/* The first entry in a PIC procedure linkage table look like this.
-   Will be padded to PLT_ENTRY_SIZE with htab->plt0_pad_byte.  */
+/* The first entry in a PIC lazy procedure linkage table look like
+   this.  Will be padded to LAZY_PLT_ENTRY_SIZE with
+   lazy_plt->plt0_pad_byte.  */
 
-static const bfd_byte elf_i386_pic_plt0_entry[12] =
+static const bfd_byte elf_i386_pic_lazy_plt0_entry[12] =
 {
   0xff, 0xb3, 4, 0, 0, 0,	/* pushl 4(%ebx) */
   0xff, 0xa3, 8, 0, 0, 0	/* jmp *8(%ebx) */
 };
 
-/* Subsequent entries in a PIC procedure linkage table look like this.  */
+/* Subsequent entries in a PIC lazy procedure linkage table look like
+   this.  */
 
-static const bfd_byte elf_i386_pic_plt_entry[PLT_ENTRY_SIZE] =
+static const bfd_byte elf_i386_pic_lazy_plt_entry[LAZY_PLT_ENTRY_SIZE] =
 {
   0xff, 0xa3,	/* jmp *offset(%ebx) */
   0, 0, 0, 0,	/* replaced with offset of this symbol in .got.  */
@@ -591,32 +583,83 @@ static const bfd_byte elf_i386_pic_plt_e
   0, 0, 0, 0	/* replaced with offset to start of .plt.  */
 };
 
-/* Entries in the GOT procedure linkage table look like this.  */
+/* Entries in the non-lazy procedure linkage table look like this.  */
 
-static const bfd_byte elf_i386_got_plt_entry[8] =
+static const bfd_byte elf_i386_non_lazy_plt_entry[NON_LAZY_PLT_ENTRY_SIZE] =
 {
   0xff, 0x25,	/* jmp indirect */
   0, 0, 0, 0,	/* replaced with offset of this symbol in .got.  */
   0x66, 0x90	/* xchg %ax,%ax  */
 };
 
-/* Entries in the PIC GOT procedure linkage table look like this.  */
+/* Entries in the PIC non-lazy procedure linkage table look like
+   this.  */
 
-static const bfd_byte elf_i386_pic_got_plt_entry[8] =
+static const bfd_byte elf_i386_pic_non_lazy_plt_entry[NON_LAZY_PLT_ENTRY_SIZE] =
 {
   0xff, 0xa3,	/* jmp *offset(%ebx)  */
   0, 0, 0, 0,	/* replaced with offset of this symbol in .got.  */
   0x66, 0x90	/* xchg %ax,%ax  */
 };
 
-/* .eh_frame covering the .plt section.  */
+/* The first entry in an absolute IBT-enabled lazy procedure linkage
+   table looks like this.  */
+
+static const bfd_byte elf_i386_lazy_ibt_plt0_entry[LAZY_PLT_ENTRY_SIZE] =
+{
+  0xff, 0x35, 0, 0, 0, 0,	/* pushl GOT[1]	      */
+  0xff, 0x25, 0, 0, 0, 0,	/* jmp *GOT[2]	      */
+  0x0f, 0x1f, 0x40, 0x00	/* nopl 0(%rax)	      */
+};
+
+/* Subsequent entries for an absolute IBT-enabled lazy procedure linkage
+   table look like this.  Subsequent entries for a PIC IBT-enabled lazy
+   procedure linkage table are the same.  */
+
+static const bfd_byte elf_i386_lazy_ibt_plt_entry[LAZY_PLT_ENTRY_SIZE] =
+{
+  0xf3, 0x0f, 0x1e, 0xfb,	/* endbr32		      */
+  0x68, 0, 0, 0, 0,		/* pushl immediate	      */
+  0xe9, 0, 0, 0, 0,		/* jmp relative		      */
+  0x66, 0x90			/* xchg %ax,%ax		      */
+};
+
+/* The first entry in a PIC IBT-enabled lazy procedure linkage table
+   look like.  */
+
+static const bfd_byte elf_i386_pic_lazy_ibt_plt0_entry[LAZY_PLT_ENTRY_SIZE] =
+{
+  0xff, 0xb3, 4, 0, 0, 0,	/* pushl 4(%ebx)      */
+  0xff, 0xa3, 8, 0, 0, 0,	/* jmp *8(%ebx)	      */
+  0x0f, 0x1f, 0x40, 0x00	/* nopl 0(%rax)	      */
+};
+
+/* Entries for branches with IBT-enabled in the absolute non-lazey
+   procedure linkage table look like this.  They have the same size
+   as the lazy PLT entry.  */
+
+static const bfd_byte elf_i386_non_lazy_ibt_plt_entry[LAZY_PLT_ENTRY_SIZE] =
+{
+  0xf3, 0x0f, 0x1e, 0xfb,	     /* endbr32		      */
+  0xff, 0x25, 0, 0, 0, 0,	     /* jmp *name@GOT	      */
+  0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00 /* nopw 0x0(%rax,%rax,1) */
+};
+
+/* Entries for branches with IBT-enabled in the PIC non-lazey procedure
+   linkage table look like this.  They have the same size as the lazy
+   PLT entry.  */
+
+static const bfd_byte elf_i386_pic_non_lazy_ibt_plt_entry[LAZY_PLT_ENTRY_SIZE] =
+{
+  0xf3, 0x0f, 0x1e, 0xfb,	     /* endbr32		      */
+  0xff, 0xa3, 0, 0, 0, 0,	     /* jmp *name@GOT(%ebx)   */
+  0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00 /* nopw 0x0(%rax,%rax,1) */
+};
+
+/* .eh_frame covering the lazy .plt section.  */
 
-static const bfd_byte elf_i386_eh_frame_plt[] =
+static const bfd_byte elf_i386_eh_frame_lazy_plt[] =
 {
-#define PLT_CIE_LENGTH		20
-#define PLT_FDE_LENGTH		36
-#define PLT_FDE_START_OFFSET	4 + PLT_CIE_LENGTH + 8
-#define PLT_FDE_LEN_OFFSET	4 + PLT_CIE_LENGTH + 12
   PLT_CIE_LENGTH, 0, 0, 0,	/* CIE length */
   0, 0, 0, 0,			/* CIE ID */
   1,				/* CIE version */
@@ -648,11 +691,10 @@ static const bfd_byte elf_i386_eh_frame_
   DW_CFA_nop, DW_CFA_nop, DW_CFA_nop, DW_CFA_nop
 };
 
-/* .eh_frame covering the .plt.got section.  */
+/* .eh_frame covering the lazy .plt section with IBT-enabled.  */
 
-static const bfd_byte elf_i386_eh_frame_plt_got[] =
+static const bfd_byte elf_i386_eh_frame_lazy_ibt_plt[] =
 {
-#define PLT_GOT_FDE_LENGTH		16
   PLT_CIE_LENGTH, 0, 0, 0,	/* CIE length */
   0, 0, 0, 0,			/* CIE ID */
   1,				/* CIE version */
@@ -666,73 +708,113 @@ static const bfd_byte elf_i386_eh_frame_
   DW_CFA_offset + 8, 1,		/* DW_CFA_offset: r8 (eip) at cfa-4 */
   DW_CFA_nop, DW_CFA_nop,
 
-  PLT_GOT_FDE_LENGTH, 0, 0, 0,	/* FDE length */
+  PLT_FDE_LENGTH, 0, 0, 0,	/* FDE length */
   PLT_CIE_LENGTH + 8, 0, 0, 0,	/* CIE pointer */
-  0, 0, 0, 0,			/* the start of .plt.got goes here */
-  0, 0, 0, 0,			/* .plt.got size goes here */
+  0, 0, 0, 0,			/* R_386_PC32 .plt goes here */
+  0, 0, 0, 0,			/* .plt size goes here */
   0,				/* Augmentation size */
-  DW_CFA_nop, DW_CFA_nop, DW_CFA_nop
+  DW_CFA_def_cfa_offset, 8,	/* DW_CFA_def_cfa_offset: 8 */
+  DW_CFA_advance_loc + 6,	/* DW_CFA_advance_loc: 6 to __PLT__+6 */
+  DW_CFA_def_cfa_offset, 12,	/* DW_CFA_def_cfa_offset: 12 */
+  DW_CFA_advance_loc + 10,	/* DW_CFA_advance_loc: 10 to __PLT__+16 */
+  DW_CFA_def_cfa_expression,	/* DW_CFA_def_cfa_expression */
+  11,				/* Block length */
+  DW_OP_breg4, 4,		/* DW_OP_breg4 (esp): 4 */
+  DW_OP_breg8, 0,		/* DW_OP_breg8 (eip): 0 */
+  DW_OP_lit15, DW_OP_and, DW_OP_lit9, DW_OP_ge,
+  DW_OP_lit2, DW_OP_shl, DW_OP_plus,
+  DW_CFA_nop, DW_CFA_nop, DW_CFA_nop, DW_CFA_nop
 };
 
-struct elf_i386_plt_layout
-{
-  /* The first entry in an absolute procedure linkage table looks like this.  */
-  const bfd_byte *plt0_entry;
-  unsigned int plt0_entry_size;
-
-  /* Offsets into plt0_entry that are to be replaced with GOT[1] and GOT[2].  */
-  unsigned int plt0_got1_offset;
-  unsigned int plt0_got2_offset;
+/* .eh_frame covering the non-lazy .plt section.  */
 
-  /* Later entries in an absolute procedure linkage table look like this.  */
-  const bfd_byte *plt_entry;
-  unsigned int plt_entry_size;
-
-  /* Offsets into plt_entry that are to be replaced with...  */
-  unsigned int plt_got_offset;    /* ... address of this symbol in .got. */
-  unsigned int plt_reloc_offset;  /* ... offset into relocation table. */
-  unsigned int plt_plt_offset;    /* ... offset to start of .plt. */
-
-  /* Offset into plt_entry where the initial value of the GOT entry points.  */
-  unsigned int plt_lazy_offset;
-
-  /* The first entry in a PIC procedure linkage table looks like this.  */
-  const bfd_byte *pic_plt0_entry;
+static const bfd_byte elf_i386_eh_frame_non_lazy_plt[] =
+{
+#define PLT_GOT_FDE_LENGTH		16
+  PLT_CIE_LENGTH, 0, 0, 0,	/* CIE length */
+  0, 0, 0, 0,			/* CIE ID */
+  1,				/* CIE version */
+  'z', 'R', 0,			/* Augmentation string */
+  1,				/* Code alignment factor */
+  0x7c,				/* Data alignment factor */
+  8,				/* Return address column */
+  1,				/* Augmentation size */
+  DW_EH_PE_pcrel | DW_EH_PE_sdata4, /* FDE encoding */
+  DW_CFA_def_cfa, 4, 4,		/* DW_CFA_def_cfa: r4 (esp) ofs 4 */
+  DW_CFA_offset + 8, 1,		/* DW_CFA_offset: r8 (eip) at cfa-4 */
+  DW_CFA_nop, DW_CFA_nop,
 
-  /* Subsequent entries in a PIC procedure linkage table look like this.  */
-  const bfd_byte *pic_plt_entry;
+  PLT_GOT_FDE_LENGTH, 0, 0, 0,	/* FDE length */
+  PLT_CIE_LENGTH + 8, 0, 0, 0,	/* CIE pointer */
+  0, 0, 0, 0,			/* the start of non-lazy .plt goes here */
+  0, 0, 0, 0,			/* non-lazy .plt size goes here */
+  0,				/* Augmentation size */
+  DW_CFA_nop, DW_CFA_nop, DW_CFA_nop
+};
 
-  /* .eh_frame covering the .plt section.  */
-  const bfd_byte *eh_frame_plt;
-  unsigned int eh_frame_plt_size;
+/* These are the standard parameters.  */
+static const struct elf_x86_lazy_plt_layout elf_i386_lazy_plt =
+  {
+    elf_i386_lazy_plt0_entry,		/* plt0_entry */
+    sizeof (elf_i386_lazy_plt0_entry),	/* plt0_entry_size */
+    elf_i386_lazy_plt_entry,		/* plt_entry */
+    LAZY_PLT_ENTRY_SIZE,		/* plt_entry_size */
+    2,					/* plt0_got1_offset */
+    8,					/* plt0_got2_offset */
+    0,					/* plt0_got2_insn_end */
+    2,					/* plt_got_offset */
+    7,					/* plt_reloc_offset */
+    12,					/* plt_plt_offset */
+    0,					/* plt_got_insn_size */
+    0,					/* plt_plt_insn_end */
+    6,					/* plt_lazy_offset */
+    elf_i386_pic_lazy_plt0_entry,	/* pic_plt0_entry */
+    elf_i386_pic_lazy_plt_entry,	/* pic_plt_entry */
+    elf_i386_eh_frame_lazy_plt,		/* eh_frame_plt */
+    sizeof (elf_i386_eh_frame_lazy_plt) /* eh_frame_plt_size */
+  };
 
-  /* .eh_frame covering the .plt.got section.  */
-  const bfd_byte *eh_frame_plt_got;
-  unsigned int eh_frame_plt_got_size;
-};
+static const struct elf_x86_non_lazy_plt_layout elf_i386_non_lazy_plt =
+  {
+    elf_i386_non_lazy_plt_entry,	/* plt_entry */
+    elf_i386_pic_non_lazy_plt_entry,	/* pic_plt_entry */
+    NON_LAZY_PLT_ENTRY_SIZE,		/* plt_entry_size */
+    2,					/* plt_got_offset */
+    0,					/* plt_got_insn_size */
+    elf_i386_eh_frame_non_lazy_plt,	/* eh_frame_plt */
+    sizeof (elf_i386_eh_frame_non_lazy_plt) /* eh_frame_plt_size */
+  };
 
-#define GET_PLT_ENTRY_SIZE(abfd) \
-  get_elf_i386_backend_data (abfd)->plt->plt_entry_size
+static const struct elf_x86_lazy_plt_layout elf_i386_lazy_ibt_plt =
+  {
+    elf_i386_lazy_ibt_plt0_entry,	/* plt0_entry */
+    sizeof (elf_i386_lazy_ibt_plt0_entry), /* plt0_entry_size */
+    elf_i386_lazy_ibt_plt_entry,	/* plt_entry */
+    LAZY_PLT_ENTRY_SIZE,		/* plt_entry_size */
+    2,					/* plt0_got1_offset */
+    8,					/* plt0_got2_offset */
+    0,					/* plt0_got2_insn_end */
+    4+2,				/* plt_got_offset */
+    4+1,				/* plt_reloc_offset */
+    4+6,				/* plt_plt_offset */
+    0,					/* plt_got_insn_size */
+    0,					/* plt_plt_insn_end */
+    0,					/* plt_lazy_offset */
+    elf_i386_pic_lazy_ibt_plt0_entry,	/* pic_plt0_entry */
+    elf_i386_lazy_ibt_plt_entry,	/* pic_plt_entry */
+    elf_i386_eh_frame_lazy_ibt_plt,	/* eh_frame_plt */
+    sizeof (elf_i386_eh_frame_lazy_ibt_plt) /* eh_frame_plt_size */
+  };
 
-/* These are the standard parameters.  */
-static const struct elf_i386_plt_layout elf_i386_plt =
+static const struct elf_x86_non_lazy_plt_layout elf_i386_non_lazy_ibt_plt =
   {
-    elf_i386_plt0_entry,                /* plt0_entry */
-    sizeof (elf_i386_plt0_entry),       /* plt0_entry_size */
-    2,                                  /* plt0_got1_offset */
-    8,                                  /* plt0_got2_offset */
-    elf_i386_plt_entry,                 /* plt_entry */
-    PLT_ENTRY_SIZE,                     /* plt_entry_size */
-    2,                                  /* plt_got_offset */
-    7,                                  /* plt_reloc_offset */
-    12,                                 /* plt_plt_offset */
-    6,                                  /* plt_lazy_offset */
-    elf_i386_pic_plt0_entry,            /* pic_plt0_entry */
-    elf_i386_pic_plt_entry,             /* pic_plt_entry */
-    elf_i386_eh_frame_plt,              /* eh_frame_plt */
-    sizeof (elf_i386_eh_frame_plt),     /* eh_frame_plt_size */
-    elf_i386_eh_frame_plt_got,          /* eh_frame_plt_got */
-    sizeof (elf_i386_eh_frame_plt_got), /* eh_frame_plt_got_size */
+    elf_i386_non_lazy_ibt_plt_entry,	/* plt_entry */
+    elf_i386_pic_non_lazy_ibt_plt_entry,/* pic_plt_entry */
+    LAZY_PLT_ENTRY_SIZE,		/* plt_entry_size */
+    4+2,				/* plt_got_offset */
+    0,					/* plt_got_insn_size */
+    elf_i386_eh_frame_non_lazy_plt,	/* eh_frame_plt */
+    sizeof (elf_i386_eh_frame_non_lazy_plt) /* eh_frame_plt_size */
   };
 
 
@@ -742,484 +824,14 @@ static const struct elf_i386_plt_layout 
 #define PLTRESOLVE_RELOCS 2
 #define PLT_NON_JUMP_SLOT_RELOCS 2
 
-/* Architecture-specific backend data for i386.  */
-
-struct elf_i386_backend_data
-{
-  /* Parameters describing PLT generation.  */
-  const struct elf_i386_plt_layout *plt;
-
-  /* Value used to fill the unused bytes of the first PLT entry.  */
-  bfd_byte plt0_pad_byte;
-
-  /* True if the target system is VxWorks.  */
-  int is_vxworks;
-};
-
-#define get_elf_i386_backend_data(abfd) \
-  ((const struct elf_i386_backend_data *) \
-   get_elf_backend_data (abfd)->arch_data)
-
 /* These are the standard parameters.  */
-static const struct elf_i386_backend_data elf_i386_arch_bed =
+static const struct elf_x86_backend_data elf_i386_arch_bed =
   {
-    &elf_i386_plt,                      /* plt */
-    0,                                  /* plt0_pad_byte */
-    0,                                  /* is_vxworks */
+    is_normal				/* os */
   };
 
 #define	elf_backend_arch_data	&elf_i386_arch_bed
 
-/* Is a undefined weak symbol which is resolved to 0.  Reference to an
-   undefined weak symbol is resolved to 0 when building executable if
-   it isn't dynamic and
-   1. Has non-GOT/non-PLT relocations in text section.  Or
-   2. Has no GOT/PLT relocation.
- */
-#define UNDEFINED_WEAK_RESOLVED_TO_ZERO(INFO, GOT_RELOC, EH)	\
-  ((EH)->elf.root.type == bfd_link_hash_undefweak		\
-   && bfd_link_executable (INFO)				\
-   && (elf_i386_hash_table (INFO)->interp == NULL	 	\
-       || !(GOT_RELOC)						\
-       || (EH)->has_non_got_reloc				\
-       || !(INFO)->dynamic_undefined_weak))
-
-/* i386 ELF linker hash entry.  */
-
-struct elf_i386_link_hash_entry
-{
-  struct elf_link_hash_entry elf;
-
-  /* Track dynamic relocs copied for this symbol.  */
-  struct elf_dyn_relocs *dyn_relocs;
-
-#define GOT_UNKNOWN	0
-#define GOT_NORMAL	1
-#define GOT_TLS_GD	2
-#define GOT_TLS_IE	4
-#define GOT_TLS_IE_POS	5
-#define GOT_TLS_IE_NEG	6
-#define GOT_TLS_IE_BOTH 7
-#define GOT_TLS_GDESC	8
-#define GOT_TLS_GD_BOTH_P(type)						\
-  ((type) == (GOT_TLS_GD | GOT_TLS_GDESC))
-#define GOT_TLS_GD_P(type)						\
-  ((type) == GOT_TLS_GD || GOT_TLS_GD_BOTH_P (type))
-#define GOT_TLS_GDESC_P(type)						\
-  ((type) == GOT_TLS_GDESC || GOT_TLS_GD_BOTH_P (type))
-#define GOT_TLS_GD_ANY_P(type)						\
-  (GOT_TLS_GD_P (type) || GOT_TLS_GDESC_P (type))
-  unsigned char tls_type;
-
-  /* Symbol is referenced by R_386_GOTOFF relocation.  */
-  unsigned int gotoff_ref : 1;
-
-  /* Symbol has GOT or PLT relocations.  */
-  unsigned int has_got_reloc : 1;
-
-  /* Symbol has non-GOT/non-PLT relocations in text sections.  */
-  unsigned int has_non_got_reloc : 1;
-
-  /* 0: symbol isn't ___tls_get_addr.
-     1: symbol is ___tls_get_addr.
-     2: symbol is unknown.  */
-  unsigned int tls_get_addr : 2;
-
-  /* Reference count of C/C++ function pointer relocations in read-write
-     section which can be resolved at run-time.  */
-  bfd_signed_vma func_pointer_refcount;
-
-  /* Information about the GOT PLT entry. Filled when there are both
-     GOT and PLT relocations against the same function.  */
-  union gotplt_union plt_got;
-
-  /* Offset of the GOTPLT entry reserved for the TLS descriptor,
-     starting at the end of the jump table.  */
-  bfd_vma tlsdesc_got;
-};
-
-#define elf_i386_hash_entry(ent) ((struct elf_i386_link_hash_entry *)(ent))
-
-struct elf_i386_obj_tdata
-{
-  struct elf_obj_tdata root;
-
-  /* tls_type for each local got entry.  */
-  char *local_got_tls_type;
-
-  /* GOTPLT entries for TLS descriptors.  */
-  bfd_vma *local_tlsdesc_gotent;
-};
-
-#define elf_i386_tdata(abfd) \
-  ((struct elf_i386_obj_tdata *) (abfd)->tdata.any)
-
-#define elf_i386_local_got_tls_type(abfd) \
-  (elf_i386_tdata (abfd)->local_got_tls_type)
-
-#define elf_i386_local_tlsdesc_gotent(abfd) \
-  (elf_i386_tdata (abfd)->local_tlsdesc_gotent)
-
-#define is_i386_elf(bfd)				\
-  (bfd_get_flavour (bfd) == bfd_target_elf_flavour	\
-   && elf_tdata (bfd) != NULL				\
-   && elf_object_id (bfd) == I386_ELF_DATA)
-
-static bfd_boolean
-elf_i386_mkobject (bfd *abfd)
-{
-  return bfd_elf_allocate_object (abfd, sizeof (struct elf_i386_obj_tdata),
-				  I386_ELF_DATA);
-}
-
-/* i386 ELF linker hash table.  */
-
-struct elf_i386_link_hash_table
-{
-  struct elf_link_hash_table elf;
-
-  /* Short-cuts to get to dynamic linker sections.  */
-  asection *interp;
-  asection *plt_eh_frame;
-  asection *plt_got;
-  asection *plt_got_eh_frame;
-
-  union
-  {
-    bfd_signed_vma refcount;
-    bfd_vma offset;
-  } tls_ldm_got;
-
-  /* The amount of space used by the reserved portion of the sgotplt
-     section, plus whatever space is used by the jump slots.  */
-  bfd_vma sgotplt_jump_table_size;
-
-  /* Small local sym cache.  */
-  struct sym_cache sym_cache;
-
-  /* _TLS_MODULE_BASE_ symbol.  */
-  struct bfd_link_hash_entry *tls_module_base;
-
-  /* Used by local STT_GNU_IFUNC symbols.  */
-  htab_t loc_hash_table;
-  void * loc_hash_memory;
-
-  /* The (unloaded but important) .rel.plt.unloaded section on VxWorks.  */
-  asection *srelplt2;
-
-  /* The index of the next unused R_386_TLS_DESC slot in .rel.plt.  */
-  bfd_vma next_tls_desc_index;
-
-  /* The index of the next unused R_386_JUMP_SLOT slot in .rel.plt.  */
-  bfd_vma next_jump_slot_index;
-
-  /* The index of the next unused R_386_IRELATIVE slot in .rel.plt.  */
-  bfd_vma next_irelative_index;
-
-  /* TRUE if there are dynamic relocs against IFUNC symbols that apply
-     to read-only sections.  */
-  bfd_boolean readonly_dynrelocs_against_ifunc;
-};
-
-/* Get the i386 ELF linker hash table from a link_info structure.  */
-
-#define elf_i386_hash_table(p) \
-  (elf_hash_table_id  ((struct elf_link_hash_table *) ((p)->hash)) \
-  == I386_ELF_DATA ? ((struct elf_i386_link_hash_table *) ((p)->hash)) : NULL)
-
-#define elf_i386_compute_jump_table_size(htab) \
-  ((htab)->elf.srelplt->reloc_count * 4)
-
-/* Create an entry in an i386 ELF linker hash table.  */
-
-static struct bfd_hash_entry *
-elf_i386_link_hash_newfunc (struct bfd_hash_entry *entry,
-			    struct bfd_hash_table *table,
-			    const char *string)
-{
-  /* Allocate the structure if it has not already been allocated by a
-     subclass.  */
-  if (entry == NULL)
-    {
-      entry = (struct bfd_hash_entry *)
-          bfd_hash_allocate (table, sizeof (struct elf_i386_link_hash_entry));
-      if (entry == NULL)
-	return entry;
-    }
-
-  /* Call the allocation method of the superclass.  */
-  entry = _bfd_elf_link_hash_newfunc (entry, table, string);
-  if (entry != NULL)
-    {
-      struct elf_i386_link_hash_entry *eh;
-
-      eh = (struct elf_i386_link_hash_entry *) entry;
-      eh->dyn_relocs = NULL;
-      eh->tls_type = GOT_UNKNOWN;
-      eh->gotoff_ref = 0;
-      eh->has_got_reloc = 0;
-      eh->has_non_got_reloc = 0;
-      eh->tls_get_addr = 2;
-      eh->func_pointer_refcount = 0;
-      eh->plt_got.offset = (bfd_vma) -1;
-      eh->tlsdesc_got = (bfd_vma) -1;
-    }
-
-  return entry;
-}
-
-/* Compute a hash of a local hash entry.  We use elf_link_hash_entry
-  for local symbol so that we can handle local STT_GNU_IFUNC symbols
-  as global symbol.  We reuse indx and dynstr_index for local symbol
-  hash since they aren't used by global symbols in this backend.  */
-
-static hashval_t
-elf_i386_local_htab_hash (const void *ptr)
-{
-  struct elf_link_hash_entry *h
-    = (struct elf_link_hash_entry *) ptr;
-  return ELF_LOCAL_SYMBOL_HASH (h->indx, h->dynstr_index);
-}
-
-/* Compare local hash entries.  */
-
-static int
-elf_i386_local_htab_eq (const void *ptr1, const void *ptr2)
-{
-  struct elf_link_hash_entry *h1
-     = (struct elf_link_hash_entry *) ptr1;
-  struct elf_link_hash_entry *h2
-    = (struct elf_link_hash_entry *) ptr2;
-
-  return h1->indx == h2->indx && h1->dynstr_index == h2->dynstr_index;
-}
-
-/* Find and/or create a hash entry for local symbol.  */
-
-static struct elf_link_hash_entry *
-elf_i386_get_local_sym_hash (struct elf_i386_link_hash_table *htab,
-			     bfd *abfd, const Elf_Internal_Rela *rel,
-			     bfd_boolean create)
-{
-  struct elf_i386_link_hash_entry e, *ret;
-  asection *sec = abfd->sections;
-  hashval_t h = ELF_LOCAL_SYMBOL_HASH (sec->id,
-				       ELF32_R_SYM (rel->r_info));
-  void **slot;
-
-  e.elf.indx = sec->id;
-  e.elf.dynstr_index = ELF32_R_SYM (rel->r_info);
-  slot = htab_find_slot_with_hash (htab->loc_hash_table, &e, h,
-				   create ? INSERT : NO_INSERT);
-
-  if (!slot)
-    return NULL;
-
-  if (*slot)
-    {
-      ret = (struct elf_i386_link_hash_entry *) *slot;
-      return &ret->elf;
-    }
-
-  ret = (struct elf_i386_link_hash_entry *)
-	objalloc_alloc ((struct objalloc *) htab->loc_hash_memory,
-			sizeof (struct elf_i386_link_hash_entry));
-  if (ret)
-    {
-      memset (ret, 0, sizeof (*ret));
-      ret->elf.indx = sec->id;
-      ret->elf.dynstr_index = ELF32_R_SYM (rel->r_info);
-      ret->elf.dynindx = -1;
-      ret->func_pointer_refcount = 0;
-      ret->plt_got.offset = (bfd_vma) -1;
-      *slot = ret;
-    }
-  return &ret->elf;
-}
-
-/* Destroy an i386 ELF linker hash table.  */
-
-static void
-elf_i386_link_hash_table_free (bfd *obfd)
-{
-  struct elf_i386_link_hash_table *htab
-    = (struct elf_i386_link_hash_table *) obfd->link.hash;
-
-  if (htab->loc_hash_table)
-    htab_delete (htab->loc_hash_table);
-  if (htab->loc_hash_memory)
-    objalloc_free ((struct objalloc *) htab->loc_hash_memory);
-  _bfd_elf_link_hash_table_free (obfd);
-}
-
-/* Create an i386 ELF linker hash table.  */
-
-static struct bfd_link_hash_table *
-elf_i386_link_hash_table_create (bfd *abfd)
-{
-  struct elf_i386_link_hash_table *ret;
-  bfd_size_type amt = sizeof (struct elf_i386_link_hash_table);
-
-  ret = (struct elf_i386_link_hash_table *) bfd_zmalloc (amt);
-  if (ret == NULL)
-    return NULL;
-
-  if (!_bfd_elf_link_hash_table_init (&ret->elf, abfd,
-				      elf_i386_link_hash_newfunc,
-				      sizeof (struct elf_i386_link_hash_entry),
-				      I386_ELF_DATA))
-    {
-      free (ret);
-      return NULL;
-    }
-
-  ret->loc_hash_table = htab_try_create (1024,
-					 elf_i386_local_htab_hash,
-					 elf_i386_local_htab_eq,
-					 NULL);
-  ret->loc_hash_memory = objalloc_create ();
-  if (!ret->loc_hash_table || !ret->loc_hash_memory)
-    {
-      elf_i386_link_hash_table_free (abfd);
-      return NULL;
-    }
-  ret->elf.root.hash_table_free = elf_i386_link_hash_table_free;
-
-  return &ret->elf.root;
-}
-
-/* Create .plt, .rel.plt, .got, .got.plt, .rel.got, .dynbss, and
-   .rel.bss sections in DYNOBJ, and set up shortcuts to them in our
-   hash table.  */
-
-static bfd_boolean
-elf_i386_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
-{
-  struct elf_i386_link_hash_table *htab;
-
-  if (!_bfd_elf_create_dynamic_sections (dynobj, info))
-    return FALSE;
-
-  htab = elf_i386_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-
-  /* Set the contents of the .interp section to the interpreter.  */
-  if (bfd_link_executable (info) && !info->nointerp)
-    {
-      asection *s = bfd_get_linker_section (dynobj, ".interp");
-      if (s == NULL)
-	abort ();
-      s->size = sizeof ELF_DYNAMIC_INTERPRETER;
-      s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
-      htab->interp = s;
-    }
-
-  if (get_elf_i386_backend_data (dynobj)->is_vxworks
-      && !elf_vxworks_create_dynamic_sections (dynobj, info,
-					       &htab->srelplt2))
-    return FALSE;
-
-  if (!info->no_ld_generated_unwind_info
-      && htab->plt_eh_frame == NULL
-      && htab->elf.splt != NULL)
-    {
-      flagword flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY
-			| SEC_HAS_CONTENTS | SEC_IN_MEMORY
-			| SEC_LINKER_CREATED);
-      htab->plt_eh_frame
-	= bfd_make_section_anyway_with_flags (dynobj, ".eh_frame", flags);
-      if (htab->plt_eh_frame == NULL
-	  || !bfd_set_section_alignment (dynobj, htab->plt_eh_frame, 2))
-	return FALSE;
-    }
-
-  return TRUE;
-}
-
-/* Copy the extra info we tack onto an elf_link_hash_entry.  */
-
-static void
-elf_i386_copy_indirect_symbol (struct bfd_link_info *info,
-			       struct elf_link_hash_entry *dir,
-			       struct elf_link_hash_entry *ind)
-{
-  struct elf_i386_link_hash_entry *edir, *eind;
-
-  edir = (struct elf_i386_link_hash_entry *) dir;
-  eind = (struct elf_i386_link_hash_entry *) ind;
-
-  if (eind->dyn_relocs != NULL)
-    {
-      if (edir->dyn_relocs != NULL)
-	{
-	  struct elf_dyn_relocs **pp;
-	  struct elf_dyn_relocs *p;
-
-	  /* Add reloc counts against the indirect sym to the direct sym
-	     list.  Merge any entries against the same section.  */
-	  for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
-	    {
-	      struct elf_dyn_relocs *q;
-
-	      for (q = edir->dyn_relocs; q != NULL; q = q->next)
-		if (q->sec == p->sec)
-		  {
-		    q->pc_count += p->pc_count;
-		    q->count += p->count;
-		    *pp = p->next;
-		    break;
-		  }
-	      if (q == NULL)
-		pp = &p->next;
-	    }
-	  *pp = edir->dyn_relocs;
-	}
-
-      edir->dyn_relocs = eind->dyn_relocs;
-      eind->dyn_relocs = NULL;
-    }
-
-  if (ind->root.type == bfd_link_hash_indirect
-      && dir->got.refcount <= 0)
-    {
-      edir->tls_type = eind->tls_type;
-      eind->tls_type = GOT_UNKNOWN;
-    }
-
-  /* Copy gotoff_ref so that elf_i386_adjust_dynamic_symbol will
-     generate a R_386_COPY reloc.  */
-  edir->gotoff_ref |= eind->gotoff_ref;
-
-  edir->has_got_reloc |= eind->has_got_reloc;
-  edir->has_non_got_reloc |= eind->has_non_got_reloc;
-
-  if (ELIMINATE_COPY_RELOCS
-      && ind->root.type != bfd_link_hash_indirect
-      && dir->dynamic_adjusted)
-    {
-      /* If called to transfer flags for a weakdef during processing
-	 of elf_adjust_dynamic_symbol, don't copy non_got_ref.
-	 We clear it ourselves for ELIMINATE_COPY_RELOCS.  */
-      if (dir->versioned != versioned_hidden)
-	dir->ref_dynamic |= ind->ref_dynamic;
-      dir->ref_regular |= ind->ref_regular;
-      dir->ref_regular_nonweak |= ind->ref_regular_nonweak;
-      dir->needs_plt |= ind->needs_plt;
-      dir->pointer_equality_needed |= ind->pointer_equality_needed;
-    }
-  else
-    {
-      if (eind->func_pointer_refcount > 0)
-	{
-	  edir->func_pointer_refcount += eind->func_pointer_refcount;
-	  eind->func_pointer_refcount = 0;
-	}
-
-      _bfd_elf_link_hash_copy_indirect (info, dir, ind);
-    }
-}
-
 /* Return TRUE if the TLS access code sequence support transition
    from R_TYPE.  */
 
@@ -1237,7 +849,7 @@ elf_i386_check_tls_transition (asection 
   struct elf_link_hash_entry *h;
   bfd_vma offset;
   bfd_byte *call;
-  bfd_boolean indirect_call, tls_get_addr;
+  bfd_boolean indirect_call;
 
   offset = rel->r_offset;
   switch (r_type)
@@ -1342,29 +954,9 @@ elf_i386_check_tls_transition (asection 
       if (r_symndx < symtab_hdr->sh_info)
 	return FALSE;
 
-      tls_get_addr = FALSE;
       h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-      if (h != NULL && h->root.root.string != NULL)
-	{
-	  struct elf_i386_link_hash_entry *eh
-	    = (struct elf_i386_link_hash_entry *) h;
-	  tls_get_addr = eh->tls_get_addr == 1;
-	  if (eh->tls_get_addr > 1)
-	    {
-	      /* Use strncmp to check ___tls_get_addr since
-		 ___tls_get_addr may be versioned.  */
-	      if (strncmp (h->root.root.string, "___tls_get_addr", 15)
-		  == 0)
-		{
-		  eh->tls_get_addr = 1;
-		  tls_get_addr = TRUE;
-		}
-	      else
-		eh->tls_get_addr = 0;
-	    }
-	}
-
-      if (!tls_get_addr)
+      if (h == NULL
+	  || !((struct elf_x86_link_hash_entry *) h)->tls_get_addr)
 	return FALSE;
       else if (indirect_call)
 	return (ELF32_R_TYPE (rel[1].r_info) == R_386_GOT32X);
@@ -1496,10 +1088,7 @@ elf_i386_tls_transition (struct bfd_link
 	{
 	  unsigned int new_to_type = to_type;
 
-	  if (bfd_link_executable (info)
-	      && h != NULL
-	      && h->dynindx == -1
-	      && (tls_type & GOT_TLS_IE))
+	  if (TLS_TRANSITION_IE_TO_LE_P (info, h, tls_type))
 	    new_to_type = R_386_TLS_LE_32;
 
 	  if (to_type == R_386_TLS_GD
@@ -1550,9 +1139,9 @@ elf_i386_tls_transition (struct bfd_link
 	name = h->root.root.string;
       else
 	{
-	  struct elf_i386_link_hash_table *htab;
+	  struct elf_x86_link_hash_table *htab;
 
-	  htab = elf_i386_hash_table (info);
+	  htab = elf_x86_hash_table (info, I386_ELF_DATA);
 	  if (htab == NULL)
 	    name = "*unknown*";
 	  else
@@ -1567,10 +1156,10 @@ elf_i386_tls_transition (struct bfd_link
 
       _bfd_error_handler
 	/* xgettext:c-format */
-	(_("%B: TLS transition from %s to %s against `%s' at 0x%lx "
+	(_("%B: TLS transition from %s to %s against `%s' at %#Lx "
 	   "in section `%A' failed"),
 	 abfd, from->name, to->name, name,
-	 (unsigned long) rel->r_offset, sec);
+	 rel->r_offset, sec);
       bfd_set_error (bfd_error_bad_value);
       return FALSE;
     }
@@ -1602,12 +1191,13 @@ static
 bfd_boolean
 elf_i386_convert_load_reloc (bfd *abfd, Elf_Internal_Shdr *symtab_hdr,
 			     bfd_byte *contents,
+			     unsigned int *r_type_p,
 			     Elf_Internal_Rela *irel,
 			     struct elf_link_hash_entry *h,
 			     bfd_boolean *converted,
 			     struct bfd_link_info *link_info)
 {
-  struct elf_i386_link_hash_table *htab;
+  struct elf_x86_link_hash_table *htab;
   unsigned int opcode;
   unsigned int modrm;
   bfd_boolean baseless;
@@ -1620,6 +1210,8 @@ elf_i386_convert_load_reloc (bfd *abfd, 
   unsigned int r_type;
   unsigned int r_symndx;
   bfd_vma roff = irel->r_offset;
+  bfd_boolean local_ref;
+  struct elf_x86_link_hash_entry *eh;
 
   if (roff < 2)
     return TRUE;
@@ -1629,10 +1221,10 @@ elf_i386_convert_load_reloc (bfd *abfd, 
   if (addend != 0)
     return TRUE;
 
-  htab = elf_i386_hash_table (link_info);
+  htab = elf_x86_hash_table (link_info, I386_ELF_DATA);
   is_pic = bfd_link_pic (link_info);
 
-  r_type = ELF32_R_TYPE (irel->r_info);
+  r_type = *r_type_p;
   r_symndx = ELF32_R_SYM (irel->r_info);
 
   modrm = bfd_get_8 (abfd, contents + roff - 1);
@@ -1667,6 +1259,8 @@ elf_i386_convert_load_reloc (bfd *abfd, 
      register.  */
   to_reloc_32 = !is_pic || baseless;
 
+  eh = elf_x86_hash_entry (h);
+
   /* Try to convert R_386_GOT32X.  Get the symbol referred to by the
      reloc.  */
   if (h == NULL)
@@ -1681,10 +1275,14 @@ elf_i386_convert_load_reloc (bfd *abfd, 
 	goto convert_load;
     }
 
+  /* NB: Also set linker_def via SYMBOL_REFERENCES_LOCAL_P.  */
+  local_ref = SYMBOL_REFERENCES_LOCAL_P (link_info, h);
+
   /* Undefined weak symbol is only bound locally in executable
      and its reference is resolved as 0.  */
-  if (UNDEFINED_WEAK_RESOLVED_TO_ZERO (link_info, TRUE,
-				       elf_i386_hash_entry (h)))
+  if (h->root.type == bfd_link_hash_undefweak
+      && !eh->linker_def
+      && local_ref)
     {
       if (opcode == 0xff)
 	{
@@ -1707,22 +1305,19 @@ elf_i386_convert_load_reloc (bfd *abfd, 
       /* We have "call/jmp *foo@GOT[(%reg)]".  */
       if ((h->root.type == bfd_link_hash_defined
 	   || h->root.type == bfd_link_hash_defweak)
-	  && SYMBOL_REFERENCES_LOCAL (link_info, h))
+	  && local_ref)
 	{
 	  /* The function is locally defined.   */
 convert_branch:
 	  /* Convert R_386_GOT32X to R_386_PC32.  */
 	  if (modrm == 0x15 || (modrm & 0xf8) == 0x90)
 	    {
-	      struct elf_i386_link_hash_entry *eh
-		= (struct elf_i386_link_hash_entry *) h;
-
 	      /* Convert to "nop call foo".  ADDR_PREFIX_OPCODE
 		 is a nop prefix.  */
 	      modrm = 0xe8;
 	      /* To support TLS optimization, always use addr32 prefix
 		 for "call *___tls_get_addr@GOT(%reg)".  */
-	      if (eh && eh->tls_get_addr == 1)
+	      if (eh && eh->tls_get_addr)
 		{
 		  nop = 0x67;
 		  nop_offset = irel->r_offset - 2;
@@ -1754,7 +1349,7 @@ convert_branch:
 	     need to adjust addend by -4.  */
 	  bfd_put_32 (abfd, -4, contents + irel->r_offset);
 	  irel->r_info = ELF32_R_INFO (r_symndx, R_386_PC32);
-
+	  *r_type_p = R_386_PC32;
 	  *converted = TRUE;
 	}
     }
@@ -1770,11 +1365,14 @@ convert_branch:
 	return TRUE;
 
       /* def_regular is set by an assignment in a linker script in
-	 bfd_elf_record_link_assignment.  */
-      if ((h->def_regular
-	   || h->root.type == bfd_link_hash_defined
-	   || h->root.type == bfd_link_hash_defweak)
-	  && SYMBOL_REFERENCES_LOCAL (link_info, h))
+	 bfd_elf_record_link_assignment.  start_stop is set on
+	 __start_SECNAME/__stop_SECNAME which mark section SECNAME.  */
+      if (h->start_stop
+	  || eh->linker_def
+	  || ((h->def_regular
+	       || h->root.type == bfd_link_hash_defined
+	       || h->root.type == bfd_link_hash_defweak)
+	      && local_ref))
 	{
 convert_load:
 	  if (opcode == 0x8b)
@@ -1824,7 +1422,7 @@ convert_load:
 
 	  bfd_put_8 (abfd, opcode, contents + roff - 2);
 	  irel->r_info = ELF32_R_INFO (r_symndx, r_type);
-
+	  *r_type_p = r_type;
 	  *converted = TRUE;
 	}
     }
@@ -1834,8 +1432,7 @@ convert_load:
 
 /* Rename some of the generic section flags to better document how they
    are used here.  */
-#define need_convert_load	sec_flg0
-#define check_relocs_failed	sec_flg1
+#define check_relocs_failed	sec_flg0
 
 /* Look through the relocs for a section during the first phase, and
    calculate needed space in the global offset table, procedure linkage
@@ -1847,14 +1444,14 @@ elf_i386_check_relocs (bfd *abfd,
 		       asection *sec,
 		       const Elf_Internal_Rela *relocs)
 {
-  struct elf_i386_link_hash_table *htab;
+  struct elf_x86_link_hash_table *htab;
   Elf_Internal_Shdr *symtab_hdr;
   struct elf_link_hash_entry **sym_hashes;
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
   asection *sreloc;
   bfd_byte *contents;
-  bfd_boolean use_plt_got;
+  bfd_boolean converted;
 
   if (bfd_link_relocatable (info))
     return TRUE;
@@ -1868,15 +1465,15 @@ elf_i386_check_relocs (bfd *abfd,
   if ((sec->flags & SEC_ALLOC) == 0)
     return TRUE;
 
-  BFD_ASSERT (is_i386_elf (abfd));
-
-  htab = elf_i386_hash_table (info);
+  htab = elf_x86_hash_table (info, I386_ELF_DATA);
   if (htab == NULL)
     {
       sec->check_relocs_failed = 1;
       return FALSE;
     }
 
+  BFD_ASSERT (is_x86_elf (abfd, htab));
+
   /* Get the section contents.  */
   if (elf_section_data (sec)->this_hdr.contents != NULL)
     contents = elf_section_data (sec)->this_hdr.contents;
@@ -1886,22 +1483,20 @@ elf_i386_check_relocs (bfd *abfd,
       return FALSE;
     }
 
-  use_plt_got = (!get_elf_i386_backend_data (abfd)->is_vxworks
-		 && (get_elf_i386_backend_data (abfd)
-		     == &elf_i386_arch_bed));
-
   symtab_hdr = &elf_symtab_hdr (abfd);
   sym_hashes = elf_sym_hashes (abfd);
 
+  converted = FALSE;
+
   sreloc = NULL;
 
   rel_end = relocs + sec->reloc_count;
   for (rel = relocs; rel < rel_end; rel++)
     {
       unsigned int r_type;
-      unsigned long r_symndx;
+      unsigned int r_symndx;
       struct elf_link_hash_entry *h;
-      struct elf_i386_link_hash_entry *eh;
+      struct elf_x86_link_hash_entry *eh;
       Elf_Internal_Sym *isym;
       const char *name;
       bfd_boolean size_reloc;
@@ -1928,11 +1523,13 @@ elf_i386_check_relocs (bfd *abfd,
 	  /* Check relocation against local STT_GNU_IFUNC symbol.  */
 	  if (ELF32_ST_TYPE (isym->st_info) == STT_GNU_IFUNC)
 	    {
-	      h = elf_i386_get_local_sym_hash (htab, abfd, rel, TRUE);
+	      h = _bfd_elf_x86_get_local_sym_hash (htab, abfd, rel, TRUE);
 	      if (h == NULL)
 		goto error_return;
 
 	      /* Fake a STT_GNU_IFUNC symbol.  */
+	      h->root.root.string = bfd_elf_sym_name (abfd, symtab_hdr,
+						      isym, NULL);
 	      h->type = STT_GNU_IFUNC;
 	      h->def_regular = 1;
 	      h->ref_regular = 1;
@@ -1951,41 +1548,30 @@ elf_i386_check_relocs (bfd *abfd,
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
 	}
 
-      eh = (struct elf_i386_link_hash_entry *) h;
+      eh = (struct elf_x86_link_hash_entry *) h;
       if (h != NULL)
 	{
-	  switch (r_type)
-	    {
-	    default:
-	      break;
-
-	    case R_386_GOTOFF:
-	      eh->gotoff_ref = 1;
-	      /* Fall through.  */
-	    case R_386_32:
-	    case R_386_PC32:
-	    case R_386_PLT32:
-	    case R_386_GOT32:
-	    case R_386_GOT32X:
-	      if (htab->elf.dynobj == NULL)
-		htab->elf.dynobj = abfd;
-	      /* Create the ifunc sections for static executables.  */
-	      if (h->type == STT_GNU_IFUNC
-		  && !_bfd_elf_create_ifunc_sections (htab->elf.dynobj,
-						      info))
-		goto error_return;
-	      break;
-	    }
+	  if (r_type == R_386_GOTOFF)
+	    eh->gotoff_ref = 1;
 
 	  /* It is referenced by a non-shared object. */
 	  h->ref_regular = 1;
-	  h->root.non_ir_ref = 1;
 
 	  if (h->type == STT_GNU_IFUNC)
 	    elf_tdata (info->output_bfd)->has_gnu_symbols
 	      |= elf_gnu_symbol_ifunc;
 	}
 
+      if (r_type == R_386_GOT32X
+	  && (h == NULL || h->type != STT_GNU_IFUNC))
+	{
+	  Elf_Internal_Rela *irel = (Elf_Internal_Rela *) rel;
+	  if (!elf_i386_convert_load_reloc (abfd, symtab_hdr, contents,
+					    &r_type, irel, h,
+					    &converted, info))
+	    goto error_return;
+	}
+
       if (! elf_i386_tls_transition (info, abfd, sec, contents,
 				     symtab_hdr, sym_hashes,
 				     &r_type, GOT_UNKNOWN,
@@ -1995,7 +1581,7 @@ elf_i386_check_relocs (bfd *abfd,
       switch (r_type)
 	{
 	case R_386_TLS_LDM:
-	  htab->tls_ldm_got.refcount += 1;
+	  htab->tls_ld_or_ldm_got.refcount = 1;
 	  goto create_got;
 
 	case R_386_PLT32:
@@ -2011,9 +1597,9 @@ elf_i386_check_relocs (bfd *abfd,
 	  if (h == NULL)
 	    continue;
 
-	  eh->has_got_reloc = 1;
+	  eh->zero_undefweak &= 0x2;
 	  h->needs_plt = 1;
-	  h->plt.refcount += 1;
+	  h->plt.refcount = 1;
 	  break;
 
 	case R_386_SIZE32:
@@ -2062,8 +1648,8 @@ elf_i386_check_relocs (bfd *abfd,
 
 	    if (h != NULL)
 	      {
-		h->got.refcount += 1;
-		old_tls_type = elf_i386_hash_entry(h)->tls_type;
+		h->got.refcount = 1;
+		old_tls_type = elf_x86_hash_entry (h)->tls_type;
 	      }
 	    else
 	      {
@@ -2079,17 +1665,17 @@ elf_i386_check_relocs (bfd *abfd,
 		    size *= (sizeof (bfd_signed_vma)
 			     + sizeof (bfd_vma) + sizeof(char));
 		    local_got_refcounts = (bfd_signed_vma *)
-                        bfd_zalloc (abfd, size);
+			bfd_zalloc (abfd, size);
 		    if (local_got_refcounts == NULL)
 		      goto error_return;
 		    elf_local_got_refcounts (abfd) = local_got_refcounts;
-		    elf_i386_local_tlsdesc_gotent (abfd)
+		    elf_x86_local_tlsdesc_gotent (abfd)
 		      = (bfd_vma *) (local_got_refcounts + symtab_hdr->sh_info);
-		    elf_i386_local_got_tls_type (abfd)
+		    elf_x86_local_got_tls_type (abfd)
 		      = (char *) (local_got_refcounts + 2 * symtab_hdr->sh_info);
 		  }
-		local_got_refcounts[r_symndx] += 1;
-		old_tls_type = elf_i386_local_got_tls_type (abfd) [r_symndx];
+		local_got_refcounts[r_symndx] = 1;
+		old_tls_type = elf_x86_local_got_tls_type (abfd) [r_symndx];
 	      }
 
 	    if ((old_tls_type & GOT_TLS_IE) && (tls_type & GOT_TLS_IE))
@@ -2125,9 +1711,9 @@ elf_i386_check_relocs (bfd *abfd,
 	    if (old_tls_type != tls_type)
 	      {
 		if (h != NULL)
-		  elf_i386_hash_entry (h)->tls_type = tls_type;
+		  elf_x86_hash_entry (h)->tls_type = tls_type;
 		else
-		  elf_i386_local_got_tls_type (abfd) [r_symndx] = tls_type;
+		  elf_x86_local_got_tls_type (abfd) [r_symndx] = tls_type;
 	      }
 	  }
 	  /* Fall through */
@@ -2135,17 +1721,10 @@ elf_i386_check_relocs (bfd *abfd,
 	case R_386_GOTOFF:
 	case R_386_GOTPC:
 	create_got:
-	  if (htab->elf.sgot == NULL)
-	    {
-	      if (htab->elf.dynobj == NULL)
-		htab->elf.dynobj = abfd;
-	      if (!_bfd_elf_create_got_section (htab->elf.dynobj, info))
-		goto error_return;
-	    }
 	  if (r_type != R_386_TLS_IE)
 	    {
 	      if (eh != NULL)
-		eh->has_got_reloc = 1;
+		eh->zero_undefweak &= 0x2;
 	      break;
 	    }
 	  /* Fall through */
@@ -2153,7 +1732,7 @@ elf_i386_check_relocs (bfd *abfd,
 	case R_386_TLS_LE_32:
 	case R_386_TLS_LE:
 	  if (eh != NULL)
-	    eh->has_got_reloc = 1;
+	    eh->zero_undefweak &= 0x2;
 	  if (bfd_link_executable (info))
 	    break;
 	  info->flags |= DF_STATIC_TLS;
@@ -2162,7 +1741,7 @@ elf_i386_check_relocs (bfd *abfd,
 	case R_386_32:
 	case R_386_PC32:
 	  if (eh != NULL && (sec->flags & SEC_CODE) != 0)
-	    eh->has_non_got_reloc = 1;
+	    eh->zero_undefweak |= 0x2;
 do_relocation:
 	  /* We are called after all symbols have been resolved.  Only
 	     relocation against STT_GNU_IFUNC symbol must go through
@@ -2171,20 +1750,7 @@ do_relocation:
 	      && (bfd_link_executable (info)
 		  || h->type == STT_GNU_IFUNC))
 	    {
-	      /* If this reloc is in a read-only section, we might
-		 need a copy reloc.  We can't check reliably at this
-		 stage whether the section is read-only, as input
-		 sections have not yet been mapped to output sections.
-		 Tentatively set the flag for now, and correct in
-		 adjust_dynamic_symbol.  */
-	      h->non_got_ref = 1;
-
-	      /* We may need a .plt entry if the symbol is a function
-		 defined in a shared lib or is a STT_GNU_IFUNC function
-		 referenced from the code or read-only section.  */
-	      if (!h->def_regular
-		  || (sec->flags & (SEC_CODE | SEC_READONLY)) != 0)
-		h->plt.refcount += 1;
+	      bfd_boolean func_pointer_ref = FALSE;
 
 	      if (r_type == R_386_PC32)
 		{
@@ -2196,15 +1762,10 @@ do_relocation:
 		  else if (h->type == STT_GNU_IFUNC
 			   && bfd_link_pic (info))
 		    {
-		    if (isym == NULL)
-		      name = h->root.root.string;
-		    else
-		      name = bfd_elf_sym_name (abfd, symtab_hdr, isym,
-					       NULL);
-		    _bfd_error_handler
-		      /* xgettext:c-format */
-		      (_("%B: unsupported non-PIC call to IFUNC `%s'"),
-		       abfd, name);
+		      _bfd_error_handler
+			/* xgettext:c-format */
+			(_("%B: unsupported non-PIC call to IFUNC `%s'"),
+			 abfd, h->root.root.string);
 		      bfd_set_error (bfd_error_bad_value);
 		      goto error_return;
 		    }
@@ -2215,52 +1776,32 @@ do_relocation:
 		  /* R_386_32 can be resolved at run-time.  */
 		  if (r_type == R_386_32
 		      && (sec->flags & SEC_READONLY) == 0)
-		    eh->func_pointer_refcount += 1;
+		    func_pointer_ref = TRUE;
+		}
+
+	      if (!func_pointer_ref)
+		{
+		  /* If this reloc is in a read-only section, we might
+		     need a copy reloc.  We can't check reliably at this
+		     stage whether the section is read-only, as input
+		     sections have not yet been mapped to output sections.
+		     Tentatively set the flag for now, and correct in
+		     adjust_dynamic_symbol.  */
+		  h->non_got_ref = 1;
+
+		  /* We may need a .plt entry if the symbol is a function
+		     defined in a shared lib or is a function referenced
+		     from the code or read-only section.  */
+		  if (!h->def_regular
+		      || (sec->flags & (SEC_CODE | SEC_READONLY)) != 0)
+		    h->plt.refcount = 1;
 		}
 	    }
 
 	  size_reloc = FALSE;
 do_size:
-	  /* If we are creating a shared library, and this is a reloc
-	     against a global symbol, or a non PC relative reloc
-	     against a local symbol, then we need to copy the reloc
-	     into the shared library.  However, if we are linking with
-	     -Bsymbolic, we do not need to copy a reloc against a
-	     global symbol which is defined in an object we are
-	     including in the link (i.e., DEF_REGULAR is set).  At
-	     this point we have not seen all the input files, so it is
-	     possible that DEF_REGULAR is not set now but will be set
-	     later (it is never cleared).  In case of a weak definition,
-	     DEF_REGULAR may be cleared later by a strong definition in
-	     a shared library.  We account for that possibility below by
-	     storing information in the relocs_copied field of the hash
-	     table entry.  A similar situation occurs when creating
-	     shared libraries and symbol visibility changes render the
-	     symbol local.
-
-	     If on the other hand, we are creating an executable, we
-	     may need to keep relocations for symbols satisfied by a
-	     dynamic library if we manage to avoid copy relocs for the
-	     symbol.
-
-	     Generate dynamic pointer relocation against STT_GNU_IFUNC
-	     symbol in the non-code section.  */
-	  if ((bfd_link_pic (info)
-	       && (r_type != R_386_PC32
-		   || (h != NULL
-		       && (! (bfd_link_pie (info)
-			      || SYMBOLIC_BIND (info, h))
-			   || h->root.type == bfd_link_hash_defweak
-			   || !h->def_regular))))
-	      || (h != NULL
-		  && h->type == STT_GNU_IFUNC
-		  && r_type == R_386_32
-		  && (sec->flags & SEC_CODE) == 0)
-	      || (ELIMINATE_COPY_RELOCS
-		  && !bfd_link_pic (info)
-		  && h != NULL
-		  && (h->root.type == bfd_link_hash_defweak
-		      || !h->def_regular)))
+	  if (NEED_DYNAMIC_RELOCATION_P (info, h, sec, r_type,
+					 R_386_32))
 	    {
 	      struct elf_dyn_relocs *p;
 	      struct elf_dyn_relocs **head;
@@ -2270,9 +1811,6 @@ do_size:
 		 this reloc.  */
 	      if (sreloc == NULL)
 		{
-		  if (htab->elf.dynobj == NULL)
-		    htab->elf.dynobj = abfd;
-
 		  sreloc = _bfd_elf_make_dynamic_reloc_section
 		    (sec, htab->elf.dynobj, 2, abfd, /*rela?*/ FALSE);
 
@@ -2312,7 +1850,7 @@ do_size:
 		{
 		  bfd_size_type amt = sizeof *p;
 		  p = (struct elf_dyn_relocs *) bfd_alloc (htab->elf.dynobj,
-                                                           amt);
+							   amt);
 		  if (p == NULL)
 		    goto error_return;
 		  p->next = *head;
@@ -2348,1316 +1886,31 @@ do_size:
 	default:
 	  break;
 	}
-
-      if (use_plt_got
-	  && h != NULL
-	  && h->plt.refcount > 0
-	  && (((info->flags & DF_BIND_NOW) && !h->pointer_equality_needed)
-	      || h->got.refcount > 0)
-	  && htab->plt_got == NULL)
-	{
-	  /* Create the GOT procedure linkage table.  */
-	  unsigned int plt_got_align;
-	  const struct elf_backend_data *bed;
-
-	  bed = get_elf_backend_data (info->output_bfd);
-	  BFD_ASSERT (sizeof (elf_i386_got_plt_entry) == 8
-		      && (sizeof (elf_i386_got_plt_entry)
-			  == sizeof (elf_i386_pic_got_plt_entry)));
-	  plt_got_align = 3;
-
-	  if (htab->elf.dynobj == NULL)
-	    htab->elf.dynobj = abfd;
-	  htab->plt_got
-	    = bfd_make_section_anyway_with_flags (htab->elf.dynobj,
-						  ".plt.got",
-						  (bed->dynamic_sec_flags
-						   | SEC_ALLOC
-						   | SEC_CODE
-						   | SEC_LOAD
-						   | SEC_READONLY));
-	  if (htab->plt_got == NULL
-	      || !bfd_set_section_alignment (htab->elf.dynobj,
-					     htab->plt_got,
-					     plt_got_align))
-	    goto error_return;
-
-	  if (!info->no_ld_generated_unwind_info
-	      && htab->plt_got_eh_frame == NULL
-	      && get_elf_i386_backend_data (abfd)->plt->eh_frame_plt_got != NULL)
-	    {
-	      flagword flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY
-				| SEC_HAS_CONTENTS | SEC_IN_MEMORY
-				| SEC_LINKER_CREATED);
-	      htab->plt_got_eh_frame
-		= bfd_make_section_anyway_with_flags (htab->elf.dynobj,
-						      ".eh_frame",
-						      flags);
-	      if (htab->plt_got_eh_frame == NULL
-		  || !bfd_set_section_alignment (htab->elf.dynobj,
-						 htab->plt_got_eh_frame,
-						 2))
-		goto error_return;
-	    }
-	}
-
-      if (r_type == R_386_GOT32X
-	  && (h == NULL || h->type != STT_GNU_IFUNC))
-	sec->need_convert_load = 1;
-    }
-
-  if (elf_section_data (sec)->this_hdr.contents != contents)
-    {
-      if (!info->keep_memory)
-	free (contents);
-      else
-	{
-	  /* Cache the section contents for elf_link_input_bfd.  */
-	  elf_section_data (sec)->this_hdr.contents = contents;
-	}
     }
 
-  return TRUE;
-
-error_return:
   if (elf_section_data (sec)->this_hdr.contents != contents)
-    free (contents);
-  sec->check_relocs_failed = 1;
-  return FALSE;
-}
-
-/* Return the section that should be marked against GC for a given
-   relocation.  */
-
-static asection *
-elf_i386_gc_mark_hook (asection *sec,
-		       struct bfd_link_info *info,
-		       Elf_Internal_Rela *rel,
-		       struct elf_link_hash_entry *h,
-		       Elf_Internal_Sym *sym)
-{
-  if (h != NULL)
-    switch (ELF32_R_TYPE (rel->r_info))
-      {
-      case R_386_GNU_VTINHERIT:
-      case R_386_GNU_VTENTRY:
-	return NULL;
-      }
-
-  return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
-}
-
-/* Remove undefined weak symbol from the dynamic symbol table if it
-   is resolved to 0.   */
-
-static bfd_boolean
-elf_i386_fixup_symbol (struct bfd_link_info *info,
-		       struct elf_link_hash_entry *h)
-{
-  if (h->dynindx != -1
-      && UNDEFINED_WEAK_RESOLVED_TO_ZERO (info,
-					  elf_i386_hash_entry (h)->has_got_reloc,
-					  elf_i386_hash_entry (h)))
-    {
-      h->dynindx = -1;
-      _bfd_elf_strtab_delref (elf_hash_table (info)->dynstr,
-			      h->dynstr_index);
-    }
-  return TRUE;
-}
-
-/* Adjust a symbol defined by a dynamic object and referenced by a
-   regular object.  The current definition is in some section of the
-   dynamic object, but we're not including those sections.  We have to
-   change the definition to something the rest of the link can
-   understand.  */
-
-static bfd_boolean
-elf_i386_adjust_dynamic_symbol (struct bfd_link_info *info,
-				struct elf_link_hash_entry *h)
-{
-  struct elf_i386_link_hash_table *htab;
-  asection *s, *srel;
-  struct elf_i386_link_hash_entry *eh;
-  struct elf_dyn_relocs *p;
-
-  /* STT_GNU_IFUNC symbol must go through PLT. */
-  if (h->type == STT_GNU_IFUNC)
-    {
-      /* All local STT_GNU_IFUNC references must be treate as local
-	 calls via local PLT.  */
-      if (h->ref_regular
-	  && SYMBOL_CALLS_LOCAL (info, h))
-	{
-	  bfd_size_type pc_count = 0, count = 0;
-	  struct elf_dyn_relocs **pp;
-
-	  eh = (struct elf_i386_link_hash_entry *) h;
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
-	    {
-	      pc_count += p->pc_count;
-	      p->count -= p->pc_count;
-	      p->pc_count = 0;
-	      count += p->count;
-	      if (p->count == 0)
-		*pp = p->next;
-	      else
-		pp = &p->next;
-	    }
-
-	  if (pc_count || count)
-	    {
-	      h->non_got_ref = 1;
-	      if (pc_count)
-		{
-		  /* Increment PLT reference count only for PC-relative
-		     references.  */
-		  h->needs_plt = 1;
-		  if (h->plt.refcount <= 0)
-		    h->plt.refcount = 1;
-		  else
-		    h->plt.refcount += 1;
-		}
-	    }
-	}
-
-      if (h->plt.refcount <= 0)
-	{
-	  h->plt.offset = (bfd_vma) -1;
-	  h->needs_plt = 0;
-	}
-      return TRUE;
-    }
-
-  /* If this is a function, put it in the procedure linkage table.  We
-     will fill in the contents of the procedure linkage table later,
-     when we know the address of the .got section.  */
-  if (h->type == STT_FUNC
-      || h->needs_plt)
-    {
-      if (h->plt.refcount <= 0
-	  || SYMBOL_CALLS_LOCAL (info, h)
-	  || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
-	      && h->root.type == bfd_link_hash_undefweak))
-	{
-	  /* This case can occur if we saw a PLT32 reloc in an input
-	     file, but the symbol was never referred to by a dynamic
-	     object, or if all references were garbage collected.  In
-	     such a case, we don't actually need to build a procedure
-	     linkage table, and we can just do a PC32 reloc instead.  */
-	  h->plt.offset = (bfd_vma) -1;
-	  h->needs_plt = 0;
-	}
-
-      return TRUE;
-    }
-  else
-    /* It's possible that we incorrectly decided a .plt reloc was
-       needed for an R_386_PC32 reloc to a non-function sym in
-       check_relocs.  We can't decide accurately between function and
-       non-function syms in check-relocs;  Objects loaded later in
-       the link may change h->type.  So fix it now.  */
-    h->plt.offset = (bfd_vma) -1;
-
-  /* If this is a weak symbol, and there is a real definition, the
-     processor independent code will have arranged for us to see the
-     real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
-    {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
-      if (ELIMINATE_COPY_RELOCS || info->nocopyreloc)
-	h->non_got_ref = h->u.weakdef->non_got_ref;
-      return TRUE;
-    }
-
-  /* This is a reference to a symbol defined by a dynamic object which
-     is not a function.  */
-
-  /* If we are creating a shared library, we must presume that the
-     only references to the symbol are via the global offset table.
-     For such cases we need not do anything here; the relocations will
-     be handled correctly by relocate_section.  */
-  if (!bfd_link_executable (info))
-    return TRUE;
-
-  /* If there are no references to this symbol that do not use the
-     GOT nor R_386_GOTOFF relocation, we don't need to generate a copy
-     reloc.  */
-  eh = (struct elf_i386_link_hash_entry *) h;
-  if (!h->non_got_ref && !eh->gotoff_ref)
-    return TRUE;
-
-  /* If -z nocopyreloc was given, we won't generate them either.  */
-  if (info->nocopyreloc)
-    {
-      h->non_got_ref = 0;
-      return TRUE;
-    }
-
-  htab = elf_i386_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-
-  /* If there aren't any dynamic relocs in read-only sections nor
-     R_386_GOTOFF relocation, then we can keep the dynamic relocs and
-     avoid the copy reloc.  This doesn't work on VxWorks, where we can
-     not have dynamic relocations (other than copy and jump slot
-     relocations) in an executable.  */
-  if (ELIMINATE_COPY_RELOCS
-      && !eh->gotoff_ref
-      && !get_elf_i386_backend_data (info->output_bfd)->is_vxworks)
-    {
-      for (p = eh->dyn_relocs; p != NULL; p = p->next)
-	{
-	  s = p->sec->output_section;
-	  if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	    break;
-	}
-
-      if (p == NULL)
-	{
-	  h->non_got_ref = 0;
-	  return TRUE;
-	}
-    }
-
-  /* We must allocate the symbol in our .dynbss section, which will
-     become part of the .bss section of the executable.  There will be
-     an entry for this symbol in the .dynsym section.  The dynamic
-     object will contain position independent code, so all references
-     from the dynamic object to this symbol will go through the global
-     offset table.  The dynamic linker will use the .dynsym entry to
-     determine the address it must put in the global offset table, so
-     both the dynamic object and the regular object will refer to the
-     same memory location for the variable.  */
-
-  /* We must generate a R_386_COPY reloc to tell the dynamic linker to
-     copy the initial value out of the dynamic object and into the
-     runtime process image.  */
-  if ((h->root.u.def.section->flags & SEC_READONLY) != 0)
-    {
-      s = htab->elf.sdynrelro;
-      srel = htab->elf.sreldynrelro;
-    }
-  else
-    {
-      s = htab->elf.sdynbss;
-      srel = htab->elf.srelbss;
-    }
-  if ((h->root.u.def.section->flags & SEC_ALLOC) != 0 && h->size != 0)
-    {
-      srel->size += sizeof (Elf32_External_Rel);
-      h->needs_copy = 1;
-    }
-
-  return _bfd_elf_adjust_dynamic_copy (info, h, s);
-}
-
-/* Allocate space in .plt, .got and associated reloc sections for
-   dynamic relocs.  */
-
-static bfd_boolean
-elf_i386_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
-{
-  struct bfd_link_info *info;
-  struct elf_i386_link_hash_table *htab;
-  struct elf_i386_link_hash_entry *eh;
-  struct elf_dyn_relocs *p;
-  unsigned plt_entry_size;
-  bfd_boolean resolved_to_zero;
-
-  if (h->root.type == bfd_link_hash_indirect)
-    return TRUE;
-
-  eh = (struct elf_i386_link_hash_entry *) h;
-
-  info = (struct bfd_link_info *) inf;
-  htab = elf_i386_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-
-  plt_entry_size = GET_PLT_ENTRY_SIZE (info->output_bfd);
-
-  resolved_to_zero = UNDEFINED_WEAK_RESOLVED_TO_ZERO (info,
-						      eh->has_got_reloc,
-						      eh);
-
-  /* Clear the reference count of function pointer relocations if
-     symbol isn't a normal function.  */
-  if (h->type != STT_FUNC)
-    eh->func_pointer_refcount = 0;
-
-  /* We can't use the GOT PLT if pointer equality is needed since
-     finish_dynamic_symbol won't clear symbol value and the dynamic
-     linker won't update the GOT slot.  We will get into an infinite
-     loop at run-time.  */
-  if (htab->plt_got != NULL
-      && h->type != STT_GNU_IFUNC
-      && !h->pointer_equality_needed
-      && h->plt.refcount > 0
-      && h->got.refcount > 0)
-    {
-      /* Don't use the regular PLT if there are both GOT and GOTPLT
-         reloctions.  */
-      h->plt.offset = (bfd_vma) -1;
-
-      /* Use the GOT PLT.  */
-      eh->plt_got.refcount = 1;
-    }
-
-  /* Since STT_GNU_IFUNC symbol must go through PLT, we handle it
-     here if it is defined and referenced in a non-shared object.  */
-  if (h->type == STT_GNU_IFUNC
-      && h->def_regular)
-    return _bfd_elf_allocate_ifunc_dyn_relocs (info, h, &eh->dyn_relocs,
-					       &htab->readonly_dynrelocs_against_ifunc,
-					       plt_entry_size,
-					       plt_entry_size, 4, TRUE);
-  /* Don't create the PLT entry if there are only function pointer
-     relocations which can be resolved at run-time.  */
-  else if (htab->elf.dynamic_sections_created
-	   && (h->plt.refcount > eh->func_pointer_refcount
-	       || eh->plt_got.refcount > 0))
-    {
-      bfd_boolean use_plt_got;
-
-      /* Clear the reference count of function pointer relocations
-	 if PLT is used.  */
-      eh->func_pointer_refcount = 0;
-
-      if ((info->flags & DF_BIND_NOW) && !h->pointer_equality_needed)
-	{
-	  /* Don't use the regular PLT for DF_BIND_NOW. */
-	  h->plt.offset = (bfd_vma) -1;
-
-	  /* Use the GOT PLT.  */
-	  h->got.refcount = 1;
-	  eh->plt_got.refcount = 1;
-	}
-
-      use_plt_got = eh->plt_got.refcount > 0;
-
-      /* Make sure this symbol is output as a dynamic symbol.
-	 Undefined weak syms won't yet be marked as dynamic.  */
-      if (h->dynindx == -1
-	  && !h->forced_local
-	  && !resolved_to_zero)
-	{
-	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
-	    return FALSE;
-	}
-
-      if (bfd_link_pic (info)
-	  || WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, 0, h))
-	{
-	  asection *s = htab->elf.splt;
-	  asection *got_s = htab->plt_got;
-
-	  /* If this is the first .plt entry, make room for the special
-	     first entry.  The .plt section is used by prelink to undo
-	     prelinking for dynamic relocations.  */
-	  if (s->size == 0)
-	    s->size = plt_entry_size;
-
-	  if (use_plt_got)
-	    eh->plt_got.offset = got_s->size;
-	  else
-	    h->plt.offset = s->size;
-
-	  /* If this symbol is not defined in a regular file, and we are
-	     not generating a shared library, then set the symbol to this
-	     location in the .plt.  This is required to make function
-	     pointers compare as equal between the normal executable and
-	     the shared library.  */
-	  if (! bfd_link_pic (info)
-	      && !h->def_regular)
-	    {
-	      if (use_plt_got)
-		{
-		  /* We need to make a call to the entry of the GOT PLT
-		     instead of regular PLT entry.  */
-		  h->root.u.def.section = got_s;
-		  h->root.u.def.value = eh->plt_got.offset;
-		}
-	      else
-		{
-		  h->root.u.def.section = s;
-		  h->root.u.def.value = h->plt.offset;
-		}
-	    }
-
-	  /* Make room for this entry.  */
-	  if (use_plt_got)
-	    got_s->size += sizeof (elf_i386_got_plt_entry);
-	  else
-	    {
-	      s->size += plt_entry_size;
-
-	      /* We also need to make an entry in the .got.plt section,
-		 which will be placed in the .got section by the linker
-		 script.  */
-	      htab->elf.sgotplt->size += 4;
-
-	      /* There should be no PLT relocation against resolved
-		 undefined weak symbol in executable.  */
-	      if (!resolved_to_zero)
-		{
-		  /* We also need to make an entry in the .rel.plt
-		     section.  */
-		  htab->elf.srelplt->size += sizeof (Elf32_External_Rel);
-		  htab->elf.srelplt->reloc_count++;
-		}
-	    }
-
-	  if (get_elf_i386_backend_data (info->output_bfd)->is_vxworks
-              && !bfd_link_pic (info))
-	    {
-	      /* VxWorks has a second set of relocations for each PLT entry
-		 in executables.  They go in a separate relocation section,
-		 which is processed by the kernel loader.  */
-
-	      /* There are two relocations for the initial PLT entry: an
-		 R_386_32 relocation for _GLOBAL_OFFSET_TABLE_ + 4 and an
-		 R_386_32 relocation for _GLOBAL_OFFSET_TABLE_ + 8.  */
-
-	      if (h->plt.offset == plt_entry_size)
-		htab->srelplt2->size += (sizeof (Elf32_External_Rel) * 2);
-
-	      /* There are two extra relocations for each subsequent PLT entry:
-		 an R_386_32 relocation for the GOT entry, and an R_386_32
-		 relocation for the PLT entry.  */
-
-	      htab->srelplt2->size += (sizeof (Elf32_External_Rel) * 2);
-	    }
-	}
-      else
-	{
-	  eh->plt_got.offset = (bfd_vma) -1;
-	  h->plt.offset = (bfd_vma) -1;
-	  h->needs_plt = 0;
-	}
-    }
-  else
-    {
-      eh->plt_got.offset = (bfd_vma) -1;
-      h->plt.offset = (bfd_vma) -1;
-      h->needs_plt = 0;
-    }
-
-  eh->tlsdesc_got = (bfd_vma) -1;
-
-  /* If R_386_TLS_{IE_32,IE,GOTIE} symbol is now local to the binary,
-     make it a R_386_TLS_LE_32 requiring no TLS entry.  */
-  if (h->got.refcount > 0
-      && bfd_link_executable (info)
-      && h->dynindx == -1
-      && (elf_i386_hash_entry(h)->tls_type & GOT_TLS_IE))
-    h->got.offset = (bfd_vma) -1;
-  else if (h->got.refcount > 0)
-    {
-      asection *s;
-      bfd_boolean dyn;
-      int tls_type = elf_i386_hash_entry(h)->tls_type;
-
-      /* Make sure this symbol is output as a dynamic symbol.
-	 Undefined weak syms won't yet be marked as dynamic.  */
-      if (h->dynindx == -1
-	  && !h->forced_local
-	  && !resolved_to_zero)
-	{
-	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
-	    return FALSE;
-	}
-
-      s = htab->elf.sgot;
-      if (GOT_TLS_GDESC_P (tls_type))
-	{
-	  eh->tlsdesc_got = htab->elf.sgotplt->size
-	    - elf_i386_compute_jump_table_size (htab);
-	  htab->elf.sgotplt->size += 8;
-	  h->got.offset = (bfd_vma) -2;
-	}
-      if (! GOT_TLS_GDESC_P (tls_type)
-	  || GOT_TLS_GD_P (tls_type))
-	{
-	  h->got.offset = s->size;
-	  s->size += 4;
-	  /* R_386_TLS_GD needs 2 consecutive GOT slots.  */
-	  if (GOT_TLS_GD_P (tls_type) || tls_type == GOT_TLS_IE_BOTH)
-	    s->size += 4;
-	}
-      dyn = htab->elf.dynamic_sections_created;
-      /* R_386_TLS_IE_32 needs one dynamic relocation,
-	 R_386_TLS_IE resp. R_386_TLS_GOTIE needs one dynamic relocation,
-	 (but if both R_386_TLS_IE_32 and R_386_TLS_IE is present, we
-	 need two), R_386_TLS_GD needs one if local symbol and two if
-	 global.  No dynamic relocation against resolved undefined weak
-	 symbol in executable.  */
-      if (tls_type == GOT_TLS_IE_BOTH)
-	htab->elf.srelgot->size += 2 * sizeof (Elf32_External_Rel);
-      else if ((GOT_TLS_GD_P (tls_type) && h->dynindx == -1)
-	       || (tls_type & GOT_TLS_IE))
-	htab->elf.srelgot->size += sizeof (Elf32_External_Rel);
-      else if (GOT_TLS_GD_P (tls_type))
-	htab->elf.srelgot->size += 2 * sizeof (Elf32_External_Rel);
-      else if (! GOT_TLS_GDESC_P (tls_type)
-	       && ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-		    && !resolved_to_zero)
-		   || h->root.type != bfd_link_hash_undefweak)
-	       && (bfd_link_pic (info)
-		   || WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, 0, h)))
-	htab->elf.srelgot->size += sizeof (Elf32_External_Rel);
-      if (GOT_TLS_GDESC_P (tls_type))
-	htab->elf.srelplt->size += sizeof (Elf32_External_Rel);
-    }
-  else
-    h->got.offset = (bfd_vma) -1;
-
-  if (eh->dyn_relocs == NULL)
-    return TRUE;
-
-  /* In the shared -Bsymbolic case, discard space allocated for
-     dynamic pc-relative relocs against symbols which turn out to be
-     defined in regular objects.  For the normal shared case, discard
-     space for pc-relative relocs that have become local due to symbol
-     visibility changes.  */
-
-  if (bfd_link_pic (info))
-    {
-      /* The only reloc that uses pc_count is R_386_PC32, which will
-	 appear on a call or on something like ".long foo - .".  We
-	 want calls to protected symbols to resolve directly to the
-	 function rather than going via the plt.  If people want
-	 function pointer comparisons to work as expected then they
-	 should avoid writing assembly like ".long foo - .".  */
-      if (SYMBOL_CALLS_LOCAL (info, h))
-	{
-	  struct elf_dyn_relocs **pp;
-
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
-	    {
-	      p->count -= p->pc_count;
-	      p->pc_count = 0;
-	      if (p->count == 0)
-		*pp = p->next;
-	      else
-		pp = &p->next;
-	    }
-	}
-
-      if (get_elf_i386_backend_data (info->output_bfd)->is_vxworks)
-	{
-	  struct elf_dyn_relocs **pp;
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
-	    {
-	      if (strcmp (p->sec->output_section->name, ".tls_vars") == 0)
-		*pp = p->next;
-	      else
-		pp = &p->next;
-	    }
-	}
-
-      /* Also discard relocs on undefined weak syms with non-default
-	 visibility or in PIE.  */
-      if (eh->dyn_relocs != NULL
-	  && h->root.type == bfd_link_hash_undefweak)
-	{
-	  /* Undefined weak symbol is never bound locally in shared
-	     library.  */
-	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
-	      || resolved_to_zero)
-	    {
-	      if (h->non_got_ref)
-		{
-		  /* Keep dynamic non-GOT/non-PLT relocation so that we
-		     can branch to 0 without PLT.  */
-		  struct elf_dyn_relocs **pp;
-
-		  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
-		    if (p->pc_count == 0)
-		      *pp = p->next;
-		    else
-		      {
-			/* Remove non-R_386_PC32 relocation.  */
-			p->count = p->pc_count;
-			pp = &p->next;
-		      }
-
-		  if (eh->dyn_relocs != NULL)
-		    {
-		      /* Make sure undefined weak symbols are output
-			 as dynamic symbols in PIEs for dynamic non-GOT
-			 non-PLT reloations.  */
-		      if (! bfd_elf_link_record_dynamic_symbol (info, h))
-			return FALSE;
-		    }
-		}
-	      else
-		eh->dyn_relocs = NULL;
-	    }
-	  else if (h->dynindx == -1
-		   && !h->forced_local)
-	    {
-	      if (! bfd_elf_link_record_dynamic_symbol (info, h))
-		return FALSE;
-	    }
-	}
-    }
-  else if (ELIMINATE_COPY_RELOCS)
-    {
-      /* For the non-shared case, discard space for relocs against
-	 symbols which turn out to need copy relocs or are not
-	 dynamic.  Keep dynamic relocations for run-time function
-	 pointer initialization.  */
-
-      if ((!h->non_got_ref
-	   || eh->func_pointer_refcount > 0
-	   || (h->root.type == bfd_link_hash_undefweak
-	       && !resolved_to_zero))
-	  && ((h->def_dynamic
-	       && !h->def_regular)
-	      || (htab->elf.dynamic_sections_created
-		  && (h->root.type == bfd_link_hash_undefweak
-		      || h->root.type == bfd_link_hash_undefined))))
-	{
-	  /* Make sure this symbol is output as a dynamic symbol.
-	     Undefined weak syms won't yet be marked as dynamic.  */
-	  if (h->dynindx == -1
-	      && !h->forced_local
-	      && !resolved_to_zero)
-	    {
-	      if (! bfd_elf_link_record_dynamic_symbol (info, h))
-		return FALSE;
-	    }
-
-	  /* If that succeeded, we know we'll be keeping all the
-	     relocs.  */
-	  if (h->dynindx != -1)
-	    goto keep;
-	}
-
-      eh->dyn_relocs = NULL;
-      eh->func_pointer_refcount = 0;
-
-    keep: ;
-    }
-
-  /* Finally, allocate space.  */
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection *sreloc;
-
-      sreloc = elf_section_data (p->sec)->sreloc;
-
-      BFD_ASSERT (sreloc != NULL);
-      sreloc->size += p->count * sizeof (Elf32_External_Rel);
-    }
-
-  return TRUE;
-}
-
-/* Allocate space in .plt, .got and associated reloc sections for
-   local dynamic relocs.  */
-
-static bfd_boolean
-elf_i386_allocate_local_dynrelocs (void **slot, void *inf)
-{
-  struct elf_link_hash_entry *h
-    = (struct elf_link_hash_entry *) *slot;
-
-  if (h->type != STT_GNU_IFUNC
-      || !h->def_regular
-      || !h->ref_regular
-      || !h->forced_local
-      || h->root.type != bfd_link_hash_defined)
-    abort ();
-
-  return elf_i386_allocate_dynrelocs (h, inf);
-}
-
-/* Find any dynamic relocs that apply to read-only sections.  */
-
-static bfd_boolean
-elf_i386_readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
-{
-  struct elf_i386_link_hash_entry *eh;
-  struct elf_dyn_relocs *p;
-
-  /* Skip local IFUNC symbols. */
-  if (h->forced_local && h->type == STT_GNU_IFUNC)
-    return TRUE;
-
-  eh = (struct elf_i386_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
     {
-      asection *s = p->sec->output_section;
-
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	{
-	  struct bfd_link_info *info = (struct bfd_link_info *) inf;
-
-	  info->flags |= DF_TEXTREL;
-
-	  if ((info->warn_shared_textrel && bfd_link_pic (info))
-	      || info->error_textrel)
-	    /* xgettext:c-format */
-	    info->callbacks->einfo (_("%P: %B: warning: relocation against `%s' in readonly section `%A'\n"),
-				    p->sec->owner, h->root.root.string,
-				    p->sec);
-
-	  /* Not an error, just cut short the traversal.  */
-	  return FALSE;
-	}
-    }
-  return TRUE;
-}
-
-/* Convert load via the GOT slot to load immediate.  */
-
-static bfd_boolean
-elf_i386_convert_load (bfd *abfd, asection *sec,
-		       struct bfd_link_info *link_info)
-{
-  struct elf_i386_link_hash_table *htab;
-  Elf_Internal_Shdr *symtab_hdr;
-  Elf_Internal_Rela *internal_relocs;
-  Elf_Internal_Rela *irel, *irelend;
-  bfd_byte *contents;
-  bfd_boolean changed;
-  bfd_signed_vma *local_got_refcounts;
-
-  /* Don't even try to convert non-ELF outputs.  */
-  if (!is_elf_hash_table (link_info->hash))
-    return FALSE;
-
-  /* Nothing to do if there is no need or no output.  */
-  if ((sec->flags & (SEC_CODE | SEC_RELOC)) != (SEC_CODE | SEC_RELOC)
-      || sec->need_convert_load == 0
-      || bfd_is_abs_section (sec->output_section))
-    return TRUE;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-
-  /* Load the relocations for this section.  */
-  internal_relocs = (_bfd_elf_link_read_relocs
-		     (abfd, sec, NULL, (Elf_Internal_Rela *) NULL,
-		      link_info->keep_memory));
-  if (internal_relocs == NULL)
-    return FALSE;
-
-  changed = FALSE;
-  htab = elf_i386_hash_table (link_info);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  /* Get the section contents.  */
-  if (elf_section_data (sec)->this_hdr.contents != NULL)
-    contents = elf_section_data (sec)->this_hdr.contents;
-  else
-    {
-      if (!bfd_malloc_and_get_section (abfd, sec, &contents))
-	goto error_return;
-    }
-
-  irelend = internal_relocs + sec->reloc_count;
-  for (irel = internal_relocs; irel < irelend; irel++)
-    {
-      unsigned int r_type = ELF32_R_TYPE (irel->r_info);
-      unsigned int r_symndx;
-      struct elf_link_hash_entry *h;
-      bfd_boolean converted;
-
-      /* Don't convert R_386_GOT32 since we can't tell if it is applied
-	 to "mov $foo@GOT, %reg" which isn't a load via GOT.  */
-      if (r_type != R_386_GOT32X)
-	continue;
-
-      r_symndx = ELF32_R_SYM (irel->r_info);
-      if (r_symndx < symtab_hdr->sh_info)
-	h = elf_i386_get_local_sym_hash (htab, sec->owner,
-					 (const Elf_Internal_Rela *) irel,
-					 FALSE);
-      else
-	{
-	  h = elf_sym_hashes (abfd)[r_symndx - symtab_hdr->sh_info];
-	   while (h->root.type == bfd_link_hash_indirect
-		  || h->root.type == bfd_link_hash_warning)
-	     h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	}
-
-      /* STT_GNU_IFUNC must keep GOT32 relocations.  */
-      if (h != NULL && h->type == STT_GNU_IFUNC)
-	continue;
-
-      converted = FALSE;
-      if (!elf_i386_convert_load_reloc (abfd, symtab_hdr, contents,
-					irel, h, &converted, link_info))
-	goto error_return;
-
-      if (converted)
-	{
-	  changed = converted;
-	  if (h)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount -= 1;
-	    }
-	  else
-	    {
-	      if (local_got_refcounts != NULL
-		  && local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx] -= 1;
-	    }
-	}
-    }
-
-  if (contents != NULL
-      && elf_section_data (sec)->this_hdr.contents != contents)
-    {
-      if (!changed && !link_info->keep_memory)
+      if (!converted && !info->keep_memory)
 	free (contents);
-      else
-	{
-	  /* Cache the section contents for elf_link_input_bfd.  */
-	  elf_section_data (sec)->this_hdr.contents = contents;
-	}
-    }
-
-  if (elf_section_data (sec)->relocs != internal_relocs)
-    {
-      if (!changed)
-	free (internal_relocs);
-      else
-	elf_section_data (sec)->relocs = internal_relocs;
-    }
-
-  return TRUE;
-
- error_return:
-  if (contents != NULL
-      && elf_section_data (sec)->this_hdr.contents != contents)
-    free (contents);
-  if (internal_relocs != NULL
-      && elf_section_data (sec)->relocs != internal_relocs)
-    free (internal_relocs);
-  return FALSE;
-}
-
-/* Set the sizes of the dynamic sections.  */
-
-static bfd_boolean
-elf_i386_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
-{
-  struct elf_i386_link_hash_table *htab;
-  bfd *dynobj;
-  asection *s;
-  bfd_boolean relocs;
-  bfd *ibfd;
-
-  htab = elf_i386_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-  dynobj = htab->elf.dynobj;
-  if (dynobj == NULL)
-    abort ();
-
-  /* Set up .got offsets for local syms, and space for local dynamic
-     relocs.  */
-  for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next)
-    {
-      bfd_signed_vma *local_got;
-      bfd_signed_vma *end_local_got;
-      char *local_tls_type;
-      bfd_vma *local_tlsdesc_gotent;
-      bfd_size_type locsymcount;
-      Elf_Internal_Shdr *symtab_hdr;
-      asection *srel;
-
-      if (! is_i386_elf (ibfd))
-	continue;
-
-      for (s = ibfd->sections; s != NULL; s = s->next)
-	{
-	  struct elf_dyn_relocs *p;
-
-	  if (!elf_i386_convert_load (ibfd, s, info))
-	    return FALSE;
-
-	  for (p = ((struct elf_dyn_relocs *)
-		     elf_section_data (s)->local_dynrel);
-	       p != NULL;
-	       p = p->next)
-	    {
-	      if (!bfd_is_abs_section (p->sec)
-		  && bfd_is_abs_section (p->sec->output_section))
-		{
-		  /* Input section has been discarded, either because
-		     it is a copy of a linkonce section or due to
-		     linker script /DISCARD/, so we'll be discarding
-		     the relocs too.  */
-		}
-	      else if (get_elf_i386_backend_data (output_bfd)->is_vxworks
-		       && strcmp (p->sec->output_section->name,
-				  ".tls_vars") == 0)
-		{
-		  /* Relocations in vxworks .tls_vars sections are
-		     handled specially by the loader.  */
-		}
-	      else if (p->count != 0)
-		{
-		  srel = elf_section_data (p->sec)->sreloc;
-		  srel->size += p->count * sizeof (Elf32_External_Rel);
-		  if ((p->sec->output_section->flags & SEC_READONLY) != 0
-		      && (info->flags & DF_TEXTREL) == 0)
-		    {
-		      info->flags |= DF_TEXTREL;
-		      if ((info->warn_shared_textrel && bfd_link_pic (info))
-			  || info->error_textrel)
-			/* xgettext:c-format */
-			info->callbacks->einfo (_("%P: %B: warning: relocation in readonly section `%A'\n"),
-						p->sec->owner, p->sec);
-		    }
-		}
-	    }
-	}
-
-      local_got = elf_local_got_refcounts (ibfd);
-      if (!local_got)
-	continue;
-
-      symtab_hdr = &elf_symtab_hdr (ibfd);
-      locsymcount = symtab_hdr->sh_info;
-      end_local_got = local_got + locsymcount;
-      local_tls_type = elf_i386_local_got_tls_type (ibfd);
-      local_tlsdesc_gotent = elf_i386_local_tlsdesc_gotent (ibfd);
-      s = htab->elf.sgot;
-      srel = htab->elf.srelgot;
-      for (; local_got < end_local_got;
-	   ++local_got, ++local_tls_type, ++local_tlsdesc_gotent)
-	{
-	  *local_tlsdesc_gotent = (bfd_vma) -1;
-	  if (*local_got > 0)
-	    {
-	      if (GOT_TLS_GDESC_P (*local_tls_type))
-		{
-		  *local_tlsdesc_gotent = htab->elf.sgotplt->size
-		    - elf_i386_compute_jump_table_size (htab);
-		  htab->elf.sgotplt->size += 8;
-		  *local_got = (bfd_vma) -2;
-		}
-	      if (! GOT_TLS_GDESC_P (*local_tls_type)
-		  || GOT_TLS_GD_P (*local_tls_type))
-		{
-		  *local_got = s->size;
-		  s->size += 4;
-		  if (GOT_TLS_GD_P (*local_tls_type)
-		      || *local_tls_type == GOT_TLS_IE_BOTH)
-		    s->size += 4;
-		}
-	      if (bfd_link_pic (info)
-		  || GOT_TLS_GD_ANY_P (*local_tls_type)
-		  || (*local_tls_type & GOT_TLS_IE))
-		{
-		  if (*local_tls_type == GOT_TLS_IE_BOTH)
-		    srel->size += 2 * sizeof (Elf32_External_Rel);
-		  else if (GOT_TLS_GD_P (*local_tls_type)
-			   || ! GOT_TLS_GDESC_P (*local_tls_type))
-		    srel->size += sizeof (Elf32_External_Rel);
-		  if (GOT_TLS_GDESC_P (*local_tls_type))
-		    htab->elf.srelplt->size += sizeof (Elf32_External_Rel);
-		}
-	    }
-	  else
-	    *local_got = (bfd_vma) -1;
-	}
-    }
-
-  if (htab->tls_ldm_got.refcount > 0)
-    {
-      /* Allocate 2 got entries and 1 dynamic reloc for R_386_TLS_LDM
-	 relocs.  */
-      htab->tls_ldm_got.offset = htab->elf.sgot->size;
-      htab->elf.sgot->size += 8;
-      htab->elf.srelgot->size += sizeof (Elf32_External_Rel);
-    }
-  else
-    htab->tls_ldm_got.offset = -1;
-
-  /* Allocate global sym .plt and .got entries, and space for global
-     sym dynamic relocs.  */
-  elf_link_hash_traverse (&htab->elf, elf_i386_allocate_dynrelocs, info);
-
-  /* Allocate .plt and .got entries, and space for local symbols.  */
-  htab_traverse (htab->loc_hash_table,
-		 elf_i386_allocate_local_dynrelocs,
-		 info);
-
-  /* For every jump slot reserved in the sgotplt, reloc_count is
-     incremented.  However, when we reserve space for TLS descriptors,
-     it's not incremented, so in order to compute the space reserved
-     for them, it suffices to multiply the reloc count by the jump
-     slot size.
-
-     PR ld/13302: We start next_irelative_index at the end of .rela.plt
-     so that R_386_IRELATIVE entries come last.  */
-  if (htab->elf.srelplt)
-    {
-      htab->next_tls_desc_index = htab->elf.srelplt->reloc_count;
-      htab->sgotplt_jump_table_size = htab->next_tls_desc_index * 4;
-      htab->next_irelative_index = htab->elf.srelplt->reloc_count - 1;
-    }
-  else if (htab->elf.irelplt)
-    htab->next_irelative_index = htab->elf.irelplt->reloc_count - 1;
-
-
-  if (htab->elf.sgotplt)
-    {
-      /* Don't allocate .got.plt section if there are no GOT nor PLT
-         entries and there is no reference to _GLOBAL_OFFSET_TABLE_.  */
-      if ((htab->elf.hgot == NULL
-	   || !htab->elf.hgot->ref_regular_nonweak)
-	  && (htab->elf.sgotplt->size
-	      == get_elf_backend_data (output_bfd)->got_header_size)
-	  && (htab->elf.splt == NULL
-	      || htab->elf.splt->size == 0)
-	  && (htab->elf.sgot == NULL
-	      || htab->elf.sgot->size == 0)
-	  && (htab->elf.iplt == NULL
-	      || htab->elf.iplt->size == 0)
-	  && (htab->elf.igotplt == NULL
-	      || htab->elf.igotplt->size == 0))
-	htab->elf.sgotplt->size = 0;
-    }
-
-  if (_bfd_elf_eh_frame_present (info))
-    {
-      if (htab->plt_eh_frame != NULL
-	  && htab->elf.splt != NULL
-	  && htab->elf.splt->size != 0
-	  && !bfd_is_abs_section (htab->elf.splt->output_section))
-	htab->plt_eh_frame->size
-	  = get_elf_i386_backend_data (output_bfd)->plt->eh_frame_plt_size;
-
-      if (htab->plt_got_eh_frame != NULL
-	  && htab->plt_got != NULL
-	  && htab->plt_got->size != 0
-	  && !bfd_is_abs_section (htab->plt_got->output_section))
-	htab->plt_got_eh_frame->size
-	  = get_elf_i386_backend_data (output_bfd)->plt->eh_frame_plt_got_size;
-    }
-
-  /* We now have determined the sizes of the various dynamic sections.
-     Allocate memory for them.  */
-  relocs = FALSE;
-  for (s = dynobj->sections; s != NULL; s = s->next)
-    {
-      bfd_boolean strip_section = TRUE;
-
-      if ((s->flags & SEC_LINKER_CREATED) == 0)
-	continue;
-
-      if (s == htab->elf.splt
-	  || s == htab->elf.sgot)
-	{
-	  /* Strip this section if we don't need it; see the
-	     comment below.  */
-	  /* We'd like to strip these sections if they aren't needed, but if
-	     we've exported dynamic symbols from them we must leave them.
-	     It's too late to tell BFD to get rid of the symbols.  */
-
-	  if (htab->elf.hplt != NULL)
-	    strip_section = FALSE;
-	}
-      else if (s == htab->elf.sgotplt
-	       || s == htab->elf.iplt
-	       || s == htab->elf.igotplt
-	       || s == htab->plt_got
-	       || s == htab->plt_eh_frame
-	       || s == htab->plt_got_eh_frame
-	       || s == htab->elf.sdynbss
-	       || s == htab->elf.sdynrelro)
-	{
-	  /* Strip these too.  */
-	}
-      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rel"))
-	{
-	  if (s->size != 0
-	      && s != htab->elf.srelplt
-	      && s != htab->srelplt2)
-	    relocs = TRUE;
-
-	  /* We use the reloc_count field as a counter if we need
-	     to copy relocs into the output file.  */
-	  s->reloc_count = 0;
-	}
-      else
-	{
-	  /* It's not one of our sections, so don't allocate space.  */
-	  continue;
-	}
-
-      if (s->size == 0)
-	{
-	  /* If we don't need this section, strip it from the
-	     output file.  This is mostly to handle .rel.bss and
-	     .rel.plt.  We must create both sections in
-	     create_dynamic_sections, because they must be created
-	     before the linker maps input sections to output
-	     sections.  The linker does that before
-	     adjust_dynamic_symbol is called, and it is that
-	     function which decides whether anything needs to go
-	     into these sections.  */
-	  if (strip_section)
-	    s->flags |= SEC_EXCLUDE;
-	  continue;
-	}
-
-      if ((s->flags & SEC_HAS_CONTENTS) == 0)
-	continue;
-
-      /* Allocate memory for the section contents.  We use bfd_zalloc
-	 here in case unused entries are not reclaimed before the
-	 section's contents are written out.  This should not happen,
-	 but this way if it does, we get a R_386_NONE reloc instead
-	 of garbage.  */
-      s->contents = (unsigned char *) bfd_zalloc (dynobj, s->size);
-      if (s->contents == NULL)
-	return FALSE;
-    }
-
-  if (htab->plt_eh_frame != NULL
-      && htab->plt_eh_frame->contents != NULL)
-    {
-      memcpy (htab->plt_eh_frame->contents,
-	      get_elf_i386_backend_data (output_bfd)->plt->eh_frame_plt,
-	      htab->plt_eh_frame->size);
-      bfd_put_32 (dynobj, htab->elf.splt->size,
-		  htab->plt_eh_frame->contents + PLT_FDE_LEN_OFFSET);
-    }
-
-  if (htab->plt_got_eh_frame != NULL
-      && htab->plt_got_eh_frame->contents != NULL)
-    {
-      memcpy (htab->plt_got_eh_frame->contents,
-	      get_elf_i386_backend_data (output_bfd)->plt->eh_frame_plt_got,
-	      htab->plt_got_eh_frame->size);
-      bfd_put_32 (dynobj, htab->plt_got->size,
-		  (htab->plt_got_eh_frame->contents
-		   + PLT_FDE_LEN_OFFSET));
-    }
-
-  if (htab->elf.dynamic_sections_created)
-    {
-      /* Add some entries to the .dynamic section.  We fill in the
-	 values later, in elf_i386_finish_dynamic_sections, but we
-	 must add the entries now so that we get the correct size for
-	 the .dynamic section.  The DT_DEBUG entry is filled in by the
-	 dynamic linker and used by the debugger.  */
-#define add_dynamic_entry(TAG, VAL) \
-  _bfd_elf_add_dynamic_entry (info, TAG, VAL)
-
-      if (bfd_link_executable (info))
-	{
-	  if (!add_dynamic_entry (DT_DEBUG, 0))
-	    return FALSE;
-	}
-
-      if (htab->elf.splt->size != 0)
-	{
-	  /* DT_PLTGOT is used by prelink even if there is no PLT
-	     relocation.  */
-	  if (!add_dynamic_entry (DT_PLTGOT, 0))
-	    return FALSE;
-
-	  if (htab->elf.srelplt->size != 0)
-	    {
-	      if (!add_dynamic_entry (DT_PLTRELSZ, 0)
-		  || !add_dynamic_entry (DT_PLTREL, DT_REL)
-		  || !add_dynamic_entry (DT_JMPREL, 0))
-		return FALSE;
-	    }
-	}
-
-      if (relocs)
-	{
-	  if (!add_dynamic_entry (DT_REL, 0)
-	      || !add_dynamic_entry (DT_RELSZ, 0)
-	      || !add_dynamic_entry (DT_RELENT, sizeof (Elf32_External_Rel)))
-	    return FALSE;
-
-	  /* If any dynamic relocs apply to a read-only section,
-	     then we need a DT_TEXTREL entry.  */
-	  if ((info->flags & DF_TEXTREL) == 0)
-	    elf_link_hash_traverse (&htab->elf,
-				    elf_i386_readonly_dynrelocs, info);
-
-	  if ((info->flags & DF_TEXTREL) != 0)
-	    {
-	      if (htab->readonly_dynrelocs_against_ifunc)
-		{
-		  info->callbacks->einfo
-		    (_("%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n"));
-		  bfd_set_error (bfd_error_bad_value);
-		  return FALSE;
-		}
-
-	      if (!add_dynamic_entry (DT_TEXTREL, 0))
-		return FALSE;
-	    }
-	}
-      if (get_elf_i386_backend_data (output_bfd)->is_vxworks
-	  && !elf_vxworks_add_dynamic_entries (output_bfd, info))
-	return FALSE;
-    }
-#undef add_dynamic_entry
-
-  return TRUE;
-}
-
-static bfd_boolean
-elf_i386_always_size_sections (bfd *output_bfd,
-			       struct bfd_link_info *info)
-{
-  asection *tls_sec = elf_hash_table (info)->tls_sec;
-
-  if (tls_sec)
-    {
-      struct elf_link_hash_entry *tlsbase;
-
-      tlsbase = elf_link_hash_lookup (elf_hash_table (info),
-				      "_TLS_MODULE_BASE_",
-				      FALSE, FALSE, FALSE);
-
-      if (tlsbase && tlsbase->type == STT_TLS)
-	{
-	  struct elf_i386_link_hash_table *htab;
-	  struct bfd_link_hash_entry *bh = NULL;
-	  const struct elf_backend_data *bed
-	    = get_elf_backend_data (output_bfd);
-
-	  htab = elf_i386_hash_table (info);
-	  if (htab == NULL)
-	    return FALSE;
-
-	  if (!(_bfd_generic_link_add_one_symbol
-		(info, output_bfd, "_TLS_MODULE_BASE_", BSF_LOCAL,
-		 tls_sec, 0, NULL, FALSE,
-		 bed->collect, &bh)))
-	    return FALSE;
-
-	  htab->tls_module_base = bh;
-
-	  tlsbase = (struct elf_link_hash_entry *)bh;
-	  tlsbase->def_regular = 1;
-	  tlsbase->other = STV_HIDDEN;
-	  tlsbase->root.linker_def = 1;
-	  (*bed->elf_backend_hide_symbol) (info, tlsbase, TRUE);
+      else
+	{
+	  /* Cache the section contents for elf_link_input_bfd if any
+	     load is converted or --no-keep-memory isn't used.  */
+	  elf_section_data (sec)->this_hdr.contents = contents;
 	}
     }
 
+  /* Cache relocations if any load is converted.  */
+  if (elf_section_data (sec)->relocs != relocs && converted)
+    elf_section_data (sec)->relocs = (Elf_Internal_Rela *) relocs;
+
   return TRUE;
+
+error_return:
+  if (elf_section_data (sec)->this_hdr.contents != contents)
+    free (contents);
+  sec->check_relocs_failed = 1;
+  return FALSE;
 }
 
 /* Set the correct type for an x86 ELF section.  We do this by the
@@ -3694,44 +1947,6 @@ elf_i386_fake_sections (bfd *abfd ATTRIB
   return TRUE;
 }
 
-/* _TLS_MODULE_BASE_ needs to be treated especially when linking
-   executables.  Rather than setting it to the beginning of the TLS
-   section, we have to set it to the end.    This function may be called
-   multiple times, it is idempotent.  */
-
-static void
-elf_i386_set_tls_module_base (struct bfd_link_info *info)
-{
-  struct elf_i386_link_hash_table *htab;
-  struct bfd_link_hash_entry *base;
-
-  if (!bfd_link_executable (info))
-    return;
-
-  htab = elf_i386_hash_table (info);
-  if (htab == NULL)
-    return;
-
-  base = htab->tls_module_base;
-  if (base == NULL)
-    return;
-
-  base->u.def.value = htab->elf.tls_size;
-}
-
-/* Return the base VMA address which should be subtracted from real addresses
-   when resolving @dtpoff relocation.
-   This is PT_TLS segment p_vaddr.  */
-
-static bfd_vma
-elf_i386_dtpoff_base (struct bfd_link_info *info)
-{
-  /* If tls_sec is NULL, we should have signalled an error already.  */
-  if (elf_hash_table (info)->tls_sec == NULL)
-    return 0;
-  return elf_hash_table (info)->tls_sec->vma;
-}
-
 /* Return the relocation value for @tpoff relocation
    if STT_TLS virtual address is ADDRESS.  */
 
@@ -3763,7 +1978,7 @@ elf_i386_relocate_section (bfd *output_b
 			   Elf_Internal_Sym *local_syms,
 			   asection **local_sections)
 {
-  struct elf_i386_link_hash_table *htab;
+  struct elf_x86_link_hash_table *htab;
   Elf_Internal_Shdr *symtab_hdr;
   struct elf_link_hash_entry **sym_hashes;
   bfd_vma *local_got_offsets;
@@ -3774,39 +1989,40 @@ elf_i386_relocate_section (bfd *output_b
   bfd_boolean is_vxworks_tls;
   unsigned plt_entry_size;
 
-  BFD_ASSERT (is_i386_elf (input_bfd));
-
   /* Skip if check_relocs failed.  */
   if (input_section->check_relocs_failed)
     return FALSE;
 
-  htab = elf_i386_hash_table (info);
+  htab = elf_x86_hash_table (info, I386_ELF_DATA);
   if (htab == NULL)
     return FALSE;
+
+  BFD_ASSERT (is_x86_elf (input_bfd, htab));
+
   symtab_hdr = &elf_symtab_hdr (input_bfd);
   sym_hashes = elf_sym_hashes (input_bfd);
   local_got_offsets = elf_local_got_offsets (input_bfd);
-  local_tlsdesc_gotents = elf_i386_local_tlsdesc_gotent (input_bfd);
+  local_tlsdesc_gotents = elf_x86_local_tlsdesc_gotent (input_bfd);
   /* We have to handle relocations in vxworks .tls_vars sections
      specially, because the dynamic loader is 'weird'.  */
-  is_vxworks_tls = (get_elf_i386_backend_data (output_bfd)->is_vxworks
-                    && bfd_link_pic (info)
+  is_vxworks_tls = (htab->target_os == is_vxworks
+		    && bfd_link_pic (info)
 		    && !strcmp (input_section->output_section->name,
 				".tls_vars"));
 
-  elf_i386_set_tls_module_base (info);
+  _bfd_x86_elf_set_tls_module_base (info);
 
-  plt_entry_size = GET_PLT_ENTRY_SIZE (output_bfd);
+  plt_entry_size = htab->plt.plt_entry_size;
 
   rel = wrel = relocs;
   relend = relocs + input_section->reloc_count;
   for (; rel < relend; wrel++, rel++)
     {
-      unsigned int r_type;
+      unsigned int r_type, r_type_tls;
       reloc_howto_type *howto;
       unsigned long r_symndx;
       struct elf_link_hash_entry *h;
-      struct elf_i386_link_hash_entry *eh;
+      struct elf_x86_link_hash_entry *eh;
       Elf_Internal_Sym *sym;
       asection *sec;
       bfd_vma off, offplt, plt_offset;
@@ -3818,6 +2034,7 @@ elf_i386_relocate_section (bfd *output_b
       bfd_vma st_size;
       asection *resolved_plt;
       bfd_boolean resolved_to_zero;
+      bfd_boolean relative_reloc;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       if (r_type == R_386_GNU_VTINHERIT
@@ -3833,14 +2050,8 @@ elf_i386_relocate_section (bfd *output_b
 	      >= R_386_ext - R_386_standard)
 	  && ((indx = r_type - R_386_tls_offset) - R_386_ext
 	      >= R_386_ext2 - R_386_ext))
-	{
-	  _bfd_error_handler
-	    /* xgettext:c-format */
-	    (_("%B: unrecognized relocation (0x%x) in section `%A'"),
-	     input_bfd, r_type, input_section);
-	  bfd_set_error (bfd_error_bad_value);
-	  return FALSE;
-	}
+	return _bfd_unrecognized_reloc (input_bfd, input_section, r_type);
+
       howto = elf_howto_table + indx;
 
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -3930,8 +2141,8 @@ elf_i386_relocate_section (bfd *output_b
 		   && ELF32_ST_TYPE (sym->st_info) == STT_GNU_IFUNC)
 	    {
 	      /* Relocate against local STT_GNU_IFUNC symbol.  */
-	      h = elf_i386_get_local_sym_hash (htab, input_bfd, rel,
-					       FALSE);
+	      h = _bfd_elf_x86_get_local_sym_hash (htab, input_bfd, rel,
+						   FALSE);
 	      if (h == NULL)
 		abort ();
 
@@ -3977,13 +2188,15 @@ elf_i386_relocate_section (bfd *output_b
 	  continue;
 	}
 
+      eh = (struct elf_x86_link_hash_entry *) h;
+
       /* Since STT_GNU_IFUNC symbol must go through PLT, we handle
 	 it here if it is defined in a non-shared object.  */
       if (h != NULL
 	  && h->type == STT_GNU_IFUNC
 	  && h->def_regular)
 	{
-	  asection *plt, *gotplt, *base_got;
+	  asection *gotplt, *base_got;
 	  bfd_vma plt_index;
 	  const char *name;
 
@@ -4000,12 +2213,22 @@ elf_i386_relocate_section (bfd *output_b
 	  /* STT_GNU_IFUNC symbol must go through PLT.  */
 	  if (htab->elf.splt != NULL)
 	    {
-	      plt = htab->elf.splt;
+	      if (htab->plt_second != NULL)
+		{
+		  resolved_plt = htab->plt_second;
+		  plt_offset = eh->plt_second.offset;
+		}
+	      else
+		{
+		  resolved_plt = htab->elf.splt;
+		  plt_offset = h->plt.offset;
+		}
 	      gotplt = htab->elf.sgotplt;
 	    }
 	  else
 	    {
-	      plt = htab->elf.iplt;
+	      resolved_plt = htab->elf.iplt;
+	      plt_offset = h->plt.offset;
 	      gotplt = htab->elf.igotplt;
 	    }
 
@@ -4033,7 +2256,8 @@ elf_i386_relocate_section (bfd *output_b
 
 		  if (htab->elf.splt != NULL)
 		    {
-		      plt_index = h->plt.offset / plt_entry_size - 1;
+		      plt_index = (h->plt.offset / plt_entry_size
+				   - htab->plt.has_plt0);
 		      off = (plt_index + 3) * 4;
 		      base_got = htab->elf.sgotplt;
 		    }
@@ -4104,8 +2328,8 @@ elf_i386_relocate_section (bfd *output_b
 	      goto bad_ifunc_reloc;
 	    }
 
-	  relocation = (plt->output_section->vma
-			+ plt->output_offset + h->plt.offset);
+	  relocation = (resolved_plt->output_section->vma
+			+ resolved_plt->output_offset + plt_offset);
 
 	  switch (r_type)
 	    {
@@ -4149,10 +2373,12 @@ do_ifunc_pointer:
 				     + input_section->output_offset
 				     + offset);
 
-		  if (h->dynindx == -1
-		      || h->forced_local
-		      || bfd_link_executable (info))
+		  if (POINTER_LOCAL_IFUNC_P (info, h))
 		    {
+		      info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"),
+					      h->root.root.string,
+					      h->root.u.def.section->owner);
+
 		      /* This symbol is resolved locally.  */
 		      outrel.r_info = ELF32_R_INFO (0, R_386_IRELATIVE);
 		      bfd_put_32 (output_bfd,
@@ -4195,11 +2421,8 @@ do_ifunc_pointer:
 	    }
 	}
 
-      eh = (struct elf_i386_link_hash_entry *) h;
       resolved_to_zero = (eh != NULL
-			  && UNDEFINED_WEAK_RESOLVED_TO_ZERO (info,
-							      eh->has_got_reloc,
-							      eh));
+			  && UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh));
 
       switch (r_type)
 	{
@@ -4246,7 +2469,8 @@ do_ifunc_pointer:
 			  + (h->got.offset & ~1) - offplt);
 	  else
 	    /* Use GOTPLT entry.  */
-	    relocation = (h->plt.offset / plt_entry_size - 1 + 3) * 4;
+	    relocation = (h->plt.offset / plt_entry_size
+			  - htab->plt.has_plt0 + 3) * 4;
 
 	  if (!bfd_link_pic (info))
 	    {
@@ -4268,28 +2492,16 @@ r_386_got32:
 	  if (htab->elf.sgot == NULL)
 	    abort ();
 
+	  relative_reloc = FALSE;
 	  if (h != NULL)
 	    {
-	      bfd_boolean dyn;
-
 	      off = h->got.offset;
-	      dyn = htab->elf.dynamic_sections_created;
-	      if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
-						     bfd_link_pic (info),
-						     h)
-		  || (bfd_link_pic (info)
-		      && SYMBOL_REFERENCES_LOCAL (info, h))
-		  || (ELF_ST_VISIBILITY (h->other)
-		      && h->root.type == bfd_link_hash_undefweak))
-		{
-		  /* This is actually a static link, or it is a
-		     -Bsymbolic link and the symbol is defined
-		     locally, or the symbol was forced to be local
-		     because of a version file.  We must initialize
-		     this entry in the global offset table.  Since the
-		     offset must always be a multiple of 4, we use the
-		     least significant bit to record whether we have
-		     initialized it already.
+	      if (RESOLVED_LOCALLY_P (info, h, htab))
+		{
+		  /* We must initialize this entry in the global offset
+		     table.  Since the offset must always be a multiple
+		     of 4, we use the least significant bit to record
+		     whether we have initialized it already.
 
 		     When doing a dynamic link, we create a .rel.got
 		     relocation entry to initialize the value.  This
@@ -4301,6 +2513,14 @@ r_386_got32:
 		      bfd_put_32 (output_bfd, relocation,
 				  htab->elf.sgot->contents + off);
 		      h->got.offset |= 1;
+
+		      if (GENERATE_RELATIVE_RELOC_P (info, h))
+			{
+			  /* PR ld/21402: If this symbol isn't dynamic
+			     in PIC, generate R_386_RELATIVE here.  */
+			  eh->no_finish_dynamic_symbol = 1;
+			  relative_reloc = TRUE;
+			}
 		    }
 		}
 	      else
@@ -4322,25 +2542,27 @@ r_386_got32:
 		{
 		  bfd_put_32 (output_bfd, relocation,
 			      htab->elf.sgot->contents + off);
+		  local_got_offsets[r_symndx] |= 1;
 
 		  if (bfd_link_pic (info))
-		    {
-		      asection *s;
-		      Elf_Internal_Rela outrel;
+		    relative_reloc = TRUE;
+		}
+	    }
 
-		      s = htab->elf.srelgot;
-		      if (s == NULL)
-			abort ();
-
-		      outrel.r_offset = (htab->elf.sgot->output_section->vma
-					 + htab->elf.sgot->output_offset
-					 + off);
-		      outrel.r_info = ELF32_R_INFO (0, R_386_RELATIVE);
-		      elf_append_rel (output_bfd, s, &outrel);
-		    }
+	  if (relative_reloc)
+	    {
+	      asection *s;
+	      Elf_Internal_Rela outrel;
 
-		  local_got_offsets[r_symndx] |= 1;
-		}
+	      s = htab->elf.srelgot;
+	      if (s == NULL)
+		abort ();
+
+	      outrel.r_offset = (htab->elf.sgot->output_section->vma
+				 + htab->elf.sgot->output_offset
+				 + off);
+	      outrel.r_info = ELF32_R_INFO (0, R_386_RELATIVE);
+	      elf_append_rel (output_bfd, s, &outrel);
 	    }
 
 	  if (off >= (bfd_vma) -2)
@@ -4424,7 +2646,7 @@ disallow_got32:
 		  bfd_set_error (bfd_error_bad_value);
 		  return FALSE;
 		}
-	      else if (!SYMBOL_REFERENCES_LOCAL (info, h)
+	      else if (!SYMBOL_REFERENCES_LOCAL_P (info, h)
 		       && (h->type == STT_FUNC
 			   || h->type == STT_OBJECT)
 		       && ELF_ST_VISIBILITY (h->other) == STV_PROTECTED)
@@ -4478,8 +2700,16 @@ disallow_got32:
 
 	  if (h->plt.offset != (bfd_vma) -1)
 	    {
-	      resolved_plt = htab->elf.splt;
-	      plt_offset = h->plt.offset;
+	      if (htab->plt_second != NULL)
+		{
+		  resolved_plt = htab->plt_second;
+		  plt_offset = eh->plt_second.offset;
+		}
+	      else
+		{
+		  resolved_plt = htab->elf.splt;
+		  plt_offset = h->plt.offset;
+		}
 	    }
 	  else
 	    {
@@ -4504,29 +2734,9 @@ disallow_got32:
 	      || is_vxworks_tls)
 	    break;
 
-	  /* Copy dynamic function pointer relocations.  Don't generate
-	     dynamic relocations against resolved undefined weak symbols
-	     in PIE, except for R_386_PC32.  */
-	  if ((bfd_link_pic (info)
-	       && (h == NULL
-		   || ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-			&& (!resolved_to_zero
-			    || r_type == R_386_PC32))
-		       || h->root.type != bfd_link_hash_undefweak))
-	       && ((r_type != R_386_PC32 && r_type != R_386_SIZE32)
-		   || !SYMBOL_CALLS_LOCAL (info, h)))
-	      || (ELIMINATE_COPY_RELOCS
-		  && !bfd_link_pic (info)
-		  && h != NULL
-		  && h->dynindx != -1
-		  && (!h->non_got_ref
-		      || eh->func_pointer_refcount > 0
-		      || (h->root.type == bfd_link_hash_undefweak
-			  && !resolved_to_zero))
-		  && ((h->def_dynamic && !h->def_regular)
-		      /* Undefined weak symbol is bound locally when
-			 PIC is false.  */
-		      || h->root.type == bfd_link_hash_undefweak)))
+	  if (GENERATE_DYNAMIC_RELOCATION_P (info, eh, r_type,
+					     FALSE, resolved_to_zero,
+					     (r_type == R_386_PC32)))
 	    {
 	      Elf_Internal_Rela outrel;
 	      bfd_boolean skip, relocate;
@@ -4551,12 +2761,7 @@ disallow_got32:
 
 	      if (skip)
 		memset (&outrel, 0, sizeof outrel);
-	      else if (h != NULL
-		       && h->dynindx != -1
-		       && (r_type == R_386_PC32
-			   || !(bfd_link_executable (info)
-				|| SYMBOLIC_BIND (info, h))
-			   || !h->def_regular))
+	      else if (COPY_INPUT_RELOC_P (info, h, r_type))
 		outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
 	      else
 		{
@@ -4608,23 +2813,24 @@ disallow_got32:
 	case R_386_TLS_GOTIE:
 	  tls_type = GOT_UNKNOWN;
 	  if (h == NULL && local_got_offsets)
-	    tls_type = elf_i386_local_got_tls_type (input_bfd) [r_symndx];
+	    tls_type = elf_x86_local_got_tls_type (input_bfd) [r_symndx];
 	  else if (h != NULL)
-	    tls_type = elf_i386_hash_entry(h)->tls_type;
+	    tls_type = elf_x86_hash_entry(h)->tls_type;
 	  if (tls_type == GOT_TLS_IE)
 	    tls_type = GOT_TLS_IE_NEG;
 
+	   r_type_tls = r_type;
 	  if (! elf_i386_tls_transition (info, input_bfd,
 					 input_section, contents,
 					 symtab_hdr, sym_hashes,
-					 &r_type, tls_type, rel,
+					 &r_type_tls, tls_type, rel,
 					 relend, h, r_symndx, TRUE))
 	    return FALSE;
 
-	  if (r_type == R_386_TLS_LE_32)
+	  if (r_type_tls == R_386_TLS_LE_32)
 	    {
 	      BFD_ASSERT (! unresolved_reloc);
-	      if (ELF32_R_TYPE (rel->r_info) == R_386_TLS_GD)
+	      if (r_type == R_386_TLS_GD)
 		{
 		  unsigned int type;
 		  bfd_vma roff;
@@ -4667,7 +2873,7 @@ disallow_got32:
 		  wrel++;
 		  continue;
 		}
-	      else if (ELF32_R_TYPE (rel->r_info) == R_386_TLS_GOTDESC)
+	      else if (r_type == R_386_TLS_GOTDESC)
 		{
 		  /* GDesc -> LE transition.
 		     It's originally something like:
@@ -4692,7 +2898,7 @@ disallow_got32:
 			      contents + roff);
 		  continue;
 		}
-	      else if (ELF32_R_TYPE (rel->r_info) == R_386_TLS_DESC_CALL)
+	      else if (r_type == R_386_TLS_DESC_CALL)
 		{
 		  /* GDesc -> LE transition.
 		     It's originally:
@@ -4707,7 +2913,7 @@ disallow_got32:
 		  bfd_put_8 (output_bfd, 0x90, contents + roff + 1);
 		  continue;
 		}
-	      else if (ELF32_R_TYPE (rel->r_info) == R_386_TLS_IE)
+	      else if (r_type == R_386_TLS_IE)
 		{
 		  unsigned int val;
 
@@ -4801,7 +3007,7 @@ disallow_got32:
 		    }
 		  else
 		    BFD_FAIL ();
-		  if (ELF32_R_TYPE (rel->r_info) == R_386_TLS_GOTIE)
+		  if (r_type == R_386_TLS_GOTIE)
 		    bfd_put_32 (output_bfd, -elf_i386_tpoff (info, relocation),
 				contents + rel->r_offset);
 		  else
@@ -4817,7 +3023,7 @@ disallow_got32:
 	  if (h != NULL)
 	    {
 	      off = h->got.offset;
-	      offplt = elf_i386_hash_entry (h)->tlsdesc_got;
+	      offplt = elf_x86_hash_entry (h)->tlsdesc_got;
 	    }
 	  else
 	    {
@@ -4862,7 +3068,7 @@ disallow_got32:
 		    {
 		      BFD_ASSERT (! unresolved_reloc);
 		      bfd_put_32 (output_bfd,
-				  relocation - elf_i386_dtpoff_base (info),
+				  relocation - _bfd_x86_elf_dtpoff_base (info),
 				  htab->elf.sgotplt->contents + offplt
 				  + htab->sgotplt_jump_table_size + 4);
 		    }
@@ -4890,11 +3096,11 @@ disallow_got32:
 
 	      if (dr_type == R_386_TLS_TPOFF && indx == 0)
 		bfd_put_32 (output_bfd,
-			    relocation - elf_i386_dtpoff_base (info),
+			    relocation - _bfd_x86_elf_dtpoff_base (info),
 			    htab->elf.sgot->contents + off);
 	      else if (dr_type == R_386_TLS_TPOFF32 && indx == 0)
 		bfd_put_32 (output_bfd,
-			    elf_i386_dtpoff_base (info) - relocation,
+			    _bfd_x86_elf_dtpoff_base (info) - relocation,
 			    htab->elf.sgot->contents + off);
 	      else if (dr_type != R_386_TLS_DESC)
 		bfd_put_32 (output_bfd, 0,
@@ -4907,9 +3113,9 @@ disallow_got32:
 		{
 		  if (indx == 0)
 		    {
-	    	      BFD_ASSERT (! unresolved_reloc);
+		      BFD_ASSERT (! unresolved_reloc);
 		      bfd_put_32 (output_bfd,
-				  relocation - elf_i386_dtpoff_base (info),
+				  relocation - _bfd_x86_elf_dtpoff_base (info),
 				  htab->elf.sgot->contents + off + 4);
 		    }
 		  else
@@ -4926,7 +3132,7 @@ disallow_got32:
 		{
 		  bfd_put_32 (output_bfd,
 			      (indx == 0
-			       ? relocation - elf_i386_dtpoff_base (info)
+			       ? relocation - _bfd_x86_elf_dtpoff_base (info)
 			       : 0),
 			      htab->elf.sgot->contents + off + 4);
 		  outrel.r_info = ELF32_R_INFO (indx, R_386_TLS_TPOFF);
@@ -4944,13 +3150,13 @@ disallow_got32:
 	  if (off >= (bfd_vma) -2
 	      && ! GOT_TLS_GDESC_P (tls_type))
 	    abort ();
-	  if (r_type == R_386_TLS_GOTDESC
-	      || r_type == R_386_TLS_DESC_CALL)
+	  if (r_type_tls == R_386_TLS_GOTDESC
+	      || r_type_tls == R_386_TLS_DESC_CALL)
 	    {
 	      relocation = htab->sgotplt_jump_table_size + offplt;
 	      unresolved_reloc = FALSE;
 	    }
-	  else if (r_type == ELF32_R_TYPE (rel->r_info))
+	  else if (r_type_tls == r_type)
 	    {
 	      bfd_vma g_o_t = htab->elf.sgotplt->output_section->vma
 			      + htab->elf.sgotplt->output_offset;
@@ -4963,7 +3169,7 @@ disallow_got32:
 		relocation += g_o_t;
 	      unresolved_reloc = FALSE;
 	    }
-	  else if (ELF32_R_TYPE (rel->r_info) == R_386_TLS_GD)
+	  else if (r_type == R_386_TLS_GD)
 	    {
 	      unsigned int val, type;
 	      bfd_vma roff;
@@ -5019,7 +3225,7 @@ disallow_got32:
 	      wrel++;
 	      continue;
 	    }
-	  else if (ELF32_R_TYPE (rel->r_info) == R_386_TLS_GOTDESC)
+	  else if (r_type == R_386_TLS_GOTDESC)
 	    {
 	      /* GDesc -> IE transition.
 		 It's originally something like:
@@ -5058,7 +3264,7 @@ disallow_got32:
 			  contents + roff);
 	      continue;
 	    }
-	  else if (ELF32_R_TYPE (rel->r_info) == R_386_TLS_DESC_CALL)
+	  else if (r_type == R_386_TLS_DESC_CALL)
 	    {
 	      /* GDesc -> IE transition.
 		 It's originally:
@@ -5137,7 +3343,7 @@ disallow_got32:
 	  if (htab->elf.sgot == NULL)
 	    abort ();
 
-	  off = htab->tls_ldm_got.offset;
+	  off = htab->tls_ld_or_ldm_got.offset;
 	  if (off & 1)
 	    off &= ~1;
 	  else
@@ -5156,7 +3362,7 @@ disallow_got32:
 			  htab->elf.sgot->contents + off + 4);
 	      outrel.r_info = ELF32_R_INFO (0, R_386_TLS_DTPMOD32);
 	      elf_append_rel (output_bfd, htab->elf.srelgot, &outrel);
-	      htab->tls_ldm_got.offset |= 1;
+	      htab->tls_ld_or_ldm_got.offset |= 1;
 	    }
 	  relocation = htab->elf.sgot->output_section->vma
 		       + htab->elf.sgot->output_offset + off
@@ -5168,7 +3374,7 @@ disallow_got32:
 	case R_386_TLS_LDO_32:
 	  if (!bfd_link_executable (info)
 	      || (input_section->flags & SEC_CODE) == 0)
-	    relocation -= elf_i386_dtpoff_base (info);
+	    relocation -= _bfd_x86_elf_dtpoff_base (info);
 	  else
 	    /* When converting LDO to LE, we must negate.  */
 	    relocation = -elf_i386_tpoff (info, relocation);
@@ -5199,9 +3405,9 @@ disallow_got32:
 	      if (indx)
 		continue;
 	      else if (r_type == R_386_TLS_LE_32)
-		relocation = elf_i386_dtpoff_base (info) - relocation;
+		relocation = _bfd_x86_elf_dtpoff_base (info) - relocation;
 	      else
-		relocation -= elf_i386_dtpoff_base (info);
+		relocation -= _bfd_x86_elf_dtpoff_base (info);
 	    }
 	  else if (r_type == R_386_TLS_LE_32)
 	    relocation = elf_i386_tpoff (info, relocation);
@@ -5224,10 +3430,10 @@ disallow_got32:
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+	    (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
 	     input_bfd,
 	     input_section,
-	     (long) rel->r_offset,
+	     rel->r_offset,
 	     howto->name,
 	     h->root.root.string);
 	  return FALSE;
@@ -5264,9 +3470,9 @@ check_relocation_error:
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B(%A+0x%lx): reloc against `%s': error %d"),
+		(_("%B(%A+%#Lx): reloc against `%s': error %d"),
 		 input_bfd, input_section,
-		 (long) rel->r_offset, name, (int) r);
+		 rel->r_offset, name, (int) r);
 	      return FALSE;
 	    }
 	}
@@ -5307,35 +3513,37 @@ elf_i386_finish_dynamic_symbol (bfd *out
 				struct elf_link_hash_entry *h,
 				Elf_Internal_Sym *sym)
 {
-  struct elf_i386_link_hash_table *htab;
+  struct elf_x86_link_hash_table *htab;
   unsigned plt_entry_size;
-  const struct elf_i386_backend_data *abed;
-  struct elf_i386_link_hash_entry *eh;
+  struct elf_x86_link_hash_entry *eh;
   bfd_boolean local_undefweak;
+  bfd_boolean use_plt_second;
 
-  htab = elf_i386_hash_table (info);
+  htab = elf_x86_hash_table (info, I386_ELF_DATA);
   if (htab == NULL)
     return FALSE;
 
-  abed = get_elf_i386_backend_data (output_bfd);
-  plt_entry_size = GET_PLT_ENTRY_SIZE (output_bfd);
+  plt_entry_size = htab->plt.plt_entry_size;
+
+  /* Use the second PLT section only if there is .plt section.  */
+  use_plt_second = htab->elf.splt != NULL && htab->plt_second != NULL;
 
-  eh = (struct elf_i386_link_hash_entry *) h;
+  eh = (struct elf_x86_link_hash_entry *) h;
+  if (eh->no_finish_dynamic_symbol)
+    abort ();
 
   /* We keep PLT/GOT entries without dynamic PLT/GOT relocations for
      resolved undefined weak symbols in executable so that their
      references have value 0 at run-time.  */
-  local_undefweak = UNDEFINED_WEAK_RESOLVED_TO_ZERO (info,
-						     eh->has_got_reloc,
-						     eh);
+  local_undefweak = UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh);
 
   if (h->plt.offset != (bfd_vma) -1)
     {
-      bfd_vma plt_index;
+      bfd_vma plt_index, plt_offset;
       bfd_vma got_offset;
       Elf_Internal_Rela rel;
       bfd_byte *loc;
-      asection *plt, *gotplt, *relplt;
+      asection *plt, *resolved_plt, *gotplt, *relplt;
 
       /* When building a static executable, use .iplt, .igot.plt and
 	 .rel.iplt sections for STT_GNU_IFUNC symbols.  */
@@ -5352,18 +3560,7 @@ elf_i386_finish_dynamic_symbol (bfd *out
 	  relplt = htab->elf.irelplt;
 	}
 
-      /* This symbol has an entry in the procedure linkage table.  Set
-	 it up.  */
-
-      if ((h->dynindx == -1
-	   && !local_undefweak
-	   && !((h->forced_local || bfd_link_executable (info))
-		&& h->def_regular
-		&& h->type == STT_GNU_IFUNC))
-	  || plt == NULL
-	  || gotplt == NULL
-	  || relplt == NULL)
-	abort ();
+      VERIFY_PLT_ENTRY (info, h, plt, gotplt, relplt, local_undefweak)
 
       /* Get the index in the procedure linkage table which
 	 corresponds to this symbol.  This is the index of this symbol
@@ -5378,7 +3575,8 @@ elf_i386_finish_dynamic_symbol (bfd *out
 
       if (plt == htab->elf.splt)
 	{
-	  got_offset = h->plt.offset / plt_entry_size - 1;
+	  got_offset = (h->plt.offset / plt_entry_size
+			- htab->plt.has_plt0);
 	  got_offset = (got_offset + 3) * 4;
 	}
       else
@@ -5387,19 +3585,40 @@ elf_i386_finish_dynamic_symbol (bfd *out
 	  got_offset = got_offset * 4;
 	}
 
-      /* Fill in the entry in the procedure linkage table.  */
+      /* Fill in the entry in the procedure linkage table and update
+	 the first slot.  */
+      memcpy (plt->contents + h->plt.offset, htab->plt.plt_entry,
+	      plt_entry_size);
+
+      if (use_plt_second)
+	{
+	  const bfd_byte *plt_entry;
+	  if (bfd_link_pic (info))
+	    plt_entry = htab->non_lazy_plt->pic_plt_entry;
+	  else
+	    plt_entry = htab->non_lazy_plt->plt_entry;
+	  memcpy (htab->plt_second->contents + eh->plt_second.offset,
+		  plt_entry, htab->non_lazy_plt->plt_entry_size);
+
+	  resolved_plt = htab->plt_second;
+	  plt_offset = eh->plt_second.offset;
+	}
+      else
+	{
+	  resolved_plt = plt;
+	  plt_offset = h->plt.offset;
+	}
+
       if (! bfd_link_pic (info))
 	{
-	  memcpy (plt->contents + h->plt.offset, abed->plt->plt_entry,
-		  abed->plt->plt_entry_size);
 	  bfd_put_32 (output_bfd,
 		      (gotplt->output_section->vma
 		       + gotplt->output_offset
 		       + got_offset),
-		      plt->contents + h->plt.offset
-                      + abed->plt->plt_got_offset);
+		      resolved_plt->contents + plt_offset
+		      + htab->plt.plt_got_offset);
 
-	  if (abed->is_vxworks)
+	  if (htab->target_os == is_vxworks)
 	    {
 	      int s, k, reloc_index;
 
@@ -5407,8 +3626,8 @@ elf_i386_finish_dynamic_symbol (bfd *out
 		 for this PLT entry.  */
 
 	      /* S: Current slot number (zero-based).  */
-	      s = ((h->plt.offset - abed->plt->plt_entry_size)
-                   / abed->plt->plt_entry_size);
+	      s = ((h->plt.offset - htab->plt.plt_entry_size)
+		   / htab->plt.plt_entry_size);
 	      /* K: Number of relocations for PLTResolve. */
 	      if (bfd_link_pic (info))
 		k = PLTRESOLVE_RELOCS_SHLIB;
@@ -5420,8 +3639,8 @@ elf_i386_finish_dynamic_symbol (bfd *out
 	      loc = (htab->srelplt2->contents + reloc_index
 		     * sizeof (Elf32_External_Rel));
 
-	      rel.r_offset = (htab->elf.splt->output_section->vma
-			      + htab->elf.splt->output_offset
+	      rel.r_offset = (plt->output_section->vma
+			      + plt->output_offset
 			      + h->plt.offset + 2),
 	      rel.r_info = ELF32_R_INFO (htab->elf.hgot->indx, R_386_32);
 	      bfd_elf32_swap_reloc_out (output_bfd, &rel, loc);
@@ -5438,11 +3657,9 @@ elf_i386_finish_dynamic_symbol (bfd *out
 	}
       else
 	{
-	  memcpy (plt->contents + h->plt.offset, abed->plt->pic_plt_entry,
-		  abed->plt->plt_entry_size);
 	  bfd_put_32 (output_bfd, got_offset,
-		      plt->contents + h->plt.offset
-                      + abed->plt->plt_got_offset);
+		      resolved_plt->contents + plt_offset
+		      + htab->plt.plt_got_offset);
 	}
 
       /* Fill in the entry in the global offset table.  Leave the entry
@@ -5450,23 +3667,24 @@ elf_i386_finish_dynamic_symbol (bfd *out
 	 against undefined weak symbol in PIE.  */
       if (!local_undefweak)
 	{
-	  bfd_put_32 (output_bfd,
-		      (plt->output_section->vma
-		       + plt->output_offset
-		       + h->plt.offset
-		       + abed->plt->plt_lazy_offset),
-		      gotplt->contents + got_offset);
+	  if (htab->plt.has_plt0)
+	    bfd_put_32 (output_bfd,
+			(plt->output_section->vma
+			 + plt->output_offset
+			 + h->plt.offset
+			 + htab->lazy_plt->plt_lazy_offset),
+			gotplt->contents + got_offset);
 
 	  /* Fill in the entry in the .rel.plt section.  */
 	  rel.r_offset = (gotplt->output_section->vma
 			  + gotplt->output_offset
 			  + got_offset);
-	  if (h->dynindx == -1
-	      || ((bfd_link_executable (info)
-		   || ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
-		  && h->def_regular
-		  && h->type == STT_GNU_IFUNC))
+	  if (PLT_LOCAL_IFUNC_P (info, h))
 	    {
+	      info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"),
+				      h->root.root.string,
+				      h->root.u.def.section->owner);
+
 	      /* If an STT_GNU_IFUNC symbol is locally defined, generate
 		 R_386_IRELATIVE instead of R_386_JUMP_SLOT.  Store addend
 		 in the .got.plt section.  */
@@ -5488,17 +3706,19 @@ elf_i386_finish_dynamic_symbol (bfd *out
 	  loc = relplt->contents + plt_index * sizeof (Elf32_External_Rel);
 	  bfd_elf32_swap_reloc_out (output_bfd, &rel, loc);
 
-	  /* Don't fill PLT entry for static executables.  */
-	  if (plt == htab->elf.splt)
+	  /* Don't fill the second and third slots in PLT entry for
+	     static executables nor without PLT0.  */
+	  if (plt == htab->elf.splt && htab->plt.has_plt0)
 	    {
 	      bfd_put_32 (output_bfd,
 			  plt_index * sizeof (Elf32_External_Rel),
 			  plt->contents + h->plt.offset
-			  + abed->plt->plt_reloc_offset);
-	      bfd_put_32 (output_bfd, - (h->plt.offset
-					 + abed->plt->plt_plt_offset + 4),
-			  plt->contents + h->plt.offset
-			  + abed->plt->plt_plt_offset);
+			  + htab->lazy_plt->plt_reloc_offset);
+	      bfd_put_32 (output_bfd,
+			  - (h->plt.offset
+			     + htab->lazy_plt->plt_plt_offset + 4),
+			  (plt->contents + h->plt.offset
+			   + htab->lazy_plt->plt_plt_offset));
 	    }
 	}
     }
@@ -5508,9 +3728,6 @@ elf_i386_finish_dynamic_symbol (bfd *out
       asection *plt, *got, *gotplt;
       const bfd_byte *got_plt_entry;
 
-      /* Offset of displacement of the indirect jump.  */
-      bfd_vma plt_got_offset = 2;
-
       /* Set the entry in the GOT procedure linkage table.  */
       plt = htab->plt_got;
       got = htab->elf.sgot;
@@ -5526,12 +3743,12 @@ elf_i386_finish_dynamic_symbol (bfd *out
       /* Fill in the entry in the GOT procedure linkage table.  */
       if (! bfd_link_pic (info))
 	{
-	  got_plt_entry = elf_i386_got_plt_entry;
+	  got_plt_entry = htab->non_lazy_plt->plt_entry;
 	  got_offset += got->output_section->vma + got->output_offset;
 	}
       else
 	{
-	  got_plt_entry = elf_i386_pic_got_plt_entry;
+	  got_plt_entry = htab->non_lazy_plt->pic_plt_entry;
 	  got_offset += (got->output_section->vma
 			 + got->output_offset
 			 - gotplt->output_section->vma
@@ -5540,9 +3757,10 @@ elf_i386_finish_dynamic_symbol (bfd *out
 
       plt_offset = eh->plt_got.offset;
       memcpy (plt->contents + plt_offset, got_plt_entry,
-	      sizeof (elf_i386_got_plt_entry));
+	      htab->non_lazy_plt->plt_entry_size);
       bfd_put_32 (output_bfd, got_offset,
-		  plt->contents + plt_offset + plt_got_offset);
+		  (plt->contents + plt_offset
+		   + htab->non_lazy_plt->plt_got_offset));
     }
 
   if (!local_undefweak
@@ -5566,8 +3784,8 @@ elf_i386_finish_dynamic_symbol (bfd *out
   /* Don't generate dynamic GOT relocation against undefined weak
      symbol in executable.  */
   if (h->got.offset != (bfd_vma) -1
-      && ! GOT_TLS_GD_ANY_P (elf_i386_hash_entry(h)->tls_type)
-      && (elf_i386_hash_entry(h)->tls_type & GOT_TLS_IE) == 0
+      && ! GOT_TLS_GD_ANY_P (elf_x86_hash_entry(h)->tls_type)
+      && (elf_x86_hash_entry(h)->tls_type & GOT_TLS_IE) == 0
       && !local_undefweak)
     {
       Elf_Internal_Rela rel;
@@ -5600,8 +3818,12 @@ elf_i386_finish_dynamic_symbol (bfd *out
 		     in static executable.  */
 		  relgot = htab->elf.irelplt;
 		}
-	      if (SYMBOL_REFERENCES_LOCAL (info, h))
+	      if (SYMBOL_REFERENCES_LOCAL_P (info, h))
 		{
+		  info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"),
+					  h->root.root.string,
+					  h->root.u.def.section->owner);
+
 		  bfd_put_32 (output_bfd,
 			      (h->root.u.def.value
 			       + h->root.u.def.section->output_section->vma
@@ -5620,6 +3842,7 @@ elf_i386_finish_dynamic_symbol (bfd *out
 	  else
 	    {
 	      asection *plt;
+	      bfd_vma plt_offset;
 
 	      if (!h->pointer_equality_needed)
 		abort ();
@@ -5627,16 +3850,25 @@ elf_i386_finish_dynamic_symbol (bfd *out
 	      /* For non-shared object, we can't use .got.plt, which
 		 contains the real function addres if we need pointer
 		 equality.  We load the GOT entry with the PLT entry.  */
-	      plt = htab->elf.splt ? htab->elf.splt : htab->elf.iplt;
+	      if (htab->plt_second != NULL)
+		{
+		  plt = htab->plt_second;
+		  plt_offset = eh->plt_second.offset;
+		}
+	      else
+		{
+		  plt = htab->elf.splt ? htab->elf.splt : htab->elf.iplt;
+		  plt_offset = h->plt.offset;
+		}
 	      bfd_put_32 (output_bfd,
 			  (plt->output_section->vma
-			   + plt->output_offset + h->plt.offset),
+			   + plt->output_offset + plt_offset),
 			  htab->elf.sgot->contents + h->got.offset);
 	      return TRUE;
 	    }
 	}
       else if (bfd_link_pic (info)
-	       && SYMBOL_REFERENCES_LOCAL (info, h))
+	       && SYMBOL_REFERENCES_LOCAL_P (info, h))
 	{
 	  BFD_ASSERT((h->got.offset & 1) != 0);
 	  rel.r_info = ELF32_R_INFO (0, R_386_RELATIVE);
@@ -5659,13 +3891,7 @@ do_glob_dat:
       asection *s;
 
       /* This symbol needs a copy reloc.  Set it up.  */
-
-      if (h->dynindx == -1
-	  || (h->root.type != bfd_link_hash_defined
-	      && h->root.type != bfd_link_hash_defweak)
-	  || htab->elf.srelbss == NULL
-	  || htab->elf.sreldynrelro == NULL)
-	abort ();
+      VERIFY_COPY_RELOC (h, htab)
 
       rel.r_offset = (h->root.u.def.value
 		      + h->root.u.def.section->output_section->vma
@@ -5712,7 +3938,7 @@ elf_i386_pie_finish_undefweak_symbol (st
     return TRUE;
 
   return elf_i386_finish_dynamic_symbol (info->output_bfd,
-					     info, h, NULL);
+					 info, h, NULL);
 }
 
 /* Used to decide how to sort relocs in an optimal manner for the
@@ -5731,7 +3957,7 @@ elf_i386_reloc_type_class (const struct 
       && htab->dynsym->contents != NULL)
     {
       /* Check relocation against STT_GNU_IFUNC symbol if there are
-         dynamic symbols.  */
+	 dynamic symbols.  */
       unsigned long r_symndx = ELF32_R_SYM (rela->r_info);
       if (r_symndx != STN_UNDEF)
 	{
@@ -5768,233 +3994,100 @@ static bfd_boolean
 elf_i386_finish_dynamic_sections (bfd *output_bfd,
 				  struct bfd_link_info *info)
 {
-  struct elf_i386_link_hash_table *htab;
-  bfd *dynobj;
-  asection *sdyn;
-  const struct elf_i386_backend_data *abed;
+  struct elf_x86_link_hash_table *htab;
 
-  htab = elf_i386_hash_table (info);
+  htab = _bfd_x86_elf_finish_dynamic_sections (output_bfd, info);
   if (htab == NULL)
     return FALSE;
 
-  dynobj = htab->elf.dynobj;
-  sdyn = bfd_get_linker_section (dynobj, ".dynamic");
-  abed = get_elf_i386_backend_data (output_bfd);
+  if (!htab->elf.dynamic_sections_created)
+    return TRUE;
 
-  if (htab->elf.dynamic_sections_created)
+  if (htab->elf.splt && htab->elf.splt->size > 0)
     {
-      Elf32_External_Dyn *dyncon, *dynconend;
-
-      if (sdyn == NULL || htab->elf.sgot == NULL)
-	abort ();
-
-      dyncon = (Elf32_External_Dyn *) sdyn->contents;
-      dynconend = (Elf32_External_Dyn *) (sdyn->contents + sdyn->size);
-      for (; dyncon < dynconend; dyncon++)
-	{
-	  Elf_Internal_Dyn dyn;
-	  asection *s;
-
-	  bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
-
-	  switch (dyn.d_tag)
-	    {
-	    default:
-	      if (abed->is_vxworks
-                  && elf_vxworks_finish_dynamic_entry (output_bfd, &dyn))
-		break;
-	      continue;
+      /* UnixWare sets the entsize of .plt to 4, although that doesn't
+	 really seem like the right value.  */
+      elf_section_data (htab->elf.splt->output_section)
+	->this_hdr.sh_entsize = 4;
 
-	    case DT_PLTGOT:
-	      s = htab->elf.sgotplt;
-	      dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
-	      break;
-
-	    case DT_JMPREL:
-	      s = htab->elf.srelplt;
-	      dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
-	      break;
-
-	    case DT_PLTRELSZ:
-	      s = htab->elf.srelplt;
-	      dyn.d_un.d_val = s->size;
-	      break;
-	    }
-
-	  bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
-	}
-
-      /* Fill in the first entry in the procedure linkage table.  */
-      if (htab->elf.splt && htab->elf.splt->size > 0)
+      if (htab->plt.has_plt0)
 	{
-	  if (bfd_link_pic (info))
-	    {
-	      memcpy (htab->elf.splt->contents, abed->plt->pic_plt0_entry,
-		      abed->plt->plt0_entry_size);
-	      memset (htab->elf.splt->contents + abed->plt->plt0_entry_size,
-		      abed->plt0_pad_byte,
-		      abed->plt->plt_entry_size - abed->plt->plt0_entry_size);
-	    }
-	  else
+	  /* Fill in the special first entry in the procedure linkage
+	     table.  */
+	  memcpy (htab->elf.splt->contents, htab->plt.plt0_entry,
+		  htab->lazy_plt->plt0_entry_size);
+	  memset (htab->elf.splt->contents + htab->lazy_plt->plt0_entry_size,
+		  htab->plt0_pad_byte,
+		  htab->plt.plt_entry_size - htab->lazy_plt->plt0_entry_size);
+	  if (!bfd_link_pic (info))
 	    {
-	      memcpy (htab->elf.splt->contents, abed->plt->plt0_entry,
-		      abed->plt->plt0_entry_size);
-	      memset (htab->elf.splt->contents + abed->plt->plt0_entry_size,
-		      abed->plt0_pad_byte,
-		      abed->plt->plt_entry_size - abed->plt->plt0_entry_size);
 	      bfd_put_32 (output_bfd,
 			  (htab->elf.sgotplt->output_section->vma
 			   + htab->elf.sgotplt->output_offset
 			   + 4),
 			  htab->elf.splt->contents
-                          + abed->plt->plt0_got1_offset);
+			  + htab->lazy_plt->plt0_got1_offset);
 	      bfd_put_32 (output_bfd,
 			  (htab->elf.sgotplt->output_section->vma
 			   + htab->elf.sgotplt->output_offset
 			   + 8),
 			  htab->elf.splt->contents
-                          + abed->plt->plt0_got2_offset);
+			  + htab->lazy_plt->plt0_got2_offset);
 
-	      if (abed->is_vxworks)
+	      if (htab->target_os == is_vxworks)
 		{
 		  Elf_Internal_Rela rel;
-
-		  /* Generate a relocation for _GLOBAL_OFFSET_TABLE_ + 4.
-		     On IA32 we use REL relocations so the addend goes in
-		     the PLT directly.  */
+		  int num_plts = (htab->elf.splt->size
+				  / htab->plt.plt_entry_size) - 1;
+		  unsigned char *p;
+		  asection *srelplt2 = htab->srelplt2;
+
+		  /* Generate a relocation for _GLOBAL_OFFSET_TABLE_
+		     + 4.  On IA32 we use REL relocations so the
+		     addend goes in the PLT directly.  */
 		  rel.r_offset = (htab->elf.splt->output_section->vma
 				  + htab->elf.splt->output_offset
-				  + abed->plt->plt0_got1_offset);
-		  rel.r_info = ELF32_R_INFO (htab->elf.hgot->indx, R_386_32);
+				  + htab->lazy_plt->plt0_got1_offset);
+		  rel.r_info = ELF32_R_INFO (htab->elf.hgot->indx,
+					     R_386_32);
 		  bfd_elf32_swap_reloc_out (output_bfd, &rel,
-					    htab->srelplt2->contents);
-		  /* Generate a relocation for _GLOBAL_OFFSET_TABLE_ + 8.  */
+					    srelplt2->contents);
+		  /* Generate a relocation for _GLOBAL_OFFSET_TABLE_
+		     + 8.  */
 		  rel.r_offset = (htab->elf.splt->output_section->vma
 				  + htab->elf.splt->output_offset
-				  + abed->plt->plt0_got2_offset);
-		  rel.r_info = ELF32_R_INFO (htab->elf.hgot->indx, R_386_32);
+				  + htab->lazy_plt->plt0_got2_offset);
+		  rel.r_info = ELF32_R_INFO (htab->elf.hgot->indx,
+					     R_386_32);
 		  bfd_elf32_swap_reloc_out (output_bfd, &rel,
-					    htab->srelplt2->contents +
+					    srelplt2->contents +
 					    sizeof (Elf32_External_Rel));
-		}
-	    }
-
-	  /* UnixWare sets the entsize of .plt to 4, although that doesn't
-	     really seem like the right value.  */
-	  elf_section_data (htab->elf.splt->output_section)
-	    ->this_hdr.sh_entsize = 4;
-
-	  /* Correct the .rel.plt.unloaded relocations.  */
-	  if (abed->is_vxworks && !bfd_link_pic (info))
-	    {
-	      int num_plts = (htab->elf.splt->size
-                              / abed->plt->plt_entry_size) - 1;
-	      unsigned char *p;
-
-	      p = htab->srelplt2->contents;
-	      if (bfd_link_pic (info))
-		p += PLTRESOLVE_RELOCS_SHLIB * sizeof (Elf32_External_Rel);
-	      else
-		p += PLTRESOLVE_RELOCS * sizeof (Elf32_External_Rel);
+		  /* Correct the .rel.plt.unloaded relocations.  */
+		  p = srelplt2->contents;
+		  if (bfd_link_pic (info))
+		    p += PLTRESOLVE_RELOCS_SHLIB * sizeof (Elf32_External_Rel);
+		  else
+		    p += PLTRESOLVE_RELOCS * sizeof (Elf32_External_Rel);
 
-	      for (; num_plts; num_plts--)
-		{
-		  Elf_Internal_Rela rel;
-		  bfd_elf32_swap_reloc_in (output_bfd, p, &rel);
-		  rel.r_info = ELF32_R_INFO (htab->elf.hgot->indx, R_386_32);
-		  bfd_elf32_swap_reloc_out (output_bfd, &rel, p);
-		  p += sizeof (Elf32_External_Rel);
-
-		  bfd_elf32_swap_reloc_in (output_bfd, p, &rel);
-		  rel.r_info = ELF32_R_INFO (htab->elf.hplt->indx, R_386_32);
-		  bfd_elf32_swap_reloc_out (output_bfd, &rel, p);
-		  p += sizeof (Elf32_External_Rel);
+		  for (; num_plts; num_plts--)
+		    {
+		      bfd_elf32_swap_reloc_in (output_bfd, p, &rel);
+		      rel.r_info = ELF32_R_INFO (htab->elf.hgot->indx,
+						 R_386_32);
+		      bfd_elf32_swap_reloc_out (output_bfd, &rel, p);
+		      p += sizeof (Elf32_External_Rel);
+
+		      bfd_elf32_swap_reloc_in (output_bfd, p, &rel);
+		      rel.r_info = ELF32_R_INFO (htab->elf.hplt->indx,
+						 R_386_32);
+		      bfd_elf32_swap_reloc_out (output_bfd, &rel, p);
+		      p += sizeof (Elf32_External_Rel);
+		    }
 		}
 	    }
 	}
     }
 
-  if (htab->elf.sgotplt)
-    {
-      if (bfd_is_abs_section (htab->elf.sgotplt->output_section))
-	{
-	  _bfd_error_handler
-	    (_("discarded output section: `%A'"), htab->elf.sgotplt);
-	  return FALSE;
-	}
-
-      /* Fill in the first three entries in the global offset table.  */
-      if (htab->elf.sgotplt->size > 0)
-	{
-	  bfd_put_32 (output_bfd,
-		      (sdyn == NULL ? 0
-		       : sdyn->output_section->vma + sdyn->output_offset),
-		      htab->elf.sgotplt->contents);
-	  bfd_put_32 (output_bfd, 0, htab->elf.sgotplt->contents + 4);
-	  bfd_put_32 (output_bfd, 0, htab->elf.sgotplt->contents + 8);
-	}
-
-      elf_section_data (htab->elf.sgotplt->output_section)->this_hdr.sh_entsize = 4;
-    }
-
-  /* Adjust .eh_frame for .plt section.  */
-  if (htab->plt_eh_frame != NULL
-      && htab->plt_eh_frame->contents != NULL)
-    {
-      if (htab->elf.splt != NULL
-	  && htab->elf.splt->size != 0
-	  && (htab->elf.splt->flags & SEC_EXCLUDE) == 0
-	  && htab->elf.splt->output_section != NULL
-	  && htab->plt_eh_frame->output_section != NULL)
-	{
-	  bfd_vma plt_start = htab->elf.splt->output_section->vma;
-	  bfd_vma eh_frame_start = htab->plt_eh_frame->output_section->vma
-				   + htab->plt_eh_frame->output_offset
-				   + PLT_FDE_START_OFFSET;
-	  bfd_put_signed_32 (dynobj, plt_start - eh_frame_start,
-			     htab->plt_eh_frame->contents
-			     + PLT_FDE_START_OFFSET);
-	}
-      if (htab->plt_eh_frame->sec_info_type
-	  == SEC_INFO_TYPE_EH_FRAME)
-	{
-	  if (! _bfd_elf_write_section_eh_frame (output_bfd, info,
-						 htab->plt_eh_frame,
-						 htab->plt_eh_frame->contents))
-	    return FALSE;
-	}
-    }
-
-  /* Adjust .eh_frame for .plt.got section.  */
-  if (htab->plt_got_eh_frame != NULL
-      && htab->plt_got_eh_frame->contents != NULL)
-    {
-      if (htab->plt_got != NULL
-	  && htab->plt_got->size != 0
-	  && (htab->plt_got->flags & SEC_EXCLUDE) == 0
-	  && htab->plt_got->output_section != NULL
-	  && htab->plt_got_eh_frame->output_section != NULL)
-	{
-	  bfd_vma plt_start = htab->plt_got->output_section->vma;
-	  bfd_vma eh_frame_start = htab->plt_got_eh_frame->output_section->vma
-				   + htab->plt_got_eh_frame->output_offset
-				   + PLT_FDE_START_OFFSET;
-	  bfd_put_signed_32 (dynobj, plt_start - eh_frame_start,
-			     htab->plt_got_eh_frame->contents
-			     + PLT_FDE_START_OFFSET);
-	}
-      if (htab->plt_got_eh_frame->sec_info_type == SEC_INFO_TYPE_EH_FRAME)
-	{
-	  if (! _bfd_elf_write_section_eh_frame (output_bfd, info,
-						 htab->plt_got_eh_frame,
-						 htab->plt_got_eh_frame->contents))
-	    return FALSE;
-	}
-    }
-
-  if (htab->elf.sgot && htab->elf.sgot->size > 0)
-    elf_section_data (htab->elf.sgot->output_section)->this_hdr.sh_entsize = 4;
-
   /* Fill PLT entries for undefined weak symbols in PIE.  */
   if (bfd_link_pie (info))
     bfd_hash_traverse (&info->hash->table,
@@ -6019,7 +4112,8 @@ elf_i386_output_arch_local_syms
 		asection *,
 		struct elf_link_hash_entry *) ATTRIBUTE_UNUSED)
 {
-  struct elf_i386_link_hash_table *htab = elf_i386_hash_table (info);
+  struct elf_x86_link_hash_table *htab
+    = elf_x86_hash_table (info, I386_ELF_DATA);
   if (htab == NULL)
     return FALSE;
 
@@ -6031,181 +4125,244 @@ elf_i386_output_arch_local_syms
   return TRUE;
 }
 
-/* Return an array of PLT entry symbol values.  */
+/* Forward declaration.  */
+static const struct elf_x86_lazy_plt_layout elf_i386_nacl_plt;
+
+/* Similar to _bfd_elf_get_synthetic_symtab.  Support PLTs with all
+   dynamic relocations.   */
 
-static bfd_vma *
-elf_i386_get_plt_sym_val (bfd *abfd, asymbol **dynsyms, asection *plt,
-			  asection *relplt)
-{
-  bfd_boolean (*slurp_relocs) (bfd *, asection *, asymbol **, bfd_boolean);
-  arelent *p;
-  long count, i;
-  bfd_vma *plt_sym_val;
-  bfd_vma plt_offset;
+static long
+elf_i386_get_synthetic_symtab (bfd *abfd,
+			       long symcount ATTRIBUTE_UNUSED,
+			       asymbol **syms ATTRIBUTE_UNUSED,
+			       long dynsymcount,
+			       asymbol **dynsyms,
+			       asymbol **ret)
+{
+  long count, i, n;
+  int j;
   bfd_byte *plt_contents;
-  const struct elf_i386_backend_data *bed
-    = get_elf_i386_backend_data (abfd);
-  Elf_Internal_Shdr *hdr;
-
-  /* Get the .plt section contents.  */
-  plt_contents = (bfd_byte *) bfd_malloc (plt->size);
-  if (plt_contents == NULL)
-    return NULL;
-  if (!bfd_get_section_contents (abfd, (asection *) plt,
-				 plt_contents, 0, plt->size))
-    {
-bad_return:
-      free (plt_contents);
-      return NULL;
-    }
+  long relsize;
+  const struct elf_x86_lazy_plt_layout *lazy_plt;
+  const struct elf_x86_non_lazy_plt_layout *non_lazy_plt;
+  const struct elf_x86_lazy_plt_layout *lazy_ibt_plt;
+  const struct elf_x86_non_lazy_plt_layout *non_lazy_ibt_plt;
+  asection *plt;
+  bfd_vma got_addr;
+  enum elf_x86_plt_type plt_type;
+  struct elf_x86_plt plts[] =
+    {
+      { ".plt", NULL, NULL, plt_unknown, 0, 0, 0, 0 },
+      { ".plt.got", NULL, NULL, plt_non_lazy, 0, 0, 0, 0 },
+      { ".plt.sec", NULL, NULL, plt_second, 0, 0, 0, 0 },
+      { NULL, NULL, NULL, plt_non_lazy, 0, 0, 0, 0 }
+    };
 
-  slurp_relocs = get_elf_backend_data (abfd)->s->slurp_reloc_table;
-  if (! (*slurp_relocs) (abfd, relplt, dynsyms, TRUE))
-    goto bad_return;
-
-  hdr = &elf_section_data (relplt)->this_hdr;
-  count = relplt->size / hdr->sh_entsize;
-
-  plt_sym_val = (bfd_vma *) bfd_malloc (sizeof (bfd_vma) * count);
-  if (plt_sym_val == NULL)
-    goto bad_return;
-
-  for (i = 0; i < count; i++)
-    plt_sym_val[i] = -1;
-
-  plt_offset = bed->plt->plt_entry_size;
-  p = relplt->relocation;
-  for (i = 0; i < count; i++, p++)
-    {
-      long reloc_index;
+  *ret = NULL;
 
-      /* Skip unknown relocation.  PR 17512: file: bc9d6cf5.  */
-      if (p->howto == NULL)
-	continue;
+  if ((abfd->flags & (DYNAMIC | EXEC_P)) == 0)
+    return 0;
 
-      if (p->howto->type != R_386_JUMP_SLOT
-	  && p->howto->type != R_386_IRELATIVE)
-	continue;
+  if (dynsymcount <= 0)
+    return 0;
 
-      reloc_index = H_GET_32 (abfd, (plt_contents + plt_offset
-				     + bed->plt->plt_reloc_offset));
-      reloc_index /= sizeof (Elf32_External_Rel);
-      if (reloc_index < count)
-	plt_sym_val[reloc_index] = plt->vma + plt_offset;
-
-      plt_offset += bed->plt->plt_entry_size;
-
-      /* PR binutils/18437: Skip extra relocations in the .rel.plt
-	 section.  */
-      if (plt_offset >= plt->size)
-	break;
+  relsize = bfd_get_dynamic_reloc_upper_bound (abfd);
+  if (relsize <= 0)
+    return -1;
+
+  non_lazy_plt = NULL;
+  /* Silence GCC 6.  */
+  lazy_plt = NULL;
+  non_lazy_ibt_plt = NULL;
+  lazy_ibt_plt = NULL;
+  switch (get_elf_x86_backend_data (abfd)->target_os)
+    {
+    case is_normal:
+      non_lazy_plt = &elf_i386_non_lazy_plt;
+      lazy_ibt_plt = &elf_i386_lazy_ibt_plt;
+      non_lazy_ibt_plt = &elf_i386_non_lazy_ibt_plt;
+      /* Fall through */
+    case is_vxworks:
+      lazy_plt = &elf_i386_lazy_plt;
+      break;
+    case is_nacl:
+      lazy_plt = &elf_i386_nacl_plt;
+      break;
     }
 
-  free (plt_contents);
+  got_addr = 0;
 
-  return plt_sym_val;
-}
+  count = 0;
+  for (j = 0; plts[j].name != NULL; j++)
+    {
+      plt = bfd_get_section_by_name (abfd, plts[j].name);
+      if (plt == NULL || plt->size == 0)
+	continue;
 
-/* Similar to _bfd_elf_get_synthetic_symtab.  */
+      /* Get the PLT section contents.  */
+      plt_contents = (bfd_byte *) bfd_malloc (plt->size);
+      if (plt_contents == NULL)
+	break;
+      if (!bfd_get_section_contents (abfd, (asection *) plt,
+				     plt_contents, 0, plt->size))
+	{
+	  free (plt_contents);
+	  break;
+	}
 
-static long
-elf_i386_get_synthetic_symtab (bfd *abfd,
-			       long symcount,
-			       asymbol **syms,
-			       long dynsymcount,
-			       asymbol **dynsyms,
-			       asymbol **ret)
-{
-  asection *plt = bfd_get_section_by_name (abfd, ".plt");
-  return _bfd_elf_ifunc_get_synthetic_symtab (abfd, symcount, syms,
-					      dynsymcount, dynsyms, ret,
-					      plt,
-					      elf_i386_get_plt_sym_val);
-}
+      /* Check what kind of PLT it is.  */
+      plt_type = plt_unknown;
+      if (plts[j].type == plt_unknown
+	  && (plt->size >= (lazy_plt->plt0_entry_size
+			    + lazy_plt->plt_entry_size)))
+	{
+	  /* Match lazy PLT first.  */
+	  if (memcmp (plt_contents, lazy_plt->plt0_entry,
+		      lazy_plt->plt0_got1_offset) == 0)
+	    {
+	      /* The fist entry in the lazy IBT PLT is the same as the
+		 normal lazy PLT.  */
+	      if (lazy_ibt_plt != NULL
+		  && (memcmp (plt_contents + lazy_ibt_plt->plt0_entry_size,
+			      lazy_ibt_plt->plt_entry,
+			      lazy_ibt_plt->plt_got_offset) == 0))
+		plt_type = plt_lazy | plt_second;
+	      else
+		plt_type = plt_lazy;
+	    }
+	  else if (memcmp (plt_contents, lazy_plt->pic_plt0_entry,
+			   lazy_plt->plt0_got1_offset) == 0)
+	    {
+	      /* The fist entry in the PIC lazy IBT PLT is the same as
+		 the normal PIC lazy PLT.  */
+	      if (lazy_ibt_plt != NULL
+		  && (memcmp (plt_contents + lazy_ibt_plt->plt0_entry_size,
+			      lazy_ibt_plt->pic_plt_entry,
+			      lazy_ibt_plt->plt_got_offset) == 0))
+		plt_type = plt_lazy | plt_pic | plt_second;
+	      else
+		plt_type = plt_lazy | plt_pic;
+	    }
+	}
 
-/* Return TRUE if symbol should be hashed in the `.gnu.hash' section.  */
+      if (non_lazy_plt != NULL
+	  && (plt_type == plt_unknown || plt_type == plt_non_lazy)
+	  && plt->size >= non_lazy_plt->plt_entry_size)
+	{
+	  /* Match non-lazy PLT.  */
+	  if (memcmp (plt_contents, non_lazy_plt->plt_entry,
+		      non_lazy_plt->plt_got_offset) == 0)
+	    plt_type = plt_non_lazy;
+	  else if (memcmp (plt_contents, non_lazy_plt->pic_plt_entry,
+			   non_lazy_plt->plt_got_offset) == 0)
+	    plt_type = plt_pic;
+	}
 
-static bfd_boolean
-elf_i386_hash_symbol (struct elf_link_hash_entry *h)
-{
-  if (h->plt.offset != (bfd_vma) -1
-      && !h->def_regular
-      && !h->pointer_equality_needed)
-    return FALSE;
+      if ((non_lazy_ibt_plt != NULL)
+	  && (plt_type == plt_unknown || plt_type == plt_second)
+	  && plt->size >= non_lazy_ibt_plt->plt_entry_size)
+	{
+	  if (memcmp (plt_contents,
+		      non_lazy_ibt_plt->plt_entry,
+		      non_lazy_ibt_plt->plt_got_offset) == 0)
+	    {
+	      /* Match IBT PLT.  */
+	      plt_type = plt_second;
+	      non_lazy_plt = non_lazy_ibt_plt;
+	    }
+	  else if (memcmp (plt_contents,
+			   non_lazy_ibt_plt->pic_plt_entry,
+			   non_lazy_ibt_plt->plt_got_offset) == 0)
+	    {
+	      /* Match PIC IBT PLT.  */
+	      plt_type = plt_second | plt_pic;
+	      non_lazy_plt = non_lazy_ibt_plt;
+	    }
+	}
 
-  return _bfd_elf_hash_symbol (h);
-}
+      if (plt_type == plt_unknown)
+	{
+	  free (plt_contents);
+	  continue;
+	}
 
-/* Parse i386 GNU properties.  */
+      plts[j].sec = plt;
+      plts[j].type = plt_type;
 
-static enum elf_property_kind
-elf_i386_parse_gnu_properties (bfd *abfd, unsigned int type,
-			       bfd_byte *ptr, unsigned int datasz)
-{
-  elf_property *prop;
+      if ((plt_type & plt_lazy))
+	{
+	  plts[j].plt_got_offset = lazy_plt->plt_got_offset;
+	  plts[j].plt_entry_size = lazy_plt->plt_entry_size;
+	  /* Skip PLT0 in lazy PLT.  */
+	  i = 1;
+	}
+      else
+	{
+	  plts[j].plt_got_offset = non_lazy_plt->plt_got_offset;
+	  plts[j].plt_entry_size = non_lazy_plt->plt_entry_size;
+	  i = 0;
+	}
 
-  switch (type)
-    {
-    case GNU_PROPERTY_X86_ISA_1_USED:
-    case GNU_PROPERTY_X86_ISA_1_NEEDED:
-      if (datasz != 4)
+      /* Skip lazy PLT when the second PLT is used.  */
+      if ((plt_type & (plt_lazy | plt_second))
+	  == (plt_lazy | plt_second))
+	plts[j].count = 0;
+      else
 	{
-	  _bfd_error_handler
-	    ((type == GNU_PROPERTY_X86_ISA_1_USED
-	      ? _("error: %B: <corrupt x86 ISA used size: 0x%x>")
-	      : _("error: %B: <corrupt x86 ISA needed size: 0x%x>")),
-	     abfd, datasz);
-	  return property_corrupt;
-	}
-      prop = _bfd_elf_get_property (abfd, type, datasz);
-      prop->u.number = bfd_h_get_32 (abfd, ptr);
-      prop->pr_kind = property_number;
-      break;
+	  n = plt->size / plts[j].plt_entry_size;
+	  plts[j].count = n;
+	  count += n - i;
+	}
 
-    default:
-      return property_ignored;
+      plts[j].contents = plt_contents;
+
+      /* The _GLOBAL_OFFSET_TABLE_ address is needed.  */
+      if ((plt_type & plt_pic))
+	got_addr = (bfd_vma) -1;
     }
 
-  return property_number;
+  return _bfd_x86_elf_get_synthetic_symtab (abfd, count, relsize,
+					    got_addr, plts, dynsyms,
+					    ret);
 }
 
-/* Merge i386 GNU property BPROP with APROP.  If APROP isn't NULL,
-   return TRUE if APROP is updated.  Otherwise, return TRUE if BPROP
-   should be merged with ABFD.  */
+/* Set up i386 GNU properties.  Return the first relocatable ELF input
+   with GNU properties if found.  Otherwise, return NULL.  */
 
-static bfd_boolean
-elf_i386_merge_gnu_properties (bfd *abfd ATTRIBUTE_UNUSED,
-			       elf_property *aprop,
-			       elf_property *bprop)
-{
-  unsigned int number;
-  bfd_boolean updated = FALSE;
-  unsigned int pr_type = aprop != NULL ? aprop->pr_type : bprop->pr_type;
+static bfd *
+elf_i386_link_setup_gnu_properties (struct bfd_link_info *info)
+{
+  struct elf_x86_init_table init_table;
 
-  switch (pr_type)
+  switch (get_elf_x86_backend_data (info->output_bfd)->target_os)
     {
-    case GNU_PROPERTY_X86_ISA_1_USED:
-    case GNU_PROPERTY_X86_ISA_1_NEEDED:
-      if (aprop != NULL && bprop != NULL)
-	{
-	  number = aprop->u.number;
-	  aprop->u.number = number | bprop->u.number;
-	  updated = number != (unsigned int) aprop->u.number;
-	}
-      else
-	{
-	  /* Return TRUE if APROP is NULL to indicate that BPROP should
-	     be added to ABFD.  */
-	  updated = aprop == NULL;
-	}
+    case is_normal:
+      init_table.plt0_pad_byte = 0x0;
+      init_table.lazy_plt = &elf_i386_lazy_plt;
+      init_table.non_lazy_plt = &elf_i386_non_lazy_plt;
+      init_table.lazy_ibt_plt = &elf_i386_lazy_ibt_plt;
+      init_table.non_lazy_ibt_plt = &elf_i386_non_lazy_ibt_plt;
+      break;
+    case is_vxworks:
+      init_table.plt0_pad_byte = 0x90;
+      init_table.lazy_plt = &elf_i386_lazy_plt;
+      init_table.non_lazy_plt = NULL;
+      init_table.lazy_ibt_plt = NULL;
+      init_table.non_lazy_ibt_plt = NULL;
+      break;
+    case is_nacl:
+      init_table.plt0_pad_byte = 0x90;
+      init_table.lazy_plt = &elf_i386_nacl_plt;
+      init_table.non_lazy_plt = NULL;
+      init_table.lazy_ibt_plt = NULL;
+      init_table.non_lazy_ibt_plt = NULL;
       break;
-
-    default:
-      /* Never should happen.  */
-      abort ();
     }
 
-  return updated;
+  init_table.r_info = elf32_r_info;
+  init_table.r_sym = elf32_r_sym;
+
+  return _bfd_x86_elf_link_setup_gnu_properties (info, &init_table);
 }
 
 #define TARGET_LITTLE_SYM		i386_elf32_vec
@@ -6231,36 +4388,26 @@ elf_i386_merge_gnu_properties (bfd *abfd
 #define elf_info_to_howto		      elf_i386_info_to_howto_rel
 #define elf_info_to_howto_rel		      elf_i386_info_to_howto_rel
 
-#define bfd_elf32_mkobject		      elf_i386_mkobject
-
 #define bfd_elf32_bfd_is_local_label_name     elf_i386_is_local_label_name
-#define bfd_elf32_bfd_link_hash_table_create  elf_i386_link_hash_table_create
 #define bfd_elf32_bfd_reloc_type_lookup	      elf_i386_reloc_type_lookup
 #define bfd_elf32_bfd_reloc_name_lookup	      elf_i386_reloc_name_lookup
 #define bfd_elf32_get_synthetic_symtab	      elf_i386_get_synthetic_symtab
 
-#define elf_backend_adjust_dynamic_symbol     elf_i386_adjust_dynamic_symbol
 #define elf_backend_relocs_compatible	      _bfd_elf_relocs_compatible
 #define elf_backend_check_relocs	      elf_i386_check_relocs
-#define elf_backend_copy_indirect_symbol      elf_i386_copy_indirect_symbol
-#define elf_backend_create_dynamic_sections   elf_i386_create_dynamic_sections
+#define elf_backend_create_dynamic_sections   _bfd_elf_create_dynamic_sections
 #define elf_backend_fake_sections	      elf_i386_fake_sections
 #define elf_backend_finish_dynamic_sections   elf_i386_finish_dynamic_sections
 #define elf_backend_finish_dynamic_symbol     elf_i386_finish_dynamic_symbol
 #define elf_backend_output_arch_local_syms     elf_i386_output_arch_local_syms
-#define elf_backend_gc_mark_hook	      elf_i386_gc_mark_hook
 #define elf_backend_grok_prstatus	      elf_i386_grok_prstatus
 #define elf_backend_grok_psinfo		      elf_i386_grok_psinfo
 #define elf_backend_reloc_type_class	      elf_i386_reloc_type_class
 #define elf_backend_relocate_section	      elf_i386_relocate_section
-#define elf_backend_size_dynamic_sections     elf_i386_size_dynamic_sections
-#define elf_backend_always_size_sections      elf_i386_always_size_sections
-#define elf_backend_omit_section_dynsym \
-  ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
-#define elf_backend_hash_symbol		      elf_i386_hash_symbol
-#define elf_backend_fixup_symbol	      elf_i386_fixup_symbol
-#define elf_backend_parse_gnu_properties      elf_i386_parse_gnu_properties
-#define elf_backend_merge_gnu_properties      elf_i386_merge_gnu_properties
+#define elf_backend_setup_gnu_properties      elf_i386_link_setup_gnu_properties
+#define elf_backend_hide_symbol		      _bfd_x86_elf_hide_symbol
+
+#define elf_backend_linux_prpsinfo32_ugid16	TRUE
 
 #include "elf32-target.h"
 
@@ -6332,7 +4479,7 @@ elf_i386_fbsd_post_process_headers (bfd 
 #define elf_backend_strtab_flags	SHF_STRINGS
 
 /* Called to set the sh_flags, sh_link and sh_info fields of OSECTION which
-   has a type >= SHT_LOOS.  Returns TRUE if these fields were initialised 
+   has a type >= SHT_LOOS.  Returns TRUE if these fields were initialised
    FALSE otherwise.  ISECTION is the best guess matching section from the
    input bfd IBFD, but it might be NULL.  */
 
@@ -6352,60 +4499,60 @@ elf32_i386_copy_solaris_special_section_
 http://docs.oracle.com/cd/E53394_01/html/E54813/chapter6-94076.html#scrolltoc
 
      The following values should be set:
-     
-Type                 Link                           Info
+
+Type		     Link			    Info
 -----------------------------------------------------------------------------
 SHT_SUNW_ancillary   The section header index of    0
- [0x6fffffee]        the associated string table.
-	
+ [0x6fffffee]	     the associated string table.
+
 SHT_SUNW_capinfo     The section header index of    For a dynamic object, the
- [0x6ffffff0]        the associated symbol table.   section header index of
-                                                    the associated
+ [0x6ffffff0]	     the associated symbol table.   section header index of
+						    the associated
 						    SHT_SUNW_capchain table,
 						    otherwise 0.
 
 SHT_SUNW_symsort     The section header index of    0
- [0x6ffffff1]        the associated symbol table.
+ [0x6ffffff1]	     the associated symbol table.
 
 SHT_SUNW_tlssort     The section header index of    0
- [0x6ffffff2]        the associated symbol table.
-	
-SHT_SUNW_LDYNSYM     The section header index of    One greater than the 
- [0x6ffffff3]        the associated string table.   symbol table index of the
-		     This index is the same string  last local symbol, 
+ [0x6ffffff2]	     the associated symbol table.
+
+SHT_SUNW_LDYNSYM     The section header index of    One greater than the
+ [0x6ffffff3]	     the associated string table.   symbol table index of the
+		     This index is the same string  last local symbol,
 		     table used by the SHT_DYNSYM   STB_LOCAL. Since
-		     section.                       SHT_SUNW_LDYNSYM only
-		                                    contains local symbols,
+		     section.			    SHT_SUNW_LDYNSYM only
+						    contains local symbols,
 						    sh_info is equivalent to
 						    the number of symbols in
 						    the table.
 
-SHT_SUNW_cap         If symbol capabilities exist,  If any capabilities refer
- [0x6ffffff5]        the section header index of    to named strings, the
-                     the associated                 section header index of
-		     SHT_SUNW_capinfo table,        the associated string 
-			  otherwise 0.              table, otherwise 0.
-
-SHT_SUNW_move        The section header index of    0
- [0x6ffffffa]        the associated symbol table.
-	
-SHT_SUNW_COMDAT      0                              0
+SHT_SUNW_cap	     If symbol capabilities exist,  If any capabilities refer
+ [0x6ffffff5]	     the section header index of    to named strings, the
+		     the associated		    section header index of
+		     SHT_SUNW_capinfo table,	    the associated string
+			  otherwise 0.		    table, otherwise 0.
+
+SHT_SUNW_move	     The section header index of    0
+ [0x6ffffffa]	     the associated symbol table.
+
+SHT_SUNW_COMDAT	     0				    0
  [0x6ffffffb]
 
 SHT_SUNW_syminfo     The section header index of    The section header index
- [0x6ffffffc]        the associated symbol table.   of the associated
-		                                    .dynamic section.
+ [0x6ffffffc]	     the associated symbol table.   of the associated
+						    .dynamic section.
 
-SHT_SUNW_verdef      The section header index of    The number of version 
- [0x6ffffffd]        the associated string table.   definitions within the
-		                                    section.
+SHT_SUNW_verdef	     The section header index of    The number of version
+ [0x6ffffffd]	     the associated string table.   definitions within the
+						    section.
 
 SHT_SUNW_verneed     The section header index of    The number of version
- [0x6ffffffe]        the associated string table.   dependencies within the
-                                                    section.
+ [0x6ffffffe]	     the associated string table.   dependencies within the
+						    section.
 
-SHT_SUNW_versym      The section header index of    0
- [0x6fffffff]        the associated symbol table.  */
+SHT_SUNW_versym	     The section header index of    0
+ [0x6fffffff]	     the associated symbol table.  */
 }
 
 #undef  elf_backend_copy_special_section_fields
@@ -6444,7 +4591,7 @@ elf32_iamcu_elf_object_p (bfd *abfd)
 #undef	elf_backend_static_tls_alignment
 
 #undef	elf_backend_want_plt_sym
-#define elf_backend_want_plt_sym	    0
+#define elf_backend_want_plt_sym	0
 
 #undef  elf_backend_strtab_flags
 #undef  elf_backend_copy_special_section_fields
@@ -6486,9 +4633,9 @@ elf32_iamcu_elf_object_p (bfd *abfd)
 static const bfd_byte elf_i386_nacl_plt0_entry[] =
   {
     0xff, 0x35,			  /* pushl contents of address */
-    0, 0, 0, 0,			  /* replaced with address of .got + 4.	 */
-    0x8b, 0x0d,                   /* movl contents of address, %ecx */
-    0, 0, 0, 0,			  /* replaced with address of .got + 8.	 */
+    0, 0, 0, 0,			  /* replaced with address of .got + 4.  */
+    0x8b, 0x0d,			  /* movl contents of address, %ecx */
+    0, 0, 0, 0,			  /* replaced with address of .got + 8.  */
     0x83, 0xe1, NACLMASK,	  /* andl $NACLMASK, %ecx */
     0xff, 0xe1			  /* jmp *%ecx */
   };
@@ -6500,7 +4647,7 @@ static const bfd_byte elf_i386_nacl_plt_
     0x83, 0xe1, NACLMASK,		/* andl $NACLMASK, %ecx */
     0xff, 0xe1,				/* jmp *%ecx */
 
-    /* Pad to the next 32-byte boundary with nop instructions.	*/
+    /* Pad to the next 32-byte boundary with nop instructions.  */
     0x90,
     0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
     0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
@@ -6509,9 +4656,9 @@ static const bfd_byte elf_i386_nacl_plt_
     0x68,			       /* pushl immediate */
     0, 0, 0, 0,			       /* replaced with reloc offset.  */
     0xe9,			       /* jmp relative */
-    0, 0, 0, 0,			       /* replaced with offset to .plt.	 */
+    0, 0, 0, 0,			       /* replaced with offset to .plt.  */
 
-    /* Pad to the next 32-byte boundary with nop instructions.	*/
+    /* Pad to the next 32-byte boundary with nop instructions.  */
     0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
     0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
     0x90, 0x90
@@ -6532,23 +4679,23 @@ elf_i386_nacl_pic_plt0_entry[sizeof (elf
 
 static const bfd_byte elf_i386_nacl_pic_plt_entry[NACL_PLT_ENTRY_SIZE] =
   {
-    0x8b, 0x8b,          /* movl offset(%ebx), %ecx */
-    0, 0, 0, 0,          /* replaced with offset of this symbol in .got.  */
-    0x83, 0xe1, 0xe0,    /* andl $NACLMASK, %ecx */
-    0xff, 0xe1,          /* jmp *%ecx */
+    0x8b, 0x8b,		 /* movl offset(%ebx), %ecx */
+    0, 0, 0, 0,		 /* replaced with offset of this symbol in .got.  */
+    0x83, 0xe1, 0xe0,	 /* andl $NACLMASK, %ecx */
+    0xff, 0xe1,		 /* jmp *%ecx */
 
-    /* Pad to the next 32-byte boundary with nop instructions.	*/
+    /* Pad to the next 32-byte boundary with nop instructions.  */
     0x90,
     0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
     0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
 
     /* Lazy GOT entries point here (32-byte aligned).  */
-    0x68,                /* pushl immediate */
-    0, 0, 0, 0,          /* replaced with offset into relocation table.  */
-    0xe9,                /* jmp relative */
-    0, 0, 0, 0,          /* replaced with offset to start of .plt.  */
+    0x68,		 /* pushl immediate */
+    0, 0, 0, 0,		 /* replaced with offset into relocation table.  */
+    0xe9,		 /* jmp relative */
+    0, 0, 0, 0,		 /* replaced with offset to start of .plt.  */
 
-    /* Pad to the next 32-byte boundary with nop instructions.	*/
+    /* Pad to the next 32-byte boundary with nop instructions.  */
     0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
     0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
     0x90, 0x90
@@ -6556,68 +4703,67 @@ static const bfd_byte elf_i386_nacl_pic_
 
 static const bfd_byte elf_i386_nacl_eh_frame_plt[] =
   {
-#if (PLT_CIE_LENGTH != 20                               \
-     || PLT_FDE_LENGTH != 36                            \
-     || PLT_FDE_START_OFFSET != 4 + PLT_CIE_LENGTH + 8  \
+#if (PLT_CIE_LENGTH != 20				\
+     || PLT_FDE_LENGTH != 36				\
+     || PLT_FDE_START_OFFSET != 4 + PLT_CIE_LENGTH + 8	\
      || PLT_FDE_LEN_OFFSET != 4 + PLT_CIE_LENGTH + 12)
-# error "Need elf_i386_backend_data parameters for eh_frame_plt offsets!"
+# error "Need elf_x86_backend_data parameters for eh_frame_plt offsets!"
 #endif
     PLT_CIE_LENGTH, 0, 0, 0,		/* CIE length */
-    0, 0, 0, 0,                         /* CIE ID */
-    1,                                  /* CIE version */
-    'z', 'R', 0,                        /* Augmentation string */
-    1,                                  /* Code alignment factor */
-    0x7c,                               /* Data alignment factor: -4 */
-    8,                                  /* Return address column */
+    0, 0, 0, 0,				/* CIE ID */
+    1,					/* CIE version */
+    'z', 'R', 0,			/* Augmentation string */
+    1,					/* Code alignment factor */
+    0x7c,				/* Data alignment factor: -4 */
+    8,					/* Return address column */
     1,					/* Augmentation size */
     DW_EH_PE_pcrel | DW_EH_PE_sdata4,	/* FDE encoding */
     DW_CFA_def_cfa, 4, 4,		/* DW_CFA_def_cfa: r4 (esp) ofs 4 */
     DW_CFA_offset + 8, 1,		/* DW_CFA_offset: r8 (eip) at cfa-4 */
     DW_CFA_nop, DW_CFA_nop,
 
-    PLT_FDE_LENGTH, 0, 0, 0,     /* FDE length */
+    PLT_FDE_LENGTH, 0, 0, 0,	 /* FDE length */
     PLT_CIE_LENGTH + 8, 0, 0, 0, /* CIE pointer */
-    0, 0, 0, 0,                  /* R_386_PC32 .plt goes here */
-    0, 0, 0, 0,                  /* .plt size goes here */
-    0,                           /* Augmentation size */
-    DW_CFA_def_cfa_offset, 8,    /* DW_CFA_def_cfa_offset: 8 */
-    DW_CFA_advance_loc + 6,      /* DW_CFA_advance_loc: 6 to __PLT__+6 */
-    DW_CFA_def_cfa_offset, 12,   /* DW_CFA_def_cfa_offset: 12 */
-    DW_CFA_advance_loc + 58,     /* DW_CFA_advance_loc: 58 to __PLT__+64 */
-    DW_CFA_def_cfa_expression,   /* DW_CFA_def_cfa_expression */
-    13,                          /* Block length */
-    DW_OP_breg4, 4,              /* DW_OP_breg4 (esp): 4 */
-    DW_OP_breg8, 0,              /* DW_OP_breg8 (eip): 0 */
+    0, 0, 0, 0,			 /* R_386_PC32 .plt goes here */
+    0, 0, 0, 0,			 /* .plt size goes here */
+    0,				 /* Augmentation size */
+    DW_CFA_def_cfa_offset, 8,	 /* DW_CFA_def_cfa_offset: 8 */
+    DW_CFA_advance_loc + 6,	 /* DW_CFA_advance_loc: 6 to __PLT__+6 */
+    DW_CFA_def_cfa_offset, 12,	 /* DW_CFA_def_cfa_offset: 12 */
+    DW_CFA_advance_loc + 58,	 /* DW_CFA_advance_loc: 58 to __PLT__+64 */
+    DW_CFA_def_cfa_expression,	 /* DW_CFA_def_cfa_expression */
+    13,				 /* Block length */
+    DW_OP_breg4, 4,		 /* DW_OP_breg4 (esp): 4 */
+    DW_OP_breg8, 0,		 /* DW_OP_breg8 (eip): 0 */
     DW_OP_const1u, 63, DW_OP_and, DW_OP_const1u, 37, DW_OP_ge,
     DW_OP_lit2, DW_OP_shl, DW_OP_plus,
     DW_CFA_nop, DW_CFA_nop
   };
 
-static const struct elf_i386_plt_layout elf_i386_nacl_plt =
+static const struct elf_x86_lazy_plt_layout elf_i386_nacl_plt =
   {
     elf_i386_nacl_plt0_entry,		/* plt0_entry */
     sizeof (elf_i386_nacl_plt0_entry),	/* plt0_entry_size */
-    2,					/* plt0_got1_offset */
-    8,					/* plt0_got2_offset */
     elf_i386_nacl_plt_entry,		/* plt_entry */
     NACL_PLT_ENTRY_SIZE,		/* plt_entry_size */
+    2,					/* plt0_got1_offset */
+    8,					/* plt0_got2_offset */
+    0,					/* plt0_got2_insn_end */
     2,					/* plt_got_offset */
     33,					/* plt_reloc_offset */
     38,					/* plt_plt_offset */
+    0,					/* plt_got_insn_size */
+    0,					/* plt_plt_insn_end */
     32,					/* plt_lazy_offset */
     elf_i386_nacl_pic_plt0_entry,	/* pic_plt0_entry */
     elf_i386_nacl_pic_plt_entry,	/* pic_plt_entry */
     elf_i386_nacl_eh_frame_plt,		/* eh_frame_plt */
-    sizeof (elf_i386_nacl_eh_frame_plt),/* eh_frame_plt_size */
-    NULL,				/* eh_frame_plt_got */
-    0,					/* eh_frame_plt_got_size */
+    sizeof (elf_i386_nacl_eh_frame_plt) /* eh_frame_plt_size */
   };
 
-static const struct elf_i386_backend_data elf_i386_nacl_arch_bed =
+static const struct elf_x86_backend_data elf_i386_nacl_arch_bed =
   {
-    &elf_i386_nacl_plt,                      /* plt */
-    0x90,				/* plt0_pad_byte: nop insn */
-    0,                                  /* is_vxworks */
+    is_nacl				/* os */
   };
 
 static bfd_boolean
@@ -6655,14 +4801,14 @@ elf32_i386_nacl_elf_object_p (bfd *abfd)
 #undef	TARGET_LITTLE_NAME
 #define TARGET_LITTLE_NAME		"elf32-i386-vxworks"
 #undef	ELF_OSABI
+#undef	ELF_MAXPAGESIZE
+#define ELF_MAXPAGESIZE			0x1000
 #undef	elf_backend_plt_alignment
 #define elf_backend_plt_alignment	4
 
-static const struct elf_i386_backend_data elf_i386_vxworks_arch_bed =
+static const struct elf_x86_backend_data elf_i386_vxworks_arch_bed =
   {
-    &elf_i386_plt,                      /* plt */
-    0x90,                               /* plt0_pad_byte */
-    1,                                  /* is_vxworks */
+    is_vxworks				/* os */
   };
 
 #undef	elf_backend_arch_data
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-i860.c ./bfd/elf32-i860.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-i860.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-i860.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Intel i860 specific support for 32-bit ELF.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    Full i860 support contributed by Jason Eckhardt <jle@cygnus.com>.
 
@@ -29,12 +29,12 @@
 /* special_function for R_860_PC26 relocation.  */
 static bfd_reloc_status_type
 i860_howto_pc26_reloc (bfd *abfd ATTRIBUTE_UNUSED,
-                       arelent *reloc_entry,
-                       asymbol *symbol,
-                       void *data ATTRIBUTE_UNUSED,
-                       asection *input_section,
-                       bfd *output_bfd,
-                       char **error_message ATTRIBUTE_UNUSED)
+		       arelent *reloc_entry,
+		       asymbol *symbol,
+		       void *data ATTRIBUTE_UNUSED,
+		       asection *input_section,
+		       bfd *output_bfd,
+		       char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma insn;
   bfd_vma relocation;
@@ -68,9 +68,9 @@ i860_howto_pc26_reloc (bfd *abfd ATTRIBU
 
   /* Adjust for PC-relative relocation.  */
   relocation -= (input_section->output_section->vma
-                 + input_section->output_offset
-                 + reloc_entry->address
-                 + 4);
+		 + input_section->output_offset
+		 + reloc_entry->address
+		 + 4);
 
   /* Check for target out of range.  */
   if ((bfd_signed_vma)relocation > (0x3ffffff << 2)
@@ -82,7 +82,7 @@ i860_howto_pc26_reloc (bfd *abfd ATTRIBU
 
   relocation >>= reloc_entry->howto->rightshift;
   insn = (insn & ~reloc_entry->howto->dst_mask)
-         | (relocation & reloc_entry->howto->dst_mask);
+	 | (relocation & reloc_entry->howto->dst_mask);
 
   bfd_put_32 (abfd, (bfd_vma) insn, addr);
 
@@ -92,12 +92,12 @@ i860_howto_pc26_reloc (bfd *abfd ATTRIBU
 /* special_function for R_860_PC16 relocation.  */
 static bfd_reloc_status_type
 i860_howto_pc16_reloc (bfd *abfd,
-                       arelent *reloc_entry,
-                       asymbol *symbol,
-                       void *data,
-                       asection *input_section,
-                       bfd *output_bfd,
-                       char **error_message ATTRIBUTE_UNUSED)
+		       arelent *reloc_entry,
+		       asymbol *symbol,
+		       void *data,
+		       asection *input_section,
+		       bfd *output_bfd,
+		       char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma insn;
   bfd_vma relocation;
@@ -131,9 +131,9 @@ i860_howto_pc16_reloc (bfd *abfd,
 
   /* Adjust for PC-relative relocation.  */
   relocation -= (input_section->output_section->vma
-                 + input_section->output_offset
-                 + reloc_entry->address
-                 + 4);
+		 + input_section->output_offset
+		 + reloc_entry->address
+		 + 4);
 
   /* Check for target out of range.  */
   if ((bfd_signed_vma)relocation > (0x7fff << 2)
@@ -145,7 +145,7 @@ i860_howto_pc16_reloc (bfd *abfd,
 
   relocation >>= reloc_entry->howto->rightshift;
   relocation = (((relocation & 0xf800) << 5) | (relocation & 0x7ff))
-               & reloc_entry->howto->dst_mask;
+	       & reloc_entry->howto->dst_mask;
   insn = (insn & ~reloc_entry->howto->dst_mask) | relocation;
 
   bfd_put_32 (abfd, (bfd_vma) insn, addr);
@@ -156,12 +156,12 @@ i860_howto_pc16_reloc (bfd *abfd,
 /* special_function for R_860_HIGHADJ relocation.  */
 static bfd_reloc_status_type
 i860_howto_highadj_reloc (bfd *abfd,
-                          arelent *reloc_entry,
-                          asymbol *symbol,
-                          void *data,
-                          asection *input_section,
-                          bfd *output_bfd,
-                          char **error_message ATTRIBUTE_UNUSED)
+			  arelent *reloc_entry,
+			  asymbol *symbol,
+			  void *data,
+			  asection *input_section,
+			  bfd *output_bfd,
+			  char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma insn;
   bfd_vma relocation;
@@ -209,12 +209,12 @@ i860_howto_highadj_reloc (bfd *abfd,
 /* special_function for R_860_SPLITn relocations.  */
 static bfd_reloc_status_type
 i860_howto_splitn_reloc (bfd *abfd,
-                         arelent *reloc_entry,
-                         asymbol *symbol,
-                         void *data,
-                         asection *input_section,
-                         bfd *output_bfd,
-                         char **error_message ATTRIBUTE_UNUSED)
+			 arelent *reloc_entry,
+			 asymbol *symbol,
+			 void *data,
+			 asection *input_section,
+			 bfd *output_bfd,
+			 char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma insn;
   bfd_vma relocation;
@@ -250,7 +250,7 @@ i860_howto_splitn_reloc (bfd *abfd,
   insn = bfd_get_32 (abfd, addr);
 
   relocation = (((relocation & 0xf800) << 5) | (relocation & 0x7ff))
-               & reloc_entry->howto->dst_mask;
+	       & reloc_entry->howto->dst_mask;
   insn = (insn & ~reloc_entry->howto->dst_mask) | relocation;
 
   bfd_put_32 (abfd, (bfd_vma) insn, addr);
@@ -348,7 +348,7 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE),		/* pcrel_offset */
 
   /* A 26-bit PC-relative relocation.  */
-  HOWTO (R_860_PC26,	        /* type */
+  HOWTO (R_860_PC26,		/* type */
 	 2,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 26,			/* bitsize */
@@ -360,9 +360,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0x3ffffff,		/* src_mask */
 	 0x3ffffff,		/* dst_mask */
-	 TRUE),		        /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_860_PLT26,	        /* type */
+  HOWTO (R_860_PLT26,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 26,			/* bitsize */
@@ -374,10 +374,10 @@ static reloc_howto_type elf32_i860_howto
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 TRUE),		        /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* A 16-bit PC-relative relocation.  */
-  HOWTO (R_860_PC16,	        /* type */
+  HOWTO (R_860_PC16,		/* type */
 	 2,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -389,9 +389,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0x1f07ff,		/* src_mask */
 	 0x1f07ff,		/* dst_mask */
-	 TRUE),		        /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_860_LOW0,	        /* type */
+  HOWTO (R_860_LOW0,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -403,9 +403,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_SPLIT0,	        /* type */
+  HOWTO (R_860_SPLIT0,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -417,9 +417,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0x1f07ff,		/* src_mask */
 	 0x1f07ff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_LOW1,	        /* type */
+  HOWTO (R_860_LOW1,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -431,9 +431,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0xfffe,		/* src_mask */
 	 0xfffe,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_SPLIT1,	        /* type */
+  HOWTO (R_860_SPLIT1,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -445,9 +445,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0x1f07fe,		/* src_mask */
 	 0x1f07fe,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_LOW2,	        /* type */
+  HOWTO (R_860_LOW2,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -459,9 +459,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0xfffc,		/* src_mask */
 	 0xfffc,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_SPLIT2,	        /* type */
+  HOWTO (R_860_SPLIT2,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -473,9 +473,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0x1f07fc,		/* src_mask */
 	 0x1f07fc,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_LOW3,	        /* type */
+  HOWTO (R_860_LOW3,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -487,9 +487,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0xfff8,		/* src_mask */
 	 0xfff8,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_LOGOT0,	        /* type */
+  HOWTO (R_860_LOGOT0,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -501,9 +501,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffff,		/* dst_mask */
-	 TRUE),		        /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_860_SPGOT0,	        /* type */
+  HOWTO (R_860_SPGOT0,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -515,9 +515,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffff,		/* dst_mask */
-	 TRUE),		        /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_860_LOGOT1,	        /* type */
+  HOWTO (R_860_LOGOT1,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -529,9 +529,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffff,		/* dst_mask */
-	 TRUE),		        /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_860_SPGOT1,	        /* type */
+  HOWTO (R_860_SPGOT1,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -543,9 +543,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffff,		/* dst_mask */
-	 TRUE),		        /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_860_LOGOTOFF0,        /* type */
+  HOWTO (R_860_LOGOTOFF0,	 /* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -557,9 +557,9 @@ static reloc_howto_type elf32_i860_howto
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_SPGOTOFF0,        /* type */
+  HOWTO (R_860_SPGOTOFF0,	 /* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -571,9 +571,9 @@ static reloc_howto_type elf32_i860_howto
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_LOGOTOFF1,        /* type */
+  HOWTO (R_860_LOGOTOFF1,	 /* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -585,7 +585,7 @@ static reloc_howto_type elf32_i860_howto
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_860_SPGOTOFF1,       /* type */
 	 0,			/* rightshift */
@@ -599,9 +599,9 @@ static reloc_howto_type elf32_i860_howto
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_LOGOTOFF2,        /* type */
+  HOWTO (R_860_LOGOTOFF2,	 /* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -613,9 +613,9 @@ static reloc_howto_type elf32_i860_howto
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_LOGOTOFF3,        /* type */
+  HOWTO (R_860_LOGOTOFF3,	 /* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -627,9 +627,9 @@ static reloc_howto_type elf32_i860_howto
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_LOPC,	        /* type */
+  HOWTO (R_860_LOPC,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -641,9 +641,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 TRUE),		        /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_860_HIGHADJ,	        /* type */
+  HOWTO (R_860_HIGHADJ,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -655,9 +655,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_HAGOT,	        /* type */
+  HOWTO (R_860_HAGOT,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -669,9 +669,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffff,		/* dst_mask */
-	 TRUE),		        /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_860_HAGOTOFF,        /* type */
+  HOWTO (R_860_HAGOTOFF,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -683,9 +683,9 @@ static reloc_howto_type elf32_i860_howto
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_HAPC,	        /* type */
+  HOWTO (R_860_HAPC,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -697,9 +697,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 TRUE),		        /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_860_HIGH,	        /* type */
+  HOWTO (R_860_HIGH,		/* type */
 	 16,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -711,9 +711,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_860_HIGOT,	        /* type */
+  HOWTO (R_860_HIGOT,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -725,9 +725,9 @@ static reloc_howto_type elf32_i860_howto
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffff,		/* dst_mask */
-	 TRUE),		        /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_860_HIGOTOFF,        /* type */
+  HOWTO (R_860_HIGOTOFF,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -739,7 +739,7 @@ static reloc_howto_type elf32_i860_howto
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
-	 FALSE),	        /* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 };
 
 static unsigned char elf_code_to_howto_index[R_860_max + 1];
@@ -758,7 +758,7 @@ lookup_howto (unsigned int rtype)
       memset (elf_code_to_howto_index, 0xff,
 	      sizeof (elf_code_to_howto_index));
       for (i = 0; i < howto_tbl_size; i++)
-        elf_code_to_howto_index[elf32_i860_howto_table[i].type] = i;
+	elf_code_to_howto_index[elf32_i860_howto_table[i].type] = i;
     }
 
   BFD_ASSERT (rtype <= R_860_max);
@@ -1089,15 +1089,15 @@ elf32_i860_relocate_section (bfd *output
 
   for (rel = relocs; rel < relend; rel ++)
     {
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
+      reloc_howto_type *	   howto;
+      unsigned long		   r_symndx;
+      Elf_Internal_Sym *	   sym;
+      asection *		   sec;
       struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 name = NULL;
-      int                          r_type;
+      bfd_vma			   relocation;
+      bfd_reloc_status_type	   r;
+      const char *		   name = NULL;
+      int			   r_type;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -1255,7 +1255,7 @@ elf32_i860_is_local_label_name (bfd *abf
 #define ELF_MAXPAGESIZE		4096
 
 #define elf_backend_rela_normal			1
-#define elf_info_to_howto_rel                   NULL
+#define elf_info_to_howto_rel			NULL
 #define elf_info_to_howto			elf32_i860_info_to_howto_rela
 #define elf_backend_relocate_section		elf32_i860_relocate_section
 #define bfd_elf32_bfd_reloc_type_lookup		elf32_i860_reloc_type_lookup
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-i960.c ./bfd/elf32-i960.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-i960.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-i960.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Intel 960 specific support for 32-bit ELF
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -117,8 +117,8 @@ elf32_i960_bfd_to_reloc_type (bfd_reloc_
 }
 
 static void
-elf32_i960_info_to_howto (bfd *               abfd ATTRIBUTE_UNUSED,
-			  arelent *           cache_ptr ATTRIBUTE_UNUSED,
+elf32_i960_info_to_howto (bfd *		      abfd ATTRIBUTE_UNUSED,
+			  arelent *	      cache_ptr ATTRIBUTE_UNUSED,
 			  Elf_Internal_Rela * dst ATTRIBUTE_UNUSED)
 {
   abort ();
@@ -169,6 +169,6 @@ elf32_i960_reloc_name_lookup (bfd *abfd 
 #define TARGET_LITTLE_NAME	"elf32-i960"
 #define ELF_ARCH		bfd_arch_i960
 #define ELF_MACHINE_CODE	EM_960
-#define ELF_MAXPAGESIZE  	1 /* FIXME: This number is wrong,  It should be the page size in bytes.  */
+#define ELF_MAXPAGESIZE		1 /* FIXME: This number is wrong,  It should be the page size in bytes.  */
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-ip2k.c ./bfd/elf32-ip2k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-ip2k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-ip2k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Ubicom IP2xxx specific support for 32-bit ELF
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -30,7 +30,7 @@ struct misc
 {
   Elf_Internal_Shdr *  symtab_hdr;
   Elf_Internal_Rela *  irelbase;
-  bfd_byte *           contents;
+  bfd_byte *	       contents;
   Elf_Internal_Sym *   isymbuf;
 };
 
@@ -126,19 +126,19 @@ static const struct ip2k_opcode ip2k_ski
 static reloc_howto_type ip2k_elf_howto_table [] =
 {
 #define IP2K_HOWTO(t,rs,s,bs,pr,bp,name,sm,dm) \
-    HOWTO(t,                    /* type */ \
-          rs,                   /* rightshift */ \
-          s,                    /* size (0 = byte, 1 = short, 2 = long) */ \
-          bs,                   /* bitsize */ \
-          pr,                   /* pc_relative */ \
-          bp,                   /* bitpos */ \
-          complain_overflow_dont,/* complain_on_overflow */ \
-          bfd_elf_generic_reloc,/* special_function */ \
-          name,                 /* name */ \
-          FALSE,                /* partial_inplace */ \
-          sm,                   /* src_mask */ \
-          dm,                   /* dst_mask */ \
-          pr)                   /* pcrel_offset */
+    HOWTO(t,			/* type */ \
+	  rs,			/* rightshift */ \
+	  s,			/* size (0 = byte, 1 = short, 2 = long) */ \
+	  bs,			/* bitsize */ \
+	  pr,			/* pc_relative */ \
+	  bp,			/* bitpos */ \
+	  complain_overflow_dont,/* complain_on_overflow */ \
+	  bfd_elf_generic_reloc,/* special_function */ \
+	  name,			/* name */ \
+	  FALSE,		/* partial_inplace */ \
+	  sm,			/* src_mask */ \
+	  dm,			/* dst_mask */ \
+	  pr)			/* pcrel_offset */
 
   /* This reloc does nothing.  */
   IP2K_HOWTO (R_IP2K_NONE, 0,3,0, FALSE, 0, "R_IP2K_NONE", 0, 0),
@@ -314,30 +314,30 @@ symbol_value (bfd *abfd,
    the prologue of a switch dispatch table with fewer than
    128 entries.
 
-          sc
-          page    $nnn0
-          jmp     $nnn0
-          add     w,wreg
-          add     pcl,w
+	  sc
+	  page	  $nnn0
+	  jmp	  $nnn0
+	  add	  w,wreg
+	  add	  pcl,w
   addr=>
-          page    $nnn1
-          jmp     $nnn1
- 	   page    $nnn2
- 	   jmp     $nnn2
- 	   ...
- 	   page    $nnnN
- 	   jmp     $nnnN
+	  page	  $nnn1
+	  jmp	  $nnn1
+	   page	   $nnn2
+	   jmp	   $nnn2
+	   ...
+	   page	   $nnnN
+	   jmp	   $nnnN
 
   After relaxation.
-  	   sc
- 	   page    $nnn0
-  	   jmp     $nnn0
- 	   add     pcl,w
+	   sc
+	   page	   $nnn0
+	   jmp	   $nnn0
+	   add	   pcl,w
   addr=>
-  	   jmp     $nnn1
- 	   jmp     $nnn2
- 	   ...
-          jmp     $nnnN  */
+	   jmp	   $nnn1
+	   jmp	   $nnn2
+	   ...
+	  jmp	  $nnnN  */
 
 static int
 ip2k_is_switch_table_128 (bfd *abfd ATTRIBUTE_UNUSED,
@@ -384,40 +384,40 @@ ip2k_is_switch_table_128 (bfd *abfd ATTR
    256 entries but more than 127.
 
    Before relaxation.
-          push    %lo8insn(label) ; Push address of table
-          push    %hi8insn(label)
-          add     w,wreg          ; index*2 => offset
-          snc                     ; CARRY SET?
-          inc     1(sp)           ; Propagate MSB into table address
-          add     2(sp),w         ; Add low bits of offset to table address
-          snc                     ; and handle any carry-out
-          inc     1(sp)
+	  push	  %lo8insn(label) ; Push address of table
+	  push	  %hi8insn(label)
+	  add	  w,wreg	  ; index*2 => offset
+	  snc			  ; CARRY SET?
+	  inc	  1(sp)		  ; Propagate MSB into table address
+	  add	  2(sp),w	  ; Add low bits of offset to table address
+	  snc			  ; and handle any carry-out
+	  inc	  1(sp)
    addr=>
-          page    __indjmp        ; Do an indirect jump to that location
-          jmp     __indjmp
-   label:                         ; case dispatch table starts here
- 	   page    $nnn1
- 	   jmp	   $nnn1
- 	   page	   $nnn2
- 	   jmp     $nnn2
- 	   ...
- 	   page    $nnnN
- 	   jmp	   $nnnN
+	  page	  __indjmp	  ; Do an indirect jump to that location
+	  jmp	  __indjmp
+   label:			  ; case dispatch table starts here
+	   page	   $nnn1
+	   jmp	   $nnn1
+	   page	   $nnn2
+	   jmp	   $nnn2
+	   ...
+	   page	   $nnnN
+	   jmp	   $nnnN
 
   After relaxation.
-          push    %lo8insn(label) ; Push address of table
-          push    %hi8insn(label)
-          add     2(sp),w         ; Add low bits of offset to table address
-          snc                     ; and handle any carry-out
-          inc     1(sp)
+	  push	  %lo8insn(label) ; Push address of table
+	  push	  %hi8insn(label)
+	  add	  2(sp),w	  ; Add low bits of offset to table address
+	  snc			  ; and handle any carry-out
+	  inc	  1(sp)
   addr=>
-          page    __indjmp        ; Do an indirect jump to that location
-          jmp     __indjmp
-   label:                         ; case dispatch table starts here
-          jmp     $nnn1
-          jmp     $nnn2
-          ...
-          jmp     $nnnN  */
+	  page	  __indjmp	  ; Do an indirect jump to that location
+	  jmp	  __indjmp
+   label:			  ; case dispatch table starts here
+	  jmp	  $nnn1
+	  jmp	  $nnn2
+	  ...
+	  jmp	  $nnnN  */
 
 static int
 ip2k_is_switch_table_256 (bfd *abfd ATTRIBUTE_UNUSED,
@@ -515,12 +515,12 @@ ip2k_nominal_page_bits (bfd *abfd ATTRIB
 
       /* Found a page instruction, check if conditional.  */
       if (addr >= 2)
-        {
+	{
 	  ip2k_get_mem (abfd, contents + addr - 2, 2, code);
-          if (IS_SKIP_OPCODE (code))
+	  if (IS_SKIP_OPCODE (code))
 	    /* Page is conditional.  */
 	    continue;
-        }
+	}
 
       /* Unconditional page instruction => page bits should be correct.  */
       return page;
@@ -593,32 +593,32 @@ adjust_all_relocations (bfd *abfd,
   for (irel = irelbase; irel < irelend; irel++)
     {
       if (ELF32_R_TYPE (irel->r_info) != R_IP2K_NONE)
-        {
-          /* Get the value of the symbol referred to by the reloc.  */
-          if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info)
-            {
-              asection *sym_sec;
+	{
+	  /* Get the value of the symbol referred to by the reloc.  */
+	  if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info)
+	    {
+	      asection *sym_sec;
 
-              /* A local symbol.  */
+	      /* A local symbol.  */
 	      isym = isymbuf + ELF32_R_SYM (irel->r_info);
-              sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx);
+	      sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx);
 
-              if (isym->st_shndx == shndx)
-                {
-                  bfd_vma baseaddr = BASEADDR (sec);
-                  bfd_vma symval = BASEADDR (sym_sec) + isym->st_value
-                                   + irel->r_addend;
-
-                  if ((baseaddr + addr + noadj) <= symval
-                      && symval < (baseaddr + endaddr))
-                    irel->r_addend += count;
-                }
-            }
-        }
+	      if (isym->st_shndx == shndx)
+		{
+		  bfd_vma baseaddr = BASEADDR (sec);
+		  bfd_vma symval = BASEADDR (sym_sec) + isym->st_value
+				   + irel->r_addend;
+
+		  if ((baseaddr + addr + noadj) <= symval
+		      && symval < (baseaddr + endaddr))
+		    irel->r_addend += count;
+		}
+	    }
+	}
 
       /* Do this only for PC space relocations.  */
       if (addr <= irel->r_offset && irel->r_offset < endaddr)
-        irel->r_offset += count;
+	irel->r_offset += count;
     }
 
   /* Now fix the stab relocations.  */
@@ -770,8 +770,8 @@ adjust_all_relocations (bfd *abfd,
 	   || sym_hash->root.type == bfd_link_hash_defweak)
 	  && sym_hash->root.u.def.section == sec)
 	{
-          if (addr <= sym_hash->root.u.def.value
-              && sym_hash->root.u.def.value < endaddr)
+	  if (addr <= sym_hash->root.u.def.value
+	      && sym_hash->root.u.def.value < endaddr)
 	    sym_hash->root.u.def.value += count;
 	}
     }
@@ -850,18 +850,18 @@ ip2k_relax_switch_table_128 (bfd *abfd A
 	break;
 
       /* Validate relocation entry (every entry should have a matching
-          relocation entry).  */
+	  relocation entry).  */
       if (ireltest >= irelend)
-        {
+	{
 	  _bfd_error_handler (_("ip2k relaxer: switch table without complete matching relocation information."));
-          return FALSE;
-        }
+	  return FALSE;
+	}
 
       if (ireltest->r_offset != addr)
-        {
+	{
 	  _bfd_error_handler (_("ip2k relaxer: switch table without complete matching relocation information."));
-          return FALSE;
-        }
+	  return FALSE;
+	}
 
       if (! ip2k_test_page_insn (abfd, sec, ireltest, misc))
 	/* Un-removable page insn => nothing can be done.  */
@@ -923,18 +923,18 @@ ip2k_relax_switch_table_256 (bfd *abfd A
 	break;
 
       /* Validate relocation entry (every entry should have a matching
-          relocation entry).  */
+	  relocation entry).  */
       if (ireltest >= irelend)
-        {
-          _bfd_error_handler (_("ip2k relaxer: switch table without complete matching relocation information."));
-          return FALSE;
-        }
+	{
+	  _bfd_error_handler (_("ip2k relaxer: switch table without complete matching relocation information."));
+	  return FALSE;
+	}
 
       if (ireltest->r_offset != addr)
-        {
-          _bfd_error_handler (_("ip2k relaxer: switch table without complete matching relocation information."));
-          return FALSE;
-        }
+	{
+	  _bfd_error_handler (_("ip2k relaxer: switch table without complete matching relocation information."));
+	  return FALSE;
+	}
 
       if (!ip2k_test_page_insn (abfd, sec, ireltest, misc))
 	/* Un-removable page insn => nothing can be done.  */
@@ -1144,9 +1144,9 @@ ip2k_elf_relax_section (bfd *abfd,
   if ((pass == 1) || (new_pass && !changed))
     {
       /* On the first pass we simply search for the lowest page that
-         we havn't relaxed yet. Note that the pass count is reset
-         each time a page is complete in order to move on to the next page.
-         If we can't find any more pages then we are finished.  */
+	 we havn't relaxed yet. Note that the pass count is reset
+	 each time a page is complete in order to move on to the next page.
+	 If we can't find any more pages then we are finished.  */
       if (new_pass)
 	{
 	  pass = 1;
@@ -1181,7 +1181,7 @@ ip2k_elf_relax_section (bfd *abfd,
       if ((BASEADDR (sec) + sec->size >= page_start)
 	  && (BASEADDR (sec) <= page_end))
 	{
-          if (!ip2k_elf_relax_section_page (abfd, sec, &changed, &misc, page_start, page_end))
+	  if (!ip2k_elf_relax_section_page (abfd, sec, &changed, &misc, page_start, page_end))
 	    return FALSE;
 	}
       *again = TRUE;
@@ -1253,11 +1253,11 @@ ip2k_info_to_howto_rela (bfd * abfd ATTR
 
 static bfd_reloc_status_type
 ip2k_final_link_relocate (reloc_howto_type *  howto,
-			  bfd *               input_bfd,
-			  asection *          input_section,
-			  bfd_byte *          contents,
+			  bfd *		      input_bfd,
+			  asection *	      input_section,
+			  bfd_byte *	      contents,
 			  Elf_Internal_Rela * rel,
-			  bfd_vma             relocation)
+			  bfd_vma	      relocation)
 {
   static bfd_vma page_addr = 0;
 
@@ -1293,17 +1293,17 @@ ip2k_final_link_relocate (reloc_howto_ty
 	  /* No preceding page instruction, verify that it isn't needed.  */
 	  if (PAGENO (relocation + rel->r_addend) !=
 	      ip2k_nominal_page_bits (input_bfd, input_section,
-	      			      rel->r_offset, contents))
+				      rel->r_offset, contents))
 	    /* xgettext:c-format */
-	    _bfd_error_handler (_("ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)."),
+	    _bfd_error_handler (_("ip2k linker: missing page instruction at %#Lx (dest = %#Lx)"),
 				BASEADDR (input_section) + rel->r_offset,
 				relocation + rel->r_addend);
-        }
+	}
       else if (ip2k_relaxed)
-        {
-          /* Preceding page instruction. Verify that the page instruction is
-             really needed. One reason for the relaxation to miss a page is if
-             the section is not marked as executable.  */
+	{
+	  /* Preceding page instruction. Verify that the page instruction is
+	     really needed. One reason for the relaxation to miss a page is if
+	     the section is not marked as executable.  */
 	  if (!ip2k_is_switch_table_128 (input_bfd, input_section,
 					 rel->r_offset - 2, contents)
 	      && !ip2k_is_switch_table_256 (input_bfd, input_section,
@@ -1312,10 +1312,10 @@ ip2k_final_link_relocate (reloc_howto_ty
 		  ip2k_nominal_page_bits (input_bfd, input_section,
 					  rel->r_offset - 2, contents)))
 	    /* xgettext:c-format */
-	    _bfd_error_handler (_("ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)."),
+	    _bfd_error_handler (_("ip2k linker: redundant page instruction at %#Lx (dest = %#Lx)"),
 				page_addr,
 				relocation + rel->r_addend);
-        }
+	}
       if ((relocation & IP2K_INSN_MASK) == IP2K_INSN_VALUE)
 	relocation &= ~IP2K_INSN_MASK;
       else
@@ -1403,15 +1403,15 @@ ip2k_elf_relocate_section (bfd *output_b
 
   for (rel = relocs; rel < relend; rel ++)
     {
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
+      reloc_howto_type *	   howto;
+      unsigned long		   r_symndx;
+      Elf_Internal_Sym *	   sym;
+      asection *		   sec;
       struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 name = NULL;
-      int                          r_type;
+      bfd_vma			   relocation;
+      bfd_reloc_status_type	   r;
+      const char *		   name = NULL;
+      int			   r_type;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -1476,10 +1476,10 @@ ip2k_elf_relocate_section (bfd *output_b
 	      break;
 
 	      /* This is how ip2k_final_link_relocate tells us of a non-kosher
-                 reference between insn & data address spaces.  */
+		 reference between insn & data address spaces.  */
 	    case bfd_reloc_notsupported:
-              if (sym != NULL) /* Only if it's not an unresolved symbol.  */
-	         msg = _("unsupported relocation between data/insn address spaces");
+	      if (sym != NULL) /* Only if it's not an unresolved symbol.  */
+		 msg = _("unsupported relocation between data/insn address spaces");
 	      break;
 
 	    case bfd_reloc_dangerous:
@@ -1511,7 +1511,7 @@ ip2k_elf_relocate_section (bfd *output_b
 #define elf_info_to_howto_rel			NULL
 #define elf_info_to_howto			ip2k_info_to_howto_rela
 
-#define elf_backend_can_gc_sections     	1
+#define elf_backend_can_gc_sections		1
 #define elf_backend_rela_normal			1
 #define elf_backend_relocate_section		ip2k_elf_relocate_section
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-iq2000.c ./bfd/elf32-iq2000.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-iq2000.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-iq2000.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* IQ2000-specific support for 32-bit ELF.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -483,10 +483,6 @@ iq2000_elf_check_relocs (bfd *abfd,
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
@@ -843,8 +839,8 @@ iq2000_elf_merge_private_bfd_data (bfd *
 
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"),
-	     ibfd, (long)new_flags, (long)old_flags);
+	    (_("%B: uses different e_flags (%#x) fields than previous modules (%#x)"),
+	     ibfd, new_flags, old_flags);
 	}
     }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-lm32.c ./bfd/elf32-lm32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-lm32.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-lm32.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Lattice Mico32-specific support for 32-bit ELF
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
    Contributed by Jon Beniston <jon@beniston.com>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -50,26 +50,6 @@ extern const bfd_target lm32_elf32_fdpic
 static bfd_reloc_status_type lm32_elf_gprel_reloc
   (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
 
-/* The linker needs to keep track of the number of relocs that it
-   decides to copy as dynamic relocs in check_relocs for each symbol.
-   This is so that it can later discard them if they are found to be
-   unnecessary.  We store the information in a field extending the
-   regular ELF linker hash table.  */
-
-struct elf_lm32_dyn_relocs
-{
-  struct elf_lm32_dyn_relocs *next;
-
-  /* The input section of the reloc.  */
-  asection *sec;
-
-  /* Total number of relocs copied for the input section.  */
-  bfd_size_type count;
-
-  /* Number of pc-relative relocs copied for the input section.  */
-  bfd_size_type pc_count;
-};
-
 /* lm32 ELF linker hash entry.  */
 
 struct elf_lm32_link_hash_entry
@@ -77,7 +57,7 @@ struct elf_lm32_link_hash_entry
   struct elf_link_hash_entry root;
 
   /* Track dynamic relocs copied for this symbol.  */
-  struct elf_lm32_dyn_relocs *dyn_relocs;
+  struct elf_dyn_relocs *dyn_relocs;
 };
 
 /* lm32 ELF linker hash table.  */
@@ -133,8 +113,8 @@ lm32_elf_link_hash_newfunc (struct bfd_h
 
   /* Call the allocation method of the superclass.  */
   ret = ((struct elf_lm32_link_hash_entry *)
-         _bfd_elf_link_hash_newfunc ((struct bfd_hash_entry *) ret,
-                                     table, string));
+	 _bfd_elf_link_hash_newfunc ((struct bfd_hash_entry *) ret,
+				     table, string));
   if (ret != NULL)
     {
       struct elf_lm32_link_hash_entry *eh;
@@ -225,206 +205,206 @@ create_rofixup_section (bfd *dynobj, str
 static reloc_howto_type lm32_elf_howto_table [] =
 {
   /* This reloc does nothing.  */
-  HOWTO (R_LM32_NONE,               /* type */
-         0,                         /* rightshift */
-         3,                         /* size (0 = byte, 1 = short, 2 = long) */
-         0,                         /* bitsize */
-         FALSE,                     /* pc_relative */
-         0,                         /* bitpos */
-         complain_overflow_dont,    /* complain_on_overflow */
-         bfd_elf_generic_reloc,     /* special_function */
-         "R_LM32_NONE",             /* name */
-         FALSE,                     /* partial_inplace */
-         0,                         /* src_mask */
-         0,                         /* dst_mask */
-         FALSE),                    /* pcrel_offset */
+  HOWTO (R_LM32_NONE,		    /* type */
+	 0,			    /* rightshift */
+	 3,			    /* size (0 = byte, 1 = short, 2 = long) */
+	 0,			    /* bitsize */
+	 FALSE,			    /* pc_relative */
+	 0,			    /* bitpos */
+	 complain_overflow_dont,    /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	    /* special_function */
+	 "R_LM32_NONE",		    /* name */
+	 FALSE,			    /* partial_inplace */
+	 0,			    /* src_mask */
+	 0,			    /* dst_mask */
+	 FALSE),		    /* pcrel_offset */
 
   /* An 8 bit absolute relocation.  */
-  HOWTO (R_LM32_8,                  /* type */
-         0,                         /* rightshift */
-         0,                         /* size (0 = byte, 1 = short, 2 = long) */
-         8,                         /* bitsize */
-         FALSE,                     /* pc_relative */
-         0,                         /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,     /* special_function */
-         "R_LM32_8",                /* name */
-         FALSE,                     /* partial_inplace */
-         0,                         /* src_mask */
-         0xff,                      /* dst_mask */
-         FALSE),                    /* pcrel_offset */
+  HOWTO (R_LM32_8,		    /* type */
+	 0,			    /* rightshift */
+	 0,			    /* size (0 = byte, 1 = short, 2 = long) */
+	 8,			    /* bitsize */
+	 FALSE,			    /* pc_relative */
+	 0,			    /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	    /* special_function */
+	 "R_LM32_8",		    /* name */
+	 FALSE,			    /* partial_inplace */
+	 0,			    /* src_mask */
+	 0xff,			    /* dst_mask */
+	 FALSE),		    /* pcrel_offset */
 
   /* A 16 bit absolute relocation.  */
-  HOWTO (R_LM32_16,                 /* type */
-         0,                         /* rightshift */
-         1,                         /* size (0 = byte, 1 = short, 2 = long) */
-         16,                        /* bitsize */
-         FALSE,                     /* pc_relative */
-         0,                         /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,     /* special_function */
-         "R_LM32_16",               /* name */
-         FALSE,                     /* partial_inplace */
-         0,                         /* src_mask */
-         0xffff,                    /* dst_mask */
-         FALSE),                    /* pcrel_offset */
+  HOWTO (R_LM32_16,		    /* type */
+	 0,			    /* rightshift */
+	 1,			    /* size (0 = byte, 1 = short, 2 = long) */
+	 16,			    /* bitsize */
+	 FALSE,			    /* pc_relative */
+	 0,			    /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	    /* special_function */
+	 "R_LM32_16",		    /* name */
+	 FALSE,			    /* partial_inplace */
+	 0,			    /* src_mask */
+	 0xffff,		    /* dst_mask */
+	 FALSE),		    /* pcrel_offset */
 
   /* A 32 bit absolute relocation.  */
-  HOWTO (R_LM32_32,                 /* type */
-         0,                         /* rightshift */
-         2,                         /* size (0 = byte, 1 = short, 2 = long) */
-         32,                        /* bitsize */
-         FALSE,                     /* pc_relative */
-         0,                         /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,     /* special_function */
-         "R_LM32_32",               /* name */
-         FALSE,                     /* partial_inplace */
-         0,                         /* src_mask */
-         0xffffffff,                /* dst_mask */
-         FALSE),                    /* pcrel_offset */
-
-  HOWTO (R_LM32_HI16,               /* type */
-         16,                        /* rightshift */
-         2,                         /* size (0 = byte, 1 = short, 2 = long) */
-         16,                        /* bitsize */
-         FALSE,                     /* pc_relative */
-         0,                         /* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,     /* special_function */
-         "R_LM32_HI16",             /* name */
-         FALSE,                     /* partial_inplace */
-         0,                         /* src_mask */
-         0xffff,                    /* dst_mask */
-         FALSE),                    /* pcrel_offset */
-
-  HOWTO (R_LM32_LO16,               /* type */
-         0,                         /* rightshift */
-         2,                         /* size (0 = byte, 1 = short, 2 = long) */
-         16,                        /* bitsize */
-         FALSE,                     /* pc_relative */
-         0,                         /* bitpos */
-         complain_overflow_dont,    /* complain_on_overflow */
-         bfd_elf_generic_reloc,     /* special_function */
-         "R_LM32_LO16",             /* name */
-         FALSE,                     /* partial_inplace */
-         0,                         /* src_mask */
-         0xffff,                    /* dst_mask */
-         FALSE),                    /* pcrel_offset */
-
-  HOWTO (R_LM32_GPREL16,            /* type */
-         0,                         /* rightshift */
-         2,                         /* size (0 = byte, 1 = short, 2 = long) */
-         16,                        /* bitsize */
-         FALSE,                     /* pc_relative */
-         0,                         /* bitpos */
-         complain_overflow_dont,    /* complain_on_overflow */
-         lm32_elf_gprel_reloc,      /* special_function */
-         "R_LM32_GPREL16",          /* name */
-         FALSE,                     /* partial_inplace */
-         0,                         /* src_mask */
-         0xffff,                    /* dst_mask */
-         FALSE),                    /* pcrel_offset */
-
-  HOWTO (R_LM32_CALL,               /* type */
-         2,                         /* rightshift */
-         2,                         /* size (0 = byte, 1 = short, 2 = long) */
-         26,                        /* bitsize */
-         TRUE,                      /* pc_relative */
-         0,                         /* bitpos */
-         complain_overflow_signed,  /* complain_on_overflow */
-         bfd_elf_generic_reloc,     /* special_function */
-         "R_LM32_CALL",             /* name */
-         FALSE,                     /* partial_inplace */
-         0,                         /* src_mask */
-         0x3ffffff,                 /* dst_mask */
-         TRUE),                     /* pcrel_offset */
-
-  HOWTO (R_LM32_BRANCH,             /* type */
-         2,                         /* rightshift */
-         2,                         /* size (0 = byte, 1 = short, 2 = long) */
-         16,                        /* bitsize */
-         TRUE,                      /* pc_relative */
-         0,                         /* bitpos */
-         complain_overflow_signed,  /* complain_on_overflow */
-         bfd_elf_generic_reloc,     /* special_function */
-         "R_LM32_BRANCH",           /* name */
-         FALSE,                     /* partial_inplace */
-         0,                         /* src_mask */
-         0xffff,                    /* dst_mask */
-         TRUE),                     /* pcrel_offset */
+  HOWTO (R_LM32_32,		    /* type */
+	 0,			    /* rightshift */
+	 2,			    /* size (0 = byte, 1 = short, 2 = long) */
+	 32,			    /* bitsize */
+	 FALSE,			    /* pc_relative */
+	 0,			    /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	    /* special_function */
+	 "R_LM32_32",		    /* name */
+	 FALSE,			    /* partial_inplace */
+	 0,			    /* src_mask */
+	 0xffffffff,		    /* dst_mask */
+	 FALSE),		    /* pcrel_offset */
+
+  HOWTO (R_LM32_HI16,		    /* type */
+	 16,			    /* rightshift */
+	 2,			    /* size (0 = byte, 1 = short, 2 = long) */
+	 16,			    /* bitsize */
+	 FALSE,			    /* pc_relative */
+	 0,			    /* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	    /* special_function */
+	 "R_LM32_HI16",		    /* name */
+	 FALSE,			    /* partial_inplace */
+	 0,			    /* src_mask */
+	 0xffff,		    /* dst_mask */
+	 FALSE),		    /* pcrel_offset */
+
+  HOWTO (R_LM32_LO16,		    /* type */
+	 0,			    /* rightshift */
+	 2,			    /* size (0 = byte, 1 = short, 2 = long) */
+	 16,			    /* bitsize */
+	 FALSE,			    /* pc_relative */
+	 0,			    /* bitpos */
+	 complain_overflow_dont,    /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	    /* special_function */
+	 "R_LM32_LO16",		    /* name */
+	 FALSE,			    /* partial_inplace */
+	 0,			    /* src_mask */
+	 0xffff,		    /* dst_mask */
+	 FALSE),		    /* pcrel_offset */
+
+  HOWTO (R_LM32_GPREL16,	    /* type */
+	 0,			    /* rightshift */
+	 2,			    /* size (0 = byte, 1 = short, 2 = long) */
+	 16,			    /* bitsize */
+	 FALSE,			    /* pc_relative */
+	 0,			    /* bitpos */
+	 complain_overflow_dont,    /* complain_on_overflow */
+	 lm32_elf_gprel_reloc,	    /* special_function */
+	 "R_LM32_GPREL16",	    /* name */
+	 FALSE,			    /* partial_inplace */
+	 0,			    /* src_mask */
+	 0xffff,		    /* dst_mask */
+	 FALSE),		    /* pcrel_offset */
+
+  HOWTO (R_LM32_CALL,		    /* type */
+	 2,			    /* rightshift */
+	 2,			    /* size (0 = byte, 1 = short, 2 = long) */
+	 26,			    /* bitsize */
+	 TRUE,			    /* pc_relative */
+	 0,			    /* bitpos */
+	 complain_overflow_signed,  /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	    /* special_function */
+	 "R_LM32_CALL",		    /* name */
+	 FALSE,			    /* partial_inplace */
+	 0,			    /* src_mask */
+	 0x3ffffff,		    /* dst_mask */
+	 TRUE),			    /* pcrel_offset */
+
+  HOWTO (R_LM32_BRANCH,		    /* type */
+	 2,			    /* rightshift */
+	 2,			    /* size (0 = byte, 1 = short, 2 = long) */
+	 16,			    /* bitsize */
+	 TRUE,			    /* pc_relative */
+	 0,			    /* bitpos */
+	 complain_overflow_signed,  /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	    /* special_function */
+	 "R_LM32_BRANCH",	    /* name */
+	 FALSE,			    /* partial_inplace */
+	 0,			    /* src_mask */
+	 0xffff,		    /* dst_mask */
+	 TRUE),			    /* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy.  */
-  HOWTO (R_LM32_GNU_VTINHERIT,      /* type */
-         0,                         /* rightshift */
-         2,                         /* size (0 = byte, 1 = short, 2 = long) */
-         0,                         /* bitsize */
-         FALSE,                     /* pc_relative */
-         0,                         /* bitpos */
-         complain_overflow_dont,    /* complain_on_overflow */
-         NULL,                      /* special_function */
-         "R_LM32_GNU_VTINHERIT",    /* name */
-         FALSE,                     /* partial_inplace */
-         0,                         /* src_mask */
-         0,                         /* dst_mask */
-         FALSE),                    /* pcrel_offset */
+  HOWTO (R_LM32_GNU_VTINHERIT,	    /* type */
+	 0,			    /* rightshift */
+	 2,			    /* size (0 = byte, 1 = short, 2 = long) */
+	 0,			    /* bitsize */
+	 FALSE,			    /* pc_relative */
+	 0,			    /* bitpos */
+	 complain_overflow_dont,    /* complain_on_overflow */
+	 NULL,			    /* special_function */
+	 "R_LM32_GNU_VTINHERIT",    /* name */
+	 FALSE,			    /* partial_inplace */
+	 0,			    /* src_mask */
+	 0,			    /* dst_mask */
+	 FALSE),		    /* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage.  */
-  HOWTO (R_LM32_GNU_VTENTRY,        /* type */
-         0,                         /* rightshift */
-         2,                         /* size (0 = byte, 1 = short, 2 = long) */
-         0,                         /* bitsize */
-         FALSE,                     /* pc_relative */
-         0,                         /* bitpos */
-         complain_overflow_dont,    /* complain_on_overflow */
-         _bfd_elf_rel_vtable_reloc_fn,/* special_function */
-         "R_LM32_GNU_VTENTRY",      /* name */
-         FALSE,                     /* partial_inplace */
-         0,                         /* src_mask */
-         0,                         /* dst_mask */
-         FALSE),                    /* pcrel_offset */
-
-  HOWTO (R_LM32_16_GOT,             /* type */
-         0,                         /* rightshift */
-         2,                         /* size (0 = byte, 1 = short, 2 = long) */
-         16,                        /* bitsize */
-         FALSE,                     /* pc_relative */
-         0,                         /* bitpos */
-         complain_overflow_signed,  /* complain_on_overflow */
-         bfd_elf_generic_reloc,     /* special_function */
-         "R_LM32_16_GOT",           /* name */
-         FALSE,                     /* partial_inplace */
-         0,                         /* src_mask */
-         0xffff,                    /* dst_mask */
-         FALSE),                    /* pcrel_offset */
-
-  HOWTO (R_LM32_GOTOFF_HI16,        /* type */
-         16,                        /* rightshift */
-         2,                         /* size (0 = byte, 1 = short, 2 = long) */
-         16,                        /* bitsize */
-         FALSE,                     /* pc_relative */
-         0,                         /* bitpos */
-         complain_overflow_dont,    /* complain_on_overflow */
-         bfd_elf_generic_reloc,     /* special_function */
-         "R_LM32_GOTOFF_HI16",      /* name */
-         FALSE,                     /* partial_inplace */
-         0xffff,                    /* src_mask */
-         0xffff,                    /* dst_mask */
-         FALSE),                    /* pcrel_offset */
-
-  HOWTO (R_LM32_GOTOFF_LO16,        /* type */
-         0,                         /* rightshift */
-         2,                         /* size (0 = byte, 1 = short, 2 = long) */
-         16,                        /* bitsize */
-         FALSE,                     /* pc_relative */
-         0,                         /* bitpos */
-         complain_overflow_dont,    /* complain_on_overflow */
-         bfd_elf_generic_reloc,     /* special_function */
-         "R_LM32_GOTOFF_LO16",      /* name */
-         FALSE,                     /* partial_inplace */
-         0xffff,                    /* src_mask */
-         0xffff,                    /* dst_mask */
-         FALSE),                    /* pcrel_offset */
+  HOWTO (R_LM32_GNU_VTENTRY,	    /* type */
+	 0,			    /* rightshift */
+	 2,			    /* size (0 = byte, 1 = short, 2 = long) */
+	 0,			    /* bitsize */
+	 FALSE,			    /* pc_relative */
+	 0,			    /* bitpos */
+	 complain_overflow_dont,    /* complain_on_overflow */
+	 _bfd_elf_rel_vtable_reloc_fn,/* special_function */
+	 "R_LM32_GNU_VTENTRY",	    /* name */
+	 FALSE,			    /* partial_inplace */
+	 0,			    /* src_mask */
+	 0,			    /* dst_mask */
+	 FALSE),		    /* pcrel_offset */
+
+  HOWTO (R_LM32_16_GOT,		    /* type */
+	 0,			    /* rightshift */
+	 2,			    /* size (0 = byte, 1 = short, 2 = long) */
+	 16,			    /* bitsize */
+	 FALSE,			    /* pc_relative */
+	 0,			    /* bitpos */
+	 complain_overflow_signed,  /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	    /* special_function */
+	 "R_LM32_16_GOT",	    /* name */
+	 FALSE,			    /* partial_inplace */
+	 0,			    /* src_mask */
+	 0xffff,		    /* dst_mask */
+	 FALSE),		    /* pcrel_offset */
+
+  HOWTO (R_LM32_GOTOFF_HI16,	    /* type */
+	 16,			    /* rightshift */
+	 2,			    /* size (0 = byte, 1 = short, 2 = long) */
+	 16,			    /* bitsize */
+	 FALSE,			    /* pc_relative */
+	 0,			    /* bitpos */
+	 complain_overflow_dont,    /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	    /* special_function */
+	 "R_LM32_GOTOFF_HI16",	    /* name */
+	 FALSE,			    /* partial_inplace */
+	 0xffff,		    /* src_mask */
+	 0xffff,		    /* dst_mask */
+	 FALSE),		    /* pcrel_offset */
+
+  HOWTO (R_LM32_GOTOFF_LO16,	    /* type */
+	 0,			    /* rightshift */
+	 2,			    /* size (0 = byte, 1 = short, 2 = long) */
+	 16,			    /* bitsize */
+	 FALSE,			    /* pc_relative */
+	 0,			    /* bitpos */
+	 complain_overflow_dont,    /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	    /* special_function */
+	 "R_LM32_GOTOFF_LO16",	    /* name */
+	 FALSE,			    /* partial_inplace */
+	 0xffff,		    /* src_mask */
+	 0xffff,		    /* dst_mask */
+	 FALSE),		    /* pcrel_offset */
 
   HOWTO (R_LM32_COPY,		/* type */
 	 0,			/* rightshift */
@@ -494,29 +474,29 @@ struct lm32_reloc_map
 
 static const struct lm32_reloc_map lm32_reloc_map[] =
 {
-  { BFD_RELOC_NONE,             R_LM32_NONE },
-  { BFD_RELOC_8,                R_LM32_8 },
-  { BFD_RELOC_16,               R_LM32_16 },
-  { BFD_RELOC_32,               R_LM32_32 },
-  { BFD_RELOC_HI16,             R_LM32_HI16 },
-  { BFD_RELOC_LO16,             R_LM32_LO16 },
-  { BFD_RELOC_GPREL16,          R_LM32_GPREL16 },
-  { BFD_RELOC_LM32_CALL,        R_LM32_CALL },
-  { BFD_RELOC_LM32_BRANCH,      R_LM32_BRANCH },
-  { BFD_RELOC_VTABLE_INHERIT,   R_LM32_GNU_VTINHERIT },
-  { BFD_RELOC_VTABLE_ENTRY,     R_LM32_GNU_VTENTRY },
-  { BFD_RELOC_LM32_16_GOT,      R_LM32_16_GOT },
+  { BFD_RELOC_NONE,		R_LM32_NONE },
+  { BFD_RELOC_8,		R_LM32_8 },
+  { BFD_RELOC_16,		R_LM32_16 },
+  { BFD_RELOC_32,		R_LM32_32 },
+  { BFD_RELOC_HI16,		R_LM32_HI16 },
+  { BFD_RELOC_LO16,		R_LM32_LO16 },
+  { BFD_RELOC_GPREL16,		R_LM32_GPREL16 },
+  { BFD_RELOC_LM32_CALL,	R_LM32_CALL },
+  { BFD_RELOC_LM32_BRANCH,	R_LM32_BRANCH },
+  { BFD_RELOC_VTABLE_INHERIT,	R_LM32_GNU_VTINHERIT },
+  { BFD_RELOC_VTABLE_ENTRY,	R_LM32_GNU_VTENTRY },
+  { BFD_RELOC_LM32_16_GOT,	R_LM32_16_GOT },
   { BFD_RELOC_LM32_GOTOFF_HI16, R_LM32_GOTOFF_HI16 },
   { BFD_RELOC_LM32_GOTOFF_LO16, R_LM32_GOTOFF_LO16 },
-  { BFD_RELOC_LM32_COPY,        R_LM32_COPY },
-  { BFD_RELOC_LM32_GLOB_DAT,    R_LM32_GLOB_DAT },
-  { BFD_RELOC_LM32_JMP_SLOT,    R_LM32_JMP_SLOT },
-  { BFD_RELOC_LM32_RELATIVE,    R_LM32_RELATIVE },
+  { BFD_RELOC_LM32_COPY,	R_LM32_COPY },
+  { BFD_RELOC_LM32_GLOB_DAT,	R_LM32_GLOB_DAT },
+  { BFD_RELOC_LM32_JMP_SLOT,	R_LM32_JMP_SLOT },
+  { BFD_RELOC_LM32_RELATIVE,	R_LM32_RELATIVE },
 };
 
 static reloc_howto_type *
 lm32_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                        bfd_reloc_code_real_type code)
+			bfd_reloc_code_real_type code)
 {
   unsigned int i;
 
@@ -547,8 +527,8 @@ lm32_reloc_name_lookup (bfd *abfd ATTRIB
 
 static void
 lm32_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED,
-                         arelent *cache_ptr,
-                         Elf_Internal_Rela *dst)
+			 arelent *cache_ptr,
+			 Elf_Internal_Rela *dst)
 {
   unsigned int r_type;
 
@@ -580,10 +560,10 @@ lm32_elf_final_write_processing (bfd *ab
   switch (bfd_get_mach (abfd))
     {
       case bfd_mach_lm32:
-        elf_elfheader (abfd)->e_flags |= E_LM32_MACH;
-        break;
+	elf_elfheader (abfd)->e_flags |= E_LM32_MACH;
+	break;
       default:
-        abort ();
+	abort ();
     }
 }
 
@@ -644,7 +624,7 @@ lm32_elf_assign_gp (bfd *output_bfd, bfd
 
 static bfd_reloc_status_type
 lm32_elf_final_gp (bfd *output_bfd, asymbol *symbol, bfd_boolean relocatable,
-                    char **error_message, bfd_vma *pgp)
+		    char **error_message, bfd_vma *pgp)
 {
   if (bfd_is_und_section (symbol->section) && !relocatable)
     {
@@ -776,13 +756,13 @@ _lm32fdpic_osec_readonly_p (bfd *output_
 
 static bfd_boolean
 lm32_elf_relocate_section (bfd *output_bfd,
-                           struct bfd_link_info *info,
-                           bfd *input_bfd,
-                           asection *input_section,
-                           bfd_byte *contents,
-                           Elf_Internal_Rela *relocs,
-                           Elf_Internal_Sym *local_syms,
-                           asection **local_sections)
+			   struct bfd_link_info *info,
+			   bfd *input_bfd,
+			   asection *input_section,
+			   bfd_byte *contents,
+			   Elf_Internal_Rela *relocs,
+			   Elf_Internal_Sym *local_syms,
+			   asection **local_sections)
 {
   Elf_Internal_Shdr *symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
   struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (input_bfd);
@@ -820,8 +800,8 @@ lm32_elf_relocate_section (bfd *output_b
       r_type = ELF32_R_TYPE (rel->r_info);
 
       if (r_type == R_LM32_GNU_VTENTRY
-          || r_type == R_LM32_GNU_VTINHERIT )
-        continue;
+	  || r_type == R_LM32_GNU_VTINHERIT )
+	continue;
 
       h = NULL;
       sym = NULL;
@@ -830,19 +810,19 @@ lm32_elf_relocate_section (bfd *output_b
       howto = lm32_elf_howto_table + r_type;
 
       if (r_symndx < symtab_hdr->sh_info)
-        {
-          /* It's a local symbol.  */
-          sym = local_syms + r_symndx;
-          sec = local_sections[r_symndx];
-          relocation = _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel);
-          name = bfd_elf_string_from_elf_section
+	{
+	  /* It's a local symbol.  */
+	  sym = local_syms + r_symndx;
+	  sec = local_sections[r_symndx];
+	  relocation = _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel);
+	  name = bfd_elf_string_from_elf_section
 	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
 	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
-        }
+	}
       else
-        {
-          /* It's a global symbol.  */
-          bfd_boolean unresolved_reloc;
+	{
+	  /* It's a global symbol.  */
+	  bfd_boolean unresolved_reloc;
 	  bfd_boolean warned, ignored;
 
 	  RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
@@ -850,14 +830,14 @@ lm32_elf_relocate_section (bfd *output_b
 				   h, sec, relocation,
 				   unresolved_reloc, warned, ignored);
 	  name = h->root.root.string;
-        }
+	}
 
       if (sec != NULL && discarded_section (sec))
 	RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
 					 rel, 1, relend, howto, 0, contents);
 
       if (bfd_link_relocatable (info))
-        {
+	{
 	  /* This is a relocatable link.  We don't have to change
 	     anything, unless the reloc is against a section symbol,
 	     in which case we have to adjust according to where the
@@ -870,280 +850,280 @@ lm32_elf_relocate_section (bfd *output_b
 	  if (! howto->partial_inplace)
 	    continue;
 
-          /* Shouldn't reach here.  */
+	  /* Shouldn't reach here.  */
 	  abort ();
 	  r = bfd_reloc_ok;
-        }
+	}
       else
-        {
-          switch (howto->type)
-            {
-            case R_LM32_GPREL16:
-              if (!lm32_elf_assign_gp (output_bfd, &gp))
-                r = bfd_reloc_dangerous;
-              else
-                {
-                  relocation = relocation + rel->r_addend - gp;
-                  rel->r_addend = 0;
-                  if ((signed)relocation < -32768 || (signed)relocation > 32767)
-                    r = bfd_reloc_outofrange;
-                  else
-                    {
-                      r = _bfd_final_link_relocate (howto, input_bfd,
-                				  input_section, contents,
-               				  rel->r_offset, relocation,
-               				  rel->r_addend);
-                   }
-                }
-              break;
-            case R_LM32_16_GOT:
-              /* Relocation is to the entry for this symbol in the global
-                 offset table.  */
-              BFD_ASSERT (sgot != NULL);
-              if (h != NULL)
-                {
-                  bfd_boolean dyn;
-                  bfd_vma off;
+	{
+	  switch (howto->type)
+	    {
+	    case R_LM32_GPREL16:
+	      if (!lm32_elf_assign_gp (output_bfd, &gp))
+		r = bfd_reloc_dangerous;
+	      else
+		{
+		  relocation = relocation + rel->r_addend - gp;
+		  rel->r_addend = 0;
+		  if ((signed)relocation < -32768 || (signed)relocation > 32767)
+		    r = bfd_reloc_outofrange;
+		  else
+		    {
+		      r = _bfd_final_link_relocate (howto, input_bfd,
+						    input_section, contents,
+						    rel->r_offset, relocation,
+						    rel->r_addend);
+		    }
+		}
+	      break;
+	    case R_LM32_16_GOT:
+	      /* Relocation is to the entry for this symbol in the global
+		 offset table.  */
+	      BFD_ASSERT (sgot != NULL);
+	      if (h != NULL)
+		{
+		  bfd_boolean dyn;
+		  bfd_vma off;
 
-                  off = h->got.offset;
-                  BFD_ASSERT (off != (bfd_vma) -1);
+		  off = h->got.offset;
+		  BFD_ASSERT (off != (bfd_vma) -1);
 
-                  dyn = htab->root.dynamic_sections_created;
-                  if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
+		  dyn = htab->root.dynamic_sections_created;
+		  if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
 							 bfd_link_pic (info),
 							 h)
-                      || (bfd_link_pic (info)
-                          && (info->symbolic
-                              || h->dynindx == -1
-                              || h->forced_local)
-                          && h->def_regular))
-                    {
-                      /* This is actually a static link, or it is a
-                         -Bsymbolic link and the symbol is defined
-                         locally, or the symbol was forced to be local
-                         because of a version file.  We must initialize
-                         this entry in the global offset table.  Since the
-                         offset must always be a multiple of 4, we use the
-                         least significant bit to record whether we have
-                         initialized it already.
-
-                         When doing a dynamic link, we create a .rela.got
-                         relocation entry to initialize the value.  This
-                         is done in the finish_dynamic_symbol routine.  */
-                      if ((off & 1) != 0)
-                        off &= ~1;
-                      else
-                        {
-                          /* Write entry in GOT */
-                          bfd_put_32 (output_bfd, relocation,
-                                      sgot->contents + off);
-                          /* Create entry in .rofixup pointing to GOT entry.  */
-                           if (IS_FDPIC (output_bfd) && h->root.type != bfd_link_hash_undefweak)
-                             {
-	                       _lm32fdpic_add_rofixup (output_bfd,
-			                               lm32fdpic_fixup32_section
-				                        (info),
-				                       sgot->output_section->vma
-                                                        + sgot->output_offset
-                                                        + off);
-                             }
-                          /* Mark GOT entry as having been written.  */
-                          h->got.offset |= 1;
-                        }
-                    }
-
-                  relocation = sgot->output_offset + off;
-                }
-              else
-                {
-                  bfd_vma off;
-                  bfd_byte *loc;
-
-                  BFD_ASSERT (local_got_offsets != NULL
-                              && local_got_offsets[r_symndx] != (bfd_vma) -1);
-
-                  /* Get offset into GOT table.  */
-                  off = local_got_offsets[r_symndx];
-
-                  /* The offset must always be a multiple of 4.  We use
-                     the least significant bit to record whether we have
-                     already processed this entry.  */
-                  if ((off & 1) != 0)
-                    off &= ~1;
-                  else
-                    {
-                      /* Write entry in GOT.  */
-                      bfd_put_32 (output_bfd, relocation, sgot->contents + off);
-                      /* Create entry in .rofixup pointing to GOT entry.  */
-                      if (IS_FDPIC (output_bfd))
-                        {
-	                  _lm32fdpic_add_rofixup (output_bfd,
-				                  lm32fdpic_fixup32_section
-				                   (info),
-				                  sgot->output_section->vma
-                                                   + sgot->output_offset
-                                                   + off);
-                        }
-
-                      if (bfd_link_pic (info))
-                        {
-                          asection *srelgot;
-                          Elf_Internal_Rela outrel;
-
-                          /* We need to generate a R_LM32_RELATIVE reloc
-                             for the dynamic linker.  */
-                          srelgot = htab->root.srelgot;
-                          BFD_ASSERT (srelgot != NULL);
-
-                          outrel.r_offset = (sgot->output_section->vma
-                                             + sgot->output_offset
-                                             + off);
-                          outrel.r_info = ELF32_R_INFO (0, R_LM32_RELATIVE);
-                          outrel.r_addend = relocation;
-                          loc = srelgot->contents;
-                          loc += srelgot->reloc_count * sizeof (Elf32_External_Rela);
-                          bfd_elf32_swap_reloca_out (output_bfd, &outrel,loc);
-                          ++srelgot->reloc_count;
-                        }
-
-                      local_got_offsets[r_symndx] |= 1;
-                    }
+		      || (bfd_link_pic (info)
+			  && (info->symbolic
+			      || h->dynindx == -1
+			      || h->forced_local)
+			  && h->def_regular))
+		    {
+		      /* This is actually a static link, or it is a
+			 -Bsymbolic link and the symbol is defined
+			 locally, or the symbol was forced to be local
+			 because of a version file.  We must initialize
+			 this entry in the global offset table.  Since the
+			 offset must always be a multiple of 4, we use the
+			 least significant bit to record whether we have
+			 initialized it already.
+
+			 When doing a dynamic link, we create a .rela.got
+			 relocation entry to initialize the value.  This
+			 is done in the finish_dynamic_symbol routine.  */
+		      if ((off & 1) != 0)
+			off &= ~1;
+		      else
+			{
+			  /* Write entry in GOT */
+			  bfd_put_32 (output_bfd, relocation,
+				      sgot->contents + off);
+			  /* Create entry in .rofixup pointing to GOT entry.  */
+			   if (IS_FDPIC (output_bfd) && h->root.type != bfd_link_hash_undefweak)
+			     {
+			       _lm32fdpic_add_rofixup (output_bfd,
+						       lm32fdpic_fixup32_section
+							(info),
+						       sgot->output_section->vma
+							+ sgot->output_offset
+							+ off);
+			     }
+			  /* Mark GOT entry as having been written.  */
+			  h->got.offset |= 1;
+			}
+		    }
+
+		  relocation = sgot->output_offset + off;
+		}
+	      else
+		{
+		  bfd_vma off;
+		  bfd_byte *loc;
+
+		  BFD_ASSERT (local_got_offsets != NULL
+			      && local_got_offsets[r_symndx] != (bfd_vma) -1);
+
+		  /* Get offset into GOT table.  */
+		  off = local_got_offsets[r_symndx];
+
+		  /* The offset must always be a multiple of 4.  We use
+		     the least significant bit to record whether we have
+		     already processed this entry.  */
+		  if ((off & 1) != 0)
+		    off &= ~1;
+		  else
+		    {
+		      /* Write entry in GOT.  */
+		      bfd_put_32 (output_bfd, relocation, sgot->contents + off);
+		      /* Create entry in .rofixup pointing to GOT entry.  */
+		      if (IS_FDPIC (output_bfd))
+			{
+			  _lm32fdpic_add_rofixup (output_bfd,
+						  lm32fdpic_fixup32_section
+						   (info),
+						  sgot->output_section->vma
+						   + sgot->output_offset
+						   + off);
+			}
+
+		      if (bfd_link_pic (info))
+			{
+			  asection *srelgot;
+			  Elf_Internal_Rela outrel;
+
+			  /* We need to generate a R_LM32_RELATIVE reloc
+			     for the dynamic linker.  */
+			  srelgot = htab->root.srelgot;
+			  BFD_ASSERT (srelgot != NULL);
+
+			  outrel.r_offset = (sgot->output_section->vma
+					     + sgot->output_offset
+					     + off);
+			  outrel.r_info = ELF32_R_INFO (0, R_LM32_RELATIVE);
+			  outrel.r_addend = relocation;
+			  loc = srelgot->contents;
+			  loc += srelgot->reloc_count * sizeof (Elf32_External_Rela);
+			  bfd_elf32_swap_reloca_out (output_bfd, &outrel,loc);
+			  ++srelgot->reloc_count;
+			}
+
+		      local_got_offsets[r_symndx] |= 1;
+		    }
 
 
-                  relocation = sgot->output_offset + off;
-                }
+		  relocation = sgot->output_offset + off;
+		}
 
-              /* Addend should be zero.  */
-              if (rel->r_addend != 0)
+	      /* Addend should be zero.  */
+	      if (rel->r_addend != 0)
 		_bfd_error_handler (_("internal error: addend should be zero for R_LM32_16_GOT"));
 
-              r = _bfd_final_link_relocate (howto,
-                                            input_bfd,
-                                            input_section,
-                                            contents,
-                                            rel->r_offset,
-                                            relocation,
-                                            rel->r_addend);
-              break;
-
-            case R_LM32_GOTOFF_LO16:
-            case R_LM32_GOTOFF_HI16:
-              /* Relocation is offset from GOT.  */
+	      r = _bfd_final_link_relocate (howto,
+					    input_bfd,
+					    input_section,
+					    contents,
+					    rel->r_offset,
+					    relocation,
+					    rel->r_addend);
+	      break;
+
+	    case R_LM32_GOTOFF_LO16:
+	    case R_LM32_GOTOFF_HI16:
+	      /* Relocation is offset from GOT.  */
 	      BFD_ASSERT (sgot != NULL);
 	      relocation -= sgot->output_section->vma;
 	      /* Account for sign-extension.  */
-              if ((r_type == R_LM32_GOTOFF_HI16)
-                  && ((relocation + rel->r_addend) & 0x8000))
-                rel->r_addend += 0x10000;
-              r = _bfd_final_link_relocate (howto,
-                                            input_bfd,
-                                            input_section,
-                                            contents,
-                                            rel->r_offset,
-                                            relocation,
-                                            rel->r_addend);
-              break;
-
-            case R_LM32_32:
-              if (IS_FDPIC (output_bfd))
-                {
-                  if ((!h) || (h && h->root.type != bfd_link_hash_undefweak))
-                    {
-                      /* Only create .rofixup entries for relocs in loadable sections.  */
-                      if ((bfd_get_section_flags (output_bfd, input_section->output_section)
-                          & (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
-
-                        {
-                          /* Check address to be modified is writable.  */
-                          if (_lm32fdpic_osec_readonly_p (output_bfd,
-                                                          input_section
-                                                           ->output_section))
-                            {
-                              info->callbacks->warning
-                                (info,
-                                 _("cannot emit dynamic relocations in read-only section"),
-                                 name, input_bfd, input_section, rel->r_offset);
-                               return FALSE;
-                            }
-                          /* Create entry in .rofixup section.  */
-                          _lm32fdpic_add_rofixup (output_bfd,
-                                                  lm32fdpic_fixup32_section (info),
-                                                  input_section->output_section->vma
-                                                   + input_section->output_offset
-                                                   + rel->r_offset);
-                        }
-                    }
-                }
-              /* Fall through.  */
-
-            default:
-              r = _bfd_final_link_relocate (howto,
-                                            input_bfd,
-                                            input_section,
-                                            contents,
-                                            rel->r_offset,
-                                            relocation,
-                                            rel->r_addend);
-              break;
-            }
-        }
+	      if ((r_type == R_LM32_GOTOFF_HI16)
+		  && ((relocation + rel->r_addend) & 0x8000))
+		rel->r_addend += 0x10000;
+	      r = _bfd_final_link_relocate (howto,
+					    input_bfd,
+					    input_section,
+					    contents,
+					    rel->r_offset,
+					    relocation,
+					    rel->r_addend);
+	      break;
+
+	    case R_LM32_32:
+	      if (IS_FDPIC (output_bfd))
+		{
+		  if ((!h) || (h && h->root.type != bfd_link_hash_undefweak))
+		    {
+		      /* Only create .rofixup entries for relocs in loadable sections.  */
+		      if ((bfd_get_section_flags (output_bfd, input_section->output_section)
+			  & (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
+
+			{
+			  /* Check address to be modified is writable.  */
+			  if (_lm32fdpic_osec_readonly_p (output_bfd,
+							  input_section
+							   ->output_section))
+			    {
+			      info->callbacks->warning
+				(info,
+				 _("cannot emit dynamic relocations in read-only section"),
+				 name, input_bfd, input_section, rel->r_offset);
+			       return FALSE;
+			    }
+			  /* Create entry in .rofixup section.  */
+			  _lm32fdpic_add_rofixup (output_bfd,
+						  lm32fdpic_fixup32_section (info),
+						  input_section->output_section->vma
+						   + input_section->output_offset
+						   + rel->r_offset);
+			}
+		    }
+		}
+	      /* Fall through.  */
+
+	    default:
+	      r = _bfd_final_link_relocate (howto,
+					    input_bfd,
+					    input_section,
+					    contents,
+					    rel->r_offset,
+					    relocation,
+					    rel->r_addend);
+	      break;
+	    }
+	}
 
       if (r != bfd_reloc_ok)
-        {
-          const char *msg = NULL;
-          arelent bfd_reloc;
-
-          lm32_info_to_howto_rela (input_bfd, &bfd_reloc, rel);
-          howto = bfd_reloc.howto;
-
-          if (h != NULL)
-            name = h->root.root.string;
-          else
-            {
-              name = (bfd_elf_string_from_elf_section
-                      (input_bfd, symtab_hdr->sh_link, sym->st_name));
-              if (name == NULL || *name == '\0')
-                name = bfd_section_name (input_bfd, sec);
-            }
+	{
+	  const char *msg = NULL;
+	  arelent bfd_reloc;
 
-          switch (r)
-            {
+	  lm32_info_to_howto_rela (input_bfd, &bfd_reloc, rel);
+	  howto = bfd_reloc.howto;
+
+	  if (h != NULL)
+	    name = h->root.root.string;
+	  else
+	    {
+	      name = (bfd_elf_string_from_elf_section
+		      (input_bfd, symtab_hdr->sh_link, sym->st_name));
+	      if (name == NULL || *name == '\0')
+		name = bfd_section_name (input_bfd, sec);
+	    }
+
+	  switch (r)
+	    {
 	    case bfd_reloc_overflow:
 	      if ((h != NULL)
-                 && (h->root.type == bfd_link_hash_undefweak))
-	        break;
+		 && (h->root.type == bfd_link_hash_undefweak))
+		break;
 	      (*info->callbacks->reloc_overflow)
 		(info, (h ? &h->root : NULL), name, howto->name,
 		 (bfd_vma) 0, input_bfd, input_section, rel->r_offset);
 	      break;
 
-            case bfd_reloc_undefined:
+	    case bfd_reloc_undefined:
 	      (*info->callbacks->undefined_symbol)
 		(info, name, input_bfd, input_section, rel->r_offset, TRUE);
-              break;
-
-            case bfd_reloc_outofrange:
-              msg = _("internal error: out of range error");
-              goto common_error;
-
-            case bfd_reloc_notsupported:
-              msg = _("internal error: unsupported relocation error");
-              goto common_error;
-
-            case bfd_reloc_dangerous:
-              msg = _("internal error: dangerous error");
-              goto common_error;
+	      break;
 
-            default:
-              msg = _("internal error: unknown error");
-              /* fall through */
+	    case bfd_reloc_outofrange:
+	      msg = _("internal error: out of range error");
+	      goto common_error;
+
+	    case bfd_reloc_notsupported:
+	      msg = _("internal error: unsupported relocation error");
+	      goto common_error;
+
+	    case bfd_reloc_dangerous:
+	      msg = _("internal error: dangerous error");
+	      goto common_error;
+
+	    default:
+	      msg = _("internal error: unknown error");
+	      /* fall through */
 
-            common_error:
+	    common_error:
 	      (*info->callbacks->warning) (info, msg, name, input_bfd,
 					   input_section, rel->r_offset);
-              break;
-            }
-        }
+	      break;
+	    }
+	}
     }
 
   return TRUE;
@@ -1151,10 +1131,10 @@ lm32_elf_relocate_section (bfd *output_b
 
 static asection *
 lm32_elf_gc_mark_hook (asection *sec,
-                       struct bfd_link_info *info,
-                       Elf_Internal_Rela *rel,
-                       struct elf_link_hash_entry *h,
-                       Elf_Internal_Sym *sym)
+		       struct bfd_link_info *info,
+		       Elf_Internal_Rela *rel,
+		       struct elf_link_hash_entry *h,
+		       Elf_Internal_Sym *sym)
 {
   if (h != NULL)
     switch (ELF32_R_TYPE (rel->r_info))
@@ -1167,68 +1147,13 @@ lm32_elf_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-static bfd_boolean
-lm32_elf_gc_sweep_hook (bfd *abfd,
-                        struct bfd_link_info *info ATTRIBUTE_UNUSED,
-                        asection *sec,
-                        const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED)
-{
-  /* Update the got entry reference counts for the section being removed.  */
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	}
-
-      switch (ELF32_R_TYPE (rel->r_info))
-	{
-	case R_LM32_16_GOT:
-	  if (h != NULL)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount--;
-	    }
-	  else
-	    {
-	      if (local_got_refcounts && local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx]--;
-	    }
-	  break;
-
-	default:
-	  break;
-	}
-    }
-  return TRUE;
-}
-
 /* Look through the relocs for a section during the first phase.  */
 
 static bfd_boolean
 lm32_elf_check_relocs (bfd *abfd,
-                       struct bfd_link_info *info,
-                       asection *sec,
-                       const Elf_Internal_Rela *relocs)
+		       struct bfd_link_info *info,
+		       asection *sec,
+		       const Elf_Internal_Rela *relocs)
 {
   Elf_Internal_Shdr *symtab_hdr;
   struct elf_link_hash_entry **sym_hashes, **sym_hashes_end;
@@ -1240,6 +1165,15 @@ lm32_elf_check_relocs (bfd *abfd,
   if (bfd_link_relocatable (info))
     return TRUE;
 
+  /* Don't do anything special with non-loaded, non-alloced sections.
+     In particular, any relocs in such sections should not affect GOT
+     and PLT reference counting (ie. we don't allow them to create GOT
+     or PLT entries), there's no possibility or desire to optimize TLS
+     relocs, and there's not much point in propagating relocs to shared
+     libs that the dynamic linker won't relocate.  */
+  if ((sec->flags & SEC_ALLOC) == 0)
+    return TRUE;
+
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
   sym_hashes_end = sym_hashes + symtab_hdr->sh_size/sizeof (Elf32_External_Sym);
@@ -1262,110 +1196,106 @@ lm32_elf_check_relocs (bfd *abfd,
       r_symndx = ELF32_R_SYM (rel->r_info);
       r_type = ELF32_R_TYPE (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       /* Some relocs require a global offset table.  */
       if (htab->root.sgot == NULL)
-        {
-          switch (r_type)
-            {
-            case R_LM32_16_GOT:
-            case R_LM32_GOTOFF_HI16:
-            case R_LM32_GOTOFF_LO16:
-              if (dynobj == NULL)
-                htab->root.dynobj = dynobj = abfd;
-              if (!_bfd_elf_create_got_section (dynobj, info))
-                return FALSE;
-              break;
-            }
-        }
+	{
+	  switch (r_type)
+	    {
+	    case R_LM32_16_GOT:
+	    case R_LM32_GOTOFF_HI16:
+	    case R_LM32_GOTOFF_LO16:
+	      if (dynobj == NULL)
+		htab->root.dynobj = dynobj = abfd;
+	      if (!_bfd_elf_create_got_section (dynobj, info))
+		return FALSE;
+	      break;
+	    }
+	}
 
       /* Some relocs require a rofixup table. */
       if (IS_FDPIC (abfd))
-        {
-          switch (r_type)
-            {
-            case R_LM32_32:
-              /* FDPIC requires a GOT if there is a .rofixup section
-                 (Normal ELF doesn't). */
-              if (dynobj == NULL)
-                htab->root.dynobj = dynobj = abfd;
-              if (!_bfd_elf_create_got_section (dynobj, info))
-                return FALSE;
-              /* Create .rofixup section */
-              if (htab->sfixup32 == NULL)
-                {
-                  if (! create_rofixup_section (dynobj, info))
-                    return FALSE;
-                }
-              break;
-            case R_LM32_16_GOT:
-            case R_LM32_GOTOFF_HI16:
-            case R_LM32_GOTOFF_LO16:
-              /* Create .rofixup section.  */
-              if (htab->sfixup32 == NULL)
-                {
+	{
+	  switch (r_type)
+	    {
+	    case R_LM32_32:
+	      /* FDPIC requires a GOT if there is a .rofixup section
+		 (Normal ELF doesn't). */
+	      if (dynobj == NULL)
+		htab->root.dynobj = dynobj = abfd;
+	      if (!_bfd_elf_create_got_section (dynobj, info))
+		return FALSE;
+	      /* Create .rofixup section */
+	      if (htab->sfixup32 == NULL)
+		{
+		  if (! create_rofixup_section (dynobj, info))
+		    return FALSE;
+		}
+	      break;
+	    case R_LM32_16_GOT:
+	    case R_LM32_GOTOFF_HI16:
+	    case R_LM32_GOTOFF_LO16:
+	      /* Create .rofixup section.  */
+	      if (htab->sfixup32 == NULL)
+		{
 		  if (dynobj == NULL)
 		    htab->root.dynobj = dynobj = abfd;
-                  if (! create_rofixup_section (dynobj, info))
-                    return FALSE;
-                }
-              break;
-            }
-        }
+		  if (! create_rofixup_section (dynobj, info))
+		    return FALSE;
+		}
+	      break;
+	    }
+	}
 
       switch (r_type)
 	{
 	case R_LM32_16_GOT:
-          if (h != NULL)
-            h->got.refcount += 1;
-          else
-            {
-              bfd_signed_vma *local_got_refcounts;
-
-              /* This is a global offset table entry for a local symbol.  */
-              local_got_refcounts = elf_local_got_refcounts (abfd);
-              if (local_got_refcounts == NULL)
-                {
-                  bfd_size_type size;
-
-                  size = symtab_hdr->sh_info;
-                  size *= sizeof (bfd_signed_vma);
-                  local_got_refcounts = bfd_zalloc (abfd, size);
-                  if (local_got_refcounts == NULL)
-                    return FALSE;
-                  elf_local_got_refcounts (abfd) = local_got_refcounts;
-                }
-              local_got_refcounts[r_symndx] += 1;
-            }
-          break;
-
-        /* This relocation describes the C++ object vtable hierarchy.
-           Reconstruct it for later use during GC.  */
-        case R_LM32_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-        /* This relocation describes which C++ vtable entries are actually
-           used.  Record for later use during GC.  */
-        case R_LM32_GNU_VTENTRY:
-          if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
+	  if (h != NULL)
+	    h->got.refcount += 1;
+	  else
+	    {
+	      bfd_signed_vma *local_got_refcounts;
+
+	      /* This is a global offset table entry for a local symbol.  */
+	      local_got_refcounts = elf_local_got_refcounts (abfd);
+	      if (local_got_refcounts == NULL)
+		{
+		  bfd_size_type size;
+
+		  size = symtab_hdr->sh_info;
+		  size *= sizeof (bfd_signed_vma);
+		  local_got_refcounts = bfd_zalloc (abfd, size);
+		  if (local_got_refcounts == NULL)
+		    return FALSE;
+		  elf_local_got_refcounts (abfd) = local_got_refcounts;
+		}
+	      local_got_refcounts[r_symndx] += 1;
+	    }
+	  break;
+
+	/* This relocation describes the C++ object vtable hierarchy.
+	   Reconstruct it for later use during GC.  */
+	case R_LM32_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	/* This relocation describes which C++ vtable entries are actually
+	   used.  Record for later use during GC.  */
+	case R_LM32_GNU_VTENTRY:
+	  if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
 
-        }
+	}
     }
 
   return TRUE;
@@ -1402,91 +1332,91 @@ lm32_elf_finish_dynamic_sections (bfd *o
       dynconend = (Elf32_External_Dyn *) (sdyn->contents + sdyn->size);
 
       for (; dyncon < dynconend; dyncon++)
-        {
-          Elf_Internal_Dyn dyn;
-          asection *s;
-
-          bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
-
-          switch (dyn.d_tag)
-            {
-            default:
-              break;
-
-            case DT_PLTGOT:
-              s = htab->root.sgotplt;
-              goto get_vma;
-            case DT_JMPREL:
-              s = htab->root.srelplt;
-            get_vma:
-              dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
-              bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
-              break;
+	{
+	  Elf_Internal_Dyn dyn;
+	  asection *s;
+
+	  bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
+
+	  switch (dyn.d_tag)
+	    {
+	    default:
+	      break;
 
-            case DT_PLTRELSZ:
-              s = htab->root.srelplt;
+	    case DT_PLTGOT:
+	      s = htab->root.sgotplt;
+	      goto get_vma;
+	    case DT_JMPREL:
+	      s = htab->root.srelplt;
+	    get_vma:
+	      dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
+	      bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
+	      break;
+
+	    case DT_PLTRELSZ:
+	      s = htab->root.srelplt;
 	      dyn.d_un.d_val = s->size;
-              bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
-              break;
-            }
-        }
+	      bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
+	      break;
+	    }
+	}
 
       /* Fill in the first entry in the procedure linkage table.  */
       splt = htab->root.splt;
       if (splt && splt->size > 0)
-        {
-          if (bfd_link_pic (info))
-            {
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD0, splt->contents);
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD1, splt->contents + 4);
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD2, splt->contents + 8);
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD3, splt->contents + 12);
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD4, splt->contents + 16);
-            }
-          else
-            {
-              unsigned long addr;
-              /* addr = .got + 4 */
-              addr = sgot->output_section->vma + sgot->output_offset + 4;
-              bfd_put_32 (output_bfd,
+	{
+	  if (bfd_link_pic (info))
+	    {
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD0, splt->contents);
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD1, splt->contents + 4);
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD2, splt->contents + 8);
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD3, splt->contents + 12);
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD4, splt->contents + 16);
+	    }
+	  else
+	    {
+	      unsigned long addr;
+	      /* addr = .got + 4 */
+	      addr = sgot->output_section->vma + sgot->output_offset + 4;
+	      bfd_put_32 (output_bfd,
 			  PLT0_ENTRY_WORD0 | ((addr >> 16) & 0xffff),
 			  splt->contents);
-              bfd_put_32 (output_bfd,
+	      bfd_put_32 (output_bfd,
 			  PLT0_ENTRY_WORD1 | (addr & 0xffff),
 			  splt->contents + 4);
-              bfd_put_32 (output_bfd, PLT0_ENTRY_WORD2, splt->contents + 8);
-              bfd_put_32 (output_bfd, PLT0_ENTRY_WORD3, splt->contents + 12);
-              bfd_put_32 (output_bfd, PLT0_ENTRY_WORD4, splt->contents + 16);
-            }
-
-          elf_section_data (splt->output_section)->this_hdr.sh_entsize =
-            PLT_ENTRY_SIZE;
-        }
+	      bfd_put_32 (output_bfd, PLT0_ENTRY_WORD2, splt->contents + 8);
+	      bfd_put_32 (output_bfd, PLT0_ENTRY_WORD3, splt->contents + 12);
+	      bfd_put_32 (output_bfd, PLT0_ENTRY_WORD4, splt->contents + 16);
+	    }
+
+	  elf_section_data (splt->output_section)->this_hdr.sh_entsize =
+	    PLT_ENTRY_SIZE;
+	}
     }
 
   /* Fill in the first three entries in the global offset table.  */
   if (sgot && sgot->size > 0)
     {
       if (sdyn == NULL)
-        bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents);
+	bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents);
       else
-        bfd_put_32 (output_bfd,
-                    sdyn->output_section->vma + sdyn->output_offset,
-                    sgot->contents);
+	bfd_put_32 (output_bfd,
+		    sdyn->output_section->vma + sdyn->output_offset,
+		    sgot->contents);
       bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + 4);
       bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + 8);
 
       /* FIXME:  This can be null if create_dynamic_sections wasn't called. */
       if (elf_section_data (sgot->output_section) != NULL)
-        elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4;
+	elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4;
     }
 
   if (lm32fdpic_fixup32_section (info))
     {
       struct elf_link_hash_entry *hgot = elf_hash_table (info)->hgot;
       bfd_vma got_value = hgot->root.u.def.value
-            + hgot->root.u.def.section->output_section->vma
-            + hgot->root.u.def.section->output_offset;
+	    + hgot->root.u.def.section->output_section->vma
+	    + hgot->root.u.def.section->output_offset;
       struct bfd_link_hash_entry *hend;
 
       /* Last entry is pointer to GOT.  */
@@ -1494,35 +1424,35 @@ lm32_elf_finish_dynamic_sections (bfd *o
 
       /* Check we wrote enough entries.  */
       if (lm32fdpic_fixup32_section (info)->size
-              != (lm32fdpic_fixup32_section (info)->reloc_count * 4))
-        {
+	      != (lm32fdpic_fixup32_section (info)->reloc_count * 4))
+	{
 	  _bfd_error_handler
-            ("LINKER BUG: .rofixup section size mismatch: size/4 %d != relocs %d",
-            lm32fdpic_fixup32_section (info)->size/4,
-            lm32fdpic_fixup32_section (info)->reloc_count);
-          return FALSE;
-        }
+	    ("LINKER BUG: .rofixup section size mismatch: size/4 %Ld != relocs %d",
+	    lm32fdpic_fixup32_section (info)->size/4,
+	    lm32fdpic_fixup32_section (info)->reloc_count);
+	  return FALSE;
+	}
 
       hend = bfd_link_hash_lookup (info->hash, "__ROFIXUP_END__",
-              FALSE, FALSE, TRUE);
+	      FALSE, FALSE, TRUE);
       if (hend
-          && (hend->type == bfd_link_hash_defined
-              || hend->type == bfd_link_hash_defweak))
-        {
-          bfd_vma value =
-            lm32fdpic_fixup32_section (info)->output_section->vma
-            + lm32fdpic_fixup32_section (info)->output_offset
-            + lm32fdpic_fixup32_section (info)->size
-            - hend->u.def.section->output_section->vma
-            - hend->u.def.section->output_offset;
-          BFD_ASSERT (hend->u.def.value == value);
-          if (hend->u.def.value != value)
-            {
+	  && (hend->type == bfd_link_hash_defined
+	      || hend->type == bfd_link_hash_defweak))
+	{
+	  bfd_vma value =
+	    lm32fdpic_fixup32_section (info)->output_section->vma
+	    + lm32fdpic_fixup32_section (info)->output_offset
+	    + lm32fdpic_fixup32_section (info)->size
+	    - hend->u.def.section->output_section->vma
+	    - hend->u.def.section->output_offset;
+	  BFD_ASSERT (hend->u.def.value == value);
+	  if (hend->u.def.value != value)
+	    {
 	      _bfd_error_handler
-                ("LINKER BUG: .rofixup section hend->u.def.value != value: %ld != %ld", hend->u.def.value, value);
-              return FALSE;
-            }
-        }
+		("LINKER BUG: .rofixup section hend->u.def.value != value: %Ld != %Ld", hend->u.def.value, value);
+	      return FALSE;
+	    }
+	}
     }
 
   return TRUE;
@@ -1555,7 +1485,7 @@ lm32_elf_finish_dynamic_symbol (bfd *out
       Elf_Internal_Rela rela;
 
       /* This symbol has an entry in the procedure linkage table.  Set
-         it up.  */
+	 it up.  */
       BFD_ASSERT (h->dynindx != -1);
 
       splt = htab->root.splt;
@@ -1564,38 +1494,38 @@ lm32_elf_finish_dynamic_symbol (bfd *out
       BFD_ASSERT (splt != NULL && sgot != NULL && srela != NULL);
 
       /* Get the index in the procedure linkage table which
-         corresponds to this symbol.  This is the index of this symbol
-         in all the symbols for which we are making plt entries.  The
-         first entry in the procedure linkage table is reserved.  */
+	 corresponds to this symbol.  This is the index of this symbol
+	 in all the symbols for which we are making plt entries.  The
+	 first entry in the procedure linkage table is reserved.  */
       plt_index = h->plt.offset / PLT_ENTRY_SIZE - 1;
 
       /* Get the offset into the .got table of the entry that
-        corresponds to this function.  Each .got entry is 4 bytes.
-        The first three are reserved.  */
+	corresponds to this function.  Each .got entry is 4 bytes.
+	The first three are reserved.  */
       got_offset = (plt_index + 3) * 4;
 
       /* Fill in the entry in the procedure linkage table.  */
       if (! bfd_link_pic (info))
-        {
-          /* TODO */
-        }
+	{
+	  /* TODO */
+	}
       else
-        {
-          /* TODO */
-        }
+	{
+	  /* TODO */
+	}
 
       /* Fill in the entry in the global offset table.  */
       bfd_put_32 (output_bfd,
-                  (splt->output_section->vma
-                   + splt->output_offset
-                   + h->plt.offset
-                   + 12), /* same offset */
-                  sgot->contents + got_offset);
+		  (splt->output_section->vma
+		   + splt->output_offset
+		   + h->plt.offset
+		   + 12), /* same offset */
+		  sgot->contents + got_offset);
 
       /* Fill in the entry in the .rela.plt section.  */
       rela.r_offset = (sgot->output_section->vma
-                       + sgot->output_offset
-                       + got_offset);
+		       + sgot->output_offset
+		       + got_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_LM32_JMP_SLOT);
       rela.r_addend = 0;
       loc = srela->contents;
@@ -1603,11 +1533,11 @@ lm32_elf_finish_dynamic_symbol (bfd *out
       bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
 
       if (!h->def_regular)
-        {
-          /* Mark the symbol as undefined, rather than as defined in
-             the .plt section.  Leave the value alone.  */
-          sym->st_shndx = SHN_UNDEF;
-        }
+	{
+	  /* Mark the symbol as undefined, rather than as defined in
+	     the .plt section.  Leave the value alone.  */
+	  sym->st_shndx = SHN_UNDEF;
+	}
 
     }
 
@@ -1618,38 +1548,38 @@ lm32_elf_finish_dynamic_symbol (bfd *out
       Elf_Internal_Rela rela;
 
       /* This symbol has an entry in the global offset table.  Set it
-         up.  */
+	 up.  */
       sgot = htab->root.sgot;
       srela = htab->root.srelgot;
       BFD_ASSERT (sgot != NULL && srela != NULL);
 
       rela.r_offset = (sgot->output_section->vma
-                       + sgot->output_offset
-                       + (h->got.offset &~ 1));
+		       + sgot->output_offset
+		       + (h->got.offset &~ 1));
 
       /* If this is a -Bsymbolic link, and the symbol is defined
-         locally, we just want to emit a RELATIVE reloc.  Likewise if
-         the symbol was forced to be local because of a version file.
-         The entry in the global offset table will already have been
-         initialized in the relocate_section function.  */
+	 locally, we just want to emit a RELATIVE reloc.  Likewise if
+	 the symbol was forced to be local because of a version file.
+	 The entry in the global offset table will already have been
+	 initialized in the relocate_section function.  */
       if (bfd_link_pic (info)
-          && (info->symbolic
+	  && (info->symbolic
 	      || h->dynindx == -1
 	      || h->forced_local)
-          && h->def_regular)
-        {
-          rela.r_info = ELF32_R_INFO (0, R_LM32_RELATIVE);
-          rela.r_addend = (h->root.u.def.value
-                           + h->root.u.def.section->output_section->vma
-                           + h->root.u.def.section->output_offset);
-        }
+	  && h->def_regular)
+	{
+	  rela.r_info = ELF32_R_INFO (0, R_LM32_RELATIVE);
+	  rela.r_addend = (h->root.u.def.value
+			   + h->root.u.def.section->output_section->vma
+			   + h->root.u.def.section->output_offset);
+	}
       else
-        {
+	{
 	  BFD_ASSERT ((h->got.offset & 1) == 0);
-          bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset);
-          rela.r_info = ELF32_R_INFO (h->dynindx, R_LM32_GLOB_DAT);
-          rela.r_addend = 0;
-        }
+	  bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset);
+	  rela.r_info = ELF32_R_INFO (h->dynindx, R_LM32_GLOB_DAT);
+	  rela.r_addend = 0;
+	}
 
       loc = srela->contents;
       loc += srela->reloc_count * sizeof (Elf32_External_Rela);
@@ -1664,15 +1594,15 @@ lm32_elf_finish_dynamic_symbol (bfd *out
 
       /* This symbols needs a copy reloc.  Set it up.  */
       BFD_ASSERT (h->dynindx != -1
-                  && (h->root.type == bfd_link_hash_defined
-                      || h->root.type == bfd_link_hash_defweak));
+		  && (h->root.type == bfd_link_hash_defined
+		      || h->root.type == bfd_link_hash_defweak));
 
       s = bfd_get_linker_section (htab->root.dynobj, ".rela.bss");
       BFD_ASSERT (s != NULL);
 
       rela.r_offset = (h->root.u.def.value
-                       + h->root.u.def.section->output_section->vma
-                       + h->root.u.def.section->output_offset);
+		       + h->root.u.def.section->output_section->vma
+		       + h->root.u.def.section->output_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_LM32_COPY);
       rela.r_addend = 0;
       loc = s->contents;
@@ -1698,8 +1628,26 @@ lm32_elf_reloc_type_class (const struct 
     case R_LM32_RELATIVE:  return reloc_class_relative;
     case R_LM32_JMP_SLOT:  return reloc_class_plt;
     case R_LM32_COPY:      return reloc_class_copy;
-    default:      	   return reloc_class_normal;
+    default:		   return reloc_class_normal;
+    }
+}
+
+/* Find dynamic relocs for H that apply to read-only sections.  */
+
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
+  struct elf_lm32_link_hash_entry *eh = (struct elf_lm32_link_hash_entry *) h;
+
+  for (p = eh->dyn_relocs; p != NULL; p = p->next)
+    {
+      asection *s = p->sec->output_section;
+
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
     }
+  return NULL;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -1713,8 +1661,6 @@ lm32_elf_adjust_dynamic_symbol (struct b
 				struct elf_link_hash_entry *h)
 {
   struct elf_lm32_link_hash_table *htab;
-  struct elf_lm32_link_hash_entry *eh;
-  struct elf_lm32_dyn_relocs *p;
   bfd *dynobj;
   asection *s;
 
@@ -1722,11 +1668,11 @@ lm32_elf_adjust_dynamic_symbol (struct b
 
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
-              && (h->needs_plt
-                  || h->u.weakdef != NULL
-                  || (h->def_dynamic
-                      && h->ref_regular
-                      && !h->def_regular)));
+	      && (h->needs_plt
+		  || h->is_weakalias
+		  || (h->def_dynamic
+		      && h->ref_regular
+		      && !h->def_regular)));
 
   /* If this is a function, put it in the procedure linkage table.  We
      will fill in the contents of the procedure linkage table later,
@@ -1735,19 +1681,19 @@ lm32_elf_adjust_dynamic_symbol (struct b
       || h->needs_plt)
     {
       if (! bfd_link_pic (info)
-          && !h->def_dynamic
-          && !h->ref_dynamic
+	  && !h->def_dynamic
+	  && !h->ref_dynamic
 	  && h->root.type != bfd_link_hash_undefweak
 	  && h->root.type != bfd_link_hash_undefined)
-        {
-          /* This case can occur if we saw a PLT reloc in an input
-             file, but the symbol was never referred to by a dynamic
-             object.  In such a case, we don't actually need to build
-             a procedure linkage table, and we can just do a PCREL
-             reloc instead.  */
-          h->plt.offset = (bfd_vma) -1;
-          h->needs_plt = 0;
-        }
+	{
+	  /* This case can occur if we saw a PLT reloc in an input
+	     file, but the symbol was never referred to by a dynamic
+	     object.  In such a case, we don't actually need to build
+	     a procedure linkage table, and we can just do a PCREL
+	     reloc instead.  */
+	  h->plt.offset = (bfd_vma) -1;
+	  h->needs_plt = 0;
+	}
 
       return TRUE;
     }
@@ -1757,12 +1703,12 @@ lm32_elf_adjust_dynamic_symbol (struct b
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-                  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -1782,24 +1728,15 @@ lm32_elf_adjust_dynamic_symbol (struct b
     return TRUE;
 
   /* If -z nocopyreloc was given, we won't generate them either.  */
-  if (info->nocopyreloc)
+  if (0 && info->nocopyreloc)
     {
       h->non_got_ref = 0;
       return TRUE;
     }
 
-  eh = (struct elf_lm32_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      s = p->sec->output_section;
-      if (s != NULL && (s->flags & (SEC_READONLY | SEC_HAS_CONTENTS)) != 0)
-        break;
-    }
-
-  /* If we didn't find any dynamic relocs in sections which needs the
-     copy reloc, then we'll be keeping the dynamic relocs and avoiding
-     the copy reloc.  */
-  if (p == NULL)
+  /* If we don't find any dynamic relocs in read-only sections, then
+     we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
+  if (0 && !readonly_dynrelocs (h))
     {
       h->non_got_ref = 0;
       return TRUE;
@@ -1848,7 +1785,7 @@ allocate_dynrelocs (struct elf_link_hash
   struct bfd_link_info *info;
   struct elf_lm32_link_hash_table *htab;
   struct elf_lm32_link_hash_entry *eh;
-  struct elf_lm32_dyn_relocs *p;
+  struct elf_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
     return TRUE;
@@ -1864,52 +1801,52 @@ allocate_dynrelocs (struct elf_link_hash
       && h->plt.refcount > 0)
     {
       /* Make sure this symbol is output as a dynamic symbol.
-         Undefined weak syms won't yet be marked as dynamic.  */
+	 Undefined weak syms won't yet be marked as dynamic.  */
       if (h->dynindx == -1
-          && !h->forced_local)
-        {
-          if (! bfd_elf_link_record_dynamic_symbol (info, h))
-            return FALSE;
-        }
+	  && !h->forced_local)
+	{
+	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
+	    return FALSE;
+	}
 
       if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, bfd_link_pic (info), h))
-        {
-          asection *s = htab->root.splt;
+	{
+	  asection *s = htab->root.splt;
+
+	  /* If this is the first .plt entry, make room for the special
+	     first entry.  */
+	  if (s->size == 0)
+	    s->size += PLT_ENTRY_SIZE;
+
+	  h->plt.offset = s->size;
+
+	  /* If this symbol is not defined in a regular file, and we are
+	     not generating a shared library, then set the symbol to this
+	     location in the .plt.  This is required to make function
+	     pointers compare as equal between the normal executable and
+	     the shared library.  */
+	  if (! bfd_link_pic (info)
+	      && !h->def_regular)
+	    {
+	      h->root.u.def.section = s;
+	      h->root.u.def.value = h->plt.offset;
+	    }
+
+	  /* Make room for this entry.  */
+	  s->size += PLT_ENTRY_SIZE;
+
+	  /* We also need to make an entry in the .got.plt section, which
+	     will be placed in the .got section by the linker script.  */
+	  htab->root.sgotplt->size += 4;
 
-          /* If this is the first .plt entry, make room for the special
-             first entry.  */
-          if (s->size == 0)
-            s->size += PLT_ENTRY_SIZE;
-
-          h->plt.offset = s->size;
-
-          /* If this symbol is not defined in a regular file, and we are
-             not generating a shared library, then set the symbol to this
-             location in the .plt.  This is required to make function
-             pointers compare as equal between the normal executable and
-             the shared library.  */
-          if (! bfd_link_pic (info)
-              && !h->def_regular)
-            {
-              h->root.u.def.section = s;
-              h->root.u.def.value = h->plt.offset;
-            }
-
-          /* Make room for this entry.  */
-          s->size += PLT_ENTRY_SIZE;
-
-          /* We also need to make an entry in the .got.plt section, which
-             will be placed in the .got section by the linker script.  */
-          htab->root.sgotplt->size += 4;
-
-          /* We also need to make an entry in the .rel.plt section.  */
-          htab->root.srelplt->size += sizeof (Elf32_External_Rela);
-        }
+	  /* We also need to make an entry in the .rel.plt section.  */
+	  htab->root.srelplt->size += sizeof (Elf32_External_Rela);
+	}
       else
-        {
-          h->plt.offset = (bfd_vma) -1;
-          h->needs_plt = 0;
-        }
+	{
+	  h->plt.offset = (bfd_vma) -1;
+	  h->needs_plt = 0;
+	}
     }
   else
     {
@@ -1923,13 +1860,13 @@ allocate_dynrelocs (struct elf_link_hash
       bfd_boolean dyn;
 
       /* Make sure this symbol is output as a dynamic symbol.
-         Undefined weak syms won't yet be marked as dynamic.  */
+	 Undefined weak syms won't yet be marked as dynamic.  */
       if (h->dynindx == -1
-          && !h->forced_local)
-        {
-          if (! bfd_elf_link_record_dynamic_symbol (info, h))
-            return FALSE;
-        }
+	  && !h->forced_local)
+	{
+	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
+	    return FALSE;
+	}
 
       s = htab->root.sgot;
 
@@ -1937,7 +1874,7 @@ allocate_dynrelocs (struct elf_link_hash
       s->size += 4;
       dyn = htab->root.dynamic_sections_created;
       if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h))
-        htab->root.srelgot->size += sizeof (Elf32_External_Rela);
+	htab->root.srelgot->size += sizeof (Elf32_External_Rela);
     }
   else
     h->got.offset = (bfd_vma) -1;
@@ -1954,21 +1891,21 @@ allocate_dynrelocs (struct elf_link_hash
   if (bfd_link_pic (info))
     {
       if (h->def_regular
-          && (h->forced_local
-              || info->symbolic))
-        {
-          struct elf_lm32_dyn_relocs **pp;
-
-          for (pp = &eh->dyn_relocs; (p = *pp) != NULL;)
-            {
-              p->count -= p->pc_count;
-              p->pc_count = 0;
-              if (p->count == 0)
-                *pp = p->next;
-              else
-                pp = &p->next;
-            }
-        }
+	  && (h->forced_local
+	      || info->symbolic))
+	{
+	  struct elf_dyn_relocs **pp;
+
+	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL;)
+	    {
+	      p->count -= p->pc_count;
+	      p->pc_count = 0;
+	      if (p->count == 0)
+		*pp = p->next;
+	      else
+		pp = &p->next;
+	    }
+	}
 
       /* Also discard relocs on undefined weak syms with non-default
 	 visibility.  */
@@ -1991,30 +1928,30 @@ allocate_dynrelocs (struct elf_link_hash
   else
     {
       /* For the non-shared case, discard space for relocs against
-         symbols which turn out to need copy relocs or are not
-         dynamic.  */
+	 symbols which turn out to need copy relocs or are not
+	 dynamic.  */
 
       if (!h->non_got_ref
-          && ((h->def_dynamic
-               && !h->def_regular)
-              || (htab->root.dynamic_sections_created
-                  && (h->root.type == bfd_link_hash_undefweak
-                      || h->root.type == bfd_link_hash_undefined))))
-        {
-          /* Make sure this symbol is output as a dynamic symbol.
-             Undefined weak syms won't yet be marked as dynamic.  */
-          if (h->dynindx == -1
-              && !h->forced_local)
-            {
-              if (! bfd_elf_link_record_dynamic_symbol (info, h))
-                return FALSE;
-            }
-
-          /* If that succeeded, we know we'll be keeping all the
-             relocs.  */
-          if (h->dynindx != -1)
-            goto keep;
-        }
+	  && ((h->def_dynamic
+	       && !h->def_regular)
+	      || (htab->root.dynamic_sections_created
+		  && (h->root.type == bfd_link_hash_undefweak
+		      || h->root.type == bfd_link_hash_undefined))))
+	{
+	  /* Make sure this symbol is output as a dynamic symbol.
+	     Undefined weak syms won't yet be marked as dynamic.  */
+	  if (h->dynindx == -1
+	      && !h->forced_local)
+	    {
+	      if (! bfd_elf_link_record_dynamic_symbol (info, h))
+		return FALSE;
+	    }
+
+	  /* If that succeeded, we know we'll be keeping all the
+	     relocs.  */
+	  if (h->dynindx != -1)
+	    goto keep;
+	}
 
       eh->dyn_relocs = NULL;
 
@@ -2031,28 +1968,29 @@ allocate_dynrelocs (struct elf_link_hash
   return TRUE;
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (struct elf_link_hash_entry *h, void * inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct elf_lm32_link_hash_entry *eh;
-  struct elf_lm32_dyn_relocs *p;
+  asection *sec;
 
-  eh = (struct elf_lm32_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection *s = p->sec->output_section;
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-        {
-          struct bfd_link_info *info = (struct bfd_link_info *) inf;
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
+    {
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-          info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
-          /* Not an error, just cut short the traversal.  */
-          return FALSE;
-        }
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -2061,7 +1999,7 @@ readonly_dynrelocs (struct elf_link_hash
 
 static bfd_boolean
 lm32_elf_size_dynamic_sections (bfd *output_bfd,
-                                struct bfd_link_info *info)
+				struct bfd_link_info *info)
 {
   struct elf_lm32_link_hash_table *htab;
   bfd *dynobj;
@@ -2099,38 +2037,38 @@ lm32_elf_size_dynamic_sections (bfd *out
       asection *srel;
 
       if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour)
-        continue;
+	continue;
 
       for (s = ibfd->sections; s != NULL; s = s->next)
-        {
-          struct elf_lm32_dyn_relocs *p;
+	{
+	  struct elf_dyn_relocs *p;
 
-          for (p = ((struct elf_lm32_dyn_relocs *)
-                    elf_section_data (s)->local_dynrel);
-               p != NULL;
-               p = p->next)
-            {
-              if (! bfd_is_abs_section (p->sec)
-                  && bfd_is_abs_section (p->sec->output_section))
-                {
-                  /* Input section has been discarded, either because
-                     it is a copy of a linkonce section or due to
-                     linker script /DISCARD/, so we'll be discarding
-                     the relocs too.  */
-                }
-              else if (p->count != 0)
-                {
-                  srel = elf_section_data (p->sec)->sreloc;
-                  srel->size += p->count * sizeof (Elf32_External_Rela);
-                  if ((p->sec->output_section->flags & SEC_READONLY) != 0)
-                    info->flags |= DF_TEXTREL;
-                }
-            }
-        }
+	  for (p = ((struct elf_dyn_relocs *)
+		    elf_section_data (s)->local_dynrel);
+	       p != NULL;
+	       p = p->next)
+	    {
+	      if (! bfd_is_abs_section (p->sec)
+		  && bfd_is_abs_section (p->sec->output_section))
+		{
+		  /* Input section has been discarded, either because
+		     it is a copy of a linkonce section or due to
+		     linker script /DISCARD/, so we'll be discarding
+		     the relocs too.  */
+		}
+	      else if (p->count != 0)
+		{
+		  srel = elf_section_data (p->sec)->sreloc;
+		  srel->size += p->count * sizeof (Elf32_External_Rela);
+		  if ((p->sec->output_section->flags & SEC_READONLY) != 0)
+		    info->flags |= DF_TEXTREL;
+		}
+	    }
+	}
 
       local_got = elf_local_got_refcounts (ibfd);
       if (!local_got)
-        continue;
+	continue;
 
       symtab_hdr = &elf_tdata (ibfd)->symtab_hdr;
       locsymcount = symtab_hdr->sh_info;
@@ -2138,17 +2076,17 @@ lm32_elf_size_dynamic_sections (bfd *out
       s = htab->root.sgot;
       srel = htab->root.srelgot;
       for (; local_got < end_local_got; ++local_got)
-        {
-          if (*local_got > 0)
-            {
-              *local_got = s->size;
-              s->size += 4;
-              if (bfd_link_pic (info))
-                srel->size += sizeof (Elf32_External_Rela);
-            }
-          else
-            *local_got = (bfd_vma) -1;
-        }
+	{
+	  if (*local_got > 0)
+	    {
+	      *local_got = s->size;
+	      s->size += 4;
+	      if (bfd_link_pic (info))
+		srel->size += sizeof (Elf32_External_Rela);
+	    }
+	  else
+	    *local_got = (bfd_vma) -1;
+	}
     }
 
   /* Allocate global sym .plt and .got entries, and space for global
@@ -2161,55 +2099,55 @@ lm32_elf_size_dynamic_sections (bfd *out
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LINKER_CREATED) == 0)
-        continue;
+	continue;
 
       if (s == htab->root.splt
-          || s == htab->root.sgot
-          || s == htab->root.sgotplt
+	  || s == htab->root.sgot
+	  || s == htab->root.sgotplt
 	  || s == htab->sdynbss)
-        {
-          /* Strip this section if we don't need it; see the
-             comment below.  */
-        }
+	{
+	  /* Strip this section if we don't need it; see the
+	     comment below.  */
+	}
       else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
-        {
-          if (s->size != 0 && s != htab->root.srelplt)
-            relocs = TRUE;
-
-          /* We use the reloc_count field as a counter if we need
-             to copy relocs into the output file.  */
-          s->reloc_count = 0;
-        }
+	{
+	  if (s->size != 0 && s != htab->root.srelplt)
+	    relocs = TRUE;
+
+	  /* We use the reloc_count field as a counter if we need
+	     to copy relocs into the output file.  */
+	  s->reloc_count = 0;
+	}
       else
 	/* It's not one of our sections, so don't allocate space.  */
 	continue;
 
       if (s->size == 0)
-        {
-          /* If we don't need this section, strip it from the
-             output file.  This is mostly to handle .rela.bss and
-             .rela.plt.  We must create both sections in
-             create_dynamic_sections, because they must be created
-             before the linker maps input sections to output
-             sections.  The linker does that before
-             adjust_dynamic_symbol is called, and it is that
-             function which decides whether anything needs to go
-             into these sections.  */
-          s->flags |= SEC_EXCLUDE;
-          continue;
-        }
+	{
+	  /* If we don't need this section, strip it from the
+	     output file.  This is mostly to handle .rela.bss and
+	     .rela.plt.  We must create both sections in
+	     create_dynamic_sections, because they must be created
+	     before the linker maps input sections to output
+	     sections.  The linker does that before
+	     adjust_dynamic_symbol is called, and it is that
+	     function which decides whether anything needs to go
+	     into these sections.  */
+	  s->flags |= SEC_EXCLUDE;
+	  continue;
+	}
 
       if ((s->flags & SEC_HAS_CONTENTS) == 0)
 	continue;
 
       /* Allocate memory for the section contents.  We use bfd_zalloc
-         here in case unused entries are not reclaimed before the
-         section's contents are written out.  This should not happen,
-         but this way if it does, we get a R_LM32_NONE reloc instead
-         of garbage.  */
+	 here in case unused entries are not reclaimed before the
+	 section's contents are written out.  This should not happen,
+	 but this way if it does, we get a R_LM32_NONE reloc instead
+	 of garbage.  */
       s->contents = bfd_zalloc (dynobj, s->size);
       if (s->contents == NULL)
-        return FALSE;
+	return FALSE;
     }
 
   if (htab->root.dynamic_sections_created)
@@ -2229,34 +2167,33 @@ lm32_elf_size_dynamic_sections (bfd *out
 	}
 
       if (htab->root.splt->size != 0)
-        {
-          if (! add_dynamic_entry (DT_PLTGOT, 0)
-              || ! add_dynamic_entry (DT_PLTRELSZ, 0)
-              || ! add_dynamic_entry (DT_PLTREL, DT_RELA)
-              || ! add_dynamic_entry (DT_JMPREL, 0))
-            return FALSE;
-        }
+	{
+	  if (! add_dynamic_entry (DT_PLTGOT, 0)
+	      || ! add_dynamic_entry (DT_PLTRELSZ, 0)
+	      || ! add_dynamic_entry (DT_PLTREL, DT_RELA)
+	      || ! add_dynamic_entry (DT_JMPREL, 0))
+	    return FALSE;
+	}
 
       if (relocs)
-        {
-          if (! add_dynamic_entry (DT_RELA, 0)
-              || ! add_dynamic_entry (DT_RELASZ, 0)
-              || ! add_dynamic_entry (DT_RELAENT,
-                                      sizeof (Elf32_External_Rela)))
-            return FALSE;
-
-          /* If any dynamic relocs apply to a read-only section,
-             then we need a DT_TEXTREL entry.  */
-          if ((info->flags & DF_TEXTREL) == 0)
-            elf_link_hash_traverse (&htab->root, readonly_dynrelocs,
-                                    info);
-
-          if ((info->flags & DF_TEXTREL) != 0)
-            {
-              if (! add_dynamic_entry (DT_TEXTREL, 0))
-                return FALSE;
-            }
-        }
+	{
+	  if (! add_dynamic_entry (DT_RELA, 0)
+	      || ! add_dynamic_entry (DT_RELASZ, 0)
+	      || ! add_dynamic_entry (DT_RELAENT,
+				      sizeof (Elf32_External_Rela)))
+	    return FALSE;
+
+	  /* If any dynamic relocs apply to a read-only section,
+	     then we need a DT_TEXTREL entry.  */
+	  if ((info->flags & DF_TEXTREL) == 0)
+	    elf_link_hash_traverse (&htab->root, maybe_set_textrel, info);
+
+	  if ((info->flags & DF_TEXTREL) != 0)
+	    {
+	      if (! add_dynamic_entry (DT_TEXTREL, 0))
+		return FALSE;
+	    }
+	}
     }
 #undef add_dynamic_entry
 
@@ -2269,121 +2206,121 @@ lm32_elf_size_dynamic_sections (bfd *out
       int rgot_count = 0;
       /* Look for deleted sections.  */
       for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next)
-        {
-          for (s = ibfd->sections; s != NULL; s = s->next)
-            {
-              if (s->reloc_count)
-                {
-                  /* Count relocs that need .rofixup entires.  */
-                  Elf_Internal_Rela *internal_relocs, *end;
-                  internal_relocs = elf_section_data (s)->relocs;
-                  if (internal_relocs == NULL)
-                    internal_relocs = (_bfd_elf_link_read_relocs (ibfd, s, NULL, NULL, FALSE));
-                  if (internal_relocs != NULL)
-                    {
-                      end = internal_relocs + s->reloc_count;
-                      while (internal_relocs < end)
-                        {
-                          Elf_Internal_Shdr *symtab_hdr = &elf_tdata (ibfd)->symtab_hdr;
-                          struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (ibfd);
-                          unsigned long r_symndx;
-                          struct elf_link_hash_entry *h;
-
-                          symtab_hdr = &elf_tdata (ibfd)->symtab_hdr;
-                          sym_hashes = elf_sym_hashes (ibfd);
-                          r_symndx = ELF32_R_SYM (internal_relocs->r_info);
-                          h = NULL;
-                          if (r_symndx < symtab_hdr->sh_info)
-                            {
-                            }
-                          else
-                            {
-                              h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-                              while (h->root.type == bfd_link_hash_indirect
-                                     || h->root.type == bfd_link_hash_warning)
-                                h = (struct elf_link_hash_entry *) h->root.u.i.link;
-                              }
-
-                          /* Don't generate entries for weak symbols.  */
-                          if (!h || (h && h->root.type != bfd_link_hash_undefweak))
-                            {
-                              if (!discarded_section (s) && !((bfd_get_section_flags (ibfd, s) & SEC_ALLOC) == 0))
-                                {
-                                  switch (ELF32_R_TYPE (internal_relocs->r_info))
-                                    {
-                                    case R_LM32_32:
-                                      r32_count++;
-                                      break;
-                                    case R_LM32_16_GOT:
-                                      rgot_count++;
-                                      break;
-                                    }
-                                }
-                            }
-                          else
-                            {
-                              struct weak_symbol_list *current, *new_entry;
-                              /* Is this symbol already in the list?  */
-                              for (current = list_start; current; current = current->next)
-                                {
-                                  if (!strcmp (current->name, h->root.root.string))
-                                    break;
-                                }
-                              if (!current && !discarded_section (s) && (bfd_get_section_flags (ibfd, s) & SEC_ALLOC))
-                                {
-                                  /* Will this have an entry in the GOT.  */
-                                  if (ELF32_R_TYPE (internal_relocs->r_info) == R_LM32_16_GOT)
-                                    {
-                                      /* Create a new entry.  */
-                                      new_entry = malloc (sizeof (struct weak_symbol_list));
-                                      if (!new_entry)
-                                        return FALSE;
-                                      new_entry->name = h->root.root.string;
-                                      new_entry->next = NULL;
-                                      /* Add to list */
-                                      if (list_start == NULL)
-                                        {
-                                          list_start = new_entry;
-                                          list_end = new_entry;
-                                        }
-                                      else
-                                        {
-                                          list_end->next = new_entry;
-                                          list_end = new_entry;
-                                        }
-                                      /* Increase count of undefined weak symbols in the got.  */
-                                      rgot_weak_count++;
-                                    }
-                                }
-                            }
-                          internal_relocs++;
-                        }
-                    }
-                  else
-                    return FALSE;
-                }
-            }
-        }
+	{
+	  for (s = ibfd->sections; s != NULL; s = s->next)
+	    {
+	      if (s->reloc_count)
+		{
+		  /* Count relocs that need .rofixup entires.  */
+		  Elf_Internal_Rela *internal_relocs, *end;
+		  internal_relocs = elf_section_data (s)->relocs;
+		  if (internal_relocs == NULL)
+		    internal_relocs = (_bfd_elf_link_read_relocs (ibfd, s, NULL, NULL, FALSE));
+		  if (internal_relocs != NULL)
+		    {
+		      end = internal_relocs + s->reloc_count;
+		      while (internal_relocs < end)
+			{
+			  Elf_Internal_Shdr *symtab_hdr = &elf_tdata (ibfd)->symtab_hdr;
+			  struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (ibfd);
+			  unsigned long r_symndx;
+			  struct elf_link_hash_entry *h;
+
+			  symtab_hdr = &elf_tdata (ibfd)->symtab_hdr;
+			  sym_hashes = elf_sym_hashes (ibfd);
+			  r_symndx = ELF32_R_SYM (internal_relocs->r_info);
+			  h = NULL;
+			  if (r_symndx < symtab_hdr->sh_info)
+			    {
+			    }
+			  else
+			    {
+			      h = sym_hashes[r_symndx - symtab_hdr->sh_info];
+			      while (h->root.type == bfd_link_hash_indirect
+				     || h->root.type == bfd_link_hash_warning)
+				h = (struct elf_link_hash_entry *) h->root.u.i.link;
+			      }
+
+			  /* Don't generate entries for weak symbols.  */
+			  if (!h || (h && h->root.type != bfd_link_hash_undefweak))
+			    {
+			      if (!discarded_section (s) && !((bfd_get_section_flags (ibfd, s) & SEC_ALLOC) == 0))
+				{
+				  switch (ELF32_R_TYPE (internal_relocs->r_info))
+				    {
+				    case R_LM32_32:
+				      r32_count++;
+				      break;
+				    case R_LM32_16_GOT:
+				      rgot_count++;
+				      break;
+				    }
+				}
+			    }
+			  else
+			    {
+			      struct weak_symbol_list *current, *new_entry;
+			      /* Is this symbol already in the list?  */
+			      for (current = list_start; current; current = current->next)
+				{
+				  if (!strcmp (current->name, h->root.root.string))
+				    break;
+				}
+			      if (!current && !discarded_section (s) && (bfd_get_section_flags (ibfd, s) & SEC_ALLOC))
+				{
+				  /* Will this have an entry in the GOT.  */
+				  if (ELF32_R_TYPE (internal_relocs->r_info) == R_LM32_16_GOT)
+				    {
+				      /* Create a new entry.  */
+				      new_entry = malloc (sizeof (struct weak_symbol_list));
+				      if (!new_entry)
+					return FALSE;
+				      new_entry->name = h->root.root.string;
+				      new_entry->next = NULL;
+				      /* Add to list */
+				      if (list_start == NULL)
+					{
+					  list_start = new_entry;
+					  list_end = new_entry;
+					}
+				      else
+					{
+					  list_end->next = new_entry;
+					  list_end = new_entry;
+					}
+				      /* Increase count of undefined weak symbols in the got.  */
+				      rgot_weak_count++;
+				    }
+				}
+			    }
+			  internal_relocs++;
+			}
+		    }
+		  else
+		    return FALSE;
+		}
+	    }
+	}
       /* Free list.  */
       while (list_start)
-        {
-          list_end = list_start->next;
-          free (list_start);
-          list_start = list_end;
-        }
+	{
+	  list_end = list_start->next;
+	  free (list_start);
+	  list_start = list_end;
+	}
 
       /* Size sections.  */
       lm32fdpic_fixup32_section (info)->size
 	= (r32_count + (htab->root.sgot->size / 4) - rgot_weak_count + 1) * 4;
       if (lm32fdpic_fixup32_section (info)->size == 0)
-        lm32fdpic_fixup32_section (info)->flags |= SEC_EXCLUDE;
+	lm32fdpic_fixup32_section (info)->flags |= SEC_EXCLUDE;
       else
-        {
-          lm32fdpic_fixup32_section (info)->contents =
-    	     bfd_zalloc (dynobj, lm32fdpic_fixup32_section (info)->size);
-          if (lm32fdpic_fixup32_section (info)->contents == NULL)
-    	    return FALSE;
-        }
+	{
+	  lm32fdpic_fixup32_section (info)->contents =
+	     bfd_zalloc (dynobj, lm32fdpic_fixup32_section (info)->size);
+	  if (lm32fdpic_fixup32_section (info)->contents == NULL)
+	    return FALSE;
+	}
     }
 
   return TRUE;
@@ -2411,13 +2348,13 @@ lm32_elf_create_dynamic_sections (bfd *a
   if (IS_FDPIC (abfd) && (htab->sfixup32 == NULL))
     {
       if (! create_rofixup_section (abfd, info))
-        return FALSE;
+	return FALSE;
     }
 
   /* We need to create .plt, .rel[a].plt, .got, .got.plt, .dynbss, and
      .rel[a].bss sections.  */
   flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
-           | SEC_LINKER_CREATED);
+	   | SEC_LINKER_CREATED);
 
   pltflags = flags;
   pltflags |= SEC_CODE;
@@ -2435,23 +2372,23 @@ lm32_elf_create_dynamic_sections (bfd *a
   if (bed->want_plt_sym)
     {
       /* Define the symbol _PROCEDURE_LINKAGE_TABLE_ at the start of the
-         .plt section.  */
+	 .plt section.  */
       struct bfd_link_hash_entry *bh = NULL;
       struct elf_link_hash_entry *h;
 
       if (! (_bfd_generic_link_add_one_symbol
-             (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s,
-              (bfd_vma) 0, NULL, FALSE,
-              get_elf_backend_data (abfd)->collect, &bh)))
-        return FALSE;
+	     (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s,
+	      (bfd_vma) 0, NULL, FALSE,
+	      get_elf_backend_data (abfd)->collect, &bh)))
+	return FALSE;
       h = (struct elf_link_hash_entry *) bh;
       h->def_regular = 1;
       h->type = STT_OBJECT;
       htab->root.hplt = h;
 
       if (bfd_link_pic (info)
-          && ! bfd_elf_link_record_dynamic_symbol (info, h))
-        return FALSE;
+	  && ! bfd_elf_link_record_dynamic_symbol (info, h))
+	return FALSE;
     }
 
   s = bfd_make_section_anyway_with_flags (abfd,
@@ -2470,38 +2407,38 @@ lm32_elf_create_dynamic_sections (bfd *a
   if (bed->want_dynbss)
     {
       /* The .dynbss section is a place to put symbols which are defined
-         by dynamic objects, are referenced by regular objects, and are
-         not functions.  We must allocate space for them in the process
-         image and use a R_*_COPY reloc to tell the dynamic linker to
-         initialize them at run time.  The linker script puts the .dynbss
-         section into the .bss section of the final image.  */
+	 by dynamic objects, are referenced by regular objects, and are
+	 not functions.  We must allocate space for them in the process
+	 image and use a R_*_COPY reloc to tell the dynamic linker to
+	 initialize them at run time.  The linker script puts the .dynbss
+	 section into the .bss section of the final image.  */
       s = bfd_make_section_anyway_with_flags (abfd, ".dynbss",
 					      SEC_ALLOC | SEC_LINKER_CREATED);
       htab->sdynbss = s;
       if (s == NULL)
-        return FALSE;
+	return FALSE;
       /* The .rel[a].bss section holds copy relocs.  This section is not
-         normally needed.  We need to create it here, though, so that the
-         linker will map it to an output section.  We can't just create it
-         only if we need it, because we will not know whether we need it
-         until we have seen all the input files, and the first time the
-         main linker code calls BFD after examining all the input files
-         (size_dynamic_sections) the input sections have already been
-         mapped to the output sections.  If the section turns out not to
-         be needed, we can discard it later.  We will never need this
-         section when generating a shared object, since they do not use
-         copy relocs.  */
+	 normally needed.  We need to create it here, though, so that the
+	 linker will map it to an output section.  We can't just create it
+	 only if we need it, because we will not know whether we need it
+	 until we have seen all the input files, and the first time the
+	 main linker code calls BFD after examining all the input files
+	 (size_dynamic_sections) the input sections have already been
+	 mapped to the output sections.  If the section turns out not to
+	 be needed, we can discard it later.  We will never need this
+	 section when generating a shared object, since they do not use
+	 copy relocs.  */
       if (! bfd_link_pic (info))
-        {
-          s = bfd_make_section_anyway_with_flags (abfd,
+	{
+	  s = bfd_make_section_anyway_with_flags (abfd,
 						  (bed->default_use_rela_p
 						   ? ".rela.bss" : ".rel.bss"),
 						  flags | SEC_READONLY);
-          htab->srelbss = s;
-          if (s == NULL
-              || ! bfd_set_section_alignment (abfd, s, ptralign))
-            return FALSE;
-        }
+	  htab->srelbss = s;
+	  if (s == NULL
+	      || ! bfd_set_section_alignment (abfd, s, ptralign))
+	    return FALSE;
+	}
     }
 
   return TRUE;
@@ -2511,8 +2448,8 @@ lm32_elf_create_dynamic_sections (bfd *a
 
 static void
 lm32_elf_copy_indirect_symbol (struct bfd_link_info *info,
-                               struct elf_link_hash_entry *dir,
-                               struct elf_link_hash_entry *ind)
+			       struct elf_link_hash_entry *dir,
+			       struct elf_link_hash_entry *ind)
 {
   struct elf_lm32_link_hash_entry * edir;
   struct elf_lm32_link_hash_entry * eind;
@@ -2523,29 +2460,29 @@ lm32_elf_copy_indirect_symbol (struct bf
   if (eind->dyn_relocs != NULL)
     {
       if (edir->dyn_relocs != NULL)
-        {
-          struct elf_lm32_dyn_relocs **pp;
-          struct elf_lm32_dyn_relocs *p;
-
-          /* Add reloc counts against the indirect sym to the direct sym
-             list.  Merge any entries against the same section.  */
-          for (pp = &eind->dyn_relocs; (p = *pp) != NULL;)
-            {
-              struct elf_lm32_dyn_relocs *q;
-
-              for (q = edir->dyn_relocs; q != NULL; q = q->next)
-                if (q->sec == p->sec)
-                  {
-                    q->pc_count += p->pc_count;
-                    q->count += p->count;
-                    *pp = p->next;
-                    break;
-                  }
-              if (q == NULL)
-                pp = &p->next;
-            }
-          *pp = edir->dyn_relocs;
-        }
+	{
+	  struct elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs *p;
+
+	  /* Add reloc counts against the indirect sym to the direct sym
+	     list.  Merge any entries against the same section.  */
+	  for (pp = &eind->dyn_relocs; (p = *pp) != NULL;)
+	    {
+	      struct elf_dyn_relocs *q;
+
+	      for (q = edir->dyn_relocs; q != NULL; q = q->next)
+		if (q->sec == p->sec)
+		  {
+		    q->pc_count += p->pc_count;
+		    q->count += p->count;
+		    *pp = p->next;
+		    break;
+		  }
+	      if (q == NULL)
+		pp = &p->next;
+	    }
+	  *pp = edir->dyn_relocs;
+	}
 
       edir->dyn_relocs = eind->dyn_relocs;
       eind->dyn_relocs = NULL;
@@ -2614,42 +2551,41 @@ lm32_elf_fdpic_copy_private_bfd_data (bf
 }
 
 
-#define ELF_ARCH                bfd_arch_lm32
+#define ELF_ARCH		bfd_arch_lm32
 #define ELF_TARGET_ID		LM32_ELF_DATA
-#define ELF_MACHINE_CODE        EM_LATTICEMICO32
-#define ELF_MAXPAGESIZE         0x1000
+#define ELF_MACHINE_CODE	EM_LATTICEMICO32
+#define ELF_MAXPAGESIZE		0x1000
 
-#define TARGET_BIG_SYM          lm32_elf32_vec
-#define TARGET_BIG_NAME         "elf32-lm32"
+#define TARGET_BIG_SYM		lm32_elf32_vec
+#define TARGET_BIG_NAME		"elf32-lm32"
 
-#define bfd_elf32_bfd_reloc_type_lookup         lm32_reloc_type_lookup
-#define bfd_elf32_bfd_reloc_name_lookup         lm32_reloc_name_lookup
-#define elf_info_to_howto                       lm32_info_to_howto_rela
-#define elf_info_to_howto_rel                   0
-#define elf_backend_rela_normal                 1
-#define elf_backend_object_p                    lm32_elf_object_p
-#define elf_backend_final_write_processing      lm32_elf_final_write_processing
+#define bfd_elf32_bfd_reloc_type_lookup		lm32_reloc_type_lookup
+#define bfd_elf32_bfd_reloc_name_lookup		lm32_reloc_name_lookup
+#define elf_info_to_howto			lm32_info_to_howto_rela
+#define elf_info_to_howto_rel			0
+#define elf_backend_rela_normal			1
+#define elf_backend_object_p			lm32_elf_object_p
+#define elf_backend_final_write_processing	lm32_elf_final_write_processing
 #define elf_backend_stack_align			8
-#define elf_backend_can_gc_sections             1
-#define elf_backend_can_refcount                1
-#define elf_backend_gc_mark_hook                lm32_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook               lm32_elf_gc_sweep_hook
-#define elf_backend_plt_readonly                1
-#define elf_backend_want_got_plt                1
-#define elf_backend_want_plt_sym                0
-#define elf_backend_got_header_size             12
+#define elf_backend_can_gc_sections		1
+#define elf_backend_can_refcount		1
+#define elf_backend_gc_mark_hook		lm32_elf_gc_mark_hook
+#define elf_backend_plt_readonly		1
+#define elf_backend_want_got_plt		1
+#define elf_backend_want_plt_sym		0
+#define elf_backend_got_header_size		12
 #define elf_backend_dtrel_excludes_plt		1
-#define bfd_elf32_bfd_link_hash_table_create    lm32_elf_link_hash_table_create
-#define elf_backend_check_relocs                lm32_elf_check_relocs
-#define elf_backend_reloc_type_class            lm32_elf_reloc_type_class
-#define elf_backend_copy_indirect_symbol        lm32_elf_copy_indirect_symbol
-#define elf_backend_size_dynamic_sections       lm32_elf_size_dynamic_sections
-#define elf_backend_omit_section_dynsym         ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
-#define elf_backend_create_dynamic_sections     lm32_elf_create_dynamic_sections
-#define elf_backend_finish_dynamic_sections     lm32_elf_finish_dynamic_sections
-#define elf_backend_adjust_dynamic_symbol       lm32_elf_adjust_dynamic_symbol
-#define elf_backend_finish_dynamic_symbol       lm32_elf_finish_dynamic_symbol
-#define elf_backend_relocate_section            lm32_elf_relocate_section
+#define bfd_elf32_bfd_link_hash_table_create	lm32_elf_link_hash_table_create
+#define elf_backend_check_relocs		lm32_elf_check_relocs
+#define elf_backend_reloc_type_class		lm32_elf_reloc_type_class
+#define elf_backend_copy_indirect_symbol	lm32_elf_copy_indirect_symbol
+#define elf_backend_size_dynamic_sections	lm32_elf_size_dynamic_sections
+#define elf_backend_omit_section_dynsym		((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
+#define elf_backend_create_dynamic_sections	lm32_elf_create_dynamic_sections
+#define elf_backend_finish_dynamic_sections	lm32_elf_finish_dynamic_sections
+#define elf_backend_adjust_dynamic_symbol	lm32_elf_adjust_dynamic_symbol
+#define elf_backend_finish_dynamic_symbol	lm32_elf_finish_dynamic_symbol
+#define elf_backend_relocate_section		lm32_elf_relocate_section
 
 #include "elf32-target.h"
 
@@ -2658,15 +2594,15 @@ lm32_elf_fdpic_copy_private_bfd_data (bf
 
 
 #undef  TARGET_BIG_SYM
-#define TARGET_BIG_SYM          lm32_elf32_fdpic_vec
-#undef  TARGET_BIG_NAME
+#define TARGET_BIG_SYM		lm32_elf32_fdpic_vec
+#undef	TARGET_BIG_NAME
 #define TARGET_BIG_NAME		"elf32-lm32fdpic"
 #undef	elf32_bed
 #define	elf32_bed		elf32_lm32fdpic_bed
 
-#undef  elf_backend_always_size_sections
-#define elf_backend_always_size_sections        lm32_elf_always_size_sections
-#undef  bfd_elf32_bfd_copy_private_bfd_data
-#define bfd_elf32_bfd_copy_private_bfd_data     lm32_elf_fdpic_copy_private_bfd_data
+#undef	elf_backend_always_size_sections
+#define elf_backend_always_size_sections	lm32_elf_always_size_sections
+#undef	bfd_elf32_bfd_copy_private_bfd_data
+#define bfd_elf32_bfd_copy_private_bfd_data	lm32_elf_fdpic_copy_private_bfd_data
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m32c.c ./bfd/elf32-m32c.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m32c.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-m32c.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* M16C/M32C specific support for 32-bit ELF.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -15,7 +15,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 #include "sysdep.h"
 #include "bfd.h"
@@ -116,9 +117,9 @@ static reloc_howto_type m32c_elf_howto_t
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_M32C_8_PCREL",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0,     		/* src_mask */
-	 0xff,   		/* dst_mask */
-	 TRUE), 		/* pcrel_offset */
+	 0,			/* src_mask */
+	 0xff,			/* dst_mask */
+	 TRUE),			/* pcrel_offset */
 
   HOWTO (R_M32C_16_PCREL,	/* type */
 	 0,			/* rightshift */
@@ -130,9 +131,9 @@ static reloc_howto_type m32c_elf_howto_t
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_M32C_16_PCREL",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0,     		/* src_mask */
-	 0xffff,             	/* dst_mask */
-	 TRUE), 		/* pcrel_offset */
+	 0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
 
   HOWTO (R_M32C_8,		/* type */
 	 0,			/* rightshift */
@@ -144,9 +145,9 @@ static reloc_howto_type m32c_elf_howto_t
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_M32C_8",		/* name */
 	 FALSE,			/* partial_inplace */
-	 0,     		/* src_mask */
+	 0,			/* src_mask */
 	 0xff,			/* dst_mask */
-	 FALSE), 		/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_M32C_LO16,		/* type */
 	 0,			/* rightshift */
@@ -158,9 +159,9 @@ static reloc_howto_type m32c_elf_howto_t
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_M32C_LO16",		/* name */
 	 FALSE,			/* partial_inplace */
-	 0,     		/* src_mask */
+	 0,			/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE), 		/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_M32C_HI8,		/* type */
 	 0,			/* rightshift */
@@ -172,9 +173,9 @@ static reloc_howto_type m32c_elf_howto_t
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_M32C_HI8",		/* name */
 	 FALSE,			/* partial_inplace */
-	 0,     		/* src_mask */
+	 0,			/* src_mask */
 	 0xff,			/* dst_mask */
-	 FALSE), 		/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_M32C_HI16,		/* type */
 	 0,			/* rightshift */
@@ -186,9 +187,9 @@ static reloc_howto_type m32c_elf_howto_t
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_M32C_HI16",		/* name */
 	 FALSE,			/* partial_inplace */
-	 0,     		/* src_mask */
+	 0,			/* src_mask */
 	 0xffff,		/* dst_mask */
-	 FALSE), 		/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_M32C_RL_JUMP,	/* type */
 	 0,			/* rightshift */
@@ -200,9 +201,9 @@ static reloc_howto_type m32c_elf_howto_t
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_M32C_RL_JUMP",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0,     		/* src_mask */
-	 0,   			/* dst_mask */
-	 FALSE), 		/* pcrel_offset */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_M32C_RL_1ADDR,	/* type */
 	 0,			/* rightshift */
@@ -214,9 +215,9 @@ static reloc_howto_type m32c_elf_howto_t
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_M32C_RL_1ADDR",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0,     		/* src_mask */
-	 0,   			/* dst_mask */
-	 FALSE), 		/* pcrel_offset */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_M32C_RL_2ADDR,	/* type */
 	 0,			/* rightshift */
@@ -228,9 +229,9 @@ static reloc_howto_type m32c_elf_howto_t
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_M32C_RL_2ADDR",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0,     		/* src_mask */
-	 0,   			/* dst_mask */
-	 FALSE), 		/* pcrel_offset */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
 };
 
@@ -246,10 +247,10 @@ static const struct m32c_reloc_map m32c_
 {
   { BFD_RELOC_NONE,		R_M32C_NONE },
   { BFD_RELOC_16,		R_M32C_16 },
-  { BFD_RELOC_24,               R_M32C_24 },
+  { BFD_RELOC_24,		R_M32C_24 },
   { BFD_RELOC_32,		R_M32C_32 },
-  { BFD_RELOC_8_PCREL,          R_M32C_8_PCREL },
-  { BFD_RELOC_16_PCREL,         R_M32C_16_PCREL },
+  { BFD_RELOC_8_PCREL,		R_M32C_8_PCREL },
+  { BFD_RELOC_16_PCREL,		R_M32C_16_PCREL },
   { BFD_RELOC_8,		R_M32C_8 },
   { BFD_RELOC_LO16,		R_M32C_LO16 },
   { BFD_RELOC_HI16,		R_M32C_HI16 },
@@ -261,7 +262,7 @@ static const struct m32c_reloc_map m32c_
 
 static reloc_howto_type *
 m32c_reloc_type_lookup
-    (bfd *                    abfd ATTRIBUTE_UNUSED,
+    (bfd *		      abfd ATTRIBUTE_UNUSED,
      bfd_reloc_code_real_type code)
 {
   unsigned int i;
@@ -292,8 +293,8 @@ m32c_reloc_name_lookup (bfd *abfd ATTRIB
 
 static void
 m32c_info_to_howto_rela
-    (bfd *               abfd ATTRIBUTE_UNUSED,
-     arelent *           cache_ptr,
+    (bfd *		 abfd ATTRIBUTE_UNUSED,
+     arelent *		 cache_ptr,
      Elf_Internal_Rela * dst)
 {
   unsigned int r_type;
@@ -387,19 +388,19 @@ static bfd_reloc_status_type m32c_apply_
 
 static bfd_boolean
 m32c_elf_relocate_section
-    (bfd *                   output_bfd ATTRIBUTE_UNUSED,
+    (bfd *		     output_bfd ATTRIBUTE_UNUSED,
      struct bfd_link_info *  info,
-     bfd *                   input_bfd,
-     asection *              input_section,
-     bfd_byte *              contents,
+     bfd *		     input_bfd,
+     asection *		     input_section,
+     bfd_byte *		     contents,
      Elf_Internal_Rela *     relocs,
-     Elf_Internal_Sym *      local_syms,
-     asection **             local_sections)
+     Elf_Internal_Sym *	     local_syms,
+     asection **	     local_sections)
 {
-  Elf_Internal_Shdr *           symtab_hdr;
+  Elf_Internal_Shdr *		symtab_hdr;
   struct elf_link_hash_entry ** sym_hashes;
-  Elf_Internal_Rela *           rel;
-  Elf_Internal_Rela *           relend;
+  Elf_Internal_Rela *		rel;
+  Elf_Internal_Rela *		relend;
   asection *splt;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
@@ -410,15 +411,15 @@ m32c_elf_relocate_section
 
   for (rel = relocs; rel < relend; rel ++)
     {
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
+      reloc_howto_type *	   howto;
+      unsigned long		   r_symndx;
+      Elf_Internal_Sym *	   sym;
+      asection *		   sec;
       struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 name = NULL;
-      int                          r_type;
+      bfd_vma			   relocation;
+      bfd_reloc_status_type	   r;
+      const char *		   name = NULL;
+      int			   r_type;
 
       r_type = ELF32_R_TYPE (rel->r_info);
 
@@ -487,9 +488,9 @@ m32c_elf_relocate_section
       if (bfd_link_relocatable (info))
 	{
 	  /* This is a relocatable link.  We don't have to change
-             anything, unless the reloc is against a section symbol,
-             in which case we have to adjust according to where the
-             section symbol winds up in the output section.  */
+	     anything, unless the reloc is against a section symbol,
+	     in which case we have to adjust according to where the
+	     section symbol winds up in the output section.  */
 	  if (sym != NULL && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
 	    rel->r_addend += sec->output_offset;
 	  continue;
@@ -510,9 +511,9 @@ m32c_elf_relocate_section
 		    relocation, *plt_offset);*/
 	    if (relocation <= 0xffff)
 	      {
-	        /* If the symbol is in range for a 16-bit address, we should
+		/* If the symbol is in range for a 16-bit address, we should
 		   have deallocated the plt entry in relax_section.  */
-	        BFD_ASSERT (*plt_offset == (bfd_vma) -1);
+		BFD_ASSERT (*plt_offset == (bfd_vma) -1);
 	      }
 	    else
 	      {
@@ -648,15 +649,15 @@ m32c_elf_relocate_section
 
 static bfd_boolean
 m32c_elf_check_relocs
-    (bfd *                     abfd,
+    (bfd *		       abfd,
      struct bfd_link_info *    info,
-     asection *                sec,
+     asection *		       sec,
      const Elf_Internal_Rela * relocs)
 {
-  Elf_Internal_Shdr *           symtab_hdr;
+  Elf_Internal_Shdr *		symtab_hdr;
   struct elf_link_hash_entry ** sym_hashes;
-  const Elf_Internal_Rela *     rel;
-  const Elf_Internal_Rela *     rel_end;
+  const Elf_Internal_Rela *	rel;
+  const Elf_Internal_Rela *	rel_end;
   bfd_vma *local_plt_offsets;
   asection *splt;
   bfd *dynobj;
@@ -679,21 +680,17 @@ m32c_elf_check_relocs
 
       r_symndx = ELF32_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
-        {
+	{
 	  /* This relocation describes a 16-bit pointer to a function.
 	     We may need to allocate a thunk in low memory; reserve memory
 	     for it now.  */
@@ -741,7 +738,7 @@ m32c_elf_check_relocs
 	      splt->size += 4;
 	    }
 	  break;
-        }
+	}
     }
 
   return TRUE;
@@ -751,7 +748,7 @@ m32c_elf_check_relocs
 
 static bfd_boolean
 m32c_elf_finish_dynamic_sections (bfd *abfd ATTRIBUTE_UNUSED,
-                                  struct bfd_link_info *info)
+				  struct bfd_link_info *info)
 {
   bfd *dynobj = elf_hash_table (info)->dynobj;
   asection *splt = elf_hash_table (info)->splt;
@@ -775,7 +772,7 @@ m32c_elf_finish_dynamic_sections (bfd *a
 
 static bfd_boolean
 m32c_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
-                               struct bfd_link_info *info)
+			       struct bfd_link_info *info)
 {
   bfd *dynobj;
   asection *splt;
@@ -826,7 +823,7 @@ m32c_elf_merge_private_bfd_data (bfd *ib
 
 #ifdef DEBUG
   _bfd_error_handler
-    ("old_flags = 0x%.8lx, new_flags = 0x%.8lx, init = %s, filename = %s",
+    ("old_flags = 0x%.8x, new_flags = 0x%.8x, init = %s, filename = %s",
      old_flags, new_flags, elf_flags_init (obfd) ? "yes" : "no",
      bfd_get_filename (ibfd));
 #endif
@@ -887,9 +884,9 @@ m32c_elf_merge_private_bfd_data (bfd *ib
 	  error = TRUE;
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: uses different e_flags (0x%lx) fields"
-	       " than previous modules (0x%lx)"),
-	     ibfd, (long) new_flags, (long) old_flags);
+	    (_("%B: uses different e_flags (%#x) fields"
+	       " than previous modules (%#x)"),
+	     ibfd, new_flags, old_flags);
 	}
     }
 
@@ -933,7 +930,7 @@ elf32_m32c_machine (bfd *abfd)
   switch (elf_elfheader (abfd)->e_flags & EF_M32C_CPU_MASK)
     {
     case EF_M32C_CPU_M16C:	return bfd_mach_m16c;
-    case EF_M32C_CPU_M32C:  	return bfd_mach_m32c;
+    case EF_M32C_CPU_M32C:	return bfd_mach_m32c;
     }
 
   return bfd_mach_m16c;
@@ -1148,8 +1145,8 @@ m32c_relax_plt_realloc (struct elf_link_
 
 static bfd_boolean
 m32c_elf_relax_plt_section (asection *splt,
-                            struct bfd_link_info *info,
-                            bfd_boolean *again)
+			    struct bfd_link_info *info,
+			    bfd_boolean *again)
 {
   struct relax_plt_data relax_plt_data;
   bfd *ibfd;
@@ -1259,7 +1256,7 @@ m32c_elf_relax_plt_section (asection *sp
 	  for (idx = 0; idx < nlocals; ++idx)
 	    if (local_plt_offsets[idx] != (bfd_vma) -1)
 	      {
-	        local_plt_offsets[idx] = entry;
+		local_plt_offsets[idx] = entry;
 		entry += 4;
 	      }
 	}
@@ -1429,10 +1426,10 @@ static EncodingTable m32c_addr_encodings
 
 static bfd_boolean
 m32c_elf_relax_section
-    (bfd *                  abfd,
-     asection *             sec,
+    (bfd *		    abfd,
+     asection *		    sec,
      struct bfd_link_info * link_info,
-     bfd_boolean *          again)
+     bfd_boolean *	    again)
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Shdr *shndx_hdr;
@@ -1517,7 +1514,7 @@ m32c_elf_relax_section
   /* The RL_ relocs must be just before the operand relocs they go
      with, so we must sort them to guarantee this.  */
   qsort (internal_relocs, sec->reloc_count, sizeof (Elf_Internal_Rela),
-         compare_reloc);
+	 compare_reloc);
 
   /* Walk through them looking for relaxing opportunities.  */
   irelend = internal_relocs + sec->reloc_count;
@@ -1587,9 +1584,9 @@ m32c_elf_relax_section
       */
 
       /* Get the value of the symbol referred to by the reloc.  Just
-         in case this is the last reloc in the list, use the RL's
-         addend to choose between this reloc (no addend) or the next
-         (yes addend, which means at least one following reloc).  */
+	 in case this is the last reloc in the list, use the RL's
+	 addend to choose between this reloc (no addend) or the next
+	 (yes addend, which means at least one following reloc).  */
       srel = irel + (relax_relocs ? 1 : 0);
       symval = OFFSET_FOR_RELOC (srel);
 
@@ -1956,10 +1953,10 @@ m32c_elf_relax_section
 
 static bfd_boolean
 m32c_elf_relax_delete_bytes
- (bfd *      abfd,
+ (bfd *	     abfd,
   asection * sec,
   bfd_vma    addr,
-  int        count)
+  int	     count)
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Shdr *shndx_hdr;
@@ -1975,7 +1972,7 @@ m32c_elf_relax_delete_bytes
   Elf_External_Sym_Shndx *shndx;
   struct elf_link_hash_entry ** sym_hashes;
   struct elf_link_hash_entry ** end_hashes;
-  unsigned int                  symcount;
+  unsigned int			symcount;
 
   contents   = elf_section_data (sec)->this_hdr.contents;
 
@@ -2107,7 +2104,8 @@ m32c_elf_relax_delete_bytes
 
 /* This is for versions of gcc prior to 4.3.  */
 static unsigned int
-_bfd_m32c_elf_eh_frame_address_size (bfd *abfd, asection *sec ATTRIBUTE_UNUSED)
+_bfd_m32c_elf_eh_frame_address_size (bfd *abfd,
+				     const asection *sec ATTRIBUTE_UNUSED)
 {
   if ((elf_elfheader (abfd)->e_flags & EF_M32C_CPU_MASK) == EF_M32C_CPU_M16C)
     return 2;
@@ -2133,9 +2131,9 @@ _bfd_m32c_elf_eh_frame_address_size (bfd
 #define elf_info_to_howto			m32c_info_to_howto_rela
 #define elf_backend_object_p			m32c_elf_object_p
 #define elf_backend_relocate_section		m32c_elf_relocate_section
-#define elf_backend_check_relocs                m32c_elf_check_relocs
+#define elf_backend_check_relocs		m32c_elf_check_relocs
 #define elf_backend_object_p			m32c_elf_object_p
-#define elf_symbol_leading_char                 ('_')
+#define elf_symbol_leading_char			('_')
 #define elf_backend_always_size_sections \
   m32c_elf_always_size_sections
 #define elf_backend_finish_dynamic_sections \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m32r.c ./bfd/elf32-m32r.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m32r.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-m32r.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* M32R-specific support for 32-bit ELF.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -60,25 +60,25 @@
    and the initial contents are unimportant (we zero them out).
    Subsequent entries look like this. */
 
-#define PLT0_ENTRY_WORD0  0xd6c00000    /* seth r6, #high(.got+4)          */
-#define PLT0_ENTRY_WORD1  0x86e60000    /* or3  r6, r6, #low(.got)+4)      */
-#define PLT0_ENTRY_WORD2  0x24e626c6    /* ld   r4, @r6+    -> ld r6, @r6  */
-#define PLT0_ENTRY_WORD3  0x1fc6f000    /* jmp  r6          || pnop        */
-#define PLT0_ENTRY_WORD4  PLT_EMPTY     /* RIE             -> RIE          */
-
-#define PLT0_PIC_ENTRY_WORD0  0xa4cc0004 /* ld   r4, @(4,r12)              */
-#define PLT0_PIC_ENTRY_WORD1  0xa6cc0008 /* ld   r6, @(8,r12)              */
-#define PLT0_PIC_ENTRY_WORD2  0x1fc6f000 /* jmp  r6         || nop         */
-#define PLT0_PIC_ENTRY_WORD3  PLT_EMPTY  /* RIE             -> RIE         */
-#define PLT0_PIC_ENTRY_WORD4  PLT_EMPTY  /* RIE             -> RIE         */
-
-#define PLT_ENTRY_WORD0  0xe6000000 /* ld24 r6, .name_in_GOT                */
-#define PLT_ENTRY_WORD1  0x06acf000 /* add  r6, r12          || nop         */
-#define PLT_ENTRY_WORD0b 0xd6c00000 /* seth r6, #high(.name_in_GOT)         */
-#define PLT_ENTRY_WORD1b 0x86e60000 /* or3  r6, r6, #low(.name_in_GOT)      */
-#define PLT_ENTRY_WORD2  0x26c61fc6 /* ld  r6, @r6           -> jmp r6      */
-#define PLT_ENTRY_WORD3  0xe5000000 /* ld24 r5, $offset                     */
-#define PLT_ENTRY_WORD4  0xff000000 /* bra  .plt0.                          */
+#define PLT0_ENTRY_WORD0  0xd6c00000	/* seth r6, #high(.got+4)	   */
+#define PLT0_ENTRY_WORD1  0x86e60000	/* or3	r6, r6, #low(.got)+4)	   */
+#define PLT0_ENTRY_WORD2  0x24e626c6	/* ld	r4, @r6+    -> ld r6, @r6  */
+#define PLT0_ENTRY_WORD3  0x1fc6f000	/* jmp	r6	    || pnop	   */
+#define PLT0_ENTRY_WORD4  PLT_EMPTY	/* RIE		   -> RIE	   */
+
+#define PLT0_PIC_ENTRY_WORD0  0xa4cc0004 /* ld	 r4, @(4,r12)		   */
+#define PLT0_PIC_ENTRY_WORD1  0xa6cc0008 /* ld	 r6, @(8,r12)		   */
+#define PLT0_PIC_ENTRY_WORD2  0x1fc6f000 /* jmp	 r6	    || nop	   */
+#define PLT0_PIC_ENTRY_WORD3  PLT_EMPTY	 /* RIE		    -> RIE	   */
+#define PLT0_PIC_ENTRY_WORD4  PLT_EMPTY	 /* RIE		    -> RIE	   */
+
+#define PLT_ENTRY_WORD0	 0xe6000000 /* ld24 r6, .name_in_GOT		    */
+#define PLT_ENTRY_WORD1	 0x06acf000 /* add  r6, r12	     || nop	    */
+#define PLT_ENTRY_WORD0b 0xd6c00000 /* seth r6, #high(.name_in_GOT)	    */
+#define PLT_ENTRY_WORD1b 0x86e60000 /* or3  r6, r6, #low(.name_in_GOT)	    */
+#define PLT_ENTRY_WORD2	 0x26c61fc6 /* ld  r6, @r6	     -> jmp r6	    */
+#define PLT_ENTRY_WORD3	 0xe5000000 /* ld24 r5, $offset			    */
+#define PLT_ENTRY_WORD4	 0xff000000 /* bra  .plt0.			    */
 
 
 /* Utility to actually perform an R_M32R_10_PCREL reloc.  */
@@ -216,8 +216,8 @@ m32r_elf_generic_reloc (bfd *input_bfd,
   relocation += reloc_entry->addend;
   inplace_address = (bfd_byte *) data + reloc_entry->address;
 
-#define DOIT(x) 					\
-  x = ( (x & ~reloc_entry->howto->dst_mask) | 		\
+#define DOIT(x)						\
+  x = ( (x & ~reloc_entry->howto->dst_mask) |		\
   (((x & reloc_entry->howto->src_mask) +  relocation) &	\
   reloc_entry->howto->dst_mask))
 
@@ -227,14 +227,14 @@ m32r_elf_generic_reloc (bfd *input_bfd,
       {
 	short x = bfd_get_16 (input_bfd, inplace_address);
 	DOIT (x);
-      	bfd_put_16 (input_bfd, (bfd_vma) x, inplace_address);
+	bfd_put_16 (input_bfd, (bfd_vma) x, inplace_address);
       }
       break;
     case 2:
       {
 	unsigned long x = bfd_get_32 (input_bfd, inplace_address);
 	DOIT (x);
-      	bfd_put_32 (input_bfd, (bfd_vma)x , inplace_address);
+	bfd_put_32 (input_bfd, (bfd_vma)x , inplace_address);
       }
       break;
     default:
@@ -540,17 +540,17 @@ static reloc_howto_type m32r_elf_howto_t
      and if bfd_install_relocation gets called the addend may get added
      again.  */
   HOWTO (R_M32R_10_PCREL,	/* type */
-	 2,	                /* rightshift */
-	 1,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 10,	                /* bitsize */
-	 TRUE,	                /* pc_relative */
-	 0,	                /* bitpos */
+	 2,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 10,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
 	 m32r_elf_10_pcrel_reloc, /* special_function */
 	 "R_M32R_10_PCREL",	/* name */
-	 FALSE,	                /* partial_inplace */
-	 0xff,		        /* src_mask */
-	 0xff,   		/* dst_mask */
+	 FALSE,			/* partial_inplace */
+	 0xff,			/* src_mask */
+	 0xff,			/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
   /* A relative 18 bit relocation, right shifted by 2.  */
@@ -649,33 +649,33 @@ static reloc_howto_type m32r_elf_howto_t
 
   /* GNU extension to record C++ vtable hierarchy.  */
   HOWTO (R_M32R_GNU_VTINHERIT, /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         NULL,                  /* special_function */
-         "R_M32R_GNU_VTINHERIT", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 NULL,			/* special_function */
+	 "R_M32R_GNU_VTINHERIT", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage.  */
-  HOWTO (R_M32R_GNU_VTENTRY,     /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
-         "R_M32R_GNU_VTENTRY",   /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_M32R_GNU_VTENTRY,	 /* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 _bfd_elf_rel_vtable_reloc_fn,	/* special_function */
+	 "R_M32R_GNU_VTENTRY",	 /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   EMPTY_HOWTO (13),
   EMPTY_HOWTO (14),
@@ -744,17 +744,17 @@ static reloc_howto_type m32r_elf_howto_t
 	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_M32R_10_PCREL_RELA,	/* type */
-	 2,	                /* rightshift */
-	 1,	                /* size (0 = byte, 1 = short, 2 = long) */
-	 10,	                /* bitsize */
-	 TRUE,	                /* pc_relative */
-	 0,	                /* bitpos */
+	 2,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 10,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
 	 m32r_elf_10_pcrel_reloc, /* special_function */
 	 "R_M32R_10_PCREL_RELA",/* name */
-	 FALSE,	                /* partial_inplace */
-	 0xff,		        /* src_mask */
-	 0xff,   		/* dst_mask */
+	 FALSE,			/* partial_inplace */
+	 0xff,			/* src_mask */
+	 0xff,			/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
   /* A relative 18 bit relocation, right shifted by 2.  */
@@ -849,33 +849,33 @@ static reloc_howto_type m32r_elf_howto_t
 
   /* GNU extension to record C++ vtable hierarchy.  */
   HOWTO (R_M32R_RELA_GNU_VTINHERIT, /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         NULL,                  /* special_function */
-         "R_M32R_RELA_GNU_VTINHERIT", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 NULL,			/* special_function */
+	 "R_M32R_RELA_GNU_VTINHERIT", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage.  */
   HOWTO (R_M32R_RELA_GNU_VTENTRY,     /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
-         "R_M32R_RELA_GNU_VTENTRY",   /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 _bfd_elf_rel_vtable_reloc_fn,	/* special_function */
+	 "R_M32R_RELA_GNU_VTENTRY",   /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* A 32 bit PC relative relocation.  */
   HOWTO (R_M32R_REL32,		/* type */
@@ -1295,8 +1295,8 @@ m32r_info_to_howto (bfd *abfd ATTRIBUTE_
 		    Elf_Internal_Rela *dst)
 {
   BFD_ASSERT ((ELF32_R_TYPE(dst->r_info) == (unsigned int) R_M32R_NONE)
-              || ((ELF32_R_TYPE(dst->r_info) > (unsigned int) R_M32R_GNU_VTENTRY)
-                  && (ELF32_R_TYPE(dst->r_info) < (unsigned int) R_M32R_max)));
+	      || ((ELF32_R_TYPE(dst->r_info) > (unsigned int) R_M32R_GNU_VTENTRY)
+		  && (ELF32_R_TYPE(dst->r_info) < (unsigned int) R_M32R_max)));
   cache_ptr->howto = &m32r_elf_howto_table[ELF32_R_TYPE(dst->r_info)];
 }
 
@@ -1485,27 +1485,6 @@ struct elf_m32r_pcrel_relocs_copied
   bfd_size_type count;
 };
 
-/* The sh linker needs to keep track of the number of relocs that it
-   decides to copy as dynamic relocs in check_relocs for each symbol.
-   This is so that it can later discard them if they are found to be
-   unnecessary.  We store the information in a field extending the
-   regular ELF linker hash table.  */
-
-struct elf_m32r_dyn_relocs
-{
-  struct elf_m32r_dyn_relocs *next;
-
-  /* The input section of the reloc.  */
-  asection *sec;
-
-  /* Total number of relocs copied for the input section.  */
-  bfd_size_type count;
-
-  /* Number of pc-relative relocs copied for the input section.  */
-  bfd_size_type pc_count;
-};
-
-
 /* m32r ELF linker hash entry.  */
 
 struct elf_m32r_link_hash_entry
@@ -1513,7 +1492,7 @@ struct elf_m32r_link_hash_entry
   struct elf_link_hash_entry root;
 
   /* Track dynamic relocs copied for this symbol.  */
-  struct elf_m32r_dyn_relocs *dyn_relocs;
+  struct elf_dyn_relocs *dyn_relocs;
 };
 
 /* m32r ELF linker hash table.  */
@@ -1564,8 +1543,8 @@ m32r_elf_link_hash_newfunc (struct bfd_h
 
   /* Call the allocation method of the superclass.  */
   ret = ((struct elf_m32r_link_hash_entry *)
-         _bfd_elf_link_hash_newfunc ((struct bfd_hash_entry *) ret,
-                                     table, string));
+	 _bfd_elf_link_hash_newfunc ((struct bfd_hash_entry *) ret,
+				     table, string));
   if (ret != NULL)
     {
       struct elf_m32r_link_hash_entry *eh;
@@ -1619,7 +1598,7 @@ m32r_elf_create_dynamic_sections (bfd *a
   /* We need to create .plt, .rel[a].plt, .got, .got.plt, .dynbss, and
      .rel[a].bss sections.  */
   flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
-           | SEC_LINKER_CREATED);
+	   | SEC_LINKER_CREATED);
 
   pltflags = flags;
   pltflags |= SEC_CODE;
@@ -1637,23 +1616,23 @@ m32r_elf_create_dynamic_sections (bfd *a
   if (bed->want_plt_sym)
     {
       /* Define the symbol _PROCEDURE_LINKAGE_TABLE_ at the start of the
-         .plt section.  */
+	 .plt section.  */
       struct bfd_link_hash_entry *bh = NULL;
       struct elf_link_hash_entry *h;
 
       if (! (_bfd_generic_link_add_one_symbol
-             (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s,
-              (bfd_vma) 0, NULL, FALSE,
-              get_elf_backend_data (abfd)->collect, &bh)))
-        return FALSE;
+	     (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s,
+	      (bfd_vma) 0, NULL, FALSE,
+	      get_elf_backend_data (abfd)->collect, &bh)))
+	return FALSE;
       h = (struct elf_link_hash_entry *) bh;
       h->def_regular = 1;
       h->type = STT_OBJECT;
       htab->root.hplt = h;
 
       if (bfd_link_pic (info)
-          && ! bfd_elf_link_record_dynamic_symbol (info, h))
-        return FALSE;
+	  && ! bfd_elf_link_record_dynamic_symbol (info, h))
+	return FALSE;
     }
 
   s = bfd_make_section_anyway_with_flags (abfd,
@@ -1672,38 +1651,38 @@ m32r_elf_create_dynamic_sections (bfd *a
   if (bed->want_dynbss)
     {
       /* The .dynbss section is a place to put symbols which are defined
-         by dynamic objects, are referenced by regular objects, and are
-         not functions.  We must allocate space for them in the process
-         image and use a R_*_COPY reloc to tell the dynamic linker to
-         initialize them at run time.  The linker script puts the .dynbss
-         section into the .bss section of the final image.  */
+	 by dynamic objects, are referenced by regular objects, and are
+	 not functions.  We must allocate space for them in the process
+	 image and use a R_*_COPY reloc to tell the dynamic linker to
+	 initialize them at run time.  The linker script puts the .dynbss
+	 section into the .bss section of the final image.  */
       s = bfd_make_section_anyway_with_flags (abfd, ".dynbss",
 					      SEC_ALLOC | SEC_LINKER_CREATED);
       htab->sdynbss = s;
       if (s == NULL)
-        return FALSE;
+	return FALSE;
       /* The .rel[a].bss section holds copy relocs.  This section is not
-         normally needed.  We need to create it here, though, so that the
-         linker will map it to an output section.  We can't just create it
-         only if we need it, because we will not know whether we need it
-         until we have seen all the input files, and the first time the
-         main linker code calls BFD after examining all the input files
-         (size_dynamic_sections) the input sections have already been
-         mapped to the output sections.  If the section turns out not to
-         be needed, we can discard it later.  We will never need this
-         section when generating a shared object, since they do not use
-         copy relocs.  */
+	 normally needed.  We need to create it here, though, so that the
+	 linker will map it to an output section.  We can't just create it
+	 only if we need it, because we will not know whether we need it
+	 until we have seen all the input files, and the first time the
+	 main linker code calls BFD after examining all the input files
+	 (size_dynamic_sections) the input sections have already been
+	 mapped to the output sections.  If the section turns out not to
+	 be needed, we can discard it later.  We will never need this
+	 section when generating a shared object, since they do not use
+	 copy relocs.  */
       if (! bfd_link_pic (info))
-        {
-          s = bfd_make_section_anyway_with_flags (abfd,
+	{
+	  s = bfd_make_section_anyway_with_flags (abfd,
 						  (bed->default_use_rela_p
 						   ? ".rela.bss" : ".rel.bss"),
 						  flags | SEC_READONLY);
-          htab->srelbss = s;
-          if (s == NULL
-              || ! bfd_set_section_alignment (abfd, s, ptralign))
-            return FALSE;
-        }
+	  htab->srelbss = s;
+	  if (s == NULL
+	      || ! bfd_set_section_alignment (abfd, s, ptralign))
+	    return FALSE;
+	}
     }
 
   return TRUE;
@@ -1713,8 +1692,8 @@ m32r_elf_create_dynamic_sections (bfd *a
 
 static void
 m32r_elf_copy_indirect_symbol (struct bfd_link_info *info,
-                               struct elf_link_hash_entry *dir,
-                               struct elf_link_hash_entry *ind)
+			       struct elf_link_hash_entry *dir,
+			       struct elf_link_hash_entry *ind)
 {
   struct elf_m32r_link_hash_entry * edir;
   struct elf_m32r_link_hash_entry * eind;
@@ -1725,29 +1704,29 @@ m32r_elf_copy_indirect_symbol (struct bf
   if (eind->dyn_relocs != NULL)
     {
       if (edir->dyn_relocs != NULL)
-        {
-          struct elf_m32r_dyn_relocs **pp;
-          struct elf_m32r_dyn_relocs *p;
-
-          /* Add reloc counts against the indirect sym to the direct sym
-             list.  Merge any entries against the same section.  */
-          for (pp = &eind->dyn_relocs; (p = *pp) != NULL;)
-            {
-              struct elf_m32r_dyn_relocs *q;
-
-              for (q = edir->dyn_relocs; q != NULL; q = q->next)
-                if (q->sec == p->sec)
-                  {
-                    q->pc_count += p->pc_count;
-                    q->count += p->count;
-                    *pp = p->next;
-                    break;
-                  }
-              if (q == NULL)
-                pp = &p->next;
-            }
-          *pp = edir->dyn_relocs;
-        }
+	{
+	  struct elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs *p;
+
+	  /* Add reloc counts against the indirect sym to the direct sym
+	     list.  Merge any entries against the same section.  */
+	  for (pp = &eind->dyn_relocs; (p = *pp) != NULL;)
+	    {
+	      struct elf_dyn_relocs *q;
+
+	      for (q = edir->dyn_relocs; q != NULL; q = q->next)
+		if (q->sec == p->sec)
+		  {
+		    q->pc_count += p->pc_count;
+		    q->count += p->count;
+		    *pp = p->next;
+		    break;
+		  }
+	      if (q == NULL)
+		pp = &p->next;
+	    }
+	  *pp = edir->dyn_relocs;
+	}
 
       edir->dyn_relocs = eind->dyn_relocs;
       eind->dyn_relocs = NULL;
@@ -1757,6 +1736,24 @@ m32r_elf_copy_indirect_symbol (struct bf
 }
 
 
+/* Find dynamic relocs for H that apply to read-only sections.  */
+
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
+  struct elf_m32r_link_hash_entry *eh = (struct elf_m32r_link_hash_entry *) h;
+
+  for (p = eh->dyn_relocs; p != NULL; p = p->next)
+    {
+      asection *s = p->sec->output_section;
+
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
+    }
+  return NULL;
+}
+
 /* Adjust a symbol defined by a dynamic object and referenced by a
    regular object.  The current definition is in some section of the
    dynamic object, but we're not including those sections.  We have to
@@ -1768,8 +1765,6 @@ m32r_elf_adjust_dynamic_symbol (struct b
 				struct elf_link_hash_entry *h)
 {
   struct elf_m32r_link_hash_table *htab;
-  struct elf_m32r_link_hash_entry *eh;
-  struct elf_m32r_dyn_relocs *p;
   bfd *dynobj;
   asection *s;
 
@@ -1781,11 +1776,11 @@ m32r_elf_adjust_dynamic_symbol (struct b
 
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
-              && (h->needs_plt
-                  || h->u.weakdef != NULL
-                  || (h->def_dynamic
-                      && h->ref_regular
-                      && !h->def_regular)));
+	      && (h->needs_plt
+		  || h->is_weakalias
+		  || (h->def_dynamic
+		      && h->ref_regular
+		      && !h->def_regular)));
 
   /* If this is a function, put it in the procedure linkage table.  We
      will fill in the contents of the procedure linkage table later,
@@ -1794,19 +1789,19 @@ m32r_elf_adjust_dynamic_symbol (struct b
       || h->needs_plt)
     {
       if (! bfd_link_pic (info)
-          && !h->def_dynamic
-          && !h->ref_dynamic
+	  && !h->def_dynamic
+	  && !h->ref_dynamic
 	  && h->root.type != bfd_link_hash_undefweak
 	  && h->root.type != bfd_link_hash_undefined)
-        {
-          /* This case can occur if we saw a PLT reloc in an input
-             file, but the symbol was never referred to by a dynamic
-             object.  In such a case, we don't actually need to build
-             a procedure linkage table, and we can just do a PCREL
-             reloc instead.  */
-          h->plt.offset = (bfd_vma) -1;
-          h->needs_plt = 0;
-        }
+	{
+	  /* This case can occur if we saw a PLT reloc in an input
+	     file, but the symbol was never referred to by a dynamic
+	     object.  In such a case, we don't actually need to build
+	     a procedure linkage table, and we can just do a PCREL
+	     reloc instead.  */
+	  h->plt.offset = (bfd_vma) -1;
+	  h->needs_plt = 0;
+	}
 
       return TRUE;
     }
@@ -1816,12 +1811,12 @@ m32r_elf_adjust_dynamic_symbol (struct b
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-                  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -1841,24 +1836,15 @@ m32r_elf_adjust_dynamic_symbol (struct b
     return TRUE;
 
   /* If -z nocopyreloc was given, we won't generate them either.  */
-  if (info->nocopyreloc)
+  if (0 && info->nocopyreloc)
     {
       h->non_got_ref = 0;
       return TRUE;
     }
 
-  eh = (struct elf_m32r_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      s = p->sec->output_section;
-      if (s != NULL && (s->flags & (SEC_READONLY | SEC_HAS_CONTENTS)) != 0)
-        break;
-    }
-
-  /* If we didn't find any dynamic relocs in sections which needs the
-     copy reloc, then we'll be keeping the dynamic relocs and avoiding
-     the copy reloc.  */
-  if (p == NULL)
+  /* If we don't find any dynamic relocs in read-only sections, then
+     we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
+  if (0 && !readonly_dynrelocs (h))
     {
       h->non_got_ref = 0;
       return TRUE;
@@ -1907,7 +1893,7 @@ allocate_dynrelocs (struct elf_link_hash
   struct bfd_link_info *info;
   struct elf_m32r_link_hash_table *htab;
   struct elf_m32r_link_hash_entry *eh;
-  struct elf_m32r_dyn_relocs *p;
+  struct elf_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
     return TRUE;
@@ -1923,52 +1909,52 @@ allocate_dynrelocs (struct elf_link_hash
       && h->plt.refcount > 0)
     {
       /* Make sure this symbol is output as a dynamic symbol.
-         Undefined weak syms won't yet be marked as dynamic.  */
+	 Undefined weak syms won't yet be marked as dynamic.  */
       if (h->dynindx == -1
-          && !h->forced_local)
-        {
-          if (! bfd_elf_link_record_dynamic_symbol (info, h))
-            return FALSE;
-        }
+	  && !h->forced_local)
+	{
+	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
+	    return FALSE;
+	}
 
       if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, bfd_link_pic (info), h))
-        {
-          asection *s = htab->root.splt;
+	{
+	  asection *s = htab->root.splt;
+
+	  /* If this is the first .plt entry, make room for the special
+	     first entry.  */
+	  if (s->size == 0)
+	    s->size += PLT_ENTRY_SIZE;
+
+	  h->plt.offset = s->size;
+
+	  /* If this symbol is not defined in a regular file, and we are
+	     not generating a shared library, then set the symbol to this
+	     location in the .plt.  This is required to make function
+	     pointers compare as equal between the normal executable and
+	     the shared library.  */
+	  if (! bfd_link_pic (info)
+	      && !h->def_regular)
+	    {
+	      h->root.u.def.section = s;
+	      h->root.u.def.value = h->plt.offset;
+	    }
+
+	  /* Make room for this entry.  */
+	  s->size += PLT_ENTRY_SIZE;
+
+	  /* We also need to make an entry in the .got.plt section, which
+	     will be placed in the .got section by the linker script.  */
+	  htab->root.sgotplt->size += 4;
 
-          /* If this is the first .plt entry, make room for the special
-             first entry.  */
-          if (s->size == 0)
-            s->size += PLT_ENTRY_SIZE;
-
-          h->plt.offset = s->size;
-
-          /* If this symbol is not defined in a regular file, and we are
-             not generating a shared library, then set the symbol to this
-             location in the .plt.  This is required to make function
-             pointers compare as equal between the normal executable and
-             the shared library.  */
-          if (! bfd_link_pic (info)
-              && !h->def_regular)
-            {
-              h->root.u.def.section = s;
-              h->root.u.def.value = h->plt.offset;
-            }
-
-          /* Make room for this entry.  */
-          s->size += PLT_ENTRY_SIZE;
-
-          /* We also need to make an entry in the .got.plt section, which
-             will be placed in the .got section by the linker script.  */
-          htab->root.sgotplt->size += 4;
-
-          /* We also need to make an entry in the .rel.plt section.  */
-          htab->root.srelplt->size += sizeof (Elf32_External_Rela);
-        }
+	  /* We also need to make an entry in the .rel.plt section.  */
+	  htab->root.srelplt->size += sizeof (Elf32_External_Rela);
+	}
       else
-        {
-          h->plt.offset = (bfd_vma) -1;
-          h->needs_plt = 0;
-        }
+	{
+	  h->plt.offset = (bfd_vma) -1;
+	  h->needs_plt = 0;
+	}
     }
   else
     {
@@ -1982,13 +1968,13 @@ allocate_dynrelocs (struct elf_link_hash
       bfd_boolean dyn;
 
       /* Make sure this symbol is output as a dynamic symbol.
-         Undefined weak syms won't yet be marked as dynamic.  */
+	 Undefined weak syms won't yet be marked as dynamic.  */
       if (h->dynindx == -1
-          && !h->forced_local)
-        {
-          if (! bfd_elf_link_record_dynamic_symbol (info, h))
-            return FALSE;
-        }
+	  && !h->forced_local)
+	{
+	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
+	    return FALSE;
+	}
 
       s = htab->root.sgot;
 
@@ -1996,7 +1982,7 @@ allocate_dynrelocs (struct elf_link_hash
       s->size += 4;
       dyn = htab->root.dynamic_sections_created;
       if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h))
-        htab->root.srelgot->size += sizeof (Elf32_External_Rela);
+	htab->root.srelgot->size += sizeof (Elf32_External_Rela);
     }
   else
     h->got.offset = (bfd_vma) -1;
@@ -2013,21 +1999,21 @@ allocate_dynrelocs (struct elf_link_hash
   if (bfd_link_pic (info))
     {
       if (h->def_regular
-          && (h->forced_local
-              || info->symbolic))
-        {
-          struct elf_m32r_dyn_relocs **pp;
-
-          for (pp = &eh->dyn_relocs; (p = *pp) != NULL;)
-            {
-              p->count -= p->pc_count;
-              p->pc_count = 0;
-              if (p->count == 0)
-                *pp = p->next;
-              else
-                pp = &p->next;
-            }
-        }
+	  && (h->forced_local
+	      || info->symbolic))
+	{
+	  struct elf_dyn_relocs **pp;
+
+	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL;)
+	    {
+	      p->count -= p->pc_count;
+	      p->pc_count = 0;
+	      if (p->count == 0)
+		*pp = p->next;
+	      else
+		pp = &p->next;
+	    }
+	}
 
       /* Also discard relocs on undefined weak syms with non-default
 	 visibility.  */
@@ -2050,30 +2036,30 @@ allocate_dynrelocs (struct elf_link_hash
   else
     {
       /* For the non-shared case, discard space for relocs against
-         symbols which turn out to need copy relocs or are not
-         dynamic.  */
+	 symbols which turn out to need copy relocs or are not
+	 dynamic.  */
 
       if (!h->non_got_ref
-          && ((h->def_dynamic
-               && !h->def_regular)
-              || (htab->root.dynamic_sections_created
-                  && (h->root.type == bfd_link_hash_undefweak
-                      || h->root.type == bfd_link_hash_undefined))))
-        {
-          /* Make sure this symbol is output as a dynamic symbol.
-             Undefined weak syms won't yet be marked as dynamic.  */
-          if (h->dynindx == -1
-              && !h->forced_local)
-            {
-              if (! bfd_elf_link_record_dynamic_symbol (info, h))
-                return FALSE;
-            }
-
-          /* If that succeeded, we know we'll be keeping all the
-             relocs.  */
-          if (h->dynindx != -1)
-            goto keep;
-        }
+	  && ((h->def_dynamic
+	       && !h->def_regular)
+	      || (htab->root.dynamic_sections_created
+		  && (h->root.type == bfd_link_hash_undefweak
+		      || h->root.type == bfd_link_hash_undefined))))
+	{
+	  /* Make sure this symbol is output as a dynamic symbol.
+	     Undefined weak syms won't yet be marked as dynamic.  */
+	  if (h->dynindx == -1
+	      && !h->forced_local)
+	    {
+	      if (! bfd_elf_link_record_dynamic_symbol (info, h))
+		return FALSE;
+	    }
+
+	  /* If that succeeded, we know we'll be keeping all the
+	     relocs.  */
+	  if (h->dynindx != -1)
+	    goto keep;
+	}
 
       eh->dyn_relocs = NULL;
 
@@ -2090,28 +2076,29 @@ allocate_dynrelocs (struct elf_link_hash
   return TRUE;
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (struct elf_link_hash_entry *h, void * inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct elf_m32r_link_hash_entry *eh;
-  struct elf_m32r_dyn_relocs *p;
+  asection *sec;
 
-  eh = (struct elf_m32r_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection *s = p->sec->output_section;
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-        {
-          struct bfd_link_info *info = (struct bfd_link_info *) inf;
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
+    {
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-          info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
-          /* Not an error, just cut short the traversal.  */
-          return FALSE;
-        }
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -2162,38 +2149,38 @@ m32r_elf_size_dynamic_sections (bfd *out
       asection *srel;
 
       if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour)
-        continue;
+	continue;
 
       for (s = ibfd->sections; s != NULL; s = s->next)
-        {
-          struct elf_m32r_dyn_relocs *p;
+	{
+	  struct elf_dyn_relocs *p;
 
-          for (p = ((struct elf_m32r_dyn_relocs *)
-                    elf_section_data (s)->local_dynrel);
-               p != NULL;
-               p = p->next)
-            {
-              if (! bfd_is_abs_section (p->sec)
-                  && bfd_is_abs_section (p->sec->output_section))
-                {
-                  /* Input section has been discarded, either because
-                     it is a copy of a linkonce section or due to
-                     linker script /DISCARD/, so we'll be discarding
-                     the relocs too.  */
-                }
-              else if (p->count != 0)
-                {
-                  srel = elf_section_data (p->sec)->sreloc;
-                  srel->size += p->count * sizeof (Elf32_External_Rela);
-                  if ((p->sec->output_section->flags & SEC_READONLY) != 0)
-                    info->flags |= DF_TEXTREL;
-                }
-            }
-        }
+	  for (p = ((struct elf_dyn_relocs *)
+		    elf_section_data (s)->local_dynrel);
+	       p != NULL;
+	       p = p->next)
+	    {
+	      if (! bfd_is_abs_section (p->sec)
+		  && bfd_is_abs_section (p->sec->output_section))
+		{
+		  /* Input section has been discarded, either because
+		     it is a copy of a linkonce section or due to
+		     linker script /DISCARD/, so we'll be discarding
+		     the relocs too.  */
+		}
+	      else if (p->count != 0)
+		{
+		  srel = elf_section_data (p->sec)->sreloc;
+		  srel->size += p->count * sizeof (Elf32_External_Rela);
+		  if ((p->sec->output_section->flags & SEC_READONLY) != 0)
+		    info->flags |= DF_TEXTREL;
+		}
+	    }
+	}
 
       local_got = elf_local_got_refcounts (ibfd);
       if (!local_got)
-        continue;
+	continue;
 
       symtab_hdr = &elf_tdata (ibfd)->symtab_hdr;
       locsymcount = symtab_hdr->sh_info;
@@ -2201,17 +2188,17 @@ m32r_elf_size_dynamic_sections (bfd *out
       s = htab->root.sgot;
       srel = htab->root.srelgot;
       for (; local_got < end_local_got; ++local_got)
-        {
-          if (*local_got > 0)
-            {
-              *local_got = s->size;
-              s->size += 4;
-              if (bfd_link_pic (info))
-                srel->size += sizeof (Elf32_External_Rela);
-            }
-          else
-            *local_got = (bfd_vma) -1;
-        }
+	{
+	  if (*local_got > 0)
+	    {
+	      *local_got = s->size;
+	      s->size += 4;
+	      if (bfd_link_pic (info))
+		srel->size += sizeof (Elf32_External_Rela);
+	    }
+	  else
+	    *local_got = (bfd_vma) -1;
+	}
     }
 
   /* Allocate global sym .plt and .got entries, and space for global
@@ -2224,55 +2211,55 @@ m32r_elf_size_dynamic_sections (bfd *out
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LINKER_CREATED) == 0)
-        continue;
+	continue;
 
       if (s == htab->root.splt
-          || s == htab->root.sgot
-          || s == htab->root.sgotplt
+	  || s == htab->root.sgot
+	  || s == htab->root.sgotplt
 	  || s == htab->sdynbss)
-        {
-          /* Strip this section if we don't need it; see the
-             comment below.  */
-        }
+	{
+	  /* Strip this section if we don't need it; see the
+	     comment below.  */
+	}
       else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
-        {
-          if (s->size != 0 && s != htab->root.srelplt)
-            relocs = TRUE;
-
-          /* We use the reloc_count field as a counter if we need
-             to copy relocs into the output file.  */
-          s->reloc_count = 0;
-        }
+	{
+	  if (s->size != 0 && s != htab->root.srelplt)
+	    relocs = TRUE;
+
+	  /* We use the reloc_count field as a counter if we need
+	     to copy relocs into the output file.  */
+	  s->reloc_count = 0;
+	}
       else
 	/* It's not one of our sections, so don't allocate space.  */
 	continue;
 
       if (s->size == 0)
-        {
-          /* If we don't need this section, strip it from the
-             output file.  This is mostly to handle .rela.bss and
-             .rela.plt.  We must create both sections in
-             create_dynamic_sections, because they must be created
-             before the linker maps input sections to output
-             sections.  The linker does that before
-             adjust_dynamic_symbol is called, and it is that
-             function which decides whether anything needs to go
-             into these sections.  */
-          s->flags |= SEC_EXCLUDE;
-          continue;
-        }
+	{
+	  /* If we don't need this section, strip it from the
+	     output file.  This is mostly to handle .rela.bss and
+	     .rela.plt.  We must create both sections in
+	     create_dynamic_sections, because they must be created
+	     before the linker maps input sections to output
+	     sections.  The linker does that before
+	     adjust_dynamic_symbol is called, and it is that
+	     function which decides whether anything needs to go
+	     into these sections.  */
+	  s->flags |= SEC_EXCLUDE;
+	  continue;
+	}
 
       if ((s->flags & SEC_HAS_CONTENTS) == 0)
 	continue;
 
       /* Allocate memory for the section contents.  We use bfd_zalloc
-         here in case unused entries are not reclaimed before the
-         section's contents are written out.  This should not happen,
-         but this way if it does, we get a R_M32R_NONE reloc instead
-         of garbage.  */
+	 here in case unused entries are not reclaimed before the
+	 section's contents are written out.  This should not happen,
+	 but this way if it does, we get a R_M32R_NONE reloc instead
+	 of garbage.  */
       s->contents = bfd_zalloc (dynobj, s->size);
       if (s->contents == NULL)
-        return FALSE;
+	return FALSE;
     }
 
   if (htab->root.dynamic_sections_created)
@@ -2292,34 +2279,33 @@ m32r_elf_size_dynamic_sections (bfd *out
 	}
 
       if (htab->root.splt->size != 0)
-        {
-          if (! add_dynamic_entry (DT_PLTGOT, 0)
-              || ! add_dynamic_entry (DT_PLTRELSZ, 0)
-              || ! add_dynamic_entry (DT_PLTREL, DT_RELA)
-              || ! add_dynamic_entry (DT_JMPREL, 0))
-            return FALSE;
-        }
+	{
+	  if (! add_dynamic_entry (DT_PLTGOT, 0)
+	      || ! add_dynamic_entry (DT_PLTRELSZ, 0)
+	      || ! add_dynamic_entry (DT_PLTREL, DT_RELA)
+	      || ! add_dynamic_entry (DT_JMPREL, 0))
+	    return FALSE;
+	}
 
       if (relocs)
-        {
-          if (! add_dynamic_entry (DT_RELA, 0)
-              || ! add_dynamic_entry (DT_RELASZ, 0)
-              || ! add_dynamic_entry (DT_RELAENT,
-                                      sizeof (Elf32_External_Rela)))
-            return FALSE;
-
-          /* If any dynamic relocs apply to a read-only section,
-             then we need a DT_TEXTREL entry.  */
-          if ((info->flags & DF_TEXTREL) == 0)
-            elf_link_hash_traverse (&htab->root, readonly_dynrelocs,
-                                    info);
-
-          if ((info->flags & DF_TEXTREL) != 0)
-            {
-              if (! add_dynamic_entry (DT_TEXTREL, 0))
-                return FALSE;
-            }
-        }
+	{
+	  if (! add_dynamic_entry (DT_RELA, 0)
+	      || ! add_dynamic_entry (DT_RELASZ, 0)
+	      || ! add_dynamic_entry (DT_RELAENT,
+				      sizeof (Elf32_External_Rela)))
+	    return FALSE;
+
+	  /* If any dynamic relocs apply to a read-only section,
+	     then we need a DT_TEXTREL entry.  */
+	  if ((info->flags & DF_TEXTREL) == 0)
+	    elf_link_hash_traverse (&htab->root, maybe_set_textrel, info);
+
+	  if ((info->flags & DF_TEXTREL) != 0)
+	    {
+	      if (! add_dynamic_entry (DT_TEXTREL, 0))
+		return FALSE;
+	    }
+	}
     }
 #undef add_dynamic_entry
 
@@ -2397,9 +2383,9 @@ m32r_elf_relocate_section (bfd *output_b
       unsigned long r_symndx;
       struct elf_link_hash_entry *h;
       /* We can't modify r_addend here as elf_link_input_bfd has an assert to
-         ensure it's zero (we use REL relocs, not RELA).  Therefore this
-         should be assigning zero to `addend', but for clarity we use
-         `r_addend'.  */
+	 ensure it's zero (we use REL relocs, not RELA).  Therefore this
+	 should be assigning zero to `addend', but for clarity we use
+	 `r_addend'.  */
       bfd_vma addend = rel->r_addend;
       bfd_vma offset = rel->r_offset;
       bfd_vma relocation;
@@ -2423,14 +2409,14 @@ m32r_elf_relocate_section (bfd *output_b
 	}
 
       if (   r_type == R_M32R_GNU_VTENTRY
-          || r_type == R_M32R_GNU_VTINHERIT
-          || r_type == R_M32R_NONE
-          || r_type == R_M32R_RELA_GNU_VTENTRY
-          || r_type == R_M32R_RELA_GNU_VTINHERIT)
-        continue;
+	  || r_type == R_M32R_GNU_VTINHERIT
+	  || r_type == R_M32R_NONE
+	  || r_type == R_M32R_RELA_GNU_VTENTRY
+	  || r_type == R_M32R_RELA_GNU_VTINHERIT)
+	continue;
 
       if (r_type <= R_M32R_GNU_VTENTRY)
-        use_rel = TRUE;
+	use_rel = TRUE;
 
       howto = m32r_elf_howto_table + r_type;
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -2537,10 +2523,11 @@ m32r_elf_relocate_section (bfd *output_b
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+		    (_("%B(%A+%#Lx): unresolvable %s relocation "
+		       "against symbol `%s'"),
 		     input_bfd,
 		     input_section,
-		     (long) rel->r_offset,
+		     rel->r_offset,
 		     howto->name,
 		     h->root.root.string);
 		}
@@ -2629,22 +2616,22 @@ m32r_elf_relocate_section (bfd *output_b
 
 	  switch ((int) r_type)
 	    {
-            case R_M32R_GOTOFF:
-              /* Relocation is relative to the start of the global offset
-                 table (for ld24 rx, #uimm24). eg access at label+addend
-
-                 ld24 rx. #label@GOTOFF + addend
-                 sub  rx, r12.  */
-
-              BFD_ASSERT (sgot != NULL);
-
-              relocation = -(relocation - sgot->output_section->vma);
-              rel->r_addend = -rel->r_addend;
-              break;
-
-            case R_M32R_GOTOFF_HI_ULO:
-            case R_M32R_GOTOFF_HI_SLO:
-            case R_M32R_GOTOFF_LO:
+	    case R_M32R_GOTOFF:
+	      /* Relocation is relative to the start of the global offset
+		 table (for ld24 rx, #uimm24). eg access at label+addend
+
+		 ld24 rx. #label@GOTOFF + addend
+		 sub  rx, r12.  */
+
+	      BFD_ASSERT (sgot != NULL);
+
+	      relocation = -(relocation - sgot->output_section->vma);
+	      rel->r_addend = -rel->r_addend;
+	      break;
+
+	    case R_M32R_GOTOFF_HI_ULO:
+	    case R_M32R_GOTOFF_HI_SLO:
+	    case R_M32R_GOTOFF_LO:
 	      BFD_ASSERT (sgot != NULL);
 
 	      relocation -= sgot->output_section->vma;
@@ -2654,261 +2641,261 @@ m32r_elf_relocate_section (bfd *output_b
 		rel->r_addend += 0x10000;
 	      break;
 
-            case R_M32R_GOTPC24:
-              /* .got(_GLOBAL_OFFSET_TABLE_) - pc relocation
-                 ld24 rx,#_GLOBAL_OFFSET_TABLE_
-               */
-             relocation = sgot->output_section->vma;
-             break;
-
-            case R_M32R_GOTPC_HI_ULO:
-            case R_M32R_GOTPC_HI_SLO:
-            case R_M32R_GOTPC_LO:
-              {
-                /* .got(_GLOBAL_OFFSET_TABLE_) - pc relocation
-                   bl .+4
-                   seth rx,#high(_GLOBAL_OFFSET_TABLE_)
-                   or3 rx,rx,#low(_GLOBAL_OFFSET_TABLE_ +4)
-                   or
-                   bl .+4
-                   seth rx,#shigh(_GLOBAL_OFFSET_TABLE_)
-                   add3 rx,rx,#low(_GLOBAL_OFFSET_TABLE_ +4)
-                 */
-                relocation = sgot->output_section->vma;
-                relocation -= (input_section->output_section->vma
-                               + input_section->output_offset
-                               + rel->r_offset);
-                if ((r_type == R_M32R_GOTPC_HI_SLO)
-                     && ((relocation + rel->r_addend) & 0x8000))
-                  rel->r_addend += 0x10000;
-
-                break;
-              }
-            case R_M32R_GOT16_HI_ULO:
-            case R_M32R_GOT16_HI_SLO:
-            case R_M32R_GOT16_LO:
-              /* Fall through.  */
-            case R_M32R_GOT24:
-              /* Relocation is to the entry for this symbol in the global
-                 offset table.  */
-              BFD_ASSERT (sgot != NULL);
-
-              if (h != NULL)
-                {
-                  bfd_boolean dyn;
-                  bfd_vma off;
+	    case R_M32R_GOTPC24:
+	      /* .got(_GLOBAL_OFFSET_TABLE_) - pc relocation
+		 ld24 rx,#_GLOBAL_OFFSET_TABLE_
+	       */
+	     relocation = sgot->output_section->vma;
+	     break;
+
+	    case R_M32R_GOTPC_HI_ULO:
+	    case R_M32R_GOTPC_HI_SLO:
+	    case R_M32R_GOTPC_LO:
+	      {
+		/* .got(_GLOBAL_OFFSET_TABLE_) - pc relocation
+		   bl .+4
+		   seth rx,#high(_GLOBAL_OFFSET_TABLE_)
+		   or3 rx,rx,#low(_GLOBAL_OFFSET_TABLE_ +4)
+		   or
+		   bl .+4
+		   seth rx,#shigh(_GLOBAL_OFFSET_TABLE_)
+		   add3 rx,rx,#low(_GLOBAL_OFFSET_TABLE_ +4)
+		 */
+		relocation = sgot->output_section->vma;
+		relocation -= (input_section->output_section->vma
+			       + input_section->output_offset
+			       + rel->r_offset);
+		if ((r_type == R_M32R_GOTPC_HI_SLO)
+		     && ((relocation + rel->r_addend) & 0x8000))
+		  rel->r_addend += 0x10000;
 
-                  off = h->got.offset;
-                  BFD_ASSERT (off != (bfd_vma) -1);
+		break;
+	      }
+	    case R_M32R_GOT16_HI_ULO:
+	    case R_M32R_GOT16_HI_SLO:
+	    case R_M32R_GOT16_LO:
+	      /* Fall through.  */
+	    case R_M32R_GOT24:
+	      /* Relocation is to the entry for this symbol in the global
+		 offset table.  */
+	      BFD_ASSERT (sgot != NULL);
+
+	      if (h != NULL)
+		{
+		  bfd_boolean dyn;
+		  bfd_vma off;
+
+		  off = h->got.offset;
+		  BFD_ASSERT (off != (bfd_vma) -1);
 
-                  dyn = htab->root.dynamic_sections_created;
-                  if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
+		  dyn = htab->root.dynamic_sections_created;
+		  if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
 							 bfd_link_pic (info),
 							 h)
-                      || (bfd_link_pic (info)
-                          && (info->symbolic
-                              || h->dynindx == -1
-                              || h->forced_local)
-                          && h->def_regular))
-                    {
-                      /* This is actually a static link, or it is a
-                         -Bsymbolic link and the symbol is defined
-                         locally, or the symbol was forced to be local
-                         because of a version file.  We must initialize
-                         this entry in the global offset table.  Since the
-                         offset must always be a multiple of 4, we use the
-                         least significant bit to record whether we have
-                         initialized it already.
-
-                         When doing a dynamic link, we create a .rela.got
-                         relocation entry to initialize the value.  This
-                         is done in the finish_dynamic_symbol routine.  */
-                      if ((off & 1) != 0)
-                        off &= ~1;
-                      else
-                        {
-                          bfd_put_32 (output_bfd, relocation,
-                                      sgot->contents + off);
-                          h->got.offset |= 1;
-                        }
-                    }
-
-                  relocation = sgot->output_offset + off;
-                }
-              else
-                {
-                  bfd_vma off;
-                  bfd_byte *loc;
-
-                  BFD_ASSERT (local_got_offsets != NULL
-                              && local_got_offsets[r_symndx] != (bfd_vma) -1);
-
-                  off = local_got_offsets[r_symndx];
-
-                  /* The offset must always be a multiple of 4.  We use
-                     the least significant bit to record whether we have
-                     already processed this entry.  */
-                  if ((off & 1) != 0)
-                    off &= ~1;
-                  else
-                    {
-                      bfd_put_32 (output_bfd, relocation, sgot->contents + off);
-
-                      if (bfd_link_pic (info))
-                        {
-                          asection *srelgot;
-                          Elf_Internal_Rela outrel;
-
-                          /* We need to generate a R_M32R_RELATIVE reloc
-                             for the dynamic linker.  */
-                          srelgot = htab->root.srelgot;
-                          BFD_ASSERT (srelgot != NULL);
-
-                          outrel.r_offset = (sgot->output_section->vma
-                                             + sgot->output_offset
-                                             + off);
-                          outrel.r_info = ELF32_R_INFO (0, R_M32R_RELATIVE);
-                          outrel.r_addend = relocation;
-                          loc = srelgot->contents;
-                          loc += srelgot->reloc_count * sizeof (Elf32_External_Rela);
-                          bfd_elf32_swap_reloca_out (output_bfd, &outrel,loc);
-                          ++srelgot->reloc_count;
-                        }
-
-                      local_got_offsets[r_symndx] |= 1;
-                    }
-
-                  relocation = sgot->output_offset + off;
-                }
-              if ((r_type == R_M32R_GOT16_HI_SLO)
-                  && ((relocation + rel->r_addend) & 0x8000))
-                rel->r_addend += 0x10000;
-
-              break;
-
-            case R_M32R_26_PLTREL:
-              /* Relocation is to the entry for this symbol in the
-                 procedure linkage table.  */
-
-              /* The native assembler will generate a 26_PLTREL reloc
-                 for a local symbol if you assemble a call from one
-                 section to another when using -K pic. */
-              if (h == NULL)
-                break;
+		      || (bfd_link_pic (info)
+			  && (info->symbolic
+			      || h->dynindx == -1
+			      || h->forced_local)
+			  && h->def_regular))
+		    {
+		      /* This is actually a static link, or it is a
+			 -Bsymbolic link and the symbol is defined
+			 locally, or the symbol was forced to be local
+			 because of a version file.  We must initialize
+			 this entry in the global offset table.  Since the
+			 offset must always be a multiple of 4, we use the
+			 least significant bit to record whether we have
+			 initialized it already.
+
+			 When doing a dynamic link, we create a .rela.got
+			 relocation entry to initialize the value.  This
+			 is done in the finish_dynamic_symbol routine.  */
+		      if ((off & 1) != 0)
+			off &= ~1;
+		      else
+			{
+			  bfd_put_32 (output_bfd, relocation,
+				      sgot->contents + off);
+			  h->got.offset |= 1;
+			}
+		    }
+
+		  relocation = sgot->output_offset + off;
+		}
+	      else
+		{
+		  bfd_vma off;
+		  bfd_byte *loc;
+
+		  BFD_ASSERT (local_got_offsets != NULL
+			      && local_got_offsets[r_symndx] != (bfd_vma) -1);
+
+		  off = local_got_offsets[r_symndx];
 
-              if (h->forced_local)
-                break;
+		  /* The offset must always be a multiple of 4.  We use
+		     the least significant bit to record whether we have
+		     already processed this entry.  */
+		  if ((off & 1) != 0)
+		    off &= ~1;
+		  else
+		    {
+		      bfd_put_32 (output_bfd, relocation, sgot->contents + off);
+
+		      if (bfd_link_pic (info))
+			{
+			  asection *srelgot;
+			  Elf_Internal_Rela outrel;
+
+			  /* We need to generate a R_M32R_RELATIVE reloc
+			     for the dynamic linker.  */
+			  srelgot = htab->root.srelgot;
+			  BFD_ASSERT (srelgot != NULL);
+
+			  outrel.r_offset = (sgot->output_section->vma
+					     + sgot->output_offset
+					     + off);
+			  outrel.r_info = ELF32_R_INFO (0, R_M32R_RELATIVE);
+			  outrel.r_addend = relocation;
+			  loc = srelgot->contents;
+			  loc += srelgot->reloc_count * sizeof (Elf32_External_Rela);
+			  bfd_elf32_swap_reloca_out (output_bfd, &outrel,loc);
+			  ++srelgot->reloc_count;
+			}
 
-              if (h->plt.offset == (bfd_vma) -1)
+		      local_got_offsets[r_symndx] |= 1;
+		    }
+
+		  relocation = sgot->output_offset + off;
+		}
+	      if ((r_type == R_M32R_GOT16_HI_SLO)
+		  && ((relocation + rel->r_addend) & 0x8000))
+		rel->r_addend += 0x10000;
+
+	      break;
+
+	    case R_M32R_26_PLTREL:
+	      /* Relocation is to the entry for this symbol in the
+		 procedure linkage table.  */
+
+	      /* The native assembler will generate a 26_PLTREL reloc
+		 for a local symbol if you assemble a call from one
+		 section to another when using -K pic. */
+	      if (h == NULL)
+		break;
+
+	      if (h->forced_local)
+		break;
+
+	      if (h->plt.offset == (bfd_vma) -1)
 		/* We didn't make a PLT entry for this symbol.  This
 		   happens when statically linking PIC code, or when
 		   using -Bsymbolic.  */
 		break;
 
-              relocation = (splt->output_section->vma
-                            + splt->output_offset
-                            + h->plt.offset);
-              break;
+	      relocation = (splt->output_section->vma
+			    + splt->output_offset
+			    + h->plt.offset);
+	      break;
 
-            case R_M32R_HI16_SLO_RELA:
+	    case R_M32R_HI16_SLO_RELA:
 	      if ((relocation + rel->r_addend) & 0x8000)
 		rel->r_addend += 0x10000;
-              /* Fall through.  */
+	      /* Fall through.  */
 
-            case R_M32R_16_RELA:
-            case R_M32R_24_RELA:
-            case R_M32R_32_RELA:
-            case R_M32R_REL32:
+	    case R_M32R_16_RELA:
+	    case R_M32R_24_RELA:
+	    case R_M32R_32_RELA:
+	    case R_M32R_REL32:
 	    case R_M32R_10_PCREL_RELA:
-            case R_M32R_18_PCREL_RELA:
-            case R_M32R_26_PCREL_RELA:
-            case R_M32R_HI16_ULO_RELA:
-            case R_M32R_LO16_RELA:
-              if (bfd_link_pic (info)
-                  && r_symndx != STN_UNDEF
-                  && (input_section->flags & SEC_ALLOC) != 0
-                  && ((   r_type != R_M32R_10_PCREL_RELA
-                       && r_type != R_M32R_18_PCREL_RELA
-                       && r_type != R_M32R_26_PCREL_RELA
-                       && r_type != R_M32R_REL32)
-                      || (h != NULL
-                          && h->dynindx != -1
-                          && (! info->symbolic
-                              || !h->def_regular))))
-                {
-                  Elf_Internal_Rela outrel;
-                  bfd_boolean skip, relocate;
-                  bfd_byte *loc;
-
-                  /* When generating a shared object, these relocations
-                     are copied into the output file to be resolved at run
-                     time.  */
-                  if (sreloc == NULL)
-                    {
+	    case R_M32R_18_PCREL_RELA:
+	    case R_M32R_26_PCREL_RELA:
+	    case R_M32R_HI16_ULO_RELA:
+	    case R_M32R_LO16_RELA:
+	      if (bfd_link_pic (info)
+		  && r_symndx != STN_UNDEF
+		  && (input_section->flags & SEC_ALLOC) != 0
+		  && ((   r_type != R_M32R_10_PCREL_RELA
+		       && r_type != R_M32R_18_PCREL_RELA
+		       && r_type != R_M32R_26_PCREL_RELA
+		       && r_type != R_M32R_REL32)
+		      || (h != NULL
+			  && h->dynindx != -1
+			  && (! info->symbolic
+			      || !h->def_regular))))
+		{
+		  Elf_Internal_Rela outrel;
+		  bfd_boolean skip, relocate;
+		  bfd_byte *loc;
+
+		  /* When generating a shared object, these relocations
+		     are copied into the output file to be resolved at run
+		     time.  */
+		  if (sreloc == NULL)
+		    {
 		      sreloc = _bfd_elf_get_dynamic_reloc_section
 			(input_bfd, input_section, /*rela?*/ TRUE);
 		      if (sreloc == NULL)
 			return FALSE;
-                    }
+		    }
 
-                  skip = FALSE;
-                  relocate = FALSE;
+		  skip = FALSE;
+		  relocate = FALSE;
+
+		  outrel.r_offset = _bfd_elf_section_offset (output_bfd,
+							     info,
+							     input_section,
+							     rel->r_offset);
+		  if (outrel.r_offset == (bfd_vma) -1)
+		    skip = TRUE;
+		  else if (outrel.r_offset == (bfd_vma) -2)
+		    skip = relocate = TRUE;
+		  outrel.r_offset += (input_section->output_section->vma
+				      + input_section->output_offset);
+
+		  if (skip)
+		    memset (&outrel, 0, sizeof outrel);
+		  else if (   r_type == R_M32R_10_PCREL_RELA
+			   || r_type == R_M32R_18_PCREL_RELA
+			   || r_type == R_M32R_26_PCREL_RELA
+			   || r_type == R_M32R_REL32)
+		    {
+		      BFD_ASSERT (h != NULL && h->dynindx != -1);
+		      outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
+		      outrel.r_addend = rel->r_addend;
+		    }
+		  else
+		    {
+		    /* h->dynindx may be -1 if this symbol was marked to
+		       become local.  */
+		    if (h == NULL
+			|| ((info->symbolic || h->dynindx == -1)
+			     && h->def_regular))
+		      {
+			relocate = TRUE;
+			outrel.r_info = ELF32_R_INFO (0, R_M32R_RELATIVE);
+			outrel.r_addend = relocation + rel->r_addend;
+		      }
+		    else
+		      {
+			BFD_ASSERT (h->dynindx != -1);
+			outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
+			outrel.r_addend = relocation + rel->r_addend;
+		      }
+		    }
 
-                  outrel.r_offset = _bfd_elf_section_offset (output_bfd,
-                                                             info,
-                                                             input_section,
-                                                             rel->r_offset);
-                  if (outrel.r_offset == (bfd_vma) -1)
-                    skip = TRUE;
-                  else if (outrel.r_offset == (bfd_vma) -2)
-                    skip = relocate = TRUE;
-                  outrel.r_offset += (input_section->output_section->vma
-                                      + input_section->output_offset);
-
-                  if (skip)
-                    memset (&outrel, 0, sizeof outrel);
-                  else if (   r_type == R_M32R_10_PCREL_RELA
-                           || r_type == R_M32R_18_PCREL_RELA
-                           || r_type == R_M32R_26_PCREL_RELA
-                           || r_type == R_M32R_REL32)
-                    {
-                      BFD_ASSERT (h != NULL && h->dynindx != -1);
-                      outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
-                      outrel.r_addend = rel->r_addend;
-                    }
-                  else
-                    {
-                    /* h->dynindx may be -1 if this symbol was marked to
-                       become local.  */
-                    if (h == NULL
-                        || ((info->symbolic || h->dynindx == -1)
-                             && h->def_regular))
-                      {
-                        relocate = TRUE;
-                        outrel.r_info = ELF32_R_INFO (0, R_M32R_RELATIVE);
-                        outrel.r_addend = relocation + rel->r_addend;
-                      }
-                    else
-                      {
-                        BFD_ASSERT (h->dynindx != -1);
-                        outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
-                        outrel.r_addend = relocation + rel->r_addend;
-                      }
-                    }
-
-                  loc = sreloc->contents;
-                  loc += sreloc->reloc_count * sizeof (Elf32_External_Rela);
-                  bfd_elf32_swap_reloca_out (output_bfd, &outrel,loc);
-                  ++sreloc->reloc_count;
-
-                  /* If this reloc is against an external symbol, we do
-                     not want to fiddle with the addend.  Otherwise, we
-                     need to include the symbol value so that it becomes
-                     an addend for the dynamic reloc.  */
-                  if (! relocate)
-                    continue;
+		  loc = sreloc->contents;
+		  loc += sreloc->reloc_count * sizeof (Elf32_External_Rela);
+		  bfd_elf32_swap_reloca_out (output_bfd, &outrel,loc);
+		  ++sreloc->reloc_count;
+
+		  /* If this reloc is against an external symbol, we do
+		     not want to fiddle with the addend.  Otherwise, we
+		     need to include the symbol value so that it becomes
+		     an addend for the dynamic reloc.  */
+		  if (! relocate)
+		    continue;
 		  break;
-                }
+		}
 	      else if (r_type != R_M32R_10_PCREL_RELA)
 		break;
 	      /* Fall through.  */
@@ -2917,7 +2904,7 @@ m32r_elf_relocate_section (bfd *output_b
 	      r = m32r_elf_do_10_pcrel_reloc (input_bfd, howto, input_section,
 					      contents, offset,
 					      sec, relocation, addend);
-              goto check_reloc;
+	      goto check_reloc;
 
 	    case (int) R_M32R_HI16_SLO :
 	    case (int) R_M32R_HI16_ULO :
@@ -2946,9 +2933,9 @@ m32r_elf_relocate_section (bfd *output_b
 						relocation, addend);
 	      }
 
-              goto check_reloc;
+	      goto check_reloc;
 
-            case (int) R_M32R_SDA16_RELA:
+	    case (int) R_M32R_SDA16_RELA:
 	    case (int) R_M32R_SDA16 :
 	      {
 		const char *name;
@@ -2991,7 +2978,7 @@ m32r_elf_relocate_section (bfd *output_b
 		    continue;
 		  }
 	      }
-              /* Fall through.  */
+	      /* Fall through.  */
 
 	    default : /* OLD_M32R_RELOC */
 
@@ -3001,9 +2988,9 @@ m32r_elf_relocate_section (bfd *output_b
 	      goto check_reloc;
 	    }
 
-          r = _bfd_final_link_relocate (howto, input_bfd, input_section,
-                                        contents, rel->r_offset,
-                                        relocation, rel->r_addend);
+	  r = _bfd_final_link_relocate (howto, input_bfd, input_section,
+					contents, rel->r_offset,
+					relocation, rel->r_addend);
 
 	}
 
@@ -3098,7 +3085,7 @@ m32r_elf_finish_dynamic_symbol (bfd *out
       Elf_Internal_Rela rela;
 
       /* This symbol has an entry in the procedure linkage table.  Set
-         it up.  */
+	 it up.  */
 
       BFD_ASSERT (h->dynindx != -1);
 
@@ -3108,73 +3095,73 @@ m32r_elf_finish_dynamic_symbol (bfd *out
       BFD_ASSERT (splt != NULL && sgot != NULL && srela != NULL);
 
       /* Get the index in the procedure linkage table which
-         corresponds to this symbol.  This is the index of this symbol
-         in all the symbols for which we are making plt entries.  The
-         first entry in the procedure linkage table is reserved.  */
+	 corresponds to this symbol.  This is the index of this symbol
+	 in all the symbols for which we are making plt entries.  The
+	 first entry in the procedure linkage table is reserved.  */
       plt_index = h->plt.offset / PLT_ENTRY_SIZE - 1;
 
       /* Get the offset into the .got table of the entry that
-        corresponds to this function.  Each .got entry is 4 bytes.
-        The first three are reserved.  */
+	corresponds to this function.  Each .got entry is 4 bytes.
+	The first three are reserved.  */
       got_offset = (plt_index + 3) * 4;
 
       /* Fill in the entry in the procedure linkage table.  */
       if (! bfd_link_pic (info))
-        {
-          bfd_put_32 (output_bfd,
-              (PLT_ENTRY_WORD0b
-               + (((sgot->output_section->vma
-                    + sgot->output_offset
-                    + got_offset) >> 16) & 0xffff)),
-              splt->contents + h->plt.offset);
-          bfd_put_32 (output_bfd,
-              (PLT_ENTRY_WORD1b
-               + ((sgot->output_section->vma
-                   + sgot->output_offset
-                   + got_offset) & 0xffff)),
-              splt->contents + h->plt.offset + 4);
-          bfd_put_32 (output_bfd, PLT_ENTRY_WORD2,
-              splt->contents + h->plt.offset + 8);
-          bfd_put_32 (output_bfd,
-              (PLT_ENTRY_WORD3
-               + plt_index * sizeof (Elf32_External_Rela)),
-              splt->contents + h->plt.offset + 12);
-          bfd_put_32 (output_bfd,
-              (PLT_ENTRY_WORD4
-               + (((unsigned int) ((- (h->plt.offset + 16)) >> 2)) & 0xffffff)),
-              splt->contents + h->plt.offset + 16);
-        }
+	{
+	  bfd_put_32 (output_bfd,
+	      (PLT_ENTRY_WORD0b
+	       + (((sgot->output_section->vma
+		    + sgot->output_offset
+		    + got_offset) >> 16) & 0xffff)),
+	      splt->contents + h->plt.offset);
+	  bfd_put_32 (output_bfd,
+	      (PLT_ENTRY_WORD1b
+	       + ((sgot->output_section->vma
+		   + sgot->output_offset
+		   + got_offset) & 0xffff)),
+	      splt->contents + h->plt.offset + 4);
+	  bfd_put_32 (output_bfd, PLT_ENTRY_WORD2,
+	      splt->contents + h->plt.offset + 8);
+	  bfd_put_32 (output_bfd,
+	      (PLT_ENTRY_WORD3
+	       + plt_index * sizeof (Elf32_External_Rela)),
+	      splt->contents + h->plt.offset + 12);
+	  bfd_put_32 (output_bfd,
+	      (PLT_ENTRY_WORD4
+	       + (((unsigned int) ((- (h->plt.offset + 16)) >> 2)) & 0xffffff)),
+	      splt->contents + h->plt.offset + 16);
+	}
       else
-        {
-          bfd_put_32 (output_bfd,
-              PLT_ENTRY_WORD0 + got_offset,
-              splt->contents + h->plt.offset);
-          bfd_put_32 (output_bfd, PLT_ENTRY_WORD1,
-              splt->contents + h->plt.offset + 4);
-          bfd_put_32 (output_bfd, PLT_ENTRY_WORD2,
-              splt->contents + h->plt.offset + 8);
-          bfd_put_32 (output_bfd,
-              (PLT_ENTRY_WORD3
-               + plt_index * sizeof (Elf32_External_Rela)),
-              splt->contents + h->plt.offset + 12);
-          bfd_put_32 (output_bfd,
-              (PLT_ENTRY_WORD4
-               + (((unsigned int) ((- (h->plt.offset + 16)) >> 2)) & 0xffffff)),
-              splt->contents + h->plt.offset + 16);
-        }
+	{
+	  bfd_put_32 (output_bfd,
+	      PLT_ENTRY_WORD0 + got_offset,
+	      splt->contents + h->plt.offset);
+	  bfd_put_32 (output_bfd, PLT_ENTRY_WORD1,
+	      splt->contents + h->plt.offset + 4);
+	  bfd_put_32 (output_bfd, PLT_ENTRY_WORD2,
+	      splt->contents + h->plt.offset + 8);
+	  bfd_put_32 (output_bfd,
+	      (PLT_ENTRY_WORD3
+	       + plt_index * sizeof (Elf32_External_Rela)),
+	      splt->contents + h->plt.offset + 12);
+	  bfd_put_32 (output_bfd,
+	      (PLT_ENTRY_WORD4
+	       + (((unsigned int) ((- (h->plt.offset + 16)) >> 2)) & 0xffffff)),
+	      splt->contents + h->plt.offset + 16);
+	}
 
       /* Fill in the entry in the global offset table.  */
       bfd_put_32 (output_bfd,
-                  (splt->output_section->vma
-                   + splt->output_offset
-                   + h->plt.offset
-                   + 12), /* same offset */
-                  sgot->contents + got_offset);
+		  (splt->output_section->vma
+		   + splt->output_offset
+		   + h->plt.offset
+		   + 12), /* same offset */
+		  sgot->contents + got_offset);
 
       /* Fill in the entry in the .rela.plt section.  */
       rela.r_offset = (sgot->output_section->vma
-                       + sgot->output_offset
-                       + got_offset);
+		       + sgot->output_offset
+		       + got_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_M32R_JMP_SLOT);
       rela.r_addend = 0;
       loc = srela->contents;
@@ -3182,11 +3169,11 @@ m32r_elf_finish_dynamic_symbol (bfd *out
       bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
 
       if (!h->def_regular)
-        {
-          /* Mark the symbol as undefined, rather than as defined in
-             the .plt section.  Leave the value alone.  */
-          sym->st_shndx = SHN_UNDEF;
-        }
+	{
+	  /* Mark the symbol as undefined, rather than as defined in
+	     the .plt section.  Leave the value alone.  */
+	  sym->st_shndx = SHN_UNDEF;
+	}
     }
 
   if (h->got.offset != (bfd_vma) -1)
@@ -3196,39 +3183,39 @@ m32r_elf_finish_dynamic_symbol (bfd *out
       Elf_Internal_Rela rela;
 
       /* This symbol has an entry in the global offset table.  Set it
-         up.  */
+	 up.  */
 
       sgot = htab->root.sgot;
       srela = htab->root.srelgot;
       BFD_ASSERT (sgot != NULL && srela != NULL);
 
       rela.r_offset = (sgot->output_section->vma
-                       + sgot->output_offset
-                       + (h->got.offset &~ 1));
+		       + sgot->output_offset
+		       + (h->got.offset &~ 1));
 
       /* If this is a -Bsymbolic link, and the symbol is defined
-         locally, we just want to emit a RELATIVE reloc.  Likewise if
-         the symbol was forced to be local because of a version file.
-         The entry in the global offset table will already have been
-         initialized in the relocate_section function.  */
+	 locally, we just want to emit a RELATIVE reloc.  Likewise if
+	 the symbol was forced to be local because of a version file.
+	 The entry in the global offset table will already have been
+	 initialized in the relocate_section function.  */
       if (bfd_link_pic (info)
-          && (info->symbolic
+	  && (info->symbolic
 	      || h->dynindx == -1
 	      || h->forced_local)
-          && h->def_regular)
-        {
-          rela.r_info = ELF32_R_INFO (0, R_M32R_RELATIVE);
-          rela.r_addend = (h->root.u.def.value
-                           + h->root.u.def.section->output_section->vma
-                           + h->root.u.def.section->output_offset);
-        }
+	  && h->def_regular)
+	{
+	  rela.r_info = ELF32_R_INFO (0, R_M32R_RELATIVE);
+	  rela.r_addend = (h->root.u.def.value
+			   + h->root.u.def.section->output_section->vma
+			   + h->root.u.def.section->output_offset);
+	}
       else
-        {
+	{
 	  BFD_ASSERT ((h->got.offset & 1) == 0);
-          bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset);
-          rela.r_info = ELF32_R_INFO (h->dynindx, R_M32R_GLOB_DAT);
-          rela.r_addend = 0;
-        }
+	  bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset);
+	  rela.r_info = ELF32_R_INFO (h->dynindx, R_M32R_GLOB_DAT);
+	  rela.r_addend = 0;
+	}
 
       loc = srela->contents;
       loc += srela->reloc_count * sizeof (Elf32_External_Rela);
@@ -3244,15 +3231,15 @@ m32r_elf_finish_dynamic_symbol (bfd *out
       /* This symbols needs a copy reloc.  Set it up.  */
 
       BFD_ASSERT (h->dynindx != -1
-                  && (h->root.type == bfd_link_hash_defined
-                      || h->root.type == bfd_link_hash_defweak));
+		  && (h->root.type == bfd_link_hash_defined
+		      || h->root.type == bfd_link_hash_defweak));
 
       s = bfd_get_linker_section (htab->root.dynobj, ".rela.bss");
       BFD_ASSERT (s != NULL);
 
       rela.r_offset = (h->root.u.def.value
-                       + h->root.u.def.section->output_section->vma
-                       + h->root.u.def.section->output_offset);
+		       + h->root.u.def.section->output_section->vma
+		       + h->root.u.def.section->output_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_M32R_COPY);
       rela.r_addend = 0;
       loc = s->contents;
@@ -3304,77 +3291,77 @@ m32r_elf_finish_dynamic_sections (bfd *o
       dynconend = (Elf32_External_Dyn *) (sdyn->contents + sdyn->size);
 
       for (; dyncon < dynconend; dyncon++)
-        {
-          Elf_Internal_Dyn dyn;
-          asection *s;
-
-          bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
-
-          switch (dyn.d_tag)
-            {
-            default:
-              break;
-
-            case DT_PLTGOT:
-              s = htab->root.sgotplt;
-              goto get_vma;
-            case DT_JMPREL:
-              s = htab->root.srelplt;
-            get_vma:
-              dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
-              bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
-              break;
+	{
+	  Elf_Internal_Dyn dyn;
+	  asection *s;
 
-            case DT_PLTRELSZ:
-              s = htab->root.srelplt;
+	  bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
+
+	  switch (dyn.d_tag)
+	    {
+	    default:
+	      break;
+
+	    case DT_PLTGOT:
+	      s = htab->root.sgotplt;
+	      goto get_vma;
+	    case DT_JMPREL:
+	      s = htab->root.srelplt;
+	    get_vma:
+	      dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
+	      bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
+	      break;
+
+	    case DT_PLTRELSZ:
+	      s = htab->root.srelplt;
 	      dyn.d_un.d_val = s->size;
-              bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
-              break;
-            }
-        }
+	      bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
+	      break;
+	    }
+	}
 
       /* Fill in the first entry in the procedure linkage table.  */
       splt = htab->root.splt;
       if (splt && splt->size > 0)
-        {
-          if (bfd_link_pic (info))
-            {
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD0, splt->contents);
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD1, splt->contents + 4);
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD2, splt->contents + 8);
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD3, splt->contents + 12);
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD4, splt->contents + 16);
-            }
-          else
-            {
-              unsigned long addr;
-              /* addr = .got + 4 */
-              addr = sgot->output_section->vma + sgot->output_offset + 4;
-              bfd_put_32 (output_bfd,
+	{
+	  if (bfd_link_pic (info))
+	    {
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD0, splt->contents);
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD1, splt->contents + 4);
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD2, splt->contents + 8);
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD3, splt->contents + 12);
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD4, splt->contents + 16);
+	    }
+	  else
+	    {
+	      unsigned long addr;
+	      /* addr = .got + 4 */
+	      addr = sgot->output_section->vma + sgot->output_offset + 4;
+	      bfd_put_32 (output_bfd,
 			  PLT0_ENTRY_WORD0 | ((addr >> 16) & 0xffff),
 			  splt->contents);
-              bfd_put_32 (output_bfd,
+	      bfd_put_32 (output_bfd,
 			  PLT0_ENTRY_WORD1 | (addr & 0xffff),
 			  splt->contents + 4);
-              bfd_put_32 (output_bfd, PLT0_ENTRY_WORD2, splt->contents + 8);
-              bfd_put_32 (output_bfd, PLT0_ENTRY_WORD3, splt->contents + 12);
-              bfd_put_32 (output_bfd, PLT0_ENTRY_WORD4, splt->contents + 16);
-            }
-
-          elf_section_data (splt->output_section)->this_hdr.sh_entsize =
-            PLT_ENTRY_SIZE;
-        }
+	      bfd_put_32 (output_bfd, PLT0_ENTRY_WORD2, splt->contents + 8);
+	      bfd_put_32 (output_bfd, PLT0_ENTRY_WORD3, splt->contents + 12);
+	      bfd_put_32 (output_bfd, PLT0_ENTRY_WORD4, splt->contents + 16);
+	    }
+
+	  elf_section_data (splt->output_section)->this_hdr.sh_entsize =
+	    PLT_ENTRY_SIZE;
+	}
     }
 
   /* Fill in the first three entries in the global offset table.  */
   if (sgot && sgot->size > 0)
     {
       if (sdyn == NULL)
-        bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents);
+	bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents);
       else
-        bfd_put_32 (output_bfd,
-                    sdyn->output_section->vma + sdyn->output_offset,
-                    sgot->contents);
+	bfd_put_32 (output_bfd,
+		    sdyn->output_section->vma + sdyn->output_offset,
+		    sgot->contents);
       bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + 4);
       bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + 8);
 
@@ -3479,8 +3466,8 @@ m32r_elf_merge_private_bfd_data (bfd *ib
   if ((in_flags & EF_M32R_ARCH) != (out_flags & EF_M32R_ARCH))
     {
       if (   ((in_flags  & EF_M32R_ARCH) != E_M32R_ARCH)
-          || ((out_flags & EF_M32R_ARCH) == E_M32R_ARCH)
-          || ((in_flags  & EF_M32R_ARCH) == E_M32R2_ARCH))
+	  || ((out_flags & EF_M32R_ARCH) == E_M32R_ARCH)
+	  || ((in_flags  & EF_M32R_ARCH) == E_M32R2_ARCH))
 	{
 	  _bfd_error_handler
 	    (_("%B: Instruction set mismatch with previous modules"), ibfd);
@@ -3539,122 +3526,6 @@ m32r_elf_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-static bfd_boolean
-m32r_elf_gc_sweep_hook (bfd *abfd ATTRIBUTE_UNUSED,
-			struct bfd_link_info *info ATTRIBUTE_UNUSED,
-			asection *sec ATTRIBUTE_UNUSED,
-			const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED)
-{
-  /* Update the got entry reference counts for the section being removed.  */
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	}
-
-      switch (ELF32_R_TYPE (rel->r_info))
-	{
-	case R_M32R_GOT16_HI_ULO:
-	case R_M32R_GOT16_HI_SLO:
-	case R_M32R_GOT16_LO:
-	case R_M32R_GOTOFF:
-	case R_M32R_GOTOFF_HI_ULO:
-	case R_M32R_GOTOFF_HI_SLO:
-	case R_M32R_GOTOFF_LO:
-	case R_M32R_GOT24:
-	case R_M32R_GOTPC_HI_ULO:
-	case R_M32R_GOTPC_HI_SLO:
-	case R_M32R_GOTPC_LO:
-	case R_M32R_GOTPC24:
-	  if (h != NULL)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount--;
-	    }
-	  else
-	    {
-	      if (local_got_refcounts && local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx]--;
-	    }
-	  break;
-
-	case R_M32R_16_RELA:
-	case R_M32R_24_RELA:
-	case R_M32R_32_RELA:
-	case R_M32R_REL32:
-	case R_M32R_HI16_ULO_RELA:
-	case R_M32R_HI16_SLO_RELA:
-	case R_M32R_LO16_RELA:
-	case R_M32R_SDA16_RELA:
-	case R_M32R_10_PCREL_RELA:
-	case R_M32R_18_PCREL_RELA:
-	case R_M32R_26_PCREL_RELA:
-	  if (h != NULL)
-	    {
-	      struct elf_m32r_link_hash_entry *eh;
-	      struct elf_m32r_dyn_relocs **pp;
-	      struct elf_m32r_dyn_relocs *p;
-
-	      if (!bfd_link_pic (info) && h->plt.refcount > 0)
-		h->plt.refcount -= 1;
-
-	      eh = (struct elf_m32r_link_hash_entry *) h;
-
-	      for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next)
-		if (p->sec == sec)
-		  {
-		    if (   ELF32_R_TYPE (rel->r_info) == R_M32R_26_PCREL_RELA
-			|| ELF32_R_TYPE (rel->r_info) == R_M32R_18_PCREL_RELA
-			|| ELF32_R_TYPE (rel->r_info) == R_M32R_10_PCREL_RELA
-			|| ELF32_R_TYPE (rel->r_info) == R_M32R_REL32)
-		      p->pc_count -= 1;
-		    p->count -= 1;
-		    if (p->count == 0)
-		      *pp = p->next;
-		    break;
-		  }
-	    }
-	  break;
-
-	case R_M32R_26_PLTREL:
-	  if (h != NULL)
-	    {
-	      if (h->plt.refcount > 0)
-		h->plt.refcount--;
-	    }
-	  break;
-
-	default:
-	  break;
-	}
-    }
-
-  return TRUE;
-}
-
 /* Look through the relocs for a section during the first phase.
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
@@ -3676,6 +3547,15 @@ m32r_elf_check_relocs (bfd *abfd,
   if (bfd_link_relocatable (info))
     return TRUE;
 
+  /* Don't do anything special with non-loaded, non-alloced sections.
+     In particular, any relocs in such sections should not affect GOT
+     and PLT reference counting (ie. we don't allow them to create GOT
+     or PLT entries), there's no possibility or desire to optimize TLS
+     relocs, and there's not much point in propagating relocs to shared
+     libs that the dynamic linker won't relocate.  */
+  if ((sec->flags & SEC_ALLOC) == 0)
+    return TRUE;
+
   sreloc = NULL;
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
@@ -3696,177 +3576,173 @@ m32r_elf_check_relocs (bfd *abfd,
       r_symndx = ELF32_R_SYM (rel->r_info);
       r_type = ELF32_R_TYPE (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       /* Some relocs require a global offset table.  */
       if (htab->root.sgot == NULL)
-        {
-          switch (r_type)
-            {
-            case R_M32R_GOT16_HI_ULO:
-            case R_M32R_GOT16_HI_SLO:
-            case R_M32R_GOTOFF:
-            case R_M32R_GOTOFF_HI_ULO:
-            case R_M32R_GOTOFF_HI_SLO:
-            case R_M32R_GOTOFF_LO:
-            case R_M32R_GOT16_LO:
-            case R_M32R_GOTPC24:
-            case R_M32R_GOTPC_HI_ULO:
-            case R_M32R_GOTPC_HI_SLO:
-            case R_M32R_GOTPC_LO:
-            case R_M32R_GOT24:
-              if (dynobj == NULL)
-                htab->root.dynobj = dynobj = abfd;
-              if (!_bfd_elf_create_got_section (dynobj, info))
-                return FALSE;
-              break;
-
-            default:
-              break;
-          }
-        }
+	{
+	  switch (r_type)
+	    {
+	    case R_M32R_GOT16_HI_ULO:
+	    case R_M32R_GOT16_HI_SLO:
+	    case R_M32R_GOTOFF:
+	    case R_M32R_GOTOFF_HI_ULO:
+	    case R_M32R_GOTOFF_HI_SLO:
+	    case R_M32R_GOTOFF_LO:
+	    case R_M32R_GOT16_LO:
+	    case R_M32R_GOTPC24:
+	    case R_M32R_GOTPC_HI_ULO:
+	    case R_M32R_GOTPC_HI_SLO:
+	    case R_M32R_GOTPC_LO:
+	    case R_M32R_GOT24:
+	      if (dynobj == NULL)
+		htab->root.dynobj = dynobj = abfd;
+	      if (!_bfd_elf_create_got_section (dynobj, info))
+		return FALSE;
+	      break;
+
+	    default:
+	      break;
+	  }
+	}
 
       switch (r_type)
-        {
+	{
 	case R_M32R_GOT16_HI_ULO:
 	case R_M32R_GOT16_HI_SLO:
 	case R_M32R_GOT16_LO:
-        case R_M32R_GOT24:
+	case R_M32R_GOT24:
 
-          if (h != NULL)
-            h->got.refcount += 1;
-          else
-            {
-              bfd_signed_vma *local_got_refcounts;
-
-              /* This is a global offset table entry for a local
-                 symbol.  */
-              local_got_refcounts = elf_local_got_refcounts (abfd);
-              if (local_got_refcounts == NULL)
-                {
-                  bfd_size_type size;
-
-                  size = symtab_hdr->sh_info;
-                  size *= sizeof (bfd_signed_vma);
-                  local_got_refcounts = bfd_zalloc (abfd, size);
-                  if (local_got_refcounts == NULL)
-                    return FALSE;
-                  elf_local_got_refcounts (abfd) = local_got_refcounts;
-                }
-              local_got_refcounts[r_symndx] += 1;
-            }
-          break;
-
-        case R_M32R_26_PLTREL:
-          /* This symbol requires a procedure linkage table entry.  We
-             actually build the entry in adjust_dynamic_symbol,
-             because this might be a case of linking PIC code without
-             linking in any dynamic objects, in which case we don't
-             need to generate a procedure linkage table after all.  */
+	  if (h != NULL)
+	    h->got.refcount += 1;
+	  else
+	    {
+	      bfd_signed_vma *local_got_refcounts;
+
+	      /* This is a global offset table entry for a local
+		 symbol.  */
+	      local_got_refcounts = elf_local_got_refcounts (abfd);
+	      if (local_got_refcounts == NULL)
+		{
+		  bfd_size_type size;
+
+		  size = symtab_hdr->sh_info;
+		  size *= sizeof (bfd_signed_vma);
+		  local_got_refcounts = bfd_zalloc (abfd, size);
+		  if (local_got_refcounts == NULL)
+		    return FALSE;
+		  elf_local_got_refcounts (abfd) = local_got_refcounts;
+		}
+	      local_got_refcounts[r_symndx] += 1;
+	    }
+	  break;
+
+	case R_M32R_26_PLTREL:
+	  /* This symbol requires a procedure linkage table entry.  We
+	     actually build the entry in adjust_dynamic_symbol,
+	     because this might be a case of linking PIC code without
+	     linking in any dynamic objects, in which case we don't
+	     need to generate a procedure linkage table after all.  */
 
 	  /* If this is a local symbol, we resolve it directly without
 	     creating a procedure linkage table entry.  */
-          if (h == NULL)
-            continue;
+	  if (h == NULL)
+	    continue;
 
-          if (h->forced_local)
-            break;
+	  if (h->forced_local)
+	    break;
 
-          h->needs_plt = 1;
+	  h->needs_plt = 1;
 	  h->plt.refcount += 1;
-          break;
+	  break;
 
-        case R_M32R_16_RELA:
-        case R_M32R_24_RELA:
-        case R_M32R_32_RELA:
-        case R_M32R_REL32:
-        case R_M32R_HI16_ULO_RELA:
-        case R_M32R_HI16_SLO_RELA:
-        case R_M32R_LO16_RELA:
-        case R_M32R_SDA16_RELA:
+	case R_M32R_16_RELA:
+	case R_M32R_24_RELA:
+	case R_M32R_32_RELA:
+	case R_M32R_REL32:
+	case R_M32R_HI16_ULO_RELA:
+	case R_M32R_HI16_SLO_RELA:
+	case R_M32R_LO16_RELA:
+	case R_M32R_SDA16_RELA:
 	case R_M32R_10_PCREL_RELA:
-        case R_M32R_18_PCREL_RELA:
-        case R_M32R_26_PCREL_RELA:
+	case R_M32R_18_PCREL_RELA:
+	case R_M32R_26_PCREL_RELA:
 
-          if (h != NULL && !bfd_link_pic (info))
-            {
-              h->non_got_ref = 1;
-              h->plt.refcount += 1;
-            }
-
-          /* If we are creating a shared library, and this is a reloc
-             against a global symbol, or a non PC relative reloc
-             against a local symbol, then we need to copy the reloc
-             into the shared library.  However, if we are linking with
-             -Bsymbolic, we do not need to copy a reloc against a
-             global symbol which is defined in an object we are
-             including in the link (i.e., DEF_REGULAR is set).  At
-             this point we have not seen all the input files, so it is
-             possible that DEF_REGULAR is not set now but will be set
-             later (it is never cleared).  We account for that
-             possibility below by storing information in the
-             dyn_relocs field of the hash table entry. A similar
-             situation occurs when creating shared libraries and symbol
-             visibility changes render the symbol local.
-
-             If on the other hand, we are creating an executable, we
-             may need to keep relocations for symbols satisfied by a
-             dynamic library if we manage to avoid copy relocs for the
-             symbol.  */
-          if ((bfd_link_pic (info)
-               && (sec->flags & SEC_ALLOC) != 0
+	  if (h != NULL && !bfd_link_pic (info))
+	    {
+	      h->non_got_ref = 1;
+	      h->plt.refcount += 1;
+	    }
+
+	  /* If we are creating a shared library, and this is a reloc
+	     against a global symbol, or a non PC relative reloc
+	     against a local symbol, then we need to copy the reloc
+	     into the shared library.  However, if we are linking with
+	     -Bsymbolic, we do not need to copy a reloc against a
+	     global symbol which is defined in an object we are
+	     including in the link (i.e., DEF_REGULAR is set).  At
+	     this point we have not seen all the input files, so it is
+	     possible that DEF_REGULAR is not set now but will be set
+	     later (it is never cleared).  We account for that
+	     possibility below by storing information in the
+	     dyn_relocs field of the hash table entry. A similar
+	     situation occurs when creating shared libraries and symbol
+	     visibility changes render the symbol local.
+
+	     If on the other hand, we are creating an executable, we
+	     may need to keep relocations for symbols satisfied by a
+	     dynamic library if we manage to avoid copy relocs for the
+	     symbol.  */
+	  if ((bfd_link_pic (info)
+	       && (sec->flags & SEC_ALLOC) != 0
 	       && ((   r_type != R_M32R_26_PCREL_RELA
-                    && r_type != R_M32R_18_PCREL_RELA
-                    && r_type != R_M32R_10_PCREL_RELA
-                    && r_type != R_M32R_REL32)
-	           || (h != NULL
+		    && r_type != R_M32R_18_PCREL_RELA
+		    && r_type != R_M32R_10_PCREL_RELA
+		    && r_type != R_M32R_REL32)
+		   || (h != NULL
 		       && (! info->symbolic
-		           || h->root.type == bfd_link_hash_defweak
-		           || !h->def_regular))))
-              || (!bfd_link_pic (info)
-                  && (sec->flags & SEC_ALLOC) != 0
-                  && h != NULL
-                  && (h->root.type == bfd_link_hash_defweak
-                      || !h->def_regular)))
-            {
-              struct elf_m32r_dyn_relocs *p;
-              struct elf_m32r_dyn_relocs **head;
-
-              if (dynobj == NULL)
-                htab->root.dynobj = dynobj = abfd;
-
-              /* When creating a shared object, we must copy these
-                 relocs into the output file.  We create a reloc
-                 section in dynobj and make room for the reloc.  */
-              if (sreloc == NULL)
-                {
+			   || h->root.type == bfd_link_hash_defweak
+			   || !h->def_regular))))
+	      || (!bfd_link_pic (info)
+		  && (sec->flags & SEC_ALLOC) != 0
+		  && h != NULL
+		  && (h->root.type == bfd_link_hash_defweak
+		      || !h->def_regular)))
+	    {
+	      struct elf_dyn_relocs *p;
+	      struct elf_dyn_relocs **head;
+
+	      if (dynobj == NULL)
+		htab->root.dynobj = dynobj = abfd;
+
+	      /* When creating a shared object, we must copy these
+		 relocs into the output file.  We create a reloc
+		 section in dynobj and make room for the reloc.  */
+	      if (sreloc == NULL)
+		{
 		  sreloc = _bfd_elf_make_dynamic_reloc_section
 		    (sec, dynobj, 2, abfd, /*rela?*/ TRUE);
 
 		  if (sreloc == NULL)
 		    return FALSE;
-                }
+		}
 
-              /* If this is a global symbol, we count the number of
-                 relocations we need for this symbol.  */
-              if (h != NULL)
-                head = &((struct elf_m32r_link_hash_entry *) h)->dyn_relocs;
-              else
-                {
-                  /* Track dynamic relocs needed for local syms too.  */
-                  asection *s;
-                  void *vpp;
+	      /* If this is a global symbol, we count the number of
+		 relocations we need for this symbol.  */
+	      if (h != NULL)
+		head = &((struct elf_m32r_link_hash_entry *) h)->dyn_relocs;
+	      else
+		{
+		  /* Track dynamic relocs needed for local syms too.  */
+		  asection *s;
+		  void *vpp;
 		  Elf_Internal_Sym *isym;
 
 		  isym = bfd_sym_from_r_symndx (&htab->sym_cache,
@@ -3879,56 +3755,56 @@ m32r_elf_check_relocs (bfd *abfd,
 		    s = sec;
 
 		  vpp = &elf_section_data (s)->local_dynrel;
-                  head = (struct elf_m32r_dyn_relocs **) vpp;
-                }
+		  head = (struct elf_dyn_relocs **) vpp;
+		}
+
+	      p = *head;
+	      if (p == NULL || p->sec != sec)
+		{
+		  bfd_size_type amt = sizeof (*p);
+
+		  p = bfd_alloc (dynobj, amt);
+		  if (p == NULL)
+		    return FALSE;
+		  p->next = *head;
+		  *head = p;
+		  p->sec = sec;
+		  p->count = 0;
+		  p->pc_count = 0;
+		}
 
-              p = *head;
-              if (p == NULL || p->sec != sec)
-                {
-                  bfd_size_type amt = sizeof (*p);
-
-                  p = bfd_alloc (dynobj, amt);
-                  if (p == NULL)
-                    return FALSE;
-                  p->next = *head;
-                  *head = p;
-                  p->sec = sec;
-                  p->count = 0;
-                  p->pc_count = 0;
-                }
-
-              p->count += 1;
-              if (   ELF32_R_TYPE (rel->r_info) == R_M32R_26_PCREL_RELA
-                  || ELF32_R_TYPE (rel->r_info) == R_M32R_18_PCREL_RELA
+	      p->count += 1;
+	      if (   ELF32_R_TYPE (rel->r_info) == R_M32R_26_PCREL_RELA
+		  || ELF32_R_TYPE (rel->r_info) == R_M32R_18_PCREL_RELA
 		  || ELF32_R_TYPE (rel->r_info) == R_M32R_10_PCREL_RELA
 		  || ELF32_R_TYPE (rel->r_info) == R_M32R_REL32)
-                p->pc_count += 1;
-            }
-          break;
-
-        /* This relocation describes the C++ object vtable hierarchy.
-           Reconstruct it for later use during GC.  */
-        case R_M32R_RELA_GNU_VTINHERIT:
-        case R_M32R_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-        /* This relocation describes which C++ vtable entries are actually
-           used.  Record for later use during GC.  */
-        case R_M32R_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-        case R_M32R_RELA_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
-        }
+		p->pc_count += 1;
+	    }
+	  break;
+
+	/* This relocation describes the C++ object vtable hierarchy.
+	   Reconstruct it for later use during GC.  */
+	case R_M32R_RELA_GNU_VTINHERIT:
+	case R_M32R_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	/* This relocation describes which C++ vtable entries are actually
+	   used.  Record for later use during GC.  */
+	case R_M32R_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+	case R_M32R_RELA_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
+	}
     }
 
   return TRUE;
@@ -3936,9 +3812,9 @@ m32r_elf_check_relocs (bfd *abfd,
 
 static const struct bfd_elf_special_section m32r_elf_special_sections[] =
 {
-  { STRING_COMMA_LEN (".sbss"),  -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".sbss"),	 -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
   { STRING_COMMA_LEN (".sdata"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { NULL,                     0,  0, 0,            0 }
+  { NULL,		      0,  0, 0,		   0 }
 };
 
 static enum elf_reloc_type_class
@@ -3951,7 +3827,7 @@ m32r_elf_reloc_type_class (const struct 
     case R_M32R_RELATIVE:  return reloc_class_relative;
     case R_M32R_JMP_SLOT:  return reloc_class_plt;
     case R_M32R_COPY:      return reloc_class_copy;
-    default:      	   return reloc_class_normal;
+    default:		   return reloc_class_normal;
     }
 }
 
@@ -3961,10 +3837,10 @@ m32r_elf_reloc_type_class (const struct 
 #define ELF_MACHINE_ALT1	EM_CYGNUS_M32R
 #define ELF_MAXPAGESIZE		0x1 /* Explicitly requested by Mitsubishi.  */
 
-#define TARGET_BIG_SYM          m32r_elf32_vec
+#define TARGET_BIG_SYM		m32r_elf32_vec
 #define TARGET_BIG_NAME		"elf32-m32r"
-#define TARGET_LITTLE_SYM       m32r_elf32_le_vec
-#define TARGET_LITTLE_NAME      "elf32-m32rle"
+#define TARGET_LITTLE_SYM	m32r_elf32_le_vec
+#define TARGET_LITTLE_NAME	"elf32-m32rle"
 
 #define elf_info_to_howto			m32r_info_to_howto
 #define elf_info_to_howto_rel			m32r_info_to_howto_rel
@@ -3972,22 +3848,21 @@ m32r_elf_reloc_type_class (const struct 
 #define elf_backend_symbol_processing		_bfd_m32r_elf_symbol_processing
 #define elf_backend_add_symbol_hook		m32r_elf_add_symbol_hook
 #define elf_backend_relocate_section		m32r_elf_relocate_section
-#define elf_backend_gc_mark_hook                m32r_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook               m32r_elf_gc_sweep_hook
-#define elf_backend_check_relocs                m32r_elf_check_relocs
-
-#define elf_backend_create_dynamic_sections     m32r_elf_create_dynamic_sections
-#define bfd_elf32_bfd_link_hash_table_create    m32r_elf_link_hash_table_create
-#define elf_backend_size_dynamic_sections       m32r_elf_size_dynamic_sections
+#define elf_backend_gc_mark_hook		m32r_elf_gc_mark_hook
+#define elf_backend_check_relocs		m32r_elf_check_relocs
+
+#define elf_backend_create_dynamic_sections	m32r_elf_create_dynamic_sections
+#define bfd_elf32_bfd_link_hash_table_create	m32r_elf_link_hash_table_create
+#define elf_backend_size_dynamic_sections	m32r_elf_size_dynamic_sections
 #define elf_backend_omit_section_dynsym \
   ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
-#define elf_backend_finish_dynamic_sections     m32r_elf_finish_dynamic_sections
-#define elf_backend_adjust_dynamic_symbol       m32r_elf_adjust_dynamic_symbol
-#define elf_backend_finish_dynamic_symbol       m32r_elf_finish_dynamic_symbol
-#define elf_backend_reloc_type_class            m32r_elf_reloc_type_class
-#define elf_backend_copy_indirect_symbol        m32r_elf_copy_indirect_symbol
+#define elf_backend_finish_dynamic_sections	m32r_elf_finish_dynamic_sections
+#define elf_backend_adjust_dynamic_symbol	m32r_elf_adjust_dynamic_symbol
+#define elf_backend_finish_dynamic_symbol	m32r_elf_finish_dynamic_symbol
+#define elf_backend_reloc_type_class		m32r_elf_reloc_type_class
+#define elf_backend_copy_indirect_symbol	m32r_elf_copy_indirect_symbol
 
-#define elf_backend_can_gc_sections             1
+#define elf_backend_can_gc_sections		1
 /*#if !USE_REL
 #define elf_backend_rela_normal			1
 #endif*/
@@ -3998,36 +3873,38 @@ m32r_elf_reloc_type_class (const struct 
 #define elf_backend_got_header_size 12
 #define elf_backend_dtrel_excludes_plt	1
 
-#define elf_backend_may_use_rel_p       1
+#define elf_backend_may_use_rel_p	1
 #ifdef USE_M32R_OLD_RELOC
-#define elf_backend_default_use_rela_p  0
-#define elf_backend_may_use_rela_p      0
+#define elf_backend_default_use_rela_p	0
+#define elf_backend_may_use_rela_p	0
 #else
-#define elf_backend_default_use_rela_p  1
-#define elf_backend_may_use_rela_p      1
+#define elf_backend_default_use_rela_p	1
+#define elf_backend_may_use_rela_p	1
 #endif
 
 #define elf_backend_object_p			m32r_elf_object_p
-#define elf_backend_final_write_processing 	m32r_elf_final_write_processing
-#define bfd_elf32_bfd_merge_private_bfd_data 	m32r_elf_merge_private_bfd_data
+#define elf_backend_final_write_processing	m32r_elf_final_write_processing
+#define bfd_elf32_bfd_merge_private_bfd_data	m32r_elf_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags		m32r_elf_set_private_flags
 #define bfd_elf32_bfd_print_private_bfd_data	m32r_elf_print_private_bfd_data
 #define elf_backend_special_sections		m32r_elf_special_sections
 
+#define elf_backend_linux_prpsinfo32_ugid16	TRUE
+
 #include "elf32-target.h"
 
-#undef  ELF_MAXPAGESIZE
-#define ELF_MAXPAGESIZE         0x1000
+#undef	ELF_MAXPAGESIZE
+#define ELF_MAXPAGESIZE		0x1000
 
-#undef  TARGET_BIG_SYM
-#define TARGET_BIG_SYM          m32r_elf32_linux_vec
-#undef  TARGET_BIG_NAME
-#define TARGET_BIG_NAME         "elf32-m32r-linux"
-#undef  TARGET_LITTLE_SYM
-#define TARGET_LITTLE_SYM       m32r_elf32_linux_le_vec
-#undef  TARGET_LITTLE_NAME
-#define TARGET_LITTLE_NAME      "elf32-m32rle-linux"
-#undef  elf32_bed
-#define elf32_bed               elf32_m32r_lin_bed
+#undef	TARGET_BIG_SYM
+#define TARGET_BIG_SYM		m32r_elf32_linux_vec
+#undef	TARGET_BIG_NAME
+#define TARGET_BIG_NAME		"elf32-m32r-linux"
+#undef	TARGET_LITTLE_SYM
+#define TARGET_LITTLE_SYM	m32r_elf32_linux_le_vec
+#undef	TARGET_LITTLE_NAME
+#define TARGET_LITTLE_NAME	"elf32-m32rle-linux"
+#undef	elf32_bed
+#define elf32_bed		elf32_m32r_lin_bed
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m68hc11.c ./bfd/elf32-m68hc11.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m68hc11.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-m68hc11.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Motorola 68HC11-specific support for 32-bit ELF
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Contributed by Stephane Carrez (stcarrez@nerim.fr)
    (Heavily copied from the D10V port by Martin Hunt (hunt@cygnus.com))
 
@@ -135,7 +135,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 FALSE,			/* partial_inplace */
 	 0x00ff,		/* src_mask */
 	 0x00ff,		/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* A 16 bit absolute relocation */
   HOWTO (R_M68HC11_16,		/* type */
@@ -196,7 +196,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_M68HC11_GNU_VTINHERIT,	/* type */
@@ -229,7 +229,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 FALSE),		/* pcrel_offset */
 
   /* A 24 bit relocation */
-  HOWTO (R_M68HC11_24,	        /* type */
+  HOWTO (R_M68HC11_24,		/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
 	 24,			/* bitsize */
@@ -244,7 +244,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 FALSE),		/* pcrel_offset */
 
   /* A 16-bit low relocation */
-  HOWTO (R_M68HC11_LO16,        /* type */
+  HOWTO (R_M68HC11_LO16,	/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -259,7 +259,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 FALSE),		/* pcrel_offset */
 
   /* A page relocation */
-  HOWTO (R_M68HC11_PAGE,        /* type */
+  HOWTO (R_M68HC11_PAGE,	/* type */
 	 0,			/* rightshift */
 	 0,			/* size (0 = byte, 1 = short, 2 = long) */
 	 8,			/* bitsize */
@@ -293,7 +293,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 TRUE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0,			/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* Mark beginning of Gcc relaxation group instruction.  */
   HOWTO (R_M68HC11_RL_GROUP,	/* type */
@@ -308,7 +308,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 TRUE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0,			/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 };
 
 /* Map BFD reloc types to M68HC11 ELF reloc types.  */
@@ -343,7 +343,7 @@ static const struct m68hc11_reloc_map m6
 
 static reloc_howto_type *
 bfd_elf32_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                                 bfd_reloc_code_real_type code)
+				 bfd_reloc_code_real_type code)
 {
   unsigned int i;
 
@@ -379,7 +379,7 @@ bfd_elf32_bfd_reloc_name_lookup (bfd *ab
 
 static void
 m68hc11_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED,
-                           arelent *cache_ptr, Elf_Internal_Rela *dst)
+			   arelent *cache_ptr, Elf_Internal_Rela *dst)
 {
   unsigned int r_type;
 
@@ -434,8 +434,8 @@ m68hc11_elf_build_one_stub (struct bfd_h
 
   */
   sym_value = (stub_entry->target_value
-               + stub_entry->target_section->output_offset
-               + stub_entry->target_section->output_section->vma);
+	       + stub_entry->target_section->output_offset
+	       + stub_entry->target_section->output_section->vma);
   phys_addr = m68hc11_phys_addr (&htab->pinfo, sym_value);
   phys_page = m68hc11_phys_page (&htab->pinfo, sym_value);
 
@@ -463,7 +463,7 @@ m68hc11_elf_build_one_stub (struct bfd_h
 
 static bfd_boolean
 m68hc11_elf_size_one_stub (struct bfd_hash_entry *gen_entry,
-                           void *in_arg ATTRIBUTE_UNUSED)
+			   void *in_arg ATTRIBUTE_UNUSED)
 {
   struct elf32_m68hc11_stub_hash_entry *stub_entry;
 
@@ -565,8 +565,8 @@ compare_reloc (const void *e1, const voi
 
 static void
 m68hc11_relax_group (bfd *abfd, asection *sec, bfd_byte *contents,
-                     unsigned value, unsigned long offset,
-                     unsigned long end_group)
+		     unsigned value, unsigned long offset,
+		     unsigned long end_group)
 {
   unsigned char code;
   unsigned long start_offset;
@@ -605,62 +605,62 @@ m68hc11_relax_group (bfd *abfd, asection
       start_offset = offset;
       code = bfd_get_8 (abfd, contents + offset);
       if (code == 0x18)
-        {
-          bset_use_y++;
-          offset++;
-          code = bfd_get_8 (abfd, contents + offset);
-        }
+	{
+	  bset_use_y++;
+	  offset++;
+	  code = bfd_get_8 (abfd, contents + offset);
+	}
 
       /* Check the instruction and translate to use direct addressing mode.  */
       switch (code)
-        {
-          /* bset */
-        case 0x1C:
-          code = 0x14;
-          isize = 3;
-          break;
-
-          /* brclr */
-        case 0x1F:
-          code = 0x13;
-          isize = 4;
-          break;
-
-          /* brset */
-        case 0x1E:
-          code = 0x12;
-          isize = 4;
-          break;
-
-          /* bclr */
-        case 0x1D:
-          code = 0x15;
-          isize = 3;
-          break;
-
-          /* This instruction is not recognized and we are not
-             at end of the relax group.  Ignore and don't remove
-             the first LDX (we don't know what it is used for...).  */
-        default:
-          return;
-        }
+	{
+	  /* bset */
+	case 0x1C:
+	  code = 0x14;
+	  isize = 3;
+	  break;
+
+	  /* brclr */
+	case 0x1F:
+	  code = 0x13;
+	  isize = 4;
+	  break;
+
+	  /* brset */
+	case 0x1E:
+	  code = 0x12;
+	  isize = 4;
+	  break;
+
+	  /* bclr */
+	case 0x1D:
+	  code = 0x15;
+	  isize = 3;
+	  break;
+
+	  /* This instruction is not recognized and we are not
+	     at end of the relax group.  Ignore and don't remove
+	     the first LDX (we don't know what it is used for...).  */
+	default:
+	  return;
+	}
       new_value = (unsigned) bfd_get_8 (abfd, contents + offset + 1);
       new_value += value;
       if ((new_value & 0xff00) == 0 && bset_use_y == relax_ldy)
-        {
-          bfd_put_8 (abfd, code, contents + offset);
-          bfd_put_8 (abfd, new_value, contents + offset + 1);
-          if (start_offset != offset)
-            {
-              m68hc11_elf_relax_delete_bytes (abfd, sec, start_offset,
-                                              offset - start_offset);
-              end_group--;
-            }
-        }
+	{
+	  bfd_put_8 (abfd, code, contents + offset);
+	  bfd_put_8 (abfd, new_value, contents + offset + 1);
+	  if (start_offset != offset)
+	    {
+	      m68hc11_elf_relax_delete_bytes (abfd, sec, start_offset,
+					      offset - start_offset);
+	      end_group--;
+	    }
+	}
       else
-        {
-          can_delete_ldx = 0;
-        }
+	{
+	  can_delete_ldx = 0;
+	}
       offset = start_offset + isize;
     }
   if (can_delete_ldx)
@@ -677,7 +677,7 @@ m68hc11_relax_group (bfd *abfd, asection
 
 static bfd_boolean
 m68hc11_elf_relax_section (bfd *abfd, asection *sec,
-                           struct bfd_link_info *link_info, bfd_boolean *again)
+			   struct bfd_link_info *link_info, bfd_boolean *again)
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Rela *internal_relocs;
@@ -717,7 +717,7 @@ m68hc11_elf_relax_section (bfd *abfd, as
   /* Checking for branch relaxation relies on the relocations to
      be sorted on 'r_offset'.  This is not guaranteed so we must sort.  */
   qsort (internal_relocs, sec->reloc_count, sizeof (Elf_Internal_Rela),
-         compare_reloc);
+	 compare_reloc);
 
   /* Walk through them looking for relaxing opportunities.  */
   irelend = internal_relocs + sec->reloc_count;
@@ -732,13 +732,13 @@ m68hc11_elf_relax_section (bfd *abfd, as
       /* If this isn't something that can be relaxed, then ignore
 	 this reloc.  */
       if (ELF32_R_TYPE (irel->r_info) != (int) R_M68HC11_16
-          && ELF32_R_TYPE (irel->r_info) != (int) R_M68HC11_RL_JUMP
-          && ELF32_R_TYPE (irel->r_info) != (int) R_M68HC11_RL_GROUP)
-        {
-          prev_insn_branch = 0;
-          prev_insn_group = 0;
-          continue;
-        }
+	  && ELF32_R_TYPE (irel->r_info) != (int) R_M68HC11_RL_JUMP
+	  && ELF32_R_TYPE (irel->r_info) != (int) R_M68HC11_RL_GROUP)
+	{
+	  prev_insn_branch = 0;
+	  prev_insn_group = 0;
+	  continue;
+	}
 
       /* Get the section contents if we haven't done so already.  */
       if (contents == NULL)
@@ -769,10 +769,10 @@ m68hc11_elf_relax_section (bfd *abfd, as
 	{
 	  Elf_Internal_Rela *nrel;
 	  unsigned char code;
-          unsigned char roffset;
+	  unsigned char roffset;
 
-          prev_insn_branch = 0;
-          prev_insn_group = 0;
+	  prev_insn_branch = 0;
+	  prev_insn_group = 0;
 
 	  /* Do nothing if this reloc is the last byte in the section.  */
 	  if (irel->r_offset + 2 >= sec->size)
@@ -795,14 +795,14 @@ m68hc11_elf_relax_section (bfd *abfd, as
 
 	  /* Make sure our destination immediately follows the
 	     unconditional branch.  */
-          roffset = bfd_get_8 (abfd, contents + irel->r_offset + 1);
-          if (roffset != 3)
-            continue;
-
-          prev_insn_branch = irel;
-          prev_insn_group = 0;
-          continue;
-        }
+	  roffset = bfd_get_8 (abfd, contents + irel->r_offset + 1);
+	  if (roffset != 3)
+	    continue;
+
+	  prev_insn_branch = irel;
+	  prev_insn_group = 0;
+	  continue;
+	}
 
       /* Read this BFD's symbols if we haven't done so already.  */
       if (isymbuf == NULL && symtab_hdr->sh_info != 0)
@@ -821,8 +821,8 @@ m68hc11_elf_relax_section (bfd *abfd, as
 	{
 	  /* A local symbol.  */
 	  isym = isymbuf + ELF32_R_SYM (irel->r_info);
-          is_far = isym->st_other & STO_M68HC12_FAR;
-          sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx);
+	  is_far = isym->st_other & STO_M68HC12_FAR;
+	  sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx);
 	  symval = (isym->st_value
 		    + sym_sec->output_section->vma
 		    + sym_sec->output_offset);
@@ -840,16 +840,16 @@ m68hc11_elf_relax_section (bfd *abfd, as
 	      && h->root.type != bfd_link_hash_defweak)
 	    {
 	      /* This appears to be a reference to an undefined
-                 symbol.  Just ignore it--it will be caught by the
-                 regular reloc processing.  */
-              prev_insn_branch = 0;
-              prev_insn_group = 0;
+		 symbol.  Just ignore it--it will be caught by the
+		 regular reloc processing.  */
+	      prev_insn_branch = 0;
+	      prev_insn_group = 0;
 	      continue;
 	    }
 
-          is_far = h->other & STO_M68HC12_FAR;
-          isym = 0;
-          sym_sec = h->root.u.def.section;
+	  is_far = h->other & STO_M68HC12_FAR;
+	  isym = 0;
+	  sym_sec = h->root.u.def.section;
 	  symval = (h->root.u.def.value
 		    + sym_sec->output_section->vma
 		    + sym_sec->output_offset);
@@ -857,216 +857,216 @@ m68hc11_elf_relax_section (bfd *abfd, as
 
       if (ELF32_R_TYPE (irel->r_info) == (int) R_M68HC11_RL_GROUP)
 	{
-          prev_insn_branch = 0;
-          prev_insn_group = 0;
+	  prev_insn_branch = 0;
+	  prev_insn_group = 0;
 
 	  /* Do nothing if this reloc is the last byte in the section.  */
 	  if (irel->r_offset == sec->size)
 	    continue;
 
-          prev_insn_group = irel;
-          insn_group_value = isym->st_value;
-          continue;
-        }
+	  prev_insn_group = irel;
+	  insn_group_value = isym->st_value;
+	  continue;
+	}
 
       /* When we relax some bytes, the size of our section changes.
-         This affects the layout of next input sections that go in our
-         output section.  When the symbol is part of another section that
-         will go in the same output section as the current one, it's
-         final address may now be incorrect (too far).  We must let the
-         linker re-compute all section offsets before processing this
-         reloc.  Code example:
-
-                                Initial             Final
-         .sect .text            section size = 6    section size = 4
-         jmp foo
-         jmp bar
-         .sect .text.foo_bar    output_offset = 6   output_offset = 4
-         foo: rts
-         bar: rts
+	 This affects the layout of next input sections that go in our
+	 output section.  When the symbol is part of another section that
+	 will go in the same output section as the current one, it's
+	 final address may now be incorrect (too far).  We must let the
+	 linker re-compute all section offsets before processing this
+	 reloc.  Code example:
+
+				Initial		    Final
+	 .sect .text		section size = 6    section size = 4
+	 jmp foo
+	 jmp bar
+	 .sect .text.foo_bar	output_offset = 6   output_offset = 4
+	 foo: rts
+	 bar: rts
 
-         If we process the reloc now, the jmp bar is replaced by a
-         relative branch to the initial bar address (output_offset 6).  */
+	 If we process the reloc now, the jmp bar is replaced by a
+	 relative branch to the initial bar address (output_offset 6).  */
       if (*again && sym_sec != sec
-          && sym_sec->output_section == sec->output_section)
-        {
-          prev_insn_group = 0;
-          prev_insn_branch = 0;
-          continue;
-        }
+	  && sym_sec->output_section == sec->output_section)
+	{
+	  prev_insn_group = 0;
+	  prev_insn_branch = 0;
+	  continue;
+	}
 
       value = symval;
       /* Try to turn a far branch to a near branch.  */
       if (ELF32_R_TYPE (irel->r_info) == (int) R_M68HC11_16
-          && prev_insn_branch)
-        {
-          bfd_vma offset;
-          unsigned char code;
-
-          offset = value - (prev_insn_branch->r_offset
-                            + sec->output_section->vma
-                            + sec->output_offset + 2);
-
-          /* If the offset is still out of -128..+127 range,
-             leave that far branch unchanged.  */
-          if ((offset & 0xff80) != 0 && (offset & 0xff80) != 0xff80)
-            {
-              prev_insn_branch = 0;
-              continue;
-            }
-
-          /* Shrink the branch.  */
-          code = bfd_get_8 (abfd, contents + prev_insn_branch->r_offset);
-          if (code == 0x7e)
-            {
-              code = 0x20;
-              bfd_put_8 (abfd, code, contents + prev_insn_branch->r_offset);
-              bfd_put_8 (abfd, 0xff,
-                         contents + prev_insn_branch->r_offset + 1);
-              irel->r_offset = prev_insn_branch->r_offset + 1;
-              irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-                                           R_M68HC11_PCREL_8);
-              m68hc11_elf_relax_delete_bytes (abfd, sec,
-                                              irel->r_offset + 1, 1);
-            }
-          else
-            {
-              code ^= 0x1;
-              bfd_put_8 (abfd, code, contents + prev_insn_branch->r_offset);
-              bfd_put_8 (abfd, 0xff,
-                         contents + prev_insn_branch->r_offset + 1);
-              irel->r_offset = prev_insn_branch->r_offset + 1;
-              irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-                                           R_M68HC11_PCREL_8);
-              m68hc11_elf_relax_delete_bytes (abfd, sec,
-                                              irel->r_offset + 1, 3);
-            }
-          prev_insn_branch = 0;
-          *again = TRUE;
-        }
+	  && prev_insn_branch)
+	{
+	  bfd_vma offset;
+	  unsigned char code;
+
+	  offset = value - (prev_insn_branch->r_offset
+			    + sec->output_section->vma
+			    + sec->output_offset + 2);
+
+	  /* If the offset is still out of -128..+127 range,
+	     leave that far branch unchanged.  */
+	  if ((offset & 0xff80) != 0 && (offset & 0xff80) != 0xff80)
+	    {
+	      prev_insn_branch = 0;
+	      continue;
+	    }
+
+	  /* Shrink the branch.  */
+	  code = bfd_get_8 (abfd, contents + prev_insn_branch->r_offset);
+	  if (code == 0x7e)
+	    {
+	      code = 0x20;
+	      bfd_put_8 (abfd, code, contents + prev_insn_branch->r_offset);
+	      bfd_put_8 (abfd, 0xff,
+			 contents + prev_insn_branch->r_offset + 1);
+	      irel->r_offset = prev_insn_branch->r_offset + 1;
+	      irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+					   R_M68HC11_PCREL_8);
+	      m68hc11_elf_relax_delete_bytes (abfd, sec,
+					      irel->r_offset + 1, 1);
+	    }
+	  else
+	    {
+	      code ^= 0x1;
+	      bfd_put_8 (abfd, code, contents + prev_insn_branch->r_offset);
+	      bfd_put_8 (abfd, 0xff,
+			 contents + prev_insn_branch->r_offset + 1);
+	      irel->r_offset = prev_insn_branch->r_offset + 1;
+	      irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+					   R_M68HC11_PCREL_8);
+	      m68hc11_elf_relax_delete_bytes (abfd, sec,
+					      irel->r_offset + 1, 3);
+	    }
+	  prev_insn_branch = 0;
+	  *again = TRUE;
+	}
 
       /* Try to turn a 16 bit address into a 8 bit page0 address.  */
       else if (ELF32_R_TYPE (irel->r_info) == (int) R_M68HC11_16
-               && (value & 0xff00) == 0)
+	       && (value & 0xff00) == 0)
 	{
-          unsigned char code;
-          unsigned short offset;
-          struct m68hc11_direct_relax *rinfo;
-
-          prev_insn_branch = 0;
-          offset = bfd_get_16 (abfd, contents + irel->r_offset);
-          offset += value;
-          if ((offset & 0xff00) != 0)
-            {
-              prev_insn_group = 0;
-              continue;
-            }
-
-          if (prev_insn_group)
-            {
-              unsigned long old_sec_size = sec->size;
-
-              /* Note that we've changed the relocation contents, etc.  */
-              elf_section_data (sec)->relocs = internal_relocs;
-              free_relocs = NULL;
-
-              elf_section_data (sec)->this_hdr.contents = contents;
-              free_contents = NULL;
-
-              symtab_hdr->contents = (bfd_byte *) isymbuf;
-              free_extsyms = NULL;
-
-              m68hc11_relax_group (abfd, sec, contents, offset,
-                                   prev_insn_group->r_offset,
-                                   insn_group_value);
-              irel = prev_insn_group;
-              prev_insn_group = 0;
-              irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-                                           R_M68HC11_NONE);
-              if (sec->size != old_sec_size)
-                *again = TRUE;
-              continue;
-            }
-
-          /* Get the opcode.  */
-          code = bfd_get_8 (abfd, contents + irel->r_offset - 1);
-          rinfo = find_relaxable_insn (code);
-          if (rinfo == 0)
-            {
-              prev_insn_group = 0;
-              continue;
-            }
-
-          /* Note that we've changed the relocation contents, etc.  */
-          elf_section_data (sec)->relocs = internal_relocs;
-          free_relocs = NULL;
-
-          elf_section_data (sec)->this_hdr.contents = contents;
-          free_contents = NULL;
-
-          symtab_hdr->contents = (bfd_byte *) isymbuf;
-          free_extsyms = NULL;
-
-          /* Fix the opcode.  */
-          /* printf ("A relaxable case : 0x%02x (%s)\n",
-             code, rinfo->name); */
-          bfd_put_8 (abfd, rinfo->direct_code,
-                     contents + irel->r_offset - 1);
-
-          /* Delete one byte of data (upper byte of address).  */
-          m68hc11_elf_relax_delete_bytes (abfd, sec, irel->r_offset, 1);
-
-          /* Fix the relocation's type.  */
-          irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-                                       R_M68HC11_8);
-
-          /* That will change things, so, we should relax again.  */
-          *again = TRUE;
-        }
+	  unsigned char code;
+	  unsigned short offset;
+	  struct m68hc11_direct_relax *rinfo;
+
+	  prev_insn_branch = 0;
+	  offset = bfd_get_16 (abfd, contents + irel->r_offset);
+	  offset += value;
+	  if ((offset & 0xff00) != 0)
+	    {
+	      prev_insn_group = 0;
+	      continue;
+	    }
+
+	  if (prev_insn_group)
+	    {
+	      unsigned long old_sec_size = sec->size;
+
+	      /* Note that we've changed the relocation contents, etc.  */
+	      elf_section_data (sec)->relocs = internal_relocs;
+	      free_relocs = NULL;
+
+	      elf_section_data (sec)->this_hdr.contents = contents;
+	      free_contents = NULL;
+
+	      symtab_hdr->contents = (bfd_byte *) isymbuf;
+	      free_extsyms = NULL;
+
+	      m68hc11_relax_group (abfd, sec, contents, offset,
+				   prev_insn_group->r_offset,
+				   insn_group_value);
+	      irel = prev_insn_group;
+	      prev_insn_group = 0;
+	      irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+					   R_M68HC11_NONE);
+	      if (sec->size != old_sec_size)
+		*again = TRUE;
+	      continue;
+	    }
+
+	  /* Get the opcode.  */
+	  code = bfd_get_8 (abfd, contents + irel->r_offset - 1);
+	  rinfo = find_relaxable_insn (code);
+	  if (rinfo == 0)
+	    {
+	      prev_insn_group = 0;
+	      continue;
+	    }
+
+	  /* Note that we've changed the relocation contents, etc.  */
+	  elf_section_data (sec)->relocs = internal_relocs;
+	  free_relocs = NULL;
+
+	  elf_section_data (sec)->this_hdr.contents = contents;
+	  free_contents = NULL;
+
+	  symtab_hdr->contents = (bfd_byte *) isymbuf;
+	  free_extsyms = NULL;
+
+	  /* Fix the opcode.  */
+	  /* printf ("A relaxable case : 0x%02x (%s)\n",
+	     code, rinfo->name); */
+	  bfd_put_8 (abfd, rinfo->direct_code,
+		     contents + irel->r_offset - 1);
+
+	  /* Delete one byte of data (upper byte of address).  */
+	  m68hc11_elf_relax_delete_bytes (abfd, sec, irel->r_offset, 1);
+
+	  /* Fix the relocation's type.  */
+	  irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+				       R_M68HC11_8);
+
+	  /* That will change things, so, we should relax again.  */
+	  *again = TRUE;
+	}
       else if (ELF32_R_TYPE (irel->r_info) == R_M68HC11_16 && !is_far)
-        {
-          unsigned char code;
-          bfd_vma offset;
-
-          prev_insn_branch = 0;
-          code = bfd_get_8 (abfd, contents + irel->r_offset - 1);
-          if (code == 0x7e || code == 0xbd)
-            {
-              offset = value - (irel->r_offset
-                                + sec->output_section->vma
-                                + sec->output_offset + 1);
-              offset += bfd_get_16 (abfd, contents + irel->r_offset);
-
-              /* If the offset is still out of -128..+127 range,
-                 leave that far branch unchanged.  */
-              if ((offset & 0xff80) == 0 || (offset & 0xff80) == 0xff80)
-                {
-
-                  /* Note that we've changed the relocation contents, etc.  */
-                  elf_section_data (sec)->relocs = internal_relocs;
-                  free_relocs = NULL;
-
-                  elf_section_data (sec)->this_hdr.contents = contents;
-                  free_contents = NULL;
-
-                  symtab_hdr->contents = (bfd_byte *) isymbuf;
-                  free_extsyms = NULL;
-
-                  /* Shrink the branch.  */
-                  code = (code == 0x7e) ? 0x20 : 0x8d;
-                  bfd_put_8 (abfd, code,
-                             contents + irel->r_offset - 1);
-                  bfd_put_8 (abfd, 0xff,
-                             contents + irel->r_offset);
-                  irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-                                               R_M68HC11_PCREL_8);
-                  m68hc11_elf_relax_delete_bytes (abfd, sec,
-                                                  irel->r_offset + 1, 1);
-                  /* That will change things, so, we should relax again.  */
-                  *again = TRUE;
-                }
-            }
-        }
+	{
+	  unsigned char code;
+	  bfd_vma offset;
+
+	  prev_insn_branch = 0;
+	  code = bfd_get_8 (abfd, contents + irel->r_offset - 1);
+	  if (code == 0x7e || code == 0xbd)
+	    {
+	      offset = value - (irel->r_offset
+				+ sec->output_section->vma
+				+ sec->output_offset + 1);
+	      offset += bfd_get_16 (abfd, contents + irel->r_offset);
+
+	      /* If the offset is still out of -128..+127 range,
+		 leave that far branch unchanged.  */
+	      if ((offset & 0xff80) == 0 || (offset & 0xff80) == 0xff80)
+		{
+
+		  /* Note that we've changed the relocation contents, etc.  */
+		  elf_section_data (sec)->relocs = internal_relocs;
+		  free_relocs = NULL;
+
+		  elf_section_data (sec)->this_hdr.contents = contents;
+		  free_contents = NULL;
+
+		  symtab_hdr->contents = (bfd_byte *) isymbuf;
+		  free_extsyms = NULL;
+
+		  /* Shrink the branch.  */
+		  code = (code == 0x7e) ? 0x20 : 0x8d;
+		  bfd_put_8 (abfd, code,
+			     contents + irel->r_offset - 1);
+		  bfd_put_8 (abfd, 0xff,
+			     contents + irel->r_offset);
+		  irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+					       R_M68HC11_PCREL_8);
+		  m68hc11_elf_relax_delete_bytes (abfd, sec,
+						  irel->r_offset + 1, 1);
+		  /* That will change things, so, we should relax again.  */
+		  *again = TRUE;
+		}
+	    }
+	}
       prev_insn_branch = 0;
       prev_insn_group = 0;
     }
@@ -1117,7 +1117,7 @@ m68hc11_elf_relax_section (bfd *abfd, as
 
 static void
 m68hc11_elf_relax_delete_bytes (bfd *abfd, asection *sec,
-                                bfd_vma addr, int count)
+				bfd_vma addr, int count)
 {
   Elf_Internal_Shdr *symtab_hdr;
   unsigned int sec_shndx;
@@ -1162,12 +1162,12 @@ m68hc11_elf_relax_delete_bytes (bfd *abf
 	 case we no longer care about it.  Don't delete relocs which
 	 represent addresses, though.  */
       if (ELF32_R_TYPE (irel->r_info) != R_M68HC11_RL_JUMP
-          && irel->r_offset >= addr && irel->r_offset < addr + count)
-        irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-                                     R_M68HC11_NONE);
+	  && irel->r_offset >= addr && irel->r_offset < addr + count)
+	irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+				     R_M68HC11_NONE);
 
       if (ELF32_R_TYPE (irel->r_info) == R_M68HC11_NONE)
-        continue;
+	continue;
 
       /* Get the new reloc address.  */
       if ((irel->r_offset > addr
@@ -1175,72 +1175,72 @@ m68hc11_elf_relax_delete_bytes (bfd *abf
 	irel->r_offset -= count;
 
       /* If this is a PC relative reloc, see if the range it covers
-         includes the bytes we have deleted.  */
+	 includes the bytes we have deleted.  */
       switch (ELF32_R_TYPE (irel->r_info))
 	{
 	default:
 	  break;
 
 	case R_M68HC11_RL_JUMP:
-          code = bfd_get_8 (abfd, contents + irel->r_offset);
-          switch (code)
-            {
-              /* jsr and jmp instruction are also marked with RL_JUMP
-                 relocs but no adjustment must be made.  */
-            case 0x7e:
-            case 0x9d:
-            case 0xbd:
-              continue;
-
-            case 0x12:
-            case 0x13:
-              branch_pos = 3;
-              raddr = 4;
-
-              /* Special case when we translate a brclr N,y into brclr *<addr>
-                 In this case, the 0x18 page2 prefix is removed.
-                 The reloc offset is not modified but the instruction
-                 size is reduced by 1.  */
-              if (old_offset == addr)
-                raddr++;
-              break;
-
-            case 0x1e:
-            case 0x1f:
-              branch_pos = 3;
-              raddr = 4;
-              break;
-
-            case 0x18:
-              branch_pos = 4;
-              raddr = 5;
-              break;
-
-            default:
-              branch_pos = 1;
-              raddr = 2;
-              break;
-            }
-          offset = bfd_get_8 (abfd, contents + irel->r_offset + branch_pos);
-          raddr += old_offset;
-          raddr += ((unsigned short) offset | ((offset & 0x80) ? 0xff00 : 0));
-          if (irel->r_offset < addr && raddr > addr)
-            {
-              offset -= count;
-              bfd_put_8 (abfd, offset, contents + irel->r_offset + branch_pos);
-            }
-          else if (irel->r_offset >= addr && raddr <= addr)
-            {
-              offset += count;
-              bfd_put_8 (abfd, offset, contents + irel->r_offset + branch_pos);
-            }
-          else
-            {
-              /*printf ("Not adjusted 0x%04x [0x%4x 0x%4x]\n", raddr,
-                irel->r_offset, addr);*/
-            }
+	  code = bfd_get_8 (abfd, contents + irel->r_offset);
+	  switch (code)
+	    {
+	      /* jsr and jmp instruction are also marked with RL_JUMP
+		 relocs but no adjustment must be made.  */
+	    case 0x7e:
+	    case 0x9d:
+	    case 0xbd:
+	      continue;
 
-          break;
+	    case 0x12:
+	    case 0x13:
+	      branch_pos = 3;
+	      raddr = 4;
+
+	      /* Special case when we translate a brclr N,y into brclr *<addr>
+		 In this case, the 0x18 page2 prefix is removed.
+		 The reloc offset is not modified but the instruction
+		 size is reduced by 1.  */
+	      if (old_offset == addr)
+		raddr++;
+	      break;
+
+	    case 0x1e:
+	    case 0x1f:
+	      branch_pos = 3;
+	      raddr = 4;
+	      break;
+
+	    case 0x18:
+	      branch_pos = 4;
+	      raddr = 5;
+	      break;
+
+	    default:
+	      branch_pos = 1;
+	      raddr = 2;
+	      break;
+	    }
+	  offset = bfd_get_8 (abfd, contents + irel->r_offset + branch_pos);
+	  raddr += old_offset;
+	  raddr += ((unsigned short) offset | ((offset & 0x80) ? 0xff00 : 0));
+	  if (irel->r_offset < addr && raddr > addr)
+	    {
+	      offset -= count;
+	      bfd_put_8 (abfd, offset, contents + irel->r_offset + branch_pos);
+	    }
+	  else if (irel->r_offset >= addr && raddr <= addr)
+	    {
+	      offset += count;
+	      bfd_put_8 (abfd, offset, contents + irel->r_offset + branch_pos);
+	    }
+	  else
+	    {
+	      /*printf ("Not adjusted 0x%04x [0x%4x 0x%4x]\n", raddr,
+		irel->r_offset, addr);*/
+	    }
+
+	  break;
 	}
     }
 
@@ -1285,7 +1285,7 @@ static const struct bfd_elf_special_sect
   { STRING_COMMA_LEN (".page0"),    0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
   { STRING_COMMA_LEN (".softregs"), 0, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
   { STRING_COMMA_LEN (".vectors"),  0, SHT_PROGBITS, SHF_ALLOC },
-  { NULL,                       0,  0, 0,            0 }
+  { NULL,			0,  0, 0,	     0 }
 };
 
 #define ELF_ARCH		bfd_arch_m68hc11
@@ -1293,7 +1293,7 @@ static const struct bfd_elf_special_sect
 #define ELF_MACHINE_CODE	EM_68HC11
 #define ELF_MAXPAGESIZE		0x1000
 
-#define TARGET_BIG_SYM          m68hc11_elf32_vec
+#define TARGET_BIG_SYM		m68hc11_elf32_vec
 #define TARGET_BIG_NAME		"elf32-m68hc11"
 
 #define elf_info_to_howto	0
@@ -1309,7 +1309,7 @@ static const struct bfd_elf_special_sect
 #define elf_backend_merge_symbol_attribute elf32_m68hc11_merge_symbol_attribute
 
 #define bfd_elf32_bfd_link_hash_table_create \
-                                m68hc11_elf_bfd_link_hash_table_create
+				m68hc11_elf_bfd_link_hash_table_create
 #define bfd_elf32_bfd_merge_private_bfd_data \
 					_bfd_m68hc11_elf_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags	_bfd_m68hc11_elf_set_private_flags
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m68hc12.c ./bfd/elf32-m68hc12.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m68hc12.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-m68hc12.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Motorola 68HC12-specific support for 32-bit ELF
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Contributed by Stephane Carrez (stcarrez@nerim.fr)
    (Heavily copied from the D10V port by Martin Hunt (hunt@cygnus.com))
 
@@ -62,31 +62,31 @@ static void m68hc11_info_to_howto_rel
 
 					Banked
 					Address Space
-                                        |               |       Page n
+					|		|	Page n
 					+---------------+ 0x1010000
-                                        |               |
-                                        | jsr _foo      |
-                                        | ..            |       Page 3
-                                        | _foo:         |
+					|		|
+					| jsr _foo	|
+					| ..		|	Page 3
+					| _foo:		|
 					+---------------+ 0x100C000
-					|	        |
-                                        | call _bar     |
-					| ..	        |	Page 2
-					| _bar:	        |
+					|		|
+					| call _bar	|
+					| ..		|	Page 2
+					| _bar:		|
 					+---------------+ 0x1008000
-				/------>|	        |
-				|	| call _foo     |	Page 1
-				|	|       	|
+				/------>|		|
+				|	| call _foo	|	Page 1
+				|	|		|
 				|	+---------------+ 0x1004000
-      Physical			|	|	        |
-      Address Space		|	|	        |	Page 0
-				|	|	        |
+      Physical			|	|		|
+      Address Space		|	|		|	Page 0
+				|	|		|
     +-----------+ 0x00FFFF	|	+---------------+ 0x1000000
     |		|		|
     | call _foo	|		|
     |		|		|
     +-----------+ 0x00BFFF -+---/
-    |		|           |
+    |		|	    |
     |		|	    |
     |		| 16K	    |
     |		|	    |
@@ -177,7 +177,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 FALSE,			/* partial_inplace */
 	 0x00ff,		/* src_mask */
 	 0x00ff,		/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* A 16 bit absolute relocation */
   HOWTO (R_M68HC11_16,		/* type */
@@ -238,7 +238,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 FALSE,			/* partial_inplace */
 	 0xffff,		/* src_mask */
 	 0xffff,		/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_M68HC11_GNU_VTINHERIT,	/* type */
@@ -271,7 +271,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 FALSE),		/* pcrel_offset */
 
   /* A 24 bit relocation */
-  HOWTO (R_M68HC11_24,	        /* type */
+  HOWTO (R_M68HC11_24,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 24,			/* bitsize */
@@ -286,7 +286,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 FALSE),		/* pcrel_offset */
 
   /* A 16-bit low relocation */
-  HOWTO (R_M68HC11_LO16,        /* type */
+  HOWTO (R_M68HC11_LO16,	/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -301,7 +301,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 FALSE),		/* pcrel_offset */
 
   /* A page relocation */
-  HOWTO (R_M68HC11_PAGE,        /* type */
+  HOWTO (R_M68HC11_PAGE,	/* type */
 	 0,			/* rightshift */
 	 0,			/* size (0 = byte, 1 = short, 2 = long) */
 	 8,			/* bitsize */
@@ -328,8 +328,8 @@ static reloc_howto_type elf_m68hc11_howt
 	 bfd_elf_generic_reloc,	/* special_function */
 	 "R_M68HC12_16B",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0xffff,			/* src_mask */
-	 0xffff,			/* dst_mask */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* A 9 bit PC-rel relocation.  */
@@ -345,7 +345,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 TRUE,			/* partial_inplace */
 	 0xfe00,		/* src_mask */
 	 0x01ff,		/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* A 10 bit PC-rel relocation.  */
   HOWTO (R_M68HC12_PCREL_10,	/* type */
@@ -360,7 +360,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 TRUE,			/* partial_inplace */
 	 0xfc00,		/* src_mask */
 	 0x03ff,		/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* A 8 bit absolute relocation (upper address).  */
   HOWTO (R_M68HC12_HI8XG,		/* type */
@@ -405,7 +405,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 TRUE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0,			/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* Mark beginning of Gcc relaxation group instruction.  */
   HOWTO (R_M68HC11_RL_GROUP,	/* type */
@@ -420,7 +420,7 @@ static reloc_howto_type elf_m68hc11_howt
 	 TRUE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0,			/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 };
 
 /* Map BFD reloc types to M68HC11 ELF reloc types.  */
@@ -463,7 +463,7 @@ static const struct m68hc11_reloc_map m6
 
 static reloc_howto_type *
 bfd_elf32_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                                 bfd_reloc_code_real_type code)
+				 bfd_reloc_code_real_type code)
 {
   unsigned int i;
 
@@ -499,7 +499,7 @@ bfd_elf32_bfd_reloc_name_lookup (bfd *ab
 
 static void
 m68hc11_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED,
-                           arelent *cache_ptr, Elf_Internal_Rela *dst)
+			   arelent *cache_ptr, Elf_Internal_Rela *dst)
 {
   unsigned int r_type;
 
@@ -550,8 +550,8 @@ m68hc12_elf_build_one_stub (struct bfd_h
 
   */
   sym_value = (stub_entry->target_value
-               + stub_entry->target_section->output_offset
-               + stub_entry->target_section->output_section->vma);
+	       + stub_entry->target_section->output_offset
+	       + stub_entry->target_section->output_section->vma);
   phys_addr = m68hc11_phys_addr (&htab->pinfo, sym_value);
   phys_page = m68hc11_phys_page (&htab->pinfo, sym_value);
 
@@ -573,7 +573,7 @@ m68hc12_elf_build_one_stub (struct bfd_h
 
 static bfd_boolean
 m68hc12_elf_size_one_stub (struct bfd_hash_entry *gen_entry,
-                           void *in_arg ATTRIBUTE_UNUSED)
+			   void *in_arg ATTRIBUTE_UNUSED)
 {
   struct elf32_m68hc11_stub_hash_entry *stub_entry;
 
@@ -616,7 +616,7 @@ m68hc12_elf_set_mach_from_flags (bfd *ab
       break;
     case EF_M68HC11_GENERIC:
       bfd_default_set_arch_mach (abfd, bfd_arch_m68hc12,
-                                 bfd_mach_m6812_default);
+				 bfd_mach_m6812_default);
       break;
     default:
       return FALSE;
@@ -635,7 +635,7 @@ static const struct bfd_elf_special_sect
   { STRING_COMMA_LEN (".page0"),    0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
   { STRING_COMMA_LEN (".softregs"), 0, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
   { STRING_COMMA_LEN (".vectors"),  0, SHT_PROGBITS, SHF_ALLOC },
-  { NULL,                       0,  0, 0,            0 }
+  { NULL,			0,  0, 0,	     0 }
 };
 
 #define ELF_ARCH		bfd_arch_m68hc12
@@ -643,7 +643,7 @@ static const struct bfd_elf_special_sect
 #define ELF_MACHINE_CODE	EM_68HC12
 #define ELF_MAXPAGESIZE		0x1000
 
-#define TARGET_BIG_SYM          m68hc12_elf32_vec
+#define TARGET_BIG_SYM		m68hc12_elf32_vec
 #define TARGET_BIG_NAME		"elf32-m68hc12"
 
 #define elf_info_to_howto	0
@@ -659,7 +659,7 @@ static const struct bfd_elf_special_sect
 #define elf_backend_merge_symbol_attribute elf32_m68hc11_merge_symbol_attribute
 
 #define bfd_elf32_bfd_link_hash_table_create \
-                                m68hc12_elf_bfd_link_hash_table_create
+				m68hc12_elf_bfd_link_hash_table_create
 #define bfd_elf32_bfd_merge_private_bfd_data \
 					_bfd_m68hc11_elf_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags	_bfd_m68hc11_elf_set_private_flags
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m68hc1x.c ./bfd/elf32-m68hc1x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m68hc1x.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-m68hc1x.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Motorola 68HC11/HC12-specific support for 32-bit ELF
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Contributed by Stephane Carrez (stcarrez@nerim.fr)
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -43,8 +43,8 @@ static struct bfd_hash_entry *stub_hash_
   (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
 
 static void m68hc11_elf_set_symbol (bfd* abfd, struct bfd_link_info *info,
-                                    const char* name, bfd_vma value,
-                                    asection* sec);
+				    const char* name, bfd_vma value,
+				    asection* sec);
 
 static bfd_boolean m68hc11_elf_export_one_stub
   (struct bfd_hash_entry *gen_entry, void *in_arg);
@@ -118,7 +118,7 @@ m68hc11_elf_hash_table_create (bfd *abfd
 
 static struct bfd_hash_entry *
 stub_hash_newfunc (struct bfd_hash_entry *entry, struct bfd_hash_table *table,
-                   const char *string)
+		   const char *string)
 {
   /* Allocate the structure if it has not already been allocated by a
      subclass.  */
@@ -152,13 +152,13 @@ stub_hash_newfunc (struct bfd_hash_entry
 
 static struct elf32_m68hc11_stub_hash_entry *
 m68hc12_add_stub (const char *stub_name, asection *section,
-                  struct m68hc11_elf_link_hash_table *htab)
+		  struct m68hc11_elf_link_hash_table *htab)
 {
   struct elf32_m68hc11_stub_hash_entry *stub_entry;
 
   /* Enter this entry into the linker stub hash table.  */
   stub_entry = m68hc12_stub_hash_lookup (htab->stub_hash_table, stub_name,
-                                         TRUE, FALSE);
+					 TRUE, FALSE);
   if (stub_entry == NULL)
     {
       /* xgettext:c-format */
@@ -170,7 +170,7 @@ m68hc12_add_stub (const char *stub_name,
   if (htab->stub_section == 0)
     {
       htab->stub_section = (*htab->add_stub_section) (".tramp",
-                                                      htab->tramp_section);
+						      htab->tramp_section);
     }
 
   stub_entry->stub_sec = htab->stub_section;
@@ -184,11 +184,11 @@ m68hc12_add_stub (const char *stub_name,
 
 bfd_boolean
 elf32_m68hc11_add_symbol_hook (bfd *abfd, struct bfd_link_info *info,
-                               Elf_Internal_Sym *sym,
-                               const char **namep ATTRIBUTE_UNUSED,
-                               flagword *flagsp ATTRIBUTE_UNUSED,
-                               asection **secp ATTRIBUTE_UNUSED,
-                               bfd_vma *valp ATTRIBUTE_UNUSED)
+			       Elf_Internal_Sym *sym,
+			       const char **namep ATTRIBUTE_UNUSED,
+			       flagword *flagsp ATTRIBUTE_UNUSED,
+			       asection **secp ATTRIBUTE_UNUSED,
+			       bfd_vma *valp ATTRIBUTE_UNUSED)
 {
   if (sym->st_other & STO_M68HC12_FAR)
     {
@@ -196,18 +196,18 @@ elf32_m68hc11_add_symbol_hook (bfd *abfd
 
       h = (struct elf_link_hash_entry *)
 	bfd_link_hash_lookup (info->hash, "__far_trampoline",
-                              FALSE, FALSE, FALSE);
+			      FALSE, FALSE, FALSE);
       if (h == NULL)
-        {
-          struct bfd_link_hash_entry* entry = NULL;
+	{
+	  struct bfd_link_hash_entry* entry = NULL;
 
-          _bfd_generic_link_add_one_symbol (info, abfd,
-                                            "__far_trampoline",
-                                            BSF_GLOBAL,
-                                            bfd_und_section_ptr,
-                                            (bfd_vma) 0, (const char*) NULL,
-                                            FALSE, FALSE, &entry);
-        }
+	  _bfd_generic_link_add_one_symbol (info, abfd,
+					    "__far_trampoline",
+					    BSF_GLOBAL,
+					    bfd_und_section_ptr,
+					    (bfd_vma) 0, (const char*) NULL,
+					    FALSE, FALSE, &entry);
+	}
 
     }
   return TRUE;
@@ -267,13 +267,13 @@ elf32_m68hc11_setup_section_lists (bfd *
 	   section != NULL;
 	   section = section->next)
 	{
-          const char* name = bfd_get_section_name (input_bfd, section);
+	  const char* name = bfd_get_section_name (input_bfd, section);
 
-          if (!strcmp (name, ".tramp"))
-            htab->tramp_section = section;
+	  if (!strcmp (name, ".tramp"))
+	    htab->tramp_section = section;
 
-          if (!strcmp (name, ".text"))
-            text_section = section;
+	  if (!strcmp (name, ".text"))
+	    text_section = section;
 
 	  if (top_id < section->id)
 	    top_id = section->id;
@@ -327,8 +327,8 @@ elf32_m68hc11_setup_section_lists (bfd *
 
 bfd_boolean
 elf32_m68hc11_size_stubs (bfd *output_bfd, bfd *stub_bfd,
-                          struct bfd_link_info *info,
-                          asection * (*add_stub_section) (const char*, asection*))
+			  struct bfd_link_info *info,
+			  asection * (*add_stub_section) (const char*, asection*))
 {
   bfd *input_bfd;
   asection *section;
@@ -382,10 +382,10 @@ elf32_m68hc11_size_stubs (bfd *output_bf
 	  symtab_hdr->contents = (unsigned char *) local_syms;
 	}
       if (local_syms == NULL)
-        {
-          free (all_local_syms);
+	{
+	  free (all_local_syms);
 	  return FALSE;
-        }
+	}
 
       all_local_syms[bfd_indx] = local_syms;
     }
@@ -402,69 +402,69 @@ elf32_m68hc11_size_stubs (bfd *output_bf
       /* We'll need the symbol table in a second.  */
       symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
       if (symtab_hdr->sh_info == 0)
-        continue;
+	continue;
 
       local_syms = all_local_syms[bfd_indx];
 
       /* Walk over each section attached to the input bfd.  */
       for (section = input_bfd->sections;
-           section != NULL;
-           section = section->next)
-        {
-          Elf_Internal_Rela *internal_relocs, *irelaend, *irela;
-
-          /* If there aren't any relocs, then there's nothing more
-             to do.  */
-          if ((section->flags & SEC_RELOC) == 0
-              || section->reloc_count == 0)
-            continue;
-
-          /* If this section is a link-once section that will be
-             discarded, then don't create any stubs.  */
-          if (section->output_section == NULL
-              || section->output_section->owner != output_bfd)
-            continue;
-
-          /* Get the relocs.  */
-          internal_relocs
-            = _bfd_elf_link_read_relocs (input_bfd, section, NULL,
+	   section != NULL;
+	   section = section->next)
+	{
+	  Elf_Internal_Rela *internal_relocs, *irelaend, *irela;
+
+	  /* If there aren't any relocs, then there's nothing more
+	     to do.  */
+	  if ((section->flags & SEC_RELOC) == 0
+	      || section->reloc_count == 0)
+	    continue;
+
+	  /* If this section is a link-once section that will be
+	     discarded, then don't create any stubs.  */
+	  if (section->output_section == NULL
+	      || section->output_section->owner != output_bfd)
+	    continue;
+
+	  /* Get the relocs.  */
+	  internal_relocs
+	    = _bfd_elf_link_read_relocs (input_bfd, section, NULL,
 					 (Elf_Internal_Rela *) NULL,
 					 info->keep_memory);
-          if (internal_relocs == NULL)
-            goto error_ret_free_local;
+	  if (internal_relocs == NULL)
+	    goto error_ret_free_local;
 
-          /* Now examine each relocation.  */
-          irela = internal_relocs;
-          irelaend = irela + section->reloc_count;
-          for (; irela < irelaend; irela++)
-            {
-              unsigned int r_type, r_indx;
-              struct elf32_m68hc11_stub_hash_entry *stub_entry;
-              asection *sym_sec;
-              bfd_vma sym_value;
-              struct elf_link_hash_entry *hash;
-              const char *stub_name;
-              Elf_Internal_Sym *sym;
-
-              r_type = ELF32_R_TYPE (irela->r_info);
-
-              /* Only look at 16-bit relocs.  */
-              if (r_type != (unsigned int) R_M68HC11_16)
-                continue;
-
-              /* Now determine the call target, its name, value,
-                 section.  */
-              r_indx = ELF32_R_SYM (irela->r_info);
-              if (r_indx < symtab_hdr->sh_info)
-                {
-                  /* It's a local symbol.  */
-                  Elf_Internal_Shdr *hdr;
-                  bfd_boolean is_far;
-
-                  sym = local_syms + r_indx;
-                  is_far = (sym && (sym->st_other & STO_M68HC12_FAR));
-                  if (!is_far)
-                    continue;
+	  /* Now examine each relocation.  */
+	  irela = internal_relocs;
+	  irelaend = irela + section->reloc_count;
+	  for (; irela < irelaend; irela++)
+	    {
+	      unsigned int r_type, r_indx;
+	      struct elf32_m68hc11_stub_hash_entry *stub_entry;
+	      asection *sym_sec;
+	      bfd_vma sym_value;
+	      struct elf_link_hash_entry *hash;
+	      const char *stub_name;
+	      Elf_Internal_Sym *sym;
+
+	      r_type = ELF32_R_TYPE (irela->r_info);
+
+	      /* Only look at 16-bit relocs.  */
+	      if (r_type != (unsigned int) R_M68HC11_16)
+		continue;
+
+	      /* Now determine the call target, its name, value,
+		 section.  */
+	      r_indx = ELF32_R_SYM (irela->r_info);
+	      if (r_indx < symtab_hdr->sh_info)
+		{
+		  /* It's a local symbol.  */
+		  Elf_Internal_Shdr *hdr;
+		  bfd_boolean is_far;
+
+		  sym = local_syms + r_indx;
+		  is_far = (sym && (sym->st_other & STO_M68HC12_FAR));
+		  if (!is_far)
+		    continue;
 
 		  if (sym->st_shndx >= elf_numsections (input_bfd))
 		    sym_sec = NULL;
@@ -473,93 +473,93 @@ elf32_m68hc11_size_stubs (bfd *output_bf
 		      hdr = elf_elfsections (input_bfd)[sym->st_shndx];
 		      sym_sec = hdr->bfd_section;
 		    }
-                  stub_name = (bfd_elf_string_from_elf_section
-                               (input_bfd, symtab_hdr->sh_link,
-                                sym->st_name));
-                  sym_value = sym->st_value;
-                  hash = NULL;
-                }
-              else
-                {
-                  /* It's an external symbol.  */
-                  int e_indx;
-
-                  e_indx = r_indx - symtab_hdr->sh_info;
-                  hash = (struct elf_link_hash_entry *)
-                    (sym_hashes[e_indx]);
-
-                  while (hash->root.type == bfd_link_hash_indirect
-                         || hash->root.type == bfd_link_hash_warning)
-                    hash = ((struct elf_link_hash_entry *)
-                            hash->root.u.i.link);
-
-                  if (hash->root.type == bfd_link_hash_defined
-                      || hash->root.type == bfd_link_hash_defweak
-                      || hash->root.type == bfd_link_hash_new)
-                    {
-                      if (!(hash->other & STO_M68HC12_FAR))
-                        continue;
-                    }
-                  else if (hash->root.type == bfd_link_hash_undefweak)
-                    {
-                      continue;
-                    }
-                  else if (hash->root.type == bfd_link_hash_undefined)
-                    {
-                      continue;
-                    }
-                  else
-                    {
-                      bfd_set_error (bfd_error_bad_value);
-                      goto error_ret_free_internal;
-                    }
-                  sym_sec = hash->root.u.def.section;
-                  sym_value = hash->root.u.def.value;
-                  stub_name = hash->root.root.string;
-                }
-
-              if (!stub_name)
-                goto error_ret_free_internal;
-
-              stub_entry = m68hc12_stub_hash_lookup
-                (htab->stub_hash_table,
-                 stub_name,
-                 FALSE, FALSE);
-              if (stub_entry == NULL)
-                {
-                  if (add_stub_section == 0)
-                    continue;
-
-                  stub_entry = m68hc12_add_stub (stub_name, section, htab);
-                  if (stub_entry == NULL)
-                    {
-                    error_ret_free_internal:
-                      if (elf_section_data (section)->relocs == NULL)
-                        free (internal_relocs);
-                      goto error_ret_free_local;
-                    }
-                }
-
-              stub_entry->target_value = sym_value;
-              stub_entry->target_section = sym_sec;
-            }
-
-          /* We're done with the internal relocs, free them.  */
-          if (elf_section_data (section)->relocs == NULL)
-            free (internal_relocs);
-        }
+		  stub_name = (bfd_elf_string_from_elf_section
+			       (input_bfd, symtab_hdr->sh_link,
+				sym->st_name));
+		  sym_value = sym->st_value;
+		  hash = NULL;
+		}
+	      else
+		{
+		  /* It's an external symbol.  */
+		  int e_indx;
+
+		  e_indx = r_indx - symtab_hdr->sh_info;
+		  hash = (struct elf_link_hash_entry *)
+		    (sym_hashes[e_indx]);
+
+		  while (hash->root.type == bfd_link_hash_indirect
+			 || hash->root.type == bfd_link_hash_warning)
+		    hash = ((struct elf_link_hash_entry *)
+			    hash->root.u.i.link);
+
+		  if (hash->root.type == bfd_link_hash_defined
+		      || hash->root.type == bfd_link_hash_defweak
+		      || hash->root.type == bfd_link_hash_new)
+		    {
+		      if (!(hash->other & STO_M68HC12_FAR))
+			continue;
+		    }
+		  else if (hash->root.type == bfd_link_hash_undefweak)
+		    {
+		      continue;
+		    }
+		  else if (hash->root.type == bfd_link_hash_undefined)
+		    {
+		      continue;
+		    }
+		  else
+		    {
+		      bfd_set_error (bfd_error_bad_value);
+		      goto error_ret_free_internal;
+		    }
+		  sym_sec = hash->root.u.def.section;
+		  sym_value = hash->root.u.def.value;
+		  stub_name = hash->root.root.string;
+		}
+
+	      if (!stub_name)
+		goto error_ret_free_internal;
+
+	      stub_entry = m68hc12_stub_hash_lookup
+		(htab->stub_hash_table,
+		 stub_name,
+		 FALSE, FALSE);
+	      if (stub_entry == NULL)
+		{
+		  if (add_stub_section == 0)
+		    continue;
+
+		  stub_entry = m68hc12_add_stub (stub_name, section, htab);
+		  if (stub_entry == NULL)
+		    {
+		    error_ret_free_internal:
+		      if (elf_section_data (section)->relocs == NULL)
+			free (internal_relocs);
+		      goto error_ret_free_local;
+		    }
+		}
+
+	      stub_entry->target_value = sym_value;
+	      stub_entry->target_section = sym_sec;
+	    }
+
+	  /* We're done with the internal relocs, free them.  */
+	  if (elf_section_data (section)->relocs == NULL)
+	    free (internal_relocs);
+	}
     }
 
   if (add_stub_section)
     {
       /* OK, we've added some stubs.  Find out the new size of the
-         stub sections.  */
+	 stub sections.  */
       for (stub_sec = htab->stub_bfd->sections;
-           stub_sec != NULL;
-           stub_sec = stub_sec->next)
-        {
-          stub_sec->size = 0;
-        }
+	   stub_sec != NULL;
+	   stub_sec = stub_sec->next)
+	{
+	  stub_sec->size = 0;
+	}
 
       bfd_hash_traverse (htab->stub_hash_table, htab->size_one_stub, htab);
     }
@@ -597,8 +597,8 @@ m68hc11_elf_export_one_stub (struct bfd_
 
   /* Export the symbol for debugging/disassembling.  */
   m68hc11_elf_set_symbol (htab->stub_bfd, info, name,
-                          stub_entry->stub_offset,
-                          stub_entry->stub_sec);
+			  stub_entry->stub_offset,
+			  stub_entry->stub_sec);
   free (name);
   return result;
 }
@@ -606,7 +606,7 @@ m68hc11_elf_export_one_stub (struct bfd_
 /* Export a symbol or set its value and section.  */
 static void
 m68hc11_elf_set_symbol (bfd *abfd, struct bfd_link_info *info,
-                        const char *name, bfd_vma value, asection *sec)
+			const char *name, bfd_vma value, asection *sec)
 {
   struct elf_link_hash_entry *h;
 
@@ -615,12 +615,12 @@ m68hc11_elf_set_symbol (bfd *abfd, struc
   if (h == NULL)
     {
       _bfd_generic_link_add_one_symbol (info, abfd,
-                                        name,
-                                        BSF_GLOBAL,
-                                        sec,
-                                        value,
-                                        (const char*) NULL,
-                                        TRUE, FALSE, NULL);
+					name,
+					BSF_GLOBAL,
+					sec,
+					value,
+					(const char*) NULL,
+					TRUE, FALSE, NULL);
     }
   else
     {
@@ -678,14 +678,14 @@ elf32_m68hc11_build_stubs (bfd *abfd, st
   if (param.use_memory_banks)
     {
       m68hc11_elf_set_symbol (abfd, info, BFD_M68HC11_BANK_START_NAME,
-                              htab->pinfo.bank_physical,
-                              bfd_abs_section_ptr);
+			      htab->pinfo.bank_physical,
+			      bfd_abs_section_ptr);
       m68hc11_elf_set_symbol (abfd, info, BFD_M68HC11_BANK_VIRTUAL_NAME,
-                              htab->pinfo.bank_virtual,
-                              bfd_abs_section_ptr);
+			      htab->pinfo.bank_virtual,
+			      bfd_abs_section_ptr);
       m68hc11_elf_set_symbol (abfd, info, BFD_M68HC11_BANK_SIZE_NAME,
-                              htab->pinfo.bank_size,
-                              bfd_abs_section_ptr);
+			      htab->pinfo.bank_size,
+			      bfd_abs_section_ptr);
     }
 
   return TRUE;
@@ -714,28 +714,28 @@ m68hc11_elf_get_bank_parameters (struct 
   pinfo->bank_size = 1 << M68HC12_BANK_SHIFT;
 
   h = bfd_link_hash_lookup (info->hash, BFD_M68HC11_BANK_START_NAME,
-                            FALSE, FALSE, TRUE);
+			    FALSE, FALSE, TRUE);
   if (h != (struct bfd_link_hash_entry*) NULL
       && h->type == bfd_link_hash_defined)
     pinfo->bank_physical = (h->u.def.value
-                            + h->u.def.section->output_section->vma
-                            + h->u.def.section->output_offset);
+			    + h->u.def.section->output_section->vma
+			    + h->u.def.section->output_offset);
 
   h = bfd_link_hash_lookup (info->hash, BFD_M68HC11_BANK_VIRTUAL_NAME,
-                            FALSE, FALSE, TRUE);
+			    FALSE, FALSE, TRUE);
   if (h != (struct bfd_link_hash_entry*) NULL
       && h->type == bfd_link_hash_defined)
     pinfo->bank_virtual = (h->u.def.value
-                           + h->u.def.section->output_section->vma
-                           + h->u.def.section->output_offset);
+			   + h->u.def.section->output_section->vma
+			   + h->u.def.section->output_offset);
 
   h = bfd_link_hash_lookup (info->hash, BFD_M68HC11_BANK_SIZE_NAME,
-                            FALSE, FALSE, TRUE);
+			    FALSE, FALSE, TRUE);
   if (h != (struct bfd_link_hash_entry*) NULL
       && h->type == bfd_link_hash_defined)
     pinfo->bank_size = (h->u.def.value
-                        + h->u.def.section->output_section->vma
-                        + h->u.def.section->output_offset);
+			+ h->u.def.section->output_section->vma
+			+ h->u.def.section->output_offset);
 
   pinfo->bank_shift = 0;
   for (i = pinfo->bank_size; i != 0; i >>= 1)
@@ -746,12 +746,12 @@ m68hc11_elf_get_bank_parameters (struct 
   pinfo->bank_param_initialized = 1;
 
   h = bfd_link_hash_lookup (info->hash, "__far_trampoline", FALSE,
-                            FALSE, TRUE);
+			    FALSE, TRUE);
   if (h != (struct bfd_link_hash_entry*) NULL
       && h->type == bfd_link_hash_defined)
     pinfo->trampoline_addr = (h->u.def.value
-                              + h->u.def.section->output_section->vma
-                              + h->u.def.section->output_offset);
+			      + h->u.def.section->output_section->vma
+			      + h->u.def.section->output_offset);
 }
 
 /* Return 1 if the address is in banked memory.
@@ -802,12 +802,12 @@ m68hc11_phys_page (struct m68hc11_page_i
 
 bfd_reloc_status_type
 m68hc11_elf_ignore_reloc (bfd *abfd ATTRIBUTE_UNUSED,
-                          arelent *reloc_entry,
-                          asymbol *symbol ATTRIBUTE_UNUSED,
-                          void *data ATTRIBUTE_UNUSED,
-                          asection *input_section,
-                          bfd *output_bfd,
-                          char **error_message ATTRIBUTE_UNUSED)
+			  arelent *reloc_entry,
+			  asymbol *symbol ATTRIBUTE_UNUSED,
+			  void *data ATTRIBUTE_UNUSED,
+			  asection *input_section,
+			  bfd *output_bfd,
+			  char **error_message ATTRIBUTE_UNUSED)
 {
   if (output_bfd != NULL)
     reloc_entry->address += input_section->output_offset;
@@ -816,12 +816,12 @@ m68hc11_elf_ignore_reloc (bfd *abfd ATTR
 
 bfd_reloc_status_type
 m68hc11_elf_special_reloc (bfd *abfd ATTRIBUTE_UNUSED,
-                           arelent *reloc_entry,
-                           asymbol *symbol,
-                           void *data ATTRIBUTE_UNUSED,
-                           asection *input_section,
-                           bfd *output_bfd,
-                           char **error_message ATTRIBUTE_UNUSED)
+			   arelent *reloc_entry,
+			   asymbol *symbol,
+			   void *data ATTRIBUTE_UNUSED,
+			   asection *input_section,
+			   bfd *output_bfd,
+			   char **error_message ATTRIBUTE_UNUSED)
 {
   if (output_bfd != (bfd *) NULL
       && (symbol->flags & BSF_SECTION_SYM) == 0
@@ -847,12 +847,12 @@ m68hc11_elf_special_reloc (bfd *abfd ATT
 
 bfd_boolean
 elf32_m68hc11_check_relocs (bfd *abfd, struct bfd_link_info *info,
-                            asection *sec, const Elf_Internal_Rela *relocs)
+			    asection *sec, const Elf_Internal_Rela *relocs)
 {
-  Elf_Internal_Shdr *           symtab_hdr;
+  Elf_Internal_Shdr *		symtab_hdr;
   struct elf_link_hash_entry ** sym_hashes;
-  const Elf_Internal_Rela *     rel;
-  const Elf_Internal_Rela *     rel_end;
+  const Elf_Internal_Rela *	rel;
+  const Elf_Internal_Rela *	rel_end;
 
   if (bfd_link_relocatable (info))
     return TRUE;
@@ -869,37 +869,33 @@ elf32_m68hc11_check_relocs (bfd *abfd, s
       r_symndx = ELF32_R_SYM (rel->r_info);
 
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes [r_symndx - symtab_hdr->sh_info];
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
-        {
-        /* This relocation describes the C++ object vtable hierarchy.
-           Reconstruct it for later use during GC.  */
-        case R_M68HC11_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-        /* This relocation describes which C++ vtable entries are actually
-           used.  Record for later use during GC.  */
-        case R_M68HC11_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
-        }
+	{
+	/* This relocation describes the C++ object vtable hierarchy.
+	   Reconstruct it for later use during GC.  */
+	case R_M68HC11_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	/* This relocation describes which C++ vtable entries are actually
+	   used.  Record for later use during GC.  */
+	case R_M68HC11_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
+	}
     }
 
   return TRUE;
@@ -908,11 +904,11 @@ elf32_m68hc11_check_relocs (bfd *abfd, s
 /* Relocate a 68hc11/68hc12 ELF section.  */
 bfd_boolean
 elf32_m68hc11_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
-                                struct bfd_link_info *info,
-                                bfd *input_bfd, asection *input_section,
-                                bfd_byte *contents, Elf_Internal_Rela *relocs,
-                                Elf_Internal_Sym *local_syms,
-                                asection **local_sections)
+				struct bfd_link_info *info,
+				bfd *input_bfd, asection *input_section,
+				bfd_byte *contents, Elf_Internal_Rela *relocs,
+				Elf_Internal_Sym *local_syms,
+				asection **local_sections)
 {
   Elf_Internal_Shdr *symtab_hdr;
   struct elf_link_hash_entry **sym_hashes;
@@ -964,8 +960,8 @@ elf32_m68hc11_relocate_section (bfd *out
       r_type = ELF32_R_TYPE (rel->r_info);
 
       if (r_type == R_M68HC11_GNU_VTENTRY
-          || r_type == R_M68HC11_GNU_VTINHERIT)
-        continue;
+	  || r_type == R_M68HC11_GNU_VTINHERIT)
+	continue;
 
       (*ebd->elf_info_to_howto_rel) (input_bfd, &arel, rel);
       howto = arel.howto;
@@ -1041,102 +1037,102 @@ elf32_m68hc11_relocate_section (bfd *out
       phys_addr = m68hc11_phys_addr (pinfo, relocation + rel->r_addend);
       phys_page = m68hc11_phys_page (pinfo, relocation + rel->r_addend);
       switch (r_type)
-        {
-        case R_M68HC12_LO8XG:
-          /* This relocation is specific to XGATE IMM16 calls and will precede
+	{
+	case R_M68HC12_LO8XG:
+	  /* This relocation is specific to XGATE IMM16 calls and will precede
 	     a HI8. tc-m68hc11 only generates them in pairs.
 	     Leave the relocation to the HI8XG step.  */
-          r = bfd_reloc_ok;
-          r_type = R_M68HC11_NONE;
-          break;
-
-        case R_M68HC12_HI8XG:
-          /* This relocation is specific to XGATE IMM16 calls and must follow
-             a LO8XG. Does not actually check that it was a LO8XG.
+	  r = bfd_reloc_ok;
+	  r_type = R_M68HC11_NONE;
+	  break;
+
+	case R_M68HC12_HI8XG:
+	  /* This relocation is specific to XGATE IMM16 calls and must follow
+	     a LO8XG. Does not actually check that it was a LO8XG.
 	     Adjusts high and low bytes.  */
-          relocation = phys_addr;
-          if ((e_flags & E_M68HC11_XGATE_RAMOFFSET)
+	  relocation = phys_addr;
+	  if ((e_flags & E_M68HC11_XGATE_RAMOFFSET)
 	      && (relocation >= 0x2000))
 	    relocation += 0xc000; /* HARDCODED RAM offset for XGATE.  */
 
-          /* Fetch 16 bit value including low byte in previous insn.  */
-          val = (bfd_get_8 (input_bfd, (bfd_byte*) contents + rel->r_offset) << 8)
+	  /* Fetch 16 bit value including low byte in previous insn.  */
+	  val = (bfd_get_8 (input_bfd, (bfd_byte*) contents + rel->r_offset) << 8)
 	    | bfd_get_8 (input_bfd, (bfd_byte*) contents + rel->r_offset - 2);
 
-          /* Add on value to preserve carry, then write zero to high byte.  */
-          relocation += val;
+	  /* Add on value to preserve carry, then write zero to high byte.  */
+	  relocation += val;
 
-          /* Write out top byte.  */
-          bfd_put_8 (input_bfd, (relocation >> 8) & 0xff,
+	  /* Write out top byte.  */
+	  bfd_put_8 (input_bfd, (relocation >> 8) & 0xff,
 		     (bfd_byte*) contents + rel->r_offset);
 
-          /* Write out low byte to previous instruction.  */
-          bfd_put_8 (input_bfd, relocation & 0xff,
+	  /* Write out low byte to previous instruction.  */
+	  bfd_put_8 (input_bfd, relocation & 0xff,
 		     (bfd_byte*) contents + rel->r_offset - 2);
 
-          /* Mark as relocation completed.  */
-          r = bfd_reloc_ok;
-          r_type = R_M68HC11_NONE;
-          break;
-
-        /* The HI8 and LO8 relocs are generated by %hi(expr) %lo(expr)
-           assembler directives. %hi does not support carry.  */
-        case R_M68HC11_HI8:
-        case R_M68HC11_LO8:
-          relocation = phys_addr;
-          break;
-
-        case R_M68HC11_24:
-          /* Reloc used by 68HC12 call instruction.  */
-          bfd_put_16 (input_bfd, phys_addr,
-                      (bfd_byte*) contents + rel->r_offset);
-          bfd_put_8 (input_bfd, phys_page,
-                     (bfd_byte*) contents + rel->r_offset + 2);
-          r = bfd_reloc_ok;
-          r_type = R_M68HC11_NONE;
-          break;
-
-        case R_M68HC11_NONE:
-          r = bfd_reloc_ok;
-          break;
-
-        case R_M68HC11_LO16:
-          /* Reloc generated by %addr(expr) gas to obtain the
-             address as mapped in the memory bank window.  */
-          relocation = phys_addr;
-          break;
-
-        case R_M68HC11_PAGE:
-          /* Reloc generated by %page(expr) gas to obtain the
-             page number associated with the address.  */
-          relocation = phys_page;
-          break;
-
-        case R_M68HC11_16:
-          /* Get virtual address of instruction having the relocation.  */
-          if (is_far)
-            {
-              msg = _("Reference to the far symbol `%s' using a wrong "
-                      "relocation may result in incorrect execution");
-              buf = xmalloc (strlen (msg) + strlen (name) + 10);
-              sprintf (buf, msg, name);
+	  /* Mark as relocation completed.  */
+	  r = bfd_reloc_ok;
+	  r_type = R_M68HC11_NONE;
+	  break;
+
+	/* The HI8 and LO8 relocs are generated by %hi(expr) %lo(expr)
+	   assembler directives. %hi does not support carry.  */
+	case R_M68HC11_HI8:
+	case R_M68HC11_LO8:
+	  relocation = phys_addr;
+	  break;
+
+	case R_M68HC11_24:
+	  /* Reloc used by 68HC12 call instruction.  */
+	  bfd_put_16 (input_bfd, phys_addr,
+		      (bfd_byte*) contents + rel->r_offset);
+	  bfd_put_8 (input_bfd, phys_page,
+		     (bfd_byte*) contents + rel->r_offset + 2);
+	  r = bfd_reloc_ok;
+	  r_type = R_M68HC11_NONE;
+	  break;
+
+	case R_M68HC11_NONE:
+	  r = bfd_reloc_ok;
+	  break;
+
+	case R_M68HC11_LO16:
+	  /* Reloc generated by %addr(expr) gas to obtain the
+	     address as mapped in the memory bank window.  */
+	  relocation = phys_addr;
+	  break;
+
+	case R_M68HC11_PAGE:
+	  /* Reloc generated by %page(expr) gas to obtain the
+	     page number associated with the address.  */
+	  relocation = phys_page;
+	  break;
+
+	case R_M68HC11_16:
+	  /* Get virtual address of instruction having the relocation.  */
+	  if (is_far)
+	    {
+	      msg = _("Reference to the far symbol `%s' using a wrong "
+		      "relocation may result in incorrect execution");
+	      buf = xmalloc (strlen (msg) + strlen (name) + 10);
+	      sprintf (buf, msg, name);
 
 	      (*info->callbacks->warning)
 		(info, buf, name, input_bfd, NULL, rel->r_offset);
 	      free (buf);
-            }
+	    }
 
-          /* Get virtual address of instruction having the relocation.  */
-          insn_addr = input_section->output_section->vma
-            + input_section->output_offset
-            + rel->r_offset;
+	  /* Get virtual address of instruction having the relocation.  */
+	  insn_addr = input_section->output_section->vma
+	    + input_section->output_offset
+	    + rel->r_offset;
 
-          insn_page = m68hc11_phys_page (pinfo, insn_addr);
+	  insn_page = m68hc11_phys_page (pinfo, insn_addr);
 
-         /* If we are linking an S12 instruction against an XGATE symbol, we
-            need to change the offset of the symbol value so that it's correct
+	 /* If we are linking an S12 instruction against an XGATE symbol, we
+	    need to change the offset of the symbol value so that it's correct
 	    from the S12's perspective.  */
-          if (is_xgate_symbol)
+	  if (is_xgate_symbol)
 	    {
 	      /* The ram in the global space is mapped to 0x2000 in the 16-bit
 		 address space for S12 and 0xE000 in the 16-bit address space
@@ -1163,92 +1159,92 @@ elf32_m68hc11_relocate_section (bfd *out
 		}
 	    }
 
-          if (m68hc11_addr_is_banked (pinfo, relocation + rel->r_addend)
-              && m68hc11_addr_is_banked (pinfo, insn_addr)
-              && phys_page != insn_page && !(e_flags & E_M68HC11_NO_BANK_WARNING))
-            {
+	  if (m68hc11_addr_is_banked (pinfo, relocation + rel->r_addend)
+	      && m68hc11_addr_is_banked (pinfo, insn_addr)
+	      && phys_page != insn_page && !(e_flags & E_M68HC11_NO_BANK_WARNING))
+	    {
 	      /* xgettext:c-format */
-              msg = _("banked address [%lx:%04lx] (%lx) is not in the same bank "
-                      "as current banked address [%lx:%04lx] (%lx)");
-              buf = xmalloc (strlen (msg) + 128);
-              sprintf (buf, msg, phys_page, phys_addr,
-                       (long) (relocation + rel->r_addend),
-                       insn_page, m68hc11_phys_addr (pinfo, insn_addr),
-                       (long) (insn_addr));
+	      msg = _("banked address [%lx:%04lx] (%lx) is not in the same bank "
+		      "as current banked address [%lx:%04lx] (%lx)");
+	      buf = xmalloc (strlen (msg) + 128);
+	      sprintf (buf, msg, phys_page, phys_addr,
+		       (long) (relocation + rel->r_addend),
+		       insn_page, m68hc11_phys_addr (pinfo, insn_addr),
+		       (long) (insn_addr));
 	      (*info->callbacks->warning) (info, buf, name, input_bfd,
 					   input_section, rel->r_offset);
 	      free (buf);
-              break;
-            }
+	      break;
+	    }
 
-          if (phys_page != 0 && insn_page == 0)
-            {
+	  if (phys_page != 0 && insn_page == 0)
+	    {
 	      /* xgettext:c-format */
-              msg = _("reference to a banked address [%lx:%04lx] in the "
-                      "normal address space at %04lx");
-              buf = xmalloc (strlen (msg) + 128);
-              sprintf (buf, msg, phys_page, phys_addr, insn_addr);
+	      msg = _("reference to a banked address [%lx:%04lx] in the "
+		      "normal address space at %04lx");
+	      buf = xmalloc (strlen (msg) + 128);
+	      sprintf (buf, msg, phys_page, phys_addr, insn_addr);
 	      (*info->callbacks->warning) (info, buf, name, input_bfd,
 					   input_section, insn_addr);
 	      free (buf);
-              relocation = phys_addr;
-              break;
-            }
-
-          /* If this is a banked address use the phys_addr so that
-             we stay in the banked window.  */
-          if (m68hc11_addr_is_banked (pinfo, relocation + rel->r_addend))
-            relocation = phys_addr;
-          break;
-        }
+	      relocation = phys_addr;
+	      break;
+	    }
+
+	  /* If this is a banked address use the phys_addr so that
+	     we stay in the banked window.  */
+	  if (m68hc11_addr_is_banked (pinfo, relocation + rel->r_addend))
+	    relocation = phys_addr;
+	  break;
+	}
 
       /* If we are linking an XGATE instruction against an S12 symbol, we
-         need to change the offset of the symbol value so that it's correct
+	 need to change the offset of the symbol value so that it's correct
 	 from the XGATE's perspective.  */
       if (!strcmp (howto->name, "R_XGATE_IMM8_LO")
-          || !strcmp (howto->name, "R_XGATE_IMM8_HI"))
-        {
-          /* We can only offset S12 addresses that lie within the non-paged
-             area of RAM.  */
-          if (!is_xgate_symbol && !is_section_symbol)
-            {
-              /* The ram in the global space is mapped to 0x2000 and stops at
-                 0x4000 in the 16-bit address space for S12 and 0xE000 in the
-                 16-bit address space for XGATE.  */
-              if (relocation >= 0x2000 && relocation < 0x4000)
-                 /* We offset the address by the difference
-                   between these two mappings.  */
-                relocation += 0xC000;
-              else
-                {
-                  /* Get virtual address of instruction having the relocation.  */
-                  insn_addr = input_section->output_section->vma
-                      + input_section->output_offset + rel->r_offset;
-
-                  msg = _("S12 address (%lx) is not within shared RAM"
-                      "(0x2000-0x4000), therefore you must manually "
-                      "offset the address in your code");
-                  buf = xmalloc (strlen (msg) + 128);
-                  sprintf (buf, msg, phys_addr);
+	  || !strcmp (howto->name, "R_XGATE_IMM8_HI"))
+	{
+	  /* We can only offset S12 addresses that lie within the non-paged
+	     area of RAM.  */
+	  if (!is_xgate_symbol && !is_section_symbol)
+	    {
+	      /* The ram in the global space is mapped to 0x2000 and stops at
+		 0x4000 in the 16-bit address space for S12 and 0xE000 in the
+		 16-bit address space for XGATE.  */
+	      if (relocation >= 0x2000 && relocation < 0x4000)
+		 /* We offset the address by the difference
+		   between these two mappings.  */
+		relocation += 0xC000;
+	      else
+		{
+		  /* Get virtual address of instruction having the relocation.  */
+		  insn_addr = input_section->output_section->vma
+		      + input_section->output_offset + rel->r_offset;
+
+		  msg = _("S12 address (%lx) is not within shared RAM"
+		      "(0x2000-0x4000), therefore you must manually "
+		      "offset the address in your code");
+		  buf = xmalloc (strlen (msg) + 128);
+		  sprintf (buf, msg, phys_addr);
 		  (*info->callbacks->warning) (info, buf, name, input_bfd,
 					       input_section, insn_addr);
 		  free (buf);
-                  break;
-                }
-            }
-        }
+		  break;
+		}
+	    }
+	}
 
       if (r_type != R_M68HC11_NONE)
-        {
-          if ((r_type == R_M68HC12_PCREL_9) || (r_type == R_M68HC12_PCREL_10))
-            r = _bfd_final_link_relocate (howto, input_bfd, input_section,
-                                      contents, rel->r_offset,
-                                      relocation - 2, rel->r_addend);
-          else
-            r = _bfd_final_link_relocate (howto, input_bfd, input_section,
-                                          contents, rel->r_offset,
-                                          relocation, rel->r_addend);
-        }
+	{
+	  if ((r_type == R_M68HC12_PCREL_9) || (r_type == R_M68HC12_PCREL_10))
+	    r = _bfd_final_link_relocate (howto, input_bfd, input_section,
+				      contents, rel->r_offset,
+				      relocation - 2, rel->r_addend);
+	  else
+	    r = _bfd_final_link_relocate (howto, input_bfd, input_section,
+					  contents, rel->r_offset,
+					  relocation, rel->r_addend);
+	}
 
       if (r != bfd_reloc_ok)
 	{
@@ -1353,14 +1349,14 @@ _bfd_m68hc11_elf_merge_private_bfd_data 
     {
       _bfd_error_handler
 	(_("%B: linking files compiled for 16-bit integers (-mshort) "
-           "and others for 32-bit integers"), ibfd);
+	   "and others for 32-bit integers"), ibfd);
       ok = FALSE;
     }
   if ((new_flags & E_M68HC11_F64) != (old_flags & E_M68HC11_F64))
     {
       _bfd_error_handler
 	(_("%B: linking files compiled for 32-bit double (-fshort-double) "
-           "and others for 64-bit double"), ibfd);
+	   "and others for 64-bit double"), ibfd);
       ok = FALSE;
     }
 
@@ -1369,11 +1365,11 @@ _bfd_m68hc11_elf_merge_private_bfd_data 
     {
       _bfd_error_handler
 	(_("%B: linking files compiled for HCS12 with "
-           "others compiled for HC12"), ibfd);
+	   "others compiled for HC12"), ibfd);
       ok = FALSE;
     }
   new_flags = ((new_flags & ~EF_M68HC11_MACH_MASK)
-               | (EF_M68HC11_MERGE_MACH (new_flags, old_flags)));
+	       | (EF_M68HC11_MERGE_MACH (new_flags, old_flags)));
 
   elf_elfheader (obfd)->e_flags = new_flags;
 
@@ -1385,8 +1381,8 @@ _bfd_m68hc11_elf_merge_private_bfd_data 
     {
       _bfd_error_handler
 	/* xgettext:c-format */
-	(_("%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"),
-	 ibfd, (unsigned long) new_flags, (unsigned long) old_flags);
+	(_("%B: uses different e_flags (%#x) fields than previous modules (%#x)"),
+	 ibfd, new_flags, old_flags);
       ok = FALSE;
     }
 
@@ -1443,7 +1439,7 @@ _bfd_m68hc11_elf_print_private_bfd_data 
 }
 
 static void scan_sections_for_abi (bfd *abfd ATTRIBUTE_UNUSED,
-                                   asection *asect, void *arg)
+				   asection *asect, void *arg)
 {
   struct m68hc11_scan_param* p = (struct m68hc11_scan_param*) arg;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m68hc1x.h ./bfd/elf32-m68hc1x.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m68hc1x.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-m68hc1x.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Motorola 68HC11/68HC12-specific support for 32-bit ELF
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
    Contributed by Stephane Carrez (stcarrez@nerim.fr)
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -75,13 +75,13 @@ struct elf32_m68hc11_stub_hash_entry
    These parameters are obtained from the symbol table by looking
    at the following:
 
-   __bank_start         Symbol marking the start of memory bank window
-                        (bank_physical)
-   __bank_virtual       Logical address of symbols for which the transformation
-                        must be computed
-   __bank_page_size     Size in bytes of page size (this is *NOT* the memory
-                        bank window size and the window size is always
-                        less or equal to the page size)
+   __bank_start		Symbol marking the start of memory bank window
+			(bank_physical)
+   __bank_virtual	Logical address of symbols for which the transformation
+			must be computed
+   __bank_page_size	Size in bytes of page size (this is *NOT* the memory
+			bank window size and the window size is always
+			less or equal to the page size)
 
    For 68HC12, the window is at 0x8000 and the page size is 16K (full window).
    For 68HC11 this is board specific (implemented by external hardware).  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m68k.c ./bfd/elf32-m68k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m68k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-m68k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Motorola 68k series support for 32-bit ELF
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,29 +31,29 @@ elf_m68k_discard_copies (struct elf_link
 
 static reloc_howto_type howto_table[] =
 {
-  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),
-  HOWTO(R_68K_PC32,       0, 2,32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PC32",      FALSE, 0, 0xffffffff,TRUE),
-  HOWTO(R_68K_PC16,       0, 1,16, TRUE, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PC16",      FALSE, 0, 0x0000ffff,TRUE),
-  HOWTO(R_68K_PC8,        0, 0, 8, TRUE, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PC8",       FALSE, 0, 0x000000ff,TRUE),
-  HOWTO(R_68K_GOT32,      0, 2,32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32",     FALSE, 0, 0xffffffff,TRUE),
-  HOWTO(R_68K_GOT16,      0, 1,16, TRUE, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_GOT16",     FALSE, 0, 0x0000ffff,TRUE),
-  HOWTO(R_68K_GOT8,       0, 0, 8, TRUE, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_GOT8",      FALSE, 0, 0x000000ff,TRUE),
-  HOWTO(R_68K_GOT32O,     0, 2,32, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32O",    FALSE, 0, 0xffffffff,FALSE),
-  HOWTO(R_68K_GOT16O,     0, 1,16, FALSE,0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_GOT16O",    FALSE, 0, 0x0000ffff,FALSE),
-  HOWTO(R_68K_GOT8O,      0, 0, 8, FALSE,0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_GOT8O",     FALSE, 0, 0x000000ff,FALSE),
-  HOWTO(R_68K_PLT32,      0, 2,32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32",     FALSE, 0, 0xffffffff,TRUE),
-  HOWTO(R_68K_PLT16,      0, 1,16, TRUE, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PLT16",     FALSE, 0, 0x0000ffff,TRUE),
-  HOWTO(R_68K_PLT8,       0, 0, 8, TRUE, 0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PLT8",      FALSE, 0, 0x000000ff,TRUE),
-  HOWTO(R_68K_PLT32O,     0, 2,32, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32O",    FALSE, 0, 0xffffffff,FALSE),
-  HOWTO(R_68K_PLT16O,     0, 1,16, FALSE,0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PLT16O",    FALSE, 0, 0x0000ffff,FALSE),
-  HOWTO(R_68K_PLT8O,      0, 0, 8, FALSE,0, complain_overflow_signed,   bfd_elf_generic_reloc, "R_68K_PLT8O",     FALSE, 0, 0x000000ff,FALSE),
-  HOWTO(R_68K_COPY,       0, 0, 0, FALSE,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_COPY",      FALSE, 0, 0xffffffff,FALSE),
-  HOWTO(R_68K_GLOB_DAT,   0, 2,32, FALSE,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_GLOB_DAT",  FALSE, 0, 0xffffffff,FALSE),
-  HOWTO(R_68K_JMP_SLOT,   0, 2,32, FALSE,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_JMP_SLOT",  FALSE, 0, 0xffffffff,FALSE),
-  HOWTO(R_68K_RELATIVE,   0, 2,32, FALSE,0, complain_overflow_dont,     bfd_elf_generic_reloc, "R_68K_RELATIVE",  FALSE, 0, 0xffffffff,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),
+  HOWTO(R_68K_PC32,	  0, 2,32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PC32",	  FALSE, 0, 0xffffffff,TRUE),
+  HOWTO(R_68K_PC16,	  0, 1,16, TRUE, 0, complain_overflow_signed,	bfd_elf_generic_reloc, "R_68K_PC16",	  FALSE, 0, 0x0000ffff,TRUE),
+  HOWTO(R_68K_PC8,	  0, 0, 8, TRUE, 0, complain_overflow_signed,	bfd_elf_generic_reloc, "R_68K_PC8",	  FALSE, 0, 0x000000ff,TRUE),
+  HOWTO(R_68K_GOT32,	  0, 2,32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32",	  FALSE, 0, 0xffffffff,TRUE),
+  HOWTO(R_68K_GOT16,	  0, 1,16, TRUE, 0, complain_overflow_signed,	bfd_elf_generic_reloc, "R_68K_GOT16",	  FALSE, 0, 0x0000ffff,TRUE),
+  HOWTO(R_68K_GOT8,	  0, 0, 8, TRUE, 0, complain_overflow_signed,	bfd_elf_generic_reloc, "R_68K_GOT8",	  FALSE, 0, 0x000000ff,TRUE),
+  HOWTO(R_68K_GOT32O,	  0, 2,32, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32O",	  FALSE, 0, 0xffffffff,FALSE),
+  HOWTO(R_68K_GOT16O,	  0, 1,16, FALSE,0, complain_overflow_signed,	bfd_elf_generic_reloc, "R_68K_GOT16O",	  FALSE, 0, 0x0000ffff,FALSE),
+  HOWTO(R_68K_GOT8O,	  0, 0, 8, FALSE,0, complain_overflow_signed,	bfd_elf_generic_reloc, "R_68K_GOT8O",	  FALSE, 0, 0x000000ff,FALSE),
+  HOWTO(R_68K_PLT32,	  0, 2,32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32",	  FALSE, 0, 0xffffffff,TRUE),
+  HOWTO(R_68K_PLT16,	  0, 1,16, TRUE, 0, complain_overflow_signed,	bfd_elf_generic_reloc, "R_68K_PLT16",	  FALSE, 0, 0x0000ffff,TRUE),
+  HOWTO(R_68K_PLT8,	  0, 0, 8, TRUE, 0, complain_overflow_signed,	bfd_elf_generic_reloc, "R_68K_PLT8",	  FALSE, 0, 0x000000ff,TRUE),
+  HOWTO(R_68K_PLT32O,	  0, 2,32, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32O",	  FALSE, 0, 0xffffffff,FALSE),
+  HOWTO(R_68K_PLT16O,	  0, 1,16, FALSE,0, complain_overflow_signed,	bfd_elf_generic_reloc, "R_68K_PLT16O",	  FALSE, 0, 0x0000ffff,FALSE),
+  HOWTO(R_68K_PLT8O,	  0, 0, 8, FALSE,0, complain_overflow_signed,	bfd_elf_generic_reloc, "R_68K_PLT8O",	  FALSE, 0, 0x000000ff,FALSE),
+  HOWTO(R_68K_COPY,	  0, 0, 0, FALSE,0, complain_overflow_dont,	bfd_elf_generic_reloc, "R_68K_COPY",	  FALSE, 0, 0xffffffff,FALSE),
+  HOWTO(R_68K_GLOB_DAT,	  0, 2,32, FALSE,0, complain_overflow_dont,	bfd_elf_generic_reloc, "R_68K_GLOB_DAT",  FALSE, 0, 0xffffffff,FALSE),
+  HOWTO(R_68K_JMP_SLOT,	  0, 2,32, FALSE,0, complain_overflow_dont,	bfd_elf_generic_reloc, "R_68K_JMP_SLOT",  FALSE, 0, 0xffffffff,FALSE),
+  HOWTO(R_68K_RELATIVE,	  0, 2,32, FALSE,0, complain_overflow_dont,	bfd_elf_generic_reloc, "R_68K_RELATIVE",  FALSE, 0, 0xffffffff,FALSE),
   /* GNU extension to record C++ vtable hierarchy.  */
   HOWTO (R_68K_GNU_VTINHERIT,	/* type */
 	 0,			/* rightshift */
@@ -519,13 +519,13 @@ static const struct elf_m68k_plt_info el
 
 static const bfd_byte elf_isab_plt0_entry[ISAB_PLT_ENTRY_SIZE] =
 {
-  0x20, 0x3c,             /* move.l #offset,%d0 */
-  0, 0, 0, 0,             /* + (.got + 4) - . */
+  0x20, 0x3c,		  /* move.l #offset,%d0 */
+  0, 0, 0, 0,		  /* + (.got + 4) - . */
   0x2f, 0x3b, 0x08, 0xfa, /* move.l (-6,%pc,%d0:l),-(%sp) */
-  0x20, 0x3c,             /* move.l #offset,%d0 */
-  0, 0, 0, 0,             /* + (.got + 8) - . */
+  0x20, 0x3c,		  /* move.l #offset,%d0 */
+  0, 0, 0, 0,		  /* + (.got + 8) - . */
   0x20, 0x7b, 0x08, 0xfa, /* move.l (-6,%pc,%d0:l), %a0 */
-  0x4e, 0xd0,             /* jmp (%a0) */
+  0x4e, 0xd0,		  /* jmp (%a0) */
   0x4e, 0x71		  /* nop */
 };
 
@@ -533,14 +533,14 @@ static const bfd_byte elf_isab_plt0_entr
 
 static const bfd_byte elf_isab_plt_entry[ISAB_PLT_ENTRY_SIZE] =
 {
-  0x20, 0x3c,             /* move.l #offset,%d0 */
-  0, 0, 0, 0,             /* + (.got.plt entry) - . */
+  0x20, 0x3c,		  /* move.l #offset,%d0 */
+  0, 0, 0, 0,		  /* + (.got.plt entry) - . */
   0x20, 0x7b, 0x08, 0xfa, /* move.l (-6,%pc,%d0:l), %a0 */
-  0x4e, 0xd0,             /* jmp (%a0) */
-  0x2f, 0x3c,             /* move.l #offset,-(%sp) */
-  0, 0, 0, 0,             /* + reloc index */
-  0x60, 0xff,             /* bra.l .plt */
-  0, 0, 0, 0              /* + .plt - . */
+  0x4e, 0xd0,		  /* jmp (%a0) */
+  0x2f, 0x3c,		  /* move.l #offset,-(%sp) */
+  0, 0, 0, 0,		  /* + reloc index */
+  0x60, 0xff,		  /* bra.l .plt */
+  0, 0, 0, 0		  /* + .plt - . */
 };
 
 static const struct elf_m68k_plt_info elf_isab_plt_info =
@@ -575,7 +575,7 @@ static const bfd_byte elf_isac_plt_entry
   0x2f, 0x3c,		  /* move.l #offset,-(%sp) */
   0, 0, 0, 0,		  /* replaced with offset into relocation table */
   0x61, 0xff,		  /* bsr.l .plt */
-  0, 0, 0, 0 		  /* replaced with .plt - . */
+  0, 0, 0, 0		  /* replaced with .plt - . */
 };
 
 static const struct elf_m68k_plt_info elf_isac_plt_info =
@@ -590,23 +590,23 @@ static const struct elf_m68k_plt_info el
 static const bfd_byte elf_cpu32_plt0_entry[CPU32_PLT_ENTRY_SIZE] =
 {
   0x2f, 0x3b, 0x01, 0x70, /* move.l (%pc,addr),-(%sp) */
-  0, 0, 0, 2,             /* + (.got + 4) - . */
+  0, 0, 0, 2,		  /* + (.got + 4) - . */
   0x22, 0x7b, 0x01, 0x70, /* moveal %pc@(0xc), %a1 */
-  0, 0, 0, 2,             /* + (.got + 8) - . */
-  0x4e, 0xd1,             /* jmp %a1@ */
-  0, 0, 0, 0,             /* pad out to 24 bytes.  */
+  0, 0, 0, 2,		  /* + (.got + 8) - . */
+  0x4e, 0xd1,		  /* jmp %a1@ */
+  0, 0, 0, 0,		  /* pad out to 24 bytes.  */
   0, 0
 };
 
 static const bfd_byte elf_cpu32_plt_entry[CPU32_PLT_ENTRY_SIZE] =
 {
   0x22, 0x7b, 0x01, 0x70,  /* moveal %pc@(0xc), %a1 */
-  0, 0, 0, 2,              /* + (.got.plt entry) - . */
-  0x4e, 0xd1,              /* jmp %a1@ */
-  0x2f, 0x3c,              /* move.l #offset,-(%sp) */
-  0, 0, 0, 0,              /* + reloc index */
-  0x60, 0xff,              /* bra.l .plt */
-  0, 0, 0, 0,              /* + .plt - . */
+  0, 0, 0, 2,		   /* + (.got.plt entry) - . */
+  0x4e, 0xd1,		   /* jmp %a1@ */
+  0x2f, 0x3c,		   /* move.l #offset,-(%sp) */
+  0, 0, 0, 0,		   /* + reloc index */
+  0x60, 0xff,		   /* bra.l .plt */
+  0, 0, 0, 0,		   /* + .plt - . */
   0, 0
 };
 
@@ -695,15 +695,14 @@ struct elf_m68k_got_entry
   {
     struct
     {
-      /* Number of times this entry is referenced.  It is used to
-	 filter out unnecessary GOT slots in elf_m68k_gc_sweep_hook.  */
+      /* Number of times this entry is referenced.  */
       bfd_vma refcount;
     } s1;
 
     struct
     {
       /* Offset from the start of .got section.  To calculate offset relative
-	 to GOT pointer one should substract got->offset from this value.  */
+	 to GOT pointer one should subtract got->offset from this value.  */
       bfd_vma offset;
 
       /* Pointer to the next GOT entry for this global symbol.
@@ -1606,27 +1605,6 @@ elf_m68k_update_got_entry_type (struct e
   return was;
 }
 
-/* Update GOT counters when removing an entry of type TYPE.  */
-
-static void
-elf_m68k_remove_got_entry_type (struct elf_m68k_got *got,
-				enum elf_m68k_reloc_type type)
-{
-  enum elf_m68k_got_offset_size os;
-  bfd_vma n_slots;
-
-  n_slots = elf_m68k_reloc_got_n_slots (type);
-
-  /* Decrese counter of slots with offset size corresponding to TYPE
-     and all greater offset sizes.  */
-  for (os = elf_m68k_reloc_got_offset_size (type); os <= R_32; ++os)
-    {
-      BFD_ASSERT (got->n_slots[os] >= n_slots);
-
-      got->n_slots[os] -= n_slots;
-    }
-}
-
 /* Add new or update existing entry to GOT.
    H, ABFD, TYPE and SYMNDX is data for the entry.
    INFO is a context where memory should be allocated.  */
@@ -2353,7 +2331,7 @@ elf_m68k_partition_multi_got_1 (void **_
   if (diff != NULL)
     elf_m68k_clear_got (diff);
 
-  return arg->error_p == FALSE ? 1 : 0;
+  return !arg->error_p;
 }
 
 /* Helper function to build symndx2h mapping.  */
@@ -2455,52 +2433,6 @@ elf_m68k_partition_multi_got (struct bfd
   return TRUE;
 }
 
-/* Specialized version of elf_m68k_get_got_entry that returns pointer
-   to hashtable slot, thus allowing removal of entry via
-   elf_m68k_remove_got_entry.  */
-
-static struct elf_m68k_got_entry **
-elf_m68k_find_got_entry_ptr (struct elf_m68k_got *got,
-			     struct elf_m68k_got_entry_key *key)
-{
-  void **ptr;
-  struct elf_m68k_got_entry entry_;
-  struct elf_m68k_got_entry **entry_ptr;
-
-  entry_.key_ = *key;
-  ptr = htab_find_slot (got->entries, &entry_, NO_INSERT);
-  BFD_ASSERT (ptr != NULL);
-
-  entry_ptr = (struct elf_m68k_got_entry **) ptr;
-
-  return entry_ptr;
-}
-
-/* Remove entry pointed to by ENTRY_PTR from GOT.  */
-
-static void
-elf_m68k_remove_got_entry (struct elf_m68k_got *got,
-			   struct elf_m68k_got_entry **entry_ptr)
-{
-  struct elf_m68k_got_entry *entry;
-
-  entry = *entry_ptr;
-
-  /* Check that offsets have not been finalized yet.  */
-  BFD_ASSERT (got->offset == (bfd_vma) -1);
-  /* Check that this entry is indeed unused.  */
-  BFD_ASSERT (entry->u.s1.refcount == 0);
-
-  elf_m68k_remove_got_entry_type (got, entry->key_.type);
-
-  if (entry->key_.bfd != NULL)
-    got->local_n_slots -= elf_m68k_reloc_got_n_slots (entry->key_.type);
-
-  BFD_ASSERT (got->n_slots[R_32] >= got->local_n_slots);
-
-  htab_clear_slot (got->entries, (void **) entry_ptr);
-}
-
 /* Copy any information related to dynamic linking from a pre-existing
    symbol to a newly created symbol.  Also called to copy flags and
    other back-end info to a weakdef, in which case the symbol is not
@@ -2587,10 +2519,6 @@ elf_m68k_check_relocs (bfd *abfd,
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
@@ -2682,10 +2610,10 @@ elf_m68k_check_relocs (bfd *abfd,
 	case R_68K_PLT32:
 	  /* This symbol requires a procedure linkage table entry.  We
 	     actually build the entry in adjust_dynamic_symbol,
-             because this might be a case of linking PIC code which is
-             never referenced by a dynamic object, in which case we
-             don't need to generate a procedure linkage table entry
-             after all.  */
+	     because this might be a case of linking PIC code which is
+	     never referenced by a dynamic object, in which case we
+	     don't need to generate a procedure linkage table entry
+	     after all.  */
 
 	  /* If this is a local symbol, we resolve it directly without
 	     creating a procedure linkage table entry.  */
@@ -2773,7 +2701,9 @@ elf_m68k_check_relocs (bfd *abfd,
 
 	  /* If we are creating a shared library, we need to copy the
 	     reloc into the shared library.  */
-	  if (bfd_link_pic (info))
+	  if (bfd_link_pic (info)
+	      && (h == NULL
+		  || !UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)))
 	    {
 	      /* When creating a shared object, we must copy these
 		 reloc types into the output file.  We create a reloc
@@ -2903,131 +2833,6 @@ elf_m68k_gc_mark_hook (asection *sec,
 
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
-
-/* Update the got entry reference counts for the section being removed.  */
-
-static bfd_boolean
-elf_m68k_gc_sweep_hook (bfd *abfd,
-			struct bfd_link_info *info,
-			asection *sec,
-			const Elf_Internal_Rela *relocs)
-{
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  const Elf_Internal_Rela *rel, *relend;
-  bfd *dynobj;
-  struct elf_m68k_got *got;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  dynobj = elf_hash_table (info)->dynobj;
-  if (dynobj == NULL)
-    return TRUE;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  sym_hashes = elf_sym_hashes (abfd);
-  got = NULL;
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	}
-
-      switch (ELF32_R_TYPE (rel->r_info))
-	{
-	case R_68K_GOT8:
-	case R_68K_GOT16:
-	case R_68K_GOT32:
-	  if (h != NULL
-	      && strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
-	    break;
-
-	  /* FALLTHRU */
-	case R_68K_GOT8O:
-	case R_68K_GOT16O:
-	case R_68K_GOT32O:
-	  /* Fall through.  */
-
-	  /* TLS relocations.  */
-	case R_68K_TLS_GD8:
-	case R_68K_TLS_GD16:
-	case R_68K_TLS_GD32:
-	case R_68K_TLS_LDM8:
-	case R_68K_TLS_LDM16:
-	case R_68K_TLS_LDM32:
-	case R_68K_TLS_IE8:
-	case R_68K_TLS_IE16:
-	case R_68K_TLS_IE32:
-
-	case R_68K_TLS_TPREL32:
-	case R_68K_TLS_DTPREL32:
-
-	  if (got == NULL)
-	    {
-	      got = elf_m68k_get_bfd2got_entry (elf_m68k_multi_got (info),
-						abfd, MUST_FIND, NULL)->got;
-	      BFD_ASSERT (got != NULL);
-	    }
-
-	  {
-	    struct elf_m68k_got_entry_key key_;
-	    struct elf_m68k_got_entry **got_entry_ptr;
-	    struct elf_m68k_got_entry *got_entry;
-
-	    elf_m68k_init_got_entry_key (&key_, h, abfd, r_symndx,
-					 ELF32_R_TYPE (rel->r_info));
-	    got_entry_ptr = elf_m68k_find_got_entry_ptr (got, &key_);
-
-	    got_entry = *got_entry_ptr;
-
-	    if (got_entry->u.s1.refcount > 0)
-	      {
-		--got_entry->u.s1.refcount;
-
-		if (got_entry->u.s1.refcount == 0)
-		  /* We don't need the .got entry any more.  */
-		  elf_m68k_remove_got_entry (got, got_entry_ptr);
-	      }
-	  }
-	  break;
-
-	case R_68K_PLT8:
-	case R_68K_PLT16:
-	case R_68K_PLT32:
-	case R_68K_PLT8O:
-	case R_68K_PLT16O:
-	case R_68K_PLT32O:
-	case R_68K_PC8:
-	case R_68K_PC16:
-	case R_68K_PC32:
-	case R_68K_8:
-	case R_68K_16:
-	case R_68K_32:
-	  if (h != NULL)
-	    {
-	      if (h->plt.refcount > 0)
-		--h->plt.refcount;
-	    }
-	  break;
-
-	default:
-	  break;
-	}
-    }
-
-  return TRUE;
-}
 
 /* Return the type of PLT associated with OUTPUT_BFD.  */
 
@@ -3082,7 +2887,7 @@ elf_m68k_adjust_dynamic_symbol (struct b
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
 	      && (h->needs_plt
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -3094,8 +2899,9 @@ elf_m68k_adjust_dynamic_symbol (struct b
       || h->needs_plt)
     {
       if ((h->plt.refcount <= 0
-           || SYMBOL_CALLS_LOCAL (info, h)
-	   || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+	   || SYMBOL_CALLS_LOCAL (info, h)
+	   || ((ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+		|| UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	       && h->root.type == bfd_link_hash_undefweak))
 	  /* We must always create the plt entry if it was referenced
 	     by a PLTxxO relocation.  In this case we already recorded
@@ -3166,12 +2972,12 @@ elf_m68k_adjust_dynamic_symbol (struct b
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -3622,6 +3428,7 @@ elf_m68k_relocate_section (bfd *output_b
       bfd_vma relocation;
       bfd_boolean unresolved_reloc;
       bfd_reloc_status_type r;
+      bfd_boolean resolved_to_zero;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       if (r_type < 0 || r_type >= (int) R_68K_max)
@@ -3661,6 +3468,9 @@ elf_m68k_relocate_section (bfd *output_b
       if (bfd_link_relocatable (info))
 	continue;
 
+      resolved_to_zero = (h != NULL
+			  && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h));
+
       switch (r_type)
 	{
 	case R_68K_GOT8:
@@ -3785,7 +3595,8 @@ elf_m68k_relocate_section (bfd *output_b
 							  h)
 			|| (bfd_link_pic (info)
 			    && SYMBOL_REFERENCES_LOCAL (info, h))
-			|| (ELF_ST_VISIBILITY (h->other)
+			|| ((ELF_ST_VISIBILITY (h->other)
+			     || resolved_to_zero)
 			    && h->root.type == bfd_link_hash_undefweak))
 		      {
 			/* This is actually a static link, or it is a
@@ -3887,9 +3698,8 @@ elf_m68k_relocate_section (bfd *output_b
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted "
-		   "in shared object"),
-		 input_bfd, input_section, (long) rel->r_offset, howto->name);
+		(_("%B(%A+%#Lx): %s relocation not permitted in shared object"),
+		 input_bfd, input_section, rel->r_offset, howto->name);
 
 	      return FALSE;
 	    }
@@ -3955,7 +3765,8 @@ elf_m68k_relocate_section (bfd *output_b
 	      && r_symndx != STN_UNDEF
 	      && (input_section->flags & SEC_ALLOC) != 0
 	      && (h == NULL
-		  || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		  || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		      && !resolved_to_zero)
 		  || h->root.type != bfd_link_hash_undefweak)
 	      && ((r_type != R_68K_PC8
 		   && r_type != R_68K_PC16
@@ -4052,9 +3863,9 @@ elf_m68k_relocate_section (bfd *output_b
 	      bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 
 	      /* This reloc will be computed at runtime, so there's no
-                 need to do anything now, except for R_68K_32
-                 relocations that have been turned into
-                 R_68K_RELATIVE.  */
+		 need to do anything now, except for R_68K_32
+		 relocations that have been turned into
+		 R_68K_RELATIVE.  */
 	      if (!relocate)
 		continue;
 	    }
@@ -4081,10 +3892,10 @@ elf_m68k_relocate_section (bfd *output_b
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+	    (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
 	     input_bfd,
 	     input_section,
-	     (long) rel->r_offset,
+	     rel->r_offset,
 	     howto->name,
 	     h->root.root.string);
 	  return FALSE;
@@ -4117,12 +3928,12 @@ elf_m68k_relocate_section (bfd *output_b
 	      _bfd_error_handler
 		((sym_type == STT_TLS
 		  /* xgettext:c-format */
-		  ? _("%B(%A+0x%lx): %s used with TLS symbol %s")
+		  ? _("%B(%A+%#Lx): %s used with TLS symbol %s")
 		  /* xgettext:c-format */
-		  : _("%B(%A+0x%lx): %s used with non-TLS symbol %s")),
+		  : _("%B(%A+%#Lx): %s used with non-TLS symbol %s")),
 		 input_bfd,
 		 input_section,
-		 (long) rel->r_offset,
+		 rel->r_offset,
 		 howto->name,
 		 name);
 	    }
@@ -4157,9 +3968,9 @@ elf_m68k_relocate_section (bfd *output_b
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B(%A+0x%lx): reloc against `%s': error %d"),
+		(_("%B(%A+%#Lx): reloc against `%s': error %d"),
 		 input_bfd, input_section,
-		 (long) rel->r_offset, name, (int) r);
+		 rel->r_offset, name, (int) r);
 	      return FALSE;
 	    }
 	}
@@ -4818,14 +4629,13 @@ elf_m68k_add_symbol_hook (bfd *abfd,
 #define elf_backend_finish_dynamic_sections \
 					elf_m68k_finish_dynamic_sections
 #define elf_backend_gc_mark_hook	elf_m68k_gc_mark_hook
-#define elf_backend_gc_sweep_hook	elf_m68k_gc_sweep_hook
 #define elf_backend_copy_indirect_symbol elf_m68k_copy_indirect_symbol
 #define bfd_elf32_bfd_merge_private_bfd_data \
-                                        elf32_m68k_merge_private_bfd_data
+					elf32_m68k_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags \
-                                        elf32_m68k_set_private_flags
+					elf32_m68k_set_private_flags
 #define bfd_elf32_bfd_print_private_bfd_data \
-                                        elf32_m68k_print_private_bfd_data
+					elf32_m68k_print_private_bfd_data
 #define elf_backend_reloc_type_class	elf32_m68k_reloc_type_class
 #define elf_backend_plt_sym_val		elf_m68k_plt_sym_val
 #define elf_backend_object_p		elf32_m68k_object_p
@@ -4842,4 +4652,6 @@ elf_m68k_add_symbol_hook (bfd *abfd,
 #define elf_backend_rela_normal		1
 #define elf_backend_dtrel_excludes_plt	1
 
+#define elf_backend_linux_prpsinfo32_ugid16	TRUE
+
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m88k.c ./bfd/elf32-m88k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-m88k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-m88k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Motorola 88k-specific support for 32-bit ELF
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -30,7 +30,7 @@
 #define TARGET_BIG_NAME		"elf32-m88k"
 #define ELF_ARCH		bfd_arch_m88k
 #define ELF_MACHINE_CODE	EM_88K
-#define ELF_MAXPAGESIZE  	1 /* FIXME: This number is wrong,  It should be the page size in bytes.  */
+#define ELF_MAXPAGESIZE		1 /* FIXME: This number is wrong,  It should be the page size in bytes.  */
 #define bfd_elf32_bfd_reloc_type_lookup bfd_default_reloc_type_lookup
 #define bfd_elf32_bfd_reloc_name_lookup _bfd_norelocs_bfd_reloc_name_lookup
 #define elf_info_to_howto		_bfd_elf_no_info_to_howto
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-mcore.c ./bfd/elf32-mcore.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-mcore.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-mcore.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Motorola MCore specific support for 32-bit ELF
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -68,7 +68,7 @@ mcore_elf_merge_private_bfd_data (bfd *i
 
   if (! elf_flags_init (obfd))
     {
-      	/* First call, no flags set.  */
+      /* First call, no flags set.  */
       elf_flags_init (obfd) = TRUE;
       elf_elfheader (obfd)->e_flags = new_flags;
     }
@@ -117,7 +117,7 @@ static reloc_howto_type mcore_elf_howto_
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont,  /* complain_on_overflow */
-	 NULL,                  /* special_function */
+	 NULL,			/* special_function */
 	 "R_MCORE_NONE",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
@@ -225,43 +225,43 @@ static reloc_howto_type mcore_elf_howto_
 
   /* GNU extension to record C++ vtable hierarchy.  */
   HOWTO (R_MCORE_GNU_VTINHERIT, /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         NULL,                  /* special_function */
-         "R_MCORE_GNU_VTINHERIT", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 NULL,			/* special_function */
+	 "R_MCORE_GNU_VTINHERIT", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage.  */
-  HOWTO (R_MCORE_GNU_VTENTRY,   /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
-         "R_MCORE_GNU_VTENTRY", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_MCORE_GNU_VTENTRY,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 _bfd_elf_rel_vtable_reloc_fn,	/* special_function */
+	 "R_MCORE_GNU_VTENTRY", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_MCORE_RELATIVE,      /* type */
+  HOWTO (R_MCORE_RELATIVE,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_signed, /* complain_on_overflow */
-	 NULL,                  /* special_function */
-	 "R_MCORE_RELATIVE",    /* name */
+	 NULL,			/* special_function */
+	 "R_MCORE_RELATIVE",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
 	 0xffffffff,		/* dst_mask */
@@ -305,9 +305,9 @@ mcore_elf_reloc_type_lookup (bfd * abfd 
     case BFD_RELOC_MCORE_PCREL_IMM4BY2:	     mcore_reloc = R_MCORE_PCRELIMM4BY2; break;
     case BFD_RELOC_32_PCREL:		     mcore_reloc = R_MCORE_PCREL32; break;
     case BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2: mcore_reloc = R_MCORE_PCRELJSR_IMM11BY2; break;
-    case BFD_RELOC_VTABLE_INHERIT:           mcore_reloc = R_MCORE_GNU_VTINHERIT; break;
-    case BFD_RELOC_VTABLE_ENTRY:             mcore_reloc = R_MCORE_GNU_VTENTRY; break;
-    case BFD_RELOC_RVA:                      mcore_reloc = R_MCORE_RELATIVE; break;
+    case BFD_RELOC_VTABLE_INHERIT:	     mcore_reloc = R_MCORE_GNU_VTINHERIT; break;
+    case BFD_RELOC_VTABLE_ENTRY:	     mcore_reloc = R_MCORE_GNU_VTENTRY; break;
+    case BFD_RELOC_RVA:			     mcore_reloc = R_MCORE_RELATIVE; break;
     default:
       return NULL;
     }
@@ -408,10 +408,10 @@ mcore_elf_relocate_section (bfd * output
 
 #ifdef DEBUG
   _bfd_error_handler
-    ("mcore_elf_relocate_section called for %B section %A, %ld relocations%s",
+    ("mcore_elf_relocate_section called for %B section %A, %u relocations%s",
      input_bfd,
      input_section,
-     (long) input_section->reloc_count,
+     input_section->reloc_count,
      (bfd_link_relocatable (info)) ? " (relocatable)" : "");
 #endif
 
@@ -420,17 +420,17 @@ mcore_elf_relocate_section (bfd * output
 
   for (; rel < relend; rel++)
     {
-      enum elf_mcore_reloc_type    r_type = (enum elf_mcore_reloc_type) ELF32_R_TYPE (rel->r_info);
-      bfd_vma                      offset = rel->r_offset;
-      bfd_vma                      addend = rel->r_addend;
-      bfd_reloc_status_type        r = bfd_reloc_other;
-      asection *                   sec = NULL;
-      reloc_howto_type *           howto;
-      bfd_vma                      relocation;
-      Elf_Internal_Sym *           sym = NULL;
-      unsigned long                r_symndx;
+      enum elf_mcore_reloc_type	   r_type = (enum elf_mcore_reloc_type) ELF32_R_TYPE (rel->r_info);
+      bfd_vma			   offset = rel->r_offset;
+      bfd_vma			   addend = rel->r_addend;
+      bfd_reloc_status_type	   r = bfd_reloc_other;
+      asection *		   sec = NULL;
+      reloc_howto_type *	   howto;
+      bfd_vma			   relocation;
+      Elf_Internal_Sym *	   sym = NULL;
+      unsigned long		   r_symndx;
       struct elf_link_hash_entry * h = NULL;
-      unsigned short               oldinst = 0;
+      unsigned short		   oldinst = 0;
 
       /* Unknown relocation handling.  */
       if ((unsigned) r_type >= (unsigned) R_MCORE_max
@@ -577,17 +577,6 @@ mcore_elf_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-/* Update the got entry reference counts for the section being removed.  */
-
-static bfd_boolean
-mcore_elf_gc_sweep_hook (bfd * abfd ATTRIBUTE_UNUSED,
-			 struct bfd_link_info * info ATTRIBUTE_UNUSED,
-			 asection * sec ATTRIBUTE_UNUSED,
-			 const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED)
-{
-  return TRUE;
-}
-
 /* Look through the relocs for a section during the first phase.
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
@@ -619,37 +608,33 @@ mcore_elf_check_relocs (bfd * abfd,
       r_symndx = ELF32_R_SYM (rel->r_info);
 
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes [r_symndx - symtab_hdr->sh_info];
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
-        {
-        /* This relocation describes the C++ object vtable hierarchy.
-           Reconstruct it for later use during GC.  */
-        case R_MCORE_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-        /* This relocation describes which C++ vtable entries are actually
-           used.  Record for later use during GC.  */
-        case R_MCORE_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
-        }
+	{
+	/* This relocation describes the C++ object vtable hierarchy.
+	   Reconstruct it for later use during GC.  */
+	case R_MCORE_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	/* This relocation describes which C++ vtable entries are actually
+	   used.  Record for later use during GC.  */
+	case R_MCORE_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
+	}
     }
 
   return TRUE;
@@ -659,13 +644,13 @@ static const struct bfd_elf_special_sect
 {
   { STRING_COMMA_LEN (".ctors"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
   { STRING_COMMA_LEN (".dtors"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { NULL,                     0,  0, 0,            0 }
+  { NULL,		      0,  0, 0,		   0 }
 };
 
 #define TARGET_BIG_SYM		mcore_elf32_be_vec
 #define TARGET_BIG_NAME		"elf32-mcore-big"
-#define TARGET_LITTLE_SYM       mcore_elf32_le_vec
-#define TARGET_LITTLE_NAME      "elf32-mcore-little"
+#define TARGET_LITTLE_SYM	mcore_elf32_le_vec
+#define TARGET_LITTLE_NAME	"elf32-mcore-little"
 
 #define ELF_ARCH		bfd_arch_mcore
 #define ELF_MACHINE_CODE	EM_MCORE
@@ -679,8 +664,7 @@ static const struct bfd_elf_special_sect
 #define bfd_elf32_bfd_reloc_name_lookup	mcore_elf_reloc_name_lookup
 #define elf_backend_relocate_section		mcore_elf_relocate_section
 #define elf_backend_gc_mark_hook		mcore_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook		mcore_elf_gc_sweep_hook
-#define elf_backend_check_relocs                mcore_elf_check_relocs
+#define elf_backend_check_relocs		mcore_elf_check_relocs
 #define elf_backend_special_sections		mcore_elf_special_sections
 
 #define elf_backend_can_gc_sections		1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-mep.c ./bfd/elf32-mep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-mep.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-mep.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* MeP-specific support for 32-bit ELF.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -39,30 +39,30 @@
 static reloc_howto_type mep_elf_howto_table [] =
 {
   /* type, size, bits, leftshift, rightshift, pcrel, OD/OS/OU, mask.  */
-  MEPREL (R_MEP_NONE,     3,  0, 0, 0, 0, N, 0),
-  MEPREL (R_RELC,         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.  */
-  MEPREL (R_MEP_8,        0,  8, 0, 0, 0, U, 0xff),
-  MEPREL (R_MEP_16,       1, 16, 0, 0, 0, U, 0xffff),
-  MEPREL (R_MEP_32,       2, 32, 0, 0, 0, U, 0xffffffff),
+  MEPREL (R_MEP_8,	  0,  8, 0, 0, 0, U, 0xff),
+  MEPREL (R_MEP_16,	  1, 16, 0, 0, 0, U, 0xffff),
+  MEPREL (R_MEP_32,	  2, 32, 0, 0, 0, U, 0xffffffff),
   MEPREL (R_MEP_PCREL8A2, 1,  8, 1, 1, 1, S, 0x00fe),
   MEPREL (R_MEP_PCREL12A2,1, 12, 1, 1, 1, S, 0x0ffe),
   MEPREL (R_MEP_PCREL17A2,2, 17, 0, 1, 1, S, 0x0000ffff),
   MEPREL (R_MEP_PCREL24A2,2, 24, 0, 1, 1, S, 0x07f0ffff),
   MEPREL (R_MEP_PCABS24A2,2, 24, 0, 1, 0, U, 0x07f0ffff),
-  MEPREL (R_MEP_LOW16,    2, 16, 0, 0, 0, N, 0x0000ffff),
-  MEPREL (R_MEP_HI16U,    2, 32, 0,16, 0, N, 0x0000ffff),
-  MEPREL (R_MEP_HI16S,    2, 32, 0,16, 0, N, 0x0000ffff),
-  MEPREL (R_MEP_GPREL,    2, 16, 0, 0, 0, S, 0x0000ffff),
-  MEPREL (R_MEP_TPREL,    2, 16, 0, 0, 0, S, 0x0000ffff),
-  MEPREL (R_MEP_TPREL7,   1,  7, 0, 0, 0, U, 0x007f),
+  MEPREL (R_MEP_LOW16,	  2, 16, 0, 0, 0, N, 0x0000ffff),
+  MEPREL (R_MEP_HI16U,	  2, 32, 0,16, 0, N, 0x0000ffff),
+  MEPREL (R_MEP_HI16S,	  2, 32, 0,16, 0, N, 0x0000ffff),
+  MEPREL (R_MEP_GPREL,	  2, 16, 0, 0, 0, S, 0x0000ffff),
+  MEPREL (R_MEP_TPREL,	  2, 16, 0, 0, 0, S, 0x0000ffff),
+  MEPREL (R_MEP_TPREL7,	  1,  7, 0, 0, 0, U, 0x007f),
   MEPREL (R_MEP_TPREL7A2, 1,  7, 1, 1, 0, U, 0x007e),
   MEPREL (R_MEP_TPREL7A4, 1,  7, 2, 2, 0, U, 0x007c),
-  MEPREL (R_MEP_UIMM24,   2, 24, 0, 0, 0, U, 0x00ffffff),
+  MEPREL (R_MEP_UIMM24,	  2, 24, 0, 0, 0, U, 0x00ffffff),
   MEPREL (R_MEP_ADDR24A4, 2, 24, 0, 2, 0, U, 0x00fcffff),
   MEPREL (R_MEP_GNU_VTINHERIT,1,  0,16,32, 0, N, 0x0000),
-  MEPREL (R_MEP_GNU_VTENTRY,1,  0,16,32, 0, N, 0x0000),
+  MEPREL (R_MEP_GNU_VTENTRY,1,	0,16,32, 0, N, 0x0000),
   /* MEPRELOC:END */
 };
 
@@ -213,12 +213,12 @@ mep_sdaoff_base (bfd_vma ofs)
 
 static bfd_reloc_status_type
 mep_final_link_relocate
-    (reloc_howto_type *  howto,
-     bfd *               input_bfd,
-     asection *          input_section,
-     bfd_byte *          contents,
+    (reloc_howto_type *	 howto,
+     bfd *		 input_bfd,
+     asection *		 input_section,
+     bfd_byte *		 contents,
      Elf_Internal_Rela * rel,
-     bfd_vma             relocation)
+     bfd_vma		 relocation)
 {
   unsigned long u;
   long s;
@@ -377,8 +377,8 @@ mep_final_link_relocate
 
 static void
 mep_info_to_howto_rela
-    (bfd *               abfd ATTRIBUTE_UNUSED,
-     arelent *           cache_ptr,
+    (bfd *		 abfd ATTRIBUTE_UNUSED,
+     arelent *		 cache_ptr,
      Elf_Internal_Rela * dst)
 {
   unsigned int r_type;
@@ -428,19 +428,19 @@ mep_info_to_howto_rela
 
 static bfd_boolean
 mep_elf_relocate_section
-    (bfd *                   output_bfd ATTRIBUTE_UNUSED,
+    (bfd *		     output_bfd ATTRIBUTE_UNUSED,
      struct bfd_link_info *  info,
-     bfd *                   input_bfd,
-     asection *              input_section,
-     bfd_byte *              contents,
+     bfd *		     input_bfd,
+     asection *		     input_section,
+     bfd_byte *		     contents,
      Elf_Internal_Rela *     relocs,
-     Elf_Internal_Sym *      local_syms,
-     asection **             local_sections)
+     Elf_Internal_Sym *	     local_syms,
+     asection **	     local_sections)
 {
-  Elf_Internal_Shdr *           symtab_hdr;
+  Elf_Internal_Shdr *		symtab_hdr;
   struct elf_link_hash_entry ** sym_hashes;
-  Elf_Internal_Rela *           rel;
-  Elf_Internal_Rela *           relend;
+  Elf_Internal_Rela *		rel;
+  Elf_Internal_Rela *		relend;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (input_bfd);
@@ -450,15 +450,15 @@ mep_elf_relocate_section
 
   for (rel = relocs; rel < relend; rel ++)
     {
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
+      reloc_howto_type *	   howto;
+      unsigned long		   r_symndx;
+      Elf_Internal_Sym *	   sym;
+      asection *		   sec;
       struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 name = NULL;
-      int                          r_type;
+      bfd_vma			   relocation;
+      bfd_reloc_status_type	   r;
+      const char *		   name = NULL;
+      int			   r_type;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -585,7 +585,7 @@ mep_elf_merge_private_bfd_data (bfd *ibf
   old_flags = elf_elfheader (obfd)->e_flags;
 
 #ifdef DEBUG
-  _bfd_error_handler ("%B: old_flags = 0x%.8lx, new_flags = 0x%.8lx, init = %s",
+  _bfd_error_handler ("%B: old_flags = 0x%.8x, new_flags = 0x%.8x, init = %s",
 		      ibfd, old_flags, new_flags, elf_flags_init (obfd) ? "yes" : "no");
 #endif
 
@@ -723,9 +723,9 @@ mep_elf_section_flags (flagword * flags,
 }
 
 static bfd_boolean
-mep_elf_fake_sections (bfd *               abfd ATTRIBUTE_UNUSED,
+mep_elf_fake_sections (bfd *		   abfd ATTRIBUTE_UNUSED,
 		       Elf_Internal_Shdr * hdr,
-		       asection *          sec)
+		       asection *	   sec)
 {
   if (sec->flags & SEC_MEP_VLIW)
     hdr->sh_flags |= SHF_MEP_VLIW;
@@ -746,7 +746,7 @@ mep_elf_fake_sections (bfd *            
 #define elf_info_to_howto_rel			NULL
 #define elf_info_to_howto			mep_info_to_howto_rela
 #define elf_backend_relocate_section		mep_elf_relocate_section
-#define elf_backend_object_p		        mep_elf_object_p
+#define elf_backend_object_p			mep_elf_object_p
 #define elf_backend_section_flags		mep_elf_section_flags
 #define elf_backend_fake_sections		mep_elf_fake_sections
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-metag.c ./bfd/elf32-metag.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-metag.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-metag.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Meta support for 32-bit ELF
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Contributed by Imagination Technologies Ltd.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -73,20 +73,18 @@ static const unsigned int plt_pic_entry[
 /* Variable names follow a coding style.
    Please follow this (Apps Hungarian) style:
 
-   Structure/Variable              Prefix
-   elf_link_hash_table             "etab"
-   elf_link_hash_entry             "eh"
+   Structure/Variable		   Prefix
+   elf_link_hash_table		   "etab"
+   elf_link_hash_entry		   "eh"
 
-   elf_metag_link_hash_table       "htab"
-   elf_metag_link_hash_entry       "hh"
+   elf_metag_link_hash_table	   "htab"
+   elf_metag_link_hash_entry	   "hh"
 
-   bfd_link_hash_table             "btab"
-   bfd_link_hash_entry             "bh"
+   bfd_link_hash_table		   "btab"
+   bfd_link_hash_entry		   "bh"
 
    bfd_hash_table containing stubs "bstab"
-   elf_metag_stub_hash_entry       "hsh"
-
-   elf_metag_dyn_reloc_entry       "hdh"
+   elf_metag_stub_hash_entry	   "hsh"
 
    Always remember to use GNU Coding Style.  */
 
@@ -701,44 +699,44 @@ struct metag_reloc_map
 
 static const struct metag_reloc_map metag_reloc_map [] =
   {
-    { BFD_RELOC_NONE,                R_METAG_NONE },
-    { BFD_RELOC_32,                  R_METAG_ADDR32 },
-    { BFD_RELOC_METAG_HIADDR16,      R_METAG_HIADDR16 },
-    { BFD_RELOC_METAG_LOADDR16,      R_METAG_LOADDR16 },
+    { BFD_RELOC_NONE,		     R_METAG_NONE },
+    { BFD_RELOC_32,		     R_METAG_ADDR32 },
+    { BFD_RELOC_METAG_HIADDR16,	     R_METAG_HIADDR16 },
+    { BFD_RELOC_METAG_LOADDR16,	     R_METAG_LOADDR16 },
     { BFD_RELOC_METAG_RELBRANCH,     R_METAG_RELBRANCH },
     { BFD_RELOC_METAG_GETSETOFF,     R_METAG_GETSETOFF },
-    { BFD_RELOC_VTABLE_INHERIT,      R_METAG_GNU_VTINHERIT },
-    { BFD_RELOC_VTABLE_ENTRY,        R_METAG_GNU_VTENTRY },
-    { BFD_RELOC_METAG_REL8,          R_METAG_REL8 },
-    { BFD_RELOC_METAG_REL16,         R_METAG_REL16 },
+    { BFD_RELOC_VTABLE_INHERIT,	     R_METAG_GNU_VTINHERIT },
+    { BFD_RELOC_VTABLE_ENTRY,	     R_METAG_GNU_VTENTRY },
+    { BFD_RELOC_METAG_REL8,	     R_METAG_REL8 },
+    { BFD_RELOC_METAG_REL16,	     R_METAG_REL16 },
     { BFD_RELOC_METAG_HI16_GOTOFF,   R_METAG_HI16_GOTOFF },
     { BFD_RELOC_METAG_LO16_GOTOFF,   R_METAG_LO16_GOTOFF },
     { BFD_RELOC_METAG_GETSET_GOTOFF, R_METAG_GETSET_GOTOFF },
     { BFD_RELOC_METAG_GETSET_GOT,    R_METAG_GETSET_GOT },
     { BFD_RELOC_METAG_HI16_GOTPC,    R_METAG_HI16_GOTPC },
     { BFD_RELOC_METAG_LO16_GOTPC,    R_METAG_LO16_GOTPC },
-    { BFD_RELOC_METAG_HI16_PLT,      R_METAG_HI16_PLT },
-    { BFD_RELOC_METAG_LO16_PLT,      R_METAG_LO16_PLT },
+    { BFD_RELOC_METAG_HI16_PLT,	     R_METAG_HI16_PLT },
+    { BFD_RELOC_METAG_LO16_PLT,	     R_METAG_LO16_PLT },
     { BFD_RELOC_METAG_RELBRANCH_PLT, R_METAG_RELBRANCH_PLT },
-    { BFD_RELOC_METAG_GOTOFF,        R_METAG_GOTOFF },
-    { BFD_RELOC_METAG_PLT,           R_METAG_PLT },
-    { BFD_RELOC_METAG_COPY,          R_METAG_COPY },
-    { BFD_RELOC_METAG_JMP_SLOT,      R_METAG_JMP_SLOT },
-    { BFD_RELOC_METAG_RELATIVE,      R_METAG_RELATIVE },
-    { BFD_RELOC_METAG_GLOB_DAT,      R_METAG_GLOB_DAT },
-    { BFD_RELOC_METAG_TLS_GD,        R_METAG_TLS_GD },
-    { BFD_RELOC_METAG_TLS_LDM,       R_METAG_TLS_LDM },
+    { BFD_RELOC_METAG_GOTOFF,	     R_METAG_GOTOFF },
+    { BFD_RELOC_METAG_PLT,	     R_METAG_PLT },
+    { BFD_RELOC_METAG_COPY,	     R_METAG_COPY },
+    { BFD_RELOC_METAG_JMP_SLOT,	     R_METAG_JMP_SLOT },
+    { BFD_RELOC_METAG_RELATIVE,	     R_METAG_RELATIVE },
+    { BFD_RELOC_METAG_GLOB_DAT,	     R_METAG_GLOB_DAT },
+    { BFD_RELOC_METAG_TLS_GD,	     R_METAG_TLS_GD },
+    { BFD_RELOC_METAG_TLS_LDM,	     R_METAG_TLS_LDM },
     { BFD_RELOC_METAG_TLS_LDO_HI16,  R_METAG_TLS_LDO_HI16 },
     { BFD_RELOC_METAG_TLS_LDO_LO16,  R_METAG_TLS_LDO_LO16 },
-    { BFD_RELOC_METAG_TLS_LDO,       R_METAG_TLS_LDO },
-    { BFD_RELOC_METAG_TLS_IE,        R_METAG_TLS_IE },
+    { BFD_RELOC_METAG_TLS_LDO,	     R_METAG_TLS_LDO },
+    { BFD_RELOC_METAG_TLS_IE,	     R_METAG_TLS_IE },
     { BFD_RELOC_METAG_TLS_IENONPIC,  R_METAG_TLS_IENONPIC },
     { BFD_RELOC_METAG_TLS_IENONPIC_HI16, R_METAG_TLS_IENONPIC_HI16 },
     { BFD_RELOC_METAG_TLS_IENONPIC_LO16, R_METAG_TLS_IENONPIC_LO16 },
     { BFD_RELOC_METAG_TLS_TPOFF,     R_METAG_TLS_TPOFF },
     { BFD_RELOC_METAG_TLS_DTPMOD,    R_METAG_TLS_DTPMOD },
     { BFD_RELOC_METAG_TLS_DTPOFF,    R_METAG_TLS_DTPOFF },
-    { BFD_RELOC_METAG_TLS_LE,        R_METAG_TLS_LE },
+    { BFD_RELOC_METAG_TLS_LE,	     R_METAG_TLS_LE },
     { BFD_RELOC_METAG_TLS_LE_HI16,   R_METAG_TLS_LE_HI16 },
     { BFD_RELOC_METAG_TLS_LE_LO16,   R_METAG_TLS_LE_LO16 },
   };
@@ -789,20 +787,7 @@ struct elf_metag_link_hash_entry
 
   /* Used to count relocations for delayed sizing of relocation
      sections.  */
-  struct elf_metag_dyn_reloc_entry {
-
-    /* Next relocation in the chain.  */
-    struct elf_metag_dyn_reloc_entry *hdh_next;
-
-    /* The input section of the reloc.  */
-    asection *sec;
-
-    /* Number of relocs copied in this section.  */
-    bfd_size_type count;
-
-    /* Number of relative relocs copied for the input section.  */
-    bfd_size_type relative_count;
-  } *dyn_relocs;
+  struct elf_dyn_relocs *dyn_relocs;
 
   enum
     {
@@ -1873,7 +1858,7 @@ elf_metag_relocate_section (bfd *output_
 			/* PR 20675 */
 			if (bfd_link_pic (info))
 			  _bfd_error_handler (_("%B(%A): multiple TLS models are not supported"),
-					      input_bfd, input_section, name);
+					      input_bfd, input_section);
 			else
 			  _bfd_error_handler (_("%B(%A): shared library symbol %s encountered whilst performing a static link"),
 					      input_bfd, input_section, name);
@@ -1928,9 +1913,8 @@ elf_metag_relocate_section (bfd *output_
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B(%A+0x%lx): R_METAG_TLS_LE/IENONPIC relocation not permitted in shared object"),
-		 input_bfd, input_section,
-		 (long) rel->r_offset, howto->name);
+		(_("%B(%A+%#Lx): %s relocation not permitted in shared object"),
+		 input_bfd, input_section, rel->r_offset, howto->name);
 	      return FALSE;
 	    }
 	  else
@@ -2129,10 +2113,6 @@ elf_metag_check_relocs (bfd *abfd,
 	  while (hh->eh.root.type == bfd_link_hash_indirect
 		 || hh->eh.root.type == bfd_link_hash_warning)
 	    hh = (struct elf_metag_link_hash_entry *) hh->eh.root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  hh->eh.root.non_ir_ref = 1;
 	}
 
       /* Some relocs require a global offset table.  */
@@ -2317,8 +2297,8 @@ elf_metag_check_relocs (bfd *abfd,
 		  && (hh->eh.root.type == bfd_link_hash_defweak
 		      || !hh->eh.def_regular)))
 	    {
-	      struct elf_metag_dyn_reloc_entry *hdh_p;
-	      struct elf_metag_dyn_reloc_entry **hdh_head;
+	      struct elf_dyn_relocs *hdh_p;
+	      struct elf_dyn_relocs **hdh_head;
 
 	      if (dynobj == NULL)
 		htab->etab.dynobj = dynobj = abfd;
@@ -2355,26 +2335,26 @@ elf_metag_check_relocs (bfd *abfd,
 		    sr = sec;
 
 		  vpp = &elf_section_data (sr)->local_dynrel;
-		  hdh_head = (struct elf_metag_dyn_reloc_entry **) vpp;
+		  hdh_head = (struct elf_dyn_relocs **) vpp;
 		}
 
 	      hdh_p = *hdh_head;
 	      if (hdh_p == NULL || hdh_p->sec != sec)
 		{
-		  hdh_p = ((struct elf_metag_dyn_reloc_entry *)
+		  hdh_p = ((struct elf_dyn_relocs *)
 			   bfd_alloc (dynobj, sizeof *hdh_p));
 		  if (hdh_p == NULL)
 		    return FALSE;
-		  hdh_p->hdh_next = *hdh_head;
+		  hdh_p->next = *hdh_head;
 		  *hdh_head = hdh_p;
 		  hdh_p->sec = sec;
 		  hdh_p->count = 0;
-		  hdh_p->relative_count = 0;
+		  hdh_p->pc_count = 0;
 		}
 
 	      hdh_p->count += 1;
 	      if (ELF32_R_TYPE (rel->r_info) == R_METAG_RELBRANCH)
-		hdh_p->relative_count += 1;
+		hdh_p->pc_count += 1;
 	    }
 	  break;
 
@@ -2416,8 +2396,8 @@ elf_metag_copy_indirect_symbol (struct b
     {
       if (hh_dir->dyn_relocs != NULL)
 	{
-	  struct elf_metag_dyn_reloc_entry **hdh_pp;
-	  struct elf_metag_dyn_reloc_entry *hdh_p;
+	  struct elf_dyn_relocs **hdh_pp;
+	  struct elf_dyn_relocs *hdh_p;
 
 	  if (eh_ind->root.type == bfd_link_hash_indirect)
 	    abort ();
@@ -2426,19 +2406,19 @@ elf_metag_copy_indirect_symbol (struct b
 	     list.  Merge any entries against the same section.  */
 	  for (hdh_pp = &hh_ind->dyn_relocs; (hdh_p = *hdh_pp) != NULL; )
 	    {
-	      struct elf_metag_dyn_reloc_entry *hdh_q;
+	      struct elf_dyn_relocs *hdh_q;
 
 	      for (hdh_q = hh_dir->dyn_relocs; hdh_q != NULL;
-		   hdh_q = hdh_q->hdh_next)
+		   hdh_q = hdh_q->next)
 		if (hdh_q->sec == hdh_p->sec)
 		  {
-		    hdh_q->relative_count += hdh_p->relative_count;
+		    hdh_q->pc_count += hdh_p->pc_count;
 		    hdh_q->count += hdh_p->count;
-		    *hdh_pp = hdh_p->hdh_next;
+		    *hdh_pp = hdh_p->next;
 		    break;
 		  }
 	      if (hdh_q == NULL)
-		hdh_pp = &hdh_p->hdh_next;
+		hdh_pp = &hdh_p->next;
 	    }
 	  *hdh_pp = hh_dir->dyn_relocs;
 	}
@@ -2457,6 +2437,23 @@ elf_metag_copy_indirect_symbol (struct b
   _bfd_elf_link_hash_copy_indirect (info, eh_dir, eh_ind);
 }
 
+/* Find dynamic relocs for H that apply to read-only sections.  */
+
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
+
+  for (p = metag_elf_hash_entry (h)->dyn_relocs; p != NULL; p = p->next)
+    {
+      asection *s = p->sec->output_section;
+
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
+    }
+  return NULL;
+}
+
 /* Adjust a symbol defined by a dynamic object and referenced by a
    regular object.  The current definition is in some section of the
    dynamic object, but we're not including those sections.  We have to
@@ -2468,8 +2465,6 @@ elf_metag_adjust_dynamic_symbol (struct 
 				 struct elf_link_hash_entry *eh)
 {
   struct elf_metag_link_hash_table *htab;
-  struct elf_metag_link_hash_entry *hh;
-  struct elf_metag_dyn_reloc_entry *hdh_p;
   asection *s, *srel;
 
   /* If this is a function, put it in the procedure linkage table.  We
@@ -2500,14 +2495,13 @@ elf_metag_adjust_dynamic_symbol (struct 
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (eh->u.weakdef != NULL)
+  if (eh->is_weakalias)
     {
-      if (eh->u.weakdef->root.type != bfd_link_hash_defined
-	  && eh->u.weakdef->root.type != bfd_link_hash_defweak)
-	abort ();
-      eh->root.u.def.section = eh->u.weakdef->root.u.def.section;
-      eh->root.u.def.value = eh->u.weakdef->root.u.def.value;
-      eh->non_got_ref = eh->u.weakdef->non_got_ref;
+      struct elf_link_hash_entry *def = weakdef (eh);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      eh->root.u.def.section = def->root.u.def.section;
+      eh->root.u.def.value = def->root.u.def.value;
+      eh->non_got_ref = def->non_got_ref;
       return TRUE;
     }
 
@@ -2533,17 +2527,9 @@ elf_metag_adjust_dynamic_symbol (struct 
       return TRUE;
     }
 
-  hh = (struct elf_metag_link_hash_entry *) eh;
-  for (hdh_p = hh->dyn_relocs; hdh_p != NULL; hdh_p = hdh_p->hdh_next)
-    {
-      s = hdh_p->sec->output_section;
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	break;
-    }
-
-  /* If we didn't find any dynamic relocs in read-only sections, then
+  /* If we don't find any dynamic relocs in read-only sections, then
      we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
-  if (hdh_p == NULL)
+  if (!readonly_dynrelocs (eh))
     {
       eh->non_got_ref = 0;
       return TRUE;
@@ -2592,7 +2578,7 @@ allocate_dynrelocs (struct elf_link_hash
   struct bfd_link_info *info;
   struct elf_metag_link_hash_table *htab;
   struct elf_metag_link_hash_entry *hh;
-  struct elf_metag_dyn_reloc_entry *hdh_p;
+  struct elf_dyn_relocs *hdh_p;
 
   if (eh->root.type == bfd_link_hash_indirect)
     return TRUE;
@@ -2711,16 +2697,16 @@ allocate_dynrelocs (struct elf_link_hash
     {
       if (SYMBOL_CALLS_LOCAL (info, eh))
 	{
-	  struct elf_metag_dyn_reloc_entry **hdh_pp;
+	  struct elf_dyn_relocs **hdh_pp;
 
 	  for (hdh_pp = &hh->dyn_relocs; (hdh_p = *hdh_pp) != NULL; )
 	    {
-	      hdh_p->count -= hdh_p->relative_count;
-	      hdh_p->relative_count = 0;
+	      hdh_p->count -= hdh_p->pc_count;
+	      hdh_p->pc_count = 0;
 	      if (hdh_p->count == 0)
-		*hdh_pp = hdh_p->hdh_next;
+		*hdh_pp = hdh_p->next;
 	      else
-		hdh_pp = &hdh_p->hdh_next;
+		hdh_pp = &hdh_p->next;
 	    }
 	}
 
@@ -2776,7 +2762,7 @@ allocate_dynrelocs (struct elf_link_hash
     }
 
   /* Finally, allocate space.  */
-  for (hdh_p = hh->dyn_relocs; hdh_p != NULL; hdh_p = hdh_p->hdh_next)
+  for (hdh_p = hh->dyn_relocs; hdh_p != NULL; hdh_p = hdh_p->next)
     {
       asection *sreloc = elf_section_data (hdh_p->sec)->sreloc;
       sreloc->size += hdh_p->count * sizeof (Elf32_External_Rela);
@@ -2785,31 +2771,29 @@ allocate_dynrelocs (struct elf_link_hash
   return TRUE;
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (struct elf_link_hash_entry *eh, void *inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct elf_metag_link_hash_entry *hh;
-  struct elf_metag_dyn_reloc_entry *hdh_p;
+  asection *sec;
 
-  if (eh->root.type == bfd_link_hash_warning)
-    eh = (struct elf_link_hash_entry *) eh->root.u.i.link;
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-  hh = (struct elf_metag_link_hash_entry *) eh;
-  for (hdh_p = hh->dyn_relocs; hdh_p != NULL; hdh_p = hdh_p->hdh_next)
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
     {
-      asection *s = hdh_p->sec->output_section;
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	{
-	  struct bfd_link_info *info = inf;
-
-	  info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
-	  /* Not an error, just cut short the traversal.  */
-	  return FALSE;
-	}
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -2860,12 +2844,12 @@ elf_metag_size_dynamic_sections (bfd *ou
 
       for (s = ibfd->sections; s != NULL; s = s->next)
 	{
-	  struct elf_metag_dyn_reloc_entry *hdh_p;
+	  struct elf_dyn_relocs *hdh_p;
 
-	  for (hdh_p = ((struct elf_metag_dyn_reloc_entry *)
+	  for (hdh_p = ((struct elf_dyn_relocs *)
 			elf_section_data (s)->local_dynrel);
 	       hdh_p != NULL;
-	       hdh_p = hdh_p->hdh_next)
+	       hdh_p = hdh_p->next)
 	    {
 	      if (!bfd_is_abs_section (hdh_p->sec)
 		  && bfd_is_abs_section (hdh_p->sec->output_section))
@@ -3038,7 +3022,7 @@ elf_metag_size_dynamic_sections (bfd *ou
 	  /* If any dynamic relocs apply to a read-only section,
 	     then we need a DT_TEXTREL entry.  */
 	  if ((info->flags & DF_TEXTREL) == 0)
-	    elf_link_hash_traverse (&htab->etab, readonly_dynrelocs, info);
+	    elf_link_hash_traverse (&htab->etab, maybe_set_textrel, info);
 
 	  if ((info->flags & DF_TEXTREL) != 0)
 	    {
@@ -3418,131 +3402,6 @@ elf_metag_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rela, hh, sym);
 }
 
-/* Update the got and plt entry reference counts for the section being
-   removed.  */
-
-static bfd_boolean
-elf_metag_gc_sweep_hook (bfd *abfd ATTRIBUTE_UNUSED,
-			 struct bfd_link_info *info ATTRIBUTE_UNUSED,
-			 asection *sec ATTRIBUTE_UNUSED,
-			 const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED)
-{
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **eh_syms;
-  bfd_signed_vma *local_got_refcounts;
-  bfd_signed_vma *local_plt_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  eh_syms = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-  local_plt_refcounts = local_got_refcounts;
-  if (local_plt_refcounts != NULL)
-    local_plt_refcounts += symtab_hdr->sh_info;
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      unsigned int r_type;
-      struct elf_link_hash_entry *eh = NULL;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  struct elf_metag_link_hash_entry *hh;
-	  struct elf_metag_dyn_reloc_entry **hdh_pp;
-	  struct elf_metag_dyn_reloc_entry *hdh_p;
-
-	  eh = eh_syms[r_symndx - symtab_hdr->sh_info];
-	  while (eh->root.type == bfd_link_hash_indirect
-		 || eh->root.type == bfd_link_hash_warning)
-	    eh = (struct elf_link_hash_entry *) eh->root.u.i.link;
-	  hh = (struct elf_metag_link_hash_entry *) eh;
-
-	  for (hdh_pp = &hh->dyn_relocs; (hdh_p = *hdh_pp) != NULL;
-	       hdh_pp = &hdh_p->hdh_next)
-	    if (hdh_p->sec == sec)
-	      {
-		/* Everything must go for SEC.  */
-		*hdh_pp = hdh_p->hdh_next;
-		break;
-	      }
-	}
-
-      r_type = ELF32_R_TYPE (rel->r_info);
-      switch (r_type)
-	{
-	case R_METAG_TLS_LDM:
-	  if (metag_link_hash_table (info)->tls_ldm_got.refcount > 0)
-	    metag_link_hash_table (info)->tls_ldm_got.refcount -= 1;
-	  break;
-	case R_METAG_TLS_IE:
-	case R_METAG_TLS_GD:
-	case R_METAG_GETSET_GOT:
-	  if (eh != NULL)
-	    {
-	      if (eh->got.refcount > 0)
-		eh->got.refcount -= 1;
-	    }
-	  else if (local_got_refcounts != NULL)
-	    {
-	      if (local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx] -= 1;
-	    }
-	  break;
-
-	case R_METAG_RELBRANCH_PLT:
-	  if (eh != NULL)
-	    {
-	      if (eh->plt.refcount > 0)
-		eh->plt.refcount -= 1;
-	    }
-	  break;
-
-	case R_METAG_ADDR32:
-	case R_METAG_HIADDR16:
-	case R_METAG_LOADDR16:
-	case R_METAG_GETSETOFF:
-	case R_METAG_RELBRANCH:
-	  if (eh != NULL)
-	    {
-	      struct elf_metag_link_hash_entry *hh;
-	      struct elf_metag_dyn_reloc_entry **hdh_pp;
-	      struct elf_metag_dyn_reloc_entry *hdh_p;
-
-	      if (!bfd_link_pic (info) && eh->plt.refcount > 0)
-		eh->plt.refcount -= 1;
-
-	      hh = (struct elf_metag_link_hash_entry *) eh;
-
-	      for (hdh_pp = &hh->dyn_relocs; (hdh_p = *hdh_pp) != NULL;
-		   hdh_pp = &hdh_p->hdh_next)
-		if (hdh_p->sec == sec)
-		  {
-		    if (ELF32_R_TYPE (rel->r_info) == R_METAG_RELBRANCH)
-		      hdh_p->relative_count -= 1;
-		    hdh_p->count -= 1;
-		    if (hdh_p->count == 0)
-		      *hdh_pp = hdh_p->hdh_next;
-		    break;
-		  }
-	    }
-	  break;
-
-	default:
-	  break;
-	}
-    }
-
-  return TRUE;
-}
-
 /* Determine the type of stub needed, if any, for a call.  */
 
 static enum elf_metag_stub_type
@@ -4275,7 +4134,6 @@ elf_metag_plt_sym_val (bfd_vma i, const 
 	elf_metag_link_hash_table_create
 #define elf_backend_relocate_section		elf_metag_relocate_section
 #define elf_backend_gc_mark_hook		elf_metag_gc_mark_hook
-#define elf_backend_gc_sweep_hook		elf_metag_gc_sweep_hook
 #define elf_backend_check_relocs		elf_metag_check_relocs
 #define elf_backend_create_dynamic_sections	elf_metag_create_dynamic_sections
 #define elf_backend_adjust_dynamic_symbol	elf_metag_adjust_dynamic_symbol
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-metag.h ./bfd/elf32-metag.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-metag.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-metag.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Meta support for 32-bit ELF
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Contributed by Imagination Technologies Ltd.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-microblaze.c ./bfd/elf32-microblaze.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-microblaze.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-microblaze.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* Xilinx MicroBlaze-specific support for 32-bit ELF
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -43,333 +43,333 @@ static reloc_howto_type microblaze_elf_h
 {
    /* This reloc does nothing.  */
    HOWTO (R_MICROBLAZE_NONE,	/* Type.  */
-          0,			/* Rightshift.  */
-          3,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          0,			/* Bitsize.  */
-          FALSE,		/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_dont,  /* Complain on overflow.  */
-          NULL,                  /* Special Function.  */
-          "R_MICROBLAZE_NONE", 	/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0,			/* Dest Mask.  */
-          FALSE),		/* PC relative offset?  */
+	  0,			/* Rightshift.  */
+	  3,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  0,			/* Bitsize.  */
+	  FALSE,		/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_dont,  /* Complain on overflow.  */
+	  NULL,			 /* Special Function.  */
+	  "R_MICROBLAZE_NONE",	/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0,			/* Dest Mask.  */
+	  FALSE),		/* PC relative offset?  */
 
    /* A standard 32 bit relocation.  */
-   HOWTO (R_MICROBLAZE_32,     	/* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          32,			/* Bitsize.  */
-          FALSE,		/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_bitfield, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_32",   	/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0xffffffff,		/* Dest Mask.  */
-          FALSE), 		/* PC relative offset?  */
+   HOWTO (R_MICROBLAZE_32,	/* Type.  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  32,			/* Bitsize.  */
+	  FALSE,		/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_bitfield, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_32",	/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0xffffffff,		/* Dest Mask.  */
+	  FALSE),		/* PC relative offset?  */
 
    /* A standard PCREL 32 bit relocation.  */
    HOWTO (R_MICROBLAZE_32_PCREL,/* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          32,			/* Bitsize.  */
-          TRUE,			/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_bitfield, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_32_PCREL",   	/* Name.  */
-          TRUE,			/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0xffffffff,		/* Dest Mask.  */
-          TRUE), 		/* PC relative offset?  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  32,			/* Bitsize.  */
+	  TRUE,			/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_bitfield, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_32_PCREL",	/* Name.  */
+	  TRUE,			/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0xffffffff,		/* Dest Mask.  */
+	  TRUE),		/* PC relative offset?  */
 
    /* A 64 bit PCREL relocation.  Table-entry not really used.  */
    HOWTO (R_MICROBLAZE_64_PCREL,/* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          TRUE,			/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_dont, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_64_PCREL", 	/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          TRUE), 		/* PC relative offset?  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  TRUE,			/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_dont, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_64_PCREL",	/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  TRUE),		/* PC relative offset?  */
 
    /* The low half of a PCREL 32 bit relocation.  */
-   HOWTO (R_MICROBLAZE_32_PCREL_LO,   	/* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          TRUE,			/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_signed, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,	/* Special Function.  */
-          "R_MICROBLAZE_32_PCREL_LO", 	/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          TRUE), 		/* PC relative offset?  */
+   HOWTO (R_MICROBLAZE_32_PCREL_LO,	/* Type.  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  TRUE,			/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_signed, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,	/* Special Function.  */
+	  "R_MICROBLAZE_32_PCREL_LO",	/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  TRUE),		/* PC relative offset?  */
 
    /* A 64 bit relocation.  Table entry not really used.  */
-   HOWTO (R_MICROBLAZE_64,     	/* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          FALSE,		/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_dont, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_64",   	/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          FALSE), 		/* PC relative offset?  */
+   HOWTO (R_MICROBLAZE_64,	/* Type.  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  FALSE,		/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_dont, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_64",	/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  FALSE),		/* PC relative offset?  */
 
    /* The low half of a 32 bit relocation.  */
-   HOWTO (R_MICROBLAZE_32_LO,   /* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          FALSE,		/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_signed, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_32_LO", /* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          FALSE), 		/* PC relative offset?  */
+   HOWTO (R_MICROBLAZE_32_LO,	/* Type.  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  FALSE,		/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_signed, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_32_LO", /* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  FALSE),		/* PC relative offset?  */
 
    /* Read-only small data section relocation.  */
-   HOWTO (R_MICROBLAZE_SRO32,   /* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          FALSE,		/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_bitfield, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_SRO32", /* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          FALSE), 		/* PC relative offset?  */
+   HOWTO (R_MICROBLAZE_SRO32,	/* Type.  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  FALSE,		/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_bitfield, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_SRO32", /* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  FALSE),		/* PC relative offset?  */
 
    /* Read-write small data area relocation.  */
-   HOWTO (R_MICROBLAZE_SRW32,   /* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          FALSE,		/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_bitfield, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_SRW32", /* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          FALSE), 		/* PC relative offset?  */
+   HOWTO (R_MICROBLAZE_SRW32,	/* Type.  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  FALSE,		/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_bitfield, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_SRW32", /* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  FALSE),		/* PC relative offset?  */
 
-   /* This reloc does nothing.  Used for relaxation.  */
+   /* This reloc does nothing.	Used for relaxation.  */
    HOWTO (R_MICROBLAZE_64_NONE,	/* Type.  */
-          0,			/* Rightshift.  */
-          3,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          0,			/* Bitsize.  */
-          TRUE,			/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_dont, /* Complain on overflow.  */
-          NULL,                  /* Special Function.  */
-          "R_MICROBLAZE_64_NONE",/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0,			/* Dest Mask.  */
-          FALSE),		/* PC relative offset?  */
+	  0,			/* Rightshift.  */
+	  3,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  0,			/* Bitsize.  */
+	  TRUE,			/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_dont, /* Complain on overflow.  */
+	  NULL,			 /* Special Function.  */
+	  "R_MICROBLAZE_64_NONE",/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0,			/* Dest Mask.  */
+	  FALSE),		/* PC relative offset?  */
 
    /* Symbol Op Symbol relocation.  */
-   HOWTO (R_MICROBLAZE_32_SYM_OP_SYM,     	/* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          32,			/* Bitsize.  */
-          FALSE,		/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_bitfield, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_32_SYM_OP_SYM",   	/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0xffffffff,		/* Dest Mask.  */
-          FALSE), 		/* PC relative offset?  */
+   HOWTO (R_MICROBLAZE_32_SYM_OP_SYM,		/* Type.  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  32,			/* Bitsize.  */
+	  FALSE,		/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_bitfield, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_32_SYM_OP_SYM",		/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0xffffffff,		/* Dest Mask.  */
+	  FALSE),		/* PC relative offset?  */
 
    /* GNU extension to record C++ vtable hierarchy.  */
    HOWTO (R_MICROBLAZE_GNU_VTINHERIT, /* Type.  */
-          0,                     /* Rightshift.  */
-          2,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-          0,                     /* Bitsize.  */
-          FALSE,                 /* PC_relative.  */
-          0,                     /* Bitpos.  */
-          complain_overflow_dont,/* Complain on overflow.  */
-          NULL,                  /* Special Function.  */
-          "R_MICROBLAZE_GNU_VTINHERIT", /* Name.  */
-          FALSE,                 /* Partial Inplace.  */
-          0,                     /* Source Mask.  */
-          0,                     /* Dest Mask.  */
-          FALSE),                /* PC relative offset?  */
+	  0,			 /* Rightshift.  */
+	  2,			 /* Size (0 = byte, 1 = short, 2 = long).  */
+	  0,			 /* Bitsize.  */
+	  FALSE,		 /* PC_relative.  */
+	  0,			 /* Bitpos.  */
+	  complain_overflow_dont,/* Complain on overflow.  */
+	  NULL,			 /* Special Function.  */
+	  "R_MICROBLAZE_GNU_VTINHERIT", /* Name.  */
+	  FALSE,		 /* Partial Inplace.  */
+	  0,			 /* Source Mask.  */
+	  0,			 /* Dest Mask.  */
+	  FALSE),		 /* PC relative offset?  */
 
    /* GNU extension to record C++ vtable member usage.  */
    HOWTO (R_MICROBLAZE_GNU_VTENTRY,   /* Type.  */
-          0,                     /* Rightshift.  */
-          2,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-          0,                     /* Bitsize.  */
-          FALSE,                 /* PC_relative.  */
-          0,                     /* Bitpos.  */
-          complain_overflow_dont,/* Complain on overflow.  */
-          _bfd_elf_rel_vtable_reloc_fn,  /* Special Function.  */
-          "R_MICROBLAZE_GNU_VTENTRY", /* Name.  */
-          FALSE,                 /* Partial Inplace.  */
-          0,                     /* Source Mask.  */
-          0,                     /* Dest Mask.  */
-          FALSE),                /* PC relative offset?  */
+	  0,			 /* Rightshift.  */
+	  2,			 /* Size (0 = byte, 1 = short, 2 = long).  */
+	  0,			 /* Bitsize.  */
+	  FALSE,		 /* PC_relative.  */
+	  0,			 /* Bitpos.  */
+	  complain_overflow_dont,/* Complain on overflow.  */
+	  _bfd_elf_rel_vtable_reloc_fn,	 /* Special Function.  */
+	  "R_MICROBLAZE_GNU_VTENTRY", /* Name.  */
+	  FALSE,		 /* Partial Inplace.  */
+	  0,			 /* Source Mask.  */
+	  0,			 /* Dest Mask.  */
+	  FALSE),		 /* PC relative offset?  */
 
    /* A 64 bit GOTPC relocation.  Table-entry not really used.  */
-   HOWTO (R_MICROBLAZE_GOTPC_64,   	/* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          TRUE,			/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_dont, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,	/* Special Function.  */
-          "R_MICROBLAZE_GOTPC_64", 	/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          TRUE), 		/* PC relative offset?  */
+   HOWTO (R_MICROBLAZE_GOTPC_64,	/* Type.  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  TRUE,			/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_dont, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,	/* Special Function.  */
+	  "R_MICROBLAZE_GOTPC_64",	/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  TRUE),		/* PC relative offset?  */
 
    /* A 64 bit GOT relocation.  Table-entry not really used.  */
    HOWTO (R_MICROBLAZE_GOT_64,  /* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          FALSE,		/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_dont, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_GOT_64",/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          FALSE), 		/* PC relative offset?  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  FALSE,		/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_dont, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_GOT_64",/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  FALSE),		/* PC relative offset?  */
 
    /* A 64 bit PLT relocation.  Table-entry not really used.  */
    HOWTO (R_MICROBLAZE_PLT_64,  /* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          TRUE,			/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_dont, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_PLT_64",/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          TRUE), 		/* PC relative offset?  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  TRUE,			/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_dont, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_PLT_64",/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  TRUE),		/* PC relative offset?  */
 
    /*  Table-entry not really used.  */
-   HOWTO (R_MICROBLAZE_REL,   	/* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          TRUE,			/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_dont, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_REL", 	/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          TRUE), 		/* PC relative offset?  */
+   HOWTO (R_MICROBLAZE_REL,	/* Type.  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  TRUE,			/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_dont, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_REL",	/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  TRUE),		/* PC relative offset?  */
 
    /*  Table-entry not really used.  */
    HOWTO (R_MICROBLAZE_JUMP_SLOT,/* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          TRUE,			/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_dont, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_JUMP_SLOT", 	/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          TRUE), 		/* PC relative offset?  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  TRUE,			/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_dont, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_JUMP_SLOT",	/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  TRUE),		/* PC relative offset?  */
 
    /*  Table-entry not really used.  */
    HOWTO (R_MICROBLAZE_GLOB_DAT,/* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          TRUE,			/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_dont, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_GLOB_DAT", 	/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          TRUE), 		/* PC relative offset?  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  TRUE,			/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_dont, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_GLOB_DAT",	/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  TRUE),		/* PC relative offset?  */
 
    /* A 64 bit GOT relative relocation.  Table-entry not really used.  */
-   HOWTO (R_MICROBLAZE_GOTOFF_64,   	/* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          FALSE,		/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_dont, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_GOTOFF_64", 	/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          FALSE), 		/* PC relative offset?  */
+   HOWTO (R_MICROBLAZE_GOTOFF_64,	/* Type.  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  FALSE,		/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_dont, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_GOTOFF_64",	/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  FALSE),		/* PC relative offset?  */
 
    /* A 32 bit GOT relative relocation.  Table-entry not really used.  */
-   HOWTO (R_MICROBLAZE_GOTOFF_32,   	/* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          FALSE,		/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_dont, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,	/* Special Function.  */
-          "R_MICROBLAZE_GOTOFF_32", 	/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          FALSE), 		/* PC relative offset?  */
+   HOWTO (R_MICROBLAZE_GOTOFF_32,	/* Type.  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  FALSE,		/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_dont, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,	/* Special Function.  */
+	  "R_MICROBLAZE_GOTOFF_32",	/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  FALSE),		/* PC relative offset?  */
 
    /* COPY relocation.  Table-entry not really used.  */
-   HOWTO (R_MICROBLAZE_COPY,   	/* Type.  */
-          0,			/* Rightshift.  */
-          2,			/* Size (0 = byte, 1 = short, 2 = long).  */
-          16,			/* Bitsize.  */
-          FALSE,		/* PC_relative.  */
-          0,			/* Bitpos.  */
-          complain_overflow_dont, /* Complain on overflow.  */
-          bfd_elf_generic_reloc,/* Special Function.  */
-          "R_MICROBLAZE_COPY", 	/* Name.  */
-          FALSE,		/* Partial Inplace.  */
-          0,			/* Source Mask.  */
-          0x0000ffff,		/* Dest Mask.  */
-          FALSE), 		/* PC relative offset?  */
+   HOWTO (R_MICROBLAZE_COPY,	/* Type.  */
+	  0,			/* Rightshift.  */
+	  2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	  16,			/* Bitsize.  */
+	  FALSE,		/* PC_relative.  */
+	  0,			/* Bitpos.  */
+	  complain_overflow_dont, /* Complain on overflow.  */
+	  bfd_elf_generic_reloc,/* Special Function.  */
+	  "R_MICROBLAZE_COPY",	/* Name.  */
+	  FALSE,		/* Partial Inplace.  */
+	  0,			/* Source Mask.  */
+	  0x0000ffff,		/* Dest Mask.  */
+	  FALSE),		/* PC relative offset?  */
 
    /* Marker relocs for TLS.  */
    HOWTO (R_MICROBLAZE_TLS,
@@ -678,26 +678,6 @@ microblaze_elf_is_local_label_name (bfd 
   return _bfd_elf_is_local_label_name (abfd, name);
 }
 
-/* The microblaze linker (like many others) needs to keep track of
-   the number of relocs that it decides to copy as dynamic relocs in
-   check_relocs for each symbol. This is so that it can later discard
-   them if they are found to be unnecessary.  We store the information
-   in a field extending the regular ELF linker hash table.  */
-
-struct elf32_mb_dyn_relocs
-{
-  struct elf32_mb_dyn_relocs *next;
-
-  /* The input section of the reloc.  */
-  asection *sec;
-
-  /* Total number of relocs copied for the input section.  */
-  bfd_size_type count;
-
-  /* Number of pc-relative relocs copied for the input section.  */
-  bfd_size_type pc_count;
-};
-
 /* ELF linker hash entry.  */
 
 struct elf32_mb_link_hash_entry
@@ -705,7 +685,7 @@ struct elf32_mb_link_hash_entry
   struct elf_link_hash_entry elf;
 
   /* Track dynamic relocs copied for this symbol.  */
-  struct elf32_mb_dyn_relocs *dyn_relocs;
+  struct elf_dyn_relocs *dyn_relocs;
 
   /* TLS Reference Types for the symbol; Updated by check_relocs */
 #define TLS_GD     1  /* GD reloc. */
@@ -814,15 +794,15 @@ microblaze_elf_final_sdp (struct bfd_lin
   if (h != (struct bfd_link_hash_entry *) NULL
       && h->type == bfd_link_hash_defined)
     ro_small_data_pointer = (h->u.def.value
-                             + h->u.def.section->output_section->vma
-                             + h->u.def.section->output_offset);
+			     + h->u.def.section->output_section->vma
+			     + h->u.def.section->output_offset);
 
   h = bfd_link_hash_lookup (info->hash, RW_SDA_ANCHOR_NAME, FALSE, FALSE, TRUE);
   if (h != (struct bfd_link_hash_entry *) NULL
       && h->type == bfd_link_hash_defined)
     rw_small_data_pointer = (h->u.def.value
-                             + h->u.def.section->output_section->vma
-                             + h->u.def.section->output_offset);
+			     + h->u.def.section->output_section->vma
+			     + h->u.def.section->output_offset);
 }
 
 static bfd_vma
@@ -856,7 +836,7 @@ microblaze_elf_output_dynamic_relocation
   rel.r_addend = addend;
 
   bfd_elf32_swap_reloca_out (output_bfd, &rel,
-              (sreloc->contents + reloc_index * sizeof (Elf32_External_Rela)));
+	      (sreloc->contents + reloc_index * sizeof (Elf32_External_Rela)));
 }
 
 /* This code is taken from elf32-m32r.c
@@ -895,13 +875,13 @@ microblaze_elf_output_dynamic_relocation
 
 static bfd_boolean
 microblaze_elf_relocate_section (bfd *output_bfd,
-			         struct bfd_link_info *info,
-			         bfd *input_bfd,
-			         asection *input_section,
-			         bfd_byte *contents,
-			         Elf_Internal_Rela *relocs,
-			         Elf_Internal_Sym *local_syms,
-			         asection **local_sections)
+				 struct bfd_link_info *info,
+				 bfd *input_bfd,
+				 asection *input_section,
+				 bfd_byte *contents,
+				 Elf_Internal_Rela *relocs,
+				 Elf_Internal_Sym *local_syms,
+				 asection **local_sections)
 {
   struct elf32_mb_link_hash_table *htab;
   Elf_Internal_Shdr *symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -1002,6 +982,7 @@ microblaze_elf_relocate_section (bfd *ou
       else
 	{
 	  bfd_vma relocation;
+	  bfd_boolean resolved_to_zero;
 
 	  /* This is a final link.  */
 	  sym = NULL;
@@ -1041,6 +1022,9 @@ microblaze_elf_relocate_section (bfd *ou
 	      goto check_reloc;
 	    }
 
+	  resolved_to_zero = (h != NULL
+			      && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h));
+
 	  switch ((int) r_type)
 	    {
 	    case (int) R_MICROBLAZE_SRO32 :
@@ -1150,9 +1134,9 @@ microblaze_elf_relocate_section (bfd *ou
 			     + offset + INST_WORD_SIZE);
 	      relocation += addend;
 	      bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff,
-	                  contents + offset + endian);
+			  contents + offset + endian);
 	      bfd_put_16 (input_bfd, relocation & 0xffff,
-	                  contents + offset + endian + INST_WORD_SIZE);
+			  contents + offset + endian + INST_WORD_SIZE);
 	      break;
 
 	    case (int) R_MICROBLAZE_PLT_64:
@@ -1169,9 +1153,9 @@ microblaze_elf_relocate_section (bfd *ou
 					      + input_section->output_offset
 					      + offset + INST_WORD_SIZE);
 		    bfd_put_16 (input_bfd, (immediate >> 16) & 0xffff,
-		                contents + offset + endian);
+				contents + offset + endian);
 		    bfd_put_16 (input_bfd, immediate & 0xffff,
-		                contents + offset + endian + INST_WORD_SIZE);
+				contents + offset + endian + INST_WORD_SIZE);
 		  }
 		else
 		  {
@@ -1180,9 +1164,9 @@ microblaze_elf_relocate_section (bfd *ou
 				   + offset + INST_WORD_SIZE);
 		    immediate = relocation;
 		    bfd_put_16 (input_bfd, (immediate >> 16) & 0xffff,
-		                contents + offset + endian);
+				contents + offset + endian);
 		    bfd_put_16 (input_bfd, immediate & 0xffff,
-		                contents + offset + endian + INST_WORD_SIZE);
+				contents + offset + endian + INST_WORD_SIZE);
 		  }
 		break;
 	      }
@@ -1257,7 +1241,8 @@ microblaze_elf_relocate_section (bfd *ou
 		/* Need to generate relocs ? */
 		if ((bfd_link_pic (info) || indx != 0)
 		    && (h == NULL
-		    || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		    || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+			&& !resolved_to_zero)
 		    || h->root.type != bfd_link_hash_undefweak))
 		  need_relocs = TRUE;
 
@@ -1289,10 +1274,10 @@ microblaze_elf_relocate_section (bfd *ou
 		      }
 		    else if (IS_TLS_GD(tls_type))
 		      {
-		        if (! need_relocs)
+			if (! need_relocs)
 			  bfd_put_32 (output_bfd, 1,
 				      htab->elf.sgot->contents + off);
-		        else
+			else
 			  microblaze_elf_output_dynamic_relocation
 			    (output_bfd,
 			     htab->elf.srelgot,
@@ -1310,23 +1295,23 @@ microblaze_elf_relocate_section (bfd *ou
 				  + off2);
 		    if (IS_TLS_LD(tls_type))
 		      {
-		        /* For LD, offset should be 0 */
-		        *offp |= 1;
-		        bfd_put_32 (output_bfd, 0,
+			/* For LD, offset should be 0 */
+			*offp |= 1;
+			bfd_put_32 (output_bfd, 0,
 				    htab->elf.sgot->contents + off2);
 		      }
 		    else if (IS_TLS_GD(tls_type))
 		      {
-		        *offp |= 1;
-		        static_value -= dtprel_base(info);
-		        if (need_relocs)
+			*offp |= 1;
+			static_value -= dtprel_base(info);
+			if (need_relocs)
 			  microblaze_elf_output_dynamic_relocation
 			    (output_bfd,
 			     htab->elf.srelgot,
 			     htab->elf.srelgot->reloc_count++,
 			     /* symindex= */ indx, R_MICROBLAZE_TLSDTPREL32,
 			     got_offset, indx ? 0 : static_value);
-		        else
+			else
 			  bfd_put_32 (output_bfd, static_value,
 				      htab->elf.sgot->contents + off2);
 		      }
@@ -1361,9 +1346,9 @@ microblaze_elf_relocate_section (bfd *ou
 
 		/* Apply Current Relocation */
 		bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff,
-		            contents + offset + endian);
+			    contents + offset + endian);
 		bfd_put_16 (input_bfd, relocation & 0xffff,
-		            contents + offset + endian + INST_WORD_SIZE);
+			    contents + offset + endian + INST_WORD_SIZE);
 
 		unresolved_reloc = FALSE;
 		break;
@@ -1423,16 +1408,17 @@ microblaze_elf_relocate_section (bfd *ou
 					 + input_section->output_offset
 					 + offset + INST_WORD_SIZE);
 			bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff,
-			            contents + offset + endian);
+				    contents + offset + endian);
 			bfd_put_16 (input_bfd, relocation & 0xffff,
-			            contents + offset + endian + INST_WORD_SIZE);
+				    contents + offset + endian + INST_WORD_SIZE);
 		      }
 		    break;
 		  }
 
 		if ((bfd_link_pic (info)
 		     && (h == NULL
-			 || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+			 || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+			     && !resolved_to_zero)
 			 || h->root.type != bfd_link_hash_undefweak)
 		     && (!howto->pc_relative
 			 || (h != NULL
@@ -1517,9 +1503,9 @@ microblaze_elf_relocate_section (bfd *ou
 					 + input_section->output_offset
 					 + offset + INST_WORD_SIZE);
 			bfd_put_16 (input_bfd, (relocation >> 16) & 0xffff,
-			            contents + offset + endian);
+				    contents + offset + endian);
 			bfd_put_16 (input_bfd, relocation & 0xffff,
-			            contents + offset + endian + INST_WORD_SIZE);
+				    contents + offset + endian + INST_WORD_SIZE);
 		      }
 		    break;
 		  }
@@ -1607,9 +1593,9 @@ calc_fixup (bfd_vma start, bfd_vma size,
   for (i = 0; i < sec->relax_count; i++)
     {
       if (end <= sec->relax[i].addr)
-        break;
+	break;
       if ((end != start) && (start > sec->relax[i].addr))
-        continue;
+	continue;
       fixup += sec->relax[i].size;
     }
   return fixup;
@@ -1692,7 +1678,7 @@ microblaze_elf_relax_section (bfd *abfd,
   symcount =  symtab_hdr->sh_size / sizeof (Elf32_External_Sym);
   if (isymbuf == NULL)
     isymbuf = bfd_elf_get_elf_syms (abfd, symtab_hdr, symcount,
- 			     	    0, NULL, NULL, NULL);
+				    0, NULL, NULL, NULL);
   BFD_ASSERT (isymbuf != NULL);
 
   internal_relocs = _bfd_elf_link_read_relocs (abfd, sec, NULL, NULL, link_info->keep_memory);
@@ -1731,7 +1717,7 @@ microblaze_elf_relax_section (bfd *abfd,
 	      if (!bfd_get_section_contents (abfd, sec, contents,
 					     (file_ptr) 0, sec->size))
 		goto error_return;
-              elf_section_data (sec)->this_hdr.contents = contents;
+	      elf_section_data (sec)->this_hdr.contents = contents;
 	    }
 	}
 
@@ -1742,7 +1728,7 @@ microblaze_elf_relax_section (bfd *abfd,
 	  asection *sym_sec;
 
 	  isym = isymbuf + ELF32_R_SYM (irel->r_info);
-          if (isym->st_shndx == SHN_UNDEF)
+	  if (isym->st_shndx == SHN_UNDEF)
 	    sym_sec = bfd_und_section_ptr;
 	  else if (isym->st_shndx == SHN_ABS)
 	    sym_sec = bfd_abs_section_ptr;
@@ -1762,7 +1748,7 @@ microblaze_elf_relax_section (bfd *abfd,
 	  h = elf_sym_hashes (abfd)[indx];
 	  BFD_ASSERT (h != NULL);
 
-          if (h->root.type != bfd_link_hash_defined
+	  if (h->root.type != bfd_link_hash_defined
 	      && h->root.type != bfd_link_hash_defweak)
 	    /* This appears to be a reference to an undefined
 	       symbol.  Just ignore it--it will be caught by the
@@ -1775,41 +1761,41 @@ microblaze_elf_relax_section (bfd *abfd,
 	}
 
       /* If this is a PC-relative reloc, subtract the instr offset from
-         the symbol value.  */
+	 the symbol value.  */
       if (ELF32_R_TYPE (irel->r_info) == (int) R_MICROBLAZE_64_PCREL)
 	{
 	  symval = symval + irel->r_addend
 	    - (irel->r_offset
 	       + sec->output_section->vma
 	       + sec->output_offset);
-        }
+	}
       else
 	symval += irel->r_addend;
 
       if ((symval & 0xffff8000) == 0
 	  || (symval & 0xffff8000) == 0xffff8000)
 	{
-          /* We can delete this instruction.  */
+	  /* We can delete this instruction.  */
 	  sec->relax[sec->relax_count].addr = irel->r_offset;
 	  sec->relax[sec->relax_count].size = INST_WORD_SIZE;
 	  sec->relax_count++;
 
 	  /* Rewrite relocation type.  */
-          switch ((enum elf_microblaze_reloc_type) ELF32_R_TYPE (irel->r_info))
+	  switch ((enum elf_microblaze_reloc_type) ELF32_R_TYPE (irel->r_info))
 	    {
 	    case R_MICROBLAZE_64_PCREL:
 	      irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-                                           (int) R_MICROBLAZE_32_PCREL_LO);
+					   (int) R_MICROBLAZE_32_PCREL_LO);
 	      break;
 	    case R_MICROBLAZE_64:
-              irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
-                                           (int) R_MICROBLAZE_32_LO);
+	      irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+					   (int) R_MICROBLAZE_32_LO);
 	      break;
 	    default:
 	      /* Cannot happen.  */
 	      BFD_ASSERT (FALSE);
-            }
-        }
+	    }
+	}
     } /* Loop through all relocations.  */
 
   /* Loop through the relocs again, and see if anything needs to change.  */
@@ -1820,12 +1806,12 @@ microblaze_elf_relax_section (bfd *abfd,
       sec->relax[sec->relax_count].addr = sec->size;
 
       for (irel = internal_relocs; irel < irelend; irel++, rel_count++)
-        {
+	{
 	  bfd_vma nraddr;
 
-          /* Get the new reloc address.  */
+	  /* Get the new reloc address.  */
 	  nraddr = irel->r_offset - calc_fixup (irel->r_offset, 0, sec);
-          switch ((enum elf_microblaze_reloc_type) ELF32_R_TYPE (irel->r_info))
+	  switch ((enum elf_microblaze_reloc_type) ELF32_R_TYPE (irel->r_info))
 	    {
 	    default:
 	      break;
@@ -1834,105 +1820,105 @@ microblaze_elf_relax_section (bfd *abfd,
 	    case R_MICROBLAZE_64:
 	    case R_MICROBLAZE_32_LO:
 	      /* If this reloc is against a symbol defined in this
-	         section, we must check the addend to see it will put the value in
-	         range to be adjusted, and hence must be changed.  */
+		 section, we must check the addend to see it will put the value in
+		 range to be adjusted, and hence must be changed.  */
 	      if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info)
-	        {
+		{
 		  isym = isymbuf + ELF32_R_SYM (irel->r_info);
 		  /* Only handle relocs against .text.  */
 		  if (isym->st_shndx == shndx
 		      && ELF32_ST_TYPE (isym->st_info) == STT_SECTION)
 		    irel->r_addend -= calc_fixup (irel->r_addend, 0, sec);
-	        }
+		}
 	      break;
 	    case R_MICROBLAZE_NONE:
 	      {
-	        /* This was a PC-relative instruction that was
- 		   completely resolved.  */
-	        int sfix, efix;
-	        bfd_vma target_address;
-	        target_address = irel->r_addend + irel->r_offset;
-	        sfix = calc_fixup (irel->r_offset, 0, sec);
-	        efix = calc_fixup (target_address, 0, sec);
-	        irel->r_addend -= (efix - sfix);
-	        /* Should use HOWTO.  */
-	        microblaze_bfd_write_imm_value_32 (abfd, contents + irel->r_offset,
-	                                           irel->r_addend);
+		/* This was a PC-relative instruction that was
+		   completely resolved.  */
+		int sfix, efix;
+		bfd_vma target_address;
+		target_address = irel->r_addend + irel->r_offset;
+		sfix = calc_fixup (irel->r_offset, 0, sec);
+		efix = calc_fixup (target_address, 0, sec);
+		irel->r_addend -= (efix - sfix);
+		/* Should use HOWTO.  */
+		microblaze_bfd_write_imm_value_32 (abfd, contents + irel->r_offset,
+						   irel->r_addend);
 	      }
 	      break;
 	    case R_MICROBLAZE_64_NONE:
 	      {
-	        /* This was a PC-relative 64-bit instruction that was
- 		   completely resolved.  */
-	        int sfix, efix;
-	        bfd_vma target_address;
+		/* This was a PC-relative 64-bit instruction that was
+		   completely resolved.  */
+		int sfix, efix;
+		bfd_vma target_address;
 		target_address = irel->r_addend + irel->r_offset + INST_WORD_SIZE;
 		sfix = calc_fixup (irel->r_offset + INST_WORD_SIZE, 0, sec);
 		efix = calc_fixup (target_address, 0, sec);
 		irel->r_addend -= (efix - sfix);
     microblaze_bfd_write_imm_value_32 (abfd, contents + irel->r_offset
-                                       + INST_WORD_SIZE, irel->r_addend);
+				       + INST_WORD_SIZE, irel->r_addend);
 	      }
 	      break;
 	    }
-          irel->r_offset = nraddr;
-        } /* Change all relocs in this section.  */
+	  irel->r_offset = nraddr;
+	} /* Change all relocs in this section.  */
 
       /* Look through all other sections.  */
       for (o = abfd->sections; o != NULL; o = o->next)
-        {
-          Elf_Internal_Rela *irelocs;
-          Elf_Internal_Rela *irelscan, *irelscanend;
-          bfd_byte *ocontents;
-
-          if (o == sec
-              || (o->flags & SEC_RELOC) == 0
-              || o->reloc_count == 0)
-            continue;
-
-          /* We always cache the relocs.  Perhaps, if info->keep_memory is
-             FALSE, we should free them, if we are permitted to.  */
-
-          irelocs = _bfd_elf_link_read_relocs (abfd, o, NULL, NULL, TRUE);
-          if (irelocs == NULL)
-            goto error_return;
-
-          ocontents = NULL;
-          irelscanend = irelocs + o->reloc_count;
-          for (irelscan = irelocs; irelscan < irelscanend; irelscan++)
-            {
-              if (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32)
-                {
-	          isym = isymbuf + ELF32_R_SYM (irelscan->r_info);
-
-                  /* Look at the reloc only if the value has been resolved.  */
-                  if (isym->st_shndx == shndx
-                      && (ELF32_ST_TYPE (isym->st_info) == STT_SECTION))
-                    {
-                      if (ocontents == NULL)
-                        {
-                          if (elf_section_data (o)->this_hdr.contents != NULL)
-                            ocontents = elf_section_data (o)->this_hdr.contents;
-                          else
-                            {
-                              /* We always cache the section contents.
-                                 Perhaps, if info->keep_memory is FALSE, we
-                                 should free them, if we are permitted to.  */
-		              if (o->rawsize == 0)
-			        o->rawsize = o->size;
-                              ocontents = (bfd_byte *) bfd_malloc (o->rawsize);
-                              if (ocontents == NULL)
-                                goto error_return;
-                              if (!bfd_get_section_contents (abfd, o, ocontents,
-                                                             (file_ptr) 0,
+	{
+	  Elf_Internal_Rela *irelocs;
+	  Elf_Internal_Rela *irelscan, *irelscanend;
+	  bfd_byte *ocontents;
+
+	  if (o == sec
+	      || (o->flags & SEC_RELOC) == 0
+	      || o->reloc_count == 0)
+	    continue;
+
+	  /* We always cache the relocs.  Perhaps, if info->keep_memory is
+	     FALSE, we should free them, if we are permitted to.  */
+
+	  irelocs = _bfd_elf_link_read_relocs (abfd, o, NULL, NULL, TRUE);
+	  if (irelocs == NULL)
+	    goto error_return;
+
+	  ocontents = NULL;
+	  irelscanend = irelocs + o->reloc_count;
+	  for (irelscan = irelocs; irelscan < irelscanend; irelscan++)
+	    {
+	      if (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32)
+		{
+		  isym = isymbuf + ELF32_R_SYM (irelscan->r_info);
+
+		  /* Look at the reloc only if the value has been resolved.  */
+		  if (isym->st_shndx == shndx
+		      && (ELF32_ST_TYPE (isym->st_info) == STT_SECTION))
+		    {
+		      if (ocontents == NULL)
+			{
+			  if (elf_section_data (o)->this_hdr.contents != NULL)
+			    ocontents = elf_section_data (o)->this_hdr.contents;
+			  else
+			    {
+			      /* We always cache the section contents.
+				 Perhaps, if info->keep_memory is FALSE, we
+				 should free them, if we are permitted to.  */
+			      if (o->rawsize == 0)
+				o->rawsize = o->size;
+			      ocontents = (bfd_byte *) bfd_malloc (o->rawsize);
+			      if (ocontents == NULL)
+				goto error_return;
+			      if (!bfd_get_section_contents (abfd, o, ocontents,
+							     (file_ptr) 0,
 							     o->rawsize))
-                                goto error_return;
-                              elf_section_data (o)->this_hdr.contents = ocontents;
-                            }
+				goto error_return;
+			      elf_section_data (o)->this_hdr.contents = ocontents;
+			    }
 
-                        }
+			}
 		      irelscan->r_addend -= calc_fixup (irelscan->r_addend, 0, sec);
-                    }
+		    }
 		  else if (ELF32_R_TYPE (irelscan->r_info) == (int) R_MICROBLAZE_32_SYM_OP_SYM)
 		    {
 		      isym = isymbuf + ELF32_R_SYM (irelscan->r_info);
@@ -2006,8 +1992,8 @@ microblaze_elf_relax_section (bfd *abfd,
 		      offset = calc_fixup (target_address, 0, sec);
 		      immediate -= offset;
 		      irelscan->r_addend -= offset;
-          microblaze_bfd_write_imm_value_32 (abfd, ocontents + irelscan->r_offset,
-                                             irelscan->r_addend);
+	  microblaze_bfd_write_imm_value_32 (abfd, ocontents + irelscan->r_offset,
+					     irelscan->r_addend);
 		    }
 		}
 
@@ -2043,13 +2029,13 @@ microblaze_elf_relax_section (bfd *abfd,
 			      elf_section_data (o)->this_hdr.contents = ocontents;
 			    }
 			}
-          unsigned long instr_hi =  bfd_get_32 (abfd, ocontents
-                                                + irelscan->r_offset);
-          unsigned long instr_lo =  bfd_get_32 (abfd, ocontents
-                                                + irelscan->r_offset
-                                                + INST_WORD_SIZE);
-          immediate = (instr_hi & 0x0000ffff) << 16;
-          immediate |= (instr_lo & 0x0000ffff);
+	  unsigned long instr_hi =  bfd_get_32 (abfd, ocontents
+						+ irelscan->r_offset);
+	  unsigned long instr_lo =  bfd_get_32 (abfd, ocontents
+						+ irelscan->r_offset
+						+ INST_WORD_SIZE);
+	  immediate = (instr_hi & 0x0000ffff) << 16;
+	  immediate |= (instr_lo & 0x0000ffff);
 		      offset = calc_fixup (irelscan->r_addend, 0, sec);
 		      immediate -= offset;
 		      irelscan->r_addend -= offset;
@@ -2087,66 +2073,66 @@ microblaze_elf_relax_section (bfd *abfd,
 			      elf_section_data (o)->this_hdr.contents = ocontents;
 			    }
 			}
-          unsigned long instr_hi =  bfd_get_32 (abfd, ocontents
-                                                + irelscan->r_offset);
-          unsigned long instr_lo =  bfd_get_32 (abfd, ocontents
-                                                + irelscan->r_offset
-                                                + INST_WORD_SIZE);
-          immediate = (instr_hi & 0x0000ffff) << 16;
-          immediate |= (instr_lo & 0x0000ffff);
+	  unsigned long instr_hi =  bfd_get_32 (abfd, ocontents
+						+ irelscan->r_offset);
+	  unsigned long instr_lo =  bfd_get_32 (abfd, ocontents
+						+ irelscan->r_offset
+						+ INST_WORD_SIZE);
+	  immediate = (instr_hi & 0x0000ffff) << 16;
+	  immediate |= (instr_lo & 0x0000ffff);
 		      target_address = immediate;
 		      offset = calc_fixup (target_address, 0, sec);
 		      immediate -= offset;
 		      irelscan->r_addend -= offset;
-          microblaze_bfd_write_imm_value_64 (abfd, ocontents
-                                             + irelscan->r_offset, immediate);
+	  microblaze_bfd_write_imm_value_64 (abfd, ocontents
+					     + irelscan->r_offset, immediate);
 		    }
 		}
-            }
-        }
+	    }
+	}
 
       /* Adjust the local symbols defined in this section.  */
       isymend = isymbuf + symtab_hdr->sh_info;
       for (isym = isymbuf; isym < isymend; isym++)
-        {
-          if (isym->st_shndx == shndx)
-            {
-              isym->st_value -= calc_fixup (isym->st_value, 0, sec);
-              if (isym->st_size)
-                isym->st_size -= calc_fixup (isym->st_value, isym->st_size, sec);
-            }
-        }
+	{
+	  if (isym->st_shndx == shndx)
+	    {
+	      isym->st_value -= calc_fixup (isym->st_value, 0, sec);
+	      if (isym->st_size)
+		isym->st_size -= calc_fixup (isym->st_value, isym->st_size, sec);
+	    }
+	}
 
       /* Now adjust the global symbols defined in this section.  */
       isym = isymbuf + symtab_hdr->sh_info;
       symcount =  (symtab_hdr->sh_size / sizeof (Elf32_External_Sym)) - symtab_hdr->sh_info;
       for (sym_index = 0; sym_index < symcount; sym_index++)
-        {
-          sym_hash = elf_sym_hashes (abfd)[sym_index];
-          if ((sym_hash->root.type == bfd_link_hash_defined
-                  || sym_hash->root.type == bfd_link_hash_defweak)
-              && sym_hash->root.u.def.section == sec)
-            {
-              sym_hash->root.u.def.value -= calc_fixup (sym_hash->root.u.def.value,
-                                                        0, sec);
-              if (sym_hash->size)
-                sym_hash->size -= calc_fixup (sym_hash->root.u.def.value,
-                                              sym_hash->size, sec);
-            }
-        }
+	{
+	  sym_hash = elf_sym_hashes (abfd)[sym_index];
+	  if ((sym_hash->root.type == bfd_link_hash_defined
+		  || sym_hash->root.type == bfd_link_hash_defweak)
+	      && sym_hash->root.u.def.section == sec)
+	    {
+	      sym_hash->root.u.def.value -= calc_fixup (sym_hash->root.u.def.value,
+							0, sec);
+	      if (sym_hash->size)
+		sym_hash->size -= calc_fixup (sym_hash->root.u.def.value,
+					      sym_hash->size, sec);
+	    }
+	}
 
       /* Physically move the code and change the cooked size.  */
       dest = sec->relax[0].addr;
       for (i = 0; i < sec->relax_count; i++)
-        {
-          int len;
-          src = sec->relax[i].addr + sec->relax[i].size;
-          len = sec->relax[i+1].addr - sec->relax[i].addr - sec->relax[i].size;
-
-          memmove (contents + dest, contents + src, len);
-          sec->size -= sec->relax[i].size;
-          dest += len;
-        }
+	{
+	  int len;
+	  src = sec->relax[i].addr + sec->relax[i].size;
+	  len = sec->relax[i+1].addr - sec->relax[i].addr - sec->relax[i].size;
+
+	  memmove (contents + dest, contents + src, len);
+	  sec->size -= sec->relax[i].size;
+	  dest += len;
+	}
 
       elf_section_data (sec)->relocs = internal_relocs;
       free_relocs = NULL;
@@ -2203,9 +2189,9 @@ microblaze_elf_relax_section (bfd *abfd,
 static asection *
 microblaze_elf_gc_mark_hook (asection *sec,
 			     struct bfd_link_info * info,
-     			     Elf_Internal_Rela * rel,
-     			     struct elf_link_hash_entry * h,
-     			     Elf_Internal_Sym * sym)
+			     Elf_Internal_Rela * rel,
+			     struct elf_link_hash_entry * h,
+			     Elf_Internal_Sym * sym)
 {
   if (h != NULL)
     switch (ELF32_R_TYPE (rel->r_info))
@@ -2218,26 +2204,15 @@ microblaze_elf_gc_mark_hook (asection *s
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-/* Update the got entry reference counts for the section being removed.  */
-
-static bfd_boolean
-microblaze_elf_gc_sweep_hook (bfd * abfd ATTRIBUTE_UNUSED,
-     			      struct bfd_link_info * info ATTRIBUTE_UNUSED,
-     			      asection * sec ATTRIBUTE_UNUSED,
-     			      const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED)
-{
-  return TRUE;
-}
-
 /* PIC support.  */
 
 #define PLT_ENTRY_SIZE 16
 
-#define PLT_ENTRY_WORD_0  0xb0000000          /* "imm 0".  */
-#define PLT_ENTRY_WORD_1  0xe9940000          /* "lwi r12,r20,0" - relocated to lwi r12,r20,func@GOT.  */
-#define PLT_ENTRY_WORD_1_NOPIC  0xe9800000    /* "lwi r12,r0,0" - non-PIC object.  */
-#define PLT_ENTRY_WORD_2  0x98186000          /* "brad r12".  */
-#define PLT_ENTRY_WORD_3  0x80000000          /* "nop".  */
+#define PLT_ENTRY_WORD_0  0xb0000000	      /* "imm 0".  */
+#define PLT_ENTRY_WORD_1  0xe9940000	      /* "lwi r12,r20,0" - relocated to lwi r12,r20,func@GOT.  */
+#define PLT_ENTRY_WORD_1_NOPIC	0xe9800000    /* "lwi r12,r0,0" - non-PIC object.  */
+#define PLT_ENTRY_WORD_2  0x98186000	      /* "brad r12".  */
+#define PLT_ENTRY_WORD_3  0x80000000	      /* "nop".  */
 
 static bfd_boolean
 update_local_sym_info (bfd *abfd,
@@ -2255,12 +2230,12 @@ update_local_sym_info (bfd *abfd,
       size *= (sizeof (*local_got_refcounts) + sizeof (*local_got_tls_masks));
       local_got_refcounts = bfd_zalloc (abfd, size);
       if (local_got_refcounts == NULL)
-        return FALSE;
+	return FALSE;
       elf_local_got_refcounts (abfd) = local_got_refcounts;
     }
 
   local_got_tls_masks =
-         (unsigned char *) (local_got_refcounts + symtab_hdr->sh_info);
+	 (unsigned char *) (local_got_refcounts + symtab_hdr->sh_info);
   local_got_tls_masks[r_symndx] |= tls_type;
   local_got_refcounts[r_symndx] += 1;
 
@@ -2271,14 +2246,14 @@ update_local_sym_info (bfd *abfd,
 static bfd_boolean
 microblaze_elf_check_relocs (bfd * abfd,
 			     struct bfd_link_info * info,
-     			     asection * sec,
+			     asection * sec,
 			     const Elf_Internal_Rela * relocs)
 {
-  Elf_Internal_Shdr *           symtab_hdr;
+  Elf_Internal_Shdr *		symtab_hdr;
   struct elf_link_hash_entry ** sym_hashes;
   struct elf_link_hash_entry ** sym_hashes_end;
-  const Elf_Internal_Rela *     rel;
-  const Elf_Internal_Rela *     rel_end;
+  const Elf_Internal_Rela *	rel;
+  const Elf_Internal_Rela *	rel_end;
   struct elf32_mb_link_hash_table *htab;
   asection *sreloc = NULL;
 
@@ -2308,77 +2283,86 @@ microblaze_elf_check_relocs (bfd * abfd,
       r_type = ELF32_R_TYPE (rel->r_info);
 
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes [r_symndx - symtab_hdr->sh_info];
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
+	  while (h->root.type == bfd_link_hash_indirect
+		 || h->root.type == bfd_link_hash_warning)
+	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
 	}
 
       switch (r_type)
-        {
+	{
 	  /* This relocation describes the C++ object vtable hierarchy.
 	     Reconstruct it for later use during GC.  */
-        case R_MICROBLAZE_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
+	case R_MICROBLAZE_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
 
 	  /* This relocation describes which C++ vtable entries are actually
 	     used.  Record for later use during GC.  */
-        case R_MICROBLAZE_GNU_VTENTRY:
-          if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
+	case R_MICROBLAZE_GNU_VTENTRY:
+	  if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
 
 	  /* This relocation requires .plt entry.  */
-        case R_MICROBLAZE_PLT_64:
-          if (h != NULL)
+	case R_MICROBLAZE_PLT_64:
+	  if (h != NULL)
 	    {
 	      h->needs_plt = 1;
 	      h->plt.refcount += 1;
 	    }
-          break;
+	  break;
 
 	  /* This relocation requires .got entry.  */
-        case R_MICROBLAZE_TLSGD:
-          tls_type |= (TLS_TLS | TLS_GD);
-          goto dogottls;
-        case R_MICROBLAZE_TLSLD:
-          tls_type |= (TLS_TLS | TLS_LD);
+	case R_MICROBLAZE_TLSGD:
+	  tls_type |= (TLS_TLS | TLS_GD);
+	  goto dogottls;
+	case R_MICROBLAZE_TLSLD:
+	  tls_type |= (TLS_TLS | TLS_LD);
 	  /* Fall through.  */
-        dogottls:
-          sec->has_tls_reloc = 1;
+	dogottls:
+	  sec->has_tls_reloc = 1;
 	  /* Fall through.  */
-        case R_MICROBLAZE_GOTOFF_64:
-        case R_MICROBLAZE_GOT_64:
-          if (htab->elf.sgot == NULL)
-            {
-              if (htab->elf.dynobj == NULL)
-                htab->elf.dynobj = abfd;
-              if (!_bfd_elf_create_got_section (htab->elf.dynobj, info))
-                return FALSE;
-            }
-          if (h != NULL)
+	case R_MICROBLAZE_GOT_64:
+	  if (htab->elf.sgot == NULL)
+	    {
+	      if (htab->elf.dynobj == NULL)
+		htab->elf.dynobj = abfd;
+	      if (!_bfd_elf_create_got_section (htab->elf.dynobj, info))
+		return FALSE;
+	    }
+	  if (h != NULL)
 	    {
 	      h->got.refcount += 1;
 	      elf32_mb_hash_entry (h)->tls_mask |= tls_type;
 	    }
-          else
+	  else
 	    {
 	      if (! update_local_sym_info(abfd, symtab_hdr, r_symndx, tls_type) )
 		return FALSE;
 	    }
-          break;
+	  break;
 
-        case R_MICROBLAZE_64:
-        case R_MICROBLAZE_64_PCREL:
-        case R_MICROBLAZE_32:
-          {
-            if (h != NULL && !bfd_link_pic (info))
+	case R_MICROBLAZE_GOTOFF_64:
+	case R_MICROBLAZE_GOTOFF_32:
+	  if (htab->elf.sgot == NULL)
+	    {
+	      if (htab->elf.dynobj == NULL)
+		htab->elf.dynobj = abfd;
+	      if (!_bfd_elf_create_got_section (htab->elf.dynobj, info))
+		return FALSE;
+	    }
+	  break;
+
+	case R_MICROBLAZE_64:
+	case R_MICROBLAZE_64_PCREL:
+	case R_MICROBLAZE_32:
+	  {
+	    if (h != NULL && !bfd_link_pic (info))
 	      {
 		/* we may need a copy reloc.  */
 		h->non_got_ref = 1;
@@ -2412,25 +2396,25 @@ microblaze_elf_check_relocs (bfd * abfd,
 	       dynamic library if we manage to avoid copy relocs for the
 	       symbol.  */
 
-            if ((bfd_link_pic (info)
-                 && (sec->flags & SEC_ALLOC) != 0
-                 && (r_type != R_MICROBLAZE_64_PCREL
-                     || (h != NULL
+	    if ((bfd_link_pic (info)
+		 && (sec->flags & SEC_ALLOC) != 0
+		 && (r_type != R_MICROBLAZE_64_PCREL
+		     || (h != NULL
 			 && (! info->symbolic
 			     || h->root.type == bfd_link_hash_defweak
 			     || !h->def_regular))))
-                || (!bfd_link_pic (info)
-                    && (sec->flags & SEC_ALLOC) != 0
-                    && h != NULL
-                    && (h->root.type == bfd_link_hash_defweak
-                        || !h->def_regular)))
-              {
-                struct elf32_mb_dyn_relocs *p;
-                struct elf32_mb_dyn_relocs **head;
-
-                /* When creating a shared object, we must copy these
-                   relocs into the output file.  We create a reloc
-                   section in dynobj and make room for the reloc.  */
+		|| (!bfd_link_pic (info)
+		    && (sec->flags & SEC_ALLOC) != 0
+		    && h != NULL
+		    && (h->root.type == bfd_link_hash_defweak
+			|| !h->def_regular)))
+	      {
+		struct elf_dyn_relocs *p;
+		struct elf_dyn_relocs **head;
+
+		/* When creating a shared object, we must copy these
+		   relocs into the output file.  We create a reloc
+		   section in dynobj and make room for the reloc.  */
 
 		if (sreloc == NULL)
 		  {
@@ -2470,14 +2454,14 @@ microblaze_elf_check_relocs (bfd * abfd,
 		      return FALSE;
 
 		    vpp = &elf_section_data (s)->local_dynrel;
-		    head = (struct elf32_mb_dyn_relocs **) vpp;
+		    head = (struct elf_dyn_relocs **) vpp;
 		  }
 
 		p = *head;
 		if (p == NULL || p->sec != sec)
 		  {
 		    bfd_size_type amt = sizeof *p;
-		    p = ((struct elf32_mb_dyn_relocs *)
+		    p = ((struct elf_dyn_relocs *)
 			 bfd_alloc (htab->elf.dynobj, amt));
 		    if (p == NULL)
 		      return FALSE;
@@ -2492,9 +2476,9 @@ microblaze_elf_check_relocs (bfd * abfd,
 		if (r_type == R_MICROBLAZE_64_PCREL)
 		  p->pc_count += 1;
 	      }
-          }
-          break;
-        }
+	  }
+	  break;
+	}
     }
 
   return TRUE;
@@ -2516,8 +2500,8 @@ microblaze_elf_copy_indirect_symbol (str
     {
       if (edir->dyn_relocs != NULL)
 	{
-	  struct elf32_mb_dyn_relocs **pp;
-	  struct elf32_mb_dyn_relocs *p;
+	  struct elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs *p;
 
 	  if (ind->root.type == bfd_link_hash_indirect)
 	    abort ();
@@ -2526,7 +2510,7 @@ microblaze_elf_copy_indirect_symbol (str
 	     list.  Merge any entries against the same section.  */
 	  for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
 	    {
-	      struct elf32_mb_dyn_relocs *q;
+	      struct elf_dyn_relocs *q;
 
 	      for (q = edir->dyn_relocs; q != NULL; q = q->next)
 		if (q->sec == p->sec)
@@ -2551,13 +2535,28 @@ microblaze_elf_copy_indirect_symbol (str
   _bfd_elf_link_hash_copy_indirect (info, dir, ind);
 }
 
+/* Find dynamic relocs for H that apply to read-only sections.  */
+
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
+
+  for (p = elf32_mb_hash_entry (h)->dyn_relocs; p != NULL; p = p->next)
+    {
+      asection *s = p->sec->output_section;
+
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
+    }
+  return NULL;
+}
+
 static bfd_boolean
 microblaze_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
 				      struct elf_link_hash_entry *h)
 {
   struct elf32_mb_link_hash_table *htab;
-  struct elf32_mb_link_hash_entry * eh;
-  struct elf32_mb_dyn_relocs *p;
   asection *s, *srel;
   unsigned int power_of_two;
 
@@ -2598,12 +2597,12 @@ microblaze_elf_adjust_dynamic_symbol (st
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -2629,17 +2628,9 @@ microblaze_elf_adjust_dynamic_symbol (st
       return TRUE;
     }
 
-  eh = (struct elf32_mb_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      s = p->sec->output_section;
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	break;
-    }
-
-  /* If we didn't find any dynamic relocs in read-only sections, then
+  /* If we don't find any dynamic relocs in read-only sections, then
      we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
-  if (p == NULL)
+  if (!readonly_dynrelocs (h))
     {
       h->non_got_ref = 0;
       return TRUE;
@@ -2706,7 +2697,7 @@ allocate_dynrelocs (struct elf_link_hash
   struct bfd_link_info *info;
   struct elf32_mb_link_hash_table *htab;
   struct elf32_mb_link_hash_entry *eh;
-  struct elf32_mb_dyn_relocs *p;
+  struct elf_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
     return TRUE;
@@ -2722,49 +2713,49 @@ allocate_dynrelocs (struct elf_link_hash
       /* Make sure this symbol is output as a dynamic symbol.
 	 Undefined weak syms won't yet be marked as dynamic.  */
       if (h->dynindx == -1
-          && !h->forced_local)
-        {
-          if (! bfd_elf_link_record_dynamic_symbol (info, h))
-            return FALSE;
-        }
+	  && !h->forced_local)
+	{
+	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
+	    return FALSE;
+	}
 
       if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, bfd_link_pic (info), h))
-        {
-          asection *s = htab->elf.splt;
+	{
+	  asection *s = htab->elf.splt;
 
-          /* The first entry in .plt is reserved.  */
-          if (s->size == 0)
-            s->size = PLT_ENTRY_SIZE;
-
-          h->plt.offset = s->size;
-
-          /* If this symbol is not defined in a regular file, and we are
-             not generating a shared library, then set the symbol to this
-             location in the .plt.  This is required to make function
-             pointers compare as equal between the normal executable and
-             the shared library.  */
-          if (! bfd_link_pic (info)
-              && !h->def_regular)
-            {
-              h->root.u.def.section = s;
-              h->root.u.def.value = h->plt.offset;
-            }
+	  /* The first entry in .plt is reserved.  */
+	  if (s->size == 0)
+	    s->size = PLT_ENTRY_SIZE;
+
+	  h->plt.offset = s->size;
+
+	  /* If this symbol is not defined in a regular file, and we are
+	     not generating a shared library, then set the symbol to this
+	     location in the .plt.  This is required to make function
+	     pointers compare as equal between the normal executable and
+	     the shared library.  */
+	  if (! bfd_link_pic (info)
+	      && !h->def_regular)
+	    {
+	      h->root.u.def.section = s;
+	      h->root.u.def.value = h->plt.offset;
+	    }
 
-          /* Make room for this entry.  */
-          s->size += PLT_ENTRY_SIZE;
+	  /* Make room for this entry.  */
+	  s->size += PLT_ENTRY_SIZE;
 
-          /* We also need to make an entry in the .got.plt section, which
-             will be placed in the .got section by the linker script.  */
+	  /* We also need to make an entry in the .got.plt section, which
+	     will be placed in the .got section by the linker script.  */
 	  htab->elf.sgotplt->size += 4;
 
-          /* We also need to make an entry in the .rel.plt section.  */
-          htab->elf.srelplt->size += sizeof (Elf32_External_Rela);
-        }
+	  /* We also need to make an entry in the .rel.plt section.  */
+	  htab->elf.srelplt->size += sizeof (Elf32_External_Rela);
+	}
       else
-        {
-          h->plt.offset = (bfd_vma) -1;
-          h->needs_plt = 0;
-        }
+	{
+	  h->plt.offset = (bfd_vma) -1;
+	  h->needs_plt = 0;
+	}
     }
   else
     {
@@ -2779,47 +2770,47 @@ allocate_dynrelocs (struct elf_link_hash
       asection *s;
 
       /* Make sure this symbol is output as a dynamic symbol.
-         Undefined weak syms won't yet be marked as dynamic.  */
+	 Undefined weak syms won't yet be marked as dynamic.  */
       if (h->dynindx == -1
-          && !h->forced_local)
-        {
-          if (! bfd_elf_link_record_dynamic_symbol (info, h))
-            return FALSE;
-        }
+	  && !h->forced_local)
+	{
+	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
+	    return FALSE;
+	}
 
       need = 0;
       if ((eh->tls_mask & TLS_TLS) != 0)
-        {
-          /* Handle TLS Symbol */
-          if ((eh->tls_mask & TLS_LD) != 0)
-            {
-              if (!eh->elf.def_dynamic)
-                /* We'll just use htab->tlsld_got.offset.  This should
-                   always be the case.  It's a little odd if we have
-                   a local dynamic reloc against a non-local symbol.  */
-                htab->tlsld_got.refcount += 1;
-              else
-                need += 8;
-            }
-          if ((eh->tls_mask & TLS_GD) != 0)
-            need += 8;
-        }
+	{
+	  /* Handle TLS Symbol */
+	  if ((eh->tls_mask & TLS_LD) != 0)
+	    {
+	      if (!eh->elf.def_dynamic)
+		/* We'll just use htab->tlsld_got.offset.  This should
+		   always be the case.  It's a little odd if we have
+		   a local dynamic reloc against a non-local symbol.  */
+		htab->tlsld_got.refcount += 1;
+	      else
+		need += 8;
+	    }
+	  if ((eh->tls_mask & TLS_GD) != 0)
+	    need += 8;
+	}
       else
-        {
-          /* Regular (non-TLS) symbol */
-          need += 4;
-        }
+	{
+	  /* Regular (non-TLS) symbol */
+	  need += 4;
+	}
       if (need == 0)
-        {
-          h->got.offset = (bfd_vma) -1;
-        }
+	{
+	  h->got.offset = (bfd_vma) -1;
+	}
       else
-        {
-          s = htab->elf.sgot;
-          h->got.offset = s->size;
-          s->size += need;
-          htab->elf.srelgot->size += need * (sizeof (Elf32_External_Rela) / 4);
-        }
+	{
+	  s = htab->elf.sgot;
+	  h->got.offset = s->size;
+	  s->size += need;
+	  htab->elf.srelgot->size += need * (sizeof (Elf32_External_Rela) / 4);
+	}
     }
   else
     h->got.offset = (bfd_vma) -1;
@@ -2839,7 +2830,7 @@ allocate_dynrelocs (struct elf_link_hash
 	  && (h->forced_local
 	      || info->symbolic))
 	{
-	  struct elf32_mb_dyn_relocs **pp;
+	  struct elf_dyn_relocs **pp;
 
 	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
 	    {
@@ -2851,6 +2842,8 @@ allocate_dynrelocs (struct elf_link_hash
 		pp = &p->next;
 	    }
 	}
+      else if (UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
+	eh->dyn_relocs = NULL;
     }
   else
     {
@@ -2925,13 +2918,13 @@ microblaze_elf_size_dynamic_sections (bf
       asection *srel;
 
       if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour)
-        continue;
+	continue;
 
       for (s = ibfd->sections; s != NULL; s = s->next)
 	{
-	  struct elf32_mb_dyn_relocs *p;
+	  struct elf_dyn_relocs *p;
 
-	  for (p = ((struct elf32_mb_dyn_relocs *)
+	  for (p = ((struct elf_dyn_relocs *)
 		    elf_section_data (s)->local_dynrel);
 	       p != NULL;
 	       p = p->next)
@@ -2956,7 +2949,7 @@ microblaze_elf_size_dynamic_sections (bf
 
       local_got = elf_local_got_refcounts (ibfd);
       if (!local_got)
-        continue;
+	continue;
 
       symtab_hdr = &elf_tdata (ibfd)->symtab_hdr;
       locsymcount = symtab_hdr->sh_info;
@@ -2991,10 +2984,10 @@ microblaze_elf_size_dynamic_sections (bf
 		  if (bfd_link_pic (info))
 		    srel->size += need * (sizeof (Elf32_External_Rela) / 4);
 		}
-            }
-          else
-            *local_got = (bfd_vma) -1;
-        }
+	    }
+	  else
+	    *local_got = (bfd_vma) -1;
+	}
     }
 
   /* Allocate global sym .plt and .got entries, and space for global
@@ -3006,7 +2999,7 @@ microblaze_elf_size_dynamic_sections (bf
       htab->tlsld_got.offset = htab->elf.sgot->size;
       htab->elf.sgot->size += 8;
       if (bfd_link_pic (info))
-        htab->elf.srelgot->size += sizeof (Elf32_External_Rela);
+	htab->elf.srelgot->size += sizeof (Elf32_External_Rela);
     }
   else
     htab->tlsld_got.offset = (bfd_vma) -1;
@@ -3015,7 +3008,7 @@ microblaze_elf_size_dynamic_sections (bf
     {
       /* Make space for the trailing nop in .plt.  */
       if (htab->elf.splt->size > 0)
-        htab->elf.splt->size += 4;
+	htab->elf.splt->size += 4;
     }
 
   /* The check_relocs and adjust_dynamic_symbol entry points have
@@ -3027,59 +3020,59 @@ microblaze_elf_size_dynamic_sections (bf
       bfd_boolean strip = FALSE;
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
-        continue;
+	continue;
 
       /* It's OK to base decisions on the section name, because none
-         of the dynobj section names depend upon the input files.  */
+	 of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
       if (strncmp (name, ".rela", 5) == 0)
-        {
-          if (s->size == 0)
-            {
-              /* If we don't need this section, strip it from the
-        	 output file.  This is to handle .rela.bss and
-        	 .rela.plt.  We must create it in
-        	 create_dynamic_sections, because it must be created
-        	 before the linker maps input sections to output
-        	 sections.  The linker does that before
-        	 adjust_dynamic_symbol is called, and it is that
-        	 function which decides whether anything needs to go
-        	 into these sections.  */
-              strip = TRUE;
-            }
-          else
-            {
-              /* We use the reloc_count field as a counter if we need
-        	 to copy relocs into the output file.  */
-              s->reloc_count = 0;
-            }
-        }
+	{
+	  if (s->size == 0)
+	    {
+	      /* If we don't need this section, strip it from the
+		 output file.  This is to handle .rela.bss and
+		 .rela.plt.  We must create it in
+		 create_dynamic_sections, because it must be created
+		 before the linker maps input sections to output
+		 sections.  The linker does that before
+		 adjust_dynamic_symbol is called, and it is that
+		 function which decides whether anything needs to go
+		 into these sections.  */
+	      strip = TRUE;
+	    }
+	  else
+	    {
+	      /* We use the reloc_count field as a counter if we need
+		 to copy relocs into the output file.  */
+	      s->reloc_count = 0;
+	    }
+	}
       else if (s != htab->elf.splt
 	       && s != htab->elf.sgot
 	       && s != htab->elf.sgotplt
 	       && s != htab->elf.sdynbss
 	       && s != htab->elf.sdynrelro)
-        {
-          /* It's not one of our sections, so don't allocate space.  */
-          continue;
-        }
+	{
+	  /* It's not one of our sections, so don't allocate space.  */
+	  continue;
+	}
 
       if (strip)
-        {
-          s->flags |= SEC_EXCLUDE;
-          continue;
-        }
+	{
+	  s->flags |= SEC_EXCLUDE;
+	  continue;
+	}
 
       /* Allocate memory for the section contents.  */
       /* FIXME: This should be a call to bfd_alloc not bfd_zalloc.
-         Unused entries should be reclaimed before the section's contents
-         are written out, but at the moment this does not happen.  Thus in
-         order to prevent writing out garbage, we initialise the section's
-         contents to zero.  */
+	 Unused entries should be reclaimed before the section's contents
+	 are written out, but at the moment this does not happen.  Thus in
+	 order to prevent writing out garbage, we initialise the section's
+	 contents to zero.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->size);
       if (s->contents == NULL && s->size != 0)
-        return FALSE;
+	return FALSE;
     }
 
   if (elf_hash_table (info)->dynamic_sections_created)
@@ -3093,31 +3086,31 @@ microblaze_elf_size_dynamic_sections (bf
       _bfd_elf_add_dynamic_entry (info, TAG, VAL)
 
       if (bfd_link_executable (info))
-        {
-          if (!add_dynamic_entry (DT_DEBUG, 0))
-            return FALSE;
-        }
+	{
+	  if (!add_dynamic_entry (DT_DEBUG, 0))
+	    return FALSE;
+	}
 
       if (!add_dynamic_entry (DT_RELA, 0)
-          || !add_dynamic_entry (DT_RELASZ, 0)
-          || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela)))
+	  || !add_dynamic_entry (DT_RELASZ, 0)
+	  || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela)))
 	return FALSE;
 
       if (htab->elf.splt->size != 0)
-        {
-          if (!add_dynamic_entry (DT_PLTGOT, 0)
-              || !add_dynamic_entry (DT_PLTRELSZ, 0)
-              || !add_dynamic_entry (DT_PLTREL, DT_RELA)
-              || !add_dynamic_entry (DT_JMPREL, 0)
-              || !add_dynamic_entry (DT_BIND_NOW, 1))
-            return FALSE;
-        }
+	{
+	  if (!add_dynamic_entry (DT_PLTGOT, 0)
+	      || !add_dynamic_entry (DT_PLTRELSZ, 0)
+	      || !add_dynamic_entry (DT_PLTREL, DT_RELA)
+	      || !add_dynamic_entry (DT_JMPREL, 0)
+	      || !add_dynamic_entry (DT_BIND_NOW, 1))
+	    return FALSE;
+	}
 
       if (info->flags & DF_TEXTREL)
-        {
-          if (!add_dynamic_entry (DT_TEXTREL, 0))
-            return FALSE;
-        }
+	{
+	  if (!add_dynamic_entry (DT_TEXTREL, 0))
+	    return FALSE;
+	}
     }
 #undef add_dynamic_entry
   return TRUE;
@@ -3151,7 +3144,7 @@ microblaze_elf_finish_dynamic_symbol (bf
       bfd_vma got_addr;
 
       /* This symbol has an entry in the procedure linkage table.  Set
-         it up.  */
+	 it up.  */
       BFD_ASSERT (h->dynindx != -1);
 
       splt = htab->elf.splt;
@@ -3165,21 +3158,21 @@ microblaze_elf_finish_dynamic_symbol (bf
 
       /* For non-PIC objects we need absolute address of the GOT entry.  */
       if (!bfd_link_pic (info))
-        got_addr += sgotplt->output_section->vma + sgotplt->output_offset;
+	got_addr += sgotplt->output_section->vma + sgotplt->output_offset;
 
       /* Fill in the entry in the procedure linkage table.  */
       bfd_put_32 (output_bfd, PLT_ENTRY_WORD_0 + ((got_addr >> 16) & 0xffff),
-                  splt->contents + h->plt.offset);
+		  splt->contents + h->plt.offset);
       if (bfd_link_pic (info))
-        bfd_put_32 (output_bfd, PLT_ENTRY_WORD_1 + (got_addr & 0xffff),
-                    splt->contents + h->plt.offset + 4);
+	bfd_put_32 (output_bfd, PLT_ENTRY_WORD_1 + (got_addr & 0xffff),
+		    splt->contents + h->plt.offset + 4);
       else
-        bfd_put_32 (output_bfd, PLT_ENTRY_WORD_1_NOPIC + (got_addr & 0xffff),
-                    splt->contents + h->plt.offset + 4);
+	bfd_put_32 (output_bfd, PLT_ENTRY_WORD_1_NOPIC + (got_addr & 0xffff),
+		    splt->contents + h->plt.offset + 4);
       bfd_put_32 (output_bfd, (bfd_vma) PLT_ENTRY_WORD_2,
-                  splt->contents + h->plt.offset + 8);
+		  splt->contents + h->plt.offset + 8);
       bfd_put_32 (output_bfd, (bfd_vma) PLT_ENTRY_WORD_3,
-                  splt->contents + h->plt.offset + 12);
+		  splt->contents + h->plt.offset + 12);
 
       /* Any additions to the .got section??? */
       /*      bfd_put_32 (output_bfd,
@@ -3188,8 +3181,8 @@ microblaze_elf_finish_dynamic_symbol (bf
 
       /* Fill in the entry in the .rela.plt section.  */
       rela.r_offset = (sgotplt->output_section->vma
-                       + sgotplt->output_offset
-                       + got_offset);
+		       + sgotplt->output_offset
+		       + got_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_MICROBLAZE_JUMP_SLOT);
       rela.r_addend = 0;
       loc = srela->contents;
@@ -3197,25 +3190,25 @@ microblaze_elf_finish_dynamic_symbol (bf
       bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
 
       if (!h->def_regular)
-        {
-          /* Mark the symbol as undefined, rather than as defined in
-             the .plt section.  Zero the value.  */
-          sym->st_shndx = SHN_UNDEF;
-          sym->st_value = 0;
-        }
+	{
+	  /* Mark the symbol as undefined, rather than as defined in
+	     the .plt section.  Zero the value.  */
+	  sym->st_shndx = SHN_UNDEF;
+	  sym->st_value = 0;
+	}
     }
 
   /* h->got.refcount to be checked ? */
   if (h->got.offset != (bfd_vma) -1 &&
       ! ((h->got.offset & 1) ||
-          IS_TLS_LD(eh->tls_mask) || IS_TLS_GD(eh->tls_mask)))
+	  IS_TLS_LD(eh->tls_mask) || IS_TLS_GD(eh->tls_mask)))
     {
       asection *sgot;
       asection *srela;
       bfd_vma offset;
 
       /* This symbol has an entry in the global offset table.  Set it
-         up.  */
+	 up.  */
 
       sgot = htab->elf.sgot;
       srela = htab->elf.srelgot;
@@ -3225,15 +3218,15 @@ microblaze_elf_finish_dynamic_symbol (bf
 		+ (h->got.offset &~ (bfd_vma) 1));
 
       /* If this is a -Bsymbolic link, and the symbol is defined
-         locally, we just want to emit a RELATIVE reloc.  Likewise if
-         the symbol was forced to be local because of a version file.
-         The entry in the global offset table will already have been
-         initialized in the relocate_section function.  */
+	 locally, we just want to emit a RELATIVE reloc.  Likewise if
+	 the symbol was forced to be local because of a version file.
+	 The entry in the global offset table will already have been
+	 initialized in the relocate_section function.  */
       if (bfd_link_pic (info)
-          && ((info->symbolic && h->def_regular)
+	  && ((info->symbolic && h->def_regular)
 	      || h->dynindx == -1))
-        {
-          asection *sec = h->root.u.def.section;
+	{
+	  asection *sec = h->root.u.def.section;
 	  bfd_vma value;
 
 	  value = h->root.u.def.value;
@@ -3243,23 +3236,23 @@ microblaze_elf_finish_dynamic_symbol (bf
 	       it is too late to change our minds now...  */
 	    value += sec->output_section->vma + sec->output_offset;
 
-          microblaze_elf_output_dynamic_relocation (output_bfd,
-                                                    srela, srela->reloc_count++,
-                                                    /* symindex= */ 0,
-                                                    R_MICROBLAZE_REL, offset,
-                                                    value);
-        }
+	  microblaze_elf_output_dynamic_relocation (output_bfd,
+						    srela, srela->reloc_count++,
+						    /* symindex= */ 0,
+						    R_MICROBLAZE_REL, offset,
+						    value);
+	}
       else
-        {
-          microblaze_elf_output_dynamic_relocation (output_bfd,
-                                                    srela, srela->reloc_count++,
-                                                    h->dynindx,
-                                                    R_MICROBLAZE_GLOB_DAT,
-                                                    offset, 0);
-        }
+	{
+	  microblaze_elf_output_dynamic_relocation (output_bfd,
+						    srela, srela->reloc_count++,
+						    h->dynindx,
+						    R_MICROBLAZE_GLOB_DAT,
+						    offset, 0);
+	}
 
       bfd_put_32 (output_bfd, (bfd_vma) 0,
-                  sgot->contents + (h->got.offset &~ (bfd_vma) 1));
+		  sgot->contents + (h->got.offset &~ (bfd_vma) 1));
     }
 
   if (h->needs_copy)
@@ -3273,8 +3266,8 @@ microblaze_elf_finish_dynamic_symbol (bf
       BFD_ASSERT (h->dynindx != -1);
 
       rela.r_offset = (h->root.u.def.value
-                       + h->root.u.def.section->output_section->vma
-                       + h->root.u.def.section->output_offset);
+		       + h->root.u.def.section->output_section->vma
+		       + h->root.u.def.section->output_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_MICROBLAZE_COPY);
       rela.r_addend = 0;
       if (h->root.u.def.section == htab->elf.sdynrelro)
@@ -3321,15 +3314,15 @@ microblaze_elf_finish_dynamic_sections (
       dyncon = (Elf32_External_Dyn *) sdyn->contents;
       dynconend = (Elf32_External_Dyn *) (sdyn->contents + sdyn->size);
       for (; dyncon < dynconend; dyncon++)
-        {
-          Elf_Internal_Dyn dyn;
+	{
+	  Elf_Internal_Dyn dyn;
 	  asection *s;
-          bfd_boolean size;
+	  bfd_boolean size;
 
-          bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
+	  bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
 
-          switch (dyn.d_tag)
-            {
+	  switch (dyn.d_tag)
+	    {
 	    case DT_PLTGOT:
 	      s = htab->elf.sgotplt;
 	      size = FALSE;
@@ -3347,7 +3340,7 @@ microblaze_elf_finish_dynamic_sections (
 
 	    default:
 	      continue;
-            }
+	    }
 
 	  if (s == NULL)
 	    dyn.d_un.d_val = 0;
@@ -3359,7 +3352,7 @@ microblaze_elf_finish_dynamic_sections (
 		dyn.d_un.d_val = s->size;
 	    }
 	  bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
-        }
+	}
 
       splt = htab->elf.splt;
       BFD_ASSERT (splt != NULL && sdyn != NULL);
@@ -3367,11 +3360,11 @@ microblaze_elf_finish_dynamic_sections (
       /* Clear the first entry in the procedure linkage table,
 	 and put a nop in the last four bytes.  */
       if (splt->size > 0)
-        {
-          memset (splt->contents, 0, PLT_ENTRY_SIZE);
-          bfd_put_32 (output_bfd, (bfd_vma) 0x80000000 /* nop.  */,
-                      splt->contents + splt->size - 4);
-        }
+	{
+	  memset (splt->contents, 0, PLT_ENTRY_SIZE);
+	  bfd_put_32 (output_bfd, (bfd_vma) 0x80000000 /* nop.  */,
+		      splt->contents + splt->size - 4);
+	}
 
       elf_section_data (splt->output_section)->this_hdr.sh_entsize = 4;
     }
@@ -3382,11 +3375,11 @@ microblaze_elf_finish_dynamic_sections (
   if (sgot && sgot->size > 0)
     {
       if (sdyn == NULL)
-        bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents);
+	bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents);
       else
-        bfd_put_32 (output_bfd,
-                    sdyn->output_section->vma + sdyn->output_offset,
-                    sgot->contents);
+	bfd_put_32 (output_bfd,
+		    sdyn->output_section->vma + sdyn->output_offset,
+		    sgot->contents);
       elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4;
     }
 
@@ -3401,12 +3394,12 @@ microblaze_elf_finish_dynamic_sections (
 
 static bfd_boolean
 microblaze_elf_add_symbol_hook (bfd *abfd,
-			        struct bfd_link_info *info,
-			        Elf_Internal_Sym *sym,
-			        const char **namep ATTRIBUTE_UNUSED,
-			        flagword *flagsp ATTRIBUTE_UNUSED,
-			        asection **secp,
-			        bfd_vma *valp)
+				struct bfd_link_info *info,
+				Elf_Internal_Sym *sym,
+				const char **namep ATTRIBUTE_UNUSED,
+				flagword *flagsp ATTRIBUTE_UNUSED,
+				asection **secp,
+				bfd_vma *valp)
 {
   if (sym->st_shndx == SHN_COMMON
       && !bfd_link_relocatable (info)
@@ -3416,8 +3409,8 @@ microblaze_elf_add_symbol_hook (bfd *abf
 	 put into .sbss.  */
       *secp = bfd_make_section_old_way (abfd, ".sbss");
       if (*secp == NULL
-          || ! bfd_set_section_flags (abfd, *secp, SEC_IS_COMMON))
-        return FALSE;
+	  || ! bfd_set_section_flags (abfd, *secp, SEC_IS_COMMON))
+	return FALSE;
 
       *valp = sym->st_size;
     }
@@ -3428,7 +3421,7 @@ microblaze_elf_add_symbol_hook (bfd *abf
 #define TARGET_LITTLE_SYM      microblaze_elf32_le_vec
 #define TARGET_LITTLE_NAME     "elf32-microblazeel"
 
-#define TARGET_BIG_SYM          microblaze_elf32_vec
+#define TARGET_BIG_SYM		microblaze_elf32_vec
 #define TARGET_BIG_NAME		"elf32-microblaze"
 
 #define ELF_ARCH		bfd_arch_microblaze
@@ -3440,31 +3433,30 @@ microblaze_elf_add_symbol_hook (bfd *abf
 #define elf_info_to_howto_rel	NULL
 
 #define bfd_elf32_bfd_reloc_type_lookup		microblaze_elf_reloc_type_lookup
-#define bfd_elf32_bfd_is_local_label_name       microblaze_elf_is_local_label_name
+#define bfd_elf32_bfd_is_local_label_name	microblaze_elf_is_local_label_name
 #define elf_backend_relocate_section		microblaze_elf_relocate_section
-#define bfd_elf32_bfd_relax_section             microblaze_elf_relax_section
-#define bfd_elf32_bfd_merge_private_bfd_data    _bfd_generic_verify_endian_match
+#define bfd_elf32_bfd_relax_section		microblaze_elf_relax_section
+#define bfd_elf32_bfd_merge_private_bfd_data	_bfd_generic_verify_endian_match
 #define bfd_elf32_bfd_reloc_name_lookup		microblaze_elf_reloc_name_lookup
 
 #define elf_backend_gc_mark_hook		microblaze_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook		microblaze_elf_gc_sweep_hook
-#define elf_backend_check_relocs                microblaze_elf_check_relocs
-#define elf_backend_copy_indirect_symbol        microblaze_elf_copy_indirect_symbol
-#define bfd_elf32_bfd_link_hash_table_create    microblaze_elf_link_hash_table_create
+#define elf_backend_check_relocs		microblaze_elf_check_relocs
+#define elf_backend_copy_indirect_symbol	microblaze_elf_copy_indirect_symbol
+#define bfd_elf32_bfd_link_hash_table_create	microblaze_elf_link_hash_table_create
 #define elf_backend_can_gc_sections		1
-#define elf_backend_can_refcount    		1
-#define elf_backend_want_got_plt    		1
-#define elf_backend_plt_readonly    		1
-#define elf_backend_got_header_size 		12
+#define elf_backend_can_refcount		1
+#define elf_backend_want_got_plt		1
+#define elf_backend_plt_readonly		1
+#define elf_backend_got_header_size		12
 #define elf_backend_want_dynrelro		1
-#define elf_backend_rela_normal     		1
+#define elf_backend_rela_normal			1
 #define elf_backend_dtrel_excludes_plt		1
 
-#define elf_backend_adjust_dynamic_symbol       microblaze_elf_adjust_dynamic_symbol
-#define elf_backend_create_dynamic_sections     _bfd_elf_create_dynamic_sections
-#define elf_backend_finish_dynamic_sections     microblaze_elf_finish_dynamic_sections
-#define elf_backend_finish_dynamic_symbol       microblaze_elf_finish_dynamic_symbol
-#define elf_backend_size_dynamic_sections       microblaze_elf_size_dynamic_sections
+#define elf_backend_adjust_dynamic_symbol	microblaze_elf_adjust_dynamic_symbol
+#define elf_backend_create_dynamic_sections	_bfd_elf_create_dynamic_sections
+#define elf_backend_finish_dynamic_sections	microblaze_elf_finish_dynamic_sections
+#define elf_backend_finish_dynamic_symbol	microblaze_elf_finish_dynamic_symbol
+#define elf_backend_size_dynamic_sections	microblaze_elf_size_dynamic_sections
 #define elf_backend_add_symbol_hook		microblaze_elf_add_symbol_hook
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-mips.c ./bfd/elf32-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-mips.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-mips.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* MIPS-specific support for 32-bit ELF
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    Most of the information added by Ian Lance Taylor, Cygnus Support,
    <ian@cygnus.com>.
@@ -172,7 +172,7 @@ static reloc_howto_type elf_mips_howto_t
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 			/* This needs complex overflow
+				/* This needs complex overflow
 				   detection, because the upper four
 				   bits must match the PC + 4.  */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
@@ -534,7 +534,7 @@ static reloc_howto_type elf_mips_howto_t
 
   /* Protected jump conversion.  This is an optimization hint.  No
      relocation is required for correctness.  */
-  HOWTO (R_MIPS_JALR,	        /* type */
+  HOWTO (R_MIPS_JALR,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -542,7 +542,7 @@ static reloc_howto_type elf_mips_howto_t
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
-	 "R_MIPS_JALR",	        /* name */
+	 "R_MIPS_JALR",		/* name */
 	 FALSE,			/* partial_inplace */
 	 0x00000000,		/* src_mask */
 	 0x00000000,		/* dst_mask */
@@ -838,7 +838,7 @@ static reloc_howto_type elf_mips16_howto
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 			/* This needs complex overflow
+				/* This needs complex overflow
 				   detection, because the upper four
 				   bits must match the PC.  */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
@@ -860,7 +860,7 @@ static reloc_howto_type elf_mips16_howto
 	 "R_MIPS16_GPREL",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0x0000ffff,		/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* A MIPS16 reference to the global offset table.  */
@@ -875,7 +875,7 @@ static reloc_howto_type elf_mips16_howto
 	 "R_MIPS16_GOT16",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0x0000ffff,		/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* A MIPS16 call through the global offset table.  */
@@ -890,7 +890,7 @@ static reloc_howto_type elf_mips16_howto
 	 "R_MIPS16_CALL16",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0x0000ffff,		/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* MIPS16 high 16 bits of symbol value.  */
@@ -905,7 +905,7 @@ static reloc_howto_type elf_mips16_howto
 	 "R_MIPS16_HI16",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0x0000ffff,		/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* MIPS16 low 16 bits of symbol value.  */
@@ -920,7 +920,7 @@ static reloc_howto_type elf_mips16_howto
 	 "R_MIPS16_LO16",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0x0000ffff,		/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* MIPS16 TLS general dynamic variable reference.  */
@@ -1058,7 +1058,7 @@ static reloc_howto_type elf_micromips_ho
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 			/* This needs complex overflow
+				/* This needs complex overflow
 				   detection, because the upper four
 				   bits must match the PC.  */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
@@ -1625,8 +1625,8 @@ static reloc_howto_type elf_mips_copy_ho
 	 _bfd_mips_elf_generic_reloc, /* special_function */
 	 "R_MIPS_COPY",		/* name */
 	 FALSE,			/* partial_inplace */
-	 0x0,         		/* src_mask */
-	 0x0,		        /* dst_mask */
+	 0x0,			/* src_mask */
+	 0x0,			/* dst_mask */
 	 FALSE);		/* pcrel_offset */
 
 /* Originally a VxWorks extension, but now used for other systems too.  */
@@ -1641,8 +1641,8 @@ static reloc_howto_type elf_mips_jump_sl
 	 _bfd_mips_elf_generic_reloc, /* special_function */
 	 "R_MIPS_JUMP_SLOT",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0x0,         		/* src_mask */
-	 0x0,		        /* dst_mask */
+	 0x0,			/* src_mask */
+	 0x0,			/* dst_mask */
 	 FALSE);		/* pcrel_offset */
 
 /* Used in EH tables.  */
@@ -1658,7 +1658,7 @@ static reloc_howto_type elf_mips_eh_howt
 	 "R_MIPS_EH",		/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
-	 0xffffffff,	        /* dst_mask */
+	 0xffffffff,		/* dst_mask */
 	 FALSE);		/* pcrel_offset */
 
 /* Set the GP value for OUTPUT_BFD.  Returns FALSE if this is a
@@ -2219,7 +2219,7 @@ mips_elf32_rtype_to_howto (unsigned int 
       if (r_type >= R_MICROMIPS_min && r_type < R_MICROMIPS_max)
 	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];
+	return &elf_mips16_howto_table_rel[r_type - R_MIPS16_min];
       if (r_type >= (unsigned int) R_MIPS_max)
 	{
 	  _bfd_error_handler (_("Unrecognised MIPS reloc number: %d"), r_type);
@@ -2353,6 +2353,8 @@ elf32_mips_grok_psinfo (bfd *abfd, Elf_I
 	return FALSE;
 
       case 128:		/* Linux/MIPS elf_prpsinfo */
+	elf_tdata (abfd)->core->pid
+	 = bfd_get_32 (abfd, note->descdata + 16);
 	elf_tdata (abfd)->core->program
 	 = _bfd_elfcore_strndup (abfd, note->descdata + 32, 16);
 	elf_tdata (abfd)->core->command
@@ -2373,6 +2375,45 @@ elf32_mips_grok_psinfo (bfd *abfd, Elf_I
 
   return TRUE;
 }
+
+/* Write Linux core PRSTATUS note into core file.  */
+
+static char *
+elf32_mips_write_core_note (bfd *abfd, char *buf, int *bufsiz, int note_type,
+			     ...)
+{
+  switch (note_type)
+    {
+    default:
+      return NULL;
+
+    case NT_PRPSINFO:
+      BFD_FAIL ();
+      return NULL;
+
+    case NT_PRSTATUS:
+      {
+	char data[256];
+	va_list ap;
+	long pid;
+	int cursig;
+	const void *greg;
+
+	va_start (ap, note_type);
+	memset (data, 0, 72);
+	pid = va_arg (ap, long);
+	bfd_put_32 (abfd, pid, data + 24);
+	cursig = va_arg (ap, int);
+	bfd_put_16 (abfd, cursig, data + 12);
+	greg = va_arg (ap, const void *);
+	memcpy (data + 72, greg, 180);
+	memset (data + 252, 0, 4);
+	va_end (ap);
+	return elfcore_write_note (abfd, buf, bufsiz,
+				   "CORE", note_type, data, sizeof (data));
+      }
+    }
+}
 
 /* Depending on the target vector we generate some version of Irix
    executables or "normal" MIPS ELF ABI executables.  */
@@ -2474,7 +2515,6 @@ static const struct ecoff_debug_swap mip
 					_bfd_mips_elf_additional_program_headers
 #define elf_backend_modify_segment_map	_bfd_mips_elf_modify_segment_map
 #define elf_backend_gc_mark_hook	_bfd_mips_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook	_bfd_mips_elf_gc_sweep_hook
 #define elf_backend_copy_indirect_symbol \
 					_bfd_mips_elf_copy_indirect_symbol
 #define elf_backend_grok_prstatus	elf32_mips_grok_prstatus
@@ -2541,10 +2581,10 @@ static const struct ecoff_debug_swap mip
 #undef ELF_MAXPAGESIZE
 #undef ELF_COMMONPAGESIZE
 
-#define TARGET_LITTLE_SYM               mips_elf32_trad_le_vec
-#define TARGET_LITTLE_NAME              "elf32-tradlittlemips"
-#define TARGET_BIG_SYM                  mips_elf32_trad_be_vec
-#define TARGET_BIG_NAME                 "elf32-tradbigmips"
+#define TARGET_LITTLE_SYM		mips_elf32_trad_le_vec
+#define TARGET_LITTLE_NAME		"elf32-tradlittlemips"
+#define TARGET_BIG_SYM			mips_elf32_trad_be_vec
+#define TARGET_BIG_NAME			"elf32-tradbigmips"
 
 /* The MIPS ABI says at Page 5-1:
    Virtual addresses and file offsets for MIPS segments are congruent
@@ -2555,6 +2595,9 @@ static const struct ecoff_debug_swap mip
 #define ELF_COMMONPAGESIZE		0x1000
 #define elf32_bed			elf32_tradbed
 
+#undef elf_backend_write_core_note
+#define elf_backend_write_core_note	elf32_mips_write_core_note
+
 /* Include the target file again for this target.  */
 #include "elf32-target.h"
 
@@ -2576,6 +2619,8 @@ static const struct ecoff_debug_swap mip
 #undef	elf32_bed
 #define elf32_bed				elf32_fbsd_tradbed
 
+#undef elf_backend_write_core_note
+
 #include "elf32-target.h"
 /* Implement elf_backend_final_write_processing for VxWorks.  */
 
@@ -2594,10 +2639,10 @@ mips_vxworks_final_write_processing (bfd
 #undef ELF_MAXPAGESIZE
 #undef ELF_COMMONPAGESIZE
 
-#define TARGET_LITTLE_SYM               mips_elf32_vxworks_le_vec
-#define TARGET_LITTLE_NAME              "elf32-littlemips-vxworks"
-#define TARGET_BIG_SYM                  mips_elf32_vxworks_be_vec
-#define TARGET_BIG_NAME                 "elf32-bigmips-vxworks"
+#define TARGET_LITTLE_SYM		mips_elf32_vxworks_le_vec
+#define TARGET_LITTLE_NAME		"elf32-littlemips-vxworks"
+#define TARGET_BIG_SYM			mips_elf32_vxworks_be_vec
+#define TARGET_BIG_NAME			"elf32-bigmips-vxworks"
 #undef	ELF_OSABI
 
 #undef elf32_bed
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-moxie.c ./bfd/elf32-moxie.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-moxie.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-moxie.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,8 +1,8 @@
 /* moxie-specific support for 32-bit ELF.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    Copied from elf32-fr30.c which is..
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -87,8 +87,8 @@ struct moxie_reloc_map
 
 static const struct moxie_reloc_map moxie_reloc_map [] =
 {
-  { BFD_RELOC_NONE,            R_MOXIE_NONE },
-  { BFD_RELOC_32,              R_MOXIE_32 },
+  { BFD_RELOC_NONE,	       R_MOXIE_NONE },
+  { BFD_RELOC_32,	       R_MOXIE_32 },
   { BFD_RELOC_MOXIE_10_PCREL,  R_MOXIE_PCREL10 },
 };
 
@@ -349,17 +349,13 @@ moxie_elf_check_relocs (bfd *abfd,
 
       r_symndx = ELF32_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
     }
 
@@ -368,19 +364,19 @@ moxie_elf_check_relocs (bfd *abfd,
 
 #define ELF_ARCH		bfd_arch_moxie
 #define ELF_MACHINE_CODE	EM_MOXIE
-#define ELF_MACHINE_ALT1        EM_MOXIE_OLD
+#define ELF_MACHINE_ALT1	EM_MOXIE_OLD
 #define ELF_MAXPAGESIZE		0x1
 
-#define TARGET_BIG_SYM          moxie_elf32_be_vec
+#define TARGET_BIG_SYM		moxie_elf32_be_vec
 #define TARGET_BIG_NAME		"elf32-bigmoxie"
-#define TARGET_LITTLE_SYM       moxie_elf32_le_vec
+#define TARGET_LITTLE_SYM	moxie_elf32_le_vec
 #define TARGET_LITTLE_NAME	"elf32-littlemoxie"
 
 #define elf_info_to_howto_rel			NULL
 #define elf_info_to_howto			moxie_info_to_howto_rela
 #define elf_backend_relocate_section		moxie_elf_relocate_section
 #define elf_backend_gc_mark_hook		moxie_elf_gc_mark_hook
-#define elf_backend_check_relocs                moxie_elf_check_relocs
+#define elf_backend_check_relocs		moxie_elf_check_relocs
 
 #define elf_backend_can_gc_sections		1
 #define elf_backend_rela_normal			1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-msp430.c ./bfd/elf32-msp430.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-msp430.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-msp430.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /*  MSP430-specific support for 32-bit ELF
-    Copyright (C) 2002-2017 Free Software Foundation, Inc.
+    Copyright (C) 2002-2018 Free Software Foundation, Inc.
     Contributed by Dmitry Diky <diwil@mail.ru>
 
     This file is part of BFD, the Binary File Descriptor library.
@@ -470,7 +470,7 @@ static reloc_howto_type elf_msp430x_howt
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffff,		/* dst_mask */
-	 TRUE),                 /* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   EMPTY_HOWTO (R_MSP430_EHTYPE),
 
@@ -487,7 +487,7 @@ static reloc_howto_type elf_msp430x_howt
 	 FALSE,			/* partial_inplace */
 	 0x3ff,			/* src_mask */
 	 0x3ff,			/* dst_mask */
-	 TRUE),  		/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* A 10 bit PC relative relocation for complicated polymorphs.  */
   HOWTO (R_MSP430X_2X_PCREL,	/* type */
@@ -531,27 +531,27 @@ struct msp430_reloc_map
 
 static const struct msp430_reloc_map msp430_reloc_map[] =
 {
-  {BFD_RELOC_NONE,                 R_MSP430_NONE},
-  {BFD_RELOC_32,                   R_MSP430_32},
-  {BFD_RELOC_MSP430_10_PCREL,      R_MSP430_10_PCREL},
-  {BFD_RELOC_16,                   R_MSP430_16_BYTE},
-  {BFD_RELOC_MSP430_16_PCREL,      R_MSP430_16_PCREL},
-  {BFD_RELOC_MSP430_16,            R_MSP430_16},
+  {BFD_RELOC_NONE,		   R_MSP430_NONE},
+  {BFD_RELOC_32,		   R_MSP430_32},
+  {BFD_RELOC_MSP430_10_PCREL,	   R_MSP430_10_PCREL},
+  {BFD_RELOC_16,		   R_MSP430_16_BYTE},
+  {BFD_RELOC_MSP430_16_PCREL,	   R_MSP430_16_PCREL},
+  {BFD_RELOC_MSP430_16,		   R_MSP430_16},
   {BFD_RELOC_MSP430_16_PCREL_BYTE, R_MSP430_16_PCREL_BYTE},
-  {BFD_RELOC_MSP430_16_BYTE,       R_MSP430_16_BYTE},
-  {BFD_RELOC_MSP430_2X_PCREL,      R_MSP430_2X_PCREL},
-  {BFD_RELOC_MSP430_RL_PCREL,      R_MSP430_RL_PCREL},
-  {BFD_RELOC_8,                    R_MSP430_8},
-  {BFD_RELOC_MSP430_SYM_DIFF,      R_MSP430_SYM_DIFF}
+  {BFD_RELOC_MSP430_16_BYTE,	   R_MSP430_16_BYTE},
+  {BFD_RELOC_MSP430_2X_PCREL,	   R_MSP430_2X_PCREL},
+  {BFD_RELOC_MSP430_RL_PCREL,	   R_MSP430_RL_PCREL},
+  {BFD_RELOC_8,			   R_MSP430_8},
+  {BFD_RELOC_MSP430_SYM_DIFF,	   R_MSP430_SYM_DIFF}
 };
 
 static const struct msp430_reloc_map msp430x_reloc_map[] =
 {
-  {BFD_RELOC_NONE,                    R_MSP430_NONE},
-  {BFD_RELOC_32,                      R_MSP430_ABS32},
-  {BFD_RELOC_16,                      R_MSP430_ABS16},
-  {BFD_RELOC_8,                       R_MSP430_ABS8},
-  {BFD_RELOC_MSP430_ABS8,             R_MSP430_ABS8},
+  {BFD_RELOC_NONE,		      R_MSP430_NONE},
+  {BFD_RELOC_32,		      R_MSP430_ABS32},
+  {BFD_RELOC_16,		      R_MSP430_ABS16},
+  {BFD_RELOC_8,			      R_MSP430_ABS8},
+  {BFD_RELOC_MSP430_ABS8,	      R_MSP430_ABS8},
   {BFD_RELOC_MSP430X_PCR20_EXT_SRC,   R_MSP430X_PCR20_EXT_SRC},
   {BFD_RELOC_MSP430X_PCR20_EXT_DST,   R_MSP430X_PCR20_EXT_DST},
   {BFD_RELOC_MSP430X_PCR20_EXT_ODST,  R_MSP430X_PCR20_EXT_ODST},
@@ -560,15 +560,15 @@ static const struct msp430_reloc_map msp
   {BFD_RELOC_MSP430X_ABS20_EXT_ODST,  R_MSP430X_ABS20_EXT_ODST},
   {BFD_RELOC_MSP430X_ABS20_ADR_SRC,   R_MSP430X_ABS20_ADR_SRC},
   {BFD_RELOC_MSP430X_ABS20_ADR_DST,   R_MSP430X_ABS20_ADR_DST},
-  {BFD_RELOC_MSP430X_PCR16,           R_MSP430X_PCR16},
+  {BFD_RELOC_MSP430X_PCR16,	      R_MSP430X_PCR16},
   {BFD_RELOC_MSP430X_PCR20_CALL,      R_MSP430X_PCR20_CALL},
-  {BFD_RELOC_MSP430X_ABS16,           R_MSP430X_ABS16},
-  {BFD_RELOC_MSP430_ABS_HI16,         R_MSP430_ABS_HI16},
-  {BFD_RELOC_MSP430_PREL31,           R_MSP430_PREL31},
-  {BFD_RELOC_MSP430_10_PCREL,         R_MSP430X_10_PCREL},
-  {BFD_RELOC_MSP430_2X_PCREL,         R_MSP430X_2X_PCREL},
-  {BFD_RELOC_MSP430_RL_PCREL,         R_MSP430X_PCR16},
-  {BFD_RELOC_MSP430_SYM_DIFF,         R_MSP430X_SYM_DIFF}
+  {BFD_RELOC_MSP430X_ABS16,	      R_MSP430X_ABS16},
+  {BFD_RELOC_MSP430_ABS_HI16,	      R_MSP430_ABS_HI16},
+  {BFD_RELOC_MSP430_PREL31,	      R_MSP430_PREL31},
+  {BFD_RELOC_MSP430_10_PCREL,	      R_MSP430X_10_PCREL},
+  {BFD_RELOC_MSP430_2X_PCREL,	      R_MSP430X_2X_PCREL},
+  {BFD_RELOC_MSP430_RL_PCREL,	      R_MSP430X_PCR16},
+  {BFD_RELOC_MSP430_SYM_DIFF,	      R_MSP430X_SYM_DIFF}
 };
 
 static inline bfd_boolean
@@ -695,10 +695,6 @@ elf32_msp430_check_relocs (bfd * abfd, s
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
     }
 
@@ -709,12 +705,12 @@ elf32_msp430_check_relocs (bfd * abfd, s
    routines, but a few relocs, we have to do them ourselves.  */
 
 static bfd_reloc_status_type
-msp430_final_link_relocate (reloc_howto_type *     howto,
-			    bfd *                  input_bfd,
-			    asection *             input_section,
-			    bfd_byte *             contents,
-			    Elf_Internal_Rela *    rel,
-			    bfd_vma                relocation,
+msp430_final_link_relocate (reloc_howto_type *	   howto,
+			    bfd *		   input_bfd,
+			    asection *		   input_section,
+			    bfd_byte *		   contents,
+			    Elf_Internal_Rela *	   rel,
+			    bfd_vma		   relocation,
 			    struct bfd_link_info * info)
 {
   static asection *  sym_diff_section;
@@ -1485,26 +1481,26 @@ elf32_msp430_object_p (bfd * abfd)
 
    1. 3 words -> 1 word
 
-   eq      ==      jeq label    		jne +4; br lab
-   ne      !=      jne label    		jeq +4; br lab
-   lt      <       jl  label    		jge +4; br lab
-   ltu     <       jlo label    		lhs +4; br lab
-   ge      >=      jge label    		jl  +4; br lab
-   geu     >=      jhs label    		jlo +4; br lab
+   eq	   ==	   jeq label			jne +4; br lab
+   ne	   !=	   jne label			jeq +4; br lab
+   lt	   <	   jl  label			jge +4; br lab
+   ltu	   <	   jlo label			lhs +4; br lab
+   ge	   >=	   jge label			jl  +4; br lab
+   geu	   >=	   jhs label			jlo +4; br lab
 
    2. 4 words -> 1 word
 
-   ltn     <       jn                      jn  +2; jmp +4; br lab
+   ltn	   <	   jn			   jn  +2; jmp +4; br lab
 
    3. 4 words -> 2 words
 
-   gt      >       jeq +2; jge label       jeq +6; jl  +4; br label
-   gtu     >       jeq +2; jhs label       jeq +6; jlo +4; br label
+   gt	   >	   jeq +2; jge label	   jeq +6; jl  +4; br label
+   gtu	   >	   jeq +2; jhs label	   jeq +6; jlo +4; br label
 
    4. 4 words -> 2 words and 2 labels
 
-   leu     <=      jeq label; jlo label    jeq +2; jhs +4; br label
-   le      <=      jeq label; jl  label    jeq +2; jge +4; br label
+   leu	   <=	   jeq label; jlo label	   jeq +2; jhs +4; br label
+   le	   <=	   jeq label; jl  label	   jeq +2; jge +4; br label
    =================================================================
 
    codemap for first cases is (labels masked ):
@@ -1542,7 +1538,7 @@ static struct rcodes_s
   int off;			/* Offset from old label for new code.  */
   int ncl;			/* New code length.  */
 } rcode[] =
-{/*                               lab,cdx,bs,off,ncl */
+{/*				  lab,cdx,bs,off,ncl */
   { 0x0000, 0x0000, 0x3c00, 0x0000, 1, 0, 2, 2,	 2},	/* jump */
   { 0x0000, 0x2002, 0x2400, 0x0000, 1, 1, 4, 4,	 2},	/* eq */
   { 0x0000, 0x2402, 0x2000, 0x0000, 1, 1, 4, 4,	 2},	/* ne */
@@ -1555,7 +1551,7 @@ static struct rcodes_s
   { 0x2403, 0x2802, 0x2401, 0x2c00, 2, 2, 4, 6,	 4},	/* gtu */
   { 0x2401, 0x2c02, 0x2400, 0x2800, 3, 2, 4, 6,	 4},	/* leu , 2 labels */
   { 0x2401, 0x2c02, 0x2400, 0x2800, 3, 2, 4, 6,	 4},	/* le  , 2 labels */
-  { 0, 	    0, 	    0, 	    0, 	    0, 0, 0, 0,  0}
+  { 0,	    0,	    0,	    0,	    0, 0, 0, 0,	 0}
 };
 
 /* Return TRUE if a symbol exists at the given address.  */
@@ -1835,7 +1831,7 @@ msp430_elf_relax_section (bfd * abfd, as
   Elf_Internal_Rela * internal_relocs;
   Elf_Internal_Rela * irel;
   Elf_Internal_Rela * irelend;
-  bfd_byte *          contents = NULL;
+  bfd_byte *	      contents = NULL;
   Elf_Internal_Sym *  isymbuf = NULL;
 
   /* Assume nothing changes.  */
@@ -1866,12 +1862,12 @@ msp430_elf_relax_section (bfd * abfd, as
       bfd_vma symval;
 
       /* If this isn't something that can be relaxed, then ignore
-         this reloc.  */
+	 this reloc.  */
       if (uses_msp430x_relocs (abfd)
-          && ELF32_R_TYPE (irel->r_info) == (int) R_MSP430X_10_PCREL)
+	  && ELF32_R_TYPE (irel->r_info) == (int) R_MSP430X_10_PCREL)
 	;
       else if (! uses_msp430x_relocs (abfd)
-               && ELF32_R_TYPE (irel->r_info) == (int) R_MSP430_10_PCREL)
+	       && ELF32_R_TYPE (irel->r_info) == (int) R_MSP430_10_PCREL)
 	;
       else
 	continue;
@@ -1940,12 +1936,12 @@ msp430_elf_relax_section (bfd * abfd, as
 	}
 
       /* For simplicity of coding, we are going to modify the section
-         contents, the section relocs, and the BFD symbol table.  We
-         must tell the rest of the code not to free up this
-         information.  It would be possible to instead create a table
-         of changes which have to be made, as is done in coff-mips.c;
-         that would be more work, but would require less memory when
-         the linker is run.  */
+	 contents, the section relocs, and the BFD symbol table.  We
+	 must tell the rest of the code not to free up this
+	 information.  It would be possible to instead create a table
+	 of changes which have to be made, as is done in coff-mips.c;
+	 that would be more work, but would require less memory when
+	 the linker is run.  */
 
       bfd_signed_vma value = symval;
       int opcode;
@@ -1971,7 +1967,7 @@ msp430_elf_relax_section (bfd * abfd, as
 	 into:
 	 J<inv-cond> 1f
 	 BR[A] #label
-	 1:                     */
+	 1:			*/
       switch (opcode & 0xfc00)
 	{
 	case 0x3800: opcode = 0x3402; break; /* Jl  -> Jge +2 */
@@ -1983,10 +1979,10 @@ msp430_elf_relax_section (bfd * abfd, as
 	case 0x3000: /* jn    */
 	  /* There is no direct inverse of the Jn insn.
 	     FIXME: we could do this as:
-	        Jn 1f
-	        br 2f
+		Jn 1f
+		br 2f
 	     1: br label
-	     2:                */
+	     2:		       */
 	  continue;
 	default:
 	  /* Not a conditional branch instruction.  */
@@ -2227,8 +2223,10 @@ msp430_elf_relax_section (bfd * abfd, as
 
 	/* Try to turn a 16-bit absolute branch into a 10-bit pc-relative
 	   branch.  */
-	if (uses_msp430x_relocs (abfd)
-	    && ELF32_R_TYPE (irel->r_info) == R_MSP430X_ABS16)
+	if ((uses_msp430x_relocs (abfd)
+	     && ELF32_R_TYPE (irel->r_info) == R_MSP430X_ABS16)
+	    || (! uses_msp430x_relocs (abfd)
+		&& ELF32_R_TYPE (irel->r_info) == R_MSP430_16))
 	  {
 	    bfd_vma value = symval;
 
@@ -2552,7 +2550,8 @@ uses_large_model (bfd *abfd)
 }
 
 static unsigned int
-elf32_msp430_eh_frame_address_size (bfd *abfd, asection *sec ATTRIBUTE_UNUSED)
+elf32_msp430_eh_frame_address_size (bfd *abfd,
+				    const asection *sec ATTRIBUTE_UNUSED)
 {
   return uses_large_model (abfd) ? 4 : 2;
 }
@@ -2577,15 +2576,15 @@ elf32_msp430_eh_frame_address_size (bfd 
 #define elf_backend_may_use_rela_p 1
 #define elf_backend_default_use_rela_p 1
 
-#undef  elf_backend_obj_attrs_vendor
+#undef	elf_backend_obj_attrs_vendor
 #define elf_backend_obj_attrs_vendor		"mspabi"
-#undef  elf_backend_obj_attrs_section
+#undef	elf_backend_obj_attrs_section
 #define elf_backend_obj_attrs_section		".MSP430.attributes"
-#undef  elf_backend_obj_attrs_section_type
+#undef	elf_backend_obj_attrs_section_type
 #define elf_backend_obj_attrs_section_type	SHT_MSP430_ATTRIBUTES
-#define elf_backend_section_from_shdr  		elf32_msp430_section_from_shdr
-#define elf_backend_obj_attrs_handle_unknown 	elf32_msp430_obj_attrs_handle_unknown
-#undef  elf_backend_obj_attrs_arg_type
+#define elf_backend_section_from_shdr		elf32_msp430_section_from_shdr
+#define elf_backend_obj_attrs_handle_unknown	elf32_msp430_obj_attrs_handle_unknown
+#undef	elf_backend_obj_attrs_arg_type
 #define elf_backend_obj_attrs_arg_type		elf32_msp430_obj_attrs_arg_type
 #define bfd_elf32_bfd_merge_private_bfd_data	elf32_msp430_merge_private_bfd_data
 #define elf_backend_eh_frame_address_size	elf32_msp430_eh_frame_address_size
@@ -2596,29 +2595,29 @@ elf32_msp430_eh_frame_address_size (bfd 
 #define ELF_MAXPAGESIZE		4
 #define	ELF_OSABI		ELFOSABI_STANDALONE
 
-#define TARGET_LITTLE_SYM       msp430_elf32_vec
+#define TARGET_LITTLE_SYM	msp430_elf32_vec
 #define TARGET_LITTLE_NAME	"elf32-msp430"
 
-#define elf_info_to_howto	             msp430_info_to_howto_rela
-#define elf_info_to_howto_rel	             NULL
-#define elf_backend_relocate_section         elf32_msp430_relocate_section
-#define elf_backend_check_relocs             elf32_msp430_check_relocs
-#define elf_backend_can_gc_sections          1
+#define elf_info_to_howto		     msp430_info_to_howto_rela
+#define elf_info_to_howto_rel		     NULL
+#define elf_backend_relocate_section	     elf32_msp430_relocate_section
+#define elf_backend_check_relocs	     elf32_msp430_check_relocs
+#define elf_backend_can_gc_sections	     1
 #define elf_backend_final_write_processing   bfd_elf_msp430_final_write_processing
 #define elf_backend_object_p		     elf32_msp430_object_p
 #define bfd_elf32_bfd_relax_section	     msp430_elf_relax_section
 #define bfd_elf32_bfd_is_target_special_symbol	msp430_elf_is_target_special_symbol
 
-#undef  elf32_bed
+#undef	elf32_bed
 #define elf32_bed		elf32_msp430_bed
 
 #include "elf32-target.h"
 
 /* The TI compiler sets the OSABI field to ELFOSABI_NONE.  */
-#undef  TARGET_LITTLE_SYM
-#define TARGET_LITTLE_SYM       msp430_elf32_ti_vec
+#undef	TARGET_LITTLE_SYM
+#define TARGET_LITTLE_SYM	msp430_elf32_ti_vec
 
-#undef  elf32_bed
+#undef	elf32_bed
 #define elf32_bed		elf32_msp430_ti_bed
 
 #undef	ELF_OSABI
@@ -2626,14 +2625,14 @@ elf32_msp430_eh_frame_address_size (bfd 
 
 static const struct bfd_elf_special_section msp430_ti_elf_special_sections[] =
 {
-  /* prefix, prefix_length,        suffix_len, type,               attributes.  */
+  /* prefix, prefix_length,	   suffix_len, type,		   attributes.  */
   { STRING_COMMA_LEN (".TI.symbol.alias"),  0, SHT_MSP430_SYM_ALIASES, 0 },
   { STRING_COMMA_LEN (".TI.section.flags"), 0, SHT_MSP430_SEC_FLAGS,   0 },
   { STRING_COMMA_LEN ("_TI_build_attrib"),  0, SHT_MSP430_ATTRIBUTES,  0 },
-  { NULL, 0,                                0, 0,                      0 }
+  { NULL, 0,				    0, 0,		       0 }
 };
 
-#undef  elf_backend_special_sections
-#define elf_backend_special_sections 		msp430_ti_elf_special_sections
+#undef	elf_backend_special_sections
+#define elf_backend_special_sections		msp430_ti_elf_special_sections
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-mt.c ./bfd/elf32-mt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-mt.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-mt.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Morpho Technologies MT specific support for 32-bit ELF
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -15,8 +15,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-   MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 #include "sysdep.h"
 #include "bfd.h"
@@ -46,116 +46,116 @@ static bfd_boolean mt_elf_relocate_secti
 static reloc_howto_type mt_elf_howto_table [] =
 {
   /* This reloc does nothing.  */
-  HOWTO (R_MT_NONE,           /* type */
-          0,                      /* rightshift */
-          3,                      /* size (0 = byte, 1 = short, 2 = long) */
-          0,                      /* bitsize */
-          FALSE,                  /* pc_relative */
-          0,                      /* bitpos */
-          complain_overflow_dont, /* complain_on_overflow */
-          bfd_elf_generic_reloc,  /* special_function */
-          "R_MT_NONE",          /* name */
-          FALSE,                  /* partial_inplace */
-          0 ,                     /* src_mask */
-          0,                      /* dst_mask */
-          FALSE),                 /* pcrel_offset */
+  HOWTO (R_MT_NONE,	      /* type */
+	  0,			  /* rightshift */
+	  3,			  /* size (0 = byte, 1 = short, 2 = long) */
+	  0,			  /* bitsize */
+	  FALSE,		  /* pc_relative */
+	  0,			  /* bitpos */
+	  complain_overflow_dont, /* complain_on_overflow */
+	  bfd_elf_generic_reloc,  /* special_function */
+	  "R_MT_NONE",		/* name */
+	  FALSE,		  /* partial_inplace */
+	  0 ,			  /* src_mask */
+	  0,			  /* dst_mask */
+	  FALSE),		  /* pcrel_offset */
 
   /* A 16 bit absolute relocation.  */
-  HOWTO (R_MT_16,             /* type */
-          0,                      /* rightshift */
-          2,                      /* size (0 = byte, 1 = short, 2 = long) */
-          16,                     /* bitsize */
-          FALSE,                  /* pc_relative */
-          0,                      /* bitpos */
-          complain_overflow_dont, /* complain_on_overflow */
-          bfd_elf_generic_reloc,  /* special_function */
-          "R_MT_16",            /* name */
-          FALSE,                  /* partial_inplace */
-          0 ,                     /* src_mask */
-          0xffff,                 /* dst_mask */
-          FALSE),                 /* pcrel_offset */
+  HOWTO (R_MT_16,	      /* type */
+	  0,			  /* rightshift */
+	  2,			  /* size (0 = byte, 1 = short, 2 = long) */
+	  16,			  /* bitsize */
+	  FALSE,		  /* pc_relative */
+	  0,			  /* bitpos */
+	  complain_overflow_dont, /* complain_on_overflow */
+	  bfd_elf_generic_reloc,  /* special_function */
+	  "R_MT_16",		/* name */
+	  FALSE,		  /* partial_inplace */
+	  0 ,			  /* src_mask */
+	  0xffff,		  /* dst_mask */
+	  FALSE),		  /* pcrel_offset */
 
   /* A 32 bit absolute relocation.  */
-  HOWTO (R_MT_32,             /* type */
-          0,                      /* rightshift */
-          2,                      /* size (0 = byte, 1 = short, 2 = long) */
-          32,                     /* bitsize */
-          FALSE,                  /* pc_relative */
-          0,                      /* bitpos */
-          complain_overflow_dont, /* complain_on_overflow */
-          bfd_elf_generic_reloc,  /* special_function */
-          "R_MT_32",            /* name */
-          FALSE,                  /* partial_inplace */
-          0 ,                     /* src_mask */
-          0xffffffff,             /* dst_mask */
-          FALSE),                 /* pcrel_offset */
+  HOWTO (R_MT_32,	      /* type */
+	  0,			  /* rightshift */
+	  2,			  /* size (0 = byte, 1 = short, 2 = long) */
+	  32,			  /* bitsize */
+	  FALSE,		  /* pc_relative */
+	  0,			  /* bitpos */
+	  complain_overflow_dont, /* complain_on_overflow */
+	  bfd_elf_generic_reloc,  /* special_function */
+	  "R_MT_32",		/* name */
+	  FALSE,		  /* partial_inplace */
+	  0 ,			  /* src_mask */
+	  0xffffffff,		  /* dst_mask */
+	  FALSE),		  /* pcrel_offset */
 
   /* A 32 bit pc-relative relocation.  */
-  HOWTO (R_MT_32_PCREL,       /* type */
-          0,                      /* rightshift */
-          2,                      /* size (0 = byte, 1 = short, 2 = long) */
-          32,                     /* bitsize */
-          TRUE,                   /* pc_relative */
-          0,                      /* bitpos */
-          complain_overflow_dont, /* complain_on_overflow */
-          bfd_elf_generic_reloc,  /* special_function */
-          "R_MT_32_PCREL",    /* name */
-          FALSE,                  /* partial_inplace */
-          0 ,                     /* src_mask */
-          0xffffffff,             /* dst_mask */
-          TRUE),                  /* pcrel_offset */
+  HOWTO (R_MT_32_PCREL,	      /* type */
+	  0,			  /* rightshift */
+	  2,			  /* size (0 = byte, 1 = short, 2 = long) */
+	  32,			  /* bitsize */
+	  TRUE,			  /* pc_relative */
+	  0,			  /* bitpos */
+	  complain_overflow_dont, /* complain_on_overflow */
+	  bfd_elf_generic_reloc,  /* special_function */
+	  "R_MT_32_PCREL",    /* name */
+	  FALSE,		  /* partial_inplace */
+	  0 ,			  /* src_mask */
+	  0xffffffff,		  /* dst_mask */
+	  TRUE),		  /* pcrel_offset */
 
   /* A 16 bit pc-relative relocation.  */
-  HOWTO (R_MT_PC16,           /* type */
-          0,                      /* rightshift */
-          2,                      /* size (0 = byte, 1 = short, 2 = long) */
-          16,                     /* bitsize */
-          TRUE,                   /* pc_relative */
-          0,                      /* bitpos */
-          complain_overflow_signed, /* complain_on_overflow */
-          bfd_elf_generic_reloc,  /* special_function */
-          "R_MT_PC16",          /* name */
-          FALSE,                  /* partial_inplace */
-          0,                      /* src_mask */
-          0xffff,                 /* dst_mask */
-          TRUE),                  /* pcrel_offset */
+  HOWTO (R_MT_PC16,	      /* type */
+	  0,			  /* rightshift */
+	  2,			  /* size (0 = byte, 1 = short, 2 = long) */
+	  16,			  /* bitsize */
+	  TRUE,			  /* pc_relative */
+	  0,			  /* bitpos */
+	  complain_overflow_signed, /* complain_on_overflow */
+	  bfd_elf_generic_reloc,  /* special_function */
+	  "R_MT_PC16",		/* name */
+	  FALSE,		  /* partial_inplace */
+	  0,			  /* src_mask */
+	  0xffff,		  /* dst_mask */
+	  TRUE),		  /* pcrel_offset */
 
   /* high 16 bits of symbol value.  */
-  HOWTO (R_MT_HI16,          /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_MT_HI16",        /* name */
-         FALSE,                  /* partial_inplace */
-         0xffff0000,            /* src_mask */
-         0xffff0000,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_MT_HI16,	     /* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_MT_HI16",	     /* name */
+	 FALSE,			 /* partial_inplace */
+	 0xffff0000,		/* src_mask */
+	 0xffff0000,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* Low 16 bits of symbol value.  */
-  HOWTO (R_MT_LO16,          /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_MT_LO16",        /* name */
-         FALSE,                  /* partial_inplace */
-         0xffff,                /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_MT_LO16,	     /* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_MT_LO16",	     /* name */
+	 FALSE,			 /* partial_inplace */
+	 0xffff,		/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 };
 
 /* Map BFD reloc types to MT ELF reloc types.  */
 
 static reloc_howto_type *
 mt_reloc_type_lookup
-    (bfd *                    abfd ATTRIBUTE_UNUSED,
+    (bfd *		      abfd ATTRIBUTE_UNUSED,
      bfd_reloc_code_real_type code)
 {
   /* Note that the mt_elf_howto_table is indxed by the R_
@@ -205,10 +205,10 @@ mt_reloc_name_lookup (bfd *abfd ATTRIBUT
 
 bfd_reloc_status_type
 mt_elf_relocate_hi16
-    (bfd *               input_bfd,
+    (bfd *		 input_bfd,
      Elf_Internal_Rela * relhi,
-     bfd_byte *          contents,
-     bfd_vma             value)
+     bfd_byte *		 contents,
+     bfd_vma		 value)
 {
   bfd_vma insn;
 
@@ -229,8 +229,8 @@ mt_elf_relocate_hi16
 
 static void
 mt_info_to_howto_rela
-    (bfd *               abfd ATTRIBUTE_UNUSED,
-     arelent *           cache_ptr,
+    (bfd *		 abfd ATTRIBUTE_UNUSED,
+     arelent *		 cache_ptr,
      Elf_Internal_Rela * dst)
 {
   unsigned int r_type;
@@ -250,12 +250,12 @@ mt_info_to_howto_rela
 
 static bfd_reloc_status_type
 mt_final_link_relocate
-    (reloc_howto_type *  howto,
-     bfd *               input_bfd,
-     asection *          input_section,
-     bfd_byte *          contents,
+    (reloc_howto_type *	 howto,
+     bfd *		 input_bfd,
+     asection *		 input_section,
+     bfd_byte *		 contents,
      Elf_Internal_Rela * rel,
-     bfd_vma             relocation)
+     bfd_vma		 relocation)
 {
   return _bfd_final_link_relocate (howto, input_bfd, input_section,
 				   contents, rel->r_offset,
@@ -297,19 +297,19 @@ mt_final_link_relocate
 
 static bfd_boolean
 mt_elf_relocate_section
-    (bfd *                   output_bfd ATTRIBUTE_UNUSED,
+    (bfd *		     output_bfd ATTRIBUTE_UNUSED,
      struct bfd_link_info *  info,
-     bfd *                   input_bfd,
-     asection *              input_section,
-     bfd_byte *              contents,
+     bfd *		     input_bfd,
+     asection *		     input_section,
+     bfd_byte *		     contents,
      Elf_Internal_Rela *     relocs,
-     Elf_Internal_Sym *      local_syms,
-     asection **             local_sections)
+     Elf_Internal_Sym *	     local_syms,
+     asection **	     local_sections)
 {
-  Elf_Internal_Shdr *           symtab_hdr;
+  Elf_Internal_Shdr *		symtab_hdr;
   struct elf_link_hash_entry ** sym_hashes;
-  Elf_Internal_Rela *           rel;
-  Elf_Internal_Rela *           relend;
+  Elf_Internal_Rela *		rel;
+  Elf_Internal_Rela *		relend;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (input_bfd);
@@ -317,15 +317,15 @@ mt_elf_relocate_section
 
   for (rel = relocs; rel < relend; rel ++)
     {
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
+      reloc_howto_type *	   howto;
+      unsigned long		   r_symndx;
+      Elf_Internal_Sym *	   sym;
+      asection *		   sec;
       struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 name = NULL;
-      int                          r_type;
+      bfd_vma			   relocation;
+      bfd_reloc_status_type	   r;
+      const char *		   name = NULL;
+      int			   r_type;
 
       r_type = ELF32_R_TYPE (rel->r_info);
 
@@ -368,15 +368,15 @@ mt_elf_relocate_section
 
       /* Finally, the sole MT-specific part.  */
       switch (r_type)
-        {
-        case R_MT_HI16:
-          r = mt_elf_relocate_hi16 (input_bfd, rel, contents, relocation);
-          break;
+	{
+	case R_MT_HI16:
+	  r = mt_elf_relocate_hi16 (input_bfd, rel, contents, relocation);
+	  break;
 	default:
-          r = mt_final_link_relocate (howto, input_bfd, input_section,
-		        		  contents, rel, relocation);
-          break;
-        }
+	  r = mt_final_link_relocate (howto, input_bfd, input_section,
+					  contents, rel, relocation);
+	  break;
+	}
 
 
       if (r != bfd_reloc_ok)
@@ -424,15 +424,15 @@ mt_elf_relocate_section
 
 static bfd_boolean
 mt_elf_check_relocs
-    (bfd *                     abfd,
+    (bfd *		       abfd,
      struct bfd_link_info *    info,
-     asection *                sec,
+     asection *		       sec,
      const Elf_Internal_Rela * relocs)
 {
-  Elf_Internal_Shdr *           symtab_hdr;
+  Elf_Internal_Shdr *		symtab_hdr;
   struct elf_link_hash_entry ** sym_hashes;
-  const Elf_Internal_Rela *     rel;
-  const Elf_Internal_Rela *     rel_end;
+  const Elf_Internal_Rela *	rel;
+  const Elf_Internal_Rela *	rel_end;
 
   if (bfd_link_relocatable (info))
     return TRUE;
@@ -448,17 +448,13 @@ mt_elf_check_relocs
 
       r_symndx = ELF32_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
     }
 
@@ -524,7 +520,7 @@ mt_elf_merge_private_bfd_data (bfd *ibfd
   old_flags = elf_elfheader (obfd)->e_flags;
 
 #ifdef DEBUG
-  _bfd_error_handler ("%B: old_flags = 0x%.8lx, new_flags = 0x%.8lx, init = %s",
+  _bfd_error_handler ("%B: old_flags = 0x%.8x, new_flags = 0x%.8x, init = %s",
 		      ibfd, old_flags, new_flags, elf_flags_init (obfd) ? "yes" : "no");
 #endif
 
@@ -578,22 +574,22 @@ mt_elf_print_private_bfd_data (bfd * abf
 
 
 #define TARGET_BIG_SYM	 mt_elf32_vec
-#define TARGET_BIG_NAME  "elf32-mt"
+#define TARGET_BIG_NAME	 "elf32-mt"
 
 #define ELF_ARCH	 bfd_arch_mt
 #define ELF_MACHINE_CODE EM_MT
-#define ELF_MAXPAGESIZE  1 /* No pages on the MT.  */
+#define ELF_MAXPAGESIZE	 1 /* No pages on the MT.  */
 
 #define elf_info_to_howto_rel			NULL
 #define elf_info_to_howto			mt_info_to_howto_rela
 
 #define elf_backend_relocate_section		mt_elf_relocate_section
 
-#define bfd_elf32_bfd_reloc_type_lookup	        mt_reloc_type_lookup
-#define bfd_elf32_bfd_reloc_name_lookup   mt_reloc_name_lookup
+#define bfd_elf32_bfd_reloc_type_lookup		mt_reloc_type_lookup
+#define bfd_elf32_bfd_reloc_name_lookup	  mt_reloc_name_lookup
 
-#define elf_backend_check_relocs                mt_elf_check_relocs
-#define elf_backend_object_p		        mt_elf_object_p
+#define elf_backend_check_relocs		mt_elf_check_relocs
+#define elf_backend_object_p			mt_elf_object_p
 #define elf_backend_rela_normal			1
 
 #define elf_backend_can_gc_sections		1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-nds32.c ./bfd/elf32-nds32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-nds32.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-nds32.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* NDS32-specific support for 32-bit ELF.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by Andes Technology Corporation.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -56,58 +56,8 @@ static bfd_reloc_status_type nds32_elf_s
 static bfd_reloc_status_type nds32_elf_do_9_pcrel_reloc
   (bfd *, reloc_howto_type *, asection *, bfd_byte *, bfd_vma,
    asection *, bfd_vma, bfd_vma);
-static void nds32_elf_relocate_hi20
-  (bfd *, int, Elf_Internal_Rela *, Elf_Internal_Rela *, bfd_byte *, bfd_vma);
-static reloc_howto_type *bfd_elf32_bfd_reloc_type_table_lookup
-  (enum elf_nds32_reloc_type);
-static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
-  (bfd *, bfd_reloc_code_real_type);
-
-/* Target hooks.  */
-static void nds32_info_to_howto_rel
-  (bfd *, arelent *, Elf_Internal_Rela *dst);
-static void nds32_info_to_howto
-  (bfd *, arelent *, Elf_Internal_Rela *dst);
-static bfd_boolean nds32_elf_add_symbol_hook
-  (bfd *, struct bfd_link_info *, Elf_Internal_Sym *, const char **,
-   flagword *, asection **, bfd_vma *);
-static bfd_boolean nds32_elf_relocate_section
-  (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
-   Elf_Internal_Rela *, Elf_Internal_Sym *, asection **);
-static bfd_boolean nds32_elf_object_p (bfd *);
-static void nds32_elf_final_write_processing (bfd *, bfd_boolean);
-static bfd_boolean nds32_elf_set_private_flags (bfd *, flagword);
-static bfd_boolean nds32_elf_merge_private_bfd_data
-  (bfd *, struct bfd_link_info *);
-static bfd_boolean nds32_elf_print_private_bfd_data (bfd *, void *);
-static bfd_boolean nds32_elf_gc_sweep_hook
-  (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
-static bfd_boolean nds32_elf_check_relocs
-  (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
-static asection *nds32_elf_gc_mark_hook
-  (asection *, struct bfd_link_info *, Elf_Internal_Rela *,
-   struct elf_link_hash_entry *, Elf_Internal_Sym *);
-static bfd_boolean nds32_elf_adjust_dynamic_symbol
-  (struct bfd_link_info *, struct elf_link_hash_entry *);
-static bfd_boolean nds32_elf_size_dynamic_sections
-  (bfd *, struct bfd_link_info *);
-static bfd_boolean nds32_elf_create_dynamic_sections
-  (bfd *, struct bfd_link_info *);
-static bfd_boolean nds32_elf_finish_dynamic_sections
-  (bfd *, struct bfd_link_info *info);
-static bfd_boolean nds32_elf_finish_dynamic_symbol
-  (bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
-   Elf_Internal_Sym *);
-static bfd_boolean nds32_elf_mkobject (bfd *);
 
 /* Nds32 helper functions.  */
-static bfd_reloc_status_type nds32_elf_final_sda_base
-  (bfd *, struct bfd_link_info *, bfd_vma *, bfd_boolean);
-static bfd_boolean allocate_dynrelocs (struct elf_link_hash_entry *, void *);
-static bfd_boolean readonly_dynrelocs (struct elf_link_hash_entry *, void *);
-static Elf_Internal_Rela *find_relocs_at_address
-  (Elf_Internal_Rela *, Elf_Internal_Rela *,
-   Elf_Internal_Rela *, enum elf_nds32_reloc_type);
 static bfd_vma calculate_memory_address
 (bfd *, Elf_Internal_Rela *, Elf_Internal_Sym *, Elf_Internal_Shdr *);
 static int nds32_get_section_contents (bfd *, asection *,
@@ -136,13 +86,6 @@ static bfd_boolean  nds32_relax_fp_as_gp
 static bfd_boolean nds32_fag_remove_unused_fpbase
   (bfd *abfd, asection *sec, Elf_Internal_Rela *internal_relocs,
    Elf_Internal_Rela *irelend);
-static bfd_byte *
-nds32_elf_get_relocated_section_contents (bfd *abfd,
-					  struct bfd_link_info *link_info,
-					  struct bfd_link_order *link_order,
-					  bfd_byte *data,
-					  bfd_boolean relocatable,
-					  asymbol **symbols);
 
 enum
 {
@@ -170,32 +113,32 @@ enum
 /* The first entry in a procedure linkage table are reserved,
    and the initial contents are unimportant (we zero them out).
    Subsequent entries look like this.  */
-#define PLT0_ENTRY_WORD0  0x46f00000		/* sethi   r15, HI20(.got+4)      */
-#define PLT0_ENTRY_WORD1  0x58f78000		/* ori     r15, r25, LO12(.got+4) */
-#define PLT0_ENTRY_WORD2  0x05178000		/* lwi     r17, [r15+0]           */
-#define PLT0_ENTRY_WORD3  0x04f78001		/* lwi     r15, [r15+4]           */
-#define PLT0_ENTRY_WORD4  0x4a003c00		/* jr      r15                    */
+#define PLT0_ENTRY_WORD0  0x46f00000		/* sethi   r15, HI20(.got+4)	  */
+#define PLT0_ENTRY_WORD1  0x58f78000		/* ori	   r15, r25, LO12(.got+4) */
+#define PLT0_ENTRY_WORD2  0x05178000		/* lwi	   r17, [r15+0]		  */
+#define PLT0_ENTRY_WORD3  0x04f78001		/* lwi	   r15, [r15+4]		  */
+#define PLT0_ENTRY_WORD4  0x4a003c00		/* jr	   r15			  */
 
 /* $ta is change to $r15 (from $r25).  */
 #define PLT0_PIC_ENTRY_WORD0  0x46f00000	/* sethi   r15, HI20(got[1]@GOT)  */
-#define PLT0_PIC_ENTRY_WORD1  0x58f78000	/* ori     r15, r15, LO12(got[1]@GOT) */
-#define PLT0_PIC_ENTRY_WORD2  0x40f7f400	/* add     r15, gp, r15           */
-#define PLT0_PIC_ENTRY_WORD3  0x05178000	/* lwi     r17, [r15+0]           */
-#define PLT0_PIC_ENTRY_WORD4  0x04f78001	/* lwi     r15, [r15+4]           */
-#define PLT0_PIC_ENTRY_WORD5  0x4a003c00	/* jr      r15                    */
-
-#define PLT_ENTRY_WORD0  0x46f00000		/* sethi   r15, HI20(&got[n+3])      */
-#define PLT_ENTRY_WORD1  0x04f78000		/* lwi     r15, r15, LO12(&got[n+3]) */
-#define PLT_ENTRY_WORD2  0x4a003c00		/* jr      r15                       */
-#define PLT_ENTRY_WORD3  0x45000000		/* movi    r16, sizeof(RELA) * n     */
-#define PLT_ENTRY_WORD4  0x48000000		/* j      .plt0.                     */
+#define PLT0_PIC_ENTRY_WORD1  0x58f78000	/* ori	   r15, r15, LO12(got[1]@GOT) */
+#define PLT0_PIC_ENTRY_WORD2  0x40f7f400	/* add	   r15, gp, r15		  */
+#define PLT0_PIC_ENTRY_WORD3  0x05178000	/* lwi	   r17, [r15+0]		  */
+#define PLT0_PIC_ENTRY_WORD4  0x04f78001	/* lwi	   r15, [r15+4]		  */
+#define PLT0_PIC_ENTRY_WORD5  0x4a003c00	/* jr	   r15			  */
+
+#define PLT_ENTRY_WORD0	 0x46f00000		/* sethi   r15, HI20(&got[n+3])	     */
+#define PLT_ENTRY_WORD1	 0x04f78000		/* lwi	   r15, r15, LO12(&got[n+3]) */
+#define PLT_ENTRY_WORD2	 0x4a003c00		/* jr	   r15			     */
+#define PLT_ENTRY_WORD3	 0x45000000		/* movi	   r16, sizeof(RELA) * n     */
+#define PLT_ENTRY_WORD4	 0x48000000		/* j	  .plt0.		     */
 
 #define PLT_PIC_ENTRY_WORD0  0x46f00000		/* sethi  r15, HI20(got[n+3]@GOT)    */
-#define PLT_PIC_ENTRY_WORD1  0x58f78000		/* ori    r15, r15,    LO12(got[n+3]@GOT) */
-#define PLT_PIC_ENTRY_WORD2  0x38febc02		/* lw     r15, [gp+r15]              */
-#define PLT_PIC_ENTRY_WORD3  0x4a003c00		/* jr     r15                        */
-#define PLT_PIC_ENTRY_WORD4  0x45000000		/* movi   r16, sizeof(RELA) * n      */
-#define PLT_PIC_ENTRY_WORD5  0x48000000		/* j      .plt0                      */
+#define PLT_PIC_ENTRY_WORD1  0x58f78000		/* ori	  r15, r15,    LO12(got[n+3]@GOT) */
+#define PLT_PIC_ENTRY_WORD2  0x38febc02		/* lw	  r15, [gp+r15]		     */
+#define PLT_PIC_ENTRY_WORD3  0x4a003c00		/* jr	  r15			     */
+#define PLT_PIC_ENTRY_WORD4  0x45000000		/* movi	  r16, sizeof(RELA) * n	     */
+#define PLT_PIC_ENTRY_WORD5  0x48000000		/* j	  .plt0			     */
 
 /* These are macros used to get the relocation accurate value.  */
 #define ACCURATE_8BIT_S1	(0x100)
@@ -249,26 +192,6 @@ struct elf_nds32_pcrel_relocs_copied
   bfd_size_type count;
 };
 
-/* The sh linker needs to keep track of the number of relocs that it
-   decides to copy as dynamic relocs in check_relocs for each symbol.
-   This is so that it can later discard them if they are found to be
-   unnecessary.  We store the information in a field extending the
-   regular ELF linker hash table.  */
-
-struct elf_nds32_dyn_relocs
-{
-  struct elf_nds32_dyn_relocs *next;
-
-  /* The input section of the reloc.  */
-  asection *sec;
-
-  /* Total number of relocs copied for the input section.  */
-  bfd_size_type count;
-
-  /* Number of pc-relative relocs copied for the input section.  */
-  bfd_size_type pc_count;
-};
-
 /* Nds32 ELF linker hash entry.  */
 
 struct elf_nds32_link_hash_entry
@@ -276,7 +199,7 @@ struct elf_nds32_link_hash_entry
   struct elf_link_hash_entry root;
 
   /* Track dynamic relocs copied for this symbol.  */
-  struct elf_nds32_dyn_relocs *dyn_relocs;
+  struct elf_dyn_relocs *dyn_relocs;
 
   /* For checking relocation type.  */
 #define GOT_UNKNOWN     0
@@ -3295,7 +3218,7 @@ nds32_elf_final_sda_base (bfd *output_bf
 	}
     }
 
-  if (add_symbol == TRUE)
+  if (add_symbol)
     {
       if (h)
 	{
@@ -3530,8 +3453,8 @@ nds32_elf_copy_indirect_symbol (struct b
     {
       if (edir->dyn_relocs != NULL)
 	{
-	  struct elf_nds32_dyn_relocs **pp;
-	  struct elf_nds32_dyn_relocs *p;
+	  struct elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs *p;
 
 	  if (ind->root.type == bfd_link_hash_indirect)
 	    abort ();
@@ -3540,7 +3463,7 @@ nds32_elf_copy_indirect_symbol (struct b
 	     list.  Merge any entries against the same section.  */
 	  for (pp = &eind->dyn_relocs; (p = *pp) != NULL;)
 	    {
-	      struct elf_nds32_dyn_relocs *q;
+	      struct elf_dyn_relocs *q;
 
 	      for (q = edir->dyn_relocs; q != NULL; q = q->next)
 		if (q->sec == p->sec)
@@ -3563,6 +3486,22 @@ nds32_elf_copy_indirect_symbol (struct b
   _bfd_elf_link_hash_copy_indirect (info, dir, ind);
 }
 
+/* Find dynamic relocs for H that apply to read-only sections.  */
+
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
+
+  for (p = elf32_nds32_hash_entry (h)->dyn_relocs; p != NULL; p = p->next)
+    {
+      asection *s = p->sec->output_section;
+
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
+    }
+  return NULL;
+}
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
    regular object.  The current definition is in some section of the
@@ -3575,8 +3514,6 @@ nds32_elf_adjust_dynamic_symbol (struct 
 				 struct elf_link_hash_entry *h)
 {
   struct elf_nds32_link_hash_table *htab;
-  struct elf_nds32_link_hash_entry *eh;
-  struct elf_nds32_dyn_relocs *p;
   bfd *dynobj;
   asection *s;
   unsigned int power_of_two;
@@ -3586,7 +3523,7 @@ nds32_elf_adjust_dynamic_symbol (struct 
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
 	      && (h->needs_plt
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic && h->ref_regular && !h->def_regular)));
 
 
@@ -3618,12 +3555,12 @@ nds32_elf_adjust_dynamic_symbol (struct 
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -3643,24 +3580,15 @@ nds32_elf_adjust_dynamic_symbol (struct 
     return TRUE;
 
   /* If -z nocopyreloc was given, we won't generate them either.  */
-  if (info->nocopyreloc)
+  if (0 && info->nocopyreloc)
     {
       h->non_got_ref = 0;
       return TRUE;
     }
 
-  eh = (struct elf_nds32_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      s = p->sec->output_section;
-      if (s != NULL && (s->flags & (SEC_READONLY | SEC_HAS_CONTENTS)) != 0)
-	break;
-    }
-
-  /* If we didn't find any dynamic relocs in sections which needs the
-     copy reloc, then we'll be keeping the dynamic relocs and avoiding
-     the copy reloc.  */
-  if (p == NULL)
+  /* If we don't find any dynamic relocs in read-only sections, then
+     we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
+  if (0 && !readonly_dynrelocs (h))
     {
       h->non_got_ref = 0;
       return TRUE;
@@ -3727,7 +3655,7 @@ allocate_dynrelocs (struct elf_link_hash
   struct bfd_link_info *info;
   struct elf_nds32_link_hash_table *htab;
   struct elf_nds32_link_hash_entry *eh;
-  struct elf_nds32_dyn_relocs *p;
+  struct elf_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
     return TRUE;
@@ -3841,7 +3769,7 @@ allocate_dynrelocs (struct elf_link_hash
     {
       if (h->def_regular && (h->forced_local || info->symbolic))
 	{
-	  struct elf_nds32_dyn_relocs **pp;
+	  struct elf_dyn_relocs **pp;
 
 	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL;)
 	    {
@@ -3895,31 +3823,29 @@ allocate_dynrelocs (struct elf_link_hash
   return TRUE;
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct elf_nds32_link_hash_entry *eh;
-  struct elf_nds32_dyn_relocs *p;
+  asection *sec;
 
-  if (h->root.type == bfd_link_hash_warning)
-    h = (struct elf_link_hash_entry *) h->root.u.i.link;
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-  eh = (struct elf_nds32_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
     {
-      asection *s = p->sec->output_section;
-
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	{
-	  struct bfd_link_info *info = (struct bfd_link_info *) inf;
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-	  info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
-	  /* Not an error, just cut short the traversal.  */
-	  return FALSE;
-	}
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -3943,7 +3869,7 @@ nds32_elf_size_dynamic_sections (bfd *ou
   if (htab->root.dynamic_sections_created)
     {
       /* Set the contents of the .interp section to the interpreter.  */
-      if (!bfd_link_pic (info) && !info->nointerp)
+      if (bfd_link_executable (info) && !info->nointerp)
 	{
 	  s = bfd_get_section_by_name (dynobj, ".interp");
 	  BFD_ASSERT (s != NULL);
@@ -3967,9 +3893,9 @@ nds32_elf_size_dynamic_sections (bfd *ou
 
       for (s = ibfd->sections; s != NULL; s = s->next)
 	{
-	  struct elf_nds32_dyn_relocs *p;
+	  struct elf_dyn_relocs *p;
 
-	  for (p = ((struct elf_nds32_dyn_relocs *)
+	  for (p = ((struct elf_dyn_relocs *)
 		    elf_section_data (s)->local_dynrel);
 	       p != NULL; p = p->next)
 	    {
@@ -4115,7 +4041,7 @@ nds32_elf_size_dynamic_sections (bfd *ou
 	  /* If any dynamic relocs apply to a read-only section,
 	     then we need a DT_TEXTREL entry.  */
 	  if ((info->flags & DF_TEXTREL) == 0)
-	    elf_link_hash_traverse (&htab->root, readonly_dynrelocs,
+	    elf_link_hash_traverse (&htab->root, maybe_set_textrel,
 				    (void *) info);
 
 	  if ((info->flags & DF_TEXTREL) != 0)
@@ -4424,14 +4350,14 @@ dtpoff_base (struct bfd_link_info *info)
 }
 
 static bfd_boolean
-nds32_elf_relocate_section (bfd *                  output_bfd ATTRIBUTE_UNUSED,
+nds32_elf_relocate_section (bfd *		   output_bfd ATTRIBUTE_UNUSED,
 			    struct bfd_link_info * info,
-			    bfd *                  input_bfd,
-			    asection *             input_section,
-			    bfd_byte *             contents,
-			    Elf_Internal_Rela *    relocs,
-			    Elf_Internal_Sym *     local_syms,
-			    asection **            local_sections)
+			    bfd *		   input_bfd,
+			    asection *		   input_section,
+			    bfd_byte *		   contents,
+			    Elf_Internal_Rela *	   relocs,
+			    Elf_Internal_Sym *	   local_syms,
+			    asection **		   local_sections)
 {
   Elf_Internal_Shdr *symtab_hdr;
   struct elf_link_hash_entry **sym_hashes;
@@ -6155,136 +6081,6 @@ nds32_elf_gc_mark_hook (asection *sec, s
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-static bfd_boolean
-nds32_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info, asection *sec,
-			 const Elf_Internal_Rela *relocs)
-{
-  /* Update the got entry reference counts for the section being removed.  */
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  /* External symbol.  */
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	}
-
-      switch (ELF32_R_TYPE (rel->r_info))
-	{
-	case R_NDS32_GOT_HI20:
-	case R_NDS32_GOT_LO12:
-	case R_NDS32_GOT_LO15:
-	case R_NDS32_GOT_LO19:
-	case R_NDS32_GOT17S2_RELA:
-	case R_NDS32_GOT15S2_RELA:
-	case R_NDS32_GOTOFF:
-	case R_NDS32_GOTOFF_HI20:
-	case R_NDS32_GOTOFF_LO12:
-	case R_NDS32_GOTOFF_LO15:
-	case R_NDS32_GOTOFF_LO19:
-	case R_NDS32_GOT20:
-	case R_NDS32_GOTPC_HI20:
-	case R_NDS32_GOTPC_LO12:
-	case R_NDS32_GOTPC20:
-	  if (h != NULL)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount--;
-	    }
-	  else
-	    {
-	      if (local_got_refcounts && local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx]--;
-	    }
-	  break;
-
-	case R_NDS32_16_RELA:
-	case R_NDS32_20_RELA:
-	case R_NDS32_5_RELA:
-	case R_NDS32_32_RELA:
-	case R_NDS32_HI20_RELA:
-	case R_NDS32_LO12S3_RELA:
-	case R_NDS32_LO12S2_RELA:
-	case R_NDS32_LO12S2_DP_RELA:
-	case R_NDS32_LO12S2_SP_RELA:
-	case R_NDS32_LO12S1_RELA:
-	case R_NDS32_LO12S0_RELA:
-	case R_NDS32_LO12S0_ORI_RELA:
-	case R_NDS32_SDA16S3_RELA:
-	case R_NDS32_SDA17S2_RELA:
-	case R_NDS32_SDA18S1_RELA:
-	case R_NDS32_SDA19S0_RELA:
-	case R_NDS32_SDA15S3_RELA:
-	case R_NDS32_SDA15S2_RELA:
-	case R_NDS32_SDA12S2_DP_RELA:
-	case R_NDS32_SDA12S2_SP_RELA:
-	case R_NDS32_SDA15S1_RELA:
-	case R_NDS32_SDA15S0_RELA:
-	case R_NDS32_SDA_FP7U2_RELA:
-	case R_NDS32_15_PCREL_RELA:
-	case R_NDS32_17_PCREL_RELA:
-	case R_NDS32_25_PCREL_RELA:
-	  if (h != NULL)
-	    {
-	      struct elf_nds32_link_hash_entry *eh;
-	      struct elf_nds32_dyn_relocs **pp;
-	      struct elf_nds32_dyn_relocs *p;
-
-	      if (!bfd_link_pic (info) && h->plt.refcount > 0)
-		h->plt.refcount -= 1;
-
-	      eh = (struct elf_nds32_link_hash_entry *) h;
-
-	      for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next)
-		if (p->sec == sec)
-		  {
-		    if (ELF32_R_TYPE (rel->r_info) == R_NDS32_15_PCREL_RELA
-			|| ELF32_R_TYPE (rel->r_info) == R_NDS32_17_PCREL_RELA
-			|| ELF32_R_TYPE (rel->r_info) == R_NDS32_25_PCREL_RELA)
-		      p->pc_count -= 1;
-		    p->count -= 1;
-		    if (p->count == 0)
-		      *pp = p->next;
-		    break;
-		  }
-	    }
-	  break;
-
-	case R_NDS32_9_PLTREL:
-	case R_NDS32_25_PLTREL:
-	  if (h != NULL)
-	    {
-	      if (h->plt.refcount > 0)
-		h->plt.refcount--;
-	    }
-	  break;
-
-	default:
-	  break;
-	}
-    }
-
-  return TRUE;
-}
-
 /* Look through the relocs for a section during the first phase.
    Since we don't do .gots or .plts, we just need to consider the
    virtual table relocs for gc.  */
@@ -6304,6 +6100,15 @@ nds32_elf_check_relocs (bfd *abfd, struc
   if (bfd_link_relocatable (info))
     return TRUE;
 
+  /* Don't do anything special with non-loaded, non-alloced sections.
+     In particular, any relocs in such sections should not affect GOT
+     and PLT reference counting (ie. we don't allow them to create GOT
+     or PLT entries), there's no possibility or desire to optimize TLS
+     relocs, and there's not much point in propagating relocs to shared
+     libs that the dynamic linker won't relocate.  */
+  if ((sec->flags & SEC_ALLOC) == 0)
+    return TRUE;
+
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
   sym_hashes_end =
@@ -6525,8 +6330,8 @@ nds32_elf_check_relocs (bfd *abfd, struc
 		  && (h->root.type == bfd_link_hash_defweak
 		      || !h->def_regular)))
 	    {
-	      struct elf_nds32_dyn_relocs *p;
-	      struct elf_nds32_dyn_relocs **head;
+	      struct elf_dyn_relocs *p;
+	      struct elf_dyn_relocs **head;
 
 	      if (dynobj == NULL)
 		htab->root.dynobj = dynobj = abfd;
@@ -6588,14 +6393,14 @@ nds32_elf_check_relocs (bfd *abfd, struc
 		    return FALSE;
 
 		  vpp = &elf_section_data (s)->local_dynrel;
-		  head = (struct elf_nds32_dyn_relocs **) vpp;
+		  head = (struct elf_dyn_relocs **) vpp;
 		}
 
 	      p = *head;
 	      if (p == NULL || p->sec != sec)
 		{
 		  bfd_size_type amt = sizeof (*p);
-		  p = (struct elf_nds32_dyn_relocs *) bfd_alloc (dynobj, amt);
+		  p = (struct elf_dyn_relocs *) bfd_alloc (dynobj, amt);
 		  if (p == NULL)
 		    return FALSE;
 		  p->next = *head;
@@ -7343,7 +7148,7 @@ nds32_convert_32_to_16 (bfd *abfd, uint3
       if (!IS_WITHIN_S (N32_IMM14S (insn), 8))
 	goto done;
 
-      if ((insn & __BIT (14)) == 0)
+      if ((insn & N32_BIT (14)) == 0)
 	{
 	  /* N32_BR1_BEQ */
 	  if (N32_IS_RT3 (insn) && N32_RA5 (insn) == REG_R5
@@ -7411,7 +7216,7 @@ nds32_convert_32_to_16 (bfd *abfd, uint3
       break;
 
     case N32_OP6_JI:
-      if ((insn & __BIT (24)) == 0)
+      if ((insn & N32_BIT (24)) == 0)
 	{
 	  /* N32_JI_J */
 	  if (IS_WITHIN_S (N32_IMM24S (insn), 8))
@@ -7647,7 +7452,7 @@ nds32_convert_16_to_32 (bfd *abfd, uint1
       insn = N32_TYPE2 (SLTI, REG_TA, N16_RT4 (insn16), N16_IMM5U (insn16));
       goto done;
     case 0x34:			/* beqzs8, bnezs8 */
-      if (insn16 & __BIT (8))
+      if (insn16 & N32_BIT (8))
 	insn = N32_BR2 (BNEZ, REG_TA, N16_IMM8S (insn16));
       else
 	insn = N32_BR2 (BEQZ, REG_TA, N16_IMM8S (insn16));
@@ -7747,7 +7552,7 @@ nds32_convert_16_to_32 (bfd *abfd, uint1
   switch (__GF (insn16, 11, 4))
     {
     case 0x7:			/* lwi37.fp/swi37.fp */
-      if (insn16 & __BIT (7))	/* swi37.fp */
+      if (insn16 & N32_BIT (7))	/* swi37.fp */
 	insn = N32_TYPE2 (SWI, N16_RT38 (insn16), REG_FP, N16_IMM7U (insn16));
       else			/* lwi37.fp */
 	insn = N32_TYPE2 (LWI, N16_RT38 (insn16), REG_FP, N16_IMM7U (insn16));
@@ -7850,7 +7655,7 @@ turn_insn_to_sda_access (uint32_t insn, 
 	  break;
 	case N32_OP6_LBSI:
 	  /* lbsi.gp */
-	  oinsn = N32_TYPE1 (LBGP, N32_RT5 (insn), __BIT (19));
+	  oinsn = N32_TYPE1 (LBGP, N32_RT5 (insn), N32_BIT (19));
 	  break;
 	case N32_OP6_SBI:
 	  /* sbi.gp */
@@ -7858,7 +7663,7 @@ turn_insn_to_sda_access (uint32_t insn, 
 	  break;
 	case N32_OP6_ORI:
 	  /* addi.gp */
-	  oinsn = N32_TYPE1 (SBGP, N32_RT5 (insn), __BIT (19));
+	  oinsn = N32_TYPE1 (SBGP, N32_RT5 (insn), N32_BIT (19));
 	  break;
 	}
       break;
@@ -7872,11 +7677,11 @@ turn_insn_to_sda_access (uint32_t insn, 
 	  break;
 	case N32_OP6_LHSI:
 	  /* lhsi.gp */
-	  oinsn = N32_TYPE1 (HWGP, N32_RT5 (insn), __BIT (18));
+	  oinsn = N32_TYPE1 (HWGP, N32_RT5 (insn), N32_BIT (18));
 	  break;
 	case N32_OP6_SHI:
 	  /* shi.gp */
-	  oinsn = N32_TYPE1 (HWGP, N32_RT5 (insn), __BIT (19));
+	  oinsn = N32_TYPE1 (HWGP, N32_RT5 (insn), N32_BIT (19));
 	  break;
 	}
       break;
@@ -8986,7 +8791,7 @@ relax_range_measurement (bfd *abfd)
 
 static const char * unrecognized_reloc_msg =
   /* xgettext:c-format */
-  N_("%B: warning: %s points to unrecognized reloc at 0x%lx.");
+  N_("%B: warning: %s points to unrecognized reloc at %#Lx");
 
 /* Relax LONGCALL1 relocation for nds32_elf_relax_section.  */
 
@@ -8998,19 +8803,19 @@ nds32_elf_relax_longcall1 (bfd *abfd, as
 {
   /* There are 3 variations for LONGCALL1
      case 4-4-2; 16-bit on, optimize off or optimize for space
-     sethi ta, hi20(symbol)     ; LONGCALL1/HI20
+     sethi ta, hi20(symbol)	; LONGCALL1/HI20
      ori   ta, ta, lo12(symbol) ; LO12S0
-     jral5 ta                   ;
+     jral5 ta			;
 
      case 4-4-4; 16-bit off, optimize don't care
-     sethi ta, hi20(symbol)     ; LONGCALL1/HI20
+     sethi ta, hi20(symbol)	; LONGCALL1/HI20
      ori   ta, ta, lo12(symbol) ; LO12S0
-     jral  ta                   ;
+     jral  ta			;
 
      case 4-4-4; 16-bit on, optimize for speed
-     sethi ta, hi20(symbol)     ; LONGCALL1/HI20
+     sethi ta, hi20(symbol)	; LONGCALL1/HI20
      ori   ta, ta, lo12(symbol) ; LO12S0
-     jral  ta                   ;
+     jral  ta			;
      Check code for -mlong-calls output.  */
 
   /* Get the reloc for the address from which the register is
@@ -9039,7 +8844,7 @@ nds32_elf_relax_longcall1 (bfd *abfd, as
   if (hi_irelfn == irelend || lo_irelfn == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGCALL1",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -9120,7 +8925,7 @@ nds32_elf_relax_longcall2 (bfd *abfd, as
   if (i1_irelfn == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGCALL2",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -9179,24 +8984,24 @@ nds32_elf_relax_longcall3 (bfd *abfd, as
 {
   /* There are 3 variations for LONGCALL3
      case 4-4-4-2; 16-bit on, optimize off or optimize for space
-     bltz  rt,   $1                ; LONGCALL3
-     sethi ta,   hi20(symbol)      ; HI20
+     bltz  rt,	 $1		   ; LONGCALL3
+     sethi ta,	 hi20(symbol)	   ; HI20
      ori   ta, ta,  lo12(symbol)   ; LO12S0
-     jral5 ta                      ;
+     jral5 ta			   ;
      $1
 
      case 4-4-4-4; 16-bit off, optimize don't care
-     bltz  rt,   $1                ; LONGCALL3
-     sethi ta,   hi20(symbol)      ; HI20
+     bltz  rt,	 $1		   ; LONGCALL3
+     sethi ta,	 hi20(symbol)	   ; HI20
      ori   ta, ta,  lo12(symbol)   ; LO12S0
-     jral  ta                      ;
+     jral  ta			   ;
      $1
 
      case 4-4-4-4; 16-bit on, optimize for speed
-     bltz  rt,   $1                ; LONGCALL3
-     sethi ta,   hi20(symbol)      ; HI20
+     bltz  rt,	 $1		   ; LONGCALL3
+     sethi ta,	 hi20(symbol)	   ; HI20
      ori   ta, ta,  lo12(symbol)   ; LO12S0
-     jral  ta                      ;
+     jral  ta			   ;
      $1 */
 
   /* Get the reloc for the address from which the register is
@@ -9226,7 +9031,7 @@ nds32_elf_relax_longcall3 (bfd *abfd, as
   if (hi_irelfn == irelend || lo_irelfn == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGCALL3",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -9317,19 +9122,19 @@ nds32_elf_relax_longjump1 (bfd *abfd, as
 {
   /* There are 3 variations for LONGJUMP1
      case 4-4-2; 16-bit bit on, optimize off or optimize for space
-     sethi ta, hi20(symbol)      ; LONGJUMP1/HI20
-     ori   ta, ta, lo12(symbol)  ; LO12S0
-     jr5   ta                    ;
+     sethi ta, hi20(symbol)	 ; LONGJUMP1/HI20
+     ori   ta, ta, lo12(symbol)	 ; LO12S0
+     jr5   ta			 ;
 
      case 4-4-4; 16-bit off, optimize don't care
-     sethi ta, hi20(symbol)      ; LONGJUMP1/HI20
-     ori   ta, ta, lo12(symbol)  ; LO12S0
-     jr    ta                    ;
+     sethi ta, hi20(symbol)	 ; LONGJUMP1/HI20
+     ori   ta, ta, lo12(symbol)	 ; LO12S0
+     jr	   ta			 ;
 
      case 4-4-4; 16-bit on, optimize for speed
-     sethi ta, hi20(symbol)      ; LONGJUMP1/HI20
-     ori   ta, ta, lo12(symbol)  ; LO12S0
-     jr    ta                    ;	*/
+     sethi ta, hi20(symbol)	 ; LONGJUMP1/HI20
+     ori   ta, ta, lo12(symbol)	 ; LO12S0
+     jr	   ta			 ;	*/
 
   /* Get the reloc for the address from which the register is
      being loaded.  This reloc will tell us which function is
@@ -9360,7 +9165,7 @@ nds32_elf_relax_longjump1 (bfd *abfd, as
   if (hi_irelfn == irelend || lo_irelfn == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP1",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -9566,7 +9371,7 @@ nds32_elf_relax_longjump2 (bfd *abfd, as
   if (i2_irelfn == irelend || cond_irelfn == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP2",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -9671,42 +9476,42 @@ nds32_elf_relax_longjump3 (bfd *abfd, as
   /* There are 5 variations for LONGJUMP3
      case 1: 2-4-4-2; 1st insn convertible, 16-bit on,
      optimize off or optimize for space
-     bnes38   rt, ra, $1            ; LONGJUMP3
-     sethi    ta, hi20(symbol)      ; HI20
+     bnes38   rt, ra, $1	    ; LONGJUMP3
+     sethi    ta, hi20(symbol)	    ; HI20
      ori      ta, ta, lo12(symbol)  ; LO12S0
-     jr5      ta                    ;
-     $1:                            ;
+     jr5      ta		    ;
+     $1:			    ;
 
      case 2: 2-4-4-2; 1st insn convertible, 16-bit on, optimize for speed
-     bnes38   rt, ra, $1           ; LONGJUMP3
-     sethi    ta, hi20(symbol)     ; HI20
+     bnes38   rt, ra, $1	   ; LONGJUMP3
+     sethi    ta, hi20(symbol)	   ; HI20
      ori      ta, ta, lo12(symbol) ; LO12S0
-     jr5      ta                   ;
-     $1:                           ; LABEL
+     jr5      ta		   ;
+     $1:			   ; LABEL
 
      case 3: 4-4-4-2; 1st insn not convertible, 16-bit on,
      optimize off or optimize for space
-     bne   rt, ra, $1           ; LONGJUMP3
-     sethi ta, hi20(symbol)     ; HI20
+     bne   rt, ra, $1		; LONGJUMP3
+     sethi ta, hi20(symbol)	; HI20
      ori   ta, ta, lo12(symbol) ; LO12S0
-     jr5   ta                   ;
-     $1:                        ;
+     jr5   ta			;
+     $1:			;
 
      case 4: 4-4-4-4; 1st insn don't care, 16-bit off, optimize don't care
      16-bit off if no INSN16
-     bne   rt, ra, $1           ; LONGJUMP3
-     sethi ta, hi20(symbol)     ; HI20
+     bne   rt, ra, $1		; LONGJUMP3
+     sethi ta, hi20(symbol)	; HI20
      ori   ta, ta, lo12(symbol) ; LO12S0
-     jr    ta                   ;
-     $1:                        ;
+     jr	   ta			;
+     $1:			;
 
      case 5: 4-4-4-4; 1st insn not convertible, 16-bit on, optimize for speed
      16-bit off if no INSN16
-     bne   rt, ra, $1           ; LONGJUMP3
-     sethi ta, hi20(symbol)     ; HI20
+     bne   rt, ra, $1		; LONGJUMP3
+     sethi ta, hi20(symbol)	; HI20
      ori   ta, ta, lo12(symbol) ; LO12S0
-     jr    ta                   ;
-     $1:                        ; LABEL */
+     jr	   ta			;
+     $1:			; LABEL */
 
   /* Get the reloc for the address from which the register is
      being loaded.  This reloc will tell us which function is
@@ -9758,7 +9563,7 @@ nds32_elf_relax_longjump3 (bfd *abfd, as
   if (hi_irelfn == irelend || lo_irelfn == irelend || cond_irelfn == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP3",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -9938,7 +9743,7 @@ nds32_elf_relax_longcall4 (bfd *abfd, as
   if (hi_irel == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGCALL4",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -9968,7 +9773,7 @@ nds32_elf_relax_longcall4 (bfd *abfd, as
   if (ptr_irel == irelend || em_irel == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGCALL4",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
   /* Check these is enough space to insert jal in R_NDS32_EMPTY.  */
@@ -10039,7 +9844,7 @@ nds32_elf_relax_longcall5 (bfd *abfd, as
   if (cond_irel == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGCALL5",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -10117,7 +9922,7 @@ nds32_elf_relax_longcall6 (bfd *abfd, as
   if (em_irel == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGCALL6",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -10155,7 +9960,7 @@ nds32_elf_relax_longcall6 (bfd *abfd, as
       if (cond_irel == irelend)
 	{
 	  _bfd_error_handler (unrecognized_reloc_msg, abfd,
-			      "R_NDS32_LONGCALL6", (long) irel->r_offset);
+			      "R_NDS32_LONGCALL6", irel->r_offset);
 	  return FALSE;
 	}
       cond_irel->r_addend = 1;
@@ -10204,7 +10009,7 @@ nds32_elf_relax_longcall6 (bfd *abfd, as
       if (cond_irel == irelend)
 	{
 	  _bfd_error_handler (unrecognized_reloc_msg, abfd,
-			      "R_NDS32_LONGCALL6", (long) irel->r_offset);
+			      "R_NDS32_LONGCALL6", irel->r_offset);
 	  return FALSE;
 	}
       cond_irel->r_addend = 1;
@@ -10254,7 +10059,7 @@ nds32_elf_relax_longjump4 (bfd *abfd, as
   if (hi_irel == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP4",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -10276,7 +10081,7 @@ nds32_elf_relax_longjump4 (bfd *abfd, as
   if (ptr_irel == irelend || em_irel == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP4",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -10350,7 +10155,7 @@ nds32_elf_relax_longjump5 (bfd *abfd, as
   if (cond_irel == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP5",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -10479,7 +10284,7 @@ nds32_elf_relax_longjump6 (bfd *abfd, as
   if (em_irel == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP6",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -10649,7 +10454,7 @@ nds32_elf_relax_longjump7 (bfd *abfd, as
   if (cond_irel == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LONGJUMP7",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -10754,7 +10559,7 @@ nds32_elf_relax_loadstore (struct bfd_li
   if (hi_irelfn == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_LOADSTORE",
-			  (long) irel->r_offset);
+			  irel->r_offset);
 	return FALSE;
     }
 
@@ -11088,9 +10893,9 @@ nds32_elf_relax_letlsadd (struct bfd_lin
 			  Elf_Internal_Shdr *symtab_hdr, bfd_boolean *again)
 {
   /* Local TLS non-pic
-     sethi    ta, hi20(symbol@tpoff)      ; TLS_LE_HI20
+     sethi    ta, hi20(symbol@tpoff)	  ; TLS_LE_HI20
      ori      ta, ta, lo12(symbol@tpoff)  ; TLS_LE_LO12
-     add      ra, ta, tp                  ; TLS_LE_ADD */
+     add      ra, ta, tp		  ; TLS_LE_ADD */
 
   uint32_t insn;
   bfd_vma laddr;
@@ -11228,7 +11033,7 @@ nds32_elf_relax_ptr (bfd *abfd, asection
   if (re_irel == irelend)
     {
       _bfd_error_handler (unrecognized_reloc_msg, abfd, "R_NDS32_PTR",
-			  (long) irel->r_offset);
+			  irel->r_offset);
       return FALSE;
     }
 
@@ -11319,7 +11124,7 @@ nds32_elf_relax_pltgot_suff (struct bfd_
       irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
 				   R_NDS32_PLT_GOTREL_LO19);
       /* addi.gp */
-      insn = N32_TYPE1 (SBGP, N32_RT5 (insn), __BIT (19));
+      insn = N32_TYPE1 (SBGP, N32_RT5 (insn), N32_BIT (19));
     }
   else if (N32_OP6 (insn) == N32_OP6_JREG
 	   && N32_SUB5 (insn) == N32_JREG_JRAL)
@@ -11452,12 +11257,12 @@ nds32_elf_relax_gotoff_suff (struct bfd_
 	ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_NDS32_SDA18S1_RELA);
       break;
     case (N32_OP6_MEM << 8) | N32_MEM_LHS:
-      insn = N32_TYPE1 (HWGP, N32_RT5 (insn), __BIT (18));
+      insn = N32_TYPE1 (HWGP, N32_RT5 (insn), N32_BIT (18));
       irel->r_info =
 	ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_NDS32_SDA18S1_RELA);
       break;
     case (N32_OP6_MEM << 8) | N32_MEM_SH:
-      insn = N32_TYPE1 (HWGP, N32_RT5 (insn), __BIT (19));
+      insn = N32_TYPE1 (HWGP, N32_RT5 (insn), N32_BIT (19));
       irel->r_info =
 	ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_NDS32_SDA18S1_RELA);
       break;
@@ -11468,7 +11273,7 @@ nds32_elf_relax_gotoff_suff (struct bfd_
 	ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_NDS32_SDA19S0_RELA);
       break;
     case (N32_OP6_MEM << 8) | N32_MEM_LBS:
-      insn = N32_TYPE1 (LBGP, N32_RT5 (insn), __BIT (19));
+      insn = N32_TYPE1 (LBGP, N32_RT5 (insn), N32_BIT (19));
       irel->r_info =
 	ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_NDS32_SDA19S0_RELA);
       break;
@@ -11478,7 +11283,7 @@ nds32_elf_relax_gotoff_suff (struct bfd_
 	ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_NDS32_SDA19S0_RELA);
       break;
     case (N32_OP6_ALU1 << 8) | N32_ALU1_ADD:
-      insn = N32_TYPE1 (SBGP, N32_RT5 (insn), __BIT (19));
+      insn = N32_TYPE1 (SBGP, N32_RT5 (insn), N32_BIT (19));
       irel->r_info =
 	ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_NDS32_SDA19S0_RELA);
       break;
@@ -11509,12 +11314,12 @@ nds32_relax_adjust_label (bfd *abfd, ase
      of instruction a time.
 
      It recognizes three types of relocations.
-     1. R_NDS32_LABEL - a aligment.
+     1. R_NDS32_LABEL - a alignment.
      2. R_NDS32_INSN16 - relax a 32-bit instruction to 16-bit.
      3. is_16bit_NOP () - remove a 16-bit instruction.  */
 
-  /* TODO: It seems currently implementation only support 4-byte aligment.
-     We should handle any-aligment.  */
+  /* TODO: It seems currently implementation only support 4-byte alignment.
+     We should handle any-alignment.  */
 
   Elf_Internal_Rela *insn_rel = NULL, *label_rel = NULL, *irel;
   Elf_Internal_Rela *tmp_rel, *tmp2_rel = NULL;
@@ -11909,7 +11714,7 @@ nds32_elf_relax_section (bfd *abfd, asec
    * no reloc entry.  */
   if (bfd_link_relocatable (link_info)
       || (sec->flags & SEC_RELOC) == 0
-      || (sec->flags & SEC_EXCLUDE) == 1
+      || (sec->flags & SEC_EXCLUDE) != 0
       || (sec->flags & SEC_CODE) == 0
       || sec->size == 0)
     return TRUE;
@@ -12246,7 +12051,7 @@ nds32_elf_relax_section (bfd *abfd, asec
 				 irelend, isymbuf))
 	goto error_return;
 
-      if (*again == FALSE)
+      if (!*again)
 	{
 	  if (!nds32_fag_remove_unused_fpbase (abfd, sec, internal_relocs,
 					       irelend))
@@ -12256,7 +12061,7 @@ nds32_elf_relax_section (bfd *abfd, asec
 
   nds32_elf_pick_relax (FALSE, sec, again, table, link_info);
 
-  if (*again == FALSE)
+  if (!*again)
     {
       if (!nds32_relax_adjust_label (abfd, sec, internal_relocs, contents,
 				     &relax_blank_list, optimize, opt_size))
@@ -12273,7 +12078,7 @@ nds32_elf_relax_section (bfd *abfd, asec
       relax_blank_list = NULL;
     }
 
-  if (*again == FALSE)
+  if (!*again)
     {
       /* Closing the section, so we don't relax it anymore.  */
       bfd_vma sec_size_align;
@@ -15433,8 +15238,8 @@ nds32_elf_ex9_build_hash_table (bfd *abf
 			  /* Incorrect alignment.  */
 			  _bfd_error_handler
 			    /* xgettext:c-format */
-			    (_("%B: warning: unaligned small data access. "
-			       "For entry: {%d, %d, %d}, addr = 0x%x, align = 0x%x."),
+			    (_("%B: warning: unaligned small data access "
+			       "for entry: {%Ld, %Ld, %Ld}, addr = %#Lx, align = %#x"),
 			     abfd, irel->r_offset,
 			     irel->r_info, irel->r_addend, relocation, align);
 			  off += 4;
@@ -15466,7 +15271,7 @@ nds32_elf_ex9_build_hash_table (bfd *abf
 	  if (entry == NULL)
 	    {
 	      _bfd_error_handler
-		(_("%P%F: failed creating ex9.it %s hash table: %E\n"), code);
+		(_("failed creating ex9.it %s hash table entry"), code);
 	      return FALSE;
 	    }
 	  if (h)
@@ -15627,7 +15432,7 @@ nds32_elf_ex9_itb_base (struct bfd_link_
 #define ELF_ARCH				bfd_arch_nds32
 #define ELF_MACHINE_CODE			EM_NDS32
 #define ELF_MAXPAGESIZE				0x1000
-#define ELF_TARGET_ID                           NDS32_ELF_DATA
+#define ELF_TARGET_ID				NDS32_ELF_DATA
 
 #define TARGET_BIG_SYM				nds32_elf32_be_vec
 #define TARGET_BIG_NAME				"elf32-nds32be"
@@ -15643,7 +15448,7 @@ nds32_elf_ex9_itb_base (struct bfd_link_
 #define bfd_elf32_bfd_relax_section		nds32_elf_relax_section
 #define bfd_elf32_bfd_set_private_flags		nds32_elf_set_private_flags
 
-#define bfd_elf32_mkobject		        nds32_elf_mkobject
+#define bfd_elf32_mkobject			nds32_elf_mkobject
 #define elf_backend_action_discarded		nds32_elf_action_discarded
 #define elf_backend_add_symbol_hook		nds32_elf_add_symbol_hook
 #define elf_backend_check_relocs		nds32_elf_check_relocs
@@ -15654,7 +15459,6 @@ nds32_elf_ex9_itb_base (struct bfd_link_
 #define elf_backend_size_dynamic_sections	nds32_elf_size_dynamic_sections
 #define elf_backend_relocate_section		nds32_elf_relocate_section
 #define elf_backend_gc_mark_hook		nds32_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook		nds32_elf_gc_sweep_hook
 #define elf_backend_grok_prstatus		nds32_elf_grok_prstatus
 #define elf_backend_grok_psinfo			nds32_elf_grok_psinfo
 #define elf_backend_reloc_type_class		nds32_elf_reloc_type_class
@@ -15665,7 +15469,7 @@ nds32_elf_ex9_itb_base (struct bfd_link_
 #define elf_backend_final_write_processing	nds32_elf_final_write_processing
 #define elf_backend_special_sections		nds32_elf_special_sections
 #define bfd_elf32_bfd_get_relocated_section_contents \
-                                nds32_elf_get_relocated_section_contents
+				nds32_elf_get_relocated_section_contents
 
 #define elf_backend_can_gc_sections		1
 #define elf_backend_can_refcount		1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-nds32.h ./bfd/elf32-nds32.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-nds32.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-nds32.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* NDS32-specific support for 32-bit ELF.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by Andes Technology Corporation.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -107,10 +107,10 @@ enum
 extern void nds32_insertion_sort
   (void *, size_t, size_t, int (*) (const void *, const void *));
 
-extern int         nds32_elf_ex9_init (void);
-extern int         nds32_convert_32_to_16 (bfd *, uint32_t, uint16_t *, int *);
-extern int         nds32_convert_16_to_32 (bfd *, uint16_t, uint32_t *);
-extern void        bfd_elf32_nds32_set_target_option (struct bfd_link_info *,
+extern int	   nds32_elf_ex9_init (void);
+extern int	   nds32_convert_32_to_16 (bfd *, uint32_t, uint16_t *, int *);
+extern int	   nds32_convert_16_to_32 (bfd *, uint16_t, uint32_t *);
+extern void	   bfd_elf32_nds32_set_target_option (struct bfd_link_info *,
 						      int, int, FILE *, int,
 						      int, int, int, FILE *,
 						      FILE *, int, int,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-nios2.c ./bfd/elf32-nios2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-nios2.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-nios2.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* 32-bit ELF support for Nios II.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by Nigel Gray (ngray@altera.com).
    Contributed by Mentor Graphics, Inc.
 
@@ -1400,7 +1400,7 @@ static reloc_howto_type elf_nios2_r2_how
 	 TRUE,
 	 6,
 	 complain_overflow_signed,
-	 bfd_elf_generic_reloc, 	/* FIXME? */
+	 bfd_elf_generic_reloc,		/* FIXME? */
 	 "R_NIOS2_R2_I10_1_PCREL",
 	 FALSE,
 	 0xffc0,
@@ -1726,26 +1726,6 @@ struct elf32_nios2_stub_hash_entry
    bfd_hash_lookup ((table), (string), (create), (copy)))
 
 
-/* The Nios II linker needs to keep track of the number of relocs that it
-   decides to copy as dynamic relocs in check_relocs for each symbol.
-   This is so that it can later discard them if they are found to be
-   unnecessary.  We store the information in a field extending the
-   regular ELF linker hash table.  */
-
-struct elf32_nios2_dyn_relocs
-{
-  struct elf32_nios2_dyn_relocs *next;
-
-  /* The input section of the reloc.  */
-  asection *sec;
-
-  /* Total number of relocs copied for the input section.  */
-  bfd_size_type count;
-
-  /* Number of pc-relative relocs copied for the input section.  */
-  bfd_size_type pc_count;
-};
-
 /* Nios II ELF linker hash entry.  */
 
 struct elf32_nios2_link_hash_entry
@@ -1757,7 +1737,7 @@ struct elf32_nios2_link_hash_entry
   struct elf32_nios2_stub_hash_entry *hsh_cache;
 
   /* Track dynamic relocs copied for this symbol.  */
-  struct elf32_nios2_dyn_relocs *dyn_relocs;
+  struct elf_dyn_relocs *dyn_relocs;
 
 #define GOT_UNKNOWN	0
 #define GOT_NORMAL	1
@@ -3772,6 +3752,10 @@ nios2_elf32_relocate_section (bfd *outpu
 
       if (howto)
 	{
+	  bfd_boolean resolved_to_zero;
+
+	  resolved_to_zero = (h != NULL
+			      && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h));
 	  switch (howto->type)
 	    {
 	    case R_NIOS2_HI16:
@@ -4004,7 +3988,8 @@ nios2_elf32_relocate_section (bfd *outpu
 							 h)
 		      || (bfd_link_pic (info)
 			  && SYMBOL_REFERENCES_LOCAL (info, h))
-		      || (ELF_ST_VISIBILITY (h->other)
+		      || ((ELF_ST_VISIBILITY (h->other)
+			   || resolved_to_zero)
 			  && h->root.type == bfd_link_hash_undefweak))
 		    {
 		      /* This is actually a static link, or it is a -Bsymbolic
@@ -4258,7 +4243,8 @@ nios2_elf32_relocate_section (bfd *outpu
 
 		    if ((bfd_link_pic (info) || indx != 0)
 			&& (h == NULL
-			    || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+			    || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+				&& !resolved_to_zero)
 			    || h->root.type != bfd_link_hash_undefweak))
 		      {
 			need_relocs = TRUE;
@@ -4369,10 +4355,10 @@ nios2_elf32_relocate_section (bfd *outpu
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B(%A+0x%lx): R_NIOS2_TLS_LE16 relocation not "
+		    (_("%B(%A+%#Lx): %s relocation not "
 		       "permitted in shared object"),
 		     input_bfd, input_section,
-		     (long) rel->r_offset, howto->name);
+		     rel->r_offset, howto->name);
 		  return FALSE;
 		}
 	      else
@@ -4387,7 +4373,8 @@ nios2_elf32_relocate_section (bfd *outpu
 	      if (bfd_link_pic (info)
 		  && (input_section->flags & SEC_ALLOC) != 0
 		  && (h == NULL
-		      || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		      || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+			  && !resolved_to_zero)
 		      || h->root.type != bfd_link_hash_undefweak))
 		{
 		  Elf_Internal_Rela outrel;
@@ -4626,14 +4613,14 @@ nios2_elf32_copy_indirect_symbol (struct
     {
       if (edir->dyn_relocs != NULL)
 	{
-	  struct elf32_nios2_dyn_relocs **pp;
-	  struct elf32_nios2_dyn_relocs *p;
+	  struct elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs *p;
 
 	  /* Add reloc counts against the indirect sym to the direct sym
 	     list.  Merge any entries against the same section.  */
 	  for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
 	    {
-	      struct elf32_nios2_dyn_relocs *q;
+	      struct elf_dyn_relocs *q;
 
 	      for (q = edir->dyn_relocs; q != NULL; q = q->next)
 		if (q->sec == p->sec)
@@ -4731,10 +4718,6 @@ nios2_elf32_check_relocs (bfd *abfd, str
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       r_type = ELF32_R_TYPE (rel->r_info);
@@ -4891,8 +4874,8 @@ nios2_elf32_check_relocs (bfd *abfd, str
 		  || (h != NULL && ! h->needs_plt
 		      && (! SYMBOLIC_BIND (info, h) || ! h->def_regular))))
 	    {
-	      struct elf32_nios2_dyn_relocs *p;
-	      struct elf32_nios2_dyn_relocs **head;
+	      struct elf_dyn_relocs *p;
+	      struct elf_dyn_relocs **head;
 
 	      /* When creating a shared object, we must copy these
 		 reloc types into the output file.  We create a reloc
@@ -4932,14 +4915,14 @@ nios2_elf32_check_relocs (bfd *abfd, str
 		    s = sec;
 
 		  vpp = &elf_section_data (s)->local_dynrel;
-		  head = (struct elf32_nios2_dyn_relocs **) vpp;
+		  head = (struct elf_dyn_relocs **) vpp;
 		}
 
 	      p = *head;
 	      if (p == NULL || p->sec != sec)
 		{
 		  bfd_size_type amt = sizeof *p;
-		  p = ((struct elf32_nios2_dyn_relocs *)
+		  p = ((struct elf_dyn_relocs *)
 		       bfd_alloc (htab->root.dynobj, amt));
 		  if (p == NULL)
 		    return FALSE;
@@ -4981,110 +4964,6 @@ nios2_elf32_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-/* Implement elf_backend_gc_sweep_hook:
-   Update the got entry reference counts for the section being removed.  */
-static bfd_boolean
-nios2_elf32_gc_sweep_hook (bfd *abfd,
-			   struct bfd_link_info *info,
-			   asection *sec,
-			   const Elf_Internal_Rela *relocs)
-{
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-  bfd *dynobj;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  dynobj = elf_hash_table (info)->dynobj;
-  if (dynobj == NULL)
-    return TRUE;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      struct elf_link_hash_entry *h = NULL;
-      int r_type;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	}
-
-      r_type = ELF32_R_TYPE (rel->r_info);
-      switch (r_type)
-	{
-	case R_NIOS2_GOT16:
-	case R_NIOS2_GOT_LO:
-	case R_NIOS2_GOT_HA:
-	case R_NIOS2_CALL16:
-	case R_NIOS2_CALL_LO:
-	case R_NIOS2_CALL_HA:
-	  if (h != NULL)
-	    {
-	      if (h->got.refcount > 0)
-		--h->got.refcount;
-	    }
-	  else if (local_got_refcounts != NULL)
-	    {
-	      if (local_got_refcounts[r_symndx] > 0)
-		--local_got_refcounts[r_symndx];
-	    }
-	  break;
-
-	case R_NIOS2_PCREL_LO:
-	case R_NIOS2_PCREL_HA:
-	case R_NIOS2_BFD_RELOC_32:
-	case R_NIOS2_CALL26:
-	case R_NIOS2_CALL26_NOAT:
-	  if (h != NULL)
-	    {
-	      struct elf32_nios2_link_hash_entry *eh;
-	      struct elf32_nios2_dyn_relocs **pp;
-	      struct elf32_nios2_dyn_relocs *p;
-
-	      eh = (struct elf32_nios2_link_hash_entry *) h;
-
-	      if (h->plt.refcount > 0)
-		--h->plt.refcount;
-
-	      if (r_type == R_NIOS2_PCREL_LO || r_type == R_NIOS2_PCREL_HA
-		  || r_type == R_NIOS2_BFD_RELOC_32)
-		{
-		  for (pp = &eh->dyn_relocs; (p = *pp) != NULL;
-		       pp = &p->next)
-		    if (p->sec == sec)
-		      {
-			p->count -= 1;
-			if (p->count == 0)
-			  *pp = p->next;
-			break;
-		      }
-		}
-	    }
-	  break;
-
-	default:
-	  break;
-	}
-    }
-
-  return TRUE;
-}
-
 /* Implement elf_backend_finish_dynamic_symbols:
    Finish up dynamic symbol handling.  We set the contents of various
    dynamic sections here.  */
@@ -5429,7 +5308,7 @@ nios2_elf32_adjust_dynamic_symbol (struc
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
 	      && (h->needs_plt
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -5463,12 +5342,12 @@ nios2_elf32_adjust_dynamic_symbol (struc
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -5578,7 +5457,7 @@ allocate_dynrelocs (struct elf_link_hash
   struct bfd_link_info *info;
   struct elf32_nios2_link_hash_table *htab;
   struct elf32_nios2_link_hash_entry *eh;
-  struct elf32_nios2_dyn_relocs *p;
+  struct elf_dyn_relocs *p;
   int use_plt;
 
   if (h->root.type == bfd_link_hash_indirect)
@@ -5734,7 +5613,7 @@ allocate_dynrelocs (struct elf_link_hash
       if (h->def_regular
 	  && (h->forced_local || SYMBOLIC_BIND (info, h)))
 	{
-	  struct elf32_nios2_dyn_relocs **pp;
+	  struct elf_dyn_relocs **pp;
 
 	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
 	    {
@@ -5752,7 +5631,8 @@ allocate_dynrelocs (struct elf_link_hash
       if (eh->dyn_relocs != NULL
 	  && h->root.type == bfd_link_hash_undefweak)
 	{
-	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
+	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+	      || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	    eh->dyn_relocs = NULL;
 
 	  /* Make sure undefined weak symbols are output as a dynamic
@@ -5859,7 +5739,7 @@ nios2_elf32_size_dynamic_sections (bfd *
 
       for (s = ibfd->sections; s != NULL; s = s->next)
 	{
-	  struct elf32_nios2_dyn_relocs *p;
+	  struct elf_dyn_relocs *p;
 
 	  for (p = elf_section_data (s)->local_dynrel; p != NULL; p = p->next)
 	    {
@@ -6221,7 +6101,6 @@ const struct bfd_elf_special_section elf
 #define elf_backend_check_relocs	  nios2_elf32_check_relocs
 
 #define elf_backend_gc_mark_hook	  nios2_elf32_gc_mark_hook
-#define elf_backend_gc_sweep_hook	  nios2_elf32_gc_sweep_hook
 #define elf_backend_create_dynamic_sections \
 					  nios2_elf32_create_dynamic_sections
 #define elf_backend_finish_dynamic_symbol nios2_elf32_finish_dynamic_symbol
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-nios2.h ./bfd/elf32-nios2.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-nios2.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-nios2.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Nios II support for 32-bit ELF
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Contributed by Mentor Graphics
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-or1k.c ./bfd/elf32-or1k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-or1k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-or1k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Or1k-specific support for 32-bit ELF.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    Contributed for OR32 by Johan Rydberg, jrydberg@opencores.org
 
    PIC parts added by Stefan Kristiansson, stefan.kristiansson@saunalahti.fi,
@@ -58,457 +58,457 @@
 static reloc_howto_type or1k_elf_howto_table[] =
 {
   /* This reloc does nothing.  */
-  HOWTO (R_OR1K_NONE,           /* type */
-         0,                     /* rightshift */
-         3,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_NONE",         /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_OR1K_NONE,		/* type */
+	 0,			/* rightshift */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_NONE",		/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_OR1K_32,
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         32,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_unsigned, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_32",           /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0xffffffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_unsigned, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_32",		/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_OR1K_16,
-         0,                     /* rightshift */
-         1,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_unsigned, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_16",           /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_unsigned, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_16",		/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_OR1K_8,
-         0,                     /* rightshift */
-         0,                     /* size (0 = byte, 1 = short, 2 = long) */
-         8,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_unsigned, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_8",            /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0xff,                  /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 8,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_unsigned, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_8",		/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xff,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_OR1K_LO_16_IN_INSN, /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_LO_16_IN_INSN", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0x0000ffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_LO_16_IN_INSN", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_OR1K_HI_16_IN_INSN, /* type */
-         16,                    /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_HI_16_IN_INSN", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0x0000ffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 16,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_HI_16_IN_INSN", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* A PC relative 26 bit relocation, right shifted by 2.  */
   HOWTO (R_OR1K_INSN_REL_26, /* type */
-         2,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         26,                    /* bitsize */
-         TRUE,                  /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_signed, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_INSN_REL_26", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0x03ffffff,            /* dst_mask */
-         TRUE),                 /* pcrel_offset */
+	 2,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 26,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_INSN_REL_26", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x03ffffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy.  */
   HOWTO (R_OR1K_GNU_VTINHERIT, /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         NULL,                  /* special_function */
-         "R_OR1K_GNU_VTINHERIT", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 NULL,			/* special_function */
+	 "R_OR1K_GNU_VTINHERIT", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage.  */
   HOWTO (R_OR1K_GNU_VTENTRY, /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         _bfd_elf_rel_vtable_reloc_fn, /* special_function */
-         "R_OR1K_GNU_VTENTRY", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 _bfd_elf_rel_vtable_reloc_fn, /* special_function */
+	 "R_OR1K_GNU_VTENTRY", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_OR1K_32_PCREL,
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         32,                    /* bitsize */
-         TRUE,                  /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_signed, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_32_PCREL",     /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0xffffffff,            /* dst_mask */
-         TRUE),                 /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_32_PCREL",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
 
   HOWTO (R_OR1K_16_PCREL,
-         0,                     /* rightshift */
-         1,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         TRUE,                  /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_signed, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_16_PCREL",     /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0xffff,                /* dst_mask */
-         TRUE),                 /* pcrel_offset */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_16_PCREL",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
 
   HOWTO (R_OR1K_8_PCREL,
-         0,                     /* rightshift */
-         0,                     /* size (0 = byte, 1 = short, 2 = long) */
-         8,                     /* bitsize */
-         TRUE,                  /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_signed, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_8_PCREL",      /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0xff,                  /* dst_mask */
-         TRUE),                 /* pcrel_offset */
-
-   HOWTO (R_OR1K_GOTPC_HI16,    /* Type.  */
-         16,                    /* Rightshift.  */
-         2,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-         16,                    /* Bitsize.  */
-         TRUE,                  /* PC_relative.  */
-         0,                     /* Bitpos.  */
-         complain_overflow_dont, /* Complain on overflow.  */
-         bfd_elf_generic_reloc, /* Special Function.  */
-         "R_OR1K_GOTPC_HI16",   /* Name.  */
-         FALSE,         /* Partial Inplace.  */
-         0,                     /* Source Mask.  */
-         0xffff,                /* Dest Mask.  */
-         TRUE),                 /* PC relative offset?  */
-
-   HOWTO (R_OR1K_GOTPC_LO16,    /* Type.  */
-         0,                     /* Rightshift.  */
-         2,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-         16,                    /* Bitsize.  */
-         TRUE,                  /* PC_relative.  */
-         0,                     /* Bitpos.  */
-         complain_overflow_dont, /* Complain on overflow.  */
-         bfd_elf_generic_reloc, /* Special Function.  */
-         "R_OR1K_GOTPC_LO16",   /* Name.  */
-         FALSE,         /* Partial Inplace.  */
-         0,                     /* Source Mask.  */
-         0xffff,                /* Dest Mask.  */
-         TRUE),                 /* PC relative offset?  */
-
-  HOWTO (R_OR1K_GOT16,          /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_signed, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_GOT16",        /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 8,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_8_PCREL",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xff,			/* dst_mask */
+	 TRUE),			/* pcrel_offset */
+
+   HOWTO (R_OR1K_GOTPC_HI16,	/* Type.  */
+	 16,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 TRUE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_dont, /* Complain on overflow.  */
+	 bfd_elf_generic_reloc, /* Special Function.  */
+	 "R_OR1K_GOTPC_HI16",	/* Name.  */
+	 FALSE,		/* Partial Inplace.  */
+	 0,			/* Source Mask.  */
+	 0xffff,		/* Dest Mask.  */
+	 TRUE),			/* PC relative offset?  */
+
+   HOWTO (R_OR1K_GOTPC_LO16,	/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 TRUE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_dont, /* Complain on overflow.  */
+	 bfd_elf_generic_reloc, /* Special Function.  */
+	 "R_OR1K_GOTPC_LO16",	/* Name.  */
+	 FALSE,		/* Partial Inplace.  */
+	 0,			/* Source Mask.  */
+	 0xffff,		/* Dest Mask.  */
+	 TRUE),			/* PC relative offset?  */
+
+  HOWTO (R_OR1K_GOT16,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_GOT16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* A 26 bit PLT relocation.  Shifted by 2.  */
-  HOWTO (R_OR1K_PLT26,  /* Type.  */
-         2,                     /* Rightshift.  */
-         2,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-         26,                    /* Bitsize.  */
-         TRUE,                  /* PC_relative.  */
-         0,                     /* Bitpos.  */
-         complain_overflow_dont, /* Complain on overflow.  */
-         bfd_elf_generic_reloc,/* Special Function.  */
-         "R_OR1K_PLT26",        /* Name.  */
-         FALSE,         /* Partial Inplace.  */
-         0,                     /* Source Mask.  */
-         0x03ffffff,            /* Dest Mask.  */
-         TRUE),                 /* PC relative offset?  */
-
-  HOWTO (R_OR1K_GOTOFF_HI16,    /* type */
-         16,                    /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_GOTOFF_HI16",  /* name */
-         FALSE,                 /* partial_inplace */
-         0x0,                   /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_GOTOFF_LO16,    /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_GOTOFF_LO16",  /* name */
-         FALSE,                 /* partial_inplace */
-         0x0,                   /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_COPY,           /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         32,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_bitfield, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_COPY",         /* name */
-         FALSE,                 /* partial_inplace */
-         0xffffffff,            /* src_mask */
-         0xffffffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_GLOB_DAT,       /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         32,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_bitfield, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_GLOB_DAT",     /* name */
-         FALSE,                 /* partial_inplace */
-         0xffffffff,            /* src_mask */
-         0xffffffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_JMP_SLOT,       /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         32,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_bitfield, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_JMP_SLOT",     /* name */
-         FALSE,                 /* partial_inplace */
-         0xffffffff,            /* src_mask */
-         0xffffffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_RELATIVE,       /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         32,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_bitfield, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_RELATIVE",     /* name */
-         FALSE,                 /* partial_inplace */
-         0xffffffff,            /* src_mask */
-         0xffffffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_TLS_GD_HI16,    /* type */
-         16,                    /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_TLS_GD_HI16",  /* name */
-         FALSE,                 /* partial_inplace */
-         0x0,                   /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_TLS_GD_LO16,    /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_TLS_GD_LO16",  /* name */
-         FALSE,                 /* partial_inplace */
-         0x0,                   /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_TLS_LDM_HI16,   /* type */
-         16,                    /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_TLS_LDM_HI16", /* name */
-         FALSE,                 /* partial_inplace */
-         0x0,                   /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_TLS_LDM_LO16,   /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_TLS_LDM_LO16", /* name */
-         FALSE,                 /* partial_inplace */
-         0x0,                   /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_TLS_LDO_HI16,   /* type */
-         16,                    /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_TLS_LDO_HI16", /* name */
-         FALSE,                 /* partial_inplace */
-         0x0,                   /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_TLS_LDO_LO16,   /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_TLS_LDO_LO16", /* name */
-         FALSE,                 /* partial_inplace */
-         0x0,                   /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_TLS_IE_HI16,    /* type */
-         16,                    /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_TLS_IE_HI16",  /* name */
-         FALSE,                 /* partial_inplace */
-         0x0,                   /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_TLS_IE_LO16,    /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_TLS_IE_LO16",  /* name */
-         FALSE,                 /* partial_inplace */
-         0x0,                   /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_TLS_LE_HI16,    /* type */
-         16,                    /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_TLS_LE_HI16",  /* name */
-         FALSE,                 /* partial_inplace */
-         0x0,                   /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_OR1K_TLS_LE_LO16,    /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_OR1K_TLS_LE_LO16",  /* name */
-         FALSE,                 /* partial_inplace */
-         0x0,                   /* src_mask */
-         0xffff,                /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_OR1K_PLT26,	/* Type.  */
+	 2,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 26,			/* Bitsize.  */
+	 TRUE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_dont, /* Complain on overflow.  */
+	 bfd_elf_generic_reloc,/* Special Function.  */
+	 "R_OR1K_PLT26",	/* Name.  */
+	 FALSE,		/* Partial Inplace.  */
+	 0,			/* Source Mask.  */
+	 0x03ffffff,		/* Dest Mask.  */
+	 TRUE),			/* PC relative offset?  */
+
+  HOWTO (R_OR1K_GOTOFF_HI16,	/* type */
+	 16,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_GOTOFF_HI16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_GOTOFF_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_GOTOFF_LO16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_COPY,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_COPY",		/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_GLOB_DAT,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_GLOB_DAT",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_JMP_SLOT,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_JMP_SLOT",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_RELATIVE,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_RELATIVE",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_TLS_GD_HI16,	/* type */
+	 16,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_TLS_GD_HI16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_TLS_GD_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_TLS_GD_LO16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_TLS_LDM_HI16,	/* type */
+	 16,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_TLS_LDM_HI16", /* name */
+	 FALSE,			/* partial_inplace */
+	 0x0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_TLS_LDM_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_TLS_LDM_LO16", /* name */
+	 FALSE,			/* partial_inplace */
+	 0x0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_TLS_LDO_HI16,	/* type */
+	 16,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_TLS_LDO_HI16", /* name */
+	 FALSE,			/* partial_inplace */
+	 0x0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_TLS_LDO_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_TLS_LDO_LO16", /* name */
+	 FALSE,			/* partial_inplace */
+	 0x0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_TLS_IE_HI16,	/* type */
+	 16,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_TLS_IE_HI16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_TLS_IE_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_TLS_IE_LO16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_TLS_LE_HI16,	/* type */
+	 16,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_TLS_LE_HI16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_OR1K_TLS_LE_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_OR1K_TLS_LE_LO16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0,			/* src_mask */
+	 0xffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
 };
 
@@ -522,66 +522,46 @@ struct or1k_reloc_map
 
 static const struct or1k_reloc_map or1k_reloc_map[] =
 {
-  { BFD_RELOC_NONE,             R_OR1K_NONE },
-  { BFD_RELOC_32,               R_OR1K_32 },
-  { BFD_RELOC_16,               R_OR1K_16 },
-  { BFD_RELOC_8,                R_OR1K_8 },
-  { BFD_RELOC_LO16,             R_OR1K_LO_16_IN_INSN },
-  { BFD_RELOC_HI16,             R_OR1K_HI_16_IN_INSN },
-  { BFD_RELOC_OR1K_REL_26,      R_OR1K_INSN_REL_26 },
-  { BFD_RELOC_VTABLE_ENTRY,     R_OR1K_GNU_VTENTRY },
-  { BFD_RELOC_VTABLE_INHERIT,   R_OR1K_GNU_VTINHERIT },
-  { BFD_RELOC_32_PCREL,         R_OR1K_32_PCREL },
-  { BFD_RELOC_16_PCREL,         R_OR1K_16_PCREL },
-  { BFD_RELOC_8_PCREL,          R_OR1K_8_PCREL },
-  { BFD_RELOC_OR1K_GOTPC_HI16,  R_OR1K_GOTPC_HI16 },
-  { BFD_RELOC_OR1K_GOTPC_LO16,  R_OR1K_GOTPC_LO16 },
-  { BFD_RELOC_OR1K_GOT16,       R_OR1K_GOT16 },
-  { BFD_RELOC_OR1K_PLT26,       R_OR1K_PLT26 },
+  { BFD_RELOC_NONE,		R_OR1K_NONE },
+  { BFD_RELOC_32,		R_OR1K_32 },
+  { BFD_RELOC_16,		R_OR1K_16 },
+  { BFD_RELOC_8,		R_OR1K_8 },
+  { BFD_RELOC_LO16,		R_OR1K_LO_16_IN_INSN },
+  { BFD_RELOC_HI16,		R_OR1K_HI_16_IN_INSN },
+  { BFD_RELOC_OR1K_REL_26,	R_OR1K_INSN_REL_26 },
+  { BFD_RELOC_VTABLE_ENTRY,	R_OR1K_GNU_VTENTRY },
+  { BFD_RELOC_VTABLE_INHERIT,	R_OR1K_GNU_VTINHERIT },
+  { BFD_RELOC_32_PCREL,		R_OR1K_32_PCREL },
+  { BFD_RELOC_16_PCREL,		R_OR1K_16_PCREL },
+  { BFD_RELOC_8_PCREL,		R_OR1K_8_PCREL },
+  { BFD_RELOC_OR1K_GOTPC_HI16,	R_OR1K_GOTPC_HI16 },
+  { BFD_RELOC_OR1K_GOTPC_LO16,	R_OR1K_GOTPC_LO16 },
+  { BFD_RELOC_OR1K_GOT16,	R_OR1K_GOT16 },
+  { BFD_RELOC_OR1K_PLT26,	R_OR1K_PLT26 },
   { BFD_RELOC_OR1K_GOTOFF_HI16, R_OR1K_GOTOFF_HI16 },
   { BFD_RELOC_OR1K_GOTOFF_LO16, R_OR1K_GOTOFF_LO16 },
-  { BFD_RELOC_OR1K_GLOB_DAT,    R_OR1K_GLOB_DAT },
-  { BFD_RELOC_OR1K_COPY,        R_OR1K_COPY },
-  { BFD_RELOC_OR1K_JMP_SLOT,    R_OR1K_JMP_SLOT },
-  { BFD_RELOC_OR1K_RELATIVE,    R_OR1K_RELATIVE },
+  { BFD_RELOC_OR1K_GLOB_DAT,	R_OR1K_GLOB_DAT },
+  { BFD_RELOC_OR1K_COPY,	R_OR1K_COPY },
+  { BFD_RELOC_OR1K_JMP_SLOT,	R_OR1K_JMP_SLOT },
+  { BFD_RELOC_OR1K_RELATIVE,	R_OR1K_RELATIVE },
   { BFD_RELOC_OR1K_TLS_GD_HI16, R_OR1K_TLS_GD_HI16 },
   { BFD_RELOC_OR1K_TLS_GD_LO16, R_OR1K_TLS_GD_LO16 },
-  { BFD_RELOC_OR1K_TLS_LDM_HI16,        R_OR1K_TLS_LDM_HI16 },
-  { BFD_RELOC_OR1K_TLS_LDM_LO16,        R_OR1K_TLS_LDM_LO16 },
-  { BFD_RELOC_OR1K_TLS_LDO_HI16,        R_OR1K_TLS_LDO_HI16 },
-  { BFD_RELOC_OR1K_TLS_LDO_LO16,        R_OR1K_TLS_LDO_LO16 },
+  { BFD_RELOC_OR1K_TLS_LDM_HI16,	R_OR1K_TLS_LDM_HI16 },
+  { BFD_RELOC_OR1K_TLS_LDM_LO16,	R_OR1K_TLS_LDM_LO16 },
+  { BFD_RELOC_OR1K_TLS_LDO_HI16,	R_OR1K_TLS_LDO_HI16 },
+  { BFD_RELOC_OR1K_TLS_LDO_LO16,	R_OR1K_TLS_LDO_LO16 },
   { BFD_RELOC_OR1K_TLS_IE_HI16, R_OR1K_TLS_IE_HI16 },
   { BFD_RELOC_OR1K_TLS_IE_LO16, R_OR1K_TLS_IE_LO16 },
   { BFD_RELOC_OR1K_TLS_LE_HI16, R_OR1K_TLS_LE_HI16 },
   { BFD_RELOC_OR1K_TLS_LE_LO16, R_OR1K_TLS_LE_LO16 },
 };
 
-/* The linker needs to keep track of the number of relocs that it
-   decides to copy as dynamic relocs in check_relocs for each symbol.
-   This is so that it can later discard them if they are found to be
-   unnecessary.  We store the information in a field extending the
-   regular ELF linker hash table.  */
-
-struct elf_or1k_dyn_relocs
-{
-  struct elf_or1k_dyn_relocs *next;
-
-  /* The input section of the reloc.  */
-  asection *sec;
-
-  /* Total number of relocs copied for the input section.  */
-  bfd_size_type count;
-
-  /* Number of pc-relative relocs copied for the input section.  */
-  bfd_size_type pc_count;
-};
-
 #define TLS_UNKNOWN    0
 #define TLS_NONE       1
-#define TLS_GD         2
-#define TLS_LD         3
-#define TLS_IE         4
-#define TLS_LE         5
+#define TLS_GD	       2
+#define TLS_LD	       3
+#define TLS_IE	       4
+#define TLS_LE	       5
 
 /* ELF linker hash entry.  */
 struct elf_or1k_link_hash_entry
@@ -589,7 +569,7 @@ struct elf_or1k_link_hash_entry
   struct elf_link_hash_entry root;
 
   /* Track dynamic relocs copied for this symbol.  */
-  struct elf_or1k_dyn_relocs *dyn_relocs;
+  struct elf_dyn_relocs *dyn_relocs;
 
   /* Track type of TLS access.  */
   unsigned char tls_type;
@@ -628,15 +608,15 @@ static bfd_boolean
 elf_or1k_mkobject (bfd *abfd)
 {
   return bfd_elf_allocate_object (abfd, sizeof (struct elf_or1k_obj_tdata),
-                                  OR1K_ELF_DATA);
+				  OR1K_ELF_DATA);
 }
 
 /* Create an entry in an or1k ELF linker hash table.  */
 
 static struct bfd_hash_entry *
 or1k_elf_link_hash_newfunc (struct bfd_hash_entry *entry,
-                            struct bfd_hash_table *table,
-                            const char *string)
+			    struct bfd_hash_table *table,
+			    const char *string)
 {
   struct elf_or1k_link_hash_entry *ret =
     (struct elf_or1k_link_hash_entry *) entry;
@@ -645,14 +625,14 @@ or1k_elf_link_hash_newfunc (struct bfd_h
      subclass.  */
   if (ret == NULL)
     ret = bfd_hash_allocate (table,
-                             sizeof (struct elf_or1k_link_hash_entry));
+			     sizeof (struct elf_or1k_link_hash_entry));
   if (ret == NULL)
     return NULL;
 
   /* Call the allocation method of the superclass.  */
   ret = ((struct elf_or1k_link_hash_entry *)
-         _bfd_elf_link_hash_newfunc ((struct bfd_hash_entry *) ret,
-                                     table, string));
+	 _bfd_elf_link_hash_newfunc ((struct bfd_hash_entry *) ret,
+				     table, string));
   if (ret != NULL)
     {
       struct elf_or1k_link_hash_entry *eh;
@@ -678,9 +658,9 @@ or1k_elf_link_hash_table_create (bfd *ab
     return NULL;
 
   if (!_bfd_elf_link_hash_table_init (&ret->root, abfd,
-                                      or1k_elf_link_hash_newfunc,
-                                      sizeof (struct elf_or1k_link_hash_entry),
-                                      OR1K_ELF_DATA))
+				      or1k_elf_link_hash_newfunc,
+				      sizeof (struct elf_or1k_link_hash_entry),
+				      OR1K_ELF_DATA))
     {
       free (ret);
       return NULL;
@@ -710,10 +690,10 @@ or1k_reloc_name_lookup (bfd *abfd ATTRIB
 
   for (i = 0;
        i < (sizeof (or1k_elf_howto_table)
-            / sizeof (or1k_elf_howto_table[0]));
+	    / sizeof (or1k_elf_howto_table[0]));
        i++)
     if (or1k_elf_howto_table[i].name != NULL
-        && strcasecmp (or1k_elf_howto_table[i].name, r_name) == 0)
+	&& strcasecmp (or1k_elf_howto_table[i].name, r_name) == 0)
       return &or1k_elf_howto_table[i];
 
   return NULL;
@@ -833,14 +813,14 @@ or1k_elf_relocate_section (bfd *output_b
       r_symndx = ELF32_R_SYM (rel->r_info);
 
       if (r_type == R_OR1K_GNU_VTINHERIT
-          || r_type == R_OR1K_GNU_VTENTRY)
-        continue;
+	  || r_type == R_OR1K_GNU_VTENTRY)
+	continue;
 
       if (r_type < 0 || r_type >= (int) R_OR1K_max)
-        {
-          bfd_set_error (bfd_error_bad_value);
-          return FALSE;
-        }
+	{
+	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
+	}
 
       howto = or1k_elf_howto_table + ELF32_R_TYPE (rel->r_info);
       h = NULL;
@@ -848,433 +828,433 @@ or1k_elf_relocate_section (bfd *output_b
       sec = NULL;
 
       if (r_symndx < symtab_hdr->sh_info)
-        {
-          sym = local_syms + r_symndx;
-          sec = local_sections[r_symndx];
-          relocation = _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel);
-
-          name = bfd_elf_string_from_elf_section
-            (input_bfd, symtab_hdr->sh_link, sym->st_name);
-          name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
-        }
+	{
+	  sym = local_syms + r_symndx;
+	  sec = local_sections[r_symndx];
+	  relocation = _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel);
+
+	  name = bfd_elf_string_from_elf_section
+	    (input_bfd, symtab_hdr->sh_link, sym->st_name);
+	  name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+	}
       else
-        {
-          bfd_boolean unresolved_reloc, warned, ignored;
+	{
+	  bfd_boolean unresolved_reloc, warned, ignored;
 
-          RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
-                                   r_symndx, symtab_hdr, sym_hashes,
-                                   h, sec, relocation,
-                                   unresolved_reloc, warned, ignored);
-        }
+	  RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
+				   r_symndx, symtab_hdr, sym_hashes,
+				   h, sec, relocation,
+				   unresolved_reloc, warned, ignored);
+	}
 
       if (sec != NULL && discarded_section (sec))
-        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                         rel, 1, relend, howto, 0, contents);
+	RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
+					 rel, 1, relend, howto, 0, contents);
 
       if (bfd_link_relocatable (info))
-        continue;
+	continue;
 
       switch (howto->type)
-        {
-        case R_OR1K_PLT26:
-          {
-            if (htab->root.splt != NULL && h != NULL
-                && h->plt.offset != (bfd_vma) -1)
-              {
-                relocation = (htab->root.splt->output_section->vma
-                              + htab->root.splt->output_offset
-                              + h->plt.offset);
-              }
-            break;
-          }
-
-        case R_OR1K_GOT16:
-          /* Relocation is to the entry for this symbol in the global
-             offset table.  */
-          BFD_ASSERT (sgot != NULL);
-          if (h != NULL)
-            {
-              bfd_boolean dyn;
-              bfd_vma off;
+	{
+	case R_OR1K_PLT26:
+	  {
+	    if (htab->root.splt != NULL && h != NULL
+		&& h->plt.offset != (bfd_vma) -1)
+	      {
+		relocation = (htab->root.splt->output_section->vma
+			      + htab->root.splt->output_offset
+			      + h->plt.offset);
+	      }
+	    break;
+	  }
+
+	case R_OR1K_GOT16:
+	  /* Relocation is to the entry for this symbol in the global
+	     offset table.  */
+	  BFD_ASSERT (sgot != NULL);
+	  if (h != NULL)
+	    {
+	      bfd_boolean dyn;
+	      bfd_vma off;
 
-              off = h->got.offset;
-              BFD_ASSERT (off != (bfd_vma) -1);
+	      off = h->got.offset;
+	      BFD_ASSERT (off != (bfd_vma) -1);
 
-              dyn = htab->root.dynamic_sections_created;
-              if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
+	      dyn = htab->root.dynamic_sections_created;
+	      if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
 						     bfd_link_pic (info),
 						     h)
-                  || (bfd_link_pic (info)
-                      && SYMBOL_REFERENCES_LOCAL (info, h)))
-                {
-                  /* This is actually a static link, or it is a
-                     -Bsymbolic link and the symbol is defined
-                     locally, or the symbol was forced to be local
-                     because of a version file.  We must initialize
-                     this entry in the global offset table.  Since the
-                     offset must always be a multiple of 4, we use the
-                     least significant bit to record whether we have
-                     initialized it already.
-
-                     When doing a dynamic link, we create a .rela.got
-                     relocation entry to initialize the value.  This
-                     is done in the finish_dynamic_symbol routine.  */
-                  if ((off & 1) != 0)
-                    off &= ~1;
-                  else
-                    {
-                      /* Write entry in GOT.  */
-                      bfd_put_32 (output_bfd, relocation,
-                                  sgot->contents + off);
-                      /* Mark GOT entry as having been written.  */
-                      h->got.offset |= 1;
-                    }
-                }
-
-              relocation = sgot->output_offset + off;
-            }
-          else
-            {
-              bfd_vma off;
-              bfd_byte *loc;
-
-              BFD_ASSERT (local_got_offsets != NULL
-                          && local_got_offsets[r_symndx] != (bfd_vma) -1);
-
-              /* Get offset into GOT table.  */
-              off = local_got_offsets[r_symndx];
-
-              /* The offset must always be a multiple of 4.  We use
-                 the least significant bit to record whether we have
-                 already processed this entry.  */
-              if ((off & 1) != 0)
-                off &= ~1;
-              else
-                {
-                  /* Write entry in GOT.  */
-                  bfd_put_32 (output_bfd, relocation, sgot->contents + off);
-                  if (bfd_link_pic (info))
-                    {
-                      asection *srelgot;
-                      Elf_Internal_Rela outrel;
-
-                      /* We need to generate a R_OR1K_RELATIVE reloc
-                         for the dynamic linker.  */
-                      srelgot = htab->root.srelgot;
-                      BFD_ASSERT (srelgot != NULL);
-
-                      outrel.r_offset = (sgot->output_section->vma
-                                         + sgot->output_offset
-                                         + off);
-                      outrel.r_info = ELF32_R_INFO (0, R_OR1K_RELATIVE);
-                      outrel.r_addend = relocation;
-                      loc = srelgot->contents;
-                      loc += srelgot->reloc_count * sizeof (Elf32_External_Rela);
-                      bfd_elf32_swap_reloca_out (output_bfd, &outrel,loc);
-                      ++srelgot->reloc_count;
-                    }
-
-                  local_got_offsets[r_symndx] |= 1;
-                }
-              relocation = sgot->output_offset + off;
-            }
+		  || (bfd_link_pic (info)
+		      && SYMBOL_REFERENCES_LOCAL (info, h)))
+		{
+		  /* This is actually a static link, or it is a
+		     -Bsymbolic link and the symbol is defined
+		     locally, or the symbol was forced to be local
+		     because of a version file.  We must initialize
+		     this entry in the global offset table.  Since the
+		     offset must always be a multiple of 4, we use the
+		     least significant bit to record whether we have
+		     initialized it already.
+
+		     When doing a dynamic link, we create a .rela.got
+		     relocation entry to initialize the value.  This
+		     is done in the finish_dynamic_symbol routine.  */
+		  if ((off & 1) != 0)
+		    off &= ~1;
+		  else
+		    {
+		      /* Write entry in GOT.  */
+		      bfd_put_32 (output_bfd, relocation,
+				  sgot->contents + off);
+		      /* Mark GOT entry as having been written.  */
+		      h->got.offset |= 1;
+		    }
+		}
+
+	      relocation = sgot->output_offset + off;
+	    }
+	  else
+	    {
+	      bfd_vma off;
+	      bfd_byte *loc;
+
+	      BFD_ASSERT (local_got_offsets != NULL
+			  && local_got_offsets[r_symndx] != (bfd_vma) -1);
+
+	      /* Get offset into GOT table.  */
+	      off = local_got_offsets[r_symndx];
+
+	      /* The offset must always be a multiple of 4.  We use
+		 the least significant bit to record whether we have
+		 already processed this entry.  */
+	      if ((off & 1) != 0)
+		off &= ~1;
+	      else
+		{
+		  /* Write entry in GOT.  */
+		  bfd_put_32 (output_bfd, relocation, sgot->contents + off);
+		  if (bfd_link_pic (info))
+		    {
+		      asection *srelgot;
+		      Elf_Internal_Rela outrel;
+
+		      /* We need to generate a R_OR1K_RELATIVE reloc
+			 for the dynamic linker.  */
+		      srelgot = htab->root.srelgot;
+		      BFD_ASSERT (srelgot != NULL);
+
+		      outrel.r_offset = (sgot->output_section->vma
+					 + sgot->output_offset
+					 + off);
+		      outrel.r_info = ELF32_R_INFO (0, R_OR1K_RELATIVE);
+		      outrel.r_addend = relocation;
+		      loc = srelgot->contents;
+		      loc += srelgot->reloc_count * sizeof (Elf32_External_Rela);
+		      bfd_elf32_swap_reloca_out (output_bfd, &outrel,loc);
+		      ++srelgot->reloc_count;
+		    }
+
+		  local_got_offsets[r_symndx] |= 1;
+		}
+	      relocation = sgot->output_offset + off;
+	    }
 
-          /* Addend should be zero.  */
-          if (rel->r_addend != 0)
+	  /* Addend should be zero.  */
+	  if (rel->r_addend != 0)
 	    _bfd_error_handler
-              (_("internal error: addend should be zero for R_OR1K_GOT16"));
+	      (_("internal error: addend should be zero for R_OR1K_GOT16"));
 
-          break;
+	  break;
 
-        case R_OR1K_GOTOFF_LO16:
-        case R_OR1K_GOTOFF_HI16:
-          /* Relocation is offset from GOT.  */
-          BFD_ASSERT (sgot != NULL);
+	case R_OR1K_GOTOFF_LO16:
+	case R_OR1K_GOTOFF_HI16:
+	  /* Relocation is offset from GOT.  */
+	  BFD_ASSERT (sgot != NULL);
 	  relocation
 	    -= (htab->root.hgot->root.u.def.value
 		+ htab->root.hgot->root.u.def.section->output_offset
 		+ htab->root.hgot->root.u.def.section->output_section->vma);
-          break;
+	  break;
 
-        case R_OR1K_INSN_REL_26:
-        case R_OR1K_HI_16_IN_INSN:
-        case R_OR1K_LO_16_IN_INSN:
-        case R_OR1K_32:
-          /* R_OR1K_16? */
-          {
-            /* r_symndx will be STN_UNDEF (zero) only for relocs against symbols
-               from removed linkonce sections, or sections discarded by
-               a linker script.  */
-            if (r_symndx == STN_UNDEF
-                || (input_section->flags & SEC_ALLOC) == 0)
-              break;
-
-            if ((bfd_link_pic (info)
-                 && (h == NULL
-                     || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-                     || h->root.type != bfd_link_hash_undefweak)
+	case R_OR1K_INSN_REL_26:
+	case R_OR1K_HI_16_IN_INSN:
+	case R_OR1K_LO_16_IN_INSN:
+	case R_OR1K_32:
+	  /* R_OR1K_16? */
+	  {
+	    /* r_symndx will be STN_UNDEF (zero) only for relocs against symbols
+	       from removed linkonce sections, or sections discarded by
+	       a linker script.  */
+	    if (r_symndx == STN_UNDEF
+		|| (input_section->flags & SEC_ALLOC) == 0)
+	      break;
+
+	    if ((bfd_link_pic (info)
+		 && (h == NULL
+		     || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		     || h->root.type != bfd_link_hash_undefweak)
 		 && (howto->type != R_OR1K_INSN_REL_26
 		     || !SYMBOL_CALLS_LOCAL (info, h)))
-                || (!bfd_link_pic (info)
-                    && h != NULL
-                    && h->dynindx != -1
-                    && !h->non_got_ref
-                    && ((h->def_dynamic
-                         && !h->def_regular)
-                        || h->root.type == bfd_link_hash_undefweak
-                        || h->root.type == bfd_link_hash_undefined)))
-              {
-                Elf_Internal_Rela outrel;
-                bfd_byte *loc;
-                bfd_boolean skip;
-
-                /* When generating a shared object, these relocations
-                   are copied into the output file to be resolved at run
-                   time.  */
-
-                BFD_ASSERT (sreloc != NULL);
-
-                skip = FALSE;
-
-                outrel.r_offset =
-                  _bfd_elf_section_offset (output_bfd, info, input_section,
-                                           rel->r_offset);
-                if (outrel.r_offset == (bfd_vma) -1)
-                  skip = TRUE;
-                else if (outrel.r_offset == (bfd_vma) -2)
-                  skip = TRUE;
-                outrel.r_offset += (input_section->output_section->vma
-                                    + input_section->output_offset);
-
-                if (skip)
-                  memset (&outrel, 0, sizeof outrel);
-                /* h->dynindx may be -1 if the symbol was marked to
-                   become local.  */
-                else if (h != NULL
-                         && ((! info->symbolic && h->dynindx != -1)
-                             || !h->def_regular))
-                  {
-                    BFD_ASSERT (h->dynindx != -1);
-                    outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
-                    outrel.r_addend = rel->r_addend;
-                  }
-                else
-                  {
-                    if (r_type == R_OR1K_32)
-                      {
-                        outrel.r_info = ELF32_R_INFO (0, R_OR1K_RELATIVE);
-                        outrel.r_addend = relocation + rel->r_addend;
-                      }
-                    else
-                      {
-                        BFD_FAIL ();
+		|| (!bfd_link_pic (info)
+		    && h != NULL
+		    && h->dynindx != -1
+		    && !h->non_got_ref
+		    && ((h->def_dynamic
+			 && !h->def_regular)
+			|| h->root.type == bfd_link_hash_undefweak
+			|| h->root.type == bfd_link_hash_undefined)))
+	      {
+		Elf_Internal_Rela outrel;
+		bfd_byte *loc;
+		bfd_boolean skip;
+
+		/* When generating a shared object, these relocations
+		   are copied into the output file to be resolved at run
+		   time.  */
+
+		BFD_ASSERT (sreloc != NULL);
+
+		skip = FALSE;
+
+		outrel.r_offset =
+		  _bfd_elf_section_offset (output_bfd, info, input_section,
+					   rel->r_offset);
+		if (outrel.r_offset == (bfd_vma) -1)
+		  skip = TRUE;
+		else if (outrel.r_offset == (bfd_vma) -2)
+		  skip = TRUE;
+		outrel.r_offset += (input_section->output_section->vma
+				    + input_section->output_offset);
+
+		if (skip)
+		  memset (&outrel, 0, sizeof outrel);
+		/* h->dynindx may be -1 if the symbol was marked to
+		   become local.  */
+		else if (h != NULL
+			 && ((! info->symbolic && h->dynindx != -1)
+			     || !h->def_regular))
+		  {
+		    BFD_ASSERT (h->dynindx != -1);
+		    outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
+		    outrel.r_addend = rel->r_addend;
+		  }
+		else
+		  {
+		    if (r_type == R_OR1K_32)
+		      {
+			outrel.r_info = ELF32_R_INFO (0, R_OR1K_RELATIVE);
+			outrel.r_addend = relocation + rel->r_addend;
+		      }
+		    else
+		      {
+			BFD_FAIL ();
 			_bfd_error_handler
-                          (_("%B: probably compiled without -fPIC?"),
-                           input_bfd);
-                        bfd_set_error (bfd_error_bad_value);
-                        return FALSE;
-                      }
-                  }
-
-                loc = sreloc->contents;
-                loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
-                bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
-                break;
-              }
-            break;
-          }
-
-        case R_OR1K_TLS_LDM_HI16:
-        case R_OR1K_TLS_LDM_LO16:
-        case R_OR1K_TLS_LDO_HI16:
-        case R_OR1K_TLS_LDO_LO16:
-          /* TODO: implement support for local dynamic.  */
-          BFD_FAIL ();
+			  (_("%B: probably compiled without -fPIC?"),
+			   input_bfd);
+			bfd_set_error (bfd_error_bad_value);
+			return FALSE;
+		      }
+		  }
+
+		loc = sreloc->contents;
+		loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
+		bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
+		break;
+	      }
+	    break;
+	  }
+
+	case R_OR1K_TLS_LDM_HI16:
+	case R_OR1K_TLS_LDM_LO16:
+	case R_OR1K_TLS_LDO_HI16:
+	case R_OR1K_TLS_LDO_LO16:
+	  /* TODO: implement support for local dynamic.  */
+	  BFD_FAIL ();
 	  _bfd_error_handler
-            (_("%B: support for local dynamic not implemented"),
-             input_bfd);
-          bfd_set_error (bfd_error_bad_value);
-          return FALSE;
-
-
-        case R_OR1K_TLS_GD_HI16:
-        case R_OR1K_TLS_GD_LO16:
-        case R_OR1K_TLS_IE_HI16:
-        case R_OR1K_TLS_IE_LO16:
-          {
-            bfd_vma gotoff;
-            Elf_Internal_Rela rela;
-            bfd_byte *loc;
-            int dynamic;
-
-            sreloc = bfd_get_section_by_name (dynobj, ".rela.got");
-
-            /* Mark as TLS related GOT entry by setting
-               bit 2 as well as bit 1.  */
-            if (h != NULL)
-              {
-                gotoff = h->got.offset;
-                h->got.offset |= 3;
-              }
-            else
-              {
-                gotoff = local_got_offsets[r_symndx];
-                local_got_offsets[r_symndx] |= 3;
-              }
-
-            /* Only process the relocation once.  */
-            if (gotoff & 1)
-              {
-                relocation = sgot->output_offset + (gotoff  & ~3);
-                break;
-              }
+	    (_("%B: support for local dynamic not implemented"),
+	     input_bfd);
+	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
+
+
+	case R_OR1K_TLS_GD_HI16:
+	case R_OR1K_TLS_GD_LO16:
+	case R_OR1K_TLS_IE_HI16:
+	case R_OR1K_TLS_IE_LO16:
+	  {
+	    bfd_vma gotoff;
+	    Elf_Internal_Rela rela;
+	    bfd_byte *loc;
+	    int dynamic;
+
+	    sreloc = bfd_get_section_by_name (dynobj, ".rela.got");
+
+	    /* Mark as TLS related GOT entry by setting
+	       bit 2 as well as bit 1.  */
+	    if (h != NULL)
+	      {
+		gotoff = h->got.offset;
+		h->got.offset |= 3;
+	      }
+	    else
+	      {
+		gotoff = local_got_offsets[r_symndx];
+		local_got_offsets[r_symndx] |= 3;
+	      }
+
+	    /* Only process the relocation once.  */
+	    if (gotoff & 1)
+	      {
+		relocation = sgot->output_offset + (gotoff  & ~3);
+		break;
+	      }
 
-            BFD_ASSERT (elf_hash_table (info)->hgot == NULL
+	    BFD_ASSERT (elf_hash_table (info)->hgot == NULL
 			|| elf_hash_table (info)->hgot->root.u.def.value == 0);
 
-            /* Dynamic entries will require relocations. if we do not need
-               them we will just use the default R_OR1K_NONE and
-               not set anything.  */
-            dynamic = bfd_link_pic (info)
+	    /* Dynamic entries will require relocations. if we do not need
+	       them we will just use the default R_OR1K_NONE and
+	       not set anything.  */
+	    dynamic = bfd_link_pic (info)
 	      || (sec && (sec->flags & SEC_ALLOC) != 0
 		  && h != NULL
 		  && (h->root.type == bfd_link_hash_defweak || !h->def_regular));
 
-            /* Shared GD.  */
-            if (dynamic && (howto->type == R_OR1K_TLS_GD_HI16
+	    /* Shared GD.  */
+	    if (dynamic && (howto->type == R_OR1K_TLS_GD_HI16
 			    || howto->type == R_OR1K_TLS_GD_LO16))
-              {
-                int i;
+	      {
+		int i;
 
-                /* Add DTPMOD and DTPOFF GOT and rela entries.  */
-                for (i = 0; i < 2; ++i)
-                  {
-                    rela.r_offset = sgot->output_section->vma +
-                      sgot->output_offset + gotoff + i*4;
-                    if (h != NULL && h->dynindx != -1)
-                      {
-                        rela.r_info = ELF32_R_INFO (h->dynindx,
-                            (i == 0 ? R_OR1K_TLS_DTPMOD : R_OR1K_TLS_DTPOFF));
-                        rela.r_addend = 0;
-                      }
-                    else
-                      {
-                        rela.r_info = ELF32_R_INFO (0,
-                            (i == 0 ? R_OR1K_TLS_DTPMOD : R_OR1K_TLS_DTPOFF));
-                        rela.r_addend = tpoff (info, relocation);
-                      }
-
-                    loc = sreloc->contents;
-                    loc += sreloc->reloc_count++ *
-                      sizeof (Elf32_External_Rela);
-
-                    bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
-                    bfd_put_32 (output_bfd, 0, sgot->contents + gotoff + i*4);
-                  }
-              }
-            /* Static GD.  */
-            else if (howto->type == R_OR1K_TLS_GD_HI16
-                     || howto->type == R_OR1K_TLS_GD_LO16)
-              {
-                bfd_put_32 (output_bfd, 1, sgot->contents + gotoff);
-                bfd_put_32 (output_bfd, tpoff (info, relocation),
-                    sgot->contents + gotoff + 4);
-              }
-            /* Shared IE.  */
-            else if (dynamic)
-              {
-                /* Add TPOFF GOT and rela entries.  */
-                rela.r_offset = sgot->output_section->vma +
-                  sgot->output_offset + gotoff;
-                if (h != NULL && h->dynindx != -1)
-                  {
-                    rela.r_info = ELF32_R_INFO (h->dynindx, R_OR1K_TLS_TPOFF);
-                    rela.r_addend = 0;
-                  }
-                else
-                  {
-                    rela.r_info = ELF32_R_INFO (0, R_OR1K_TLS_TPOFF);
-                    rela.r_addend = tpoff (info, relocation);
-                  }
-
-                loc = sreloc->contents;
-                loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
-
-                bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
-                bfd_put_32 (output_bfd, 0, sgot->contents + gotoff);
-              }
-            /* Static IE.  */
-            else
-              {
-                bfd_put_32 (output_bfd, tpoff (info, relocation),
+		/* Add DTPMOD and DTPOFF GOT and rela entries.  */
+		for (i = 0; i < 2; ++i)
+		  {
+		    rela.r_offset = sgot->output_section->vma +
+		      sgot->output_offset + gotoff + i*4;
+		    if (h != NULL && h->dynindx != -1)
+		      {
+			rela.r_info = ELF32_R_INFO (h->dynindx,
+			    (i == 0 ? R_OR1K_TLS_DTPMOD : R_OR1K_TLS_DTPOFF));
+			rela.r_addend = 0;
+		      }
+		    else
+		      {
+			rela.r_info = ELF32_R_INFO (0,
+			    (i == 0 ? R_OR1K_TLS_DTPMOD : R_OR1K_TLS_DTPOFF));
+			rela.r_addend = tpoff (info, relocation);
+		      }
+
+		    loc = sreloc->contents;
+		    loc += sreloc->reloc_count++ *
+		      sizeof (Elf32_External_Rela);
+
+		    bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
+		    bfd_put_32 (output_bfd, 0, sgot->contents + gotoff + i*4);
+		  }
+	      }
+	    /* Static GD.  */
+	    else if (howto->type == R_OR1K_TLS_GD_HI16
+		     || howto->type == R_OR1K_TLS_GD_LO16)
+	      {
+		bfd_put_32 (output_bfd, 1, sgot->contents + gotoff);
+		bfd_put_32 (output_bfd, tpoff (info, relocation),
+		    sgot->contents + gotoff + 4);
+	      }
+	    /* Shared IE.  */
+	    else if (dynamic)
+	      {
+		/* Add TPOFF GOT and rela entries.  */
+		rela.r_offset = sgot->output_section->vma +
+		  sgot->output_offset + gotoff;
+		if (h != NULL && h->dynindx != -1)
+		  {
+		    rela.r_info = ELF32_R_INFO (h->dynindx, R_OR1K_TLS_TPOFF);
+		    rela.r_addend = 0;
+		  }
+		else
+		  {
+		    rela.r_info = ELF32_R_INFO (0, R_OR1K_TLS_TPOFF);
+		    rela.r_addend = tpoff (info, relocation);
+		  }
+
+		loc = sreloc->contents;
+		loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela);
+
+		bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
+		bfd_put_32 (output_bfd, 0, sgot->contents + gotoff);
+	      }
+	    /* Static IE.  */
+	    else
+	      {
+		bfd_put_32 (output_bfd, tpoff (info, relocation),
 			    sgot->contents + gotoff);
-              }
-            relocation = sgot->output_offset + gotoff;
-            break;
-          }
-        case R_OR1K_TLS_LE_HI16:
-        case R_OR1K_TLS_LE_LO16:
-
-          /* Relocation is offset from TP.  */
-          relocation = tpoff (info, relocation);
-          break;
-
-        case R_OR1K_TLS_DTPMOD:
-        case R_OR1K_TLS_DTPOFF:
-        case R_OR1K_TLS_TPOFF:
-          /* These are resolved dynamically on load and shouldn't
-             be used as linker input.  */
-          BFD_FAIL ();
+	      }
+	    relocation = sgot->output_offset + gotoff;
+	    break;
+	  }
+	case R_OR1K_TLS_LE_HI16:
+	case R_OR1K_TLS_LE_LO16:
+
+	  /* Relocation is offset from TP.  */
+	  relocation = tpoff (info, relocation);
+	  break;
+
+	case R_OR1K_TLS_DTPMOD:
+	case R_OR1K_TLS_DTPOFF:
+	case R_OR1K_TLS_TPOFF:
+	  /* These are resolved dynamically on load and shouldn't
+	     be used as linker input.  */
+	  BFD_FAIL ();
 	  _bfd_error_handler
-            (_("%B: will not resolve runtime TLS relocation"),
-             input_bfd);
-          bfd_set_error (bfd_error_bad_value);
-          return FALSE;
-
-        default:
-          break;
-        }
+	    (_("%B: will not resolve runtime TLS relocation"),
+	     input_bfd);
+	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
+
+	default:
+	  break;
+	}
       r = _bfd_final_link_relocate (howto, input_bfd, input_section, contents,
-                                    rel->r_offset, relocation, rel->r_addend);
+				    rel->r_offset, relocation, rel->r_addend);
 
       if (r != bfd_reloc_ok)
-        {
-          const char *msg = NULL;
+	{
+	  const char *msg = NULL;
 
-          switch (r)
-            {
-            case bfd_reloc_overflow:
+	  switch (r)
+	    {
+	    case bfd_reloc_overflow:
 	      (*info->callbacks->reloc_overflow)
-                (info, (h ? &h->root : NULL), name, howto->name,
-                 (bfd_vma) 0, input_bfd, input_section, rel->r_offset);
-              break;
+		(info, (h ? &h->root : NULL), name, howto->name,
+		 (bfd_vma) 0, input_bfd, input_section, rel->r_offset);
+	      break;
 
-            case bfd_reloc_undefined:
+	    case bfd_reloc_undefined:
 	      (*info->callbacks->undefined_symbol)
-                (info, name, input_bfd, input_section, rel->r_offset, TRUE);
-              break;
+		(info, name, input_bfd, input_section, rel->r_offset, TRUE);
+	      break;
 
-            case bfd_reloc_outofrange:
-              msg = _("internal error: out of range error");
-              break;
-
-            case bfd_reloc_notsupported:
-              msg = _("internal error: unsupported relocation error");
-              break;
-
-            case bfd_reloc_dangerous:
-              msg = _("internal error: dangerous relocation");
-              break;
-
-            default:
-              msg = _("internal error: unknown error");
-              break;
-            }
+	    case bfd_reloc_outofrange:
+	      msg = _("internal error: out of range error");
+	      break;
+
+	    case bfd_reloc_notsupported:
+	      msg = _("internal error: unsupported relocation error");
+	      break;
+
+	    case bfd_reloc_dangerous:
+	      msg = _("internal error: dangerous relocation");
+	      break;
+
+	    default:
+	      msg = _("internal error: unknown error");
+	      break;
+	    }
 
-          if (msg)
+	  if (msg)
 	    (*info->callbacks->warning) (info, msg, name, input_bfd,
 					 input_section, rel->r_offset);
-        }
+	}
     }
 
   return TRUE;
@@ -1295,67 +1275,12 @@ or1k_elf_gc_mark_hook (asection *sec,
       {
       case R_OR1K_GNU_VTINHERIT:
       case R_OR1K_GNU_VTENTRY:
-        return NULL;
+	return NULL;
       }
 
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-static bfd_boolean
-or1k_elf_gc_sweep_hook (bfd *abfd,
-                        struct bfd_link_info *info ATTRIBUTE_UNUSED,
-                        asection *sec,
-                        const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED)
-{
-  /* Update the got entry reference counts for the section being removed.  */
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-        {
-          h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-          while (h->root.type == bfd_link_hash_indirect
-                 || h->root.type == bfd_link_hash_warning)
-            h = (struct elf_link_hash_entry *) h->root.u.i.link;
-        }
-
-      switch (ELF32_R_TYPE (rel->r_info))
-        {
-        case R_OR1K_GOT16:
-          if (h != NULL)
-            {
-              if (h->got.refcount > 0)
-                h->got.refcount--;
-            }
-          else
-            {
-              if (local_got_refcounts && local_got_refcounts[r_symndx] > 0)
-                local_got_refcounts[r_symndx]--;
-            }
-          break;
-
-        default:
-          break;
-        }
-    }
-  return TRUE;
-}
-
 /* Look through the relocs for a section during the first phase.  */
 
 static bfd_boolean
@@ -1376,6 +1301,15 @@ or1k_elf_check_relocs (bfd *abfd,
   if (bfd_link_relocatable (info))
     return TRUE;
 
+  /* Don't do anything special with non-loaded, non-alloced sections.
+     In particular, any relocs in such sections should not affect GOT
+     and PLT reference counting (ie. we don't allow them to create GOT
+     or PLT entries), there's no possibility or desire to optimize TLS
+     relocs, and there's not much point in propagating relocs to shared
+     libs that the dynamic linker won't relocate.  */
+  if ((sec->flags & SEC_ALLOC) == 0)
+    return TRUE;
+
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   sym_hashes = elf_sym_hashes (abfd);
 
@@ -1394,277 +1328,273 @@ or1k_elf_check_relocs (bfd *abfd,
 
       r_symndx = ELF32_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
-        {
-          h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-          while (h->root.type == bfd_link_hash_indirect
-                 || h->root.type == bfd_link_hash_warning)
-            h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-          /* PR15323, ref flags aren't set for references in the same
-             object.  */
-          h->root.non_ir_ref = 1;
-        }
+	{
+	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
+	  while (h->root.type == bfd_link_hash_indirect
+		 || h->root.type == bfd_link_hash_warning)
+	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
+	}
 
       switch (ELF32_R_TYPE (rel->r_info))
-        {
-        case R_OR1K_TLS_GD_HI16:
-        case R_OR1K_TLS_GD_LO16:
-          tls_type = TLS_GD;
-          break;
-        case R_OR1K_TLS_LDM_HI16:
-        case R_OR1K_TLS_LDM_LO16:
-        case R_OR1K_TLS_LDO_HI16:
-        case R_OR1K_TLS_LDO_LO16:
-          tls_type = TLS_LD;
-          break;
-        case R_OR1K_TLS_IE_HI16:
-        case R_OR1K_TLS_IE_LO16:
-          tls_type = TLS_IE;
-          break;
-        case R_OR1K_TLS_LE_HI16:
-        case R_OR1K_TLS_LE_LO16:
-          tls_type = TLS_LE;
-          break;
-        default:
-          tls_type = TLS_NONE;
-        }
+	{
+	case R_OR1K_TLS_GD_HI16:
+	case R_OR1K_TLS_GD_LO16:
+	  tls_type = TLS_GD;
+	  break;
+	case R_OR1K_TLS_LDM_HI16:
+	case R_OR1K_TLS_LDM_LO16:
+	case R_OR1K_TLS_LDO_HI16:
+	case R_OR1K_TLS_LDO_LO16:
+	  tls_type = TLS_LD;
+	  break;
+	case R_OR1K_TLS_IE_HI16:
+	case R_OR1K_TLS_IE_LO16:
+	  tls_type = TLS_IE;
+	  break;
+	case R_OR1K_TLS_LE_HI16:
+	case R_OR1K_TLS_LE_LO16:
+	  tls_type = TLS_LE;
+	  break;
+	default:
+	  tls_type = TLS_NONE;
+	}
 
       /* Record TLS type.  */
       if (h != NULL)
-          ((struct elf_or1k_link_hash_entry *) h)->tls_type = tls_type;
+	  ((struct elf_or1k_link_hash_entry *) h)->tls_type = tls_type;
       else
-        {
-          unsigned char *local_tls_type;
+	{
+	  unsigned char *local_tls_type;
 
-          /* This is a TLS type record for a local symbol.  */
-          local_tls_type = (unsigned char *) elf_or1k_local_tls_type (abfd);
-          if (local_tls_type == NULL)
-            {
-              bfd_size_type size;
-
-              size = symtab_hdr->sh_info;
-              local_tls_type = bfd_zalloc (abfd, size);
-              if (local_tls_type == NULL)
-                return FALSE;
-              elf_or1k_local_tls_type (abfd) = local_tls_type;
-            }
-          local_tls_type[r_symndx] = tls_type;
-        }
+	  /* This is a TLS type record for a local symbol.  */
+	  local_tls_type = (unsigned char *) elf_or1k_local_tls_type (abfd);
+	  if (local_tls_type == NULL)
+	    {
+	      bfd_size_type size;
+
+	      size = symtab_hdr->sh_info;
+	      local_tls_type = bfd_zalloc (abfd, size);
+	      if (local_tls_type == NULL)
+		return FALSE;
+	      elf_or1k_local_tls_type (abfd) = local_tls_type;
+	    }
+	  local_tls_type[r_symndx] = tls_type;
+	}
 
       switch (ELF32_R_TYPE (rel->r_info))
-        {
-          /* This relocation describes the C++ object vtable hierarchy.
-             Reconstruct it for later use during GC.  */
-        case R_OR1K_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-          /* This relocation describes which C++ vtable entries are actually
-             used.  Record for later use during GC.  */
-        case R_OR1K_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
-
-          /* This relocation requires .plt entry.  */
-        case R_OR1K_PLT26:
-          if (h != NULL)
-            {
-              h->needs_plt = 1;
-              h->plt.refcount += 1;
-            }
-          break;
-
-        case R_OR1K_GOT16:
-        case R_OR1K_GOTOFF_HI16:
-        case R_OR1K_GOTOFF_LO16:
-        case R_OR1K_TLS_GD_HI16:
-        case R_OR1K_TLS_GD_LO16:
-        case R_OR1K_TLS_IE_HI16:
-        case R_OR1K_TLS_IE_LO16:
-          if (htab->root.sgot == NULL)
-            {
-              if (dynobj == NULL)
-                htab->root.dynobj = dynobj = abfd;
-              if (!_bfd_elf_create_got_section (dynobj, info))
-                return FALSE;
-            }
-
-          if (ELF32_R_TYPE (rel->r_info) != R_OR1K_GOTOFF_HI16 &&
-              ELF32_R_TYPE (rel->r_info) != R_OR1K_GOTOFF_LO16)
-            {
-              if (h != NULL)
-                h->got.refcount += 1;
-              else
-                {
-                  bfd_signed_vma *local_got_refcounts;
-
-                  /* This is a global offset table entry for a local symbol.  */
-                  local_got_refcounts = elf_local_got_refcounts (abfd);
-                  if (local_got_refcounts == NULL)
-                    {
-                      bfd_size_type size;
-
-                      size = symtab_hdr->sh_info;
-                      size *= sizeof (bfd_signed_vma);
-                      local_got_refcounts = bfd_zalloc (abfd, size);
-                      if (local_got_refcounts == NULL)
-                        return FALSE;
-                      elf_local_got_refcounts (abfd) = local_got_refcounts;
-                    }
-                  local_got_refcounts[r_symndx] += 1;
-                }
-            }
-          break;
-
-        case R_OR1K_INSN_REL_26:
-        case R_OR1K_HI_16_IN_INSN:
-        case R_OR1K_LO_16_IN_INSN:
-        case R_OR1K_32:
-          /* R_OR1K_16? */
-          {
-            if (h != NULL && !bfd_link_pic (info))
-              {
-                /* We may need a copy reloc.  */
-                h->non_got_ref = 1;
-
-                /* We may also need a .plt entry.  */
-                h->plt.refcount += 1;
-                if (ELF32_R_TYPE (rel->r_info) != R_OR1K_INSN_REL_26)
-                  h->pointer_equality_needed = 1;
-              }
-
-            /* If we are creating a shared library, and this is a reloc
-               against a global symbol, or a non PC relative reloc
-               against a local symbol, then we need to copy the reloc
-               into the shared library.  However, if we are linking with
-               -Bsymbolic, we do not need to copy a reloc against a
-               global symbol which is defined in an object we are
-               including in the link (i.e., DEF_REGULAR is set).  At
-               this point we have not seen all the input files, so it is
-               possible that DEF_REGULAR is not set now but will be set
-               later (it is never cleared).  In case of a weak definition,
-               DEF_REGULAR may be cleared later by a strong definition in
-               a shared library.  We account for that possibility below by
-               storing information in the relocs_copied field of the hash
-               table entry.  A similar situation occurs when creating
-               shared libraries and symbol visibility changes render the
-               symbol local.
-
-               If on the other hand, we are creating an executable, we
-               may need to keep relocations for symbols satisfied by a
-               dynamic library if we manage to avoid copy relocs for the
-               symbol.  */
-
-            if ((bfd_link_pic (info)
-                 && (sec->flags & SEC_ALLOC) != 0
-                 && (ELF32_R_TYPE (rel->r_info) != R_OR1K_INSN_REL_26
-                     || (h != NULL
-                         && (!SYMBOLIC_BIND (info, h)
-                             || h->root.type == bfd_link_hash_defweak
-                             || !h->def_regular))))
-                || (!bfd_link_pic (info)
-                    && (sec->flags & SEC_ALLOC) != 0
-                    && h != NULL
-                    && (h->root.type == bfd_link_hash_defweak
-                        || !h->def_regular)))
-              {
-                struct elf_or1k_dyn_relocs *p;
-                struct elf_or1k_dyn_relocs **head;
-
-                /* When creating a shared object, we must copy these
-                   relocs into the output file.  We create a reloc
-                   section in dynobj and make room for the reloc.  */
-                if (sreloc == NULL)
-                  {
-                    const char *name;
-                    unsigned int strndx = elf_elfheader (abfd)->e_shstrndx;
-                    unsigned int shnam = _bfd_elf_single_rel_hdr (sec)->sh_name;
-
-                    name = bfd_elf_string_from_elf_section (abfd, strndx, shnam);
-                    if (name == NULL)
-                      return FALSE;
-
-                    if (strncmp (name, ".rela", 5) != 0
-                        || strcmp (bfd_get_section_name (abfd, sec),
-                                   name + 5) != 0)
-                      {
+	{
+	  /* This relocation describes the C++ object vtable hierarchy.
+	     Reconstruct it for later use during GC.  */
+	case R_OR1K_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	  /* This relocation describes which C++ vtable entries are actually
+	     used.  Record for later use during GC.  */
+	case R_OR1K_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
+
+	  /* This relocation requires .plt entry.  */
+	case R_OR1K_PLT26:
+	  if (h != NULL)
+	    {
+	      h->needs_plt = 1;
+	      h->plt.refcount += 1;
+	    }
+	  break;
+
+	case R_OR1K_GOT16:
+	case R_OR1K_GOTOFF_HI16:
+	case R_OR1K_GOTOFF_LO16:
+	case R_OR1K_TLS_GD_HI16:
+	case R_OR1K_TLS_GD_LO16:
+	case R_OR1K_TLS_IE_HI16:
+	case R_OR1K_TLS_IE_LO16:
+	  if (htab->root.sgot == NULL)
+	    {
+	      if (dynobj == NULL)
+		htab->root.dynobj = dynobj = abfd;
+	      if (!_bfd_elf_create_got_section (dynobj, info))
+		return FALSE;
+	    }
+
+	  if (ELF32_R_TYPE (rel->r_info) != R_OR1K_GOTOFF_HI16 &&
+	      ELF32_R_TYPE (rel->r_info) != R_OR1K_GOTOFF_LO16)
+	    {
+	      if (h != NULL)
+		h->got.refcount += 1;
+	      else
+		{
+		  bfd_signed_vma *local_got_refcounts;
+
+		  /* This is a global offset table entry for a local symbol.  */
+		  local_got_refcounts = elf_local_got_refcounts (abfd);
+		  if (local_got_refcounts == NULL)
+		    {
+		      bfd_size_type size;
+
+		      size = symtab_hdr->sh_info;
+		      size *= sizeof (bfd_signed_vma);
+		      local_got_refcounts = bfd_zalloc (abfd, size);
+		      if (local_got_refcounts == NULL)
+			return FALSE;
+		      elf_local_got_refcounts (abfd) = local_got_refcounts;
+		    }
+		  local_got_refcounts[r_symndx] += 1;
+		}
+	    }
+	  break;
+
+	case R_OR1K_INSN_REL_26:
+	case R_OR1K_HI_16_IN_INSN:
+	case R_OR1K_LO_16_IN_INSN:
+	case R_OR1K_32:
+	  /* R_OR1K_16? */
+	  {
+	    if (h != NULL && !bfd_link_pic (info))
+	      {
+		/* We may need a copy reloc.  */
+		h->non_got_ref = 1;
+
+		/* We may also need a .plt entry.  */
+		h->plt.refcount += 1;
+		if (ELF32_R_TYPE (rel->r_info) != R_OR1K_INSN_REL_26)
+		  h->pointer_equality_needed = 1;
+	      }
+
+	    /* If we are creating a shared library, and this is a reloc
+	       against a global symbol, or a non PC relative reloc
+	       against a local symbol, then we need to copy the reloc
+	       into the shared library.  However, if we are linking with
+	       -Bsymbolic, we do not need to copy a reloc against a
+	       global symbol which is defined in an object we are
+	       including in the link (i.e., DEF_REGULAR is set).  At
+	       this point we have not seen all the input files, so it is
+	       possible that DEF_REGULAR is not set now but will be set
+	       later (it is never cleared).  In case of a weak definition,
+	       DEF_REGULAR may be cleared later by a strong definition in
+	       a shared library.  We account for that possibility below by
+	       storing information in the relocs_copied field of the hash
+	       table entry.  A similar situation occurs when creating
+	       shared libraries and symbol visibility changes render the
+	       symbol local.
+
+	       If on the other hand, we are creating an executable, we
+	       may need to keep relocations for symbols satisfied by a
+	       dynamic library if we manage to avoid copy relocs for the
+	       symbol.  */
+
+	    if ((bfd_link_pic (info)
+		 && (sec->flags & SEC_ALLOC) != 0
+		 && (ELF32_R_TYPE (rel->r_info) != R_OR1K_INSN_REL_26
+		     || (h != NULL
+			 && (!SYMBOLIC_BIND (info, h)
+			     || h->root.type == bfd_link_hash_defweak
+			     || !h->def_regular))))
+		|| (!bfd_link_pic (info)
+		    && (sec->flags & SEC_ALLOC) != 0
+		    && h != NULL
+		    && (h->root.type == bfd_link_hash_defweak
+			|| !h->def_regular)))
+	      {
+		struct elf_dyn_relocs *p;
+		struct elf_dyn_relocs **head;
+
+		/* When creating a shared object, we must copy these
+		   relocs into the output file.  We create a reloc
+		   section in dynobj and make room for the reloc.  */
+		if (sreloc == NULL)
+		  {
+		    const char *name;
+		    unsigned int strndx = elf_elfheader (abfd)->e_shstrndx;
+		    unsigned int shnam = _bfd_elf_single_rel_hdr (sec)->sh_name;
+
+		    name = bfd_elf_string_from_elf_section (abfd, strndx, shnam);
+		    if (name == NULL)
+		      return FALSE;
+
+		    if (strncmp (name, ".rela", 5) != 0
+			|| strcmp (bfd_get_section_name (abfd, sec),
+				   name + 5) != 0)
+		      {
 			_bfd_error_handler
 			  /* xgettext:c-format */
-                          (_("%B: bad relocation section name `%s\'"),
-                           abfd, name);
-                      }
-
-                    if (htab->root.dynobj == NULL)
-                      htab->root.dynobj = abfd;
-                    dynobj = htab->root.dynobj;
-
-                    sreloc = bfd_get_section_by_name (dynobj, name);
-                    if (sreloc == NULL)
-                      {
-                        sreloc = _bfd_elf_make_dynamic_reloc_section
-                          (sec, dynobj, 2, abfd, /*rela?*/ TRUE);
-
-                        if (sreloc == NULL)
-                          return FALSE;
-                      }
-                    elf_section_data (sec)->sreloc = sreloc;
-                  }
-
-                /* If this is a global symbol, we count the number of
-                   relocations we need for this symbol.  */
-                if (h != NULL)
-                  head = &((struct elf_or1k_link_hash_entry *) h)->dyn_relocs;
-                else
-                  {
-                    /* Track dynamic relocs needed for local syms too.
-                       We really need local syms available to do this
-                       easily.  Oh well.  */
-
-                    asection *s;
-                    Elf_Internal_Sym *isym;
-                    void *vpp;
-
-                    isym = bfd_sym_from_r_symndx (&htab->sym_sec,
-                                                  abfd, r_symndx);
-                    if (isym == NULL)
-                      return FALSE;
-
-                    s = bfd_section_from_elf_index (abfd, isym->st_shndx);
-                    if (s == NULL)
-                      return FALSE;
-
-                    vpp = &elf_section_data (s)->local_dynrel;
-                    head = (struct elf_or1k_dyn_relocs **) vpp;
-                  }
-
-                p = *head;
-                if (p == NULL || p->sec != sec)
-                  {
-                    bfd_size_type amt = sizeof *p;
-                    p = ((struct elf_or1k_dyn_relocs *)
-                         bfd_alloc (htab->root.dynobj, amt));
-                    if (p == NULL)
-                      return FALSE;
-                    p->next = *head;
-                    *head = p;
-                    p->sec = sec;
-                    p->count = 0;
-                    p->pc_count = 0;
-                  }
-
-                p->count += 1;
-                if (ELF32_R_TYPE (rel->r_info) == R_OR1K_INSN_REL_26)
-                  p->pc_count += 1;
-              }
-          }
-          break;
-        }
+			  (_("%B: bad relocation section name `%s\'"),
+			   abfd, name);
+		      }
+
+		    if (htab->root.dynobj == NULL)
+		      htab->root.dynobj = abfd;
+		    dynobj = htab->root.dynobj;
+
+		    sreloc = bfd_get_section_by_name (dynobj, name);
+		    if (sreloc == NULL)
+		      {
+			sreloc = _bfd_elf_make_dynamic_reloc_section
+			  (sec, dynobj, 2, abfd, /*rela?*/ TRUE);
+
+			if (sreloc == NULL)
+			  return FALSE;
+		      }
+		    elf_section_data (sec)->sreloc = sreloc;
+		  }
+
+		/* If this is a global symbol, we count the number of
+		   relocations we need for this symbol.  */
+		if (h != NULL)
+		  head = &((struct elf_or1k_link_hash_entry *) h)->dyn_relocs;
+		else
+		  {
+		    /* Track dynamic relocs needed for local syms too.
+		       We really need local syms available to do this
+		       easily.  Oh well.  */
+
+		    asection *s;
+		    Elf_Internal_Sym *isym;
+		    void *vpp;
+
+		    isym = bfd_sym_from_r_symndx (&htab->sym_sec,
+						  abfd, r_symndx);
+		    if (isym == NULL)
+		      return FALSE;
+
+		    s = bfd_section_from_elf_index (abfd, isym->st_shndx);
+		    if (s == NULL)
+		      return FALSE;
+
+		    vpp = &elf_section_data (s)->local_dynrel;
+		    head = (struct elf_dyn_relocs **) vpp;
+		  }
+
+		p = *head;
+		if (p == NULL || p->sec != sec)
+		  {
+		    bfd_size_type amt = sizeof *p;
+		    p = ((struct elf_dyn_relocs *)
+			 bfd_alloc (htab->root.dynobj, amt));
+		    if (p == NULL)
+		      return FALSE;
+		    p->next = *head;
+		    *head = p;
+		    p->sec = sec;
+		    p->count = 0;
+		    p->pc_count = 0;
+		  }
+
+		p->count += 1;
+		if (ELF32_R_TYPE (rel->r_info) == R_OR1K_INSN_REL_26)
+		  p->pc_count += 1;
+	      }
+	  }
+	  break;
+	}
     }
 
   return TRUE;
@@ -1674,7 +1604,7 @@ or1k_elf_check_relocs (bfd *abfd,
 
 static bfd_boolean
 or1k_elf_finish_dynamic_sections (bfd *output_bfd,
-                                  struct bfd_link_info *info)
+				  struct bfd_link_info *info)
 {
   bfd *dynobj;
   asection *sdyn, *sgot;
@@ -1700,71 +1630,71 @@ or1k_elf_finish_dynamic_sections (bfd *o
       dynconend = (Elf32_External_Dyn *) (sdyn->contents + sdyn->size);
 
       for (; dyncon < dynconend; dyncon++)
-        {
-          Elf_Internal_Dyn dyn;
-          asection *s;
-
-          bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
-
-          switch (dyn.d_tag)
-            {
-            default:
-              continue;
-
-            case DT_PLTGOT:
-              s = htab->root.sgotplt;
-              dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
-              break;
-
-            case DT_JMPREL:
-              s = htab->root.srelplt;
-              dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
-              break;
-
-            case DT_PLTRELSZ:
-              s = htab->root.srelplt;
-              dyn.d_un.d_val = s->size;
-              break;
-            }
-          bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
-        }
+	{
+	  Elf_Internal_Dyn dyn;
+	  asection *s;
+
+	  bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
+
+	  switch (dyn.d_tag)
+	    {
+	    default:
+	      continue;
+
+	    case DT_PLTGOT:
+	      s = htab->root.sgotplt;
+	      dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
+	      break;
+
+	    case DT_JMPREL:
+	      s = htab->root.srelplt;
+	      dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
+	      break;
+
+	    case DT_PLTRELSZ:
+	      s = htab->root.srelplt;
+	      dyn.d_un.d_val = s->size;
+	      break;
+	    }
+	  bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
+	}
 
 
       /* Fill in the first entry in the procedure linkage table.  */
       splt = htab->root.splt;
       if (splt && splt->size > 0)
-        {
-          if (bfd_link_pic (info))
-            {
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD0,
-                          splt->contents);
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD1,
-                          splt->contents + 4);
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD2,
-                          splt->contents + 8);
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD3,
-                          splt->contents + 12);
-              bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD4,
-                          splt->contents + 16);
-            }
-          else
-            {
-              unsigned long addr;
-              /* addr = .got + 4 */
-              addr = sgot->output_section->vma + sgot->output_offset + 4;
-              bfd_put_32 (output_bfd,
-                          PLT0_ENTRY_WORD0 | ((addr >> 16) & 0xffff),
-                          splt->contents);
-              bfd_put_32 (output_bfd,
-                          PLT0_ENTRY_WORD1 | (addr & 0xffff),
-                          splt->contents + 4);
-              bfd_put_32 (output_bfd, PLT0_ENTRY_WORD2, splt->contents + 8);
-              bfd_put_32 (output_bfd, PLT0_ENTRY_WORD3, splt->contents + 12);
-              bfd_put_32 (output_bfd, PLT0_ENTRY_WORD4, splt->contents + 16);
-            }
+	{
+	  if (bfd_link_pic (info))
+	    {
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD0,
+			  splt->contents);
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD1,
+			  splt->contents + 4);
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD2,
+			  splt->contents + 8);
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD3,
+			  splt->contents + 12);
+	      bfd_put_32 (output_bfd, PLT0_PIC_ENTRY_WORD4,
+			  splt->contents + 16);
+	    }
+	  else
+	    {
+	      unsigned long addr;
+	      /* addr = .got + 4 */
+	      addr = sgot->output_section->vma + sgot->output_offset + 4;
+	      bfd_put_32 (output_bfd,
+			  PLT0_ENTRY_WORD0 | ((addr >> 16) & 0xffff),
+			  splt->contents);
+	      bfd_put_32 (output_bfd,
+			  PLT0_ENTRY_WORD1 | (addr & 0xffff),
+			  splt->contents + 4);
+	      bfd_put_32 (output_bfd, PLT0_ENTRY_WORD2, splt->contents + 8);
+	      bfd_put_32 (output_bfd, PLT0_ENTRY_WORD3, splt->contents + 12);
+	      bfd_put_32 (output_bfd, PLT0_ENTRY_WORD4, splt->contents + 16);
+	    }
 
-          elf_section_data (splt->output_section)->this_hdr.sh_entsize = 4;
-        }
+	  elf_section_data (splt->output_section)->this_hdr.sh_entsize = 4;
+	}
     }
 
   /* Set the first entry in the global offset table to the address of
@@ -1772,11 +1702,11 @@ or1k_elf_finish_dynamic_sections (bfd *o
   if (sgot && sgot->size > 0)
     {
       if (sdyn == NULL)
-        bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents);
+	bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents);
       else
-        bfd_put_32 (output_bfd,
-                    sdyn->output_section->vma + sdyn->output_offset,
-                    sgot->contents);
+	bfd_put_32 (output_bfd,
+		    sdyn->output_section->vma + sdyn->output_offset,
+		    sgot->contents);
       elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4;
     }
 
@@ -1791,9 +1721,9 @@ or1k_elf_finish_dynamic_sections (bfd *o
 
 static bfd_boolean
 or1k_elf_finish_dynamic_symbol (bfd *output_bfd,
-                                struct bfd_link_info *info,
-                                struct elf_link_hash_entry *h,
-                                Elf_Internal_Sym *sym)
+				struct bfd_link_info *info,
+				struct elf_link_hash_entry *h,
+				Elf_Internal_Sym *sym)
 {
   struct elf_or1k_link_hash_table *htab;
   bfd_byte *loc;
@@ -1814,7 +1744,7 @@ or1k_elf_finish_dynamic_symbol (bfd *out
       Elf_Internal_Rela rela;
 
       /* This symbol has an entry in the procedure linkage table.  Set
-         it up.  */
+	 it up.  */
       BFD_ASSERT (h->dynindx != -1);
 
       splt = htab->root.splt;
@@ -1823,59 +1753,59 @@ or1k_elf_finish_dynamic_symbol (bfd *out
       BFD_ASSERT (splt != NULL && sgot != NULL && srela != NULL);
 
       /* Get the index in the procedure linkage table which
-         corresponds to this symbol.  This is the index of this symbol
-         in all the symbols for which we are making plt entries.  The
-         first entry in the procedure linkage table is reserved.  */
+	 corresponds to this symbol.  This is the index of this symbol
+	 in all the symbols for which we are making plt entries.  The
+	 first entry in the procedure linkage table is reserved.  */
       plt_index = h->plt.offset / PLT_ENTRY_SIZE - 1;
 
       /* Get the offset into the .got table of the entry that
-        corresponds to this function.  Each .got entry is 4 bytes.
-        The first three are reserved.  */
+	corresponds to this function.  Each .got entry is 4 bytes.
+	The first three are reserved.  */
       got_offset = (plt_index + 3) * 4;
       got_addr = got_offset;
 
       /* Fill in the entry in the procedure linkage table.  */
       if (! bfd_link_pic (info))
-        {
-          got_addr += htab->root.sgotplt->output_section->vma
-            + htab->root.sgotplt->output_offset;
-          bfd_put_32 (output_bfd, PLT_ENTRY_WORD0 | ((got_addr >> 16) & 0xffff),
-                      splt->contents + h->plt.offset);
-          bfd_put_32 (output_bfd, PLT_ENTRY_WORD1 | (got_addr & 0xffff),
-                      splt->contents + h->plt.offset + 4);
-          bfd_put_32 (output_bfd, (bfd_vma) PLT_ENTRY_WORD2,
-                      splt->contents + h->plt.offset + 8);
-          bfd_put_32 (output_bfd, (bfd_vma) PLT_ENTRY_WORD3,
-                      splt->contents + h->plt.offset + 12);
-          bfd_put_32 (output_bfd, PLT_ENTRY_WORD4
-                      | plt_index * sizeof (Elf32_External_Rela),
-                      splt->contents + h->plt.offset + 16);
-        }
+	{
+	  got_addr += htab->root.sgotplt->output_section->vma
+	    + htab->root.sgotplt->output_offset;
+	  bfd_put_32 (output_bfd, PLT_ENTRY_WORD0 | ((got_addr >> 16) & 0xffff),
+		      splt->contents + h->plt.offset);
+	  bfd_put_32 (output_bfd, PLT_ENTRY_WORD1 | (got_addr & 0xffff),
+		      splt->contents + h->plt.offset + 4);
+	  bfd_put_32 (output_bfd, (bfd_vma) PLT_ENTRY_WORD2,
+		      splt->contents + h->plt.offset + 8);
+	  bfd_put_32 (output_bfd, (bfd_vma) PLT_ENTRY_WORD3,
+		      splt->contents + h->plt.offset + 12);
+	  bfd_put_32 (output_bfd, PLT_ENTRY_WORD4
+		      | plt_index * sizeof (Elf32_External_Rela),
+		      splt->contents + h->plt.offset + 16);
+	}
       else
-        {
-          bfd_put_32 (output_bfd, PLT_PIC_ENTRY_WORD0 | (got_addr & 0xffff),
-                      splt->contents + h->plt.offset);
-          bfd_put_32 (output_bfd, PLT_PIC_ENTRY_WORD1
-                      | plt_index * sizeof (Elf32_External_Rela),
-                      splt->contents + h->plt.offset + 4);
-          bfd_put_32 (output_bfd, (bfd_vma) PLT_PIC_ENTRY_WORD2,
-                      splt->contents + h->plt.offset + 8);
-          bfd_put_32 (output_bfd, (bfd_vma) PLT_PIC_ENTRY_WORD3,
-                      splt->contents + h->plt.offset + 12);
-          bfd_put_32 (output_bfd, (bfd_vma) PLT_PIC_ENTRY_WORD4,
-                      splt->contents + h->plt.offset + 16);
-        }
+	{
+	  bfd_put_32 (output_bfd, PLT_PIC_ENTRY_WORD0 | (got_addr & 0xffff),
+		      splt->contents + h->plt.offset);
+	  bfd_put_32 (output_bfd, PLT_PIC_ENTRY_WORD1
+		      | plt_index * sizeof (Elf32_External_Rela),
+		      splt->contents + h->plt.offset + 4);
+	  bfd_put_32 (output_bfd, (bfd_vma) PLT_PIC_ENTRY_WORD2,
+		      splt->contents + h->plt.offset + 8);
+	  bfd_put_32 (output_bfd, (bfd_vma) PLT_PIC_ENTRY_WORD3,
+		      splt->contents + h->plt.offset + 12);
+	  bfd_put_32 (output_bfd, (bfd_vma) PLT_PIC_ENTRY_WORD4,
+		      splt->contents + h->plt.offset + 16);
+	}
 
       /* Fill in the entry in the global offset table.  */
       bfd_put_32 (output_bfd,
-                  (splt->output_section->vma
-                   + splt->output_offset), /* Same offset.  */
-                  sgot->contents + got_offset);
+		  (splt->output_section->vma
+		   + splt->output_offset), /* Same offset.  */
+		  sgot->contents + got_offset);
 
       /* Fill in the entry in the .rela.plt section.  */
       rela.r_offset = (sgot->output_section->vma
-                       + sgot->output_offset
-                       + got_offset);
+		       + sgot->output_offset
+		       + got_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_OR1K_JMP_SLOT);
       rela.r_addend = 0;
       loc = srela->contents;
@@ -1883,11 +1813,11 @@ or1k_elf_finish_dynamic_symbol (bfd *out
       bfd_elf32_swap_reloca_out (output_bfd, &rela, loc);
 
       if (!h->def_regular)
-        {
-          /* Mark the symbol as undefined, rather than as defined in
-             the .plt section.  Leave the value alone.  */
-          sym->st_shndx = SHN_UNDEF;
-        }
+	{
+	  /* Mark the symbol as undefined, rather than as defined in
+	     the .plt section.  Leave the value alone.  */
+	  sym->st_shndx = SHN_UNDEF;
+	}
 
     }
 
@@ -1899,34 +1829,34 @@ or1k_elf_finish_dynamic_symbol (bfd *out
       Elf_Internal_Rela rela;
 
       /* This symbol has an entry in the global offset table.  Set it
-         up.  */
+	 up.  */
       sgot = htab->root.sgot;
       srela = htab->root.srelgot;
       BFD_ASSERT (sgot != NULL && srela != NULL);
 
       rela.r_offset = (sgot->output_section->vma
-                       + sgot->output_offset
-                       + (h->got.offset &~ 1));
+		       + sgot->output_offset
+		       + (h->got.offset &~ 1));
 
       /* If this is a -Bsymbolic link, and the symbol is defined
-         locally, we just want to emit a RELATIVE reloc.  Likewise if
-         the symbol was forced to be local because of a version file.
-         The entry in the global offset table will already have been
-         initialized in the relocate_section function.  */
+	 locally, we just want to emit a RELATIVE reloc.  Likewise if
+	 the symbol was forced to be local because of a version file.
+	 The entry in the global offset table will already have been
+	 initialized in the relocate_section function.  */
       if (bfd_link_pic (info) && SYMBOL_REFERENCES_LOCAL (info, h))
-        {
-          rela.r_info = ELF32_R_INFO (0, R_OR1K_RELATIVE);
-          rela.r_addend = (h->root.u.def.value
-                           + h->root.u.def.section->output_section->vma
-                           + h->root.u.def.section->output_offset);
-        }
+	{
+	  rela.r_info = ELF32_R_INFO (0, R_OR1K_RELATIVE);
+	  rela.r_addend = (h->root.u.def.value
+			   + h->root.u.def.section->output_section->vma
+			   + h->root.u.def.section->output_offset);
+	}
       else
-        {
-          BFD_ASSERT ((h->got.offset & 1) == 0);
-          bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset);
-          rela.r_info = ELF32_R_INFO (h->dynindx, R_OR1K_GLOB_DAT);
-          rela.r_addend = 0;
-        }
+	{
+	  BFD_ASSERT ((h->got.offset & 1) == 0);
+	  bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset);
+	  rela.r_info = ELF32_R_INFO (h->dynindx, R_OR1K_GLOB_DAT);
+	  rela.r_addend = 0;
+	}
 
       loc = srela->contents;
       loc += srela->reloc_count * sizeof (Elf32_External_Rela);
@@ -1941,12 +1871,12 @@ or1k_elf_finish_dynamic_symbol (bfd *out
 
       /* This symbols needs a copy reloc.  Set it up.  */
       BFD_ASSERT (h->dynindx != -1
-                  && (h->root.type == bfd_link_hash_defined
-                      || h->root.type == bfd_link_hash_defweak));
+		  && (h->root.type == bfd_link_hash_defined
+		      || h->root.type == bfd_link_hash_defweak));
 
       rela.r_offset = (h->root.u.def.value
-                       + h->root.u.def.section->output_section->vma
-                       + h->root.u.def.section->output_offset);
+		       + h->root.u.def.section->output_section->vma
+		       + h->root.u.def.section->output_offset);
       rela.r_info = ELF32_R_INFO (h->dynindx, R_OR1K_COPY);
       rela.r_addend = 0;
       if (h->root.u.def.section == htab->root.sdynrelro)
@@ -1968,18 +1898,36 @@ or1k_elf_finish_dynamic_symbol (bfd *out
 
 static enum elf_reloc_type_class
 or1k_elf_reloc_type_class (const struct bfd_link_info *info ATTRIBUTE_UNUSED,
-                           const asection *rel_sec ATTRIBUTE_UNUSED,
-                           const Elf_Internal_Rela *rela)
+			   const asection *rel_sec ATTRIBUTE_UNUSED,
+			   const Elf_Internal_Rela *rela)
 {
   switch ((int) ELF32_R_TYPE (rela->r_info))
     {
     case R_OR1K_RELATIVE:  return reloc_class_relative;
     case R_OR1K_JMP_SLOT:  return reloc_class_plt;
-    case R_OR1K_COPY:      return reloc_class_copy;
-    default:               return reloc_class_normal;
+    case R_OR1K_COPY:	   return reloc_class_copy;
+    default:		   return reloc_class_normal;
     }
 }
 
+/* Find dynamic relocs for H that apply to read-only sections.  */
+
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
+  struct elf_or1k_link_hash_entry *eh = (struct elf_or1k_link_hash_entry *) h;
+
+  for (p = eh->dyn_relocs; p != NULL; p = p->next)
+    {
+      asection *s = p->sec->output_section;
+
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
+    }
+  return NULL;
+}
+
 /* Adjust a symbol defined by a dynamic object and referenced by a
    regular object.  The current definition is in some section of the
    dynamic object, but we're not including those sections.  We have to
@@ -1988,11 +1936,9 @@ or1k_elf_reloc_type_class (const struct 
 
 static bfd_boolean
 or1k_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
-                                struct elf_link_hash_entry *h)
+				struct elf_link_hash_entry *h)
 {
   struct elf_or1k_link_hash_table *htab;
-  struct elf_or1k_link_hash_entry *eh;
-  struct elf_or1k_dyn_relocs *p;
   bfd *dynobj;
   asection *s, *srel;
 
@@ -2000,11 +1946,11 @@ or1k_elf_adjust_dynamic_symbol (struct b
 
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
-              && (h->needs_plt
-                  || h->u.weakdef != NULL
-                  || (h->def_dynamic
-                      && h->ref_regular
-                      && !h->def_regular)));
+	      && (h->needs_plt
+		  || h->is_weakalias
+		  || (h->def_dynamic
+		      && h->ref_regular
+		      && !h->def_regular)));
 
   /* If this is a function, put it in the procedure linkage table.  We
      will fill in the contents of the procedure linkage table later,
@@ -2013,19 +1959,19 @@ or1k_elf_adjust_dynamic_symbol (struct b
       || h->needs_plt)
     {
       if (! bfd_link_pic (info)
-          && !h->def_dynamic
-          && !h->ref_dynamic
-          && h->root.type != bfd_link_hash_undefweak
-          && h->root.type != bfd_link_hash_undefined)
-        {
-          /* This case can occur if we saw a PLT reloc in an input
-             file, but the symbol was never referred to by a dynamic
-             object.  In such a case, we don't actually need to build
-             a procedure linkage table, and we can just do a PCREL
-             reloc instead.  */
-          h->plt.offset = (bfd_vma) -1;
-          h->needs_plt = 0;
-        }
+	  && !h->def_dynamic
+	  && !h->ref_dynamic
+	  && h->root.type != bfd_link_hash_undefweak
+	  && h->root.type != bfd_link_hash_undefined)
+	{
+	  /* This case can occur if we saw a PLT reloc in an input
+	     file, but the symbol was never referred to by a dynamic
+	     object.  In such a case, we don't actually need to build
+	     a procedure linkage table, and we can just do a PCREL
+	     reloc instead.  */
+	  h->plt.offset = (bfd_vma) -1;
+	  h->needs_plt = 0;
+	}
 
       return TRUE;
     }
@@ -2035,12 +1981,12 @@ or1k_elf_adjust_dynamic_symbol (struct b
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-                  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -2066,18 +2012,9 @@ or1k_elf_adjust_dynamic_symbol (struct b
       return TRUE;
     }
 
-  eh = (struct elf_or1k_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      s = p->sec->output_section;
-      if (s != NULL && (s->flags & (SEC_READONLY | SEC_HAS_CONTENTS)) != 0)
-        break;
-    }
-
-  /* If we didn't find any dynamic relocs in sections which needs the
-     copy reloc, then we'll be keeping the dynamic relocs and avoiding
-     the copy reloc.  */
-  if (p == NULL)
+  /* If we don't find any dynamic relocs in read-only sections, then
+     we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
+  if (!readonly_dynrelocs (h))
     {
       h->non_got_ref = 0;
       return TRUE;
@@ -2129,7 +2066,7 @@ allocate_dynrelocs (struct elf_link_hash
   struct bfd_link_info *info;
   struct elf_or1k_link_hash_table *htab;
   struct elf_or1k_link_hash_entry *eh;
-  struct elf_or1k_dyn_relocs *p;
+  struct elf_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
     return TRUE;
@@ -2145,52 +2082,52 @@ allocate_dynrelocs (struct elf_link_hash
       && h->plt.refcount > 0)
     {
       /* Make sure this symbol is output as a dynamic symbol.
-         Undefined weak syms won't yet be marked as dynamic.  */
+	 Undefined weak syms won't yet be marked as dynamic.  */
       if (h->dynindx == -1
-          && !h->forced_local)
-        {
-          if (! bfd_elf_link_record_dynamic_symbol (info, h))
-            return FALSE;
-        }
+	  && !h->forced_local)
+	{
+	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
+	    return FALSE;
+	}
 
       if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, bfd_link_pic (info), h))
-        {
-          asection *s = htab->root.splt;
+	{
+	  asection *s = htab->root.splt;
 
-          /* If this is the first .plt entry, make room for the special
-             first entry.  */
-          if (s->size == 0)
-            s->size = PLT_ENTRY_SIZE;
-
-          h->plt.offset = s->size;
-
-          /* If this symbol is not defined in a regular file, and we are
-             not generating a shared library, then set the symbol to this
-             location in the .plt.  This is required to make function
-             pointers compare as equal between the normal executable and
-             the shared library.  */
-          if (! bfd_link_pic (info)
-              && !h->def_regular)
-            {
-              h->root.u.def.section = s;
-              h->root.u.def.value = h->plt.offset;
-            }
-
-          /* Make room for this entry.  */
-          s->size += PLT_ENTRY_SIZE;
-
-          /* We also need to make an entry in the .got.plt section, which
-             will be placed in the .got section by the linker script.  */
-          htab->root.sgotplt->size += 4;
-
-          /* We also need to make an entry in the .rel.plt section.  */
-          htab->root.srelplt->size += sizeof (Elf32_External_Rela);
-        }
+	  /* If this is the first .plt entry, make room for the special
+	     first entry.  */
+	  if (s->size == 0)
+	    s->size = PLT_ENTRY_SIZE;
+
+	  h->plt.offset = s->size;
+
+	  /* If this symbol is not defined in a regular file, and we are
+	     not generating a shared library, then set the symbol to this
+	     location in the .plt.  This is required to make function
+	     pointers compare as equal between the normal executable and
+	     the shared library.  */
+	  if (! bfd_link_pic (info)
+	      && !h->def_regular)
+	    {
+	      h->root.u.def.section = s;
+	      h->root.u.def.value = h->plt.offset;
+	    }
+
+	  /* Make room for this entry.  */
+	  s->size += PLT_ENTRY_SIZE;
+
+	  /* We also need to make an entry in the .got.plt section, which
+	     will be placed in the .got section by the linker script.  */
+	  htab->root.sgotplt->size += 4;
+
+	  /* We also need to make an entry in the .rel.plt section.  */
+	  htab->root.srelplt->size += sizeof (Elf32_External_Rela);
+	}
       else
-        {
-          h->plt.offset = (bfd_vma) -1;
-          h->needs_plt = 0;
-        }
+	{
+	  h->plt.offset = (bfd_vma) -1;
+	  h->needs_plt = 0;
+	}
     }
   else
     {
@@ -2205,13 +2142,13 @@ allocate_dynrelocs (struct elf_link_hash
       unsigned char tls_type;
 
       /* Make sure this symbol is output as a dynamic symbol.
-         Undefined weak syms won't yet be marked as dynamic.  */
+	 Undefined weak syms won't yet be marked as dynamic.  */
       if (h->dynindx == -1
-          && !h->forced_local)
-        {
-          if (! bfd_elf_link_record_dynamic_symbol (info, h))
-            return FALSE;
-        }
+	  && !h->forced_local)
+	{
+	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
+	    return FALSE;
+	}
 
       s = htab->root.sgot;
 
@@ -2221,17 +2158,17 @@ allocate_dynrelocs (struct elf_link_hash
 
       /* TLS GD requires two GOT and two relocs.  */
       if (tls_type == TLS_GD)
-        s->size += 8;
+	s->size += 8;
       else
-        s->size += 4;
+	s->size += 4;
       dyn = htab->root.dynamic_sections_created;
       if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h))
-        {
-          if (tls_type == TLS_GD)
-            htab->root.srelgot->size += 2 * sizeof (Elf32_External_Rela);
-          else
-            htab->root.srelgot->size += sizeof (Elf32_External_Rela);
-        }
+	{
+	  if (tls_type == TLS_GD)
+	    htab->root.srelgot->size += 2 * sizeof (Elf32_External_Rela);
+	  else
+	    htab->root.srelgot->size += sizeof (Elf32_External_Rela);
+	}
     }
   else
     h->got.offset = (bfd_vma) -1;
@@ -2248,65 +2185,65 @@ allocate_dynrelocs (struct elf_link_hash
   if (bfd_link_pic (info))
     {
       if (SYMBOL_CALLS_LOCAL (info, h))
-        {
-          struct elf_or1k_dyn_relocs **pp;
+	{
+	  struct elf_dyn_relocs **pp;
 
-          for (pp = &eh->dyn_relocs; (p = *pp) != NULL;)
-            {
-              p->count -= p->pc_count;
-              p->pc_count = 0;
-              if (p->count == 0)
-                *pp = p->next;
-              else
-                pp = &p->next;
-            }
-        }
+	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL;)
+	    {
+	      p->count -= p->pc_count;
+	      p->pc_count = 0;
+	      if (p->count == 0)
+		*pp = p->next;
+	      else
+		pp = &p->next;
+	    }
+	}
 
       /* Also discard relocs on undefined weak syms with non-default
-         visibility.  */
+	 visibility.  */
       if (eh->dyn_relocs != NULL
-          && h->root.type == bfd_link_hash_undefweak)
-        {
-          if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
-            eh->dyn_relocs = NULL;
-
-          /* Make sure undefined weak symbols are output as a dynamic
-             symbol in PIEs.  */
-          else if (h->dynindx == -1
-                   && !h->forced_local)
-            {
-              if (! bfd_elf_link_record_dynamic_symbol (info, h))
-                return FALSE;
-            }
-        }
+	  && h->root.type == bfd_link_hash_undefweak)
+	{
+	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
+	    eh->dyn_relocs = NULL;
+
+	  /* Make sure undefined weak symbols are output as a dynamic
+	     symbol in PIEs.  */
+	  else if (h->dynindx == -1
+		   && !h->forced_local)
+	    {
+	      if (! bfd_elf_link_record_dynamic_symbol (info, h))
+		return FALSE;
+	    }
+	}
     }
   else
     {
       /* For the non-shared case, discard space for relocs against
-         symbols which turn out to need copy relocs or are not
-         dynamic.  */
+	 symbols which turn out to need copy relocs or are not
+	 dynamic.  */
 
       if (!h->non_got_ref
-          && ((h->def_dynamic
-               && !h->def_regular)
-              || (htab->root.dynamic_sections_created
-                  && (h->root.type == bfd_link_hash_undefweak
-                      || h->root.type == bfd_link_hash_undefined))))
-        {
-          /* Make sure this symbol is output as a dynamic symbol.
-             Undefined weak syms won't yet be marked as dynamic.  */
-          if (h->dynindx == -1
-              && !h->forced_local)
-            {
-              if (! bfd_elf_link_record_dynamic_symbol (info, h))
-                return FALSE;
-            }
-
-          /* If that succeeded, we know we'll be keeping all the
-             relocs.  */
-          if (h->dynindx != -1)
-            goto keep;
-        }
+	  && ((h->def_dynamic
+	       && !h->def_regular)
+	      || (htab->root.dynamic_sections_created
+		  && (h->root.type == bfd_link_hash_undefweak
+		      || h->root.type == bfd_link_hash_undefined))))
+	{
+	  /* Make sure this symbol is output as a dynamic symbol.
+	     Undefined weak syms won't yet be marked as dynamic.  */
+	  if (h->dynindx == -1
+	      && !h->forced_local)
+	    {
+	      if (! bfd_elf_link_record_dynamic_symbol (info, h))
+		return FALSE;
+	    }
+
+	  /* If that succeeded, we know we'll be keeping all the
+	     relocs.  */
+	  if (h->dynindx != -1)
+	    goto keep;
+	}
 
       eh->dyn_relocs = NULL;
 
@@ -2323,28 +2260,29 @@ allocate_dynrelocs (struct elf_link_hash
   return TRUE;
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (struct elf_link_hash_entry *h, void * inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct elf_or1k_link_hash_entry *eh;
-  struct elf_or1k_dyn_relocs *p;
+  asection *sec;
 
-  eh = (struct elf_or1k_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection *s = p->sec->output_section;
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-        {
-          struct bfd_link_info *info = (struct bfd_link_info *) inf;
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
+    {
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-          info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
-          /* Not an error, just cut short the traversal.  */
-          return FALSE;
-        }
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -2353,7 +2291,7 @@ readonly_dynrelocs (struct elf_link_hash
 
 static bfd_boolean
 or1k_elf_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
-                                struct bfd_link_info *info)
+				struct bfd_link_info *info)
 {
   struct elf_or1k_link_hash_table *htab;
   bfd *dynobj;
@@ -2372,12 +2310,12 @@ or1k_elf_size_dynamic_sections (bfd *out
     {
       /* Set the contents of the .interp section to the interpreter.  */
       if (bfd_link_executable (info) && !info->nointerp)
-        {
-          s = bfd_get_section_by_name (dynobj, ".interp");
-          BFD_ASSERT (s != NULL);
-          s->size = sizeof ELF_DYNAMIC_INTERPRETER;
-          s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
-        }
+	{
+	  s = bfd_get_section_by_name (dynobj, ".interp");
+	  BFD_ASSERT (s != NULL);
+	  s->size = sizeof ELF_DYNAMIC_INTERPRETER;
+	  s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
+	}
     }
 
   /* Set up .got offsets for local syms, and space for local dynamic
@@ -2392,38 +2330,38 @@ or1k_elf_size_dynamic_sections (bfd *out
       asection *srel;
 
       if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour)
-        continue;
+	continue;
 
       for (s = ibfd->sections; s != NULL; s = s->next)
-        {
-          struct elf_or1k_dyn_relocs *p;
+	{
+	  struct elf_dyn_relocs *p;
 
-          for (p = ((struct elf_or1k_dyn_relocs *)
-                    elf_section_data (s)->local_dynrel);
-               p != NULL;
-               p = p->next)
-            {
-              if (! bfd_is_abs_section (p->sec)
-                  && bfd_is_abs_section (p->sec->output_section))
-                {
-                  /* Input section has been discarded, either because
-                     it is a copy of a linkonce section or due to
-                     linker script /DISCARD/, so we'll be discarding
-                     the relocs too.  */
-                }
-              else if (p->count != 0)
-                {
-                  srel = elf_section_data (p->sec)->sreloc;
-                  srel->size += p->count * sizeof (Elf32_External_Rela);
-                  if ((p->sec->output_section->flags & SEC_READONLY) != 0)
-                    info->flags |= DF_TEXTREL;
-                }
-            }
-        }
+	  for (p = ((struct elf_dyn_relocs *)
+		    elf_section_data (s)->local_dynrel);
+	       p != NULL;
+	       p = p->next)
+	    {
+	      if (! bfd_is_abs_section (p->sec)
+		  && bfd_is_abs_section (p->sec->output_section))
+		{
+		  /* Input section has been discarded, either because
+		     it is a copy of a linkonce section or due to
+		     linker script /DISCARD/, so we'll be discarding
+		     the relocs too.  */
+		}
+	      else if (p->count != 0)
+		{
+		  srel = elf_section_data (p->sec)->sreloc;
+		  srel->size += p->count * sizeof (Elf32_External_Rela);
+		  if ((p->sec->output_section->flags & SEC_READONLY) != 0)
+		    info->flags |= DF_TEXTREL;
+		}
+	    }
+	}
 
       local_got = elf_local_got_refcounts (ibfd);
       if (!local_got)
-        continue;
+	continue;
 
       symtab_hdr = &elf_tdata (ibfd)->symtab_hdr;
       locsymcount = symtab_hdr->sh_info;
@@ -2432,31 +2370,31 @@ or1k_elf_size_dynamic_sections (bfd *out
       srel = htab->root.srelgot;
       local_tls_type = (unsigned char *) elf_or1k_local_tls_type (ibfd);
       for (; local_got < end_local_got; ++local_got)
-        {
-          if (*local_got > 0)
-            {
-              *local_got = s->size;
-
-              /* TLS GD requires two GOT and two relocs.  */
-              if (local_tls_type != NULL && *local_tls_type == TLS_GD)
-                s->size += 8;
-              else
-                s->size += 4;
-              if (bfd_link_pic (info))
-                {
-                  if (local_tls_type != NULL && *local_tls_type == TLS_GD)
-                    srel->size += 2 * sizeof (Elf32_External_Rela);
-                  else
-                    srel->size += sizeof (Elf32_External_Rela);
-                }
-            }
-          else
-
-            *local_got = (bfd_vma) -1;
-
-          if (local_tls_type)
-            ++local_tls_type;
-        }
+	{
+	  if (*local_got > 0)
+	    {
+	      *local_got = s->size;
+
+	      /* TLS GD requires two GOT and two relocs.  */
+	      if (local_tls_type != NULL && *local_tls_type == TLS_GD)
+		s->size += 8;
+	      else
+		s->size += 4;
+	      if (bfd_link_pic (info))
+		{
+		  if (local_tls_type != NULL && *local_tls_type == TLS_GD)
+		    srel->size += 2 * sizeof (Elf32_External_Rela);
+		  else
+		    srel->size += sizeof (Elf32_External_Rela);
+		}
+	    }
+	  else
+
+	    *local_got = (bfd_vma) -1;
+
+	  if (local_tls_type)
+	    ++local_tls_type;
+	}
     }
 
   /* Allocate global sym .plt and .got entries, and space for global
@@ -2469,103 +2407,102 @@ or1k_elf_size_dynamic_sections (bfd *out
   for (s = dynobj->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LINKER_CREATED) == 0)
-        continue;
+	continue;
 
       if (s == htab->root.splt
-          || s == htab->root.sgot
-          || s == htab->root.sgotplt
+	  || s == htab->root.sgot
+	  || s == htab->root.sgotplt
 	  || s == htab->root.sdynbss
 	  || s == htab->root.sdynrelro)
-        {
-          /* Strip this section if we don't need it; see the
-             comment below.  */
-        }
+	{
+	  /* Strip this section if we don't need it; see the
+	     comment below.  */
+	}
       else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
-        {
-          if (s->size != 0 && s != htab->root.srelplt)
-            relocs = TRUE;
-
-          /* We use the reloc_count field as a counter if we need
-             to copy relocs into the output file.  */
-          s->reloc_count = 0;
-        }
+	{
+	  if (s->size != 0 && s != htab->root.srelplt)
+	    relocs = TRUE;
+
+	  /* We use the reloc_count field as a counter if we need
+	     to copy relocs into the output file.  */
+	  s->reloc_count = 0;
+	}
       else
-        /* It's not one of our sections, so don't allocate space.  */
-        continue;
+	/* It's not one of our sections, so don't allocate space.  */
+	continue;
 
       if (s->size == 0)
-        {
-          /* If we don't need this section, strip it from the
-             output file.  This is mostly to handle .rela.bss and
-             .rela.plt.  We must create both sections in
-             create_dynamic_sections, because they must be created
-             before the linker maps input sections to output
-             sections.  The linker does that before
-             adjust_dynamic_symbol is called, and it is that
-             function which decides whether anything needs to go
-             into these sections.  */
-          s->flags |= SEC_EXCLUDE;
-          continue;
-        }
+	{
+	  /* If we don't need this section, strip it from the
+	     output file.  This is mostly to handle .rela.bss and
+	     .rela.plt.  We must create both sections in
+	     create_dynamic_sections, because they must be created
+	     before the linker maps input sections to output
+	     sections.  The linker does that before
+	     adjust_dynamic_symbol is called, and it is that
+	     function which decides whether anything needs to go
+	     into these sections.  */
+	  s->flags |= SEC_EXCLUDE;
+	  continue;
+	}
 
       if ((s->flags & SEC_HAS_CONTENTS) == 0)
-        continue;
+	continue;
 
       /* Allocate memory for the section contents.  We use bfd_zalloc
-         here in case unused entries are not reclaimed before the
-         section's contents are written out.  This should not happen,
-         but this way if it does, we get a R_OR1K_NONE reloc instead
-         of garbage.  */
+	 here in case unused entries are not reclaimed before the
+	 section's contents are written out.  This should not happen,
+	 but this way if it does, we get a R_OR1K_NONE reloc instead
+	 of garbage.  */
       s->contents = bfd_zalloc (dynobj, s->size);
 
       if (s->contents == NULL)
-        return FALSE;
+	return FALSE;
     }
 
   if (htab->root.dynamic_sections_created)
     {
       /* Add some entries to the .dynamic section.  We fill in the
-         values later, in or1k_elf_finish_dynamic_sections, but we
-         must add the entries now so that we get the correct size for
-         the .dynamic section.  The DT_DEBUG entry is filled in by the
-         dynamic linker and used by the debugger.  */
+	 values later, in or1k_elf_finish_dynamic_sections, but we
+	 must add the entries now so that we get the correct size for
+	 the .dynamic section.  The DT_DEBUG entry is filled in by the
+	 dynamic linker and used by the debugger.  */
 #define add_dynamic_entry(TAG, VAL) \
   _bfd_elf_add_dynamic_entry (info, TAG, VAL)
 
      if (bfd_link_executable (info))
        {
-         if (! add_dynamic_entry (DT_DEBUG, 0))
-           return FALSE;
+	 if (! add_dynamic_entry (DT_DEBUG, 0))
+	   return FALSE;
        }
 
      if (htab->root.splt->size != 0)
        {
-         if (! add_dynamic_entry (DT_PLTGOT, 0)
-             || ! add_dynamic_entry (DT_PLTRELSZ, 0)
-             || ! add_dynamic_entry (DT_PLTREL, DT_RELA)
-             || ! add_dynamic_entry (DT_JMPREL, 0))
-           return FALSE;
-        }
+	 if (! add_dynamic_entry (DT_PLTGOT, 0)
+	     || ! add_dynamic_entry (DT_PLTRELSZ, 0)
+	     || ! add_dynamic_entry (DT_PLTREL, DT_RELA)
+	     || ! add_dynamic_entry (DT_JMPREL, 0))
+	   return FALSE;
+	}
 
      if (relocs)
        {
-         if (! add_dynamic_entry (DT_RELA, 0)
-             || ! add_dynamic_entry (DT_RELASZ, 0)
-             || ! add_dynamic_entry (DT_RELAENT,
-                                     sizeof (Elf32_External_Rela)))
-           return FALSE;
-
-         /* If any dynamic relocs apply to a read-only section,
-            then we need a DT_TEXTREL entry.  */
-         if ((info->flags & DF_TEXTREL) == 0)
-           elf_link_hash_traverse (&htab->root, readonly_dynrelocs,
-                                   info);
-
-         if ((info->flags & DF_TEXTREL) != 0)
-           {
-             if (! add_dynamic_entry (DT_TEXTREL, 0))
-               return FALSE;
-           }
+	 if (! add_dynamic_entry (DT_RELA, 0)
+	     || ! add_dynamic_entry (DT_RELASZ, 0)
+	     || ! add_dynamic_entry (DT_RELAENT,
+				     sizeof (Elf32_External_Rela)))
+	   return FALSE;
+
+	 /* If any dynamic relocs apply to a read-only section,
+	    then we need a DT_TEXTREL entry.  */
+	 if ((info->flags & DF_TEXTREL) == 0)
+	   elf_link_hash_traverse (&htab->root, maybe_set_textrel, info);
+
+	 if ((info->flags & DF_TEXTREL) != 0)
+	   {
+	     if (! add_dynamic_entry (DT_TEXTREL, 0))
+	       return FALSE;
+	   }
        }
     }
 
@@ -2577,8 +2514,8 @@ or1k_elf_size_dynamic_sections (bfd *out
 
 static void
 or1k_elf_copy_indirect_symbol (struct bfd_link_info *info,
-                               struct elf_link_hash_entry *dir,
-                               struct elf_link_hash_entry *ind)
+			       struct elf_link_hash_entry *dir,
+			       struct elf_link_hash_entry *ind)
 {
   struct elf_or1k_link_hash_entry * edir;
   struct elf_or1k_link_hash_entry * eind;
@@ -2589,29 +2526,29 @@ or1k_elf_copy_indirect_symbol (struct bf
   if (eind->dyn_relocs != NULL)
     {
       if (edir->dyn_relocs != NULL)
-        {
-          struct elf_or1k_dyn_relocs **pp;
-          struct elf_or1k_dyn_relocs *p;
-
-          /* Add reloc counts against the indirect sym to the direct sym
-             list.  Merge any entries against the same section.  */
-          for (pp = &eind->dyn_relocs; (p = *pp) != NULL;)
-            {
-              struct elf_or1k_dyn_relocs *q;
-
-              for (q = edir->dyn_relocs; q != NULL; q = q->next)
-                if (q->sec == p->sec)
-                  {
-                    q->pc_count += p->pc_count;
-                    q->count += p->count;
-                    *pp = p->next;
-                    break;
-                  }
-              if (q == NULL)
-                pp = &p->next;
-            }
-          *pp = edir->dyn_relocs;
-        }
+	{
+	  struct elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs *p;
+
+	  /* Add reloc counts against the indirect sym to the direct sym
+	     list.  Merge any entries against the same section.  */
+	  for (pp = &eind->dyn_relocs; (p = *pp) != NULL;)
+	    {
+	      struct elf_dyn_relocs *q;
+
+	      for (q = edir->dyn_relocs; q != NULL; q = q->next)
+		if (q->sec == p->sec)
+		  {
+		    q->pc_count += p->pc_count;
+		    q->count += p->count;
+		    *pp = p->next;
+		    break;
+		  }
+	      if (q == NULL)
+		pp = &p->next;
+	    }
+	  *pp = edir->dyn_relocs;
+	}
 
       edir->dyn_relocs = eind->dyn_relocs;
       eind->dyn_relocs = NULL;
@@ -2620,10 +2557,10 @@ or1k_elf_copy_indirect_symbol (struct bf
   if (ind->root.type == bfd_link_hash_indirect)
     {
       if (dir->got.refcount <= 0)
-        {
-          edir->tls_type = eind->tls_type;
-          eind->tls_type = TLS_UNKNOWN;
-        }
+	{
+	  edir->tls_type = eind->tls_type;
+	  eind->tls_type = TLS_UNKNOWN;
+	}
     }
 
   _bfd_elf_link_hash_copy_indirect (info, dir, ind);
@@ -2663,7 +2600,7 @@ static bfd_boolean
 or1k_elf_set_private_flags (bfd *abfd, flagword flags)
 {
   BFD_ASSERT (!elf_flags_init (abfd)
-              || elf_elfheader (abfd)->e_flags == flags);
+	      || elf_elfheader (abfd)->e_flags == flags);
 
   elf_elfheader (abfd)->e_flags = flags;
   elf_flags_init (abfd) = TRUE;
@@ -2711,48 +2648,47 @@ elf32_or1k_merge_private_bfd_data (bfd *
 
 }
 
-#define ELF_ARCH                        bfd_arch_or1k
-#define ELF_MACHINE_CODE                EM_OR1K
-#define ELF_TARGET_ID                   OR1K_ELF_DATA
-#define ELF_MAXPAGESIZE                 0x2000
-
-#define TARGET_BIG_SYM                  or1k_elf32_vec
-#define TARGET_BIG_NAME                 "elf32-or1k"
-
-#define elf_info_to_howto_rel           NULL
-#define elf_info_to_howto               or1k_info_to_howto_rela
-#define elf_backend_relocate_section    or1k_elf_relocate_section
-#define elf_backend_gc_mark_hook        or1k_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook       or1k_elf_gc_sweep_hook
-#define elf_backend_check_relocs        or1k_elf_check_relocs
-#define elf_backend_reloc_type_class    or1k_elf_reloc_type_class
-#define elf_backend_can_gc_sections     1
-#define elf_backend_rela_normal         1
+#define ELF_ARCH			bfd_arch_or1k
+#define ELF_MACHINE_CODE		EM_OR1K
+#define ELF_TARGET_ID			OR1K_ELF_DATA
+#define ELF_MAXPAGESIZE			0x2000
+
+#define TARGET_BIG_SYM			or1k_elf32_vec
+#define TARGET_BIG_NAME			"elf32-or1k"
+
+#define elf_info_to_howto_rel		NULL
+#define elf_info_to_howto		or1k_info_to_howto_rela
+#define elf_backend_relocate_section	or1k_elf_relocate_section
+#define elf_backend_gc_mark_hook	or1k_elf_gc_mark_hook
+#define elf_backend_check_relocs	or1k_elf_check_relocs
+#define elf_backend_reloc_type_class	or1k_elf_reloc_type_class
+#define elf_backend_can_gc_sections	1
+#define elf_backend_rela_normal		1
 
-#define bfd_elf32_mkobject                   elf_or1k_mkobject
+#define bfd_elf32_mkobject		     elf_or1k_mkobject
 
 #define bfd_elf32_bfd_merge_private_bfd_data elf32_or1k_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags or1k_elf_set_private_flags
 #define bfd_elf32_bfd_reloc_type_lookup or1k_reloc_type_lookup
 #define bfd_elf32_bfd_reloc_name_lookup or1k_reloc_name_lookup
 
-#define elf_backend_object_p                or1k_elf_object_p
+#define elf_backend_object_p		    or1k_elf_object_p
 #define elf_backend_final_write_processing  or1k_elf_final_write_processing
-#define elf_backend_can_refcount                1
+#define elf_backend_can_refcount		1
 
-#define elf_backend_plt_readonly                1
-#define elf_backend_want_got_plt                1
-#define elf_backend_want_plt_sym                0
-#define elf_backend_got_header_size             12
+#define elf_backend_plt_readonly		1
+#define elf_backend_want_got_plt		1
+#define elf_backend_want_plt_sym		0
+#define elf_backend_got_header_size		12
 #define elf_backend_dtrel_excludes_plt		1
 #define elf_backend_want_dynrelro		1
 
-#define bfd_elf32_bfd_link_hash_table_create    or1k_elf_link_hash_table_create
-#define elf_backend_copy_indirect_symbol        or1k_elf_copy_indirect_symbol
-#define elf_backend_create_dynamic_sections     _bfd_elf_create_dynamic_sections
-#define elf_backend_finish_dynamic_sections     or1k_elf_finish_dynamic_sections
-#define elf_backend_size_dynamic_sections       or1k_elf_size_dynamic_sections
-#define elf_backend_adjust_dynamic_symbol       or1k_elf_adjust_dynamic_symbol
-#define elf_backend_finish_dynamic_symbol       or1k_elf_finish_dynamic_symbol
+#define bfd_elf32_bfd_link_hash_table_create	or1k_elf_link_hash_table_create
+#define elf_backend_copy_indirect_symbol	or1k_elf_copy_indirect_symbol
+#define elf_backend_create_dynamic_sections	_bfd_elf_create_dynamic_sections
+#define elf_backend_finish_dynamic_sections	or1k_elf_finish_dynamic_sections
+#define elf_backend_size_dynamic_sections	or1k_elf_size_dynamic_sections
+#define elf_backend_adjust_dynamic_symbol	or1k_elf_adjust_dynamic_symbol
+#define elf_backend_finish_dynamic_symbol	or1k_elf_finish_dynamic_symbol
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-pj.c ./bfd/elf32-pj.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-pj.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-pj.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* picoJava specific support for 32-bit ELF
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Contributed by Steve Chamberlan of Transmeta (sac@pobox.com).
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -84,8 +84,8 @@ pj_elf_reloc (bfd *abfd,
     case R_PJ_CODE_REL16:
       insn = bfd_getb16 (hit_data);
       insn += sym_value + reloc_entry->addend
-        -  (input_section->output_section->vma
-            + input_section->output_offset);
+	-  (input_section->output_section->vma
+	    + input_section->output_offset);
       bfd_putb16 ((bfd_vma) insn, hit_data);
       break;
     case R_PJ_CODE_LO16:
@@ -222,34 +222,34 @@ static reloc_howto_type pj_elf_howto_tab
 	 TRUE),			/* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy.  */
-  HOWTO (R_PJ_GNU_VTINHERIT,    /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         NULL,                  /* special_function */
-         "R_PJ_GNU_VTINHERIT",  /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_PJ_GNU_VTINHERIT,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 NULL,			/* special_function */
+	 "R_PJ_GNU_VTINHERIT",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage.  */
   HOWTO (R_PJ_GNU_VTENTRY,     /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
-         "R_PJ_GNU_VTENTRY",   /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 _bfd_elf_rel_vtable_reloc_fn,	/* special_function */
+	 "R_PJ_GNU_VTENTRY",   /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 };
 
 /* This structure is used to map BFD reloc codes to PJ ELF relocs.  */
@@ -264,14 +264,14 @@ struct elf_reloc_map
 
 static const struct elf_reloc_map pj_reloc_map[] =
 {
-    { BFD_RELOC_NONE, 		R_PJ_NONE          },
-    { BFD_RELOC_32, 		R_PJ_DATA_DIR32    },
-    { BFD_RELOC_PJ_CODE_DIR16, 	R_PJ_CODE_DIR16    },
-    { BFD_RELOC_PJ_CODE_DIR32, 	R_PJ_CODE_DIR32    },
-    { BFD_RELOC_PJ_CODE_LO16, 	R_PJ_CODE_LO16     },
-    { BFD_RELOC_PJ_CODE_HI16, 	R_PJ_CODE_HI16     },
-    { BFD_RELOC_PJ_CODE_REL32,  R_PJ_CODE_REL32    },
-    { BFD_RELOC_PJ_CODE_REL16,  R_PJ_CODE_REL16    },
+    { BFD_RELOC_NONE,		R_PJ_NONE	   },
+    { BFD_RELOC_32,		R_PJ_DATA_DIR32	   },
+    { BFD_RELOC_PJ_CODE_DIR16,	R_PJ_CODE_DIR16	   },
+    { BFD_RELOC_PJ_CODE_DIR32,	R_PJ_CODE_DIR32	   },
+    { BFD_RELOC_PJ_CODE_LO16,	R_PJ_CODE_LO16	   },
+    { BFD_RELOC_PJ_CODE_HI16,	R_PJ_CODE_HI16	   },
+    { BFD_RELOC_PJ_CODE_REL32,	R_PJ_CODE_REL32	   },
+    { BFD_RELOC_PJ_CODE_REL16,	R_PJ_CODE_REL16	   },
     { BFD_RELOC_VTABLE_INHERIT, R_PJ_GNU_VTINHERIT },
     { BFD_RELOC_VTABLE_ENTRY,   R_PJ_GNU_VTENTRY   },
 };
@@ -352,8 +352,8 @@ pj_elf_final_write_processing (bfd *abfd
 #define ELF_MAXPAGESIZE		0x1000
 #define bfd_elf32_bfd_get_relocated_section_contents \
   bfd_generic_get_relocated_section_contents
-#define bfd_elf32_bfd_reloc_type_lookup	        pj_elf_reloc_type_lookup
+#define bfd_elf32_bfd_reloc_type_lookup		pj_elf_reloc_type_lookup
 #define bfd_elf32_bfd_reloc_name_lookup   pj_elf_reloc_name_lookup
 #define elf_backend_final_write_processing      pj_elf_final_write_processing
-#define elf_info_to_howto		        pj_elf_info_to_howto
+#define elf_info_to_howto			pj_elf_info_to_howto
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-ppc.c ./bfd/elf32-ppc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-ppc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-ppc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* PowerPC-specific support for 32-bit ELF
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -78,14 +78,14 @@ static bfd_reloc_status_type ppc_elf_unh
 static const bfd_vma ppc_elf_vxworks_plt_entry
     [VXWORKS_PLT_ENTRY_SIZE / 4] =
   {
-    0x3d800000, /* lis     r12,0                 */
-    0x818c0000, /* lwz     r12,0(r12)            */
-    0x7d8903a6, /* mtctr   r12                   */
-    0x4e800420, /* bctr                          */
-    0x39600000, /* li      r11,0                 */
-    0x48000000, /* b       14 <.PLT0resolve+0x4> */
-    0x60000000, /* nop                           */
-    0x60000000, /* nop                           */
+    0x3d800000, /* lis	   r12,0		 */
+    0x818c0000, /* lwz	   r12,0(r12)		 */
+    0x7d8903a6, /* mtctr   r12			 */
+    0x4e800420, /* bctr				 */
+    0x39600000, /* li	   r11,0		 */
+    0x48000000, /* b	   14 <.PLT0resolve+0x4> */
+    0x60000000, /* nop				 */
+    0x60000000, /* nop				 */
   };
 static const bfd_vma ppc_elf_vxworks_pic_plt_entry
     [VXWORKS_PLT_ENTRY_SIZE / 4] =
@@ -105,26 +105,26 @@ static const bfd_vma ppc_elf_vxworks_pic
 static const bfd_vma ppc_elf_vxworks_plt0_entry
     [VXWORKS_PLT_INITIAL_ENTRY_SIZE / 4] =
   {
-    0x3d800000, /* lis     r12,0        */
-    0x398c0000, /* addi    r12,r12,0    */
-    0x800c0008, /* lwz     r0,8(r12)    */
-    0x7c0903a6, /* mtctr   r0           */
-    0x818c0004, /* lwz     r12,4(r12)   */
-    0x4e800420, /* bctr                 */
-    0x60000000, /* nop                  */
-    0x60000000, /* nop                  */
+    0x3d800000, /* lis	   r12,0	*/
+    0x398c0000, /* addi	   r12,r12,0	*/
+    0x800c0008, /* lwz	   r0,8(r12)	*/
+    0x7c0903a6, /* mtctr   r0		*/
+    0x818c0004, /* lwz	   r12,4(r12)	*/
+    0x4e800420, /* bctr			*/
+    0x60000000, /* nop			*/
+    0x60000000, /* nop			*/
   };
 static const bfd_vma ppc_elf_vxworks_pic_plt0_entry
     [VXWORKS_PLT_INITIAL_ENTRY_SIZE / 4] =
   {
     0x819e0008, /* lwz	 r12,8(r30) */
-    0x7d8903a6, /* mtctr r12        */
+    0x7d8903a6, /* mtctr r12	    */
     0x819e0004, /* lwz	 r12,4(r30) */
-    0x4e800420, /* bctr             */
-    0x60000000, /* nop              */
-    0x60000000, /* nop              */
-    0x60000000, /* nop              */
-    0x60000000, /* nop              */
+    0x4e800420, /* bctr		    */
+    0x60000000, /* nop		    */
+    0x60000000, /* nop		    */
+    0x60000000, /* nop		    */
+    0x60000000, /* nop		    */
   };
 
 /* For executables, we have some additional relocations in
@@ -134,7 +134,7 @@ static const bfd_vma ppc_elf_vxworks_pic
 #define VXWORKS_PLT_NON_JMP_SLOT_RELOCS 3
 /* The number of relocations in the PLTResolve slot. */
 #define VXWORKS_PLTRESOLVE_RELOCS 2
-/* The number of relocations in the PLTResolve slot when when creating
+/* The number of relocations in the PLTResolve slot when creating
    a shared library. */
 #define VXWORKS_PLTRESOLVE_RELOCS_SHLIB 0
 
@@ -1656,6 +1656,21 @@ static reloc_howto_type ppc_elf_howto_ra
 	 0x3e007ff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
+  /* e_li split20 format.  */
+  HOWTO (R_PPC_VLE_ADDR20,	/* type */
+	 16,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 20,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_PPC_VLE_ADDR20",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x1f07ff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
   HOWTO (R_PPC_IRELATIVE,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -1806,56 +1821,6 @@ static reloc_howto_type ppc_elf_howto_ra
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 };
-
-/* External 32-bit PPC structure for PRPSINFO.  This structure is
-   ABI-defined, thus we choose to use char arrays here in order to
-   avoid dealing with different types in different architectures.
-
-   The PPC 32-bit structure uses int for `pr_uid' and `pr_gid' while
-   most non-PPC architectures use `short int'.
-
-   This structure will ultimately be written in the corefile's note
-   section, as the PRPSINFO.  */
-
-struct elf_external_ppc_linux_prpsinfo32
-  {
-    char pr_state;			/* Numeric process state.  */
-    char pr_sname;			/* Char for pr_state.  */
-    char pr_zomb;			/* Zombie.  */
-    char pr_nice;			/* Nice val.  */
-    char pr_flag[4];			/* Flags.  */
-    char pr_uid[4];
-    char pr_gid[4];
-    char pr_pid[4];
-    char pr_ppid[4];
-    char pr_pgrp[4];
-    char pr_sid[4];
-    char pr_fname[16];			/* Filename of executable.  */
-    char pr_psargs[80];			/* Initial part of arg list.  */
-  };
-
-/* Helper function to copy an elf_internal_linux_prpsinfo in host
-   endian to an elf_external_ppc_linux_prpsinfo32 in target endian.  */
-
-static inline void
-swap_ppc_linux_prpsinfo32_out (bfd *obfd,
-			       const struct elf_internal_linux_prpsinfo *from,
-			       struct elf_external_ppc_linux_prpsinfo32 *to)
-{
-  bfd_put_8 (obfd, from->pr_state, &to->pr_state);
-  bfd_put_8 (obfd, from->pr_sname, &to->pr_sname);
-  bfd_put_8 (obfd, from->pr_zomb, &to->pr_zomb);
-  bfd_put_8 (obfd, from->pr_nice, &to->pr_nice);
-  bfd_put_32 (obfd, from->pr_flag, to->pr_flag);
-  bfd_put_32 (obfd, from->pr_uid, to->pr_uid);
-  bfd_put_32 (obfd, from->pr_gid, to->pr_gid);
-  bfd_put_32 (obfd, from->pr_pid, to->pr_pid);
-  bfd_put_32 (obfd, from->pr_ppid, to->pr_ppid);
-  bfd_put_32 (obfd, from->pr_pgrp, to->pr_pgrp);
-  bfd_put_32 (obfd, from->pr_sid, to->pr_sid);
-  strncpy (to->pr_fname, from->pr_fname, sizeof (to->pr_fname));
-  strncpy (to->pr_psargs, from->pr_psargs, sizeof (to->pr_psargs));
-}
 
 /* Initialize the ppc_elf_howto_table, so that linear accesses can be done.  */
 
@@ -2393,20 +2358,6 @@ ppc_elf_grok_psinfo (bfd *abfd, Elf_Inte
   return TRUE;
 }
 
-char *
-elfcore_write_ppc_linux_prpsinfo32
-  (bfd *abfd,
-   char *buf,
-   int *bufsiz,
-   const struct elf_internal_linux_prpsinfo *prpsinfo)
-{
-  struct elf_external_ppc_linux_prpsinfo32 data;
-
-  swap_ppc_linux_prpsinfo32_out (abfd, prpsinfo, &data);
-  return elfcore_write_note (abfd, buf, bufsiz,
-			     "CORE", NT_PRPSINFO, &data, sizeof (data));
-}
-
 static char *
 ppc_elf_write_core_note (bfd *abfd, char *buf, int *bufsiz, int note_type, ...)
 {
@@ -2609,7 +2560,7 @@ ppc_elf_modify_segment_map (bfd *abfd,
       amt += (m->count - j - 1) * sizeof (asection *);
       n = (struct elf_segment_map *) bfd_zalloc (abfd, amt);
       if (n == NULL)
-        return FALSE;
+	return FALSE;
 
       n->p_type = PT_LOAD;
       n->count = m->count - j;
@@ -2645,7 +2596,7 @@ static const struct bfd_elf_special_sect
 
 /* This is what we want for new plt/got.  */
 static struct bfd_elf_special_section ppc_alt_plt =
-  { STRING_COMMA_LEN (".plt"),             0, SHT_PROGBITS, SHF_ALLOC };
+  { STRING_COMMA_LEN (".plt"),		   0, SHT_PROGBITS, SHF_ALLOC };
 
 static const struct bfd_elf_special_section *
 ppc_elf_get_sec_type_attr (bfd *abfd, asection *sec)
@@ -2849,7 +2800,7 @@ ppc_elf_begin_write_processing (bfd *abf
     free (buffer);
 
   if (error_message)
-    _bfd_error_handler (error_message, ibfd, APUINFO_SECTION_NAME);
+    _bfd_error_handler (error_message, APUINFO_SECTION_NAME, ibfd);
 }
 
 /* Prevent the output section from accumulating the input sections'
@@ -3192,9 +3143,9 @@ struct plt_entry
   bfd_vma glink_offset;
 };
 
-/* Of those relocs that might be copied as dynamic relocs, this function
-   selects those that must be copied when linking a shared library,
-   even when the symbol is local.  */
+/* Of those relocs that might be copied as dynamic relocs, this
+   function selects those that must be copied when linking a shared
+   library or PIE, even when the symbol is local.  */
 
 static int
 must_be_dyn_reloc (struct bfd_link_info *info,
@@ -3203,6 +3154,10 @@ must_be_dyn_reloc (struct bfd_link_info 
   switch (r_type)
     {
     default:
+      /* Only relative relocs can be resolved when the object load
+	 address isn't fixed.  DTPREL32 is excluded because the
+	 dynamic linker needs to differentiate global dynamic from
+	 local dynamic __tls_index pairs when PPC_OPT_TLS is set.  */
       return 1;
 
     case R_PPC_REL24:
@@ -3217,7 +3172,9 @@ must_be_dyn_reloc (struct bfd_link_info 
     case R_PPC_TPREL16_LO:
     case R_PPC_TPREL16_HI:
     case R_PPC_TPREL16_HA:
-      return !bfd_link_executable (info);
+      /* These relocations are relative but in a shared library the
+	 linker doesn't know the thread pointer base.  */
+      return bfd_link_dll (info);
     }
 }
 
@@ -3332,6 +3289,9 @@ struct ppc_elf_link_hash_table
   unsigned int local_ifunc_resolver:1;
   unsigned int maybe_local_ifunc_resolver:1;
 
+  /* Set if tls optimization is enabled.  */
+  unsigned int do_tls_opt:1;
+
   /* The size of PLT entries.  */
   int plt_entry_size;
   /* The distance between adjacent PLT slots.  */
@@ -3619,21 +3579,18 @@ ppc_elf_copy_indirect_symbol (struct bfd
   edir->tls_mask |= eind->tls_mask;
   edir->has_sda_refs |= eind->has_sda_refs;
 
-  /* If called to transfer flags for a weakdef during processing
-     of elf_adjust_dynamic_symbol, don't copy non_got_ref.
-     We clear it ourselves for ELIMINATE_COPY_RELOCS.  */
-  if (!(ELIMINATE_COPY_RELOCS
-	&& eind->elf.root.type != bfd_link_hash_indirect
-	&& edir->elf.dynamic_adjusted))
-    edir->elf.non_got_ref |= eind->elf.non_got_ref;
-
   if (edir->elf.versioned != versioned_hidden)
     edir->elf.ref_dynamic |= eind->elf.ref_dynamic;
   edir->elf.ref_regular |= eind->elf.ref_regular;
   edir->elf.ref_regular_nonweak |= eind->elf.ref_regular_nonweak;
+  edir->elf.non_got_ref |= eind->elf.non_got_ref;
   edir->elf.needs_plt |= eind->elf.needs_plt;
   edir->elf.pointer_equality_needed |= eind->elf.pointer_equality_needed;
 
+  /* If we were called to copy over info for a weak sym, that's all.  */
+  if (eind->elf.root.type != bfd_link_hash_indirect)
+    return;
+
   if (eind->dyn_relocs != NULL)
     {
       if (edir->dyn_relocs != NULL)
@@ -3665,16 +3622,6 @@ ppc_elf_copy_indirect_symbol (struct bfd
       eind->dyn_relocs = NULL;
     }
 
-  /* If we were called to copy over info for a weak sym, that's all.
-     You might think dyn_relocs need not be copied over;  After all,
-     both syms will be dynamic or both non-dynamic so we're just
-     moving reloc accounting around.  However, ELIMINATE_COPY_RELOCS
-     code in ppc_elf_adjust_dynamic_symbol needs to check for
-     dyn_relocs in read-only sections, and it does so on what is the
-     DIR sym here.  */
-  if (eind->elf.root.type != bfd_link_hash_indirect)
-    return;
-
   /* Copy over the GOT refcount entries that we may have already seen to
      the symbol which just became indirect.  */
   edir->elf.got.refcount += eind->elf.got.refcount;
@@ -4045,10 +3992,6 @@ ppc_elf_check_relocs (bfd *abfd,
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       /* If a relocation refers to _GLOBAL_OFFSET_TABLE_, create the .got.
@@ -4144,7 +4087,7 @@ ppc_elf_check_relocs (bfd *abfd,
 	case R_PPC_GOT_TPREL16_LO:
 	case R_PPC_GOT_TPREL16_HI:
 	case R_PPC_GOT_TPREL16_HA:
-	  if (bfd_link_pic (info))
+	  if (bfd_link_dll (info))
 	    info->flags |= DF_STATIC_TLS;
 	  tls_type = TLS_TLS | TLS_TPREL;
 	  goto dogottls;
@@ -4252,6 +4195,7 @@ ppc_elf_check_relocs (bfd *abfd,
 	case R_PPC_VLE_HI16D:
 	case R_PPC_VLE_HA16A:
 	case R_PPC_VLE_HA16D:
+	case R_PPC_VLE_ADDR20:
 	  break;
 
 	case R_PPC_EMB_SDA2REL:
@@ -4423,13 +4367,13 @@ ppc_elf_check_relocs (bfd *abfd,
 	    return FALSE;
 	  break;
 
-	  /* We shouldn't really be seeing these.  */
+	  /* We shouldn't really be seeing TPREL32.  */
 	case R_PPC_TPREL32:
 	case R_PPC_TPREL16:
 	case R_PPC_TPREL16_LO:
 	case R_PPC_TPREL16_HI:
 	case R_PPC_TPREL16_HA:
-	  if (bfd_link_pic (info))
+	  if (bfd_link_dll (info))
 	    info->flags |= DF_STATIC_TLS;
 	  goto dodyn;
 
@@ -4899,9 +4843,9 @@ ppc_elf_merge_private_bfd_data (bfd *ibf
 	  error = TRUE;
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: uses different e_flags (0x%lx) fields "
-	       "than previous modules (0x%lx)"),
-	     ibfd, (long) new_flags, (long) old_flags);
+	    (_("%B: uses different e_flags (%#x) fields "
+	       "than previous modules (%#x)"),
+	     ibfd, new_flags, old_flags);
 	}
 
       if (error)
@@ -4970,6 +4914,23 @@ ppc_elf_vle_split16 (bfd *input_bfd,
   insn |= value & 0x7ff;
   bfd_put_32 (input_bfd, insn, loc);
 }
+
+static void
+ppc_elf_vle_split20 (bfd *output_bfd, bfd_byte *loc, bfd_vma value)
+{
+  unsigned int insn;
+
+  insn = bfd_get_32 (output_bfd, loc);
+  /* We have an li20 field, bits 17..20, 11..15, 21..31.  */
+  /* Top 4 bits of value to 17..20.  */
+  insn |= (value & 0xf0000) >> 5;
+  /* Next 5 bits of the value to 11..15.  */
+  insn |= (value & 0xf800) << 5;
+  /* And the final 11 bits of the value to bits 21 to 31.  */
+  insn |= value & 0x7ff;
+  bfd_put_32 (output_bfd, insn, loc);
+}
+
 
 /* Choose which PLT scheme to use, and set .plt flags appropriately.
    Returns -1 on error, 0 for old PLT, 1 for new PLT.  */
@@ -4996,8 +4957,7 @@ ppc_elf_select_plt_layout (bfd *output_b
 		   || h->needs_plt)
 	       && h->ref_regular
 	       && !(SYMBOL_CALLS_LOCAL (info, h)
-		    || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
-			&& h->root.type == bfd_link_hash_undefweak)))
+		    || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)))
 	{
 	  /* Profiling of shared libs (and pies) is not supported with
 	     secure plt, because ppc32 does profiling before a
@@ -5087,182 +5047,6 @@ ppc_elf_gc_mark_hook (asection *sec,
 
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
-
-/* Update the got, plt and dynamic reloc reference counts for the
-   section being removed.  */
-
-static bfd_boolean
-ppc_elf_gc_sweep_hook (bfd *abfd,
-		       struct bfd_link_info *info,
-		       asection *sec,
-		       const Elf_Internal_Rela *relocs)
-{
-  struct ppc_elf_link_hash_table *htab;
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-  asection *got2;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  if ((sec->flags & SEC_ALLOC) == 0)
-    return TRUE;
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  htab = ppc_elf_hash_table (info);
-  symtab_hdr = &elf_symtab_hdr (abfd);
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-  got2 = bfd_get_section_by_name (abfd, ".got2");
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      enum elf_ppc_reloc_type r_type;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  struct elf_dyn_relocs **pp, *p;
-	  struct ppc_elf_link_hash_entry *eh;
-
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	  eh = (struct ppc_elf_link_hash_entry *) h;
-
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next)
-	    if (p->sec == sec)
-	      {
-		/* Everything must go for SEC.  */
-		*pp = p->next;
-		break;
-	      }
-	}
-
-      r_type = ELF32_R_TYPE (rel->r_info);
-      if (!htab->is_vxworks
-	  && h == NULL
-	  && local_got_refcounts != NULL
-	  && (!bfd_link_pic (info)
-	      || is_branch_reloc (r_type)))
-	{
-	  struct plt_entry **local_plt = (struct plt_entry **)
-	    (local_got_refcounts + symtab_hdr->sh_info);
-	  char *local_got_tls_masks = (char *)
-	    (local_plt + symtab_hdr->sh_info);
-	  if ((local_got_tls_masks[r_symndx] & PLT_IFUNC) != 0)
-	    {
-	      struct plt_entry **ifunc = local_plt + r_symndx;
-	      bfd_vma addend = 0;
-	      struct plt_entry *ent;
-
-	      if (r_type == R_PPC_PLTREL24 && bfd_link_pic (info))
-		addend = rel->r_addend;
-	      ent = find_plt_ent (ifunc, got2, addend);
-	      if (ent->plt.refcount > 0)
-		ent->plt.refcount -= 1;
-	      continue;
-	    }
-	}
-
-      switch (r_type)
-	{
-	case R_PPC_GOT_TLSLD16:
-	case R_PPC_GOT_TLSLD16_LO:
-	case R_PPC_GOT_TLSLD16_HI:
-	case R_PPC_GOT_TLSLD16_HA:
-	case R_PPC_GOT_TLSGD16:
-	case R_PPC_GOT_TLSGD16_LO:
-	case R_PPC_GOT_TLSGD16_HI:
-	case R_PPC_GOT_TLSGD16_HA:
-	case R_PPC_GOT_TPREL16:
-	case R_PPC_GOT_TPREL16_LO:
-	case R_PPC_GOT_TPREL16_HI:
-	case R_PPC_GOT_TPREL16_HA:
-	case R_PPC_GOT_DTPREL16:
-	case R_PPC_GOT_DTPREL16_LO:
-	case R_PPC_GOT_DTPREL16_HI:
-	case R_PPC_GOT_DTPREL16_HA:
-	case R_PPC_GOT16:
-	case R_PPC_GOT16_LO:
-	case R_PPC_GOT16_HI:
-	case R_PPC_GOT16_HA:
-	  if (h != NULL)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount--;
-	      if (!bfd_link_pic (info))
-		{
-		  struct plt_entry *ent;
-
-		  ent = find_plt_ent (&h->plt.plist, NULL, 0);
-		  if (ent != NULL && ent->plt.refcount > 0)
-		    ent->plt.refcount -= 1;
-		}
-	    }
-	  else if (local_got_refcounts != NULL)
-	    {
-	      if (local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx]--;
-	    }
-	  break;
-
-	case R_PPC_REL24:
-	case R_PPC_REL14:
-	case R_PPC_REL14_BRTAKEN:
-	case R_PPC_REL14_BRNTAKEN:
-	case R_PPC_REL32:
-	  if (h == NULL || h == htab->elf.hgot)
-	    break;
-	  /* Fall through.  */
-
-	case R_PPC_ADDR32:
-	case R_PPC_ADDR24:
-	case R_PPC_ADDR16:
-	case R_PPC_ADDR16_LO:
-	case R_PPC_ADDR16_HI:
-	case R_PPC_ADDR16_HA:
-	case R_PPC_ADDR14:
-	case R_PPC_ADDR14_BRTAKEN:
-	case R_PPC_ADDR14_BRNTAKEN:
-	case R_PPC_UADDR32:
-	case R_PPC_UADDR16:
-	  if (bfd_link_pic (info))
-	    break;
-	  /* Fall through.  */
-
-	case R_PPC_PLT32:
-	case R_PPC_PLTREL24:
-	case R_PPC_PLTREL32:
-	case R_PPC_PLT16_LO:
-	case R_PPC_PLT16_HI:
-	case R_PPC_PLT16_HA:
-	  if (h != NULL)
-	    {
-	      bfd_vma addend = 0;
-	      struct plt_entry *ent;
-
-	      if (r_type == R_PPC_PLTREL24 && bfd_link_pic (info))
-		addend = rel->r_addend;
-	      ent = find_plt_ent (&h->plt.plist, got2, addend);
-	      if (ent != NULL && ent->plt.refcount > 0)
-		ent->plt.refcount -= 1;
-	    }
-	  break;
-
-	default:
-	  break;
-	}
-    }
-  return TRUE;
-}
 
 /* Set plt output section type, htab->tls_get_addr, and call the
    generic ELF tls_setup function.  */
@@ -5297,8 +5081,7 @@ ppc_elf_tls_setup (bfd *obfd, struct bfd
 	      && (tga->type == STT_FUNC
 		  || tga->needs_plt)
 	      && !(SYMBOL_CALLS_LOCAL (info, tga)
-		   || (ELF_ST_VISIBILITY (tga->other) != STV_DEFAULT
-		       && tga->root.type == bfd_link_hash_undefweak)))
+		   || UNDEFWEAK_NO_DYNAMIC_RELOC (info, tga)))
 	    {
 	      struct plt_entry *ent;
 	      for (ent = tga->plt.plist; ent != NULL; ent = ent->next)
@@ -5620,12 +5403,13 @@ ppc_elf_tls_optimize (bfd *obfd ATTRIBUT
 	      symtab_hdr->contents = (unsigned char *) locsyms;
 	  }
       }
+  htab->do_tls_opt = 1;
   return TRUE;
 }
 
-/* Return true if we have dynamic relocs that apply to read-only sections.  */
+/* Find dynamic relocs for H that apply to read-only sections.  */
 
-static bfd_boolean
+static asection *
 readonly_dynrelocs (struct elf_link_hash_entry *h)
 {
   struct elf_dyn_relocs *p;
@@ -5634,11 +5418,40 @@ readonly_dynrelocs (struct elf_link_hash
     {
       asection *s = p->sec->output_section;
 
-      if (s != NULL
-	  && ((s->flags & (SEC_READONLY | SEC_ALLOC))
-	      == (SEC_READONLY | SEC_ALLOC)))
-	return TRUE;
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
     }
+  return NULL;
+}
+
+/* Return true if we have dynamic relocs against H or any of its weak
+   aliases, that apply to read-only sections.  Cannot be used after
+   size_dynamic_sections.  */
+
+static bfd_boolean
+alias_readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct ppc_elf_link_hash_entry *eh = ppc_elf_hash_entry (h);
+  do
+    {
+      if (readonly_dynrelocs (&eh->elf))
+	return TRUE;
+      eh = ppc_elf_hash_entry (eh->elf.u.alias);
+    } while (eh != NULL && &eh->elf != h);
+
+  return FALSE;
+}
+
+/* Return whether H has pc-relative dynamic relocs.  */
+
+static bfd_boolean
+pc_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
+
+  for (p = ppc_elf_hash_entry (h)->dyn_relocs; p != NULL; p = p->next)
+    if (p->pc_count != 0)
+      return TRUE;
   return FALSE;
 }
 
@@ -5665,7 +5478,7 @@ ppc_elf_adjust_dynamic_symbol (struct bf
   BFD_ASSERT (htab->elf.dynobj != NULL
 	      && (h->needs_plt
 		  || h->type == STT_GNU_IFUNC
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -5675,6 +5488,13 @@ ppc_elf_adjust_dynamic_symbol (struct bf
       || h->type == STT_GNU_IFUNC
       || h->needs_plt)
     {
+      bfd_boolean local = (SYMBOL_CALLS_LOCAL (info, h)
+			   || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h));
+      /* Discard dyn_relocs when non-pic if we've decided that a
+	 function symbol is local.  */
+      if (!bfd_link_pic (info) && local)
+	ppc_elf_hash_entry (h)->dyn_relocs = NULL;
+
       /* Clear procedure linkage table information for any symbol that
 	 won't need a .plt entry.  */
       struct plt_entry *ent;
@@ -5682,10 +5502,7 @@ ppc_elf_adjust_dynamic_symbol (struct bf
 	if (ent->plt.refcount > 0)
 	  break;
       if (ent == NULL
-	  || (h->type != STT_GNU_IFUNC
-	      && (SYMBOL_CALLS_LOCAL (info, h)
-		  || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
-		      && h->root.type == bfd_link_hash_undefweak))))
+	  || (h->type != STT_GNU_IFUNC && local))
 	{
 	  /* A PLT entry is not required/allowed when:
 
@@ -5713,19 +5530,26 @@ ppc_elf_adjust_dynamic_symbol (struct bf
 	     resolution of the symbol to be set at load time rather
 	     than link time.  */
 	  if ((h->pointer_equality_needed
-	       || (!h->ref_regular_nonweak && h->non_got_ref))
+	       || (h->non_got_ref
+		   && !h->ref_regular_nonweak
+		   && !UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)))
 	      && !htab->is_vxworks
 	      && !ppc_elf_hash_entry (h)->has_sda_refs
 	      && !readonly_dynrelocs (h))
 	    {
 	      h->pointer_equality_needed = 0;
-	      /* After adjust_dynamic_symbol, non_got_ref set in the
-		 non-pic case means that dyn_relocs for this symbol
-		 should be discarded.  */
-	      h->non_got_ref = 0;
-	    }
+	      /* If we haven't seen a branch reloc then we don't need
+		 a plt entry.  */
+	      if (!h->needs_plt)
+		h->plt.plist = NULL;
+	    }
+	  else if (!bfd_link_pic (info))
+	    /* We are going to be defining the function symbol on the
+	       plt stub, so no dyn_relocs needed when non-pic.  */
+	    ppc_elf_hash_entry (h)->dyn_relocs = NULL;
 	}
       h->protected_def = 0;
+      /* Function symbols can't have copy relocs.  */
       return TRUE;
     }
   else
@@ -5734,14 +5558,16 @@ ppc_elf_adjust_dynamic_symbol (struct bf
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
-      if (ELIMINATE_COPY_RELOCS)
-	h->non_got_ref = h->u.weakdef->non_got_ref;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
+      if (def->root.u.def.section == htab->elf.sdynbss
+	  || def->root.u.def.section == htab->elf.sdynrelro
+	  || def->root.u.def.section == htab->dynsbss)
+	ppc_elf_hash_entry (h)->dyn_relocs = NULL;
       return TRUE;
     }
 
@@ -5778,18 +5604,14 @@ ppc_elf_adjust_dynamic_symbol (struct bf
 	  && htab->params->pic_fixup == 0
 	  && info->disable_target_specific_optimizations <= 1)
 	htab->params->pic_fixup = 1;
-      h->non_got_ref = 0;
       return TRUE;
     }
 
   /* If -z nocopyreloc was given, we won't generate them either.  */
   if (info->nocopyreloc)
-    {
-      h->non_got_ref = 0;
-      return TRUE;
-    }
+    return TRUE;
 
-   /* If we didn't find any dynamic relocs in read-only sections, then
+   /* If we don't find any dynamic relocs in read-only sections, then
       we'll be keeping the dynamic relocs and avoiding the copy reloc.
       We can't do this if there are any small data relocations.  This
       doesn't work on VxWorks, where we can not have dynamic
@@ -5799,11 +5621,8 @@ ppc_elf_adjust_dynamic_symbol (struct bf
       && !ppc_elf_hash_entry (h)->has_sda_refs
       && !htab->is_vxworks
       && !h->def_regular
-      && !readonly_dynrelocs (h))
-    {
-      h->non_got_ref = 0;
-      return TRUE;
-    }
+      && !alias_readonly_dynrelocs (h))
+    return TRUE;
 
   /* We must allocate the symbol in our .dynbss section, which will
      become part of the .bss section of the executable.  There will be
@@ -5817,7 +5636,6 @@ ppc_elf_adjust_dynamic_symbol (struct bf
 
      Of course, if the symbol is referenced using SDAREL relocs, we
      must instead allocate it in .sbss.  */
-
   if (ppc_elf_hash_entry (h)->has_sda_refs)
     s = htab->dynsbss;
   else if ((h->root.u.def.section->flags & SEC_READONLY) != 0)
@@ -5826,14 +5644,13 @@ ppc_elf_adjust_dynamic_symbol (struct bf
     s = htab->elf.sdynbss;
   BFD_ASSERT (s != NULL);
 
-  /* We must generate a R_PPC_COPY reloc to tell the dynamic linker to
-     copy the initial value out of the dynamic object and into the
-     runtime process image.  We need to remember the offset into the
-     .rela.bss section we are going to use.  */
   if ((h->root.u.def.section->flags & SEC_ALLOC) != 0 && h->size != 0)
     {
       asection *srel;
 
+      /* We must generate a R_PPC_COPY reloc to tell the dynamic
+	 linker to copy the initial value out of the dynamic object
+	 and into the runtime process image.  */
       if (ppc_elf_hash_entry (h)->has_sda_refs)
 	srel = htab->relsbss;
       else if ((h->root.u.def.section->flags & SEC_READONLY) != 0)
@@ -5845,6 +5662,8 @@ ppc_elf_adjust_dynamic_symbol (struct bf
       h->needs_copy = 1;
     }
 
+  /* We no longer want dyn_relocs.  */
+  ppc_elf_hash_entry (h)->dyn_relocs = NULL;
   return _bfd_elf_adjust_dynamic_copy (info, h, s);
 }
 
@@ -5938,16 +5757,57 @@ allocate_got (struct ppc_elf_link_hash_t
   return where;
 }
 
-/* If H is undefined weak, make it dynamic if that makes sense.  */
+/* Calculate size of GOT entries for symbol given its TLS_MASK.
+   TLS_LD is excluded because those go in a special GOT slot.  */
+
+static inline unsigned int
+got_entries_needed (int tls_mask)
+{
+  unsigned int need;
+  if ((tls_mask & TLS_TLS) == 0)
+    need = 4;
+  else
+    {
+      need = 0;
+      if ((tls_mask & TLS_GD) != 0)
+	need += 8;
+      if ((tls_mask & (TLS_TPREL | TLS_TPRELGD)) != 0)
+	need += 4;
+      if ((tls_mask & TLS_DTPREL) != 0)
+	need += 4;
+    }
+  return need;
+}
+
+/* Calculate size of relocs needed for symbol given its TLS_MASK and
+   NEEDed GOT entries.  KNOWN says a TPREL offset can be calculated at
+   link time.  */
+
+static inline unsigned int
+got_relocs_needed (int tls_mask, unsigned int need, bfd_boolean known)
+{
+  /* All the entries we allocated need relocs.
+     Except IE in executable with a local symbol.  We could also omit
+     the DTPREL reloc on the second word of a GD entry under the same
+     condition as that for IE, but ld.so needs to differentiate
+     LD and GD entries.  */
+  if ((tls_mask & (TLS_TPREL | TLS_TPRELGD)) != 0 && known)
+    need -= 4;
+  return need * sizeof (Elf32_External_Rela) / 4;
+}
+
+/* If H is undefined, make it dynamic if that makes sense.  */
 
 static bfd_boolean
-ensure_undefweak_dynamic (struct bfd_link_info *info,
-			  struct elf_link_hash_entry *h)
+ensure_undef_dynamic (struct bfd_link_info *info,
+		      struct elf_link_hash_entry *h)
 {
   struct elf_link_hash_table *htab = elf_hash_table (info);
 
   if (htab->dynamic_sections_created
-      && h->root.type == bfd_link_hash_undefweak
+      && ((info->dynamic_undefined_weak != 0
+	   && h->root.type == bfd_link_hash_undefweak)
+	  || h->root.type == bfd_link_hash_undefined)
       && h->dynindx == -1
       && !h->forced_local
       && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
@@ -5981,33 +5841,22 @@ allocate_dynrelocs (struct elf_link_hash
     {
       unsigned int need;
 
-      /* Make sure this symbol is output as a dynamic symbol.
-	 Undefined weak syms won't yet be marked as dynamic.  */
-      if (!ensure_undefweak_dynamic (info, &eh->elf))
+      /* Make sure this symbol is output as a dynamic symbol.  */
+      if (!ensure_undef_dynamic (info, &eh->elf))
 	return FALSE;
 
       need = 0;
-      if ((eh->tls_mask & TLS_TLS) != 0)
+      if ((eh->tls_mask & TLS_LD) != 0)
 	{
-	  if ((eh->tls_mask & TLS_LD) != 0)
-	    {
-	      if (!eh->elf.def_dynamic)
-		/* We'll just use htab->tlsld_got.offset.  This should
-		   always be the case.  It's a little odd if we have
-		   a local dynamic reloc against a non-local symbol.  */
-		htab->tlsld_got.refcount += 1;
-	      else
-		need += 8;
-	    }
-	  if ((eh->tls_mask & TLS_GD) != 0)
+	  if (!eh->elf.def_dynamic)
+	    /* We'll just use htab->tlsld_got.offset.  This should
+	       always be the case.  It's a little odd if we have
+	       a local dynamic reloc against a non-local symbol.  */
+	    htab->tlsld_got.refcount += 1;
+	  else
 	    need += 8;
-	  if ((eh->tls_mask & (TLS_TPREL | TLS_TPRELGD)) != 0)
-	    need += 4;
-	  if ((eh->tls_mask & TLS_DTPREL) != 0)
-	    need += 4;
 	}
-      else
-	need += 4;
+      need += got_entries_needed (eh->tls_mask);
       if (need == 0)
 	eh->elf.got.offset = (bfd_vma) -1;
       else
@@ -6017,29 +5866,42 @@ allocate_dynrelocs (struct elf_link_hash
 	       || (htab->elf.dynamic_sections_created
 		   && eh->elf.dynindx != -1
 		   && !SYMBOL_REFERENCES_LOCAL (info, &eh->elf)))
-	      && (ELF_ST_VISIBILITY (eh->elf.other) == STV_DEFAULT
-		  || eh->elf.root.type != bfd_link_hash_undefweak))
+	      && !UNDEFWEAK_NO_DYNAMIC_RELOC (info, &eh->elf))
 	    {
-	      asection *rsec = htab->elf.srelgot;
-
+	      asection *rsec;
+	      bfd_boolean tprel_known = (bfd_link_executable (info)
+					 && SYMBOL_REFERENCES_LOCAL (info,
+								     &eh->elf));
+
+	      need = got_relocs_needed (eh->tls_mask, need, tprel_known);
+	      if ((eh->tls_mask & TLS_LD) != 0 && eh->elf.def_dynamic)
+		need -= sizeof (Elf32_External_Rela);
+	      rsec = htab->elf.srelgot;
 	      if (eh->elf.type == STT_GNU_IFUNC)
 		rsec = htab->elf.irelplt;
-	      /* All the entries we allocated need relocs.
-		 Except LD only needs one.  */
-	      if ((eh->tls_mask & TLS_LD) != 0
-		  && eh->elf.def_dynamic)
-		need -= 4;
-	      rsec->size += need * (sizeof (Elf32_External_Rela) / 4);
+	      rsec->size += need;
 	    }
 	}
     }
   else
     eh->elf.got.offset = (bfd_vma) -1;
 
+  /* If no dynamic sections we can't have dynamic relocs, except for
+     IFUNCs which are handled even in static executables.  */
   if (!htab->elf.dynamic_sections_created
       && h->type != STT_GNU_IFUNC)
     eh->dyn_relocs = NULL;
 
+  /* Discard relocs on undefined symbols that must be local.  */
+  else if (h->root.type == bfd_link_hash_undefined
+	   && ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
+    eh->dyn_relocs = NULL;
+
+  /* Also discard relocs on undefined weak syms with non-default
+     visibility, or when dynamic_undefined_weak says so.  */
+  else if (UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
+    eh->dyn_relocs = NULL;
+
   if (eh->dyn_relocs == NULL)
     ;
 
@@ -6084,24 +5946,10 @@ allocate_dynrelocs (struct elf_link_hash
 	    }
 	}
 
-      /* Discard relocs on undefined symbols that must be local.  */
-      if (eh->dyn_relocs != NULL
-	  && h->root.type == bfd_link_hash_undefined
-	  && (ELF_ST_VISIBILITY (h->other) == STV_HIDDEN
-	      || ELF_ST_VISIBILITY (h->other) == STV_INTERNAL))
-	eh->dyn_relocs = NULL;
-
-      /* Also discard relocs on undefined weak syms with non-default
-	 visibility.  */
-      if (eh->dyn_relocs != NULL
-	  && h->root.type == bfd_link_hash_undefweak)
+      if (eh->dyn_relocs != NULL)
 	{
-	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
-	    eh->dyn_relocs = NULL;
-
-	  /* Make sure undefined weak symbols are output as a dynamic
-	     symbol in PIEs.  */
-	  else if (!ensure_undefweak_dynamic (info, h))
+	  /* Make sure this symbol is output as a dynamic symbol.  */
+	  if (!ensure_undef_dynamic (info, h))
 	    return FALSE;
 	}
     }
@@ -6110,16 +5958,16 @@ allocate_dynrelocs (struct elf_link_hash
       /* For the non-pic case, discard space for relocs against
 	 symbols which turn out to need copy relocs or are not
 	 dynamic.  */
-      if (!h->non_got_ref
+      if (h->dynamic_adjusted
 	  && !h->def_regular
+	  && !ELF_COMMON_DEF_P (h)
 	  && !(h->protected_def
 	       && eh->has_addr16_ha
 	       && eh->has_addr16_lo
 	       && htab->params->pic_fixup > 0))
 	{
-	  /* Make sure this symbol is output as a dynamic symbol.
-	     Undefined weak syms won't yet be marked as dynamic.  */
-	  if (!ensure_undefweak_dynamic (info, h))
+	  /* Make sure this symbol is output as a dynamic symbol.  */
+	  if (!ensure_undef_dynamic (info, h))
 	    return FALSE;
 
 	  if (h->dynindx == -1)
@@ -6291,14 +6139,22 @@ allocate_dynrelocs (struct elf_link_hash
    read-only sections.  */
 
 static bfd_boolean
-maybe_set_textrel (struct elf_link_hash_entry *h, void *info)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
+  asection *sec;
+
   if (h->root.type == bfd_link_hash_indirect)
     return TRUE;
 
-  if (readonly_dynrelocs (h))
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
     {
-      ((struct bfd_link_info *) info)->flags |= DF_TEXTREL;
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
+
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
       /* Not an error, just cut short the traversal.  */
       return FALSE;
@@ -6403,7 +6259,11 @@ ppc_elf_size_dynamic_sections (bfd *outp
 		  if ((p->sec->output_section->flags
 		       & (SEC_READONLY | SEC_ALLOC))
 		      == (SEC_READONLY | SEC_ALLOC))
-		    info->flags |= DF_TEXTREL;
+		    {
+		      info->flags |= DF_TEXTREL;
+		      info->callbacks->minfo (_("%B: dynamic relocation in read-only section `%A'\n"),
+					      p->sec->owner, p->sec);
+		    }
 		}
 	    }
 	}
@@ -6422,20 +6282,10 @@ ppc_elf_size_dynamic_sections (bfd *outp
       for (; local_got < end_local_got; ++local_got, ++lgot_masks)
 	if (*local_got > 0)
 	  {
-	    unsigned int need = 0;
-	    if ((*lgot_masks & TLS_TLS) != 0)
-	      {
-		if ((*lgot_masks & TLS_GD) != 0)
-		  need += 8;
-		if ((*lgot_masks & TLS_LD) != 0)
-		  htab->tlsld_got.refcount += 1;
-		if ((*lgot_masks & (TLS_TPREL | TLS_TPRELGD)) != 0)
-		  need += 4;
-		if ((*lgot_masks & TLS_DTPREL) != 0)
-		  need += 4;
-	      }
-	    else
-	      need += 4;
+	    unsigned int need;
+	    if ((*lgot_masks & TLS_LD) != 0)
+	      htab->tlsld_got.refcount += 1;
+	    need = got_entries_needed (*lgot_masks);
 	    if (need == 0)
 	      *local_got = (bfd_vma) -1;
 	    else
@@ -6443,10 +6293,14 @@ ppc_elf_size_dynamic_sections (bfd *outp
 		*local_got = allocate_got (htab, need);
 		if (bfd_link_pic (info))
 		  {
-		    asection *srel = htab->elf.srelgot;
+		    asection *srel;
+		    bfd_boolean tprel_known = bfd_link_executable (info);
+
+		    need = got_relocs_needed (*lgot_masks, need, tprel_known);
+		    srel = htab->elf.srelgot;
 		    if ((*lgot_masks & PLT_IFUNC) != 0)
 		      srel = htab->elf.irelplt;
-		    srel->size += need * (sizeof (Elf32_External_Rela) / 4);
+		    srel->size += need;
 		  }
 	      }
 	  }
@@ -7907,7 +7761,7 @@ ppc_elf_relocate_section (bfd *output_bf
 	  wrel->r_addend = 0;
 
 	  /* For ld -r, remove relocations in debug sections against
-	     sections defined in discarded sections.  Not done for
+	     symbols defined in discarded sections.  Not done for
 	     non-debug to preserve relocs in .eh_frame which the
 	     eh_frame editing code expects to be present.  */
 	  if (bfd_link_relocatable (info)
@@ -8281,9 +8135,9 @@ ppc_elf_relocate_section (bfd *output_bf
 		  r_type = R_PPC_GOT16_LO;
 		}
 	      else
-		info->callbacks->einfo
+		_bfd_error_handler
 		  /* xgettext:c-format */
-		  (_("%H: error: %s with unexpected instruction %x\n"),
+		  (_("%B(%A+%#Lx): error: %s with unexpected instruction %#x"),
 		   input_bfd, input_section, rel->r_offset,
 		   "R_PPC_ADDR16_HA", insn);
 	    }
@@ -8316,9 +8170,9 @@ ppc_elf_relocate_section (bfd *output_bf
 		  rel->r_info = ELF32_R_INFO (0, r_type);
 		}
 	      else
-		info->callbacks->einfo
+		_bfd_error_handler
 		  /* xgettext:c-format */
-		  (_("%H: error: %s with unexpected instruction %x\n"),
+		  (_("%B(%A+%#Lx): error: %s with unexpected instruction %#x"),
 		   input_bfd, input_section, rel->r_offset,
 		   "R_PPC_ADDR16_LO", insn);
 	    }
@@ -8419,10 +8273,44 @@ ppc_elf_relocate_section (bfd *output_bf
 	}
 
       addend = rel->r_addend;
-      tls_type = 0;
       howto = NULL;
       if (r_type < R_PPC_max)
 	howto = ppc_elf_howto_table[r_type];
+
+      switch (r_type)
+	{
+	default:
+	  break;
+
+	case R_PPC_TPREL16_HA:
+	  if (htab->do_tls_opt && relocation + addend + 0x8000 < 0x10000)
+	    {
+	      bfd_byte *p = contents + (rel->r_offset & ~3);
+	      unsigned int insn = bfd_get_32 (input_bfd, p);
+	      if ((insn & ((0x3f << 26) | 0x1f << 16))
+		  != ((15u << 26) | (2 << 16)) /* addis rt,2,imm */)
+		/* xgettext:c-format */
+		info->callbacks->minfo
+		  (_("%H: warning: %s unexpected insn %#x.\n"),
+		   input_bfd, input_section, rel->r_offset, howto->name, insn);
+	      else
+		bfd_put_32 (input_bfd, NOP, p);
+	    }
+	  break;
+
+	case R_PPC_TPREL16_LO:
+	  if (htab->do_tls_opt && relocation + addend + 0x8000 < 0x10000)
+	    {
+	      bfd_byte *p = contents + (rel->r_offset & ~3);
+	      unsigned int insn = bfd_get_32 (input_bfd, p);
+	      insn &= ~(0x1f << 16);
+	      insn |= 2 << 16;
+	      bfd_put_32 (input_bfd, insn, p);
+	    }
+	  break;
+	}
+
+      tls_type = 0;
       switch (r_type)
 	{
 	default:
@@ -8502,8 +8390,7 @@ ppc_elf_relocate_section (bfd *output_bf
 		if (!htab->elf.dynamic_sections_created
 		    || h->dynindx == -1
 		    || SYMBOL_REFERENCES_LOCAL (info, h)
-		    || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
-			&& h->root.type == bfd_link_hash_undefweak))
+		    || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 		  /* This is actually a static link, or it is a
 		     -Bsymbolic link and the symbol is defined
 		     locally, or the symbol was forced to be local
@@ -8572,9 +8459,11 @@ ppc_elf_relocate_section (bfd *output_bf
 		    if (indx != 0
 			|| (bfd_link_pic (info)
 			    && (h == NULL
-				|| ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-				|| h->root.type != bfd_link_hash_undefweak
-				|| offp == &htab->tlsld_got.offset)))
+				|| !UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)
+				|| offp == &htab->tlsld_got.offset)
+			    && !(tls_ty == (TLS_TLS | TLS_TPREL)
+				 && bfd_link_executable (info)
+				 && SYMBOL_REFERENCES_LOCAL (info, h))))
 		      {
 			asection *rsec = htab->elf.srelgot;
 			bfd_byte * loc;
@@ -8638,10 +8527,6 @@ ppc_elf_relocate_section (bfd *output_bf
 		    else
 		      {
 			bfd_vma value = relocation;
-			int tlsopt = (htab->plt_type == PLT_NEW
-				      && !htab->params->no_tls_get_addr_opt
-				      && htab->tls_get_addr != NULL
-				      && htab->tls_get_addr->plt.plist != NULL);
 
 			if (tls_ty != 0)
 			  {
@@ -8653,8 +8538,7 @@ ppc_elf_relocate_section (bfd *output_bf
 				  value = 0;
 				else
 				  value -= htab->elf.tls_sec->vma + DTP_OFFSET;
-				if ((tls_ty & TLS_TPREL)
-				    || (tlsopt && !(tls_ty & TLS_DTPREL)))
+				if (tls_ty & TLS_TPREL)
 				  value += DTP_OFFSET - TP_OFFSET;
 			      }
 
@@ -8662,7 +8546,7 @@ ppc_elf_relocate_section (bfd *output_bf
 			      {
 				bfd_put_32 (input_bfd, value,
 					    htab->elf.sgot->contents + off + 4);
-				value = !tlsopt;
+				value = 1;
 			      }
 			  }
 			bfd_put_32 (input_bfd, value,
@@ -8789,8 +8673,8 @@ ppc_elf_relocate_section (bfd *output_bf
 	  if (htab->elf.tls_sec != NULL)
 	    addend -= htab->elf.tls_sec->vma + TP_OFFSET;
 	  /* The TPREL16 relocs shouldn't really be used in shared
-	     libs as they will result in DT_TEXTREL being set, but
-	     support them anyway.  */
+	     libs or with non-local symbols as that will result in
+	     DT_TEXTREL being set, but support them anyway.  */
 	  goto dodyn;
 
 	case R_PPC_TPREL32:
@@ -8856,25 +8740,13 @@ ppc_elf_relocate_section (bfd *output_bf
 	      || is_vxworks_tls)
 	    break;
 
-	  if ((bfd_link_pic (info)
-	       && !(h != NULL
-		    && ((h->root.type == bfd_link_hash_undefined
-			 && (ELF_ST_VISIBILITY (h->other) == STV_HIDDEN
-			     || ELF_ST_VISIBILITY (h->other) == STV_INTERNAL))
-			|| (h->root.type == bfd_link_hash_undefweak
-			    && ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)))
-	       && (must_be_dyn_reloc (info, r_type)
-		   || !SYMBOL_CALLS_LOCAL (info, h)))
-	      || (ELIMINATE_COPY_RELOCS
-		  && !bfd_link_pic (info)
-		  && h != NULL
-		  && h->dynindx != -1
-		  && !h->non_got_ref
-		  && !h->def_regular
-		  && !(h->protected_def
-		       && ppc_elf_hash_entry (h)->has_addr16_ha
-		       && ppc_elf_hash_entry (h)->has_addr16_lo
-		       && htab->params->pic_fixup > 0)))
+	  if (bfd_link_pic (info)
+	      ? ((h == NULL
+		  || ppc_elf_hash_entry (h)->dyn_relocs != NULL)
+		 && ((h != NULL && pc_dynrelocs (h))
+		     || must_be_dyn_reloc (info, r_type)))
+	      : (h != NULL
+		 && ppc_elf_hash_entry (h)->dyn_relocs != NULL))
 	    {
 	      int skip;
 	      bfd_byte *loc;
@@ -8903,10 +8775,7 @@ ppc_elf_relocate_section (bfd *output_bf
 
 	      if (skip)
 		memset (&outrel, 0, sizeof outrel);
-	      else if ((h != NULL
-			&& (h->root.type == bfd_link_hash_undefined
-			    || h->root.type == bfd_link_hash_undefweak))
-		       || !SYMBOL_REFERENCES_LOCAL (info, h))
+	      else if (!SYMBOL_REFERENCES_LOCAL (info, h))
 		{
 		  indx = h->dynindx;
 		  BFD_ASSERT (indx != -1);
@@ -9012,34 +8881,6 @@ ppc_elf_relocate_section (bfd *output_bf
 		  break;
 		}
 	    }
-	  else if (r_type == R_PPC_DTPMOD32
-		   && htab->plt_type == PLT_NEW
-		   && !htab->params->no_tls_get_addr_opt
-		   && htab->tls_get_addr != NULL
-		   && htab->tls_get_addr->plt.plist != NULL)
-	    {
-	      /* Set up for __tls_get_addr_opt stub when this entry
-		 does not have dynamic relocs.  */
-	      relocation = 0;
-	      /* Set up the next word for local dynamic.  If it turns
-		 out to be global dynamic, the reloc will overwrite
-		 this value.  */
-	      if (rel->r_offset + 8 <= input_section->size)
-		bfd_put_32 (input_bfd, DTP_OFFSET - TP_OFFSET,
-			    contents + rel->r_offset + 4);
-	    }
-	  else if (r_type == R_PPC_DTPREL32
-		   && htab->plt_type == PLT_NEW
-		   && !htab->params->no_tls_get_addr_opt
-		   && htab->tls_get_addr != NULL
-		   && htab->tls_get_addr->plt.plist != NULL
-		   && rel > relocs
-		   && rel[-1].r_info == ELF32_R_INFO (r_symndx, R_PPC_DTPMOD32)
-		   && rel[-1].r_offset + 4 == rel->r_offset)
-	    {
-	      /* __tls_get_addr_opt stub value.  */
-	      addend += DTP_OFFSET - TP_OFFSET;
-	    }
 	  break;
 
 	case R_PPC_RELAX_PLT:
@@ -9507,6 +9348,10 @@ ppc_elf_relocate_section (bfd *output_bf
 	  }
 	  goto copy_reloc;
 
+	case R_PPC_VLE_ADDR20:
+	  ppc_elf_vle_split20 (output_bfd, contents + rel->r_offset, relocation);
+	  continue;
+
 	  /* Relocate against the beginning of the section.  */
 	case R_PPC_SECTOFF:
 	case R_PPC_SECTOFF_LO:
@@ -9910,12 +9755,12 @@ ppc_elf_relocate_section (bfd *output_bf
 	     . new_page:		new_page:
 	     .  */
 	  insn = bfd_get_32 (input_bfd, contents + offset);
-	  if ((insn & (0x3f << 26)) == (18u << 26)          /* b,bl,ba,bla */
-	      || ((insn & (0x3f << 26)) == (16u << 26)      /* bc,bcl,bca,bcla*/
-		  && (insn & (0x14 << 21)) == (0x14 << 21)) /*   with BO=0x14 */
+	  if ((insn & (0x3f << 26)) == (18u << 26)	    /* b,bl,ba,bla */
+	      || ((insn & (0x3f << 26)) == (16u << 26)	    /* bc,bcl,bca,bcla*/
+		  && (insn & (0x14 << 21)) == (0x14 << 21)) /*	 with BO=0x14 */
 	      || ((insn & (0x3f << 26)) == (19u << 26)
 		  && (insn & (0x3ff << 1)) == (16u << 1)    /* bclr,bclrl */
-		  && (insn & (0x14 << 21)) == (0x14 << 21)))/*   with BO=0x14 */
+		  && (insn & (0x14 << 21)) == (0x14 << 21)))/*	 with BO=0x14 */
 	    continue;
 
 	  patch_addr = (start_addr + input_section->size
@@ -10686,13 +10531,13 @@ ppc_elf_finish_dynamic_sections (bfd *ou
        * 1: addi 11,11,(1b-res_0)@l
        *    mflr 12
        *    mtlr 0
-       *    sub 11,11,12                # r11 = index * 4
+       *    sub 11,11,12		# r11 = index * 4
        *    addis 12,12,(got+4-1b)@ha
-       *    lwz 0,(got+4-1b)@l(12)      # got[1] address of dl_runtime_resolve
-       *    lwz 12,(got+8-1b)@l(12)     # got[2] contains the map address
+       *    lwz 0,(got+4-1b)@l(12)	# got[1] address of dl_runtime_resolve
+       *    lwz 12,(got+8-1b)@l(12)	# got[2] contains the map address
        *    mtctr 0
        *    add 0,11,11
-       *    add 11,0,11                 # r11 = index * 12 = reloc offset.
+       *    add 11,0,11			# r11 = index * 12 = reloc offset.
        *    bctr
        */
       static const unsigned int pic_plt_resolve[] =
@@ -10729,12 +10574,12 @@ ppc_elf_finish_dynamic_sections (bfd *ou
        * PLTresolve:
        *    lis 12,(got+4)@ha
        *    addis 11,11,(-res_0)@ha
-       *    lwz 0,(got+4)@l(12)         # got[1] address of dl_runtime_resolve
-       *    addi 11,11,(-res_0)@l       # r11 = index * 4
+       *    lwz 0,(got+4)@l(12)		# got[1] address of dl_runtime_resolve
+       *    addi 11,11,(-res_0)@l	# r11 = index * 4
        *    mtctr 0
        *    add 0,11,11
-       *    lwz 12,(got+8)@l(12)        # got[2] contains the map address
-       *    add 11,0,11                 # r11 = index * 12 = reloc offset.
+       *    lwz 12,(got+8)@l(12)	# got[2] contains the map address
+       *    add 11,0,11			# r11 = index * 12 = reloc offset.
        *    bctr
        */
       static const unsigned int plt_resolve[] =
@@ -10965,11 +10810,11 @@ ppc_elf_finish_dynamic_sections (bfd *ou
 
 #define elf_backend_object_p			ppc_elf_object_p
 #define elf_backend_gc_mark_hook		ppc_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook		ppc_elf_gc_sweep_hook
 #define elf_backend_section_from_shdr		ppc_elf_section_from_shdr
 #define elf_backend_relocate_section		ppc_elf_relocate_section
 #define elf_backend_create_dynamic_sections	ppc_elf_create_dynamic_sections
 #define elf_backend_check_relocs		ppc_elf_check_relocs
+#define elf_backend_relocs_compatible		_bfd_elf_relocs_compatible
 #define elf_backend_copy_indirect_symbol	ppc_elf_copy_indirect_symbol
 #define elf_backend_adjust_dynamic_symbol	ppc_elf_adjust_dynamic_symbol
 #define elf_backend_add_symbol_hook		ppc_elf_add_symbol_hook
@@ -10979,7 +10824,7 @@ ppc_elf_finish_dynamic_sections (bfd *ou
 #define elf_backend_finish_dynamic_sections	ppc_elf_finish_dynamic_sections
 #define elf_backend_fake_sections		ppc_elf_fake_sections
 #define elf_backend_additional_program_headers	ppc_elf_additional_program_headers
-#define elf_backend_modify_segment_map     	ppc_elf_modify_segment_map
+#define elf_backend_modify_segment_map		ppc_elf_modify_segment_map
 #define elf_backend_grok_prstatus		ppc_elf_grok_prstatus
 #define elf_backend_grok_psinfo			ppc_elf_grok_psinfo
 #define elf_backend_write_core_note		ppc_elf_write_core_note
@@ -11049,7 +10894,7 @@ ppc_elf_vxworks_link_hash_table_create (
   if (ret)
     {
       struct ppc_elf_link_hash_table *htab
-        = (struct ppc_elf_link_hash_table *)ret;
+	= (struct ppc_elf_link_hash_table *)ret;
       htab->is_vxworks = 1;
       htab->plt_type = PLT_VXWORKS;
       htab->plt_entry_size = VXWORKS_PLT_ENTRY_SIZE;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-ppc.h ./bfd/elf32-ppc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-ppc.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-ppc.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* PowerPC-specific support for 64-bit ELF.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -61,5 +61,5 @@ asection *ppc_elf_tls_setup (bfd *, stru
 bfd_boolean ppc_elf_tls_optimize (bfd *, struct bfd_link_info *);
 void ppc_elf_maybe_strip_sdata_syms (struct bfd_link_info *);
 extern bfd_boolean ppc_elf_modify_segment_map (bfd *,
-		           struct bfd_link_info * ATTRIBUTE_UNUSED);
+			   struct bfd_link_info * ATTRIBUTE_UNUSED);
 extern bfd_boolean ppc_elf_section_processing (bfd *, Elf_Internal_Shdr *);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-pru.c ./bfd/elf32-pru.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-pru.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-pru.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* 32-bit ELF support for TI PRU.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
    Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
    Based on elf32-nios2.c
 
@@ -217,19 +217,19 @@ static reloc_howto_type elf_pru_howto_ta
 
   HOWTO (R_PRU_GNU_DIFF8,	/* type */
 	 0,			/* rightshift */
-	 0, 			/* size (0 = byte, 1 = short, 2 = long) */
-	 8, 			/* bitsize */
+	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 8,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
 	 bfd_elf_pru_diff_relocate, /* special_function */
-	 "R_PRU_DIFF8",     	/* name */
+	 "R_PRU_DIFF8",		/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xff,			/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_PRU_GNU_DIFF16,  	/* type */
+  HOWTO (R_PRU_GNU_DIFF16,	/* type */
 	 0,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
 	 16,			/* bitsize */
@@ -237,13 +237,13 @@ static reloc_howto_type elf_pru_howto_ta
 	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
 	 bfd_elf_pru_diff_relocate,/* special_function */
-	 "R_PRU_DIFF16",     	/* name */
+	 "R_PRU_DIFF16",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_PRU_GNU_DIFF32,  	/* type */
+  HOWTO (R_PRU_GNU_DIFF32,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -251,10 +251,10 @@ static reloc_howto_type elf_pru_howto_ta
 	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
 	 bfd_elf_pru_diff_relocate,/* special_function */
-	 "R_PRU_DIFF32",     	/* name */
+	 "R_PRU_DIFF32",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
-	 0xffffffff,    	/* dst_mask */
+	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_PRU_GNU_DIFF16_PMEM,	/* type */
@@ -265,7 +265,7 @@ static reloc_howto_type elf_pru_howto_ta
 	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
 	 bfd_elf_pru_diff_relocate,/* special_function */
-	 "R_PRU_DIFF16_PMEM",   /* name */
+	 "R_PRU_DIFF16_PMEM",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffff,		/* dst_mask */
@@ -279,7 +279,7 @@ static reloc_howto_type elf_pru_howto_ta
 	 0,			/* bitpos */
 	 complain_overflow_bitfield, /* complain_on_overflow */
 	 bfd_elf_pru_diff_relocate,/* special_function */
-	 "R_PRU_DIFF32_PMEM",   /* name */
+	 "R_PRU_DIFF32_PMEM",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffffffff,		/* dst_mask */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-rl78.c ./bfd/elf32-rl78.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-rl78.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-rl78.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Renesas RL78 specific support for 32-bit ELF.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -15,7 +15,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 #include "sysdep.h"
 #include "bfd.h"
@@ -45,25 +46,25 @@ static bfd_reloc_status_type rl78_specia
 
 static reloc_howto_type rl78_elf_howto_table [] =
 {
-  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),
-  RL78REL (DIR16U,       1, 16, 0, unsigned, FALSE),
-  RL78REL (DIR16S,       1, 16, 0, signed,   FALSE),
-  RL78REL (DIR8,         0,  8, 0, dont,     FALSE),
-  RL78REL (DIR8U,        0,  8, 0, unsigned, FALSE),
-  RL78REL (DIR8S,        0,  8, 0, signed,   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),
+  RL78REL (DIR16U,	 1, 16, 0, unsigned, FALSE),
+  RL78REL (DIR16S,	 1, 16, 0, signed,   FALSE),
+  RL78REL (DIR8,	 0,  8, 0, dont,     FALSE),
+  RL78REL (DIR8U,	 0,  8, 0, unsigned, FALSE),
+  RL78REL (DIR8S,	 0,  8, 0, signed,   FALSE),
   RL78REL (DIR24S_PCREL, 2, 24, 0, signed,   TRUE),
   RL78REL (DIR16S_PCREL, 1, 16, 0, signed,   TRUE),
-  RL78REL (DIR8S_PCREL,  0,  8, 0, signed,   TRUE),
-  RL78REL (DIR16UL,      1, 16, 2, unsigned, FALSE),
-  RL78REL (DIR16UW,      1, 16, 1, unsigned, FALSE),
-  RL78REL (DIR8UL,       0,  8, 2, unsigned, FALSE),
-  RL78REL (DIR8UW,       0,  8, 1, unsigned, FALSE),
-  RL78REL (DIR32_REV,    1, 16, 0, dont,     FALSE),
-  RL78REL (DIR16_REV,    1, 16, 0, dont,     FALSE),
-  RL78REL (DIR3U_PCREL,  0,  3, 0, dont,     TRUE),
+  RL78REL (DIR8S_PCREL,	 0,  8, 0, signed,   TRUE),
+  RL78REL (DIR16UL,	 1, 16, 2, unsigned, FALSE),
+  RL78REL (DIR16UW,	 1, 16, 1, unsigned, FALSE),
+  RL78REL (DIR8UL,	 0,  8, 2, unsigned, FALSE),
+  RL78REL (DIR8UW,	 0,  8, 1, unsigned, FALSE),
+  RL78REL (DIR32_REV,	 1, 16, 0, dont,     FALSE),
+  RL78REL (DIR16_REV,	 1, 16, 0, dont,     FALSE),
+  RL78REL (DIR3U_PCREL,	 0,  3, 0, dont,     TRUE),
 
   EMPTY_HOWTO (0x13),
   EMPTY_HOWTO (0x14),
@@ -92,10 +93,10 @@ static reloc_howto_type rl78_elf_howto_t
   EMPTY_HOWTO (0x2a),
   EMPTY_HOWTO (0x2b),
   EMPTY_HOWTO (0x2c),
-  RL78REL (RH_RELAX, 0,  0, 0, dont,     FALSE),
+  RL78REL (RH_RELAX, 0,	 0, 0, dont,	 FALSE),
 
   EMPTY_HOWTO (0x2e),
-  RL78REL (RH_SADDR, 0,  0, 0, dont,     FALSE),
+  RL78REL (RH_SADDR, 0,	 0, 0, dont,	 FALSE),
   EMPTY_HOWTO (0x30),
   EMPTY_HOWTO (0x31),
   EMPTY_HOWTO (0x32),
@@ -114,23 +115,23 @@ static reloc_howto_type rl78_elf_howto_t
   EMPTY_HOWTO (0x3f),
   EMPTY_HOWTO (0x40),
 
-  RL78_OP_REL (ABS32,        2, 32, 0, dont,     FALSE),
-  RL78_OP_REL (ABS24S,       2, 24, 0, signed,   FALSE),
-  RL78_OP_REL (ABS16,        1, 16, 0, dont,     FALSE),
-  RL78_OP_REL (ABS16U,       1, 16, 0, unsigned, FALSE),
-  RL78_OP_REL (ABS16S,       1, 16, 0, signed,   FALSE),
-  RL78_OP_REL (ABS8,         0,  8, 0, dont,     FALSE),
-  RL78_OP_REL (ABS8U,        0,  8, 0, unsigned, FALSE),
-  RL78_OP_REL (ABS8S,        0,  8, 0, signed,   FALSE),
-  RL78_OP_REL (ABS24S_PCREL, 2, 24, 0, signed,   TRUE),
-  RL78_OP_REL (ABS16S_PCREL, 1, 16, 0, signed,   TRUE),
-  RL78_OP_REL (ABS8S_PCREL,  0,  8, 0, signed,   TRUE),
-  RL78_OP_REL (ABS16UL,      1, 16, 0, unsigned, FALSE),
-  RL78_OP_REL (ABS16UW,      1, 16, 0, unsigned, FALSE),
-  RL78_OP_REL (ABS8UL,       0,  8, 0, unsigned, FALSE),
-  RL78_OP_REL (ABS8UW,       0,  8, 0, unsigned, FALSE),
-  RL78_OP_REL (ABS32_REV,    2, 32, 0, dont,     FALSE),
-  RL78_OP_REL (ABS16_REV,    1, 16, 0, dont,     FALSE),
+  RL78_OP_REL (ABS32,	     2, 32, 0, dont,	 FALSE),
+  RL78_OP_REL (ABS24S,	     2, 24, 0, signed,	 FALSE),
+  RL78_OP_REL (ABS16,	     1, 16, 0, dont,	 FALSE),
+  RL78_OP_REL (ABS16U,	     1, 16, 0, unsigned, FALSE),
+  RL78_OP_REL (ABS16S,	     1, 16, 0, signed,	 FALSE),
+  RL78_OP_REL (ABS8,	     0,	 8, 0, dont,	 FALSE),
+  RL78_OP_REL (ABS8U,	     0,	 8, 0, unsigned, FALSE),
+  RL78_OP_REL (ABS8S,	     0,	 8, 0, signed,	 FALSE),
+  RL78_OP_REL (ABS24S_PCREL, 2, 24, 0, signed,	 TRUE),
+  RL78_OP_REL (ABS16S_PCREL, 1, 16, 0, signed,	 TRUE),
+  RL78_OP_REL (ABS8S_PCREL,  0,	 8, 0, signed,	 TRUE),
+  RL78_OP_REL (ABS16UL,	     1, 16, 0, unsigned, FALSE),
+  RL78_OP_REL (ABS16UW,	     1, 16, 0, unsigned, FALSE),
+  RL78_OP_REL (ABS8UL,	     0,	 8, 0, unsigned, FALSE),
+  RL78_OP_REL (ABS8UW,	     0,	 8, 0, unsigned, FALSE),
+  RL78_OP_REL (ABS32_REV,    2, 32, 0, dont,	 FALSE),
+  RL78_OP_REL (ABS16_REV,    1, 16, 0, dont,	 FALSE),
 
 #define STACK_REL_P(x) ((x) <= R_RL78_ABS16_REV && (x) >= R_RL78_ABS32)
 
@@ -182,14 +183,14 @@ static reloc_howto_type rl78_elf_howto_t
   EMPTY_HOWTO (0x7e),
   EMPTY_HOWTO (0x7f),
 
-  RL78_OP_REL (SYM,       2, 32, 0, dont, FALSE),
-  RL78_OP_REL (OPneg,     2, 32, 0, dont, FALSE),
-  RL78_OP_REL (OPadd,     2, 32, 0, dont, FALSE),
-  RL78_OP_REL (OPsub,     2, 32, 0, dont, FALSE),
-  RL78_OP_REL (OPmul,     2, 32, 0, dont, FALSE),
-  RL78_OP_REL (OPdiv,     2, 32, 0, dont, FALSE),
-  RL78_OP_REL (OPshla,    2, 32, 0, dont, FALSE),
-  RL78_OP_REL (OPshra,    2, 32, 0, dont, FALSE),
+  RL78_OP_REL (SYM,	  2, 32, 0, dont, FALSE),
+  RL78_OP_REL (OPneg,	  2, 32, 0, dont, FALSE),
+  RL78_OP_REL (OPadd,	  2, 32, 0, dont, FALSE),
+  RL78_OP_REL (OPsub,	  2, 32, 0, dont, FALSE),
+  RL78_OP_REL (OPmul,	  2, 32, 0, dont, FALSE),
+  RL78_OP_REL (OPdiv,	  2, 32, 0, dont, FALSE),
+  RL78_OP_REL (OPshla,	  2, 32, 0, dont, FALSE),
+  RL78_OP_REL (OPshra,	  2, 32, 0, dont, FALSE),
   RL78_OP_REL (OPsctsize, 2, 32, 0, dont, FALSE),
   EMPTY_HOWTO (0x89),
   EMPTY_HOWTO (0x8a),
@@ -198,11 +199,11 @@ static reloc_howto_type rl78_elf_howto_t
   RL78_OP_REL (OPscttop,  2, 32, 0, dont, FALSE),
   EMPTY_HOWTO (0x8e),
   EMPTY_HOWTO (0x8f),
-  RL78_OP_REL (OPand,     2, 32, 0, dont, FALSE),
-  RL78_OP_REL (OPor,      2, 32, 0, dont, FALSE),
-  RL78_OP_REL (OPxor,     2, 32, 0, dont, FALSE),
-  RL78_OP_REL (OPnot,     2, 32, 0, dont, FALSE),
-  RL78_OP_REL (OPmod,     2, 32, 0, dont, FALSE),
+  RL78_OP_REL (OPand,	  2, 32, 0, dont, FALSE),
+  RL78_OP_REL (OPor,	  2, 32, 0, dont, FALSE),
+  RL78_OP_REL (OPxor,	  2, 32, 0, dont, FALSE),
+  RL78_OP_REL (OPnot,	  2, 32, 0, dont, FALSE),
+  RL78_OP_REL (OPmod,	  2, 32, 0, dont, FALSE),
   RL78_OP_REL (OPromtop,  2, 32, 0, dont, FALSE),
   RL78_OP_REL (OPramtop,  2, 32, 0, dont, FALSE)
 };
@@ -212,7 +213,7 @@ static reloc_howto_type rl78_elf_howto_t
 struct rl78_reloc_map
 {
   bfd_reloc_code_real_type  bfd_reloc_val;
-  unsigned int              rl78_reloc_val;
+  unsigned int		    rl78_reloc_val;
 };
 
 static const struct rl78_reloc_map rl78_reloc_map [] =
@@ -278,8 +279,8 @@ rl78_reloc_name_lookup (bfd * abfd ATTRI
 /* Set the howto pointer for an RL78 ELF reloc.  */
 
 static void
-rl78_info_to_howto_rela (bfd *               abfd ATTRIBUTE_UNUSED,
-			 arelent *           cache_ptr,
+rl78_info_to_howto_rela (bfd *		     abfd ATTRIBUTE_UNUSED,
+			 arelent *	     cache_ptr,
 			 Elf_Internal_Rela * dst)
 {
   unsigned int r_type;
@@ -295,10 +296,10 @@ rl78_info_to_howto_rela (bfd *          
 }
 
 static bfd_vma
-get_symbol_value (const char *            name,
+get_symbol_value (const char *		  name,
 		  struct bfd_link_info *  info,
-		  bfd *                   input_bfd,
-		  asection *              input_section,
+		  bfd *			  input_bfd,
+		  asection *		  input_section,
 		  int			  offset)
 {
   struct bfd_link_hash_entry * h;
@@ -324,8 +325,8 @@ get_symbol_value (const char *          
 
 static bfd_vma
 get_romstart (struct bfd_link_info *  info,
-	      bfd *                   abfd,
-	      asection *              sec,
+	      bfd *		      abfd,
+	      asection *	      sec,
 	      int		      offset)
 {
   static bfd_boolean cached = FALSE;
@@ -341,8 +342,8 @@ get_romstart (struct bfd_link_info *  in
 
 static bfd_vma
 get_ramstart (struct bfd_link_info *  info,
-	      bfd *                   abfd,
-	      asection *              sec,
+	      bfd *		      abfd,
+	      asection *	      sec,
 	      int		      offset)
 {
   static bfd_boolean cached = FALSE;
@@ -364,7 +365,7 @@ static unsigned int rl78_stack_top;
   do						\
     {						\
       if (rl78_stack_top < NUM_STACK_ENTRIES)	\
-        rl78_stack [rl78_stack_top ++] = (val);	\
+	rl78_stack [rl78_stack_top ++] = (val);	\
       else					\
 	_bfd_error_handler (_("Internal Error: RL78 reloc stack overflow")); \
     }						\
@@ -374,12 +375,12 @@ static unsigned int rl78_stack_top;
   do						\
     {						\
       if (rl78_stack_top > 0)			\
-        (dest) = rl78_stack [-- rl78_stack_top];\
+	(dest) = rl78_stack [-- rl78_stack_top];\
       else					\
 	{					\
-          _bfd_error_handler (_("Internal Error: RL78 reloc stack underflow")); \
-          (dest) = 0;				\
-        }					\
+	  _bfd_error_handler (_("Internal Error: RL78 reloc stack underflow")); \
+	  (dest) = 0;				\
+	}					\
     }						\
   while (0)
 
@@ -390,8 +391,8 @@ static unsigned int rl78_stack_top;
 
 static bfd_vma
 rl78_compute_complex_reloc (unsigned long  r_type,
-			    bfd_vma        symval,
-			    asection *     input_section)
+			    bfd_vma	   symval,
+			    asection *	   input_section)
 {
   int32_t tmp1, tmp2;
   bfd_vma relocation;
@@ -545,10 +546,10 @@ rl78_special_reloc (bfd *      input_bfd
 		    bfd *      output_bfd ATTRIBUTE_UNUSED,
 		    char **    error_message ATTRIBUTE_UNUSED)
 {
-  bfd_reloc_status_type  r = bfd_reloc_ok;
-  bfd_vma                relocation = 0;
-  unsigned long          r_type = reloc->howto->type;
-  bfd_byte *             contents = data;
+  bfd_reloc_status_type	 r = bfd_reloc_ok;
+  bfd_vma		 relocation = 0;
+  unsigned long		 r_type = reloc->howto->type;
+  bfd_byte *		 contents = data;
 
   /* If necessary, compute the symbolic value of the relocation.  */
   switch (r_type)
@@ -672,19 +673,19 @@ rl78_special_reloc (bfd *      input_bfd
 
 static bfd_boolean
 rl78_elf_relocate_section
-    (bfd *                   output_bfd,
+    (bfd *		     output_bfd,
      struct bfd_link_info *  info,
-     bfd *                   input_bfd,
-     asection *              input_section,
-     bfd_byte *              contents,
+     bfd *		     input_bfd,
+     asection *		     input_section,
+     bfd_byte *		     contents,
      Elf_Internal_Rela *     relocs,
-     Elf_Internal_Sym *      local_syms,
-     asection **             local_sections)
+     Elf_Internal_Sym *	     local_syms,
+     asection **	     local_sections)
 {
-  Elf_Internal_Shdr *           symtab_hdr;
+  Elf_Internal_Shdr *		symtab_hdr;
   struct elf_link_hash_entry ** sym_hashes;
-  Elf_Internal_Rela *           rel;
-  Elf_Internal_Rela *           relend;
+  Elf_Internal_Rela *		rel;
+  Elf_Internal_Rela *		relend;
   asection *splt;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
@@ -695,22 +696,22 @@ rl78_elf_relocate_section
 
   for (rel = relocs; rel < relend; rel ++)
     {
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
+      reloc_howto_type *	   howto;
+      unsigned long		   r_symndx;
+      Elf_Internal_Sym *	   sym;
+      asection *		   sec;
       struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 name = NULL;
-      bfd_boolean                  unresolved_reloc = TRUE;
-      int                          r_type;
+      bfd_vma			   relocation;
+      bfd_reloc_status_type	   r;
+      const char *		   name = NULL;
+      bfd_boolean		   unresolved_reloc = TRUE;
+      int			   r_type;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       r_symndx = ELF32_R_SYM (rel->r_info);
 
       howto  = rl78_elf_howto_table + ELF32_R_TYPE (rel->r_info);
-      h      = NULL;
+      h	     = NULL;
       sym    = NULL;
       sec    = NULL;
       relocation = 0;
@@ -745,9 +746,9 @@ rl78_elf_relocate_section
       if (bfd_link_relocatable (info))
 	{
 	  /* This is a relocatable link.  We don't have to change
-             anything, unless the reloc is against a section symbol,
-             in which case we have to adjust according to where the
-             section symbol winds up in the output section.  */
+	     anything, unless the reloc is against a section symbol,
+	     in which case we have to adjust according to where the
+	     section symbol winds up in the output section.  */
 	  if (sym != NULL && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
 	    rel->r_addend += sec->output_offset;
 	  continue;
@@ -1288,15 +1289,15 @@ rl78_elf_object_p (bfd * abfd)
 
 static bfd_boolean
 rl78_elf_check_relocs
-    (bfd *                     abfd,
+    (bfd *		       abfd,
      struct bfd_link_info *    info,
-     asection *                sec,
+     asection *		       sec,
      const Elf_Internal_Rela * relocs)
 {
-  Elf_Internal_Shdr *           symtab_hdr;
+  Elf_Internal_Shdr *		symtab_hdr;
   struct elf_link_hash_entry ** sym_hashes;
-  const Elf_Internal_Rela *     rel;
-  const Elf_Internal_Rela *     rel_end;
+  const Elf_Internal_Rela *	rel;
+  const Elf_Internal_Rela *	rel_end;
   bfd_vma *local_plt_offsets;
   asection *splt;
   bfd *dynobj;
@@ -1318,21 +1319,17 @@ rl78_elf_check_relocs
 
       r_symndx = ELF32_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
-        {
+	{
 	  /* This relocation describes a 16-bit pointer to a function.
 	     We may need to allocate a thunk in low memory; reserve memory
 	     for it now.  */
@@ -1380,7 +1377,7 @@ rl78_elf_check_relocs
 	      splt->size += 4;
 	    }
 	  break;
-        }
+	}
     }
 
   return TRUE;
@@ -1390,7 +1387,7 @@ rl78_elf_check_relocs
 
 static bfd_boolean
 rl78_elf_finish_dynamic_sections (bfd *abfd ATTRIBUTE_UNUSED,
-                                  struct bfd_link_info *info)
+				  struct bfd_link_info *info)
 {
   bfd *dynobj;
   asection *splt;
@@ -1426,7 +1423,7 @@ rl78_elf_finish_dynamic_sections (bfd *a
 
 static bfd_boolean
 rl78_elf_always_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
-                               struct bfd_link_info *info)
+			       struct bfd_link_info *info)
 {
   bfd *dynobj;
   asection *splt;
@@ -1508,9 +1505,9 @@ rl78_relax_plt_realloc (struct elf_link_
 
 static bfd_boolean
 rl78_elf_relax_plt_section (bfd *dynobj,
-                            asection *splt,
-                            struct bfd_link_info *info,
-                            bfd_boolean *again)
+			    asection *splt,
+			    struct bfd_link_info *info,
+			    bfd_boolean *again)
 {
   struct relax_plt_data relax_plt_data;
   bfd *ibfd;
@@ -1625,7 +1622,7 @@ rl78_elf_relax_plt_section (bfd *dynobj,
 	  for (idx = 0; idx < nlocals; ++idx)
 	    if (local_plt_offsets[idx] != (bfd_vma) -1)
 	      {
-	        local_plt_offsets[idx] = entry;
+		local_plt_offsets[idx] = entry;
 		entry += 4;
 	      }
 	}
@@ -1641,14 +1638,14 @@ elf32_rl78_relax_delete_bytes (bfd *abfd
 			       Elf_Internal_Rela *alignment_rel, int force_snip)
 {
   Elf_Internal_Shdr * symtab_hdr;
-  unsigned int        sec_shndx;
-  bfd_byte *          contents;
+  unsigned int	      sec_shndx;
+  bfd_byte *	      contents;
   Elf_Internal_Rela * irel;
   Elf_Internal_Rela * irelend;
   Elf_Internal_Sym *  isym;
   Elf_Internal_Sym *  isymend;
-  bfd_vma             toaddr;
-  unsigned int        symcount;
+  bfd_vma	      toaddr;
+  unsigned int	      symcount;
   struct elf_link_hash_entry ** sym_hashes;
   struct elf_link_hash_entry ** end_hashes;
 
@@ -1819,16 +1816,16 @@ reloc_bubblesort (Elf_Internal_Rela * r,
 			 lrel, abfd, sec, link_info, scale)
 
 static bfd_vma
-rl78_offset_for_reloc (bfd *                    abfd,
-		       Elf_Internal_Rela *      rel,
-		       Elf_Internal_Shdr *      symtab_hdr,
+rl78_offset_for_reloc (bfd *			abfd,
+		       Elf_Internal_Rela *	rel,
+		       Elf_Internal_Shdr *	symtab_hdr,
 		       Elf_External_Sym_Shndx * shndx_buf ATTRIBUTE_UNUSED,
-		       Elf_Internal_Sym *       intsyms,
-		       Elf_Internal_Rela **     lrel,
-		       bfd *                    input_bfd,
-		       asection *               input_section,
-		       struct bfd_link_info *   info,
-		       int *                    scale)
+		       Elf_Internal_Sym *	intsyms,
+		       Elf_Internal_Rela **	lrel,
+		       bfd *			input_bfd,
+		       asection *		input_section,
+		       struct bfd_link_info *	info,
+		       int *			scale)
 {
   bfd_vma symval;
 
@@ -2051,10 +2048,10 @@ struct {
 
 static bfd_boolean
 rl78_elf_relax_section
-    (bfd *                  abfd,
-     asection *             sec,
+    (bfd *		    abfd,
+     asection *		    sec,
      struct bfd_link_info * link_info,
-     bfd_boolean *          again)
+     bfd_boolean *	    again)
 {
   Elf_Internal_Shdr * symtab_hdr;
   Elf_Internal_Shdr * shndx_hdr;
@@ -2064,8 +2061,8 @@ rl78_elf_relax_section
   Elf_Internal_Rela * srel;
   Elf_Internal_Rela * irelend;
   Elf_Internal_Rela * next_alignment;
-  bfd_byte *          contents = NULL;
-  bfd_byte *          free_contents = NULL;
+  bfd_byte *	      contents = NULL;
+  bfd_byte *	      free_contents = NULL;
   Elf_Internal_Sym *  intsyms = NULL;
   Elf_Internal_Sym *  free_intsyms = NULL;
   Elf_External_Sym_Shndx * shndx_buf = NULL;
@@ -2247,9 +2244,9 @@ rl78_elf_relax_section
 	 reloc entry (such as gp-rel symbols).  */
 
       /* Get the value of the symbol referred to by the reloc.  Just
-         in case this is the last reloc in the list, use the RL's
-         addend to choose between this reloc (no addend) or the next
-         (yes addend, which means at least one following reloc).  */
+	 in case this is the last reloc in the list, use the RL's
+	 addend to choose between this reloc (no addend) or the next
+	 (yes addend, which means at least one following reloc).  */
 
       /* srel points to the "current" reloction for this insn -
 	 actually the last reloc for a given operand, which is the one
@@ -2271,7 +2268,7 @@ rl78_elf_relax_section
 	elf32_rl78_relax_delete_bytes (abfd, sec, (insn - contents) + offset, nbytes, next_alignment, 0);
 
 #define SNIP(offset, nbytes, newtype)					\
-        SNIPNR (offset, nbytes);					\
+	SNIPNR (offset, nbytes);					\
 	srel->r_info = ELF32_R_INFO (ELF32_R_SYM (srel->r_info), newtype)
 
       /* The order of these bit tests must match the order that the
@@ -2477,7 +2474,7 @@ rl78_elf_relax_section
 	}
 
       if ((irel->r_addend &  RL78_RELAXA_MASK) == RL78_RELAXA_ADDR16
-          && nrelocs > 0)
+	  && nrelocs > 0)
 	{
 	  /*----------------------------------------------------------------------*/
 	  /* Some insns have both a 16-bit address operand and an 8-bit
@@ -2485,7 +2482,7 @@ rl78_elf_relax_section
 
 	     Address		16-bit operand	SADDR range	SFR range
 	     FFF00-FFFFF	0xff00-0xffff	0x00-0xff
-	     FFE20-FFF1F	0xfe20-0xff1f	 		0x00-0xff
+	     FFE20-FFF1F	0xfe20-0xff1f			0x00-0xff
 
 	     The RELAX_ADDR16[] array has the insn encodings for the
 	     16-bit operand version, as well as the SFR and SADDR
@@ -2580,7 +2577,7 @@ rl78_elf_relax_section
 #define elf_info_to_howto			rl78_info_to_howto_rela
 #define elf_backend_object_p			rl78_elf_object_p
 #define elf_backend_relocate_section		rl78_elf_relocate_section
-#define elf_symbol_leading_char                 ('_')
+#define elf_symbol_leading_char			('_')
 #define elf_backend_can_gc_sections		1
 
 #define bfd_elf32_bfd_reloc_type_lookup		rl78_reloc_type_lookup
@@ -2590,7 +2587,7 @@ rl78_elf_relax_section
 #define bfd_elf32_bfd_print_private_bfd_data	rl78_elf_print_private_bfd_data
 
 #define bfd_elf32_bfd_relax_section		rl78_elf_relax_section
-#define elf_backend_check_relocs                rl78_elf_check_relocs
+#define elf_backend_check_relocs		rl78_elf_check_relocs
 #define elf_backend_always_size_sections \
   rl78_elf_always_size_sections
 #define elf_backend_finish_dynamic_sections \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-rx.c ./bfd/elf32-rx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-rx.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-rx.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Renesas RX specific support for 32-bit ELF.
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -15,7 +15,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 #include "sysdep.h"
 #include "bfd.h"
@@ -49,15 +50,15 @@ void rx_dump_symtab (bfd *, void *, void
 
 static reloc_howto_type rx_elf_howto_table [] =
 {
-  RXREL (NONE,         3,  0, 0, dont,     FALSE),
-  RXREL (DIR32,        2, 32, 0, signed,   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),
+  RXREL (DIR16,	       1, 16, 0, dont,	   FALSE),
   RXREL (DIR16U,       1, 16, 0, unsigned, FALSE),
   RXREL (DIR16S,       1, 16, 0, signed,   FALSE),
-  RXREL (DIR8,         0,  8, 0, dont,     FALSE),
-  RXREL (DIR8U,        0,  8, 0, unsigned, FALSE),
-  RXREL (DIR8S,        0,  8, 0, signed,   FALSE),
+  RXREL (DIR8,	       0,  8, 0, dont,	   FALSE),
+  RXREL (DIR8U,	       0,  8, 0, unsigned, FALSE),
+  RXREL (DIR8S,	       0,  8, 0, signed,   FALSE),
   RXREL (DIR24S_PCREL, 2, 24, 0, signed,   TRUE),
   RXREL (DIR16S_PCREL, 1, 16, 0, signed,   TRUE),
   RXREL (DIR8S_PCREL,  0,  8, 0, signed,   TRUE),
@@ -65,9 +66,9 @@ static reloc_howto_type rx_elf_howto_tab
   RXREL (DIR16UW,      1, 16, 1, unsigned, FALSE),
   RXREL (DIR8UL,       0,  8, 2, unsigned, FALSE),
   RXREL (DIR8UW,       0,  8, 1, unsigned, FALSE),
-  RXREL (DIR32_REV,    1, 16, 0, dont,     FALSE),
-  RXREL (DIR16_REV,    1, 16, 0, dont,     FALSE),
-  RXREL (DIR3U_PCREL,  0,  3, 0, dont,     TRUE),
+  RXREL (DIR32_REV,    1, 16, 0, dont,	   FALSE),
+  RXREL (DIR16_REV,    1, 16, 0, dont,	   FALSE),
+  RXREL (DIR3U_PCREL,  0,  3, 0, dont,	   TRUE),
 
   EMPTY_HOWTO (0x13),
   EMPTY_HOWTO (0x14),
@@ -83,20 +84,20 @@ static reloc_howto_type rx_elf_howto_tab
   EMPTY_HOWTO (0x1e),
   EMPTY_HOWTO (0x1f),
 
-  RXREL (RH_3_PCREL, 0,  3, 0, signed,   TRUE),
-  RXREL (RH_16_OP,   1, 16, 0, signed,   FALSE),
-  RXREL (RH_24_OP,   2, 24, 0, signed,   FALSE),
-  RXREL (RH_32_OP,   2, 32, 0, signed,   FALSE),
+  RXREL (RH_3_PCREL, 0,	 3, 0, signed,	 TRUE),
+  RXREL (RH_16_OP,   1, 16, 0, signed,	 FALSE),
+  RXREL (RH_24_OP,   2, 24, 0, signed,	 FALSE),
+  RXREL (RH_32_OP,   2, 32, 0, signed,	 FALSE),
   RXREL (RH_24_UNS,  2, 24, 0, unsigned, FALSE),
-  RXREL (RH_8_NEG,   0,  8, 0, signed,   FALSE),
-  RXREL (RH_16_NEG,  1, 16, 0, signed,   FALSE),
-  RXREL (RH_24_NEG,  2, 24, 0, signed,   FALSE),
-  RXREL (RH_32_NEG,  2, 32, 0, signed,   FALSE),
-  RXREL (RH_DIFF,    2, 32, 0, signed,   FALSE),
+  RXREL (RH_8_NEG,   0,	 8, 0, signed,	 FALSE),
+  RXREL (RH_16_NEG,  1, 16, 0, signed,	 FALSE),
+  RXREL (RH_24_NEG,  2, 24, 0, signed,	 FALSE),
+  RXREL (RH_32_NEG,  2, 32, 0, signed,	 FALSE),
+  RXREL (RH_DIFF,    2, 32, 0, signed,	 FALSE),
   RXREL (RH_GPRELB,  1, 16, 0, unsigned, FALSE),
   RXREL (RH_GPRELW,  1, 16, 0, unsigned, FALSE),
   RXREL (RH_GPRELL,  1, 16, 0, unsigned, FALSE),
-  RXREL (RH_RELAX,   0,  0, 0, dont,     FALSE),
+  RXREL (RH_RELAX,   0,	 0, 0, dont,	 FALSE),
 
   EMPTY_HOWTO (0x2e),
   EMPTY_HOWTO (0x2f),
@@ -118,14 +119,14 @@ static reloc_howto_type rx_elf_howto_tab
   EMPTY_HOWTO (0x3f),
   EMPTY_HOWTO (0x40),
 
-  RXREL (ABS32,        2, 32, 0, dont,     FALSE),
+  RXREL (ABS32,	       2, 32, 0, dont,	   FALSE),
   RXREL (ABS24S,       2, 24, 0, signed,   FALSE),
-  RXREL (ABS16,        1, 16, 0, dont,     FALSE),
+  RXREL (ABS16,	       1, 16, 0, dont,	   FALSE),
   RXREL (ABS16U,       1, 16, 0, unsigned, FALSE),
   RXREL (ABS16S,       1, 16, 0, signed,   FALSE),
-  RXREL (ABS8,         0,  8, 0, dont,     FALSE),
-  RXREL (ABS8U,        0,  8, 0, unsigned, FALSE),
-  RXREL (ABS8S,        0,  8, 0, signed,   FALSE),
+  RXREL (ABS8,	       0,  8, 0, dont,	   FALSE),
+  RXREL (ABS8U,	       0,  8, 0, unsigned, FALSE),
+  RXREL (ABS8S,	       0,  8, 0, signed,   FALSE),
   RXREL (ABS24S_PCREL, 2, 24, 0, signed,   TRUE),
   RXREL (ABS16S_PCREL, 1, 16, 0, signed,   TRUE),
   RXREL (ABS8S_PCREL,  0,  8, 0, signed,   TRUE),
@@ -133,8 +134,8 @@ static reloc_howto_type rx_elf_howto_tab
   RXREL (ABS16UW,      1, 16, 0, unsigned, FALSE),
   RXREL (ABS8UL,       0,  8, 0, unsigned, FALSE),
   RXREL (ABS8UW,       0,  8, 0, unsigned, FALSE),
-  RXREL (ABS32_REV,    2, 32, 0, dont,     FALSE),
-  RXREL (ABS16_REV,    1, 16, 0, dont,     FALSE),
+  RXREL (ABS32_REV,    2, 32, 0, dont,	   FALSE),
+  RXREL (ABS16_REV,    1, 16, 0, dont,	   FALSE),
 
 #define STACK_REL_P(x) ((x) <= R_RX_ABS16_REV && (x) >= R_RX_ABS32)
 
@@ -181,42 +182,42 @@ static reloc_howto_type rx_elf_howto_tab
   /* A 5-bit unsigned displacement to a B/W/L address, at bit position 8/12.  */
   /* ---- ----   4--- 3210.  */
 #define R_RX_RH_ABS5p8B 0x78
-  RXREL (RH_ABS5p8B,   0,  0, 0, dont,     FALSE),
+  RXREL (RH_ABS5p8B,   0,  0, 0, dont,	   FALSE),
 #define R_RX_RH_ABS5p8W 0x79
-  RXREL (RH_ABS5p8W,   0,  0, 0, dont,     FALSE),
+  RXREL (RH_ABS5p8W,   0,  0, 0, dont,	   FALSE),
 #define R_RX_RH_ABS5p8L 0x7a
-  RXREL (RH_ABS5p8L,   0,  0, 0, dont,     FALSE),
+  RXREL (RH_ABS5p8L,   0,  0, 0, dont,	   FALSE),
   /* A 5-bit unsigned displacement to a B/W/L address, at bit position 5/12.  */
   /* ---- -432   1--- 0---.  */
 #define R_RX_RH_ABS5p5B 0x7b
-  RXREL (RH_ABS5p5B,   0,  0, 0, dont,     FALSE),
+  RXREL (RH_ABS5p5B,   0,  0, 0, dont,	   FALSE),
 #define R_RX_RH_ABS5p5W 0x7c
-  RXREL (RH_ABS5p5W,   0,  0, 0, dont,     FALSE),
+  RXREL (RH_ABS5p5W,   0,  0, 0, dont,	   FALSE),
 #define R_RX_RH_ABS5p5L 0x7d
-  RXREL (RH_ABS5p5L,   0,  0, 0, dont,     FALSE),
+  RXREL (RH_ABS5p5L,   0,  0, 0, dont,	   FALSE),
   /* A 4-bit unsigned immediate at bit position 8.  */
 #define R_RX_RH_UIMM4p8 0x7e
-  RXREL (RH_UIMM4p8,   0,  0, 0, dont,     FALSE),
+  RXREL (RH_UIMM4p8,   0,  0, 0, dont,	   FALSE),
   /* A 4-bit negative unsigned immediate at bit position 8.  */
 #define R_RX_RH_UNEG4p8 0x7f
-  RXREL (RH_UNEG4p8,   0,  0, 0, dont,     FALSE),
+  RXREL (RH_UNEG4p8,   0,  0, 0, dont,	   FALSE),
   /* End of internal relocs.  */
 
-  RXREL (SYM,       2, 32, 0, dont, FALSE),
-  RXREL (OPneg,     2, 32, 0, dont, FALSE),
-  RXREL (OPadd,     2, 32, 0, dont, FALSE),
-  RXREL (OPsub,     2, 32, 0, dont, FALSE),
-  RXREL (OPmul,     2, 32, 0, dont, FALSE),
-  RXREL (OPdiv,     2, 32, 0, dont, FALSE),
+  RXREL (SYM,	    2, 32, 0, dont, FALSE),
+  RXREL (OPneg,	    2, 32, 0, dont, FALSE),
+  RXREL (OPadd,	    2, 32, 0, dont, FALSE),
+  RXREL (OPsub,	    2, 32, 0, dont, FALSE),
+  RXREL (OPmul,	    2, 32, 0, dont, FALSE),
+  RXREL (OPdiv,	    2, 32, 0, dont, FALSE),
   RXREL (OPshla,    2, 32, 0, dont, FALSE),
   RXREL (OPshra,    2, 32, 0, dont, FALSE),
   RXREL (OPsctsize, 2, 32, 0, dont, FALSE),
   RXREL (OPscttop,  2, 32, 0, dont, FALSE),
-  RXREL (OPand,     2, 32, 0, dont, FALSE),
-  RXREL (OPor,      2, 32, 0, dont, FALSE),
-  RXREL (OPxor,     2, 32, 0, dont, FALSE),
-  RXREL (OPnot,     2, 32, 0, dont, FALSE),
-  RXREL (OPmod,     2, 32, 0, dont, FALSE),
+  RXREL (OPand,	    2, 32, 0, dont, FALSE),
+  RXREL (OPor,	    2, 32, 0, dont, FALSE),
+  RXREL (OPxor,	    2, 32, 0, dont, FALSE),
+  RXREL (OPnot,	    2, 32, 0, dont, FALSE),
+  RXREL (OPmod,	    2, 32, 0, dont, FALSE),
   RXREL (OPromtop,  2, 32, 0, dont, FALSE),
   RXREL (OPramtop,  2, 32, 0, dont, FALSE)
 };
@@ -226,7 +227,7 @@ static reloc_howto_type rx_elf_howto_tab
 struct rx_reloc_map
 {
   bfd_reloc_code_real_type  bfd_reloc_val;
-  unsigned int              rx_reloc_val;
+  unsigned int		    rx_reloc_val;
 };
 
 static const struct rx_reloc_map rx_reloc_map [] =
@@ -269,7 +270,7 @@ static const struct rx_reloc_map rx_relo
 #define BIGE(abfd)       ((abfd)->xvec->byteorder == BFD_ENDIAN_BIG)
 
 static reloc_howto_type *
-rx_reloc_type_lookup (bfd *                    abfd ATTRIBUTE_UNUSED,
+rx_reloc_type_lookup (bfd *		       abfd ATTRIBUTE_UNUSED,
 		      bfd_reloc_code_real_type code)
 {
   unsigned int i;
@@ -300,8 +301,8 @@ rx_reloc_name_lookup (bfd * abfd ATTRIBU
 /* Set the howto pointer for an RX ELF reloc.  */
 
 static void
-rx_info_to_howto_rela (bfd *               abfd ATTRIBUTE_UNUSED,
-		       arelent *           cache_ptr,
+rx_info_to_howto_rela (bfd *		   abfd ATTRIBUTE_UNUSED,
+		       arelent *	   cache_ptr,
 		       Elf_Internal_Rela * dst)
 {
   unsigned int r_type;
@@ -317,10 +318,10 @@ rx_info_to_howto_rela (bfd *            
 }
 
 static bfd_vma
-get_symbol_value (const char *            name,
+get_symbol_value (const char *		  name,
 		  struct bfd_link_info *  info,
-		  bfd *                   input_bfd,
-		  asection *              input_section,
+		  bfd *			  input_bfd,
+		  asection *		  input_section,
 		  int			  offset)
 {
   bfd_vma value = 0;
@@ -342,7 +343,7 @@ get_symbol_value (const char *          
 }
 
 static bfd_vma
-get_symbol_value_maybe (const char *            name,
+get_symbol_value_maybe (const char *		name,
 			struct bfd_link_info *  info)
 {
   bfd_vma value = 0;
@@ -363,9 +364,9 @@ get_symbol_value_maybe (const char *    
 }
 
 static bfd_vma
-get_gp (struct bfd_link_info *  info,
-	bfd *                   abfd,
-	asection *              sec,
+get_gp (struct bfd_link_info *	info,
+	bfd *			abfd,
+	asection *		sec,
 	int			offset)
 {
   static bfd_boolean cached = FALSE;
@@ -381,8 +382,8 @@ get_gp (struct bfd_link_info *  info,
 
 static bfd_vma
 get_romstart (struct bfd_link_info *  info,
-	      bfd *                   abfd,
-	      asection *              sec,
+	      bfd *		      abfd,
+	      asection *	      sec,
 	      int		      offset)
 {
   static bfd_boolean cached = FALSE;
@@ -398,8 +399,8 @@ get_romstart (struct bfd_link_info *  in
 
 static bfd_vma
 get_ramstart (struct bfd_link_info *  info,
-	      bfd *                   abfd,
-	      asection *              sec,
+	      bfd *		      abfd,
+	      asection *	      sec,
 	      int		      offset)
 {
   static bfd_boolean cached = FALSE;
@@ -421,9 +422,9 @@ static unsigned int rx_stack_top;
   do						\
     {						\
       if (rx_stack_top < NUM_STACK_ENTRIES)	\
-        rx_stack [rx_stack_top ++] = (val);	\
+	rx_stack [rx_stack_top ++] = (val);	\
       else					\
-        r = bfd_reloc_dangerous;		\
+	r = bfd_reloc_dangerous;		\
     }						\
   while (0)
 
@@ -431,9 +432,9 @@ static unsigned int rx_stack_top;
   do						\
     {						\
       if (rx_stack_top > 0)			\
-        (dest) = rx_stack [-- rx_stack_top];	\
+	(dest) = rx_stack [-- rx_stack_top];	\
       else					\
-        (dest) = 0, r = bfd_reloc_dangerous;	\
+	(dest) = 0, r = bfd_reloc_dangerous;	\
     }						\
   while (0)
 
@@ -472,19 +473,19 @@ static unsigned int rx_stack_top;
 
 static bfd_boolean
 rx_elf_relocate_section
-    (bfd *                   output_bfd,
+    (bfd *		     output_bfd,
      struct bfd_link_info *  info,
-     bfd *                   input_bfd,
-     asection *              input_section,
-     bfd_byte *              contents,
+     bfd *		     input_bfd,
+     asection *		     input_section,
+     bfd_byte *		     contents,
      Elf_Internal_Rela *     relocs,
-     Elf_Internal_Sym *      local_syms,
-     asection **             local_sections)
+     Elf_Internal_Sym *	     local_syms,
+     asection **	     local_sections)
 {
-  Elf_Internal_Shdr *           symtab_hdr;
+  Elf_Internal_Shdr *		symtab_hdr;
   struct elf_link_hash_entry ** sym_hashes;
-  Elf_Internal_Rela *           rel;
-  Elf_Internal_Rela *           relend;
+  Elf_Internal_Rela *		rel;
+  Elf_Internal_Rela *		relend;
   bfd_boolean			pid_mode;
   bfd_boolean			saw_subtract = FALSE;
   const char *			table_default_cache = NULL;
@@ -501,22 +502,22 @@ rx_elf_relocate_section
   relend     = relocs + input_section->reloc_count;
   for (rel = relocs; rel < relend; rel ++)
     {
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
+      reloc_howto_type *	   howto;
+      unsigned long		   r_symndx;
+      Elf_Internal_Sym *	   sym;
+      asection *		   sec;
       struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 name = NULL;
-      bfd_boolean                  unresolved_reloc = TRUE;
-      int                          r_type;
+      bfd_vma			   relocation;
+      bfd_reloc_status_type	   r;
+      const char *		   name = NULL;
+      bfd_boolean		   unresolved_reloc = TRUE;
+      int			   r_type;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       r_symndx = ELF32_R_SYM (rel->r_info);
 
       howto  = rx_elf_howto_table + ELF32_R_TYPE (rel->r_info);
-      h      = NULL;
+      h	     = NULL;
       sym    = NULL;
       sec    = NULL;
       relocation = 0;
@@ -630,9 +631,9 @@ rx_elf_relocate_section
       if (bfd_link_relocatable (info))
 	{
 	  /* This is a relocatable link.  We don't have to change
-             anything, unless the reloc is against a section symbol,
-             in which case we have to adjust according to where the
-             section symbol winds up in the output section.  */
+	     anything, unless the reloc is against a section symbol,
+	     in which case we have to adjust according to where the
+	     section symbol winds up in the output section.  */
 	  if (sym != NULL && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
 	    rel->r_addend += sec->output_offset;
 	  continue;
@@ -675,7 +676,7 @@ rx_elf_relocate_section
   do									\
     {									\
       if (pid_mode							\
-          && sec != NULL						\
+	  && sec != NULL						\
 	  && sec->flags & SEC_READONLY					\
 	  && !(input_section->flags & SEC_DEBUGGING)			\
 	  && strcmp (name, "__pid_base") != 0				\
@@ -683,7 +684,7 @@ rx_elf_relocate_section
 	  && strcmp (name, "__romdatastart") != 0			\
 	  && !saw_subtract)						\
 	/* xgettext:c-format */						\
-	_bfd_error_handler (_("%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)"), \
+	_bfd_error_handler (_("%B(%A): unsafe PID relocation %s at %#Lx (against %s in %s)"), \
 			    input_bfd, input_section, howto->name,	\
 			    input_section->output_section->vma + input_section->output_offset + rel->r_offset, \
 			    name, sec->name);				\
@@ -1538,14 +1539,14 @@ elf32_rx_relax_delete_bytes (bfd *abfd, 
 			     Elf_Internal_Rela *irelstart)
 {
   Elf_Internal_Shdr * symtab_hdr;
-  unsigned int        sec_shndx;
-  bfd_byte *          contents;
+  unsigned int	      sec_shndx;
+  bfd_byte *	      contents;
   Elf_Internal_Rela * irel;
   Elf_Internal_Rela * irelend;
   Elf_Internal_Sym *  isym;
   Elf_Internal_Sym *  isymend;
-  bfd_vma             toaddr;
-  unsigned int        symcount;
+  bfd_vma	      toaddr;
+  unsigned int	      symcount;
   struct elf_link_hash_entry ** sym_hashes;
   struct elf_link_hash_entry ** end_hashes;
 
@@ -1562,7 +1563,7 @@ elf32_rx_relax_delete_bytes (bfd *abfd, 
   if (alignment_rel)
     toaddr = alignment_rel->r_offset;
 
-  BFD_ASSERT (toaddr > addr);  
+  BFD_ASSERT (toaddr > addr);
 
   /* Actually delete the bytes.  */
   memmove (contents + addr, contents + addr + count,
@@ -1713,16 +1714,16 @@ reloc_bubblesort (Elf_Internal_Rela * r,
 		       lrel, abfd, sec, link_info, scale)
 
 static bfd_vma
-rx_offset_for_reloc (bfd *                    abfd,
+rx_offset_for_reloc (bfd *		      abfd,
 		     Elf_Internal_Rela *      rel,
 		     Elf_Internal_Shdr *      symtab_hdr,
 		     Elf_External_Sym_Shndx * shndx_buf ATTRIBUTE_UNUSED,
-		     Elf_Internal_Sym *       intsyms,
+		     Elf_Internal_Sym *	      intsyms,
 		     Elf_Internal_Rela **     lrel,
-		     bfd *                    input_bfd,
-		     asection *               input_section,
+		     bfd *		      input_bfd,
+		     asection *		      input_section,
 		     struct bfd_link_info *   info,
-		     int *                    scale)
+		     int *		      scale)
 {
   bfd_vma symval;
   bfd_reloc_status_type r;
@@ -1965,11 +1966,11 @@ move_reloc (Elf_Internal_Rela * irel, El
 /* Relax one section.  */
 
 static bfd_boolean
-elf32_rx_relax_section (bfd *                  abfd,
-			asection *             sec,
+elf32_rx_relax_section (bfd *		       abfd,
+			asection *	       sec,
 			struct bfd_link_info * link_info,
-			bfd_boolean *          again,
-			bfd_boolean            allow_pcrel3)
+			bfd_boolean *	       again,
+			bfd_boolean	       allow_pcrel3)
 {
   Elf_Internal_Shdr * symtab_hdr;
   Elf_Internal_Shdr * shndx_hdr;
@@ -1979,8 +1980,8 @@ elf32_rx_relax_section (bfd *           
   Elf_Internal_Rela * irelend;
   Elf_Internal_Rela * next_alignment;
   Elf_Internal_Rela * prev_alignment;
-  bfd_byte *          contents = NULL;
-  bfd_byte *          free_contents = NULL;
+  bfd_byte *	      contents = NULL;
+  bfd_byte *	      free_contents = NULL;
   Elf_Internal_Sym *  intsyms = NULL;
   Elf_Internal_Sym *  free_intsyms = NULL;
   Elf_External_Sym_Shndx * shndx_buf = NULL;
@@ -2167,9 +2168,9 @@ elf32_rx_relax_section (bfd *           
 	 reloc entry (such as gp-rel symbols).  */
 
       /* Get the value of the symbol referred to by the reloc.  Just
-         in case this is the last reloc in the list, use the RL's
-         addend to choose between this reloc (no addend) or the next
-         (yes addend, which means at least one following reloc).  */
+	 in case this is the last reloc in the list, use the RL's
+	 addend to choose between this reloc (no addend) or the next
+	 (yes addend, which means at least one following reloc).  */
 
       /* srel points to the "current" reloction for this insn -
 	 actually the last reloc for a given operand, which is the one
@@ -2189,7 +2190,7 @@ elf32_rx_relax_section (bfd *           
 #define SNIPNR(offset, nbytes) \
       elf32_rx_relax_delete_bytes (abfd, sec, (insn - contents) + offset, nbytes, next_alignment, 0, internal_relocs);
 #define SNIP(offset, nbytes, newtype) \
-        SNIPNR (offset, nbytes);						\
+	SNIPNR (offset, nbytes);						\
 	srel->r_info = ELF32_R_INFO (ELF32_R_SYM (srel->r_info), newtype)
 
       /* The order of these bit tests must match the order that the
@@ -3023,10 +3024,10 @@ elf32_rx_relax_section (bfd *           
 }
 
 static bfd_boolean
-elf32_rx_relax_section_wrapper (bfd *                  abfd,
-				asection *             sec,
+elf32_rx_relax_section_wrapper (bfd *		       abfd,
+				asection *	       sec,
 				struct bfd_link_info * link_info,
-				bfd_boolean *          again)
+				bfd_boolean *	       again)
 {
   return elf32_rx_relax_section (abfd, sec, link_info, again, FALSE);
 }
@@ -3187,7 +3188,7 @@ elf32_rx_machine (bfd * abfd ATTRIBUTE_U
 {
 #if 0 /* FIXME: EF_RX_CPU_MASK collides with E_FLAG_RX_...
 	 Need to sort out how these flag bits are used.
-         For now we assume that the flags are OK.  */
+	 For now we assume that the flags are OK.  */
   if ((elf_elfheader (abfd)->e_flags & EF_RX_CPU_MASK) == EF_RX_CPU_RX)
 #endif
     return bfd_mach_rx;
@@ -3394,9 +3395,9 @@ rx_get_reloc (long reloc)
    what you'd get by default.  */
 
 static bfd_boolean
-rx_get_section_contents (bfd *         abfd,
+rx_get_section_contents (bfd *	       abfd,
 			 sec_ptr       section,
-			 void *        location,
+			 void *	       location,
 			 file_ptr      offset,
 			 bfd_size_type count)
 {
@@ -3421,11 +3422,11 @@ rx_get_section_contents (bfd *         a
 
       /* Fetch and swap unaligned bytes at the beginning.  */
       if (offset % 4)
-        {
+	{
 	  char buf[4];
 
 	  rv = _bfd_generic_get_section_contents (abfd, section, buf,
-	                                          (offset & -4), 4);
+						  (offset & -4), 4);
 	  if (!rv)
 	    return FALSE;
 
@@ -3463,7 +3464,7 @@ rx_get_section_contents (bfd *         a
 
 	  /* Fetch the end bytes.  */
 	  rv = _bfd_generic_get_section_contents (abfd, section, buf,
-	                                          offset + count - end_cnt, 4);
+						  offset + count - end_cnt, 4);
 	  if (!rv)
 	    return FALSE;
 
@@ -3479,7 +3480,7 @@ rx_get_section_contents (bfd *         a
 
 #ifdef DJDEBUG
 static bfd_boolean
-rx2_set_section_contents (bfd *        abfd,
+rx2_set_section_contents (bfd *	       abfd,
 			 sec_ptr       section,
 			 const void *  location,
 			 file_ptr      offset,
@@ -3510,7 +3511,7 @@ rx2_set_section_contents (bfd *        a
 #endif
 
 static bfd_boolean
-rx_set_section_contents (bfd *         abfd,
+rx_set_section_contents (bfd *	       abfd,
 			 sec_ptr       section,
 			 const void *  location,
 			 file_ptr      offset,
@@ -3691,10 +3692,10 @@ elf32_rx_modify_program_headers (bfd * a
    when we do not want their contents byte reversed.  */
 static const struct bfd_elf_special_section elf32_rx_special_sections[] =
 {
-  { STRING_COMMA_LEN (".init_array"),    0, SHT_INIT_ARRAY, SHF_ALLOC + SHF_EXECINSTR },
-  { STRING_COMMA_LEN (".fini_array"),    0, SHT_FINI_ARRAY, SHF_ALLOC + SHF_EXECINSTR },
+  { STRING_COMMA_LEN (".init_array"),	 0, SHT_INIT_ARRAY, SHF_ALLOC + SHF_EXECINSTR },
+  { STRING_COMMA_LEN (".fini_array"),	 0, SHT_FINI_ARRAY, SHF_ALLOC + SHF_EXECINSTR },
   { STRING_COMMA_LEN (".preinit_array"), 0, SHT_PREINIT_ARRAY, SHF_ALLOC + SHF_EXECINSTR },
-  { NULL,                        0,      0, 0,            0 }
+  { NULL,			 0,	 0, 0,		  0 }
 };
 
 typedef struct {
@@ -3798,7 +3799,7 @@ rx_table_find (struct bfd_hash_entry *ve
    called once per input object file.  */
 static bfd_boolean
 rx_check_directives
-    (bfd *                     abfd ATTRIBUTE_UNUSED,
+    (bfd *		       abfd ATTRIBUTE_UNUSED,
      struct bfd_link_info *    info ATTRIBUTE_UNUSED)
 {
   RX_Table_Info stuff;
@@ -4001,7 +4002,7 @@ rx_additional_link_map_text (bfd *obfd, 
 #define elf_info_to_howto			rx_info_to_howto_rela
 #define elf_backend_object_p			rx_elf_object_p
 #define elf_backend_relocate_section		rx_elf_relocate_section
-#define elf_symbol_leading_char                 ('_')
+#define elf_symbol_leading_char			('_')
 #define elf_backend_can_gc_sections		1
 #define elf_backend_modify_program_headers	elf32_rx_modify_program_headers
 
@@ -4014,7 +4015,7 @@ rx_additional_link_map_text (bfd *obfd, 
 #define bfd_elf32_set_section_contents		rx_set_section_contents
 #define bfd_elf32_bfd_final_link		rx_final_link
 #define bfd_elf32_bfd_relax_section		elf32_rx_relax_section_wrapper
-#define elf_backend_special_sections	        elf32_rx_special_sections
+#define elf_backend_special_sections		elf32_rx_special_sections
 #define elf_backend_check_directives		rx_check_directives
 
 #include "elf32-target.h"
@@ -4023,11 +4024,11 @@ rx_additional_link_map_text (bfd *obfd, 
    section get/set hooks, for times when we want to preserve the
    pre-swapped .text sections (like objcopy).  */
 
-#undef  TARGET_BIG_SYM
+#undef	TARGET_BIG_SYM
 #define TARGET_BIG_SYM		rx_elf32_be_ns_vec
-#undef  TARGET_BIG_NAME
+#undef	TARGET_BIG_NAME
 #define TARGET_BIG_NAME		"elf32-rx-be-ns"
-#undef  TARGET_LITTLE_SYM
+#undef	TARGET_LITTLE_SYM
 
 #undef bfd_elf32_get_section_contents
 #undef bfd_elf32_set_section_contents
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-rx.h ./bfd/elf32-rx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-rx.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-rx.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Renesas RX specific support for 32-bit ELF.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -15,7 +15,7 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
-
-void rx_additional_link_map_text (bfd *obfd, struct bfd_link_info *info, FILE *mapfile);
+extern void rx_additional_link_map_text (bfd *obfd, struct bfd_link_info *info, FILE *mapfile);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-s390.c ./bfd/elf32-s390.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-s390.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-s390.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* IBM S/390-specific support for 32-bit ELF
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Carl B. Pedersen and Martin Schwidefsky.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -52,69 +52,69 @@ static reloc_howto_type elf_howto_table[
 	 0,			/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  HOWTO(R_390_8,         0, 0,  8, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_8",        FALSE, 0,0x000000ff, FALSE),
-  HOWTO(R_390_12,        0, 1, 12, FALSE, 0, complain_overflow_dont,
-	bfd_elf_generic_reloc, "R_390_12",       FALSE, 0,0x00000fff, FALSE),
-  HOWTO(R_390_16,        0, 1, 16, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_16",       FALSE, 0,0x0000ffff, FALSE),
-  HOWTO(R_390_32,        0, 2, 32, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_32",       FALSE, 0,0xffffffff, FALSE),
+  HOWTO(R_390_8,	 0, 0,	8, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_8",	 FALSE, 0,0x000000ff, FALSE),
+  HOWTO(R_390_12,	 0, 1, 12, FALSE, 0, complain_overflow_dont,
+	bfd_elf_generic_reloc, "R_390_12",	 FALSE, 0,0x00000fff, FALSE),
+  HOWTO(R_390_16,	 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_16",	 FALSE, 0,0x0000ffff, FALSE),
+  HOWTO(R_390_32,	 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_32",	 FALSE, 0,0xffffffff, FALSE),
   HOWTO(R_390_PC32,	 0, 2, 32,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PC32",     FALSE, 0,0xffffffff, TRUE),
+	bfd_elf_generic_reloc, "R_390_PC32",	 FALSE, 0,0xffffffff, TRUE),
   HOWTO(R_390_GOT12,	 0, 1, 12, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_GOT12",    FALSE, 0,0x00000fff, FALSE),
+	bfd_elf_generic_reloc, "R_390_GOT12",	 FALSE, 0,0x00000fff, FALSE),
   HOWTO(R_390_GOT32,	 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_GOT32",    FALSE, 0,0xffffffff, FALSE),
+	bfd_elf_generic_reloc, "R_390_GOT32",	 FALSE, 0,0xffffffff, FALSE),
   HOWTO(R_390_PLT32,	 0, 2, 32,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PLT32",    FALSE, 0,0xffffffff, TRUE),
-  HOWTO(R_390_COPY,      0, 2, 32, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_COPY",     FALSE, 0,0xffffffff, FALSE),
-  HOWTO(R_390_GLOB_DAT,  0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_PLT32",	 FALSE, 0,0xffffffff, TRUE),
+  HOWTO(R_390_COPY,	 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_COPY",	 FALSE, 0,0xffffffff, FALSE),
+  HOWTO(R_390_GLOB_DAT,	 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GLOB_DAT", FALSE, 0,0xffffffff, FALSE),
-  HOWTO(R_390_JMP_SLOT,  0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_JMP_SLOT,	 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_JMP_SLOT", FALSE, 0,0xffffffff, FALSE),
-  HOWTO(R_390_RELATIVE,  0, 2, 32,  TRUE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_RELATIVE,	 0, 2, 32,  TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_RELATIVE", FALSE, 0,0xffffffff, FALSE),
-  HOWTO(R_390_GOTOFF32,  0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_GOTOFF32,	 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GOTOFF32", FALSE, 0,0xffffffff, FALSE),
-  HOWTO(R_390_GOTPC,     0, 2, 32,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_GOTPC",    FALSE, 0,0xffffffff, TRUE),
-  HOWTO(R_390_GOT16,     0, 1, 16, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_GOT16",    FALSE, 0,0x0000ffff, FALSE),
-  HOWTO(R_390_PC16,      0, 1, 16,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PC16",     FALSE, 0,0x0000ffff, TRUE),
-  HOWTO(R_390_PC16DBL,   1, 1, 16,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PC16DBL",  FALSE, 0,0x0000ffff, TRUE),
-  HOWTO(R_390_PLT16DBL,  1, 1, 16,  TRUE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_GOTPC,	 0, 2, 32,  TRUE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_GOTPC",	 FALSE, 0,0xffffffff, TRUE),
+  HOWTO(R_390_GOT16,	 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_GOT16",	 FALSE, 0,0x0000ffff, FALSE),
+  HOWTO(R_390_PC16,	 0, 1, 16,  TRUE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_PC16",	 FALSE, 0,0x0000ffff, TRUE),
+  HOWTO(R_390_PC16DBL,	 1, 1, 16,  TRUE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_PC16DBL",	 FALSE, 0,0x0000ffff, TRUE),
+  HOWTO(R_390_PLT16DBL,	 1, 1, 16,  TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_PLT16DBL", FALSE, 0,0x0000ffff, TRUE),
   HOWTO(R_390_PC32DBL,	 1, 2, 32,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PC32DBL",  FALSE, 0,0xffffffff, TRUE),
+	bfd_elf_generic_reloc, "R_390_PC32DBL",	 FALSE, 0,0xffffffff, TRUE),
   HOWTO(R_390_PLT32DBL,	 1, 2, 32,  TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_PLT32DBL", FALSE, 0,0xffffffff, TRUE),
-  HOWTO(R_390_GOTPCDBL,  1, 2, 32,  TRUE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_GOTPCDBL,	 1, 2, 32,  TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GOTPCDBL", FALSE, 0,0xffffffff, TRUE),
   EMPTY_HOWTO (R_390_64),	/* Empty entry for R_390_64.  */
   EMPTY_HOWTO (R_390_PC64),	/* Empty entry for R_390_PC64.  */
   EMPTY_HOWTO (R_390_GOT64),	/* Empty entry for R_390_GOT64.  */
   EMPTY_HOWTO (R_390_PLT64),	/* Empty entry for R_390_PLT64.  */
   HOWTO(R_390_GOTENT,	 1, 2, 32,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_GOTENT",   FALSE, 0,0xffffffff, TRUE),
-  HOWTO(R_390_GOTOFF16,  0, 1, 16, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_GOTENT",	 FALSE, 0,0xffffffff, TRUE),
+  HOWTO(R_390_GOTOFF16,	 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GOTOFF16", FALSE, 0,0x0000ffff, FALSE),
   EMPTY_HOWTO (R_390_GOTOFF64),	/* Empty entry for R_390_GOTOFF64.  */
-  HOWTO(R_390_GOTPLT12,  0, 1, 12, FALSE, 0, complain_overflow_dont,
+  HOWTO(R_390_GOTPLT12,	 0, 1, 12, FALSE, 0, complain_overflow_dont,
 	bfd_elf_generic_reloc, "R_390_GOTPLT12", FALSE, 0,0x00000fff, FALSE),
-  HOWTO(R_390_GOTPLT16,  0, 1, 16, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_GOTPLT16,	 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GOTPLT16", FALSE, 0,0x0000ffff, FALSE),
-  HOWTO(R_390_GOTPLT32,  0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_GOTPLT32,	 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GOTPLT32", FALSE, 0,0xffffffff, FALSE),
   EMPTY_HOWTO (R_390_GOTPLT64),	/* Empty entry for R_390_GOTPLT64.  */
   HOWTO(R_390_GOTPLTENT, 1, 2, 32,  TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GOTPLTENT",FALSE, 0,0xffffffff, TRUE),
-  HOWTO(R_390_PLTOFF16,  0, 1, 16, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_PLTOFF16,	 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_PLTOFF16", FALSE, 0,0x0000ffff, FALSE),
-  HOWTO(R_390_PLTOFF32,  0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_PLTOFF32,	 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_PLTOFF32", FALSE, 0,0xffffffff, FALSE),
   EMPTY_HOWTO (R_390_PLTOFF64),	/* Empty entry for R_390_PLTOFF64.  */
   HOWTO(R_390_TLS_LOAD, 0, 0, 0, FALSE, 0, complain_overflow_dont,
@@ -151,22 +151,22 @@ static reloc_howto_type elf_howto_table[
 	bfd_elf_generic_reloc, "R_390_TLS_DTPOFF", FALSE, 0, 0xffffffff, FALSE),
   HOWTO(R_390_TLS_TPOFF, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_TLS_TPOFF", FALSE, 0, 0xffffffff, FALSE),
-  HOWTO(R_390_20,        0, 2, 20, FALSE, 8, complain_overflow_dont,
+  HOWTO(R_390_20,	 0, 2, 20, FALSE, 8, complain_overflow_dont,
 	s390_elf_ldisp_reloc, "R_390_20",      FALSE, 0,0x0fffff00, FALSE),
   HOWTO(R_390_GOT20,	 0, 2, 20, FALSE, 8, complain_overflow_dont,
 	s390_elf_ldisp_reloc, "R_390_GOT20",   FALSE, 0,0x0fffff00, FALSE),
-  HOWTO(R_390_GOTPLT20,  0, 2, 20, FALSE, 8, complain_overflow_dont,
+  HOWTO(R_390_GOTPLT20,	 0, 2, 20, FALSE, 8, complain_overflow_dont,
 	s390_elf_ldisp_reloc, "R_390_GOTPLT20", FALSE, 0,0x0fffff00, FALSE),
   HOWTO(R_390_TLS_GOTIE20, 0, 2, 20, FALSE, 8, complain_overflow_dont,
 	s390_elf_ldisp_reloc, "R_390_TLS_GOTIE20", FALSE, 0,0x0fffff00, FALSE),
   HOWTO(R_390_IRELATIVE, 0, 2, 32, TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_IRELATIVE", FALSE, 0, 0xffffffff, FALSE),
-  HOWTO(R_390_PC12DBL,   1, 1, 12,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PC12DBL",  FALSE, 0,0x00000fff, TRUE),
+  HOWTO(R_390_PC12DBL,	 1, 1, 12,  TRUE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_PC12DBL",	 FALSE, 0,0x00000fff, TRUE),
   HOWTO(R_390_PLT12DBL,	 1, 1, 12,  TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_PLT12DBL", FALSE, 0,0x00000fff, TRUE),
-  HOWTO(R_390_PC24DBL,   1, 2, 24,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PC24DBL",  FALSE, 0,0x00ffffff, TRUE),
+  HOWTO(R_390_PC24DBL,	 1, 2, 24,  TRUE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_PC24DBL",	 FALSE, 0,0x00ffffff, TRUE),
   HOWTO(R_390_PLT24DBL,	 1, 2, 24,  TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_PLT24DBL", FALSE, 0,0x00ffffff, TRUE),
 };
@@ -478,100 +478,100 @@ elf_s390_is_local_label_name (bfd *abfd,
    and insert the address in the GOT.
 
   Note: 390 can only address +- 64 K relative.
-        We check if offset > 65536, then make a relative branch -64xxx
-        back to a previous defined branch
+	We check if offset > 65536, then make a relative branch -64xxx
+	back to a previous defined branch
 
-PLT1: BASR 1,0         # 2 bytes
-      L    1,22(1)     # 4 bytes  Load offset in GOT in r 1
-      L    1,(1,12)    # 4 bytes  Load address from GOT in r1
-      BCR  15,1        # 2 bytes  Jump to address
-RET1: BASR 1,0         # 2 bytes  Return from GOT 1st time
-      L    1,14(1)     # 4 bytes  Load offset in symol table in r1
+PLT1: BASR 1,0	       # 2 bytes
+      L	   1,22(1)     # 4 bytes  Load offset in GOT in r 1
+      L	   1,(1,12)    # 4 bytes  Load address from GOT in r1
+      BCR  15,1	       # 2 bytes  Jump to address
+RET1: BASR 1,0	       # 2 bytes  Return from GOT 1st time
+      L	   1,14(1)     # 4 bytes  Load offset in symol table in r1
       BRC  15,-x       # 4 bytes  Jump to start of PLT
-      .word 0          # 2 bytes filler
-      .long ?          # 4 bytes  offset in GOT
-      .long ?          # 4 bytes  offset into rela.plt
+      .word 0	       # 2 bytes filler
+      .long ?	       # 4 bytes  offset in GOT
+      .long ?	       # 4 bytes  offset into rela.plt
 
   This was the general case. There are two additional, optimizes PLT
   definitions. One for GOT offsets < 4096 and one for GOT offsets < 32768.
   First the one for GOT offsets < 4096:
 
-PLT1: L    1,<offset>(12) # 4 bytes  Load address from GOT in R1
-      BCR  15,1           # 2 bytes  Jump to address
-      .word 0,0,0         # 6 bytes  filler
-RET1: BASR 1,0            # 2 bytes  Return from GOT 1st time
-      L    1,14(1)        # 4 bytes  Load offset in rela.plt in r1
-      BRC  15,-x          # 4 bytes  Jump to start of PLT
-      .word 0,0,0         # 6 bytes  filler
-      .long ?             # 4 bytes  offset into rela.plt
+PLT1: L	   1,<offset>(12) # 4 bytes  Load address from GOT in R1
+      BCR  15,1		  # 2 bytes  Jump to address
+      .word 0,0,0	  # 6 bytes  filler
+RET1: BASR 1,0		  # 2 bytes  Return from GOT 1st time
+      L	   1,14(1)	  # 4 bytes  Load offset in rela.plt in r1
+      BRC  15,-x	  # 4 bytes  Jump to start of PLT
+      .word 0,0,0	  # 6 bytes  filler
+      .long ?		  # 4 bytes  offset into rela.plt
 
   Second the one for GOT offsets < 32768:
 
-PLT1: LHI  1,<offset>     # 4 bytes  Load offset in GOT to r1
-      L    1,(1,12)       # 4 bytes  Load address from GOT to r1
-      BCR  15,1           # 2 bytes  Jump to address
-      .word 0             # 2 bytes  filler
-RET1: BASR 1,0            # 2 bytes  Return from GOT 1st time
-      L    1,14(1)        # 4 bytes  Load offset in rela.plt in r1
-      BRC  15,-x          # 4 bytes  Jump to start of PLT
-      .word 0,0,0         # 6 bytes  filler
-      .long ?             # 4 bytes  offset into rela.plt
+PLT1: LHI  1,<offset>	  # 4 bytes  Load offset in GOT to r1
+      L	   1,(1,12)	  # 4 bytes  Load address from GOT to r1
+      BCR  15,1		  # 2 bytes  Jump to address
+      .word 0		  # 2 bytes  filler
+RET1: BASR 1,0		  # 2 bytes  Return from GOT 1st time
+      L	   1,14(1)	  # 4 bytes  Load offset in rela.plt in r1
+      BRC  15,-x	  # 4 bytes  Jump to start of PLT
+      .word 0,0,0	  # 6 bytes  filler
+      .long ?		  # 4 bytes  offset into rela.plt
 
 Total = 32 bytes per PLT entry
 
    The code for static build PLT entries looks like this:
 
-PLT1: BASR 1,0         # 2 bytes
-      L    1,22(1)     # 4 bytes  Load address of GOT entry
-      L    1,0(0,1)    # 4 bytes  Load address from GOT in r1
-      BCR  15,1        # 2 bytes  Jump to address
-RET1: BASR 1,0         # 2 bytes  Return from GOT 1st time
-      L    1,14(1)     # 4 bytes  Load offset in symbol table in r1
+PLT1: BASR 1,0	       # 2 bytes
+      L	   1,22(1)     # 4 bytes  Load address of GOT entry
+      L	   1,0(0,1)    # 4 bytes  Load address from GOT in r1
+      BCR  15,1	       # 2 bytes  Jump to address
+RET1: BASR 1,0	       # 2 bytes  Return from GOT 1st time
+      L	   1,14(1)     # 4 bytes  Load offset in symbol table in r1
       BRC  15,-x       # 4 bytes  Jump to start of PLT
-      .word 0          # 2 bytes  filler
-      .long ?          # 4 bytes  address of GOT entry
-      .long ?          # 4 bytes  offset into rela.plt  */
+      .word 0	       # 2 bytes  filler
+      .long ?	       # 4 bytes  address of GOT entry
+      .long ?	       # 4 bytes  offset into rela.plt  */
 
 static const bfd_byte elf_s390_plt_entry[PLT_ENTRY_SIZE] =
   {
-    0x0d, 0x10,                             /* basr    %r1,%r0     */
-    0x58, 0x10, 0x10, 0x16,                 /* l       %r1,22(%r1) */
-    0x58, 0x10, 0x10, 0x00,                 /* l       %r1,0(%r1)  */
-    0x07, 0xf1,                             /* br      %r1         */
-    0x0d, 0x10,                             /* basr    %r1,%r0     */
-    0x58, 0x10, 0x10, 0x0e,                 /* l       %r1,14(%r1) */
-    0xa7, 0xf4, 0x00, 0x00,                 /* j       first plt   */
-    0x00, 0x00,                             /* padding             */
-    0x00, 0x00, 0x00, 0x00,                 /* GOT offset          */
-    0x00, 0x00, 0x00, 0x00                  /* rela.plt offset     */
+    0x0d, 0x10,				    /* basr    %r1,%r0	   */
+    0x58, 0x10, 0x10, 0x16,		    /* l       %r1,22(%r1) */
+    0x58, 0x10, 0x10, 0x00,		    /* l       %r1,0(%r1)  */
+    0x07, 0xf1,				    /* br      %r1	   */
+    0x0d, 0x10,				    /* basr    %r1,%r0	   */
+    0x58, 0x10, 0x10, 0x0e,		    /* l       %r1,14(%r1) */
+    0xa7, 0xf4, 0x00, 0x00,		    /* j       first plt   */
+    0x00, 0x00,				    /* padding		   */
+    0x00, 0x00, 0x00, 0x00,		    /* GOT offset	   */
+    0x00, 0x00, 0x00, 0x00		    /* rela.plt offset	   */
   };
 
 /* Generic PLT pic entry.  */
 static const bfd_byte elf_s390_plt_pic_entry[PLT_ENTRY_SIZE] =
   {
-    0x0d, 0x10,                             /* basr    %r1,%r0         */
-    0x58, 0x10, 0x10, 0x16,                 /* l       %r1,22(%r1)     */
-    0x58, 0x11, 0xc0, 0x00,                 /* l       %r1,0(%r1,%r12) */
-    0x07, 0xf1,                             /* br      %r1             */
-    0x0d, 0x10,                             /* basr    %r1,%r0         */
-    0x58, 0x10, 0x10, 0x0e,                 /* l       %r1,14(%r1)     */
-    0xa7, 0xf4, 0x00, 0x00,                 /* j       first plt       */
-    0x00, 0x00,                             /* padding                 */
-    0x00, 0x00, 0x00, 0x00,                 /* GOT offset              */
-    0x00, 0x00, 0x00, 0x00                  /* rela.plt offset         */
+    0x0d, 0x10,				    /* basr    %r1,%r0	       */
+    0x58, 0x10, 0x10, 0x16,		    /* l       %r1,22(%r1)     */
+    0x58, 0x11, 0xc0, 0x00,		    /* l       %r1,0(%r1,%r12) */
+    0x07, 0xf1,				    /* br      %r1	       */
+    0x0d, 0x10,				    /* basr    %r1,%r0	       */
+    0x58, 0x10, 0x10, 0x0e,		    /* l       %r1,14(%r1)     */
+    0xa7, 0xf4, 0x00, 0x00,		    /* j       first plt       */
+    0x00, 0x00,				    /* padding		       */
+    0x00, 0x00, 0x00, 0x00,		    /* GOT offset	       */
+    0x00, 0x00, 0x00, 0x00		    /* rela.plt offset	       */
   };
 
 /* Optimized PLT pic entry for GOT offset < 4k.  xx will be replaced
    when generating the PLT slot with the GOT offset.  */
 static const bfd_byte elf_s390_plt_pic12_entry[PLT_ENTRY_SIZE] =
   {
-    0x58, 0x10, 0xc0, 0x00,                 /* l       %r1,xx(%r12) */
-    0x07, 0xf1,                             /* br      %r1          */
-    0x00, 0x00, 0x00, 0x00,                 /* padding              */
+    0x58, 0x10, 0xc0, 0x00,		    /* l       %r1,xx(%r12) */
+    0x07, 0xf1,				    /* br      %r1	    */
+    0x00, 0x00, 0x00, 0x00,		    /* padding		    */
     0x00, 0x00,
-    0x0d, 0x10,                             /* basr    %r1,%r0      */
-    0x58, 0x10, 0x10, 0x0e,                 /* l       %r1,14(%r1)  */
-    0xa7, 0xf4, 0x00, 0x00,                 /* j       first plt    */
+    0x0d, 0x10,				    /* basr    %r1,%r0	    */
+    0x58, 0x10, 0x10, 0x0e,		    /* l       %r1,14(%r1)  */
+    0xa7, 0xf4, 0x00, 0x00,		    /* j       first plt    */
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00
   };
@@ -580,13 +580,13 @@ static const bfd_byte elf_s390_plt_pic12
    when generating the PLT slot with the GOT offset.  */
 static const bfd_byte elf_s390_plt_pic16_entry[PLT_ENTRY_SIZE] =
   {
-    0xa7, 0x18, 0x00, 0x00,                 /* lhi     %r1,xx          */
-    0x58, 0x11, 0xc0, 0x00,                 /* l       %r1,0(%r1,%r12) */
-    0x07, 0xf1,                             /* br      %r1             */
+    0xa7, 0x18, 0x00, 0x00,		    /* lhi     %r1,xx	       */
+    0x58, 0x11, 0xc0, 0x00,		    /* l       %r1,0(%r1,%r12) */
+    0x07, 0xf1,				    /* br      %r1	       */
     0x00, 0x00,
-    0x0d, 0x10,                             /* basr    %r1,%r0         */
-    0x58, 0x10, 0x10, 0x0e,                 /* l       %r1,14(%r1)     */
-    0xa7, 0xf4, 0x00, 0x00,                 /* j       first plt       */
+    0x0d, 0x10,				    /* basr    %r1,%r0	       */
+    0x58, 0x10, 0x10, 0x0e,		    /* l       %r1,14(%r1)     */
+    0xa7, 0xf4, 0x00, 0x00,		    /* j       first plt       */
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00
@@ -599,32 +599,32 @@ static const bfd_byte elf_s390_plt_pic16
 /* The first entry in the PLT for PIC code:
 
 PLT0:
-   ST   1,28(15)  # R1 has offset into rela.plt
-   L    1,4(12)   # Get loader ino(object struct address)
-   ST   1,24(15)  # Store address
-   L    1,8(12)   # Entry address of loader in R1
-   BR   1         # Jump to loader
+   ST	1,28(15)  # R1 has offset into rela.plt
+   L	1,4(12)	  # Get loader ino(object struct address)
+   ST	1,24(15)  # Store address
+   L	1,8(12)	  # Entry address of loader in R1
+   BR	1	  # Jump to loader
 
    The first entry in the PLT for static code:
 
 PLT0:
-   ST   1,28(15)      # R1 has offset into rela.plt
+   ST	1,28(15)      # R1 has offset into rela.plt
    BASR 1,0
-   L    1,18(0,1)     # Get address of GOT
-   MVC  24(4,15),4(1) # Move loader ino to stack
-   L    1,8(1)        # Get address of loader
-   BR   1             # Jump to loader
-   .word 0            # filler
-   .long got          # address of GOT  */
+   L	1,18(0,1)     # Get address of GOT
+   MVC	24(4,15),4(1) # Move loader ino to stack
+   L	1,8(1)	      # Get address of loader
+   BR	1	      # Jump to loader
+   .word 0	      # filler
+   .long got	      # address of GOT  */
 
 static const bfd_byte elf_s390_plt_first_entry[PLT_FIRST_ENTRY_SIZE] =
   {
-    0x50, 0x10, 0xf0, 0x1c,                   /* st      %r1,28(%r15)      */
-    0x0d, 0x10,                               /* basr    %r1,%r0           */
-    0x58, 0x10, 0x10, 0x12,                   /* l       %r1,18(%r1)       */
-    0xd2, 0x03, 0xf0, 0x18, 0x10, 0x04,       /* mvc     24(4,%r15),4(%r1) */
-    0x58, 0x10, 0x10, 0x08,                   /* l       %r1,8(%r1)        */
-    0x07, 0xf1,                               /* br      %r1               */
+    0x50, 0x10, 0xf0, 0x1c,		      /* st	 %r1,28(%r15)	   */
+    0x0d, 0x10,				      /* basr	 %r1,%r0	   */
+    0x58, 0x10, 0x10, 0x12,		      /* l	 %r1,18(%r1)	   */
+    0xd2, 0x03, 0xf0, 0x18, 0x10, 0x04,	      /* mvc	 24(4,%r15),4(%r1) */
+    0x58, 0x10, 0x10, 0x08,		      /* l	 %r1,8(%r1)	   */
+    0x07, 0xf1,				      /* br	 %r1		   */
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00
@@ -632,11 +632,11 @@ static const bfd_byte elf_s390_plt_first
 
 static const bfd_byte elf_s390_plt_pic_first_entry[PLT_FIRST_ENTRY_SIZE] =
   {
-    0x50, 0x10, 0xf0, 0x1c,                     /* st      %r1,28(%r15)  */
-    0x58, 0x10, 0xc0, 0x04,                     /* l       %r1,4(%r12)   */
-    0x50, 0x10, 0xf0, 0x18,                     /* st      %r1,24(%r15)  */
-    0x58, 0x10, 0xc0, 0x08,                     /* l       %r1,8(%r12)   */
-    0x07, 0xf1,                                 /* br      %r1           */
+    0x50, 0x10, 0xf0, 0x1c,			/* st	   %r1,28(%r15)	 */
+    0x58, 0x10, 0xc0, 0x04,			/* l	   %r1,4(%r12)	 */
+    0x50, 0x10, 0xf0, 0x18,			/* st	   %r1,24(%r15)	 */
+    0x58, 0x10, 0xc0, 0x08,			/* l	   %r1,8(%r12)	 */
+    0x07, 0xf1,					/* br	   %r1		 */
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00,
@@ -945,7 +945,7 @@ elf_s390_check_relocs (bfd *abfd,
   for (rel = relocs; rel < rel_end; rel++)
     {
       unsigned int r_type;
-      unsigned long r_symndx;
+      unsigned int r_symndx;
       struct elf_link_hash_entry *h;
 
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -993,10 +993,6 @@ elf_s390_check_relocs (bfd *abfd,
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       /* Create got section and local_got_refcounts array if they
@@ -1401,180 +1397,6 @@ elf_s390_gc_mark_hook (asection *sec,
 
 }
 
-/* Update the got entry reference counts for the section being removed.  */
-
-static bfd_boolean
-elf_s390_gc_sweep_hook (bfd *abfd,
-			struct bfd_link_info *info,
-			asection *sec,
-			const Elf_Internal_Rela *relocs)
-{
-  struct elf_s390_link_hash_table *htab;
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  htab = elf_s390_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  symtab_hdr = &elf_symtab_hdr (abfd);
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      unsigned int r_type;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  struct elf_s390_link_hash_entry *eh;
-	  struct elf_dyn_relocs **pp;
-	  struct elf_dyn_relocs *p;
-
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	  eh = (struct elf_s390_link_hash_entry *) h;
-
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next)
-	    if (p->sec == sec)
-	      {
-		/* Everything must go for SEC.  */
-		*pp = p->next;
-		break;
-	      }
-	}
-      else
-	{
-	  Elf_Internal_Sym *isym;
-
-	  /* A local symbol.  */
-	  isym = bfd_sym_from_r_symndx (&htab->sym_cache,
-					abfd, r_symndx);
-	  if (isym == NULL)
-	    return FALSE;
-
-	  if (ELF_ST_TYPE (isym->st_info) == STT_GNU_IFUNC)
-	    {
-	      struct plt_entry *plt = elf_s390_local_plt (abfd);
-	      if (plt[r_symndx].plt.refcount > 0)
-		plt[r_symndx].plt.refcount--;
-	    }
-	}
-
-      r_type = ELF32_R_TYPE (rel->r_info);
-      r_type = elf_s390_tls_transition (info, r_type, h != NULL);
-      switch (r_type)
-	{
-	case R_390_TLS_LDM32:
-	  if (elf_s390_hash_table (info)->tls_ldm_got.refcount > 0)
-	    elf_s390_hash_table (info)->tls_ldm_got.refcount -= 1;
-	  break;
-
-	case R_390_GOTOFF16:
-	case R_390_GOTOFF32:
-	  if (h != NULL && s390_is_ifunc_symbol_p (h) && h->def_regular)
-	    {
-	      h->plt.refcount--;
-	      break;
-	    }
-
-	case R_390_GOTPC:
-	case R_390_GOTPCDBL:
-	  break;
-
-	case R_390_TLS_GD32:
-	case R_390_TLS_IE32:
-	case R_390_TLS_GOTIE12:
-	case R_390_TLS_GOTIE20:
-	case R_390_TLS_GOTIE32:
-	case R_390_TLS_IEENT:
-	case R_390_GOT12:
-	case R_390_GOT16:
-	case R_390_GOT20:
-	case R_390_GOT32:
-	case R_390_GOTENT:
-	  if (h != NULL)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount -= 1;
-	    }
-	  else if (local_got_refcounts != NULL)
-	    {
-	      if (local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx] -= 1;
-	    }
-	  break;
-
-	case R_390_8:
-	case R_390_12:
-	case R_390_16:
-	case R_390_20:
-	case R_390_32:
-	case R_390_PC16:
-	case R_390_PC12DBL:
-	case R_390_PC16DBL:
-	case R_390_PC24DBL:
-	case R_390_PC32DBL:
-	case R_390_PC32:
-	  if (bfd_link_pic (info))
-	    break;
-	  /* Fall through.  */
-
-	case R_390_PLT12DBL:
-	case R_390_PLT16DBL:
-	case R_390_PLT24DBL:
-	case R_390_PLT32DBL:
-	case R_390_PLT32:
-	case R_390_PLTOFF16:
-	case R_390_PLTOFF32:
-	  if (h != NULL)
-	    {
-	      if (h->plt.refcount > 0)
-		h->plt.refcount -= 1;
-	    }
-	  break;
-
-	case R_390_GOTPLT12:
-	case R_390_GOTPLT16:
-	case R_390_GOTPLT20:
-	case R_390_GOTPLT32:
-	case R_390_GOTPLTENT:
-	  if (h != NULL)
-	    {
-	      if (h->plt.refcount > 0)
-		{
-		  ((struct elf_s390_link_hash_entry *) h)->gotplt_refcount--;
-		  h->plt.refcount -= 1;
-		}
-	    }
-	  else if (local_got_refcounts != NULL)
-	    {
-	      if (local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx] -= 1;
-	    }
-	  break;
-
-	default:
-	  break;
-	}
-    }
-
-  return TRUE;
-}
-
 /* Make sure we emit a GOT entry if the symbol was supposed to have a PLT
    entry but we found we will not create any.  Called when we find we will
    not have any PLT for this symbol, by for example
@@ -1597,6 +1419,23 @@ elf_s390_adjust_gotplt (struct elf_s390_
   h->gotplt_refcount = -1;
 }
 
+/* Find dynamic relocs for H that apply to read-only sections.  */
+
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
+
+  for (p = elf_s390_hash_entry (h)->dyn_relocs; p != NULL; p = p->next)
+    {
+      asection *s = p->sec->output_section;
+
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
+    }
+  return NULL;
+}
+
 /* Adjust a symbol defined by a dynamic object and referenced by a
    regular object.  The current definition is in some section of the
    dynamic object, but we're not including those sections.  We have to
@@ -1688,14 +1527,14 @@ elf_s390_adjust_dynamic_symbol (struct b
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       if (ELIMINATE_COPY_RELOCS || info->nocopyreloc)
-	h->non_got_ref = h->u.weakdef->non_got_ref;
+	h->non_got_ref = def->non_got_ref;
       return TRUE;
     }
 
@@ -1721,26 +1560,12 @@ elf_s390_adjust_dynamic_symbol (struct b
       return TRUE;
     }
 
-  if (ELIMINATE_COPY_RELOCS)
+  /* If we don't find any dynamic relocs in read-only sections, then
+     we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
+  if (ELIMINATE_COPY_RELOCS && !readonly_dynrelocs (h))
     {
-      struct elf_s390_link_hash_entry * eh;
-      struct elf_dyn_relocs *p;
-
-      eh = (struct elf_s390_link_hash_entry *) h;
-      for (p = eh->dyn_relocs; p != NULL; p = p->next)
-	{
-	  s = p->sec->output_section;
-	  if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	    break;
-	}
-
-      /* If we didn't find any dynamic relocs in read-only sections, then
-	 we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
-      if (p == NULL)
-	{
-	  h->non_got_ref = 0;
-	  return TRUE;
-	}
+      h->non_got_ref = 0;
+      return TRUE;
     }
 
   /* We must allocate the symbol in our .dynbss section, which will
@@ -1846,7 +1671,7 @@ allocate_dynrelocs (struct elf_link_hash
 	}
       else
 	{
- 	  h->plt.offset = (bfd_vma) -1;
+	  h->plt.offset = (bfd_vma) -1;
 	  h->needs_plt = 0;
 	  elf_s390_adjust_gotplt((struct elf_s390_link_hash_entry *) h);
 	}
@@ -1947,7 +1772,8 @@ allocate_dynrelocs (struct elf_link_hash
       if (eh->dyn_relocs != NULL
 	  && h->root.type == bfd_link_hash_undefweak)
 	{
-	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
+	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+	      || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	    eh->dyn_relocs = NULL;
 
 	  /* Make sure undefined weak symbols are output as a dynamic
@@ -2004,28 +1830,29 @@ allocate_dynrelocs (struct elf_link_hash
   return TRUE;
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (struct elf_link_hash_entry *h, void * inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct elf_s390_link_hash_entry *eh;
-  struct elf_dyn_relocs *p;
+  asection *sec;
 
-  eh = (struct elf_s390_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection *s = p->sec->output_section;
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	{
-	  struct bfd_link_info *info = (struct bfd_link_info *) inf;
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
+    {
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-	  info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
-	  /* Not an error, just cut short the traversal.  */
-	  return FALSE;
-	}
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -2135,7 +1962,7 @@ elf_s390_size_dynamic_sections (bfd *out
 	      htab->elf.irelplt->size += RELA_ENTRY_SIZE;
 	    }
 	  else
-            local_plt[i].plt.offset = (bfd_vma) -1;
+	    local_plt[i].plt.offset = (bfd_vma) -1;
 	}
     }
 
@@ -2253,7 +2080,7 @@ elf_s390_size_dynamic_sections (bfd *out
 	  /* If any dynamic relocs apply to a read-only section,
 	     then we need a DT_TEXTREL entry.  */
 	  if ((info->flags & DF_TEXTREL) == 0)
-	    elf_link_hash_traverse (&htab->elf, readonly_dynrelocs, info);
+	    elf_link_hash_traverse (&htab->elf, maybe_set_textrel, info);
 
 	  if ((info->flags & DF_TEXTREL) != 0)
 	    {
@@ -2307,10 +2134,10 @@ invalid_tls_insn (bfd *input_bfd,
   howto = elf_howto_table + ELF32_R_TYPE (rel->r_info);
   _bfd_error_handler
     /* xgettext:c-format */
-    (_("%B(%A+0x%lx): invalid instruction for TLS relocation %s"),
+    (_("%B(%A+%#Lx): invalid instruction for TLS relocation %s"),
      input_bfd,
      input_section,
-     (long) rel->r_offset,
+     rel->r_offset,
      howto->name);
   bfd_set_error (bfd_error_bad_value);
 }
@@ -2357,6 +2184,7 @@ elf_s390_relocate_section (bfd *output_b
       bfd_reloc_status_type r;
       int tls_type;
       asection *base_got = htab->elf.sgot;
+      bfd_boolean resolved_to_zero;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       if (r_type == (int) R_390_GNU_VTINHERIT
@@ -2448,6 +2276,9 @@ elf_s390_relocate_section (bfd *output_b
       if (bfd_link_relocatable (info))
 	continue;
 
+      resolved_to_zero = (h != NULL
+			  && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h));
+
       switch (r_type)
 	{
 	case R_390_GOTPLT12:
@@ -2703,7 +2534,7 @@ elf_s390_relocate_section (bfd *output_b
 
 	  if (s390_is_ifunc_symbol_p (h))
 	    relocation = (htab->elf.iplt->output_section->vma
-                          + htab->elf.iplt->output_offset
+			  + htab->elf.iplt->output_offset
 			  + h->plt.offset);
 	  else
 	    relocation = (htab->elf.splt->output_section->vma
@@ -2774,7 +2605,7 @@ elf_s390_relocate_section (bfd *output_b
 	      && s390_is_ifunc_symbol_p (h)
 	      && h->def_regular)
 	    {
-	      if (!bfd_link_pic (info) || !h->non_got_ref)
+	      if (!bfd_link_pic (info))
 		{
 		  /* For a non-shared object STT_GNU_IFUNC symbol must
 		     go through PLT.  */
@@ -2836,7 +2667,8 @@ elf_s390_relocate_section (bfd *output_b
 
 	  if ((bfd_link_pic (info)
 	       && (h == NULL
-		   || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		   || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		       && !resolved_to_zero)
 		   || h->root.type != bfd_link_hash_undefweak)
 	       && ((r_type != R_390_PC16
 		    && r_type != R_390_PC12DBL
@@ -3231,7 +3063,6 @@ elf_s390_relocate_section (bfd *output_b
 		  unsigned int insn, ry;
 
 		  insn = bfd_get_32 (input_bfd, contents + rel->r_offset);
-		  ry = 0;
 		  if ((insn & 0xff00f000) == 0x58000000)
 		    /* l %rx,0(%ry,0) -> lr %rx,%ry + bcr 0,0  */
 		    ry = (insn & 0x000f0000);
@@ -3245,7 +3076,10 @@ elf_s390_relocate_section (bfd *output_b
 		    /* l %rx,0(%r12,%ry) -> lr %rx,%ry + bcr 0,0  */
 		    ry = (insn & 0x0000f000) << 4;
 		  else
-		    invalid_tls_insn (input_bfd, input_section, rel);
+		    {
+		      invalid_tls_insn (input_bfd, input_section, rel);
+		      return FALSE;
+		    }
 		  insn = 0x18000700 | (insn & 0x00f00000) | ry;
 		  bfd_put_32 (output_bfd, insn, contents + rel->r_offset);
 		}
@@ -3258,7 +3092,10 @@ elf_s390_relocate_section (bfd *output_b
 	      if ((insn & 0xff000fff) != 0x4d000000 &&
 		  (insn & 0xffff0000) != 0xc0e50000 &&
 		  (insn & 0xff000000) != 0x0d000000)
-		invalid_tls_insn (input_bfd, input_section, rel);
+		{
+		  invalid_tls_insn (input_bfd, input_section, rel);
+		  return FALSE;
+		}
 	      if (!bfd_link_pic (info) && (h == NULL || h->dynindx == -1))
 		{
 		  if ((insn & 0xff000000) == 0x0d000000)
@@ -3287,7 +3124,10 @@ elf_s390_relocate_section (bfd *output_b
 		  /* If basr is used in the pic case to invoke
 		     _tls_get_offset, something went wrong before.  */
 		  if ((insn & 0xff000000) == 0x0d000000)
-		    invalid_tls_insn (input_bfd, input_section, rel);
+		    {
+		      invalid_tls_insn (input_bfd, input_section, rel);
+		      return FALSE;
+		    }
 
 		  if ((insn & 0xff000000) == 0x4d000000)
 		    {
@@ -3299,7 +3139,7 @@ elf_s390_relocate_section (bfd *output_b
 		    {
 		      /* GD->IE transition.
 			 brasl %r14,__tls_get_addr@plt ->
-			 	l %r2,0(%r2,%r12) ; bcr 0,0 */
+				l %r2,0(%r2,%r12) ; bcr 0,0 */
 		      insn = 0x5822c000;
 		      bfd_put_16 (output_bfd, 0x0700,
 				  contents + rel->r_offset + 4);
@@ -3317,7 +3157,10 @@ elf_s390_relocate_section (bfd *output_b
 		  if ((insn & 0xff000fff) != 0x4d000000 &&
 		      (insn & 0xffff0000) != 0xc0e50000 &&
 		      (insn & 0xff000000) != 0x0d000000)
-		    invalid_tls_insn (input_bfd, input_section, rel);
+		    {
+		      invalid_tls_insn (input_bfd, input_section, rel);
+		      return FALSE;
+		    }
 
 		  if ((insn & 0xff000000) == 0x0d000000)
 		    {
@@ -3358,10 +3201,10 @@ elf_s390_relocate_section (bfd *output_b
 				      rel->r_offset) != (bfd_vma) -1)
 	_bfd_error_handler
 	  /* xgettext:c-format */
-	  (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+	  (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
 	   input_bfd,
 	   input_section,
-	   (long) rel->r_offset,
+	   rel->r_offset,
 	   howto->name,
 	   h->root.root.string);
 
@@ -3415,9 +3258,9 @@ elf_s390_relocate_section (bfd *output_b
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B(%A+0x%lx): reloc against `%s': error %d"),
+		(_("%B(%A+%#Lx): reloc against `%s': error %d"),
 		 input_bfd, input_section,
-		 (long) rel->r_offset, name, (int) r);
+		 rel->r_offset, name, (int) r);
 	      return FALSE;
 	    }
 	}
@@ -3930,7 +3773,9 @@ elf_s390_finish_dynamic_sections (bfd *o
 	      break;
 
 	    case DT_PLTRELSZ:
-	      dyn.d_un.d_val = htab->elf.srelplt->size + htab->elf.irelplt->size;
+	      dyn.d_un.d_val = htab->elf.srelplt->size;
+	      if (htab->elf.irelplt)
+		dyn.d_un.d_val += htab->elf.irelplt->size;
 	      break;
 	    }
 
@@ -3988,6 +3833,9 @@ elf_s390_finish_dynamic_sections (bfd *o
 
       symtab_hdr = &elf_symtab_hdr (ibfd);
 
+      if (!is_s390_elf (ibfd))
+	continue;
+
       local_plt = elf_s390_local_plt (ibfd);
       if (local_plt != NULL)
 	for (i = 0; i < symtab_hdr->sh_info; i++)
@@ -4188,7 +4036,6 @@ elf32_s390_merge_private_bfd_data (bfd *
 #define elf_backend_finish_dynamic_sections   elf_s390_finish_dynamic_sections
 #define elf_backend_finish_dynamic_symbol     elf_s390_finish_dynamic_symbol
 #define elf_backend_gc_mark_hook	      elf_s390_gc_mark_hook
-#define elf_backend_gc_sweep_hook	      elf_s390_gc_sweep_hook
 #define elf_backend_reloc_type_class	      elf_s390_reloc_type_class
 #define elf_backend_relocate_section	      elf_s390_relocate_section
 #define elf_backend_size_dynamic_sections     elf_s390_size_dynamic_sections
@@ -4197,10 +4044,12 @@ elf32_s390_merge_private_bfd_data (bfd *
 #define elf_backend_grok_psinfo		      elf_s390_grok_psinfo
 #define elf_backend_write_core_note	      elf_s390_write_core_note
 #define elf_backend_plt_sym_val		      elf_s390_plt_sym_val
-#define elf_backend_add_symbol_hook           elf_s390_add_symbol_hook
-#define elf_backend_sort_relocs_p             elf_s390_elf_sort_relocs_p
+#define elf_backend_add_symbol_hook	      elf_s390_add_symbol_hook
+#define elf_backend_sort_relocs_p	      elf_s390_elf_sort_relocs_p
 
 #define bfd_elf32_mkobject		elf_s390_mkobject
 #define elf_backend_object_p		elf_s390_object_p
 
+#define elf_backend_linux_prpsinfo32_ugid16	TRUE
+
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-score7.c ./bfd/elf32-score7.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-score7.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-score7.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* 32-bit ELF support for S+core.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by
    Brain.lin (brain.lin@sunplusct.com)
    Mei Ligang (ligang@sunnorth.com.cn)
@@ -152,7 +152,7 @@ struct _score_elf_section_data
 
 
 /* The number of local .got entries we reserve.  */
-#define SCORE_RESERVED_GOTNO 		(2)
+#define SCORE_RESERVED_GOTNO		(2)
 #define ELF_DYNAMIC_INTERPRETER		"/usr/lib/ld.so.1"
 
 /* The offset of $gp from the beginning of the .got section.  */
@@ -203,12 +203,12 @@ static asymbol * score_elf_scom_symbol_p
 
 static bfd_reloc_status_type
 score_elf_hi16_reloc (bfd *abfd ATTRIBUTE_UNUSED,
-                      arelent *reloc_entry,
-                      asymbol *symbol ATTRIBUTE_UNUSED,
-                      void * data,
-                      asection *input_section ATTRIBUTE_UNUSED,
-                      bfd *output_bfd ATTRIBUTE_UNUSED,
-                      char **error_message ATTRIBUTE_UNUSED)
+		      arelent *reloc_entry,
+		      asymbol *symbol ATTRIBUTE_UNUSED,
+		      void * data,
+		      asection *input_section ATTRIBUTE_UNUSED,
+		      bfd *output_bfd ATTRIBUTE_UNUSED,
+		      char **error_message ATTRIBUTE_UNUSED)
 {
   hi16_rel_addr = (bfd_byte *) data + reloc_entry->address;
   return bfd_reloc_ok;
@@ -216,12 +216,12 @@ score_elf_hi16_reloc (bfd *abfd ATTRIBUT
 
 static bfd_reloc_status_type
 score_elf_lo16_reloc (bfd *abfd,
-                      arelent *reloc_entry,
-                      asymbol *symbol ATTRIBUTE_UNUSED,
-                      void * data,
-                      asection *input_section,
-                      bfd *output_bfd ATTRIBUTE_UNUSED,
-                      char **error_message ATTRIBUTE_UNUSED)
+		      arelent *reloc_entry,
+		      asymbol *symbol ATTRIBUTE_UNUSED,
+		      void * data,
+		      asection *input_section,
+		      bfd *output_bfd ATTRIBUTE_UNUSED,
+		      char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma addend = 0, offset = 0;
   unsigned long val;
@@ -269,17 +269,17 @@ score_elf_assign_gp (bfd *output_bfd, bf
   else
     {
       for (i = 0; i < count; i++, sym++)
-        {
-          const char *name;
+	{
+	  const char *name;
 
-          name = bfd_asymbol_name (*sym);
-          if (*name == '_' && strcmp (name, "_gp") == 0)
-            {
-              *pgp = bfd_asymbol_value (*sym);
-              _bfd_set_gp_value (output_bfd, *pgp);
-              break;
-            }
-        }
+	  name = bfd_asymbol_name (*sym);
+	  if (*name == '_' && strcmp (name, "_gp") == 0)
+	    {
+	      *pgp = bfd_asymbol_value (*sym);
+	      _bfd_set_gp_value (output_bfd, *pgp);
+	      break;
+	    }
+	}
     }
 
   if (i >= count)
@@ -301,10 +301,10 @@ score_elf_assign_gp (bfd *output_bfd, bf
 
 static bfd_reloc_status_type
 score_elf_final_gp (bfd *output_bfd,
-                    asymbol *symbol,
-                    bfd_boolean relocatable,
-                    char **error_message,
-                    bfd_vma *pgp)
+		    asymbol *symbol,
+		    bfd_boolean relocatable,
+		    char **error_message,
+		    bfd_vma *pgp)
 {
   if (bfd_is_und_section (symbol->section)
       && ! relocatable)
@@ -316,20 +316,20 @@ score_elf_final_gp (bfd *output_bfd,
   *pgp = _bfd_get_gp_value (output_bfd);
   if (*pgp == 0
       && (! relocatable
-          || (symbol->flags & BSF_SECTION_SYM) != 0))
+	  || (symbol->flags & BSF_SECTION_SYM) != 0))
     {
       if (relocatable)
-        {
-          /* Make up a value.  */
-          *pgp = symbol->section->output_section->vma + 0x4000;
-          _bfd_set_gp_value (output_bfd, *pgp);
-        }
+	{
+	  /* Make up a value.  */
+	  *pgp = symbol->section->output_section->vma + 0x4000;
+	  _bfd_set_gp_value (output_bfd, *pgp);
+	}
       else if (!score_elf_assign_gp (output_bfd, pgp))
-        {
-            *error_message =
-              (char *) _("GP relative relocation when _gp not defined");
-            return bfd_reloc_dangerous;
-        }
+	{
+	    *error_message =
+	      (char *) _("GP relative relocation when _gp not defined");
+	    return bfd_reloc_dangerous;
+	}
     }
 
   return bfd_reloc_ok;
@@ -337,12 +337,12 @@ score_elf_final_gp (bfd *output_bfd,
 
 static bfd_reloc_status_type
 score_elf_gprel15_with_gp (bfd *abfd,
-                           asymbol *symbol,
-                           arelent *reloc_entry,
-                           asection *input_section,
-                           bfd_boolean relocateable,
-                           void * data,
-                           bfd_vma gp ATTRIBUTE_UNUSED)
+			   asymbol *symbol,
+			   arelent *reloc_entry,
+			   asection *input_section,
+			   bfd_boolean relocateable,
+			   void * data,
+			   bfd_vma gp ATTRIBUTE_UNUSED)
 {
   bfd_vma relocation;
   unsigned long insn;
@@ -372,8 +372,8 @@ score_elf_gprel15_with_gp (bfd *abfd,
 
 static bfd_reloc_status_type
 gprel32_with_gp (bfd *abfd, asymbol *symbol, arelent *reloc_entry,
-                 asection *input_section, bfd_boolean relocatable,
-                 void *data, bfd_vma gp)
+		 asection *input_section, bfd_boolean relocatable,
+		 void *data, bfd_vma gp)
 {
   bfd_vma relocation;
   bfd_vma val;
@@ -415,12 +415,12 @@ gprel32_with_gp (bfd *abfd, asymbol *sym
 
 static bfd_reloc_status_type
 score_elf_gprel15_reloc (bfd *abfd,
-                         arelent *reloc_entry,
-                         asymbol *symbol,
-                         void * data,
-                         asection *input_section,
-                         bfd *output_bfd,
-                         char **error_message)
+			 arelent *reloc_entry,
+			 asymbol *symbol,
+			 void * data,
+			 asection *input_section,
+			 bfd *output_bfd,
+			 char **error_message)
 {
   bfd_boolean relocateable;
   bfd_reloc_status_type ret;
@@ -445,7 +445,7 @@ score_elf_gprel15_reloc (bfd *abfd,
     return ret;
 
   return score_elf_gprel15_with_gp (abfd, symbol, reloc_entry,
-                                         input_section, relocateable, data, gp);
+					 input_section, relocateable, data, gp);
 }
 
 /* Do a R_SCORE_GPREL32 relocation.  This is a 32 bit value which must
@@ -453,8 +453,8 @@ score_elf_gprel15_reloc (bfd *abfd,
 
 static bfd_reloc_status_type
 score_elf_gprel32_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
-                         void *data, asection *input_section, bfd *output_bfd,
-                         char **error_message)
+			 void *data, asection *input_section, bfd *output_bfd,
+			 char **error_message)
 {
   bfd_boolean relocatable;
   bfd_reloc_status_type ret;
@@ -466,7 +466,7 @@ score_elf_gprel32_reloc (bfd *abfd, arel
       && (symbol->flags & BSF_LOCAL) != 0)
     {
       *error_message = (char *)
-        _("32bits gp relative relocation occurs for an external symbol");
+	_("32bits gp relative relocation occurs for an external symbol");
       return bfd_reloc_outofrange;
     }
 
@@ -484,7 +484,7 @@ score_elf_gprel32_reloc (bfd *abfd, arel
 
   gp = 0;
   return gprel32_with_gp (abfd, symbol, reloc_entry, input_section,
-                          relocatable, data, gp);
+			  relocatable, data, gp);
 }
 
 /* A howto special_function for R_SCORE_GOT15 relocations.  This is just
@@ -493,29 +493,29 @@ score_elf_gprel32_reloc (bfd *abfd, arel
 
 static bfd_reloc_status_type
 score_elf_got15_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
-                       void *data, asection *input_section,
-                       bfd *output_bfd, char **error_message)
+		       void *data, asection *input_section,
+		       bfd *output_bfd, char **error_message)
 {
   if ((symbol->flags & (BSF_GLOBAL | BSF_WEAK)) != 0
       || bfd_is_und_section (bfd_get_section (symbol))
       || bfd_is_com_section (bfd_get_section (symbol)))
     /* The relocation is against a global symbol.  */
     return bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
-                                  input_section, output_bfd,
-                                  error_message);
+				  input_section, output_bfd,
+				  error_message);
 
   return score_elf_hi16_reloc (abfd, reloc_entry, symbol, data,
-                               input_section, output_bfd, error_message);
+			       input_section, output_bfd, error_message);
 }
 
 static bfd_reloc_status_type
 score_elf_got_lo16_reloc (bfd *abfd,
-                          arelent *reloc_entry,
-                          asymbol *symbol ATTRIBUTE_UNUSED,
-                          void * data,
-                          asection *input_section,
-                          bfd *output_bfd ATTRIBUTE_UNUSED,
-                          char **error_message ATTRIBUTE_UNUSED)
+			  arelent *reloc_entry,
+			  asymbol *symbol ATTRIBUTE_UNUSED,
+			  void * data,
+			  asection *input_section,
+			  bfd *output_bfd ATTRIBUTE_UNUSED,
+			  char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma addend = 0, offset = 0;
   signed long val;
@@ -544,303 +544,303 @@ score_elf_got_lo16_reloc (bfd *abfd,
 static reloc_howto_type elf32_score_howto_table[] =
 {
   /* No relocation.  */
-  HOWTO (R_SCORE_NONE,          /* type */
-         0,                     /* rightshift */
-         3,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_NONE",        /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_NONE,		/* type */
+	 0,			/* rightshift */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_NONE",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* R_SCORE_HI16 */
-  HOWTO (R_SCORE_HI16,          /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         score_elf_hi16_reloc,  /* special_function */
-         "R_SCORE_HI16",        /* name */
-         TRUE,                  /* partial_inplace */
-         0x37fff,               /* src_mask */
-         0x37fff,               /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_HI16,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 score_elf_hi16_reloc,	/* special_function */
+	 "R_SCORE_HI16",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x37fff,		/* src_mask */
+	 0x37fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* R_SCORE_LO16 */
-  HOWTO (R_SCORE_LO16,          /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         score_elf_lo16_reloc,  /* special_function */
-         "R_SCORE_LO16",        /* name */
-         TRUE,                  /* partial_inplace */
-         0x37fff,               /* src_mask */
-         0x37fff,               /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_LO16,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 score_elf_lo16_reloc,	/* special_function */
+	 "R_SCORE_LO16",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x37fff,		/* src_mask */
+	 0x37fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /*  R_SCORE_BCMP */
-  HOWTO (R_SCORE_BCMP,        /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_BCMP",      /* name */
-         TRUE,                  /* partial_inplace */
-         0x0000ffff,            /* src_mask */
-         0x0000ffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
-
-  HOWTO (R_SCORE_24,            /* type */
-         1,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         24,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_24",          /* name */
-         FALSE,                 /* partial_inplace */
-         0x3ff7fff,             /* src_mask */
-         0x3ff7fff,             /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_BCMP,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_BCMP",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_SCORE_24,		/* type */
+	 1,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 24,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_24",		/* name */
+	 FALSE,			/* partial_inplace */
+	 0x3ff7fff,		/* src_mask */
+	 0x3ff7fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /*R_SCORE_PC19 */
-  HOWTO (R_SCORE_PC19,          /* type */
-         1,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         19,                    /* bitsize */
-         TRUE,                  /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_PC19",        /* name */
-         FALSE,                 /* partial_inplace */
-         0x3ff03fe,             /* src_mask */
-         0x3ff03fe,             /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_PC19,		/* type */
+	 1,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 19,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_PC19",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x3ff03fe,		/* src_mask */
+	 0x3ff03fe,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /*R_SCORE16_11 */
-  HOWTO (R_SCORE16_11,          /* type */
-         1,                     /* rightshift */
-         1,                     /* size (0 = byte, 1 = short, 2 = long) */
-         11,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE16_11",        /* name */
-         FALSE,                 /* partial_inplace */
-         0x000000ffe,           /* src_mask */
-         0x000000ffe,           /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE16_11,		/* type */
+	 1,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 11,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE16_11",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x000000ffe,		/* src_mask */
+	 0x000000ffe,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* R_SCORE16_PC8 */
-  HOWTO (R_SCORE16_PC8,         /* type */
-         1,                     /* rightshift */
-         1,                     /* size (0 = byte, 1 = short, 2 = long) */
-         8,                     /* bitsize */
-         TRUE,                  /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE16_PC8",       /* name */
-         FALSE,                 /* partial_inplace */
-         0x000000ff,            /* src_mask */
-         0x000000ff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE16_PC8,		/* type */
+	 1,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 8,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE16_PC8",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x000000ff,		/* src_mask */
+	 0x000000ff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* 32 bit absolute */
-  HOWTO (R_SCORE_ABS32,         /* type  8 */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         32,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_bitfield,    /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_ABS32",       /* name */
-         FALSE,                 /* partial_inplace */
-         0xffffffff,            /* src_mask */
-         0xffffffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_ABS32,		/* type 8 */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield,	/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_ABS32",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* 16 bit absolute */
-  HOWTO (R_SCORE_ABS16,         /* type 11 */
-         0,                     /* rightshift */
-         1,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_bitfield,    /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_ABS16",       /* name */
-         FALSE,                 /* partial_inplace */
-         0x0000ffff,            /* src_mask */
-         0x0000ffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_ABS16,		/* type 11 */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield,	/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_ABS16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* R_SCORE_DUMMY2 */
-  HOWTO (R_SCORE_DUMMY2,        /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_DUMMY2",      /* name */
-         TRUE,                  /* partial_inplace */
-         0x00007fff,            /* src_mask */
-         0x00007fff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_DUMMY2,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_DUMMY2",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x00007fff,		/* src_mask */
+	 0x00007fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* R_SCORE_GP15 */
-  HOWTO (R_SCORE_GP15,          /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         score_elf_gprel15_reloc,/* special_function */
-         "R_SCORE_GP15",        /* name */
-         TRUE,                  /* partial_inplace */
-         0x00007fff,            /* src_mask */
-         0x00007fff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_GP15,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 score_elf_gprel15_reloc,/* special_function */
+	 "R_SCORE_GP15",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x00007fff,		/* src_mask */
+	 0x00007fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy.  */
   HOWTO (R_SCORE_GNU_VTINHERIT, /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         NULL,                  /* special_function */
-         "R_SCORE_GNU_VTINHERIT",       /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 NULL,			/* special_function */
+	 "R_SCORE_GNU_VTINHERIT",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
-  HOWTO (R_SCORE_GNU_VTENTRY,   /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
-         "R_SCORE_GNU_VTENTRY", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_GNU_VTENTRY,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 _bfd_elf_rel_vtable_reloc_fn,	/* special_function */
+	 "R_SCORE_GNU_VTENTRY", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* Reference to global offset table.  */
-  HOWTO (R_SCORE_GOT15,         /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_signed,      /* complain_on_overflow */
-         score_elf_got15_reloc, /* special_function */
-         "R_SCORE_GOT15",       /* name */
-         TRUE,                  /* partial_inplace */
-         0x00007fff,            /* src_mask */
-         0x00007fff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_GOT15,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed,	/* complain_on_overflow */
+	 score_elf_got15_reloc, /* special_function */
+	 "R_SCORE_GOT15",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x00007fff,		/* src_mask */
+	 0x00007fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* Low 16 bits of displacement in global offset table.  */
-  HOWTO (R_SCORE_GOT_LO16,      /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         score_elf_got_lo16_reloc, /* special_function */
-         "R_SCORE_GOT_LO16",    /* name */
-         TRUE,                  /* partial_inplace */
-         0x37ffe,               /* src_mask */
-         0x37ffe,               /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_GOT_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 score_elf_got_lo16_reloc, /* special_function */
+	 "R_SCORE_GOT_LO16",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x37ffe,		/* src_mask */
+	 0x37ffe,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* 15 bit call through global offset table.  */
-  HOWTO (R_SCORE_CALL15,        /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_signed, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_CALL15",      /* name */
-         TRUE,                  /* partial_inplace */
-         0x00007fff,            /* src_mask */
-         0x00007fff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_CALL15,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_CALL15",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x00007fff,		/* src_mask */
+	 0x00007fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* 32 bit GP relative reference.  */
-  HOWTO (R_SCORE_GPREL32,       /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         32,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         score_elf_gprel32_reloc, /* special_function */
-         "R_SCORE_GPREL32",     /* name */
-         TRUE,                  /* partial_inplace */
-         0xffffffff,            /* src_mask */
-         0xffffffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_GPREL32,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 score_elf_gprel32_reloc, /* special_function */
+	 "R_SCORE_GPREL32",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* 32 bit symbol relative relocation.  */
-  HOWTO (R_SCORE_REL32,         /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         32,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_REL32",       /* name */
-         TRUE,                  /* partial_inplace */
-         0xffffffff,            /* src_mask */
-         0xffffffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_REL32,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_REL32",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* R_SCORE_DUMMY_HI16 */
-  HOWTO (R_SCORE_DUMMY_HI16,    /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         score_elf_hi16_reloc,  /* special_function */
-         "R_SCORE_DUMMY_HI16",  /* name */
-         TRUE,                  /* partial_inplace */
-         0x37fff,               /* src_mask */
-         0x37fff,               /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_DUMMY_HI16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 score_elf_hi16_reloc,	/* special_function */
+	 "R_SCORE_DUMMY_HI16",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x37fff,		/* src_mask */
+	 0x37fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 };
 
 struct score_reloc_map
@@ -851,26 +851,26 @@ struct score_reloc_map
 
 static const struct score_reloc_map elf32_score_reloc_map[] =
 {
-  {BFD_RELOC_NONE,               R_SCORE_NONE},
-  {BFD_RELOC_HI16_S,             R_SCORE_HI16},
-  {BFD_RELOC_LO16,               R_SCORE_LO16},
-  {BFD_RELOC_SCORE_BCMP,         R_SCORE_BCMP},
-  {BFD_RELOC_SCORE_JMP,          R_SCORE_24},
-  {BFD_RELOC_SCORE_BRANCH,       R_SCORE_PC19},
-  {BFD_RELOC_SCORE16_JMP,        R_SCORE16_11},
-  {BFD_RELOC_SCORE16_BRANCH,     R_SCORE16_PC8},
-  {BFD_RELOC_32,                 R_SCORE_ABS32},
-  {BFD_RELOC_16,                 R_SCORE_ABS16},
-  {BFD_RELOC_SCORE_DUMMY2,       R_SCORE_DUMMY2},
-  {BFD_RELOC_SCORE_GPREL15,      R_SCORE_GP15},
-  {BFD_RELOC_VTABLE_INHERIT,     R_SCORE_GNU_VTINHERIT},
-  {BFD_RELOC_VTABLE_ENTRY,       R_SCORE_GNU_VTENTRY},
-  {BFD_RELOC_SCORE_GOT15,        R_SCORE_GOT15},
-  {BFD_RELOC_SCORE_GOT_LO16,     R_SCORE_GOT_LO16},
-  {BFD_RELOC_SCORE_CALL15,       R_SCORE_CALL15},
-  {BFD_RELOC_GPREL32,            R_SCORE_GPREL32},
-  {BFD_RELOC_32_PCREL,           R_SCORE_REL32},
-  {BFD_RELOC_SCORE_DUMMY_HI16,   R_SCORE_DUMMY_HI16},
+  {BFD_RELOC_NONE,		 R_SCORE_NONE},
+  {BFD_RELOC_HI16_S,		 R_SCORE_HI16},
+  {BFD_RELOC_LO16,		 R_SCORE_LO16},
+  {BFD_RELOC_SCORE_BCMP,	 R_SCORE_BCMP},
+  {BFD_RELOC_SCORE_JMP,		 R_SCORE_24},
+  {BFD_RELOC_SCORE_BRANCH,	 R_SCORE_PC19},
+  {BFD_RELOC_SCORE16_JMP,	 R_SCORE16_11},
+  {BFD_RELOC_SCORE16_BRANCH,	 R_SCORE16_PC8},
+  {BFD_RELOC_32,		 R_SCORE_ABS32},
+  {BFD_RELOC_16,		 R_SCORE_ABS16},
+  {BFD_RELOC_SCORE_DUMMY2,	 R_SCORE_DUMMY2},
+  {BFD_RELOC_SCORE_GPREL15,	 R_SCORE_GP15},
+  {BFD_RELOC_VTABLE_INHERIT,	 R_SCORE_GNU_VTINHERIT},
+  {BFD_RELOC_VTABLE_ENTRY,	 R_SCORE_GNU_VTENTRY},
+  {BFD_RELOC_SCORE_GOT15,	 R_SCORE_GOT15},
+  {BFD_RELOC_SCORE_GOT_LO16,	 R_SCORE_GOT_LO16},
+  {BFD_RELOC_SCORE_CALL15,	 R_SCORE_CALL15},
+  {BFD_RELOC_GPREL32,		 R_SCORE_GPREL32},
+  {BFD_RELOC_32_PCREL,		 R_SCORE_REL32},
+  {BFD_RELOC_SCORE_DUMMY_HI16,	 R_SCORE_DUMMY_HI16},
 };
 
 static INLINE hashval_t
@@ -895,8 +895,8 @@ score_elf_got_entry_hash (const void *en
   return entry->symndx
     + (! entry->abfd ? score_elf_hash_bfd_vma (entry->d.address)
        : entry->abfd->id
-         + (entry->symndx >= 0 ? score_elf_hash_bfd_vma (entry->d.addend)
-            : entry->d.h->root.root.root.hash));
+	 + (entry->symndx >= 0 ? score_elf_hash_bfd_vma (entry->d.addend)
+	    : entry->d.h->root.root.root.hash));
 }
 
 static int
@@ -907,8 +907,8 @@ score_elf_got_entry_eq (const void *entr
 
   return e1->abfd == e2->abfd && e1->symndx == e2->symndx
     && (! e1->abfd ? e1->d.address == e2->d.address
-        : e1->symndx >= 0 ? e1->d.addend == e2->d.addend
-        : e1->d.h == e2->d.h);
+	: e1->symndx >= 0 ? e1->d.addend == e2->d.addend
+	: e1->d.h == e2->d.h);
 }
 
 /* If H needs a GOT entry, assign it the highest available dynamic
@@ -931,7 +931,7 @@ score_elf_sort_hash_table_f (struct scor
   if (h->root.got.offset == 2)
     {
       if (hsd->max_unref_got_dynindx == hsd->min_got_dynindx)
-        hsd->low = (struct elf_link_hash_entry *) h;
+	hsd->low = (struct elf_link_hash_entry *) h;
       h->root.dynindx = hsd->max_unref_got_dynindx++;
     }
   else if (h->root.got.offset != 1)
@@ -984,7 +984,7 @@ score_elf_got_info (bfd *abfd, asection 
 
 static bfd_boolean
 score_elf_sort_hash_table (struct bfd_link_info *info,
-                           unsigned long max_local)
+			   unsigned long max_local)
 {
   struct score_elf_hash_sort_data hsd;
   struct score_got_info *g;
@@ -1014,7 +1014,7 @@ score_elf_sort_hash_table (struct bfd_li
      accommodate both the GOT and non-GOT symbols.  */
   BFD_ASSERT (hsd.max_non_got_dynindx <= hsd.min_got_dynindx);
   BFD_ASSERT ((unsigned long) hsd.max_unref_got_dynindx
-              <= elf_hash_table (info)->dynsymcount);
+	      <= elf_hash_table (info)->dynsymcount);
 
   /* Now we know which dynamic symbol has the lowest dynamic symbol
      table index in the GOT.  */
@@ -1028,13 +1028,13 @@ score_elf_sort_hash_table (struct bfd_li
 
 static const Elf_Internal_Rela *
 score_elf_next_relocation (bfd *abfd ATTRIBUTE_UNUSED, unsigned int r_type,
-                           const Elf_Internal_Rela *relocation,
-                           const Elf_Internal_Rela *relend)
+			   const Elf_Internal_Rela *relocation,
+			   const Elf_Internal_Rela *relend)
 {
   while (relocation < relend)
     {
       if (ELF32_R_TYPE (relocation->r_info) == r_type)
-        return relocation;
+	return relocation;
 
       ++relocation;
     }
@@ -1061,9 +1061,9 @@ score_elf_sort_dynamic_relocs (const voi
 /* Return whether a relocation is against a local symbol.  */
 static bfd_boolean
 score_elf_local_relocation_p (bfd *input_bfd,
-                              const Elf_Internal_Rela *relocation,
-                              asection **local_sections,
-                              bfd_boolean check_forced)
+			      const Elf_Internal_Rela *relocation,
+			      asection **local_sections,
+			      bfd_boolean check_forced)
 {
   unsigned long r_symndx;
   Elf_Internal_Shdr *symtab_hdr;
@@ -1083,13 +1083,13 @@ score_elf_local_relocation_p (bfd *input
     {
       /* Look up the hash table to check whether the symbol was forced local.  */
       h = (struct score_elf_link_hash_entry *)
-        elf_sym_hashes (input_bfd) [r_symndx - extsymoff];
+	elf_sym_hashes (input_bfd) [r_symndx - extsymoff];
       /* Find the real hash-table entry for this symbol.  */
       while (h->root.root.type == bfd_link_hash_indirect
-             || h->root.root.type == bfd_link_hash_warning)
-        h = (struct score_elf_link_hash_entry *) h->root.root.u.i.link;
+	     || h->root.root.type == bfd_link_hash_warning)
+	h = (struct score_elf_link_hash_entry *) h->root.root.u.i.link;
       if (h->root.forced_local)
-        return TRUE;
+	return TRUE;
     }
 
   return FALSE;
@@ -1114,9 +1114,9 @@ score_elf_rel_dyn_section (bfd *dynobj, 
 						    | SEC_LINKER_CREATED
 						    | SEC_READONLY));
       if (sreloc == NULL
-          || ! bfd_set_section_alignment (dynobj, sreloc,
-                                          SCORE_ELF_LOG_FILE_ALIGN (dynobj)))
-        return NULL;
+	  || ! bfd_set_section_alignment (dynobj, sreloc,
+					  SCORE_ELF_LOG_FILE_ALIGN (dynobj)))
+	return NULL;
     }
   return sreloc;
 }
@@ -1145,11 +1145,11 @@ score_elf_allocate_dynamic_relocations (
 
 static bfd_boolean
 score_elf_create_dynamic_relocation (bfd *output_bfd,
-                                     struct bfd_link_info *info,
-                                     const Elf_Internal_Rela *rel,
-                                     struct score_elf_link_hash_entry *h,
-                                     bfd_vma symbol,
-                                     bfd_vma *addendp, asection *input_section)
+				     struct bfd_link_info *info,
+				     const Elf_Internal_Rela *rel,
+				     struct score_elf_link_hash_entry *h,
+				     bfd_vma symbol,
+				     bfd_vma *addendp, asection *input_section)
 {
   Elf_Internal_Rela outrel[3];
   asection *sreloc;
@@ -1179,8 +1179,8 @@ score_elf_create_dynamic_relocation (bfd
   if (outrel[0].r_offset == MINUS_TWO)
     {
       /* The relocation field has been converted into a relative value of
-         some sort.  Functions like _bfd_elf_write_section_eh_frame expect
-         the field to be fully relocated, so add in the symbol's value.  */
+	 some sort.  Functions like _bfd_elf_write_section_eh_frame expect
+	 the field to be fully relocated, so add in the symbol's value.  */
       *addendp += symbol;
       return TRUE;
     }
@@ -1190,14 +1190,14 @@ score_elf_create_dynamic_relocation (bfd
   if (h != NULL
       && (! info->symbolic || !h->root.def_regular)
       /* h->root.dynindx may be -1 if this symbol was marked to
-         become local.  */
+	 become local.  */
       && h->root.dynindx != -1)
     {
       indx = h->root.dynindx;
-        /* ??? glibc's ld.so just adds the final GOT entry to the
-           relocation field.  It therefore treats relocs against
-           defined symbols in the same way as relocs against
-           undefined symbols.  */
+	/* ??? glibc's ld.so just adds the final GOT entry to the
+	   relocation field.  It therefore treats relocs against
+	   defined symbols in the same way as relocs against
+	   undefined symbols.  */
       defined_p = FALSE;
     }
   else
@@ -1235,11 +1235,11 @@ score_elf_create_dynamic_relocation (bfd
   /* Adjust the output offset of the relocation to reference the
      correct location in the output file.  */
   outrel[0].r_offset += (input_section->output_section->vma
-                         + input_section->output_offset);
+			 + input_section->output_offset);
   outrel[1].r_offset += (input_section->output_section->vma
-                         + input_section->output_offset);
+			 + input_section->output_offset);
   outrel[2].r_offset += (input_section->output_section->vma
-                         + input_section->output_offset);
+			 + input_section->output_offset);
 
   /* Put the relocation back out.  We have to use the special
      relocation outputter in the 64-bit case since the 64-bit
@@ -1260,8 +1260,8 @@ score_elf_create_dynamic_relocation (bfd
 
 static bfd_boolean
 score_elf_create_got_section (bfd *abfd,
-                              struct bfd_link_info *info,
-                              bfd_boolean maybe_exclude)
+			      struct bfd_link_info *info,
+			      bfd_boolean maybe_exclude)
 {
   flagword flags;
   asection *s;
@@ -1275,7 +1275,7 @@ score_elf_create_got_section (bfd *abfd,
   if (s)
     {
       if (! maybe_exclude)
-        s->flags &= ~SEC_EXCLUDE;
+	s->flags &= ~SEC_EXCLUDE;
       return TRUE;
     }
 
@@ -1297,8 +1297,8 @@ score_elf_create_got_section (bfd *abfd,
      are not creating a global offset table.  */
   bh = NULL;
   if (! (_bfd_generic_link_add_one_symbol
-         (info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL, s,
-          0, NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
+	 (info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL, s,
+	  0, NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
     return FALSE;
 
   h = (struct elf_link_hash_entry *) bh;
@@ -1324,7 +1324,7 @@ score_elf_create_got_section (bfd *abfd,
   g->next = NULL;
 
   g->got_entries = htab_try_create (1, score_elf_got_entry_hash,
-                                    score_elf_got_entry_eq, NULL);
+				    score_elf_got_entry_eq, NULL);
   if (g->got_entries == NULL)
     return FALSE;
   score_elf_section_data (s)->u.got_info = g;
@@ -1346,12 +1346,12 @@ score_elf_high (bfd_vma value)
 
 static struct score_got_entry *
 score_elf_create_local_got_entry (bfd *abfd,
-                                  bfd *ibfd ATTRIBUTE_UNUSED,
-                                  struct score_got_info *gg,
-                                  asection *sgot, bfd_vma value,
-                                  unsigned long r_symndx ATTRIBUTE_UNUSED,
-                                  struct score_elf_link_hash_entry *h ATTRIBUTE_UNUSED,
-                                  int r_type ATTRIBUTE_UNUSED)
+				  bfd *ibfd ATTRIBUTE_UNUSED,
+				  struct score_got_info *gg,
+				  asection *sgot, bfd_vma value,
+				  unsigned long r_symndx ATTRIBUTE_UNUSED,
+				  struct score_elf_link_hash_entry *h ATTRIBUTE_UNUSED,
+				  int r_type ATTRIBUTE_UNUSED)
 {
   struct score_got_entry entry, **loc;
   struct score_got_info *g;
@@ -1379,7 +1379,7 @@ score_elf_create_local_got_entry (bfd *a
       (*loc)->gotidx = -1;
       /* We didn't allocate enough space in the GOT.  */
       _bfd_error_handler
-        (_("not enough GOT space for local GOT entries"));
+	(_("not enough GOT space for local GOT entries"));
       bfd_set_error (bfd_error_bad_value);
       return NULL;
     }
@@ -1394,7 +1394,7 @@ score_elf_create_local_got_entry (bfd *a
 
 static bfd_vma
 score_elf_got16_entry (bfd *abfd, bfd *ibfd, struct bfd_link_info *info,
-                       bfd_vma value, bfd_boolean external)
+		       bfd_vma value, bfd_boolean external)
 {
   asection *sgot;
   struct score_got_info *g;
@@ -1403,16 +1403,16 @@ score_elf_got16_entry (bfd *abfd, bfd *i
   if (!external)
     {
       /* Although the ABI says that it is "the high-order 16 bits" that we
-         want, it is really the %high value.  The complete value is
-         calculated with a `addiu' of a LO16 relocation, just as with a
-         HI16/LO16 pair.  */
+	 want, it is really the %high value.  The complete value is
+	 calculated with a `addiu' of a LO16 relocation, just as with a
+	 HI16/LO16 pair.  */
       value = score_elf_high (value) << 16;
     }
 
   g = score_elf_got_info (elf_hash_table (info)->dynobj, &sgot);
 
   entry = score_elf_create_local_got_entry (abfd, ibfd, g, sgot, value, 0, NULL,
-                                            R_SCORE_GOT15);
+					    R_SCORE_GOT15);
   if (entry)
     return entry->gotidx;
   else
@@ -1421,8 +1421,8 @@ score_elf_got16_entry (bfd *abfd, bfd *i
 
 void
 s7_bfd_score_elf_hide_symbol (struct bfd_link_info *info,
-                              struct elf_link_hash_entry *entry,
-                              bfd_boolean force_local)
+			      struct elf_link_hash_entry *entry,
+			      bfd_boolean force_local)
 {
   bfd *dynobj;
   asection *got;
@@ -1439,55 +1439,55 @@ s7_bfd_score_elf_hide_symbol (struct bfd
     {
       got = score_elf_got_section (dynobj, FALSE);
       if (got == NULL)
-        return;
+	return;
       g = score_elf_section_data (got)->u.got_info;
 
       if (g->next)
-        {
-          struct score_got_entry e;
-          struct score_got_info *gg = g;
-
-          /* Since we're turning what used to be a global symbol into a
-             local one, bump up the number of local entries of each GOT
-             that had an entry for it.  This will automatically decrease
-             the number of global entries, since global_gotno is actually
-             the upper limit of global entries.  */
-          e.abfd = dynobj;
-          e.symndx = -1;
-          e.d.h = h;
-
-          for (g = g->next; g != gg; g = g->next)
-            if (htab_find (g->got_entries, &e))
-              {
-                BFD_ASSERT (g->global_gotno > 0);
-                g->local_gotno++;
-                g->global_gotno--;
-              }
-
-          /* If this was a global symbol forced into the primary GOT, we
-             no longer need an entry for it.  We can't release the entry
-             at this point, but we must at least stop counting it as one
-             of the symbols that required a forced got entry.  */
-          if (h->root.got.offset == 2)
-            {
-              BFD_ASSERT (gg->assigned_gotno > 0);
-              gg->assigned_gotno--;
-            }
-        }
+	{
+	  struct score_got_entry e;
+	  struct score_got_info *gg = g;
+
+	  /* Since we're turning what used to be a global symbol into a
+	     local one, bump up the number of local entries of each GOT
+	     that had an entry for it.  This will automatically decrease
+	     the number of global entries, since global_gotno is actually
+	     the upper limit of global entries.  */
+	  e.abfd = dynobj;
+	  e.symndx = -1;
+	  e.d.h = h;
+
+	  for (g = g->next; g != gg; g = g->next)
+	    if (htab_find (g->got_entries, &e))
+	      {
+		BFD_ASSERT (g->global_gotno > 0);
+		g->local_gotno++;
+		g->global_gotno--;
+	      }
+
+	  /* If this was a global symbol forced into the primary GOT, we
+	     no longer need an entry for it.  We can't release the entry
+	     at this point, but we must at least stop counting it as one
+	     of the symbols that required a forced got entry.  */
+	  if (h->root.got.offset == 2)
+	    {
+	      BFD_ASSERT (gg->assigned_gotno > 0);
+	      gg->assigned_gotno--;
+	    }
+	}
       else if (g->global_gotno == 0 && g->global_gotsym == NULL)
-        /* If we haven't got through GOT allocation yet, just bump up the
-              number of local entries, as this symbol won't be counted as
-              global.  */
-        g->local_gotno++;
+	/* If we haven't got through GOT allocation yet, just bump up the
+	      number of local entries, as this symbol won't be counted as
+	      global.  */
+	g->local_gotno++;
       else if (h->root.got.offset == 1)
-        {
-          /* If we're past non-multi-GOT allocation and this symbol had
-                  been marked for a global got entry, give it a local entry
-                  instead.  */
-          BFD_ASSERT (g->global_gotno > 0);
-          g->local_gotno++;
-          g->global_gotno--;
-        }
+	{
+	  /* If we're past non-multi-GOT allocation and this symbol had
+		  been marked for a global got entry, give it a local entry
+		  instead.  */
+	  BFD_ASSERT (g->global_gotno > 0);
+	  g->local_gotno++;
+	  g->global_gotno--;
+	}
     }
 
   _bfd_elf_link_hash_hide_symbol (info, &h->root, force_local);
@@ -1499,9 +1499,9 @@ s7_bfd_score_elf_hide_symbol (struct bfd
 
 static bfd_boolean
 score_elf_record_global_got_symbol (struct elf_link_hash_entry *h,
-                                    bfd *abfd,
-                                    struct bfd_link_info *info,
-                                    struct score_got_info *g)
+				    bfd *abfd,
+				    struct bfd_link_info *info,
+				    struct score_got_info *g)
 {
   struct score_got_entry entry, **loc;
 
@@ -1509,14 +1509,14 @@ score_elf_record_global_got_symbol (stru
   if (h->dynindx == -1)
     {
       switch (ELF_ST_VISIBILITY (h->other))
-        {
-        case STV_INTERNAL:
-        case STV_HIDDEN:
-          s7_bfd_score_elf_hide_symbol (info, h, TRUE);
-          break;
-        }
+	{
+	case STV_INTERNAL:
+	case STV_HIDDEN:
+	  s7_bfd_score_elf_hide_symbol (info, h, TRUE);
+	  break;
+	}
       if (!bfd_elf_link_record_dynamic_symbol (info, h))
-        return FALSE;
+	return FALSE;
     }
 
   entry.abfd = abfd;
@@ -1554,9 +1554,9 @@ score_elf_record_global_got_symbol (stru
 
 static bfd_boolean
 score_elf_record_local_got_symbol (bfd *abfd,
-                                   long symndx,
-                                   bfd_vma addend,
-                                   struct score_got_info *g)
+				   long symndx,
+				   bfd_vma addend,
+				   struct score_got_info *g)
 {
   struct score_got_entry entry, **loc;
 
@@ -1585,8 +1585,8 @@ score_elf_record_local_got_symbol (bfd *
 
 static bfd_vma
 score_elf_local_got_index (bfd *abfd, bfd *ibfd, struct bfd_link_info *info,
-                           bfd_vma value, unsigned long r_symndx,
-                           struct score_elf_link_hash_entry *h, int r_type)
+			   bfd_vma value, unsigned long r_symndx,
+			   struct score_elf_link_hash_entry *h, int r_type)
 {
   asection *sgot;
   struct score_got_info *g;
@@ -1595,7 +1595,7 @@ score_elf_local_got_index (bfd *abfd, bf
   g = score_elf_got_info (elf_hash_table (info)->dynobj, &sgot);
 
   entry = score_elf_create_local_got_entry (abfd, ibfd, g, sgot, value,
-                                             r_symndx, h, r_type);
+					     r_symndx, h, r_type);
   if (!entry)
     return MINUS_ONE;
 
@@ -1633,7 +1633,7 @@ score_elf_global_got_index (bfd *abfd, s
 static bfd_vma
 score_elf_got_offset_from_index (bfd *dynobj,
 				 bfd *output_bfd,
-                                 bfd *input_bfd ATTRIBUTE_UNUSED,
+				 bfd *input_bfd ATTRIBUTE_UNUSED,
 				 bfd_vma got_index)
 {
   asection *sgot;
@@ -1663,30 +1663,30 @@ score_elf_resolve_final_got_entry (void 
       struct score_elf_link_hash_entry *h = entry->d.h;
 
       while (h->root.root.type == bfd_link_hash_indirect
-             || h->root.root.type == bfd_link_hash_warning)
-        h = (struct score_elf_link_hash_entry *) h->root.root.u.i.link;
+	     || h->root.root.type == bfd_link_hash_warning)
+	h = (struct score_elf_link_hash_entry *) h->root.root.u.i.link;
 
       if (entry->d.h == h)
-        return 1;
+	return 1;
 
       entry->d.h = h;
 
       /* If we can't find this entry with the new bfd hash, re-insert
-         it, and get the traversal restarted.  */
+	 it, and get the traversal restarted.  */
       if (! htab_find (got_entries, entry))
-        {
-          htab_clear_slot (got_entries, entryp);
-          entryp = htab_find_slot (got_entries, entry, INSERT);
-          if (! *entryp)
-            *entryp = entry;
-          /* Abort the traversal, since the whole table may have
-             moved, and leave it up to the parent to restart the
-             process.  */
-          *(htab_t *) p = NULL;
-          return 0;
-        }
+	{
+	  htab_clear_slot (got_entries, entryp);
+	  entryp = htab_find_slot (got_entries, entry, INSERT);
+	  if (! *entryp)
+	    *entryp = entry;
+	  /* Abort the traversal, since the whole table may have
+	     moved, and leave it up to the parent to restart the
+	     process.  */
+	  *(htab_t *) p = NULL;
+	  return 0;
+	}
       /* We might want to decrement the global_gotno count, but it's
-         either too early or too late for that at this point.  */
+	 either too early or too late for that at this point.  */
     }
 
   return 1;
@@ -1704,8 +1704,8 @@ score_elf_resolve_final_got_entries (str
       got_entries = g->got_entries;
 
       htab_traverse (got_entries,
-                     score_elf_resolve_final_got_entry,
-                     &got_entries);
+		     score_elf_resolve_final_got_entry,
+		     &got_entries);
     }
   while (got_entries == NULL);
 }
@@ -1714,9 +1714,9 @@ score_elf_resolve_final_got_entries (str
 
 static void
 score_elf_add_to_rel (bfd *abfd,
-                      bfd_byte *address,
-                      reloc_howto_type *howto,
-                      bfd_signed_vma increment)
+		      bfd_byte *address,
+		      reloc_howto_type *howto,
+		      bfd_signed_vma increment)
 {
   bfd_signed_vma addend;
   bfd_vma contents;
@@ -1740,11 +1740,11 @@ score_elf_add_to_rel (bfd *abfd,
     {
     case R_SCORE_PC19:
       offset =
-        (((contents & howto->src_mask) & 0x3ff0000) >> 6) | ((contents & howto->src_mask) & 0x3ff);
+	(((contents & howto->src_mask) & 0x3ff0000) >> 6) | ((contents & howto->src_mask) & 0x3ff);
       offset += increment;
       contents =
-        (contents & ~howto->
-         src_mask) | (((offset << 6) & howto->src_mask) & 0x3ff0000) | (offset & 0x3ff);
+	(contents & ~howto->
+	 src_mask) | (((offset << 6) & howto->src_mask) & 0x3ff0000) | (offset & 0x3ff);
       bfd_put_32 (abfd, contents, address);
       break;
     case R_SCORE_HI16:
@@ -1757,7 +1757,7 @@ score_elf_add_to_rel (bfd *abfd,
       uvalue = increment + offset;
       hi16_offset = (uvalue >> 16) << 1;
       hi16_value = (hi16_addend & (~(howto->dst_mask)))
-        | (hi16_offset & 0x7fff) | ((hi16_offset << 1) & 0x30000);
+	| (hi16_offset & 0x7fff) | ((hi16_offset << 1) & 0x30000);
       bfd_put_32 (abfd, hi16_value, address - 4);
       offset = (uvalue & 0xffff) << 1;
       contents = (contents & (~(howto->dst_mask))) | (offset & 0x7fff) | ((offset << 1) & 0x30000);
@@ -1765,11 +1765,11 @@ score_elf_add_to_rel (bfd *abfd,
       break;
     case R_SCORE_24:
       offset =
-        (((contents & howto->src_mask) >> 1) & 0x1ff8000) | ((contents & howto->src_mask) & 0x7fff);
+	(((contents & howto->src_mask) >> 1) & 0x1ff8000) | ((contents & howto->src_mask) & 0x7fff);
       offset += increment;
       contents =
-        (contents & ~howto->
-         src_mask) | (((offset << 1) & howto->src_mask) & 0x3ff0000) | (offset & 0x7fff);
+	(contents & ~howto->
+	 src_mask) | (((offset << 1) & howto->src_mask) & 0x3ff0000) | (offset & 0x7fff);
       bfd_put_32 (abfd, contents, address);
       break;
     case R_SCORE16_11:
@@ -1805,20 +1805,20 @@ score_elf_add_to_rel (bfd *abfd,
 
 static bfd_reloc_status_type
 score_elf_final_link_relocate (reloc_howto_type *howto,
-                               bfd *input_bfd,
-                               bfd *output_bfd,
-                               asection *input_section,
-                               bfd_byte *contents,
-                               Elf_Internal_Rela *rel,
-                               Elf_Internal_Rela *relocs,
-                               bfd_vma symbol,
-                               struct bfd_link_info *info,
-                               const char *sym_name ATTRIBUTE_UNUSED,
-                               int sym_flags ATTRIBUTE_UNUSED,
-                               struct score_elf_link_hash_entry *h,
-                               Elf_Internal_Sym *local_syms,
-                               asection **local_sections,
-                               bfd_boolean gp_disp_p)
+			       bfd *input_bfd,
+			       bfd *output_bfd,
+			       asection *input_section,
+			       bfd_byte *contents,
+			       Elf_Internal_Rela *rel,
+			       Elf_Internal_Rela *relocs,
+			       bfd_vma symbol,
+			       struct bfd_link_info *info,
+			       const char *sym_name ATTRIBUTE_UNUSED,
+			       int sym_flags ATTRIBUTE_UNUSED,
+			       struct score_elf_link_hash_entry *h,
+			       Elf_Internal_Sym *local_syms,
+			       asection **local_sections,
+			       bfd_boolean gp_disp_p)
 {
   unsigned long r_type;
   unsigned long r_symndx;
@@ -1859,22 +1859,22 @@ score_elf_final_link_relocate (reloc_how
 	    elf_gp (output_bfd) += bh->u.def.section->output_section->vma;
 	}
       else if (bfd_link_relocatable (info))
-        {
-          bfd_vma lo = -1;
+	{
+	  bfd_vma lo = -1;
 
-          /* Find the GP-relative section with the lowest offset.  */
-          for (o = output_bfd->sections; o != NULL; o = o->next)
-            if (o->vma < lo)
-              lo = o->vma;
-          /* And calculate GP relative to that.  */
-          elf_gp (output_bfd) = lo + ELF_SCORE_GP_OFFSET (input_bfd);
-        }
+	  /* Find the GP-relative section with the lowest offset.  */
+	  for (o = output_bfd->sections; o != NULL; o = o->next)
+	    if (o->vma < lo)
+	      lo = o->vma;
+	  /* And calculate GP relative to that.  */
+	  elf_gp (output_bfd) = lo + ELF_SCORE_GP_OFFSET (input_bfd);
+	}
       else
-        {
-          /* If the relocate_section function needs to do a reloc
-             involving the GP value, it should make a reloc_dangerous
-             callback to warn that GP is not defined.  */
-        }
+	{
+	  /* If the relocate_section function needs to do a reloc
+	     involving the GP value, it should make a reloc_dangerous
+	     callback to warn that GP is not defined.  */
+	}
     }
 
   /* Parse the relocation.  */
@@ -1891,36 +1891,34 @@ score_elf_final_link_relocate (reloc_how
 
       symbol = sec->output_section->vma + sec->output_offset;
       if (ELF_ST_TYPE (sym->st_info) != STT_SECTION
-          || (sec->flags & SEC_MERGE))
-        symbol += sym->st_value;
+	  || (sec->flags & SEC_MERGE))
+	symbol += sym->st_value;
       if ((sec->flags & SEC_MERGE)
-          && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
-        merge_p = 1;
+	  && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
+	merge_p = 1;
     }
 
   if (r_type == R_SCORE_GOT15)
     {
       const Elf_Internal_Rela *relend;
       const Elf_Internal_Rela *lo16_rel;
-      const struct elf_backend_data *bed;
       bfd_vma lo_value = 0;
 
-      bed = get_elf_backend_data (output_bfd);
-      relend = relocs + input_section->reloc_count * bed->s->int_rels_per_ext_rel;
+      relend = relocs + input_section->reloc_count;
       lo16_rel = score_elf_next_relocation (input_bfd, R_SCORE_GOT_LO16, rel, relend);
       if ((local_p) && (lo16_rel != NULL))
-        {
-          bfd_vma tmp = 0;
-          tmp = bfd_get_32 (input_bfd, contents + lo16_rel->r_offset);
-          lo_value = (((tmp >> 16) & 0x3) << 14) | ((tmp & 0x7fff) >> 1);
-          if (merge_p)
-            {
-              asection *msec = sec;
-              lo_value = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, lo_value);
-              lo_value -= symbol;
-              lo_value += msec->output_section->vma + msec->output_offset;
-            }
-        }
+	{
+	  bfd_vma tmp = 0;
+	  tmp = bfd_get_32 (input_bfd, contents + lo16_rel->r_offset);
+	  lo_value = (((tmp >> 16) & 0x3) << 14) | ((tmp & 0x7fff) >> 1);
+	  if (merge_p)
+	    {
+	      asection *msec = sec;
+	      lo_value = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, lo_value);
+	      lo_value -= symbol;
+	      lo_value += msec->output_section->vma + msec->output_offset;
+	    }
+	}
       addend = lo_value;
     }
   else
@@ -1932,30 +1930,28 @@ score_elf_final_link_relocate (reloc_how
   if (local_p && !merge_p)
     {
       if (r_type == R_SCORE_GOT15)
-        {
-          const Elf_Internal_Rela *relend;
-          const Elf_Internal_Rela *lo16_rel;
-          const struct elf_backend_data *bed;
-          bfd_vma lo_value = 0;
-
-          value = bfd_get_32 (input_bfd, contents + rel->r_offset);
-          addend = value & 0x7fff;
-          if ((addend & 0x4000) == 0x4000)
-            addend |= 0xffffc000;
-
-          bed = get_elf_backend_data (output_bfd);
-          relend = relocs + input_section->reloc_count * bed->s->int_rels_per_ext_rel;
-          lo16_rel = score_elf_next_relocation (input_bfd, R_SCORE_GOT_LO16, rel, relend);
-          if ((local_p) && (lo16_rel != NULL))
-            {
-              bfd_vma tmp = 0;
-              tmp = bfd_get_32 (input_bfd, contents + lo16_rel->r_offset);
-              lo_value = (((tmp >> 16) & 0x3) << 14) | ((tmp & 0x7fff) >> 1);
-            }
-
-          addend <<= 16;
-          addend += lo_value;
-        }
+	{
+	  const Elf_Internal_Rela *relend;
+	  const Elf_Internal_Rela *lo16_rel;
+	  bfd_vma lo_value = 0;
+
+	  value = bfd_get_32 (input_bfd, contents + rel->r_offset);
+	  addend = value & 0x7fff;
+	  if ((addend & 0x4000) == 0x4000)
+	    addend |= 0xffffc000;
+
+	  relend = relocs + input_section->reloc_count;
+	  lo16_rel = score_elf_next_relocation (input_bfd, R_SCORE_GOT_LO16, rel, relend);
+	  if ((local_p) && (lo16_rel != NULL))
+	    {
+	      bfd_vma tmp = 0;
+	      tmp = bfd_get_32 (input_bfd, contents + lo16_rel->r_offset);
+	      lo_value = (((tmp >> 16) & 0x3) << 14) | ((tmp & 0x7fff) >> 1);
+	    }
+
+	  addend <<= 16;
+	  addend += lo_value;
+	}
     }
 
   local_p = score_elf_local_relocation_p (input_bfd, rel, local_sections, TRUE);
@@ -1967,39 +1963,39 @@ score_elf_final_link_relocate (reloc_how
     case R_SCORE_CALL15:
     case R_SCORE_GOT15:
       if (!local_p)
-        {
-          g = score_elf_global_got_index (elf_hash_table (info)->dynobj,
-                                          (struct elf_link_hash_entry *) h);
-          if ((! elf_hash_table(info)->dynamic_sections_created
-               || (bfd_link_pic (info)
-                   && (info->symbolic || h->root.dynindx == -1)
-                   && h->root.def_regular)))
-            {
-              /* This is a static link or a -Bsymbolic link.  The
-                 symbol is defined locally, or was forced to be local.
-                 We must initialize this entry in the GOT.  */
-              bfd *tmpbfd = elf_hash_table (info)->dynobj;
-              asection *sgot = score_elf_got_section (tmpbfd, FALSE);
-              bfd_put_32 (tmpbfd, value, sgot->contents + g);
-            }
-        }
+	{
+	  g = score_elf_global_got_index (elf_hash_table (info)->dynobj,
+					  (struct elf_link_hash_entry *) h);
+	  if ((! elf_hash_table(info)->dynamic_sections_created
+	       || (bfd_link_pic (info)
+		   && (info->symbolic || h->root.dynindx == -1)
+		   && h->root.def_regular)))
+	    {
+	      /* This is a static link or a -Bsymbolic link.  The
+		 symbol is defined locally, or was forced to be local.
+		 We must initialize this entry in the GOT.  */
+	      bfd *tmpbfd = elf_hash_table (info)->dynobj;
+	      asection *sgot = score_elf_got_section (tmpbfd, FALSE);
+	      bfd_put_32 (tmpbfd, value, sgot->contents + g);
+	    }
+	}
       else if (r_type == R_SCORE_GOT15 || r_type == R_SCORE_CALL15)
-        {
-          /* There's no need to create a local GOT entry here; the
-             calculation for a local GOT15 entry does not involve G.  */
-          ;
-        }
+	{
+	  /* There's no need to create a local GOT entry here; the
+	     calculation for a local GOT15 entry does not involve G.  */
+	  ;
+	}
       else
-        {
-          g = score_elf_local_got_index (output_bfd, input_bfd, info,
-                                         symbol + addend, r_symndx, h, r_type);
-            if (g == MINUS_ONE)
-            return bfd_reloc_outofrange;
-        }
+	{
+	  g = score_elf_local_got_index (output_bfd, input_bfd, info,
+					 symbol + addend, r_symndx, h, r_type);
+	    if (g == MINUS_ONE)
+	    return bfd_reloc_outofrange;
+	}
 
       /* Convert GOT indices to actual offsets.  */
       g = score_elf_got_offset_from_index (elf_hash_table (info)->dynobj,
-                                           output_bfd, input_bfd, g);
+					   output_bfd, input_bfd, g);
       break;
 
     case R_SCORE_HI16:
@@ -2024,35 +2020,35 @@ score_elf_final_link_relocate (reloc_how
     case R_SCORE_ABS32:
     case R_SCORE_REL32:
       if ((bfd_link_pic (info)
-           || (elf_hash_table (info)->dynamic_sections_created
-               && h != NULL
-               && h->root.def_dynamic
-               && !h->root.def_regular))
-           && r_symndx != STN_UNDEF
-           && (input_section->flags & SEC_ALLOC) != 0)
-        {
-          /* If we're creating a shared library, or this relocation is against a symbol
-             in a shared library, then we can't know where the symbol will end up.
-             So, we create a relocation record in the output, and leave the job up
-             to the dynamic linker.  */
-          value = addend;
-          if (!score_elf_create_dynamic_relocation (output_bfd, info, rel, h,
-                                                    symbol, &value,
-                                                    input_section))
-            return bfd_reloc_undefined;
-        }
+	   || (elf_hash_table (info)->dynamic_sections_created
+	       && h != NULL
+	       && h->root.def_dynamic
+	       && !h->root.def_regular))
+	   && r_symndx != STN_UNDEF
+	   && (input_section->flags & SEC_ALLOC) != 0)
+	{
+	  /* If we're creating a shared library, or this relocation is against a symbol
+	     in a shared library, then we can't know where the symbol will end up.
+	     So, we create a relocation record in the output, and leave the job up
+	     to the dynamic linker.  */
+	  value = addend;
+	  if (!score_elf_create_dynamic_relocation (output_bfd, info, rel, h,
+						    symbol, &value,
+						    input_section))
+	    return bfd_reloc_undefined;
+	}
       else if (r_symndx == STN_UNDEF)
-        /* r_symndx will be STN_UNDEF (zero) only for relocs against symbols
-           from removed linkonce sections, or sections discarded by
-           a linker script.  */
-        value = 0;
+	/* r_symndx will be STN_UNDEF (zero) only for relocs against symbols
+	   from removed linkonce sections, or sections discarded by
+	   a linker script.  */
+	value = 0;
       else
-        {
-          if (r_type != R_SCORE_REL32)
-            value = symbol + addend;
-          else
-            value = addend;
-        }
+	{
+	  if (r_type != R_SCORE_REL32)
+	    value = symbol + addend;
+	  else
+	    value = addend;
+	}
       value &= howto->dst_mask;
       bfd_put_32 (input_bfd, value, hit_data);
       return bfd_reloc_ok;
@@ -2060,7 +2056,7 @@ score_elf_final_link_relocate (reloc_how
     case R_SCORE_ABS16:
       value += addend;
       if ((long) value > 0x7fff || (long) value < -0x8000)
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
       bfd_put_16 (input_bfd, value, hit_data);
       return bfd_reloc_ok;
 
@@ -2068,13 +2064,13 @@ score_elf_final_link_relocate (reloc_how
       addend = bfd_get_32 (input_bfd, hit_data);
       offset = (((addend & howto->src_mask) >> 1) & 0x1ff8000) | ((addend & howto->src_mask) & 0x7fff);
       if ((offset & 0x1000000) != 0)
-        offset |= 0xfe000000;
+	offset |= 0xfe000000;
       value += offset;
       abs_value = value - rel_addr;
       if ((abs_value & 0xfe000000) != 0)
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
       addend = (addend & ~howto->src_mask)
-                | (((value << 1) & howto->src_mask) & 0x3ff0000) | (value & 0x7fff);
+		| (((value << 1) & howto->src_mask) & 0x3ff0000) | (value & 0x7fff);
       bfd_put_32 (input_bfd, addend, hit_data);
       return bfd_reloc_ok;
 
@@ -2082,27 +2078,27 @@ score_elf_final_link_relocate (reloc_how
       addend = bfd_get_32 (input_bfd, hit_data);
       offset = (((addend & howto->src_mask) & 0x3ff0000) >> 6) | ((addend & howto->src_mask) & 0x3ff);
       if ((offset & 0x80000) != 0)
-        offset |= 0xfff00000;
+	offset |= 0xfff00000;
       abs_value = value = value - rel_addr + offset;
       /* exceed 20 bit : overflow.  */
       if ((abs_value & 0x80000000) == 0x80000000)
-        abs_value = 0xffffffff - value + 1;
+	abs_value = 0xffffffff - value + 1;
       if ((abs_value & 0xfff80000) != 0)
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
       addend = (addend & ~howto->src_mask)
-                | (((value << 6) & howto->src_mask) & 0x3ff0000) | (value & 0x3ff);
+		| (((value << 6) & howto->src_mask) & 0x3ff0000) | (value & 0x3ff);
       bfd_put_32 (input_bfd, addend, hit_data);
       return bfd_reloc_ok;
 
     case R_SCORE16_11:
       addend = bfd_get_16 (input_bfd, hit_data);
       offset = addend & howto->src_mask;
-      if ((offset & 0x800) != 0)        /* Offset is negative.  */
-        offset |= 0xfffff000;
+      if ((offset & 0x800) != 0)	/* Offset is negative.  */
+	offset |= 0xfffff000;
       value += offset;
       abs_value = value - rel_addr;
       if ((abs_value & 0xfffff000) != 0)
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
       addend = (addend & ~howto->src_mask) | (value & howto->src_mask);
       bfd_put_16 (input_bfd, addend, hit_data);
       return bfd_reloc_ok;
@@ -2110,12 +2106,12 @@ score_elf_final_link_relocate (reloc_how
     case R_SCORE16_PC8:
       addend = bfd_get_16 (input_bfd, hit_data);
       offset = (addend & howto->src_mask) << 1;
-      if ((offset & 0x100) != 0)        /* Offset is negative.  */
-        offset |= 0xfffffe00;
+      if ((offset & 0x100) != 0)	/* Offset is negative.  */
+	offset |= 0xfffffe00;
       abs_value = value = value - rel_addr + offset;
       /* Sign bit + exceed 9 bit.  */
       if (((value & 0xffffff00) != 0) && ((value & 0xffffff00) != 0xffffff00))
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
       value >>= 1;
       addend = (addend & ~howto->src_mask) | (value & howto->src_mask);
       bfd_put_16 (input_bfd, addend, hit_data);
@@ -2132,13 +2128,13 @@ score_elf_final_link_relocate (reloc_how
       offset = (hi16_offset << 16) | (offset & 0xffff);
 
       if (!gp_disp_p)
-        uvalue = value + offset;
+	uvalue = value + offset;
       else
-        uvalue = offset + gp - rel_addr + 4;
+	uvalue = offset + gp - rel_addr + 4;
 
       hi16_offset = (uvalue >> 16) << 1;
       hi16_value = (hi16_addend & (~(howto->dst_mask)))
-                        | (hi16_offset & 0x7fff) | ((hi16_offset << 1) & 0x30000);
+			| (hi16_offset & 0x7fff) | ((hi16_offset << 1) & 0x30000);
       bfd_put_32 (input_bfd, hi16_value, hit_data - 4);
       offset = (uvalue & 0xffff) << 1;
       value = (addend & (~(howto->dst_mask))) | (offset & 0x7fff) | ((offset << 1) & 0x30000);
@@ -2149,10 +2145,10 @@ score_elf_final_link_relocate (reloc_how
       addend = bfd_get_32 (input_bfd, hit_data);
       offset = addend & 0x7fff;
       if ((offset & 0x4000) == 0x4000)
-        offset |= 0xffffc000;
+	offset |= 0xffffc000;
       value = value + offset - gp;
       if (((value & 0xffffc000) != 0) && ((value & 0xffffc000) != 0xffffc000))
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
       value = (addend & ~howto->src_mask) | (value & howto->src_mask);
       bfd_put_32 (input_bfd, value, hit_data);
       return bfd_reloc_ok;
@@ -2160,27 +2156,27 @@ score_elf_final_link_relocate (reloc_how
     case R_SCORE_GOT15:
     case R_SCORE_CALL15:
       if (local_p)
-        {
-          bfd_boolean forced;
+	{
+	  bfd_boolean forced;
 
-          /* The special case is when the symbol is forced to be local.  We need the
-             full address in the GOT since no R_SCORE_GOT_LO16 relocation follows.  */
-          forced = ! score_elf_local_relocation_p (input_bfd, rel,
-                                                   local_sections, FALSE);
-          value = score_elf_got16_entry (output_bfd, input_bfd, info,
-                                         symbol + addend, forced);
-          if (value == MINUS_ONE)
-            return bfd_reloc_outofrange;
-          value = score_elf_got_offset_from_index (elf_hash_table (info)->dynobj,
-                                                   output_bfd, input_bfd, value);
-        }
+	  /* The special case is when the symbol is forced to be local.  We need the
+	     full address in the GOT since no R_SCORE_GOT_LO16 relocation follows.  */
+	  forced = ! score_elf_local_relocation_p (input_bfd, rel,
+						   local_sections, FALSE);
+	  value = score_elf_got16_entry (output_bfd, input_bfd, info,
+					 symbol + addend, forced);
+	  if (value == MINUS_ONE)
+	    return bfd_reloc_outofrange;
+	  value = score_elf_got_offset_from_index (elf_hash_table (info)->dynobj,
+						   output_bfd, input_bfd, value);
+	}
       else
-        {
-          value = g;
-        }
+	{
+	  value = g;
+	}
 
       if ((long) value > 0x3fff || (long) value < -0x4000)
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
 
       addend = bfd_get_32 (input_bfd, hit_data);
       value = (addend & ~howto->dst_mask) | (value & howto->dst_mask);
@@ -2198,7 +2194,7 @@ score_elf_final_link_relocate (reloc_how
       value = (((addend >> 16) & 0x3) << 14) | ((addend & 0x7fff) >> 1);
       value += symbol;
       value = (addend & (~(howto->dst_mask))) | ((value & 0x3fff) << 1)
-               | (((value >> 14) & 0x3) << 16);
+	       | (((value >> 14) & 0x3) << 16);
 
       bfd_put_32 (input_bfd, value, hit_data);
       return bfd_reloc_ok;
@@ -2220,8 +2216,8 @@ score_elf_final_link_relocate (reloc_how
 
 void
 s7_bfd_score_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
-                            arelent *bfd_reloc,
-                            Elf_Internal_Rela *elf_reloc)
+			    arelent *bfd_reloc,
+			    Elf_Internal_Rela *elf_reloc)
 {
   unsigned int r_type;
 
@@ -2236,13 +2232,13 @@ s7_bfd_score_info_to_howto (bfd *abfd AT
 
 bfd_boolean
 s7_bfd_score_elf_relocate_section (bfd *output_bfd,
-                                   struct bfd_link_info *info,
-                                   bfd *input_bfd,
-                                   asection *input_section,
-                                   bfd_byte *contents,
-                                   Elf_Internal_Rela *relocs,
-                                   Elf_Internal_Sym *local_syms,
-                                   asection **local_sections)
+				   struct bfd_link_info *info,
+				   bfd *input_bfd,
+				   asection *input_section,
+				   bfd_byte *contents,
+				   Elf_Internal_Rela *relocs,
+				   Elf_Internal_Sym *local_syms,
+				   asection **local_sections)
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Rela *rel;
@@ -2258,19 +2254,19 @@ s7_bfd_score_elf_relocate_section (bfd *
     {
       bfd_size_type dynsecsymcount = 0;
       if (bfd_link_pic (info))
-        {
-          asection * p;
-          const struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
-
-          for (p = output_bfd->sections; p ; p = p->next)
-            if ((p->flags & SEC_EXCLUDE) == 0
-                && (p->flags & SEC_ALLOC) != 0
-                && !(*bed->elf_backend_omit_section_dynsym) (output_bfd, info, p))
-              ++ dynsecsymcount;
-        }
+	{
+	  asection * p;
+	  const struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
+
+	  for (p = output_bfd->sections; p ; p = p->next)
+	    if ((p->flags & SEC_EXCLUDE) == 0
+		&& (p->flags & SEC_ALLOC) != 0
+		&& !(*bed->elf_backend_omit_section_dynsym) (output_bfd, info, p))
+	      ++ dynsecsymcount;
+	}
 
       if (!score_elf_sort_hash_table (info, dynsecsymcount + 1))
-        return FALSE;
+	return FALSE;
     }
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -2300,270 +2296,268 @@ s7_bfd_score_elf_relocate_section (bfd *
       sec = NULL;
 
       if (r_symndx < extsymoff)
-        {
-          sym = local_syms + r_symndx;
-          sec = local_sections[r_symndx];
-          relocation = sec->output_section->vma + sec->output_offset;
-          name = bfd_elf_sym_name (input_bfd, symtab_hdr, sym, sec);
-
-          if (!bfd_link_relocatable (info))
-            {
-              if (ELF_ST_TYPE (sym->st_info) != STT_SECTION
-                      || (sec->flags & SEC_MERGE))
-                {
-                      relocation += sym->st_value;
-                    }
-
-              if ((sec->flags & SEC_MERGE)
-                      && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
-                {
-                  asection *msec;
-                  bfd_vma addend, value;
-
-                  switch (r_type)
-                    {
-                    case R_SCORE_HI16:
-                      break;
-                    case R_SCORE_LO16:
-                      hi16_addend = bfd_get_32 (input_bfd, contents + rel->r_offset - 4);
-                      hi16_offset = ((((hi16_addend >> 16) & 0x3) << 15) | (hi16_addend & 0x7fff)) >> 1;
-                      value = bfd_get_32 (input_bfd, contents + rel->r_offset);
-                      offset = ((((value >> 16) & 0x3) << 15) | (value & 0x7fff)) >> 1;
-                      addend = (hi16_offset << 16) | (offset & 0xffff);
-                      msec = sec;
-                      addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend);
-                      addend -= relocation;
-                      addend += msec->output_section->vma + msec->output_offset;
-                      uvalue = addend;
-                      hi16_offset = (uvalue >> 16) << 1;
-                      hi16_value = (hi16_addend & (~(howto->dst_mask)))
-                        | (hi16_offset & 0x7fff) | ((hi16_offset << 1) & 0x30000);
-                      bfd_put_32 (input_bfd, hi16_value, contents + rel->r_offset - 4);
-                      offset = (uvalue & 0xffff) << 1;
-                      value = (value & (~(howto->dst_mask)))
-                        | (offset & 0x7fff) | ((offset << 1) & 0x30000);
-                      bfd_put_32 (input_bfd, value, contents + rel->r_offset);
-                      break;
-                    case R_SCORE_GOT_LO16:
-                      value = bfd_get_32 (input_bfd, contents + rel->r_offset);
-                      addend = (((value >> 16) & 0x3) << 14) | ((value & 0x7fff) >> 1);
-                      msec = sec;
-                      addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend) - relocation;
-                      addend += msec->output_section->vma + msec->output_offset;
-                      value = (value & (~(howto->dst_mask))) | ((addend & 0x3fff) << 1)
-                               | (((addend >> 14) & 0x3) << 16);
-
-                      bfd_put_32 (input_bfd, value, contents + rel->r_offset);
-                      break;
-                    default:
-                      value = bfd_get_32 (input_bfd, contents + rel->r_offset);
-                      /* Get the (signed) value from the instruction.  */
-                      addend = value & howto->src_mask;
-                      if (addend & ((howto->src_mask + 1) >> 1))
-                        {
-                          bfd_signed_vma mask;
-
-                          mask = -1;
-                          mask &= ~howto->src_mask;
-                          addend |= mask;
-                        }
-                      msec = sec;
-                      addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend) - relocation;
-                      addend += msec->output_section->vma + msec->output_offset;
-                      value = (value & ~howto->dst_mask) | (addend & howto->dst_mask);
-                      bfd_put_32 (input_bfd, value, contents + rel->r_offset);
-                      break;
-                    }
-                }
-            }
-        }
+	{
+	  sym = local_syms + r_symndx;
+	  sec = local_sections[r_symndx];
+	  relocation = sec->output_section->vma + sec->output_offset;
+	  name = bfd_elf_sym_name (input_bfd, symtab_hdr, sym, sec);
+
+	  if (!bfd_link_relocatable (info))
+	    {
+	      if (ELF_ST_TYPE (sym->st_info) != STT_SECTION
+		      || (sec->flags & SEC_MERGE))
+		{
+		      relocation += sym->st_value;
+		    }
+
+	      if ((sec->flags & SEC_MERGE)
+		      && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
+		{
+		  asection *msec;
+		  bfd_vma addend, value;
+
+		  switch (r_type)
+		    {
+		    case R_SCORE_HI16:
+		      break;
+		    case R_SCORE_LO16:
+		      hi16_addend = bfd_get_32 (input_bfd, contents + rel->r_offset - 4);
+		      hi16_offset = ((((hi16_addend >> 16) & 0x3) << 15) | (hi16_addend & 0x7fff)) >> 1;
+		      value = bfd_get_32 (input_bfd, contents + rel->r_offset);
+		      offset = ((((value >> 16) & 0x3) << 15) | (value & 0x7fff)) >> 1;
+		      addend = (hi16_offset << 16) | (offset & 0xffff);
+		      msec = sec;
+		      addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend);
+		      addend -= relocation;
+		      addend += msec->output_section->vma + msec->output_offset;
+		      uvalue = addend;
+		      hi16_offset = (uvalue >> 16) << 1;
+		      hi16_value = (hi16_addend & (~(howto->dst_mask)))
+			| (hi16_offset & 0x7fff) | ((hi16_offset << 1) & 0x30000);
+		      bfd_put_32 (input_bfd, hi16_value, contents + rel->r_offset - 4);
+		      offset = (uvalue & 0xffff) << 1;
+		      value = (value & (~(howto->dst_mask)))
+			| (offset & 0x7fff) | ((offset << 1) & 0x30000);
+		      bfd_put_32 (input_bfd, value, contents + rel->r_offset);
+		      break;
+		    case R_SCORE_GOT_LO16:
+		      value = bfd_get_32 (input_bfd, contents + rel->r_offset);
+		      addend = (((value >> 16) & 0x3) << 14) | ((value & 0x7fff) >> 1);
+		      msec = sec;
+		      addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend) - relocation;
+		      addend += msec->output_section->vma + msec->output_offset;
+		      value = (value & (~(howto->dst_mask))) | ((addend & 0x3fff) << 1)
+			       | (((addend >> 14) & 0x3) << 16);
+
+		      bfd_put_32 (input_bfd, value, contents + rel->r_offset);
+		      break;
+		    default:
+		      value = bfd_get_32 (input_bfd, contents + rel->r_offset);
+		      /* Get the (signed) value from the instruction.  */
+		      addend = value & howto->src_mask;
+		      if (addend & ((howto->src_mask + 1) >> 1))
+			{
+			  bfd_signed_vma mask;
+
+			  mask = -1;
+			  mask &= ~howto->src_mask;
+			  addend |= mask;
+			}
+		      msec = sec;
+		      addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend) - relocation;
+		      addend += msec->output_section->vma + msec->output_offset;
+		      value = (value & ~howto->dst_mask) | (addend & howto->dst_mask);
+		      bfd_put_32 (input_bfd, value, contents + rel->r_offset);
+		      break;
+		    }
+		}
+	    }
+	}
       else
-        {
-          /* For global symbols we look up the symbol in the hash-table.  */
-          h = ((struct score_elf_link_hash_entry *)
-               elf_sym_hashes (input_bfd) [r_symndx - extsymoff]);
+	{
+	  /* For global symbols we look up the symbol in the hash-table.  */
+	  h = ((struct score_elf_link_hash_entry *)
+	       elf_sym_hashes (input_bfd) [r_symndx - extsymoff]);
 
 	  if (info->wrap_hash != NULL
 	      && (input_section->flags & SEC_DEBUGGING) != 0)
 	    h = ((struct score_elf_link_hash_entry *)
 		  unwrap_hash_lookup (info, input_bfd, &h->root.root));
 
-          /* Find the real hash-table entry for this symbol.  */
-          while (h->root.root.type == bfd_link_hash_indirect
-                 || h->root.root.type == bfd_link_hash_warning)
-            h = (struct score_elf_link_hash_entry *) h->root.root.u.i.link;
-
-          /* Record the name of this symbol, for our caller.  */
-          name = h->root.root.root.string;
-
-          /* See if this is the special GP_DISP_LABEL symbol.  Note that such a
-             symbol must always be a global symbol.  */
-          if (strcmp (name, GP_DISP_LABEL) == 0)
-            {
-              /* Relocations against GP_DISP_LABEL are permitted only with
-                 R_SCORE_HI16 and R_SCORE_LO16 relocations.  */
-              if (r_type != R_SCORE_HI16 && r_type != R_SCORE_LO16)
-                return bfd_reloc_notsupported;
-
-              gp_disp_p = TRUE;
-            }
-
-          /* If this symbol is defined, calculate its address.  Note that
-              GP_DISP_LABEL is a magic symbol, always implicitly defined by the
-              linker, so it's inappropriate to check to see whether or not
-              its defined.  */
-          else if ((h->root.root.type == bfd_link_hash_defined
-                    || h->root.root.type == bfd_link_hash_defweak)
-                   && h->root.root.u.def.section)
-            {
-              sec = h->root.root.u.def.section;
-              if (sec->output_section)
-                relocation = (h->root.root.u.def.value
-                              + sec->output_section->vma
-                              + sec->output_offset);
-              else
-                {
-                  relocation = h->root.root.u.def.value;
-                }
-            }
-          else if (h->root.root.type == bfd_link_hash_undefweak)
-            /* We allow relocations against undefined weak symbols, giving
-               it the value zero, so that you can undefined weak functions
-               and check to see if they exist by looking at their addresses.  */
-            relocation = 0;
-          else if (info->unresolved_syms_in_objects == RM_IGNORE
-                   && ELF_ST_VISIBILITY (h->root.other) == STV_DEFAULT)
-            relocation = 0;
-          else if (strcmp (name, "_DYNAMIC_LINK") == 0)
-            {
-              /* If this is a dynamic link, we should have created a _DYNAMIC_LINK symbol
-                 in s7_bfd_score_elf_create_dynamic_sections.  Otherwise, we should define
-                 the symbol with a value of 0.  */
-              BFD_ASSERT (! bfd_link_pic (info));
-              BFD_ASSERT (bfd_get_section_by_name (output_bfd, ".dynamic") == NULL);
-              relocation = 0;
-            }
-          else if (!bfd_link_relocatable (info))
-            {
+	  /* Find the real hash-table entry for this symbol.  */
+	  while (h->root.root.type == bfd_link_hash_indirect
+		 || h->root.root.type == bfd_link_hash_warning)
+	    h = (struct score_elf_link_hash_entry *) h->root.root.u.i.link;
+
+	  /* Record the name of this symbol, for our caller.  */
+	  name = h->root.root.root.string;
+
+	  /* See if this is the special GP_DISP_LABEL symbol.  Note that such a
+	     symbol must always be a global symbol.  */
+	  if (strcmp (name, GP_DISP_LABEL) == 0)
+	    {
+	      /* Relocations against GP_DISP_LABEL are permitted only with
+		 R_SCORE_HI16 and R_SCORE_LO16 relocations.  */
+	      if (r_type != R_SCORE_HI16 && r_type != R_SCORE_LO16)
+		return bfd_reloc_notsupported;
+
+	      gp_disp_p = TRUE;
+	    }
+
+	  /* If this symbol is defined, calculate its address.  Note that
+	      GP_DISP_LABEL is a magic symbol, always implicitly defined by the
+	      linker, so it's inappropriate to check to see whether or not
+	      its defined.  */
+	  else if ((h->root.root.type == bfd_link_hash_defined
+		    || h->root.root.type == bfd_link_hash_defweak)
+		   && h->root.root.u.def.section)
+	    {
+	      sec = h->root.root.u.def.section;
+	      if (sec->output_section)
+		relocation = (h->root.root.u.def.value
+			      + sec->output_section->vma
+			      + sec->output_offset);
+	      else
+		{
+		  relocation = h->root.root.u.def.value;
+		}
+	    }
+	  else if (h->root.root.type == bfd_link_hash_undefweak)
+	    /* We allow relocations against undefined weak symbols, giving
+	       it the value zero, so that you can undefined weak functions
+	       and check to see if they exist by looking at their addresses.  */
+	    relocation = 0;
+	  else if (info->unresolved_syms_in_objects == RM_IGNORE
+		   && ELF_ST_VISIBILITY (h->root.other) == STV_DEFAULT)
+	    relocation = 0;
+	  else if (strcmp (name, "_DYNAMIC_LINK") == 0)
+	    {
+	      /* If this is a dynamic link, we should have created a _DYNAMIC_LINK symbol
+		 in s7_bfd_score_elf_create_dynamic_sections.  Otherwise, we should define
+		 the symbol with a value of 0.  */
+	      BFD_ASSERT (! bfd_link_pic (info));
+	      BFD_ASSERT (bfd_get_section_by_name (output_bfd, ".dynamic") == NULL);
+	      relocation = 0;
+	    }
+	  else if (!bfd_link_relocatable (info))
+	    {
 	      (*info->callbacks->undefined_symbol)
 		(info, h->root.root.root.string, input_bfd,
 		 input_section, rel->r_offset,
 		 (info->unresolved_syms_in_objects == RM_GENERATE_ERROR)
 		 || ELF_ST_VISIBILITY (h->root.other));
-              relocation = 0;
-            }
-        }
+	      relocation = 0;
+	    }
+	}
 
       if (sec != NULL && discarded_section (sec))
 	RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
 					 rel, 1, relend, howto, 0, contents);
 
       if (bfd_link_relocatable (info))
-        {
-          /* This is a relocatable link.  We don't have to change
-             anything, unless the reloc is against a section symbol,
-             in which case we have to adjust according to where the
-             section symbol winds up in the output section.  */
-          if (r_symndx < symtab_hdr->sh_info)
-            {
-              sym = local_syms + r_symndx;
-
-              if (r_type == R_SCORE_GOT15)
-                {
-                  const Elf_Internal_Rela *lo16_rel;
-                  const struct elf_backend_data *bed;
-                  bfd_vma lo_addend = 0, lo_value = 0;
-                  bfd_vma addend, value;
-
-                  value = bfd_get_32 (input_bfd, contents + rel->r_offset);
-                  addend = value & 0x7fff;
-                  if ((addend & 0x4000) == 0x4000)
-                    addend |= 0xffffc000;
-
-                  bed = get_elf_backend_data (output_bfd);
-                  relend = relocs + input_section->reloc_count * bed->s->int_rels_per_ext_rel;
-                  lo16_rel = score_elf_next_relocation (input_bfd, R_SCORE_GOT_LO16, rel, relend);
-                  if (lo16_rel != NULL)
-                    {
-                      lo_value = bfd_get_32 (input_bfd, contents + lo16_rel->r_offset);
-                      lo_addend = (((lo_value >> 16) & 0x3) << 14) | ((lo_value & 0x7fff) >> 1);
-                    }
-
-                  addend <<= 16;
-                  addend += lo_addend;
-
-                  if (ELF_ST_TYPE (sym->st_info) == STT_SECTION)
-                    addend += local_sections[r_symndx]->output_offset;
-
-                  lo_addend = addend & 0xffff;
-                  lo_value = (lo_value & (~(howto->dst_mask))) | ((lo_addend & 0x3fff) << 1)
-                              | (((lo_addend >> 14) & 0x3) << 16);
-                  bfd_put_32 (input_bfd, lo_value, contents + lo16_rel->r_offset);
-
-                  addend = addend >> 16;
-                  value = (value & ~howto->src_mask) | (addend & howto->src_mask);
-                  bfd_put_32 (input_bfd, value, contents + rel->r_offset);
-                }
-              else if (ELF_ST_TYPE (sym->st_info) == STT_SECTION)
-                {
-                  sec = local_sections[r_symndx];
-                  score_elf_add_to_rel (input_bfd, contents + rel->r_offset,
-                                        howto, (bfd_signed_vma) (sec->output_offset + sym->st_value));
-                }
-            }
-          continue;
-        }
+	{
+	  /* This is a relocatable link.  We don't have to change
+	     anything, unless the reloc is against a section symbol,
+	     in which case we have to adjust according to where the
+	     section symbol winds up in the output section.  */
+	  if (r_symndx < symtab_hdr->sh_info)
+	    {
+	      sym = local_syms + r_symndx;
+
+	      if (r_type == R_SCORE_GOT15)
+		{
+		  const Elf_Internal_Rela *lo16_rel;
+		  bfd_vma lo_addend = 0, lo_value = 0;
+		  bfd_vma addend, value;
+
+		  value = bfd_get_32 (input_bfd, contents + rel->r_offset);
+		  addend = value & 0x7fff;
+		  if ((addend & 0x4000) == 0x4000)
+		    addend |= 0xffffc000;
+
+		  relend = relocs + input_section->reloc_count;
+		  lo16_rel = score_elf_next_relocation (input_bfd, R_SCORE_GOT_LO16, rel, relend);
+		  if (lo16_rel != NULL)
+		    {
+		      lo_value = bfd_get_32 (input_bfd, contents + lo16_rel->r_offset);
+		      lo_addend = (((lo_value >> 16) & 0x3) << 14) | ((lo_value & 0x7fff) >> 1);
+		    }
+
+		  addend <<= 16;
+		  addend += lo_addend;
+
+		  if (ELF_ST_TYPE (sym->st_info) == STT_SECTION)
+		    addend += local_sections[r_symndx]->output_offset;
+
+		  lo_addend = addend & 0xffff;
+		  lo_value = (lo_value & (~(howto->dst_mask))) | ((lo_addend & 0x3fff) << 1)
+			      | (((lo_addend >> 14) & 0x3) << 16);
+		  bfd_put_32 (input_bfd, lo_value, contents + lo16_rel->r_offset);
+
+		  addend = addend >> 16;
+		  value = (value & ~howto->src_mask) | (addend & howto->src_mask);
+		  bfd_put_32 (input_bfd, value, contents + rel->r_offset);
+		}
+	      else if (ELF_ST_TYPE (sym->st_info) == STT_SECTION)
+		{
+		  sec = local_sections[r_symndx];
+		  score_elf_add_to_rel (input_bfd, contents + rel->r_offset,
+					howto, (bfd_signed_vma) (sec->output_offset + sym->st_value));
+		}
+	    }
+	  continue;
+	}
 
       /* This is a final link.  */
       r = score_elf_final_link_relocate (howto, input_bfd, output_bfd,
-                                         input_section, contents, rel, relocs,
-                                         relocation, info, name,
-                                         (h ? ELF_ST_TYPE ((unsigned int) h->root.root.type) :
-                                         ELF_ST_TYPE ((unsigned int) sym->st_info)), h, local_syms,
-                                         local_sections, gp_disp_p);
+					 input_section, contents, rel, relocs,
+					 relocation, info, name,
+					 (h ? ELF_ST_TYPE ((unsigned int) h->root.root.type) :
+					 ELF_ST_TYPE ((unsigned int) sym->st_info)), h, local_syms,
+					 local_sections, gp_disp_p);
 
       if (r != bfd_reloc_ok)
-        {
-          const char *msg = (const char *)0;
+	{
+	  const char *msg = (const char *)0;
 
-          switch (r)
-            {
-            case bfd_reloc_overflow:
-              /* If the overflowing reloc was to an undefined symbol,
-                 we have already printed one error message and there
-                 is no point complaining again.  */
-              if (!h || h->root.root.type != bfd_link_hash_undefined)
+	  switch (r)
+	    {
+	    case bfd_reloc_overflow:
+	      /* If the overflowing reloc was to an undefined symbol,
+		 we have already printed one error message and there
+		 is no point complaining again.  */
+	      if (!h || h->root.root.type != bfd_link_hash_undefined)
 		(*info->callbacks->reloc_overflow)
 		  (info, NULL, name, howto->name, (bfd_vma) 0,
 		   input_bfd, input_section, rel->r_offset);
-              break;
-            case bfd_reloc_undefined:
+	      break;
+	    case bfd_reloc_undefined:
 	      (*info->callbacks->undefined_symbol)
 		(info, name, input_bfd, input_section, rel->r_offset, TRUE);
-              break;
-
-            case bfd_reloc_outofrange:
-              msg = _("internal error: out of range error");
-              goto common_error;
-
-            case bfd_reloc_notsupported:
-              msg = _("internal error: unsupported relocation error");
-              goto common_error;
+	      break;
 
-            case bfd_reloc_dangerous:
-              msg = _("internal error: dangerous error");
-              goto common_error;
+	    case bfd_reloc_outofrange:
+	      msg = _("internal error: out of range error");
+	      goto common_error;
+
+	    case bfd_reloc_notsupported:
+	      msg = _("internal error: unsupported relocation error");
+	      goto common_error;
+
+	    case bfd_reloc_dangerous:
+	      msg = _("internal error: dangerous error");
+	      goto common_error;
 
-            default:
-              msg = _("internal error: unknown error");
-              /* Fall through.  */
+	    default:
+	      msg = _("internal error: unknown error");
+	      /* Fall through.  */
 
-            common_error:
+	    common_error:
 	      (*info->callbacks->warning) (info, msg, name, input_bfd,
 					   input_section, rel->r_offset);
-              break;
-            }
-        }
+	      break;
+	    }
+	}
     }
 
   return TRUE;
@@ -2574,9 +2568,9 @@ s7_bfd_score_elf_relocate_section (bfd *
 
 bfd_boolean
 s7_bfd_score_elf_check_relocs (bfd *abfd,
-                               struct bfd_link_info *info,
-                               asection *sec,
-                               const Elf_Internal_Rela *relocs)
+			       struct bfd_link_info *info,
+			       asection *sec,
+			       const Elf_Internal_Rela *relocs)
 {
   bfd *dynobj;
   Elf_Internal_Shdr *symtab_hdr;
@@ -2587,7 +2581,6 @@ s7_bfd_score_elf_check_relocs (bfd *abfd
   const Elf_Internal_Rela *rel_end;
   asection *sgot;
   asection *sreloc;
-  const struct elf_backend_data *bed;
 
   if (bfd_link_relocatable (info))
     return TRUE;
@@ -2606,18 +2599,17 @@ s7_bfd_score_elf_check_relocs (bfd *abfd
     {
       sgot = score_elf_got_section (dynobj, FALSE);
       if (sgot == NULL)
-        g = NULL;
+	g = NULL;
       else
-        {
-          BFD_ASSERT (score_elf_section_data (sgot) != NULL);
-          g = score_elf_section_data (sgot)->u.got_info;
-          BFD_ASSERT (g != NULL);
-        }
+	{
+	  BFD_ASSERT (score_elf_section_data (sgot) != NULL);
+	  g = score_elf_section_data (sgot)->u.got_info;
+	  BFD_ASSERT (g != NULL);
+	}
     }
 
   sreloc = NULL;
-  bed = get_elf_backend_data (abfd);
-  rel_end = relocs + sec->reloc_count * bed->s->int_rels_per_ext_rel;
+  rel_end = relocs + sec->reloc_count;
   for (rel = relocs; rel < rel_end; ++rel)
     {
       unsigned long r_symndx;
@@ -2628,180 +2620,176 @@ s7_bfd_score_elf_check_relocs (bfd *abfd
       r_type = ELF32_R_TYPE (rel->r_info);
 
       if (r_symndx < extsymoff)
-        {
-          h = NULL;
-        }
+	{
+	  h = NULL;
+	}
       else if (r_symndx >= extsymoff + NUM_SHDR_ENTRIES (symtab_hdr))
-        {
+	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
 	    (_("%B: Malformed reloc detected for section %A"), abfd, sec);
-          bfd_set_error (bfd_error_bad_value);
-          return FALSE;
-        }
+	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
+	}
       else
-        {
-          h = sym_hashes[r_symndx - extsymoff];
+	{
+	  h = sym_hashes[r_symndx - extsymoff];
 
-          /* This may be an indirect symbol created because of a version.  */
-          if (h != NULL)
-            {
-              while (h->root.type == bfd_link_hash_indirect)
-                h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	      /* PR15323, ref flags aren't set for references in the
-		 same object.  */
-	      h->root.non_ir_ref = 1;
-            }
-        }
+	  /* This may be an indirect symbol created because of a version.  */
+	  if (h != NULL)
+	    {
+	      while (h->root.type == bfd_link_hash_indirect)
+		h = (struct elf_link_hash_entry *) h->root.u.i.link;
+	    }
+	}
 
       /* Some relocs require a global offset table.  */
       if (dynobj == NULL || sgot == NULL)
-        {
-          switch (r_type)
-            {
-            case R_SCORE_GOT15:
-            case R_SCORE_CALL15:
-              if (dynobj == NULL)
-                elf_hash_table (info)->dynobj = dynobj = abfd;
-              if (!score_elf_create_got_section (dynobj, info, FALSE))
-                return FALSE;
-              g = score_elf_got_info (dynobj, &sgot);
-              break;
-            case R_SCORE_ABS32:
-            case R_SCORE_REL32:
-              if (dynobj == NULL
+	{
+	  switch (r_type)
+	    {
+	    case R_SCORE_GOT15:
+	    case R_SCORE_CALL15:
+	      if (dynobj == NULL)
+		elf_hash_table (info)->dynobj = dynobj = abfd;
+	      if (!score_elf_create_got_section (dynobj, info, FALSE))
+		return FALSE;
+	      g = score_elf_got_info (dynobj, &sgot);
+	      break;
+	    case R_SCORE_ABS32:
+	    case R_SCORE_REL32:
+	      if (dynobj == NULL
 		  && (bfd_link_pic (info) || h != NULL)
 		  && (sec->flags & SEC_ALLOC) != 0)
-                elf_hash_table (info)->dynobj = dynobj = abfd;
-              break;
-            default:
-              break;
-            }
-        }
+		elf_hash_table (info)->dynobj = dynobj = abfd;
+	      break;
+	    default:
+	      break;
+	    }
+	}
 
       if (!h && (r_type == R_SCORE_GOT_LO16))
-        {
-          if (! score_elf_record_local_got_symbol (abfd, r_symndx, rel->r_addend, g))
-            return FALSE;
-        }
+	{
+	  if (! score_elf_record_local_got_symbol (abfd, r_symndx, rel->r_addend, g))
+	    return FALSE;
+	}
 
       switch (r_type)
-        {
-        case R_SCORE_CALL15:
-          if (h == NULL)
-            {
+	{
+	case R_SCORE_CALL15:
+	  if (h == NULL)
+	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-                (_("%B: CALL15 reloc at 0x%lx not against global symbol"),
-                 abfd, (unsigned long) rel->r_offset);
-              bfd_set_error (bfd_error_bad_value);
-              return FALSE;
-            }
-          else
-            {
-              /* This symbol requires a global offset table entry.  */
-              if (! score_elf_record_global_got_symbol (h, abfd, info, g))
-                return FALSE;
-
-              /* We need a stub, not a plt entry for the undefined function.  But we record
-                 it as if it needs plt.  See _bfd_elf_adjust_dynamic_symbol.  */
-              h->needs_plt = 1;
-              h->type = STT_FUNC;
-            }
-          break;
-        case R_SCORE_GOT15:
-          if (h && ! score_elf_record_global_got_symbol (h, abfd, info, g))
-            return FALSE;
-          break;
-        case R_SCORE_ABS32:
-        case R_SCORE_REL32:
-          if ((bfd_link_pic (info) || h != NULL)
+		(_("%B: CALL15 reloc at %#Lx not against global symbol"),
+		 abfd, rel->r_offset);
+	      bfd_set_error (bfd_error_bad_value);
+	      return FALSE;
+	    }
+	  else
+	    {
+	      /* This symbol requires a global offset table entry.  */
+	      if (! score_elf_record_global_got_symbol (h, abfd, info, g))
+		return FALSE;
+
+	      /* We need a stub, not a plt entry for the undefined function.  But we record
+		 it as if it needs plt.  See _bfd_elf_adjust_dynamic_symbol.  */
+	      h->needs_plt = 1;
+	      h->type = STT_FUNC;
+	    }
+	  break;
+	case R_SCORE_GOT15:
+	  if (h && ! score_elf_record_global_got_symbol (h, abfd, info, g))
+	    return FALSE;
+	  break;
+	case R_SCORE_ABS32:
+	case R_SCORE_REL32:
+	  if ((bfd_link_pic (info) || h != NULL)
 	      && (sec->flags & SEC_ALLOC) != 0)
-            {
-              if (sreloc == NULL)
-                {
-                  sreloc = score_elf_rel_dyn_section (dynobj, TRUE);
-                  if (sreloc == NULL)
-                    return FALSE;
-                }
+	    {
+	      if (sreloc == NULL)
+		{
+		  sreloc = score_elf_rel_dyn_section (dynobj, TRUE);
+		  if (sreloc == NULL)
+		    return FALSE;
+		}
 #define SCORE_READONLY_SECTION (SEC_ALLOC | SEC_LOAD | SEC_READONLY)
-              if (bfd_link_pic (info))
-                {
-                  /* When creating a shared object, we must copy these reloc types into
-                     the output file as R_SCORE_REL32 relocs.  We make room for this reloc
-                     in the .rel.dyn reloc section.  */
-                  score_elf_allocate_dynamic_relocations (dynobj, 1);
-                  if ((sec->flags & SCORE_READONLY_SECTION)
-                      == SCORE_READONLY_SECTION)
-                    /* We tell the dynamic linker that there are
-                       relocations against the text segment.  */
-                    info->flags |= DF_TEXTREL;
-                }
-              else
-                {
-                  struct score_elf_link_hash_entry *hscore;
-
-                  /* We only need to copy this reloc if the symbol is
-                     defined in a dynamic object.  */
-                  hscore = (struct score_elf_link_hash_entry *) h;
-                  ++hscore->possibly_dynamic_relocs;
-                  if ((sec->flags & SCORE_READONLY_SECTION)
-                      == SCORE_READONLY_SECTION)
-                    /* We need it to tell the dynamic linker if there
-                       are relocations against the text segment.  */
-                    hscore->readonly_reloc = TRUE;
-                }
-
-              /* Even though we don't directly need a GOT entry for this symbol,
-                 a symbol must have a dynamic symbol table index greater that
-                 DT_SCORE_GOTSYM if there are dynamic relocations against it.  */
-              if (h != NULL)
-                {
-                  if (dynobj == NULL)
-                    elf_hash_table (info)->dynobj = dynobj = abfd;
-                  if (! score_elf_create_got_section (dynobj, info, TRUE))
-                    return FALSE;
-                  g = score_elf_got_info (dynobj, &sgot);
-                  if (! score_elf_record_global_got_symbol (h, abfd, info, g))
-                    return FALSE;
-                }
-            }
-          break;
-
-          /* This relocation describes the C++ object vtable hierarchy.
-             Reconstruct it for later use during GC.  */
-        case R_SCORE_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-          /* This relocation describes which C++ vtable entries are actually
-             used.  Record for later use during GC.  */
-        case R_SCORE_GNU_VTENTRY:
-          if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-        default:
-          break;
-        }
+	      if (bfd_link_pic (info))
+		{
+		  /* When creating a shared object, we must copy these reloc types into
+		     the output file as R_SCORE_REL32 relocs.  We make room for this reloc
+		     in the .rel.dyn reloc section.  */
+		  score_elf_allocate_dynamic_relocations (dynobj, 1);
+		  if ((sec->flags & SCORE_READONLY_SECTION)
+		      == SCORE_READONLY_SECTION)
+		    /* We tell the dynamic linker that there are
+		       relocations against the text segment.  */
+		    info->flags |= DF_TEXTREL;
+		}
+	      else
+		{
+		  struct score_elf_link_hash_entry *hscore;
+
+		  /* We only need to copy this reloc if the symbol is
+		     defined in a dynamic object.  */
+		  hscore = (struct score_elf_link_hash_entry *) h;
+		  ++hscore->possibly_dynamic_relocs;
+		  if ((sec->flags & SCORE_READONLY_SECTION)
+		      == SCORE_READONLY_SECTION)
+		    /* We need it to tell the dynamic linker if there
+		       are relocations against the text segment.  */
+		    hscore->readonly_reloc = TRUE;
+		}
+
+	      /* Even though we don't directly need a GOT entry for this symbol,
+		 a symbol must have a dynamic symbol table index greater that
+		 DT_SCORE_GOTSYM if there are dynamic relocations against it.  */
+	      if (h != NULL)
+		{
+		  if (dynobj == NULL)
+		    elf_hash_table (info)->dynobj = dynobj = abfd;
+		  if (! score_elf_create_got_section (dynobj, info, TRUE))
+		    return FALSE;
+		  g = score_elf_got_info (dynobj, &sgot);
+		  if (! score_elf_record_global_got_symbol (h, abfd, info, g))
+		    return FALSE;
+		}
+	    }
+	  break;
+
+	  /* This relocation describes the C++ object vtable hierarchy.
+	     Reconstruct it for later use during GC.  */
+	case R_SCORE_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	  /* This relocation describes which C++ vtable entries are actually
+	     used.  Record for later use during GC.  */
+	case R_SCORE_GNU_VTENTRY:
+	  if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+	default:
+	  break;
+	}
 
       /* We must not create a stub for a symbol that has relocations
-         related to taking the function's address.  */
+	 related to taking the function's address.  */
       switch (r_type)
-        {
-        default:
-          if (h != NULL)
-            {
-              struct score_elf_link_hash_entry *sh;
-
-              sh = (struct score_elf_link_hash_entry *) h;
-              sh->no_fn_stub = TRUE;
-            }
-          break;
-        case R_SCORE_CALL15:
-          break;
-        }
+	{
+	default:
+	  if (h != NULL)
+	    {
+	      struct score_elf_link_hash_entry *sh;
+
+	      sh = (struct score_elf_link_hash_entry *) h;
+	      sh->no_fn_stub = TRUE;
+	    }
+	  break;
+	case R_SCORE_CALL15:
+	  break;
+	}
     }
 
   return TRUE;
@@ -2809,18 +2797,18 @@ s7_bfd_score_elf_check_relocs (bfd *abfd
 
 bfd_boolean
 s7_bfd_score_elf_add_symbol_hook (bfd *abfd,
-                                  struct bfd_link_info *info ATTRIBUTE_UNUSED,
-                                  Elf_Internal_Sym *sym,
-                                  const char **namep ATTRIBUTE_UNUSED,
-                                  flagword *flagsp ATTRIBUTE_UNUSED,
-                                  asection **secp,
-                                  bfd_vma *valp)
+				  struct bfd_link_info *info ATTRIBUTE_UNUSED,
+				  Elf_Internal_Sym *sym,
+				  const char **namep ATTRIBUTE_UNUSED,
+				  flagword *flagsp ATTRIBUTE_UNUSED,
+				  asection **secp,
+				  bfd_vma *valp)
 {
   switch (sym->st_shndx)
     {
     case SHN_COMMON:
       if (sym->st_size > elf_gp_size (abfd))
-        break;
+	break;
       /* Fall through.  */
     case SHN_SCORE_SCOMMON:
       *secp = bfd_make_section_old_way (abfd, ".scommon");
@@ -2842,22 +2830,22 @@ s7_bfd_score_elf_symbol_processing (bfd 
     {
     case SHN_COMMON:
       if (asym->value > elf_gp_size (abfd))
-        break;
+	break;
       /* Fall through.  */
     case SHN_SCORE_SCOMMON:
       if (score_elf_scom_section.name == NULL)
-        {
-          /* Initialize the small common section.  */
-          score_elf_scom_section.name = ".scommon";
-          score_elf_scom_section.flags = SEC_IS_COMMON;
-          score_elf_scom_section.output_section = &score_elf_scom_section;
-          score_elf_scom_section.symbol = &score_elf_scom_symbol;
-          score_elf_scom_section.symbol_ptr_ptr = &score_elf_scom_symbol_ptr;
-          score_elf_scom_symbol.name = ".scommon";
-          score_elf_scom_symbol.flags = BSF_SECTION_SYM;
-          score_elf_scom_symbol.section = &score_elf_scom_section;
-          score_elf_scom_symbol_ptr = &score_elf_scom_symbol;
-        }
+	{
+	  /* Initialize the small common section.  */
+	  score_elf_scom_section.name = ".scommon";
+	  score_elf_scom_section.flags = SEC_IS_COMMON;
+	  score_elf_scom_section.output_section = &score_elf_scom_section;
+	  score_elf_scom_section.symbol = &score_elf_scom_symbol;
+	  score_elf_scom_section.symbol_ptr_ptr = &score_elf_scom_symbol_ptr;
+	  score_elf_scom_symbol.name = ".scommon";
+	  score_elf_scom_symbol.flags = BSF_SECTION_SYM;
+	  score_elf_scom_symbol.section = &score_elf_scom_section;
+	  score_elf_scom_symbol_ptr = &score_elf_scom_symbol;
+	}
       asym->section = &score_elf_scom_section;
       asym->value = elfsym->internal_elf_sym.st_size;
       break;
@@ -2866,10 +2854,10 @@ s7_bfd_score_elf_symbol_processing (bfd 
 
 int
 s7_bfd_score_elf_link_output_symbol_hook (struct bfd_link_info *info ATTRIBUTE_UNUSED,
-                                          const char *name ATTRIBUTE_UNUSED,
-                                          Elf_Internal_Sym *sym,
-                                          asection *input_sec,
-                                          struct elf_link_hash_entry *h ATTRIBUTE_UNUSED)
+					  const char *name ATTRIBUTE_UNUSED,
+					  Elf_Internal_Sym *sym,
+					  asection *input_sec,
+					  struct elf_link_hash_entry *h ATTRIBUTE_UNUSED)
 {
   /* If we see a common symbol, which implies a relocatable link, then
      if a symbol was small common in an input file, mark it as small
@@ -2882,8 +2870,8 @@ s7_bfd_score_elf_link_output_symbol_hook
 
 bfd_boolean
 s7_bfd_score_elf_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
-                                         asection *sec,
-                                         int *retval)
+					 asection *sec,
+					 int *retval)
 {
   if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
     {
@@ -2901,7 +2889,7 @@ s7_bfd_score_elf_section_from_bfd_sectio
 
 bfd_boolean
 s7_bfd_score_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
-                                        struct elf_link_hash_entry *h)
+					struct elf_link_hash_entry *h)
 {
   bfd *dynobj;
   struct score_elf_link_hash_entry *hscore;
@@ -2911,9 +2899,9 @@ s7_bfd_score_elf_adjust_dynamic_symbol (
 
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
-              && (h->needs_plt
-                  || h->u.weakdef != NULL
-                  || (h->def_dynamic && h->ref_regular && !h->def_regular)));
+	      && (h->needs_plt
+		  || h->is_weakalias
+		  || (h->def_dynamic && h->ref_regular && !h->def_regular)));
 
   /* If this symbol is defined in a dynamic object, we need to copy
      any R_SCORE_ABS32 or R_SCORE_REL32 relocs against it into the output
@@ -2925,45 +2913,45 @@ s7_bfd_score_elf_adjust_dynamic_symbol (
     {
       score_elf_allocate_dynamic_relocations (dynobj, hscore->possibly_dynamic_relocs);
       if (hscore->readonly_reloc)
-        /* We tell the dynamic linker that there are relocations
-           against the text segment.  */
-        info->flags |= DF_TEXTREL;
+	/* We tell the dynamic linker that there are relocations
+	   against the text segment.  */
+	info->flags |= DF_TEXTREL;
     }
 
   /* For a function, create a stub, if allowed.  */
   if (!hscore->no_fn_stub && h->needs_plt)
     {
       if (!elf_hash_table (info)->dynamic_sections_created)
-        return TRUE;
+	return TRUE;
 
       /* If this symbol is not defined in a regular file, then set
-         the symbol to the stub location.  This is required to make
-         function pointers compare as equal between the normal
-         executable and the shared library.  */
+	 the symbol to the stub location.  This is required to make
+	 function pointers compare as equal between the normal
+	 executable and the shared library.  */
       if (!h->def_regular)
-        {
-          /* We need .stub section.  */
-          s = bfd_get_linker_section (dynobj, SCORE_ELF_STUB_SECTION_NAME);
-          BFD_ASSERT (s != NULL);
-
-          h->root.u.def.section = s;
-          h->root.u.def.value = s->size;
-
-          /* XXX Write this stub address somewhere.  */
-          h->plt.offset = s->size;
-
-          /* Make room for this stub code.  */
-          s->size += SCORE_FUNCTION_STUB_SIZE;
-
-          /* The last half word of the stub will be filled with the index
-             of this symbol in .dynsym section.  */
-          return TRUE;
-        }
+	{
+	  /* We need .stub section.  */
+	  s = bfd_get_linker_section (dynobj, SCORE_ELF_STUB_SECTION_NAME);
+	  BFD_ASSERT (s != NULL);
+
+	  h->root.u.def.section = s;
+	  h->root.u.def.value = s->size;
+
+	  /* XXX Write this stub address somewhere.  */
+	  h->plt.offset = s->size;
+
+	  /* Make room for this stub code.  */
+	  s->size += SCORE_FUNCTION_STUB_SIZE;
+
+	  /* The last half word of the stub will be filled with the index
+	     of this symbol in .dynsym section.  */
+	  return TRUE;
+	}
     }
   else if ((h->type == STT_FUNC) && !h->needs_plt)
     {
       /* This will set the entry for this symbol in the GOT to 0, and
-         the dynamic linker will take care of this.  */
+	 the dynamic linker will take care of this.  */
       h->root.u.def.value = 0;
       return TRUE;
     }
@@ -2971,12 +2959,12 @@ s7_bfd_score_elf_adjust_dynamic_symbol (
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-                  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -2990,7 +2978,7 @@ s7_bfd_score_elf_adjust_dynamic_symbol (
 
 bfd_boolean
 s7_bfd_score_elf_always_size_sections (bfd *output_bfd,
-                                       struct bfd_link_info *info)
+				       struct bfd_link_info *info)
 {
   bfd *dynobj;
   asection *s;
@@ -3016,14 +3004,14 @@ s7_bfd_score_elf_always_size_sections (b
       asection *subsection;
 
       for (subsection = sub->sections;
-           subsection;
-           subsection = subsection->next)
-        {
-          if ((subsection->flags & SEC_ALLOC) == 0)
-            continue;
-          loadable_size += ((subsection->size + 0xf)
-                            &~ (bfd_size_type) 0xf);
-        }
+	   subsection;
+	   subsection = subsection->next)
+	{
+	  if ((subsection->flags & SEC_ALLOC) == 0)
+	    continue;
+	  loadable_size += ((subsection->size + 0xf)
+			    &~ (bfd_size_type) 0xf);
+	}
     }
 
   /* There has to be a global GOT entry for every symbol with
@@ -3079,13 +3067,13 @@ s7_bfd_score_elf_size_dynamic_sections (
   if (elf_hash_table (info)->dynamic_sections_created)
     {
       /* Set the contents of the .interp section to the interpreter.  */
-      if (!bfd_link_pic (info) && !info->nointerp)
-        {
-          s = bfd_get_linker_section (dynobj, ".interp");
-          BFD_ASSERT (s != NULL);
-          s->size = strlen (ELF_DYNAMIC_INTERPRETER) + 1;
-          s->contents = (bfd_byte *) ELF_DYNAMIC_INTERPRETER;
-        }
+      if (bfd_link_executable (info) && !info->nointerp)
+	{
+	  s = bfd_get_linker_section (dynobj, ".interp");
+	  BFD_ASSERT (s != NULL);
+	  s->size = strlen (ELF_DYNAMIC_INTERPRETER) + 1;
+	  s->contents = (bfd_byte *) ELF_DYNAMIC_INTERPRETER;
+	}
     }
 
   /* The check_relocs and adjust_dynamic_symbol entry points have
@@ -3097,131 +3085,131 @@ s7_bfd_score_elf_size_dynamic_sections (
       const char *name;
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
-        continue;
+	continue;
 
       /* It's OK to base decisions on the section name, because none
-         of the dynobj section names depend upon the input files.  */
+	 of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
       if (CONST_STRNEQ (name, ".rel"))
-        {
-          if (s->size == 0)
-            {
-              /* We only strip the section if the output section name
-                 has the same name.  Otherwise, there might be several
-                 input sections for this output section.  FIXME: This
-                 code is probably not needed these days anyhow, since
-                 the linker now does not create empty output sections.  */
-              if (s->output_section != NULL
-                  && strcmp (name,
-                             bfd_get_section_name (s->output_section->owner,
-                                                   s->output_section)) == 0)
-                s->flags |= SEC_EXCLUDE;
-            }
-          else
-            {
-              const char *outname;
-              asection *target;
-
-              /* If this relocation section applies to a read only
-                 section, then we probably need a DT_TEXTREL entry.
-                 If the relocation section is .rel.dyn, we always
-                 assert a DT_TEXTREL entry rather than testing whether
-                 there exists a relocation to a read only section or
-                 not.  */
-              outname = bfd_get_section_name (output_bfd, s->output_section);
-              target = bfd_get_section_by_name (output_bfd, outname + 4);
-              if ((target != NULL
-                   && (target->flags & SEC_READONLY) != 0
-                   && (target->flags & SEC_ALLOC) != 0) || strcmp (outname, ".rel.dyn") == 0)
-                reltext = TRUE;
-
-              /* We use the reloc_count field as a counter if we need
-                 to copy relocs into the output file.  */
-              if (strcmp (name, ".rel.dyn") != 0)
-                s->reloc_count = 0;
-            }
-        }
+	{
+	  if (s->size == 0)
+	    {
+	      /* We only strip the section if the output section name
+		 has the same name.  Otherwise, there might be several
+		 input sections for this output section.  FIXME: This
+		 code is probably not needed these days anyhow, since
+		 the linker now does not create empty output sections.  */
+	      if (s->output_section != NULL
+		  && strcmp (name,
+			     bfd_get_section_name (s->output_section->owner,
+						   s->output_section)) == 0)
+		s->flags |= SEC_EXCLUDE;
+	    }
+	  else
+	    {
+	      const char *outname;
+	      asection *target;
+
+	      /* If this relocation section applies to a read only
+		 section, then we probably need a DT_TEXTREL entry.
+		 If the relocation section is .rel.dyn, we always
+		 assert a DT_TEXTREL entry rather than testing whether
+		 there exists a relocation to a read only section or
+		 not.  */
+	      outname = bfd_get_section_name (output_bfd, s->output_section);
+	      target = bfd_get_section_by_name (output_bfd, outname + 4);
+	      if ((target != NULL
+		   && (target->flags & SEC_READONLY) != 0
+		   && (target->flags & SEC_ALLOC) != 0) || strcmp (outname, ".rel.dyn") == 0)
+		reltext = TRUE;
+
+	      /* We use the reloc_count field as a counter if we need
+		 to copy relocs into the output file.  */
+	      if (strcmp (name, ".rel.dyn") != 0)
+		s->reloc_count = 0;
+	    }
+	}
       else if (CONST_STRNEQ (name, ".got"))
-        {
-          /* s7_bfd_score_elf_always_size_sections() has already done
-             most of the work, but some symbols may have been mapped
-             to versions that we must now resolve in the got_entries
-             hash tables.  */
-        }
+	{
+	  /* s7_bfd_score_elf_always_size_sections() has already done
+	     most of the work, but some symbols may have been mapped
+	     to versions that we must now resolve in the got_entries
+	     hash tables.  */
+	}
       else if (strcmp (name, SCORE_ELF_STUB_SECTION_NAME) == 0)
-        {
-          /* IRIX rld assumes that the function stub isn't at the end
-             of .text section. So put a dummy. XXX  */
-          s->size += SCORE_FUNCTION_STUB_SIZE;
-        }
+	{
+	  /* IRIX rld assumes that the function stub isn't at the end
+	     of .text section. So put a dummy. XXX  */
+	  s->size += SCORE_FUNCTION_STUB_SIZE;
+	}
       else if (! CONST_STRNEQ (name, ".init"))
-        {
-          /* It's not one of our sections, so don't allocate space.  */
-          continue;
-        }
+	{
+	  /* It's not one of our sections, so don't allocate space.  */
+	  continue;
+	}
 
       /* Allocate memory for the section contents.  */
       s->contents = bfd_zalloc (dynobj, s->size);
       if (s->contents == NULL && s->size != 0)
-        {
-          bfd_set_error (bfd_error_no_memory);
-          return FALSE;
-        }
+	{
+	  bfd_set_error (bfd_error_no_memory);
+	  return FALSE;
+	}
     }
 
   if (elf_hash_table (info)->dynamic_sections_created)
     {
       /* Add some entries to the .dynamic section.  We fill in the
-         values later, in s7_bfd_score_elf_finish_dynamic_sections, but we
-         must add the entries now so that we get the correct size for
-         the .dynamic section.  The DT_DEBUG entry is filled in by the
-         dynamic linker and used by the debugger.  */
+	 values later, in s7_bfd_score_elf_finish_dynamic_sections, but we
+	 must add the entries now so that we get the correct size for
+	 the .dynamic section.  The DT_DEBUG entry is filled in by the
+	 dynamic linker and used by the debugger.  */
 
       if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_DEBUG, 0))
-        return FALSE;
+	return FALSE;
 
       if (reltext)
-        info->flags |= DF_TEXTREL;
+	info->flags |= DF_TEXTREL;
 
       if ((info->flags & DF_TEXTREL) != 0)
-        {
-          if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_TEXTREL, 0))
-            return FALSE;
-        }
+	{
+	  if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_TEXTREL, 0))
+	    return FALSE;
+	}
 
       if (! SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_PLTGOT, 0))
-        return FALSE;
+	return FALSE;
 
       if (score_elf_rel_dyn_section (dynobj, FALSE))
-        {
-          if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_REL, 0))
-            return FALSE;
-
-          if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_RELSZ, 0))
-            return FALSE;
-
-          if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_RELENT, 0))
-            return FALSE;
-        }
+	{
+	  if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_REL, 0))
+	    return FALSE;
+
+	  if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_RELSZ, 0))
+	    return FALSE;
+
+	  if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_RELENT, 0))
+	    return FALSE;
+	}
 
       if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_SCORE_BASE_ADDRESS, 0))
-        return FALSE;
+	return FALSE;
 
       if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_SCORE_LOCAL_GOTNO, 0))
-        return FALSE;
+	return FALSE;
 
       if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_SCORE_SYMTABNO, 0))
-        return FALSE;
+	return FALSE;
 
       if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_SCORE_UNREFEXTNO, 0))
-        return FALSE;
+	return FALSE;
 
       if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_SCORE_GOTSYM, 0))
-        return FALSE;
+	return FALSE;
 
       if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_SCORE_HIPAGENO, 0))
-        return FALSE;
+	return FALSE;
     }
 
   return TRUE;
@@ -3236,14 +3224,14 @@ s7_bfd_score_elf_create_dynamic_sections
   asection *s;
 
   flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
-           | SEC_LINKER_CREATED | SEC_READONLY);
+	   | SEC_LINKER_CREATED | SEC_READONLY);
 
   /* ABI requests the .dynamic section to be read only.  */
   s = bfd_get_linker_section (abfd, ".dynamic");
   if (s != NULL)
     {
       if (!bfd_set_section_flags (abfd, s, flags))
-        return FALSE;
+	return FALSE;
     }
 
   /* We need to create .got section.  */
@@ -3259,9 +3247,9 @@ s7_bfd_score_elf_create_dynamic_sections
       s = bfd_make_section_anyway_with_flags (abfd, SCORE_ELF_STUB_SECTION_NAME,
 					      flags | SEC_CODE);
       if (s == NULL
-          || !bfd_set_section_alignment (abfd, s, 2))
+	  || !bfd_set_section_alignment (abfd, s, 2))
 
-        return FALSE;
+	return FALSE;
     }
 
   if (!bfd_link_pic (info))
@@ -3271,9 +3259,9 @@ s7_bfd_score_elf_create_dynamic_sections
       name = "_DYNAMIC_LINK";
       bh = NULL;
       if (!(_bfd_generic_link_add_one_symbol
-            (info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr,
-             (bfd_vma) 0, NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
-        return FALSE;
+	    (info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr,
+	     (bfd_vma) 0, NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
+	return FALSE;
 
       h = (struct elf_link_hash_entry *) bh;
       h->non_elf = 0;
@@ -3281,7 +3269,7 @@ s7_bfd_score_elf_create_dynamic_sections
       h->type = STT_SECTION;
 
       if (!bfd_elf_link_record_dynamic_symbol (info, h))
-        return FALSE;
+	return FALSE;
     }
 
   return TRUE;
@@ -3293,9 +3281,9 @@ s7_bfd_score_elf_create_dynamic_sections
 
 bfd_boolean
 s7_bfd_score_elf_finish_dynamic_symbol (bfd *output_bfd,
-                                        struct bfd_link_info *info,
-                                        struct elf_link_hash_entry *h,
-                                        Elf_Internal_Sym *sym)
+					struct bfd_link_info *info,
+					struct elf_link_hash_entry *h,
+					Elf_Internal_Sym *sym)
 {
   bfd *dynobj;
   asection *sgot;
@@ -3317,7 +3305,7 @@ s7_bfd_score_elf_finish_dynamic_symbol (
 
       /* FIXME: Can h->dynindex be more than 64K?  */
       if (h->dynindx & 0xffff0000)
-        return FALSE;
+	return FALSE;
 
       /* Fill the stub.  */
       bfd_put_32 (output_bfd, STUB_LW, stub);
@@ -3329,12 +3317,12 @@ s7_bfd_score_elf_finish_dynamic_symbol (
       memcpy (s->contents + h->plt.offset, stub, SCORE_FUNCTION_STUB_SIZE);
 
       /* Mark the symbol as undefined.  plt.offset != -1 occurs
-         only for the referenced symbol.  */
+	 only for the referenced symbol.  */
       sym->st_shndx = SHN_UNDEF;
 
       /* The run-time linker uses the st_value field of the symbol
-          to reset the global offset table entry for this external
-          to its stub address when unlinking a shared object.  */
+	  to reset the global offset table entry for this external
+	  to its stub address when unlinking a shared object.  */
       sym->st_value = (s->output_section->vma + s->output_offset + h->plt.offset);
     }
 
@@ -3383,7 +3371,7 @@ s7_bfd_score_elf_finish_dynamic_symbol (
 
 bfd_boolean
 s7_bfd_score_elf_finish_dynamic_sections (bfd *output_bfd,
-                                          struct bfd_link_info *info)
+					  struct bfd_link_info *info)
 {
   bfd *dynobj;
   asection *sdyn;
@@ -3413,84 +3401,84 @@ s7_bfd_score_elf_finish_dynamic_sections
       BFD_ASSERT (g != NULL);
 
       for (b = sdyn->contents;
-           b < sdyn->contents + sdyn->size;
-           b += SCORE_ELF_DYN_SIZE (dynobj))
-        {
-          Elf_Internal_Dyn dyn;
-          const char *name;
-          size_t elemsize;
-          bfd_boolean swap_out_p;
-
-          /* Read in the current dynamic entry.  */
-          (*get_elf_backend_data (dynobj)->s->swap_dyn_in) (dynobj, b, &dyn);
-
-          /* Assume that we're going to modify it and write it out.  */
-          swap_out_p = TRUE;
-
-          switch (dyn.d_tag)
-            {
-            case DT_RELENT:
-              dyn.d_un.d_val = SCORE_ELF_REL_SIZE (dynobj);
-              break;
-
-            case DT_STRSZ:
-              /* Rewrite DT_STRSZ.  */
-              dyn.d_un.d_val
-                = _bfd_elf_strtab_size (elf_hash_table (info)->dynstr);
-              break;
-
-            case DT_PLTGOT:
-              s = elf_hash_table (info)->sgot;
-              dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
-              break;
-
-            case DT_SCORE_BASE_ADDRESS:
-              s = output_bfd->sections;
-              BFD_ASSERT (s != NULL);
-              dyn.d_un.d_ptr = s->vma & ~(bfd_vma) 0xffff;
-              break;
-
-            case DT_SCORE_LOCAL_GOTNO:
-              dyn.d_un.d_val = g->local_gotno;
-              break;
-
-            case DT_SCORE_UNREFEXTNO:
-              /* The index into the dynamic symbol table which is the
-                 entry of the first external symbol that is not
-                 referenced within the same object.  */
-              dyn.d_un.d_val = bfd_count_sections (output_bfd) + 1;
-              break;
-
-            case DT_SCORE_GOTSYM:
-              if (g->global_gotsym)
-                {
-                  dyn.d_un.d_val = g->global_gotsym->dynindx;
-                  break;
-                }
-              /* In case if we don't have global got symbols we default
-                  to setting DT_SCORE_GOTSYM to the same value as
-                  DT_SCORE_SYMTABNO.  */
+	   b < sdyn->contents + sdyn->size;
+	   b += SCORE_ELF_DYN_SIZE (dynobj))
+	{
+	  Elf_Internal_Dyn dyn;
+	  const char *name;
+	  size_t elemsize;
+	  bfd_boolean swap_out_p;
+
+	  /* Read in the current dynamic entry.  */
+	  (*get_elf_backend_data (dynobj)->s->swap_dyn_in) (dynobj, b, &dyn);
+
+	  /* Assume that we're going to modify it and write it out.  */
+	  swap_out_p = TRUE;
+
+	  switch (dyn.d_tag)
+	    {
+	    case DT_RELENT:
+	      dyn.d_un.d_val = SCORE_ELF_REL_SIZE (dynobj);
+	      break;
+
+	    case DT_STRSZ:
+	      /* Rewrite DT_STRSZ.  */
+	      dyn.d_un.d_val
+		= _bfd_elf_strtab_size (elf_hash_table (info)->dynstr);
+	      break;
+
+	    case DT_PLTGOT:
+	      s = elf_hash_table (info)->sgot;
+	      dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
+	      break;
+
+	    case DT_SCORE_BASE_ADDRESS:
+	      s = output_bfd->sections;
+	      BFD_ASSERT (s != NULL);
+	      dyn.d_un.d_ptr = s->vma & ~(bfd_vma) 0xffff;
+	      break;
+
+	    case DT_SCORE_LOCAL_GOTNO:
+	      dyn.d_un.d_val = g->local_gotno;
+	      break;
+
+	    case DT_SCORE_UNREFEXTNO:
+	      /* The index into the dynamic symbol table which is the
+		 entry of the first external symbol that is not
+		 referenced within the same object.  */
+	      dyn.d_un.d_val = bfd_count_sections (output_bfd) + 1;
+	      break;
+
+	    case DT_SCORE_GOTSYM:
+	      if (g->global_gotsym)
+		{
+		  dyn.d_un.d_val = g->global_gotsym->dynindx;
+		  break;
+		}
+	      /* In case if we don't have global got symbols we default
+		  to setting DT_SCORE_GOTSYM to the same value as
+		  DT_SCORE_SYMTABNO.  */
 	      /* Fall through.  */
 
-            case DT_SCORE_SYMTABNO:
-              name = ".dynsym";
-              elemsize = SCORE_ELF_SYM_SIZE (output_bfd);
-              s = bfd_get_linker_section (dynobj, name);
-              dyn.d_un.d_val = s->size / elemsize;
-              break;
-
-            case DT_SCORE_HIPAGENO:
-              dyn.d_un.d_val = g->local_gotno - SCORE_RESERVED_GOTNO;
-              break;
-
-            default:
-              swap_out_p = FALSE;
-              break;
-            }
-
-          if (swap_out_p)
-            (*get_elf_backend_data (dynobj)->s->swap_dyn_out) (dynobj, &dyn, b);
-        }
+	    case DT_SCORE_SYMTABNO:
+	      name = ".dynsym";
+	      elemsize = SCORE_ELF_SYM_SIZE (output_bfd);
+	      s = bfd_get_linker_section (dynobj, name);
+	      dyn.d_un.d_val = s->size / elemsize;
+	      break;
+
+	    case DT_SCORE_HIPAGENO:
+	      dyn.d_un.d_val = g->local_gotno - SCORE_RESERVED_GOTNO;
+	      break;
+
+	    default:
+	      swap_out_p = FALSE;
+	      break;
+	    }
+
+	  if (swap_out_p)
+	    (*get_elf_backend_data (dynobj)->s->swap_dyn_out) (dynobj, &dyn, b);
+	}
     }
 
   /* The first entry of the global offset table will be filled at
@@ -3514,7 +3502,7 @@ s7_bfd_score_elf_finish_dynamic_sections
     {
       reldyn_sorting_bfd = output_bfd;
       qsort ((Elf32_External_Rel *) s->contents + 1, s->reloc_count - 1,
-             sizeof (Elf32_External_Rel), score_elf_sort_dynamic_relocs);
+	     sizeof (Elf32_External_Rel), score_elf_sort_dynamic_relocs);
     }
 
   return TRUE;
@@ -3525,8 +3513,8 @@ s7_bfd_score_elf_finish_dynamic_sections
 
 bfd_boolean
 s7_bfd_score_elf_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
-                                Elf_Internal_Shdr *hdr,
-                                asection *sec)
+				Elf_Internal_Shdr *hdr,
+				asection *sec)
 {
   const char *name;
 
@@ -3557,20 +3545,20 @@ s7_bfd_score_elf_section_processing (bfd
       const char *name = bfd_get_section_name (abfd, hdr->bfd_section);
 
       if (strcmp (name, ".sdata") == 0)
-        {
-          hdr->sh_flags |= SHF_ALLOC | SHF_WRITE | SHF_SCORE_GPREL;
-          hdr->sh_type = SHT_PROGBITS;
-        }
+	{
+	  hdr->sh_flags |= SHF_ALLOC | SHF_WRITE | SHF_SCORE_GPREL;
+	  hdr->sh_type = SHT_PROGBITS;
+	}
       else if (strcmp (name, ".sbss") == 0)
-        {
-          hdr->sh_flags |= SHF_ALLOC | SHF_WRITE | SHF_SCORE_GPREL;
-          hdr->sh_type = SHT_NOBITS;
-        }
+	{
+	  hdr->sh_flags |= SHF_ALLOC | SHF_WRITE | SHF_SCORE_GPREL;
+	  hdr->sh_type = SHT_NOBITS;
+	}
       else if (strcmp (name, ".srdata") == 0)
-        {
-          hdr->sh_flags |= SHF_ALLOC | SHF_SCORE_GPREL;
-          hdr->sh_type = SHT_PROGBITS;
-        }
+	{
+	  hdr->sh_flags |= SHF_ALLOC | SHF_SCORE_GPREL;
+	  hdr->sh_type = SHT_PROGBITS;
+	}
     }
 
   return TRUE;
@@ -3593,15 +3581,15 @@ s7_bfd_score_elf_write_section (bfd *out
   for (from = contents, i = 0; from < end; from += PDR_SIZE, i++)
     {
       if ((score_elf_section_data (sec)->u.tdata)[i] == 1)
-        continue;
+	continue;
 
       if (to != from)
-        memcpy (to, from, PDR_SIZE);
+	memcpy (to, from, PDR_SIZE);
 
       to += PDR_SIZE;
     }
   bfd_set_section_contents (output_bfd, sec->output_section, contents,
-                            (file_ptr) sec->output_offset, sec->size);
+			    (file_ptr) sec->output_offset, sec->size);
 
   return TRUE;
 }
@@ -3611,8 +3599,8 @@ s7_bfd_score_elf_write_section (bfd *out
 
 void
 s7_bfd_score_elf_copy_indirect_symbol (struct bfd_link_info *info,
-                                       struct elf_link_hash_entry *dir,
-                                       struct elf_link_hash_entry *ind)
+				       struct elf_link_hash_entry *dir,
+				       struct elf_link_hash_entry *ind)
 {
   struct score_elf_link_hash_entry *dirscore, *indscore;
 
@@ -3636,8 +3624,8 @@ s7_bfd_score_elf_copy_indirect_symbol (s
 
 bfd_boolean
 s7_bfd_score_elf_discard_info (bfd *abfd,
-                               struct elf_reloc_cookie *cookie,
-                               struct bfd_link_info *info)
+			       struct elf_reloc_cookie *cookie,
+			       struct bfd_link_info *info)
 {
   asection *o;
   bfd_boolean ret = FALSE;
@@ -3666,10 +3654,10 @@ s7_bfd_score_elf_discard_info (bfd *abfd
   for (i = 0, skip = 0; i < o->size; i++)
     {
       if (bfd_elf_reloc_symbol_deleted_p (i * PDR_SIZE, cookie))
-        {
-          tdata[i] = 1;
-          skip++;
-        }
+	{
+	  tdata[i] = 1;
+	  skip++;
+	}
     }
 
   if (skip != 0)
@@ -3702,17 +3690,17 @@ s7_bfd_score_elf_ignore_discarded_relocs
 
 asection *
 s7_bfd_score_elf_gc_mark_hook (asection *sec,
-                               struct bfd_link_info *info,
-                               Elf_Internal_Rela *rel,
-                               struct elf_link_hash_entry *h,
-                               Elf_Internal_Sym *sym)
+			       struct bfd_link_info *info,
+			       Elf_Internal_Rela *rel,
+			       struct elf_link_hash_entry *h,
+			       Elf_Internal_Sym *sym)
 {
   if (h != NULL)
     switch (ELF32_R_TYPE (rel->r_info))
       {
       case R_SCORE_GNU_VTINHERIT:
       case R_SCORE_GNU_VTENTRY:
-        return NULL;
+	return NULL;
       }
 
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
@@ -3730,7 +3718,7 @@ s7_bfd_score_elf_grok_prstatus (bfd *abf
     {
     default:
       return FALSE;
-    case 272:                  /* Linux/Score elf_prstatus */
+    case 272:		       /* Linux/Score elf_prstatus */
 
       /* pr_cursig */
       elf_tdata (abfd)->core->signal = bfd_get_16 (abfd, note->descdata + 12);
@@ -3760,7 +3748,7 @@ s7_bfd_score_elf_grok_psinfo (bfd *abfd,
     default:
       return FALSE;
 
-    case 128:                  /* Linux/Score elf_prpsinfo.  */
+    case 128:		       /* Linux/Score elf_prpsinfo.  */
       /* pr_fname */
       elf_tdata (abfd)->core->program
 	= _bfd_elfcore_strndup (abfd, note->descdata + 32, 16);
@@ -3852,10 +3840,10 @@ s7_elf32_score_merge_private_bfd_data (b
       elf_elfheader (obfd)->e_flags = in_flags;
 
       if (bfd_get_arch (obfd) == bfd_get_arch (ibfd)
-          && bfd_get_arch_info (obfd)->the_default)
-        {
-          return bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd));
-        }
+	  && bfd_get_arch_info (obfd)->the_default)
+	{
+	  return bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd));
+	}
 
       return TRUE;
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-score.c ./bfd/elf32-score.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-score.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-score.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* 32-bit ELF support for S+core.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
    Contributed by
    Brain.lin (brain.lin@sunplusct.com)
    Mei Ligang (ligang@sunnorth.com.cn)
@@ -176,7 +176,7 @@ struct _score_elf_section_data
   (get_elf_backend_data (abfd)->s->arch_size / 8)
 
 #define SCORE_ELF_ADD_DYNAMIC_ENTRY(info, tag, val) \
-        (_bfd_elf_add_dynamic_entry (info, (bfd_vma) tag, (bfd_vma) val))
+	(_bfd_elf_add_dynamic_entry (info, (bfd_vma) tag, (bfd_vma) val))
 
 /* The size of an external dynamic table entry.  */
 #define SCORE_ELF_DYN_SIZE(abfd) \
@@ -227,14 +227,14 @@ static bfd_vma
 score3_bfd_getl48 (const void *p)
 {
   const bfd_byte *addr = p;
-  unsigned long long v;
+  bfd_uint64_t v;
 
-  v = (unsigned long long) addr[4];
-  v |= (unsigned long long) addr[5] << 8;
-  v |= (unsigned long long) addr[2] << 16;
-  v |= (unsigned long long) addr[3] << 24;
-  v |= (unsigned long long) addr[0] << 32;
-  v |= (unsigned long long) addr[1] << 40;
+  v = (bfd_uint64_t) addr[4];
+  v |= (bfd_uint64_t) addr[5] << 8;
+  v |= (bfd_uint64_t) addr[2] << 16;
+  v |= (bfd_uint64_t) addr[3] << 24;
+  v |= (bfd_uint64_t) addr[0] << 32;
+  v |= (bfd_uint64_t) addr[1] << 40;
   return v;
 }
 
@@ -304,12 +304,12 @@ score_bfd_put_48 (bfd *abfd, bfd_vma val
 
 static bfd_reloc_status_type
 score_elf_hi16_reloc (bfd *abfd ATTRIBUTE_UNUSED,
-                      arelent *reloc_entry,
-                      asymbol *symbol ATTRIBUTE_UNUSED,
-                      void * data,
-                      asection *input_section ATTRIBUTE_UNUSED,
-                      bfd *output_bfd ATTRIBUTE_UNUSED,
-                      char **error_message ATTRIBUTE_UNUSED)
+		      arelent *reloc_entry,
+		      asymbol *symbol ATTRIBUTE_UNUSED,
+		      void * data,
+		      asection *input_section ATTRIBUTE_UNUSED,
+		      bfd *output_bfd ATTRIBUTE_UNUSED,
+		      char **error_message ATTRIBUTE_UNUSED)
 {
   hi16_rel_addr = (bfd_byte *) data + reloc_entry->address;
   return bfd_reloc_ok;
@@ -317,12 +317,12 @@ score_elf_hi16_reloc (bfd *abfd ATTRIBUT
 
 static bfd_reloc_status_type
 score_elf_lo16_reloc (bfd *abfd,
-                      arelent *reloc_entry,
-                      asymbol *symbol ATTRIBUTE_UNUSED,
-                      void * data,
-                      asection *input_section,
-                      bfd *output_bfd ATTRIBUTE_UNUSED,
-                      char **error_message ATTRIBUTE_UNUSED)
+		      arelent *reloc_entry,
+		      asymbol *symbol ATTRIBUTE_UNUSED,
+		      void * data,
+		      asection *input_section,
+		      bfd *output_bfd ATTRIBUTE_UNUSED,
+		      char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma addend = 0, offset = 0;
   unsigned long val;
@@ -370,17 +370,17 @@ score_elf_assign_gp (bfd *output_bfd, bf
   else
     {
       for (i = 0; i < count; i++, sym++)
-        {
-          const char *name;
+	{
+	  const char *name;
 
-          name = bfd_asymbol_name (*sym);
-          if (*name == '_' && strcmp (name, "_gp") == 0)
-            {
-              *pgp = bfd_asymbol_value (*sym);
-              _bfd_set_gp_value (output_bfd, *pgp);
-              break;
-            }
-        }
+	  name = bfd_asymbol_name (*sym);
+	  if (*name == '_' && strcmp (name, "_gp") == 0)
+	    {
+	      *pgp = bfd_asymbol_value (*sym);
+	      _bfd_set_gp_value (output_bfd, *pgp);
+	      break;
+	    }
+	}
     }
 
   if (i >= count)
@@ -401,10 +401,10 @@ score_elf_assign_gp (bfd *output_bfd, bf
    external symbol if we are producing relocatable output.  */
 static bfd_reloc_status_type
 score_elf_final_gp (bfd *output_bfd,
-                    asymbol *symbol,
-                    bfd_boolean relocatable,
-                     char **error_message,
-                    bfd_vma *pgp)
+		    asymbol *symbol,
+		    bfd_boolean relocatable,
+		     char **error_message,
+		    bfd_vma *pgp)
 {
   if (bfd_is_und_section (symbol->section)
       && ! relocatable)
@@ -416,20 +416,20 @@ score_elf_final_gp (bfd *output_bfd,
   *pgp = _bfd_get_gp_value (output_bfd);
   if (*pgp == 0
       && (! relocatable
-          || (symbol->flags & BSF_SECTION_SYM) != 0))
+	  || (symbol->flags & BSF_SECTION_SYM) != 0))
     {
       if (relocatable)
-        {
-          /* Make up a value.  */
-          *pgp = symbol->section->output_section->vma + 0x4000;
-          _bfd_set_gp_value (output_bfd, *pgp);
-        }
+	{
+	  /* Make up a value.  */
+	  *pgp = symbol->section->output_section->vma + 0x4000;
+	  _bfd_set_gp_value (output_bfd, *pgp);
+	}
       else if (!score_elf_assign_gp (output_bfd, pgp))
-        {
-            *error_message =
-              (char *) _("GP relative relocation when _gp not defined");
-            return bfd_reloc_dangerous;
-        }
+	{
+	    *error_message =
+	      (char *) _("GP relative relocation when _gp not defined");
+	    return bfd_reloc_dangerous;
+	}
     }
 
   return bfd_reloc_ok;
@@ -437,12 +437,12 @@ score_elf_final_gp (bfd *output_bfd,
 
 static bfd_reloc_status_type
 score_elf_gprel15_with_gp (bfd *abfd,
-                           asymbol *symbol,
-                           arelent *reloc_entry,
-                           asection *input_section,
-                           bfd_boolean relocateable,
-                           void * data,
-                           bfd_vma gp ATTRIBUTE_UNUSED)
+			   asymbol *symbol,
+			   arelent *reloc_entry,
+			   asection *input_section,
+			   bfd_boolean relocateable,
+			   void * data,
+			   bfd_vma gp ATTRIBUTE_UNUSED)
 {
   bfd_vma relocation;
   unsigned long insn;
@@ -472,8 +472,8 @@ score_elf_gprel15_with_gp (bfd *abfd,
 
 static bfd_reloc_status_type
 gprel32_with_gp (bfd *abfd, asymbol *symbol, arelent *reloc_entry,
-                 asection *input_section, bfd_boolean relocatable,
-                 void *data, bfd_vma gp)
+		 asection *input_section, bfd_boolean relocatable,
+		 void *data, bfd_vma gp)
 {
   bfd_vma relocation;
   bfd_vma val;
@@ -515,12 +515,12 @@ gprel32_with_gp (bfd *abfd, asymbol *sym
 
 static bfd_reloc_status_type
 score_elf_gprel15_reloc (bfd *abfd,
-                         arelent *reloc_entry,
-                         asymbol *symbol,
-                         void * data,
-                         asection *input_section,
-                         bfd *output_bfd,
-                         char **error_message)
+			 arelent *reloc_entry,
+			 asymbol *symbol,
+			 void * data,
+			 asection *input_section,
+			 bfd *output_bfd,
+			 char **error_message)
 {
   bfd_boolean relocateable;
   bfd_reloc_status_type ret;
@@ -545,7 +545,7 @@ score_elf_gprel15_reloc (bfd *abfd,
     return ret;
 
   return score_elf_gprel15_with_gp (abfd, symbol, reloc_entry,
-                                         input_section, relocateable, data, gp);
+					 input_section, relocateable, data, gp);
 }
 
 /* Do a R_SCORE_GPREL32 relocation.  This is a 32 bit value which must
@@ -553,8 +553,8 @@ score_elf_gprel15_reloc (bfd *abfd,
 
 static bfd_reloc_status_type
 score_elf_gprel32_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
-                        void *data, asection *input_section, bfd *output_bfd,
-                        char **error_message)
+			void *data, asection *input_section, bfd *output_bfd,
+			char **error_message)
 {
   bfd_boolean relocatable;
   bfd_reloc_status_type ret;
@@ -566,7 +566,7 @@ score_elf_gprel32_reloc (bfd *abfd, arel
       && (symbol->flags & BSF_LOCAL) != 0)
     {
       *error_message = (char *)
-        _("32bits gp relative relocation occurs for an external symbol");
+	_("32bits gp relative relocation occurs for an external symbol");
       return bfd_reloc_outofrange;
     }
 
@@ -584,7 +584,7 @@ score_elf_gprel32_reloc (bfd *abfd, arel
 
   gp = 0;
   return gprel32_with_gp (abfd, symbol, reloc_entry, input_section,
-                          relocatable, data, gp);
+			  relocatable, data, gp);
 }
 
 /* A howto special_function for R_SCORE_GOT15 relocations.  This is just
@@ -592,29 +592,29 @@ score_elf_gprel32_reloc (bfd *abfd, arel
    treated in the same as R_SCORE_HI16 when applied to local symbols.  */
 static bfd_reloc_status_type
 score_elf_got15_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
-                       void *data, asection *input_section,
-                       bfd *output_bfd, char **error_message)
+		       void *data, asection *input_section,
+		       bfd *output_bfd, char **error_message)
 {
   if ((symbol->flags & (BSF_GLOBAL | BSF_WEAK)) != 0
       || bfd_is_und_section (bfd_get_section (symbol))
       || bfd_is_com_section (bfd_get_section (symbol)))
     /* The relocation is against a global symbol.  */
     return bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
-                                  input_section, output_bfd,
-                                  error_message);
+				  input_section, output_bfd,
+				  error_message);
 
   return score_elf_hi16_reloc (abfd, reloc_entry, symbol, data,
-                               input_section, output_bfd, error_message);
+			       input_section, output_bfd, error_message);
 }
 
 static bfd_reloc_status_type
 score_elf_got_lo16_reloc (bfd *abfd,
-                          arelent *reloc_entry,
-                          asymbol *symbol ATTRIBUTE_UNUSED,
-                          void * data,
-                          asection *input_section,
-                          bfd *output_bfd ATTRIBUTE_UNUSED,
-                          char **error_message ATTRIBUTE_UNUSED)
+			  arelent *reloc_entry,
+			  asymbol *symbol ATTRIBUTE_UNUSED,
+			  void * data,
+			  asection *input_section,
+			  bfd *output_bfd ATTRIBUTE_UNUSED,
+			  char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma addend = 0, offset = 0;
   signed long val;
@@ -643,334 +643,334 @@ score_elf_got_lo16_reloc (bfd *abfd,
 static reloc_howto_type elf32_score_howto_table[] =
 {
   /* No relocation.  */
-  HOWTO (R_SCORE_NONE,          /* type */
-         0,                     /* rightshift */
-         3,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_NONE",        /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_NONE,		/* type */
+	 0,			/* rightshift */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_NONE",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* R_SCORE_HI16 */
-  HOWTO (R_SCORE_HI16,          /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         score_elf_hi16_reloc,  /* special_function */
-         "R_SCORE_HI16",        /* name */
-         TRUE,                  /* partial_inplace */
-         0x37fff,               /* src_mask */
-         0x37fff,               /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_HI16,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 score_elf_hi16_reloc,	/* special_function */
+	 "R_SCORE_HI16",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x37fff,		/* src_mask */
+	 0x37fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* R_SCORE_LO16 */
-  HOWTO (R_SCORE_LO16,          /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         score_elf_lo16_reloc,  /* special_function */
-         "R_SCORE_LO16",        /* name */
-         TRUE,                  /* partial_inplace */
-         0x37fff,               /* src_mask */
-         0x37fff,               /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_LO16,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 score_elf_lo16_reloc,	/* special_function */
+	 "R_SCORE_LO16",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x37fff,		/* src_mask */
+	 0x37fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /*  R_SCORE_BCMP */
-  HOWTO (R_SCORE_BCMP,          /* type */
-         1,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         TRUE,                  /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_BCMP",        /* name */
-         FALSE,                 /* partial_inplace */
-         0x03e00381,            /* src_mask */
-         0x03e00381,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_BCMP,		/* type */
+	 1,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_BCMP",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x03e00381,		/* src_mask */
+	 0x03e00381,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /*R_SCORE_24 */
-  HOWTO (R_SCORE_24,            /* type */
-         1,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         24,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_24",          /* name */
-         FALSE,                 /* partial_inplace */
-         0x3ff7fff,             /* src_mask */
-         0x3ff7fff,             /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_24,		/* type */
+	 1,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 24,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_24",		/* name */
+	 FALSE,			/* partial_inplace */
+	 0x3ff7fff,		/* src_mask */
+	 0x3ff7fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /*R_SCORE_PC19 */
-  HOWTO (R_SCORE_PC19,          /* type */
-         1,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         19,                    /* bitsize */
-         TRUE,                  /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_PC19",        /* name */
-         FALSE,                 /* partial_inplace */
-         0x3ff03fe,             /* src_mask */
-         0x3ff03fe,             /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_PC19,		/* type */
+	 1,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 19,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_PC19",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x3ff03fe,		/* src_mask */
+	 0x3ff03fe,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /*R_SCORE16_11 */
-  HOWTO (R_SCORE16_11,          /* type */
-         1,                     /* rightshift */
-         1,                     /* size (0 = byte, 1 = short, 2 = long) */
-         11,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE16_11",        /* name */
-         FALSE,                 /* partial_inplace */
-         0x000000ffe,           /* src_mask */
-         0x000000ffe,           /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE16_11,		/* type */
+	 1,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 11,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE16_11",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x000000ffe,		/* src_mask */
+	 0x000000ffe,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* R_SCORE16_PC8 */
-  HOWTO (R_SCORE16_PC8,         /* type */
-         1,                     /* rightshift */
-         1,                     /* size (0 = byte, 1 = short, 2 = long) */
-         9,                     /* bitsize */
-         TRUE,                  /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE16_PC8",       /* name */
-         FALSE,                 /* partial_inplace */
-         0x000001ff,            /* src_mask */
-         0x000001ff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE16_PC8,		/* type */
+	 1,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 9,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE16_PC8",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x000001ff,		/* src_mask */
+	 0x000001ff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* 32 bit absolute */
-  HOWTO (R_SCORE_ABS32,         /* type  8 */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         32,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_bitfield,    /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_ABS32",       /* name */
-         FALSE,                 /* partial_inplace */
-         0xffffffff,            /* src_mask */
-         0xffffffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_ABS32,		/* type	 8 */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield,	/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_ABS32",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* 16 bit absolute */
-  HOWTO (R_SCORE_ABS16,         /* type 11 */
-         0,                     /* rightshift */
-         1,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_bitfield,    /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_ABS16",       /* name */
-         FALSE,                 /* partial_inplace */
-         0x0000ffff,            /* src_mask */
-         0x0000ffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_ABS16,		/* type 11 */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield,	/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_ABS16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* R_SCORE_DUMMY2 */
-  HOWTO (R_SCORE_DUMMY2,        /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_DUMMY2",      /* name */
-         TRUE,                  /* partial_inplace */
-         0x00007fff,            /* src_mask */
-         0x00007fff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_DUMMY2,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_DUMMY2",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x00007fff,		/* src_mask */
+	 0x00007fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* R_SCORE_GP15 */
-  HOWTO (R_SCORE_GP15,          /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         score_elf_gprel15_reloc,/* special_function */
-         "R_SCORE_GP15",        /* name */
-         TRUE,                  /* partial_inplace */
-         0x00007fff,            /* src_mask */
-         0x00007fff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_GP15,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 score_elf_gprel15_reloc,/* special_function */
+	 "R_SCORE_GP15",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x00007fff,		/* src_mask */
+	 0x00007fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable hierarchy.  */
   HOWTO (R_SCORE_GNU_VTINHERIT, /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         NULL,                  /* special_function */
-         "R_SCORE_GNU_VTINHERIT",       /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 NULL,			/* special_function */
+	 "R_SCORE_GNU_VTINHERIT",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
-  HOWTO (R_SCORE_GNU_VTENTRY,   /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
-         "R_SCORE_GNU_VTENTRY", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_GNU_VTENTRY,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 _bfd_elf_rel_vtable_reloc_fn,	/* special_function */
+	 "R_SCORE_GNU_VTENTRY", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* Reference to global offset table.  */
-  HOWTO (R_SCORE_GOT15,         /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_signed,      /* complain_on_overflow */
-         score_elf_got15_reloc, /* special_function */
-         "R_SCORE_GOT15",       /* name */
-         TRUE,                  /* partial_inplace */
-         0x00007fff,            /* src_mask */
-         0x00007fff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_GOT15,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed,	/* complain_on_overflow */
+	 score_elf_got15_reloc, /* special_function */
+	 "R_SCORE_GOT15",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x00007fff,		/* src_mask */
+	 0x00007fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* Low 16 bits of displacement in global offset table.  */
-  HOWTO (R_SCORE_GOT_LO16,      /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         score_elf_got_lo16_reloc, /* special_function */
-         "R_SCORE_GOT_LO16",    /* name */
-         TRUE,                  /* partial_inplace */
-         0x37ffe,               /* src_mask */
-         0x37ffe,               /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_GOT_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 score_elf_got_lo16_reloc, /* special_function */
+	 "R_SCORE_GOT_LO16",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x37ffe,		/* src_mask */
+	 0x37ffe,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* 15 bit call through global offset table.  */
-  HOWTO (R_SCORE_CALL15,        /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_signed, /* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_CALL15",      /* name */
-         TRUE,                  /* partial_inplace */
-         0x0000ffff,            /* src_mask */
-         0x0000ffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_CALL15,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_CALL15",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* 32 bit GP relative reference.  */
-  HOWTO (R_SCORE_GPREL32,       /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         32,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         score_elf_gprel32_reloc, /* special_function */
-         "R_SCORE_GPREL32",     /* name */
-         TRUE,                  /* partial_inplace */
-         0xffffffff,            /* src_mask */
-         0xffffffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_GPREL32,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 score_elf_gprel32_reloc, /* special_function */
+	 "R_SCORE_GPREL32",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* 32 bit symbol relative relocation.  */
-  HOWTO (R_SCORE_REL32,         /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         32,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_REL32",       /* name */
-         TRUE,                  /* partial_inplace */
-         0xffffffff,            /* src_mask */
-         0xffffffff,            /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_REL32,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_REL32",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* R_SCORE_DUMMY_HI16 */
-  HOWTO (R_SCORE_DUMMY_HI16,    /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         16,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         1,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         score_elf_hi16_reloc,  /* special_function */
-         "R_SCORE_DUMMY_HI16",  /* name */
-         TRUE,                  /* partial_inplace */
-         0x37fff,               /* src_mask */
-         0x37fff,               /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_DUMMY_HI16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 1,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 score_elf_hi16_reloc,	/* special_function */
+	 "R_SCORE_DUMMY_HI16",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x37fff,		/* src_mask */
+	 0x37fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* R_SCORE_IMM30 */
-  HOWTO (R_SCORE_IMM30,         /* type */
-         2,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         30,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         7,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_IMM30",       /* name */
-         FALSE,                 /* partial_inplace */
-         0x7f7fff7f80LL,        /* src_mask */
-         0x7f7fff7f80LL,        /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_IMM30,		/* type */
+	 2,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 30,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 7,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_IMM30",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x7f7fff7f80LL,	/* src_mask */
+	 0x7f7fff7f80LL,	/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* R_SCORE_IMM32 */
-  HOWTO (R_SCORE_IMM32,         /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         32,                    /* bitsize */
-         FALSE,                 /* pc_relative */
-         5,                     /* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc, /* special_function */
-         "R_SCORE_IMM32",       /* name */
-         FALSE,                 /* partial_inplace */
-         0x7f7fff7fe0LL,        /* src_mask */
-         0x7f7fff7fe0LL,        /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_SCORE_IMM32,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 5,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_SCORE_IMM32",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x7f7fff7fe0LL,	/* src_mask */
+	 0x7f7fff7fe0LL,	/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 };
 
 struct score_reloc_map
@@ -981,28 +981,28 @@ struct score_reloc_map
 
 static const struct score_reloc_map elf32_score_reloc_map[] =
 {
-  {BFD_RELOC_NONE,               R_SCORE_NONE},
-  {BFD_RELOC_HI16_S,             R_SCORE_HI16},
-  {BFD_RELOC_LO16,               R_SCORE_LO16},
-  {BFD_RELOC_SCORE_BCMP,         R_SCORE_BCMP},
-  {BFD_RELOC_SCORE_JMP,          R_SCORE_24},
-  {BFD_RELOC_SCORE_BRANCH,       R_SCORE_PC19},
-  {BFD_RELOC_SCORE16_JMP,        R_SCORE16_11},
-  {BFD_RELOC_SCORE16_BRANCH,     R_SCORE16_PC8},
-  {BFD_RELOC_32,                 R_SCORE_ABS32},
-  {BFD_RELOC_16,                 R_SCORE_ABS16},
-  {BFD_RELOC_SCORE_DUMMY2,       R_SCORE_DUMMY2},
-  {BFD_RELOC_SCORE_GPREL15,      R_SCORE_GP15},
-  {BFD_RELOC_VTABLE_INHERIT,     R_SCORE_GNU_VTINHERIT},
-  {BFD_RELOC_VTABLE_ENTRY,       R_SCORE_GNU_VTENTRY},
-  {BFD_RELOC_SCORE_GOT15,        R_SCORE_GOT15},
-  {BFD_RELOC_SCORE_GOT_LO16,     R_SCORE_GOT_LO16},
-  {BFD_RELOC_SCORE_CALL15,       R_SCORE_CALL15},
-  {BFD_RELOC_GPREL32,            R_SCORE_GPREL32},
-  {BFD_RELOC_32_PCREL,           R_SCORE_REL32},
-  {BFD_RELOC_SCORE_DUMMY_HI16,   R_SCORE_DUMMY_HI16},
-  {BFD_RELOC_SCORE_IMM30,        R_SCORE_IMM30},
-  {BFD_RELOC_SCORE_IMM32,        R_SCORE_IMM32},
+  {BFD_RELOC_NONE,		 R_SCORE_NONE},
+  {BFD_RELOC_HI16_S,		 R_SCORE_HI16},
+  {BFD_RELOC_LO16,		 R_SCORE_LO16},
+  {BFD_RELOC_SCORE_BCMP,	 R_SCORE_BCMP},
+  {BFD_RELOC_SCORE_JMP,		 R_SCORE_24},
+  {BFD_RELOC_SCORE_BRANCH,	 R_SCORE_PC19},
+  {BFD_RELOC_SCORE16_JMP,	 R_SCORE16_11},
+  {BFD_RELOC_SCORE16_BRANCH,	 R_SCORE16_PC8},
+  {BFD_RELOC_32,		 R_SCORE_ABS32},
+  {BFD_RELOC_16,		 R_SCORE_ABS16},
+  {BFD_RELOC_SCORE_DUMMY2,	 R_SCORE_DUMMY2},
+  {BFD_RELOC_SCORE_GPREL15,	 R_SCORE_GP15},
+  {BFD_RELOC_VTABLE_INHERIT,	 R_SCORE_GNU_VTINHERIT},
+  {BFD_RELOC_VTABLE_ENTRY,	 R_SCORE_GNU_VTENTRY},
+  {BFD_RELOC_SCORE_GOT15,	 R_SCORE_GOT15},
+  {BFD_RELOC_SCORE_GOT_LO16,	 R_SCORE_GOT_LO16},
+  {BFD_RELOC_SCORE_CALL15,	 R_SCORE_CALL15},
+  {BFD_RELOC_GPREL32,		 R_SCORE_GPREL32},
+  {BFD_RELOC_32_PCREL,		 R_SCORE_REL32},
+  {BFD_RELOC_SCORE_DUMMY_HI16,	 R_SCORE_DUMMY_HI16},
+  {BFD_RELOC_SCORE_IMM30,	 R_SCORE_IMM30},
+  {BFD_RELOC_SCORE_IMM32,	 R_SCORE_IMM32},
 };
 
 /* got_entries only match if they're identical, except for gotidx, so
@@ -1025,8 +1025,8 @@ score_elf_got_entry_eq (const void *entr
 
   return e1->abfd == e2->abfd && e1->symndx == e2->symndx
     && (! e1->abfd ? e1->d.address == e2->d.address
-        : e1->symndx >= 0 ? e1->d.addend == e2->d.addend
-        : e1->d.h == e2->d.h);
+	: e1->symndx >= 0 ? e1->d.addend == e2->d.addend
+	: e1->d.h == e2->d.h);
 }
 
 /* If H needs a GOT entry, assign it the highest available dynamic
@@ -1048,7 +1048,7 @@ score_elf_sort_hash_table_f (struct scor
   if (h->root.got.offset == 2)
     {
       if (hsd->max_unref_got_dynindx == hsd->min_got_dynindx)
-        hsd->low = (struct elf_link_hash_entry *) h;
+	hsd->low = (struct elf_link_hash_entry *) h;
       h->root.dynindx = hsd->max_unref_got_dynindx++;
     }
   else if (h->root.got.offset != 1)
@@ -1099,7 +1099,7 @@ score_elf_got_info (bfd *abfd, asection 
    section symbols are added and the count is higher.  */
 static bfd_boolean
 score_elf_sort_hash_table (struct bfd_link_info *info,
-                           unsigned long max_local)
+			   unsigned long max_local)
 {
   struct score_elf_hash_sort_data hsd;
   struct score_got_info *g;
@@ -1129,7 +1129,7 @@ score_elf_sort_hash_table (struct bfd_li
      accommodate both the GOT and non-GOT symbols.  */
   BFD_ASSERT (hsd.max_non_got_dynindx <= hsd.min_got_dynindx);
   BFD_ASSERT ((unsigned long)hsd.max_unref_got_dynindx
-              <= elf_hash_table (info)->dynsymcount);
+	      <= elf_hash_table (info)->dynsymcount);
 
   /* Now we know which dynamic symbol has the lowest dynamic symbol
      table index in the GOT.  */
@@ -1142,8 +1142,8 @@ score_elf_sort_hash_table (struct bfd_li
 
 static struct bfd_hash_entry *
 score_elf_link_hash_newfunc (struct bfd_hash_entry *entry,
-                             struct bfd_hash_table *table,
-                             const char *string)
+			     struct bfd_hash_table *table,
+			     const char *string)
 {
   struct score_elf_link_hash_entry *ret = (struct score_elf_link_hash_entry *) entry;
 
@@ -1155,7 +1155,7 @@ score_elf_link_hash_newfunc (struct bfd_
 
   /* Call the allocation method of the superclass.  */
   ret = ((struct score_elf_link_hash_entry *)
-         _bfd_elf_link_hash_newfunc ((struct bfd_hash_entry *) ret, table, string));
+	 _bfd_elf_link_hash_newfunc ((struct bfd_hash_entry *) ret, table, string));
 
   if (ret != NULL)
     {
@@ -1172,13 +1172,13 @@ score_elf_link_hash_newfunc (struct bfd_
    RELOCATION.  RELEND is one-past-the-end of the relocation table.  */
 static const Elf_Internal_Rela *
 score_elf_next_relocation (bfd *abfd ATTRIBUTE_UNUSED, unsigned int r_type,
-                            const Elf_Internal_Rela *relocation,
-                           const Elf_Internal_Rela *relend)
+			    const Elf_Internal_Rela *relocation,
+			   const Elf_Internal_Rela *relend)
 {
   while (relocation < relend)
     {
       if (ELF32_R_TYPE (relocation->r_info) == r_type)
-        return relocation;
+	return relocation;
 
       ++relocation;
     }
@@ -1205,9 +1205,9 @@ score_elf_sort_dynamic_relocs (const voi
 /* Return whether a relocation is against a local symbol.  */
 static bfd_boolean
 score_elf_local_relocation_p (bfd *input_bfd,
-                              const Elf_Internal_Rela *relocation,
-                              asection **local_sections,
-                              bfd_boolean check_forced)
+			      const Elf_Internal_Rela *relocation,
+			      asection **local_sections,
+			      bfd_boolean check_forced)
 {
   unsigned long r_symndx;
   Elf_Internal_Shdr *symtab_hdr;
@@ -1227,13 +1227,13 @@ score_elf_local_relocation_p (bfd *input
     {
       /* Look up the hash table to check whether the symbol was forced local.  */
       h = (struct score_elf_link_hash_entry *)
-        elf_sym_hashes (input_bfd) [r_symndx - extsymoff];
+	elf_sym_hashes (input_bfd) [r_symndx - extsymoff];
       /* Find the real hash-table entry for this symbol.  */
       while (h->root.root.type == bfd_link_hash_indirect
-             || h->root.root.type == bfd_link_hash_warning)
-        h = (struct score_elf_link_hash_entry *) h->root.root.u.i.link;
+	     || h->root.root.type == bfd_link_hash_warning)
+	h = (struct score_elf_link_hash_entry *) h->root.root.u.i.link;
       if (h->root.forced_local)
-        return TRUE;
+	return TRUE;
     }
 
   return FALSE;
@@ -1257,9 +1257,9 @@ score_elf_rel_dyn_section (bfd *dynobj, 
 						    | SEC_LINKER_CREATED
 						    | SEC_READONLY));
       if (sreloc == NULL
-          || ! bfd_set_section_alignment (dynobj, sreloc,
-                                          SCORE_ELF_LOG_FILE_ALIGN (dynobj)))
-        return NULL;
+	  || ! bfd_set_section_alignment (dynobj, sreloc,
+					  SCORE_ELF_LOG_FILE_ALIGN (dynobj)))
+	return NULL;
     }
   return sreloc;
 }
@@ -1287,11 +1287,11 @@ score_elf_allocate_dynamic_relocations (
    caller should store the result in place of the original addend.  */
 static bfd_boolean
 score_elf_create_dynamic_relocation (bfd *output_bfd,
-                                     struct bfd_link_info *info,
-                                     const Elf_Internal_Rela *rel,
-                                     struct score_elf_link_hash_entry *h,
-                                     bfd_vma symbol,
-                                     bfd_vma *addendp, asection *input_section)
+				     struct bfd_link_info *info,
+				     const Elf_Internal_Rela *rel,
+				     struct score_elf_link_hash_entry *h,
+				     bfd_vma symbol,
+				     bfd_vma *addendp, asection *input_section)
 {
   Elf_Internal_Rela outrel[3];
   asection *sreloc;
@@ -1321,8 +1321,8 @@ score_elf_create_dynamic_relocation (bfd
   if (outrel[0].r_offset == MINUS_TWO)
     {
       /* The relocation field has been converted into a relative value of
-         some sort.  Functions like _bfd_elf_write_section_eh_frame expect
-         the field to be fully relocated, so add in the symbol's value.  */
+	 some sort.  Functions like _bfd_elf_write_section_eh_frame expect
+	 the field to be fully relocated, so add in the symbol's value.  */
       *addendp += symbol;
       return TRUE;
     }
@@ -1332,14 +1332,14 @@ score_elf_create_dynamic_relocation (bfd
   if (h != NULL
       && (! info->symbolic || !h->root.def_regular)
       /* h->root.dynindx may be -1 if this symbol was marked to
-         become local.  */
+	 become local.  */
       && h->root.dynindx != -1)
     {
       indx = h->root.dynindx;
-        /* ??? glibc's ld.so just adds the final GOT entry to the
-           relocation field.  It therefore treats relocs against
-           defined symbols in the same way as relocs against
-           undefined symbols.  */
+	/* ??? glibc's ld.so just adds the final GOT entry to the
+	   relocation field.  It therefore treats relocs against
+	   defined symbols in the same way as relocs against
+	   undefined symbols.  */
       defined_p = FALSE;
     }
   else
@@ -1377,11 +1377,11 @@ score_elf_create_dynamic_relocation (bfd
   /* Adjust the output offset of the relocation to reference the
      correct location in the output file.  */
   outrel[0].r_offset += (input_section->output_section->vma
-                         + input_section->output_offset);
+			 + input_section->output_offset);
   outrel[1].r_offset += (input_section->output_section->vma
-                         + input_section->output_offset);
+			 + input_section->output_offset);
   outrel[2].r_offset += (input_section->output_section->vma
-                         + input_section->output_offset);
+			 + input_section->output_offset);
 
   /* Put the relocation back out.  We have to use the special
      relocation outputter in the 64-bit case since the 64-bit
@@ -1402,8 +1402,8 @@ score_elf_create_dynamic_relocation (bfd
 
 static bfd_boolean
 score_elf_create_got_section (bfd *abfd,
-                              struct bfd_link_info *info,
-                              bfd_boolean maybe_exclude)
+			      struct bfd_link_info *info,
+			      bfd_boolean maybe_exclude)
 {
   flagword flags;
   asection *s;
@@ -1417,7 +1417,7 @@ score_elf_create_got_section (bfd *abfd,
   if (s)
     {
       if (! maybe_exclude)
-        s->flags &= ~SEC_EXCLUDE;
+	s->flags &= ~SEC_EXCLUDE;
       return TRUE;
     }
 
@@ -1439,8 +1439,8 @@ score_elf_create_got_section (bfd *abfd,
      are not creating a global offset table.  */
   bh = NULL;
   if (! (_bfd_generic_link_add_one_symbol
-         (info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL, s,
-          0, NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
+	 (info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL, s,
+	  0, NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
     return FALSE;
 
   h = (struct elf_link_hash_entry *) bh;
@@ -1465,7 +1465,7 @@ score_elf_create_got_section (bfd *abfd,
   g->next = NULL;
 
   g->got_entries = htab_try_create (1, score_elf_got_entry_hash,
-                                    score_elf_got_entry_eq, NULL);
+				    score_elf_got_entry_eq, NULL);
   if (g->got_entries == NULL)
     return FALSE;
   score_elf_section_data (s)->u.got_info = g;
@@ -1485,12 +1485,12 @@ score_elf_high (bfd_vma value)
    or -1 if it could not be created.  */
 static struct score_got_entry *
 score_elf_create_local_got_entry (bfd *abfd,
-                                  bfd *ibfd ATTRIBUTE_UNUSED,
-                                  struct score_got_info *gg,
-                                  asection *sgot, bfd_vma value,
-                                  unsigned long r_symndx ATTRIBUTE_UNUSED,
-                                  struct score_elf_link_hash_entry *h ATTRIBUTE_UNUSED,
-                                  int r_type ATTRIBUTE_UNUSED)
+				  bfd *ibfd ATTRIBUTE_UNUSED,
+				  struct score_got_info *gg,
+				  asection *sgot, bfd_vma value,
+				  unsigned long r_symndx ATTRIBUTE_UNUSED,
+				  struct score_elf_link_hash_entry *h ATTRIBUTE_UNUSED,
+				  int r_type ATTRIBUTE_UNUSED)
 {
   struct score_got_entry entry, **loc;
   struct score_got_info *g;
@@ -1518,7 +1518,7 @@ score_elf_create_local_got_entry (bfd *a
       (*loc)->gotidx = -1;
       /* We didn't allocate enough space in the GOT.  */
       _bfd_error_handler
-        (_("not enough GOT space for local GOT entries"));
+	(_("not enough GOT space for local GOT entries"));
       bfd_set_error (bfd_error_bad_value);
       return NULL;
     }
@@ -1532,7 +1532,7 @@ score_elf_create_local_got_entry (bfd *a
    for value.  Return the index into the GOT for this entry.  */
 static bfd_vma
 score_elf_got16_entry (bfd *abfd, bfd *ibfd, struct bfd_link_info *info,
-                       bfd_vma value, bfd_boolean external)
+		       bfd_vma value, bfd_boolean external)
 {
   asection *sgot;
   struct score_got_info *g;
@@ -1541,16 +1541,16 @@ score_elf_got16_entry (bfd *abfd, bfd *i
   if (!external)
     {
       /* Although the ABI says that it is "the high-order 16 bits" that we
-         want, it is really the %high value.  The complete value is
-         calculated with a `addiu' of a LO16 relocation, just as with a
-         HI16/LO16 pair.  */
+	 want, it is really the %high value.  The complete value is
+	 calculated with a `addiu' of a LO16 relocation, just as with a
+	 HI16/LO16 pair.  */
       value = score_elf_high (value) << 16;
     }
 
   g = score_elf_got_info (elf_hash_table (info)->dynobj, &sgot);
 
   entry = score_elf_create_local_got_entry (abfd, ibfd, g, sgot, value, 0, NULL,
-                                            R_SCORE_GOT15);
+					    R_SCORE_GOT15);
   if (entry)
     return entry->gotidx;
   else
@@ -1559,8 +1559,8 @@ score_elf_got16_entry (bfd *abfd, bfd *i
 
 static void
 s3_bfd_score_elf_hide_symbol (struct bfd_link_info *info,
-                              struct elf_link_hash_entry *entry,
-                              bfd_boolean force_local)
+			      struct elf_link_hash_entry *entry,
+			      bfd_boolean force_local)
 {
   bfd *dynobj;
   asection *got;
@@ -1577,55 +1577,55 @@ s3_bfd_score_elf_hide_symbol (struct bfd
     {
       got = score_elf_got_section (dynobj, FALSE);
       if (got == NULL)
-        return;
+	return;
       g = score_elf_section_data (got)->u.got_info;
 
       if (g->next)
-        {
-          struct score_got_entry e;
-          struct score_got_info *gg = g;
-
-          /* Since we're turning what used to be a global symbol into a
-             local one, bump up the number of local entries of each GOT
-             that had an entry for it.  This will automatically decrease
-             the number of global entries, since global_gotno is actually
-             the upper limit of global entries.  */
-          e.abfd = dynobj;
-          e.symndx = -1;
-          e.d.h = h;
-
-          for (g = g->next; g != gg; g = g->next)
-            if (htab_find (g->got_entries, &e))
-              {
-                BFD_ASSERT (g->global_gotno > 0);
-                g->local_gotno++;
-                g->global_gotno--;
-              }
-
-          /* If this was a global symbol forced into the primary GOT, we
-             no longer need an entry for it.  We can't release the entry
-             at this point, but we must at least stop counting it as one
-             of the symbols that required a forced got entry.  */
-          if (h->root.got.offset == 2)
-            {
-              BFD_ASSERT (gg->assigned_gotno > 0);
-              gg->assigned_gotno--;
-            }
-        }
+	{
+	  struct score_got_entry e;
+	  struct score_got_info *gg = g;
+
+	  /* Since we're turning what used to be a global symbol into a
+	     local one, bump up the number of local entries of each GOT
+	     that had an entry for it.  This will automatically decrease
+	     the number of global entries, since global_gotno is actually
+	     the upper limit of global entries.  */
+	  e.abfd = dynobj;
+	  e.symndx = -1;
+	  e.d.h = h;
+
+	  for (g = g->next; g != gg; g = g->next)
+	    if (htab_find (g->got_entries, &e))
+	      {
+		BFD_ASSERT (g->global_gotno > 0);
+		g->local_gotno++;
+		g->global_gotno--;
+	      }
+
+	  /* If this was a global symbol forced into the primary GOT, we
+	     no longer need an entry for it.  We can't release the entry
+	     at this point, but we must at least stop counting it as one
+	     of the symbols that required a forced got entry.  */
+	  if (h->root.got.offset == 2)
+	    {
+	      BFD_ASSERT (gg->assigned_gotno > 0);
+	      gg->assigned_gotno--;
+	    }
+	}
       else if (g->global_gotno == 0 && g->global_gotsym == NULL)
-        /* If we haven't got through GOT allocation yet, just bump up the
-              number of local entries, as this symbol won't be counted as
-              global.  */
-        g->local_gotno++;
+	/* If we haven't got through GOT allocation yet, just bump up the
+	      number of local entries, as this symbol won't be counted as
+	      global.  */
+	g->local_gotno++;
       else if (h->root.got.offset == 1)
-        {
-          /* If we're past non-multi-GOT allocation and this symbol had
-                  been marked for a global got entry, give it a local entry
-                  instead.  */
-          BFD_ASSERT (g->global_gotno > 0);
-          g->local_gotno++;
-          g->global_gotno--;
-        }
+	{
+	  /* If we're past non-multi-GOT allocation and this symbol had
+		  been marked for a global got entry, give it a local entry
+		  instead.  */
+	  BFD_ASSERT (g->global_gotno > 0);
+	  g->local_gotno++;
+	  g->global_gotno--;
+	}
     }
 
   _bfd_elf_link_hash_hide_symbol (info, &h->root, force_local);
@@ -1636,9 +1636,9 @@ s3_bfd_score_elf_hide_symbol (struct bfd
    posterity.  */
 static bfd_boolean
 score_elf_record_global_got_symbol (struct elf_link_hash_entry *h,
-                                    bfd *abfd,
-                                    struct bfd_link_info *info,
-                                    struct score_got_info *g)
+				    bfd *abfd,
+				    struct bfd_link_info *info,
+				    struct score_got_info *g)
 {
   struct score_got_entry entry, **loc;
 
@@ -1646,14 +1646,14 @@ score_elf_record_global_got_symbol (stru
   if (h->dynindx == -1)
     {
       switch (ELF_ST_VISIBILITY (h->other))
-        {
-        case STV_INTERNAL:
-        case STV_HIDDEN:
-          s3_bfd_score_elf_hide_symbol (info, h, TRUE);
-          break;
-        }
+	{
+	case STV_INTERNAL:
+	case STV_HIDDEN:
+	  s3_bfd_score_elf_hide_symbol (info, h, TRUE);
+	  break;
+	}
       if (!bfd_elf_link_record_dynamic_symbol (info, h))
-        return FALSE;
+	return FALSE;
     }
 
   entry.abfd = abfd;
@@ -1690,9 +1690,9 @@ score_elf_record_global_got_symbol (stru
    SYMNDX in input bfd ABDF, plus ADDEND.  */
 static bfd_boolean
 score_elf_record_local_got_symbol (bfd *abfd,
-                                   long symndx,
-                                   bfd_vma addend,
-                                   struct score_got_info *g)
+				   long symndx,
+				   bfd_vma addend,
+				   struct score_got_info *g)
 {
   struct score_got_entry entry, **loc;
 
@@ -1720,8 +1720,8 @@ score_elf_record_local_got_symbol (bfd *
    Returns -1 if no satisfactory GOT offset can be found.  */
 static bfd_vma
 score_elf_local_got_index (bfd *abfd, bfd *ibfd, struct bfd_link_info *info,
-                           bfd_vma value, unsigned long r_symndx,
-                           struct score_elf_link_hash_entry *h, int r_type)
+			   bfd_vma value, unsigned long r_symndx,
+			   struct score_elf_link_hash_entry *h, int r_type)
 {
   asection *sgot;
   struct score_got_info *g;
@@ -1730,7 +1730,7 @@ score_elf_local_got_index (bfd *abfd, bf
   g = score_elf_got_info (elf_hash_table (info)->dynobj, &sgot);
 
   entry = score_elf_create_local_got_entry (abfd, ibfd, g, sgot, value,
-                                             r_symndx, h, r_type);
+					     r_symndx, h, r_type);
   if (!entry)
     return MINUS_ONE;
 
@@ -1768,7 +1768,7 @@ score_elf_global_got_index (bfd *abfd, s
 static bfd_vma
 score_elf_got_offset_from_index (bfd *dynobj,
 				 bfd *output_bfd,
-                                 bfd *input_bfd ATTRIBUTE_UNUSED,
+				 bfd *input_bfd ATTRIBUTE_UNUSED,
 				 bfd_vma got_index)
 {
   asection *sgot;
@@ -1797,30 +1797,30 @@ score_elf_resolve_final_got_entry (void 
       struct score_elf_link_hash_entry *h = entry->d.h;
 
       while (h->root.root.type == bfd_link_hash_indirect
-             || h->root.root.type == bfd_link_hash_warning)
-        h = (struct score_elf_link_hash_entry *) h->root.root.u.i.link;
+	     || h->root.root.type == bfd_link_hash_warning)
+	h = (struct score_elf_link_hash_entry *) h->root.root.u.i.link;
 
       if (entry->d.h == h)
-        return 1;
+	return 1;
 
       entry->d.h = h;
 
       /* If we can't find this entry with the new bfd hash, re-insert
-         it, and get the traversal restarted.  */
+	 it, and get the traversal restarted.  */
       if (! htab_find (got_entries, entry))
-        {
-          htab_clear_slot (got_entries, entryp);
-          entryp = htab_find_slot (got_entries, entry, INSERT);
-          if (! *entryp)
-            *entryp = entry;
-          /* Abort the traversal, since the whole table may have
-             moved, and leave it up to the parent to restart the
-             process.  */
-          *(htab_t *)p = NULL;
-          return 0;
-        }
+	{
+	  htab_clear_slot (got_entries, entryp);
+	  entryp = htab_find_slot (got_entries, entry, INSERT);
+	  if (! *entryp)
+	    *entryp = entry;
+	  /* Abort the traversal, since the whole table may have
+	     moved, and leave it up to the parent to restart the
+	     process.  */
+	  *(htab_t *)p = NULL;
+	  return 0;
+	}
       /* We might want to decrement the global_gotno count, but it's
-         either too early or too late for that at this point.  */
+	 either too early or too late for that at this point.  */
     }
 
   return 1;
@@ -1837,8 +1837,8 @@ score_elf_resolve_final_got_entries (str
       got_entries = g->got_entries;
 
       htab_traverse (got_entries,
-                     score_elf_resolve_final_got_entry,
-                     &got_entries);
+		     score_elf_resolve_final_got_entry,
+		     &got_entries);
     }
   while (got_entries == NULL);
 }
@@ -1846,9 +1846,9 @@ score_elf_resolve_final_got_entries (str
 /* Add INCREMENT to the reloc (of type HOWTO) at ADDRESS. for -r  */
 static void
 score_elf_add_to_rel (bfd *abfd,
-                      bfd_byte *address,
-                      reloc_howto_type *howto,
-                      bfd_signed_vma increment)
+		      bfd_byte *address,
+		      reloc_howto_type *howto,
+		      bfd_signed_vma increment)
 {
   bfd_signed_vma addend;
   bfd_vma contents;
@@ -1872,11 +1872,11 @@ score_elf_add_to_rel (bfd *abfd,
     {
     case R_SCORE_PC19:
       offset =
-        (((contents & howto->src_mask) & 0x3ff0000) >> 6) | ((contents & howto->src_mask) & 0x3ff);
+	(((contents & howto->src_mask) & 0x3ff0000) >> 6) | ((contents & howto->src_mask) & 0x3ff);
       offset += increment;
       contents =
-        (contents & ~howto->
-         src_mask) | (((offset << 6) & howto->src_mask) & 0x3ff0000) | (offset & 0x3ff);
+	(contents & ~howto->
+	 src_mask) | (((offset << 6) & howto->src_mask) & 0x3ff0000) | (offset & 0x3ff);
       score_bfd_put_32 (abfd, contents, address);
       break;
     case R_SCORE_HI16:
@@ -1889,7 +1889,7 @@ score_elf_add_to_rel (bfd *abfd,
       uvalue = increment + offset;
       hi16_offset = (uvalue >> 16) << 1;
       hi16_value = (hi16_addend & (~(howto->dst_mask)))
-        | (hi16_offset & 0x7fff) | ((hi16_offset << 1) & 0x30000);
+	| (hi16_offset & 0x7fff) | ((hi16_offset << 1) & 0x30000);
       score_bfd_put_32 (abfd, hi16_value, address - 4);
       offset = (uvalue & 0xffff) << 1;
       contents = (contents & (~(howto->dst_mask))) | (offset & 0x7fff) | ((offset << 1) & 0x30000);
@@ -1897,11 +1897,11 @@ score_elf_add_to_rel (bfd *abfd,
       break;
     case R_SCORE_24:
       offset =
-        (((contents & howto->src_mask) >> 1) & 0x1ff8000) | ((contents & howto->src_mask) & 0x7fff);
+	(((contents & howto->src_mask) >> 1) & 0x1ff8000) | ((contents & howto->src_mask) & 0x7fff);
       offset += increment;
       contents =
-        (contents & ~howto->
-         src_mask) | (((offset << 1) & howto->src_mask) & 0x3ff0000) | (offset & 0x7fff);
+	(contents & ~howto->
+	 src_mask) | (((offset << 1) & howto->src_mask) & 0x3ff0000) | (offset & 0x7fff);
       score_bfd_put_32 (abfd, contents, address);
       break;
 
@@ -1962,19 +1962,19 @@ score_elf_add_to_rel (bfd *abfd,
 /* Perform a relocation as part of a final link.  */
 static bfd_reloc_status_type
 score_elf_final_link_relocate (reloc_howto_type *howto,
-                               bfd *input_bfd,
-                               bfd *output_bfd,
-                               asection *input_section,
-                               bfd_byte *contents,
-                               Elf_Internal_Rela *rel,
-                               Elf_Internal_Rela *relocs,
-                               bfd_vma symbol,
-                               struct bfd_link_info *info,
-                               const char *sym_name ATTRIBUTE_UNUSED,
-                               int sym_flags ATTRIBUTE_UNUSED,
-                               struct score_elf_link_hash_entry *h,
-                               asection **local_sections,
-                               bfd_boolean gp_disp_p)
+			       bfd *input_bfd,
+			       bfd *output_bfd,
+			       asection *input_section,
+			       bfd_byte *contents,
+			       Elf_Internal_Rela *rel,
+			       Elf_Internal_Rela *relocs,
+			       bfd_vma symbol,
+			       struct bfd_link_info *info,
+			       const char *sym_name ATTRIBUTE_UNUSED,
+			       int sym_flags ATTRIBUTE_UNUSED,
+			       struct score_elf_link_hash_entry *h,
+			       asection **local_sections,
+			       bfd_boolean gp_disp_p)
 {
   unsigned long r_type;
   unsigned long r_symndx;
@@ -2002,26 +2002,26 @@ score_elf_final_link_relocate (reloc_how
 
       bh = bfd_link_hash_lookup (info->hash, "_gp", 0, 0, 1);
       if (bh != NULL && bh->type == bfd_link_hash_defined)
-        elf_gp (output_bfd) = (bh->u.def.value
-                               + bh->u.def.section->output_section->vma
-                               + bh->u.def.section->output_offset);
+	elf_gp (output_bfd) = (bh->u.def.value
+			       + bh->u.def.section->output_section->vma
+			       + bh->u.def.section->output_offset);
       else if (bfd_link_relocatable (info))
-        {
-          bfd_vma lo = -1;
+	{
+	  bfd_vma lo = -1;
 
-          /* Find the GP-relative section with the lowest offset.  */
-          for (o = output_bfd->sections; o != NULL; o = o->next)
-            if (o->vma < lo)
-              lo = o->vma;
-          /* And calculate GP relative to that.  */
-          elf_gp (output_bfd) = lo + ELF_SCORE_GP_OFFSET (input_bfd);
-        }
+	  /* Find the GP-relative section with the lowest offset.  */
+	  for (o = output_bfd->sections; o != NULL; o = o->next)
+	    if (o->vma < lo)
+	      lo = o->vma;
+	  /* And calculate GP relative to that.  */
+	  elf_gp (output_bfd) = lo + ELF_SCORE_GP_OFFSET (input_bfd);
+	}
       else
-        {
-          /* If the relocate_section function needs to do a reloc
-             involving the GP value, it should make a reloc_dangerous
-             callback to warn that GP is not defined.  */
-        }
+	{
+	  /* If the relocate_section function needs to do a reloc
+	     involving the GP value, it should make a reloc_dangerous
+	     callback to warn that GP is not defined.  */
+	}
     }
 
   /* Parse the relocation.  */
@@ -2034,18 +2034,16 @@ score_elf_final_link_relocate (reloc_how
     {
       const Elf_Internal_Rela *relend;
       const Elf_Internal_Rela *lo16_rel;
-      const struct elf_backend_data *bed;
       bfd_vma lo_value = 0;
 
-      bed = get_elf_backend_data (output_bfd);
-      relend = relocs + input_section->reloc_count * bed->s->int_rels_per_ext_rel;
+      relend = relocs + input_section->reloc_count;
       lo16_rel = score_elf_next_relocation (input_bfd, R_SCORE_GOT_LO16, rel, relend);
       if ((local_p) && (lo16_rel != NULL))
-        {
-          bfd_vma tmp = 0;
-          tmp = score_bfd_get_32 (input_bfd, contents + lo16_rel->r_offset);
-          lo_value = (((tmp >> 16) & 0x3) << 14) | ((tmp & 0x7fff) >> 1);
-        }
+	{
+	  bfd_vma tmp = 0;
+	  tmp = score_bfd_get_32 (input_bfd, contents + lo16_rel->r_offset);
+	  lo_value = (((tmp >> 16) & 0x3) << 14) | ((tmp & 0x7fff) >> 1);
+	}
       addend = lo_value;
     }
   /* For score3 R_SCORE_ABS32.  */
@@ -2065,39 +2063,39 @@ score_elf_final_link_relocate (reloc_how
     case R_SCORE_CALL15:
     case R_SCORE_GOT15:
       if (!local_p)
-        {
-          g = score_elf_global_got_index (elf_hash_table (info)->dynobj,
-                                          (struct elf_link_hash_entry *) h);
-          if ((! elf_hash_table (info)->dynamic_sections_created
-               || (bfd_link_pic (info)
-                   && (info->symbolic || h->root.dynindx == -1)
-                   && h->root.def_regular)))
-            {
-              /* This is a static link or a -Bsymbolic link.  The
-                 symbol is defined locally, or was forced to be local.
-                 We must initialize this entry in the GOT.  */
-              bfd *tmpbfd = elf_hash_table (info)->dynobj;
-              asection *sgot = score_elf_got_section (tmpbfd, FALSE);
-              score_bfd_put_32 (tmpbfd, value, sgot->contents + g);
-            }
-        }
+	{
+	  g = score_elf_global_got_index (elf_hash_table (info)->dynobj,
+					  (struct elf_link_hash_entry *) h);
+	  if ((! elf_hash_table (info)->dynamic_sections_created
+	       || (bfd_link_pic (info)
+		   && (info->symbolic || h->root.dynindx == -1)
+		   && h->root.def_regular)))
+	    {
+	      /* This is a static link or a -Bsymbolic link.  The
+		 symbol is defined locally, or was forced to be local.
+		 We must initialize this entry in the GOT.  */
+	      bfd *tmpbfd = elf_hash_table (info)->dynobj;
+	      asection *sgot = score_elf_got_section (tmpbfd, FALSE);
+	      score_bfd_put_32 (tmpbfd, value, sgot->contents + g);
+	    }
+	}
       else if (r_type == R_SCORE_GOT15 || r_type == R_SCORE_CALL15)
-        {
-          /* There's no need to create a local GOT entry here; the
-             calculation for a local GOT15 entry does not involve G.  */
-          ;
-        }
+	{
+	  /* There's no need to create a local GOT entry here; the
+	     calculation for a local GOT15 entry does not involve G.  */
+	  ;
+	}
       else
-        {
-          g = score_elf_local_got_index (output_bfd, input_bfd, info,
-                                         symbol + addend, r_symndx, h, r_type);
-            if (g == MINUS_ONE)
-            return bfd_reloc_outofrange;
-        }
+	{
+	  g = score_elf_local_got_index (output_bfd, input_bfd, info,
+					 symbol + addend, r_symndx, h, r_type);
+	    if (g == MINUS_ONE)
+	    return bfd_reloc_outofrange;
+	}
 
       /* Convert GOT indices to actual offsets.  */
       g = score_elf_got_offset_from_index (elf_hash_table (info)->dynobj,
-                                           output_bfd, input_bfd, g);
+					   output_bfd, input_bfd, g);
       break;
 
     case R_SCORE_HI16:
@@ -2121,35 +2119,35 @@ score_elf_final_link_relocate (reloc_how
     case R_SCORE_ABS32:
     case R_SCORE_REL32:
       if ((bfd_link_pic (info)
-           || (elf_hash_table (info)->dynamic_sections_created
-               && h != NULL
-               && h->root.def_dynamic
-               && !h->root.def_regular))
-           && r_symndx != STN_UNDEF
-           && (input_section->flags & SEC_ALLOC) != 0)
-        {
-          /* If we're creating a shared library, or this relocation is against a symbol
-             in a shared library, then we can't know where the symbol will end up.
-             So, we create a relocation record in the output, and leave the job up
-             to the dynamic linker.  */
-          value = addend;
-          if (!score_elf_create_dynamic_relocation (output_bfd, info, rel, h,
-                                                    symbol, &value,
-                                                    input_section))
-            return bfd_reloc_undefined;
-        }
+	   || (elf_hash_table (info)->dynamic_sections_created
+	       && h != NULL
+	       && h->root.def_dynamic
+	       && !h->root.def_regular))
+	   && r_symndx != STN_UNDEF
+	   && (input_section->flags & SEC_ALLOC) != 0)
+	{
+	  /* If we're creating a shared library, or this relocation is against a symbol
+	     in a shared library, then we can't know where the symbol will end up.
+	     So, we create a relocation record in the output, and leave the job up
+	     to the dynamic linker.  */
+	  value = addend;
+	  if (!score_elf_create_dynamic_relocation (output_bfd, info, rel, h,
+						    symbol, &value,
+						    input_section))
+	    return bfd_reloc_undefined;
+	}
       else if (r_symndx == STN_UNDEF)
-        /* r_symndx will be STN_UNDEF (zero) only for relocs against symbols
-           from removed linkonce sections, or sections discarded by
-           a linker script.  */
-        value = 0;
+	/* r_symndx will be STN_UNDEF (zero) only for relocs against symbols
+	   from removed linkonce sections, or sections discarded by
+	   a linker script.  */
+	value = 0;
       else
-        {
-          if (r_type != R_SCORE_REL32)
-            value = symbol + addend;
-          else
-            value = addend;
-        }
+	{
+	  if (r_type != R_SCORE_REL32)
+	    value = symbol + addend;
+	  else
+	    value = addend;
+	}
       value &= howto->dst_mask;
       bfd_put_32 (input_bfd, value, hit_data);
       return bfd_reloc_ok;
@@ -2157,7 +2155,7 @@ score_elf_final_link_relocate (reloc_how
     case R_SCORE_ABS16:
       value += addend;
       if ((long)value > 0x7fff || (long)value < -0x8000)
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
       score_bfd_put_16 (input_bfd, value, hit_data);
       return bfd_reloc_ok;
 
@@ -2165,87 +2163,87 @@ score_elf_final_link_relocate (reloc_how
       addend = score_bfd_get_32 (input_bfd, hit_data);
       offset = (((addend & howto->src_mask) >> 1) & 0x1ff8000) | ((addend & howto->src_mask) & 0x7fff);
       if ((offset & 0x1000000) != 0)
-        offset |= 0xfe000000;
+	offset |= 0xfe000000;
       value += offset;
       abs_value = value - rel_addr;
       if ((abs_value & 0xfe000000) != 0)
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
       addend = (addend & ~howto->src_mask)
-                | (((value << 1) & howto->src_mask) & 0x3ff0000) | (value & 0x7fff);
+		| (((value << 1) & howto->src_mask) & 0x3ff0000) | (value & 0x7fff);
       score_bfd_put_32 (input_bfd, addend, hit_data);
       return bfd_reloc_ok;
 
     /* signed imm32.  */
     case R_SCORE_IMM30:
       {
-        int not_word_align_p = 0;
-        bfd_vma imm_offset = 0;
-        addend = score_bfd_get_48 (input_bfd, hit_data);
-        imm_offset = ((addend >> 7) & 0xff)
-                     | (((addend >> 16) & 0x7fff) << 8)
-                     | (((addend >> 32) & 0x7f) << 23);
-        imm_offset <<= howto->rightshift;
-        value += imm_offset;
-        value &= 0xffffffff;
-
-        /* Check lw48/sw48 rd, value/label word align.  */
-        if ((value & 0x3) != 0)
-          not_word_align_p = 1;
-
-        value >>= howto->rightshift;
-        addend = (addend & ~howto->src_mask)
-                 | (((value & 0xff) >> 0) << 7)
-                 | (((value & 0x7fff00) >> 8) << 16)
-                 | (((value & 0x3f800000) >> 23) << 32);
-        score_bfd_put_48 (input_bfd, addend, hit_data);
-        if (not_word_align_p)
-          return bfd_reloc_other;
-        else
-          return bfd_reloc_ok;
+	int not_word_align_p = 0;
+	bfd_vma imm_offset = 0;
+	addend = score_bfd_get_48 (input_bfd, hit_data);
+	imm_offset = ((addend >> 7) & 0xff)
+		     | (((addend >> 16) & 0x7fff) << 8)
+		     | (((addend >> 32) & 0x7f) << 23);
+	imm_offset <<= howto->rightshift;
+	value += imm_offset;
+	value &= 0xffffffff;
+
+	/* Check lw48/sw48 rd, value/label word align.  */
+	if ((value & 0x3) != 0)
+	  not_word_align_p = 1;
+
+	value >>= howto->rightshift;
+	addend = (addend & ~howto->src_mask)
+		 | (((value & 0xff) >> 0) << 7)
+		 | (((value & 0x7fff00) >> 8) << 16)
+		 | (((value & 0x3f800000) >> 23) << 32);
+	score_bfd_put_48 (input_bfd, addend, hit_data);
+	if (not_word_align_p)
+	  return bfd_reloc_other;
+	else
+	  return bfd_reloc_ok;
       }
 
     case R_SCORE_IMM32:
       {
-        bfd_vma imm_offset = 0;
-        addend = score_bfd_get_48 (input_bfd, hit_data);
-        imm_offset = ((addend >> 5) & 0x3ff)
-                     | (((addend >> 16) & 0x7fff) << 10)
-                     | (((addend >> 32) & 0x7f) << 25);
-        value += imm_offset;
-        value &= 0xffffffff;
-        addend = (addend & ~howto->src_mask)
-                 | ((value & 0x3ff) << 5)
-                 | (((value >> 10) & 0x7fff) << 16)
-                 | (((value >> 25) & 0x7f) << 32);
-        score_bfd_put_48 (input_bfd, addend, hit_data);
-        return bfd_reloc_ok;
+	bfd_vma imm_offset = 0;
+	addend = score_bfd_get_48 (input_bfd, hit_data);
+	imm_offset = ((addend >> 5) & 0x3ff)
+		     | (((addend >> 16) & 0x7fff) << 10)
+		     | (((addend >> 32) & 0x7f) << 25);
+	value += imm_offset;
+	value &= 0xffffffff;
+	addend = (addend & ~howto->src_mask)
+		 | ((value & 0x3ff) << 5)
+		 | (((value >> 10) & 0x7fff) << 16)
+		 | (((value >> 25) & 0x7f) << 32);
+	score_bfd_put_48 (input_bfd, addend, hit_data);
+	return bfd_reloc_ok;
       }
 
     case R_SCORE_PC19:
       addend = score_bfd_get_32 (input_bfd, hit_data);
       offset = (((addend & howto->src_mask) & 0x3ff0000) >> 6) | ((addend & howto->src_mask) & 0x3ff);
       if ((offset & 0x80000) != 0)
-        offset |= 0xfff00000;
+	offset |= 0xfff00000;
       abs_value = value = value - rel_addr + offset;
       /* exceed 20 bit : overflow.  */
       if ((abs_value & 0x80000000) == 0x80000000)
-        abs_value = 0xffffffff - value + 1;
+	abs_value = 0xffffffff - value + 1;
       if ((abs_value & 0xfff80000) != 0)
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
       addend = (addend & ~howto->src_mask)
-                | (((value << 6) & howto->src_mask) & 0x3ff0000) | (value & 0x3ff);
+		| (((value << 6) & howto->src_mask) & 0x3ff0000) | (value & 0x3ff);
       score_bfd_put_32 (input_bfd, addend, hit_data);
       return bfd_reloc_ok;
 
     case R_SCORE16_11:
       addend = score_bfd_get_16 (input_bfd, hit_data);
       offset = addend & howto->src_mask;
-      if ((offset & 0x800) != 0)        /* Offset is negative.  */
-        offset |= 0xfffff000;
+      if ((offset & 0x800) != 0)	/* Offset is negative.  */
+	offset |= 0xfffff000;
       value += offset;
       abs_value = value - rel_addr;
       if ((abs_value & 0xfffff000) != 0)
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
       addend = (addend & ~howto->src_mask) | (value & howto->src_mask);
       score_bfd_put_16 (input_bfd, addend, hit_data);
       return bfd_reloc_ok;
@@ -2253,12 +2251,12 @@ score_elf_final_link_relocate (reloc_how
     case R_SCORE16_PC8:
       addend = score_bfd_get_16 (input_bfd, hit_data);
       offset = (addend & howto->src_mask) << 1;
-      if ((offset & 0x200) != 0)        /* Offset is negative.  */
-        offset |= 0xfffffe00;
+      if ((offset & 0x200) != 0)	/* Offset is negative.  */
+	offset |= 0xfffffe00;
       abs_value = value = value - rel_addr + offset;
       /* Sign bit + exceed 9 bit.  */
       if (((value & 0xfffffe00) != 0) && ((value & 0xfffffe00) != 0xfffffe00))
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
       value >>= 1;
       addend = (addend & ~howto->src_mask) | (value & howto->src_mask);
       score_bfd_put_16 (input_bfd, addend, hit_data);
@@ -2267,17 +2265,17 @@ score_elf_final_link_relocate (reloc_how
     case R_SCORE_BCMP:
       addend = score_bfd_get_32 (input_bfd, hit_data);
       offset = (addend & howto->src_mask) << howto->rightshift;
-      if ((offset & 0x200) != 0)        /* Offset is negative.  */
-        offset |= 0xfffffe00;
+      if ((offset & 0x200) != 0)	/* Offset is negative.  */
+	offset |= 0xfffffe00;
       value = value - rel_addr + offset;
       /* Sign bit + exceed 9 bit.  */
       if (((value & 0xfffffe00) != 0) && ((value & 0xfffffe00) != 0xfffffe00))
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
       value >>= howto->rightshift;
       addend = (addend & ~howto->src_mask)
-               | (value & 0x1)
-               | (((value >> 1) & 0x7) << 7)
-               | (((value >> 4) & 0x1f) << 21);
+	       | (value & 0x1)
+	       | (((value >> 1) & 0x7) << 7)
+	       | (((value >> 4) & 0x1f) << 21);
       score_bfd_put_32 (input_bfd, addend, hit_data);
       return bfd_reloc_ok;
 
@@ -2292,13 +2290,13 @@ score_elf_final_link_relocate (reloc_how
       offset = (hi16_offset << 16) | (offset & 0xffff);
 
       if (!gp_disp_p)
-        uvalue = value + offset;
+	uvalue = value + offset;
       else
-        uvalue = offset + gp - rel_addr + 4;
+	uvalue = offset + gp - rel_addr + 4;
 
       hi16_offset = (uvalue >> 16) << 1;
       hi16_value = (hi16_addend & (~(howto->dst_mask)))
-                        | (hi16_offset & 0x7fff) | ((hi16_offset << 1) & 0x30000);
+			| (hi16_offset & 0x7fff) | ((hi16_offset << 1) & 0x30000);
       score_bfd_put_32 (input_bfd, hi16_value, hit_data - 4);
       offset = (uvalue & 0xffff) << 1;
       value = (addend & (~(howto->dst_mask))) | (offset & 0x7fff) | ((offset << 1) & 0x30000);
@@ -2309,10 +2307,10 @@ score_elf_final_link_relocate (reloc_how
       addend = score_bfd_get_32 (input_bfd, hit_data);
       offset = addend & 0x7fff;
       if ((offset & 0x4000) == 0x4000)
-        offset |= 0xffffc000;
+	offset |= 0xffffc000;
       value = value + offset - gp;
       if (((value & 0xffffc000) != 0) && ((value & 0xffffc000) != 0xffffc000))
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
       value = (addend & ~howto->src_mask) | (value & howto->src_mask);
       score_bfd_put_32 (input_bfd, value, hit_data);
       return bfd_reloc_ok;
@@ -2320,27 +2318,27 @@ score_elf_final_link_relocate (reloc_how
     case R_SCORE_GOT15:
     case R_SCORE_CALL15:
       if (local_p)
-        {
-          bfd_boolean forced;
+	{
+	  bfd_boolean forced;
 
-          /* The special case is when the symbol is forced to be local.  We need the
-             full address in the GOT since no R_SCORE_GOT_LO16 relocation follows.  */
-          forced = ! score_elf_local_relocation_p (input_bfd, rel,
-                                                   local_sections, FALSE);
-          value = score_elf_got16_entry (output_bfd, input_bfd, info,
-                                         symbol + addend, forced);
-          if (value == MINUS_ONE)
-            return bfd_reloc_outofrange;
-          value = score_elf_got_offset_from_index (elf_hash_table (info)->dynobj,
-                                                   output_bfd, input_bfd, value);
-        }
+	  /* The special case is when the symbol is forced to be local.  We need the
+	     full address in the GOT since no R_SCORE_GOT_LO16 relocation follows.  */
+	  forced = ! score_elf_local_relocation_p (input_bfd, rel,
+						   local_sections, FALSE);
+	  value = score_elf_got16_entry (output_bfd, input_bfd, info,
+					 symbol + addend, forced);
+	  if (value == MINUS_ONE)
+	    return bfd_reloc_outofrange;
+	  value = score_elf_got_offset_from_index (elf_hash_table (info)->dynobj,
+						   output_bfd, input_bfd, value);
+	}
       else
-        {
-          value = g;
-        }
+	{
+	  value = g;
+	}
 
       if ((long) value > 0x3fff || (long) value < -0x4000)
-        return bfd_reloc_overflow;
+	return bfd_reloc_overflow;
 
       addend = score_bfd_get_32 (input_bfd, hit_data);
       value = (addend & ~howto->dst_mask) | (value & howto->dst_mask);
@@ -2358,7 +2356,7 @@ score_elf_final_link_relocate (reloc_how
       value = (((addend >> 16) & 0x3) << 14) | ((addend & 0x7fff) >> 1);
       value += symbol;
       value = (addend & (~(howto->dst_mask))) | ((value & 0x3fff) << 1)
-               | (((value >> 14) & 0x3) << 16);
+	       | (((value >> 14) & 0x3) << 16);
 
       score_bfd_put_32 (input_bfd, value, hit_data);
       return bfd_reloc_ok;
@@ -2379,8 +2377,8 @@ score_elf_final_link_relocate (reloc_how
 /* Score backend functions.  */
 static void
 s3_bfd_score_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
-                            arelent *bfd_reloc,
-                            Elf_Internal_Rela *elf_reloc)
+			    arelent *bfd_reloc,
+			    Elf_Internal_Rela *elf_reloc)
 {
   unsigned int r_type;
 
@@ -2394,13 +2392,13 @@ s3_bfd_score_info_to_howto (bfd *abfd AT
 /* Relocate an score ELF section.  */
 static bfd_boolean
 s3_bfd_score_elf_relocate_section (bfd *output_bfd,
-                                   struct bfd_link_info *info,
-                                   bfd *input_bfd,
-                                   asection *input_section,
-                                   bfd_byte *contents,
-                                   Elf_Internal_Rela *relocs,
-                                   Elf_Internal_Sym *local_syms,
-                                   asection **local_sections)
+				   struct bfd_link_info *info,
+				   bfd *input_bfd,
+				   asection *input_section,
+				   bfd_byte *contents,
+				   Elf_Internal_Rela *relocs,
+				   Elf_Internal_Sym *local_syms,
+				   asection **local_sections)
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Rela *rel;
@@ -2416,19 +2414,19 @@ s3_bfd_score_elf_relocate_section (bfd *
     {
       bfd_size_type dynsecsymcount = 0;
       if (bfd_link_pic (info))
-        {
-          asection * p;
-          const struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
-
-          for (p = output_bfd->sections; p ; p = p->next)
-            if ((p->flags & SEC_EXCLUDE) == 0
-                && (p->flags & SEC_ALLOC) != 0
-                && !(*bed->elf_backend_omit_section_dynsym) (output_bfd, info, p))
-              ++ dynsecsymcount;
-        }
+	{
+	  asection * p;
+	  const struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
+
+	  for (p = output_bfd->sections; p ; p = p->next)
+	    if ((p->flags & SEC_EXCLUDE) == 0
+		&& (p->flags & SEC_ALLOC) != 0
+		&& !(*bed->elf_backend_omit_section_dynsym) (output_bfd, info, p))
+	      ++ dynsecsymcount;
+	}
 
       if (!score_elf_sort_hash_table (info, dynsecsymcount + 1))
-        return FALSE;
+	return FALSE;
     }
 
   symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr;
@@ -2458,304 +2456,304 @@ s3_bfd_score_elf_relocate_section (bfd *
       sec = NULL;
 
       if (r_symndx < extsymoff)
-        {
-          sym = local_syms + r_symndx;
-          sec = local_sections[r_symndx];
-          relocation = (sec->output_section->vma
-                        + sec->output_offset
-                        + sym->st_value);
-          name = bfd_elf_sym_name (input_bfd, symtab_hdr, sym, sec);
-
-          if (!bfd_link_relocatable (info)
-              && (sec->flags & SEC_MERGE)
-              && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
-            {
-              asection *msec;
-              bfd_vma addend, value;
-
-              switch (r_type)
-                {
-                case R_SCORE_HI16:
-                  break;
-                case R_SCORE_LO16:
-                  hi16_addend = score_bfd_get_32 (input_bfd, contents + rel->r_offset - 4);
-                  hi16_offset = ((((hi16_addend >> 16) & 0x3) << 15) | (hi16_addend & 0x7fff)) >> 1;
-                  value = score_bfd_get_32 (input_bfd, contents + rel->r_offset);
-                  offset = ((((value >> 16) & 0x3) << 15) | (value & 0x7fff)) >> 1;
-                  addend = (hi16_offset << 16) | (offset & 0xffff);
-                  msec = sec;
-                  addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend);
-                  addend -= relocation;
-                  addend += msec->output_section->vma + msec->output_offset;
-                  uvalue = addend;
-                  hi16_offset = (uvalue >> 16) << 1;
-                  hi16_value = (hi16_addend & (~(howto->dst_mask)))
-                    | (hi16_offset & 0x7fff) | ((hi16_offset << 1) & 0x30000);
-                  score_bfd_put_32 (input_bfd, hi16_value, contents + rel->r_offset - 4);
-                  offset = (uvalue & 0xffff) << 1;
-                  value = (value & (~(howto->dst_mask)))
-                    | (offset & 0x7fff) | ((offset << 1) & 0x30000);
-                  score_bfd_put_32 (input_bfd, value, contents + rel->r_offset);
-                  break;
-
-                case R_SCORE_IMM32:
-                  {
-                    value = score_bfd_get_48 (input_bfd, contents + rel->r_offset);
-                    addend = ((value >> 5) & 0x3ff)
-                              | (((value >> 16) & 0x7fff) << 10)
-                              | (((value >> 32) & 0x7f) << 25);
-                    msec = sec;
-                    addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend);
-                    addend -= relocation;
-                    addend += msec->output_section->vma + msec->output_offset;
-                    addend &= 0xffffffff;
-                    value = (value & ~howto->src_mask)
-                             | ((addend & 0x3ff) << 5)
-                             | (((addend >> 10) & 0x7fff) << 16)
-                             | (((addend >> 25) & 0x7f) << 32);
-                    score_bfd_put_48 (input_bfd, value, contents + rel->r_offset);
-                    break;
-                  }
-
-                case R_SCORE_IMM30:
-                  {
-                    int not_word_align_p = 0;
-                    value = score_bfd_get_48 (input_bfd, contents + rel->r_offset);
-                    addend = ((value >> 7) & 0xff)
-                              | (((value >> 16) & 0x7fff) << 8)
-                              | (((value >> 32) & 0x7f) << 23);
-                    addend <<= howto->rightshift;
-                    msec = sec;
-                    addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend);
-                    addend -= relocation;
-                    addend += msec->output_section->vma + msec->output_offset;
-                    addend &= 0xffffffff;
-
-                    /* Check lw48/sw48 rd, value/label word align.  */
-                    if ((addend & 0x3) != 0)
-                      not_word_align_p = 1;
-
-                    addend >>= howto->rightshift;
-                    value = (value & ~howto->src_mask)
-                             | (((addend & 0xff) >> 0) << 7)
-                             | (((addend & 0x7fff00) >> 8) << 16)
-                             | (((addend & 0x3f800000) >> 23) << 32);
-                    score_bfd_put_48 (input_bfd, value, contents + rel->r_offset);
-
-                    if (not_word_align_p)
-                      return bfd_reloc_other;
-                    else
-                      break;
-                  }
-
-                case R_SCORE_GOT_LO16:
-                  value = score_bfd_get_32 (input_bfd, contents + rel->r_offset);
-                  addend = (((value >> 16) & 0x3) << 14) | ((value & 0x7fff) >> 1);
-                  msec = sec;
-                  addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend) - relocation;
-                  addend += msec->output_section->vma + msec->output_offset;
-                  value = (value & (~(howto->dst_mask))) | ((addend & 0x3fff) << 1)
-                           | (((addend >> 14) & 0x3) << 16);
-
-                  score_bfd_put_32 (input_bfd, value, contents + rel->r_offset);
-                  break;
-
-                case R_SCORE_ABS32:
-                case R_SCORE_REL32:
-                  value = bfd_get_32 (input_bfd, contents + rel->r_offset);
-                  /* Get the (signed) value from the instruction.  */
-                  addend = value & howto->src_mask;
-                  if (addend & ((howto->src_mask + 1) >> 1))
-                    {
-                      bfd_signed_vma mask;
-
-                      mask = -1;
-                      mask &= ~howto->src_mask;
-                      addend |= mask;
-                    }
-                  msec = sec;
-                  addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend) - relocation;
-                  addend += msec->output_section->vma + msec->output_offset;
-                  value = (value & ~howto->dst_mask) | (addend & howto->dst_mask);
-                  bfd_put_32 (input_bfd, value, contents + rel->r_offset);
-                  break;
-
-                default:
-                  value = score_bfd_get_32 (input_bfd, contents + rel->r_offset);
-                  /* Get the (signed) value from the instruction.  */
-                  addend = value & howto->src_mask;
-                  if (addend & ((howto->src_mask + 1) >> 1))
-                    {
-                      bfd_signed_vma mask;
-
-                      mask = -1;
-                      mask &= ~howto->src_mask;
-                      addend |= mask;
-                    }
-                  msec = sec;
-                  addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend) - relocation;
-                  addend += msec->output_section->vma + msec->output_offset;
-                  value = (value & ~howto->dst_mask) | (addend & howto->dst_mask);
-                  score_bfd_put_32 (input_bfd, value, contents + rel->r_offset);
-                  break;
-                }
-            }
-        }
+	{
+	  sym = local_syms + r_symndx;
+	  sec = local_sections[r_symndx];
+	  relocation = (sec->output_section->vma
+			+ sec->output_offset
+			+ sym->st_value);
+	  name = bfd_elf_sym_name (input_bfd, symtab_hdr, sym, sec);
+
+	  if (!bfd_link_relocatable (info)
+	      && (sec->flags & SEC_MERGE)
+	      && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
+	    {
+	      asection *msec;
+	      bfd_vma addend, value;
+
+	      switch (r_type)
+		{
+		case R_SCORE_HI16:
+		  break;
+		case R_SCORE_LO16:
+		  hi16_addend = score_bfd_get_32 (input_bfd, contents + rel->r_offset - 4);
+		  hi16_offset = ((((hi16_addend >> 16) & 0x3) << 15) | (hi16_addend & 0x7fff)) >> 1;
+		  value = score_bfd_get_32 (input_bfd, contents + rel->r_offset);
+		  offset = ((((value >> 16) & 0x3) << 15) | (value & 0x7fff)) >> 1;
+		  addend = (hi16_offset << 16) | (offset & 0xffff);
+		  msec = sec;
+		  addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend);
+		  addend -= relocation;
+		  addend += msec->output_section->vma + msec->output_offset;
+		  uvalue = addend;
+		  hi16_offset = (uvalue >> 16) << 1;
+		  hi16_value = (hi16_addend & (~(howto->dst_mask)))
+		    | (hi16_offset & 0x7fff) | ((hi16_offset << 1) & 0x30000);
+		  score_bfd_put_32 (input_bfd, hi16_value, contents + rel->r_offset - 4);
+		  offset = (uvalue & 0xffff) << 1;
+		  value = (value & (~(howto->dst_mask)))
+		    | (offset & 0x7fff) | ((offset << 1) & 0x30000);
+		  score_bfd_put_32 (input_bfd, value, contents + rel->r_offset);
+		  break;
+
+		case R_SCORE_IMM32:
+		  {
+		    value = score_bfd_get_48 (input_bfd, contents + rel->r_offset);
+		    addend = ((value >> 5) & 0x3ff)
+			      | (((value >> 16) & 0x7fff) << 10)
+			      | (((value >> 32) & 0x7f) << 25);
+		    msec = sec;
+		    addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend);
+		    addend -= relocation;
+		    addend += msec->output_section->vma + msec->output_offset;
+		    addend &= 0xffffffff;
+		    value = (value & ~howto->src_mask)
+			     | ((addend & 0x3ff) << 5)
+			     | (((addend >> 10) & 0x7fff) << 16)
+			     | (((addend >> 25) & 0x7f) << 32);
+		    score_bfd_put_48 (input_bfd, value, contents + rel->r_offset);
+		    break;
+		  }
+
+		case R_SCORE_IMM30:
+		  {
+		    int not_word_align_p = 0;
+		    value = score_bfd_get_48 (input_bfd, contents + rel->r_offset);
+		    addend = ((value >> 7) & 0xff)
+			      | (((value >> 16) & 0x7fff) << 8)
+			      | (((value >> 32) & 0x7f) << 23);
+		    addend <<= howto->rightshift;
+		    msec = sec;
+		    addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend);
+		    addend -= relocation;
+		    addend += msec->output_section->vma + msec->output_offset;
+		    addend &= 0xffffffff;
+
+		    /* Check lw48/sw48 rd, value/label word align.  */
+		    if ((addend & 0x3) != 0)
+		      not_word_align_p = 1;
+
+		    addend >>= howto->rightshift;
+		    value = (value & ~howto->src_mask)
+			     | (((addend & 0xff) >> 0) << 7)
+			     | (((addend & 0x7fff00) >> 8) << 16)
+			     | (((addend & 0x3f800000) >> 23) << 32);
+		    score_bfd_put_48 (input_bfd, value, contents + rel->r_offset);
+
+		    if (not_word_align_p)
+		      return bfd_reloc_other;
+		    else
+		      break;
+		  }
+
+		case R_SCORE_GOT_LO16:
+		  value = score_bfd_get_32 (input_bfd, contents + rel->r_offset);
+		  addend = (((value >> 16) & 0x3) << 14) | ((value & 0x7fff) >> 1);
+		  msec = sec;
+		  addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend) - relocation;
+		  addend += msec->output_section->vma + msec->output_offset;
+		  value = (value & (~(howto->dst_mask))) | ((addend & 0x3fff) << 1)
+			   | (((addend >> 14) & 0x3) << 16);
+
+		  score_bfd_put_32 (input_bfd, value, contents + rel->r_offset);
+		  break;
+
+		case R_SCORE_ABS32:
+		case R_SCORE_REL32:
+		  value = bfd_get_32 (input_bfd, contents + rel->r_offset);
+		  /* Get the (signed) value from the instruction.  */
+		  addend = value & howto->src_mask;
+		  if (addend & ((howto->src_mask + 1) >> 1))
+		    {
+		      bfd_signed_vma mask;
+
+		      mask = -1;
+		      mask &= ~howto->src_mask;
+		      addend |= mask;
+		    }
+		  msec = sec;
+		  addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend) - relocation;
+		  addend += msec->output_section->vma + msec->output_offset;
+		  value = (value & ~howto->dst_mask) | (addend & howto->dst_mask);
+		  bfd_put_32 (input_bfd, value, contents + rel->r_offset);
+		  break;
+
+		default:
+		  value = score_bfd_get_32 (input_bfd, contents + rel->r_offset);
+		  /* Get the (signed) value from the instruction.  */
+		  addend = value & howto->src_mask;
+		  if (addend & ((howto->src_mask + 1) >> 1))
+		    {
+		      bfd_signed_vma mask;
+
+		      mask = -1;
+		      mask &= ~howto->src_mask;
+		      addend |= mask;
+		    }
+		  msec = sec;
+		  addend = _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend) - relocation;
+		  addend += msec->output_section->vma + msec->output_offset;
+		  value = (value & ~howto->dst_mask) | (addend & howto->dst_mask);
+		  score_bfd_put_32 (input_bfd, value, contents + rel->r_offset);
+		  break;
+		}
+	    }
+	}
       else
-        {
-          /* For global symbols we look up the symbol in the hash-table.  */
-          h = ((struct score_elf_link_hash_entry *)
-               elf_sym_hashes (input_bfd) [r_symndx - extsymoff]);
+	{
+	  /* For global symbols we look up the symbol in the hash-table.  */
+	  h = ((struct score_elf_link_hash_entry *)
+	       elf_sym_hashes (input_bfd) [r_symndx - extsymoff]);
 
 	  if (info->wrap_hash != NULL
 	      && (input_section->flags & SEC_DEBUGGING) != 0)
 	    h = ((struct score_elf_link_hash_entry *)
 		 unwrap_hash_lookup (info, input_bfd, &h->root.root));
 
-          /* Find the real hash-table entry for this symbol.  */
-          while (h->root.root.type == bfd_link_hash_indirect
-                 || h->root.root.type == bfd_link_hash_warning)
-            h = (struct score_elf_link_hash_entry *) h->root.root.u.i.link;
-
-          /* Record the name of this symbol, for our caller.  */
-          name = h->root.root.root.string;
-
-          /* See if this is the special GP_DISP_LABEL symbol.  Note that such a
-             symbol must always be a global symbol.  */
-          if (strcmp (name, GP_DISP_LABEL) == 0)
-            {
-              /* Relocations against GP_DISP_LABEL are permitted only with
-                 R_SCORE_HI16 and R_SCORE_LO16 relocations.  */
-              if (r_type != R_SCORE_HI16 && r_type != R_SCORE_LO16)
-                return bfd_reloc_notsupported;
-
-              gp_disp_p = TRUE;
-            }
-
-          /* If this symbol is defined, calculate its address.  Note that
-              GP_DISP_LABEL is a magic symbol, always implicitly defined by the
-              linker, so it's inappropriate to check to see whether or not
-              its defined.  */
-          else if ((h->root.root.type == bfd_link_hash_defined
-                    || h->root.root.type == bfd_link_hash_defweak)
-                   && h->root.root.u.def.section)
-            {
-              sec = h->root.root.u.def.section;
-              if (sec->output_section)
-                relocation = (h->root.root.u.def.value
-                              + sec->output_section->vma
-                              + sec->output_offset);
-              else
-                {
-                  relocation = h->root.root.u.def.value;
-                }
-            }
-          else if (h->root.root.type == bfd_link_hash_undefweak)
-            /* We allow relocations against undefined weak symbols, giving
-               it the value zero, so that you can undefined weak functions
-               and check to see if they exist by looking at their addresses.  */
-            relocation = 0;
-          else if (info->unresolved_syms_in_objects == RM_IGNORE
-                   && ELF_ST_VISIBILITY (h->root.other) == STV_DEFAULT)
-            relocation = 0;
-          else if (strcmp (name, "_DYNAMIC_LINK") == 0)
-            {
-              /* If this is a dynamic link, we should have created a _DYNAMIC_LINK symbol
-                 in s3_bfd_score_elf_create_dynamic_sections.  Otherwise, we should define
-                 the symbol with a value of 0.  */
-              BFD_ASSERT (! bfd_link_pic (info));
-              BFD_ASSERT (bfd_get_section_by_name (output_bfd, ".dynamic") == NULL);
-              relocation = 0;
-            }
-          else if (!bfd_link_relocatable (info))
-            {
+	  /* Find the real hash-table entry for this symbol.  */
+	  while (h->root.root.type == bfd_link_hash_indirect
+		 || h->root.root.type == bfd_link_hash_warning)
+	    h = (struct score_elf_link_hash_entry *) h->root.root.u.i.link;
+
+	  /* Record the name of this symbol, for our caller.  */
+	  name = h->root.root.root.string;
+
+	  /* See if this is the special GP_DISP_LABEL symbol.  Note that such a
+	     symbol must always be a global symbol.  */
+	  if (strcmp (name, GP_DISP_LABEL) == 0)
+	    {
+	      /* Relocations against GP_DISP_LABEL are permitted only with
+		 R_SCORE_HI16 and R_SCORE_LO16 relocations.  */
+	      if (r_type != R_SCORE_HI16 && r_type != R_SCORE_LO16)
+		return bfd_reloc_notsupported;
+
+	      gp_disp_p = TRUE;
+	    }
+
+	  /* If this symbol is defined, calculate its address.  Note that
+	      GP_DISP_LABEL is a magic symbol, always implicitly defined by the
+	      linker, so it's inappropriate to check to see whether or not
+	      its defined.  */
+	  else if ((h->root.root.type == bfd_link_hash_defined
+		    || h->root.root.type == bfd_link_hash_defweak)
+		   && h->root.root.u.def.section)
+	    {
+	      sec = h->root.root.u.def.section;
+	      if (sec->output_section)
+		relocation = (h->root.root.u.def.value
+			      + sec->output_section->vma
+			      + sec->output_offset);
+	      else
+		{
+		  relocation = h->root.root.u.def.value;
+		}
+	    }
+	  else if (h->root.root.type == bfd_link_hash_undefweak)
+	    /* We allow relocations against undefined weak symbols, giving
+	       it the value zero, so that you can undefined weak functions
+	       and check to see if they exist by looking at their addresses.  */
+	    relocation = 0;
+	  else if (info->unresolved_syms_in_objects == RM_IGNORE
+		   && ELF_ST_VISIBILITY (h->root.other) == STV_DEFAULT)
+	    relocation = 0;
+	  else if (strcmp (name, "_DYNAMIC_LINK") == 0)
+	    {
+	      /* If this is a dynamic link, we should have created a _DYNAMIC_LINK symbol
+		 in s3_bfd_score_elf_create_dynamic_sections.  Otherwise, we should define
+		 the symbol with a value of 0.  */
+	      BFD_ASSERT (! bfd_link_pic (info));
+	      BFD_ASSERT (bfd_get_section_by_name (output_bfd, ".dynamic") == NULL);
+	      relocation = 0;
+	    }
+	  else if (!bfd_link_relocatable (info))
+	    {
 	      (*info->callbacks->undefined_symbol)
 		(info, h->root.root.root.string, input_bfd,
 		 input_section, rel->r_offset,
 		 (info->unresolved_syms_in_objects == RM_GENERATE_ERROR)
 		 || ELF_ST_VISIBILITY (h->root.other));
-              relocation = 0;
-            }
-        }
+	      relocation = 0;
+	    }
+	}
 
       if (sec != NULL && discarded_section (sec))
 	RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
 					 rel, 1, relend, howto, 0, contents);
 
       if (bfd_link_relocatable (info))
-        {
-          /* This is a relocatable link.  We don't have to change
-             anything, unless the reloc is against a section symbol,
-             in which case we have to adjust according to where the
-             section symbol winds up in the output section.  */
-          if (r_symndx < symtab_hdr->sh_info)
-            {
-              sym = local_syms + r_symndx;
-              if (ELF_ST_TYPE (sym->st_info) == STT_SECTION)
-                {
-                  sec = local_sections[r_symndx];
-                  score_elf_add_to_rel (input_bfd, contents + rel->r_offset,
-                                    howto, (bfd_signed_vma) (sec->output_offset + sym->st_value));
-                }
-            }
-          continue;
-        }
+	{
+	  /* This is a relocatable link.  We don't have to change
+	     anything, unless the reloc is against a section symbol,
+	     in which case we have to adjust according to where the
+	     section symbol winds up in the output section.  */
+	  if (r_symndx < symtab_hdr->sh_info)
+	    {
+	      sym = local_syms + r_symndx;
+	      if (ELF_ST_TYPE (sym->st_info) == STT_SECTION)
+		{
+		  sec = local_sections[r_symndx];
+		  score_elf_add_to_rel (input_bfd, contents + rel->r_offset,
+				    howto, (bfd_signed_vma) (sec->output_offset + sym->st_value));
+		}
+	    }
+	  continue;
+	}
 
       /* This is a final link.  */
       r = score_elf_final_link_relocate (howto, input_bfd, output_bfd,
-                                         input_section, contents, rel, relocs,
-                                         relocation, info, name,
-                                         (h ? ELF_ST_TYPE ((unsigned int)h->root.root.type) :
-                                         ELF_ST_TYPE ((unsigned int)sym->st_info)), h, local_sections,
-                                         gp_disp_p);
+					 input_section, contents, rel, relocs,
+					 relocation, info, name,
+					 (h ? ELF_ST_TYPE ((unsigned int)h->root.root.type) :
+					 ELF_ST_TYPE ((unsigned int)sym->st_info)), h, local_sections,
+					 gp_disp_p);
 
       if (r != bfd_reloc_ok)
-        {
-          const char *msg = (const char *)0;
+	{
+	  const char *msg = (const char *)0;
 
-          switch (r)
-            {
-            case bfd_reloc_overflow:
-              /* If the overflowing reloc was to an undefined symbol,
-                 we have already printed one error message and there
-                 is no point complaining again.  */
+	  switch (r)
+	    {
+	    case bfd_reloc_overflow:
+	      /* If the overflowing reloc was to an undefined symbol,
+		 we have already printed one error message and there
+		 is no point complaining again.  */
 	      if (!h || h->root.root.type != bfd_link_hash_undefined)
 		(*info->callbacks->reloc_overflow)
 		  (info, NULL, name, howto->name, (bfd_vma) 0,
 		   input_bfd, input_section, rel->r_offset);
-              break;
-            case bfd_reloc_undefined:
+	      break;
+	    case bfd_reloc_undefined:
 	      (*info->callbacks->undefined_symbol)
 		(info, name, input_bfd, input_section, rel->r_offset, TRUE);
-              break;
+	      break;
 
-            case bfd_reloc_outofrange:
-              msg = _("internal error: out of range error");
-              goto common_error;
-
-            case bfd_reloc_notsupported:
-              msg = _("internal error: unsupported relocation error");
-              goto common_error;
-
-            case bfd_reloc_dangerous:
-              msg = _("internal error: dangerous error");
-              goto common_error;
-
-            /* Use bfd_reloc_other to check lw48, sw48 word align.  */
-            case bfd_reloc_other:
-              msg = _("address not word align");
-              goto common_error;
-
-            default:
-              msg = _("internal error: unknown error");
-              /* Fall through.  */
+	    case bfd_reloc_outofrange:
+	      msg = _("internal error: out of range error");
+	      goto common_error;
+
+	    case bfd_reloc_notsupported:
+	      msg = _("internal error: unsupported relocation error");
+	      goto common_error;
+
+	    case bfd_reloc_dangerous:
+	      msg = _("internal error: dangerous error");
+	      goto common_error;
+
+	    /* Use bfd_reloc_other to check lw48, sw48 word align.  */
+	    case bfd_reloc_other:
+	      msg = _("address not word align");
+	      goto common_error;
 
-            common_error:
+	    default:
+	      msg = _("internal error: unknown error");
+	      /* Fall through.  */
+
+	    common_error:
 	      (*info->callbacks->warning) (info, msg, name, input_bfd,
 					   input_section, rel->r_offset);
-              break;
-            }
-        }
+	      break;
+	    }
+	}
     }
 
   return TRUE;
@@ -2765,9 +2763,9 @@ s3_bfd_score_elf_relocate_section (bfd *
    allocate space in the global offset table.  */
 static bfd_boolean
 s3_bfd_score_elf_check_relocs (bfd *abfd,
-                               struct bfd_link_info *info,
-                               asection *sec,
-                               const Elf_Internal_Rela *relocs)
+			       struct bfd_link_info *info,
+			       asection *sec,
+			       const Elf_Internal_Rela *relocs)
 {
   bfd *dynobj;
   Elf_Internal_Shdr *symtab_hdr;
@@ -2778,7 +2776,6 @@ s3_bfd_score_elf_check_relocs (bfd *abfd
   const Elf_Internal_Rela *rel_end;
   asection *sgot;
   asection *sreloc;
-  const struct elf_backend_data *bed;
 
   if (bfd_link_relocatable (info))
     return TRUE;
@@ -2797,18 +2794,17 @@ s3_bfd_score_elf_check_relocs (bfd *abfd
     {
       sgot = score_elf_got_section (dynobj, FALSE);
       if (sgot == NULL)
-        g = NULL;
+	g = NULL;
       else
-        {
-          BFD_ASSERT (score_elf_section_data (sgot) != NULL);
-          g = score_elf_section_data (sgot)->u.got_info;
-          BFD_ASSERT (g != NULL);
-        }
+	{
+	  BFD_ASSERT (score_elf_section_data (sgot) != NULL);
+	  g = score_elf_section_data (sgot)->u.got_info;
+	  BFD_ASSERT (g != NULL);
+	}
     }
 
   sreloc = NULL;
-  bed = get_elf_backend_data (abfd);
-  rel_end = relocs + sec->reloc_count * bed->s->int_rels_per_ext_rel;
+  rel_end = relocs + sec->reloc_count;
   for (rel = relocs; rel < rel_end; ++rel)
     {
       unsigned long r_symndx;
@@ -2819,180 +2815,176 @@ s3_bfd_score_elf_check_relocs (bfd *abfd
       r_type = ELF32_R_TYPE (rel->r_info);
 
       if (r_symndx < extsymoff)
-        {
-          h = NULL;
-        }
+	{
+	  h = NULL;
+	}
       else if (r_symndx >= extsymoff + NUM_SHDR_ENTRIES (symtab_hdr))
-        {
+	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
 	    (_("%B: Malformed reloc detected for section %A"), abfd, sec);
-          bfd_set_error (bfd_error_bad_value);
-          return FALSE;
-        }
+	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
+	}
       else
-        {
-          h = sym_hashes[r_symndx - extsymoff];
+	{
+	  h = sym_hashes[r_symndx - extsymoff];
 
-          /* This may be an indirect symbol created because of a version.  */
-          if (h != NULL)
-            {
-              while (h->root.type == bfd_link_hash_indirect)
-                h = (struct elf_link_hash_entry *)h->root.u.i.link;
-
-	      /* PR15323, ref flags aren't set for references in the
-		 same object.  */
-	      h->root.non_ir_ref = 1;
-            }
-        }
+	  /* This may be an indirect symbol created because of a version.  */
+	  if (h != NULL)
+	    {
+	      while (h->root.type == bfd_link_hash_indirect)
+		h = (struct elf_link_hash_entry *)h->root.u.i.link;
+	    }
+	}
 
       /* Some relocs require a global offset table.  */
       if (dynobj == NULL || sgot == NULL)
-        {
-          switch (r_type)
-            {
-            case R_SCORE_GOT15:
-            case R_SCORE_CALL15:
-              if (dynobj == NULL)
-                elf_hash_table (info)->dynobj = dynobj = abfd;
-              if (!score_elf_create_got_section (dynobj, info, FALSE))
-                return FALSE;
-              g = score_elf_got_info (dynobj, &sgot);
-              break;
-            case R_SCORE_ABS32:
-            case R_SCORE_REL32:
-              if (dynobj == NULL
+	{
+	  switch (r_type)
+	    {
+	    case R_SCORE_GOT15:
+	    case R_SCORE_CALL15:
+	      if (dynobj == NULL)
+		elf_hash_table (info)->dynobj = dynobj = abfd;
+	      if (!score_elf_create_got_section (dynobj, info, FALSE))
+		return FALSE;
+	      g = score_elf_got_info (dynobj, &sgot);
+	      break;
+	    case R_SCORE_ABS32:
+	    case R_SCORE_REL32:
+	      if (dynobj == NULL
 		  && (bfd_link_pic (info) || h != NULL)
 		  && (sec->flags & SEC_ALLOC) != 0)
-                elf_hash_table (info)->dynobj = dynobj = abfd;
-              break;
-            default:
-              break;
-            }
-        }
+		elf_hash_table (info)->dynobj = dynobj = abfd;
+	      break;
+	    default:
+	      break;
+	    }
+	}
 
       if (!h && (r_type == R_SCORE_GOT_LO16))
-        {
-          if (! score_elf_record_local_got_symbol (abfd, r_symndx, rel->r_addend, g))
-            return FALSE;
-        }
+	{
+	  if (! score_elf_record_local_got_symbol (abfd, r_symndx, rel->r_addend, g))
+	    return FALSE;
+	}
 
       switch (r_type)
-        {
-        case R_SCORE_CALL15:
-          if (h == NULL)
-            {
+	{
+	case R_SCORE_CALL15:
+	  if (h == NULL)
+	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-                (_("%B: CALL15 reloc at 0x%lx not against global symbol"),
-                 abfd, (unsigned long) rel->r_offset);
-              bfd_set_error (bfd_error_bad_value);
-              return FALSE;
-            }
-          else
-            {
-              /* This symbol requires a global offset table entry.  */
-              if (! score_elf_record_global_got_symbol (h, abfd, info, g))
-                return FALSE;
-
-              /* We need a stub, not a plt entry for the undefined function.  But we record
-                 it as if it needs plt.  See _bfd_elf_adjust_dynamic_symbol.  */
-              h->needs_plt = 1;
-              h->type = STT_FUNC;
-            }
-          break;
-        case R_SCORE_GOT15:
-          if (h && ! score_elf_record_global_got_symbol (h, abfd, info, g))
-            return FALSE;
-          break;
-        case R_SCORE_ABS32:
-        case R_SCORE_REL32:
-          if ((bfd_link_pic (info) || h != NULL)
+		(_("%B: CALL15 reloc at %#Lx not against global symbol"),
+		 abfd, rel->r_offset);
+	      bfd_set_error (bfd_error_bad_value);
+	      return FALSE;
+	    }
+	  else
+	    {
+	      /* This symbol requires a global offset table entry.  */
+	      if (! score_elf_record_global_got_symbol (h, abfd, info, g))
+		return FALSE;
+
+	      /* We need a stub, not a plt entry for the undefined function.  But we record
+		 it as if it needs plt.  See _bfd_elf_adjust_dynamic_symbol.  */
+	      h->needs_plt = 1;
+	      h->type = STT_FUNC;
+	    }
+	  break;
+	case R_SCORE_GOT15:
+	  if (h && ! score_elf_record_global_got_symbol (h, abfd, info, g))
+	    return FALSE;
+	  break;
+	case R_SCORE_ABS32:
+	case R_SCORE_REL32:
+	  if ((bfd_link_pic (info) || h != NULL)
 	      && (sec->flags & SEC_ALLOC) != 0)
-            {
-              if (sreloc == NULL)
-                {
-                  sreloc = score_elf_rel_dyn_section (dynobj, TRUE);
-                  if (sreloc == NULL)
-                    return FALSE;
-                }
+	    {
+	      if (sreloc == NULL)
+		{
+		  sreloc = score_elf_rel_dyn_section (dynobj, TRUE);
+		  if (sreloc == NULL)
+		    return FALSE;
+		}
 #define SCORE_READONLY_SECTION (SEC_ALLOC | SEC_LOAD | SEC_READONLY)
-              if (bfd_link_pic (info))
-                {
-                  /* When creating a shared object, we must copy these reloc types into
-                     the output file as R_SCORE_REL32 relocs.  We make room for this reloc
-                     in the .rel.dyn reloc section.  */
-                  score_elf_allocate_dynamic_relocations (dynobj, 1);
-                  if ((sec->flags & SCORE_READONLY_SECTION)
-                      == SCORE_READONLY_SECTION)
-                    /* We tell the dynamic linker that there are
-                       relocations against the text segment.  */
-                    info->flags |= DF_TEXTREL;
-                }
-              else
-                {
-                  struct score_elf_link_hash_entry *hscore;
-
-                  /* We only need to copy this reloc if the symbol is
-                     defined in a dynamic object.  */
-                  hscore = (struct score_elf_link_hash_entry *)h;
-                  ++hscore->possibly_dynamic_relocs;
-                  if ((sec->flags & SCORE_READONLY_SECTION)
-                      == SCORE_READONLY_SECTION)
-                    /* We need it to tell the dynamic linker if there
-                       are relocations against the text segment.  */
-                    hscore->readonly_reloc = TRUE;
-                }
-
-              /* Even though we don't directly need a GOT entry for this symbol,
-                 a symbol must have a dynamic symbol table index greater that
-                 DT_SCORE_GOTSYM if there are dynamic relocations against it.  */
-              if (h != NULL)
-                {
-                  if (dynobj == NULL)
-                    elf_hash_table (info)->dynobj = dynobj = abfd;
-                  if (! score_elf_create_got_section (dynobj, info, TRUE))
-                    return FALSE;
-                  g = score_elf_got_info (dynobj, &sgot);
-                  if (! score_elf_record_global_got_symbol (h, abfd, info, g))
-                    return FALSE;
-                }
-            }
-          break;
-
-          /* This relocation describes the C++ object vtable hierarchy.
-             Reconstruct it for later use during GC.  */
-        case R_SCORE_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-          /* This relocation describes which C++ vtable entries are actually
-             used.  Record for later use during GC.  */
-        case R_SCORE_GNU_VTENTRY:
-          if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-        default:
-          break;
-        }
+	      if (bfd_link_pic (info))
+		{
+		  /* When creating a shared object, we must copy these reloc types into
+		     the output file as R_SCORE_REL32 relocs.  We make room for this reloc
+		     in the .rel.dyn reloc section.  */
+		  score_elf_allocate_dynamic_relocations (dynobj, 1);
+		  if ((sec->flags & SCORE_READONLY_SECTION)
+		      == SCORE_READONLY_SECTION)
+		    /* We tell the dynamic linker that there are
+		       relocations against the text segment.  */
+		    info->flags |= DF_TEXTREL;
+		}
+	      else
+		{
+		  struct score_elf_link_hash_entry *hscore;
+
+		  /* We only need to copy this reloc if the symbol is
+		     defined in a dynamic object.  */
+		  hscore = (struct score_elf_link_hash_entry *)h;
+		  ++hscore->possibly_dynamic_relocs;
+		  if ((sec->flags & SCORE_READONLY_SECTION)
+		      == SCORE_READONLY_SECTION)
+		    /* We need it to tell the dynamic linker if there
+		       are relocations against the text segment.  */
+		    hscore->readonly_reloc = TRUE;
+		}
+
+	      /* Even though we don't directly need a GOT entry for this symbol,
+		 a symbol must have a dynamic symbol table index greater that
+		 DT_SCORE_GOTSYM if there are dynamic relocations against it.  */
+	      if (h != NULL)
+		{
+		  if (dynobj == NULL)
+		    elf_hash_table (info)->dynobj = dynobj = abfd;
+		  if (! score_elf_create_got_section (dynobj, info, TRUE))
+		    return FALSE;
+		  g = score_elf_got_info (dynobj, &sgot);
+		  if (! score_elf_record_global_got_symbol (h, abfd, info, g))
+		    return FALSE;
+		}
+	    }
+	  break;
+
+	  /* This relocation describes the C++ object vtable hierarchy.
+	     Reconstruct it for later use during GC.  */
+	case R_SCORE_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	  /* This relocation describes which C++ vtable entries are actually
+	     used.  Record for later use during GC.  */
+	case R_SCORE_GNU_VTENTRY:
+	  if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+	default:
+	  break;
+	}
 
       /* We must not create a stub for a symbol that has relocations
-         related to taking the function's address.  */
+	 related to taking the function's address.  */
       switch (r_type)
-        {
-        default:
-          if (h != NULL)
-            {
-              struct score_elf_link_hash_entry *sh;
-
-              sh = (struct score_elf_link_hash_entry *) h;
-              sh->no_fn_stub = TRUE;
-            }
-          break;
-        case R_SCORE_CALL15:
-          break;
-        }
+	{
+	default:
+	  if (h != NULL)
+	    {
+	      struct score_elf_link_hash_entry *sh;
+
+	      sh = (struct score_elf_link_hash_entry *) h;
+	      sh->no_fn_stub = TRUE;
+	    }
+	  break;
+	case R_SCORE_CALL15:
+	  break;
+	}
     }
 
   return TRUE;
@@ -3000,18 +2992,18 @@ s3_bfd_score_elf_check_relocs (bfd *abfd
 
 static bfd_boolean
 s3_bfd_score_elf_add_symbol_hook (bfd *abfd,
-                                  struct bfd_link_info *info ATTRIBUTE_UNUSED,
-                                  Elf_Internal_Sym *sym,
-                                  const char **namep ATTRIBUTE_UNUSED,
-                                  flagword *flagsp ATTRIBUTE_UNUSED,
-                                  asection **secp,
-                                  bfd_vma *valp)
+				  struct bfd_link_info *info ATTRIBUTE_UNUSED,
+				  Elf_Internal_Sym *sym,
+				  const char **namep ATTRIBUTE_UNUSED,
+				  flagword *flagsp ATTRIBUTE_UNUSED,
+				  asection **secp,
+				  bfd_vma *valp)
 {
   switch (sym->st_shndx)
     {
     case SHN_COMMON:
       if (sym->st_size > elf_gp_size (abfd))
-        break;
+	break;
       /* Fall through.  */
     case SHN_SCORE_SCOMMON:
       *secp = bfd_make_section_old_way (abfd, ".scommon");
@@ -3033,22 +3025,22 @@ s3_bfd_score_elf_symbol_processing (bfd 
     {
     case SHN_COMMON:
       if (asym->value > elf_gp_size (abfd))
-        break;
+	break;
       /* Fall through.  */
     case SHN_SCORE_SCOMMON:
       if (score_elf_scom_section.name == NULL)
-        {
-          /* Initialize the small common section.  */
-          score_elf_scom_section.name = ".scommon";
-          score_elf_scom_section.flags = SEC_IS_COMMON;
-          score_elf_scom_section.output_section = &score_elf_scom_section;
-          score_elf_scom_section.symbol = &score_elf_scom_symbol;
-          score_elf_scom_section.symbol_ptr_ptr = &score_elf_scom_symbol_ptr;
-          score_elf_scom_symbol.name = ".scommon";
-          score_elf_scom_symbol.flags = BSF_SECTION_SYM;
-          score_elf_scom_symbol.section = &score_elf_scom_section;
-          score_elf_scom_symbol_ptr = &score_elf_scom_symbol;
-        }
+	{
+	  /* Initialize the small common section.  */
+	  score_elf_scom_section.name = ".scommon";
+	  score_elf_scom_section.flags = SEC_IS_COMMON;
+	  score_elf_scom_section.output_section = &score_elf_scom_section;
+	  score_elf_scom_section.symbol = &score_elf_scom_symbol;
+	  score_elf_scom_section.symbol_ptr_ptr = &score_elf_scom_symbol_ptr;
+	  score_elf_scom_symbol.name = ".scommon";
+	  score_elf_scom_symbol.flags = BSF_SECTION_SYM;
+	  score_elf_scom_symbol.section = &score_elf_scom_section;
+	  score_elf_scom_symbol_ptr = &score_elf_scom_symbol;
+	}
       asym->section = &score_elf_scom_section;
       asym->value = elfsym->internal_elf_sym.st_size;
       break;
@@ -3057,10 +3049,10 @@ s3_bfd_score_elf_symbol_processing (bfd 
 
 static int
 s3_bfd_score_elf_link_output_symbol_hook (struct bfd_link_info *info ATTRIBUTE_UNUSED,
-                                          const char *name ATTRIBUTE_UNUSED,
-                                          Elf_Internal_Sym *sym,
-                                          asection *input_sec,
-                                          struct elf_link_hash_entry *h ATTRIBUTE_UNUSED)
+					  const char *name ATTRIBUTE_UNUSED,
+					  Elf_Internal_Sym *sym,
+					  asection *input_sec,
+					  struct elf_link_hash_entry *h ATTRIBUTE_UNUSED)
 {
   /* If we see a common symbol, which implies a relocatable link, then
      if a symbol was small common in an input file, mark it as small
@@ -3073,8 +3065,8 @@ s3_bfd_score_elf_link_output_symbol_hook
 
 static bfd_boolean
 s3_bfd_score_elf_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
-                                           asection *sec,
-                                           int *retval)
+					   asection *sec,
+					   int *retval)
 {
   if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0)
     {
@@ -3091,7 +3083,7 @@ s3_bfd_score_elf_section_from_bfd_sectio
    change the definition to something the rest of the link can understand.  */
 static bfd_boolean
 s3_bfd_score_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
-                                        struct elf_link_hash_entry *h)
+					struct elf_link_hash_entry *h)
 {
   bfd *dynobj;
   struct score_elf_link_hash_entry *hscore;
@@ -3101,9 +3093,9 @@ s3_bfd_score_elf_adjust_dynamic_symbol (
 
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
-              && (h->needs_plt
-                  || h->u.weakdef != NULL
-                  || (h->def_dynamic && h->ref_regular && !h->def_regular)));
+	      && (h->needs_plt
+		  || h->is_weakalias
+		  || (h->def_dynamic && h->ref_regular && !h->def_regular)));
 
   /* If this symbol is defined in a dynamic object, we need to copy
      any R_SCORE_ABS32 or R_SCORE_REL32 relocs against it into the output
@@ -3115,45 +3107,45 @@ s3_bfd_score_elf_adjust_dynamic_symbol (
     {
       score_elf_allocate_dynamic_relocations (dynobj, hscore->possibly_dynamic_relocs);
       if (hscore->readonly_reloc)
-        /* We tell the dynamic linker that there are relocations
-           against the text segment.  */
-        info->flags |= DF_TEXTREL;
+	/* We tell the dynamic linker that there are relocations
+	   against the text segment.  */
+	info->flags |= DF_TEXTREL;
     }
 
   /* For a function, create a stub, if allowed.  */
   if (!hscore->no_fn_stub && h->needs_plt)
     {
       if (!elf_hash_table (info)->dynamic_sections_created)
-        return TRUE;
+	return TRUE;
 
       /* If this symbol is not defined in a regular file, then set
-         the symbol to the stub location.  This is required to make
-         function pointers compare as equal between the normal
-         executable and the shared library.  */
+	 the symbol to the stub location.  This is required to make
+	 function pointers compare as equal between the normal
+	 executable and the shared library.  */
       if (!h->def_regular)
-        {
-          /* We need .stub section.  */
-          s = bfd_get_linker_section (dynobj, SCORE_ELF_STUB_SECTION_NAME);
-          BFD_ASSERT (s != NULL);
-
-          h->root.u.def.section = s;
-          h->root.u.def.value = s->size;
-
-          /* XXX Write this stub address somewhere.  */
-          h->plt.offset = s->size;
-
-          /* Make room for this stub code.  */
-          s->size += SCORE_FUNCTION_STUB_SIZE;
-
-          /* The last half word of the stub will be filled with the index
-             of this symbol in .dynsym section.  */
-          return TRUE;
-        }
+	{
+	  /* We need .stub section.  */
+	  s = bfd_get_linker_section (dynobj, SCORE_ELF_STUB_SECTION_NAME);
+	  BFD_ASSERT (s != NULL);
+
+	  h->root.u.def.section = s;
+	  h->root.u.def.value = s->size;
+
+	  /* XXX Write this stub address somewhere.  */
+	  h->plt.offset = s->size;
+
+	  /* Make room for this stub code.  */
+	  s->size += SCORE_FUNCTION_STUB_SIZE;
+
+	  /* The last half word of the stub will be filled with the index
+	     of this symbol in .dynsym section.  */
+	  return TRUE;
+	}
     }
   else if ((h->type == STT_FUNC) && !h->needs_plt)
     {
       /* This will set the entry for this symbol in the GOT to 0, and
-         the dynamic linker will take care of this.  */
+	 the dynamic linker will take care of this.  */
       h->root.u.def.value = 0;
       return TRUE;
     }
@@ -3161,12 +3153,12 @@ s3_bfd_score_elf_adjust_dynamic_symbol (
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-                  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -3179,7 +3171,7 @@ s3_bfd_score_elf_adjust_dynamic_symbol (
    and the input sections have been assigned to output sections.  */
 static bfd_boolean
 s3_bfd_score_elf_always_size_sections (bfd *output_bfd,
-                                       struct bfd_link_info *info)
+				       struct bfd_link_info *info)
 {
   bfd *dynobj;
   asection *s;
@@ -3205,14 +3197,14 @@ s3_bfd_score_elf_always_size_sections (b
       asection *subsection;
 
       for (subsection = sub->sections;
-           subsection;
-           subsection = subsection->next)
-        {
-          if ((subsection->flags & SEC_ALLOC) == 0)
-            continue;
-          loadable_size += ((subsection->size + 0xf)
-                            &~ (bfd_size_type) 0xf);
-        }
+	   subsection;
+	   subsection = subsection->next)
+	{
+	  if ((subsection->flags & SEC_ALLOC) == 0)
+	    continue;
+	  loadable_size += ((subsection->size + 0xf)
+			    &~ (bfd_size_type) 0xf);
+	}
     }
 
   /* There has to be a global GOT entry for every symbol with
@@ -3267,13 +3259,13 @@ s3_bfd_score_elf_size_dynamic_sections (
   if (elf_hash_table (info)->dynamic_sections_created)
     {
       /* Set the contents of the .interp section to the interpreter.  */
-      if (!bfd_link_pic (info) && !info->nointerp)
-        {
-          s = bfd_get_linker_section (dynobj, ".interp");
-          BFD_ASSERT (s != NULL);
-          s->size = strlen (ELF_DYNAMIC_INTERPRETER) + 1;
-          s->contents = (bfd_byte *) ELF_DYNAMIC_INTERPRETER;
-        }
+      if (bfd_link_executable (info) && !info->nointerp)
+	{
+	  s = bfd_get_linker_section (dynobj, ".interp");
+	  BFD_ASSERT (s != NULL);
+	  s->size = strlen (ELF_DYNAMIC_INTERPRETER) + 1;
+	  s->contents = (bfd_byte *) ELF_DYNAMIC_INTERPRETER;
+	}
     }
 
   /* The check_relocs and adjust_dynamic_symbol entry points have
@@ -3285,131 +3277,131 @@ s3_bfd_score_elf_size_dynamic_sections (
       const char *name;
 
       if ((s->flags & SEC_LINKER_CREATED) == 0)
-        continue;
+	continue;
 
       /* It's OK to base decisions on the section name, because none
-         of the dynobj section names depend upon the input files.  */
+	 of the dynobj section names depend upon the input files.  */
       name = bfd_get_section_name (dynobj, s);
 
       if (CONST_STRNEQ (name, ".rel"))
-        {
-          if (s->size == 0)
-            {
-              /* We only strip the section if the output section name
-                 has the same name.  Otherwise, there might be several
-                 input sections for this output section.  FIXME: This
-                 code is probably not needed these days anyhow, since
-                 the linker now does not create empty output sections.  */
-              if (s->output_section != NULL
-                  && strcmp (name,
-                             bfd_get_section_name (s->output_section->owner,
-                                                   s->output_section)) == 0)
-                s->flags |= SEC_EXCLUDE;
-            }
-          else
-            {
-              const char *outname;
-              asection *target;
-
-              /* If this relocation section applies to a read only
-                 section, then we probably need a DT_TEXTREL entry.
-                 If the relocation section is .rel.dyn, we always
-                 assert a DT_TEXTREL entry rather than testing whether
-                 there exists a relocation to a read only section or
-                 not.  */
-              outname = bfd_get_section_name (output_bfd, s->output_section);
-              target = bfd_get_section_by_name (output_bfd, outname + 4);
-              if ((target != NULL
-                   && (target->flags & SEC_READONLY) != 0
-                   && (target->flags & SEC_ALLOC) != 0) || strcmp (outname, ".rel.dyn") == 0)
-                reltext = TRUE;
-
-              /* We use the reloc_count field as a counter if we need
-                 to copy relocs into the output file.  */
-              if (strcmp (name, ".rel.dyn") != 0)
-                s->reloc_count = 0;
-            }
-        }
+	{
+	  if (s->size == 0)
+	    {
+	      /* We only strip the section if the output section name
+		 has the same name.  Otherwise, there might be several
+		 input sections for this output section.  FIXME: This
+		 code is probably not needed these days anyhow, since
+		 the linker now does not create empty output sections.  */
+	      if (s->output_section != NULL
+		  && strcmp (name,
+			     bfd_get_section_name (s->output_section->owner,
+						   s->output_section)) == 0)
+		s->flags |= SEC_EXCLUDE;
+	    }
+	  else
+	    {
+	      const char *outname;
+	      asection *target;
+
+	      /* If this relocation section applies to a read only
+		 section, then we probably need a DT_TEXTREL entry.
+		 If the relocation section is .rel.dyn, we always
+		 assert a DT_TEXTREL entry rather than testing whether
+		 there exists a relocation to a read only section or
+		 not.  */
+	      outname = bfd_get_section_name (output_bfd, s->output_section);
+	      target = bfd_get_section_by_name (output_bfd, outname + 4);
+	      if ((target != NULL
+		   && (target->flags & SEC_READONLY) != 0
+		   && (target->flags & SEC_ALLOC) != 0) || strcmp (outname, ".rel.dyn") == 0)
+		reltext = TRUE;
+
+	      /* We use the reloc_count field as a counter if we need
+		 to copy relocs into the output file.  */
+	      if (strcmp (name, ".rel.dyn") != 0)
+		s->reloc_count = 0;
+	    }
+	}
       else if (CONST_STRNEQ (name, ".got"))
-        {
-          /* s3_bfd_score_elf_always_size_sections() has already done
-             most of the work, but some symbols may have been mapped
-             to versions that we must now resolve in the got_entries
-             hash tables.  */
-        }
+	{
+	  /* s3_bfd_score_elf_always_size_sections() has already done
+	     most of the work, but some symbols may have been mapped
+	     to versions that we must now resolve in the got_entries
+	     hash tables.  */
+	}
       else if (strcmp (name, SCORE_ELF_STUB_SECTION_NAME) == 0)
-        {
-          /* IRIX rld assumes that the function stub isn't at the end
-             of .text section. So put a dummy. XXX  */
-          s->size += SCORE_FUNCTION_STUB_SIZE;
-        }
+	{
+	  /* IRIX rld assumes that the function stub isn't at the end
+	     of .text section. So put a dummy. XXX  */
+	  s->size += SCORE_FUNCTION_STUB_SIZE;
+	}
       else if (! CONST_STRNEQ (name, ".init"))
-        {
-          /* It's not one of our sections, so don't allocate space.  */
-          continue;
-        }
+	{
+	  /* It's not one of our sections, so don't allocate space.  */
+	  continue;
+	}
 
       /* Allocate memory for the section contents.  */
       s->contents = bfd_zalloc (dynobj, s->size);
       if (s->contents == NULL && s->size != 0)
-        {
-          bfd_set_error (bfd_error_no_memory);
-          return FALSE;
-        }
+	{
+	  bfd_set_error (bfd_error_no_memory);
+	  return FALSE;
+	}
     }
 
   if (elf_hash_table (info)->dynamic_sections_created)
     {
       /* Add some entries to the .dynamic section.  We fill in the
-         values later, in s3_bfd_score_elf_finish_dynamic_sections, but we
-         must add the entries now so that we get the correct size for
-         the .dynamic section.  The DT_DEBUG entry is filled in by the
-         dynamic linker and used by the debugger.  */
+	 values later, in s3_bfd_score_elf_finish_dynamic_sections, but we
+	 must add the entries now so that we get the correct size for
+	 the .dynamic section.  The DT_DEBUG entry is filled in by the
+	 dynamic linker and used by the debugger.  */
 
       if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_DEBUG, 0))
-        return FALSE;
+	return FALSE;
 
       if (reltext)
-        info->flags |= DF_TEXTREL;
+	info->flags |= DF_TEXTREL;
 
       if ((info->flags & DF_TEXTREL) != 0)
-        {
-          if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_TEXTREL, 0))
-            return FALSE;
-        }
+	{
+	  if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_TEXTREL, 0))
+	    return FALSE;
+	}
 
       if (! SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_PLTGOT, 0))
-        return FALSE;
+	return FALSE;
 
       if (score_elf_rel_dyn_section (dynobj, FALSE))
-        {
-          if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_REL, 0))
-            return FALSE;
-
-          if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_RELSZ, 0))
-            return FALSE;
-
-          if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_RELENT, 0))
-            return FALSE;
-        }
+	{
+	  if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_REL, 0))
+	    return FALSE;
+
+	  if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_RELSZ, 0))
+	    return FALSE;
+
+	  if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_RELENT, 0))
+	    return FALSE;
+	}
 
       if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_SCORE_BASE_ADDRESS, 0))
-        return FALSE;
+	return FALSE;
 
       if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_SCORE_LOCAL_GOTNO, 0))
-        return FALSE;
+	return FALSE;
 
       if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_SCORE_SYMTABNO, 0))
-        return FALSE;
+	return FALSE;
 
       if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_SCORE_UNREFEXTNO, 0))
-        return FALSE;
+	return FALSE;
 
       if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_SCORE_GOTSYM, 0))
-        return FALSE;
+	return FALSE;
 
       if (!SCORE_ELF_ADD_DYNAMIC_ENTRY (info, DT_SCORE_HIPAGENO, 0))
-        return FALSE;
+	return FALSE;
     }
 
   return TRUE;
@@ -3424,14 +3416,14 @@ s3_bfd_score_elf_create_dynamic_sections
   asection *s;
 
   flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY
-           | SEC_LINKER_CREATED | SEC_READONLY);
+	   | SEC_LINKER_CREATED | SEC_READONLY);
 
   /* ABI requests the .dynamic section to be read only.  */
   s = bfd_get_linker_section (abfd, ".dynamic");
   if (s != NULL)
     {
       if (!bfd_set_section_flags (abfd, s, flags))
-        return FALSE;
+	return FALSE;
     }
 
   /* We need to create .got section.  */
@@ -3447,9 +3439,9 @@ s3_bfd_score_elf_create_dynamic_sections
       s = bfd_make_section_anyway_with_flags (abfd, SCORE_ELF_STUB_SECTION_NAME,
 					      flags | SEC_CODE);
       if (s == NULL
-          || !bfd_set_section_alignment (abfd, s, 2))
+	  || !bfd_set_section_alignment (abfd, s, 2))
 
-        return FALSE;
+	return FALSE;
     }
 
   if (!bfd_link_pic (info))
@@ -3459,9 +3451,9 @@ s3_bfd_score_elf_create_dynamic_sections
       name = "_DYNAMIC_LINK";
       bh = NULL;
       if (!(_bfd_generic_link_add_one_symbol
-            (info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr,
-             (bfd_vma) 0, NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
-        return FALSE;
+	    (info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr,
+	     (bfd_vma) 0, NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
+	return FALSE;
 
       h = (struct elf_link_hash_entry *)bh;
       h->non_elf = 0;
@@ -3469,7 +3461,7 @@ s3_bfd_score_elf_create_dynamic_sections
       h->type = STT_SECTION;
 
       if (!bfd_elf_link_record_dynamic_symbol (info, h))
-        return FALSE;
+	return FALSE;
     }
 
   return TRUE;
@@ -3480,9 +3472,9 @@ s3_bfd_score_elf_create_dynamic_sections
    dynamic sections here.  */
 static bfd_boolean
 s3_bfd_score_elf_finish_dynamic_symbol (bfd *output_bfd,
-                                        struct bfd_link_info *info,
-                                        struct elf_link_hash_entry *h,
-                                        Elf_Internal_Sym *sym)
+					struct bfd_link_info *info,
+					struct elf_link_hash_entry *h,
+					Elf_Internal_Sym *sym)
 {
   bfd *dynobj;
   asection *sgot;
@@ -3504,7 +3496,7 @@ s3_bfd_score_elf_finish_dynamic_symbol (
 
       /* FIXME: Can h->dynindex be more than 64K?  */
       if (h->dynindx & 0xffff0000)
-        return FALSE;
+	return FALSE;
 
       /* Fill the stub.  */
       score_bfd_put_32 (output_bfd, STUB_LW, stub);
@@ -3516,12 +3508,12 @@ s3_bfd_score_elf_finish_dynamic_symbol (
       memcpy (s->contents + h->plt.offset, stub, SCORE_FUNCTION_STUB_SIZE);
 
       /* Mark the symbol as undefined.  plt.offset != -1 occurs
-         only for the referenced symbol.  */
+	 only for the referenced symbol.  */
       sym->st_shndx = SHN_UNDEF;
 
       /* The run-time linker uses the st_value field of the symbol
-          to reset the global offset table entry for this external
-          to its stub address when unlinking a shared object.  */
+	  to reset the global offset table entry for this external
+	  to its stub address when unlinking a shared object.  */
       sym->st_value = (s->output_section->vma + s->output_offset + h->plt.offset);
     }
 
@@ -3569,7 +3561,7 @@ s3_bfd_score_elf_finish_dynamic_symbol (
 /* Finish up the dynamic sections.  */
 static bfd_boolean
 s3_bfd_score_elf_finish_dynamic_sections (bfd *output_bfd,
-                                          struct bfd_link_info *info)
+					  struct bfd_link_info *info)
 {
   bfd *dynobj;
   asection *sdyn;
@@ -3599,84 +3591,84 @@ s3_bfd_score_elf_finish_dynamic_sections
       BFD_ASSERT (g != NULL);
 
       for (b = sdyn->contents;
-           b < sdyn->contents + sdyn->size;
-           b += SCORE_ELF_DYN_SIZE (dynobj))
-        {
-          Elf_Internal_Dyn dyn;
-          const char *name;
-          size_t elemsize;
-          bfd_boolean swap_out_p;
-
-          /* Read in the current dynamic entry.  */
-          (*get_elf_backend_data (dynobj)->s->swap_dyn_in) (dynobj, b, &dyn);
-
-          /* Assume that we're going to modify it and write it out.  */
-          swap_out_p = TRUE;
-
-          switch (dyn.d_tag)
-            {
-            case DT_RELENT:
-              dyn.d_un.d_val = SCORE_ELF_REL_SIZE (dynobj);
-              break;
-
-            case DT_STRSZ:
-              /* Rewrite DT_STRSZ.  */
-              dyn.d_un.d_val
-                = _bfd_elf_strtab_size (elf_hash_table (info)->dynstr);
-              break;
-
-            case DT_PLTGOT:
-              s = elf_hash_table (info)->sgot;
-              dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
-              break;
-
-            case DT_SCORE_BASE_ADDRESS:
-              s = output_bfd->sections;
-              BFD_ASSERT (s != NULL);
-              dyn.d_un.d_ptr = s->vma & ~(bfd_vma) 0xffff;
-              break;
-
-            case DT_SCORE_LOCAL_GOTNO:
-              dyn.d_un.d_val = g->local_gotno;
-              break;
-
-            case DT_SCORE_UNREFEXTNO:
-              /* The index into the dynamic symbol table which is the
-                 entry of the first external symbol that is not
-                 referenced within the same object.  */
-              dyn.d_un.d_val = bfd_count_sections (output_bfd) + 1;
-              break;
-
-            case DT_SCORE_GOTSYM:
-              if (g->global_gotsym)
-                {
-                  dyn.d_un.d_val = g->global_gotsym->dynindx;
-                  break;
-                }
-              /* In case if we don't have global got symbols we default
-                  to setting DT_SCORE_GOTSYM to the same value as
-                  DT_SCORE_SYMTABNO.  */
+	   b < sdyn->contents + sdyn->size;
+	   b += SCORE_ELF_DYN_SIZE (dynobj))
+	{
+	  Elf_Internal_Dyn dyn;
+	  const char *name;
+	  size_t elemsize;
+	  bfd_boolean swap_out_p;
+
+	  /* Read in the current dynamic entry.  */
+	  (*get_elf_backend_data (dynobj)->s->swap_dyn_in) (dynobj, b, &dyn);
+
+	  /* Assume that we're going to modify it and write it out.  */
+	  swap_out_p = TRUE;
+
+	  switch (dyn.d_tag)
+	    {
+	    case DT_RELENT:
+	      dyn.d_un.d_val = SCORE_ELF_REL_SIZE (dynobj);
+	      break;
+
+	    case DT_STRSZ:
+	      /* Rewrite DT_STRSZ.  */
+	      dyn.d_un.d_val
+		= _bfd_elf_strtab_size (elf_hash_table (info)->dynstr);
+	      break;
+
+	    case DT_PLTGOT:
+	      s = elf_hash_table (info)->sgot;
+	      dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
+	      break;
+
+	    case DT_SCORE_BASE_ADDRESS:
+	      s = output_bfd->sections;
+	      BFD_ASSERT (s != NULL);
+	      dyn.d_un.d_ptr = s->vma & ~(bfd_vma) 0xffff;
+	      break;
+
+	    case DT_SCORE_LOCAL_GOTNO:
+	      dyn.d_un.d_val = g->local_gotno;
+	      break;
+
+	    case DT_SCORE_UNREFEXTNO:
+	      /* The index into the dynamic symbol table which is the
+		 entry of the first external symbol that is not
+		 referenced within the same object.  */
+	      dyn.d_un.d_val = bfd_count_sections (output_bfd) + 1;
+	      break;
+
+	    case DT_SCORE_GOTSYM:
+	      if (g->global_gotsym)
+		{
+		  dyn.d_un.d_val = g->global_gotsym->dynindx;
+		  break;
+		}
+	      /* In case if we don't have global got symbols we default
+		  to setting DT_SCORE_GOTSYM to the same value as
+		  DT_SCORE_SYMTABNO.  */
 	      /* Fall through.  */
 
-            case DT_SCORE_SYMTABNO:
-              name = ".dynsym";
-              elemsize = SCORE_ELF_SYM_SIZE (output_bfd);
-              s = bfd_get_linker_section (dynobj, name);
-              dyn.d_un.d_val = s->size / elemsize;
-              break;
-
-            case DT_SCORE_HIPAGENO:
-              dyn.d_un.d_val = g->local_gotno - SCORE_RESERVED_GOTNO;
-              break;
-
-            default:
-              swap_out_p = FALSE;
-              break;
-            }
-
-          if (swap_out_p)
-            (*get_elf_backend_data (dynobj)->s->swap_dyn_out) (dynobj, &dyn, b);
-        }
+	    case DT_SCORE_SYMTABNO:
+	      name = ".dynsym";
+	      elemsize = SCORE_ELF_SYM_SIZE (output_bfd);
+	      s = bfd_get_linker_section (dynobj, name);
+	      dyn.d_un.d_val = s->size / elemsize;
+	      break;
+
+	    case DT_SCORE_HIPAGENO:
+	      dyn.d_un.d_val = g->local_gotno - SCORE_RESERVED_GOTNO;
+	      break;
+
+	    default:
+	      swap_out_p = FALSE;
+	      break;
+	    }
+
+	  if (swap_out_p)
+	    (*get_elf_backend_data (dynobj)->s->swap_dyn_out) (dynobj, &dyn, b);
+	}
     }
 
   /* The first entry of the global offset table will be filled at
@@ -3700,7 +3692,7 @@ s3_bfd_score_elf_finish_dynamic_sections
     {
       reldyn_sorting_bfd = output_bfd;
       qsort ((Elf32_External_Rel *) s->contents + 1, s->reloc_count - 1,
-             sizeof (Elf32_External_Rel), score_elf_sort_dynamic_relocs);
+	     sizeof (Elf32_External_Rel), score_elf_sort_dynamic_relocs);
     }
 
   return TRUE;
@@ -3710,8 +3702,8 @@ s3_bfd_score_elf_finish_dynamic_sections
    it out.  This is where the flags and type fields are set for unusual sections.  */
 static bfd_boolean
 s3_bfd_score_elf_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
-                                Elf_Internal_Shdr *hdr,
-                                asection *sec)
+				Elf_Internal_Shdr *hdr,
+				asection *sec)
 {
   const char *name;
 
@@ -3741,20 +3733,20 @@ s3_bfd_score_elf_section_processing (bfd
       const char *name = bfd_get_section_name (abfd, hdr->bfd_section);
 
       if (strcmp (name, ".sdata") == 0)
-        {
-          hdr->sh_flags |= SHF_ALLOC | SHF_WRITE | SHF_SCORE_GPREL;
-          hdr->sh_type = SHT_PROGBITS;
-        }
+	{
+	  hdr->sh_flags |= SHF_ALLOC | SHF_WRITE | SHF_SCORE_GPREL;
+	  hdr->sh_type = SHT_PROGBITS;
+	}
       else if (strcmp (name, ".sbss") == 0)
-        {
-          hdr->sh_flags |= SHF_ALLOC | SHF_WRITE | SHF_SCORE_GPREL;
-          hdr->sh_type = SHT_NOBITS;
-        }
+	{
+	  hdr->sh_flags |= SHF_ALLOC | SHF_WRITE | SHF_SCORE_GPREL;
+	  hdr->sh_type = SHT_NOBITS;
+	}
       else if (strcmp (name, ".srdata") == 0)
-        {
-          hdr->sh_flags |= SHF_ALLOC | SHF_SCORE_GPREL;
-          hdr->sh_type = SHT_PROGBITS;
-        }
+	{
+	  hdr->sh_flags |= SHF_ALLOC | SHF_SCORE_GPREL;
+	  hdr->sh_type = SHT_PROGBITS;
+	}
     }
 
   return TRUE;
@@ -3777,15 +3769,15 @@ s3_bfd_score_elf_write_section (bfd *out
   for (from = contents, i = 0; from < end; from += PDR_SIZE, i++)
     {
       if ((score_elf_section_data (sec)->u.tdata)[i] == 1)
-        continue;
+	continue;
 
       if (to != from)
-        memcpy (to, from, PDR_SIZE);
+	memcpy (to, from, PDR_SIZE);
 
       to += PDR_SIZE;
     }
   bfd_set_section_contents (output_bfd, sec->output_section, contents,
-                            (file_ptr) sec->output_offset, sec->size);
+			    (file_ptr) sec->output_offset, sec->size);
 
   return TRUE;
 }
@@ -3794,8 +3786,8 @@ s3_bfd_score_elf_write_section (bfd *out
    indirect symbol.  Process additional relocation information.  */
 static void
 s3_bfd_score_elf_copy_indirect_symbol (struct bfd_link_info *info,
-                                       struct elf_link_hash_entry *dir,
-                                       struct elf_link_hash_entry *ind)
+				       struct elf_link_hash_entry *dir,
+				       struct elf_link_hash_entry *ind)
 {
   struct score_elf_link_hash_entry *dirscore, *indscore;
 
@@ -3818,7 +3810,7 @@ s3_bfd_score_elf_copy_indirect_symbol (s
 /* Remove information about discarded functions from other sections which mention them.  */
 static bfd_boolean
 s3_bfd_score_elf_discard_info (bfd *abfd, struct elf_reloc_cookie *cookie,
-                               struct bfd_link_info *info)
+			       struct bfd_link_info *info)
 {
   asection *o;
   bfd_boolean ret = FALSE;
@@ -3847,10 +3839,10 @@ s3_bfd_score_elf_discard_info (bfd *abfd
   for (i = 0, skip = 0; i < o->size; i++)
     {
       if (bfd_elf_reloc_symbol_deleted_p (i * PDR_SIZE, cookie))
-        {
-          tdata[i] = 1;
-          skip++;
-        }
+	{
+	  tdata[i] = 1;
+	  skip++;
+	}
     }
 
   if (skip != 0)
@@ -3881,17 +3873,17 @@ s3_bfd_score_elf_ignore_discarded_relocs
    relocation.  */
 static asection *
 s3_bfd_score_elf_gc_mark_hook (asection *sec,
-                               struct bfd_link_info *info,
-                               Elf_Internal_Rela *rel,
-                               struct elf_link_hash_entry *h,
-                               Elf_Internal_Sym *sym)
+			       struct bfd_link_info *info,
+			       Elf_Internal_Rela *rel,
+			       struct elf_link_hash_entry *h,
+			       Elf_Internal_Sym *sym)
 {
   if (h != NULL)
     switch (ELF32_R_TYPE (rel->r_info))
       {
       case R_SCORE_GNU_VTINHERIT:
       case R_SCORE_GNU_VTENTRY:
-        return NULL;
+	return NULL;
       }
 
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
@@ -3910,7 +3902,7 @@ s3_bfd_score_elf_grok_prstatus (bfd *abf
     default:
       return FALSE;
 
-    case 148:                  /* Linux/Score 32-bit.  */
+    case 148:		       /* Linux/Score 32-bit.  */
       /* pr_cursig */
       elf_tdata (abfd)->core->signal
 	= score_bfd_get_16 (abfd, note->descdata + 12);
@@ -3939,7 +3931,7 @@ s3_bfd_score_elf_grok_psinfo (bfd *abfd,
     default:
       return FALSE;
 
-    case 124:                  /* Linux/Score elf_prpsinfo.  */
+    case 124:		       /* Linux/Score elf_prpsinfo.  */
       elf_tdata (abfd)->core->program
 	= _bfd_elfcore_strndup (abfd, note->descdata + 28, 16);
       elf_tdata (abfd)->core->command
@@ -3977,16 +3969,16 @@ s3_elf32_score_reloc_type_lookup (bfd *a
 
 static reloc_howto_type *
 elf32_score_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                               const char *r_name)
+			       const char *r_name)
 {
   unsigned int i;
 
   for (i = 0;
        i < (sizeof (elf32_score_howto_table)
-            / sizeof (elf32_score_howto_table[0]));
+	    / sizeof (elf32_score_howto_table[0]));
        i++)
     if (elf32_score_howto_table[i].name != NULL
-        && strcasecmp (elf32_score_howto_table[i].name, r_name) == 0)
+	&& strcasecmp (elf32_score_howto_table[i].name, r_name) == 0)
       return &elf32_score_howto_table[i];
 
   return NULL;
@@ -4043,10 +4035,10 @@ s3_elf32_score_merge_private_bfd_data (b
       elf_elfheader (obfd)->e_flags = in_flags;
 
       if (bfd_get_arch (obfd) == bfd_get_arch (ibfd)
-          && bfd_get_arch_info (obfd)->the_default)
-        {
-          return bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd));
-        }
+	  && bfd_get_arch_info (obfd)->the_default)
+	{
+	  return bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd));
+	}
 
       return TRUE;
     }
@@ -4079,8 +4071,8 @@ s3_elf32_score_new_section_hook (bfd *ab
 /* s3_s7: backend hooks.  */
 static void
 _bfd_score_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
-                          arelent *bfd_reloc,
-                          Elf_Internal_Rela *elf_reloc)
+			  arelent *bfd_reloc,
+			  Elf_Internal_Rela *elf_reloc)
 {
   if (bfd_get_mach (abfd) == bfd_mach_score3)
     return s3_bfd_score_info_to_howto (abfd, bfd_reloc, elf_reloc);
@@ -4090,29 +4082,29 @@ _bfd_score_info_to_howto (bfd *abfd ATTR
 
 static bfd_boolean
 _bfd_score_elf_relocate_section (bfd *output_bfd,
-                                 struct bfd_link_info *info,
-                                 bfd *input_bfd,
-                                 asection *input_section,
-                                 bfd_byte *contents,
-                                 Elf_Internal_Rela *relocs,
-                                 Elf_Internal_Sym *local_syms,
-                                 asection **local_sections)
+				 struct bfd_link_info *info,
+				 bfd *input_bfd,
+				 asection *input_section,
+				 bfd_byte *contents,
+				 Elf_Internal_Rela *relocs,
+				 Elf_Internal_Sym *local_syms,
+				 asection **local_sections)
 {
   if (bfd_get_mach (output_bfd) == bfd_mach_score3)
     return s3_bfd_score_elf_relocate_section (output_bfd,
-             info, input_bfd, input_section, contents, relocs,
-             local_syms, local_sections);
+	     info, input_bfd, input_section, contents, relocs,
+	     local_syms, local_sections);
   else
     return s7_bfd_score_elf_relocate_section (output_bfd,
-             info, input_bfd, input_section, contents, relocs,
-             local_syms, local_sections);
+	     info, input_bfd, input_section, contents, relocs,
+	     local_syms, local_sections);
 }
 
 static bfd_boolean
 _bfd_score_elf_check_relocs (bfd *abfd,
-                             struct bfd_link_info *info,
-                             asection *sec,
-                             const Elf_Internal_Rela *relocs)
+			     struct bfd_link_info *info,
+			     asection *sec,
+			     const Elf_Internal_Rela *relocs)
 {
   if (bfd_get_mach (abfd) == bfd_mach_score3)
     return s3_bfd_score_elf_check_relocs (abfd, info, sec, relocs);
@@ -4122,19 +4114,19 @@ _bfd_score_elf_check_relocs (bfd *abfd,
 
 static bfd_boolean
 _bfd_score_elf_add_symbol_hook (bfd *abfd,
-                                struct bfd_link_info *info ATTRIBUTE_UNUSED,
-                                Elf_Internal_Sym *sym,
-                                const char **namep ATTRIBUTE_UNUSED,
-                                flagword *flagsp ATTRIBUTE_UNUSED,
-                                asection **secp,
-                                bfd_vma *valp)
+				struct bfd_link_info *info ATTRIBUTE_UNUSED,
+				Elf_Internal_Sym *sym,
+				const char **namep ATTRIBUTE_UNUSED,
+				flagword *flagsp ATTRIBUTE_UNUSED,
+				asection **secp,
+				bfd_vma *valp)
 {
   if (bfd_get_mach (abfd) == bfd_mach_score3)
     return s3_bfd_score_elf_add_symbol_hook (abfd, info, sym, namep, flagsp,
-                                             secp, valp);
+					     secp, valp);
   else
     return s7_bfd_score_elf_add_symbol_hook (abfd, info, sym, namep, flagsp,
-                                             secp, valp);
+					     secp, valp);
 }
 
 static void
@@ -4157,10 +4149,10 @@ _bfd_score_elf_link_output_symbol_hook (
   if (info->input_bfds == NULL)
     {
       /* If we see a common symbol, which implies a relocatable link, then
-         if a symbol was small common in an input file, mark it as small
-         common in the output file.  */
+	 if a symbol was small common in an input file, mark it as small
+	 common in the output file.  */
       if (sym->st_shndx == SHN_COMMON && strcmp (input_sec->name, ".scommon") == 0)
-        sym->st_shndx = SHN_SCORE_SCOMMON;
+	sym->st_shndx = SHN_SCORE_SCOMMON;
       return 1;
     }
 
@@ -4172,8 +4164,8 @@ _bfd_score_elf_link_output_symbol_hook (
 
 static bfd_boolean
 _bfd_score_elf_section_from_bfd_section (bfd *abfd ATTRIBUTE_UNUSED,
-                                         asection *sec,
-                                         int *retval)
+					 asection *sec,
+					 int *retval)
 {
   if (bfd_get_mach (abfd) == bfd_mach_score3)
     return s3_bfd_score_elf_section_from_bfd_section (abfd, sec, retval);
@@ -4183,7 +4175,7 @@ _bfd_score_elf_section_from_bfd_section 
 
 static bfd_boolean
 _bfd_score_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
-                                      struct elf_link_hash_entry *h)
+				      struct elf_link_hash_entry *h)
 {
   if (bfd_get_mach (info->input_bfds) == bfd_mach_score3)
     return s3_bfd_score_elf_adjust_dynamic_symbol (info, h);
@@ -4193,7 +4185,7 @@ _bfd_score_elf_adjust_dynamic_symbol (st
 
 static bfd_boolean
 _bfd_score_elf_always_size_sections (bfd *output_bfd,
-                                     struct bfd_link_info *info)
+				     struct bfd_link_info *info)
 {
   if (bfd_get_mach (output_bfd) == bfd_mach_score3)
     return s3_bfd_score_elf_always_size_sections (output_bfd, info);
@@ -4221,9 +4213,9 @@ _bfd_score_elf_create_dynamic_sections (
 
 static bfd_boolean
 _bfd_score_elf_finish_dynamic_symbol (bfd *output_bfd,
-                                      struct bfd_link_info *info,
-                                      struct elf_link_hash_entry *h,
-                                      Elf_Internal_Sym *sym)
+				      struct bfd_link_info *info,
+				      struct elf_link_hash_entry *h,
+				      Elf_Internal_Sym *sym)
 {
   if (bfd_get_mach (output_bfd) == bfd_mach_score3)
     return s3_bfd_score_elf_finish_dynamic_symbol (output_bfd, info, h, sym);
@@ -4233,7 +4225,7 @@ _bfd_score_elf_finish_dynamic_symbol (bf
 
 static bfd_boolean
 _bfd_score_elf_finish_dynamic_sections (bfd *output_bfd,
-                                        struct bfd_link_info *info)
+					struct bfd_link_info *info)
 {
   if (bfd_get_mach (output_bfd) == bfd_mach_score3)
     return s3_bfd_score_elf_finish_dynamic_sections (output_bfd, info);
@@ -4243,8 +4235,8 @@ _bfd_score_elf_finish_dynamic_sections (
 
 static bfd_boolean
 _bfd_score_elf_fake_sections (bfd *abfd ATTRIBUTE_UNUSED,
-                              Elf_Internal_Shdr *hdr,
-                              asection *sec)
+			      Elf_Internal_Shdr *hdr,
+			      asection *sec)
 {
   if (bfd_get_mach (abfd) == bfd_mach_score3)
     return s3_bfd_score_elf_fake_sections (abfd, hdr, sec);
@@ -4263,8 +4255,8 @@ _bfd_score_elf_section_processing (bfd *
 
 static bfd_boolean
 _bfd_score_elf_write_section (bfd *output_bfd,
-                              struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
-                              asection *sec, bfd_byte *contents)
+			      struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
+			      asection *sec, bfd_byte *contents)
 {
   if (bfd_get_mach (output_bfd) == bfd_mach_score3)
     return s3_bfd_score_elf_write_section (output_bfd, sec, contents);
@@ -4274,8 +4266,8 @@ _bfd_score_elf_write_section (bfd *outpu
 
 static void
 _bfd_score_elf_copy_indirect_symbol (struct bfd_link_info *info,
-                                     struct elf_link_hash_entry *dir,
-                                     struct elf_link_hash_entry *ind)
+				     struct elf_link_hash_entry *dir,
+				     struct elf_link_hash_entry *ind)
 {
   if (bfd_get_mach (info->input_bfds) == bfd_mach_score3)
     return s3_bfd_score_elf_copy_indirect_symbol (info, dir, ind);
@@ -4285,8 +4277,8 @@ _bfd_score_elf_copy_indirect_symbol (str
 
 static void
 _bfd_score_elf_hide_symbol (struct bfd_link_info *info,
-                            struct elf_link_hash_entry *entry,
-                            bfd_boolean force_local)
+			    struct elf_link_hash_entry *entry,
+			    bfd_boolean force_local)
 {
   if (bfd_get_mach (info->input_bfds) == bfd_mach_score3)
     return s3_bfd_score_elf_hide_symbol (info, entry, force_local);
@@ -4296,7 +4288,7 @@ _bfd_score_elf_hide_symbol (struct bfd_l
 
 static bfd_boolean
 _bfd_score_elf_discard_info (bfd *abfd, struct elf_reloc_cookie *cookie,
-                         struct bfd_link_info *info)
+			 struct bfd_link_info *info)
 {
   if (bfd_get_mach (abfd) == bfd_mach_score3)
     return s3_bfd_score_elf_discard_info (abfd, cookie, info);
@@ -4315,10 +4307,10 @@ _bfd_score_elf_ignore_discarded_relocs (
 
 static asection *
 _bfd_score_elf_gc_mark_hook (asection *sec,
-                             struct bfd_link_info *info,
-                             Elf_Internal_Rela *rel,
-                             struct elf_link_hash_entry *h,
-                             Elf_Internal_Sym *sym)
+			     struct bfd_link_info *info,
+			     Elf_Internal_Rela *rel,
+			     struct elf_link_hash_entry *h,
+			     Elf_Internal_Sym *sym)
 {
   if (bfd_get_mach (info->input_bfds) == bfd_mach_score3)
     return s3_bfd_score_elf_gc_mark_hook (sec, info, rel, h, sym);
@@ -4373,7 +4365,7 @@ elf32_score_link_hash_table_create (bfd 
     return NULL;
 
   if (!_bfd_elf_link_hash_table_init (ret, abfd, score_elf_link_hash_newfunc,
-                                      sizeof (struct score_elf_link_hash_entry),
+				      sizeof (struct score_elf_link_hash_entry),
 				      GENERIC_ELF_DATA))
     {
       free (ret);
@@ -4423,17 +4415,17 @@ _bfd_score_elf_score_object_p (bfd * abf
     {
       int e_mach = elf_elfheader (abfd)->e_flags & EF_SCORE_MACH & EF_OMIT_PIC_FIXDD;
       switch (e_mach)
-        {
-        /* Set default target is score7.  */
-        default:
-        case E_SCORE_MACH_SCORE7:
-          e_set = bfd_mach_score7;
-          break;
-
-        case E_SCORE_MACH_SCORE3:
-          e_set = bfd_mach_score3;
-          break;
-        }
+	{
+	/* Set default target is score7.  */
+	default:
+	case E_SCORE_MACH_SCORE7:
+	  e_set = bfd_mach_score7;
+	  break;
+
+	case E_SCORE_MACH_SCORE3:
+	  e_set = bfd_mach_score3;
+	  break;
+	}
     }
 
   return bfd_default_set_arch_mach (abfd, bfd_arch_score, e_set);
@@ -4448,22 +4440,22 @@ _bfd_score_elf_common_definition (Elf_In
 /*****************************************************************************/
 
 
-#define USE_REL                         1
-#define TARGET_LITTLE_SYM               score_elf32_le_vec
-#define TARGET_LITTLE_NAME              "elf32-littlescore"
-#define TARGET_BIG_SYM                  score_elf32_be_vec
-#define TARGET_BIG_NAME                 "elf32-bigscore"
-#define ELF_ARCH                        bfd_arch_score
-#define ELF_MACHINE_CODE                EM_SCORE
-#define ELF_MACHINE_ALT1                EM_SCORE_OLD
-#define ELF_MAXPAGESIZE                 0x8000
-
-#define elf_info_to_howto               0
-#define elf_info_to_howto_rel           _bfd_score_info_to_howto
-#define elf_backend_relocate_section    _bfd_score_elf_relocate_section
-#define elf_backend_check_relocs        _bfd_score_elf_check_relocs
-#define elf_backend_add_symbol_hook     _bfd_score_elf_add_symbol_hook
-#define elf_backend_symbol_processing   _bfd_score_elf_symbol_processing
+#define USE_REL				1
+#define TARGET_LITTLE_SYM		score_elf32_le_vec
+#define TARGET_LITTLE_NAME		"elf32-littlescore"
+#define TARGET_BIG_SYM			score_elf32_be_vec
+#define TARGET_BIG_NAME			"elf32-bigscore"
+#define ELF_ARCH			bfd_arch_score
+#define ELF_MACHINE_CODE		EM_SCORE
+#define ELF_MACHINE_ALT1		EM_SCORE_OLD
+#define ELF_MAXPAGESIZE			0x8000
+
+#define elf_info_to_howto		0
+#define elf_info_to_howto_rel		_bfd_score_info_to_howto
+#define elf_backend_relocate_section	_bfd_score_elf_relocate_section
+#define elf_backend_check_relocs	_bfd_score_elf_check_relocs
+#define elf_backend_add_symbol_hook	_bfd_score_elf_add_symbol_hook
+#define elf_backend_symbol_processing	_bfd_score_elf_symbol_processing
 #define elf_backend_link_output_symbol_hook \
   _bfd_score_elf_link_output_symbol_hook
 #define elf_backend_section_from_bfd_section \
@@ -4482,31 +4474,31 @@ _bfd_score_elf_common_definition (Elf_In
   _bfd_score_elf_finish_dynamic_symbol
 #define elf_backend_finish_dynamic_sections \
   _bfd_score_elf_finish_dynamic_sections
-#define elf_backend_fake_sections         _bfd_score_elf_fake_sections
-#define elf_backend_section_processing    _bfd_score_elf_section_processing
-#define elf_backend_write_section         _bfd_score_elf_write_section
+#define elf_backend_fake_sections	  _bfd_score_elf_fake_sections
+#define elf_backend_section_processing	  _bfd_score_elf_section_processing
+#define elf_backend_write_section	  _bfd_score_elf_write_section
 #define elf_backend_copy_indirect_symbol  _bfd_score_elf_copy_indirect_symbol
-#define elf_backend_hide_symbol           _bfd_score_elf_hide_symbol
-#define elf_backend_discard_info          _bfd_score_elf_discard_info
+#define elf_backend_hide_symbol		  _bfd_score_elf_hide_symbol
+#define elf_backend_discard_info	  _bfd_score_elf_discard_info
 #define elf_backend_ignore_discarded_relocs \
   _bfd_score_elf_ignore_discarded_relocs
-#define elf_backend_gc_mark_hook          _bfd_score_elf_gc_mark_hook
-#define elf_backend_grok_prstatus         _bfd_score_elf_grok_prstatus
-#define elf_backend_grok_psinfo           _bfd_score_elf_grok_psinfo
-#define elf_backend_can_gc_sections       1
-#define elf_backend_want_plt_sym          0
-#define elf_backend_got_header_size       (4 * SCORE_RESERVED_GOTNO)
-#define elf_backend_plt_header_size       0
-#define elf_backend_collect               TRUE
-#define elf_backend_type_change_ok        TRUE
-#define elf_backend_object_p                  _bfd_score_elf_score_object_p
+#define elf_backend_gc_mark_hook	  _bfd_score_elf_gc_mark_hook
+#define elf_backend_grok_prstatus	  _bfd_score_elf_grok_prstatus
+#define elf_backend_grok_psinfo		  _bfd_score_elf_grok_psinfo
+#define elf_backend_can_gc_sections	  1
+#define elf_backend_want_plt_sym	  0
+#define elf_backend_got_header_size	  (4 * SCORE_RESERVED_GOTNO)
+#define elf_backend_plt_header_size	  0
+#define elf_backend_collect		  TRUE
+#define elf_backend_type_change_ok	  TRUE
+#define elf_backend_object_p		      _bfd_score_elf_score_object_p
 
-#define bfd_elf32_bfd_reloc_type_lookup      elf32_score_reloc_type_lookup
+#define bfd_elf32_bfd_reloc_type_lookup	     elf32_score_reloc_type_lookup
 #define bfd_elf32_bfd_reloc_name_lookup \
   elf32_score_reloc_name_lookup
 #define bfd_elf32_bfd_link_hash_table_create elf32_score_link_hash_table_create
 #define bfd_elf32_bfd_print_private_bfd_data elf32_score_print_private_bfd_data
 #define bfd_elf32_bfd_merge_private_bfd_data elf32_score_merge_private_bfd_data
-#define bfd_elf32_new_section_hook           elf32_score_new_section_hook
+#define bfd_elf32_new_section_hook	     elf32_score_new_section_hook
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-score.h ./bfd/elf32-score.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-score.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-score.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* 32-bit ELF support for S+core.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by
    Brain.lin (brain.lin@sunplusct.com)
    Mei Ligang (ligang@sunnorth.com.cn)
@@ -27,55 +27,55 @@
 
 extern void
 s7_bfd_score_elf_hide_symbol (struct bfd_link_info *,
-                              struct elf_link_hash_entry *,
-                              bfd_boolean);
+			      struct elf_link_hash_entry *,
+			      bfd_boolean);
 
 extern void
 s7_bfd_score_info_to_howto (bfd *, arelent *, Elf_Internal_Rela *);
 
 extern bfd_boolean
 s7_bfd_score_elf_relocate_section (bfd *,
-                                   struct bfd_link_info *,
-                                   bfd *,
-                                   asection *,
-                                   bfd_byte *,
-                                   Elf_Internal_Rela *,
-                                   Elf_Internal_Sym *,
-                                   asection **);
+				   struct bfd_link_info *,
+				   bfd *,
+				   asection *,
+				   bfd_byte *,
+				   Elf_Internal_Rela *,
+				   Elf_Internal_Sym *,
+				   asection **);
 
 extern bfd_boolean
 s7_bfd_score_elf_check_relocs (bfd *,
-                               struct bfd_link_info *,
-                               asection *,
-                               const Elf_Internal_Rela *);
+			       struct bfd_link_info *,
+			       asection *,
+			       const Elf_Internal_Rela *);
 
 extern bfd_boolean
 s7_bfd_score_elf_add_symbol_hook (bfd *,
-                                  struct bfd_link_info *,
-                                  Elf_Internal_Sym *,
-                                  const char **,
-                                  flagword *,
-                                  asection **,
-                                  bfd_vma *);
+				  struct bfd_link_info *,
+				  Elf_Internal_Sym *,
+				  const char **,
+				  flagword *,
+				  asection **,
+				  bfd_vma *);
 
 extern void
 s7_bfd_score_elf_symbol_processing (bfd *, asymbol *);
 
 extern int
 s7_bfd_score_elf_link_output_symbol_hook (struct bfd_link_info *,
-                                          const char *,
-                                          Elf_Internal_Sym *,
-                                          asection *,
-                                          struct elf_link_hash_entry *);
+					  const char *,
+					  Elf_Internal_Sym *,
+					  asection *,
+					  struct elf_link_hash_entry *);
 
 extern bfd_boolean
 s7_bfd_score_elf_section_from_bfd_section (bfd *,
-                                           asection *,
-                                           int *);
+					   asection *,
+					   int *);
 
 extern bfd_boolean
 s7_bfd_score_elf_adjust_dynamic_symbol (struct bfd_link_info *,
-                                        struct elf_link_hash_entry *);
+					struct elf_link_hash_entry *);
 
 extern bfd_boolean
 s7_bfd_score_elf_always_size_sections (bfd *, struct bfd_link_info *);
@@ -88,17 +88,17 @@ s7_bfd_score_elf_create_dynamic_sections
 
 extern bfd_boolean
 s7_bfd_score_elf_finish_dynamic_symbol (bfd *,
-                                        struct bfd_link_info *,
-                                        struct elf_link_hash_entry *,
-                                        Elf_Internal_Sym *);
+					struct bfd_link_info *,
+					struct elf_link_hash_entry *,
+					Elf_Internal_Sym *);
 
 extern bfd_boolean
 s7_bfd_score_elf_finish_dynamic_sections (bfd *, struct bfd_link_info *);
 
 extern bfd_boolean
 s7_bfd_score_elf_fake_sections (bfd *,
-                                Elf_Internal_Shdr *,
-                                asection *);
+				Elf_Internal_Shdr *,
+				asection *);
 
 extern bfd_boolean
 s7_bfd_score_elf_section_processing (bfd *, Elf_Internal_Shdr *);
@@ -108,22 +108,22 @@ s7_bfd_score_elf_write_section (bfd *, a
 
 extern void
 s7_bfd_score_elf_copy_indirect_symbol (struct bfd_link_info *,
-                                       struct elf_link_hash_entry *,
-                                       struct elf_link_hash_entry *);
+				       struct elf_link_hash_entry *,
+				       struct elf_link_hash_entry *);
 
 extern bfd_boolean
 s7_bfd_score_elf_discard_info (bfd *, struct elf_reloc_cookie *,
-                               struct bfd_link_info *);
+			       struct bfd_link_info *);
 
 extern bfd_boolean
 s7_bfd_score_elf_ignore_discarded_relocs (asection *);
 
 extern asection *
 s7_bfd_score_elf_gc_mark_hook (asection *,
-                               struct bfd_link_info *,
-                               Elf_Internal_Rela *,
-                               struct elf_link_hash_entry *,
-                               Elf_Internal_Sym *);
+			       struct bfd_link_info *,
+			       Elf_Internal_Rela *,
+			       struct elf_link_hash_entry *,
+			       Elf_Internal_Sym *);
 
 extern bfd_boolean
 s7_bfd_score_elf_grok_prstatus (bfd *, Elf_Internal_Note *);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-sh64.c ./bfd/elf32-sh64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-sh64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-sh64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* SuperH SH64-specific support for 32-bit ELF
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -87,7 +87,7 @@ static void sh64_find_section_for_addres
 #define elf_backend_link_output_symbol_hook \
 	sh64_elf_link_output_symbol_hook
 #define elf_backend_merge_symbol_attribute	sh64_elf_merge_symbol_attribute
-#define elf_backend_final_write_processing 	sh64_elf_final_write_processing
+#define elf_backend_final_write_processing	sh64_elf_final_write_processing
 #define elf_backend_section_from_shdr		sh64_backend_section_from_shdr
 #define elf_backend_special_sections		sh64_elf_special_sections
 #define elf_backend_section_flags		sh64_elf_section_flags
@@ -597,9 +597,9 @@ shmedia_prepare_reloc (struct bfd_link_i
     {
       _bfd_error_handler
 	/* xgettext:c-format */
-	(_("%B: error: unaligned relocation type %d at %08x reloc %p\n"),
-	 input_section->owner, ELF32_R_TYPE (rel->r_info),
-	 (unsigned) rel->r_offset, relocation);
+	(_("%B: error: unaligned relocation type %d at %#Lx reloc %#Lx"),
+	 input_section->owner, (int) ELF32_R_TYPE (rel->r_info),
+	 rel->r_offset, *relocation);
       return FALSE;
     }
 
@@ -762,7 +762,7 @@ sh64_elf_merge_symbol_attribute (struct 
 static const struct bfd_elf_special_section sh64_elf_special_sections[] =
 {
   { STRING_COMMA_LEN (".cranges"), 0, SHT_PROGBITS, 0 },
-  { NULL,                       0, 0, 0,            0 }
+  { NULL,			0, 0, 0,	    0 }
 };
 
 #undef	TARGET_BIG_SYM
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-sh64-com.c ./bfd/elf32-sh64-com.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-sh64-com.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-sh64-com.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* SuperH SH64-specific support for 32-bit ELF
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-sh64.h ./bfd/elf32-sh64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-sh64.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-sh64.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* SH ELF support for BFD.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-sh.c ./bfd/elf32-sh.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-sh.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-sh.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Renesas / SuperH SH specific support for 32-bit ELF
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Contributed by Ian Lance Taylor, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -577,8 +577,8 @@ sh_elf_relax_section (bfd *abfd, asectio
       if (laddr >= sec->size)
 	{
 	  /* xgettext:c-format */
-	  _bfd_error_handler (_("%B: 0x%lx: warning: bad R_SH_USES offset"),
-			      abfd, (unsigned long) irel->r_offset);
+	  _bfd_error_handler (_("%B: %#Lx: warning: bad R_SH_USES offset"),
+			      abfd, irel->r_offset);
 	  continue;
 	}
       insn = bfd_get_16 (abfd, contents + laddr);
@@ -589,8 +589,8 @@ sh_elf_relax_section (bfd *abfd, asectio
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"),
-	     abfd, (unsigned long) irel->r_offset, insn);
+	    (_("%B: %#Lx: warning: R_SH_USES points to unrecognized insn 0x%x"),
+	     abfd, irel->r_offset, insn);
 	  continue;
 	}
 
@@ -607,8 +607,8 @@ sh_elf_relax_section (bfd *abfd, asectio
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: 0x%lx: warning: bad R_SH_USES load offset"),
-	     abfd, (unsigned long) irel->r_offset);
+	    (_("%B: %#Lx: warning: bad R_SH_USES load offset"),
+	     abfd, irel->r_offset);
 	  continue;
 	}
 
@@ -623,8 +623,8 @@ sh_elf_relax_section (bfd *abfd, asectio
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: 0x%lx: warning: could not find expected reloc"),
-	     abfd, (unsigned long) paddr);
+	    (_("%B: %#Lx: warning: could not find expected reloc"),
+	     abfd, paddr);
 	  continue;
 	}
 
@@ -652,8 +652,8 @@ sh_elf_relax_section (bfd *abfd, asectio
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B: 0x%lx: warning: symbol in unexpected section"),
-		 abfd, (unsigned long) paddr);
+		(_("%B: %#Lx: warning: symbol in unexpected section"),
+		 abfd, paddr);
 	      continue;
 	    }
 
@@ -782,8 +782,8 @@ sh_elf_relax_section (bfd *abfd, asectio
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: 0x%lx: warning: could not find expected COUNT reloc"),
-	     abfd, (unsigned long) paddr);
+	    (_("%B: %#Lx: warning: could not find expected COUNT reloc"),
+	     abfd, paddr);
 	  continue;
 	}
 
@@ -792,8 +792,8 @@ sh_elf_relax_section (bfd *abfd, asectio
       if (irelcount->r_addend == 0)
 	{
 	  /* xgettext:c-format */
-	  _bfd_error_handler (_("%B: 0x%lx: warning: bad count"),
-			      abfd, (unsigned long) paddr);
+	  _bfd_error_handler (_("%B: %#Lx: warning: bad count"),
+			      abfd, paddr);
 	  continue;
 	}
 
@@ -913,7 +913,7 @@ sh_elf_relax_delete_bytes (bfd *abfd, as
 
   contents = elf_section_data (sec)->this_hdr.contents;
 
-  /* The deletion must stop at the next ALIGN reloc for an aligment
+  /* The deletion must stop at the next ALIGN reloc for an alignment
      power larger than the number of bytes we are deleting.  */
 
   irelalign = NULL;
@@ -1196,8 +1196,8 @@ sh_elf_relax_delete_bytes (bfd *abfd, as
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B: 0x%lx: fatal: reloc overflow while relaxing"),
-		 abfd, (unsigned long) irel->r_offset);
+		(_("%B: %#Lx: fatal: reloc overflow while relaxing"),
+		 abfd, irel->r_offset);
 	      bfd_set_error (bfd_error_bad_value);
 	      return FALSE;
 	    }
@@ -1567,8 +1567,8 @@ sh_elf_swap_insns (bfd *abfd, asection *
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B: 0x%lx: fatal: reloc overflow while relaxing"),
-		 abfd, (unsigned long) irel->r_offset);
+		(_("%B: %#Lx: fatal: reloc overflow while relaxing"),
+		 abfd, irel->r_offset);
 	      bfd_set_error (bfd_error_bad_value);
 	      return FALSE;
 	    }
@@ -2367,26 +2367,6 @@ get_plt_offset (const struct elf_sh_plt_
 	  + (plt_index * info->symbol_entry_size));
 }
 
-/* The sh linker needs to keep track of the number of relocs that it
-   decides to copy as dynamic relocs in check_relocs for each symbol.
-   This is so that it can later discard them if they are found to be
-   unnecessary.  We store the information in a field extending the
-   regular ELF linker hash table.  */
-
-struct elf_sh_dyn_relocs
-{
-  struct elf_sh_dyn_relocs *next;
-
-  /* The input section of the reloc.  */
-  asection *sec;
-
-  /* Total number of relocs copied for the input section.  */
-  bfd_size_type count;
-
-  /* Number of pc-relative relocs copied for the input section.  */
-  bfd_size_type pc_count;
-};
-
 union gotref
 {
   bfd_signed_vma refcount;
@@ -2408,7 +2388,7 @@ struct elf_sh_link_hash_entry
 #endif
 
   /* Track dynamic relocs copied for this symbol.  */
-  struct elf_sh_dyn_relocs *dyn_relocs;
+  struct elf_dyn_relocs *dyn_relocs;
 
   bfd_signed_vma gotplt_refcount;
 
@@ -2795,6 +2775,23 @@ sh_elf_create_dynamic_sections (bfd *abf
   return TRUE;
 }
 
+/* Find dynamic relocs for H that apply to read-only sections.  */
+
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
+
+  for (p = sh_elf_hash_entry (h)->dyn_relocs; p != NULL; p = p->next)
+    {
+      asection *s = p->sec->output_section;
+
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
+    }
+  return NULL;
+}
+
 /* Adjust a symbol defined by a dynamic object and referenced by a
    regular object.  The current definition is in some section of the
    dynamic object, but we're not including those sections.  We have to
@@ -2806,8 +2803,6 @@ sh_elf_adjust_dynamic_symbol (struct bfd
 			      struct elf_link_hash_entry *h)
 {
   struct elf_sh_link_hash_table *htab;
-  struct elf_sh_link_hash_entry *eh;
-  struct elf_sh_dyn_relocs *p;
   asection *s;
 
   htab = sh_elf_hash_table (info);
@@ -2817,7 +2812,7 @@ sh_elf_adjust_dynamic_symbol (struct bfd
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (htab->root.dynobj != NULL
 	      && (h->needs_plt
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -2850,14 +2845,14 @@ sh_elf_adjust_dynamic_symbol (struct bfd
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       if (info->nocopyreloc)
-	h->non_got_ref = h->u.weakdef->non_got_ref;
+	h->non_got_ref = def->non_got_ref;
       return TRUE;
     }
 
@@ -2877,24 +2872,15 @@ sh_elf_adjust_dynamic_symbol (struct bfd
     return TRUE;
 
   /* If -z nocopyreloc was given, we won't generate them either.  */
-  if (info->nocopyreloc)
+  if (0 && info->nocopyreloc)
     {
       h->non_got_ref = 0;
       return TRUE;
     }
 
-  eh = (struct elf_sh_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      s = p->sec->output_section;
-      if (s != NULL && (s->flags & (SEC_READONLY | SEC_HAS_CONTENTS)) != 0)
-	break;
-    }
-
-  /* If we didn't find any dynamic relocs in sections which needs the
-     copy reloc, then we'll be keeping the dynamic relocs and avoiding
-     the copy reloc.  */
-  if (p == NULL)
+  /* If we don't find any dynamic relocs in read-only sections, then
+     we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
+  if (0 && !readonly_dynrelocs (h))
     {
       h->non_got_ref = 0;
       return TRUE;
@@ -2939,7 +2925,7 @@ allocate_dynrelocs (struct elf_link_hash
   struct bfd_link_info *info;
   struct elf_sh_link_hash_table *htab;
   struct elf_sh_link_hash_entry *eh;
-  struct elf_sh_dyn_relocs *p;
+  struct elf_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
     return TRUE;
@@ -3190,7 +3176,7 @@ allocate_dynrelocs (struct elf_link_hash
     {
       if (SYMBOL_CALLS_LOCAL (info, h))
 	{
-	  struct elf_sh_dyn_relocs **pp;
+	  struct elf_dyn_relocs **pp;
 
 	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
 	    {
@@ -3205,7 +3191,7 @@ allocate_dynrelocs (struct elf_link_hash
 
       if (htab->vxworks_p)
 	{
-	  struct elf_sh_dyn_relocs **pp;
+	  struct elf_dyn_relocs **pp;
 
 	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
 	    {
@@ -3221,7 +3207,8 @@ allocate_dynrelocs (struct elf_link_hash
       if (eh->dyn_relocs != NULL
 	  && h->root.type == bfd_link_hash_undefweak)
 	{
-	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
+	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+	      || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	    eh->dyn_relocs = NULL;
 
 	  /* Make sure undefined weak symbols are output as a dynamic
@@ -3281,28 +3268,29 @@ allocate_dynrelocs (struct elf_link_hash
   return TRUE;
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct elf_sh_link_hash_entry *eh;
-  struct elf_sh_dyn_relocs *p;
+  asection *sec;
 
-  eh = (struct elf_sh_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection *s = p->sec->output_section;
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	{
-	  struct bfd_link_info *info = (struct bfd_link_info *) inf;
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
+    {
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-	  info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
-	  /* Not an error, just cut short the traversal.  */
-	  return FALSE;
-	}
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -3372,9 +3360,9 @@ sh_elf_size_dynamic_sections (bfd *outpu
 
       for (s = ibfd->sections; s != NULL; s = s->next)
 	{
-	  struct elf_sh_dyn_relocs *p;
+	  struct elf_dyn_relocs *p;
 
-	  for (p = ((struct elf_sh_dyn_relocs *)
+	  for (p = ((struct elf_dyn_relocs *)
 		    elf_section_data (s)->local_dynrel);
 	       p != NULL;
 	       p = p->next)
@@ -3399,7 +3387,11 @@ sh_elf_size_dynamic_sections (bfd *outpu
 		  srel = elf_section_data (p->sec)->sreloc;
 		  srel->size += p->count * sizeof (Elf32_External_Rela);
 		  if ((p->sec->output_section->flags & SEC_READONLY) != 0)
-		    info->flags |= DF_TEXTREL;
+		    {
+		      info->flags |= DF_TEXTREL;
+		      info->callbacks->minfo (_("%B: dynamic relocation in read-only section `%A'\n"),
+					      p->sec->owner, p->sec);
+		    }
 
 		  /* If we need relocations, we do not need fixups.  */
 		  if (htab->fdpic_p && !bfd_link_pic (info))
@@ -3622,7 +3614,7 @@ sh_elf_size_dynamic_sections (bfd *outpu
 	  /* If any dynamic relocs apply to a read-only section,
 	     then we need a DT_TEXTREL entry.  */
 	  if ((info->flags & DF_TEXTREL) == 0)
-	    elf_link_hash_traverse (&htab->root, readonly_dynrelocs, info);
+	    elf_link_hash_traverse (&htab->root, maybe_set_textrel, info);
 
 	  if ((info->flags & DF_TEXTREL) != 0)
 	    {
@@ -3887,6 +3879,7 @@ sh_elf_relocate_section (bfd *output_bfd
       bfd_vma off;
       enum got_type got_type;
       const char *symname = NULL;
+      bfd_boolean resolved_to_zero;
 
       r_symndx = ELF32_R_SYM (rel->r_info);
 
@@ -3926,6 +3919,7 @@ sh_elf_relocate_section (bfd *output_bfd
       if (! howto->partial_inplace)
 	addend = rel->r_addend;
 
+      resolved_to_zero = FALSE;
       h = NULL;
       sym = NULL;
       sec = NULL;
@@ -4006,9 +4000,9 @@ sh_elf_relocate_section (bfd *output_bfd
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B(%A+0x%lx): %s relocation against SEC_MERGE section"),
+		    (_("%B(%A+%#Lx): %s relocation against SEC_MERGE section"),
 		     input_bfd, input_section,
-		     (long) rel->r_offset, howto->name);
+		     rel->r_offset, howto->name);
 		  return FALSE;
 		}
 
@@ -4124,17 +4118,17 @@ sh_elf_relocate_section (bfd *output_bfd
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+		    (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
 		     input_bfd,
 		     input_section,
-		     (long) rel->r_offset,
+		     rel->r_offset,
 		     howto->name,
 		     h->root.root.string);
 		  return FALSE;
 		}
 	    }
 	  else if (h->root.type == bfd_link_hash_undefweak)
-	    ;
+	    resolved_to_zero = UNDEFWEAK_NO_DYNAMIC_RELOC (info, h);
 	  else if (info->unresolved_syms_in_objects == RM_IGNORE
 		   && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
 	    ;
@@ -4203,9 +4197,9 @@ sh_elf_relocate_section (bfd *output_bfd
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B: 0x%lx: fatal: unaligned branch target for relax-support relocation"),
+		    (_("%B: %#Lx: fatal: unaligned branch target for relax-support relocation"),
 		     input_section->owner,
-		     (unsigned long) rel->r_offset);
+		     rel->r_offset);
 		  bfd_set_error (bfd_error_bad_value);
 		  return FALSE;
 		}
@@ -4237,10 +4231,10 @@ sh_elf_relocate_section (bfd *output_bfd
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B: 0x%lx: fatal: unaligned %s relocation 0x%lx"),
+		(_("%B: %#Lx: fatal: unaligned %s relocation %#Lx"),
 		 input_section->owner,
-		 (unsigned long) rel->r_offset, howto->name,
-		 (unsigned long) relocation);
+		 rel->r_offset, howto->name,
+		 relocation);
 	      bfd_set_error (bfd_error_bad_value);
 	      return FALSE;
 	    }
@@ -4253,10 +4247,10 @@ sh_elf_relocate_section (bfd *output_bfd
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B: 0x%lx: fatal: unaligned %s relocation 0x%lx"),
+		(_("%B: %#Lx: fatal: unaligned %s relocation %#Lx"),
 		 input_section->owner,
-		 (unsigned long) rel->r_offset, howto->name,
-		 (unsigned long) relocation);
+		 rel->r_offset, howto->name,
+		 relocation);
 	      bfd_set_error (bfd_error_bad_value);
 	      return FALSE;
 	    }
@@ -4268,10 +4262,10 @@ sh_elf_relocate_section (bfd *output_bfd
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32"),
+		(_("%B: %#Lx: fatal: R_SH_PSHA relocation %Ld not in range -32..32"),
 		 input_section->owner,
-		 (unsigned long) rel->r_offset,
-		 (unsigned long) relocation);
+		 rel->r_offset,
+		 relocation);
 	      bfd_set_error (bfd_error_bad_value);
 	      return FALSE;
 	    }
@@ -4283,10 +4277,10 @@ sh_elf_relocate_section (bfd *output_bfd
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32"),
+		(_("%B: %#Lx: fatal: R_SH_PSHL relocation %Ld not in range -32..32"),
 		 input_section->owner,
-		 (unsigned long) rel->r_offset,
-		 (unsigned long) relocation);
+		 rel->r_offset,
+		 relocation);
 	      bfd_set_error (bfd_error_bad_value);
 	      return FALSE;
 	    }
@@ -4302,7 +4296,8 @@ sh_elf_relocate_section (bfd *output_bfd
 #endif
 	  if (bfd_link_pic (info)
 	      && (h == NULL
-		  || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		  || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		      && !resolved_to_zero)
 		  || h->root.type != bfd_link_hash_undefweak)
 	      && r_symndx != STN_UNDEF
 	      && (input_section->flags & SEC_ALLOC) != 0
@@ -4428,10 +4423,10 @@ sh_elf_relocate_section (bfd *output_bfd
 		  {
 		    _bfd_error_handler
 		      /* xgettext:c-format */
-		      (_("%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section"),
+		      (_("%B(%A+%#Lx): cannot emit fixup to `%s' in read-only section"),
 		       input_bfd,
 		       input_section,
-		       (long) rel->r_offset,
+		       rel->r_offset,
 		       symname);
 		    return FALSE;
 		  }
@@ -4530,7 +4525,8 @@ sh_elf_relocate_section (bfd *output_bfd
 						     h)
 		  || (bfd_link_pic (info)
 		      && SYMBOL_REFERENCES_LOCAL (info, h))
-		  || (ELF_ST_VISIBILITY (h->other)
+		  || ((ELF_ST_VISIBILITY (h->other)
+		       || resolved_to_zero)
 		      && h->root.type == bfd_link_hash_undefweak))
 		{
 		  /* This is actually a static link, or it is a
@@ -4900,10 +4896,10 @@ sh_elf_relocate_section (bfd *output_bfd
 		  {
 		    _bfd_error_handler
 		      /* xgettext:c-format */
-		      (_("%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section"),
+		      (_("%B(%A+%#Lx): cannot emit fixup to `%s' in read-only section"),
 		       input_bfd,
 		       input_section,
-		       (long) rel->r_offset,
+		       rel->r_offset,
 		       symname);
 		    return FALSE;
 		  }
@@ -5002,8 +4998,8 @@ sh_elf_relocate_section (bfd *output_bfd
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B(%A+0x%lx): %s relocation against external symbol \"%s\""),
-		 input_bfd, input_section, (long) rel->r_offset, howto->name,
+		(_("%B(%A+%#Lx): %s relocation against external symbol \"%s\""),
+		 input_bfd, input_section, rel->r_offset, howto->name,
 		 h->root.root.string);
 	      return FALSE;
 	    }
@@ -5683,14 +5679,14 @@ sh_elf_copy_indirect_symbol (struct bfd_
     {
       if (edir->dyn_relocs != NULL)
 	{
-	  struct elf_sh_dyn_relocs **pp;
-	  struct elf_sh_dyn_relocs *p;
+	  struct elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs *p;
 
 	  /* Add reloc counts against the indirect sym to the direct sym
 	     list.  Merge any entries against the same section.  */
 	  for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
 	    {
-	      struct elf_sh_dyn_relocs *q;
+	      struct elf_dyn_relocs *q;
 
 	      for (q = edir->dyn_relocs; q != NULL; q = q->next)
 		if (q->sec == p->sec)
@@ -5786,6 +5782,15 @@ sh_elf_check_relocs (bfd *abfd, struct b
   if (bfd_link_relocatable (info))
     return TRUE;
 
+  /* Don't do anything special with non-loaded, non-alloced sections.
+     In particular, any relocs in such sections should not affect GOT
+     and PLT reference counting (ie. we don't allow them to create GOT
+     or PLT entries), there's no possibility or desire to optimize TLS
+     relocs, and there's not much point in propagating relocs to shared
+     libs that the dynamic linker won't relocate.  */
+  if ((sec->flags & SEC_ALLOC) == 0)
+    return TRUE;
+
   BFD_ASSERT (is_sh_elf (abfd));
 
   symtab_hdr = &elf_symtab_hdr (abfd);
@@ -5820,10 +5825,6 @@ sh_elf_check_relocs (bfd *abfd, struct b
 #endif
 	      h = (struct elf_link_hash_entry *) h->root.u.i.link;
 	    }
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       r_type = sh_elf_optimized_tls_reloc (info, r_type, h == NULL);
@@ -6010,7 +6011,7 @@ sh_elf_check_relocs (bfd *abfd, struct b
 		  if (local_got_refcounts == NULL)
 		    return FALSE;
 		  elf_local_got_refcounts (abfd) = local_got_refcounts;
-#ifdef 	INCLUDE_SHMEDIA
+#ifdef INCLUDE_SHMEDIA
 		  /* Take care of both the datalabel and codelabel local
 		     GOT offsets.  */
 		  sh_elf_local_got_type (abfd)
@@ -6236,8 +6237,8 @@ sh_elf_check_relocs (bfd *abfd, struct b
 		  && (h->root.type == bfd_link_hash_defweak
 		      || !h->def_regular)))
 	    {
-	      struct elf_sh_dyn_relocs *p;
-	      struct elf_sh_dyn_relocs **head;
+	      struct elf_dyn_relocs *p;
+	      struct elf_dyn_relocs **head;
 
 	      if (htab->root.dynobj == NULL)
 		htab->root.dynobj = abfd;
@@ -6275,7 +6276,7 @@ sh_elf_check_relocs (bfd *abfd, struct b
 		    s = sec;
 
 		  vpp = &elf_section_data (s)->local_dynrel;
-		  head = (struct elf_sh_dyn_relocs **) vpp;
+		  head = (struct elf_dyn_relocs **) vpp;
 		}
 
 	      p = *head;
@@ -6344,7 +6345,7 @@ sh_elf_set_mach_from_flags (bfd *abfd)
 {
   flagword flags = elf_elfheader (abfd)->e_flags & EF_SH_MACH_MASK;
 
-  if (flags >= sizeof(sh_ef_bfd_table))
+  if (flags >= ARRAY_SIZE (sh_ef_bfd_table))
     return FALSE;
 
   if (sh_ef_bfd_table[flags] == 0)
@@ -7301,6 +7302,8 @@ sh_elf_encode_eh_address (bfd *abfd,
 #define elf_backend_got_header_size	12
 #define elf_backend_dtrel_excludes_plt	1
 
+#define elf_backend_linux_prpsinfo32_ugid16	TRUE
+
 #if !defined INCLUDE_SHMEDIA && !defined SH_TARGET_ALREADY_DEFINED
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-sh-relocs.h ./bfd/elf32-sh-relocs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-sh-relocs.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-sh-relocs.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-sh-symbian.c ./bfd/elf32-sh-symbian.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-sh-symbian.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-sh-symbian.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Renesas / SuperH specific support for Symbian 32-bit ELF files
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
    Contributed by Red Hat
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -22,7 +22,7 @@
 
 /* Stop elf32-sh.c from defining any target vectors.  */
 #define SH_TARGET_ALREADY_DEFINED
-#define sh_find_elf_flags           sh_symbian_find_elf_flags
+#define sh_find_elf_flags	    sh_symbian_find_elf_flags
 #define sh_elf_get_flags_from_mach  sh_symbian_elf_get_flags_from_mach
 #include "elf32-sh.c"
 
@@ -46,7 +46,7 @@
 	++ s;							\
       if (s >= e)						\
 	{							\
-          if (SYMBIAN_DEBUG)					\
+	  if (SYMBIAN_DEBUG)					\
 	    fprintf (stderr, "Corrupt directive: %s\n", m);	\
 	  result = FALSE;					\
 	}							\
@@ -64,7 +64,7 @@
 	++ s;							\
       if (s >= e)						\
 	{							\
-          if (SYMBIAN_DEBUG)					\
+	  if (SYMBIAN_DEBUG)					\
 	    fprintf (stderr, "Corrupt directive: %s\n", m);	\
 	  result = FALSE;					\
 	}							\
@@ -84,7 +84,7 @@
 	++ s;							\
       if (s >= e)						\
 	{							\
-          if (SYMBIAN_DEBUG)					\
+	  if (SYMBIAN_DEBUG)					\
 	    fprintf (stderr, "Corrupt directive: %s\n", m);	\
 	  result = FALSE;					\
 	}							\
@@ -97,10 +97,10 @@
 typedef struct symbol_rename
 {
   struct symbol_rename *       next;
-  char *                       current_name;
-  char *                       new_name;
+  char *		       current_name;
+  char *		       new_name;
   struct elf_link_hash_entry * current_hash;
-  unsigned long                new_symndx;
+  unsigned long		       new_symndx;
 }
 symbol_rename;
 
@@ -424,26 +424,26 @@ sh_symbian_process_directives (bfd *abfd
    and magle the relocs to allow for symbol renaming.  */
 
 static bfd_boolean
-sh_symbian_relocate_section (bfd *                  output_bfd,
+sh_symbian_relocate_section (bfd *		    output_bfd,
 			     struct bfd_link_info * info,
-			     bfd *                  input_bfd,
-			     asection *             input_section,
-			     bfd_byte *             contents,
+			     bfd *		    input_bfd,
+			     asection *		    input_section,
+			     bfd_byte *		    contents,
 			     Elf_Internal_Rela *    relocs,
-			     Elf_Internal_Sym *     local_syms,
-			     asection **            local_sections)
+			     Elf_Internal_Sym *	    local_syms,
+			     asection **	    local_sections)
 {
   /* When performing a final link we implement the IMPORT AS directives.  */
   if (!bfd_link_relocatable (info))
     {
-      Elf_Internal_Rela *            rel;
-      Elf_Internal_Rela *            relend;
-      Elf_Internal_Shdr *            symtab_hdr;
+      Elf_Internal_Rela *	     rel;
+      Elf_Internal_Rela *	     relend;
+      Elf_Internal_Shdr *	     symtab_hdr;
       struct elf_link_hash_entry **  sym_hashes;
       struct elf_link_hash_entry **  sym_hashes_end;
       struct elf_link_hash_table *   hash_table;
-      symbol_rename *                ptr;
-      bfd_size_type                  num_global_syms;
+      symbol_rename *		     ptr;
+      bfd_size_type		     num_global_syms;
       unsigned long		     num_local_syms;
 
       BFD_ASSERT (! elf_bad_symtab (input_bfd));
@@ -552,8 +552,8 @@ sh_symbian_relocate_section (bfd *      
 	   rel < relend;
 	   rel ++)
 	{
-	  int                          r_type;
-	  unsigned long                r_symndx;
+	  int			       r_type;
+	  unsigned long		       r_symndx;
 	  struct elf_link_hash_entry * h;
 
 	  r_symndx = ELF32_R_SYM (rel->r_info);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-sparc.c ./bfd/elf32-sparc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-sparc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-sparc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* SPARC-specific support for 32-bit ELF
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -142,6 +142,7 @@ elf32_sparc_final_write_processing (bfd 
     case bfd_mach_sparc_v8pluse :
     case bfd_mach_sparc_v8plusv :
     case bfd_mach_sparc_v8plusm :
+    case bfd_mach_sparc_v8plusm8 :
       elf_elfheader (abfd)->e_machine = EM_SPARC32PLUS;
       elf_elfheader (abfd)->e_flags &=~ EF_SPARC_32PLUS_MASK;
       elf_elfheader (abfd)->e_flags |= EF_SPARC_32PLUS | EF_SPARC_SUN_US1
@@ -235,10 +236,9 @@ elf32_sparc_add_symbol_hook (bfd * abfd,
 #define bfd_elf32_mkobject		_bfd_sparc_elf_mkobject
 #define elf_backend_object_p		_bfd_sparc_elf_object_p
 #define elf_backend_gc_mark_hook	_bfd_sparc_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook       _bfd_sparc_elf_gc_sweep_hook
 #define elf_backend_plt_sym_val		_bfd_sparc_elf_plt_sym_val
 #define elf_backend_init_index_section	_bfd_elf_init_1_index_section
-#define elf_backend_fixup_symbol        _bfd_sparc_elf_fixup_symbol
+#define elf_backend_fixup_symbol	_bfd_sparc_elf_fixup_symbol
 
 #define elf_backend_can_gc_sections 1
 #define elf_backend_can_refcount 1
@@ -251,6 +251,8 @@ elf32_sparc_add_symbol_hook (bfd * abfd,
 
 #define elf_backend_add_symbol_hook		elf32_sparc_add_symbol_hook
 
+#define elf_backend_linux_prpsinfo32_ugid16	TRUE
+
 #include "elf32-target.h"
 
 /* Solaris 2.  */
@@ -265,10 +267,10 @@ elf32_sparc_add_symbol_hook (bfd * abfd,
 
 /* The 32-bit static TLS arena size is rounded to the nearest 8-byte
    boundary.  */
-#undef  elf_backend_static_tls_alignment
+#undef	elf_backend_static_tls_alignment
 #define elf_backend_static_tls_alignment	8
 
-#undef  elf_backend_strtab_flags
+#undef	elf_backend_strtab_flags
 #define elf_backend_strtab_flags	SHF_STRINGS
 
 static bfd_boolean
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-spu.c ./bfd/elf32-spu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-spu.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-spu.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* SPU specific support for 32-bit ELF
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -37,13 +37,13 @@ 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, 3,  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,
+  HOWTO (R_SPU_ADDR10,	   4, 2, 10, FALSE, 14, complain_overflow_bitfield,
 	 bfd_elf_generic_reloc, "SPU_ADDR10",
 	 FALSE, 0, 0x00ffc000, FALSE),
-  HOWTO (R_SPU_ADDR16,     2, 2, 16, FALSE,  7, complain_overflow_bitfield,
+  HOWTO (R_SPU_ADDR16,	   2, 2, 16, FALSE,  7, complain_overflow_bitfield,
 	 bfd_elf_generic_reloc, "SPU_ADDR16",
 	 FALSE, 0, 0x007fff80, FALSE),
   HOWTO (R_SPU_ADDR16_HI, 16, 2, 16, FALSE,  7, complain_overflow_bitfield,
@@ -52,43 +52,43 @@ static reloc_howto_type elf_howto_table[
   HOWTO (R_SPU_ADDR16_LO,  0, 2, 16, FALSE,  7, complain_overflow_dont,
 	 bfd_elf_generic_reloc, "SPU_ADDR16_LO",
 	 FALSE, 0, 0x007fff80, FALSE),
-  HOWTO (R_SPU_ADDR18,     0, 2, 18, FALSE,  7, complain_overflow_bitfield,
+  HOWTO (R_SPU_ADDR18,	   0, 2, 18, FALSE,  7, complain_overflow_bitfield,
 	 bfd_elf_generic_reloc, "SPU_ADDR18",
 	 FALSE, 0, 0x01ffff80, FALSE),
-  HOWTO (R_SPU_ADDR32,     0, 2, 32, FALSE,  0, complain_overflow_dont,
+  HOWTO (R_SPU_ADDR32,	   0, 2, 32, FALSE,  0, complain_overflow_dont,
 	 bfd_elf_generic_reloc, "SPU_ADDR32",
 	 FALSE, 0, 0xffffffff, FALSE),
-  HOWTO (R_SPU_REL16,      2, 2, 16,  TRUE,  7, complain_overflow_bitfield,
+  HOWTO (R_SPU_REL16,	   2, 2, 16,  TRUE,  7, complain_overflow_bitfield,
 	 bfd_elf_generic_reloc, "SPU_REL16",
 	 FALSE, 0, 0x007fff80, TRUE),
-  HOWTO (R_SPU_ADDR7,      0, 2,  7, FALSE, 14, complain_overflow_dont,
+  HOWTO (R_SPU_ADDR7,	   0, 2,  7, FALSE, 14, complain_overflow_dont,
 	 bfd_elf_generic_reloc, "SPU_ADDR7",
 	 FALSE, 0, 0x001fc000, FALSE),
-  HOWTO (R_SPU_REL9,       2, 2,  9,  TRUE,  0, complain_overflow_signed,
-	 spu_elf_rel9,          "SPU_REL9",
+  HOWTO (R_SPU_REL9,	   2, 2,  9,  TRUE,  0, complain_overflow_signed,
+	 spu_elf_rel9,		"SPU_REL9",
 	 FALSE, 0, 0x0180007f, TRUE),
-  HOWTO (R_SPU_REL9I,      2, 2,  9,  TRUE,  0, complain_overflow_signed,
-	 spu_elf_rel9,          "SPU_REL9I",
+  HOWTO (R_SPU_REL9I,	   2, 2,  9,  TRUE,  0, complain_overflow_signed,
+	 spu_elf_rel9,		"SPU_REL9I",
 	 FALSE, 0, 0x0000c07f, TRUE),
-  HOWTO (R_SPU_ADDR10I,    0, 2, 10, FALSE, 14, complain_overflow_signed,
+  HOWTO (R_SPU_ADDR10I,	   0, 2, 10, FALSE, 14, complain_overflow_signed,
 	 bfd_elf_generic_reloc, "SPU_ADDR10I",
 	 FALSE, 0, 0x00ffc000, FALSE),
-  HOWTO (R_SPU_ADDR16I,    0, 2, 16, FALSE,  7, complain_overflow_signed,
+  HOWTO (R_SPU_ADDR16I,	   0, 2, 16, FALSE,  7, complain_overflow_signed,
 	 bfd_elf_generic_reloc, "SPU_ADDR16I",
 	 FALSE, 0, 0x007fff80, FALSE),
-  HOWTO (R_SPU_REL32,      0, 2, 32, TRUE,  0, complain_overflow_dont,
+  HOWTO (R_SPU_REL32,	   0, 2, 32, TRUE,  0, complain_overflow_dont,
 	 bfd_elf_generic_reloc, "SPU_REL32",
 	 FALSE, 0, 0xffffffff, TRUE),
-  HOWTO (R_SPU_ADDR16X,    0, 2, 16, FALSE,  7, complain_overflow_bitfield,
+  HOWTO (R_SPU_ADDR16X,	   0, 2, 16, FALSE,  7, complain_overflow_bitfield,
 	 bfd_elf_generic_reloc, "SPU_ADDR16X",
 	 FALSE, 0, 0x007fff80, FALSE),
-  HOWTO (R_SPU_PPU32,      0, 2, 32, FALSE,  0, complain_overflow_dont,
+  HOWTO (R_SPU_PPU32,	   0, 2, 32, FALSE,  0, complain_overflow_dont,
 	 bfd_elf_generic_reloc, "SPU_PPU32",
 	 FALSE, 0, 0xffffffff, FALSE),
-  HOWTO (R_SPU_PPU64,      0, 4, 64, FALSE,  0, complain_overflow_dont,
+  HOWTO (R_SPU_PPU64,	   0, 4, 64, FALSE,  0, complain_overflow_dont,
 	 bfd_elf_generic_reloc, "SPU_PPU64",
 	 FALSE, 0, -1, FALSE),
-  HOWTO (R_SPU_ADD_PIC,      0, 0, 0, FALSE,  0, complain_overflow_dont,
+  HOWTO (R_SPU_ADD_PIC,	     0, 0, 0, FALSE,  0, complain_overflow_dont,
 	 bfd_elf_generic_reloc, "SPU_ADD_PIC",
 	 FALSE, 0, 0x00000000, FALSE),
 };
@@ -5040,10 +5040,10 @@ spu_elf_relocate_section (bfd *output_bf
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'"),
+	    (_("%B(%s+%#Lx): unresolvable %s relocation against symbol `%s'"),
 	     input_bfd,
 	     bfd_get_section_name (input_bfd, input_section),
-	     (long) rel->r_offset,
+	     rel->r_offset,
 	     howto->name,
 	     sym_name);
 	  ret = FALSE;
@@ -5437,7 +5437,7 @@ spu_elf_size_sections (bfd * output_bfd,
 	      bfd_vma base_end;
 
 	      /* If there aren't any relocs, then there's nothing more
-	         to do.  */
+		 to do.  */
 	      if ((isec->flags & SEC_ALLOC) == 0
 		  || (isec->flags & SEC_RELOC) == 0
 		  || isec->reloc_count == 0)
@@ -5451,10 +5451,10 @@ spu_elf_size_sections (bfd * output_bfd,
 		return FALSE;
 
 	      /* 1 quadword can contain up to 4 R_SPU_ADDR32
-	         relocations.  They are stored in a single word by
-	         saving the upper 28 bits of the address and setting the
-	         lower 4 bits to a bit mask of the words that have the
-	         relocation.  BASE_END keeps track of the next quadword. */
+		 relocations.  They are stored in a single word by
+		 saving the upper 28 bits of the address and setting the
+		 lower 4 bits to a bit mask of the words that have the
+		 relocation.  BASE_END keeps track of the next quadword. */
 	      irela = internal_relocs;
 	      irelaend = irela + isec->reloc_count;
 	      base_end = 0;
@@ -5486,7 +5486,7 @@ spu_elf_size_sections (bfd * output_bfd,
 #define ELF_MACHINE_CODE	EM_SPU
 /* This matches the alignment need for DMA.  */
 #define ELF_MAXPAGESIZE		0x80
-#define elf_backend_rela_normal         1
+#define elf_backend_rela_normal		1
 #define elf_backend_can_gc_sections	1
 
 #define bfd_elf32_bfd_reloc_type_lookup		spu_elf_reloc_type_lookup
@@ -5504,7 +5504,7 @@ spu_elf_size_sections (bfd * output_bfd,
 #define elf_backend_additional_program_headers	spu_elf_additional_program_headers
 #define elf_backend_modify_segment_map		spu_elf_modify_segment_map
 #define elf_backend_modify_program_headers	spu_elf_modify_program_headers
-#define elf_backend_post_process_headers        spu_elf_post_process_headers
+#define elf_backend_post_process_headers	spu_elf_post_process_headers
 #define elf_backend_fake_sections		spu_elf_fake_sections
 #define elf_backend_special_sections		spu_elf_special_sections
 #define bfd_elf32_bfd_final_link		spu_elf_final_link
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-spu.h ./bfd/elf32-spu.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-spu.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-spu.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* SPU specific support for 32-bit ELF.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -15,8 +15,9 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 struct spu_elf_params
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-tic6x.c ./bfd/elf32-tic6x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-tic6x.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-tic6x.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,7 +1,7 @@
 /* 32-bit ELF support for TI C6X
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Contributed by Joseph Myers <joseph@codesourcery.com>
-   		  Bernd Schmidt  <bernds@codesourcery.com>
+		  Bernd Schmidt  <bernds@codesourcery.com>
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -1823,17 +1823,17 @@ elf32_tic6x_finish_dynamic_symbol (bfd *
       asection *srela;
 
       /* This symbol has an entry in the global offset table.
-         Set it up.  */
+	 Set it up.  */
 
       sgot = htab->elf.sgot;
       srela = htab->elf.srelgot;
       BFD_ASSERT (sgot != NULL && srela != NULL);
 
       /* If this is a -Bsymbolic link, and the symbol is defined
-         locally, we just want to emit a RELATIVE reloc.  Likewise if
-         the symbol was forced to be local because of a version file.
-         The entry in the global offset table will already have been
-         initialized in the relocate_section function.  */
+	 locally, we just want to emit a RELATIVE reloc.  Likewise if
+	 the symbol was forced to be local because of a version file.
+	 The entry in the global offset table will already have been
+	 initialized in the relocate_section function.  */
       if (bfd_link_pic (info)
 	  && (SYMBOLIC_BIND (info, h)
 	      || h->dynindx == -1 || h->forced_local) && h->def_regular)
@@ -1971,88 +1971,23 @@ elf32_tic6x_fake_sections (bfd *abfd ATT
   return TRUE;
 }
 
-/* Update the got entry reference counts for the section being removed.  */
+/* Find dynamic relocs for H that apply to read-only sections.  */
 
-static bfd_boolean
-elf32_tic6x_gc_sweep_hook (bfd *abfd,
-			   struct bfd_link_info *info,
-			   asection *sec,
-			   const Elf_Internal_Rela *relocs)
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
 {
-  struct elf32_tic6x_link_hash_table *htab;
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  htab = elf32_tic6x_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  symtab_hdr = &elf_symtab_hdr (abfd);
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
+  struct elf_dyn_relocs *p;
+  struct elf32_tic6x_link_hash_entry *eh
+    = (struct elf32_tic6x_link_hash_entry *) h;
 
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
+  for (p = eh->dyn_relocs; p != NULL; p = p->next)
     {
-      unsigned long r_symndx;
-      unsigned int r_type;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  struct elf32_tic6x_link_hash_entry *eh;
-	  struct elf_dyn_relocs **pp;
-	  struct elf_dyn_relocs *p;
-
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	  eh = (struct elf32_tic6x_link_hash_entry *) h;
-
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next)
-	    if (p->sec == sec)
-	      {
-		/* Everything must go for SEC.  */
-		*pp = p->next;
-		break;
-	      }
-	}
-
-      r_type = ELF32_R_TYPE (rel->r_info);
-
-      switch (r_type)
-	{
-	case R_C6000_SBR_GOT_U15_W:
-	case R_C6000_SBR_GOT_L16_W:
-	case R_C6000_SBR_GOT_H16_W:
-	case R_C6000_EHTYPE:
-	  if (h != NULL)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount -= 1;
-	    }
-	  else if (local_got_refcounts != NULL)
-	    {
-	      if (local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx] -= 1;
-	    }
-	  break;
+      asection *s = p->sec->output_section;
 
-	default:
-	  break;
-	}
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
     }
-
-  return TRUE;
+  return NULL;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -2074,7 +2009,7 @@ elf32_tic6x_adjust_dynamic_symbol (struc
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
 	      && (h->needs_plt
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic && h->ref_regular && !h->def_regular)));
 
   /* If this is a function, put it in the procedure linkage table.  We
@@ -2103,13 +2038,13 @@ elf32_tic6x_adjust_dynamic_symbol (struc
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
-      h->non_got_ref = h->u.weakdef->non_got_ref;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
+      h->non_got_ref = def->non_got_ref;
       return TRUE;
     }
 
@@ -2632,7 +2567,7 @@ elf32_tic6x_relocate_section (bfd *outpu
 	      if (h == NULL)
 		_bfd_error_handler
 		  /* xgettext:c-format */
-		  (_("%B, section %A: relocation %s with non-zero addend %d"
+		  (_("%B, section %A: relocation %s with non-zero addend %Ld"
 		     " against local symbol"),
 		   input_bfd,
 		   input_section,
@@ -2641,7 +2576,7 @@ elf32_tic6x_relocate_section (bfd *outpu
 	      else
 		_bfd_error_handler
 		  /* xgettext:c-format */
-		  (_("%B, section %A: relocation %s with non-zero addend %d"
+		  (_("%B, section %A: relocation %s with non-zero addend %Ld"
 		     " against symbol `%s'"),
 		   input_bfd,
 		   input_section,
@@ -2801,7 +2736,7 @@ elf32_tic6x_check_relocs (bfd *abfd, str
   for (rel = relocs; rel < rel_end; rel++)
     {
       unsigned int r_type;
-      unsigned long r_symndx;
+      unsigned int r_symndx;
       struct elf_link_hash_entry *h;
       Elf_Internal_Sym *isym;
 
@@ -2832,10 +2767,6 @@ elf32_tic6x_check_relocs (bfd *abfd, str
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (r_type)
@@ -3055,18 +2986,18 @@ elf32_tic6x_symbol_processing (bfd *abfd
     {
     case SHN_TIC6X_SCOMMON:
       if (tic6x_elf_scom_section.name == NULL)
-        {
-          /* Initialize the small common section.  */
-          tic6x_elf_scom_section.name = ".scommon";
-          tic6x_elf_scom_section.flags = SEC_IS_COMMON;
-          tic6x_elf_scom_section.output_section = &tic6x_elf_scom_section;
-          tic6x_elf_scom_section.symbol = &tic6x_elf_scom_symbol;
-          tic6x_elf_scom_section.symbol_ptr_ptr = &tic6x_elf_scom_symbol_ptr;
-          tic6x_elf_scom_symbol.name = ".scommon";
-          tic6x_elf_scom_symbol.flags = BSF_SECTION_SYM;
-          tic6x_elf_scom_symbol.section = &tic6x_elf_scom_section;
-          tic6x_elf_scom_symbol_ptr = &tic6x_elf_scom_symbol;
-        }
+	{
+	  /* Initialize the small common section.  */
+	  tic6x_elf_scom_section.name = ".scommon";
+	  tic6x_elf_scom_section.flags = SEC_IS_COMMON;
+	  tic6x_elf_scom_section.output_section = &tic6x_elf_scom_section;
+	  tic6x_elf_scom_section.symbol = &tic6x_elf_scom_symbol;
+	  tic6x_elf_scom_section.symbol_ptr_ptr = &tic6x_elf_scom_symbol_ptr;
+	  tic6x_elf_scom_symbol.name = ".scommon";
+	  tic6x_elf_scom_symbol.flags = BSF_SECTION_SYM;
+	  tic6x_elf_scom_symbol.section = &tic6x_elf_scom_section;
+	  tic6x_elf_scom_symbol_ptr = &tic6x_elf_scom_symbol;
+	}
       asym->section = &tic6x_elf_scom_section;
       asym->value = elfsym->internal_elf_sym.st_size;
       break;
@@ -3253,28 +3184,29 @@ elf32_tic6x_allocate_dynrelocs (struct e
   return TRUE;
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-elf32_tic6x_readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct elf32_tic6x_link_hash_entry *eh;
-  struct elf_dyn_relocs *p;
+  asection *sec;
 
-  eh = (struct elf32_tic6x_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection *s = p->sec->output_section;
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	{
-	  struct bfd_link_info *info = (struct bfd_link_info *) inf;
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
+    {
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-	  info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
-	  /* Not an error, just cut short the traversal.  */
-	  return FALSE;
-	}
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -3492,8 +3424,7 @@ elf32_tic6x_size_dynamic_sections (bfd *
 	  /* If any dynamic relocs apply to a read-only section,
 	     then we need a DT_TEXTREL entry.  */
 	  if ((info->flags & DF_TEXTREL) == 0)
-	    elf_link_hash_traverse (&htab->elf,
-				    elf32_tic6x_readonly_dynrelocs, info);
+	    elf_link_hash_traverse (&htab->elf, maybe_set_textrel, info);
 
 	  if ((info->flags & DF_TEXTREL) != 0)
 	    {
@@ -4040,7 +3971,7 @@ elf32_tic6x_insert_cantunwind_after (ase
 
      1. Regions without unwind data are marked with EXIDX_CANTUNWIND entries.
      2. Duplicate entries are merged together (EXIDX_CANTUNWIND, or unwind
-        codes which have been inlined into the index).
+	codes which have been inlined into the index).
 
    If MERGE_EXIDX_ENTRIES is false, duplicate entries are not merged.
 
@@ -4067,7 +3998,7 @@ elf32_tic6x_fix_exidx_coverage (asection
       asection *sec;
 
       for (sec = inp->sections; sec != NULL; sec = sec->next)
-        {
+	{
 	  struct bfd_elf_section_data *elf_sec = elf_section_data (sec);
 	  Elf_Internal_Shdr *hdr = &elf_sec->this_hdr;
 
@@ -4077,12 +4008,12 @@ elf32_tic6x_fix_exidx_coverage (asection
 	  if (elf_sec->linked_to)
 	    {
 	      Elf_Internal_Shdr *linked_hdr
-	        = &elf_section_data (elf_sec->linked_to)->this_hdr;
+		= &elf_section_data (elf_sec->linked_to)->this_hdr;
 	      struct _tic6x_elf_section_data *linked_sec_tic6x_data
-	        = get_tic6x_elf_section_data (linked_hdr->bfd_section);
+		= get_tic6x_elf_section_data (linked_hdr->bfd_section);
 
 	      if (linked_sec_tic6x_data == NULL)
-	        continue;
+		continue;
 
 	      /* Link this .c6xabi.exidx section back from the
 		 text section it describes.  */
@@ -4100,7 +4031,7 @@ elf32_tic6x_fix_exidx_coverage (asection
       asection *sec = text_section_order[i];
       asection *exidx_sec;
       struct _tic6x_elf_section_data *tic6x_data
-       	= get_tic6x_elf_section_data (sec);
+	= get_tic6x_elf_section_data (sec);
       struct _tic6x_elf_section_data *exidx_data;
       bfd_byte *contents = NULL;
       int deleted_exidx_bytes = 0;
@@ -4111,7 +4042,7 @@ elf32_tic6x_fix_exidx_coverage (asection
       bfd *ibfd;
 
       if (tic6x_data == NULL)
-        continue;
+	continue;
 
       exidx_sec = tic6x_data->u.text.tic6x_exidx_sec;
       if (exidx_sec == NULL)
@@ -4135,11 +4066,11 @@ elf32_tic6x_fix_exidx_coverage (asection
 
       hdr = &elf_section_data (exidx_sec)->this_hdr;
       if (hdr->sh_type != SHT_C6000_UNWIND)
-        continue;
+	continue;
 
       exidx_data = get_tic6x_elf_section_data (exidx_sec);
       if (exidx_data == NULL)
-        continue;
+	continue;
 
       ibfd = exidx_sec->owner;
 
@@ -4190,7 +4121,7 @@ elf32_tic6x_fix_exidx_coverage (asection
 
       /* Free contents if we allocated it ourselves.  */
       if (contents != hdr->contents)
-        free (contents);
+	free (contents);
 
       /* Record edits to be applied later (in elf32_tic6x_write_section).  */
       exidx_data->u.exidx.unwind_edit_list = unwind_edit_head;
@@ -4389,13 +4320,12 @@ elf32_tic6x_write_section (bfd *output_b
 #define elf_backend_rela_normal		1
 #define elf_backend_got_header_size     8
 #define elf_backend_fake_sections       elf32_tic6x_fake_sections
-#define elf_backend_gc_sweep_hook	elf32_tic6x_gc_sweep_hook
 #define elf_backend_gc_mark_extra_sections elf32_tic6x_gc_mark_extra_sections
 #define elf_backend_create_dynamic_sections \
   elf32_tic6x_create_dynamic_sections
 #define elf_backend_adjust_dynamic_symbol \
   elf32_tic6x_adjust_dynamic_symbol
-#define elf_backend_check_relocs        elf32_tic6x_check_relocs
+#define elf_backend_check_relocs	elf32_tic6x_check_relocs
 #define elf_backend_add_symbol_hook     elf32_tic6x_add_symbol_hook
 #define elf_backend_symbol_processing   elf32_tic6x_symbol_processing
 #define elf_backend_link_output_symbol_hook \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-tic6x.h ./bfd/elf32-tic6x.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-tic6x.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-tic6x.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* 32-bit ELF support for TI C6X
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-tilegx.c ./bfd/elf32-tilegx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-tilegx.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-tilegx.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* TILE-Gx-specific support for 32-bit ELF.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -87,14 +87,14 @@ tilegx_elf_grok_psinfo (bfd *abfd, Elf_I
 #define ELF_MAXPAGESIZE		0x10000
 #define ELF_COMMONPAGESIZE	0x10000
 
-#define TARGET_BIG_SYM          tilegx_elf32_be_vec
-#define TARGET_BIG_NAME         "elf32-tilegx-be"
-#define TARGET_LITTLE_SYM       tilegx_elf32_le_vec
-#define TARGET_LITTLE_NAME      "elf32-tilegx-le"
+#define TARGET_BIG_SYM		tilegx_elf32_be_vec
+#define TARGET_BIG_NAME		"elf32-tilegx-be"
+#define TARGET_LITTLE_SYM	tilegx_elf32_le_vec
+#define TARGET_LITTLE_NAME	"elf32-tilegx-le"
 
 #define elf_backend_reloc_type_class	     tilegx_reloc_type_class
 
-#define bfd_elf32_bfd_reloc_name_lookup      tilegx_reloc_name_lookup
+#define bfd_elf32_bfd_reloc_name_lookup	     tilegx_reloc_name_lookup
 #define bfd_elf32_bfd_link_hash_table_create tilegx_elf_link_hash_table_create
 #define bfd_elf32_bfd_reloc_type_lookup	     tilegx_reloc_type_lookup
 #define bfd_elf32_bfd_merge_private_bfd_data \
@@ -110,12 +110,11 @@ tilegx_elf_grok_psinfo (bfd *abfd, Elf_I
 #define elf_backend_finish_dynamic_symbol    tilegx_elf_finish_dynamic_symbol
 #define elf_backend_finish_dynamic_sections  tilegx_elf_finish_dynamic_sections
 #define elf_backend_gc_mark_hook	     tilegx_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook            tilegx_elf_gc_sweep_hook
 #define elf_backend_plt_sym_val		     tilegx_elf_plt_sym_val
-#define elf_info_to_howto_rel                NULL
-#define elf_info_to_howto                    tilegx_info_to_howto_rela
-#define elf_backend_grok_prstatus            tilegx_elf_grok_prstatus
-#define elf_backend_grok_psinfo              tilegx_elf_grok_psinfo
+#define elf_info_to_howto_rel		     NULL
+#define elf_info_to_howto		     tilegx_info_to_howto_rela
+#define elf_backend_grok_prstatus	     tilegx_elf_grok_prstatus
+#define elf_backend_grok_psinfo		     tilegx_elf_grok_psinfo
 #define elf_backend_additional_program_headers tilegx_additional_program_headers
 
 #define elf_backend_init_index_section	_bfd_elf_init_1_index_section
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-tilegx.h ./bfd/elf32-tilegx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-tilegx.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-tilegx.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* TILE-Gx-specific support for 32-bit ELF.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -23,16 +23,16 @@
 
 /* This file contains sizes and offsets of Linux data structures.  */
 
-#define TILEGX_PRSTATUS_SIZEOF           592
+#define TILEGX_PRSTATUS_SIZEOF		 592
 #define TILEGX_PRSTATUS_OFFSET_PR_CURSIG  12
-#define TILEGX_PRSTATUS_OFFSET_PR_PID     24
-#define TILEGX_PRSTATUS_OFFSET_PR_REG     72
+#define TILEGX_PRSTATUS_OFFSET_PR_PID	  24
+#define TILEGX_PRSTATUS_OFFSET_PR_REG	  72
 
-#define TILEGX_PRPSINFO_SIZEOF           128
-#define TILEGX_PRPSINFO_OFFSET_PR_FNAME   32
+#define TILEGX_PRPSINFO_SIZEOF		 128
+#define TILEGX_PRPSINFO_OFFSET_PR_FNAME	  32
 #define TILEGX_PRPSINFO_OFFSET_PR_PSARGS  48
-#define ELF_PR_PSARGS_SIZE                80
+#define ELF_PR_PSARGS_SIZE		  80
 
-#define TILEGX_GREGSET_T_SIZE            512
+#define TILEGX_GREGSET_T_SIZE		 512
 
 #endif /* _ELF32_TILEGX_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-tilepro.c ./bfd/elf32-tilepro.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-tilepro.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-tilepro.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* TILEPro-specific support for 32-bit ELF.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -264,7 +264,7 @@ static reloc_howto_type tilepro_elf_howt
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 -1,			/* dst_mask */
-	 TRUE), 		/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   HOWTO (R_TILEPRO_JOFFLONG_X1_PLT, /* type */
 	 TILEPRO_LOG2_BUNDLE_ALIGNMENT_IN_BYTES, /* rightshift */
@@ -278,17 +278,17 @@ static reloc_howto_type tilepro_elf_howt
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 -1,			/* dst_mask */
-	 TRUE), 		/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
 #define TILEPRO_IMM_HOWTO(name, size, bitsize) \
   HOWTO (name, 0, size, bitsize, FALSE, 0, \
-         complain_overflow_signed, bfd_elf_generic_reloc, \
-         #name, FALSE, 0, -1, FALSE)
+	 complain_overflow_signed, bfd_elf_generic_reloc, \
+	 #name, FALSE, 0, -1, FALSE)
 
 #define TILEPRO_UIMM_HOWTO(name, size, bitsize) \
   HOWTO (name, 0, size, bitsize, FALSE, 0, \
-         complain_overflow_unsigned, bfd_elf_generic_reloc, \
-         #name, FALSE, 0, -1, FALSE)
+	 complain_overflow_unsigned, bfd_elf_generic_reloc, \
+	 #name, FALSE, 0, -1, FALSE)
 
   TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_X0,  0,  8),
   TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_Y0,  0,  8),
@@ -301,8 +301,8 @@ static reloc_howto_type tilepro_elf_howt
 
 #define TILEPRO_IMM16_HOWTO(name, rshift) \
   HOWTO (name, rshift, 1, 16, FALSE, 0, \
-         complain_overflow_dont, bfd_elf_generic_reloc, \
-         #name, FALSE, 0, 0xffff, FALSE)
+	 complain_overflow_dont, bfd_elf_generic_reloc, \
+	 #name, FALSE, 0, 0xffff, FALSE)
 
   TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X0_LO,  0),
   TILEPRO_IMM16_HOWTO (R_TILEPRO_IMM16_X1_LO,  0),
@@ -343,8 +343,8 @@ static reloc_howto_type tilepro_elf_howt
 
 #define TILEPRO_IMM16_HOWTO_PCREL(name, rshift) \
   HOWTO (name, rshift, 1, 16, TRUE, 0, \
-         complain_overflow_dont, bfd_elf_generic_reloc, \
-         #name, FALSE, 0, 0xffff, TRUE)
+	 complain_overflow_dont, bfd_elf_generic_reloc, \
+	 #name, FALSE, 0, 0xffff, TRUE)
 
   TILEPRO_IMM16_HOWTO_PCREL (R_TILEPRO_IMM16_X0_LO_PCREL,  0),
   TILEPRO_IMM16_HOWTO_PCREL (R_TILEPRO_IMM16_X1_LO_PCREL,  0),
@@ -393,7 +393,7 @@ static reloc_howto_type tilepro_elf_howt
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 -1,			/* dst_mask */
-	 TRUE), 		/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_X0_TLS_GD_ADD,  0,  8),
   TILEPRO_IMM_HOWTO(R_TILEPRO_IMM8_X1_TLS_GD_ADD,  0,  8),
@@ -477,14 +477,14 @@ static reloc_howto_type tilepro_elf_howt
 
   /* These are common with the Solaris TLS implementation. */
   HOWTO(R_TILEPRO_TLS_DTPMOD32, 0, 0, 0, FALSE, 0, complain_overflow_dont,
-        bfd_elf_generic_reloc, "R_TILEPRO_TLS_DTPMOD32",
-        FALSE, 0, 0, TRUE),
+	bfd_elf_generic_reloc, "R_TILEPRO_TLS_DTPMOD32",
+	FALSE, 0, 0, TRUE),
   HOWTO(R_TILEPRO_TLS_DTPOFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
-        bfd_elf_generic_reloc, "R_TILEPRO_TLS_DTPOFF32",
-        FALSE, 0, 0xFFFFFFFF, TRUE),
+	bfd_elf_generic_reloc, "R_TILEPRO_TLS_DTPOFF32",
+	FALSE, 0, 0xFFFFFFFF, TRUE),
   HOWTO(R_TILEPRO_TLS_TPOFF32, 0, 0, 0, FALSE, 0, complain_overflow_dont,
-        bfd_elf_generic_reloc, "R_TILEPRO_TLS_TPOFF32",
-        FALSE, 0, 0, TRUE),
+	bfd_elf_generic_reloc, "R_TILEPRO_TLS_TPOFF32",
+	FALSE, 0, 0, TRUE),
 
   HOWTO (R_TILEPRO_IMM16_X0_TLS_LE,/* type */
 	 0,			/* rightshift */
@@ -526,33 +526,33 @@ static reloc_howto_type tilepro_elf_howt
 {
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_TILEPRO_GNU_VTINHERIT, /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         NULL,                  /* special_function */
-         "R_TILEPRO_GNU_VTINHERIT", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 NULL,			/* special_function */
+	 "R_TILEPRO_GNU_VTINHERIT", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
-  HOWTO (R_TILEPRO_GNU_VTENTRY,     /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
-         "R_TILEPRO_GNU_VTENTRY",   /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_TILEPRO_GNU_VTENTRY,	    /* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 _bfd_elf_rel_vtable_reloc_fn,	/* special_function */
+	 "R_TILEPRO_GNU_VTENTRY",   /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
 };
 
@@ -561,8 +561,8 @@ static reloc_howto_type tilepro_elf_howt
 typedef struct tilepro_reloc_map
 {
   bfd_reloc_code_real_type  bfd_reloc_val;
-  unsigned int              tilepro_reloc_val;
-  reloc_howto_type *        table;
+  unsigned int		    tilepro_reloc_val;
+  reloc_howto_type *	    table;
 } reloc_map;
 
 static const reloc_map tilepro_reloc_map [] =
@@ -571,34 +571,34 @@ static const reloc_map tilepro_reloc_map
   { bfd, tilepro, tilepro_elf_howto_table },
 
   /* Standard relocations. */
-  TH_REMAP (BFD_RELOC_NONE,                    R_TILEPRO_NONE)
-  TH_REMAP (BFD_RELOC_32,                      R_TILEPRO_32)
-  TH_REMAP (BFD_RELOC_16,                      R_TILEPRO_16)
-  TH_REMAP (BFD_RELOC_8,                       R_TILEPRO_8)
-  TH_REMAP (BFD_RELOC_32_PCREL,                R_TILEPRO_32_PCREL)
-  TH_REMAP (BFD_RELOC_16_PCREL,                R_TILEPRO_16_PCREL)
-  TH_REMAP (BFD_RELOC_8_PCREL,                 R_TILEPRO_8_PCREL)
-  TH_REMAP (BFD_RELOC_LO16,                    R_TILEPRO_LO16)
-  TH_REMAP (BFD_RELOC_HI16,                    R_TILEPRO_HI16)
-  TH_REMAP (BFD_RELOC_HI16_S,                  R_TILEPRO_HA16)
+  TH_REMAP (BFD_RELOC_NONE,		       R_TILEPRO_NONE)
+  TH_REMAP (BFD_RELOC_32,		       R_TILEPRO_32)
+  TH_REMAP (BFD_RELOC_16,		       R_TILEPRO_16)
+  TH_REMAP (BFD_RELOC_8,		       R_TILEPRO_8)
+  TH_REMAP (BFD_RELOC_32_PCREL,		       R_TILEPRO_32_PCREL)
+  TH_REMAP (BFD_RELOC_16_PCREL,		       R_TILEPRO_16_PCREL)
+  TH_REMAP (BFD_RELOC_8_PCREL,		       R_TILEPRO_8_PCREL)
+  TH_REMAP (BFD_RELOC_LO16,		       R_TILEPRO_LO16)
+  TH_REMAP (BFD_RELOC_HI16,		       R_TILEPRO_HI16)
+  TH_REMAP (BFD_RELOC_HI16_S,		       R_TILEPRO_HA16)
 
   /* Custom relocations. */
-  TH_REMAP (BFD_RELOC_TILEPRO_COPY,            R_TILEPRO_COPY)
-  TH_REMAP (BFD_RELOC_TILEPRO_GLOB_DAT,        R_TILEPRO_GLOB_DAT)
-  TH_REMAP (BFD_RELOC_TILEPRO_JMP_SLOT,        R_TILEPRO_JMP_SLOT)
-  TH_REMAP (BFD_RELOC_TILEPRO_RELATIVE,        R_TILEPRO_RELATIVE)
-  TH_REMAP (BFD_RELOC_TILEPRO_BROFF_X1,        R_TILEPRO_BROFF_X1)
+  TH_REMAP (BFD_RELOC_TILEPRO_COPY,	       R_TILEPRO_COPY)
+  TH_REMAP (BFD_RELOC_TILEPRO_GLOB_DAT,	       R_TILEPRO_GLOB_DAT)
+  TH_REMAP (BFD_RELOC_TILEPRO_JMP_SLOT,	       R_TILEPRO_JMP_SLOT)
+  TH_REMAP (BFD_RELOC_TILEPRO_RELATIVE,	       R_TILEPRO_RELATIVE)
+  TH_REMAP (BFD_RELOC_TILEPRO_BROFF_X1,	       R_TILEPRO_BROFF_X1)
   TH_REMAP (BFD_RELOC_TILEPRO_JOFFLONG_X1,     R_TILEPRO_JOFFLONG_X1)
   TH_REMAP (BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT, R_TILEPRO_JOFFLONG_X1_PLT)
-  TH_REMAP (BFD_RELOC_TILEPRO_IMM8_X0,         R_TILEPRO_IMM8_X0)
-  TH_REMAP (BFD_RELOC_TILEPRO_IMM8_Y0,         R_TILEPRO_IMM8_Y0)
-  TH_REMAP (BFD_RELOC_TILEPRO_IMM8_X1,         R_TILEPRO_IMM8_X1)
-  TH_REMAP (BFD_RELOC_TILEPRO_IMM8_Y1,         R_TILEPRO_IMM8_Y1)
+  TH_REMAP (BFD_RELOC_TILEPRO_IMM8_X0,	       R_TILEPRO_IMM8_X0)
+  TH_REMAP (BFD_RELOC_TILEPRO_IMM8_Y0,	       R_TILEPRO_IMM8_Y0)
+  TH_REMAP (BFD_RELOC_TILEPRO_IMM8_X1,	       R_TILEPRO_IMM8_X1)
+  TH_REMAP (BFD_RELOC_TILEPRO_IMM8_Y1,	       R_TILEPRO_IMM8_Y1)
   TH_REMAP (BFD_RELOC_TILEPRO_DEST_IMM8_X1,    R_TILEPRO_DEST_IMM8_X1)
   TH_REMAP (BFD_RELOC_TILEPRO_MT_IMM15_X1,     R_TILEPRO_MT_IMM15_X1)
   TH_REMAP (BFD_RELOC_TILEPRO_MF_IMM15_X1,     R_TILEPRO_MF_IMM15_X1)
-  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0,        R_TILEPRO_IMM16_X0)
-  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1,        R_TILEPRO_IMM16_X1)
+  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0,	       R_TILEPRO_IMM16_X0)
+  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1,	       R_TILEPRO_IMM16_X1)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_LO,     R_TILEPRO_IMM16_X0_LO)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_LO,     R_TILEPRO_IMM16_X1_LO)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_HI,     R_TILEPRO_IMM16_X0_HI)
@@ -606,8 +606,8 @@ static const reloc_map tilepro_reloc_map
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_HA,     R_TILEPRO_IMM16_X0_HA)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_HA,     R_TILEPRO_IMM16_X1_HA)
 
-  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_PCREL,    R_TILEPRO_IMM16_X0_PCREL)
-  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_PCREL,    R_TILEPRO_IMM16_X1_PCREL)
+  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_PCREL,	 R_TILEPRO_IMM16_X0_PCREL)
+  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_PCREL,	 R_TILEPRO_IMM16_X1_PCREL)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL, R_TILEPRO_IMM16_X0_LO_PCREL)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL, R_TILEPRO_IMM16_X1_LO_PCREL)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL, R_TILEPRO_IMM16_X0_HI_PCREL)
@@ -625,23 +625,23 @@ static const reloc_map tilepro_reloc_map
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA, R_TILEPRO_IMM16_X1_GOT_HA)
 
   TH_REMAP (BFD_RELOC_TILEPRO_MMSTART_X0,  R_TILEPRO_MMSTART_X0)
-  TH_REMAP (BFD_RELOC_TILEPRO_MMEND_X0,    R_TILEPRO_MMEND_X0)
+  TH_REMAP (BFD_RELOC_TILEPRO_MMEND_X0,	   R_TILEPRO_MMEND_X0)
   TH_REMAP (BFD_RELOC_TILEPRO_MMSTART_X1,  R_TILEPRO_MMSTART_X1)
-  TH_REMAP (BFD_RELOC_TILEPRO_MMEND_X1,    R_TILEPRO_MMEND_X1)
-  TH_REMAP (BFD_RELOC_TILEPRO_SHAMT_X0,    R_TILEPRO_SHAMT_X0)
-  TH_REMAP (BFD_RELOC_TILEPRO_SHAMT_X1,    R_TILEPRO_SHAMT_X1)
-  TH_REMAP (BFD_RELOC_TILEPRO_SHAMT_Y0,    R_TILEPRO_SHAMT_Y0)
-  TH_REMAP (BFD_RELOC_TILEPRO_SHAMT_Y1,    R_TILEPRO_SHAMT_Y1)
+  TH_REMAP (BFD_RELOC_TILEPRO_MMEND_X1,	   R_TILEPRO_MMEND_X1)
+  TH_REMAP (BFD_RELOC_TILEPRO_SHAMT_X0,	   R_TILEPRO_SHAMT_X0)
+  TH_REMAP (BFD_RELOC_TILEPRO_SHAMT_X1,	   R_TILEPRO_SHAMT_X1)
+  TH_REMAP (BFD_RELOC_TILEPRO_SHAMT_Y0,	   R_TILEPRO_SHAMT_Y0)
+  TH_REMAP (BFD_RELOC_TILEPRO_SHAMT_Y1,	   R_TILEPRO_SHAMT_Y1)
 
-  TH_REMAP (BFD_RELOC_TILEPRO_TLS_GD_CALL,        R_TILEPRO_TLS_GD_CALL)
+  TH_REMAP (BFD_RELOC_TILEPRO_TLS_GD_CALL,	  R_TILEPRO_TLS_GD_CALL)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD, R_TILEPRO_IMM8_X0_TLS_GD_ADD)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD, R_TILEPRO_IMM8_X1_TLS_GD_ADD)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD, R_TILEPRO_IMM8_Y0_TLS_GD_ADD)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD, R_TILEPRO_IMM8_Y1_TLS_GD_ADD)
-  TH_REMAP (BFD_RELOC_TILEPRO_TLS_IE_LOAD,        R_TILEPRO_TLS_IE_LOAD)
+  TH_REMAP (BFD_RELOC_TILEPRO_TLS_IE_LOAD,	  R_TILEPRO_TLS_IE_LOAD)
 
-  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD,    R_TILEPRO_IMM16_X0_TLS_GD)
-  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD,    R_TILEPRO_IMM16_X1_TLS_GD)
+  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD,	  R_TILEPRO_IMM16_X0_TLS_GD)
+  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD,	  R_TILEPRO_IMM16_X1_TLS_GD)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO, R_TILEPRO_IMM16_X0_TLS_GD_LO)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO, R_TILEPRO_IMM16_X1_TLS_GD_LO)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI, R_TILEPRO_IMM16_X0_TLS_GD_HI)
@@ -649,8 +649,8 @@ static const reloc_map tilepro_reloc_map
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA, R_TILEPRO_IMM16_X0_TLS_GD_HA)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA, R_TILEPRO_IMM16_X1_TLS_GD_HA)
 
-  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE,    R_TILEPRO_IMM16_X0_TLS_IE)
-  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE,    R_TILEPRO_IMM16_X1_TLS_IE)
+  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE,	  R_TILEPRO_IMM16_X0_TLS_IE)
+  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE,	  R_TILEPRO_IMM16_X1_TLS_IE)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO, R_TILEPRO_IMM16_X0_TLS_IE_LO)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO, R_TILEPRO_IMM16_X1_TLS_IE_LO)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI, R_TILEPRO_IMM16_X0_TLS_IE_HI)
@@ -662,8 +662,8 @@ static const reloc_map tilepro_reloc_map
   TH_REMAP (BFD_RELOC_TILEPRO_TLS_DTPOFF32, R_TILEPRO_TLS_DTPOFF32)
   TH_REMAP (BFD_RELOC_TILEPRO_TLS_TPOFF32,  R_TILEPRO_TLS_TPOFF32)
 
-  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE,    R_TILEPRO_IMM16_X0_TLS_LE)
-  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE,    R_TILEPRO_IMM16_X1_TLS_LE)
+  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE,	  R_TILEPRO_IMM16_X0_TLS_LE)
+  TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE,	  R_TILEPRO_IMM16_X1_TLS_LE)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO, R_TILEPRO_IMM16_X0_TLS_LE_LO)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO, R_TILEPRO_IMM16_X1_TLS_LE_LO)
   TH_REMAP (BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI, R_TILEPRO_IMM16_X0_TLS_LE_HI)
@@ -679,26 +679,6 @@ static const reloc_map tilepro_reloc_map
 
 
 
-/* The TILEPro linker needs to keep track of the number of relocs that it
-   decides to copy as dynamic relocs in check_relocs for each symbol.
-   This is so that it can later discard them if they are found to be
-   unnecessary.  We store the information in a field extending the
-   regular ELF linker hash table.  */
-
-struct tilepro_elf_dyn_relocs
-{
-  struct tilepro_elf_dyn_relocs *next;
-
-  /* The input section of the reloc.  */
-  asection *sec;
-
-  /* Total number of relocs copied for the input section.  */
-  bfd_size_type count;
-
-  /* Number of pc-relative relocs copied for the input section.  */
-  bfd_size_type pc_count;
-};
-
 /* TILEPRO ELF linker hash entry.  */
 
 struct tilepro_elf_link_hash_entry
@@ -706,7 +686,7 @@ struct tilepro_elf_link_hash_entry
   struct elf_link_hash_entry elf;
 
   /* Track dynamic relocs copied for this symbol.  */
-  struct tilepro_elf_dyn_relocs *dyn_relocs;
+  struct elf_dyn_relocs *dyn_relocs;
 
 #define GOT_UNKNOWN     0
 #define GOT_NORMAL      1
@@ -766,7 +746,7 @@ struct tilepro_elf_link_hash_table
 
 static reloc_howto_type *
 tilepro_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED,
-                           bfd_reloc_code_real_type code)
+			   bfd_reloc_code_real_type code)
 {
   unsigned int i;
 
@@ -792,10 +772,10 @@ tilepro_reloc_name_lookup (bfd *abfd ATT
 
   for (i = 0;
        i < (sizeof (tilepro_elf_howto_table)
-            / sizeof (tilepro_elf_howto_table[0]));
+	    / sizeof (tilepro_elf_howto_table[0]));
        i++)
     if (tilepro_elf_howto_table[i].name != NULL
-        && strcasecmp (tilepro_elf_howto_table[i].name, r_name) == 0)
+	&& strcasecmp (tilepro_elf_howto_table[i].name, r_name) == 0)
       return &tilepro_elf_howto_table[i];
 
   return NULL;
@@ -805,8 +785,8 @@ tilepro_reloc_name_lookup (bfd *abfd ATT
 
 static void
 tilepro_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED,
-                            arelent * cache_ptr,
-                            Elf_Internal_Rela * dst)
+			    arelent * cache_ptr,
+			    Elf_Internal_Rela * dst)
 {
   unsigned int r_type = ELF32_R_TYPE (dst->r_info);
 
@@ -1002,18 +982,18 @@ tilepro_elf_append_rela_32 (bfd *abfd, a
 /* The procedure linkage table starts with the following header:
 
    {
-    rli     r29, r29, 16
+    rli	    r29, r29, 16
     lwadd   r28, r27, 4
    }
-    lw      r27, r27
+    lw	    r27, r27
    {
-    info    10            ## SP not offset, return PC in LR
-    jr      r27
+    info    10		  ## SP not offset, return PC in LR
+    jr	    r27
    }
 
    Subsequent entries are the following, jumping to the header at the end:
 
-   lnk     r28
+   lnk	   r28
 1:
    {
     auli    r28, r28, <_GLOBAL_OFFSET_TABLE_ - 1b + MY_GOT_OFFSET>
@@ -1025,11 +1005,11 @@ tilepro_elf_append_rela_32 (bfd *abfd, a
    }
    {
     auli    r29, zero, MY_PLT_INDEX
-    lw      r28, r28
+    lw	    r28, r28
    }
    {
-    info    10            ## SP not offset, return PC in LR
-    jr      r28
+    info    10		  ## SP not offset, return PC in LR
+    jr	    r28
    }
 
    We initially store MY_PLT_INDEX in the high bits so that we can use the all
@@ -1175,8 +1155,8 @@ link_hash_newfunc (struct bfd_hash_entry
   if (entry == NULL)
     {
       entry =
-        bfd_hash_allocate (table,
-                           sizeof (struct tilepro_elf_link_hash_entry));
+	bfd_hash_allocate (table,
+			   sizeof (struct tilepro_elf_link_hash_entry));
       if (entry == NULL)
 	return entry;
     }
@@ -1313,14 +1293,14 @@ tilepro_elf_copy_indirect_symbol (struct
     {
       if (edir->dyn_relocs != NULL)
 	{
-	  struct tilepro_elf_dyn_relocs **pp;
-	  struct tilepro_elf_dyn_relocs *p;
+	  struct elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs *p;
 
 	  /* Add reloc counts against the indirect sym to the direct sym
 	     list.  Merge any entries against the same section.  */
 	  for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
 	    {
-	      struct tilepro_elf_dyn_relocs *q;
+	      struct elf_dyn_relocs *q;
 
 	      for (q = edir->dyn_relocs; q != NULL; q = q->next)
 		if (q->sec == p->sec)
@@ -1433,7 +1413,7 @@ static int
 tilepro_elf_tls_transition (struct bfd_link_info *info, int r_type,
 			    int is_local)
 {
-  if (bfd_link_pic (info))
+  if (!bfd_link_executable (info))
     return r_type;
 
   if (is_local)
@@ -1478,7 +1458,7 @@ tilepro_elf_check_relocs (bfd *abfd, str
   for (rel = relocs; rel < rel_end; rel++)
     {
       unsigned int r_type;
-      unsigned long r_symndx;
+      unsigned int r_symndx;
       struct elf_link_hash_entry *h;
       int tls_type;
 
@@ -1501,67 +1481,63 @@ tilepro_elf_check_relocs (bfd *abfd, str
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       r_type = tilepro_elf_tls_transition (info, r_type, h == NULL);
       switch (r_type)
 	{
-        case R_TILEPRO_IMM16_X0_TLS_LE:
-        case R_TILEPRO_IMM16_X1_TLS_LE:
-        case R_TILEPRO_IMM16_X0_TLS_LE_LO:
-        case R_TILEPRO_IMM16_X1_TLS_LE_LO:
-        case R_TILEPRO_IMM16_X0_TLS_LE_HI:
-        case R_TILEPRO_IMM16_X1_TLS_LE_HI:
-        case R_TILEPRO_IMM16_X0_TLS_LE_HA:
-        case R_TILEPRO_IMM16_X1_TLS_LE_HA:
-	  if (bfd_link_pic (info))
+	case R_TILEPRO_IMM16_X0_TLS_LE:
+	case R_TILEPRO_IMM16_X1_TLS_LE:
+	case R_TILEPRO_IMM16_X0_TLS_LE_LO:
+	case R_TILEPRO_IMM16_X1_TLS_LE_LO:
+	case R_TILEPRO_IMM16_X0_TLS_LE_HI:
+	case R_TILEPRO_IMM16_X1_TLS_LE_HI:
+	case R_TILEPRO_IMM16_X0_TLS_LE_HA:
+	case R_TILEPRO_IMM16_X1_TLS_LE_HA:
+	  if (!bfd_link_executable (info))
 	    goto r_tilepro_plt32;
 	  break;
 
-        case R_TILEPRO_IMM16_X0_TLS_GD:
-        case R_TILEPRO_IMM16_X1_TLS_GD:
-        case R_TILEPRO_IMM16_X0_TLS_GD_LO:
-        case R_TILEPRO_IMM16_X1_TLS_GD_LO:
-        case R_TILEPRO_IMM16_X0_TLS_GD_HI:
-        case R_TILEPRO_IMM16_X1_TLS_GD_HI:
-        case R_TILEPRO_IMM16_X0_TLS_GD_HA:
-        case R_TILEPRO_IMM16_X1_TLS_GD_HA:
+	case R_TILEPRO_IMM16_X0_TLS_GD:
+	case R_TILEPRO_IMM16_X1_TLS_GD:
+	case R_TILEPRO_IMM16_X0_TLS_GD_LO:
+	case R_TILEPRO_IMM16_X1_TLS_GD_LO:
+	case R_TILEPRO_IMM16_X0_TLS_GD_HI:
+	case R_TILEPRO_IMM16_X1_TLS_GD_HI:
+	case R_TILEPRO_IMM16_X0_TLS_GD_HA:
+	case R_TILEPRO_IMM16_X1_TLS_GD_HA:
 	  BFD_ASSERT (bfd_link_pic (info));
 	  tls_type = GOT_TLS_GD;
-          goto have_got_reference;
+	  goto have_got_reference;
 
-        case R_TILEPRO_IMM16_X0_TLS_IE:
-        case R_TILEPRO_IMM16_X1_TLS_IE:
-        case R_TILEPRO_IMM16_X0_TLS_IE_LO:
-        case R_TILEPRO_IMM16_X1_TLS_IE_LO:
-        case R_TILEPRO_IMM16_X0_TLS_IE_HI:
-        case R_TILEPRO_IMM16_X1_TLS_IE_HI:
-        case R_TILEPRO_IMM16_X0_TLS_IE_HA:
-        case R_TILEPRO_IMM16_X1_TLS_IE_HA:
-          tls_type = GOT_TLS_IE;
-          if (bfd_link_pic (info))
-            info->flags |= DF_STATIC_TLS;
-          goto have_got_reference;
-
-        case R_TILEPRO_IMM16_X0_GOT:
-        case R_TILEPRO_IMM16_X1_GOT:
-        case R_TILEPRO_IMM16_X0_GOT_LO:
-        case R_TILEPRO_IMM16_X1_GOT_LO:
-        case R_TILEPRO_IMM16_X0_GOT_HI:
-        case R_TILEPRO_IMM16_X1_GOT_HI:
-        case R_TILEPRO_IMM16_X0_GOT_HA:
-        case R_TILEPRO_IMM16_X1_GOT_HA:
-           tls_type = GOT_NORMAL;
-           /* Fall Through */
+	case R_TILEPRO_IMM16_X0_TLS_IE:
+	case R_TILEPRO_IMM16_X1_TLS_IE:
+	case R_TILEPRO_IMM16_X0_TLS_IE_LO:
+	case R_TILEPRO_IMM16_X1_TLS_IE_LO:
+	case R_TILEPRO_IMM16_X0_TLS_IE_HI:
+	case R_TILEPRO_IMM16_X1_TLS_IE_HI:
+	case R_TILEPRO_IMM16_X0_TLS_IE_HA:
+	case R_TILEPRO_IMM16_X1_TLS_IE_HA:
+	  tls_type = GOT_TLS_IE;
+	  if (!bfd_link_executable (info))
+	    info->flags |= DF_STATIC_TLS;
+	  goto have_got_reference;
+
+	case R_TILEPRO_IMM16_X0_GOT:
+	case R_TILEPRO_IMM16_X1_GOT:
+	case R_TILEPRO_IMM16_X0_GOT_LO:
+	case R_TILEPRO_IMM16_X1_GOT_LO:
+	case R_TILEPRO_IMM16_X0_GOT_HI:
+	case R_TILEPRO_IMM16_X1_GOT_HI:
+	case R_TILEPRO_IMM16_X0_GOT_HA:
+	case R_TILEPRO_IMM16_X1_GOT_HA:
+	   tls_type = GOT_NORMAL;
+	   /* Fall Through */
 
-        have_got_reference:
+	have_got_reference:
 	  /* This symbol requires a global offset table entry.  */
 	  {
-            int old_tls_type;
+	    int old_tls_type;
 
 	    if (h != NULL)
 	      {
@@ -1629,7 +1605,7 @@ tilepro_elf_check_relocs (bfd *abfd, str
 	  break;
 
 	case R_TILEPRO_TLS_GD_CALL:
-	  if (bfd_link_pic (info))
+	  if (!bfd_link_executable (info))
 	    {
 	      /* These are basically R_TILEPRO_JOFFLONG_X1_PLT relocs
 		 against __tls_get_addr.  */
@@ -1646,7 +1622,7 @@ tilepro_elf_check_relocs (bfd *abfd, str
 	    break;
 	  /* Fall through */
 
-        case R_TILEPRO_JOFFLONG_X1_PLT:
+	case R_TILEPRO_JOFFLONG_X1_PLT:
 	  /* This symbol requires a procedure linkage table entry.  We
 	     actually build the entry in adjust_dynamic_symbol,
 	     because this might be a case of linking PIC code without
@@ -1654,23 +1630,23 @@ tilepro_elf_check_relocs (bfd *abfd, str
 	     need to generate a procedure linkage table after all.  */
 
 	  if (h != NULL)
-            {
-              h->needs_plt = 1;
-              h->plt.refcount += 1;
-            }
+	    {
+	      h->needs_plt = 1;
+	      h->plt.refcount += 1;
+	    }
 	  break;
 
-        case R_TILEPRO_32_PCREL:
-        case R_TILEPRO_16_PCREL:
-        case R_TILEPRO_8_PCREL:
-        case R_TILEPRO_IMM16_X0_PCREL:
-        case R_TILEPRO_IMM16_X1_PCREL:
-        case R_TILEPRO_IMM16_X0_LO_PCREL:
-        case R_TILEPRO_IMM16_X1_LO_PCREL:
-        case R_TILEPRO_IMM16_X0_HI_PCREL:
-        case R_TILEPRO_IMM16_X1_HI_PCREL:
-        case R_TILEPRO_IMM16_X0_HA_PCREL:
-        case R_TILEPRO_IMM16_X1_HA_PCREL:
+	case R_TILEPRO_32_PCREL:
+	case R_TILEPRO_16_PCREL:
+	case R_TILEPRO_8_PCREL:
+	case R_TILEPRO_IMM16_X0_PCREL:
+	case R_TILEPRO_IMM16_X1_PCREL:
+	case R_TILEPRO_IMM16_X0_LO_PCREL:
+	case R_TILEPRO_IMM16_X1_LO_PCREL:
+	case R_TILEPRO_IMM16_X0_HI_PCREL:
+	case R_TILEPRO_IMM16_X1_HI_PCREL:
+	case R_TILEPRO_IMM16_X0_HA_PCREL:
+	case R_TILEPRO_IMM16_X1_HA_PCREL:
 	  if (h != NULL)
 	    h->non_got_ref = 1;
 
@@ -1679,43 +1655,43 @@ tilepro_elf_check_relocs (bfd *abfd, str
 	    break;
 	  /* Fall through.  */
 
-        case R_TILEPRO_32:
-        case R_TILEPRO_16:
-        case R_TILEPRO_8:
-        case R_TILEPRO_LO16:
-        case R_TILEPRO_HI16:
-        case R_TILEPRO_HA16:
-        case R_TILEPRO_COPY:
-        case R_TILEPRO_GLOB_DAT:
-        case R_TILEPRO_JMP_SLOT:
-        case R_TILEPRO_RELATIVE:
-        case R_TILEPRO_BROFF_X1:
-        case R_TILEPRO_JOFFLONG_X1:
-        case R_TILEPRO_IMM8_X0:
-        case R_TILEPRO_IMM8_Y0:
-        case R_TILEPRO_IMM8_X1:
-        case R_TILEPRO_IMM8_Y1:
-        case R_TILEPRO_DEST_IMM8_X1:
-        case R_TILEPRO_MT_IMM15_X1:
-        case R_TILEPRO_MF_IMM15_X1:
-        case R_TILEPRO_IMM16_X0:
-        case R_TILEPRO_IMM16_X1:
-        case R_TILEPRO_IMM16_X0_LO:
-        case R_TILEPRO_IMM16_X1_LO:
-        case R_TILEPRO_IMM16_X0_HI:
-        case R_TILEPRO_IMM16_X1_HI:
-        case R_TILEPRO_IMM16_X0_HA:
-        case R_TILEPRO_IMM16_X1_HA:
-        case R_TILEPRO_MMSTART_X0:
-        case R_TILEPRO_MMEND_X0:
-        case R_TILEPRO_MMSTART_X1:
-        case R_TILEPRO_MMEND_X1:
-        case R_TILEPRO_SHAMT_X0:
-        case R_TILEPRO_SHAMT_X1:
-        case R_TILEPRO_SHAMT_Y0:
-        case R_TILEPRO_SHAMT_Y1:
+	case R_TILEPRO_32:
+	case R_TILEPRO_16:
+	case R_TILEPRO_8:
+	case R_TILEPRO_LO16:
+	case R_TILEPRO_HI16:
+	case R_TILEPRO_HA16:
+	case R_TILEPRO_COPY:
+	case R_TILEPRO_GLOB_DAT:
+	case R_TILEPRO_JMP_SLOT:
+	case R_TILEPRO_RELATIVE:
+	case R_TILEPRO_BROFF_X1:
+	case R_TILEPRO_JOFFLONG_X1:
+	case R_TILEPRO_IMM8_X0:
+	case R_TILEPRO_IMM8_Y0:
+	case R_TILEPRO_IMM8_X1:
+	case R_TILEPRO_IMM8_Y1:
+	case R_TILEPRO_DEST_IMM8_X1:
+	case R_TILEPRO_MT_IMM15_X1:
+	case R_TILEPRO_MF_IMM15_X1:
+	case R_TILEPRO_IMM16_X0:
+	case R_TILEPRO_IMM16_X1:
+	case R_TILEPRO_IMM16_X0_LO:
+	case R_TILEPRO_IMM16_X1_LO:
+	case R_TILEPRO_IMM16_X0_HI:
+	case R_TILEPRO_IMM16_X1_HI:
+	case R_TILEPRO_IMM16_X0_HA:
+	case R_TILEPRO_IMM16_X1_HA:
+	case R_TILEPRO_MMSTART_X0:
+	case R_TILEPRO_MMEND_X0:
+	case R_TILEPRO_MMSTART_X1:
+	case R_TILEPRO_MMEND_X1:
+	case R_TILEPRO_SHAMT_X0:
+	case R_TILEPRO_SHAMT_X1:
+	case R_TILEPRO_SHAMT_Y0:
+	case R_TILEPRO_SHAMT_Y1:
 	  if (h != NULL)
-              h->non_got_ref = 1;
+	      h->non_got_ref = 1;
 
 	r_tilepro_plt32:
 	  if (h != NULL && !bfd_link_pic (info))
@@ -1723,7 +1699,7 @@ tilepro_elf_check_relocs (bfd *abfd, str
 	      /* We may need a .plt entry if the function this reloc
 		 refers to is in a shared lib.  */
 	      h->plt.refcount += 1;
-            }
+	    }
 
 	  /* If we are creating a shared library, and this is a reloc
 	     against a global symbol, or a non PC relative reloc
@@ -1759,8 +1735,8 @@ tilepro_elf_check_relocs (bfd *abfd, str
 		  && (h->root.type == bfd_link_hash_defweak
 		      || !h->def_regular)))
 	    {
-	      struct tilepro_elf_dyn_relocs *p;
-	      struct tilepro_elf_dyn_relocs **head;
+	      struct elf_dyn_relocs *p;
+	      struct elf_dyn_relocs **head;
 
 	      /* When creating a shared object, we must copy these
 		 relocs into the output file.  We create a reloc
@@ -1778,7 +1754,7 @@ tilepro_elf_check_relocs (bfd *abfd, str
 		 relocations we need for this symbol.  */
 	      if (h != NULL)
 		head =
-                  &((struct tilepro_elf_link_hash_entry *) h)->dyn_relocs;
+		  &((struct tilepro_elf_link_hash_entry *) h)->dyn_relocs;
 	      else
 		{
 		  /* Track dynamic relocs needed for local syms too.
@@ -1799,14 +1775,14 @@ tilepro_elf_check_relocs (bfd *abfd, str
 		    s = sec;
 
 		  vpp = &elf_section_data (s)->local_dynrel;
-		  head = (struct tilepro_elf_dyn_relocs **) vpp;
+		  head = (struct elf_dyn_relocs **) vpp;
 		}
 
 	      p = *head;
 	      if (p == NULL || p->sec != sec)
 		{
 		  bfd_size_type amt = sizeof *p;
-		  p = ((struct tilepro_elf_dyn_relocs *)
+		  p = ((struct elf_dyn_relocs *)
 		       bfd_alloc (htab->elf.dynobj, amt));
 		  if (p == NULL)
 		    return FALSE;
@@ -1845,10 +1821,10 @@ tilepro_elf_check_relocs (bfd *abfd, str
 
 static asection *
 tilepro_elf_gc_mark_hook (asection *sec,
-                          struct bfd_link_info *info,
-                          Elf_Internal_Rela *rel,
-                          struct elf_link_hash_entry *h,
-                          Elf_Internal_Sym *sym)
+			  struct bfd_link_info *info,
+			  Elf_Internal_Rela *rel,
+			  struct elf_link_hash_entry *h,
+			  Elf_Internal_Sym *sym)
 {
   if (h != NULL)
     {
@@ -1864,6 +1840,8 @@ tilepro_elf_gc_mark_hook (asection *sec,
      dealing with TLS optimization, ought to be !bfd_link_executable (info).  */
   if (bfd_link_pic (info))
     {
+      struct bfd_link_hash_entry *bh;
+
       switch (ELF32_R_TYPE (rel->r_info))
 	{
 	case R_TILEPRO_TLS_GD_CALL:
@@ -1872,12 +1850,18 @@ tilepro_elf_gc_mark_hook (asection *sec,
 	     on this reloc, so the real symbol and section will be
 	     gc marked when processing the other reloc.  That lets
 	     us handle __tls_get_addr here.  */
-	  h = elf_link_hash_lookup (elf_hash_table (info), "__tls_get_addr",
-				    FALSE, FALSE, TRUE);
+	  bh = NULL;
+	  if (! _bfd_generic_link_add_one_symbol (info, sec->owner,
+						  "__tls_get_addr", 0,
+						  bfd_und_section_ptr,
+						  0, NULL, FALSE,
+						  FALSE, &bh))
+	    return NULL;
+	  h = (struct elf_link_hash_entry *) bh;
 	  BFD_ASSERT (h != NULL);
 	  h->mark = 1;
-	  if (h->u.weakdef != NULL)
-	    h->u.weakdef->mark = 1;
+	  if (h->is_weakalias)
+	    weakdef (h)->mark = 1;
 	  sym = NULL;
 	}
     }
@@ -1885,168 +1869,21 @@ tilepro_elf_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-/* Update the got entry reference counts for the section being removed.  */
-static bfd_boolean
-tilepro_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
-			   asection *sec, const Elf_Internal_Rela *relocs)
-{
-  struct tilepro_elf_link_hash_table *htab;
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  BFD_ASSERT (is_tilepro_elf (abfd) || sec->reloc_count == 0);
-
-  elf_section_data (sec)->local_dynrel = NULL;
+/* Find dynamic relocs for H that apply to read-only sections.  */
 
-  htab = tilepro_elf_hash_table (info);
-  BFD_ASSERT (htab != NULL);
-  symtab_hdr = &elf_symtab_hdr (abfd);
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
 
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
+  for (p = tilepro_elf_hash_entry (h)->dyn_relocs; p != NULL; p = p->next)
     {
-      unsigned long r_symndx;
-      unsigned int r_type;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  struct tilepro_elf_link_hash_entry *eh;
-	  struct tilepro_elf_dyn_relocs **pp;
-	  struct tilepro_elf_dyn_relocs *p;
-
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	  eh = (struct tilepro_elf_link_hash_entry *) h;
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next)
-	    if (p->sec == sec)
-	      {
-		/* Everything must go for SEC.  */
-		*pp = p->next;
-		break;
-	      }
-	}
-
-      r_type = ELF32_R_TYPE (rel->r_info);
-      r_type = tilepro_elf_tls_transition (info, r_type, h != NULL);
-      switch (r_type)
-	{
-        case R_TILEPRO_IMM16_X0_GOT:
-        case R_TILEPRO_IMM16_X1_GOT:
-        case R_TILEPRO_IMM16_X0_GOT_LO:
-        case R_TILEPRO_IMM16_X1_GOT_LO:
-        case R_TILEPRO_IMM16_X0_GOT_HI:
-        case R_TILEPRO_IMM16_X1_GOT_HI:
-        case R_TILEPRO_IMM16_X0_GOT_HA:
-        case R_TILEPRO_IMM16_X1_GOT_HA:
-        case R_TILEPRO_IMM16_X0_TLS_GD:
-        case R_TILEPRO_IMM16_X1_TLS_GD:
-        case R_TILEPRO_IMM16_X0_TLS_GD_LO:
-        case R_TILEPRO_IMM16_X1_TLS_GD_LO:
-        case R_TILEPRO_IMM16_X0_TLS_GD_HI:
-        case R_TILEPRO_IMM16_X1_TLS_GD_HI:
-        case R_TILEPRO_IMM16_X0_TLS_GD_HA:
-        case R_TILEPRO_IMM16_X1_TLS_GD_HA:
-        case R_TILEPRO_IMM16_X0_TLS_IE:
-        case R_TILEPRO_IMM16_X1_TLS_IE:
-        case R_TILEPRO_IMM16_X0_TLS_IE_LO:
-        case R_TILEPRO_IMM16_X1_TLS_IE_LO:
-        case R_TILEPRO_IMM16_X0_TLS_IE_HI:
-        case R_TILEPRO_IMM16_X1_TLS_IE_HI:
-        case R_TILEPRO_IMM16_X0_TLS_IE_HA:
-        case R_TILEPRO_IMM16_X1_TLS_IE_HA:
-	  if (h != NULL)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount--;
-	    }
-	  else
-	    {
-	      if (local_got_refcounts &&
-		  local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx]--;
-	    }
-	  break;
-
-        case R_TILEPRO_32_PCREL:
-        case R_TILEPRO_16_PCREL:
-        case R_TILEPRO_8_PCREL:
-        case R_TILEPRO_IMM16_X0_PCREL:
-        case R_TILEPRO_IMM16_X1_PCREL:
-        case R_TILEPRO_IMM16_X0_LO_PCREL:
-        case R_TILEPRO_IMM16_X1_LO_PCREL:
-        case R_TILEPRO_IMM16_X0_HI_PCREL:
-        case R_TILEPRO_IMM16_X1_HI_PCREL:
-        case R_TILEPRO_IMM16_X0_HA_PCREL:
-        case R_TILEPRO_IMM16_X1_HA_PCREL:
-	  if (h != NULL
-	      && strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
-	    break;
-	  /* Fall through.  */
-
-        case R_TILEPRO_32:
-        case R_TILEPRO_16:
-        case R_TILEPRO_8:
-        case R_TILEPRO_LO16:
-        case R_TILEPRO_HI16:
-        case R_TILEPRO_HA16:
-        case R_TILEPRO_COPY:
-        case R_TILEPRO_GLOB_DAT:
-        case R_TILEPRO_JMP_SLOT:
-        case R_TILEPRO_RELATIVE:
-        case R_TILEPRO_BROFF_X1:
-        case R_TILEPRO_JOFFLONG_X1:
-        case R_TILEPRO_IMM8_X0:
-        case R_TILEPRO_IMM8_Y0:
-        case R_TILEPRO_IMM8_X1:
-        case R_TILEPRO_IMM8_Y1:
-        case R_TILEPRO_DEST_IMM8_X1:
-        case R_TILEPRO_MT_IMM15_X1:
-        case R_TILEPRO_MF_IMM15_X1:
-        case R_TILEPRO_IMM16_X0:
-        case R_TILEPRO_IMM16_X1:
-        case R_TILEPRO_IMM16_X0_LO:
-        case R_TILEPRO_IMM16_X1_LO:
-        case R_TILEPRO_IMM16_X0_HI:
-        case R_TILEPRO_IMM16_X1_HI:
-        case R_TILEPRO_IMM16_X0_HA:
-        case R_TILEPRO_IMM16_X1_HA:
-        case R_TILEPRO_MMSTART_X0:
-        case R_TILEPRO_MMEND_X0:
-        case R_TILEPRO_MMSTART_X1:
-        case R_TILEPRO_MMEND_X1:
-        case R_TILEPRO_SHAMT_X0:
-        case R_TILEPRO_SHAMT_X1:
-        case R_TILEPRO_SHAMT_Y0:
-        case R_TILEPRO_SHAMT_Y1:
-	  if (bfd_link_pic (info))
-	    break;
-	  /* Fall through.  */
-
-        case R_TILEPRO_JOFFLONG_X1_PLT:
-	  if (h != NULL)
-	    {
-	      if (h->plt.refcount > 0)
-		h->plt.refcount--;
-	    }
-	  break;
+      asection *s = p->sec->output_section;
 
-	default:
-	  break;
-	}
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
     }
-
-  return TRUE;
+  return NULL;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -2060,8 +1897,6 @@ tilepro_elf_adjust_dynamic_symbol (struc
 				   struct elf_link_hash_entry *h)
 {
   struct tilepro_elf_link_hash_table *htab;
-  struct tilepro_elf_link_hash_entry * eh;
-  struct tilepro_elf_dyn_relocs *p;
   asection *s, *srel;
 
   htab = tilepro_elf_hash_table (info);
@@ -2070,7 +1905,7 @@ tilepro_elf_adjust_dynamic_symbol (struc
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (htab->elf.dynobj != NULL
 	      && (h->needs_plt
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -2086,11 +1921,11 @@ tilepro_elf_adjust_dynamic_symbol (struc
 	      && h->root.type == bfd_link_hash_undefweak))
 	{
 	  /* This case can occur if we saw a R_TILEPRO_JOFFLONG_X1_PLT
-             reloc in an input file, but the symbol was never referred
-             to by a dynamic object, or if all references were garbage
-             collected.  In such a case, we don't actually need to build
-             a procedure linkage table, and we can just do a
-             R_TILEPRO_JOFFLONG_X1 relocation instead. */
+	     reloc in an input file, but the symbol was never referred
+	     to by a dynamic object, or if all references were garbage
+	     collected.  In such a case, we don't actually need to build
+	     a procedure linkage table, and we can just do a
+	     R_TILEPRO_JOFFLONG_X1 relocation instead. */
 	  h->plt.offset = (bfd_vma) -1;
 	  h->needs_plt = 0;
 	}
@@ -2103,12 +1938,12 @@ tilepro_elf_adjust_dynamic_symbol (struc
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -2134,17 +1969,9 @@ tilepro_elf_adjust_dynamic_symbol (struc
       return TRUE;
     }
 
-  eh = (struct tilepro_elf_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      s = p->sec->output_section;
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	break;
-    }
-
-  /* If we didn't find any dynamic relocs in read-only sections, then
+  /* If we don't find any dynamic relocs in read-only sections, then
      we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
-  if (p == NULL)
+  if (!readonly_dynrelocs (h))
     {
       h->non_got_ref = 0;
       return TRUE;
@@ -2192,7 +2019,7 @@ allocate_dynrelocs (struct elf_link_hash
   struct bfd_link_info *info;
   struct tilepro_elf_link_hash_table *htab;
   struct tilepro_elf_link_hash_entry *eh;
-  struct tilepro_elf_dyn_relocs *p;
+  struct elf_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
     return TRUE;
@@ -2223,7 +2050,7 @@ allocate_dynrelocs (struct elf_link_hash
 	      s->size = PLT_ENTRY_SIZE;
 	    }
 
-          h->plt.offset = s->size;
+	  h->plt.offset = s->size;
 
 	  /* If this symbol is not defined in a regular file, and we are
 	     not generating a shared library, then set the symbol to this
@@ -2261,7 +2088,7 @@ allocate_dynrelocs (struct elf_link_hash
   /* If a TLS_IE symbol is now local to the binary, make it a TLS_LE
      requiring no TLS entry.  */
   if (h->got.refcount > 0
-      && !bfd_link_pic (info)
+      && bfd_link_executable (info)
       && h->dynindx == -1
       && tilepro_elf_hash_entry(h)->tls_type == GOT_TLS_IE)
     h->got.offset = (bfd_vma) -1;
@@ -2314,7 +2141,7 @@ allocate_dynrelocs (struct elf_link_hash
     {
       if (SYMBOL_CALLS_LOCAL (info, h))
 	{
-	  struct tilepro_elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs **pp;
 
 	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
 	    {
@@ -2332,7 +2159,8 @@ allocate_dynrelocs (struct elf_link_hash
       if (eh->dyn_relocs != NULL
 	  && h->root.type == bfd_link_hash_undefweak)
 	{
-	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
+	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+	      || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	    eh->dyn_relocs = NULL;
 
 	  /* Make sure undefined weak symbols are output as a dynamic
@@ -2388,28 +2216,29 @@ allocate_dynrelocs (struct elf_link_hash
   return TRUE;
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct tilepro_elf_link_hash_entry *eh;
-  struct tilepro_elf_dyn_relocs *p;
+  asection *sec;
 
-  eh = (struct tilepro_elf_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection *s = p->sec->output_section;
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	{
-	  struct bfd_link_info *info = (struct bfd_link_info *) inf;
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
+    {
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-	  info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
-	  /* Not an error, just cut short the traversal.  */
-	  return FALSE;
-	}
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -2479,7 +2308,7 @@ tilepro_elf_size_dynamic_sections (bfd *
 
       for (s = ibfd->sections; s != NULL; s = s->next)
 	{
-	  struct tilepro_elf_dyn_relocs *p;
+	  struct elf_dyn_relocs *p;
 
 	  for (p = elf_section_data (s)->local_dynrel; p != NULL; p = p->next)
 	    {
@@ -2496,7 +2325,12 @@ tilepro_elf_size_dynamic_sections (bfd *
 		  srel = elf_section_data (p->sec)->sreloc;
 		  srel->size += p->count * TILEPRO_ELF_RELA_BYTES;
 		  if ((p->sec->output_section->flags & SEC_READONLY) != 0)
-		    info->flags |= DF_TEXTREL;
+		    {
+		      info->flags |= DF_TEXTREL;
+
+		      info->callbacks->minfo (_("%B: dynamic relocation in read-only section `%A'\n"),
+					      p->sec->owner, p->sec);
+		    }
 		}
 	    }
 	}
@@ -2551,7 +2385,7 @@ tilepro_elf_size_dynamic_sections (bfd *
 				  FALSE, FALSE, FALSE);
 
       /* Don't allocate .got.plt section if there are no GOT nor PLT
-         entries and there is no refeence to _GLOBAL_OFFSET_TABLE_.  */
+	 entries and there is no refeence to _GLOBAL_OFFSET_TABLE_.  */
       if ((got == NULL
 	   || !got->ref_regular_nonweak)
 	  && (htab->elf.sgotplt->size
@@ -2655,7 +2489,7 @@ tilepro_elf_size_dynamic_sections (bfd *
       /* If any dynamic relocs apply to a read-only section,
 	 then we need a DT_TEXTREL entry.  */
       if ((info->flags & DF_TEXTREL) == 0)
-	elf_link_hash_traverse (&htab->elf, readonly_dynrelocs, info);
+	elf_link_hash_traverse (&htab->elf, maybe_set_textrel, info);
 
       if (info->flags & DF_TEXTREL)
 	{
@@ -2806,10 +2640,10 @@ static const bfd_byte insn_tls_gd_add_Y0
 
 static bfd_boolean
 tilepro_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
-                              bfd *input_bfd, asection *input_section,
-                              bfd_byte *contents, Elf_Internal_Rela *relocs,
-                              Elf_Internal_Sym *local_syms,
-                              asection **local_sections)
+			      bfd *input_bfd, asection *input_section,
+			      bfd_byte *contents, Elf_Internal_Rela *relocs,
+			      Elf_Internal_Sym *local_syms,
+			      asection **local_sections)
 {
   struct tilepro_elf_link_hash_table *htab;
   Elf_Internal_Shdr *symtab_hdr;
@@ -2852,7 +2686,7 @@ tilepro_elf_relocate_section (bfd *outpu
       const char *name;
       bfd_vma off;
       bfd_boolean is_plt = FALSE;
-
+      bfd_boolean resolved_to_zero;
       bfd_boolean unresolved_reloc;
 
       r_type = ELF32_R_TYPE (rel->r_info);
@@ -2861,15 +2695,7 @@ tilepro_elf_relocate_section (bfd *outpu
 	continue;
 
       if ((unsigned int)r_type >= NELEMS(tilepro_elf_howto_table))
-	{
-          /* Not clear if we need to check here, but just be paranoid. */
-	  _bfd_error_handler
-	    /* xgettext:c-format */
-	    (_("%B: unrecognized relocation (0x%x) in section `%A'"),
-	     input_bfd, r_type, input_section);
-	  bfd_set_error (bfd_error_bad_value);
-	  return FALSE;
-	}
+	return _bfd_unrecognized_reloc (input_bfd, input_section, r_type);
 
       howto = tilepro_elf_howto_table + r_type;
 
@@ -2941,8 +2767,8 @@ tilepro_elf_relocate_section (bfd *outpu
 	  else if (h != NULL)
 	    tls_type = tilepro_elf_hash_entry(h)->tls_type;
 
-	  is_tls_iele = (! bfd_link_pic (info) || tls_type == GOT_TLS_IE);
-	  is_tls_le = is_tls_iele && (!bfd_link_pic (info)
+	  is_tls_iele = (bfd_link_executable (info) || tls_type == GOT_TLS_IE);
+	  is_tls_le = is_tls_iele && (bfd_link_executable (info)
 				      && (h == NULL || h->dynindx == -1));
 
 	  if (r_type == R_TILEPRO_TLS_GD_CALL)
@@ -3019,7 +2845,7 @@ tilepro_elf_relocate_section (bfd *outpu
 	    }
 	  break;
 	case R_TILEPRO_TLS_IE_LOAD:
-	  if (!bfd_link_pic (info) && (h == NULL || h->dynindx == -1))
+	  if (bfd_link_executable (info) && (h == NULL || h->dynindx == -1))
 	    /* IE -> LE */
 	    tilepro_replace_insn (contents + rel->r_offset,
 				  insn_mask_X1_no_dest_no_srca,
@@ -3035,16 +2861,19 @@ tilepro_elf_relocate_section (bfd *outpu
 	  break;
 	}
 
+      resolved_to_zero = (h != NULL
+			  && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h));
+
       switch (r_type)
 	{
-        case R_TILEPRO_IMM16_X0_GOT:
-        case R_TILEPRO_IMM16_X1_GOT:
-        case R_TILEPRO_IMM16_X0_GOT_LO:
-        case R_TILEPRO_IMM16_X1_GOT_LO:
-        case R_TILEPRO_IMM16_X0_GOT_HI:
-        case R_TILEPRO_IMM16_X1_GOT_HI:
-        case R_TILEPRO_IMM16_X0_GOT_HA:
-        case R_TILEPRO_IMM16_X1_GOT_HA:
+	case R_TILEPRO_IMM16_X0_GOT:
+	case R_TILEPRO_IMM16_X1_GOT:
+	case R_TILEPRO_IMM16_X0_GOT_LO:
+	case R_TILEPRO_IMM16_X1_GOT_LO:
+	case R_TILEPRO_IMM16_X0_GOT_HI:
+	case R_TILEPRO_IMM16_X1_GOT_HI:
+	case R_TILEPRO_IMM16_X0_GOT_HA:
+	case R_TILEPRO_IMM16_X1_GOT_HA:
 	  /* Relocation is to the entry for this symbol in the global
 	     offset table.  */
 	  if (htab->elf.sgot == NULL)
@@ -3096,7 +2925,7 @@ tilepro_elf_relocate_section (bfd *outpu
 	      off = local_got_offsets[r_symndx];
 
 	      /* The offset must always be a multiple of 4 on 32-bit.
-                 We use the least significant bit to record
+		 We use the least significant bit to record
 		 whether we have already processed this entry.  */
 	      if ((off & 1) != 0)
 		off &= ~1;
@@ -3129,10 +2958,10 @@ tilepro_elf_relocate_section (bfd *outpu
 	  relocation = off - got_base;
 	  break;
 
-        case R_TILEPRO_JOFFLONG_X1_PLT:
+	case R_TILEPRO_JOFFLONG_X1_PLT:
 	  /* Relocation is to the entry for this symbol in the
 	     procedure linkage table.  */
-          BFD_ASSERT (h != NULL);
+	  BFD_ASSERT (h != NULL);
 
 	  if (h->plt.offset == (bfd_vma) -1 || htab->elf.splt == NULL)
 	    {
@@ -3148,62 +2977,63 @@ tilepro_elf_relocate_section (bfd *outpu
 	  unresolved_reloc = FALSE;
 	  break;
 
-        case R_TILEPRO_32_PCREL:
-        case R_TILEPRO_16_PCREL:
-        case R_TILEPRO_8_PCREL:
-        case R_TILEPRO_IMM16_X0_PCREL:
-        case R_TILEPRO_IMM16_X1_PCREL:
-        case R_TILEPRO_IMM16_X0_LO_PCREL:
-        case R_TILEPRO_IMM16_X1_LO_PCREL:
-        case R_TILEPRO_IMM16_X0_HI_PCREL:
-        case R_TILEPRO_IMM16_X1_HI_PCREL:
-        case R_TILEPRO_IMM16_X0_HA_PCREL:
-        case R_TILEPRO_IMM16_X1_HA_PCREL:
+	case R_TILEPRO_32_PCREL:
+	case R_TILEPRO_16_PCREL:
+	case R_TILEPRO_8_PCREL:
+	case R_TILEPRO_IMM16_X0_PCREL:
+	case R_TILEPRO_IMM16_X1_PCREL:
+	case R_TILEPRO_IMM16_X0_LO_PCREL:
+	case R_TILEPRO_IMM16_X1_LO_PCREL:
+	case R_TILEPRO_IMM16_X0_HI_PCREL:
+	case R_TILEPRO_IMM16_X1_HI_PCREL:
+	case R_TILEPRO_IMM16_X0_HA_PCREL:
+	case R_TILEPRO_IMM16_X1_HA_PCREL:
 	  if (h != NULL
 	      && strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
 	    break;
 	  /* Fall through.  */
-        case R_TILEPRO_32:
-        case R_TILEPRO_16:
-        case R_TILEPRO_8:
-        case R_TILEPRO_LO16:
-        case R_TILEPRO_HI16:
-        case R_TILEPRO_HA16:
-        case R_TILEPRO_COPY:
-        case R_TILEPRO_GLOB_DAT:
-        case R_TILEPRO_JMP_SLOT:
-        case R_TILEPRO_RELATIVE:
-        case R_TILEPRO_BROFF_X1:
-        case R_TILEPRO_JOFFLONG_X1:
-        case R_TILEPRO_IMM8_X0:
-        case R_TILEPRO_IMM8_Y0:
-        case R_TILEPRO_IMM8_X1:
-        case R_TILEPRO_IMM8_Y1:
-        case R_TILEPRO_DEST_IMM8_X1:
-        case R_TILEPRO_MT_IMM15_X1:
-        case R_TILEPRO_MF_IMM15_X1:
-        case R_TILEPRO_IMM16_X0:
-        case R_TILEPRO_IMM16_X1:
-        case R_TILEPRO_IMM16_X0_LO:
-        case R_TILEPRO_IMM16_X1_LO:
-        case R_TILEPRO_IMM16_X0_HI:
-        case R_TILEPRO_IMM16_X1_HI:
-        case R_TILEPRO_IMM16_X0_HA:
-        case R_TILEPRO_IMM16_X1_HA:
-        case R_TILEPRO_MMSTART_X0:
-        case R_TILEPRO_MMEND_X0:
-        case R_TILEPRO_MMSTART_X1:
-        case R_TILEPRO_MMEND_X1:
-        case R_TILEPRO_SHAMT_X0:
-        case R_TILEPRO_SHAMT_X1:
-        case R_TILEPRO_SHAMT_Y0:
-        case R_TILEPRO_SHAMT_Y1:
+	case R_TILEPRO_32:
+	case R_TILEPRO_16:
+	case R_TILEPRO_8:
+	case R_TILEPRO_LO16:
+	case R_TILEPRO_HI16:
+	case R_TILEPRO_HA16:
+	case R_TILEPRO_COPY:
+	case R_TILEPRO_GLOB_DAT:
+	case R_TILEPRO_JMP_SLOT:
+	case R_TILEPRO_RELATIVE:
+	case R_TILEPRO_BROFF_X1:
+	case R_TILEPRO_JOFFLONG_X1:
+	case R_TILEPRO_IMM8_X0:
+	case R_TILEPRO_IMM8_Y0:
+	case R_TILEPRO_IMM8_X1:
+	case R_TILEPRO_IMM8_Y1:
+	case R_TILEPRO_DEST_IMM8_X1:
+	case R_TILEPRO_MT_IMM15_X1:
+	case R_TILEPRO_MF_IMM15_X1:
+	case R_TILEPRO_IMM16_X0:
+	case R_TILEPRO_IMM16_X1:
+	case R_TILEPRO_IMM16_X0_LO:
+	case R_TILEPRO_IMM16_X1_LO:
+	case R_TILEPRO_IMM16_X0_HI:
+	case R_TILEPRO_IMM16_X1_HI:
+	case R_TILEPRO_IMM16_X0_HA:
+	case R_TILEPRO_IMM16_X1_HA:
+	case R_TILEPRO_MMSTART_X0:
+	case R_TILEPRO_MMEND_X0:
+	case R_TILEPRO_MMSTART_X1:
+	case R_TILEPRO_MMEND_X1:
+	case R_TILEPRO_SHAMT_X0:
+	case R_TILEPRO_SHAMT_X1:
+	case R_TILEPRO_SHAMT_Y0:
+	case R_TILEPRO_SHAMT_Y1:
 	  if ((input_section->flags & SEC_ALLOC) == 0)
 	    break;
 
 	  if ((bfd_link_pic (info)
 	       && (h == NULL
-		   || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		   || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		       && !resolved_to_zero)
 		   || h->root.type != bfd_link_hash_undefweak)
 	       && (! howto->pc_relative
 		   || !SYMBOL_CALLS_LOCAL (info, h)))
@@ -3239,9 +3069,9 @@ tilepro_elf_relocate_section (bfd *outpu
 
 	      switch (r_type)
 		{
-                case R_TILEPRO_32_PCREL:
-                case R_TILEPRO_16_PCREL:
-                case R_TILEPRO_8_PCREL:
+		case R_TILEPRO_32_PCREL:
+		case R_TILEPRO_16_PCREL:
+		case R_TILEPRO_8_PCREL:
 		  /* If the symbol is not dynamic, we should not keep
 		     a dynamic relocation.  But an .rela.* slot has been
 		     allocated for it, output R_TILEPRO_NONE.
@@ -3334,15 +3164,15 @@ tilepro_elf_relocate_section (bfd *outpu
 	    }
 	  break;
 
-        case R_TILEPRO_IMM16_X0_TLS_LE:
-        case R_TILEPRO_IMM16_X1_TLS_LE:
-        case R_TILEPRO_IMM16_X0_TLS_LE_LO:
-        case R_TILEPRO_IMM16_X1_TLS_LE_LO:
-        case R_TILEPRO_IMM16_X0_TLS_LE_HI:
-        case R_TILEPRO_IMM16_X1_TLS_LE_HI:
-        case R_TILEPRO_IMM16_X0_TLS_LE_HA:
-        case R_TILEPRO_IMM16_X1_TLS_LE_HA:
-	  if (bfd_link_pic (info))
+	case R_TILEPRO_IMM16_X0_TLS_LE:
+	case R_TILEPRO_IMM16_X1_TLS_LE:
+	case R_TILEPRO_IMM16_X0_TLS_LE_LO:
+	case R_TILEPRO_IMM16_X1_TLS_LE_LO:
+	case R_TILEPRO_IMM16_X0_TLS_LE_HI:
+	case R_TILEPRO_IMM16_X1_TLS_LE_HI:
+	case R_TILEPRO_IMM16_X0_TLS_LE_HA:
+	case R_TILEPRO_IMM16_X1_TLS_LE_HA:
+	  if (!bfd_link_executable (info))
 	    {
 	      Elf_Internal_Rela outrel;
 	      bfd_boolean skip;
@@ -3373,31 +3203,33 @@ tilepro_elf_relocate_section (bfd *outpu
 	  relocation = tpoff (info, relocation);
 	  break;
 
-        case R_TILEPRO_IMM16_X0_TLS_GD:
-        case R_TILEPRO_IMM16_X1_TLS_GD:
-        case R_TILEPRO_IMM16_X0_TLS_GD_LO:
-        case R_TILEPRO_IMM16_X1_TLS_GD_LO:
-        case R_TILEPRO_IMM16_X0_TLS_GD_HI:
-        case R_TILEPRO_IMM16_X1_TLS_GD_HI:
-        case R_TILEPRO_IMM16_X0_TLS_GD_HA:
-        case R_TILEPRO_IMM16_X1_TLS_GD_HA:
-        case R_TILEPRO_IMM16_X0_TLS_IE:
-        case R_TILEPRO_IMM16_X1_TLS_IE:
-        case R_TILEPRO_IMM16_X0_TLS_IE_LO:
-        case R_TILEPRO_IMM16_X1_TLS_IE_LO:
-        case R_TILEPRO_IMM16_X0_TLS_IE_HI:
-        case R_TILEPRO_IMM16_X1_TLS_IE_HI:
-        case R_TILEPRO_IMM16_X0_TLS_IE_HA:
-        case R_TILEPRO_IMM16_X1_TLS_IE_HA:
+	case R_TILEPRO_IMM16_X0_TLS_GD:
+	case R_TILEPRO_IMM16_X1_TLS_GD:
+	case R_TILEPRO_IMM16_X0_TLS_GD_LO:
+	case R_TILEPRO_IMM16_X1_TLS_GD_LO:
+	case R_TILEPRO_IMM16_X0_TLS_GD_HI:
+	case R_TILEPRO_IMM16_X1_TLS_GD_HI:
+	case R_TILEPRO_IMM16_X0_TLS_GD_HA:
+	case R_TILEPRO_IMM16_X1_TLS_GD_HA:
+	case R_TILEPRO_IMM16_X0_TLS_IE:
+	case R_TILEPRO_IMM16_X1_TLS_IE:
+	case R_TILEPRO_IMM16_X0_TLS_IE_LO:
+	case R_TILEPRO_IMM16_X1_TLS_IE_LO:
+	case R_TILEPRO_IMM16_X0_TLS_IE_HI:
+	case R_TILEPRO_IMM16_X1_TLS_IE_HI:
+	case R_TILEPRO_IMM16_X0_TLS_IE_HA:
+	case R_TILEPRO_IMM16_X1_TLS_IE_HA:
 	  r_type = tilepro_elf_tls_transition (info, r_type, h == NULL);
-          tls_type = GOT_UNKNOWN;
+	  tls_type = GOT_UNKNOWN;
 	  if (h == NULL && local_got_offsets)
 	    tls_type
 	      = _bfd_tilepro_elf_local_got_tls_type (input_bfd) [r_symndx];
 	  else if (h != NULL)
 	    {
 	      tls_type = tilepro_elf_hash_entry(h)->tls_type;
-	      if (!bfd_link_pic (info) && h->dynindx == -1 && tls_type == GOT_TLS_IE)
+	      if (bfd_link_executable (info)
+		  && h->dynindx == -1
+		  && tls_type == GOT_TLS_IE)
 		r_type = tilepro_tls_translate_to_le (r_type);
 	    }
 	  if (tls_type == GOT_TLS_IE)
@@ -3444,8 +3276,8 @@ tilepro_elf_relocate_section (bfd *outpu
 
 	      if (h != NULL)
 	      {
-	        bfd_boolean dyn;
-	        dyn = htab->elf.dynamic_sections_created;
+		bfd_boolean dyn;
+		dyn = htab->elf.dynamic_sections_created;
 
 		if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
 						     bfd_link_pic (info),
@@ -3458,38 +3290,38 @@ tilepro_elf_relocate_section (bfd *outpu
 	      }
 
 	      /* The GOT entries have not been initialized yet.  Do it
-	         now, and emit any relocations. */
+		 now, and emit any relocations. */
 	      if ((bfd_link_pic (info) || indx != 0)
 		  && (h == NULL
 		      || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
 		      || h->root.type != bfd_link_hash_undefweak))
 		    need_relocs = TRUE;
 
-              switch (r_type)
-                {
-                  case R_TILEPRO_IMM16_X0_TLS_IE:
-                  case R_TILEPRO_IMM16_X1_TLS_IE:
-                  case R_TILEPRO_IMM16_X0_TLS_IE_LO:
-                  case R_TILEPRO_IMM16_X1_TLS_IE_LO:
-                  case R_TILEPRO_IMM16_X0_TLS_IE_HI:
-                  case R_TILEPRO_IMM16_X1_TLS_IE_HI:
-                  case R_TILEPRO_IMM16_X0_TLS_IE_HA:
-                  case R_TILEPRO_IMM16_X1_TLS_IE_HA:
+	      switch (r_type)
+		{
+		  case R_TILEPRO_IMM16_X0_TLS_IE:
+		  case R_TILEPRO_IMM16_X1_TLS_IE:
+		  case R_TILEPRO_IMM16_X0_TLS_IE_LO:
+		  case R_TILEPRO_IMM16_X1_TLS_IE_LO:
+		  case R_TILEPRO_IMM16_X0_TLS_IE_HI:
+		  case R_TILEPRO_IMM16_X1_TLS_IE_HI:
+		  case R_TILEPRO_IMM16_X0_TLS_IE_HA:
+		  case R_TILEPRO_IMM16_X1_TLS_IE_HA:
 		    if (need_relocs) {
-	              bfd_put_32 (output_bfd, 0, htab->elf.sgot->contents + off);
-	              outrel.r_offset = (htab->elf.sgot->output_section->vma
+		      bfd_put_32 (output_bfd, 0, htab->elf.sgot->contents + off);
+		      outrel.r_offset = (htab->elf.sgot->output_section->vma
 				       + htab->elf.sgot->output_offset + off);
-	              outrel.r_addend = 0;
+		      outrel.r_addend = 0;
 		      if (indx == 0)
-		        outrel.r_addend = relocation - dtpoff_base (info);
+			outrel.r_addend = relocation - dtpoff_base (info);
 		      outrel.r_info = ELF32_R_INFO (indx, R_TILEPRO_TLS_TPOFF32);
 		      tilepro_elf_append_rela_32 (output_bfd, htab->elf.srelgot,
 						  &outrel);
-                    } else {
+		    } else {
 		      bfd_put_32 (output_bfd, tpoff (info, relocation),
 				  htab->elf.sgot->contents + off);
-                    }
-                    break;
+		    }
+		    break;
 
 		  case R_TILEPRO_IMM16_X0_TLS_GD:
 		  case R_TILEPRO_IMM16_X1_TLS_GD:
@@ -3500,48 +3332,48 @@ tilepro_elf_relocate_section (bfd *outpu
 		  case R_TILEPRO_IMM16_X0_TLS_GD_HA:
 		  case R_TILEPRO_IMM16_X1_TLS_GD_HA:
 		    if (need_relocs) {
- 	              outrel.r_offset = (htab->elf.sgot->output_section->vma
+		      outrel.r_offset = (htab->elf.sgot->output_section->vma
 				       + htab->elf.sgot->output_offset + off);
-	              outrel.r_addend = 0;
-	              outrel.r_info = ELF32_R_INFO (indx, R_TILEPRO_TLS_DTPMOD32);
-	              bfd_put_32 (output_bfd, 0, htab->elf.sgot->contents + off);
-	              tilepro_elf_append_rela_32 (output_bfd, htab->elf.srelgot,
+		      outrel.r_addend = 0;
+		      outrel.r_info = ELF32_R_INFO (indx, R_TILEPRO_TLS_DTPMOD32);
+		      bfd_put_32 (output_bfd, 0, htab->elf.sgot->contents + off);
+		      tilepro_elf_append_rela_32 (output_bfd, htab->elf.srelgot,
 						  &outrel);
 		      if (indx == 0)
-		        {
-		      	  BFD_ASSERT (! unresolved_reloc);
-		          bfd_put_32 (output_bfd,
+			{
+			  BFD_ASSERT (! unresolved_reloc);
+			  bfd_put_32 (output_bfd,
 				      relocation - dtpoff_base (info),
 				      (htab->elf.sgot->contents + off +
 				       TILEPRO_BYTES_PER_WORD));
-		        }
+			}
 		      else
-		        {
-		          bfd_put_32 (output_bfd, 0,
+			{
+			  bfd_put_32 (output_bfd, 0,
 				      (htab->elf.sgot->contents + off +
 				       TILEPRO_BYTES_PER_WORD));
-		          outrel.r_info = ELF32_R_INFO (indx,
+			  outrel.r_info = ELF32_R_INFO (indx,
 							R_TILEPRO_TLS_DTPOFF32);
 			  outrel.r_offset += TILEPRO_BYTES_PER_WORD;
-		          tilepro_elf_append_rela_32 (output_bfd,
+			  tilepro_elf_append_rela_32 (output_bfd,
 						      htab->elf.srelgot, &outrel);
-		        }
-                    }
+			}
+		    }
 
 		    else {
 		      /* If we are not emitting relocations for a
-		         general dynamic reference, then we must be in a
-		         static link or an executable link with the
-		         symbol binding locally.  Mark it as belonging
-		         to module 1, the executable.  */
+			 general dynamic reference, then we must be in a
+			 static link or an executable link with the
+			 symbol binding locally.  Mark it as belonging
+			 to module 1, the executable.  */
 		      bfd_put_32 (output_bfd, 1,
 				  htab->elf.sgot->contents + off );
 		      bfd_put_32 (output_bfd, relocation - dtpoff_base (info),
 				  htab->elf.sgot->contents + off +
 				  TILEPRO_BYTES_PER_WORD);
 		   }
-                   break;
-                }
+		   break;
+		}
 	    }
 
 	  if (off >= (bfd_vma) -2)
@@ -3566,10 +3398,10 @@ tilepro_elf_relocate_section (bfd *outpu
 				      rel->r_offset) != (bfd_vma) -1)
 	_bfd_error_handler
 	  /* xgettext:c-format */
-	  (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+	  (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
 	   input_bfd,
 	   input_section,
-	   (long) rel->r_offset,
+	   rel->r_offset,
 	   howto->name,
 	   h->root.root.string);
 
@@ -3591,57 +3423,57 @@ tilepro_elf_relocate_section (bfd *outpu
       case R_TILEPRO_IMM16_X1_TLS_GD_HA:
       case R_TILEPRO_IMM16_X0_TLS_IE_HA:
       case R_TILEPRO_IMM16_X1_TLS_IE_HA:
-        relocation += 0x8000;
-        break;
+	relocation += 0x8000;
+	break;
       }
 
       /* Get the operand creation function, if any. */
       create_func = reloc_to_create_func[r_type];
       if (create_func == NULL)
       {
-        r = _bfd_final_link_relocate (howto, input_bfd, input_section,
-                                      contents, rel->r_offset,
-                                      relocation, rel->r_addend);
+	r = _bfd_final_link_relocate (howto, input_bfd, input_section,
+				      contents, rel->r_offset,
+				      relocation, rel->r_addend);
       }
       else
       {
-        if (howto->pc_relative)
-        {
-          relocation -=
-            input_section->output_section->vma + input_section->output_offset;
-          if (howto->pcrel_offset)
-            relocation -= rel->r_offset;
-        }
-
-        bfd_byte *data;
-
-        /* Add the relocation addend if any to the final target value */
-        relocation += rel->r_addend;
-
-        /* Do basic range checking */
-        r = bfd_check_overflow (howto->complain_on_overflow,
-                                howto->bitsize,
-                                howto->rightshift,
-                                32,
-                                relocation);
-
-        /*
-         * Write the relocated value out into the raw section data.
-         * Don't put a relocation out in the .rela section.
-         */
-        tilepro_bundle_bits mask = create_func(-1);
-        tilepro_bundle_bits value = create_func(relocation >> howto->rightshift);
-
-        /* Only touch bytes while the mask is not 0, so we
-           don't write to out of bounds memory if this is actually
-           a 16-bit switch instruction. */
-        for (data = contents + rel->r_offset; mask != 0; data++)
-          {
-            bfd_byte byte_mask = (bfd_byte)mask;
-            *data = (*data & ~byte_mask) | ((bfd_byte)value & byte_mask);
-            mask >>= 8;
-            value >>= 8;
-          }
+	if (howto->pc_relative)
+	{
+	  relocation -=
+	    input_section->output_section->vma + input_section->output_offset;
+	  if (howto->pcrel_offset)
+	    relocation -= rel->r_offset;
+	}
+
+	bfd_byte *data;
+
+	/* Add the relocation addend if any to the final target value */
+	relocation += rel->r_addend;
+
+	/* Do basic range checking */
+	r = bfd_check_overflow (howto->complain_on_overflow,
+				howto->bitsize,
+				howto->rightshift,
+				32,
+				relocation);
+
+	/*
+	 * Write the relocated value out into the raw section data.
+	 * Don't put a relocation out in the .rela section.
+	 */
+	tilepro_bundle_bits mask = create_func(-1);
+	tilepro_bundle_bits value = create_func(relocation >> howto->rightshift);
+
+	/* Only touch bytes while the mask is not 0, so we
+	   don't write to out of bounds memory if this is actually
+	   a 16-bit switch instruction. */
+	for (data = contents + rel->r_offset; mask != 0; data++)
+	  {
+	    bfd_byte byte_mask = (bfd_byte)mask;
+	    *data = (*data & ~byte_mask) | ((bfd_byte)value & byte_mask);
+	    mask >>= 8;
+	    value >>= 8;
+	  }
       }
 
       if (r != bfd_reloc_ok)
@@ -3874,7 +3706,7 @@ tilepro_finish_dyn (bfd *output_bfd, str
 
 static bfd_boolean
 tilepro_elf_finish_dynamic_sections (bfd *output_bfd,
-                                     struct bfd_link_info *info)
+				     struct bfd_link_info *info)
 {
   bfd *dynobj;
   asection *sdyn;
@@ -3896,7 +3728,7 @@ tilepro_elf_finish_dynamic_sections (bfd
 
       ret = tilepro_finish_dyn (output_bfd, info, dynobj, sdyn, splt);
 
-      if (ret != TRUE)
+      if (!ret)
 	return ret;
 
       /* Fill in the first entry in the procedure linkage table.  */
@@ -3961,7 +3793,7 @@ tilepro_elf_finish_dynamic_sections (bfd
 
 static bfd_vma
 tilepro_elf_plt_sym_val (bfd_vma i, const asection *plt,
-                      const arelent *rel ATTRIBUTE_UNUSED)
+		      const arelent *rel ATTRIBUTE_UNUSED)
 {
   return plt->vma + (i + 1) * PLT_ENTRY_SIZE;
 }
@@ -3986,7 +3818,7 @@ tilepro_reloc_type_class (const struct b
 
 static int
 tilepro_additional_program_headers (bfd *abfd,
-                                    struct bfd_link_info *info ATTRIBUTE_UNUSED)
+				    struct bfd_link_info *info ATTRIBUTE_UNUSED)
 {
   /* Each .intrpt section specified by the user adds another PT_LOAD
      header since the sections are discontiguous. */
@@ -4023,7 +3855,7 @@ tilepro_additional_program_headers (bfd 
 
 #define elf_backend_reloc_type_class	     tilepro_reloc_type_class
 
-#define bfd_elf32_bfd_reloc_name_lookup      tilepro_reloc_name_lookup
+#define bfd_elf32_bfd_reloc_name_lookup	     tilepro_reloc_name_lookup
 #define bfd_elf32_bfd_link_hash_table_create tilepro_elf_link_hash_table_create
 #define bfd_elf32_bfd_reloc_type_lookup	     tilepro_reloc_type_lookup
 
@@ -4037,12 +3869,11 @@ tilepro_additional_program_headers (bfd 
 #define elf_backend_finish_dynamic_symbol    tilepro_elf_finish_dynamic_symbol
 #define elf_backend_finish_dynamic_sections  tilepro_elf_finish_dynamic_sections
 #define elf_backend_gc_mark_hook	     tilepro_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook            tilepro_elf_gc_sweep_hook
 #define elf_backend_plt_sym_val		     tilepro_elf_plt_sym_val
-#define elf_info_to_howto_rel                NULL
-#define elf_info_to_howto                    tilepro_info_to_howto_rela
-#define elf_backend_grok_prstatus            tilepro_elf_grok_prstatus
-#define elf_backend_grok_psinfo              tilepro_elf_grok_psinfo
+#define elf_info_to_howto_rel		     NULL
+#define elf_info_to_howto		     tilepro_info_to_howto_rela
+#define elf_backend_grok_prstatus	     tilepro_elf_grok_prstatus
+#define elf_backend_grok_psinfo		     tilepro_elf_grok_psinfo
 #define elf_backend_additional_program_headers tilepro_additional_program_headers
 
 #define bfd_elf32_mkobject		     tilepro_elf_mkobject
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-tilepro.h ./bfd/elf32-tilepro.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-tilepro.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-tilepro.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* TILEPro-specific support for 32-bit ELF.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -23,16 +23,16 @@
 
 /* This file contains sizes and offsets of Linux data structures.  */
 
-#define TILEPRO_PRSTATUS_SIZEOF           332
+#define TILEPRO_PRSTATUS_SIZEOF		  332
 #define TILEPRO_PRSTATUS_OFFSET_PR_CURSIG  12
-#define TILEPRO_PRSTATUS_OFFSET_PR_PID     24
-#define TILEPRO_PRSTATUS_OFFSET_PR_REG     72
+#define TILEPRO_PRSTATUS_OFFSET_PR_PID	   24
+#define TILEPRO_PRSTATUS_OFFSET_PR_REG	   72
 
-#define TILEPRO_PRPSINFO_SIZEOF           128
+#define TILEPRO_PRPSINFO_SIZEOF		  128
 #define TILEPRO_PRPSINFO_OFFSET_PR_FNAME   32
 #define TILEPRO_PRPSINFO_OFFSET_PR_PSARGS  48
-#define ELF_PR_PSARGS_SIZE              80
+#define ELF_PR_PSARGS_SIZE		80
 
-#define TILEPRO_GREGSET_T_SIZE            256
+#define TILEPRO_GREGSET_T_SIZE		  256
 
 #endif /* _ELF32_TILEPRO_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-v850.c ./bfd/elf32-v850.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-v850.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-v850.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* V850-specific support for 32-bit ELF
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -83,10 +83,6 @@ v850_elf_check_relocs (bfd *abfd,
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       r_type = ELF32_R_TYPE (rel->r_info);
@@ -95,21 +91,21 @@ v850_elf_check_relocs (bfd *abfd,
 	default:
 	  break;
 
-        /* This relocation describes the C++ object vtable hierarchy.
-           Reconstruct it for later use during GC.  */
-        case R_V850_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
+	/* This relocation describes the C++ object vtable hierarchy.
+	   Reconstruct it for later use during GC.  */
+	case R_V850_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
 
-        /* This relocation describes which C++ vtable entries
+	/* This relocation describes which C++ vtable entries
 	   are actually used.  Record for later use during GC.  */
-        case R_V850_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
+	case R_V850_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
 
 	case R_V850_SDA_16_16_SPLIT_OFFSET:
 	case R_V850_SDA_16_16_OFFSET:
@@ -219,10 +215,10 @@ v850_elf_check_relocs (bfd *abfd,
 
 typedef struct hi16s_location
 {
-  bfd_vma                 addend;
-  bfd_byte *              address;
-  unsigned long           counter;
-  bfd_boolean             found;
+  bfd_vma		  addend;
+  bfd_byte *		  address;
+  unsigned long		  counter;
+  bfd_boolean		  found;
   struct hi16s_location * next;
 }
 hi16s_location;
@@ -676,7 +672,7 @@ v850_elf_perform_relocation (bfd *abfd,
 	return bfd_reloc_overflow;
 
       if (addend & 1)
-        return bfd_reloc_dangerous;
+	return bfd_reloc_dangerous;
 
       insn = (addend &~ (bfd_vma) 1) | (insn & 1);
       break;
@@ -1012,7 +1008,7 @@ static reloc_howto_type v850_elf_howto_t
 	 0xffff,			/* Dst_mask.  */
 	 FALSE),			/* PCrel_offset.  */
 
-  /* Simple 8bit reloc.	 */
+  /* Simple 8bit reloc.  */
   HOWTO (R_V850_8,			/* Type.  */
 	 0,				/* Rightshift.  */
 	 0,				/* Size (0 = byte, 1 = short, 2 = long).  */
@@ -1240,79 +1236,79 @@ static reloc_howto_type v850_elf_howto_t
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_V850_GNU_VTINHERIT, /* Type.  */
-	 0,                     /* Rightshift.  */
-	 2,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-	 0,                     /* Bitsize.  */
-	 FALSE,                 /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* Bitsize.  */
+	 FALSE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_dont, /* Complain_on_overflow.  */
-	 NULL,                  /* Special_function.  */
+	 NULL,			/* Special_function.  */
 	 "R_V850_GNU_VTINHERIT", /* Name.  */
-	 FALSE,                 /* Partial_inplace.  */
-	 0,                     /* Src_mask.  */
-	 0,                     /* Dst_mask.  */
-	 FALSE),                /* PCrel_offset.  */
+	 FALSE,			/* Partial_inplace.  */
+	 0,			/* Src_mask.  */
+	 0,			/* Dst_mask.  */
+	 FALSE),		/* PCrel_offset.  */
 
   /* GNU extension to record C++ vtable member usage.  */
-  HOWTO (R_V850_GNU_VTENTRY,     /* Type.  */
-	 0,                     /* Rightshift.  */
-	 2,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-	 0,                     /* Bitsize.  */
-	 FALSE,                 /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+  HOWTO (R_V850_GNU_VTENTRY,	 /* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* Bitsize.  */
+	 FALSE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_dont, /* Complain_on_overflow.  */
-	 _bfd_elf_rel_vtable_reloc_fn,  /* Special_function.  */
-	 "R_V850_GNU_VTENTRY",   /* Name.  */
-	 FALSE,                 /* Partial_inplace.  */
-	 0,                     /* Src_mask.  */
-	 0,                     /* Dst_mask.  */
-	 FALSE),                /* PCrel_offset.  */
+	 _bfd_elf_rel_vtable_reloc_fn,	/* Special_function.  */
+	 "R_V850_GNU_VTENTRY",	 /* Name.  */
+	 FALSE,			/* Partial_inplace.  */
+	 0,			/* Src_mask.  */
+	 0,			/* Dst_mask.  */
+	 FALSE),		/* PCrel_offset.  */
 
   /* Indicates a .longcall pseudo-op.  The compiler will generate a .longcall
      pseudo-op when it finds a function call which can be relaxed.  */
   HOWTO (R_V850_LONGCALL,     /* Type.  */
-	 0,                     /* Rightshift.  */
-	 2,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,                    /* Bitsize.  */
-	 TRUE,                  /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 32,			/* Bitsize.  */
+	 TRUE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_signed, /* Complain_on_overflow.  */
 	 v850_elf_ignore_reloc, /* Special_function.  */
-	 "R_V850_LONGCALL",     /* Name.  */
-	 FALSE,                 /* Partial_inplace.  */
-	 0,                     /* Src_mask.  */
-	 0,                     /* Dst_mask.  */
-	 TRUE),                 /* PCrel_offset.  */
+	 "R_V850_LONGCALL",	/* Name.  */
+	 FALSE,			/* Partial_inplace.  */
+	 0,			/* Src_mask.  */
+	 0,			/* Dst_mask.  */
+	 TRUE),			/* PCrel_offset.  */
 
   /* Indicates a .longjump pseudo-op.  The compiler will generate a
      .longjump pseudo-op when it finds a branch which can be relaxed.  */
   HOWTO (R_V850_LONGJUMP,     /* Type.  */
-	 0,                     /* Rightshift.  */
-	 2,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,                    /* Bitsize.  */
-	 TRUE,                  /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 32,			/* Bitsize.  */
+	 TRUE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_signed, /* Complain_on_overflow.  */
 	 v850_elf_ignore_reloc, /* Special_function.  */
-	 "R_V850_LONGJUMP",     /* Name.  */
-	 FALSE,                 /* Partial_inplace.  */
-	 0,                     /* Src_mask.  */
-	 0,                     /* Dst_mask.  */
-	 TRUE),                 /* PCrel_offset.  */
-
-  HOWTO (R_V850_ALIGN,        /* Type.  */
-	 0,                     /* Rightshift.  */
-	 1,                     /* Size (0 = byte, 1 = short, 2 = long).  */
-	 0,                     /* Bitsize.  */
-	 FALSE,                 /* PC_relative.  */
-	 0,                     /* Bitpos.  */
+	 "R_V850_LONGJUMP",	/* Name.  */
+	 FALSE,			/* Partial_inplace.  */
+	 0,			/* Src_mask.  */
+	 0,			/* Dst_mask.  */
+	 TRUE),			/* PCrel_offset.  */
+
+  HOWTO (R_V850_ALIGN,	      /* Type.  */
+	 0,			/* Rightshift.  */
+	 1,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 0,			/* Bitsize.  */
+	 FALSE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_unsigned, /* Complain_on_overflow.  */
 	 v850_elf_ignore_reloc, /* Special_function.  */
-	 "R_V850_ALIGN",        /* Name.  */
-	 FALSE,                 /* Partial_inplace.  */
-	 0,                     /* Src_mask.  */
-	 0,                     /* Dst_mask.  */
-	 TRUE),                 /* PCrel_offset.  */
+	 "R_V850_ALIGN",	/* Name.  */
+	 FALSE,			/* Partial_inplace.  */
+	 0,			/* Src_mask.  */
+	 0,			/* Dst_mask.  */
+	 TRUE),			/* PCrel_offset.  */
 
   /* Simple pc-relative 32bit reloc.  */
   HOWTO (R_V850_REL32,			/* Type.  */
@@ -1404,7 +1400,7 @@ static reloc_howto_type v850_elf_howto_t
 	 0xfffffffe,			/* dst_mask.  */
 	 TRUE),				/* pcrel_offset.  */
 
-  /* A absolute 32 bit branch.	*/
+  /* A absolute 32 bit branch.  */
   HOWTO (R_V850_32_ABS,			/* type.  */
 	 1,				/* rightshift.  */
 	 2,				/* size (0 = byte, 1 = short, 2 = long).  */
@@ -1692,58 +1688,58 @@ struct v850_elf_reloc_map
 
 static const struct v850_elf_reloc_map v850_elf_reloc_map[] =
 {
-  { BFD_RELOC_NONE,                        R_V850_NONE                   },
-  { BFD_RELOC_V850_9_PCREL,                R_V850_9_PCREL                },
-  { BFD_RELOC_V850_22_PCREL,               R_V850_22_PCREL               },
-  { BFD_RELOC_HI16_S,                      R_V850_HI16_S                 },
-  { BFD_RELOC_HI16,                        R_V850_HI16                   },
-  { BFD_RELOC_LO16,                        R_V850_LO16                   },
-  { BFD_RELOC_32,                          R_V850_ABS32                  },
-  { BFD_RELOC_32_PCREL,                    R_V850_REL32                  },
-  { BFD_RELOC_16,                          R_V850_16                     },
-  { BFD_RELOC_8,                           R_V850_8                      },
-  { BFD_RELOC_V850_SDA_16_16_OFFSET,       R_V850_SDA_16_16_OFFSET       },
-  { BFD_RELOC_V850_SDA_15_16_OFFSET,       R_V850_SDA_15_16_OFFSET       },
-  { BFD_RELOC_V850_ZDA_16_16_OFFSET,       R_V850_ZDA_16_16_OFFSET       },
-  { BFD_RELOC_V850_ZDA_15_16_OFFSET,       R_V850_ZDA_15_16_OFFSET       },
-  { BFD_RELOC_V850_TDA_6_8_OFFSET,         R_V850_TDA_6_8_OFFSET         },
-  { BFD_RELOC_V850_TDA_7_8_OFFSET,         R_V850_TDA_7_8_OFFSET         },
-  { BFD_RELOC_V850_TDA_7_7_OFFSET,         R_V850_TDA_7_7_OFFSET         },
-  { BFD_RELOC_V850_TDA_16_16_OFFSET,       R_V850_TDA_16_16_OFFSET       },
-  { BFD_RELOC_V850_TDA_4_5_OFFSET,         R_V850_TDA_4_5_OFFSET         },
-  { BFD_RELOC_V850_TDA_4_4_OFFSET,         R_V850_TDA_4_4_OFFSET         },
-  { BFD_RELOC_V850_LO16_SPLIT_OFFSET,      R_V850_LO16_SPLIT_OFFSET      },
+  { BFD_RELOC_NONE,			   R_V850_NONE			 },
+  { BFD_RELOC_V850_9_PCREL,		   R_V850_9_PCREL		 },
+  { BFD_RELOC_V850_22_PCREL,		   R_V850_22_PCREL		 },
+  { BFD_RELOC_HI16_S,			   R_V850_HI16_S		 },
+  { BFD_RELOC_HI16,			   R_V850_HI16			 },
+  { BFD_RELOC_LO16,			   R_V850_LO16			 },
+  { BFD_RELOC_32,			   R_V850_ABS32			 },
+  { BFD_RELOC_32_PCREL,			   R_V850_REL32			 },
+  { BFD_RELOC_16,			   R_V850_16			 },
+  { BFD_RELOC_8,			   R_V850_8			 },
+  { BFD_RELOC_V850_SDA_16_16_OFFSET,	   R_V850_SDA_16_16_OFFSET	 },
+  { BFD_RELOC_V850_SDA_15_16_OFFSET,	   R_V850_SDA_15_16_OFFSET	 },
+  { BFD_RELOC_V850_ZDA_16_16_OFFSET,	   R_V850_ZDA_16_16_OFFSET	 },
+  { BFD_RELOC_V850_ZDA_15_16_OFFSET,	   R_V850_ZDA_15_16_OFFSET	 },
+  { BFD_RELOC_V850_TDA_6_8_OFFSET,	   R_V850_TDA_6_8_OFFSET	 },
+  { BFD_RELOC_V850_TDA_7_8_OFFSET,	   R_V850_TDA_7_8_OFFSET	 },
+  { BFD_RELOC_V850_TDA_7_7_OFFSET,	   R_V850_TDA_7_7_OFFSET	 },
+  { BFD_RELOC_V850_TDA_16_16_OFFSET,	   R_V850_TDA_16_16_OFFSET	 },
+  { BFD_RELOC_V850_TDA_4_5_OFFSET,	   R_V850_TDA_4_5_OFFSET	 },
+  { BFD_RELOC_V850_TDA_4_4_OFFSET,	   R_V850_TDA_4_4_OFFSET	 },
+  { BFD_RELOC_V850_LO16_SPLIT_OFFSET,	   R_V850_LO16_SPLIT_OFFSET	 },
   { BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET, R_V850_SDA_16_16_SPLIT_OFFSET },
   { BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET, R_V850_ZDA_16_16_SPLIT_OFFSET },
-  { BFD_RELOC_V850_CALLT_6_7_OFFSET,       R_V850_CALLT_6_7_OFFSET       },
-  { BFD_RELOC_V850_CALLT_16_16_OFFSET,     R_V850_CALLT_16_16_OFFSET     },
-  { BFD_RELOC_VTABLE_INHERIT,              R_V850_GNU_VTINHERIT          },
-  { BFD_RELOC_VTABLE_ENTRY,                R_V850_GNU_VTENTRY            },
-  { BFD_RELOC_V850_LONGCALL,               R_V850_LONGCALL               },
-  { BFD_RELOC_V850_LONGJUMP,               R_V850_LONGJUMP               },
-  { BFD_RELOC_V850_ALIGN,                  R_V850_ALIGN                  },
-  { BFD_RELOC_V850_16_PCREL,               R_V850_16_PCREL               },
-  { BFD_RELOC_V850_17_PCREL,               R_V850_17_PCREL               },
-  { BFD_RELOC_V850_23,                     R_V850_23                     },
-  { BFD_RELOC_V850_32_PCREL,               R_V850_32_PCREL               },
-  { BFD_RELOC_V850_32_ABS,                 R_V850_32_ABS                 },
-  { BFD_RELOC_V850_16_SPLIT_OFFSET,        R_V850_HI16                   },
-  { BFD_RELOC_V850_16_S1,                  R_V850_16_S1                  },
-  { BFD_RELOC_V850_LO16_S1,                R_V850_LO16_S1                },
-  { BFD_RELOC_V850_CALLT_15_16_OFFSET,     R_V850_CALLT_15_16_OFFSET     },
-  { BFD_RELOC_V850_32_GOTPCREL,            R_V850_32_GOTPCREL            },
-  { BFD_RELOC_V850_16_GOT,                 R_V850_16_GOT                 },
-  { BFD_RELOC_V850_32_GOT,                 R_V850_32_GOT                 },
-  { BFD_RELOC_V850_22_PLT_PCREL,           R_V850_22_PLT                 },
-  { BFD_RELOC_V850_32_PLT_PCREL,           R_V850_32_PLT                 },
-  { BFD_RELOC_V850_COPY,                   R_V850_COPY                   },
-  { BFD_RELOC_V850_GLOB_DAT,               R_V850_GLOB_DAT               },
-  { BFD_RELOC_V850_JMP_SLOT,               R_V850_JMP_SLOT               },
-  { BFD_RELOC_V850_RELATIVE,               R_V850_RELATIVE               },
-  { BFD_RELOC_V850_16_GOTOFF,              R_V850_16_GOTOFF              },
-  { BFD_RELOC_V850_32_GOTOFF,              R_V850_32_GOTOFF              },
-  { BFD_RELOC_V850_CODE,                   R_V850_CODE                   },
-  { BFD_RELOC_V850_DATA,                   R_V850_DATA                   },
+  { BFD_RELOC_V850_CALLT_6_7_OFFSET,	   R_V850_CALLT_6_7_OFFSET	 },
+  { BFD_RELOC_V850_CALLT_16_16_OFFSET,	   R_V850_CALLT_16_16_OFFSET	 },
+  { BFD_RELOC_VTABLE_INHERIT,		   R_V850_GNU_VTINHERIT		 },
+  { BFD_RELOC_VTABLE_ENTRY,		   R_V850_GNU_VTENTRY		 },
+  { BFD_RELOC_V850_LONGCALL,		   R_V850_LONGCALL		 },
+  { BFD_RELOC_V850_LONGJUMP,		   R_V850_LONGJUMP		 },
+  { BFD_RELOC_V850_ALIGN,		   R_V850_ALIGN			 },
+  { BFD_RELOC_V850_16_PCREL,		   R_V850_16_PCREL		 },
+  { BFD_RELOC_V850_17_PCREL,		   R_V850_17_PCREL		 },
+  { BFD_RELOC_V850_23,			   R_V850_23			 },
+  { BFD_RELOC_V850_32_PCREL,		   R_V850_32_PCREL		 },
+  { BFD_RELOC_V850_32_ABS,		   R_V850_32_ABS		 },
+  { BFD_RELOC_V850_16_SPLIT_OFFSET,	   R_V850_HI16			 },
+  { BFD_RELOC_V850_16_S1,		   R_V850_16_S1			 },
+  { BFD_RELOC_V850_LO16_S1,		   R_V850_LO16_S1		 },
+  { BFD_RELOC_V850_CALLT_15_16_OFFSET,	   R_V850_CALLT_15_16_OFFSET	 },
+  { BFD_RELOC_V850_32_GOTPCREL,		   R_V850_32_GOTPCREL		 },
+  { BFD_RELOC_V850_16_GOT,		   R_V850_16_GOT		 },
+  { BFD_RELOC_V850_32_GOT,		   R_V850_32_GOT		 },
+  { BFD_RELOC_V850_22_PLT_PCREL,	   R_V850_22_PLT		 },
+  { BFD_RELOC_V850_32_PLT_PCREL,	   R_V850_32_PLT		 },
+  { BFD_RELOC_V850_COPY,		   R_V850_COPY			 },
+  { BFD_RELOC_V850_GLOB_DAT,		   R_V850_GLOB_DAT		 },
+  { BFD_RELOC_V850_JMP_SLOT,		   R_V850_JMP_SLOT		 },
+  { BFD_RELOC_V850_RELATIVE,		   R_V850_RELATIVE		 },
+  { BFD_RELOC_V850_16_GOTOFF,		   R_V850_16_GOTOFF		 },
+  { BFD_RELOC_V850_32_GOTOFF,		   R_V850_32_GOTOFF		 },
+  { BFD_RELOC_V850_CODE,		   R_V850_CODE			 },
+  { BFD_RELOC_V850_DATA,		   R_V850_DATA			 },
 };
 
 #define V800_RELOC(name,sz,bit,shift,complain,pcrel,resolver)		 \
@@ -2051,7 +2047,7 @@ v850_elf_final_link_relocate (reloc_howt
     case R_V850_SDA_16_16_SPLIT_OFFSET:
     case R_V810_GPWLO_1:
       {
-	unsigned long                gp;
+	unsigned long		     gp;
 	struct bfd_link_hash_entry * h;
 
 	if (sym_sec == NULL)
@@ -2079,7 +2075,7 @@ v850_elf_final_link_relocate (reloc_howt
     case R_V850_TDA_6_8_OFFSET:
     case R_V850_TDA_16_16_OFFSET:
       {
-	unsigned long                ep;
+	unsigned long		     ep;
 	struct bfd_link_hash_entry * h;
 
 	/* Get the value of __ep.  */
@@ -2098,7 +2094,7 @@ v850_elf_final_link_relocate (reloc_howt
 
     case R_V850_CALLT_6_7_OFFSET:
       {
-	unsigned long                ctbp;
+	unsigned long		     ctbp;
 	struct bfd_link_hash_entry * h;
 
 	/* Get the value of __ctbp.  */
@@ -2117,7 +2113,7 @@ v850_elf_final_link_relocate (reloc_howt
     case R_V850_CALLT_15_16_OFFSET:
     case R_V850_CALLT_16_16_OFFSET:
       {
-	unsigned long                ctbp;
+	unsigned long		     ctbp;
 	struct bfd_link_hash_entry * h;
 
 	if (sym_sec == NULL)
@@ -2200,8 +2196,8 @@ v850_elf_relocate_section (bfd *output_b
       r_type   = ELF32_R_TYPE (rel->r_info);
 
       if (r_type == R_V850_GNU_VTENTRY
-          || r_type == R_V850_GNU_VTINHERIT)
-        continue;
+	  || r_type == R_V850_GNU_VTINHERIT)
+	continue;
 
       if (bfd_get_arch (input_bfd) == bfd_arch_v850_rh850)
 	howto = v800_elf_howto_table + (r_type - R_V810_NONE);
@@ -2450,7 +2446,9 @@ v850_elf_copy_notes (bfd *ibfd, bfd *obf
 	BFD_ASSERT (bfd_malloc_and_get_section (ibfd, inotes, & icont));
 
       if ((ocont = elf_section_data (onotes)->this_hdr.contents) == NULL)
-	BFD_ASSERT (bfd_malloc_and_get_section (obfd, onotes, & ocont));
+	/* If the output is being stripped then it is possible for
+	   the notes section to disappear.  In this case do nothing.  */
+	return;
 
       /* Copy/overwrite notes from the input to the output.  */
       memcpy (ocont, icont, bfd_section_size (obfd, onotes));
@@ -2523,7 +2521,7 @@ v850_elf_merge_notes (bfd * ibfd, bfd *o
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("error: %B needs 8-byte aligment but %B is set for 4-byte alignment"),
+		    (_("error: %B needs 8-byte alignment but %B is set for 4-byte alignment"),
 				      ibfd, obfd);
 		  result = FALSE;
 		}
@@ -2822,11 +2820,11 @@ v850_elf_merge_private_bfd_data (bfd *ib
       && (in_flags & EF_V850_ARCH) != E_V850_ARCH)
     {
       /* Allow earlier architecture binaries to be linked with later binaries.
-         Set the output binary to the later architecture, except for v850e1,
-         which we set to v850e.  */
+	 Set the output binary to the later architecture, except for v850e1,
+	 which we set to v850e.  */
       if (   (in_flags  & EF_V850_ARCH) == E_V850E1_ARCH
-          && (out_flags & EF_V850_ARCH) == E_V850E_ARCH)
-        return result;
+	  && (out_flags & EF_V850_ARCH) == E_V850E_ARCH)
+	return result;
 
       if (   (in_flags  & EF_V850_ARCH) == E_V850_ARCH
 	  && (out_flags & EF_V850_ARCH) == E_V850E_ARCH)
@@ -2858,7 +2856,7 @@ v850_elf_merge_private_bfd_data (bfd *ib
       if ((   (in_flags & EF_V850_ARCH) == E_V850_ARCH
 	   || (in_flags & EF_V850_ARCH) == E_V850E_ARCH
 	   || (in_flags & EF_V850_ARCH) == E_V850E2_ARCH
-           || (in_flags & EF_V850_ARCH) == E_V850E2V3_ARCH)
+	   || (in_flags & EF_V850_ARCH) == E_V850E2V3_ARCH)
 	  && (out_flags & EF_V850_ARCH) == E_V850E3V5_ARCH)
 	{
 	  elf_elfheader (obfd)->e_flags =
@@ -2995,15 +2993,15 @@ v850_elf_symbol_processing (bfd *abfd, a
       if (v850_elf_scom_section.name == NULL)
 	{
 	  /* Initialize the small common section.  */
-	  v850_elf_scom_section.name           = ".scommon";
-	  v850_elf_scom_section.flags          = SEC_IS_COMMON | SEC_ALLOC | SEC_DATA;
+	  v850_elf_scom_section.name	       = ".scommon";
+	  v850_elf_scom_section.flags	       = SEC_IS_COMMON | SEC_ALLOC | SEC_DATA;
 	  v850_elf_scom_section.output_section = & v850_elf_scom_section;
-	  v850_elf_scom_section.symbol         = & v850_elf_scom_symbol;
+	  v850_elf_scom_section.symbol	       = & v850_elf_scom_symbol;
 	  v850_elf_scom_section.symbol_ptr_ptr = & v850_elf_scom_symbol_ptr;
-	  v850_elf_scom_symbol.name            = ".scommon";
-	  v850_elf_scom_symbol.flags           = BSF_SECTION_SYM;
-	  v850_elf_scom_symbol.section         = & v850_elf_scom_section;
-	  v850_elf_scom_symbol_ptr             = & v850_elf_scom_symbol;
+	  v850_elf_scom_symbol.name	       = ".scommon";
+	  v850_elf_scom_symbol.flags	       = BSF_SECTION_SYM;
+	  v850_elf_scom_symbol.section	       = & v850_elf_scom_section;
+	  v850_elf_scom_symbol_ptr	       = & v850_elf_scom_symbol;
 	}
       asym->section = & v850_elf_scom_section;
       asym->value = elfsym->internal_elf_sym.st_size;
@@ -3013,15 +3011,15 @@ v850_elf_symbol_processing (bfd *abfd, a
       if (v850_elf_tcom_section.name == NULL)
 	{
 	  /* Initialize the tcommon section.  */
-	  v850_elf_tcom_section.name           = ".tcommon";
-	  v850_elf_tcom_section.flags          = SEC_IS_COMMON;
+	  v850_elf_tcom_section.name	       = ".tcommon";
+	  v850_elf_tcom_section.flags	       = SEC_IS_COMMON;
 	  v850_elf_tcom_section.output_section = & v850_elf_tcom_section;
-	  v850_elf_tcom_section.symbol         = & v850_elf_tcom_symbol;
+	  v850_elf_tcom_section.symbol	       = & v850_elf_tcom_symbol;
 	  v850_elf_tcom_section.symbol_ptr_ptr = & v850_elf_tcom_symbol_ptr;
-	  v850_elf_tcom_symbol.name            = ".tcommon";
-	  v850_elf_tcom_symbol.flags           = BSF_SECTION_SYM;
-	  v850_elf_tcom_symbol.section         = & v850_elf_tcom_section;
-	  v850_elf_tcom_symbol_ptr             = & v850_elf_tcom_symbol;
+	  v850_elf_tcom_symbol.name	       = ".tcommon";
+	  v850_elf_tcom_symbol.flags	       = BSF_SECTION_SYM;
+	  v850_elf_tcom_symbol.section	       = & v850_elf_tcom_section;
+	  v850_elf_tcom_symbol_ptr	       = & v850_elf_tcom_symbol;
 	}
       asym->section = & v850_elf_tcom_section;
       asym->value = elfsym->internal_elf_sym.st_size;
@@ -3031,15 +3029,15 @@ v850_elf_symbol_processing (bfd *abfd, a
       if (v850_elf_zcom_section.name == NULL)
 	{
 	  /* Initialize the zcommon section.  */
-	  v850_elf_zcom_section.name           = ".zcommon";
-	  v850_elf_zcom_section.flags          = SEC_IS_COMMON;
+	  v850_elf_zcom_section.name	       = ".zcommon";
+	  v850_elf_zcom_section.flags	       = SEC_IS_COMMON;
 	  v850_elf_zcom_section.output_section = & v850_elf_zcom_section;
-	  v850_elf_zcom_section.symbol         = & v850_elf_zcom_symbol;
+	  v850_elf_zcom_section.symbol	       = & v850_elf_zcom_symbol;
 	  v850_elf_zcom_section.symbol_ptr_ptr = & v850_elf_zcom_symbol_ptr;
-	  v850_elf_zcom_symbol.name            = ".zcommon";
-	  v850_elf_zcom_symbol.flags           = BSF_SECTION_SYM;
-	  v850_elf_zcom_symbol.section         = & v850_elf_zcom_section;
-	  v850_elf_zcom_symbol_ptr             = & v850_elf_zcom_symbol;
+	  v850_elf_zcom_symbol.name	       = ".zcommon";
+	  v850_elf_zcom_symbol.flags	       = BSF_SECTION_SYM;
+	  v850_elf_zcom_symbol.section	       = & v850_elf_zcom_section;
+	  v850_elf_zcom_symbol_ptr	       = & v850_elf_zcom_symbol;
 	}
       asym->section = & v850_elf_zcom_section;
       asym->value = elfsym->internal_elf_sym.st_size;
@@ -3286,7 +3284,7 @@ v850_elf_relax_delete_bytes (bfd *abfd,
 #if (DEBUG_RELAX & 2)
 	  {
 	    char * name = bfd_elf_string_from_elf_section
-	                   (abfd, symtab_hdr->sh_link, isym.st_name);
+			   (abfd, symtab_hdr->sh_link, isym.st_name);
 	    fprintf (stderr,
 	       "relax_delete: local: sec: %s, sym: %s (%d), value: %x + %x + %x addend %x\n",
 	       sec->name, name, isym.st_name,
@@ -3321,7 +3319,7 @@ v850_elf_relax_delete_bytes (bfd *abfd,
 	  && (paddr < addr + count || paddr >= toaddr))
 	irel->r_addend += count;
       else if (    (symval < addr + count || symval >= toaddr)
-	        && (paddr >= addr + count && paddr < toaddr))
+		&& (paddr >= addr + count && paddr < toaddr))
 	irel->r_addend -= count;
     }
 
@@ -3411,24 +3409,24 @@ v850_elf_relax_delete_bytes (bfd *abfd,
   return TRUE;
 }
 
-#define NOP_OPCODE 	(0x0000)
-#define MOVHI	    	0x0640				/* 4byte.  */
-#define MOVHI_MASK  	0x07e0
+#define NOP_OPCODE	(0x0000)
+#define MOVHI		0x0640				/* 4byte.  */
+#define MOVHI_MASK	0x07e0
 #define MOVHI_R1(insn)	((insn) & 0x1f)			/* 4byte.  */
 #define MOVHI_R2(insn)	((insn) >> 11)
-#define MOVEA	    	0x0620				/* 2byte.  */
-#define MOVEA_MASK  	0x07e0
+#define MOVEA		0x0620				/* 2byte.  */
+#define MOVEA_MASK	0x07e0
 #define MOVEA_R1(insn)	((insn) & 0x1f)
 #define MOVEA_R2(insn)	((insn) >> 11)
-#define JARL_4	    	0x00040780				/* 4byte.  */
-#define JARL_4_MASK 	0xFFFF07FF
+#define JARL_4		0x00040780				/* 4byte.  */
+#define JARL_4_MASK	0xFFFF07FF
 #define JARL_R2(insn)	(int)(((insn) & (~JARL_4_MASK)) >> 11)
-#define ADD_I       	0x0240					/* 2byte.  */
-#define ADD_I_MASK  	0x07e0
+#define ADD_I		0x0240					/* 2byte.  */
+#define ADD_I_MASK	0x07e0
 #define ADD_I5(insn)	((((insn) & 0x001f) << 11) >> 11)	/* 2byte.  */
 #define ADD_R2(insn)	((insn) >> 11)
-#define JMP_R	    	0x0060					/* 2byte.  */
-#define JMP_R_MASK 	0xFFE0
+#define JMP_R		0x0060					/* 2byte.  */
+#define JMP_R_MASK	0xFFE0
 #define JMP_R1(insn)	((insn) & 0x1f)
 
 static bfd_boolean
@@ -3600,9 +3598,9 @@ v850_elf_relax_section (bfd *abfd,
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B: 0x%lx: warning: R_V850_LONGCALL points to "
+		    (_("%B: %#Lx: warning: R_V850_LONGCALL points to "
 		       "unrecognized insns"),
-		     abfd, (unsigned long) irel->r_offset);
+		     abfd, irel->r_offset);
 		  continue;
 		}
 
@@ -3610,17 +3608,17 @@ v850_elf_relax_section (bfd *abfd,
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B: 0x%lx: warning: R_V850_LONGCALL points to "
-		       "unrecognized insn 0x%x"),
+		    (_("%B: %#Lx: warning: R_V850_LONGCALL points to "
+		       "unrecognized insn %#x"),
 		     abfd,
-		     (unsigned long) irel->r_offset + no_match,
+		     irel->r_offset + no_match,
 		     insn[no_match]);
 		  continue;
 		}
 
 	      /* Get the reloc for the address from which the register is
-	         being loaded.  This reloc will tell us which function is
-	         actually being called.  */
+		 being loaded.  This reloc will tell us which function is
+		 actually being called.  */
 
 	      for (hi_irelfn = internal_relocs; hi_irelfn < irelend; hi_irelfn ++)
 		{
@@ -3655,9 +3653,9 @@ v850_elf_relax_section (bfd *abfd,
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B: 0x%lx: warning: R_V850_LONGCALL points to "
+		    (_("%B: %#Lx: warning: R_V850_LONGCALL points to "
 		       "unrecognized reloc"),
-		     abfd, (unsigned long) irel->r_offset);
+		     abfd, irel->r_offset);
 
 		  continue;
 		}
@@ -3695,9 +3693,9 @@ v850_elf_relax_section (bfd *abfd,
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B: 0x%lx: warning: R_V850_LONGCALL points to "
-		       "unrecognized reloc 0x%lx"),
-		     abfd, (unsigned long) irel->r_offset,
+		    (_("%B: %#Lx: warning: R_V850_LONGCALL points to "
+		       "unrecognized reloc %#Lx"),
+		     abfd, irel->r_offset,
 		     irelcall->r_offset);
 		  continue;
 		}
@@ -3766,12 +3764,12 @@ v850_elf_relax_section (bfd *abfd,
 		continue;
 
 	      /* For simplicity of coding, we are going to modify the section
-	         contents, the section relocs, and the BFD symbol table.  We
-	         must tell the rest of the code not to free up this
-	         information.  It would be possible to instead create a table
-	         of changes which have to be made, as is done in coff-mips.c;
-	         that would be more work, but would require less memory when
-	         the linker is run.  */
+		 contents, the section relocs, and the BFD symbol table.  We
+		 must tell the rest of the code not to free up this
+		 information.  It would be possible to instead create a table
+		 of changes which have to be made, as is done in coff-mips.c;
+		 that would be more work, but would require less memory when
+		 the linker is run.  */
 	      elf_section_data (sec)->relocs = internal_relocs;
 	      elf_section_data (sec)->this_hdr.contents = contents;
 	      symtab_hdr->contents = (bfd_byte *) isymbuf;
@@ -3838,9 +3836,9 @@ v850_elf_relax_section (bfd *abfd,
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B: 0x%lx: warning: R_V850_LONGJUMP points to "
+		    (_("%B: %#Lx: warning: R_V850_LONGJUMP points to "
 		       "unrecognized insns"),
-		     abfd, (unsigned long) irel->r_offset);
+		     abfd, irel->r_offset);
 		  continue;
 		}
 
@@ -3848,17 +3846,17 @@ v850_elf_relax_section (bfd *abfd,
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B: 0x%lx: warning: R_V850_LONGJUMP points to "
-		       "unrecognized insn 0x%x"),
+		    (_("%B: %#Lx: warning: R_V850_LONGJUMP points to "
+		       "unrecognized insn %#x"),
 		     abfd,
-		     (unsigned long) irel->r_offset + no_match,
+		     irel->r_offset + no_match,
 		     insn[no_match]);
 		  continue;
 		}
 
 	      /* Get the reloc for the address from which the register is
-	         being loaded.  This reloc will tell us which function is
-	         actually being called.  */
+		 being loaded.  This reloc will tell us which function is
+		 actually being called.  */
 	      for (hi_irelfn = internal_relocs; hi_irelfn < irelend; hi_irelfn ++)
 		{
 		  r_type = ELF32_R_TYPE (hi_irelfn->r_info);
@@ -3882,9 +3880,9 @@ v850_elf_relax_section (bfd *abfd,
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B: 0x%lx: warning: R_V850_LONGJUMP points to "
+		    (_("%B: %#Lx: warning: R_V850_LONGJUMP points to "
 		       "unrecognized reloc"),
-		     abfd, (unsigned long) irel->r_offset);
+		     abfd, irel->r_offset);
 		  continue;
 		}
 
@@ -3892,7 +3890,7 @@ v850_elf_relax_section (bfd *abfd,
 	      if (ELF32_R_SYM (hi_irelfn->r_info) < symtab_hdr->sh_info)
 		{
 		  Elf_Internal_Sym *  isym;
-		  asection *          sym_sec;
+		  asection *	      sym_sec;
 
 		  /* A local symbol.  */
 		  isym = isymbuf + ELF32_R_SYM (hi_irelfn->r_info);
@@ -3969,12 +3967,12 @@ v850_elf_relax_section (bfd *abfd,
 		continue;
 
 	      /* For simplicity of coding, we are going to modify the section
-	         contents, the section relocs, and the BFD symbol table.  We
-	         must tell the rest of the code not to free up this
-	         information.  It would be possible to instead create a table
-	         of changes which have to be made, as is done in coff-mips.c;
-	         that would be more work, but would require less memory when
-	         the linker is run.  */
+		 contents, the section relocs, and the BFD symbol table.  We
+		 must tell the rest of the code not to free up this
+		 information.  It would be possible to instead create a table
+		 of changes which have to be made, as is done in coff-mips.c;
+		 that would be more work, but would require less memory when
+		 the linker is run.  */
 	      elf_section_data (sec)->relocs = internal_relocs;
 	      elf_section_data (sec)->this_hdr.contents = contents;
 	      symtab_hdr->contents = (bfd_byte *) isymbuf;
@@ -4106,29 +4104,29 @@ static const struct bfd_elf_special_sect
   { STRING_COMMA_LEN (".call_table_data"), 0, SHT_PROGBITS,     (SHF_ALLOC + SHF_WRITE) },
   { STRING_COMMA_LEN (".call_table_text"), 0, SHT_PROGBITS,     (SHF_ALLOC + SHF_WRITE
 								 + SHF_EXECINSTR) },
-  { STRING_COMMA_LEN (".rosdata"),        -2, SHT_PROGBITS,     (SHF_ALLOC
+  { STRING_COMMA_LEN (".rosdata"),	  -2, SHT_PROGBITS,	(SHF_ALLOC
 								 + SHF_V850_GPREL) },
-  { STRING_COMMA_LEN (".rozdata"),        -2, SHT_PROGBITS,     (SHF_ALLOC
+  { STRING_COMMA_LEN (".rozdata"),	  -2, SHT_PROGBITS,	(SHF_ALLOC
 								 + SHF_V850_R0REL) },
-  { STRING_COMMA_LEN (".sbss"),           -2, SHT_NOBITS,       (SHF_ALLOC + SHF_WRITE
+  { STRING_COMMA_LEN (".sbss"),		  -2, SHT_NOBITS,	(SHF_ALLOC + SHF_WRITE
 								 + SHF_V850_GPREL) },
-  { STRING_COMMA_LEN (".scommon"),        -2, SHT_V850_SCOMMON, (SHF_ALLOC + SHF_WRITE
+  { STRING_COMMA_LEN (".scommon"),	  -2, SHT_V850_SCOMMON, (SHF_ALLOC + SHF_WRITE
 								 + SHF_V850_GPREL) },
-  { STRING_COMMA_LEN (".sdata"),          -2, SHT_PROGBITS,     (SHF_ALLOC + SHF_WRITE
+  { STRING_COMMA_LEN (".sdata"),	  -2, SHT_PROGBITS,	(SHF_ALLOC + SHF_WRITE
 								 + SHF_V850_GPREL) },
-  { STRING_COMMA_LEN (".tbss"),           -2, SHT_NOBITS,       (SHF_ALLOC + SHF_WRITE
+  { STRING_COMMA_LEN (".tbss"),		  -2, SHT_NOBITS,	(SHF_ALLOC + SHF_WRITE
 								 + SHF_V850_EPREL) },
-  { STRING_COMMA_LEN (".tcommon"),        -2, SHT_V850_TCOMMON, (SHF_ALLOC + SHF_WRITE
+  { STRING_COMMA_LEN (".tcommon"),	  -2, SHT_V850_TCOMMON, (SHF_ALLOC + SHF_WRITE
 								 + SHF_V850_R0REL) },
-  { STRING_COMMA_LEN (".tdata"),          -2, SHT_PROGBITS,     (SHF_ALLOC + SHF_WRITE
+  { STRING_COMMA_LEN (".tdata"),	  -2, SHT_PROGBITS,	(SHF_ALLOC + SHF_WRITE
 								 + SHF_V850_EPREL) },
-  { STRING_COMMA_LEN (".zbss"),           -2, SHT_NOBITS,       (SHF_ALLOC + SHF_WRITE
+  { STRING_COMMA_LEN (".zbss"),		  -2, SHT_NOBITS,	(SHF_ALLOC + SHF_WRITE
 								 + SHF_V850_R0REL) },
-  { STRING_COMMA_LEN (".zcommon"),        -2, SHT_V850_ZCOMMON, (SHF_ALLOC + SHF_WRITE
+  { STRING_COMMA_LEN (".zcommon"),	  -2, SHT_V850_ZCOMMON, (SHF_ALLOC + SHF_WRITE
 								 + SHF_V850_R0REL) },
-  { STRING_COMMA_LEN (".zdata"),          -2, SHT_PROGBITS,     (SHF_ALLOC + SHF_WRITE
+  { STRING_COMMA_LEN (".zdata"),	  -2, SHT_PROGBITS,	(SHF_ALLOC + SHF_WRITE
 								 + SHF_V850_R0REL) },
-  { NULL,                     0,           0, 0,                0 }
+  { NULL,		      0,	   0, 0,		0 }
 };
 
 #define TARGET_LITTLE_SYM			v850_elf32_vec
@@ -4142,27 +4140,27 @@ static const struct bfd_elf_special_sect
 #define elf_info_to_howto_rel			v850_elf_info_to_howto_rel
 
 #define elf_backend_check_relocs		v850_elf_check_relocs
-#define elf_backend_relocate_section    	v850_elf_relocate_section
+#define elf_backend_relocate_section		v850_elf_relocate_section
 #define elf_backend_object_p			v850_elf_object_p
-#define elf_backend_final_write_processing 	v850_elf_final_write_processing
-#define elf_backend_section_from_bfd_section 	v850_elf_section_from_bfd_section
+#define elf_backend_final_write_processing	v850_elf_final_write_processing
+#define elf_backend_section_from_bfd_section	v850_elf_section_from_bfd_section
 #define elf_backend_symbol_processing		v850_elf_symbol_processing
 #define elf_backend_add_symbol_hook		v850_elf_add_symbol_hook
-#define elf_backend_link_output_symbol_hook 	v850_elf_link_output_symbol_hook
+#define elf_backend_link_output_symbol_hook	v850_elf_link_output_symbol_hook
 #define elf_backend_section_from_shdr		v850_elf_section_from_shdr
 #define elf_backend_fake_sections		v850_elf_fake_sections
-#define elf_backend_gc_mark_hook                v850_elf_gc_mark_hook
+#define elf_backend_gc_mark_hook		v850_elf_gc_mark_hook
 #define elf_backend_special_sections		v850_elf_special_sections
 
-#define elf_backend_can_gc_sections 		1
+#define elf_backend_can_gc_sections		1
 #define elf_backend_rela_normal			1
 
 #define bfd_elf32_bfd_is_local_label_name	v850_elf_is_local_label_name
 #define bfd_elf32_bfd_is_target_special_symbol	v850_elf_is_target_special_symbol
 
 #define bfd_elf32_bfd_reloc_type_lookup		v850_elf_reloc_type_lookup
-#define bfd_elf32_bfd_reloc_name_lookup	        v850_elf_reloc_name_lookup
-#define bfd_elf32_bfd_merge_private_bfd_data 	v850_elf_merge_private_bfd_data
+#define bfd_elf32_bfd_reloc_name_lookup		v850_elf_reloc_name_lookup
+#define bfd_elf32_bfd_merge_private_bfd_data	v850_elf_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags		v850_elf_set_private_flags
 #define bfd_elf32_bfd_print_private_bfd_data	v850_elf_print_private_bfd_data
 #define bfd_elf32_bfd_relax_section		v850_elf_relax_section
@@ -4178,20 +4176,20 @@ static const struct bfd_elf_special_sect
 
 static const struct v850_elf_reloc_map v800_elf_reloc_map[] =
 {
-  { BFD_RELOC_NONE,                   R_V810_NONE    },
-  { BFD_RELOC_8,                      R_V810_BYTE    },
-  { BFD_RELOC_16,                     R_V810_HWORD   },
-  { BFD_RELOC_32,                     R_V810_WORD    },
-  { BFD_RELOC_LO16,                   R_V810_WLO     },
-  { BFD_RELOC_HI16,                   R_V810_WHI     },
-  { BFD_RELOC_HI16_S,                 R_V810_WHI1    },
-  { BFD_RELOC_V850_32_PCREL,          R_V850_PC32    },
-  { BFD_RELOC_V850_22_PCREL,          R_V850_PCR22   },
-  { BFD_RELOC_V850_17_PCREL,          R_V850_PC17    },
-  { BFD_RELOC_V850_16_PCREL,          R_V850_PC16U   },
+  { BFD_RELOC_NONE,		      R_V810_NONE    },
+  { BFD_RELOC_8,		      R_V810_BYTE    },
+  { BFD_RELOC_16,		      R_V810_HWORD   },
+  { BFD_RELOC_32,		      R_V810_WORD    },
+  { BFD_RELOC_LO16,		      R_V810_WLO     },
+  { BFD_RELOC_HI16,		      R_V810_WHI     },
+  { BFD_RELOC_HI16_S,		      R_V810_WHI1    },
+  { BFD_RELOC_V850_32_PCREL,	      R_V850_PC32    },
+  { BFD_RELOC_V850_22_PCREL,	      R_V850_PCR22   },
+  { BFD_RELOC_V850_17_PCREL,	      R_V850_PC17    },
+  { BFD_RELOC_V850_16_PCREL,	      R_V850_PC16U   },
   { BFD_RELOC_V850_9_PCREL,	      R_V850_PC9     },
-  { BFD_RELOC_V850_LO16_S1,           R_V810_WLO_1   }, /* Or R_V850_HWLO or R_V850_HWLO_1.  */
-  { BFD_RELOC_V850_23,                R_V850_WLO23   },
+  { BFD_RELOC_V850_LO16_S1,	      R_V810_WLO_1   }, /* Or R_V850_HWLO or R_V850_HWLO_1.  */
+  { BFD_RELOC_V850_23,		      R_V850_WLO23   },
   { BFD_RELOC_V850_LO16_SPLIT_OFFSET, R_V850_BLO     },
   { BFD_RELOC_V850_ZDA_16_16_OFFSET,  R_V810_HWORD   },
   { BFD_RELOC_V850_TDA_16_16_OFFSET,  R_V810_HWORD   },
@@ -4244,8 +4242,8 @@ v800_elf_reloc_name_lookup (bfd * abfd, 
 /* Set the howto pointer in CACHE_PTR for a V800 ELF reloc.  */
 
 static void
-v800_elf_info_to_howto (bfd *               abfd,
-			arelent *           cache_ptr,
+v800_elf_info_to_howto (bfd *		    abfd,
+			arelent *	    cache_ptr,
 			Elf_Internal_Rela * dst)
 {
   unsigned int r_type = ELF32_R_TYPE (dst->r_info);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-vax.c ./bfd/elf32-vax.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-vax.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-vax.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* VAX series support for 32-bit ELF
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Contributed by Matt Thomas <matt@3am-software.com>.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -588,10 +588,6 @@ elf_vax_check_relocs (bfd *abfd, struct 
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
@@ -632,8 +628,8 @@ elf_vax_check_relocs (bfd *abfd, struct 
 		  if (eh->got_addend != (bfd_vma) rel->r_addend)
 		    _bfd_error_handler
 		      /* xgettext:c-format */
-		      (_("%B: warning: GOT addend of %ld to `%s' does"
-			 " not match previous GOT addend of %ld"),
+		      (_("%B: warning: GOT addend of %Ld to `%s' does"
+			 " not match previous GOT addend of %Ld"),
 			 abfd, rel->r_addend, h->root.root.string,
 			 eh->got_addend);
 
@@ -644,10 +640,10 @@ elf_vax_check_relocs (bfd *abfd, struct 
 	case R_VAX_PLT32:
 	  /* This symbol requires a procedure linkage table entry.  We
 	     actually build the entry in adjust_dynamic_symbol,
-             because this might be a case of linking PIC code which is
-             never referenced by a dynamic object, in which case we
-             don't need to generate a procedure linkage table entry
-             after all.  */
+	     because this might be a case of linking PIC code which is
+	     never referenced by a dynamic object, in which case we
+	     don't need to generate a procedure linkage table entry
+	     after all.  */
 	  BFD_ASSERT (h != NULL);
 
 	  /* If this is a local symbol, we resolve it directly without
@@ -821,68 +817,6 @@ elf_vax_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-/* Update the got entry reference counts for the section being removed.  */
-
-static bfd_boolean
-elf_vax_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info, asection *sec,
-		       const Elf_Internal_Rela *relocs)
-{
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  const Elf_Internal_Rela *rel, *relend;
-  bfd *dynobj;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  dynobj = elf_hash_table (info)->dynobj;
-  if (dynobj == NULL)
-    return TRUE;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  sym_hashes = elf_sym_hashes (abfd);
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	}
-
-      switch (ELF32_R_TYPE (rel->r_info))
-	{
-	case R_VAX_GOT32:
-	  if (h != NULL && h->got.refcount > 0)
-	    --h->got.refcount;
-	  break;
-
-	case R_VAX_PLT32:
-	case R_VAX_PC8:
-	case R_VAX_PC16:
-	case R_VAX_PC32:
-	case R_VAX_8:
-	case R_VAX_16:
-	case R_VAX_32:
-	  if (h != NULL && h->plt.refcount > 0)
-	    --h->plt.refcount;
-	  break;
-
-	default:
-	  break;
-	}
-    }
-
-  return TRUE;
-}
-
 /* Adjust a symbol defined by a dynamic object and referenced by a
    regular object.  The current definition is in some section of the
    dynamic object, but we're not including those sections.  We have to
@@ -901,7 +835,7 @@ elf_vax_adjust_dynamic_symbol (struct bf
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
 	      && (h->needs_plt
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -977,12 +911,12 @@ elf_vax_adjust_dynamic_symbol (struct bf
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -1150,7 +1084,7 @@ elf_vax_size_dynamic_sections (bfd *outp
 	      asection *target;
 
 	      /* Remember whether there are any reloc sections other
-                 than .rela.plt.  */
+		 than .rela.plt.  */
 	      if (strcmp (name, ".rela.plt") != 0)
 		{
 		  const char *outname;
@@ -1508,7 +1442,7 @@ elf_vax_relocate_section (bfd *output_bf
 	  else if (rel->r_addend != 0)
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("%B: warning: PLT addend of %d to `%s'"
+	      (_("%B: warning: PLT addend of %Ld to `%s'"
 		 " from %A section ignored"),
 	       input_bfd, rel->r_addend, h->root.root.string, input_section);
 	  rel->r_addend = 0;
@@ -1567,7 +1501,7 @@ elf_vax_relocate_section (bfd *output_bf
 	      if (skip)
 		  memset (&outrel, 0, sizeof outrel);
 	      /* h->dynindx may be -1 if the symbol was marked to
-                 become local.  */
+		 become local.  */
 	      else if (h != NULL
 		       && ((! info->symbolic && h->dynindx != -1)
 			   || !h->def_regular))
@@ -1640,7 +1574,7 @@ elf_vax_relocate_section (bfd *output_bf
 		  else
 		    _bfd_error_handler
 		      /* xgettext:c-format */
-		      (_("%B: warning: %s relocation to 0x%x from %A section"),
+		      (_("%B: warning: %s relocation to %#Lx from %A section"),
 		      input_bfd, howto->name, outrel.r_addend,
 		      input_section);
 		}
@@ -1649,9 +1583,9 @@ elf_vax_relocate_section (bfd *output_bf
 	      bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
 
 	      /* This reloc will be computed at runtime, so there's no
-                 need to do anything now, except for R_VAX_32
-                 relocations that have been turned into
-                 R_VAX_RELATIVE.  */
+		 need to do anything now, except for R_VAX_32
+		 relocations that have been turned into
+		 R_VAX_RELATIVE.  */
 	      if (!relocate)
 		continue;
 	    }
@@ -1668,8 +1602,8 @@ elf_vax_relocate_section (bfd *output_bf
 	}
 
       /* VAX PCREL relocations are from the end of relocation, not the start.
-         So subtract the difference from the relocation amount since we can't
-         add it to the offset.  */
+	 So subtract the difference from the relocation amount since we can't
+	 add it to the offset.  */
       if (howto->pc_relative && howto->pcrel_offset)
 	relocation -= bfd_get_reloc_size(howto);
 
@@ -1760,7 +1694,7 @@ elf_vax_finish_dynamic_symbol (bfd *outp
 
       /* Fill in the entry in the procedure linkage table.  */
       memcpy (splt->contents + h->plt.offset, elf_vax_plt_entry,
-	          PLT_ENTRY_SIZE);
+		  PLT_ENTRY_SIZE);
 
       /* The offset is relative to the first extension word.  */
       bfd_put_32 (output_bfd,
@@ -1910,17 +1844,17 @@ elf_vax_finish_dynamic_sections (bfd *ou
 	{
 	  memcpy (splt->contents, elf_vax_plt0_entry, PLT_ENTRY_SIZE);
 	  bfd_put_32 (output_bfd,
-		          (sgot->output_section->vma
-		           + sgot->output_offset + 4
-		           - (splt->output_section->vma + 6)),
-		          splt->contents + 2);
+			  (sgot->output_section->vma
+			   + sgot->output_offset + 4
+			   - (splt->output_section->vma + 6)),
+			  splt->contents + 2);
 	  bfd_put_32 (output_bfd,
-		          (sgot->output_section->vma
-		           + sgot->output_offset + 8
-		           - (splt->output_section->vma + 12)),
-		          splt->contents + 8);
-          elf_section_data (splt->output_section)->this_hdr.sh_entsize
-           = PLT_ENTRY_SIZE;
+			  (sgot->output_section->vma
+			   + sgot->output_offset + 8
+			   - (splt->output_section->vma + 12)),
+			  splt->contents + 8);
+	  elf_section_data (splt->output_section)->this_hdr.sh_entsize
+	   = PLT_ENTRY_SIZE;
 	}
     }
 
@@ -1994,14 +1928,13 @@ elf_vax_plt_sym_val (bfd_vma i, const as
 					elf_vax_finish_dynamic_sections
 #define elf_backend_reloc_type_class	elf_vax_reloc_type_class
 #define elf_backend_gc_mark_hook	elf_vax_gc_mark_hook
-#define elf_backend_gc_sweep_hook	elf_vax_gc_sweep_hook
 #define elf_backend_plt_sym_val		elf_vax_plt_sym_val
 #define bfd_elf32_bfd_merge_private_bfd_data \
-                                        elf32_vax_merge_private_bfd_data
+					elf32_vax_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags \
-                                        elf32_vax_set_private_flags
+					elf32_vax_set_private_flags
 #define bfd_elf32_bfd_print_private_bfd_data \
-                                        elf32_vax_print_private_bfd_data
+					elf32_vax_print_private_bfd_data
 
 #define elf_backend_can_gc_sections	1
 #define elf_backend_want_got_plt	1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-visium.c ./bfd/elf32-visium.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-visium.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-visium.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* Visium-specific support for 32-bit ELF.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-wasm32.c ./bfd/elf32-wasm32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-wasm32.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-wasm32.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* 32-bit ELF for the WebAssembly target
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -29,40 +29,40 @@
 static reloc_howto_type elf32_wasm32_howto_table[] =
 {
   HOWTO (R_WASM32_NONE,		/* type */
-         0,			/* rightshift */
-         3,			/* size (0 = byte, 1 = short, 2 = long) */
-         0,			/* bitsize */
-         FALSE,			/* pc_relative */
-         0,			/* bitpos */
-         complain_overflow_dont,/* complain_on_overflow */
-         bfd_elf_generic_reloc,	/* special_function */
-         "R_WASM32_NONE",	/* name */
-         FALSE,			/* partial_inplace */
-         0,			/* src_mask */
-         0,			/* dst_mask */
-         FALSE),		/* pcrel_offset */
+	 0,			/* rightshift */
+	 3,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_WASM32_NONE",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* 32 bit absolute */
   HOWTO (R_WASM32_32,		/* type */
-         0,			/* rightshift */
-         2,			/* size (0 = byte, 1 = short, 2 = long) */
-         32,			/* bitsize */
-         FALSE,			/* pc_relative */
-         0,			/* bitpos */
-         complain_overflow_bitfield,/* complain_on_overflow */
-         bfd_elf_generic_reloc,	/* special_function */
-         "R_WASM32_32",	/* name */
-         FALSE,			/* partial_inplace */
-         0xffffffff,		/* src_mask */
-         0xffffffff,		/* dst_mask */
-         FALSE),		/* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_WASM32_32",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 };
 
 /* Look up the relocation CODE.  */
 
 static reloc_howto_type *
 elf32_wasm32_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                                bfd_reloc_code_real_type code)
+				bfd_reloc_code_real_type code)
 {
   switch (code)
     {
@@ -81,13 +81,13 @@ elf32_wasm32_reloc_type_lookup (bfd *abf
 
 static reloc_howto_type *
 elf32_wasm32_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                                const char *r_name)
+				const char *r_name)
 {
   unsigned int i;
 
   for (i = 0; i < ARRAY_SIZE (elf32_wasm32_howto_table); i++)
     if (elf32_wasm32_howto_table[i].name != NULL
-        && strcasecmp (elf32_wasm32_howto_table[i].name, r_name) == 0)
+	&& strcasecmp (elf32_wasm32_howto_table[i].name, r_name) == 0)
       return &elf32_wasm32_howto_table[i];
 
   return NULL;
@@ -118,8 +118,8 @@ elf32_wasm32_rtype_to_howto (bfd *abfd, 
 
 static void
 elf32_wasm32_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED,
-                                arelent *cache_ptr,
-                                Elf_Internal_Rela *dst)
+				arelent *cache_ptr,
+				Elf_Internal_Rela *dst)
 {
   unsigned int r_type = ELF32_R_TYPE (dst->r_info);
   cache_ptr->howto = elf32_wasm32_rtype_to_howto (abfd, r_type);
@@ -132,13 +132,13 @@ elf32_wasm32_info_to_howto_rela (bfd *ab
    https://github.com/pipcet/binutils-gdb/issues/4  */
 #define ELF_MAXPAGESIZE		4096
 
-#define TARGET_LITTLE_SYM       wasm32_elf32_vec
+#define TARGET_LITTLE_SYM	wasm32_elf32_vec
 #define TARGET_LITTLE_NAME	"elf32-wasm32"
 
-#define elf_backend_can_gc_sections     1
-#define elf_backend_rela_normal         1
+#define elf_backend_can_gc_sections	1
+#define elf_backend_rela_normal		1
 /* For testing. */
-#define elf_backend_want_dynrelro       1
+#define elf_backend_want_dynrelro	1
 
 #define elf_info_to_howto		elf32_wasm32_info_to_howto_rela
 #define elf_info_to_howto_rel		NULL
@@ -146,10 +146,10 @@ elf32_wasm32_info_to_howto_rela (bfd *ab
 #define bfd_elf32_bfd_reloc_type_lookup elf32_wasm32_reloc_type_lookup
 #define bfd_elf32_bfd_reloc_name_lookup elf32_wasm32_reloc_name_lookup
 
-#define ELF_DYNAMIC_INTERPRETER  "/sbin/elf-dynamic-interpreter.so"
+#define ELF_DYNAMIC_INTERPRETER	 "/sbin/elf-dynamic-interpreter.so"
 
-#define elf_backend_want_got_plt 	1
-#define elf_backend_plt_readonly 	1
-#define elf_backend_got_header_size 	0
+#define elf_backend_want_got_plt	1
+#define elf_backend_plt_readonly	1
+#define elf_backend_got_header_size	0
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-xc16x.c ./bfd/elf32-xc16x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-xc16x.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-xc16x.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Infineon XC16X-specific support for 16-bit ELF.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
    Contributed by KPIT Cummins Infosystems
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -75,18 +75,18 @@ static reloc_howto_type xc16x_elf_howto_
 	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_XC16X_ABS_32,	/* type */
-  	 0,			/* rightshift */
-  	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-  	 32,			/* bitsize */
-  	 FALSE,			/* pc_relative */
-  	 0,			/* bitpos */
-  	 complain_overflow_bitfield, /* complain_on_overflow */
-  	 bfd_elf_generic_reloc,	/* special_function */
-  	 "R_XC16X_ABS_32",	/* name */
-  	 TRUE,			/* partial_inplace */
-  	 0x00000000,		/* src_mask */
-  	 0xffffffff,		/* dst_mask */
-  	 FALSE),		/* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield, /* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_XC16X_ABS_32",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x00000000,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
 
   /* A PC relative 8 bit relocation.  */
@@ -106,65 +106,65 @@ static reloc_howto_type xc16x_elf_howto_
 
   /* Relocation regarding page number.  */
     HOWTO (R_XC16X_PAG,	/* type */
-  	 0,			/* rightshift */
-  	 1,			/* size (0 = byte, 1 = short, 2 = long) */
-  	 16,			/* bitsize */
-  	 FALSE,			/* pc_relative */
-  	 0,			/* bitpos */
-  	 complain_overflow_signed, /* complain_on_overflow */
-  	 bfd_elf_generic_reloc, /* special_function */
-  	 "R_XC16X_PAG",	/* name */
-  	 TRUE,			/* partial_inplace */
-  	 0x00000000,		/* src_mask */
-  	 0x0000ffff,		/* dst_mask */
-  	 FALSE),		/* pcrel_offset */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_XC16X_PAG",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x00000000,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
 
   /* Relocation regarding page number.  */
       HOWTO (R_XC16X_POF,	/* type */
-    	 0,			/* rightshift */
-    	 1,			/* size (0 = byte, 1 = short, 2 = long) */
-    	 16,			/* bitsize */
-    	 FALSE,			/* pc_relative */
-    	 0,			/* bitpos  */
-    	 complain_overflow_signed, /* complain_on_overflow  */
-    	 bfd_elf_generic_reloc, /* special_function  */
-    	 "R_XC16X_POF",	/* name  */
-    	 TRUE,			/* partial_inplace  */
-    	 0x00000000,		/* src_mask  */
-    	 0x0000ffff,		/* dst_mask  */
-    	 FALSE),		/* pcrel_offset  */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos  */
+	 complain_overflow_signed, /* complain_on_overflow  */
+	 bfd_elf_generic_reloc, /* special_function  */
+	 "R_XC16X_POF",	/* name  */
+	 TRUE,			/* partial_inplace  */
+	 0x00000000,		/* src_mask  */
+	 0x0000ffff,		/* dst_mask  */
+	 FALSE),		/* pcrel_offset  */
 
 
   /* Relocation regarding segment number.   */
       HOWTO (R_XC16X_SEG,	/* type  */
-    	 0,			/* rightshift  */
-    	 1,			/* size (0 = byte, 1 = short, 2 = long)  */
-    	 16,			/* bitsize  */
-    	 FALSE,			/* pc_relative  */
-    	 0,			/* bitpos  */
-    	 complain_overflow_signed, /* complain_on_overflow  */
-    	 bfd_elf_generic_reloc, /* special_function  */
-    	 "R_XC16X_SEG",	/* name  */
-    	 TRUE,			/* partial_inplace  */
-    	 0x00000000,		/* src_mask  */
-    	 0x0000ffff,		/* dst_mask  */
-    	 FALSE),		/* pcrel_offset  */
+	 0,			/* rightshift  */
+	 1,			/* size (0 = byte, 1 = short, 2 = long)  */
+	 16,			/* bitsize  */
+	 FALSE,			/* pc_relative  */
+	 0,			/* bitpos  */
+	 complain_overflow_signed, /* complain_on_overflow  */
+	 bfd_elf_generic_reloc, /* special_function  */
+	 "R_XC16X_SEG",	/* name  */
+	 TRUE,			/* partial_inplace  */
+	 0x00000000,		/* src_mask  */
+	 0x0000ffff,		/* dst_mask  */
+	 FALSE),		/* pcrel_offset  */
 
   /* Relocation regarding segment offset.  */
       HOWTO (R_XC16X_SOF,	/* type  */
-    	 0,			/* rightshift  */
-    	 1,			/* size (0 = byte, 1 = short, 2 = long)  */
-    	 16,			/* bitsize  */
-    	 FALSE,			/* pc_relative  */
-    	 0,			/* bitpos  */
-    	 complain_overflow_signed, /* complain_on_overflow  */
-    	 bfd_elf_generic_reloc, /* special_function  */
-    	 "R_XC16X_SOF",	/* name */
-    	 TRUE,			/* partial_inplace  */
-    	 0x00000000,		/* src_mask  */
-    	 0x0000ffff,		/* dst_mask  */
-    	 FALSE)			/* pcrel_offset  */
+	 0,			/* rightshift  */
+	 1,			/* size (0 = byte, 1 = short, 2 = long)  */
+	 16,			/* bitsize  */
+	 FALSE,			/* pc_relative  */
+	 0,			/* bitpos  */
+	 complain_overflow_signed, /* complain_on_overflow  */
+	 bfd_elf_generic_reloc, /* special_function  */
+	 "R_XC16X_SOF",	/* name */
+	 TRUE,			/* partial_inplace  */
+	 0x00000000,		/* src_mask  */
+	 0x0000ffff,		/* dst_mask  */
+	 FALSE)			/* pcrel_offset  */
 };
 
 
@@ -178,11 +178,11 @@ struct xc16x_reloc_map
 
 static const struct xc16x_reloc_map xc16x_reloc_map [] =
 {
-  { BFD_RELOC_NONE,           R_XC16X_NONE },
-  { BFD_RELOC_8,              R_XC16X_ABS_8 },
-  { BFD_RELOC_16,             R_XC16X_ABS_16 },
-  { BFD_RELOC_32,             R_XC16X_ABS_32 },
-  { BFD_RELOC_8_PCREL,        R_XC16X_8_PCREL },
+  { BFD_RELOC_NONE,	      R_XC16X_NONE },
+  { BFD_RELOC_8,	      R_XC16X_ABS_8 },
+  { BFD_RELOC_16,	      R_XC16X_ABS_16 },
+  { BFD_RELOC_32,	      R_XC16X_ABS_32 },
+  { BFD_RELOC_8_PCREL,	      R_XC16X_8_PCREL },
   { BFD_RELOC_XC16X_PAG,      R_XC16X_PAG},
   { BFD_RELOC_XC16X_POF,      R_XC16X_POF},
   { BFD_RELOC_XC16X_SEG,      R_XC16X_SEG},
@@ -465,13 +465,13 @@ elf32_xc16x_object_p (bfd *abfd)
 #define TARGET_LITTLE_SYM       xc16x_elf32_vec
 #define TARGET_LITTLE_NAME	"elf32-xc16x"
 #define elf_backend_final_write_processing	elf32_xc16x_final_write_processing
-#define elf_backend_object_p   		elf32_xc16x_object_p
+#define elf_backend_object_p		elf32_xc16x_object_p
 #define elf_backend_can_gc_sections	1
 #define bfd_elf32_bfd_reloc_type_lookup	xc16x_reloc_type_lookup
 #define bfd_elf32_bfd_reloc_name_lookup xc16x_reloc_name_lookup
 #define elf_info_to_howto		elf32_xc16x_info_to_howto
 #define elf_info_to_howto_rel		elf32_xc16x_info_to_howto
-#define elf_backend_relocate_section  	elf32_xc16x_relocate_section
+#define elf_backend_relocate_section	elf32_xc16x_relocate_section
 #define elf_backend_rela_normal		1
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-xgate.c ./bfd/elf32-xgate.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-xgate.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-xgate.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Freescale XGATE-specific support for 32-bit ELF
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Contributed by Sean Keys(skeys@ipdatasys.com)
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -406,7 +406,7 @@ bfd_elf32_bfd_reloc_name_lookup (bfd *ab
 
   for (i = 0; i < ARRAY_SIZE (elf_xgate_howto_table); i++)
     if (elf_xgate_howto_table[i].name != NULL
-        && strcasecmp (elf_xgate_howto_table[i].name, r_name) == 0)
+	&& strcasecmp (elf_xgate_howto_table[i].name, r_name) == 0)
       return &elf_xgate_howto_table[i];
 
   return NULL;
@@ -692,32 +692,32 @@ elf32_xgate_post_process_headers (bfd *a
 
 }
 
-#define ELF_ARCH                             bfd_arch_xgate
-#define ELF_MACHINE_CODE                     EM_XGATE
-#define ELF_TARGET_ID                        XGATE_ELF_DATA
-
-#define ELF_MAXPAGESIZE                      0x1000
-
-#define TARGET_BIG_SYM                       xgate_elf32_vec
-#define TARGET_BIG_NAME                      "elf32-xgate"
-
-#define elf_info_to_howto                    0
-#define elf_info_to_howto_rel                xgate_info_to_howto_rel
-#define elf_backend_check_relocs             elf32_xgate_check_relocs
-#define elf_backend_relocate_section         elf32_xgate_relocate_section
-#define elf_backend_object_p                 xgate_elf_set_mach_from_flags
+#define ELF_ARCH			     bfd_arch_xgate
+#define ELF_MACHINE_CODE		     EM_XGATE
+#define ELF_TARGET_ID			     XGATE_ELF_DATA
+
+#define ELF_MAXPAGESIZE			     0x1000
+
+#define TARGET_BIG_SYM			     xgate_elf32_vec
+#define TARGET_BIG_NAME			     "elf32-xgate"
+
+#define elf_info_to_howto		     0
+#define elf_info_to_howto_rel		     xgate_info_to_howto_rel
+#define elf_backend_check_relocs	     elf32_xgate_check_relocs
+#define elf_backend_relocate_section	     elf32_xgate_relocate_section
+#define elf_backend_object_p		     xgate_elf_set_mach_from_flags
 #define elf_backend_final_write_processing   0
-#define elf_backend_can_gc_sections          1
-#define elf_backend_special_sections         elf32_xgate_special_sections
+#define elf_backend_can_gc_sections	     1
+#define elf_backend_special_sections	     elf32_xgate_special_sections
 #define elf_backend_post_process_headers     elf32_xgate_post_process_headers
-#define elf_backend_add_symbol_hook          elf32_xgate_add_symbol_hook
+#define elf_backend_add_symbol_hook	     elf32_xgate_add_symbol_hook
 
 #define bfd_elf32_bfd_link_hash_table_create xgate_elf_bfd_link_hash_table_create
-#define bfd_elf32_bfd_set_private_flags      _bfd_xgate_elf_set_private_flags
+#define bfd_elf32_bfd_set_private_flags	     _bfd_xgate_elf_set_private_flags
 #define bfd_elf32_bfd_print_private_bfd_data _bfd_xgate_elf_print_private_bfd_data
 
 #define xgate_stub_hash_lookup(table, string, create, copy)	\
     ((struct elf32_xgate_stub_hash_entry *) \
-        bfd_hash_lookup ((table), (string), (create), (copy)))
+	bfd_hash_lookup ((table), (string), (create), (copy)))
 
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-xgate.h ./bfd/elf32-xgate.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-xgate.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-xgate.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Freescale XGATE-specific support for 32-bit ELF
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    Contributed by Sean Keys (skeys@ipdatasys.com)
    (Heavily copied from the HC11 port by Stephane Carrez (stcarrez@nerim.fr))
@@ -80,7 +80,7 @@ struct xgate_elf_link_hash_table
 
   /* Assorted information used by elf32_hppa_size_stubs.  */
   unsigned int bfd_count;
-  int          top_index;
+  int	       top_index;
   asection **  input_list;
 
   /* Small local sym cache.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-xstormy16.c ./bfd/elf32-xstormy16.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-xstormy16.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-xstormy16.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Xstormy16-specific support for 32-bit ELF.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -270,33 +270,33 @@ static reloc_howto_type xstormy16_elf_ho
 {
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_XSTORMY16_GNU_VTINHERIT, /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         NULL,                  /* special_function */
-         "R_XSTORMY16_GNU_VTINHERIT", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 NULL,			/* special_function */
+	 "R_XSTORMY16_GNU_VTINHERIT", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_XSTORMY16_GNU_VTENTRY,     /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
-         "R_XSTORMY16_GNU_VTENTRY",   /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 _bfd_elf_rel_vtable_reloc_fn,	/* special_function */
+	 "R_XSTORMY16_GNU_VTENTRY",   /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
 };
 
@@ -305,27 +305,27 @@ static reloc_howto_type xstormy16_elf_ho
 typedef struct xstormy16_reloc_map
 {
   bfd_reloc_code_real_type  bfd_reloc_val;
-  unsigned int              xstormy16_reloc_val;
-  reloc_howto_type *        table;
+  unsigned int		    xstormy16_reloc_val;
+  reloc_howto_type *	    table;
 } reloc_map;
 
 static const reloc_map xstormy16_reloc_map [] =
 {
-  { BFD_RELOC_NONE,                 R_XSTORMY16_NONE,          xstormy16_elf_howto_table },
-  { BFD_RELOC_32,                   R_XSTORMY16_32,            xstormy16_elf_howto_table },
-  { BFD_RELOC_16,                   R_XSTORMY16_16,            xstormy16_elf_howto_table },
-  { BFD_RELOC_8,                    R_XSTORMY16_8,             xstormy16_elf_howto_table },
-  { BFD_RELOC_32_PCREL,             R_XSTORMY16_PC32,          xstormy16_elf_howto_table },
-  { BFD_RELOC_16_PCREL,             R_XSTORMY16_PC16,          xstormy16_elf_howto_table },
-  { BFD_RELOC_8_PCREL,              R_XSTORMY16_PC8,           xstormy16_elf_howto_table },
-  { BFD_RELOC_XSTORMY16_REL_12,     R_XSTORMY16_REL_12,        xstormy16_elf_howto_table },
-  { BFD_RELOC_XSTORMY16_24,	    R_XSTORMY16_24,            xstormy16_elf_howto_table },
-  { BFD_RELOC_XSTORMY16_FPTR16,	    R_XSTORMY16_FPTR16,        xstormy16_elf_howto_table },
-  { BFD_RELOC_LO16,                 R_XSTORMY16_LO16,          xstormy16_elf_howto_table },
-  { BFD_RELOC_HI16,                 R_XSTORMY16_HI16,          xstormy16_elf_howto_table },
-  { BFD_RELOC_XSTORMY16_12,         R_XSTORMY16_12,            xstormy16_elf_howto_table },
-  { BFD_RELOC_VTABLE_INHERIT,       R_XSTORMY16_GNU_VTINHERIT, xstormy16_elf_howto_table2 },
-  { BFD_RELOC_VTABLE_ENTRY,         R_XSTORMY16_GNU_VTENTRY,   xstormy16_elf_howto_table2 },
+  { BFD_RELOC_NONE,		    R_XSTORMY16_NONE,	       xstormy16_elf_howto_table },
+  { BFD_RELOC_32,		    R_XSTORMY16_32,	       xstormy16_elf_howto_table },
+  { BFD_RELOC_16,		    R_XSTORMY16_16,	       xstormy16_elf_howto_table },
+  { BFD_RELOC_8,		    R_XSTORMY16_8,	       xstormy16_elf_howto_table },
+  { BFD_RELOC_32_PCREL,		    R_XSTORMY16_PC32,	       xstormy16_elf_howto_table },
+  { BFD_RELOC_16_PCREL,		    R_XSTORMY16_PC16,	       xstormy16_elf_howto_table },
+  { BFD_RELOC_8_PCREL,		    R_XSTORMY16_PC8,	       xstormy16_elf_howto_table },
+  { BFD_RELOC_XSTORMY16_REL_12,	    R_XSTORMY16_REL_12,	       xstormy16_elf_howto_table },
+  { BFD_RELOC_XSTORMY16_24,	    R_XSTORMY16_24,	       xstormy16_elf_howto_table },
+  { BFD_RELOC_XSTORMY16_FPTR16,	    R_XSTORMY16_FPTR16,	       xstormy16_elf_howto_table },
+  { BFD_RELOC_LO16,		    R_XSTORMY16_LO16,	       xstormy16_elf_howto_table },
+  { BFD_RELOC_HI16,		    R_XSTORMY16_HI16,	       xstormy16_elf_howto_table },
+  { BFD_RELOC_XSTORMY16_12,	    R_XSTORMY16_12,	       xstormy16_elf_howto_table },
+  { BFD_RELOC_VTABLE_INHERIT,	    R_XSTORMY16_GNU_VTINHERIT, xstormy16_elf_howto_table2 },
+  { BFD_RELOC_VTABLE_ENTRY,	    R_XSTORMY16_GNU_VTENTRY,   xstormy16_elf_howto_table2 },
 };
 
 static reloc_howto_type *
@@ -435,14 +435,10 @@ xstormy16_elf_check_relocs (bfd *abfd,
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (ELF32_R_TYPE (rel->r_info))
-        {
+	{
 	  /* This relocation describes a 16-bit pointer to a function.
 	     We may need to allocate a thunk in low memory; reserve memory
 	     for it now.  */
@@ -501,19 +497,19 @@ xstormy16_elf_check_relocs (bfd *abfd,
 
 	  /* This relocation describes the C++ object vtable hierarchy.
 	     Reconstruct it for later use during GC.  */
-        case R_XSTORMY16_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
+	case R_XSTORMY16_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
 
 	  /* This relocation describes which C++ vtable entries are actually
 	     used.  Record for later use during GC.  */
-        case R_XSTORMY16_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
+	case R_XSTORMY16_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
 	}
     }
 
@@ -693,7 +689,7 @@ xstormy16_elf_relax_section (bfd *dynobj
 	  for (idx = 0; idx < nlocals; ++idx)
 	    if (local_plt_offsets[idx] != (bfd_vma) -1)
 	      {
-	        local_plt_offsets[idx] = entry;
+		local_plt_offsets[idx] = entry;
 		entry += 4;
 	      }
 	}
@@ -757,19 +753,19 @@ xstormy16_elf_always_size_sections (bfd 
    accordingly.  */
 
 static bfd_boolean
-xstormy16_elf_relocate_section (bfd *                   output_bfd ATTRIBUTE_UNUSED,
-				struct bfd_link_info *  info,
-				bfd *                   input_bfd,
-				asection *              input_section,
-				bfd_byte *              contents,
-				Elf_Internal_Rela *     relocs,
-				Elf_Internal_Sym *      local_syms,
-				asection **             local_sections)
+xstormy16_elf_relocate_section (bfd *			output_bfd ATTRIBUTE_UNUSED,
+				struct bfd_link_info *	info,
+				bfd *			input_bfd,
+				asection *		input_section,
+				bfd_byte *		contents,
+				Elf_Internal_Rela *	relocs,
+				Elf_Internal_Sym *	local_syms,
+				asection **		local_sections)
 {
-  Elf_Internal_Shdr *           symtab_hdr;
+  Elf_Internal_Shdr *		symtab_hdr;
   struct elf_link_hash_entry ** sym_hashes;
-  Elf_Internal_Rela *           rel;
-  Elf_Internal_Rela *           relend;
+  Elf_Internal_Rela *		rel;
+  Elf_Internal_Rela *		relend;
   asection *splt;
 
   symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
@@ -780,15 +776,15 @@ xstormy16_elf_relocate_section (bfd *   
 
   for (rel = relocs; rel < relend; rel ++)
     {
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
+      reloc_howto_type *	   howto;
+      unsigned long		   r_symndx;
+      Elf_Internal_Sym *	   sym;
+      asection *		   sec;
       struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 name = NULL;
-      int                          r_type;
+      bfd_vma			   relocation;
+      bfd_reloc_status_type	   r;
+      const char *		   name = NULL;
+      int			   r_type;
 
       r_type = ELF32_R_TYPE (rel->r_info);
 
@@ -866,9 +862,9 @@ xstormy16_elf_relocate_section (bfd *   
 
 	    if (relocation <= 0xffff)
 	      {
-	        /* If the symbol is in range for a 16-bit address, we should
+		/* If the symbol is in range for a 16-bit address, we should
 		   have deallocated the plt entry in relax_section.  */
-	        BFD_ASSERT (*plt_offset == (bfd_vma) -1);
+		BFD_ASSERT (*plt_offset == (bfd_vma) -1);
 	      }
 	    else
 	      {
@@ -1009,7 +1005,7 @@ xstormy16_elf_gc_mark_hook (asection *se
 #define elf_info_to_howto			xstormy16_info_to_howto_rela
 #define elf_backend_relocate_section		xstormy16_elf_relocate_section
 #define elf_backend_gc_mark_hook		xstormy16_elf_gc_mark_hook
-#define elf_backend_check_relocs                xstormy16_elf_check_relocs
+#define elf_backend_check_relocs		xstormy16_elf_check_relocs
 #define elf_backend_always_size_sections \
   xstormy16_elf_always_size_sections
 #define elf_backend_omit_section_dynsym \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-xtensa.c ./bfd/elf32-xtensa.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf32-xtensa.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf32-xtensa.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Xtensa-specific support for 32-bit ELF.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -214,11 +214,11 @@ static reloc_howto_type elf_howto_table[
 
   /* GNU extension to record C++ vtable hierarchy.  */
   HOWTO (R_XTENSA_GNU_VTINHERIT, 0, 2, 0, FALSE, 0, complain_overflow_dont,
-         NULL, "R_XTENSA_GNU_VTINHERIT",
+	 NULL, "R_XTENSA_GNU_VTINHERIT",
 	 FALSE, 0, 0, FALSE),
   /* GNU extension to record C++ vtable member usage.  */
   HOWTO (R_XTENSA_GNU_VTENTRY, 0, 2, 0, FALSE, 0, complain_overflow_dont,
-         _bfd_elf_rel_vtable_reloc_fn, "R_XTENSA_GNU_VTENTRY",
+	 _bfd_elf_rel_vtable_reloc_fn, "R_XTENSA_GNU_VTENTRY",
 	 FALSE, 0, 0, FALSE),
 
   /* Relocations for supporting difference of symbols.  */
@@ -519,28 +519,42 @@ elf_xtensa_info_to_howto_rela (bfd *abfd
    invoked.  Note: the 32-byte frame size used here cannot be changed
    without a corresponding change in the runtime linker.  */
 
-static const bfd_byte elf_xtensa_be_plt_entry[PLT_ENTRY_SIZE] =
+static const bfd_byte elf_xtensa_be_plt_entry[][PLT_ENTRY_SIZE] =
 {
-#if XSHAL_ABI == XTHAL_ABI_WINDOWED
-  0x6c, 0x10, 0x04,	/* entry sp, 32 */
-#endif
-  0x18, 0x00, 0x00,	/* l32r  a8, [got entry for rtld's resolver] */
-  0x1a, 0x00, 0x00,	/* l32r  a10, [got entry for rtld's link map] */
-  0x1b, 0x00, 0x00,	/* l32r  a11, [literal for reloc index] */
-  0x0a, 0x80, 0x00,	/* jx    a8 */
-  0			/* unused */
+    {
+      0x6c, 0x10, 0x04,	/* entry sp, 32 */
+      0x18, 0x00, 0x00,	/* l32r  a8, [got entry for rtld's resolver] */
+      0x1a, 0x00, 0x00,	/* l32r  a10, [got entry for rtld's link map] */
+      0x1b, 0x00, 0x00,	/* l32r  a11, [literal for reloc index] */
+      0x0a, 0x80, 0x00,	/* jx    a8 */
+      0			/* unused */
+    },
+    {
+      0x18, 0x00, 0x00,	/* l32r  a8, [got entry for rtld's resolver] */
+      0x1a, 0x00, 0x00,	/* l32r  a10, [got entry for rtld's link map] */
+      0x1b, 0x00, 0x00,	/* l32r  a11, [literal for reloc index] */
+      0x0a, 0x80, 0x00,	/* jx    a8 */
+      0			/* unused */
+    }
 };
 
-static const bfd_byte elf_xtensa_le_plt_entry[PLT_ENTRY_SIZE] =
+static const bfd_byte elf_xtensa_le_plt_entry[][PLT_ENTRY_SIZE] =
 {
-#if XSHAL_ABI == XTHAL_ABI_WINDOWED
-  0x36, 0x41, 0x00,	/* entry sp, 32 */
-#endif
-  0x81, 0x00, 0x00,	/* l32r  a8, [got entry for rtld's resolver] */
-  0xa1, 0x00, 0x00,	/* l32r  a10, [got entry for rtld's link map] */
-  0xb1, 0x00, 0x00,	/* l32r  a11, [literal for reloc index] */
-  0xa0, 0x08, 0x00,	/* jx    a8 */
-  0			/* unused */
+    {
+      0x36, 0x41, 0x00,	/* entry sp, 32 */
+      0x81, 0x00, 0x00,	/* l32r  a8, [got entry for rtld's resolver] */
+      0xa1, 0x00, 0x00,	/* l32r  a10, [got entry for rtld's link map] */
+      0xb1, 0x00, 0x00,	/* l32r  a11, [literal for reloc index] */
+      0xa0, 0x08, 0x00,	/* jx    a8 */
+      0			/* unused */
+    },
+    {
+      0x81, 0x00, 0x00,	/* l32r  a8, [got entry for rtld's resolver] */
+      0xa1, 0x00, 0x00,	/* l32r  a10, [got entry for rtld's link map] */
+      0xb1, 0x00, 0x00,	/* l32r  a11, [literal for reloc index] */
+      0xa0, 0x08, 0x00,	/* jx    a8 */
+      0			/* unused */
+    }
 };
 
 /* The size of the thread control block.  */
@@ -898,7 +912,7 @@ xtensa_read_table_entries (bfd *abfd,
 	     property_table_compare);
 
       /* Check that the table contents are valid.  Problems may occur,
-         for example, if an unrelocated object file is stripped.  */
+	 for example, if an unrelocated object file is stripped.  */
       for (blk = 1; blk < block_count; blk++)
 	{
 	  /* The only circumstance where two entries may legitimately
@@ -987,7 +1001,7 @@ elf_xtensa_check_relocs (bfd *abfd,
   for (rel = relocs; rel < rel_end; rel++)
     {
       unsigned int r_type;
-      unsigned long r_symndx;
+      unsigned r_symndx;
       struct elf_link_hash_entry *h = NULL;
       struct elf_xtensa_link_hash_entry *eh;
       int tls_type, old_tls_type;
@@ -1012,10 +1026,6 @@ elf_xtensa_check_relocs (bfd *abfd,
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
       eh = elf_xtensa_hash_entry (h);
 
@@ -1201,19 +1211,19 @@ elf_xtensa_check_relocs (bfd *abfd,
 
 static void
 elf_xtensa_make_sym_local (struct bfd_link_info *info,
-                           struct elf_link_hash_entry *h)
+			   struct elf_link_hash_entry *h)
 {
   if (bfd_link_pic (info))
     {
       if (h->plt.refcount > 0)
-        {
+	{
 	  /* For shared objects, there's no need for PLT entries for local
 	     symbols (use RELATIVE relocs instead of JMP_SLOT relocs).  */
-          if (h->got.refcount < 0)
-            h->got.refcount = 0;
-          h->got.refcount += h->plt.refcount;
-          h->plt.refcount = 0;
-        }
+	  if (h->got.refcount < 0)
+	    h->got.refcount = 0;
+	  h->got.refcount += h->plt.refcount;
+	  h->plt.refcount = 0;
+	}
     }
   else
     {
@@ -1226,8 +1236,8 @@ elf_xtensa_make_sym_local (struct bfd_li
 
 static void
 elf_xtensa_hide_symbol (struct bfd_link_info *info,
-                        struct elf_link_hash_entry *h,
-                        bfd_boolean force_local)
+			struct elf_link_hash_entry *h,
+			bfd_boolean force_local)
 {
   /* For a shared link, move the plt refcount to the got refcount to leave
      space for RELATIVE relocs.  */
@@ -1272,137 +1282,6 @@ elf_xtensa_gc_mark_hook (asection *sec,
 }
 
 
-/* Update the GOT & PLT entry reference counts
-   for the section being removed.  */
-
-static bfd_boolean
-elf_xtensa_gc_sweep_hook (bfd *abfd,
-			  struct bfd_link_info *info,
-			  asection *sec,
-			  const Elf_Internal_Rela *relocs)
-{
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  const Elf_Internal_Rela *rel, *relend;
-  struct elf_xtensa_link_hash_table *htab;
-
-  htab = elf_xtensa_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  if ((sec->flags & SEC_ALLOC) == 0)
-    return TRUE;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  sym_hashes = elf_sym_hashes (abfd);
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      unsigned int r_type;
-      struct elf_link_hash_entry *h = NULL;
-      struct elf_xtensa_link_hash_entry *eh;
-      bfd_boolean is_got = FALSE;
-      bfd_boolean is_plt = FALSE;
-      bfd_boolean is_tlsfunc = FALSE;
-
-      r_symndx = ELF32_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	}
-      eh = elf_xtensa_hash_entry (h);
-
-      r_type = ELF32_R_TYPE (rel->r_info);
-      switch (r_type)
-	{
-	case R_XTENSA_TLSDESC_FN:
-	  if (bfd_link_pic (info))
-	    {
-	      is_got = TRUE;
-	      is_tlsfunc = TRUE;
-	    }
-	  break;
-
-	case R_XTENSA_TLSDESC_ARG:
-	  if (bfd_link_pic (info))
-	    is_got = TRUE;
-	  else
-	    {
-	      if (h && elf_xtensa_hash_entry (h) != htab->tlsbase)
-		is_got = TRUE;
-	    }
-	  break;
-
-	case R_XTENSA_TLS_TPOFF:
-	  if (bfd_link_pic (info) || h)
-	    is_got = TRUE;
-	  break;
-
-	case R_XTENSA_32:
-	  is_got = TRUE;
-	  break;
-
-	case R_XTENSA_PLT:
-	  is_plt = TRUE;
-	  break;
-
-	default:
-	  continue;
-	}
-
-      if (h)
-	{
-	  if (is_plt)
-	    {
-	      /* If the symbol has been localized its plt.refcount got moved
-	         to got.refcount.  Handle it as GOT.  */
-	      if (h->plt.refcount > 0)
-		h->plt.refcount--;
-	      else
-		is_got = TRUE;
-	    }
-	  if (is_got)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount--;
-	    }
-	  if (is_tlsfunc)
-	    {
-	      if (eh->tlsfunc_refcount > 0)
-		eh->tlsfunc_refcount--;
-	    }
-	}
-      else
-	{
-	  if (is_got || is_plt)
-	    {
-	      bfd_signed_vma *got_refcount
-		= &elf_local_got_refcounts (abfd) [r_symndx];
-	      if (*got_refcount > 0)
-		*got_refcount -= 1;
-	    }
-	  if (is_tlsfunc)
-	    {
-	      bfd_signed_vma *tlsfunc_refcount
-		= &elf_xtensa_local_tlsfunc_refcounts (abfd) [r_symndx];
-	      if (*tlsfunc_refcount > 0)
-		*tlsfunc_refcount -= 1;
-	    }
-	}
-    }
-
-  return TRUE;
-}
-
-
 /* Create all the dynamic sections.  */
 
 static bfd_boolean
@@ -1504,12 +1383,12 @@ elf_xtensa_adjust_dynamic_symbol (struct
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -1980,7 +1859,7 @@ elf_xtensa_do_reloc (reloc_howto_type *h
 
     case R_XTENSA_ASM_SIMPLIFY:
       {
-        /* Convert the L32R/CALLX to CALL.  */
+	/* Convert the L32R/CALLX to CALL.  */
 	bfd_reloc_status_type retval =
 	  elf_xtensa_do_asm_simplify (contents, address, input_size,
 				      error_message);
@@ -2336,8 +2215,8 @@ elf_xtensa_create_plt_entry (struct bfd_
   /* Fill in the entry in the procedure linkage table.  */
   memcpy (splt->contents + code_offset,
 	  (bfd_big_endian (output_bfd)
-	   ? elf_xtensa_be_plt_entry
-	   : elf_xtensa_le_plt_entry),
+	   ? elf_xtensa_be_plt_entry[XSHAL_ABI != XTHAL_ABI_WINDOWED]
+	   : elf_xtensa_le_plt_entry[XSHAL_ABI != XTHAL_ABI_WINDOWED]),
 	  PLT_ENTRY_SIZE);
   abi_offset = XSHAL_ABI == XTHAL_ABI_WINDOWED ? 3 : 0;
   bfd_put_16 (output_bfd, l32r_offset (got_base + 0,
@@ -2521,7 +2400,7 @@ replace_tls_insn (Elf_Internal_Rela *rel
 
   xtensa_format_set_slot (isa, fmt, 0, ibuff, sbuff);
   xtensa_insnbuf_to_chars (isa, ibuff, contents + rel->r_offset,
-                           input_size - rel->r_offset);
+			   input_size - rel->r_offset);
 
   return TRUE;
 }
@@ -2773,7 +2652,7 @@ elf_xtensa_relocate_section (bfd *output
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): relocation offset out of range (size=0x%x)"),
+	    (_("%B(%A+%#Lx): relocation offset out of range (size=%#Lx)"),
 	     input_bfd, input_section, rel->r_offset, input_size);
 	  bfd_set_error (bfd_error_bad_value);
 	  return FALSE;
@@ -2799,12 +2678,12 @@ elf_xtensa_relocate_section (bfd *output
 	  _bfd_error_handler
 	    ((sym_type == STT_TLS
 	      /* xgettext:c-format */
-	      ? _("%B(%A+0x%lx): %s used with TLS symbol %s")
+	      ? _("%B(%A+%#Lx): %s used with TLS symbol %s")
 	      /* xgettext:c-format */
-	      : _("%B(%A+0x%lx): %s used with non-TLS symbol %s")),
+	      : _("%B(%A+%#Lx): %s used with non-TLS symbol %s")),
 	     input_bfd,
 	     input_section,
-	     (long) rel->r_offset,
+	     rel->r_offset,
 	     howto->name,
 	     name);
 	}
@@ -3057,10 +2936,10 @@ elf_xtensa_relocate_section (bfd *output
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+	    (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
 	     input_bfd,
 	     input_section,
-	     (long) rel->r_offset,
+	     rel->r_offset,
 	     howto->name,
 	     name);
 	  return FALSE;
@@ -5353,23 +5232,23 @@ add_value_map (value_map_hash_table *map
 
 /* The following text actions are generated:
 
-   "ta_remove_insn"         remove an instruction or instructions
-   "ta_remove_longcall"     convert longcall to call
+   "ta_remove_insn"	    remove an instruction or instructions
+   "ta_remove_longcall"	    convert longcall to call
    "ta_convert_longcall"    convert longcall to nop/call
-   "ta_narrow_insn"         narrow a wide instruction
-   "ta_widen"               widen a narrow instruction
-   "ta_fill"                add fill or remove fill
+   "ta_narrow_insn"	    narrow a wide instruction
+   "ta_widen"		    widen a narrow instruction
+   "ta_fill"		    add fill or remove fill
       removed < 0 is a fill; branches to the fill address will be
 	changed to address + fill size (e.g., address - removed)
       removed >= 0 branches to the fill address will stay unchanged
-   "ta_remove_literal"      remove a literal; this action is
+   "ta_remove_literal"	    remove a literal; this action is
 			    indicated when a literal is removed
-                            or replaced.
-   "ta_add_literal"         insert a new literal; this action is
-                            indicated when a literal has been moved.
-                            It may use a virtual_offset because
+			    or replaced.
+   "ta_add_literal"	    insert a new literal; this action is
+			    indicated when a literal has been moved.
+			    It may use a virtual_offset because
 			    multiple literals can be placed at the
-                            same location.
+			    same location.
 
    For each of these text actions, we also record the number of bytes
    removed by performing the text action.  In the case of a "ta_widen"
@@ -5382,12 +5261,12 @@ typedef enum text_action_enum_t text_act
 enum text_action_enum_t
 {
   ta_none,
-  ta_remove_insn,        /* removed = -size */
-  ta_remove_longcall,    /* removed = -size */
-  ta_convert_longcall,   /* removed = 0 */
-  ta_narrow_insn,        /* removed = -1 */
-  ta_widen_insn,         /* removed = +1 */
-  ta_fill,               /* removed = +size */
+  ta_remove_insn,	 /* removed = -size */
+  ta_remove_longcall,	 /* removed = -size */
+  ta_convert_longcall,	 /* removed = 0 */
+  ta_narrow_insn,	 /* removed = -1 */
+  ta_widen_insn,	 /* removed = +1 */
+  ta_fill,		 /* removed = +size */
   ta_remove_literal,
   ta_add_literal
 };
@@ -6535,7 +6414,8 @@ extend_ebb_bounds_forward (ebb_t *ebb)
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): could not decode instruction; possible configuration mismatch"),
+	    (_("%B(%A+%#Lx): could not decode instruction; "
+	       "possible configuration mismatch"),
 	     ebb->sec->owner, ebb->sec, ebb->end_offset + insn_block_len);
 	  return FALSE;
 	}
@@ -6612,7 +6492,8 @@ extend_ebb_bounds_backward (ebb_t *ebb)
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): could not decode instruction; possible configuration mismatch"),
+	    (_("%B(%A+%#Lx): could not decode instruction; "
+	       "possible configuration mismatch"),
 	     ebb->sec->owner, ebb->sec, ebb->end_offset + insn_block_len);
 	  return FALSE;
 	}
@@ -7083,7 +6964,7 @@ find_relaxable_sections (bfd *abfd,
 	continue;
 
       /* Count PC-relative operand relocations against the target section.
-         Note: The conditions tested here must match the conditions under
+	 Note: The conditions tested here must match the conditions under
 	 which init_source_reloc is called in collect_source_relocs().  */
       is_l32r_reloc = FALSE;
       if (is_operand_relocation (ELF32_R_TYPE (irel->r_info)))
@@ -7530,7 +7411,7 @@ build_reloc_ranges (bfd *abfd, asection 
       reloc[i].irel = irel;
 
       /* Every relocation won't possibly be checked in the optimized version of
-         check_section_ebb_pcrels_fit, so this needs to be done here.  */
+	 check_section_ebb_pcrels_fit, so this needs to be done here.  */
       if (is_alt_relocation (ELF32_R_TYPE (irel->r_info)))
 	{
 	  /* None of the current alternate relocs are PC-relative,
@@ -7726,7 +7607,9 @@ compute_text_actions (bfd *abfd,
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch"),
+	    (_("%B(%A+%#Lx): could not decode instruction for "
+	       "XTENSA_ASM_SIMPLIFY relocation; "
+	       "possible configuration mismatch"),
 	     sec->owner, sec, r_offset);
 	  continue;
 	}
@@ -7985,7 +7868,8 @@ compute_ebb_proposed_actions (ebb_constr
  decode_error:
   _bfd_error_handler
     /* xgettext:c-format */
-    (_("%B(%A+0x%lx): could not decode instruction; possible configuration mismatch"),
+    (_("%B(%A+%#Lx): could not decode instruction; "
+       "possible configuration mismatch"),
      ebb->sec->owner, ebb->sec, offset);
   return FALSE;
 }
@@ -9107,7 +8991,7 @@ relocations_reach (source_reloc *reloc,
 	continue;
 
       /* The original and new output section for these must be the same
-         in order to coalesce.  */
+	 in order to coalesce.  */
       if (r_reloc_get_section (&reloc[i].r_rel)->output_section
 	  != sec->output_section)
 	return FALSE;
@@ -9477,7 +9361,7 @@ relax_section (bfd *abfd, asection *sec,
 		      /* Update the action so that the code that moves
 			 the contents will do the right thing.  */
 		      /* ta_remove_longcall and ta_remove_insn actions are
-		         grouped together in the tree as well as
+			 grouped together in the tree as well as
 			 ta_convert_longcall and ta_none, so that changes below
 			 can be done w/o removing and reinserting action into
 			 the tree.  */
@@ -10461,7 +10345,7 @@ relax_property_section (bfd *abfd,
       predef_flags = xtensa_get_property_predef_flags (sec);
 
       /* Walk over memory and relocations at the same time.
-         This REQUIRES that the internal_relocs be sorted by offset.  */
+	 This REQUIRES that the internal_relocs be sorted by offset.  */
       qsort (internal_relocs, sec->reloc_count, sizeof (Elf_Internal_Rela),
 	     internal_reloc_compare);
 
@@ -10762,7 +10646,7 @@ do_fix_for_relocatable_link (Elf_Interna
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): unexpected fix for %s relocation"),
+	    (_("%B(%A+%#Lx): unexpected fix for %s relocation"),
 	     input_bfd, input_section, rel->r_offset,
 	     elf_howto_table[r_type].name);
 	  return FALSE;
@@ -10822,7 +10706,7 @@ static asection *
 elf_xtensa_get_plt_section (struct bfd_link_info *info, int chunk)
 {
   bfd *dynobj;
-  char plt_name[10];
+  char plt_name[17];
 
   if (chunk == 0)
     return elf_hash_table (info)->splt;
@@ -10837,7 +10721,7 @@ static asection *
 elf_xtensa_get_gotplt_section (struct bfd_link_info *info, int chunk)
 {
   bfd *dynobj;
-  char got_name[14];
+  char got_name[21];
 
   if (chunk == 0)
     return elf_hash_table (info)->sgotplt;
@@ -10884,8 +10768,8 @@ get_elf_r_symndx_section (bfd *abfd, uns
       struct elf_link_hash_entry *h = elf_sym_hashes (abfd)[indx];
 
       while (h->root.type == bfd_link_hash_indirect
-             || h->root.type == bfd_link_hash_warning)
-        h = (struct elf_link_hash_entry *) h->root.u.i.link;
+	     || h->root.type == bfd_link_hash_warning)
+	h = (struct elf_link_hash_entry *) h->root.u.i.link;
 
       switch (h->root.type)
 	{
@@ -10949,10 +10833,10 @@ get_elf_r_symndx_offset (bfd *abfd, unsi
 	elf_sym_hashes (abfd)[indx];
 
       while (h->root.type == bfd_link_hash_indirect
-             || h->root.type == bfd_link_hash_warning)
+	     || h->root.type == bfd_link_hash_warning)
 	h = (struct elf_link_hash_entry *) h->root.u.i.link;
       if (h->root.type == bfd_link_hash_defined
-          || h->root.type == bfd_link_hash_defweak)
+	  || h->root.type == bfd_link_hash_defweak)
 	offset = h->root.u.def.value;
     }
   return offset;
@@ -11122,9 +11006,9 @@ xtensa_property_section_name (asection *
 
       suffix = sec->name + linkonce_len;
       /* For backward compatibility, replace "t." instead of inserting
-         the new linkonce_kind (but not for "prop" sections).  */
+	 the new linkonce_kind (but not for "prop" sections).  */
       if (CONST_STRNEQ (suffix, "t.") && linkonce_kind[1] == '.')
-        suffix += 2;
+	suffix += 2;
       strcat (prop_sec_name + linkonce_len, suffix);
     }
   else
@@ -11301,9 +11185,9 @@ static const struct bfd_elf_special_sect
 {
   { STRING_COMMA_LEN (".fini.literal"), 0, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
   { STRING_COMMA_LEN (".init.literal"), 0, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
-  { STRING_COMMA_LEN (".literal"),      0, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
-  { STRING_COMMA_LEN (".xtensa.info"),  0, SHT_NOTE,     0 },
-  { NULL,                       0,      0, 0,            0 }
+  { STRING_COMMA_LEN (".literal"),	0, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
+  { STRING_COMMA_LEN (".xtensa.info"),	0, SHT_NOTE,	 0 },
+  { NULL,			0,	0, 0,		 0 }
 };
 
 #define ELF_TARGET_ID			XTENSA_ELF_DATA
@@ -11317,11 +11201,7 @@ static const struct bfd_elf_special_sect
 #define ELF_MACHINE_CODE		EM_XTENSA
 #define ELF_MACHINE_ALT1		EM_XTENSA_OLD
 
-#if XCHAL_HAVE_MMU
-#define ELF_MAXPAGESIZE			(1 << XCHAL_MMU_MIN_PTE_PAGE_SIZE)
-#else /* !XCHAL_HAVE_MMU */
-#define ELF_MAXPAGESIZE			1
-#endif /* !XCHAL_HAVE_MMU */
+#define ELF_MAXPAGESIZE			0x1000
 #endif /* ELF_ARCH */
 
 #define elf_backend_can_gc_sections	1
@@ -11355,7 +11235,6 @@ static const struct bfd_elf_special_sect
 #define elf_backend_finish_dynamic_sections  elf_xtensa_finish_dynamic_sections
 #define elf_backend_finish_dynamic_symbol    elf_xtensa_finish_dynamic_symbol
 #define elf_backend_gc_mark_hook	     elf_xtensa_gc_mark_hook
-#define elf_backend_gc_sweep_hook	     elf_xtensa_gc_sweep_hook
 #define elf_backend_grok_prstatus	     elf_xtensa_grok_prstatus
 #define elf_backend_grok_psinfo		     elf_xtensa_grok_psinfo
 #define elf_backend_hide_symbol		     elf_xtensa_hide_symbol
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-alpha.c ./bfd/elf64-alpha.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-alpha.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-alpha.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Alpha specific support for 64-bit ELF
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Contributed by Richard Henderson <rth@tamu.edu>.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -1201,7 +1201,7 @@ elf64_alpha_fake_sections (bfd *abfd, El
     {
       hdr->sh_type = SHT_ALPHA_DEBUG;
       /* In a shared object on Irix 5.3, the .mdebug section has an
-         entsize of 0.  FIXME: Does this matter?  */
+	 entsize of 0.  FIXME: Does this matter?  */
       if ((abfd->flags & DYNAMIC) != 0 )
 	hdr->sh_entsize = 0;
       else
@@ -1526,11 +1526,11 @@ elf64_alpha_find_nearest_line (bfd *abfd
 	  alpha_elf_tdata (abfd)->find_line_info = fi;
 
 	  /* Note that we don't bother to ever free this information.
-             find_nearest_line is either called all the time, as in
-             objdump -l, so the information should be saved, or it is
-             rarely called, as in ld error messages, so the memory
-             wasted is unimportant.  Still, it would probably be a
-             good idea for free_cached_info to throw it away.  */
+	     find_nearest_line is either called all the time, as in
+	     objdump -l, so the information should be saved, or it is
+	     rarely called, as in ld error messages, so the memory
+	     wasted is unimportant.  Still, it would probably be a
+	     good idea for free_cached_info to throw it away.  */
 	}
 
       if (_bfd_ecoff_locate_line (abfd, section, offset, &fi->d, swap,
@@ -1838,21 +1838,20 @@ elf64_alpha_check_relocs (bfd *abfd, str
 
 	  /* PR15323, ref flags aren't set for references in the same
 	     object.  */
-	  h->root.root.non_ir_ref = 1;
 	  h->root.ref_regular = 1;
 	}
 
       /* We can only get preliminary data on whether a symbol is
-         locally or externally defined, as not all of the input files
-         have yet been processed.  Do something with what we know, as
-         this may help reduce memory usage and processing time later.  */
+	 locally or externally defined, as not all of the input files
+	 have yet been processed.  Do something with what we know, as
+	 this may help reduce memory usage and processing time later.  */
       maybe_dynamic = FALSE;
       if (h && ((bfd_link_pic (info)
 		 && (!info->symbolic
 		     || info->unresolved_syms_in_shared_libs == RM_IGNORE))
 		|| !h->root.def_regular
 		|| h->root.root.type == bfd_link_hash_defweak))
-        maybe_dynamic = TRUE;
+	maybe_dynamic = TRUE;
 
       need = 0;
       gotent_flags = 0;
@@ -2040,72 +2039,6 @@ elf64_alpha_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-/* Update the got entry reference counts for the section being removed.  */
-
-static bfd_boolean
-elf64_alpha_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
-			   asection *sec, const Elf_Internal_Rela *relocs)
-{
-  Elf_Internal_Shdr *symtab_hdr;
-  struct alpha_elf_link_hash_entry **sym_hashes;
-  const Elf_Internal_Rela *rel, *relend;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  symtab_hdr = &elf_symtab_hdr (abfd);
-  sym_hashes = alpha_elf_sym_hashes (abfd);
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx, r_type;
-      struct alpha_elf_link_hash_entry *h = NULL;
-      struct alpha_elf_got_entry *gotent;
-
-      r_symndx = ELF64_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.root.type == bfd_link_hash_indirect
-		 || h->root.root.type == bfd_link_hash_warning)
-	    h = (struct alpha_elf_link_hash_entry *) h->root.root.u.i.link;
-	}
-
-      r_type = ELF64_R_TYPE (rel->r_info);
-      switch (r_type)
-	{
-	case R_ALPHA_LITERAL:
-	  /* ??? Ignore re-computation of gotent_flags.  We're not
-	     carrying a use-count for each bit in that mask.  */
-
-	case R_ALPHA_TLSGD:
-	case R_ALPHA_GOTDTPREL:
-	case R_ALPHA_GOTTPREL:
-	  /* Fetch the got entry from the tables.  */
-	  gotent = get_got_entry (abfd, h, r_type, r_symndx, rel->r_addend);
-
-	  /* The got entry *must* exist, since we should have created it
-	     before during check_relocs.  Also note that get_got_entry
-	     assumed this was going to be another use, and so incremented
-	     the use count again.  Thus the use count must be at least the
-	     one real use and the "use" we just added.  */
-	  if (gotent == NULL || gotent->use_count < 2)
-	    {
-	      abort ();
-	      return FALSE;
-	    }
-	  gotent->use_count -= 2;
-	  break;
-
-	default:
-	  break;
-	}
-    }
-
-  return TRUE;
-}
-
 /* Adjust a symbol defined by a dynamic object and referenced by a
    regular object.  The current definition is in some section of the
    dynamic object, but we're not including those sections.  We have to
@@ -2148,12 +2081,12 @@ elf64_alpha_adjust_dynamic_symbol (struc
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -2224,7 +2157,7 @@ elf64_alpha_copy_indirect_symbol (struct
 		&& gi->addend == gs->addend)
 	      {
 		gs->use_count += gi->use_count;
-	        goto got_found;
+		goto got_found;
 	      }
 	  gi->next = hs->got_entries;
 	  hs->got_entries = gi;
@@ -2292,25 +2225,25 @@ elf64_alpha_can_merge_gots (bfd *a, bfd 
 
 	  h = hashes[i];
 	  while (h->root.root.type == bfd_link_hash_indirect
-	         || h->root.root.type == bfd_link_hash_warning)
+		 || h->root.root.type == bfd_link_hash_warning)
 	    h = (struct alpha_elf_link_hash_entry *)h->root.root.u.i.link;
 
 	  for (be = h->got_entries; be ; be = be->next)
 	    {
 	      if (be->use_count == 0)
-	        continue;
+		continue;
 	      if (be->gotobj != b)
-	        continue;
+		continue;
 
 	      for (ae = h->got_entries; ae ; ae = ae->next)
-	        if (ae->gotobj == a
+		if (ae->gotobj == a
 		    && ae->reloc_type == be->reloc_type
 		    && ae->addend == be->addend)
 		  goto global_found;
 
 	      total += alpha_got_entry_size (be->reloc_type);
 	      if (total > MAX_GOT_SIZE)
-	        return FALSE;
+		return FALSE;
 	    global_found:;
 	    }
 	}
@@ -2344,15 +2277,15 @@ elf64_alpha_merge_gots (bfd *a, bfd *b)
       /* Let the local .got entries know they are part of a new subsegment.  */
       local_got_entries = alpha_elf_tdata (bsub)->local_got_entries;
       if (local_got_entries)
-        {
+	{
 	  n = elf_tdata (bsub)->symtab_hdr.sh_info;
 	  for (i = 0; i < n; ++i)
 	    {
 	      struct alpha_elf_got_entry *ent;
 	      for (ent = local_got_entries[i]; ent; ent = ent->next)
-	        ent->gotobj = a;
+		ent->gotobj = a;
 	    }
-        }
+	}
 
       /* Merge the global .got entries.  */
       hashes = alpha_elf_sym_hashes (bsub);
@@ -2360,29 +2293,29 @@ elf64_alpha_merge_gots (bfd *a, bfd *b)
 
       n = NUM_SHDR_ENTRIES (symtab_hdr) - symtab_hdr->sh_info;
       for (i = 0; i < n; ++i)
-        {
+	{
 	  struct alpha_elf_got_entry *ae, *be, **pbe, **start;
 	  struct alpha_elf_link_hash_entry *h;
 
 	  h = hashes[i];
 	  while (h->root.root.type == bfd_link_hash_indirect
-	         || h->root.root.type == bfd_link_hash_warning)
+		 || h->root.root.type == bfd_link_hash_warning)
 	    h = (struct alpha_elf_link_hash_entry *)h->root.root.u.i.link;
 
 	  pbe = start = &h->got_entries;
 	  while ((be = *pbe) != NULL)
 	    {
 	      if (be->use_count == 0)
-	        {
+		{
 		  *pbe = be->next;
 		  memset (be, 0xa5, sizeof (*be));
 		  goto kill;
-	        }
+		}
 	      if (be->gotobj != b)
-	        goto next;
+		goto next;
 
 	      for (ae = *start; ae ; ae = ae->next)
-	        if (ae->gotobj == a
+		if (ae->gotobj == a
 		    && ae->reloc_type == be->reloc_type
 		    && ae->addend == be->addend)
 		  {
@@ -2399,7 +2332,7 @@ elf64_alpha_merge_gots (bfd *a, bfd *b)
 	      pbe = &be->next;
 	    kill:;
 	    }
-        }
+	}
 
       alpha_elf_tdata (bsub)->gotobj = a;
     }
@@ -2479,10 +2412,10 @@ elf64_alpha_calc_got_offsets (struct bfd
 	  for (k = 0, n = elf_tdata(j)->symtab_hdr.sh_info; k < n; ++k)
 	    for (gotent = local_got_entries[k]; gotent; gotent = gotent->next)
 	      if (gotent->use_count > 0)
-	        {
+		{
 		  gotent->got_offset = got_offset;
 		  got_offset += alpha_got_entry_size (gotent->reloc_type);
-	        }
+		}
 	}
 
       alpha_elf_tdata(i)->got->size = got_offset;
@@ -2493,7 +2426,7 @@ elf64_alpha_calc_got_offsets (struct bfd
 
 static bfd_boolean
 elf64_alpha_size_got_sections (struct bfd_link_info *info,
-                               bfd_boolean may_merge)
+			       bfd_boolean may_merge)
 {
   bfd *i, *got_list, *cur_got_obj = NULL;
   struct alpha_elf_link_hash_table * htab;
@@ -2521,13 +2454,13 @@ elf64_alpha_size_got_sections (struct bf
 	  /* We are assuming no merging has yet occurred.  */
 	  BFD_ASSERT (this_got == i);
 
-          if (alpha_elf_tdata (this_got)->total_got_size > MAX_GOT_SIZE)
+	  if (alpha_elf_tdata (this_got)->total_got_size > MAX_GOT_SIZE)
 	    {
 	      /* Yikes! A single object file has too many entries.  */
 	      _bfd_error_handler
 		/* xgettext:c-format */
-	        (_("%B: .got subsegment exceeds 64K (size %d)"),
-	         i, alpha_elf_tdata (this_got)->total_got_size);
+		(_("%B: .got subsegment exceeds 64K (size %d)"),
+		 i, alpha_elf_tdata (this_got)->total_got_size);
 	      return FALSE;
 	    }
 
@@ -3081,9 +3014,8 @@ elf64_alpha_relax_got_load (struct alpha
       reloc_howto_type *howto = elf64_alpha_howto_table + r_type;
       _bfd_error_handler
 	/* xgettext:c-format */
-	(_("%B: %A+0x%lx: warning: %s relocation against unexpected insn"),
-	 info->abfd, info->sec,
-	 (unsigned long) irel->r_offset, howto->name);
+	(_("%B: %A+%#Lx: warning: %s relocation against unexpected insn"),
+	 info->abfd, info->sec, irel->r_offset, howto->name);
       return TRUE;
     }
 
@@ -3215,7 +3147,7 @@ elf64_alpha_relax_opt_call (struct alpha
       else
 	{
 	  tsec_relocs = (_bfd_elf_link_read_relocs
-		         (info->abfd, info->tsec, NULL,
+			 (info->abfd, info->tsec, NULL,
 			 (Elf_Internal_Rela *) NULL,
 			 info->link_info->keep_memory));
 	  if (tsec_relocs == NULL)
@@ -3241,7 +3173,7 @@ elf64_alpha_relax_opt_call (struct alpha
 	  return 0;
 	}
       if (tsec_free)
-        free (tsec_free);
+	free (tsec_free);
     }
 
   /* We've now determined that we can skip an initial gp load.  Verify
@@ -3277,9 +3209,8 @@ elf64_alpha_relax_with_lituse (struct al
     {
       _bfd_error_handler
 	/* xgettext:c-format */
-	(_("%B: %A+0x%lx: warning: LITERAL relocation against unexpected insn"),
-	 abfd, info->sec,
-	 (unsigned long) irel->r_offset);
+	(_("%B: %A+%#Lx: warning: LITERAL relocation against unexpected insn"),
+	 abfd, info->sec, irel->r_offset);
       return TRUE;
     }
 
@@ -3357,9 +3288,9 @@ elf64_alpha_relax_with_lituse (struct al
 	      nrel.r_addend = irel->r_addend;
 
 	      /* As we adjust, move the reloc to the end so that we don't
-	         break the LITERAL+LITUSE chain.  */
+		 break the LITERAL+LITUSE chain.  */
 	      if (urel < --erel)
-	        *urel-- = *erel;
+		*urel-- = *erel;
 	      *erel = nrel;
 	      changed_relocs = TRUE;
 	    }
@@ -3376,8 +3307,8 @@ elf64_alpha_relax_with_lituse (struct al
 	      lit_reused = TRUE;
 	      changed_contents = TRUE;
 
-              /* Since all relocs must be optimized, don't bother swapping
-	         this relocation to the end.  */
+	      /* Since all relocs must be optimized, don't bother swapping
+		 this relocation to the end.  */
 	      urel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info),
 					   R_ALPHA_GPRELLOW);
 	      urel->r_addend = irel->r_addend;
@@ -3831,7 +3762,7 @@ elf64_alpha_relax_section (bfd *abfd, as
       htab->relax_trip = link_info->relax_trip;
 
       /* This should never fail after the initial round, since the only error
-         is GOT overflow, and relaxation only shrinks the table.  However, we
+	 is GOT overflow, and relaxation only shrinks the table.  However, we
 	 may only merge got sections during the first pass.  If we merge
 	 sections after we've created GPREL relocs, the GP for the merged
 	 section backs up which may put the relocs out of range.  */
@@ -3891,18 +3822,18 @@ elf64_alpha_relax_section (bfd *abfd, as
 
       /* Early exit for unhandled or unrelaxable relocations.  */
       if (r_type != R_ALPHA_LITERAL)
-        {
-          /* We complete everything except LITERAL in the first pass.  */
+	{
+	  /* We complete everything except LITERAL in the first pass.  */
 	  if (relax_pass != 0)
 	    continue;
 	  if (r_type == R_ALPHA_TLSLDM)
 	    {
 	      /* The symbol for a TLSLDM reloc is ignored.  Collapse the
-                 reloc to the STN_UNDEF (0) symbol so that they all match.  */
+		 reloc to the STN_UNDEF (0) symbol so that they all match.  */
 	      r_symndx = STN_UNDEF;
 	    }
 	  else if (r_type != R_ALPHA_GOTDTPREL
-	           && r_type != R_ALPHA_GOTTPREL
+		   && r_type != R_ALPHA_GOTTPREL
 		   && r_type != R_ALPHA_TLSGD)
 	    continue;
 	}
@@ -3938,13 +3869,13 @@ elf64_alpha_relax_section (bfd *abfd, as
 	    {
 	      symval = isym->st_value;
 	      if (isym->st_shndx == SHN_UNDEF)
-	        continue;
+		continue;
 	      else if (isym->st_shndx == SHN_ABS)
-	        info.tsec = bfd_abs_section_ptr;
+		info.tsec = bfd_abs_section_ptr;
 	      else if (isym->st_shndx == SHN_COMMON)
-	        info.tsec = bfd_com_section_ptr;
+		info.tsec = bfd_com_section_ptr;
 	      else
-	        info.tsec = bfd_section_from_elf_index (abfd, isym->st_shndx);
+		info.tsec = bfd_section_from_elf_index (abfd, isym->st_shndx);
 	    }
 
 	  info.h = NULL;
@@ -4403,7 +4334,7 @@ elf64_alpha_relocate_section (bfd *outpu
 	    undef_weak_ref = TRUE;
 
 	  h = (struct alpha_elf_link_hash_entry *) hh;
-          dynamic_symbol_p = alpha_elf_dynamic_symbol_p (&h->root, info);
+	  dynamic_symbol_p = alpha_elf_dynamic_symbol_p (&h->root, info);
 	  gotent = h->got_entries;
 	}
 
@@ -4475,26 +4406,26 @@ elf64_alpha_relocate_section (bfd *outpu
 	case R_ALPHA_GPREL16:
 	case R_ALPHA_GPRELLOW:
 	  if (dynamic_symbol_p)
-            {
+	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-                (_("%B: gp-relative relocation against dynamic symbol %s"),
-                 input_bfd, h->root.root.root.string);
-              ret_val = FALSE;
-            }
+		(_("%B: gp-relative relocation against dynamic symbol %s"),
+		 input_bfd, h->root.root.root.string);
+	      ret_val = FALSE;
+	    }
 	  BFD_ASSERT(gp != 0);
 	  value -= gp;
 	  goto default_reloc;
 
 	case R_ALPHA_GPRELHIGH:
 	  if (dynamic_symbol_p)
-            {
+	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-                (_("%B: gp-relative relocation against dynamic symbol %s"),
-                 input_bfd, h->root.root.root.string);
-              ret_val = FALSE;
-            }
+		(_("%B: gp-relative relocation against dynamic symbol %s"),
+		 input_bfd, h->root.root.root.string);
+	      ret_val = FALSE;
+	    }
 	  BFD_ASSERT(gp != 0);
 	  value -= gp;
 	  value = ((bfd_signed_vma) value >> 16) + ((value >> 15) & 1);
@@ -4515,13 +4446,13 @@ elf64_alpha_relocate_section (bfd *outpu
 
 	case R_ALPHA_BRADDR:
 	  if (dynamic_symbol_p)
-            {
+	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-                (_("%B: pc-relative relocation against dynamic symbol %s"),
-                 input_bfd, h->root.root.root.string);
-              ret_val = FALSE;
-            }
+		(_("%B: pc-relative relocation against dynamic symbol %s"),
+		 input_bfd, h->root.root.root.string);
+	      ret_val = FALSE;
+	    }
 	  /* The regular PC-relative stuff measures from the start of
 	     the instruction rather than the end.  */
 	  value -= 4;
@@ -4560,7 +4491,7 @@ elf64_alpha_relocate_section (bfd *outpu
 	    switch (other & STO_ALPHA_STD_GPLOAD)
 	      {
 	      case STO_ALPHA_NOPV:
-	        break;
+		break;
 	      case STO_ALPHA_STD_GPLOAD:
 		value += 8;
 		break;
@@ -4659,22 +4590,22 @@ elf64_alpha_relocate_section (bfd *outpu
 	case R_ALPHA_SREL32:
 	case R_ALPHA_SREL64:
 	  if (dynamic_symbol_p)
-            {
+	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-                (_("%B: pc-relative relocation against dynamic symbol %s"),
-                 input_bfd, h->root.root.root.string);
-              ret_val = FALSE;
-            }
+		(_("%B: pc-relative relocation against dynamic symbol %s"),
+		 input_bfd, h->root.root.root.string);
+	      ret_val = FALSE;
+	    }
 	  else if (bfd_link_pic (info)
 		   && undef_weak_ref)
-            {
+	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-                (_("%B: pc-relative relocation against undefined weak symbol %s"),
-                 input_bfd, h->root.root.root.string);
-              ret_val = FALSE;
-            }
+		(_("%B: pc-relative relocation against undefined weak symbol %s"),
+		 input_bfd, h->root.root.root.string);
+	      ret_val = FALSE;
+	    }
 
 
 	  /* ??? .eh_frame references to discarded sections will be smashed
@@ -4718,7 +4649,7 @@ elf64_alpha_relocate_section (bfd *outpu
 	      else
 		{
 		  BFD_ASSERT (elf_hash_table (info)->tls_sec != NULL);
-	          value -= dtp_base;
+		  value -= dtp_base;
 		}
 	      bfd_put_64 (output_bfd, value,
 			  sgot->contents + gotent->got_offset + 8);
@@ -4734,13 +4665,13 @@ elf64_alpha_relocate_section (bfd *outpu
 	case R_ALPHA_DTPRELLO:
 	case R_ALPHA_DTPREL16:
 	  if (dynamic_symbol_p)
-            {
+	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-                (_("%B: dtp-relative relocation against dynamic symbol %s"),
-                 input_bfd, h->root.root.root.string);
-              ret_val = FALSE;
-            }
+		(_("%B: dtp-relative relocation against dynamic symbol %s"),
+		 input_bfd, h->root.root.root.string);
+	      ret_val = FALSE;
+	    }
 	  BFD_ASSERT (elf_hash_table (info)->tls_sec != NULL);
 	  value -= dtp_base;
 	  if (r_type == R_ALPHA_DTPRELHI)
@@ -4756,16 +4687,16 @@ elf64_alpha_relocate_section (bfd *outpu
 		/* xgettext:c-format */
 		(_("%B: TLS local exec code cannot be linked into shared objects"),
 		input_bfd);
-              ret_val = FALSE;
+	      ret_val = FALSE;
 	    }
 	  else if (dynamic_symbol_p)
-            {
+	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-                (_("%B: tp-relative relocation against dynamic symbol %s"),
-                 input_bfd, h->root.root.root.string);
-              ret_val = FALSE;
-            }
+		(_("%B: tp-relative relocation against dynamic symbol %s"),
+		 input_bfd, h->root.root.root.string);
+	      ret_val = FALSE;
+	    }
 	  BFD_ASSERT (elf_hash_table (info)->tls_sec != NULL);
 	  value -= tp_base;
 	  if (r_type == R_ALPHA_TPRELHI)
@@ -5424,9 +5355,9 @@ elf64_alpha_reloc_type_class (const stru
 
 static const struct bfd_elf_special_section elf64_alpha_special_sections[] =
 {
-  { STRING_COMMA_LEN (".sbss"),  -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_ALPHA_GPREL },
+  { STRING_COMMA_LEN (".sbss"),	 -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_ALPHA_GPREL },
   { STRING_COMMA_LEN (".sdata"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_ALPHA_GPREL },
-  { NULL,                     0,  0, 0,            0 }
+  { NULL,		      0,  0, 0,		   0 }
 };
 
 /* ECOFF swapping routines.  These are used when dealing with the
@@ -5578,7 +5509,6 @@ static const struct elf_size_info alpha_
 
 #define elf_backend_can_gc_sections	1
 #define elf_backend_gc_mark_hook	elf64_alpha_gc_mark_hook
-#define elf_backend_gc_sweep_hook	elf64_alpha_gc_sweep_hook
 
 #define elf_backend_ecoff_debug_swap \
   &elf64_alpha_ecoff_debug_swap
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64.c ./bfd/elf64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* ELF 64-bit executable support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-gen.c ./bfd/elf64-gen.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-gen.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-gen.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Generic support for 64-bit ELF
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-hppa.c ./bfd/elf64-hppa.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-hppa.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-hppa.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for HPPA 64-bit ELF
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -265,7 +265,7 @@ hppa64_link_hash_newfunc (struct bfd_has
       entry = bfd_hash_allocate (table,
 				 sizeof (struct elf64_hppa_link_hash_entry));
       if (entry == NULL)
-        return entry;
+	return entry;
     }
 
   /* Call the allocation method of the superclass.  */
@@ -349,9 +349,9 @@ elf64_hppa_object_p (bfd *abfd)
       return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 11);
     case EFA_PARISC_2_0:
       if (i_ehdrp->e_ident[EI_CLASS] == ELFCLASS64)
-        return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 25);
+	return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 25);
       else
-        return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 20);
+	return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 20);
     case EFA_PARISC_2_0 | EF_PARISC_WIDE:
       return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 25);
     }
@@ -441,8 +441,8 @@ count_dyn_reloc (bfd *abfd,
 		 struct elf64_hppa_link_hash_entry *hh,
 		 int type,
 		 asection *sec,
-	         int sec_symndx,
-	         bfd_vma offset,
+		 int sec_symndx,
+		 bfd_vma offset,
 		 bfd_vma addend)
 {
   struct elf64_hppa_dyn_reloc_entry *rent;
@@ -644,7 +644,6 @@ elf64_hppa_check_relocs (bfd *abfd,
 
 	  /* PR15323, ref flags aren't set for references in the same
 	     object.  */
-	  hh->eh.root.non_ir_ref = 1;
 	  hh->eh.ref_regular = 1;
 	}
       else
@@ -1474,12 +1473,12 @@ elf64_hppa_adjust_dynamic_symbol (struct
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (eh->u.weakdef != NULL)
+  if (eh->is_weakalias)
     {
-      BFD_ASSERT (eh->u.weakdef->root.type == bfd_link_hash_defined
-		  || eh->u.weakdef->root.type == bfd_link_hash_defweak);
-      eh->root.u.def.section = eh->u.weakdef->root.u.def.section;
-      eh->root.u.def.value = eh->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (eh);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      eh->root.u.def.section = def->root.u.def.section;
+      eh->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -1636,9 +1635,9 @@ elf64_hppa_size_dynamic_sections (bfd *o
 	      *local_dlt = sec->size;
 	      sec->size += DLT_ENTRY_SIZE;
 	      if (bfd_link_pic (info))
-	        {
+		{
 		  srel->size += sizeof (Elf64_External_Rela);
-	        }
+		}
 	    }
 	  else
 	    *local_dlt = (bfd_vma) -1;
@@ -1712,7 +1711,7 @@ elf64_hppa_size_dynamic_sections (bfd *o
     {
       data.ofs = hppa_info->plt_sec->size;
       elf_link_hash_traverse (&hppa_info->root,
-		              allocate_global_data_plt, &data);
+			      allocate_global_data_plt, &data);
       hppa_info->plt_sec->size = data.ofs;
     }
 
@@ -2079,8 +2078,8 @@ elf64_hppa_finish_dynamic_symbol (bfd *o
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("stub entry for %s cannot load .plt, dp offset = %ld"),
-	     hh->eh.root.root.string, (long) value);
+	    (_("stub entry for %s cannot load .plt, dp offset = %Ld"),
+	     hh->eh.root.root.string, value);
 	  return FALSE;
 	}
 
@@ -3284,7 +3283,7 @@ elf_hppa_final_link_relocate (Elf_Intern
 	  {
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("%B(%A+0x%" BFD_VMA_FMT "x): cannot reach %s"),
+	      (_("%B(%A+%#Lx): cannot reach %s"),
 	      input_bfd,
 	      input_section,
 	      offset,
@@ -3348,8 +3347,8 @@ elf_hppa_final_link_relocate (Elf_Intern
 	  {
 	    bfd_vma *local_opd_offsets, *local_dlt_offsets;
 
-            if (local_offsets == NULL)
-              abort ();
+	    if (local_offsets == NULL)
+	      abort ();
 
 	    /* Now do .opd creation if needed.  */
 	    if (r_type == R_PARISC_LTOFF_FPTR14R
@@ -3717,8 +3716,8 @@ elf_hppa_final_link_relocate (Elf_Intern
 	  {
 	    bfd_vma *local_opd_offsets;
 
-            if (local_offsets == NULL)
-              abort ();
+	    if (local_offsets == NULL)
+	      abort ();
 
 	    local_opd_offsets = local_offsets + 2 * symtab_hdr->sh_info;
 	    off = local_opd_offsets[r_symndx];
@@ -3728,7 +3727,7 @@ elf_hppa_final_link_relocate (Elf_Intern
 	    if ((off & 1) != 0)
 	      {
 		BFD_ASSERT (off != (bfd_vma) -1);
-	        off &= ~1;
+		off &= ~1;
 	      }
 	    else
 	      {
@@ -3917,19 +3916,19 @@ elf64_hppa_relocate_section (bfd *output
 						    rel->r_offset, err);
 	    }
 
-          if (!bfd_link_relocatable (info)
-              && relocation == 0
-              && eh->root.type != bfd_link_hash_defined
-              && eh->root.type != bfd_link_hash_defweak
-              && eh->root.type != bfd_link_hash_undefweak)
-            {
-              if (info->unresolved_syms_in_objects == RM_IGNORE
-                  && ELF_ST_VISIBILITY (eh->other) == STV_DEFAULT
-                  && eh->type == STT_PARISC_MILLI)
+	  if (!bfd_link_relocatable (info)
+	      && relocation == 0
+	      && eh->root.type != bfd_link_hash_defined
+	      && eh->root.type != bfd_link_hash_defweak
+	      && eh->root.type != bfd_link_hash_undefweak)
+	    {
+	      if (info->unresolved_syms_in_objects == RM_IGNORE
+		  && ELF_ST_VISIBILITY (eh->other) == STV_DEFAULT
+		  && eh->type == STT_PARISC_MILLI)
 		(*info->callbacks->undefined_symbol)
 		  (info, eh_name (eh), input_bfd,
 		   input_section, rel->r_offset, FALSE);
-            }
+	    }
 	}
 
       if (sym_sec != NULL && discarded_section (sym_sec))
@@ -3980,14 +3979,14 @@ elf64_hppa_relocate_section (bfd *output
 
 static const struct bfd_elf_special_section elf64_hppa_special_sections[] =
 {
-  { STRING_COMMA_LEN (".fini"),  0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { STRING_COMMA_LEN (".init"),  0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { STRING_COMMA_LEN (".plt"),   0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
-  { STRING_COMMA_LEN (".dlt"),   0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
+  { STRING_COMMA_LEN (".fini"),	 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".init"),	 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".plt"),	 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
+  { STRING_COMMA_LEN (".dlt"),	 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
   { STRING_COMMA_LEN (".sdata"), 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
-  { STRING_COMMA_LEN (".sbss"),  0, SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
-  { STRING_COMMA_LEN (".tbss"),  0, SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_HP_TLS },
-  { NULL,                    0,  0, 0,            0 }
+  { STRING_COMMA_LEN (".sbss"),	 0, SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_PARISC_SHORT },
+  { STRING_COMMA_LEN (".tbss"),	 0, SHT_NOBITS, SHF_ALLOC + SHF_WRITE + SHF_HP_TLS },
+  { NULL,		     0,	 0, 0,		  0 }
 };
 
 /* The hash bucket size is the standard one, namely 4.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-hppa.h ./bfd/elf64-hppa.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-hppa.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-hppa.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* ELF64/HPPA support
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-ia64-vms.c ./bfd/elf64-ia64-vms.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-ia64-vms.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-ia64-vms.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* IA-64 support for OpenVMS
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -254,18 +254,18 @@ elf64_ia64_info_to_howto (bfd *abfd ATTR
 
 static const bfd_byte plt_full_entry[PLT_FULL_ENTRY_SIZE] =
 {
-  0x0b, 0x78, 0x00, 0x02, 0x00, 0x24,  /*   [MMI]       addl r15=0,r1;;   */
-  0x00, 0x41, 0x3c, 0x70, 0x29, 0xc0,  /*               ld8.acq r16=[r15],8*/
-  0x01, 0x08, 0x00, 0x84,              /*               mov r14=r1;;      */
-  0x11, 0x08, 0x00, 0x1e, 0x18, 0x10,  /*   [MIB]       ld8 r1=[r15]      */
-  0x60, 0x80, 0x04, 0x80, 0x03, 0x00,  /*               mov b6=r16        */
-  0x60, 0x00, 0x80, 0x00               /*               br.few b6;;       */
+  0x0b, 0x78, 0x00, 0x02, 0x00, 0x24,  /*   [MMI]	addl r15=0,r1;;	  */
+  0x00, 0x41, 0x3c, 0x70, 0x29, 0xc0,  /*		ld8.acq r16=[r15],8*/
+  0x01, 0x08, 0x00, 0x84,	       /*		mov r14=r1;;	  */
+  0x11, 0x08, 0x00, 0x1e, 0x18, 0x10,  /*   [MIB]	ld8 r1=[r15]	  */
+  0x60, 0x80, 0x04, 0x80, 0x03, 0x00,  /*		mov b6=r16	  */
+  0x60, 0x00, 0x80, 0x00	       /*		br.few b6;;	  */
 };
 
 static const bfd_byte oor_brl[16] =
 {
-  0x05, 0x00, 0x00, 0x00, 0x01, 0x00,  /*  [MLX]        nop.m 0           */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /*               brl.sptk.few tgt;;*/
+  0x05, 0x00, 0x00, 0x00, 0x01, 0x00,  /*  [MLX]	nop.m 0		  */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /*		brl.sptk.few tgt;;*/
   0x00, 0x00, 0x00, 0xc0
 };
 
@@ -555,7 +555,7 @@ elf64_ia64_relax_section (bfd *abfd, ase
 		  ia64_elf_relax_brl (contents, roff);
 
 		  irel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info),
-                                               R_IA64_PCREL21B);
+					       R_IA64_PCREL21B);
 
 		  /* If the original relocation offset points to slot
 		     1, change it to slot 2.  */
@@ -570,7 +570,7 @@ elf64_ia64_relax_section (bfd *abfd, ase
 	  else if (ia64_elf_relax_br (contents, roff))
 	    {
 	      irel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info),
-                                           R_IA64_PCREL60B);
+					   R_IA64_PCREL60B);
 
 	      /* Make the relocation offset point to slot 1.  */
 	      irel->r_offset = (irel->r_offset & ~((bfd_vma) 0x3)) + 1;
@@ -584,9 +584,9 @@ elf64_ia64_relax_section (bfd *abfd, ase
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B: Can't relax br at 0x%lx in section `%A'."
+		(_("%B: Can't relax br at %#Lx in section `%A'."
 		   " Please use brl or indirect branch."),
-		 sec->owner, (unsigned long) roff, sec);
+		 sec->owner, roff, sec);
 	      bfd_set_error (bfd_error_bad_value);
 	      goto error_return;
 	    }
@@ -642,10 +642,10 @@ elf64_ia64_relax_section (bfd *abfd, ase
 		}
 	      else
 		{
-                  memcpy (contents + trampoff, oor_brl, size);
-                  irel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info),
-                                               R_IA64_PCREL60B);
-                  irel->r_offset = trampoff + 2;
+		  memcpy (contents + trampoff, oor_brl, size);
+		  irel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info),
+					       R_IA64_PCREL60B);
+		  irel->r_offset = trampoff + 2;
 		}
 
 	      /* Record the fixup so we don't do it again this section.  */
@@ -703,9 +703,9 @@ elf64_ia64_relax_section (bfd *abfd, ase
 					  ia64_info);
 	  else if (r_type == R_IA64_LTOFF22X)
 	    {
-              /* Can't deal yet correctly with ABS symbols.  */
-              if (bfd_is_abs_section (tsec))
-                continue;
+	      /* Can't deal yet correctly with ABS symbols.  */
+	      if (bfd_is_abs_section (tsec))
+		continue;
 
 	      irel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info),
 					   R_IA64_GPREL22);
@@ -1145,7 +1145,7 @@ elf64_ia64_dyn_sym_traverse (struct elf6
 
 static bfd_boolean
 create_ia64_vms_notes (bfd *abfd, struct bfd_link_info *info,
-                       unsigned int time_hi, unsigned int time_lo)
+		       unsigned int time_hi, unsigned int time_lo)
 {
 #define NBR_NOTES 7
   Elf_Internal_Note notes[NBR_NOTES];
@@ -1324,10 +1324,10 @@ elf64_ia64_create_dynamic_sections (bfd 
 
   /* Create note section.  */
   s = bfd_make_section_anyway_with_flags (abfd, ".vms.note",
-                                          (SEC_LINKER_CREATED
-                                           | SEC_HAS_CONTENTS
-                                           | SEC_IN_MEMORY
-                                           | SEC_READONLY));
+					  (SEC_LINKER_CREATED
+					   | SEC_HAS_CONTENTS
+					   | SEC_IN_MEMORY
+					   | SEC_READONLY));
   if (s == NULL
       || !bfd_set_section_alignment (abfd, s, 3))
     return FALSE;
@@ -1613,7 +1613,7 @@ get_dyn_sym_info (struct elf64_ia64_link
   if (create)
     {
       /* When we create the array, we don't check for duplicates,
-         except in the previously sorted section if one exists, and
+	 except in the previously sorted section if one exists, and
 	 against the last inserted entry.  This allows insertions to
 	 be fast.  */
       if (info)
@@ -1727,8 +1727,8 @@ get_got (bfd *abfd, struct elf64_ia64_li
       got = bfd_make_section_anyway_with_flags (dynobj, ".got",
 						flags | SEC_SMALL_DATA);
       if (got == NULL
-          || !bfd_set_section_alignment (dynobj, got, 3))
-        return NULL;
+	  || !bfd_set_section_alignment (dynobj, got, 3))
+	return NULL;
       ia64_info->root.sgot = got;
     }
 
@@ -1977,12 +1977,12 @@ elf64_ia64_check_relocs (bfd *abfd, stru
 	case R_IA64_DTPMOD64MSB:
 	case R_IA64_DTPMOD64LSB:
 	case R_IA64_LTOFF_DTPMOD22:
-          abort ();
+	  abort ();
 	  break;
 
 	case R_IA64_IPLTMSB:
 	case R_IA64_IPLTLSB:
-          break;
+	  break;
 
 	case R_IA64_LTOFF_FPTR22:
 	case R_IA64_LTOFF_FPTR64I:
@@ -2032,7 +2032,7 @@ elf64_ia64_check_relocs (bfd *abfd, stru
 	  break;
 
 	case R_IA64_PCREL21B:
-        case R_IA64_PCREL60B:
+	case R_IA64_PCREL60B:
 	  /* Depending on where this symbol is defined, we may or may not
 	     need a full plt entry.  Only skip if we know we'll not need
 	     the entry -- static or symbolic, and the symbol definition
@@ -2099,7 +2099,6 @@ elf64_ia64_check_relocs (bfd *abfd, stru
 
 	  /* PR15323, ref flags aren't set for references in the same
 	     object.  */
-	  h->root.non_ir_ref = 1;
 	  h->ref_regular = 1;
 	}
       else
@@ -2129,7 +2128,7 @@ elf64_ia64_check_relocs (bfd *abfd, stru
 	case R_IA64_DTPMOD64MSB:
 	case R_IA64_DTPMOD64LSB:
 	case R_IA64_LTOFF_DTPMOD22:
-          abort ();
+	  abort ();
 	  break;
 
 	case R_IA64_LTOFF_FPTR22:
@@ -2175,7 +2174,7 @@ elf64_ia64_check_relocs (bfd *abfd, stru
 	  break;
 
 	case R_IA64_PCREL21B:
-        case R_IA64_PCREL60B:
+	case R_IA64_PCREL60B:
 	  /* Depending on where this symbol is defined, we may or may not
 	     need a full plt entry.  Only skip if we know we'll not need
 	     the entry -- static or symbolic, and the symbol definition
@@ -2237,7 +2236,7 @@ elf64_ia64_check_relocs (bfd *abfd, stru
 	}
       if (need_entry & NEED_FPTR)
 	{
-          /* Create the .opd section.  */
+	  /* Create the .opd section.  */
 	  if (!fptr)
 	    {
 	      fptr = get_fptr (abfd, info, ia64_info);
@@ -2250,7 +2249,7 @@ elf64_ia64_check_relocs (bfd *abfd, stru
 	dyn_i->want_ltoff_fptr = 1;
       if (need_entry & (NEED_MIN_PLT | NEED_FULL_PLT))
 	{
-          if (!ia64_info->root.dynobj)
+	  if (!ia64_info->root.dynobj)
 	    ia64_info->root.dynobj = abfd;
 	  h->needs_plt = 1;
 	  dyn_i->want_plt = 1;
@@ -2360,7 +2359,7 @@ allocate_fptr (struct elf64_ia64_dyn_sym
 
       if (h == NULL || !h->def_dynamic)
 	{
-          /*  A non dynamic symbol.  */
+	  /*  A non dynamic symbol.  */
 	  dyn_i->fptr_offset = x->ofs;
 	  x->ofs += 16;
 	}
@@ -2478,13 +2477,13 @@ allocate_dynrel_entries (struct elf64_ia
     {
       /* VMS: FIX64.  */
       if (dyn_i->h != NULL && dyn_i->h->def_dynamic)
-        {
-          h_ia64 = (struct elf64_ia64_link_hash_entry *) dyn_i->h;
-          elf_ia64_vms_tdata (h_ia64->shl)->fixups_off +=
-            sizeof (Elf64_External_VMS_IMAGE_FIXUP);
-          ia64_info->fixups_sec->size +=
-            sizeof (Elf64_External_VMS_IMAGE_FIXUP);
-        }
+	{
+	  h_ia64 = (struct elf64_ia64_link_hash_entry *) dyn_i->h;
+	  elf_ia64_vms_tdata (h_ia64->shl)->fixups_off +=
+	    sizeof (Elf64_External_VMS_IMAGE_FIXUP);
+	  ia64_info->fixups_sec->size +=
+	    sizeof (Elf64_External_VMS_IMAGE_FIXUP);
+	}
     }
 
   if (ia64_info->rel_fptr_sec && dyn_i->want_fptr)
@@ -2498,13 +2497,13 @@ allocate_dynrel_entries (struct elf64_ia
     {
       /* VMS: FIXFD.  */
       if (dyn_i->h != NULL && dyn_i->h->def_dynamic)
-        {
-          h_ia64 = (struct elf64_ia64_link_hash_entry *) dyn_i->h;
-          elf_ia64_vms_tdata (h_ia64->shl)->fixups_off +=
-            sizeof (Elf64_External_VMS_IMAGE_FIXUP);
-          ia64_info->fixups_sec->size +=
-            sizeof (Elf64_External_VMS_IMAGE_FIXUP);
-        }
+	{
+	  h_ia64 = (struct elf64_ia64_link_hash_entry *) dyn_i->h;
+	  elf_ia64_vms_tdata (h_ia64->shl)->fixups_off +=
+	    sizeof (Elf64_External_VMS_IMAGE_FIXUP);
+	  ia64_info->fixups_sec->size +=
+	    sizeof (Elf64_External_VMS_IMAGE_FIXUP);
+	}
     }
 
   /* Take care of the normal data relocations.  */
@@ -2553,13 +2552,13 @@ allocate_dynrel_entries (struct elf64_ia
 
       /* Add a fixup.  */
       if (!dynamic_symbol)
-        abort ();
+	abort ();
 
       h_ia64 = (struct elf64_ia64_link_hash_entry *) dyn_i->h;
       elf_ia64_vms_tdata (h_ia64->shl)->fixups_off +=
-        sizeof (Elf64_External_VMS_IMAGE_FIXUP);
+	sizeof (Elf64_External_VMS_IMAGE_FIXUP);
       ia64_info->fixups_sec->size +=
-        sizeof (Elf64_External_VMS_IMAGE_FIXUP);
+	sizeof (Elf64_External_VMS_IMAGE_FIXUP);
     }
 
   return TRUE;
@@ -2575,12 +2574,12 @@ elf64_ia64_adjust_dynamic_symbol (struct
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-                  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -2727,13 +2726,13 @@ elf64_ia64_size_dynamic_sections (bfd *o
 	}
       else if (sec == ia64_info->fixups_sec)
 	{
-          if (strip)
-            ia64_info->fixups_sec = NULL;
+	  if (strip)
+	    ia64_info->fixups_sec = NULL;
 	}
       else if (sec == ia64_info->transfer_sec)
-        {
-          ;
-        }
+	{
+	  ;
+	}
       else
 	{
 	  const char *name;
@@ -2794,125 +2793,125 @@ elf64_ia64_size_dynamic_sections (bfd *o
       vms_get_time (&time_hi, &time_lo);
 
       if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_IDENT, 0))
-        return FALSE;
+	return FALSE;
       if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_LINKTIME,
-                                       (((bfd_uint64_t)time_hi) << 32)
-                                       + time_lo))
-        return FALSE;
+				       (((bfd_uint64_t)time_hi) << 32)
+				       + time_lo))
+	return FALSE;
 
       /* Strtab.  */
       strdyn_off = dynsec->size;
       if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_STRTAB_OFFSET, 0))
-        return FALSE;
+	return FALSE;
       if (!_bfd_elf_add_dynamic_entry (info, DT_STRSZ, 0))
-        return FALSE;
+	return FALSE;
 
       /* PLTGOT  */
       if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_PLTGOT_SEG, 0))
-        return FALSE;
+	return FALSE;
       if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_PLTGOT_OFFSET, 0))
-        return FALSE;
+	return FALSE;
 
       /* Misc.  */
       if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_FPMODE, 0x9800000))
-        return FALSE;
+	return FALSE;
       if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_LNKFLAGS,
-                                       VMS_LF_IMGSTA | VMS_LF_MAIN))
-        return FALSE;
+				       VMS_LF_IMGSTA | VMS_LF_MAIN))
+	return FALSE;
 
       /* Add entries for shared libraries.  */
       for (abfd = info->input_bfds; abfd; abfd = abfd->link.next)
-        {
-          char *soname;
-          size_t soname_len;
-          bfd_size_type strindex;
-          bfd_byte *newcontents;
-          bfd_vma fixups_shl_off;
-
-          if (!(abfd->flags & DYNAMIC))
-            continue;
-          BFD_ASSERT (abfd->xvec == output_bfd->xvec);
-
-          if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_NEEDED_IDENT,
-                                           elf_ia64_vms_ident (abfd)))
-            return FALSE;
-
-          soname = vms_get_module_name (abfd->filename, TRUE);
-          if (soname == NULL)
-            return FALSE;
-          strindex = dynstrsec->size;
-          soname_len = strlen (soname) + 1;
-          newcontents = (bfd_byte *) bfd_realloc (dynstrsec->contents,
-                                                  strindex + soname_len);
-          if (newcontents == NULL)
-            return FALSE;
-          memcpy (newcontents + strindex, soname, soname_len);
-          dynstrsec->size += soname_len;
-          dynstrsec->contents = newcontents;
-
-          if (!_bfd_elf_add_dynamic_entry (info, DT_NEEDED, strindex))
-            return FALSE;
-
-          if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_FIXUP_NEEDED,
-                                           shl_num))
-            return FALSE;
-          shl_num++;
-
-          /* The fixups_off was in fact containing the size of the fixup
-             section.  Remap into the offset.  */
-          fixups_shl_off = elf_ia64_vms_tdata (abfd)->fixups_off;
-          elf_ia64_vms_tdata (abfd)->fixups_off = fixups_off;
-
-          if (!_bfd_elf_add_dynamic_entry
-              (info, DT_IA_64_VMS_FIXUP_RELA_CNT,
-               fixups_shl_off / sizeof (Elf64_External_VMS_IMAGE_FIXUP)))
-            return FALSE;
-          if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_FIXUP_RELA_OFF,
-                                           fixups_off))
-            return FALSE;
-          fixups_off += fixups_shl_off;
-        }
+	{
+	  char *soname;
+	  size_t soname_len;
+	  bfd_size_type strindex;
+	  bfd_byte *newcontents;
+	  bfd_vma fixups_shl_off;
+
+	  if (!(abfd->flags & DYNAMIC))
+	    continue;
+	  BFD_ASSERT (abfd->xvec == output_bfd->xvec);
+
+	  if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_NEEDED_IDENT,
+					   elf_ia64_vms_ident (abfd)))
+	    return FALSE;
+
+	  soname = vms_get_module_name (abfd->filename, TRUE);
+	  if (soname == NULL)
+	    return FALSE;
+	  strindex = dynstrsec->size;
+	  soname_len = strlen (soname) + 1;
+	  newcontents = (bfd_byte *) bfd_realloc (dynstrsec->contents,
+						  strindex + soname_len);
+	  if (newcontents == NULL)
+	    return FALSE;
+	  memcpy (newcontents + strindex, soname, soname_len);
+	  dynstrsec->size += soname_len;
+	  dynstrsec->contents = newcontents;
+
+	  if (!_bfd_elf_add_dynamic_entry (info, DT_NEEDED, strindex))
+	    return FALSE;
+
+	  if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_FIXUP_NEEDED,
+					   shl_num))
+	    return FALSE;
+	  shl_num++;
+
+	  /* The fixups_off was in fact containing the size of the fixup
+	     section.  Remap into the offset.  */
+	  fixups_shl_off = elf_ia64_vms_tdata (abfd)->fixups_off;
+	  elf_ia64_vms_tdata (abfd)->fixups_off = fixups_off;
+
+	  if (!_bfd_elf_add_dynamic_entry
+	      (info, DT_IA_64_VMS_FIXUP_RELA_CNT,
+	       fixups_shl_off / sizeof (Elf64_External_VMS_IMAGE_FIXUP)))
+	    return FALSE;
+	  if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_FIXUP_RELA_OFF,
+					   fixups_off))
+	    return FALSE;
+	  fixups_off += fixups_shl_off;
+	}
 
       /* Unwind.  */
       if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_UNWINDSZ, 0))
-        return FALSE;
+	return FALSE;
       if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_UNWIND_CODSEG, 0))
-        return FALSE;
+	return FALSE;
       if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_UNWIND_INFOSEG, 0))
-        return FALSE;
+	return FALSE;
       if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_UNWIND_OFFSET, 0))
-        return FALSE;
+	return FALSE;
       if (!_bfd_elf_add_dynamic_entry (info, DT_IA_64_VMS_UNWIND_SEG, 0))
-        return FALSE;
+	return FALSE;
 
       if (!_bfd_elf_add_dynamic_entry (info, DT_NULL, 0xdead))
-            return FALSE;
+	    return FALSE;
 
       /* Fix the strtab entries.  */
       bed = get_elf_backend_data (hash_table->dynobj);
 
       if (dynstrsec->size > 1)
-        dynstrsec->contents[0] = 0;
+	dynstrsec->contents[0] = 0;
       else
-        dynstrsec->size = 0;
+	dynstrsec->size = 0;
 
       /* Note: one 'spare' (ie DT_NULL) entry is added by
-         bfd_elf_size_dynsym_hash_dynstr.  */
+	 bfd_elf_size_dynsym_hash_dynstr.  */
       dyn.d_tag = DT_IA_64_VMS_STRTAB_OFFSET;
       dyn.d_un.d_val = dynsec->size /* + sizeof (Elf64_External_Dyn) */;
       bed->s->swap_dyn_out (hash_table->dynobj, &dyn,
-                            dynsec->contents + strdyn_off);
+			    dynsec->contents + strdyn_off);
 
       dyn.d_tag = DT_STRSZ;
       dyn.d_un.d_val = dynstrsec->size;
       bed->s->swap_dyn_out (hash_table->dynobj, &dyn,
-                            dynsec->contents + strdyn_off + bed->s->sizeof_dyn);
+			    dynsec->contents + strdyn_off + bed->s->sizeof_dyn);
 
       elf_ia64_vms_tdata (output_bfd)->needed_count = shl_num;
 
       /* Note section.  */
       if (!create_ia64_vms_notes (output_bfd, info, time_hi, time_lo))
-        return FALSE;
+	return FALSE;
     }
 
   /* ??? Perhaps force __gp local.  */
@@ -2922,10 +2921,10 @@ elf64_ia64_size_dynamic_sections (bfd *o
 
 static void
 elf64_ia64_install_fixup (bfd *output_bfd,
-                          struct elf64_ia64_link_hash_table *ia64_info,
-                          struct elf_link_hash_entry *h,
-                          unsigned int type, asection *sec, bfd_vma offset,
-                          bfd_vma addend)
+			  struct elf64_ia64_link_hash_table *ia64_info,
+			  struct elf_link_hash_entry *h,
+			  unsigned int type, asection *sec, bfd_vma offset,
+			  bfd_vma addend)
 {
   asection *relsec;
   Elf64_External_VMS_IMAGE_FIXUP *fixup;
@@ -3005,7 +3004,7 @@ set_got_entry (bfd *abfd, struct bfd_lin
 	    && (!dyn_i->h
 		|| ELF_ST_VISIBILITY (dyn_i->h->other) == STV_DEFAULT
 		|| dyn_i->h->root.type != bfd_link_hash_undefweak))
-           || elf64_ia64_dynamic_symbol_p (dyn_i->h))
+	   || elf64_ia64_dynamic_symbol_p (dyn_i->h))
 	  && (!dyn_i->want_ltoff_fptr
 	      || !bfd_link_pie (info)
 	      || !dyn_i->h
@@ -3017,25 +3016,25 @@ set_got_entry (bfd *abfd, struct bfd_lin
 	      addend = value;
 	    }
 
-          /* VMS: install a FIX32 or FIX64.  */
-          switch (dyn_r_type)
-            {
-            case R_IA64_DIR32LSB:
-            case R_IA64_FPTR32LSB:
-              dyn_r_type = R_IA64_VMS_FIX32;
-              break;
-            case R_IA64_DIR64LSB:
-            case R_IA64_FPTR64LSB:
-              dyn_r_type = R_IA64_VMS_FIX64;
-              break;
-            default:
-              BFD_ASSERT (FALSE);
-              break;
-            }
-          elf64_ia64_install_fixup
-            (info->output_bfd, ia64_info, dyn_i->h,
-             dyn_r_type, got_sec, got_offset, addend);
-        }
+	  /* VMS: install a FIX32 or FIX64.  */
+	  switch (dyn_r_type)
+	    {
+	    case R_IA64_DIR32LSB:
+	    case R_IA64_FPTR32LSB:
+	      dyn_r_type = R_IA64_VMS_FIX32;
+	      break;
+	    case R_IA64_DIR64LSB:
+	    case R_IA64_FPTR64LSB:
+	      dyn_r_type = R_IA64_VMS_FIX64;
+	      break;
+	    default:
+	      BFD_ASSERT (FALSE);
+	      break;
+	    }
+	  elf64_ia64_install_fixup
+	    (info->output_bfd, ia64_info, dyn_i->h,
+	     dyn_r_type, got_sec, got_offset, addend);
+	}
     }
 
   /* Return the address of the linkage table entry.  */
@@ -3116,8 +3115,8 @@ set_pltoff_entry (bfd *abfd, struct bfd_
 	      || ELF_ST_VISIBILITY (dyn_i->h->other) == STV_DEFAULT
 	      || dyn_i->h->root.type != bfd_link_hash_undefweak))
 	{
-          /* VMS:  */
-          abort ();
+	  /* VMS:  */
+	  abort ();
 	}
 
       dyn_i->pltoff_done = 1;
@@ -3279,8 +3278,8 @@ elf64_ia64_choose_gp (bfd *abfd, struct 
 overflow:
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: short data segment overflowed (0x%lx >= 0x400000)"),
-	     abfd, (unsigned long) (max_short_vma - min_short_vma));
+	    (_("%B: short data segment overflowed (%#Lx >= 0x400000)"),
+	     abfd, max_short_vma - min_short_vma);
 	  return FALSE;
 	}
       else if ((gp_val > min_short_vma
@@ -3323,7 +3322,7 @@ elf64_ia64_final_link (bfd *abfd, struct
       gp_val = _bfd_get_gp_value (abfd);
 
       gp = elf_link_hash_lookup (elf_hash_table (info), "__gp", FALSE,
-			         FALSE, FALSE);
+				 FALSE, FALSE);
       if (gp)
 	{
 	  gp->root.type = bfd_link_hash_defined;
@@ -3581,24 +3580,24 @@ elf64_ia64_relocate_section (bfd *output
 		  addend = value;
 		}
 
-              /* VMS: install a FIX64.  */
-              switch (dyn_r_type)
-                {
-                case R_IA64_DIR32LSB:
-                  dyn_r_type = R_IA64_VMS_FIX32;
-                  break;
-                case R_IA64_DIR64LSB:
-                  dyn_r_type = R_IA64_VMS_FIX64;
-                  break;
-                default:
-                  BFD_ASSERT (FALSE);
-                  break;
-                }
-              elf64_ia64_install_fixup
-                (output_bfd, ia64_info, h,
-                 dyn_r_type, input_section, rel->r_offset, addend);
-              r = bfd_reloc_ok;
-              break;
+	      /* VMS: install a FIX64.  */
+	      switch (dyn_r_type)
+		{
+		case R_IA64_DIR32LSB:
+		  dyn_r_type = R_IA64_VMS_FIX32;
+		  break;
+		case R_IA64_DIR64LSB:
+		  dyn_r_type = R_IA64_VMS_FIX64;
+		  break;
+		default:
+		  BFD_ASSERT (FALSE);
+		  break;
+		}
+	      elf64_ia64_install_fixup
+		(output_bfd, ia64_info, h,
+		 dyn_r_type, input_section, rel->r_offset, addend);
+	      r = bfd_reloc_ok;
+	      break;
 	    }
 	  /* Fall through.  */
 
@@ -3634,7 +3633,7 @@ elf64_ia64_relocate_section (bfd *output
 	case R_IA64_LTOFF22:
 	case R_IA64_LTOFF22X:
 	case R_IA64_LTOFF64I:
-          dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
+	  dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
 	  value = set_got_entry (input_bfd, info, dyn_i,
 				 rel->r_addend, value, R_IA64_DIR64LSB);
 	  value -= gp_val;
@@ -3645,7 +3644,7 @@ elf64_ia64_relocate_section (bfd *output
 	case R_IA64_PLTOFF64I:
 	case R_IA64_PLTOFF64MSB:
 	case R_IA64_PLTOFF64LSB:
-          dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
+	  dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
 	  value = set_pltoff_entry (output_bfd, info, dyn_i, value, FALSE);
 	  value -= gp_val;
 	  r = ia64_elf_install_value (hit_addr, value, r_type);
@@ -3656,7 +3655,7 @@ elf64_ia64_relocate_section (bfd *output
 	case R_IA64_FPTR32LSB:
 	case R_IA64_FPTR64MSB:
 	case R_IA64_FPTR64LSB:
-          dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
+	  dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
 	  if (dyn_i->want_fptr)
 	    {
 	      if (!undef_weak_ref)
@@ -3689,12 +3688,12 @@ elf64_ia64_relocate_section (bfd *output
 		  value = 0;
 		}
 
-              /* VMS: FIXFD.  */
-              elf64_ia64_install_fixup
-                (output_bfd, ia64_info, h, R_IA64_VMS_FIXFD,
-                 input_section, rel->r_offset, 0);
-              r = bfd_reloc_ok;
-              break;
+	      /* VMS: FIXFD.  */
+	      elf64_ia64_install_fixup
+		(output_bfd, ia64_info, h, R_IA64_VMS_FIXFD,
+		 input_section, rel->r_offset, 0);
+	      r = bfd_reloc_ok;
+	      break;
 	    }
 
 	  r = ia64_elf_install_value (hit_addr, value, r_type);
@@ -3706,20 +3705,20 @@ elf64_ia64_relocate_section (bfd *output
 	case R_IA64_LTOFF_FPTR32LSB:
 	case R_IA64_LTOFF_FPTR64MSB:
 	case R_IA64_LTOFF_FPTR64LSB:
-          dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
-          if (dyn_i->want_fptr)
-            {
-              BFD_ASSERT (h == NULL || !h->def_dynamic);
-              if (!undef_weak_ref)
-                value = set_fptr_entry (output_bfd, info, dyn_i, value);
-            }
-          else
-            value = 0;
-
-          value = set_got_entry (output_bfd, info, dyn_i,
-                                 rel->r_addend, value, R_IA64_FPTR64LSB);
-          value -= gp_val;
-          r = ia64_elf_install_value (hit_addr, value, r_type);
+	  dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
+	  if (dyn_i->want_fptr)
+	    {
+	      BFD_ASSERT (h == NULL || !h->def_dynamic);
+	      if (!undef_weak_ref)
+		value = set_fptr_entry (output_bfd, info, dyn_i, value);
+	    }
+	  else
+	    value = 0;
+
+	  value = set_got_entry (output_bfd, info, dyn_i,
+				 rel->r_addend, value, R_IA64_FPTR64LSB);
+	  value -= gp_val;
+	  r = ia64_elf_install_value (hit_addr, value, r_type);
 	  break;
 
 	case R_IA64_PCREL32MSB:
@@ -3729,8 +3728,8 @@ elf64_ia64_relocate_section (bfd *output
 	  /* Install a dynamic relocation for this reloc.  */
 	  if (dynamic_symbol_p && r_symndx != 0)
 	    {
-              /* VMS: doesn't exist ???  */
-              abort ();
+	      /* VMS: doesn't exist ???  */
+	      abort ();
 	    }
 	  goto finish_pcrel;
 
@@ -3849,8 +3848,8 @@ elf64_ia64_relocate_section (bfd *output
 	  if ((dynamic_symbol_p || bfd_link_pic (info))
 	      && (input_section->flags & SEC_ALLOC) != 0)
 	    {
-              /* VMS: FIXFD ??  */
-              abort ();
+	      /* VMS: FIXFD ??  */
+	      abort ();
 	    }
 
 	  if (r_type == R_IA64_IPLTMSB)
@@ -3948,7 +3947,7 @@ elf64_ia64_relocate_section (bfd *output
 		_bfd_error_handler
 		  /* xgettext:c-format */
 		  (_("%B: missing TLS section for relocation %s against `%s'"
-		     " at 0x%lx in section `%A'."),
+		     " at %#Lx in section `%A'."),
 		   input_bfd, howto->name, name,
 		   rel->r_offset, input_section);
 		break;
@@ -3964,8 +3963,8 @@ elf64_ia64_relocate_section (bfd *output
 		       that the section is too big to relax.  */
 		    _bfd_error_handler
 		      /* xgettext:c-format */
-		      (_("%B: Can't relax br (%s) to `%s' at 0x%lx in section"
-			 " `%A' with size 0x%lx (> 0x1000000)."),
+		      (_("%B: Can't relax br (%s) to `%s' at %#Lx in section"
+			 " `%A' with size %#Lx (> 0x1000000)."),
 		       input_bfd, howto->name, name, rel->r_offset,
 		       input_section, input_section->size);
 		    break;
@@ -4038,9 +4037,9 @@ elf64_ia64_finish_dynamic_symbol (bfd *o
 
       /* VMS: FIXFD.  */
       elf64_ia64_install_fixup
-        (output_bfd, ia64_info, h, R_IA64_VMS_FIXFD, ia64_info->pltoff_sec,
-         pltoff_addr - (ia64_info->pltoff_sec->output_section->vma
-                        + ia64_info->pltoff_sec->output_offset), 0);
+	(output_bfd, ia64_info, h, R_IA64_VMS_FIXFD, ia64_info->pltoff_sec,
+	 pltoff_addr - (ia64_info->pltoff_sec->output_section->vma
+			+ ia64_info->pltoff_sec->output_offset), 0);
     }
 
   /* Mark some specially defined symbols as absolute.  */
@@ -4085,7 +4084,7 @@ elf64_ia64_finish_dynamic_sections (bfd 
 
       gp_val = _bfd_get_gp_value (abfd);
       phdr = _bfd_elf_find_segment_containing_section
-        (info->output_bfd, ia64_info->pltoff_sec->output_section);
+	(info->output_bfd, ia64_info->pltoff_sec->output_section);
       BFD_ASSERT (phdr != NULL);
       base_phdr = elf_tdata (info->output_bfd)->phdr;
       gp_seg = phdr - base_phdr;
@@ -4093,18 +4092,18 @@ elf64_ia64_finish_dynamic_sections (bfd 
 
       unwind_sec = bfd_get_section_by_name (abfd, ELF_STRING_ia64_unwind);
       if (unwind_sec != NULL)
-        {
-          asection *code_sec;
+	{
+	  asection *code_sec;
 
-          phdr = _bfd_elf_find_segment_containing_section (abfd, unwind_sec);
-          BFD_ASSERT (phdr != NULL);
-          unwind_seg = phdr - base_phdr;
-
-          code_sec = bfd_get_section_by_name (abfd, "$CODE$");
-          phdr = _bfd_elf_find_segment_containing_section (abfd, code_sec);
-          BFD_ASSERT (phdr != NULL);
-          code_seg = phdr - base_phdr;
-        }
+	  phdr = _bfd_elf_find_segment_containing_section (abfd, unwind_sec);
+	  BFD_ASSERT (phdr != NULL);
+	  unwind_seg = phdr - base_phdr;
+
+	  code_sec = bfd_get_section_by_name (abfd, "$CODE$");
+	  phdr = _bfd_elf_find_segment_containing_section (abfd, code_sec);
+	  BFD_ASSERT (phdr != NULL);
+	  code_seg = phdr - base_phdr;
+	}
 
       for (; dyncon < dynconend; dyncon++)
 	{
@@ -4114,46 +4113,46 @@ elf64_ia64_finish_dynamic_sections (bfd 
 
 	  switch (dyn.d_tag)
 	    {
-            case DT_IA_64_VMS_FIXUP_RELA_OFF:
-              dyn.d_un.d_val +=
-                (ia64_info->fixups_sec->output_section->vma
-                 + ia64_info->fixups_sec->output_offset)
-                - (sdyn->output_section->vma + sdyn->output_offset);
-              break;
-
-            case DT_IA_64_VMS_PLTGOT_OFFSET:
-              dyn.d_un.d_val = gp_off;
-              break;
-
-            case DT_IA_64_VMS_PLTGOT_SEG:
-              dyn.d_un.d_val = gp_seg;
-              break;
-
-            case DT_IA_64_VMS_UNWINDSZ:
-              if (unwind_sec == NULL)
-                {
-                  dyn.d_tag = DT_NULL;
-                  dyn.d_un.d_val = 0xdead;
-                }
-              else
-                dyn.d_un.d_val = unwind_sec->size;
-              break;
-
-            case DT_IA_64_VMS_UNWIND_CODSEG:
-              dyn.d_un.d_val = code_seg;
-              break;
-
-            case DT_IA_64_VMS_UNWIND_INFOSEG:
-            case DT_IA_64_VMS_UNWIND_SEG:
-              dyn.d_un.d_val = unwind_seg;
-              break;
-
-            case DT_IA_64_VMS_UNWIND_OFFSET:
-              break;
-
-            default:
-              /* No need to rewrite the entry.  */
-              continue;
+	    case DT_IA_64_VMS_FIXUP_RELA_OFF:
+	      dyn.d_un.d_val +=
+		(ia64_info->fixups_sec->output_section->vma
+		 + ia64_info->fixups_sec->output_offset)
+		- (sdyn->output_section->vma + sdyn->output_offset);
+	      break;
+
+	    case DT_IA_64_VMS_PLTGOT_OFFSET:
+	      dyn.d_un.d_val = gp_off;
+	      break;
+
+	    case DT_IA_64_VMS_PLTGOT_SEG:
+	      dyn.d_un.d_val = gp_seg;
+	      break;
+
+	    case DT_IA_64_VMS_UNWINDSZ:
+	      if (unwind_sec == NULL)
+		{
+		  dyn.d_tag = DT_NULL;
+		  dyn.d_un.d_val = 0xdead;
+		}
+	      else
+		dyn.d_un.d_val = unwind_sec->size;
+	      break;
+
+	    case DT_IA_64_VMS_UNWIND_CODSEG:
+	      dyn.d_un.d_val = code_seg;
+	      break;
+
+	    case DT_IA_64_VMS_UNWIND_INFOSEG:
+	    case DT_IA_64_VMS_UNWIND_SEG:
+	      dyn.d_un.d_val = unwind_seg;
+	      break;
+
+	    case DT_IA_64_VMS_UNWIND_OFFSET:
+	      break;
+
+	    default:
+	      /* No need to rewrite the entry.  */
+	      continue;
 	    }
 
 	  bfd_elf64_swap_dyn_out (abfd, &dyn, dyncon);
@@ -4169,25 +4168,25 @@ elf64_ia64_finish_dynamic_sections (bfd 
     tfr = (struct elf64_vms_transfer *)tfr_sec->contents;
     bfd_putl32 (6 * 8, tfr->size);
     bfd_putl64 (tfr_sec->output_section->vma
-                + tfr_sec->output_offset
-                + 6 * 8, tfr->tfradr3);
+		+ tfr_sec->output_offset
+		+ 6 * 8, tfr->tfradr3);
 
     tfr3 = elf_link_hash_lookup (elf_hash_table (info), "ELF$TFRADR", FALSE,
-                                 FALSE, FALSE);
+				 FALSE, FALSE);
 
     if (tfr3
-        && (tfr3->root.type == bfd_link_hash_defined
-            || tfr3->root.type == bfd_link_hash_defweak))
+	&& (tfr3->root.type == bfd_link_hash_defined
+	    || tfr3->root.type == bfd_link_hash_defweak))
       {
-        asection *tfr3_sec = tfr3->root.u.def.section;
-        bfd_vma tfr3_val;
+	asection *tfr3_sec = tfr3->root.u.def.section;
+	bfd_vma tfr3_val;
 
-        tfr3_val = (tfr3->root.u.def.value
-                    + tfr3_sec->output_section->vma
-                    + tfr3_sec->output_offset);
+	tfr3_val = (tfr3->root.u.def.value
+		    + tfr3_sec->output_section->vma
+		    + tfr3_sec->output_offset);
 
-        bfd_putl64 (tfr3_val, tfr->tfr3_func);
-        bfd_putl64 (_bfd_get_gp_value (info->output_bfd), tfr->tfr3_gp);
+	bfd_putl64 (tfr3_val, tfr->tfr3_func);
+	bfd_putl64 (_bfd_get_gp_value (info->output_bfd), tfr->tfr3_gp);
       }
 
     /* FIXME: set linker flags,
@@ -4348,9 +4347,9 @@ elf64_ia64_reloc_type_class (const struc
 
 static const struct bfd_elf_special_section elf64_ia64_special_sections[] =
 {
-  { STRING_COMMA_LEN (".sbss"),  -1, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_IA_64_SHORT },
+  { STRING_COMMA_LEN (".sbss"),	 -1, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_IA_64_SHORT },
   { STRING_COMMA_LEN (".sdata"), -1, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_IA_64_SHORT },
-  { NULL,                    0,   0, 0,            0 }
+  { NULL,		     0,	  0, 0,		   0 }
 };
 
 static bfd_boolean
@@ -4487,7 +4486,7 @@ elf64_vms_section_from_shdr (bfd *abfd,
       asection *newsect = hdr->bfd_section;
 
       if (! bfd_set_section_flags
-          (abfd, newsect, bfd_get_section_flags (abfd, newsect) | secflags))
+	  (abfd, newsect, bfd_get_section_flags (abfd, newsect) | secflags))
 	return FALSE;
     }
 
@@ -4664,7 +4663,7 @@ elf64_vms_final_write_processing (bfd *a
 	{
 	case SHT_IA_64_UNWIND:
 	  /* VMS requires sh_info to point to the unwind info section.  */
-          hdr->sh_info = unwind_info_sect_idx;
+	  hdr->sh_info = unwind_info_sect_idx;
 	  break;
 	}
     }
@@ -4712,7 +4711,7 @@ elf64_vms_close_and_cleanup (bfd *abfd)
       if ((isize & 7) != 0)
 	{
 	  int ishort = 8 - (isize & 7);
-          bfd_uint64_t pad = 0;
+	  bfd_uint64_t pad = 0;
 
 	  bfd_seek (abfd, isize, SEEK_SET);
 	  bfd_bwrite (&pad, ishort, abfd);
@@ -4796,65 +4795,65 @@ elf64_vms_link_add_object_symbols (bfd *
 
       /* Be sure there are dynamic sections.  */
       if (! elf64_ia64_create_dynamic_sections (htab->dynobj, info))
-        goto error_return;
+	goto error_return;
 
       s = bfd_get_section_by_name (abfd, ".dynamic");
       if (s == NULL)
-        {
-          /* VMS libraries do not have dynamic sections.  Create one from
-             the segment.  */
-          Elf_Internal_Phdr *phdr;
-          unsigned int i, phnum;
-
-          phdr = elf_tdata (abfd)->phdr;
-          if (phdr == NULL)
-            goto error_return;
-          phnum = elf_elfheader (abfd)->e_phnum;
-          for (i = 0; i < phnum; phdr++)
-            if (phdr->p_type == PT_DYNAMIC)
-              {
-                s = bfd_make_section (abfd, ".dynamic");
-                if (s == NULL)
-                  goto error_return;
-                s->vma = phdr->p_vaddr;
-                s->lma = phdr->p_paddr;
-                s->size = phdr->p_filesz;
-                s->filepos = phdr->p_offset;
-                s->flags |= SEC_HAS_CONTENTS;
-                s->alignment_power = bfd_log2 (phdr->p_align);
-                break;
-              }
-          if (s == NULL)
-            goto error_return;
-        }
+	{
+	  /* VMS libraries do not have dynamic sections.  Create one from
+	     the segment.  */
+	  Elf_Internal_Phdr *phdr;
+	  unsigned int i, phnum;
+
+	  phdr = elf_tdata (abfd)->phdr;
+	  if (phdr == NULL)
+	    goto error_return;
+	  phnum = elf_elfheader (abfd)->e_phnum;
+	  for (i = 0; i < phnum; phdr++)
+	    if (phdr->p_type == PT_DYNAMIC)
+	      {
+		s = bfd_make_section (abfd, ".dynamic");
+		if (s == NULL)
+		  goto error_return;
+		s->vma = phdr->p_vaddr;
+		s->lma = phdr->p_paddr;
+		s->size = phdr->p_filesz;
+		s->filepos = phdr->p_offset;
+		s->flags |= SEC_HAS_CONTENTS;
+		s->alignment_power = bfd_log2 (phdr->p_align);
+		break;
+	      }
+	  if (s == NULL)
+	    goto error_return;
+	}
 
       /* Extract IDENT.  */
       if (!bfd_malloc_and_get_section (abfd, s, &dynbuf))
-        {
+	{
 error_free_dyn:
-          free (dynbuf);
-          goto error_return;
-        }
+	  free (dynbuf);
+	  goto error_return;
+	}
 
       for (extdyn = dynbuf;
-           extdyn < dynbuf + s->size;
-           extdyn += bed->s->sizeof_dyn)
-        {
-          Elf_Internal_Dyn dyn;
-
-          bed->s->swap_dyn_in (abfd, extdyn, &dyn);
-          if (dyn.d_tag == DT_IA_64_VMS_IDENT)
-            {
-              bfd_uint64_t tagv = dyn.d_un.d_val;
-              elf_ia64_vms_ident (abfd) = tagv;
-              break;
-            }
-        }
+	   extdyn < dynbuf + s->size;
+	   extdyn += bed->s->sizeof_dyn)
+	{
+	  Elf_Internal_Dyn dyn;
+
+	  bed->s->swap_dyn_in (abfd, extdyn, &dyn);
+	  if (dyn.d_tag == DT_IA_64_VMS_IDENT)
+	    {
+	      bfd_uint64_t tagv = dyn.d_un.d_val;
+	      elf_ia64_vms_ident (abfd) = tagv;
+	      break;
+	    }
+	}
       if (extdyn >= dynbuf + s->size)
-        {
-          /* Ident not found.  */
-          goto error_free_dyn;
-        }
+	{
+	  /* Ident not found.  */
+	  goto error_free_dyn;
+	}
       free (dynbuf);
 
       /* We do not want to include any of the sections in a dynamic
@@ -4867,7 +4866,7 @@ error_free_dyn:
       bfd_section_list_clear (abfd);
 
       /* FIXME: should we detect if this library is already included ?
-         This should be harmless and shouldn't happen in practice.  */
+	 This should be harmless and shouldn't happen in practice.  */
     }
 
   hdr = &elf_tdata (abfd)->symtab_hdr;
@@ -5011,12 +5010,12 @@ error_free_dyn:
       new_sec = sec;
 
       if (! bfd_is_und_section (sec))
-        h = elf_link_hash_lookup (htab, name, TRUE, FALSE, FALSE);
+	h = elf_link_hash_lookup (htab, name, TRUE, FALSE, FALSE);
       else
-        h = ((struct elf_link_hash_entry *) bfd_wrapped_link_hash_lookup
-             (abfd, info, name, TRUE, FALSE, FALSE));
+	h = ((struct elf_link_hash_entry *) bfd_wrapped_link_hash_lookup
+	     (abfd, info, name, TRUE, FALSE, FALSE));
       if (h == NULL)
-        goto error_free_sym;
+	goto error_free_sym;
 
       *sym_hash = h;
 
@@ -5038,9 +5037,9 @@ error_free_dyn:
 	      break;
 
 	    case bfd_link_hash_defined:
-              if (abfd->selective_search)
-                continue;
-              /* Fall-through.  */
+	      if (abfd->selective_search)
+		continue;
+	      /* Fall-through.  */
 	    case bfd_link_hash_defweak:
 	      old_bfd = h->root.u.def.section->owner;
 	      break;
@@ -5159,9 +5158,8 @@ error_free_dyn:
 		_bfd_error_handler
 		  /* xgettext:c-format */
 		  (_("Warning: size of symbol `%s' changed"
-		     " from %lu in %B to %lu in %B"),
-		   name, (unsigned long) h->size, old_bfd,
-		   (unsigned long) isym->st_size, abfd);
+		     " from %Lu in %B to %Lu in %B"),
+		   name, h->size, old_bfd, isym->st_size, abfd);
 
 	      h->size = isym->st_size;
 	    }
@@ -5208,16 +5206,16 @@ error_free_dyn:
 		}
 	      else
 		{
-                  BFD_ASSERT (!h->def_dynamic);
+		  BFD_ASSERT (!h->def_dynamic);
 		  h->def_regular = 1;
 		}
 	    }
 	  else
 	    {
 	      BFD_ASSERT (definition);
-              h->def_dynamic = 1;
-              h->dynindx = -2;
-              ((struct elf64_ia64_link_hash_entry *)h)->shl = abfd;
+	      h->def_dynamic = 1;
+	      h->dynindx = -2;
+	      ((struct elf64_ia64_link_hash_entry *)h)->shl = abfd;
 	    }
 	}
     }
@@ -5330,10 +5328,10 @@ elf64_vms_link_add_archive_symbols (bfd 
 	     entry if it is the tail, because that would lose any
 	     entries we add to the list later on.  */
 	  if (*pundef != info->hash->undefs_tail)
-            {
-              *pundef = *next_pundef;
-              next_pundef = pundef;
-            }
+	    {
+	      *pundef = *next_pundef;
+	      next_pundef = pundef;
+	    }
 	  continue;
 	}
 
@@ -5350,32 +5348,32 @@ elf64_vms_link_add_archive_symbols (bfd 
 	return FALSE;
 
       if (element->archive_pass == -1 || element->archive_pass == pass)
-        {
-          /* Next symbol if this archive is wrong or already handled.  */
-          continue;
-        }
+	{
+	  /* Next symbol if this archive is wrong or already handled.  */
+	  continue;
+	}
 
       orig_element = element;
       if (bfd_is_thin_archive (abfd))
-        {
-          element = _bfd_vms_lib_get_imagelib_file (element);
-          if (element == NULL || !bfd_check_format (element, bfd_object))
-            {
-              orig_element->archive_pass = -1;
-              return FALSE;
-            }
-        }
+	{
+	  element = _bfd_vms_lib_get_imagelib_file (element);
+	  if (element == NULL || !bfd_check_format (element, bfd_object))
+	    {
+	      orig_element->archive_pass = -1;
+	      return FALSE;
+	    }
+	}
       else if (! bfd_check_format (element, bfd_object))
-        {
-          element->archive_pass = -1;
-          return FALSE;
-        }
+	{
+	  element->archive_pass = -1;
+	  return FALSE;
+	}
 
       /* Unlike the generic linker, we know that this element provides
 	 a definition for an undefined symbol and we know that we want
 	 to include it.  We don't need to check anything.  */
       if (! (*info->callbacks->add_archive_element) (info, element,
-                                                     h->root.string, &element))
+						     h->root.string, &element))
 	continue;
       if (! elf64_vms_link_add_object_symbols (element, info))
 	return FALSE;
@@ -5605,10 +5603,10 @@ static const struct elf_size_info elf64_
 
 /* VMS link methods.  */
 #undef  bfd_elf64_bfd_link_add_symbols
-#define bfd_elf64_bfd_link_add_symbols 	elf64_vms_bfd_link_add_symbols
+#define bfd_elf64_bfd_link_add_symbols	elf64_vms_bfd_link_add_symbols
 
 #undef  elf_backend_want_got_sym
-#define elf_backend_want_got_sym 	0
+#define elf_backend_want_got_sym	0
 
 #undef  bfd_elf64_mkobject
 #define bfd_elf64_mkobject		elf64_ia64_vms_mkobject
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-mips.c ./bfd/elf64-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-mips.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-mips.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* MIPS-specific support for 64-bit ELF
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Ian Lance Taylor, Cygnus Support
    Linker support added by Mark Mitchell, CodeSourcery, LLC.
    <mark@codesourcery.com>
@@ -86,14 +86,8 @@ static void mips_elf64_info_to_howto_rel
   (bfd *, arelent *, Elf_Internal_Rela *);
 static void mips_elf64_info_to_howto_rela
   (bfd *, arelent *, Elf_Internal_Rela *);
-static long mips_elf64_get_reloc_upper_bound
-  (bfd *, asection *);
-static long mips_elf64_canonicalize_reloc
-  (bfd *, asection *, arelent **, asymbol **);
 static long mips_elf64_get_dynamic_reloc_upper_bound
   (bfd *);
-static long mips_elf64_canonicalize_dynamic_reloc
-  (bfd *, arelent **, asymbol **);
 static bfd_boolean mips_elf64_slurp_one_reloc_table
   (bfd *, asection *, Elf_Internal_Shdr *, bfd_size_type, arelent *,
    asymbol **, bfd_boolean);
@@ -1692,7 +1686,7 @@ static reloc_howto_type mips16_elf64_how
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 			/* This needs complex overflow
+				/* This needs complex overflow
 				   detection, because the upper four
 				   bits must match the PC.  */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
@@ -1714,7 +1708,7 @@ static reloc_howto_type mips16_elf64_how
 	 "R_MIPS16_GPREL",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0x0000ffff,		/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* A MIPS16 reference to the global offset table.  */
@@ -1729,7 +1723,7 @@ static reloc_howto_type mips16_elf64_how
 	 "R_MIPS16_GOT16",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0x0000ffff,		/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* A MIPS16 call through the global offset table.  */
@@ -1744,7 +1738,7 @@ static reloc_howto_type mips16_elf64_how
 	 "R_MIPS16_CALL16",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0x0000ffff,		/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* MIPS16 high 16 bits of symbol value.  */
@@ -1908,7 +1902,7 @@ static reloc_howto_type mips16_elf64_how
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 			/* This needs complex overflow
+				/* This needs complex overflow
 				   detection, because the upper four
 				   bits must match the PC.  */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
@@ -1930,7 +1924,7 @@ static reloc_howto_type mips16_elf64_how
 	 "R_MIPS16_GPREL",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* A MIPS16 reference to the global offset table.  */
@@ -1945,7 +1939,7 @@ static reloc_howto_type mips16_elf64_how
 	 "R_MIPS16_GOT16",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* A MIPS16 call through the global offset table.  */
@@ -1960,7 +1954,7 @@ static reloc_howto_type mips16_elf64_how
 	 "R_MIPS16_CALL16",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* MIPS16 high 16 bits of symbol value.  */
@@ -2128,7 +2122,7 @@ static reloc_howto_type micromips_elf64_
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 			/* This needs complex overflow
+				/* This needs complex overflow
 				   detection, because the upper four
 				   bits must match the PC.  */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
@@ -2447,7 +2441,7 @@ static reloc_howto_type micromips_elf64_
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 			/* This needs complex overflow
+				/* This needs complex overflow
 				   detection, because the upper four
 				   bits must match the PC.  */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
@@ -2868,8 +2862,8 @@ static reloc_howto_type elf_mips_copy_ho
 	 _bfd_mips_elf_generic_reloc, /* special_function */
 	 "R_MIPS_COPY",		/* name */
 	 FALSE,			/* partial_inplace */
-	 0x0,         		/* src_mask */
-	 0x0,		        /* dst_mask */
+	 0x0,			/* src_mask */
+	 0x0,			/* dst_mask */
 	 FALSE);		/* pcrel_offset */
 
 /* Originally a VxWorks extension, but now used for other systems too.  */
@@ -2884,8 +2878,8 @@ static reloc_howto_type elf_mips_jump_sl
 	 _bfd_mips_elf_generic_reloc, /* special_function */
 	 "R_MIPS_JUMP_SLOT",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0x0,         		/* src_mask */
-	 0x0,		        /* dst_mask */
+	 0x0,			/* src_mask */
+	 0x0,			/* dst_mask */
 	 FALSE);		/* pcrel_offset */
 
 /* Used in EH tables.  */
@@ -2901,7 +2895,7 @@ static reloc_howto_type elf_mips_eh_howt
 	 "R_MIPS_EH",		/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
-	 0xffffffff,	        /* dst_mask */
+	 0xffffffff,		/* dst_mask */
 	 FALSE);		/* pcrel_offset */
 
 
@@ -3652,87 +3646,19 @@ mips_elf64_info_to_howto_rela (bfd *abfd
    to three relocs, we must tell the user to allocate more space.  */
 
 static long
-mips_elf64_get_reloc_upper_bound (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
-{
-  return (sec->reloc_count * 3 + 1) * sizeof (arelent *);
-}
-
-static long
 mips_elf64_get_dynamic_reloc_upper_bound (bfd *abfd)
 {
   return _bfd_elf_get_dynamic_reloc_upper_bound (abfd) * 3;
 }
 
-/* We must also copy more relocations than the corresponding functions
-   in elf.c would, so the two following functions are slightly
-   modified from elf.c, that multiply the external relocation count by
-   3 to obtain the internal relocation count.  */
-
-static long
-mips_elf64_canonicalize_reloc (bfd *abfd, sec_ptr section,
-			       arelent **relptr, asymbol **symbols)
-{
-  arelent *tblptr;
-  unsigned int i;
-  const struct elf_backend_data *bed = get_elf_backend_data (abfd);
-
-  if (! bed->s->slurp_reloc_table (abfd, section, symbols, FALSE))
-    return -1;
-
-  tblptr = section->relocation;
-  for (i = 0; i < section->reloc_count * 3; i++)
-    *relptr++ = tblptr++;
-
-  *relptr = NULL;
-
-  return section->reloc_count * 3;
-}
-
-static long
-mips_elf64_canonicalize_dynamic_reloc (bfd *abfd, arelent **storage,
-				       asymbol **syms)
-{
-  bfd_boolean (*slurp_relocs) (bfd *, asection *, asymbol **, bfd_boolean);
-  asection *s;
-  long ret;
-
-  if (elf_dynsymtab (abfd) == 0)
-    {
-      bfd_set_error (bfd_error_invalid_operation);
-      return -1;
-    }
-
-  slurp_relocs = get_elf_backend_data (abfd)->s->slurp_reloc_table;
-  ret = 0;
-  for (s = abfd->sections; s != NULL; s = s->next)
-    {
-      if (elf_section_data (s)->this_hdr.sh_link == elf_dynsymtab (abfd)
-	  && (elf_section_data (s)->this_hdr.sh_type == SHT_REL
-	      || elf_section_data (s)->this_hdr.sh_type == SHT_RELA))
-	{
-	  arelent *p;
-	  long count, i;
-
-	  if (! (*slurp_relocs) (abfd, s, syms, TRUE))
-	    return -1;
-	  count = s->size / elf_section_data (s)->this_hdr.sh_entsize * 3;
-	  p = s->relocation;
-	  for (i = 0; i < count; i++)
-	    *storage++ = p++;
-	  ret += count;
-	}
-    }
-
-  *storage = NULL;
-
-  return ret;
-}
-
 /* Read the relocations from one reloc section.  This is mostly copied
    from elfcode.h, except for the changes to expand one external
-   relocation to 3 internal ones.  We must unfortunately set
-   reloc_count to the number of external relocations, because a lot of
-   generic code seems to depend on this.  */
+   relocation to 3 internal ones.  To reduce processing effort we
+   could discard those R_MIPS_NONE relocations that occupy the second
+   and the third entry of a triplet, as `mips_elf64_write_rel' and
+   `mips_elf64_write_rela' recreate them in output automagically,
+   however that would also remove them from `objdump -r' output,
+   breaking a long-established tradition and likely confusing people.  */
 
 static bfd_boolean
 mips_elf64_slurp_one_reloc_table (bfd *abfd, asection *asect,
@@ -3885,8 +3811,6 @@ mips_elf64_slurp_one_reloc_table (bfd *a
 	}
     }
 
-  asect->reloc_count += (relent - relents) / 3;
-
   if (allocated != NULL)
     free (allocated);
 
@@ -3901,8 +3825,7 @@ mips_elf64_slurp_one_reloc_table (bfd *a
 /* Read the relocations.  On Irix 6, there can be two reloc sections
    associated with a single data section.  This is copied from
    elfcode.h as well, with changes as small as accounting for 3
-   internal relocs per external reloc and resetting reloc_count to
-   zero before processing the relocs of a section.  */
+   internal relocs per external reloc.  */
 
 static bfd_boolean
 mips_elf64_slurp_reloc_table (bfd *abfd, asection *asect,
@@ -3930,7 +3853,7 @@ mips_elf64_slurp_reloc_table (bfd *abfd,
       rel_hdr2 = d->rela.hdr;
       reloc_count2 = (rel_hdr2 ? NUM_SHDR_ENTRIES (rel_hdr2) : 0);
 
-      BFD_ASSERT (asect->reloc_count == reloc_count + reloc_count2);
+      BFD_ASSERT (asect->reloc_count == 3 * (reloc_count + reloc_count2));
       BFD_ASSERT ((rel_hdr && asect->rel_filepos == rel_hdr->sh_offset)
 		  || (rel_hdr2 && asect->rel_filepos == rel_hdr2->sh_offset));
 
@@ -3956,9 +3879,6 @@ mips_elf64_slurp_reloc_table (bfd *abfd,
   if (relents == NULL)
     return FALSE;
 
-  /* The slurp_one_reloc_table routine increments reloc_count.  */
-  asect->reloc_count = 0;
-
   if (rel_hdr != NULL
       && ! mips_elf64_slurp_one_reloc_table (abfd, asect,
 					     rel_hdr, reloc_count,
@@ -4308,6 +4228,8 @@ elf64_mips_grok_psinfo (bfd *abfd, Elf_I
 	return FALSE;
 
       case 136:		/* Linux/MIPS - N64 kernel elf_prpsinfo */
+	elf_tdata (abfd)->core->pid
+	 = bfd_get_32 (abfd, note->descdata + 24);
 	elf_tdata (abfd)->core->program
 	 = _bfd_elfcore_strndup (abfd, note->descdata + 40, 16);
 	elf_tdata (abfd)->core->command
@@ -4328,6 +4250,45 @@ elf64_mips_grok_psinfo (bfd *abfd, Elf_I
 
   return TRUE;
 }
+
+/* Write Linux core PRSTATUS note into core file.  */
+
+static char *
+elf64_mips_write_core_note (bfd *abfd, char *buf, int *bufsiz, int note_type,
+			     ...)
+{
+  switch (note_type)
+    {
+    default:
+      return NULL;
+
+    case NT_PRPSINFO:
+      BFD_FAIL ();
+      return NULL;
+
+    case NT_PRSTATUS:
+      {
+	char data[480];
+	va_list ap;
+	long pid;
+	int cursig;
+	const void *greg;
+
+	va_start (ap, note_type);
+	memset (data, 0, 112);
+	pid = va_arg (ap, long);
+	bfd_put_32 (abfd, pid, data + 32);
+	cursig = va_arg (ap, int);
+	bfd_put_16 (abfd, cursig, data + 12);
+	greg = va_arg (ap, const void *);
+	memcpy (data + 112, greg, 360);
+	memset (data + 472, 0, 8);
+	va_end (ap);
+	return elfcore_write_note (abfd, buf, bufsiz,
+				   "CORE", note_type, data, sizeof (data));
+      }
+    }
+}
 
 /* ECOFF swapping routines.  These are used when dealing with the
    .mdebug section, which is in the ECOFF debugging format.  */
@@ -4453,7 +4414,6 @@ const struct elf_size_info mips_elf64_si
 				_bfd_mips_elf_additional_program_headers
 #define elf_backend_modify_segment_map	_bfd_mips_elf_modify_segment_map
 #define elf_backend_gc_mark_hook	_bfd_mips_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook	_bfd_mips_elf_gc_sweep_hook
 #define elf_backend_copy_indirect_symbol \
 					_bfd_mips_elf_copy_indirect_symbol
 #define elf_backend_ignore_discarded_relocs \
@@ -4503,10 +4463,7 @@ const struct elf_size_info mips_elf64_si
 #define bfd_elf64_bfd_print_private_bfd_data \
 				_bfd_mips_elf_print_private_bfd_data
 
-#define bfd_elf64_get_reloc_upper_bound mips_elf64_get_reloc_upper_bound
-#define bfd_elf64_canonicalize_reloc mips_elf64_canonicalize_reloc
 #define bfd_elf64_get_dynamic_reloc_upper_bound mips_elf64_get_dynamic_reloc_upper_bound
-#define bfd_elf64_canonicalize_dynamic_reloc mips_elf64_canonicalize_dynamic_reloc
 #define bfd_elf64_mkobject		_bfd_mips_elf_mkobject
 
 /* The SGI style (n)64 NewABI.  */
@@ -4538,6 +4495,9 @@ const struct elf_size_info mips_elf64_si
 #define ELF_COMMONPAGESIZE		0x1000
 #define elf64_bed			elf64_tradbed
 
+#undef elf_backend_write_core_note
+#define elf_backend_write_core_note	elf64_mips_write_core_note
+
 /* Include the target file again for this target.  */
 #include "elf64-target.h"
 
@@ -4560,4 +4520,6 @@ const struct elf_size_info mips_elf64_si
 #undef	elf64_bed
 #define elf64_bed				elf64_fbsd_tradbed
 
+#undef elf64_mips_write_core_note
+
 #include "elf64-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-mmix.c ./bfd/elf64-mmix.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-mmix.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-mmix.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* MMIX-specific support for 64-bit ELF.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    Contributed by Hans-Peter Nilsson <hp@bitrange.com>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -460,7 +460,7 @@ static reloc_howto_type elf_mmix_howto_t
 	 FALSE,			/* partial_inplace */
 	 ~0x0100ffff,		/* src_mask */
 	 0x0100ffff,		/* dst_mask */
-	 TRUE),		       	/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   HOWTO (R_MMIX_CBRANCH_J,	/* type */
 	 2,			/* rightshift */
@@ -1193,12 +1193,10 @@ mmix_elf_perform_relocation (asection *i
 	    _bfd_error_handler
 	      /* xgettext:c-format */
 	      (_("%B: Internal inconsistency error for value for\n\
- linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx\n"),
+ linker-allocated global register: linked: %#Lx != relaxed: %#Lx"),
 	       isec->owner,
-	       (unsigned long) (value >> 32), (unsigned long) value,
-	       (unsigned long) (gregdata->reloc_request[bpo_index].value
-				>> 32),
-	       (unsigned long) gregdata->reloc_request[bpo_index].value);
+	       value,
+	       gregdata->reloc_request[bpo_index].value);
 	    bfd_set_error (bfd_error_bad_value);
 	    return bfd_reloc_overflow;
 	  }
@@ -1740,9 +1738,9 @@ mmix_final_link_relocate (reloc_howto_ty
 	    /* FIXME: Better error message.  */
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("%B: LOCAL directive: Register $%ld is not a local register."
-		 "  First global register is $%ld."),
-	       input_section->owner, (long) srel, (long) first_global);
+	      (_("%B: LOCAL directive: Register $%Ld is not a local register."
+		 "  First global register is $%Ld."),
+	       input_section->owner, srel, first_global);
 
 	    return bfd_reloc_overflow;
 	  }
@@ -1779,33 +1777,6 @@ mmix_elf_gc_mark_hook (asection *sec,
 
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
-
-/* Update relocation info for a GC-excluded section.  We could supposedly
-   perform the allocation after GC, but there's no suitable hook between
-   GC (or section merge) and the point when all input sections must be
-   present.  Better to waste some memory and (perhaps) a little time.  */
-
-static bfd_boolean
-mmix_elf_gc_sweep_hook (bfd *abfd ATTRIBUTE_UNUSED,
-			struct bfd_link_info *info ATTRIBUTE_UNUSED,
-			asection *sec,
-			const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED)
-{
-  struct bpo_reloc_section_info *bpodata
-    = mmix_elf_section_data (sec)->bpo.reloc;
-  asection *allocated_gregs_section;
-
-  /* If no bpodata here, we have nothing to do.  */
-  if (bpodata == NULL)
-    return TRUE;
-
-  allocated_gregs_section = bpodata->bpo_greg_section;
-
-  mmix_elf_section_data (allocated_gregs_section)->bpo.greg->n_bpo_relocs
-    -= bpodata->n_bpo_relocs_this_section;
-
-  return TRUE;
-}
 
 /* Sort register relocs to come before expanding relocs.  */
 
@@ -1865,7 +1836,7 @@ mmix_elf_check_common_relocs  (bfd *abfd
   for (rel = relocs; rel < rel_end; rel++)
     {
       switch (ELF64_R_TYPE (rel->r_info))
-        {
+	{
 	  /* This relocation causes a GREG allocation.  We need to count
 	     them, and we need to create a section for them, so we need an
 	     object to fake as the owner of that section.  We can't use
@@ -2008,36 +1979,32 @@ mmix_elf_check_relocs (bfd *abfd,
 
       r_symndx = ELF64_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (ELF64_R_TYPE (rel->r_info))
 	{
-        /* This relocation describes the C++ object vtable hierarchy.
-           Reconstruct it for later use during GC.  */
-        case R_MMIX_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
-
-        /* This relocation describes which C++ vtable entries are actually
-           used.  Record for later use during GC.  */
-        case R_MMIX_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
+	/* This relocation describes the C++ object vtable hierarchy.
+	   Reconstruct it for later use during GC.  */
+	case R_MMIX_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
+
+	/* This relocation describes which C++ vtable entries are actually
+	   used.  Record for later use during GC.  */
+	case R_MMIX_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
 	}
     }
 
@@ -2444,10 +2411,10 @@ _bfd_mmix_after_linker_allocation (bfd *
     {
       _bfd_error_handler
 	/* xgettext:c-format */
-	(_("Internal inconsistency: remaining %u != max %u.\n\
+	(_("Internal inconsistency: remaining %lu != max %lu.\n\
   Please report this bug."),
-	 gregdata->n_remaining_bpo_relocs_this_relaxation_round,
-	 gregdata->n_bpo_relocs);
+	 (unsigned long) gregdata->n_remaining_bpo_relocs_this_relaxation_round,
+	 (unsigned long) gregdata->n_bpo_relocs);
       return FALSE;
     }
 
@@ -2588,7 +2555,7 @@ mmix_elf_relax_section (bfd *abfd,
       || (sec->flags & SEC_CODE) == 0
       || (sec->flags & SEC_LINKER_CREATED) != 0
       /* If no R_MMIX_BASE_PLUS_OFFSET relocs and no PUSHJ-stub relocs,
-         then nothing to do.  */
+	 then nothing to do.  */
       || (bpodata == NULL
 	  && mmix_elf_section_data (sec)->pjs.n_pushj_relocs == 0))
     return TRUE;
@@ -2712,8 +2679,21 @@ mmix_elf_relax_section (bfd *abfd,
 	  indx = ELF64_R_SYM (irel->r_info) - symtab_hdr->sh_info;
 	  h = elf_sym_hashes (abfd)[indx];
 	  BFD_ASSERT (h != NULL);
-	  if (h->root.type != bfd_link_hash_defined
-	      && h->root.type != bfd_link_hash_defweak)
+	  if (h->root.type == bfd_link_hash_undefweak)
+	    /* FIXME: for R_MMIX_PUSHJ_STUBBABLE, there are alternatives to
+	       the canonical value 0 for an unresolved weak symbol to
+	       consider: as the debug-friendly approach, resolve to "abort"
+	       (or a port-specific function), or as the space-friendly
+	       approach resolve to the next instruction (like some other
+	       ports, notably ARM and AArch64).  These alternatives require
+	       matching code in mmix_elf_perform_relocation or its caller.  */
+	    symval = 0;
+	  else if (h->root.type == bfd_link_hash_defined
+		   || h->root.type == bfd_link_hash_defweak)
+	    symval = (h->root.u.def.value
+		      + h->root.u.def.section->output_section->vma
+		      + h->root.u.def.section->output_offset);
+	  else
 	    {
 	      /* This appears to be a reference to an undefined symbol.  Just
 		 ignore it--it will be caught by the regular reloc processing.
@@ -2727,10 +2707,6 @@ mmix_elf_relax_section (bfd *abfd,
 		}
 	      continue;
 	    }
-
-	  symval = (h->root.u.def.value
-		    + h->root.u.def.section->output_section->vma
-		    + h->root.u.def.section->output_offset);
 	}
 
       if (ELF64_R_TYPE (irel->r_info) == (int) R_MMIX_PUSHJ_STUBBABLE)
@@ -2868,6 +2844,8 @@ mmix_elf_relax_section (bfd *abfd,
 	}
     }
 
+  BFD_ASSERT(pjsno == mmix_elf_section_data (sec)->pjs.n_pushj_relocs);
+
   if (internal_relocs != NULL
       && elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
@@ -2893,7 +2871,7 @@ mmix_elf_relax_section (bfd *abfd,
 }
 
 #define ELF_ARCH		bfd_arch_mmix
-#define ELF_MACHINE_CODE 	EM_MMIX
+#define ELF_MACHINE_CODE	EM_MMIX
 
 /* According to mmix-doc page 36 (paragraph 45), this should be (1LL << 48LL).
    However, that's too much for something somewhere in the linker part of
@@ -2916,7 +2894,6 @@ mmix_elf_relax_section (bfd *abfd,
 #define elf_info_to_howto		mmix_info_to_howto_rela
 #define elf_backend_relocate_section	mmix_elf_relocate_section
 #define elf_backend_gc_mark_hook	mmix_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook	mmix_elf_gc_sweep_hook
 
 #define elf_backend_link_output_symbol_hook \
 	mmix_elf_link_output_symbol_hook
@@ -2927,6 +2904,9 @@ mmix_elf_relax_section (bfd *abfd,
 #define elf_backend_omit_section_dynsym \
   ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
 
+#define bfd_elf64_bfd_copy_link_hash_symbol_type \
+  _bfd_generic_copy_link_hash_symbol_type
+
 #define bfd_elf64_bfd_is_local_label_name \
 	mmix_elf_is_local_label_name
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-ppc.c ./bfd/elf64-ppc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-ppc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-ppc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* PowerPC64-specific support for 64-bit ELF.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Written by Linus Nordberg, Swox AB <info@swox.com>,
    based on elf32-ppc.c by Ian Lance Taylor.
    Largely rewritten by Alan Modra.
@@ -101,10 +101,10 @@ static bfd_vma opd_entry_value
 #define elf_backend_notice_as_needed	      ppc64_elf_notice_as_needed
 #define elf_backend_archive_symbol_lookup     ppc64_elf_archive_symbol_lookup
 #define elf_backend_check_relocs	      ppc64_elf_check_relocs
+#define elf_backend_relocs_compatible	      _bfd_elf_relocs_compatible
 #define elf_backend_gc_keep		      ppc64_elf_gc_keep
 #define elf_backend_gc_mark_dynamic_ref       ppc64_elf_gc_mark_dynamic_ref
 #define elf_backend_gc_mark_hook	      ppc64_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook	      ppc64_elf_gc_sweep_hook
 #define elf_backend_adjust_dynamic_symbol     ppc64_elf_adjust_dynamic_symbol
 #define elf_backend_hide_symbol		      ppc64_elf_hide_symbol
 #define elf_backend_maybe_function_sym	      ppc64_elf_maybe_function_sym
@@ -121,6 +121,7 @@ static bfd_vma opd_entry_value
 #define elf_backend_special_sections	      ppc64_elf_special_sections
 #define elf_backend_merge_symbol_attribute    ppc64_elf_merge_symbol_attribute
 #define elf_backend_merge_symbol	      ppc64_elf_merge_symbol
+#define elf_backend_get_reloc_section	      bfd_get_section_by_name
 
 /* The name of the dynamic interpreter.  This is put in the .interp
    section.  */
@@ -160,31 +161,31 @@ static bfd_vma opd_entry_value
 #define LD_R11_0R11	0xe96b0000	/* ld	 %r11,xxx+16@l(%r11) */
 #define BCTR		0x4e800420	/* bctr			     */
 
-#define ADDI_R11_R11	0x396b0000	/* addi %r11,%r11,off@l  */
-#define ADDIS_R2_R2	0x3c420000	/* addis %r2,%r2,off@ha  */
-#define ADDI_R2_R2	0x38420000	/* addi  %r2,%r2,off@l   */
-
-#define XOR_R2_R12_R12	0x7d826278	/* xor   %r2,%r12,%r12   */
-#define ADD_R11_R11_R2	0x7d6b1214	/* add   %r11,%r11,%r2   */
-#define XOR_R11_R12_R12	0x7d8b6278	/* xor   %r11,%r12,%r12  */
-#define ADD_R2_R2_R11	0x7c425a14	/* add   %r2,%r2,%r11    */
-#define CMPLDI_R2_0	0x28220000	/* cmpldi %r2,0          */
-#define BNECTR		0x4ca20420	/* bnectr+               */
-#define BNECTR_P4	0x4ce20420	/* bnectr+               */
+#define ADDI_R11_R11	0x396b0000	/* addi %r11,%r11,off@l	 */
+#define ADDIS_R2_R2	0x3c420000	/* addis %r2,%r2,off@ha	 */
+#define ADDI_R2_R2	0x38420000	/* addi	 %r2,%r2,off@l	 */
+
+#define XOR_R2_R12_R12	0x7d826278	/* xor	 %r2,%r12,%r12	 */
+#define ADD_R11_R11_R2	0x7d6b1214	/* add	 %r11,%r11,%r2	 */
+#define XOR_R11_R12_R12	0x7d8b6278	/* xor	 %r11,%r12,%r12	 */
+#define ADD_R2_R2_R11	0x7c425a14	/* add	 %r2,%r2,%r11	 */
+#define CMPLDI_R2_0	0x28220000	/* cmpldi %r2,0		 */
+#define BNECTR		0x4ca20420	/* bnectr+		 */
+#define BNECTR_P4	0x4ce20420	/* bnectr+		 */
 
 #define LD_R12_0R2	0xe9820000	/* ld	 %r12,xxx+0(%r2) */
 #define LD_R11_0R2	0xe9620000	/* ld	 %r11,xxx+0(%r2) */
-#define LD_R2_0R2	0xe8420000	/* ld	 %r2,xxx+0(%r2)  */
+#define LD_R2_0R2	0xe8420000	/* ld	 %r2,xxx+0(%r2)	 */
 
-#define LD_R2_0R1	0xe8410000	/* ld    %r2,0(%r1)      */
-#define LD_R2_0R12	0xe84c0000	/* ld    %r2,0(%r12)     */
-#define ADD_R2_R2_R12	0x7c426214	/* add   %r2,%r2,%r12    */
+#define LD_R2_0R1	0xe8410000	/* ld	 %r2,0(%r1)	 */
+#define LD_R2_0R12	0xe84c0000	/* ld	 %r2,0(%r12)	 */
+#define ADD_R2_R2_R12	0x7c426214	/* add	 %r2,%r2,%r12	 */
 
-#define LIS_R2		0x3c400000	/* lis %r2,xxx@ha         */
+#define LIS_R2		0x3c400000	/* lis %r2,xxx@ha	  */
 #define ADDIS_R2_R12	0x3c4c0000	/* addis %r2,%r12,xxx@ha  */
 #define ADDIS_R12_R2	0x3d820000	/* addis %r12,%r2,xxx@ha  */
 #define ADDIS_R12_R12	0x3d8c0000	/* addis %r12,%r12,xxx@ha */
-#define LD_R12_0R12	0xe98c0000	/* ld    %r12,xxx@l(%r12) */
+#define LD_R12_0R12	0xe98c0000	/* ld	 %r12,xxx@l(%r12) */
 
 /* glink call stub instructions.  We enter with the index in R0.  */
 #define GLINK_CALL_STUB_SIZE (16*4)
@@ -3024,13 +3025,13 @@ ppc64_elf_write_core_note (bfd *abfd, ch
 
 static const struct bfd_elf_special_section ppc64_elf_special_sections[]=
 {
-  { STRING_COMMA_LEN (".plt"),    0, SHT_NOBITS,   0 },
-  { STRING_COMMA_LEN (".sbss"),  -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".plt"),	  0, SHT_NOBITS,   0 },
+  { STRING_COMMA_LEN (".sbss"),	 -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
   { STRING_COMMA_LEN (".sdata"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { STRING_COMMA_LEN (".toc"),    0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { STRING_COMMA_LEN (".toc1"),   0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".toc"),	  0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".toc1"),	  0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
   { STRING_COMMA_LEN (".tocbss"), 0, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
-  { NULL,                     0,  0, 0,            0 }
+  { NULL,		      0,  0, 0,		   0 }
 };
 
 enum _ppc64_sec_type {
@@ -3269,77 +3270,86 @@ ppc64_elf_get_synthetic_symtab (bfd *abf
 	return 0;
     }
 
-  symcount = static_count;
-  if (!relocatable)
-    symcount += dyn_count;
-  if (symcount == 0)
-    return 0;
+  syms = NULL;
+  codesecsym = 0;
+  codesecsymend = 0;
+  secsymend = 0;
+  opdsymend = 0;
+  symcount = 0;
+  if (opd != NULL)
+    {
+      symcount = static_count;
+      if (!relocatable)
+	symcount += dyn_count;
+      if (symcount == 0)
+	return 0;
 
-  syms = bfd_malloc ((symcount + 1) * sizeof (*syms));
-  if (syms == NULL)
-    return -1;
+      syms = bfd_malloc ((symcount + 1) * sizeof (*syms));
+      if (syms == NULL)
+	return -1;
 
-  if (!relocatable && static_count != 0 && dyn_count != 0)
-    {
-      /* Use both symbol tables.  */
-      memcpy (syms, static_syms, static_count * sizeof (*syms));
-      memcpy (syms + static_count, dyn_syms, (dyn_count + 1) * sizeof (*syms));
-    }
-  else if (!relocatable && static_count == 0)
-    memcpy (syms, dyn_syms, (symcount + 1) * sizeof (*syms));
-  else
-    memcpy (syms, static_syms, (symcount + 1) * sizeof (*syms));
+      if (!relocatable && static_count != 0 && dyn_count != 0)
+	{
+	  /* Use both symbol tables.  */
+	  memcpy (syms, static_syms, static_count * sizeof (*syms));
+	  memcpy (syms + static_count, dyn_syms,
+		  (dyn_count + 1) * sizeof (*syms));
+	}
+      else if (!relocatable && static_count == 0)
+	memcpy (syms, dyn_syms, (symcount + 1) * sizeof (*syms));
+      else
+	memcpy (syms, static_syms, (symcount + 1) * sizeof (*syms));
 
-  synthetic_relocatable = relocatable;
-  synthetic_opd = opd;
-  qsort (syms, symcount, sizeof (*syms), compare_symbols);
-
-  if (!relocatable && symcount > 1)
-    {
-      long j;
-      /* Trim duplicate syms, since we may have merged the normal and
-	 dynamic symbols.  Actually, we only care about syms that have
-	 different values, so trim any with the same value.  */
-      for (i = 1, j = 1; i < symcount; ++i)
-	if (syms[i - 1]->value + syms[i - 1]->section->vma
-	    != syms[i]->value + syms[i]->section->vma)
-	  syms[j++] = syms[i];
-      symcount = j;
-    }
-
-  i = 0;
-  /* Note that here and in compare_symbols we can't compare opd and
-     sym->section directly.  With separate debug info files, the
-     symbols will be extracted from the debug file while abfd passed
-     to this function is the real binary.  */
-  if (opd != NULL && strcmp (syms[i]->section->name, ".opd") == 0)
-    ++i;
-  codesecsym = i;
+      synthetic_relocatable = relocatable;
+      synthetic_opd = opd;
+      qsort (syms, symcount, sizeof (*syms), compare_symbols);
 
-  for (; i < symcount; ++i)
-    if (((syms[i]->section->flags & (SEC_CODE | SEC_ALLOC | SEC_THREAD_LOCAL))
-	 != (SEC_CODE | SEC_ALLOC))
-	|| (syms[i]->flags & BSF_SECTION_SYM) == 0)
-      break;
-  codesecsymend = i;
+      if (!relocatable && symcount > 1)
+	{
+	  long j;
+	  /* Trim duplicate syms, since we may have merged the normal and
+	     dynamic symbols.  Actually, we only care about syms that have
+	     different values, so trim any with the same value.  */
+	  for (i = 1, j = 1; i < symcount; ++i)
+	    if (syms[i - 1]->value + syms[i - 1]->section->vma
+		!= syms[i]->value + syms[i]->section->vma)
+	      syms[j++] = syms[i];
+	  symcount = j;
+	}
 
-  for (; i < symcount; ++i)
-    if ((syms[i]->flags & BSF_SECTION_SYM) == 0)
-      break;
-  secsymend = i;
+      i = 0;
+      /* Note that here and in compare_symbols we can't compare opd and
+	 sym->section directly.  With separate debug info files, the
+	 symbols will be extracted from the debug file while abfd passed
+	 to this function is the real binary.  */
+      if (opd != NULL && strcmp (syms[i]->section->name, ".opd") == 0)
+	++i;
+      codesecsym = i;
 
-  if (opd != NULL)
-    for (; i < symcount; ++i)
-      if (strcmp (syms[i]->section->name, ".opd") != 0)
-	break;
-  opdsymend = i;
+      for (; i < symcount; ++i)
+	if (((syms[i]->section->flags & (SEC_CODE | SEC_ALLOC
+					 | SEC_THREAD_LOCAL))
+	     != (SEC_CODE | SEC_ALLOC))
+	    || (syms[i]->flags & BSF_SECTION_SYM) == 0)
+	  break;
+      codesecsymend = i;
 
-  for (; i < symcount; ++i)
-    if ((syms[i]->section->flags & (SEC_CODE | SEC_ALLOC | SEC_THREAD_LOCAL))
-	!= (SEC_CODE | SEC_ALLOC))
-      break;
-  symcount = i;
+      for (; i < symcount; ++i)
+	if ((syms[i]->flags & BSF_SECTION_SYM) == 0)
+	  break;
+      secsymend = i;
 
+      for (; i < symcount; ++i)
+	if (strcmp (syms[i]->section->name, ".opd") != 0)
+	  break;
+      opdsymend = i;
+
+      for (; i < symcount; ++i)
+	if ((syms[i]->section->flags & (SEC_CODE | SEC_ALLOC | SEC_THREAD_LOCAL))
+	    != (SEC_CODE | SEC_ALLOC))
+	  break;
+      symcount = i;
+    }
   count = 0;
 
   if (relocatable)
@@ -3784,9 +3794,9 @@ ppc64_elf_get_synthetic_symtab (bfd *abf
    calls may use the function descriptor symbol, ie. "bl foo".  This
    behaves exactly as "bl .foo".  */
 
-/* Of those relocs that might be copied as dynamic relocs, this function
-   selects those that must be copied when linking a shared library,
-   even when the symbol is local.  */
+/* Of those relocs that might be copied as dynamic relocs, this
+   function selects those that must be copied when linking a shared
+   library or PIE, even when the symbol is local.  */
 
 static int
 must_be_dyn_reloc (struct bfd_link_info *info,
@@ -3795,6 +3805,10 @@ must_be_dyn_reloc (struct bfd_link_info 
   switch (r_type)
     {
     default:
+      /* Only relative relocs can be resolved when the object load
+	 address isn't fixed.  DTPREL64 is excluded because the
+	 dynamic linker needs to differentiate global dynamic from
+	 local dynamic __tls_index pairs when PPC64_OPT_TLS is set.  */
       return 1;
 
     case R_PPC64_REL32:
@@ -3815,7 +3829,9 @@ must_be_dyn_reloc (struct bfd_link_info 
     case R_PPC64_TPREL16_HIGHEST:
     case R_PPC64_TPREL16_HIGHESTA:
     case R_PPC64_TPREL64:
-      return !bfd_link_executable (info);
+      /* These relocations are relative but in a shared library the
+	 linker doesn't know the thread pointer base.  */
+      return bfd_link_dll (info);
     }
 }
 
@@ -3911,6 +3927,9 @@ struct map_stub
   /* Whether to emit a copy of register save/restore functions in this
      group.  */
   int needs_save_res;
+  /* The offset of the __tls_get_addr_opt plt stub bctrl in this group,
+     or -1u if no such stub with bctrl exists.  */
+  unsigned int tls_get_addr_opt_bctrl;
 };
 
 struct ppc_stub_hash_entry {
@@ -3982,9 +4001,6 @@ struct ppc_link_hash_entry
   /* Track dynamic relocs copied for this symbol.  */
   struct elf_dyn_relocs *dyn_relocs;
 
-  /* Chain of aliases referring to a weakdef.  */
-  struct ppc_link_hash_entry *weakref;
-
   /* Link between function code and descriptor symbols.  */
   struct ppc_link_hash_entry *oh;
 
@@ -4002,6 +4018,10 @@ struct ppc_link_hash_entry
      with non-standard calling convention.  */
   unsigned int save_res:1;
 
+  /* Set if a duplicate symbol with non-zero localentry is detected,
+     even when the duplicate symbol does not provide a definition.  */
+  unsigned int non_zero_localentry:1;
+
   /* Contexts in which symbol is used in the GOT (or TOC).
      TLS_GD .. TLS_EXPLICIT bits are or'd into the mask as the
      corresponding relocs are encountered during check_relocs.
@@ -4099,6 +4119,9 @@ struct ppc_link_hash_table
   unsigned int second_toc_pass:1;
   unsigned int do_toc_opt:1;
 
+  /* Set if tls optimization is enabled.  */
+  unsigned int do_tls_opt:1;
+
   /* Set on error.  */
   unsigned int stub_error:1;
 
@@ -4110,6 +4133,9 @@ struct ppc_link_hash_table
   unsigned int local_ifunc_resolver:1;
   unsigned int maybe_local_ifunc_resolver:1;
 
+  /* Whether plt calls for ELFv2 localentry:0 funcs have been optimized.  */
+  unsigned int has_plt_localentry0:1;
+
   /* Incremented every time we size stubs.  */
   unsigned int stub_iteration;
 
@@ -4735,18 +4761,11 @@ ppc64_elf_copy_indirect_symbol (struct b
   if (eind->oh != NULL)
     edir->oh = ppc_follow_link (eind->oh);
 
-  /* If called to transfer flags for a weakdef during processing
-     of elf_adjust_dynamic_symbol, don't copy NON_GOT_REF.
-     We clear it ourselves for ELIMINATE_COPY_RELOCS.  */
-  if (!(ELIMINATE_COPY_RELOCS
-	&& eind->elf.root.type != bfd_link_hash_indirect
-	&& edir->elf.dynamic_adjusted))
-    edir->elf.non_got_ref |= eind->elf.non_got_ref;
-
   if (edir->elf.versioned != versioned_hidden)
     edir->elf.ref_dynamic |= eind->elf.ref_dynamic;
   edir->elf.ref_regular |= eind->elf.ref_regular;
   edir->elf.ref_regular_nonweak |= eind->elf.ref_regular_nonweak;
+  edir->elf.non_got_ref |= eind->elf.non_got_ref;
   edir->elf.needs_plt |= eind->elf.needs_plt;
   edir->elf.pointer_equality_needed |= eind->elf.pointer_equality_needed;
 
@@ -4755,39 +4774,9 @@ ppc64_elf_copy_indirect_symbol (struct b
      in order to simplify readonly_dynrelocs and save a field in the
      symbol hash entry, but that means dyn_relocs can't be used in any
      tests about a specific symbol, or affect other symbol flags which
-     are then tested.
-     Chain weakdefs so we can get from the weakdef back to an alias.
-     The list is circular so that we don't need to use u.weakdef as
-     well as this list to look at all aliases.  */
+     are then tested.  */
   if (eind->elf.root.type != bfd_link_hash_indirect)
-    {
-      struct ppc_link_hash_entry *cur, *add, *next;
-
-      add = eind;
-      do
-	{
-	  cur = edir->weakref;
-	  if (cur != NULL)
-	    {
-	      do
-		{
-		  /* We can be called twice for the same symbols.
-		     Don't make multiple loops.  */
-		  if (cur == add)
-		    return;
-		  cur = cur->weakref;
-		} while (cur != edir);
-	    }
-	  next = add->weakref;
-	  if (cur != add)
-	    {
-	      add->weakref = edir->weakref != NULL ? edir->weakref : edir;
-	      edir->weakref = add;
-	    }
-	  add = next;
-	} while (add != NULL && add != eind);
-      return;
-    }
+    return;
 
   /* Copy over any dynamic relocs we may have on the indirect sym.  */
   if (eind->dyn_relocs != NULL)
@@ -4997,7 +4986,7 @@ ppc64_elf_merge_symbol_attribute (struct
 				  bfd_boolean definition,
 				  bfd_boolean dynamic)
 {
-  if (definition && !dynamic)
+  if (definition && (!dynamic || !h->def_regular))
     h->other = ((isym->st_other & ~ELF_ST_VISIBILITY (-1))
 		| ELF_ST_VISIBILITY (h->other));
 }
@@ -5007,7 +4996,7 @@ ppc64_elf_merge_symbol_attribute (struct
 
 static bfd_boolean
 ppc64_elf_merge_symbol (struct elf_link_hash_entry *h,
-			const Elf_Internal_Sym *isym ATTRIBUTE_UNUSED,
+			const Elf_Internal_Sym *isym,
 			asection **psec ATTRIBUTE_UNUSED,
 			bfd_boolean newdef ATTRIBUTE_UNUSED,
 			bfd_boolean olddef ATTRIBUTE_UNUSED,
@@ -5015,6 +5004,8 @@ ppc64_elf_merge_symbol (struct elf_link_
 			const asection *oldsec ATTRIBUTE_UNUSED)
 {
   ((struct ppc_link_hash_entry *) h)->fake = 0;
+  if ((STO_PPC64_LOCAL_MASK & isym->st_other) != 0)
+    ((struct ppc_link_hash_entry *) h)->non_zero_localentry = 1;
   return TRUE;
 }
 
@@ -5110,7 +5101,8 @@ add_symbol_adjust (struct ppc_link_hash_
 
       /* Propagate reference flags from entry symbol to function
 	 descriptor symbol.  */
-      fdh->elf.root.non_ir_ref |= eh->elf.root.non_ir_ref;
+      fdh->elf.root.non_ir_ref_regular |= eh->elf.root.non_ir_ref_regular;
+      fdh->elf.root.non_ir_ref_dynamic |= eh->elf.root.non_ir_ref_dynamic;
       fdh->elf.ref_regular |= eh->elf.ref_regular;
       fdh->elf.ref_regular_nonweak |= eh->elf.ref_regular_nonweak;
 
@@ -5143,6 +5135,9 @@ ppc64_elf_before_check_relocs (bfd *ibfd
 
   if (opd != NULL && opd->size != 0)
     {
+      BFD_ASSERT (ppc64_elf_section_data (opd)->sec_type == sec_normal);
+      ppc64_elf_section_data (opd)->sec_type = sec_opd;
+
       if (abiversion (ibfd) == 0)
 	set_abiversion (ibfd, 1);
       else if (abiversion (ibfd) >= 2)
@@ -5154,48 +5149,84 @@ ppc64_elf_before_check_relocs (bfd *ibfd
 	  bfd_set_error (bfd_error_bad_value);
 	  return FALSE;
 	}
+    }
 
-      if ((ibfd->flags & DYNAMIC) == 0
-	  && (opd->flags & SEC_RELOC) != 0
-	  && opd->reloc_count != 0
-	  && !bfd_is_abs_section (opd->output_section))
-	{
-	  /* Garbage collection needs some extra help with .opd sections.
-	     We don't want to necessarily keep everything referenced by
-	     relocs in .opd, as that would keep all functions.  Instead,
-	     if we reference an .opd symbol (a function descriptor), we
-	     want to keep the function code symbol's section.  This is
-	     easy for global symbols, but for local syms we need to keep
-	     information about the associated function section.  */
-	  bfd_size_type amt;
-	  asection **opd_sym_map;
-
-	  amt = OPD_NDX (opd->size) * sizeof (*opd_sym_map);
-	  opd_sym_map = bfd_zalloc (ibfd, amt);
-	  if (opd_sym_map == NULL)
-	    return FALSE;
-	  ppc64_elf_section_data (opd)->u.opd.func_sec = opd_sym_map;
-	  BFD_ASSERT (ppc64_elf_section_data (opd)->sec_type == sec_normal);
-	  ppc64_elf_section_data (opd)->sec_type = sec_opd;
-	}
+  if (is_ppc64_elf (info->output_bfd))
+    {
+      /* For input files without an explicit abiversion in e_flags
+	 we should have flagged any with symbol st_other bits set
+	 as ELFv1 and above flagged those with .opd as ELFv2.
+	 Set the output abiversion if not yet set, and for any input
+	 still ambiguous, take its abiversion from the output.
+	 Differences in ABI are reported later.  */
+      if (abiversion (info->output_bfd) == 0)
+	set_abiversion (info->output_bfd, abiversion (ibfd));
+      else if (abiversion (ibfd) == 0)
+	set_abiversion (ibfd, abiversion (info->output_bfd));
     }
 
-  if (!is_ppc64_elf (info->output_bfd))
-    return TRUE;
   htab = ppc_hash_table (info);
   if (htab == NULL)
-    return FALSE;
+    return TRUE;
+
+  if (opd != NULL && opd->size != 0
+      && (ibfd->flags & DYNAMIC) == 0
+      && (opd->flags & SEC_RELOC) != 0
+      && opd->reloc_count != 0
+      && !bfd_is_abs_section (opd->output_section)
+      && info->gc_sections)
+    {
+      /* Garbage collection needs some extra help with .opd sections.
+	 We don't want to necessarily keep everything referenced by
+	 relocs in .opd, as that would keep all functions.  Instead,
+	 if we reference an .opd symbol (a function descriptor), we
+	 want to keep the function code symbol's section.  This is
+	 easy for global symbols, but for local syms we need to keep
+	 information about the associated function section.  */
+      bfd_size_type amt;
+      asection **opd_sym_map;
+      Elf_Internal_Shdr *symtab_hdr;
+      Elf_Internal_Rela *relocs, *rel_end, *rel;
+
+      amt = OPD_NDX (opd->size) * sizeof (*opd_sym_map);
+      opd_sym_map = bfd_zalloc (ibfd, amt);
+      if (opd_sym_map == NULL)
+	return FALSE;
+      ppc64_elf_section_data (opd)->u.opd.func_sec = opd_sym_map;
+      relocs = _bfd_elf_link_read_relocs (ibfd, opd, NULL, NULL,
+					  info->keep_memory);
+      if (relocs == NULL)
+	return FALSE;
+      symtab_hdr = &elf_symtab_hdr (ibfd);
+      rel_end = relocs + opd->reloc_count - 1;
+      for (rel = relocs; rel < rel_end; rel++)
+	{
+	  enum elf_ppc64_reloc_type r_type = ELF64_R_TYPE (rel->r_info);
+	  unsigned long r_symndx = ELF64_R_SYM (rel->r_info);
+
+	  if (r_type == R_PPC64_ADDR64
+	      && ELF64_R_TYPE ((rel + 1)->r_info) == R_PPC64_TOC
+	      && r_symndx < symtab_hdr->sh_info)
+	    {
+	      Elf_Internal_Sym *isym;
+	      asection *s;
+
+	      isym = bfd_sym_from_r_symndx (&htab->sym_cache, ibfd, r_symndx);
+	      if (isym == NULL)
+		{
+		  if (elf_section_data (opd)->relocs != relocs)
+		    free (relocs);
+		  return FALSE;
+		}
 
-  /* For input files without an explicit abiversion in e_flags
-     we should have flagged any with symbol st_other bits set
-     as ELFv1 and above flagged those with .opd as ELFv2.
-     Set the output abiversion if not yet set, and for any input
-     still ambiguous, take its abiversion from the output.
-     Differences in ABI are reported later.  */
-  if (abiversion (info->output_bfd) == 0)
-    set_abiversion (info->output_bfd, abiversion (ibfd));
-  else if (abiversion (ibfd) == 0)
-    set_abiversion (ibfd, abiversion (info->output_bfd));
+	      s = bfd_section_from_elf_index (ibfd, isym->st_shndx);
+	      if (s != NULL && s != opd)
+		opd_sym_map[OPD_NDX (rel->r_offset)] = s;
+	    }
+	}
+      if (elf_section_data (opd)->relocs != relocs)
+	free (relocs);
+    }
 
   p = &htab->dot_syms;
   while ((eh = *p) != NULL)
@@ -5358,8 +5389,8 @@ ppc64_elf_check_relocs (bfd *abfd, struc
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
   asection *sreloc;
-  asection **opd_sym_map;
   struct elf_link_hash_entry *tga, *dottga;
+  bfd_boolean is_opd;
 
   if (bfd_link_relocatable (info))
     return TRUE;
@@ -5386,11 +5417,7 @@ ppc64_elf_check_relocs (bfd *abfd, struc
   symtab_hdr = &elf_symtab_hdr (abfd);
   sym_hashes = elf_sym_hashes (abfd);
   sreloc = NULL;
-  opd_sym_map = NULL;
-  if (ppc64_elf_section_data (sec) != NULL
-      && ppc64_elf_section_data (sec)->sec_type == sec_opd)
-    opd_sym_map = ppc64_elf_section_data (sec)->u.opd.func_sec;
-
+  is_opd = ppc64_elf_section_data (sec)->sec_type == sec_opd;
   rel_end = relocs + sec->reloc_count;
   for (rel = relocs; rel < rel_end; rel++)
     {
@@ -5406,17 +5433,8 @@ ppc64_elf_check_relocs (bfd *abfd, struc
 	h = NULL;
       else
 	{
-	  struct ppc_link_hash_entry *eh;
-
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
 	  h = elf_follow_link (h);
-	  eh = (struct ppc_link_hash_entry *) h;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
-	  if (eh->is_func && eh->oh != NULL)
-	    eh->oh->elf.root.non_ir_ref = 1;
 
 	  if (h == htab->elf.hgot)
 	    sec->has_toc_reloc = 1;
@@ -5475,7 +5493,7 @@ ppc64_elf_check_relocs (bfd *abfd, struc
 	case R_PPC64_GOT_TPREL16_LO_DS:
 	case R_PPC64_GOT_TPREL16_HI:
 	case R_PPC64_GOT_TPREL16_HA:
-	  if (bfd_link_pic (info))
+	  if (bfd_link_dll (info))
 	    info->flags |= DF_STATIC_TLS;
 	  tls_type = TLS_TLS | TLS_TPREL;
 	  goto dogottls;
@@ -5737,7 +5755,7 @@ ppc64_elf_check_relocs (bfd *abfd, struc
 
 	case R_PPC64_TPREL64:
 	  tls_type = TLS_EXPLICIT | TLS_TLS | TLS_TPREL;
-	  if (bfd_link_pic (info))
+	  if (bfd_link_dll (info))
 	    info->flags |= DF_STATIC_TLS;
 	  goto dotlstoc;
 
@@ -5813,34 +5831,17 @@ ppc64_elf_check_relocs (bfd *abfd, struc
 	case R_PPC64_TPREL16_HIGHERA:
 	case R_PPC64_TPREL16_HIGHEST:
 	case R_PPC64_TPREL16_HIGHESTA:
-	  if (bfd_link_pic (info))
-	    {
-	      info->flags |= DF_STATIC_TLS;
-	      goto dodyn;
-	    }
-	  break;
+	  if (bfd_link_dll (info))
+	    info->flags |= DF_STATIC_TLS;
+	  goto dodyn;
 
 	case R_PPC64_ADDR64:
-	  if (opd_sym_map != NULL
+	  if (is_opd
 	      && rel + 1 < rel_end
 	      && ELF64_R_TYPE ((rel + 1)->r_info) == R_PPC64_TOC)
 	    {
 	      if (h != NULL)
 		((struct ppc_link_hash_entry *) h)->is_func = 1;
-	      else
-		{
-		  asection *s;
-		  Elf_Internal_Sym *isym;
-
-		  isym = bfd_sym_from_r_symndx (&htab->sym_cache,
-						abfd, r_symndx);
-		  if (isym == NULL)
-		    return FALSE;
-
-		  s = bfd_section_from_elf_index (abfd, isym->st_shndx);
-		  if (s != NULL && s != sec)
-		    opd_sym_map[OPD_NDX (rel->r_offset)] = s;
-		}
 	    }
 	  /* Fall through.  */
 
@@ -5880,7 +5881,7 @@ ppc64_elf_check_relocs (bfd *abfd, struc
 	    h->non_got_ref = 1;
 
 	  /* Don't propagate .opd relocs.  */
-	  if (NO_OPD_RELOCS && opd_sym_map != NULL)
+	  if (NO_OPD_RELOCS && is_opd)
 	    break;
 
 	  /* If we are creating a shared library, and this is a reloc
@@ -6309,6 +6310,22 @@ ppc64_elf_maybe_function_sym (const asym
   return size;
 }
 
+/* Return true if symbol is a strong function defined in an ELFv2
+   object with st_other localentry bits of zero, ie. its local entry
+   point coincides with its global entry point.  */
+
+static bfd_boolean
+is_elfv2_localentry0 (struct elf_link_hash_entry *h)
+{
+  return (h != NULL
+	  && h->type == STT_FUNC
+	  && h->root.type == bfd_link_hash_defined
+	  && (STO_PPC64_LOCAL_MASK & h->other) == 0
+	  && !((struct ppc_link_hash_entry *) h)->non_zero_localentry
+	  && is_ppc64_elf (h->root.u.def.section->owner)
+	  && abiversion (h->root.u.def.section->owner) >= 2);
+}
+
 /* Return true if symbol is defined in a regular object file.  */
 
 static bfd_boolean
@@ -6510,8 +6527,8 @@ ppc64_elf_gc_mark_hook (asection *sec,
 		     a call reloc.  Mark the function descriptor too
 		     against garbage collection.  */
 		  fdh->elf.mark = 1;
-		  if (fdh->elf.u.weakdef != NULL)
-		    fdh->elf.u.weakdef->mark = 1;
+		  if (fdh->elf.is_weakalias)
+		    weakdef (&fdh->elf)->mark = 1;
 		  eh = fdh;
 		}
 
@@ -6560,181 +6577,6 @@ ppc64_elf_gc_mark_hook (asection *sec,
   return rsec;
 }
 
-/* Update the .got, .plt. and dynamic reloc reference counts for the
-   section being removed.  */
-
-static bfd_boolean
-ppc64_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
-			 asection *sec, const Elf_Internal_Rela *relocs)
-{
-  struct ppc_link_hash_table *htab;
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  struct got_entry **local_got_ents;
-  const Elf_Internal_Rela *rel, *relend;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  if ((sec->flags & SEC_ALLOC) == 0)
-    return TRUE;
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  htab = ppc_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-
-  symtab_hdr = &elf_symtab_hdr (abfd);
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_ents = elf_local_got_ents (abfd);
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      enum elf_ppc64_reloc_type r_type;
-      struct elf_link_hash_entry *h = NULL;
-      struct plt_entry **plt_list = NULL;
-      unsigned char tls_type = 0;
-
-      r_symndx = ELF64_R_SYM (rel->r_info);
-      r_type = ELF64_R_TYPE (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  struct ppc_link_hash_entry *eh;
-	  struct elf_dyn_relocs **pp;
-	  struct elf_dyn_relocs *p;
-
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  h = elf_follow_link (h);
-	  eh = (struct ppc_link_hash_entry *) h;
-
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next)
-	    if (p->sec == sec)
-	      {
-		/* Everything must go for SEC.  */
-		*pp = p->next;
-		break;
-	      }
-	}
-
-      switch (r_type)
-	{
-	case R_PPC64_GOT_TLSLD16:
-	case R_PPC64_GOT_TLSLD16_LO:
-	case R_PPC64_GOT_TLSLD16_HI:
-	case R_PPC64_GOT_TLSLD16_HA:
-	  tls_type = TLS_TLS | TLS_LD;
-	  goto dogot;
-
-	case R_PPC64_GOT_TLSGD16:
-	case R_PPC64_GOT_TLSGD16_LO:
-	case R_PPC64_GOT_TLSGD16_HI:
-	case R_PPC64_GOT_TLSGD16_HA:
-	  tls_type = TLS_TLS | TLS_GD;
-	  goto dogot;
-
-	case R_PPC64_GOT_TPREL16_DS:
-	case R_PPC64_GOT_TPREL16_LO_DS:
-	case R_PPC64_GOT_TPREL16_HI:
-	case R_PPC64_GOT_TPREL16_HA:
-	  tls_type = TLS_TLS | TLS_TPREL;
-	  goto dogot;
-
-	case R_PPC64_GOT_DTPREL16_DS:
-	case R_PPC64_GOT_DTPREL16_LO_DS:
-	case R_PPC64_GOT_DTPREL16_HI:
-	case R_PPC64_GOT_DTPREL16_HA:
-	  tls_type = TLS_TLS | TLS_DTPREL;
-	  goto dogot;
-
-	case R_PPC64_GOT16:
-	case R_PPC64_GOT16_DS:
-	case R_PPC64_GOT16_HA:
-	case R_PPC64_GOT16_HI:
-	case R_PPC64_GOT16_LO:
-	case R_PPC64_GOT16_LO_DS:
-	dogot:
-	  {
-	    struct got_entry *ent;
-
-	    if (h != NULL)
-	      ent = h->got.glist;
-	    else
-	      ent = local_got_ents[r_symndx];
-
-	    for (; ent != NULL; ent = ent->next)
-	      if (ent->addend == rel->r_addend
-		  && ent->owner == abfd
-		  && ent->tls_type == tls_type)
-		break;
-	    if (ent == NULL)
-	      abort ();
-	    if (ent->got.refcount > 0)
-	      ent->got.refcount -= 1;
-	  }
-	  if (h != NULL && !bfd_link_pic (info) && abiversion (abfd) != 1)
-	    plt_list = &h->plt.plist;
-	  break;
-
-	case R_PPC64_PLT16_HA:
-	case R_PPC64_PLT16_HI:
-	case R_PPC64_PLT16_LO:
-	case R_PPC64_PLT32:
-	case R_PPC64_PLT64:
-	case R_PPC64_REL14:
-	case R_PPC64_REL14_BRNTAKEN:
-	case R_PPC64_REL14_BRTAKEN:
-	case R_PPC64_REL24:
-	  if (h != NULL)
-	    plt_list = &h->plt.plist;
-	  else if (local_got_ents != NULL)
-	    {
-	      struct plt_entry **local_plt = (struct plt_entry **)
-		(local_got_ents + symtab_hdr->sh_info);
-	      unsigned char *local_got_tls_masks = (unsigned char *)
-		(local_plt + symtab_hdr->sh_info);
-	      if ((local_got_tls_masks[r_symndx] & PLT_IFUNC) != 0)
-		plt_list = local_plt + r_symndx;
-	    }
-	  break;
-
-	case R_PPC64_ADDR64:
-	case R_PPC64_ADDR16:
-	case R_PPC64_ADDR16_DS:
-	case R_PPC64_ADDR16_HA:
-	case R_PPC64_ADDR16_HI:
-	case R_PPC64_ADDR16_HIGH:
-	case R_PPC64_ADDR16_HIGHA:
-	case R_PPC64_ADDR16_HIGHER:
-	case R_PPC64_ADDR16_HIGHERA:
-	case R_PPC64_ADDR16_HIGHEST:
-	case R_PPC64_ADDR16_HIGHESTA:
-	case R_PPC64_ADDR16_LO:
-	case R_PPC64_ADDR16_LO_DS:
-	  if (h != NULL && !bfd_link_pic (info) && abiversion (abfd) != 1
-	      && rel->r_addend == 0)
-	    plt_list = &h->plt.plist;
-	  break;
-
-	default:
-	  break;
-	}
-      if (plt_list != NULL)
-	{
-	  struct plt_entry *ent;
-
-	  for (ent = *plt_list; ent != NULL; ent = ent->next)
-	    if (ent->addend == rel->r_addend)
-	      break;
-	  if (ent != NULL && ent->plt.refcount > 0)
-	    ent->plt.refcount -= 1;
-	}
-    }
-  return TRUE;
-}
-
 /* The maximum size of .sfpr.  */
 #define SFPR_MAX (218*4)
 
@@ -7193,10 +7035,9 @@ ppc64_elf_func_desc_adjust (bfd *obfd AT
   return TRUE;
 }
 
-/* Return true if we have dynamic relocs against H that apply to
-   read-only sections.  */
+/* Find dynamic relocs for H that apply to read-only sections.  */
 
-static bfd_boolean
+static asection *
 readonly_dynrelocs (struct elf_link_hash_entry *h)
 {
   struct ppc_link_hash_entry *eh;
@@ -7208,13 +7049,14 @@ readonly_dynrelocs (struct elf_link_hash
       asection *s = p->sec->output_section;
 
       if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	return TRUE;
+	return p->sec;
     }
-  return FALSE;
+  return NULL;
 }
 
 /* Return true if we have dynamic relocs against H or any of its weak
-   aliases, that apply to read-only sections.  */
+   aliases, that apply to read-only sections.  Cannot be used after
+   size_dynamic_sections.  */
 
 static bfd_boolean
 alias_readonly_dynrelocs (struct elf_link_hash_entry *h)
@@ -7226,7 +7068,7 @@ alias_readonly_dynrelocs (struct elf_lin
     {
       if (readonly_dynrelocs (&eh->elf))
 	return TRUE;
-      eh = eh->weakref;
+      eh = (struct ppc_link_hash_entry *) eh->elf.u.alias;
     } while (eh != NULL && &eh->elf != h);
 
   return FALSE;
@@ -7287,6 +7129,23 @@ ppc64_elf_adjust_dynamic_symbol (struct 
       || h->type == STT_GNU_IFUNC
       || h->needs_plt)
     {
+      bfd_boolean local = (((struct ppc_link_hash_entry *) h)->save_res
+			   || SYMBOL_CALLS_LOCAL (info, h)
+			   || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h));
+      /* Discard dyn_relocs when non-pic if we've decided that a
+	 function symbol is local and not an ifunc.  We keep dynamic
+	 relocs for ifuncs when local rather than always emitting a
+	 plt call stub for them and defining the symbol on the call
+	 stub.  We can't do that for ELFv1 anyway (a function symbol
+	 is defined on a descriptor, not code) and it can be faster at
+	 run-time due to not needing to bounce through a stub.  The
+	 dyn_relocs for ifuncs will be applied even in a static
+	 executable.  */
+      if (!bfd_link_pic (info)
+	  && h->type != STT_GNU_IFUNC
+	  && local)
+	((struct ppc_link_hash_entry *) h)->dyn_relocs = NULL;
+
       /* Clear procedure linkage table information for any symbol that
 	 won't need a .plt entry.  */
       struct plt_entry *ent;
@@ -7294,11 +7153,7 @@ ppc64_elf_adjust_dynamic_symbol (struct 
 	if (ent->plt.refcount > 0)
 	  break;
       if (ent == NULL
-	  || (h->type != STT_GNU_IFUNC
-	      && (SYMBOL_CALLS_LOCAL (info, h)
-		  || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
-		      && h->root.type == bfd_link_hash_undefweak)))
-	  || ((struct ppc_link_hash_entry *) h)->save_res)
+	  || (h->type != STT_GNU_IFUNC && local))
 	{
 	  h->plt.plist = NULL;
 	  h->needs_plt = 0;
@@ -7313,17 +7168,32 @@ ppc64_elf_adjust_dynamic_symbol (struct 
 	     relocs is that calling via a global entry stub costs a
 	     few more instructions, and pointer_equality_needed causes
 	     extra work in ld.so when resolving these symbols.  */
-	  if (global_entry_stub (h)
-	      && !alias_readonly_dynrelocs (h))
+	  if (global_entry_stub (h))
 	    {
-	      h->pointer_equality_needed = 0;
-	      /* After adjust_dynamic_symbol, non_got_ref set in
-		 the non-pic case means that dyn_relocs for this
-		 symbol should be discarded.  */
-	      h->non_got_ref = 0;
+	      if (!readonly_dynrelocs (h))
+		{
+		  h->pointer_equality_needed = 0;
+		  /* If we haven't seen a branch reloc then we don't need
+		     a plt entry.  */
+		  if (!h->needs_plt)
+		    h->plt.plist = NULL;
+		}
+	      else if (!bfd_link_pic (info))
+		/* We are going to be defining the function symbol on the
+		   plt stub, so no dyn_relocs needed when non-pic.  */
+		((struct ppc_link_hash_entry *) h)->dyn_relocs = NULL;
 	    }
 
-	  /* If making a plt entry, then we don't need copy relocs.  */
+	  /* ELFv2 function symbols can't have copy relocs.  */
+	  return TRUE;
+	}
+      else if (!h->needs_plt
+	       && !readonly_dynrelocs (h))
+	{
+	  /* If we haven't seen a branch reloc then we don't need a
+	     plt entry.  */
+	  h->plt.plist = NULL;
+	  h->pointer_equality_needed = 0;
 	  return TRUE;
 	}
     }
@@ -7333,14 +7203,15 @@ ppc64_elf_adjust_dynamic_symbol (struct 
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
-      if (ELIMINATE_COPY_RELOCS)
-	h->non_got_ref = h->u.weakdef->non_got_ref;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
+      if (def->root.u.def.section == htab->elf.sdynbss
+	  || def->root.u.def.section == htab->elf.sdynrelro)
+	((struct ppc_link_hash_entry *) h)->dyn_relocs = NULL;
       return TRUE;
     }
 
@@ -7362,7 +7233,7 @@ ppc64_elf_adjust_dynamic_symbol (struct 
       /* If -z nocopyreloc was given, don't generate them either.  */
       || info->nocopyreloc
 
-      /* If we didn't find any dynamic relocs in read-only sections, then
+      /* If we don't find any dynamic relocs in read-only sections, then
 	 we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
       || (ELIMINATE_COPY_RELOCS && !alias_readonly_dynrelocs (h))
 
@@ -7371,10 +7242,7 @@ ppc64_elf_adjust_dynamic_symbol (struct 
 	 definition for the variable.  Text relocations are preferable
 	 to an incorrect program.  */
       || h->protected_def)
-    {
-      h->non_got_ref = 0;
-      return TRUE;
-    }
+    return TRUE;
 
   if (h->plt.plist != NULL)
     {
@@ -7401,11 +7269,6 @@ ppc64_elf_adjust_dynamic_symbol (struct 
      determine the address it must put in the global offset table, so
      both the dynamic object and the regular object will refer to the
      same memory location for the variable.  */
-
-  /* We must generate a R_PPC64_COPY reloc to tell the dynamic linker
-     to copy the initial value out of the dynamic object and into the
-     runtime process image.  We need to remember the offset into the
-     .rela.bss section we are going to use.  */
   if ((h->root.u.def.section->flags & SEC_READONLY) != 0)
     {
       s = htab->elf.sdynrelro;
@@ -7418,10 +7281,15 @@ ppc64_elf_adjust_dynamic_symbol (struct 
     }
   if ((h->root.u.def.section->flags & SEC_ALLOC) != 0 && h->size != 0)
     {
+      /* We must generate a R_PPC64_COPY reloc to tell the dynamic
+	 linker to copy the initial value out of the dynamic object
+	 and into the runtime process image.  */
       srel->size += sizeof (Elf64_External_Rela);
       h->needs_copy = 1;
     }
 
+  /* We no longer want dyn_relocs.  */
+  ((struct ppc_link_hash_entry *) h)->dyn_relocs = NULL;
   return _bfd_elf_adjust_dynamic_copy (info, h, s);
 }
 
@@ -7762,9 +7630,6 @@ dec_dynrel_count (bfd_vma r_info,
     case R_PPC64_TPREL16_HIGHERA:
     case R_PPC64_TPREL16_HIGHEST:
     case R_PPC64_TPREL16_HIGHESTA:
-      if (!bfd_link_pic (info))
-	return TRUE;
-
     case R_PPC64_TPREL64:
     case R_PPC64_DTPMOD64:
     case R_PPC64_DTPREL64:
@@ -8068,7 +7933,6 @@ ppc64_elf_edit_opd (struct bfd_link_info
 	  opd->adjust = bfd_zalloc (sec->owner, amt);
 	  if (opd->adjust == NULL)
 	    return FALSE;
-	  ppc64_elf_section_data (sec)->sec_type = sec_opd;
 
 	  /* This seems a waste of time as input .opd sections are all
 	     zeros as generated by gcc, but I suppose there's no reason
@@ -8320,6 +8184,29 @@ ppc64_elf_tls_setup (struct bfd_link_inf
   else if (!htab->do_multi_toc)
     htab->params->no_multi_toc = 1;
 
+  /* Default to --no-plt-localentry, as this option can cause problems
+     with symbol interposition.  For example, glibc libpthread.so and
+     libc.so duplicate many pthread symbols, with a fallback
+     implementation in libc.so.  In some cases the fallback does more
+     work than the pthread implementation.  __pthread_condattr_destroy
+     is one such symbol: the libpthread.so implementation is
+     localentry:0 while the libc.so implementation is localentry:8.
+     An app that "cleverly" uses dlopen to only load necessary
+     libraries at runtime may omit loading libpthread.so when not
+     running multi-threaded, which then results in the libc.so
+     fallback symbols being used and ld.so complaining.  Now there
+     are workarounds in ld (see non_zero_localentry) to detect the
+     pthread situation, but that may not be the only case where
+     --plt-localentry can cause trouble.  */
+  if (htab->params->plt_localentry0 < 0)
+    htab->params->plt_localentry0 = 0;
+  if (htab->params->plt_localentry0
+      && elf_link_hash_lookup (&htab->elf, "GLIBC_2.26",
+			       FALSE, FALSE, FALSE) == NULL)
+    info->callbacks->einfo
+      (_("%P: warning: --plt-localentry is especially dangerous without "
+	 "ld.so support to detect ABI violations.\n"));
+
   htab->tls_get_addr = ((struct ppc_link_hash_entry *)
 			elf_link_hash_lookup (&htab->elf, ".__tls_get_addr",
 					      FALSE, FALSE, TRUE));
@@ -8353,8 +8240,7 @@ ppc64_elf_tls_setup (struct bfd_link_inf
 	      && (tga_fd->type == STT_FUNC
 		  || tga_fd->needs_plt)
 	      && !(SYMBOL_CALLS_LOCAL (info, tga_fd)
-		   || (ELF_ST_VISIBILITY (tga_fd->other) != STV_DEFAULT
-		       && tga_fd->root.type == bfd_link_hash_undefweak)))
+		   || UNDEFWEAK_NO_DYNAMIC_RELOC (info, tga_fd)))
 	    {
 	      struct plt_entry *ent;
 
@@ -8867,6 +8753,7 @@ ppc64_elf_tls_optimize (struct bfd_link_
 
   if (toc_ref != NULL)
     free (toc_ref);
+  htab->do_tls_opt = 1;
   return TRUE;
 }
 
@@ -8874,7 +8761,7 @@ ppc64_elf_tls_optimize (struct bfd_link_
    the values of any global symbols in a toc section that has been
    edited.  Globals in toc sections should be a rarity, so this function
    sets a flag if any are found in toc sections other than the one just
-   edited, so that futher hash table traversals can be avoided.  */
+   edited, so that further hash table traversals can be avoided.  */
 
 struct adjust_toc_info
 {
@@ -9370,7 +9257,7 @@ ppc64_elf_edit_toc (struct bfd_link_info
 
       /* Merge the used and skip arrays.  Assume that TOC
 	 doublewords not appearing as either used or unused belong
-	 to to an entry more than one doubleword in size.  */
+	 to an entry more than one doubleword in size.  */
       for (drop = skip, keep = used, last = 0, some_unused = 0;
 	   drop < skip + (toc->size + 7) / 8;
 	   ++drop, ++keep)
@@ -9654,12 +9541,14 @@ allocate_got (struct elf_link_hash_entry
       htab->elf.irelplt->size += rentsize;
       htab->got_reli_size += rentsize;
     }
-  else if ((bfd_link_pic (info)
+  else if (((bfd_link_pic (info)
+	     && !((gent->tls_type & TLS_TPREL) != 0
+		  && bfd_link_executable (info)
+		  && SYMBOL_REFERENCES_LOCAL (info, h)))
 	    || (htab->elf.dynamic_sections_created
 		&& h->dynindx != -1
 		&& !SYMBOL_REFERENCES_LOCAL (info, h)))
-	   && (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-	       || h->root.type != bfd_link_hash_undefweak))
+	   && !UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
     {
       asection *relgot = ppc64_elf_tdata (gent->owner)->relgot;
       relgot->size += rentsize;
@@ -9686,16 +9575,18 @@ merge_got_entries (struct got_entry **pe
 	  }
 }
 
-/* If H is undefined weak, make it dynamic if that makes sense.  */
+/* If H is undefined, make it dynamic if that makes sense.  */
 
 static bfd_boolean
-ensure_undefweak_dynamic (struct bfd_link_info *info,
-			  struct elf_link_hash_entry *h)
+ensure_undef_dynamic (struct bfd_link_info *info,
+		      struct elf_link_hash_entry *h)
 {
   struct elf_link_hash_table *htab = elf_hash_table (info);
 
   if (htab->dynamic_sections_created
-      && h->root.type == bfd_link_hash_undefweak
+      && ((info->dynamic_undefined_weak != 0
+	   && h->root.type == bfd_link_hash_undefweak)
+	  || h->root.type == bfd_link_hash_undefined)
       && h->dynindx == -1
       && !h->forced_local
       && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
@@ -9774,9 +9665,8 @@ allocate_dynrelocs (struct elf_link_hash
   for (gent = h->got.glist; gent != NULL; gent = gent->next)
     if (!gent->is_indirect)
       {
-	/* Make sure this symbol is output as a dynamic symbol.
-	   Undefined weak syms won't yet be marked as dynamic.  */
-	if (!ensure_undefweak_dynamic (info, h))
+	/* Make sure this symbol is output as a dynamic symbol.  */
+	if (!ensure_undef_dynamic (info, h))
 	  return FALSE;
 
 	if (!is_ppc64_elf (gent->owner))
@@ -9785,10 +9675,22 @@ allocate_dynrelocs (struct elf_link_hash
 	allocate_got (h, info, gent);
       }
 
+  /* If no dynamic sections we can't have dynamic relocs, except for
+     IFUNCs which are handled even in static executables.  */
   if (!htab->elf.dynamic_sections_created
       && h->type != STT_GNU_IFUNC)
     eh->dyn_relocs = NULL;
 
+  /* Discard relocs on undefined symbols that must be local.  */
+  else if (h->root.type == bfd_link_hash_undefined
+	   && ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
+    eh->dyn_relocs = NULL;
+
+  /* Also discard relocs on undefined weak syms with non-default
+     visibility, or when dynamic_undefined_weak says so.  */
+  else if (UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
+    eh->dyn_relocs = NULL;
+
   if (eh->dyn_relocs != NULL)
     {
       struct elf_dyn_relocs *p, **pp;
@@ -9821,54 +9723,24 @@ allocate_dynrelocs (struct elf_link_hash
 		}
 	    }
 
-	  /* Also discard relocs on undefined weak syms with
-	     non-default visibility.  */
-	  if (eh->dyn_relocs != NULL
-	      && h->root.type == bfd_link_hash_undefweak)
+	  if (eh->dyn_relocs != NULL)
 	    {
-	      if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
-		eh->dyn_relocs = NULL;
-
-	      /* Make sure this symbol is output as a dynamic symbol.
-		 Undefined weak syms won't yet be marked as dynamic.  */
-	      else if (!ensure_undefweak_dynamic (info, h))
+	      /* Make sure this symbol is output as a dynamic symbol.  */
+	      if (!ensure_undef_dynamic (info, h))
 		return FALSE;
 	    }
 	}
-      else if (h->type == STT_GNU_IFUNC)
-	{
-	  /* A plt entry is always created when making direct calls to
-	     an ifunc, even when building a static executable, but
-	     that doesn't cover all cases.  We may have only an ifunc
-	     initialised function pointer for a given ifunc symbol.
-
-	     For ELFv2, dynamic relocations are not required when
-	     generating a global entry PLT stub.  */
-	  if (abiversion (info->output_bfd) >= 2)
-	    {
-	      if (global_entry_stub (h))
-		eh->dyn_relocs = NULL;
-	    }
-
-	  /* For ELFv1 we have function descriptors.  Descriptors need
-	     to be treated like PLT entries and thus have dynamic
-	     relocations.  One exception is when the function
-	     descriptor is copied into .dynbss (which should only
-	     happen with ancient versions of gcc).  */
-	  else if (h->needs_copy)
-	    eh->dyn_relocs = NULL;
-	}
-      else if (ELIMINATE_COPY_RELOCS)
+      else if (ELIMINATE_COPY_RELOCS && h->type != STT_GNU_IFUNC)
 	{
 	  /* For the non-pic case, discard space for relocs against
 	     symbols which turn out to need copy relocs or are not
 	     dynamic.  */
-	  if (!h->non_got_ref
-	      && !h->def_regular)
+	  if (h->dynamic_adjusted
+	      && !h->def_regular
+	      && !ELF_COMMON_DEF_P (h))
 	    {
-	      /* Make sure this symbol is output as a dynamic symbol.
-		 Undefined weak syms won't yet be marked as dynamic.  */
-	      if (!ensure_undefweak_dynamic (info, h))
+	      /* Make sure this symbol is output as a dynamic symbol.  */
+	      if (!ensure_undef_dynamic (info, h))
 		return FALSE;
 
 	      if (h->dynindx == -1)
@@ -10004,14 +9876,22 @@ size_global_entry_stubs (struct elf_link
    read-only sections.  */
 
 static bfd_boolean
-maybe_set_textrel (struct elf_link_hash_entry *h, void *info)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *inf)
 {
+  asection *sec;
+
   if (h->root.type == bfd_link_hash_indirect)
     return TRUE;
 
-  if (readonly_dynrelocs (h))
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
     {
-      ((struct bfd_link_info *) info)->flags |= DF_TEXTREL;
+      struct bfd_link_info *info = (struct bfd_link_info *) inf;
+
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
       /* Not an error, just cut short the traversal.  */
       return FALSE;
@@ -10135,7 +10015,9 @@ ppc64_elf_size_dynamic_sections (bfd *ou
 			htab->elf.irelplt->size += rel_size;
 			htab->got_reli_size += rel_size;
 		      }
-		    else if (bfd_link_pic (info))
+		    else if (bfd_link_pic (info)
+			     && !((ent->tls_type & TLS_TPREL) != 0
+				  && bfd_link_executable (info)))
 		      {
 			asection *srel = ppc64_elf_tdata (ibfd)->relgot;
 			srel->size += rel_size;
@@ -10271,6 +10153,10 @@ ppc64_elf_size_dynamic_sections (bfd *ou
 	  continue;
 	}
 
+      if (bfd_is_abs_section (s->output_section))
+	_bfd_error_handler (_("warning: discarding dynamic section %s"),
+			    s->name);
+
       if ((s->flags & SEC_HAS_CONTENTS) == 0)
 	continue;
 
@@ -10540,21 +10426,39 @@ plt_stub_size (struct ppc_link_hash_tabl
       && (stub_entry->h == htab->tls_get_addr_fd
 	  || stub_entry->h == htab->tls_get_addr)
       && htab->params->tls_get_addr_opt)
-    size += 13 * 4;
+    {
+      size += 7 * 4;
+      if (ALWAYS_EMIT_R2SAVE
+	  || stub_entry->stub_type == ppc_stub_plt_call_r2save)
+	size += 6 * 4;
+    }
   return size;
 }
 
-/* If this stub would cross fewer 2**plt_stub_align boundaries if we align,
-   then return the padding needed to do so.  */
+/* Depending on the sign of plt_stub_align:
+   If positive, return the padding to align to a 2**plt_stub_align
+   boundary.
+   If negative, if this stub would cross fewer 2**plt_stub_align
+   boundaries if we align, then return the padding needed to do so.  */
+
 static inline unsigned int
 plt_stub_pad (struct ppc_link_hash_table *htab,
 	      struct ppc_stub_hash_entry *stub_entry,
 	      bfd_vma plt_off)
 {
-  int stub_align = 1 << htab->params->plt_stub_align;
+  int stub_align;
   unsigned stub_size = plt_stub_size (htab, stub_entry, plt_off);
   bfd_vma stub_off = stub_entry->group->stub_sec->size;
 
+  if (htab->params->plt_stub_align >= 0)
+    {
+      stub_align = 1 << htab->params->plt_stub_align;
+      if ((stub_off & (stub_align - 1)) != 0)
+	return stub_align - (stub_off & (stub_align - 1));
+      return 0;
+    }
+
+  stub_align = 1 << -htab->params->plt_stub_align;
   if (((stub_off + stub_size - 1) & -stub_align) - (stub_off & -stub_align)
       > ((stub_size - 1) & -stub_align))
     return stub_align - (stub_off & (stub_align - 1));
@@ -10767,11 +10671,17 @@ build_tls_get_addr_stub (struct ppc_link
   bfd_put_32 (obfd, ADD_R3_R12_R13, p),		p += 4;
   bfd_put_32 (obfd, BEQLR, p),			p += 4;
   bfd_put_32 (obfd, MR_R3_R0, p),		p += 4;
+  if (r != NULL)
+    r[0].r_offset += 7 * 4;
+  if (!ALWAYS_EMIT_R2SAVE
+      && stub_entry->stub_type != ppc_stub_plt_call_r2save)
+    return build_plt_stub (htab, stub_entry, p, offset, r);
+
   bfd_put_32 (obfd, MFLR_R11, p),		p += 4;
   bfd_put_32 (obfd, STD_R11_0R1 + STK_LINKER (htab), p), p += 4;
 
   if (r != NULL)
-    r[0].r_offset += 9 * 4;
+    r[0].r_offset += 2 * 4;
   p = build_plt_stub (htab, stub_entry, p, offset, r);
   bfd_put_32 (obfd, BCTRL, p - 4);
 
@@ -11041,7 +10951,7 @@ ppc_build_one_stub (struct bfd_hash_entr
 	      + htab->brlt->output_section->vma);
 
       off = (dest
-	     - elf_gp (htab->brlt->output_section->owner)
+	     - elf_gp (info->output_bfd)
 	     - htab->sec_info[stub_entry->group->link_sec->id].toc_off);
 
       if (off + 0x80008000 > 0xffffffff || (off & 7) != 0)
@@ -11192,7 +11102,7 @@ ppc_build_one_stub (struct bfd_hash_entr
 	}
 
       off = (dest
-	     - elf_gp (plt->output_section->owner)
+	     - elf_gp (info->output_bfd)
 	     - htab->sec_info[stub_entry->group->link_sec->id].toc_off);
 
       if (off + 0x80008000 > 0xffffffff || (off & 7) != 0)
@@ -11340,10 +11250,19 @@ ppc_size_one_stub (struct bfd_hash_entry
 	plt = htab->elf.iplt;
       off += (plt->output_offset
 	      + plt->output_section->vma
-	      - elf_gp (plt->output_section->owner)
+	      - elf_gp (info->output_bfd)
 	      - htab->sec_info[stub_entry->group->link_sec->id].toc_off);
 
       size = plt_stub_size (htab, stub_entry, off);
+      if (stub_entry->h != NULL
+	  && (stub_entry->h == htab->tls_get_addr_fd
+	      || stub_entry->h == htab->tls_get_addr)
+	  && htab->params->tls_get_addr_opt
+	  && (ALWAYS_EMIT_R2SAVE
+	      || stub_entry->stub_type == ppc_stub_plt_call_r2save))
+	stub_entry->group->tls_get_addr_opt_bctrl
+	  = stub_entry->group->stub_sec->size + size - 5 * 4;
+
       if (htab->params->plt_stub_align)
 	size += plt_stub_pad (htab, stub_entry, off);
       if (info->emitrelocations)
@@ -11434,7 +11353,7 @@ ppc_size_one_stub (struct bfd_hash_entry
 	  off = (br_entry->offset
 		 + htab->brlt->output_offset
 		 + htab->brlt->output_section->vma
-		 - elf_gp (htab->brlt->output_section->owner)
+		 - elf_gp (info->output_bfd)
 		 - htab->sec_info[stub_entry->group->link_sec->id].toc_off);
 
 	  if (info->emitrelocations)
@@ -11554,7 +11473,7 @@ ppc64_elf_next_toc_section (struct bfd_l
 	 output toc base plus 0x8000.  Making the input elf_gp an
 	 offset allows us to move the toc as a whole without
 	 recalculating input elf_gp.  */
-      off = htab->toc_curr - elf_gp (isec->output_section->owner);
+      off = htab->toc_curr - elf_gp (info->output_bfd);
       off += TOC_BASE_OFF;
 
       /* Die if someone uses a linker script that doesn't keep input
@@ -11583,7 +11502,7 @@ ppc64_elf_next_toc_section (struct bfd_l
     }
   addr = (htab->toc_first_sec->output_offset
 	  + htab->toc_first_sec->output_section->vma);
-  off = addr - elf_gp (isec->output_section->owner) + TOC_BASE_OFF;
+  off = addr - elf_gp (info->output_bfd) + TOC_BASE_OFF;
   elf_gp (isec->owner) = off;
 
   return TRUE;
@@ -12210,6 +12129,7 @@ group_sections (struct bfd_link_info *in
 	  group->link_sec = curr;
 	  group->stub_sec = NULL;
 	  group->needs_save_res = 0;
+	  group->tls_get_addr_opt_bctrl = -1u;
 	  group->next = htab->group;
 	  htab->group = group;
 	  do
@@ -12260,6 +12180,27 @@ static const unsigned char glink_eh_fram
   DW_CFA_def_cfa, 1, 0			/* def_cfa: r1 offset 0.  */
 };
 
+static size_t
+stub_eh_frame_size (struct map_stub *group, size_t align)
+{
+  size_t this_size = 17;
+  if (group->tls_get_addr_opt_bctrl != -1u)
+    {
+      unsigned int to_bctrl = group->tls_get_addr_opt_bctrl / 4;
+      if (to_bctrl < 64)
+	this_size += 1;
+      else if (to_bctrl < 256)
+	this_size += 2;
+      else if (to_bctrl < 65536)
+	this_size += 3;
+      else
+	this_size += 5;
+      this_size += 6;
+    }
+  this_size = (this_size + align - 1) & -align;
+  return this_size;
+}
+
 /* Stripping output sections is normally done before dynamic section
    symbols have been allocated.  This function is called later, and
    handles cases like htab->brlt which is mapped to its own output
@@ -12362,7 +12303,6 @@ ppc64_elf_size_stubs (struct bfd_link_in
       bfd *input_bfd;
       unsigned int bfd_indx;
       struct map_stub *group;
-      asection *stub_sec;
 
       htab->stub_iteration += 1;
 
@@ -12590,17 +12530,24 @@ ppc64_elf_size_stubs (struct bfd_link_in
 			continue;
 		    }
 
-		  if (stub_type == ppc_stub_plt_call
-		      && irela + 1 < irelaend
-		      && irela[1].r_offset == irela->r_offset + 4
-		      && ELF64_R_TYPE (irela[1].r_info) == R_PPC64_TOCSAVE)
+		  if (stub_type == ppc_stub_plt_call)
 		    {
-		      if (!tocsave_find (htab, INSERT,
-					 &local_syms, irela + 1, input_bfd))
-			goto error_ret_free_internal;
+		      if (!htab->opd_abi
+			  && htab->params->plt_localentry0 != 0
+			  && is_elfv2_localentry0 (&hash->elf))
+			htab->has_plt_localentry0 = 1;
+		      else if (irela + 1 < irelaend
+			       && irela[1].r_offset == irela->r_offset + 4
+			       && (ELF64_R_TYPE (irela[1].r_info)
+				   == R_PPC64_TOCSAVE))
+			{
+			  if (!tocsave_find (htab, INSERT,
+					     &local_syms, irela + 1, input_bfd))
+			    goto error_ret_free_internal;
+			}
+		      else
+			stub_type = ppc_stub_plt_call_r2save;
 		    }
-		  else if (stub_type == ppc_stub_plt_call)
-		    stub_type = ppc_stub_plt_call_r2save;
 
 		  /* Support for grouping stub sections.  */
 		  id_sec = htab->sec_info[section->id].u.group->link_sec;
@@ -12673,11 +12620,11 @@ ppc64_elf_size_stubs (struct bfd_link_in
 
       /* We may have added some stubs.  Find out the new size of the
 	 stub sections.  */
-      for (stub_sec = htab->params->stub_bfd->sections;
-	   stub_sec != NULL;
-	   stub_sec = stub_sec->next)
-	if ((stub_sec->flags & SEC_LINKER_CREATED) == 0)
+      for (group = htab->group; group != NULL; group = group->next)
+	if (group->stub_sec != NULL)
 	  {
+	    asection *stub_sec = group->stub_sec;
+
 	    if (htab->stub_iteration <= STUB_SHRINK_ITER
 		|| stub_sec->rawsize < stub_sec->size)
 	      /* Past STUB_SHRINK_ITER, rawsize is the max size seen.  */
@@ -12708,15 +12655,13 @@ ppc64_elf_size_stubs (struct bfd_link_in
 
       if (htab->glink_eh_frame != NULL
 	  && !bfd_is_abs_section (htab->glink_eh_frame->output_section)
-	  && htab->glink_eh_frame->output_section->size != 0)
+	  && htab->glink_eh_frame->output_section->size > 8)
 	{
 	  size_t size = 0, align = 4;
 
-	  for (stub_sec = htab->params->stub_bfd->sections;
-	       stub_sec != NULL;
-	       stub_sec = stub_sec->next)
-	    if ((stub_sec->flags & SEC_LINKER_CREATED) == 0)
-	      size += (17 + align - 1) & -align;
+	  for (group = htab->group; group != NULL; group = group->next)
+	    if (group->stub_sec != NULL)
+	      size += stub_eh_frame_size (group, align);
 	  if (htab->glink != NULL && htab->glink->size != 0)
 	    size += (24 + align - 1) & -align;
 	  if (size != 0)
@@ -12728,24 +12673,20 @@ ppc64_elf_size_stubs (struct bfd_link_in
 	}
 
       if (htab->params->plt_stub_align != 0)
-	for (stub_sec = htab->params->stub_bfd->sections;
-	     stub_sec != NULL;
-	     stub_sec = stub_sec->next)
-	  if ((stub_sec->flags & SEC_LINKER_CREATED) == 0)
-	    stub_sec->size = ((stub_sec->size
-			       + (1 << htab->params->plt_stub_align) - 1)
-			      & -(1 << htab->params->plt_stub_align));
-
-      for (stub_sec = htab->params->stub_bfd->sections;
-	   stub_sec != NULL;
-	   stub_sec = stub_sec->next)
-	if ((stub_sec->flags & SEC_LINKER_CREATED) == 0
-	    && stub_sec->rawsize != stub_sec->size
+	for (group = htab->group; group != NULL; group = group->next)
+	  if (group->stub_sec != NULL)
+	    group->stub_sec->size = ((group->stub_sec->size
+				      + (1 << htab->params->plt_stub_align) - 1)
+				     & -(1 << htab->params->plt_stub_align));
+
+      for (group = htab->group; group != NULL; group = group->next)
+	if (group->stub_sec != NULL
+	    && group->stub_sec->rawsize != group->stub_sec->size
 	    && (htab->stub_iteration <= STUB_SHRINK_ITER
-		|| stub_sec->rawsize < stub_sec->size))
+		|| group->stub_sec->rawsize < group->stub_sec->size))
 	  break;
 
-      if (stub_sec == NULL
+      if (group == NULL
 	  && (htab->glink_eh_frame == NULL
 	      || htab->glink_eh_frame->rawsize == htab->glink_eh_frame->size))
 	break;
@@ -12760,7 +12701,7 @@ ppc64_elf_size_stubs (struct bfd_link_in
       bfd_vma val;
       bfd_byte *p, *last_fde;
       size_t last_fde_len, size, align, pad;
-      asection *stub_sec;
+      struct map_stub *group;
 
       p = bfd_zalloc (htab->glink_eh_frame->owner, htab->glink_eh_frame->size);
       if (p == NULL)
@@ -12775,13 +12716,11 @@ ppc64_elf_size_stubs (struct bfd_link_in
       bfd_put_32 (htab->elf.dynobj, last_fde_len, p);
       p += last_fde_len + 4;
 
-      for (stub_sec = htab->params->stub_bfd->sections;
-	   stub_sec != NULL;
-	   stub_sec = stub_sec->next)
-	if ((stub_sec->flags & SEC_LINKER_CREATED) == 0)
+      for (group = htab->group; group != NULL; group = group->next)
+	if (group->stub_sec != NULL)
 	  {
 	    last_fde = p;
-	    last_fde_len = ((17 + align - 1) & -align) - 4;
+	    last_fde_len = stub_eh_frame_size (group, align) - 4;
 	    /* FDE length.  */
 	    bfd_put_32 (htab->elf.dynobj, last_fde_len, p);
 	    p += 4;
@@ -12792,12 +12731,44 @@ ppc64_elf_size_stubs (struct bfd_link_in
 	    /* Offset to stub section, written later.  */
 	    p += 4;
 	    /* stub section size.  */
-	    bfd_put_32 (htab->elf.dynobj, stub_sec->size, p);
+	    bfd_put_32 (htab->elf.dynobj, group->stub_sec->size, p);
 	    p += 4;
 	    /* Augmentation.  */
 	    p += 1;
+	    if (group->tls_get_addr_opt_bctrl != -1u)
+	      {
+		unsigned int to_bctrl = group->tls_get_addr_opt_bctrl / 4;
+
+		/* This FDE needs more than just the default.
+		   Describe __tls_get_addr_opt stub LR.  */
+		if (to_bctrl < 64)
+		  *p++ = DW_CFA_advance_loc + to_bctrl;
+		else if (to_bctrl < 256)
+		  {
+		    *p++ = DW_CFA_advance_loc1;
+		    *p++ = to_bctrl;
+		  }
+		else if (to_bctrl < 65536)
+		  {
+		    *p++ = DW_CFA_advance_loc2;
+		    bfd_put_16 (htab->elf.dynobj, to_bctrl, p);
+		    p += 2;
+		  }
+		else
+		  {
+		    *p++ = DW_CFA_advance_loc4;
+		    bfd_put_32 (htab->elf.dynobj, to_bctrl, p);
+		    p += 4;
+		  }
+		*p++ = DW_CFA_offset_extended_sf;
+		*p++ = 65;
+		*p++ = -(STK_LINKER (htab) / 8) & 0x7f;
+		*p++ = DW_CFA_advance_loc + 4;
+		*p++ = DW_CFA_restore_extended;
+		*p++ = 65;
+	      }
 	    /* Pad.  */
-	    p += ((17 + align - 1) & -align) - 17;
+	    p = last_fde + last_fde_len + 4;
 	  }
       if (htab->glink != NULL && htab->glink->size != 0)
 	{
@@ -12822,7 +12793,7 @@ ppc64_elf_size_stubs (struct bfd_link_in
 	  *p++ = DW_CFA_register;
 	  *p++ = 65;
 	  *p++ = htab->opd_abi ? 12 : 0;
-	  *p++ = DW_CFA_advance_loc + 4;
+	  *p++ = DW_CFA_advance_loc + (htab->opd_abi ? 5 : 7);
 	  *p++ = DW_CFA_restore_extended;
 	  *p++ = 65;
 	  p += ((24 + align - 1) & -align) - 24;
@@ -13066,10 +13037,8 @@ ppc64_elf_build_stubs (struct bfd_link_i
     return FALSE;
 
   /* Allocate memory to hold the linker stubs.  */
-  for (stub_sec = htab->params->stub_bfd->sections;
-       stub_sec != NULL;
-       stub_sec = stub_sec->next)
-    if ((stub_sec->flags & SEC_LINKER_CREATED) == 0
+  for (group = htab->group; group != NULL; group = group->next)
+    if ((stub_sec = group->stub_sec) != NULL
 	&& stub_sec->size != 0)
       {
 	stub_sec->contents = bfd_zalloc (htab->params->stub_bfd, stub_sec->size);
@@ -13152,6 +13121,8 @@ ppc64_elf_build_stubs (struct bfd_link_i
 	  p += 4;
 	  bfd_put_32 (htab->glink->owner, MFLR_R11, p);
 	  p += 4;
+	  bfd_put_32 (htab->glink->owner, STD_R2_0R1 + 24, p);
+	  p += 4;
 	  bfd_put_32 (htab->glink->owner, LD_R2_0R11 | (-16 & 0xfffc), p);
 	  p += 4;
 	  bfd_put_32 (htab->glink->owner, MTLR_R0, p);
@@ -13249,18 +13220,14 @@ ppc64_elf_build_stubs (struct bfd_link_i
     htab->relbrlt->reloc_count = 0;
 
   if (htab->params->plt_stub_align != 0)
-    for (stub_sec = htab->params->stub_bfd->sections;
-	 stub_sec != NULL;
-	 stub_sec = stub_sec->next)
-      if ((stub_sec->flags & SEC_LINKER_CREATED) == 0)
+    for (group = htab->group; group != NULL; group = group->next)
+      if ((stub_sec = group->stub_sec) != NULL)
 	stub_sec->size = ((stub_sec->size
 			   + (1 << htab->params->plt_stub_align) - 1)
 			  & -(1 << htab->params->plt_stub_align));
 
-  for (stub_sec = htab->params->stub_bfd->sections;
-       stub_sec != NULL;
-       stub_sec = stub_sec->next)
-    if ((stub_sec->flags & SEC_LINKER_CREATED) == 0)
+  for (group = htab->group; group != NULL; group = group->next)
+    if ((stub_sec = group->stub_sec) != NULL)
       {
 	stub_sec_count += 1;
 	if (stub_sec->rawsize != stub_sec->size
@@ -13269,12 +13236,7 @@ ppc64_elf_build_stubs (struct bfd_link_i
 	  break;
       }
 
-  /* Note that the glink_eh_frame check here is not only testing that
-     the generated size matched the calculated size but also that
-     bfd_elf_discard_info didn't make any changes to the section.  */
-  if (stub_sec != NULL
-      || (htab->glink_eh_frame != NULL
-	  && htab->glink_eh_frame->rawsize != htab->glink_eh_frame->size))
+  if (group != NULL)
     {
       htab->stub_error = TRUE;
       info->callbacks->einfo (_("%P: stubs don't match calculated size\n"));
@@ -13285,20 +13247,23 @@ ppc64_elf_build_stubs (struct bfd_link_i
 
   if (stats != NULL)
     {
+      size_t len;
       *stats = bfd_malloc (500);
       if (*stats == NULL)
 	return FALSE;
 
-      sprintf (*stats, _("linker stubs in %u group%s\n"
-			 "  branch       %lu\n"
-			 "  toc adjust   %lu\n"
-			 "  long branch  %lu\n"
-			 "  long toc adj %lu\n"
-			 "  plt call     %lu\n"
-			 "  plt call toc %lu\n"
-			 "  global entry %lu"),
-	       stub_sec_count,
-	       stub_sec_count == 1 ? "" : "s",
+      len = sprintf (*stats,
+		     ngettext ("linker stubs in %u group\n",
+			       "linker stubs in %u groups\n",
+			       stub_sec_count),
+		     stub_sec_count);
+      sprintf (*stats + len, _("  branch       %lu\n"
+			       "  toc adjust   %lu\n"
+			       "  long branch  %lu\n"
+			       "  long toc adj %lu\n"
+			       "  plt call     %lu\n"
+			       "  plt call toc %lu\n"
+			       "  global entry %lu"),
 	       htab->stub_count[ppc_stub_long_branch - 1],
 	       htab->stub_count[ppc_stub_long_branch_r2off - 1],
 	       htab->stub_count[ppc_stub_plt_branch - 1],
@@ -13536,7 +13501,7 @@ ppc64_elf_relocate_section (bfd *output_
 	  wrel->r_addend = 0;
 
 	  /* For ld -r, remove relocations in debug sections against
-	     sections defined in discarded sections.  Not done for
+	     symbols defined in discarded sections.  Not done for
 	     non-debug to preserve relocs in .eh_frame which the
 	     eh_frame editing code expects to be present.  */
 	  if (bfd_link_relocatable (info)
@@ -13791,7 +13756,7 @@ ppc64_elf_relocate_section (bfd *output_
 	case R_PPC64_GOT_TLSLD16_LO:
 	  if (tls_mask != 0 && (tls_mask & TLS_LD) == 0)
 	    {
-	      unsigned int insn1, insn2, insn3;
+	      unsigned int insn1, insn2;
 	      bfd_vma offset;
 
 	    tls_ldgd_opt:
@@ -13870,18 +13835,7 @@ ppc64_elf_relocate_section (bfd *output_
 	      bfd_put_32 (input_bfd, insn1,
 			  contents + rel->r_offset - d_offset);
 	      if (offset != (bfd_vma) -1)
-		{
-		  insn3 = bfd_get_32 (input_bfd,
-				      contents + offset + 4);
-		  if (insn3 == NOP
-		      || insn3 == CROR_151515 || insn3 == CROR_313131)
-		    {
-		      rel[1].r_offset += 4;
-		      bfd_put_32 (input_bfd, insn2, contents + offset + 4);
-		      insn2 = NOP;
-		    }
-		  bfd_put_32 (input_bfd, insn2, contents + offset);
-		}
+		bfd_put_32 (input_bfd, insn2, contents + offset);
 	      if ((tls_mask & tls_gd) == 0
 		  && (tls_gd == 0 || toc_symndx != 0))
 		{
@@ -13895,7 +13849,7 @@ ppc64_elf_relocate_section (bfd *output_
 	case R_PPC64_TLSGD:
 	  if (tls_mask != 0 && (tls_mask & TLS_GD) == 0)
 	    {
-	      unsigned int insn2, insn3;
+	      unsigned int insn2;
 	      bfd_vma offset = rel->r_offset;
 
 	      if ((tls_mask & TLS_TPRELGD) != 0)
@@ -13920,15 +13874,6 @@ ppc64_elf_relocate_section (bfd *output_
 	      /* Zap the reloc on the _tls_get_addr call too.  */
 	      BFD_ASSERT (offset == rel[1].r_offset);
 	      rel[1].r_info = ELF64_R_INFO (STN_UNDEF, R_PPC64_NONE);
-	      insn3 = bfd_get_32 (input_bfd,
-				  contents + offset + 4);
-	      if (insn3 == NOP
-		  || insn3 == CROR_151515 || insn3 == CROR_313131)
-		{
-		  rel->r_offset += 4;
-		  bfd_put_32 (input_bfd, insn2, contents + offset + 4);
-		  insn2 = NOP;
-		}
 	      bfd_put_32 (input_bfd, insn2, contents + offset);
 	      if ((tls_mask & TLS_TPRELGD) == 0 && toc_symndx != 0)
 		goto again;
@@ -13938,7 +13883,7 @@ ppc64_elf_relocate_section (bfd *output_
 	case R_PPC64_TLSLD:
 	  if (tls_mask != 0 && (tls_mask & TLS_LD) == 0)
 	    {
-	      unsigned int insn2, insn3;
+	      unsigned int insn2;
 	      bfd_vma offset = rel->r_offset;
 
 	      if (toc_symndx)
@@ -13963,15 +13908,6 @@ ppc64_elf_relocate_section (bfd *output_
 	      BFD_ASSERT (offset == rel[1].r_offset);
 	      rel[1].r_info = ELF64_R_INFO (STN_UNDEF, R_PPC64_NONE);
 	      insn2 = 0x38630000;	/* addi 3,3,0 */
-	      insn3 = bfd_get_32 (input_bfd,
-				  contents + offset + 4);
-	      if (insn3 == NOP
-		  || insn3 == CROR_151515 || insn3 == CROR_313131)
-		{
-		  rel->r_offset += 4;
-		  bfd_put_32 (input_bfd, insn2, contents + offset + 4);
-		  insn2 = NOP;
-		}
 	      bfd_put_32 (input_bfd, insn2, contents + offset);
 	      goto again;
 	    }
@@ -14162,10 +14098,19 @@ ppc64_elf_relocate_section (bfd *output_
 	    {
 	      bfd_boolean can_plt_call = FALSE;
 
-	      /* All of these stubs will modify r2, so there must be a
+	      if (stub_entry->stub_type == ppc_stub_plt_call
+		  && !htab->opd_abi
+		  && htab->params->plt_localentry0 != 0
+		  && is_elfv2_localentry0 (&h->elf))
+		{
+		  /* The function doesn't use or change r2.  */
+		  can_plt_call = TRUE;
+		}
+
+	      /* All of these stubs may modify r2, so there must be a
 		 branch and link followed by a nop.  The nop is
 		 replaced by an insn to restore r2.  */
-	      if (rel->r_offset + 8 <= input_section->size)
+	      else if (rel->r_offset + 8 <= input_section->size)
 		{
 		  unsigned long br;
 
@@ -14320,7 +14265,7 @@ ppc64_elf_relocate_section (bfd *output_
 	      addend = 0;
 	      reloc_dest = DEST_STUB;
 
- 	      if ((stub_entry->stub_type == ppc_stub_plt_call
+	      if ((stub_entry->stub_type == ppc_stub_plt_call
 		   || stub_entry->stub_type == ppc_stub_plt_call_r2save)
 		  && (ALWAYS_EMIT_R2SAVE
 		      || stub_entry->stub_type == ppc_stub_plt_call_r2save)
@@ -14453,8 +14398,7 @@ ppc64_elf_relocate_section (bfd *output_
 		    if (!htab->elf.dynamic_sections_created
 			|| h->elf.dynindx == -1
 			|| SYMBOL_REFERENCES_LOCAL (info, &h->elf)
-			|| (ELF_ST_VISIBILITY (h->elf.other) != STV_DEFAULT
-			    && h->elf.root.type == bfd_link_hash_undefweak))
+			|| UNDEFWEAK_NO_DYNAMIC_RELOC (info, &h->elf))
 		      /* This is actually a static link, or it is a
 			 -Bsymbolic link and the symbol is defined
 			 locally, or the symbol was forced to be local
@@ -14520,11 +14464,12 @@ ppc64_elf_relocate_section (bfd *output_
 		else if (indx != 0
 			 || (bfd_link_pic (info)
 			     && (h == NULL
-				 || (ELF_ST_VISIBILITY (h->elf.other)
-				     == STV_DEFAULT)
-				 || h->elf.root.type != bfd_link_hash_undefweak
+				 || !UNDEFWEAK_NO_DYNAMIC_RELOC (info, &h->elf)
 				 || (tls_type == (TLS_TLS | TLS_LD)
-				     && !h->elf.def_dynamic))))
+				     && !h->elf.def_dynamic))
+			     && !(tls_type == (TLS_TLS | TLS_TPREL)
+				  && bfd_link_executable (info)
+				  && SYMBOL_REFERENCES_LOCAL (info, &h->elf))))
 		  relgot = ppc64_elf_tdata (ent->owner)->relgot;
 		if (relgot != NULL)
 		  {
@@ -14590,11 +14535,6 @@ ppc64_elf_relocate_section (bfd *output_
 		   emitting a reloc.  */
 		else
 		  {
-		    int tlsopt
-		      = (htab->params->tls_get_addr_opt
-			 && htab->tls_get_addr_fd != NULL
-			 && htab->tls_get_addr_fd->elf.plt.plist != NULL);
-
 		    relocation += addend;
 		    if (tls_type != 0)
 		      {
@@ -14606,8 +14546,7 @@ ppc64_elf_relocate_section (bfd *output_
 			      relocation = 0;
 			    else
 			      relocation -= htab->elf.tls_sec->vma + DTP_OFFSET;
-			    if ((tls_type & TLS_TPREL)
-				|| (tlsopt && !(tls_type & TLS_DTPREL)))
+			    if (tls_type & TLS_TPREL)
 			      relocation += DTP_OFFSET - TP_OFFSET;
 			  }
 
@@ -14615,7 +14554,7 @@ ppc64_elf_relocate_section (bfd *output_
 			  {
 			    bfd_put_64 (output_bfd, relocation,
 					got->contents + off + 8);
-			    relocation = !tlsopt;
+			    relocation = 1;
 			  }
 		      }
 		    bfd_put_64 (output_bfd, relocation,
@@ -14757,12 +14696,10 @@ ppc64_elf_relocate_section (bfd *output_
 	    }
 	  if (htab->elf.tls_sec != NULL)
 	    addend -= htab->elf.tls_sec->vma + TP_OFFSET;
-	  if (bfd_link_pic (info))
-	    /* The TPREL16 relocs shouldn't really be used in shared
-	       libs as they will result in DT_TEXTREL being set, but
-	       support them anyway.  */
-	    goto dodyn;
-	  break;
+	  /* The TPREL16 relocs shouldn't really be used in shared
+	     libs or with non-local symbols as that will result in
+	     DT_TEXTREL being set, but support them anyway.  */
+	  goto dodyn;
 
 	case R_PPC64_DTPREL16:
 	case R_PPC64_DTPREL16_LO:
@@ -15023,32 +14960,6 @@ ppc64_elf_relocate_section (bfd *output_
 		    addend = outrel.r_offset;
 		}
 	    }
-	  else if (r_type == R_PPC64_DTPMOD64
-		   && htab->params->tls_get_addr_opt
-		   && htab->tls_get_addr_fd != NULL
-		   && htab->tls_get_addr_fd->elf.plt.plist != NULL)
-	    {
-	      /* Set up for __tls_get_addr_opt stub, when this entry
-		 does not have dynamic relocs.  */
-	      relocation = 0;
-	      /* Set up the next word for local dynamic.  If it turns
-		 out to be global dynamic, the reloc will overwrite
-		 this value.  */
-	      if (rel->r_offset + 16 <= input_section->size)
-		bfd_put_64 (input_bfd, DTP_OFFSET - TP_OFFSET,
-			    contents + rel->r_offset + 8);
-	    }
-	  else if (r_type == R_PPC64_DTPREL64
-		   && htab->params->tls_get_addr_opt
-		   && htab->tls_get_addr_fd != NULL
-		   && htab->tls_get_addr_fd->elf.plt.plist != NULL
-		   && rel > relocs
-		   && rel[-1].r_info == ELF64_R_INFO (r_symndx, R_PPC64_DTPMOD64)
-		   && rel[-1].r_offset + 8 == rel->r_offset)
-	    {
-	      /* __tls_get_addr_opt stub value.  */
-	      addend += DTP_OFFSET - TP_OFFSET;
-	    }
 	  break;
 
 	case R_PPC64_COPY:
@@ -15083,7 +14994,8 @@ ppc64_elf_relocate_section (bfd *output_
 
       /* Multi-instruction sequences that access the TOC can be
 	 optimized, eg. addis ra,r2,0; addi rb,ra,x;
-	 to             nop;           addi rb,r2,x;  */
+	 to		nop;	       addi rb,r2,x;  */
+      howto = ppc64_elf_howto_table[(int) r_type];
       switch (r_type)
 	{
 	default:
@@ -15145,10 +15057,37 @@ ppc64_elf_relocate_section (bfd *output_
 	      bfd_put_32 (input_bfd, insn, p);
 	    }
 	  break;
+
+	case R_PPC64_TPREL16_HA:
+	  if (htab->do_tls_opt && relocation + addend + 0x8000 < 0x10000)
+	    {
+	      bfd_byte *p = contents + (rel->r_offset & ~3);
+	      insn = bfd_get_32 (input_bfd, p);
+	      if ((insn & ((0x3f << 26) | 0x1f << 16))
+		  != ((15u << 26) | (13 << 16)) /* addis rt,13,imm */)
+		/* xgettext:c-format */
+		info->callbacks->minfo
+		  (_("%H: warning: %s unexpected insn %#x.\n"),
+		   input_bfd, input_section, rel->r_offset, howto->name, insn);
+	      else
+		bfd_put_32 (input_bfd, NOP, p);
+	    }
+	  break;
+
+	case R_PPC64_TPREL16_LO:
+	case R_PPC64_TPREL16_LO_DS:
+	  if (htab->do_tls_opt && relocation + addend + 0x8000 < 0x10000)
+	    {
+	      bfd_byte *p = contents + (rel->r_offset & ~3);
+	      insn = bfd_get_32 (input_bfd, p);
+	      insn &= ~(0x1f << 16);
+	      insn |= 13 << 16;
+	      bfd_put_32 (input_bfd, insn, p);
+	    }
+	  break;
 	}
 
       /* Do any further special processing.  */
-      howto = ppc64_elf_howto_table[(int) r_type];
       switch (r_type)
 	{
 	default:
@@ -15631,6 +15570,8 @@ ppc64_elf_finish_dynamic_sections (bfd *
 	    case DT_PPC64_OPT:
 	      if (htab->do_multi_toc && htab->multi_toc_needed)
 		dyn.d_un.d_val |= PPC64_OPT_MULTI_TOC;
+	      if (htab->has_plt_localentry0)
+		dyn.d_un.d_val |= PPC64_OPT_LOCALENTRY;
 	      break;
 
 	    case DT_PPC64_OPDSZ:
@@ -15716,55 +15657,40 @@ ppc64_elf_finish_dynamic_sections (bfd *
     {
       bfd_vma val;
       bfd_byte *p;
-      asection *stub_sec;
+      struct map_stub *group;
       size_t align = 4;
 
       p = htab->glink_eh_frame->contents;
       p += (sizeof (glink_eh_frame_cie) + align - 1) & -align;
-      for (stub_sec = htab->params->stub_bfd->sections;
-	   stub_sec != NULL;
-	   stub_sec = stub_sec->next)
-	if ((stub_sec->flags & SEC_LINKER_CREATED) == 0)
+
+      for (group = htab->group; group != NULL; group = group->next)
+	if (group->stub_sec != NULL)
 	  {
-	    /* FDE length.  */
-	    p += 4;
-	    /* CIE pointer.  */
-	    p += 4;
 	    /* Offset to stub section.  */
-	    val = (stub_sec->output_section->vma
-		   + stub_sec->output_offset);
+	    val = (group->stub_sec->output_section->vma
+		   + group->stub_sec->output_offset);
 	    val -= (htab->glink_eh_frame->output_section->vma
 		    + htab->glink_eh_frame->output_offset
-		    + (p - htab->glink_eh_frame->contents));
+		    + (p + 8 - htab->glink_eh_frame->contents));
 	    if (val + 0x80000000 > 0xffffffff)
 	      {
 		info->callbacks->einfo
 		  (_("%P: %s offset too large for .eh_frame sdata4 encoding"),
-		   stub_sec->name);
+		   group->stub_sec->name);
 		return FALSE;
 	      }
-	    bfd_put_32 (dynobj, val, p);
-	    p += 4;
-	    /* stub section size.  */
-	    p += 4;
-	    /* Augmentation.  */
-	    p += 1;
-	    /* Pad.  */
-	    p += ((17 + align - 1) & -align) - 17;
+	    bfd_put_32 (dynobj, val, p + 8);
+	    p += stub_eh_frame_size (group, align);
 	  }
       if (htab->glink != NULL && htab->glink->size != 0)
 	{
-	  /* FDE length.  */
-	  p += 4;
-	  /* CIE pointer.  */
-	  p += 4;
 	  /* Offset to .glink.  */
 	  val = (htab->glink->output_section->vma
 		 + htab->glink->output_offset
 		 + 8);
 	  val -= (htab->glink_eh_frame->output_section->vma
 		  + htab->glink_eh_frame->output_offset
-		  + (p - htab->glink_eh_frame->contents));
+		  + (p + 8 - htab->glink_eh_frame->contents));
 	  if (val + 0x80000000 > 0xffffffff)
 	    {
 	      info->callbacks->einfo
@@ -15772,15 +15698,8 @@ ppc64_elf_finish_dynamic_sections (bfd *
 		 htab->glink->name);
 	      return FALSE;
 	    }
-	  bfd_put_32 (dynobj, val, p);
-	  p += 4;
-	  /* .glink size.  */
-	  p += 4;
-	  /* Augmentation.  */
-	  p += 1;
-	  /* Ops.  */
-	  p += 7;
-	  p += ((24 + align - 1) & -align) - 24;
+	  bfd_put_32 (dynobj, val, p + 8);
+	  p += (24 + align - 1) & -align;
 	}
 
       if (htab->glink_eh_frame->sec_info_type == SEC_INFO_TYPE_EH_FRAME
@@ -15840,4 +15759,3 @@ ppc64_elf_finish_dynamic_sections (bfd *
 #define elf64_bed	elf64_powerpc_fbsd_bed
 
 #include "elf64-target.h"
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-ppc.h ./bfd/elf64-ppc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-ppc.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-ppc.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* PowerPC64-specific support for 64-bit ELF.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -48,6 +48,9 @@ struct ppc64_elf_params
   /* Set if individual PLT call stubs should be aligned.  */
   int plt_stub_align;
 
+  /* Set if PLT call stubs for localentry:0 functions should omit r2 save.  */
+  int plt_localentry0;
+
   /* Whether to canonicalize .opd so that there are no overlapping
      .opd entries.  */
   int non_overlapping_opd;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-s390.c ./bfd/elf64-s390.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-s390.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-s390.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* IBM S/390-specific support for 64-bit ELF
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed Martin Schwidefsky (schwidefsky@de.ibm.com).
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -25,6 +25,7 @@
 #include "libbfd.h"
 #include "elf-bfd.h"
 #include "elf/s390.h"
+#include "elf-s390.h"
 #include <stdarg.h>
 
 /* In case we're on a 32-bit machine, construct a 64-bit "-1" value
@@ -55,65 +56,65 @@ static reloc_howto_type elf_howto_table[
 	 0,			/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  HOWTO(R_390_8,         0, 0,  8, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_8",        FALSE, 0,0x000000ff, FALSE),
-  HOWTO(R_390_12,        0, 1, 12, FALSE, 0, complain_overflow_dont,
-	bfd_elf_generic_reloc, "R_390_12",       FALSE, 0,0x00000fff, FALSE),
-  HOWTO(R_390_16,        0, 1, 16, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_16",       FALSE, 0,0x0000ffff, FALSE),
-  HOWTO(R_390_32,        0, 2, 32, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_32",       FALSE, 0,0xffffffff, FALSE),
+  HOWTO(R_390_8,	 0, 0,	8, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_8",	 FALSE, 0,0x000000ff, FALSE),
+  HOWTO(R_390_12,	 0, 1, 12, FALSE, 0, complain_overflow_dont,
+	bfd_elf_generic_reloc, "R_390_12",	 FALSE, 0,0x00000fff, FALSE),
+  HOWTO(R_390_16,	 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_16",	 FALSE, 0,0x0000ffff, FALSE),
+  HOWTO(R_390_32,	 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_32",	 FALSE, 0,0xffffffff, FALSE),
   HOWTO(R_390_PC32,	 0, 2, 32,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PC32",     FALSE, 0,0xffffffff, TRUE),
+	bfd_elf_generic_reloc, "R_390_PC32",	 FALSE, 0,0xffffffff, TRUE),
   HOWTO(R_390_GOT12,	 0, 1, 12, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_GOT12",    FALSE, 0,0x00000fff, FALSE),
+	bfd_elf_generic_reloc, "R_390_GOT12",	 FALSE, 0,0x00000fff, FALSE),
   HOWTO(R_390_GOT32,	 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_GOT32",    FALSE, 0,0xffffffff, FALSE),
+	bfd_elf_generic_reloc, "R_390_GOT32",	 FALSE, 0,0xffffffff, FALSE),
   HOWTO(R_390_PLT32,	 0, 2, 32,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PLT32",    FALSE, 0,0xffffffff, TRUE),
-  HOWTO(R_390_COPY,      0, 4, 64, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_COPY",     FALSE, 0,MINUS_ONE,  FALSE),
-  HOWTO(R_390_GLOB_DAT,  0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_PLT32",	 FALSE, 0,0xffffffff, TRUE),
+  HOWTO(R_390_COPY,	 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_COPY",	 FALSE, 0,MINUS_ONE,  FALSE),
+  HOWTO(R_390_GLOB_DAT,	 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GLOB_DAT", FALSE, 0,MINUS_ONE,  FALSE),
-  HOWTO(R_390_JMP_SLOT,  0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_JMP_SLOT,	 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_JMP_SLOT", FALSE, 0,MINUS_ONE,  FALSE),
-  HOWTO(R_390_RELATIVE,  0, 4, 64,  TRUE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_RELATIVE,	 0, 4, 64,  TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_RELATIVE", FALSE, 0,MINUS_ONE,  FALSE),
-  HOWTO(R_390_GOTOFF32,  0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_GOTOFF32,	 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GOTOFF32", FALSE, 0,MINUS_ONE,  FALSE),
-  HOWTO(R_390_GOTPC,     0, 4, 64,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_GOTPC",    FALSE, 0,MINUS_ONE,  TRUE),
-  HOWTO(R_390_GOT16,     0, 1, 16, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_GOT16",    FALSE, 0,0x0000ffff, FALSE),
-  HOWTO(R_390_PC16,      0, 1, 16,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PC16",     FALSE, 0,0x0000ffff, TRUE),
-  HOWTO(R_390_PC16DBL,   1, 1, 16,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PC16DBL",  FALSE, 0,0x0000ffff, TRUE),
-  HOWTO(R_390_PLT16DBL,  1, 1, 16,  TRUE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_GOTPC,	 0, 4, 64,  TRUE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_GOTPC",	 FALSE, 0,MINUS_ONE,  TRUE),
+  HOWTO(R_390_GOT16,	 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_GOT16",	 FALSE, 0,0x0000ffff, FALSE),
+  HOWTO(R_390_PC16,	 0, 1, 16,  TRUE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_PC16",	 FALSE, 0,0x0000ffff, TRUE),
+  HOWTO(R_390_PC16DBL,	 1, 1, 16,  TRUE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_PC16DBL",	 FALSE, 0,0x0000ffff, TRUE),
+  HOWTO(R_390_PLT16DBL,	 1, 1, 16,  TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_PLT16DBL", FALSE, 0,0x0000ffff, TRUE),
   HOWTO(R_390_PC32DBL,	 1, 2, 32,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PC32DBL",  FALSE, 0,0xffffffff, TRUE),
+	bfd_elf_generic_reloc, "R_390_PC32DBL",	 FALSE, 0,0xffffffff, TRUE),
   HOWTO(R_390_PLT32DBL,	 1, 2, 32,  TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_PLT32DBL", FALSE, 0,0xffffffff, TRUE),
-  HOWTO(R_390_GOTPCDBL,  1, 2, 32,  TRUE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_GOTPCDBL,	 1, 2, 32,  TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GOTPCDBL", FALSE, 0,MINUS_ONE,  TRUE),
-  HOWTO(R_390_64,        0, 4, 64, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_64",       FALSE, 0,MINUS_ONE,  FALSE),
+  HOWTO(R_390_64,	 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_64",	 FALSE, 0,MINUS_ONE,  FALSE),
   HOWTO(R_390_PC64,	 0, 4, 64,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PC64",     FALSE, 0,MINUS_ONE,  TRUE),
+	bfd_elf_generic_reloc, "R_390_PC64",	 FALSE, 0,MINUS_ONE,  TRUE),
   HOWTO(R_390_GOT64,	 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_GOT64",    FALSE, 0,MINUS_ONE,  FALSE),
+	bfd_elf_generic_reloc, "R_390_GOT64",	 FALSE, 0,MINUS_ONE,  FALSE),
   HOWTO(R_390_PLT64,	 0, 4, 64,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PLT64",    FALSE, 0,MINUS_ONE,  TRUE),
+	bfd_elf_generic_reloc, "R_390_PLT64",	 FALSE, 0,MINUS_ONE,  TRUE),
   HOWTO(R_390_GOTENT,	 1, 2, 32,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_GOTENT",   FALSE, 0,MINUS_ONE,  TRUE),
-  HOWTO(R_390_GOTOFF16,  0, 1, 16, FALSE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_GOTENT",	 FALSE, 0,MINUS_ONE,  TRUE),
+  HOWTO(R_390_GOTOFF16,	 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GOTOFF16", FALSE, 0,0x0000ffff, FALSE),
-  HOWTO(R_390_GOTOFF64,  0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_GOTOFF64,	 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GOTOFF64", FALSE, 0,MINUS_ONE,  FALSE),
   HOWTO(R_390_GOTPLT12,	 0, 1, 12, FALSE, 0, complain_overflow_dont,
 	bfd_elf_generic_reloc, "R_390_GOTPLT12", FALSE, 0,0x00000fff, FALSE),
-  HOWTO(R_390_GOTPLT16,  0, 1, 16, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_GOTPLT16,	 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GOTPLT16", FALSE, 0,0x0000ffff, FALSE),
   HOWTO(R_390_GOTPLT32,	 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GOTPLT32", FALSE, 0,0xffffffff, FALSE),
@@ -121,11 +122,11 @@ static reloc_howto_type elf_howto_table[
 	bfd_elf_generic_reloc, "R_390_GOTPLT64", FALSE, 0,MINUS_ONE,  FALSE),
   HOWTO(R_390_GOTPLTENT, 1, 2, 32,  TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_GOTPLTENT",FALSE, 0,MINUS_ONE,  TRUE),
-  HOWTO(R_390_PLTOFF16,  0, 1, 16, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_PLTOFF16,	 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_PLTOFF16", FALSE, 0,0x0000ffff, FALSE),
-  HOWTO(R_390_PLTOFF32,  0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_PLTOFF32,	 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_PLTOFF32", FALSE, 0,0xffffffff, FALSE),
-  HOWTO(R_390_PLTOFF64,  0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_PLTOFF64,	 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_PLTOFF64", FALSE, 0,MINUS_ONE,  FALSE),
   HOWTO(R_390_TLS_LOAD, 0, 0, 0, FALSE, 0, complain_overflow_dont,
 	s390_tls_reloc, "R_390_TLS_LOAD", FALSE, 0, 0, FALSE),
@@ -134,7 +135,7 @@ static reloc_howto_type elf_howto_table[
   HOWTO(R_390_TLS_LDCALL, 0, 0, 0, FALSE, 0, complain_overflow_dont,
 	s390_tls_reloc, "R_390_TLS_LDCALL", FALSE, 0, 0, FALSE),
   EMPTY_HOWTO (R_390_TLS_GD32),	/* Empty entry for R_390_TLS_GD32.  */
-  HOWTO(R_390_TLS_GD64,  0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_TLS_GD64,	 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_TLS_GD64", FALSE, 0, MINUS_ONE, FALSE),
   HOWTO(R_390_TLS_GOTIE12, 0, 1, 12, FALSE, 0, complain_overflow_dont,
 	bfd_elf_generic_reloc, "R_390_TLS_GOTIE12", FALSE, 0, 0x00000fff, FALSE),
@@ -145,12 +146,12 @@ static reloc_howto_type elf_howto_table[
   HOWTO(R_390_TLS_LDM64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_TLS_LDM64", FALSE, 0, MINUS_ONE, FALSE),
   EMPTY_HOWTO (R_390_TLS_IE32),	/* Empty entry for R_390_TLS_IE32.  */
-  HOWTO(R_390_TLS_IE64,  0, 4, 64, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_TLS_IE64,	 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_TLS_IE64", FALSE, 0, MINUS_ONE, FALSE),
   HOWTO(R_390_TLS_IEENT, 1, 2, 32, TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_TLS_IEENT", FALSE, 0, MINUS_ONE, TRUE),
   EMPTY_HOWTO (R_390_TLS_LE32),	/* Empty entry for R_390_TLS_LE32.  */
-  HOWTO(R_390_TLS_LE64,  0, 2, 32, FALSE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_TLS_LE64,	 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_TLS_LE64", FALSE, 0, MINUS_ONE, FALSE),
   EMPTY_HOWTO (R_390_TLS_LDO32),	/* Empty entry for R_390_TLS_LDO32.  */
   HOWTO(R_390_TLS_LDO64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
@@ -161,23 +162,23 @@ static reloc_howto_type elf_howto_table[
 	bfd_elf_generic_reloc, "R_390_TLS_DTPOFF", FALSE, 0, MINUS_ONE, FALSE),
   HOWTO(R_390_TLS_TPOFF, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_TLS_TPOFF", FALSE, 0, MINUS_ONE, FALSE),
-  HOWTO(R_390_20,        0, 2, 20, FALSE, 8, complain_overflow_dont,
+  HOWTO(R_390_20,	 0, 2, 20, FALSE, 8, complain_overflow_dont,
 	s390_elf_ldisp_reloc, "R_390_20",      FALSE, 0,0x0fffff00, FALSE),
   HOWTO(R_390_GOT20,	 0, 2, 20, FALSE, 8, complain_overflow_dont,
 	s390_elf_ldisp_reloc, "R_390_GOT20",   FALSE, 0,0x0fffff00, FALSE),
-  HOWTO(R_390_GOTPLT20,  0, 2, 20, FALSE, 8, complain_overflow_dont,
+  HOWTO(R_390_GOTPLT20,	 0, 2, 20, FALSE, 8, complain_overflow_dont,
 	s390_elf_ldisp_reloc, "R_390_GOTPLT20", FALSE, 0,0x0fffff00, FALSE),
   HOWTO(R_390_TLS_GOTIE20, 0, 2, 20, FALSE, 8, complain_overflow_dont,
 	s390_elf_ldisp_reloc, "R_390_TLS_GOTIE20", FALSE, 0,0x0fffff00, FALSE),
   HOWTO(R_390_IRELATIVE, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_IRELATIVE", FALSE, 0, MINUS_ONE, FALSE),
-  HOWTO(R_390_PC12DBL,   1, 1, 12,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PC12DBL",  FALSE, 0,0x00000fff, TRUE),
-  HOWTO(R_390_PLT12DBL,  1, 1, 12,  TRUE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_PC12DBL,	 1, 1, 12,  TRUE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_PC12DBL",	 FALSE, 0,0x00000fff, TRUE),
+  HOWTO(R_390_PLT12DBL,	 1, 1, 12,  TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_PLT12DBL", FALSE, 0,0x00000fff, TRUE),
-  HOWTO(R_390_PC24DBL,   1, 2, 24,  TRUE, 0, complain_overflow_bitfield,
-	bfd_elf_generic_reloc, "R_390_PC24DBL",  FALSE, 0,0x00ffffff, TRUE),
-  HOWTO(R_390_PLT24DBL,  1, 2, 24,  TRUE, 0, complain_overflow_bitfield,
+  HOWTO(R_390_PC24DBL,	 1, 2, 24,  TRUE, 0, complain_overflow_bitfield,
+	bfd_elf_generic_reloc, "R_390_PC24DBL",	 FALSE, 0,0x00ffffff, TRUE),
+  HOWTO(R_390_PLT24DBL,	 1, 2, 24,  TRUE, 0, complain_overflow_bitfield,
 	bfd_elf_generic_reloc, "R_390_PLT24DBL", FALSE, 0,0x00ffffff, TRUE),
 };
 
@@ -500,12 +501,12 @@ elf_s390_is_local_label_name (bfd *abfd,
    and insert the address in the GOT.
 
    PLT1: LARL 1,<fn>@GOTENT # 6 bytes  Load address of GOT entry in r1
-         LG   1,0(1)      # 6 bytes  Load address from GOT in r1
-         BCR  15,1        # 2 bytes  Jump to address
-   RET1: BASR 1,0         # 2 bytes  Return from GOT 1st time
-         LGF  1,12(1)     # 6 bytes  Load offset in symbl table in r1
-         BRCL 15,-x       # 6 bytes  Jump to start of PLT
-         .long ?          # 4 bytes  offset into .rela.plt
+	 LG   1,0(1)	  # 6 bytes  Load address from GOT in r1
+	 BCR  15,1	  # 2 bytes  Jump to address
+   RET1: BASR 1,0	  # 2 bytes  Return from GOT 1st time
+	 LGF  1,12(1)	  # 6 bytes  Load offset in symbl table in r1
+	 BRCL 15,-x	  # 6 bytes  Jump to start of PLT
+	 .long ?	  # 4 bytes  offset into .rela.plt
 
    Total = 32 bytes per PLT entry
    Fixup at offset 2: relative address to GOT entry
@@ -520,13 +521,13 @@ elf_s390_is_local_label_name (bfd *abfd,
 
 static const bfd_byte elf_s390x_plt_entry[PLT_ENTRY_SIZE] =
   {
-    0xc0, 0x10, 0x00, 0x00, 0x00, 0x00,     /* larl    %r1,.       */
-    0xe3, 0x10, 0x10, 0x00, 0x00, 0x04,     /* lg      %r1,0(%r1)  */
-    0x07, 0xf1,                             /* br      %r1         */
-    0x0d, 0x10,                             /* basr    %r1,%r0     */
-    0xe3, 0x10, 0x10, 0x0c, 0x00, 0x14,     /* lgf     %r1,12(%r1) */
-    0xc0, 0xf4, 0x00, 0x00, 0x00, 0x00,     /* jg      first plt   */
-    0x00, 0x00, 0x00, 0x00                  /* .long   0x00000000  */
+    0xc0, 0x10, 0x00, 0x00, 0x00, 0x00,	    /* larl    %r1,.	   */
+    0xe3, 0x10, 0x10, 0x00, 0x00, 0x04,	    /* lg      %r1,0(%r1)  */
+    0x07, 0xf1,				    /* br      %r1	   */
+    0x0d, 0x10,				    /* basr    %r1,%r0	   */
+    0xe3, 0x10, 0x10, 0x0c, 0x00, 0x14,	    /* lgf     %r1,12(%r1) */
+    0xc0, 0xf4, 0x00, 0x00, 0x00, 0x00,	    /* jg      first plt   */
+    0x00, 0x00, 0x00, 0x00		    /* .long   0x00000000  */
   };
 
 /* The first PLT entry pushes the offset into the symbol table
@@ -546,14 +547,14 @@ static const bfd_byte elf_s390x_plt_entr
 
 static const bfd_byte elf_s390x_first_plt_entry[PLT_FIRST_ENTRY_SIZE] =
   {
-    0xe3, 0x10, 0xf0, 0x38, 0x00, 0x24,     /* stg     %r1,56(%r15)      */
-    0xc0, 0x10, 0x00, 0x00, 0x00, 0x00,     /* larl    %r1,.             */
-    0xd2, 0x07, 0xf0, 0x30, 0x10, 0x08,     /* mvc     48(8,%r15),8(%r1) */
-    0xe3, 0x10, 0x10, 0x10, 0x00, 0x04,     /* lg      %r1,16(%r1)       */
-    0x07, 0xf1,                             /* br      %r1               */
-    0x07, 0x00,                             /* nopr    %r0               */
-    0x07, 0x00,                             /* nopr    %r0               */
-    0x07, 0x00                              /* nopr    %r0               */
+    0xe3, 0x10, 0xf0, 0x38, 0x00, 0x24,	    /* stg     %r1,56(%r15)	 */
+    0xc0, 0x10, 0x00, 0x00, 0x00, 0x00,	    /* larl    %r1,.		 */
+    0xd2, 0x07, 0xf0, 0x30, 0x10, 0x08,	    /* mvc     48(8,%r15),8(%r1) */
+    0xe3, 0x10, 0x10, 0x10, 0x00, 0x04,	    /* lg      %r1,16(%r1)	 */
+    0x07, 0xf1,				    /* br      %r1		 */
+    0x07, 0x00,				    /* nopr    %r0		 */
+    0x07, 0x00,				    /* nopr    %r0		 */
+    0x07, 0x00				    /* nopr    %r0		 */
   };
 
 
@@ -660,6 +661,9 @@ struct elf_s390_link_hash_table
 
   /* Small local sym cache.  */
   struct sym_cache sym_cache;
+
+  /* Options passed from the linker.  */
+  struct s390_elf_params *params;
 };
 
 /* Get the s390 ELF linker hash table from a link_info structure.  */
@@ -859,7 +863,7 @@ elf_s390_check_relocs (bfd *abfd,
   for (rel = relocs; rel < rel_end; rel++)
     {
       unsigned int r_type;
-      unsigned long r_symndx;
+      unsigned int r_symndx;
       struct elf_link_hash_entry *h;
       Elf_Internal_Sym *isym;
 
@@ -908,10 +912,6 @@ elf_s390_check_relocs (bfd *abfd,
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       /* Create got section and local_got_refcounts array if they
@@ -1329,186 +1329,6 @@ elf_s390_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-/* Update the got entry reference counts for the section being removed.  */
-
-static bfd_boolean
-elf_s390_gc_sweep_hook (bfd *abfd,
-			struct bfd_link_info *info,
-			asection *sec,
-			const Elf_Internal_Rela *relocs)
-{
-  struct elf_s390_link_hash_table *htab;
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  htab = elf_s390_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  symtab_hdr = &elf_symtab_hdr (abfd);
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      unsigned int r_type;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = ELF64_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  struct elf_s390_link_hash_entry *eh;
-	  struct elf_dyn_relocs **pp;
-	  struct elf_dyn_relocs *p;
-
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	  eh = (struct elf_s390_link_hash_entry *) h;
-
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next)
-	    if (p->sec == sec)
-	      {
-		/* Everything must go for SEC.  */
-		*pp = p->next;
-		break;
-	      }
-	}
-      else
-	{
-	  Elf_Internal_Sym *isym;
-
-	  /* A local symbol.  */
-	  isym = bfd_sym_from_r_symndx (&htab->sym_cache,
-					abfd, r_symndx);
-	  if (isym == NULL)
-	    return FALSE;
-
-	  if (ELF_ST_TYPE (isym->st_info) == STT_GNU_IFUNC)
-	    {
-	      struct plt_entry *plt = elf_s390_local_plt (abfd);
-	      if (plt[r_symndx].plt.refcount > 0)
-		plt[r_symndx].plt.refcount--;
-	    }
-	}
-
-      r_type = ELF64_R_TYPE (rel->r_info);
-      r_type = elf_s390_tls_transition (info, r_type, h != NULL);
-      switch (r_type)
-	{
-	case R_390_TLS_LDM64:
-	  if (htab->tls_ldm_got.refcount > 0)
-	    htab->tls_ldm_got.refcount -= 1;
-	  break;
-	case R_390_GOTOFF16:
-	case R_390_GOTOFF32:
-	case R_390_GOTOFF64:
-	  if (h != NULL && s390_is_ifunc_symbol_p (h) && h->def_regular)
-	    {
-	      h->plt.refcount--;
-	      break;
-	    }
-
-	case R_390_GOTPC:
-	case R_390_GOTPCDBL:
-	  break;
-
-	case R_390_TLS_GD64:
-	case R_390_TLS_IE64:
-	case R_390_TLS_GOTIE12:
-	case R_390_TLS_GOTIE20:
-	case R_390_TLS_GOTIE64:
-	case R_390_TLS_IEENT:
-	case R_390_GOT12:
-	case R_390_GOT16:
-	case R_390_GOT20:
-	case R_390_GOT32:
-	case R_390_GOT64:
-	case R_390_GOTENT:
-	  if (h != NULL)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount -= 1;
-	    }
-	  else if (local_got_refcounts != NULL)
-	    {
-	      if (local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx] -= 1;
-	    }
-	  break;
-
-	case R_390_8:
-	case R_390_12:
-	case R_390_16:
-	case R_390_20:
-	case R_390_32:
-	case R_390_64:
-	case R_390_PC16:
-	case R_390_PC12DBL:
-	case R_390_PC16DBL:
-	case R_390_PC24DBL:
-	case R_390_PC32:
-	case R_390_PC32DBL:
-	case R_390_PC64:
-	  if (bfd_link_pic (info))
-	    break;
-	  /* Fall through */
-
-	case R_390_PLT12DBL:
-	case R_390_PLT16DBL:
-	case R_390_PLT24DBL:
-	case R_390_PLT32:
-	case R_390_PLT32DBL:
-	case R_390_PLT64:
-	case R_390_PLTOFF16:
-	case R_390_PLTOFF32:
-	case R_390_PLTOFF64:
-	  if (h != NULL)
-	    {
-	      if (h->plt.refcount > 0)
-		h->plt.refcount -= 1;
-	    }
-	  break;
-
-	case R_390_GOTPLT12:
-	case R_390_GOTPLT16:
-	case R_390_GOTPLT20:
-	case R_390_GOTPLT32:
-	case R_390_GOTPLT64:
-	case R_390_GOTPLTENT:
-	  if (h != NULL)
-	    {
-	      if (h->plt.refcount > 0)
-		{
-		  ((struct elf_s390_link_hash_entry *) h)->gotplt_refcount--;
-		  h->plt.refcount -= 1;
-		}
-	    }
-	  else if (local_got_refcounts != NULL)
-	    {
-	      if (local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx] -= 1;
-	    }
-	  break;
-
-	default:
-	  break;
-	}
-    }
-
-  return TRUE;
-}
-
 /* Make sure we emit a GOT entry if the symbol was supposed to have a PLT
    entry but we found we will not create any.  Called when we find we will
    not have any PLT for this symbol, by for example
@@ -1531,6 +1351,23 @@ elf_s390_adjust_gotplt (struct elf_s390_
   h->gotplt_refcount = -1;
 }
 
+/* Find dynamic relocs for H that apply to read-only sections.  */
+
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
+
+  for (p = elf_s390_hash_entry (h)->dyn_relocs; p != NULL; p = p->next)
+    {
+      asection *s = p->sec->output_section;
+
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
+    }
+  return NULL;
+}
+
 /* Adjust a symbol defined by a dynamic object and referenced by a
    regular object.  The current definition is in some section of the
    dynamic object, but we're not including those sections.  We have to
@@ -1596,8 +1433,7 @@ elf_s390_adjust_dynamic_symbol (struct b
     {
       if (h->plt.refcount <= 0
 	  || SYMBOL_CALLS_LOCAL (info, h)
-	  || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
-	      && h->root.type == bfd_link_hash_undefweak))
+	  || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	{
 	  /* This case can occur if we saw a PLT32 reloc in an input
 	     file, but the symbol was never referred to by a dynamic
@@ -1622,14 +1458,14 @@ elf_s390_adjust_dynamic_symbol (struct b
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       if (ELIMINATE_COPY_RELOCS || info->nocopyreloc)
-	h->non_got_ref = h->u.weakdef->non_got_ref;
+	h->non_got_ref = def->non_got_ref;
       return TRUE;
     }
 
@@ -1655,26 +1491,12 @@ elf_s390_adjust_dynamic_symbol (struct b
       return TRUE;
     }
 
-  if (ELIMINATE_COPY_RELOCS)
+  /* If we don't find any dynamic relocs in read-only sections, then
+     we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
+  if (ELIMINATE_COPY_RELOCS && !readonly_dynrelocs (h))
     {
-      struct elf_s390_link_hash_entry * eh;
-      struct elf_dyn_relocs *p;
-
-      eh = (struct elf_s390_link_hash_entry *) h;
-      for (p = eh->dyn_relocs; p != NULL; p = p->next)
-	{
-	  s = p->sec->output_section;
-	  if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	    break;
-	}
-
-      /* If we didn't find any dynamic relocs in read-only sections, then
-	 we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
-      if (p == NULL)
-	{
-	  h->non_got_ref = 0;
-	  return TRUE;
-	}
+      h->non_got_ref = 0;
+      return TRUE;
     }
 
   /* We must allocate the symbol in our .dynbss section, which will
@@ -1846,8 +1668,7 @@ allocate_dynrelocs (struct elf_link_hash
 	htab->elf.srelgot->size += sizeof (Elf64_External_Rela);
       else if (tls_type == GOT_TLS_GD)
 	htab->elf.srelgot->size += 2 * sizeof (Elf64_External_Rela);
-      else if ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-		|| h->root.type != bfd_link_hash_undefweak)
+      else if (!UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)
 	       && (bfd_link_pic (info)
 		   || WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, 0, h)))
 	htab->elf.srelgot->size += sizeof (Elf64_External_Rela);
@@ -1886,7 +1707,8 @@ allocate_dynrelocs (struct elf_link_hash
       if (eh->dyn_relocs != NULL
 	  && h->root.type == bfd_link_hash_undefweak)
 	{
-	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
+	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+	      || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	    eh->dyn_relocs = NULL;
 
 	  /* Make sure undefined weak symbols are output as a dynamic
@@ -1942,28 +1764,29 @@ allocate_dynrelocs (struct elf_link_hash
   return TRUE;
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (struct elf_link_hash_entry *h, void * inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct elf_s390_link_hash_entry *eh;
-  struct elf_dyn_relocs *p;
+  asection *sec;
 
-  eh = (struct elf_s390_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection *s = p->sec->output_section;
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	{
-	  struct bfd_link_info *info = (struct bfd_link_info *) inf;
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
+    {
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-	  info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
-	  /* Not an error, just cut short the traversal.  */
-	  return FALSE;
-	}
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -2195,8 +2018,7 @@ elf_s390_size_dynamic_sections (bfd *out
 	  /* If any dynamic relocs apply to a read-only section,
 	     then we need a DT_TEXTREL entry.  */
 	  if ((info->flags & DF_TEXTREL) == 0)
-	    elf_link_hash_traverse (&htab->elf, readonly_dynrelocs,
-				    info);
+	    elf_link_hash_traverse (&htab->elf, maybe_set_textrel, info);
 
 	  if ((info->flags & DF_TEXTREL) != 0)
 	    {
@@ -2250,10 +2072,10 @@ invalid_tls_insn (bfd *input_bfd,
   howto = elf_howto_table + ELF64_R_TYPE (rel->r_info);
   _bfd_error_handler
     /* xgettext:c-format */
-    (_("%B(%A+0x%lx): invalid instruction for TLS relocation %s"),
+    (_("%B(%A+%#Lx): invalid instruction for TLS relocation %s"),
      input_bfd,
      input_section,
-     (long) rel->r_offset,
+     rel->r_offset,
      howto->name);
   bfd_set_error (bfd_error_bad_value);
 }
@@ -2303,6 +2125,7 @@ elf_s390_relocate_section (bfd *output_b
       bfd_reloc_status_type r;
       int tls_type;
       asection *base_got = htab->elf.sgot;
+      bfd_boolean resolved_to_zero;
 
       r_type = ELF64_R_TYPE (rel->r_info);
       if (r_type == (int) R_390_GNU_VTINHERIT
@@ -2398,6 +2221,9 @@ elf_s390_relocate_section (bfd *output_b
       if (bfd_link_relocatable (info))
 	continue;
 
+      resolved_to_zero = (h != NULL
+			  && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h));
+
       switch (r_type)
 	{
 	case R_390_GOTPLT12:
@@ -2485,8 +2311,7 @@ elf_s390_relocate_section (bfd *output_b
 							  h)
 		       || (bfd_link_pic (info)
 			   && SYMBOL_REFERENCES_LOCAL (info, h))
-		       || (ELF_ST_VISIBILITY (h->other)
-			   && h->root.type == bfd_link_hash_undefweak))
+		       || resolved_to_zero)
 		{
 		  /* This is actually a static link, or it is a
 		     -Bsymbolic link and the symbol is defined
@@ -2737,10 +2562,11 @@ elf_s390_relocate_section (bfd *output_b
 	      && s390_is_ifunc_symbol_p (h)
 	      && h->def_regular)
 	    {
-	      if (!bfd_link_pic (info) || !h->non_got_ref)
+	      if (!bfd_link_pic (info))
 		{
-		  /* For a non-shared object STT_GNU_IFUNC symbol must
-		     go through PLT.  */
+		  /* For a non-shared object the symbol will not
+		     change.  Hence we can write the address of the
+		     target IPLT slot now.  */
 		  relocation = (htab->elf.iplt->output_section->vma
 				+ htab->elf.iplt->output_offset
 				+ h ->plt.offset);
@@ -2799,7 +2625,8 @@ elf_s390_relocate_section (bfd *output_b
 
 	  if ((bfd_link_pic (info)
 	       && (h == NULL
-		   || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		   || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		       && !resolved_to_zero)
 		   || h->root.type != bfd_link_hash_undefweak)
 	       && ((r_type != R_390_PC16
 		    && r_type != R_390_PC12DBL
@@ -3016,7 +2843,7 @@ elf_s390_relocate_section (bfd *output_b
 		{
 		  if (indx == 0)
 		    {
-	    	      BFD_ASSERT (! unresolved_reloc);
+		      BFD_ASSERT (! unresolved_reloc);
 		      bfd_put_64 (output_bfd,
 				  relocation - dtpoff_base (info),
 				  htab->elf.sgot->contents + off + GOT_ENTRY_SIZE);
@@ -3196,8 +3023,10 @@ elf_s390_relocate_section (bfd *output_b
 		  insn0 = bfd_get_32 (input_bfd, contents + rel->r_offset);
 		  insn1 = bfd_get_16 (input_bfd, contents + rel->r_offset + 4);
 		  if (insn1 != 0x0004)
-		    invalid_tls_insn (input_bfd, input_section, rel);
-		  ry = 0;
+		    {
+		      invalid_tls_insn (input_bfd, input_section, rel);
+		      return FALSE;
+		    }
 		  if ((insn0 & 0xff00f000) == 0xe3000000)
 		    /* lg %rx,0(%ry,0) -> sllg %rx,%ry,0  */
 		    ry = (insn0 & 0x000f0000);
@@ -3211,7 +3040,10 @@ elf_s390_relocate_section (bfd *output_b
 		    /* lg %rx,0(%r12,%ry) -> sllg %rx,%ry,0  */
 		    ry = (insn0 & 0x0000f000) << 4;
 		  else
-		    invalid_tls_insn (input_bfd, input_section, rel);
+		    {
+		      invalid_tls_insn (input_bfd, input_section, rel);
+		      return FALSE;
+		    }
 		  insn0 = 0xeb000000 | (insn0 & 0x00f00000) | ry;
 		  insn1 = 0x000d;
 		  bfd_put_32 (output_bfd, insn0, contents + rel->r_offset);
@@ -3225,7 +3057,10 @@ elf_s390_relocate_section (bfd *output_b
 	      insn0 = bfd_get_32 (input_bfd, contents + rel->r_offset);
 	      insn1 = bfd_get_16 (input_bfd, contents + rel->r_offset + 4);
 	      if ((insn0 & 0xffff0000) != 0xc0e50000)
-		invalid_tls_insn (input_bfd, input_section, rel);
+		{
+		  invalid_tls_insn (input_bfd, input_section, rel);
+		  return FALSE;
+		}
 	      if (!bfd_link_pic (info) && (h == NULL || h->dynindx == -1))
 		{
 		  /* GD->LE transition.
@@ -3252,7 +3087,10 @@ elf_s390_relocate_section (bfd *output_b
 		  insn0 = bfd_get_32 (input_bfd, contents + rel->r_offset);
 		  insn1 = bfd_get_16 (input_bfd, contents + rel->r_offset + 4);
 		  if ((insn0 & 0xffff0000) != 0xc0e50000)
-		    invalid_tls_insn (input_bfd, input_section, rel);
+		    {
+		      invalid_tls_insn (input_bfd, input_section, rel);
+		      return FALSE;
+		    }
 		  /* LD->LE transition.
 		     brasl %r14,__tls_get_addr@plt -> brcl 0,. */
 		  insn0 = 0xc0040000;
@@ -3277,10 +3115,10 @@ elf_s390_relocate_section (bfd *output_b
 				      rel->r_offset) != (bfd_vma) -1)
 	_bfd_error_handler
 	  /* xgettext:c-format */
-	  (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+	  (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
 	   input_bfd,
 	   input_section,
-	   (long) rel->r_offset,
+	   rel->r_offset,
 	   howto->name,
 	   h->root.root.string);
 
@@ -3334,9 +3172,9 @@ elf_s390_relocate_section (bfd *output_b
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B(%A+0x%lx): reloc against `%s': error %d"),
+		(_("%B(%A+%#Lx): reloc against `%s': error %d"),
 		 input_bfd, input_section,
-		 (long) rel->r_offset, name, (int) r);
+		 rel->r_offset, name, (int) r);
 	      return FALSE;
 	    }
 	}
@@ -3576,6 +3414,9 @@ elf_s390_finish_dynamic_symbol (bfd *out
       else if (bfd_link_pic (info)
 	       && SYMBOL_REFERENCES_LOCAL (info, h))
 	{
+	  if (UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
+	    return TRUE;
+
 	  /* If this is a static link, or it is a -Bsymbolic link and
 	     the symbol is defined locally or was forced to be local
 	     because of a version file, we just want to emit a
@@ -3729,7 +3570,9 @@ elf_s390_finish_dynamic_sections (bfd *o
 	      break;
 
 	    case DT_PLTRELSZ:
-	      dyn.d_un.d_val = htab->elf.srelplt->size + htab->elf.irelplt->size;
+	      dyn.d_un.d_val = htab->elf.srelplt->size;
+	      if (htab->elf.irelplt)
+		dyn.d_un.d_val += htab->elf.irelplt->size;
 	      break;
 
 	    case DT_RELASZ:
@@ -3740,7 +3583,9 @@ elf_s390_finish_dynamic_sections (bfd *o
 		 linker script arranges for .rela.plt to follow all
 		 other relocation sections, we don't have to worry
 		 about changing the DT_RELA entry.  */
-	      dyn.d_un.d_val -= htab->elf.srelplt->size + htab->elf.irelplt->size;
+	      dyn.d_un.d_val -= htab->elf.srelplt->size;
+	      if (htab->elf.irelplt)
+		dyn.d_un.d_val -= htab->elf.irelplt->size;
 	      break;
 	    }
 
@@ -3794,6 +3639,9 @@ elf_s390_finish_dynamic_sections (bfd *o
 
       symtab_hdr = &elf_symtab_hdr (ibfd);
 
+      if (!is_s390_elf (ibfd))
+	continue;
+
       local_plt = elf_s390_local_plt (ibfd);
       if (local_plt != NULL)
 	for (i = 0; i < symtab_hdr->sh_info; i++)
@@ -3954,6 +3802,81 @@ elf64_s390_merge_private_bfd_data (bfd *
   return elf_s390_merge_obj_attributes (ibfd, info);
 }
 
+/* We may add a PT_S390_PGSTE program header.  */
+
+static int
+elf_s390_additional_program_headers (bfd *abfd ATTRIBUTE_UNUSED,
+				     struct bfd_link_info *info)
+{
+  struct elf_s390_link_hash_table *htab;
+
+  if (info)
+    {
+      htab = elf_s390_hash_table (info);
+      if (htab)
+	return htab->params->pgste;
+    }
+  return 0;
+}
+
+
+/* Add the PT_S390_PGSTE program header.  */
+
+static bfd_boolean
+elf_s390_modify_segment_map (bfd *abfd, struct bfd_link_info *info)
+{
+  struct elf_s390_link_hash_table *htab;
+  struct elf_segment_map *m, *pm = NULL;
+
+  if (!abfd || !info)
+    return TRUE;
+
+  htab = elf_s390_hash_table (info);
+  if (!htab || !htab->params->pgste)
+    return TRUE;
+
+  /* If there is already a PT_S390_PGSTE header, avoid adding
+     another.  */
+  m = elf_seg_map (abfd);
+  while (m && m->p_type != PT_S390_PGSTE)
+    {
+      pm = m;
+      m = m->next;
+    }
+
+  if (m)
+    return TRUE;
+
+  m = (struct elf_segment_map *)
+    bfd_zalloc (abfd, sizeof (struct elf_segment_map));
+  if (m == NULL)
+    return FALSE;
+  m->p_type = PT_S390_PGSTE;
+  m->count = 0;
+  m->next = NULL;
+  if (pm)
+    pm->next = m;
+
+  return TRUE;
+}
+
+bfd_boolean
+bfd_elf_s390_set_options (struct bfd_link_info *info,
+			  struct s390_elf_params *params)
+{
+  struct elf_s390_link_hash_table *htab;
+
+  if (info)
+    {
+      htab = elf_s390_hash_table (info);
+      if (htab)
+	htab->params = params;
+    }
+
+  return TRUE;
+}
+
+
 /* Why was the hash table entry size definition changed from
    ARCH_SIZE/8 to 4? This breaks the 64 bit dynamic linker and
    this is the only reason for the s390_elf64_size_info structure.  */
@@ -4013,7 +3936,7 @@ const struct elf_size_info s390_elf64_si
 #define bfd_elf64_bfd_is_local_label_name     elf_s390_is_local_label_name
 #define bfd_elf64_bfd_link_hash_table_create  elf_s390_link_hash_table_create
 #define bfd_elf64_bfd_reloc_type_lookup	      elf_s390_reloc_type_lookup
-#define bfd_elf64_bfd_reloc_name_lookup       elf_s390_reloc_name_lookup
+#define bfd_elf64_bfd_reloc_name_lookup	      elf_s390_reloc_name_lookup
 #define bfd_elf64_bfd_merge_private_bfd_data  elf64_s390_merge_private_bfd_data
 
 #define elf_backend_adjust_dynamic_symbol     elf_s390_adjust_dynamic_symbol
@@ -4023,7 +3946,6 @@ const struct elf_size_info s390_elf64_si
 #define elf_backend_finish_dynamic_sections   elf_s390_finish_dynamic_sections
 #define elf_backend_finish_dynamic_symbol     elf_s390_finish_dynamic_symbol
 #define elf_backend_gc_mark_hook	      elf_s390_gc_mark_hook
-#define elf_backend_gc_sweep_hook	      elf_s390_gc_sweep_hook
 #define elf_backend_reloc_type_class	      elf_s390_reloc_type_class
 #define elf_backend_relocate_section	      elf_s390_relocate_section
 #define elf_backend_size_dynamic_sections     elf_s390_size_dynamic_sections
@@ -4032,8 +3954,10 @@ const struct elf_size_info s390_elf64_si
 #define elf_backend_grok_psinfo		      elf_s390_grok_psinfo
 #define elf_backend_write_core_note	      elf_s390_write_core_note
 #define elf_backend_plt_sym_val		      elf_s390_plt_sym_val
-#define elf_backend_add_symbol_hook           elf_s390_add_symbol_hook
-#define elf_backend_sort_relocs_p             elf_s390_elf_sort_relocs_p
+#define elf_backend_add_symbol_hook	      elf_s390_add_symbol_hook
+#define elf_backend_sort_relocs_p	      elf_s390_elf_sort_relocs_p
+#define elf_backend_additional_program_headers elf_s390_additional_program_headers
+#define elf_backend_modify_segment_map	      elf_s390_modify_segment_map
 
 #define bfd_elf64_mkobject		elf_s390_mkobject
 #define elf_backend_object_p		elf_s390_object_p
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-sh64.c ./bfd/elf64-sh64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-sh64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-sh64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* SuperH SH64-specific support for 64-bit ELF
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -269,33 +269,33 @@ static reloc_howto_type sh_elf64_howto_t
 
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_SH_GNU_VTINHERIT, /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         NULL,                  /* special_function */
-         "R_SH_GNU_VTINHERIT", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 NULL,			/* special_function */
+	 "R_SH_GNU_VTINHERIT", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
   HOWTO (R_SH_GNU_VTENTRY,     /* type */
-         0,                     /* rightshift */
-         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
-         "R_SH_GNU_VTENTRY",   /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 _bfd_elf_rel_vtable_reloc_fn,	/* special_function */
+	 "R_SH_GNU_VTENTRY",   /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* For 32-bit sh, this is R_SH_LOOP_START.  */
   EMPTY_HOWTO (36),
@@ -324,7 +324,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xfc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in SHARI, SHLLI et al.  */
   HOWTO (R_SH_DIR6U,		/* type */
@@ -339,7 +339,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xfc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in BxxI, LDHI.L et al.  */
   HOWTO (R_SH_DIR6S,		/* type */
@@ -354,7 +354,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xfc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in ADDI, ANDI et al.  */
   HOWTO (R_SH_DIR10S,		/* type */
@@ -369,7 +369,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in LD.UW, ST.W et al.  */
   HOWTO (R_SH_DIR10SW,	/* type */
@@ -384,7 +384,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in LD.L, FLD.S et al.  */
   HOWTO (R_SH_DIR10SL,	/* type */
@@ -399,7 +399,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in FLD.D, FST.P et al.  */
   HOWTO (R_SH_DIR10SQ,	/* type */
@@ -414,7 +414,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   EMPTY_HOWTO (52),
   EMPTY_HOWTO (53),
@@ -548,11 +548,11 @@ static reloc_howto_type sh_elf64_howto_t
 	 10,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_SH_GOT_LOW16",    	/* name */
+	 "R_SH_GOT_LOW16",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_GOT_MEDLOW16,	/* type */
@@ -567,7 +567,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_GOT_MEDHI16,	/* type */
@@ -582,7 +582,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_GOT_HI16,		/* type */
@@ -597,7 +597,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_GOTPLT_LOW16,	/* type */
@@ -612,7 +612,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_GOTPLT_MEDLOW16,	/* type */
@@ -627,7 +627,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_GOTPLT_MEDHI16,	/* type */
@@ -642,7 +642,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_GOTPLT_HI16,	/* type */
@@ -657,7 +657,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_PLT_LOW16,	/* type */
@@ -668,11 +668,11 @@ static reloc_howto_type sh_elf64_howto_t
 	 10,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_SH_PLT_LOW16",    	/* name */
+	 "R_SH_PLT_LOW16",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 TRUE),		       	/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_PLT_MEDLOW16,	/* type */
@@ -687,7 +687,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 TRUE),		       	/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_PLT_MEDHI16,	/* type */
@@ -702,7 +702,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 TRUE),		       	/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_PLT_HI16,		/* type */
@@ -717,7 +717,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 TRUE),		       	/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_GOTOFF_LOW16,	/* type */
@@ -732,7 +732,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_GOTOFF_MEDLOW16,	/* type */
@@ -747,7 +747,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_GOTOFF_MEDHI16,	/* type */
@@ -762,7 +762,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_GOTOFF_HI16,	/* type */
@@ -777,7 +777,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_GOTPC_LOW16,	/* type */
@@ -792,7 +792,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 TRUE),		       	/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
   HOWTO (R_SH_GOTPC_MEDLOW16,	/* type */
@@ -807,7 +807,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 TRUE),		       	/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
   HOWTO (R_SH_GOTPC_MEDHI16,	/* type */
@@ -822,7 +822,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 TRUE),		       	/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
   HOWTO (R_SH_GOTPC_HI16,	/* type */
@@ -837,7 +837,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 TRUE),		       	/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   /* Used in LD.L, FLD.S et al.  */
   HOWTO (R_SH_GOT10BY4,		/* type */
@@ -852,7 +852,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in LD.L, FLD.S et al.  */
   HOWTO (R_SH_GOTPLT10BY4,	/* type */
@@ -867,7 +867,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in FLD.D, FST.P et al.  */
   HOWTO (R_SH_GOT10BY8,		/* type */
@@ -882,7 +882,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in FLD.D, FST.P et al.  */
   HOWTO (R_SH_GOTPLT10BY8,	/* type */
@@ -897,7 +897,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0xffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_SH_COPY64,		/* type */
 	 0,			/* rightshift */
@@ -907,11 +907,11 @@ static reloc_howto_type sh_elf64_howto_t
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_SH_COPY64", 	/* name */
+	 "R_SH_COPY64",		/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 ((bfd_vma) 0) - 1,	/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_SH_GLOB_DAT64,	/* type */
 	 0,			/* rightshift */
@@ -921,11 +921,11 @@ static reloc_howto_type sh_elf64_howto_t
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_SH_GLOB_DAT64", 	/* name */
+	 "R_SH_GLOB_DAT64",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 ((bfd_vma) 0) - 1,	/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_SH_JMP_SLOT64,	/* type */
 	 0,			/* rightshift */
@@ -935,11 +935,11 @@ static reloc_howto_type sh_elf64_howto_t
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_SH_JMP_SLOT64", 	/* name */
+	 "R_SH_JMP_SLOT64",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 ((bfd_vma) 0) - 1,	/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_SH_RELATIVE64,	/* type */
 	 0,			/* rightshift */
@@ -949,11 +949,11 @@ static reloc_howto_type sh_elf64_howto_t
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_SH_RELATIVE64", 	/* name */
+	 "R_SH_RELATIVE64",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 ((bfd_vma) 0) - 1,	/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   EMPTY_HOWTO (197),
   EMPTY_HOWTO (198),
@@ -1054,7 +1054,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in SHORI.  */
   HOWTO (R_SH_IMMU16,		/* type */
@@ -1069,7 +1069,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI (x & 65536).  */
   HOWTO (R_SH_IMM_LOW16,	/* type */
@@ -1080,11 +1080,11 @@ static reloc_howto_type sh_elf64_howto_t
 	 10,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_SH_IMM_LOW16",    	/* name */
+	 "R_SH_IMM_LOW16",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI ((x - $) & 65536).  */
   HOWTO (R_SH_IMM_LOW16_PCREL,	/* type */
@@ -1114,7 +1114,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI (((x - $) >> 16) & 65536).  */
   HOWTO (R_SH_IMM_MEDLOW16_PCREL, /* type */
@@ -1144,7 +1144,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI (((x - $) >> 32) & 65536).  */
   HOWTO (R_SH_IMM_MEDHI16_PCREL, /* type */
@@ -1174,7 +1174,7 @@ static reloc_howto_type sh_elf64_howto_t
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0x3fffc00,		/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* Used in MOVI and SHORI (((x - $) >> 48) & 65536).  */
   HOWTO (R_SH_IMM_HI16_PCREL,	/* type */
@@ -1200,11 +1200,11 @@ static reloc_howto_type sh_elf64_howto_t
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_SH_64", 		/* name */
+	 "R_SH_64",		/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 ((bfd_vma) 0) - 1,	/* dst_mask */
-	 FALSE),	       	/* pcrel_offset */
+	 FALSE),		/* pcrel_offset */
 
   /* For the .uaquad pseudo, (x - $).  */
   HOWTO (R_SH_64_PCREL,		/* type */
@@ -1536,15 +1536,15 @@ sh_elf64_relocate_section (bfd *output_b
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B(%A+0x%lx): %s relocation against SEC_MERGE section"),
+		    (_("%B(%A+%#Lx): %s relocation against SEC_MERGE section"),
 		     input_bfd, input_section,
-		     (long) rel->r_offset, howto->name);
+		     rel->r_offset, howto->name);
 		  return FALSE;
 		}
 
-              addend = bfd_get_32 (input_bfd, contents + rel->r_offset);
-              msec = sec;
-              addend =
+	      addend = bfd_get_32 (input_bfd, contents + rel->r_offset);
+	      msec = sec;
+	      addend =
 		_bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend)
 		- relocation;
 	      addend += msec->output_section->vma + msec->output_offset;
@@ -1633,10 +1633,10 @@ sh_elf64_relocate_section (bfd *output_b
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+		    (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
 		     input_bfd,
 		     input_section,
-		     (long) rel->r_offset,
+		     rel->r_offset,
 		     howto->name,
 		     h->root.root.string);
 		}
@@ -1677,9 +1677,9 @@ sh_elf64_relocate_section (bfd *output_b
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: error: unaligned relocation type %d at %08x reloc %08x\n"),
-	     input_bfd, (int) r_type, (unsigned) rel->r_offset,
-	     (unsigned) relocation);
+	    (_("%B: error: unaligned relocation type %d at %08Lx reloc %08Lx"),
+	     input_bfd, (int) r_type, rel->r_offset,
+	     relocation);
 	  bfd_set_error (bfd_error_bad_value);
 	  return FALSE;
 	}
@@ -1925,7 +1925,7 @@ sh_elf64_relocate_section (bfd *output_b
 	      relocation = sgot->output_offset + off;
 	    }
 
- 	  relocation -= GOT_BIAS;
+	  relocation -= GOT_BIAS;
 
 	  goto final_link_relocate;
 
@@ -2374,17 +2374,13 @@ sh_elf64_check_relocs (bfd *abfd, struct
 
       r_symndx = ELF64_R_SYM (rel->r_info);
       if (r_symndx < symtab_hdr->sh_info)
-        h = NULL;
+	h = NULL;
       else
 	{
 	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       /* Some relocs require a global offset table.  */
@@ -2423,22 +2419,22 @@ sh_elf64_check_relocs (bfd *abfd, struct
 	}
 
       switch (ELF64_R_TYPE (rel->r_info))
-        {
+	{
 	  /* This relocation describes the C++ object vtable hierarchy.
 	     Reconstruct it for later use during GC.  */
-        case R_SH_GNU_VTINHERIT:
-          if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
-            return FALSE;
-          break;
+	case R_SH_GNU_VTINHERIT:
+	  if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
+	    return FALSE;
+	  break;
 
 	  /* This relocation describes which C++ vtable entries are actually
 	     used.  Record for later use during GC.  */
-        case R_SH_GNU_VTENTRY:
-          BFD_ASSERT (h != NULL);
-          if (h != NULL
-              && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
-            return FALSE;
-          break;
+	case R_SH_GNU_VTENTRY:
+	  BFD_ASSERT (h != NULL);
+	  if (h != NULL
+	      && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+	    return FALSE;
+	  break;
 
 	force_got:
 	case R_SH_GOT_LOW16:
@@ -2487,7 +2483,7 @@ sh_elf64_check_relocs (bfd *abfd, struct
 	    }
 	  else
 	    {
-     	      /* This is a global offset table entry for a local
+	      /* This is a global offset table entry for a local
 		 symbol.  */
 	      if (local_got_offsets == NULL)
 		{
@@ -2669,7 +2665,7 @@ sh_elf64_check_relocs (bfd *abfd, struct
 	    }
 
 	  break;
-        }
+	}
     }
 
   return TRUE;
@@ -3192,7 +3188,7 @@ sh64_elf64_adjust_dynamic_symbol (struct
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
 	      && (h->needs_plt
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -3267,12 +3263,12 @@ sh64_elf64_adjust_dynamic_symbol (struct
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -3872,7 +3868,7 @@ sh64_elf64_merge_symbol_attribute (struc
 static const struct bfd_elf_special_section sh64_elf64_special_sections[]=
 {
   { STRING_COMMA_LEN (".cranges"), 0, SHT_PROGBITS, 0 },
-  { NULL,                       0, 0, 0,            0 }
+  { NULL,			0, 0, 0,	    0 }
 };
 
 #define TARGET_BIG_SYM		sh64_elf64_vec
@@ -3904,8 +3900,8 @@ static const struct bfd_elf_special_sect
 					sh_elf64_merge_private_data
 #define elf_backend_fake_sections	sh64_elf64_fake_sections
 
-#define elf_backend_gc_mark_hook        sh_elf64_gc_mark_hook
-#define elf_backend_check_relocs        sh_elf64_check_relocs
+#define elf_backend_gc_mark_hook	sh_elf64_gc_mark_hook
+#define elf_backend_check_relocs	sh_elf64_check_relocs
 
 #define elf_backend_can_gc_sections	1
 
@@ -3920,7 +3916,7 @@ static const struct bfd_elf_special_sect
 	sh64_elf64_merge_symbol_attribute
 
 #define elf_backend_final_write_processing \
- 	sh64_elf64_final_write_processing
+	sh64_elf64_final_write_processing
 
 #define elf_backend_create_dynamic_sections \
 					sh64_elf64_create_dynamic_sections
@@ -3944,6 +3940,8 @@ static const struct bfd_elf_special_sect
 #define elf_backend_got_header_size	24
 #define elf_backend_dtrel_excludes_plt	1
 
+#define elf_backend_linux_prpsinfo64_ugid16	TRUE
+
 #include "elf64-target.h"
 
 /* NetBSD support.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-sparc.c ./bfd/elf64-sparc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-sparc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-sparc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* SPARC-specific support for 64-bit ELF
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -100,8 +100,8 @@ elf64_sparc_slurp_one_reloc_table (bfd *
       if (ELF64_R_SYM (rela.r_info) == STN_UNDEF
 	  /* PR 17512: file: 996185f8.  */
 	  || (!dynamic && ELF64_R_SYM(rela.r_info) > bfd_get_symcount(abfd))
-          || (dynamic
-              && ELF64_R_SYM(rela.r_info) > bfd_get_dynamic_symcount(abfd)))
+	  || (dynamic
+	      && ELF64_R_SYM(rela.r_info) > bfd_get_dynamic_symcount(abfd)))
 	relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
       else
 	{
@@ -278,6 +278,18 @@ elf64_sparc_canonicalize_dynamic_reloc (
   return ret;
 }
 
+/* Install a new set of internal relocs.  */
+
+static void
+elf64_sparc_set_reloc (bfd *abfd ATTRIBUTE_UNUSED,
+		       asection *asect,
+		       arelent **location,
+		       unsigned int count)
+{
+  asect->orelocation = location;
+  canon_reloc_count (asect) = count;
+}
+
 /* Write out the relocs.  */
 
 static void
@@ -302,14 +314,14 @@ elf64_sparc_write_relocs (bfd *abfd, ase
      reloc_count field to zero to inhibit writing them here.  Also,
      sometimes the SEC_RELOC flag gets set even when there aren't any
      relocs.  */
-  if (sec->reloc_count == 0)
+  if (canon_reloc_count (sec) == 0)
     return;
 
   /* We can combine two relocs that refer to the same address
      into R_SPARC_OLO10 if first one is R_SPARC_LO10 and the
      latter is R_SPARC_13 with no associated symbol.  */
   count = 0;
-  for (idx = 0; idx < sec->reloc_count; idx++)
+  for (idx = 0; idx < canon_reloc_count (sec); idx++)
     {
       bfd_vma addr;
 
@@ -317,7 +329,7 @@ elf64_sparc_write_relocs (bfd *abfd, ase
 
       addr = sec->orelocation[idx]->address;
       if (sec->orelocation[idx]->howto->type == R_SPARC_LO10
-	  && idx < sec->reloc_count - 1)
+	  && idx < canon_reloc_count (sec) - 1)
 	{
 	  arelent *r = sec->orelocation[idx + 1];
 
@@ -354,7 +366,7 @@ elf64_sparc_write_relocs (bfd *abfd, ase
   outbound_relocas = (Elf64_External_Rela *) rela_hdr->contents;
   src_rela = outbound_relocas;
 
-  for (idx = 0; idx < sec->reloc_count; idx++)
+  for (idx = 0; idx < canon_reloc_count (sec); idx++)
     {
       Elf_Internal_Rela dst_rela;
       arelent *ptr;
@@ -388,7 +400,7 @@ elf64_sparc_write_relocs (bfd *abfd, ase
 	}
 
       if (ptr->howto->type == R_SPARC_LO10
-	  && idx < sec->reloc_count - 1)
+	  && idx < canon_reloc_count (sec) - 1)
 	{
 	  arelent *r = sec->orelocation[idx + 1];
 
@@ -445,20 +457,20 @@ elf64_sparc_add_symbol_hook (bfd *abfd, 
 	case 6: reg -= 4; break;
 	default:
 	  _bfd_error_handler
-            (_("%B: Only registers %%g[2367] can be declared using STT_REGISTER"),
-             abfd);
+	    (_("%B: Only registers %%g[2367] can be declared using STT_REGISTER"),
+	     abfd);
 	  return FALSE;
 	}
 
       if (info->output_bfd->xvec != abfd->xvec
 	  || (abfd->flags & DYNAMIC) != 0)
-        {
+	{
 	  /* STT_REGISTER only works when linking an elf64_sparc object.
 	     If STT_REGISTER comes from a dynamic object, don't put it into
 	     the output bfd.  The dynamic linker will recheck it.  */
 	  *namep = NULL;
 	  return TRUE;
-        }
+	}
 
       p = _bfd_sparc_elf_hash_table(info)->app_regs + reg;
 
@@ -666,7 +678,7 @@ elf64_sparc_merge_private_bfd_data (bfd 
   else if (new_flags == old_flags)      /* Compatible flags are ok */
     ;
 
-  else                                  /* Incompatible flags */
+  else					/* Incompatible flags */
     {
       error = FALSE;
 
@@ -708,21 +720,21 @@ elf64_sparc_merge_private_bfd_data (bfd 
 
       /* Warn about any other mismatches */
       if (new_flags != old_flags)
-        {
-          error = TRUE;
+	{
+	  error = TRUE;
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-            (_("%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"),
-             ibfd, (long) new_flags, (long) old_flags);
-        }
+	    (_("%B: uses different e_flags (%#x) fields than previous modules (%#x)"),
+	     ibfd, new_flags, old_flags);
+	}
 
       elf_elfheader (obfd)->e_flags = old_flags;
 
       if (error)
-        {
-          bfd_set_error (bfd_error_bad_value);
-          return FALSE;
-        }
+	{
+	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
+	}
     }
   return _bfd_sparc_elf_merge_private_bfd_data (ibfd, info);
 }
@@ -765,8 +777,8 @@ elf64_sparc_print_symbol_all (bfd *abfd 
   fprintf (file, "REG_%c%c%11s%c%c    R", "GOLI" [reg / 8], '0' + (reg & 7), "",
 		 ((type & BSF_LOCAL)
 		  ? (type & BSF_GLOBAL) ? '!' : 'l'
-	          : (type & BSF_GLOBAL) ? 'g' : ' '),
-	         (type & BSF_WEAK) ? 'w' : ' ');
+		  : (type & BSF_GLOBAL) ? 'g' : ' '),
+		 (type & BSF_WEAK) ? 'w' : ' ');
   if (symbol->name == NULL || symbol->name [0] == '\0')
     return "#scratch";
   else
@@ -854,6 +866,8 @@ const struct elf_size_info elf64_sparc_s
   elf64_sparc_canonicalize_reloc
 #define bfd_elf64_canonicalize_dynamic_reloc \
   elf64_sparc_canonicalize_dynamic_reloc
+#define bfd_elf64_set_reloc \
+  elf64_sparc_set_reloc
 #define elf_backend_add_symbol_hook \
   elf64_sparc_add_symbol_hook
 #define elf_backend_get_symbol_type \
@@ -915,8 +929,6 @@ const struct elf_size_info elf64_sparc_s
   _bfd_sparc_elf_object_p
 #define elf_backend_gc_mark_hook \
   _bfd_sparc_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook \
-  _bfd_sparc_elf_gc_sweep_hook
 #define elf_backend_init_index_section \
   _bfd_elf_init_1_index_section
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-tilegx.c ./bfd/elf64-tilegx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-tilegx.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-tilegx.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* TILE-Gx-specific support for 64-bit ELF.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -88,14 +88,14 @@ tilegx_elf_grok_psinfo (bfd *abfd, Elf_I
 #define ELF_COMMONPAGESIZE	0x10000
 
 
-#define TARGET_BIG_SYM          tilegx_elf64_be_vec
-#define TARGET_BIG_NAME         "elf64-tilegx-be"
-#define TARGET_LITTLE_SYM       tilegx_elf64_le_vec
-#define TARGET_LITTLE_NAME      "elf64-tilegx-le"
+#define TARGET_BIG_SYM		tilegx_elf64_be_vec
+#define TARGET_BIG_NAME		"elf64-tilegx-be"
+#define TARGET_LITTLE_SYM	tilegx_elf64_le_vec
+#define TARGET_LITTLE_NAME	"elf64-tilegx-le"
 
 #define elf_backend_reloc_type_class	     tilegx_reloc_type_class
 
-#define bfd_elf64_bfd_reloc_name_lookup      tilegx_reloc_name_lookup
+#define bfd_elf64_bfd_reloc_name_lookup	     tilegx_reloc_name_lookup
 #define bfd_elf64_bfd_link_hash_table_create tilegx_elf_link_hash_table_create
 #define bfd_elf64_bfd_reloc_type_lookup	     tilegx_reloc_type_lookup
 #define bfd_elf64_bfd_merge_private_bfd_data \
@@ -111,12 +111,11 @@ tilegx_elf_grok_psinfo (bfd *abfd, Elf_I
 #define elf_backend_finish_dynamic_symbol    tilegx_elf_finish_dynamic_symbol
 #define elf_backend_finish_dynamic_sections  tilegx_elf_finish_dynamic_sections
 #define elf_backend_gc_mark_hook	     tilegx_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook            tilegx_elf_gc_sweep_hook
 #define elf_backend_plt_sym_val		     tilegx_elf_plt_sym_val
-#define elf_info_to_howto_rel                NULL
-#define elf_info_to_howto                    tilegx_info_to_howto_rela
-#define elf_backend_grok_prstatus            tilegx_elf_grok_prstatus
-#define elf_backend_grok_psinfo              tilegx_elf_grok_psinfo
+#define elf_info_to_howto_rel		     NULL
+#define elf_info_to_howto		     tilegx_info_to_howto_rela
+#define elf_backend_grok_prstatus	     tilegx_elf_grok_prstatus
+#define elf_backend_grok_psinfo		     tilegx_elf_grok_psinfo
 #define elf_backend_additional_program_headers tilegx_additional_program_headers
 
 #define elf_backend_init_index_section	_bfd_elf_init_1_index_section
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-tilegx.h ./bfd/elf64-tilegx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-tilegx.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-tilegx.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* TILE-Gx-specific support for 64-bit ELF.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -23,16 +23,16 @@
 
 /* This file contains sizes and offsets of Linux data structures.  */
 
-#define TILEGX_PRSTATUS_SIZEOF           632
+#define TILEGX_PRSTATUS_SIZEOF		 632
 #define TILEGX_PRSTATUS_OFFSET_PR_CURSIG  12
-#define TILEGX_PRSTATUS_OFFSET_PR_PID     32
-#define TILEGX_PRSTATUS_OFFSET_PR_REG    112
+#define TILEGX_PRSTATUS_OFFSET_PR_PID	  32
+#define TILEGX_PRSTATUS_OFFSET_PR_REG	 112
 
-#define TILEGX_PRPSINFO_SIZEOF           136
-#define TILEGX_PRPSINFO_OFFSET_PR_FNAME   40
+#define TILEGX_PRPSINFO_SIZEOF		 136
+#define TILEGX_PRPSINFO_OFFSET_PR_FNAME	  40
 #define TILEGX_PRPSINFO_OFFSET_PR_PSARGS  56
-#define ELF_PR_PSARGS_SIZE                80
+#define ELF_PR_PSARGS_SIZE		  80
 
-#define TILEGX_GREGSET_T_SIZE            512
+#define TILEGX_GREGSET_T_SIZE		 512
 
 #endif /* _ELF64_TILEGX_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-x86-64.c ./bfd/elf64-x86-64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf64-x86-64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf64-x86-64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* X86-64 specific support for ELF
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Jan Hubicka <jh@suse.cz>.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -19,15 +19,8 @@
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
    MA 02110-1301, USA.  */
 
-#include "sysdep.h"
-#include "bfd.h"
-#include "bfdlink.h"
-#include "libbfd.h"
-#include "elf-bfd.h"
+#include "elfxx-x86.h"
 #include "elf-nacl.h"
-#include "bfd_stdint.h"
-#include "objalloc.h"
-#include "hashtab.h"
 #include "dwarf2.h"
 #include "libiberty.h"
 
@@ -47,9 +40,6 @@
    relocation type.  We also use ELF_ST_TYPE instead of ELF64_ST_TYPE
    since they are the same.  */
 
-#define ABI_64_P(abfd) \
-  (get_elf_backend_data (abfd)->s->elfclass == ELFCLASS64)
-
 /* The relocation "howto" table.  Order of fields:
    type, rightshift, size, bitsize, pc_relative, bitpos, complain_on_overflow,
    special_function, name, partial_inplace, src_mask, dst_mask, pcrel_offset.  */
@@ -206,13 +196,19 @@ static reloc_howto_type x86_64_elf_howto
 	FALSE)
 };
 
-#define IS_X86_64_PCREL_TYPE(TYPE)	\
+/* Set if a relocation is converted from a GOTPCREL relocation.  */
+#define R_X86_64_converted_reloc_bit (1 << 7)
+
+#define X86_PCREL_TYPE_P(TYPE)		\
   (   ((TYPE) == R_X86_64_PC8)		\
    || ((TYPE) == R_X86_64_PC16)		\
    || ((TYPE) == R_X86_64_PC32)		\
    || ((TYPE) == R_X86_64_PC32_BND)	\
    || ((TYPE) == R_X86_64_PC64))
 
+#define X86_SIZE_TYPE_P(TYPE)		\
+  ((TYPE) == R_X86_64_SIZE32 || (TYPE) == R_X86_64_SIZE64)
+
 /* Map BFD relocs to the x86_64 elf relocs.  */
 struct elf_reloc_map
 {
@@ -347,8 +343,12 @@ elf_x86_64_info_to_howto (bfd *abfd ATTR
   unsigned r_type;
 
   r_type = ELF32_R_TYPE (dst->r_info);
+  if (r_type != (unsigned int) R_X86_64_GNU_VTINHERIT
+      && r_type != (unsigned int) R_X86_64_GNU_VTENTRY)
+    r_type &= ~R_X86_64_converted_reloc_bit;
   cache_ptr->howto = elf_x86_64_rtype_to_howto (abfd, r_type);
-  BFD_ASSERT (r_type == cache_ptr->howto->type);
+
+  BFD_ASSERT (r_type == cache_ptr->howto->type || cache_ptr->howto->type == R_X86_64_NONE);
 }
 
 /* Support for core dump NOTE sections.  */
@@ -528,39 +528,33 @@ elf_x86_64_write_core_note (bfd *abfd, c
 
 /* Functions for the x86-64 ELF linker.	 */
 
-/* The name of the dynamic interpreter.	 This is put in the .interp
-   section.  */
-
-#define ELF64_DYNAMIC_INTERPRETER "/lib/ld64.so.1"
-#define ELF32_DYNAMIC_INTERPRETER "/lib/ldx32.so.1"
-
-/* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid
-   copying dynamic variables from a shared lib into an app's dynbss
-   section, and instead use a dynamic relocation to point into the
-   shared lib.  */
-#define ELIMINATE_COPY_RELOCS 1
-
 /* The size in bytes of an entry in the global offset table.  */
 
 #define GOT_ENTRY_SIZE 8
 
-/* The size in bytes of an entry in the procedure linkage table.  */
+/* The size in bytes of an entry in the lazy procedure linkage table.  */
+
+#define LAZY_PLT_ENTRY_SIZE 16
 
-#define PLT_ENTRY_SIZE 16
+/* The size in bytes of an entry in the non-lazy procedure linkage
+   table.  */
 
-/* The first entry in a procedure linkage table looks like this.  See the
-   SVR4 ABI i386 supplement and the x86-64 ABI to see how this works.  */
+#define NON_LAZY_PLT_ENTRY_SIZE 8
 
-static const bfd_byte elf_x86_64_plt0_entry[PLT_ENTRY_SIZE] =
+/* The first entry in a lazy procedure linkage table looks like this.
+   See the SVR4 ABI i386 supplement and the x86-64 ABI to see how this
+   works.  */
+
+static const bfd_byte elf_x86_64_lazy_plt0_entry[LAZY_PLT_ENTRY_SIZE] =
 {
   0xff, 0x35, 8, 0, 0, 0,	/* pushq GOT+8(%rip)  */
   0xff, 0x25, 16, 0, 0, 0,	/* jmpq *GOT+16(%rip) */
   0x0f, 0x1f, 0x40, 0x00	/* nopl 0(%rax)       */
 };
 
-/* Subsequent entries in a procedure linkage table look like this.  */
+/* Subsequent entries in a lazy procedure linkage table look like this.  */
 
-static const bfd_byte elf_x86_64_plt_entry[PLT_ENTRY_SIZE] =
+static const bfd_byte elf_x86_64_lazy_plt_entry[LAZY_PLT_ENTRY_SIZE] =
 {
   0xff, 0x25,	/* jmpq *name@GOTPC(%rip) */
   0, 0, 0, 0,	/* replaced with offset to this symbol in .got.	 */
@@ -570,64 +564,99 @@ static const bfd_byte elf_x86_64_plt_ent
   0, 0, 0, 0	/* replaced with offset to start of .plt0.  */
 };
 
-/* The first entry in a procedure linkage table with BND relocations
+/* The first entry in a lazy procedure linkage table with BND prefix
    like this.  */
 
-static const bfd_byte elf_x86_64_bnd_plt0_entry[PLT_ENTRY_SIZE] =
+static const bfd_byte elf_x86_64_lazy_bnd_plt0_entry[LAZY_PLT_ENTRY_SIZE] =
 {
-  0xff, 0x35, 8, 0, 0, 0,         /* pushq GOT+8(%rip)        */
+  0xff, 0x35, 8, 0, 0, 0,	  /* pushq GOT+8(%rip)	      */
   0xf2, 0xff, 0x25, 16, 0, 0, 0,  /* bnd jmpq *GOT+16(%rip)   */
-  0x0f, 0x1f, 0                   /* nopl (%rax)              */
+  0x0f, 0x1f, 0			  /* nopl (%rax)	      */
 };
 
-/* Subsequent entries for legacy branches in a procedure linkage table
-   with BND relocations look like this.  */
+/* Subsequent entries for branches with BND prefx in a lazy procedure
+   linkage table look like this.  */
 
-static const bfd_byte elf_x86_64_legacy_plt_entry[PLT_ENTRY_SIZE] =
+static const bfd_byte elf_x86_64_lazy_bnd_plt_entry[LAZY_PLT_ENTRY_SIZE] =
 {
-  0x68, 0, 0, 0, 0,             /* pushq immediate            */
-  0xe9, 0, 0, 0, 0,             /* jmpq relative              */
-  0x66, 0x0f, 0x1f, 0x44, 0, 0  /* nopw (%rax,%rax,1)         */
+  0x68, 0, 0, 0, 0,		/* pushq immediate	      */
+  0xf2, 0xe9, 0, 0, 0, 0,	/* bnd jmpq relative	      */
+  0x0f, 0x1f, 0x44, 0, 0	/* nopl 0(%rax,%rax,1)	      */
 };
 
-/* Subsequent entries for branches with BND prefx in a procedure linkage
-   table with BND relocations look like this.  */
+/* The first entry in the IBT-enabled lazy procedure linkage table is the
+   the same as the lazy PLT with BND prefix so that bound registers are
+   preserved when control is passed to dynamic linker.  Subsequent
+   entries for a IBT-enabled lazy procedure linkage table look like
+   this.  */
+
+static const bfd_byte elf_x86_64_lazy_ibt_plt_entry[LAZY_PLT_ENTRY_SIZE] =
+{
+  0xf3, 0x0f, 0x1e, 0xfa,	/* endbr64		      */
+  0x68, 0, 0, 0, 0,		/* pushq immediate	      */
+  0xf2, 0xe9, 0, 0, 0, 0,	/* bnd jmpq relative	      */
+  0x90				/* nop			      */
+};
 
-static const bfd_byte elf_x86_64_bnd_plt_entry[PLT_ENTRY_SIZE] =
-{
-  0x68, 0, 0, 0, 0,             /* pushq immediate            */
-  0xf2, 0xe9, 0, 0, 0, 0,       /* bnd jmpq relative          */
-  0x0f, 0x1f, 0x44, 0, 0        /* nopl 0(%rax,%rax,1)        */
+/* The first entry in the x32 IBT-enabled lazy procedure linkage table
+   is the same as the normal lazy PLT.  Subsequent entries for an
+   x32 IBT-enabled lazy procedure linkage table look like this.  */
+
+static const bfd_byte elf_x32_lazy_ibt_plt_entry[LAZY_PLT_ENTRY_SIZE] =
+{
+  0xf3, 0x0f, 0x1e, 0xfa,	/* endbr64		      */
+  0x68, 0, 0, 0, 0,		/* pushq immediate	      */
+  0xe9, 0, 0, 0, 0,		/* jmpq relative	      */
+  0x66, 0x90			/* xchg %ax,%ax		      */
 };
 
-/* Entries for legacy branches in the second procedure linkage table
-   look like this.  */
+/* Entries in the non-lazey procedure linkage table look like this.  */
 
-static const bfd_byte elf_x86_64_legacy_plt2_entry[8] =
+static const bfd_byte elf_x86_64_non_lazy_plt_entry[NON_LAZY_PLT_ENTRY_SIZE] =
 {
-  0xff, 0x25,                    /* jmpq *name@GOTPC(%rip)      */
-  0, 0, 0, 0,  /* replaced with offset to this symbol in .got.  */
-  0x66, 0x90                     /* xchg %ax,%ax                */
+  0xff, 0x25,	     /* jmpq *name@GOTPC(%rip)			      */
+  0, 0, 0, 0,	     /* replaced with offset to this symbol in .got.  */
+  0x66, 0x90	     /* xchg %ax,%ax				      */
 };
 
-/* Entries for branches with BND prefix in the second procedure linkage
-   table look like this.  */
+/* Entries for branches with BND prefix in the non-lazey procedure
+   linkage table look like this.  */
 
-static const bfd_byte elf_x86_64_bnd_plt2_entry[8] =
+static const bfd_byte elf_x86_64_non_lazy_bnd_plt_entry[NON_LAZY_PLT_ENTRY_SIZE] =
 {
-  0xf2, 0xff, 0x25,              /* bnd jmpq *name@GOTPC(%rip)  */
-  0, 0, 0, 0,  /* replaced with offset to this symbol in .got.  */
-  0x90                           /* nop                         */
+  0xf2, 0xff, 0x25,  /* bnd jmpq *name@GOTPC(%rip)		      */
+  0, 0, 0, 0,	     /* replaced with offset to this symbol in .got.  */
+  0x90		     /* nop					      */
 };
 
-/* .eh_frame covering the .plt section.  */
+/* Entries for branches with IBT-enabled in the non-lazey procedure
+   linkage table look like this.  They have the same size as the lazy
+   PLT entry.  */
+
+static const bfd_byte elf_x86_64_non_lazy_ibt_plt_entry[LAZY_PLT_ENTRY_SIZE] =
+{
+  0xf3, 0x0f, 0x1e, 0xfa,	/* endbr64		       */
+  0xf2, 0xff, 0x25,		/* bnd jmpq *name@GOTPC(%rip)  */
+  0, 0, 0, 0,  /* replaced with offset to this symbol in .got. */
+  0x0f, 0x1f, 0x44, 0x00, 0x00	/* nopl 0x0(%rax,%rax,1)       */
+};
+
+/* Entries for branches with IBT-enabled in the x32 non-lazey procedure
+   linkage table look like this.  They have the same size as the lazy
+   PLT entry.  */
+
+static const bfd_byte elf_x32_non_lazy_ibt_plt_entry[LAZY_PLT_ENTRY_SIZE] =
+{
+  0xf3, 0x0f, 0x1e, 0xfa,	     /* endbr64		       */
+  0xff, 0x25,			     /* jmpq *name@GOTPC(%rip) */
+  0, 0, 0, 0,  /* replaced with offset to this symbol in .got. */
+  0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00 /* nopw 0x0(%rax,%rax,1)  */
+};
+
+/* .eh_frame covering the lazy .plt section.  */
 
-static const bfd_byte elf_x86_64_eh_frame_plt[] =
+static const bfd_byte elf_x86_64_eh_frame_lazy_plt[] =
 {
-#define PLT_CIE_LENGTH		20
-#define PLT_FDE_LENGTH		36
-#define PLT_FDE_START_OFFSET	4 + PLT_CIE_LENGTH + 8
-#define PLT_FDE_LEN_OFFSET	4 + PLT_CIE_LENGTH + 12
   PLT_CIE_LENGTH, 0, 0, 0,	/* CIE length */
   0, 0, 0, 0,			/* CIE ID */
   1,				/* CIE version */
@@ -659,9 +688,9 @@ static const bfd_byte elf_x86_64_eh_fram
   DW_CFA_nop, DW_CFA_nop, DW_CFA_nop, DW_CFA_nop
 };
 
-/* .eh_frame covering the BND .plt section.  */
+/* .eh_frame covering the lazy BND .plt section.  */
 
-static const bfd_byte elf_x86_64_eh_frame_bnd_plt[] =
+static const bfd_byte elf_x86_64_eh_frame_lazy_bnd_plt[] =
 {
   PLT_CIE_LENGTH, 0, 0, 0,	/* CIE length */
   0, 0, 0, 0,			/* CIE ID */
@@ -694,11 +723,10 @@ static const bfd_byte elf_x86_64_eh_fram
   DW_CFA_nop, DW_CFA_nop, DW_CFA_nop, DW_CFA_nop
 };
 
-/* .eh_frame covering the .plt.got section.  */
+/* .eh_frame covering the lazy .plt section with IBT-enabled.  */
 
-static const bfd_byte elf_x86_64_eh_frame_plt_got[] =
+static const bfd_byte elf_x86_64_eh_frame_lazy_ibt_plt[] =
 {
-#define PLT_GOT_FDE_LENGTH		20
   PLT_CIE_LENGTH, 0, 0, 0,	/* CIE length */
   0, 0, 0, 0,			/* CIE ID */
   1,				/* CIE version */
@@ -712,598 +740,221 @@ static const bfd_byte elf_x86_64_eh_fram
   DW_CFA_offset + 16, 1,	/* DW_CFA_offset: r16 (rip) at cfa-8 */
   DW_CFA_nop, DW_CFA_nop,
 
-  PLT_GOT_FDE_LENGTH, 0, 0, 0,	/* FDE length */
+  PLT_FDE_LENGTH, 0, 0, 0,	/* FDE length */
   PLT_CIE_LENGTH + 8, 0, 0, 0,	/* CIE pointer */
-  0, 0, 0, 0,			/* the start of .plt.got goes here */
-  0, 0, 0, 0,			/* .plt.got size goes here */
+  0, 0, 0, 0,			/* R_X86_64_PC32 .plt goes here */
+  0, 0, 0, 0,			/* .plt size goes here */
   0,				/* Augmentation size */
-  DW_CFA_nop, DW_CFA_nop, DW_CFA_nop, DW_CFA_nop,
-  DW_CFA_nop, DW_CFA_nop, DW_CFA_nop
+  DW_CFA_def_cfa_offset, 16,	/* DW_CFA_def_cfa_offset: 16 */
+  DW_CFA_advance_loc + 6,	/* DW_CFA_advance_loc: 6 to __PLT__+6 */
+  DW_CFA_def_cfa_offset, 24,	/* DW_CFA_def_cfa_offset: 24 */
+  DW_CFA_advance_loc + 10,	/* DW_CFA_advance_loc: 10 to __PLT__+16 */
+  DW_CFA_def_cfa_expression,	/* DW_CFA_def_cfa_expression */
+  11,				/* Block length */
+  DW_OP_breg7, 8,		/* DW_OP_breg7 (rsp): 8 */
+  DW_OP_breg16, 0,		/* DW_OP_breg16 (rip): 0 */
+  DW_OP_lit15, DW_OP_and, DW_OP_lit10, DW_OP_ge,
+  DW_OP_lit3, DW_OP_shl, DW_OP_plus,
+  DW_CFA_nop, DW_CFA_nop, DW_CFA_nop, DW_CFA_nop
 };
 
-/* Architecture-specific backend data for x86-64.  */
+/* .eh_frame covering the x32 lazy .plt section with IBT-enabled.  */
 
-struct elf_x86_64_backend_data
+static const bfd_byte elf_x32_eh_frame_lazy_ibt_plt[] =
 {
-  /* Templates for the initial PLT entry and for subsequent entries.  */
-  const bfd_byte *plt0_entry;
-  const bfd_byte *plt_entry;
-  unsigned int plt_entry_size;          /* Size of each PLT entry.  */
-
-  /* Offsets into plt0_entry that are to be replaced with GOT[1] and GOT[2].  */
-  unsigned int plt0_got1_offset;
-  unsigned int plt0_got2_offset;
-
-  /* Offset of the end of the PC-relative instruction containing
-     plt0_got2_offset.  */
-  unsigned int plt0_got2_insn_end;
-
-  /* Offsets into plt_entry that are to be replaced with...  */
-  unsigned int plt_got_offset;    /* ... address of this symbol in .got. */
-  unsigned int plt_reloc_offset;  /* ... offset into relocation table. */
-  unsigned int plt_plt_offset;    /* ... offset to start of .plt. */
-
-  /* Length of the PC-relative instruction containing plt_got_offset.  */
-  unsigned int plt_got_insn_size;
-
-  /* Offset of the end of the PC-relative jump to plt0_entry.  */
-  unsigned int plt_plt_insn_end;
-
-  /* Offset into plt_entry where the initial value of the GOT entry points.  */
-  unsigned int plt_lazy_offset;
-
-  /* .eh_frame covering the .plt section.  */
-  const bfd_byte *eh_frame_plt;
-  unsigned int eh_frame_plt_size;
+  PLT_CIE_LENGTH, 0, 0, 0,	/* CIE length */
+  0, 0, 0, 0,			/* CIE ID */
+  1,				/* CIE version */
+  'z', 'R', 0,			/* Augmentation string */
+  1,				/* Code alignment factor */
+  0x78,				/* Data alignment factor */
+  16,				/* Return address column */
+  1,				/* Augmentation size */
+  DW_EH_PE_pcrel | DW_EH_PE_sdata4, /* FDE encoding */
+  DW_CFA_def_cfa, 7, 8,		/* DW_CFA_def_cfa: r7 (rsp) ofs 8 */
+  DW_CFA_offset + 16, 1,	/* DW_CFA_offset: r16 (rip) at cfa-8 */
+  DW_CFA_nop, DW_CFA_nop,
 
-  /* .eh_frame covering the .plt.got section.  */
-  const bfd_byte *eh_frame_plt_got;
-  unsigned int eh_frame_plt_got_size;
+  PLT_FDE_LENGTH, 0, 0, 0,	/* FDE length */
+  PLT_CIE_LENGTH + 8, 0, 0, 0,	/* CIE pointer */
+  0, 0, 0, 0,			/* R_X86_64_PC32 .plt goes here */
+  0, 0, 0, 0,			/* .plt size goes here */
+  0,				/* Augmentation size */
+  DW_CFA_def_cfa_offset, 16,	/* DW_CFA_def_cfa_offset: 16 */
+  DW_CFA_advance_loc + 6,	/* DW_CFA_advance_loc: 6 to __PLT__+6 */
+  DW_CFA_def_cfa_offset, 24,	/* DW_CFA_def_cfa_offset: 24 */
+  DW_CFA_advance_loc + 10,	/* DW_CFA_advance_loc: 10 to __PLT__+16 */
+  DW_CFA_def_cfa_expression,	/* DW_CFA_def_cfa_expression */
+  11,				/* Block length */
+  DW_OP_breg7, 8,		/* DW_OP_breg7 (rsp): 8 */
+  DW_OP_breg16, 0,		/* DW_OP_breg16 (rip): 0 */
+  DW_OP_lit15, DW_OP_and, DW_OP_lit9, DW_OP_ge,
+  DW_OP_lit3, DW_OP_shl, DW_OP_plus,
+  DW_CFA_nop, DW_CFA_nop, DW_CFA_nop, DW_CFA_nop
 };
 
-#define get_elf_x86_64_arch_data(bed) \
-  ((const struct elf_x86_64_backend_data *) (bed)->arch_data)
+/* .eh_frame covering the non-lazy .plt section.  */
 
-#define get_elf_x86_64_backend_data(abfd) \
-  get_elf_x86_64_arch_data (get_elf_backend_data (abfd))
+static const bfd_byte elf_x86_64_eh_frame_non_lazy_plt[] =
+{
+#define PLT_GOT_FDE_LENGTH		20
+  PLT_CIE_LENGTH, 0, 0, 0,	/* CIE length */
+  0, 0, 0, 0,			/* CIE ID */
+  1,				/* CIE version */
+  'z', 'R', 0,			/* Augmentation string */
+  1,				/* Code alignment factor */
+  0x78,				/* Data alignment factor */
+  16,				/* Return address column */
+  1,				/* Augmentation size */
+  DW_EH_PE_pcrel | DW_EH_PE_sdata4, /* FDE encoding */
+  DW_CFA_def_cfa, 7, 8,		/* DW_CFA_def_cfa: r7 (rsp) ofs 8 */
+  DW_CFA_offset + 16, 1,	/* DW_CFA_offset: r16 (rip) at cfa-8 */
+  DW_CFA_nop, DW_CFA_nop,
 
-#define GET_PLT_ENTRY_SIZE(abfd) \
-  get_elf_x86_64_backend_data (abfd)->plt_entry_size
+  PLT_GOT_FDE_LENGTH, 0, 0, 0,	/* FDE length */
+  PLT_CIE_LENGTH + 8, 0, 0, 0,	/* CIE pointer */
+  0, 0, 0, 0,			/* the start of non-lazy .plt goes here */
+  0, 0, 0, 0,			/* non-lazy .plt size goes here */
+  0,				/* Augmentation size */
+  DW_CFA_nop, DW_CFA_nop, DW_CFA_nop, DW_CFA_nop,
+  DW_CFA_nop, DW_CFA_nop, DW_CFA_nop
+};
 
 /* These are the standard parameters.  */
-static const struct elf_x86_64_backend_data elf_x86_64_arch_bed =
+static const struct elf_x86_lazy_plt_layout elf_x86_64_lazy_plt =
   {
-    elf_x86_64_plt0_entry,              /* plt0_entry */
-    elf_x86_64_plt_entry,               /* plt_entry */
-    sizeof (elf_x86_64_plt_entry),      /* plt_entry_size */
-    2,                                  /* plt0_got1_offset */
-    8,                                  /* plt0_got2_offset */
-    12,                                 /* plt0_got2_insn_end */
-    2,                                  /* plt_got_offset */
-    7,                                  /* plt_reloc_offset */
-    12,                                 /* plt_plt_offset */
-    6,                                  /* plt_got_insn_size */
-    PLT_ENTRY_SIZE,                     /* plt_plt_insn_end */
-    6,                                  /* plt_lazy_offset */
-    elf_x86_64_eh_frame_plt,            /* eh_frame_plt */
-    sizeof (elf_x86_64_eh_frame_plt),   /* eh_frame_plt_size */
-    elf_x86_64_eh_frame_plt_got,        /* eh_frame_plt_got */
-    sizeof (elf_x86_64_eh_frame_plt_got), /* eh_frame_plt_got_size */
+    elf_x86_64_lazy_plt0_entry,		/* plt0_entry */
+    LAZY_PLT_ENTRY_SIZE,		/* plt0_entry_size */
+    elf_x86_64_lazy_plt_entry,		/* plt_entry */
+    LAZY_PLT_ENTRY_SIZE,		/* plt_entry_size */
+    2,					/* plt0_got1_offset */
+    8,					/* plt0_got2_offset */
+    12,					/* plt0_got2_insn_end */
+    2,					/* plt_got_offset */
+    7,					/* plt_reloc_offset */
+    12,					/* plt_plt_offset */
+    6,					/* plt_got_insn_size */
+    LAZY_PLT_ENTRY_SIZE,		/* plt_plt_insn_end */
+    6,					/* plt_lazy_offset */
+    elf_x86_64_lazy_plt0_entry,		/* pic_plt0_entry */
+    elf_x86_64_lazy_plt_entry,		/* pic_plt_entry */
+    elf_x86_64_eh_frame_lazy_plt,	/* eh_frame_plt */
+    sizeof (elf_x86_64_eh_frame_lazy_plt) /* eh_frame_plt_size */
   };
 
-static const struct elf_x86_64_backend_data elf_x86_64_bnd_arch_bed =
+static const struct elf_x86_non_lazy_plt_layout elf_x86_64_non_lazy_plt =
   {
-    elf_x86_64_bnd_plt0_entry,          /* plt0_entry */
-    elf_x86_64_bnd_plt_entry,           /* plt_entry */
-    sizeof (elf_x86_64_bnd_plt_entry),  /* plt_entry_size */
-    2,                                  /* plt0_got1_offset */
-    1+8,                                /* plt0_got2_offset */
-    1+12,                               /* plt0_got2_insn_end */
-    1+2,                                /* plt_got_offset */
-    1,                                  /* plt_reloc_offset */
-    7,                                  /* plt_plt_offset */
-    1+6,                                /* plt_got_insn_size */
-    11,                                 /* plt_plt_insn_end */
-    0,                                  /* plt_lazy_offset */
-    elf_x86_64_eh_frame_bnd_plt,        /* eh_frame_plt */
-    sizeof (elf_x86_64_eh_frame_bnd_plt), /* eh_frame_plt_size */
-    elf_x86_64_eh_frame_plt_got,        /* eh_frame_plt_got */
-    sizeof (elf_x86_64_eh_frame_plt_got), /* eh_frame_plt_got_size */
+    elf_x86_64_non_lazy_plt_entry,	/* plt_entry */
+    elf_x86_64_non_lazy_plt_entry,	/* pic_plt_entry */
+    NON_LAZY_PLT_ENTRY_SIZE,		/* plt_entry_size */
+    2,					/* plt_got_offset */
+    6,					/* plt_got_insn_size */
+    elf_x86_64_eh_frame_non_lazy_plt,	/* eh_frame_plt */
+    sizeof (elf_x86_64_eh_frame_non_lazy_plt) /* eh_frame_plt_size */
   };
 
-#define	elf_backend_arch_data	&elf_x86_64_arch_bed
-
-/* Is a undefined weak symbol which is resolved to 0.  Reference to an
-   undefined weak symbol is resolved to 0 when building executable if
-   it isn't dynamic and
-   1. Has non-GOT/non-PLT relocations in text section.  Or
-   2. Has no GOT/PLT relocation.
- */
-#define UNDEFINED_WEAK_RESOLVED_TO_ZERO(INFO, GOT_RELOC, EH)	\
-  ((EH)->elf.root.type == bfd_link_hash_undefweak		\
-   && bfd_link_executable (INFO)				\
-   && (elf_x86_64_hash_table (INFO)->interp == NULL	 	\
-       || !(GOT_RELOC)						\
-       || (EH)->has_non_got_reloc				\
-       || !(INFO)->dynamic_undefined_weak))
-
-/* x86-64 ELF linker hash entry.  */
-
-struct elf_x86_64_link_hash_entry
-{
-  struct elf_link_hash_entry elf;
-
-  /* Track dynamic relocs copied for this symbol.  */
-  struct elf_dyn_relocs *dyn_relocs;
-
-#define GOT_UNKNOWN	0
-#define GOT_NORMAL	1
-#define GOT_TLS_GD	2
-#define GOT_TLS_IE	3
-#define GOT_TLS_GDESC	4
-#define GOT_TLS_GD_BOTH_P(type) \
-  ((type) == (GOT_TLS_GD | GOT_TLS_GDESC))
-#define GOT_TLS_GD_P(type) \
-  ((type) == GOT_TLS_GD || GOT_TLS_GD_BOTH_P (type))
-#define GOT_TLS_GDESC_P(type) \
-  ((type) == GOT_TLS_GDESC || GOT_TLS_GD_BOTH_P (type))
-#define GOT_TLS_GD_ANY_P(type) \
-  (GOT_TLS_GD_P (type) || GOT_TLS_GDESC_P (type))
-  unsigned char tls_type;
-
-  /* TRUE if a weak symbol with a real definition needs a copy reloc.
-     When there is a weak symbol with a real definition, the processor
-     independent code will have arranged for us to see the real
-     definition first.  We need to copy the needs_copy bit from the
-     real definition and check it when allowing copy reloc in PIE.  */
-  unsigned int needs_copy : 1;
-
-  /* TRUE if symbol has at least one BND relocation.  */
-  unsigned int has_bnd_reloc : 1;
-
-  /* TRUE if symbol has GOT or PLT relocations.  */
-  unsigned int has_got_reloc : 1;
-
-  /* TRUE if symbol has non-GOT/non-PLT relocations in text sections.  */
-  unsigned int has_non_got_reloc : 1;
-
-  /* 0: symbol isn't __tls_get_addr.
-     1: symbol is __tls_get_addr.
-     2: symbol is unknown.  */
-  unsigned int tls_get_addr : 2;
-
-  /* Reference count of C/C++ function pointer relocations in read-write
-     section which can be resolved at run-time.  */
-  bfd_signed_vma func_pointer_refcount;
-
-  /* Information about the GOT PLT entry. Filled when there are both
-     GOT and PLT relocations against the same function.  */
-  union gotplt_union plt_got;
-
-  /* Information about the second PLT entry. Filled when has_bnd_reloc is
-     set.  */
-  union gotplt_union plt_bnd;
-
-  /* Offset of the GOTPLT entry reserved for the TLS descriptor,
-     starting at the end of the jump table.  */
-  bfd_vma tlsdesc_got;
-};
-
-#define elf_x86_64_hash_entry(ent) \
-  ((struct elf_x86_64_link_hash_entry *)(ent))
-
-struct elf_x86_64_obj_tdata
-{
-  struct elf_obj_tdata root;
-
-  /* tls_type for each local got entry.  */
-  char *local_got_tls_type;
-
-  /* GOTPLT entries for TLS descriptors.  */
-  bfd_vma *local_tlsdesc_gotent;
-};
-
-#define elf_x86_64_tdata(abfd) \
-  ((struct elf_x86_64_obj_tdata *) (abfd)->tdata.any)
-
-#define elf_x86_64_local_got_tls_type(abfd) \
-  (elf_x86_64_tdata (abfd)->local_got_tls_type)
-
-#define elf_x86_64_local_tlsdesc_gotent(abfd) \
-  (elf_x86_64_tdata (abfd)->local_tlsdesc_gotent)
-
-#define is_x86_64_elf(bfd)				\
-  (bfd_get_flavour (bfd) == bfd_target_elf_flavour	\
-   && elf_tdata (bfd) != NULL				\
-   && elf_object_id (bfd) == X86_64_ELF_DATA)
-
-static bfd_boolean
-elf_x86_64_mkobject (bfd *abfd)
-{
-  return bfd_elf_allocate_object (abfd, sizeof (struct elf_x86_64_obj_tdata),
-				  X86_64_ELF_DATA);
-}
-
-/* x86-64 ELF linker hash table.  */
-
-struct elf_x86_64_link_hash_table
-{
-  struct elf_link_hash_table elf;
-
-  /* Short-cuts to get to dynamic linker sections.  */
-  asection *interp;
-  asection *plt_eh_frame;
-  asection *plt_bnd;
-  asection *plt_bnd_eh_frame;
-  asection *plt_got;
-  asection *plt_got_eh_frame;
-
-  union
+static const struct elf_x86_lazy_plt_layout elf_x86_64_lazy_bnd_plt =
   {
-    bfd_signed_vma refcount;
-    bfd_vma offset;
-  } tls_ld_got;
-
-  /* The amount of space used by the jump slots in the GOT.  */
-  bfd_vma sgotplt_jump_table_size;
-
-  /* Small local sym cache.  */
-  struct sym_cache sym_cache;
-
-  bfd_vma (*r_info) (bfd_vma, bfd_vma);
-  bfd_vma (*r_sym) (bfd_vma);
-  unsigned int pointer_r_type;
-  const char *dynamic_interpreter;
-  int dynamic_interpreter_size;
-
-  /* _TLS_MODULE_BASE_ symbol.  */
-  struct bfd_link_hash_entry *tls_module_base;
-
-  /* Used by local STT_GNU_IFUNC symbols.  */
-  htab_t loc_hash_table;
-  void * loc_hash_memory;
-
-  /* The offset into splt of the PLT entry for the TLS descriptor
-     resolver.  Special values are 0, if not necessary (or not found
-     to be necessary yet), and -1 if needed but not determined
-     yet.  */
-  bfd_vma tlsdesc_plt;
-  /* The offset into sgot of the GOT entry used by the PLT entry
-     above.  */
-  bfd_vma tlsdesc_got;
-
-  /* The index of the next R_X86_64_JUMP_SLOT entry in .rela.plt.  */
-  bfd_vma next_jump_slot_index;
-  /* The index of the next R_X86_64_IRELATIVE entry in .rela.plt.  */
-  bfd_vma next_irelative_index;
-
-  /* TRUE if there are dynamic relocs against IFUNC symbols that apply
-     to read-only sections.  */
-  bfd_boolean readonly_dynrelocs_against_ifunc;
-};
-
-/* Get the x86-64 ELF linker hash table from a link_info structure.  */
-
-#define elf_x86_64_hash_table(p) \
-  (elf_hash_table_id ((struct elf_link_hash_table *) ((p)->hash)) \
-  == X86_64_ELF_DATA ? ((struct elf_x86_64_link_hash_table *) ((p)->hash)) : NULL)
-
-#define elf_x86_64_compute_jump_table_size(htab) \
-  ((htab)->elf.srelplt->reloc_count * GOT_ENTRY_SIZE)
-
-/* Create an entry in an x86-64 ELF linker hash table.	*/
-
-static struct bfd_hash_entry *
-elf_x86_64_link_hash_newfunc (struct bfd_hash_entry *entry,
-			      struct bfd_hash_table *table,
-			      const char *string)
-{
-  /* Allocate the structure if it has not already been allocated by a
-     subclass.  */
-  if (entry == NULL)
-    {
-      entry = (struct bfd_hash_entry *)
-	  bfd_hash_allocate (table,
-			     sizeof (struct elf_x86_64_link_hash_entry));
-      if (entry == NULL)
-	return entry;
-    }
-
-  /* Call the allocation method of the superclass.  */
-  entry = _bfd_elf_link_hash_newfunc (entry, table, string);
-  if (entry != NULL)
-    {
-      struct elf_x86_64_link_hash_entry *eh;
-
-      eh = (struct elf_x86_64_link_hash_entry *) entry;
-      eh->dyn_relocs = NULL;
-      eh->tls_type = GOT_UNKNOWN;
-      eh->needs_copy = 0;
-      eh->has_bnd_reloc = 0;
-      eh->has_got_reloc = 0;
-      eh->has_non_got_reloc = 0;
-      eh->tls_get_addr = 2;
-      eh->func_pointer_refcount = 0;
-      eh->plt_bnd.offset = (bfd_vma) -1;
-      eh->plt_got.offset = (bfd_vma) -1;
-      eh->tlsdesc_got = (bfd_vma) -1;
-    }
-
-  return entry;
-}
-
-/* Compute a hash of a local hash entry.  We use elf_link_hash_entry
-  for local symbol so that we can handle local STT_GNU_IFUNC symbols
-  as global symbol.  We reuse indx and dynstr_index for local symbol
-  hash since they aren't used by global symbols in this backend.  */
-
-static hashval_t
-elf_x86_64_local_htab_hash (const void *ptr)
-{
-  struct elf_link_hash_entry *h
-    = (struct elf_link_hash_entry *) ptr;
-  return ELF_LOCAL_SYMBOL_HASH (h->indx, h->dynstr_index);
-}
-
-/* Compare local hash entries.  */
-
-static int
-elf_x86_64_local_htab_eq (const void *ptr1, const void *ptr2)
-{
-  struct elf_link_hash_entry *h1
-     = (struct elf_link_hash_entry *) ptr1;
-  struct elf_link_hash_entry *h2
-    = (struct elf_link_hash_entry *) ptr2;
-
-  return h1->indx == h2->indx && h1->dynstr_index == h2->dynstr_index;
-}
-
-/* Find and/or create a hash entry for local symbol.  */
-
-static struct elf_link_hash_entry *
-elf_x86_64_get_local_sym_hash (struct elf_x86_64_link_hash_table *htab,
-			       bfd *abfd, const Elf_Internal_Rela *rel,
-			       bfd_boolean create)
-{
-  struct elf_x86_64_link_hash_entry e, *ret;
-  asection *sec = abfd->sections;
-  hashval_t h = ELF_LOCAL_SYMBOL_HASH (sec->id,
-				       htab->r_sym (rel->r_info));
-  void **slot;
-
-  e.elf.indx = sec->id;
-  e.elf.dynstr_index = htab->r_sym (rel->r_info);
-  slot = htab_find_slot_with_hash (htab->loc_hash_table, &e, h,
-				   create ? INSERT : NO_INSERT);
-
-  if (!slot)
-    return NULL;
-
-  if (*slot)
-    {
-      ret = (struct elf_x86_64_link_hash_entry *) *slot;
-      return &ret->elf;
-    }
-
-  ret = (struct elf_x86_64_link_hash_entry *)
-	objalloc_alloc ((struct objalloc *) htab->loc_hash_memory,
-			sizeof (struct elf_x86_64_link_hash_entry));
-  if (ret)
-    {
-      memset (ret, 0, sizeof (*ret));
-      ret->elf.indx = sec->id;
-      ret->elf.dynstr_index = htab->r_sym (rel->r_info);
-      ret->elf.dynindx = -1;
-      ret->func_pointer_refcount = 0;
-      ret->plt_got.offset = (bfd_vma) -1;
-      *slot = ret;
-    }
-  return &ret->elf;
-}
-
-/* Destroy an X86-64 ELF linker hash table.  */
-
-static void
-elf_x86_64_link_hash_table_free (bfd *obfd)
-{
-  struct elf_x86_64_link_hash_table *htab
-    = (struct elf_x86_64_link_hash_table *) obfd->link.hash;
-
-  if (htab->loc_hash_table)
-    htab_delete (htab->loc_hash_table);
-  if (htab->loc_hash_memory)
-    objalloc_free ((struct objalloc *) htab->loc_hash_memory);
-  _bfd_elf_link_hash_table_free (obfd);
-}
-
-/* Create an X86-64 ELF linker hash table.  */
-
-static struct bfd_link_hash_table *
-elf_x86_64_link_hash_table_create (bfd *abfd)
-{
-  struct elf_x86_64_link_hash_table *ret;
-  bfd_size_type amt = sizeof (struct elf_x86_64_link_hash_table);
-
-  ret = (struct elf_x86_64_link_hash_table *) bfd_zmalloc (amt);
-  if (ret == NULL)
-    return NULL;
-
-  if (!_bfd_elf_link_hash_table_init (&ret->elf, abfd,
-				      elf_x86_64_link_hash_newfunc,
-				      sizeof (struct elf_x86_64_link_hash_entry),
-				      X86_64_ELF_DATA))
-    {
-      free (ret);
-      return NULL;
-    }
-
-  if (ABI_64_P (abfd))
-    {
-      ret->r_info = elf64_r_info;
-      ret->r_sym = elf64_r_sym;
-      ret->pointer_r_type = R_X86_64_64;
-      ret->dynamic_interpreter = ELF64_DYNAMIC_INTERPRETER;
-      ret->dynamic_interpreter_size = sizeof ELF64_DYNAMIC_INTERPRETER;
-    }
-  else
-    {
-      ret->r_info = elf32_r_info;
-      ret->r_sym = elf32_r_sym;
-      ret->pointer_r_type = R_X86_64_32;
-      ret->dynamic_interpreter = ELF32_DYNAMIC_INTERPRETER;
-      ret->dynamic_interpreter_size = sizeof ELF32_DYNAMIC_INTERPRETER;
-    }
-
-  ret->loc_hash_table = htab_try_create (1024,
-					 elf_x86_64_local_htab_hash,
-					 elf_x86_64_local_htab_eq,
-					 NULL);
-  ret->loc_hash_memory = objalloc_create ();
-  if (!ret->loc_hash_table || !ret->loc_hash_memory)
-    {
-      elf_x86_64_link_hash_table_free (abfd);
-      return NULL;
-    }
-  ret->elf.root.hash_table_free = elf_x86_64_link_hash_table_free;
-
-  return &ret->elf.root;
-}
-
-/* Create .plt, .rela.plt, .got, .got.plt, .rela.got, .dynbss, and
-   .rela.bss sections in DYNOBJ, and set up shortcuts to them in our
-   hash table.  */
-
-static bfd_boolean
-elf_x86_64_create_dynamic_sections (bfd *dynobj,
-				    struct bfd_link_info *info)
-{
-  struct elf_x86_64_link_hash_table *htab;
-
-  if (!_bfd_elf_create_dynamic_sections (dynobj, info))
-    return FALSE;
-
-  htab = elf_x86_64_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-
-  /* Set the contents of the .interp section to the interpreter.  */
-  if (bfd_link_executable (info) && !info->nointerp)
-    {
-      asection *s = bfd_get_linker_section (dynobj, ".interp");
-      if (s == NULL)
-	abort ();
-      s->size = htab->dynamic_interpreter_size;
-      s->contents = (unsigned char *) htab->dynamic_interpreter;
-      htab->interp = s;
-    }
-
-  if (!info->no_ld_generated_unwind_info
-      && htab->plt_eh_frame == NULL
-      && htab->elf.splt != NULL)
-    {
-      flagword flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY
-			| SEC_HAS_CONTENTS | SEC_IN_MEMORY
-			| SEC_LINKER_CREATED);
-      htab->plt_eh_frame
-	= bfd_make_section_anyway_with_flags (dynobj, ".eh_frame", flags);
-      if (htab->plt_eh_frame == NULL
-	  || !bfd_set_section_alignment (dynobj, htab->plt_eh_frame,
-					 ABI_64_P (dynobj) ? 3 : 2))
-	return FALSE;
-    }
-
-  /* Align .got section to its entry size.  */
-  if (htab->elf.sgot != NULL
-      && !bfd_set_section_alignment (dynobj, htab->elf.sgot, 3))
-    return FALSE;
-
-  /* Align .got.plt section to its entry size.  */
-  if (htab->elf.sgotplt != NULL
-      && !bfd_set_section_alignment (dynobj, htab->elf.sgotplt, 3))
-    return FALSE;
-
-  return TRUE;
-}
-
-/* Copy the extra info we tack onto an elf_link_hash_entry.  */
-
-static void
-elf_x86_64_copy_indirect_symbol (struct bfd_link_info *info,
-				 struct elf_link_hash_entry *dir,
-				 struct elf_link_hash_entry *ind)
-{
-  struct elf_x86_64_link_hash_entry *edir, *eind;
-
-  edir = (struct elf_x86_64_link_hash_entry *) dir;
-  eind = (struct elf_x86_64_link_hash_entry *) ind;
-
-  edir->has_bnd_reloc |= eind->has_bnd_reloc;
-  edir->has_got_reloc |= eind->has_got_reloc;
-  edir->has_non_got_reloc |= eind->has_non_got_reloc;
+    elf_x86_64_lazy_bnd_plt0_entry,	/* plt0_entry */
+    LAZY_PLT_ENTRY_SIZE,		/* plt0_entry_size */
+    elf_x86_64_lazy_bnd_plt_entry,	/* plt_entry */
+    LAZY_PLT_ENTRY_SIZE,		/* plt_entry_size */
+    2,					/* plt0_got1_offset */
+    1+8,				/* plt0_got2_offset */
+    1+12,				/* plt0_got2_insn_end */
+    1+2,				/* plt_got_offset */
+    1,					/* plt_reloc_offset */
+    7,					/* plt_plt_offset */
+    1+6,				/* plt_got_insn_size */
+    11,					/* plt_plt_insn_end */
+    0,					/* plt_lazy_offset */
+    elf_x86_64_lazy_bnd_plt0_entry,	/* pic_plt0_entry */
+    elf_x86_64_lazy_bnd_plt_entry,	/* pic_plt_entry */
+    elf_x86_64_eh_frame_lazy_bnd_plt,	/* eh_frame_plt */
+    sizeof (elf_x86_64_eh_frame_lazy_bnd_plt) /* eh_frame_plt_size */
+  };
 
-  if (eind->dyn_relocs != NULL)
-    {
-      if (edir->dyn_relocs != NULL)
-	{
-	  struct elf_dyn_relocs **pp;
-	  struct elf_dyn_relocs *p;
+static const struct elf_x86_non_lazy_plt_layout elf_x86_64_non_lazy_bnd_plt =
+  {
+    elf_x86_64_non_lazy_bnd_plt_entry,	/* plt_entry */
+    elf_x86_64_non_lazy_bnd_plt_entry,	/* pic_plt_entry */
+    NON_LAZY_PLT_ENTRY_SIZE,		/* plt_entry_size */
+    1+2,				/* plt_got_offset */
+    1+6,				/* plt_got_insn_size */
+    elf_x86_64_eh_frame_non_lazy_plt,	/* eh_frame_plt */
+    sizeof (elf_x86_64_eh_frame_non_lazy_plt) /* eh_frame_plt_size */
+  };
 
-	  /* Add reloc counts against the indirect sym to the direct sym
-	     list.  Merge any entries against the same section.  */
-	  for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
-	    {
-	      struct elf_dyn_relocs *q;
+static const struct elf_x86_lazy_plt_layout elf_x86_64_lazy_ibt_plt =
+  {
+    elf_x86_64_lazy_bnd_plt0_entry,	/* plt0_entry */
+    LAZY_PLT_ENTRY_SIZE,		/* plt0_entry_size */
+    elf_x86_64_lazy_ibt_plt_entry,	/* plt_entry */
+    LAZY_PLT_ENTRY_SIZE,		/* plt_entry_size */
+    2,					/* plt0_got1_offset */
+    1+8,				/* plt0_got2_offset */
+    1+12,				/* plt0_got2_insn_end */
+    4+1+2,				/* plt_got_offset */
+    4+1,				/* plt_reloc_offset */
+    4+1+6,				/* plt_plt_offset */
+    4+1+6,				/* plt_got_insn_size */
+    4+1+5+5,				/* plt_plt_insn_end */
+    0,					/* plt_lazy_offset */
+    elf_x86_64_lazy_bnd_plt0_entry,	/* pic_plt0_entry */
+    elf_x86_64_lazy_ibt_plt_entry,	/* pic_plt_entry */
+    elf_x86_64_eh_frame_lazy_ibt_plt,	/* eh_frame_plt */
+    sizeof (elf_x86_64_eh_frame_lazy_ibt_plt) /* eh_frame_plt_size */
+  };
 
-	      for (q = edir->dyn_relocs; q != NULL; q = q->next)
-		if (q->sec == p->sec)
-		  {
-		    q->pc_count += p->pc_count;
-		    q->count += p->count;
-		    *pp = p->next;
-		    break;
-		  }
-	      if (q == NULL)
-		pp = &p->next;
-	    }
-	  *pp = edir->dyn_relocs;
-	}
+static const struct elf_x86_lazy_plt_layout elf_x32_lazy_ibt_plt =
+  {
+    elf_x86_64_lazy_plt0_entry,		/* plt0_entry */
+    LAZY_PLT_ENTRY_SIZE,		/* plt0_entry_size */
+    elf_x32_lazy_ibt_plt_entry,		/* plt_entry */
+    LAZY_PLT_ENTRY_SIZE,		/* plt_entry_size */
+    2,					/* plt0_got1_offset */
+    8,					/* plt0_got2_offset */
+    12,					/* plt0_got2_insn_end */
+    4+2,				/* plt_got_offset */
+    4+1,				/* plt_reloc_offset */
+    4+6,				/* plt_plt_offset */
+    4+6,				/* plt_got_insn_size */
+    4+5+5,				/* plt_plt_insn_end */
+    0,					/* plt_lazy_offset */
+    elf_x86_64_lazy_plt0_entry,		/* pic_plt0_entry */
+    elf_x32_lazy_ibt_plt_entry,		/* pic_plt_entry */
+    elf_x32_eh_frame_lazy_ibt_plt,	/* eh_frame_plt */
+    sizeof (elf_x32_eh_frame_lazy_ibt_plt) /* eh_frame_plt_size */
+  };
 
-      edir->dyn_relocs = eind->dyn_relocs;
-      eind->dyn_relocs = NULL;
-    }
+static const struct elf_x86_non_lazy_plt_layout elf_x86_64_non_lazy_ibt_plt =
+  {
+    elf_x86_64_non_lazy_ibt_plt_entry,	/* plt_entry */
+    elf_x86_64_non_lazy_ibt_plt_entry,	/* pic_plt_entry */
+    LAZY_PLT_ENTRY_SIZE,		/* plt_entry_size */
+    4+1+2,				/* plt_got_offset */
+    4+1+6,				/* plt_got_insn_size */
+    elf_x86_64_eh_frame_non_lazy_plt,	/* eh_frame_plt */
+    sizeof (elf_x86_64_eh_frame_non_lazy_plt) /* eh_frame_plt_size */
+  };
 
-  if (ind->root.type == bfd_link_hash_indirect
-      && dir->got.refcount <= 0)
-    {
-      edir->tls_type = eind->tls_type;
-      eind->tls_type = GOT_UNKNOWN;
-    }
+static const struct elf_x86_non_lazy_plt_layout elf_x32_non_lazy_ibt_plt =
+  {
+    elf_x32_non_lazy_ibt_plt_entry,	/* plt_entry */
+    elf_x32_non_lazy_ibt_plt_entry,	/* pic_plt_entry */
+    LAZY_PLT_ENTRY_SIZE,		/* plt_entry_size */
+    4+2,				/* plt_got_offset */
+    4+6,				/* plt_got_insn_size */
+    elf_x86_64_eh_frame_non_lazy_plt,	/* eh_frame_plt */
+    sizeof (elf_x86_64_eh_frame_non_lazy_plt) /* eh_frame_plt_size */
+  };
 
-  if (ELIMINATE_COPY_RELOCS
-      && ind->root.type != bfd_link_hash_indirect
-      && dir->dynamic_adjusted)
-    {
-      /* If called to transfer flags for a weakdef during processing
-	 of elf_adjust_dynamic_symbol, don't copy non_got_ref.
-	 We clear it ourselves for ELIMINATE_COPY_RELOCS.  */
-      if (dir->versioned != versioned_hidden)
-	dir->ref_dynamic |= ind->ref_dynamic;
-      dir->ref_regular |= ind->ref_regular;
-      dir->ref_regular_nonweak |= ind->ref_regular_nonweak;
-      dir->needs_plt |= ind->needs_plt;
-      dir->pointer_equality_needed |= ind->pointer_equality_needed;
-    }
-  else
-    {
-      if (eind->func_pointer_refcount > 0)
-	{
-	  edir->func_pointer_refcount += eind->func_pointer_refcount;
-	  eind->func_pointer_refcount = 0;
-	}
+static const struct elf_x86_backend_data elf_x86_64_arch_bed =
+  {
+    is_normal				 /* os */
+  };
 
-      _bfd_elf_link_hash_copy_indirect (info, dir, ind);
-    }
-}
+#define	elf_backend_arch_data	&elf_x86_64_arch_bed
 
 static bfd_boolean
 elf64_x86_64_elf_object_p (bfd *abfd)
@@ -1340,11 +991,11 @@ elf_x86_64_check_tls_transition (bfd *ab
   bfd_boolean largepic = FALSE;
   struct elf_link_hash_entry *h;
   bfd_vma offset;
-  struct elf_x86_64_link_hash_table *htab;
+  struct elf_x86_link_hash_table *htab;
   bfd_byte *call;
-  bfd_boolean indirect_call, tls_get_addr;
+  bfd_boolean indirect_call;
 
-  htab = elf_x86_64_hash_table (info);
+  htab = elf_x86_hash_table (info, X86_64_ELF_DATA);
   offset = rel->r_offset;
   switch (r_type)
     {
@@ -1375,15 +1026,15 @@ elf_x86_64_check_tls_transition (bfd *ab
 		addr32 call __tls_get_addr
 	     can transit to different access model.  For largepic,
 	     we also support:
-	        leaq foo@tlsgd(%rip), %rdi
-	        movabsq $__tls_get_addr@pltoff, %rax
-	        addq $r15, %rax
-	        call *%rax
+		leaq foo@tlsgd(%rip), %rdi
+		movabsq $__tls_get_addr@pltoff, %rax
+		addq $r15, %rax
+		call *%rax
 	     or
-	        leaq foo@tlsgd(%rip), %rdi
-	        movabsq $__tls_get_addr@pltoff, %rax
-	        addq $rbx, %rax
-	        call *%rax  */
+		leaq foo@tlsgd(%rip), %rdi
+		movabsq $__tls_get_addr@pltoff, %rax
+		addq $rbx, %rax
+		call *%rax  */
 
 	  static const unsigned char leaq[] = { 0x66, 0x48, 0x8d, 0x3d };
 
@@ -1434,22 +1085,22 @@ elf_x86_64_check_tls_transition (bfd *ab
 	  /* Check transition from LD access model.  Only
 		leaq foo@tlsld(%rip), %rdi;
 		call __tls_get_addr@PLT
-             or
+	     or
 		leaq foo@tlsld(%rip), %rdi;
 		call *__tls_get_addr@GOTPCREL(%rip)
 		which may be converted to
 		addr32 call __tls_get_addr
 	     can transit to different access model.  For largepic
 	     we also support:
-	        leaq foo@tlsld(%rip), %rdi
-	        movabsq $__tls_get_addr@pltoff, %rax
-	        addq $r15, %rax
-	        call *%rax
+		leaq foo@tlsld(%rip), %rdi
+		movabsq $__tls_get_addr@pltoff, %rax
+		addq $r15, %rax
+		call *%rax
 	     or
-	        leaq foo@tlsld(%rip), %rdi
-	        movabsq $__tls_get_addr@pltoff, %rax
-	        addq $rbx, %rax
-	        call *%rax  */
+		leaq foo@tlsld(%rip), %rdi
+		movabsq $__tls_get_addr@pltoff, %rax
+		addq $rbx, %rax
+		call *%rax  */
 
 	  static const unsigned char lea[] = { 0x48, 0x8d, 0x3d };
 
@@ -1482,37 +1133,21 @@ elf_x86_64_check_tls_transition (bfd *ab
       if (r_symndx < symtab_hdr->sh_info)
 	return FALSE;
 
-      tls_get_addr = FALSE;
       h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-      if (h != NULL && h->root.root.string != NULL)
-	{
-	  struct elf_x86_64_link_hash_entry *eh
-	    = (struct elf_x86_64_link_hash_entry *) h;
-	  tls_get_addr = eh->tls_get_addr == 1;
-	  if (eh->tls_get_addr > 1)
-	    {
-	      /* Use strncmp to check __tls_get_addr since
-		 __tls_get_addr may be versioned.  */
-	      if (strncmp (h->root.root.string, "__tls_get_addr", 14)
-		  == 0)
-		{
-		  eh->tls_get_addr = 1;
-		  tls_get_addr = TRUE;
-		}
-	      else
-		eh->tls_get_addr = 0;
-	    }
-	}
-
-      if (!tls_get_addr)
+      if (h == NULL
+	  || !((struct elf_x86_link_hash_entry *) h)->tls_get_addr)
 	return FALSE;
-      else if (largepic)
-	return ELF32_R_TYPE (rel[1].r_info) == R_X86_64_PLTOFF64;
-      else if (indirect_call)
-	return ELF32_R_TYPE (rel[1].r_info) == R_X86_64_GOTPCRELX;
       else
-	return (ELF32_R_TYPE (rel[1].r_info) == R_X86_64_PC32
-		|| ELF32_R_TYPE (rel[1].r_info) == R_X86_64_PLT32);
+	{
+	  r_type = (ELF32_R_TYPE (rel[1].r_info)
+		    & ~R_X86_64_converted_reloc_bit);
+	  if (largepic)
+	    return r_type == R_X86_64_PLTOFF64;
+	  else if (indirect_call)
+	    return r_type == R_X86_64_GOTPCRELX;
+	  else
+	    return (r_type == R_X86_64_PC32 || r_type == R_X86_64_PLT32);
+	}
 
     case R_X86_64_GOTTPOFF:
       /* Check transition from IE access model:
@@ -1631,10 +1266,7 @@ elf_x86_64_tls_transition (struct bfd_li
 	{
 	  unsigned int new_to_type = to_type;
 
-	  if (bfd_link_executable (info)
-	      && h != NULL
-	      && h->dynindx == -1
-	      && tls_type == GOT_TLS_IE)
+	  if (TLS_TRANSITION_IE_TO_LE_P (info, h, tls_type))
 	    new_to_type = R_X86_64_TPOFF32;
 
 	  if (to_type == R_X86_64_TLSGD
@@ -1683,9 +1315,9 @@ elf_x86_64_tls_transition (struct bfd_li
 	name = h->root.root.string;
       else
 	{
-	  struct elf_x86_64_link_hash_table *htab;
+	  struct elf_x86_link_hash_table *htab;
 
-	  htab = elf_x86_64_hash_table (info);
+	  htab = elf_x86_hash_table (info, X86_64_ELF_DATA);
 	  if (htab == NULL)
 	    name = "*unknown*";
 	  else
@@ -1700,10 +1332,9 @@ elf_x86_64_tls_transition (struct bfd_li
 
       _bfd_error_handler
 	/* xgettext:c-format */
-	(_("%B: TLS transition from %s to %s against `%s' at 0x%lx "
+	(_("%B: TLS transition from %s to %s against `%s' at %#Lx "
 	   "in section `%A' failed"),
-	 abfd, from->name, to->name, name,
-	 (unsigned long) rel->r_offset, sec);
+	 abfd, from->name, to->name, name, rel->r_offset, sec);
       bfd_set_error (bfd_error_bad_value);
       return FALSE;
     }
@@ -1714,11 +1345,11 @@ elf_x86_64_tls_transition (struct bfd_li
 
 /* Rename some of the generic section flags to better document how they
    are used here.  */
-#define need_convert_load	sec_flg0
-#define check_relocs_failed	sec_flg1
+#define check_relocs_failed	sec_flg0
 
 static bfd_boolean
-elf_x86_64_need_pic (bfd *input_bfd, asection *sec,
+elf_x86_64_need_pic (struct bfd_link_info *info,
+		     bfd *input_bfd, asection *sec,
 		     struct elf_link_hash_entry *h,
 		     Elf_Internal_Shdr *symtab_hdr,
 		     Elf_Internal_Sym *isym,
@@ -1727,6 +1358,7 @@ elf_x86_64_need_pic (bfd *input_bfd, ase
   const char *v = "";
   const char *und = "";
   const char *pic = "";
+  const char *object;
 
   const char *name;
   if (h)
@@ -1744,7 +1376,10 @@ elf_x86_64_need_pic (bfd *input_bfd, ase
 	  v = _("protected symbol ");
 	  break;
 	default:
-	  v = _("symbol ");
+	  if (((struct elf_x86_link_hash_entry *) h)->def_protected)
+	    v = _("protected symbol ");
+	  else
+	    v = _("symbol ");
 	  pic = _("; recompile with -fPIC");
 	  break;
 	}
@@ -1758,10 +1393,18 @@ elf_x86_64_need_pic (bfd *input_bfd, ase
       pic = _("; recompile with -fPIC");
     }
 
+  if (bfd_link_dll (info))
+    object = _("a shared object");
+  else if (bfd_link_pie (info))
+    object = _("a PIE object");
+  else
+    object = _("a PDE object");
+
   /* xgettext:c-format */
   _bfd_error_handler (_("%B: relocation %s against %s%s`%s' can "
-			"not be used when making a shared object%s"),
-		      input_bfd, howto->name, und, v, name, pic);
+			"not be used when making %s%s"),
+		      input_bfd, howto->name, und, v, name,
+		      object, pic);
   bfd_set_error (bfd_error_bad_value);
   sec->check_relocs_failed = 1;
   return FALSE;
@@ -1787,26 +1430,25 @@ elf_x86_64_need_pic (bfd *input_bfd, ase
    instructions.  */
 
 static bfd_boolean
-elf_x86_64_convert_load_reloc (bfd *abfd, asection *sec,
+elf_x86_64_convert_load_reloc (bfd *abfd,
 			       bfd_byte *contents,
+			       unsigned int *r_type_p,
 			       Elf_Internal_Rela *irel,
 			       struct elf_link_hash_entry *h,
 			       bfd_boolean *converted,
 			       struct bfd_link_info *link_info)
 {
-  struct elf_x86_64_link_hash_table *htab;
+  struct elf_x86_link_hash_table *htab;
   bfd_boolean is_pic;
-  bfd_boolean require_reloc_pc32;
+  bfd_boolean no_overflow;
   bfd_boolean relocx;
   bfd_boolean to_reloc_pc32;
   asection *tsec;
-  char symtype;
   bfd_signed_vma raddend;
   unsigned int opcode;
   unsigned int modrm;
-  unsigned int r_type = ELF32_R_TYPE (irel->r_info);
+  unsigned int r_type = *r_type_p;
   unsigned int r_symndx;
-  bfd_vma toff;
   bfd_vma roff = irel->r_offset;
 
   if (roff < (r_type == R_X86_64_REX_GOTPCRELX ? 3 : 2))
@@ -1817,16 +1459,14 @@ elf_x86_64_convert_load_reloc (bfd *abfd
   if (raddend != -4)
     return TRUE;
 
-  htab = elf_x86_64_hash_table (link_info);
+  htab = elf_x86_hash_table (link_info, X86_64_ELF_DATA);
   is_pic = bfd_link_pic (link_info);
 
   relocx = (r_type == R_X86_64_GOTPCRELX
 	    || r_type == R_X86_64_REX_GOTPCRELX);
 
-  /* TRUE if we can convert only to R_X86_64_PC32.  Enable it for
-     --no-relax.  */
-  require_reloc_pc32
-    = link_info->disable_target_specific_optimizations > 1;
+  /* TRUE if --no-relax is used.  */
+  no_overflow = link_info->disable_target_specific_optimizations > 1;
 
   r_symndx = htab->r_sym (irel->r_info);
 
@@ -1845,12 +1485,12 @@ elf_x86_64_convert_load_reloc (bfd *abfd
   /* We convert only to R_X86_64_PC32:
      1. Branch.
      2. R_X86_64_GOTPCREL since we can't modify REX byte.
-     3. require_reloc_pc32 is true.
+     3. no_overflow is true.
      4. PIC.
      */
   to_reloc_pc32 = (opcode == 0xff
 		   || !relocx
-		   || require_reloc_pc32
+		   || no_overflow
 		   || is_pic);
 
   /* Get the symbol referred to by the reloc.  */
@@ -1863,8 +1503,6 @@ elf_x86_64_convert_load_reloc (bfd *abfd
       if (isym->st_shndx == SHN_UNDEF)
 	return TRUE;
 
-      symtype = ELF_ST_TYPE (isym->st_info);
-
       if (isym->st_shndx == SHN_ABS)
 	tsec = bfd_abs_section_ptr;
       else if (isym->st_shndx == SHN_COMMON)
@@ -1873,8 +1511,6 @@ elf_x86_64_convert_load_reloc (bfd *abfd
 	tsec = &_bfd_elf_large_com_section;
       else
 	tsec = bfd_section_from_elf_index (abfd, isym->st_shndx);
-
-      toff = isym->st_value;
     }
   else
     {
@@ -1884,16 +1520,21 @@ elf_x86_64_convert_load_reloc (bfd *abfd
 	 GOTPCRELX relocations since we need to modify REX byte.
 	 It is OK convert mov with R_X86_64_GOTPCREL to
 	 R_X86_64_PC32.  */
+      bfd_boolean local_ref;
+      struct elf_x86_link_hash_entry *eh = elf_x86_hash_entry (h);
+
+      /* NB: Also set linker_def via SYMBOL_REFERENCES_LOCAL_P.  */
+      local_ref = SYMBOL_REFERENCES_LOCAL_P (link_info, h);
       if ((relocx || opcode == 0x8b)
-	  && UNDEFINED_WEAK_RESOLVED_TO_ZERO (link_info,
-					      TRUE,
-					      elf_x86_64_hash_entry (h)))
+	  && (h->root.type == bfd_link_hash_undefweak
+	      && !eh->linker_def
+	      && local_ref))
 	{
 	  if (opcode == 0xff)
 	    {
 	      /* Skip for branch instructions since R_X86_64_PC32
 		 may overflow.  */
-	      if (require_reloc_pc32)
+	      if (no_overflow)
 		return TRUE;
 	    }
 	  else if (relocx)
@@ -1913,30 +1554,34 @@ elf_x86_64_convert_load_reloc (bfd *abfd
 	}
       /* Avoid optimizing GOTPCREL relocations againt _DYNAMIC since
 	 ld.so may use its link-time address.  */
-      else if ((h->def_regular
-		|| h->root.type == bfd_link_hash_defined
-		|| h->root.type == bfd_link_hash_defweak)
-	       && h != htab->elf.hdynamic
-	       && SYMBOL_REFERENCES_LOCAL (link_info, h))
+      else if (h->start_stop
+	       || eh->linker_def
+	       || ((h->def_regular
+		    || h->root.type == bfd_link_hash_defined
+		    || h->root.type == bfd_link_hash_defweak)
+		   && h != htab->elf.hdynamic
+		   && local_ref))
 	{
 	  /* bfd_link_hash_new or bfd_link_hash_undefined is
 	     set by an assignment in a linker script in
-	     bfd_elf_record_link_assignment.   */
-	  if (h->def_regular
-	      && (h->root.type == bfd_link_hash_new
-		  || h->root.type == bfd_link_hash_undefined
-		  || ((h->root.type == bfd_link_hash_defined
-		       || h->root.type == bfd_link_hash_defweak)
-		      && h->root.u.def.section == bfd_und_section_ptr)))
+	     bfd_elf_record_link_assignment.  start_stop is set
+	     on __start_SECNAME/__stop_SECNAME which mark section
+	     SECNAME.  */
+	  if (h->start_stop
+	      || eh->linker_def
+	      || (h->def_regular
+		  && (h->root.type == bfd_link_hash_new
+		      || h->root.type == bfd_link_hash_undefined
+		      || ((h->root.type == bfd_link_hash_defined
+			   || h->root.type == bfd_link_hash_defweak)
+			  && h->root.u.def.section == bfd_und_section_ptr))))
 	    {
 	      /* Skip since R_X86_64_32/R_X86_64_32S may overflow.  */
-	      if (require_reloc_pc32)
+	      if (no_overflow)
 		return TRUE;
 	      goto convert;
 	    }
 	  tsec = h->root.u.def.section;
-	  toff = h->root.u.def.value;
-	  symtype = h->type;
 	}
       else
 	return TRUE;
@@ -1947,100 +1592,17 @@ elf_x86_64_convert_load_reloc (bfd *abfd
       && (elf_section_flags (tsec) & SHF_X86_64_LARGE) != 0)
     return TRUE;
 
-  /* We can only estimate relocation overflow for R_X86_64_PC32.  */
-  if (!to_reloc_pc32)
-    goto convert;
-
-  if (tsec->sec_info_type == SEC_INFO_TYPE_MERGE)
-    {
-      /* At this stage in linking, no SEC_MERGE symbol has been
-	 adjusted, so all references to such symbols need to be
-	 passed through _bfd_merged_section_offset.  (Later, in
-	 relocate_section, all SEC_MERGE symbols *except* for
-	 section symbols have been adjusted.)
-
-	 gas may reduce relocations against symbols in SEC_MERGE
-	 sections to a relocation against the section symbol when
-	 the original addend was zero.  When the reloc is against
-	 a section symbol we should include the addend in the
-	 offset passed to _bfd_merged_section_offset, since the
-	 location of interest is the original symbol.  On the
-	 other hand, an access to "sym+addend" where "sym" is not
-	 a section symbol should not include the addend;  Such an
-	 access is presumed to be an offset from "sym";  The
-	 location of interest is just "sym".  */
-      if (symtype == STT_SECTION)
-	toff += raddend;
-
-      toff = _bfd_merged_section_offset (abfd, &tsec,
-					 elf_section_data (tsec)->sec_info,
-					 toff);
-
-      if (symtype != STT_SECTION)
-	toff += raddend;
-    }
-  else
-    toff += raddend;
+  /* Skip since R_X86_64_PC32/R_X86_64_32/R_X86_64_32S may overflow.  */
+  if (no_overflow)
+    return TRUE;
 
-  /* Don't convert if R_X86_64_PC32 relocation overflows.  */
-  if (tsec->output_section == sec->output_section)
-    {
-      if ((toff - roff + 0x80000000) > 0xffffffff)
-	return TRUE;
-    }
-  else
+convert:
+  if (opcode == 0xff)
     {
-      bfd_signed_vma distance;
-
-      /* At this point, we don't know the load addresses of TSEC
-	 section nor SEC section.  We estimate the distrance between
-	 SEC and TSEC.  We store the estimated distances in the
-	 compressed_size field of the output section, which is only
-	 used to decompress the compressed input section.  */
-      if (sec->output_section->compressed_size == 0)
-	{
-	  asection *asect;
-	  bfd_size_type size = 0;
-	  for (asect = link_info->output_bfd->sections;
-	       asect != NULL;
-	       asect = asect->next)
-	    /* Skip debug sections since compressed_size is used to
-	       compress debug sections.  */
-	    if ((asect->flags & SEC_DEBUGGING) == 0)
-	      {
-		asection *i;
-		for (i = asect->map_head.s;
-		     i != NULL;
-		     i = i->map_head.s)
-		  {
-		    size = align_power (size, i->alignment_power);
-		    size += i->size;
-		  }
-		asect->compressed_size = size;
-	      }
-	}
-
-      /* Don't convert GOTPCREL relocations if TSEC isn't placed
-	 after SEC.  */
-      distance = (tsec->output_section->compressed_size
-		  - sec->output_section->compressed_size);
-      if (distance < 0)
-	return TRUE;
-
-      /* Take PT_GNU_RELRO segment into account by adding
-	 maxpagesize.  */
-      if ((toff + distance + get_elf_backend_data (abfd)->maxpagesize
-	   - roff + 0x80000000) > 0xffffffff)
-	return TRUE;
-    }
-
-convert:
-  if (opcode == 0xff)
-    {
-      /* We have "call/jmp *foo@GOTPCREL(%rip)".  */
-      unsigned int nop;
-      unsigned int disp;
-      bfd_vma nop_offset;
+      /* We have "call/jmp *foo@GOTPCREL(%rip)".  */
+      unsigned int nop;
+      unsigned int disp;
+      bfd_vma nop_offset;
 
       /* Convert R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX to
 	 R_X86_64_PC32.  */
@@ -2057,15 +1619,15 @@ convert:
 	}
       else
 	{
-	  struct elf_x86_64_link_hash_entry *eh
-	    = (struct elf_x86_64_link_hash_entry *) h;
+	  struct elf_x86_link_hash_entry *eh
+	    = (struct elf_x86_link_hash_entry *) h;
 
 	  /* Convert to "nop call foo".  ADDR_PREFIX_OPCODE
 	     is a nop prefix.  */
 	  modrm = 0xe8;
 	  /* To support TLS optimization, always use addr32 prefix for
 	     "call *__tls_get_addr@GOTPCREL(%rip)".  */
-	  if (eh && eh->tls_get_addr == 1)
+	  if (eh && eh->tls_get_addr)
 	    {
 	      nop = 0x67;
 	      nop_offset = irel->r_offset - 2;
@@ -2176,7 +1738,9 @@ rewrite_modrm_rex:
       bfd_put_8 (abfd, opcode, contents + roff - 2);
     }
 
-  irel->r_info = htab->r_info (r_symndx, r_type);
+  *r_type_p = r_type;
+  irel->r_info = htab->r_info (r_symndx,
+			       r_type | R_X86_64_converted_reloc_bit);
 
   *converted = TRUE;
 
@@ -2192,14 +1756,14 @@ elf_x86_64_check_relocs (bfd *abfd, stru
 			 asection *sec,
 			 const Elf_Internal_Rela *relocs)
 {
-  struct elf_x86_64_link_hash_table *htab;
+  struct elf_x86_link_hash_table *htab;
   Elf_Internal_Shdr *symtab_hdr;
   struct elf_link_hash_entry **sym_hashes;
   const Elf_Internal_Rela *rel;
   const Elf_Internal_Rela *rel_end;
   asection *sreloc;
   bfd_byte *contents;
-  bfd_boolean use_plt_got;
+  bfd_boolean converted;
 
   if (bfd_link_relocatable (info))
     return TRUE;
@@ -2213,15 +1777,15 @@ elf_x86_64_check_relocs (bfd *abfd, stru
   if ((sec->flags & SEC_ALLOC) == 0)
     return TRUE;
 
-  BFD_ASSERT (is_x86_64_elf (abfd));
-
-  htab = elf_x86_64_hash_table (info);
+  htab = elf_x86_hash_table (info, X86_64_ELF_DATA);
   if (htab == NULL)
     {
       sec->check_relocs_failed = 1;
       return FALSE;
     }
 
+  BFD_ASSERT (is_x86_elf (abfd, htab));
+
   /* Get the section contents.  */
   if (elf_section_data (sec)->this_hdr.contents != NULL)
     contents = elf_section_data (sec)->this_hdr.contents;
@@ -2231,23 +1795,24 @@ elf_x86_64_check_relocs (bfd *abfd, stru
       return FALSE;
     }
 
-  use_plt_got = get_elf_x86_64_backend_data (abfd) == &elf_x86_64_arch_bed;
-
   symtab_hdr = &elf_symtab_hdr (abfd);
   sym_hashes = elf_sym_hashes (abfd);
 
+  converted = FALSE;
+
   sreloc = NULL;
 
   rel_end = relocs + sec->reloc_count;
   for (rel = relocs; rel < rel_end; rel++)
     {
       unsigned int r_type;
-      unsigned long r_symndx;
+      unsigned int r_symndx;
       struct elf_link_hash_entry *h;
-      struct elf_x86_64_link_hash_entry *eh;
+      struct elf_x86_link_hash_entry *eh;
       Elf_Internal_Sym *isym;
       const char *name;
       bfd_boolean size_reloc;
+      bfd_boolean converted_reloc;
 
       r_symndx = htab->r_sym (rel->r_info);
       r_type = ELF32_R_TYPE (rel->r_info);
@@ -2271,12 +1836,14 @@ elf_x86_64_check_relocs (bfd *abfd, stru
 	  /* Check relocation against local STT_GNU_IFUNC symbol.  */
 	  if (ELF_ST_TYPE (isym->st_info) == STT_GNU_IFUNC)
 	    {
-	      h = elf_x86_64_get_local_sym_hash (htab, abfd, rel,
-						 TRUE);
+	      h = _bfd_elf_x86_get_local_sym_hash (htab, abfd, rel,
+						   TRUE);
 	      if (h == NULL)
 		goto error_return;
 
 	      /* Fake a STT_GNU_IFUNC symbol.  */
+	      h->root.root.string = bfd_elf_sym_name (abfd, symtab_hdr,
+						      isym, NULL);
 	      h->type = STT_GNU_IFUNC;
 	      h->def_regular = 1;
 	      h->ref_regular = 1;
@@ -2330,116 +1897,49 @@ elf_x86_64_check_relocs (bfd *abfd, stru
 
       if (h != NULL)
 	{
-	  switch (r_type)
-	    {
-	    default:
-	      break;
-
-	    case R_X86_64_PC32_BND:
-	    case R_X86_64_PLT32_BND:
-	    case R_X86_64_PC32:
-	    case R_X86_64_PLT32:
-	    case R_X86_64_32:
-	    case R_X86_64_64:
-	      /* MPX PLT is supported only if elf_x86_64_arch_bed
-		 is used in 64-bit mode.  */
-	      if (ABI_64_P (abfd)
-		  && info->bndplt
-		  && (get_elf_x86_64_backend_data (abfd)
-		      == &elf_x86_64_arch_bed))
-		{
-		  elf_x86_64_hash_entry (h)->has_bnd_reloc = 1;
-
-		  /* Create the second PLT for Intel MPX support.  */
-		  if (htab->plt_bnd == NULL)
-		    {
-		      const struct elf_backend_data *bed;
-
-		      bed = get_elf_backend_data (info->output_bfd);
-		      BFD_ASSERT (sizeof (elf_x86_64_bnd_plt2_entry) == 8
-				  && (sizeof (elf_x86_64_bnd_plt2_entry)
-				      == sizeof (elf_x86_64_legacy_plt2_entry)));
-
-		      if (htab->elf.dynobj == NULL)
-			htab->elf.dynobj = abfd;
-		      htab->plt_bnd
-			= bfd_make_section_anyway_with_flags (htab->elf.dynobj,
-							      ".plt.bnd",
-							     (bed->dynamic_sec_flags
-							      | SEC_ALLOC
-							      | SEC_CODE
-							      | SEC_LOAD
-							      | SEC_READONLY));
-		      if (htab->plt_bnd == NULL
-			  || !bfd_set_section_alignment (htab->elf.dynobj,
-							 htab->plt_bnd,
-							 3))
-			goto error_return;
-		    }
-
-		  if (!info->no_ld_generated_unwind_info
-		      && htab->plt_bnd_eh_frame == NULL)
-		    {
-		      flagword flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY
-					| SEC_HAS_CONTENTS | SEC_IN_MEMORY
-					| SEC_LINKER_CREATED);
-		      htab->plt_bnd_eh_frame
-			= bfd_make_section_anyway_with_flags (htab->elf.dynobj,
-							      ".eh_frame",
-							      flags);
-		      if (htab->plt_bnd_eh_frame == NULL
-			  || !bfd_set_section_alignment (htab->elf.dynobj,
-							 htab->plt_bnd_eh_frame,
-							 3))
-			goto error_return;
-		    }
-		}
-	      /* Fall through.  */
-
-	    case R_X86_64_32S:
-	    case R_X86_64_PC64:
-	    case R_X86_64_GOTPCREL:
-	    case R_X86_64_GOTPCRELX:
-	    case R_X86_64_REX_GOTPCRELX:
-	    case R_X86_64_GOTPCREL64:
-	      if (htab->elf.dynobj == NULL)
-		htab->elf.dynobj = abfd;
-	      /* Create the ifunc sections for static executables.  */
-	      if (h->type == STT_GNU_IFUNC
-		  && !_bfd_elf_create_ifunc_sections (htab->elf.dynobj,
-						      info))
-		goto error_return;
-	      break;
-	    }
-
 	  /* It is referenced by a non-shared object. */
 	  h->ref_regular = 1;
-	  h->root.non_ir_ref = 1;
 
 	  if (h->type == STT_GNU_IFUNC)
 	    elf_tdata (info->output_bfd)->has_gnu_symbols
 	      |= elf_gnu_symbol_ifunc;
 	}
 
+      converted_reloc = FALSE;
+      if ((r_type == R_X86_64_GOTPCREL
+	   || r_type == R_X86_64_GOTPCRELX
+	   || r_type == R_X86_64_REX_GOTPCRELX)
+	  && (h == NULL || h->type != STT_GNU_IFUNC))
+	{
+	  Elf_Internal_Rela *irel = (Elf_Internal_Rela *) rel;
+	  if (!elf_x86_64_convert_load_reloc (abfd, contents, &r_type,
+					      irel, h, &converted_reloc,
+					      info))
+	    goto error_return;
+
+	  if (converted_reloc)
+	    converted = TRUE;
+	}
+
       if (! elf_x86_64_tls_transition (info, abfd, sec, contents,
 				       symtab_hdr, sym_hashes,
 				       &r_type, GOT_UNKNOWN,
 				       rel, rel_end, h, r_symndx, FALSE))
 	goto error_return;
 
-      eh = (struct elf_x86_64_link_hash_entry *) h;
+      eh = (struct elf_x86_link_hash_entry *) h;
       switch (r_type)
 	{
 	case R_X86_64_TLSLD:
-	  htab->tls_ld_got.refcount += 1;
+	  htab->tls_ld_or_ldm_got.refcount = 1;
 	  goto create_got;
 
 	case R_X86_64_TPOFF32:
 	  if (!bfd_link_executable (info) && ABI_64_P (abfd))
-	    return elf_x86_64_need_pic (abfd, sec, h, symtab_hdr, isym,
+	    return elf_x86_64_need_pic (info, abfd, sec, h, symtab_hdr, isym,
 					&x86_64_elf_howto_table[r_type]);
 	  if (eh != NULL)
-	    eh->has_got_reloc = 1;
+	    eh->zero_undefweak &= 0x2;
 	  break;
 
 	case R_X86_64_GOTTPOFF:
@@ -2473,7 +1973,7 @@ elf_x86_64_check_relocs (bfd *abfd, stru
 
 	    if (h != NULL)
 	      {
-		h->got.refcount += 1;
+		h->got.refcount = 1;
 		old_tls_type = eh->tls_type;
 	      }
 	    else
@@ -2494,14 +1994,14 @@ elf_x86_64_check_relocs (bfd *abfd, stru
 		    if (local_got_refcounts == NULL)
 		      goto error_return;
 		    elf_local_got_refcounts (abfd) = local_got_refcounts;
-		    elf_x86_64_local_tlsdesc_gotent (abfd)
+		    elf_x86_local_tlsdesc_gotent (abfd)
 		      = (bfd_vma *) (local_got_refcounts + symtab_hdr->sh_info);
-		    elf_x86_64_local_got_tls_type (abfd)
+		    elf_x86_local_got_tls_type (abfd)
 		      = (char *) (local_got_refcounts + 2 * symtab_hdr->sh_info);
 		  }
-		local_got_refcounts[r_symndx] += 1;
+		local_got_refcounts[r_symndx] = 1;
 		old_tls_type
-		  = elf_x86_64_local_got_tls_type (abfd) [r_symndx];
+		  = elf_x86_local_got_tls_type (abfd) [r_symndx];
 	      }
 
 	    /* If a TLS symbol is accessed using IE at least once,
@@ -2537,7 +2037,7 @@ elf_x86_64_check_relocs (bfd *abfd, stru
 		if (eh != NULL)
 		  eh->tls_type = tls_type;
 		else
-		  elf_x86_64_local_got_tls_type (abfd) [r_symndx] = tls_type;
+		  elf_x86_local_got_tls_type (abfd) [r_symndx] = tls_type;
 	      }
 	  }
 	  /* Fall through */
@@ -2547,15 +2047,7 @@ elf_x86_64_check_relocs (bfd *abfd, stru
 	case R_X86_64_GOTPC64:
 	create_got:
 	  if (eh != NULL)
-	    eh->has_got_reloc = 1;
-	  if (htab->elf.sgot == NULL)
-	    {
-	      if (htab->elf.dynobj == NULL)
-		htab->elf.dynobj = abfd;
-	      if (!_bfd_elf_create_got_section (htab->elf.dynobj,
-						info))
-		goto error_return;
-	    }
+	    eh->zero_undefweak &= 0x2;
 	  break;
 
 	case R_X86_64_PLT32:
@@ -2572,9 +2064,9 @@ elf_x86_64_check_relocs (bfd *abfd, stru
 	  if (h == NULL)
 	    continue;
 
-	  eh->has_got_reloc = 1;
+	  eh->zero_undefweak &= 0x2;
 	  h->needs_plt = 1;
-	  h->plt.refcount += 1;
+	  h->plt.refcount = 1;
 	  break;
 
 	case R_X86_64_PLTOFF64:
@@ -2583,7 +2075,7 @@ elf_x86_64_check_relocs (bfd *abfd, stru
 	  if (h != NULL)
 	    {
 	      h->needs_plt = 1;
-	      h->plt.refcount += 1;
+	      h->plt.refcount = 1;
 	    }
 	  goto create_got;
 
@@ -2604,13 +2096,14 @@ elf_x86_64_check_relocs (bfd *abfd, stru
 	     sections we don't care about, such as debug sections or
 	     when relocation overflow check is disabled.  */
 	  if (!info->no_reloc_overflow_check
+	      && !converted_reloc
 	      && (bfd_link_pic (info)
 		  || (bfd_link_executable (info)
 		      && h != NULL
 		      && !h->def_regular
 		      && h->def_dynamic
 		      && (sec->flags & SEC_READONLY) == 0)))
-	    return elf_x86_64_need_pic (abfd, sec, h, symtab_hdr, isym,
+	    return elf_x86_64_need_pic (info, abfd, sec, h, symtab_hdr, isym,
 					&x86_64_elf_howto_table[r_type]);
 	  /* Fall through.  */
 
@@ -2622,7 +2115,7 @@ elf_x86_64_check_relocs (bfd *abfd, stru
 	case R_X86_64_64:
 pointer:
 	  if (eh != NULL && (sec->flags & SEC_CODE) != 0)
-	    eh->has_non_got_reloc = 1;
+	    eh->zero_undefweak |= 0x2;
 	  /* We are called after all symbols have been resolved.  Only
 	     relocation against STT_GNU_IFUNC symbol must go through
 	     PLT.  */
@@ -2630,20 +2123,7 @@ pointer:
 	      && (bfd_link_executable (info)
 		  || h->type == STT_GNU_IFUNC))
 	    {
-	      /* If this reloc is in a read-only section, we might
-		 need a copy reloc.  We can't check reliably at this
-		 stage whether the section is read-only, as input
-		 sections have not yet been mapped to output sections.
-		 Tentatively set the flag for now, and correct in
-		 adjust_dynamic_symbol.  */
-	      h->non_got_ref = 1;
-
-	      /* We may need a .plt entry if the symbol is a function
-		 defined in a shared lib or is a STT_GNU_IFUNC function
-		 referenced from the code or read-only section.  */
-	      if (!h->def_regular
-		  || (sec->flags & (SEC_CODE | SEC_READONLY)) != 0)
-		h->plt.refcount += 1;
+	      bfd_boolean func_pointer_ref = FALSE;
 
 	      if (r_type == R_X86_64_PC32)
 		{
@@ -2665,52 +2145,32 @@ pointer:
 			  || (!ABI_64_P (abfd)
 			      && (r_type == R_X86_64_32
 				  || r_type == R_X86_64_32S))))
-		    eh->func_pointer_refcount += 1;
+		    func_pointer_ref = TRUE;
+		}
+
+	      if (!func_pointer_ref)
+		{
+		  /* If this reloc is in a read-only section, we might
+		     need a copy reloc.  We can't check reliably at this
+		     stage whether the section is read-only, as input
+		     sections have not yet been mapped to output sections.
+		     Tentatively set the flag for now, and correct in
+		     adjust_dynamic_symbol.  */
+		  h->non_got_ref = 1;
+
+		  /* We may need a .plt entry if the symbol is a function
+		     defined in a shared lib or is a function referenced
+		     from the code or read-only section.  */
+		  if (!h->def_regular
+		      || (sec->flags & (SEC_CODE | SEC_READONLY)) != 0)
+		    h->plt.refcount = 1;
 		}
 	    }
 
 	  size_reloc = FALSE;
 do_size:
-	  /* If we are creating a shared library, and this is a reloc
-	     against a global symbol, or a non PC relative reloc
-	     against a local symbol, then we need to copy the reloc
-	     into the shared library.  However, if we are linking with
-	     -Bsymbolic, we do not need to copy a reloc against a
-	     global symbol which is defined in an object we are
-	     including in the link (i.e., DEF_REGULAR is set).	At
-	     this point we have not seen all the input files, so it is
-	     possible that DEF_REGULAR is not set now but will be set
-	     later (it is never cleared).  In case of a weak definition,
-	     DEF_REGULAR may be cleared later by a strong definition in
-	     a shared library.  We account for that possibility below by
-	     storing information in the relocs_copied field of the hash
-	     table entry.  A similar situation occurs when creating
-	     shared libraries and symbol visibility changes render the
-	     symbol local.
-
-	     If on the other hand, we are creating an executable, we
-	     may need to keep relocations for symbols satisfied by a
-	     dynamic library if we manage to avoid copy relocs for the
-	     symbol.
-
-	     Generate dynamic pointer relocation against STT_GNU_IFUNC
-	     symbol in the non-code section.  */
-	  if ((bfd_link_pic (info)
-	       && (! IS_X86_64_PCREL_TYPE (r_type)
-		   || (h != NULL
-		       && (! (bfd_link_pie (info)
-			      || SYMBOLIC_BIND (info, h))
-			   || h->root.type == bfd_link_hash_defweak
-			   || !h->def_regular))))
-	      || (h != NULL
-		  && h->type == STT_GNU_IFUNC
-		  && r_type == htab->pointer_r_type
-		  && (sec->flags & SEC_CODE) == 0)
-	      || (ELIMINATE_COPY_RELOCS
-		  && !bfd_link_pic (info)
-		  && h != NULL
-		  && (h->root.type == bfd_link_hash_defweak
-		      || !h->def_regular)))
+	  if (NEED_DYNAMIC_RELOCATION_P (info, h, sec, r_type,
+					 htab->pointer_r_type))
 	    {
 	      struct elf_dyn_relocs *p;
 	      struct elf_dyn_relocs **head;
@@ -2720,9 +2180,6 @@ do_size:
 		 this reloc.  */
 	      if (sreloc == NULL)
 		{
-		  if (htab->elf.dynobj == NULL)
-		    htab->elf.dynobj = abfd;
-
 		  sreloc = _bfd_elf_make_dynamic_reloc_section
 		    (sec, htab->elf.dynobj, ABI_64_P (abfd) ? 3 : 2,
 		     abfd, /*rela?*/ TRUE);
@@ -2776,7 +2233,7 @@ do_size:
 
 	      p->count += 1;
 	      /* Count size relocation as PC-relative relocation.  */
-	      if (IS_X86_64_PCREL_TYPE (r_type) || size_reloc)
+	      if (X86_PCREL_TYPE_P (r_type) || size_reloc)
 		p->pc_count += 1;
 	    }
 	  break;
@@ -2800,1380 +2257,31 @@ do_size:
 	default:
 	  break;
 	}
-
-      if (use_plt_got
-	  && h != NULL
-	  && h->plt.refcount > 0
-	  && (((info->flags & DF_BIND_NOW) && !h->pointer_equality_needed)
-	      || h->got.refcount > 0)
-	  && htab->plt_got == NULL)
-	{
-	  /* Create the GOT procedure linkage table.  */
-	  unsigned int plt_got_align;
-	  const struct elf_backend_data *bed;
-
-	  bed = get_elf_backend_data (info->output_bfd);
-	  BFD_ASSERT (sizeof (elf_x86_64_legacy_plt2_entry) == 8
-		      && (sizeof (elf_x86_64_bnd_plt2_entry)
-			  == sizeof (elf_x86_64_legacy_plt2_entry)));
-	  plt_got_align = 3;
-
-	  if (htab->elf.dynobj == NULL)
-	    htab->elf.dynobj = abfd;
-	  htab->plt_got
-	    = bfd_make_section_anyway_with_flags (htab->elf.dynobj,
-						  ".plt.got",
-						  (bed->dynamic_sec_flags
-						   | SEC_ALLOC
-						   | SEC_CODE
-						   | SEC_LOAD
-						   | SEC_READONLY));
-	  if (htab->plt_got == NULL
-	      || !bfd_set_section_alignment (htab->elf.dynobj,
-					     htab->plt_got,
-					     plt_got_align))
-	    goto error_return;
-
-	  if (!info->no_ld_generated_unwind_info
-	      && htab->plt_got_eh_frame == NULL
-	      && get_elf_x86_64_backend_data (abfd)->eh_frame_plt_got != NULL)
-	    {
-	      flagword flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY
-				| SEC_HAS_CONTENTS | SEC_IN_MEMORY
-				| SEC_LINKER_CREATED);
-	      htab->plt_got_eh_frame
-		= bfd_make_section_anyway_with_flags (htab->elf.dynobj,
-						      ".eh_frame",
-						      flags);
-	      if (htab->plt_got_eh_frame == NULL
-		  || !bfd_set_section_alignment (htab->elf.dynobj,
-						 htab->plt_got_eh_frame,
-						 ABI_64_P (htab->elf.dynobj) ? 3 : 2))
-		goto error_return;
-	    }
-	}
-
-      if ((r_type == R_X86_64_GOTPCREL
-	   || r_type == R_X86_64_GOTPCRELX
-	   || r_type == R_X86_64_REX_GOTPCRELX)
-	  && (h == NULL || h->type != STT_GNU_IFUNC))
-	sec->need_convert_load = 1;
     }
 
   if (elf_section_data (sec)->this_hdr.contents != contents)
     {
-      if (!info->keep_memory)
+      if (!converted && !info->keep_memory)
 	free (contents);
       else
 	{
-	  /* Cache the section contents for elf_link_input_bfd.  */
+	  /* Cache the section contents for elf_link_input_bfd if any
+	     load is converted or --no-keep-memory isn't used.  */
 	  elf_section_data (sec)->this_hdr.contents = contents;
 	}
     }
 
-  return TRUE;
-
-error_return:
-  if (elf_section_data (sec)->this_hdr.contents != contents)
-    free (contents);
-  sec->check_relocs_failed = 1;
-  return FALSE;
-}
-
-/* Return the section that should be marked against GC for a given
-   relocation.	*/
-
-static asection *
-elf_x86_64_gc_mark_hook (asection *sec,
-			 struct bfd_link_info *info,
-			 Elf_Internal_Rela *rel,
-			 struct elf_link_hash_entry *h,
-			 Elf_Internal_Sym *sym)
-{
-  if (h != NULL)
-    switch (ELF32_R_TYPE (rel->r_info))
-      {
-      case R_X86_64_GNU_VTINHERIT:
-      case R_X86_64_GNU_VTENTRY:
-	return NULL;
-      }
-
-  return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
-}
-
-/* Remove undefined weak symbol from the dynamic symbol table if it
-   is resolved to 0.   */
+  /* Cache relocations if any load is converted.  */
+  if (elf_section_data (sec)->relocs != relocs && converted)
+    elf_section_data (sec)->relocs = (Elf_Internal_Rela *) relocs;
 
-static bfd_boolean
-elf_x86_64_fixup_symbol (struct bfd_link_info *info,
-		       struct elf_link_hash_entry *h)
-{
-  if (h->dynindx != -1
-      && UNDEFINED_WEAK_RESOLVED_TO_ZERO (info,
-					  elf_x86_64_hash_entry (h)->has_got_reloc,
-					  elf_x86_64_hash_entry (h)))
-    {
-      h->dynindx = -1;
-      _bfd_elf_strtab_delref (elf_hash_table (info)->dynstr,
-			      h->dynstr_index);
-    }
-  return TRUE;
-}
-
-/* Adjust a symbol defined by a dynamic object and referenced by a
-   regular object.  The current definition is in some section of the
-   dynamic object, but we're not including those sections.  We have to
-   change the definition to something the rest of the link can
-   understand.	*/
-
-static bfd_boolean
-elf_x86_64_adjust_dynamic_symbol (struct bfd_link_info *info,
-				  struct elf_link_hash_entry *h)
-{
-  struct elf_x86_64_link_hash_table *htab;
-  asection *s, *srel;
-  struct elf_x86_64_link_hash_entry *eh;
-  struct elf_dyn_relocs *p;
-
-  /* STT_GNU_IFUNC symbol must go through PLT. */
-  if (h->type == STT_GNU_IFUNC)
-    {
-      /* All local STT_GNU_IFUNC references must be treate as local
-	 calls via local PLT.  */
-      if (h->ref_regular
-	  && SYMBOL_CALLS_LOCAL (info, h))
-	{
-	  bfd_size_type pc_count = 0, count = 0;
-	  struct elf_dyn_relocs **pp;
-
-	  eh = (struct elf_x86_64_link_hash_entry *) h;
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
-	    {
-	      pc_count += p->pc_count;
-	      p->count -= p->pc_count;
-	      p->pc_count = 0;
-	      count += p->count;
-	      if (p->count == 0)
-		*pp = p->next;
-	      else
-		pp = &p->next;
-	    }
-
-	  if (pc_count || count)
-	    {
-	      h->non_got_ref = 1;
-	      if (pc_count)
-		{
-		  /* Increment PLT reference count only for PC-relative
-		     references.  */
-		  h->needs_plt = 1;
-		  if (h->plt.refcount <= 0)
-		    h->plt.refcount = 1;
-		  else
-		    h->plt.refcount += 1;
-		}
-	    }
-	}
-
-      if (h->plt.refcount <= 0)
-	{
-	  h->plt.offset = (bfd_vma) -1;
-	  h->needs_plt = 0;
-	}
-      return TRUE;
-    }
-
-  /* If this is a function, put it in the procedure linkage table.  We
-     will fill in the contents of the procedure linkage table later,
-     when we know the address of the .got section.  */
-  if (h->type == STT_FUNC
-      || h->needs_plt)
-    {
-      if (h->plt.refcount <= 0
-	  || SYMBOL_CALLS_LOCAL (info, h)
-	  || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
-	      && h->root.type == bfd_link_hash_undefweak))
-	{
-	  /* This case can occur if we saw a PLT32 reloc in an input
-	     file, but the symbol was never referred to by a dynamic
-	     object, or if all references were garbage collected.  In
-	     such a case, we don't actually need to build a procedure
-	     linkage table, and we can just do a PC32 reloc instead.  */
-	  h->plt.offset = (bfd_vma) -1;
-	  h->needs_plt = 0;
-	}
-
-      return TRUE;
-    }
-  else
-    /* It's possible that we incorrectly decided a .plt reloc was
-       needed for an R_X86_64_PC32 reloc to a non-function sym in
-       check_relocs.  We can't decide accurately between function and
-       non-function syms in check-relocs;  Objects loaded later in
-       the link may change h->type.  So fix it now.  */
-    h->plt.offset = (bfd_vma) -1;
-
-  /* If this is a weak symbol, and there is a real definition, the
-     processor independent code will have arranged for us to see the
-     real definition first, and we can just use the same value.	 */
-  if (h->u.weakdef != NULL)
-    {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
-      if (ELIMINATE_COPY_RELOCS || info->nocopyreloc)
-	{
-	  eh = (struct elf_x86_64_link_hash_entry *) h;
-	  h->non_got_ref = h->u.weakdef->non_got_ref;
-	  eh->needs_copy = h->u.weakdef->needs_copy;
-	}
-      return TRUE;
-    }
-
-  /* This is a reference to a symbol defined by a dynamic object which
-     is not a function.	 */
-
-  /* If we are creating a shared library, we must presume that the
-     only references to the symbol are via the global offset table.
-     For such cases we need not do anything here; the relocations will
-     be handled correctly by relocate_section.	*/
-  if (!bfd_link_executable (info))
-    return TRUE;
-
-  /* If there are no references to this symbol that do not use the
-     GOT, we don't need to generate a copy reloc.  */
-  if (!h->non_got_ref)
-    return TRUE;
-
-  /* If -z nocopyreloc was given, we won't generate them either.  */
-  if (info->nocopyreloc)
-    {
-      h->non_got_ref = 0;
-      return TRUE;
-    }
-
-  if (ELIMINATE_COPY_RELOCS)
-    {
-      eh = (struct elf_x86_64_link_hash_entry *) h;
-      for (p = eh->dyn_relocs; p != NULL; p = p->next)
-	{
-	  s = p->sec->output_section;
-	  if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	    break;
-	}
-
-      /* If we didn't find any dynamic relocs in read-only sections, then
-	 we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
-      if (p == NULL)
-	{
-	  h->non_got_ref = 0;
-	  return TRUE;
-	}
-    }
-
-  /* We must allocate the symbol in our .dynbss section, which will
-     become part of the .bss section of the executable.	 There will be
-     an entry for this symbol in the .dynsym section.  The dynamic
-     object will contain position independent code, so all references
-     from the dynamic object to this symbol will go through the global
-     offset table.  The dynamic linker will use the .dynsym entry to
-     determine the address it must put in the global offset table, so
-     both the dynamic object and the regular object will refer to the
-     same memory location for the variable.  */
-
-  htab = elf_x86_64_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-
-  /* We must generate a R_X86_64_COPY reloc to tell the dynamic linker
-     to copy the initial value out of the dynamic object and into the
-     runtime process image.  */
-  if ((h->root.u.def.section->flags & SEC_READONLY) != 0)
-    {
-      s = htab->elf.sdynrelro;
-      srel = htab->elf.sreldynrelro;
-    }
-  else
-    {
-      s = htab->elf.sdynbss;
-      srel = htab->elf.srelbss;
-    }
-  if ((h->root.u.def.section->flags & SEC_ALLOC) != 0 && h->size != 0)
-    {
-      const struct elf_backend_data *bed;
-      bed = get_elf_backend_data (info->output_bfd);
-      srel->size += bed->s->sizeof_rela;
-      h->needs_copy = 1;
-    }
-
-  return _bfd_elf_adjust_dynamic_copy (info, h, s);
-}
-
-/* Allocate space in .plt, .got and associated reloc sections for
-   dynamic relocs.  */
-
-static bfd_boolean
-elf_x86_64_allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf)
-{
-  struct bfd_link_info *info;
-  struct elf_x86_64_link_hash_table *htab;
-  struct elf_x86_64_link_hash_entry *eh;
-  struct elf_dyn_relocs *p;
-  const struct elf_backend_data *bed;
-  unsigned int plt_entry_size;
-  bfd_boolean resolved_to_zero;
-
-  if (h->root.type == bfd_link_hash_indirect)
-    return TRUE;
-
-  eh = (struct elf_x86_64_link_hash_entry *) h;
-
-  info = (struct bfd_link_info *) inf;
-  htab = elf_x86_64_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-  bed = get_elf_backend_data (info->output_bfd);
-  plt_entry_size = GET_PLT_ENTRY_SIZE (info->output_bfd);
-
-  resolved_to_zero = UNDEFINED_WEAK_RESOLVED_TO_ZERO (info,
-						      eh->has_got_reloc,
-						      eh);
-
-  /* We can't use the GOT PLT if pointer equality is needed since
-     finish_dynamic_symbol won't clear symbol value and the dynamic
-     linker won't update the GOT slot.  We will get into an infinite
-     loop at run-time.  */
-  if (htab->plt_got != NULL
-      && h->type != STT_GNU_IFUNC
-      && !h->pointer_equality_needed
-      && h->plt.refcount > 0
-      && h->got.refcount > 0)
-    {
-      /* Don't use the regular PLT if there are both GOT and GOTPLT
-         reloctions.  */
-      h->plt.offset = (bfd_vma) -1;
-
-      /* Use the GOT PLT.  */
-      eh->plt_got.refcount = 1;
-    }
-
-  /* Clear the reference count of function pointer relocations if
-     symbol isn't a normal function.  */
-  if (h->type != STT_FUNC)
-    eh->func_pointer_refcount = 0;
-
-  /* Since STT_GNU_IFUNC symbol must go through PLT, we handle it
-     here if it is defined and referenced in a non-shared object.  */
-  if (h->type == STT_GNU_IFUNC
-      && h->def_regular)
-    {
-      if (_bfd_elf_allocate_ifunc_dyn_relocs (info, h,
-					      &eh->dyn_relocs,
-					      &htab->readonly_dynrelocs_against_ifunc,
-					      plt_entry_size,
-					      plt_entry_size,
-					      GOT_ENTRY_SIZE, TRUE))
-	{
-	  asection *s = htab->plt_bnd;
-	  if (h->plt.offset != (bfd_vma) -1 && s != NULL)
-	    {
-	      /* Use the .plt.bnd section if it is created.  */
-	      eh->plt_bnd.offset = s->size;
-
-	      /* Make room for this entry in the .plt.bnd section.  */
-	      s->size += sizeof (elf_x86_64_legacy_plt2_entry);
-	    }
-
-	  return TRUE;
-	}
-      else
-	return FALSE;
-    }
-  /* Don't create the PLT entry if there are only function pointer
-     relocations which can be resolved at run-time.  */
-  else if (htab->elf.dynamic_sections_created
-	   && (h->plt.refcount > eh->func_pointer_refcount
-	       || eh->plt_got.refcount > 0))
-    {
-      bfd_boolean use_plt_got;
-
-      /* Clear the reference count of function pointer relocations
-	 if PLT is used.  */
-      eh->func_pointer_refcount = 0;
-
-      if ((info->flags & DF_BIND_NOW) && !h->pointer_equality_needed)
-	{
-	  /* Don't use the regular PLT for DF_BIND_NOW. */
-	  h->plt.offset = (bfd_vma) -1;
-
-	  /* Use the GOT PLT.  */
-	  h->got.refcount = 1;
-	  eh->plt_got.refcount = 1;
-	}
-
-      use_plt_got = eh->plt_got.refcount > 0;
-
-      /* Make sure this symbol is output as a dynamic symbol.
-	 Undefined weak syms won't yet be marked as dynamic.  */
-      if (h->dynindx == -1
-	  && !h->forced_local
-	  && !resolved_to_zero)
-	{
-	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
-	    return FALSE;
-	}
-
-      if (bfd_link_pic (info)
-	  || WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, 0, h))
-	{
-	  asection *s = htab->elf.splt;
-	  asection *bnd_s = htab->plt_bnd;
-	  asection *got_s = htab->plt_got;
-
-	  /* If this is the first .plt entry, make room for the special
-	     first entry.  The .plt section is used by prelink to undo
-	     prelinking for dynamic relocations.  */
-	  if (s->size == 0)
-	    s->size = plt_entry_size;
-
-	  if (use_plt_got)
-	    eh->plt_got.offset = got_s->size;
-	  else
-	    {
-	      h->plt.offset = s->size;
-	      if (bnd_s)
-		eh->plt_bnd.offset = bnd_s->size;
-	    }
-
-	  /* If this symbol is not defined in a regular file, and we are
-	     not generating a shared library, then set the symbol to this
-	     location in the .plt.  This is required to make function
-	     pointers compare as equal between the normal executable and
-	     the shared library.  */
-	  if (! bfd_link_pic (info)
-	      && !h->def_regular)
-	    {
-	      if (use_plt_got)
-		{
-		  /* We need to make a call to the entry of the GOT PLT
-		     instead of regular PLT entry.  */
-		  h->root.u.def.section = got_s;
-		  h->root.u.def.value = eh->plt_got.offset;
-		}
-	      else
-		{
-		  if (bnd_s)
-		    {
-		      /* We need to make a call to the entry of the second
-			 PLT instead of regular PLT entry.  */
-		      h->root.u.def.section = bnd_s;
-		      h->root.u.def.value = eh->plt_bnd.offset;
-		    }
-		  else
-		    {
-		      h->root.u.def.section = s;
-		      h->root.u.def.value = h->plt.offset;
-		    }
-		}
-	    }
-
-	  /* Make room for this entry.  */
-	  if (use_plt_got)
-	    got_s->size += sizeof (elf_x86_64_legacy_plt2_entry);
-	  else
-	    {
-	      s->size += plt_entry_size;
-	      if (bnd_s)
-		bnd_s->size += sizeof (elf_x86_64_legacy_plt2_entry);
-
-	      /* We also need to make an entry in the .got.plt section,
-		 which will be placed in the .got section by the linker
-		 script.  */
-	      htab->elf.sgotplt->size += GOT_ENTRY_SIZE;
-
-	      /* There should be no PLT relocation against resolved
-		 undefined weak symbol in executable.  */
-	      if (!resolved_to_zero)
-		{
-		  /* We also need to make an entry in the .rela.plt
-		     section.  */
-		  htab->elf.srelplt->size += bed->s->sizeof_rela;
-		  htab->elf.srelplt->reloc_count++;
-		}
-	    }
-	}
-      else
-	{
-	  eh->plt_got.offset = (bfd_vma) -1;
-	  h->plt.offset = (bfd_vma) -1;
-	  h->needs_plt = 0;
-	}
-    }
-  else
-    {
-      eh->plt_got.offset = (bfd_vma) -1;
-      h->plt.offset = (bfd_vma) -1;
-      h->needs_plt = 0;
-    }
-
-  eh->tlsdesc_got = (bfd_vma) -1;
-
-  /* If R_X86_64_GOTTPOFF symbol is now local to the binary,
-     make it a R_X86_64_TPOFF32 requiring no GOT entry.  */
-  if (h->got.refcount > 0
-      && bfd_link_executable (info)
-      && h->dynindx == -1
-      && elf_x86_64_hash_entry (h)->tls_type == GOT_TLS_IE)
-    {
-      h->got.offset = (bfd_vma) -1;
-    }
-  else if (h->got.refcount > 0)
-    {
-      asection *s;
-      bfd_boolean dyn;
-      int tls_type = elf_x86_64_hash_entry (h)->tls_type;
-
-      /* Make sure this symbol is output as a dynamic symbol.
-	 Undefined weak syms won't yet be marked as dynamic.  */
-      if (h->dynindx == -1
-	  && !h->forced_local
-	  && !resolved_to_zero)
-	{
-	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
-	    return FALSE;
-	}
-
-      if (GOT_TLS_GDESC_P (tls_type))
-	{
-	  eh->tlsdesc_got = htab->elf.sgotplt->size
-	    - elf_x86_64_compute_jump_table_size (htab);
-	  htab->elf.sgotplt->size += 2 * GOT_ENTRY_SIZE;
-	  h->got.offset = (bfd_vma) -2;
-	}
-      if (! GOT_TLS_GDESC_P (tls_type)
-	  || GOT_TLS_GD_P (tls_type))
-	{
-	  s = htab->elf.sgot;
-	  h->got.offset = s->size;
-	  s->size += GOT_ENTRY_SIZE;
-	  if (GOT_TLS_GD_P (tls_type))
-	    s->size += GOT_ENTRY_SIZE;
-	}
-      dyn = htab->elf.dynamic_sections_created;
-      /* R_X86_64_TLSGD needs one dynamic relocation if local symbol
-	 and two if global.  R_X86_64_GOTTPOFF needs one dynamic
-	 relocation.  No dynamic relocation against resolved undefined
-	 weak symbol in executable.  */
-      if ((GOT_TLS_GD_P (tls_type) && h->dynindx == -1)
-	  || tls_type == GOT_TLS_IE)
-	htab->elf.srelgot->size += bed->s->sizeof_rela;
-      else if (GOT_TLS_GD_P (tls_type))
-	htab->elf.srelgot->size += 2 * bed->s->sizeof_rela;
-      else if (! GOT_TLS_GDESC_P (tls_type)
-	       && ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-		    && !resolved_to_zero)
-		   || h->root.type != bfd_link_hash_undefweak)
-	       && (bfd_link_pic (info)
-		   || WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, 0, h)))
-	htab->elf.srelgot->size += bed->s->sizeof_rela;
-      if (GOT_TLS_GDESC_P (tls_type))
-	{
-	  htab->elf.srelplt->size += bed->s->sizeof_rela;
-	  htab->tlsdesc_plt = (bfd_vma) -1;
-	}
-    }
-  else
-    h->got.offset = (bfd_vma) -1;
-
-  if (eh->dyn_relocs == NULL)
-    return TRUE;
-
-  /* In the shared -Bsymbolic case, discard space allocated for
-     dynamic pc-relative relocs against symbols which turn out to be
-     defined in regular objects.  For the normal shared case, discard
-     space for pc-relative relocs that have become local due to symbol
-     visibility changes.  */
-
-  if (bfd_link_pic (info))
-    {
-      /* Relocs that use pc_count are those that appear on a call
-	 insn, or certain REL relocs that can generated via assembly.
-	 We want calls to protected symbols to resolve directly to the
-	 function rather than going via the plt.  If people want
-	 function pointer comparisons to work as expected then they
-	 should avoid writing weird assembly.  */
-      if (SYMBOL_CALLS_LOCAL (info, h))
-	{
-	  struct elf_dyn_relocs **pp;
-
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
-	    {
-	      p->count -= p->pc_count;
-	      p->pc_count = 0;
-	      if (p->count == 0)
-		*pp = p->next;
-	      else
-		pp = &p->next;
-	    }
-	}
-
-      /* Also discard relocs on undefined weak syms with non-default
-	 visibility or in PIE.  */
-      if (eh->dyn_relocs != NULL)
-	{
-	  if (h->root.type == bfd_link_hash_undefweak)
-	    {
-	      /* Undefined weak symbol is never bound locally in shared
-		 library.  */
-	      if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
-		  || resolved_to_zero)
-		eh->dyn_relocs = NULL;
-	      else if (h->dynindx == -1
-		       && ! h->forced_local
-		       && ! bfd_elf_link_record_dynamic_symbol (info, h))
-		return FALSE;
-	    }
-	  /* For PIE, discard space for pc-relative relocs against
-	     symbols which turn out to need copy relocs.  */
-	  else if (bfd_link_executable (info)
-		   && (h->needs_copy || eh->needs_copy)
-		   && h->def_dynamic
-		   && !h->def_regular)
-	    {
-	      struct elf_dyn_relocs **pp;
-
-	      for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
-		{
-		  if (p->pc_count != 0)
-		    *pp = p->next;
-		  else
-		    pp = &p->next;
-		}
-	    }
-	}
-    }
-  else if (ELIMINATE_COPY_RELOCS)
-    {
-      /* For the non-shared case, discard space for relocs against
-	 symbols which turn out to need copy relocs or are not
-	 dynamic.  Keep dynamic relocations for run-time function
-	 pointer initialization.  */
-
-      if ((!h->non_got_ref
-	   || eh->func_pointer_refcount > 0
-	   || (h->root.type == bfd_link_hash_undefweak
-	       && !resolved_to_zero))
-	  && ((h->def_dynamic
-	       && !h->def_regular)
-	      || (htab->elf.dynamic_sections_created
-		  && (h->root.type == bfd_link_hash_undefweak
-		      || h->root.type == bfd_link_hash_undefined))))
-	{
-	  /* Make sure this symbol is output as a dynamic symbol.
-	     Undefined weak syms won't yet be marked as dynamic.  */
-	  if (h->dynindx == -1
-	      && ! h->forced_local
-	      && ! resolved_to_zero
-	      && ! bfd_elf_link_record_dynamic_symbol (info, h))
-	    return FALSE;
-
-	  /* If that succeeded, we know we'll be keeping all the
-	     relocs.  */
-	  if (h->dynindx != -1)
-	    goto keep;
-	}
-
-      eh->dyn_relocs = NULL;
-      eh->func_pointer_refcount = 0;
-
-    keep: ;
-    }
-
-  /* Finally, allocate space.  */
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection * sreloc;
-
-      sreloc = elf_section_data (p->sec)->sreloc;
-
-      BFD_ASSERT (sreloc != NULL);
-
-      sreloc->size += p->count * bed->s->sizeof_rela;
-    }
-
-  return TRUE;
-}
-
-/* Allocate space in .plt, .got and associated reloc sections for
-   local dynamic relocs.  */
-
-static bfd_boolean
-elf_x86_64_allocate_local_dynrelocs (void **slot, void *inf)
-{
-  struct elf_link_hash_entry *h
-    = (struct elf_link_hash_entry *) *slot;
-
-  if (h->type != STT_GNU_IFUNC
-      || !h->def_regular
-      || !h->ref_regular
-      || !h->forced_local
-      || h->root.type != bfd_link_hash_defined)
-    abort ();
-
-  return elf_x86_64_allocate_dynrelocs (h, inf);
-}
-
-/* Find any dynamic relocs that apply to read-only sections.  */
-
-static bfd_boolean
-elf_x86_64_readonly_dynrelocs (struct elf_link_hash_entry *h,
-			       void * inf)
-{
-  struct elf_x86_64_link_hash_entry *eh;
-  struct elf_dyn_relocs *p;
-
-  /* Skip local IFUNC symbols. */
-  if (h->forced_local && h->type == STT_GNU_IFUNC)
-    return TRUE;
-
-  eh = (struct elf_x86_64_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection *s = p->sec->output_section;
-
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	{
-	  struct bfd_link_info *info = (struct bfd_link_info *) inf;
-
-	  info->flags |= DF_TEXTREL;
-
-	  if ((info->warn_shared_textrel && bfd_link_pic (info))
-	      || info->error_textrel)
-	    /* xgettext:c-format */
-	    info->callbacks->einfo (_("%P: %B: warning: relocation against `%s' in readonly section `%A'\n"),
-				    p->sec->owner, h->root.root.string,
-				    p->sec);
-
-	  /* Not an error, just cut short the traversal.  */
-	  return FALSE;
-	}
-    }
-  return TRUE;
-}
-
-/* Convert load via the GOT slot to load immediate.  */
-
-static bfd_boolean
-elf_x86_64_convert_load (bfd *abfd, asection *sec,
-			 struct bfd_link_info *link_info)
-{
-  Elf_Internal_Shdr *symtab_hdr;
-  Elf_Internal_Rela *internal_relocs;
-  Elf_Internal_Rela *irel, *irelend;
-  bfd_byte *contents;
-  struct elf_x86_64_link_hash_table *htab;
-  bfd_boolean changed;
-  bfd_signed_vma *local_got_refcounts;
-
-  /* Don't even try to convert non-ELF outputs.  */
-  if (!is_elf_hash_table (link_info->hash))
-    return FALSE;
-
-  /* Nothing to do if there is no need or no output.  */
-  if ((sec->flags & (SEC_CODE | SEC_RELOC)) != (SEC_CODE | SEC_RELOC)
-      || sec->need_convert_load == 0
-      || bfd_is_abs_section (sec->output_section))
-    return TRUE;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-
-  /* Load the relocations for this section.  */
-  internal_relocs = (_bfd_elf_link_read_relocs
-		     (abfd, sec, NULL, (Elf_Internal_Rela *) NULL,
-		      link_info->keep_memory));
-  if (internal_relocs == NULL)
-    return FALSE;
-
-  changed = FALSE;
-  htab = elf_x86_64_hash_table (link_info);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  /* Get the section contents.  */
-  if (elf_section_data (sec)->this_hdr.contents != NULL)
-    contents = elf_section_data (sec)->this_hdr.contents;
-  else
-    {
-      if (!bfd_malloc_and_get_section (abfd, sec, &contents))
-	goto error_return;
-    }
-
-  irelend = internal_relocs + sec->reloc_count;
-  for (irel = internal_relocs; irel < irelend; irel++)
-    {
-      unsigned int r_type = ELF32_R_TYPE (irel->r_info);
-      unsigned int r_symndx;
-      struct elf_link_hash_entry *h;
-      bfd_boolean converted;
-
-      if (r_type != R_X86_64_GOTPCRELX
-	  && r_type != R_X86_64_REX_GOTPCRELX
-	  && r_type != R_X86_64_GOTPCREL)
-	continue;
-
-      r_symndx = htab->r_sym (irel->r_info);
-      if (r_symndx < symtab_hdr->sh_info)
-	h = elf_x86_64_get_local_sym_hash (htab, sec->owner,
-					   (const Elf_Internal_Rela *) irel,
-					   FALSE);
-      else
-	{
-	  h = elf_sym_hashes (abfd)[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	}
-
-      /* STT_GNU_IFUNC must keep GOTPCREL relocations.  */
-      if (h != NULL && h->type == STT_GNU_IFUNC)
-	continue;
-
-      converted = FALSE;
-      if (!elf_x86_64_convert_load_reloc (abfd, sec, contents, irel, h,
-					  &converted, link_info))
-	goto error_return;
-
-      if (converted)
-	{
-	  changed = converted;
-	  if (h)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount -= 1;
-	    }
-	  else
-	    {
-	      if (local_got_refcounts != NULL
-		  && local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx] -= 1;
-	    }
-	}
-    }
-
-  if (contents != NULL
-      && elf_section_data (sec)->this_hdr.contents != contents)
-    {
-      if (!changed && !link_info->keep_memory)
-	free (contents);
-      else
-	{
-	  /* Cache the section contents for elf_link_input_bfd.  */
-	  elf_section_data (sec)->this_hdr.contents = contents;
-	}
-    }
-
-  if (elf_section_data (sec)->relocs != internal_relocs)
-    {
-      if (!changed)
-	free (internal_relocs);
-      else
-	elf_section_data (sec)->relocs = internal_relocs;
-    }
-
-  return TRUE;
-
- error_return:
-  if (contents != NULL
-      && elf_section_data (sec)->this_hdr.contents != contents)
-    free (contents);
-  if (internal_relocs != NULL
-      && elf_section_data (sec)->relocs != internal_relocs)
-    free (internal_relocs);
-  return FALSE;
-}
-
-/* Set the sizes of the dynamic sections.  */
-
-static bfd_boolean
-elf_x86_64_size_dynamic_sections (bfd *output_bfd,
-				  struct bfd_link_info *info)
-{
-  struct elf_x86_64_link_hash_table *htab;
-  bfd *dynobj;
-  asection *s;
-  bfd_boolean relocs;
-  bfd *ibfd;
-  const struct elf_backend_data *bed;
-  const struct elf_x86_64_backend_data *arch_data;
-
-  htab = elf_x86_64_hash_table (info);
-  if (htab == NULL)
-    return FALSE;
-  bed = get_elf_backend_data (output_bfd);
-
-  dynobj = htab->elf.dynobj;
-  if (dynobj == NULL)
-    abort ();
-
-  /* Set up .got offsets for local syms, and space for local dynamic
-     relocs.  */
-  for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next)
-    {
-      bfd_signed_vma *local_got;
-      bfd_signed_vma *end_local_got;
-      char *local_tls_type;
-      bfd_vma *local_tlsdesc_gotent;
-      bfd_size_type locsymcount;
-      Elf_Internal_Shdr *symtab_hdr;
-      asection *srel;
-
-      if (! is_x86_64_elf (ibfd))
-	continue;
-
-      for (s = ibfd->sections; s != NULL; s = s->next)
-	{
-	  struct elf_dyn_relocs *p;
-
-	  if (!elf_x86_64_convert_load (ibfd, s, info))
-	    return FALSE;
-
-	  for (p = (struct elf_dyn_relocs *)
-		    (elf_section_data (s)->local_dynrel);
-	       p != NULL;
-	       p = p->next)
-	    {
-	      if (!bfd_is_abs_section (p->sec)
-		  && bfd_is_abs_section (p->sec->output_section))
-		{
-		  /* Input section has been discarded, either because
-		     it is a copy of a linkonce section or due to
-		     linker script /DISCARD/, so we'll be discarding
-		     the relocs too.  */
-		}
-	      else if (p->count != 0)
-		{
-		  srel = elf_section_data (p->sec)->sreloc;
-		  srel->size += p->count * bed->s->sizeof_rela;
-		  if ((p->sec->output_section->flags & SEC_READONLY) != 0
-		      && (info->flags & DF_TEXTREL) == 0)
-		    {
-		      info->flags |= DF_TEXTREL;
-		      if ((info->warn_shared_textrel && bfd_link_pic (info))
-			  || info->error_textrel)
-			/* xgettext:c-format */
-			info->callbacks->einfo (_("%P: %B: warning: relocation in readonly section `%A'\n"),
-						p->sec->owner, p->sec);
-		    }
-		}
-	    }
-	}
-
-      local_got = elf_local_got_refcounts (ibfd);
-      if (!local_got)
-	continue;
-
-      symtab_hdr = &elf_symtab_hdr (ibfd);
-      locsymcount = symtab_hdr->sh_info;
-      end_local_got = local_got + locsymcount;
-      local_tls_type = elf_x86_64_local_got_tls_type (ibfd);
-      local_tlsdesc_gotent = elf_x86_64_local_tlsdesc_gotent (ibfd);
-      s = htab->elf.sgot;
-      srel = htab->elf.srelgot;
-      for (; local_got < end_local_got;
-	   ++local_got, ++local_tls_type, ++local_tlsdesc_gotent)
-	{
-	  *local_tlsdesc_gotent = (bfd_vma) -1;
-	  if (*local_got > 0)
-	    {
-	      if (GOT_TLS_GDESC_P (*local_tls_type))
-		{
-		  *local_tlsdesc_gotent = htab->elf.sgotplt->size
-		    - elf_x86_64_compute_jump_table_size (htab);
-		  htab->elf.sgotplt->size += 2 * GOT_ENTRY_SIZE;
-		  *local_got = (bfd_vma) -2;
-		}
-	      if (! GOT_TLS_GDESC_P (*local_tls_type)
-		  || GOT_TLS_GD_P (*local_tls_type))
-		{
-		  *local_got = s->size;
-		  s->size += GOT_ENTRY_SIZE;
-		  if (GOT_TLS_GD_P (*local_tls_type))
-		    s->size += GOT_ENTRY_SIZE;
-		}
-	      if (bfd_link_pic (info)
-		  || GOT_TLS_GD_ANY_P (*local_tls_type)
-		  || *local_tls_type == GOT_TLS_IE)
-		{
-		  if (GOT_TLS_GDESC_P (*local_tls_type))
-		    {
-		      htab->elf.srelplt->size
-			+= bed->s->sizeof_rela;
-		      htab->tlsdesc_plt = (bfd_vma) -1;
-		    }
-		  if (! GOT_TLS_GDESC_P (*local_tls_type)
-		      || GOT_TLS_GD_P (*local_tls_type))
-		    srel->size += bed->s->sizeof_rela;
-		}
-	    }
-	  else
-	    *local_got = (bfd_vma) -1;
-	}
-    }
-
-  if (htab->tls_ld_got.refcount > 0)
-    {
-      /* Allocate 2 got entries and 1 dynamic reloc for R_X86_64_TLSLD
-	 relocs.  */
-      htab->tls_ld_got.offset = htab->elf.sgot->size;
-      htab->elf.sgot->size += 2 * GOT_ENTRY_SIZE;
-      htab->elf.srelgot->size += bed->s->sizeof_rela;
-    }
-  else
-    htab->tls_ld_got.offset = -1;
-
-  /* Allocate global sym .plt and .got entries, and space for global
-     sym dynamic relocs.  */
-  elf_link_hash_traverse (&htab->elf, elf_x86_64_allocate_dynrelocs,
-			  info);
-
-  /* Allocate .plt and .got entries, and space for local symbols.  */
-  htab_traverse (htab->loc_hash_table,
-		 elf_x86_64_allocate_local_dynrelocs,
-		 info);
-
-  /* For every jump slot reserved in the sgotplt, reloc_count is
-     incremented.  However, when we reserve space for TLS descriptors,
-     it's not incremented, so in order to compute the space reserved
-     for them, it suffices to multiply the reloc count by the jump
-     slot size.
-
-     PR ld/13302: We start next_irelative_index at the end of .rela.plt
-     so that R_X86_64_IRELATIVE entries come last.  */
-  if (htab->elf.srelplt)
-    {
-      htab->sgotplt_jump_table_size
-	= elf_x86_64_compute_jump_table_size (htab);
-      htab->next_irelative_index = htab->elf.srelplt->reloc_count - 1;
-    }
-  else if (htab->elf.irelplt)
-    htab->next_irelative_index = htab->elf.irelplt->reloc_count - 1;
-
-  if (htab->tlsdesc_plt)
-    {
-      /* If we're not using lazy TLS relocations, don't generate the
-	 PLT and GOT entries they require.  */
-      if ((info->flags & DF_BIND_NOW))
-	htab->tlsdesc_plt = 0;
-      else
-	{
-	  htab->tlsdesc_got = htab->elf.sgot->size;
-	  htab->elf.sgot->size += GOT_ENTRY_SIZE;
-	  /* Reserve room for the initial entry.
-	     FIXME: we could probably do away with it in this case.  */
-	  if (htab->elf.splt->size == 0)
-	    htab->elf.splt->size += GET_PLT_ENTRY_SIZE (output_bfd);
-	  htab->tlsdesc_plt = htab->elf.splt->size;
-	  htab->elf.splt->size += GET_PLT_ENTRY_SIZE (output_bfd);
-	}
-    }
-
-  if (htab->elf.sgotplt)
-    {
-      /* Don't allocate .got.plt section if there are no GOT nor PLT
-	 entries and there is no refeence to _GLOBAL_OFFSET_TABLE_.  */
-      if ((htab->elf.hgot == NULL
-	   || !htab->elf.hgot->ref_regular_nonweak)
-	  && (htab->elf.sgotplt->size
-	      == get_elf_backend_data (output_bfd)->got_header_size)
-	  && (htab->elf.splt == NULL
-	      || htab->elf.splt->size == 0)
-	  && (htab->elf.sgot == NULL
-	      || htab->elf.sgot->size == 0)
-	  && (htab->elf.iplt == NULL
-	      || htab->elf.iplt->size == 0)
-	  && (htab->elf.igotplt == NULL
-	      || htab->elf.igotplt->size == 0))
-	htab->elf.sgotplt->size = 0;
-    }
-
-  arch_data = (htab->plt_bnd != NULL
-	       ? &elf_x86_64_bnd_arch_bed
-	       : get_elf_x86_64_arch_data (bed));
-
-  if (_bfd_elf_eh_frame_present (info))
-    {
-      if (htab->plt_eh_frame != NULL
-	  && htab->elf.splt != NULL
-	  && htab->elf.splt->size != 0
-	  && !bfd_is_abs_section (htab->elf.splt->output_section))
-	htab->plt_eh_frame->size = arch_data->eh_frame_plt_size;
-
-      if (htab->plt_got_eh_frame != NULL
-	  && htab->plt_got != NULL
-	  && htab->plt_got->size != 0
-	  && !bfd_is_abs_section (htab->plt_got->output_section))
-	htab->plt_got_eh_frame->size = arch_data->eh_frame_plt_got_size;
-
-      /* Unwind info for .plt.bnd and .plt.got sections are
-	 identical.  */
-      if (htab->plt_bnd_eh_frame != NULL
-	  && htab->plt_bnd != NULL
-	  && htab->plt_bnd->size != 0
-	  && !bfd_is_abs_section (htab->plt_bnd->output_section))
-	htab->plt_bnd_eh_frame->size = arch_data->eh_frame_plt_got_size;
-    }
-
-  /* We now have determined the sizes of the various dynamic sections.
-     Allocate memory for them.  */
-  relocs = FALSE;
-  for (s = dynobj->sections; s != NULL; s = s->next)
-    {
-      if ((s->flags & SEC_LINKER_CREATED) == 0)
-	continue;
-
-      if (s == htab->elf.splt
-	  || s == htab->elf.sgot
-	  || s == htab->elf.sgotplt
-	  || s == htab->elf.iplt
-	  || s == htab->elf.igotplt
-	  || s == htab->plt_bnd
-	  || s == htab->plt_got
-	  || s == htab->plt_eh_frame
-	  || s == htab->plt_got_eh_frame
-	  || s == htab->plt_bnd_eh_frame
-	  || s == htab->elf.sdynbss
-	  || s == htab->elf.sdynrelro)
-	{
-	  /* Strip this section if we don't need it; see the
-	     comment below.  */
-	}
-      else if (CONST_STRNEQ (bfd_get_section_name (dynobj, s), ".rela"))
-	{
-	  if (s->size != 0 && s != htab->elf.srelplt)
-	    relocs = TRUE;
-
-	  /* We use the reloc_count field as a counter if we need
-	     to copy relocs into the output file.  */
-	  if (s != htab->elf.srelplt)
-	    s->reloc_count = 0;
-	}
-      else
-	{
-	  /* It's not one of our sections, so don't allocate space.  */
-	  continue;
-	}
-
-      if (s->size == 0)
-	{
-	  /* If we don't need this section, strip it from the
-	     output file.  This is mostly to handle .rela.bss and
-	     .rela.plt.  We must create both sections in
-	     create_dynamic_sections, because they must be created
-	     before the linker maps input sections to output
-	     sections.  The linker does that before
-	     adjust_dynamic_symbol is called, and it is that
-	     function which decides whether anything needs to go
-	     into these sections.  */
-
-	  s->flags |= SEC_EXCLUDE;
-	  continue;
-	}
-
-      if ((s->flags & SEC_HAS_CONTENTS) == 0)
-	continue;
-
-      /* Allocate memory for the section contents.  We use bfd_zalloc
-	 here in case unused entries are not reclaimed before the
-	 section's contents are written out.  This should not happen,
-	 but this way if it does, we get a R_X86_64_NONE reloc instead
-	 of garbage.  */
-      s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->size);
-      if (s->contents == NULL)
-	return FALSE;
-    }
-
-  if (htab->plt_eh_frame != NULL
-      && htab->plt_eh_frame->contents != NULL)
-    {
-      memcpy (htab->plt_eh_frame->contents,
-	      arch_data->eh_frame_plt, htab->plt_eh_frame->size);
-      bfd_put_32 (dynobj, htab->elf.splt->size,
-		  htab->plt_eh_frame->contents + PLT_FDE_LEN_OFFSET);
-    }
-
-  if (htab->plt_got_eh_frame != NULL
-      && htab->plt_got_eh_frame->contents != NULL)
-    {
-      memcpy (htab->plt_got_eh_frame->contents,
-	      arch_data->eh_frame_plt_got,
-	      htab->plt_got_eh_frame->size);
-      bfd_put_32 (dynobj, htab->plt_got->size,
-		  (htab->plt_got_eh_frame->contents
-		   + PLT_FDE_LEN_OFFSET));
-    }
-
-  if (htab->plt_bnd_eh_frame != NULL
-      && htab->plt_bnd_eh_frame->contents != NULL)
-    {
-      memcpy (htab->plt_bnd_eh_frame->contents,
-	      arch_data->eh_frame_plt_got,
-	      htab->plt_bnd_eh_frame->size);
-      bfd_put_32 (dynobj, htab->plt_bnd->size,
-		  (htab->plt_bnd_eh_frame->contents
-		   + PLT_FDE_LEN_OFFSET));
-    }
-
-  if (htab->elf.dynamic_sections_created)
-    {
-      /* Add some entries to the .dynamic section.  We fill in the
-	 values later, in elf_x86_64_finish_dynamic_sections, but we
-	 must add the entries now so that we get the correct size for
-	 the .dynamic section.	The DT_DEBUG entry is filled in by the
-	 dynamic linker and used by the debugger.  */
-#define add_dynamic_entry(TAG, VAL) \
-  _bfd_elf_add_dynamic_entry (info, TAG, VAL)
-
-      if (bfd_link_executable (info))
-	{
-	  if (!add_dynamic_entry (DT_DEBUG, 0))
-	    return FALSE;
-	}
-
-      if (htab->elf.splt->size != 0)
-	{
-	  /* DT_PLTGOT is used by prelink even if there is no PLT
-	     relocation.  */
-	  if (!add_dynamic_entry (DT_PLTGOT, 0))
-	    return FALSE;
-
-	  if (htab->elf.srelplt->size != 0)
-	    {
-	      if (!add_dynamic_entry (DT_PLTRELSZ, 0)
-		  || !add_dynamic_entry (DT_PLTREL, DT_RELA)
-		  || !add_dynamic_entry (DT_JMPREL, 0))
-		return FALSE;
-	    }
-
-	  if (htab->tlsdesc_plt
-	      && (!add_dynamic_entry (DT_TLSDESC_PLT, 0)
-		  || !add_dynamic_entry (DT_TLSDESC_GOT, 0)))
-	    return FALSE;
-	}
-
-      if (relocs)
-	{
-	  if (!add_dynamic_entry (DT_RELA, 0)
-	      || !add_dynamic_entry (DT_RELASZ, 0)
-	      || !add_dynamic_entry (DT_RELAENT, bed->s->sizeof_rela))
-	    return FALSE;
-
-	  /* If any dynamic relocs apply to a read-only section,
-	     then we need a DT_TEXTREL entry.  */
-	  if ((info->flags & DF_TEXTREL) == 0)
-	    elf_link_hash_traverse (&htab->elf,
-				    elf_x86_64_readonly_dynrelocs,
-				    info);
-
-	  if ((info->flags & DF_TEXTREL) != 0)
-	    {
-	      if (htab->readonly_dynrelocs_against_ifunc)
-		{
-		  info->callbacks->einfo
-		    (_("%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n"));
-		  bfd_set_error (bfd_error_bad_value);
-		  return FALSE;
-		}
-
-	      if (!add_dynamic_entry (DT_TEXTREL, 0))
-		return FALSE;
-	    }
-	}
-    }
-#undef add_dynamic_entry
-
-  return TRUE;
-}
-
-static bfd_boolean
-elf_x86_64_always_size_sections (bfd *output_bfd,
-				 struct bfd_link_info *info)
-{
-  asection *tls_sec = elf_hash_table (info)->tls_sec;
-
-  if (tls_sec)
-    {
-      struct elf_link_hash_entry *tlsbase;
-
-      tlsbase = elf_link_hash_lookup (elf_hash_table (info),
-				      "_TLS_MODULE_BASE_",
-				      FALSE, FALSE, FALSE);
-
-      if (tlsbase && tlsbase->type == STT_TLS)
-	{
-	  struct elf_x86_64_link_hash_table *htab;
-	  struct bfd_link_hash_entry *bh = NULL;
-	  const struct elf_backend_data *bed
-	    = get_elf_backend_data (output_bfd);
-
-	  htab = elf_x86_64_hash_table (info);
-	  if (htab == NULL)
-	    return FALSE;
-
-	  if (!(_bfd_generic_link_add_one_symbol
-		(info, output_bfd, "_TLS_MODULE_BASE_", BSF_LOCAL,
-		 tls_sec, 0, NULL, FALSE,
-		 bed->collect, &bh)))
-	    return FALSE;
-
-	  htab->tls_module_base = bh;
-
-	  tlsbase = (struct elf_link_hash_entry *)bh;
-	  tlsbase->def_regular = 1;
-	  tlsbase->other = STV_HIDDEN;
-	  tlsbase->root.linker_def = 1;
-	  (*bed->elf_backend_hide_symbol) (info, tlsbase, TRUE);
-	}
-    }
-
-  return TRUE;
-}
-
-/* _TLS_MODULE_BASE_ needs to be treated especially when linking
-   executables.  Rather than setting it to the beginning of the TLS
-   section, we have to set it to the end.  This function may be called
-   multiple times, it is idempotent.  */
-
-static void
-elf_x86_64_set_tls_module_base (struct bfd_link_info *info)
-{
-  struct elf_x86_64_link_hash_table *htab;
-  struct bfd_link_hash_entry *base;
-
-  if (!bfd_link_executable (info))
-    return;
-
-  htab = elf_x86_64_hash_table (info);
-  if (htab == NULL)
-    return;
-
-  base = htab->tls_module_base;
-  if (base == NULL)
-    return;
-
-  base->u.def.value = htab->elf.tls_size;
-}
-
-/* Return the base VMA address which should be subtracted from real addresses
-   when resolving @dtpoff relocation.
-   This is PT_TLS segment p_vaddr.  */
-
-static bfd_vma
-elf_x86_64_dtpoff_base (struct bfd_link_info *info)
-{
-  /* If tls_sec is NULL, we should have signalled an error already.  */
-  if (elf_hash_table (info)->tls_sec == NULL)
-    return 0;
-  return elf_hash_table (info)->tls_sec->vma;
+  return TRUE;
+
+error_return:
+  if (elf_section_data (sec)->this_hdr.contents != contents)
+    free (contents);
+  sec->check_relocs_failed = 1;
+  return FALSE;
 }
 
 /* Return the relocation value for @tpoff relocation
@@ -4225,7 +2333,7 @@ elf_x86_64_relocate_section (bfd *output
 			     Elf_Internal_Sym *local_syms,
 			     asection **local_sections)
 {
-  struct elf_x86_64_link_hash_table *htab;
+  struct elf_x86_link_hash_table *htab;
   Elf_Internal_Shdr *symtab_hdr;
   struct elf_link_hash_entry **sym_hashes;
   bfd_vma *local_got_offsets;
@@ -4233,33 +2341,35 @@ elf_x86_64_relocate_section (bfd *output
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *wrel;
   Elf_Internal_Rela *relend;
-  const unsigned int plt_entry_size = GET_PLT_ENTRY_SIZE (info->output_bfd);
-
-  BFD_ASSERT (is_x86_64_elf (input_bfd));
+  unsigned int plt_entry_size;
 
   /* Skip if check_relocs failed.  */
   if (input_section->check_relocs_failed)
     return FALSE;
 
-  htab = elf_x86_64_hash_table (info);
+  htab = elf_x86_hash_table (info, X86_64_ELF_DATA);
   if (htab == NULL)
     return FALSE;
+
+  BFD_ASSERT (is_x86_elf (input_bfd, htab));
+
+  plt_entry_size = htab->plt.plt_entry_size;
   symtab_hdr = &elf_symtab_hdr (input_bfd);
   sym_hashes = elf_sym_hashes (input_bfd);
   local_got_offsets = elf_local_got_offsets (input_bfd);
-  local_tlsdesc_gotents = elf_x86_64_local_tlsdesc_gotent (input_bfd);
+  local_tlsdesc_gotents = elf_x86_local_tlsdesc_gotent (input_bfd);
 
-  elf_x86_64_set_tls_module_base (info);
+  _bfd_x86_elf_set_tls_module_base (info);
 
   rel = wrel = relocs;
   relend = relocs + input_section->reloc_count;
   for (; rel < relend; wrel++, rel++)
     {
-      unsigned int r_type;
+      unsigned int r_type, r_type_tls;
       reloc_howto_type *howto;
       unsigned long r_symndx;
       struct elf_link_hash_entry *h;
-      struct elf_x86_64_link_hash_entry *eh;
+      struct elf_x86_link_hash_entry *eh;
       Elf_Internal_Sym *sym;
       asection *sec;
       bfd_vma off, offplt, plt_offset;
@@ -4270,6 +2380,9 @@ elf_x86_64_relocate_section (bfd *output
       asection *base_got, *resolved_plt;
       bfd_vma st_size;
       bfd_boolean resolved_to_zero;
+      bfd_boolean relative_reloc;
+      bfd_boolean converted_reloc;
+      bfd_boolean need_copy_reloc_in_pie;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       if (r_type == (int) R_X86_64_GNU_VTINHERIT
@@ -4280,15 +2393,11 @@ elf_x86_64_relocate_section (bfd *output
 	  continue;
 	}
 
+      converted_reloc = (r_type & R_X86_64_converted_reloc_bit) != 0;
+      r_type &= ~R_X86_64_converted_reloc_bit;
+
       if (r_type >= (int) R_X86_64_standard)
-	{
-	  _bfd_error_handler
-	    /* xgettext:c-format */
-	    (_("%B: unrecognized relocation (0x%x) in section `%A'"),
-	     input_bfd, r_type, input_section);
-	  bfd_set_error (bfd_error_bad_value);
-	  return FALSE;
-	}
+	return _bfd_unrecognized_reloc (input_bfd, input_section, r_type);
 
       if (r_type != (int) R_X86_64_32
 	  || ABI_64_P (output_bfd))
@@ -4314,8 +2423,8 @@ elf_x86_64_relocate_section (bfd *output
 	  if (!bfd_link_relocatable (info)
 	      && ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC)
 	    {
-	      h = elf_x86_64_get_local_sym_hash (htab, input_bfd,
-						 rel, FALSE);
+	      h = _bfd_elf_x86_get_local_sym_hash (htab, input_bfd,
+						   rel, FALSE);
 	      if (h == NULL)
 		abort ();
 
@@ -4379,7 +2488,7 @@ elf_x86_64_relocate_section (bfd *output
 	    }
 	}
 
-      eh = (struct elf_x86_64_link_hash_entry *) h;
+      eh = (struct elf_x86_link_hash_entry *) h;
 
       /* Since STT_GNU_IFUNC symbol must go through PLT, we handle
 	 it here if it is defined in a non-shared object.  */
@@ -4426,7 +2535,8 @@ elf_x86_64_relocate_section (bfd *output
 
 		  if (htab->elf.splt != NULL)
 		    {
-		      plt_index = h->plt.offset / plt_entry_size - 1;
+		      plt_index = (h->plt.offset / plt_entry_size
+				   - htab->plt.has_plt0);
 		      off = (plt_index + 3) * GOT_ENTRY_SIZE;
 		      base_got = htab->elf.sgotplt;
 		    }
@@ -4481,10 +2591,10 @@ elf_x86_64_relocate_section (bfd *output
 	  /* STT_GNU_IFUNC symbol must go through PLT.  */
 	  if (htab->elf.splt != NULL)
 	    {
-	      if (htab->plt_bnd != NULL)
+	      if (htab->plt_second != NULL)
 		{
-		  resolved_plt = htab->plt_bnd;
-		  plt_offset = eh->plt_bnd.offset;
+		  resolved_plt = htab->plt_second;
+		  plt_offset = eh->plt_second.offset;
 		}
 	      else
 		{
@@ -4539,7 +2649,7 @@ do_ifunc_pointer:
 		  _bfd_error_handler
 		    /* xgettext:c-format */
 		    (_("%B: relocation %s against STT_GNU_IFUNC "
-		       "symbol `%s' has non-zero addend: %d"),
+		       "symbol `%s' has non-zero addend: %Ld"),
 		     input_bfd, howto->name, name, rel->r_addend);
 		  bfd_set_error (bfd_error_bad_value);
 		  return FALSE;
@@ -4567,10 +2677,12 @@ do_ifunc_pointer:
 		  outrel.r_offset += (input_section->output_section->vma
 				      + input_section->output_offset);
 
-		  if (h->dynindx == -1
-		      || h->forced_local
-		      || bfd_link_executable (info))
+		  if (POINTER_LOCAL_IFUNC_P (info, h))
 		    {
+		      info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"),
+					      h->root.root.string,
+					      h->root.u.def.section->owner);
+
 		      /* This symbol is resolved locally.  */
 		      outrel.r_info = htab->r_info (0, R_X86_64_IRELATIVE);
 		      outrel.r_addend = (h->root.u.def.value
@@ -4613,9 +2725,7 @@ do_ifunc_pointer:
 	}
 
       resolved_to_zero = (eh != NULL
-			  && UNDEFINED_WEAK_RESOLVED_TO_ZERO (info,
-							      eh->has_got_reloc,
-							      eh));
+			  && UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh));
 
       /* When generating a shared object, the relocations handled here are
 	 copied into the output file to be resolved at run time.  */
@@ -4631,16 +2741,15 @@ do_ifunc_pointer:
 	case R_X86_64_GOTPCREL64:
 	  /* Use global offset table entry as symbol value.  */
 	case R_X86_64_GOTPLT64:
-	  /* This is obsolete and treated the the same as GOT64.  */
+	  /* This is obsolete and treated the same as GOT64.  */
 	  base_got = htab->elf.sgot;
 
 	  if (htab->elf.sgot == NULL)
 	    abort ();
 
+	  relative_reloc = FALSE;
 	  if (h != NULL)
 	    {
-	      bfd_boolean dyn;
-
 	      off = h->got.offset;
 	      if (h->needs_plt
 		  && h->plt.offset != (bfd_vma)-1
@@ -4650,26 +2759,18 @@ do_ifunc_pointer:
 		     state, or even just remember the offset, as
 		     finish_dynamic_symbol would use that as offset into
 		     .got.  */
-		  bfd_vma plt_index = h->plt.offset / plt_entry_size - 1;
+		  bfd_vma plt_index = (h->plt.offset / plt_entry_size
+				       - htab->plt.has_plt0);
 		  off = (plt_index + 3) * GOT_ENTRY_SIZE;
 		  base_got = htab->elf.sgotplt;
 		}
 
-	      dyn = htab->elf.dynamic_sections_created;
-
-	      if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h)
-		  || (bfd_link_pic (info)
-		      && SYMBOL_REFERENCES_LOCAL (info, h))
-		  || (ELF_ST_VISIBILITY (h->other)
-		      && h->root.type == bfd_link_hash_undefweak))
-		{
-		  /* This is actually a static link, or it is a -Bsymbolic
-		     link and the symbol is defined locally, or the symbol
-		     was forced to be local because of a version file.	We
-		     must initialize this entry in the global offset table.
-		     Since the offset must always be a multiple of 8, we
-		     use the least significant bit to record whether we
-		     have initialized it already.
+	      if (RESOLVED_LOCALLY_P (info, h, htab))
+		{
+		  /* We must initialize this entry in the global offset
+		     table.  Since the offset must always be a multiple
+		     of 8, we use the least significant bit to record
+		     whether we have initialized it already.
 
 		     When doing a dynamic link, we create a .rela.got
 		     relocation entry to initialize the value.	This is
@@ -4683,6 +2784,14 @@ do_ifunc_pointer:
 		      /* Note that this is harmless for the GOTPLT64 case,
 			 as -1 | 1 still is -1.  */
 		      h->got.offset |= 1;
+
+		      if (GENERATE_RELATIVE_RELOC_P (info, h))
+			{
+			  /* If this symbol isn't dynamic in PIC,
+			     generate R_X86_64_RELATIVE here.  */
+			  eh->no_finish_dynamic_symbol = 1;
+			  relative_reloc = TRUE;
+			}
 		    }
 		}
 	      else
@@ -4704,28 +2813,30 @@ do_ifunc_pointer:
 		{
 		  bfd_put_64 (output_bfd, relocation,
 			      base_got->contents + off);
+		  local_got_offsets[r_symndx] |= 1;
 
 		  if (bfd_link_pic (info))
-		    {
-		      asection *s;
-		      Elf_Internal_Rela outrel;
+		    relative_reloc = TRUE;
+		}
+	    }
 
-		      /* We need to generate a R_X86_64_RELATIVE reloc
-			 for the dynamic linker.  */
-		      s = htab->elf.srelgot;
-		      if (s == NULL)
-			abort ();
-
-		      outrel.r_offset = (base_got->output_section->vma
-					 + base_got->output_offset
-					 + off);
-		      outrel.r_info = htab->r_info (0, R_X86_64_RELATIVE);
-		      outrel.r_addend = relocation;
-		      elf_append_rela (output_bfd, s, &outrel);
-		    }
+	  if (relative_reloc)
+	    {
+	      asection *s;
+	      Elf_Internal_Rela outrel;
 
-		  local_got_offsets[r_symndx] |= 1;
-		}
+	      /* We need to generate a R_X86_64_RELATIVE reloc
+		 for the dynamic linker.  */
+	      s = htab->elf.srelgot;
+	      if (s == NULL)
+		abort ();
+
+	      outrel.r_offset = (base_got->output_section->vma
+				 + base_got->output_offset
+				 + off);
+	      outrel.r_info = htab->r_info (0, R_X86_64_RELATIVE);
+	      outrel.r_addend = relocation;
+	      elf_append_rela (output_bfd, s, &outrel);
 	    }
 
 	  if (off >= (bfd_vma) -2)
@@ -4781,7 +2892,7 @@ do_ifunc_pointer:
 		  return FALSE;
 		}
 	      else if (!bfd_link_executable (info)
-		       && !SYMBOL_REFERENCES_LOCAL (info, h)
+		       && !SYMBOL_REFERENCES_LOCAL_P (info, h)
 		       && (h->type == STT_FUNC
 			   || h->type == STT_OBJECT)
 		       && ELF_ST_VISIBILITY (h->other) == STV_PROTECTED)
@@ -4830,10 +2941,10 @@ do_ifunc_pointer:
 		  resolved_plt = htab->plt_got;
 		  plt_offset = eh->plt_got.offset;
 		}
-	      else if (htab->plt_bnd != NULL)
+	      else if (htab->plt_second != NULL)
 		{
-		  resolved_plt = htab->plt_bnd;
-		  plt_offset = eh->plt_bnd.offset;
+		  resolved_plt = htab->plt_second;
+		  plt_offset = eh->plt_second.offset;
 		}
 	      else
 		{
@@ -4873,10 +2984,10 @@ do_ifunc_pointer:
 
 	  if (h->plt.offset != (bfd_vma) -1)
 	    {
-	      if (htab->plt_bnd != NULL)
+	      if (htab->plt_second != NULL)
 		{
-		  resolved_plt = htab->plt_bnd;
-		  plt_offset = eh->plt_bnd.offset;
+		  resolved_plt = htab->plt_second;
+		  plt_offset = eh->plt_second.offset;
 		}
 	      else
 		{
@@ -4908,16 +3019,20 @@ do_ifunc_pointer:
 	case R_X86_64_PC32:
 	case R_X86_64_PC32_BND:
 	  /* Don't complain about -fPIC if the symbol is undefined when
-	     building executable unless it is unresolved weak symbol.  */
-          if ((input_section->flags & SEC_ALLOC) != 0
+	     building executable unless it is unresolved weak symbol or
+	     -z nocopyreloc is used.  */
+	  if ((input_section->flags & SEC_ALLOC) != 0
 	      && (input_section->flags & SEC_READONLY) != 0
 	      && h != NULL
 	      && ((bfd_link_executable (info)
-		  && h->root.type == bfd_link_hash_undefweak
-		  && !resolved_to_zero)
-		  || (bfd_link_pic (info)
-		      && !(bfd_link_pie (info)
-			   && h->root.type == bfd_link_hash_undefined))))
+		   && ((h->root.type == bfd_link_hash_undefweak
+			&& !resolved_to_zero)
+		       || ((info->nocopyreloc
+			    || (eh->def_protected
+				&& elf_has_no_copy_on_protected (h->root.u.def.section->owner)))
+			   && h->def_dynamic
+			   && !(h->root.u.def.section->flags & SEC_CODE))))
+		  || bfd_link_dll (info)))
 	    {
 	      bfd_boolean fail = FALSE;
 	      bfd_boolean branch
@@ -4925,7 +3040,7 @@ do_ifunc_pointer:
 		    || r_type == R_X86_64_PC32_BND)
 		   && is_32bit_relative_branch (contents, rel->r_offset));
 
-	      if (SYMBOL_REFERENCES_LOCAL (info, h))
+	      if (SYMBOL_REFERENCES_LOCAL_P (info, h))
 		{
 		  /* Symbol is referenced locally.  Make sure it is
 		     defined locally or for a branch.  */
@@ -4943,7 +3058,7 @@ do_ifunc_pointer:
 		}
 
 	      if (fail)
-		return elf_x86_64_need_pic (input_bfd, input_section,
+		return elf_x86_64_need_pic (info, input_bfd, input_section,
 					    h, NULL, NULL, howto);
 	    }
 	  /* Fall through.  */
@@ -4960,40 +3075,18 @@ direct:
 	  if ((input_section->flags & SEC_ALLOC) == 0)
 	    break;
 
-	   /* Don't copy a pc-relative relocation into the output file
-	      if the symbol needs copy reloc or the symbol is undefined
-	      when building executable.  Copy dynamic function pointer
-	      relocations.  Don't generate dynamic relocations against
-	      resolved undefined weak symbols in PIE.  */
-	  if ((bfd_link_pic (info)
-	       && !(bfd_link_pie (info)
-		    && h != NULL
-		    && (h->needs_copy
-			|| eh->needs_copy
-			|| h->root.type == bfd_link_hash_undefined)
-		    && (IS_X86_64_PCREL_TYPE (r_type)
-			|| r_type == R_X86_64_SIZE32
-			|| r_type == R_X86_64_SIZE64))
-	       && (h == NULL
-		   || ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-			&& !resolved_to_zero)
-		       || h->root.type != bfd_link_hash_undefweak))
-	       && ((! IS_X86_64_PCREL_TYPE (r_type)
-		      && r_type != R_X86_64_SIZE32
-		      && r_type != R_X86_64_SIZE64)
-		   || ! SYMBOL_CALLS_LOCAL (info, h)))
-	      || (ELIMINATE_COPY_RELOCS
-		  && !bfd_link_pic (info)
-		  && h != NULL
-		  && h->dynindx != -1
-		  && (!h->non_got_ref
-		      || eh->func_pointer_refcount > 0
-		      || (h->root.type == bfd_link_hash_undefweak
-			  && !resolved_to_zero))
-		  && ((h->def_dynamic && !h->def_regular)
-		      /* Undefined weak symbol is bound locally when
-			 PIC is false.  */
-		      || h->root.type == bfd_link_hash_undefined)))
+	  need_copy_reloc_in_pie = (bfd_link_pie (info)
+				    && h != NULL
+				    && (h->needs_copy
+					|| eh->needs_copy
+					|| (h->root.type
+					    == bfd_link_hash_undefined))
+				    && (X86_PCREL_TYPE_P (r_type)
+					|| X86_SIZE_TYPE_P (r_type)));
+
+	  if (GENERATE_DYNAMIC_RELOCATION_P (info, eh, r_type,
+					     need_copy_reloc_in_pie,
+					     resolved_to_zero, FALSE))
 	    {
 	      Elf_Internal_Rela outrel;
 	      bfd_boolean skip, relocate;
@@ -5019,14 +3112,7 @@ direct:
 	      if (skip)
 		memset (&outrel, 0, sizeof outrel);
 
-	      /* h->dynindx may be -1 if this symbol was marked to
-		 become local.  */
-	      else if (h != NULL
-		       && h->dynindx != -1
-		       && (IS_X86_64_PCREL_TYPE (r_type)
-			   || !(bfd_link_executable (info)
-				|| SYMBOLIC_BIND (info, h))
-			   || ! h->def_regular))
+	      else if (COPY_INPUT_RELOC_P (info, h, r_type))
 		{
 		  outrel.r_info = htab->r_info (h->dynindx, r_type);
 		  outrel.r_addend = rel->r_addend;
@@ -5062,22 +3148,13 @@ direct:
 			  else
 			    name = bfd_elf_sym_name (input_bfd, symtab_hdr,
 						     sym, NULL);
-			  if (addend < 0)
-			    _bfd_error_handler
-			      /* xgettext:c-format */
-			      (_("%B: addend -0x%x in relocation %s against "
-				 "symbol `%s' at 0x%lx in section `%A' is "
-				 "out of range"),
-			       input_bfd, addend, howto->name, name,
-			       (unsigned long) rel->r_offset, input_section);
-			  else
-			    _bfd_error_handler
-			      /* xgettext:c-format */
-			      (_("%B: addend 0x%x in relocation %s against "
-				 "symbol `%s' at 0x%lx in section `%A' is "
-				 "out of range"),
-			       input_bfd, addend, howto->name, name,
-			       (unsigned long) rel->r_offset, input_section);
+			  _bfd_error_handler
+			    /* xgettext:c-format */
+			    (_("%B: addend %s%#x in relocation %s against "
+			       "symbol `%s' at %#Lx in section `%A' is "
+			       "out of range"),
+			     input_bfd, addend < 0 ? "-" : "", addend,
+			     howto->name, name, rel->r_offset, input_section);
 			  bfd_set_error (bfd_error_bad_value);
 			  return FALSE;
 			}
@@ -5143,24 +3220,25 @@ direct:
 	case R_X86_64_GOTTPOFF:
 	  tls_type = GOT_UNKNOWN;
 	  if (h == NULL && local_got_offsets)
-	    tls_type = elf_x86_64_local_got_tls_type (input_bfd) [r_symndx];
+	    tls_type = elf_x86_local_got_tls_type (input_bfd) [r_symndx];
 	  else if (h != NULL)
-	    tls_type = elf_x86_64_hash_entry (h)->tls_type;
+	    tls_type = elf_x86_hash_entry (h)->tls_type;
 
+	  r_type_tls = r_type;
 	  if (! elf_x86_64_tls_transition (info, input_bfd,
 					   input_section, contents,
 					   symtab_hdr, sym_hashes,
-					   &r_type, tls_type, rel,
+					   &r_type_tls, tls_type, rel,
 					   relend, h, r_symndx, TRUE))
 	    return FALSE;
 
-	  if (r_type == R_X86_64_TPOFF32)
+	  if (r_type_tls == R_X86_64_TPOFF32)
 	    {
 	      bfd_vma roff = rel->r_offset;
 
 	      BFD_ASSERT (! unresolved_reloc);
 
-	      if (ELF32_R_TYPE (rel->r_info) == R_X86_64_TLSGD)
+	      if (r_type == R_X86_64_TLSGD)
 		{
 		  /* GD->LE transition.  For 64bit, change
 			.byte 0x66; leaq foo@tlsgd(%rip), %rdi
@@ -5223,7 +3301,7 @@ direct:
 		  wrel++;
 		  continue;
 		}
-	      else if (ELF32_R_TYPE (rel->r_info) == R_X86_64_GOTPC32_TLSDESC)
+	      else if (r_type == R_X86_64_GOTPC32_TLSDESC)
 		{
 		  /* GDesc -> LE transition.
 		     It's originally something like:
@@ -5246,7 +3324,7 @@ direct:
 			      contents + roff);
 		  continue;
 		}
-	      else if (ELF32_R_TYPE (rel->r_info) == R_X86_64_TLSDESC_CALL)
+	      else if (r_type == R_X86_64_TLSDESC_CALL)
 		{
 		  /* GDesc -> LE transition.
 		     It's originally:
@@ -5257,7 +3335,7 @@ direct:
 		  bfd_put_8 (output_bfd, 0x90, contents + roff + 1);
 		  continue;
 		}
-	      else if (ELF32_R_TYPE (rel->r_info) == R_X86_64_GOTTPOFF)
+	      else if (r_type == R_X86_64_GOTTPOFF)
 		{
 		  /* IE->LE transition:
 		     For 64bit, originally it can be one of:
@@ -5342,7 +3420,7 @@ direct:
 	  if (h != NULL)
 	    {
 	      off = h->got.offset;
-	      offplt = elf_x86_64_hash_entry (h)->tlsdesc_got;
+	      offplt = elf_x86_hash_entry (h)->tlsdesc_got;
 	    }
 	  else
 	    {
@@ -5377,7 +3455,7 @@ direct:
 				     + htab->sgotplt_jump_table_size);
 		  sreloc = htab->elf.srelplt;
 		  if (indx == 0)
-		    outrel.r_addend = relocation - elf_x86_64_dtpoff_base (info);
+		    outrel.r_addend = relocation - _bfd_x86_elf_dtpoff_base (info);
 		  else
 		    outrel.r_addend = 0;
 		  elf_append_rela (output_bfd, sreloc, &outrel);
@@ -5399,7 +3477,7 @@ direct:
 	      outrel.r_addend = 0;
 	      if ((dr_type == R_X86_64_TPOFF64
 		   || dr_type == R_X86_64_TLSDESC) && indx == 0)
-		outrel.r_addend = relocation - elf_x86_64_dtpoff_base (info);
+		outrel.r_addend = relocation - _bfd_x86_elf_dtpoff_base (info);
 	      outrel.r_info = htab->r_info (indx, dr_type);
 
 	      elf_append_rela (output_bfd, sreloc, &outrel);
@@ -5410,7 +3488,7 @@ direct:
 		    {
 		      BFD_ASSERT (! unresolved_reloc);
 		      bfd_put_64 (output_bfd,
-				  relocation - elf_x86_64_dtpoff_base (info),
+				  relocation - _bfd_x86_elf_dtpoff_base (info),
 				  htab->elf.sgot->contents + off + GOT_ENTRY_SIZE);
 		    }
 		  else
@@ -5435,7 +3513,7 @@ direct:
 	  if (off >= (bfd_vma) -2
 	      && ! GOT_TLS_GDESC_P (tls_type))
 	    abort ();
-	  if (r_type == ELF32_R_TYPE (rel->r_info))
+	  if (r_type_tls == r_type)
 	    {
 	      if (r_type == R_X86_64_GOTPC32_TLSDESC
 		  || r_type == R_X86_64_TLSDESC_CALL)
@@ -5451,7 +3529,7 @@ direct:
 	    {
 	      bfd_vma roff = rel->r_offset;
 
-	      if (ELF32_R_TYPE (rel->r_info) == R_X86_64_TLSGD)
+	      if (r_type == R_X86_64_TLSGD)
 		{
 		  /* GD->IE transition.  For 64bit, change
 			.byte 0x66; leaq foo@tlsgd(%rip), %rdi
@@ -5520,7 +3598,7 @@ direct:
 		  wrel++;
 		  continue;
 		}
-	      else if (ELF32_R_TYPE (rel->r_info) == R_X86_64_GOTPC32_TLSDESC)
+	      else if (r_type == R_X86_64_GOTPC32_TLSDESC)
 		{
 		  /* GDesc -> IE transition.
 		     It's originally something like:
@@ -5545,7 +3623,7 @@ direct:
 			      contents + roff);
 		  continue;
 		}
-	      else if (ELF32_R_TYPE (rel->r_info) == R_X86_64_TLSDESC_CALL)
+	      else if (r_type == R_X86_64_TLSDESC_CALL)
 		{
 		  /* GDesc -> IE transition.
 		     It's originally:
@@ -5634,7 +3712,7 @@ direct:
 	  if (htab->elf.sgot == NULL)
 	    abort ();
 
-	  off = htab->tls_ld_got.offset;
+	  off = htab->tls_ld_or_ldm_got.offset;
 	  if (off & 1)
 	    off &= ~1;
 	  else
@@ -5655,7 +3733,7 @@ direct:
 	      outrel.r_addend = 0;
 	      elf_append_rela (output_bfd, htab->elf.srelgot,
 					&outrel);
-	      htab->tls_ld_got.offset |= 1;
+	      htab->tls_ld_or_ldm_got.offset |= 1;
 	    }
 	  relocation = htab->elf.sgot->output_section->vma
 		       + htab->elf.sgot->output_offset + off;
@@ -5665,7 +3743,7 @@ direct:
 	case R_X86_64_DTPOFF32:
 	  if (!bfd_link_executable (info)
 	      || (input_section->flags & SEC_CODE) == 0)
-	    relocation -= elf_x86_64_dtpoff_base (info);
+	    relocation -= _bfd_x86_elf_dtpoff_base (info);
 	  else
 	    relocation = elf_x86_64_tpoff (info, relocation);
 	  break;
@@ -5678,7 +3756,7 @@ direct:
 
 	case R_X86_64_DTPOFF64:
 	  BFD_ASSERT ((input_section->flags & SEC_CODE) == 0);
-	  relocation -= elf_x86_64_dtpoff_base (info);
+	  relocation -= _bfd_x86_elf_dtpoff_base (info);
 	  break;
 
 	default:
@@ -5694,15 +3772,29 @@ direct:
 	  && _bfd_elf_section_offset (output_bfd, info, input_section,
 				      rel->r_offset) != (bfd_vma) -1)
 	{
-	  _bfd_error_handler
-	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
-	     input_bfd,
-	     input_section,
-	     (long) rel->r_offset,
-	     howto->name,
-	     h->root.root.string);
-	  return FALSE;
+	  switch (r_type)
+	    {
+	    case R_X86_64_32S:
+	      sec = h->root.u.def.section;
+	      if ((info->nocopyreloc
+		   || (eh->def_protected
+		       && elf_has_no_copy_on_protected (h->root.u.def.section->owner)))
+		  && !(h->root.u.def.section->flags & SEC_CODE))
+		return elf_x86_64_need_pic (info, input_bfd, input_section,
+					    h, NULL, NULL, howto);
+	      /* Fall through.  */
+
+	    default:
+	      _bfd_error_handler
+		/* xgettext:c-format */
+		(_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
+		 input_bfd,
+		 input_section,
+		 rel->r_offset,
+		 howto->name,
+		 h->root.root.string);
+	      return FALSE;
+	    }
 	}
 
 do_relocation:
@@ -5729,16 +3821,24 @@ check_relocation_error:
 	    }
 
 	  if (r == bfd_reloc_overflow)
-	    (*info->callbacks->reloc_overflow)
-	      (info, (h ? &h->root : NULL), name, howto->name,
-	       (bfd_vma) 0, input_bfd, input_section, rel->r_offset);
+	    {
+	      if (converted_reloc)
+		{
+		  info->callbacks->einfo
+		    (_("%F%P: failed to convert GOTPCREL relocation; relink with --no-relax\n"));
+		  return FALSE;
+		}
+	      (*info->callbacks->reloc_overflow)
+		(info, (h ? &h->root : NULL), name, howto->name,
+		 (bfd_vma) 0, input_bfd, input_section, rel->r_offset);
+	    }
 	  else
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B(%A+0x%lx): reloc against `%s': error %d"),
+		(_("%B(%A+%#Lx): reloc against `%s': error %d"),
 		 input_bfd, input_section,
-		 (long) rel->r_offset, name, (int) r);
+		 rel->r_offset, name, (int) r);
 	      return FALSE;
 	    }
 	}
@@ -5779,37 +3879,31 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
 				  struct elf_link_hash_entry *h,
 				  Elf_Internal_Sym *sym)
 {
-  struct elf_x86_64_link_hash_table *htab;
-  const struct elf_x86_64_backend_data *abed;
-  bfd_boolean use_plt_bnd;
-  struct elf_x86_64_link_hash_entry *eh;
+  struct elf_x86_link_hash_table *htab;
+  bfd_boolean use_plt_second;
+  struct elf_x86_link_hash_entry *eh;
   bfd_boolean local_undefweak;
 
-  htab = elf_x86_64_hash_table (info);
+  htab = elf_x86_hash_table (info, X86_64_ELF_DATA);
   if (htab == NULL)
     return FALSE;
 
-  /* Use MPX backend data in case of BND relocation.  Use .plt_bnd
-     section only if there is .plt section.  */
-  use_plt_bnd = htab->elf.splt != NULL && htab->plt_bnd != NULL;
-  abed = (use_plt_bnd
-	  ? &elf_x86_64_bnd_arch_bed
-	  : get_elf_x86_64_backend_data (output_bfd));
+  /* Use the second PLT section only if there is .plt section.  */
+  use_plt_second = htab->elf.splt != NULL && htab->plt_second != NULL;
 
-  eh = (struct elf_x86_64_link_hash_entry *) h;
+  eh = (struct elf_x86_link_hash_entry *) h;
+  if (eh->no_finish_dynamic_symbol)
+    abort ();
 
   /* We keep PLT/GOT entries without dynamic PLT/GOT relocations for
      resolved undefined weak symbols in executable so that their
      references have value 0 at run-time.  */
-  local_undefweak = UNDEFINED_WEAK_RESOLVED_TO_ZERO (info,
-						     eh->has_got_reloc,
-						     eh);
+  local_undefweak = UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh);
 
   if (h->plt.offset != (bfd_vma) -1)
     {
       bfd_vma plt_index;
-      bfd_vma got_offset, plt_offset, plt_plt_offset, plt_got_offset;
-      bfd_vma plt_plt_insn_end, plt_got_insn_size;
+      bfd_vma got_offset, plt_offset;
       Elf_Internal_Rela rela;
       bfd_byte *loc;
       asection *plt, *gotplt, *relplt, *resolved_plt;
@@ -5831,17 +3925,7 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
 	  relplt = htab->elf.irelplt;
 	}
 
-      /* This symbol has an entry in the procedure linkage table.  Set
-	 it up.	 */
-      if ((h->dynindx == -1
-	   && !local_undefweak
-	   && !((h->forced_local || bfd_link_executable (info))
-		&& h->def_regular
-		&& h->type == STT_GNU_IFUNC))
-	  || plt == NULL
-	  || gotplt == NULL
-	  || relplt == NULL)
-	abort ();
+      VERIFY_PLT_ENTRY (info, h, plt, gotplt, relplt, local_undefweak)
 
       /* Get the index in the procedure linkage table which
 	 corresponds to this symbol.  This is the index of this symbol
@@ -5856,60 +3940,30 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
 
       if (plt == htab->elf.splt)
 	{
-	  got_offset = h->plt.offset / abed->plt_entry_size - 1;
+	  got_offset = (h->plt.offset / htab->plt.plt_entry_size
+			- htab->plt.has_plt0);
 	  got_offset = (got_offset + 3) * GOT_ENTRY_SIZE;
 	}
       else
 	{
-	  got_offset = h->plt.offset / abed->plt_entry_size;
+	  got_offset = h->plt.offset / htab->plt.plt_entry_size;
 	  got_offset = got_offset * GOT_ENTRY_SIZE;
 	}
 
-      plt_plt_insn_end = abed->plt_plt_insn_end;
-      plt_plt_offset = abed->plt_plt_offset;
-      plt_got_insn_size = abed->plt_got_insn_size;
-      plt_got_offset = abed->plt_got_offset;
-      if (use_plt_bnd)
-	{
-	  /* Use the second PLT with BND relocations.  */
-	  const bfd_byte *plt_entry, *plt2_entry;
-
-	  if (eh->has_bnd_reloc)
-	    {
-	      plt_entry = elf_x86_64_bnd_plt_entry;
-	      plt2_entry = elf_x86_64_bnd_plt2_entry;
-	    }
-	  else
-	    {
-	      plt_entry = elf_x86_64_legacy_plt_entry;
-	      plt2_entry = elf_x86_64_legacy_plt2_entry;
-
-	      /* Subtract 1 since there is no BND prefix.  */
-	      plt_plt_insn_end -= 1;
-	      plt_plt_offset -= 1;
-	      plt_got_insn_size -= 1;
-	      plt_got_offset -= 1;
-	    }
-
-	  BFD_ASSERT (sizeof (elf_x86_64_bnd_plt_entry)
-		      == sizeof (elf_x86_64_legacy_plt_entry));
-
-	  /* Fill in the entry in the procedure linkage table.  */
-	  memcpy (plt->contents + h->plt.offset,
-		  plt_entry, sizeof (elf_x86_64_legacy_plt_entry));
-	  /* Fill in the entry in the second PLT.  */
-	  memcpy (htab->plt_bnd->contents + eh->plt_bnd.offset,
-		  plt2_entry, sizeof (elf_x86_64_legacy_plt2_entry));
+      /* Fill in the entry in the procedure linkage table.  */
+      memcpy (plt->contents + h->plt.offset, htab->plt.plt_entry,
+	      htab->plt.plt_entry_size);
+      if (use_plt_second)
+	{
+	  memcpy (htab->plt_second->contents + eh->plt_second.offset,
+		  htab->non_lazy_plt->plt_entry,
+		  htab->non_lazy_plt->plt_entry_size);
 
-	  resolved_plt = htab->plt_bnd;
-	  plt_offset = eh->plt_bnd.offset;
+	  resolved_plt = htab->plt_second;
+	  plt_offset = eh->plt_second.offset;
 	}
       else
 	{
-	  /* Fill in the entry in the procedure linkage table.  */
-	  memcpy (plt->contents + h->plt.offset, abed->plt_entry,
-		  abed->plt_entry_size);
-
 	  resolved_plt = plt;
 	  plt_offset = h->plt.offset;
 	}
@@ -5924,7 +3978,7 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
 			      - resolved_plt->output_section->vma
 			      - resolved_plt->output_offset
 			      - plt_offset
-			      - plt_got_insn_size);
+			      - htab->plt.plt_got_insn_size);
 
       /* Check PC-relative offset overflow in PLT entry.  */
       if ((plt_got_pcrel_offset + 0x80000000) > 0xffffffff)
@@ -5933,7 +3987,8 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
 				output_bfd, h->root.root.string);
 
       bfd_put_32 (output_bfd, plt_got_pcrel_offset,
-		  resolved_plt->contents + plt_offset + plt_got_offset);
+		  (resolved_plt->contents + plt_offset
+		   + htab->plt.plt_got_offset));
 
       /* Fill in the entry in the global offset table, initially this
 	 points to the second part of the PLT entry.  Leave the entry
@@ -5941,22 +3996,23 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
 	 against undefined weak symbol in PIE.  */
       if (!local_undefweak)
 	{
-	  bfd_put_64 (output_bfd, (plt->output_section->vma
-				   + plt->output_offset
-				   + h->plt.offset
-				   + abed->plt_lazy_offset),
-		      gotplt->contents + got_offset);
+	  if (htab->plt.has_plt0)
+	    bfd_put_64 (output_bfd, (plt->output_section->vma
+				     + plt->output_offset
+				     + h->plt.offset
+				     + htab->lazy_plt->plt_lazy_offset),
+			gotplt->contents + got_offset);
 
 	  /* Fill in the entry in the .rela.plt section.  */
 	  rela.r_offset = (gotplt->output_section->vma
 			   + gotplt->output_offset
 			   + got_offset);
-	  if (h->dynindx == -1
-	      || ((bfd_link_executable (info)
-		   || ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
-		  && h->def_regular
-		  && h->type == STT_GNU_IFUNC))
+	  if (PLT_LOCAL_IFUNC_P (info, h))
 	    {
+	      info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"),
+				      h->root.root.string,
+				      h->root.u.def.section->owner);
+
 	      /* If an STT_GNU_IFUNC symbol is locally defined, generate
 		 R_X86_64_IRELATIVE instead of R_X86_64_JUMP_SLOT.  */
 	      rela.r_info = htab->r_info (0, R_X86_64_IRELATIVE);
@@ -5973,15 +4029,17 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
 	      plt_index = htab->next_jump_slot_index++;
 	    }
 
-	  /* Don't fill PLT entry for static executables.  */
-	  if (plt == htab->elf.splt)
+	  /* Don't fill the second and third slots in PLT entry for
+	     static executables nor without PLT0.  */
+	  if (plt == htab->elf.splt && htab->plt.has_plt0)
 	    {
-	      bfd_vma plt0_offset = h->plt.offset + plt_plt_insn_end;
+	      bfd_vma plt0_offset
+		= h->plt.offset + htab->lazy_plt->plt_plt_insn_end;
 
 	      /* Put relocation index.  */
 	      bfd_put_32 (output_bfd, plt_index,
 			  (plt->contents + h->plt.offset
-			   + abed->plt_reloc_offset));
+			   + htab->lazy_plt->plt_reloc_offset));
 
 	      /* Put offset for jmp .PLT0 and check for overflow.  We don't
 		 check relocation index for overflow since branch displacement
@@ -5991,7 +4049,8 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
 		info->callbacks->einfo (_("%F%B: branch displacement overflow in PLT entry for `%s'\n"),
 					output_bfd, h->root.root.string);
 	      bfd_put_32 (output_bfd, - plt0_offset,
-			  plt->contents + h->plt.offset + plt_plt_offset);
+			  (plt->contents + h->plt.offset
+			   + htab->lazy_plt->plt_plt_offset));
 	    }
 
 	  bed = get_elf_backend_data (output_bfd);
@@ -6001,11 +4060,10 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
     }
   else if (eh->plt_got.offset != (bfd_vma) -1)
     {
-      bfd_vma got_offset, plt_offset, plt_got_offset, plt_got_insn_size;
+      bfd_vma got_offset, plt_offset;
       asection *plt, *got;
       bfd_boolean got_after_plt;
       int32_t got_pcrel_offset;
-      const bfd_byte *got_plt_entry;
 
       /* Set the entry in the GOT procedure linkage table.  */
       plt = htab->plt_got;
@@ -6013,30 +4071,18 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
       got_offset = h->got.offset;
 
       if (got_offset == (bfd_vma) -1
-	  || h->type == STT_GNU_IFUNC
+	  || (h->type == STT_GNU_IFUNC && h->def_regular)
 	  || plt == NULL
 	  || got == NULL)
 	abort ();
 
-      /* Use the second PLT entry template for the GOT PLT since they
+      /* Use the non-lazy PLT entry template for the GOT PLT since they
 	 are the identical.  */
-      plt_got_insn_size = elf_x86_64_bnd_arch_bed.plt_got_insn_size;
-      plt_got_offset = elf_x86_64_bnd_arch_bed.plt_got_offset;
-      if (eh->has_bnd_reloc)
-	got_plt_entry = elf_x86_64_bnd_plt2_entry;
-      else
-	{
-	  got_plt_entry = elf_x86_64_legacy_plt2_entry;
-
-	  /* Subtract 1 since there is no BND prefix.  */
-	  plt_got_insn_size -= 1;
-	  plt_got_offset -= 1;
-	}
-
       /* Fill in the entry in the GOT procedure linkage table.  */
       plt_offset = eh->plt_got.offset;
       memcpy (plt->contents + plt_offset,
-	      got_plt_entry, sizeof (elf_x86_64_legacy_plt2_entry));
+	      htab->non_lazy_plt->plt_entry,
+	      htab->non_lazy_plt->plt_entry_size);
 
       /* Put offset the PC-relative instruction referring to the GOT
 	 entry, subtracting the size of that instruction.  */
@@ -6046,7 +4092,7 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
 			  - plt->output_section->vma
 			  - plt->output_offset
 			  - plt_offset
-			  - plt_got_insn_size);
+			  - htab->non_lazy_plt->plt_got_insn_size);
 
       /* Check PC-relative offset overflow in GOT PLT entry.  */
       got_after_plt = got->output_section->vma > plt->output_section->vma;
@@ -6057,7 +4103,8 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
 				output_bfd, h->root.root.string);
 
       bfd_put_32 (output_bfd, got_pcrel_offset,
-		  plt->contents + plt_offset + plt_got_offset);
+		  (plt->contents + plt_offset
+		   + htab->non_lazy_plt->plt_got_offset));
     }
 
   if (!local_undefweak
@@ -6081,8 +4128,8 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
   /* Don't generate dynamic GOT relocation against undefined weak
      symbol in executable.  */
   if (h->got.offset != (bfd_vma) -1
-      && ! GOT_TLS_GD_ANY_P (elf_x86_64_hash_entry (h)->tls_type)
-      && elf_x86_64_hash_entry (h)->tls_type != GOT_TLS_IE
+      && ! GOT_TLS_GD_ANY_P (elf_x86_hash_entry (h)->tls_type)
+      && elf_x86_hash_entry (h)->tls_type != GOT_TLS_IE
       && !local_undefweak)
     {
       Elf_Internal_Rela rela;
@@ -6114,8 +4161,12 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
 		     in static executable.  */
 		  relgot = htab->elf.irelplt;
 		}
-	      if (SYMBOL_REFERENCES_LOCAL (info, h))
+	      if (SYMBOL_REFERENCES_LOCAL_P (info, h))
 		{
+		  info->callbacks->minfo (_("Local IFUNC function `%s' in %B\n"),
+					  h->root.root.string,
+					  h->root.u.def.section->owner);
+
 		  rela.r_info = htab->r_info (0,
 					      R_X86_64_IRELATIVE);
 		  rela.r_addend = (h->root.u.def.value
@@ -6133,6 +4184,7 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
 	  else
 	    {
 	      asection *plt;
+	      bfd_vma plt_offset;
 
 	      if (!h->pointer_equality_needed)
 		abort ();
@@ -6140,18 +4192,27 @@ elf_x86_64_finish_dynamic_symbol (bfd *o
 	      /* For non-shared object, we can't use .got.plt, which
 		 contains the real function addres if we need pointer
 		 equality.  We load the GOT entry with the PLT entry.  */
-	      plt = htab->elf.splt ? htab->elf.splt : htab->elf.iplt;
+	      if (htab->plt_second != NULL)
+		{
+		  plt = htab->plt_second;
+		  plt_offset = eh->plt_second.offset;
+		}
+	      else
+		{
+		  plt = htab->elf.splt ? htab->elf.splt : htab->elf.iplt;
+		  plt_offset =  h->plt.offset;
+		}
 	      bfd_put_64 (output_bfd, (plt->output_section->vma
 				       + plt->output_offset
-				       + h->plt.offset),
+				       + plt_offset),
 			  htab->elf.sgot->contents + h->got.offset);
 	      return TRUE;
 	    }
 	}
       else if (bfd_link_pic (info)
-	       && SYMBOL_REFERENCES_LOCAL (info, h))
+	       && SYMBOL_REFERENCES_LOCAL_P (info, h))
 	{
-	  if (!h->def_regular)
+	  if (!(h->def_regular || ELF_COMMON_DEF_P (h)))
 	    return FALSE;
 	  BFD_ASSERT((h->got.offset & 1) != 0);
 	  rela.r_info = htab->r_info (0, R_X86_64_RELATIVE);
@@ -6178,13 +4239,7 @@ do_glob_dat:
       asection *s;
 
       /* This symbol needs a copy reloc.  Set it up.  */
-
-      if (h->dynindx == -1
-	  || (h->root.type != bfd_link_hash_defined
-	      && h->root.type != bfd_link_hash_defweak)
-	  || htab->elf.srelbss == NULL
-	  || htab->elf.sreldynrelro == NULL)
-	abort ();
+      VERIFY_COPY_RELOC (h, htab)
 
       rela.r_offset = (h->root.u.def.value
 		       + h->root.u.def.section->output_section->vma
@@ -6213,7 +4268,7 @@ elf_x86_64_finish_local_dynamic_symbol (
     = (struct bfd_link_info *) inf;
 
   return elf_x86_64_finish_dynamic_symbol (info->output_bfd,
-					     info, h, NULL);
+					   info, h, NULL);
 }
 
 /* Finish up undefined weak symbol handling in PIE.  Fill its PLT entry
@@ -6232,7 +4287,7 @@ elf_x86_64_pie_finish_undefweak_symbol (
     return TRUE;
 
   return elf_x86_64_finish_dynamic_symbol (info->output_bfd,
-					     info, h, NULL);
+					   info, h, NULL);
 }
 
 /* Used to decide how to sort relocs in an optimal manner for the
@@ -6245,13 +4300,14 @@ elf_x86_64_reloc_type_class (const struc
 {
   bfd *abfd = info->output_bfd;
   const struct elf_backend_data *bed = get_elf_backend_data (abfd);
-  struct elf_x86_64_link_hash_table *htab = elf_x86_64_hash_table (info);
+  struct elf_x86_link_hash_table *htab
+    = elf_x86_hash_table (info, X86_64_ELF_DATA);
 
   if (htab->elf.dynsym != NULL
       && htab->elf.dynsym->contents != NULL)
     {
       /* Check relocation against STT_GNU_IFUNC symbol if there are
-         dynamic symbols.  */
+	 dynamic symbols.  */
       unsigned long r_symndx = htab->r_sym (rela->r_info);
       if (r_symndx != STN_UNDEF)
 	{
@@ -6289,85 +4345,27 @@ static bfd_boolean
 elf_x86_64_finish_dynamic_sections (bfd *output_bfd,
 				    struct bfd_link_info *info)
 {
-  struct elf_x86_64_link_hash_table *htab;
-  bfd *dynobj;
-  asection *sdyn;
-  const struct elf_x86_64_backend_data *abed;
+  struct elf_x86_link_hash_table *htab;
 
-  htab = elf_x86_64_hash_table (info);
+  htab = _bfd_x86_elf_finish_dynamic_sections (output_bfd, info);
   if (htab == NULL)
     return FALSE;
 
-  /* Use MPX backend data in case of BND relocation.  Use .plt_bnd
-     section only if there is .plt section.  */
-  abed = (htab->elf.splt != NULL && htab->plt_bnd != NULL
-	  ? &elf_x86_64_bnd_arch_bed
-	  : get_elf_x86_64_backend_data (output_bfd));
-
-  dynobj = htab->elf.dynobj;
-  sdyn = bfd_get_linker_section (dynobj, ".dynamic");
+  if (! htab->elf.dynamic_sections_created)
+    return TRUE;
 
-  if (htab->elf.dynamic_sections_created)
+  if (htab->elf.splt && htab->elf.splt->size > 0)
     {
-      bfd_byte *dyncon, *dynconend;
-      const struct elf_backend_data *bed;
-      bfd_size_type sizeof_dyn;
-
-      if (sdyn == NULL || htab->elf.sgot == NULL)
-	abort ();
-
-      bed = get_elf_backend_data (dynobj);
-      sizeof_dyn = bed->s->sizeof_dyn;
-      dyncon = sdyn->contents;
-      dynconend = sdyn->contents + sdyn->size;
-      for (; dyncon < dynconend; dyncon += sizeof_dyn)
-	{
-	  Elf_Internal_Dyn dyn;
-	  asection *s;
-
-	  (*bed->s->swap_dyn_in) (dynobj, dyncon, &dyn);
-
-	  switch (dyn.d_tag)
-	    {
-	    default:
-	      continue;
-
-	    case DT_PLTGOT:
-	      s = htab->elf.sgotplt;
-	      dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
-	      break;
-
-	    case DT_JMPREL:
-	      dyn.d_un.d_ptr = htab->elf.srelplt->output_section->vma;
-	      break;
-
-	    case DT_PLTRELSZ:
-	      s = htab->elf.srelplt->output_section;
-	      dyn.d_un.d_val = s->size;
-	      break;
-
-	    case DT_TLSDESC_PLT:
-	      s = htab->elf.splt;
-	      dyn.d_un.d_ptr = s->output_section->vma + s->output_offset
-		+ htab->tlsdesc_plt;
-	      break;
-
-	    case DT_TLSDESC_GOT:
-	      s = htab->elf.sgot;
-	      dyn.d_un.d_ptr = s->output_section->vma + s->output_offset
-		+ htab->tlsdesc_got;
-	      break;
-	    }
-
-	  (*bed->s->swap_dyn_out) (output_bfd, &dyn, dyncon);
-	}
+      elf_section_data (htab->elf.splt->output_section)
+	->this_hdr.sh_entsize = htab->plt.plt_entry_size;
 
-      /* Fill in the special first entry in the procedure linkage table.  */
-      if (htab->elf.splt && htab->elf.splt->size > 0)
+      if (htab->plt.has_plt0)
 	{
-	  /* Fill in the first entry in the procedure linkage table.  */
+	  /* Fill in the special first entry in the procedure linkage
+	     table.  */
 	  memcpy (htab->elf.splt->contents,
-		  abed->plt0_entry, abed->plt_entry_size);
+		  htab->lazy_plt->plt0_entry,
+		  htab->lazy_plt->plt0_entry_size);
 	  /* Add offset for pushq GOT+8(%rip), since the instruction
 	     uses 6 bytes subtract this value.  */
 	  bfd_put_32 (output_bfd,
@@ -6377,176 +4375,62 @@ elf_x86_64_finish_dynamic_sections (bfd 
 		       - htab->elf.splt->output_section->vma
 		       - htab->elf.splt->output_offset
 		       - 6),
-		      htab->elf.splt->contents + abed->plt0_got1_offset);
-	  /* Add offset for the PC-relative instruction accessing GOT+16,
-	     subtracting the offset to the end of that instruction.  */
+		      (htab->elf.splt->contents
+		       + htab->lazy_plt->plt0_got1_offset));
+	  /* Add offset for the PC-relative instruction accessing
+	     GOT+16, subtracting the offset to the end of that
+	     instruction.  */
 	  bfd_put_32 (output_bfd,
 		      (htab->elf.sgotplt->output_section->vma
 		       + htab->elf.sgotplt->output_offset
 		       + 16
 		       - htab->elf.splt->output_section->vma
 		       - htab->elf.splt->output_offset
-		       - abed->plt0_got2_insn_end),
-		      htab->elf.splt->contents + abed->plt0_got2_offset);
-
-	  elf_section_data (htab->elf.splt->output_section)
-	    ->this_hdr.sh_entsize = abed->plt_entry_size;
-
-	  if (htab->tlsdesc_plt)
-	    {
-	      bfd_put_64 (output_bfd, (bfd_vma) 0,
-			  htab->elf.sgot->contents + htab->tlsdesc_got);
-
-	      memcpy (htab->elf.splt->contents + htab->tlsdesc_plt,
-		      abed->plt0_entry, abed->plt_entry_size);
-
-	      /* Add offset for pushq GOT+8(%rip), since the
-		 instruction uses 6 bytes subtract this value.  */
-	      bfd_put_32 (output_bfd,
-			  (htab->elf.sgotplt->output_section->vma
-			   + htab->elf.sgotplt->output_offset
-			   + 8
-			   - htab->elf.splt->output_section->vma
-			   - htab->elf.splt->output_offset
-			   - htab->tlsdesc_plt
-			   - 6),
-			  htab->elf.splt->contents
-			  + htab->tlsdesc_plt + abed->plt0_got1_offset);
-	  /* Add offset for the PC-relative instruction accessing GOT+TDG,
-	     where TGD stands for htab->tlsdesc_got, subtracting the offset
-	     to the end of that instruction.  */
-	      bfd_put_32 (output_bfd,
-			  (htab->elf.sgot->output_section->vma
-			   + htab->elf.sgot->output_offset
-			   + htab->tlsdesc_got
-			   - htab->elf.splt->output_section->vma
-			   - htab->elf.splt->output_offset
-			   - htab->tlsdesc_plt
-			   - abed->plt0_got2_insn_end),
-			  htab->elf.splt->contents
-			  + htab->tlsdesc_plt + abed->plt0_got2_offset);
-	    }
+		       - htab->lazy_plt->plt0_got2_insn_end),
+		      (htab->elf.splt->contents
+		       + htab->lazy_plt->plt0_got2_offset));
 	}
-    }
 
-  if (htab->plt_bnd != NULL)
-    elf_section_data (htab->plt_bnd->output_section)
-      ->this_hdr.sh_entsize = sizeof (elf_x86_64_bnd_plt2_entry);
-
-  if (htab->elf.sgotplt)
-    {
-      if (bfd_is_abs_section (htab->elf.sgotplt->output_section))
-	{
-	  _bfd_error_handler
-	    (_("discarded output section: `%A'"), htab->elf.sgotplt);
-	  return FALSE;
-	}
-
-      /* Fill in the first three entries in the global offset table.  */
-      if (htab->elf.sgotplt->size > 0)
-	{
-	  /* Set the first entry in the global offset table to the address of
-	     the dynamic section.  */
-	  if (sdyn == NULL)
-	    bfd_put_64 (output_bfd, (bfd_vma) 0, htab->elf.sgotplt->contents);
-	  else
-	    bfd_put_64 (output_bfd,
-			sdyn->output_section->vma + sdyn->output_offset,
-			htab->elf.sgotplt->contents);
-	  /* Write GOT[1] and GOT[2], needed for the dynamic linker.  */
-	  bfd_put_64 (output_bfd, (bfd_vma) 0, htab->elf.sgotplt->contents + GOT_ENTRY_SIZE);
-	  bfd_put_64 (output_bfd, (bfd_vma) 0, htab->elf.sgotplt->contents + GOT_ENTRY_SIZE*2);
-	}
-
-      elf_section_data (htab->elf.sgotplt->output_section)->this_hdr.sh_entsize =
-	GOT_ENTRY_SIZE;
-    }
-
-  /* Adjust .eh_frame for .plt section.  */
-  if (htab->plt_eh_frame != NULL
-      && htab->plt_eh_frame->contents != NULL)
-    {
-      if (htab->elf.splt != NULL
-	  && htab->elf.splt->size != 0
-	  && (htab->elf.splt->flags & SEC_EXCLUDE) == 0
-	  && htab->elf.splt->output_section != NULL
-	  && htab->plt_eh_frame->output_section != NULL)
-	{
-	  bfd_vma plt_start = htab->elf.splt->output_section->vma;
-	  bfd_vma eh_frame_start = htab->plt_eh_frame->output_section->vma
-				   + htab->plt_eh_frame->output_offset
-				   + PLT_FDE_START_OFFSET;
-	  bfd_put_signed_32 (dynobj, plt_start - eh_frame_start,
-			     htab->plt_eh_frame->contents
-			     + PLT_FDE_START_OFFSET);
-	}
-      if (htab->plt_eh_frame->sec_info_type == SEC_INFO_TYPE_EH_FRAME)
-	{
-	  if (! _bfd_elf_write_section_eh_frame (output_bfd, info,
-						 htab->plt_eh_frame,
-						 htab->plt_eh_frame->contents))
-	    return FALSE;
-	}
-    }
+      if (htab->tlsdesc_plt)
+	{
+	  bfd_put_64 (output_bfd, (bfd_vma) 0,
+		      htab->elf.sgot->contents + htab->tlsdesc_got);
 
-  /* Adjust .eh_frame for .plt.got section.  */
-  if (htab->plt_got_eh_frame != NULL
-      && htab->plt_got_eh_frame->contents != NULL)
-    {
-      if (htab->plt_got != NULL
-	  && htab->plt_got->size != 0
-	  && (htab->plt_got->flags & SEC_EXCLUDE) == 0
-	  && htab->plt_got->output_section != NULL
-	  && htab->plt_got_eh_frame->output_section != NULL)
-	{
-	  bfd_vma plt_start = htab->plt_got->output_section->vma;
-	  bfd_vma eh_frame_start = htab->plt_got_eh_frame->output_section->vma
-				   + htab->plt_got_eh_frame->output_offset
-				   + PLT_FDE_START_OFFSET;
-	  bfd_put_signed_32 (dynobj, plt_start - eh_frame_start,
-			     htab->plt_got_eh_frame->contents
-			     + PLT_FDE_START_OFFSET);
-	}
-      if (htab->plt_got_eh_frame->sec_info_type == SEC_INFO_TYPE_EH_FRAME)
-	{
-	  if (! _bfd_elf_write_section_eh_frame (output_bfd, info,
-						 htab->plt_got_eh_frame,
-						 htab->plt_got_eh_frame->contents))
-	    return FALSE;
-	}
-    }
+	  memcpy (htab->elf.splt->contents + htab->tlsdesc_plt,
+		  htab->lazy_plt->plt0_entry,
+		  htab->lazy_plt->plt0_entry_size);
 
-  /* Adjust .eh_frame for .plt.bnd section.  */
-  if (htab->plt_bnd_eh_frame != NULL
-      && htab->plt_bnd_eh_frame->contents != NULL)
-    {
-      if (htab->plt_bnd != NULL
-	  && htab->plt_bnd->size != 0
-	  && (htab->plt_bnd->flags & SEC_EXCLUDE) == 0
-	  && htab->plt_bnd->output_section != NULL
-	  && htab->plt_bnd_eh_frame->output_section != NULL)
-	{
-	  bfd_vma plt_start = htab->plt_bnd->output_section->vma;
-	  bfd_vma eh_frame_start = htab->plt_bnd_eh_frame->output_section->vma
-				   + htab->plt_bnd_eh_frame->output_offset
-				   + PLT_FDE_START_OFFSET;
-	  bfd_put_signed_32 (dynobj, plt_start - eh_frame_start,
-			     htab->plt_bnd_eh_frame->contents
-			     + PLT_FDE_START_OFFSET);
-	}
-      if (htab->plt_bnd_eh_frame->sec_info_type == SEC_INFO_TYPE_EH_FRAME)
-	{
-	  if (! _bfd_elf_write_section_eh_frame (output_bfd, info,
-						 htab->plt_bnd_eh_frame,
-						 htab->plt_bnd_eh_frame->contents))
-	    return FALSE;
+	  /* Add offset for pushq GOT+8(%rip), since the
+	     instruction uses 6 bytes subtract this value.  */
+	  bfd_put_32 (output_bfd,
+		      (htab->elf.sgotplt->output_section->vma
+		       + htab->elf.sgotplt->output_offset
+		       + 8
+		       - htab->elf.splt->output_section->vma
+		       - htab->elf.splt->output_offset
+		       - htab->tlsdesc_plt
+		       - 6),
+		      (htab->elf.splt->contents
+		       + htab->tlsdesc_plt
+		       + htab->lazy_plt->plt0_got1_offset));
+	  /* Add offset for the PC-relative instruction accessing
+	     GOT+TDG, where TDG stands for htab->tlsdesc_got,
+	     subtracting the offset to the end of that
+	     instruction.  */
+	  bfd_put_32 (output_bfd,
+		      (htab->elf.sgot->output_section->vma
+		       + htab->elf.sgot->output_offset
+		       + htab->tlsdesc_got
+		       - htab->elf.splt->output_section->vma
+		       - htab->elf.splt->output_offset
+		       - htab->tlsdesc_plt
+		       - htab->lazy_plt->plt0_got2_insn_end),
+		      (htab->elf.splt->contents
+		       + htab->tlsdesc_plt
+		       + htab->lazy_plt->plt0_got2_offset));
 	}
     }
 
-  if (htab->elf.sgot && htab->elf.sgot->size > 0)
-    elf_section_data (htab->elf.sgot->output_section)->this_hdr.sh_entsize
-      = GOT_ENTRY_SIZE;
-
   /* Fill PLT entries for undefined weak symbols in PIE.  */
   if (bfd_link_pie (info))
     bfd_hash_traverse (&info->hash->table,
@@ -6571,7 +4455,8 @@ elf_x86_64_output_arch_local_syms
 		asection *,
 		struct elf_link_hash_entry *) ATTRIBUTE_UNUSED)
 {
-  struct elf_x86_64_link_hash_table *htab = elf_x86_64_hash_table (info);
+  struct elf_x86_link_hash_table *htab
+    = elf_x86_hash_table (info, X86_64_ELF_DATA);
   if (htab == NULL)
     return FALSE;
 
@@ -6583,126 +4468,203 @@ elf_x86_64_output_arch_local_syms
   return TRUE;
 }
 
-/* Return an array of PLT entry symbol values.  */
+/* Forward declaration.  */
+static const struct elf_x86_lazy_plt_layout elf_x86_64_nacl_plt;
 
-static bfd_vma *
-elf_x86_64_get_plt_sym_val (bfd *abfd, asymbol **dynsyms, asection *plt,
-			    asection *relplt)
-{
-  bfd_boolean (*slurp_relocs) (bfd *, asection *, asymbol **, bfd_boolean);
-  arelent *p;
-  long count, i;
-  bfd_vma *plt_sym_val;
-  bfd_vma plt_offset;
-  bfd_byte *plt_contents;
-  const struct elf_x86_64_backend_data *bed;
-  Elf_Internal_Shdr *hdr;
-  asection *plt_bnd;
-
-  /* Get the .plt section contents.  PLT passed down may point to the
-     .plt.bnd section.  Make sure that PLT always points to the .plt
-     section.  */
-  plt_bnd = bfd_get_section_by_name (abfd, ".plt.bnd");
-  if (plt_bnd)
-    {
-      if (plt != plt_bnd)
-	abort ();
-      plt = bfd_get_section_by_name (abfd, ".plt");
-      if (plt == NULL)
-	abort ();
-      bed = &elf_x86_64_bnd_arch_bed;
-    }
-  else
-    bed = get_elf_x86_64_backend_data (abfd);
-
-  plt_contents = (bfd_byte *) bfd_malloc (plt->size);
-  if (plt_contents == NULL)
-    return NULL;
-  if (!bfd_get_section_contents (abfd, (asection *) plt,
-				 plt_contents, 0, plt->size))
-    {
-bad_return:
-      free (plt_contents);
-      return NULL;
-    }
+/* Similar to _bfd_elf_get_synthetic_symtab.  Support PLTs with all
+   dynamic relocations.   */
 
-  slurp_relocs = get_elf_backend_data (abfd)->s->slurp_reloc_table;
-  if (! (*slurp_relocs) (abfd, relplt, dynsyms, TRUE))
-    goto bad_return;
+static long
+elf_x86_64_get_synthetic_symtab (bfd *abfd,
+				 long symcount ATTRIBUTE_UNUSED,
+				 asymbol **syms ATTRIBUTE_UNUSED,
+				 long dynsymcount,
+				 asymbol **dynsyms,
+				 asymbol **ret)
+{
+  long count, i, n;
+  int j;
+  bfd_byte *plt_contents;
+  long relsize;
+  const struct elf_x86_lazy_plt_layout *lazy_plt;
+  const struct elf_x86_non_lazy_plt_layout *non_lazy_plt;
+  const struct elf_x86_lazy_plt_layout *lazy_bnd_plt;
+  const struct elf_x86_non_lazy_plt_layout *non_lazy_bnd_plt;
+  const struct elf_x86_lazy_plt_layout *lazy_ibt_plt;
+  const struct elf_x86_non_lazy_plt_layout *non_lazy_ibt_plt;
+  asection *plt;
+  enum elf_x86_plt_type plt_type;
+  struct elf_x86_plt plts[] =
+    {
+      { ".plt", NULL, NULL, plt_unknown, 0, 0, 0, 0 },
+      { ".plt.got", NULL, NULL, plt_non_lazy, 0, 0, 0, 0 },
+      { ".plt.sec", NULL, NULL, plt_second, 0, 0, 0, 0 },
+      { ".plt.bnd", NULL, NULL, plt_second, 0, 0, 0, 0 },
+      { NULL, NULL, NULL, plt_non_lazy, 0, 0, 0, 0 }
+    };
 
-  hdr = &elf_section_data (relplt)->this_hdr;
-  count = relplt->size / hdr->sh_entsize;
+  *ret = NULL;
 
-  plt_sym_val = (bfd_vma *) bfd_malloc (sizeof (bfd_vma) * count);
-  if (plt_sym_val == NULL)
-    goto bad_return;
+  if ((abfd->flags & (DYNAMIC | EXEC_P)) == 0)
+    return 0;
 
-  for (i = 0; i < count; i++)
-    plt_sym_val[i] = -1;
+  if (dynsymcount <= 0)
+    return 0;
 
-  plt_offset = bed->plt_entry_size;
-  p = relplt->relocation;
-  for (i = 0; i < count; i++, p++)
+  relsize = bfd_get_dynamic_reloc_upper_bound (abfd);
+  if (relsize <= 0)
+    return -1;
+
+  if (get_elf_x86_backend_data (abfd)->target_os == is_normal)
+    {
+      lazy_plt = &elf_x86_64_lazy_plt;
+      non_lazy_plt = &elf_x86_64_non_lazy_plt;
+      lazy_bnd_plt = &elf_x86_64_lazy_bnd_plt;
+      non_lazy_bnd_plt = &elf_x86_64_non_lazy_bnd_plt;
+      if (ABI_64_P (abfd))
+	{
+	  lazy_ibt_plt = &elf_x86_64_lazy_ibt_plt;
+	  non_lazy_ibt_plt = &elf_x86_64_non_lazy_ibt_plt;
+	}
+      else
+	{
+	  lazy_ibt_plt = &elf_x32_lazy_ibt_plt;
+	  non_lazy_ibt_plt = &elf_x32_non_lazy_ibt_plt;
+	}
+    }
+  else
     {
-      long reloc_index;
+      lazy_plt = &elf_x86_64_nacl_plt;
+      non_lazy_plt = NULL;
+      lazy_bnd_plt = NULL;
+      non_lazy_bnd_plt = NULL;
+      lazy_ibt_plt = NULL;
+      non_lazy_ibt_plt = NULL;
+    }
 
-      /* Skip unknown relocation.  */
-      if (p->howto == NULL)
+  count = 0;
+  for (j = 0; plts[j].name != NULL; j++)
+    {
+      plt = bfd_get_section_by_name (abfd, plts[j].name);
+      if (plt == NULL || plt->size == 0)
 	continue;
 
-      if (p->howto->type != R_X86_64_JUMP_SLOT
-	  && p->howto->type != R_X86_64_IRELATIVE)
-	continue;
+      /* Get the PLT section contents.  */
+      plt_contents = (bfd_byte *) bfd_malloc (plt->size);
+      if (plt_contents == NULL)
+	break;
+      if (!bfd_get_section_contents (abfd, (asection *) plt,
+				     plt_contents, 0, plt->size))
+	{
+	  free (plt_contents);
+	  break;
+	}
 
-      reloc_index = H_GET_32 (abfd, (plt_contents + plt_offset
-				     + bed->plt_reloc_offset));
-      if (reloc_index < count)
-	{
-	  if (plt_bnd)
-	    {
-	      /* This is the index in .plt section.  */
-	      long plt_index = plt_offset / bed->plt_entry_size;
-	      /* Store VMA + the offset in .plt.bnd section.  */
-	      plt_sym_val[reloc_index] =
-		(plt_bnd->vma
-		 + (plt_index - 1) * sizeof (elf_x86_64_legacy_plt2_entry));
+      /* Check what kind of PLT it is.  */
+      plt_type = plt_unknown;
+      if (plts[j].type == plt_unknown
+	  && (plt->size >= (lazy_plt->plt_entry_size
+			    + lazy_plt->plt_entry_size)))
+	{
+	  /* Match lazy PLT first.  Need to check the first two
+	     instructions.   */
+	  if ((memcmp (plt_contents, lazy_plt->plt0_entry,
+		       lazy_plt->plt0_got1_offset) == 0)
+	      && (memcmp (plt_contents + 6, lazy_plt->plt0_entry + 6,
+			  2) == 0))
+	    plt_type = plt_lazy;
+	  else if (lazy_bnd_plt != NULL
+		   && (memcmp (plt_contents, lazy_bnd_plt->plt0_entry,
+			       lazy_bnd_plt->plt0_got1_offset) == 0)
+		   && (memcmp (plt_contents + 6,
+			       lazy_bnd_plt->plt0_entry + 6, 3) == 0))
+	    {
+	      plt_type = plt_lazy | plt_second;
+	      /* The fist entry in the lazy IBT PLT is the same as the
+		 lazy BND PLT.  */
+	      if ((memcmp (plt_contents + lazy_ibt_plt->plt_entry_size,
+			   lazy_ibt_plt->plt_entry,
+			   lazy_ibt_plt->plt_got_offset) == 0))
+		lazy_plt = lazy_ibt_plt;
+	      else
+		lazy_plt = lazy_bnd_plt;
 	    }
-	  else
-	    plt_sym_val[reloc_index] = plt->vma + plt_offset;
 	}
-      plt_offset += bed->plt_entry_size;
 
-      /* PR binutils/18437: Skip extra relocations in the .rela.plt
-	 section.  */
-      if (plt_offset >= plt->size)
-	break;
-    }
+      if (non_lazy_plt != NULL
+	  && (plt_type == plt_unknown || plt_type == plt_non_lazy)
+	  && plt->size >= non_lazy_plt->plt_entry_size)
+	{
+	  /* Match non-lazy PLT.  */
+	  if (memcmp (plt_contents, non_lazy_plt->plt_entry,
+		      non_lazy_plt->plt_got_offset) == 0)
+	    plt_type = plt_non_lazy;
+	}
 
-  free (plt_contents);
+      if (plt_type == plt_unknown || plt_type == plt_second)
+	{
+	  if (non_lazy_bnd_plt != NULL
+	      && plt->size >= non_lazy_bnd_plt->plt_entry_size
+	      && (memcmp (plt_contents, non_lazy_bnd_plt->plt_entry,
+			  non_lazy_bnd_plt->plt_got_offset) == 0))
+	    {
+	      /* Match BND PLT.  */
+	      plt_type = plt_second;
+	      non_lazy_plt = non_lazy_bnd_plt;
+	    }
+	  else if (non_lazy_ibt_plt != NULL
+		   && plt->size >= non_lazy_ibt_plt->plt_entry_size
+		   && (memcmp (plt_contents,
+			       non_lazy_ibt_plt->plt_entry,
+			       non_lazy_ibt_plt->plt_got_offset) == 0))
+	    {
+	      /* Match IBT PLT.  */
+	      plt_type = plt_second;
+	      non_lazy_plt = non_lazy_ibt_plt;
+	    }
+	}
 
-  return plt_sym_val;
-}
+      if (plt_type == plt_unknown)
+	{
+	  free (plt_contents);
+	  continue;
+	}
 
-/* Similar to _bfd_elf_get_synthetic_symtab, with .plt.bnd section
-   support.  */
+      plts[j].sec = plt;
+      plts[j].type = plt_type;
 
-static long
-elf_x86_64_get_synthetic_symtab (bfd *abfd,
-				 long symcount,
-				 asymbol **syms,
-				 long dynsymcount,
-				 asymbol **dynsyms,
-				 asymbol **ret)
-{
-  /* Pass the .plt.bnd section to _bfd_elf_ifunc_get_synthetic_symtab
-     as PLT if it exists.  */
-  asection *plt = bfd_get_section_by_name (abfd, ".plt.bnd");
-  if (plt == NULL)
-    plt = bfd_get_section_by_name (abfd, ".plt");
-  return _bfd_elf_ifunc_get_synthetic_symtab (abfd, symcount, syms,
-					      dynsymcount, dynsyms, ret,
-					      plt,
-					      elf_x86_64_get_plt_sym_val);
+      if ((plt_type & plt_lazy))
+	{
+	  plts[j].plt_got_offset = lazy_plt->plt_got_offset;
+	  plts[j].plt_got_insn_size = lazy_plt->plt_got_insn_size;
+	  plts[j].plt_entry_size = lazy_plt->plt_entry_size;
+	  /* Skip PLT0 in lazy PLT.  */
+	  i = 1;
+	}
+      else
+	{
+	  plts[j].plt_got_offset = non_lazy_plt->plt_got_offset;
+	  plts[j].plt_got_insn_size = non_lazy_plt->plt_got_insn_size;
+	  plts[j].plt_entry_size = non_lazy_plt->plt_entry_size;
+	  i = 0;
+	}
+
+      /* Skip lazy PLT when the second PLT is used.  */
+      if (plt_type == (plt_lazy | plt_second))
+	plts[j].count = 0;
+      else
+	{
+	  n = plt->size / plts[j].plt_entry_size;
+	  plts[j].count = n;
+	  count += n - i;
+	}
+
+      plts[j].contents = plt_contents;
+    }
+
+  return _bfd_x86_elf_get_synthetic_symtab (abfd, count, relsize,
+					    (bfd_vma) 0, plts, dynsyms,
+					    ret);
 }
 
 /* Handle an x86-64 specific section when reading an object file.  This
@@ -6874,19 +4836,6 @@ elf_x86_64_additional_program_headers (b
   return count;
 }
 
-/* Return TRUE if symbol should be hashed in the `.gnu.hash' section.  */
-
-static bfd_boolean
-elf_x86_64_hash_symbol (struct elf_link_hash_entry *h)
-{
-  if (h->plt.offset != (bfd_vma) -1
-      && !h->def_regular
-      && !h->pointer_equality_needed)
-    return FALSE;
-
-  return _bfd_elf_hash_symbol (h);
-}
-
 /* Return TRUE iff relocations for INPUT are compatible with OUTPUT. */
 
 static bfd_boolean
@@ -6898,76 +4847,70 @@ elf_x86_64_relocs_compatible (const bfd_
 	  && _bfd_elf_relocs_compatible (input, output));
 }
 
-/* Parse x86-64 GNU properties.  */
+/* Set up x86-64 GNU properties.  Return the first relocatable ELF input
+   with GNU properties if found.  Otherwise, return NULL.  */
 
-static enum elf_property_kind
-elf_x86_64_parse_gnu_properties (bfd *abfd, unsigned int type,
-				 bfd_byte *ptr, unsigned int datasz)
-{
-  elf_property *prop;
-
-  switch (type)
-    {
-    case GNU_PROPERTY_X86_ISA_1_USED:
-    case GNU_PROPERTY_X86_ISA_1_NEEDED:
-      if (datasz != 4)
-	{
-	  _bfd_error_handler
-	    ((type == GNU_PROPERTY_X86_ISA_1_USED
-	      ? _("error: %B: <corrupt x86 ISA used size: 0x%x>")
-	      : _("error: %B: <corrupt x86 ISA needed size: 0x%x>")),
-	     abfd, datasz);
-	  return property_corrupt;
-	}
-      prop = _bfd_elf_get_property (abfd, type, datasz);
-      prop->u.number = bfd_h_get_32 (abfd, ptr);
-      prop->pr_kind = property_number;
-      break;
+static bfd *
+elf_x86_64_link_setup_gnu_properties (struct bfd_link_info *info)
+{
+  struct elf_x86_init_table init_table;
 
-    default:
-      return property_ignored;
-    }
+  if ((int) R_X86_64_standard >= (int) R_X86_64_converted_reloc_bit
+      || (int) R_X86_64_max <= (int) R_X86_64_converted_reloc_bit
+      || ((int) (R_X86_64_GNU_VTINHERIT | R_X86_64_converted_reloc_bit)
+	  != (int) R_X86_64_GNU_VTINHERIT)
+      || ((int) (R_X86_64_GNU_VTENTRY | R_X86_64_converted_reloc_bit)
+	  != (int) R_X86_64_GNU_VTENTRY))
+    abort ();
 
-  return property_number;
-}
+  /* This is unused for x86-64.  */
+  init_table.plt0_pad_byte = 0x90;
 
-/* Merge x86-64 GNU property BPROP with APROP.  If APROP isn't NULL,
-   return TRUE if APROP is updated.  Otherwise, return TRUE if BPROP
-   should be merged with ABFD.  */
+  if (get_elf_x86_backend_data (info->output_bfd)->target_os
+      == is_normal)
+    {
+      if (info->bndplt)
+	{
+	  init_table.lazy_plt = &elf_x86_64_lazy_bnd_plt;
+	  init_table.non_lazy_plt = &elf_x86_64_non_lazy_bnd_plt;
+	}
+      else
+	{
+	  init_table.lazy_plt = &elf_x86_64_lazy_plt;
+	  init_table.non_lazy_plt = &elf_x86_64_non_lazy_plt;
+	}
 
-static bfd_boolean
-elf_x86_64_merge_gnu_properties (bfd *abfd ATTRIBUTE_UNUSED,
-				 elf_property *aprop,
-				 elf_property *bprop)
-{
-  unsigned int number;
-  bfd_boolean updated = FALSE;
-  unsigned int pr_type = aprop != NULL ? aprop->pr_type : bprop->pr_type;
-
-  switch (pr_type)
-    {
-    case GNU_PROPERTY_X86_ISA_1_USED:
-    case GNU_PROPERTY_X86_ISA_1_NEEDED:
-      if (aprop != NULL && bprop != NULL)
-	{
-	  number = aprop->u.number;
-	  aprop->u.number = number | bprop->u.number;
-	  updated = number != (unsigned int) aprop->u.number;
+      if (ABI_64_P (info->output_bfd))
+	{
+	  init_table.lazy_ibt_plt = &elf_x86_64_lazy_ibt_plt;
+	  init_table.non_lazy_ibt_plt = &elf_x86_64_non_lazy_ibt_plt;
 	}
       else
 	{
-	  /* Return TRUE if APROP is NULL to indicate that BPROP should
-	     be added to ABFD.  */
-	  updated = aprop == NULL;
+	  init_table.lazy_ibt_plt = &elf_x32_lazy_ibt_plt;
+	  init_table.non_lazy_ibt_plt = &elf_x32_non_lazy_ibt_plt;
 	}
-      break;
+    }
+  else
+    {
+      init_table.lazy_plt = &elf_x86_64_nacl_plt;
+      init_table.non_lazy_plt = NULL;
+      init_table.lazy_ibt_plt = NULL;
+      init_table.non_lazy_ibt_plt = NULL;
+    }
 
-    default:
-      /* Never should happen.  */
-      abort ();
+  if (ABI_64_P (info->output_bfd))
+    {
+      init_table.r_info = elf64_r_info;
+      init_table.r_sym = elf64_r_sym;
+    }
+  else
+    {
+      init_table.r_info = elf32_r_info;
+      init_table.r_sym = elf32_r_sym;
     }
 
-  return updated;
+  return _bfd_x86_elf_link_setup_gnu_properties (info, &init_table);
 }
 
 static const struct bfd_elf_special_section
@@ -6976,10 +4919,10 @@ elf_x86_64_special_sections[]=
   { STRING_COMMA_LEN (".gnu.linkonce.lb"), -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_X86_64_LARGE},
   { STRING_COMMA_LEN (".gnu.linkonce.lr"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_X86_64_LARGE},
   { STRING_COMMA_LEN (".gnu.linkonce.lt"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR + SHF_X86_64_LARGE},
-  { STRING_COMMA_LEN (".lbss"),	           -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_X86_64_LARGE},
+  { STRING_COMMA_LEN (".lbss"),		   -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_X86_64_LARGE},
   { STRING_COMMA_LEN (".ldata"),	   -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_X86_64_LARGE},
   { STRING_COMMA_LEN (".lrodata"),	   -2, SHT_PROGBITS, SHF_ALLOC + SHF_X86_64_LARGE},
-  { NULL,	                0,          0, 0,            0 }
+  { NULL,			0,	    0, 0,	     0 }
 };
 
 #define TARGET_LITTLE_SYM		    x86_64_elf64_vec
@@ -6998,7 +4941,7 @@ elf_x86_64_special_sections[]=
 #define elf_backend_want_plt_sym	    0
 #define elf_backend_got_header_size	    (GOT_ENTRY_SIZE*3)
 #define elf_backend_rela_normal		    1
-#define elf_backend_plt_alignment           4
+#define elf_backend_plt_alignment	    4
 #define elf_backend_extern_protected_data   1
 #define elf_backend_caches_rawsize	    1
 #define elf_backend_dtrel_excludes_plt	    1
@@ -7006,21 +4949,16 @@ elf_x86_64_special_sections[]=
 
 #define elf_info_to_howto		    elf_x86_64_info_to_howto
 
-#define bfd_elf64_bfd_link_hash_table_create \
-  elf_x86_64_link_hash_table_create
 #define bfd_elf64_bfd_reloc_type_lookup	    elf_x86_64_reloc_type_lookup
 #define bfd_elf64_bfd_reloc_name_lookup \
   elf_x86_64_reloc_name_lookup
 
-#define elf_backend_adjust_dynamic_symbol   elf_x86_64_adjust_dynamic_symbol
 #define elf_backend_relocs_compatible	    elf_x86_64_relocs_compatible
 #define elf_backend_check_relocs	    elf_x86_64_check_relocs
-#define elf_backend_copy_indirect_symbol    elf_x86_64_copy_indirect_symbol
-#define elf_backend_create_dynamic_sections elf_x86_64_create_dynamic_sections
+#define elf_backend_create_dynamic_sections _bfd_elf_create_dynamic_sections
 #define elf_backend_finish_dynamic_sections elf_x86_64_finish_dynamic_sections
 #define elf_backend_finish_dynamic_symbol   elf_x86_64_finish_dynamic_symbol
 #define elf_backend_output_arch_local_syms  elf_x86_64_output_arch_local_syms
-#define elf_backend_gc_mark_hook	    elf_x86_64_gc_mark_hook
 #define elf_backend_grok_prstatus	    elf_x86_64_grok_prstatus
 #define elf_backend_grok_psinfo		    elf_x86_64_grok_psinfo
 #ifdef CORE_HEADER
@@ -7028,11 +4966,8 @@ elf_x86_64_special_sections[]=
 #endif
 #define elf_backend_reloc_type_class	    elf_x86_64_reloc_type_class
 #define elf_backend_relocate_section	    elf_x86_64_relocate_section
-#define elf_backend_size_dynamic_sections   elf_x86_64_size_dynamic_sections
-#define elf_backend_always_size_sections    elf_x86_64_always_size_sections
 #define elf_backend_init_index_section	    _bfd_elf_init_1_index_section
 #define elf_backend_object_p		    elf64_x86_64_elf_object_p
-#define bfd_elf64_mkobject		    elf_x86_64_mkobject
 #define bfd_elf64_get_synthetic_symtab	    elf_x86_64_get_synthetic_symtab
 
 #define elf_backend_section_from_shdr \
@@ -7056,45 +4991,39 @@ elf_x86_64_special_sections[]=
   elf_x86_64_special_sections
 #define elf_backend_additional_program_headers \
   elf_x86_64_additional_program_headers
-#define elf_backend_hash_symbol \
-  elf_x86_64_hash_symbol
-#define elf_backend_omit_section_dynsym \
-  ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
-#define elf_backend_fixup_symbol \
-  elf_x86_64_fixup_symbol
-#define elf_backend_parse_gnu_properties \
-  elf_x86_64_parse_gnu_properties
-#define elf_backend_merge_gnu_properties \
- elf_x86_64_merge_gnu_properties
+#define elf_backend_setup_gnu_properties \
+  elf_x86_64_link_setup_gnu_properties
+#define elf_backend_hide_symbol \
+  _bfd_x86_elf_hide_symbol
 
 #include "elf64-target.h"
 
 /* CloudABI support.  */
 
-#undef  TARGET_LITTLE_SYM
+#undef	TARGET_LITTLE_SYM
 #define TARGET_LITTLE_SYM		    x86_64_elf64_cloudabi_vec
-#undef  TARGET_LITTLE_NAME
+#undef	TARGET_LITTLE_NAME
 #define TARGET_LITTLE_NAME		    "elf64-x86-64-cloudabi"
 
 #undef	ELF_OSABI
 #define	ELF_OSABI			    ELFOSABI_CLOUDABI
 
-#undef  elf64_bed
+#undef	elf64_bed
 #define elf64_bed elf64_x86_64_cloudabi_bed
 
 #include "elf64-target.h"
 
 /* FreeBSD support.  */
 
-#undef  TARGET_LITTLE_SYM
+#undef	TARGET_LITTLE_SYM
 #define TARGET_LITTLE_SYM		    x86_64_elf64_fbsd_vec
-#undef  TARGET_LITTLE_NAME
+#undef	TARGET_LITTLE_NAME
 #define TARGET_LITTLE_NAME		    "elf64-x86-64-freebsd"
 
 #undef	ELF_OSABI
 #define	ELF_OSABI			    ELFOSABI_FREEBSD
 
-#undef  elf64_bed
+#undef	elf64_bed
 #define elf64_bed elf64_x86_64_fbsd_bed
 
 #include "elf64-target.h"
@@ -7185,11 +5114,11 @@ elf64_x86_64_nacl_elf_object_p (bfd *abf
 
 static const bfd_byte elf_x86_64_nacl_plt0_entry[NACL_PLT_ENTRY_SIZE] =
   {
-    0xff, 0x35, 8, 0, 0, 0,             /* pushq GOT+8(%rip) 		*/
+    0xff, 0x35, 8, 0, 0, 0,		/* pushq GOT+8(%rip)		*/
     0x4c, 0x8b, 0x1d, 16, 0, 0, 0,	/* mov GOT+16(%rip), %r11	*/
-    0x41, 0x83, 0xe3, NACLMASK,         /* and $-32, %r11d		*/
-    0x4d, 0x01, 0xfb,             	/* add %r15, %r11		*/
-    0x41, 0xff, 0xe3,             	/* jmpq *%r11			*/
+    0x41, 0x83, 0xe3, NACLMASK,		/* and $-32, %r11d		*/
+    0x4d, 0x01, 0xfb,			/* add %r15, %r11		*/
+    0x41, 0xff, 0xe3,			/* jmpq *%r11			*/
 
     /* 9-byte nop sequence to pad out to the next 32-byte boundary.  */
     0x66, 0x0f, 0x1f, 0x84, 0, 0, 0, 0, 0, /* nopw 0x0(%rax,%rax,1)	*/
@@ -7199,49 +5128,49 @@ static const bfd_byte elf_x86_64_nacl_pl
     0x2e, 0x0f, 0x1f, 0x84, 0, 0, 0, 0, 0, /* nopw %cs:0x0(%rax,%rax,1)	*/
     0x66, 0x66, 0x66, 0x66, 0x66, 0x66,    /* excess data16 prefixes	*/
     0x2e, 0x0f, 0x1f, 0x84, 0, 0, 0, 0, 0, /* nopw %cs:0x0(%rax,%rax,1)	*/
-    0x66,                                  /* excess data16 prefix	*/
-    0x90                                   /* nop */
+    0x66,				   /* excess data16 prefix	*/
+    0x90				   /* nop */
   };
 
 static const bfd_byte elf_x86_64_nacl_plt_entry[NACL_PLT_ENTRY_SIZE] =
   {
     0x4c, 0x8b, 0x1d, 0, 0, 0, 0,	/* mov name@GOTPCREL(%rip),%r11	*/
-    0x41, 0x83, 0xe3, NACLMASK,         /* and $-32, %r11d		*/
-    0x4d, 0x01, 0xfb,             	/* add %r15, %r11		*/
-    0x41, 0xff, 0xe3,             	/* jmpq *%r11			*/
+    0x41, 0x83, 0xe3, NACLMASK,		/* and $-32, %r11d		*/
+    0x4d, 0x01, 0xfb,			/* add %r15, %r11		*/
+    0x41, 0xff, 0xe3,			/* jmpq *%r11			*/
 
     /* 15-byte nop sequence to pad out to the next 32-byte boundary.  */
     0x66, 0x66, 0x66, 0x66, 0x66, 0x66,    /* excess data16 prefixes	*/
     0x2e, 0x0f, 0x1f, 0x84, 0, 0, 0, 0, 0, /* nopw %cs:0x0(%rax,%rax,1)	*/
 
     /* Lazy GOT entries point here (32-byte aligned).  */
-    0x68,                 /* pushq immediate */
-    0, 0, 0, 0,           /* replaced with index into relocation table.  */
-    0xe9,                 /* jmp relative */
-    0, 0, 0, 0,           /* replaced with offset to start of .plt0.  */
+    0x68,		  /* pushq immediate */
+    0, 0, 0, 0,		  /* replaced with index into relocation table.	 */
+    0xe9,		  /* jmp relative */
+    0, 0, 0, 0,		  /* replaced with offset to start of .plt0.  */
 
-    /* 22 bytes of nop to pad out to the standard size.  */
+    /* 22 bytes of nop to pad out to the standard size.	 */
     0x66, 0x66, 0x66, 0x66, 0x66, 0x66,    /* excess data16 prefixes	*/
     0x2e, 0x0f, 0x1f, 0x84, 0, 0, 0, 0, 0, /* nopw %cs:0x0(%rax,%rax,1)	*/
-    0x0f, 0x1f, 0x80, 0, 0, 0, 0,          /* nopl 0x0(%rax)		*/
+    0x0f, 0x1f, 0x80, 0, 0, 0, 0,	   /* nopl 0x0(%rax)		*/
   };
 
 /* .eh_frame covering the .plt section.  */
 
 static const bfd_byte elf_x86_64_nacl_eh_frame_plt[] =
   {
-#if (PLT_CIE_LENGTH != 20                               \
-     || PLT_FDE_LENGTH != 36                            \
-     || PLT_FDE_START_OFFSET != 4 + PLT_CIE_LENGTH + 8  \
+#if (PLT_CIE_LENGTH != 20				\
+     || PLT_FDE_LENGTH != 36				\
+     || PLT_FDE_START_OFFSET != 4 + PLT_CIE_LENGTH + 8	\
      || PLT_FDE_LEN_OFFSET != 4 + PLT_CIE_LENGTH + 12)
-# error "Need elf_x86_64_backend_data parameters for eh_frame_plt offsets!"
+# error "Need elf_x86_backend_data parameters for eh_frame_plt offsets!"
 #endif
     PLT_CIE_LENGTH, 0, 0, 0,	/* CIE length */
     0, 0, 0, 0,			/* CIE ID */
     1,				/* CIE version */
-    'z', 'R', 0,                /* Augmentation string */
+    'z', 'R', 0,		/* Augmentation string */
     1,				/* Code alignment factor */
-    0x78,                       /* Data alignment factor */
+    0x78,			/* Data alignment factor */
     16,				/* Return address column */
     1,				/* Augmentation size */
     DW_EH_PE_pcrel | DW_EH_PE_sdata4, /* FDE encoding */
@@ -7267,24 +5196,30 @@ static const bfd_byte elf_x86_64_nacl_eh
     DW_CFA_nop, DW_CFA_nop
   };
 
-static const struct elf_x86_64_backend_data elf_x86_64_nacl_arch_bed =
+static const struct elf_x86_lazy_plt_layout elf_x86_64_nacl_plt =
+  {
+    elf_x86_64_nacl_plt0_entry,		     /* plt0_entry */
+    NACL_PLT_ENTRY_SIZE,		     /* plt0_entry_size */
+    elf_x86_64_nacl_plt_entry,		     /* plt_entry */
+    NACL_PLT_ENTRY_SIZE,		     /* plt_entry_size */
+    2,					     /* plt0_got1_offset */
+    9,					     /* plt0_got2_offset */
+    13,					     /* plt0_got2_insn_end */
+    3,					     /* plt_got_offset */
+    33,					     /* plt_reloc_offset */
+    38,					     /* plt_plt_offset */
+    7,					     /* plt_got_insn_size */
+    42,					     /* plt_plt_insn_end */
+    32,					     /* plt_lazy_offset */
+    elf_x86_64_nacl_plt0_entry,		     /* pic_plt0_entry */
+    elf_x86_64_nacl_plt_entry,		     /* pic_plt_entry */
+    elf_x86_64_nacl_eh_frame_plt,	     /* eh_frame_plt */
+    sizeof (elf_x86_64_nacl_eh_frame_plt)    /* eh_frame_plt_size */
+  };
+
+static const struct elf_x86_backend_data elf_x86_64_nacl_arch_bed =
   {
-    elf_x86_64_nacl_plt0_entry,              /* plt0_entry */
-    elf_x86_64_nacl_plt_entry,               /* plt_entry */
-    NACL_PLT_ENTRY_SIZE,                     /* plt_entry_size */
-    2,                                       /* plt0_got1_offset */
-    9,                                       /* plt0_got2_offset */
-    13,                                      /* plt0_got2_insn_end */
-    3,                                       /* plt_got_offset */
-    33,                                      /* plt_reloc_offset */
-    38,                                      /* plt_plt_offset */
-    7,                                       /* plt_got_insn_size */
-    42,                                      /* plt_plt_insn_end */
-    32,                                      /* plt_lazy_offset */
-    elf_x86_64_nacl_eh_frame_plt,            /* eh_frame_plt */
-    sizeof (elf_x86_64_nacl_eh_frame_plt),   /* eh_frame_plt_size */
-    NULL,                                    /* eh_frame_plt_got */
-    0,                                       /* eh_frame_plt_got_size */
+    is_nacl				     /* os */
   };
 
 #undef	elf_backend_arch_data
@@ -7311,21 +5246,17 @@ elf32_x86_64_nacl_elf_object_p (bfd *abf
   return TRUE;
 }
 
-#undef  TARGET_LITTLE_SYM
+#undef	TARGET_LITTLE_SYM
 #define TARGET_LITTLE_SYM		x86_64_elf32_nacl_vec
-#undef  TARGET_LITTLE_NAME
+#undef	TARGET_LITTLE_NAME
 #define TARGET_LITTLE_NAME		"elf32-x86-64-nacl"
 #undef	elf32_bed
 #define	elf32_bed			elf32_x86_64_nacl_bed
 
-#define bfd_elf32_bfd_link_hash_table_create \
-  elf_x86_64_link_hash_table_create
 #define bfd_elf32_bfd_reloc_type_lookup	\
   elf_x86_64_reloc_type_lookup
 #define bfd_elf32_bfd_reloc_name_lookup \
   elf_x86_64_reloc_name_lookup
-#define bfd_elf32_mkobject \
-  elf_x86_64_mkobject
 #define bfd_elf32_get_synthetic_symtab \
   elf_x86_64_get_synthetic_symtab
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-attrs.c ./bfd/elf-attrs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-attrs.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-attrs.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* ELF attributes support (based on ARM EABI attributes).
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -438,7 +438,7 @@ _bfd_elf_parse_attributes (bfd *abfd, El
   /* PR 17512: file: 2844a11d.  */
   if (hdr->sh_size == 0)
     return;
-  contents = (bfd_byte *) bfd_malloc (hdr->sh_size);
+  contents = (bfd_byte *) bfd_malloc (hdr->sh_size + 1);
   if (!contents)
     return;
   if (!bfd_get_section_contents (abfd, hdr->bfd_section, contents, 0,
@@ -447,6 +447,8 @@ _bfd_elf_parse_attributes (bfd *abfd, El
       free (contents);
       return;
     }
+  /* Ensure that the buffer is NUL terminated.  */
+  contents[hdr->sh_size] = 0;
   p = contents;
   p_end = p + hdr->sh_size;
   std_sec = get_elf_backend_data (abfd)->obj_attrs_vendor;
@@ -468,6 +470,12 @@ _bfd_elf_parse_attributes (bfd *abfd, El
 	  if (section_len > len)
 	    section_len = len;
 	  len -= section_len;
+	  if (section_len <= 4)
+	    {
+	      _bfd_error_handler (_("%B: error: attribute section length too small: %ld"),
+				  abfd, section_len);
+	      break;
+	    }
 	  section_len -= 4;
 	  namelen = strnlen ((char *) p, section_len) + 1;
 	  if (namelen == 0 || namelen >= section_len)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-bfd.h ./bfd/elf-bfd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-bfd.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-bfd.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end data structures for ELF files.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -213,20 +213,25 @@ struct elf_link_hash_entry
   /* Symbol is defined by a shared library with non-default visibility
      in a read/write section.  */
   unsigned int protected_def : 1;
+  /* Symbol is __start_SECNAME or __stop_SECNAME to mark section
+     SECNAME.  */
+  unsigned int start_stop : 1;
+  /* Symbol is or was a weak defined symbol from a dynamic object with
+     a strong defined symbol alias.  U.ALIAS points to a list of aliases,
+     the definition having is_weakalias clear.  */
+  unsigned int is_weakalias : 1;
 
   /* String table index in .dynstr if this is a dynamic symbol.  */
   unsigned long dynstr_index;
 
   union
   {
-    /* If this is a weak defined symbol from a dynamic object, this
-       field points to a defined symbol with the same value, if there is
-       one.  Otherwise it is NULL.  */
-    struct elf_link_hash_entry *weakdef;
+    /* Points to a circular list of non-function symbol aliases.  */
+    struct elf_link_hash_entry *alias;
 
     /* Hash value of the name computed using the ELF hash function.
        Used part way through size_dynamic_sections, after we've finished
-       with weakdefs.  */
+       with aliases.  */
     unsigned long elf_hash_value;
   } u;
 
@@ -243,9 +248,27 @@ struct elf_link_hash_entry
     struct bfd_elf_version_tree *vertree;
   } verinfo;
 
-  struct elf_link_virtual_table_entry *vtable;
+  union
+  {
+    /* For __start_SECNAME and __stop_SECNAME symbols, record the first
+       input section whose section name is SECNAME.  */
+    asection *start_stop_section;
+
+    /* Vtable information. */
+    struct elf_link_virtual_table_entry *vtable;
+  } u2;
 };
 
+/* Return the strong definition for a weak symbol with aliases.  */
+
+static inline struct elf_link_hash_entry *
+weakdef (struct elf_link_hash_entry *h)
+{
+  while (h->is_weakalias)
+    h = h->u.alias;
+  return h;
+}
+
 /* Will references to this symbol always reference the symbol
    in this object?  */
 #define SYMBOL_REFERENCES_LOCAL(INFO, H) \
@@ -255,6 +278,13 @@ struct elf_link_hash_entry
 #define SYMBOL_CALLS_LOCAL(INFO, H) \
   _bfd_elf_symbol_refs_local_p (H, INFO, 1)
 
+/* Whether an undefined weak symbol should resolve to its link-time
+   value, even in PIC or PIE objects.  */
+#define UNDEFWEAK_NO_DYNAMIC_RELOC(INFO, H)		\
+  ((H)->root.type == bfd_link_hash_undefweak		\
+   && (ELF_ST_VISIBILITY ((H)->other) != STV_DEFAULT	\
+       || (INFO)->dynamic_undefined_weak == 0))
+
 /* Common symbols that are turned into definitions don't have the
    DEF_REGULAR flag set, so they might appear to be undefined.
    Symbols defined in linker scripts also don't have DEF_REGULAR set.  */
@@ -318,14 +348,20 @@ struct eh_cie_fde
 	   .eh_frame input section that contains the CIE.  */
       union {
 	struct cie *full_cie;
- 	struct eh_cie_fde *merged_with;
- 	asection *sec;
+	struct eh_cie_fde *merged_with;
+	asection *sec;
       } u;
 
       /* The offset of the personality data from the start of the CIE,
 	 or 0 if the CIE doesn't have any.  */
       unsigned int personality_offset : 8;
 
+      /* Length of augmentation.  aug_str_len is the length of the
+	 string including null terminator.  aug_data_len is the length
+	 of the rest up to the initial insns.  */
+      unsigned int aug_str_len : 3;
+      unsigned int aug_data_len : 5;
+
       /* True if we have marked relocations associated with this CIE.  */
       unsigned int gc_mark : 1;
 
@@ -354,7 +390,7 @@ struct eh_cie_fde
       unsigned int merged : 1;
 
       /* Unused bits.  */
-      unsigned int pad1 : 17;
+      unsigned int pad1 : 9;
     } cie;
   } u;
   unsigned int reloc_index;
@@ -633,7 +669,7 @@ struct elf_link_hash_table
 #define elf_hash_table_id(table)	((table) -> hash_table_id)
 
 /* Returns TRUE if the hash table is a struct elf_link_hash_table.  */
-#define is_elf_hash_table(htab)					      	\
+#define is_elf_hash_table(htab)						\
   (((struct bfd_link_hash_table *) (htab))->type == bfd_link_elf_hash_table)
 
 /* Used by bfd_sym_from_r_symndx to cache a small number of local
@@ -707,10 +743,11 @@ struct elf_size_info {
 };
 
 #define elf_symbol_from(ABFD,S) \
-	(((S)->the_bfd->xvec->flavour == bfd_target_elf_flavour \
-	  && (S)->the_bfd->tdata.elf_obj_data != 0) \
-	 ? (elf_symbol_type *) (S) \
-	 : 0)
+  (((S)->the_bfd != NULL					\
+    && (S)->the_bfd->xvec->flavour == bfd_target_elf_flavour	\
+    && (S)->the_bfd->tdata.elf_obj_data != 0)			\
+   ? (elf_symbol_type *) (S)					\
+   : 0)
 
 enum elf_reloc_type_class {
   reloc_class_normal,
@@ -1143,12 +1180,6 @@ struct elf_backend_data
   bfd_boolean (*gc_mark_extra_sections)
     (struct bfd_link_info *, elf_gc_mark_hook_fn);
 
-  /* This function, if defined, is called during the sweep phase of gc
-     in order that a backend might update any data structures it might
-     be maintaining.  */
-  bfd_boolean (*gc_sweep_hook)
-    (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
-
   /* This function, if defined, is called after the ELF headers have
      been created.  This allows for things like the OS and ABI versions
      to be changed.  */
@@ -1253,6 +1284,11 @@ struct elf_backend_data
   bfd_boolean (*elf_backend_grok_psinfo)
     (bfd *, Elf_Internal_Note *);
 
+  /* This function, if defined, is called when a "FreeBSD" NT_PRSTATUS
+     note is found in a core file.  */
+  bfd_boolean (*elf_backend_grok_freebsd_prstatus)
+    (bfd *, Elf_Internal_Note *);
+
   /* This function, if defined, is called to write a note to a corefile.  */
   char *(*elf_backend_write_core_note)
     (bfd *abfd, char *buf, int *bufsiz, int note_type, ...);
@@ -1285,7 +1321,7 @@ struct elf_backend_data
      that can't be determined for some reason.  The default definition
      goes by the bfd's EI_CLASS.  */
   unsigned int (*elf_backend_eh_frame_address_size)
-    (bfd *, asection *);
+    (bfd *, const asection *);
 
   /* These functions tell elf-eh-frame whether to attempt to turn
      absolute or lsda encodings into pc-relative ones.  The default
@@ -1360,8 +1396,10 @@ struct elf_backend_data
   bfd_size_type (*maybe_function_sym) (const asymbol *sym, asection *sec,
 				       bfd_vma *code_off);
 
-  /* Return the section which RELOC_SEC applies to.  */
-  asection *(*get_reloc_section) (asection *reloc_sec);
+  /* Given NAME, the name of a relocation section stripped of its
+     .rel/.rela prefix, return the section in ABFD to which the
+     relocations apply.  */
+  asection *(*get_reloc_section) (bfd *abfd, const char *name);
 
   /* Called to set the sh_flags, sh_link and sh_info fields of OSECTION which
      has a type >= SHT_LOOS.  Returns TRUE if the fields were initialised,
@@ -1372,7 +1410,7 @@ struct elf_backend_data
   bfd_boolean (*elf_backend_copy_special_section_fields)
     (const bfd *ibfd, bfd *obfd, const Elf_Internal_Shdr *isection,
      Elf_Internal_Shdr *osection);
-		
+
   /* Used to handle bad SHF_LINK_ORDER input.  */
   void (*link_order_error_handler) (const char *, ...);
 
@@ -1429,11 +1467,11 @@ struct elf_backend_data
 						  unsigned int);
 
   /* Merge GNU properties.  Return TRUE if property is updated.  */
-  bfd_boolean (*merge_gnu_properties) (bfd *, elf_property *,
-				       elf_property *);
+  bfd_boolean (*merge_gnu_properties) (struct bfd_link_info *, bfd *,
+				       elf_property *, elf_property *);
 
   /* Set up GNU properties.  */
-  void (*setup_gnu_properties) (struct bfd_link_info *);
+  bfd *(*setup_gnu_properties) (struct bfd_link_info *);
 
   /* Encoding used for compact EH tables.  */
   int (*compact_eh_encoding) (struct bfd_link_info *);
@@ -1529,6 +1567,18 @@ struct elf_backend_data
   /* Address of protected data defined in the shared library may be
      external, i.e., due to copy relocation.   */
   unsigned extern_protected_data : 1;
+
+  /* True if `_bfd_elf_link_renumber_dynsyms' must be called even for
+     static binaries.  */
+  unsigned always_renumber_dynsyms : 1;
+
+  /* True if the 32-bit Linux PRPSINFO structure's `pr_uid' and `pr_gid'
+     members use a 16-bit data type.  */
+  unsigned linux_prpsinfo32_ugid16 : 1;
+
+  /* True if the 64-bit Linux PRPSINFO structure's `pr_uid' and `pr_gid'
+     members use a 16-bit data type.  */
+  unsigned linux_prpsinfo64_ugid16 : 1;
 };
 
 /* Information about reloc sections associated with a bfd_elf_section_data
@@ -1759,8 +1809,8 @@ enum elf_gnu_symbols
 
 typedef struct elf_section_list
 {
-  Elf_Internal_Shdr          hdr;
-  unsigned int               ndx;
+  Elf_Internal_Shdr	     hdr;
+  unsigned int		     ndx;
   struct elf_section_list *  next;
 } elf_section_list;
 
@@ -1864,21 +1914,27 @@ struct elf_obj_tdata
 
   /* An identifier used to distinguish different target
      specific extensions to this structure.  */
-  enum elf_target_id object_id;
+  ENUM_BITFIELD (elf_target_id) object_id : 6;
 
   /* Whether a dyanmic object was specified normally on the linker
      command line, or was specified when --as-needed was in effect,
      or was found via a DT_NEEDED entry.  */
-  enum dynamic_lib_link_class dyn_lib_class;
+  ENUM_BITFIELD (dynamic_lib_link_class) dyn_lib_class : 4;
+
+  /* Whether if the bfd contains symbols that have the STT_GNU_IFUNC
+     symbol type or STB_GNU_UNIQUE binding.  */
+  ENUM_BITFIELD (elf_gnu_symbols) has_gnu_symbols : 3;
+
+  /* Whether if the bfd contains the GNU_PROPERTY_NO_COPY_ON_PROTECTED
+     property.  */
+  unsigned int has_no_copy_on_protected : 1;
 
   /* Irix 5 often screws up the symbol table, sorting local symbols
      after global symbols.  This flag is set if the symbol table in
      this BFD appears to be screwed up.  If it is, we ignore the
      sh_info field in the symbol table header, and always read all the
      symbols.  */
-  bfd_boolean bad_symtab;
-
-  enum elf_gnu_symbols has_gnu_symbols;
+  unsigned int bad_symtab : 1;
 
   /* Information grabbed from an elf core file.  */
   struct core_elf_obj_tdata *core;
@@ -1933,6 +1989,8 @@ struct elf_obj_tdata
 #define elf_other_obj_attributes_proc(bfd) \
   (elf_other_obj_attributes (bfd) [OBJ_ATTR_PROC])
 #define elf_properties(bfd) (elf_tdata (bfd) -> properties)
+#define elf_has_no_copy_on_protected(bfd) \
+  (elf_tdata(bfd) -> has_no_copy_on_protected)
 
 extern void _bfd_elf_swap_verdef_in
   (bfd *, const Elf_External_Verdef *, Elf_Internal_Verdef *);
@@ -1975,7 +2033,7 @@ extern void bfd_elf_print_symbol
   (bfd *, void *, asymbol *, bfd_print_symbol_type);
 
 extern unsigned int _bfd_elf_eh_frame_address_size
-  (bfd *, asection *);
+  (bfd *, const asection *);
 extern bfd_byte _bfd_elf_encode_eh_address
   (bfd *abfd, struct bfd_link_info *info, asection *osec, bfd_vma offset,
    asection *loc_sec, bfd_vma loc_offset, bfd_vma *encoded);
@@ -2174,6 +2232,8 @@ extern bfd_boolean _bfd_elf_end_eh_frame
 extern bfd_boolean _bfd_elf_discard_section_eh_frame
   (bfd *, struct bfd_link_info *, asection *,
    bfd_boolean (*) (bfd_vma, void *), struct elf_reloc_cookie *);
+extern bfd_boolean _bfd_elf_adjust_eh_frame_global_symbol
+  (struct elf_link_hash_entry *, void *);
 extern bfd_boolean _bfd_elf_discard_section_eh_frame_hdr
   (bfd *, struct bfd_link_info *);
 extern bfd_vma _bfd_elf_eh_frame_section_offset
@@ -2248,6 +2308,9 @@ extern bfd_reloc_status_type bfd_elf_per
 extern bfd_boolean _bfd_elf_setup_sections
   (bfd *);
 
+extern struct bfd_link_hash_entry *bfd_elf_define_start_stop
+  (struct bfd_link_info *, const char *, asection *);
+
 extern void _bfd_elf_post_process_headers (bfd * , struct bfd_link_info *);
 
 extern const bfd_target *bfd_elf32_object_p
@@ -2431,9 +2494,6 @@ extern bfd_boolean bfd_elf_gc_common_fin
 extern bfd_boolean bfd_elf_gc_common_final_link
   (bfd *, struct bfd_link_info *);
 
-extern asection *_bfd_elf_is_start_stop
-  (const struct bfd_link_info *, struct elf_link_hash_entry *);
-
 extern bfd_boolean bfd_elf_reloc_symbol_deleted_p
   (bfd_vma, void *);
 
@@ -2448,7 +2508,7 @@ extern bfd_boolean _bfd_elf_is_function_
 extern bfd_size_type _bfd_elf_maybe_function_sym (const asymbol *, asection *,
 						  bfd_vma *);
 
-extern asection *_bfd_elf_get_reloc_section (asection *);
+extern asection *_bfd_elf_plt_get_reloc_section (bfd *, const char *);
 
 extern int bfd_elf_get_default_section_type (flagword);
 
@@ -2508,6 +2568,10 @@ extern char *elfcore_write_s390_vxrs_low
   (bfd *, char *, int *, const void *, int);
 extern char *elfcore_write_s390_vxrs_high
   (bfd *, char *, int *, const void *, int);
+extern char *elfcore_write_s390_gs_cb
+  (bfd *, char *, int *, const void *, int);
+extern char *elfcore_write_s390_gs_bc
+  (bfd *, char *, int *, const void *, int);
 extern char *elfcore_write_arm_vfp
   (bfd *, char *, int *, const void *, int);
 extern char *elfcore_write_aarch_tls
@@ -2553,10 +2617,6 @@ extern char *elfcore_write_linux_prpsinf
 extern char *elfcore_write_linux_prpsinfo64
   (bfd *, char *, int *, const struct elf_internal_linux_prpsinfo *);
 
-/* Linux/PPC32 uses different layout compared to most archs.  */
-extern char *elfcore_write_ppc_linux_prpsinfo32
-  (bfd *, char *, int *, const struct elf_internal_linux_prpsinfo *);
-
 extern bfd *_bfd_elf32_bfd_from_remote_memory
   (bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
    int (*target_read_memory) (bfd_vma, bfd_byte *, bfd_size_type));
@@ -2593,7 +2653,7 @@ extern bfd_boolean _bfd_elf_parse_gnu_pr
   (bfd *, Elf_Internal_Note *);
 extern elf_property * _bfd_elf_get_property
   (bfd *, unsigned int, unsigned int);
-extern void _bfd_elf_link_setup_gnu_properties
+extern bfd *_bfd_elf_link_setup_gnu_properties
   (struct bfd_link_info *);
 
 /* The linker may need to keep track of the number of relocs that it
@@ -2622,9 +2682,6 @@ extern bfd_boolean _bfd_elf_allocate_ifu
   (struct bfd_link_info *, struct elf_link_hash_entry *,
    struct elf_dyn_relocs **, bfd_boolean *, unsigned int,
    unsigned int, unsigned int, bfd_boolean);
-extern long _bfd_elf_ifunc_get_synthetic_symtab
-  (bfd *, long, asymbol **, long, asymbol **, asymbol **, asection *,
-   bfd_vma *(*) (bfd *, asymbol **, asection *, asection *));
 
 extern void elf_append_rela (bfd *, asection *, Elf_Internal_Rela *);
 extern void elf_append_rel (bfd *, asection *, Elf_Internal_Rela *);
@@ -2753,7 +2810,7 @@ extern asection _bfd_elf_large_com_secti
 	    memmove (rel, rel + count,					\
 		     (relend - rel - count) * sizeof (*rel));		\
 									\
-	    input_section->reloc_count--;				\
+	    input_section->reloc_count -= count;			\
 	    relend -= count;						\
 	    rel--;							\
 	    continue;							\
@@ -2773,7 +2830,9 @@ extern asection _bfd_elf_large_com_secti
    library, if any.  A unique symbol can never be bound locally.  */
 #define SYMBOLIC_BIND(INFO, H) \
     (!(H)->unique_global \
-     && ((INFO)->symbolic || ((INFO)->dynamic && !(H)->dynamic)))
+     && ((INFO)->symbolic \
+	 || (H)->start_stop \
+	 || ((INFO)->dynamic && !(H)->dynamic)))
 
 #ifdef __cplusplus
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf.c ./bfd/elf.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* ELF executable support for BFD.
 
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -52,9 +52,10 @@ static int elf_sort_sections (const void
 static bfd_boolean assign_file_positions_except_relocs (bfd *, struct bfd_link_info *);
 static bfd_boolean prep_headers (bfd *);
 static bfd_boolean swap_out_syms (bfd *, struct elf_strtab_hash **, int) ;
-static bfd_boolean elf_read_notes (bfd *, file_ptr, bfd_size_type) ;
+static bfd_boolean elf_read_notes (bfd *, file_ptr, bfd_size_type,
+				   size_t align) ;
 static bfd_boolean elf_parse_notes (bfd *abfd, char *buf, size_t size,
-				    file_ptr offset);
+				    file_ptr offset, size_t align);
 
 /* Swap version information in and out.  The version information is
    currently size independent.  If that ever changes, this code will
@@ -354,8 +355,8 @@ bfd_elf_string_from_elf_section (bfd *ab
       unsigned int shstrndx = elf_elfheader(abfd)->e_shstrndx;
       _bfd_error_handler
 	/* xgettext:c-format */
-	(_("%B: invalid string offset %u >= %lu for section `%s'"),
-	 abfd, strindex, (unsigned long) hdr->sh_size,
+	(_("%B: invalid string offset %u >= %Lu for section `%s'"),
+	 abfd, strindex, hdr->sh_size,
 	 (shindex == shstrndx && strindex == hdr->sh_name
 	  ? ".shstrtab"
 	  : bfd_elf_string_from_elf_section (abfd, shstrndx, hdr->sh_name)));
@@ -462,7 +463,7 @@ bfd_elf_get_elf_syms (bfd *ibfd,
       if (extshndx_buf == NULL)
 	{
 	  alloc_extshndx = (Elf_External_Sym_Shndx *)
-              bfd_malloc2 (symcount, sizeof (Elf_External_Sym_Shndx));
+	      bfd_malloc2 (symcount, sizeof (Elf_External_Sym_Shndx));
 	  extshndx_buf = alloc_extshndx;
 	}
       if (extshndx_buf == NULL
@@ -477,7 +478,7 @@ bfd_elf_get_elf_syms (bfd *ibfd,
   if (intsym_buf == NULL)
     {
       alloc_intsym = (Elf_Internal_Sym *)
-          bfd_malloc2 (symcount, sizeof (Elf_Internal_Sym));
+	  bfd_malloc2 (symcount, sizeof (Elf_Internal_Sym));
       intsym_buf = alloc_intsym;
       if (intsym_buf == NULL)
 	goto out;
@@ -486,7 +487,7 @@ bfd_elf_get_elf_syms (bfd *ibfd,
   /* Convert the symbols to internal form.  */
   isymend = intsym_buf + symcount;
   for (esym = (const bfd_byte *) extsym_buf, isym = intsym_buf,
-           shndx = extshndx_buf;
+	   shndx = extshndx_buf;
        isym < isymend;
        esym += extsym_size, isym++, shndx = shndx != NULL ? shndx + 1 : NULL)
     if (!(*bed->s->swap_symbol_in) (ibfd, esym, shndx, isym))
@@ -613,6 +614,7 @@ setup_group (bfd *abfd, Elf_Internal_Shd
 	{
 	  num_group = (unsigned) -1;
 	  elf_tdata (abfd)->num_group = num_group;
+	  elf_tdata (abfd)->group_sect_ptr = NULL;
 	}
       else
 	{
@@ -622,11 +624,12 @@ setup_group (bfd *abfd, Elf_Internal_Shd
 
 	  elf_tdata (abfd)->num_group = num_group;
 	  elf_tdata (abfd)->group_sect_ptr = (Elf_Internal_Shdr **)
-              bfd_alloc2 (abfd, num_group, sizeof (Elf_Internal_Shdr *));
+	      bfd_alloc2 (abfd, num_group, sizeof (Elf_Internal_Shdr *));
 	  if (elf_tdata (abfd)->group_sect_ptr == NULL)
 	    return FALSE;
-
+	  memset (elf_tdata (abfd)->group_sect_ptr, 0, num_group * sizeof (Elf_Internal_Shdr *));
 	  num_group = 0;
+
 	  for (i = 0; i < shnum; i++)
 	    {
 	      Elf_Internal_Shdr *shdr = elf_elfsections (abfd)[i];
@@ -636,6 +639,11 @@ setup_group (bfd *abfd, Elf_Internal_Shd
 		  unsigned char *src;
 		  Elf_Internal_Group *dest;
 
+		  /* Make sure the group section has a BFD section
+		     attached to it.  */
+		  if (!bfd_section_from_shdr (abfd, i))
+		    return FALSE;
+
 		  /* Add to list of sections.  */
 		  elf_tdata (abfd)->group_sect_ptr[num_group] = shdr;
 		  num_group += 1;
@@ -644,14 +652,14 @@ setup_group (bfd *abfd, Elf_Internal_Shd
 		  BFD_ASSERT (sizeof (*dest) >= 4);
 		  amt = shdr->sh_size * sizeof (*dest) / 4;
 		  shdr->contents = (unsigned char *)
-                      bfd_alloc2 (abfd, shdr->sh_size, sizeof (*dest) / 4);
+		      bfd_alloc2 (abfd, shdr->sh_size, sizeof (*dest) / 4);
 		  /* PR binutils/4110: Handle corrupt group headers.  */
 		  if (shdr->contents == NULL)
 		    {
 		      _bfd_error_handler
 			/* xgettext:c-format */
 			(_("%B: corrupt size field in group section"
-			   " header: 0x%lx"), abfd, shdr->sh_size);
+			   " header: %#Lx"), abfd, shdr->sh_size);
 		      bfd_set_error (bfd_error_bad_value);
 		      -- num_group;
 		      continue;
@@ -666,7 +674,7 @@ setup_group (bfd *abfd, Elf_Internal_Shd
 		      _bfd_error_handler
 			/* xgettext:c-format */
 			(_("%B: invalid size field in group section"
-			   " header: 0x%lx"), abfd, shdr->sh_size);
+			   " header: %#Lx"), abfd, shdr->sh_size);
 		      bfd_set_error (bfd_error_bad_value);
 		      -- num_group;
 		      /* PR 17510: If the group contents are even
@@ -734,8 +742,24 @@ setup_group (bfd *abfd, Elf_Internal_Shd
       for (i = 0; i < num_group; i++)
 	{
 	  Elf_Internal_Shdr *shdr = elf_tdata (abfd)->group_sect_ptr[i];
-	  Elf_Internal_Group *idx = (Elf_Internal_Group *) shdr->contents;
-	  unsigned int n_elt = shdr->sh_size / 4;
+	  Elf_Internal_Group *idx;
+	  bfd_size_type n_elt;
+
+	  if (shdr == NULL)
+	    continue;
+
+	  idx = (Elf_Internal_Group *) shdr->contents;
+	  if (idx == NULL || shdr->sh_size < 4)
+	    {
+	      /* See PR 21957 for a reproducer.  */
+	      /* xgettext:c-format */
+	      _bfd_error_handler (_("%B: group section '%A' has no contents"),
+				  abfd, shdr->bfd_section);
+	      elf_tdata (abfd)->group_sect_ptr[i] = NULL;
+	      bfd_set_error (bfd_error_bad_value);
+	      return FALSE;
+	    }
+	  n_elt = shdr->sh_size / 4;
 
 	  /* Look through this group's sections to see if current
 	     section is a member.  */
@@ -788,7 +812,7 @@ setup_group (bfd *abfd, Elf_Internal_Shd
   if (elf_group_name (newsect) == NULL)
     {
       /* xgettext:c-format */
-      _bfd_error_handler (_("%B: no group info for section %A"),
+      _bfd_error_handler (_("%B: no group info for section '%A'"),
 			  abfd, newsect);
       return FALSE;
     }
@@ -883,32 +907,32 @@ _bfd_elf_setup_sections (bfd *abfd)
       n_elt = shdr->sh_size / 4;
 
       while (--n_elt != 0)
-	if ((++idx)->shdr->bfd_section)
-	  elf_sec_group (idx->shdr->bfd_section) = shdr->bfd_section;
-	else if (idx->shdr->sh_type == SHT_RELA
-		 || idx->shdr->sh_type == SHT_REL)
-	  /* We won't include relocation sections in section groups in
-	     output object files. We adjust the group section size here
-	     so that relocatable link will work correctly when
-	     relocation sections are in section group in input object
-	     files.  */
-	  shdr->bfd_section->size -= 4;
-	else
-	  {
-	    /* There are some unknown sections in the group.  */
-	    _bfd_error_handler
-	      /* xgettext:c-format */
-	      (_("%B: unknown [%d] section `%s' in group [%A]"),
-	       abfd,
-	       (unsigned int) idx->shdr->sh_type,
-	       bfd_elf_string_from_elf_section (abfd,
-						(elf_elfheader (abfd)
-						 ->e_shstrndx),
-						idx->shdr->sh_name),
-	       shdr->bfd_section);
-	    result = FALSE;
-	  }
+	{
+	  ++ idx;
+
+	  if (idx->shdr == NULL)
+	    continue;
+	  else if (idx->shdr->bfd_section)
+	    elf_sec_group (idx->shdr->bfd_section) = shdr->bfd_section;
+	  else if (idx->shdr->sh_type != SHT_RELA
+		   && idx->shdr->sh_type != SHT_REL)
+	    {
+	      /* There are some unknown sections in the group.  */
+	      _bfd_error_handler
+		/* xgettext:c-format */
+		(_("%B: unknown type [%#x] section `%s' in group [%A]"),
+		 abfd,
+		 idx->shdr->sh_type,
+		 bfd_elf_string_from_elf_section (abfd,
+						  (elf_elfheader (abfd)
+						   ->e_shstrndx),
+						  idx->shdr->sh_name),
+		 shdr->bfd_section);
+	      result = FALSE;
+	    }
+	}
     }
+
   return result;
 }
 
@@ -983,7 +1007,7 @@ _bfd_elf_make_section_from_shdr (bfd *ab
   if (hdr->sh_type != SHT_NOBITS)
     flags |= SEC_HAS_CONTENTS;
   if (hdr->sh_type == SHT_GROUP)
-    flags |= SEC_GROUP | SEC_EXCLUDE;
+    flags |= SEC_GROUP;
   if ((hdr->sh_flags & SHF_ALLOC) != 0)
     {
       flags |= SEC_ALLOC;
@@ -1066,7 +1090,8 @@ _bfd_elf_make_section_from_shdr (bfd *ab
       if (!bfd_malloc_and_get_section (abfd, newsect, &contents))
 	return FALSE;
 
-      elf_parse_notes (abfd, (char *) contents, hdr->sh_size, hdr->sh_offset);
+      elf_parse_notes (abfd, (char *) contents, hdr->sh_size,
+		       hdr->sh_offset, hdr->sh_addralign);
       free (contents);
     }
 
@@ -1254,7 +1279,7 @@ section_match (const Elf_Internal_Shdr *
 	       const Elf_Internal_Shdr * b)
 {
   return
-    a->sh_type         == b->sh_type
+    a->sh_type	       == b->sh_type
     && (a->sh_flags & ~ SHF_INFO_LINK)
     == (b->sh_flags & ~ SHF_INFO_LINK)
     && a->sh_addralign == b->sh_addralign
@@ -1270,7 +1295,8 @@ section_match (const Elf_Internal_Shdr *
    to be the correct section.  */
 
 static unsigned int
-find_link (const bfd * obfd, const Elf_Internal_Shdr * iheader, const unsigned int hint)
+find_link (const bfd *obfd, const Elf_Internal_Shdr *iheader,
+	   const unsigned int hint)
 {
   Elf_Internal_Shdr ** oheaders = elf_elfsections (obfd);
   unsigned int i;
@@ -1278,7 +1304,8 @@ find_link (const bfd * obfd, const Elf_I
   BFD_ASSERT (iheader != NULL);
 
   /* See PR 20922 for a reproducer of the NULL test.  */
-  if (oheaders[hint] != NULL
+  if (hint < elf_numsections (obfd)
+      && oheaders[hint] != NULL
       && section_match (oheaders[hint], iheader))
     return hint;
 
@@ -1300,7 +1327,7 @@ find_link (const bfd * obfd, const Elf_I
 /* PR 19938: Attempt to set the ELF section header fields of an OS or
    Processor specific section, based upon a matching input section.
    Returns TRUE upon success, FALSE otherwise.  */
-   
+
 static bfd_boolean
 copy_special_section_fields (const bfd *ibfd,
 			     bfd *obfd,
@@ -1353,7 +1380,7 @@ copy_special_section_fields (const bfd *
       /* See PR 20931 for a reproducer.  */
       if (iheader->sh_link >= elf_numsections (ibfd))
 	{
-	  (* _bfd_error_handler)
+	  _bfd_error_handler
 	    /* xgettext:c-format */
 	    (_("%B: Invalid sh_link field (%d) in section number %d"),
 	     ibfd, iheader->sh_link, secnum);
@@ -1369,7 +1396,7 @@ copy_special_section_fields (const bfd *
       else
 	/* FIXME: Should we install iheader->sh_link
 	   if we could not find a match ?  */
-	(* _bfd_error_handler)
+	_bfd_error_handler
 	  /* xgettext:c-format */
 	  (_("%B: Failed to find link section for section %d"), obfd, secnum);
     }
@@ -1396,14 +1423,14 @@ copy_special_section_fields (const bfd *
 	  changed = TRUE;
 	}
       else
-	(* _bfd_error_handler)
+	_bfd_error_handler
 	  /* xgettext:c-format */
 	  (_("%B: Failed to find info section for section %d"), obfd, secnum);
     }
 
   return changed;
 }
-  
+
 /* Copy the program header and other data from one object module to
    another.  */
 
@@ -1435,7 +1462,7 @@ _bfd_elf_copy_private_bfd_data (bfd *ibf
   if (elf_elfheader (ibfd)->e_ident[EI_ABIVERSION])
     elf_elfheader (obfd)->e_ident[EI_ABIVERSION]
       = elf_elfheader (ibfd)->e_ident[EI_ABIVERSION];
-  
+
   /* Copy object attributes.  */
   _bfd_elf_copy_obj_attributes (ibfd, obfd);
 
@@ -1631,7 +1658,7 @@ _bfd_elf_print_private_bfd_data (bfd *ab
 	goto error_return;
       extdynend = extdyn + s->size;
       /* PR 17512: file: id:000006,sig:06,src:000000,op:flip4,pos:5664.
-         Fix range check.  */
+	 Fix range check.  */
       for (; extdyn <= (extdynend - extdynsize); extdyn += extdynsize)
 	{
 	  Elf_Internal_Dyn dyn;
@@ -1654,7 +1681,7 @@ _bfd_elf_print_private_bfd_data (bfd *ab
 
 	      if (!strcmp (name, ""))
 		{
-		  sprintf (ab, "0x%lx", (unsigned long) dyn.d_tag);
+		  sprintf (ab, "%#" BFD_VMA_FMT "x", dyn.d_tag);
 		  name = ab;
 		}
 	      break;
@@ -1864,7 +1891,7 @@ bfd_elf_print_symbol (bfd *abfd,
     case bfd_print_symbol_more:
       fprintf (file, "elf ");
       bfd_fprintf_vma (abfd, file, symbol->value);
-      fprintf (file, " %lx", (unsigned long) symbol->flags);
+      fprintf (file, " %x", symbol->flags);
       break;
     case bfd_print_symbol_all:
       {
@@ -2195,7 +2222,7 @@ bfd_section_from_shdr (bfd *abfd, unsign
 	for (entry = elf_symtab_shndx_list (abfd); entry != NULL; entry = entry->next)
 	  if (entry->ndx == shindex)
 	    goto success;
-	
+
 	entry = bfd_alloc (abfd, sizeof * entry);
 	if (entry == NULL)
 	  goto fail;
@@ -2286,7 +2313,7 @@ bfd_section_from_shdr (bfd *abfd, unsign
 	  {
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("%B: invalid link %lu for reloc section %s (index %u)"),
+	      (_("%B: invalid link %u for reloc section %s (index %u)"),
 	       abfd, hdr->sh_link, name, shindex);
 	    ret = _bfd_elf_make_section_from_shdr (abfd, hdr, name,
 						   shindex);
@@ -2374,7 +2401,8 @@ bfd_section_from_shdr (bfd *abfd, unsign
 	*hdr2 = *hdr;
 	*p_hdr = hdr2;
 	elf_elfsections (abfd)[shindex] = hdr2;
-	target_sect->reloc_count += NUM_SHDR_ENTRIES (hdr);
+	target_sect->reloc_count += (NUM_SHDR_ENTRIES (hdr)
+				     * bed->s->int_rels_per_ext_rel);
 	target_sect->flags |= SEC_RELOC;
 	target_sect->relocation = NULL;
 	target_sect->rel_filepos = hdr->sh_offset;
@@ -2420,34 +2448,6 @@ bfd_section_from_shdr (bfd *abfd, unsign
       if (!_bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex))
 	goto fail;
 
-      if (hdr->contents != NULL)
-	{
-	  Elf_Internal_Group *idx = (Elf_Internal_Group *) hdr->contents;
-	  unsigned int n_elt = hdr->sh_size / sizeof (* idx);
-	  asection *s;
-
-	  if (n_elt == 0)
-	    goto fail;
-	  if (idx->flags & GRP_COMDAT)
-	    hdr->bfd_section->flags
-	      |= SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD;
-
-	  /* We try to keep the same section order as it comes in.  */
-	  idx += n_elt;
-
-	  while (--n_elt != 0)
-	    {
-	      --idx;
-
-	      if (idx->shdr != NULL
-		  && (s = idx->shdr->bfd_section) != NULL
-		  && elf_next_in_group (s) != NULL)
-		{
-		  elf_next_in_group (hdr->bfd_section) = s;
-		  break;
-		}
-	    }
-	}
       goto success;
 
     default:
@@ -2472,9 +2472,8 @@ bfd_section_from_shdr (bfd *abfd, unsign
 	       for applications?  */
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("%B: don't know how to handle allocated, application "
-		 "specific section `%s' [0x%8x]"),
-	       abfd, name, hdr->sh_type);
+	      (_("%B: unknown type [%#x] section `%s'"),
+	       abfd, hdr->sh_type, name);
 	  else
 	    {
 	      /* Allow sections reserved for applications.  */
@@ -2488,9 +2487,8 @@ bfd_section_from_shdr (bfd *abfd, unsign
 	/* FIXME: We should handle this section.  */
 	_bfd_error_handler
 	  /* xgettext:c-format */
-	  (_("%B: don't know how to handle processor specific section "
-	     "`%s' [0x%8x]"),
-	   abfd, name, hdr->sh_type);
+	  (_("%B: unknown type [%#x] section `%s'"),
+	   abfd, hdr->sh_type, name);
       else if (hdr->sh_type >= SHT_LOOS && hdr->sh_type <= SHT_HIOS)
 	{
 	  /* Unrecognised OS-specific sections.  */
@@ -2500,9 +2498,8 @@ bfd_section_from_shdr (bfd *abfd, unsign
 	       be rejected with an error message.  */
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("%B: don't know how to handle OS specific section "
-		 "`%s' [0x%8x]"),
-	       abfd, name, hdr->sh_type);
+	      (_("%B: unknown type [%#x] section `%s'"),
+	       abfd, hdr->sh_type, name);
 	  else
 	    {
 	      /* Otherwise it should be processed.  */
@@ -2514,8 +2511,8 @@ bfd_section_from_shdr (bfd *abfd, unsign
 	/* FIXME: We should handle this section.  */
 	_bfd_error_handler
 	  /* xgettext:c-format */
-	  (_("%B: don't know how to handle section `%s' [0x%8x]"),
-	   abfd, name, hdr->sh_type);
+	  (_("%B: unknown type [%#x] section `%s'"),
+	   abfd, hdr->sh_type, name);
 
       goto fail;
     }
@@ -2578,95 +2575,95 @@ bfd_section_from_elf_index (bfd *abfd, u
 static const struct bfd_elf_special_section special_sections_b[] =
 {
   { STRING_COMMA_LEN (".bss"), -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE },
-  { NULL,                   0,  0, 0,            0 }
+  { NULL,		    0,	0, 0,		 0 }
 };
 
 static const struct bfd_elf_special_section special_sections_c[] =
 {
   { STRING_COMMA_LEN (".comment"), 0, SHT_PROGBITS, 0 },
-  { NULL,                       0, 0, 0,            0 }
+  { NULL,			0, 0, 0,	    0 }
 };
 
 static const struct bfd_elf_special_section special_sections_d[] =
 {
-  { STRING_COMMA_LEN (".data"),         -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
-  { STRING_COMMA_LEN (".data1"),         0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".data"),		-2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".data1"),	 0, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
   /* There are more DWARF sections than these, but they needn't be added here
      unless you have to cope with broken compilers that don't emit section
      attributes or you want to help the user writing assembler.  */
-  { STRING_COMMA_LEN (".debug"),         0, SHT_PROGBITS, 0 },
-  { STRING_COMMA_LEN (".debug_line"),    0, SHT_PROGBITS, 0 },
-  { STRING_COMMA_LEN (".debug_info"),    0, SHT_PROGBITS, 0 },
-  { STRING_COMMA_LEN (".debug_abbrev"),  0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".debug"),	 0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".debug_line"),	 0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".debug_info"),	 0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".debug_abbrev"),	 0, SHT_PROGBITS, 0 },
   { STRING_COMMA_LEN (".debug_aranges"), 0, SHT_PROGBITS, 0 },
-  { STRING_COMMA_LEN (".dynamic"),       0, SHT_DYNAMIC,  SHF_ALLOC },
-  { STRING_COMMA_LEN (".dynstr"),        0, SHT_STRTAB,   SHF_ALLOC },
-  { STRING_COMMA_LEN (".dynsym"),        0, SHT_DYNSYM,   SHF_ALLOC },
-  { NULL,                      0,        0, 0,            0 }
+  { STRING_COMMA_LEN (".dynamic"),	 0, SHT_DYNAMIC,  SHF_ALLOC },
+  { STRING_COMMA_LEN (".dynstr"),	 0, SHT_STRTAB,	  SHF_ALLOC },
+  { STRING_COMMA_LEN (".dynsym"),	 0, SHT_DYNSYM,	  SHF_ALLOC },
+  { NULL,		       0,	 0, 0,		  0 }
 };
 
 static const struct bfd_elf_special_section special_sections_f[] =
 {
-  { STRING_COMMA_LEN (".fini"),        0, SHT_PROGBITS,   SHF_ALLOC + SHF_EXECINSTR },
+  { STRING_COMMA_LEN (".fini"),	       0, SHT_PROGBITS,	  SHF_ALLOC + SHF_EXECINSTR },
   { STRING_COMMA_LEN (".fini_array"), -2, SHT_FINI_ARRAY, SHF_ALLOC + SHF_WRITE },
-  { NULL,                          0 , 0, 0,              0 }
+  { NULL,			   0 , 0, 0,		  0 }
 };
 
 static const struct bfd_elf_special_section special_sections_g[] =
 {
   { STRING_COMMA_LEN (".gnu.linkonce.b"), -2, SHT_NOBITS,      SHF_ALLOC + SHF_WRITE },
-  { STRING_COMMA_LEN (".gnu.lto_"),       -1, SHT_PROGBITS,    SHF_EXCLUDE },
-  { STRING_COMMA_LEN (".got"),             0, SHT_PROGBITS,    SHF_ALLOC + SHF_WRITE },
-  { STRING_COMMA_LEN (".gnu.version"),     0, SHT_GNU_versym,  0 },
+  { STRING_COMMA_LEN (".gnu.lto_"),	  -1, SHT_PROGBITS,    SHF_EXCLUDE },
+  { STRING_COMMA_LEN (".got"),		   0, SHT_PROGBITS,    SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".gnu.version"),	   0, SHT_GNU_versym,  0 },
   { STRING_COMMA_LEN (".gnu.version_d"),   0, SHT_GNU_verdef,  0 },
   { STRING_COMMA_LEN (".gnu.version_r"),   0, SHT_GNU_verneed, 0 },
-  { STRING_COMMA_LEN (".gnu.liblist"),     0, SHT_GNU_LIBLIST, SHF_ALLOC },
-  { STRING_COMMA_LEN (".gnu.conflict"),    0, SHT_RELA,        SHF_ALLOC },
-  { STRING_COMMA_LEN (".gnu.hash"),        0, SHT_GNU_HASH,    SHF_ALLOC },
-  { NULL,                        0,        0, 0,               0 }
+  { STRING_COMMA_LEN (".gnu.liblist"),	   0, SHT_GNU_LIBLIST, SHF_ALLOC },
+  { STRING_COMMA_LEN (".gnu.conflict"),	   0, SHT_RELA,	       SHF_ALLOC },
+  { STRING_COMMA_LEN (".gnu.hash"),	   0, SHT_GNU_HASH,    SHF_ALLOC },
+  { NULL,			 0,	   0, 0,	       0 }
 };
 
 static const struct bfd_elf_special_section special_sections_h[] =
 {
-  { STRING_COMMA_LEN (".hash"), 0, SHT_HASH,     SHF_ALLOC },
-  { NULL,                    0, 0, 0,            0 }
+  { STRING_COMMA_LEN (".hash"), 0, SHT_HASH,	 SHF_ALLOC },
+  { NULL,		     0, 0, 0,		 0 }
 };
 
 static const struct bfd_elf_special_section special_sections_i[] =
 {
-  { STRING_COMMA_LEN (".init"),        0, SHT_PROGBITS,   SHF_ALLOC + SHF_EXECINSTR },
+  { STRING_COMMA_LEN (".init"),	       0, SHT_PROGBITS,	  SHF_ALLOC + SHF_EXECINSTR },
   { STRING_COMMA_LEN (".init_array"), -2, SHT_INIT_ARRAY, SHF_ALLOC + SHF_WRITE },
-  { STRING_COMMA_LEN (".interp"),      0, SHT_PROGBITS,   0 },
-  { NULL,                      0,      0, 0,              0 }
+  { STRING_COMMA_LEN (".interp"),      0, SHT_PROGBITS,	  0 },
+  { NULL,		       0,      0, 0,		  0 }
 };
 
 static const struct bfd_elf_special_section special_sections_l[] =
 {
   { STRING_COMMA_LEN (".line"), 0, SHT_PROGBITS, 0 },
-  { NULL,                    0, 0, 0,            0 }
+  { NULL,		     0, 0, 0,		 0 }
 };
 
 static const struct bfd_elf_special_section special_sections_n[] =
 {
   { STRING_COMMA_LEN (".note.GNU-stack"), 0, SHT_PROGBITS, 0 },
-  { STRING_COMMA_LEN (".note"),          -1, SHT_NOTE,     0 },
-  { NULL,                    0,           0, 0,            0 }
+  { STRING_COMMA_LEN (".note"),		 -1, SHT_NOTE,	   0 },
+  { NULL,		     0,		  0, 0,		   0 }
 };
 
 static const struct bfd_elf_special_section special_sections_p[] =
 {
   { STRING_COMMA_LEN (".preinit_array"), -2, SHT_PREINIT_ARRAY, SHF_ALLOC + SHF_WRITE },
-  { STRING_COMMA_LEN (".plt"),            0, SHT_PROGBITS,      SHF_ALLOC + SHF_EXECINSTR },
-  { NULL,                   0,            0, 0,                 0 }
+  { STRING_COMMA_LEN (".plt"),		  0, SHT_PROGBITS,	SHF_ALLOC + SHF_EXECINSTR },
+  { NULL,		    0,		  0, 0,			0 }
 };
 
 static const struct bfd_elf_special_section special_sections_r[] =
 {
   { STRING_COMMA_LEN (".rodata"), -2, SHT_PROGBITS, SHF_ALLOC },
   { STRING_COMMA_LEN (".rodata1"), 0, SHT_PROGBITS, SHF_ALLOC },
-  { STRING_COMMA_LEN (".rela"),   -1, SHT_RELA,     0 },
-  { STRING_COMMA_LEN (".rel"),    -1, SHT_REL,      0 },
-  { NULL,                   0,     0, 0,            0 }
+  { STRING_COMMA_LEN (".rela"),	  -1, SHT_RELA,	    0 },
+  { STRING_COMMA_LEN (".rel"),	  -1, SHT_REL,	    0 },
+  { NULL,		    0,	   0, 0,	    0 }
 };
 
 static const struct bfd_elf_special_section special_sections_s[] =
@@ -2677,24 +2674,24 @@ static const struct bfd_elf_special_sect
   /* See struct bfd_elf_special_section declaration for the semantics of
      this special case where .prefix_length != strlen (.prefix).  */
   { ".stabstr",			5,  3, SHT_STRTAB, 0 },
-  { NULL,                       0,  0, 0,          0 }
+  { NULL,			0,  0, 0,	   0 }
 };
 
 static const struct bfd_elf_special_section special_sections_t[] =
 {
-  { STRING_COMMA_LEN (".text"),  -2, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
-  { STRING_COMMA_LEN (".tbss"),  -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_TLS },
+  { STRING_COMMA_LEN (".text"),	 -2, SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR },
+  { STRING_COMMA_LEN (".tbss"),	 -2, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_TLS },
   { STRING_COMMA_LEN (".tdata"), -2, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_TLS },
-  { NULL,                     0,  0, 0,            0 }
+  { NULL,		      0,  0, 0,		   0 }
 };
 
 static const struct bfd_elf_special_section special_sections_z[] =
 {
-  { STRING_COMMA_LEN (".zdebug_line"),    0, SHT_PROGBITS, 0 },
-  { STRING_COMMA_LEN (".zdebug_info"),    0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".zdebug_line"),	  0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".zdebug_info"),	  0, SHT_PROGBITS, 0 },
   { STRING_COMMA_LEN (".zdebug_abbrev"),  0, SHT_PROGBITS, 0 },
   { STRING_COMMA_LEN (".zdebug_aranges"), 0, SHT_PROGBITS, 0 },
-  { NULL,                     0,  0, 0,            0 }
+  { NULL,		      0,  0, 0,		   0 }
 };
 
 static const struct bfd_elf_special_section * const special_sections[] =
@@ -2822,7 +2819,7 @@ _bfd_elf_new_section_hook (bfd *abfd, as
   if (sdata == NULL)
     {
       sdata = (struct bfd_elf_section_data *) bfd_zalloc (abfd,
-                                                          sizeof (*sdata));
+							  sizeof (*sdata));
       if (sdata == NULL)
 	return FALSE;
       sec->used_by_bfd = sdata;
@@ -2995,7 +2992,8 @@ bfd_section_from_phdr (bfd *abfd, Elf_In
     case PT_NOTE:
       if (! _bfd_elf_make_section_from_phdr (abfd, hdr, hdr_index, "note"))
 	return FALSE;
-      if (! elf_read_notes (abfd, hdr->p_offset, hdr->p_filesz))
+      if (! elf_read_notes (abfd, hdr->p_offset, hdr->p_filesz,
+			    hdr->p_align))
 	return FALSE;
       return TRUE;
 
@@ -3378,15 +3376,15 @@ elf_fake_sections (bfd *abfd, asection *
 	      || arg->link_info->emitrelocations))
 	{
 	  if (esd->rel.count && esd->rel.hdr == NULL
-	      && !_bfd_elf_init_reloc_shdr (abfd, &esd->rel, name, FALSE,
-					    delay_st_name_p))
+	      && !_bfd_elf_init_reloc_shdr (abfd, &esd->rel, name,
+					    FALSE, delay_st_name_p))
 	    {
 	      arg->failed = TRUE;
 	      return;
 	    }
 	  if (esd->rela.count && esd->rela.hdr == NULL
-	      && !_bfd_elf_init_reloc_shdr (abfd, &esd->rela, name, TRUE,
-					    delay_st_name_p))
+	      && !_bfd_elf_init_reloc_shdr (abfd, &esd->rela, name,
+					    TRUE, delay_st_name_p))
 	    {
 	      arg->failed = TRUE;
 	      return;
@@ -3398,14 +3396,20 @@ elf_fake_sections (bfd *abfd, asection *
 					  name,
 					  asect->use_rela_p,
 					  delay_st_name_p))
+	{
 	  arg->failed = TRUE;
+	  return;
+	}
     }
 
   /* Check for processor-specific section types.  */
   sh_type = this_hdr->sh_type;
   if (bed->elf_backend_fake_sections
       && !(*bed->elf_backend_fake_sections) (abfd, this_hdr, asect))
-    arg->failed = TRUE;
+    {
+      arg->failed = TRUE;
+      return;
+    }
 
   if (sh_type == SHT_NOBITS && asect->size != 0)
     {
@@ -3522,33 +3526,74 @@ bfd_elf_set_group_contents (bfd *abfd, a
       if (s != NULL
 	  && !bfd_is_abs_section (s))
 	{
-	  unsigned int idx = elf_section_data (s)->this_idx;
+	  struct bfd_elf_section_data *elf_sec = elf_section_data (s);
+	  struct bfd_elf_section_data *input_elf_sec = elf_section_data (elt);
 
+	  if (elf_sec->rel.hdr != NULL
+	      && (gas
+		  || (input_elf_sec->rel.hdr != NULL
+		      && input_elf_sec->rel.hdr->sh_flags & SHF_GROUP) != 0))
+	    {
+	      elf_sec->rel.hdr->sh_flags |= SHF_GROUP;
+	      loc -= 4;
+	      H_PUT_32 (abfd, elf_sec->rel.idx, loc);
+	    }
+	  if (elf_sec->rela.hdr != NULL
+	      && (gas
+		  || (input_elf_sec->rela.hdr != NULL
+		      && input_elf_sec->rela.hdr->sh_flags & SHF_GROUP) != 0))
+	    {
+	      elf_sec->rela.hdr->sh_flags |= SHF_GROUP;
+	      loc -= 4;
+	      H_PUT_32 (abfd, elf_sec->rela.idx, loc);
+	    }
 	  loc -= 4;
-	  H_PUT_32 (abfd, idx, loc);
+	  H_PUT_32 (abfd, elf_sec->this_idx, loc);
 	}
       elt = elf_next_in_group (elt);
       if (elt == first)
 	break;
     }
 
-  if ((loc -= 4) != sec->contents)
-    abort ();
+  loc -= 4;
+  BFD_ASSERT (loc == sec->contents);
 
   H_PUT_32 (abfd, sec->flags & SEC_LINK_ONCE ? GRP_COMDAT : 0, loc);
 }
 
-/* Return the section which RELOC_SEC applies to.  */
+/* Given NAME, the name of a relocation section stripped of its
+   .rel/.rela prefix, return the section in ABFD to which the
+   relocations apply.  */
 
 asection *
-_bfd_elf_get_reloc_section (asection *reloc_sec)
+_bfd_elf_plt_get_reloc_section (bfd *abfd, const char *name)
+{
+  /* If a target needs .got.plt section, relocations in rela.plt/rel.plt
+     section likely apply to .got.plt or .got section.  */
+  if (get_elf_backend_data (abfd)->want_got_plt
+      && strcmp (name, ".plt") == 0)
+    {
+      asection *sec;
+
+      name = ".got.plt";
+      sec = bfd_get_section_by_name (abfd, name);
+      if (sec != NULL)
+	return sec;
+      name = ".got";
+    }
+
+  return bfd_get_section_by_name (abfd, name);
+}
+
+/* Return the section to which RELOC_SEC applies.  */
+
+static asection *
+elf_get_reloc_section (asection *reloc_sec)
 {
   const char *name;
   unsigned int type;
   bfd *abfd;
-
-  if (reloc_sec == NULL)
-    return NULL;
+  const struct elf_backend_data *bed;
 
   type = elf_section_data (reloc_sec)->this_hdr.sh_type;
   if (type != SHT_REL && type != SHT_RELA)
@@ -3556,28 +3601,15 @@ _bfd_elf_get_reloc_section (asection *re
 
   /* We look up the section the relocs apply to by name.  */
   name = reloc_sec->name;
-  if (type == SHT_REL)
-    name += 4;
-  else
-    name += 5;
+  if (strncmp (name, ".rel", 4) != 0)
+    return NULL;
+  name += 4;
+  if (type == SHT_RELA && *name++ != 'a')
+    return NULL;
 
-  /* If a target needs .got.plt section, relocations in rela.plt/rel.plt
-     section apply to .got.plt section.  */
   abfd = reloc_sec->owner;
-  if (get_elf_backend_data (abfd)->want_got_plt
-      && strcmp (name, ".plt") == 0)
-    {
-      /* .got.plt is a linker created input section.  It may be mapped
-	 to some other output section.  Try two likely sections.  */
-      name = ".got.plt";
-      reloc_sec = bfd_get_section_by_name (abfd, name);
-      if (reloc_sec != NULL)
-	return reloc_sec;
-      name = ".got";
-    }
-
-  reloc_sec = bfd_get_section_by_name (abfd, name);
-  return reloc_sec;
+  bed = get_elf_backend_data (abfd);
+  return bed->get_reloc_section (abfd, name);
 }
 
 /* Assign all ELF section numbers.  The dummy first section is handled here
@@ -3599,7 +3631,7 @@ assign_section_numbers (bfd *abfd, struc
   _bfd_elf_strtab_clear_all_refs (elf_shstrtab (abfd));
 
   /* SHT_GROUP sections are in relocatable files only.  */
-  if (link_info == NULL || bfd_link_relocatable (link_info))
+  if (link_info == NULL || !link_info->resolve_section_groups)
     {
       size_t reloc_count = 0;
 
@@ -3701,12 +3733,12 @@ assign_section_numbers (bfd *abfd, struc
   /* Set up the list of section header pointers, in agreement with the
      indices.  */
   i_shdrp = (Elf_Internal_Shdr **) bfd_zalloc2 (abfd, section_number,
-                                                sizeof (Elf_Internal_Shdr *));
+						sizeof (Elf_Internal_Shdr *));
   if (i_shdrp == NULL)
     return FALSE;
 
   i_shdrp[0] = (Elf_Internal_Shdr *) bfd_zalloc (abfd,
-                                                 sizeof (Elf_Internal_Shdr));
+						 sizeof (Elf_Internal_Shdr));
   if (i_shdrp[0] == NULL)
     {
       bfd_release (abfd, i_shdrp);
@@ -3841,7 +3873,7 @@ assign_section_numbers (bfd *abfd, struc
 	  if (s != NULL)
 	    d->this_hdr.sh_link = elf_section_data (s)->this_idx;
 
-	  s = get_elf_backend_data (abfd)->get_reloc_section (sec);
+	  s = elf_get_reloc_section (sec);
 	  if (s != NULL)
 	    {
 	      d->this_hdr.sh_info = elf_section_data (s)->this_idx;
@@ -4078,7 +4110,7 @@ elf_map_symbols (bfd *abfd, unsigned int
 
   /* Now sort the symbols so the local symbols are first.  */
   new_syms = (asymbol **) bfd_alloc2 (abfd, num_locals + num_globals,
-                                      sizeof (asymbol *));
+				      sizeof (asymbol *));
 
   if (new_syms == NULL)
     return FALSE;
@@ -4443,7 +4475,7 @@ _bfd_elf_make_dynamic_segment (bfd *abfd
   struct elf_segment_map *m;
 
   m = (struct elf_segment_map *) bfd_zalloc (abfd,
-                                             sizeof (struct elf_segment_map));
+					     sizeof (struct elf_segment_map));
   if (m == NULL)
     return NULL;
   m->next = NULL;
@@ -4545,7 +4577,7 @@ _bfd_elf_map_sections_to_segments (bfd *
       /* Select the allocated sections, and sort them.  */
 
       sections = (asection **) bfd_malloc2 (bfd_count_sections (abfd),
-                                            sizeof (asection *));
+					    sizeof (asection *));
       if (sections == NULL)
 	goto error_return;
 
@@ -4589,8 +4621,7 @@ _bfd_elf_map_sections_to_segments (bfd *
 	    goto error_return;
 	  m->next = NULL;
 	  m->p_type = PT_PHDR;
-	  /* FIXME: UnixWare and Solaris set PF_X, Irix 5 does not.  */
-	  m->p_flags = PF_R | PF_X;
+	  m->p_flags = PF_R;
 	  m->p_flags_valid = 1;
 	  m->includes_phdrs = 1;
 	  linker_created_pt_phdr_segment = TRUE;
@@ -5121,7 +5152,7 @@ elf_sort_sections (const void *arg1, con
    else
      adjustment = vma_offset - off_offset;
 
-   which can can be collapsed into the expression below.  */
+   which can be collapsed into the expression below.  */
 
 static file_ptr
 vma_page_aligned_bias (bfd_vma vma, ufile_ptr off, bfd_vma maxpagesize)
@@ -5246,8 +5277,8 @@ assign_file_positions_for_load_sections 
 	      == 0);
   phdrs = (Elf_Internal_Phdr *)
      bfd_zalloc2 (abfd,
-                  (elf_program_header_size (abfd) / bed->s->sizeof_phdr),
-                  sizeof (Elf_Internal_Phdr));
+		  (elf_program_header_size (abfd) / bed->s->sizeof_phdr),
+		  sizeof (Elf_Internal_Phdr));
   elf_tdata (abfd)->phdr = phdrs;
   if (phdrs == NULL)
     return FALSE;
@@ -5517,8 +5548,8 @@ assign_file_positions_for_load_sections 
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B: section %A lma %#lx adjusted to %#lx"), abfd, sec,
-		     (unsigned long) s_start, (unsigned long) p_end);
+		    (_("%B: section %A lma %#Lx adjusted to %#Lx"),
+		     abfd, sec, s_start, p_end);
 		  adjust = 0;
 		  sec->lma = p_end;
 		}
@@ -5529,7 +5560,7 @@ assign_file_positions_for_load_sections 
 		  if (p->p_filesz + adjust < p->p_memsz)
 		    {
 		      /* We have a PROGBITS section following NOBITS ones.
-		         Allocate file space for the NOBITS section(s) and
+			 Allocate file space for the NOBITS section(s) and
 			 zero it.  */
 		      adjust = p->p_memsz - p->p_filesz;
 		      if (!write_zeros (abfd, off, adjust))
@@ -5860,7 +5891,7 @@ assign_file_positions_for_non_load_secti
 		abort ();
 	      p->p_memsz = p->p_filesz;
 	      /* Preserve the alignment and flags if they are valid. The
-	         gold linker generates RW/4 for the PT_GNU_RELRO section.
+		 gold linker generates RW/4 for the PT_GNU_RELRO section.
 		 It is better for objcopy/strip to honor these attributes
 		 otherwise gdb will choke when using separate debug files.
 	       */
@@ -5900,8 +5931,9 @@ assign_file_positions_for_non_load_secti
 		{
 		  /* PR 17512: file: 2195325e.  */
 		  _bfd_error_handler
-		    (_("%B: error: non-load segment %d includes file header and/or program header"),
-		     abfd, (int)(p - phdrs));
+		    (_("%B: error: non-load segment %d includes file header "
+		       "and/or program header"),
+		     abfd, (int) (p - phdrs));
 		  return FALSE;
 		}
 
@@ -6064,7 +6096,7 @@ assign_file_positions_except_relocs (bfd
 	 FIXME: We used to have code here to sort the PT_LOAD segments into
 	 ascending order, as per the ELF spec.  But this breaks some programs,
 	 including the Linux kernel.  But really either the spec should be
-         changed or the programs updated.  */
+	 changed or the programs updated.  */
       if (alloc > 1
 	  && tdata->phdr[0].p_type == PT_PHDR
 	  && ! bed->elf_backend_allow_non_load_phdr (abfd, tdata->phdr, alloc)
@@ -6429,8 +6461,8 @@ _bfd_elf_symbol_from_bfd_symbol (bfd *ab
 #if DEBUG & 4
   {
     fprintf (stderr,
-	     "elf_symbol_from_bfd_symbol 0x%.8lx, name = %s, sym num = %d, flags = 0x%.8lx\n",
-	     (long) asym_ptr, asym_ptr->name, idx, (long) flags);
+	     "elf_symbol_from_bfd_symbol 0x%.8lx, name = %s, sym num = %d, flags = 0x%.8x\n",
+	     (long) asym_ptr, asym_ptr->name, idx, flags);
     fflush (stderr);
   }
 #endif
@@ -6756,15 +6788,15 @@ rewrite_elf_program_header (bfd *ibfd, b
 	  /* Special segments, such as the PT_PHDR segment, may contain
 	     no sections, but ordinary, loadable segments should contain
 	     something.  They are allowed by the ELF spec however, so only
-	     a warning is produced.  
+	     a warning is produced.
 	     There is however the valid use case of embedded systems which
 	     have segments with p_filesz of 0 and a p_memsz > 0 to initialize
 	     flash memory with zeros.  No warning is shown for that case.  */
 	  if (segment->p_type == PT_LOAD
 	      && (segment->p_filesz > 0 || segment->p_memsz == 0))
 	    /* xgettext:c-format */
-	    _bfd_error_handler (_("\
-%B: warning: Empty loadable segment detected at vaddr=0x%.8x, is this intentional ?"),
+	    _bfd_error_handler (_("%B: warning: Empty loadable segment detected"
+				  " at vaddr=%#Lx, is this intentional?"),
 				ibfd, segment->p_vaddr);
 
 	  map->count = 0;
@@ -7349,7 +7381,7 @@ copy_private_bfd_data (bfd *ibfd, bfd *o
       for (section = obfd->sections; section != NULL;
 	   section = section->next)
 	{
-	  if (section->segment_mark == FALSE)
+	  if (!section->segment_mark)
 	    goto rewrite;
 	  else
 	    section->segment_mark = FALSE;
@@ -7377,9 +7409,9 @@ rewrite:
 	    /* PR 17512: file: f17299af.  */
 	    if (segment->p_align > (bfd_vma) 1 << ((sizeof (bfd_vma) * 8) - 2))
 	      /* xgettext:c-format */
-	      _bfd_error_handler (_("\
-%B: warning: segment alignment of 0x%llx is too large"),
-				  ibfd, (long long) segment->p_align);
+	      _bfd_error_handler (_("%B: warning: segment alignment of %#Lx"
+				    " is too large"),
+				  ibfd, segment->p_align);
 	    else
 	      maxpagesize = segment->p_align;
 	  }
@@ -7435,23 +7467,22 @@ _bfd_elf_init_private_section_data (bfd 
      SHT_GROUP section will have its elf_next_in_group pointing back
      to the input group members.  Ignore linker created group section.
      See elfNN_ia64_object_p in elfxx-ia64.c.  */
-  if (!final_link)
-    {
-      if (elf_sec_group (isec) == NULL
-	  || (elf_sec_group (isec)->flags & SEC_LINKER_CREATED) == 0)
-	{
-	  if (elf_section_flags (isec) & SHF_GROUP)
-	    elf_section_flags (osec) |= SHF_GROUP;
-	  elf_next_in_group (osec) = elf_next_in_group (isec);
-	  elf_section_data (osec)->group = elf_section_data (isec)->group;
-	}
-
-      /* If not decompress, preserve SHF_COMPRESSED.  */
-      if ((ibfd->flags & BFD_DECOMPRESS) == 0)
-	elf_section_flags (osec) |= (elf_section_flags (isec)
-				     & SHF_COMPRESSED);
+  if ((link_info == NULL
+       || !link_info->resolve_section_groups)
+      && (elf_sec_group (isec) == NULL
+	  || (elf_sec_group (isec)->flags & SEC_LINKER_CREATED) == 0))
+    {
+      if (elf_section_flags (isec) & SHF_GROUP)
+	elf_section_flags (osec) |= SHF_GROUP;
+      elf_next_in_group (osec) = elf_next_in_group (isec);
+      elf_section_data (osec)->group = elf_section_data (isec)->group;
     }
 
+  /* If not decompress, preserve SHF_COMPRESSED.  */
+  if (!final_link && (ibfd->flags & BFD_DECOMPRESS) == 0)
+    elf_section_flags (osec) |= (elf_section_flags (isec)
+				 & SHF_COMPRESSED);
+
   ihdr = &elf_section_data (isec)->this_hdr;
 
   /* We need to handle elf_linked_to_section for SHF_LINK_ORDER. We
@@ -7690,7 +7721,7 @@ swap_out_syms (bfd *abfd,
     }
 
   outbound_syms = (bfd_byte *) bfd_alloc2 (abfd, 1 + symcount,
-                                           bed->s->sizeof_sym);
+					   bed->s->sizeof_sym);
   if (outbound_syms == NULL)
     {
 error_return:
@@ -8187,7 +8218,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd
 
       hdr = &elf_tdata (abfd)->dynverref_hdr;
 
-      if (hdr->sh_info == 0 || hdr->sh_size < sizeof (Elf_External_Verneed))
+      if (hdr->sh_info == 0
+	  || hdr->sh_info > hdr->sh_size / sizeof (Elf_External_Verneed))
 	{
 error_return_bad_verref:
 	  _bfd_error_handler
@@ -8208,7 +8240,7 @@ error_return_verref:
 	goto error_return_verref;
 
       elf_tdata (abfd)->verref = (Elf_Internal_Verneed *)
-	bfd_zalloc2 (abfd, hdr->sh_info, sizeof (Elf_Internal_Verneed));
+	bfd_alloc2 (abfd, hdr->sh_info, sizeof (Elf_Internal_Verneed));
 
       if (elf_tdata (abfd)->verref == NULL)
 	goto error_return_verref;
@@ -8239,8 +8271,8 @@ error_return_verref:
 	  else
 	    {
 	      iverneed->vn_auxptr = (struct elf_internal_vernaux *)
-                  bfd_alloc2 (abfd, iverneed->vn_cnt,
-                              sizeof (Elf_Internal_Vernaux));
+		  bfd_alloc2 (abfd, iverneed->vn_cnt,
+			      sizeof (Elf_Internal_Vernaux));
 	      if (iverneed->vn_auxptr == NULL)
 		goto error_return_verref;
 	    }
@@ -8403,8 +8435,8 @@ error_return_verref:
 	  else
 	    {
 	      iverdef->vd_auxptr = (struct elf_internal_verdaux *)
-                  bfd_alloc2 (abfd, iverdef->vd_cnt,
-                              sizeof (Elf_Internal_Verdaux));
+		  bfd_alloc2 (abfd, iverdef->vd_cnt,
+			      sizeof (Elf_Internal_Verdaux));
 	      if (iverdef->vd_auxptr == NULL)
 		goto error_return_verdef;
 	    }
@@ -8468,7 +8500,7 @@ error_return_verref:
 	freeidx++;
 
       elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *)
-          bfd_zalloc2 (abfd, freeidx, sizeof (Elf_Internal_Verdef));
+	  bfd_zalloc2 (abfd, freeidx, sizeof (Elf_Internal_Verdef));
       if (elf_tdata (abfd)->verdef == NULL)
 	goto error_return;
 
@@ -8561,7 +8593,7 @@ _bfd_elf_is_local_label_name (bfd *abfd 
      forward-backward labels (aka local labels) as locals.
      These labels have the form:
 
-       L0^A.*                                  (fake symbols)
+       L0^A.*				       (fake symbols)
 
        [.]?L[0123456789]+{^A|^B}[0123456789]*  (local labels)
 
@@ -8960,7 +8992,7 @@ elfcore_maybe_make_sect (bfd *abfd, char
      such a section already exists.
    - For the multi-threaded case, a section named "NAME/PID", where
      PID is elfcore_make_pid (abfd).
-   Both pseudosections have identical contents. */
+   Both pseudosections have identical contents.  */
 bfd_boolean
 _bfd_elfcore_make_pseudosection (bfd *abfd,
 				 char *name,
@@ -9195,6 +9227,18 @@ elfcore_grok_s390_vxrs_high (bfd *abfd, 
 }
 
 static bfd_boolean
+elfcore_grok_s390_gs_cb (bfd *abfd, Elf_Internal_Note *note)
+{
+  return elfcore_make_note_pseudosection (abfd, ".reg-s390-gs-cb", note);
+}
+
+static bfd_boolean
+elfcore_grok_s390_gs_bc (bfd *abfd, Elf_Internal_Note *note)
+{
+  return elfcore_make_note_pseudosection (abfd, ".reg-s390-gs-bc", note);
+}
+
+static bfd_boolean
 elfcore_grok_arm_vfp (bfd *abfd, Elf_Internal_Note *note)
 {
   return elfcore_make_note_pseudosection (abfd, ".reg-arm-vfp", note);
@@ -9590,73 +9634,73 @@ elfcore_grok_note (bfd *abfd, Elf_Intern
 
     case NT_PPC_VSX:
       if (note->namesz == 6
-          && strcmp (note->namedata, "LINUX") == 0)
-        return elfcore_grok_ppc_vsx (abfd, note);
+	  && strcmp (note->namedata, "LINUX") == 0)
+	return elfcore_grok_ppc_vsx (abfd, note);
       else
-        return TRUE;
+	return TRUE;
 
     case NT_S390_HIGH_GPRS:
       if (note->namesz == 6
-          && strcmp (note->namedata, "LINUX") == 0)
-        return elfcore_grok_s390_high_gprs (abfd, note);
+	  && strcmp (note->namedata, "LINUX") == 0)
+	return elfcore_grok_s390_high_gprs (abfd, note);
       else
-        return TRUE;
+	return TRUE;
 
     case NT_S390_TIMER:
       if (note->namesz == 6
-          && strcmp (note->namedata, "LINUX") == 0)
-        return elfcore_grok_s390_timer (abfd, note);
+	  && strcmp (note->namedata, "LINUX") == 0)
+	return elfcore_grok_s390_timer (abfd, note);
       else
-        return TRUE;
+	return TRUE;
 
     case NT_S390_TODCMP:
       if (note->namesz == 6
-          && strcmp (note->namedata, "LINUX") == 0)
-        return elfcore_grok_s390_todcmp (abfd, note);
+	  && strcmp (note->namedata, "LINUX") == 0)
+	return elfcore_grok_s390_todcmp (abfd, note);
       else
-        return TRUE;
+	return TRUE;
 
     case NT_S390_TODPREG:
       if (note->namesz == 6
-          && strcmp (note->namedata, "LINUX") == 0)
-        return elfcore_grok_s390_todpreg (abfd, note);
+	  && strcmp (note->namedata, "LINUX") == 0)
+	return elfcore_grok_s390_todpreg (abfd, note);
       else
-        return TRUE;
+	return TRUE;
 
     case NT_S390_CTRS:
       if (note->namesz == 6
-          && strcmp (note->namedata, "LINUX") == 0)
-        return elfcore_grok_s390_ctrs (abfd, note);
+	  && strcmp (note->namedata, "LINUX") == 0)
+	return elfcore_grok_s390_ctrs (abfd, note);
       else
-        return TRUE;
+	return TRUE;
 
     case NT_S390_PREFIX:
       if (note->namesz == 6
-          && strcmp (note->namedata, "LINUX") == 0)
-        return elfcore_grok_s390_prefix (abfd, note);
+	  && strcmp (note->namedata, "LINUX") == 0)
+	return elfcore_grok_s390_prefix (abfd, note);
       else
-        return TRUE;
+	return TRUE;
 
     case NT_S390_LAST_BREAK:
       if (note->namesz == 6
-          && strcmp (note->namedata, "LINUX") == 0)
-        return elfcore_grok_s390_last_break (abfd, note);
+	  && strcmp (note->namedata, "LINUX") == 0)
+	return elfcore_grok_s390_last_break (abfd, note);
       else
-        return TRUE;
+	return TRUE;
 
     case NT_S390_SYSTEM_CALL:
       if (note->namesz == 6
-          && strcmp (note->namedata, "LINUX") == 0)
-        return elfcore_grok_s390_system_call (abfd, note);
+	  && strcmp (note->namedata, "LINUX") == 0)
+	return elfcore_grok_s390_system_call (abfd, note);
       else
-        return TRUE;
+	return TRUE;
 
     case NT_S390_TDB:
       if (note->namesz == 6
-          && strcmp (note->namedata, "LINUX") == 0)
-        return elfcore_grok_s390_tdb (abfd, note);
+	  && strcmp (note->namedata, "LINUX") == 0)
+	return elfcore_grok_s390_tdb (abfd, note);
       else
-        return TRUE;
+	return TRUE;
 
     case NT_S390_VXRS_LOW:
       if (note->namesz == 6
@@ -9672,6 +9716,20 @@ elfcore_grok_note (bfd *abfd, Elf_Intern
       else
 	return TRUE;
 
+    case NT_S390_GS_CB:
+      if (note->namesz == 6
+	  && strcmp (note->namedata, "LINUX") == 0)
+	return elfcore_grok_s390_gs_cb (abfd, note);
+      else
+	return TRUE;
+
+    case NT_S390_GS_BC:
+      if (note->namesz == 6
+	  && strcmp (note->namedata, "LINUX") == 0)
+	return elfcore_grok_s390_gs_bc (abfd, note);
+      else
+	return TRUE;
+
     case NT_ARM_VFP:
       if (note->namesz == 6
 	  && strcmp (note->namedata, "LINUX") == 0)
@@ -9805,14 +9863,14 @@ elfcore_grok_freebsd_psinfo (bfd *abfd, 
 {
   size_t offset;
 
-  switch (abfd->arch_info->bits_per_word)
+  switch (elf_elfheader (abfd)->e_ident[EI_CLASS])
     {
-    case 32:
+    case ELFCLASS32:
       if (note->descsz < 108)
 	return FALSE;
       break;
 
-    case 64:
+    case ELFCLASS64:
       if (note->descsz < 120)
 	return FALSE;
       break;
@@ -9824,10 +9882,11 @@ elfcore_grok_freebsd_psinfo (bfd *abfd, 
   /* Check for version 1 in pr_version.  */
   if (bfd_h_get_32 (abfd, (bfd_byte *) note->descdata) != 1)
     return FALSE;
+
   offset = 4;
 
   /* Skip over pr_psinfosz. */
-  if (abfd->arch_info->bits_per_word == 32)
+  if (elf_elfheader (abfd)->e_ident[EI_CLASS] == ELFCLASS32)
     offset += 4;
   else
     {
@@ -9863,55 +9922,68 @@ elfcore_grok_freebsd_prstatus (bfd *abfd
 {
   size_t offset;
   size_t size;
+  size_t min_size;
 
-  /* Check for version 1 in pr_version. */
-  if (bfd_h_get_32 (abfd, (bfd_byte *) note->descdata) != 1)
-    return FALSE;
-  offset = 4;
-
-  /* Skip over pr_statussz.  */
-  switch (abfd->arch_info->bits_per_word)
-    {
-    case 32:
-      offset += 4;
+  /* Compute offset of pr_getregsz, skipping over pr_statussz.
+     Also compute minimum size of this note.  */
+  switch (elf_elfheader (abfd)->e_ident[EI_CLASS])
+    {
+    case ELFCLASS32:
+      offset = 4 + 4;
+      min_size = offset + (4 * 2) + 4 + 4 + 4;
       break;
 
-    case 64:
-      offset += 4;	/* Padding before pr_statussz. */
-      offset += 8;
+    case ELFCLASS64:
+      offset = 4 + 4 + 8;	/* Includes padding before pr_statussz.  */
+      min_size = offset + (8 * 2) + 4 + 4 + 4 + 4;
       break;
 
     default:
       return FALSE;
     }
 
+  if (note->descsz < min_size)
+    return FALSE;
+
+  /* Check for version 1 in pr_version.  */
+  if (bfd_h_get_32 (abfd, (bfd_byte *) note->descdata) != 1)
+    return FALSE;
+
   /* Extract size of pr_reg from pr_gregsetsz.  */
-  if (abfd->arch_info->bits_per_word == 32)
-    size = bfd_h_get_32 (abfd, (bfd_byte *) note->descdata + offset);
+  /* Skip over pr_gregsetsz and pr_fpregsetsz.  */
+  if (elf_elfheader (abfd)->e_ident[EI_CLASS] == ELFCLASS32)
+    {
+      size = bfd_h_get_32 (abfd, (bfd_byte *) note->descdata + offset);
+      offset += 4 * 2;
+    }
   else
-    size = bfd_h_get_64 (abfd, (bfd_byte *) note->descdata + offset);
-
-  /* Skip over pr_gregsetsz and pr_fpregsetsz. */
-  offset += (abfd->arch_info->bits_per_word / 8) * 2;
+    {
+      size = bfd_h_get_64 (abfd, (bfd_byte *) note->descdata + offset);
+      offset += 8 * 2;
+    }
 
-  /* Skip over pr_osreldate. */
+  /* Skip over pr_osreldate.  */
   offset += 4;
 
-  /* Read signal from pr_cursig. */
+  /* Read signal from pr_cursig.  */
   if (elf_tdata (abfd)->core->signal == 0)
     elf_tdata (abfd)->core->signal
       = bfd_h_get_32 (abfd, (bfd_byte *) note->descdata + offset);
   offset += 4;
 
-  /* Read TID from pr_pid. */
+  /* Read TID from pr_pid.  */
   elf_tdata (abfd)->core->lwpid
       = bfd_h_get_32 (abfd, (bfd_byte *) note->descdata + offset);
   offset += 4;
 
-  /* Padding before pr_reg. */
-  if (abfd->arch_info->bits_per_word == 64)
+  /* Padding before pr_reg.  */
+  if (elf_elfheader (abfd)->e_ident[EI_CLASS] == ELFCLASS64)
     offset += 4;
 
+  /* Make sure that there is enough data remaining in the note.  */
+  if ((note->descsz - offset) < size)
+    return FALSE;
+
   /* Make a ".reg/999" section and a ".reg" section.  */
   return _bfd_elfcore_make_pseudosection (abfd, ".reg",
 					  size, note->descpos + offset);
@@ -9920,9 +9992,14 @@ elfcore_grok_freebsd_prstatus (bfd *abfd
 static bfd_boolean
 elfcore_grok_freebsd_note (bfd *abfd, Elf_Internal_Note *note)
 {
+  const struct elf_backend_data *bed = get_elf_backend_data (abfd);
+
   switch (note->type)
     {
     case NT_PRSTATUS:
+      if (bed->elf_backend_grok_freebsd_prstatus)
+	if ((*bed->elf_backend_grok_freebsd_prstatus) (abfd, note))
+	  return TRUE;
       return elfcore_grok_freebsd_prstatus (abfd, note);
 
     case NT_FPREGSET:
@@ -9937,6 +10014,18 @@ elfcore_grok_freebsd_note (bfd *abfd, El
       else
 	return TRUE;
 
+    case NT_FREEBSD_PROCSTAT_PROC:
+      return elfcore_make_note_pseudosection (abfd, ".note.freebsdcore.proc",
+					      note);
+
+    case NT_FREEBSD_PROCSTAT_FILES:
+      return elfcore_make_note_pseudosection (abfd, ".note.freebsdcore.files",
+					      note);
+
+    case NT_FREEBSD_PROCSTAT_VMMAP:
+      return elfcore_make_note_pseudosection (abfd, ".note.freebsdcore.vmmap",
+					      note);
+
     case NT_FREEBSD_PROCSTAT_AUXV:
       {
 	asection *sect = bfd_make_section_anyway_with_flags (abfd, ".auxv",
@@ -9957,6 +10046,13 @@ elfcore_grok_freebsd_note (bfd *abfd, El
       else
 	return TRUE;
 
+    case NT_FREEBSD_PTLWPINFO:
+      return elfcore_make_note_pseudosection (abfd, ".note.freebsdcore.lwpinfo",
+					      note);
+
+    case NT_ARM_VFP:
+      return elfcore_grok_arm_vfp (abfd, note);
+
     default:
       return TRUE;
     }
@@ -9979,6 +10075,9 @@ elfcore_netbsd_get_lwpid (Elf_Internal_N
 static bfd_boolean
 elfcore_grok_netbsd_procinfo (bfd *abfd, Elf_Internal_Note *note)
 {
+  if (note->descsz <= 0x7c + 31)
+    return FALSE;
+
   /* Signal number at offset 0x08. */
   elf_tdata (abfd)->core->signal
     = bfd_h_get_32 (abfd, (bfd_byte *) note->descdata + 0x08);
@@ -10063,6 +10162,9 @@ elfcore_grok_netbsd_note (bfd *abfd, Elf
 static bfd_boolean
 elfcore_grok_openbsd_procinfo (bfd *abfd, Elf_Internal_Note *note)
 {
+  if (note->descsz <= 0x48 + 31)
+    return FALSE;
+
   /* Signal number at offset 0x08. */
   elf_tdata (abfd)->core->signal
     = bfd_h_get_32 (abfd, (bfd_byte *) note->descdata + 0x08);
@@ -10134,6 +10236,9 @@ elfcore_grok_nto_status (bfd *abfd, Elf_
   short sig;
   unsigned flags;
 
+  if (note->descsz < 16)
+    return FALSE;
+
   /* nto_procfs_status 'pid' field is at offset 0.  */
   elf_tdata (abfd)->core->pid = bfd_get_32 (abfd, (bfd_byte *) ddata);
 
@@ -10168,8 +10273,8 @@ elfcore_grok_nto_status (bfd *abfd, Elf_
   if (sect == NULL)
     return FALSE;
 
-  sect->size            = note->descsz;
-  sect->filepos         = note->descpos;
+  sect->size		= note->descsz;
+  sect->filepos		= note->descpos;
   sect->alignment_power = 2;
 
   return (elfcore_maybe_make_sect (abfd, ".qnx_core_status", sect));
@@ -10197,8 +10302,8 @@ elfcore_grok_nto_regs (bfd *abfd,
   if (sect == NULL)
     return FALSE;
 
-  sect->size            = note->descsz;
-  sect->filepos         = note->descpos;
+  sect->size		= note->descsz;
+  sect->filepos		= note->descpos;
   sect->alignment_power = 2;
 
   /* This is the current thread.  */
@@ -10255,8 +10360,8 @@ elfcore_grok_spu_note (bfd *abfd, Elf_In
   if (sect == NULL)
     return FALSE;
 
-  sect->size            = note->descsz;
-  sect->filepos         = note->descpos;
+  sect->size		= note->descsz;
+  sect->filepos		= note->descpos;
   sect->alignment_power = 1;
 
   return TRUE;
@@ -10393,11 +10498,22 @@ elfcore_write_linux_prpsinfo32
   (bfd *abfd, char *buf, int *bufsiz,
    const struct elf_internal_linux_prpsinfo *prpsinfo)
 {
-  struct elf_external_linux_prpsinfo32 data;
+  if (get_elf_backend_data (abfd)->linux_prpsinfo32_ugid16)
+    {
+      struct elf_external_linux_prpsinfo32_ugid16 data;
 
-  swap_linux_prpsinfo32_out (abfd, prpsinfo, &data);
-  return elfcore_write_note (abfd, buf, bufsiz, "CORE", NT_PRPSINFO,
-			     &data, sizeof (data));
+      swap_linux_prpsinfo32_ugid16_out (abfd, prpsinfo, &data);
+      return elfcore_write_note (abfd, buf, bufsiz, "CORE", NT_PRPSINFO,
+				 &data, sizeof (data));
+    }
+  else
+    {
+      struct elf_external_linux_prpsinfo32_ugid32 data;
+
+      swap_linux_prpsinfo32_ugid32_out (abfd, prpsinfo, &data);
+      return elfcore_write_note (abfd, buf, bufsiz, "CORE", NT_PRPSINFO,
+				 &data, sizeof (data));
+    }
 }
 
 char *
@@ -10405,11 +10521,22 @@ elfcore_write_linux_prpsinfo64
   (bfd *abfd, char *buf, int *bufsiz,
    const struct elf_internal_linux_prpsinfo *prpsinfo)
 {
-  struct elf_external_linux_prpsinfo64 data;
+  if (get_elf_backend_data (abfd)->linux_prpsinfo64_ugid16)
+    {
+      struct elf_external_linux_prpsinfo64_ugid16 data;
 
-  swap_linux_prpsinfo64_out (abfd, prpsinfo, &data);
-  return elfcore_write_note (abfd, buf, bufsiz,
-			     "CORE", NT_PRPSINFO, &data, sizeof (data));
+      swap_linux_prpsinfo64_ugid16_out (abfd, prpsinfo, &data);
+      return elfcore_write_note (abfd, buf, bufsiz,
+				 "CORE", NT_PRPSINFO, &data, sizeof (data));
+    }
+  else
+    {
+      struct elf_external_linux_prpsinfo64_ugid32 data;
+
+      swap_linux_prpsinfo64_ugid32_out (abfd, prpsinfo, &data);
+      return elfcore_write_note (abfd, buf, bufsiz,
+				 "CORE", NT_PRPSINFO, &data, sizeof (data));
+    }
 }
 
 char *
@@ -10582,14 +10709,14 @@ elfcore_write_ppc_vmx (bfd *abfd,
 
 char *
 elfcore_write_ppc_vsx (bfd *abfd,
-                       char *buf,
-                       int *bufsiz,
-                       const void *ppc_vsx,
-                       int size)
+		       char *buf,
+		       int *bufsiz,
+		       const void *ppc_vsx,
+		       int size)
 {
   char *note_name = "LINUX";
   return elfcore_write_note (abfd, buf, bufsiz,
-                             note_name, NT_PPC_VSX, ppc_vsx, size);
+			     note_name, NT_PPC_VSX, ppc_vsx, size);
 }
 
 static char *
@@ -10601,68 +10728,68 @@ elfcore_write_s390_high_gprs (bfd *abfd,
 {
   char *note_name = "LINUX";
   return elfcore_write_note (abfd, buf, bufsiz,
-                             note_name, NT_S390_HIGH_GPRS,
+			     note_name, NT_S390_HIGH_GPRS,
 			     s390_high_gprs, size);
 }
 
 char *
 elfcore_write_s390_timer (bfd *abfd,
-                          char *buf,
-                          int *bufsiz,
-                          const void *s390_timer,
-                          int size)
+			  char *buf,
+			  int *bufsiz,
+			  const void *s390_timer,
+			  int size)
 {
   char *note_name = "LINUX";
   return elfcore_write_note (abfd, buf, bufsiz,
-                             note_name, NT_S390_TIMER, s390_timer, size);
+			     note_name, NT_S390_TIMER, s390_timer, size);
 }
 
 char *
 elfcore_write_s390_todcmp (bfd *abfd,
-                           char *buf,
-                           int *bufsiz,
-                           const void *s390_todcmp,
-                           int size)
+			   char *buf,
+			   int *bufsiz,
+			   const void *s390_todcmp,
+			   int size)
 {
   char *note_name = "LINUX";
   return elfcore_write_note (abfd, buf, bufsiz,
-                             note_name, NT_S390_TODCMP, s390_todcmp, size);
+			     note_name, NT_S390_TODCMP, s390_todcmp, size);
 }
 
 char *
 elfcore_write_s390_todpreg (bfd *abfd,
-                            char *buf,
-                            int *bufsiz,
-                            const void *s390_todpreg,
-                            int size)
+			    char *buf,
+			    int *bufsiz,
+			    const void *s390_todpreg,
+			    int size)
 {
   char *note_name = "LINUX";
   return elfcore_write_note (abfd, buf, bufsiz,
-                             note_name, NT_S390_TODPREG, s390_todpreg, size);
+			     note_name, NT_S390_TODPREG, s390_todpreg, size);
 }
 
 char *
 elfcore_write_s390_ctrs (bfd *abfd,
-                         char *buf,
-                         int *bufsiz,
-                         const void *s390_ctrs,
-                         int size)
+			 char *buf,
+			 int *bufsiz,
+			 const void *s390_ctrs,
+			 int size)
 {
   char *note_name = "LINUX";
   return elfcore_write_note (abfd, buf, bufsiz,
-                             note_name, NT_S390_CTRS, s390_ctrs, size);
+			     note_name, NT_S390_CTRS, s390_ctrs, size);
 }
 
 char *
 elfcore_write_s390_prefix (bfd *abfd,
-                           char *buf,
-                           int *bufsiz,
-                           const void *s390_prefix,
-                           int size)
+			   char *buf,
+			   int *bufsiz,
+			   const void *s390_prefix,
+			   int size)
 {
   char *note_name = "LINUX";
   return elfcore_write_note (abfd, buf, bufsiz,
-                             note_name, NT_S390_PREFIX, s390_prefix, size);
+			     note_name, NT_S390_PREFIX, s390_prefix, size);
 }
 
 char *
@@ -10674,7 +10801,7 @@ elfcore_write_s390_last_break (bfd *abfd
 {
   char *note_name = "LINUX";
   return elfcore_write_note (abfd, buf, bufsiz,
-                             note_name, NT_S390_LAST_BREAK,
+			     note_name, NT_S390_LAST_BREAK,
 			     s390_last_break, size);
 }
 
@@ -10687,7 +10814,7 @@ elfcore_write_s390_system_call (bfd *abf
 {
   char *note_name = "LINUX";
   return elfcore_write_note (abfd, buf, bufsiz,
-                             note_name, NT_S390_SYSTEM_CALL,
+			     note_name, NT_S390_SYSTEM_CALL,
 			     s390_system_call, size);
 }
 
@@ -10700,7 +10827,7 @@ elfcore_write_s390_tdb (bfd *abfd,
 {
   char *note_name = "LINUX";
   return elfcore_write_note (abfd, buf, bufsiz,
-                             note_name, NT_S390_TDB, s390_tdb, size);
+			     note_name, NT_S390_TDB, s390_tdb, size);
 }
 
 char *
@@ -10729,6 +10856,32 @@ elfcore_write_s390_vxrs_high (bfd *abfd,
 }
 
 char *
+elfcore_write_s390_gs_cb (bfd *abfd,
+			  char *buf,
+			  int *bufsiz,
+			  const void *s390_gs_cb,
+			  int size)
+{
+  char *note_name = "LINUX";
+  return elfcore_write_note (abfd, buf, bufsiz,
+			     note_name, NT_S390_GS_CB,
+			     s390_gs_cb, size);
+}
+
+char *
+elfcore_write_s390_gs_bc (bfd *abfd,
+			  char *buf,
+			  int *bufsiz,
+			  const void *s390_gs_bc,
+			  int size)
+{
+  char *note_name = "LINUX";
+  return elfcore_write_note (abfd, buf, bufsiz,
+			     note_name, NT_S390_GS_BC,
+			     s390_gs_bc, size);
+}
+
+char *
 elfcore_write_arm_vfp (bfd *abfd,
 		       char *buf,
 		       int *bufsiz,
@@ -10816,6 +10969,10 @@ elfcore_write_register_note (bfd *abfd,
     return elfcore_write_s390_vxrs_low (abfd, buf, bufsiz, data, size);
   if (strcmp (section, ".reg-s390-vxrs-high") == 0)
     return elfcore_write_s390_vxrs_high (abfd, buf, bufsiz, data, size);
+  if (strcmp (section, ".reg-s390-gs-cb") == 0)
+    return elfcore_write_s390_gs_cb (abfd, buf, bufsiz, data, size);
+  if (strcmp (section, ".reg-s390-gs-bc") == 0)
+    return elfcore_write_s390_gs_bc (abfd, buf, bufsiz, data, size);
   if (strcmp (section, ".reg-arm-vfp") == 0)
     return elfcore_write_arm_vfp (abfd, buf, bufsiz, data, size);
   if (strcmp (section, ".reg-aarch-tls") == 0)
@@ -10828,14 +10985,21 @@ elfcore_write_register_note (bfd *abfd,
 }
 
 static bfd_boolean
-elf_parse_notes (bfd *abfd, char *buf, size_t size, file_ptr offset)
+elf_parse_notes (bfd *abfd, char *buf, size_t size, file_ptr offset,
+		 size_t align)
 {
   char *p;
 
+  /* NB: CORE PT_NOTE segments may have p_align values of 0 or 1.
+     gABI specifies that PT_NOTE alignment should be aligned to 4
+     bytes for 32-bit objects and to 8 bytes for 64-bit objects.  If
+     align is less than 4, we use 4 byte alignment.   */
+  if (align < 4)
+    align = 4;
+
   p = buf;
   while (p < buf + size)
     {
-      /* FIXME: bad alignment assumption.  */
       Elf_External_Note *xnp = (Elf_External_Note *) p;
       Elf_Internal_Note in;
 
@@ -10850,7 +11014,7 @@ elf_parse_notes (bfd *abfd, char *buf, s
 	return FALSE;
 
       in.descsz = H_GET_32 (abfd, xnp->descsz);
-      in.descdata = in.namedata + BFD_ALIGN (in.namesz, 4);
+      in.descdata = p + ELF_NOTE_DESC_OFFSET (in.namesz, align);
       in.descpos = offset + (in.descdata - buf);
       if (in.descsz != 0
 	  && (in.descdata >= buf + size
@@ -10858,7 +11022,7 @@ elf_parse_notes (bfd *abfd, char *buf, s
 	return FALSE;
 
       switch (bfd_get_format (abfd))
-        {
+	{
 	default:
 	  return TRUE;
 
@@ -10912,18 +11076,19 @@ elf_parse_notes (bfd *abfd, char *buf, s
 	  break;
 	}
 
-      p = in.descdata + BFD_ALIGN (in.descsz, 4);
+      p += ELF_NOTE_NEXT_OFFSET (in.namesz, in.descsz, align);
     }
 
   return TRUE;
 }
 
 static bfd_boolean
-elf_read_notes (bfd *abfd, file_ptr offset, bfd_size_type size)
+elf_read_notes (bfd *abfd, file_ptr offset, bfd_size_type size,
+		size_t align)
 {
   char *buf;
 
-  if (size <= 0)
+  if (size == 0 || (size + 1) == 0)
     return TRUE;
 
   if (bfd_seek (abfd, offset, SEEK_SET) != 0)
@@ -10938,7 +11103,7 @@ elf_read_notes (bfd *abfd, file_ptr offs
   buf[size] = 0;
 
   if (bfd_bread (buf, size, abfd) != size
-      || !elf_parse_notes (abfd, buf, size, offset))
+      || !elf_parse_notes (abfd, buf, size, offset, align))
     {
       free (buf);
       return FALSE;
@@ -11235,9 +11400,11 @@ _bfd_elf_get_synthetic_symtab (bfd *abfd
 
 /* It is only used by x86-64 so far.
    ??? This repeats *COM* id of zero.  sec->id is supposed to be unique,
-   but current usage would allow all of _bfd_std_section to be zero.  t*/
+   but current usage would allow all of _bfd_std_section to be zero.  */
+static const asymbol lcomm_sym
+  = GLOBAL_SYM_INIT ("LARGE_COMMON", &_bfd_elf_large_com_section);
 asection _bfd_elf_large_com_section
-  = BFD_FAKE_SECTION (_bfd_elf_large_com_section, NULL,
+  = BFD_FAKE_SECTION (_bfd_elf_large_com_section, &lcomm_sym,
 		      "LARGE_COMMON", 0, SEC_IS_COMMON);
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfcode.h ./bfd/elfcode.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfcode.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfcode.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* ELF executable support for BFD.
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support, from information published
    in "UNIX System V Release 4, Programmers Guide: ANSI C and
@@ -958,6 +958,12 @@ elf_write_relocs (bfd *abfd, asection *s
 	  return;
 	}
 
+      if (ptr->howto == NULL)
+	{
+	  *failedp = TRUE;
+	  return;
+	}
+
       src_rela.r_offset = ptr->address + addr_offset;
       src_rela.r_info = ELF_R_INFO (n, ptr->howto->type);
       src_rela.r_addend = ptr->addend;
@@ -1190,9 +1196,9 @@ elf_slurp_symbol_table (bfd *abfd, asymb
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: version count (%ld) does not match symbol count (%ld)"),
+	    (_("%B: version count (%Ld) does not match symbol count (%ld)"),
 	     abfd,
-	     (long) (verhdr->sh_size / sizeof (Elf_External_Versym)),
+	     verhdr->sh_size / sizeof (Elf_External_Versym),
 	     symcount);
 
 	  /* Slurp in the symbols without the version information,
@@ -1440,13 +1446,15 @@ elf_slurp_reloc_table_from_section (bfd 
 	relent->address = rela.r_offset - asect->vma;
 
       if (ELF_R_SYM (rela.r_info) == STN_UNDEF)
+	/* FIXME: This and the error case below mean that we have a
+	   symbol on relocs that is not elf_symbol_type.  */
 	relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
       else if (ELF_R_SYM (rela.r_info) > symcount)
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
 	    (_("%B(%A): relocation %d has invalid symbol index %ld"),
-	     abfd, asect, i, ELF_R_SYM (rela.r_info));
+	     abfd, asect, i, (long) ELF_R_SYM (rela.r_info));
 	  relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
 	}
       else
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfcore.h ./bfd/elfcore.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfcore.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfcore.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* ELF core file support for BFD.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -161,9 +161,9 @@ elf_core_file_p (bfd *abfd)
 	    continue;
 	  if (back->elf_machine_code == i_ehdrp->e_machine
 	      || (back->elf_machine_alt1 != 0
-	          && i_ehdrp->e_machine == back->elf_machine_alt1)
+		  && i_ehdrp->e_machine == back->elf_machine_alt1)
 	      || (back->elf_machine_alt2 != 0
-	          && i_ehdrp->e_machine == back->elf_machine_alt2))
+		  && i_ehdrp->e_machine == back->elf_machine_alt2))
 	    {
 	      /* target_ptr is an ELF backend which matches this
 		 object file, so reject the generic ELF target.  */
@@ -297,9 +297,9 @@ elf_core_file_p (bfd *abfd)
 	  {
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("Warning: %B is truncated: expected core file "
-		 "size >= %lu, found: %lu."),
-	       abfd, (unsigned long) high, (unsigned long) statbuf.st_size);
+	      (_("warning: %B is truncated: expected core file "
+		 "size >= %Lu, found: %llu"),
+	       abfd, high, (unsigned long long) statbuf.st_size);
 	  }
       }
   }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-eh-frame.c ./bfd/elf-eh-frame.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-eh-frame.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-eh-frame.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* .eh_frame section optimization.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    Written by Jakub Jelinek <jakub@redhat.com>.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -326,9 +326,9 @@ size_of_output_cie_fde (struct eh_cie_fd
 /* Return the offset of the FDE or CIE after ENT.  */
 
 static unsigned int
-next_cie_fde_offset (struct eh_cie_fde *ent,
-		     struct eh_cie_fde *last,
-		     asection *sec)
+next_cie_fde_offset (const struct eh_cie_fde *ent,
+		     const struct eh_cie_fde *last,
+		     const asection *sec)
 {
   while (++ent < last)
     {
@@ -483,7 +483,7 @@ bfd_elf_discard_eh_frame_entry (struct e
 	  hdr_info->array_count--;
 	  hdr_info->u.compact.entries[hdr_info->array_count] = NULL;
 	  i--;
-        }
+	}
     }
 }
 
@@ -619,15 +619,6 @@ _bfd_elf_parse_eh_frame (bfd *abfd, stru
 
   REQUIRE (bfd_malloc_and_get_section (abfd, sec, &ehbuf));
 
-  if (sec->size >= 4
-      && bfd_get_32 (abfd, ehbuf) == 0
-      && cookie->rel == cookie->relend)
-    {
-      /* Empty .eh_frame section.  */
-      free (ehbuf);
-      return;
-    }
-
   /* If .eh_frame section size doesn't fit into int, we cannot handle
      it (it would need to use 64-bit .eh_frame format anyway).  */
   REQUIRE (sec->size == (unsigned int) sec->size);
@@ -665,12 +656,15 @@ _bfd_elf_parse_eh_frame (bfd *abfd, stru
 
   sec_info = (struct eh_frame_sec_info *)
       bfd_zmalloc (sizeof (struct eh_frame_sec_info)
-                   + (num_entries - 1) * sizeof (struct eh_cie_fde));
+		   + (num_entries - 1) * sizeof (struct eh_cie_fde));
   REQUIRE (sec_info);
 
   /* We need to have a "struct cie" for each CIE in this section.  */
-  local_cies = (struct cie *) bfd_zmalloc (num_cies * sizeof (*local_cies));
-  REQUIRE (local_cies);
+  if (num_cies)
+    {
+      local_cies = (struct cie *) bfd_zmalloc (num_cies * sizeof (*local_cies));
+      REQUIRE (local_cies);
+    }
 
   /* FIXME: octets_per_byte.  */
 #define ENSURE_NO_RELOCS(buf)				\
@@ -724,7 +718,9 @@ _bfd_elf_parse_eh_frame (bfd *abfd, stru
       if (hdr_length == 0)
 	{
 	  /* A zero-length CIE should only be found at the end of
-	     the section.  */
+	     the section, but allow multiple terminators.  */
+	  while (skip_bytes (&buf, ehbuf + sec->size, 4))
+	    REQUIRE (bfd_get_32 (abfd, buf - 4) == 0);
 	  REQUIRE ((bfd_size_type) (buf - ehbuf) == sec->size);
 	  ENSURE_NO_RELOCS (buf);
 	  sec_info->count++;
@@ -757,6 +753,7 @@ _bfd_elf_parse_eh_frame (bfd *abfd, stru
 
 	  strcpy (cie->augmentation, (char *) buf);
 	  buf = (bfd_byte *) strchr ((char *) buf, '\0') + 1;
+	  this_inf->u.cie.aug_str_len = buf - start - 1;
 	  ENSURE_NO_RELOCS (buf);
 	  if (buf[0] == 'e' && buf[1] == 'h')
 	    {
@@ -794,7 +791,7 @@ _bfd_elf_parse_eh_frame (bfd *abfd, stru
 		{
 		  aug++;
 		  REQUIRE (read_uleb128 (&buf, end, &cie->augmentation_size));
-	  	  ENSURE_NO_RELOCS (buf);
+		  ENSURE_NO_RELOCS (buf);
 		}
 
 	      while (*aug != '\0')
@@ -845,6 +842,8 @@ _bfd_elf_parse_eh_frame (bfd *abfd, stru
 		    goto free_no_table;
 		  }
 	    }
+	  this_inf->u.cie.aug_data_len
+	    = buf - start - 1 - this_inf->u.cie.aug_str_len;
 
 	  /* For shared libraries, try to get rid of as many RELATIVE relocs
 	     as possible.  */
@@ -1011,7 +1010,7 @@ _bfd_elf_parse_eh_frame (bfd *abfd, stru
 	  bfd_byte *p;
 
 	  this_inf->set_loc = (unsigned int *)
-              bfd_malloc ((set_loc_count + 1) * sizeof (unsigned int));
+	      bfd_malloc ((set_loc_count + 1) * sizeof (unsigned int));
 	  REQUIRE (this_inf->set_loc);
 	  this_inf->set_loc[0] = set_loc_count;
 	  p = insns;
@@ -1327,6 +1326,143 @@ find_merged_cie (bfd *abfd, struct bfd_l
   return new_cie->cie_inf;
 }
 
+/* For a given OFFSET in SEC, return the delta to the new location
+   after .eh_frame editing.  */
+
+static bfd_signed_vma
+offset_adjust (bfd_vma offset, const asection *sec)
+{
+  struct eh_frame_sec_info *sec_info
+    = (struct eh_frame_sec_info *) elf_section_data (sec)->sec_info;
+  unsigned int lo, hi, mid;
+  struct eh_cie_fde *ent = NULL;
+  bfd_signed_vma delta;
+
+  lo = 0;
+  hi = sec_info->count;
+  if (hi == 0)
+    return 0;
+
+  while (lo < hi)
+    {
+      mid = (lo + hi) / 2;
+      ent = &sec_info->entry[mid];
+      if (offset < ent->offset)
+	hi = mid;
+      else if (mid + 1 >= hi)
+	break;
+      else if (offset >= ent[1].offset)
+	lo = mid + 1;
+      else
+	break;
+    }
+
+  if (!ent->removed)
+    delta = (bfd_vma) ent->new_offset - (bfd_vma) ent->offset;
+  else if (ent->cie && ent->u.cie.merged)
+    {
+      struct eh_cie_fde *cie = ent->u.cie.u.merged_with;
+      delta = ((bfd_vma) cie->new_offset + cie->u.cie.u.sec->output_offset
+	       - (bfd_vma) ent->offset - sec->output_offset);
+    }
+  else
+    {
+      /* Is putting the symbol on the next entry best for a deleted
+	 CIE/FDE?  */
+      struct eh_cie_fde *last = sec_info->entry + sec_info->count;
+      delta = ((bfd_vma) next_cie_fde_offset (ent, last, sec)
+	       - (bfd_vma) ent->offset);
+      return delta;
+    }
+
+  /* Account for editing within this CIE/FDE.  */
+  offset -= ent->offset;
+  if (ent->cie)
+    {
+      unsigned int extra
+	= ent->add_augmentation_size + ent->u.cie.add_fde_encoding;
+      if (extra == 0
+	  || offset <= 9u + ent->u.cie.aug_str_len)
+	return delta;
+      delta += extra;
+      if (offset <= 9u + ent->u.cie.aug_str_len + ent->u.cie.aug_data_len)
+	return delta;
+      delta += extra;
+    }
+  else
+    {
+      unsigned int ptr_size, width, extra = ent->add_augmentation_size;
+      if (offset <= 12 || extra == 0)
+	return delta;
+      ptr_size = (get_elf_backend_data (sec->owner)
+		  ->elf_backend_eh_frame_address_size (sec->owner, sec));
+      width = get_DW_EH_PE_width (ent->fde_encoding, ptr_size);
+      if (offset <= 8 + 2 * width)
+	return delta;
+      delta += extra;
+    }
+
+  return delta;
+}
+
+/* Adjust a global symbol defined in .eh_frame, so that it stays
+   relative to its original CIE/FDE.  It is assumed that a symbol
+   defined at the beginning of a CIE/FDE belongs to that CIE/FDE
+   rather than marking the end of the previous CIE/FDE.  This matters
+   when a CIE is merged with a previous CIE, since the symbol is
+   moved to the merged CIE.  */
+
+bfd_boolean
+_bfd_elf_adjust_eh_frame_global_symbol (struct elf_link_hash_entry *h,
+					void *arg ATTRIBUTE_UNUSED)
+{
+  asection *sym_sec;
+  bfd_signed_vma delta;
+
+  if (h->root.type != bfd_link_hash_defined
+      && h->root.type != bfd_link_hash_defweak)
+    return TRUE;
+
+  sym_sec = h->root.u.def.section;
+  if (sym_sec->sec_info_type != SEC_INFO_TYPE_EH_FRAME
+      || elf_section_data (sym_sec)->sec_info == NULL)
+    return TRUE;
+
+  delta = offset_adjust (h->root.u.def.value, sym_sec);
+  h->root.u.def.value += delta;
+
+  return TRUE;
+}
+
+/* The same for all local symbols defined in .eh_frame.  Returns true
+   if any symbol was changed.  */
+
+static int
+adjust_eh_frame_local_symbols (const asection *sec,
+			       struct elf_reloc_cookie *cookie)
+{
+  unsigned int shndx;
+  Elf_Internal_Sym *sym;
+  Elf_Internal_Sym *end_sym;
+  int adjusted = 0;
+
+  shndx = elf_section_data (sec)->this_idx;
+  end_sym = cookie->locsyms + cookie->locsymcount;
+  for (sym = cookie->locsyms + 1; sym < end_sym; ++sym)
+    if (sym->st_info <= ELF_ST_INFO (STB_LOCAL, STT_OBJECT)
+	&& sym->st_shndx == shndx)
+      {
+	bfd_signed_vma delta = offset_adjust (sym->st_value, sec);
+
+	if (delta != 0)
+	  {
+	    adjusted = 1;
+	    sym->st_value += delta;
+	  }
+      }
+  return adjusted;
+}
+
 /* This function is called for each input file before the .eh_frame
    section is relocated.  It discards duplicate CIEs and FDEs for discarded
    functions.  The function returns TRUE iff any entries have been
@@ -1342,6 +1478,7 @@ _bfd_elf_discard_section_eh_frame
   struct eh_frame_sec_info *sec_info;
   struct eh_frame_hdr_info *hdr_info;
   unsigned int ptr_size, offset, eh_alignment;
+  int changed;
 
   if (sec->sec_info_type != SEC_INFO_TYPE_EH_FRAME)
     return FALSE;
@@ -1428,6 +1565,7 @@ _bfd_elf_discard_section_eh_frame
      last FDE instead.  For other FDEs we align according to their
      encoding, in order to align FDE address range entries naturally.  */
   offset = 0;
+  changed = 0;
   for (ent = sec_info->entry; ent < sec_info->entry + sec_info->count; ++ent)
     if (!ent->removed)
       {
@@ -1447,23 +1585,24 @@ _bfd_elf_discard_section_eh_frame
 	  }
 	offset = (offset + eh_alignment - 1) & -eh_alignment;
 	ent->new_offset = offset;
+	if (ent->new_offset != ent->offset)
+	  changed = 1;
 	offset += size_of_output_cie_fde (ent);
       }
 
-  /* Pad the last FDE out to the output section alignment if there are
-     following sections, in order to ensure no padding between this
-     section and the next.  (Relies on the output section alignment
-     being the maximum of all input sections alignments, which is the
-     case unless someone is overriding alignment via scripts.)  */
   eh_alignment = 4;
-  if (sec->map_head.s != NULL
-      && (sec->map_head.s->size != 4
-	  || sec->map_head.s->map_head.s != NULL))
-    eh_alignment = 1 << sec->output_section->alignment_power;
   offset = (offset + eh_alignment - 1) & -eh_alignment;
   sec->rawsize = sec->size;
   sec->size = offset;
-  return offset != sec->rawsize;
+  if (sec->size != sec->rawsize)
+    changed = 1;
+
+  if (changed && adjust_eh_frame_local_symbols (sec, cookie))
+    {
+      Elf_Internal_Shdr *symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
+      symtab_hdr->contents = (unsigned char *) cookie->locsyms;
+    }
+  return changed;
 }
 
 /* This function is called for .eh_frame_hdr section after
@@ -1493,7 +1632,7 @@ _bfd_elf_discard_section_eh_frame_hdr (b
   if (info->eh_frame_hdr_type == COMPACT_EH_HDR)
     {
       /* For compact frames we only add the header.  The actual table comes
-         from the .eh_frame_entry sections.  */
+	 from the .eh_frame_entry sections.  */
       sec->size = 8;
     }
   else
@@ -1798,7 +1937,7 @@ _bfd_elf_write_section_eh_frame (bfd *ab
     {
       hdr_info->frame_hdr_is_compact = FALSE;
       hdr_info->u.dwarf.array = (struct eh_frame_array_ent *)
-        bfd_malloc (hdr_info->u.dwarf.fde_count
+	bfd_malloc (hdr_info->u.dwarf.fde_count
 		    * sizeof (*hdr_info->u.dwarf.array));
     }
   if (hdr_info->u.dwarf.array == NULL)
@@ -2182,7 +2321,7 @@ _bfd_elf_fixup_eh_frame_hdr (struct bfd_
 
       p->offset = p->u.indirect.section->output_offset;
       if (p->next != NULL)
-        i--;
+	i--;
     }
 
   if (i != 0)
@@ -2237,7 +2376,7 @@ write_compact_eh_frame_hdr (bfd *abfd, s
 /* The .eh_frame_hdr format for DWARF frames:
 
    ubyte version		(currently 1)
-   ubyte eh_frame_ptr_enc  	(DW_EH_PE_* encoding of pointer to start of
+   ubyte eh_frame_ptr_enc	(DW_EH_PE_* encoding of pointer to start of
 				 .eh_frame section)
    ubyte fde_count_enc		(DW_EH_PE_* encoding of total FDE count
 				 number (or DW_EH_PE_omit if there is no
@@ -2394,7 +2533,7 @@ _bfd_elf_write_section_eh_frame_hdr (bfd
 /* Return the width of FDE addresses.  This is the default implementation.  */
 
 unsigned int
-_bfd_elf_eh_frame_address_size (bfd *abfd, asection *sec ATTRIBUTE_UNUSED)
+_bfd_elf_eh_frame_address_size (bfd *abfd, const asection *sec ATTRIBUTE_UNUSED)
 {
   return elf_elfheader (abfd)->e_ident[EI_CLASS] == ELFCLASS64 ? 8 : 4;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-hppa.h ./bfd/elf-hppa.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-hppa.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-hppa.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Common code for PA ELF implementations.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -27,20 +27,20 @@
    external constraints require 32 or 64 bit specific code.  We remap
    the definitions/functions as necessary here.  */
 #if ARCH_SIZE == 64
-#define ELF_R_TYPE(X)                 ELF64_R_TYPE(X)
-#define ELF_R_SYM(X)                  ELF64_R_SYM(X)
+#define ELF_R_TYPE(X)		      ELF64_R_TYPE(X)
+#define ELF_R_SYM(X)		      ELF64_R_SYM(X)
 #define elf_hppa_reloc_final_type     elf64_hppa_reloc_final_type
 #define _bfd_elf_hppa_gen_reloc_type  _bfd_elf64_hppa_gen_reloc_type
 #define elf_hppa_relocate_section     elf64_hppa_relocate_section
-#define elf_hppa_final_link           elf64_hppa_final_link
+#define elf_hppa_final_link	      elf64_hppa_final_link
 #endif
 #if ARCH_SIZE == 32
-#define ELF_R_TYPE(X)                 ELF32_R_TYPE(X)
-#define ELF_R_SYM(X)                  ELF32_R_SYM(X)
+#define ELF_R_TYPE(X)		      ELF32_R_TYPE(X)
+#define ELF_R_SYM(X)		      ELF32_R_SYM(X)
 #define elf_hppa_reloc_final_type     elf32_hppa_reloc_final_type
 #define _bfd_elf_hppa_gen_reloc_type  _bfd_elf32_hppa_gen_reloc_type
 #define elf_hppa_relocate_section     elf32_hppa_relocate_section
-#define elf_hppa_final_link           elf32_hppa_final_link
+#define elf_hppa_final_link	      elf32_hppa_final_link
 #endif
 
 /* ELF/PA relocation howto entries.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-ifunc.c ./bfd/elf-ifunc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-ifunc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-ifunc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* ELF STT_GNU_IFUNC support.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -355,128 +355,3 @@ keep:
 
   return TRUE;
 }
-
-/* Similar to _bfd_elf_get_synthetic_symtab, optimized for unsorted PLT
-   entries.  PLT is the PLT section.  PLT_SYM_VAL is a function pointer
-   which returns an array of PLT entry symbol values.  */
-
-long
-_bfd_elf_ifunc_get_synthetic_symtab
-  (bfd *abfd, long symcount ATTRIBUTE_UNUSED,
-   asymbol **syms ATTRIBUTE_UNUSED, long dynsymcount, asymbol **dynsyms,
-   asymbol **ret, asection *plt,
-   bfd_vma *(*get_plt_sym_val) (bfd *, asymbol **, asection *, asection *))
-{
-  const struct elf_backend_data *bed = get_elf_backend_data (abfd);
-  asection *relplt;
-  asymbol *s;
-  const char *relplt_name;
-  bfd_boolean (*slurp_relocs) (bfd *, asection *, asymbol **, bfd_boolean);
-  arelent *p;
-  long count, i, n;
-  size_t size;
-  Elf_Internal_Shdr *hdr;
-  char *names;
-  bfd_vma *plt_sym_val;
-
-  *ret = NULL;
-
-  if (plt == NULL)
-    return 0;
-
-  if ((abfd->flags & (DYNAMIC | EXEC_P)) == 0)
-    return 0;
-
-  if (dynsymcount <= 0)
-    return 0;
-
-  relplt_name = bed->relplt_name;
-  if (relplt_name == NULL)
-    relplt_name = bed->rela_plts_and_copies_p ? ".rela.plt" : ".rel.plt";
-  relplt = bfd_get_section_by_name (abfd, relplt_name);
-  if (relplt == NULL)
-    return 0;
-
-  hdr = &elf_section_data (relplt)->this_hdr;
-  if (hdr->sh_link != elf_dynsymtab (abfd)
-      || (hdr->sh_type != SHT_REL && hdr->sh_type != SHT_RELA))
-    return 0;
-
-  slurp_relocs = get_elf_backend_data (abfd)->s->slurp_reloc_table;
-  if (! (*slurp_relocs) (abfd, relplt, dynsyms, TRUE))
-    return -1;
-
-  count = relplt->size / hdr->sh_entsize;
-  size = count * sizeof (asymbol);
-  p = relplt->relocation;
-  for (i = 0; i < count; i++, p += bed->s->int_rels_per_ext_rel)
-    {
-      size += strlen ((*p->sym_ptr_ptr)->name) + sizeof ("@plt");
-      if (p->addend != 0)
-	{
-#ifdef BFD64
-	  size += sizeof ("+0x") - 1 + 8 + 8 * (bed->s->elfclass == ELFCLASS64);
-#else
-	  size += sizeof ("+0x") - 1 + 8;
-#endif
-	}
-    }
-
-  plt_sym_val = get_plt_sym_val (abfd, dynsyms, plt, relplt);
-  if (plt_sym_val == NULL)
-    return -1;
-
-  s = *ret = (asymbol *) bfd_malloc (size);
-  if (s == NULL)
-    {
-      free (plt_sym_val);
-      return -1;
-    }
-
-  names = (char *) (s + count);
-  p = relplt->relocation;
-  n = 0;
-  for (i = 0; i < count; i++, p += bed->s->int_rels_per_ext_rel)
-    {
-      size_t len;
-      bfd_vma addr;
-
-      addr = plt_sym_val[i];
-      if (addr == (bfd_vma) -1)
-	continue;
-
-      *s = **p->sym_ptr_ptr;
-      /* Undefined syms won't have BSF_LOCAL or BSF_GLOBAL set.  Since
-	 we are defining a symbol, ensure one of them is set.  */
-      if ((s->flags & BSF_LOCAL) == 0)
-	s->flags |= BSF_GLOBAL;
-      s->flags |= BSF_SYNTHETIC;
-      s->section = plt;
-      s->value = addr - plt->vma;
-      s->name = names;
-      s->udata.p = NULL;
-      len = strlen ((*p->sym_ptr_ptr)->name);
-      memcpy (names, (*p->sym_ptr_ptr)->name, len);
-      names += len;
-      if (p->addend != 0)
-	{
-	  char buf[30], *a;
-
-	  memcpy (names, "+0x", sizeof ("+0x") - 1);
-	  names += sizeof ("+0x") - 1;
-	  bfd_sprintf_vma (abfd, buf, p->addend);
-	  for (a = buf; *a == '0'; ++a)
-	    ;
-	  len = strlen (a);
-	  memcpy (names, a, len);
-	  names += len;
-	}
-      memcpy (names, "@plt", sizeof ("@plt"));
-      names += sizeof ("@plt");
-      ++s, ++n;
-    }
-
-  free (plt_sym_val);
-
-  return n;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elflink.c ./bfd/elflink.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elflink.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elflink.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* ELF linking support for BFD.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -77,7 +77,7 @@ _bfd_elf_section_for_symbol (struct elf_
       if ((h->root.type == bfd_link_hash_defined
 	   || h->root.type == bfd_link_hash_defweak)
 	   && discarded_section (h->root.u.def.section))
-        return h->root.u.def.section;
+	return h->root.u.def.section;
       else
 	return NULL;
     }
@@ -218,9 +218,13 @@ _bfd_elf_link_create_dynstrtab (bfd *abf
       if ((abfd->flags & (DYNAMIC | BFD_PLUGIN)) != 0)
 	{
 	  bfd *ibfd;
+	  asection *s;
 	  for (ibfd = info->input_bfds; ibfd; ibfd = ibfd->link.next)
 	    if ((ibfd->flags
-		 & (DYNAMIC | BFD_LINKER_CREATED | BFD_PLUGIN)) == 0)
+		 & (DYNAMIC | BFD_LINKER_CREATED | BFD_PLUGIN)) == 0
+		&& bfd_get_flavour (ibfd) == bfd_target_elf_flavour
+		&& !((s = ibfd->sections) != NULL
+		     && s->sec_info_type == SEC_INFO_TYPE_JUST_SYMS))
 	      {
 		abfd = ibfd;
 		break;
@@ -580,7 +584,7 @@ bfd_elf_link_mark_dynamic_symbol (struct
 	       && (ELF_ST_TYPE (sym->st_info) == STT_OBJECT
 		   || ELF_ST_TYPE (sym->st_info) == STT_COMMON))))
       || (d != NULL
-	  && h->root.type == bfd_link_hash_new
+	  && h->non_elf
 	  && (*d->match) (&d->head, NULL, h->root.root.string)))
     h->dynamic = 1;
 }
@@ -623,6 +627,14 @@ bfd_elf_record_link_assignment (bfd *out
 	}
     }
 
+  /* Symbols defined in a linker script but not referenced anywhere
+     else will have non_elf set.  */
+  if (h->non_elf)
+    {
+      bfd_elf_link_mark_dynamic_symbol (info, h, NULL);
+      h->non_elf = 0;
+    }
+
   switch (h->root.type)
     {
     case bfd_link_hash_defined:
@@ -639,8 +651,6 @@ bfd_elf_record_link_assignment (bfd *out
 	bfd_link_repair_undef_list (&htab->root);
       break;
     case bfd_link_hash_new:
-      bfd_elf_link_mark_dynamic_symbol (info, h, NULL);
-      h->non_elf = 0;
       break;
     case bfd_link_hash_indirect:
       /* We had a versioned symbol in a dynamic library.  We make the
@@ -713,10 +723,12 @@ bfd_elf_record_link_assignment (bfd *out
       /* If this is a weak defined symbol, and we know a corresponding
 	 real symbol from the same dynamic object, make sure the real
 	 symbol is also made into a dynamic symbol.  */
-      if (h->u.weakdef != NULL
-	  && h->u.weakdef->dynindx == -1)
+      if (h->is_weakalias)
 	{
-	  if (! bfd_elf_link_record_dynamic_symbol (info, h->u.weakdef))
+	  struct elf_link_hash_entry *def = weakdef (h);
+
+	  if (def->dynindx == -1
+	      && !bfd_elf_link_record_dynamic_symbol (info, def))
 	    return FALSE;
 	}
     }
@@ -905,7 +917,10 @@ _bfd_elf_link_omit_section_dynsym (bfd *
    symbol for each output section, which come first.  Next come symbols
    which have been forced to local binding.  Then all of the back-end
    allocated local dynamic syms, followed by the rest of the global
-   symbols.  */
+   symbols.  If SECTION_SYM_COUNT is NULL, section dynindx is not set.
+   (This prevents the early call before elf_backend_init_index_section
+   and strip_excluded_output_sections setting dynindx for sections
+   that are stripped.)  */
 
 static unsigned long
 _bfd_elf_link_renumber_dynsyms (bfd *output_bfd,
@@ -913,6 +928,7 @@ _bfd_elf_link_renumber_dynsyms (bfd *out
 				unsigned long *section_sym_count)
 {
   unsigned long dynsymcount = 0;
+  bfd_boolean do_sec = section_sym_count != NULL;
 
   if (bfd_link_pic (info)
       || elf_hash_table (info)->is_relocatable_executable)
@@ -923,11 +939,16 @@ _bfd_elf_link_renumber_dynsyms (bfd *out
 	if ((p->flags & SEC_EXCLUDE) == 0
 	    && (p->flags & SEC_ALLOC) != 0
 	    && !(*bed->elf_backend_omit_section_dynsym) (output_bfd, info, p))
-	  elf_section_data (p)->dynindx = ++dynsymcount;
-	else
+	  {
+	    ++dynsymcount;
+	    if (do_sec)
+	      elf_section_data (p)->dynindx = dynsymcount;
+	  }
+	else if (do_sec)
 	  elf_section_data (p)->dynindx = 0;
     }
-  *section_sym_count = dynsymcount;
+  if (do_sec)
+    *section_sym_count = dynsymcount;
 
   elf_link_hash_traverse (elf_hash_table (info),
 			  elf_link_renumber_local_hash_table_dynsyms,
@@ -1026,6 +1047,7 @@ _bfd_elf_merge_symbol (bfd *abfd,
   bfd_boolean newweak, oldweak, newfunc, oldfunc;
   const struct elf_backend_data *bed;
   char *new_version;
+  bfd_boolean default_sym = *matched;
 
   *skip = FALSE;
   *override = FALSE;
@@ -1151,11 +1173,6 @@ _bfd_elf_merge_symbol (bfd *abfd,
   if (pold_weak)
     *pold_weak = oldweak;
 
-  /* This code is for coping with dynamic objects, and is only useful
-     if we are doing an ELF link.  */
-  if (!(*bed->relocs_compatible) (abfd->xvec, info->output_bfd->xvec))
-    return TRUE;
-
   /* We have to check it for every instance since the first few may be
      references and not all compilers emit symbol type for undefined
      symbols.  */
@@ -1224,6 +1241,16 @@ _bfd_elf_merge_symbol (bfd *abfd,
       olddyn = (oldsec->symbol->flags & BSF_DYNAMIC) != 0;
     }
 
+  /* Handle a case where plugin_notice won't be called and thus won't
+     set the non_ir_ref flags on the first pass over symbols.  */
+  if (oldbfd != NULL
+      && (oldbfd->flags & BFD_PLUGIN) != (abfd->flags & BFD_PLUGIN)
+      && newdyn != olddyn)
+    {
+      h->root.non_ir_ref_dynamic = TRUE;
+      hi->root.non_ir_ref_dynamic = TRUE;
+    }
+
   /* NEWDEF and OLDDEF indicate whether the new or old symbol,
      respectively, appear to be a definition rather than reference.  */
 
@@ -1242,23 +1269,50 @@ _bfd_elf_merge_symbol (bfd *abfd,
   oldfunc = (h->type != STT_NOTYPE
 	     && bed->is_function_type (h->type));
 
-  /* If creating a default indirect symbol ("foo" or "foo@") from a
-     dynamic versioned definition ("foo@@") skip doing so if there is
-     an existing regular definition with a different type.  We don't
-     want, for example, a "time" variable in the executable overriding
-     a "time" function in a shared library.  */
-  if (pold_alignment == NULL
-      && newdyn
-      && newdef
-      && !olddyn
-      && (olddef || h->root.type == bfd_link_hash_common)
+  if (!(newfunc && oldfunc)
       && ELF_ST_TYPE (sym->st_info) != h->type
       && ELF_ST_TYPE (sym->st_info) != STT_NOTYPE
       && h->type != STT_NOTYPE
-      && !(newfunc && oldfunc))
+      && (newdef || bfd_is_com_section (sec))
+      && (olddef || h->root.type == bfd_link_hash_common))
     {
-      *skip = TRUE;
-      return TRUE;
+      /* If creating a default indirect symbol ("foo" or "foo@") from
+	 a dynamic versioned definition ("foo@@") skip doing so if
+	 there is an existing regular definition with a different
+	 type.  We don't want, for example, a "time" variable in the
+	 executable overriding a "time" function in a shared library.  */
+      if (newdyn
+	  && !olddyn)
+	{
+	  *skip = TRUE;
+	  return TRUE;
+	}
+
+      /* When adding a symbol from a regular object file after we have
+	 created indirect symbols, undo the indirection and any
+	 dynamic state.  */
+      if (hi != h
+	  && !newdyn
+	  && olddyn)
+	{
+	  h = hi;
+	  (*bed->elf_backend_hide_symbol) (info, h, TRUE);
+	  h->forced_local = 0;
+	  h->ref_dynamic = 0;
+	  h->def_dynamic = 0;
+	  h->dynamic_def = 0;
+	  if (h->root.u.undef.next || info->hash->undefs_tail == &h->root)
+	    {
+	      h->root.type = bfd_link_hash_undefined;
+	      h->root.u.undef.abfd = abfd;
+	    }
+	  else
+	    {
+	      h->root.type = bfd_link_hash_new;
+	      h->root.u.undef.abfd = NULL;
+	    }
+	  return TRUE;
+	}
     }
 
   /* Check TLS symbols.  We don't check undefined symbols introduced
@@ -1426,10 +1480,15 @@ _bfd_elf_merge_symbol (bfd *abfd,
      treated as strong if the new symbol is from a dynamic library.
      This reflects the way glibc's ld.so works.
 
+     Also allow a weak symbol to override a linker script symbol
+     defined by an early pass over the script.  This is done so the
+     linker knows the symbol is defined in an object file, for the
+     DEFINED script function.
+
      Do this before setting *type_change_ok or *size_change_ok so that
      we warn properly when dynamic library symbols are overridden.  */
 
-  if (newdef && !newdyn && olddyn)
+  if (newdef && !newdyn && (olddyn || h->root.ldscript_def))
     newweak = FALSE;
   if (olddef && newdyn)
     oldweak = FALSE;
@@ -1510,6 +1569,21 @@ _bfd_elf_merge_symbol (bfd *abfd,
       sec = *psec;
     }
 
+  /* There are multiple definitions of a normal symbol.  Skip the
+     default symbol as well as definition from an IR object.  */
+  if (olddef && !olddyn && !oldweak && newdef && !newdyn && !newweak
+      && !default_sym && h->def_regular
+      && !(oldbfd != NULL
+	   && (oldbfd->flags & BFD_PLUGIN) != 0
+	   && (abfd->flags & BFD_PLUGIN) == 0))
+    {
+      /* Handle a multiple definition.  */
+      (*info->callbacks->multiple_definition) (info, &h->root,
+					       abfd, sec, *pvalue);
+      *skip = TRUE;
+      return TRUE;
+    }
+
   /* If both the old and the new symbols look like common symbols in a
      dynamic object, set the size of the symbol to the larger of the
      two.  */
@@ -2357,9 +2431,9 @@ elf_link_read_relocs_from_section (bfd *
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B: bad reloc symbol index (0x%lx >= 0x%lx)"
-		   " for offset 0x%lx in section `%A'"),
-		 abfd, (unsigned long) r_symndx, (unsigned long) nsyms,
+		(_("%B: bad reloc symbol index (%#Lx >= %#lx)"
+		   " for offset %#Lx in section `%A'"),
+		 abfd, r_symndx, (unsigned long) nsyms,
 		 irela->r_offset, sec);
 	      bfd_set_error (bfd_error_bad_value);
 	      return FALSE;
@@ -2369,10 +2443,10 @@ elf_link_read_relocs_from_section (bfd *
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: non-zero symbol index (0x%lx)"
-	       " for offset 0x%lx in section `%A'"
+	    (_("%B: non-zero symbol index (%#Lx)"
+	       " for offset %#Lx in section `%A'"
 	       " when the object file has no symbol table"),
-	     abfd, (unsigned long) r_symndx, (unsigned long) nsyms,
+	     abfd, r_symndx,
 	     irela->r_offset, sec);
 	  bfd_set_error (bfd_error_bad_value);
 	  return FALSE;
@@ -2417,8 +2491,7 @@ _bfd_elf_link_read_relocs (bfd *abfd,
     {
       bfd_size_type size;
 
-      size = o->reloc_count;
-      size *= bed->s->int_rels_per_ext_rel * sizeof (Elf_Internal_Rela);
+      size = (bfd_size_type) o->reloc_count * sizeof (Elf_Internal_Rela);
       if (keep_memory)
 	internal_relocs = alloc2 = (Elf_Internal_Rela *) bfd_alloc (abfd, size);
       else
@@ -2728,26 +2801,28 @@ _bfd_elf_fix_symbol_flags (struct elf_li
   /* If this is a weak defined symbol in a dynamic object, and we know
      the real definition in the dynamic object, copy interesting flags
      over to the real definition.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
+      struct elf_link_hash_entry *def = weakdef (h);
+
       /* If the real definition is defined by a regular object file,
 	 don't do anything special.  See the longer description in
 	 _bfd_elf_adjust_dynamic_symbol, below.  */
-      if (h->u.weakdef->def_regular)
-	h->u.weakdef = NULL;
+      if (def->def_regular)
+	{
+	  h = def;
+	  while ((h = h->u.alias) != def)
+	    h->is_weakalias = 0;
+	}
       else
 	{
-	  struct elf_link_hash_entry *weakdef = h->u.weakdef;
-
 	  while (h->root.type == bfd_link_hash_indirect)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
 	  BFD_ASSERT (h->root.type == bfd_link_hash_defined
 		      || h->root.type == bfd_link_hash_defweak);
-	  BFD_ASSERT (weakdef->def_dynamic);
-	  BFD_ASSERT (weakdef->root.type == bfd_link_hash_defined
-		      || weakdef->root.type == bfd_link_hash_defweak);
-	  (*bed->elf_backend_copy_indirect_symbol) (eif->info, weakdef, h);
+	  BFD_ASSERT (def->def_dynamic);
+	  BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+	  (*bed->elf_backend_copy_indirect_symbol) (eif->info, def, h);
 	}
     }
 
@@ -2762,7 +2837,7 @@ static bfd_boolean
 _bfd_elf_adjust_dynamic_symbol (struct elf_link_hash_entry *h, void *data)
 {
   struct elf_info_failed *eif = (struct elf_info_failed *) data;
-  bfd *dynobj;
+  struct elf_link_hash_table *htab;
   const struct elf_backend_data *bed;
 
   if (! is_elf_hash_table (eif->info->hash))
@@ -2776,6 +2851,27 @@ _bfd_elf_adjust_dynamic_symbol (struct e
   if (! _bfd_elf_fix_symbol_flags (h, eif))
     return FALSE;
 
+  htab = elf_hash_table (eif->info);
+  bed = get_elf_backend_data (htab->dynobj);
+
+  if (h->root.type == bfd_link_hash_undefweak)
+    {
+      if (eif->info->dynamic_undefined_weak == 0)
+	(*bed->elf_backend_hide_symbol) (eif->info, h, TRUE);
+      else if (eif->info->dynamic_undefined_weak > 0
+	       && h->ref_regular
+	       && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+	       && !bfd_hide_sym_by_version (eif->info->version_info,
+					    h->root.root.string))
+	{
+	  if (!bfd_elf_link_record_dynamic_symbol (eif->info, h))
+	    {
+	      eif->failed = TRUE;
+	      return FALSE;
+	    }
+	}
+    }
+
   /* If this symbol does not require a PLT entry, and it is not
      defined by a dynamic object, or is not referenced by a regular
      object, ignore it.  We do have to handle a weak defined symbol,
@@ -2788,7 +2884,7 @@ _bfd_elf_adjust_dynamic_symbol (struct e
       && (h->def_regular
 	  || !h->def_dynamic
 	  || (!h->ref_regular
-	      && (h->u.weakdef == NULL || h->u.weakdef->dynindx == -1))))
+	      && (!h->is_weakalias || weakdef (h)->dynindx == -1))))
     {
       h->plt = elf_hash_table (eif->info)->init_plt_offset;
       return TRUE;
@@ -2833,15 +2929,17 @@ _bfd_elf_adjust_dynamic_symbol (struct e
      wind up at different memory locations.  The tzset call will set
      _timezone, leaving timezone unchanged.  */
 
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
+      struct elf_link_hash_entry *def = weakdef (h);
+
       /* If we get to this point, there is an implicit reference to
-	 H->U.WEAKDEF by a regular object file via the weak symbol H.  */
-      h->u.weakdef->ref_regular = 1;
+	 the alias by a regular object file via the weak symbol H.  */
+      def->ref_regular = 1;
 
       /* Ensure that the backend adjust_dynamic_symbol function sees
-	 H->U.WEAKDEF before H by recursively calling ourselves.  */
-      if (! _bfd_elf_adjust_dynamic_symbol (h->u.weakdef, eif))
+	 the strong alias before H by recursively calling ourselves.  */
+      if (!_bfd_elf_adjust_dynamic_symbol (def, eif))
 	return FALSE;
     }
 
@@ -2857,9 +2955,6 @@ _bfd_elf_adjust_dynamic_symbol (struct e
       (_("warning: type and size of dynamic symbol `%s' are not defined"),
        h->root.root.string);
 
-  dynobj = elf_hash_table (eif->info)->dynobj;
-  bed = get_elf_backend_data (dynobj);
-
   if (! (*bed->elf_backend_adjust_dynamic_symbol) (eif->info, h))
     {
       eif->failed = TRUE;
@@ -2881,7 +2976,7 @@ _bfd_elf_adjust_dynamic_copy (struct bfd
   bfd_vma mask;
   asection *sec = h->root.u.def.section;
 
-  /* The section aligment of definition is the maximum alignment
+  /* The section alignment of the definition is the maximum alignment
      requirement of symbols defined in the section.  Since we don't
      know the symbol alignment requirement, we start with the
      maximum alignment and check low bits of the symbol address
@@ -3018,10 +3113,10 @@ _bfd_elf_dynamic_symbol_p (struct elf_li
    to resolve local to the current module, and false otherwise.  Differs
    from (the inverse of) _bfd_elf_dynamic_symbol_p in the treatment of
    undefined symbols.  The two functions are virtually identical except
-   for the place where forced_local and dynindx == -1 are tested.  If
-   either of those tests are true, _bfd_elf_dynamic_symbol_p will say
-   the symbol is local, while _bfd_elf_symbol_refs_local_p will say
-   the symbol is local only for defined symbols.
+   for the place where dynindx == -1 is tested.  If that test is true,
+   _bfd_elf_dynamic_symbol_p will say the symbol is local, while
+   _bfd_elf_symbol_refs_local_p will say the symbol is local only for
+   defined symbols.
    It might seem that _bfd_elf_dynamic_symbol_p could be rewritten as
    !_bfd_elf_symbol_refs_local_p, except that targets differ in their
    treatment of undefined weak symbols.  For those that do not make
@@ -3044,6 +3139,10 @@ _bfd_elf_symbol_refs_local_p (struct elf
       || ELF_ST_VISIBILITY (h->other) == STV_INTERNAL)
     return TRUE;
 
+  /* Forced local symbols resolve locally.  */
+  if (h->forced_local)
+    return TRUE;
+
   /* Common symbols that become definitions don't get the DEF_REGULAR
      flag set, so test it first, and don't bail out.  */
   if (ELF_COMMON_DEF_P (h))
@@ -3053,11 +3152,7 @@ _bfd_elf_symbol_refs_local_p (struct elf
   else if (!h->def_regular)
     return FALSE;
 
-  /* Forced local symbols resolve locally.  */
-  if (h->forced_local)
-    return TRUE;
-
-  /* As do non-dynamic symbols.  */
+  /* Non-dynamic symbols resolve locally.  */
   if (h->dynindx == -1)
     return TRUE;
 
@@ -3806,6 +3901,7 @@ elf_link_add_object_symbols (bfd *abfd, 
       if (!just_syms
 	  && (bfd_link_pic (info)
 	      || (!bfd_link_relocatable (info)
+		  && info->nointerp
 		  && (info->export_dynamic || info->dynamic)))
 	  && is_elf_hash_table (htab)
 	  && info->output_bfd->xvec == abfd->xvec
@@ -4183,7 +4279,6 @@ error_free_dyn:
       bfd_boolean definition;
       bfd_boolean size_change_ok;
       bfd_boolean type_change_ok;
-      bfd_boolean new_weakdef;
       bfd_boolean new_weak;
       bfd_boolean old_weak;
       bfd_boolean override;
@@ -4199,6 +4294,12 @@ error_free_dyn:
       sec = NULL;
       value = isym->st_value;
       common = bed->common_definition (isym);
+      if (common && info->inhibit_common_definition)
+	{
+	  /* Treat common symbol as undefined for --no-define-common.  */
+	  isym->st_shndx = SHN_UNDEF;
+	  common = FALSE;
+	}
       discarded = FALSE;
 
       bind = ELF_ST_BIND (isym->st_info);
@@ -4509,29 +4610,27 @@ error_free_dyn:
       *sym_hash = h;
 
       new_weak = (flags & BSF_WEAK) != 0;
-      new_weakdef = FALSE;
       if (dynamic
 	  && definition
 	  && new_weak
 	  && !bed->is_function_type (ELF_ST_TYPE (isym->st_info))
 	  && is_elf_hash_table (htab)
-	  && h->u.weakdef == NULL)
+	  && h->u.alias == NULL)
 	{
 	  /* Keep a list of all weak defined non function symbols from
-	     a dynamic object, using the weakdef field.  Later in this
-	     function we will set the weakdef field to the correct
+	     a dynamic object, using the alias field.  Later in this
+	     function we will set the alias field to the correct
 	     value.  We only put non-function symbols from dynamic
 	     objects on this list, because that happens to be the only
 	     time we need to know the normal symbol corresponding to a
 	     weak symbol, and the information is time consuming to
-	     figure out.  If the weakdef field is not already NULL,
+	     figure out.  If the alias field is not already NULL,
 	     then this symbol was already defined by some previous
 	     dynamic object, and we will be using that previous
 	     definition anyhow.  */
 
-	  h->u.weakdef = weaks;
+	  h->u.alias = weaks;
 	  weaks = h;
-	  new_weakdef = TRUE;
 	}
 
       /* Set the alignment of a common symbol.  */
@@ -4610,9 +4709,8 @@ error_free_dyn:
 	      if ((h == hi || !hi->forced_local)
 		  && (h->def_regular
 		      || h->ref_regular
-		      || (h->u.weakdef != NULL
-			  && ! new_weakdef
-			  && h->u.weakdef->dynindx != -1)))
+		      || (h->is_weakalias
+			  && weakdef (h)->dynindx != -1)))
 		dynsym = TRUE;
 	    }
 
@@ -4697,9 +4795,8 @@ error_free_dyn:
 		_bfd_error_handler
 		  /* xgettext:c-format */
 		  (_("Warning: size of symbol `%s' changed"
-		     " from %lu in %B to %lu in %B"),
-		   name, (unsigned long) h->size, old_bfd,
-		   (unsigned long) isym->st_size, abfd);
+		     " from %Lu in %B to %Lu in %B"),
+		   name, h->size, old_bfd, isym->st_size, abfd);
 
 	      h->size = isym->st_size;
 	    }
@@ -4782,11 +4879,10 @@ error_free_dyn:
 	    {
 	      if (! bfd_elf_link_record_dynamic_symbol (info, h))
 		goto error_free_vers;
-	      if (h->u.weakdef != NULL
-		  && ! new_weakdef
-		  && h->u.weakdef->dynindx == -1)
+	      if (h->is_weakalias
+		  && weakdef (h)->dynindx == -1)
 		{
-		  if (!bfd_elf_link_record_dynamic_symbol (info, h->u.weakdef))
+		  if (!bfd_elf_link_record_dynamic_symbol (info, weakdef (h)))
 		    goto error_free_vers;
 		}
 	    }
@@ -4852,6 +4948,65 @@ error_free_dyn:
 	}
     }
 
+  if (info->lto_plugin_active
+      && !bfd_link_relocatable (info)
+      && (abfd->flags & BFD_PLUGIN) == 0
+      && !just_syms
+      && extsymcount)
+    {
+      int r_sym_shift;
+
+      if (bed->s->arch_size == 32)
+	r_sym_shift = 8;
+      else
+	r_sym_shift = 32;
+
+      /* If linker plugin is enabled, set non_ir_ref_regular on symbols
+	 referenced in regular objects so that linker plugin will get
+	 the correct symbol resolution.  */
+
+      sym_hash = elf_sym_hashes (abfd);
+      for (s = abfd->sections; s != NULL; s = s->next)
+	{
+	  Elf_Internal_Rela *internal_relocs;
+	  Elf_Internal_Rela *rel, *relend;
+
+	  /* Don't check relocations in excluded sections.  */
+	  if ((s->flags & SEC_RELOC) == 0
+	      || s->reloc_count == 0
+	      || (s->flags & SEC_EXCLUDE) != 0
+	      || ((info->strip == strip_all
+		   || info->strip == strip_debugger)
+		  && (s->flags & SEC_DEBUGGING) != 0))
+	    continue;
+
+	  internal_relocs = _bfd_elf_link_read_relocs (abfd, s, NULL,
+						       NULL,
+						       info->keep_memory);
+	  if (internal_relocs == NULL)
+	    goto error_free_vers;
+
+	  rel = internal_relocs;
+	  relend = rel + s->reloc_count;
+	  for ( ; rel < relend; rel++)
+	    {
+	      unsigned long r_symndx = rel->r_info >> r_sym_shift;
+	      struct elf_link_hash_entry *h;
+
+	      /* Skip local symbols.  */
+	      if (r_symndx < extsymoff)
+		continue;
+
+	      h = sym_hash[r_symndx - extsymoff];
+	      if (h != NULL)
+		h->root.non_ir_ref_regular = 1;
+	    }
+
+	  if (elf_section_data (s)->relocs != internal_relocs)
+	    free (internal_relocs);
+	}
+    }
+
   if (extversym != NULL)
     {
       free (extversym);
@@ -4887,6 +5042,7 @@ error_free_dyn:
 	  struct elf_link_hash_entry *h;
 	  bfd_size_type size;
 	  unsigned int alignment_power;
+	  unsigned int non_ir_ref_dynamic;
 
 	  for (p = htab->root.table.table[i]; p != NULL; p = p->next)
 	    {
@@ -4908,6 +5064,10 @@ error_free_dyn:
 		  size = 0;
 		  alignment_power = 0;
 		}
+	      /* Preserve non_ir_ref_dynamic so that this symbol
+		 will be exported when the dynamic lib becomes needed
+		 in the second pass.  */
+	      non_ir_ref_dynamic = h->root.non_ir_ref_dynamic;
 	      memcpy (p, old_ent, htab->root.table.entsize);
 	      old_ent = (char *) old_ent + htab->root.table.entsize;
 	      h = (struct elf_link_hash_entry *) p;
@@ -4924,6 +5084,7 @@ error_free_dyn:
 		  if (alignment_power > h->root.u.c.p->alignment_power)
 		    h->root.u.c.p->alignment_power = alignment_power;
 		}
+	      h->root.non_ir_ref_dynamic = non_ir_ref_dynamic;
 	    }
 	}
 
@@ -5000,7 +5161,7 @@ error_free_dyn:
       nondeflt_vers = NULL;
     }
 
-  /* Now set the weakdefs field correctly for all the weak defined
+  /* Now set the alias field correctly for all the weak defined
      symbols we found.  The only way to do this is to search all the
      symbols.  Since we only need the information for non functions in
      dynamic objects, that's the only time we actually put anything on
@@ -5058,13 +5219,13 @@ error_free_dyn:
 	  size_t i, j, idx = 0;
 
 	  hlook = weaks;
-	  weaks = hlook->u.weakdef;
-	  hlook->u.weakdef = NULL;
+	  weaks = hlook->u.alias;
+	  hlook->u.alias = NULL;
+
+	  if (hlook->root.type != bfd_link_hash_defined
+	      && hlook->root.type != bfd_link_hash_defweak)
+	    continue;
 
-	  BFD_ASSERT (hlook->root.type == bfd_link_hash_defined
-		      || hlook->root.type == bfd_link_hash_defweak
-		      || hlook->root.type == bfd_link_hash_common
-		      || hlook->root.type == bfd_link_hash_indirect);
 	  slook = hlook->root.u.def.section;
 	  vlook = hlook->root.u.def.value;
 
@@ -5121,7 +5282,15 @@ error_free_dyn:
 		break;
 	      else if (h != hlook)
 		{
-		  hlook->u.weakdef = h;
+		  struct elf_link_hash_entry *t;
+
+		  hlook->u.alias = h;
+		  hlook->is_weakalias = 1;
+		  t = h;
+		  if (t->u.alias != NULL)
+		    while (t->u.alias != h)
+		      t = t->u.alias;
+		  t->u.alias = hlook;
 
 		  /* If the weak definition is in the list of dynamic
 		     symbols, make sure the real definition is put
@@ -5158,10 +5327,6 @@ error_free_dyn:
       && !(*bed->check_directives) (abfd, info))
     return FALSE;
 
-  if (!info->check_relocs_after_open_input
-      && !_bfd_elf_link_check_relocs (abfd, info))
-    return FALSE;
-
   /* If this is a non-traditional link, try to optimize the handling
      of the .stab/.stabstr sections.  */
   if (! dynamic
@@ -5804,9 +5969,12 @@ bfd_boolean
 _bfd_elf_size_group_sections (struct bfd_link_info *info)
 {
   bfd *ibfd;
+  asection *s;
 
   for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next)
     if (bfd_get_flavour (ibfd) == bfd_target_elf_flavour
+	&& (s = ibfd->sections) != NULL
+	&& s->sec_info_type != SEC_INFO_TYPE_JUST_SYMS
 	&& !_bfd_elf_fixup_group_sections (ibfd, bfd_abs_section_ptr))
       return FALSE;
   return TRUE;
@@ -5921,14 +6089,11 @@ bfd_elf_size_dynamic_sections (bfd *outp
 			       struct bfd_link_info *info,
 			       asection **sinterpptr)
 {
-  size_t soname_indx;
   bfd *dynobj;
   const struct elf_backend_data *bed;
 
   *sinterpptr = NULL;
 
-  soname_indx = (size_t) -1;
-
   if (!is_elf_hash_table (info->hash))
     return TRUE;
 
@@ -5940,18 +6105,18 @@ bfd_elf_size_dynamic_sections (bfd *outp
       struct elf_info_failed asvinfo;
       struct bfd_elf_version_tree *t;
       struct bfd_elf_version_expr *d;
-      struct elf_info_failed eif;
-      bfd_boolean all_defined;
       asection *s;
-
-      eif.info = info;
-      eif.failed = FALSE;
+      size_t soname_indx;
 
       /* If we are supposed to export all symbols into the dynamic symbol
 	 table (this is not the normal case), then do so.  */
       if (info->export_dynamic
 	  || (bfd_link_executable (info) && info->dynamic))
 	{
+	  struct elf_info_failed eif;
+
+	  eif.info = info;
+	  eif.failed = FALSE;
 	  elf_link_hash_traverse (elf_hash_table (info),
 				  _bfd_elf_export_symbol,
 				  &eif);
@@ -5959,6 +6124,17 @@ bfd_elf_size_dynamic_sections (bfd *outp
 	    return FALSE;
 	}
 
+      if (soname != NULL)
+	{
+	  soname_indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr,
+					     soname, TRUE);
+	  if (soname_indx == (size_t) -1
+	      || !_bfd_elf_add_dynamic_entry (info, DT_SONAME, soname_indx))
+	    return FALSE;
+	}
+      else
+	soname_indx = (size_t) -1;
+
       /* Make all global versions with definition.  */
       for (t = info->version_info; t != NULL; t = t->next)
 	for (d = t->globals.list; d != NULL; d = d->next)
@@ -6024,7 +6200,7 @@ bfd_elf_size_dynamic_sections (bfd *outp
       if (!info->allow_undefined_version)
 	{
 	  /* Check if all global versions have a definition.  */
-	  all_defined = TRUE;
+	  bfd_boolean all_defined = TRUE;
 	  for (t = info->version_info; t != NULL; t = t->next)
 	    for (d = t->globals.list; d != NULL; d = d->next)
 	      if (d->literal && !d->symver && !d->script)
@@ -6277,129 +6453,128 @@ bfd_elf_size_dynamic_sections (bfd *outp
 
 	  elf_tdata (output_bfd)->cverdefs = cdefs;
 	}
+    }
 
-      /* Work out the size of the version reference section.  */
+  bed = get_elf_backend_data (output_bfd);
 
-      s = bfd_get_linker_section (dynobj, ".gnu.version_r");
-      BFD_ASSERT (s != NULL);
-      {
-	struct elf_find_verdep_info sinfo;
+  if (info->gc_sections && bed->can_gc_sections)
+    {
+      struct elf_gc_sweep_symbol_info sweep_info;
 
-	sinfo.info = info;
-	sinfo.vers = elf_tdata (output_bfd)->cverdefs;
-	if (sinfo.vers == 0)
-	  sinfo.vers = 1;
-	sinfo.failed = FALSE;
+      /* Remove the symbols that were in the swept sections from the
+	 dynamic symbol table.  */
+      sweep_info.info = info;
+      sweep_info.hide_symbol = bed->elf_backend_hide_symbol;
+      elf_link_hash_traverse (elf_hash_table (info), elf_gc_sweep_symbol,
+			      &sweep_info);
+    }
 
-	elf_link_hash_traverse (elf_hash_table (info),
-				_bfd_elf_link_find_version_dependencies,
-				&sinfo);
-	if (sinfo.failed)
-	  return FALSE;
+  if (dynobj != NULL && elf_hash_table (info)->dynamic_sections_created)
+    {
+      asection *s;
+      struct elf_find_verdep_info sinfo;
 
-	if (elf_tdata (output_bfd)->verref == NULL)
-	  s->flags |= SEC_EXCLUDE;
-	else
-	  {
-	    Elf_Internal_Verneed *vn;
-	    unsigned int size;
-	    unsigned int crefs;
-	    bfd_byte *p;
-
-	    /* Build the version dependency section.  */
-	    size = 0;
-	    crefs = 0;
-	    for (vn = elf_tdata (output_bfd)->verref;
-		 vn != NULL;
-		 vn = vn->vn_nextref)
-	      {
-		Elf_Internal_Vernaux *a;
+      /* Work out the size of the version reference section.  */
 
-		size += sizeof (Elf_External_Verneed);
-		++crefs;
-		for (a = vn->vn_auxptr; a != NULL; a = a->vna_nextptr)
-		  size += sizeof (Elf_External_Vernaux);
-	      }
+      s = bfd_get_linker_section (dynobj, ".gnu.version_r");
+      BFD_ASSERT (s != NULL);
 
-	    s->size = size;
-	    s->contents = (unsigned char *) bfd_alloc (output_bfd, s->size);
-	    if (s->contents == NULL)
-	      return FALSE;
+      sinfo.info = info;
+      sinfo.vers = elf_tdata (output_bfd)->cverdefs;
+      if (sinfo.vers == 0)
+	sinfo.vers = 1;
+      sinfo.failed = FALSE;
 
-	    p = s->contents;
-	    for (vn = elf_tdata (output_bfd)->verref;
-		 vn != NULL;
-		 vn = vn->vn_nextref)
-	      {
-		unsigned int caux;
-		Elf_Internal_Vernaux *a;
-		size_t indx;
-
-		caux = 0;
-		for (a = vn->vn_auxptr; a != NULL; a = a->vna_nextptr)
-		  ++caux;
-
-		vn->vn_version = VER_NEED_CURRENT;
-		vn->vn_cnt = caux;
-		indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr,
-					    elf_dt_name (vn->vn_bfd) != NULL
-					    ? elf_dt_name (vn->vn_bfd)
-					    : lbasename (vn->vn_bfd->filename),
-					    FALSE);
-		if (indx == (size_t) -1)
-		  return FALSE;
-		vn->vn_file = indx;
-		vn->vn_aux = sizeof (Elf_External_Verneed);
-		if (vn->vn_nextref == NULL)
-		  vn->vn_next = 0;
-		else
-		  vn->vn_next = (sizeof (Elf_External_Verneed)
-				+ caux * sizeof (Elf_External_Vernaux));
+      elf_link_hash_traverse (elf_hash_table (info),
+			      _bfd_elf_link_find_version_dependencies,
+			      &sinfo);
+      if (sinfo.failed)
+	return FALSE;
 
-		_bfd_elf_swap_verneed_out (output_bfd, vn,
-					   (Elf_External_Verneed *) p);
-		p += sizeof (Elf_External_Verneed);
+      if (elf_tdata (output_bfd)->verref == NULL)
+	s->flags |= SEC_EXCLUDE;
+      else
+	{
+	  Elf_Internal_Verneed *vn;
+	  unsigned int size;
+	  unsigned int crefs;
+	  bfd_byte *p;
 
-		for (a = vn->vn_auxptr; a != NULL; a = a->vna_nextptr)
-		  {
-		    a->vna_hash = bfd_elf_hash (a->vna_nodename);
-		    indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr,
-						a->vna_nodename, FALSE);
-		    if (indx == (size_t) -1)
-		      return FALSE;
-		    a->vna_name = indx;
-		    if (a->vna_nextptr == NULL)
-		      a->vna_next = 0;
-		    else
-		      a->vna_next = sizeof (Elf_External_Vernaux);
+	  /* Build the version dependency section.  */
+	  size = 0;
+	  crefs = 0;
+	  for (vn = elf_tdata (output_bfd)->verref;
+	       vn != NULL;
+	       vn = vn->vn_nextref)
+	    {
+	      Elf_Internal_Vernaux *a;
+
+	      size += sizeof (Elf_External_Verneed);
+	      ++crefs;
+	      for (a = vn->vn_auxptr; a != NULL; a = a->vna_nextptr)
+		size += sizeof (Elf_External_Vernaux);
+	    }
 
-		    _bfd_elf_swap_vernaux_out (output_bfd, a,
-					       (Elf_External_Vernaux *) p);
-		    p += sizeof (Elf_External_Vernaux);
-		  }
-	      }
+	  s->size = size;
+	  s->contents = (unsigned char *) bfd_alloc (output_bfd, s->size);
+	  if (s->contents == NULL)
+	    return FALSE;
 
-	    elf_tdata (output_bfd)->cverrefs = crefs;
-	  }
-      }
-    }
+	  p = s->contents;
+	  for (vn = elf_tdata (output_bfd)->verref;
+	       vn != NULL;
+	       vn = vn->vn_nextref)
+	    {
+	      unsigned int caux;
+	      Elf_Internal_Vernaux *a;
+	      size_t indx;
 
-  bed = get_elf_backend_data (output_bfd);
+	      caux = 0;
+	      for (a = vn->vn_auxptr; a != NULL; a = a->vna_nextptr)
+		++caux;
 
-  if (info->gc_sections && bed->can_gc_sections)
-    {
-      struct elf_gc_sweep_symbol_info sweep_info;
-      unsigned long section_sym_count;
+	      vn->vn_version = VER_NEED_CURRENT;
+	      vn->vn_cnt = caux;
+	      indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr,
+					  elf_dt_name (vn->vn_bfd) != NULL
+					  ? elf_dt_name (vn->vn_bfd)
+					  : lbasename (vn->vn_bfd->filename),
+					  FALSE);
+	      if (indx == (size_t) -1)
+		return FALSE;
+	      vn->vn_file = indx;
+	      vn->vn_aux = sizeof (Elf_External_Verneed);
+	      if (vn->vn_nextref == NULL)
+		vn->vn_next = 0;
+	      else
+		vn->vn_next = (sizeof (Elf_External_Verneed)
+			       + caux * sizeof (Elf_External_Vernaux));
 
-      /* Remove the symbols that were in the swept sections from the
-	 dynamic symbol table.  GCFIXME: Anyone know how to get them
-	 out of the static symbol table as well?  */
-      sweep_info.info = info;
-      sweep_info.hide_symbol = bed->elf_backend_hide_symbol;
-      elf_link_hash_traverse (elf_hash_table (info), elf_gc_sweep_symbol,
-			      &sweep_info);
+	      _bfd_elf_swap_verneed_out (output_bfd, vn,
+					 (Elf_External_Verneed *) p);
+	      p += sizeof (Elf_External_Verneed);
+
+	      for (a = vn->vn_auxptr; a != NULL; a = a->vna_nextptr)
+		{
+		  a->vna_hash = bfd_elf_hash (a->vna_nodename);
+		  indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr,
+					      a->vna_nodename, FALSE);
+		  if (indx == (size_t) -1)
+		    return FALSE;
+		  a->vna_name = indx;
+		  if (a->vna_nextptr == NULL)
+		    a->vna_next = 0;
+		  else
+		    a->vna_next = sizeof (Elf_External_Vernaux);
 
-      _bfd_elf_link_renumber_dynsyms (output_bfd, info, &section_sym_count);
+		  _bfd_elf_swap_vernaux_out (output_bfd, a,
+					     (Elf_External_Vernaux *) p);
+		  p += sizeof (Elf_External_Vernaux);
+		}
+	    }
+
+	  elf_tdata (output_bfd)->cverrefs = crefs;
+	}
     }
 
   /* Any syms created from now on start with -1 in
@@ -6440,6 +6615,10 @@ bfd_elf_size_dynamic_sections (bfd *outp
 	  if (inputobj->flags
 	      & (DYNAMIC | EXEC_P | BFD_PLUGIN | BFD_LINKER_CREATED))
 	    continue;
+	  s = inputobj->sections;
+	  if (s == NULL || s->sec_info_type == SEC_INFO_TYPE_JUST_SYMS)
+	    continue;
+
 	  s = bfd_get_section_by_name (inputobj, ".note.GNU-stack");
 	  if (s)
 	    {
@@ -6467,15 +6646,6 @@ bfd_elf_size_dynamic_sections (bfd *outp
       *sinterpptr = bfd_get_linker_section (dynobj, ".interp");
       BFD_ASSERT (*sinterpptr != NULL || !bfd_link_executable (info) || info->nointerp);
 
-      if (soname != NULL)
-	{
-	  soname_indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr,
-					     soname, TRUE);
-	  if (soname_indx == (size_t) -1
-	      || !_bfd_elf_add_dynamic_entry (info, DT_SONAME, soname_indx))
-	    return FALSE;
-	}
-
       if (info->symbolic)
 	{
 	  if (!_bfd_elf_add_dynamic_entry (info, DT_SYMBOLIC, 0))
@@ -6598,9 +6768,10 @@ bfd_elf_size_dynamic_sections (bfd *outp
 	      bfd *sub;
 	      asection *o;
 
-	      for (sub = info->input_bfds; sub != NULL;
-		   sub = sub->link.next)
-		if (bfd_get_flavour (sub) == bfd_target_elf_flavour)
+	      for (sub = info->input_bfds; sub != NULL; sub = sub->link.next)
+		if (bfd_get_flavour (sub) == bfd_target_elf_flavour
+		    && (o = sub->sections) != NULL
+		    && o->sec_info_type != SEC_INFO_TYPE_JUST_SYMS)
 		  for (o = sub->sections; o != NULL; o = o->next)
 		    if (elf_section_data (o)->this_hdr.sh_type
 			== SHT_PREINIT_ARRAY)
@@ -6669,8 +6840,6 @@ bfd_elf_size_dynamic_sections (bfd *outp
 
   if (dynobj != NULL && elf_hash_table (info)->dynamic_sections_created)
     {
-      unsigned long section_sym_count;
-
       if (elf_tdata (output_bfd)->cverdefs)
 	{
 	  unsigned int crefs = elf_tdata (output_bfd)->cverdefs;
@@ -6712,8 +6881,7 @@ bfd_elf_size_dynamic_sections (bfd *outp
 
       if ((elf_tdata (output_bfd)->cverrefs == 0
 	   && elf_tdata (output_bfd)->cverdefs == 0)
-	  || _bfd_elf_link_renumber_dynsyms (output_bfd, info,
-					     &section_sym_count) == 0)
+	  || _bfd_elf_link_renumber_dynsyms (output_bfd, info, NULL) <= 1)
 	{
 	  asection *s;
 
@@ -6775,6 +6943,8 @@ bfd_boolean
 bfd_elf_size_dynsym_hash_dynstr (bfd *output_bfd, struct bfd_link_info *info)
 {
   const struct elf_backend_data *bed;
+  unsigned long section_sym_count;
+  bfd_size_type dynsymcount = 0;
 
   if (!is_elf_hash_table (info->hash))
     return TRUE;
@@ -6782,24 +6952,30 @@ bfd_elf_size_dynsym_hash_dynstr (bfd *ou
   bed = get_elf_backend_data (output_bfd);
   (*bed->elf_backend_init_index_section) (output_bfd, info);
 
+  /* Assign dynsym indices.  In a shared library we generate a section
+     symbol for each output section, which come first.  Next come all
+     of the back-end allocated local dynamic syms, followed by the rest
+     of the global symbols.
+
+     This is usually not needed for static binaries, however backends
+     can request to always do it, e.g. the MIPS backend uses dynamic
+     symbol counts to lay out GOT, which will be produced in the
+     presence of GOT relocations even in static binaries (holding fixed
+     data in that case, to satisfy those relocations).  */
+
+  if (elf_hash_table (info)->dynamic_sections_created
+      || bed->always_renumber_dynsyms)
+    dynsymcount = _bfd_elf_link_renumber_dynsyms (output_bfd, info,
+						  &section_sym_count);
+
   if (elf_hash_table (info)->dynamic_sections_created)
     {
       bfd *dynobj;
       asection *s;
-      bfd_size_type dynsymcount;
-      unsigned long section_sym_count;
       unsigned int dtagcount;
 
       dynobj = elf_hash_table (info)->dynobj;
 
-      /* Assign dynsym indicies.  In a shared library we generate a
-	 section symbol for each output section, which come first.
-	 Next come all of the back-end allocated local dynamic syms,
-	 followed by the rest of the global symbols.  */
-
-      dynsymcount = _bfd_elf_link_renumber_dynsyms (output_bfd, info,
-						    &section_sym_count);
-
       /* Work out the size of the symbol version section.  */
       s = bfd_get_linker_section (dynobj, ".gnu.version");
       BFD_ASSERT (s != NULL);
@@ -6870,7 +7046,7 @@ bfd_elf_size_dynsym_hash_dynstr (bfd *ou
 	    = compute_bucket_count (info, hashcodes, nsyms, 0);
 	  free (hashcodes);
 
-	  if (bucketcount == 0)
+	  if (bucketcount == 0 && nsyms > 0)
 	    return FALSE;
 
 	  elf_hash_table (info)->bucketcount = bucketcount;
@@ -7230,9 +7406,10 @@ _bfd_elf_link_hash_hide_symbol (struct b
       h->forced_local = 1;
       if (h->dynindx != -1)
 	{
-	  h->dynindx = -1;
 	  _bfd_elf_strtab_delref (elf_hash_table (info)->dynstr,
 				  h->dynstr_index);
+	  h->dynindx = -1;
+	  h->dynstr_index = 0;
 	}
     }
 }
@@ -7871,12 +8048,12 @@ struct elf_outext_info
    addend field.  The symbol mangling format is:
 
    <node> := <literal>
-          |  <unary-operator> ':' <node>
-          |  <binary-operator> ':' <node> ':' <node>
+	  |  <unary-operator> ':' <node>
+	  |  <binary-operator> ':' <node> ':' <node>
 	  ;
 
    <literal> := 's' <digits=N> ':' <N character symbol name>
-             |  'S' <digits=N> ':' <N character section name>
+	     |  'S' <digits=N> ':' <N character section name>
 	     |  '#' <hexdigits>
 	     ;
 
@@ -7993,7 +8170,7 @@ resolve_symbol (const char *name,
 /* Looks up NAME in SECTIONS.  If found sets RESULT to NAME's address (in
    bytes) and returns TRUE, otherwise returns FALSE.  Accepts pseudo-section
    names like "foo.end" which is the end address of section "foo".  */
-   
+
 static bfd_boolean
 resolve_section (const char *name,
 		 asection *sections,
@@ -8305,8 +8482,8 @@ decode_complex_addend (unsigned long *st
 		       unsigned long *trunc_p,
 		       unsigned long encoded)
 {
-  * start     =  encoded        & 0x3F;
-  * len       = (encoded >>  6) & 0x3F;
+  * start     =	 encoded	& 0x3F;
+  * len	      = (encoded >>  6) & 0x3F;
   * oplen     = (encoded >> 12) & 0x3F;
   * wordsz    = (encoded >> 18) & 0xF;
   * chunksz   = (encoded >> 22) & 0xF;
@@ -8476,7 +8653,8 @@ static bfd_boolean
 elf_link_adjust_relocs (bfd *abfd,
 			asection *sec,
 			struct bfd_elf_section_reloc_data *reldata,
-			bfd_boolean sort)
+			bfd_boolean sort,
+			struct bfd_link_info *info)
 {
   unsigned int i;
   const struct elf_backend_data *bed = get_elf_backend_data (abfd);
@@ -8524,6 +8702,19 @@ elf_link_adjust_relocs (bfd *abfd,
       if (*rel_hash == NULL)
 	continue;
 
+      if ((*rel_hash)->indx == -2
+	  && info->gc_sections
+	  && ! info->gc_keep_exported)
+	{
+	  /* PR 21524: Let the user know if a symbol was removed by garbage collection.  */
+	  _bfd_error_handler (_("%B:%A: error: relocation references symbol %s which was removed by garbage collection."),
+			      abfd, sec,
+			      (*rel_hash)->root.root.string);
+	  _bfd_error_handler (_("%B:%A: error: try relinking with --gc-keep-exported enabled."),
+			      abfd, sec);
+	  bfd_set_error (bfd_error_invalid_operation);
+	  return FALSE;
+	}
       BFD_ASSERT ((*rel_hash)->indx >= 0);
 
       (*swap_in) (abfd, erela, irela);
@@ -8753,7 +8944,7 @@ elf_link_sort_relocs (bfd *abfd, struct 
 		else
 		  {
 		    /* Section size is only divisible by rela.  */
-		    if (use_rela_initialised && (use_rela == FALSE))
+		    if (use_rela_initialised && !use_rela)
 		      {
 			_bfd_error_handler (_("%B: Unable to sort relocs - "
 					      "they are in more than one size"),
@@ -8771,7 +8962,7 @@ elf_link_sort_relocs (bfd *abfd, struct 
 	    else if ((o->size % bed->s->sizeof_rel) == 0)
 	      {
 		/* Section size is only divisible by rel.  */
-		if (use_rela_initialised && (use_rela == TRUE))
+		if (use_rela_initialised && use_rela)
 		  {
 		    _bfd_error_handler (_("%B: Unable to sort relocs - "
 					  "they are in more than one size"),
@@ -8810,7 +9001,7 @@ elf_link_sort_relocs (bfd *abfd, struct 
 		else
 		  {
 		    /* Section size is only divisible by rela.  */
-		    if (use_rela_initialised && (use_rela == FALSE))
+		    if (use_rela_initialised && !use_rela)
 		      {
 			_bfd_error_handler (_("%B: Unable to sort relocs - "
 					      "they are in more than one size"),
@@ -8828,7 +9019,7 @@ elf_link_sort_relocs (bfd *abfd, struct 
 	    else if ((o->size % bed->s->sizeof_rel) == 0)
 	      {
 		/* Section size is only divisible by rel.  */
-		if (use_rela_initialised && (use_rela == TRUE))
+		if (use_rela_initialised && use_rela)
 		  {
 		    _bfd_error_handler (_("%B: Unable to sort relocs - "
 					  "they are in more than one size"),
@@ -9809,8 +10000,11 @@ elf_link_output_extsym (struct bfd_hash_
      relocatable output or when needed for --emit-relocs.  */
   else if (input_sec == bfd_und_section_ptr
 	   && h->indx != -2
+	   /* PR 22319 Do not strip global undefined symbols marked as being needed.  */
+	   && (h->mark != 1 || ELF_ST_BIND (sym.st_info) != STB_GLOBAL)
 	   && !bfd_link_relocatable (flinfo->info))
     return TRUE;
+
   /* Also strip others that we couldn't earlier due to dynamic symbol
      processing.  */
   if (strip)
@@ -10206,7 +10400,7 @@ elf_link_input_bfd (struct elf_final_lin
 	  continue;
 	}
 
-      if (bfd_link_relocatable (flinfo->info)
+      if (!flinfo->info->resolve_section_groups
 	  && (o->flags & (SEC_LINKER_CREATED | SEC_GROUP)) == SEC_GROUP)
 	{
 	  /* Deal with the group signature symbol.  */
@@ -10214,6 +10408,7 @@ elf_link_input_bfd (struct elf_final_lin
 	  unsigned long symndx = sec_data->this_hdr.sh_info;
 	  asection *osec = o->output_section;
 
+	  BFD_ASSERT (bfd_link_relocatable (flinfo->info));
 	  if (symndx >= locsymcount
 	      || (elf_bad_symtab (input_bfd)
 		  && flinfo->sections[symndx] == NULL))
@@ -10330,14 +10525,15 @@ elf_link_input_bfd (struct elf_final_lin
 				 ".fini_array") == 0))
 	      && (o->name[6] == 0 || o->name[6] == '.'))
 	    {
-	      if (o->size != o->reloc_count * address_size)
+	      if (o->size * bed->s->int_rels_per_ext_rel
+		  != o->reloc_count * address_size)
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
 		    (_("error: %B: size of section %A is not "
 		       "multiple of address size"),
 		     input_bfd, o);
-		  bfd_set_error (bfd_error_on_input);
+		  bfd_set_error (bfd_error_bad_value);
 		  return FALSE;
 		}
 	      o->flags |= SEC_ELF_REVERSE_COPY;
@@ -10354,7 +10550,7 @@ elf_link_input_bfd (struct elf_final_lin
 	     relocs against removed link-once sections.  */
 
 	  rel = internal_relocs;
-	  relend = rel + o->reloc_count * bed->s->int_rels_per_ext_rel;
+	  relend = rel + o->reloc_count;
 	  for ( ; rel < relend; rel++)
 	    {
 	      unsigned long r_symndx = rel->r_info >> r_sym_shift;
@@ -10377,14 +10573,11 @@ elf_link_input_bfd (struct elf_final_lin
 		     we do not seg fault.  */
 		  if (h == NULL)
 		    {
-		      char buffer [32];
-
-		      sprintf_vma (buffer, rel->r_info);
 		      _bfd_error_handler
 			/* xgettext:c-format */
-			(_("error: %B contains a reloc (0x%s) for section %A "
+			(_("error: %B contains a reloc (%#Lx) for section %A "
 			   "that references a non-existent global symbol"),
-			 input_bfd, buffer, o);
+			 input_bfd, rel->r_info, o);
 		      bfd_set_error (bfd_error_bad_value);
 		      return FALSE;
 		    }
@@ -10400,7 +10593,8 @@ elf_link_input_bfd (struct elf_final_lin
 		     linker may attach linker created dynamic sections
 		     to the plugin bfd.  Symbols defined in linker
 		     created sections are not plugin symbols.  */
-		  if (h->root.non_ir_ref
+		  if ((h->root.non_ir_ref_regular
+		       || h->root.non_ir_ref_dynamic)
 		      && (h->root.type == bfd_link_hash_defined
 			  || h->root.type == bfd_link_hash_defweak)
 		      && (h->root.u.def.section->flags
@@ -10542,7 +10736,7 @@ elf_link_input_bfd (struct elf_final_lin
 	      /* Adjust the reloc addresses and symbol indices.  */
 
 	      irela = internal_relocs;
-	      irelaend = irela + o->reloc_count * bed->s->int_rels_per_ext_rel;
+	      irelaend = irela + o->reloc_count;
 	      rel_hash = esdo->rel.hashes + esdo->rel.count;
 	      /* We start processing the REL relocs, if any.  When we reach
 		 IRELAMID in the loop, we switch to the RELA relocs.  */
@@ -10627,7 +10821,6 @@ elf_link_input_bfd (struct elf_final_lin
 			 used by a reloc.  */
 		      BFD_ASSERT (rh->indx < 0);
 		      rh->indx = -2;
-
 		      *rel_hash = rh;
 
 		      continue;
@@ -11205,10 +11398,11 @@ elf_output_implib (bfd *abfd, struct bfd
   if (!bfd_set_format (implib_bfd, bfd_object))
     return FALSE;
 
+  /* Use flag from executable but make it a relocatable object.  */
   flags = bfd_get_file_flags (abfd);
   flags &= ~HAS_RELOC;
   if (!bfd_set_start_address (implib_bfd, 0)
-      || !bfd_set_file_flags (implib_bfd, flags))
+      || !bfd_set_file_flags (implib_bfd, flags & ~EXEC_P))
     return FALSE;
 
   /* Copy architecture of output file to import library file.  */
@@ -11715,8 +11909,7 @@ bfd_elf_final_link (bfd *abfd, struct bf
 
   if (max_internal_reloc_count != 0)
     {
-      amt = max_internal_reloc_count * bed->s->int_rels_per_ext_rel;
-      amt *= sizeof (Elf_Internal_Rela);
+      amt = max_internal_reloc_count * sizeof (Elf_Internal_Rela);
       flinfo.internal_relocs = (Elf_Internal_Rela *) bfd_malloc (amt);
       if (flinfo.internal_relocs == NULL)
 	goto error_return;
@@ -12094,15 +12287,16 @@ bfd_elf_final_link (bfd *abfd, struct bf
     {
       struct bfd_elf_section_data *esdo = elf_section_data (o);
       bfd_boolean sort;
+
       if ((o->flags & SEC_RELOC) == 0)
 	continue;
 
       sort = bed->sort_relocs_p == NULL || (*bed->sort_relocs_p) (o);
       if (esdo->rel.hdr != NULL
-	  && !elf_link_adjust_relocs (abfd, o, &esdo->rel, sort))
+	  && !elf_link_adjust_relocs (abfd, o, &esdo->rel, sort, info))
 	return FALSE;
       if (esdo->rela.hdr != NULL
-	  && !elf_link_adjust_relocs (abfd, o, &esdo->rela, sort))
+	  && !elf_link_adjust_relocs (abfd, o, &esdo->rela, sort, info))
 	return FALSE;
 
       /* Set the reloc_count field to 0 to prevent write_relocs from
@@ -12241,7 +12435,7 @@ bfd_elf_final_link (bfd *abfd, struct bf
 	    get_vma:
 	      o = bfd_get_linker_section (dynobj, name);
 	    do_vma:
-	      if (o == NULL)
+	      if (o == NULL || bfd_is_abs_section (o->output_section))
 		{
 		  _bfd_error_handler
 		    (_("could not find section %s"), name);
@@ -12390,10 +12584,11 @@ bfd_elf_final_link (bfd *abfd, struct bf
 	}
     }
 
-  if (bfd_link_relocatable (info))
+  if (!info->resolve_section_groups)
     {
       bfd_boolean failed = FALSE;
 
+      BFD_ASSERT (bfd_link_relocatable (info));
       bfd_map_over_sections (abfd, bfd_elf_set_group_contents, &failed);
       if (failed)
 	goto error_return;
@@ -12499,8 +12694,6 @@ init_reloc_cookie_rels (struct elf_reloc
 			struct bfd_link_info *info, bfd *abfd,
 			asection *sec)
 {
-  const struct elf_backend_data *bed;
-
   if (sec->reloc_count == 0)
     {
       cookie->rels = NULL;
@@ -12508,15 +12701,12 @@ init_reloc_cookie_rels (struct elf_reloc
     }
   else
     {
-      bed = get_elf_backend_data (abfd);
-
       cookie->rels = _bfd_elf_link_read_relocs (abfd, sec, NULL, NULL,
 						info->keep_memory);
       if (cookie->rels == NULL)
 	return FALSE;
       cookie->rel = cookie->rels;
-      cookie->relend = (cookie->rels
-			+ sec->reloc_count * bed->s->int_rels_per_ext_rel);
+      cookie->relend = cookie->rels + sec->reloc_count;
     }
   cookie->rel = cookie->rels;
   return TRUE;
@@ -12595,53 +12785,22 @@ _bfd_elf_gc_mark_hook (asection *sec,
   return NULL;
 }
 
-/* For undefined __start_<name> and __stop_<name> symbols, return the
-   first input section matching <name>.  Return NULL otherwise.  */
+/* Return the global debug definition section.  */
 
-asection *
-_bfd_elf_is_start_stop (const struct bfd_link_info *info,
-			struct elf_link_hash_entry *h)
+static asection *
+elf_gc_mark_debug_section (asection *sec ATTRIBUTE_UNUSED,
+			   struct bfd_link_info *info ATTRIBUTE_UNUSED,
+			   Elf_Internal_Rela *rel ATTRIBUTE_UNUSED,
+			   struct elf_link_hash_entry *h,
+			   Elf_Internal_Sym *sym ATTRIBUTE_UNUSED)
 {
-  asection *s;
-  const char *sec_name;
-
-  if (h->root.type != bfd_link_hash_undefined
-      && h->root.type != bfd_link_hash_undefweak)
-    return NULL;
-
-  s = h->root.u.undef.section;
-  if (s != NULL)
-    {
-      if (s == (asection *) 0 - 1)
-	return NULL;
-      return s;
-    }
-
-  sec_name = NULL;
-  if (strncmp (h->root.root.string, "__start_", 8) == 0)
-    sec_name = h->root.root.string + 8;
-  else if (strncmp (h->root.root.string, "__stop_", 7) == 0)
-    sec_name = h->root.root.string + 7;
-
-  if (sec_name != NULL && *sec_name != '\0')
-    {
-      bfd *i;
+  if (h != NULL
+      && (h->root.type == bfd_link_hash_defined
+	  || h->root.type == bfd_link_hash_defweak)
+      && (h->root.u.def.section->flags & SEC_DEBUGGING) != 0)
+    return h->root.u.def.section;
 
-      for (i = info->input_bfds; i != NULL; i = i->link.next)
-	{
-	  s = bfd_get_section_by_name (i, sec_name);
-	  if (s != NULL)
-	    {
-	      h->root.u.undef.section = s;
-	      break;
-	    }
-	}
-    }
-
-  if (s == NULL)
-    h->root.u.undef.section = (asection *) 0 - 1;
-
-  return s;
+  return NULL;
 }
 
 /* COOKIE->rel describes a relocation against section SEC, which is
@@ -12679,20 +12838,17 @@ _bfd_elf_gc_mark_rsec (struct bfd_link_i
 	 keep the non-weak definition because many backends put
 	 dynamic reloc info on the non-weak definition for code
 	 handling copy relocs.  */
-      if (h->u.weakdef != NULL)
-	h->u.weakdef->mark = 1;
+      if (h->is_weakalias)
+	weakdef (h)->mark = 1;
 
       if (start_stop != NULL)
 	{
-	  /* To work around a glibc bug, mark all XXX input sections
-	     when there is an as yet undefined reference to __start_XXX
-	     or __stop_XXX symbols.  The linker will later define such
-	     symbols for orphan input sections that have a name
-	     representable as a C identifier.  */
-	  asection *s = _bfd_elf_is_start_stop (info, h);
-
-	  if (s != NULL)
+	  /* To work around a glibc bug, mark XXX input sections
+	     when there is a reference to __start_XXX or __stop_XXX
+	     symbols.  */
+	  if (h->start_stop)
 	    {
+	      asection *s = h->u2.start_stop_section;
 	      *start_stop = !s->gc_mark;
 	      return s;
 	    }
@@ -12856,29 +13012,35 @@ _bfd_elf_gc_mark_extra_sections (struct 
       asection *isec;
       bfd_boolean some_kept;
       bfd_boolean debug_frag_seen;
+      bfd_boolean has_kept_debug_info;
 
       if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour)
 	continue;
+      isec = ibfd->sections;
+      if (isec == NULL || isec->sec_info_type == SEC_INFO_TYPE_JUST_SYMS)
+	continue;
 
       /* Ensure all linker created sections are kept,
 	 see if any other section is already marked,
 	 and note if we have any fragmented debug sections.  */
-      debug_frag_seen = some_kept = FALSE;
+      debug_frag_seen = some_kept = has_kept_debug_info = FALSE;
       for (isec = ibfd->sections; isec != NULL; isec = isec->next)
 	{
 	  if ((isec->flags & SEC_LINKER_CREATED) != 0)
 	    isec->gc_mark = 1;
-	  else if (isec->gc_mark)
+	  else if (isec->gc_mark
+		   && (isec->flags & SEC_ALLOC) != 0
+		   && elf_section_type (isec) != SHT_NOTE)
 	    some_kept = TRUE;
 
-	  if (debug_frag_seen == FALSE
+	  if (!debug_frag_seen
 	      && (isec->flags & SEC_DEBUGGING)
 	      && CONST_STRNEQ (isec->name, ".debug_line."))
 	    debug_frag_seen = TRUE;
 	}
 
-      /* If no section in this file will be kept, then we can
-	 toss out the debug and special sections.  */
+      /* If no non-note alloc section in this file will be kept, then
+	 we can toss out the debug and special sections.  */
       if (!some_kept)
 	continue;
 
@@ -12893,68 +13055,73 @@ _bfd_elf_gc_mark_extra_sections (struct 
 		    || (isec->flags & (SEC_ALLOC | SEC_LOAD | SEC_RELOC)) == 0)
 		   && elf_next_in_group (isec) == NULL)
 	    isec->gc_mark = 1;
+	  if (isec->gc_mark && (isec->flags & SEC_DEBUGGING) != 0)
+	    has_kept_debug_info = TRUE;
 	}
 
-      if (! debug_frag_seen)
-	continue;
-
       /* Look for CODE sections which are going to be discarded,
 	 and find and discard any fragmented debug sections which
 	 are associated with that code section.  */
-      for (isec = ibfd->sections; isec != NULL; isec = isec->next)
-	if ((isec->flags & SEC_CODE) != 0
-	    && isec->gc_mark == 0)
-	  {
-	    unsigned int ilen;
-	    asection *dsec;
-
-	    ilen = strlen (isec->name);
-
-	    /* Association is determined by the name of the debug section
-	       containing the name of the code section as a suffix.  For
-	       example .debug_line.text.foo is a debug section associated
-	       with .text.foo.  */
-	    for (dsec = ibfd->sections; dsec != NULL; dsec = dsec->next)
-	      {
-		unsigned int dlen;
+      if (debug_frag_seen)
+	for (isec = ibfd->sections; isec != NULL; isec = isec->next)
+	  if ((isec->flags & SEC_CODE) != 0
+	      && isec->gc_mark == 0)
+	    {
+	      unsigned int ilen;
+	      asection *dsec;
+
+	      ilen = strlen (isec->name);
+
+	      /* Association is determined by the name of the debug
+		 section containing the name of the code section as
+		 a suffix.  For example .debug_line.text.foo is a
+		 debug section associated with .text.foo.  */
+	      for (dsec = ibfd->sections; dsec != NULL; dsec = dsec->next)
+		{
+		  unsigned int dlen;
 
-		if (dsec->gc_mark == 0
-		    || (dsec->flags & SEC_DEBUGGING) == 0)
-		  continue;
+		  if (dsec->gc_mark == 0
+		      || (dsec->flags & SEC_DEBUGGING) == 0)
+		    continue;
 
-		dlen = strlen (dsec->name);
+		  dlen = strlen (dsec->name);
 
-		if (dlen > ilen
-		    && strncmp (dsec->name + (dlen - ilen),
-				isec->name, ilen) == 0)
-		  {
+		  if (dlen > ilen
+		      && strncmp (dsec->name + (dlen - ilen),
+				  isec->name, ilen) == 0)
 		    dsec->gc_mark = 0;
-		  }
-	      }
+		}
 	  }
+
+      /* Mark debug sections referenced by kept debug sections.  */
+      if (has_kept_debug_info)
+	for (isec = ibfd->sections; isec != NULL; isec = isec->next)
+	  if (isec->gc_mark
+	      && (isec->flags & SEC_DEBUGGING) != 0)
+	    if (!_bfd_elf_gc_mark (info, isec,
+				   elf_gc_mark_debug_section))
+	      return FALSE;
     }
   return TRUE;
 }
 
-/* The sweep phase of garbage collection.  Remove all garbage sections.  */
-
-typedef bfd_boolean (*gc_sweep_hook_fn)
-  (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
-
 static bfd_boolean
 elf_gc_sweep (bfd *abfd, struct bfd_link_info *info)
 {
   bfd *sub;
   const struct elf_backend_data *bed = get_elf_backend_data (abfd);
-  gc_sweep_hook_fn gc_sweep_hook = bed->gc_sweep_hook;
 
   for (sub = info->input_bfds; sub != NULL; sub = sub->link.next)
     {
       asection *o;
 
       if (bfd_get_flavour (sub) != bfd_target_elf_flavour
+	  || elf_object_id (sub) != elf_hash_table_id (elf_hash_table (info))
 	  || !(*bed->relocs_compatible) (sub->xvec, abfd->xvec))
 	continue;
+      o = sub->sections;
+      if (o == NULL || o->sec_info_type == SEC_INFO_TYPE_JUST_SYMS)
+	continue;
 
       for (o = sub->sections; o != NULL; o = o->next)
 	{
@@ -12983,33 +13150,6 @@ elf_gc_sweep (bfd *abfd, struct bfd_link
 	    /* xgettext:c-format */
 	    _bfd_error_handler (_("Removing unused section '%A' in file '%B'"),
 				o, sub);
-
-	  /* But we also have to update some of the relocation
-	     info we collected before.  */
-	  if (gc_sweep_hook
-	      && (o->flags & SEC_RELOC) != 0
-	      && o->reloc_count != 0
-	      && !((info->strip == strip_all || info->strip == strip_debugger)
-		   && (o->flags & SEC_DEBUGGING) != 0)
-	      && !bfd_is_abs_section (o->output_section))
-	    {
-	      Elf_Internal_Rela *internal_relocs;
-	      bfd_boolean r;
-
-	      internal_relocs
-		= _bfd_elf_link_read_relocs (o->owner, o, NULL, NULL,
-					     info->keep_memory);
-	      if (internal_relocs == NULL)
-		return FALSE;
-
-	      r = (*gc_sweep_hook) (o->owner, info, o, internal_relocs);
-
-	      if (elf_section_data (o)->relocs != internal_relocs)
-		free (internal_relocs);
-
-	      if (!r)
-		return FALSE;
-	    }
 	}
     }
 
@@ -13023,26 +13163,28 @@ static bfd_boolean
 elf_gc_propagate_vtable_entries_used (struct elf_link_hash_entry *h, void *okp)
 {
   /* Those that are not vtables.  */
-  if (h->vtable == NULL || h->vtable->parent == NULL)
+  if (h->start_stop
+      || h->u2.vtable == NULL
+      || h->u2.vtable->parent == NULL)
     return TRUE;
 
   /* Those vtables that do not have parents, we cannot merge.  */
-  if (h->vtable->parent == (struct elf_link_hash_entry *) -1)
+  if (h->u2.vtable->parent == (struct elf_link_hash_entry *) -1)
     return TRUE;
 
   /* If we've already been done, exit.  */
-  if (h->vtable->used && h->vtable->used[-1])
+  if (h->u2.vtable->used && h->u2.vtable->used[-1])
     return TRUE;
 
   /* Make sure the parent's table is up to date.  */
-  elf_gc_propagate_vtable_entries_used (h->vtable->parent, okp);
+  elf_gc_propagate_vtable_entries_used (h->u2.vtable->parent, okp);
 
-  if (h->vtable->used == NULL)
+  if (h->u2.vtable->used == NULL)
     {
       /* None of this table's entries were referenced.  Re-use the
 	 parent's table.  */
-      h->vtable->used = h->vtable->parent->vtable->used;
-      h->vtable->size = h->vtable->parent->vtable->size;
+      h->u2.vtable->used = h->u2.vtable->parent->u2.vtable->used;
+      h->u2.vtable->size = h->u2.vtable->parent->u2.vtable->size;
     }
   else
     {
@@ -13050,9 +13192,9 @@ elf_gc_propagate_vtable_entries_used (st
       bfd_boolean *cu, *pu;
 
       /* Or the parent's entries into ours.  */
-      cu = h->vtable->used;
+      cu = h->u2.vtable->used;
       cu[-1] = TRUE;
-      pu = h->vtable->parent->vtable->used;
+      pu = h->u2.vtable->parent->u2.vtable->used;
       if (pu != NULL)
 	{
 	  const struct elf_backend_data *bed;
@@ -13060,7 +13202,7 @@ elf_gc_propagate_vtable_entries_used (st
 
 	  bed = get_elf_backend_data (h->root.u.def.section->owner);
 	  log_file_align = bed->s->log_file_align;
-	  n = h->vtable->parent->vtable->size >> log_file_align;
+	  n = h->u2.vtable->parent->u2.vtable->size >> log_file_align;
 	  while (n--)
 	    {
 	      if (*pu)
@@ -13085,7 +13227,9 @@ elf_gc_smash_unused_vtentry_relocs (stru
 
   /* Take care of both those symbols that do not describe vtables as
      well as those that are not loaded.  */
-  if (h->vtable == NULL || h->vtable->parent == NULL)
+  if (h->start_stop
+      || h->u2.vtable == NULL
+      || h->u2.vtable->parent == NULL)
     return TRUE;
 
   BFD_ASSERT (h->root.type == bfd_link_hash_defined
@@ -13101,17 +13245,17 @@ elf_gc_smash_unused_vtentry_relocs (stru
   bed = get_elf_backend_data (sec->owner);
   log_file_align = bed->s->log_file_align;
 
-  relend = relstart + sec->reloc_count * bed->s->int_rels_per_ext_rel;
+  relend = relstart + sec->reloc_count;
 
   for (rel = relstart; rel < relend; ++rel)
     if (rel->r_offset >= hstart && rel->r_offset < hend)
       {
 	/* If the entry is in use, do nothing.  */
-	if (h->vtable->used
-	    && (rel->r_offset - hstart) < h->vtable->size)
+	if (h->u2.vtable->used
+	    && (rel->r_offset - hstart) < h->u2.vtable->size)
 	  {
 	    bfd_vma entry = (rel->r_offset - hstart) >> log_file_align;
-	    if (h->vtable->used[entry])
+	    if (h->u2.vtable->used[entry])
 	      continue;
 	  }
 	/* Otherwise, kill it.  */
@@ -13188,6 +13332,9 @@ bfd_elf_parse_eh_frame_entries (bfd *abf
 
       if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour)
 	continue;
+      sec = ibfd->sections;
+      if (sec == NULL || sec->sec_info_type == SEC_INFO_TYPE_JUST_SYMS)
+	continue;
 
       if (!init_reloc_cookie (&cookie, info, ibfd))
 	return FALSE;
@@ -13235,6 +13382,9 @@ bfd_elf_gc_sections (bfd *abfd, struct b
       asection *sec;
       struct elf_reloc_cookie cookie;
 
+      sec = sub->sections;
+      if (sec == NULL || sec->sec_info_type == SEC_INFO_TYPE_JUST_SYMS)
+	continue;
       sec = bfd_get_section_by_name (sub, ".eh_frame");
       while (sec && init_reloc_cookie_for_section (&cookie, info, sec))
 	{
@@ -13268,9 +13418,14 @@ bfd_elf_gc_sections (bfd *abfd, struct b
       asection *o;
 
       if (bfd_get_flavour (sub) != bfd_target_elf_flavour
+	  || elf_object_id (sub) != elf_hash_table_id (htab)
 	  || !(*bed->relocs_compatible) (sub->xvec, abfd->xvec))
 	continue;
 
+      o = sub->sections;
+      if (o == NULL || o->sec_info_type == SEC_INFO_TYPE_JUST_SYMS)
+	continue;
+
       /* Start at sections marked with SEC_KEEP (ref _bfd_elf_gc_keep).
 	 Also treat note sections as a root, if the section is not part
 	 of a group.  */
@@ -13329,17 +13484,17 @@ bfd_elf_gc_record_vtinherit (bfd *abfd,
     }
 
   /* xgettext:c-format */
-  _bfd_error_handler (_("%B: %A+%lu: No symbol found for INHERIT"),
-		      abfd, sec, (unsigned long) offset);
+  _bfd_error_handler (_("%B: %A+%#Lx: No symbol found for INHERIT"),
+		      abfd, sec, offset);
   bfd_set_error (bfd_error_invalid_operation);
   return FALSE;
 
  win:
-  if (!child->vtable)
+  if (!child->u2.vtable)
     {
-      child->vtable = ((struct elf_link_virtual_table_entry *)
-		       bfd_zalloc (abfd, sizeof (*child->vtable)));
-      if (!child->vtable)
+      child->u2.vtable = ((struct elf_link_virtual_table_entry *)
+			  bfd_zalloc (abfd, sizeof (*child->u2.vtable)));
+      if (!child->u2.vtable)
 	return FALSE;
     }
   if (!h)
@@ -13349,10 +13504,10 @@ bfd_elf_gc_record_vtinherit (bfd *abfd,
 	 would be bad.  It isn't worth paging in the local symbols to be
 	 sure though; that case should simply be handled by the assembler.  */
 
-      child->vtable->parent = (struct elf_link_hash_entry *) -1;
+      child->u2.vtable->parent = (struct elf_link_hash_entry *) -1;
     }
   else
-    child->vtable->parent = h;
+    child->u2.vtable->parent = h;
 
   return TRUE;
 }
@@ -13368,18 +13523,18 @@ bfd_elf_gc_record_vtentry (bfd *abfd ATT
   const struct elf_backend_data *bed = get_elf_backend_data (abfd);
   unsigned int log_file_align = bed->s->log_file_align;
 
-  if (!h->vtable)
+  if (!h->u2.vtable)
     {
-      h->vtable = ((struct elf_link_virtual_table_entry *)
-		   bfd_zalloc (abfd, sizeof (*h->vtable)));
-      if (!h->vtable)
+      h->u2.vtable = ((struct elf_link_virtual_table_entry *)
+		      bfd_zalloc (abfd, sizeof (*h->u2.vtable)));
+      if (!h->u2.vtable)
 	return FALSE;
     }
 
-  if (addend >= h->vtable->size)
+  if (addend >= h->u2.vtable->size)
     {
       size_t size, bytes, file_align;
-      bfd_boolean *ptr = h->vtable->used;
+      bfd_boolean *ptr = h->u2.vtable->used;
 
       /* While the symbol is undefined, we have to be prepared to handle
 	 a zero size.  */
@@ -13410,7 +13565,7 @@ bfd_elf_gc_record_vtentry (bfd *abfd ATT
 	    {
 	      size_t oldbytes;
 
-	      oldbytes = (((h->vtable->size >> log_file_align) + 1)
+	      oldbytes = (((h->u2.vtable->size >> log_file_align) + 1)
 			  * sizeof (bfd_boolean));
 	      memset (((char *) ptr) + oldbytes, 0, bytes - oldbytes);
 	    }
@@ -13422,11 +13577,11 @@ bfd_elf_gc_record_vtentry (bfd *abfd ATT
 	return FALSE;
 
       /* And arrange for that done flag to be at index -1.  */
-      h->vtable->used = ptr + 1;
-      h->vtable->size = size;
+      h->u2.vtable->used = ptr + 1;
+      h->u2.vtable->size = size;
     }
 
-  h->vtable->used[addend >> log_file_align] = TRUE;
+  h->u2.vtable->used[addend >> log_file_align] = TRUE;
 
   return TRUE;
 }
@@ -13741,6 +13896,8 @@ bfd_elf_discard_info (bfd *output_bfd, s
   if (o != NULL)
     {
       asection *i;
+      int eh_changed = 0;
+      unsigned int eh_alignment;
 
       for (i = o->map_head.s; i != NULL; i = i->map_head.s)
 	{
@@ -13758,18 +13915,59 @@ bfd_elf_discard_info (bfd *output_bfd, s
 	  if (_bfd_elf_discard_section_eh_frame (abfd, info, i,
 						 bfd_elf_reloc_symbol_deleted_p,
 						 &cookie))
-	    changed = 1;
+	    {
+	      eh_changed = 1;
+	      if (i->size != i->rawsize)
+		changed = 1;
+	    }
 
 	  fini_reloc_cookie_for_section (&cookie, i);
 	}
+
+      eh_alignment = 1 << o->alignment_power;
+      /* Skip over zero terminator, and prevent empty sections from
+	 adding alignment padding at the end.  */
+      for (i = o->map_tail.s; i != NULL; i = i->map_tail.s)
+	if (i->size == 0)
+	  i->flags |= SEC_EXCLUDE;
+	else if (i->size > 4)
+	  break;
+      /* The last non-empty eh_frame section doesn't need padding.  */
+      if (i != NULL)
+	i = i->map_tail.s;
+      /* Any prior sections must pad the last FDE out to the output
+	 section alignment.  Otherwise we might have zero padding
+	 between sections, which would be seen as a terminator.  */
+      for (; i != NULL; i = i->map_tail.s)
+	if (i->size == 4)
+	  /* All but the last zero terminator should have been removed.  */
+	  BFD_FAIL ();
+	else
+	  {
+	    bfd_size_type size
+	      = (i->size + eh_alignment - 1) & -eh_alignment;
+	    if (i->size != size)
+	      {
+		i->size = size;
+		changed = 1;
+		eh_changed = 1;
+	      }
+	  }
+      if (eh_changed)
+	elf_link_hash_traverse (elf_hash_table (info),
+				_bfd_elf_adjust_eh_frame_global_symbol, NULL);
     }
 
   for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link.next)
     {
       const struct elf_backend_data *bed;
+      asection *s;
 
       if (bfd_get_flavour (abfd) != bfd_target_elf_flavour)
 	continue;
+      s = abfd->sections;
+      if (s == NULL || s->sec_info_type == SEC_INFO_TYPE_JUST_SYMS)
+	continue;
 
       bed = get_elf_backend_data (abfd);
 
@@ -14118,3 +14316,39 @@ elf_append_rel (bfd *abfd, asection *s, 
   BFD_ASSERT (loc + bed->s->sizeof_rel <= s->contents + s->size);
   bed->s->swap_reloc_out (abfd, rel, loc);
 }
+
+/* Define __start, __stop, .startof. or .sizeof. symbol.  */
+
+struct bfd_link_hash_entry *
+bfd_elf_define_start_stop (struct bfd_link_info *info,
+			   const char *symbol, asection *sec)
+{
+  struct elf_link_hash_entry *h;
+
+  h = elf_link_hash_lookup (elf_hash_table (info), symbol,
+			    FALSE, FALSE, TRUE);
+  if (h != NULL
+      && (h->root.type == bfd_link_hash_undefined
+	  || h->root.type == bfd_link_hash_undefweak
+	  || (h->ref_regular && !h->def_regular)))
+    {
+      h->root.type = bfd_link_hash_defined;
+      h->root.u.def.section = sec;
+      h->root.u.def.value = 0;
+      h->def_regular = 1;
+      h->def_dynamic = 0;
+      h->start_stop = 1;
+      h->u2.start_stop_section = sec;
+      if (symbol[0] == '.')
+	{
+	  /* .startof. and .sizeof. symbols are local.  */
+	  const struct elf_backend_data *bed;
+	  bed = get_elf_backend_data (info->output_bfd);
+	  (*bed->elf_backend_hide_symbol) (info, h, TRUE);
+	}
+      else if (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
+	h->other = (h->other & ~ELF_ST_VISIBILITY (-1)) | STV_PROTECTED;
+      return &h->root;
+    }
+  return NULL;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-linux-core.h ./bfd/elf-linux-core.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-linux-core.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-linux-core.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Definitions for PRPSINFO structures under ELF on GNU/Linux.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -21,18 +21,70 @@
 #ifndef ELF_LINUX_CORE_H
 #define ELF_LINUX_CORE_H
 
-/* The PRPSINFO structures defined below are used by most
-   architectures, although some of them define their own versions
-   (like e.g., PPC).  */
+/* External 32-bit structure for PRPSINFO.  This structure is
+   ABI-defined, thus we choose to use char arrays here in order to
+   avoid dealing with different types in different architectures.
+
+   This is the variant for targets which use a 32-bit data type for
+   UID and GID, as all modern Linux ports do.  Some older ports use
+   a 16-bit data type instead; see below for the alternative variant.
+
+   This structure will ultimately be written in the corefile's note
+   section, as the PRPSINFO.  */
+
+struct elf_external_linux_prpsinfo32_ugid32
+  {
+    char pr_state;			/* Numeric process state.  */
+    char pr_sname;			/* Char for pr_state.  */
+    char pr_zomb;			/* Zombie.  */
+    char pr_nice;			/* Nice val.  */
+    char pr_flag[4];			/* Flags.  */
+    char pr_uid[4];
+    char pr_gid[4];
+    char pr_pid[4];
+    char pr_ppid[4];
+    char pr_pgrp[4];
+    char pr_sid[4];
+    char pr_fname[16];			/* Filename of executable.  */
+    char pr_psargs[80];			/* Initial part of arg list.  */
+  };
+
+/* Helper function to copy an elf_internal_linux_prpsinfo in host
+   endian to an elf_external_linux_prpsinfo32_ugid32 in target endian.  */
+
+static inline void
+swap_linux_prpsinfo32_ugid32_out
+  (bfd *obfd,
+   const struct elf_internal_linux_prpsinfo *from,
+   struct elf_external_linux_prpsinfo32_ugid32 *to)
+{
+  bfd_put_8 (obfd, from->pr_state, &to->pr_state);
+  bfd_put_8 (obfd, from->pr_sname, &to->pr_sname);
+  bfd_put_8 (obfd, from->pr_zomb, &to->pr_zomb);
+  bfd_put_8 (obfd, from->pr_nice, &to->pr_nice);
+  bfd_put_32 (obfd, from->pr_flag, to->pr_flag);
+  bfd_put_32 (obfd, from->pr_uid, to->pr_uid);
+  bfd_put_32 (obfd, from->pr_gid, to->pr_gid);
+  bfd_put_32 (obfd, from->pr_pid, to->pr_pid);
+  bfd_put_32 (obfd, from->pr_ppid, to->pr_ppid);
+  bfd_put_32 (obfd, from->pr_pgrp, to->pr_pgrp);
+  bfd_put_32 (obfd, from->pr_sid, to->pr_sid);
+  strncpy (to->pr_fname, from->pr_fname, sizeof (to->pr_fname));
+  strncpy (to->pr_psargs, from->pr_psargs, sizeof (to->pr_psargs));
+}
 
 /* External 32-bit structure for PRPSINFO.  This structure is
    ABI-defined, thus we choose to use char arrays here in order to
    avoid dealing with different types in different architectures.
 
+   This is the variant for targets which use a 16-bit data type for
+   UID and GID, as some older Linux ports do.  All modern ports use
+   a 32-bit data type instead; see above for the alternative variant.
+
    This structure will ultimately be written in the corefile's note
    section, as the PRPSINFO.  */
 
-struct elf_external_linux_prpsinfo32
+struct elf_external_linux_prpsinfo32_ugid16
   {
     char pr_state;			/* Numeric process state.  */
     char pr_sname;			/* Char for pr_state.  */
@@ -50,12 +102,13 @@ struct elf_external_linux_prpsinfo32
   };
 
 /* Helper function to copy an elf_internal_linux_prpsinfo in host
-   endian to an elf_external_linux_prpsinfo32 in target endian.  */
+   endian to an elf_external_linux_prpsinfo32_ugid16 in target endian.  */
 
 static inline void
-swap_linux_prpsinfo32_out (bfd *obfd,
-			   const struct elf_internal_linux_prpsinfo *from,
-			   struct elf_external_linux_prpsinfo32 *to)
+swap_linux_prpsinfo32_ugid16_out
+  (bfd *obfd,
+   const struct elf_internal_linux_prpsinfo *from,
+   struct elf_external_linux_prpsinfo32_ugid16 *to)
 {
   bfd_put_8 (obfd, from->pr_state, &to->pr_state);
   bfd_put_8 (obfd, from->pr_sname, &to->pr_sname);
@@ -76,17 +129,21 @@ swap_linux_prpsinfo32_out (bfd *obfd,
    ABI-defined, thus we choose to use char arrays here in order to
    avoid dealing with different types in different architectures.
 
+   This is the variant for targets which use a 32-bit data type for
+   UID and GID, as most Linux ports do.  The SH64 port uses a 16-bit
+   data type instead; see below for the alternative variant.
+
    This structure will ultimately be written in the corefile's note
    section, as the PRPSINFO.  */
 
-struct elf_external_linux_prpsinfo64
+struct elf_external_linux_prpsinfo64_ugid32
   {
     char pr_state;			/* Numeric process state.  */
     char pr_sname;			/* Char for pr_state.  */
     char pr_zomb;			/* Zombie.  */
     char pr_nice;			/* Nice val.  */
-    char pr_flag[8];			/* Flags.  */
     char gap[4];
+    char pr_flag[8];			/* Flags.  */
     char pr_uid[4];
     char pr_gid[4];
     char pr_pid[4];
@@ -98,12 +155,13 @@ struct elf_external_linux_prpsinfo64
   };
 
 /* Helper function to copy an elf_internal_linux_prpsinfo in host
-   endian to an elf_external_linux_prpsinfo64 in target endian.  */
+   endian to an elf_external_linux_prpsinfo64_ugid32 in target endian.  */
 
 static inline void
-swap_linux_prpsinfo64_out (bfd *obfd,
-			   const struct elf_internal_linux_prpsinfo *from,
-			   struct elf_external_linux_prpsinfo64 *to)
+swap_linux_prpsinfo64_ugid32_out
+  (bfd *obfd,
+   const struct elf_internal_linux_prpsinfo *from,
+   struct elf_external_linux_prpsinfo64_ugid32 *to)
 {
   bfd_put_8 (obfd, from->pr_state, &to->pr_state);
   bfd_put_8 (obfd, from->pr_sname, &to->pr_sname);
@@ -120,4 +178,57 @@ swap_linux_prpsinfo64_out (bfd *obfd,
   strncpy (to->pr_psargs, from->pr_psargs, sizeof (to->pr_psargs));
 }
 
+/* External 64-bit structure for PRPSINFO.  This structure is
+   ABI-defined, thus we choose to use char arrays here in order to
+   avoid dealing with different types in different architectures.
+
+   This is the variant for the SH64 port which uses a 16-bit data
+   type for UID and GID.  Most Linux ports use a 32-bit data type
+   instead; see above for the alternative variant.
+
+   This structure will ultimately be written in the corefile's note
+   section, as the PRPSINFO.  */
+
+struct elf_external_linux_prpsinfo64_ugid16
+  {
+    char pr_state;			/* Numeric process state.  */
+    char pr_sname;			/* Char for pr_state.  */
+    char pr_zomb;			/* Zombie.  */
+    char pr_nice;			/* Nice val.  */
+    char gap[4];
+    char pr_flag[8];			/* Flags.  */
+    char pr_uid[2];
+    char pr_gid[2];
+    char pr_pid[4];
+    char pr_ppid[4];
+    char pr_pgrp[4];
+    char pr_sid[4];
+    char pr_fname[16];			/* Filename of executable.  */
+    char pr_psargs[80];			/* Initial part of arg list.  */
+  };
+
+/* Helper function to copy an elf_internal_linux_prpsinfo in host
+   endian to an elf_external_linux_prpsinfo64_ugid16 in target endian.  */
+
+static inline void
+swap_linux_prpsinfo64_ugid16_out
+  (bfd *obfd,
+   const struct elf_internal_linux_prpsinfo *from,
+   struct elf_external_linux_prpsinfo64_ugid16 *to)
+{
+  bfd_put_8 (obfd, from->pr_state, &to->pr_state);
+  bfd_put_8 (obfd, from->pr_sname, &to->pr_sname);
+  bfd_put_8 (obfd, from->pr_zomb, &to->pr_zomb);
+  bfd_put_8 (obfd, from->pr_nice, &to->pr_nice);
+  bfd_put_64 (obfd, from->pr_flag, to->pr_flag);
+  bfd_put_16 (obfd, from->pr_uid, to->pr_uid);
+  bfd_put_16 (obfd, from->pr_gid, to->pr_gid);
+  bfd_put_32 (obfd, from->pr_pid, to->pr_pid);
+  bfd_put_32 (obfd, from->pr_ppid, to->pr_ppid);
+  bfd_put_32 (obfd, from->pr_pgrp, to->pr_pgrp);
+  bfd_put_32 (obfd, from->pr_sid, to->pr_sid);
+  strncpy (to->pr_fname, from->pr_fname, sizeof (to->pr_fname));
+  strncpy (to->pr_psargs, from->pr_psargs, sizeof (to->pr_psargs));
+}
+
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-m10200.c ./bfd/elf-m10200.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-m10200.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-m10200.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Matsushita 10200 specific support for 32-bit ELF
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -524,7 +524,7 @@ mn10200_elf_relax_delete_bytes (bfd *abf
 
    There are quite a few relaxing opportunities available on the mn10200:
 
-	* jsr:24 -> jsr:16 					   2 bytes
+	* jsr:24 -> jsr:16					   2 bytes
 
 	* jmp:24 -> jmp:16					   2 bytes
 	* jmp:16 -> bra:8					   1 byte
@@ -654,8 +654,8 @@ mn10200_elf_relax_section (bfd *abfd,
 	      && h->root.type != bfd_link_hash_defweak)
 	    {
 	      /* This appears to be a reference to an undefined
-                 symbol.  Just ignore it--it will be caught by the
-                 regular reloc processing.  */
+		 symbol.  Just ignore it--it will be caught by the
+		 regular reloc processing.  */
 	      continue;
 	    }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-m10300.c ./bfd/elf-m10300.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-m10300.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-m10300.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Matsushita 10300 specific support for 32-bit ELF
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -97,9 +97,9 @@ struct elf32_mn10300_link_hash_table
   struct
   {
     bfd_signed_vma  refcount;
-    bfd_vma         offset;
-    char            got_allocated;
-    char            rel_emitted;
+    bfd_vma	    offset;
+    char	    got_allocated;
+    char	    rel_emitted;
   } tls_ldm_got;
 };
 
@@ -611,7 +611,7 @@ static reloc_howto_type elf_mn10300_howt
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
-	 NULL, 			/* special handler.  */
+	 NULL,			/* special handler.  */
 	 "R_MN10300_SYM_DIFF",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
@@ -625,7 +625,7 @@ static reloc_howto_type elf_mn10300_howt
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
-	 NULL, 			/* special handler.  */
+	 NULL,			/* special handler.  */
 	 "R_MN10300_ALIGN",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
@@ -818,11 +818,11 @@ mn10300_info_to_howto (bfd *abfd ATTRIBU
 }
 
 static int
-elf_mn10300_tls_transition (struct bfd_link_info *        info,
-			    int                           r_type,
+elf_mn10300_tls_transition (struct bfd_link_info *	  info,
+			    int				  r_type,
 			    struct elf_link_hash_entry *  h,
-			    asection *                    sec,
-			    bfd_boolean                   counting)
+			    asection *			  sec,
+			    bfd_boolean			  counting)
 {
   bfd_boolean is_local;
 
@@ -888,11 +888,11 @@ tpoff (struct bfd_link_info * info, bfd_
    this reloc and the PLT reloc.  */
 
 static int
-mn10300_do_tls_transition (bfd *         input_bfd,
-			   unsigned int  r_type,
-			   unsigned int  tls_r_type,
-			   bfd_byte *    contents,
-			   bfd_vma       offset)
+mn10300_do_tls_transition (bfd *	 input_bfd,
+			   unsigned int	 r_type,
+			   unsigned int	 tls_r_type,
+			   bfd_byte *	 contents,
+			   bfd_vma	 offset)
 {
   bfd_byte *op = contents + offset;
   int gotreg = 0;
@@ -962,13 +962,13 @@ mn10300_do_tls_transition (bfd *        
 	accordingly, copying the operands as needed.  The conversions
 	we do are as follows (IE,GOTIE,LE):
 
-	           1111 1100  1010 01Dn  [-- abs32 --]  MOV (x@indntpoff),Dn
-	           1111 1100  0000 DnAm  [-- abs32 --]  MOV (x@gotntpoff,Am),Dn
-	           1111 1100  1100 11Dn  [-- abs32 --]  MOV x@tpoff,Dn
-
-	           1111 1100  1010 00An  [-- abs32 --]  MOV (x@indntpoff),An
-	           1111 1100  0010 AnAm  [-- abs32 --]  MOV (x@gotntpoff,Am),An
-	           1111 1100  1101 11An  [-- abs32 --]  MOV x@tpoff,An
+		   1111 1100  1010 01Dn  [-- abs32 --]  MOV (x@indntpoff),Dn
+		   1111 1100  0000 DnAm  [-- abs32 --]  MOV (x@gotntpoff,Am),Dn
+		   1111 1100  1100 11Dn  [-- abs32 --]  MOV x@tpoff,Dn
+
+		   1111 1100  1010 00An  [-- abs32 --]  MOV (x@indntpoff),An
+		   1111 1100  0010 AnAm  [-- abs32 --]  MOV (x@gotntpoff,Am),An
+		   1111 1100  1101 11An  [-- abs32 --]  MOV x@tpoff,An
 
 	1111 1110  0000 1110  Rnnn Xxxx  [-- abs32 --]  MOV (x@indntpoff),Rn
 	1111 1110  0000 1010  Rnnn Rmmm  [-- abs32 --]  MOV (x@indntpoff,Rm),Rn
@@ -1091,10 +1091,6 @@ mn10300_elf_check_relocs (bfd *abfd,
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       r_type = ELF32_R_TYPE (rel->r_info);
@@ -1171,7 +1167,7 @@ mn10300_elf_check_relocs (bfd *abfd,
 	    case R_MN10300_TLS_IE:
 	    case R_MN10300_TLS_GOTIE: tls_type = GOT_TLS_IE; break;
 	    case R_MN10300_TLS_GD:    tls_type = GOT_TLS_GD; break;
-	    default:                  tls_type = GOT_NORMAL; break;
+	    default:		      tls_type = GOT_NORMAL; break;
 	    }
 
 	  sgot = htab->root.sgot;
@@ -1377,7 +1373,7 @@ mn10300_elf_check_relocs (bfd *abfd,
 
   result = TRUE;
  fail:
-  if (isymbuf != NULL)
+  if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
     free (isymbuf);
 
   return result;
@@ -1520,7 +1516,7 @@ mn10300_elf_final_link_relocate (reloc_h
 	  /* Do not generate relocs when an R_MN10300_32 has been used
 	     with an R_MN10300_SYM_DIFF to compute a difference of two
 	     symbols.  */
-	  && is_sym_diff_reloc == FALSE
+	  && !is_sym_diff_reloc
 	  /* Also, do not generate a reloc when the symbol associated
 	     with the R_MN10300_32 reloc is absolute - there is no
 	     need for a run time computation in this case.  */
@@ -2094,10 +2090,10 @@ mn10300_elf_relocate_section (bfd *outpu
 
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+	      (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
 	       input_bfd,
 	       input_section,
-	       (long) rel->r_offset,
+	       rel->r_offset,
 	       howto->name,
 	       h->root.root.root.string);
 	}
@@ -2416,7 +2412,7 @@ mn10300_elf_relax_delete_bytes (bfd *abf
       if (ELF32_R_TYPE ((irelend - 1)->r_info) == (int) R_MN10300_ALIGN)
 	--irelend;
 
-      /* The deletion must stop at the next ALIGN reloc for an aligment
+      /* The deletion must stop at the next ALIGN reloc for an alignment
 	 power larger than, or not a multiple of, the number of bytes we
 	 are deleting.  */
       for (; irel < irelend; irel++)
@@ -2596,7 +2592,7 @@ mn10300_elf_symbol_address_p (bfd *abfd,
 
    There are quite a few relaxing opportunities available on the mn10300:
 
-	* calls:32 -> calls:16 					   2 bytes
+	* calls:32 -> calls:16					   2 bytes
 	* call:32  -> call:16					   2 bytes
 
 	* call:32 -> calls:32					   1 byte
@@ -4560,9 +4556,9 @@ elf32_mn10300_link_hash_newfunc (struct 
 }
 
 static void
-_bfd_mn10300_copy_indirect_symbol (struct bfd_link_info *        info,
-				   struct elf_link_hash_entry *  dir,
-				   struct elf_link_hash_entry *  ind)
+_bfd_mn10300_copy_indirect_symbol (struct bfd_link_info *	 info,
+				   struct elf_link_hash_entry *	 dir,
+				   struct elf_link_hash_entry *	 ind)
 {
   struct elf32_mn10300_link_hash_entry * edir;
   struct elf32_mn10300_link_hash_entry * eind;
@@ -4889,7 +4885,7 @@ _bfd_mn10300_elf_adjust_dynamic_symbol (
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
 	      && (h->needs_plt
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -4962,12 +4958,12 @@ _bfd_mn10300_elf_adjust_dynamic_symbol (
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -5207,11 +5203,11 @@ _bfd_mn10300_elf_finish_dynamic_symbol (
 
   if (h->plt.offset != (bfd_vma) -1)
     {
-      asection *        splt;
-      asection *        sgot;
-      asection *        srel;
-      bfd_vma           plt_index;
-      bfd_vma           got_offset;
+      asection *	splt;
+      asection *	sgot;
+      asection *	srel;
+      bfd_vma		plt_index;
+      bfd_vma		got_offset;
       Elf_Internal_Rela rel;
 
       /* This symbol has an entry in the procedure linkage table.  Set
@@ -5293,8 +5289,8 @@ _bfd_mn10300_elf_finish_dynamic_symbol (
 
   if (h->got.offset != (bfd_vma) -1)
     {
-      asection *        sgot;
-      asection *        srel;
+      asection *	sgot;
+      asection *	srel;
       Elf_Internal_Rela rel;
 
       /* This symbol has an entry in the global offset table.  Set it up.  */
@@ -5368,7 +5364,7 @@ _bfd_mn10300_elf_finish_dynamic_symbol (
 
   if (h->needs_copy)
     {
-      asection *        s;
+      asection *	s;
       Elf_Internal_Rela rel;
 
       /* This symbol needs a copy reloc.  Set it up.  */
@@ -5416,7 +5412,7 @@ _bfd_mn10300_elf_finish_dynamic_sections
 
   if (elf_hash_table (info)->dynamic_sections_created)
     {
-      asection *           splt;
+      asection *	   splt;
       Elf32_External_Dyn * dyncon;
       Elf32_External_Dyn * dynconend;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfn32-mips.c ./bfd/elfn32-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfn32-mips.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfn32-mips.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* MIPS-specific support for 32-bit ELF
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    Most of the information added by Ian Lance Taylor, Cygnus Support,
    <ian@cygnus.com>.
@@ -80,8 +80,12 @@ static bfd_boolean elf32_mips_grok_prsta
   (bfd *, Elf_Internal_Note *);
 static bfd_boolean elf32_mips_grok_psinfo
   (bfd *, Elf_Internal_Note *);
+static bfd_boolean elf_n32_mips_grok_freebsd_prstatus
+  (bfd *, Elf_Internal_Note *);
 static irix_compat_t elf_n32_mips_irix_compat
   (bfd *);
+static bfd_boolean mips_elf_n32_mkobject
+  (bfd *);
 
 extern const bfd_target mips_elf32_n_be_vec;
 extern const bfd_target mips_elf32_n_le_vec;
@@ -173,7 +177,7 @@ static reloc_howto_type elf_mips_howto_t
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 			/* This needs complex overflow
+				/* This needs complex overflow
 				   detection, because the upper four
 				   bits must match the PC + 4.  */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
@@ -588,7 +592,7 @@ static reloc_howto_type elf_mips_howto_t
 
   /* Protected jump conversion.  This is an optimization hint.  No
      relocation is required for correctness.  */
-  HOWTO (R_MIPS_JALR,	        /* type */
+  HOWTO (R_MIPS_JALR,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -596,7 +600,7 @@ static reloc_howto_type elf_mips_howto_t
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
-	 "R_MIPS_JALR",	        /* name */
+	 "R_MIPS_JALR",		/* name */
 	 FALSE,			/* partial_inplace */
 	 0x00000000,		/* src_mask */
 	 0x00000000,		/* dst_mask */
@@ -1370,7 +1374,7 @@ static reloc_howto_type elf_mips_howto_t
 
   /* Protected jump conversion.  This is an optimization hint.  No
      relocation is required for correctness.  */
-  HOWTO (R_MIPS_JALR,	        /* type */
+  HOWTO (R_MIPS_JALR,		/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 32,			/* bitsize */
@@ -1378,7 +1382,7 @@ static reloc_howto_type elf_mips_howto_t
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
-	 "R_MIPS_JALR",	        /* name */
+	 "R_MIPS_JALR",		/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 0,			/* dst_mask */
@@ -1658,7 +1662,7 @@ static reloc_howto_type elf_mips16_howto
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 			/* This needs complex overflow
+				/* This needs complex overflow
 				   detection, because the upper four
 				   bits must match the PC.  */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
@@ -1680,7 +1684,7 @@ static reloc_howto_type elf_mips16_howto
 	 "R_MIPS16_GPREL",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0x0000ffff,		/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* A MIPS16 reference to the global offset table.  */
@@ -1695,7 +1699,7 @@ static reloc_howto_type elf_mips16_howto
 	 "R_MIPS16_GOT16",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0x0000ffff,		/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* A MIPS16 call through the global offset table.  */
@@ -1710,7 +1714,7 @@ static reloc_howto_type elf_mips16_howto
 	 "R_MIPS16_CALL16",	/* name */
 	 TRUE,			/* partial_inplace */
 	 0x0000ffff,		/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* MIPS16 high 16 bits of symbol value.  */
@@ -1874,7 +1878,7 @@ static reloc_howto_type elf_mips16_howto
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 			/* This needs complex overflow
+				/* This needs complex overflow
 				   detection, because the upper four
 				   bits must match the PC.  */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
@@ -1896,7 +1900,7 @@ static reloc_howto_type elf_mips16_howto
 	 "R_MIPS16_GPREL",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* A MIPS16 reference to the global offset table.  */
@@ -1911,7 +1915,7 @@ static reloc_howto_type elf_mips16_howto
 	 "R_MIPS16_GOT16",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* A MIPS16 call through the global offset table.  */
@@ -1926,7 +1930,7 @@ static reloc_howto_type elf_mips16_howto
 	 "R_MIPS16_CALL16",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
-	 0x0000ffff,	        /* dst_mask */
+	 0x0000ffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   /* MIPS16 high 16 bits of symbol value.  */
@@ -2094,7 +2098,7 @@ static reloc_howto_type elf_micromips_ho
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 			/* This needs complex overflow
+				/* This needs complex overflow
 				   detection, because the upper four
 				   bits must match the PC.  */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
@@ -2413,7 +2417,7 @@ static reloc_howto_type elf_micromips_ho
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
-	 			/* This needs complex overflow
+				/* This needs complex overflow
 				   detection, because the upper four
 				   bits must match the PC.  */
 	 _bfd_mips_elf_generic_reloc, /* special_function */
@@ -2834,8 +2838,8 @@ static reloc_howto_type elf_mips_copy_ho
 	 _bfd_mips_elf_generic_reloc, /* special_function */
 	 "R_MIPS_COPY",		/* name */
 	 FALSE,			/* partial_inplace */
-	 0x0,         		/* src_mask */
-	 0x0,		        /* dst_mask */
+	 0x0,			/* src_mask */
+	 0x0,			/* dst_mask */
 	 FALSE);		/* pcrel_offset */
 
 /* Originally a VxWorks extension, but now used for other systems too.  */
@@ -2850,8 +2854,8 @@ static reloc_howto_type elf_mips_jump_sl
 	 _bfd_mips_elf_generic_reloc, /* special_function */
 	 "R_MIPS_JUMP_SLOT",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0x0,         		/* src_mask */
-	 0x0,		        /* dst_mask */
+	 0x0,			/* src_mask */
+	 0x0,			/* dst_mask */
 	 FALSE);		/* pcrel_offset */
 
 /* Used in EH tables.  */
@@ -2867,7 +2871,7 @@ static reloc_howto_type elf_mips_eh_howt
 	 "R_MIPS_EH",		/* name */
 	 TRUE,			/* partial_inplace */
 	 0xffffffff,		/* src_mask */
-	 0xffffffff,	        /* dst_mask */
+	 0xffffffff,		/* dst_mask */
 	 FALSE);		/* pcrel_offset */
 
 
@@ -3558,6 +3562,8 @@ elf32_mips_grok_psinfo (bfd *abfd, Elf_I
 	return FALSE;
 
       case 128:		/* Linux/MIPS elf_prpsinfo */
+	elf_tdata (abfd)->core->pid
+	 = bfd_get_32 (abfd, note->descdata + 16);
 	elf_tdata (abfd)->core->program
 	 = _bfd_elfcore_strndup (abfd, note->descdata + 32, 16);
 	elf_tdata (abfd)->core->command
@@ -3578,6 +3584,95 @@ elf32_mips_grok_psinfo (bfd *abfd, Elf_I
 
   return TRUE;
 }
+
+static bfd_boolean
+elf_n32_mips_grok_freebsd_prstatus (bfd *abfd, Elf_Internal_Note *note)
+{
+  size_t offset;
+  size_t size;
+  size_t min_size;
+
+  /* Compute offset of pr_getregsz, skipping over pr_statussz.
+     Also compute minimum size of this note.  */
+  offset = 4 + 4;
+  min_size = offset + 4 * 2 + 4 + 4 + 4;
+
+  if (note->descsz < min_size)
+    return FALSE;
+
+  /* Check for version 1 in pr_version.  */
+  if (bfd_h_get_32 (abfd, (bfd_byte *) note->descdata) != 1)
+    return FALSE;
+
+  /* Extract size of pr_reg from pr_gregsetsz.  */
+  /* Skip over pr_gregsetsz and pr_fpregsetsz.  */
+  size = bfd_h_get_32 (abfd, (bfd_byte *) note->descdata + offset);
+  offset += 4 * 2;
+
+  /* Skip over pr_osreldate.  */
+  offset += 4;
+
+  /* Read signal from pr_cursig.  */
+  if (elf_tdata (abfd)->core->signal == 0)
+    elf_tdata (abfd)->core->signal
+      = bfd_h_get_32 (abfd, (bfd_byte *) note->descdata + offset);
+  offset += 4;
+
+  /* Read TID from pr_pid.  */
+  elf_tdata (abfd)->core->lwpid
+      = bfd_h_get_32 (abfd, (bfd_byte *) note->descdata + offset);
+  offset += 4;
+
+  /* Padding before pr_reg.  */
+  offset += 4;
+
+  /* Make sure that there is enough data remaining in the note.  */
+  if (note->descsz - offset < size)
+    return FALSE;
+
+  /* Make a ".reg/999" section and a ".reg" section.  */
+  return _bfd_elfcore_make_pseudosection (abfd, ".reg",
+					  size, note->descpos + offset);
+}
+
+/* Write Linux core PRSTATUS note into core file.  */
+
+static char *
+elf32_mips_write_core_note (bfd *abfd, char *buf, int *bufsiz, int note_type,
+			     ...)
+{
+  switch (note_type)
+    {
+    default:
+      return NULL;
+
+    case NT_PRPSINFO:
+      BFD_FAIL ();
+      return NULL;
+
+    case NT_PRSTATUS:
+      {
+	char data[440];
+	va_list ap;
+	long pid;
+	int cursig;
+	const void *greg;
+
+	va_start (ap, note_type);
+	memset (data, 0, 72);
+	pid = va_arg (ap, long);
+	bfd_put_32 (abfd, pid, data + 24);
+	cursig = va_arg (ap, int);
+	bfd_put_16 (abfd, cursig, data + 12);
+	greg = va_arg (ap, const void *);
+	memcpy (data + 72, greg, 360);
+	memset (data + 432, 0, 8);
+	va_end (ap);
+	return elfcore_write_note (abfd, buf, bufsiz,
+				   "CORE", note_type, data, sizeof (data));
+      }
+    }
+}
 
 /* Depending on the target vector we generate some version of Irix
    executables or "normal" MIPS ELF ABI executables.  */
@@ -3591,6 +3686,21 @@ elf_n32_mips_irix_compat (bfd *abfd)
     return ict_none;
 }
 
+/* Make an n32 MIPS object.  We need to set the n32 ABI flag in
+   `e_flags' to tell the object apart from an o32 object.  */
+
+static bfd_boolean
+mips_elf_n32_mkobject (bfd *abfd)
+{
+  bfd_boolean ret;
+
+  ret = _bfd_mips_elf_mkobject (abfd);
+  if (ret)
+    elf_elfheader (abfd)->e_flags |= EF_MIPS_ABI2;
+
+  return ret;
+}
+
 /* ECOFF swapping routines.  These are used when dealing with the
    .mdebug section, which is in the ECOFF debugging format.  */
 static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = {
@@ -3684,6 +3794,8 @@ static const struct ecoff_debug_swap mip
 					_bfd_mips_elf_copy_indirect_symbol
 #define elf_backend_grok_prstatus	elf32_mips_grok_prstatus
 #define elf_backend_grok_psinfo		elf32_mips_grok_psinfo
+#define elf_backend_grok_freebsd_prstatus \
+					elf_n32_mips_grok_freebsd_prstatus
 #define elf_backend_ecoff_debug_swap	&mips_elf32_ecoff_debug_swap
 
 #define elf_backend_got_header_size	(4 * MIPS_RESERVED_GOTNO)
@@ -3721,14 +3833,14 @@ static const struct ecoff_debug_swap mip
 #define bfd_elf32_bfd_set_private_flags	_bfd_mips_elf_set_private_flags
 #define bfd_elf32_bfd_print_private_bfd_data \
 					_bfd_mips_elf_print_private_bfd_data
-#define bfd_elf32_mkobject		_bfd_mips_elf_mkobject
+#define bfd_elf32_mkobject		mips_elf_n32_mkobject
 
 /* Support for SGI-ish mips targets using n32 ABI.  */
 
-#define TARGET_LITTLE_SYM               mips_elf32_n_le_vec
-#define TARGET_LITTLE_NAME              "elf32-nlittlemips"
-#define TARGET_BIG_SYM                  mips_elf32_n_be_vec
-#define TARGET_BIG_NAME                 "elf32-nbigmips"
+#define TARGET_LITTLE_SYM		mips_elf32_n_le_vec
+#define TARGET_LITTLE_NAME		"elf32-nlittlemips"
+#define TARGET_BIG_SYM			mips_elf32_n_be_vec
+#define TARGET_BIG_NAME			"elf32-nbigmips"
 
 #define ELF_MAXPAGESIZE			0x10000
 #define ELF_COMMONPAGESIZE		0x1000
@@ -3744,15 +3856,18 @@ static const struct ecoff_debug_swap mip
 #undef ELF_MAXPAGESIZE
 #undef ELF_COMMONPAGESIZE
 
-#define TARGET_LITTLE_SYM               mips_elf32_ntrad_le_vec
-#define TARGET_LITTLE_NAME              "elf32-ntradlittlemips"
-#define TARGET_BIG_SYM                  mips_elf32_ntrad_be_vec
-#define TARGET_BIG_NAME                 "elf32-ntradbigmips"
+#define TARGET_LITTLE_SYM		mips_elf32_ntrad_le_vec
+#define TARGET_LITTLE_NAME		"elf32-ntradlittlemips"
+#define TARGET_BIG_SYM			mips_elf32_ntrad_be_vec
+#define TARGET_BIG_NAME			"elf32-ntradbigmips"
 
 #define ELF_MAXPAGESIZE			0x10000
 #define ELF_COMMONPAGESIZE		0x1000
 #define elf32_bed			elf32_tradbed
 
+#undef elf_backend_write_core_note
+#define elf_backend_write_core_note	elf32_mips_write_core_note
+
 /* Include the target file again for this target.  */
 #include "elf32-target.h"
 
@@ -3775,4 +3890,6 @@ static const struct ecoff_debug_swap mip
 #undef	elf32_bed
 #define elf32_bed				elf32_fbsd_tradbed
 
+#undef elf_backend_write_core_note
+
 #include "elf32-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-nacl.c ./bfd/elf-nacl.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-nacl.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-nacl.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Native Client support for ELF
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-nacl.h ./bfd/elf-nacl.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-nacl.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-nacl.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Native Client support for ELF
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfnn-aarch64.c ./bfd/elfnn-aarch64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfnn-aarch64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfnn-aarch64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* AArch64-specific support for NN-bit ELF.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -31,20 +31,20 @@
   fragments of the form:
 
   adrp x0, :tlsgd:foo
-                           R_AARCH64_TLSGD_ADR_PAGE21(foo)
+			   R_AARCH64_TLSGD_ADR_PAGE21(foo)
   add  x0, :tlsgd_lo12:foo
-                           R_AARCH64_TLSGD_ADD_LO12_NC(foo)
+			   R_AARCH64_TLSGD_ADD_LO12_NC(foo)
   bl   __tls_get_addr
   nop
 
   For TLS descriptors the assembler will present us with code
   fragments of the form:
 
-  adrp  x0, :tlsdesc:foo                      R_AARCH64_TLSDESC_ADR_PAGE21(foo)
-  ldr   x1, [x0, #:tlsdesc_lo12:foo]          R_AARCH64_TLSDESC_LD64_LO12(foo)
-  add   x0, x0, #:tlsdesc_lo12:foo            R_AARCH64_TLSDESC_ADD_LO12(foo)
+  adrp	x0, :tlsdesc:foo		      R_AARCH64_TLSDESC_ADR_PAGE21(foo)
+  ldr	x1, [x0, #:tlsdesc_lo12:foo]	      R_AARCH64_TLSDESC_LD64_LO12(foo)
+  add	x0, x0, #:tlsdesc_lo12:foo	      R_AARCH64_TLSDESC_ADD_LO12(foo)
   .tlsdesccall foo
-  blr   x1                                    R_AARCH64_TLSDESC_CALL(foo)
+  blr	x1				      R_AARCH64_TLSDESC_CALL(foo)
 
   The relocations R_AARCH64_TLSGD_{ADR_PREL21,ADD_LO12_NC} against foo
   indicate that foo is thread local and should be accessed via the
@@ -163,8 +163,8 @@
 #define HOWTO64(...)		EMPTY_HOWTO (0)
 #define HOWTO32(...)		HOWTO (__VA_ARGS__)
 #define LOG_FILE_ALIGN	2
-#define BFD_RELOC_AARCH64_TLSDESC_LD32_LO12     BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC
-#define R_AARCH64_P32_TLSDESC_ADD_LO12          R_AARCH64_P32_TLSDESC_ADD_LO12_NC
+#define BFD_RELOC_AARCH64_TLSDESC_LD32_LO12	BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC
+#define R_AARCH64_P32_TLSDESC_ADD_LO12		R_AARCH64_P32_TLSDESC_ADD_LO12_NC
 #endif
 
 #define IS_AARCH64_TLS_RELOC(R_TYPE)				\
@@ -249,17 +249,17 @@
    || (R_TYPE) == BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC		\
    || (R_TYPE) == BFD_RELOC_AARCH64_TLSDESC_OFF_G1)
 
-#define ELIMINATE_COPY_RELOCS 0
+#define ELIMINATE_COPY_RELOCS 1
 
 /* Return size of a relocation entry.  HTAB is the bfd's
    elf_aarch64_link_hash_entry.  */
 #define RELOC_SIZE(HTAB) (sizeof (ElfNN_External_Rela))
 
 /* GOT Entry size - 8 bytes in ELF64 and 4 bytes in ELF32.  */
-#define GOT_ENTRY_SIZE                  (ARCH_SIZE / 8)
-#define PLT_ENTRY_SIZE                  (32)
-#define PLT_SMALL_ENTRY_SIZE            (16)
-#define PLT_TLSDESC_ENTRY_SIZE          (32)
+#define GOT_ENTRY_SIZE			(ARCH_SIZE / 8)
+#define PLT_ENTRY_SIZE			(32)
+#define PLT_SMALL_ENTRY_SIZE		(16)
+#define PLT_TLSDESC_ENTRY_SIZE		(32)
 
 /* Encoding of the nop instruction.  */
 #define INSN_NOP 0xd503201f
@@ -324,8 +324,8 @@ elfNN_aarch64_tlsdesc_small_plt_entry[PL
   0x1f, 0x20, 0x03, 0xd5,	/* nop */
 };
 
-#define elf_info_to_howto               elfNN_aarch64_info_to_howto
-#define elf_info_to_howto_rel           elfNN_aarch64_info_to_howto
+#define elf_info_to_howto		elfNN_aarch64_info_to_howto
+#define elf_info_to_howto_rel		elfNN_aarch64_info_to_howto
 
 #define AARCH64_ELF_ABI_VERSION		0
 
@@ -1870,7 +1870,7 @@ elfNN_aarch64_bfd_reloc_from_type (unsig
   /* Indexed by R_TYPE, values are offsets in the howto_table.  */
   static unsigned int offsets[R_AARCH64_end];
 
-  if (initialized_p == FALSE)
+  if (!initialized_p)
     {
       unsigned int i;
 
@@ -2009,10 +2009,10 @@ elfNN_aarch64_reloc_name_lookup (bfd *ab
   return NULL;
 }
 
-#define TARGET_LITTLE_SYM               aarch64_elfNN_le_vec
-#define TARGET_LITTLE_NAME              "elfNN-littleaarch64"
-#define TARGET_BIG_SYM                  aarch64_elfNN_be_vec
-#define TARGET_BIG_NAME                 "elfNN-bigaarch64"
+#define TARGET_LITTLE_SYM		aarch64_elfNN_le_vec
+#define TARGET_LITTLE_NAME		"elfNN-littleaarch64"
+#define TARGET_BIG_SYM			aarch64_elfNN_be_vec
+#define TARGET_BIG_NAME			"elfNN-bigaarch64"
 
 /* The linker script knows the section names for placement.
    The entry_names are used to do simple name mangling on the stubs.
@@ -2610,6 +2610,8 @@ elfNN_aarch64_link_hash_table_create (bf
   return &ret->root.root;
 }
 
+/* Perform relocation R_TYPE.  Returns TRUE upon success, FALSE otherwise.  */
+
 static bfd_boolean
 aarch64_relocate (unsigned int r_type, bfd *input_bfd, asection *input_section,
 		  bfd_vma offset, bfd_vma value)
@@ -2625,7 +2627,7 @@ aarch64_relocate (unsigned int r_type, b
   value = _bfd_aarch64_elf_resolve_relocation (r_type, place, value, 0, FALSE);
   return _bfd_aarch64_elf_put_addend (input_bfd,
 				      input_section->contents + offset, r_type,
-				      howto, value);
+				      howto, value) == bfd_reloc_ok;
 }
 
 static enum elf_aarch64_stub_type
@@ -2965,22 +2967,22 @@ aarch64_build_one_stub (struct bfd_hash_
   switch (stub_entry->stub_type)
     {
     case aarch64_stub_adrp_branch:
-      if (aarch64_relocate (AARCH64_R (ADR_PREL_PG_HI21), stub_bfd, stub_sec,
-			    stub_entry->stub_offset, sym_value))
+      if (!aarch64_relocate (AARCH64_R (ADR_PREL_PG_HI21), stub_bfd, stub_sec,
+			     stub_entry->stub_offset, sym_value))
 	/* The stub would not have been relaxed if the offset was out
 	   of range.  */
 	BFD_FAIL ();
 
-      if (aarch64_relocate (AARCH64_R (ADD_ABS_LO12_NC), stub_bfd, stub_sec,
-			    stub_entry->stub_offset + 4, sym_value))
+      if (!aarch64_relocate (AARCH64_R (ADD_ABS_LO12_NC), stub_bfd, stub_sec,
+			     stub_entry->stub_offset + 4, sym_value))
 	BFD_FAIL ();
       break;
 
     case aarch64_stub_long_branch:
       /* We want the value relative to the address 12 bytes back from the
-         value itself.  */
-      if (aarch64_relocate (AARCH64_R (PRELNN), stub_bfd, stub_sec,
-			    stub_entry->stub_offset + 16, sym_value + 12))
+	 value itself.  */
+      if (!aarch64_relocate (AARCH64_R (PRELNN), stub_bfd, stub_sec,
+			     stub_entry->stub_offset + 16, sym_value + 12))
 	BFD_FAIL ();
       break;
 
@@ -3001,8 +3003,8 @@ aarch64_build_one_stub (struct bfd_hash_
       break;
 
     case aarch64_stub_erratum_843419_veneer:
-      if (aarch64_relocate (AARCH64_R (JUMP26), stub_bfd, stub_sec,
-			    stub_entry->stub_offset + 4, sym_value + 4))
+      if (!aarch64_relocate (AARCH64_R (JUMP26), stub_bfd, stub_sec,
+			     stub_entry->stub_offset + 4, sym_value + 4))
 	BFD_FAIL ();
       break;
 
@@ -3281,7 +3283,7 @@ aarch64_mem_op_p (uint32_t insn, unsigne
   uint32_t v = 0;
   uint32_t opc_v = 0;
 
-  /* Bail out quickly if INSN doesn't fall into the the load-store
+  /* Bail out quickly if INSN doesn't fall into the load-store
      encoding space.  */
   if (!AARCH64_LDST (insn))
     return FALSE;
@@ -3293,7 +3295,7 @@ aarch64_mem_op_p (uint32_t insn, unsigne
       *rt = AARCH64_RT (insn);
       *rt2 = *rt;
       if (AARCH64_BIT (insn, 21) == 1)
-        {
+	{
 	  *pair = TRUE;
 	  *rt2 = AARCH64_RT2 (insn);
 	}
@@ -4578,7 +4580,7 @@ aarch64_can_relax_tls (bfd *input_bfd,
   if (symbol_got_type == GOT_TLS_IE && GOT_TLS_GD_ANY_P (reloc_got_type))
     return TRUE;
 
-  if (bfd_link_pic (info))
+  if (!bfd_link_executable (info))
     return FALSE;
 
   if  (h && h->root.type == bfd_link_hash_undefweak)
@@ -4907,6 +4909,18 @@ elfNN_aarch64_write_section (bfd *output
   return FALSE;
 }
 
+/* Return TRUE if RELOC is a relocation against the base of GOT table.  */
+
+static bfd_boolean
+aarch64_relocation_aginst_gp_p (bfd_reloc_code_real_type reloc)
+{
+  return (reloc == BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14
+	  || reloc == BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15
+	  || reloc == BFD_RELOC_AARCH64_LD64_GOTOFF_LO15
+	  || reloc == BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC
+	  || reloc == BFD_RELOC_AARCH64_MOVW_GOTOFF_G1);
+}
+
 /* Perform a relocation as part of a final link.  The input relocation type
    should be TLS relaxed.  */
 
@@ -4932,11 +4946,14 @@ elfNN_aarch64_final_link_relocate (reloc
     = elfNN_aarch64_bfd_reloc_from_howto (howto);
   unsigned long r_symndx;
   bfd_byte *hit_data = contents + rel->r_offset;
-  bfd_vma place, off;
+  bfd_vma place, off, got_entry_addr = 0;
   bfd_signed_vma signed_addend;
   struct elf_aarch64_link_hash_table *globals;
   bfd_boolean weak_undef_p;
+  bfd_boolean relative_reloc;
   asection *base_got;
+  bfd_vma orig_value = value;
+  bfd_boolean resolved_to_zero;
 
   globals = elf_aarch64_hash_table (info);
 
@@ -4967,9 +4984,27 @@ elfNN_aarch64_final_link_relocate (reloc
       const char *name;
       bfd_vma addend = 0;
 
-      if ((input_section->flags & SEC_ALLOC) == 0
-	  || h->plt.offset == (bfd_vma) -1)
-	abort ();
+      if ((input_section->flags & SEC_ALLOC) == 0)
+	{
+	  /* Dynamic relocs are not propagated for SEC_DEBUGGING
+	     sections because such sections are not SEC_ALLOC and
+	     thus ld.so will not process them.  */
+	  if ((input_section->flags & SEC_DEBUGGING) != 0)
+	    return bfd_reloc_ok;
+
+	  if (h->root.root.string)
+	    name = h->root.root.string;
+	  else
+	    name = bfd_elf_sym_name (input_bfd, symtab_hdr, sym, NULL);
+	  _bfd_error_handler
+	    /* xgettext:c-format */
+	    (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
+	     input_bfd, input_section, rel->r_offset, howto->name, name);
+	  bfd_set_error (bfd_error_bad_value);
+	  return bfd_reloc_notsupported;
+	}
+      else if (h->plt.offset == (bfd_vma) -1)
+	goto bad_ifunc_reloc;
 
       /* STT_GNU_IFUNC symbol must go through PLT.  */
       plt = globals->root.splt ? globals->root.splt : globals->root.iplt;
@@ -4978,6 +5013,7 @@ elfNN_aarch64_final_link_relocate (reloc
       switch (bfd_r_type)
 	{
 	default:
+bad_ifunc_reloc:
 	  if (h->root.root.string)
 	    name = h->root.root.string;
 	  else
@@ -4989,7 +5025,7 @@ elfNN_aarch64_final_link_relocate (reloc
 	       "symbol `%s' isn't handled by %s"), input_bfd,
 	     howto->name, name, __FUNCTION__);
 	  bfd_set_error (bfd_error_bad_value);
-	  return FALSE;
+	  return bfd_reloc_notsupported;
 
 	case BFD_RELOC_AARCH64_NN:
 	  if (rel->r_addend != 0)
@@ -5002,10 +5038,10 @@ elfNN_aarch64_final_link_relocate (reloc
 	      _bfd_error_handler
 		/* xgettext:c-format */
 		(_("%B: relocation %s against STT_GNU_IFUNC "
-		   "symbol `%s' has non-zero addend: %d"),
+		   "symbol `%s' has non-zero addend: %Ld"),
 		 input_bfd, howto->name, name, rel->r_addend);
 	      bfd_set_error (bfd_error_bad_value);
-	      return FALSE;
+	      return bfd_reloc_notsupported;
 	    }
 
 	  /* Generate dynamic relocation only when there is a
@@ -5130,21 +5166,9 @@ elfNN_aarch64_final_link_relocate (reloc
 						     value, output_bfd,
 						     unresolved_reloc_p);
 
-	  switch (bfd_r_type)
-	    {
-	    case BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14:
-	    case BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15:
-	      addend = (globals->root.sgot->output_section->vma
-			+ globals->root.sgot->output_offset);
-	      break;
-	    case BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC:
-	    case BFD_RELOC_AARCH64_MOVW_GOTOFF_G1:
-	    case BFD_RELOC_AARCH64_LD64_GOTOFF_LO15:
-	      value = (value - globals->root.sgot->output_section->vma
-		       - globals->root.sgot->output_offset);
-	    default:
-	      break;
-	    }
+	  if (aarch64_relocation_aginst_gp_p (bfd_r_type))
+	    addend = (globals->root.sgot->output_section->vma
+		      + globals->root.sgot->output_offset);
 
 	  value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
 						       addend, weak_undef_p);
@@ -5155,6 +5179,9 @@ elfNN_aarch64_final_link_relocate (reloc
 	}
     }
 
+  resolved_to_zero = (h != NULL
+		      && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h));
+
   switch (bfd_r_type)
     {
     case BFD_RELOC_AARCH64_NONE:
@@ -5167,14 +5194,28 @@ elfNN_aarch64_final_link_relocate (reloc
     case BFD_RELOC_AARCH64_NN:
 
       /* When generating a shared object or relocatable executable, these
-         relocations are copied into the output file to be resolved at
-         run time.  */
-      if (((bfd_link_pic (info) == TRUE)
-	   || globals->root.is_relocatable_executable)
-	  && (input_section->flags & SEC_ALLOC)
-	  && (h == NULL
-	      || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-	      || h->root.type != bfd_link_hash_undefweak))
+	 relocations are copied into the output file to be resolved at
+	 run time.  */
+      if (((bfd_link_pic (info)
+	    || globals->root.is_relocatable_executable)
+	   && (input_section->flags & SEC_ALLOC)
+	   && (h == NULL
+	       || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		   && !resolved_to_zero)
+	       || h->root.type != bfd_link_hash_undefweak))
+	  /* Or we are creating an executable, we may need to keep relocations
+	     for symbols satisfied by a dynamic library if we manage to avoid
+	     copy relocs for the symbol.  */
+	  || (ELIMINATE_COPY_RELOCS
+	      && !bfd_link_pic (info)
+	      && h != NULL
+	      && (input_section->flags & SEC_ALLOC)
+	      && h->dynindx != -1
+	      && !h->non_got_ref
+	      && ((h->def_dynamic
+		   && !h->def_regular)
+		  || h->root.type == bfd_link_hash_undefweak
+		  || h->root.type == bfd_link_hash_undefined)))
 	{
 	  Elf_Internal_Rela outrel;
 	  bfd_byte *loc;
@@ -5316,19 +5357,19 @@ elfNN_aarch64_final_link_relocate (reloc
       if (bfd_link_pic (info)
 	  && (input_section->flags & SEC_ALLOC) != 0
 	  && (input_section->flags & SEC_READONLY) != 0
-	  && h != NULL
-	  && !h->def_regular)
+	  && !SYMBOL_REFERENCES_LOCAL (info, h))
 	{
 	  int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START;
 
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: relocation %s against external symbol `%s' can not be used"
-	       " when making a shared object; recompile with -fPIC"),
+	    (_("%B: relocation %s against symbol `%s' which may bind "
+	       "externally can not be used when making a shared object; "
+	       "recompile with -fPIC"),
 	     input_bfd, elfNN_aarch64_howto_table[howto_index].name,
 	     h->root.root.string);
 	  bfd_set_error (bfd_error_bad_value);
-	  return FALSE;
+	  return bfd_reloc_notsupported;
 	}
       /* Fall through.  */
 
@@ -5364,17 +5405,39 @@ elfNN_aarch64_final_link_relocate (reloc
     case BFD_RELOC_AARCH64_LD32_GOT_LO12_NC:
     case BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15:
     case BFD_RELOC_AARCH64_LD64_GOT_LO12_NC:
+    case BFD_RELOC_AARCH64_LD64_GOTOFF_LO15:
+    case BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC:
+    case BFD_RELOC_AARCH64_MOVW_GOTOFF_G1:
       if (globals->root.sgot == NULL)
 	BFD_ASSERT (h != NULL);
 
+      relative_reloc = FALSE;
       if (h != NULL)
 	{
 	  bfd_vma addend = 0;
+
+	  /* If a symbol is not dynamic and is not undefined weak, bind it
+	     locally and generate a RELATIVE relocation under PIC mode.
+
+	     NOTE: one symbol may be referenced by several relocations, we
+	     should only generate one RELATIVE relocation for that symbol.
+	     Therefore, check GOT offset mark first.  */
+	  if (h->dynindx == -1
+	      && !h->forced_local
+	      && h->root.type != bfd_link_hash_undefweak
+	      && bfd_link_pic (info)
+	      && !symbol_got_offset_mark_p (input_bfd, h, r_symndx))
+	    relative_reloc = TRUE;
+
 	  value = aarch64_calculate_got_entry_vma (h, globals, info, value,
 						   output_bfd,
 						   unresolved_reloc_p);
-	  if (bfd_r_type == BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15
-	      || bfd_r_type == BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14)
+	  /* Record the GOT entry address which will be used when generating
+	     RELATIVE relocation.  */
+	  if (relative_reloc)
+	    got_entry_addr = value;
+
+	  if (aarch64_relocation_aginst_gp_p (bfd_r_type))
 	    addend = (globals->root.sgot->output_section->vma
 		      + globals->root.sgot->output_offset);
 	  value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
@@ -5399,32 +5462,20 @@ elfNN_aarch64_final_link_relocate (reloc
 
 	off = symbol_got_offset (input_bfd, h, r_symndx);
 	base_got = globals->root.sgot;
-	bfd_vma got_entry_addr = (base_got->output_section->vma
-				  + base_got->output_offset + off);
+	got_entry_addr = (base_got->output_section->vma
+			  + base_got->output_offset + off);
 
 	if (!symbol_got_offset_mark_p (input_bfd, h, r_symndx))
 	  {
 	    bfd_put_64 (output_bfd, value, base_got->contents + off);
 
+	    /* For local symbol, we have done absolute relocation in static
+	       linking stage.  While for shared library, we need to update the
+	       content of GOT entry according to the shared object's runtime
+	       base address.  So, we need to generate a R_AARCH64_RELATIVE reloc
+	       for dynamic linker.  */
 	    if (bfd_link_pic (info))
-	      {
-		asection *s;
-		Elf_Internal_Rela outrel;
-
-		/* For local symbol, we have done absolute relocation in static
-		   linking stageh. While for share library, we need to update
-		   the content of GOT entry according to the share objects
-		   loading base address. So we need to generate a
-		   R_AARCH64_RELATIVE reloc for dynamic linker.  */
-		s = globals->root.srelgot;
-		if (s == NULL)
-		  abort ();
-
-		outrel.r_offset = got_entry_addr;
-		outrel.r_info = ELFNN_R_INFO (0, AARCH64_R (RELATIVE));
-		outrel.r_addend = value;
-		elf_append_rela (output_bfd, s, &outrel);
-	      }
+	      relative_reloc = TRUE;
 
 	    symbol_got_offset_mark (input_bfd, h, r_symndx);
 	  }
@@ -5433,81 +5484,27 @@ elfNN_aarch64_final_link_relocate (reloc
 	   the direct data access into indirect data access through GOT.  */
 	value = got_entry_addr;
 
-	if (bfd_r_type == BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15
-	    || bfd_r_type == BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14)
+	if (aarch64_relocation_aginst_gp_p (bfd_r_type))
 	  addend = base_got->output_section->vma + base_got->output_offset;
 
 	value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
 						     addend, weak_undef_p);
       }
 
-      break;
-
-    case BFD_RELOC_AARCH64_LD64_GOTOFF_LO15:
-    case BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC:
-    case BFD_RELOC_AARCH64_MOVW_GOTOFF_G1:
-      if (h != NULL)
-	  value = aarch64_calculate_got_entry_vma (h, globals, info, value,
-						   output_bfd,
-						   unresolved_reloc_p);
-      else
+      if (relative_reloc)
 	{
-	  struct elf_aarch64_local_symbol *locals
-	    = elf_aarch64_locals (input_bfd);
-
-	  if (locals == NULL)
-	    {
-	      int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START;
-	      _bfd_error_handler
-		/* xgettext:c-format */
-		(_("%B: Local symbol descriptor table be NULL when applying "
-		   "relocation %s against local symbol"),
-		 input_bfd, elfNN_aarch64_howto_table[howto_index].name);
-	      abort ();
-	    }
+	  asection *s;
+	  Elf_Internal_Rela outrel;
 
-	  off = symbol_got_offset (input_bfd, h, r_symndx);
-	  base_got = globals->root.sgot;
-	  if (base_got == NULL)
+	  s = globals->root.srelgot;
+	  if (s == NULL)
 	    abort ();
 
-	  bfd_vma got_entry_addr = (base_got->output_section->vma
-				    + base_got->output_offset + off);
-
-	  if (!symbol_got_offset_mark_p (input_bfd, h, r_symndx))
-	    {
-	      bfd_put_64 (output_bfd, value, base_got->contents + off);
-
-	      if (bfd_link_pic (info))
-		{
-		  asection *s;
-		  Elf_Internal_Rela outrel;
-
-		  /* For local symbol, we have done absolute relocation in static
-		     linking stage.  While for share library, we need to update
-		     the content of GOT entry according to the share objects
-		     loading base address.  So we need to generate a
-		     R_AARCH64_RELATIVE reloc for dynamic linker.  */
-		  s = globals->root.srelgot;
-		  if (s == NULL)
-		    abort ();
-
-		  outrel.r_offset = got_entry_addr;
-		  outrel.r_info = ELFNN_R_INFO (0, AARCH64_R (RELATIVE));
-		  outrel.r_addend = value;
-		  elf_append_rela (output_bfd, s, &outrel);
-		}
-
-	      symbol_got_offset_mark (input_bfd, h, r_symndx);
-	    }
+	  outrel.r_offset = got_entry_addr;
+	  outrel.r_info = ELFNN_R_INFO (0, AARCH64_R (RELATIVE));
+	  outrel.r_addend = orig_value;
+	  elf_append_rela (output_bfd, s, &outrel);
 	}
-
-      /* Update the relocation value to GOT entry addr as we have transformed
-	 the direct data access into indirect data access through GOT.  */
-      value = symbol_got_offset (input_bfd, h, r_symndx);
-      value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
-						   0, weak_undef_p);
-      *unresolved_reloc_p = FALSE;
       break;
 
     case BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC:
@@ -5712,10 +5709,10 @@ elfNN_aarch64_tls_relax (struct elf_aarc
       if (is_local)
 	{
 	  /* Tiny TLSDESC->LE relaxation:
-	     ldr   x1, :tlsdesc:var      =>  movz  R0, #:tprel_g1:var
-	     adr   x0, :tlsdesc:var      =>  movk  R0, #:tprel_g0_nc:var
+	     ldr   x1, :tlsdesc:var	 =>  movz  R0, #:tprel_g1:var
+	     adr   x0, :tlsdesc:var	 =>  movk  R0, #:tprel_g0_nc:var
 	     .tlsdesccall var
-	     blr   x1                    =>  nop
+	     blr   x1			 =>  nop
 
 	     Where R is x for LP64, and w for ILP32.  */
 	  BFD_ASSERT (ELFNN_R_TYPE (rel[1].r_info) == AARCH64_R (TLSDESC_ADR_PREL21));
@@ -5733,10 +5730,10 @@ elfNN_aarch64_tls_relax (struct elf_aarc
       else
 	{
 	  /* Tiny TLSDESC->IE relaxation:
-	     ldr   x1, :tlsdesc:var      =>  ldr   x0, :gottprel:var
-	     adr   x0, :tlsdesc:var      =>  nop
+	     ldr   x1, :tlsdesc:var	 =>  ldr   x0, :gottprel:var
+	     adr   x0, :tlsdesc:var	 =>  nop
 	     .tlsdesccall var
-	     blr   x1                    =>  nop
+	     blr   x1			 =>  nop
 	   */
 	  BFD_ASSERT (ELFNN_R_TYPE (rel[1].r_info) == AARCH64_R (TLSDESC_ADR_PREL21));
 	  BFD_ASSERT (ELFNN_R_TYPE (rel[2].r_info) == AARCH64_R (TLSDESC_CALL));
@@ -5754,9 +5751,9 @@ elfNN_aarch64_tls_relax (struct elf_aarc
       if (is_local)
 	{
 	  /* Tiny GD->LE relaxation:
-	     adr x0, :tlsgd:var      =>   mrs  x1, tpidr_el0
-             bl   __tls_get_addr     =>   add  R0, R1, #:tprel_hi12:x, lsl #12
-             nop                     =>   add  R0, R0, #:tprel_lo12_nc:x
+	     adr x0, :tlsgd:var	     =>	  mrs  x1, tpidr_el0
+	     bl	  __tls_get_addr     =>	  add  R0, R1, #:tprel_hi12:x, lsl #12
+	     nop		     =>	  add  R0, R0, #:tprel_lo12_nc:x
 
 	     Where R is x for LP64, and x for Ilp32.  */
 
@@ -5781,9 +5778,9 @@ elfNN_aarch64_tls_relax (struct elf_aarc
       else
 	{
 	  /* Tiny GD->IE relaxation:
-	     adr x0, :tlsgd:var	     =>   ldr  R0, :gottprel:var
-	     bl   __tls_get_addr     =>   mrs  x1, tpidr_el0
-	     nop                     =>   add  R0, R0, R1
+	     adr x0, :tlsgd:var	     =>	  ldr  R0, :gottprel:var
+	     bl	  __tls_get_addr     =>	  mrs  x1, tpidr_el0
+	     nop		     =>	  add  R0, R0, R1
 
 	     Where R is x for LP64, and w for Ilp32.  */
 
@@ -5806,11 +5803,11 @@ elfNN_aarch64_tls_relax (struct elf_aarc
       if (is_local)
 	{
 	  /* Large GD->LE relaxation:
-	     movz x0, #:tlsgd_g1:var    => movz x0, #:tprel_g2:var, lsl #32
+	     movz x0, #:tlsgd_g1:var	=> movz x0, #:tprel_g2:var, lsl #32
 	     movk x0, #:tlsgd_g0_nc:var => movk x0, #:tprel_g1_nc:var, lsl #16
-	     add x0, gp, x0             => movk x0, #:tprel_g0_nc:var
-	     bl __tls_get_addr          => mrs x1, tpidr_el0
-	     nop                        => add x0, x0, x1
+	     add x0, gp, x0		=> movk x0, #:tprel_g0_nc:var
+	     bl __tls_get_addr		=> mrs x1, tpidr_el0
+	     nop			=> add x0, x0, x1
 	   */
 	  rel[2].r_info = ELFNN_R_INFO (ELFNN_R_SYM (rel->r_info),
 					AARCH64_R (TLSLE_MOVW_TPREL_G0_NC));
@@ -5825,11 +5822,11 @@ elfNN_aarch64_tls_relax (struct elf_aarc
       else
 	{
 	  /* Large GD->IE relaxation:
-	     movz x0, #:tlsgd_g1:var    => movz x0, #:gottprel_g1:var, lsl #16
+	     movz x0, #:tlsgd_g1:var	=> movz x0, #:gottprel_g1:var, lsl #16
 	     movk x0, #:tlsgd_g0_nc:var => movk x0, #:gottprel_g0_nc:var
-	     add x0, gp, x0             => ldr x0, [gp, x0]
-	     bl __tls_get_addr          => mrs x1, tpidr_el0
-	     nop                        => add x0, x0, x1
+	     add x0, gp, x0		=> ldr x0, [gp, x0]
+	     bl __tls_get_addr		=> mrs x1, tpidr_el0
+	     nop			=> add x0, x0, x1
 	   */
 	  rel[2].r_info = ELFNN_R_INFO (STN_UNDEF, R_AARCH64_NONE);
 	  bfd_putl32 (0xd2a80000, contents + rel->r_offset + 0);
@@ -5871,9 +5868,9 @@ elfNN_aarch64_tls_relax (struct elf_aarc
       if (is_local)
 	{
 	  /* GD->LE relaxation
-	     add  x0, #:tlsgd_lo12:var  => movk R0, :tprel_g0_nc:var
-	     bl   __tls_get_addr        => mrs  x1, tpidr_el0
-	     nop                        => add  R0, R1, R0
+	     add  x0, #:tlsgd_lo12:var	=> movk R0, :tprel_g0_nc:var
+	     bl	  __tls_get_addr	=> mrs	x1, tpidr_el0
+	     nop			=> add	R0, R1, R0
 
 	     Where R is x for lp64 mode, and w for ILP32 mode.  */
 
@@ -5889,10 +5886,10 @@ elfNN_aarch64_tls_relax (struct elf_aarc
       else
 	{
 	  /* GD->IE relaxation
-	     ADD  x0, #:tlsgd_lo12:var  => ldr  R0, [x0, #:gottprel_lo12:var]
-	     BL   __tls_get_addr        => mrs  x1, tpidr_el0
+	     ADD  x0, #:tlsgd_lo12:var	=> ldr	R0, [x0, #:gottprel_lo12:var]
+	     BL	  __tls_get_addr	=> mrs	x1, tpidr_el0
 	       R_AARCH64_CALL26
-	     NOP                        => add  R0, R1, R0
+	     NOP			=> add	R0, R1, R0
 
 	     Where R is x for lp64 mode, and w for ilp32 mode.  */
 
@@ -5914,8 +5911,8 @@ elfNN_aarch64_tls_relax (struct elf_aarc
     case BFD_RELOC_AARCH64_TLSDESC_ADD_LO12:
     case BFD_RELOC_AARCH64_TLSDESC_CALL:
       /* GD->IE/LE relaxation:
-         add x0, x0, #:tlsdesc_lo12:var   =>   nop
-         blr xd                           =>   nop
+	 add x0, x0, #:tlsdesc_lo12:var	  =>   nop
+	 blr xd				  =>   nop
        */
       bfd_putl32 (INSN_NOP, contents + rel->r_offset);
       return bfd_reloc_ok;
@@ -5975,7 +5972,7 @@ elfNN_aarch64_tls_relax (struct elf_aarc
 
     case BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21:
       /* IE->LE relaxation:
-         adrp xd, :gottprel:var   =>   movz Rd, :tprel_g1:var
+	 adrp xd, :gottprel:var   =>   movz Rd, :tprel_g1:var
 
 	 Where R is x for lp64 mode, and w for ILP32 mode.  */
       if (is_local)
@@ -5987,7 +5984,7 @@ elfNN_aarch64_tls_relax (struct elf_aarc
 
     case BFD_RELOC_AARCH64_TLSIE_LDNN_GOTTPREL_LO12_NC:
       /* IE->LE relaxation:
-         ldr  xd, [xm, #:gottprel_lo12:var]   =>   movk Rd, :tprel_g0_nc:var
+	 ldr  xd, [xm, #:gottprel_lo12:var]   =>   movk Rd, :tprel_g0_nc:var
 
 	 Where R is x for lp64 mode, and w for ILP32 mode.  */
       if (is_local)
@@ -6101,17 +6098,11 @@ elfNN_aarch64_relocate_section (bfd *out
       r_symndx = ELFNN_R_SYM (rel->r_info);
       r_type = ELFNN_R_TYPE (rel->r_info);
 
-      bfd_reloc.howto = elfNN_aarch64_howto_from_type (r_type);
-      howto = bfd_reloc.howto;
+      howto = bfd_reloc.howto = elfNN_aarch64_howto_from_type (r_type);
 
       if (howto == NULL)
-	{
-	  /* xgettext:c-format */
-	  _bfd_error_handler
-	    (_("%B: unrecognized relocation (0x%x) in section `%A'"),
-	     input_bfd, r_type, input_section);
-	  return FALSE;
-	}
+	return _bfd_unrecognized_reloc (input_bfd, input_section, r_type);
+
       bfd_r_type = elfNN_aarch64_bfd_reloc_from_howto (howto);
 
       h = NULL;
@@ -6191,17 +6182,17 @@ elfNN_aarch64_relocate_section (bfd *out
 	  _bfd_error_handler
 	    ((sym_type == STT_TLS
 	      /* xgettext:c-format */
-	      ? _("%B(%A+0x%lx): %s used with TLS symbol %s")
+	      ? _("%B(%A+%#Lx): %s used with TLS symbol %s")
 	      /* xgettext:c-format */
-	      : _("%B(%A+0x%lx): %s used with non-TLS symbol %s")),
+	      : _("%B(%A+%#Lx): %s used with non-TLS symbol %s")),
 	     input_bfd,
-	     input_section, (long) rel->r_offset, howto->name, name);
+	     input_section, rel->r_offset, howto->name, name);
 	}
 
       /* We relax only if we can see that there can be a valid transition
-         from a reloc type to another.
-         We call elfNN_aarch64_final_link_relocate unless we're completely
-         done, i.e., the relaxation produced the final output we want.  */
+	 from a reloc type to another.
+	 We call elfNN_aarch64_final_link_relocate unless we're completely
+	 done, i.e., the relaxation produced the final output we want.  */
 
       relaxed_bfd_r_type = aarch64_tls_transition (input_bfd, info, r_type,
 						   h, r_symndx);
@@ -6218,8 +6209,8 @@ elfNN_aarch64_relocate_section (bfd *out
 	r = bfd_reloc_continue;
 
       /* There may be multiple consecutive relocations for the
-         same offset.  In that case we are supposed to treat the
-         output of each relocation as the addend for the next.  */
+	 same offset.  In that case we are supposed to treat the
+	 output of each relocation as the addend for the next.  */
       if (rel + 1 < relend
 	  && rel->r_offset == rel[1].r_offset
 	  && ELFNN_R_TYPE (rel[1].r_info) != R_AARCH64_NONE
@@ -6256,7 +6247,7 @@ elfNN_aarch64_relocate_section (bfd *out
 	      indx = h && h->dynindx != -1 ? h->dynindx : 0;
 
 	      need_relocs =
-		(bfd_link_pic (info) || indx != 0) &&
+		(!bfd_link_executable (info) || indx != 0) &&
 		(h == NULL
 		 || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
 		 || h->root.type != bfd_link_hash_undefweak);
@@ -6351,7 +6342,7 @@ elfNN_aarch64_relocate_section (bfd *out
 	      indx = h && h->dynindx != -1 ? h->dynindx : 0;
 
 	      need_relocs =
-		(bfd_link_pic (info) || indx != 0) &&
+		(!bfd_link_executable (info) || indx != 0) &&
 		(h == NULL
 		 || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
 		 || h->root.type != bfd_link_hash_undefweak);
@@ -6453,8 +6444,8 @@ elfNN_aarch64_relocate_section (bfd *out
 	}
 
       /* Dynamic relocs are not propagated for SEC_DEBUGGING sections
-         because such sections are not SEC_ALLOC and thus ld.so will
-         not process them.  */
+	 because such sections are not SEC_ALLOC and thus ld.so will
+	 not process them.  */
       if (unresolved_reloc
 	  && !((input_section->flags & SEC_DEBUGGING) != 0
 	       && h->def_dynamic)
@@ -6463,8 +6454,8 @@ elfNN_aarch64_relocate_section (bfd *out
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
-	     input_bfd, input_section, (long) rel->r_offset, howto->name,
+	    (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
+	     input_bfd, input_section, rel->r_offset, howto->name,
 	     h->root.root.string);
 	  return FALSE;
 	}
@@ -6617,11 +6608,11 @@ elfNN_aarch64_merge_private_bfd_data (bf
   if (!elf_flags_init (obfd))
     {
       /* If the input is the default architecture and had the default
-         flags then do not bother setting the flags for the output
-         architecture, instead allow future merges to do this.  If no
-         future merges ever set these flags then they will retain their
-         uninitialised values, which surprise surprise, correspond
-         to the default values.  */
+	 flags then do not bother setting the flags for the output
+	 architecture, instead allow future merges to do this.  If no
+	 future merges ever set these flags then they will retain their
+	 uninitialised values, which surprise surprise, correspond
+	 to the default values.  */
       if (bfd_get_arch_info (ibfd)->the_default
 	  && elf_elfheader (ibfd)->e_flags == 0)
 	return TRUE;
@@ -6702,171 +6693,46 @@ elfNN_aarch64_print_private_bfd_data (bf
   return TRUE;
 }
 
-/* Update the got entry reference counts for the section being removed.  */
+/* Find dynamic relocs for H that apply to read-only sections.  */
 
-static bfd_boolean
-elfNN_aarch64_gc_sweep_hook (bfd *abfd,
-			     struct bfd_link_info *info,
-			     asection *sec,
-			     const Elf_Internal_Rela * relocs)
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
 {
-  struct elf_aarch64_link_hash_table *htab;
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  struct elf_aarch64_local_symbol *locals;
-  const Elf_Internal_Rela *rel, *relend;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  htab = elf_aarch64_hash_table (info);
-
-  if (htab == NULL)
-    return FALSE;
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  symtab_hdr = &elf_symtab_hdr (abfd);
-  sym_hashes = elf_sym_hashes (abfd);
-
-  locals = elf_aarch64_locals (abfd);
+  struct elf_dyn_relocs *p;
 
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
+  for (p = elf_aarch64_hash_entry (h)->dyn_relocs; p != NULL; p = p->next)
     {
-      unsigned long r_symndx;
-      unsigned int r_type;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = ELFNN_R_SYM (rel->r_info);
-
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-        }
-      else
-	{
-	  Elf_Internal_Sym *isym;
-
-	  /* A local symbol.  */
-	  isym = bfd_sym_from_r_symndx (&htab->sym_cache,
-					abfd, r_symndx);
-
-	  /* Check relocation against local STT_GNU_IFUNC symbol.  */
-	  if (isym != NULL
-	      && ELF_ST_TYPE (isym->st_info) == STT_GNU_IFUNC)
-	    {
-	      h = elfNN_aarch64_get_local_sym_hash (htab, abfd, rel, FALSE);
-	      if (h == NULL)
-		abort ();
-	    }
-	}
-
-      if (h)
-	{
-	  struct elf_aarch64_link_hash_entry *eh;
-	  struct elf_dyn_relocs **pp;
-	  struct elf_dyn_relocs *p;
-
-	  eh = (struct elf_aarch64_link_hash_entry *) h;
-
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next)
-	    if (p->sec == sec)
-	      {
-		/* Everything must go for SEC.  */
-		*pp = p->next;
-		break;
-	      }
-	}
-
-      r_type = ELFNN_R_TYPE (rel->r_info);
-      switch (aarch64_tls_transition (abfd,info, r_type, h ,r_symndx))
-	{
-	case BFD_RELOC_AARCH64_ADR_GOT_PAGE:
-	case BFD_RELOC_AARCH64_GOT_LD_PREL19:
-	case BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14:
-	case BFD_RELOC_AARCH64_LD32_GOT_LO12_NC:
-	case BFD_RELOC_AARCH64_LD64_GOTOFF_LO15:
-	case BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15:
-	case BFD_RELOC_AARCH64_LD64_GOT_LO12_NC:
-	case BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC:
-	case BFD_RELOC_AARCH64_MOVW_GOTOFF_G1:
-	case BFD_RELOC_AARCH64_TLSDESC_ADD_LO12:
-	case BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21:
-	case BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21:
-	case BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC:
-	case BFD_RELOC_AARCH64_TLSDESC_LD64_LO12:
-	case BFD_RELOC_AARCH64_TLSDESC_LD_PREL19:
-	case BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC:
-	case BFD_RELOC_AARCH64_TLSDESC_OFF_G1:
-	case BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC:
-	case BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21:
-	case BFD_RELOC_AARCH64_TLSGD_ADR_PREL21:
-	case BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:
-	case BFD_RELOC_AARCH64_TLSGD_MOVW_G1:
-	case BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21:
-	case BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC:
-	case BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
-	case BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19:
-	case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC:
-	case BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1:
-	case BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC:
-	case BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21:
-	case BFD_RELOC_AARCH64_TLSLD_ADR_PREL21:
-	  if (h != NULL)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount -= 1;
+      asection *s = p->sec->output_section;
 
-	      if (h->type == STT_GNU_IFUNC)
-		{
-		  if (h->plt.refcount > 0)
-		    h->plt.refcount -= 1;
-		}
-	    }
-	  else if (locals != NULL)
-	    {
-	      if (locals[r_symndx].got_refcount > 0)
-		locals[r_symndx].got_refcount -= 1;
-	    }
-	  break;
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
+    }
+  return NULL;
+}
 
-	case BFD_RELOC_AARCH64_CALL26:
-	case BFD_RELOC_AARCH64_JUMP26:
-	  /* If this is a local symbol then we resolve it
-	     directly without creating a PLT entry.  */
-	  if (h == NULL)
-	    continue;
+/* Return true if we need copy relocation against EH.  */
 
-	  if (h->plt.refcount > 0)
-	    h->plt.refcount -= 1;
-	  break;
+static bfd_boolean
+need_copy_relocation_p (struct elf_aarch64_link_hash_entry *eh)
+{
+  struct elf_dyn_relocs *p;
+  asection *s;
 
-	case BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL:
-	case BFD_RELOC_AARCH64_ADR_HI21_PCREL:
-	case BFD_RELOC_AARCH64_ADR_LO21_PCREL:
-	case BFD_RELOC_AARCH64_MOVW_G0_NC:
-	case BFD_RELOC_AARCH64_MOVW_G1_NC:
-	case BFD_RELOC_AARCH64_MOVW_G2_NC:
-	case BFD_RELOC_AARCH64_MOVW_G3:
-	case BFD_RELOC_AARCH64_NN:
-	  if (h != NULL && bfd_link_executable (info))
-	    {
-	      if (h->plt.refcount > 0)
-		h->plt.refcount -= 1;
-	    }
-	  break;
+  for (p = eh->dyn_relocs; p != NULL; p = p->next)
+    {
+      /* If there is any pc-relative reference, we need to keep copy relocation
+	 to avoid propagating the relocation into runtime that current glibc
+	 does not support.  */
+      if (p->pc_count)
+	return TRUE;
 
-	default:
-	  break;
-	}
+      s = p->sec->output_section;
+      /* Need copy relocation if it's against read-only section.  */
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return TRUE;
     }
 
-  return TRUE;
+  return FALSE;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -6912,14 +6778,14 @@ elfNN_aarch64_adjust_dynamic_symbol (str
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       if (ELIMINATE_COPY_RELOCS || info->nocopyreloc)
-	h->non_got_ref = h->u.weakdef->non_got_ref;
+	h->non_got_ref = def->non_got_ref;
       return TRUE;
     }
 
@@ -6942,6 +6808,19 @@ elfNN_aarch64_adjust_dynamic_symbol (str
       return TRUE;
     }
 
+  if (ELIMINATE_COPY_RELOCS)
+    {
+      struct elf_aarch64_link_hash_entry *eh;
+      /* If we don't find any dynamic relocs in read-only sections, then
+	 we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
+      eh = (struct elf_aarch64_link_hash_entry *) h;
+      if (!need_copy_relocation_p (eh))
+	{
+	  h->non_got_ref = 0;
+	  return TRUE;
+	}
+    }
+
   /* We must allocate the symbol in our .dynbss section, which will
      become part of the .bss section of the executable.  There will be
      an entry for this symbol in the .dynsym section.  The dynamic
@@ -7085,7 +6964,7 @@ elfNN_aarch64_check_relocs (bfd *abfd, s
   for (rel = relocs; rel < rel_end; rel++)
     {
       struct elf_link_hash_entry *h;
-      unsigned long r_symndx;
+      unsigned int r_symndx;
       unsigned int r_type;
       bfd_reloc_code_real_type bfd_r_type;
       Elf_Internal_Sym *isym;
@@ -7132,10 +7011,6 @@ elfNN_aarch64_check_relocs (bfd *abfd, s
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       /* Could be done earlier, if h were already available.  */
@@ -7191,11 +7066,66 @@ elfNN_aarch64_check_relocs (bfd *abfd, s
 
 	  /* It is referenced by a non-shared object.  */
 	  h->ref_regular = 1;
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (bfd_r_type)
 	{
+	case BFD_RELOC_AARCH64_16:
+#if ARCH_SIZE == 64
+	case BFD_RELOC_AARCH64_32:
+#endif
+	  if (bfd_link_pic (info)
+	      && (sec->flags & SEC_ALLOC) != 0
+	      && (sec->flags & SEC_READONLY) != 0)
+	    {
+	      int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START;
+	      _bfd_error_handler
+		/* xgettext:c-format */
+		(_("%B: relocation %s against `%s' can not be used when making "
+		   "a shared object"),
+		 abfd, elfNN_aarch64_howto_table[howto_index].name,
+		 (h) ? h->root.root.string : "a local symbol");
+	      bfd_set_error (bfd_error_bad_value);
+	      return FALSE;
+	    }
+	  else
+	    break;
+
+	case BFD_RELOC_AARCH64_MOVW_G0_NC:
+	case BFD_RELOC_AARCH64_MOVW_G1_NC:
+	case BFD_RELOC_AARCH64_MOVW_G2_NC:
+	case BFD_RELOC_AARCH64_MOVW_G3:
+	  if (bfd_link_pic (info))
+	    {
+	      int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START;
+	      _bfd_error_handler
+		/* xgettext:c-format */
+		(_("%B: relocation %s against `%s' can not be used when making "
+		   "a shared object; recompile with -fPIC"),
+		 abfd, elfNN_aarch64_howto_table[howto_index].name,
+		 (h) ? h->root.root.string : "a local symbol");
+	      bfd_set_error (bfd_error_bad_value);
+	      return FALSE;
+	    }
+	  /* Fall through.  */
+
+	case BFD_RELOC_AARCH64_16_PCREL:
+	case BFD_RELOC_AARCH64_32_PCREL:
+	case BFD_RELOC_AARCH64_64_PCREL:
+	case BFD_RELOC_AARCH64_ADD_LO12:
+	case BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL:
+	case BFD_RELOC_AARCH64_ADR_HI21_PCREL:
+	case BFD_RELOC_AARCH64_ADR_LO21_PCREL:
+	case BFD_RELOC_AARCH64_LDST128_LO12:
+	case BFD_RELOC_AARCH64_LDST16_LO12:
+	case BFD_RELOC_AARCH64_LDST32_LO12:
+	case BFD_RELOC_AARCH64_LDST64_LO12:
+	case BFD_RELOC_AARCH64_LDST8_LO12:
+	case BFD_RELOC_AARCH64_LD_LO19_PCREL:
+	  if (h == NULL || bfd_link_pic (info))
+	    break;
+	  /* Fall through.  */
+
 	case BFD_RELOC_AARCH64_NN:
 
 	  /* We don't need to handle relocs into sections not going into
@@ -7214,12 +7144,32 @@ elfNN_aarch64_check_relocs (bfd *abfd, s
 
 	  /* No need to do anything if we're not creating a shared
 	     object.  */
-	  if (! bfd_link_pic (info))
+	  if (!(bfd_link_pic (info)
+		/* If on the other hand, we are creating an executable, we
+		   may need to keep relocations for symbols satisfied by a
+		   dynamic library if we manage to avoid copy relocs for the
+		   symbol.
+
+		   NOTE: Currently, there is no support of copy relocs
+		   elimination on pc-relative relocation types, because there is
+		   no dynamic relocation support for them in glibc.  We still
+		   record the dynamic symbol reference for them.  This is
+		   because one symbol may be referenced by both absolute
+		   relocation (for example, BFD_RELOC_AARCH64_NN) and
+		   pc-relative relocation.  We need full symbol reference
+		   information to make correct decision later in
+		   elfNN_aarch64_adjust_dynamic_symbol.  */
+		|| (ELIMINATE_COPY_RELOCS
+		    && !bfd_link_pic (info)
+		    && h != NULL
+		    && (h->root.type == bfd_link_hash_defweak
+			|| !h->def_regular))))
 	    break;
 
 	  {
 	    struct elf_dyn_relocs *p;
 	    struct elf_dyn_relocs **head;
+	    int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START;
 
 	    /* We must copy these reloc types into the output file.
 	       Create a reloc section in dynobj and make room for
@@ -7283,6 +7233,8 @@ elfNN_aarch64_check_relocs (bfd *abfd, s
 
 	    p->count += 1;
 
+	    if (elfNN_aarch64_howto_table[howto_index].pc_relative)
+	      p->pc_count += 1;
 	  }
 	  break;
 
@@ -7386,44 +7338,6 @@ elfNN_aarch64_check_relocs (bfd *abfd, s
 	    break;
 	  }
 
-	case BFD_RELOC_AARCH64_MOVW_G0_NC:
-	case BFD_RELOC_AARCH64_MOVW_G1_NC:
-	case BFD_RELOC_AARCH64_MOVW_G2_NC:
-	case BFD_RELOC_AARCH64_MOVW_G3:
-	  if (bfd_link_pic (info))
-	    {
-	      int howto_index = bfd_r_type - BFD_RELOC_AARCH64_RELOC_START;
-	      _bfd_error_handler
-		/* xgettext:c-format */
-		(_("%B: relocation %s against `%s' can not be used when making "
-		   "a shared object; recompile with -fPIC"),
-		 abfd, elfNN_aarch64_howto_table[howto_index].name,
-		 (h) ? h->root.root.string : "a local symbol");
-	      bfd_set_error (bfd_error_bad_value);
-	      return FALSE;
-	    }
-	  /* Fall through.  */
-
-	case BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL:
-	case BFD_RELOC_AARCH64_ADR_HI21_PCREL:
-	case BFD_RELOC_AARCH64_ADR_LO21_PCREL:
-	  if (h != NULL && bfd_link_executable (info))
-	    {
-	      /* If this reloc is in a read-only section, we might
-		 need a copy reloc.  We can't check reliably at this
-		 stage whether the section is read-only, as input
-		 sections have not yet been mapped to output sections.
-		 Tentatively set the flag for now, and correct in
-		 adjust_dynamic_symbol.  */
-	      h->non_got_ref = 1;
-	      h->plt.refcount += 1;
-	      h->pointer_equality_needed = 1;
-	    }
-	  /* FIXME:: RR need to handle these in shared libraries
-	     and essentially bomb out as these being non-PIC
-	     relocations in shared libraries.  */
-	  break;
-
 	case BFD_RELOC_AARCH64_CALL26:
 	case BFD_RELOC_AARCH64_JUMP26:
 	  /* If this is a local symbol then we resolve it
@@ -7599,8 +7513,39 @@ elfNN_aarch64_reloc_type_class (const st
 				const asection *rel_sec ATTRIBUTE_UNUSED,
 				const Elf_Internal_Rela *rela)
 {
+  struct elf_aarch64_link_hash_table *htab = elf_aarch64_hash_table (info);
+
+  if (htab->root.dynsym != NULL
+      && htab->root.dynsym->contents != NULL)
+    {
+      /* Check relocation against STT_GNU_IFUNC symbol if there are
+	 dynamic symbols.  */
+      bfd *abfd = info->output_bfd;
+      const struct elf_backend_data *bed = get_elf_backend_data (abfd);
+      unsigned long r_symndx = ELFNN_R_SYM (rela->r_info);
+      if (r_symndx != STN_UNDEF)
+	{
+	  Elf_Internal_Sym sym;
+	  if (!bed->s->swap_symbol_in (abfd,
+				       (htab->root.dynsym->contents
+					+ r_symndx * bed->s->sizeof_sym),
+				       0, &sym))
+	    {
+	      /* xgettext:c-format */
+	      _bfd_error_handler (_("%B symbol number %lu references"
+				    " nonexistent SHT_SYMTAB_SHNDX section"),
+				    abfd, r_symndx);
+	      /* Ideally an error class should be returned here.  */
+	    }
+	  else if (ELF_ST_TYPE (sym.st_info) == STT_GNU_IFUNC)
+	    return reloc_class_ifunc;
+	}
+    }
+
   switch ((int) ELFNN_R_TYPE (rela->r_info))
     {
+    case AARCH64_R (IRELATIVE):
+      return reloc_class_ifunc;
     case AARCH64_R (RELATIVE):
       return reloc_class_relative;
     case AARCH64_R (JUMP_SLOT):
@@ -8010,8 +7955,9 @@ elfNN_aarch64_allocate_dynrelocs (struct
   else if (htab->root.dynamic_sections_created && h->plt.refcount > 0)
     {
       /* Make sure this symbol is output as a dynamic symbol.
-         Undefined weak syms won't yet be marked as dynamic.  */
-      if (h->dynindx == -1 && !h->forced_local)
+	 Undefined weak syms won't yet be marked as dynamic.  */
+      if (h->dynindx == -1 && !h->forced_local
+	  && h->root.type == bfd_link_hash_undefweak)
 	{
 	  if (!bfd_elf_link_record_dynamic_symbol (info, h))
 	    return FALSE;
@@ -8091,8 +8037,9 @@ elfNN_aarch64_allocate_dynrelocs (struct
       dyn = htab->root.dynamic_sections_created;
 
       /* Make sure this symbol is output as a dynamic symbol.
-         Undefined weak syms won't yet be marked as dynamic.  */
-      if (dyn && h->dynindx == -1 && !h->forced_local)
+	 Undefined weak syms won't yet be marked as dynamic.  */
+      if (dyn && h->dynindx == -1 && !h->forced_local
+	  && h->root.type == bfd_link_hash_undefweak)
 	{
 	  if (!bfd_elf_link_record_dynamic_symbol (info, h))
 	    return FALSE;
@@ -8108,7 +8055,10 @@ elfNN_aarch64_allocate_dynrelocs (struct
 	  if ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
 	       || h->root.type != bfd_link_hash_undefweak)
 	      && (bfd_link_pic (info)
-		  || WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, 0, h)))
+		  || WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, 0, h))
+	      /* Undefined weak symbol in static PIE resolves to 0 without
+		 any dynamic relocations.  */
+	      && !UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	    {
 	      htab->root.srelgot->size += RELOC_SIZE (htab);
 	    }
@@ -8140,7 +8090,7 @@ elfNN_aarch64_allocate_dynrelocs (struct
 	  indx = h && h->dynindx != -1 ? h->dynindx : 0;
 	  if ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
 	       || h->root.type != bfd_link_hash_undefweak)
-	      && (bfd_link_pic (info)
+	      && (!bfd_link_executable (info)
 		  || indx != 0
 		  || WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, 0, h)))
 	    {
@@ -8180,11 +8130,11 @@ elfNN_aarch64_allocate_dynrelocs (struct
   if (bfd_link_pic (info))
     {
       /* Relocs that use pc_count are those that appear on a call
-         insn, or certain REL relocs that can generated via assembly.
-         We want calls to protected symbols to resolve directly to the
-         function rather than going via the plt.  If people want
-         function pointer comparisons to work as expected then they
-         should avoid writing weird assembly.  */
+	 insn, or certain REL relocs that can generated via assembly.
+	 We want calls to protected symbols to resolve directly to the
+	 function rather than going via the plt.  If people want
+	 function pointer comparisons to work as expected then they
+	 should avoid writing weird assembly.  */
       if (SYMBOL_CALLS_LOCAL (info, h))
 	{
 	  struct elf_dyn_relocs **pp;
@@ -8201,16 +8151,18 @@ elfNN_aarch64_allocate_dynrelocs (struct
 	}
 
       /* Also discard relocs on undefined weak syms with non-default
-         visibility.  */
+	 visibility.  */
       if (eh->dyn_relocs != NULL && h->root.type == bfd_link_hash_undefweak)
 	{
-	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
+	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+	      || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	    eh->dyn_relocs = NULL;
 
 	  /* Make sure undefined weak symbols are output as a dynamic
 	     symbol in PIEs.  */
 	  else if (h->dynindx == -1
 		   && !h->forced_local
+		   && h->root.type == bfd_link_hash_undefweak
 		   && !bfd_elf_link_record_dynamic_symbol (info, h))
 	    return FALSE;
 	}
@@ -8219,8 +8171,8 @@ elfNN_aarch64_allocate_dynrelocs (struct
   else if (ELIMINATE_COPY_RELOCS)
     {
       /* For the non-shared case, discard space for relocs against
-         symbols which turn out to need copy relocs or are not
-         dynamic.  */
+	 symbols which turn out to need copy relocs or are not
+	 dynamic.  */
 
       if (!h->non_got_ref
 	  && ((h->def_dynamic
@@ -8233,6 +8185,7 @@ elfNN_aarch64_allocate_dynrelocs (struct
 	     Undefined weak syms won't yet be marked as dynamic.  */
 	  if (h->dynindx == -1
 	      && !h->forced_local
+	      && h->root.type == bfd_link_hash_undefweak
 	      && !bfd_elf_link_record_dynamic_symbol (info, h))
 	    return FALSE;
 
@@ -8345,28 +8298,29 @@ elfNN_aarch64_allocate_local_ifunc_dynre
   return elfNN_aarch64_allocate_ifunc_dynrelocs (h, inf);
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-aarch64_readonly_dynrelocs (struct elf_link_hash_entry * h, void * inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct elf_aarch64_link_hash_entry * eh;
-  struct elf_dyn_relocs * p;
+  asection *sec;
 
-  eh = (struct elf_aarch64_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection *s = p->sec;
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	{
-	  struct bfd_link_info *info = (struct bfd_link_info *) inf;
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
+    {
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-	  info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
-	  /* Not an error, just cut short the traversal.  */
-	  return FALSE;
-	}
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -8540,7 +8494,7 @@ elfNN_aarch64_size_dynamic_sections (bfd
       htab->root.splt->size += PLT_TLSDESC_ENTRY_SIZE;
 
       /* If we're not using lazy TLS relocations, don't generate the
-         GOT entry required.  */
+	 GOT entry required.  */
       if (!(info->flags & DF_BIND_NOW))
 	{
 	  htab->dt_tlsdesc_got = htab->root.sgot->size;
@@ -8612,10 +8566,10 @@ elfNN_aarch64_size_dynamic_sections (bfd
 	continue;
 
       /* Allocate memory for the section contents.  We use bfd_zalloc
-         here in case unused entries are not reclaimed before the
-         section's contents are written out.  This should not happen,
-         but this way if it does, we get a R_AARCH64_NONE reloc instead
-         of garbage.  */
+	 here in case unused entries are not reclaimed before the
+	 section's contents are written out.  This should not happen,
+	 but this way if it does, we get a R_AARCH64_NONE reloc instead
+	 of garbage.  */
       s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->size);
       if (s->contents == NULL)
 	return FALSE;
@@ -8624,10 +8578,10 @@ elfNN_aarch64_size_dynamic_sections (bfd
   if (htab->root.dynamic_sections_created)
     {
       /* Add some entries to the .dynamic section.  We fill in the
-         values later, in elfNN_aarch64_finish_dynamic_sections, but we
-         must add the entries now so that we get the correct size for
-         the .dynamic section.  The DT_DEBUG entry is filled in by the
-         dynamic linker and used by the debugger.  */
+	 values later, in elfNN_aarch64_finish_dynamic_sections, but we
+	 must add the entries now so that we get the correct size for
+	 the .dynamic section.  The DT_DEBUG entry is filled in by the
+	 dynamic linker and used by the debugger.  */
 #define add_dynamic_entry(TAG, VAL)			\
       _bfd_elf_add_dynamic_entry (info, TAG, VAL)
 
@@ -8661,8 +8615,7 @@ elfNN_aarch64_size_dynamic_sections (bfd
 	  /* If any dynamic relocs apply to a read-only section,
 	     then we need a DT_TEXTREL entry.  */
 	  if ((info->flags & DF_TEXTREL) == 0)
-	    elf_link_hash_traverse (& htab->root, aarch64_readonly_dynrelocs,
-				    info);
+	    elf_link_hash_traverse (&htab->root, maybe_set_textrel, info);
 
 	  if ((info->flags & DF_TEXTREL) != 0)
 	    {
@@ -8683,7 +8636,8 @@ elf_aarch64_update_plt_entry (bfd *outpu
 {
   reloc_howto_type *howto = elfNN_aarch64_howto_from_bfd_reloc (r_type);
 
-  _bfd_aarch64_elf_put_addend (output_bfd, plt_entry, r_type, howto, value);
+  /* FIXME: We should check the return value from this function call.  */
+  (void) _bfd_aarch64_elf_put_addend (output_bfd, plt_entry, r_type, howto, value);
 }
 
 static void
@@ -8858,7 +8812,7 @@ elfNN_aarch64_finish_dynamic_symbol (bfd
       asection *plt, *gotplt, *relplt;
 
       /* This symbol has an entry in the procedure linkage table.  Set
-         it up.  */
+	 it up.  */
 
       /* When building a static executable, use .iplt, .igot.plt and
 	 .rela.iplt sections for STT_GNU_IFUNC symbols.  */
@@ -8906,13 +8860,16 @@ elfNN_aarch64_finish_dynamic_symbol (bfd
     }
 
   if (h->got.offset != (bfd_vma) - 1
-      && elf_aarch64_hash_entry (h)->got_type == GOT_NORMAL)
+      && elf_aarch64_hash_entry (h)->got_type == GOT_NORMAL
+      /* Undefined weak symbol in static PIE resolves to 0 without
+	 any dynamic relocations.  */
+      && !UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
     {
       Elf_Internal_Rela rela;
       bfd_byte *loc;
 
       /* This symbol has an entry in the global offset table.  Set it
-         up.  */
+	 up.  */
       if (htab->root.sgot == NULL || htab->root.srelgot == NULL)
 	abort ();
 
@@ -8949,7 +8906,7 @@ elfNN_aarch64_finish_dynamic_symbol (bfd
 	}
       else if (bfd_link_pic (info) && SYMBOL_REFERENCES_LOCAL (info, h))
 	{
-	  if (!h->def_regular)
+	  if (!(h->def_regular || ELF_COMMON_DEF_P (h)))
 	    return FALSE;
 
 	  BFD_ASSERT ((h->got.offset & 1) != 0);
@@ -9341,16 +9298,16 @@ const struct elf_size_info elfNN_aarch64
 #define ELF_MINPAGESIZE			0x1000
 #define ELF_COMMONPAGESIZE		0x1000
 
-#define bfd_elfNN_close_and_cleanup             \
+#define bfd_elfNN_close_and_cleanup		\
   elfNN_aarch64_close_and_cleanup
 
-#define bfd_elfNN_bfd_free_cached_info          \
+#define bfd_elfNN_bfd_free_cached_info		\
   elfNN_aarch64_bfd_free_cached_info
 
 #define bfd_elfNN_bfd_is_target_special_symbol	\
   elfNN_aarch64_is_target_special_symbol
 
-#define bfd_elfNN_bfd_link_hash_table_create    \
+#define bfd_elfNN_bfd_link_hash_table_create	\
   elfNN_aarch64_link_hash_table_create
 
 #define bfd_elfNN_bfd_merge_private_bfd_data	\
@@ -9406,13 +9363,10 @@ const struct elf_size_info elfNN_aarch64
 #define elf_backend_finish_dynamic_symbol	\
   elfNN_aarch64_finish_dynamic_symbol
 
-#define elf_backend_gc_sweep_hook		\
-  elfNN_aarch64_gc_sweep_hook
-
 #define elf_backend_object_p			\
   elfNN_aarch64_object_p
 
-#define elf_backend_output_arch_local_syms      \
+#define elf_backend_output_arch_local_syms	\
   elfNN_aarch64_output_arch_local_syms
 
 #define elf_backend_plt_sym_val			\
@@ -9451,14 +9405,14 @@ const struct elf_size_info elfNN_aarch64
 #define elf_backend_may_use_rel_p      0
 #define elf_backend_may_use_rela_p     1
 #define elf_backend_default_use_rela_p 1
-#define elf_backend_rela_normal        1
+#define elf_backend_rela_normal	       1
 #define elf_backend_dtrel_excludes_plt 1
 #define elf_backend_got_header_size (GOT_ENTRY_SIZE * 3)
 #define elf_backend_default_execstack  0
 #define elf_backend_extern_protected_data 1
 #define elf_backend_hash_symbol elf_aarch64_hash_symbol
 
-#undef  elf_backend_obj_attrs_section
+#undef	elf_backend_obj_attrs_section
 #define elf_backend_obj_attrs_section		".ARM.attributes"
 
 #include "elfNN-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfnn-ia64.c ./bfd/elfnn-ia64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfnn-ia64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfnn-ia64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* IA-64 support for 64-bit ELF
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -213,54 +213,54 @@ elfNN_ia64_info_to_howto (bfd *abfd ATTR
 
 static const bfd_byte plt_header[PLT_HEADER_SIZE] =
 {
-  0x0b, 0x10, 0x00, 0x1c, 0x00, 0x21,  /*   [MMI]       mov r2=r14;;       */
-  0xe0, 0x00, 0x08, 0x00, 0x48, 0x00,  /*               addl r14=0,r2      */
-  0x00, 0x00, 0x04, 0x00,              /*               nop.i 0x0;;        */
-  0x0b, 0x80, 0x20, 0x1c, 0x18, 0x14,  /*   [MMI]       ld8 r16=[r14],8;;  */
-  0x10, 0x41, 0x38, 0x30, 0x28, 0x00,  /*               ld8 r17=[r14],8    */
-  0x00, 0x00, 0x04, 0x00,              /*               nop.i 0x0;;        */
-  0x11, 0x08, 0x00, 0x1c, 0x18, 0x10,  /*   [MIB]       ld8 r1=[r14]       */
-  0x60, 0x88, 0x04, 0x80, 0x03, 0x00,  /*               mov b6=r17         */
-  0x60, 0x00, 0x80, 0x00               /*               br.few b6;;        */
+  0x0b, 0x10, 0x00, 0x1c, 0x00, 0x21,  /*   [MMI]	mov r2=r14;;	   */
+  0xe0, 0x00, 0x08, 0x00, 0x48, 0x00,  /*		addl r14=0,r2	   */
+  0x00, 0x00, 0x04, 0x00,	       /*		nop.i 0x0;;	   */
+  0x0b, 0x80, 0x20, 0x1c, 0x18, 0x14,  /*   [MMI]	ld8 r16=[r14],8;;  */
+  0x10, 0x41, 0x38, 0x30, 0x28, 0x00,  /*		ld8 r17=[r14],8	   */
+  0x00, 0x00, 0x04, 0x00,	       /*		nop.i 0x0;;	   */
+  0x11, 0x08, 0x00, 0x1c, 0x18, 0x10,  /*   [MIB]	ld8 r1=[r14]	   */
+  0x60, 0x88, 0x04, 0x80, 0x03, 0x00,  /*		mov b6=r17	   */
+  0x60, 0x00, 0x80, 0x00	       /*		br.few b6;;	   */
 };
 
 static const bfd_byte plt_min_entry[PLT_MIN_ENTRY_SIZE] =
 {
-  0x11, 0x78, 0x00, 0x00, 0x00, 0x24,  /*   [MIB]       mov r15=0          */
-  0x00, 0x00, 0x00, 0x02, 0x00, 0x00,  /*               nop.i 0x0          */
-  0x00, 0x00, 0x00, 0x40               /*               br.few 0 <PLT0>;;  */
+  0x11, 0x78, 0x00, 0x00, 0x00, 0x24,  /*   [MIB]	mov r15=0	   */
+  0x00, 0x00, 0x00, 0x02, 0x00, 0x00,  /*		nop.i 0x0	   */
+  0x00, 0x00, 0x00, 0x40	       /*		br.few 0 <PLT0>;;  */
 };
 
 static const bfd_byte plt_full_entry[PLT_FULL_ENTRY_SIZE] =
 {
-  0x0b, 0x78, 0x00, 0x02, 0x00, 0x24,  /*   [MMI]       addl r15=0,r1;;    */
-  0x00, 0x41, 0x3c, 0x70, 0x29, 0xc0,  /*               ld8.acq r16=[r15],8*/
-  0x01, 0x08, 0x00, 0x84,              /*               mov r14=r1;;       */
-  0x11, 0x08, 0x00, 0x1e, 0x18, 0x10,  /*   [MIB]       ld8 r1=[r15]       */
-  0x60, 0x80, 0x04, 0x80, 0x03, 0x00,  /*               mov b6=r16         */
-  0x60, 0x00, 0x80, 0x00               /*               br.few b6;;        */
+  0x0b, 0x78, 0x00, 0x02, 0x00, 0x24,  /*   [MMI]	addl r15=0,r1;;	   */
+  0x00, 0x41, 0x3c, 0x70, 0x29, 0xc0,  /*		ld8.acq r16=[r15],8*/
+  0x01, 0x08, 0x00, 0x84,	       /*		mov r14=r1;;	   */
+  0x11, 0x08, 0x00, 0x1e, 0x18, 0x10,  /*   [MIB]	ld8 r1=[r15]	   */
+  0x60, 0x80, 0x04, 0x80, 0x03, 0x00,  /*		mov b6=r16	   */
+  0x60, 0x00, 0x80, 0x00	       /*		br.few b6;;	   */
 };
 
 #define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
 
 static const bfd_byte oor_brl[16] =
 {
-  0x05, 0x00, 0x00, 0x00, 0x01, 0x00,  /*  [MLX]        nop.m 0            */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /*               brl.sptk.few tgt;; */
+  0x05, 0x00, 0x00, 0x00, 0x01, 0x00,  /*  [MLX]	nop.m 0		   */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /*		brl.sptk.few tgt;; */
   0x00, 0x00, 0x00, 0xc0
 };
 
 static const bfd_byte oor_ip[48] =
 {
-  0x04, 0x00, 0x00, 0x00, 0x01, 0x00,  /*  [MLX]        nop.m 0            */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0xe0,  /*               movl r15=0         */
+  0x04, 0x00, 0x00, 0x00, 0x01, 0x00,  /*  [MLX]	nop.m 0		   */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xe0,  /*		movl r15=0	   */
   0x01, 0x00, 0x00, 0x60,
-  0x03, 0x00, 0x00, 0x00, 0x01, 0x00,  /*  [MII]        nop.m 0            */
-  0x00, 0x01, 0x00, 0x60, 0x00, 0x00,  /*               mov r16=ip;;       */
-  0xf2, 0x80, 0x00, 0x80,              /*               add r16=r15,r16;;  */
-  0x11, 0x00, 0x00, 0x00, 0x01, 0x00,  /*  [MIB]        nop.m 0            */
-  0x60, 0x80, 0x04, 0x80, 0x03, 0x00,  /*               mov b6=r16         */
-  0x60, 0x00, 0x80, 0x00               /*               br b6;;            */
+  0x03, 0x00, 0x00, 0x00, 0x01, 0x00,  /*  [MII]	nop.m 0		   */
+  0x00, 0x01, 0x00, 0x60, 0x00, 0x00,  /*		mov r16=ip;;	   */
+  0xf2, 0x80, 0x00, 0x80,	       /*		add r16=r15,r16;;  */
+  0x11, 0x00, 0x00, 0x00, 0x01, 0x00,  /*  [MIB]	nop.m 0		   */
+  0x60, 0x80, 0x04, 0x80, 0x03, 0x00,  /*		mov b6=r16	   */
+  0x60, 0x00, 0x80, 0x00	       /*		br b6;;		   */
 };
 
 static size_t oor_branch_size = sizeof (oor_brl);
@@ -617,9 +617,9 @@ elfNN_ia64_relax_section (bfd *abfd, ase
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B: Can't relax br at 0x%lx in section `%A'."
+		(_("%B: Can't relax br at %#Lx in section `%A'."
 		   " Please use brl or indirect branch."),
-		 sec->owner, (unsigned long) roff, sec);
+		 sec->owner, roff, sec);
 	      bfd_set_error (bfd_error_bad_value);
 	      goto error_return;
 	    }
@@ -1846,7 +1846,7 @@ get_dyn_sym_info (struct elfNN_ia64_link
   if (create)
     {
       /* When we create the array, we don't check for duplicates,
-         except in the previously sorted section if one exists, and
+	 except in the previously sorted section if one exists, and
 	 against the last inserted entry.  This allows insertions to
 	 be fast.  */
       if (info)
@@ -2190,6 +2190,9 @@ elfNN_ia64_check_relocs (bfd *abfd, stru
       else
 	h = NULL;
 
+      if (h && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
+	continue;
+
       /* We can only get preliminary data on whether a symbol is
 	 locally or externally defined, as not all of the input files
 	 have yet been processed.  Do something with what we know, as
@@ -2285,7 +2288,7 @@ elfNN_ia64_check_relocs (bfd *abfd, stru
 	  break;
 
 	case R_IA64_PCREL21B:
-        case R_IA64_PCREL60B:
+	case R_IA64_PCREL60B:
 	  /* Depending on where this symbol is defined, we may or may not
 	     need a full plt entry.  Only skip if we know we'll not need
 	     the entry -- static or symbolic, and the symbol definition
@@ -2359,12 +2362,14 @@ elfNN_ia64_check_relocs (bfd *abfd, stru
 
 	  /* PR15323, ref flags aren't set for references in the same
 	     object.  */
-	  h->root.non_ir_ref = 1;
 	  h->ref_regular = 1;
 	}
       else
 	h = NULL;
 
+      if (h && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
+	continue;
+
       /* We can only get preliminary data on whether a symbol is
 	 locally or externally defined, as not all of the input files
 	 have yet been processed.  Do something with what we know, as
@@ -2460,7 +2465,7 @@ elfNN_ia64_check_relocs (bfd *abfd, stru
 	  break;
 
 	case R_IA64_PCREL21B:
-        case R_IA64_PCREL60B:
+	case R_IA64_PCREL60B:
 	  /* Depending on where this symbol is defined, we may or may not
 	     need a full plt entry.  Only skip if we know we'll not need
 	     the entry -- static or symbolic, and the symbol definition
@@ -2556,7 +2561,7 @@ elfNN_ia64_check_relocs (bfd *abfd, stru
 	dyn_i->want_ltoff_fptr = 1;
       if (need_entry & (NEED_MIN_PLT | NEED_FULL_PLT))
 	{
-          if (!ia64_info->root.dynobj)
+	  if (!ia64_info->root.dynobj)
 	    ia64_info->root.dynobj = abfd;
 	  h->needs_plt = 1;
 	  dyn_i->want_plt = 1;
@@ -2717,7 +2722,8 @@ allocate_fptr (struct elfNN_ia64_dyn_sym
 
       if (!bfd_link_executable (x->info)
 	  && (!h
-	      || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+	      || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		  && !UNDEFWEAK_NO_DYNAMIC_RELOC (x->info, h))
 	      || (h->root.type != bfd_link_hash_undefweak
 		  && h->root.type != bfd_link_hash_undefined)))
 	{
@@ -2846,8 +2852,8 @@ allocate_dynrel_entries (struct elfNN_ia
 
   shared = bfd_link_pic (x->info);
   resolved_zero = (dyn_i->h
-		   && ELF_ST_VISIBILITY (dyn_i->h->other)
-		   && dyn_i->h->root.type == bfd_link_hash_undefweak);
+		   && UNDEFWEAK_NO_DYNAMIC_RELOC (x->info,
+						       dyn_i->h));
 
   /* Take care of the GOT and PLT relocations.  */
 
@@ -2956,12 +2962,12 @@ elfNN_ia64_adjust_dynamic_symbol (struct
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-                  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -3319,11 +3325,12 @@ set_got_entry (bfd *abfd, struct bfd_lin
       /* Install a dynamic relocation if needed.  */
       if (((bfd_link_pic (info)
 	    && (!dyn_i->h
-		|| ELF_ST_VISIBILITY (dyn_i->h->other) == STV_DEFAULT
+		|| (ELF_ST_VISIBILITY (dyn_i->h->other) == STV_DEFAULT
+		    && !UNDEFWEAK_NO_DYNAMIC_RELOC (info, dyn_i->h))
 		|| dyn_i->h->root.type != bfd_link_hash_undefweak)
 	    && dyn_r_type != R_IA64_DTPREL32LSB
 	    && dyn_r_type != R_IA64_DTPREL64LSB)
-           || elfNN_ia64_dynamic_symbol_p (dyn_i->h, info, dyn_r_type)
+	   || elfNN_ia64_dynamic_symbol_p (dyn_i->h, info, dyn_r_type)
 	   || (dynindx != -1
 	       && (dyn_r_type == R_IA64_FPTR32LSB
 		   || dyn_r_type == R_IA64_FPTR64LSB)))
@@ -3483,7 +3490,8 @@ set_pltoff_entry (bfd *abfd, struct bfd_
       if (!is_plt
 	  && bfd_link_pic (info)
 	  && (!dyn_i->h
-	      || ELF_ST_VISIBILITY (dyn_i->h->other) == STV_DEFAULT
+	      || (ELF_ST_VISIBILITY (dyn_i->h->other) == STV_DEFAULT
+		  && !UNDEFWEAK_NO_DYNAMIC_RELOC (info, dyn_i->h))
 	      || dyn_i->h->root.type != bfd_link_hash_undefweak))
 	{
 	  unsigned int dyn_r_type;
@@ -3685,8 +3693,8 @@ elfNN_ia64_choose_gp (bfd *abfd, struct 
 overflow:
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: short data segment overflowed (0x%lx >= 0x400000)"),
-	     abfd, (unsigned long) (max_short_vma - min_short_vma));
+	    (_("%B: short data segment overflowed (%#Lx >= 0x400000)"),
+	     abfd, max_short_vma - min_short_vma);
 	  return FALSE;
 	}
       else if ((gp_val > min_short_vma
@@ -3729,7 +3737,7 @@ elfNN_ia64_final_link (bfd *abfd, struct
       gp_val = _bfd_get_gp_value (abfd);
 
       gp = elf_link_hash_lookup (elf_hash_table (info), "__gp", FALSE,
-			         FALSE, FALSE);
+				 FALSE, FALSE);
       if (gp)
 	{
 	  gp->root.type = bfd_link_hash_defined;
@@ -3944,6 +3952,7 @@ elfNN_ia64_relocate_section (bfd *output
 	case R_IA64_DIR64LSB:
 	  /* Install a dynamic relocation for this reloc.  */
 	  if ((dynamic_symbol_p || bfd_link_pic (info))
+	      && !(h && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	      && r_symndx != STN_UNDEF
 	      && (input_section->flags & SEC_ALLOC) != 0)
 	    {
@@ -4045,7 +4054,7 @@ elfNN_ia64_relocate_section (bfd *output
 	case R_IA64_LTOFF22:
 	case R_IA64_LTOFF22X:
 	case R_IA64_LTOFF64I:
-          dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
+	  dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
 	  value = set_got_entry (input_bfd, info, dyn_i, (h ? h->dynindx : -1),
 				 rel->r_addend, value, R_IA64_DIRNNLSB);
 	  value -= gp_val;
@@ -4056,7 +4065,7 @@ elfNN_ia64_relocate_section (bfd *output
 	case R_IA64_PLTOFF64I:
 	case R_IA64_PLTOFF64MSB:
 	case R_IA64_PLTOFF64LSB:
-          dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
+	  dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
 	  value = set_pltoff_entry (output_bfd, info, dyn_i, value, FALSE);
 	  value -= gp_val;
 	  r = ia64_elf_install_value (hit_addr, value, r_type);
@@ -4067,7 +4076,7 @@ elfNN_ia64_relocate_section (bfd *output
 	case R_IA64_FPTR32LSB:
 	case R_IA64_FPTR64MSB:
 	case R_IA64_FPTR64LSB:
-          dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
+	  dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE);
 	  if (dyn_i->want_fptr)
 	    {
 	      if (!undef_weak_ref)
@@ -4140,15 +4149,15 @@ elfNN_ia64_relocate_section (bfd *output
 	    if (dyn_i->want_fptr)
 	      {
 		BFD_ASSERT (h == NULL || h->dynindx == -1);
-	        if (!undef_weak_ref)
-	          value = set_fptr_entry (output_bfd, info, dyn_i, value);
+		if (!undef_weak_ref)
+		  value = set_fptr_entry (output_bfd, info, dyn_i, value);
 		dynindx = -1;
 	      }
 	    else
 	      {
-	        /* Otherwise, we expect the dynamic linker to create
+		/* Otherwise, we expect the dynamic linker to create
 		   the entry.  */
-	        if (h)
+		if (h)
 		  {
 		    if (h->dynindx != -1)
 		      dynindx = h->dynindx;
@@ -4473,7 +4482,7 @@ missing_tls_sec:
 		_bfd_error_handler
 		  /* xgettext:c-format */
 		  (_("%B: missing TLS section for relocation %s against `%s'"
-		     " at 0x%lx in section `%A'."),
+		     " at %#Lx in section `%A'."),
 		   input_bfd, howto->name, name,
 		   rel->r_offset, input_section);
 		break;
@@ -4489,8 +4498,8 @@ missing_tls_sec:
 		       that the section is too big to relax.  */
 		    _bfd_error_handler
 		      /* xgettext:c-format */
-		      (_("%B: Can't relax br (%s) to `%s' at 0x%lx"
-			 " in section `%A' with size 0x%lx (> 0x1000000)."),
+		      (_("%B: Can't relax br (%s) to `%s' at %#Lx"
+			 " in section `%A' with size %#Lx (> 0x1000000)."),
 		       input_bfd, howto->name, name, rel->r_offset,
 		       input_section, input_section->size);
 		    break;
@@ -4839,9 +4848,9 @@ elfNN_ia64_reloc_type_class (const struc
 
 static const struct bfd_elf_special_section elfNN_ia64_special_sections[] =
 {
-  { STRING_COMMA_LEN (".sbss"),  -1, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_IA_64_SHORT },
+  { STRING_COMMA_LEN (".sbss"),	 -1, SHT_NOBITS,   SHF_ALLOC + SHF_WRITE + SHF_IA_64_SHORT },
   { STRING_COMMA_LEN (".sdata"), -1, SHT_PROGBITS, SHF_ALLOC + SHF_WRITE + SHF_IA_64_SHORT },
-  { NULL,                    0,   0, 0,            0 }
+  { NULL,		     0,	  0, 0,		   0 }
 };
 
 static bfd_boolean
@@ -5086,9 +5095,9 @@ elfNN_hpux_backend_symbol_processing (bf
 #undef  TARGET_LITTLE_SYM
 #undef  TARGET_LITTLE_NAME
 #undef  TARGET_BIG_SYM
-#define TARGET_BIG_SYM                  ia64_elfNN_hpux_be_vec
-#undef  TARGET_BIG_NAME
-#define TARGET_BIG_NAME                 "elfNN-ia64-hpux-big"
+#define TARGET_BIG_SYM			ia64_elfNN_hpux_be_vec
+#undef	TARGET_BIG_NAME
+#define TARGET_BIG_NAME			"elfNN-ia64-hpux-big"
 
 /* These are HP-UX specific functions.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfnn-riscv.c ./bfd/elfnn-riscv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfnn-riscv.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfnn-riscv.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* RISC-V-specific support for NN-bit ELF.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    Contributed by Andrew Waterman (andrew@sifive.com).
    Based on TILE-Gx and MIPS targets.
@@ -32,6 +32,9 @@
 #include "elf/riscv.h"
 #include "opcode/riscv.h"
 
+/* Internal relocations used exclusively by the relaxation pass.  */
+#define R_RISCV_DELETE (R_RISCV_max + 1)
+
 #define ARCH_SIZE NN
 
 #define MINUS_ONE ((bfd_vma)0 - 1)
@@ -52,26 +55,6 @@
 #define ELF_MAXPAGESIZE			0x1000
 #define ELF_COMMONPAGESIZE		0x1000
 
-/* The RISC-V linker needs to keep track of the number of relocs that it
-   decides to copy as dynamic relocs in check_relocs for each symbol.
-   This is so that it can later discard them if they are found to be
-   unnecessary.  We store the information in a field extending the
-   regular ELF linker hash table.  */
-
-struct riscv_elf_dyn_relocs
-{
-  struct riscv_elf_dyn_relocs *next;
-
-  /* The input section of the reloc.  */
-  asection *sec;
-
-  /* Total number of relocs copied for the input section.  */
-  bfd_size_type count;
-
-  /* Number of pc-relative relocs copied for the input section.  */
-  bfd_size_type pc_count;
-};
-
 /* RISC-V ELF linker hash entry.  */
 
 struct riscv_elf_link_hash_entry
@@ -79,7 +62,7 @@ struct riscv_elf_link_hash_entry
   struct elf_link_hash_entry elf;
 
   /* Track dynamic relocs copied for this symbol.  */
-  struct riscv_elf_dyn_relocs *dyn_relocs;
+  struct elf_dyn_relocs *dyn_relocs;
 
 #define GOT_UNKNOWN     0
 #define GOT_NORMAL      1
@@ -127,6 +110,9 @@ struct riscv_elf_link_hash_table
 
   /* Small local sym to section mapping cache.  */
   struct sym_cache sym_cache;
+
+  /* The max alignment of output sections.  */
+  bfd_vma max_alignment;
 };
 
 
@@ -189,13 +175,13 @@ riscv_make_plt_header (bfd_vma gotplt_ad
   bfd_vma gotplt_offset_low = RISCV_PCREL_LOW_PART (gotplt_addr, addr);
 
   /* auipc  t2, %hi(.got.plt)
-     sub    t1, t1, t3               # shifted .got.plt offset + hdr size + 12
+     sub    t1, t1, t3		     # shifted .got.plt offset + hdr size + 12
      l[w|d] t3, %lo(.got.plt)(t2)    # _dl_runtime_resolve
      addi   t1, t1, -(hdr size + 12) # shifted .got.plt offset
      addi   t0, t2, %lo(.got.plt)    # &.got.plt
      srli   t1, t1, log2(16/PTRSIZE) # .got.plt offset
-     l[w|d] t0, PTRSIZE(t0)          # link map
-     jr     t3 */
+     l[w|d] t0, PTRSIZE(t0)	     # link map
+     jr	    t3 */
 
   entry[0] = RISCV_UTYPE (AUIPC, X_T2, gotplt_offset_high);
   entry[1] = RISCV_RTYPE (SUB, X_T1, X_T1, X_T3);
@@ -274,6 +260,7 @@ riscv_elf_link_hash_table_create (bfd *a
       return NULL;
     }
 
+  ret->max_alignment = (bfd_vma) -1;
   return &ret->elf.root;
 }
 
@@ -391,14 +378,14 @@ riscv_elf_copy_indirect_symbol (struct b
     {
       if (edir->dyn_relocs != NULL)
 	{
-	  struct riscv_elf_dyn_relocs **pp;
-	  struct riscv_elf_dyn_relocs *p;
+	  struct elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs *p;
 
 	  /* Add reloc counts against the indirect sym to the direct sym
 	     list.  Merge any entries against the same section.  */
 	  for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
 	    {
-	      struct riscv_elf_dyn_relocs *q;
+	      struct elf_dyn_relocs *q;
 
 	      for (q = edir->dyn_relocs; q != NULL; q = q->next)
 		if (q->sec == p->sec)
@@ -515,7 +502,7 @@ riscv_elf_check_relocs (bfd *abfd, struc
   for (rel = relocs; rel < relocs + sec->reloc_count; rel++)
     {
       unsigned int r_type;
-      unsigned long r_symndx;
+      unsigned int r_symndx;
       struct elf_link_hash_entry *h;
 
       r_symndx = ELFNN_R_SYM (rel->r_info);
@@ -536,10 +523,6 @@ riscv_elf_check_relocs (bfd *abfd, struc
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       switch (r_type)
@@ -654,8 +637,8 @@ riscv_elf_check_relocs (bfd *abfd, struc
 		  && (h->root.type == bfd_link_hash_defweak
 		      || !h->def_regular)))
 	    {
-	      struct riscv_elf_dyn_relocs *p;
-	      struct riscv_elf_dyn_relocs **head;
+	      struct elf_dyn_relocs *p;
+	      struct elf_dyn_relocs **head;
 
 	      /* When creating a shared object, we must copy these
 		 relocs into the output file.  We create a reloc
@@ -694,14 +677,14 @@ riscv_elf_check_relocs (bfd *abfd, struc
 		    s = sec;
 
 		  vpp = &elf_section_data (s)->local_dynrel;
-		  head = (struct riscv_elf_dyn_relocs **) vpp;
+		  head = (struct elf_dyn_relocs **) vpp;
 		}
 
 	      p = *head;
 	      if (p == NULL || p->sec != sec)
 		{
 		  bfd_size_type amt = sizeof *p;
-		  p = ((struct riscv_elf_dyn_relocs *)
+		  p = ((struct elf_dyn_relocs *)
 		       bfd_alloc (htab->elf.dynobj, amt));
 		  if (p == NULL)
 		    return FALSE;
@@ -754,98 +737,21 @@ riscv_elf_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-/* Update the got entry reference counts for the section being removed.  */
+/* Find dynamic relocs for H that apply to read-only sections.  */
 
-static bfd_boolean
-riscv_elf_gc_sweep_hook (bfd *abfd,
-			 struct bfd_link_info *info,
-			 asection *sec,
-			 const Elf_Internal_Rela *relocs)
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
 {
-  const Elf_Internal_Rela *rel, *relend;
-  Elf_Internal_Shdr *symtab_hdr = &elf_symtab_hdr (abfd);
-  struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (abfd);
-  bfd_signed_vma *local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  elf_section_data (sec)->local_dynrel = NULL;
+  struct elf_dyn_relocs *p;
 
-  for (rel = relocs, relend = relocs + sec->reloc_count; rel < relend; rel++)
+  for (p = riscv_elf_hash_entry (h)->dyn_relocs; p != NULL; p = p->next)
     {
-      unsigned long r_symndx;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = ELFNN_R_SYM (rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  struct riscv_elf_link_hash_entry *eh;
-	  struct riscv_elf_dyn_relocs **pp;
-	  struct riscv_elf_dyn_relocs *p;
-
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	  eh = (struct riscv_elf_link_hash_entry *) h;
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next)
-	    if (p->sec == sec)
-	      {
-		/* Everything must go for SEC.  */
-		*pp = p->next;
-		break;
-	      }
-	}
-
-      switch (ELFNN_R_TYPE (rel->r_info))
-	{
-	case R_RISCV_GOT_HI20:
-	case R_RISCV_TLS_GOT_HI20:
-	case R_RISCV_TLS_GD_HI20:
-	  if (h != NULL)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount--;
-	    }
-	  else
-	    {
-	      if (local_got_refcounts &&
-		  local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx]--;
-	    }
-	  break;
-
-	case R_RISCV_HI20:
-	case R_RISCV_PCREL_HI20:
-	case R_RISCV_COPY:
-	case R_RISCV_JUMP_SLOT:
-	case R_RISCV_RELATIVE:
-	case R_RISCV_64:
-	case R_RISCV_32:
-	case R_RISCV_BRANCH:
-	case R_RISCV_CALL:
-	case R_RISCV_JAL:
-	case R_RISCV_RVC_BRANCH:
-	case R_RISCV_RVC_JUMP:
-	  if (bfd_link_pic (info))
-	    break;
-	  /* Fall through.  */
-
-	case R_RISCV_CALL_PLT:
-	  if (h != NULL)
-	    {
-	      if (h->plt.refcount > 0)
-		h->plt.refcount--;
-	    }
-	  break;
+      asection *s = p->sec->output_section;
 
-	default:
-	  break;
-	}
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
     }
-
-  return TRUE;
+  return NULL;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -860,7 +766,6 @@ riscv_elf_adjust_dynamic_symbol (struct 
 {
   struct riscv_elf_link_hash_table *htab;
   struct riscv_elf_link_hash_entry * eh;
-  struct riscv_elf_dyn_relocs *p;
   bfd *dynobj;
   asection *s, *srel;
 
@@ -873,7 +778,7 @@ riscv_elf_adjust_dynamic_symbol (struct 
   BFD_ASSERT (dynobj != NULL
 	      && (h->needs_plt
 		  || h->type == STT_GNU_IFUNC
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -904,12 +809,12 @@ riscv_elf_adjust_dynamic_symbol (struct 
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -935,17 +840,9 @@ riscv_elf_adjust_dynamic_symbol (struct 
       return TRUE;
     }
 
-  eh = (struct riscv_elf_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      s = p->sec->output_section;
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	break;
-    }
-
-  /* If we didn't find any dynamic relocs in read-only sections, then
+  /* If we don't find any dynamic relocs in read-only sections, then
      we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
-  if (p == NULL)
+  if (!readonly_dynrelocs (h))
     {
       h->non_got_ref = 0;
       return TRUE;
@@ -965,7 +862,13 @@ riscv_elf_adjust_dynamic_symbol (struct 
      to copy the initial value out of the dynamic object and into the
      runtime process image.  We need to remember the offset into the
      .rel.bss section we are going to use.  */
-  if ((h->root.u.def.section->flags & SEC_READONLY) != 0)
+  eh = (struct riscv_elf_link_hash_entry *) h;
+  if (eh->tls_type & ~GOT_NORMAL)
+    {
+      s = htab->sdyntdata;
+      srel = htab->elf.srelbss;
+    }
+  else if ((h->root.u.def.section->flags & SEC_READONLY) != 0)
     {
       s = htab->elf.sdynrelro;
       srel = htab->elf.sreldynrelro;
@@ -981,9 +884,6 @@ riscv_elf_adjust_dynamic_symbol (struct 
       h->needs_copy = 1;
     }
 
-  if (eh->tls_type & ~GOT_NORMAL)
-    return _bfd_elf_adjust_dynamic_copy (info, h, htab->sdyntdata);
-
   return _bfd_elf_adjust_dynamic_copy (info, h, s);
 }
 
@@ -996,7 +896,7 @@ allocate_dynrelocs (struct elf_link_hash
   struct bfd_link_info *info;
   struct riscv_elf_link_hash_table *htab;
   struct riscv_elf_link_hash_entry *eh;
-  struct riscv_elf_dyn_relocs *p;
+  struct elf_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
     return TRUE;
@@ -1117,7 +1017,7 @@ allocate_dynrelocs (struct elf_link_hash
     {
       if (SYMBOL_CALLS_LOCAL (info, h))
 	{
-	  struct riscv_elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs **pp;
 
 	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
 	    {
@@ -1191,24 +1091,29 @@ allocate_dynrelocs (struct elf_link_hash
   return TRUE;
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct riscv_elf_link_hash_entry *eh;
-  struct riscv_elf_dyn_relocs *p;
+  asection *sec;
 
-  eh = (struct riscv_elf_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
+
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
     {
-      asection *s = p->sec->output_section;
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	{
-	  ((struct bfd_link_info *) inf)->flags |= DF_TEXTREL;
-	  return FALSE;
-	}
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
+
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -1254,7 +1159,7 @@ riscv_elf_size_dynamic_sections (bfd *ou
 
       for (s = ibfd->sections; s != NULL; s = s->next)
 	{
-	  struct riscv_elf_dyn_relocs *p;
+	  struct elf_dyn_relocs *p;
 
 	  for (p = elf_section_data (s)->local_dynrel; p != NULL; p = p->next)
 	    {
@@ -1418,7 +1323,7 @@ riscv_elf_size_dynamic_sections (bfd *ou
       /* If any dynamic relocs apply to a read-only section,
 	 then we need a DT_TEXTREL entry.  */
       if ((info->flags & DF_TEXTREL) == 0)
-	elf_link_hash_traverse (&htab->elf, readonly_dynrelocs, info);
+	elf_link_hash_traverse (&htab->elf, maybe_set_textrel, info);
 
       if (info->flags & DF_TEXTREL)
 	{
@@ -1566,10 +1471,14 @@ perform_relocation (const reloc_howto_ty
     case R_RISCV_SET8:
     case R_RISCV_SET16:
     case R_RISCV_SET32:
+    case R_RISCV_32_PCREL:
     case R_RISCV_TLS_DTPREL32:
     case R_RISCV_TLS_DTPREL64:
       break;
 
+    case R_RISCV_DELETE:
+      return bfd_reloc_ok;
+
     default:
       return bfd_reloc_notsupported;
     }
@@ -1592,14 +1501,14 @@ typedef struct
 
 typedef struct riscv_pcrel_lo_reloc
 {
-  asection *                     input_section;
-  struct bfd_link_info *         info;
-  reloc_howto_type *             howto;
-  const Elf_Internal_Rela *      reloc;
-  bfd_vma                        addr;
-  const char *                   name;
-  bfd_byte *                     contents;
-  struct riscv_pcrel_lo_reloc *  next;
+  asection *			 input_section;
+  struct bfd_link_info *	 info;
+  reloc_howto_type *		 howto;
+  const Elf_Internal_Rela *	 reloc;
+  bfd_vma			 addr;
+  const char *			 name;
+  bfd_byte *			 contents;
+  struct riscv_pcrel_lo_reloc *	 next;
 } riscv_pcrel_lo_reloc;
 
 typedef struct
@@ -1648,9 +1557,50 @@ riscv_free_pcrel_relocs (riscv_pcrel_rel
 }
 
 static bfd_boolean
-riscv_record_pcrel_hi_reloc (riscv_pcrel_relocs *p, bfd_vma addr, bfd_vma value)
+riscv_zero_pcrel_hi_reloc (Elf_Internal_Rela *rel,
+			   struct bfd_link_info *info,
+			   bfd_vma pc,
+			   bfd_vma addr,
+			   bfd_byte *contents,
+			   const reloc_howto_type *howto,
+			   bfd *input_bfd)
+{
+  /* We may need to reference low addreses in PC-relative modes even when the
+   * PC is far away from these addresses.  For example, undefweak references
+   * need to produce the address 0 when linked.  As 0 is far from the arbitrary
+   * addresses that we can link PC-relative programs at, the linker can't
+   * actually relocate references to those symbols.  In order to allow these
+   * programs to work we simply convert the PC-relative auipc sequences to
+   * 0-relative lui sequences.  */
+  if (bfd_link_pic (info))
+    return FALSE;
+
+  /* If it's possible to reference the symbol using auipc we do so, as that's
+   * more in the spirit of the PC-relative relocations we're processing.  */
+  bfd_vma offset = addr - pc;
+  if (ARCH_SIZE == 32 || VALID_UTYPE_IMM (RISCV_CONST_HIGH_PART (offset)))
+    return FALSE;
+
+  /* If it's impossible to reference this with a LUI-based offset then don't
+   * bother to convert it at all so users still see the PC-relative relocation
+   * in the truncation message.  */
+  if (ARCH_SIZE > 32 && !VALID_UTYPE_IMM (RISCV_CONST_HIGH_PART (addr)))
+    return FALSE;
+
+  rel->r_info = ELFNN_R_INFO(addr, R_RISCV_HI20);
+
+  bfd_vma insn = bfd_get(howto->bitsize, input_bfd, contents + rel->r_offset);
+  insn = (insn & ~MASK_AUIPC) | MATCH_LUI;
+  bfd_put(howto->bitsize, input_bfd, insn, contents + rel->r_offset);
+  return TRUE;
+}
+
+static bfd_boolean
+riscv_record_pcrel_hi_reloc (riscv_pcrel_relocs *p, bfd_vma addr,
+			     bfd_vma value, bfd_boolean absolute)
 {
-  riscv_pcrel_hi_reloc entry = {addr, value - addr};
+  bfd_vma offset = absolute ? value : value - addr;
+  riscv_pcrel_hi_reloc entry = {addr, offset};
   riscv_pcrel_hi_reloc **slot =
     (riscv_pcrel_hi_reloc **) htab_find_slot (p->hi_relocs, &entry, INSERT);
 
@@ -1694,12 +1644,12 @@ riscv_resolve_pcrel_lo_relocs (riscv_pcr
       riscv_pcrel_hi_reloc search = {r->addr, 0};
       riscv_pcrel_hi_reloc *entry = htab_find (p->hi_relocs, &search);
       if (entry == NULL)
-        {
+	{
 	  ((*r->info->callbacks->reloc_overflow)
 	   (r->info, NULL, r->name, r->howto->name, (bfd_vma) 0,
 	    input_bfd, r->input_section, r->reloc->r_offset));
 	  return TRUE;
-        }
+	}
 
       perform_relocation (r->howto, r->reloc, entry->value, r->input_section,
 			  input_bfd, r->contents);
@@ -1755,6 +1705,7 @@ riscv_elf_relocate_section (bfd *output_
   Elf_Internal_Shdr *symtab_hdr = &elf_symtab_hdr (input_bfd);
   struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (input_bfd);
   bfd_vma *local_got_offsets = elf_local_got_offsets (input_bfd);
+  bfd_boolean absolute;
 
   if (!riscv_init_pcrel_relocs (&pcrel_relocs))
     return FALSE;
@@ -1849,6 +1800,8 @@ riscv_elf_relocate_section (bfd *output_
 	case R_RISCV_SET8:
 	case R_RISCV_SET16:
 	case R_RISCV_SET32:
+	case R_RISCV_32_PCREL:
+	case R_RISCV_DELETE:
 	  /* These require no special handling beyond perform_relocation.  */
 	  break;
 
@@ -1927,7 +1880,17 @@ riscv_elf_relocate_section (bfd *output_
 		}
 	    }
 	  relocation = sec_addr (htab->elf.sgot) + off;
-	  if (!riscv_record_pcrel_hi_reloc (&pcrel_relocs, pc, relocation))
+	  absolute = riscv_zero_pcrel_hi_reloc (rel,
+						info,
+						pc,
+						relocation,
+						contents,
+						howto,
+						input_bfd);
+	  r_type = ELFNN_R_TYPE (rel->r_info);
+	  howto = riscv_elf_rtype_to_howto (r_type);
+	  if (!riscv_record_pcrel_hi_reloc (&pcrel_relocs, pc,
+					    relocation, absolute))
 	    r = bfd_reloc_overflow;
 	  break;
 
@@ -2013,8 +1976,18 @@ riscv_elf_relocate_section (bfd *output_
 	  }
 
 	case R_RISCV_PCREL_HI20:
+	  absolute = riscv_zero_pcrel_hi_reloc (rel,
+						info,
+						pc,
+						relocation,
+						contents,
+						howto,
+						input_bfd);
+	  r_type = ELFNN_R_TYPE (rel->r_info);
+	  howto = riscv_elf_rtype_to_howto (r_type);
 	  if (!riscv_record_pcrel_hi_reloc (&pcrel_relocs, pc,
-					    relocation + rel->r_addend))
+					    relocation + rel->r_addend,
+					    absolute))
 	    r = bfd_reloc_overflow;
 	  break;
 
@@ -2135,7 +2108,7 @@ riscv_elf_relocate_section (bfd *output_
 		}
 
 	      /* The GOT entries have not been initialized yet.  Do it
-	         now, and emit any relocations.  */
+		 now, and emit any relocations.  */
 	      if ((bfd_link_pic (info) || indx != 0)
 		  && (h == NULL
 		      || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
@@ -2210,7 +2183,8 @@ riscv_elf_relocate_section (bfd *output_
 
 	  BFD_ASSERT (off < (bfd_vma) -2);
 	  relocation = sec_addr (htab->elf.sgot) + off + (is_ie ? ie_off : 0);
-	  if (!riscv_record_pcrel_hi_reloc (&pcrel_relocs, pc, relocation))
+	  if (!riscv_record_pcrel_hi_reloc (&pcrel_relocs, pc,
+					    relocation, FALSE))
 	    r = bfd_reloc_overflow;
 	  unresolved_reloc = FALSE;
 	  break;
@@ -2229,10 +2203,10 @@ riscv_elf_relocate_section (bfd *output_
 				      rel->r_offset) != (bfd_vma) -1)
 	{
 	  (*_bfd_error_handler)
-	    (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+	    (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
 	     input_bfd,
 	     input_section,
-	     (long) rel->r_offset,
+	     rel->r_offset,
 	     howto->name,
 	     h->root.root.string);
 	  continue;
@@ -2489,7 +2463,7 @@ riscv_elf_finish_dynamic_sections (bfd *
 
       ret = riscv_finish_dyn (output_bfd, info, dynobj, sdyn);
 
-      if (ret != TRUE)
+      if (!ret)
 	return ret;
 
       /* Fill in the head and tail entries in the procedure linkage table.  */
@@ -2700,10 +2674,155 @@ riscv_relax_delete_bytes (bfd *abfd, ase
   return TRUE;
 }
 
+/* A second format for recording PC-relative hi relocations.  This stores the
+   information required to relax them to GP-relative addresses.  */
+
+typedef struct riscv_pcgp_hi_reloc riscv_pcgp_hi_reloc;
+struct riscv_pcgp_hi_reloc
+{
+  bfd_vma hi_sec_off;
+  bfd_vma hi_addend;
+  bfd_vma hi_addr;
+  unsigned hi_sym;
+  asection *sym_sec;
+  riscv_pcgp_hi_reloc *next;
+};
+
+typedef struct riscv_pcgp_lo_reloc riscv_pcgp_lo_reloc;
+struct riscv_pcgp_lo_reloc
+{
+  bfd_vma hi_sec_off;
+  riscv_pcgp_lo_reloc *next;
+};
+
+typedef struct
+{
+  riscv_pcgp_hi_reloc *hi;
+  riscv_pcgp_lo_reloc *lo;
+} riscv_pcgp_relocs;
+
+static bfd_boolean
+riscv_init_pcgp_relocs (riscv_pcgp_relocs *p)
+{
+  p->hi = NULL;
+  p->lo = NULL;
+  return TRUE;
+}
+
+static void
+riscv_free_pcgp_relocs (riscv_pcgp_relocs *p,
+			bfd *abfd ATTRIBUTE_UNUSED,
+			asection *sec ATTRIBUTE_UNUSED)
+{
+  riscv_pcgp_hi_reloc *c;
+  riscv_pcgp_lo_reloc *l;
+
+  for (c = p->hi; c != NULL;)
+    {
+      riscv_pcgp_hi_reloc *next = c->next;
+      free (c);
+      c = next;
+    }
+
+  for (l = p->lo; l != NULL;)
+    {
+      riscv_pcgp_lo_reloc *next = l->next;
+      free (l);
+      l = next;
+    }
+}
+
+static bfd_boolean
+riscv_record_pcgp_hi_reloc (riscv_pcgp_relocs *p, bfd_vma hi_sec_off,
+			    bfd_vma hi_addend, bfd_vma hi_addr,
+			    unsigned hi_sym, asection *sym_sec)
+{
+  riscv_pcgp_hi_reloc *new = bfd_malloc (sizeof(*new));
+  if (!new)
+    return FALSE;
+  new->hi_sec_off = hi_sec_off;
+  new->hi_addend = hi_addend;
+  new->hi_addr = hi_addr;
+  new->hi_sym = hi_sym;
+  new->sym_sec = sym_sec;
+  new->next = p->hi;
+  p->hi = new;
+  return TRUE;
+}
+
+static riscv_pcgp_hi_reloc *
+riscv_find_pcgp_hi_reloc(riscv_pcgp_relocs *p, bfd_vma hi_sec_off)
+{
+  riscv_pcgp_hi_reloc *c;
+
+  for (c = p->hi; c != NULL; c = c->next)
+    if (c->hi_sec_off == hi_sec_off)
+      return c;
+  return NULL;
+}
+
+static bfd_boolean
+riscv_delete_pcgp_hi_reloc(riscv_pcgp_relocs *p, bfd_vma hi_sec_off)
+{
+  bfd_boolean out = FALSE;
+  riscv_pcgp_hi_reloc *c;
+
+  for (c = p->hi; c != NULL; c = c->next)
+      if (c->hi_sec_off == hi_sec_off)
+	out = TRUE;
+
+  return out;
+}
+
+static bfd_boolean
+riscv_use_pcgp_hi_reloc(riscv_pcgp_relocs *p, bfd_vma hi_sec_off)
+{
+  bfd_boolean out = FALSE;
+  riscv_pcgp_hi_reloc *c;
+
+  for (c = p->hi; c != NULL; c = c->next)
+    if (c->hi_sec_off == hi_sec_off)
+      out = TRUE;
+
+  return out;
+}
+
+static bfd_boolean
+riscv_record_pcgp_lo_reloc (riscv_pcgp_relocs *p, bfd_vma hi_sec_off)
+{
+  riscv_pcgp_lo_reloc *new = bfd_malloc (sizeof(*new));
+  if (!new)
+    return FALSE;
+  new->hi_sec_off = hi_sec_off;
+  new->next = p->lo;
+  p->lo = new;
+  return TRUE;
+}
+
+static bfd_boolean
+riscv_find_pcgp_lo_reloc (riscv_pcgp_relocs *p, bfd_vma hi_sec_off)
+{
+  riscv_pcgp_lo_reloc *c;
+
+  for (c = p->lo; c != NULL; c = c->next)
+    if (c->hi_sec_off == hi_sec_off)
+      return TRUE;
+  return FALSE;
+}
+
+static bfd_boolean
+riscv_delete_pcgp_lo_reloc (riscv_pcgp_relocs *p ATTRIBUTE_UNUSED,
+			    bfd_vma lo_sec_off ATTRIBUTE_UNUSED,
+			    size_t bytes ATTRIBUTE_UNUSED)
+{
+  return TRUE;
+}
+
 typedef bfd_boolean (*relax_func_t) (bfd *, asection *, asection *,
 				     struct bfd_link_info *,
 				     Elf_Internal_Rela *,
-				     bfd_vma, bfd_vma, bfd_vma, bfd_boolean *);
+				     bfd_vma, bfd_vma, bfd_vma, bfd_boolean *,
+				     riscv_pcgp_relocs *);
 
 /* Relax AUIPC + JALR into JAL.  */
 
@@ -2714,7 +2833,8 @@ _bfd_riscv_relax_call (bfd *abfd, asecti
 		       bfd_vma symval,
 		       bfd_vma max_alignment,
 		       bfd_vma reserve_size ATTRIBUTE_UNUSED,
-		       bfd_boolean *again)
+		       bfd_boolean *again,
+		       riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED)
 {
   bfd_byte *contents = elf_section_data (sec)->this_hdr.contents;
   bfd_signed_vma foff = symval - (sec_addr (sec) + rel->r_offset);
@@ -2797,7 +2917,8 @@ _bfd_riscv_relax_lui (bfd *abfd,
 		      bfd_vma symval,
 		      bfd_vma max_alignment,
 		      bfd_vma reserve_size,
-		      bfd_boolean *again)
+		      bfd_boolean *again,
+		      riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED)
 {
   bfd_byte *contents = elf_section_data (sec)->this_hdr.contents;
   bfd_vma gp = riscv_global_pointer_value (link_info);
@@ -2857,9 +2978,10 @@ _bfd_riscv_relax_lui (bfd *abfd,
       && VALID_RVC_LUI_IMM (RISCV_CONST_HIGH_PART (symval))
       && VALID_RVC_LUI_IMM (RISCV_CONST_HIGH_PART (symval + ELF_MAXPAGESIZE)))
     {
-      /* Replace LUI with C.LUI if legal (i.e., rd != x2/sp).  */
+      /* Replace LUI with C.LUI if legal (i.e., rd != x0 and rd != x2/sp).  */
       bfd_vma lui = bfd_get_32 (abfd, contents + rel->r_offset);
-      if (((lui >> OP_SH_RD) & OP_MASK_RD) == X_SP)
+      unsigned rd = ((unsigned)lui >> OP_SH_RD) & OP_MASK_RD;
+      if (rd == 0 || rd == X_SP)
 	return TRUE;
 
       lui = (lui & (OP_MASK_RD << OP_SH_RD)) | MATCH_C_LUI;
@@ -2886,7 +3008,8 @@ _bfd_riscv_relax_tls_le (bfd *abfd,
 			 bfd_vma symval,
 			 bfd_vma max_alignment ATTRIBUTE_UNUSED,
 			 bfd_vma reserve_size ATTRIBUTE_UNUSED,
-			 bfd_boolean *again)
+			 bfd_boolean *again,
+			 riscv_pcgp_relocs *prcel_relocs ATTRIBUTE_UNUSED)
 {
   /* See if this symbol is in range of tp.  */
   if (RISCV_CONST_HIGH_PART (tpoff (link_info, symval)) != 0)
@@ -2919,13 +3042,14 @@ _bfd_riscv_relax_tls_le (bfd *abfd,
 
 static bfd_boolean
 _bfd_riscv_relax_align (bfd *abfd, asection *sec,
-			asection *sym_sec ATTRIBUTE_UNUSED,
+			asection *sym_sec,
 			struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
 			Elf_Internal_Rela *rel,
 			bfd_vma symval,
 			bfd_vma max_alignment ATTRIBUTE_UNUSED,
 			bfd_vma reserve_size ATTRIBUTE_UNUSED,
-			bfd_boolean *again ATTRIBUTE_UNUSED)
+			bfd_boolean *again ATTRIBUTE_UNUSED,
+			riscv_pcgp_relocs *pcrel_relocs ATTRIBUTE_UNUSED)
 {
   bfd_byte *contents = elf_section_data (sec)->this_hdr.contents;
   bfd_vma alignment = 1, pos;
@@ -2941,7 +3065,14 @@ _bfd_riscv_relax_align (bfd *abfd, asect
 
   /* Make sure there are enough NOPs to actually achieve the alignment.  */
   if (rel->r_addend < nop_bytes)
-    return FALSE;
+    {
+      (*_bfd_error_handler)
+	(_("%B(%A+0x%lx): %d bytes required for alignment "
+	   "to %d-byte boundary, but only %d present"),
+	   abfd, sym_sec, rel->r_offset, nop_bytes, alignment, rel->r_addend);
+      bfd_set_error (bfd_error_bad_value);
+      return FALSE;
+    }
 
   /* Delete the reloc.  */
   rel->r_info = ELFNN_R_INFO (0, R_RISCV_NONE);
@@ -2963,8 +3094,141 @@ _bfd_riscv_relax_align (bfd *abfd, asect
 				   rel->r_addend - nop_bytes);
 }
 
-/* Relax a section.  Pass 0 shortens code sequences unless disabled.
-   Pass 1, which cannot be disabled, handles code alignment directives.  */
+/* Relax PC-relative references to GP-relative references.  */
+
+static bfd_boolean
+_bfd_riscv_relax_pc  (bfd *abfd,
+		      asection *sec,
+		      asection *sym_sec,
+		      struct bfd_link_info *link_info,
+		      Elf_Internal_Rela *rel,
+		      bfd_vma symval,
+		      bfd_vma max_alignment,
+		      bfd_vma reserve_size,
+		      bfd_boolean *again ATTRIBUTE_UNUSED,
+		      riscv_pcgp_relocs *pcgp_relocs)
+{
+  bfd_vma gp = riscv_global_pointer_value (link_info);
+
+  BFD_ASSERT (rel->r_offset + 4 <= sec->size);
+
+  /* Chain the _LO relocs to their cooresponding _HI reloc to compute the
+   * actual target address.  */
+  riscv_pcgp_hi_reloc hi_reloc = {0};
+  switch (ELFNN_R_TYPE (rel->r_info))
+    {
+    case R_RISCV_PCREL_LO12_I:
+    case R_RISCV_PCREL_LO12_S:
+      {
+	riscv_pcgp_hi_reloc *hi = riscv_find_pcgp_hi_reloc (pcgp_relocs,
+							    symval - sec_addr(sym_sec));
+	if (hi == NULL)
+	  {
+	    riscv_record_pcgp_lo_reloc (pcgp_relocs, symval - sec_addr(sym_sec));
+	    return TRUE;
+	  }
+
+	hi_reloc = *hi;
+	symval = hi_reloc.hi_addr;
+	sym_sec = hi_reloc.sym_sec;
+	if (!riscv_use_pcgp_hi_reloc(pcgp_relocs, hi->hi_sec_off))
+	  (*_bfd_error_handler)
+	   (_("%B(%A+0x%lx): Unable to clear RISCV_PCREL_HI20 reloc"
+	      "for cooresponding RISCV_PCREL_LO12 reloc"),
+	    abfd, sec, rel->r_offset);
+      }
+      break;
+
+    case R_RISCV_PCREL_HI20:
+      /* Mergeable symbols and code might later move out of range.  */
+      if (sym_sec->flags & (SEC_MERGE | SEC_CODE))
+	return TRUE;
+
+      /* If the cooresponding lo relocation has already been seen then it's not
+       * safe to relax this relocation.  */
+      if (riscv_find_pcgp_lo_reloc (pcgp_relocs, rel->r_offset))
+	return TRUE;
+
+      break;
+
+    default:
+      abort ();
+    }
+
+  if (gp)
+    {
+      /* If gp and the symbol are in the same output section, then
+	 consider only that section's alignment.  */
+      struct bfd_link_hash_entry *h =
+	bfd_link_hash_lookup (link_info->hash, RISCV_GP_SYMBOL, FALSE, FALSE, TRUE);
+      if (h->u.def.section->output_section == sym_sec->output_section)
+	max_alignment = (bfd_vma) 1 << sym_sec->output_section->alignment_power;
+    }
+
+  /* Is the reference in range of x0 or gp?
+     Valid gp range conservatively because of alignment issue.  */
+  if (VALID_ITYPE_IMM (symval)
+      || (symval >= gp
+	  && VALID_ITYPE_IMM (symval - gp + max_alignment + reserve_size))
+      || (symval < gp
+	  && VALID_ITYPE_IMM (symval - gp - max_alignment - reserve_size)))
+    {
+      unsigned sym = hi_reloc.hi_sym;
+      switch (ELFNN_R_TYPE (rel->r_info))
+	{
+	case R_RISCV_PCREL_LO12_I:
+	  rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_I);
+	  rel->r_addend += hi_reloc.hi_addend;
+	  return riscv_delete_pcgp_lo_reloc (pcgp_relocs, rel->r_offset, 4);
+
+	case R_RISCV_PCREL_LO12_S:
+	  rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_S);
+	  rel->r_addend += hi_reloc.hi_addend;
+	  return riscv_delete_pcgp_lo_reloc (pcgp_relocs, rel->r_offset, 4);
+
+	case R_RISCV_PCREL_HI20:
+	  riscv_record_pcgp_hi_reloc (pcgp_relocs,
+				      rel->r_offset,
+				      rel->r_addend,
+				      symval,
+				      ELFNN_R_SYM(rel->r_info),
+				      sym_sec);
+	  /* We can delete the unnecessary AUIPC and reloc.  */
+	  rel->r_info = ELFNN_R_INFO (0, R_RISCV_DELETE);
+	  rel->r_addend = 4;
+	  return riscv_delete_pcgp_hi_reloc (pcgp_relocs, rel->r_offset);
+
+	default:
+	  abort ();
+	}
+    }
+
+  return TRUE;
+}
+
+/* Relax PC-relative references to GP-relative references.  */
+
+static bfd_boolean
+_bfd_riscv_relax_delete (bfd *abfd,
+			 asection *sec,
+			 asection *sym_sec ATTRIBUTE_UNUSED,
+			 struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
+			 Elf_Internal_Rela *rel,
+			 bfd_vma symval ATTRIBUTE_UNUSED,
+			 bfd_vma max_alignment ATTRIBUTE_UNUSED,
+			 bfd_vma reserve_size ATTRIBUTE_UNUSED,
+			 bfd_boolean *again ATTRIBUTE_UNUSED,
+			 riscv_pcgp_relocs *pcgp_relocs ATTRIBUTE_UNUSED)
+{
+  if (!riscv_relax_delete_bytes(abfd, sec, rel->r_offset, rel->r_addend))
+    return FALSE;
+  rel->r_info = ELFNN_R_INFO(0, R_RISCV_NONE);
+  return TRUE;
+}
+
+/* Relax a section.  Pass 0 shortens code sequences unless disabled.  Pass 1
+   deletes the bytes that pass 0 made obselete.  Pass 2, which cannot be
+   disabled, handles code alignment directives.  */
 
 static bfd_boolean
 _bfd_riscv_relax_section (bfd *abfd, asection *sec,
@@ -2978,6 +3242,7 @@ _bfd_riscv_relax_section (bfd *abfd, ase
   bfd_boolean ret = FALSE;
   unsigned int i;
   bfd_vma max_alignment, reserve_size = 0;
+  riscv_pcgp_relocs pcgp_relocs;
 
   *again = FALSE;
 
@@ -2989,6 +3254,8 @@ _bfd_riscv_relax_section (bfd *abfd, ase
 	  && info->relax_pass == 0))
     return TRUE;
 
+  riscv_init_pcgp_relocs (&pcgp_relocs);
+
   /* Read this BFD's relocs if we haven't done so already.  */
   if (data->relocs)
     relocs = data->relocs;
@@ -2996,7 +3263,17 @@ _bfd_riscv_relax_section (bfd *abfd, ase
 						 info->keep_memory)))
     goto fail;
 
-  max_alignment = _bfd_riscv_get_max_alignment (sec);
+  if (htab)
+    {
+      max_alignment = htab->max_alignment;
+      if (max_alignment == (bfd_vma) -1)
+	{
+	  max_alignment = _bfd_riscv_get_max_alignment (sec);
+	  htab->max_alignment = max_alignment;
+	}
+    }
+  else
+    max_alignment = _bfd_riscv_get_max_alignment (sec);
 
   /* Examine and consider relaxing each reloc.  */
   for (i = 0; i < sec->reloc_count; i++)
@@ -3007,6 +3284,7 @@ _bfd_riscv_relax_section (bfd *abfd, ase
       int type = ELFNN_R_TYPE (rel->r_info);
       bfd_vma symval;
 
+      relax_func = NULL;
       if (info->relax_pass == 0)
 	{
 	  if (type == R_RISCV_CALL || type == R_RISCV_CALL_PLT)
@@ -3015,6 +3293,11 @@ _bfd_riscv_relax_section (bfd *abfd, ase
 		   || type == R_RISCV_LO12_I
 		   || type == R_RISCV_LO12_S)
 	    relax_func = _bfd_riscv_relax_lui;
+	  else if (!bfd_link_pic(info)
+		   && (type == R_RISCV_PCREL_HI20
+		   || type == R_RISCV_PCREL_LO12_I
+		   || type == R_RISCV_PCREL_LO12_S))
+	    relax_func = _bfd_riscv_relax_pc;
 	  else if (type == R_RISCV_TPREL_HI20
 		   || type == R_RISCV_TPREL_ADD
 		   || type == R_RISCV_TPREL_LO12_I
@@ -3032,7 +3315,9 @@ _bfd_riscv_relax_section (bfd *abfd, ase
 	  /* Skip over the R_RISCV_RELAX.  */
 	  i++;
 	}
-      else if (type == R_RISCV_ALIGN)
+      else if (info->relax_pass == 1 && type == R_RISCV_DELETE)
+	relax_func = _bfd_riscv_relax_delete;
+      else if (info->relax_pass == 2 && type == R_RISCV_ALIGN)
 	relax_func = _bfd_riscv_relax_align;
       else
 	continue;
@@ -3103,7 +3388,8 @@ _bfd_riscv_relax_section (bfd *abfd, ase
       symval += rel->r_addend;
 
       if (!relax_func (abfd, sec, sym_sec, info, rel, symval,
-		       max_alignment, reserve_size, again))
+		       max_alignment, reserve_size, again,
+		       &pcgp_relocs))
 	goto fail;
     }
 
@@ -3112,6 +3398,7 @@ _bfd_riscv_relax_section (bfd *abfd, ase
 fail:
   if (relocs != data->relocs)
     free (relocs);
+  riscv_free_pcgp_relocs(&pcgp_relocs, abfd, sec);
 
   return ret;
 }
@@ -3236,11 +3523,10 @@ riscv_elf_object_p (bfd *abfd)
 #define elf_backend_finish_dynamic_symbol    riscv_elf_finish_dynamic_symbol
 #define elf_backend_finish_dynamic_sections  riscv_elf_finish_dynamic_sections
 #define elf_backend_gc_mark_hook	     riscv_elf_gc_mark_hook
-#define elf_backend_gc_sweep_hook	     riscv_elf_gc_sweep_hook
 #define elf_backend_plt_sym_val		     riscv_elf_plt_sym_val
-#define elf_backend_grok_prstatus            riscv_elf_grok_prstatus
-#define elf_backend_grok_psinfo              riscv_elf_grok_psinfo
-#define elf_backend_object_p                 riscv_elf_object_p
+#define elf_backend_grok_prstatus	     riscv_elf_grok_prstatus
+#define elf_backend_grok_psinfo		     riscv_elf_grok_psinfo
+#define elf_backend_object_p		     riscv_elf_object_p
 #define elf_info_to_howto_rel		     NULL
 #define elf_info_to_howto		     riscv_info_to_howto_rela
 #define bfd_elfNN_bfd_relax_section	     _bfd_riscv_relax_section
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-properties.c ./bfd/elf-properties.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-properties.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-properties.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* ELF program property support.
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -93,15 +93,20 @@ bad_size:
       return FALSE;
     }
 
-  while (1)
+  while (ptr != ptr_end)
     {
-      unsigned int type = bfd_h_get_32 (abfd, ptr);
-      unsigned int datasz = bfd_h_get_32 (abfd, ptr + 4);
+      unsigned int type;
+      unsigned int datasz;
       elf_property *prop;
 
+      if ((size_t) (ptr_end - ptr) < 8)
+	goto bad_size;
+
+      type = bfd_h_get_32 (abfd, ptr);
+      datasz = bfd_h_get_32 (abfd, ptr + 4);
       ptr += 8;
 
-      if ((ptr + datasz) > ptr_end)
+      if (datasz > (size_t) (ptr_end - ptr))
 	{
 	  _bfd_error_handler
 	    (_("warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x"),
@@ -168,6 +173,7 @@ bad_size:
 		  return FALSE;
 		}
 	      prop = _bfd_elf_get_property (abfd, type, datasz);
+	      elf_has_no_copy_on_protected (abfd) = TRUE;
 	      prop->pr_kind = property_number;
 	      goto next;
 
@@ -182,11 +188,6 @@ bad_size:
 
 next:
       ptr += (datasz + (align_size - 1)) & ~ (align_size - 1);
-      if (ptr == ptr_end)
-	break;
-
-      if (ptr > (ptr_end - 8))
-	goto bad_size;
     }
 
   return TRUE;
@@ -197,8 +198,8 @@ next:
    with ABFD.  */
 
 static bfd_boolean
-elf_merge_gnu_properties (bfd *abfd, elf_property *aprop,
-			  elf_property *bprop)
+elf_merge_gnu_properties (struct bfd_link_info *info, bfd *abfd,
+			  elf_property *aprop, elf_property *bprop)
 {
   const struct elf_backend_data *bed = get_elf_backend_data (abfd);
   unsigned int pr_type = aprop != NULL ? aprop->pr_type : bprop->pr_type;
@@ -206,7 +207,7 @@ elf_merge_gnu_properties (bfd *abfd, elf
   if (bed->merge_gnu_properties != NULL
       && pr_type >= GNU_PROPERTY_LOPROC
       && pr_type < GNU_PROPERTY_LOUSER)
-    return bed->merge_gnu_properties (abfd, aprop, bprop);
+    return bed->merge_gnu_properties (info, abfd, aprop, bprop);
 
   switch (pr_type)
     {
@@ -263,7 +264,8 @@ elf_find_and_remove_property (elf_proper
 /* Merge GNU property list *LISTP with ABFD.  */
 
 static void
-elf_merge_gnu_property_list (bfd *abfd, elf_property_list **listp)
+elf_merge_gnu_property_list (struct bfd_link_info *info, bfd *abfd,
+			     elf_property_list **listp)
 {
   elf_property_list *p, **lastp;
   elf_property *pr;
@@ -275,7 +277,7 @@ elf_merge_gnu_property_list (bfd *abfd, 
       pr = elf_find_and_remove_property (listp, p->property.pr_type);
       /* Pass NULL to elf_merge_gnu_properties for the property which
 	 isn't on *LISTP.  */
-      elf_merge_gnu_properties (abfd, &p->property, pr);
+      elf_merge_gnu_properties (info, abfd, &p->property, pr);
       if (p->property.pr_kind == property_remove)
 	{
 	  /* Remove this property.  */
@@ -287,8 +289,11 @@ elf_merge_gnu_property_list (bfd *abfd, 
 
   /* Merge the remaining properties on *LISTP with ABFD.  */
   for (p = *listp; p != NULL; p = p->next)
-    if (elf_merge_gnu_properties (abfd, NULL, &p->property))
+    if (elf_merge_gnu_properties (info, abfd, NULL, &p->property))
       {
+	if (p->property.pr_type == GNU_PROPERTY_NO_COPY_ON_PROTECTED)
+	  elf_has_no_copy_on_protected (abfd) = TRUE;
+
 	pr = _bfd_elf_get_property (abfd, p->property.pr_type,
 				    p->property.pr_datasz);
 	/* It must be a new property.  */
@@ -299,9 +304,10 @@ elf_merge_gnu_property_list (bfd *abfd, 
       }
 }
 
-/* Set up GNU properties.  */
+/* Set up GNU properties.  Return the first relocatable ELF input with
+   GNU properties if found.  Otherwise, return NULL.  */
 
-void
+bfd *
 _bfd_elf_link_setup_gnu_properties (struct bfd_link_info *info)
 {
   bfd *abfd, *first_pbfd = NULL;
@@ -316,17 +322,21 @@ _bfd_elf_link_setup_gnu_properties (stru
   /* Find the first relocatable ELF input with GNU properties.  */
   for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link.next)
     if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
-	&& bfd_count_sections (abfd) != 0
+	&& (abfd->flags & DYNAMIC) == 0
 	&& elf_properties (abfd) != NULL)
       {
 	has_properties = TRUE;
 
 	/* Ignore GNU properties from ELF objects with different machine
-	   code or class.  */
+	   code or class.  Also skip objects without a GNU_PROPERTY note
+	   section.  */
 	if ((elf_machine_code
 	     == get_elf_backend_data (abfd)->elf_machine_code)
 	    && (elfclass
-		== get_elf_backend_data (abfd)->s->elfclass))
+		== get_elf_backend_data (abfd)->s->elfclass)
+	    && bfd_get_section_by_name (abfd,
+					NOTE_GNU_PROPERTY_SECTION_NAME) != NULL
+	    )
 	  {
 	    /* Keep .note.gnu.property section in FIRST_PBFD.  */
 	    first_pbfd = abfd;
@@ -336,11 +346,11 @@ _bfd_elf_link_setup_gnu_properties (stru
 
   /* Do nothing if there is no .note.gnu.property section.  */
   if (!has_properties)
-    return;
+    return NULL;
 
   /* Merge .note.gnu.property sections.  */
   for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link.next)
-    if (abfd != first_pbfd && bfd_count_sections (abfd) != 0)
+    if (abfd != first_pbfd && (abfd->flags & DYNAMIC) == 0)
       {
 	elf_property_list *null_ptr = NULL;
 	elf_property_list **listp = &null_ptr;
@@ -364,14 +374,15 @@ _bfd_elf_link_setup_gnu_properties (stru
 	   when all properties are from ELF objects with different
 	   machine code or class.  */
 	if (first_pbfd != NULL)
-	  elf_merge_gnu_property_list (first_pbfd, listp);
+	  elf_merge_gnu_property_list (info, first_pbfd, listp);
 
 	if (list != NULL)
 	  {
-	    /* Discard .note.gnu.property section in the rest inputs.  */
+	    /* Discard the .note.gnu.property section in this bfd.  */
 	    sec = bfd_get_section_by_name (abfd,
 					   NOTE_GNU_PROPERTY_SECTION_NAME);
-	    sec->output_section = bfd_abs_section_ptr;
+	    if (sec != NULL)
+	      sec->output_section = bfd_abs_section_ptr;
 	  }
       }
 
@@ -387,6 +398,7 @@ _bfd_elf_link_setup_gnu_properties (stru
 
       sec = bfd_get_section_by_name (first_pbfd,
 				     NOTE_GNU_PROPERTY_SECTION_NAME);
+      BFD_ASSERT (sec != NULL);
 
       /* Update stack size in .note.gnu.property with -z stack-size=N
 	 if N > 0.  */
@@ -411,7 +423,7 @@ _bfd_elf_link_setup_gnu_properties (stru
 	  /* Discard .note.gnu.property section if all properties have
 	     been removed.  */
 	  sec->output_section = bfd_abs_section_ptr;
-	  return;
+	  return NULL;
 	}
 
       /* Compute the section size.  */
@@ -487,5 +499,12 @@ _bfd_elf_link_setup_gnu_properties (stru
 
       /* Cache the section contents for elf_link_input_bfd.  */
       elf_section_data (sec)->this_hdr.contents = contents;
+
+      /* If GNU_PROPERTY_NO_COPY_ON_PROTECTED is set, protected data
+	 symbol is defined in the shared object.  */
+      if (elf_has_no_copy_on_protected (first_pbfd))
+	info->extern_protected_data = FALSE;
     }
+
+  return first_pbfd;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-s390-common.c ./bfd/elf-s390-common.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-s390-common.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-s390-common.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* IBM S/390-specific support for ELF 32 and 64 bit functions
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Andreas Krebbel.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -102,7 +102,7 @@ s390_elf_allocate_ifunc_dyn_relocs (stru
   if (h->plt.refcount <= 0 && h->got.refcount <= 0)
     {
       /* When building shared library, we need to handle the case
-         where it is marked with regular reference, but not non-GOT
+	 where it is marked with regular reference, but not non-GOT
 	 reference.  It may happen if we didn't see STT_GNU_IFUNC
 	 symbol at the time when checking relocations.  */
       if (bfd_link_pic (info)
@@ -161,9 +161,7 @@ keep:
       h->type = STT_FUNC;
     }
 
-  /* We need dynamic relocation for STT_GNU_IFUNC symbol only when
-     there is a non-GOT reference in a shared object.  */
-  if (!bfd_link_pic (info) || !h->non_got_ref)
+  if (!bfd_link_pic (info))
     *head = NULL;
 
   /* Finally, allocate space.  */
@@ -209,9 +207,9 @@ elf_s390_allocate_local_syminfo (bfd *ab
   bfd_size_type size;
 
   size = symtab_hdr->sh_info;
-  size *= (sizeof (bfd_signed_vma)       /* local got */
-	   + sizeof (struct plt_entry)   /* local plt */
-	   + sizeof(char));              /* local tls type */
+  size *= (sizeof (bfd_signed_vma)	 /* local got */
+	   + sizeof (struct plt_entry)	 /* local plt */
+	   + sizeof(char));		 /* local tls type */
   elf_local_got_refcounts (abfd) = ((bfd_signed_vma *)
 				    bfd_zalloc (abfd, size));
   if (elf_local_got_refcounts (abfd) == NULL)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-s390.h ./bfd/elf-s390.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-s390.h	1970-01-01 00:00:00.000000000 +0000
+++ ./bfd/elf-s390.h	2018-01-09 02:04:54.000000000 +0000
@@ -0,0 +1,29 @@
+/* S/390-specific support for ELF.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+/* Used to pass info between ld and bfd.  */
+struct s390_elf_params
+{
+  /* Tell the kernel to allocate 4k page tables.  */
+  int pgste;
+};
+
+bfd_boolean bfd_elf_s390_set_options (struct bfd_link_info *info,
+				      struct s390_elf_params *params);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-strtab.c ./bfd/elf-strtab.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-strtab.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-strtab.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* ELF strtab with GC and suffix merging support.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    Written by Jakub Jelinek <jakub@redhat.com>.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -68,7 +68,7 @@ elf_strtab_hash_newfunc (struct bfd_hash
      subclass.  */
   if (entry == NULL)
     entry = (struct bfd_hash_entry *)
-        bfd_hash_allocate (table, sizeof (struct elf_strtab_hash_entry));
+	bfd_hash_allocate (table, sizeof (struct elf_strtab_hash_entry));
   if (entry == NULL)
     return NULL;
 
@@ -168,7 +168,7 @@ _bfd_elf_strtab_add (struct elf_strtab_h
 	  bfd_size_type amt = sizeof (struct elf_strtab_hash_entry *);
 	  tab->alloced *= 2;
 	  tab->array = (struct elf_strtab_hash_entry **)
-              bfd_realloc_or_free (tab->array, tab->alloced * amt);
+	      bfd_realloc_or_free (tab->array, tab->alloced * amt);
 	  if (tab->array == NULL)
 	    return (size_t) -1;
 	}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-vxworks.c ./bfd/elf-vxworks.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-vxworks.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-vxworks.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* VxWorks support for ELF
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -180,15 +180,15 @@ elf_vxworks_emit_relocs (bfd *output_bfd
 	      && (*hash_ptr)->root.u.def.section->output_section != NULL)
 	    {
 	      /* This is a relocation from an executable or shared
-	         library against a symbol in a different shared
-	         library.  We are creating a definition in the output
-	         file but it does not come from any of our normal (.o)
-	         files. ie. a PLT stub.  Normally this would be a
-	         relocation against against SHN_UNDEF with the VMA of
-	         the PLT stub.  This upsets the VxWorks loader.
-	         Convert it to a section-relative relocation.  This
-	         gets some other symbols (for instance .dynbss), but
-	         is conservatively correct.  */
+		 library against a symbol in a different shared
+		 library.  We are creating a definition in the output
+		 file but it does not come from any of our normal (.o)
+		 files. ie. a PLT stub.  Normally this would be a
+		 relocation against against SHN_UNDEF with the VMA of
+		 the PLT stub.  This upsets the VxWorks loader.
+		 Convert it to a section-relative relocation.  This
+		 gets some other symbols (for instance .dynbss), but
+		 is conservatively correct.  */
 	      for (j = 0; j < bed->s->int_rels_per_ext_rel; j++)
 		{
 		  asection *sec = (*hash_ptr)->root.u.def.section;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-vxworks.h ./bfd/elf-vxworks.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elf-vxworks.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elf-vxworks.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* VxWorks support for ELF
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-aarch64.c ./bfd/elfxx-aarch64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-aarch64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfxx-aarch64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* AArch64-specific support for ELF.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -257,9 +257,9 @@ _bfd_aarch64_elf_put_addend (bfd *abfd,
     case BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12:
     case BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC:
       /* Corresponds to: add rd, rn, #uimm12 to provide the low order
-         12 bits of the page offset following
-         BFD_RELOC_AARCH64_ADR_HI21_PCREL which computes the
-         (pc-relative) page base.  */
+	 12 bits of the page offset following
+	 BFD_RELOC_AARCH64_ADR_HI21_PCREL which computes the
+	 (pc-relative) page base.  */
       contents = reencode_add_imm (contents, addend);
       break;
 
@@ -288,15 +288,15 @@ _bfd_aarch64_elf_put_addend (bfd *abfd,
       if (old_addend & ((1 << howto->rightshift) - 1))
 	return bfd_reloc_overflow;
       /* Used for ldr*|str* rt, [rn, #uimm12] to provide the low order
-         12 bits of the page offset following BFD_RELOC_AARCH64_ADR_HI21_PCREL
-         which computes the (pc-relative) page base.  */
+	 12 bits of the page offset following BFD_RELOC_AARCH64_ADR_HI21_PCREL
+	 which computes the (pc-relative) page base.  */
       contents = reencode_ldst_pos_imm (contents, addend);
       break;
 
       /* Group relocations to create high bits of a 16, 32, 48 or 64
-         bit signed data or abs address inline. Will change
-         instruction to MOVN or MOVZ depending on sign of calculated
-         value.  */
+	 bit signed data or abs address inline. Will change
+	 instruction to MOVN or MOVZ depending on sign of calculated
+	 value.  */
 
     case BFD_RELOC_AARCH64_MOVW_G0_S:
     case BFD_RELOC_AARCH64_MOVW_G1_S:
@@ -322,7 +322,7 @@ _bfd_aarch64_elf_put_addend (bfd *abfd,
       /* Fall through.  */
 
       /* Group relocations to create a 16, 32, 48 or 64 bit unsigned
-         data or abs address inline.  */
+	 data or abs address inline.  */
 
     case BFD_RELOC_AARCH64_MOVW_G0:
     case BFD_RELOC_AARCH64_MOVW_G0_NC:
@@ -413,7 +413,6 @@ _bfd_aarch64_elf_resolve_relocation (bfd
 
     case BFD_RELOC_AARCH64_16:
     case BFD_RELOC_AARCH64_32:
-    case BFD_RELOC_AARCH64_LD64_GOTOFF_LO15:
     case BFD_RELOC_AARCH64_MOVW_G0:
     case BFD_RELOC_AARCH64_MOVW_G0_NC:
     case BFD_RELOC_AARCH64_MOVW_G0_S:
@@ -424,8 +423,6 @@ _bfd_aarch64_elf_resolve_relocation (bfd
     case BFD_RELOC_AARCH64_MOVW_G2_NC:
     case BFD_RELOC_AARCH64_MOVW_G2_S:
     case BFD_RELOC_AARCH64_MOVW_G3:
-    case BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC:
-    case BFD_RELOC_AARCH64_MOVW_GOTOFF_G1:
     case BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC:
     case BFD_RELOC_AARCH64_TLSDESC_OFF_G1:
     case BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:
@@ -468,10 +465,15 @@ _bfd_aarch64_elf_resolve_relocation (bfd
       value = PG (value + addend) - PG (place);
       break;
 
+    /* Caller must make sure addend is the base address of .got section.  */
     case BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14:
     case BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15:
-      /* Caller must make sure addend is the base address of .got section.  */
-      value = value - PG (addend);
+      addend = PG (addend);
+      /* Fall through.  */
+    case BFD_RELOC_AARCH64_LD64_GOTOFF_LO15:
+    case BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC:
+    case BFD_RELOC_AARCH64_MOVW_GOTOFF_G1:
+      value = value - addend;
       break;
 
     case BFD_RELOC_AARCH64_ADD_LO12:
@@ -588,7 +590,7 @@ _bfd_aarch64_elf_grok_psinfo (bfd *abfd,
     default:
       return FALSE;
 
-    case 136:        /* This is sizeof(struct elf_prpsinfo) on Linux/aarch64.  */
+    case 136:	     /* This is sizeof(struct elf_prpsinfo) on Linux/aarch64.  */
       elf_tdata (abfd)->core->pid = bfd_get_32 (abfd, note->descdata + 24);
       elf_tdata (abfd)->core->program
 	= _bfd_elfcore_strndup (abfd, note->descdata + 40, 16);
@@ -622,38 +624,38 @@ _bfd_aarch64_elf_write_core_note (bfd *a
 
     case NT_PRPSINFO:
       {
-        char data[136];
-        va_list ap;
+	char data[136];
+	va_list ap;
 
-        va_start (ap, note_type);
-        memset (data, 0, sizeof (data));
-        strncpy (data + 40, va_arg (ap, const char *), 16);
-        strncpy (data + 56, va_arg (ap, const char *), 80);
-        va_end (ap);
+	va_start (ap, note_type);
+	memset (data, 0, sizeof (data));
+	strncpy (data + 40, va_arg (ap, const char *), 16);
+	strncpy (data + 56, va_arg (ap, const char *), 80);
+	va_end (ap);
 
-        return elfcore_write_note (abfd, buf, bufsiz, "CORE",
+	return elfcore_write_note (abfd, buf, bufsiz, "CORE",
 				   note_type, data, sizeof (data));
       }
 
     case NT_PRSTATUS:
       {
-        char data[392];
-        va_list ap;
-        long pid;
-        int cursig;
-        const void *greg;
-
-        va_start (ap, note_type);
-        memset (data, 0, sizeof (data));
-        pid = va_arg (ap, long);
-        bfd_put_32 (abfd, pid, data + 32);
-        cursig = va_arg (ap, int);
-        bfd_put_16 (abfd, cursig, data + 12);
-        greg = va_arg (ap, const void *);
-        memcpy (data + 112, greg, 272);
-        va_end (ap);
+	char data[392];
+	va_list ap;
+	long pid;
+	int cursig;
+	const void *greg;
+
+	va_start (ap, note_type);
+	memset (data, 0, sizeof (data));
+	pid = va_arg (ap, long);
+	bfd_put_32 (abfd, pid, data + 32);
+	cursig = va_arg (ap, int);
+	bfd_put_16 (abfd, cursig, data + 12);
+	greg = va_arg (ap, const void *);
+	memcpy (data + 112, greg, 272);
+	va_end (ap);
 
-        return elfcore_write_note (abfd, buf, bufsiz, "CORE",
+	return elfcore_write_note (abfd, buf, bufsiz, "CORE",
 				   note_type, data, sizeof (data));
       }
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-aarch64.h ./bfd/elfxx-aarch64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-aarch64.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfxx-aarch64.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* AArch64-specific backend routines.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -23,7 +23,7 @@
 #include "stdint.h"
 
 /* Take the PAGE component of an address or offset.  */
-#define PG(x)        ((x) & ~ (bfd_vma) 0xfff)
+#define PG(x)	     ((x) & ~ (bfd_vma) 0xfff)
 #define PG_OFFSET(x) ((x) &   (bfd_vma) 0xfff)
 
 #define AARCH64_ADR_OP		0x10000000
@@ -63,5 +63,5 @@ _bfd_aarch64_elf_write_core_note (bfd *,
 
 #define elf_backend_add_symbol_hook	_bfd_aarch64_elf_add_symbol_hook
 #define elf_backend_grok_prstatus	_bfd_aarch64_elf_grok_prstatus
-#define elf_backend_grok_psinfo         _bfd_aarch64_elf_grok_psinfo
-#define elf_backend_write_core_note     _bfd_aarch64_elf_write_core_note
+#define elf_backend_grok_psinfo		_bfd_aarch64_elf_grok_psinfo
+#define elf_backend_write_core_note	_bfd_aarch64_elf_write_core_note
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-ia64.c ./bfd/elfxx-ia64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-ia64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfxx-ia64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* IA-64 support for 64-bit ELF
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -33,30 +33,30 @@
 /* THE RULES for all the stuff the linker creates --
 
   GOT		Entries created in response to LTOFF or LTOFF_FPTR
- 		relocations.  Dynamic relocs created for dynamic
- 		symbols in an application; REL relocs for locals
- 		in a shared library.
+		relocations.  Dynamic relocs created for dynamic
+		symbols in an application; REL relocs for locals
+		in a shared library.
 
   FPTR		The canonical function descriptor.  Created for local
- 		symbols in applications.  Descriptors for dynamic symbols
- 		and local symbols in shared libraries are created by
- 		ld.so.  Thus there are no dynamic relocs against these
- 		objects.  The FPTR relocs for such _are_ passed through
- 		to the dynamic relocation tables.
+		symbols in applications.  Descriptors for dynamic symbols
+		and local symbols in shared libraries are created by
+		ld.so.	Thus there are no dynamic relocs against these
+		objects.  The FPTR relocs for such _are_ passed through
+		to the dynamic relocation tables.
 
   FULL_PLT	Created for a PCREL21B relocation against a dynamic symbol.
- 		Requires the creation of a PLTOFF entry.  This does not
- 		require any dynamic relocations.
+		Requires the creation of a PLTOFF entry.  This does not
+		require any dynamic relocations.
 
-  PLTOFF	Created by PLTOFF relocations.  For local symbols, this
- 		is an alternate function descriptor, and in shared libraries
- 		requires two REL relocations.  Note that this cannot be
- 		transformed into an FPTR relocation, since it must be in
- 		range of the GP.  For dynamic symbols, this is a function
- 		descriptor for a MIN_PLT entry, and requires one IPLT reloc.
+  PLTOFF	Created by PLTOFF relocations.	For local symbols, this
+		is an alternate function descriptor, and in shared libraries
+		requires two REL relocations.  Note that this cannot be
+		transformed into an FPTR relocation, since it must be in
+		range of the GP.  For dynamic symbols, this is a function
+		descriptor for a MIN_PLT entry, and requires one IPLT reloc.
 
   MIN_PLT	Created by PLTOFF entries against dynamic symbols.  This
- 		does not require dynamic relocations.  */
+		does not require dynamic relocations.  */
 
 /* ia64-specific relocation.  */
 
@@ -66,9 +66,9 @@
    done in elfNN_ia64_final_link_relocate.  */
 static bfd_reloc_status_type
 ia64_elf_reloc (bfd *abfd ATTRIBUTE_UNUSED, arelent *reloc,
-                asymbol *sym ATTRIBUTE_UNUSED,
-                PTR data ATTRIBUTE_UNUSED, asection *input_section,
-                bfd *output_bfd, char **error_message)
+		asymbol *sym ATTRIBUTE_UNUSED,
+		PTR data ATTRIBUTE_UNUSED, asection *input_section,
+		bfd *output_bfd, char **error_message)
 {
   if (output_bfd)
     {
@@ -218,7 +218,7 @@ ia64_elf_lookup_howto (unsigned int rtyp
 
 reloc_howto_type*
 ia64_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                            bfd_reloc_code_real_type bfd_code)
+			    bfd_reloc_code_real_type bfd_code)
 {
   unsigned int rtype;
 
@@ -327,7 +327,7 @@ ia64_elf_reloc_type_lookup (bfd *abfd AT
 
 reloc_howto_type *
 ia64_elf_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                            const char *r_name)
+			    const char *r_name)
 {
   unsigned int i;
 
@@ -401,7 +401,7 @@ ia64_elf_relax_br (bfd_byte *contents, b
     {
     case 0:
       /* Check if slot 1 and slot 2 are NOPs. Possible template is
-         BBB.  We only need to check nop.b.  */
+	 BBB.  We only need to check nop.b.  */
       if (!(IS_NOP_B (s1) && IS_NOP_B (s2)))
 	return FALSE;
       br_code = s0;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-ia64.h ./bfd/elfxx-ia64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-ia64.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfxx-ia64.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* IA-64 support for 64-bit ELF
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -30,4 +30,4 @@ void ia64_elf_relax_brl (bfd_byte *conte
 void ia64_elf_relax_ldxmov (bfd_byte *contents, bfd_vma off);
 
 bfd_reloc_status_type ia64_elf_install_value (bfd_byte *hit_addr, bfd_vma v,
-                                              unsigned int r_type);
+					      unsigned int r_type);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-mips.c ./bfd/elfxx-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-mips.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfxx-mips.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* MIPS-specific support for ELF
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    Most of the information added by Ian Lance Taylor, Cygnus Support,
    <ian@cygnus.com>.
@@ -868,8 +868,8 @@ static bfd *reldyn_sorting_bfd;
 
 /* Put out word-sized data.  */
 #define MIPS_ELF_PUT_WORD(abfd, val, ptr)	\
-  (ABI_64_P (abfd) 				\
-   ? bfd_put_64 (abfd, val, ptr) 		\
+  (ABI_64_P (abfd)				\
+   ? bfd_put_64 (abfd, val, ptr)		\
    : bfd_put_32 (abfd, val, ptr))
 
 /* The opcode for word-sized loads (LW or LD).  */
@@ -910,7 +910,7 @@ static bfd *reldyn_sorting_bfd;
 #define STUB_LW(abfd)							\
   ((ABI_64_P (abfd)							\
     ? 0xdf998010				/* ld t9,0x8010(gp) */	\
-    : 0x8f998010))              		/* lw t9,0x8010(gp) */
+    : 0x8f998010))				/* lw t9,0x8010(gp) */
 #define STUB_MOVE 0x03e07825			/* or t7,ra,zero */
 #define STUB_LUI(VAL) (0x3c180000 + (VAL))	/* lui t8,VAL */
 #define STUB_JALR 0x0320f809			/* jalr ra,t9 */
@@ -951,9 +951,9 @@ static bfd *reldyn_sorting_bfd;
 /* The name of the dynamic interpreter.  This is put in the .interp
    section.  */
 
-#define ELF_DYNAMIC_INTERPRETER(abfd) 		\
-   (ABI_N32_P (abfd) ? "/usr/lib32/libc.so.1" 	\
-    : ABI_64_P (abfd) ? "/usr/lib64/libc.so.1" 	\
+#define ELF_DYNAMIC_INTERPRETER(abfd)		\
+   (ABI_N32_P (abfd) ? "/usr/lib32/libc.so.1"	\
+    : ABI_64_P (abfd) ? "/usr/lib64/libc.so.1"	\
     : "/usr/lib/libc.so.1")
 
 #ifdef BFD64
@@ -1192,7 +1192,7 @@ static void
 bfd_put_micromips_32 (const bfd *abfd, bfd_vma opcode, bfd_byte *ptr)
 {
   bfd_put_16 (abfd, (opcode >> 16) & 0xffff, ptr);
-  bfd_put_16 (abfd,  opcode        & 0xffff, ptr + 2);
+  bfd_put_16 (abfd,  opcode	   & 0xffff, ptr + 2);
 }
 
 /* microMIPS 32-bit opcode helper retriever.  */
@@ -1710,8 +1710,8 @@ mips_elf_check_mips16_stubs (struct bfd_
       && ! h->need_fn_stub)
     {
       /* We don't need the fn_stub; the only references to this symbol
-         are 16 bit calls.  Clobber the size to 0 to prevent it from
-         being included in the link.  */
+	 are 16 bit calls.  Clobber the size to 0 to prevent it from
+	 being included in the link.  */
       h->fn_stub->size = 0;
       h->fn_stub->flags &= ~SEC_RELOC;
       h->fn_stub->reloc_count = 0;
@@ -1723,8 +1723,8 @@ mips_elf_check_mips16_stubs (struct bfd_
       && ELF_ST_IS_MIPS16 (h->root.other))
     {
       /* We don't need the call_stub; this is a 16 bit function, so
-         calls from other 16 bit functions are OK.  Clobber the size
-         to 0 to prevent it from being included in the link.  */
+	 calls from other 16 bit functions are OK.  Clobber the size
+	 to 0 to prevent it from being included in the link.  */
       h->call_stub->size = 0;
       h->call_stub->flags &= ~SEC_RELOC;
       h->call_stub->reloc_count = 0;
@@ -1736,8 +1736,8 @@ mips_elf_check_mips16_stubs (struct bfd_
       && ELF_ST_IS_MIPS16 (h->root.other))
     {
       /* We don't need the call_stub; this is a 16 bit function, so
-         calls from other 16 bit functions are OK.  Clobber the size
-         to 0 to prevent it from being included in the link.  */
+	 calls from other 16 bit functions are OK.  Clobber the size
+	 to 0 to prevent it from being included in the link.  */
       h->call_fp_stub->size = 0;
       h->call_fp_stub->flags &= ~SEC_RELOC;
       h->call_fp_stub->reloc_count = 0;
@@ -2022,7 +2022,7 @@ mips_elf_check_symbols (struct mips_elf_
    +--------------+--------------------------------+
    |     JALX     | X|   Imm 20:16  |   Imm 25:21  |
    +--------------+--------------------------------+
-   |                Immediate  15:0                |
+   |		    Immediate  15:0		   |
    +-----------------------------------------------+
 
    JALX is the 5-bit value 00011.  X is 0 for jal, 1 for jalx.
@@ -2052,16 +2052,16 @@ mips_elf_check_symbols (struct mips_elf_
 
    big-endian:
    +--------+----------------------+
-   |        |                      |
-   |        |    targ26-16         |
-   |31    26|25                   0|
+   |	    |			   |
+   |	    |	 targ26-16	   |
+   |31	  26|25			  0|
    +--------+----------------------+
 
    little-endian:
    +----------+------+-------------+
-   |          |      |             |
-   |  sub1    |      |     sub2    |
-   |0        9|10  15|16         31|
+   |	      |	     |		   |
+   |  sub1    |	     |	   sub2	   |
+   |0	     9|10  15|16	 31|
    +----------+--------------------+
    where targ26-16 is sub1 followed by sub2 (i.e., the addend field A is
    ((sub1 << 16) | sub2)).
@@ -2887,7 +2887,7 @@ mips_elf_output_extsym (struct mips_elf_
 	  const char *name;
 
 	  /* Use undefined class.  Also, set class and type for some
-             special symbols.  */
+	     special symbols.  */
 	  name = h->root.root.root.string;
 	  if (strcmp (name, mips_elf_dynsym_rtproc_names[0]) == 0
 	      || strcmp (name, mips_elf_dynsym_rtproc_names[1]) == 0)
@@ -5310,6 +5310,7 @@ mips_elf_calculate_relocation (bfd *abfd
   bfd_boolean target_is_micromips_code_p = FALSE;
   struct mips_elf_link_hash_table *htab;
   bfd *dynobj;
+  bfd_boolean resolved_to_zero;
 
   dynobj = elf_hash_table (info)->dynobj;
   htab = mips_elf_hash_table (info);
@@ -5373,14 +5374,14 @@ mips_elf_calculate_relocation (bfd *abfd
 	*namep = bfd_section_name (input_bfd, sec);
 
       /* For relocations against a section symbol and ones against no
-         symbol (absolute relocations) infer the ISA mode from the addend.  */
+	 symbol (absolute relocations) infer the ISA mode from the addend.  */
       if (section_p || r_symndx == STN_UNDEF)
 	{
 	  target_is_16_bit_code_p = (addend & 1) && !micromips_p;
 	  target_is_micromips_code_p = (addend & 1) && micromips_p;
 	}
       /* For relocations against an absolute symbol infer the ISA mode
-         from the value of the symbol plus addend.  */
+	 from the value of the symbol plus addend.  */
       else if (bfd_is_abs_section (sec))
 	{
 	  target_is_16_bit_code_p = ((symbol + addend) & 1) && !micromips_p;
@@ -5456,7 +5457,7 @@ mips_elf_calculate_relocation (bfd *abfd
 	{
 	  /* If this is a dynamic link, we should have created a
 	     _DYNAMIC_LINK symbol or _DYNAMIC_LINKING(for normal mips) symbol
-	     in in _bfd_mips_elf_create_dynamic_sections.
+	     in _bfd_mips_elf_create_dynamic_sections.
 	     Otherwise, we should define the symbol with a value of 0.
 	     FIXME: It should probably get into the symbol table
 	     somehow as well.  */
@@ -5575,7 +5576,7 @@ mips_elf_calculate_relocation (bfd *abfd
 	    sec = h->call_stub;
 	  else
 	    sec = h->call_fp_stub;
-  	}
+	}
 
       BFD_ASSERT (sec->size > 0);
       symbol = sec->output_section->vma + sec->output_offset;
@@ -5665,6 +5666,10 @@ mips_elf_calculate_relocation (bfd *abfd
       addend = 0;
     }
 
+  resolved_to_zero = (h != NULL
+		      && UNDEFWEAK_NO_DYNAMIC_RELOC (info,
+							  &h->root));
+
   /* If we haven't already determined the GOT offset, and we're going
      to need it, get it now.  */
   switch (r_type)
@@ -5796,7 +5801,8 @@ mips_elf_calculate_relocation (bfd *abfd
 	  && r_symndx != STN_UNDEF
 	  && (h == NULL
 	      || h->root.root.type != bfd_link_hash_undefweak
-	      || ELF_ST_VISIBILITY (h->root.other) == STV_DEFAULT)
+	      || (ELF_ST_VISIBILITY (h->root.other) == STV_DEFAULT
+		  && !resolved_to_zero))
 	  && (input_section->flags & SEC_ALLOC) != 0)
 	{
 	  /* If we're creating a shared library, then we can't know
@@ -5857,7 +5863,7 @@ mips_elf_calculate_relocation (bfd *abfd
 	if ((was_local_p || h->root.root.type != bfd_link_hash_undefweak)
 	    && (*cross_mode_jump_p
 		? (value & 3) != (r_type == R_MIPS_26)
-	        : (value & ((1 << shift) - 1)) != (r_type != R_MIPS_26)))
+		: (value & ((1 << shift) - 1)) != (r_type != R_MIPS_26)))
 	  return bfd_reloc_outofrange;
 
 	value >>= shift;
@@ -5908,9 +5914,9 @@ mips_elf_calculate_relocation (bfd *abfd
       else
 	{
 	  /* For MIPS16 ABI code we generate this sequence
-	        0: li      $v0,%hi(_gp_disp)
-	        4: addiupc $v1,%lo(_gp_disp)
-	        8: sll     $v0,16
+		0: li      $v0,%hi(_gp_disp)
+		4: addiupc $v1,%lo(_gp_disp)
+		8: sll     $v0,16
 	       12: addu    $v0,$v1
 	       14: move    $gp,$v0
 	     So the offsets of hi and lo relocs are the same, but the
@@ -6048,8 +6054,8 @@ mips_elf_calculate_relocation (bfd *abfd
 	addend = _bfd_mips_elf_sign_extend (addend, 18);
 
       /* No need to exclude weak undefined symbols here as they resolve
-         to 0 and never set `*cross_mode_jump_p', so this alignment check
-         will never trigger for them.  */
+	 to 0 and never set `*cross_mode_jump_p', so this alignment check
+	 will never trigger for them.  */
       if (*cross_mode_jump_p
 	  ? ((symbol + addend) & 3) != 1
 	  : ((symbol + addend) & 3) != 0)
@@ -6396,7 +6402,7 @@ mips_elf_perform_relocation (struct bfd_
 	}
 
       /* If the opcode is not JAL or JALX, there's a problem.  We cannot
-         convert J or JALS to JALX.  */
+	 convert J or JALS to JALX.  */
       if (!ok)
 	{
 	  info->callbacks->einfo
@@ -6414,6 +6420,7 @@ mips_elf_perform_relocation (struct bfd_
       bfd_boolean ok = FALSE;
       bfd_vma opcode = x >> 16;
       bfd_vma jalx_opcode = 0;
+      bfd_vma sign_bit = 0;
       bfd_vma addr;
       bfd_vma dest;
 
@@ -6421,12 +6428,14 @@ mips_elf_perform_relocation (struct bfd_
 	{
 	  ok = opcode == 0x4060;
 	  jalx_opcode = 0x3c;
+	  sign_bit = 0x10000;
 	  value <<= 1;
 	}
       else if (r_type == R_MIPS_PC16 || r_type == R_MIPS_GNU_REL16_S2)
 	{
 	  ok = opcode == 0x411;
 	  jalx_opcode = 0x1d;
+	  sign_bit = 0x20000;
 	  value <<= 2;
 	}
 
@@ -6436,7 +6445,8 @@ mips_elf_perform_relocation (struct bfd_
 		  + input_section->output_offset
 		  + relocation->r_offset
 		  + 4);
-	  dest = addr + (((value & 0x3ffff) ^ 0x20000) - 0x20000);
+	  dest = (addr
+		  + (((value & ((sign_bit << 1) - 1)) ^ sign_bit) - sign_bit));
 
 	  if ((addr >> 28) << 28 != (dest >> 28) << 28)
 	    {
@@ -6793,6 +6803,9 @@ _bfd_elf_mips_mach (flagword flags)
     case E_MIPS_MACH_XLR:
       return bfd_mach_mips_xlr;
 
+    case E_MIPS_MACH_IAMR2:
+      return bfd_mach_mips_interaptiv_mr2;
+
     default:
       switch (flags & EF_MIPS_ARCH)
 	{
@@ -6952,7 +6965,7 @@ _bfd_mips_elf_symbol_processing (bfd *ab
 	  {
 	    asym->section = section;
 	    /* MIPS_TEXT is a bit special, the address is not an offset
-	       to the base of the .text section.  So substract the section
+	       to the base of the .text section.  So subtract the section
 	       base address to make it an offset.  */
 	    asym->value -= section->vma;
 	  }
@@ -6967,7 +6980,7 @@ _bfd_mips_elf_symbol_processing (bfd *ab
 	  {
 	    asym->section = section;
 	    /* MIPS_DATA is a bit special, the address is not an offset
-	       to the base of the .data section.  So substract the section
+	       to the base of the .data section.  So subtract the section
 	       base address to make it an offset.  */
 	    asym->value -= section->vma;
 	  }
@@ -7010,10 +7023,10 @@ _bfd_mips_elf_symbol_processing (bfd *ab
    We therefore take the following approach:
 
       - If ABFD contains a .gcc_compiled_longXX section, use it to
-        determine the pointer size.
+	determine the pointer size.
 
       - Otherwise check the type of the first relocation.  Assume that
-        the LP64 ABI is being used if the relocation is of type R_MIPS_64.
+	the LP64 ABI is being used if the relocation is of type R_MIPS_64.
 
       - Otherwise punt.
 
@@ -7028,7 +7041,7 @@ _bfd_mips_elf_symbol_processing (bfd *ab
    did so.  */
 
 unsigned int
-_bfd_mips_elf_eh_frame_address_size (bfd *abfd, asection *sec)
+_bfd_mips_elf_eh_frame_address_size (bfd *abfd, const asection *sec)
 {
   if (elf_elfheader (abfd)->e_ident[EI_CLASS] == ELFCLASS64)
     return 8;
@@ -7274,7 +7287,7 @@ _bfd_mips_elf_section_from_shdr (bfd *ab
       break;
     case SHT_MIPS_DWARF:
       if (! CONST_STRNEQ (name, ".debug_")
-          && ! CONST_STRNEQ (name, ".zdebug_"))
+	  && ! CONST_STRNEQ (name, ".zdebug_"))
 	return FALSE;
       break;
     case SHT_MIPS_SYMBOL_LIB:
@@ -7427,7 +7440,7 @@ _bfd_mips_elf_fake_sections (bfd *abfd, 
     {
       hdr->sh_type = SHT_MIPS_DEBUG;
       /* In a shared object on IRIX 5.3, the .mdebug section has an
-         entsize of 0.  FIXME: Does this matter?  */
+	 entsize of 0.  FIXME: Does this matter?  */
       if (SGI_COMPAT (abfd) && (abfd->flags & DYNAMIC) != 0)
 	hdr->sh_entsize = 0;
       else
@@ -7437,7 +7450,7 @@ _bfd_mips_elf_fake_sections (bfd *abfd, 
     {
       hdr->sh_type = SHT_MIPS_REGINFO;
       /* In a shared object on IRIX 5.3, the .reginfo section has an
-         entsize of 0x18.  FIXME: Does this matter?  */
+	 entsize of 0x18.  FIXME: Does this matter?  */
       if (SGI_COMPAT (abfd))
 	{
 	  if ((abfd->flags & DYNAMIC) != 0)
@@ -7490,7 +7503,7 @@ _bfd_mips_elf_fake_sections (bfd *abfd, 
       hdr->sh_entsize = sizeof (Elf_External_ABIFlags_v0);
     }
   else if (CONST_STRNEQ (name, ".debug_")
-           || CONST_STRNEQ (name, ".zdebug_"))
+	   || CONST_STRNEQ (name, ".zdebug_"))
     {
       hdr->sh_type = SHT_MIPS_DWARF;
 
@@ -7504,7 +7517,7 @@ _bfd_mips_elf_fake_sections (bfd *abfd, 
     {
       hdr->sh_type = SHT_MIPS_SYMBOL_LIB;
       /* The sh_link and sh_info fields are set in
-         final_write_processing.  */
+	 final_write_processing.  */
     }
   else if (CONST_STRNEQ (name, ".MIPS.events")
 	   || CONST_STRNEQ (name, ".MIPS.post_rel"))
@@ -7634,8 +7647,8 @@ _bfd_mips_elf_add_symbol_hook (bfd *abfd
 	  elf_text_symbol->section = elf_text_section;
 	}
       /* This code used to do *secp = bfd_und_section_ptr if
-         bfd_link_pic (info).  I don't know why, and that doesn't make sense,
-         so I took it out.  */
+	 bfd_link_pic (info).  I don't know why, and that doesn't make sense,
+	 so I took it out.  */
       *secp = mips_elf_tdata (abfd)->elf_text_section;
       break;
 
@@ -7675,8 +7688,8 @@ _bfd_mips_elf_add_symbol_hook (bfd *abfd
 	  elf_data_symbol->section = elf_data_section;
 	}
       /* This code used to do *secp = bfd_und_section_ptr if
-         bfd_link_pic (info).  I don't know why, and that doesn't make sense,
-         so I took it out.  */
+	 bfd_link_pic (info).  I don't know why, and that doesn't make sense,
+	 so I took it out.  */
       *secp = mips_elf_tdata (abfd)->elf_data_section;
       break;
 
@@ -8102,7 +8115,7 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
   extsymoff = (elf_bad_symtab (abfd)) ? 0 : symtab_hdr->sh_info;
 
   bed = get_elf_backend_data (abfd);
-  rel_end = relocs + sec->reloc_count * bed->s->int_rels_per_ext_rel;
+  rel_end = relocs + sec->reloc_count;
 
   /* Check for the mips16 stub sections.  */
 
@@ -8112,7 +8125,7 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
       unsigned long r_symndx;
 
       /* Look at the relocation information to figure out which symbol
-         this is for.  */
+	 this is for.  */
 
       r_symndx = mips16_stub_symndx (bed, sec, relocs, rel_end);
       if (r_symndx == 0)
@@ -8132,8 +8145,8 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
 	  asection *o;
 
 	  /* This stub is for a local symbol.  This stub will only be
-             needed if there is some relocation in this BFD, other
-             than a 16 bit function call, which refers to this symbol.  */
+	     needed if there is some relocation in this BFD, other
+	     than a 16 bit function call, which refers to this symbol.  */
 	  for (o = abfd->sections; o != NULL; o = o->next)
 	    {
 	      Elf_Internal_Rela *sec_relocs;
@@ -8167,16 +8180,16 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
 	  if (o == NULL)
 	    {
 	      /* There is no non-call reloc for this stub, so we do
-                 not need it.  Since this function is called before
-                 the linker maps input sections to output sections, we
-                 can easily discard it by setting the SEC_EXCLUDE
-                 flag.  */
+		 not need it.  Since this function is called before
+		 the linker maps input sections to output sections, we
+		 can easily discard it by setting the SEC_EXCLUDE
+		 flag.  */
 	      sec->flags |= SEC_EXCLUDE;
 	      return TRUE;
 	    }
 
 	  /* Record this stub in an array of local symbol stubs for
-             this BFD.  */
+	     this BFD.  */
 	  if (mips_elf_tdata (abfd)->local_stubs == NULL)
 	    {
 	      unsigned long symcount;
@@ -8198,9 +8211,9 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
 	  mips_elf_tdata (abfd)->local_stubs[r_symndx] = sec;
 
 	  /* We don't need to set mips16_stubs_seen in this case.
-             That flag is used to see whether we need to look through
-             the global symbol table for stubs.  We don't need to set
-             it here, because we just have a local stub.  */
+	     That flag is used to see whether we need to look through
+	     the global symbol table for stubs.  We don't need to set
+	     it here, because we just have a local stub.  */
 	}
       else
 	{
@@ -8238,7 +8251,7 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
       asection **loc;
 
       /* Look at the relocation information to figure out which symbol
-         this is for.  */
+	 this is for.  */
 
       r_symndx = mips16_stub_symndx (bed, sec, relocs, rel_end);
       if (r_symndx == 0)
@@ -8258,8 +8271,8 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
 	  asection *o;
 
 	  /* This stub is for a local symbol.  This stub will only be
-             needed if there is some relocation (R_MIPS16_26) in this BFD
-             that refers to this symbol.  */
+	     needed if there is some relocation (R_MIPS16_26) in this BFD
+	     that refers to this symbol.  */
 	  for (o = abfd->sections; o != NULL; o = o->next)
 	    {
 	      Elf_Internal_Rela *sec_relocs;
@@ -8293,16 +8306,16 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
 	  if (o == NULL)
 	    {
 	      /* There is no non-call reloc for this stub, so we do
-                 not need it.  Since this function is called before
-                 the linker maps input sections to output sections, we
-                 can easily discard it by setting the SEC_EXCLUDE
-                 flag.  */
+		 not need it.  Since this function is called before
+		 the linker maps input sections to output sections, we
+		 can easily discard it by setting the SEC_EXCLUDE
+		 flag.  */
 	      sec->flags |= SEC_EXCLUDE;
 	      return TRUE;
 	    }
 
 	  /* Record this stub in an array of local symbol call_stubs for
-             this BFD.  */
+	     this BFD.  */
 	  if (mips_elf_tdata (abfd)->local_call_stubs == NULL)
 	    {
 	      unsigned long symcount;
@@ -8324,9 +8337,9 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
 	  mips_elf_tdata (abfd)->local_call_stubs[r_symndx] = sec;
 
 	  /* We don't need to set mips16_stubs_seen in this case.
-             That flag is used to see whether we need to look through
-             the global symbol table for stubs.  We don't need to set
-             it here, because we just have a local stub.  */
+	     That flag is used to see whether we need to look through
+	     the global symbol table for stubs.  We don't need to set
+	     it here, because we just have a local stub.  */
 	}
       else
 	{
@@ -8390,10 +8403,6 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
 	      while (h->root.type == bfd_link_hash_indirect
 		     || h->root.type == bfd_link_hash_warning)
 		h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	      /* PR15323, ref flags aren't set for references in the
-		 same object.  */
-	      h->root.non_ir_ref = 1;
 	    }
 	}
 
@@ -8453,8 +8462,8 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B: GOT reloc at 0x%lx not expected in executables"),
-		 abfd, (unsigned long) rel->r_offset);
+		(_("%B: GOT reloc at %#Lx not expected in executables"),
+		 abfd, rel->r_offset);
 	      bfd_set_error (bfd_error_bad_value);
 	      return FALSE;
 	    }
@@ -8591,8 +8600,8 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B: CALL16 reloc at 0x%lx not against global symbol"),
-		 abfd, (unsigned long) rel->r_offset);
+		(_("%B: CALL16 reloc at %#Lx not against global symbol"),
+		 abfd, rel->r_offset);
 	      bfd_set_error (bfd_error_bad_value);
 	      return FALSE;
 	    }
@@ -8801,12 +8810,12 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
 	}
 
       /* Record the need for a PLT entry.  At this point we don't know
-         yet if we are going to create a PLT in the first place, but
-         we only record whether the relocation requires a standard MIPS
-         or a compressed code entry anyway.  If we don't make a PLT after
-         all, then we'll just ignore these arrangements.  Likewise if
-         a PLT entry is not created because the symbol is satisfied
-         locally.  */
+	 yet if we are going to create a PLT in the first place, but
+	 we only record whether the relocation requires a standard MIPS
+	 or a compressed code entry anyway.  If we don't make a PLT after
+	 all, then we'll just ignore these arrangements.  Likewise if
+	 a PLT entry is not created because the symbol is satisfied
+	 locally.  */
       if (h != NULL
 	  && (branch_reloc_p (r_type)
 	      || mips16_branch_reloc_p (r_type)
@@ -8933,7 +8942,8 @@ allocate_dynrelocs (struct elf_link_hash
 	{
 	  /* Do not copy relocations for undefined weak symbols with
 	     non-default visibility.  */
-	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
+	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+	      || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	    do_copy = FALSE;
 
 	  /* Make sure undefined weak symbols are output as a dynamic
@@ -8998,7 +9008,7 @@ _bfd_mips_elf_adjust_dynamic_symbol (str
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
 	      && (h->needs_plt
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -9050,8 +9060,8 @@ _bfd_mips_elf_adjust_dynamic_symbol (str
       bfd_boolean newabi_p = NEWABI_P (info->output_bfd);
 
       /* If this is the first symbol to need a PLT entry, then make some
-         basic setup.  Also work out PLT entry sizes.  We'll need them
-         for PLT offset calculations.  */
+	 basic setup.  Also work out PLT entry sizes.  We'll need them
+	 for PLT offset calculations.  */
       if (htab->plt_mips_offset + htab->plt_comp_offset == 0)
 	{
 	  BFD_ASSERT (htab->root.sgotplt->size == 0);
@@ -9122,13 +9132,13 @@ _bfd_mips_elf_adjust_dynamic_symbol (str
 	return FALSE;
 
       /* There are no defined MIPS16 or microMIPS PLT entries for VxWorks,
-         n32 or n64, so always use a standard entry there.
+	 n32 or n64, so always use a standard entry there.
 
-         If the symbol has a MIPS16 call stub and gets a PLT entry, then
-         all MIPS16 calls will go via that stub, and there is no benefit
-         to having a MIPS16 entry.  And in the case of call_stub a
-         standard entry actually has to be used as the stub ends with a J
-         instruction.  */
+	 If the symbol has a MIPS16 call stub and gets a PLT entry, then
+	 all MIPS16 calls will go via that stub, and there is no benefit
+	 to having a MIPS16 entry.  And in the case of call_stub a
+	 standard entry actually has to be used as the stub ends with a J
+	 instruction.  */
       if (newabi_p
 	  || htab->is_vxworks
 	  || hmips->call_stub
@@ -9139,11 +9149,11 @@ _bfd_mips_elf_adjust_dynamic_symbol (str
 	}
 
       /* Otherwise, if there are no direct calls to the function, we
-         have a free choice of whether to use standard or compressed
-         entries.  Prefer microMIPS entries if the object is known to
-         contain microMIPS code, so that it becomes possible to create
-         pure microMIPS binaries.  Prefer standard entries otherwise,
-         because MIPS16 ones are no smaller and are usually slower.  */
+	 have a free choice of whether to use standard or compressed
+	 entries.  Prefer microMIPS entries if the object is known to
+	 contain microMIPS code, so that it becomes possible to create
+	 pure microMIPS binaries.  Prefer standard entries otherwise,
+	 because MIPS16 ones are no smaller and are usually slower.  */
       if (!h->plt.plist->need_mips && !h->plt.plist->need_comp)
 	{
 	  if (micromips_p)
@@ -9190,12 +9200,12 @@ _bfd_mips_elf_adjust_dynamic_symbol (str
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -9582,8 +9592,8 @@ mips_elf_set_plt_sym_value (struct mips_
 	}
       val += isa_bit;
       /* For VxWorks, point at the PLT load stub rather than the lazy
-         resolution stub; this stub will become the canonical function
-         address.  */
+	 resolution stub; this stub will become the canonical function
+	 address.  */
       if (htab->is_vxworks)
 	val += 8;
 
@@ -9625,17 +9635,17 @@ _bfd_mips_elf_size_dynamic_sections (bfd
 	}
 
       /* Figure out the size of the PLT header if we know that we
-         are using it.  For the sake of cache alignment always use
-         a standard header whenever any standard entries are present
-         even if microMIPS entries are present as well.  This also
-         lets the microMIPS header rely on the value of $v0 only set
-         by microMIPS entries, for a small size reduction.
+	 are using it.  For the sake of cache alignment always use
+	 a standard header whenever any standard entries are present
+	 even if microMIPS entries are present as well.  This also
+	 lets the microMIPS header rely on the value of $v0 only set
+	 by microMIPS entries, for a small size reduction.
 
-         Set symbol table entry values for symbols that use the
-         address of their PLT entry now that we can calculate it.
+	 Set symbol table entry values for symbols that use the
+	 address of their PLT entry now that we can calculate it.
 
-         Also create the _PROCEDURE_LINKAGE_TABLE_ symbol if we
-         haven't already in _bfd_elf_create_dynamic_sections.  */
+	 Also create the _PROCEDURE_LINKAGE_TABLE_ symbol if we
+	 haven't already in _bfd_elf_create_dynamic_sections.  */
       if (htab->root.splt && htab->plt_mips_offset + htab->plt_comp_offset != 0)
 	{
 	  bfd_boolean micromips_p = (MICROMIPS_P (output_bfd)
@@ -9723,11 +9733,11 @@ _bfd_mips_elf_size_dynamic_sections (bfd
 	      asection *target;
 
 	      /* If this relocation section applies to a read only
-                 section, then we probably need a DT_TEXTREL entry.
-                 If the relocation section is .rel(a).dyn, we always
-                 assert a DT_TEXTREL entry rather than testing whether
-                 there exists a relocation to a read only section or
-                 not.  */
+		 section, then we probably need a DT_TEXTREL entry.
+		 If the relocation section is .rel(a).dyn, we always
+		 assert a DT_TEXTREL entry rather than testing whether
+		 there exists a relocation to a read only section or
+		 not.  */
 	      outname = bfd_get_section_name (output_bfd,
 					      s->output_section);
 	      target = bfd_get_section_by_name (output_bfd, outname + 4);
@@ -10031,10 +10041,8 @@ _bfd_mips_elf_relocate_section (bfd *out
   const Elf_Internal_Rela *relend;
   bfd_vma addend = 0;
   bfd_boolean use_saved_addend_p = FALSE;
-  const struct elf_backend_data *bed;
 
-  bed = get_elf_backend_data (output_bfd);
-  relend = relocs + input_section->reloc_count * bed->s->int_rels_per_ext_rel;
+  relend = relocs + input_section->reloc_count;
   for (rel = relocs; rel < relend; ++rel)
     {
       const char *name;
@@ -10042,7 +10050,7 @@ _bfd_mips_elf_relocate_section (bfd *out
       reloc_howto_type *howto;
       bfd_boolean cross_mode_jump_p = FALSE;
       /* TRUE if the relocation is a RELA relocation, rather than a
-         REL relocation.  */
+	 REL relocation.  */
       bfd_boolean rela_relocation_p = TRUE;
       unsigned int r_type = ELF_R_TYPE (output_bfd, rel->r_info);
       const char *msg;
@@ -10136,7 +10144,7 @@ _bfd_mips_elf_relocate_section (bfd *out
 		      _bfd_error_handler
 			/* xgettext:c-format */
 			(_("%B: Can't find matching LO16 reloc against `%s'"
-			   " for %s at 0x%lx in section `%A'"),
+			   " for %s at %#Lx in section `%A'"),
 			 input_bfd, name,
 			 howto->name, rel->r_offset, input_section);
 		    }
@@ -10584,7 +10592,7 @@ _bfd_mips_elf_finish_dynamic_symbol (bfd
 	bfd_put_32 (output_bfd, header_address, loc);
 
       /* Now handle the PLT itself.  First the standard entry (the order
-         does not matter, we just have to pick one).  */
+	 does not matter, we just have to pick one).  */
       if (h->plt.plist->mips_offset != MINUS_ONE)
 	{
 	  const bfd_vma *plt_entry;
@@ -10679,11 +10687,11 @@ _bfd_mips_elf_finish_dynamic_symbol (bfd
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B: `%A' offset of %ld from `%A' "
+		    (_("%B: `%A' offset of %Ld from `%A' "
 		       "beyond the range of ADDIUPC"),
 		     output_bfd,
 		     htab->root.sgotplt->output_section,
-		     (long) gotpc_offset,
+		     gotpc_offset,
 		     htab->root.splt->output_section);
 		  bfd_set_error (bfd_error_no_error);
 		  return FALSE;
@@ -11247,10 +11255,10 @@ mips_finish_exec_plt (bfd *output_bfd, s
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B: `%A' offset of %ld from `%A' beyond the range of ADDIUPC"),
+	    (_("%B: `%A' offset of %Ld from `%A' beyond the range of ADDIUPC"),
 	     output_bfd,
 	     htab->root.sgotplt->output_section,
-	     (long) gotpc_offset,
+	     gotpc_offset,
 	     htab->root.splt->output_section);
 	  bfd_set_error (bfd_error_no_error);
 	  return FALSE;
@@ -11865,6 +11873,10 @@ mips_set_isa_flags (bfd *abfd)
       val = E_MIPS_ARCH_2;
       break;
 
+    case bfd_mach_mips4010:
+      val = E_MIPS_ARCH_2 | E_MIPS_MACH_4010;
+      break;
+
     case bfd_mach_mips4000:
     case bfd_mach_mips4300:
     case bfd_mach_mips4400:
@@ -11872,10 +11884,6 @@ mips_set_isa_flags (bfd *abfd)
       val = E_MIPS_ARCH_3;
       break;
 
-    case bfd_mach_mips4010:
-      val = E_MIPS_ARCH_3 | E_MIPS_MACH_4010;
-      break;
-
     case bfd_mach_mips4100:
       val = E_MIPS_ARCH_3 | E_MIPS_MACH_4100;
       break;
@@ -11969,6 +11977,10 @@ mips_set_isa_flags (bfd *abfd)
       val = E_MIPS_ARCH_32R2;
       break;
 
+    case bfd_mach_mips_interaptiv_mr2:
+      val = E_MIPS_ARCH_32R2 | E_MIPS_MACH_IAMR2;
+      break;
+
     case bfd_mach_mipsisa64r2:
     case bfd_mach_mipsisa64r3:
     case bfd_mach_mipsisa64r5:
@@ -12423,66 +12435,6 @@ _bfd_mips_elf_gc_mark_hook (asection *se
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-/* Update the got entry reference counts for the section being removed.  */
-
-bfd_boolean
-_bfd_mips_elf_gc_sweep_hook (bfd *abfd ATTRIBUTE_UNUSED,
-			     struct bfd_link_info *info ATTRIBUTE_UNUSED,
-			     asection *sec ATTRIBUTE_UNUSED,
-			     const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED)
-{
-#if 0
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-  unsigned long r_symndx;
-  struct elf_link_hash_entry *h;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    switch (ELF_R_TYPE (abfd, rel->r_info))
-      {
-      case R_MIPS16_GOT16:
-      case R_MIPS16_CALL16:
-      case R_MIPS_GOT16:
-      case R_MIPS_CALL16:
-      case R_MIPS_CALL_HI16:
-      case R_MIPS_CALL_LO16:
-      case R_MIPS_GOT_HI16:
-      case R_MIPS_GOT_LO16:
-      case R_MIPS_GOT_DISP:
-      case R_MIPS_GOT_PAGE:
-      case R_MIPS_GOT_OFST:
-      case R_MICROMIPS_GOT16:
-      case R_MICROMIPS_CALL16:
-      case R_MICROMIPS_CALL_HI16:
-      case R_MICROMIPS_CALL_LO16:
-      case R_MICROMIPS_GOT_HI16:
-      case R_MICROMIPS_GOT_LO16:
-      case R_MICROMIPS_GOT_DISP:
-      case R_MICROMIPS_GOT_PAGE:
-      case R_MICROMIPS_GOT_OFST:
-	/* ??? It would seem that the existing MIPS code does no sort
-	   of reference counting or whatnot on its GOT and PLT entries,
-	   so it is not possible to garbage collect them at this time.  */
-	break;
-
-      default:
-	break;
-      }
-#endif
-
-  return TRUE;
-}
-
 /* Prevent .MIPS.abiflags from being discarded with --gc-sections.  */
 
 bfd_boolean
@@ -12644,7 +12596,7 @@ _bfd_mips_elf_ignore_discarded_relocs (a
 bfd_boolean
 _bfd_mips_elf_write_section (bfd *output_bfd,
 			     struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
-                             asection *sec, bfd_byte *contents)
+			     asection *sec, bfd_byte *contents)
 {
   bfd_byte *to, *from, *end;
   int i;
@@ -12769,11 +12721,11 @@ _bfd_mips_elf_find_nearest_line (bfd *ab
 	  mips_elf_tdata (abfd)->find_line_info = fi;
 
 	  /* Note that we don't bother to ever free this information.
-             find_nearest_line is either called all the time, as in
-             objdump -l, so the information should be saved, or it is
-             rarely called, as in ld error messages, so the memory
-             wasted is unimportant.  Still, it would probably be a
-             good idea for free_cached_info to throw it away.  */
+	     find_nearest_line is either called all the time, as in
+	     objdump -l, so the information should be saved, or it is
+	     rarely called, as in ld error messages, so the memory
+	     wasted is unimportant.  Still, it would probably be a
+	     good idea for free_cached_info to throw it away.  */
 	}
 
       if (_bfd_ecoff_locate_line (abfd, section, offset, &fi->d, swap,
@@ -13478,12 +13430,12 @@ _bfd_mips_elf_relax_section (bfd *abfd, 
       int fndopc;
 
       /* The number of bytes to delete for relaxation and from where
-         to delete these bytes starting at irel->r_offset.  */
+	 to delete these bytes starting at irel->r_offset.  */
       int delcnt = 0;
       int deloff = 0;
 
       /* If this isn't something that can be relaxed, then ignore
-         this reloc.  */
+	 this reloc.  */
       if (r_type != R_MICROMIPS_HI16
 	  && r_type != R_MICROMIPS_PC16_S1
 	  && r_type != R_MICROMIPS_26_S1)
@@ -13560,12 +13512,12 @@ _bfd_mips_elf_relax_section (bfd *abfd, 
 
 
       /* For simplicity of coding, we are going to modify the
-         section contents, the section relocs, and the BFD symbol
-         table.  We must tell the rest of the code not to free up this
-         information.  It would be possible to instead create a table
-         of changes which have to be made, as is done in coff-mips.c;
-         that would be more work, but would require less memory when
-         the linker is run.  */
+	 section contents, the section relocs, and the BFD symbol
+	 table.  We must tell the rest of the code not to free up this
+	 information.  It would be possible to instead create a table
+	 of changes which have to be made, as is done in coff-mips.c;
+	 that would be more work, but would require less memory when
+	 the linker is run.  */
 
       /* Only 32-bit instructions relaxed.  */
       if (irel->r_offset + 4 > sec->size)
@@ -13574,20 +13526,20 @@ _bfd_mips_elf_relax_section (bfd *abfd, 
       opcode = bfd_get_micromips_32 (abfd, ptr);
 
       /* This is the pc-relative distance from the instruction the
-         relocation is applied to, to the symbol referred.  */
+	 relocation is applied to, to the symbol referred.  */
       pcrval = (symval
 		- (sec->output_section->vma + sec->output_offset)
 		- irel->r_offset);
 
       /* R_MICROMIPS_HI16 / LUI relaxation to nil, performing relaxation
-         of corresponding R_MICROMIPS_LO16 to R_MICROMIPS_HI0_LO16 or
-         R_MICROMIPS_PC23_S2.  The R_MICROMIPS_PC23_S2 condition is
+	 of corresponding R_MICROMIPS_LO16 to R_MICROMIPS_HI0_LO16 or
+	 R_MICROMIPS_PC23_S2.  The R_MICROMIPS_PC23_S2 condition is
 
-           (symval % 4 == 0 && IS_BITSIZE (pcrval, 25))
+	   (symval % 4 == 0 && IS_BITSIZE (pcrval, 25))
 
-         where pcrval has first to be adjusted to apply against the LO16
-         location (we make the adjustment later on, when we have figured
-         out the offset).  */
+	 where pcrval has first to be adjusted to apply against the LO16
+	 location (we make the adjustment later on, when we have figured
+	 out the offset).  */
       if (r_type == R_MICROMIPS_HI16 && MATCH (opcode, lui_insn))
 	{
 	  bfd_boolean bzc = FALSE;
@@ -13671,8 +13623,8 @@ _bfd_mips_elf_relax_section (bfd *abfd, 
 	      irel[1].r_info = ELF32_R_INFO (r_symndx, R_MICROMIPS_HI0_LO16);
 
 	      /* Instructions using R_MICROMIPS_LO16 have the base or
-	         source register in bits 20:16.  This register becomes $0
-	         (zero) as the result of the R_MICROMIPS_HI16 being 0.  */
+		 source register in bits 20:16.  This register becomes $0
+		 (zero) as the result of the R_MICROMIPS_HI16 being 0.  */
 	      nextopc &= ~0x001f0000;
 	      bfd_put_16 (abfd, (nextopc >> 16) & 0xffff,
 			  contents + irel[1].r_offset);
@@ -13711,9 +13663,9 @@ _bfd_mips_elf_relax_section (bfd *abfd, 
 	}
 
       /* Compact branch relaxation -- due to the multitude of macros
-         employed by the compiler/assembler, compact branches are not
-         always generated.  Obviously, this can/will be fixed elsewhere,
-         but there is no drawback in double checking it here.  */
+	 employed by the compiler/assembler, compact branches are not
+	 always generated.  Obviously, this can/will be fixed elsewhere,
+	 but there is no drawback in double checking it here.  */
       else if (r_type == R_MICROMIPS_PC16_S1
 	       && irel->r_offset + 5 < sec->size
 	       && ((fndopc = find_match (opcode, bz_rs_insns_32)) >= 0
@@ -13743,7 +13695,7 @@ _bfd_mips_elf_relax_section (bfd *abfd, 
 	}
 
       /* R_MICROMIPS_PC16_S1 relaxation to R_MICROMIPS_PC10_S1.  We need
-         to check the distance from the next instruction, so subtract 2.  */
+	 to check the distance from the next instruction, so subtract 2.  */
       else if (!insn32
 	       && r_type == R_MICROMIPS_PC16_S1
 	       && IS_BITSIZE (pcrval - 2, 11)
@@ -13764,7 +13716,7 @@ _bfd_mips_elf_relax_section (bfd *abfd, 
 	}
 
       /* R_MICROMIPS_PC16_S1 relaxation to R_MICROMIPS_PC7_S1.  We need
-         to check the distance from the next instruction, so subtract 2.  */
+	 to check the distance from the next instruction, so subtract 2.  */
       else if (!insn32
 	       && r_type == R_MICROMIPS_PC16_S1
 	       && IS_BITSIZE (pcrval - 2, 8)
@@ -13828,7 +13780,7 @@ _bfd_mips_elf_relax_section (bfd *abfd, 
 	  if (relaxed)
 	    {
 	      /* JAL with 32-bit delay slot that is changed to a JALS
-	         with 16-bit delay slot.  */
+		 with 16-bit delay slot.  */
 	      bfd_put_micromips_32 (abfd, jal_insn_32_bd16.match, ptr);
 
 	      /* Delete 2 bytes from irel->r_offset + 6.  */
@@ -14026,15 +13978,21 @@ static const struct mips_mach_extension 
   { bfd_mach_mips4400, bfd_mach_mips4000 },
   { bfd_mach_mips4300, bfd_mach_mips4000 },
   { bfd_mach_mips4100, bfd_mach_mips4000 },
-  { bfd_mach_mips4010, bfd_mach_mips4000 },
   { bfd_mach_mips5900, bfd_mach_mips4000 },
 
+  /* MIPS32r3 extensions.  */
+  { bfd_mach_mips_interaptiv_mr2, bfd_mach_mipsisa32r3 },
+
+  /* MIPS32r2 extensions.  */
+  { bfd_mach_mipsisa32r3, bfd_mach_mipsisa32r2 },
+
   /* MIPS32 extensions.  */
   { bfd_mach_mipsisa32r2, bfd_mach_mipsisa32 },
 
   /* MIPS II extensions.  */
   { bfd_mach_mips4000, bfd_mach_mips6000 },
   { bfd_mach_mipsisa32, bfd_mach_mips6000 },
+  { bfd_mach_mips4010, bfd_mach_mips6000 },
 
   /* MIPS I extensions.  */
   { bfd_mach_mips6000, bfd_mach_mips3000 },
@@ -14077,25 +14035,25 @@ bfd_mips_isa_ext_mach (unsigned int isa_
 {
   switch (isa_ext)
     {
-    case AFL_EXT_3900:        return bfd_mach_mips3900;
-    case AFL_EXT_4010:        return bfd_mach_mips4010;
-    case AFL_EXT_4100:        return bfd_mach_mips4100;
-    case AFL_EXT_4111:        return bfd_mach_mips4111;
-    case AFL_EXT_4120:        return bfd_mach_mips4120;
-    case AFL_EXT_4650:        return bfd_mach_mips4650;
-    case AFL_EXT_5400:        return bfd_mach_mips5400;
-    case AFL_EXT_5500:        return bfd_mach_mips5500;
-    case AFL_EXT_5900:        return bfd_mach_mips5900;
-    case AFL_EXT_10000:       return bfd_mach_mips10000;
+    case AFL_EXT_3900:	      return bfd_mach_mips3900;
+    case AFL_EXT_4010:	      return bfd_mach_mips4010;
+    case AFL_EXT_4100:	      return bfd_mach_mips4100;
+    case AFL_EXT_4111:	      return bfd_mach_mips4111;
+    case AFL_EXT_4120:	      return bfd_mach_mips4120;
+    case AFL_EXT_4650:	      return bfd_mach_mips4650;
+    case AFL_EXT_5400:	      return bfd_mach_mips5400;
+    case AFL_EXT_5500:	      return bfd_mach_mips5500;
+    case AFL_EXT_5900:	      return bfd_mach_mips5900;
+    case AFL_EXT_10000:	      return bfd_mach_mips10000;
     case AFL_EXT_LOONGSON_2E: return bfd_mach_mips_loongson_2e;
     case AFL_EXT_LOONGSON_2F: return bfd_mach_mips_loongson_2f;
     case AFL_EXT_LOONGSON_3A: return bfd_mach_mips_loongson_3a;
-    case AFL_EXT_SB1:         return bfd_mach_mips_sb1;
+    case AFL_EXT_SB1:	      return bfd_mach_mips_sb1;
     case AFL_EXT_OCTEON:      return bfd_mach_mips_octeon;
     case AFL_EXT_OCTEONP:     return bfd_mach_mips_octeonp;
     case AFL_EXT_OCTEON2:     return bfd_mach_mips_octeon2;
-    case AFL_EXT_XLR:         return bfd_mach_mips_xlr;
-    default:                  return bfd_mach_mips3000;
+    case AFL_EXT_XLR:	      return bfd_mach_mips_xlr;
+    default:		      return bfd_mach_mips3000;
     }
 }
 
@@ -14106,26 +14064,28 @@ bfd_mips_isa_ext (bfd *abfd)
 {
   switch (bfd_get_mach (abfd))
     {
-    case bfd_mach_mips3900:         return AFL_EXT_3900;
-    case bfd_mach_mips4010:         return AFL_EXT_4010;
-    case bfd_mach_mips4100:         return AFL_EXT_4100;
-    case bfd_mach_mips4111:         return AFL_EXT_4111;
-    case bfd_mach_mips4120:         return AFL_EXT_4120;
-    case bfd_mach_mips4650:         return AFL_EXT_4650;
-    case bfd_mach_mips5400:         return AFL_EXT_5400;
-    case bfd_mach_mips5500:         return AFL_EXT_5500;
-    case bfd_mach_mips5900:         return AFL_EXT_5900;
-    case bfd_mach_mips10000:        return AFL_EXT_10000;
+    case bfd_mach_mips3900:	    return AFL_EXT_3900;
+    case bfd_mach_mips4010:	    return AFL_EXT_4010;
+    case bfd_mach_mips4100:	    return AFL_EXT_4100;
+    case bfd_mach_mips4111:	    return AFL_EXT_4111;
+    case bfd_mach_mips4120:	    return AFL_EXT_4120;
+    case bfd_mach_mips4650:	    return AFL_EXT_4650;
+    case bfd_mach_mips5400:	    return AFL_EXT_5400;
+    case bfd_mach_mips5500:	    return AFL_EXT_5500;
+    case bfd_mach_mips5900:	    return AFL_EXT_5900;
+    case bfd_mach_mips10000:	    return AFL_EXT_10000;
     case bfd_mach_mips_loongson_2e: return AFL_EXT_LOONGSON_2E;
     case bfd_mach_mips_loongson_2f: return AFL_EXT_LOONGSON_2F;
     case bfd_mach_mips_loongson_3a: return AFL_EXT_LOONGSON_3A;
-    case bfd_mach_mips_sb1:         return AFL_EXT_SB1;
-    case bfd_mach_mips_octeon:      return AFL_EXT_OCTEON;
-    case bfd_mach_mips_octeonp:     return AFL_EXT_OCTEONP;
-    case bfd_mach_mips_octeon3:     return AFL_EXT_OCTEON3;
-    case bfd_mach_mips_octeon2:     return AFL_EXT_OCTEON2;
-    case bfd_mach_mips_xlr:         return AFL_EXT_XLR;
-    default:                        return 0;
+    case bfd_mach_mips_sb1:	    return AFL_EXT_SB1;
+    case bfd_mach_mips_octeon:	    return AFL_EXT_OCTEON;
+    case bfd_mach_mips_octeonp:	    return AFL_EXT_OCTEONP;
+    case bfd_mach_mips_octeon3:	    return AFL_EXT_OCTEON3;
+    case bfd_mach_mips_octeon2:	    return AFL_EXT_OCTEON2;
+    case bfd_mach_mips_xlr:	    return AFL_EXT_XLR;
+    case bfd_mach_mips_interaptiv_mr2:
+      return AFL_EXT_INTERAPTIV_MR2;
+    default:			    return 0;
     }
 }
 
@@ -14271,11 +14231,11 @@ _bfd_mips_elf_final_link (bfd *abfd, str
     scRData, scSData, scSBss, scBss
   };
 
-  /* Sort the dynamic symbols so that those with GOT entries come after
-     those without.  */
   htab = mips_elf_hash_table (info);
   BFD_ASSERT (htab != NULL);
 
+  /* Sort the dynamic symbols so that those with GOT entries come after
+     those without.  */
   if (!mips_elf_sort_hash_table (abfd, info))
     return FALSE;
 
@@ -15111,10 +15071,9 @@ mips_elf_merge_obj_e_flags (bfd *ibfd, s
     {
       /* xgettext:c-format */
       _bfd_error_handler
-	(_("%B: uses different e_flags (0x%lx) fields than previous modules "
-	   "(0x%lx)"),
-	 ibfd, (unsigned long) new_flags,
-	 (unsigned long) old_flags);
+	(_("%B: uses different e_flags (%#x) fields than previous modules "
+	   "(%#x)"),
+	 ibfd, new_flags, old_flags);
       ok = FALSE;
     }
 
@@ -15377,15 +15336,15 @@ _bfd_mips_elf_merge_private_bfd_data (bf
       Elf_Internal_ABIFlags_v0 abiflags;
 
       /* Set up the FP ABI attribute from the abiflags if it is not already
-         set.  */
+	 set.  */
       if (in_attr[Tag_GNU_MIPS_ABI_FP].i == Val_GNU_MIPS_ABI_FP_ANY)
-        in_attr[Tag_GNU_MIPS_ABI_FP].i = in_tdata->abiflags.fp_abi;
+	in_attr[Tag_GNU_MIPS_ABI_FP].i = in_tdata->abiflags.fp_abi;
 
       infer_mips_abiflags (ibfd, &abiflags);
       in_abiflags = in_tdata->abiflags;
 
       /* It is not possible to infer the correct ISA revision
-         for R3 or R5 so drop down to R2 for the checks.  */
+	 for R3 or R5 so drop down to R2 for the checks.  */
       if (in_abiflags.isa_rev == 3 || in_abiflags.isa_rev == 5)
 	in_abiflags.isa_rev = 2;
 
@@ -15414,7 +15373,7 @@ _bfd_mips_elf_merge_private_bfd_data (bf
 	_bfd_error_handler
 	  (_("%B: warning: Unexpected flag in the flags2 field of "
 	     ".MIPS.abiflags (0x%lx)"), ibfd,
-	   (unsigned long) in_abiflags.flags2);
+	   in_abiflags.flags2);
     }
   else
     {
@@ -15648,6 +15607,8 @@ print_mips_ases (FILE *file, unsigned in
     fputs ("\n\tMICROMIPS ASE", file);
   if (mask & AFL_ASE_XPA)
     fputs ("\n\tXPA ASE", file);
+  if (mask & AFL_ASE_MIPS16E2)
+    fputs ("\n\tMIPS16e2 ASE", file);
   if (mask == 0)
     fprintf (file, "\n\t%s", _("None"));
   else if ((mask & ~AFL_ASE_MASK) != 0)
@@ -15719,6 +15680,9 @@ print_mips_isa_ext (FILE *file, unsigned
     case AFL_EXT_LOONGSON_2F:
       fputs ("ST Microelectronics Loongson 2F", file);
       break;
+    case AFL_EXT_INTERAPTIV_MR2:
+      fputs ("Imagination interAptiv MR2", file);
+      break;
     default:
       fprintf (file, "%s (%d)", _("Unknown"), isa_ext);
       break;
@@ -15891,13 +15855,13 @@ _bfd_mips_elf_print_private_bfd_data (bf
 
 const struct bfd_elf_special_section _bfd_mips_elf_special_sections[] =
 {
-  { STRING_COMMA_LEN (".lit4"),   0, SHT_PROGBITS,   SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
-  { STRING_COMMA_LEN (".lit8"),   0, SHT_PROGBITS,   SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
+  { STRING_COMMA_LEN (".lit4"),	  0, SHT_PROGBITS,   SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
+  { STRING_COMMA_LEN (".lit8"),	  0, SHT_PROGBITS,   SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
   { STRING_COMMA_LEN (".mdebug"), 0, SHT_MIPS_DEBUG, 0 },
-  { STRING_COMMA_LEN (".sbss"),  -2, SHT_NOBITS,     SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
+  { STRING_COMMA_LEN (".sbss"),	 -2, SHT_NOBITS,     SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
   { STRING_COMMA_LEN (".sdata"), -2, SHT_PROGBITS,   SHF_ALLOC + SHF_WRITE + SHF_MIPS_GPREL },
   { STRING_COMMA_LEN (".ucode"),  0, SHT_MIPS_UCODE, 0 },
-  { NULL,                     0,  0, 0,              0 }
+  { NULL,		      0,  0, 0,		     0 }
 };
 
 /* Merge non visibility st_other attributes.  Ensure that the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-mips.h ./bfd/elfxx-mips.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-mips.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfxx-mips.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* MIPS ELF specific backend routines.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -29,7 +29,7 @@ extern bfd_boolean _bfd_mips_elf_new_sec
 extern void _bfd_mips_elf_symbol_processing
   (bfd *, asymbol *);
 extern unsigned int _bfd_mips_elf_eh_frame_address_size
-  (bfd *, asection *);
+  (bfd *, const asection *);
 extern bfd_boolean _bfd_mips_elf_name_local_section_symbols
   (bfd *);
 extern bfd_boolean _bfd_mips_elf_section_processing
@@ -78,8 +78,6 @@ extern bfd_boolean _bfd_mips_elf_modify_
 extern asection * _bfd_mips_elf_gc_mark_hook
   (asection *, struct bfd_link_info *, Elf_Internal_Rela *,
    struct elf_link_hash_entry *, Elf_Internal_Sym *);
-extern bfd_boolean _bfd_mips_elf_gc_sweep_hook
-  (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
 extern void _bfd_mips_elf_copy_indirect_symbol
   (struct bfd_link_info *, struct elf_link_hash_entry *,
    struct elf_link_hash_entry *);
@@ -194,3 +192,4 @@ literal_reloc_p (int r_type)
 #define elf_backend_post_process_headers _bfd_mips_post_process_headers
 #define elf_backend_compact_eh_encoding _bfd_mips_elf_compact_eh_encoding
 #define elf_backend_cant_unwind_opcode _bfd_mips_elf_cant_unwind_opcode
+#define elf_backend_always_renumber_dynsyms TRUE
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-riscv.c ./bfd/elfxx-riscv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-riscv.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfxx-riscv.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* RISC-V-specific support for ELF.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    Contributed by Andrew Waterman (andrew@sifive.com).
    Based on TILE-Gx and MIPS targets.
@@ -32,6 +32,13 @@
 
 #define MINUS_ONE ((bfd_vma)0 - 1)
 
+/* Special handler for ADD/SUB relocations that allows them to be filled out
+   both in the pre-linked and post-linked file.  This is necessary to make
+   pre-linked debug info work, as due to linker relaxations we need to emit
+   relocations for the debug info.  */
+static bfd_reloc_status_type riscv_elf_add_sub_reloc
+  (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
+
 /* The relocation table used for SHT_RELA sections.  */
 
 static reloc_howto_type howto_table[] =
@@ -106,8 +113,8 @@ static reloc_howto_type howto_table[] =
 	 bfd_elf_generic_reloc,		/* special_function */
 	 "R_RISCV_COPY",		/* name */
 	 FALSE,				/* partial_inplace */
-	 0,         			/* src_mask */
-	 0,		        	/* dst_mask */
+	 0,				/* src_mask */
+	 0,				/* dst_mask */
 	 FALSE),			/* pcrel_offset */
 
   HOWTO (R_RISCV_JUMP_SLOT,		/* type */
@@ -120,8 +127,8 @@ static reloc_howto_type howto_table[] =
 	 bfd_elf_generic_reloc,		/* special_function */
 	 "R_RISCV_JUMP_SLOT",		/* name */
 	 FALSE,				/* partial_inplace */
-	 0,         			/* src_mask */
-	 0,		        	/* dst_mask */
+	 0,				/* src_mask */
+	 0,				/* dst_mask */
 	 FALSE),			/* pcrel_offset */
 
   /* Dynamic TLS relocations.  */
@@ -132,7 +139,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc, 	/* special_function */
+	 bfd_elf_generic_reloc,		/* special_function */
 	 "R_RISCV_TLS_DTPMOD32",	/* name */
 	 FALSE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -146,7 +153,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc, 	/* special_function */
+	 bfd_elf_generic_reloc,		/* special_function */
 	 "R_RISCV_TLS_DTPMOD64",	/* name */
 	 FALSE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -160,7 +167,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc, 	/* special_function */
+	 bfd_elf_generic_reloc,		/* special_function */
 	 "R_RISCV_TLS_DTPREL32",	/* name */
 	 TRUE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -174,7 +181,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc, 	/* special_function */
+	 bfd_elf_generic_reloc,		/* special_function */
 	 "R_RISCV_TLS_DTPREL64",	/* name */
 	 TRUE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -188,7 +195,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc, 	/* special_function */
+	 bfd_elf_generic_reloc,		/* special_function */
 	 "R_RISCV_TLS_TPREL32",		/* name */
 	 FALSE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -202,7 +209,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc, 	/* special_function */
+	 bfd_elf_generic_reloc,		/* special_function */
 	 "R_RISCV_TLS_TPREL64",		/* name */
 	 FALSE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -480,7 +487,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc,		/* special_function */
+	 riscv_elf_add_sub_reloc,	/* special_function */
 	 "R_RISCV_ADD8",		/* name */
 	 FALSE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -495,7 +502,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc,		/* special_function */
+	 riscv_elf_add_sub_reloc,	/* special_function */
 	 "R_RISCV_ADD16",		/* name */
 	 FALSE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -510,7 +517,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc,		/* special_function */
+	 riscv_elf_add_sub_reloc,	/* special_function */
 	 "R_RISCV_ADD32",		/* name */
 	 FALSE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -525,7 +532,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc,		/* special_function */
+	 riscv_elf_add_sub_reloc,	/* special_function */
 	 "R_RISCV_ADD64",		/* name */
 	 FALSE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -540,7 +547,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc,		/* special_function */
+	 riscv_elf_add_sub_reloc,	/* special_function */
 	 "R_RISCV_SUB8",		/* name */
 	 FALSE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -555,7 +562,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc,		/* special_function */
+	 riscv_elf_add_sub_reloc,	/* special_function */
 	 "R_RISCV_SUB16",		/* name */
 	 FALSE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -570,7 +577,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc,		/* special_function */
+	 riscv_elf_add_sub_reloc,	/* special_function */
 	 "R_RISCV_SUB32",		/* name */
 	 FALSE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -585,7 +592,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc,		/* special_function */
+	 riscv_elf_add_sub_reloc,	/* special_function */
 	 "R_RISCV_SUB64",		/* name */
 	 FALSE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -767,7 +774,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,				/* pc_relative */
 	 0,				/* bitpos */
 	 complain_overflow_dont,	/* complain_on_overflow */
-	 bfd_elf_generic_reloc,		/* special_function */
+	 riscv_elf_add_sub_reloc,	/* special_function */
 	 "R_RISCV_SUB6",		/* name */
 	 FALSE,				/* partial_inplace */
 	 0,				/* src_mask */
@@ -833,6 +840,21 @@ static reloc_howto_type howto_table[] =
 	 0,				/* src_mask */
 	 MINUS_ONE,			/* dst_mask */
 	 FALSE),			/* pcrel_offset */
+
+  /* 32-bit PC relative.  */
+  HOWTO (R_RISCV_32_PCREL,		/* type */
+	 0,				/* rightshift */
+	 2,				/* size */
+	 32,				/* bitsize */
+	 TRUE,				/* pc_relative */
+	 0,				/* bitpos */
+	 complain_overflow_dont,	/* complain_on_overflow */
+	 bfd_elf_generic_reloc,		/* special_function */
+	 "R_RISCV_32_PCREL",		/* name */
+	 FALSE,				/* partial_inplace */
+	 0,				/* src_mask */
+	 MINUS_ONE,			/* dst_mask */
+	 FALSE),			/* pcrel_offset */
 };
 
 /* A mapping from BFD reloc types to RISC-V ELF reloc types.  */
@@ -894,6 +916,7 @@ static const struct elf_reloc_map riscv_
   { BFD_RELOC_RISCV_SET8, R_RISCV_SET8 },
   { BFD_RELOC_RISCV_SET16, R_RISCV_SET16 },
   { BFD_RELOC_RISCV_SET32, R_RISCV_SET32 },
+  { BFD_RELOC_RISCV_32_PCREL, R_RISCV_32_PCREL },
 };
 
 /* Given a BFD reloc type, return a howto structure.  */
@@ -935,3 +958,54 @@ riscv_elf_rtype_to_howto (unsigned int r
     }
   return &howto_table[r_type];
 }
+
+/* Special_function of RISCV_ADD and RISCV_SUB relocations.  */
+
+static bfd_reloc_status_type
+riscv_elf_add_sub_reloc (bfd *abfd,
+			 arelent *reloc_entry,
+			 asymbol *symbol,
+			 void *data,
+			 asection *input_section,
+			 bfd *output_bfd,
+			 char **error_message ATTRIBUTE_UNUSED)
+{
+  reloc_howto_type *howto = reloc_entry->howto;
+  bfd_vma relocation;
+
+  if (output_bfd != NULL
+      && (symbol->flags & BSF_SECTION_SYM) == 0
+      && (!reloc_entry->howto->partial_inplace || reloc_entry->addend == 0))
+    {
+      reloc_entry->address += input_section->output_offset;
+      return bfd_reloc_ok;
+    }
+
+  if (output_bfd != NULL)
+    return bfd_reloc_continue;
+
+  relocation = symbol->value + symbol->section->output_section->vma
+    + symbol->section->output_offset + reloc_entry->addend;
+  bfd_vma old_value = bfd_get (howto->bitsize, abfd,
+			       data + reloc_entry->address);
+
+  switch (howto->type)
+    {
+    case R_RISCV_ADD8:
+    case R_RISCV_ADD16:
+    case R_RISCV_ADD32:
+    case R_RISCV_ADD64:
+      relocation = old_value + relocation;
+      break;
+    case R_RISCV_SUB6:
+    case R_RISCV_SUB8:
+    case R_RISCV_SUB16:
+    case R_RISCV_SUB32:
+    case R_RISCV_SUB64:
+      relocation = old_value - relocation;
+      break;
+    }
+  bfd_put (howto->bitsize, abfd, relocation, data + reloc_entry->address);
+
+  return bfd_reloc_ok;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-riscv.h ./bfd/elfxx-riscv.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-riscv.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfxx-riscv.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* RISC-V ELF specific backend routines.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    Contributed by Andrew Waterman (andrew@sifive.com).
    Based on MIPS target.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-sparc.c ./bfd/elfxx-sparc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-sparc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfxx-sparc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* SPARC-specific support for ELF
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -209,62 +209,62 @@ sparc_elf_lox10_reloc (bfd *abfd, arelen
 
 static reloc_howto_type _bfd_sparc_elf_howto_table[] =
 {
-  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),
-  HOWTO(R_SPARC_DISP8,     0,0, 8,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP8",   FALSE,0,0x000000ff,TRUE),
-  HOWTO(R_SPARC_DISP16,    0,1,16,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP16",  FALSE,0,0x0000ffff,TRUE),
-  HOWTO(R_SPARC_DISP32,    0,2,32,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP32",  FALSE,0,0xffffffff,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),
+  HOWTO(R_SPARC_DISP8,	   0,0, 8,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP8",	FALSE,0,0x000000ff,TRUE),
+  HOWTO(R_SPARC_DISP16,	   0,1,16,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP16",	FALSE,0,0x0000ffff,TRUE),
+  HOWTO(R_SPARC_DISP32,	   0,2,32,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP32",	FALSE,0,0xffffffff,TRUE),
   HOWTO(R_SPARC_WDISP30,   2,2,30,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP30", FALSE,0,0x3fffffff,TRUE),
   HOWTO(R_SPARC_WDISP22,   2,2,22,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP22", FALSE,0,0x003fffff,TRUE),
-  HOWTO(R_SPARC_HI22,     10,2,22,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_HI22",    FALSE,0,0x003fffff,TRUE),
-  HOWTO(R_SPARC_22,        0,2,22,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_22",      FALSE,0,0x003fffff,TRUE),
-  HOWTO(R_SPARC_13,        0,2,13,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_13",      FALSE,0,0x00001fff,TRUE),
-  HOWTO(R_SPARC_LO10,      0,2,10,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_LO10",    FALSE,0,0x000003ff,TRUE),
-  HOWTO(R_SPARC_GOT10,     0,2,10,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GOT10",   FALSE,0,0x000003ff,TRUE),
-  HOWTO(R_SPARC_GOT13,     0,2,13,FALSE,0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_GOT13",   FALSE,0,0x00001fff,TRUE),
-  HOWTO(R_SPARC_GOT22,    10,2,22,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GOT22",   FALSE,0,0x003fffff,TRUE),
-  HOWTO(R_SPARC_PC10,      0,2,10,TRUE, 0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_PC10",    FALSE,0,0x000003ff,TRUE),
-  HOWTO(R_SPARC_PC22,     10,2,22,TRUE, 0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PC22",    FALSE,0,0x003fffff,TRUE),
-  HOWTO(R_SPARC_WPLT30,    2,2,30,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WPLT30",  FALSE,0,0x3fffffff,TRUE),
-  HOWTO(R_SPARC_COPY,      0,0,00,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_COPY",    FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_HI22,	  10,2,22,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_HI22",	FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_22,	   0,2,22,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_22",	FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_13,	   0,2,13,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_13",	FALSE,0,0x00001fff,TRUE),
+  HOWTO(R_SPARC_LO10,	   0,2,10,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_LO10",	FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_GOT10,	   0,2,10,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GOT10",	FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_GOT13,	   0,2,13,FALSE,0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_GOT13",	FALSE,0,0x00001fff,TRUE),
+  HOWTO(R_SPARC_GOT22,	  10,2,22,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GOT22",	FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_PC10,	   0,2,10,TRUE, 0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_PC10",	FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_PC22,	  10,2,22,TRUE, 0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PC22",	FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_WPLT30,	   2,2,30,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WPLT30",	FALSE,0,0x3fffffff,TRUE),
+  HOWTO(R_SPARC_COPY,	   0,0,00,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_COPY",	FALSE,0,0x00000000,TRUE),
   HOWTO(R_SPARC_GLOB_DAT,  0,0,00,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_GLOB_DAT",FALSE,0,0x00000000,TRUE),
   HOWTO(R_SPARC_JMP_SLOT,  0,0,00,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_JMP_SLOT",FALSE,0,0x00000000,TRUE),
   HOWTO(R_SPARC_RELATIVE,  0,0,00,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_RELATIVE",FALSE,0,0x00000000,TRUE),
-  HOWTO(R_SPARC_UA32,      0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA32",    FALSE,0,0xffffffff,TRUE),
-  HOWTO(R_SPARC_PLT32,     0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PLT32",   FALSE,0,0xffffffff,TRUE),
-  HOWTO(R_SPARC_HIPLT22,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_HIPLT22",  FALSE,0,0x00000000,TRUE),
-  HOWTO(R_SPARC_LOPLT10,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_LOPLT10",  FALSE,0,0x00000000,TRUE),
-  HOWTO(R_SPARC_PCPLT32,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_PCPLT32",  FALSE,0,0x00000000,TRUE),
-  HOWTO(R_SPARC_PCPLT22,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_PCPLT22",  FALSE,0,0x00000000,TRUE),
-  HOWTO(R_SPARC_PCPLT10,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_PCPLT10",  FALSE,0,0x00000000,TRUE),
-  HOWTO(R_SPARC_10,        0,2,10,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_10",      FALSE,0,0x000003ff,TRUE),
-  HOWTO(R_SPARC_11,        0,2,11,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_11",      FALSE,0,0x000007ff,TRUE),
-  HOWTO(R_SPARC_64,        0,4,64,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_64",      FALSE,0,MINUS_ONE, TRUE),
-  HOWTO(R_SPARC_OLO10,     0,2,13,FALSE,0,complain_overflow_signed,  sparc_elf_notsup_reloc, "R_SPARC_OLO10",   FALSE,0,0x00001fff,TRUE),
-  HOWTO(R_SPARC_HH22,     42,2,22,FALSE,0,complain_overflow_unsigned,bfd_elf_generic_reloc,  "R_SPARC_HH22",    FALSE,0,0x003fffff,TRUE),
-  HOWTO(R_SPARC_HM10,     32,2,10,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_HM10",    FALSE,0,0x000003ff,TRUE),
-  HOWTO(R_SPARC_LM22,     10,2,22,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_LM22",    FALSE,0,0x003fffff,TRUE),
-  HOWTO(R_SPARC_PC_HH22,  42,2,22,TRUE, 0,complain_overflow_unsigned,bfd_elf_generic_reloc,  "R_SPARC_PC_HH22",    FALSE,0,0x003fffff,TRUE),
-  HOWTO(R_SPARC_PC_HM10,  32,2,10,TRUE, 0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_PC_HM10",    FALSE,0,0x000003ff,TRUE),
-  HOWTO(R_SPARC_PC_LM22,  10,2,22,TRUE, 0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_PC_LM22",    FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_UA32,	   0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA32",	FALSE,0,0xffffffff,TRUE),
+  HOWTO(R_SPARC_PLT32,	   0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PLT32",	FALSE,0,0xffffffff,TRUE),
+  HOWTO(R_SPARC_HIPLT22,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_HIPLT22",	 FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_LOPLT10,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_LOPLT10",	 FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_PCPLT32,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_PCPLT32",	 FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_PCPLT22,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_PCPLT22",	 FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_PCPLT10,   0,0,00,FALSE,0,complain_overflow_dont,    sparc_elf_notsup_reloc, "R_SPARC_PCPLT10",	 FALSE,0,0x00000000,TRUE),
+  HOWTO(R_SPARC_10,	   0,2,10,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_10",	FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_11,	   0,2,11,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_11",	FALSE,0,0x000007ff,TRUE),
+  HOWTO(R_SPARC_64,	   0,4,64,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_64",	FALSE,0,MINUS_ONE, TRUE),
+  HOWTO(R_SPARC_OLO10,	   0,2,13,FALSE,0,complain_overflow_signed,  sparc_elf_notsup_reloc, "R_SPARC_OLO10",	FALSE,0,0x00001fff,TRUE),
+  HOWTO(R_SPARC_HH22,	  42,2,22,FALSE,0,complain_overflow_unsigned,bfd_elf_generic_reloc,  "R_SPARC_HH22",	FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_HM10,	  32,2,10,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_HM10",	FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_LM22,	  10,2,22,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_LM22",	FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_PC_HH22,  42,2,22,TRUE, 0,complain_overflow_unsigned,bfd_elf_generic_reloc,  "R_SPARC_PC_HH22",	   FALSE,0,0x003fffff,TRUE),
+  HOWTO(R_SPARC_PC_HM10,  32,2,10,TRUE, 0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_PC_HM10",	   FALSE,0,0x000003ff,TRUE),
+  HOWTO(R_SPARC_PC_LM22,  10,2,22,TRUE, 0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_PC_LM22",	   FALSE,0,0x003fffff,TRUE),
   HOWTO(R_SPARC_WDISP16,   2,2,16,TRUE, 0,complain_overflow_signed,  sparc_elf_wdisp16_reloc,"R_SPARC_WDISP16", FALSE,0,0x00000000,TRUE),
   HOWTO(R_SPARC_WDISP19,   2,2,19,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_WDISP19", FALSE,0,0x0007ffff,TRUE),
   HOWTO(R_SPARC_UNUSED_42, 0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_UNUSED_42",FALSE,0,0x00000000,TRUE),
-  HOWTO(R_SPARC_7,         0,2, 7,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_7",       FALSE,0,0x0000007f,TRUE),
-  HOWTO(R_SPARC_5,         0,2, 5,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_5",       FALSE,0,0x0000001f,TRUE),
-  HOWTO(R_SPARC_6,         0,2, 6,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_6",       FALSE,0,0x0000003f,TRUE),
-  HOWTO(R_SPARC_DISP64,    0,4,64,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP64",  FALSE,0,MINUS_ONE, TRUE),
-  HOWTO(R_SPARC_PLT64,     0,4,64,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PLT64",   FALSE,0,MINUS_ONE, TRUE),
-  HOWTO(R_SPARC_HIX22,     0,4, 0,FALSE,0,complain_overflow_bitfield,sparc_elf_hix22_reloc,  "R_SPARC_HIX22",   FALSE,0,MINUS_ONE, FALSE),
-  HOWTO(R_SPARC_LOX10,     0,4, 0,FALSE,0,complain_overflow_dont,    sparc_elf_lox10_reloc,  "R_SPARC_LOX10",   FALSE,0,MINUS_ONE, FALSE),
-  HOWTO(R_SPARC_H44,      22,2,22,FALSE,0,complain_overflow_unsigned,bfd_elf_generic_reloc,  "R_SPARC_H44",     FALSE,0,0x003fffff,FALSE),
-  HOWTO(R_SPARC_M44,      12,2,10,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_M44",     FALSE,0,0x000003ff,FALSE),
-  HOWTO(R_SPARC_L44,       0,2,13,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_L44",     FALSE,0,0x00000fff,FALSE),
+  HOWTO(R_SPARC_7,	   0,2, 7,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_7",	FALSE,0,0x0000007f,TRUE),
+  HOWTO(R_SPARC_5,	   0,2, 5,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_5",	FALSE,0,0x0000001f,TRUE),
+  HOWTO(R_SPARC_6,	   0,2, 6,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_6",	FALSE,0,0x0000003f,TRUE),
+  HOWTO(R_SPARC_DISP64,	   0,4,64,TRUE, 0,complain_overflow_signed,  bfd_elf_generic_reloc,  "R_SPARC_DISP64",	FALSE,0,MINUS_ONE, TRUE),
+  HOWTO(R_SPARC_PLT64,	   0,4,64,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_PLT64",	FALSE,0,MINUS_ONE, TRUE),
+  HOWTO(R_SPARC_HIX22,	   0,4, 0,FALSE,0,complain_overflow_bitfield,sparc_elf_hix22_reloc,  "R_SPARC_HIX22",	FALSE,0,MINUS_ONE, FALSE),
+  HOWTO(R_SPARC_LOX10,	   0,4, 0,FALSE,0,complain_overflow_dont,    sparc_elf_lox10_reloc,  "R_SPARC_LOX10",	FALSE,0,MINUS_ONE, FALSE),
+  HOWTO(R_SPARC_H44,	  22,2,22,FALSE,0,complain_overflow_unsigned,bfd_elf_generic_reloc,  "R_SPARC_H44",	FALSE,0,0x003fffff,FALSE),
+  HOWTO(R_SPARC_M44,	  12,2,10,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_M44",	FALSE,0,0x000003ff,FALSE),
+  HOWTO(R_SPARC_L44,	   0,2,13,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_L44",	FALSE,0,0x00000fff,FALSE),
   HOWTO(R_SPARC_REGISTER,  0,4, 0,FALSE,0,complain_overflow_bitfield,sparc_elf_notsup_reloc, "R_SPARC_REGISTER",FALSE,0,MINUS_ONE, FALSE),
-  HOWTO(R_SPARC_UA64,        0,4,64,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA64",      FALSE,0,MINUS_ONE, TRUE),
-  HOWTO(R_SPARC_UA16,        0,1,16,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA16",      FALSE,0,0x0000ffff,TRUE),
+  HOWTO(R_SPARC_UA64,	     0,4,64,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA64",	    FALSE,0,MINUS_ONE, TRUE),
+  HOWTO(R_SPARC_UA16,	     0,1,16,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,  "R_SPARC_UA16",	    FALSE,0,0x0000ffff,TRUE),
   HOWTO(R_SPARC_TLS_GD_HI22,10,2,22,FALSE,0,complain_overflow_dont,  bfd_elf_generic_reloc,  "R_SPARC_TLS_GD_HI22",FALSE,0,0x003fffff,TRUE),
   HOWTO(R_SPARC_TLS_GD_LO10,0,2,10,FALSE,0,complain_overflow_dont,   bfd_elf_generic_reloc,  "R_SPARC_TLS_GD_LO10",FALSE,0,0x000003ff,TRUE),
   HOWTO(R_SPARC_TLS_GD_ADD,0,0, 0,FALSE,0,complain_overflow_dont,    bfd_elf_generic_reloc,  "R_SPARC_TLS_GD_ADD",FALSE,0,0x00000000,TRUE),
@@ -292,7 +292,7 @@ static reloc_howto_type _bfd_sparc_elf_h
   HOWTO(R_SPARC_GOTDATA_HIX22,0,2,0,FALSE,0,complain_overflow_bitfield,sparc_elf_hix22_reloc,"R_SPARC_GOTDATA_HIX22",FALSE,0,0x003fffff, FALSE),
   HOWTO(R_SPARC_GOTDATA_LOX10,0,2,0,FALSE,0,complain_overflow_dont,  sparc_elf_lox10_reloc,  "R_SPARC_GOTDATA_LOX10",FALSE,0,0x000003ff, FALSE),
   HOWTO(R_SPARC_GOTDATA_OP_HIX22,0,2,0,FALSE,0,complain_overflow_bitfield,sparc_elf_hix22_reloc,"R_SPARC_GOTDATA_OP_HIX22",FALSE,0,0x003fffff, FALSE),
-  HOWTO(R_SPARC_GOTDATA_OP_LOX10,0,2,0,FALSE,0,complain_overflow_dont,  sparc_elf_lox10_reloc,  "R_SPARC_GOTDATA_OP_LOX10",FALSE,0,0x000003ff, FALSE),
+  HOWTO(R_SPARC_GOTDATA_OP_LOX10,0,2,0,FALSE,0,complain_overflow_dont,	sparc_elf_lox10_reloc,	"R_SPARC_GOTDATA_OP_LOX10",FALSE,0,0x000003ff, FALSE),
   HOWTO(R_SPARC_GOTDATA_OP,0,0, 0,FALSE,0,complain_overflow_dont,   bfd_elf_generic_reloc,  "R_SPARC_GOTDATA_OP",FALSE,0,0x00000000,TRUE),
   HOWTO(R_SPARC_H34,12,2,22,FALSE,0,complain_overflow_unsigned,bfd_elf_generic_reloc,"R_SPARC_H34",FALSE,0,0x003fffff,FALSE),
   HOWTO(R_SPARC_SIZE32,0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc,"R_SPARC_SIZE32",FALSE,0,0xffffffff,TRUE),
@@ -663,38 +663,18 @@ _bfd_sparc_elf_info_to_howto (bfd *abfd 
 
 #define SPARC_INSN_BYTES	4
 
-/* The SPARC linker needs to keep track of the number of relocs that it
-   decides to copy as dynamic relocs in check_relocs for each symbol.
-   This is so that it can later discard them if they are found to be
-   unnecessary.  We store the information in a field extending the
-   regular ELF linker hash table.  */
-
-struct _bfd_sparc_elf_dyn_relocs
-{
-  struct _bfd_sparc_elf_dyn_relocs *next;
-
-  /* The input section of the reloc.  */
-  asection *sec;
-
-  /* Total number of relocs copied for the input section.  */
-  bfd_size_type count;
-
-  /* Number of pc-relative relocs copied for the input section.  */
-  bfd_size_type pc_count;
-};
-
 /* Is an undefined weak symbol resolved to 0 ?
    Reference to an undefined weak symbol is resolved to 0 when
    building an executable if it isn't dynamic and
    1. Has non-GOT/non-PLT relocations in text section.
    Or
    2. Has no GOT/PLT relocation.  */
-#define UNDEFINED_WEAK_RESOLVED_TO_ZERO(INFO, EH)               \
-  ((EH)->elf.root.type == bfd_link_hash_undefweak               \
-   && bfd_link_executable (INFO)                                \
-   && (_bfd_sparc_elf_hash_table (INFO)->interp == NULL         \
-       || !(EH)->has_got_reloc                                  \
-       || (EH)->has_non_got_reloc                               \
+#define UNDEFINED_WEAK_RESOLVED_TO_ZERO(INFO, EH)		\
+  ((EH)->elf.root.type == bfd_link_hash_undefweak		\
+   && bfd_link_executable (INFO)				\
+   && (_bfd_sparc_elf_hash_table (INFO)->interp == NULL		\
+       || !(EH)->has_got_reloc					\
+       || (EH)->has_non_got_reloc				\
        || !(INFO)->dynamic_undefined_weak))
 
 /* SPARC ELF linker hash entry.  */
@@ -704,7 +684,7 @@ struct _bfd_sparc_elf_link_hash_entry
   struct elf_link_hash_entry elf;
 
   /* Track dynamic relocs copied for this symbol.  */
-  struct _bfd_sparc_elf_dyn_relocs *dyn_relocs;
+  struct elf_dyn_relocs *dyn_relocs;
 
 #define GOT_UNKNOWN     0
 #define GOT_NORMAL      1
@@ -933,7 +913,7 @@ sparc64_plt_entry_build (bfd *output_bfd
       bfd_put_32 (output_bfd, (bfd_vma) 0x8a10000f, entry);
       bfd_put_32 (output_bfd, (bfd_vma) 0x40000002, entry + 4);
       bfd_put_32 (output_bfd, (bfd_vma) SPARC_NOP,  entry + 8);
-      bfd_put_32 (output_bfd, (bfd_vma) ldx,        entry + 12);
+      bfd_put_32 (output_bfd, (bfd_vma) ldx,	    entry + 12);
       bfd_put_32 (output_bfd, (bfd_vma) 0x83c3c001, entry + 16);
       bfd_put_32 (output_bfd, (bfd_vma) 0x9e100005, entry + 20);
 
@@ -1303,14 +1283,14 @@ _bfd_sparc_elf_copy_indirect_symbol (str
     {
       if (edir->dyn_relocs != NULL)
 	{
-	  struct _bfd_sparc_elf_dyn_relocs **pp;
-	  struct _bfd_sparc_elf_dyn_relocs *p;
+	  struct elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs *p;
 
 	  /* Add reloc counts against the indirect sym to the direct sym
 	     list.  Merge any entries against the same section.  */
 	  for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
 	    {
-	      struct _bfd_sparc_elf_dyn_relocs *q;
+	      struct elf_dyn_relocs *q;
 
 	      for (q = edir->dyn_relocs; q != NULL; q = q->next)
 		if (q->sec == p->sec)
@@ -1353,7 +1333,7 @@ sparc_elf_tls_transition (struct bfd_lin
       && ! _bfd_sparc_elf_tdata (abfd)->has_tlsgd)
     r_type = R_SPARC_REV32;
 
-  if (bfd_link_pic (info))
+  if (!bfd_link_executable (info))
     return r_type;
 
   switch (r_type)
@@ -1426,7 +1406,7 @@ _bfd_sparc_elf_check_relocs (bfd *abfd, 
   for (rel = relocs; rel < rel_end; rel++)
     {
       unsigned int r_type;
-      unsigned long r_symndx;
+      unsigned int r_symndx;
       struct elf_link_hash_entry *h;
       struct _bfd_sparc_elf_link_hash_entry *eh;
       Elf_Internal_Sym *isym;
@@ -1474,10 +1454,6 @@ _bfd_sparc_elf_check_relocs (bfd *abfd, 
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       if (h && h->type == STT_GNU_IFUNC)
@@ -1523,19 +1499,19 @@ _bfd_sparc_elf_check_relocs (bfd *abfd, 
 	case R_SPARC_TLS_LDM_HI22:
 	case R_SPARC_TLS_LDM_LO10:
 	  htab->tls_ldm_got.refcount += 1;
-          if (eh != NULL)
-            eh->has_got_reloc = 1;
+	  if (eh != NULL)
+	    eh->has_got_reloc = 1;
 	  break;
 
 	case R_SPARC_TLS_LE_HIX22:
 	case R_SPARC_TLS_LE_LOX10:
-	  if (bfd_link_pic (info))
+	  if (!bfd_link_executable (info))
 	    goto r_sparc_plt32;
 	  break;
 
 	case R_SPARC_TLS_IE_HI22:
 	case R_SPARC_TLS_IE_LO10:
-	  if (bfd_link_pic (info))
+	  if (!bfd_link_executable (info))
 	    info->flags |= DF_STATIC_TLS;
 	  /* Fall through */
 
@@ -1643,13 +1619,13 @@ _bfd_sparc_elf_check_relocs (bfd *abfd, 
 		return FALSE;
 	    }
 
-          if (eh != NULL)
-            eh->has_got_reloc = 1;
+	  if (eh != NULL)
+	    eh->has_got_reloc = 1;
 	  break;
 
 	case R_SPARC_TLS_GD_CALL:
 	case R_SPARC_TLS_LDM_CALL:
-	  if (bfd_link_pic (info))
+	  if (!bfd_link_executable (info))
 	    {
 	      /* These are basically R_SPARC_TLS_WPLT30 relocs against
 		 __tls_get_addr.  */
@@ -1697,7 +1673,7 @@ _bfd_sparc_elf_check_relocs (bfd *abfd, 
 		break;
 
 	      /* It does not make sense to have a procedure linkage
-                 table entry for a local symbol.  */
+		 table entry for a local symbol.  */
 	      bfd_set_error (bfd_error_bad_value);
 	      return FALSE;
 	    }
@@ -1714,8 +1690,8 @@ _bfd_sparc_elf_check_relocs (bfd *abfd, 
 	  }
 	  h->plt.refcount += 1;
 
-          eh = (struct _bfd_sparc_elf_link_hash_entry *) h;
-          eh->has_got_reloc = 1;
+	  eh = (struct _bfd_sparc_elf_link_hash_entry *) h;
+	  eh->has_got_reloc = 1;
 	  break;
 
 	case R_SPARC_PC10:
@@ -1769,8 +1745,8 @@ _bfd_sparc_elf_check_relocs (bfd *abfd, 
 	  if (h != NULL)
 	    h->non_got_ref = 1;
 
-          if (eh != NULL && (sec->flags & SEC_CODE) != 0)
-            eh->has_non_got_reloc = 1;
+	  if (eh != NULL && (sec->flags & SEC_CODE) != 0)
+	    eh->has_non_got_reloc = 1;
 
 	r_sparc_plt32:
 	  if (h != NULL && !bfd_link_pic (info))
@@ -1817,8 +1793,8 @@ _bfd_sparc_elf_check_relocs (bfd *abfd, 
 		  && h != NULL
 		  && h->type == STT_GNU_IFUNC))
 	    {
-	      struct _bfd_sparc_elf_dyn_relocs *p;
-	      struct _bfd_sparc_elf_dyn_relocs **head;
+	      struct elf_dyn_relocs *p;
+	      struct elf_dyn_relocs **head;
 
 	      /* When creating a shared object, we must copy these
 		 relocs into the output file.  We create a reloc
@@ -1851,14 +1827,14 @@ _bfd_sparc_elf_check_relocs (bfd *abfd, 
 		    s = sec;
 
 		  vpp = &elf_section_data (s)->local_dynrel;
-		  head = (struct _bfd_sparc_elf_dyn_relocs **) vpp;
+		  head = (struct elf_dyn_relocs **) vpp;
 		}
 
 	      p = *head;
 	      if (p == NULL || p->sec != sec)
 		{
 		  bfd_size_type amt = sizeof *p;
-		  p = ((struct _bfd_sparc_elf_dyn_relocs *)
+		  p = ((struct elf_dyn_relocs *)
 		       bfd_alloc (htab->elf.dynobj, amt));
 		  if (p == NULL)
 		    return FALSE;
@@ -1932,8 +1908,8 @@ _bfd_sparc_elf_gc_mark_hook (asection *s
 				    FALSE, FALSE, TRUE);
 	  BFD_ASSERT (h != NULL);
 	  h->mark = 1;
-	  if (h->u.weakdef != NULL)
-	    h->u.weakdef->mark = 1;
+	  if (h->is_weakalias)
+	    weakdef (h)->mark = 1;
 	  sym = NULL;
 	}
     }
@@ -1955,184 +1931,41 @@ sparc_elf_find_reloc_at_ofs (Elf_Interna
   return NULL;
 }
 
-/* Update the got entry reference counts for the section being removed.  */
-bfd_boolean
-_bfd_sparc_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
-			      asection *sec, const Elf_Internal_Rela *relocs)
-{
-  struct _bfd_sparc_elf_link_hash_table *htab;
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  BFD_ASSERT (is_sparc_elf (abfd) || sec->reloc_count == 0);
-
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  htab = _bfd_sparc_elf_hash_table (info);
-  BFD_ASSERT (htab != NULL);
-  symtab_hdr = &elf_symtab_hdr (abfd);
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
-
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
-    {
-      unsigned long r_symndx;
-      unsigned int r_type;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = SPARC_ELF_R_SYMNDX (htab, rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  struct _bfd_sparc_elf_link_hash_entry *eh;
-	  struct _bfd_sparc_elf_dyn_relocs **pp;
-	  struct _bfd_sparc_elf_dyn_relocs *p;
-
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	  eh = (struct _bfd_sparc_elf_link_hash_entry *) h;
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next)
-	    if (p->sec == sec)
-	      {
-		/* Everything must go for SEC.  */
-		*pp = p->next;
-		break;
-	      }
-	}
-
-      r_type = SPARC_ELF_R_TYPE (rel->r_info);
-      r_type = sparc_elf_tls_transition (info, abfd, r_type, h == NULL);
-      switch (r_type)
-	{
-	case R_SPARC_TLS_LDM_HI22:
-	case R_SPARC_TLS_LDM_LO10:
-	  if (_bfd_sparc_elf_hash_table (info)->tls_ldm_got.refcount > 0)
-	    _bfd_sparc_elf_hash_table (info)->tls_ldm_got.refcount -= 1;
-	  break;
-
-	case R_SPARC_TLS_GD_HI22:
-	case R_SPARC_TLS_GD_LO10:
-	case R_SPARC_TLS_IE_HI22:
-	case R_SPARC_TLS_IE_LO10:
-	case R_SPARC_GOT10:
-	case R_SPARC_GOT13:
-	case R_SPARC_GOT22:
-	case R_SPARC_GOTDATA_HIX22:
-	case R_SPARC_GOTDATA_LOX10:
-	case R_SPARC_GOTDATA_OP_HIX22:
-	case R_SPARC_GOTDATA_OP_LOX10:
-	  if (h != NULL)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount--;
-	    }
-	  else
-	    {
-	      switch (r_type)
-		{
-		case R_SPARC_GOTDATA_OP_HIX22:
-		case R_SPARC_GOTDATA_OP_LOX10:
-		  break;
-
-		default:
-		  if (local_got_refcounts[r_symndx] > 0)
-		    local_got_refcounts[r_symndx]--;
-		  break;
-		}
-	    }
-	  break;
-
-	case R_SPARC_PC10:
-	case R_SPARC_PC22:
-	case R_SPARC_PC_HH22:
-	case R_SPARC_PC_HM10:
-	case R_SPARC_PC_LM22:
-	  if (h != NULL
-	      && strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
-	    break;
-	  /* Fall through.  */
-
-	case R_SPARC_DISP8:
-	case R_SPARC_DISP16:
-	case R_SPARC_DISP32:
-	case R_SPARC_DISP64:
-	case R_SPARC_WDISP30:
-	case R_SPARC_WDISP22:
-	case R_SPARC_WDISP19:
-	case R_SPARC_WDISP16:
-	case R_SPARC_WDISP10:
-	case R_SPARC_8:
-	case R_SPARC_16:
-	case R_SPARC_32:
-	case R_SPARC_HI22:
-	case R_SPARC_22:
-	case R_SPARC_13:
-	case R_SPARC_LO10:
-	case R_SPARC_UA16:
-	case R_SPARC_UA32:
-	case R_SPARC_PLT32:
-	case R_SPARC_10:
-	case R_SPARC_11:
-	case R_SPARC_64:
-	case R_SPARC_OLO10:
-	case R_SPARC_HH22:
-	case R_SPARC_HM10:
-	case R_SPARC_LM22:
-	case R_SPARC_7:
-	case R_SPARC_5:
-	case R_SPARC_6:
-	case R_SPARC_HIX22:
-	case R_SPARC_LOX10:
-	case R_SPARC_H44:
-	case R_SPARC_M44:
-	case R_SPARC_L44:
-	case R_SPARC_H34:
-	case R_SPARC_UA64:
-	  if (bfd_link_pic (info))
-	    break;
-	  /* Fall through.  */
-
-	case R_SPARC_WPLT30:
-	  if (h != NULL)
-	    {
-	      if (h->plt.refcount > 0)
-		h->plt.refcount--;
-	    }
-	  break;
-
-	default:
-	  break;
-	}
-    }
-
-  return TRUE;
-}
-
 /* Remove undefined weak symbol from the dynamic symbol table if it
    is resolved to 0.   */
 
 bfd_boolean
 _bfd_sparc_elf_fixup_symbol (struct bfd_link_info *info,
-                             struct elf_link_hash_entry *h)
+			     struct elf_link_hash_entry *h)
 {
   if (h->dynindx != -1
       && UNDEFINED_WEAK_RESOLVED_TO_ZERO (info,
-                                          _bfd_sparc_elf_hash_entry (h)))
+					  _bfd_sparc_elf_hash_entry (h)))
     {
       h->dynindx = -1;
       _bfd_elf_strtab_delref (elf_hash_table (info)->dynstr,
-                              h->dynstr_index);
+			      h->dynstr_index);
     }
   return TRUE;
 }
 
+/* Find dynamic relocs for H that apply to read-only sections.  */
+
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
+
+  for (p = _bfd_sparc_elf_hash_entry (h)->dyn_relocs; p != NULL; p = p->next)
+    {
+      asection *s = p->sec->output_section;
+
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
+    }
+  return NULL;
+}
+
 /* Adjust a symbol defined by a dynamic object and referenced by a
    regular object.  The current definition is in some section of the
    dynamic object, but we're not including those sections.  We have to
@@ -2144,8 +1977,6 @@ _bfd_sparc_elf_adjust_dynamic_symbol (st
 				     struct elf_link_hash_entry *h)
 {
   struct _bfd_sparc_elf_link_hash_table *htab;
-  struct _bfd_sparc_elf_link_hash_entry * eh;
-  struct _bfd_sparc_elf_dyn_relocs *p;
   asection *s, *srel;
 
   htab = _bfd_sparc_elf_hash_table (info);
@@ -2155,7 +1986,7 @@ _bfd_sparc_elf_adjust_dynamic_symbol (st
   BFD_ASSERT (htab->elf.dynobj != NULL
 	      && (h->needs_plt
 		  || h->type == STT_GNU_IFUNC
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -2198,12 +2029,12 @@ _bfd_sparc_elf_adjust_dynamic_symbol (st
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -2229,17 +2060,9 @@ _bfd_sparc_elf_adjust_dynamic_symbol (st
       return TRUE;
     }
 
-  eh = (struct _bfd_sparc_elf_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      s = p->sec->output_section;
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	break;
-    }
-
-  /* If we didn't find any dynamic relocs in read-only sections, then
+  /* If we don't find any dynamic relocs in read-only sections, then
      we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
-  if (p == NULL)
+  if (!readonly_dynrelocs (h))
     {
       h->non_got_ref = 0;
       return TRUE;
@@ -2287,7 +2110,7 @@ allocate_dynrelocs (struct elf_link_hash
   struct bfd_link_info *info;
   struct _bfd_sparc_elf_link_hash_table *htab;
   struct _bfd_sparc_elf_link_hash_entry *eh;
-  struct _bfd_sparc_elf_dyn_relocs *p;
+  struct elf_dyn_relocs *p;
   bfd_boolean resolved_to_zero;
 
   if (h->root.type == bfd_link_hash_indirect)
@@ -2310,7 +2133,8 @@ allocate_dynrelocs (struct elf_link_hash
 	 Undefined weak syms won't yet be marked as dynamic.  */
       if (h->dynindx == -1
 	  && !h->forced_local
-          && !resolved_to_zero)
+	  && !resolved_to_zero
+	  && h->root.type == bfd_link_hash_undefweak)
 	{
 	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
 	    return FALSE;
@@ -2372,16 +2196,16 @@ allocate_dynrelocs (struct elf_link_hash
 	  /* Make room for this entry.  */
 	  s->size += htab->plt_entry_size;
 
-          /* There should be no PLT relocations against resolved undefined
-             weak symbols in the executable.  */
-          if (!resolved_to_zero)
-            {
+	  /* There should be no PLT relocations against resolved undefined
+	     weak symbols in the executable.  */
+	  if (!resolved_to_zero)
+	    {
 	      /* We also need to make an entry in the .rela.plt section.  */
 	      if (s == htab->elf.splt)
-	        htab->elf.srelplt->size += SPARC_ELF_RELA_BYTES (htab);
+		htab->elf.srelplt->size += SPARC_ELF_RELA_BYTES (htab);
 	      else
-	        htab->elf.irelplt->size += SPARC_ELF_RELA_BYTES (htab);
-            }
+		htab->elf.irelplt->size += SPARC_ELF_RELA_BYTES (htab);
+	    }
 
 	  if (htab->is_vxworks)
 	    {
@@ -2408,7 +2232,7 @@ allocate_dynrelocs (struct elf_link_hash
   /* If R_SPARC_TLS_IE_{HI22,LO10} symbol is now local to the binary,
      make it a R_SPARC_TLS_LE_{HI22,LO10} requiring no TLS entry.  */
   if (h->got.refcount > 0
-      && !bfd_link_pic (info)
+      && bfd_link_executable (info)
       && h->dynindx == -1
       && _bfd_sparc_elf_hash_entry(h)->tls_type == GOT_TLS_IE)
     h->got.offset = (bfd_vma) -1;
@@ -2422,7 +2246,8 @@ allocate_dynrelocs (struct elf_link_hash
 	 Undefined weak syms won't yet be marked as dynamic.  */
       if (h->dynindx == -1
 	  && !h->forced_local
-          && !resolved_to_zero)
+	  && !resolved_to_zero
+	  && h->root.type == bfd_link_hash_undefweak)
 	{
 	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
 	    return FALSE;
@@ -2446,10 +2271,10 @@ allocate_dynrelocs (struct elf_link_hash
       else if (tls_type == GOT_TLS_GD)
 	htab->elf.srelgot->size += 2 * SPARC_ELF_RELA_BYTES (htab);
       else if (((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-                 && !resolved_to_zero)
-                || h->root.type != bfd_link_hash_undefweak)
-               && WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
-		                                   bfd_link_pic (info),
+		 && !resolved_to_zero)
+		|| h->root.type != bfd_link_hash_undefweak)
+	       && WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
+						   bfd_link_pic (info),
 						   h))
 	htab->elf.srelgot->size += SPARC_ELF_RELA_BYTES (htab);
     }
@@ -2469,7 +2294,7 @@ allocate_dynrelocs (struct elf_link_hash
     {
       if (SYMBOL_CALLS_LOCAL (info, h))
 	{
-	  struct _bfd_sparc_elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs **pp;
 
 	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
 	    {
@@ -2484,7 +2309,7 @@ allocate_dynrelocs (struct elf_link_hash
 
       if (htab->is_vxworks)
 	{
-	  struct _bfd_sparc_elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs **pp;
 
 	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
 	    {
@@ -2500,40 +2325,40 @@ allocate_dynrelocs (struct elf_link_hash
       if (eh->dyn_relocs != NULL
 	  && h->root.type == bfd_link_hash_undefweak)
 	{
-          /* An undefined weak symbol is never
+	  /* An undefined weak symbol is never
 	     bound locally in a shared library.  */
 
 	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
-              || resolved_to_zero)
-            {
-              if (h->non_got_ref)
-                {
-                  /* Keep dynamic non-GOT/non-PLT relocation so that we
-                     can branch to 0 without PLT.  */
-                  struct _bfd_sparc_elf_dyn_relocs **pp;
-
-                  for (pp = &eh->dyn_relocs; (p = *pp) != NULL;)
-                    if (p->pc_count == 0)
-                      *pp = p->next;
-                    else
-                      {
-                        /* Remove other relocations.  */
-                        p->count = p->pc_count;
-                        pp = &p->next;
-                      }
-
-                  if (eh->dyn_relocs != NULL)
-                    {
-                      /* Make sure undefined weak symbols are output
-                         as dynamic symbols in PIEs for dynamic non-GOT
-                         non-PLT reloations.  */
-                      if (! bfd_elf_link_record_dynamic_symbol (info, h))
-                        return FALSE;
-                    }
-                }
-              else
-	        eh->dyn_relocs = NULL;
-            }
+	      || resolved_to_zero)
+	    {
+	      if (h->non_got_ref)
+		{
+		  /* Keep dynamic non-GOT/non-PLT relocation so that we
+		     can branch to 0 without PLT.  */
+		  struct elf_dyn_relocs **pp;
+
+		  for (pp = &eh->dyn_relocs; (p = *pp) != NULL;)
+		    if (p->pc_count == 0)
+		      *pp = p->next;
+		    else
+		      {
+			/* Remove other relocations.  */
+			p->count = p->pc_count;
+			pp = &p->next;
+		      }
+
+		  if (eh->dyn_relocs != NULL)
+		    {
+		      /* Make sure undefined weak symbols are output
+			 as dynamic symbols in PIEs for dynamic non-GOT
+			 non-PLT reloations.  */
+		      if (! bfd_elf_link_record_dynamic_symbol (info, h))
+			return FALSE;
+		    }
+		}
+	      else
+		eh->dyn_relocs = NULL;
+	    }
 
 	  /* Make sure undefined weak symbols are output as a dynamic
 	     symbol in PIEs.  */
@@ -2552,8 +2377,8 @@ allocate_dynrelocs (struct elf_link_hash
 	 dynamic.  */
 
       if ((!h->non_got_ref
-           || (h->root.type == bfd_link_hash_undefweak
-               && !resolved_to_zero))
+	   || (h->root.type == bfd_link_hash_undefweak
+	       && !resolved_to_zero))
 	  && ((h->def_dynamic
 	       && !h->def_regular)
 	      || (htab->elf.dynamic_sections_created
@@ -2564,7 +2389,8 @@ allocate_dynrelocs (struct elf_link_hash
 	     Undefined weak syms won't yet be marked as dynamic.  */
 	  if (h->dynindx == -1
 	      && !h->forced_local
-              && !resolved_to_zero)
+	      && !resolved_to_zero
+	      && h->root.type == bfd_link_hash_undefweak)
 	    {
 	      if (! bfd_elf_link_record_dynamic_symbol (info, h))
 		return FALSE;
@@ -2610,28 +2436,29 @@ allocate_local_dynrelocs (void **slot, v
   return allocate_dynrelocs (h, inf);
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (struct elf_link_hash_entry *h, void * inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct _bfd_sparc_elf_link_hash_entry *eh;
-  struct _bfd_sparc_elf_dyn_relocs *p;
+  asection *sec;
 
-  eh = (struct _bfd_sparc_elf_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection *s = p->sec->output_section;
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	{
-	  struct bfd_link_info *info = (struct bfd_link_info *) inf;
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
+    {
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-	  info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
-	  /* Not an error, just cut short the traversal.  */
-	  return FALSE;
-	}
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -2673,13 +2500,13 @@ _bfd_sparc_elf_size_dynamic_sections (bf
     {
       /* Set the contents of the .interp section to the interpreter.  */
       if (bfd_link_executable (info) && !info->nointerp)
-        {
-          s = bfd_get_linker_section (dynobj, ".interp");
-          BFD_ASSERT (s != NULL);
-          s->size = htab->dynamic_interpreter_size;
-          s->contents = (unsigned char *) htab->dynamic_interpreter;
-          htab->interp = s;
-        }
+	{
+	  s = bfd_get_linker_section (dynobj, ".interp");
+	  BFD_ASSERT (s != NULL);
+	  s->size = htab->dynamic_interpreter_size;
+	  s->contents = (unsigned char *) htab->dynamic_interpreter;
+	  htab->interp = s;
+	}
     }
 
   /* Set up .got offsets for local syms, and space for local dynamic
@@ -2698,7 +2525,7 @@ _bfd_sparc_elf_size_dynamic_sections (bf
 
       for (s = ibfd->sections; s != NULL; s = s->next)
 	{
-	  struct _bfd_sparc_elf_dyn_relocs *p;
+	  struct elf_dyn_relocs *p;
 
 	  for (p = elf_section_data (s)->local_dynrel; p != NULL; p = p->next)
 	    {
@@ -2724,7 +2551,11 @@ _bfd_sparc_elf_size_dynamic_sections (bf
 		    srel = htab->elf.irelplt;
 		  srel->size += p->count * SPARC_ELF_RELA_BYTES (htab);
 		  if ((p->sec->output_section->flags & SEC_READONLY) != 0)
-		    info->flags |= DF_TEXTREL;
+		    {
+		      info->flags |= DF_TEXTREL;
+		      info->callbacks->minfo (_("%B: dynamic relocation in read-only section `%A'\n"),
+					      p->sec->owner, p->sec);
+		    }
 		}
 	    }
 	}
@@ -2886,7 +2717,7 @@ _bfd_sparc_elf_size_dynamic_sections (bf
       /* If any dynamic relocs apply to a read-only section,
 	 then we need a DT_TEXTREL entry.  */
       if ((info->flags & DF_TEXTREL) == 0)
-	elf_link_hash_traverse (&htab->elf, readonly_dynrelocs, info);
+	elf_link_hash_traverse (&htab->elf, maybe_set_textrel, info);
 
       if (info->flags & DF_TEXTREL)
 	{
@@ -3125,6 +2956,7 @@ _bfd_sparc_elf_relocate_section (bfd *ou
       bfd_boolean is_plt = FALSE;
       bfd_boolean unresolved_reloc;
       bfd_boolean resolved_to_zero;
+      bfd_boolean relative_reloc;
 
       r_type = SPARC_ELF_R_TYPE (rel->r_info);
       if (r_type == R_SPARC_GNU_VTINHERIT
@@ -3305,7 +3137,7 @@ _bfd_sparc_elf_relocate_section (bfd *ou
 
       eh = (struct _bfd_sparc_elf_link_hash_entry *) h;
       resolved_to_zero = (eh != NULL
-                          && UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh));
+			  && UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh));
 
       switch (r_type)
 	{
@@ -3349,6 +3181,7 @@ _bfd_sparc_elf_relocate_section (bfd *ou
 	  if (htab->elf.sgot == NULL)
 	    abort ();
 
+	  relative_reloc = FALSE;
 	  if (h != NULL)
 	    {
 	      bfd_boolean dyn;
@@ -3379,8 +3212,18 @@ _bfd_sparc_elf_relocate_section (bfd *ou
 		    off &= ~1;
 		  else
 		    {
-		      SPARC_ELF_PUT_WORD (htab, output_bfd, relocation,
-					  htab->elf.sgot->contents + off);
+		      if (h->dynindx == -1
+			  && !h->forced_local
+			  && h->root.type != bfd_link_hash_undefweak
+			  && bfd_link_pic (info))
+			{
+			  /* If this symbol isn't dynamic in PIC
+			     generate R_SPARC_RELATIVE here.  */
+			  relative_reloc = TRUE;
+			}
+		      else
+			SPARC_ELF_PUT_WORD (htab, output_bfd, relocation,
+					    htab->elf.sgot->contents + off);
 		      h->got.offset |= 1;
 		    }
 		}
@@ -3401,32 +3244,41 @@ _bfd_sparc_elf_relocate_section (bfd *ou
 		off &= ~1;
 	      else
 		{
-
 		  if (bfd_link_pic (info))
-		    {
-		      asection *s;
-		      Elf_Internal_Rela outrel;
-
-		      /* We need to generate a R_SPARC_RELATIVE reloc
-			 for the dynamic linker.  */
-		      s = htab->elf.srelgot;
-		      BFD_ASSERT (s != NULL);
-
-		      outrel.r_offset = (htab->elf.sgot->output_section->vma
-					 + htab->elf.sgot->output_offset
-					 + off);
-		      outrel.r_info = SPARC_ELF_R_INFO (htab, NULL,
-							0, R_SPARC_RELATIVE);
-		      outrel.r_addend = relocation;
-		      relocation = 0;
-		      sparc_elf_append_rela (output_bfd, s, &outrel);
-		    }
-
-		  SPARC_ELF_PUT_WORD (htab, output_bfd, relocation,
-				      htab->elf.sgot->contents + off);
+		    relative_reloc = TRUE;
+		  else
+		    SPARC_ELF_PUT_WORD (htab, output_bfd, relocation,
+					htab->elf.sgot->contents + off);
 		  local_got_offsets[r_symndx] |= 1;
 		}
 	    }
+
+	  if (relative_reloc)
+	    {
+	      asection *s;
+	      Elf_Internal_Rela outrel;
+
+	      /* We need to generate a R_SPARC_RELATIVE reloc
+		 for the dynamic linker.  */
+	      s = htab->elf.srelgot;
+	      BFD_ASSERT (s != NULL);
+
+	      outrel.r_offset = (htab->elf.sgot->output_section->vma
+				 + htab->elf.sgot->output_offset
+				 + off);
+	      outrel.r_info = SPARC_ELF_R_INFO (htab, NULL,
+						0, R_SPARC_RELATIVE);
+	      outrel.r_addend = relocation;
+	      sparc_elf_append_rela (output_bfd, s, &outrel);
+	      /* Versions of glibc ld.so at least up to 2.26 wrongly
+		 add the section contents to the value calculated for
+		 a RELATIVE reloc.  Zero the contents to work around
+		 this bug.  */
+	      relocation = 0;
+	      SPARC_ELF_PUT_WORD (htab, output_bfd, relocation,
+				  htab->elf.sgot->contents + off);
+	    }
+
 	  relocation = htab->elf.sgot->output_offset + off - got_base;
 	  break;
 
@@ -3535,13 +3387,13 @@ _bfd_sparc_elf_relocate_section (bfd *ou
 	      || is_vxworks_tls)
 	    break;
 
-          /* Copy dynamic function pointer relocations.  Don't generate
-             dynamic relocations against resolved undefined weak symbols
-             in PIE.  */
+	  /* Copy dynamic function pointer relocations.  Don't generate
+	     dynamic relocations against resolved undefined weak symbols
+	     in PIE.  */
 	  if ((bfd_link_pic (info)
 	       && (h == NULL
 		   || ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-                        && !resolved_to_zero)
+			&& !resolved_to_zero)
 		       || h->root.type != bfd_link_hash_undefweak))
 	       && (! howto->pc_relative
 		   || !SYMBOL_CALLS_LOCAL (info, h)))
@@ -3552,7 +3404,7 @@ _bfd_sparc_elf_relocate_section (bfd *ou
 		  && ((h->def_dynamic
 		       && !h->def_regular)
 		      || (h->root.type == bfd_link_hash_undefweak
-                          && !resolved_to_zero)
+			  && !resolved_to_zero)
 		      || h->root.type == bfd_link_hash_undefined)))
 	    {
 	      Elf_Internal_Rela outrel;
@@ -3604,10 +3456,10 @@ _bfd_sparc_elf_relocate_section (bfd *ou
 		  if (!(outrel.r_offset & 7))
 		    r_type = R_SPARC_64;
 		  break;
-	  	case R_SPARC_DISP8:
+		case R_SPARC_DISP8:
 		case R_SPARC_DISP16:
-	  	case R_SPARC_DISP32:
-	  	case R_SPARC_DISP64:
+		case R_SPARC_DISP32:
+		case R_SPARC_DISP64:
 		  /* If the symbol is not dynamic, we should not keep
 		     a dynamic relocation.  But an .rela.* slot has been
 		     allocated for it, output R_SPARC_NONE.
@@ -3724,7 +3576,7 @@ _bfd_sparc_elf_relocate_section (bfd *ou
 	  else if (h != NULL)
 	    {
 	      tls_type = _bfd_sparc_elf_hash_entry(h)->tls_type;
-	      if (!bfd_link_pic (info)
+	      if (bfd_link_executable (info)
 		  && h->dynindx == -1
 		  && tls_type == GOT_TLS_IE)
 		switch (SPARC_ELF_R_TYPE (rel->r_info))
@@ -3812,7 +3664,7 @@ _bfd_sparc_elf_relocate_section (bfd *ou
 		{
 		  if (indx == 0)
 		    {
-	    	      BFD_ASSERT (! unresolved_reloc);
+		      BFD_ASSERT (! unresolved_reloc);
 		      SPARC_ELF_PUT_WORD (htab, output_bfd,
 					  relocation - dtpoff_base (info),
 					  (htab->elf.sgot->contents + off
@@ -3871,7 +3723,7 @@ _bfd_sparc_elf_relocate_section (bfd *ou
 
 	case R_SPARC_TLS_LE_HIX22:
 	case R_SPARC_TLS_LE_LOX10:
-	  if (bfd_link_pic (info))
+	  if (!bfd_link_executable (info))
 	    {
 	      Elf_Internal_Rela outrel;
 	      bfd_boolean skip;
@@ -3903,7 +3755,7 @@ _bfd_sparc_elf_relocate_section (bfd *ou
 	  break;
 
 	case R_SPARC_TLS_LDM_CALL:
-	  if (! bfd_link_pic (info))
+	  if (bfd_link_executable (info))
 	    {
 	      /* mov %g0, %o0 */
 	      bfd_put_32 (output_bfd, 0x90100000, contents + rel->r_offset);
@@ -3917,7 +3769,7 @@ _bfd_sparc_elf_relocate_section (bfd *ou
 	    tls_type = _bfd_sparc_elf_local_got_tls_type (input_bfd) [r_symndx];
 	  else if (h != NULL)
 	    tls_type = _bfd_sparc_elf_hash_entry(h)->tls_type;
-	  if (! bfd_link_pic (info)
+	  if (bfd_link_executable (info)
 	      || (r_type == R_SPARC_TLS_GD_CALL && tls_type == GOT_TLS_IE))
 	    {
 	      Elf_Internal_Rela *rel2;
@@ -4026,7 +3878,7 @@ _bfd_sparc_elf_relocate_section (bfd *ou
 
 	case R_SPARC_TLS_IE_LD:
 	case R_SPARC_TLS_IE_LDX:
-	  if (! bfd_link_pic (info) && (h == NULL || h->dynindx == -1))
+	  if (bfd_link_executable (info) && (h == NULL || h->dynindx == -1))
 	    {
 	      bfd_vma insn = bfd_get_32 (input_bfd, contents + rel->r_offset);
 	      int rs2 = insn & 0x1f;
@@ -4063,10 +3915,10 @@ _bfd_sparc_elf_relocate_section (bfd *ou
 				      rel->r_offset) != (bfd_vma) -1)
 	_bfd_error_handler
 	  /* xgettext:c-format */
-	  (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+	  (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
 	   input_bfd,
 	   input_section,
-	   (long) rel->r_offset,
+	   rel->r_offset,
 	   howto->name,
 	   h->root.root.string);
 
@@ -4345,7 +4197,7 @@ do_relocation:
 			&& howto->pc_relative)
 		      break;
 
-	            name = NULL;
+		    name = NULL;
 		  }
 		else
 		  {
@@ -4611,7 +4463,7 @@ _bfd_sparc_elf_finish_dynamic_symbol (bf
       bed->s->swap_reloca_out (output_bfd, &rela, loc);
 
       if (!local_undefweak
-          && !h->def_regular)
+	  && !h->def_regular)
 	{
 	  /* Mark the symbol as undefined, rather than as defined in
 	     the .plt section.  Leave the value alone.  */
@@ -4927,7 +4779,7 @@ finish_local_dynamic_symbol (void **slot
 
 static bfd_boolean
 pie_finish_undefweak_symbol (struct bfd_hash_entry *bh,
-                             void *inf)
+			     void *inf)
 {
   struct elf_link_hash_entry *h = (struct elf_link_hash_entry *) bh;
   struct bfd_link_info *info = (struct bfd_link_info *) inf;
@@ -4937,7 +4789,7 @@ pie_finish_undefweak_symbol (struct bfd_
     return TRUE;
 
   return _bfd_sparc_elf_finish_dynamic_symbol (info->output_bfd, info,
-                                               h, NULL);
+					       h, NULL);
 }
 
 bfd_boolean
@@ -4983,9 +4835,9 @@ _bfd_sparc_elf_finish_dynamic_sections (
 	}
 
       if (elf_section_data (splt->output_section) != NULL)
-        elf_section_data (splt->output_section)->this_hdr.sh_entsize
-          = ((htab->is_vxworks || !ABI_64_P (output_bfd))
-             ? 0 : htab->plt_entry_size);
+	elf_section_data (splt->output_section)->this_hdr.sh_entsize
+	  = ((htab->is_vxworks || !ABI_64_P (output_bfd))
+	     ? 0 : htab->plt_entry_size);
     }
 
   /* Set the first entry in the global offset table to the address of
@@ -5009,8 +4861,8 @@ _bfd_sparc_elf_finish_dynamic_sections (
   /* Fill PLT entries for undefined weak symbols in PIE.  */
   if (bfd_link_pie (info))
     bfd_hash_traverse (&info->hash->table,
-                       pie_finish_undefweak_symbol,
-                       info);
+		       pie_finish_undefweak_symbol,
+		       info);
   return TRUE;
 }
 
@@ -5026,42 +4878,52 @@ _bfd_sparc_elf_object_p (bfd *abfd)
 
   unsigned int v9c_hwcaps_mask = ELF_SPARC_HWCAP_ASI_BLK_INIT;
   unsigned int v9d_hwcaps_mask = (ELF_SPARC_HWCAP_FMAF
-                                  | ELF_SPARC_HWCAP_VIS3
-                                  | ELF_SPARC_HWCAP_HPC);
+				  | ELF_SPARC_HWCAP_VIS3
+				  | ELF_SPARC_HWCAP_HPC);
   unsigned int v9e_hwcaps_mask = (ELF_SPARC_HWCAP_AES
-                                  | ELF_SPARC_HWCAP_DES
-                                  | ELF_SPARC_HWCAP_KASUMI
-                                  | ELF_SPARC_HWCAP_CAMELLIA
-                                  | ELF_SPARC_HWCAP_MD5
-                                  | ELF_SPARC_HWCAP_SHA1
-                                  | ELF_SPARC_HWCAP_SHA256
-                                  | ELF_SPARC_HWCAP_SHA512
-                                  | ELF_SPARC_HWCAP_MPMUL
-                                  | ELF_SPARC_HWCAP_MONT
-                                  | ELF_SPARC_HWCAP_CRC32C
-                                  | ELF_SPARC_HWCAP_CBCOND
-                                  | ELF_SPARC_HWCAP_PAUSE);
+				  | ELF_SPARC_HWCAP_DES
+				  | ELF_SPARC_HWCAP_KASUMI
+				  | ELF_SPARC_HWCAP_CAMELLIA
+				  | ELF_SPARC_HWCAP_MD5
+				  | ELF_SPARC_HWCAP_SHA1
+				  | ELF_SPARC_HWCAP_SHA256
+				  | ELF_SPARC_HWCAP_SHA512
+				  | ELF_SPARC_HWCAP_MPMUL
+				  | ELF_SPARC_HWCAP_MONT
+				  | ELF_SPARC_HWCAP_CRC32C
+				  | ELF_SPARC_HWCAP_CBCOND
+				  | ELF_SPARC_HWCAP_PAUSE);
   unsigned int v9v_hwcaps_mask = (ELF_SPARC_HWCAP_FJFMAU
-                                 | ELF_SPARC_HWCAP_IMA);
+				 | ELF_SPARC_HWCAP_IMA);
   unsigned int v9m_hwcaps2_mask = (ELF_SPARC_HWCAP2_SPARC5
-                                   | ELF_SPARC_HWCAP2_MWAIT
-                                   | ELF_SPARC_HWCAP2_XMPMUL
-                                   | ELF_SPARC_HWCAP2_XMONT);
+				   | ELF_SPARC_HWCAP2_MWAIT
+				   | ELF_SPARC_HWCAP2_XMPMUL
+				   | ELF_SPARC_HWCAP2_XMONT);
+  unsigned int m8_hwcaps2_mask = (ELF_SPARC_HWCAP2_SPARC6
+				  | ELF_SPARC_HWCAP2_ONADDSUB
+				  | ELF_SPARC_HWCAP2_ONMUL
+				  | ELF_SPARC_HWCAP2_ONDIV
+				  | ELF_SPARC_HWCAP2_DICTUNP
+				  | ELF_SPARC_HWCAP2_FPCMPSHL
+				  | ELF_SPARC_HWCAP2_RLE
+				  | ELF_SPARC_HWCAP2_SHA3);
 
   if (ABI_64_P (abfd))
     {
       unsigned long mach = bfd_mach_sparc_v9;
 
-      if (hwcaps2->i & v9m_hwcaps2_mask)
-        mach = bfd_mach_sparc_v9m;
+      if (hwcaps2->i & m8_hwcaps2_mask)
+	mach = bfd_mach_sparc_v9m8;
+      else if (hwcaps2->i & v9m_hwcaps2_mask)
+	mach = bfd_mach_sparc_v9m;
       else if (hwcaps->i & v9v_hwcaps_mask)
-        mach = bfd_mach_sparc_v9v;
+	mach = bfd_mach_sparc_v9v;
       else if (hwcaps->i & v9e_hwcaps_mask)
-        mach = bfd_mach_sparc_v9e;
+	mach = bfd_mach_sparc_v9e;
       else if (hwcaps->i & v9d_hwcaps_mask)
-        mach = bfd_mach_sparc_v9d;
+	mach = bfd_mach_sparc_v9d;
       else if (hwcaps->i & v9c_hwcaps_mask)
-        mach = bfd_mach_sparc_v9c;
+	mach = bfd_mach_sparc_v9c;
       else if (elf_elfheader (abfd)->e_flags & EF_SPARC_SUN_US3)
 	mach = bfd_mach_sparc_v9b;
       else if (elf_elfheader (abfd)->e_flags & EF_SPARC_SUN_US1)
@@ -5072,20 +4934,23 @@ _bfd_sparc_elf_object_p (bfd *abfd)
     {
       if (elf_elfheader (abfd)->e_machine == EM_SPARC32PLUS)
 	{
-          if (hwcaps2->i & v9m_hwcaps2_mask)
+	  if (hwcaps2->i & m8_hwcaps2_mask)
+	    return bfd_default_set_arch_mach (abfd, bfd_arch_sparc,
+					      bfd_mach_sparc_v8plusm8);
+	  else if (hwcaps2->i & v9m_hwcaps2_mask)
 	    return bfd_default_set_arch_mach (abfd, bfd_arch_sparc,
 					      bfd_mach_sparc_v8plusm);
-          else if (hwcaps->i & v9v_hwcaps_mask)
-            return bfd_default_set_arch_mach (abfd, bfd_arch_sparc,
+	  else if (hwcaps->i & v9v_hwcaps_mask)
+	    return bfd_default_set_arch_mach (abfd, bfd_arch_sparc,
 					      bfd_mach_sparc_v8plusv);
-          else if (hwcaps->i & v9e_hwcaps_mask)
-            return bfd_default_set_arch_mach (abfd, bfd_arch_sparc,
+	  else if (hwcaps->i & v9e_hwcaps_mask)
+	    return bfd_default_set_arch_mach (abfd, bfd_arch_sparc,
 					      bfd_mach_sparc_v8pluse);
-          else if (hwcaps->i & v9d_hwcaps_mask)
-            return bfd_default_set_arch_mach (abfd, bfd_arch_sparc,
+	  else if (hwcaps->i & v9d_hwcaps_mask)
+	    return bfd_default_set_arch_mach (abfd, bfd_arch_sparc,
 					      bfd_mach_sparc_v8plusd);
-          else if (hwcaps->i & v9c_hwcaps_mask)
-            return bfd_default_set_arch_mach (abfd, bfd_arch_sparc,
+	  else if (hwcaps->i & v9c_hwcaps_mask)
+	    return bfd_default_set_arch_mach (abfd, bfd_arch_sparc,
 					      bfd_mach_sparc_v8plusc);
 	  else if (elf_elfheader (abfd)->e_flags & EF_SPARC_SUN_US3)
 	    return bfd_default_set_arch_mach (abfd, bfd_arch_sparc,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-sparc.h ./bfd/elfxx-sparc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-sparc.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfxx-sparc.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* SPARC ELF specific backend routines.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -118,9 +118,6 @@ extern asection *_bfd_sparc_elf_gc_mark_
   (asection *, struct bfd_link_info *,
    Elf_Internal_Rela *, struct elf_link_hash_entry *,
    Elf_Internal_Sym *);
-extern bfd_boolean _bfd_sparc_elf_gc_sweep_hook
-  (bfd *, struct bfd_link_info *,
-   asection *, const Elf_Internal_Rela *);
 extern bfd_boolean _bfd_sparc_elf_adjust_dynamic_symbol
   (struct bfd_link_info *, struct elf_link_hash_entry *);
 extern bfd_boolean _bfd_sparc_elf_omit_section_dynsym
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-target.h ./bfd/elfxx-target.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-target.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfxx-target.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target definitions for NN-bit ELF
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -46,6 +46,9 @@
 #ifndef bfd_elfNN_canonicalize_reloc
 #define bfd_elfNN_canonicalize_reloc	_bfd_elf_canonicalize_reloc
 #endif
+#ifndef bfd_elfNN_set_reloc
+#define bfd_elfNN_set_reloc		_bfd_generic_set_reloc
+#endif
 #ifndef bfd_elfNN_find_nearest_line
 #define bfd_elfNN_find_nearest_line	_bfd_elf_find_nearest_line
 #endif
@@ -126,6 +129,15 @@
 #ifndef elf_backend_extern_protected_data
 #define elf_backend_extern_protected_data 0
 #endif
+#ifndef elf_backend_always_renumber_dynsyms
+#define elf_backend_always_renumber_dynsyms FALSE
+#endif
+#ifndef elf_backend_linux_prpsinfo32_ugid16
+#define elf_backend_linux_prpsinfo32_ugid16 FALSE
+#endif
+#ifndef elf_backend_linux_prpsinfo64_ugid16
+#define elf_backend_linux_prpsinfo64_ugid16 FALSE
+#endif
 #ifndef elf_backend_stack_align
 #define elf_backend_stack_align 16
 #endif
@@ -168,9 +180,6 @@
 #ifndef elf_backend_gc_mark_extra_sections
 #define elf_backend_gc_mark_extra_sections _bfd_elf_gc_mark_extra_sections
 #endif
-#ifndef elf_backend_gc_sweep_hook
-#define elf_backend_gc_sweep_hook	NULL
-#endif
 #ifndef bfd_elfNN_bfd_gc_sections
 #define bfd_elfNN_bfd_gc_sections bfd_elf_gc_sections
 #endif
@@ -263,6 +272,9 @@
 #ifndef bfd_elfNN_bfd_link_add_symbols
 #define bfd_elfNN_bfd_link_add_symbols	bfd_elf_link_add_symbols
 #endif
+#ifndef bfd_elfNN_bfd_define_start_stop
+#define bfd_elfNN_bfd_define_start_stop bfd_elf_define_start_stop
+#endif
 #ifndef bfd_elfNN_bfd_final_link
 #define bfd_elfNN_bfd_final_link	bfd_elf_final_link
 #endif
@@ -283,6 +295,9 @@
 #ifndef bfd_elfNN_bfd_link_add_symbols
 #define bfd_elfNN_bfd_link_add_symbols	_bfd_generic_link_add_symbols
 #endif
+#ifndef bfd_elfNN_bfd_define_start_stop
+#define bfd_elfNN_bfd_define_start_stop bfd_generic_define_start_stop
+#endif
 #ifndef bfd_elfNN_bfd_final_link
 #define bfd_elfNN_bfd_final_link	_bfd_generic_final_link
 #endif
@@ -585,6 +600,9 @@
 #ifndef elf_backend_grok_psinfo
 #define elf_backend_grok_psinfo			NULL
 #endif
+#ifndef elf_backend_grok_freebsd_prstatus
+#define elf_backend_grok_freebsd_prstatus	NULL
+#endif
 #ifndef elf_backend_write_core_note
 #define elf_backend_write_core_note		NULL
 #endif
@@ -715,7 +733,7 @@
 #endif
 
 #ifndef elf_backend_get_reloc_section
-#define elf_backend_get_reloc_section _bfd_elf_get_reloc_section
+#define elf_backend_get_reloc_section _bfd_elf_plt_get_reloc_section
 #endif
 
 #ifndef elf_backend_copy_special_section_fields
@@ -789,7 +807,6 @@ static struct elf_backend_data elfNN_bed
   elf_backend_gc_mark_dynamic_ref,
   elf_backend_gc_mark_hook,
   elf_backend_gc_mark_extra_sections,
-  elf_backend_gc_sweep_hook,
   elf_backend_post_process_headers,
   elf_backend_print_symbol_all,
   elf_backend_output_arch_local_syms,
@@ -808,6 +825,7 @@ static struct elf_backend_data elfNN_bed
   elf_backend_sort_relocs_p,
   elf_backend_grok_prstatus,
   elf_backend_grok_psinfo,
+  elf_backend_grok_freebsd_prstatus,
   elf_backend_write_core_note,
   elf_backend_lookup_section_flags_hook,
   elf_backend_reloc_type_class,
@@ -878,7 +896,10 @@ static struct elf_backend_data elfNN_bed
   elf_backend_no_page_alias,
   elf_backend_default_execstack,
   elf_backend_caches_rawsize,
-  elf_backend_extern_protected_data
+  elf_backend_extern_protected_data,
+  elf_backend_always_renumber_dynsyms,
+  elf_backend_linux_prpsinfo32_ugid16,
+  elf_backend_linux_prpsinfo64_ugid16
 };
 
 /* Forward declaration for use when initialising alternative_target field.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-tilegx.c ./bfd/elfxx-tilegx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-tilegx.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfxx-tilegx.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* TILE-Gx-specific support for ELF.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -391,7 +391,7 @@ static reloc_howto_type tilegx_elf_howto
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 -1,			/* dst_mask */
-	 TRUE), 		/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   HOWTO (R_TILEGX_JUMPOFF_X1_PLT, /* type */
 	 TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES, /* rightshift */
@@ -405,17 +405,17 @@ static reloc_howto_type tilegx_elf_howto
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 -1,			/* dst_mask */
-	 TRUE), 		/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
 #define TILEGX_IMM_HOWTO(name, size, bitsize) \
   HOWTO (name, 0, size, bitsize, FALSE, 0, \
-         complain_overflow_signed, bfd_elf_generic_reloc, \
-         #name, FALSE, 0, -1, FALSE)
+	 complain_overflow_signed, bfd_elf_generic_reloc, \
+	 #name, FALSE, 0, -1, FALSE)
 
 #define TILEGX_UIMM_HOWTO(name, size, bitsize) \
   HOWTO (name, 0, size, bitsize, FALSE, 0, \
-         complain_overflow_unsigned, bfd_elf_generic_reloc, \
-         #name, FALSE, 0, -1, FALSE)
+	 complain_overflow_unsigned, bfd_elf_generic_reloc, \
+	 #name, FALSE, 0, -1, FALSE)
 
   TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X0, 0, 8),
   TILEGX_IMM_HOWTO(R_TILEGX_IMM8_Y0, 0, 8),
@@ -436,8 +436,8 @@ static reloc_howto_type tilegx_elf_howto
 
 #define TILEGX_IMM16_HOWTO(name, rshift) \
   HOWTO (name, rshift, 1, 16, FALSE, 0, \
-         complain_overflow_dont, bfd_elf_generic_reloc, \
-         #name, FALSE, 0, 0xffff, FALSE)
+	 complain_overflow_dont, bfd_elf_generic_reloc, \
+	 #name, FALSE, 0, 0xffff, FALSE)
 
   TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X0_HW0, 0),
   TILEGX_IMM16_HOWTO (R_TILEGX_IMM16_X1_HW0, 0),
@@ -450,8 +450,8 @@ static reloc_howto_type tilegx_elf_howto
 
 #define TILEGX_IMM16_HOWTO_LAST(name, rshift) \
   HOWTO (name, rshift, 1, 16, FALSE, 0, \
-         complain_overflow_signed, bfd_elf_generic_reloc, \
-         #name, FALSE, 0, 0xffff, FALSE)
+	 complain_overflow_signed, bfd_elf_generic_reloc, \
+	 #name, FALSE, 0, 0xffff, FALSE)
 
   TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X0_HW0_LAST, 0),
   TILEGX_IMM16_HOWTO_LAST (R_TILEGX_IMM16_X1_HW0_LAST, 0),
@@ -464,8 +464,8 @@ static reloc_howto_type tilegx_elf_howto
 
 #define TILEGX_IMM16_HOWTO_PCREL(name, rshift) \
   HOWTO (name, rshift, 1, 16, TRUE, 0, \
-         complain_overflow_dont, bfd_elf_generic_reloc, \
-         #name, FALSE, 0, 0xffff, TRUE)
+	 complain_overflow_dont, bfd_elf_generic_reloc, \
+	 #name, FALSE, 0, 0xffff, TRUE)
 
   TILEGX_IMM16_HOWTO_PCREL (R_TILEGX_IMM16_X0_HW0_PCREL, 0),
   TILEGX_IMM16_HOWTO_PCREL (R_TILEGX_IMM16_X1_HW0_PCREL, 0),
@@ -478,8 +478,8 @@ static reloc_howto_type tilegx_elf_howto
 
 #define TILEGX_IMM16_HOWTO_LAST_PCREL(name, rshift) \
   HOWTO (name, rshift, 1, 16, TRUE, 0, \
-         complain_overflow_signed, bfd_elf_generic_reloc, \
-         #name, FALSE, 0, 0xffff, TRUE)
+	 complain_overflow_signed, bfd_elf_generic_reloc, \
+	 #name, FALSE, 0, 0xffff, TRUE)
 
   TILEGX_IMM16_HOWTO_LAST_PCREL (R_TILEGX_IMM16_X0_HW0_LAST_PCREL,  0),
   TILEGX_IMM16_HOWTO_LAST_PCREL (R_TILEGX_IMM16_X1_HW0_LAST_PCREL,  0),
@@ -525,8 +525,8 @@ static reloc_howto_type tilegx_elf_howto
 
 #define TILEGX_IMM16_HOWTO_TLS_IE(name, rshift) \
   HOWTO (name, rshift, 1, 16, FALSE, 0, \
-         complain_overflow_dont, bfd_elf_generic_reloc, \
-         #name, FALSE, 0, 0xffff, TRUE)
+	 complain_overflow_dont, bfd_elf_generic_reloc, \
+	 #name, FALSE, 0, 0xffff, TRUE)
 
   TILEGX_IMM16_HOWTO_TLS_IE (R_TILEGX_IMM16_X0_HW0_TLS_IE, 0),
   TILEGX_IMM16_HOWTO_TLS_IE (R_TILEGX_IMM16_X1_HW0_TLS_IE, 0),
@@ -540,8 +540,8 @@ static reloc_howto_type tilegx_elf_howto
 
 #define TILEGX_IMM16_HOWTO_LAST_TLS_IE(name, rshift) \
   HOWTO (name, rshift, 1, 16, FALSE, 0, \
-         complain_overflow_signed, bfd_elf_generic_reloc, \
-         #name, FALSE, 0, 0xffff, TRUE)
+	 complain_overflow_signed, bfd_elf_generic_reloc, \
+	 #name, FALSE, 0, 0xffff, TRUE)
 
   TILEGX_IMM16_HOWTO_LAST_TLS_IE (R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE, 0),
   TILEGX_IMM16_HOWTO_LAST_TLS_IE (R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE, 0),
@@ -551,24 +551,24 @@ static reloc_howto_type tilegx_elf_howto
   EMPTY_HOWTO (105),
 
   HOWTO(R_TILEGX_TLS_DTPMOD64, 0, 0, 0, FALSE, 0, complain_overflow_dont,
-        bfd_elf_generic_reloc, "R_TILEGX_TLS_DTPMOD64",
-        FALSE, 0, 0, TRUE),
+	bfd_elf_generic_reloc, "R_TILEGX_TLS_DTPMOD64",
+	FALSE, 0, 0, TRUE),
   HOWTO(R_TILEGX_TLS_DTPOFF64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,
-        bfd_elf_generic_reloc, "R_TILEGX_TLS_DTPOFF64",
-        FALSE, 0, -1, TRUE),
+	bfd_elf_generic_reloc, "R_TILEGX_TLS_DTPOFF64",
+	FALSE, 0, -1, TRUE),
   HOWTO(R_TILEGX_TLS_TPOFF64, 0, 0, 0, FALSE, 0, complain_overflow_dont,
-        bfd_elf_generic_reloc, "R_TILEGX_TLS_TPOFF64",
-        FALSE, 0, 0, TRUE),
+	bfd_elf_generic_reloc, "R_TILEGX_TLS_TPOFF64",
+	FALSE, 0, 0, TRUE),
 
   HOWTO(R_TILEGX_TLS_DTPMOD32, 0, 0, 0, FALSE, 0, complain_overflow_dont,
-        bfd_elf_generic_reloc, "R_TILEGX_TLS_DTPMOD32",
-        FALSE, 0, 0, TRUE),
+	bfd_elf_generic_reloc, "R_TILEGX_TLS_DTPMOD32",
+	FALSE, 0, 0, TRUE),
   HOWTO(R_TILEGX_TLS_DTPOFF32, 0, 4, 32, FALSE, 0, complain_overflow_bitfield,
-        bfd_elf_generic_reloc, "R_TILEGX_TLS_DTPOFF32",
-        FALSE, 0, -1, TRUE),
+	bfd_elf_generic_reloc, "R_TILEGX_TLS_DTPOFF32",
+	FALSE, 0, -1, TRUE),
   HOWTO(R_TILEGX_TLS_TPOFF32, 0, 0, 0, FALSE, 0, complain_overflow_dont,
-        bfd_elf_generic_reloc, "R_TILEGX_TLS_TPOFF32",
-        FALSE, 0, 0, TRUE),
+	bfd_elf_generic_reloc, "R_TILEGX_TLS_TPOFF32",
+	FALSE, 0, 0, TRUE),
 
   HOWTO (R_TILEGX_TLS_GD_CALL, /* type */
 	 TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES, /* rightshift */
@@ -582,7 +582,7 @@ static reloc_howto_type tilegx_elf_howto
 	 FALSE,			/* partial_inplace */
 	 0,			/* src_mask */
 	 -1,			/* dst_mask */
-	 TRUE), 		/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
 
   TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X0_TLS_GD_ADD,  0,  8),
   TILEGX_IMM_HOWTO(R_TILEGX_IMM8_X1_TLS_GD_ADD,  0,  8),
@@ -599,33 +599,33 @@ static reloc_howto_type tilegx_elf_howto
 {
   /* GNU extension to record C++ vtable hierarchy */
   HOWTO (R_TILEGX_GNU_VTINHERIT, /* type */
-         0,                     /* rightshift */
-         4,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         NULL,                  /* special_function */
-         "R_TILEGX_GNU_VTINHERIT", /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+	 0,			/* rightshift */
+	 4,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 NULL,			/* special_function */
+	 "R_TILEGX_GNU_VTINHERIT", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   /* GNU extension to record C++ vtable member usage */
-  HOWTO (R_TILEGX_GNU_VTENTRY,     /* type */
-         0,                     /* rightshift */
-         4,                     /* size (0 = byte, 1 = short, 2 = long) */
-         0,                     /* bitsize */
-         FALSE,                 /* pc_relative */
-         0,                     /* bitpos */
-         complain_overflow_dont, /* complain_on_overflow */
-         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
-         "R_TILEGX_GNU_VTENTRY",   /* name */
-         FALSE,                 /* partial_inplace */
-         0,                     /* src_mask */
-         0,                     /* dst_mask */
-         FALSE),                /* pcrel_offset */
+  HOWTO (R_TILEGX_GNU_VTENTRY,	   /* type */
+	 0,			/* rightshift */
+	 4,			/* size (0 = byte, 1 = short, 2 = long) */
+	 0,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 _bfd_elf_rel_vtable_reloc_fn,	/* special_function */
+	 "R_TILEGX_GNU_VTENTRY",   /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0,			/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
 };
 
@@ -634,8 +634,8 @@ static reloc_howto_type tilegx_elf_howto
 typedef struct tilegx_reloc_map
 {
   bfd_reloc_code_real_type  bfd_reloc_val;
-  unsigned int              tilegx_reloc_val;
-  reloc_howto_type *        table;
+  unsigned int		    tilegx_reloc_val;
+  reloc_howto_type *	    table;
 } reloc_map;
 
 static const reloc_map tilegx_reloc_map [] =
@@ -644,15 +644,15 @@ static const reloc_map tilegx_reloc_map 
   { bfd, tilegx, tilegx_elf_howto_table },
 
   /* Standard relocations. */
-  TH_REMAP (BFD_RELOC_NONE,                    R_TILEGX_NONE)
-  TH_REMAP (BFD_RELOC_64,                      R_TILEGX_64)
-  TH_REMAP (BFD_RELOC_32,                      R_TILEGX_32)
-  TH_REMAP (BFD_RELOC_16,                      R_TILEGX_16)
-  TH_REMAP (BFD_RELOC_8,                       R_TILEGX_8)
-  TH_REMAP (BFD_RELOC_64_PCREL,                R_TILEGX_64_PCREL)
-  TH_REMAP (BFD_RELOC_32_PCREL,                R_TILEGX_32_PCREL)
-  TH_REMAP (BFD_RELOC_16_PCREL,                R_TILEGX_16_PCREL)
-  TH_REMAP (BFD_RELOC_8_PCREL,                 R_TILEGX_8_PCREL)
+  TH_REMAP (BFD_RELOC_NONE,		       R_TILEGX_NONE)
+  TH_REMAP (BFD_RELOC_64,		       R_TILEGX_64)
+  TH_REMAP (BFD_RELOC_32,		       R_TILEGX_32)
+  TH_REMAP (BFD_RELOC_16,		       R_TILEGX_16)
+  TH_REMAP (BFD_RELOC_8,		       R_TILEGX_8)
+  TH_REMAP (BFD_RELOC_64_PCREL,		       R_TILEGX_64_PCREL)
+  TH_REMAP (BFD_RELOC_32_PCREL,		       R_TILEGX_32_PCREL)
+  TH_REMAP (BFD_RELOC_16_PCREL,		       R_TILEGX_16_PCREL)
+  TH_REMAP (BFD_RELOC_8_PCREL,		       R_TILEGX_8_PCREL)
 
 #define SIMPLE_REMAP(t) TH_REMAP (BFD_RELOC_##t, R_##t)
 
@@ -773,32 +773,12 @@ static const reloc_map tilegx_reloc_map 
 #undef SIMPLE_REMAP
 #undef TH_REMAP
 
-  { BFD_RELOC_VTABLE_INHERIT,       R_TILEGX_GNU_VTINHERIT, tilegx_elf_howto_table2 },
-  { BFD_RELOC_VTABLE_ENTRY,         R_TILEGX_GNU_VTENTRY,   tilegx_elf_howto_table2 },
+  { BFD_RELOC_VTABLE_INHERIT,	    R_TILEGX_GNU_VTINHERIT, tilegx_elf_howto_table2 },
+  { BFD_RELOC_VTABLE_ENTRY,	    R_TILEGX_GNU_VTENTRY,   tilegx_elf_howto_table2 },
 };
 
 
 
-/* The TILE-Gx linker needs to keep track of the number of relocs that it
-   decides to copy as dynamic relocs in check_relocs for each symbol.
-   This is so that it can later discard them if they are found to be
-   unnecessary.  We store the information in a field extending the
-   regular ELF linker hash table.  */
-
-struct tilegx_elf_dyn_relocs
-{
-  struct tilegx_elf_dyn_relocs *next;
-
-  /* The input section of the reloc.  */
-  asection *sec;
-
-  /* Total number of relocs copied for the input section.  */
-  bfd_size_type count;
-
-  /* Number of pc-relative relocs copied for the input section.  */
-  bfd_size_type pc_count;
-};
-
 /* TILEGX ELF linker hash entry.  */
 
 struct tilegx_elf_link_hash_entry
@@ -806,7 +786,7 @@ struct tilegx_elf_link_hash_entry
   struct elf_link_hash_entry elf;
 
   /* Track dynamic relocs copied for this symbol.  */
-  struct tilegx_elf_dyn_relocs *dyn_relocs;
+  struct elf_dyn_relocs *dyn_relocs;
 
 #define GOT_UNKNOWN     0
 #define GOT_NORMAL      1
@@ -939,10 +919,10 @@ tilegx_reloc_name_lookup (bfd *abfd ATTR
 
   for (i = 0;
        i < (sizeof (tilegx_elf_howto_table)
-            / sizeof (tilegx_elf_howto_table[0]));
+	    / sizeof (tilegx_elf_howto_table[0]));
        i++)
     if (tilegx_elf_howto_table[i].name != NULL
-        && strcasecmp (tilegx_elf_howto_table[i].name, r_name) == 0)
+	&& strcasecmp (tilegx_elf_howto_table[i].name, r_name) == 0)
       return &tilegx_elf_howto_table[i];
 
   return NULL;
@@ -1093,36 +1073,36 @@ tilegx_elf_append_rela (bfd *abfd, asect
 
 /* The procedure linkage table starts with the following header:
 
-     ld_add       r28, r27, 8
-     ld           r27, r27
+     ld_add	  r28, r27, 8
+     ld		  r27, r27
    {
-     jr           r27
-     info         10            ## SP not offset, return PC in LR
+     jr		  r27
+     info	  10		## SP not offset, return PC in LR
    }
 
    Subsequent entries are the following, jumping to the header at the end:
 
    {
-     moveli       r28, <_GLOBAL_OFFSET_TABLE_ - 1f + MY_GOT_OFFSET>
-     lnk          r26
+     moveli	  r28, <_GLOBAL_OFFSET_TABLE_ - 1f + MY_GOT_OFFSET>
+     lnk	  r26
    }
 1:
    {
-     moveli       r27, <_GLOBAL_OFFSET_TABLE_ - 1b>
-     shl16insli   r28, r28, <_GLOBAL_OFFSET_TABLE_ - 1b + MY_GOT_OFFSET>
+     moveli	  r27, <_GLOBAL_OFFSET_TABLE_ - 1b>
+     shl16insli	  r28, r28, <_GLOBAL_OFFSET_TABLE_ - 1b + MY_GOT_OFFSET>
    }
    {
-     add          r28, r26, r28
-     shl16insli   r27, r27, <_GLOBAL_OFFSET_TABLE_ - 1b>
+     add	  r28, r26, r28
+     shl16insli	  r27, r27, <_GLOBAL_OFFSET_TABLE_ - 1b>
    }
    {
-     add          r27, r26, r27
-     ld           r28, r28
-     info         10       ## SP not offset, return PC in LR
+     add	  r27, r26, r27
+     ld		  r28, r28
+     info	  10	   ## SP not offset, return PC in LR
    }
    {
-     shl16insli   r29, zero, MY_PLT_INDEX
-     jr           r28
+     shl16insli	  r29, zero, MY_PLT_INDEX
+     jr		  r28
    }
 
    This code sequence lets the code at at the start of the PLT determine
@@ -1133,26 +1113,26 @@ tilegx_elf_append_rela (bfd *abfd, asect
 
    If the offset fits in 16 bits,
 
-     lnk          r26
+     lnk	  r26
 1:
    {
-     addli        r28, r26, <_GLOBAL_OFFSET_TABLE_ - 1b + MY_GOT_OFFSET>
-     moveli       r27, <_GLOBAL_OFFSET_TABLE_ - 1b>
+     addli	  r28, r26, <_GLOBAL_OFFSET_TABLE_ - 1b + MY_GOT_OFFSET>
+     moveli	  r27, <_GLOBAL_OFFSET_TABLE_ - 1b>
    }
    {
-     shl16insli   r29, zero, MY_PLT_INDEX
-     ld           r28, r28
+     shl16insli	  r29, zero, MY_PLT_INDEX
+     ld		  r28, r28
    }
    {
-     add          r27, r26, r27
-     jr           r28
+     add	  r27, r26, r27
+     jr		  r28
    }
-     info         10       ## SP not offset, return PC in LR
+     info	  10	   ## SP not offset, return PC in LR
 
    For the purpose of backtracing, the procedure linkage table ends with the
    following tail entry:
 
-     info         10       ## SP not offset, return PC in LR
+     info	  10	   ## SP not offset, return PC in LR
 
    The 32-bit versions are similar, with ld4s replacing ld, and offsets into
    the GOT being multiples of 4 instead of 8.
@@ -1351,8 +1331,8 @@ link_hash_newfunc (struct bfd_hash_entry
   if (entry == NULL)
     {
       entry =
-        bfd_hash_allocate (table,
-                           sizeof (struct tilegx_elf_link_hash_entry));
+	bfd_hash_allocate (table,
+			   sizeof (struct tilegx_elf_link_hash_entry));
       if (entry == NULL)
 	return entry;
     }
@@ -1518,14 +1498,14 @@ tilegx_elf_copy_indirect_symbol (struct 
     {
       if (edir->dyn_relocs != NULL)
 	{
-	  struct tilegx_elf_dyn_relocs **pp;
-	  struct tilegx_elf_dyn_relocs *p;
+	  struct elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs *p;
 
 	  /* Add reloc counts against the indirect sym to the direct sym
 	     list.  Merge any entries against the same section.  */
 	  for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
 	    {
-	      struct tilegx_elf_dyn_relocs *q;
+	      struct elf_dyn_relocs *q;
 
 	      for (q = edir->dyn_relocs; q != NULL; q = q->next)
 		if (q->sec == p->sec)
@@ -1622,7 +1602,7 @@ static int
 tilegx_elf_tls_transition (struct bfd_link_info *info, int r_type,
 			   int is_local, bfd_boolean disable_le_transition)
 {
-  if (bfd_link_pic (info))
+  if (!bfd_link_executable (info))
     return r_type;
 
   if (is_local && !disable_le_transition)
@@ -1695,7 +1675,7 @@ tilegx_elf_check_relocs (bfd *abfd, stru
   for (rel = relocs; rel < rel_end; rel++)
     {
       unsigned int r_type;
-      unsigned long r_symndx;
+      unsigned int r_symndx;
       struct elf_link_hash_entry *h;
       int tls_type;
 
@@ -1718,10 +1698,6 @@ tilegx_elf_check_relocs (bfd *abfd, stru
 	  while (h->root.type == bfd_link_hash_indirect
 		 || h->root.type == bfd_link_hash_warning)
 	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
-	  /* PR15323, ref flags aren't set for references in the same
-	     object.  */
-	  h->root.non_ir_ref = 1;
 	}
 
       r_type = tilegx_elf_tls_transition (info, r_type, h == NULL,
@@ -1734,7 +1710,7 @@ tilegx_elf_check_relocs (bfd *abfd, stru
 	case R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE:
 	case R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE:
 	case R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE:
-	  if (bfd_link_pic (info))
+	  if (!bfd_link_executable (info))
 	    goto r_tilegx_plt32;
 	  break;
 
@@ -1746,7 +1722,7 @@ tilegx_elf_check_relocs (bfd *abfd, stru
 	case R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
 	  BFD_ASSERT (bfd_link_pic (info));
 	  tls_type = GOT_TLS_GD;
-          goto have_got_reference;
+	  goto have_got_reference;
 
 	case R_TILEGX_IMM16_X0_HW0_TLS_IE:
 	case R_TILEGX_IMM16_X1_HW0_TLS_IE:
@@ -1754,10 +1730,10 @@ tilegx_elf_check_relocs (bfd *abfd, stru
 	case R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
 	case R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
 	case R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
-          tls_type = GOT_TLS_IE;
-          if (bfd_link_pic (info))
-            info->flags |= DF_STATIC_TLS;
-          goto have_got_reference;
+	  tls_type = GOT_TLS_IE;
+	  if (!bfd_link_executable (info))
+	    info->flags |= DF_STATIC_TLS;
+	  goto have_got_reference;
 
 	case R_TILEGX_IMM16_X0_HW0_GOT:
 	case R_TILEGX_IMM16_X1_HW0_GOT:
@@ -1765,13 +1741,13 @@ tilegx_elf_check_relocs (bfd *abfd, stru
 	case R_TILEGX_IMM16_X1_HW0_LAST_GOT:
 	case R_TILEGX_IMM16_X0_HW1_LAST_GOT:
 	case R_TILEGX_IMM16_X1_HW1_LAST_GOT:
-          tls_type = GOT_NORMAL;
-          /* Fall Through */
+	  tls_type = GOT_NORMAL;
+	  /* Fall Through */
 
-        have_got_reference:
+	have_got_reference:
 	  /* This symbol requires a global offset table entry.  */
 	  {
-            int old_tls_type;
+	    int old_tls_type;
 
 	    if (h != NULL)
 	      {
@@ -1795,37 +1771,37 @@ tilegx_elf_check_relocs (bfd *abfd, stru
 		    if (local_got_refcounts == NULL)
 		      return FALSE;
 		    elf_local_got_refcounts (abfd) = local_got_refcounts;
-                    _bfd_tilegx_elf_local_got_tls_type (abfd)
-                      = (char *) (local_got_refcounts + symtab_hdr->sh_info);
+		    _bfd_tilegx_elf_local_got_tls_type (abfd)
+		      = (char *) (local_got_refcounts + symtab_hdr->sh_info);
 		  }
 		local_got_refcounts[r_symndx] += 1;
-                old_tls_type = _bfd_tilegx_elf_local_got_tls_type (abfd) [r_symndx];
-              }
+		old_tls_type = _bfd_tilegx_elf_local_got_tls_type (abfd) [r_symndx];
+	      }
 
-            /* If a TLS symbol is accessed using IE at least once,
-               there is no point to use dynamic model for it.  */
-            if (old_tls_type != tls_type && old_tls_type != GOT_UNKNOWN
-                && (old_tls_type != GOT_TLS_GD
-                    || tls_type != GOT_TLS_IE))
-              {
-                if (old_tls_type == GOT_TLS_IE && tls_type == GOT_TLS_GD)
-                  tls_type = old_tls_type;
-                else
-                  {
+	    /* If a TLS symbol is accessed using IE at least once,
+	       there is no point to use dynamic model for it.  */
+	    if (old_tls_type != tls_type && old_tls_type != GOT_UNKNOWN
+		&& (old_tls_type != GOT_TLS_GD
+		    || tls_type != GOT_TLS_IE))
+	      {
+		if (old_tls_type == GOT_TLS_IE && tls_type == GOT_TLS_GD)
+		  tls_type = old_tls_type;
+		else
+		  {
 		    _bfd_error_handler
 		      /* xgettext:c-format */
-                      (_("%B: `%s' accessed both as normal and thread local symbol"),
-                       abfd, h ? h->root.root.string : "<local>");
-                    return FALSE;
-                  }
-              }
-
-            if (old_tls_type != tls_type)
-              {
-                if (h != NULL)
-                  tilegx_elf_hash_entry (h)->tls_type = tls_type;
-                else
-                  _bfd_tilegx_elf_local_got_tls_type (abfd) [r_symndx] = tls_type;
+		      (_("%B: `%s' accessed both as normal and thread local symbol"),
+		       abfd, h ? h->root.root.string : "<local>");
+		    return FALSE;
+		  }
+	      }
+
+	    if (old_tls_type != tls_type)
+	      {
+		if (h != NULL)
+		  tilegx_elf_hash_entry (h)->tls_type = tls_type;
+		else
+		  _bfd_tilegx_elf_local_got_tls_type (abfd) [r_symndx] = tls_type;
 	      }
 	  }
 
@@ -1837,7 +1813,7 @@ tilegx_elf_check_relocs (bfd *abfd, stru
 	  break;
 
 	case R_TILEGX_TLS_GD_CALL:
-	  if (bfd_link_pic (info))
+	  if (!bfd_link_executable (info))
 	    {
 	      /* These are basically R_TILEGX_JUMPOFF_X1_PLT relocs
 		 against __tls_get_addr.  */
@@ -1854,7 +1830,7 @@ tilegx_elf_check_relocs (bfd *abfd, stru
 	    break;
 	  /* Fall through */
 
-        case R_TILEGX_JUMPOFF_X1_PLT:
+	case R_TILEGX_JUMPOFF_X1_PLT:
 	case R_TILEGX_IMM16_X0_HW0_PLT_PCREL:
 	case R_TILEGX_IMM16_X1_HW0_PLT_PCREL:
 	case R_TILEGX_IMM16_X0_HW1_PLT_PCREL:
@@ -1876,16 +1852,16 @@ tilegx_elf_check_relocs (bfd *abfd, stru
 	     need to generate a procedure linkage table after all.  */
 
 	  if (h != NULL)
-            {
-              h->needs_plt = 1;
-              h->plt.refcount += 1;
-            }
+	    {
+	      h->needs_plt = 1;
+	      h->plt.refcount += 1;
+	    }
 	  break;
 
-        case R_TILEGX_64_PCREL:
-        case R_TILEGX_32_PCREL:
-        case R_TILEGX_16_PCREL:
-        case R_TILEGX_8_PCREL:
+	case R_TILEGX_64_PCREL:
+	case R_TILEGX_32_PCREL:
+	case R_TILEGX_16_PCREL:
+	case R_TILEGX_8_PCREL:
 	case R_TILEGX_IMM16_X0_HW0_PCREL:
 	case R_TILEGX_IMM16_X1_HW0_PCREL:
 	case R_TILEGX_IMM16_X0_HW1_PCREL:
@@ -1908,10 +1884,10 @@ tilegx_elf_check_relocs (bfd *abfd, stru
 	    break;
 	  /* Fall through.  */
 
-        case R_TILEGX_64:
-        case R_TILEGX_32:
-        case R_TILEGX_16:
-        case R_TILEGX_8:
+	case R_TILEGX_64:
+	case R_TILEGX_32:
+	case R_TILEGX_16:
+	case R_TILEGX_8:
 	case R_TILEGX_HW0:
 	case R_TILEGX_HW1:
 	case R_TILEGX_HW2:
@@ -1919,25 +1895,25 @@ tilegx_elf_check_relocs (bfd *abfd, stru
 	case R_TILEGX_HW0_LAST:
 	case R_TILEGX_HW1_LAST:
 	case R_TILEGX_HW2_LAST:
-        case R_TILEGX_COPY:
-        case R_TILEGX_GLOB_DAT:
-        case R_TILEGX_JMP_SLOT:
-        case R_TILEGX_RELATIVE:
-        case R_TILEGX_BROFF_X1:
-        case R_TILEGX_JUMPOFF_X1:
-        case R_TILEGX_IMM8_X0:
-        case R_TILEGX_IMM8_Y0:
-        case R_TILEGX_IMM8_X1:
-        case R_TILEGX_IMM8_Y1:
-        case R_TILEGX_DEST_IMM8_X1:
-        case R_TILEGX_MT_IMM14_X1:
-        case R_TILEGX_MF_IMM14_X1:
-        case R_TILEGX_MMSTART_X0:
-        case R_TILEGX_MMEND_X0:
-        case R_TILEGX_SHAMT_X0:
-        case R_TILEGX_SHAMT_X1:
-        case R_TILEGX_SHAMT_Y0:
-        case R_TILEGX_SHAMT_Y1:
+	case R_TILEGX_COPY:
+	case R_TILEGX_GLOB_DAT:
+	case R_TILEGX_JMP_SLOT:
+	case R_TILEGX_RELATIVE:
+	case R_TILEGX_BROFF_X1:
+	case R_TILEGX_JUMPOFF_X1:
+	case R_TILEGX_IMM8_X0:
+	case R_TILEGX_IMM8_Y0:
+	case R_TILEGX_IMM8_X1:
+	case R_TILEGX_IMM8_Y1:
+	case R_TILEGX_DEST_IMM8_X1:
+	case R_TILEGX_MT_IMM14_X1:
+	case R_TILEGX_MF_IMM14_X1:
+	case R_TILEGX_MMSTART_X0:
+	case R_TILEGX_MMEND_X0:
+	case R_TILEGX_SHAMT_X0:
+	case R_TILEGX_SHAMT_X1:
+	case R_TILEGX_SHAMT_Y0:
+	case R_TILEGX_SHAMT_Y1:
 	case R_TILEGX_IMM16_X0_HW0:
 	case R_TILEGX_IMM16_X1_HW0:
 	case R_TILEGX_IMM16_X0_HW1:
@@ -1997,8 +1973,8 @@ tilegx_elf_check_relocs (bfd *abfd, stru
 		  && (h->root.type == bfd_link_hash_defweak
 		      || !h->def_regular)))
 	    {
-	      struct tilegx_elf_dyn_relocs *p;
-	      struct tilegx_elf_dyn_relocs **head;
+	      struct elf_dyn_relocs *p;
+	      struct elf_dyn_relocs **head;
 
 	      /* When creating a shared object, we must copy these
 		 relocs into the output file.  We create a reloc
@@ -2017,7 +1993,7 @@ tilegx_elf_check_relocs (bfd *abfd, stru
 		 relocations we need for this symbol.  */
 	      if (h != NULL)
 		head =
-                  &((struct tilegx_elf_link_hash_entry *) h)->dyn_relocs;
+		  &((struct tilegx_elf_link_hash_entry *) h)->dyn_relocs;
 	      else
 		{
 		  /* Track dynamic relocs needed for local syms too.
@@ -2038,14 +2014,14 @@ tilegx_elf_check_relocs (bfd *abfd, stru
 		    s = sec;
 
 		  vpp = &elf_section_data (s)->local_dynrel;
-		  head = (struct tilegx_elf_dyn_relocs **) vpp;
+		  head = (struct elf_dyn_relocs **) vpp;
 		}
 
 	      p = *head;
 	      if (p == NULL || p->sec != sec)
 		{
 		  bfd_size_type amt = sizeof *p;
-		  p = ((struct tilegx_elf_dyn_relocs *)
+		  p = ((struct elf_dyn_relocs *)
 		       bfd_alloc (htab->elf.dynobj, amt));
 		  if (p == NULL)
 		    return FALSE;
@@ -2103,6 +2079,8 @@ tilegx_elf_gc_mark_hook (asection *sec,
      dealing with TLS optimization, ought to be !bfd_link_executable (info).  */
   if (bfd_link_pic (info))
     {
+      struct bfd_link_hash_entry *bh;
+
       switch (TILEGX_ELF_R_TYPE (rel->r_info))
 	{
 	case R_TILEGX_TLS_GD_CALL:
@@ -2111,12 +2089,18 @@ tilegx_elf_gc_mark_hook (asection *sec,
 	     on this reloc, so the real symbol and section will be
 	     gc marked when processing the other reloc.  That lets
 	     us handle __tls_get_addr here.  */
-	  h = elf_link_hash_lookup (elf_hash_table (info), "__tls_get_addr",
-				    FALSE, FALSE, TRUE);
+	  bh = NULL;
+	  if (! _bfd_generic_link_add_one_symbol (info, sec->owner,
+						  "__tls_get_addr", 0,
+						  bfd_und_section_ptr,
+						  0, NULL, FALSE,
+						  FALSE, &bh))
+	    return NULL;
+	  h = (struct elf_link_hash_entry *) bh;
 	  BFD_ASSERT (h != NULL);
 	  h->mark = 1;
-	  if (h->u.weakdef != NULL)
-	    h->u.weakdef->mark = 1;
+	  if (h->is_weakalias)
+	    weakdef (h)->mark = 1;
 	  sym = NULL;
 	}
     }
@@ -2124,193 +2108,21 @@ tilegx_elf_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
-/* Update the got entry reference counts for the section being removed.  */
-bfd_boolean
-tilegx_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
-			  asection *sec, const Elf_Internal_Rela *relocs)
-{
-  struct tilegx_elf_link_hash_table *htab;
-  Elf_Internal_Shdr *symtab_hdr;
-  struct elf_link_hash_entry **sym_hashes;
-  bfd_signed_vma *local_got_refcounts;
-  const Elf_Internal_Rela *rel, *relend;
-
-  if (bfd_link_relocatable (info))
-    return TRUE;
-
-  BFD_ASSERT (is_tilegx_elf (abfd) || sec->reloc_count == 0);
+/* Find dynamic relocs for H that apply to read-only sections.  */
 
-  elf_section_data (sec)->local_dynrel = NULL;
-
-  htab = tilegx_elf_hash_table (info);
-  BFD_ASSERT (htab != NULL);
-  symtab_hdr = &elf_symtab_hdr (abfd);
-  sym_hashes = elf_sym_hashes (abfd);
-  local_got_refcounts = elf_local_got_refcounts (abfd);
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
 
-  relend = relocs + sec->reloc_count;
-  for (rel = relocs; rel < relend; rel++)
+  for (p = tilegx_elf_hash_entry (h)->dyn_relocs; p != NULL; p = p->next)
     {
-      unsigned long r_symndx;
-      unsigned int r_type;
-      struct elf_link_hash_entry *h = NULL;
-
-      r_symndx = TILEGX_ELF_R_SYMNDX (htab, rel->r_info);
-      if (r_symndx >= symtab_hdr->sh_info)
-	{
-	  struct tilegx_elf_link_hash_entry *eh;
-	  struct tilegx_elf_dyn_relocs **pp;
-	  struct tilegx_elf_dyn_relocs *p;
-
-	  h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-	  while (h->root.type == bfd_link_hash_indirect
-		 || h->root.type == bfd_link_hash_warning)
-	    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-	  eh = (struct tilegx_elf_link_hash_entry *) h;
-	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next)
-	    if (p->sec == sec)
-	      {
-		/* Everything must go for SEC.  */
-		*pp = p->next;
-		break;
-	      }
-	}
-
-      r_type = TILEGX_ELF_R_TYPE (rel->r_info);
-      r_type = tilegx_elf_tls_transition (info, r_type, h != NULL,
-					  sec->sec_flg0);
-      switch (r_type)
-	{
-	case R_TILEGX_IMM16_X0_HW0_GOT:
-	case R_TILEGX_IMM16_X1_HW0_GOT:
-	case R_TILEGX_IMM16_X0_HW0_LAST_GOT:
-	case R_TILEGX_IMM16_X1_HW0_LAST_GOT:
-	case R_TILEGX_IMM16_X0_HW1_LAST_GOT:
-	case R_TILEGX_IMM16_X1_HW1_LAST_GOT:
-	case R_TILEGX_IMM16_X0_HW0_TLS_GD:
-	case R_TILEGX_IMM16_X1_HW0_TLS_GD:
-	case R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
-	case R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
-	case R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
-	case R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
-	case R_TILEGX_IMM16_X0_HW0_TLS_IE:
-	case R_TILEGX_IMM16_X1_HW0_TLS_IE:
-	case R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
-	case R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
-	case R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
-	case R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
-	  if (h != NULL)
-	    {
-	      if (h->got.refcount > 0)
-		h->got.refcount--;
-	    }
-	  else
-	    {
-	      if (local_got_refcounts &&
-		  local_got_refcounts[r_symndx] > 0)
-		local_got_refcounts[r_symndx]--;
-	    }
-	  break;
-
-        case R_TILEGX_64_PCREL:
-        case R_TILEGX_32_PCREL:
-        case R_TILEGX_16_PCREL:
-        case R_TILEGX_8_PCREL:
-	case R_TILEGX_IMM16_X0_HW0_PCREL:
-	case R_TILEGX_IMM16_X1_HW0_PCREL:
-	case R_TILEGX_IMM16_X0_HW1_PCREL:
-	case R_TILEGX_IMM16_X1_HW1_PCREL:
-	case R_TILEGX_IMM16_X0_HW2_PCREL:
-	case R_TILEGX_IMM16_X1_HW2_PCREL:
-	case R_TILEGX_IMM16_X0_HW3_PCREL:
-	case R_TILEGX_IMM16_X1_HW3_PCREL:
-	case R_TILEGX_IMM16_X0_HW0_LAST_PCREL:
-	case R_TILEGX_IMM16_X1_HW0_LAST_PCREL:
-	case R_TILEGX_IMM16_X0_HW1_LAST_PCREL:
-	case R_TILEGX_IMM16_X1_HW1_LAST_PCREL:
-	case R_TILEGX_IMM16_X0_HW2_LAST_PCREL:
-	case R_TILEGX_IMM16_X1_HW2_LAST_PCREL:
-	  if (h != NULL
-	      && strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
-	    break;
-	  /* Fall through.  */
-
-        case R_TILEGX_64:
-        case R_TILEGX_32:
-        case R_TILEGX_16:
-        case R_TILEGX_8:
-	case R_TILEGX_HW0:
-	case R_TILEGX_HW1:
-	case R_TILEGX_HW2:
-	case R_TILEGX_HW3:
-	case R_TILEGX_HW0_LAST:
-	case R_TILEGX_HW1_LAST:
-	case R_TILEGX_HW2_LAST:
-        case R_TILEGX_COPY:
-        case R_TILEGX_GLOB_DAT:
-        case R_TILEGX_JMP_SLOT:
-        case R_TILEGX_RELATIVE:
-        case R_TILEGX_BROFF_X1:
-        case R_TILEGX_JUMPOFF_X1:
-        case R_TILEGX_IMM8_X0:
-        case R_TILEGX_IMM8_Y0:
-        case R_TILEGX_IMM8_X1:
-        case R_TILEGX_IMM8_Y1:
-        case R_TILEGX_DEST_IMM8_X1:
-        case R_TILEGX_MT_IMM14_X1:
-        case R_TILEGX_MF_IMM14_X1:
-        case R_TILEGX_MMSTART_X0:
-        case R_TILEGX_MMEND_X0:
-        case R_TILEGX_SHAMT_X0:
-        case R_TILEGX_SHAMT_X1:
-        case R_TILEGX_SHAMT_Y0:
-        case R_TILEGX_SHAMT_Y1:
-	case R_TILEGX_IMM16_X0_HW0:
-	case R_TILEGX_IMM16_X1_HW0:
-	case R_TILEGX_IMM16_X0_HW1:
-	case R_TILEGX_IMM16_X1_HW1:
-	case R_TILEGX_IMM16_X0_HW2:
-	case R_TILEGX_IMM16_X1_HW2:
-	case R_TILEGX_IMM16_X0_HW3:
-	case R_TILEGX_IMM16_X1_HW3:
-	case R_TILEGX_IMM16_X0_HW0_LAST:
-	case R_TILEGX_IMM16_X1_HW0_LAST:
-	case R_TILEGX_IMM16_X0_HW1_LAST:
-	case R_TILEGX_IMM16_X1_HW1_LAST:
-	case R_TILEGX_IMM16_X0_HW2_LAST:
-	case R_TILEGX_IMM16_X1_HW2_LAST:
-	  if (bfd_link_pic (info))
-	    break;
-	  /* Fall through.  */
-
-        case R_TILEGX_JUMPOFF_X1_PLT:
-	case R_TILEGX_IMM16_X0_HW0_PLT_PCREL:
-	case R_TILEGX_IMM16_X1_HW0_PLT_PCREL:
-	case R_TILEGX_IMM16_X0_HW1_PLT_PCREL:
-	case R_TILEGX_IMM16_X1_HW1_PLT_PCREL:
-	case R_TILEGX_IMM16_X0_HW2_PLT_PCREL:
-	case R_TILEGX_IMM16_X1_HW2_PLT_PCREL:
-	case R_TILEGX_IMM16_X0_HW3_PLT_PCREL:
-	case R_TILEGX_IMM16_X1_HW3_PLT_PCREL:
-	case R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL:
-	case R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL:
-	case R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL:
-	case R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL:
-	case R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL:
-	case R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL:
-	  if (h != NULL)
-	    {
-	      if (h->plt.refcount > 0)
-		h->plt.refcount--;
-	    }
-	  break;
+      asection *s = p->sec->output_section;
 
-	default:
-	  break;
-	}
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
     }
-
-  return TRUE;
+  return NULL;
 }
 
 /* Adjust a symbol defined by a dynamic object and referenced by a
@@ -2324,8 +2136,6 @@ tilegx_elf_adjust_dynamic_symbol (struct
 				  struct elf_link_hash_entry *h)
 {
   struct tilegx_elf_link_hash_table *htab;
-  struct tilegx_elf_link_hash_entry * eh;
-  struct tilegx_elf_dyn_relocs *p;
   bfd *dynobj;
   asection *s, *srel;
 
@@ -2337,7 +2147,7 @@ tilegx_elf_adjust_dynamic_symbol (struct
   /* Make sure we know what is going on here.  */
   BFD_ASSERT (dynobj != NULL
 	      && (h->needs_plt
-		  || h->u.weakdef != NULL
+		  || h->is_weakalias
 		  || (h->def_dynamic
 		      && h->ref_regular
 		      && !h->def_regular)));
@@ -2353,11 +2163,11 @@ tilegx_elf_adjust_dynamic_symbol (struct
 	      && h->root.type == bfd_link_hash_undefweak))
 	{
 	  /* This case can occur if we saw a R_TILEGX_JUMPOFF_X1_PLT
-             reloc in an input file, but the symbol was never referred
-             to by a dynamic object, or if all references were garbage
-             collected.  In such a case, we don't actually need to build
-             a procedure linkage table, and we can just do a
-             R_TILEGX_JUMPOFF_X1 relocation instead. */
+	     reloc in an input file, but the symbol was never referred
+	     to by a dynamic object, or if all references were garbage
+	     collected.  In such a case, we don't actually need to build
+	     a procedure linkage table, and we can just do a
+	     R_TILEGX_JUMPOFF_X1 relocation instead. */
 	  h->plt.offset = (bfd_vma) -1;
 	  h->needs_plt = 0;
 	}
@@ -2370,12 +2180,12 @@ tilegx_elf_adjust_dynamic_symbol (struct
   /* If this is a weak symbol, and there is a real definition, the
      processor independent code will have arranged for us to see the
      real definition first, and we can just use the same value.  */
-  if (h->u.weakdef != NULL)
+  if (h->is_weakalias)
     {
-      BFD_ASSERT (h->u.weakdef->root.type == bfd_link_hash_defined
-		  || h->u.weakdef->root.type == bfd_link_hash_defweak);
-      h->root.u.def.section = h->u.weakdef->root.u.def.section;
-      h->root.u.def.value = h->u.weakdef->root.u.def.value;
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
       return TRUE;
     }
 
@@ -2401,17 +2211,9 @@ tilegx_elf_adjust_dynamic_symbol (struct
       return TRUE;
     }
 
-  eh = (struct tilegx_elf_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      s = p->sec->output_section;
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	break;
-    }
-
-  /* If we didn't find any dynamic relocs in read-only sections, then
+  /* If we don't find any dynamic relocs in read-only sections, then
      we'll be keeping the dynamic relocs and avoiding the copy reloc.  */
-  if (p == NULL)
+  if (!readonly_dynrelocs (h))
     {
       h->non_got_ref = 0;
       return TRUE;
@@ -2459,7 +2261,7 @@ allocate_dynrelocs (struct elf_link_hash
   struct bfd_link_info *info;
   struct tilegx_elf_link_hash_table *htab;
   struct tilegx_elf_link_hash_entry *eh;
-  struct tilegx_elf_dyn_relocs *p;
+  struct elf_dyn_relocs *p;
 
   if (h->root.type == bfd_link_hash_indirect)
     return TRUE;
@@ -2490,7 +2292,7 @@ allocate_dynrelocs (struct elf_link_hash
 	      s->size = PLT_ENTRY_SIZE;
 	    }
 
-          h->plt.offset = s->size - PLT_ENTRY_SIZE + PLT_HEADER_SIZE;
+	  h->plt.offset = s->size - PLT_ENTRY_SIZE + PLT_HEADER_SIZE;
 
 	  /* If this symbol is not defined in a regular file, and we are
 	     not generating a shared library, then set the symbol to this
@@ -2529,7 +2331,7 @@ allocate_dynrelocs (struct elf_link_hash
      requiring no TLS entry.  */
   if (h->got.refcount > 0
       && !htab->disable_le_transition
-      && !bfd_link_pic (info)
+      && bfd_link_executable (info)
       && h->dynindx == -1
       && tilegx_elf_hash_entry(h)->tls_type == GOT_TLS_IE)
     h->got.offset = (bfd_vma) -1;
@@ -2553,10 +2355,10 @@ allocate_dynrelocs (struct elf_link_hash
       s->size += TILEGX_ELF_WORD_BYTES (htab);
       /* TLS_GD entries need 2 consecutive GOT slots. */
       if (tls_type == GOT_TLS_GD)
-        s->size += TILEGX_ELF_WORD_BYTES (htab);
+	s->size += TILEGX_ELF_WORD_BYTES (htab);
       dyn = htab->elf.dynamic_sections_created;
       /* TLS_IE needs one dynamic relocation,
-         TLS_GD needs two if local symbol and two if global.  */
+	 TLS_GD needs two if local symbol and two if global.  */
       if (tls_type == GOT_TLS_GD || tls_type == GOT_TLS_IE)
 	htab->elf.srelgot->size += 2 * TILEGX_ELF_RELA_BYTES (htab);
       else if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
@@ -2581,7 +2383,7 @@ allocate_dynrelocs (struct elf_link_hash
     {
       if (SYMBOL_CALLS_LOCAL (info, h))
 	{
-	  struct tilegx_elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs **pp;
 
 	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
 	    {
@@ -2599,7 +2401,8 @@ allocate_dynrelocs (struct elf_link_hash
       if (eh->dyn_relocs != NULL
 	  && h->root.type == bfd_link_hash_undefweak)
 	{
-	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
+	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+	      || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	    eh->dyn_relocs = NULL;
 
 	  /* Make sure undefined weak symbols are output as a dynamic
@@ -2655,28 +2458,29 @@ allocate_dynrelocs (struct elf_link_hash
   return TRUE;
 }
 
-/* Find any dynamic relocs that apply to read-only sections.  */
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
 
 static bfd_boolean
-readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
+maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
 {
-  struct tilegx_elf_link_hash_entry *eh;
-  struct tilegx_elf_dyn_relocs *p;
+  asection *sec;
 
-  eh = (struct tilegx_elf_link_hash_entry *) h;
-  for (p = eh->dyn_relocs; p != NULL; p = p->next)
-    {
-      asection *s = p->sec->output_section;
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
 
-      if (s != NULL && (s->flags & SEC_READONLY) != 0)
-	{
-	  struct bfd_link_info *info = (struct bfd_link_info *) inf;
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
+    {
+      struct bfd_link_info *info = (struct bfd_link_info *) info_p;
 
-	  info->flags |= DF_TEXTREL;
+      info->flags |= DF_TEXTREL;
+      info->callbacks->minfo
+	(_("%B: dynamic relocation against `%T' in read-only section `%A'\n"),
+	 sec->owner, h->root.root.string, sec);
 
-	  /* Not an error, just cut short the traversal.  */
-	  return FALSE;
-	}
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
     }
   return TRUE;
 }
@@ -2740,7 +2544,7 @@ tilegx_elf_size_dynamic_sections (bfd *o
 
       for (s = ibfd->sections; s != NULL; s = s->next)
 	{
-	  struct tilegx_elf_dyn_relocs *p;
+	  struct elf_dyn_relocs *p;
 
 	  for (p = elf_section_data (s)->local_dynrel; p != NULL; p = p->next)
 	    {
@@ -2757,7 +2561,12 @@ tilegx_elf_size_dynamic_sections (bfd *o
 		  srel = elf_section_data (p->sec)->sreloc;
 		  srel->size += p->count * TILEGX_ELF_RELA_BYTES (htab);
 		  if ((p->sec->output_section->flags & SEC_READONLY) != 0)
-		    info->flags |= DF_TEXTREL;
+		    {
+		      info->flags |= DF_TEXTREL;
+
+		      info->callbacks->minfo (_("%B: dynamic relocation in read-only section `%A'\n"),
+					      p->sec->owner, p->sec);
+		    }
 		}
 	    }
 	}
@@ -2778,11 +2587,11 @@ tilegx_elf_size_dynamic_sections (bfd *o
 	    {
 	      *local_got = s->size;
 	      s->size += TILEGX_ELF_WORD_BYTES (htab);
-              if (*local_tls_type == GOT_TLS_GD)
-                s->size += TILEGX_ELF_WORD_BYTES (htab);
-              if (bfd_link_pic (info)
-                  || *local_tls_type == GOT_TLS_GD
-                  || *local_tls_type == GOT_TLS_IE)
+	      if (*local_tls_type == GOT_TLS_GD)
+		s->size += TILEGX_ELF_WORD_BYTES (htab);
+	      if (bfd_link_pic (info)
+		  || *local_tls_type == GOT_TLS_GD
+		  || *local_tls_type == GOT_TLS_IE)
 		srel->size += TILEGX_ELF_RELA_BYTES (htab);
 	    }
 	  else
@@ -2812,7 +2621,7 @@ tilegx_elf_size_dynamic_sections (bfd *o
 				  FALSE, FALSE, FALSE);
 
       /* Don't allocate .got.plt section if there are no GOT nor PLT
-         entries and there is no refeence to _GLOBAL_OFFSET_TABLE_.  */
+	 entries and there is no refeence to _GLOBAL_OFFSET_TABLE_.  */
       if ((got == NULL
 	   || !got->ref_regular_nonweak)
 	  && (htab->elf.sgotplt->size
@@ -2916,7 +2725,7 @@ tilegx_elf_size_dynamic_sections (bfd *o
       /* If any dynamic relocs apply to a read-only section,
 	 then we need a DT_TEXTREL entry.  */
       if ((info->flags & DF_TEXTREL) == 0)
-	elf_link_hash_traverse (&htab->elf, readonly_dynrelocs, info);
+	elf_link_hash_traverse (&htab->elf, maybe_set_textrel, info);
 
       if (info->flags & DF_TEXTREL)
 	{
@@ -3151,7 +2960,7 @@ tilegx_elf_relocate_section (bfd *output
       const char *name;
       bfd_vma off;
       bfd_boolean is_plt = FALSE;
-
+      bfd_boolean resolved_to_zero;
       bfd_boolean unresolved_reloc;
 
       r_type = TILEGX_ELF_R_TYPE (rel->r_info);
@@ -3160,15 +2969,7 @@ tilegx_elf_relocate_section (bfd *output
 	continue;
 
       if ((unsigned int)r_type >= ARRAY_SIZE (tilegx_elf_howto_table))
-	{
-          /* Not clear if we need to check here, but just be paranoid. */
-	  _bfd_error_handler
-	    /* xgettext:c-format */
-	    (_("%B: unrecognized relocation (0x%x) in section `%A'"),
-	     input_bfd, r_type, input_section);
-	  bfd_set_error (bfd_error_bad_value);
-	  return FALSE;
-	}
+	return _bfd_unrecognized_reloc (input_bfd, input_section, r_type);
 
       howto = tilegx_elf_howto_table + r_type;
 
@@ -3240,9 +3041,9 @@ tilegx_elf_relocate_section (bfd *output
 	  else if (h != NULL)
 	    tls_type = tilegx_elf_hash_entry(h)->tls_type;
 
-	  is_tls_iele = (! bfd_link_pic (info) || tls_type == GOT_TLS_IE);
+	  is_tls_iele = (bfd_link_executable (info) || tls_type == GOT_TLS_IE);
 	  is_tls_le = is_tls_iele && (!input_section->sec_flg0
-				      && !bfd_link_pic (info)
+				      && bfd_link_executable (info)
 				      && (h == NULL || h->dynindx == -1));
 
 	  if (r_type == R_TILEGX_TLS_GD_CALL)
@@ -3387,7 +3188,7 @@ tilegx_elf_relocate_section (bfd *output
 	  break;
 	case R_TILEGX_TLS_IE_LOAD:
 	  if (!input_section->sec_flg0
-	      && !bfd_link_pic (info)
+	      && bfd_link_executable (info)
 	      && (h == NULL || h->dynindx == -1))
 	    {
 	      /* IE -> LE */
@@ -3413,6 +3214,9 @@ tilegx_elf_relocate_section (bfd *output
 	  break;
 	}
 
+      resolved_to_zero = (h != NULL
+			  && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h));
+
       switch (r_type)
 	{
 	case R_TILEGX_IMM16_X0_HW0_GOT:
@@ -3472,7 +3276,7 @@ tilegx_elf_relocate_section (bfd *output
 	      off = local_got_offsets[r_symndx];
 
 	      /* The offset must always be a multiple of 8 on 64-bit.
-                 We use the least significant bit to record
+		 We use the least significant bit to record
 		 whether we have already processed this entry.  */
 	      if ((off & 1) != 0)
 		off &= ~1;
@@ -3506,7 +3310,7 @@ tilegx_elf_relocate_section (bfd *output
 	  relocation = off - got_base;
 	  break;
 
-        case R_TILEGX_JUMPOFF_X1_PLT:
+	case R_TILEGX_JUMPOFF_X1_PLT:
 	case R_TILEGX_IMM16_X0_HW0_PLT_PCREL:
 	case R_TILEGX_IMM16_X1_HW0_PLT_PCREL:
 	case R_TILEGX_IMM16_X0_HW1_PLT_PCREL:
@@ -3523,7 +3327,7 @@ tilegx_elf_relocate_section (bfd *output
 	case R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL:
 	  /* Relocation is to the entry for this symbol in the
 	     procedure linkage table.  */
-          BFD_ASSERT (h != NULL);
+	  BFD_ASSERT (h != NULL);
 
 	  if (h->plt.offset == (bfd_vma) -1 || htab->elf.splt == NULL)
 	    {
@@ -3539,10 +3343,10 @@ tilegx_elf_relocate_section (bfd *output
 	  unresolved_reloc = FALSE;
 	  break;
 
-        case R_TILEGX_64_PCREL:
-        case R_TILEGX_32_PCREL:
-        case R_TILEGX_16_PCREL:
-        case R_TILEGX_8_PCREL:
+	case R_TILEGX_64_PCREL:
+	case R_TILEGX_32_PCREL:
+	case R_TILEGX_16_PCREL:
+	case R_TILEGX_8_PCREL:
 	case R_TILEGX_IMM16_X0_HW0_PCREL:
 	case R_TILEGX_IMM16_X1_HW0_PCREL:
 	case R_TILEGX_IMM16_X0_HW1_PCREL:
@@ -3561,10 +3365,10 @@ tilegx_elf_relocate_section (bfd *output
 	      && strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
 	    break;
 	  /* Fall through.  */
-        case R_TILEGX_64:
-        case R_TILEGX_32:
-        case R_TILEGX_16:
-        case R_TILEGX_8:
+	case R_TILEGX_64:
+	case R_TILEGX_32:
+	case R_TILEGX_16:
+	case R_TILEGX_8:
 	case R_TILEGX_HW0:
 	case R_TILEGX_HW1:
 	case R_TILEGX_HW2:
@@ -3572,25 +3376,25 @@ tilegx_elf_relocate_section (bfd *output
 	case R_TILEGX_HW0_LAST:
 	case R_TILEGX_HW1_LAST:
 	case R_TILEGX_HW2_LAST:
-        case R_TILEGX_COPY:
-        case R_TILEGX_GLOB_DAT:
-        case R_TILEGX_JMP_SLOT:
-        case R_TILEGX_RELATIVE:
-        case R_TILEGX_BROFF_X1:
-        case R_TILEGX_JUMPOFF_X1:
-        case R_TILEGX_IMM8_X0:
-        case R_TILEGX_IMM8_Y0:
-        case R_TILEGX_IMM8_X1:
-        case R_TILEGX_IMM8_Y1:
-        case R_TILEGX_DEST_IMM8_X1:
-        case R_TILEGX_MT_IMM14_X1:
-        case R_TILEGX_MF_IMM14_X1:
-        case R_TILEGX_MMSTART_X0:
-        case R_TILEGX_MMEND_X0:
-        case R_TILEGX_SHAMT_X0:
-        case R_TILEGX_SHAMT_X1:
-        case R_TILEGX_SHAMT_Y0:
-        case R_TILEGX_SHAMT_Y1:
+	case R_TILEGX_COPY:
+	case R_TILEGX_GLOB_DAT:
+	case R_TILEGX_JMP_SLOT:
+	case R_TILEGX_RELATIVE:
+	case R_TILEGX_BROFF_X1:
+	case R_TILEGX_JUMPOFF_X1:
+	case R_TILEGX_IMM8_X0:
+	case R_TILEGX_IMM8_Y0:
+	case R_TILEGX_IMM8_X1:
+	case R_TILEGX_IMM8_Y1:
+	case R_TILEGX_DEST_IMM8_X1:
+	case R_TILEGX_MT_IMM14_X1:
+	case R_TILEGX_MF_IMM14_X1:
+	case R_TILEGX_MMSTART_X0:
+	case R_TILEGX_MMEND_X0:
+	case R_TILEGX_SHAMT_X0:
+	case R_TILEGX_SHAMT_X1:
+	case R_TILEGX_SHAMT_Y0:
+	case R_TILEGX_SHAMT_Y1:
 	case R_TILEGX_IMM16_X0_HW0:
 	case R_TILEGX_IMM16_X1_HW0:
 	case R_TILEGX_IMM16_X0_HW1:
@@ -3610,7 +3414,8 @@ tilegx_elf_relocate_section (bfd *output
 
 	  if ((bfd_link_pic (info)
 	       && (h == NULL
-		   || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		   || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		       && !resolved_to_zero)
 		   || h->root.type != bfd_link_hash_undefweak)
 	       && (! howto->pc_relative
 		   || !SYMBOL_CALLS_LOCAL (info, h)))
@@ -3646,10 +3451,10 @@ tilegx_elf_relocate_section (bfd *output
 
 	      switch (r_type)
 		{
-                case R_TILEGX_64_PCREL:
-                case R_TILEGX_32_PCREL:
-                case R_TILEGX_16_PCREL:
-                case R_TILEGX_8_PCREL:
+		case R_TILEGX_64_PCREL:
+		case R_TILEGX_32_PCREL:
+		case R_TILEGX_16_PCREL:
+		case R_TILEGX_8_PCREL:
 		  /* If the symbol is not dynamic, we should not keep
 		     a dynamic relocation.  But an .rela.* slot has been
 		     allocated for it, output R_TILEGX_NONE.
@@ -3744,13 +3549,13 @@ tilegx_elf_relocate_section (bfd *output
 	    }
 	  break;
 
-        case R_TILEGX_IMM16_X0_HW0_TLS_LE:
-        case R_TILEGX_IMM16_X1_HW0_TLS_LE:
-        case R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE:
-        case R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE:
-        case R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE:
-        case R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE:
-	  if (bfd_link_pic (info))
+	case R_TILEGX_IMM16_X0_HW0_TLS_LE:
+	case R_TILEGX_IMM16_X1_HW0_TLS_LE:
+	case R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE:
+	case R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE:
+	case R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE:
+	case R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE:
+	  if (!bfd_link_executable (info))
 	    {
 	      Elf_Internal_Rela outrel;
 	      bfd_boolean skip;
@@ -3781,28 +3586,28 @@ tilegx_elf_relocate_section (bfd *output
 	  relocation = tpoff (info, relocation);
 	  break;
 
-        case R_TILEGX_IMM16_X0_HW0_TLS_GD:
-        case R_TILEGX_IMM16_X1_HW0_TLS_GD:
-        case R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
-        case R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
-        case R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
-        case R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
-        case R_TILEGX_IMM16_X0_HW0_TLS_IE:
-        case R_TILEGX_IMM16_X1_HW0_TLS_IE:
-        case R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
-        case R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
-        case R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
-        case R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
+	case R_TILEGX_IMM16_X0_HW0_TLS_GD:
+	case R_TILEGX_IMM16_X1_HW0_TLS_GD:
+	case R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD:
+	case R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD:
+	case R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
+	case R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
+	case R_TILEGX_IMM16_X0_HW0_TLS_IE:
+	case R_TILEGX_IMM16_X1_HW0_TLS_IE:
+	case R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
+	case R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE:
+	case R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE:
+	case R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE:
 	  r_type = tilegx_elf_tls_transition (info, r_type, h == NULL,
 					      input_section->sec_flg0);
-          tls_type = GOT_UNKNOWN;
+	  tls_type = GOT_UNKNOWN;
 	  if (h == NULL && local_got_offsets)
 	    tls_type =
 	      _bfd_tilegx_elf_local_got_tls_type (input_bfd) [r_symndx];
 	  else if (h != NULL)
 	    {
 	      tls_type = tilegx_elf_hash_entry(h)->tls_type;
-	      if (!bfd_link_pic (info)
+	      if (bfd_link_executable (info)
 		  && h->dynindx == -1
 		  && tls_type == GOT_TLS_IE)
 		r_type = (!input_section->sec_flg0
@@ -3852,8 +3657,8 @@ tilegx_elf_relocate_section (bfd *output
 
 	      if (h != NULL)
 	      {
-	        bfd_boolean dyn;
-	        dyn = htab->elf.dynamic_sections_created;
+		bfd_boolean dyn;
+		dyn = htab->elf.dynamic_sections_created;
 
 		if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn,
 						     bfd_link_pic (info),
@@ -3866,15 +3671,15 @@ tilegx_elf_relocate_section (bfd *output
 	      }
 
 	      /* The GOT entries have not been initialized yet.  Do it
-	         now, and emit any relocations. */
+		 now, and emit any relocations. */
 	      if ((bfd_link_pic (info) || indx != 0)
 		  && (h == NULL
 		      || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
 		      || h->root.type != bfd_link_hash_undefweak))
 		    need_relocs = TRUE;
 
-              switch (r_type)
-                {
+	      switch (r_type)
+		{
 		  case R_TILEGX_IMM16_X0_HW0_TLS_IE:
 		  case R_TILEGX_IMM16_X1_HW0_TLS_IE:
 		  case R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE:
@@ -3884,20 +3689,20 @@ tilegx_elf_relocate_section (bfd *output
 		    if (need_relocs) {
 		      TILEGX_ELF_PUT_WORD (htab, output_bfd, 0,
 					   htab->elf.sgot->contents + off);
-	              outrel.r_offset = (htab->elf.sgot->output_section->vma
+		      outrel.r_offset = (htab->elf.sgot->output_section->vma
 				       + htab->elf.sgot->output_offset + off);
-	              outrel.r_addend = 0;
+		      outrel.r_addend = 0;
 		      if (indx == 0)
-		        outrel.r_addend = relocation - dtpoff_base (info);
+			outrel.r_addend = relocation - dtpoff_base (info);
 		      outrel.r_info = TILEGX_ELF_R_INFO (htab, NULL, indx,
 							 TILEGX_ELF_TPOFF_RELOC (htab));
 		      tilegx_elf_append_rela (output_bfd, htab->elf.srelgot, &outrel);
-                    } else {
+		    } else {
 		      TILEGX_ELF_PUT_WORD (htab, output_bfd,
 					   tpoff (info, relocation),
 					   htab->elf.sgot->contents + off);
-                    }
-                    break;
+		    }
+		    break;
 
 		  case R_TILEGX_IMM16_X0_HW0_TLS_GD:
 		  case R_TILEGX_IMM16_X1_HW0_TLS_GD:
@@ -3906,40 +3711,40 @@ tilegx_elf_relocate_section (bfd *output
 		  case R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD:
 		  case R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD:
 		    if (need_relocs) {
- 	              outrel.r_offset = (htab->elf.sgot->output_section->vma
+		      outrel.r_offset = (htab->elf.sgot->output_section->vma
 				       + htab->elf.sgot->output_offset + off);
-	              outrel.r_addend = 0;
-	              outrel.r_info = TILEGX_ELF_R_INFO (htab, NULL, indx,
+		      outrel.r_addend = 0;
+		      outrel.r_info = TILEGX_ELF_R_INFO (htab, NULL, indx,
 							 TILEGX_ELF_DTPMOD_RELOC (htab));
 		      TILEGX_ELF_PUT_WORD (htab, output_bfd, 0,
 					   htab->elf.sgot->contents + off);
-	              tilegx_elf_append_rela (output_bfd, htab->elf.srelgot, &outrel);
+		      tilegx_elf_append_rela (output_bfd, htab->elf.srelgot, &outrel);
 		      if (indx == 0)
-		        {
-		      	  BFD_ASSERT (! unresolved_reloc);
+			{
+			  BFD_ASSERT (! unresolved_reloc);
 			  TILEGX_ELF_PUT_WORD (htab, output_bfd,
 					       relocation - dtpoff_base (info),
 					       (htab->elf.sgot->contents + off +
 						TILEGX_ELF_WORD_BYTES (htab)));
-		        }
+			}
 		      else
-		        {
+			{
 			  TILEGX_ELF_PUT_WORD (htab, output_bfd, 0,
 					       (htab->elf.sgot->contents + off +
 						TILEGX_ELF_WORD_BYTES (htab)));
-		          outrel.r_info = TILEGX_ELF_R_INFO (htab, NULL, indx,
+			  outrel.r_info = TILEGX_ELF_R_INFO (htab, NULL, indx,
 							     TILEGX_ELF_DTPOFF_RELOC (htab));
-		          outrel.r_offset += TILEGX_ELF_WORD_BYTES (htab);
-		          tilegx_elf_append_rela (output_bfd, htab->elf.srelgot, &outrel);
-		        }
-                    }
+			  outrel.r_offset += TILEGX_ELF_WORD_BYTES (htab);
+			  tilegx_elf_append_rela (output_bfd, htab->elf.srelgot, &outrel);
+			}
+		    }
 
 		    else {
 		      /* If we are not emitting relocations for a
-		         general dynamic reference, then we must be in a
-		         static link or an executable link with the
-		         symbol binding locally.  Mark it as belonging
-		         to module 1, the executable.  */
+			 general dynamic reference, then we must be in a
+			 static link or an executable link with the
+			 symbol binding locally.  Mark it as belonging
+			 to module 1, the executable.  */
 		      TILEGX_ELF_PUT_WORD (htab, output_bfd, 1,
 					   htab->elf.sgot->contents + off );
 		      TILEGX_ELF_PUT_WORD (htab, output_bfd,
@@ -3947,8 +3752,8 @@ tilegx_elf_relocate_section (bfd *output
 					   htab->elf.sgot->contents + off +
 					   TILEGX_ELF_WORD_BYTES (htab));
 		   }
-                   break;
-                }
+		   break;
+		}
 	    }
 
 	  if (off >= (bfd_vma) -2)
@@ -3973,10 +3778,10 @@ tilegx_elf_relocate_section (bfd *output
 				      rel->r_offset) != (bfd_vma) -1)
 	_bfd_error_handler
 	  /* xgettext:c-format */
-	  (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+	  (_("%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"),
 	   input_bfd,
 	   input_section,
-	   (long) rel->r_offset,
+	   rel->r_offset,
 	   howto->name,
 	   h->root.root.string);
 
@@ -3986,49 +3791,49 @@ tilegx_elf_relocate_section (bfd *output
       create_func = reloc_to_create_func[r_type];
       if (create_func == NULL)
       {
-        r = _bfd_final_link_relocate (howto, input_bfd, input_section,
-                                      contents, rel->r_offset,
-                                      relocation, rel->r_addend);
+	r = _bfd_final_link_relocate (howto, input_bfd, input_section,
+				      contents, rel->r_offset,
+				      relocation, rel->r_addend);
       }
       else
       {
-        if (howto->pc_relative)
-        {
-          relocation -=
-            input_section->output_section->vma + input_section->output_offset;
-          if (howto->pcrel_offset)
-            relocation -= rel->r_offset;
-        }
-
-        bfd_byte *data;
-
-        /* Add the relocation addend if any to the final target value */
-        relocation += rel->r_addend;
-
-        /* Do basic range checking */
-        r = bfd_check_overflow (howto->complain_on_overflow,
-                                howto->bitsize,
-                                howto->rightshift,
-                                TILEGX_ELF_WORD_BYTES (htab) * 8,
-                                relocation);
-
-        /*
-         * Write the relocated value out into the raw section data.
-         * Don't put a relocation out in the .rela section.
-         */
-        tilegx_bundle_bits mask = create_func(-1);
-        tilegx_bundle_bits value = create_func(relocation >> howto->rightshift);
-
-        /* Only touch bytes while the mask is not 0, so we
-           don't write to out of bounds memory if this is actually
-           a 16-bit switch instruction. */
-        for (data = contents + rel->r_offset; mask != 0; data++)
-          {
-            bfd_byte byte_mask = (bfd_byte)mask;
-            *data = (*data & ~byte_mask) | ((bfd_byte)value & byte_mask);
-            mask >>= 8;
-            value >>= 8;
-          }
+	if (howto->pc_relative)
+	{
+	  relocation -=
+	    input_section->output_section->vma + input_section->output_offset;
+	  if (howto->pcrel_offset)
+	    relocation -= rel->r_offset;
+	}
+
+	bfd_byte *data;
+
+	/* Add the relocation addend if any to the final target value */
+	relocation += rel->r_addend;
+
+	/* Do basic range checking */
+	r = bfd_check_overflow (howto->complain_on_overflow,
+				howto->bitsize,
+				howto->rightshift,
+				TILEGX_ELF_WORD_BYTES (htab) * 8,
+				relocation);
+
+	/*
+	 * Write the relocated value out into the raw section data.
+	 * Don't put a relocation out in the .rela section.
+	 */
+	tilegx_bundle_bits mask = create_func(-1);
+	tilegx_bundle_bits value = create_func(relocation >> howto->rightshift);
+
+	/* Only touch bytes while the mask is not 0, so we
+	   don't write to out of bounds memory if this is actually
+	   a 16-bit switch instruction. */
+	for (data = contents + rel->r_offset; mask != 0; data++)
+	  {
+	    bfd_byte byte_mask = (bfd_byte)mask;
+	    *data = (*data & ~byte_mask) | ((bfd_byte)value & byte_mask);
+	    mask >>= 8;
+	    value >>= 8;
+	  }
       }
 
       if (r != bfd_reloc_ok)
@@ -4293,7 +4098,7 @@ tilegx_elf_finish_dynamic_sections (bfd 
 
       ret = tilegx_finish_dyn (output_bfd, info, dynobj, sdyn, splt);
 
-      if (ret != TRUE)
+      if (!ret)
 	return ret;
 
       /* Fill in the head and tail entries in the procedure linkage table.  */
@@ -4313,10 +4118,10 @@ tilegx_elf_finish_dynamic_sections (bfd 
 	     entry size.  */
 	  pad_size = PLT_ENTRY_SIZE - PLT_HEADER_SIZE - PLT_TAIL_SIZE;
 	  memset (splt->contents + splt->size - pad_size, 0, pad_size);
-	}
 
-      elf_section_data (splt->output_section)->this_hdr.sh_entsize
-	= PLT_ENTRY_SIZE;
+	  elf_section_data (splt->output_section)->this_hdr.sh_entsize
+	    = PLT_ENTRY_SIZE;
+	}
     }
 
   if (htab->elf.sgotplt)
@@ -4337,10 +4142,10 @@ tilegx_elf_finish_dynamic_sections (bfd 
 	  TILEGX_ELF_PUT_WORD (htab, output_bfd, (bfd_vma) 0,
 			       htab->elf.sgotplt->contents
 			       + GOT_ENTRY_SIZE (htab));
-	}
 
-      elf_section_data (htab->elf.sgotplt->output_section)->this_hdr.sh_entsize =
-	GOT_ENTRY_SIZE (htab);
+	  elf_section_data (htab->elf.sgotplt->output_section)->this_hdr.sh_entsize =
+	    GOT_ENTRY_SIZE (htab);
+	}
     }
 
   if (htab->elf.sgot)
@@ -4354,10 +4159,10 @@ tilegx_elf_finish_dynamic_sections (bfd 
 			 0);
 	  TILEGX_ELF_PUT_WORD (htab, output_bfd, val,
 			       htab->elf.sgot->contents);
-	}
 
-      elf_section_data (htab->elf.sgot->output_section)->this_hdr.sh_entsize =
-	GOT_ENTRY_SIZE (htab);
+	  elf_section_data (htab->elf.sgot->output_section)->this_hdr.sh_entsize =
+	    GOT_ENTRY_SIZE (htab);
+	}
     }
 
   return TRUE;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-tilegx.h ./bfd/elfxx-tilegx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-tilegx.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/elfxx-tilegx.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* TILE-Gx ELF specific backend routines.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -73,10 +73,6 @@ tilegx_elf_gc_mark_hook (asection *,
 			 struct elf_link_hash_entry *,
 			 Elf_Internal_Sym *);
 
-extern bfd_boolean
-tilegx_elf_gc_sweep_hook (bfd *, struct bfd_link_info *,
-			  asection *, const Elf_Internal_Rela *);
-
 extern bfd_vma
 tilegx_elf_plt_sym_val (bfd_vma, const asection *, const arelent *);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-x86.c ./bfd/elfxx-x86.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-x86.c	1970-01-01 00:00:00.000000000 +0000
+++ ./bfd/elfxx-x86.c	2018-01-09 02:04:54.000000000 +0000
@@ -0,0 +1,2745 @@
+/* x86 specific support for ELF
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+#include "elfxx-x86.h"
+#include "elf-vxworks.h"
+#include "objalloc.h"
+#include "elf/i386.h"
+#include "elf/x86-64.h"
+
+/* The name of the dynamic interpreter.  This is put in the .interp
+   section.  */
+
+#define ELF32_DYNAMIC_INTERPRETER "/usr/lib/libc.so.1"
+#define ELF64_DYNAMIC_INTERPRETER "/lib/ld64.so.1"
+#define ELFX32_DYNAMIC_INTERPRETER "/lib/ldx32.so.1"
+
+bfd_boolean
+_bfd_x86_elf_mkobject (bfd *abfd)
+{
+  return bfd_elf_allocate_object (abfd,
+				  sizeof (struct elf_x86_obj_tdata),
+				  get_elf_backend_data (abfd)->target_id);
+}
+
+/* _TLS_MODULE_BASE_ needs to be treated especially when linking
+   executables.  Rather than setting it to the beginning of the TLS
+   section, we have to set it to the end.    This function may be called
+   multiple times, it is idempotent.  */
+
+void
+_bfd_x86_elf_set_tls_module_base (struct bfd_link_info *info)
+{
+  struct elf_x86_link_hash_table *htab;
+  struct bfd_link_hash_entry *base;
+  const struct elf_backend_data *bed;
+
+  if (!bfd_link_executable (info))
+    return;
+
+  bed = get_elf_backend_data (info->output_bfd);
+  htab = elf_x86_hash_table (info, bed->target_id);
+  if (htab == NULL)
+    return;
+
+  base = htab->tls_module_base;
+  if (base == NULL)
+    return;
+
+  base->u.def.value = htab->elf.tls_size;
+}
+
+/* Return the base VMA address which should be subtracted from real addresses
+   when resolving @dtpoff relocation.
+   This is PT_TLS segment p_vaddr.  */
+
+bfd_vma
+_bfd_x86_elf_dtpoff_base (struct bfd_link_info *info)
+{
+  /* If tls_sec is NULL, we should have signalled an error already.  */
+  if (elf_hash_table (info)->tls_sec == NULL)
+    return 0;
+  return elf_hash_table (info)->tls_sec->vma;
+}
+
+/* Allocate space in .plt, .got and associated reloc sections for
+   dynamic relocs.  */
+
+static bfd_boolean
+elf_x86_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
+{
+  struct bfd_link_info *info;
+  struct elf_x86_link_hash_table *htab;
+  struct elf_x86_link_hash_entry *eh;
+  struct elf_dyn_relocs *p;
+  unsigned int plt_entry_size;
+  bfd_boolean resolved_to_zero;
+  const struct elf_backend_data *bed;
+
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
+
+  eh = (struct elf_x86_link_hash_entry *) h;
+
+  info = (struct bfd_link_info *) inf;
+  bed = get_elf_backend_data (info->output_bfd);
+  htab = elf_x86_hash_table (info, bed->target_id);
+  if (htab == NULL)
+    return FALSE;
+
+  plt_entry_size = htab->plt.plt_entry_size;
+
+  resolved_to_zero = UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh);
+
+  /* We can't use the GOT PLT if pointer equality is needed since
+     finish_dynamic_symbol won't clear symbol value and the dynamic
+     linker won't update the GOT slot.  We will get into an infinite
+     loop at run-time.  */
+  if (htab->plt_got != NULL
+      && h->type != STT_GNU_IFUNC
+      && !h->pointer_equality_needed
+      && h->plt.refcount > 0
+      && h->got.refcount > 0)
+    {
+      /* Don't use the regular PLT if there are both GOT and GOTPLT
+	 reloctions.  */
+      h->plt.offset = (bfd_vma) -1;
+
+      /* Use the GOT PLT.  */
+      eh->plt_got.refcount = 1;
+    }
+
+  /* Since STT_GNU_IFUNC symbol must go through PLT, we handle it
+     here if it is defined and referenced in a non-shared object.  */
+  if (h->type == STT_GNU_IFUNC
+      && h->def_regular)
+    {
+      if (_bfd_elf_allocate_ifunc_dyn_relocs (info, h, &eh->dyn_relocs,
+					      &htab->readonly_dynrelocs_against_ifunc,
+					      plt_entry_size,
+					      (htab->plt.has_plt0
+					       * plt_entry_size),
+					       htab->got_entry_size,
+					       TRUE))
+	{
+	  asection *s = htab->plt_second;
+	  if (h->plt.offset != (bfd_vma) -1 && s != NULL)
+	    {
+	      /* Use the second PLT section if it is created.  */
+	      eh->plt_second.offset = s->size;
+
+	      /* Make room for this entry in the second PLT section.  */
+	      s->size += htab->non_lazy_plt->plt_entry_size;
+	    }
+
+	  return TRUE;
+	}
+      else
+	return FALSE;
+    }
+  /* Don't create the PLT entry if there are only function pointer
+     relocations which can be resolved at run-time.  */
+  else if (htab->elf.dynamic_sections_created
+	   && (h->plt.refcount > 0
+	       || eh->plt_got.refcount > 0))
+    {
+      bfd_boolean use_plt_got = eh->plt_got.refcount > 0;
+
+      /* Make sure this symbol is output as a dynamic symbol.
+	 Undefined weak syms won't yet be marked as dynamic.  */
+      if (h->dynindx == -1
+	  && !h->forced_local
+	  && !resolved_to_zero
+	  && h->root.type == bfd_link_hash_undefweak)
+	{
+	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
+	    return FALSE;
+	}
+
+      if (bfd_link_pic (info)
+	  || WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, 0, h))
+	{
+	  asection *s = htab->elf.splt;
+	  asection *second_s = htab->plt_second;
+	  asection *got_s = htab->plt_got;
+
+	  /* If this is the first .plt entry, make room for the special
+	     first entry.  The .plt section is used by prelink to undo
+	     prelinking for dynamic relocations.  */
+	  if (s->size == 0)
+	    s->size = htab->plt.has_plt0 * plt_entry_size;
+
+	  if (use_plt_got)
+	    eh->plt_got.offset = got_s->size;
+	  else
+	    {
+	      h->plt.offset = s->size;
+	      if (second_s)
+		eh->plt_second.offset = second_s->size;
+	    }
+
+	  /* If this symbol is not defined in a regular file, and we are
+	     not generating a shared library, then set the symbol to this
+	     location in the .plt.  This is required to make function
+	     pointers compare as equal between the normal executable and
+	     the shared library.  */
+	  if (! bfd_link_pic (info)
+	      && !h->def_regular)
+	    {
+	      if (use_plt_got)
+		{
+		  /* We need to make a call to the entry of the GOT PLT
+		     instead of regular PLT entry.  */
+		  h->root.u.def.section = got_s;
+		  h->root.u.def.value = eh->plt_got.offset;
+		}
+	      else
+		{
+		  if (second_s)
+		    {
+		      /* We need to make a call to the entry of the
+			 second PLT instead of regular PLT entry.  */
+		      h->root.u.def.section = second_s;
+		      h->root.u.def.value = eh->plt_second.offset;
+		    }
+		  else
+		    {
+		      h->root.u.def.section = s;
+		      h->root.u.def.value = h->plt.offset;
+		    }
+		}
+	    }
+
+	  /* Make room for this entry.  */
+	  if (use_plt_got)
+	    got_s->size += htab->non_lazy_plt->plt_entry_size;
+	  else
+	    {
+	      s->size += plt_entry_size;
+	      if (second_s)
+		second_s->size += htab->non_lazy_plt->plt_entry_size;
+
+	      /* We also need to make an entry in the .got.plt section,
+		 which will be placed in the .got section by the linker
+		 script.  */
+	      htab->elf.sgotplt->size += htab->got_entry_size;
+
+	      /* There should be no PLT relocation against resolved
+		 undefined weak symbol in executable.  */
+	      if (!resolved_to_zero)
+		{
+		  /* We also need to make an entry in the .rel.plt
+		     section.  */
+		  htab->elf.srelplt->size += htab->sizeof_reloc;
+		  htab->elf.srelplt->reloc_count++;
+		}
+	    }
+
+	  if (htab->target_os == is_vxworks && !bfd_link_pic (info))
+	    {
+	      /* VxWorks has a second set of relocations for each PLT entry
+		 in executables.  They go in a separate relocation section,
+		 which is processed by the kernel loader.  */
+
+	      /* There are two relocations for the initial PLT entry: an
+		 R_386_32 relocation for _GLOBAL_OFFSET_TABLE_ + 4 and an
+		 R_386_32 relocation for _GLOBAL_OFFSET_TABLE_ + 8.  */
+
+	      asection *srelplt2 = htab->srelplt2;
+	      if (h->plt.offset == plt_entry_size)
+		srelplt2->size += (htab->sizeof_reloc * 2);
+
+	      /* There are two extra relocations for each subsequent PLT entry:
+		 an R_386_32 relocation for the GOT entry, and an R_386_32
+		 relocation for the PLT entry.  */
+
+	      srelplt2->size += (htab->sizeof_reloc * 2);
+	    }
+	}
+      else
+	{
+	  eh->plt_got.offset = (bfd_vma) -1;
+	  h->plt.offset = (bfd_vma) -1;
+	  h->needs_plt = 0;
+	}
+    }
+  else
+    {
+      eh->plt_got.offset = (bfd_vma) -1;
+      h->plt.offset = (bfd_vma) -1;
+      h->needs_plt = 0;
+    }
+
+  eh->tlsdesc_got = (bfd_vma) -1;
+
+  /* For i386, if R_386_TLS_{IE_32,IE,GOTIE} symbol is now local to the
+     binary, make it a R_386_TLS_LE_32 requiring no TLS entry.  For
+     x86-64, if R_X86_64_GOTTPOFF symbol is now local to the binary,
+     make it a R_X86_64_TPOFF32 requiring no GOT entry.  */
+  if (h->got.refcount > 0
+      && bfd_link_executable (info)
+      && h->dynindx == -1
+      && (elf_x86_hash_entry (h)->tls_type & GOT_TLS_IE))
+    h->got.offset = (bfd_vma) -1;
+  else if (h->got.refcount > 0)
+    {
+      asection *s;
+      bfd_boolean dyn;
+      int tls_type = elf_x86_hash_entry (h)->tls_type;
+
+      /* Make sure this symbol is output as a dynamic symbol.
+	 Undefined weak syms won't yet be marked as dynamic.  */
+      if (h->dynindx == -1
+	  && !h->forced_local
+	  && !resolved_to_zero
+	  && h->root.type == bfd_link_hash_undefweak)
+	{
+	  if (! bfd_elf_link_record_dynamic_symbol (info, h))
+	    return FALSE;
+	}
+
+      s = htab->elf.sgot;
+      if (GOT_TLS_GDESC_P (tls_type))
+	{
+	  eh->tlsdesc_got = htab->elf.sgotplt->size
+	    - elf_x86_compute_jump_table_size (htab);
+	  htab->elf.sgotplt->size += 2 * htab->got_entry_size;
+	  h->got.offset = (bfd_vma) -2;
+	}
+      if (! GOT_TLS_GDESC_P (tls_type)
+	  || GOT_TLS_GD_P (tls_type))
+	{
+	  h->got.offset = s->size;
+	  s->size += htab->got_entry_size;
+	  /* R_386_TLS_GD and R_X86_64_TLSGD need 2 consecutive GOT
+	     slots.  */
+	  if (GOT_TLS_GD_P (tls_type) || tls_type == GOT_TLS_IE_BOTH)
+	    s->size += htab->got_entry_size;
+	}
+      dyn = htab->elf.dynamic_sections_created;
+      /* R_386_TLS_IE_32 needs one dynamic relocation,
+	 R_386_TLS_IE resp. R_386_TLS_GOTIE needs one dynamic relocation,
+	 (but if both R_386_TLS_IE_32 and R_386_TLS_IE is present, we
+	 need two), R_386_TLS_GD and R_X86_64_TLSGD need one if local
+	 symbol and two if global.  No dynamic relocation against
+	 resolved undefined weak symbol in executable.  */
+      if (tls_type == GOT_TLS_IE_BOTH)
+	htab->elf.srelgot->size += 2 * htab->sizeof_reloc;
+      else if ((GOT_TLS_GD_P (tls_type) && h->dynindx == -1)
+	       || (tls_type & GOT_TLS_IE))
+	htab->elf.srelgot->size += htab->sizeof_reloc;
+      else if (GOT_TLS_GD_P (tls_type))
+	htab->elf.srelgot->size += 2 * htab->sizeof_reloc;
+      else if (! GOT_TLS_GDESC_P (tls_type)
+	       && ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		    && !resolved_to_zero)
+		   || h->root.type != bfd_link_hash_undefweak)
+	       && (bfd_link_pic (info)
+		   || WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, 0, h)))
+	htab->elf.srelgot->size += htab->sizeof_reloc;
+      if (GOT_TLS_GDESC_P (tls_type))
+	{
+	  htab->elf.srelplt->size += htab->sizeof_reloc;
+	  if (bed->target_id == X86_64_ELF_DATA)
+	    htab->tlsdesc_plt = (bfd_vma) -1;
+	}
+    }
+  else
+    h->got.offset = (bfd_vma) -1;
+
+  if (eh->dyn_relocs == NULL)
+    return TRUE;
+
+  /* In the shared -Bsymbolic case, discard space allocated for
+     dynamic pc-relative relocs against symbols which turn out to be
+     defined in regular objects.  For the normal shared case, discard
+     space for pc-relative relocs that have become local due to symbol
+     visibility changes.  */
+
+  if (bfd_link_pic (info))
+    {
+      /* Relocs that use pc_count are those that appear on a call
+	 insn, or certain REL relocs that can generated via assembly.
+	 We want calls to protected symbols to resolve directly to the
+	 function rather than going via the plt.  If people want
+	 function pointer comparisons to work as expected then they
+	 should avoid writing weird assembly.  */
+      if (SYMBOL_CALLS_LOCAL (info, h))
+	{
+	  struct elf_dyn_relocs **pp;
+
+	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
+	    {
+	      p->count -= p->pc_count;
+	      p->pc_count = 0;
+	      if (p->count == 0)
+		*pp = p->next;
+	      else
+		pp = &p->next;
+	    }
+	}
+
+      if (htab->target_os == is_vxworks)
+	{
+	  struct elf_dyn_relocs **pp;
+	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
+	    {
+	      if (strcmp (p->sec->output_section->name, ".tls_vars") == 0)
+		*pp = p->next;
+	      else
+		pp = &p->next;
+	    }
+	}
+
+      /* Also discard relocs on undefined weak syms with non-default
+	 visibility or in PIE.  */
+      if (eh->dyn_relocs != NULL)
+	{
+	  if (h->root.type == bfd_link_hash_undefweak)
+	    {
+	      /* Undefined weak symbol is never bound locally in shared
+		 library.  */
+	      if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+		  || resolved_to_zero)
+		{
+		  if (bed->target_id == I386_ELF_DATA
+		      && h->non_got_ref)
+		    {
+		      /* Keep dynamic non-GOT/non-PLT relocation so
+			 that we can branch to 0 without PLT.  */
+		      struct elf_dyn_relocs **pp;
+
+		      for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
+			if (p->pc_count == 0)
+			  *pp = p->next;
+			else
+			  {
+			    /* Remove non-R_386_PC32 relocation.  */
+			    p->count = p->pc_count;
+			    pp = &p->next;
+			  }
+
+		      /* Make sure undefined weak symbols are output
+			 as dynamic symbols in PIEs for dynamic non-GOT
+			 non-PLT reloations.  */
+		      if (eh->dyn_relocs != NULL
+			  && !bfd_elf_link_record_dynamic_symbol (info, h))
+			return FALSE;
+		    }
+		  else
+		    eh->dyn_relocs = NULL;
+		}
+	      else if (h->dynindx == -1
+		       && !h->forced_local
+		       && !bfd_elf_link_record_dynamic_symbol (info, h))
+		return FALSE;
+	    }
+	  else if (bfd_link_executable (info)
+		   && (h->needs_copy || eh->needs_copy)
+		   && h->def_dynamic
+		   && !h->def_regular)
+	    {
+	      /* NB: needs_copy is set only for x86-64.  For PIE,
+		 discard space for pc-relative relocs against symbols
+		 which turn out to need copy relocs.  */
+	      struct elf_dyn_relocs **pp;
+
+	      for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
+		{
+		  if (p->pc_count != 0)
+		    *pp = p->next;
+		  else
+		    pp = &p->next;
+		}
+	    }
+	}
+    }
+  else if (ELIMINATE_COPY_RELOCS)
+    {
+      /* For the non-shared case, discard space for relocs against
+	 symbols which turn out to need copy relocs or are not
+	 dynamic.  Keep dynamic relocations for run-time function
+	 pointer initialization.  */
+
+      if ((!h->non_got_ref
+	   || (h->root.type == bfd_link_hash_undefweak
+	       && !resolved_to_zero))
+	  && ((h->def_dynamic
+	       && !h->def_regular)
+	      || (htab->elf.dynamic_sections_created
+		  && (h->root.type == bfd_link_hash_undefweak
+		      || h->root.type == bfd_link_hash_undefined))))
+	{
+	  /* Make sure this symbol is output as a dynamic symbol.
+	     Undefined weak syms won't yet be marked as dynamic.  */
+	  if (h->dynindx == -1
+	      && !h->forced_local
+	      && !resolved_to_zero
+	      && h->root.type == bfd_link_hash_undefweak
+	      && ! bfd_elf_link_record_dynamic_symbol (info, h))
+	    return FALSE;
+
+	  /* If that succeeded, we know we'll be keeping all the
+	     relocs.  */
+	  if (h->dynindx != -1)
+	    goto keep;
+	}
+
+      eh->dyn_relocs = NULL;
+
+    keep: ;
+    }
+
+  /* Finally, allocate space.  */
+  for (p = eh->dyn_relocs; p != NULL; p = p->next)
+    {
+      asection *sreloc;
+
+      sreloc = elf_section_data (p->sec)->sreloc;
+
+      BFD_ASSERT (sreloc != NULL);
+      sreloc->size += p->count * htab->sizeof_reloc;
+    }
+
+  return TRUE;
+}
+
+/* Find dynamic relocs for H that apply to read-only sections.  */
+
+static asection *
+readonly_dynrelocs (struct elf_link_hash_entry *h)
+{
+  struct elf_dyn_relocs *p;
+
+  for (p = elf_x86_hash_entry (h)->dyn_relocs; p != NULL; p = p->next)
+    {
+      asection *s = p->sec->output_section;
+
+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
+	return p->sec;
+    }
+  return NULL;
+}
+
+/* Set DF_TEXTREL if we find any dynamic relocs that apply to
+   read-only sections.  */
+
+static bfd_boolean
+maybe_set_textrel (struct elf_link_hash_entry *h, void *inf)
+{
+  asection *sec;
+
+  if (h->root.type == bfd_link_hash_indirect)
+    return TRUE;
+
+  /* Skip local IFUNC symbols. */
+  if (h->forced_local && h->type == STT_GNU_IFUNC)
+    return TRUE;
+
+  sec = readonly_dynrelocs (h);
+  if (sec != NULL)
+    {
+      struct bfd_link_info *info = (struct bfd_link_info *) inf;
+
+      info->flags |= DF_TEXTREL;
+      /* xgettext:c-format */
+      info->callbacks->minfo (_("%B: dynamic relocation against `%T' "
+				"in read-only section `%A'\n"),
+			      sec->owner, h->root.root.string, sec);
+
+      if ((info->warn_shared_textrel && bfd_link_pic (info))
+	  || info->error_textrel)
+	/* xgettext:c-format */
+	info->callbacks->einfo (_("%P: %B: warning: relocation against `%s' "
+				  "in read-only section `%A'\n"),
+				sec->owner, h->root.root.string, sec);
+
+      /* Not an error, just cut short the traversal.  */
+      return FALSE;
+    }
+  return TRUE;
+}
+
+/* Allocate space in .plt, .got and associated reloc sections for
+   local dynamic relocs.  */
+
+static bfd_boolean
+elf_x86_allocate_local_dynreloc (void **slot, void *inf)
+{
+  struct elf_link_hash_entry *h
+    = (struct elf_link_hash_entry *) *slot;
+
+  if (h->type != STT_GNU_IFUNC
+      || !h->def_regular
+      || !h->ref_regular
+      || !h->forced_local
+      || h->root.type != bfd_link_hash_defined)
+    abort ();
+
+  return elf_x86_allocate_dynrelocs (h, inf);
+}
+
+/* Find and/or create a hash entry for local symbol.  */
+
+struct elf_link_hash_entry *
+_bfd_elf_x86_get_local_sym_hash (struct elf_x86_link_hash_table *htab,
+				 bfd *abfd, const Elf_Internal_Rela *rel,
+				 bfd_boolean create)
+{
+  struct elf_x86_link_hash_entry e, *ret;
+  asection *sec = abfd->sections;
+  hashval_t h = ELF_LOCAL_SYMBOL_HASH (sec->id,
+				       htab->r_sym (rel->r_info));
+  void **slot;
+
+  e.elf.indx = sec->id;
+  e.elf.dynstr_index = htab->r_sym (rel->r_info);
+  slot = htab_find_slot_with_hash (htab->loc_hash_table, &e, h,
+				   create ? INSERT : NO_INSERT);
+
+  if (!slot)
+    return NULL;
+
+  if (*slot)
+    {
+      ret = (struct elf_x86_link_hash_entry *) *slot;
+      return &ret->elf;
+    }
+
+  ret = (struct elf_x86_link_hash_entry *)
+	objalloc_alloc ((struct objalloc *) htab->loc_hash_memory,
+			sizeof (struct elf_x86_link_hash_entry));
+  if (ret)
+    {
+      memset (ret, 0, sizeof (*ret));
+      ret->elf.indx = sec->id;
+      ret->elf.dynstr_index = htab->r_sym (rel->r_info);
+      ret->elf.dynindx = -1;
+      ret->plt_got.offset = (bfd_vma) -1;
+      *slot = ret;
+    }
+  return &ret->elf;
+}
+
+/* Create an entry in a x86 ELF linker hash table.  NB: THIS MUST BE IN
+   SYNC WITH _bfd_elf_link_hash_newfunc.  */
+
+struct bfd_hash_entry *
+_bfd_x86_elf_link_hash_newfunc (struct bfd_hash_entry *entry,
+				struct bfd_hash_table *table,
+				const char *string)
+{
+  /* Allocate the structure if it has not already been allocated by a
+     subclass.  */
+  if (entry == NULL)
+    {
+      entry = (struct bfd_hash_entry *)
+	bfd_hash_allocate (table,
+			   sizeof (struct elf_x86_link_hash_entry));
+      if (entry == NULL)
+	return entry;
+    }
+
+  /* Call the allocation method of the superclass.  */
+  entry = _bfd_link_hash_newfunc (entry, table, string);
+  if (entry != NULL)
+    {
+      struct elf_x86_link_hash_entry *eh
+       = (struct elf_x86_link_hash_entry *) entry;
+      struct elf_link_hash_table *htab
+	= (struct elf_link_hash_table *) table;
+
+      memset (&eh->elf.size, 0,
+	      (sizeof (struct elf_x86_link_hash_entry)
+	       - offsetof (struct elf_link_hash_entry, size)));
+      /* Set local fields.  */
+      eh->elf.indx = -1;
+      eh->elf.dynindx = -1;
+      eh->elf.got = htab->init_got_refcount;
+      eh->elf.plt = htab->init_plt_refcount;
+      /* Assume that we have been called by a non-ELF symbol reader.
+	 This flag is then reset by the code which reads an ELF input
+	 file.  This ensures that a symbol created by a non-ELF symbol
+	 reader will have the flag set correctly.  */
+      eh->elf.non_elf = 1;
+      eh->plt_second.offset = (bfd_vma) -1;
+      eh->plt_got.offset = (bfd_vma) -1;
+      eh->tlsdesc_got = (bfd_vma) -1;
+      eh->zero_undefweak = 1;
+    }
+
+  return entry;
+}
+
+/* Compute a hash of a local hash entry.  We use elf_link_hash_entry
+  for local symbol so that we can handle local STT_GNU_IFUNC symbols
+  as global symbol.  We reuse indx and dynstr_index for local symbol
+  hash since they aren't used by global symbols in this backend.  */
+
+hashval_t
+_bfd_x86_elf_local_htab_hash (const void *ptr)
+{
+  struct elf_link_hash_entry *h
+    = (struct elf_link_hash_entry *) ptr;
+  return ELF_LOCAL_SYMBOL_HASH (h->indx, h->dynstr_index);
+}
+
+/* Compare local hash entries.  */
+
+int
+_bfd_x86_elf_local_htab_eq (const void *ptr1, const void *ptr2)
+{
+  struct elf_link_hash_entry *h1
+     = (struct elf_link_hash_entry *) ptr1;
+  struct elf_link_hash_entry *h2
+    = (struct elf_link_hash_entry *) ptr2;
+
+  return h1->indx == h2->indx && h1->dynstr_index == h2->dynstr_index;
+}
+
+/* Destroy an x86 ELF linker hash table.  */
+
+static void
+elf_x86_link_hash_table_free (bfd *obfd)
+{
+  struct elf_x86_link_hash_table *htab
+    = (struct elf_x86_link_hash_table *) obfd->link.hash;
+
+  if (htab->loc_hash_table)
+    htab_delete (htab->loc_hash_table);
+  if (htab->loc_hash_memory)
+    objalloc_free ((struct objalloc *) htab->loc_hash_memory);
+  _bfd_elf_link_hash_table_free (obfd);
+}
+
+static bfd_boolean
+elf_i386_is_reloc_section (const char *secname)
+{
+  return CONST_STRNEQ (secname, ".rel");
+}
+
+static bfd_boolean
+elf_x86_64_is_reloc_section (const char *secname)
+{
+  return CONST_STRNEQ (secname, ".rela");
+}
+
+/* Create an x86 ELF linker hash table.  */
+
+struct bfd_link_hash_table *
+_bfd_x86_elf_link_hash_table_create (bfd *abfd)
+{
+  struct elf_x86_link_hash_table *ret;
+  const struct elf_backend_data *bed;
+  bfd_size_type amt = sizeof (struct elf_x86_link_hash_table);
+
+  ret = (struct elf_x86_link_hash_table *) bfd_zmalloc (amt);
+  if (ret == NULL)
+    return NULL;
+
+  bed = get_elf_backend_data (abfd);
+  if (!_bfd_elf_link_hash_table_init (&ret->elf, abfd,
+				      _bfd_x86_elf_link_hash_newfunc,
+				      sizeof (struct elf_x86_link_hash_entry),
+				      bed->target_id))
+    {
+      free (ret);
+      return NULL;
+    }
+
+  if (bed->target_id == X86_64_ELF_DATA)
+    {
+      ret->is_reloc_section = elf_x86_64_is_reloc_section;
+      ret->dt_reloc = DT_RELA;
+      ret->dt_reloc_sz = DT_RELASZ;
+      ret->dt_reloc_ent = DT_RELAENT;
+      ret->got_entry_size = 8;
+      ret->tls_get_addr = "__tls_get_addr";
+    }
+  if (ABI_64_P (abfd))
+    {
+      ret->sizeof_reloc = sizeof (Elf64_External_Rela);
+      ret->pointer_r_type = R_X86_64_64;
+      ret->dynamic_interpreter = ELF64_DYNAMIC_INTERPRETER;
+      ret->dynamic_interpreter_size = sizeof ELF64_DYNAMIC_INTERPRETER;
+    }
+  else
+    {
+      if (bed->target_id == X86_64_ELF_DATA)
+	{
+	  ret->sizeof_reloc = sizeof (Elf32_External_Rela);
+	  ret->pointer_r_type = R_X86_64_32;
+	  ret->dynamic_interpreter = ELFX32_DYNAMIC_INTERPRETER;
+	  ret->dynamic_interpreter_size
+	    = sizeof ELFX32_DYNAMIC_INTERPRETER;
+	}
+      else
+	{
+	  ret->is_reloc_section = elf_i386_is_reloc_section;
+	  ret->dt_reloc = DT_REL;
+	  ret->dt_reloc_sz = DT_RELSZ;
+	  ret->dt_reloc_ent = DT_RELENT;
+	  ret->sizeof_reloc = sizeof (Elf32_External_Rel);
+	  ret->got_entry_size = 4;
+	  ret->pointer_r_type = R_386_32;
+	  ret->dynamic_interpreter = ELF32_DYNAMIC_INTERPRETER;
+	  ret->dynamic_interpreter_size
+	    = sizeof ELF32_DYNAMIC_INTERPRETER;
+	  ret->tls_get_addr = "___tls_get_addr";
+	}
+    }
+  ret->target_id = bed->target_id;
+  ret->target_os = get_elf_x86_backend_data (abfd)->target_os;
+
+  ret->loc_hash_table = htab_try_create (1024,
+					 _bfd_x86_elf_local_htab_hash,
+					 _bfd_x86_elf_local_htab_eq,
+					 NULL);
+  ret->loc_hash_memory = objalloc_create ();
+  if (!ret->loc_hash_table || !ret->loc_hash_memory)
+    {
+      elf_x86_link_hash_table_free (abfd);
+      return NULL;
+    }
+  ret->elf.root.hash_table_free = elf_x86_link_hash_table_free;
+
+  return &ret->elf.root;
+}
+
+/* Sort relocs into address order.  */
+
+int
+_bfd_x86_elf_compare_relocs (const void *ap, const void *bp)
+{
+  const arelent *a = * (const arelent **) ap;
+  const arelent *b = * (const arelent **) bp;
+
+  if (a->address > b->address)
+    return 1;
+  else if (a->address < b->address)
+    return -1;
+  else
+    return 0;
+}
+
+bfd_boolean
+_bfd_x86_elf_link_check_relocs (bfd *abfd, struct bfd_link_info *info)
+{
+  if (!bfd_link_relocatable (info))
+    {
+      /* Check for __tls_get_addr reference.  */
+      struct elf_x86_link_hash_table *htab;
+      const struct elf_backend_data *bed = get_elf_backend_data (abfd);
+      htab = elf_x86_hash_table (info, bed->target_id);
+      if (htab)
+	{
+	  struct elf_link_hash_entry *h;
+
+	  h = elf_link_hash_lookup (elf_hash_table (info),
+				    htab->tls_get_addr,
+				    FALSE, FALSE, FALSE);
+	  if (h != NULL)
+	    elf_x86_hash_entry (h)->tls_get_addr = 1;
+
+	  /* "__ehdr_start" will be defined by linker as a hidden symbol
+	     later if it is referenced and not defined.  */
+	  h = elf_link_hash_lookup (elf_hash_table (info),
+				    "__ehdr_start",
+				    FALSE, FALSE, FALSE);
+	  if (h != NULL
+	      && (h->root.type == bfd_link_hash_new
+		  || h->root.type == bfd_link_hash_undefined
+		  || h->root.type == bfd_link_hash_undefweak
+		  || h->root.type == bfd_link_hash_common))
+	    {
+	      elf_x86_hash_entry (h)->local_ref = 2;
+	      elf_x86_hash_entry (h)->linker_def = 1;
+	    }
+	}
+    }
+
+  /* Invoke the regular ELF backend linker to do all the work.  */
+  return _bfd_elf_link_check_relocs (abfd, info);
+}
+
+/* Set the sizes of the dynamic sections.  */
+
+bfd_boolean
+_bfd_x86_elf_size_dynamic_sections (bfd *output_bfd,
+				    struct bfd_link_info *info)
+{
+  struct elf_x86_link_hash_table *htab;
+  bfd *dynobj;
+  asection *s;
+  bfd_boolean relocs;
+  bfd *ibfd;
+  const struct elf_backend_data *bed
+    = get_elf_backend_data (output_bfd);
+
+  htab = elf_x86_hash_table (info, bed->target_id);
+  if (htab == NULL)
+    return FALSE;
+  dynobj = htab->elf.dynobj;
+  if (dynobj == NULL)
+    abort ();
+
+  /* Set up .got offsets for local syms, and space for local dynamic
+     relocs.  */
+  for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next)
+    {
+      bfd_signed_vma *local_got;
+      bfd_signed_vma *end_local_got;
+      char *local_tls_type;
+      bfd_vma *local_tlsdesc_gotent;
+      bfd_size_type locsymcount;
+      Elf_Internal_Shdr *symtab_hdr;
+      asection *srel;
+
+      if (! is_x86_elf (ibfd, htab))
+	continue;
+
+      for (s = ibfd->sections; s != NULL; s = s->next)
+	{
+	  struct elf_dyn_relocs *p;
+
+	  for (p = ((struct elf_dyn_relocs *)
+		     elf_section_data (s)->local_dynrel);
+	       p != NULL;
+	       p = p->next)
+	    {
+	      if (!bfd_is_abs_section (p->sec)
+		  && bfd_is_abs_section (p->sec->output_section))
+		{
+		  /* Input section has been discarded, either because
+		     it is a copy of a linkonce section or due to
+		     linker script /DISCARD/, so we'll be discarding
+		     the relocs too.  */
+		}
+	      else if (htab->target_os == is_vxworks
+		       && strcmp (p->sec->output_section->name,
+				  ".tls_vars") == 0)
+		{
+		  /* Relocations in vxworks .tls_vars sections are
+		     handled specially by the loader.  */
+		}
+	      else if (p->count != 0)
+		{
+		  srel = elf_section_data (p->sec)->sreloc;
+		  srel->size += p->count * htab->sizeof_reloc;
+		  if ((p->sec->output_section->flags & SEC_READONLY) != 0
+		      && (info->flags & DF_TEXTREL) == 0)
+		    {
+		      info->flags |= DF_TEXTREL;
+		      if ((info->warn_shared_textrel && bfd_link_pic (info))
+			  || info->error_textrel)
+			/* xgettext:c-format */
+			info->callbacks->einfo
+			  (_("%P: %B: warning: relocation "
+			     "in read-only section `%A'\n"),
+			   p->sec->owner, p->sec);
+		    }
+		}
+	    }
+	}
+
+      local_got = elf_local_got_refcounts (ibfd);
+      if (!local_got)
+	continue;
+
+      symtab_hdr = &elf_symtab_hdr (ibfd);
+      locsymcount = symtab_hdr->sh_info;
+      end_local_got = local_got + locsymcount;
+      local_tls_type = elf_x86_local_got_tls_type (ibfd);
+      local_tlsdesc_gotent = elf_x86_local_tlsdesc_gotent (ibfd);
+      s = htab->elf.sgot;
+      srel = htab->elf.srelgot;
+      for (; local_got < end_local_got;
+	   ++local_got, ++local_tls_type, ++local_tlsdesc_gotent)
+	{
+	  *local_tlsdesc_gotent = (bfd_vma) -1;
+	  if (*local_got > 0)
+	    {
+	      if (GOT_TLS_GDESC_P (*local_tls_type))
+		{
+		  *local_tlsdesc_gotent = htab->elf.sgotplt->size
+		    - elf_x86_compute_jump_table_size (htab);
+		  htab->elf.sgotplt->size += 2 * htab->got_entry_size;
+		  *local_got = (bfd_vma) -2;
+		}
+	      if (! GOT_TLS_GDESC_P (*local_tls_type)
+		  || GOT_TLS_GD_P (*local_tls_type))
+		{
+		  *local_got = s->size;
+		  s->size += htab->got_entry_size;
+		  if (GOT_TLS_GD_P (*local_tls_type)
+		      || *local_tls_type == GOT_TLS_IE_BOTH)
+		    s->size += htab->got_entry_size;
+		}
+	      if (bfd_link_pic (info)
+		  || GOT_TLS_GD_ANY_P (*local_tls_type)
+		  || (*local_tls_type & GOT_TLS_IE))
+		{
+		  if (*local_tls_type == GOT_TLS_IE_BOTH)
+		    srel->size += 2 * htab->sizeof_reloc;
+		  else if (GOT_TLS_GD_P (*local_tls_type)
+			   || ! GOT_TLS_GDESC_P (*local_tls_type))
+		    srel->size += htab->sizeof_reloc;
+		  if (GOT_TLS_GDESC_P (*local_tls_type))
+		    {
+		      htab->elf.srelplt->size += htab->sizeof_reloc;
+		      if (bed->target_id == X86_64_ELF_DATA)
+			htab->tlsdesc_plt = (bfd_vma) -1;
+		    }
+		}
+	    }
+	  else
+	    *local_got = (bfd_vma) -1;
+	}
+    }
+
+  if (htab->tls_ld_or_ldm_got.refcount > 0)
+    {
+      /* Allocate 2 got entries and 1 dynamic reloc for R_386_TLS_LDM
+	 or R_X86_64_TLSLD relocs.  */
+      htab->tls_ld_or_ldm_got.offset = htab->elf.sgot->size;
+      htab->elf.sgot->size += 2 * htab->got_entry_size;
+      htab->elf.srelgot->size += htab->sizeof_reloc;
+    }
+  else
+    htab->tls_ld_or_ldm_got.offset = -1;
+
+  /* Allocate global sym .plt and .got entries, and space for global
+     sym dynamic relocs.  */
+  elf_link_hash_traverse (&htab->elf, elf_x86_allocate_dynrelocs,
+			  info);
+
+  /* Allocate .plt and .got entries, and space for local symbols.  */
+  htab_traverse (htab->loc_hash_table, elf_x86_allocate_local_dynreloc,
+		 info);
+
+  /* For every jump slot reserved in the sgotplt, reloc_count is
+     incremented.  However, when we reserve space for TLS descriptors,
+     it's not incremented, so in order to compute the space reserved
+     for them, it suffices to multiply the reloc count by the jump
+     slot size.
+
+     PR ld/13302: We start next_irelative_index at the end of .rela.plt
+     so that R_{386,X86_64}_IRELATIVE entries come last.  */
+  if (htab->elf.srelplt)
+    {
+      htab->next_tls_desc_index = htab->elf.srelplt->reloc_count;
+      htab->sgotplt_jump_table_size
+	= elf_x86_compute_jump_table_size (htab);
+      htab->next_irelative_index = htab->elf.srelplt->reloc_count - 1;
+    }
+  else if (htab->elf.irelplt)
+    htab->next_irelative_index = htab->elf.irelplt->reloc_count - 1;
+
+  if (htab->tlsdesc_plt)
+    {
+      /* NB: tlsdesc_plt is set only for x86-64.  If we're not using
+	 lazy TLS relocations, don't generate the PLT and GOT entries
+	 they require.  */
+      if ((info->flags & DF_BIND_NOW))
+	htab->tlsdesc_plt = 0;
+      else
+	{
+	  htab->tlsdesc_got = htab->elf.sgot->size;
+	  htab->elf.sgot->size += htab->got_entry_size;
+	  /* Reserve room for the initial entry.
+	     FIXME: we could probably do away with it in this case.  */
+	  if (htab->elf.splt->size == 0)
+	    htab->elf.splt->size = htab->plt.plt_entry_size;
+	  htab->tlsdesc_plt = htab->elf.splt->size;
+	  htab->elf.splt->size += htab->plt.plt_entry_size;
+	}
+    }
+
+  if (htab->elf.sgotplt)
+    {
+      /* Don't allocate .got.plt section if there are no GOT nor PLT
+	 entries and there is no reference to _GLOBAL_OFFSET_TABLE_.  */
+      if ((htab->elf.hgot == NULL
+	   || !htab->elf.hgot->ref_regular_nonweak)
+	  && (htab->elf.sgotplt->size == bed->got_header_size)
+	  && (htab->elf.splt == NULL
+	      || htab->elf.splt->size == 0)
+	  && (htab->elf.sgot == NULL
+	      || htab->elf.sgot->size == 0)
+	  && (htab->elf.iplt == NULL
+	      || htab->elf.iplt->size == 0)
+	  && (htab->elf.igotplt == NULL
+	      || htab->elf.igotplt->size == 0))
+	htab->elf.sgotplt->size = 0;
+    }
+
+  if (_bfd_elf_eh_frame_present (info))
+    {
+      if (htab->plt_eh_frame != NULL
+	  && htab->elf.splt != NULL
+	  && htab->elf.splt->size != 0
+	  && !bfd_is_abs_section (htab->elf.splt->output_section))
+	htab->plt_eh_frame->size = htab->plt.eh_frame_plt_size;
+
+      if (htab->plt_got_eh_frame != NULL
+	  && htab->plt_got != NULL
+	  && htab->plt_got->size != 0
+	  && !bfd_is_abs_section (htab->plt_got->output_section))
+	htab->plt_got_eh_frame->size
+	  = htab->non_lazy_plt->eh_frame_plt_size;
+
+      /* Unwind info for the second PLT and .plt.got sections are
+	 identical.  */
+      if (htab->plt_second_eh_frame != NULL
+	  && htab->plt_second != NULL
+	  && htab->plt_second->size != 0
+	  && !bfd_is_abs_section (htab->plt_second->output_section))
+	htab->plt_second_eh_frame->size
+	  = htab->non_lazy_plt->eh_frame_plt_size;
+    }
+
+  /* We now have determined the sizes of the various dynamic sections.
+     Allocate memory for them.  */
+  relocs = FALSE;
+  for (s = dynobj->sections; s != NULL; s = s->next)
+    {
+      bfd_boolean strip_section = TRUE;
+
+      if ((s->flags & SEC_LINKER_CREATED) == 0)
+	continue;
+
+      if (s == htab->elf.splt
+	  || s == htab->elf.sgot)
+	{
+	  /* Strip this section if we don't need it; see the
+	     comment below.  */
+	  /* We'd like to strip these sections if they aren't needed, but if
+	     we've exported dynamic symbols from them we must leave them.
+	     It's too late to tell BFD to get rid of the symbols.  */
+
+	  if (htab->elf.hplt != NULL)
+	    strip_section = FALSE;
+	}
+      else if (s == htab->elf.sgotplt
+	       || s == htab->elf.iplt
+	       || s == htab->elf.igotplt
+	       || s == htab->plt_second
+	       || s == htab->plt_got
+	       || s == htab->plt_eh_frame
+	       || s == htab->plt_got_eh_frame
+	       || s == htab->plt_second_eh_frame
+	       || s == htab->elf.sdynbss
+	       || s == htab->elf.sdynrelro)
+	{
+	  /* Strip these too.  */
+	}
+      else if (htab->is_reloc_section (bfd_get_section_name (dynobj, s)))
+	{
+	  if (s->size != 0
+	      && s != htab->elf.srelplt
+	      && s != htab->srelplt2)
+	    relocs = TRUE;
+
+	  /* We use the reloc_count field as a counter if we need
+	     to copy relocs into the output file.  */
+	  if (s != htab->elf.srelplt)
+	    s->reloc_count = 0;
+	}
+      else
+	{
+	  /* It's not one of our sections, so don't allocate space.  */
+	  continue;
+	}
+
+      if (s->size == 0)
+	{
+	  /* If we don't need this section, strip it from the
+	     output file.  This is mostly to handle .rel.bss and
+	     .rel.plt.  We must create both sections in
+	     create_dynamic_sections, because they must be created
+	     before the linker maps input sections to output
+	     sections.  The linker does that before
+	     adjust_dynamic_symbol is called, and it is that
+	     function which decides whether anything needs to go
+	     into these sections.  */
+	  if (strip_section)
+	    s->flags |= SEC_EXCLUDE;
+	  continue;
+	}
+
+      if ((s->flags & SEC_HAS_CONTENTS) == 0)
+	continue;
+
+      /* Allocate memory for the section contents.  We use bfd_zalloc
+	 here in case unused entries are not reclaimed before the
+	 section's contents are written out.  This should not happen,
+	 but this way if it does, we get a R_386_NONE or R_X86_64_NONE
+	 reloc instead of garbage.  */
+      s->contents = (unsigned char *) bfd_zalloc (dynobj, s->size);
+      if (s->contents == NULL)
+	return FALSE;
+    }
+
+  if (htab->plt_eh_frame != NULL
+      && htab->plt_eh_frame->contents != NULL)
+    {
+      memcpy (htab->plt_eh_frame->contents,
+	      htab->plt.eh_frame_plt,
+	      htab->plt_eh_frame->size);
+      bfd_put_32 (dynobj, htab->elf.splt->size,
+		  htab->plt_eh_frame->contents + PLT_FDE_LEN_OFFSET);
+    }
+
+  if (htab->plt_got_eh_frame != NULL
+      && htab->plt_got_eh_frame->contents != NULL)
+    {
+      memcpy (htab->plt_got_eh_frame->contents,
+	      htab->non_lazy_plt->eh_frame_plt,
+	      htab->plt_got_eh_frame->size);
+      bfd_put_32 (dynobj, htab->plt_got->size,
+		  (htab->plt_got_eh_frame->contents
+		   + PLT_FDE_LEN_OFFSET));
+    }
+
+  if (htab->plt_second_eh_frame != NULL
+      && htab->plt_second_eh_frame->contents != NULL)
+    {
+      memcpy (htab->plt_second_eh_frame->contents,
+	      htab->non_lazy_plt->eh_frame_plt,
+	      htab->plt_second_eh_frame->size);
+      bfd_put_32 (dynobj, htab->plt_second->size,
+		  (htab->plt_second_eh_frame->contents
+		   + PLT_FDE_LEN_OFFSET));
+    }
+
+  if (htab->elf.dynamic_sections_created)
+    {
+      /* Add some entries to the .dynamic section.  We fill in the
+	 values later, in elf_{i386,x86_64}_finish_dynamic_sections,
+	 but we must add the entries now so that we get the correct
+	 size for the .dynamic section.  The DT_DEBUG entry is filled
+	 in by the dynamic linker and used by the debugger.  */
+#define add_dynamic_entry(TAG, VAL) \
+  _bfd_elf_add_dynamic_entry (info, TAG, VAL)
+
+      if (bfd_link_executable (info))
+	{
+	  if (!add_dynamic_entry (DT_DEBUG, 0))
+	    return FALSE;
+	}
+
+      if (htab->elf.splt->size != 0)
+	{
+	  /* DT_PLTGOT is used by prelink even if there is no PLT
+	     relocation.  */
+	  if (!add_dynamic_entry (DT_PLTGOT, 0))
+	    return FALSE;
+	}
+
+      if (htab->elf.srelplt->size != 0)
+	{
+	  if (!add_dynamic_entry (DT_PLTRELSZ, 0)
+	      || !add_dynamic_entry (DT_PLTREL, htab->dt_reloc)
+	      || !add_dynamic_entry (DT_JMPREL, 0))
+	    return FALSE;
+	}
+
+      if (htab->tlsdesc_plt
+	  && (!add_dynamic_entry (DT_TLSDESC_PLT, 0)
+	      || !add_dynamic_entry (DT_TLSDESC_GOT, 0)))
+	return FALSE;
+
+      if (relocs)
+	{
+	  if (!add_dynamic_entry (htab->dt_reloc, 0)
+	      || !add_dynamic_entry (htab->dt_reloc_sz, 0)
+	      || !add_dynamic_entry (htab->dt_reloc_ent,
+				     htab->sizeof_reloc))
+	    return FALSE;
+
+	  /* If any dynamic relocs apply to a read-only section,
+	     then we need a DT_TEXTREL entry.  */
+	  if ((info->flags & DF_TEXTREL) == 0)
+	    elf_link_hash_traverse (&htab->elf, maybe_set_textrel, info);
+
+	  if ((info->flags & DF_TEXTREL) != 0)
+	    {
+	      if (htab->readonly_dynrelocs_against_ifunc)
+		{
+		  info->callbacks->einfo
+		    (_("%P%X: read-only segment has dynamic IFUNC relocations;"
+		       " recompile with -fPIC\n"));
+		  bfd_set_error (bfd_error_bad_value);
+		  return FALSE;
+		}
+
+	      if (!add_dynamic_entry (DT_TEXTREL, 0))
+		return FALSE;
+	    }
+	}
+      if (htab->target_os == is_vxworks
+	  && !elf_vxworks_add_dynamic_entries (output_bfd, info))
+	return FALSE;
+    }
+#undef add_dynamic_entry
+
+  return TRUE;
+}
+
+/* Finish up the x86 dynamic sections.  */
+
+struct elf_x86_link_hash_table *
+_bfd_x86_elf_finish_dynamic_sections (bfd *output_bfd,
+				      struct bfd_link_info *info)
+{
+  struct elf_x86_link_hash_table *htab;
+  const struct elf_backend_data *bed;
+  bfd *dynobj;
+  asection *sdyn;
+  bfd_byte *dyncon, *dynconend;
+  bfd_size_type sizeof_dyn;
+
+  bed = get_elf_backend_data (output_bfd);
+  htab = elf_x86_hash_table (info, bed->target_id);
+  if (htab == NULL)
+    return htab;
+
+  dynobj = htab->elf.dynobj;
+  sdyn = bfd_get_linker_section (dynobj, ".dynamic");
+
+  /* GOT is always created in setup_gnu_properties.  But it may not be
+     needed.  .got.plt section may be needed for static IFUNC.  */
+  if (htab->elf.sgotplt && htab->elf.sgotplt->size > 0)
+    {
+      bfd_vma dynamic_addr;
+
+      if (bfd_is_abs_section (htab->elf.sgotplt->output_section))
+	{
+	  _bfd_error_handler
+	    (_("discarded output section: `%A'"), htab->elf.sgotplt);
+	  return NULL;
+	}
+
+      elf_section_data (htab->elf.sgotplt->output_section)->this_hdr.sh_entsize
+	= htab->got_entry_size;
+
+      dynamic_addr = (sdyn == NULL
+		      ? (bfd_vma) 0
+		      : sdyn->output_section->vma + sdyn->output_offset);
+
+      /* Set the first entry in the global offset table to the address
+	 of the dynamic section.  Write GOT[1] and GOT[2], needed for
+	 the dynamic linker.  */
+      if (htab->got_entry_size == 8)
+	{
+	  bfd_put_64 (output_bfd, dynamic_addr,
+		      htab->elf.sgotplt->contents);
+	  bfd_put_64 (output_bfd, (bfd_vma) 0,
+		      htab->elf.sgotplt->contents + 8);
+	  bfd_put_64 (output_bfd, (bfd_vma) 0,
+		      htab->elf.sgotplt->contents + 8*2);
+	}
+      else
+	{
+	  bfd_put_32 (output_bfd, dynamic_addr,
+		      htab->elf.sgotplt->contents);
+	  bfd_put_32 (output_bfd, 0,
+		      htab->elf.sgotplt->contents + 4);
+	  bfd_put_32 (output_bfd, 0,
+		      htab->elf.sgotplt->contents + 4*2);
+	}
+    }
+
+  if (!htab->elf.dynamic_sections_created)
+    return htab;
+
+  if (sdyn == NULL || htab->elf.sgot == NULL)
+    abort ();
+
+  sizeof_dyn = bed->s->sizeof_dyn;
+  dyncon = sdyn->contents;
+  dynconend = sdyn->contents + sdyn->size;
+  for (; dyncon < dynconend; dyncon += sizeof_dyn)
+    {
+      Elf_Internal_Dyn dyn;
+      asection *s;
+
+      (*bed->s->swap_dyn_in) (dynobj, dyncon, &dyn);
+
+      switch (dyn.d_tag)
+	{
+	default:
+	  if (htab->target_os == is_vxworks
+	      && elf_vxworks_finish_dynamic_entry (output_bfd, &dyn))
+	    break;
+	  continue;
+
+	case DT_PLTGOT:
+	  s = htab->elf.sgotplt;
+	  dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
+	  break;
+
+	case DT_JMPREL:
+	  dyn.d_un.d_ptr = htab->elf.srelplt->output_section->vma;
+	  break;
+
+	case DT_PLTRELSZ:
+	  s = htab->elf.srelplt->output_section;
+	  dyn.d_un.d_val = s->size;
+	  break;
+
+	case DT_TLSDESC_PLT:
+	  s = htab->elf.splt;
+	  dyn.d_un.d_ptr = s->output_section->vma + s->output_offset
+	    + htab->tlsdesc_plt;
+	  break;
+
+	case DT_TLSDESC_GOT:
+	  s = htab->elf.sgot;
+	  dyn.d_un.d_ptr = s->output_section->vma + s->output_offset
+	    + htab->tlsdesc_got;
+	  break;
+	}
+
+      (*bed->s->swap_dyn_out) (output_bfd, &dyn, dyncon);
+    }
+
+  if (htab->plt_got != NULL && htab->plt_got->size > 0)
+    elf_section_data (htab->plt_got->output_section)
+      ->this_hdr.sh_entsize = htab->non_lazy_plt->plt_entry_size;
+
+  if (htab->plt_second != NULL && htab->plt_second->size > 0)
+    elf_section_data (htab->plt_second->output_section)
+      ->this_hdr.sh_entsize = htab->non_lazy_plt->plt_entry_size;
+
+  /* Adjust .eh_frame for .plt section.  */
+  if (htab->plt_eh_frame != NULL
+      && htab->plt_eh_frame->contents != NULL)
+    {
+      if (htab->elf.splt != NULL
+	  && htab->elf.splt->size != 0
+	  && (htab->elf.splt->flags & SEC_EXCLUDE) == 0
+	  && htab->elf.splt->output_section != NULL
+	  && htab->plt_eh_frame->output_section != NULL)
+	{
+	  bfd_vma plt_start = htab->elf.splt->output_section->vma;
+	  bfd_vma eh_frame_start = htab->plt_eh_frame->output_section->vma
+				   + htab->plt_eh_frame->output_offset
+				   + PLT_FDE_START_OFFSET;
+	  bfd_put_signed_32 (dynobj, plt_start - eh_frame_start,
+			     htab->plt_eh_frame->contents
+			     + PLT_FDE_START_OFFSET);
+	}
+
+      if (htab->plt_eh_frame->sec_info_type == SEC_INFO_TYPE_EH_FRAME)
+	{
+	  if (! _bfd_elf_write_section_eh_frame (output_bfd, info,
+						 htab->plt_eh_frame,
+						 htab->plt_eh_frame->contents))
+	    return NULL;
+	}
+    }
+
+  /* Adjust .eh_frame for .plt.got section.  */
+  if (htab->plt_got_eh_frame != NULL
+      && htab->plt_got_eh_frame->contents != NULL)
+    {
+      if (htab->plt_got != NULL
+	  && htab->plt_got->size != 0
+	  && (htab->plt_got->flags & SEC_EXCLUDE) == 0
+	  && htab->plt_got->output_section != NULL
+	  && htab->plt_got_eh_frame->output_section != NULL)
+	{
+	  bfd_vma plt_start = htab->plt_got->output_section->vma;
+	  bfd_vma eh_frame_start = htab->plt_got_eh_frame->output_section->vma
+				   + htab->plt_got_eh_frame->output_offset
+				   + PLT_FDE_START_OFFSET;
+	  bfd_put_signed_32 (dynobj, plt_start - eh_frame_start,
+			     htab->plt_got_eh_frame->contents
+			     + PLT_FDE_START_OFFSET);
+	}
+      if (htab->plt_got_eh_frame->sec_info_type == SEC_INFO_TYPE_EH_FRAME)
+	{
+	  if (! _bfd_elf_write_section_eh_frame (output_bfd, info,
+						 htab->plt_got_eh_frame,
+						 htab->plt_got_eh_frame->contents))
+	    return NULL;
+	}
+    }
+
+  /* Adjust .eh_frame for the second PLT section.  */
+  if (htab->plt_second_eh_frame != NULL
+      && htab->plt_second_eh_frame->contents != NULL)
+    {
+      if (htab->plt_second != NULL
+	  && htab->plt_second->size != 0
+	  && (htab->plt_second->flags & SEC_EXCLUDE) == 0
+	  && htab->plt_second->output_section != NULL
+	  && htab->plt_second_eh_frame->output_section != NULL)
+	{
+	  bfd_vma plt_start = htab->plt_second->output_section->vma;
+	  bfd_vma eh_frame_start
+	    = (htab->plt_second_eh_frame->output_section->vma
+	       + htab->plt_second_eh_frame->output_offset
+	       + PLT_FDE_START_OFFSET);
+	  bfd_put_signed_32 (dynobj, plt_start - eh_frame_start,
+			     htab->plt_second_eh_frame->contents
+			     + PLT_FDE_START_OFFSET);
+	}
+      if (htab->plt_second_eh_frame->sec_info_type
+	  == SEC_INFO_TYPE_EH_FRAME)
+	{
+	  if (! _bfd_elf_write_section_eh_frame (output_bfd, info,
+						 htab->plt_second_eh_frame,
+						 htab->plt_second_eh_frame->contents))
+	    return NULL;
+	}
+    }
+
+  if (htab->elf.sgot && htab->elf.sgot->size > 0)
+    elf_section_data (htab->elf.sgot->output_section)->this_hdr.sh_entsize
+      = htab->got_entry_size;
+
+  return htab;
+}
+
+
+bfd_boolean
+_bfd_x86_elf_always_size_sections (bfd *output_bfd,
+				   struct bfd_link_info *info)
+{
+  asection *tls_sec = elf_hash_table (info)->tls_sec;
+
+  if (tls_sec)
+    {
+      struct elf_link_hash_entry *tlsbase;
+
+      tlsbase = elf_link_hash_lookup (elf_hash_table (info),
+				      "_TLS_MODULE_BASE_",
+				      FALSE, FALSE, FALSE);
+
+      if (tlsbase && tlsbase->type == STT_TLS)
+	{
+	  struct elf_x86_link_hash_table *htab;
+	  struct bfd_link_hash_entry *bh = NULL;
+	  const struct elf_backend_data *bed
+	    = get_elf_backend_data (output_bfd);
+
+	  htab = elf_x86_hash_table (info, bed->target_id);
+	  if (htab == NULL)
+	    return FALSE;
+
+	  if (!(_bfd_generic_link_add_one_symbol
+		(info, output_bfd, "_TLS_MODULE_BASE_", BSF_LOCAL,
+		 tls_sec, 0, NULL, FALSE,
+		 bed->collect, &bh)))
+	    return FALSE;
+
+	  htab->tls_module_base = bh;
+
+	  tlsbase = (struct elf_link_hash_entry *)bh;
+	  tlsbase->def_regular = 1;
+	  tlsbase->other = STV_HIDDEN;
+	  tlsbase->root.linker_def = 1;
+	  (*bed->elf_backend_hide_symbol) (info, tlsbase, TRUE);
+	}
+    }
+
+  return TRUE;
+}
+
+void
+_bfd_x86_elf_merge_symbol_attribute (struct elf_link_hash_entry *h,
+				     const Elf_Internal_Sym *isym,
+				     bfd_boolean definition,
+				     bfd_boolean dynamic ATTRIBUTE_UNUSED)
+{
+  if (definition)
+    {
+      struct elf_x86_link_hash_entry *eh
+	= (struct elf_x86_link_hash_entry *) h;
+      eh->def_protected = (ELF_ST_VISIBILITY (isym->st_other)
+			   == STV_PROTECTED);
+    }
+}
+
+/* Copy the extra info we tack onto an elf_link_hash_entry.  */
+
+void
+_bfd_x86_elf_copy_indirect_symbol (struct bfd_link_info *info,
+				   struct elf_link_hash_entry *dir,
+				   struct elf_link_hash_entry *ind)
+{
+  struct elf_x86_link_hash_entry *edir, *eind;
+
+  edir = (struct elf_x86_link_hash_entry *) dir;
+  eind = (struct elf_x86_link_hash_entry *) ind;
+
+  if (eind->dyn_relocs != NULL)
+    {
+      if (edir->dyn_relocs != NULL)
+	{
+	  struct elf_dyn_relocs **pp;
+	  struct elf_dyn_relocs *p;
+
+	  /* Add reloc counts against the indirect sym to the direct sym
+	     list.  Merge any entries against the same section.  */
+	  for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
+	    {
+	      struct elf_dyn_relocs *q;
+
+	      for (q = edir->dyn_relocs; q != NULL; q = q->next)
+		if (q->sec == p->sec)
+		  {
+		    q->pc_count += p->pc_count;
+		    q->count += p->count;
+		    *pp = p->next;
+		    break;
+		  }
+	      if (q == NULL)
+		pp = &p->next;
+	    }
+	  *pp = edir->dyn_relocs;
+	}
+
+      edir->dyn_relocs = eind->dyn_relocs;
+      eind->dyn_relocs = NULL;
+    }
+
+  if (ind->root.type == bfd_link_hash_indirect
+      && dir->got.refcount <= 0)
+    {
+      edir->tls_type = eind->tls_type;
+      eind->tls_type = GOT_UNKNOWN;
+    }
+
+  /* Copy gotoff_ref so that elf_i386_adjust_dynamic_symbol will
+     generate a R_386_COPY reloc.  */
+  edir->gotoff_ref |= eind->gotoff_ref;
+
+  edir->zero_undefweak |= eind->zero_undefweak;
+
+  if (ELIMINATE_COPY_RELOCS
+      && ind->root.type != bfd_link_hash_indirect
+      && dir->dynamic_adjusted)
+    {
+      /* If called to transfer flags for a weakdef during processing
+	 of elf_adjust_dynamic_symbol, don't copy non_got_ref.
+	 We clear it ourselves for ELIMINATE_COPY_RELOCS.  */
+      if (dir->versioned != versioned_hidden)
+	dir->ref_dynamic |= ind->ref_dynamic;
+      dir->ref_regular |= ind->ref_regular;
+      dir->ref_regular_nonweak |= ind->ref_regular_nonweak;
+      dir->needs_plt |= ind->needs_plt;
+      dir->pointer_equality_needed |= ind->pointer_equality_needed;
+    }
+  else
+    _bfd_elf_link_hash_copy_indirect (info, dir, ind);
+}
+
+/* Remove undefined weak symbol from the dynamic symbol table if it
+   is resolved to 0.   */
+
+bfd_boolean
+_bfd_x86_elf_fixup_symbol (struct bfd_link_info *info,
+			   struct elf_link_hash_entry *h)
+{
+  if (h->dynindx != -1
+      && UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, elf_x86_hash_entry (h)))
+    {
+      h->dynindx = -1;
+      _bfd_elf_strtab_delref (elf_hash_table (info)->dynstr,
+			      h->dynstr_index);
+    }
+  return TRUE;
+}
+
+/* Return TRUE if symbol should be hashed in the `.gnu.hash' section.  */
+
+bfd_boolean
+_bfd_x86_elf_hash_symbol (struct elf_link_hash_entry *h)
+{
+  if (h->plt.offset != (bfd_vma) -1
+      && !h->def_regular
+      && !h->pointer_equality_needed)
+    return FALSE;
+
+  return _bfd_elf_hash_symbol (h);
+}
+
+/* Adjust a symbol defined by a dynamic object and referenced by a
+   regular object.  The current definition is in some section of the
+   dynamic object, but we're not including those sections.  We have to
+   change the definition to something the rest of the link can
+   understand.  */
+
+bfd_boolean
+_bfd_x86_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
+				    struct elf_link_hash_entry *h)
+{
+  struct elf_x86_link_hash_table *htab;
+  asection *s, *srel;
+  struct elf_x86_link_hash_entry *eh;
+  struct elf_dyn_relocs *p;
+  const struct elf_backend_data *bed
+    = get_elf_backend_data (info->output_bfd);
+
+  /* STT_GNU_IFUNC symbol must go through PLT. */
+  if (h->type == STT_GNU_IFUNC)
+    {
+      /* All local STT_GNU_IFUNC references must be treate as local
+	 calls via local PLT.  */
+      if (h->ref_regular
+	  && SYMBOL_CALLS_LOCAL (info, h))
+	{
+	  bfd_size_type pc_count = 0, count = 0;
+	  struct elf_dyn_relocs **pp;
+
+	  eh = (struct elf_x86_link_hash_entry *) h;
+	  for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
+	    {
+	      pc_count += p->pc_count;
+	      p->count -= p->pc_count;
+	      p->pc_count = 0;
+	      count += p->count;
+	      if (p->count == 0)
+		*pp = p->next;
+	      else
+		pp = &p->next;
+	    }
+
+	  if (pc_count || count)
+	    {
+	      h->non_got_ref = 1;
+	      if (pc_count)
+		{
+		  /* Increment PLT reference count only for PC-relative
+		     references.  */
+		  h->needs_plt = 1;
+		  if (h->plt.refcount <= 0)
+		    h->plt.refcount = 1;
+		  else
+		    h->plt.refcount += 1;
+		}
+	    }
+	}
+
+      if (h->plt.refcount <= 0)
+	{
+	  h->plt.offset = (bfd_vma) -1;
+	  h->needs_plt = 0;
+	}
+      return TRUE;
+    }
+
+  /* If this is a function, put it in the procedure linkage table.  We
+     will fill in the contents of the procedure linkage table later,
+     when we know the address of the .got section.  */
+  if (h->type == STT_FUNC
+      || h->needs_plt)
+    {
+      if (h->plt.refcount <= 0
+	  || SYMBOL_CALLS_LOCAL (info, h)
+	  || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+	      && h->root.type == bfd_link_hash_undefweak))
+	{
+	  /* This case can occur if we saw a PLT32 reloc in an input
+	     file, but the symbol was never referred to by a dynamic
+	     object, or if all references were garbage collected.  In
+	     such a case, we don't actually need to build a procedure
+	     linkage table, and we can just do a PC32 reloc instead.  */
+	  h->plt.offset = (bfd_vma) -1;
+	  h->needs_plt = 0;
+	}
+
+      return TRUE;
+    }
+  else
+    /* It's possible that we incorrectly decided a .plt reloc was needed
+     * for an R_386_PC32/R_X86_64_PC32 reloc to a non-function sym in
+       check_relocs.  We can't decide accurately between function and
+       non-function syms in check-relocs;  Objects loaded later in
+       the link may change h->type.  So fix it now.  */
+    h->plt.offset = (bfd_vma) -1;
+
+  eh = (struct elf_x86_link_hash_entry *) h;
+
+  /* If this is a weak symbol, and there is a real definition, the
+     processor independent code will have arranged for us to see the
+     real definition first, and we can just use the same value.  */
+  if (h->is_weakalias)
+    {
+      struct elf_link_hash_entry *def = weakdef (h);
+      BFD_ASSERT (def->root.type == bfd_link_hash_defined);
+      h->root.u.def.section = def->root.u.def.section;
+      h->root.u.def.value = def->root.u.def.value;
+      if (ELIMINATE_COPY_RELOCS
+	  || info->nocopyreloc
+	  || SYMBOL_NO_COPYRELOC (info, eh))
+	{
+	  /* NB: needs_copy is always 0 for i386.  */
+	  h->non_got_ref = def->non_got_ref;
+	  eh->needs_copy = def->needs_copy;
+	}
+      return TRUE;
+    }
+
+  /* This is a reference to a symbol defined by a dynamic object which
+     is not a function.  */
+
+  /* If we are creating a shared library, we must presume that the
+     only references to the symbol are via the global offset table.
+     For such cases we need not do anything here; the relocations will
+     be handled correctly by relocate_section.  */
+  if (!bfd_link_executable (info))
+    return TRUE;
+
+  /* If there are no references to this symbol that do not use the
+     GOT nor R_386_GOTOFF relocation, we don't need to generate a copy
+     reloc.  NB: gotoff_ref is always 0 for x86-64.  */
+  if (!h->non_got_ref && !eh->gotoff_ref)
+    return TRUE;
+
+  /* If -z nocopyreloc was given, we won't generate them either.  */
+  if (info->nocopyreloc || SYMBOL_NO_COPYRELOC (info, eh))
+    {
+      h->non_got_ref = 0;
+      return TRUE;
+    }
+
+  htab = elf_x86_hash_table (info, bed->target_id);
+  if (htab == NULL)
+    return FALSE;
+
+  /* If there aren't any dynamic relocs in read-only sections nor
+     R_386_GOTOFF relocation, then we can keep the dynamic relocs and
+     avoid the copy reloc.  This doesn't work on VxWorks, where we can
+     not have dynamic relocations (other than copy and jump slot
+     relocations) in an executable.  */
+  if (ELIMINATE_COPY_RELOCS
+      && (bed->target_id == X86_64_ELF_DATA
+	  || (!eh->gotoff_ref
+	      && htab->target_os != is_vxworks)))
+    {
+      /* If we don't find any dynamic relocs in read-only sections,
+	 then we'll be keeping the dynamic relocs and avoiding the copy
+	 reloc.  */
+      if (!readonly_dynrelocs (h))
+	{
+	  h->non_got_ref = 0;
+	  return TRUE;
+	}
+    }
+
+  /* We must allocate the symbol in our .dynbss section, which will
+     become part of the .bss section of the executable.  There will be
+     an entry for this symbol in the .dynsym section.  The dynamic
+     object will contain position independent code, so all references
+     from the dynamic object to this symbol will go through the global
+     offset table.  The dynamic linker will use the .dynsym entry to
+     determine the address it must put in the global offset table, so
+     both the dynamic object and the regular object will refer to the
+     same memory location for the variable.  */
+
+  /* We must generate a R_386_COPY/R_X86_64_COPY reloc to tell the
+     dynamic linker to copy the initial value out of the dynamic object
+     and into the runtime process image.  */
+  if ((h->root.u.def.section->flags & SEC_READONLY) != 0)
+    {
+      s = htab->elf.sdynrelro;
+      srel = htab->elf.sreldynrelro;
+    }
+  else
+    {
+      s = htab->elf.sdynbss;
+      srel = htab->elf.srelbss;
+    }
+  if ((h->root.u.def.section->flags & SEC_ALLOC) != 0 && h->size != 0)
+    {
+      srel->size += htab->sizeof_reloc;
+      h->needs_copy = 1;
+    }
+
+  return _bfd_elf_adjust_dynamic_copy (info, h, s);
+}
+
+void
+_bfd_x86_elf_hide_symbol (struct bfd_link_info *info,
+			  struct elf_link_hash_entry *h,
+			  bfd_boolean force_local)
+{
+  if (h->root.type == bfd_link_hash_undefweak
+      && info->nointerp
+      && bfd_link_pie (info))
+    {
+      /* When there is no dynamic interpreter in PIE, make the undefined
+	 weak symbol dynamic so that PC relative branch to the undefined
+	 weak symbol will land to address 0.  */
+      struct elf_x86_link_hash_entry *eh = elf_x86_hash_entry (h);
+      if (h->plt.refcount > 0
+	  || eh->plt_got.refcount > 0)
+	return;
+    }
+
+  _bfd_elf_link_hash_hide_symbol (info, h, force_local);
+}
+
+/* Return TRUE if a symbol is referenced locally.  It is similar to
+   SYMBOL_REFERENCES_LOCAL, but it also checks version script.  It
+   works in check_relocs.  */
+
+bfd_boolean
+_bfd_x86_elf_link_symbol_references_local (struct bfd_link_info *info,
+					   struct elf_link_hash_entry *h)
+{
+  struct elf_x86_link_hash_entry *eh = elf_x86_hash_entry (h);
+  struct elf_x86_link_hash_table *htab
+    = (struct elf_x86_link_hash_table *) info->hash;
+
+  if (eh->local_ref > 1)
+    return TRUE;
+
+  if (eh->local_ref == 1)
+    return FALSE;
+
+  /* Unversioned symbols defined in regular objects can be forced local
+     by linker version script.  A weak undefined symbol is forced local
+     if
+     1. It has non-default visibility.  Or
+     2. When building executable, there is no dynamic linker.  Or
+     3. or "-z nodynamic-undefined-weak" is used.
+   */
+  if (SYMBOL_REFERENCES_LOCAL (info, h)
+      || (h->root.type == bfd_link_hash_undefweak
+	  && (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
+	      || (bfd_link_executable (info)
+		  && htab->interp == NULL)
+	      || info->dynamic_undefined_weak == 0))
+      || ((h->def_regular || ELF_COMMON_DEF_P (h))
+	  && h->versioned == unversioned
+	  && info->version_info != NULL
+	  && bfd_hide_sym_by_version (info->version_info,
+				      h->root.root.string)))
+    {
+      eh->local_ref = 2;
+      return TRUE;
+    }
+
+  eh->local_ref = 1;
+  return FALSE;
+}
+
+/* Return the section that should be marked against GC for a given
+   relocation.	*/
+
+asection *
+_bfd_x86_elf_gc_mark_hook (asection *sec,
+			   struct bfd_link_info *info,
+			   Elf_Internal_Rela *rel,
+			   struct elf_link_hash_entry *h,
+			   Elf_Internal_Sym *sym)
+{
+  /* Compiler should optimize this out.  */
+  if (((unsigned int) R_X86_64_GNU_VTINHERIT
+       != (unsigned int) R_386_GNU_VTINHERIT)
+      || ((unsigned int) R_X86_64_GNU_VTENTRY
+	  != (unsigned int) R_386_GNU_VTENTRY))
+    abort ();
+
+  if (h != NULL)
+    switch (ELF32_R_TYPE (rel->r_info))
+      {
+      case R_X86_64_GNU_VTINHERIT:
+      case R_X86_64_GNU_VTENTRY:
+	return NULL;
+      }
+
+  return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
+}
+
+static bfd_vma
+elf_i386_get_plt_got_vma (struct elf_x86_plt *plt_p ATTRIBUTE_UNUSED,
+			  bfd_vma off,
+			  bfd_vma offset ATTRIBUTE_UNUSED,
+			  bfd_vma got_addr)
+{
+  return got_addr + off;
+}
+
+static bfd_vma
+elf_x86_64_get_plt_got_vma (struct elf_x86_plt *plt_p,
+			    bfd_vma off,
+			    bfd_vma offset,
+			    bfd_vma got_addr ATTRIBUTE_UNUSED)
+{
+  return plt_p->sec->vma + offset + off + plt_p->plt_got_insn_size;
+}
+
+static bfd_boolean
+elf_i386_valid_plt_reloc_p (unsigned int type)
+{
+  return (type == R_386_JUMP_SLOT
+	  || type == R_386_GLOB_DAT
+	  || type == R_386_IRELATIVE);
+}
+
+static bfd_boolean
+elf_x86_64_valid_plt_reloc_p (unsigned int type)
+{
+  return (type == R_X86_64_JUMP_SLOT
+	  || type == R_X86_64_GLOB_DAT
+	  || type == R_X86_64_IRELATIVE);
+}
+
+long
+_bfd_x86_elf_get_synthetic_symtab (bfd *abfd,
+				   long count,
+				   long relsize,
+				   bfd_vma got_addr,
+				   struct elf_x86_plt plts[],
+				   asymbol **dynsyms,
+				   asymbol **ret)
+{
+  long size, i, n, len;
+  int j;
+  unsigned int plt_got_offset, plt_entry_size;
+  asymbol *s;
+  bfd_byte *plt_contents;
+  long dynrelcount;
+  arelent **dynrelbuf, *p;
+  char *names;
+  const struct elf_backend_data *bed;
+  bfd_vma (*get_plt_got_vma) (struct elf_x86_plt *, bfd_vma, bfd_vma,
+			      bfd_vma);
+  bfd_boolean (*valid_plt_reloc_p) (unsigned int);
+
+  if (count == 0)
+    return -1;
+
+  dynrelbuf = (arelent **) bfd_malloc (relsize);
+  if (dynrelbuf == NULL)
+    return -1;
+
+  dynrelcount = bfd_canonicalize_dynamic_reloc (abfd, dynrelbuf,
+						dynsyms);
+  if (dynrelcount <= 0)
+    return -1;
+
+  /* Sort the relocs by address.  */
+  qsort (dynrelbuf, dynrelcount, sizeof (arelent *),
+	 _bfd_x86_elf_compare_relocs);
+
+  size = count * sizeof (asymbol);
+
+  /* Allocate space for @plt suffixes.  */
+  n = 0;
+  for (i = 0; i < dynrelcount; i++)
+    {
+      p = dynrelbuf[i];
+      size += strlen ((*p->sym_ptr_ptr)->name) + sizeof ("@plt");
+      if (p->addend != 0)
+	size += sizeof ("+0x") - 1 + 8 + 8 * ABI_64_P (abfd);
+    }
+
+  s = *ret = (asymbol *) bfd_zmalloc (size);
+  if (s == NULL)
+    goto bad_return;
+
+  bed = get_elf_backend_data (abfd);
+
+  if (bed->target_id == X86_64_ELF_DATA)
+    {
+      get_plt_got_vma = elf_x86_64_get_plt_got_vma;
+      valid_plt_reloc_p = elf_x86_64_valid_plt_reloc_p;
+    }
+  else
+    {
+      get_plt_got_vma = elf_i386_get_plt_got_vma;
+      valid_plt_reloc_p = elf_i386_valid_plt_reloc_p;
+      if (got_addr)
+	{
+	  /* Check .got.plt and then .got to get the _GLOBAL_OFFSET_TABLE_
+	     address.  */
+	  asection *sec = bfd_get_section_by_name (abfd, ".got.plt");
+	  if (sec != NULL)
+	    got_addr = sec->vma;
+	  else
+	    {
+	      sec = bfd_get_section_by_name (abfd, ".got");
+	      if (sec != NULL)
+		got_addr = sec->vma;
+	    }
+
+	  if (got_addr == (bfd_vma) -1)
+	    goto bad_return;
+	}
+    }
+
+  /* Check for each PLT section.  */
+  names = (char *) (s + count);
+  size = 0;
+  n = 0;
+  for (j = 0; plts[j].name != NULL; j++)
+    if ((plt_contents = plts[j].contents) != NULL)
+      {
+	long k;
+	bfd_vma offset;
+	asection *plt;
+	struct elf_x86_plt *plt_p = &plts[j];
+
+	plt_got_offset = plt_p->plt_got_offset;
+	plt_entry_size = plt_p->plt_entry_size;
+
+	plt = plt_p->sec;
+
+	if ((plt_p->type & plt_lazy))
+	  {
+	    /* Skip PLT0 in lazy PLT.  */
+	    k = 1;
+	    offset = plt_entry_size;
+	  }
+	else
+	  {
+	    k = 0;
+	    offset = 0;
+	  }
+
+	/* Check each PLT entry against dynamic relocations.  */
+	for (; k < plt_p->count; k++)
+	  {
+	    int off;
+	    bfd_vma got_vma;
+	    long min, max, mid;
+
+	    /* Get the GOT offset for i386 or the PC-relative offset
+	       for x86-64, a signed 32-bit integer.  */
+	    off = H_GET_32 (abfd, (plt_contents + offset
+				   + plt_got_offset));
+	    got_vma = get_plt_got_vma (plt_p, off, offset, got_addr);
+
+	    /* Binary search.  */
+	    p = dynrelbuf[0];
+	    min = 0;
+	    max = dynrelcount;
+	    while ((min + 1) < max)
+	      {
+		arelent *r;
+
+		mid = (min + max) / 2;
+		r = dynrelbuf[mid];
+		if (got_vma > r->address)
+		  min = mid;
+		else if (got_vma < r->address)
+		  max = mid;
+		else
+		  {
+		    p = r;
+		    break;
+		  }
+	      }
+
+	    /* Skip unknown relocation.  PR 17512: file: bc9d6cf5.  */
+	    if (got_vma == p->address
+		&& p->howto != NULL
+		&& valid_plt_reloc_p (p->howto->type))
+	      {
+		*s = **p->sym_ptr_ptr;
+		/* Undefined syms won't have BSF_LOCAL or BSF_GLOBAL
+		   set.  Since we are defining a symbol, ensure one
+		   of them is set.  */
+		if ((s->flags & BSF_LOCAL) == 0)
+		  s->flags |= BSF_GLOBAL;
+		s->flags |= BSF_SYNTHETIC;
+		/* This is no longer a section symbol.  */
+		s->flags &= ~BSF_SECTION_SYM;
+		s->section = plt;
+		s->the_bfd = plt->owner;
+		s->value = offset;
+		s->udata.p = NULL;
+		s->name = names;
+		len = strlen ((*p->sym_ptr_ptr)->name);
+		memcpy (names, (*p->sym_ptr_ptr)->name, len);
+		names += len;
+		if (p->addend != 0)
+		  {
+		    char buf[30], *a;
+
+		    memcpy (names, "+0x", sizeof ("+0x") - 1);
+		    names += sizeof ("+0x") - 1;
+		    bfd_sprintf_vma (abfd, buf, p->addend);
+		    for (a = buf; *a == '0'; ++a)
+		      ;
+		    size = strlen (a);
+		    memcpy (names, a, size);
+		    names += size;
+		  }
+		memcpy (names, "@plt", sizeof ("@plt"));
+		names += sizeof ("@plt");
+		n++;
+		s++;
+		/* There should be only one entry in PLT for a given
+		   symbol.  Set howto to NULL after processing a PLT
+		   entry to guard against corrupted PLT.  */
+		p->howto = NULL;
+	      }
+	    offset += plt_entry_size;
+	  }
+      }
+
+  /* PLT entries with R_386_TLS_DESC relocations are skipped.  */
+  if (n == 0)
+    {
+bad_return:
+      count = -1;
+    }
+  else
+    count = n;
+
+  for (j = 0; plts[j].name != NULL; j++)
+    if (plts[j].contents != NULL)
+      free (plts[j].contents);
+
+  free (dynrelbuf);
+
+  return count;
+}
+
+/* Parse x86 GNU properties.  */
+
+enum elf_property_kind
+_bfd_x86_elf_parse_gnu_properties (bfd *abfd, unsigned int type,
+				   bfd_byte *ptr, unsigned int datasz)
+{
+  elf_property *prop;
+
+  switch (type)
+    {
+    case GNU_PROPERTY_X86_ISA_1_USED:
+    case GNU_PROPERTY_X86_ISA_1_NEEDED:
+    case GNU_PROPERTY_X86_FEATURE_1_AND:
+      if (datasz != 4)
+	{
+	  _bfd_error_handler
+	    ((type == GNU_PROPERTY_X86_ISA_1_USED
+	      ? _("error: %B: <corrupt x86 ISA used size: 0x%x>")
+	      : (type == GNU_PROPERTY_X86_ISA_1_NEEDED
+		 ? _("error: %B: <corrupt x86 ISA needed size: 0x%x>")
+		 : _("error: %B: <corrupt x86 feature size: 0x%x>"))),
+	     abfd, datasz);
+	  return property_corrupt;
+	}
+      prop = _bfd_elf_get_property (abfd, type, datasz);
+      /* Combine properties of the same type.  */
+      prop->u.number |= bfd_h_get_32 (abfd, ptr);
+      prop->pr_kind = property_number;
+      break;
+
+    default:
+      return property_ignored;
+    }
+
+  return property_number;
+}
+
+/* Merge x86 GNU property BPROP with APROP.  If APROP isn't NULL,
+   return TRUE if APROP is updated.  Otherwise, return TRUE if BPROP
+   should be merged with ABFD.  */
+
+bfd_boolean
+_bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
+				   bfd *abfd ATTRIBUTE_UNUSED,
+				   elf_property *aprop,
+				   elf_property *bprop)
+{
+  unsigned int number, features;
+  bfd_boolean updated = FALSE;
+  unsigned int pr_type = aprop != NULL ? aprop->pr_type : bprop->pr_type;
+
+  switch (pr_type)
+    {
+    case GNU_PROPERTY_X86_ISA_1_USED:
+    case GNU_PROPERTY_X86_ISA_1_NEEDED:
+      if (aprop != NULL && bprop != NULL)
+	{
+	  number = aprop->u.number;
+	  aprop->u.number = number | bprop->u.number;
+	  updated = number != (unsigned int) aprop->u.number;
+	}
+      else
+	{
+	  /* Return TRUE if APROP is NULL to indicate that BPROP should
+	     be added to ABFD.  */
+	  updated = aprop == NULL;
+	}
+      break;
+
+    case GNU_PROPERTY_X86_FEATURE_1_AND:
+      /* Only one of APROP and BPROP can be NULL:
+	 1. APROP & BPROP when both APROP and BPROP aren't NULL.
+	 2. If APROP is NULL, remove x86 feature.
+	 3. Otherwise, do nothing.
+       */
+      if (aprop != NULL && bprop != NULL)
+	{
+	  features = 0;
+	  if (info->ibt)
+	    features = GNU_PROPERTY_X86_FEATURE_1_IBT;
+	  if (info->shstk)
+	    features |= GNU_PROPERTY_X86_FEATURE_1_SHSTK;
+	  number = aprop->u.number;
+	  /* Add GNU_PROPERTY_X86_FEATURE_1_IBT and
+	     GNU_PROPERTY_X86_FEATURE_1_SHSTK.  */
+	  aprop->u.number = (number & bprop->u.number) | features;
+	  updated = number != (unsigned int) aprop->u.number;
+	  /* Remove the property if all feature bits are cleared.  */
+	  if (aprop->u.number == 0)
+	    aprop->pr_kind = property_remove;
+	}
+      else
+	{
+	  features = 0;
+	  if (info->ibt)
+	    features = GNU_PROPERTY_X86_FEATURE_1_IBT;
+	  if (info->shstk)
+	    features |= GNU_PROPERTY_X86_FEATURE_1_SHSTK;
+	  if (features)
+	    {
+	      /* Add GNU_PROPERTY_X86_FEATURE_1_IBT and
+		 GNU_PROPERTY_X86_FEATURE_1_SHSTK.  */
+	      if (aprop != NULL)
+		{
+		  number = aprop->u.number;
+		  aprop->u.number = number | features;
+		  updated = number != (unsigned int) aprop->u.number;
+		}
+	      else
+		{
+		  bprop->u.number |= features;
+		  updated = TRUE;
+		}
+	    }
+	  else if (aprop != NULL)
+	    {
+	      aprop->pr_kind = property_remove;
+	      updated = TRUE;
+	    }
+	}
+      break;
+
+    default:
+      /* Never should happen.  */
+      abort ();
+    }
+
+  return updated;
+}
+
+/* Set up x86 GNU properties.  Return the first relocatable ELF input
+   with GNU properties if found.  Otherwise, return NULL.  */
+
+bfd *
+_bfd_x86_elf_link_setup_gnu_properties
+  (struct bfd_link_info *info, struct elf_x86_init_table *init_table)
+{
+  bfd_boolean normal_target;
+  bfd_boolean lazy_plt;
+  asection *sec, *pltsec;
+  bfd *dynobj;
+  bfd_boolean use_ibt_plt;
+  unsigned int plt_alignment, features;
+  struct elf_x86_link_hash_table *htab;
+  bfd *pbfd;
+  bfd *ebfd = NULL;
+  elf_property *prop;
+  const struct elf_backend_data *bed;
+  unsigned int class_align = ABI_64_P (info->output_bfd) ? 3 : 2;
+  unsigned int got_align;
+
+  features = 0;
+  if (info->ibt)
+    features = GNU_PROPERTY_X86_FEATURE_1_IBT;
+  if (info->shstk)
+    features |= GNU_PROPERTY_X86_FEATURE_1_SHSTK;
+
+  /* Find a normal input file with GNU property note.  */
+  for (pbfd = info->input_bfds;
+       pbfd != NULL;
+       pbfd = pbfd->link.next)
+    if (bfd_get_flavour (pbfd) == bfd_target_elf_flavour
+	&& bfd_count_sections (pbfd) != 0)
+      {
+	ebfd = pbfd;
+
+	if (elf_properties (pbfd) != NULL)
+	  break;
+      }
+
+  if (ebfd != NULL && features)
+    {
+      /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and
+	 GNU_PROPERTY_X86_FEATURE_1_SHSTK.  */
+      prop = _bfd_elf_get_property (ebfd,
+				    GNU_PROPERTY_X86_FEATURE_1_AND,
+				    4);
+      prop->u.number |= features;
+      prop->pr_kind = property_number;
+
+      /* Create the GNU property note section if needed.  */
+      if (pbfd == NULL)
+	{
+	  sec = bfd_make_section_with_flags (ebfd,
+					     NOTE_GNU_PROPERTY_SECTION_NAME,
+					     (SEC_ALLOC
+					      | SEC_LOAD
+					      | SEC_IN_MEMORY
+					      | SEC_READONLY
+					      | SEC_HAS_CONTENTS
+					      | SEC_DATA));
+	  if (sec == NULL)
+	    info->callbacks->einfo (_("%F%P: failed to create GNU property section\n"));
+
+	  if (!bfd_set_section_alignment (ebfd, sec, class_align))
+	    {
+error_alignment:
+	      info->callbacks->einfo (_("%F%A: failed to align section\n"),
+				      sec);
+	    }
+
+	  elf_section_type (sec) = SHT_NOTE;
+	}
+    }
+
+  pbfd = _bfd_elf_link_setup_gnu_properties (info);
+
+  bed = get_elf_backend_data (info->output_bfd);
+
+  htab = elf_x86_hash_table (info, bed->target_id);
+  if (htab == NULL)
+    return pbfd;
+
+  htab->r_info = init_table->r_info;
+  htab->r_sym = init_table->r_sym;
+
+  if (bfd_link_relocatable (info))
+    return pbfd;
+
+  htab->plt0_pad_byte = init_table->plt0_pad_byte;
+
+  use_ibt_plt = info->ibtplt || info->ibt;
+  if (!use_ibt_plt && pbfd != NULL)
+    {
+      /* Check if GNU_PROPERTY_X86_FEATURE_1_IBT is on.  */
+      elf_property_list *p;
+
+      /* The property list is sorted in order of type.  */
+      for (p = elf_properties (pbfd); p; p = p->next)
+	{
+	  if (GNU_PROPERTY_X86_FEATURE_1_AND == p->property.pr_type)
+	    {
+	      use_ibt_plt = !!(p->property.u.number
+			       & GNU_PROPERTY_X86_FEATURE_1_IBT);
+	      break;
+	    }
+	  else if (GNU_PROPERTY_X86_FEATURE_1_AND < p->property.pr_type)
+	    break;
+	}
+    }
+
+  dynobj = htab->elf.dynobj;
+
+  /* Set htab->elf.dynobj here so that there is no need to check and
+     set it in check_relocs.  */
+  if (dynobj == NULL)
+    {
+      if (pbfd != NULL)
+	{
+	  htab->elf.dynobj = pbfd;
+	  dynobj = pbfd;
+	}
+      else
+	{
+	  bfd *abfd;
+
+	  /* Find a normal input file to hold linker created
+	     sections.  */
+	  for (abfd = info->input_bfds;
+	       abfd != NULL;
+	       abfd = abfd->link.next)
+	    if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
+		&& (abfd->flags
+		    & (DYNAMIC | BFD_LINKER_CREATED | BFD_PLUGIN)) == 0)
+	      {
+		htab->elf.dynobj = abfd;
+		dynobj = abfd;
+		break;
+	      }
+	}
+    }
+
+  /* Return if there are no normal input files.  */
+  if (dynobj == NULL)
+    return pbfd;
+
+  /* Even when lazy binding is disabled by "-z now", the PLT0 entry may
+     still be used with LD_AUDIT or LD_PROFILE if PLT entry is used for
+     canonical function address.  */
+  htab->plt.has_plt0 = 1;
+  normal_target = htab->target_os == is_normal;
+
+  if (normal_target)
+    {
+      if (use_ibt_plt)
+	{
+	  htab->lazy_plt = init_table->lazy_ibt_plt;
+	  htab->non_lazy_plt = init_table->non_lazy_ibt_plt;
+	}
+      else
+	{
+	  htab->lazy_plt = init_table->lazy_plt;
+	  htab->non_lazy_plt = init_table->non_lazy_plt;
+	}
+    }
+  else
+    {
+      htab->lazy_plt = init_table->lazy_plt;
+      htab->non_lazy_plt = NULL;
+    }
+
+  pltsec = htab->elf.splt;
+
+  /* If the non-lazy PLT is available, use it for all PLT entries if
+     there are no PLT0 or no .plt section.  */
+  if (htab->non_lazy_plt != NULL
+      && (!htab->plt.has_plt0 || pltsec == NULL))
+    {
+      lazy_plt = FALSE;
+      if (bfd_link_pic (info))
+	htab->plt.plt_entry = htab->non_lazy_plt->pic_plt_entry;
+      else
+	htab->plt.plt_entry = htab->non_lazy_plt->plt_entry;
+      htab->plt.plt_entry_size = htab->non_lazy_plt->plt_entry_size;
+      htab->plt.plt_got_offset = htab->non_lazy_plt->plt_got_offset;
+      htab->plt.plt_got_insn_size
+	= htab->non_lazy_plt->plt_got_insn_size;
+      htab->plt.eh_frame_plt_size
+	= htab->non_lazy_plt->eh_frame_plt_size;
+      htab->plt.eh_frame_plt = htab->non_lazy_plt->eh_frame_plt;
+    }
+  else
+    {
+      lazy_plt = TRUE;
+      if (bfd_link_pic (info))
+	{
+	  htab->plt.plt0_entry = htab->lazy_plt->pic_plt0_entry;
+	  htab->plt.plt_entry = htab->lazy_plt->pic_plt_entry;
+	}
+      else
+	{
+	  htab->plt.plt0_entry = htab->lazy_plt->plt0_entry;
+	  htab->plt.plt_entry = htab->lazy_plt->plt_entry;
+	}
+      htab->plt.plt_entry_size = htab->lazy_plt->plt_entry_size;
+      htab->plt.plt_got_offset = htab->lazy_plt->plt_got_offset;
+      htab->plt.plt_got_insn_size
+	= htab->lazy_plt->plt_got_insn_size;
+      htab->plt.eh_frame_plt_size
+	= htab->lazy_plt->eh_frame_plt_size;
+      htab->plt.eh_frame_plt = htab->lazy_plt->eh_frame_plt;
+    }
+
+  if (htab->target_os == is_vxworks
+      && !elf_vxworks_create_dynamic_sections (dynobj, info,
+					       &htab->srelplt2))
+    {
+      info->callbacks->einfo (_("%F%P: failed to create VxWorks dynamic sections\n"));
+      return pbfd;
+    }
+
+  /* Since create_dynamic_sections isn't always called, but GOT
+     relocations need GOT relocations, create them here so that we
+     don't need to do it in check_relocs.  */
+  if (htab->elf.sgot == NULL
+      && !_bfd_elf_create_got_section (dynobj, info))
+    info->callbacks->einfo (_("%F%P: failed to create GOT sections\n"));
+
+  got_align = (bed->target_id == X86_64_ELF_DATA) ? 3 : 2;
+
+  /* Align .got and .got.plt sections to their entry size.  Do it here
+     instead of in create_dynamic_sections so that they are always
+     properly aligned even if create_dynamic_sections isn't called.  */
+  sec = htab->elf.sgot;
+  if (!bfd_set_section_alignment (dynobj, sec, got_align))
+    goto error_alignment;
+
+  sec = htab->elf.sgotplt;
+  if (!bfd_set_section_alignment (dynobj, sec, got_align))
+    goto error_alignment;
+
+  /* Create the ifunc sections here so that check_relocs can be
+     simplified.  */
+  if (!_bfd_elf_create_ifunc_sections (dynobj, info))
+    info->callbacks->einfo (_("%F%P: failed to create ifunc sections\n"));
+
+  plt_alignment = bfd_log2 (htab->plt.plt_entry_size);
+
+  if (pltsec != NULL)
+    {
+      /* Whe creating executable, set the contents of the .interp
+	 section to the interpreter.  */
+      if (bfd_link_executable (info) && !info->nointerp)
+	{
+	  asection *s = bfd_get_linker_section (dynobj, ".interp");
+	  if (s == NULL)
+	    abort ();
+	  s->size = htab->dynamic_interpreter_size;
+	  s->contents = (unsigned char *) htab->dynamic_interpreter;
+	  htab->interp = s;
+	}
+
+      /* Don't change PLT section alignment for NaCl since it uses
+	 64-byte PLT entry and sets PLT section alignment to 32
+	 bytes.  Don't create additional PLT sections for NaCl.  */
+      if (normal_target)
+	{
+	  flagword pltflags = (bed->dynamic_sec_flags
+			       | SEC_ALLOC
+			       | SEC_CODE
+			       | SEC_LOAD
+			       | SEC_READONLY);
+	  unsigned int non_lazy_plt_alignment
+	    = bfd_log2 (htab->non_lazy_plt->plt_entry_size);
+
+	  sec = pltsec;
+	  if (!bfd_set_section_alignment (sec->owner, sec,
+					  plt_alignment))
+	    goto error_alignment;
+
+	  /* Create the GOT procedure linkage table.  */
+	  sec = bfd_make_section_anyway_with_flags (dynobj,
+						    ".plt.got",
+						    pltflags);
+	  if (sec == NULL)
+	    info->callbacks->einfo (_("%F%P: failed to create GOT PLT section\n"));
+
+	  if (!bfd_set_section_alignment (dynobj, sec,
+					  non_lazy_plt_alignment))
+	    goto error_alignment;
+
+	  htab->plt_got = sec;
+
+	  if (lazy_plt)
+	    {
+	      sec = NULL;
+
+	      if (use_ibt_plt)
+		{
+		  /* Create the second PLT for Intel IBT support.  IBT
+		     PLT is supported only for non-NaCl target and is
+		     is needed only for lazy binding.  */
+		  sec = bfd_make_section_anyway_with_flags (dynobj,
+							    ".plt.sec",
+							    pltflags);
+		  if (sec == NULL)
+		    info->callbacks->einfo (_("%F%P: failed to create IBT-enabled PLT section\n"));
+
+		  if (!bfd_set_section_alignment (dynobj, sec,
+						  plt_alignment))
+		    goto error_alignment;
+		}
+	      else if (info->bndplt && ABI_64_P (dynobj))
+		{
+		  /* Create the second PLT for Intel MPX support.  MPX
+		     PLT is supported only for non-NaCl target in 64-bit
+		     mode and is needed only for lazy binding.  */
+		  sec = bfd_make_section_anyway_with_flags (dynobj,
+							    ".plt.sec",
+							    pltflags);
+		  if (sec == NULL)
+		    info->callbacks->einfo (_("%F%P: failed to create BND PLT section\n"));
+
+		  if (!bfd_set_section_alignment (dynobj, sec,
+						  non_lazy_plt_alignment))
+		    goto error_alignment;
+		}
+
+	      htab->plt_second = sec;
+	    }
+	}
+
+      if (!info->no_ld_generated_unwind_info)
+	{
+	  flagword flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY
+			    | SEC_HAS_CONTENTS | SEC_IN_MEMORY
+			    | SEC_LINKER_CREATED);
+
+	  sec = bfd_make_section_anyway_with_flags (dynobj,
+						    ".eh_frame",
+						    flags);
+	  if (sec == NULL)
+	    info->callbacks->einfo (_("%F%P: failed to create PLT .eh_frame section\n"));
+
+	  if (!bfd_set_section_alignment (dynobj, sec, class_align))
+	    goto error_alignment;
+
+	  htab->plt_eh_frame = sec;
+
+	  if (htab->plt_got != NULL)
+	    {
+	      sec = bfd_make_section_anyway_with_flags (dynobj,
+							".eh_frame",
+							flags);
+	      if (sec == NULL)
+		info->callbacks->einfo (_("%F%P: failed to create GOT PLT .eh_frame section\n"));
+
+	      if (!bfd_set_section_alignment (dynobj, sec, class_align))
+		goto error_alignment;
+
+	      htab->plt_got_eh_frame = sec;
+	    }
+
+	  if (htab->plt_second != NULL)
+	    {
+	      sec = bfd_make_section_anyway_with_flags (dynobj,
+							".eh_frame",
+							flags);
+	      if (sec == NULL)
+		info->callbacks->einfo (_("%F%P: failed to create the second PLT .eh_frame section\n"));
+
+	      if (!bfd_set_section_alignment (dynobj, sec, class_align))
+		goto error_alignment;
+
+	      htab->plt_second_eh_frame = sec;
+	    }
+	}
+    }
+
+  if (normal_target)
+    {
+      /* The .iplt section is used for IFUNC symbols in static
+	 executables.  */
+      sec = htab->elf.iplt;
+      if (sec != NULL
+	  && !bfd_set_section_alignment (sec->owner, sec,
+					 plt_alignment))
+	goto error_alignment;
+    }
+
+  return pbfd;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-x86.h ./bfd/elfxx-x86.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/elfxx-x86.h	1970-01-01 00:00:00.000000000 +0000
+++ ./bfd/elfxx-x86.h	2018-01-09 02:04:54.000000000 +0000
@@ -0,0 +1,695 @@
+/* x86 specific support for ELF
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+#include "sysdep.h"
+#include "bfd.h"
+#include "bfdlink.h"
+#include "libbfd.h"
+#include "elf-bfd.h"
+#include "bfd_stdint.h"
+#include "hashtab.h"
+
+#define PLT_CIE_LENGTH		20
+#define PLT_FDE_LENGTH		36
+#define PLT_FDE_START_OFFSET	4 + PLT_CIE_LENGTH + 8
+#define PLT_FDE_LEN_OFFSET	4 + PLT_CIE_LENGTH + 12
+
+#define ABI_64_P(abfd) \
+  (get_elf_backend_data (abfd)->s->elfclass == ELFCLASS64)
+
+/* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid
+   copying dynamic variables from a shared lib into an app's dynbss
+   section, and instead use a dynamic relocation to point into the
+   shared lib.  */
+#define ELIMINATE_COPY_RELOCS 1
+
+#define elf_x86_hash_table(p, id) \
+  (is_elf_hash_table ((p)->hash) \
+   && elf_hash_table_id ((struct elf_link_hash_table *) ((p)->hash)) == (id) \
+    ? ((struct elf_x86_link_hash_table *) ((p)->hash)) : NULL)
+
+/* Will references to this symbol always be local in this object?  */
+#define SYMBOL_REFERENCES_LOCAL_P(INFO, H) \
+  _bfd_x86_elf_link_symbol_references_local ((INFO), (H))
+
+/* TRUE if an undefined weak symbol should be resolved to 0.  Local
+   undefined weak symbol is always resolved to 0.  Reference to an
+   undefined weak symbol is resolved to 0 in executable if undefined
+   weak symbol should be resolved to 0 (zero_undefweak > 0).  */
+#define UNDEFINED_WEAK_RESOLVED_TO_ZERO(INFO, EH) \
+  ((EH)->elf.root.type == bfd_link_hash_undefweak		 \
+   && (SYMBOL_REFERENCES_LOCAL_P ((INFO), &(EH)->elf)		 \
+       || (bfd_link_executable (INFO)				 \
+	   && (EH)->zero_undefweak > 0)))
+
+/* Should copy relocation be generated for a symbol.  Don't generate
+   copy relocation against a protected symbol defined in a shared
+   object with GNU_PROPERTY_NO_COPY_ON_PROTECTED.  */
+#define SYMBOL_NO_COPYRELOC(INFO, EH) \
+  ((EH)->def_protected \
+   && ((EH)->elf.root.type == bfd_link_hash_defined \
+       || (EH)->elf.root.type == bfd_link_hash_defweak) \
+   && elf_has_no_copy_on_protected ((EH)->elf.root.u.def.section->owner) \
+   && ((EH)->elf.root.u.def.section->owner->flags & DYNAMIC) != 0 \
+   && ((EH)->elf.root.u.def.section->flags & SEC_CODE) == 0)
+
+/* TRUE if dynamic relocation is needed.  If we are creating a shared
+   library, and this is a reloc against a global symbol, or a non PC
+   relative reloc against a local symbol, then we need to copy the reloc
+   into the shared library.  However, if we are linking with -Bsymbolic,
+   we do not need to copy a reloc against a global symbol which is
+   defined in an object we are including in the link (i.e., DEF_REGULAR
+   is set).  At this point we have not seen all the input files, so it
+   is possible that DEF_REGULAR is not set now but will be set later (it
+   is never cleared).  In case of a weak definition, DEF_REGULAR may be
+   cleared later by a strong definition in a shared library.  We account
+   for that possibility below by storing information in the relocs_copied
+   field of the hash table entry.  A similar situation occurs when
+   creating shared libraries and symbol visibility changes render the
+   symbol local.
+
+   If on the other hand, we are creating an executable, we may need to
+   keep relocations for symbols satisfied by a dynamic library if we
+   manage to avoid copy relocs for the symbol.
+
+   We also need to generate dynamic pointer relocation against
+   STT_GNU_IFUNC symbol in the non-code section.  */
+#define NEED_DYNAMIC_RELOCATION_P(INFO, H, SEC, R_TYPE, POINTER_TYPE) \
+  ((bfd_link_pic (INFO) \
+    && (! X86_PCREL_TYPE_P (R_TYPE) \
+	|| ((H) != NULL \
+	    && (! (bfd_link_pie (INFO) \
+		   || SYMBOLIC_BIND ((INFO), (H))) \
+		|| (H)->root.type == bfd_link_hash_defweak \
+		|| !(H)->def_regular)))) \
+		|| ((H) != NULL \
+		    && (H)->type == STT_GNU_IFUNC \
+		    && (R_TYPE) == POINTER_TYPE \
+		    && ((SEC)->flags & SEC_CODE) == 0) \
+		    || (ELIMINATE_COPY_RELOCS \
+			&& !bfd_link_pic (INFO) \
+			&& (H) != NULL \
+			&& ((H)->root.type == bfd_link_hash_defweak \
+			    || !(H)->def_regular)))
+
+/* TRUE if dynamic relocation should be generated.  Don't copy a
+   pc-relative relocation into the output file if the symbol needs
+   copy reloc or the symbol is undefined when building executable.
+   Copy dynamic function pointer relocations.  Don't generate dynamic
+   relocations against resolved undefined weak symbols in PIE, except
+   when PC32_RELOC is TRUE.  Undefined weak symbol is bound locally
+   when PIC is false.  */
+#define GENERATE_DYNAMIC_RELOCATION_P(INFO, EH, R_TYPE, \
+				      NEED_COPY_RELOC_IN_PIE, \
+				      RESOLVED_TO_ZERO, PC32_RELOC) \
+  ((bfd_link_pic (INFO) \
+    && !(NEED_COPY_RELOC_IN_PIE) \
+    && ((EH) == NULL \
+	|| ((ELF_ST_VISIBILITY ((EH)->elf.other) == STV_DEFAULT \
+	     && (!(RESOLVED_TO_ZERO) || PC32_RELOC)) \
+	    || (EH)->elf.root.type != bfd_link_hash_undefweak)) \
+    && ((!X86_PCREL_TYPE_P (R_TYPE) \
+	 && !X86_SIZE_TYPE_P (R_TYPE)) \
+	 || ! SYMBOL_CALLS_LOCAL ((INFO), &(EH)->elf))) \
+   || (ELIMINATE_COPY_RELOCS \
+       && !bfd_link_pic (INFO) \
+       && (EH) != NULL \
+       && (EH)->elf.dynindx != -1 \
+       && (!(EH)->elf.non_got_ref \
+	   || ((EH)->elf.root.type == bfd_link_hash_undefweak \
+	       && !(RESOLVED_TO_ZERO))) \
+	       && (((EH)->elf.def_dynamic && !(EH)->elf.def_regular) \
+		   || (EH)->elf.root.type == bfd_link_hash_undefined)))
+
+/* TRUE if this input relocation should be copied to output.  H->dynindx
+   may be -1 if this symbol was marked to become local.  */
+#define COPY_INPUT_RELOC_P(INFO, H, R_TYPE) \
+  ((H) != NULL \
+   && (H)->dynindx != -1 \
+   && (X86_PCREL_TYPE_P (R_TYPE) \
+       || !(bfd_link_executable (INFO) || SYMBOLIC_BIND ((INFO), (H))) \
+       || !(H)->def_regular))
+
+/* TRUE if this is actually a static link, or it is a -Bsymbolic link
+   and the symbol is defined locally, or the symbol was forced to be
+   local because of a version file.  */
+#define RESOLVED_LOCALLY_P(INFO, H, HTAB) \
+  (!WILL_CALL_FINISH_DYNAMIC_SYMBOL ((HTAB)->elf.dynamic_sections_created, \
+				     bfd_link_pic (INFO), (H)) \
+   || (bfd_link_pic (INFO) \
+       && SYMBOL_REFERENCES_LOCAL_P ((INFO), (H))) \
+       || (ELF_ST_VISIBILITY ((H)->other) \
+	   && (H)->root.type == bfd_link_hash_undefweak))
+
+/* TRUE if relative relocation should be generated.  GOT reference to
+   global symbol in PIC will lead to dynamic symbol.  It becomes a
+   problem when "time" or "times" is defined as a variable in an
+   executable, clashing with functions of the same name in libc.  If a
+   symbol isn't undefined weak symbol, don't make it dynamic in PIC and
+   generate relative relocation.  */
+#define GENERATE_RELATIVE_RELOC_P(INFO, H) \
+  ((H)->dynindx == -1 \
+   && !(H)->forced_local \
+   && (H)->root.type != bfd_link_hash_undefweak \
+   && bfd_link_pic (INFO))
+
+/* TRUE if this is a pointer reference to a local IFUNC.  */
+#define POINTER_LOCAL_IFUNC_P(INFO, H) \
+  ((H)->dynindx == -1 \
+   || (H)->forced_local \
+   || bfd_link_executable (INFO))
+
+/* TRUE if this is a PLT reference to a local IFUNC.  */
+#define PLT_LOCAL_IFUNC_P(INFO, H) \
+  ((H)->dynindx == -1 \
+   || ((bfd_link_executable (INFO) \
+	|| ELF_ST_VISIBILITY ((H)->other) != STV_DEFAULT) \
+	&& (H)->def_regular \
+	&& (H)->type == STT_GNU_IFUNC))
+
+/* TRUE if TLS IE->LE transition is OK.  */
+#define TLS_TRANSITION_IE_TO_LE_P(INFO, H, TLS_TYPE) \
+  (bfd_link_executable (INFO) \
+   && (H) != NULL \
+   && (H)->dynindx == -1 \
+   && (TLS_TYPE & GOT_TLS_IE))
+
+/* Verify that the symbol has an entry in the procedure linkage table.  */
+#define VERIFY_PLT_ENTRY(INFO, H, PLT, GOTPLT, RELPLT, LOCAL_UNDEFWEAK) \
+  do \
+    { \
+      if (((H)->dynindx == -1 \
+	   && !LOCAL_UNDEFWEAK \
+	   && !(((H)->forced_local || bfd_link_executable (INFO)) \
+		&& (H)->def_regular \
+		&& (H)->type == STT_GNU_IFUNC)) \
+	  || (PLT) == NULL \
+	  || (GOTPLT) == NULL \
+	  || (RELPLT) == NULL) \
+	abort (); \
+    } \
+  while (0);
+
+/* Verify that the symbol supports copy relocation.  */
+#define VERIFY_COPY_RELOC(H, HTAB) \
+  do \
+    { \
+      if ((H)->dynindx == -1 \
+	  || ((H)->root.type != bfd_link_hash_defined \
+	      && (H)->root.type != bfd_link_hash_defweak) \
+	  || (HTAB)->elf.srelbss == NULL \
+	  || (HTAB)->elf.sreldynrelro == NULL) \
+	abort (); \
+    } \
+  while (0);
+
+/* x86 ELF linker hash entry.  */
+
+struct elf_x86_link_hash_entry
+{
+  struct elf_link_hash_entry elf;
+
+  /* Track dynamic relocs copied for this symbol.  */
+  struct elf_dyn_relocs *dyn_relocs;
+
+  unsigned char tls_type;
+
+  /* Bit 0: Symbol has no GOT nor PLT relocations.
+     Bit 1: Symbol has non-GOT/non-PLT relocations in text sections.
+     zero_undefweak is initialized to 1 and undefined weak symbol
+     should be resolved to 0 if zero_undefweak > 0.  */
+  unsigned int zero_undefweak : 2;
+
+  /* Don't call finish_dynamic_symbol on this symbol.  */
+  unsigned int no_finish_dynamic_symbol : 1;
+
+  /* TRUE if symbol is __tls_get_addr.  */
+  unsigned int tls_get_addr : 1;
+
+  /* TRUE if symbol is defined as a protected symbol.  */
+  unsigned int def_protected : 1;
+
+  /* 0: Symbol references are unknown.
+     1: Symbol references aren't local.
+     2: Symbol references are local.
+   */
+  unsigned int local_ref : 2;
+
+  /* TRUE if symbol is defined by linker.  */
+  unsigned int linker_def : 1;
+
+  /* TRUE if symbol is referenced by R_386_GOTOFF relocation.  This is
+     only used by i386.  */
+  unsigned int gotoff_ref : 1;
+
+  /* TRUE if a weak symbol with a real definition needs a copy reloc.
+     When there is a weak symbol with a real definition, the processor
+     independent code will have arranged for us to see the real
+     definition first.  We need to copy the needs_copy bit from the
+     real definition and check it when allowing copy reloc in PIE.  This
+     is only used by x86-64.  */
+  unsigned int needs_copy : 1;
+
+  /* Information about the GOT PLT entry. Filled when there are both
+     GOT and PLT relocations against the same function.  */
+  union gotplt_union plt_got;
+
+  /* Information about the second PLT entry.   */
+  union gotplt_union plt_second;
+
+  /* Offset of the GOTPLT entry reserved for the TLS descriptor,
+     starting at the end of the jump table.  */
+  bfd_vma tlsdesc_got;
+};
+
+struct elf_x86_lazy_plt_layout
+{
+  /* The first entry in an absolute lazy procedure linkage table looks
+     like this.  */
+  const bfd_byte *plt0_entry;
+  unsigned int plt0_entry_size;		 /* Size of PLT0 entry.  */
+
+  /* Later entries in an absolute lazy procedure linkage table look
+     like this.  */
+  const bfd_byte *plt_entry;
+  unsigned int plt_entry_size;		/* Size of each PLT entry.  */
+
+  /* Offsets into plt0_entry that are to be replaced with GOT[1] and
+     GOT[2].  */
+  unsigned int plt0_got1_offset;
+  unsigned int plt0_got2_offset;
+
+  /* Offset of the end of the PC-relative instruction containing
+     plt0_got2_offset.  This is for x86-64 only.  */
+  unsigned int plt0_got2_insn_end;
+
+  /* Offsets into plt_entry that are to be replaced with...  */
+  unsigned int plt_got_offset;    /* ... address of this symbol in .got. */
+  unsigned int plt_reloc_offset;  /* ... offset into relocation table. */
+  unsigned int plt_plt_offset;    /* ... offset to start of .plt. */
+
+  /* Length of the PC-relative instruction containing plt_got_offset.
+     This is used for x86-64 only.  */
+  unsigned int plt_got_insn_size;
+
+  /* Offset of the end of the PC-relative jump to plt0_entry.  This is
+     used for x86-64 only.  */
+  unsigned int plt_plt_insn_end;
+
+  /* Offset into plt_entry where the initial value of the GOT entry
+     points.  */
+  unsigned int plt_lazy_offset;
+
+  /* The first entry in a PIC lazy procedure linkage table looks like
+     this.  */
+  const bfd_byte *pic_plt0_entry;
+
+  /* Subsequent entries in a PIC lazy procedure linkage table look
+     like this.  */
+  const bfd_byte *pic_plt_entry;
+
+  /* .eh_frame covering the lazy .plt section.  */
+  const bfd_byte *eh_frame_plt;
+  unsigned int eh_frame_plt_size;
+};
+
+struct elf_x86_non_lazy_plt_layout
+{
+  /* Entries in an absolute non-lazy procedure linkage table look like
+     this.  */
+  const bfd_byte *plt_entry;
+  /* Entries in a PIC non-lazy procedure linkage table look like this.  */
+  const bfd_byte *pic_plt_entry;
+
+  unsigned int plt_entry_size;		/* Size of each PLT entry.  */
+
+  /* Offsets into plt_entry that are to be replaced with...  */
+  unsigned int plt_got_offset;    /* ... address of this symbol in .got. */
+
+  /* Length of the PC-relative instruction containing plt_got_offset.
+     This is used for x86-64 only.  */
+  unsigned int plt_got_insn_size;
+
+  /* .eh_frame covering the non-lazy .plt section.  */
+  const bfd_byte *eh_frame_plt;
+  unsigned int eh_frame_plt_size;
+};
+
+struct elf_x86_plt_layout
+{
+  /* The first entry in a lazy procedure linkage table looks like this.
+     This is only used for i386 where absolute PLT0 and PIC PLT0 are
+     different.  */
+  const bfd_byte *plt0_entry;
+  /* Entries in a procedure linkage table look like this.  */
+  const bfd_byte *plt_entry;
+  unsigned int plt_entry_size;		/* Size of each PLT entry.  */
+
+  /* 1 has PLT0.  */
+  unsigned int has_plt0;
+
+  /* Offsets into plt_entry that are to be replaced with...  */
+  unsigned int plt_got_offset;    /* ... address of this symbol in .got. */
+
+  /* Length of the PC-relative instruction containing plt_got_offset.
+     This is only used for x86-64.  */
+  unsigned int plt_got_insn_size;
+
+  /* .eh_frame covering the .plt section.  */
+  const bfd_byte *eh_frame_plt;
+  unsigned int eh_frame_plt_size;
+};
+
+/* Values in tls_type of x86 ELF linker hash entry.  */
+#define GOT_UNKNOWN	0
+#define GOT_NORMAL	1
+#define GOT_TLS_GD	2
+#define GOT_TLS_IE	4
+#define GOT_TLS_IE_POS	5
+#define GOT_TLS_IE_NEG	6
+#define GOT_TLS_IE_BOTH 7
+#define GOT_TLS_GDESC	8
+#define GOT_TLS_GD_BOTH_P(type)	\
+  ((type) == (GOT_TLS_GD | GOT_TLS_GDESC))
+#define GOT_TLS_GD_P(type) \
+  ((type) == GOT_TLS_GD || GOT_TLS_GD_BOTH_P (type))
+#define GOT_TLS_GDESC_P(type) \
+  ((type) == GOT_TLS_GDESC || GOT_TLS_GD_BOTH_P (type))
+#define GOT_TLS_GD_ANY_P(type) \
+  (GOT_TLS_GD_P (type) || GOT_TLS_GDESC_P (type))
+
+#define elf_x86_hash_entry(ent) \
+  ((struct elf_x86_link_hash_entry *)(ent))
+
+enum elf_x86_target_os
+{
+  is_normal,
+  is_vxworks,
+  is_nacl
+};
+
+/* x86 ELF linker hash table.  */
+
+struct elf_x86_link_hash_table
+{
+  struct elf_link_hash_table elf;
+
+  /* Short-cuts to get to dynamic linker sections.  */
+  asection *interp;
+  asection *plt_eh_frame;
+  asection *plt_second;
+  asection *plt_second_eh_frame;
+  asection *plt_got;
+  asection *plt_got_eh_frame;
+
+  /* Parameters describing PLT generation, lazy or non-lazy.  */
+  struct elf_x86_plt_layout plt;
+
+  /* Parameters describing lazy PLT generation.  */
+  const struct elf_x86_lazy_plt_layout *lazy_plt;
+
+  /* Parameters describing non-lazy PLT generation.  */
+  const struct elf_x86_non_lazy_plt_layout *non_lazy_plt;
+
+  union
+  {
+    bfd_signed_vma refcount;
+    bfd_vma offset;
+  } tls_ld_or_ldm_got;
+
+  /* The amount of space used by the jump slots in the GOT.  */
+  bfd_vma sgotplt_jump_table_size;
+
+  /* Small local sym cache.  */
+  struct sym_cache sym_cache;
+
+  /* _TLS_MODULE_BASE_ symbol.  */
+  struct bfd_link_hash_entry *tls_module_base;
+
+  /* Used by local STT_GNU_IFUNC symbols.  */
+  htab_t loc_hash_table;
+  void * loc_hash_memory;
+
+  /* The offset into sgot of the GOT entry used by the PLT entry
+     above.  */
+  bfd_vma tlsdesc_got;
+
+  /* The index of the next R_X86_64_JUMP_SLOT entry in .rela.plt.  */
+  bfd_vma next_jump_slot_index;
+  /* The index of the next R_X86_64_IRELATIVE entry in .rela.plt.  */
+  bfd_vma next_irelative_index;
+
+  /* TRUE if there are dynamic relocs against IFUNC symbols that apply
+     to read-only sections.  */
+  bfd_boolean readonly_dynrelocs_against_ifunc;
+
+  /* The (unloaded but important) .rel.plt.unloaded section on VxWorks.
+     This is used for i386 only.  */
+  asection *srelplt2;
+
+  /* The index of the next unused R_386_TLS_DESC slot in .rel.plt.  This
+     is only used for i386.  */
+  bfd_vma next_tls_desc_index;
+
+  /* The offset into splt of the PLT entry for the TLS descriptor
+     resolver.  Special values are 0, if not necessary (or not found
+     to be necessary yet), and -1 if needed but not determined
+     yet.  This is only used for x86-64.  */
+  bfd_vma tlsdesc_plt;
+
+   /* Value used to fill the unused bytes of the first PLT entry.  This
+      is only used for i386.  */
+  bfd_byte plt0_pad_byte;
+
+  bfd_vma (*r_info) (bfd_vma, bfd_vma);
+  bfd_vma (*r_sym) (bfd_vma);
+  bfd_boolean (*is_reloc_section) (const char *);
+  enum elf_target_id target_id;
+  enum elf_x86_target_os target_os;
+  unsigned int sizeof_reloc;
+  unsigned int dt_reloc;
+  unsigned int dt_reloc_sz;
+  unsigned int dt_reloc_ent;
+  unsigned int got_entry_size;
+  unsigned int pointer_r_type;
+  int dynamic_interpreter_size;
+  const char *dynamic_interpreter;
+  const char *tls_get_addr;
+};
+
+/* Architecture-specific backend data for x86.  */
+
+struct elf_x86_backend_data
+{
+  /* Target system.  */
+  enum elf_x86_target_os target_os;
+};
+
+#define get_elf_x86_backend_data(abfd) \
+  ((const struct elf_x86_backend_data *) \
+   get_elf_backend_data (abfd)->arch_data)
+
+struct elf_x86_init_table
+{
+  /* The lazy PLT layout.  */
+  const struct elf_x86_lazy_plt_layout *lazy_plt;
+
+  /* The non-lazy PLT layout.  */
+  const struct elf_x86_non_lazy_plt_layout *non_lazy_plt;
+
+  /* The lazy PLT layout for IBT.  */
+  const struct elf_x86_lazy_plt_layout *lazy_ibt_plt;
+
+  /* The non-lazy PLT layout for IBT.  */
+  const struct elf_x86_non_lazy_plt_layout *non_lazy_ibt_plt;
+
+  bfd_byte plt0_pad_byte;
+
+  bfd_vma (*r_info) (bfd_vma, bfd_vma);
+  bfd_vma (*r_sym) (bfd_vma);
+};
+
+struct elf_x86_obj_tdata
+{
+  struct elf_obj_tdata root;
+
+  /* tls_type for each local got entry.  */
+  char *local_got_tls_type;
+
+  /* GOTPLT entries for TLS descriptors.  */
+  bfd_vma *local_tlsdesc_gotent;
+};
+
+enum elf_x86_plt_type
+{
+  plt_non_lazy = 0,
+  plt_lazy = 1 << 0,
+  plt_pic = 1 << 1,
+  plt_second = 1 << 2,
+  plt_unknown = -1
+};
+
+struct elf_x86_plt
+{
+  const char *name;
+  asection *sec;
+  bfd_byte *contents;
+  enum elf_x86_plt_type type;
+  unsigned int plt_got_offset;
+  unsigned int plt_entry_size;
+  unsigned int plt_got_insn_size;	/* Only used for x86-64.  */
+  long count;
+};
+
+#define elf_x86_tdata(abfd) \
+  ((struct elf_x86_obj_tdata *) (abfd)->tdata.any)
+
+#define elf_x86_local_got_tls_type(abfd) \
+  (elf_x86_tdata (abfd)->local_got_tls_type)
+
+#define elf_x86_local_tlsdesc_gotent(abfd) \
+  (elf_x86_tdata (abfd)->local_tlsdesc_gotent)
+
+#define elf_x86_compute_jump_table_size(htab) \
+  ((htab)->elf.srelplt->reloc_count * (htab)->got_entry_size)
+
+#define is_x86_elf(bfd, htab)				\
+  (bfd_get_flavour (bfd) == bfd_target_elf_flavour	\
+   && elf_tdata (bfd) != NULL				\
+   && elf_object_id (bfd) == (htab)->target_id)
+
+extern bfd_boolean _bfd_x86_elf_mkobject
+  (bfd *);
+
+extern void _bfd_x86_elf_set_tls_module_base
+  (struct bfd_link_info *);
+
+extern bfd_vma _bfd_x86_elf_dtpoff_base
+  (struct bfd_link_info *);
+
+extern bfd_boolean _bfd_x86_elf_readonly_dynrelocs
+  (struct elf_link_hash_entry *, void *);
+
+extern struct elf_link_hash_entry * _bfd_elf_x86_get_local_sym_hash
+  (struct elf_x86_link_hash_table *, bfd *, const Elf_Internal_Rela *,
+   bfd_boolean);
+
+extern hashval_t _bfd_x86_elf_local_htab_hash
+  (const void *);
+
+extern int _bfd_x86_elf_local_htab_eq
+  (const void *, const void *);
+
+extern struct bfd_hash_entry * _bfd_x86_elf_link_hash_newfunc
+  (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
+
+extern struct bfd_link_hash_table * _bfd_x86_elf_link_hash_table_create
+  (bfd *);
+
+extern int _bfd_x86_elf_compare_relocs
+  (const void *, const void *);
+
+extern bfd_boolean _bfd_x86_elf_link_check_relocs
+  (bfd *, struct bfd_link_info *);
+
+extern bfd_boolean _bfd_x86_elf_size_dynamic_sections
+  (bfd *, struct bfd_link_info *);
+
+extern struct elf_x86_link_hash_table *_bfd_x86_elf_finish_dynamic_sections
+  (bfd *, struct bfd_link_info *);
+
+extern bfd_boolean _bfd_x86_elf_always_size_sections
+  (bfd *, struct bfd_link_info *);
+
+extern void _bfd_x86_elf_merge_symbol_attribute
+  (struct elf_link_hash_entry *, const Elf_Internal_Sym *,
+   bfd_boolean, bfd_boolean);
+
+extern void _bfd_x86_elf_copy_indirect_symbol
+  (struct bfd_link_info *, struct elf_link_hash_entry *,
+   struct elf_link_hash_entry *);
+
+extern bfd_boolean _bfd_x86_elf_fixup_symbol
+  (struct bfd_link_info *, struct elf_link_hash_entry *);
+
+extern bfd_boolean _bfd_x86_elf_hash_symbol
+  (struct elf_link_hash_entry *);
+
+extern bfd_boolean _bfd_x86_elf_adjust_dynamic_symbol
+  (struct bfd_link_info *, struct elf_link_hash_entry *);
+
+extern void _bfd_x86_elf_hide_symbol
+  (struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean);
+
+extern bfd_boolean _bfd_x86_elf_link_symbol_references_local
+  (struct bfd_link_info *, struct elf_link_hash_entry *);
+
+extern asection * _bfd_x86_elf_gc_mark_hook
+  (asection *, struct bfd_link_info *, Elf_Internal_Rela *,
+   struct elf_link_hash_entry *, Elf_Internal_Sym *);
+
+extern long _bfd_x86_elf_get_synthetic_symtab
+  (bfd *, long, long, bfd_vma, struct elf_x86_plt [], asymbol **,
+   asymbol **);
+
+extern enum elf_property_kind _bfd_x86_elf_parse_gnu_properties
+  (bfd *, unsigned int, bfd_byte *, unsigned int);
+
+extern bfd_boolean _bfd_x86_elf_merge_gnu_properties
+  (struct bfd_link_info *, bfd *, elf_property *, elf_property *);
+
+extern bfd * _bfd_x86_elf_link_setup_gnu_properties
+  (struct bfd_link_info *, struct elf_x86_init_table *);
+
+#define bfd_elf64_mkobject \
+  _bfd_x86_elf_mkobject
+#define bfd_elf32_mkobject \
+  _bfd_x86_elf_mkobject
+#define bfd_elf64_bfd_link_hash_table_create \
+  _bfd_x86_elf_link_hash_table_create
+#define bfd_elf32_bfd_link_hash_table_create \
+  _bfd_x86_elf_link_hash_table_create
+#define bfd_elf64_bfd_link_check_relocs	\
+  _bfd_x86_elf_link_check_relocs
+#define bfd_elf32_bfd_link_check_relocs \
+  _bfd_x86_elf_link_check_relocs
+
+#define elf_backend_size_dynamic_sections \
+  _bfd_x86_elf_size_dynamic_sections
+#define elf_backend_always_size_sections \
+  _bfd_x86_elf_always_size_sections
+#define elf_backend_merge_symbol_attribute \
+  _bfd_x86_elf_merge_symbol_attribute
+#define elf_backend_copy_indirect_symbol \
+  _bfd_x86_elf_copy_indirect_symbol
+#define elf_backend_fixup_symbol \
+  _bfd_x86_elf_fixup_symbol
+#define elf_backend_hash_symbol \
+  _bfd_x86_elf_hash_symbol
+#define elf_backend_adjust_dynamic_symbol \
+  _bfd_x86_elf_adjust_dynamic_symbol
+#define elf_backend_gc_mark_hook \
+  _bfd_x86_elf_gc_mark_hook
+#define elf_backend_omit_section_dynsym \
+  ((bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *)) bfd_true)
+#define elf_backend_parse_gnu_properties \
+  _bfd_x86_elf_parse_gnu_properties
+#define elf_backend_merge_gnu_properties \
+  _bfd_x86_elf_merge_gnu_properties
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/epoc-pe-arm.c ./bfd/epoc-pe-arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/epoc-pe-arm.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/epoc-pe-arm.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for ARM EPOC PE files.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/epoc-pei-arm.c ./bfd/epoc-pei-arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/epoc-pei-arm.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/epoc-pei-arm.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for ARM EPOC PE IMAGE COFF files.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/format.c ./bfd/format.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/format.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/format.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Generic BFD support for file formats.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/freebsd.h ./bfd/freebsd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/freebsd.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/freebsd.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end definitions used by all FreeBSD targets.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -46,7 +46,7 @@
 	 | (((flags) & 0x3f) << 26))
 #define N_SET_MACHTYPE(execp, machtype) \
 	((execp)->a_info = \
-         ((execp)->a_info & 0xfb00ffff) | ((((int) (machtype)) & 0x3ff) << 16))
+	 ((execp)->a_info & 0xfb00ffff) | ((((int) (machtype)) & 0x3ff) << 16))
 #define N_SET_FLAGS(execp, flags) \
 	((execp)->a_info = \
 	 ((execp)->a_info & 0x03ffffff) | ((flags & 0x03f) << 26))
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/gen-aout.c ./bfd/gen-aout.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/gen-aout.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/gen-aout.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Generate parameters for an a.out system.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/genlink.h ./bfd/genlink.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/genlink.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/genlink.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* genlink.h -- interface to the BFD generic linker
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hash.c ./bfd/hash.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hash.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hash.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* hash.c -- hash table routines for BFD
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Written by Steve Chamberlain <sac@cygnus.com>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -231,8 +231,8 @@ EXAMPLE
 
 .struct bfd_hash_entry *
 .@var{function_name} (struct bfd_hash_entry *entry,
-.                     struct bfd_hash_table *table,
-.                     const char *string)
+.		      struct bfd_hash_table *table,
+.		      const char *string)
 .{
 .  struct @var{entry_type} *ret = (@var{entry_type} *) entry;
 .
@@ -242,12 +242,12 @@ EXAMPLE
 .    {
 .      ret = bfd_hash_allocate (table, sizeof (* ret));
 .      if (ret == NULL)
-.        return NULL;
+.	 return NULL;
 .    }
 .
 . {* Call the allocation method of the base class.  *}
 .  ret = ((@var{entry_type} *)
-.	 @var{base_newfunc} ((struct bfd_hash_entry *) ret, table, string));
+.	  @var{base_newfunc} ((struct bfd_hash_entry *) ret, table, string));
 .
 . {* Initialize the local fields here.  *}
 .
@@ -483,7 +483,7 @@ bfd_hash_lookup (struct bfd_hash_table *
       char *new_string;
 
       new_string = (char *) objalloc_alloc ((struct objalloc *) table->memory,
-                                            len + 1);
+					    len + 1);
       if (!new_string)
 	{
 	  bfd_set_error (bfd_error_no_memory);
@@ -634,7 +634,7 @@ bfd_hash_newfunc (struct bfd_hash_entry 
 {
   if (entry == NULL)
     entry = (struct bfd_hash_entry *) bfd_hash_allocate (table,
-                                                         sizeof (* entry));
+							 sizeof (* entry));
   return entry;
 }
 
@@ -731,7 +731,7 @@ strtab_hash_newfunc (struct bfd_hash_ent
      subclass.  */
   if (ret == NULL)
     ret = (struct strtab_hash_entry *) bfd_hash_allocate (table,
-                                                          sizeof (* ret));
+							  sizeof (* ret));
   if (ret == NULL)
     return NULL;
 
@@ -828,7 +828,7 @@ _bfd_stringtab_add (struct bfd_strtab_ha
   else
     {
       entry = (struct strtab_hash_entry *) bfd_hash_allocate (&tab->table,
-                                                              sizeof (* entry));
+							      sizeof (* entry));
       if (entry == NULL)
 	return (bfd_size_type) -1;
       if (! copy)
@@ -841,7 +841,7 @@ _bfd_stringtab_add (struct bfd_strtab_ha
 	  n = (char *) bfd_hash_allocate (&tab->table, len);
 	  if (n == NULL)
 	    return (bfd_size_type) -1;
-          memcpy (n, str, len);
+	  memcpy (n, str, len);
 	  entry->root.string = n;
 	}
       entry->index = (bfd_size_type) -1;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/host-aout.c ./bfd/host-aout.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/host-aout.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/host-aout.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD backend for local host's a.out binaries
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.  Probably John Gilmore's fault.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -65,7 +65,7 @@
 #undef  TARGET_IS_BIG_ENDIAN_P
 #endif
 
-#include "libaout.h"           /* BFD a.out internal data structures */
+#include "libaout.h"	       /* BFD a.out internal data structures */
 #include "aout/aout64.h"
 
 #ifdef HOST_MACHINE_ARCH
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/alphalinux.h ./bfd/hosts/alphalinux.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/alphalinux.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/alphalinux.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/alphavms.h ./bfd/hosts/alphavms.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/alphavms.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/alphavms.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* alphavms.h -- BFD definitions for an openVMS host
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Written by Klaus Kämpf (kkaempf@progis.de)
    of proGIS Softwareentwicklung, Aachen, Germany
 
@@ -56,7 +56,13 @@ extern char *stpcpy (char *, const char 
 #define gettext(Msgid) (Msgid)
 #define dgettext(Domainname, Msgid) (Msgid)
 #define dcgettext(Domainname, Msgid, Category) (Msgid)
-#define textdomain(Domainname) while (0) /* nothing */
-#define bindtextdomain(Domainname, Dirname) while (0) /* nothing */
+#define ngettext(Msgid1, Msgid2, n) \
+  (n == 1 ? Msgid1 : Msgid2)
+#define dngettext(Domainname, Msgid1, Msgid2, n) \
+  (n == 1 ? Msgid1 : Msgid2)
+#define dcngettext(Domainname, Msgid1, Msgid2, n, Category) \
+  (n == 1 ? Msgid1 : Msgid2)
+#define textdomain(Domainname) do {} while (0)
+#define bindtextdomain(Domainname, Dirname) do {} while (0)
 #define _(String) (String)
 #define N_(String) (String)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/decstation.h ./bfd/hosts/decstation.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/decstation.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/decstation.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/delta68.h ./bfd/hosts/delta68.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/delta68.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/delta68.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/dpx2.h ./bfd/hosts/dpx2.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/dpx2.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/dpx2.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/hp300bsd.h ./bfd/hosts/hp300bsd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/hp300bsd.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/hp300bsd.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/i386bsd.h ./bfd/hosts/i386bsd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/i386bsd.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/i386bsd.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/i386linux.h ./bfd/hosts/i386linux.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/i386linux.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/i386linux.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/i386mach3.h ./bfd/hosts/i386mach3.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/i386mach3.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/i386mach3.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/i386sco.h ./bfd/hosts/i386sco.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/i386sco.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/i386sco.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/i860mach3.h ./bfd/hosts/i860mach3.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/i860mach3.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/i860mach3.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/m68kaux.h ./bfd/hosts/m68kaux.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/m68kaux.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/m68kaux.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/m68klinux.h ./bfd/hosts/m68klinux.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/m68klinux.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/m68klinux.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/m88kmach3.h ./bfd/hosts/m88kmach3.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/m88kmach3.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/m88kmach3.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/mipsbsd.h ./bfd/hosts/mipsbsd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/mipsbsd.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/mipsbsd.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/mipsmach3.h ./bfd/hosts/mipsmach3.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/mipsmach3.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/mipsmach3.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/news.h ./bfd/hosts/news.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/news.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/news.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/news-mips.h ./bfd/hosts/news-mips.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/news-mips.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/news-mips.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/pc532mach.h ./bfd/hosts/pc532mach.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/pc532mach.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/pc532mach.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/riscos.h ./bfd/hosts/riscos.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/riscos.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/riscos.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/symmetry.h ./bfd/hosts/symmetry.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/symmetry.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/symmetry.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/tahoe.h ./bfd/hosts/tahoe.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/tahoe.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/tahoe.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/vaxbsd.h ./bfd/hosts/vaxbsd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/vaxbsd.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/vaxbsd.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/vaxlinux.h ./bfd/hosts/vaxlinux.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/vaxlinux.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/vaxlinux.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/vaxult2.h ./bfd/hosts/vaxult2.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/vaxult2.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/vaxult2.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/vaxult.h ./bfd/hosts/vaxult.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/vaxult.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/vaxult.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/x86-64linux.h ./bfd/hosts/x86-64linux.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hosts/x86-64linux.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hosts/x86-64linux.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -11,10 +11,10 @@
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 /* This is somewhat modelled after the file of the same name on SVR4
    systems.  It provides a definition of the core file format for ELF
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hp300bsd.c ./bfd/hp300bsd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hp300bsd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hp300bsd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for HP 9000/300 (68000-based) machines running BSD Unix.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hp300hpux.c ./bfd/hp300hpux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hp300hpux.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hp300hpux.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD backend for hp-ux 9000/300
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Glenn Engel.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -20,9 +20,9 @@
    MA 02110-1301, USA.  */
 
 
-/*  hpux native  ------------> |               |
-                               | hp300hpux bfd | ----------> hpux w/gnu ext
-    hpux w/gnu extension ----> |               |
+/*  hpux native	 ------------> |	       |
+			       | hp300hpux bfd | ----------> hpux w/gnu ext
+    hpux w/gnu extension ----> |	       |
 
     Support for the 9000/[34]00 has several limitations.
       1. Shared libraries are not supported.
@@ -52,12 +52,12 @@
     code where a unique implementation is needed:
 
     {
-        #define a bunch of stuff
-        #include <aoutx.h>
+	#define a bunch of stuff
+	#include <aoutx.h>
 
-        implement a bunch of functions
+	implement a bunch of functions
 
-        #include "aout-target.h"
+	#include "aout-target.h"
     }
 
     The hp symbol table is a bit different than other a.out targets.  Instead
@@ -168,16 +168,16 @@
 
 #define HP_SYMTYPE_ALIGN	0x10
 #define HP_SYMTYPE_EXTERNAL	0x20
-#define HP_SECONDARY_SYMBOL     0x40
+#define HP_SECONDARY_SYMBOL	0x40
 
 /* RELOCATION DEFINITIONS */
 #define HP_RSEGMENT_TEXT	0x00
 #define HP_RSEGMENT_DATA	0x01
 #define HP_RSEGMENT_BSS		0x02
 #define HP_RSEGMENT_EXTERNAL	0x03
-#define HP_RSEGMENT_PCREL       0x04
-#define HP_RSEGMENT_RDLT        0x05
-#define HP_RSEGMENT_RPLT        0x06
+#define HP_RSEGMENT_PCREL	0x04
+#define HP_RSEGMENT_RDLT	0x05
+#define HP_RSEGMENT_RPLT	0x06
 #define HP_RSEGMENT_NOOP	0x3F
 
 #define HP_RLENGTH_BYTE		0x00
@@ -405,9 +405,9 @@ convert_sym_type (struct external_nlist 
 	      abort ();
 	    case N_UNDF | N_EXT:
 	      /* If the value is nonzero, then just treat this as a
-                 common symbol.  I don't know if this is correct in
-                 all cases, but it is more correct than treating it as
-                 a weak undefined symbol.  */
+		 common symbol.  I don't know if this is correct in
+		 all cases, but it is more correct than treating it as
+		 a weak undefined symbol.  */
 	      if (cache_ptr->symbol.value == 0)
 		new_type = N_WEAKU;
 	      break;
@@ -432,9 +432,9 @@ convert_sym_type (struct external_nlist 
 
 /*
 DESCRIPTION
-        Swaps the information in an executable header taken from a raw
-        byte stream memory image, into the internal exec_header
-        structure.
+	Swaps the information in an executable header taken from a raw
+	byte stream memory image, into the internal exec_header
+	structure.
 */
 
 void
@@ -463,7 +463,7 @@ NAME (aout,swap_exec_header_in) (bfd *ab
   /* check the header to see if it was generated by a bfd output */
   /* this is detected rather bizarrely by requiring a bunch of   */
   /* header fields to be zero and an old unused field (now used) */
-  /* to be set.                                                  */
+  /* to be set.							 */
   /***************************************************************/
   do
     {
@@ -602,7 +602,7 @@ MY (slurp_symbol_table) (bfd *abfd)
 	    /**************************************************************/
 	    /* the hp string is not null terminated so we create a new one*/
 	    /* by copying the string to overlap the just vacated nlist    */
-	    /* structure before it in memory.                             */
+	    /* structure before it in memory.				  */
 	    /**************************************************************/
 	    cache_ptr->symbol.name = strings;
 	    memcpy (strings, sym_pointer + 1, length);
@@ -692,7 +692,7 @@ MY (swap_std_reloc_in) (bfd *abfd,
     {
       /* The GNU linker assumes any offset from beginning of section */
       /* is already incorporated into the image while the HP linker  */
-      /* adds this in later.  Add it in now...                       */
+      /* adds this in later.  Add it in now...			     */
       MOVE_ADDRESS (-cache_ptr->address);
     }
   else
@@ -778,7 +778,7 @@ doit:
 /************************************************************************/
 /* The following functions are identical to functions in aoutx.h except */
 /* they refer to MY(func) rather than NAME(aout,func) and they also     */
-/* call aout_32 versions if the input file was generated by gcc         */
+/* call aout_32 versions if the input file was generated by gcc		*/
 /************************************************************************/
 
 long aout_32_canonicalize_symtab  (bfd *, asymbol **);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hppabsd-core.c ./bfd/hppabsd-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hppabsd-core.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hppabsd-core.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for HPPA BSD core files.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -227,7 +227,7 @@ const bfd_target core_hppabsd_vec =
      HAS_LINENO | HAS_DEBUG |
      HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED),
     (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
-    0,			                                   /* symbol prefix */
+    0,							   /* symbol prefix */
     ' ',						   /* ar_pad_char */
     16,							   /* ar_max_namelen */
     NO_GET64, NO_GETS64, NO_PUT64,	/* 64 bit data */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hpux-core.c ./bfd/hpux-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/hpux-core.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/hpux-core.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for HP/UX core files.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Written by Stu Grossman, Cygnus Support.
    Converted to back-end form by Ian Lance Taylor, Cygnus SUpport
 
@@ -80,7 +80,7 @@
    it won't be encountered in core-dumps from older HP-UX's) is
    harmless. */
 #if !defined(CORE_ANON_SHMEM)
-#define CORE_ANON_SHMEM 0x00000200         /* anonymous shared memory */
+#define CORE_ANON_SHMEM 0x00000200	   /* anonymous shared memory */
 #endif
 
 /* These are stored in the bfd's tdata */
@@ -91,7 +91,7 @@
 struct hpux_core_struct
 {
   int sig;
-  int lwpid;               /* Kernel thread ID. */
+  int lwpid;		   /* Kernel thread ID. */
   unsigned long user_tid;  /* User thread ID. */
   char cmd[MAXCOMLEN + 1];
 };
@@ -105,7 +105,7 @@ struct hpux_core_struct
 #define hpux_core_core_file_pid _bfd_nocore_core_file_pid
 
 static asection *make_bfd_asection (bfd *, const char *, flagword,
-                                    bfd_size_type, bfd_vma, unsigned int);
+				    bfd_size_type, bfd_vma, unsigned int);
 static const bfd_target *hpux_core_core_file_p (bfd *);
 static char *hpux_core_core_file_failing_command (bfd *);
 static int hpux_core_core_file_failing_signal (bfd *);
@@ -113,8 +113,8 @@ static void swap_abort (void);
 
 static asection *
 make_bfd_asection (bfd *abfd, const char *name, flagword flags,
-                   bfd_size_type size, bfd_vma vma,
-                   unsigned int alignment_power)
+		   bfd_size_type size, bfd_vma vma,
+		   unsigned int alignment_power)
 {
   asection *asect;
   char *newname;
@@ -142,8 +142,8 @@ make_bfd_asection (bfd *abfd, const char
 
 static int
 thread_section_p (bfd *abfd ATTRIBUTE_UNUSED,
-                  asection *sect,
-                  void *obj ATTRIBUTE_UNUSED)
+		  asection *sect,
+		  void *obj ATTRIBUTE_UNUSED)
 {
   return CONST_STRNEQ (sect->name, ".reg/");
 }
@@ -183,7 +183,7 @@ hpux_core_core_file_p (bfd *abfd)
 	case CORE_FORMAT:
 	  /* Just skip this.  */
 	  bfd_seek (abfd, (file_ptr) core_header.len, SEEK_CUR);
-          good_sections++;
+	  good_sections++;
 	  break;
 	case CORE_EXEC:
 	  {
@@ -192,7 +192,7 @@ hpux_core_core_file_p (bfd *abfd)
 			  abfd) != core_header.len)
 	      break;
 	    strncpy (core_command (abfd), proc_exec.cmd, MAXCOMLEN + 1);
-            good_sections++;
+	    good_sections++;
 	  }
 	  break;
 	case CORE_PROC:
@@ -200,54 +200,54 @@ hpux_core_core_file_p (bfd *abfd)
 	    struct proc_info proc_info;
 	    char  secname[100];  /* Of arbitrary size, but plenty large. */
 
-            /* We need to read this section, 'cause we need to determine
-               whether the core-dumped app was threaded before we create
-               any .reg sections. */
+	    /* We need to read this section, 'cause we need to determine
+	       whether the core-dumped app was threaded before we create
+	       any .reg sections. */
 	    if (bfd_bread (&proc_info, (bfd_size_type) core_header.len, abfd)
 		!= core_header.len)
 	      break;
 
-              /* However, we also want to create those sections with the
-                 file positioned at the start of the record, it seems. */
-            if (bfd_seek (abfd, -((file_ptr) core_header.len), SEEK_CUR) != 0)
-              break;
+	      /* However, we also want to create those sections with the
+		 file positioned at the start of the record, it seems. */
+	    if (bfd_seek (abfd, -((file_ptr) core_header.len), SEEK_CUR) != 0)
+	      break;
 
 #if defined(PROC_INFO_HAS_THREAD_ID)
-            core_kernel_thread_id (abfd) = proc_info.lwpid;
-            core_user_thread_id (abfd) = proc_info.user_tid;
+	    core_kernel_thread_id (abfd) = proc_info.lwpid;
+	    core_user_thread_id (abfd) = proc_info.user_tid;
 #else
-            core_kernel_thread_id (abfd) = 0;
-            core_user_thread_id (abfd) = 0;
+	    core_kernel_thread_id (abfd) = 0;
+	    core_user_thread_id (abfd) = 0;
 #endif
-            /* If the program was unthreaded, then we'll just create a
-               .reg section.
+	    /* If the program was unthreaded, then we'll just create a
+	       .reg section.
 
-               If the program was threaded, then we'll create .reg/XXXXX
-               section for each thread, where XXXXX is a printable
-               representation of the kernel thread id.  We'll also
-               create a .reg section for the thread that was running
-               and signalled at the time of the core-dump (i.e., this
-               is effectively an alias, needed to keep GDB happy.)
-
-               Note that we use `.reg/XXXXX' as opposed to '.regXXXXX'
-               because GDB expects that .reg2 will be the floating-
-               point registers. */
-            if (core_kernel_thread_id (abfd) == 0)
-              {
-                if (!make_bfd_asection (abfd, ".reg",
+	       If the program was threaded, then we'll create .reg/XXXXX
+	       section for each thread, where XXXXX is a printable
+	       representation of the kernel thread id.  We'll also
+	       create a .reg section for the thread that was running
+	       and signalled at the time of the core-dump (i.e., this
+	       is effectively an alias, needed to keep GDB happy.)
+
+	       Note that we use `.reg/XXXXX' as opposed to '.regXXXXX'
+	       because GDB expects that .reg2 will be the floating-
+	       point registers. */
+	    if (core_kernel_thread_id (abfd) == 0)
+	      {
+		if (!make_bfd_asection (abfd, ".reg",
 					SEC_HAS_CONTENTS,
 					core_header.len,
 					(bfd_vma) offsetof (struct proc_info,
 							    hw_regs),
 					2))
 		  goto fail;
-              }
-            else
-              {
-                /* There are threads.  Is this the one that caused the
-                   core-dump?  We'll claim it was the running thread. */
-                if (proc_info.sig != -1)
-                  {
+	      }
+	    else
+	      {
+		/* There are threads.  Is this the one that caused the
+		   core-dump?  We'll claim it was the running thread. */
+		if (proc_info.sig != -1)
+		  {
 		    if (!make_bfd_asection (abfd, ".reg",
 					    SEC_HAS_CONTENTS,
 					    core_header.len,
@@ -255,21 +255,21 @@ hpux_core_core_file_p (bfd *abfd)
 							       hw_regs),
 					    2))
 		      goto fail;
-                  }
-                /* We always make one of these sections, for every thread. */
-                sprintf (secname, ".reg/%d", core_kernel_thread_id (abfd));
-                if (!make_bfd_asection (abfd, secname,
+		  }
+		/* We always make one of these sections, for every thread. */
+		sprintf (secname, ".reg/%d", core_kernel_thread_id (abfd));
+		if (!make_bfd_asection (abfd, secname,
 					SEC_HAS_CONTENTS,
 					core_header.len,
 					(bfd_vma) offsetof (struct proc_info,
 							    hw_regs),
 					2))
 		  goto fail;
-              }
+	      }
 	    core_signal (abfd) = proc_info.sig;
-            if (bfd_seek (abfd, (file_ptr) core_header.len, SEEK_CUR) != 0)
-              break;
-            good_sections++;
+	    if (bfd_seek (abfd, (file_ptr) core_header.len, SEEK_CUR) != 0)
+	      break;
+	    good_sections++;
 	  }
 	  break;
 
@@ -286,20 +286,20 @@ hpux_core_core_file_p (bfd *abfd)
 	    goto fail;
 
 	  bfd_seek (abfd, (file_ptr) core_header.len, SEEK_CUR);
-          good_sections++;
+	  good_sections++;
 	  break;
 
 	case CORE_NONE:
-          /* Let's not punt if we encounter a section of unknown
-             type.  Rather, let's make a note of it.  If we later
-             see that there were also "good" sections, then we'll
-             declare that this a core file, but we'll also warn that
-             it may be incompatible with this gdb.
-             */
+	  /* Let's not punt if we encounter a section of unknown
+	     type.  Rather, let's make a note of it.  If we later
+	     see that there were also "good" sections, then we'll
+	     declare that this a core file, but we'll also warn that
+	     it may be incompatible with this gdb.
+	     */
 	  unknown_sections++;
-          break;
+	  break;
 
-         default:
+	 default:
 	   goto fail; /*unrecognized core file type */
 	}
     }
@@ -318,15 +318,15 @@ hpux_core_core_file_p (bfd *abfd)
       asection *reg_sect;
 
       if (asect != NULL)
-        {
-          reg_sect = make_bfd_asection (abfd, ".reg", asect->flags,
-                                        asect->size, asect->vma,
-                                        asect->alignment_power);
-          if (reg_sect == NULL)
-            goto fail;
+	{
+	  reg_sect = make_bfd_asection (abfd, ".reg", asect->flags,
+					asect->size, asect->vma,
+					asect->alignment_power);
+	  if (reg_sect == NULL)
+	    goto fail;
 
-          reg_sect->filepos = asect->filepos;
-        }
+	  reg_sect->filepos = asect->filepos;
+	}
     }
 
   /* Were there sections of unknown type?  If so, yet there were
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386aout.c ./bfd/i386aout.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386aout.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/i386aout.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for i386 a.out binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -26,12 +26,12 @@
    system, and I'll stick it in for the next release.  */
 
 #define N_HEADER_IN_TEXT(x)	0
-#define N_TXTOFF(x)   		0x20
-#define N_TXTADDR(x) 		(N_MAGIC (x) == ZMAGIC ? 0x1020 : 0)
-#define N_TXTSIZE(x) 		((x)->a_text)
-#define TARGET_PAGE_SIZE 	4096
-#define SEGMENT_SIZE 		0x400000
-#define DEFAULT_ARCH 		bfd_arch_i386
+#define N_TXTOFF(x)		0x20
+#define N_TXTADDR(x)		(N_MAGIC (x) == ZMAGIC ? 0x1020 : 0)
+#define N_TXTSIZE(x)		((x)->a_text)
+#define TARGET_PAGE_SIZE	4096
+#define SEGMENT_SIZE		0x400000
+#define DEFAULT_ARCH		bfd_arch_i386
 
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
    remove whitespace added here, and thus will fail to concatenate
@@ -64,7 +64,7 @@ i386aout_write_object_contents (bfd *abf
 }
 
 #define MY_write_object_contents  i386aout_write_object_contents
-#define MY_backend_data           & MY (backend_data)
+#define MY_backend_data		  & MY (backend_data)
 
 static const struct aout_backend_data MY (backend_data);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386bsd.c ./bfd/i386bsd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386bsd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/i386bsd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for i386 a.out binaries under BSD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386dynix.c ./bfd/i386dynix.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386dynix.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/i386dynix.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for i386 a.out binaries under dynix.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386freebsd.c ./bfd/i386freebsd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386freebsd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/i386freebsd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for FreeBSD/386 a.out-ish binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386linux.c ./bfd/i386linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386linux.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/i386linux.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for linux flavored i386 a.out binaries.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@
 #include "aout/aout64.h"
 #include "aout/stab_gnu.h"
 #include "aout/ar.h"
-#include "libaout.h"           /* BFD a.out internal data structures */
+#include "libaout.h"	       /* BFD a.out internal data structures */
 
 #define DEFAULT_ARCH bfd_arch_i386
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386lynx.c ./bfd/i386lynx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386lynx.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/i386lynx.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for i386 a.out binaries under LynxOS.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -38,10 +38,10 @@
       {									      \
 	if (adata(abfd).magic == undecided_magic)			      \
 	  NAME(aout,adjust_sizes_and_vmas) (abfd);			      \
-    									      \
+									      \
 	execp->a_syms = bfd_get_symcount (abfd) * EXTERNAL_NLIST_SIZE;	      \
 	execp->a_entry = bfd_get_start_address (abfd);			      \
-    									      \
+									      \
 	execp->a_trsize = ((obj_textsec (abfd)->reloc_count) *		      \
 			   obj_reloc_entry_size (abfd));		      \
 	execp->a_drsize = ((obj_datasec (abfd)->reloc_count) *		      \
@@ -53,24 +53,24 @@
 			  abfd) != EXEC_BYTES_SIZE)			      \
 	  return FALSE;							      \
 	/* Now write out reloc info, followed by syms and strings */	      \
-  									      \
-	if (bfd_get_symcount (abfd) != 0) 				      \
+									      \
+	if (bfd_get_symcount (abfd) != 0)				      \
 	    {								      \
 	      if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (execp)), SEEK_SET)    \
 		  != 0)							      \
-	        return FALSE;						      \
+		return FALSE;						      \
 									      \
 	      if (! NAME(aout,write_syms) (abfd)) return FALSE;		      \
 									      \
 	      if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (execp)), SEEK_SET)   \
 		  != 0)							      \
-	        return FALSE;						      \
+		return FALSE;						      \
 									      \
 	      if (!NAME(lynx,squirt_out_relocs) (abfd, obj_textsec (abfd)))   \
 		return FALSE;						      \
 	      if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (execp)), SEEK_SET)   \
 		  != 0)							      \
-	        return 0;						      \
+		return 0;						      \
 									      \
 	      if (!NAME(lynx,squirt_out_relocs) (abfd, obj_datasec (abfd)))   \
 		return FALSE;						      \
@@ -279,7 +279,7 @@ NAME(lynx,swap_ext_reloc_out) (bfd *abfd
    to give the true offset from the section */
 
 
-#define MOVE_ADDRESS(ad)       						\
+#define MOVE_ADDRESS(ad)						\
   if (r_extern)								\
     {									\
    /* undefined symbol */						\
@@ -288,7 +288,7 @@ NAME(lynx,swap_ext_reloc_out) (bfd *abfd
     }									\
   else									\
     {									\
-    /* defined, section relative. replace symbol with pointer to    	\
+    /* defined, section relative. replace symbol with pointer to	\
        symbol which points to section  */				\
     switch (r_index) {							\
     case N_TEXT:							\
@@ -313,7 +313,7 @@ NAME(lynx,swap_ext_reloc_out) (bfd *abfd
       cache_ptr->addend = ad;						\
       break;								\
     }									\
-  }     								\
+  }									\
 
 static void
 NAME(lynx,swap_ext_reloc_in) (bfd *abfd,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386mach3.c ./bfd/i386mach3.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386mach3.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/i386mach3.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for i386 a.out binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -40,7 +40,7 @@
 #include "aout/aout64.h"
 #include "aout/stab_gnu.h"
 #include "aout/ar.h"
-#include "libaout.h"           /* BFD a.out internal data structures */
+#include "libaout.h"	       /* BFD a.out internal data structures */
 
 #define DEFAULT_ARCH bfd_arch_i386
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386msdos.c ./bfd/i386msdos.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386msdos.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/i386msdos.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for MS-DOS executables.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Bryan Ford of the University of Utah.
 
    Contributed by the Center for Software Science at the
@@ -52,15 +52,15 @@ msdos_write_object_contents (bfd *abfd)
   for (sec = abfd->sections; sec != (asection *) NULL; sec = sec->next)
     {
       if (sec->size == 0)
-        continue;
+	continue;
       if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
-        {
+	{
 	  bfd_vma sec_vma = bfd_get_section_vma (abfd, sec) + sec->size;
 	  if (sec_vma > high_vma)
 	    high_vma = sec_vma;
 	}
       if (bfd_get_section_flags (abfd, sec) & SEC_LOAD)
-        {
+	{
 	  file_ptr sec_end = (sizeof (hdr)
 			      + bfd_get_section_vma (abfd, sec)
 			      + sec->size);
@@ -118,8 +118,8 @@ msdos_set_section_contents (bfd *abfd,
   if (bfd_get_section_flags (abfd, section) & SEC_LOAD)
     {
       if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0
-          || bfd_bwrite (location, count, abfd) != count)
-        return FALSE;
+	  || bfd_bwrite (location, count, abfd) != count)
+	return FALSE;
     }
 
   return TRUE;
@@ -149,6 +149,7 @@ msdos_set_section_contents (bfd *abfd,
 #define msdos_section_already_linked \
   _bfd_generic_section_already_linked
 #define msdos_bfd_define_common_symbol bfd_generic_define_common_symbol
+#define msdos_bfd_define_start_stop bfd_generic_define_start_stop
 #define msdos_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define msdos_bfd_link_add_symbols _bfd_generic_link_add_symbols
 #define msdos_bfd_link_just_syms _bfd_generic_link_just_syms
@@ -176,6 +177,7 @@ msdos_set_section_contents (bfd *abfd,
 #define msdos_minisymbol_to_symbol _bfd_nosymbols_minisymbol_to_symbol
 
 #define msdos_canonicalize_reloc _bfd_norelocs_canonicalize_reloc
+#define msdos_set_reloc _bfd_norelocs_set_reloc
 #define msdos_get_reloc_upper_bound _bfd_norelocs_get_reloc_upper_bound
 #define msdos_32_bfd_link_split_section  _bfd_generic_link_split_section
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386netbsd.c ./bfd/i386netbsd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386netbsd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/i386netbsd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for NetBSD/386 a.out-ish binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -25,7 +25,7 @@
 #define	SEGMENT_SIZE	TARGET_PAGE_SIZE
 
 #define	DEFAULT_ARCH	bfd_arch_i386
-#define	DEFAULT_MID 	M_386_NETBSD
+#define	DEFAULT_MID	M_386_NETBSD
 
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
    remove whitespace added here, and thus will fail to concatenate
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386os9k.c ./bfd/i386os9k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/i386os9k.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/i386os9k.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for os9000 i386 binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -165,6 +165,8 @@ os9k_sizeof_headers (bfd *abfd ATTRIBUTE
 #define aout_32_get_section_contents_in_window \
   _bfd_generic_get_section_contents_in_window
 
+#define aout_32_set_reloc _bfd_generic_set_reloc
+
 #define os9k_bfd_get_relocated_section_contents \
   bfd_generic_get_relocated_section_contents
 #define os9k_bfd_relax_section bfd_generic_relax_section
@@ -176,6 +178,7 @@ os9k_sizeof_headers (bfd *abfd ATTRIBUTE
 #define os9k_section_already_linked \
   _bfd_generic_section_already_linked
 #define os9k_bfd_define_common_symbol bfd_generic_define_common_symbol
+#define os9k_bfd_define_start_stop bfd_generic_define_start_stop
 #define os9k_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define os9k_bfd_link_add_symbols _bfd_generic_link_add_symbols
 #define os9k_bfd_link_just_syms _bfd_generic_link_just_syms
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ieee.c ./bfd/ieee.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ieee.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/ieee.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for ieee-695 objects.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Written by Steve Chamberlain of Cygnus Support.
 
@@ -156,7 +156,7 @@ ieee_write_id (bfd *abfd, const char *id
     {
       _bfd_error_handler
 	/* xgettext:c-format */
-	(_("%B: string too long (%d chars, max 65535)"), abfd, length);
+	(_("%B: string too long (%ld chars, max 65535)"), abfd, (long) length);
       bfd_set_error (bfd_error_invalid_operation);
       return FALSE;
     }
@@ -169,8 +169,8 @@ ieee_write_id (bfd *abfd, const char *id
 /* Functions for reading from ieee files in the strange way that the
    standard requires.  */
 
-#define this_byte(ieee)           *((ieee)->input_p)
-#define this_byte_and_next(ieee) (*((ieee)->input_p++))
+#define this_byte(ieee)		  *((ieee)->input_p)
+#define this_byte_and_next(ieee) ((ieee)->input_p < (ieee)->end_p ? *((ieee)->input_p++) : 0)
 
 static bfd_boolean
 next_byte (common_header_type * ieee)
@@ -220,6 +220,15 @@ read_id (common_header_type *ieee)
       length = (length * 256) + this_byte_and_next (ieee);
     }
 
+  /* PR 21612: Check for an invalid length.  */
+  if (ieee->input_p + length >= ieee->end_p)
+    {
+      _bfd_error_handler (_("IEEE parser: string length: %#lx longer than buffer: %#lx"),
+			  (long) length, (long) (ieee->end_p - ieee->input_p));
+      bfd_set_error (bfd_error_invalid_operation);
+      return NULL;
+    }
+
   /* Buy memory and read string.  */
   string = bfd_alloc (ieee->abfd, (bfd_size_type) length + 1);
   if (!string)
@@ -699,12 +708,12 @@ ieee_seek (ieee_data_type * ieee, file_p
   if (offset < 0 || (bfd_size_type) offset >= ieee->h.total_amt)
     {
       ieee->h.input_p = ieee->h.first_byte + ieee->h.total_amt;
-      ieee->h.last_byte = ieee->h.input_p;
+      ieee->h.end_p = ieee->h.last_byte = ieee->h.input_p;
       return FALSE;
     }
 
   ieee->h.input_p = ieee->h.first_byte + offset;
-  ieee->h.last_byte = (ieee->h.first_byte + ieee_part_after (ieee, offset));
+  ieee->h.end_p = ieee->h.last_byte = (ieee->h.first_byte + ieee_part_after (ieee, offset));
   return TRUE;
 }
 
@@ -850,8 +859,8 @@ ieee_slurp_external_symbols (bfd *abfd)
 		  {
 		    _bfd_error_handler
 		      /* xgettext:c-format */
-		      (_("%B: unexpected ATN type %d in external part"),
-			 abfd, (int) value);
+		      (_("%B: unexpected ATN type %Ld in external part"),
+			 abfd, value);
 		    bfd_set_error (bfd_error_bad_value);
 		    return FALSE;
 		  }
@@ -904,9 +913,9 @@ ieee_slurp_external_symbols (bfd *abfd)
 	      return FALSE;
 
 	    /* Fully linked IEEE-695 files tend to give every symbol
-               an absolute value.  Try to convert that back into a
-               section relative value.  FIXME: This won't always to
-               the right thing.  */
+	       an absolute value.  Try to convert that back into a
+	       section relative value.  FIXME: This won't always to
+	       the right thing.  */
 	    if (bfd_is_abs_section (symbol->symbol.section)
 		&& (abfd->flags & HAS_RELOC) == 0)
 	      {
@@ -1237,6 +1246,8 @@ ieee_slurp_sections (bfd *abfd)
 
 		/* Read section name, use it if non empty.  */
 		name = read_id (&ieee->h);
+		if (name == NULL)
+		  return FALSE;
 		if (name[0])
 		  section->name = name;
 
@@ -1355,7 +1366,7 @@ ieee_archive_p (bfd *abfd)
 {
   char *library;
   unsigned int i;
-  unsigned char buffer[512];
+  static unsigned char buffer[512];
   file_ptr buffer_offset = 0;
   ieee_ar_data_type *save = abfd->tdata.ieee_ar_data;
   ieee_ar_data_type *ieee;
@@ -1375,6 +1386,8 @@ ieee_archive_p (bfd *abfd)
 
   ieee->h.first_byte = buffer;
   ieee->h.input_p = buffer;
+  ieee->h.total_amt = sizeof (buffer);
+  ieee->h.end_p = buffer + sizeof (buffer);
 
   ieee->h.abfd = abfd;
 
@@ -1384,6 +1397,8 @@ ieee_archive_p (bfd *abfd)
   (void) next_byte (&(ieee->h));
 
   library = read_id (&(ieee->h));
+  if (library == NULL)
+    goto got_wrong_format_error;
   if (strcmp (library, "LIBRARY") != 0)
     goto got_wrong_format_error;
 
@@ -1442,6 +1457,8 @@ ieee_archive_p (bfd *abfd)
 	  bfd_bread ((void *) buffer, (bfd_size_type) sizeof (buffer), abfd);
 	  ieee->h.first_byte = buffer;
 	  ieee->h.input_p = buffer;
+	  ieee->h.total_amt = sizeof (buffer);
+	  ieee->h.end_p = buffer + sizeof (buffer);
 	}
     }
 
@@ -1465,6 +1482,8 @@ ieee_archive_p (bfd *abfd)
       bfd_bread ((void *) buffer, (bfd_size_type) sizeof (buffer), abfd);
       ieee->h.first_byte = buffer;
       ieee->h.input_p = buffer;
+      ieee->h.total_amt = sizeof (buffer);
+      ieee->h.end_p = buffer + sizeof (buffer);
 
       (void) next_byte (&(ieee->h));	/* Drop F8.  */
       if (! next_byte (&(ieee->h)))	/* Drop 14.  */
@@ -1873,7 +1892,7 @@ ieee_object_p (bfd *abfd)
   char *processor;
   unsigned int part;
   ieee_data_type *ieee;
-  unsigned char buffer[300];
+  static unsigned char buffer[300];
   ieee_data_type *save = IEEE_DATA (abfd);
   bfd_size_type amt;
 
@@ -1890,6 +1909,8 @@ ieee_object_p (bfd *abfd)
 
   ieee->h.input_p = buffer;
   ieee->h.total_amt = sizeof (buffer);
+  ieee->h.end_p = buffer + sizeof (buffer);
+
   if (this_byte_and_next (&(ieee->h)) != Module_Beginning)
     goto got_wrong_format;
 
@@ -1905,9 +1926,13 @@ ieee_object_p (bfd *abfd)
   ieee->section_table_size = 0;
 
   processor = ieee->mb.processor = read_id (&(ieee->h));
+  if (processor == NULL)
+    goto got_wrong_format;
   if (strcmp (processor, "LIBRARY") == 0)
     goto got_wrong_format;
   ieee->mb.module_name = read_id (&(ieee->h));
+  if (ieee->mb.module_name == NULL)
+    goto got_wrong_format;
   if (abfd->filename == (const char *) NULL)
     abfd->filename = xstrdup (ieee->mb.module_name);
 
@@ -1942,7 +1967,7 @@ ieee_object_p (bfd *abfd)
 	      case '4':
 		if (processor[4] == '9')    /* 68349 */
 		  strcpy (family, "68030"); /* CPU030 */
-		else		            /* 68340, 68341 */
+		else			    /* 68340, 68341 */
 		  strcpy (family, "68332"); /* CPU32 and CPU32+ */
 		break;
 
@@ -1951,7 +1976,7 @@ ieee_object_p (bfd *abfd)
 	      }
 	  }
 	else if (TOUPPER (processor[3]) == 'F')  /* 68F333 */
-	  strcpy (family, "68332");	           /* CPU32 */
+	  strcpy (family, "68332");		   /* CPU32 */
 	else if ((TOUPPER (processor[3]) == 'C') /* Embedded controllers.  */
 		 && ((TOUPPER (processor[2]) == 'E')
 		     || (TOUPPER (processor[2]) == 'H')
@@ -3284,7 +3309,7 @@ ieee_write_data_part (bfd *abfd)
   for (s = abfd->sections; s != (asection *) NULL; s = s->next)
     {
       /* Skip sections that have no loadable contents (.bss,
-         debugging, etc.)  */
+	 debugging, etc.)  */
       if ((s->flags & SEC_LOAD) == 0)
 	continue;
 
@@ -3347,7 +3372,7 @@ ieee_set_section_contents (bfd *abfd,
 	    return FALSE;
 	}
       /* bfd_set_section_contents has already checked that everything
-         is within range.  */
+	 is within range.  */
       memcpy (section->contents + offset, location, (size_t) count);
       return TRUE;
     }
@@ -3466,7 +3491,7 @@ ieee_write_external_part (bfd *abfd)
 	  else
 	    {
 	      /* This can happen - when there are gaps in the symbols read
-	         from an input ieee file.  */
+		 from an input ieee file.  */
 	    }
 	}
     }
@@ -3785,7 +3810,7 @@ ieee_openr_next_archived_file (bfd *arch
 }
 
 #define ieee_find_nearest_line _bfd_nosymbols_find_nearest_line
-#define ieee_find_line         _bfd_nosymbols_find_line
+#define ieee_find_line	       _bfd_nosymbols_find_line
 #define ieee_find_inliner_info _bfd_nosymbols_find_inliner_info
 
 static int
@@ -3872,6 +3897,7 @@ ieee_sizeof_headers (bfd *abfd ATTRIBUTE
 #define ieee_section_already_linked \
   _bfd_generic_section_already_linked
 #define ieee_bfd_define_common_symbol bfd_generic_define_common_symbol
+#define ieee_bfd_define_start_stop bfd_generic_define_start_stop
 #define ieee_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define ieee_bfd_link_add_symbols _bfd_generic_link_add_symbols
 #define ieee_bfd_link_just_syms _bfd_generic_link_just_syms
@@ -3880,6 +3906,7 @@ ieee_sizeof_headers (bfd *abfd ATTRIBUTE
 #define ieee_bfd_final_link _bfd_generic_final_link
 #define ieee_bfd_link_split_section  _bfd_generic_link_split_section
 #define ieee_bfd_link_check_relocs   _bfd_generic_link_check_relocs
+#define ieee_set_reloc		     _bfd_generic_set_reloc
 
 const bfd_target ieee_vec =
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ihex.c ./bfd/ihex.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ihex.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/ihex.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel Hex objects.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor of Cygnus Support <ian@cygnus.com>.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -350,7 +350,7 @@ ihex_scan (bfd *abfd)
 		  && sec->vma + sec->size == extbase + segbase + addr)
 		{
 		  /* This data goes at the end of the section we are
-                     currently building.  */
+		     currently building.  */
 		  sec->size += len;
 		}
 	      else if (len > 0)
@@ -569,7 +569,7 @@ ihex_read_section (bfd *abfd, asection *
 	continue;
 
       /* This is called after ihex_scan has succeeded, so we ought to
-         know the exact format.  */
+	 know the exact format.  */
       BFD_ASSERT (c == ':');
 
       if (bfd_bread (hdr, (bfd_size_type) 8, abfd) != 8)
@@ -647,7 +647,7 @@ ihex_get_section_contents (bfd *abfd,
       if (section->used_by_bfd == NULL)
 	return FALSE;
       if (! ihex_read_section (abfd, section,
-                               (bfd_byte *) section->used_by_bfd))
+			       (bfd_byte *) section->used_by_bfd))
 	return FALSE;
     }
 
@@ -808,11 +808,11 @@ ihex_write_object_contents (bfd *abfd)
 	      else
 		{
 		  /* The extended address record and the extended
-                     linear address record are combined, at least by
-                     some readers.  We need an extended linear address
-                     record here, so if we've already written out an
-                     extended address record, zero it out to avoid
-                     confusion.  */
+		     linear address record are combined, at least by
+		     some readers.  We need an extended linear address
+		     record here, so if we've already written out an
+		     extended address record, zero it out to avoid
+		     confusion.  */
 		  if (segbase != 0)
 		    {
 		      addr[0] = 0;
@@ -825,13 +825,10 @@ ihex_write_object_contents (bfd *abfd)
 		  extbase = where & 0xffff0000;
 		  if (where > extbase + 0xffff)
 		    {
-		      char buf[20];
-
-		      sprintf_vma (buf, where);
 		      _bfd_error_handler
 			/* xgettext:c-format */
-			(_("%B: address 0x%s out of range for Intel Hex file"),
-			 abfd, buf);
+			(_("%B: address %#Lx out of range for Intel Hex file"),
+			 abfd, where);
 		      bfd_set_error (bfd_error_bad_value);
 		      return FALSE;
 		    }
@@ -844,9 +841,9 @@ ihex_write_object_contents (bfd *abfd)
 
 	  rec_addr = where - (extbase + segbase);
 
-          /* Output records shouldn't cross 64K boundaries.  */
-          if (rec_addr + now > 0xffff)
-            now = 0x10000 - rec_addr;
+	  /* Output records shouldn't cross 64K boundaries.  */
+	  if (rec_addr + now > 0xffff)
+	    now = 0x10000 - rec_addr;
 
 	  if (! ihex_write_record (abfd, now, rec_addr, 0, p))
 	    return FALSE;
@@ -917,41 +914,42 @@ ihex_sizeof_headers (bfd *abfd ATTRIBUTE
 
 /* Some random definitions for the target vector.  */
 
-#define	ihex_close_and_cleanup                    _bfd_generic_close_and_cleanup
-#define ihex_bfd_free_cached_info                 _bfd_generic_bfd_free_cached_info
-#define ihex_new_section_hook                     _bfd_generic_new_section_hook
-#define ihex_get_section_contents_in_window       _bfd_generic_get_section_contents_in_window
-#define ihex_get_symtab_upper_bound               bfd_0l
-#define ihex_canonicalize_symtab                  ((long (*) (bfd *, asymbol **)) bfd_0l)
-#define ihex_make_empty_symbol                    _bfd_generic_make_empty_symbol
-#define ihex_print_symbol                         _bfd_nosymbols_print_symbol
-#define ihex_get_symbol_info                      _bfd_nosymbols_get_symbol_info
+#define	ihex_close_and_cleanup			  _bfd_generic_close_and_cleanup
+#define ihex_bfd_free_cached_info		  _bfd_generic_bfd_free_cached_info
+#define ihex_new_section_hook			  _bfd_generic_new_section_hook
+#define ihex_get_section_contents_in_window	  _bfd_generic_get_section_contents_in_window
+#define ihex_get_symtab_upper_bound		  bfd_0l
+#define ihex_canonicalize_symtab		  ((long (*) (bfd *, asymbol **)) bfd_0l)
+#define ihex_make_empty_symbol			  _bfd_generic_make_empty_symbol
+#define ihex_print_symbol			  _bfd_nosymbols_print_symbol
+#define ihex_get_symbol_info			  _bfd_nosymbols_get_symbol_info
 #define ihex_get_symbol_version_string		  _bfd_nosymbols_get_symbol_version_string
-#define ihex_bfd_is_target_special_symbol         ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define ihex_bfd_is_local_label_name              _bfd_nosymbols_bfd_is_local_label_name
-#define ihex_get_lineno                           _bfd_nosymbols_get_lineno
-#define ihex_find_nearest_line                    _bfd_nosymbols_find_nearest_line
-#define ihex_find_line                            _bfd_nosymbols_find_line
-#define ihex_find_inliner_info                    _bfd_nosymbols_find_inliner_info
-#define ihex_bfd_make_debug_symbol                _bfd_nosymbols_bfd_make_debug_symbol
-#define ihex_read_minisymbols                     _bfd_nosymbols_read_minisymbols
-#define ihex_minisymbol_to_symbol                 _bfd_nosymbols_minisymbol_to_symbol
-#define ihex_bfd_get_relocated_section_contents   bfd_generic_get_relocated_section_contents
-#define ihex_bfd_relax_section                    bfd_generic_relax_section
-#define ihex_bfd_gc_sections                      bfd_generic_gc_sections
-#define ihex_bfd_lookup_section_flags             bfd_generic_lookup_section_flags
-#define ihex_bfd_merge_sections                   bfd_generic_merge_sections
-#define ihex_bfd_is_group_section                 bfd_generic_is_group_section
-#define ihex_bfd_discard_group                    bfd_generic_discard_group
-#define ihex_section_already_linked               _bfd_generic_section_already_linked
-#define ihex_bfd_define_common_symbol             bfd_generic_define_common_symbol
-#define ihex_bfd_link_hash_table_create           _bfd_generic_link_hash_table_create
-#define ihex_bfd_link_add_symbols                 _bfd_generic_link_add_symbols
-#define ihex_bfd_link_just_syms                   _bfd_generic_link_just_syms
-#define ihex_bfd_copy_link_hash_symbol_type       _bfd_generic_copy_link_hash_symbol_type
-#define ihex_bfd_final_link                       _bfd_generic_final_link
-#define ihex_bfd_link_split_section               _bfd_generic_link_split_section
-#define ihex_bfd_link_check_relocs                _bfd_generic_link_check_relocs
+#define ihex_bfd_is_target_special_symbol	  ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
+#define ihex_bfd_is_local_label_name		  _bfd_nosymbols_bfd_is_local_label_name
+#define ihex_get_lineno				  _bfd_nosymbols_get_lineno
+#define ihex_find_nearest_line			  _bfd_nosymbols_find_nearest_line
+#define ihex_find_line				  _bfd_nosymbols_find_line
+#define ihex_find_inliner_info			  _bfd_nosymbols_find_inliner_info
+#define ihex_bfd_make_debug_symbol		  _bfd_nosymbols_bfd_make_debug_symbol
+#define ihex_read_minisymbols			  _bfd_nosymbols_read_minisymbols
+#define ihex_minisymbol_to_symbol		  _bfd_nosymbols_minisymbol_to_symbol
+#define ihex_bfd_get_relocated_section_contents	  bfd_generic_get_relocated_section_contents
+#define ihex_bfd_relax_section			  bfd_generic_relax_section
+#define ihex_bfd_gc_sections			  bfd_generic_gc_sections
+#define ihex_bfd_lookup_section_flags		  bfd_generic_lookup_section_flags
+#define ihex_bfd_merge_sections			  bfd_generic_merge_sections
+#define ihex_bfd_is_group_section		  bfd_generic_is_group_section
+#define ihex_bfd_discard_group			  bfd_generic_discard_group
+#define ihex_section_already_linked		  _bfd_generic_section_already_linked
+#define ihex_bfd_define_common_symbol		  bfd_generic_define_common_symbol
+#define ihex_bfd_define_start_stop		  bfd_generic_define_start_stop
+#define ihex_bfd_link_hash_table_create		  _bfd_generic_link_hash_table_create
+#define ihex_bfd_link_add_symbols		  _bfd_generic_link_add_symbols
+#define ihex_bfd_link_just_syms			  _bfd_generic_link_just_syms
+#define ihex_bfd_copy_link_hash_symbol_type	  _bfd_generic_copy_link_hash_symbol_type
+#define ihex_bfd_final_link			  _bfd_generic_final_link
+#define ihex_bfd_link_split_section		  _bfd_generic_link_split_section
+#define ihex_bfd_link_check_relocs		  _bfd_generic_link_check_relocs
 
 /* The Intel Hex target vector.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/init.c ./bfd/init.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/init.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/init.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* bfd initialization stuff
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/irix-core.c ./bfd/irix-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/irix-core.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/irix-core.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Irix core files.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Written by Stu Grossman, Cygnus Support.
    Converted to back-end form by Ian Lance Taylor, Cygnus Support
 
@@ -146,11 +146,11 @@ do_sections (bfd *abfd, struct coreout *
 
 static asection *
 make_bfd_asection (bfd *abfd,
-                   const char *name,
-                   flagword flags,
-                   bfd_size_type size,
-                   bfd_vma vma,
-                   file_ptr filepos)
+		   const char *name,
+		   flagword flags,
+		   bfd_size_type size,
+		   bfd_vma vma,
+		   file_ptr filepos)
 {
   asection *asect;
 
@@ -289,7 +289,7 @@ const bfd_target core_irix_vec =
      HAS_LINENO | HAS_DEBUG |
      HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED),
     (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
-    0,			                                   /* symbol prefix */
+    0,							   /* symbol prefix */
     ' ',						   /* ar_pad_char */
     16,							   /* ar_max_namelen */
     0,							   /* match_priority */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libaout.h ./bfd/libaout.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libaout.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/libaout.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end data structures for a.out (and similar) files.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -232,18 +232,18 @@ struct internal_exec
   unsigned char a_talign;	/* Alignment of text segment.  */
   unsigned char a_dalign;	/* Alignment of data segment.  */
   unsigned char a_balign;	/* Alignment of bss segment.  */
-  char a_relaxable;           	/* Enough info for linker relax.  */
+  char a_relaxable;		/* Enough info for linker relax.  */
 };
 
 /* Magic number is written
-   < MSB          >
+   < MSB	  >
    3130292827262524232221201918171615141312111009080706050403020100
-   < FLAGS        >< MACHINE TYPE ><  MAGIC NUMBER                >  */
+   < FLAGS	  >< MACHINE TYPE ><  MAGIC NUMBER		  >  */
 
 /* Magic number for NetBSD is
-   <MSB           >
+   <MSB		  >
    3130292827262524232221201918171615141312111009080706050403020100
-   < FLAGS    >< MACHINE TYPE     ><  MAGIC NUMBER                >  */
+   < FLAGS    >< MACHINE TYPE	  ><  MAGIC NUMBER		  >  */
 
 enum machine_type
 {
@@ -256,7 +256,7 @@ enum machine_type
   M_NS32032 = (64),	  /* NS32032 running ?  */
   M_NS32532 = (64 + 5),	  /* NS32532 running mach.  */
   M_386 = 100,
-  M_29K = 101,            /* AMD 29000.  */
+  M_29K = 101,		  /* AMD 29000.  */
   M_386_DYNIX = 102,	  /* Sequent running dynix.  */
   M_ARM = 103,		  /* Advanced Risc Machines ARM.  */
   M_SPARCLET = 131,	  /* SPARClet = M_SPARC + 128.  */
@@ -272,8 +272,8 @@ enum machine_type
   M_SPARCLET_1 = 147,	  /* 0x93, reserved.  */
   M_POWERPC_NETBSD = 149, /* NetBSD/powerpc (big-endian) binary.  */
   M_VAX4K_NETBSD = 150,	  /* NetBSD/vax 4K pages binary.  */
-  M_MIPS1 = 151,          /* MIPS R2000/R3000 binary.  */
-  M_MIPS2 = 152,          /* MIPS R4000/R6000 binary.  */
+  M_MIPS1 = 151,	  /* MIPS R2000/R3000 binary.  */
+  M_MIPS2 = 152,	  /* MIPS R4000/R6000 binary.  */
   M_88K_OPENBSD = 153,	  /* OpenBSD/m88k binary.  */
   M_HPPA_OPENBSD = 154,	  /* OpenBSD/hppa binary.  */
   M_SPARC64_NETBSD = 156, /* NetBSD/sparc64 binary.  */
@@ -428,25 +428,25 @@ struct  aout_data_struct
   struct internal_exec e;
 };
 
-#define	adata(bfd)		           ((bfd)->tdata.aout_data->a)
-#define	exec_hdr(bfd)		           (adata (bfd).hdr)
-#define	obj_aout_symbols(bfd)	           (adata (bfd).symbols)
-#define	obj_textsec(bfd)	           (adata (bfd).textsec)
-#define	obj_datasec(bfd)	           (adata (bfd).datasec)
-#define	obj_bsssec(bfd)		           (adata (bfd).bsssec)
-#define	obj_sym_filepos(bfd)	           (adata (bfd).sym_filepos)
-#define	obj_str_filepos(bfd)	           (adata (bfd).str_filepos)
-#define	obj_reloc_entry_size(bfd)          (adata (bfd).reloc_entry_size)
-#define	obj_symbol_entry_size(bfd)         (adata (bfd).symbol_entry_size)
-#define obj_aout_subformat(bfd)	           (adata (bfd).subformat)
-#define obj_aout_external_syms(bfd)        (adata (bfd).external_syms)
+#define	adata(bfd)			   ((bfd)->tdata.aout_data->a)
+#define	exec_hdr(bfd)			   (adata (bfd).hdr)
+#define	obj_aout_symbols(bfd)		   (adata (bfd).symbols)
+#define	obj_textsec(bfd)		   (adata (bfd).textsec)
+#define	obj_datasec(bfd)		   (adata (bfd).datasec)
+#define	obj_bsssec(bfd)			   (adata (bfd).bsssec)
+#define	obj_sym_filepos(bfd)		   (adata (bfd).sym_filepos)
+#define	obj_str_filepos(bfd)		   (adata (bfd).str_filepos)
+#define	obj_reloc_entry_size(bfd)	   (adata (bfd).reloc_entry_size)
+#define	obj_symbol_entry_size(bfd)	   (adata (bfd).symbol_entry_size)
+#define obj_aout_subformat(bfd)		   (adata (bfd).subformat)
+#define obj_aout_external_syms(bfd)	   (adata (bfd).external_syms)
 #define obj_aout_external_sym_count(bfd)   (adata (bfd).external_sym_count)
-#define obj_aout_sym_window(bfd)           (adata (bfd).sym_window)
-#define obj_aout_external_strings(bfd)     (adata (bfd).external_strings)
+#define obj_aout_sym_window(bfd)	   (adata (bfd).sym_window)
+#define obj_aout_external_strings(bfd)	   (adata (bfd).external_strings)
 #define obj_aout_external_string_size(bfd) (adata (bfd).external_string_size)
-#define obj_aout_string_window(bfd)        (adata (bfd).string_window)
-#define obj_aout_sym_hashes(bfd)           (adata (bfd).sym_hashes)
-#define obj_aout_dynamic_info(bfd)         (adata (bfd).dynamic_info)
+#define obj_aout_string_window(bfd)	   (adata (bfd).string_window)
+#define obj_aout_sym_hashes(bfd)	   (adata (bfd).sym_hashes)
+#define obj_aout_dynamic_info(bfd)	   (adata (bfd).dynamic_info)
 
 /* We take the address of the first element of an asymbol to ensure that the
    macro is only ever applied to an asymbol.  */
@@ -626,10 +626,10 @@ extern bfd_boolean NAME (aout, bfd_free_
       {									      \
 	if (adata(abfd).magic == undecided_magic)			      \
 	  NAME (aout, adjust_sizes_and_vmas) (abfd);			      \
-    									      \
+									      \
 	execp->a_syms = bfd_get_symcount (abfd) * EXTERNAL_NLIST_SIZE;	      \
 	execp->a_entry = bfd_get_start_address (abfd);			      \
-    									      \
+									      \
 	execp->a_trsize = ((obj_textsec (abfd)->reloc_count) *		      \
 			   obj_reloc_entry_size (abfd));		      \
 	execp->a_drsize = ((obj_datasec (abfd)->reloc_count) *		      \
@@ -641,9 +641,9 @@ extern bfd_boolean NAME (aout, bfd_free_
 			  abfd) != EXEC_BYTES_SIZE)			      \
 	  return FALSE;							      \
 	/* Now write out reloc info, followed by syms and strings.  */	      \
-  									      \
+									      \
 	if (bfd_get_outsymbols (abfd) != NULL				      \
-	    && bfd_get_symcount (abfd) != 0) 				      \
+	    && bfd_get_symcount (abfd) != 0)				      \
 	  {								      \
 	    if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (execp)), SEEK_SET) != 0)\
 	      return FALSE;						      \
@@ -653,14 +653,14 @@ extern bfd_boolean NAME (aout, bfd_free_
 	  }								      \
 									      \
 	if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (execp)), SEEK_SET) != 0)   \
-	  return FALSE;						      	      \
-	if (!NAME (aout, squirt_out_relocs) (abfd, obj_textsec (abfd)))       \
-	  return FALSE;						      	      \
+	  return FALSE;							      \
+	if (!NAME (aout, squirt_out_relocs) (abfd, obj_textsec (abfd)))	      \
+	  return FALSE;							      \
 									      \
 	if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (execp)), SEEK_SET) != 0)   \
-	  return FALSE;						      	      \
-	if (!NAME (aout, squirt_out_relocs) (abfd, obj_datasec (abfd)))       \
-	  return FALSE;						      	      \
+	  return FALSE;							      \
+	if (!NAME (aout, squirt_out_relocs) (abfd, obj_datasec (abfd)))	      \
+	  return FALSE;							      \
       }
 #endif
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libbfd.c ./bfd/libbfd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libbfd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/libbfd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Assorted BFD support routines, only used internally.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -119,6 +119,15 @@ _bfd_norelocs_canonicalize_reloc (bfd *a
   return 0;
 }
 
+void
+_bfd_norelocs_set_reloc (bfd *abfd ATTRIBUTE_UNUSED,
+			 asection *sec ATTRIBUTE_UNUSED,
+			 arelent **relptr ATTRIBUTE_UNUSED,
+			 unsigned int count ATTRIBUTE_UNUSED)
+{
+  /* Do nothing.  */
+}
+
 bfd_boolean
 _bfd_nocore_core_file_matches_executable_p
   (bfd *ignore_core_bfd ATTRIBUTE_UNUSED,
@@ -323,8 +332,8 @@ bfd_write_bigendian_4byte_int (bfd *abfd
 
 /* FIXME: Should these take a count argument?
    Answer (gnu@cygnus.com):  No, but perhaps they should be inline
-                             functions in swap.h #ifdef __GNUC__.
-                             Gprof them later and find out.  */
+			     functions in swap.h #ifdef __GNUC__.
+			     Gprof them later and find out.  */
 
 /*
 FUNCTION
@@ -398,9 +407,9 @@ DESCRIPTION
 .
 .#define bfd_put(bits, abfd, val, ptr)			\
 .  ((bits) == 8 ? bfd_put_8  (abfd, val, ptr)		\
-.   : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)		\
-.   : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)		\
-.   : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)		\
+.   : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)	\
+.   : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)	\
+.   : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)	\
 .   : (abort (), (void) 0))
 .
 */
@@ -803,7 +812,11 @@ _bfd_generic_get_section_contents (bfd *
   else
     sz = section->size;
   if (offset + count < count
-      || offset + count > sz)
+      || offset + count > sz
+      || (abfd->my_archive != NULL
+	  && !bfd_is_thin_archive (abfd->my_archive)
+	  && ((ufile_ptr) section->filepos + offset + count
+	      > arelt_size (abfd))))
     {
       bfd_set_error (bfd_error_invalid_operation);
       return FALSE;
@@ -858,7 +871,12 @@ _bfd_generic_get_section_contents_in_win
     sz = section->rawsize;
   else
     sz = section->size;
-  if (offset + count > sz
+  if (offset + count < count
+      || offset + count > sz
+      || (abfd->my_archive != NULL
+	  && !bfd_is_thin_archive (abfd->my_archive)
+	  && ((ufile_ptr) section->filepos + offset + count
+	      > arelt_size (abfd)))
       || ! bfd_get_file_window (abfd, section->filepos + offset, count, w,
 				TRUE))
     return FALSE;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libbfd.h ./bfd/libbfd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libbfd.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/libbfd.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,12 +1,12 @@
-/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
-   generated from "libbfd-in.h", "libbfd.c", "bfdio.c", "bfdwin.c", 
+/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically
+   generated from "libbfd-in.h", "libbfd.c", "bfdio.c", "bfdwin.c",
    "cache.c", "reloc.c", "archures.c" and "linker.c".
    Run "make headers" in your build bfd/ to regenerate.  */
 
 /* libbfd.h -- Declarations used by bfd library *implementation*.
    (This include file is not for users of the library.)
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Written by Cygnus Support.
 
@@ -243,9 +243,9 @@ int bfd_generic_stat_arch_elt
   (bfd *, struct stat *);
 
 #define _bfd_read_ar_hdr(abfd) \
-  BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd))
-#define _bfd_write_ar_hdr(archive, abfd)         \
-  BFD_SEND (abfd, _bfd_write_ar_hdr_fn, (archive, abfd))
+	BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd))
+#define _bfd_write_ar_hdr(archive, abfd)	 \
+	BFD_SEND (abfd, _bfd_write_ar_hdr_fn, (archive, abfd))
 
 /* Generic routines to use for BFD_JUMP_TABLE_GENERIC.  Use
    BFD_JUMP_TABLE_GENERIC (_bfd_generic).  */
@@ -449,6 +449,8 @@ extern bfd_boolean _bfd_vms_lib_ia64_mka
 extern long _bfd_norelocs_get_reloc_upper_bound (bfd *, asection *);
 extern long _bfd_norelocs_canonicalize_reloc (bfd *, asection *,
 					      arelent **, asymbol **);
+extern void _bfd_norelocs_set_reloc (bfd *, asection *,
+				     arelent **, unsigned int);
 #define _bfd_norelocs_bfd_reloc_type_lookup \
   ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr)
 #define _bfd_norelocs_bfd_reloc_name_lookup \
@@ -518,6 +520,9 @@ extern bfd_boolean _bfd_generic_set_sect
 #define _bfd_nolink_bfd_define_common_symbol \
   ((bfd_boolean (*) (bfd *, struct bfd_link_info *, \
 		     struct bfd_link_hash_entry *)) bfd_false)
+#define _bfd_nolink_bfd_define_start_stop \
+  ((struct bfd_link_hash_entry * (*) (struct bfd_link_info *, \
+				      const char *, asection *)) bfd_nullvoidptr)
 #define _bfd_nolink_bfd_link_check_relocs \
   _bfd_generic_link_check_relocs
 
@@ -881,7 +886,7 @@ struct bfd_iovec
      if an error occurs.  */
   file_ptr (*btell) (struct bfd *abfd);
   /* For the following, on successful completion a value of 0 is returned.
-     Otherwise, a value of -1 is returned (and  <<bfd_error>> is set).  */
+     Otherwise, a value of -1 is returned (and <<bfd_error>> is set).  */
   int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
   int (*bclose) (struct bfd *abfd);
   int (*bflush) (struct bfd *abfd);
@@ -1211,6 +1216,11 @@ static const char *const bfd_reloc_code_
   "BFD_RELOC_FT32_20",
   "BFD_RELOC_FT32_17",
   "BFD_RELOC_FT32_18",
+  "BFD_RELOC_FT32_RELAX",
+  "BFD_RELOC_FT32_SC0",
+  "BFD_RELOC_FT32_SC1",
+  "BFD_RELOC_FT32_15",
+  "BFD_RELOC_FT32_DIFF32",
 
   "BFD_RELOC_FRV_LABEL16",
   "BFD_RELOC_FRV_LABEL24",
@@ -1747,6 +1757,7 @@ static const char *const bfd_reloc_code_
   "BFD_RELOC_ARC_S25W_PCREL_PLT",
   "BFD_RELOC_ARC_S21H_PCREL_PLT",
   "BFD_RELOC_ARC_NPS_CMEM16",
+  "BFD_RELOC_ARC_JLI_SECTOFF",
   "BFD_RELOC_BFIN_16_IMM",
   "BFD_RELOC_BFIN_16_HIGH",
   "BFD_RELOC_BFIN_4_PCREL",
@@ -2210,6 +2221,7 @@ static const char *const bfd_reloc_code_
   "BFD_RELOC_RISCV_SET8",
   "BFD_RELOC_RISCV_SET16",
   "BFD_RELOC_RISCV_SET32",
+  "BFD_RELOC_RISCV_32_PCREL",
   "BFD_RELOC_RL78_NEG8",
   "BFD_RELOC_RL78_NEG16",
   "BFD_RELOC_RL78_NEG24",
@@ -3206,6 +3218,17 @@ bfd_byte *bfd_generic_get_relocated_sect
     bfd_boolean relocatable,
     asymbol **symbols);
 
+void _bfd_generic_set_reloc
+   (bfd *abfd,
+    sec_ptr section,
+    arelent **relptr,
+    unsigned int count);
+
+bfd_boolean _bfd_unrecognized_reloc
+   (bfd * abfd,
+    sec_ptr section,
+    unsigned int r_type);
+
 /* Extracted from archures.c.  */
 extern const bfd_arch_info_type bfd_default_arch_struct;
 const bfd_arch_info_type *bfd_default_compatible
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libbfd-in.h ./bfd/libbfd-in.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libbfd-in.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/libbfd-in.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,7 +1,7 @@
 /* libbfd.h -- Declarations used by bfd library *implementation*.
    (This include file is not for users of the library.)
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Written by Cygnus Support.
 
@@ -238,9 +238,9 @@ int bfd_generic_stat_arch_elt
   (bfd *, struct stat *);
 
 #define _bfd_read_ar_hdr(abfd) \
-  BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd))
-#define _bfd_write_ar_hdr(archive, abfd)         \
-  BFD_SEND (abfd, _bfd_write_ar_hdr_fn, (archive, abfd))
+	BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd))
+#define _bfd_write_ar_hdr(archive, abfd)	 \
+	BFD_SEND (abfd, _bfd_write_ar_hdr_fn, (archive, abfd))
 
 /* Generic routines to use for BFD_JUMP_TABLE_GENERIC.  Use
    BFD_JUMP_TABLE_GENERIC (_bfd_generic).  */
@@ -444,6 +444,8 @@ extern bfd_boolean _bfd_vms_lib_ia64_mka
 extern long _bfd_norelocs_get_reloc_upper_bound (bfd *, asection *);
 extern long _bfd_norelocs_canonicalize_reloc (bfd *, asection *,
 					      arelent **, asymbol **);
+extern void _bfd_norelocs_set_reloc (bfd *, asection *,
+				     arelent **, unsigned int);
 #define _bfd_norelocs_bfd_reloc_type_lookup \
   ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr)
 #define _bfd_norelocs_bfd_reloc_name_lookup \
@@ -513,6 +515,9 @@ extern bfd_boolean _bfd_generic_set_sect
 #define _bfd_nolink_bfd_define_common_symbol \
   ((bfd_boolean (*) (bfd *, struct bfd_link_info *, \
 		     struct bfd_link_hash_entry *)) bfd_false)
+#define _bfd_nolink_bfd_define_start_stop \
+  ((struct bfd_link_hash_entry * (*) (struct bfd_link_info *, \
+				      const char *, asection *)) bfd_nullvoidptr)
 #define _bfd_nolink_bfd_link_check_relocs \
   _bfd_generic_link_check_relocs
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libcoff.h ./bfd/libcoff.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libcoff.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/libcoff.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,9 +1,9 @@
-/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
+/* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically
    generated from "libcoff-in.h" and "coffcode.h".
    Run "make headers" in your build bfd/ to regenerate.  */
 
 /* BFD COFF object file private structure.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -33,7 +33,7 @@ extern "C" {
 /* Object file tdata; access macros.  */
 
 #define coff_data(bfd)		      ((bfd)->tdata.coff_obj_data)
-#define obj_pe(bfd)                   (coff_data (bfd)->pe)
+#define obj_pe(bfd)		      (coff_data (bfd)->pe)
 #define obj_symbols(bfd)	      (coff_data (bfd)->symbols)
 #define	obj_sym_filepos(bfd)	      (coff_data (bfd)->sym_filepos)
 #define obj_relocbase(bfd)	      (coff_data (bfd)->relocbase)
@@ -271,11 +271,11 @@ struct coff_link_hash_table
 
 struct coff_reloc_cookie
 {
-  struct internal_reloc *         rels;
-  struct internal_reloc *         rel;
-  struct internal_reloc *         relend;
-  struct coff_symbol_struct *     symbols;	/* Symtab for input bfd.  */
-  bfd *                           abfd;
+  struct internal_reloc *	  rels;
+  struct internal_reloc *	  rel;
+  struct internal_reloc *	  relend;
+  struct coff_symbol_struct *	  symbols;	/* Symtab for input bfd.  */
+  bfd *				  abfd;
   struct coff_link_hash_entry **  sym_hashes;
 };
 
@@ -775,19 +775,19 @@ typedef struct
 
   bfd_boolean (*_bfd_coff_pointerize_aux_hook)
     (bfd *, combined_entry_type *, combined_entry_type *,
-            unsigned int, combined_entry_type *);
+     unsigned int, combined_entry_type *);
 
   bfd_boolean (*_bfd_coff_print_aux)
     (bfd *, FILE *, combined_entry_type *, combined_entry_type *,
-            combined_entry_type *, unsigned int);
+     combined_entry_type *, unsigned int);
 
   void (*_bfd_coff_reloc16_extra_cases)
     (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
-           bfd_byte *, unsigned int *, unsigned int *);
+     bfd_byte *, unsigned int *, unsigned int *);
 
   int (*_bfd_coff_reloc16_estimate)
     (bfd *, asection *, arelent *, unsigned int,
-            struct bfd_link_info *);
+     struct bfd_link_info *);
 
   enum coff_symbol_classification (*_bfd_coff_classify_symbol)
     (bfd *, struct internal_syment *);
@@ -800,21 +800,20 @@ typedef struct
 
   bfd_boolean (*_bfd_coff_relocate_section)
     (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
-            struct internal_reloc *, struct internal_syment *, asection **);
+     struct internal_reloc *, struct internal_syment *, asection **);
 
   reloc_howto_type *(*_bfd_coff_rtype_to_howto)
     (bfd *, asection *, struct internal_reloc *,
-            struct coff_link_hash_entry *, struct internal_syment *,
-            bfd_vma *);
+     struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *);
 
   bfd_boolean (*_bfd_coff_adjust_symndx)
     (bfd *, struct bfd_link_info *, bfd *, asection *,
-            struct internal_reloc *, bfd_boolean *);
+     struct internal_reloc *, bfd_boolean *);
 
   bfd_boolean (*_bfd_coff_link_add_one_symbol)
     (struct bfd_link_info *, bfd *, const char *, flagword,
-            asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
-            struct bfd_link_hash_entry **);
+     asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
+     struct bfd_link_hash_entry **);
 
   bfd_boolean (*_bfd_coff_link_output_has_begun)
     (bfd *, struct coff_final_link_info *);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libcoff-in.h ./bfd/libcoff-in.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libcoff-in.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/libcoff-in.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD COFF object file private structure.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -29,7 +29,7 @@ extern "C" {
 /* Object file tdata; access macros.  */
 
 #define coff_data(bfd)		      ((bfd)->tdata.coff_obj_data)
-#define obj_pe(bfd)                   (coff_data (bfd)->pe)
+#define obj_pe(bfd)		      (coff_data (bfd)->pe)
 #define obj_symbols(bfd)	      (coff_data (bfd)->symbols)
 #define	obj_sym_filepos(bfd)	      (coff_data (bfd)->sym_filepos)
 #define obj_relocbase(bfd)	      (coff_data (bfd)->relocbase)
@@ -267,11 +267,11 @@ struct coff_link_hash_table
 
 struct coff_reloc_cookie
 {
-  struct internal_reloc *         rels;
-  struct internal_reloc *         rel;
-  struct internal_reloc *         relend;
-  struct coff_symbol_struct *     symbols;	/* Symtab for input bfd.  */
-  bfd *                           abfd;
+  struct internal_reloc *	  rels;
+  struct internal_reloc *	  rel;
+  struct internal_reloc *	  relend;
+  struct coff_symbol_struct *	  symbols;	/* Symtab for input bfd.  */
+  bfd *				  abfd;
   struct coff_link_hash_entry **  sym_hashes;
 };
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libecoff.h ./bfd/libecoff.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libecoff.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/libecoff.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD ECOFF object file private structure.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libhppa.h ./bfd/libhppa.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libhppa.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/libhppa.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* HP PA-RISC SOM object file format:  definitions internal to BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Contributed by the Center for Software Science at the
    University of Utah (pa-gdb-bugs@cs.utah.edu).
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libieee.h ./bfd/libieee.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libieee.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/libieee.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* IEEE-695 object file formats:  definitions internal to BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.  Mostly Steve Chamberlain's fault.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -64,6 +64,7 @@ typedef struct ieee_per_section
 
 typedef struct {
   unsigned char *input_p;
+  unsigned char *end_p;
   unsigned char *first_byte;
   unsigned char *last_byte;
   bfd_size_type total_amt;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libnlm.h ./bfd/libnlm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libnlm.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/libnlm.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end data structures for NLM (NetWare Loadable Modules) files.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -53,19 +53,19 @@ typedef struct
   struct nlm_relent *relocs;
 } nlmNAME(symbol_type);
 
-extern bfd_boolean        nlm_mkobject                    (bfd *);
-extern bfd_boolean        nlm_set_arch_mach               (bfd *, enum bfd_architecture, unsigned long);
-extern void               nlmNAME (get_symbol_info)       (bfd *, asymbol *, symbol_info *);
-extern long               nlmNAME (get_symtab_upper_bound)(bfd *);
-extern long               nlmNAME (canonicalize_symtab)   (bfd *, asymbol **);
-extern asymbol *          nlmNAME (make_empty_symbol)     (bfd *);
-extern void               nlmNAME (print_symbol)          (bfd *, void *, asymbol *, bfd_print_symbol_type);
-extern long               nlmNAME (get_reloc_upper_bound) (bfd *, asection *);
-extern long               nlmNAME (canonicalize_reloc)    (bfd *, asection *, arelent **, asymbol **);
-extern const bfd_target * nlmNAME (object_p)              (bfd *);
-extern bfd_boolean        nlmNAME (set_arch_mach)         (bfd *, enum bfd_architecture, unsigned long);
-extern bfd_boolean        nlmNAME (set_section_contents)  (bfd *, asection *, const void *, file_ptr, bfd_size_type);
-extern bfd_boolean        nlmNAME (write_object_contents) (bfd *);
+extern bfd_boolean	  nlm_mkobject			  (bfd *);
+extern bfd_boolean	  nlm_set_arch_mach		  (bfd *, enum bfd_architecture, unsigned long);
+extern void		  nlmNAME (get_symbol_info)	  (bfd *, asymbol *, symbol_info *);
+extern long		  nlmNAME (get_symtab_upper_bound)(bfd *);
+extern long		  nlmNAME (canonicalize_symtab)	  (bfd *, asymbol **);
+extern asymbol *	  nlmNAME (make_empty_symbol)	  (bfd *);
+extern void		  nlmNAME (print_symbol)	  (bfd *, void *, asymbol *, bfd_print_symbol_type);
+extern long		  nlmNAME (get_reloc_upper_bound) (bfd *, asection *);
+extern long		  nlmNAME (canonicalize_reloc)	  (bfd *, asection *, arelent **, asymbol **);
+extern const bfd_target * nlmNAME (object_p)		  (bfd *);
+extern bfd_boolean	  nlmNAME (set_arch_mach)	  (bfd *, enum bfd_architecture, unsigned long);
+extern bfd_boolean	  nlmNAME (set_section_contents)  (bfd *, asection *, const void *, file_ptr, bfd_size_type);
+extern bfd_boolean	  nlmNAME (write_object_contents) (bfd *);
 
 /* Some private data is stashed away for future use using the tdata pointer
    in the bfd structure.  */
@@ -192,24 +192,24 @@ struct nlm_backend_data
 };
 
 #define nlm_backend(bfd)   ((struct nlm_backend_data *)((bfd) -> xvec -> backend_data))
-#define nlm_signature(bfd)                 (nlm_backend (bfd) -> signature)
-#define nlm_fixed_header_size(bfd)         (nlm_backend (bfd) -> fixed_header_size)
-#define nlm_optional_prefix_size(bfd)      (nlm_backend (bfd) -> optional_prefix_size)
-#define nlm_architecture(bfd)              (nlm_backend (bfd) -> arch)
-#define nlm_machine(bfd)                   (nlm_backend (bfd) -> mach)
-#define nlm_no_uninitialized_data(bfd)     (nlm_backend (bfd) -> no_uninitialized_data)
-#define nlm_backend_object_p_func(bfd)     (nlm_backend (bfd) -> nlm_backend_object_p)
-#define nlm_write_prefix_func(bfd)         (nlm_backend (bfd) -> nlm_write_prefix)
-#define nlm_read_reloc_func(bfd)           (nlm_backend (bfd) -> nlm_read_reloc)
-#define nlm_mangle_relocs_func(bfd)        (nlm_backend (bfd) -> nlm_mangle_relocs)
-#define nlm_read_import_func(bfd)          (nlm_backend (bfd) -> nlm_read_import)
-#define nlm_write_import_func(bfd)         (nlm_backend (bfd) -> nlm_write_import)
+#define nlm_signature(bfd)		   (nlm_backend (bfd) -> signature)
+#define nlm_fixed_header_size(bfd)	   (nlm_backend (bfd) -> fixed_header_size)
+#define nlm_optional_prefix_size(bfd)	   (nlm_backend (bfd) -> optional_prefix_size)
+#define nlm_architecture(bfd)		   (nlm_backend (bfd) -> arch)
+#define nlm_machine(bfd)		   (nlm_backend (bfd) -> mach)
+#define nlm_no_uninitialized_data(bfd)	   (nlm_backend (bfd) -> no_uninitialized_data)
+#define nlm_backend_object_p_func(bfd)	   (nlm_backend (bfd) -> nlm_backend_object_p)
+#define nlm_write_prefix_func(bfd)	   (nlm_backend (bfd) -> nlm_write_prefix)
+#define nlm_read_reloc_func(bfd)	   (nlm_backend (bfd) -> nlm_read_reloc)
+#define nlm_mangle_relocs_func(bfd)	   (nlm_backend (bfd) -> nlm_mangle_relocs)
+#define nlm_read_import_func(bfd)	   (nlm_backend (bfd) -> nlm_read_import)
+#define nlm_write_import_func(bfd)	   (nlm_backend (bfd) -> nlm_write_import)
 #define nlm_set_public_section_func(bfd)   (nlm_backend (bfd) -> nlm_set_public_section)
-#define nlm_get_public_offset_func(bfd)    (nlm_backend (bfd) -> nlm_get_public_offset)
+#define nlm_get_public_offset_func(bfd)	   (nlm_backend (bfd) -> nlm_get_public_offset)
 #define nlm_swap_fixed_header_in_func(bfd) (nlm_backend (bfd) -> nlm_swap_fhdr_in)
 #define nlm_swap_fixed_header_out_func(bfd)(nlm_backend (bfd) -> nlm_swap_fhdr_out)
-#define nlm_write_external_func(bfd)       (nlm_backend (bfd) -> nlm_write_external)
-#define nlm_write_export_func(bfd)         (nlm_backend (bfd) -> nlm_write_export)
+#define nlm_write_external_func(bfd)	   (nlm_backend (bfd) -> nlm_write_external)
+#define nlm_write_export_func(bfd)	   (nlm_backend (bfd) -> nlm_write_export)
 
 /* The NLM code, data, and uninitialized sections have no names defined
    in the NLM, but bfd wants to give them names, so use the traditional
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/liboasys.h ./bfd/liboasys.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/liboasys.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/liboasys.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD internal declarations for Oasys file format handling.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Scrawled by Steve Chamberlain of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libpei.h ./bfd/libpei.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libpei.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/libpei.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for the generic parts of PE/PEI; common header information.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
    Written by Cygnus Solutions.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -207,17 +207,17 @@
 
 #ifdef COFF_WITH_pex64
 
-#define GET_OPTHDR_IMAGE_BASE            H_GET_64
-#define PUT_OPTHDR_IMAGE_BASE            H_PUT_64
+#define GET_OPTHDR_IMAGE_BASE		 H_GET_64
+#define PUT_OPTHDR_IMAGE_BASE		 H_PUT_64
 #define GET_OPTHDR_SIZE_OF_STACK_RESERVE H_GET_64
 #define PUT_OPTHDR_SIZE_OF_STACK_RESERVE H_PUT_64
-#define GET_OPTHDR_SIZE_OF_STACK_COMMIT  H_GET_64
-#define PUT_OPTHDR_SIZE_OF_STACK_COMMIT  H_PUT_64
-#define GET_OPTHDR_SIZE_OF_HEAP_RESERVE  H_GET_64
-#define PUT_OPTHDR_SIZE_OF_HEAP_RESERVE  H_PUT_64
-#define GET_OPTHDR_SIZE_OF_HEAP_COMMIT   H_GET_64
-#define PUT_OPTHDR_SIZE_OF_HEAP_COMMIT   H_PUT_64
-#define GET_PDATA_ENTRY                  bfd_get_32
+#define GET_OPTHDR_SIZE_OF_STACK_COMMIT	 H_GET_64
+#define PUT_OPTHDR_SIZE_OF_STACK_COMMIT	 H_PUT_64
+#define GET_OPTHDR_SIZE_OF_HEAP_RESERVE	 H_GET_64
+#define PUT_OPTHDR_SIZE_OF_HEAP_RESERVE	 H_PUT_64
+#define GET_OPTHDR_SIZE_OF_HEAP_COMMIT	 H_GET_64
+#define PUT_OPTHDR_SIZE_OF_HEAP_COMMIT	 H_PUT_64
+#define GET_PDATA_ENTRY			 bfd_get_32
 
 #define _bfd_XX_bfd_copy_private_bfd_data_common	_bfd_pex64_bfd_copy_private_bfd_data_common
 #define _bfd_XX_bfd_copy_private_section_data		_bfd_pex64_bfd_copy_private_section_data
@@ -338,20 +338,20 @@
 #define coff_final_link_postscript _bfd_XXi_final_link_postscript
 #endif
 
-void        _bfd_XXi_swap_sym_in (bfd *, void *, void *);
+void	    _bfd_XXi_swap_sym_in (bfd *, void *, void *);
 unsigned    _bfd_XXi_swap_sym_out (bfd *, void *, void *);
-void        _bfd_XXi_swap_aux_in (bfd *, void *, int, int, int, int, void *);
+void	    _bfd_XXi_swap_aux_in (bfd *, void *, int, int, int, int, void *);
 unsigned    _bfd_XXi_swap_aux_out (bfd *, void *, int, int, int, int, void *);
-void        _bfd_XXi_swap_lineno_in (bfd *, void *, void *);
+void	    _bfd_XXi_swap_lineno_in (bfd *, void *, void *);
 unsigned    _bfd_XXi_swap_lineno_out (bfd *, void *, void *);
-void        _bfd_XXi_swap_aouthdr_in (bfd *, void *, void *);
+void	    _bfd_XXi_swap_aouthdr_in (bfd *, void *, void *);
 unsigned    _bfd_XXi_swap_aouthdr_out (bfd *, void *, void *);
 unsigned    _bfd_XXi_swap_scnhdr_out (bfd *, void *, void *);
 bfd_boolean _bfd_XX_print_private_bfd_data_common (bfd *, void *);
 bfd_boolean _bfd_XX_bfd_copy_private_bfd_data_common (bfd *, bfd *);
-void        _bfd_XX_get_symbol_info (bfd *, asymbol *, symbol_info *);
+void	    _bfd_XX_get_symbol_info (bfd *, asymbol *, symbol_info *);
 bfd_boolean _bfd_XXi_final_link_postscript (bfd *, struct coff_final_link_info *);
-void        _bfd_XXi_swap_debugdir_in (bfd *, void *, void *);
+void	    _bfd_XXi_swap_debugdir_in (bfd *, void *, void *);
 unsigned    _bfd_XXi_swap_debugdir_out (bfd *, void *, void *);
 unsigned    _bfd_XXi_write_codeview_record (bfd *, file_ptr, CODEVIEW_INFO *);
 CODEVIEW_INFO * _bfd_XXi_slurp_codeview_record (bfd * abfd, file_ptr where, unsigned long length, CODEVIEW_INFO *cvinfo);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libxcoff.h ./bfd/libxcoff.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/libxcoff.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/libxcoff.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD XCOFF object file private structure.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    Written by Tom Rix, Redhat.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -194,7 +194,7 @@ struct xcoff_backend_data_rec
 /* Check for the magic number U802TOMAGIC for 32 bit targets.  */
 #define bfd_xcoff_is_xcoff32(a) (0x01DF == (bfd_xcoff_magic_number (a)))
 
-#define bfd_xcoff_rtinit_size(a)              ((xcoff_backend (a)->_xcoff_rtinit_size))
+#define bfd_xcoff_rtinit_size(a)	      ((xcoff_backend (a)->_xcoff_rtinit_size))
 #define bfd_xcoff_generate_rtinit(a, b, c, d) ((xcoff_backend (a)->_xcoff_generate_rtinit ((a), (b), (c), (d))))
 
 /* Accessor macros for tdata.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/linker.c ./bfd/linker.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/linker.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/linker.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* linker.c -- BFD linker routines
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -433,7 +433,7 @@ _bfd_link_hash_newfunc (struct bfd_hash_
   if (entry == NULL)
     {
       entry = (struct bfd_hash_entry *)
-          bfd_hash_allocate (table, sizeof (struct bfd_link_hash_entry));
+	  bfd_hash_allocate (table, sizeof (struct bfd_link_hash_entry));
       if (entry == NULL)
 	return entry;
     }
@@ -543,7 +543,7 @@ bfd_wrapped_link_hash_lookup (bfd *abfd,
 	  struct bfd_link_hash_entry *h;
 
 	  /* This symbol is being wrapped.  We want to replace all
-             references to SYM with references to __wrap_SYM.  */
+	     references to SYM with references to __wrap_SYM.  */
 
 	  amt = strlen (l) + sizeof WRAP + 1;
 	  n = (char *) bfd_malloc (amt);
@@ -571,8 +571,8 @@ bfd_wrapped_link_hash_lookup (bfd *abfd,
 	  struct bfd_link_hash_entry *h;
 
 	  /* This is a reference to __real_SYM, where SYM is being
-             wrapped.  We want to replace all references to __real_SYM
-             with references to SYM.  */
+	     wrapped.  We want to replace all references to __real_SYM
+	     with references to SYM.  */
 
 	  amt = strlen (l + sizeof REAL - 1) + 2;
 	  n = (char *) bfd_malloc (amt);
@@ -632,7 +632,7 @@ unwrap_hash_lookup (struct bfd_link_info
 /* Traverse a generic link hash table.  Differs from bfd_hash_traverse
    in the treatment of warning symbols.  When warning symbols are
    created they replace the real symbol, so you don't get to see the
-   real symbol in a bfd_hash_travere.  This traversal calls func with
+   real symbol in a bfd_hash_traverse.  This traversal calls func with
    the real symbol.  */
 
 void
@@ -795,7 +795,7 @@ bfd_generic_link_read_symbols (bfd *abfd
       if (symsize < 0)
 	return FALSE;
       bfd_get_outsymbols (abfd) = (struct bfd_symbol **) bfd_alloc (abfd,
-                                                                    symsize);
+								    symsize);
       if (bfd_get_outsymbols (abfd) == NULL && symsize != 0)
 	return FALSE;
       symcount = bfd_canonicalize_symtab (abfd, bfd_get_outsymbols (abfd));
@@ -1179,9 +1179,9 @@ generic_link_add_symbol_list (bfd *abfd,
 	  h = (struct generic_link_hash_entry *) bh;
 
 	  /* If this is a constructor symbol, and the linker didn't do
-             anything with it, then we want to just pass the symbol
-             through to the output file.  This will happen when
-             linking with -r.  */
+	     anything with it, then we want to just pass the symbol
+	     through to the output file.  This will happen when
+	     linking with -r.  */
 	  if ((p->flags & BSF_CONSTRUCTOR) != 0
 	      && (h == NULL || h->root.type == bfd_link_hash_new))
 	    {
@@ -1281,10 +1281,10 @@ enum link_action
 static const enum link_action link_action[8][8] =
 {
   /* current\prev    new    undef  undefw def    defw   com    indr   warn  */
-  /* UNDEF_ROW 	*/  {UND,   NOACT, UND,   REF,   REF,   NOACT, REFC,  WARNC },
+  /* UNDEF_ROW	*/  {UND,   NOACT, UND,   REF,   REF,   NOACT, REFC,  WARNC },
   /* UNDEFW_ROW	*/  {WEAK,  NOACT, NOACT, REF,   REF,   NOACT, REFC,  WARNC },
-  /* DEF_ROW 	*/  {DEF,   DEF,   DEF,   MDEF,  DEF,   CDEF,  MDEF,  CYCLE },
-  /* DEFW_ROW 	*/  {DEFW,  DEFW,  DEFW,  NOACT, NOACT, NOACT, NOACT, CYCLE },
+  /* DEF_ROW	*/  {DEF,   DEF,   DEF,   MDEF,  DEF,   CDEF,  MDEF,  CYCLE },
+  /* DEFW_ROW	*/  {DEFW,  DEFW,  DEFW,  NOACT, NOACT, NOACT, NOACT, CYCLE },
   /* COMMON_ROW	*/  {COM,   COM,   COM,   CREF,  COM,   BIG,   REFC,  WARNC },
   /* INDR_ROW	*/  {IND,   IND,   IND,   MDEF,  IND,   CIND,  MIND,  CYCLE },
   /* WARN_ROW   */  {MWARN, WARN,  WARN,  WARN,  WARN,  WARN,  WARN,  NOACT },
@@ -1403,7 +1403,9 @@ _bfd_generic_link_add_one_symbol (struct
     {
       row = COMMON_ROW;
       if (!bfd_link_relocatable (info)
-	  && strcmp (name, "__gnu_lto_slim") == 0)
+	  && name[0] == '_'
+	  && name[1] == '_'
+	  && strcmp (name + (name[2] == '_'), "__gnu_lto_slim") == 0)
 	_bfd_error_handler
 	  (_("%B: plugin needed to handle lto object"), abfd);
     }
@@ -1441,9 +1443,14 @@ _bfd_generic_link_add_one_symbol (struct
   do
     {
       enum link_action action;
+      int prev;
 
+      prev = h->type;
+      /* Treat symbols defined by early linker script pass as undefined.  */
+      if (h->ldscript_def)
+	prev = bfd_link_hash_undefined;
       cycle = FALSE;
-      action = link_action[(int) row][(int) h->type];
+      action = link_action[(int) row][prev];
       switch (action)
 	{
 	case FAIL:
@@ -1487,6 +1494,7 @@ _bfd_generic_link_add_one_symbol (struct
 	    h->u.def.section = section;
 	    h->u.def.value = value;
 	    h->linker_def = 0;
+	    h->ldscript_def = 0;
 
 	    /* If we have been asked to, we act like collect2 and
 	       identify all functions that might be global
@@ -1519,12 +1527,12 @@ _bfd_generic_link_add_one_symbol (struct
 			&& s[CONS_PREFIX_LEN] == s[CONS_PREFIX_LEN + 2])
 		      {
 			/* If this is a definition of a symbol which
-                           was previously weakly defined, we are in
-                           trouble.  We have already added a
-                           constructor entry for the weak defined
-                           symbol, and now we are trying to add one
-                           for the new symbol.  Fortunately, this case
-                           should never arise in practice.  */
+			   was previously weakly defined, we are in
+			   trouble.  We have already added a
+			   constructor entry for the weak defined
+			   symbol, and now we are trying to add one
+			   for the new symbol.  Fortunately, this case
+			   should never arise in practice.  */
 			if (oldtype == bfd_link_hash_defweak)
 			  abort ();
 
@@ -1552,7 +1560,7 @@ _bfd_generic_link_add_one_symbol (struct
 	  h->u.c.size = value;
 
 	  /* Select a default alignment based on the size.  This may
-             be overridden by the caller.  */
+	     be overridden by the caller.  */
 	  {
 	    unsigned int power;
 
@@ -1563,15 +1571,15 @@ _bfd_generic_link_add_one_symbol (struct
 	  }
 
 	  /* The section of a common symbol is only used if the common
-             symbol is actually allocated.  It basically provides a
-             hook for the linker script to decide which output section
-             the common symbols should be put in.  In most cases, the
-             section of a common symbol will be bfd_com_section_ptr,
-             the code here will choose a common symbol section named
-             "COMMON", and the linker script will contain *(COMMON) in
-             the appropriate place.  A few targets use separate common
-             sections for small symbols, and they require special
-             handling.  */
+	     symbol is actually allocated.  It basically provides a
+	     hook for the linker script to decide which output section
+	     the common symbols should be put in.  In most cases, the
+	     section of a common symbol will be bfd_com_section_ptr,
+	     the code here will choose a common symbol section named
+	     "COMMON", and the linker script will contain *(COMMON) in
+	     the appropriate place.  A few targets use separate common
+	     sections for small symbols, and they require special
+	     handling.  */
 	  if (section == bfd_com_section_ptr)
 	    {
 	      h->u.c.p->section = bfd_make_section_old_way (abfd, "COMMON");
@@ -1586,6 +1594,7 @@ _bfd_generic_link_add_one_symbol (struct
 	  else
 	    h->u.c.p->section = section;
 	  h->linker_def = 0;
+	  h->ldscript_def = 0;
 	  break;
 
 	case REF:
@@ -1735,7 +1744,8 @@ _bfd_generic_link_add_one_symbol (struct
 	     otherwise add a warning.  */
 	  if ((!info->lto_plugin_active
 	       && (h->u.undef.next != NULL || info->hash->undefs_tail == h))
-	      || h->non_ir_ref)
+	      || h->non_ir_ref_regular
+	      || h->non_ir_ref_dynamic)
 	    {
 	      (*info->callbacks->warning) (info, string, h->root.string,
 					   hash_entry_bfd (h), NULL, 0);
@@ -2007,13 +2017,13 @@ _bfd_generic_link_output_symbols (bfd *o
 	  else if ((sym->flags & BSF_CONSTRUCTOR) != 0)
 	    {
 	      /* This case normally means that the main linker code
-                 deliberately ignored this constructor symbol.  We
-                 should just pass it through.  This will screw up if
-                 the constructor symbol is from a different,
-                 non-generic, object file format, but the case will
-                 only arise when linking with -r, which will probably
-                 fail anyhow, since there will be no way to represent
-                 the relocs in the output format being used.  */
+		 deliberately ignored this constructor symbol.  We
+		 should just pass it through.  This will screw up if
+		 the constructor symbol is from a different,
+		 non-generic, object file format, but the case will
+		 only arise when linking with -r, which will probably
+		 fail anyhow, since there will be no way to represent
+		 the relocs in the output format being used.  */
 	      h = NULL;
 	    }
 	  else if (bfd_is_und_section (bfd_get_section (sym)))
@@ -2090,7 +2100,7 @@ _bfd_generic_link_output_symbols (bfd *o
 	      && bfd_hash_lookup (info->keep_hash, bfd_asymbol_name (sym),
 				  FALSE, FALSE) == NULL))
 	output = FALSE;
-      else if ((sym->flags & (BSF_GLOBAL | BSF_WEAK)) != 0)
+      else if ((sym->flags & (BSF_GLOBAL | BSF_WEAK | BSF_GNU_UNIQUE)) != 0)
 	{
 	  /* If this symbol is marked as occurring now, rather
 	     than at the end, output it now.  This is used for
@@ -2193,7 +2203,7 @@ set_symbol_from_hash (asymbol *sym, stru
       break;
     case bfd_link_hash_new:
       /* This can happen when a constructor symbol is seen but we are
-         not building constructors.  */
+	 not building constructors.  */
       if (sym->section != NULL)
 	{
 	  BFD_ASSERT ((sym->flags & BSF_CONSTRUCTOR) != 0);
@@ -2666,14 +2676,14 @@ FUNCTION
 	bfd_link_split_section
 
 SYNOPSIS
-        bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
+	bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
 
 DESCRIPTION
 	Return nonzero if @var{sec} should be split during a
 	reloceatable or final link.
 
 .#define bfd_link_split_section(abfd, sec) \
-.       BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
+.	BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
 .
 
 */
@@ -2690,7 +2700,7 @@ FUNCTION
 	bfd_section_already_linked
 
 SYNOPSIS
-        bfd_boolean bfd_section_already_linked (bfd *abfd,
+	bfd_boolean bfd_section_already_linked (bfd *abfd,
 						asection *sec,
 						struct bfd_link_info *info);
 
@@ -2699,7 +2709,7 @@ DESCRIPTION
 	or final link.  Return TRUE if it has.
 
 .#define bfd_section_already_linked(abfd, sec, info) \
-.       BFD_SEND (abfd, _section_already_linked, (abfd, sec, info))
+.	BFD_SEND (abfd, _section_already_linked, (abfd, sec, info))
 .
 
 */
@@ -3049,7 +3059,7 @@ DESCRIPTION
 	Return TRUE on success and FALSE on failure.
 
 .#define bfd_define_common_symbol(output_bfd, info, h) \
-.       BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h))
+.	BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h))
 .
 */
 
@@ -3096,6 +3106,43 @@ bfd_generic_define_common_symbol (bfd *o
 
 /*
 FUNCTION
+	bfd_generic_define_start_stop
+
+SYNOPSIS
+	struct bfd_link_hash_entry *bfd_generic_define_start_stop
+	  (struct bfd_link_info *info,
+	   const char *symbol, asection *sec);
+
+DESCRIPTION
+	Define a __start, __stop, .startof. or .sizeof. symbol.
+	Return the symbol or NULL if no such undefined symbol exists.
+
+.#define bfd_define_start_stop(output_bfd, info, symbol, sec) \
+.	BFD_SEND (output_bfd, _bfd_define_start_stop, (info, symbol, sec))
+.
+*/
+
+struct bfd_link_hash_entry *
+bfd_generic_define_start_stop (struct bfd_link_info *info,
+			       const char *symbol, asection *sec)
+{
+  struct bfd_link_hash_entry *h;
+
+  h = bfd_link_hash_lookup (info->hash, symbol, FALSE, FALSE, TRUE);
+  if (h != NULL
+      && (h->type == bfd_link_hash_undefined
+	  || h->type == bfd_link_hash_undefweak))
+    {
+      h->type = bfd_link_hash_defined;
+      h->u.def.section = sec;
+      h->u.def.value = 0;
+      return h;
+    }
+  return NULL;
+}
+
+/*
+FUNCTION
 	bfd_find_version_for_sym
 
 SYNOPSIS
@@ -3254,7 +3301,7 @@ SYNOPSIS
 	  (bfd *abfd, struct bfd_link_info *info);
 
 DESCRIPTION
-        Stub function for targets that do not implement reloc checking.
+	Stub function for targets that do not implement reloc checking.
 	Return TRUE.
 	This is an internal function.  It should not be called from
 	outside the BFD library.
@@ -3284,8 +3331,8 @@ DESCRIPTION
 	Not enough memory exists to create private data for @var{obfd}.
 
 .#define bfd_merge_private_bfd_data(ibfd, info) \
-.     BFD_SEND ((info)->output_bfd, _bfd_merge_private_bfd_data, \
-.		(ibfd, info))
+.	BFD_SEND ((info)->output_bfd, _bfd_merge_private_bfd_data, \
+.		  (ibfd, info))
 */
 
 /*
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/lynx-core.c ./bfd/lynx-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/lynx-core.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/lynx-core.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back end for Lynx core files
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Written by Stu Grossman of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -162,11 +162,11 @@ lynx_core_file_p (bfd *abfd)
 			       pagesize + tcontext_size + pss.ssize
 #if defined (SPARC) || defined (__SPARC__)
 			       /* SPARC Lynx seems to start dumping
-                                  the .data section at a page
-                                  boundary.  It's OK to check a
-                                  #define like SPARC here because this
-                                  file can only be compiled on a Lynx
-                                  host.  */
+				  the .data section at a page
+				  boundary.  It's OK to check a
+				  #define like SPARC here because this
+				  file can only be compiled on a Lynx
+				  host.  */
 			       + pss.data_start % pagesize
 #endif
 			       );
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/m68k4knetbsd.c ./bfd/m68k4knetbsd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/m68k4knetbsd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/m68k4knetbsd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for NetBSD/m68k a.out-ish binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -23,7 +23,7 @@
 #define TARGET_PAGE_SIZE	0x1000
 
 #define DEFAULT_ARCH	bfd_arch_m68k
-#define DEFAULT_MID 	M_68K4K_NETBSD
+#define DEFAULT_MID	M_68K4K_NETBSD
 
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
    remove whitespace added here, and thus will fail to concatenate
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/m68klinux.c ./bfd/m68klinux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/m68klinux.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/m68klinux.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for linux flavored m68k a.out binaries.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@
 #include "aout/aout64.h"
 #include "aout/stab_gnu.h"
 #include "aout/ar.h"
-#include "libaout.h"           /* BFD a.out internal data structures */
+#include "libaout.h"	       /* BFD a.out internal data structures */
 
 #define TARGET_IS_BIG_ENDIAN_P
 #define DEFAULT_ARCH bfd_arch_m68k
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/m68knetbsd.c ./bfd/m68knetbsd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/m68knetbsd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/m68knetbsd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for NetBSD/m68k a.out-ish binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -25,7 +25,7 @@
 #define TARGET_PAGE_SIZE	0x2000
 
 #define DEFAULT_ARCH	bfd_arch_m68k
-#define DEFAULT_MID 	M_68K_NETBSD
+#define DEFAULT_MID	M_68K_NETBSD
 
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
    remove whitespace added here, and thus will fail to concatenate
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/m88kmach3.c ./bfd/m88kmach3.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/m88kmach3.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/m88kmach3.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Motorola m88k a.out (Mach 3) binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -21,7 +21,7 @@
 #define	TARGET_PAGE_SIZE	(4096*2)
 #define SEGMENT_SIZE	0x20000
 #define TEXT_START_ADDR	0
-#define N_HEADER_IN_TEXT(x)	1 		/* (N_MAGIG(x) == ZMAGIC) */
+#define N_HEADER_IN_TEXT(x)	1		/* (N_MAGIG(x) == ZMAGIC) */
 
 #define N_TXTSIZE(x)	((x)->a_text)
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/m88kopenbsd.c ./bfd/m88kopenbsd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/m88kopenbsd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/m88kopenbsd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for OpenBSD/m88k a.out binaries.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mach-o-aarch64.c ./bfd/mach-o-aarch64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mach-o-aarch64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/mach-o-aarch64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* AArch-64 Mach-O support for BFD.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -50,7 +50,7 @@ static const bfd_target *
 bfd_mach_o_arm64_core_p (bfd *abfd)
 {
   return bfd_mach_o_header_p (abfd, 0,
-                              BFD_MACH_O_MH_CORE, BFD_MACH_O_CPU_TYPE_ARM64);
+			      BFD_MACH_O_MH_CORE, BFD_MACH_O_CPU_TYPE_ARM64);
 }
 
 static bfd_boolean
@@ -147,9 +147,11 @@ static reloc_howto_type arm64_howto_tabl
 };
 
 static bfd_boolean
-bfd_mach_o_arm64_canonicalize_one_reloc (bfd *abfd,
-				       struct mach_o_reloc_info_external *raw,
-					 arelent *res, asymbol **syms)
+bfd_mach_o_arm64_canonicalize_one_reloc (bfd *       abfd,
+					 struct mach_o_reloc_info_external * raw,
+					 arelent *   res,
+					 asymbol **  syms,
+					 arelent *   res_base ATTRIBUTE_UNUSED)
 {
   bfd_mach_o_reloc_info reloc;
 
@@ -211,18 +213,18 @@ bfd_mach_o_arm64_canonicalize_one_reloc 
       break;
     case BFD_MACH_O_ARM64_RELOC_SUBTRACTOR:
       if (reloc.r_pcrel)
-        return FALSE;
+	return FALSE;
       switch (reloc.r_length)
-        {
-        case 2:
-          res->howto = &arm64_howto_table[11];
-          return TRUE;
-        case 3:
-          res->howto = &arm64_howto_table[12];
-          return TRUE;
-        default:
-          return FALSE;
-        }
+	{
+	case 2:
+	  res->howto = &arm64_howto_table[11];
+	  return TRUE;
+	case 3:
+	  res->howto = &arm64_howto_table[12];
+	  return TRUE;
+	default:
+	  return FALSE;
+	}
       break;
     case BFD_MACH_O_ARM64_RELOC_BRANCH26:
       if (reloc.r_length == 2 && reloc.r_pcrel == 1)
@@ -293,12 +295,12 @@ bfd_mach_o_arm64_bfd_reloc_name_lookup (
   return NULL;
 }
 
-#define TARGET_NAME 		aarch64_mach_o_vec
-#define TARGET_STRING     	"mach-o-arm64"
+#define TARGET_NAME		aarch64_mach_o_vec
+#define TARGET_STRING		"mach-o-arm64"
 #define TARGET_ARCHITECTURE	bfd_arch_aarch64
 #define TARGET_PAGESIZE		4096
-#define TARGET_BIG_ENDIAN 	0
-#define TARGET_ARCHIVE 		0
+#define TARGET_BIG_ENDIAN	0
+#define TARGET_ARCHIVE		0
 #define TARGET_PRIORITY		0
 #include "mach-o-target.c"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mach-o-arm.c ./bfd/mach-o-arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mach-o-arm.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/mach-o-arm.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* ARM Mach-O support for BFD.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -30,7 +30,7 @@
 #define bfd_mach_o_mkobject bfd_mach_o_arm_mkobject
 
 #define bfd_mach_o_canonicalize_one_reloc bfd_mach_o_arm_canonicalize_one_reloc
-#define bfd_mach_o_swap_reloc_out NULL
+#define bfd_mach_o_swap_reloc_out  NULL
 #define bfd_mach_o_bfd_reloc_type_lookup bfd_mach_o_arm_bfd_reloc_type_lookup
 #define bfd_mach_o_bfd_reloc_name_lookup bfd_mach_o_arm_bfd_reloc_name_lookup
 
@@ -48,7 +48,7 @@ static const bfd_target *
 bfd_mach_o_arm_core_p (bfd *abfd)
 {
   return bfd_mach_o_header_p (abfd, 0,
-                              BFD_MACH_O_MH_CORE, BFD_MACH_O_CPU_TYPE_ARM);
+			      BFD_MACH_O_MH_CORE, BFD_MACH_O_CPU_TYPE_ARM);
 }
 
 static bfd_boolean
@@ -147,10 +147,12 @@ static reloc_howto_type arm_howto_table[
 };
 
 static bfd_boolean
-bfd_mach_o_arm_canonicalize_one_reloc (bfd *abfd,
-                                      struct mach_o_reloc_info_external *raw,
-                                      arelent *res, asymbol **syms)
- {
+bfd_mach_o_arm_canonicalize_one_reloc (bfd *       abfd,
+				       struct mach_o_reloc_info_external * raw,
+				       arelent *   res,
+				       asymbol **  syms,
+				       arelent *   res_base)
+{
   bfd_mach_o_reloc_info reloc;
 
   if (!bfd_mach_o_pre_canonicalize_one_reloc (abfd, raw, &reloc, res, syms))
@@ -159,45 +161,51 @@ bfd_mach_o_arm_canonicalize_one_reloc (b
   if (reloc.r_scattered)
     {
       switch (reloc.r_type)
-        {
-        case BFD_MACH_O_ARM_RELOC_PAIR:
-          if (reloc.r_length == 2)
-            {
+	{
+	case BFD_MACH_O_ARM_RELOC_PAIR:
+	  /* PR 21813: Check for a corrupt PAIR reloc at the start.  */
+	  if (res == res_base)
+	    return FALSE;
+	  if (reloc.r_length == 2)
+	    {
 	      res->howto = &arm_howto_table[7];
 	      res->address = res[-1].address;
 	      return TRUE;
-            }
-          else if (reloc.r_length == 1)
+	    }
+	  else if (reloc.r_length == 1)
 	    {
 	      res->howto = &arm_howto_table[10];
 	      res->address = res[-1].address;
 	      return TRUE;
 	    }
-          return FALSE;
-        case BFD_MACH_O_ARM_RELOC_SECTDIFF:
-          if (reloc.r_length == 2)
-            {
+	  return FALSE;
+
+	case BFD_MACH_O_ARM_RELOC_SECTDIFF:
+	  if (reloc.r_length == 2)
+	    {
 	      res->howto = &arm_howto_table[5];
 	      return TRUE;
-            }
-          else if (reloc.r_length == 1)
-            {
+	    }
+	  else if (reloc.r_length == 1)
+	    {
 	      res->howto = &arm_howto_table[8];
 	      return TRUE;
-            }
-          return FALSE;
-        case BFD_MACH_O_ARM_RELOC_LOCAL_SECTDIFF:
-          if (reloc.r_length == 2)
-            {
+	    }
+	  return FALSE;
+
+	case BFD_MACH_O_ARM_RELOC_LOCAL_SECTDIFF:
+	  if (reloc.r_length == 2)
+	    {
 	      res->howto = &arm_howto_table[6];
 	      return TRUE;
-            }
-          else if (reloc.r_length == 1)
-            {
+	    }
+	  else if (reloc.r_length == 1)
+	    {
 	      res->howto = &arm_howto_table[9];
 	      return TRUE;
-            }
-          return FALSE;
+	    }
+	  return FALSE;
+
 	case BFD_MACH_O_ARM_RELOC_HALF_SECTDIFF:
 	  switch (reloc.r_length)
 	    {
@@ -209,55 +217,55 @@ bfd_mach_o_arm_canonicalize_one_reloc (b
 	      return TRUE;
 	    }
 	  return FALSE;
-        default:
-          return FALSE;
-        }
+
+	default:
+	  break;
+	}
     }
   else
     {
       switch (reloc.r_type)
-        {
-        case BFD_MACH_O_ARM_RELOC_VANILLA:
-          switch ((reloc.r_length << 1) | reloc.r_pcrel)
-            {
-            case 0: /* len = 0, pcrel = 0  */
-              res->howto = &arm_howto_table[2];
-              return TRUE;
-            case 2: /* len = 1, pcrel = 0  */
-              res->howto = &arm_howto_table[1];
-              return TRUE;
-            case 3: /* len = 1, pcrel = 1  */
-              res->howto = &arm_howto_table[4];
-              return TRUE;
-            case 4: /* len = 2, pcrel = 0  */
-              res->howto = &arm_howto_table[0];
-              return TRUE;
-            case 5: /* len = 2, pcrel = 1  */
-              res->howto = &arm_howto_table[3];
-              return TRUE;
-            default:
-              return FALSE;
-            }
-          break;
-        case BFD_MACH_O_ARM_RELOC_BR24:
+	{
+	case BFD_MACH_O_ARM_RELOC_VANILLA:
+	  switch ((reloc.r_length << 1) | reloc.r_pcrel)
+	    {
+	    case 0: /* len = 0, pcrel = 0  */
+	      res->howto = &arm_howto_table[2];
+	      return TRUE;
+	    case 2: /* len = 1, pcrel = 0  */
+	      res->howto = &arm_howto_table[1];
+	      return TRUE;
+	    case 3: /* len = 1, pcrel = 1  */
+	      res->howto = &arm_howto_table[4];
+	      return TRUE;
+	    case 4: /* len = 2, pcrel = 0  */
+	      res->howto = &arm_howto_table[0];
+	      return TRUE;
+	    case 5: /* len = 2, pcrel = 1  */
+	      res->howto = &arm_howto_table[3];
+	      return TRUE;
+	    default:
+	      return FALSE;
+	    }
+	  break;
+
+	case BFD_MACH_O_ARM_RELOC_BR24:
 	  if (reloc.r_length == 2 && reloc.r_pcrel == 1)
 	    {
-              res->howto = &arm_howto_table[11];
-              return TRUE;
+	      res->howto = &arm_howto_table[11];
+	      return TRUE;
 	    }
-	  else
-	    return FALSE;
 	  break;
-        case BFD_MACH_O_THUMB_RELOC_BR22:
+
+	case BFD_MACH_O_THUMB_RELOC_BR22:
 	  if (reloc.r_length == 2 && reloc.r_pcrel == 1)
 	    {
-              res->howto = &arm_howto_table[16];
-              return TRUE;
+	      res->howto = &arm_howto_table[16];
+	      return TRUE;
 	    }
-	  else
-	    return FALSE;
 	  break;
-        case BFD_MACH_O_ARM_RELOC_HALF:
+
+	case BFD_MACH_O_ARM_RELOC_HALF:
 	  if (reloc.r_pcrel == 0)
 	    switch (reloc.r_length)
 	      {
@@ -268,8 +276,9 @@ bfd_mach_o_arm_canonicalize_one_reloc (b
 		res->howto = &arm_howto_table[14];
 		return TRUE;
 	      }
-	  return FALSE;
-        case BFD_MACH_O_ARM_RELOC_PAIR:
+	  break;
+
+	case BFD_MACH_O_ARM_RELOC_PAIR:
 	  if (res[-1].howto == &arm_howto_table[12]
 	      && reloc.r_length == 0)
 	    {
@@ -279,7 +288,7 @@ bfd_mach_o_arm_canonicalize_one_reloc (b
 	      res[-1].addend += (res->address & 0xffff) << 16;
 	      res->address = res[-1].address;
 	      return TRUE;
-            }
+	    }
 	  else if (res[-1].howto == &arm_howto_table[14]
 		   && reloc.r_length == 1)
 	    {
@@ -289,12 +298,15 @@ bfd_mach_o_arm_canonicalize_one_reloc (b
 	      res[-1].addend += res->address & 0xffff;
 	      res->address = res[-1].address;
 	      return TRUE;
-            }
-          return FALSE;
-        default:
-          return FALSE;
-        }
+	    }
+	  break;
+
+	default:
+	  break;
+	}
     }
+
+  return FALSE;
 }
 
 static reloc_howto_type *
@@ -316,11 +328,11 @@ bfd_mach_o_arm_bfd_reloc_name_lookup (bf
   return NULL;
 }
 
-#define TARGET_NAME 		arm_mach_o_vec
-#define TARGET_STRING     	"mach-o-arm"
+#define TARGET_NAME		arm_mach_o_vec
+#define TARGET_STRING		"mach-o-arm"
 #define TARGET_ARCHITECTURE	bfd_arch_arm
 #define TARGET_PAGESIZE		4096
-#define TARGET_BIG_ENDIAN 	0
-#define TARGET_ARCHIVE 		0
+#define TARGET_BIG_ENDIAN	0
+#define TARGET_ARCHIVE		0
 #define TARGET_PRIORITY		0
 #include "mach-o-target.c"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mach-o.c ./bfd/mach-o.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mach-o.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/mach-o.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Mach-O support for BFD.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -315,9 +315,9 @@ bfd_mach_o_section_data_for_mach_sect (b
   for (seg = segsec_names_xlat; seg->segname; seg++)
     if (strncmp (seg->segname, segname, BFD_MACH_O_SEGNAME_SIZE) == 0)
       for (sec = seg->sections; sec->mach_o_name; sec++)
-        if (strncmp (sec->mach_o_name, sectname,
+	if (strncmp (sec->mach_o_name, sectname,
 		     BFD_MACH_O_SECTNAME_SIZE) == 0)
-          return sec;
+	  return sec;
 
   return NULL;
 }
@@ -432,8 +432,8 @@ bfd_mach_o_convert_section_name_to_bfd (
 
 static const mach_o_section_name_xlat *
 bfd_mach_o_convert_section_name_to_mach_o (bfd *abfd ATTRIBUTE_UNUSED,
-                                           asection *sect,
-                                           bfd_mach_o_section *section)
+					   asection *sect,
+					   bfd_mach_o_section *section)
 {
   const mach_o_section_name_xlat *xlat;
   const char *name = bfd_get_section_name (abfd, sect);
@@ -472,13 +472,13 @@ bfd_mach_o_convert_section_name_to_mach_
 
       if (seglen <= BFD_MACH_O_SEGNAME_SIZE
 	  && seclen <= BFD_MACH_O_SECTNAME_SIZE)
-        {
-          memcpy (section->segname, name, seglen);
-          section->segname[seglen] = 0;
-          memcpy (section->sectname, dot + 1, seclen);
-          section->sectname[seclen] = 0;
-          return NULL;
-        }
+	{
+	  memcpy (section->segname, name, seglen);
+	  section->segname[seglen] = 0;
+	  memcpy (section->sectname, dot + 1, seclen);
+	  section->sectname[seclen] = 0;
+	  return NULL;
+	}
     }
 
   /* The segment and section names are both missing - don't make them
@@ -776,7 +776,7 @@ bfd_mach_o_canonicalize_symtab (bfd *abf
   if (!bfd_mach_o_read_symtab_symbols (abfd))
     {
       _bfd_error_handler
-        (_("bfd_mach_o_canonicalize_symtab: unable to load symbols"));
+	(_("bfd_mach_o_canonicalize_symtab: unable to load symbols"));
       return 0;
     }
 
@@ -794,11 +794,11 @@ bfd_mach_o_canonicalize_symtab (bfd *abf
 
 long
 bfd_mach_o_get_synthetic_symtab (bfd *abfd,
-                                 long symcount ATTRIBUTE_UNUSED,
-                                 asymbol **syms ATTRIBUTE_UNUSED,
-                                 long dynsymcount ATTRIBUTE_UNUSED,
-                                 asymbol **dynsyms ATTRIBUTE_UNUSED,
-                                 asymbol **ret)
+				 long symcount ATTRIBUTE_UNUSED,
+				 asymbol **syms ATTRIBUTE_UNUSED,
+				 long dynsymcount ATTRIBUTE_UNUSED,
+				 asymbol **dynsyms ATTRIBUTE_UNUSED,
+				 asymbol **ret)
 {
   bfd_mach_o_data_struct *mdata = bfd_mach_o_get_data (abfd);
   bfd_mach_o_dysymtab_command *dysymtab = mdata->dysymtab;
@@ -853,63 +853,63 @@ bfd_mach_o_get_synthetic_symtab (bfd *ab
       bfd_vma entry_size;
 
       switch (sec->flags & BFD_MACH_O_SECTION_TYPE_MASK)
-        {
-        case BFD_MACH_O_S_NON_LAZY_SYMBOL_POINTERS:
-        case BFD_MACH_O_S_LAZY_SYMBOL_POINTERS:
-        case BFD_MACH_O_S_SYMBOL_STUBS:
-          /* Only these sections have indirect symbols.  */
-          first = sec->reserved1;
-          last = first + bfd_mach_o_section_get_nbr_indirect (abfd, sec);
-          addr = sec->addr;
-          entry_size = bfd_mach_o_section_get_entry_size (abfd, sec);
+	{
+	case BFD_MACH_O_S_NON_LAZY_SYMBOL_POINTERS:
+	case BFD_MACH_O_S_LAZY_SYMBOL_POINTERS:
+	case BFD_MACH_O_S_SYMBOL_STUBS:
+	  /* Only these sections have indirect symbols.  */
+	  first = sec->reserved1;
+	  last = first + bfd_mach_o_section_get_nbr_indirect (abfd, sec);
+	  addr = sec->addr;
+	  entry_size = bfd_mach_o_section_get_entry_size (abfd, sec);
 
 	  /* PR 17512: file: 08e15eec.  */
 	  if (first >= count || last >= count || first > last)
 	    goto fail;
 
-          for (j = first; j < last; j++)
-            {
-              unsigned int isym = dysymtab->indirect_syms[j];
+	  for (j = first; j < last; j++)
+	    {
+	      unsigned int isym = dysymtab->indirect_syms[j];
 
 	      /* PR 17512: file: 04d64d9b.  */
 	      if (((char *) s) + sizeof (* s) > s_end)
 		goto fail;
 
-              s->flags = BSF_GLOBAL | BSF_SYNTHETIC;
-              s->section = sec->bfdsection;
-              s->value = addr - sec->addr;
-              s->udata.p = NULL;
-
-              if (isym < symtab->nsyms
-                  && symtab->symbols[isym].symbol.name)
-                {
-                  const char *sym = symtab->symbols[isym].symbol.name;
-                  size_t len;
+	      s->flags = BSF_GLOBAL | BSF_SYNTHETIC;
+	      s->section = sec->bfdsection;
+	      s->value = addr - sec->addr;
+	      s->udata.p = NULL;
 
-                  s->name = names;
-                  len = strlen (sym);
+	      if (isym < symtab->nsyms
+		  && symtab->symbols[isym].symbol.name)
+		{
+		  const char *sym = symtab->symbols[isym].symbol.name;
+		  size_t len;
+
+		  s->name = names;
+		  len = strlen (sym);
 		  /* PR 17512: file: 47dfd4d2.  */
 		  if (names + len >= s_end)
 		    goto fail;
-                  memcpy (names, sym, len);
-                  names += len;
+		  memcpy (names, sym, len);
+		  names += len;
 		  /* PR 17512: file: 18f340a4.  */
 		  if (names + sizeof (stub) >= s_end)
 		    goto fail;
-                  memcpy (names, stub, sizeof (stub));
-                  names += sizeof (stub);
-                }
-              else
-                s->name = nul_name;
-
-              addr += entry_size;
-              s++;
-              n++;
-            }
-          break;
-        default:
-          break;
-        }
+		  memcpy (names, stub, sizeof (stub));
+		  names += sizeof (stub);
+		}
+	      else
+		s->name = nul_name;
+
+	      addr += entry_size;
+	      s++;
+	      n++;
+	    }
+	  break;
+	default:
+	  break;
+	}
     }
 
   return n;
@@ -951,10 +951,10 @@ bfd_mach_o_print_symbol (bfd *abfd,
 	switch (asym->n_type & BFD_MACH_O_N_TYPE)
 	  {
 	  case BFD_MACH_O_N_UNDF:
-            if (symbol->value == 0)
-              name = "UND";
-            else
-              name = "COM";
+	    if (symbol->value == 0)
+	      name = "UND";
+	    else
+	      name = "COM";
 	    break;
 	  case BFD_MACH_O_N_ABS:
 	    name = "ABS";
@@ -975,7 +975,7 @@ bfd_mach_o_print_symbol (bfd *abfd,
       if (name == NULL)
 	name = "";
       fprintf (file, " %02x %-6s %02x %04x",
-               asym->n_type, name, asym->n_sect, asym->n_desc);
+	       asym->n_type, name, asym->n_sect, asym->n_desc);
       if ((asym->n_type & BFD_MACH_O_N_STAB) == 0
 	  && (asym->n_type & BFD_MACH_O_N_TYPE) == BFD_MACH_O_N_SECT)
 	fprintf (file, " [%s]", symbol->section->name);
@@ -1019,26 +1019,26 @@ bfd_mach_o_convert_architecture (bfd_mac
     case BFD_MACH_O_CPU_TYPE_ARM:
       *type = bfd_arch_arm;
       switch (msubtype)
-        {
-        case BFD_MACH_O_CPU_SUBTYPE_ARM_V4T:
-          *subtype = bfd_mach_arm_4T;
-          break;
-        case BFD_MACH_O_CPU_SUBTYPE_ARM_V6:
-          *subtype = bfd_mach_arm_4T;	/* Best fit ?  */
-          break;
-        case BFD_MACH_O_CPU_SUBTYPE_ARM_V5TEJ:
-          *subtype = bfd_mach_arm_5TE;
-          break;
-        case BFD_MACH_O_CPU_SUBTYPE_ARM_XSCALE:
-          *subtype = bfd_mach_arm_XScale;
-          break;
-        case BFD_MACH_O_CPU_SUBTYPE_ARM_V7:
-          *subtype = bfd_mach_arm_5TE;	/* Best fit ?  */
-          break;
-        case BFD_MACH_O_CPU_SUBTYPE_ARM_ALL:
-        default:
-          break;
-        }
+	{
+	case BFD_MACH_O_CPU_SUBTYPE_ARM_V4T:
+	  *subtype = bfd_mach_arm_4T;
+	  break;
+	case BFD_MACH_O_CPU_SUBTYPE_ARM_V6:
+	  *subtype = bfd_mach_arm_4T;	/* Best fit ?  */
+	  break;
+	case BFD_MACH_O_CPU_SUBTYPE_ARM_V5TEJ:
+	  *subtype = bfd_mach_arm_5TE;
+	  break;
+	case BFD_MACH_O_CPU_SUBTYPE_ARM_XSCALE:
+	  *subtype = bfd_mach_arm_XScale;
+	  break;
+	case BFD_MACH_O_CPU_SUBTYPE_ARM_V7:
+	  *subtype = bfd_mach_arm_5TE;	/* Best fit ?  */
+	  break;
+	case BFD_MACH_O_CPU_SUBTYPE_ARM_ALL:
+	default:
+	  break;
+	}
       break;
     case BFD_MACH_O_CPU_TYPE_MC88000:
       *type = bfd_arch_m88k;
@@ -1155,13 +1155,13 @@ bfd_mach_o_write_thread (bfd *abfd, bfd_
     {
       BFD_ASSERT ((cmd->flavours[i].size % 4) == 0);
       BFD_ASSERT (cmd->flavours[i].offset ==
-                  (command->offset + offset + BFD_MACH_O_LC_SIZE));
+		  (command->offset + offset + BFD_MACH_O_LC_SIZE));
 
       bfd_h_put_32 (abfd, cmd->flavours[i].flavour, raw.flavour);
       bfd_h_put_32 (abfd, (cmd->flavours[i].size / 4), raw.count);
 
       if (bfd_seek (abfd, command->offset + offset, SEEK_SET) != 0
-          || bfd_bwrite (&raw, sizeof (raw), abfd) != sizeof (raw))
+	  || bfd_bwrite (&raw, sizeof (raw), abfd) != sizeof (raw))
 	return FALSE;
 
       offset += cmd->flavours[i].size + sizeof (raw);
@@ -1291,7 +1291,7 @@ bfd_mach_o_write_dyld_info (bfd *abfd, b
 
 long
 bfd_mach_o_get_reloc_upper_bound (bfd *abfd ATTRIBUTE_UNUSED,
-                                  asection *asect)
+				  asection *asect)
 {
   return (asect->reloc_count + 1) * sizeof (arelent *);
 }
@@ -1374,7 +1374,7 @@ bfd_mach_o_canonicalize_non_scattered_re
 	 binary) contains the address of the section.  To comply with
 	 bfd convention, subtract the section address.
 	 Use the address from the header, so that the user can modify
-             the vma of the section.  */
+	     the vma of the section.  */
       res->addend = -mdata->sections[num - 1]->addr;
     }
 
@@ -1427,15 +1427,15 @@ bfd_mach_o_pre_canonicalize_one_reloc (b
 	 the following section or, if it falls within alignment padding, as
 	 null - which will assert later.  */
       for (j = 0; j < mdata->nsects; j++)
-        {
-          bfd_mach_o_section *sect = mdata->sections[j];
-          if (symnum >= sect->addr && symnum < sect->addr + sect->size)
-            {
-              res->sym_ptr_ptr = sect->bfdsection->symbol_ptr_ptr;
-              res->addend = symnum - sect->addr;
-              break;
-            }
-        }
+	{
+	  bfd_mach_o_section *sect = mdata->sections[j];
+	  if (symnum >= sect->addr && symnum < sect->addr + sect->size)
+	    {
+	      res->sym_ptr_ptr = sect->bfdsection->symbol_ptr_ptr;
+	      res->addend = symnum - sect->addr;
+	      break;
+	    }
+	}
 
       /* Extract the info and address fields from r_address.  */
       reloc->r_type = BFD_MACH_O_GET_SR_TYPE (addr);
@@ -1452,7 +1452,7 @@ bfd_mach_o_pre_canonicalize_one_reloc (b
       res->address = addr;
 
       /* The value and info fields have to be extracted dependent on target
-         endian-ness.  */
+	 endian-ness.  */
       bfd_mach_o_swap_in_non_scattered_reloc (abfd, reloc, raw->r_symbolnum);
 
       if (!bfd_mach_o_canonicalize_non_scattered_reloc (abfd, reloc,
@@ -1469,8 +1469,8 @@ bfd_mach_o_pre_canonicalize_one_reloc (b
 
 static int
 bfd_mach_o_canonicalize_relocs (bfd *abfd, unsigned long filepos,
-                                unsigned long count,
-                                arelent *res, asymbol **syms)
+				unsigned long count,
+				arelent *res, asymbol **syms)
 {
   bfd_mach_o_backend_data *bed = bfd_mach_o_get_backend_data (abfd);
   unsigned long i;
@@ -1496,8 +1496,8 @@ bfd_mach_o_canonicalize_relocs (bfd *abf
   for (i = 0; i < count; i++)
     {
       if (!(*bed->_bfd_mach_o_canonicalize_one_reloc)(abfd, &native_relocs[i],
-						      &res[i], syms))
-        goto err;
+						      &res[i], syms, res))
+	goto err;
     }
   free (native_relocs);
   return i;
@@ -1508,7 +1508,7 @@ bfd_mach_o_canonicalize_relocs (bfd *abf
 
 long
 bfd_mach_o_canonicalize_reloc (bfd *abfd, asection *asect,
-                               arelent **rels, asymbol **syms)
+			       arelent **rels, asymbol **syms)
 {
   bfd_mach_o_backend_data *bed = bfd_mach_o_get_backend_data (abfd);
   unsigned long i;
@@ -1527,14 +1527,14 @@ bfd_mach_o_canonicalize_reloc (bfd *abfd
 	return -1;
       res = bfd_malloc (asect->reloc_count * sizeof (arelent));
       if (res == NULL)
-        return -1;
+	return -1;
 
       if (bfd_mach_o_canonicalize_relocs (abfd, asect->rel_filepos,
-                                          asect->reloc_count, res, syms) < 0)
-        {
-          free (res);
-          return -1;
-        }
+					  asect->reloc_count, res, syms) < 0)
+	{
+	  free (res);
+	  return -1;
+	}
       asect->relocation = res;
     }
 
@@ -1559,7 +1559,7 @@ bfd_mach_o_get_dynamic_reloc_upper_bound
 
 long
 bfd_mach_o_canonicalize_dynamic_reloc (bfd *abfd, arelent **rels,
-                                       struct bfd_symbol **syms)
+				       struct bfd_symbol **syms)
 {
   bfd_mach_o_data_struct *mdata = bfd_mach_o_get_data (abfd);
   bfd_mach_o_dysymtab_command *dysymtab = mdata->dysymtab;
@@ -1583,24 +1583,24 @@ bfd_mach_o_canonicalize_dynamic_reloc (b
 	return -1;
 
       res = bfd_malloc ((dysymtab->nextrel + dysymtab->nlocrel)
-                        * sizeof (arelent));
+			* sizeof (arelent));
       if (res == NULL)
-        return -1;
+	return -1;
 
       if (bfd_mach_o_canonicalize_relocs (abfd, dysymtab->extreloff,
-                                          dysymtab->nextrel, res, syms) < 0)
-        {
-          free (res);
-          return -1;
-        }
+					  dysymtab->nextrel, res, syms) < 0)
+	{
+	  free (res);
+	  return -1;
+	}
 
       if (bfd_mach_o_canonicalize_relocs (abfd, dysymtab->locreloff,
-                                          dysymtab->nlocrel,
-                                          res + dysymtab->nextrel, syms) < 0)
-        {
-          free (res);
-          return -1;
-        }
+					  dysymtab->nlocrel,
+					  res + dysymtab->nextrel, syms) < 0)
+	{
+	  free (res);
+	  return -1;
+	}
 
       mdata->dyn_reloc_cache = res;
     }
@@ -1675,32 +1675,32 @@ bfd_mach_o_write_relocs (bfd *abfd, bfd_
 
       /* Convert relocation to an intermediate representation.  */
       if (!(*bed->_bfd_mach_o_swap_reloc_out) (rel, pinfo))
-        return FALSE;
+	return FALSE;
 
       /* Lower the relocation info.  */
       if (pinfo->r_scattered)
-        {
-          unsigned long v;
+	{
+	  unsigned long v;
 
-          v = BFD_MACH_O_SR_SCATTERED
-            | (pinfo->r_pcrel ? BFD_MACH_O_SR_PCREL : 0)
-            | BFD_MACH_O_SET_SR_LENGTH (pinfo->r_length)
-            | BFD_MACH_O_SET_SR_TYPE (pinfo->r_type)
-            | BFD_MACH_O_SET_SR_ADDRESS (pinfo->r_address);
-          /* Note: scattered relocs have field in reverse order...  */
-          bfd_put_32 (abfd, v, raw.r_address);
-          bfd_put_32 (abfd, pinfo->r_value, raw.r_symbolnum);
-        }
+	  v = BFD_MACH_O_SR_SCATTERED
+	    | (pinfo->r_pcrel ? BFD_MACH_O_SR_PCREL : 0)
+	    | BFD_MACH_O_SET_SR_LENGTH (pinfo->r_length)
+	    | BFD_MACH_O_SET_SR_TYPE (pinfo->r_type)
+	    | BFD_MACH_O_SET_SR_ADDRESS (pinfo->r_address);
+	  /* Note: scattered relocs have field in reverse order...  */
+	  bfd_put_32 (abfd, v, raw.r_address);
+	  bfd_put_32 (abfd, pinfo->r_value, raw.r_symbolnum);
+	}
       else
-        {
-          bfd_put_32 (abfd, pinfo->r_address, raw.r_address);
-          bfd_mach_o_swap_out_non_scattered_reloc (abfd, raw.r_symbolnum,
+	{
+	  bfd_put_32 (abfd, pinfo->r_address, raw.r_address);
+	  bfd_mach_o_swap_out_non_scattered_reloc (abfd, raw.r_symbolnum,
 						   pinfo);
-        }
+	}
 
       if (bfd_bwrite (&raw, BFD_MACH_O_RELENT_SIZE, abfd)
-          != BFD_MACH_O_RELENT_SIZE)
-        return FALSE;
+	  != BFD_MACH_O_RELENT_SIZE)
+	return FALSE;
     }
   return TRUE;
 }
@@ -1853,43 +1853,43 @@ bfd_mach_o_write_symtab_content (bfd *ab
 
       if (s->symbol.name == 0 || s->symbol.name[0] == '\0')
 	/* An index of 0 always means the empty string.  */
-        str_index = 0;
+	str_index = 0;
       else
-        {
-          str_index = _bfd_stringtab_add (strtab, s->symbol.name, TRUE, FALSE);
+	{
+	  str_index = _bfd_stringtab_add (strtab, s->symbol.name, TRUE, FALSE);
 
-          if (str_index == (bfd_size_type) -1)
-            goto err;
-        }
+	  if (str_index == (bfd_size_type) -1)
+	    goto err;
+	}
 
       if (wide)
-        {
-          struct mach_o_nlist_64_external raw;
+	{
+	  struct mach_o_nlist_64_external raw;
+
+	  bfd_h_put_32 (abfd, str_index, raw.n_strx);
+	  bfd_h_put_8 (abfd, s->n_type, raw.n_type);
+	  bfd_h_put_8 (abfd, s->n_sect, raw.n_sect);
+	  bfd_h_put_16 (abfd, s->n_desc, raw.n_desc);
+	  bfd_h_put_64 (abfd, s->symbol.section->vma + s->symbol.value,
+			raw.n_value);
 
-          bfd_h_put_32 (abfd, str_index, raw.n_strx);
-          bfd_h_put_8 (abfd, s->n_type, raw.n_type);
-          bfd_h_put_8 (abfd, s->n_sect, raw.n_sect);
-          bfd_h_put_16 (abfd, s->n_desc, raw.n_desc);
-          bfd_h_put_64 (abfd, s->symbol.section->vma + s->symbol.value,
-                        raw.n_value);
-
-          if (bfd_bwrite (&raw, sizeof (raw), abfd) != sizeof (raw))
-            goto err;
-        }
+	  if (bfd_bwrite (&raw, sizeof (raw), abfd) != sizeof (raw))
+	    goto err;
+	}
       else
-        {
-          struct mach_o_nlist_external raw;
+	{
+	  struct mach_o_nlist_external raw;
+
+	  bfd_h_put_32 (abfd, str_index, raw.n_strx);
+	  bfd_h_put_8 (abfd, s->n_type, raw.n_type);
+	  bfd_h_put_8 (abfd, s->n_sect, raw.n_sect);
+	  bfd_h_put_16 (abfd, s->n_desc, raw.n_desc);
+	  bfd_h_put_32 (abfd, s->symbol.section->vma + s->symbol.value,
+			raw.n_value);
 
-          bfd_h_put_32 (abfd, str_index, raw.n_strx);
-          bfd_h_put_8 (abfd, s->n_type, raw.n_type);
-          bfd_h_put_8 (abfd, s->n_sect, raw.n_sect);
-          bfd_h_put_16 (abfd, s->n_desc, raw.n_desc);
-          bfd_h_put_32 (abfd, s->symbol.section->vma + s->symbol.value,
-                        raw.n_value);
-
-          if (bfd_bwrite (&raw, sizeof (raw), abfd) != sizeof (raw))
-            goto err;
-        }
+	  if (bfd_bwrite (&raw, sizeof (raw), abfd) != sizeof (raw))
+	    goto err;
+	}
     }
   sym->strsize = _bfd_stringtab_size (strtab);
   sym->stroff = mdata->filelen;
@@ -1898,7 +1898,7 @@ bfd_mach_o_write_symtab_content (bfd *ab
   if (bfd_seek (abfd, sym->stroff, SEEK_SET) != 0)
     goto err;
 
-  if (_bfd_stringtab_emit (abfd, strtab) != TRUE)
+  if (!_bfd_stringtab_emit (abfd, strtab))
     goto err;
 
   /* Pad string table.  */
@@ -2034,7 +2034,7 @@ bfd_mach_o_build_dysymtab (bfd *abfd, bf
 	return FALSE;
       cmd->indirect_syms = bfd_zalloc (abfd, cmd->nindirectsyms * 4);
       if (cmd->indirect_syms == NULL)
-        return FALSE;
+	return FALSE;
 
       n = 0;
       for (i = 0; i < mdata->nsects; ++i)
@@ -2058,13 +2058,13 @@ bfd_mach_o_build_dysymtab (bfd *abfd, bf
 		  for (j = 0; j < num; j++, n++)
 		    {
 		      if (isyms[j] == NULL)
-		        cmd->indirect_syms[n] = BFD_MACH_O_INDIRECT_SYM_LOCAL;
+			cmd->indirect_syms[n] = BFD_MACH_O_INDIRECT_SYM_LOCAL;
 		      else if (isyms[j]->symbol.section == bfd_abs_section_ptr
 			       && ! (isyms[j]->n_type & BFD_MACH_O_N_EXT))
-		        cmd->indirect_syms[n] = BFD_MACH_O_INDIRECT_SYM_LOCAL
+			cmd->indirect_syms[n] = BFD_MACH_O_INDIRECT_SYM_LOCAL
 						 | BFD_MACH_O_INDIRECT_SYM_ABS;
 		      else
-		        cmd->indirect_syms[n] = isyms[j]->symbol.udata.i;
+			cmd->indirect_syms[n] = isyms[j]->symbol.udata.i;
 		    }
 		}
 		break;
@@ -2299,9 +2299,9 @@ bfd_mach_o_cf_symbols (const void *a, co
   if (soa == 0)
     {
       if (sa->symbol.udata.i < sb->symbol.udata.i)
-        return -1;
+	return -1;
       if (sa->symbol.udata.i > sb->symbol.udata.i)
-        return  1;
+	return  1;
 
       /* This is probably an error.  */
       return 0;
@@ -2349,38 +2349,38 @@ bfd_mach_o_mangle_symbols (bfd *abfd)
 	 this, since more meaningful diagnostics can be made that way.  */
 
       if (s->symbol.udata.i == SYM_MACHO_FIELDS_UNSET)
-        {
-          /* No symbol information has been set - therefore determine
-             it from the bfd symbol flags/info.  */
-          if (s->symbol.section == bfd_abs_section_ptr)
-            s->n_type = BFD_MACH_O_N_ABS;
-          else if (s->symbol.section == bfd_und_section_ptr)
-            {
-              s->n_type = BFD_MACH_O_N_UNDF;
-              if (s->symbol.flags & BSF_WEAK)
-                s->n_desc |= BFD_MACH_O_N_WEAK_REF;
-              /* mach-o automatically makes undefined symbols extern.  */
+	{
+	  /* No symbol information has been set - therefore determine
+	     it from the bfd symbol flags/info.  */
+	  if (s->symbol.section == bfd_abs_section_ptr)
+	    s->n_type = BFD_MACH_O_N_ABS;
+	  else if (s->symbol.section == bfd_und_section_ptr)
+	    {
+	      s->n_type = BFD_MACH_O_N_UNDF;
+	      if (s->symbol.flags & BSF_WEAK)
+		s->n_desc |= BFD_MACH_O_N_WEAK_REF;
+	      /* mach-o automatically makes undefined symbols extern.  */
 	      s->n_type |= BFD_MACH_O_N_EXT;
 	      s->symbol.flags |= BSF_GLOBAL;
-            }
-          else if (s->symbol.section == bfd_com_section_ptr)
+	    }
+	  else if (s->symbol.section == bfd_com_section_ptr)
 	    {
-              s->n_type = BFD_MACH_O_N_UNDF | BFD_MACH_O_N_EXT;
-              s->symbol.flags |= BSF_GLOBAL;
-            }
-          else
-            s->n_type = BFD_MACH_O_N_SECT;
-
-          if (s->symbol.flags & BSF_GLOBAL)
-            s->n_type |= BFD_MACH_O_N_EXT;
-        }
+	      s->n_type = BFD_MACH_O_N_UNDF | BFD_MACH_O_N_EXT;
+	      s->symbol.flags |= BSF_GLOBAL;
+	    }
+	  else
+	    s->n_type = BFD_MACH_O_N_SECT;
+
+	  if (s->symbol.flags & BSF_GLOBAL)
+	    s->n_type |= BFD_MACH_O_N_EXT;
+	}
 
       /* Put the section index in, where required.  */
       if ((s->symbol.section != bfd_abs_section_ptr
-          && s->symbol.section != bfd_und_section_ptr
-          && s->symbol.section != bfd_com_section_ptr)
-          || ((s->n_type & BFD_MACH_O_N_STAB) != 0
-               && s->symbol.name == NULL))
+	  && s->symbol.section != bfd_und_section_ptr
+	  && s->symbol.section != bfd_com_section_ptr)
+	  || ((s->n_type & BFD_MACH_O_N_STAB) != 0
+	       && s->symbol.name == NULL))
 	s->n_sect = s->symbol.section->output_section->target_index;
 
       /* Number to preserve order for local and debug syms.  */
@@ -2528,8 +2528,8 @@ bfd_mach_o_write_contents (bfd *abfd)
 	break;
       default:
 	_bfd_error_handler
-	  (_("unable to allocate data for load command 0x%lx"),
-	   (unsigned long) cmd->type);
+	  (_("unable to allocate data for load command %#x"),
+	   cmd->type);
 	break;
       }
 
@@ -2589,7 +2589,7 @@ bfd_mach_o_write_contents (bfd *abfd)
       bfd_h_put_32 (abfd, cmd->len, raw.cmdsize);
 
       if (bfd_seek (abfd, cmd->offset, SEEK_SET) != 0
-          || bfd_bwrite (&raw, BFD_MACH_O_LC_SIZE, abfd) != 8)
+	  || bfd_bwrite (&raw, BFD_MACH_O_LC_SIZE, abfd) != 8)
 	return FALSE;
 
       switch (cmd->type)
@@ -2633,8 +2633,8 @@ bfd_mach_o_write_contents (bfd *abfd)
 	  break;
 	default:
 	  _bfd_error_handler
-	    (_("unable to write unknown load command 0x%lx"),
-	     (unsigned long) cmd->type);
+	    (_("unable to write unknown load command %#x"),
+	     cmd->type);
 	  return FALSE;
 	}
     }
@@ -2644,7 +2644,7 @@ bfd_mach_o_write_contents (bfd *abfd)
 
 static void
 bfd_mach_o_append_section_to_segment (bfd_mach_o_segment_command *seg,
-                                      bfd_mach_o_section *s)
+				      bfd_mach_o_section *s)
 {
   if (seg->sect_head == NULL)
     seg->sect_head = s;
@@ -2707,9 +2707,9 @@ bfd_mach_o_build_obj_seg_command (bfd *a
       /* Zerofill sections have zero file size & offset, the only content
 	 written to the file is the symbols.  */
       if ((s->flags & BFD_MACH_O_SECTION_TYPE_MASK) == BFD_MACH_O_S_ZEROFILL
-          || ((s->flags & BFD_MACH_O_SECTION_TYPE_MASK)
+	  || ((s->flags & BFD_MACH_O_SECTION_TYPE_MASK)
 	      == BFD_MACH_O_S_GB_ZEROFILL))
-        continue;
+	continue;
 
       /* The Darwin system tools (in MH_OBJECT files, at least) always account
 	 sections, even those with zero size.  */
@@ -2722,13 +2722,13 @@ bfd_mach_o_build_obj_seg_command (bfd *a
 	  if (1)
 	    {
 	      seg->filesize = FILE_ALIGN (seg->filesize, s->align);
-              mdata->filelen = FILE_ALIGN (mdata->filelen, s->align);
-            }
+	      mdata->filelen = FILE_ALIGN (mdata->filelen, s->align);
+	    }
 	  seg->filesize += s->size;
 
 	  /* The system tools write even zero-sized sections with an offset
 	     field set to the current file position.  */
-          s->offset = mdata->filelen;
+	  s->offset = mdata->filelen;
 	}
 
       sec->filepos = s->offset;
@@ -2771,11 +2771,11 @@ bfd_mach_o_build_obj_seg_command (bfd *a
 
       ms->nreloc = sec->reloc_count;
       if (ms->nreloc == 0)
-        {
+	{
 	  /* Clear nreloc and reloff if there is no relocs.  */
 	  ms->reloff = 0;
 	  continue;
-        }
+	}
       sec->rel_filepos = mdata->filelen;
       ms->reloff = sec->rel_filepos;
       mdata->filelen += sec->reloc_count * BFD_MACH_O_RELENT_SIZE;
@@ -2817,8 +2817,8 @@ bfd_mach_o_build_exec_seg_command (bfd *
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("section address (%lx) below start of segment (%lx)"),
-	       (unsigned long) s->addr, (unsigned long) vma);
+	    (_("section address (%#Lx) below start of segment (%#Lx)"),
+	       s->addr, vma);
 	  return FALSE;
 	}
 
@@ -2847,7 +2847,7 @@ bfd_mach_o_build_exec_seg_command (bfd *
       seg->filesize = FILE_ALIGN (seg->filesize, s->align);
 
       if ((s->flags & BFD_MACH_O_SECTION_TYPE_MASK) != BFD_MACH_O_S_ZEROFILL
-          && ((s->flags & BFD_MACH_O_SECTION_TYPE_MASK)
+	  && ((s->flags & BFD_MACH_O_SECTION_TYPE_MASK)
 	      != BFD_MACH_O_S_GB_ZEROFILL))
 	{
 	  mdata->filelen = FILE_ALIGN (mdata->filelen, s->align);
@@ -2958,8 +2958,8 @@ bfd_mach_o_layout_commands (bfd_mach_o_d
 	  break;
 	default:
 	  _bfd_error_handler
-	    (_("unable to layout unknown load command 0x%lx"),
-	     (unsigned long) cmd->type);
+	    (_("unable to layout unknown load command %#x"),
+	     cmd->type);
 	  ret = FALSE;
 	  break;
 	}
@@ -3028,11 +3028,11 @@ bfd_mach_o_build_commands (bfd *abfd)
   if (mdata->header.filetype == 0)
     {
       if (abfd->flags & EXEC_P)
-        mdata->header.filetype = BFD_MACH_O_MH_EXECUTE;
+	mdata->header.filetype = BFD_MACH_O_MH_EXECUTE;
       else if (abfd->flags & DYNAMIC)
-        mdata->header.filetype = BFD_MACH_O_MH_DYLIB;
+	mdata->header.filetype = BFD_MACH_O_MH_DYLIB;
       else
-        mdata->header.filetype = BFD_MACH_O_MH_OBJECT;
+	mdata->header.filetype = BFD_MACH_O_MH_OBJECT;
     }
 
   /* If hasn't already been done, flatten sections list, and sort
@@ -3395,7 +3395,7 @@ bfd_mach_o_new_section_hook (bfd *abfd, 
 
 static void
 bfd_mach_o_init_section_from_mach_o (bfd *abfd, asection *sec,
-                                     unsigned long prot)
+				     unsigned long prot)
 {
   flagword flags;
   bfd_mach_o_section *section;
@@ -3410,27 +3410,27 @@ bfd_mach_o_init_section_from_mach_o (bfd
     {
       /* Try to guess flags.  */
       if (section->flags & BFD_MACH_O_S_ATTR_DEBUG)
-        flags = SEC_DEBUGGING;
+	flags = SEC_DEBUGGING;
       else
-        {
-          flags = SEC_ALLOC;
-          if ((section->flags & BFD_MACH_O_SECTION_TYPE_MASK)
-              != BFD_MACH_O_S_ZEROFILL)
-            {
-              flags |= SEC_LOAD;
-              if (prot & BFD_MACH_O_PROT_EXECUTE)
-                flags |= SEC_CODE;
-              if (prot & BFD_MACH_O_PROT_WRITE)
-                flags |= SEC_DATA;
-              else if (prot & BFD_MACH_O_PROT_READ)
-                flags |= SEC_READONLY;
-            }
-        }
+	{
+	  flags = SEC_ALLOC;
+	  if ((section->flags & BFD_MACH_O_SECTION_TYPE_MASK)
+	      != BFD_MACH_O_S_ZEROFILL)
+	    {
+	      flags |= SEC_LOAD;
+	      if (prot & BFD_MACH_O_PROT_EXECUTE)
+		flags |= SEC_CODE;
+	      if (prot & BFD_MACH_O_PROT_WRITE)
+		flags |= SEC_DATA;
+	      else if (prot & BFD_MACH_O_PROT_READ)
+		flags |= SEC_READONLY;
+	    }
+	}
     }
   else
     {
       if ((flags & SEC_DEBUGGING) == 0)
-        flags |= SEC_ALLOC;
+	flags |= SEC_ALLOC;
     }
 
   if (section->offset != 0)
@@ -3452,8 +3452,8 @@ bfd_mach_o_init_section_from_mach_o (bfd
 
 static asection *
 bfd_mach_o_make_bfd_section (bfd *abfd,
-                             const unsigned char *segname,
-                             const unsigned char *sectname)
+			     const unsigned char *segname,
+			     const unsigned char *sectname)
 {
   const char *sname;
   flagword flags;
@@ -3494,7 +3494,7 @@ bfd_mach_o_read_section_32 (bfd *abfd, u
   if (section->align > 64)
     {
       _bfd_error_handler
-	(_("bfd_mach_o_read_section_32: overlarge alignment value: 0x%x, "
+	(_("bfd_mach_o_read_section_32: overlarge alignment value: %#lx, "
 	   "using 32 instead"), section->align);
       section->align = 32;
     }
@@ -3537,7 +3537,7 @@ bfd_mach_o_read_section_64 (bfd *abfd, u
   if (section->align > 64)
     {
       _bfd_error_handler
-	(_("bfd_mach_o_read_section_64: overlarge alignment value: 0x%x, "
+	(_("bfd_mach_o_read_section_64: overlarge alignment value: %#lx, "
 	   "using 32 instead"), section->align);
       section->align = 32;
     }
@@ -3564,9 +3564,9 @@ bfd_mach_o_read_section (bfd *abfd, unsi
 
 static bfd_boolean
 bfd_mach_o_read_symtab_symbol (bfd *abfd,
-                               bfd_mach_o_symtab_command *sym,
-                               bfd_mach_o_asymbol *s,
-                               unsigned long i)
+			       bfd_mach_o_symtab_command *sym,
+			       bfd_mach_o_asymbol *s,
+			       unsigned long i)
 {
   bfd_mach_o_data_struct *mdata = bfd_mach_o_get_data (abfd);
   unsigned int wide = mach_o_wide_p (&mdata->header);
@@ -3588,8 +3588,8 @@ bfd_mach_o_read_symtab_symbol (bfd *abfd
     {
       _bfd_error_handler
 	/* xgettext:c-format */
-        (_("bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu"),
-         symwidth, (unsigned long) symoff);
+	(_("bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u"),
+	 symwidth, symoff);
       return FALSE;
     }
 
@@ -3607,9 +3607,9 @@ bfd_mach_o_read_symtab_symbol (bfd *abfd
     {
       _bfd_error_handler
 	/* xgettext:c-format */
-        (_("bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)"),
-         (unsigned long) stroff,
-         (unsigned long) sym->strsize);
+	(_("bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)"),
+	 stroff,
+	 sym->strsize);
       return FALSE;
     }
 
@@ -3641,7 +3641,7 @@ bfd_mach_o_read_symtab_symbol (bfd *abfd
 	    {
 	      s->symbol.section = mdata->sections[section - 1]->bfdsection;
 	      s->symbol.value =
-                s->symbol.value - mdata->sections[section - 1]->addr;
+		s->symbol.value - mdata->sections[section - 1]->addr;
 	    }
 	  break;
 	}
@@ -3656,19 +3656,19 @@ bfd_mach_o_read_symtab_symbol (bfd *abfd
       switch (symtype)
 	{
 	case BFD_MACH_O_N_UNDF:
-          if (type == (BFD_MACH_O_N_UNDF | BFD_MACH_O_N_EXT)
-              && s->symbol.value != 0)
-            {
-              /* A common symbol.  */
-              s->symbol.section = bfd_com_section_ptr;
-              s->symbol.flags = BSF_NO_FLAGS;
-            }
-          else
-            {
-              s->symbol.section = bfd_und_section_ptr;
-              if (s->n_desc & BFD_MACH_O_N_WEAK_REF)
-                s->symbol.flags |= BSF_WEAK;
-            }
+	  if (type == (BFD_MACH_O_N_UNDF | BFD_MACH_O_N_EXT)
+	      && s->symbol.value != 0)
+	    {
+	      /* A common symbol.  */
+	      s->symbol.section = bfd_com_section_ptr;
+	      s->symbol.flags = BSF_NO_FLAGS;
+	    }
+	  else
+	    {
+	      s->symbol.section = bfd_und_section_ptr;
+	      if (s->n_desc & BFD_MACH_O_N_WEAK_REF)
+		s->symbol.flags |= BSF_WEAK;
+	    }
 	  break;
 	case BFD_MACH_O_N_PBUD:
 	  s->symbol.section = bfd_und_section_ptr;
@@ -3681,7 +3681,7 @@ bfd_mach_o_read_symtab_symbol (bfd *abfd
 	    {
 	      s->symbol.section = mdata->sections[section - 1]->bfdsection;
 	      s->symbol.value =
-                s->symbol.value - mdata->sections[section - 1]->addr;
+		s->symbol.value - mdata->sections[section - 1]->addr;
 	    }
 	  else
 	    {
@@ -3749,19 +3749,22 @@ bfd_mach_o_read_symtab_strtab (bfd *abfd
     }
   else
     {
+      /* See PR 21840 for a reproducer.  */
+      if ((sym->strsize + 1) == 0)
+	return FALSE;
       sym->strtab = bfd_alloc (abfd, sym->strsize + 1);
       if (sym->strtab == NULL)
-        return FALSE;
+	return FALSE;
 
       if (bfd_seek (abfd, sym->stroff, SEEK_SET) != 0
-          || bfd_bread (sym->strtab, sym->strsize, abfd) != sym->strsize)
-        {
+	  || bfd_bread (sym->strtab, sym->strsize, abfd) != sym->strsize)
+	{
 	  /* PR 17512: file: 10888-1609-0.004.  */
 	  bfd_release (abfd, sym->strtab);
 	  sym->strtab = NULL;
-          bfd_set_error (bfd_error_file_truncated);
-          return FALSE;
-        }
+	  bfd_set_error (bfd_error_file_truncated);
+	  return FALSE;
+	}
       /* Zero terminate the string table.  */
       sym->strtab[sym->strsize] = 0;
     }
@@ -3911,7 +3914,7 @@ bfd_mach_o_read_dylib (bfd *abfd, bfd_ma
 
 static bfd_boolean
 bfd_mach_o_read_prebound_dylib (bfd *abfd,
-                                bfd_mach_o_load_command *command)
+				bfd_mach_o_load_command *command)
 {
   bfd_mach_o_prebound_dylib_command *cmd = &command->command.prebound_dylib;
   struct mach_o_prebound_dylib_command_external raw;
@@ -4022,7 +4025,7 @@ bfd_mach_o_read_thread (bfd *abfd, bfd_m
 	return FALSE;
 
       if (bfd_seek (abfd, command->offset + offset, SEEK_SET) != 0
-          || bfd_bread (&raw, sizeof (raw), abfd) != sizeof (raw))
+	  || bfd_bread (&raw, sizeof (raw), abfd) != sizeof (raw))
 	return FALSE;
 
       offset += sizeof (raw) + bfd_h_get_32 (abfd, raw.count) * 4;
@@ -4049,7 +4052,7 @@ bfd_mach_o_read_thread (bfd *abfd, bfd_m
 	return FALSE;
 
       if (bfd_seek (abfd, command->offset + offset, SEEK_SET) != 0
-          || bfd_bread (&raw, sizeof (raw), abfd) != sizeof (raw))
+	  || bfd_bread (&raw, sizeof (raw), abfd) != sizeof (raw))
 	return FALSE;
 
       cmd->flavours[nflavours].flavour = bfd_h_get_32 (abfd, raw.flavour);
@@ -4153,48 +4156,48 @@ bfd_mach_o_read_dysymtab (bfd *abfd, bfd
       unsigned int module_len = wide ? 56 : 52;
 
       cmd->dylib_module =
-        bfd_alloc2 (abfd, cmd->nmodtab, sizeof (bfd_mach_o_dylib_module));
+	bfd_alloc2 (abfd, cmd->nmodtab, sizeof (bfd_mach_o_dylib_module));
       if (cmd->dylib_module == NULL)
-        return FALSE;
+	return FALSE;
 
       if (bfd_seek (abfd, cmd->modtaboff, SEEK_SET) != 0)
-        return FALSE;
+	return FALSE;
 
       for (i = 0; i < cmd->nmodtab; i++)
-        {
-          bfd_mach_o_dylib_module *module = &cmd->dylib_module[i];
-          unsigned long v;
-          unsigned char buf[56];
-
-          if (bfd_bread ((void *) buf, module_len, abfd) != module_len)
-            return FALSE;
-
-          module->module_name_idx = bfd_h_get_32 (abfd, buf + 0);
-          module->iextdefsym = bfd_h_get_32 (abfd, buf + 4);
-          module->nextdefsym = bfd_h_get_32 (abfd, buf + 8);
-          module->irefsym = bfd_h_get_32 (abfd, buf + 12);
-          module->nrefsym = bfd_h_get_32 (abfd, buf + 16);
-          module->ilocalsym = bfd_h_get_32 (abfd, buf + 20);
-          module->nlocalsym = bfd_h_get_32 (abfd, buf + 24);
-          module->iextrel = bfd_h_get_32 (abfd, buf + 28);
-          module->nextrel = bfd_h_get_32 (abfd, buf + 32);
-          v = bfd_h_get_32 (abfd, buf +36);
-          module->iinit = v & 0xffff;
-          module->iterm = (v >> 16) & 0xffff;
-          v = bfd_h_get_32 (abfd, buf + 40);
-          module->ninit = v & 0xffff;
-          module->nterm = (v >> 16) & 0xffff;
-          if (wide)
-            {
-              module->objc_module_info_size = bfd_h_get_32 (abfd, buf + 44);
-              module->objc_module_info_addr = bfd_h_get_64 (abfd, buf + 48);
-            }
-          else
-            {
-              module->objc_module_info_addr = bfd_h_get_32 (abfd, buf + 44);
-              module->objc_module_info_size = bfd_h_get_32 (abfd, buf + 48);
-            }
-        }
+	{
+	  bfd_mach_o_dylib_module *module = &cmd->dylib_module[i];
+	  unsigned long v;
+	  unsigned char buf[56];
+
+	  if (bfd_bread ((void *) buf, module_len, abfd) != module_len)
+	    return FALSE;
+
+	  module->module_name_idx = bfd_h_get_32 (abfd, buf + 0);
+	  module->iextdefsym = bfd_h_get_32 (abfd, buf + 4);
+	  module->nextdefsym = bfd_h_get_32 (abfd, buf + 8);
+	  module->irefsym = bfd_h_get_32 (abfd, buf + 12);
+	  module->nrefsym = bfd_h_get_32 (abfd, buf + 16);
+	  module->ilocalsym = bfd_h_get_32 (abfd, buf + 20);
+	  module->nlocalsym = bfd_h_get_32 (abfd, buf + 24);
+	  module->iextrel = bfd_h_get_32 (abfd, buf + 28);
+	  module->nextrel = bfd_h_get_32 (abfd, buf + 32);
+	  v = bfd_h_get_32 (abfd, buf +36);
+	  module->iinit = v & 0xffff;
+	  module->iterm = (v >> 16) & 0xffff;
+	  v = bfd_h_get_32 (abfd, buf + 40);
+	  module->ninit = v & 0xffff;
+	  module->nterm = (v >> 16) & 0xffff;
+	  if (wide)
+	    {
+	      module->objc_module_info_size = bfd_h_get_32 (abfd, buf + 44);
+	      module->objc_module_info_addr = bfd_h_get_64 (abfd, buf + 48);
+	    }
+	  else
+	    {
+	      module->objc_module_info_addr = bfd_h_get_32 (abfd, buf + 44);
+	      module->objc_module_info_size = bfd_h_get_32 (abfd, buf + 48);
+	    }
+	}
     }
 
   if (cmd->ntoc != 0)
@@ -4202,24 +4205,24 @@ bfd_mach_o_read_dysymtab (bfd *abfd, bfd
       unsigned long i;
 
       cmd->dylib_toc = bfd_alloc2
-        (abfd, cmd->ntoc, sizeof (bfd_mach_o_dylib_table_of_content));
+	(abfd, cmd->ntoc, sizeof (bfd_mach_o_dylib_table_of_content));
       if (cmd->dylib_toc == NULL)
-        return FALSE;
+	return FALSE;
 
       if (bfd_seek (abfd, cmd->tocoff, SEEK_SET) != 0)
-        return FALSE;
+	return FALSE;
 
       for (i = 0; i < cmd->ntoc; i++)
-        {
-          struct mach_o_dylib_table_of_contents_external raw;
-          bfd_mach_o_dylib_table_of_content *toc = &cmd->dylib_toc[i];
-
-          if (bfd_bread (&raw, sizeof (raw), abfd) != sizeof (raw))
-            return FALSE;
-
-          toc->symbol_index = bfd_h_get_32 (abfd, raw.symbol_index);
-          toc->module_index = bfd_h_get_32 (abfd, raw.module_index);
-        }
+	{
+	  struct mach_o_dylib_table_of_contents_external raw;
+	  bfd_mach_o_dylib_table_of_content *toc = &cmd->dylib_toc[i];
+
+	  if (bfd_bread (&raw, sizeof (raw), abfd) != sizeof (raw))
+	    return FALSE;
+
+	  toc->symbol_index = bfd_h_get_32 (abfd, raw.symbol_index);
+	  toc->module_index = bfd_h_get_32 (abfd, raw.module_index);
+	}
     }
 
   if (cmd->nindirectsyms != 0)
@@ -4227,23 +4230,23 @@ bfd_mach_o_read_dysymtab (bfd *abfd, bfd
       unsigned int i;
 
       cmd->indirect_syms = bfd_alloc2
-        (abfd, cmd->nindirectsyms, sizeof (unsigned int));
+	(abfd, cmd->nindirectsyms, sizeof (unsigned int));
       if (cmd->indirect_syms == NULL)
-        return FALSE;
+	return FALSE;
 
       if (bfd_seek (abfd, cmd->indirectsymoff, SEEK_SET) != 0)
-        return FALSE;
+	return FALSE;
 
       for (i = 0; i < cmd->nindirectsyms; i++)
-        {
-          unsigned char raw[4];
-          unsigned int *is = &cmd->indirect_syms[i];
+	{
+	  unsigned char raw[4];
+	  unsigned int *is = &cmd->indirect_syms[i];
 
-          if (bfd_bread (raw, sizeof (raw), abfd) != sizeof (raw))
-            return FALSE;
+	  if (bfd_bread (raw, sizeof (raw), abfd) != sizeof (raw))
+	    return FALSE;
 
-          *is = bfd_h_get_32 (abfd, raw);
-        }
+	  *is = bfd_h_get_32 (abfd, raw);
+	}
     }
 
   if (cmd->nextrefsyms != 0)
@@ -4252,35 +4255,35 @@ bfd_mach_o_read_dysymtab (bfd *abfd, bfd
       unsigned int i;
 
       cmd->ext_refs = bfd_alloc2
-        (abfd, cmd->nextrefsyms, sizeof (bfd_mach_o_dylib_reference));
+	(abfd, cmd->nextrefsyms, sizeof (bfd_mach_o_dylib_reference));
       if (cmd->ext_refs == NULL)
-        return FALSE;
+	return FALSE;
 
       if (bfd_seek (abfd, cmd->extrefsymoff, SEEK_SET) != 0)
-        return FALSE;
+	return FALSE;
 
       for (i = 0; i < cmd->nextrefsyms; i++)
-        {
-          unsigned char raw[4];
-          bfd_mach_o_dylib_reference *ref = &cmd->ext_refs[i];
-
-          if (bfd_bread (raw, sizeof (raw), abfd) != sizeof (raw))
-            return FALSE;
-
-          /* Fields isym and flags are written as bit-fields, thus we need
-             a specific processing for endianness.  */
-          v = bfd_h_get_32 (abfd, raw);
-          if (bfd_big_endian (abfd))
-            {
-              ref->isym = (v >> 8) & 0xffffff;
-              ref->flags = v & 0xff;
-            }
-          else
-            {
-              ref->isym = v & 0xffffff;
-              ref->flags = (v >> 24) & 0xff;
-            }
-        }
+	{
+	  unsigned char raw[4];
+	  bfd_mach_o_dylib_reference *ref = &cmd->ext_refs[i];
+
+	  if (bfd_bread (raw, sizeof (raw), abfd) != sizeof (raw))
+	    return FALSE;
+
+	  /* Fields isym and flags are written as bit-fields, thus we need
+	     a specific processing for endianness.  */
+	  v = bfd_h_get_32 (abfd, raw);
+	  if (bfd_big_endian (abfd))
+	    {
+	      ref->isym = (v >> 8) & 0xffffff;
+	      ref->flags = v & 0xff;
+	    }
+	  else
+	    {
+	      ref->isym = v & 0xffffff;
+	      ref->flags = (v >> 24) & 0xff;
+	    }
+	}
     }
 
   if (mdata->dysymtab)
@@ -4549,8 +4552,8 @@ bfd_mach_o_read_source_version (bfd *abf
 
 static bfd_boolean
 bfd_mach_o_read_segment (bfd *abfd,
-                         bfd_mach_o_load_command *command,
-                         unsigned int wide)
+			 bfd_mach_o_load_command *command,
+			 unsigned int wide)
 {
   bfd_mach_o_segment_command *seg = &command->command.segment;
   unsigned long i;
@@ -4562,7 +4565,7 @@ bfd_mach_o_read_segment (bfd *abfd,
       BFD_ASSERT (command->type == BFD_MACH_O_LC_SEGMENT_64);
 
       if (bfd_bread (&raw, sizeof (raw), abfd) != sizeof (raw))
-        return FALSE;
+	return FALSE;
 
       memcpy (seg->segname, raw.segname, 16);
       seg->segname[16] = '\0';
@@ -4583,7 +4586,7 @@ bfd_mach_o_read_segment (bfd *abfd,
       BFD_ASSERT (command->type == BFD_MACH_O_LC_SEGMENT);
 
       if (bfd_bread (&raw, sizeof (raw), abfd) != sizeof (raw))
-        return FALSE;
+	return FALSE;
 
       memcpy (seg->segname, raw.segname, 16);
       seg->segname[16] = '\0';
@@ -4606,7 +4609,7 @@ bfd_mach_o_read_segment (bfd *abfd,
 
       sec = bfd_mach_o_read_section (abfd, seg->initprot, wide);
       if (sec == NULL)
-        return FALSE;
+	return FALSE;
 
       bfd_mach_o_append_section_to_segment
 	(seg, bfd_mach_o_get_mach_o_section (sec));
@@ -4701,7 +4704,7 @@ bfd_mach_o_read_command (bfd *abfd, bfd_
     case BFD_MACH_O_LC_SUB_CLIENT:
     case BFD_MACH_O_LC_RPATH:
       if (!bfd_mach_o_read_str (abfd, command))
-        return FALSE;
+	return FALSE;
       break;
     case BFD_MACH_O_LC_DYSYMTAB:
       if (!bfd_mach_o_read_dysymtab (abfd, command))
@@ -4756,8 +4759,8 @@ bfd_mach_o_read_command (bfd *abfd, bfd_
       break;
     default:
       command->len = 0;
-      _bfd_error_handler (_("%B: unknown load command 0x%lx"),
-			  abfd, (unsigned long) command->type);
+      _bfd_error_handler (_("%B: unknown load command %#x"),
+			  abfd, command->type);
       return FALSE;
     }
 
@@ -4798,11 +4801,11 @@ bfd_mach_o_flatten_sections (bfd *abfd)
 	  || cmd->type == BFD_MACH_O_LC_SEGMENT_64)
 	{
 	  bfd_mach_o_segment_command *seg = &cmd->command.segment;
-          bfd_mach_o_section *sec;
+	  bfd_mach_o_section *sec;
 
 	  BFD_ASSERT (csect + seg->nsects <= mdata->nsects);
 
-          for (sec = seg->sect_head; sec != NULL; sec = sec->next)
+	  for (sec = seg->sect_head; sec != NULL; sec = sec->next)
 	    mdata->sections[csect++] = sec;
 	}
     }
@@ -4820,8 +4823,8 @@ bfd_mach_o_scan_start_address (bfd *abfd
     if (cmd->type == BFD_MACH_O_LC_THREAD
 	|| cmd->type == BFD_MACH_O_LC_UNIXTHREAD)
       {
-        thr = &cmd->command.thread;
-        break;
+	thr = &cmd->command.thread;
+	break;
       }
     else if (cmd->type == BFD_MACH_O_LC_MAIN && mdata->nsects > 1)
       {
@@ -4849,7 +4852,7 @@ bfd_mach_o_scan_start_address (bfd *abfd
 	  unsigned char buf[4];
 
 	  if (bfd_seek (abfd, thr->flavours[i].offset + 40, SEEK_SET) != 0
-              || bfd_bread (buf, 4, abfd) != 4)
+	      || bfd_bread (buf, 4, abfd) != 4)
 	    return FALSE;
 
 	  abfd->start_address = bfd_h_get_32 (abfd, buf);
@@ -4860,33 +4863,33 @@ bfd_mach_o_scan_start_address (bfd *abfd
 	  unsigned char buf[4];
 
 	  if (bfd_seek (abfd, thr->flavours[i].offset + 0, SEEK_SET) != 0
-              || bfd_bread (buf, 4, abfd) != 4)
+	      || bfd_bread (buf, 4, abfd) != 4)
 	    return FALSE;
 
 	  abfd->start_address = bfd_h_get_32 (abfd, buf);
 	}
       else if ((mdata->header.cputype == BFD_MACH_O_CPU_TYPE_POWERPC_64)
-               && (thr->flavours[i].flavour == BFD_MACH_O_PPC_THREAD_STATE64))
-        {
-          unsigned char buf[8];
-
-          if (bfd_seek (abfd, thr->flavours[i].offset + 0, SEEK_SET) != 0
-              || bfd_bread (buf, 8, abfd) != 8)
-            return FALSE;
+	       && (thr->flavours[i].flavour == BFD_MACH_O_PPC_THREAD_STATE64))
+	{
+	  unsigned char buf[8];
+
+	  if (bfd_seek (abfd, thr->flavours[i].offset + 0, SEEK_SET) != 0
+	      || bfd_bread (buf, 8, abfd) != 8)
+	    return FALSE;
 
-          abfd->start_address = bfd_h_get_64 (abfd, buf);
-        }
+	  abfd->start_address = bfd_h_get_64 (abfd, buf);
+	}
       else if ((mdata->header.cputype == BFD_MACH_O_CPU_TYPE_X86_64)
-               && (thr->flavours[i].flavour == BFD_MACH_O_x86_THREAD_STATE64))
-        {
-          unsigned char buf[8];
-
-          if (bfd_seek (abfd, thr->flavours[i].offset + (16 * 8), SEEK_SET) != 0
-              || bfd_bread (buf, 8, abfd) != 8)
-            return FALSE;
+	       && (thr->flavours[i].flavour == BFD_MACH_O_x86_THREAD_STATE64))
+	{
+	  unsigned char buf[8];
+
+	  if (bfd_seek (abfd, thr->flavours[i].offset + (16 * 8), SEEK_SET) != 0
+	      || bfd_bread (buf, 8, abfd) != 8)
+	    return FALSE;
 
-          abfd->start_address = bfd_h_get_64 (abfd, buf);
-        }
+	  abfd->start_address = bfd_h_get_64 (abfd, buf);
+	}
     }
 
   return TRUE;
@@ -4894,8 +4897,8 @@ bfd_mach_o_scan_start_address (bfd *abfd
 
 bfd_boolean
 bfd_mach_o_set_arch_mach (bfd *abfd,
-                          enum bfd_architecture arch,
-                          unsigned long machine)
+			  enum bfd_architecture arch,
+			  unsigned long machine)
 {
   bfd_mach_o_backend_data *bed = bfd_mach_o_get_backend_data (abfd);
 
@@ -4947,8 +4950,8 @@ bfd_mach_o_scan (bfd *abfd,
     {
       _bfd_error_handler
 	/* xgettext:c-format */
-        (_("bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"),
-         header->cputype, header->cpusubtype);
+	(_("bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"),
+	 header->cputype, header->cpusubtype);
       return FALSE;
     }
 
@@ -5040,8 +5043,8 @@ bfd_mach_o_gen_mkobject (bfd *abfd)
 const bfd_target *
 bfd_mach_o_header_p (bfd *abfd,
 		     file_ptr hdr_off,
-                     bfd_mach_o_filetype filetype,
-                     bfd_mach_o_cpu_type cputype)
+		     bfd_mach_o_filetype filetype,
+		     bfd_mach_o_cpu_type cputype)
 {
   bfd_mach_o_header header;
   bfd_mach_o_data_struct *mdata;
@@ -5052,8 +5055,8 @@ bfd_mach_o_header_p (bfd *abfd,
   if (! (header.byteorder == BFD_ENDIAN_BIG
 	 || header.byteorder == BFD_ENDIAN_LITTLE))
     {
-      _bfd_error_handler (_("unknown header byte-order value 0x%lx"),
-			  (unsigned long) header.byteorder);
+      _bfd_error_handler (_("unknown header byte-order value %#x"),
+			  header.byteorder);
       goto wrong;
     }
 
@@ -5071,7 +5074,7 @@ bfd_mach_o_header_p (bfd *abfd,
   if (cputype)
     {
       if (header.cputype != cputype)
-        goto wrong;
+	goto wrong;
     }
   else
     {
@@ -5086,18 +5089,18 @@ bfd_mach_o_header_p (bfd *abfd,
   if (filetype)
     {
       if (header.filetype != filetype)
-        goto wrong;
+	goto wrong;
     }
   else
     {
       switch (header.filetype)
-        {
-        case BFD_MACH_O_MH_CORE:
-          /* Handled by core_p */
-          goto wrong;
-        default:
-          break;
-        }
+	{
+	case BFD_MACH_O_MH_CORE:
+	  /* Handled by core_p */
+	  goto wrong;
+	default:
+	  break;
+	}
     }
 
   mdata = (bfd_mach_o_data_struct *) bfd_zalloc (abfd, sizeof (*mdata));
@@ -5232,9 +5235,9 @@ bfd_mach_o_fat_archive_p (bfd *abfd)
 
 static void
 bfd_mach_o_fat_member_init (bfd *abfd,
-                            enum bfd_architecture arch_type,
-                            unsigned long arch_subtype,
-                            mach_o_fat_archentry *entry)
+			    enum bfd_architecture arch_type,
+			    unsigned long arch_subtype,
+			    mach_o_fat_archentry *entry)
 {
   struct areltdata *areltdata;
   /* Create the member filename. Use ARCH_NAME.  */
@@ -5251,7 +5254,7 @@ bfd_mach_o_fat_member_init (bfd *abfd,
       const size_t namelen = 2 + 8 + 1 + 2 + 8 + 1;
       char *name = xmalloc (namelen);
       snprintf (name, namelen, "0x%lx-0x%lx",
-                entry->cputype, entry->cpusubtype);
+		entry->cputype, entry->cpusubtype);
       abfd->filename = name;
     }
 
@@ -5566,10 +5569,10 @@ bfd_mach_o_core_fetch_environment (bfd *
 		return -1;
 
 	      if (bfd_seek (abfd, end - size, SEEK_SET) != 0)
-                {
-                  free (buf);
-                  return -1;
-                }
+		{
+		  free (buf);
+		  return -1;
+		}
 
 	      nread = bfd_bread (buf, size, abfd);
 
@@ -5671,7 +5674,7 @@ bfd_mach_o_dsym_for_uuid_p (bfd *abfd, c
     return FALSE;
 
   if (memcmp (uuid_cmd->uuid, dsym_uuid_cmd->uuid,
-              sizeof (uuid_cmd->uuid)) != 0)
+	      sizeof (uuid_cmd->uuid)) != 0)
     return FALSE;
 
   return TRUE;
@@ -5683,8 +5686,8 @@ bfd_mach_o_dsym_for_uuid_p (bfd *abfd, c
 
 static bfd *
 bfd_mach_o_find_dsym (const char *dsym_filename,
-                      const bfd_mach_o_uuid_command *uuid_cmd,
-                      const bfd_arch_info_type *arch)
+		      const bfd_mach_o_uuid_command *uuid_cmd,
+		      const bfd_arch_info_type *arch)
 {
   bfd *base_dsym_bfd, *dsym_bfd;
 
@@ -5739,13 +5742,13 @@ bfd_mach_o_follow_dsym (bfd *abfd)
      http://opensource.apple.com/source/gdb/gdb-1708/src/gdb/macosx/macosx-tdep.c
   */
   dsym_filename = (char *)bfd_malloc (strlen (base_bfd->filename)
-                                       + strlen (dsym_subdir) + 1
-                                       + strlen (base_basename) + 1);
+				       + strlen (dsym_subdir) + 1
+				       + strlen (base_basename) + 1);
   sprintf (dsym_filename, "%s%s/%s",
-           base_bfd->filename, dsym_subdir, base_basename);
+	   base_bfd->filename, dsym_subdir, base_basename);
 
   dsym_bfd = bfd_mach_o_find_dsym (dsym_filename, uuid_cmd,
-                                   bfd_get_arch_info (abfd));
+				   bfd_get_arch_info (abfd));
   if (dsym_bfd == NULL)
     free (dsym_filename);
 
@@ -5774,20 +5777,20 @@ bfd_mach_o_find_nearest_line (bfd *abfd,
     case BFD_MACH_O_MH_BUNDLE:
     case BFD_MACH_O_MH_KEXT_BUNDLE:
       if (mdata->dwarf2_find_line_info == NULL)
-        {
-          mdata->dsym_bfd = bfd_mach_o_follow_dsym (abfd);
-          /* When we couldn't find dSYM for this binary, we look for
-             the debug information in the binary itself. In this way,
-             we won't try finding separated dSYM again because
-             mdata->dwarf2_find_line_info will be filled. */
-          if (! mdata->dsym_bfd)
-            break;
-          if (! _bfd_dwarf2_slurp_debug_info (abfd, mdata->dsym_bfd,
-                                              dwarf_debug_sections, symbols,
-                                              &mdata->dwarf2_find_line_info,
+	{
+	  mdata->dsym_bfd = bfd_mach_o_follow_dsym (abfd);
+	  /* When we couldn't find dSYM for this binary, we look for
+	     the debug information in the binary itself. In this way,
+	     we won't try finding separated dSYM again because
+	     mdata->dwarf2_find_line_info will be filled. */
+	  if (! mdata->dsym_bfd)
+	    break;
+	  if (! _bfd_dwarf2_slurp_debug_info (abfd, mdata->dsym_bfd,
+					      dwarf_debug_sections, symbols,
+					      &mdata->dwarf2_find_line_info,
 					      FALSE))
-            return FALSE;
-        }
+	    return FALSE;
+	}
       break;
     default:
       return FALSE;
@@ -5808,8 +5811,8 @@ bfd_mach_o_close_and_cleanup (bfd *abfd)
       _bfd_dwarf2_cleanup_debug_info (abfd, &mdata->dwarf2_find_line_info);
       bfd_mach_o_free_cached_info (abfd);
       if (mdata->dsym_bfd != NULL)
-        {
-          bfd *fat_bfd = mdata->dsym_bfd->my_archive;
+	{
+	  bfd *fat_bfd = mdata->dsym_bfd->my_archive;
 #if 0
 	  /* FIXME: PR 19435: This calculation to find the memory allocated by
 	     bfd_mach_o_follow_dsym for the filename does not always end up
@@ -5819,18 +5822,18 @@ bfd_mach_o_close_and_cleanup (bfd *abfd)
 	     commented out.  This does mean that there will be a memory leak,
 	     but it is small, and happens when we are closing down, so it
 	     should not matter too much.  */
-          char *dsym_filename = (char *)(fat_bfd
-                                         ? fat_bfd->filename
-                                         : mdata->dsym_bfd->filename);
+	  char *dsym_filename = (char *)(fat_bfd
+					 ? fat_bfd->filename
+					 : mdata->dsym_bfd->filename);
 #endif
-          bfd_close (mdata->dsym_bfd);
-          mdata->dsym_bfd = NULL;
-          if (fat_bfd)
-            bfd_close (fat_bfd);
+	  bfd_close (mdata->dsym_bfd);
+	  mdata->dsym_bfd = NULL;
+	  if (fat_bfd)
+	    bfd_close (fat_bfd);
 #if 0
-          free (dsym_filename);
+	  free (dsym_filename);
 #endif
-        }
+	}
     }
 
   return _bfd_generic_close_and_cleanup (abfd);
@@ -5860,12 +5863,12 @@ bfd_boolean bfd_mach_o_free_cached_info 
 #define bfd_mach_o_tgt_seg_table NULL
 #define bfd_mach_o_section_type_valid_for_tgt NULL
 
-#define TARGET_NAME 		mach_o_be_vec
-#define TARGET_STRING     	"mach-o-be"
+#define TARGET_NAME		mach_o_be_vec
+#define TARGET_STRING		"mach-o-be"
 #define TARGET_ARCHITECTURE	bfd_arch_unknown
 #define TARGET_PAGESIZE		1
-#define TARGET_BIG_ENDIAN 	1
-#define TARGET_ARCHIVE 		0
+#define TARGET_BIG_ENDIAN	1
+#define TARGET_ARCHIVE		0
 #define TARGET_PRIORITY		1
 #include "mach-o-target.c"
 
@@ -5877,12 +5880,12 @@ bfd_boolean bfd_mach_o_free_cached_info 
 #undef TARGET_ARCHIVE
 #undef TARGET_PRIORITY
 
-#define TARGET_NAME 		mach_o_le_vec
-#define TARGET_STRING 		"mach-o-le"
+#define TARGET_NAME		mach_o_le_vec
+#define TARGET_STRING		"mach-o-le"
 #define TARGET_ARCHITECTURE	bfd_arch_unknown
 #define TARGET_PAGESIZE		1
-#define TARGET_BIG_ENDIAN 	0
-#define TARGET_ARCHIVE 		0
+#define TARGET_BIG_ENDIAN	0
+#define TARGET_ARCHIVE		0
 #define TARGET_PRIORITY		1
 
 #include "mach-o-target.c"
@@ -5896,21 +5899,21 @@ bfd_boolean bfd_mach_o_free_cached_info 
 #undef TARGET_PRIORITY
 
 /* Not yet handled: creating an archive.  */
-#define bfd_mach_o_mkarchive                      _bfd_noarchive_mkarchive
+#define bfd_mach_o_mkarchive			  _bfd_noarchive_mkarchive
 
-#define bfd_mach_o_close_and_cleanup 		  bfd_true
+#define bfd_mach_o_close_and_cleanup		  bfd_true
 
 /* Not used.  */
-#define bfd_mach_o_generic_stat_arch_elt          bfd_mach_o_fat_stat_arch_elt
+#define bfd_mach_o_generic_stat_arch_elt	  bfd_mach_o_fat_stat_arch_elt
 #define bfd_mach_o_openr_next_archived_file	  bfd_mach_o_fat_openr_next_archived_file
 #define bfd_mach_o_archive_p	bfd_mach_o_fat_archive_p
 
-#define TARGET_NAME 		mach_o_fat_vec
-#define TARGET_STRING 		"mach-o-fat"
+#define TARGET_NAME		mach_o_fat_vec
+#define TARGET_STRING		"mach-o-fat"
 #define TARGET_ARCHITECTURE	bfd_arch_unknown
 #define TARGET_PAGESIZE		1
-#define TARGET_BIG_ENDIAN 	1
-#define TARGET_ARCHIVE 		1
+#define TARGET_BIG_ENDIAN	1
+#define TARGET_ARCHIVE		1
 #define TARGET_PRIORITY		0
 
 #include "mach-o-target.c"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mach-o.h ./bfd/mach-o.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mach-o.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/mach-o.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Mach-O support for BFD.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -172,7 +172,7 @@ bfd_mach_o_symtab_command;
    tables is determined as follows:
        table of contents - the defined external symbols are sorted by name
        module table - the file contains only one module so everything in the
-                      file is part of the module.
+		      file is part of the module.
        reference symbol table - is the defined and undefined external symbols
 
    For dynamically linked shared library files this load command also contains
@@ -293,7 +293,7 @@ typedef struct bfd_mach_o_dysymtab_comma
      symbols are sorted by name and is use as the table of contents.  */
 
   unsigned long tocoff;       /* File offset to table of contents.  */
-  unsigned long ntoc;         /* Number of entries in table of contents.  */
+  unsigned long ntoc;	      /* Number of entries in table of contents.  */
 
   /* To support dynamic binding of "modules" (whole object files) the symbol
      table must reflect the modules that the file was created from.  This is
@@ -423,7 +423,7 @@ bfd_mach_o_thread_command;
 
 typedef struct bfd_mach_o_dylinker_command
 {
-  unsigned int name_offset;         /* Offset to library's path name.  */
+  unsigned int name_offset;	    /* Offset to library's path name.  */
   char *name_str;
 }
 bfd_mach_o_dylinker_command;
@@ -433,7 +433,7 @@ bfd_mach_o_dylinker_command;
 
 typedef struct bfd_mach_o_dylib_command
 {
-  unsigned int name_offset;            /* Offset to library's path name.  */
+  unsigned int name_offset;	       /* Offset to library's path name.  */
   unsigned long timestamp;	       /* Library's build time stamp.  */
   unsigned long current_version;       /* Library's current version number.  */
   unsigned long compatibility_version; /* Library's compatibility vers number.  */
@@ -445,8 +445,8 @@ bfd_mach_o_dylib_command;
 
 typedef struct bfd_mach_o_prebound_dylib_command
 {
-  unsigned int name_offset;           /* Library's path name.  */
-  unsigned int nmodules;              /* Number of modules in library.  */
+  unsigned int name_offset;	      /* Library's path name.  */
+  unsigned int nmodules;	      /* Number of modules in library.  */
   unsigned int linked_modules_offset; /* Bit vector of linked modules.  */
 
   char *name_str;
@@ -649,20 +649,20 @@ const bfd_target *bfd_mach_o_core_p (bfd
 const bfd_target *bfd_mach_o_fat_archive_p (bfd *);
 bfd *bfd_mach_o_fat_openr_next_archived_file (bfd *, bfd *);
 bfd_boolean bfd_mach_o_set_arch_mach (bfd *, enum bfd_architecture,
-                                      unsigned long);
+				      unsigned long);
 int bfd_mach_o_lookup_command (bfd *, bfd_mach_o_load_command_type, bfd_mach_o_load_command **);
 bfd_boolean bfd_mach_o_new_section_hook (bfd *, asection *);
 bfd_boolean bfd_mach_o_write_contents (bfd *);
 bfd_boolean bfd_mach_o_bfd_copy_private_symbol_data (bfd *, asymbol *,
-                                                     bfd *, asymbol *);
+						     bfd *, asymbol *);
 bfd_boolean bfd_mach_o_bfd_copy_private_section_data (bfd *, asection *,
-                                                      bfd *, asection *);
+						      bfd *, asection *);
 bfd_boolean bfd_mach_o_bfd_copy_private_header_data (bfd *, bfd *);
 bfd_boolean bfd_mach_o_bfd_set_private_flags (bfd *, flagword);
 long bfd_mach_o_get_symtab_upper_bound (bfd *);
 long bfd_mach_o_canonicalize_symtab (bfd *, asymbol **);
 long bfd_mach_o_get_synthetic_symtab (bfd *, long, asymbol **, long,
-                                      asymbol **, asymbol **ret);
+				      asymbol **, asymbol **ret);
 long bfd_mach_o_get_reloc_upper_bound (bfd *, asection *);
 long bfd_mach_o_canonicalize_reloc (bfd *, asection *, arelent **, asymbol **);
 long bfd_mach_o_get_dynamic_reloc_upper_bound (bfd *);
@@ -678,10 +678,10 @@ int bfd_mach_o_core_file_failing_signal 
 bfd_boolean bfd_mach_o_core_file_matches_executable_p (bfd *, bfd *);
 bfd *bfd_mach_o_fat_extract (bfd *, bfd_format , const bfd_arch_info_type *);
 const bfd_target *bfd_mach_o_header_p (bfd *, file_ptr, bfd_mach_o_filetype,
-                                       bfd_mach_o_cpu_type);
+				       bfd_mach_o_cpu_type);
 bfd_boolean bfd_mach_o_build_commands (bfd *);
 bfd_boolean bfd_mach_o_set_section_contents (bfd *, asection *, const void *,
-                                             file_ptr, bfd_size_type);
+					     file_ptr, bfd_size_type);
 unsigned int bfd_mach_o_version (bfd *);
 
 unsigned int bfd_mach_o_get_section_type_from_name (bfd *, const char *);
@@ -746,10 +746,10 @@ typedef struct bfd_mach_o_backend_data
   enum bfd_architecture arch;
   bfd_vma page_size;
   bfd_boolean (*_bfd_mach_o_canonicalize_one_reloc)
-    (bfd *, struct mach_o_reloc_info_external *, arelent *, asymbol **);
+  (bfd *, struct mach_o_reloc_info_external *, arelent *, asymbol **, arelent *);
   bfd_boolean (*_bfd_mach_o_swap_reloc_out)(arelent *, bfd_mach_o_reloc_info *);
   bfd_boolean (*_bfd_mach_o_print_thread)(bfd *, bfd_mach_o_thread_flavour *,
-                                          void *, char *);
+					  void *, char *);
   const mach_o_segment_name_xlat *segsec_names_xlat;
   bfd_boolean (*bfd_mach_o_section_type_valid_for_target) (unsigned long);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mach-o-i386.c ./bfd/mach-o-i386.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mach-o-i386.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/mach-o-i386.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Intel i386 Mach-O support for BFD.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -39,7 +39,7 @@ static const bfd_target *
 bfd_mach_o_i386_core_p (bfd *abfd)
 {
   return bfd_mach_o_header_p (abfd, 0,
-                              BFD_MACH_O_MH_CORE, BFD_MACH_O_CPU_TYPE_I386);
+			      BFD_MACH_O_MH_CORE, BFD_MACH_O_CPU_TYPE_I386);
 }
 
 static bfd_boolean
@@ -112,9 +112,11 @@ static reloc_howto_type i386_howto_table
 };
 
 static bfd_boolean
-bfd_mach_o_i386_canonicalize_one_reloc (bfd *abfd,
-				        struct mach_o_reloc_info_external *raw,
-					arelent *res, asymbol **syms)
+bfd_mach_o_i386_canonicalize_one_reloc (bfd *       abfd,
+					struct mach_o_reloc_info_external * raw,
+					arelent *   res,
+					asymbol **  syms,
+					arelent *   res_base)
 {
   bfd_mach_o_reloc_info reloc;
 
@@ -124,79 +126,82 @@ bfd_mach_o_i386_canonicalize_one_reloc (
   if (reloc.r_scattered)
     {
       switch (reloc.r_type)
-        {
-        case BFD_MACH_O_GENERIC_RELOC_PAIR:
-          if (reloc.r_length == 2)
-            {
+	{
+	case BFD_MACH_O_GENERIC_RELOC_PAIR:
+	  /* PR 21813: Check for a corrupt PAIR reloc at the start.  */
+	  if (res == res_base)
+	    return FALSE;
+	  if (reloc.r_length == 2)
+	    {
 	      res->howto = &i386_howto_table[7];
 	      res->address = res[-1].address;
 	      return TRUE;
-            }
-          else if (reloc.r_length == 1)
+	    }
+	  else if (reloc.r_length == 1)
 	    {
 	      res->howto = &i386_howto_table[10];
 	      res->address = res[-1].address;
 	      return TRUE;
 	    }
-          return FALSE;
-        case BFD_MACH_O_GENERIC_RELOC_SECTDIFF:
-          if (reloc.r_length == 2)
-            {
+	  return FALSE;
+	case BFD_MACH_O_GENERIC_RELOC_SECTDIFF:
+	  if (reloc.r_length == 2)
+	    {
 	      res->howto = &i386_howto_table[5];
 	      return TRUE;
-            }
-          else if (reloc.r_length == 1)
-            {
+	    }
+	  else if (reloc.r_length == 1)
+	    {
 	      res->howto = &i386_howto_table[8];
 	      return TRUE;
-            }
-          return FALSE;
-        case BFD_MACH_O_GENERIC_RELOC_LOCAL_SECTDIFF:
-          if (reloc.r_length == 2)
-            {
+	    }
+	  return FALSE;
+	case BFD_MACH_O_GENERIC_RELOC_LOCAL_SECTDIFF:
+	  if (reloc.r_length == 2)
+	    {
 	      res->howto = &i386_howto_table[6];
 	      return TRUE;
-            }
-          else if (reloc.r_length == 1)
-            {
+	    }
+	  else if (reloc.r_length == 1)
+	    {
 	      res->howto = &i386_howto_table[9];
 	      return TRUE;
-            }
-          return FALSE;
-        default:
-          return FALSE;
-        }
+	    }
+	  return FALSE;
+	default:
+	  break;
+	}
     }
   else
     {
       switch (reloc.r_type)
-        {
-        case BFD_MACH_O_GENERIC_RELOC_VANILLA:
-          switch ((reloc.r_length << 1) | reloc.r_pcrel)
-            {
-            case 0: /* len = 0, pcrel = 0  */
-              res->howto = &i386_howto_table[2];
-              return TRUE;
-            case 2: /* len = 1, pcrel = 0  */
-              res->howto = &i386_howto_table[1];
-              return TRUE;
-            case 3: /* len = 1, pcrel = 1  */
-              res->howto = &i386_howto_table[4];
-              return TRUE;
-            case 4: /* len = 2, pcrel = 0  */
-              res->howto = &i386_howto_table[0];
-              return TRUE;
-            case 5: /* len = 2, pcrel = 1  */
-              res->howto = &i386_howto_table[3];
-              return TRUE;
-            default:
-              return FALSE;
-            }
-          break;
-        default:
-          return FALSE;
-        }
+	{
+	case BFD_MACH_O_GENERIC_RELOC_VANILLA:
+	  switch ((reloc.r_length << 1) | reloc.r_pcrel)
+	    {
+	    case 0: /* len = 0, pcrel = 0  */
+	      res->howto = &i386_howto_table[2];
+	      return TRUE;
+	    case 2: /* len = 1, pcrel = 0  */
+	      res->howto = &i386_howto_table[1];
+	      return TRUE;
+	    case 3: /* len = 1, pcrel = 1  */
+	      res->howto = &i386_howto_table[4];
+	      return TRUE;
+	    case 4: /* len = 2, pcrel = 0  */
+	      res->howto = &i386_howto_table[0];
+	      return TRUE;
+	    case 5: /* len = 2, pcrel = 1  */
+	      res->howto = &i386_howto_table[3];
+	      return TRUE;
+	    default:
+	      return FALSE;
+	    }
+	default:
+	  break;
+	}
     }
+  return FALSE;
 }
 
 static bfd_boolean
@@ -215,16 +220,16 @@ bfd_mach_o_i386_swap_reloc_out (arelent 
       rinfo->r_pcrel = rel->howto->pc_relative;
       rinfo->r_length = rel->howto->size; /* Correct in practice.  */
       if ((*rel->sym_ptr_ptr)->flags & BSF_SECTION_SYM)
-        {
-          rinfo->r_extern = 0;
-          rinfo->r_value =
+	{
+	  rinfo->r_extern = 0;
+	  rinfo->r_value =
 	    (*rel->sym_ptr_ptr)->section->output_section->target_index;
-        }
+	}
       else
-        {
-          rinfo->r_extern = 1;
-          rinfo->r_value = (*rel->sym_ptr_ptr)->udata.i;
-        }
+	{
+	  rinfo->r_extern = 1;
+	  rinfo->r_value = (*rel->sym_ptr_ptr)->udata.i;
+	}
       break;
     case BFD_RELOC_MACH_O_SECTDIFF:
       rinfo->r_scattered = 1;
@@ -259,7 +264,7 @@ bfd_mach_o_i386_swap_reloc_out (arelent 
 
 static reloc_howto_type *
 bfd_mach_o_i386_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                                       bfd_reloc_code_real_type code)
+				       bfd_reloc_code_real_type code)
 {
   unsigned int i;
 
@@ -271,14 +276,14 @@ bfd_mach_o_i386_bfd_reloc_type_lookup (b
 
 static reloc_howto_type *
 bfd_mach_o_i386_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                                       const char *name ATTRIBUTE_UNUSED)
+				       const char *name ATTRIBUTE_UNUSED)
 {
   return NULL;
 }
 
 static bfd_boolean
 bfd_mach_o_i386_print_thread (bfd *abfd, bfd_mach_o_thread_flavour *thread,
-                              void *vfile, char *buf)
+			      void *vfile, char *buf)
 {
   FILE *file = (FILE *)vfile;
 
@@ -286,51 +291,51 @@ bfd_mach_o_i386_print_thread (bfd *abfd,
     {
     case BFD_MACH_O_x86_THREAD_STATE:
       if (thread->size < (8 + 16 * 4))
-        return FALSE;
+	return FALSE;
       fprintf (file, "   x86_THREAD_STATE:\n");
       fprintf (file, "    flavor: 0x%08lx  count: 0x%08lx\n",
-               (unsigned long)bfd_get_32 (abfd, buf + 0),
-               (unsigned long)bfd_get_32 (abfd, buf + 4));
+	       (unsigned long)bfd_get_32 (abfd, buf + 0),
+	       (unsigned long)bfd_get_32 (abfd, buf + 4));
       fprintf (file, "     eax: %08lx  ebx: %08lx  ecx: %08lx  edx: %08lx\n",
-               (unsigned long)bfd_get_32 (abfd, buf + 8),
-               (unsigned long)bfd_get_32 (abfd, buf + 12),
-               (unsigned long)bfd_get_32 (abfd, buf + 16),
-               (unsigned long)bfd_get_32 (abfd, buf + 20));
+	       (unsigned long)bfd_get_32 (abfd, buf + 8),
+	       (unsigned long)bfd_get_32 (abfd, buf + 12),
+	       (unsigned long)bfd_get_32 (abfd, buf + 16),
+	       (unsigned long)bfd_get_32 (abfd, buf + 20));
       fprintf (file, "     edi: %08lx  esi: %08lx  ebp: %08lx  esp: %08lx\n",
-               (unsigned long)bfd_get_32 (abfd, buf + 24),
-               (unsigned long)bfd_get_32 (abfd, buf + 28),
-               (unsigned long)bfd_get_32 (abfd, buf + 32),
-               (unsigned long)bfd_get_32 (abfd, buf + 36));
+	       (unsigned long)bfd_get_32 (abfd, buf + 24),
+	       (unsigned long)bfd_get_32 (abfd, buf + 28),
+	       (unsigned long)bfd_get_32 (abfd, buf + 32),
+	       (unsigned long)bfd_get_32 (abfd, buf + 36));
       fprintf (file, "      ss: %08lx  flg: %08lx  eip: %08lx   cs: %08lx\n",
-               (unsigned long)bfd_get_32 (abfd, buf + 40),
-               (unsigned long)bfd_get_32 (abfd, buf + 44),
-               (unsigned long)bfd_get_32 (abfd, buf + 48),
-               (unsigned long)bfd_get_32 (abfd, buf + 52));
+	       (unsigned long)bfd_get_32 (abfd, buf + 40),
+	       (unsigned long)bfd_get_32 (abfd, buf + 44),
+	       (unsigned long)bfd_get_32 (abfd, buf + 48),
+	       (unsigned long)bfd_get_32 (abfd, buf + 52));
       fprintf (file, "      ds: %08lx   es: %08lx   fs: %08lx   gs: %08lx\n",
-               (unsigned long)bfd_get_32 (abfd, buf + 56),
-               (unsigned long)bfd_get_32 (abfd, buf + 60),
-               (unsigned long)bfd_get_32 (abfd, buf + 64),
-               (unsigned long)bfd_get_32 (abfd, buf + 68));
+	       (unsigned long)bfd_get_32 (abfd, buf + 56),
+	       (unsigned long)bfd_get_32 (abfd, buf + 60),
+	       (unsigned long)bfd_get_32 (abfd, buf + 64),
+	       (unsigned long)bfd_get_32 (abfd, buf + 68));
       return TRUE;
     case BFD_MACH_O_x86_FLOAT_STATE:
       if (thread->size < 8)
-        return FALSE;
+	return FALSE;
       fprintf (file, "   x86_FLOAT_STATE:\n");
       fprintf (file, "    flavor: 0x%08lx  count: 0x%08lx\n",
-               (unsigned long)bfd_get_32 (abfd, buf + 0),
-               (unsigned long)bfd_get_32 (abfd, buf + 4));
+	       (unsigned long)bfd_get_32 (abfd, buf + 0),
+	       (unsigned long)bfd_get_32 (abfd, buf + 4));
       return TRUE;
     case BFD_MACH_O_x86_EXCEPTION_STATE:
       if (thread->size < 8 + 3 * 4)
-        return FALSE;
+	return FALSE;
       fprintf (file, "   x86_EXCEPTION_STATE:\n");
       fprintf (file, "    flavor: 0x%08lx  count: 0x%08lx\n",
-               (unsigned long)bfd_get_32 (abfd, buf + 0),
-               (unsigned long)bfd_get_32 (abfd, buf + 4));
+	       (unsigned long)bfd_get_32 (abfd, buf + 0),
+	       (unsigned long)bfd_get_32 (abfd, buf + 4));
       fprintf (file, "    trapno: %08lx  err: %08lx  faultaddr: %08lx\n",
-               (unsigned long)bfd_get_32 (abfd, buf + 8),
-               (unsigned long)bfd_get_32 (abfd, buf + 12),
-               (unsigned long)bfd_get_32 (abfd, buf + 16));
+	       (unsigned long)bfd_get_32 (abfd, buf + 8),
+	       (unsigned long)bfd_get_32 (abfd, buf + 12),
+	       (unsigned long)bfd_get_32 (abfd, buf + 16));
       return TRUE;
     default:
       break;
@@ -391,9 +396,9 @@ const mach_o_segment_name_xlat mach_o_i3
     { NULL, NULL }
   };
 
-#define bfd_mach_o_canonicalize_one_reloc bfd_mach_o_i386_canonicalize_one_reloc
-#define bfd_mach_o_swap_reloc_out bfd_mach_o_i386_swap_reloc_out
-#define bfd_mach_o_print_thread bfd_mach_o_i386_print_thread
+#define bfd_mach_o_canonicalize_one_reloc  bfd_mach_o_i386_canonicalize_one_reloc
+#define bfd_mach_o_swap_reloc_out	   bfd_mach_o_i386_swap_reloc_out
+#define bfd_mach_o_print_thread		   bfd_mach_o_i386_print_thread
 
 #define bfd_mach_o_tgt_seg_table mach_o_i386_segsec_names_xlat
 #define bfd_mach_o_section_type_valid_for_tgt NULL
@@ -401,11 +406,11 @@ const mach_o_segment_name_xlat mach_o_i3
 #define bfd_mach_o_bfd_reloc_type_lookup bfd_mach_o_i386_bfd_reloc_type_lookup
 #define bfd_mach_o_bfd_reloc_name_lookup bfd_mach_o_i386_bfd_reloc_name_lookup
 
-#define TARGET_NAME 		i386_mach_o_vec
-#define TARGET_STRING 		"mach-o-i386"
+#define TARGET_NAME		i386_mach_o_vec
+#define TARGET_STRING		"mach-o-i386"
 #define TARGET_ARCHITECTURE	bfd_arch_i386
 #define TARGET_PAGESIZE		4096
-#define TARGET_BIG_ENDIAN 	0
-#define TARGET_ARCHIVE 		0
+#define TARGET_BIG_ENDIAN	0
+#define TARGET_ARCHIVE		0
 #define TARGET_PRIORITY		0
 #include "mach-o-target.c"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mach-o-target.c ./bfd/mach-o-target.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mach-o-target.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/mach-o-target.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Mach-O support for BFD.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -24,54 +24,56 @@
 #ifndef MACH_O_TARGET_COMMON_DEFINED
 #define MACH_O_TARGET_COMMON_DEFINED
 
-#define bfd_mach_o_bfd_free_cached_info               _bfd_generic_bfd_free_cached_info
+#define bfd_mach_o_bfd_free_cached_info		      _bfd_generic_bfd_free_cached_info
 #define bfd_mach_o_get_section_contents_in_window     _bfd_generic_get_section_contents_in_window
 #define bfd_mach_o_bfd_print_private_bfd_data	      _bfd_generic_bfd_print_private_bfd_data
-#define bfd_mach_o_bfd_is_target_special_symbol       ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define bfd_mach_o_bfd_is_local_label_name            bfd_generic_is_local_label_name
-#define bfd_mach_o_get_lineno                         _bfd_nosymbols_get_lineno
-#define bfd_mach_o_find_inliner_info                  _bfd_nosymbols_find_inliner_info
+#define bfd_mach_o_bfd_is_target_special_symbol	      ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
+#define bfd_mach_o_bfd_is_local_label_name	      bfd_generic_is_local_label_name
+#define bfd_mach_o_get_lineno			      _bfd_nosymbols_get_lineno
+#define bfd_mach_o_find_inliner_info		      _bfd_nosymbols_find_inliner_info
 #define bfd_mach_o_get_symbol_version_string	      _bfd_nosymbols_get_symbol_version_string
-#define bfd_mach_o_bfd_make_debug_symbol              _bfd_nosymbols_bfd_make_debug_symbol
-#define bfd_mach_o_read_minisymbols                   _bfd_generic_read_minisymbols
-#define bfd_mach_o_minisymbol_to_symbol               _bfd_generic_minisymbol_to_symbol
+#define bfd_mach_o_bfd_make_debug_symbol	      _bfd_nosymbols_bfd_make_debug_symbol
+#define bfd_mach_o_read_minisymbols		      _bfd_generic_read_minisymbols
+#define bfd_mach_o_minisymbol_to_symbol		      _bfd_generic_minisymbol_to_symbol
 #define bfd_mach_o_bfd_get_relocated_section_contents bfd_generic_get_relocated_section_contents
-#define bfd_mach_o_bfd_relax_section                  bfd_generic_relax_section
-#define bfd_mach_o_bfd_link_hash_table_create         _bfd_generic_link_hash_table_create
-#define bfd_mach_o_bfd_link_add_symbols               _bfd_generic_link_add_symbols
-#define bfd_mach_o_bfd_link_just_syms                 _bfd_generic_link_just_syms
+#define bfd_mach_o_bfd_relax_section		      bfd_generic_relax_section
+#define bfd_mach_o_bfd_link_hash_table_create	      _bfd_generic_link_hash_table_create
+#define bfd_mach_o_bfd_link_add_symbols		      _bfd_generic_link_add_symbols
+#define bfd_mach_o_bfd_link_just_syms		      _bfd_generic_link_just_syms
 #define bfd_mach_o_bfd_copy_link_hash_symbol_type \
   _bfd_generic_copy_link_hash_symbol_type
-#define bfd_mach_o_bfd_final_link                     _bfd_generic_final_link
-#define bfd_mach_o_bfd_link_split_section             _bfd_generic_link_split_section
-#define bfd_mach_o_bfd_link_check_relocs              _bfd_generic_link_check_relocs
-#define bfd_mach_o_bfd_merge_private_bfd_data         _bfd_generic_bfd_merge_private_bfd_data
-#define bfd_mach_o_bfd_set_private_flags              bfd_mach_o_bfd_set_private_flags
-#define bfd_mach_o_get_section_contents               _bfd_generic_get_section_contents
-#define bfd_mach_o_bfd_gc_sections                    bfd_generic_gc_sections
-#define bfd_mach_o_bfd_lookup_section_flags           bfd_generic_lookup_section_flags
-#define bfd_mach_o_bfd_merge_sections                 bfd_generic_merge_sections
-#define bfd_mach_o_bfd_is_group_section               bfd_generic_is_group_section
-#define bfd_mach_o_bfd_discard_group                  bfd_generic_discard_group
-#define bfd_mach_o_section_already_linked             _bfd_generic_section_already_linked
-#define bfd_mach_o_bfd_define_common_symbol           bfd_generic_define_common_symbol
-#define bfd_mach_o_bfd_copy_private_bfd_data          _bfd_generic_bfd_copy_private_bfd_data
+#define bfd_mach_o_bfd_final_link		      _bfd_generic_final_link
+#define bfd_mach_o_bfd_link_split_section	      _bfd_generic_link_split_section
+#define bfd_mach_o_bfd_link_check_relocs	      _bfd_generic_link_check_relocs
+#define bfd_mach_o_bfd_merge_private_bfd_data	      _bfd_generic_bfd_merge_private_bfd_data
+#define bfd_mach_o_bfd_set_private_flags	      bfd_mach_o_bfd_set_private_flags
+#define bfd_mach_o_get_section_contents		      _bfd_generic_get_section_contents
+#define bfd_mach_o_bfd_gc_sections		      bfd_generic_gc_sections
+#define bfd_mach_o_bfd_lookup_section_flags	      bfd_generic_lookup_section_flags
+#define bfd_mach_o_bfd_merge_sections		      bfd_generic_merge_sections
+#define bfd_mach_o_bfd_is_group_section		      bfd_generic_is_group_section
+#define bfd_mach_o_bfd_discard_group		      bfd_generic_discard_group
+#define bfd_mach_o_section_already_linked	      _bfd_generic_section_already_linked
+#define bfd_mach_o_bfd_define_common_symbol	      bfd_generic_define_common_symbol
+#define bfd_mach_o_bfd_define_start_stop	      bfd_generic_define_start_stop
+#define bfd_mach_o_bfd_copy_private_bfd_data	      _bfd_generic_bfd_copy_private_bfd_data
 #define bfd_mach_o_core_file_matches_executable_p     generic_core_file_matches_executable_p
-#define bfd_mach_o_core_file_pid                      _bfd_nocore_core_file_pid
+#define bfd_mach_o_core_file_pid		      _bfd_nocore_core_file_pid
+#define bfd_mach_o_set_reloc			      _bfd_generic_set_reloc
 
 #define bfd_mach_o_get_dynamic_symtab_upper_bound     bfd_mach_o_get_symtab_upper_bound
 #define bfd_mach_o_canonicalize_dynamic_symtab	      bfd_mach_o_canonicalize_symtab
 
 /* For Mach-O special archives.  */
-#define bfd_mach_o_read_ar_hdr                    _bfd_noarchive_read_ar_hdr
-#define bfd_mach_o_write_ar_hdr                   _bfd_noarchive_write_ar_hdr
-#define bfd_mach_o_slurp_armap                    _bfd_noarchive_slurp_armap
-#define bfd_mach_o_slurp_extended_name_table      _bfd_noarchive_slurp_extended_name_table
+#define bfd_mach_o_read_ar_hdr			  _bfd_noarchive_read_ar_hdr
+#define bfd_mach_o_write_ar_hdr			  _bfd_noarchive_write_ar_hdr
+#define bfd_mach_o_slurp_armap			  _bfd_noarchive_slurp_armap
+#define bfd_mach_o_slurp_extended_name_table	  _bfd_noarchive_slurp_extended_name_table
 #define bfd_mach_o_construct_extended_name_table  _bfd_noarchive_construct_extended_name_table
-#define bfd_mach_o_truncate_arname                _bfd_noarchive_truncate_arname
-#define bfd_mach_o_write_armap                    _bfd_noarchive_write_armap
-#define bfd_mach_o_get_elt_at_index               _bfd_noarchive_get_elt_at_index
-#define bfd_mach_o_update_armap_timestamp         _bfd_noarchive_update_armap_timestamp
+#define bfd_mach_o_truncate_arname		  _bfd_noarchive_truncate_arname
+#define bfd_mach_o_write_armap			  _bfd_noarchive_write_armap
+#define bfd_mach_o_get_elt_at_index		  _bfd_noarchive_get_elt_at_index
+#define bfd_mach_o_update_armap_timestamp	  _bfd_noarchive_update_armap_timestamp
 
 #define TARGET_NAME_BACKEND XCONCAT2(TARGET_NAME,_backend)
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mach-o-x86-64.c ./bfd/mach-o-x86-64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mach-o-x86-64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/mach-o-x86-64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Intel x86-64 Mach-O support for BFD.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -39,7 +39,7 @@ static const bfd_target *
 bfd_mach_o_x86_64_core_p (bfd *abfd)
 {
   return bfd_mach_o_header_p (abfd, 0,
-                              BFD_MACH_O_MH_CORE, BFD_MACH_O_CPU_TYPE_X86_64);
+			      BFD_MACH_O_MH_CORE, BFD_MACH_O_CPU_TYPE_X86_64);
 }
 
 static bfd_boolean
@@ -120,9 +120,11 @@ static reloc_howto_type x86_64_howto_tab
 };
 
 static bfd_boolean
-bfd_mach_o_x86_64_canonicalize_one_reloc (bfd *abfd,
-				        struct mach_o_reloc_info_external *raw,
-					arelent *res, asymbol **syms)
+bfd_mach_o_x86_64_canonicalize_one_reloc (bfd *       abfd,
+					  struct mach_o_reloc_info_external * raw,
+					  arelent *   res,
+					  asymbol **  syms,
+					  arelent *   res_base ATTRIBUTE_UNUSED)
 {
   bfd_mach_o_reloc_info reloc;
 
@@ -137,86 +139,86 @@ bfd_mach_o_x86_64_canonicalize_one_reloc
     {
     case BFD_MACH_O_X86_64_RELOC_UNSIGNED:
       if (reloc.r_pcrel)
-        return FALSE;
+	return FALSE;
       switch (reloc.r_length)
-        {
-        case 2:
-          res->howto = &x86_64_howto_table[1];
-          return TRUE;
-        case 3:
-          res->howto = &x86_64_howto_table[0];
-          return TRUE;
-        default:
-          return FALSE;
-        }
+	{
+	case 2:
+	  res->howto = &x86_64_howto_table[1];
+	  return TRUE;
+	case 3:
+	  res->howto = &x86_64_howto_table[0];
+	  return TRUE;
+	default:
+	  return FALSE;
+	}
     case BFD_MACH_O_X86_64_RELOC_SIGNED:
       if (reloc.r_length == 2 && reloc.r_pcrel)
-        {
-          res->howto = &x86_64_howto_table[2];
-          return TRUE;
-        }
+	{
+	  res->howto = &x86_64_howto_table[2];
+	  return TRUE;
+	}
       break;
     case BFD_MACH_O_X86_64_RELOC_BRANCH:
       if (!reloc.r_pcrel)
-        return FALSE;
+	return FALSE;
       switch (reloc.r_length)
-        {
-        case 2:
-          res->howto = &x86_64_howto_table[6];
-          return TRUE;
-        default:
-          return FALSE;
-        }
+	{
+	case 2:
+	  res->howto = &x86_64_howto_table[6];
+	  return TRUE;
+	default:
+	  return FALSE;
+	}
       break;
     case BFD_MACH_O_X86_64_RELOC_GOT_LOAD:
       if (reloc.r_length == 2 && reloc.r_pcrel && reloc.r_extern)
-        {
-          res->howto = &x86_64_howto_table[7];
-          return TRUE;
-        }
+	{
+	  res->howto = &x86_64_howto_table[7];
+	  return TRUE;
+	}
       break;
     case BFD_MACH_O_X86_64_RELOC_GOT:
       if (reloc.r_length == 2 && reloc.r_pcrel && reloc.r_extern)
-        {
-          res->howto = &x86_64_howto_table[10];
-          return TRUE;
-        }
+	{
+	  res->howto = &x86_64_howto_table[10];
+	  return TRUE;
+	}
       break;
     case BFD_MACH_O_X86_64_RELOC_SUBTRACTOR:
       if (reloc.r_pcrel)
-        return FALSE;
+	return FALSE;
       switch (reloc.r_length)
-        {
-        case 2:
-          res->howto = &x86_64_howto_table[8];
-          return TRUE;
-        case 3:
-          res->howto = &x86_64_howto_table[9];
-          return TRUE;
-        default:
-          return FALSE;
-        }
+	{
+	case 2:
+	  res->howto = &x86_64_howto_table[8];
+	  return TRUE;
+	case 3:
+	  res->howto = &x86_64_howto_table[9];
+	  return TRUE;
+	default:
+	  return FALSE;
+	}
       break;
     case BFD_MACH_O_X86_64_RELOC_SIGNED_1:
       if (reloc.r_length == 2 && reloc.r_pcrel)
-        {
-          res->howto = &x86_64_howto_table[3];
-          return TRUE;
-        }
+	{
+	  res->howto = &x86_64_howto_table[3];
+	  return TRUE;
+	}
       break;
     case BFD_MACH_O_X86_64_RELOC_SIGNED_2:
       if (reloc.r_length == 2 && reloc.r_pcrel)
-        {
-          res->howto = &x86_64_howto_table[4];
-          return TRUE;
-        }
+	{
+	  res->howto = &x86_64_howto_table[4];
+	  return TRUE;
+	}
       break;
     case BFD_MACH_O_X86_64_RELOC_SIGNED_4:
       if (reloc.r_length == 2 && reloc.r_pcrel)
-        {
-          res->howto = &x86_64_howto_table[5];
-          return TRUE;
-        }
+	{
+	  res->howto = &x86_64_howto_table[5];
+	  return TRUE;
+	}
       break;
     default:
       return FALSE;
@@ -305,7 +307,7 @@ bfd_mach_o_x86_64_swap_reloc_out (arelen
 
 static reloc_howto_type *
 bfd_mach_o_x86_64_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                                         bfd_reloc_code_real_type code)
+					 bfd_reloc_code_real_type code)
 {
   unsigned int i;
 
@@ -319,7 +321,7 @@ bfd_mach_o_x86_64_bfd_reloc_type_lookup 
 
 static reloc_howto_type *
 bfd_mach_o_x86_64_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                                         const char *name ATTRIBUTE_UNUSED)
+					 const char *name ATTRIBUTE_UNUSED)
 {
   return NULL;
 }
@@ -360,11 +362,11 @@ const mach_o_segment_name_xlat mach_o_x8
 #define bfd_mach_o_tgt_seg_table mach_o_x86_64_segsec_names_xlat
 #define bfd_mach_o_section_type_valid_for_tgt bfd_mach_o_section_type_valid_for_x86_64
 
-#define TARGET_NAME 		x86_64_mach_o_vec
-#define TARGET_STRING 		"mach-o-x86-64"
+#define TARGET_NAME		x86_64_mach_o_vec
+#define TARGET_STRING		"mach-o-x86-64"
 #define TARGET_ARCHITECTURE	bfd_arch_i386
 #define TARGET_PAGESIZE		4096
-#define TARGET_BIG_ENDIAN 	0
-#define TARGET_ARCHIVE 		0
+#define TARGET_BIG_ENDIAN	0
+#define TARGET_ARCHIVE		0
 #define TARGET_PRIORITY		0
 #include "mach-o-target.c"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/MAINTAINERS ./bfd/MAINTAINERS
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/MAINTAINERS	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/MAINTAINERS	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 See ../binutils/MAINTAINERS
 
-Copyright (C) 2012-2017 Free Software Foundation, Inc.
+Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/Makefile.am ./bfd/Makefile.am
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/Makefile.am	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/Makefile.am	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 ## Process this file with automake to generate Makefile.in
 #
-#   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -346,6 +346,7 @@ BFD32_BACKENDS = \
 	elf32-hppa.lo \
 	elf32-i370.lo \
 	elf32-i386.lo \
+	elfxx-x86.lo \
 	elf32-i860.lo \
 	elf32-i960.lo \
 	elf32-ip2k.lo \
@@ -542,6 +543,7 @@ BFD32_BACKENDS_CFILES = \
 	elf32-hppa.c \
 	elf32-i370.c \
 	elf32-i386.c \
+	elfxx-x86.c \
 	elf32-i860.c \
 	elf32-i960.c \
 	elf32-ip2k.c \
@@ -699,6 +701,7 @@ BFD64_BACKENDS = \
 	elf64-sparc.lo \
 	elf64-tilegx.lo \
 	elf64-x86-64.lo \
+	elfxx-x86.lo \
 	elf64.lo \
 	mach-o-aarch64.lo \
 	mach-o-x86-64.lo \
@@ -734,6 +737,7 @@ BFD64_BACKENDS_CFILES = \
 	elf64-sparc.c \
 	elf64-tilegx.c \
 	elf64-x86-64.c \
+	elfxx-x86.c \
 	elf64.c \
 	elfn32-mips.c \
 	elfxx-aarch64.c \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/Makefile.in ./bfd/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/Makefile.in	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/Makefile.in	2018-01-09 02:04:54.000000000 +0000
@@ -16,7 +16,7 @@
 @SET_MAKE@
 
 #
-#   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -680,6 +680,7 @@ BFD32_BACKENDS = \
 	elf32-hppa.lo \
 	elf32-i370.lo \
 	elf32-i386.lo \
+	elfxx-x86.lo \
 	elf32-i860.lo \
 	elf32-i960.lo \
 	elf32-ip2k.lo \
@@ -876,6 +877,7 @@ BFD32_BACKENDS_CFILES = \
 	elf32-hppa.c \
 	elf32-i370.c \
 	elf32-i386.c \
+	elfxx-x86.c \
 	elf32-i860.c \
 	elf32-i960.c \
 	elf32-ip2k.c \
@@ -1034,6 +1036,7 @@ BFD64_BACKENDS = \
 	elf64-sparc.lo \
 	elf64-tilegx.lo \
 	elf64-x86-64.lo \
+	elfxx-x86.lo \
 	elf64.lo \
 	mach-o-aarch64.lo \
 	mach-o-x86-64.lo \
@@ -1069,6 +1072,7 @@ BFD64_BACKENDS_CFILES = \
 	elf64-sparc.c \
 	elf64-tilegx.c \
 	elf64-x86-64.c \
+	elfxx-x86.c \
 	elf64.c \
 	elfn32-mips.c \
 	elfxx-aarch64.c \
@@ -1574,6 +1578,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elfxx-riscv.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elfxx-sparc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elfxx-tilegx.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elfxx-x86.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/epoc-pe-arm.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/epoc-pei-arm.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/format.Plo@am__quote@
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/makefile.vms ./bfd/makefile.vms
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/makefile.vms	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/makefile.vms	2018-01-09 02:04:54.000000000 +0000
@@ -5,7 +5,7 @@
 #
 # Created by Klaus K"ampf, kkaempf@rmi.de
 #
-#   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mep-relocs.pl ./bfd/mep-relocs.pl
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mep-relocs.pl	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/mep-relocs.pl	2018-01-09 02:04:54.000000000 +0000
@@ -2,7 +2,7 @@
 # -*- perl -*-
 #
 # Toshiba MeP Media Engine Relocation Generator
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 # This file is part of BFD.
 # Originally written by DJ Delorie <dj@redhat.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/merge.c ./bfd/merge.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/merge.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/merge.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* SEC_MERGE support.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    Written by Jakub Jelinek <jakub@redhat.com>.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -109,7 +109,7 @@ sec_merge_hash_newfunc (struct bfd_hash_
      subclass.  */
   if (entry == NULL)
     entry = (struct bfd_hash_entry *)
-        bfd_hash_allocate (table, sizeof (struct sec_merge_hash_entry));
+	bfd_hash_allocate (table, sizeof (struct sec_merge_hash_entry));
   if (entry == NULL)
     return NULL;
 
@@ -292,13 +292,15 @@ sec_merge_emit (bfd *abfd, struct sec_me
   char *pad = NULL;
   bfd_size_type off = 0;
   int alignment_power = sec->output_section->alignment_power;
+  bfd_size_type pad_len;
 
-  if (alignment_power)
-    {
-      pad = (char *) bfd_zmalloc ((bfd_size_type) 1 << alignment_power);
-      if (pad == NULL)
-	return FALSE;
-    }
+  /* FIXME: If alignment_power is 0 then really we should scan the
+     entry list for the largest required alignment and use that.  */
+  pad_len = alignment_power ? ((bfd_size_type) 1 << alignment_power) : 16;
+
+  pad = (char *) bfd_zmalloc (pad_len);
+  if (pad == NULL)
+    return FALSE;
 
   for (; entry != NULL && entry->secinfo == secinfo; entry = entry->next)
     {
@@ -308,6 +310,7 @@ sec_merge_emit (bfd *abfd, struct sec_me
       len = -off & (entry->alignment - 1);
       if (len != 0)
 	{
+	  BFD_ASSERT (len <= pad_len);
 	  if (contents)
 	    {
 	      memcpy (contents + offset, pad, len);
@@ -336,19 +339,18 @@ sec_merge_emit (bfd *abfd, struct sec_me
   off = sec->size - off;
   if (off != 0)
     {
+      BFD_ASSERT (off <= pad_len);
       if (contents)
 	memcpy (contents + offset, pad, off);
       else if (bfd_bwrite (pad, off, abfd) != off)
 	goto err;
     }
 
-  if (pad != NULL)
-    free (pad);
+  free (pad);
   return TRUE;
 
  err:
-  if (pad != NULL)
-    free (pad);
+  free (pad);
   return FALSE;
 }
 
@@ -408,7 +410,7 @@ _bfd_add_merge_section (bfd *abfd, void 
     {
       /* Initialize the information we need to keep track of.  */
       sinfo = (struct sec_merge_info *)
-          bfd_alloc (abfd, sizeof (struct sec_merge_info));
+	  bfd_alloc (abfd, sizeof (struct sec_merge_info));
       if (sinfo == NULL)
 	goto error_return;
       sinfo->next = (struct sec_merge_info *) *psinfo;
@@ -609,7 +611,7 @@ is_suffix (const struct sec_merge_hash_e
 
 /* This is a helper function for _bfd_merge_sections.  It attempts to
    merge strings matching suffixes of longer strings.  */
-static void
+static bfd_boolean
 merge_strings (struct sec_merge_info *sinfo)
 {
   struct sec_merge_hash_entry **array, **a, *e;
@@ -621,7 +623,7 @@ merge_strings (struct sec_merge_info *si
   amt = sinfo->htab->size * sizeof (struct sec_merge_hash_entry *);
   array = (struct sec_merge_hash_entry **) bfd_malloc (amt);
   if (array == NULL)
-    goto alloc_failure;
+    return FALSE;
 
   for (e = sinfo->htab->first, a = array; e; e = e->next)
     if (e->alignment)
@@ -666,9 +668,7 @@ merge_strings (struct sec_merge_info *si
 	}
     }
 
-alloc_failure:
-  if (array)
-    free (array);
+  free (array);
 
   /* Now assign positions to the strings we want to keep.  */
   size = 0;
@@ -714,6 +714,7 @@ alloc_failure:
 	    e->u.index = e->u.suffix->u.index + (e->u.suffix->len - e->len);
 	  }
       }
+  return TRUE;
 }
 
 /* This function is called once after all SEC_MERGE sections are registered
@@ -748,7 +749,7 @@ _bfd_merge_sections (bfd *abfd,
 	      (*remove_hook) (abfd, secinfo->sec);
 	  }
 	else if (! record_section (sinfo, secinfo))
-	  break;
+	  return FALSE;
 
       if (secinfo)
 	continue;
@@ -757,7 +758,10 @@ _bfd_merge_sections (bfd *abfd,
 	continue;
 
       if (sinfo->htab->strings)
-	merge_strings (sinfo);
+	{
+	  if (!merge_strings (sinfo))
+	    return FALSE;
+	}
       else
 	{
 	  struct sec_merge_hash_entry *e;
@@ -861,8 +865,8 @@ _bfd_merged_section_offset (bfd *output_
       if (offset > sec->rawsize)
 	_bfd_error_handler
 	  /* xgettext:c-format */
-	  (_("%B: access beyond end of merged section (%ld)"),
-	   sec->owner, (long) offset);
+	  (_("%B: access beyond end of merged section (%Ld)"),
+	   sec->owner, offset);
       return secinfo->first_str ? sec->size : 0;
     }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mipsbsd.c ./bfd/mipsbsd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mipsbsd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/mipsbsd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD backend for MIPS BSD (a.out) binaries.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Written by Ralph Campbell.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -283,8 +283,8 @@ static reloc_howto_type mips_howto_table
   {MIPS_RELOC_HI16,   16, 2, 16, FALSE, 0, complain_overflow_bitfield, 0,
 	"HI16",     FALSE, 0, 0x0000ffff, FALSE},
   {MIPS_RELOC_HI16_S, 16, 2, 16, FALSE, 0, complain_overflow_bitfield,
-        mips_fix_hi16_s,
-        "HI16_S",   FALSE, 0, 0x0000ffff, FALSE},
+	mips_fix_hi16_s,
+	"HI16_S",   FALSE, 0, 0x0000ffff, FALSE},
   {MIPS_RELOC_LO16,    0, 2, 16, FALSE, 0, complain_overflow_dont, 0,
 	"LO16",     FALSE, 0, 0x0000ffff, FALSE},
 };
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mmo.c ./bfd/mmo.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/mmo.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/mmo.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for mmo objects (MMIX-specific object-format).
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    Written by Hans-Peter Nilsson (hp@bitrange.com).
    Infrastructure and other bits originally copied from srec.c and
    binary.c.
@@ -113,7 +113,7 @@ SUBSECTION
 	@samp{YZ} in lop_fixr: it is xor:ed into the current location
 	minus @math{4 * L}.  The first byte of the word is 0 or 1.  If it
 	is 1, then @math{L = (@var{lowest 24 bits of word}) - 2^Z}, if 0,
- 	then @math{L = (@var{lowest 24 bits of word})}.
+	then @math{L = (@var{lowest 24 bits of word})}.
 
 	@item lop_file
 	0x9806YYZZ.  @samp{Y} is the file number, @samp{Z} is count of
@@ -956,14 +956,14 @@ mmo_write_loc_chunk (bfd *abfd, bfd_vma 
 	  _bfd_error_handler
 	    /* xgettext:c-format */
 	    (_("%B: attempt to emit contents at non-multiple-of-4"
-	       " address 0x%lx\n"),
-	     abfd, (unsigned long) vma);
+	       " address %#Lx"),
+	     abfd, vma);
 	  bfd_set_error (bfd_error_bad_value);
 	  return FALSE;
 	}
 
       /* We always write the location as 64 bits; no use saving bytes
-         here.  */
+	 here.  */
       mmo_write_tetra_raw (abfd, (LOP << 24) | (LOP_LOC << 16) | 2);
       mmo_write_octa_raw (abfd, vma);
     }
@@ -1602,7 +1602,7 @@ mmo_scan (bfd *abfd)
   bfd_size_type nbytes_read = 0;
   /* Buffer with room to read a 64-bit value.  */
   bfd_byte buf[8];
-  long stab_loc = -1;
+  file_ptr stab_loc = -1;
   char *file_names[256];
 
   abfd->symcount = 0;
@@ -2033,7 +2033,7 @@ mmo_scan (bfd *abfd)
 			 " not equal to the number of tetras to the preceding"
 			 " lop_stab (%ld)\n"),
 		       abfd, (long) (y * 256 + z),
-		       (curpos - stab_loc - 4)/4);
+		       (long) (curpos - stab_loc - 4)/4);
 		    bfd_set_error (bfd_error_bad_value);
 		    goto error_return;
 		  }
@@ -2508,7 +2508,7 @@ mmo_internal_write_section (bfd *abfd, a
     /* Not handled here.  */
     {
       /* This would normally be an abort call since this can't happen, but
-         we don't do that.  */
+	 we don't do that.  */
       bfd_set_error (bfd_error_bad_value);
       return FALSE;
     }
@@ -3239,15 +3239,14 @@ mmo_write_object_contents (bfd *abfd)
 	       global registers.  */
 	    _bfd_error_handler
 	      /* xgettext:c-format */
-	      (_("%B: too many initialized registers; section length %ld\n"),
-	       abfd, (long) sec->size);
+	      (_("%B: too many initialized registers; section length %Ld"),
+	       abfd, sec->size);
 	  else
 	    _bfd_error_handler
 	      /* xgettext:c-format */
 	      (_("%B: invalid start address for initialized registers of"
-		 " length %ld: 0x%lx%08lx\n"),
-	       abfd, (long) sec->size,
-	       (unsigned long) (sec->vma >> 32), (unsigned long) (sec->vma));
+		 " length %Ld: %#Lx"),
+	       abfd, sec->size, sec->vma);
 
 	  return FALSE;
 	}
@@ -3320,6 +3319,7 @@ mmo_write_object_contents (bfd *abfd)
 #define mmo_section_already_linked \
   _bfd_generic_section_already_linked
 #define mmo_bfd_define_common_symbol bfd_generic_define_common_symbol
+#define mmo_bfd_define_start_stop bfd_generic_define_start_stop
 
 /* We want to copy time of creation, otherwise we'd use
    BFD_JUMP_TABLE_COPY (_bfd_generic).  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/netbsd-core.c ./bfd/netbsd-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/netbsd-core.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/netbsd-core.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back end for NetBSD style core files
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
    Written by Paul Kranenburg, EUR
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -22,7 +22,7 @@
 #include "sysdep.h"
 #include "bfd.h"
 #include "libbfd.h"
-#include "libaout.h"           /* BFD a.out internal data structures.  */
+#include "libaout.h"	       /* BFD a.out internal data structures.  */
 
 #include <sys/param.h>
 #include <sys/dir.h>
@@ -314,5 +314,5 @@ const bfd_target core_netbsd_vec =
 
     NULL,
 
-    NULL			        /* Backend_data.  */
+    NULL				/* Backend_data.  */
   };
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/netbsd.h ./bfd/netbsd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/netbsd.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/netbsd.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end definitions used by all NetBSD targets.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@
 #define N_HEADER_IN_TEXT(x)	1
 
 /* Determine if this is a shared library using the flags.  */
-#define N_SHARED_LIB(x) 	(N_DYNAMIC (x))
+#define N_SHARED_LIB(x)		(N_DYNAMIC (x))
 
 /* We have 6 bits of flags and 10 bits of machine ID.  */
 #define N_MACHTYPE(execp) \
@@ -45,7 +45,7 @@
 	 | (((flags) & 0x3f) << 24))
 #define N_SET_MACHTYPE(execp, machtype) \
 	((execp)->a_info = \
-         ((execp)->a_info & 0xfb00ffff) | ((((int) (machtype)) & 0x3ff) << 16))
+	 ((execp)->a_info & 0xfb00ffff) | ((((int) (machtype)) & 0x3ff) << 16))
 #define N_SET_FLAGS(execp, flags) \
 	((execp)->a_info = \
 	 ((execp)->a_info & 0x03ffffff) | ((flags & 0x03f) << 26))
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/newsos3.c ./bfd/newsos3.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/newsos3.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/newsos3.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for NewsOS3 (Sony, 68k) binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -38,6 +38,6 @@
 #include "aout/aout64.h"
 #include "aout/stab_gnu.h"
 #include "aout/ar.h"
-#include "libaout.h"           /* BFD a.out internal data structures */
+#include "libaout.h"	       /* BFD a.out internal data structures */
 
 #include "aout-target.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm32-alpha.c ./bfd/nlm32-alpha.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm32-alpha.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/nlm32-alpha.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for 32-bit Alpha NLM (NetWare Loadable Module)
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm32.c ./bfd/nlm32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm32.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/nlm32.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* NLM (NetWare Loadable Module) 32-bit executable support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm32-i386.c ./bfd/nlm32-i386.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm32-i386.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/nlm32-i386.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for 32-bit i386 NLM (NetWare Loadable Module)
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm32-ppc.c ./bfd/nlm32-ppc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm32-ppc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/nlm32-ppc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for 32-bit PowerPC NLM (NetWare Loadable Module)
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -83,345 +83,345 @@ nlm_powerpc_write_prefix (bfd *abfd)
 static reloc_howto_type nlm_powerpc_howto_table[] =
 {
   /* Standard 32 bit relocation.  */
-  HOWTO (0,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_POS",               /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffffffff,            /* Source mask.  */
-	 0xffffffff,            /* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (0,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 32,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_POS",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffffffff,		/* Source mask.  */
+	 0xffffffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* 32 bit relocation, but store negative value.  */
-  HOWTO (1,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 -2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_NEG",               /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffffffff,            /* Source mask.  */
-	 0xffffffff,            /* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (1,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 -2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 32,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_NEG",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffffffff,		/* Source mask.  */
+	 0xffffffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* 32 bit PC relative relocation.  */
-  HOWTO (2,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,	                /* Bitsize.  */
-	 TRUE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
+  HOWTO (2,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 32,			/* Bitsize.  */
+	 TRUE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_signed, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_REL",               /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffffffff,            /* Source mask.  */
-	 0xffffffff,            /* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+	 0,			/* Special_function.  */
+	 "R_REL",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffffffff,		/* Source mask.  */
+	 0xffffffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* 16 bit TOC relative relocation.  */
-  HOWTO (3,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 1,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
+  HOWTO (3,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 1,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_signed, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_TOC",               /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffff,	        /* Source mask.  */
-	 0xffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+	 0,			/* Special_function.  */
+	 "R_TOC",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Source mask.  */
+	 0xffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* I don't really know what this is.  */
-  HOWTO (4,	                /* Type.  */
-	 1,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_RTB",               /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffffffff,	        /* Source mask.  */
-	 0xffffffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (4,			/* Type.  */
+	 1,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 32,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_RTB",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffffffff,		/* Source mask.  */
+	 0xffffffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* External TOC relative symbol.  */
-  HOWTO (5,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_GL",                /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffff,	        /* Source mask.  */
-	 0xffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (5,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_GL",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Source mask.  */
+	 0xffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* Local TOC relative symbol.  */
-  HOWTO (6,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_TCL",               /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffff,	        /* Source mask.  */
-	 0xffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (6,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_TCL",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Source mask.  */
+	 0xffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   { 7 },
 
   /* Non modifiable absolute branch.  */
-  HOWTO (8,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 26,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_BA",                /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0x3fffffc,	        /* Source mask.  */
-	 0x3fffffc,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (8,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 26,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_BA",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0x3fffffc,		/* Source mask.  */
+	 0x3fffffc,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   { 9 },
 
   /* Non modifiable relative branch.  */
-  HOWTO (0xa,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 26,	                /* Bitsize.  */
-	 TRUE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
+  HOWTO (0xa,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 26,			/* Bitsize.  */
+	 TRUE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_signed, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_BR",                /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0x3fffffc,	        /* Source mask.  */
-	 0x3fffffc,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+	 0,			/* Special_function.  */
+	 "R_BR",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0x3fffffc,		/* Source mask.  */
+	 0x3fffffc,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   { 0xb },
 
   /* Indirect load.  */
-  HOWTO (0xc,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_RL",                /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffff,	        /* Source mask.  */
-	 0xffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (0xc,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_RL",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Source mask.  */
+	 0xffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* Load address.  */
-  HOWTO (0xd,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_RLA",               /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffff,	        /* Source mask.  */
-	 0xffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (0xd,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_RLA",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Source mask.  */
+	 0xffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   { 0xe },
 
   /* Non-relocating reference.  */
-  HOWTO (0xf,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_REF",               /* Name.  */
-	 FALSE,	                /* Partial_inplace.  */
-	 0,		        /* Source mask.  */
-	 0,     	   	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (0xf,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 32,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_REF",		/* Name.  */
+	 FALSE,			/* Partial_inplace.  */
+	 0,			/* Source mask.  */
+	 0,			/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   { 0x10 },
   { 0x11 },
 
   /* TOC relative indirect load.  */
-  HOWTO (0x12,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_TRL",               /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffff,	        /* Source mask.  */
-	 0xffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (0x12,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_TRL",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Source mask.  */
+	 0xffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* TOC relative load address.  */
-  HOWTO (0x13,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_TRLA",              /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffff,	        /* Source mask.  */
-	 0xffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (0x13,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_TRLA",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Source mask.  */
+	 0xffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* Modifiable relative branch.  */
-  HOWTO (0x14,	                /* Type.  */
-	 1,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_RRTBI",             /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffffffff,	        /* Source mask.  */
-	 0xffffffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (0x14,			/* Type.  */
+	 1,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 32,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_RRTBI",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffffffff,		/* Source mask.  */
+	 0xffffffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* Modifiable absolute branch.  */
-  HOWTO (0x15,	                /* Type.  */
-	 1,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_RRTBA",             /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffffffff,	        /* Source mask.  */
-	 0xffffffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (0x15,			/* Type.  */
+	 1,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 32,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_RRTBA",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffffffff,		/* Source mask.  */
+	 0xffffffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* Modifiable call absolute indirect.  */
-  HOWTO (0x16,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_CAI",               /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffff,	        /* Source mask.  */
-	 0xffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (0x16,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_CAI",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Source mask.  */
+	 0xffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* Modifiable call relative.  */
-  HOWTO (0x17,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_REL",               /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffff,	        /* Source mask.  */
-	 0xffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (0x17,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_REL",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Source mask.  */
+	 0xffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* Modifiable branch absolute.  */
-  HOWTO (0x18,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_RBA",               /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffff,	        /* Source mask.  */
-	 0xffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (0x18,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_RBA",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Source mask.  */
+	 0xffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* Modifiable branch absolute.  */
-  HOWTO (0x19,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_RBAC",              /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffff,	        /* Source mask.  */
-	 0xffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+  HOWTO (0x19,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_RBAC",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Source mask.  */
+	 0xffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* Modifiable branch relative.  */
-  HOWTO (0x1a,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 26,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
+  HOWTO (0x1a,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 26,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
 	 complain_overflow_signed, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_REL",               /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffff,	        /* Source mask.  */
-	 0xffff,        	/* Dest mask.  */
-	 FALSE),                /* PC rel offset.  */
+	 0,			/* Special_function.  */
+	 "R_REL",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Source mask.  */
+	 0xffff,		/* Dest mask.  */
+	 FALSE),		/* PC rel offset.  */
 
   /* Modifiable branch absolute.  */
-  HOWTO (0x1b,	                /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 16,	                /* Bitsize.  */
-	 FALSE,	                /* PC relative.  */
-	 0,	                /* Bitpos.  */
-	 complain_overflow_bitfield, /* Complain_on_overflow.  */
-	 0,		        /* Special_function.  */
-	 "R_REL",               /* Name.  */
-	 TRUE,	                /* Partial_inplace.  */
-	 0xffff,	        /* Source mask.  */
-	 0xffff,        	/* Dest mask.  */
-	 FALSE)                 /* PC rel offset.  */
+  HOWTO (0x1b,			/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 16,			/* Bitsize.  */
+	 FALSE,			/* PC relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_bitfield, /* Complain_on_overflow.  */
+	 0,			/* Special_function.  */
+	 "R_REL",		/* Name.  */
+	 TRUE,			/* Partial_inplace.  */
+	 0xffff,		/* Source mask.  */
+	 0xffff,		/* Dest mask.  */
+	 FALSE)			/* PC rel offset.  */
 };
 
 #define HOWTO_COUNT (sizeof nlm_powerpc_howto_table		\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm32-sparc.c ./bfd/nlm32-sparc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm32-sparc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/nlm32-sparc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for 32-bit SPARC NLM (NetWare Loadable Module)
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -163,9 +163,9 @@ nlm_sparc_write_reloc (bfd * abfd, asect
 
   /* Netware wants a list of relocs for each address.
      Format is:
-    	long	offset
-    	long	addend
-    	char	type
+	long	offset
+	long	addend
+	char	type
      That should be it.  */
 
   /* The value we write out is the offset into the appropriate
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm64.c ./bfd/nlm64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/nlm64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* NLM (NetWare Loadable Module) 64-bit executable support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm.c ./bfd/nlm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/nlm.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* NLM (NetWare Loadable Module) executable support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlmcode.h ./bfd/nlmcode.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlmcode.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/nlmcode.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* NLM (NetWare Loadable Module) executable support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support, using ELF support as the
    template.
@@ -351,7 +351,9 @@ nlm_swap_auxiliary_headers_in (bfd *abfd
 	      bfd_byte *contents;
 	      bfd_byte *p, *pend;
 
-	      BFD_ASSERT (hdrLength == 0 && hdr == NULL);
+	      /* See PR 21840 for a reproducer.  */
+	      if (hdrLength != 0 || hdr != NULL)
+		return FALSE;
 
 	      pos = bfd_tell (abfd);
 	      if (bfd_seek (abfd, dataOffset, SEEK_SET) != 0)
@@ -1573,7 +1575,7 @@ nlm_external_reloc_compare (const void *
      code sections
      data sections
      other sections (custom data, messages, help, shared NLM, RPC,
-     		     module dependencies)
+		     module dependencies)
      relocation fixups
      external references (imports)
      public symbols (exports)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlmswap.h ./bfd/nlmswap.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlmswap.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/nlmswap.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* NLM (NetWare Loadable Module) swapping routines for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support, using ELF support as the
    template.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm-target.h ./bfd/nlm-target.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/nlm-target.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/nlm-target.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target definitions for 32/64-bit NLM (NetWare Loadable Module)
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -20,46 +20,48 @@
 
 #define nlm_core_file_p _bfd_dummy_target
 
-#define nlm_get_symtab_upper_bound              nlmNAME (get_symtab_upper_bound)
-#define nlm_canonicalize_symtab                 nlmNAME (canonicalize_symtab)
-#define nlm_make_empty_symbol                   nlmNAME (make_empty_symbol)
-#define nlm_print_symbol                        nlmNAME (print_symbol)
-#define nlm_get_symbol_info                     nlmNAME (get_symbol_info)
+#define nlm_get_symtab_upper_bound		nlmNAME (get_symtab_upper_bound)
+#define nlm_canonicalize_symtab			nlmNAME (canonicalize_symtab)
+#define nlm_make_empty_symbol			nlmNAME (make_empty_symbol)
+#define nlm_print_symbol			nlmNAME (print_symbol)
+#define nlm_get_symbol_info			nlmNAME (get_symbol_info)
 #define nlm_get_symbol_version_string		_bfd_nosymbols_get_symbol_version_string
-#define nlm_bfd_is_local_label_name             bfd_generic_is_local_label_name
+#define nlm_bfd_is_local_label_name		bfd_generic_is_local_label_name
 #define nlm_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define nlm_get_lineno                          _bfd_nosymbols_get_lineno
-#define nlm_find_nearest_line                   _bfd_nosymbols_find_nearest_line
-#define nlm_find_line                           _bfd_nosymbols_find_line
-#define nlm_find_inliner_info                   _bfd_nosymbols_find_inliner_info
-#define nlm_bfd_make_debug_symbol               _bfd_nosymbols_bfd_make_debug_symbol
-#define nlm_read_minisymbols                    _bfd_generic_read_minisymbols
-#define nlm_minisymbol_to_symbol                _bfd_generic_minisymbol_to_symbol
-
-#define nlm_get_reloc_upper_bound               nlmNAME (get_reloc_upper_bound)
-#define nlm_canonicalize_reloc                  nlmNAME (canonicalize_reloc)
-#define nlm_bfd_reloc_type_lookup               bfd_default_reloc_type_lookup
-#define nlm_bfd_reloc_name_lookup         _bfd_norelocs_bfd_reloc_name_lookup
-#define nlm_set_section_contents                nlmNAME (set_section_contents)
-
-#define nlm_sizeof_headers                      _bfd_nolink_sizeof_headers
-#define nlm_bfd_get_relocated_section_contents  bfd_generic_get_relocated_section_contents
-#define nlm_bfd_relax_section                   bfd_generic_relax_section
-#define nlm_bfd_gc_sections                     bfd_generic_gc_sections
+#define nlm_get_lineno				_bfd_nosymbols_get_lineno
+#define nlm_find_nearest_line			_bfd_nosymbols_find_nearest_line
+#define nlm_find_line				_bfd_nosymbols_find_line
+#define nlm_find_inliner_info			_bfd_nosymbols_find_inliner_info
+#define nlm_bfd_make_debug_symbol		_bfd_nosymbols_bfd_make_debug_symbol
+#define nlm_read_minisymbols			_bfd_generic_read_minisymbols
+#define nlm_minisymbol_to_symbol		_bfd_generic_minisymbol_to_symbol
+
+#define nlm_get_reloc_upper_bound		nlmNAME (get_reloc_upper_bound)
+#define nlm_canonicalize_reloc			nlmNAME (canonicalize_reloc)
+#define nlm_set_reloc				_bfd_generic_set_reloc
+#define nlm_bfd_reloc_type_lookup		bfd_default_reloc_type_lookup
+#define nlm_bfd_reloc_name_lookup	  _bfd_norelocs_bfd_reloc_name_lookup
+#define nlm_set_section_contents		nlmNAME (set_section_contents)
+
+#define nlm_sizeof_headers			_bfd_nolink_sizeof_headers
+#define nlm_bfd_get_relocated_section_contents	bfd_generic_get_relocated_section_contents
+#define nlm_bfd_relax_section			bfd_generic_relax_section
+#define nlm_bfd_gc_sections			bfd_generic_gc_sections
 #define nlm_bfd_lookup_section_flags		bfd_generic_lookup_section_flags
-#define nlm_bfd_merge_sections                  bfd_generic_merge_sections
-#define nlm_bfd_is_group_section                bfd_generic_is_group_section
-#define nlm_bfd_discard_group                   bfd_generic_discard_group
-#define nlm_section_already_linked              _bfd_generic_section_already_linked
-#define nlm_bfd_define_common_symbol            bfd_generic_define_common_symbol
-#define nlm_bfd_link_hash_table_create          _bfd_generic_link_hash_table_create
-#define nlm_bfd_link_add_symbols                _bfd_generic_link_add_symbols
-#define nlm_bfd_link_just_syms                  _bfd_generic_link_just_syms
+#define nlm_bfd_merge_sections			bfd_generic_merge_sections
+#define nlm_bfd_is_group_section		bfd_generic_is_group_section
+#define nlm_bfd_discard_group			bfd_generic_discard_group
+#define nlm_section_already_linked		_bfd_generic_section_already_linked
+#define nlm_bfd_define_common_symbol		bfd_generic_define_common_symbol
+#define nlm_bfd_define_start_stop		bfd_generic_define_start_stop
+#define nlm_bfd_link_hash_table_create		_bfd_generic_link_hash_table_create
+#define nlm_bfd_link_add_symbols		_bfd_generic_link_add_symbols
+#define nlm_bfd_link_just_syms			_bfd_generic_link_just_syms
 #define nlm_bfd_copy_link_hash_symbol_type \
   _bfd_generic_copy_link_hash_symbol_type
-#define nlm_bfd_final_link                      _bfd_generic_final_link
-#define nlm_bfd_link_split_section              _bfd_generic_link_split_section
-#define nlm_bfd_link_check_relocs               _bfd_generic_link_check_relocs
+#define nlm_bfd_final_link			_bfd_generic_final_link
+#define nlm_bfd_link_split_section		_bfd_generic_link_split_section
+#define nlm_bfd_link_check_relocs		_bfd_generic_link_check_relocs
 
 /* This structure contains everything that BFD knows about a target.
    It includes things like its byte order, name, what routines to call
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ns32k.h ./bfd/ns32k.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ns32k.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/ns32k.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Header file for ns32k routines.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -22,9 +22,9 @@
 extern bfd_reloc_status_type _bfd_ns32k_relocate_contents   (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *);
 extern bfd_reloc_status_type _bfd_do_ns32k_reloc_contents   (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *, bfd_vma (*) (bfd_byte *, int), void (*) (bfd_vma, bfd_byte *, int));
 extern bfd_reloc_status_type _bfd_ns32k_final_link_relocate (reloc_howto_type *, bfd *, asection *, bfd_byte *, bfd_vma, bfd_vma, bfd_vma);
-extern bfd_vma               _bfd_ns32k_get_displacement    (bfd_byte *, int);
-extern bfd_vma               _bfd_ns32k_get_immediate       (bfd_byte *, int);
-extern void                  _bfd_ns32k_put_displacement    (bfd_vma, bfd_byte *, int);
-extern void                  _bfd_ns32k_put_immediate       (bfd_vma, bfd_byte *, int);
-extern bfd_reloc_status_type _bfd_ns32k_reloc_disp          (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
-extern bfd_reloc_status_type _bfd_ns32k_reloc_imm           (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
+extern bfd_vma		     _bfd_ns32k_get_displacement    (bfd_byte *, int);
+extern bfd_vma		     _bfd_ns32k_get_immediate	    (bfd_byte *, int);
+extern void		     _bfd_ns32k_put_displacement    (bfd_vma, bfd_byte *, int);
+extern void		     _bfd_ns32k_put_immediate	    (bfd_vma, bfd_byte *, int);
+extern bfd_reloc_status_type _bfd_ns32k_reloc_disp	    (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
+extern bfd_reloc_status_type _bfd_ns32k_reloc_imm	    (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ns32knetbsd.c ./bfd/ns32knetbsd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ns32knetbsd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/ns32knetbsd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for NetBSD/ns32k a.out-ish binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -25,7 +25,7 @@
 #define	SEGMENT_SIZE		4096
 
 #define	DEFAULT_ARCH		bfd_arch_ns32k
-#define	DEFAULT_MID 		M_532_NETBSD
+#define	DEFAULT_MID		M_532_NETBSD
 
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
    remove whitespace added here, and thus will fail to concatenate
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/oasys.c ./bfd/oasys.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/oasys.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/oasys.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for oasys objects.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support, <sac@cygnus.com>.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -1129,7 +1129,7 @@ oasys_openr_next_archived_file (bfd *arc
 }
 
 #define oasys_find_nearest_line _bfd_nosymbols_find_nearest_line
-#define oasys_find_line         _bfd_nosymbols_find_line
+#define oasys_find_line		_bfd_nosymbols_find_line
 #define oasys_find_inliner_info _bfd_nosymbols_find_inliner_info
 
 static int
@@ -1155,45 +1155,47 @@ oasys_sizeof_headers (bfd *abfd ATTRIBUT
   return 0;
 }
 
-#define	oasys_close_and_cleanup                    _bfd_generic_close_and_cleanup
-#define oasys_bfd_free_cached_info                 _bfd_generic_bfd_free_cached_info
-#define oasys_slurp_armap                          bfd_true
-#define oasys_slurp_extended_name_table            bfd_true
-#define oasys_construct_extended_name_table        ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_true)
-#define oasys_truncate_arname                      bfd_dont_truncate_arname
-#define oasys_write_armap                          ((bfd_boolean (*) (bfd *, unsigned int, struct orl *, unsigned int, int)) bfd_true)
-#define oasys_read_ar_hdr                          bfd_nullvoidptr
+#define	oasys_close_and_cleanup			   _bfd_generic_close_and_cleanup
+#define oasys_bfd_free_cached_info		   _bfd_generic_bfd_free_cached_info
+#define oasys_slurp_armap			   bfd_true
+#define oasys_slurp_extended_name_table		   bfd_true
+#define oasys_construct_extended_name_table	   ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_true)
+#define oasys_truncate_arname			   bfd_dont_truncate_arname
+#define oasys_write_armap			   ((bfd_boolean (*) (bfd *, unsigned int, struct orl *, unsigned int, int)) bfd_true)
+#define oasys_read_ar_hdr			   bfd_nullvoidptr
 #define oasys_write_ar_hdr ((bfd_boolean (*) (bfd *, bfd *)) bfd_false)
-#define oasys_get_elt_at_index                     _bfd_generic_get_elt_at_index
-#define oasys_update_armap_timestamp               bfd_true
-#define oasys_bfd_is_local_label_name              bfd_generic_is_local_label_name
-#define oasys_bfd_is_target_special_symbol         ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define oasys_get_lineno                           _bfd_nosymbols_get_lineno
+#define oasys_get_elt_at_index			   _bfd_generic_get_elt_at_index
+#define oasys_update_armap_timestamp		   bfd_true
+#define oasys_bfd_is_local_label_name		   bfd_generic_is_local_label_name
+#define oasys_bfd_is_target_special_symbol	   ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
+#define oasys_get_lineno			   _bfd_nosymbols_get_lineno
 #define oasys_get_symbol_version_string		   _bfd_nosymbols_get_symbol_version_string
-#define oasys_bfd_make_debug_symbol                _bfd_nosymbols_bfd_make_debug_symbol
-#define oasys_read_minisymbols                     _bfd_generic_read_minisymbols
-#define oasys_minisymbol_to_symbol                 _bfd_generic_minisymbol_to_symbol
-#define oasys_bfd_reloc_type_lookup                _bfd_norelocs_bfd_reloc_type_lookup
-#define oasys_bfd_reloc_name_lookup          _bfd_norelocs_bfd_reloc_name_lookup
-#define oasys_set_arch_mach                        bfd_default_set_arch_mach
-#define oasys_get_section_contents_in_window       _bfd_generic_get_section_contents_in_window
+#define oasys_bfd_make_debug_symbol		   _bfd_nosymbols_bfd_make_debug_symbol
+#define oasys_read_minisymbols			   _bfd_generic_read_minisymbols
+#define oasys_minisymbol_to_symbol		   _bfd_generic_minisymbol_to_symbol
+#define oasys_bfd_reloc_type_lookup		   _bfd_norelocs_bfd_reloc_type_lookup
+#define oasys_bfd_reloc_name_lookup	     _bfd_norelocs_bfd_reloc_name_lookup
+#define oasys_set_arch_mach			   bfd_default_set_arch_mach
+#define oasys_get_section_contents_in_window	   _bfd_generic_get_section_contents_in_window
 #define oasys_bfd_get_relocated_section_contents   bfd_generic_get_relocated_section_contents
-#define oasys_bfd_relax_section                    bfd_generic_relax_section
-#define oasys_bfd_gc_sections                      bfd_generic_gc_sections
-#define oasys_bfd_lookup_section_flags             bfd_generic_lookup_section_flags
-#define oasys_bfd_merge_sections                   bfd_generic_merge_sections
-#define oasys_bfd_is_group_section                 bfd_generic_is_group_section
-#define oasys_bfd_discard_group                    bfd_generic_discard_group
-#define oasys_section_already_linked               _bfd_generic_section_already_linked
-#define oasys_bfd_define_common_symbol             bfd_generic_define_common_symbol
-#define oasys_bfd_link_hash_table_create           _bfd_generic_link_hash_table_create
-#define oasys_bfd_link_add_symbols                 _bfd_generic_link_add_symbols
-#define oasys_bfd_link_just_syms                   _bfd_generic_link_just_syms
+#define oasys_bfd_relax_section			   bfd_generic_relax_section
+#define oasys_bfd_gc_sections			   bfd_generic_gc_sections
+#define oasys_bfd_lookup_section_flags		   bfd_generic_lookup_section_flags
+#define oasys_bfd_merge_sections		   bfd_generic_merge_sections
+#define oasys_bfd_is_group_section		   bfd_generic_is_group_section
+#define oasys_bfd_discard_group			   bfd_generic_discard_group
+#define oasys_section_already_linked		   _bfd_generic_section_already_linked
+#define oasys_bfd_define_common_symbol		   bfd_generic_define_common_symbol
+#define oasys_bfd_define_start_stop		   bfd_generic_define_start_stop
+#define oasys_bfd_link_hash_table_create	   _bfd_generic_link_hash_table_create
+#define oasys_bfd_link_add_symbols		   _bfd_generic_link_add_symbols
+#define oasys_bfd_link_just_syms		   _bfd_generic_link_just_syms
 #define oasys_bfd_copy_link_hash_symbol_type \
   _bfd_generic_copy_link_hash_symbol_type
-#define oasys_bfd_final_link                       _bfd_generic_final_link
-#define oasys_bfd_link_split_section               _bfd_generic_link_split_section
-#define oasys_bfd_link_check_relocs                _bfd_generic_link_check_relocs
+#define oasys_bfd_final_link			   _bfd_generic_final_link
+#define oasys_bfd_link_split_section		   _bfd_generic_link_split_section
+#define oasys_bfd_link_check_relocs		   _bfd_generic_link_check_relocs
+#define oasys_set_reloc				   _bfd_generic_set_reloc
 
 const bfd_target oasys_vec =
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/opncls.c ./bfd/opncls.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/opncls.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/opncls.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* opncls.c -- open and close a BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Written by Cygnus Support.
 
@@ -167,7 +167,7 @@ FUNCTION
 
 SYNOPSIS
 	bfd *bfd_fopen (const char *filename, const char *target,
-                        const char *mode, int fd);
+			const char *mode, int fd);
 
 DESCRIPTION
 	Open the file @var{filename} with the target @var{target}.
@@ -367,7 +367,7 @@ FUNCTION
 
 SYNOPSIS
 	bfd *bfd_openstreamr (const char * filename, const char * target,
-	                      void * stream);
+			      void * stream);
 
 DESCRIPTION
 	Open a BFD for read access on an existing stdio stream.  When
@@ -415,25 +415,25 @@ FUNCTION
 	bfd_openr_iovec
 
 SYNOPSIS
-        bfd *bfd_openr_iovec (const char *filename, const char *target,
-                              void *(*open_func) (struct bfd *nbfd,
-                                                  void *open_closure),
-                              void *open_closure,
-                              file_ptr (*pread_func) (struct bfd *nbfd,
-                                                      void *stream,
-                                                      void *buf,
-                                                      file_ptr nbytes,
-                                                      file_ptr offset),
-                              int (*close_func) (struct bfd *nbfd,
-                                                 void *stream),
+	bfd *bfd_openr_iovec (const char *filename, const char *target,
+			      void *(*open_func) (struct bfd *nbfd,
+						  void *open_closure),
+			      void *open_closure,
+			      file_ptr (*pread_func) (struct bfd *nbfd,
+						      void *stream,
+						      void *buf,
+						      file_ptr nbytes,
+						      file_ptr offset),
+			      int (*close_func) (struct bfd *nbfd,
+						 void *stream),
 			      int (*stat_func) (struct bfd *abfd,
-					        void *stream,
-					        struct stat *sb));
+						void *stream,
+						struct stat *sb));
 
 DESCRIPTION
-        Create and return a BFD backed by a read-only @var{stream}.
-        The @var{stream} is created using @var{open_func}, accessed using
-        @var{pread_func} and destroyed using @var{close_func}.
+	Create and return a BFD backed by a read-only @var{stream}.
+	The @var{stream} is created using @var{open_func}, accessed using
+	@var{pread_func} and destroyed using @var{close_func}.
 
 	Calls <<bfd_find_target>>, so @var{target} is interpreted as by
 	that function.
@@ -555,8 +555,8 @@ opncls_bmmap (struct bfd *abfd ATTRIBUTE
 	      int prot ATTRIBUTE_UNUSED,
 	      int flags ATTRIBUTE_UNUSED,
 	      file_ptr offset ATTRIBUTE_UNUSED,
-              void **map_addr ATTRIBUTE_UNUSED,
-              bfd_size_type *map_len ATTRIBUTE_UNUSED)
+	      void **map_addr ATTRIBUTE_UNUSED,
+	      bfd_size_type *map_len ATTRIBUTE_UNUSED)
 {
   return (void *) -1;
 }
@@ -726,25 +726,13 @@ RETURNS
 bfd_boolean
 bfd_close (bfd *abfd)
 {
-  bfd_boolean ret;
-
   if (bfd_write_p (abfd))
     {
       if (! BFD_SEND_FMT (abfd, _bfd_write_contents, (abfd)))
 	return FALSE;
     }
 
-  if (! BFD_SEND (abfd, _close_and_cleanup, (abfd)))
-    return FALSE;
-
-  ret = abfd->iovec->bclose (abfd) == 0;
-
-  if (ret)
-    _maybe_make_executable (abfd);
-
-  _bfd_delete_bfd (abfd);
-
-  return ret;
+  return bfd_close_all_done (abfd);
 }
 
 /*
@@ -774,7 +762,10 @@ bfd_close_all_done (bfd *abfd)
 {
   bfd_boolean ret;
 
-  ret = bfd_cache_close (abfd);
+  if (! BFD_SEND (abfd, _close_and_cleanup, (abfd)))
+    return FALSE;
+
+  ret = abfd->iovec->bclose (abfd) == 0;
 
   if (ret)
     _maybe_make_executable (abfd);
@@ -1209,7 +1200,7 @@ bfd_get_debug_link_info_1 (bfd *abfd, vo
   /* PR 17597: avoid reading off the end of the buffer.  */
   crc_offset = strnlen (name, bfd_get_section_size (sect)) + 1;
   crc_offset = (crc_offset + 3) & ~3;
-  if (crc_offset >= bfd_get_section_size (sect))
+  if (crc_offset + 4 > bfd_get_section_size (sect))
     return NULL;
 
   *crc32 = bfd_get_32 (abfd, contents + crc_offset);
@@ -1251,7 +1242,7 @@ FUNCTION
 SYNOPSIS
 	char *bfd_get_alt_debug_link_info (bfd * abfd,
 					   bfd_size_type *buildid_len,
-			                   bfd_byte **buildid_out);
+					   bfd_byte **buildid_out);
 
 DESCRIPTION
 	Fetch the filename and BuildID value for any alternate debuginfo
@@ -1404,12 +1395,12 @@ typedef char *      (* get_func_type) (b
 typedef bfd_boolean (* check_func_type) (const char *, void *);
 
 static char *
-find_separate_debug_file (bfd *           abfd,
-			  const char *    debug_file_directory,
-			  bfd_boolean     include_dirs,
-			  get_func_type   get_func,
+find_separate_debug_file (bfd *		  abfd,
+			  const char *	  debug_file_directory,
+			  bfd_boolean	  include_dirs,
+			  get_func_type	  get_func,
 			  check_func_type check_func,
-			  void *          func_data)
+			  void *	  func_data)
 {
   char *base;
   char *dir;
@@ -1480,16 +1471,16 @@ find_separate_debug_file (bfd *         
 
   debugfile = (char *)
       bfd_malloc (strlen (debug_file_directory) + 1
-                  + (canon_dirlen > dirlen ? canon_dirlen : dirlen)
-                  + strlen (".debug/")
+		  + (canon_dirlen > dirlen ? canon_dirlen : dirlen)
+		  + strlen (".debug/")
 #ifdef EXTRA_DEBUG_ROOT1
 		  + strlen (EXTRA_DEBUG_ROOT1)
 #endif
 #ifdef EXTRA_DEBUG_ROOT2
 		  + strlen (EXTRA_DEBUG_ROOT2)
 #endif
-                  + strlen (base)
-                  + 1);
+		  + strlen (base)
+		  + 1);
   if (debugfile == NULL)
     goto found; /* Actually this returns NULL.  */
 
@@ -1825,6 +1816,7 @@ get_build_id (bfd *abfd)
   Elf_External_Note *enote;
   bfd_byte *contents;
   asection *sect;
+  bfd_size_type size;
 
   BFD_ASSERT (abfd);
 
@@ -1839,8 +1831,9 @@ get_build_id (bfd *abfd)
       return NULL;
     }
 
+  size = bfd_get_section_size (sect);
   /* FIXME: Should we support smaller build-id notes ?  */
-  if (bfd_get_section_size (sect) < 0x24)
+  if (size < 0x24)
     {
       bfd_set_error (bfd_error_invalid_operation);
       return NULL;
@@ -1853,6 +1846,17 @@ get_build_id (bfd *abfd)
       return NULL;
     }
 
+  /* FIXME: Paranoia - allow for compressed build-id sections.
+     Maybe we should complain if this size is different from
+     the one obtained above...  */
+  size = bfd_get_section_size (sect);
+  if (size < sizeof (Elf_External_Note))
+    {
+      bfd_set_error (bfd_error_invalid_operation);
+      free (contents);
+      return NULL;
+    }
+
   enote = (Elf_External_Note *) contents;
   inote.type = H_GET_32 (abfd, enote->type);
   inote.namesz = H_GET_32 (abfd, enote->namesz);
@@ -1864,7 +1868,8 @@ get_build_id (bfd *abfd)
   if (inote.descsz == 0
       || inote.type != NT_GNU_BUILD_ID
       || inote.namesz != 4 /* sizeof "GNU"  */
-      || strcmp (inote.namedata, "GNU") != 0)
+      || strncmp (inote.namedata, "GNU", 4) != 0
+      || size < (12 + BFD_ALIGN (inote.namesz, 4) + inote.descsz))
     {
       free (contents);
       bfd_set_error (bfd_error_invalid_operation);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/osf-core.c ./bfd/osf-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/osf-core.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/osf-core.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for OSF/1 core files.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pc532-mach.c ./bfd/pc532-mach.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pc532-mach.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pc532-mach.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Mach3/532 a.out-ish binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -20,7 +20,7 @@
 
 
 /* Written by Ian Dall
-              19-Apr-94
+	      19-Apr-94
 
    Formerly part of aout-pc532-mach.c. Split out to allow more
    flexibility with multiple formats.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pdp11.c ./bfd/pdp11.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pdp11.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pdp11.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for PDP-11 a.out binaries.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -41,7 +41,7 @@
 #define	SEGMENT__SIZE	TARGET_PAGE_SIZE
 
 #define	DEFAULT_ARCH	bfd_arch_pdp11
-#define	DEFAULT_MID 	M_PDP11
+#define	DEFAULT_MID	M_PDP11
 
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
    remove whitespace added here, and thus will fail to concatenate
@@ -79,7 +79,7 @@ struct pdp11_external_exec
   bfd_byte e_entry[2];		/* Start address.  */
   bfd_byte e_unused[2];		/* Not used.  */
   bfd_byte e_flag[2];		/* Relocation info stripped.  */
-  bfd_byte e_relocatable; 	/* Ugly hack.  */
+  bfd_byte e_relocatable;	/* Ugly hack.  */
 };
 
 #define	EXEC_BYTES_SIZE	(8 * 2)
@@ -243,7 +243,7 @@ struct aout_final_link_info
 
 reloc_howto_type howto_table_pdp11[] =
 {
-  /* type              rs size bsz  pcrel bitpos ovrf                     sf name     part_inpl readmask  setmask    pcdone */
+  /* type	       rs size bsz  pcrel bitpos ovrf			  sf name     part_inpl readmask  setmask    pcdone */
 HOWTO( 0,	       0,  1,  16,  FALSE, 0, complain_overflow_signed,0,"16",	TRUE, 0x0000ffff,0x0000ffff, FALSE),
 HOWTO( 1,	       0,  1,  16,  TRUE,  0, complain_overflow_signed,0,"DISP16",	TRUE, 0x0000ffff,0x0000ffff, FALSE),
 };
@@ -252,9 +252,9 @@ HOWTO( 1,	       0,  1,  16,  TRUE,  0, 
 
 
 static bfd_boolean aout_link_check_archive_element (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, const char *, bfd_boolean *);
-static bfd_boolean aout_link_add_object_symbols    (bfd *, struct bfd_link_info *);
-static bfd_boolean aout_link_add_symbols           (bfd *, struct bfd_link_info *);
-static bfd_boolean aout_link_write_symbols         (struct aout_final_link_info *, bfd *);
+static bfd_boolean aout_link_add_object_symbols	   (bfd *, struct bfd_link_info *);
+static bfd_boolean aout_link_add_symbols	   (bfd *, struct bfd_link_info *);
+static bfd_boolean aout_link_write_symbols	   (struct aout_final_link_info *, bfd *);
 
 
 reloc_howto_type *
@@ -621,12 +621,12 @@ NAME (aout, some_aout_object_p) (bfd *ab
       struct stat stat_buf;
 
       /* The original heuristic doesn't work in some important cases.
-        The a.out file has no information about the text start
-        address.  For files (like kernels) linked to non-standard
-        addresses (ld -Ttext nnn) the entry point may not be between
-        the default text start (obj_textsec(abfd)->vma) and
-        (obj_textsec(abfd)->vma) + text size.  This is not just a mach
-        issue.  Many kernels are loaded at non standard addresses.  */
+	The a.out file has no information about the text start
+	address.  For files (like kernels) linked to non-standard
+	addresses (ld -Ttext nnn) the entry point may not be between
+	the default text start (obj_textsec(abfd)->vma) and
+	(obj_textsec(abfd)->vma) + text size.  This is not just a mach
+	issue.  Many kernels are loaded at non standard addresses.  */
       if (abfd->iostream != NULL
 	  && (abfd->flags & BFD_IN_MEMORY) == 0
 	  && (fstat(fileno((FILE *) (abfd->iostream)), &stat_buf) == 0)
@@ -727,13 +727,13 @@ NAME (aout, machine_type) (enum bfd_arch
 	case 0:
 	case 2000:
 	case bfd_mach_mips3000:
-          arch_flags = M_MIPS1;
+	  arch_flags = M_MIPS1;
 	  break;
 	case bfd_mach_mips4000: /* MIPS3 */
 	case bfd_mach_mips4400:
 	case bfd_mach_mips8000: /* MIPS4 */
 	case bfd_mach_mips6000: /* Real MIPS2: */
-          arch_flags = M_MIPS2;
+	  arch_flags = M_MIPS2;
 	  break;
 	default:
 	  arch_flags = M_UNKNOWN;
@@ -744,7 +744,7 @@ NAME (aout, machine_type) (enum bfd_arch
     case bfd_arch_ns32k:
       switch (machine)
 	{
-	case 0:    		arch_flags = M_NS32532; break;
+	case 0:			arch_flags = M_NS32532; break;
 	case 32032:		arch_flags = M_NS32032; break;
 	case 32532:		arch_flags = M_NS32532; break;
 	default:		arch_flags = M_UNKNOWN; break;
@@ -838,8 +838,8 @@ adjust_o_magic (bfd *abfd, struct intern
   else
     {
       /* The VMA of the .bss section is set by the VMA of the
-         .data section plus the size of the .data section.  We may
-         need to add padding bytes to make this true.  */
+	 .data section plus the size of the .data section.  We may
+	 need to add padding bytes to make this true.  */
       pad = obj_bsssec (abfd)->vma - vma;
       if (pad > 0)
 	{
@@ -887,8 +887,8 @@ adjust_z_magic (bfd *abfd, struct intern
   else
     {
       /* The .text section is being loaded at an unusual address.  We
-         may need to pad it such that the .data section starts at a page
-         boundary.  */
+	 may need to pad it such that the .data section starts at a page
+	 boundary.  */
       if (ztih)
 	text_pad = ((obj_textsec (abfd)->filepos - obj_textsec (abfd)->vma)
 		    & (adata (abfd).page_size - 1));
@@ -1056,11 +1056,11 @@ NAME (aout, adjust_sizes_and_vmas) (bfd 
 	      str;
 	    }),
 	   obj_textsec(abfd)->vma, obj_textsec(abfd)->size,
-	   	obj_textsec(abfd)->alignment_power,
+		obj_textsec(abfd)->alignment_power,
 	   obj_datasec(abfd)->vma, obj_datasec(abfd)->size,
-	   	obj_datasec(abfd)->alignment_power,
+		obj_datasec(abfd)->alignment_power,
 	   obj_bsssec(abfd)->vma, obj_bsssec(abfd)->size,
-	   	obj_bsssec(abfd)->alignment_power);
+		obj_bsssec(abfd)->alignment_power);
 #endif
 #endif
 
@@ -1082,9 +1082,9 @@ NAME (aout, adjust_sizes_and_vmas) (bfd 
 #ifdef BFD_AOUT_DEBUG
   fprintf (stderr, "       text=<%x,%x,%x> data=<%x,%x,%x> bss=<%x,%x>\n",
 	   obj_textsec(abfd)->vma, obj_textsec(abfd)->size,
-	   	obj_textsec(abfd)->filepos,
+		obj_textsec(abfd)->filepos,
 	   obj_datasec(abfd)->vma, obj_datasec(abfd)->size,
-	   	obj_datasec(abfd)->filepos,
+		obj_datasec(abfd)->filepos,
 	   obj_bsssec(abfd)->vma, obj_bsssec(abfd)->size);
 #endif
 
@@ -1738,8 +1738,8 @@ pdp11_aout_swap_reloc_out (bfd *abfd, ar
    to give the true offset from the section */
 
 
-#define MOVE_ADDRESS(ad)       						\
-  if (r_extern) 							\
+#define MOVE_ADDRESS(ad)						\
+  if (r_extern)								\
     {									\
       /* Undefined symbol.  */						\
       cache_ptr->sym_ptr_ptr = symbols + r_index;			\
@@ -1747,7 +1747,7 @@ pdp11_aout_swap_reloc_out (bfd *abfd, ar
     }									\
   else									\
     {									\
-      /* Defined, section relative. replace symbol with pointer to    	\
+      /* Defined, section relative. replace symbol with pointer to	\
 	 symbol which points to section.  */				\
       switch (r_index)							\
 	{								\
@@ -1776,12 +1776,12 @@ pdp11_aout_swap_reloc_out (bfd *abfd, ar
     }
 
 static void
-pdp11_aout_swap_reloc_in (bfd *          abfd,
-			  bfd_byte *     bytes,
-			  arelent *      cache_ptr,
-			  bfd_size_type  offset,
-			  asymbol **     symbols,
-			  bfd_size_type  symcount)
+pdp11_aout_swap_reloc_in (bfd *		 abfd,
+			  bfd_byte *	 bytes,
+			  arelent *	 cache_ptr,
+			  bfd_size_type	 offset,
+			  asymbol **	 symbols,
+			  bfd_size_type	 symcount)
 {
   struct aoutdata *su = &(abfd->tdata.aout_data->a);
   unsigned int r_index;
@@ -1808,7 +1808,7 @@ pdp11_aout_swap_reloc_in (bfd *         
   if (r_extern && r_index > symcount)
     {
       /* We could arrange to return an error, but it might be useful
-         to see the file even if it is bad.  */
+	 to see the file even if it is bad.  */
       r_extern = 0;
       r_index = N_ABS;
     }
@@ -2599,9 +2599,9 @@ aout_link_check_ar_symbols (bfd *abfd,
 	     definition of the symbol is undefined or common.  If the
 	     current definition is common, we have a case in which we
 	     have already seen an object file including
-	         int a;
+		 int a;
 	     and this object file from the archive includes
-	         int a = 5;
+		 int a = 5;
 	     In such a case we must include this object file.
 
 	     FIXME: The SunOS 4.1.3 linker will pull in the archive
@@ -2953,7 +2953,7 @@ aout_link_write_other_symbol (struct bfd
       return TRUE;
     case bfd_link_hash_new:
       /* This can happen for set symbols when sets are not being
-         built.  */
+	 built.  */
       return TRUE;
     case bfd_link_hash_undefined:
       type = N_UNDF | N_EXT;
@@ -3334,10 +3334,10 @@ pdp11_aout_link_input_section (struct ao
 		      if (h != NULL)
 			{
 			  /* We decided to strip this symbol, but it
-                             turns out that we can't.  Note that we
-                             lose the other and desc information here.
-                             I don't think that will ever matter for a
-                             global symbol.  */
+			     turns out that we can't.  Note that we
+			     lose the other and desc information here.
+			     I don't think that will ever matter for a
+			     global symbol.  */
 			  if (h->indx < 0)
 			    {
 			      h->indx = -2;
@@ -3457,8 +3457,8 @@ pdp11_aout_link_input_section (struct ao
 	    }
 
 	  /* Now warn if a global symbol is undefined.  We could not
-             do this earlier, because check_dynamic_reloc might want
-             to skip this reloc.  */
+	     do this earlier, because check_dynamic_reloc might want
+	     to skip this reloc.  */
 	  if (hundef && ! bfd_link_pic (flaginfo->info))
 	    {
 	      const char *name;
@@ -4046,15 +4046,15 @@ aout_link_write_symbols (struct aout_fin
       bfd_boolean copy;
 
       /* We set *symbol_map to 0 above for all symbols.  If it has
-         already been set to -1 for this symbol, it means that we are
-         discarding it because it appears in a duplicate header file.
-         See the N_BINCL code below.  */
+	 already been set to -1 for this symbol, it means that we are
+	 discarding it because it appears in a duplicate header file.
+	 See the N_BINCL code below.  */
       if (*symbol_map == -1)
 	continue;
 
       /* Initialize *symbol_map to -1, which means that the symbol was
-         not copied into the output file.  We will change it later if
-         we do copy the symbol over.  */
+	 not copied into the output file.  We will change it later if
+	 we do copy the symbol over.  */
       *symbol_map = -1;
 
       type = H_GET_8 (input_bfd, sym->e_type);
@@ -4088,7 +4088,7 @@ aout_link_write_symbols (struct aout_fin
 	  h = *sym_hash;
 
 	  /* Use the name from the hash table, in case the symbol was
-             wrapped.  */
+	     wrapped.  */
 	  if (h != NULL)
 	    name = h->root.root.string;
 
@@ -4358,8 +4358,8 @@ aout_link_write_symbols (struct aout_fin
 		}
 
 	      /* If we have already included a header file with the
-                 same value, then replace this one with an N_EXCL
-                 symbol.  */
+		 same value, then replace this one with an N_EXCL
+		 symbol.  */
 	      copy = ! flaginfo->info->keep_memory;
 	      incl_entry = aout_link_includes_lookup (&flaginfo->includes,
 						      name, TRUE, copy);
@@ -4371,7 +4371,7 @@ aout_link_write_symbols (struct aout_fin
 	      if (t == NULL)
 		{
 		  /* This is the first time we have seen this header
-                     file with this set of stabs strings.  */
+		     file with this set of stabs strings.  */
 		  t = bfd_hash_allocate (&flaginfo->includes.root,
 					 sizeof *t);
 		  if (t == NULL)
@@ -4385,8 +4385,8 @@ aout_link_write_symbols (struct aout_fin
 		  int *incl_map;
 
 		  /* This is a duplicate header file.  We must change
-                     it to be an N_EXCL entry, and mark all the
-                     included symbols to prevent outputting them.  */
+		     it to be an N_EXCL entry, and mark all the
+		     included symbols to prevent outputting them.  */
 		  type = N_EXCL;
 
 		  nest = 0;
@@ -4519,11 +4519,11 @@ const bfd_target MY (vec) =
   bfd_getl64, bfd_getl_signed_64, bfd_putl64,
      bfd_getp32, bfd_getp_signed_32, bfd_putp32,
      bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Headers.  */
-    {_bfd_dummy_target, MY_object_p, 		/* bfd_check_format.  */
+    {_bfd_dummy_target, MY_object_p,		/* bfd_check_format.  */
        bfd_generic_archive_p, MY_core_file_p},
     {bfd_false, MY_mkobject,			/* bfd_set_format.  */
        _bfd_generic_mkarchive, bfd_false},
-    {bfd_false, MY_write_object_contents, 	/* bfd_write_contents.  */
+    {bfd_false, MY_write_object_contents,	/* bfd_write_contents.  */
        _bfd_write_archive_contents, bfd_false},
 
      BFD_JUMP_TABLE_GENERIC (MY),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-arm.c ./bfd/pe-arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-arm.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pe-arm.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for ARM PECOFF files.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -36,12 +36,12 @@
 #ifndef TARGET_LITTLE_SYM
 #define TARGET_LITTLE_SYM    arm_pe_le_vec
 #define TARGET_LITTLE_NAME   "pe-arm-little"
-#define TARGET_BIG_SYM       arm_pe_be_vec
-#define TARGET_BIG_NAME      "pe-arm-big"
+#define TARGET_BIG_SYM	     arm_pe_be_vec
+#define TARGET_BIG_NAME	     "pe-arm-big"
 #endif
 
 #define COFF_WITH_PE
-#define PCRELOFFSET          TRUE
+#define PCRELOFFSET	     TRUE
 #define COFF_LONG_SECTION_NAMES
 
 #define COFF_SECTION_ALIGNMENT_ENTRIES \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-arm-wince.c ./bfd/pe-arm-wince.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-arm-wince.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pe-arm-wince.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for ARM WINCE PE files.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pef.c ./bfd/pef.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pef.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pef.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* PEF support for BFD.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -34,40 +34,41 @@
 #define BFD_IO_FUNCS 0
 #endif
 
-#define bfd_pef_close_and_cleanup                   _bfd_generic_close_and_cleanup
-#define bfd_pef_bfd_free_cached_info                _bfd_generic_bfd_free_cached_info
-#define bfd_pef_new_section_hook                    _bfd_generic_new_section_hook
-#define bfd_pef_bfd_is_local_label_name             bfd_generic_is_local_label_name
+#define bfd_pef_close_and_cleanup		    _bfd_generic_close_and_cleanup
+#define bfd_pef_bfd_free_cached_info		    _bfd_generic_bfd_free_cached_info
+#define bfd_pef_new_section_hook		    _bfd_generic_new_section_hook
+#define bfd_pef_bfd_is_local_label_name		    bfd_generic_is_local_label_name
 #define bfd_pef_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define bfd_pef_get_lineno                          _bfd_nosymbols_get_lineno
-#define bfd_pef_find_nearest_line                   _bfd_nosymbols_find_nearest_line
-#define bfd_pef_find_line                           _bfd_nosymbols_find_line
-#define bfd_pef_find_inliner_info                   _bfd_nosymbols_find_inliner_info
+#define bfd_pef_get_lineno			    _bfd_nosymbols_get_lineno
+#define bfd_pef_find_nearest_line		    _bfd_nosymbols_find_nearest_line
+#define bfd_pef_find_line			    _bfd_nosymbols_find_line
+#define bfd_pef_find_inliner_info		    _bfd_nosymbols_find_inliner_info
 #define bfd_pef_get_symbol_version_string	    _bfd_nosymbols_get_symbol_version_string
-#define bfd_pef_bfd_make_debug_symbol               _bfd_nosymbols_bfd_make_debug_symbol
-#define bfd_pef_read_minisymbols                    _bfd_generic_read_minisymbols
-#define bfd_pef_minisymbol_to_symbol                _bfd_generic_minisymbol_to_symbol
-#define bfd_pef_set_arch_mach                       _bfd_generic_set_arch_mach
-#define bfd_pef_get_section_contents                _bfd_generic_get_section_contents
-#define bfd_pef_set_section_contents                _bfd_generic_set_section_contents
+#define bfd_pef_bfd_make_debug_symbol		    _bfd_nosymbols_bfd_make_debug_symbol
+#define bfd_pef_read_minisymbols		    _bfd_generic_read_minisymbols
+#define bfd_pef_minisymbol_to_symbol		    _bfd_generic_minisymbol_to_symbol
+#define bfd_pef_set_arch_mach			    _bfd_generic_set_arch_mach
+#define bfd_pef_get_section_contents		    _bfd_generic_get_section_contents
+#define bfd_pef_set_section_contents		    _bfd_generic_set_section_contents
 #define bfd_pef_bfd_get_relocated_section_contents  bfd_generic_get_relocated_section_contents
-#define bfd_pef_bfd_relax_section                   bfd_generic_relax_section
-#define bfd_pef_bfd_gc_sections                     bfd_generic_gc_sections
-#define bfd_pef_bfd_lookup_section_flags            bfd_generic_lookup_section_flags
-#define bfd_pef_bfd_merge_sections                  bfd_generic_merge_sections
+#define bfd_pef_bfd_relax_section		    bfd_generic_relax_section
+#define bfd_pef_bfd_gc_sections			    bfd_generic_gc_sections
+#define bfd_pef_bfd_lookup_section_flags	    bfd_generic_lookup_section_flags
+#define bfd_pef_bfd_merge_sections		    bfd_generic_merge_sections
 #define bfd_pef_bfd_is_group_section		    bfd_generic_is_group_section
-#define bfd_pef_bfd_discard_group                   bfd_generic_discard_group
-#define bfd_pef_section_already_linked	            _bfd_generic_section_already_linked
-#define bfd_pef_bfd_define_common_symbol            bfd_generic_define_common_symbol
-#define bfd_pef_bfd_link_hash_table_create          _bfd_generic_link_hash_table_create
-#define bfd_pef_bfd_link_add_symbols                _bfd_generic_link_add_symbols
-#define bfd_pef_bfd_link_just_syms                  _bfd_generic_link_just_syms
+#define bfd_pef_bfd_discard_group		    bfd_generic_discard_group
+#define bfd_pef_section_already_linked		    _bfd_generic_section_already_linked
+#define bfd_pef_bfd_define_common_symbol	    bfd_generic_define_common_symbol
+#define bfd_pef_bfd_define_start_stop		    bfd_generic_define_start_stop
+#define bfd_pef_bfd_link_hash_table_create	    _bfd_generic_link_hash_table_create
+#define bfd_pef_bfd_link_add_symbols		    _bfd_generic_link_add_symbols
+#define bfd_pef_bfd_link_just_syms		    _bfd_generic_link_just_syms
 #define bfd_pef_bfd_copy_link_hash_symbol_type \
   _bfd_generic_copy_link_hash_symbol_type
-#define bfd_pef_bfd_final_link                      _bfd_generic_final_link
-#define bfd_pef_bfd_link_split_section              _bfd_generic_link_split_section
-#define bfd_pef_get_section_contents_in_window      _bfd_generic_get_section_contents_in_window
-#define bfd_pef_bfd_link_check_relocs               _bfd_generic_link_check_relocs
+#define bfd_pef_bfd_final_link			    _bfd_generic_final_link
+#define bfd_pef_bfd_link_split_section		    _bfd_generic_link_split_section
+#define bfd_pef_get_section_contents_in_window	    _bfd_generic_get_section_contents_in_window
+#define bfd_pef_bfd_link_check_relocs		    _bfd_generic_link_check_relocs
 
 static int
 bfd_pef_parse_traceback_table (bfd *abfd,
@@ -1056,11 +1057,11 @@ const bfd_target pef_vec =
   NULL
 };
 
-#define bfd_pef_xlib_close_and_cleanup              _bfd_generic_close_and_cleanup
-#define bfd_pef_xlib_bfd_free_cached_info           _bfd_generic_bfd_free_cached_info
-#define bfd_pef_xlib_new_section_hook               _bfd_generic_new_section_hook
-#define bfd_pef_xlib_get_section_contents           _bfd_generic_get_section_contents
-#define bfd_pef_xlib_set_section_contents           _bfd_generic_set_section_contents
+#define bfd_pef_xlib_close_and_cleanup		    _bfd_generic_close_and_cleanup
+#define bfd_pef_xlib_bfd_free_cached_info	    _bfd_generic_bfd_free_cached_info
+#define bfd_pef_xlib_new_section_hook		    _bfd_generic_new_section_hook
+#define bfd_pef_xlib_get_section_contents	    _bfd_generic_get_section_contents
+#define bfd_pef_xlib_set_section_contents	    _bfd_generic_set_section_contents
 #define bfd_pef_xlib_get_section_contents_in_window _bfd_generic_get_section_contents_in_window
 #define bfd_pef_xlib_set_section_contents_in_window _bfd_generic_set_section_contents_in_window
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pef.h ./bfd/pef.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pef.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pef.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* PEF support for BFD.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -182,6 +182,6 @@ int  bfd_pef_print_loader_section   (bfd
 void bfd_pef_print_loader_header    (bfd *, bfd_pef_loader_header *, FILE *);
 int  bfd_pef_parse_imported_library (bfd *, unsigned char *, size_t, bfd_pef_imported_library *);
 int  bfd_pef_parse_imported_symbol  (bfd *, unsigned char *, size_t, bfd_pef_imported_symbol *);
-int  bfd_pef_scan_section           (bfd *, bfd_pef_section *);
-int  bfd_pef_scan_start_address     (bfd *);
-int  bfd_pef_scan                   (bfd *, bfd_pef_header *, bfd_pef_data_struct *);
+int  bfd_pef_scan_section	    (bfd *, bfd_pef_section *);
+int  bfd_pef_scan_start_address	    (bfd *);
+int  bfd_pef_scan		    (bfd *, bfd_pef_header *, bfd_pef_data_struct *);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pef-traceback.h ./bfd/pef-traceback.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pef-traceback.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pef-traceback.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* PowerPC traceback table support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-i386.c ./bfd/pe-i386.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-i386.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pe-i386.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel 386 PECOFF files.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -21,11 +21,11 @@
 #include "sysdep.h"
 #include "bfd.h"
 
-#define TARGET_SYM 		i386_pe_vec
-#define TARGET_NAME 		"pe-i386"
+#define TARGET_SYM		i386_pe_vec
+#define TARGET_NAME		"pe-i386"
 #define COFF_WITH_PE
-#define PCRELOFFSET 		TRUE
-#define TARGET_UNDERSCORE 	'_'
+#define PCRELOFFSET		TRUE
+#define TARGET_UNDERSCORE	'_'
 #define COFF_LONG_SECTION_NAMES
 #define COFF_SUPPORT_GNU_LINKONCE
 #define COFF_LONG_FILENAMES
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-arm.c ./bfd/pei-arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-arm.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pei-arm.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for arm PE IMAGE COFF files.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -30,7 +30,7 @@
 
 #define COFF_IMAGE_WITH_PE
 #define COFF_WITH_PE
-#define PCRELOFFSET        TRUE
+#define PCRELOFFSET	   TRUE
 /* Long section names not allowed in executable images, only object files.  */
 #define COFF_LONG_SECTION_NAMES 0
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-arm-wince.c ./bfd/pei-arm-wince.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-arm-wince.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pei-arm-wince.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for ARM WINCE PE IMAGE COFF files.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/peicode.h ./bfd/peicode.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/peicode.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/peicode.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for the generic parts of PE/PEI, for BFD.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
    Written by Cygnus Solutions.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -24,7 +24,7 @@
 			sac@cygnus.com
 
    PE/PEI rearrangement (and code added): Donn Terry
-                                       Softway Systems, Inc.  */
+				       Softway Systems, Inc.  */
 
 /* Hey look, some documentation [and in a place you expect to find it]!
 
@@ -64,7 +64,7 @@ static bfd_boolean (*pe_saved_coff_bfd_p
 #undef coff_bfd_print_private_bfd_data
 #endif
 
-static bfd_boolean                      pe_print_private_bfd_data (bfd *, void *);
+static bfd_boolean			pe_print_private_bfd_data (bfd *, void *);
 #define coff_bfd_print_private_bfd_data pe_print_private_bfd_data
 
 static bfd_boolean (*pe_saved_coff_bfd_copy_private_bfd_data) (bfd *, bfd *) =
@@ -75,10 +75,10 @@ static bfd_boolean (*pe_saved_coff_bfd_c
 #undef coff_bfd_copy_private_bfd_data
 #endif
 
-static bfd_boolean                     pe_bfd_copy_private_bfd_data (bfd *, bfd *);
+static bfd_boolean		       pe_bfd_copy_private_bfd_data (bfd *, bfd *);
 #define coff_bfd_copy_private_bfd_data pe_bfd_copy_private_bfd_data
 
-#define coff_mkobject      pe_mkobject
+#define coff_mkobject	   pe_mkobject
 #define coff_mkobject_hook pe_mkobject_hook
 
 #ifdef COFF_IMAGE_WITH_PE
@@ -90,17 +90,17 @@ typedef struct
   bfd *			abfd;
   bfd_byte *		data;
   struct bfd_in_memory * bim;
-  unsigned short        magic;
+  unsigned short	magic;
 
   arelent *		reltab;
-  unsigned int 		relcount;
+  unsigned int		relcount;
 
-  coff_symbol_type * 	sym_cache;
-  coff_symbol_type * 	sym_ptr;
-  unsigned int       	sym_index;
+  coff_symbol_type *	sym_cache;
+  coff_symbol_type *	sym_ptr;
+  unsigned int		sym_index;
 
-  unsigned int * 	sym_table;
-  unsigned int * 	table_ptr;
+  unsigned int *	sym_table;
+  unsigned int *	table_ptr;
 
   combined_entry_type * native_syms;
   combined_entry_type * native_ptr;
@@ -110,12 +110,12 @@ typedef struct
 
   unsigned int		sec_index;
 
-  char *                string_table;
-  char *                string_ptr;
+  char *		string_table;
+  char *		string_ptr;
   char *		end_string_ptr;
 
-  SYMENT *              esym_table;
-  SYMENT *              esym_ptr;
+  SYMENT *		esym_table;
+  SYMENT *		esym_ptr;
 
   struct internal_reloc * int_reltab;
 }
@@ -244,7 +244,7 @@ coff_swap_scnhdr_in (bfd * abfd, void * 
   if (scnhdr_int->s_paddr > 0
       && (((scnhdr_int->s_flags & IMAGE_SCN_CNT_UNINITIALIZED_DATA) != 0
 	   && (! bfd_pei_p (abfd) || scnhdr_int->s_size == 0))
-          || (bfd_pei_p (abfd) && (scnhdr_int->s_size > scnhdr_int->s_paddr))))
+	  || (bfd_pei_p (abfd) && (scnhdr_int->s_size > scnhdr_int->s_paddr))))
   /* This code used to set scnhdr_int->s_paddr to 0.  However,
      coff_set_alignment_hook stores s_paddr in virt_size, which
      only works if it correctly holds the virtual size of the
@@ -400,8 +400,8 @@ pe_bfd_copy_private_bfd_data (bfd *ibfd,
       the table in order to for the string lookup code in coffgen/coffcode to
       work.  */
 #define NUM_ILF_RELOCS		8
-#define NUM_ILF_SECTIONS        6
-#define NUM_ILF_SYMS 		(2 + NUM_ILF_SECTIONS)
+#define NUM_ILF_SECTIONS	6
+#define NUM_ILF_SYMS		(2 + NUM_ILF_SECTIONS)
 
 #define SIZEOF_ILF_SYMS		 (NUM_ILF_SYMS * sizeof (* vars.sym_cache))
 #define SIZEOF_ILF_SYM_TABLE	 (NUM_ILF_SYMS * sizeof (* vars.sym_table))
@@ -427,7 +427,7 @@ pe_bfd_copy_private_bfd_data (bfd *ibfd,
 
 #define SIZEOF_IDATA6		(2 + strlen (symbol_name) + 1 + 1)
 #define SIZEOF_IDATA7		(strlen (source_dll) + 1 + 1)
-#define SIZEOF_ILF_SECTIONS     (NUM_ILF_SECTIONS * sizeof (struct coff_section_tdata))
+#define SIZEOF_ILF_SECTIONS	(NUM_ILF_SECTIONS * sizeof (struct coff_section_tdata))
 
 #define ILF_DATA_SIZE				\
     + SIZEOF_ILF_SYMS				\
@@ -449,11 +449,11 @@ pe_bfd_copy_private_bfd_data (bfd *ibfd,
 /* Create an empty relocation against the given symbol.  */
 
 static void
-pe_ILF_make_a_symbol_reloc (pe_ILF_vars *               vars,
-			    bfd_vma                     address,
-			    bfd_reloc_code_real_type    reloc,
-			    struct bfd_symbol **  	sym,
-			    unsigned int                sym_index)
+pe_ILF_make_a_symbol_reloc (pe_ILF_vars *		vars,
+			    bfd_vma			address,
+			    bfd_reloc_code_real_type	reloc,
+			    struct bfd_symbol **	sym,
+			    unsigned int		sym_index)
 {
   arelent * entry;
   struct internal_reloc * internal;
@@ -478,10 +478,10 @@ pe_ILF_make_a_symbol_reloc (pe_ILF_vars 
 /* Create an empty relocation against the given section.  */
 
 static void
-pe_ILF_make_a_reloc (pe_ILF_vars *             vars,
-		     bfd_vma                   address,
+pe_ILF_make_a_reloc (pe_ILF_vars *	       vars,
+		     bfd_vma		       address,
 		     bfd_reloc_code_real_type  reloc,
-		     asection_ptr              sec)
+		     asection_ptr	       sec)
 {
   pe_ILF_make_a_symbol_reloc (vars, address, reloc, sec->symbol_ptr_ptr,
 			      coff_section_data (vars->abfd, sec)->i);
@@ -565,8 +565,8 @@ pe_ILF_make_a_symbol (pe_ILF_vars *  var
      zero initialised.  They are just kept here as reminders.  */
 
   /* Initialise the internal symbol structure.  */
-  ent->u.syment.n_sclass          = sclass;
-  ent->u.syment.n_scnum           = section->target_index;
+  ent->u.syment.n_sclass	  = sclass;
+  ent->u.syment.n_scnum		  = section->target_index;
   ent->u.syment._n._n_n._n_offset = (bfd_hostptr_t) sym;
   ent->is_sym = TRUE;
 
@@ -574,7 +574,7 @@ pe_ILF_make_a_symbol (pe_ILF_vars *  var
   sym->symbol.name    = vars->string_ptr;
   sym->symbol.flags   = BSF_EXPORT | BSF_GLOBAL | extra_flags;
   sym->symbol.section = section;
-  sym->native         = ent;
+  sym->native	      = ent;
 
   * vars->table_ptr = vars->sym_index;
   * vars->sym_ptr_ptr = sym;
@@ -743,21 +743,21 @@ static jump_table jtab[] =
 /* Build a full BFD from the information supplied in a ILF object.  */
 
 static bfd_boolean
-pe_ILF_build_a_bfd (bfd *           abfd,
+pe_ILF_build_a_bfd (bfd *	    abfd,
 		    unsigned int    magic,
-		    char *          symbol_name,
-		    char *          source_dll,
+		    char *	    symbol_name,
+		    char *	    source_dll,
 		    unsigned int    ordinal,
 		    unsigned int    types)
 {
-  bfd_byte *               ptr;
-  pe_ILF_vars              vars;
+  bfd_byte *		   ptr;
+  pe_ILF_vars		   vars;
   struct internal_filehdr  internal_f;
-  unsigned int             import_type;
-  unsigned int             import_name_type;
-  asection_ptr             id4, id5, id6 = NULL, text = NULL;
-  coff_symbol_type **      imp_sym;
-  unsigned int             imp_index;
+  unsigned int		   import_type;
+  unsigned int		   import_name_type;
+  asection_ptr		   id4, id5, id6 = NULL, text = NULL;
+  coff_symbol_type **	   imp_sym;
+  unsigned int		   imp_index;
 
   /* Decode and verify the types field of the ILF structure.  */
   import_type = types & 0x3;
@@ -974,7 +974,7 @@ pe_ILF_build_a_bfd (bfd *           abfd
 
     case IMPORT_CODE:
       /* CODE functions are special, in that they get a trampoline that
-         jumps to the main import symbol.  Create a .text section to hold it.
+	 jumps to the main import symbol.  Create a .text section to hold it.
 	 First we need to look up its contents in the jump table.  */
       for (i = NUM_ENTRIES (jtab); i--;)
 	{
@@ -1124,15 +1124,15 @@ pe_ILF_build_a_bfd (bfd *           abfd
 static const bfd_target *
 pe_ILF_object_p (bfd * abfd)
 {
-  bfd_byte        buffer[14];
-  bfd_byte *      ptr;
-  char *          symbol_name;
-  char *          source_dll;
-  unsigned int    machine;
-  bfd_size_type   size;
-  unsigned int    ordinal;
-  unsigned int    types;
-  unsigned int    magic;
+  bfd_byte	  buffer[14];
+  bfd_byte *	  ptr;
+  char *	  symbol_name;
+  char *	  source_dll;
+  unsigned int	  machine;
+  bfd_size_type	  size;
+  unsigned int	  ordinal;
+  unsigned int	  types;
+  unsigned int	  magic;
 
   /* Upon entry the first six bytes of the ILF header have
       already been read.  Now read the rest of the header.  */
@@ -1303,7 +1303,6 @@ pe_bfd_read_buildid (bfd *abfd)
   bfd_byte *data = 0;
   bfd_size_type dataoff;
   unsigned int i;
-
   bfd_vma addr = extra->DataDirectory[PE_DEBUG_DATA].VirtualAddress;
   bfd_size_type size = extra->DataDirectory[PE_DEBUG_DATA].Size;
 
@@ -1316,7 +1315,7 @@ pe_bfd_read_buildid (bfd *abfd)
   for (section = abfd->sections; section != NULL; section = section->next)
     {
       if ((addr >= section->vma) && (addr < (section->vma + section->size)))
-        break;
+	break;
     }
 
   if (section == NULL)
@@ -1327,14 +1326,17 @@ pe_bfd_read_buildid (bfd *abfd)
 
   dataoff = addr - section->vma;
 
-  /* PR 20605: Make sure that the data is really there.  */
-  if (dataoff + size > section->size)
+  /* PR 20605 and 22373: Make sure that the data is really there.
+     Note - since we are dealing with unsigned quantities we have
+     to be careful to check for potential overflows.  */
+  if (dataoff >= section->size
+      || size > section->size - dataoff)
     {
       _bfd_error_handler (_("%B: Error: Debug Data ends beyond end of debug directory."),
 			  abfd);
       return;
     }
-  
+
   /* Read the whole section. */
   if (!bfd_malloc_and_get_section (abfd, section, &data))
     {
@@ -1353,30 +1355,30 @@ pe_bfd_read_buildid (bfd *abfd)
       _bfd_XXi_swap_debugdir_in (abfd, ext, &idd);
 
       if (idd.Type == PE_IMAGE_DEBUG_TYPE_CODEVIEW)
-        {
-          char buffer[256 + 1];
-          CODEVIEW_INFO *cvinfo = (CODEVIEW_INFO *) buffer;
-
-          /*
-            The debug entry doesn't have to have to be in a section, in which
-            case AddressOfRawData is 0, so always use PointerToRawData.
-          */
-          if (_bfd_XXi_slurp_codeview_record (abfd,
-                                              (file_ptr) idd.PointerToRawData,
-                                              idd.SizeOfData, cvinfo))
-            {
-              struct bfd_build_id* build_id = bfd_alloc (abfd,
-                         sizeof (struct bfd_build_id) + cvinfo->SignatureLength);
-              if (build_id)
-                {
-                  build_id->size = cvinfo->SignatureLength;
-                  memcpy(build_id->data,  cvinfo->Signature,
-                         cvinfo->SignatureLength);
-                  abfd->build_id = build_id;
-                }
-            }
-          break;
-        }
+	{
+	  char buffer[256 + 1];
+	  CODEVIEW_INFO *cvinfo = (CODEVIEW_INFO *) buffer;
+
+	  /*
+	    The debug entry doesn't have to have to be in a section, in which
+	    case AddressOfRawData is 0, so always use PointerToRawData.
+	  */
+	  if (_bfd_XXi_slurp_codeview_record (abfd,
+					      (file_ptr) idd.PointerToRawData,
+					      idd.SizeOfData, cvinfo))
+	    {
+	      struct bfd_build_id* build_id = bfd_alloc (abfd,
+			 sizeof (struct bfd_build_id) + cvinfo->SignatureLength);
+	      if (build_id)
+		{
+		  build_id->size = cvinfo->SignatureLength;
+		  memcpy(build_id->data,  cvinfo->Signature,
+			 cvinfo->SignatureLength);
+		  abfd->build_id = build_id;
+		}
+	    }
+	  break;
+	}
     }
 }
 
@@ -1486,9 +1488,9 @@ pe_bfd_object_p (bfd * abfd)
 
 
   result = coff_real_object_p (abfd, internal_f.f_nscns, &internal_f,
-                               (opt_hdr_size != 0
-                                ? &internal_a
-                                : (struct internal_aouthdr *) NULL));
+			       (opt_hdr_size != 0
+				? &internal_a
+				: (struct internal_aouthdr *) NULL));
 
 
   if (result)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-i386.c ./bfd/pei-i386.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-i386.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pei-i386.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel 386 PE IMAGE COFF files.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -21,12 +21,12 @@
 #include "sysdep.h"
 #include "bfd.h"
 
-#define TARGET_SYM 		i386_pei_vec
-#define TARGET_NAME 		"pei-i386"
+#define TARGET_SYM		i386_pei_vec
+#define TARGET_NAME		"pei-i386"
 #define COFF_IMAGE_WITH_PE
 #define COFF_WITH_PE
-#define PCRELOFFSET 		TRUE
-#define TARGET_UNDERSCORE 	'_'
+#define PCRELOFFSET		TRUE
+#define TARGET_UNDERSCORE	'_'
 /* Long section names not allowed in executable images, only object files.  */
 #define COFF_LONG_SECTION_NAMES 0
 #define COFF_SUPPORT_GNU_LINKONCE
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-ia64.c ./bfd/pei-ia64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-ia64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pei-ia64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for HP/Intel IA-64 PE IMAGE COFF files.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Contributed by David Mosberger <davidm@hpl.hp.com>
 
    This implementation only supports objcopy to ouput IA-64 PE IMAGE COFF
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-mcore.c ./bfd/pei-mcore.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-mcore.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pei-mcore.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for MCore PECOFF files.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -30,7 +30,7 @@
 
 #define COFF_IMAGE_WITH_PE
 #define COFF_WITH_PE
-#define PCRELOFFSET        TRUE
+#define PCRELOFFSET	   TRUE
 /* Long section names not allowed in executable images, only object files.  */
 #define COFF_LONG_SECTION_NAMES 0
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-mips.c ./bfd/pei-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-mips.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pei-mips.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for MIPS PE IMAGE COFF files.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-ppc.c ./bfd/pei-ppc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-ppc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pei-ppc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for PowerPC PE IMAGE COFF files.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-sh.c ./bfd/pei-sh.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-sh.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pei-sh.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for SH PE IMAGE COFF files.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-x86_64.c ./bfd/pei-x86_64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pei-x86_64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pei-x86_64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel 386 PE IMAGE COFF files.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -23,16 +23,16 @@
 #include "sysdep.h"
 #include "bfd.h"
 
-#define TARGET_SYM 		x86_64_pei_vec
-#define TARGET_NAME 		"pei-x86-64"
+#define TARGET_SYM		x86_64_pei_vec
+#define TARGET_NAME		"pei-x86-64"
 #define COFF_IMAGE_WITH_PE
 #define COFF_WITH_PE
 #define COFF_WITH_pex64
-#define PCRELOFFSET 		TRUE
+#define PCRELOFFSET		TRUE
 #if defined (USE_MINGW64_LEADING_UNDERSCORES)
-#define TARGET_UNDERSCORE 	'_'
+#define TARGET_UNDERSCORE	'_'
 #else
-#define TARGET_UNDERSCORE 	0
+#define TARGET_UNDERSCORE	0
 #endif
 /* Long section names not allowed in executable images, only object files.  */
 #define COFF_LONG_SECTION_NAMES 0
@@ -162,7 +162,7 @@ pex64_xdata_print_uwd_codes (FILE *file,
       && PEX64_UNWCODE_CODE (ui->rawUnwindCodes[1]) == UWOP_EPILOG)
     {
       /* Display epilog opcode (whose docoding is not fully documented).
-         Looks to be designed to speed-up unwinding, as there is no need
+	 Looks to be designed to speed-up unwinding, as there is no need
 	 to decode instruction flow if outside an epilog.  */
       unsigned int func_size = rf->rva_EndAddress - rf->rva_BeginAddress;
 
@@ -563,7 +563,7 @@ pex64_bfd_print_pdata_section (bfd *abfd
 	  seen_error = 1;
 	  fprintf (file, "  has %s begin address as predecessor\n",
 	    (rf.rva_BeginAddress < prev_beginaddress ? "smaller" : "same"));
-        }
+	}
       prev_beginaddress = rf.rva_BeginAddress;
       /* Now we check for negative addresses.  */
       if ((prev_beginaddress & 0x80000000) != 0)
@@ -651,7 +651,7 @@ pex64_bfd_print_pdata_section (bfd *abfd
 	/* We are probably into the padding of the section now.  */
 	break;
       if (i == 0)
-        fprintf (file, _("\nDump of %s\n"), xdata_section->name);
+	fprintf (file, _("\nDump of %s\n"), xdata_section->name);
 
       fputc (' ', file);
       fprintf_vma (file, rf.rva_UnwindData + imagebase);
@@ -704,7 +704,7 @@ pex64_bfd_print_pdata_section (bfd *abfd
 
 	      /* Search for the current entry in the sorted array.  */
 	      p = (bfd_vma *)
-	          bsearch (&rf.rva_UnwindData, xdata_arr,
+		  bsearch (&rf.rva_UnwindData, xdata_arr,
 			   (size_t) xdata_arr_cnt, sizeof (bfd_vma),
 			   sort_xdata_arr);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-mcore.c ./bfd/pe-mcore.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-mcore.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pe-mcore.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for MCore PECOFF files.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -22,14 +22,14 @@
 #include "bfd.h"
 
 #ifndef TARGET_BIG_SYM
-#define TARGET_BIG_SYM       mcore_pe_be_vec
-#define TARGET_BIG_NAME      "pe-mcore-big"
+#define TARGET_BIG_SYM	     mcore_pe_be_vec
+#define TARGET_BIG_NAME	     "pe-mcore-big"
 #define TARGET_LITTLE_SYM    mcore_pe_le_vec
 #define TARGET_LITTLE_NAME   "pe-mcore-little"
 #endif
 
 #define COFF_WITH_PE
-#define PCRELOFFSET          TRUE
+#define PCRELOFFSET	     TRUE
 #define COFF_LONG_SECTION_NAMES
 
 #define MCORE_PE
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-mips.c ./bfd/pe-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-mips.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pe-mips.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for MIPS PE COFF files.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Modified from coff-i386.c by DJ Delorie, dj@cygnus.com
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -210,7 +210,7 @@ static reloc_howto_type howto_table[] =
 	 FALSE,			/* PC_relative.  */
 	 0,			/* Bitpos. */
 	 complain_overflow_dont, /* Complain_on_overflow. */
-	 			/* This needs complex overflow
+				/* This needs complex overflow
 				   detection, because the upper four
 				   bits must match the PC.  */
 	 coff_mips_reloc,	/* Special_function. */
@@ -309,34 +309,34 @@ static reloc_howto_type howto_table[] =
   EMPTY_HOWTO (31),
   EMPTY_HOWTO (32),
   EMPTY_HOWTO (33),
-  HOWTO (MIPS_R_RVA,            /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,	                /* Bitsize.  */
-	 FALSE,	                /* PC_relative.  */
-	 0,	                /* Bitpos. */
+  HOWTO (MIPS_R_RVA,		/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 32,			/* Bitsize.  */
+	 FALSE,			/* PC_relative.  */
+	 0,			/* Bitpos. */
 	 complain_overflow_bitfield, /* Complain_on_overflow. */
-	 coff_mips_reloc,       /* Special_function. */
-	 "rva32",	        /* Name. */
-	 TRUE,	                /* Partial_inplace. */
-	 0xffffffff,            /* Src_mask. */
-	 0xffffffff,            /* Dst_mask. */
-	 FALSE),                /* Pcrel_offset. */
+	 coff_mips_reloc,	/* Special_function. */
+	 "rva32",		/* Name. */
+	 TRUE,			/* Partial_inplace. */
+	 0xffffffff,		/* Src_mask. */
+	 0xffffffff,		/* Dst_mask. */
+	 FALSE),		/* Pcrel_offset. */
   EMPTY_HOWTO (35),
   EMPTY_HOWTO (36),
-  HOWTO (MIPS_R_PAIR,           /* Type.  */
-	 0,	                /* Rightshift.  */
-	 2,	                /* Size (0 = byte, 1 = short, 2 = long).  */
-	 32,	                /* Bitsize.  */
-	 FALSE,	                /* PC_relative.  */
-	 0,	                /* Bitpos. */
+  HOWTO (MIPS_R_PAIR,		/* Type.  */
+	 0,			/* Rightshift.  */
+	 2,			/* Size (0 = byte, 1 = short, 2 = long).  */
+	 32,			/* Bitsize.  */
+	 FALSE,			/* PC_relative.  */
+	 0,			/* Bitpos. */
 	 complain_overflow_bitfield, /* Complain_on_overflow. */
-	 coff_mips_reloc,       /* Special_function. */
-	 "PAIR",	        /* Name. */
-	 TRUE,	                /* Partial_inplace. */
-	 0xffffffff,            /* Src_mask. */
-	 0xffffffff,            /* Dst_mask. */
-	 FALSE),                /* Pcrel_offset. */
+	 coff_mips_reloc,	/* Special_function. */
+	 "PAIR",		/* Name. */
+	 TRUE,			/* Partial_inplace. */
+	 0xffffffff,		/* Src_mask. */
+	 0xffffffff,		/* Dst_mask. */
+	 FALSE),		/* Pcrel_offset. */
 };
 
 #define NUM_HOWTOS (sizeof (howto_table) / sizeof (howto_table[0]))
@@ -344,7 +344,7 @@ static reloc_howto_type howto_table[] =
 /* Turn a howto into a reloc nunmber.  */
 
 #define SELECT_RELOC(x, howto) { x.r_type = howto->type; }
-#define BADMAG(x)              MIPSBADMAG (x)
+#define BADMAG(x)	       MIPSBADMAG (x)
 
 /* Customize coffcode.h.  */
 #define MIPS 1
@@ -373,7 +373,7 @@ static reloc_howto_type howto_table[] =
     coff_symbol_type *coffsym = NULL;				\
     if (ptr && bfd_asymbol_bfd (ptr) != abfd)			\
       coffsym = (obj_symbols (abfd)				\
-	         + (cache_ptr->sym_ptr_ptr - symbols));		\
+		 + (cache_ptr->sym_ptr_ptr - symbols));		\
     else if (ptr)						\
       coffsym = coff_symbol_from (ptr);				\
     if (coffsym != NULL						\
@@ -447,11 +447,11 @@ coff_mips_rtype_to_howto (bfd *abfd ATTR
       *addendp -= 4;
 
       /* If the symbol is defined, then the generic code is going to
-         add back the symbol value in order to cancel out an
-         adjustment it made to the addend.  However, we set the addend
-         to 0 at the start of this function.  We need to adjust here,
-         to avoid the adjustment the generic code will make.  FIXME:
-         This is getting a bit hackish.  */
+	 add back the symbol value in order to cancel out an
+	 adjustment it made to the addend.  However, we set the addend
+	 to 0 at the start of this function.  We need to adjust here,
+	 to avoid the adjustment the generic code will make.  FIXME:
+	 This is getting a bit hackish.  */
       if (sym != NULL && sym->n_scnum != 0)
 	*addendp -= sym->n_value;
     }
@@ -463,7 +463,7 @@ coff_mips_rtype_to_howto (bfd *abfd ATTR
   return howto;
 }
 
-#define coff_rtype_to_howto         coff_mips_rtype_to_howto
+#define coff_rtype_to_howto	    coff_mips_rtype_to_howto
 #define coff_bfd_reloc_type_lookup  coff_mips_reloc_type_lookup
 #define coff_bfd_reloc_name_lookup coff_mips_reloc_name_lookup
 
@@ -641,9 +641,9 @@ coff_pe_mips_relocate_section (bfd *outp
 	}
 
       /* COFF treats common symbols in one of two ways.  Either the
-         size of the symbol is included in the section contents, or it
-         is not.  We assume that the size is not included, and force
-         the rtype_to_howto function to adjust the addend as needed.  */
+	 size of the symbol is included in the section contents, or it
+	 is not.  We assume that the size is not included, and force
+	 the rtype_to_howto function to adjust the addend as needed.  */
 
       if (sym != NULL && sym->n_scnum != 0)
 	addend = - sym->n_value;
@@ -656,9 +656,9 @@ coff_pe_mips_relocate_section (bfd *outp
 	return FALSE;
 
       /* If we are doing a relocatable link, then we can just ignore
-         a PC relative reloc that is pcrel_offset.  It will already
-         have the correct value.  If this is not a relocatable link,
-         then we should ignore the symbol value.  */
+	 a PC relative reloc that is pcrel_offset.  It will already
+	 have the correct value.  If this is not a relocatable link,
+	 then we should ignore the symbol value.  */
       if (howto->pc_relative && howto->pcrel_offset)
 	{
 	  if (bfd_link_relocatable (info))
@@ -681,7 +681,7 @@ coff_pe_mips_relocate_section (bfd *outp
 	  else
 	    {
 	      sec = sections[symndx];
-              val = (sec->output_section->vma
+	      val = (sec->output_section->vma
 		     + sec->output_offset
 		     + sym->n_value);
 	      if (! obj_pe (input_bfd))
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-ppc.c ./bfd/pe-ppc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-ppc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pe-ppc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for PowerPC PECOFF files.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-sh.c ./bfd/pe-sh.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-sh.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pe-sh.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for SH PECOFF files.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-x86_64.c ./bfd/pe-x86_64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/pe-x86_64.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/pe-x86_64.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for Intel/AMD x86_64 PECOFF files.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -23,16 +23,16 @@
 #include "sysdep.h"
 #include "bfd.h"
 
-#define TARGET_SYM 		x86_64_pe_vec
-#define TARGET_NAME 		"pe-x86-64"
+#define TARGET_SYM		x86_64_pe_vec
+#define TARGET_NAME		"pe-x86-64"
 #define COFF_WITH_PE
 #define COFF_WITH_pex64
 #define COFF_WITH_PE_BIGOBJ
-#define PCRELOFFSET 		TRUE
+#define PCRELOFFSET		TRUE
 #if defined (USE_MINGW64_LEADING_UNDERSCORES)
-#define TARGET_UNDERSCORE 	'_'
+#define TARGET_UNDERSCORE	'_'
 #else
-#define TARGET_UNDERSCORE 	0
+#define TARGET_UNDERSCORE	0
 #endif
 #define COFF_LONG_SECTION_NAMES
 #define COFF_SUPPORT_GNU_LINKONCE
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/peXXigen.c ./bfd/peXXigen.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/peXXigen.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/peXXigen.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for the generic parts of PE/PEI; the common executable parts.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
    Written by Cygnus Solutions.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -294,7 +294,7 @@ _bfd_XXi_swap_aux_in (bfd *	abfd,
 		      int       in_class,
 		      int	indx ATTRIBUTE_UNUSED,
 		      int	numaux ATTRIBUTE_UNUSED,
-		      void * 	in1)
+		      void *	in1)
 {
   AUXENT *ext = (AUXENT *) ext1;
   union internal_auxent *in = (union internal_auxent *) in1;
@@ -529,7 +529,7 @@ _bfd_XXi_swap_aouthdr_in (bfd * abfd,
       {
 	/* xgettext:c-format */
 	_bfd_error_handler
-	  (_("%B: aout header specifies an invalid number of data-directory entries: %d"),
+	  (_("%B: aout header specifies an invalid number of data-directory entries: %ld"),
 	   abfd, a->NumberOfRvaAndSizes);
 	bfd_set_error (bfd_error_bad_value);
 
@@ -540,7 +540,7 @@ _bfd_XXi_swap_aouthdr_in (bfd * abfd,
 
     for (idx = 0; idx < a->NumberOfRvaAndSizes; idx++)
       {
-        /* If data directory is empty, rva also should be 0.  */
+	/* If data directory is empty, rva also should be 0.  */
 	int size =
 	  H_GET_32 (abfd, src->DataDirectory[idx][1]);
 
@@ -974,8 +974,8 @@ _bfd_XXi_swap_scnhdr_out (bfd * abfd, vo
 	}
       else
        {
-         ps = 0;
-         ss = scnhdr_int->s_size;
+	 ps = 0;
+	 ss = scnhdr_int->s_size;
        }
     }
   else
@@ -1018,7 +1018,7 @@ _bfd_XXi_swap_scnhdr_out (bfd * abfd, vo
 
     typedef struct
     {
-      const char * 	section_name;
+      const char *	section_name;
       unsigned long	must_have;
     }
     pe_required_section_flags;
@@ -1094,9 +1094,9 @@ _bfd_XXi_swap_scnhdr_out (bfd * abfd, vo
 	}
 
       /* Although we could encode 0xffff relocs here, we do not, to be
-         consistent with other parts of bfd. Also it lets us warn, as
-         we should never see 0xffff here w/o having the overflow flag
-         set.  */
+	 consistent with other parts of bfd. Also it lets us warn, as
+	 we should never see 0xffff here w/o having the overflow flag
+	 set.  */
       if (scnhdr_int->s_nreloc < 0xffff)
 	H_PUT_16 (abfd, scnhdr_int->s_nreloc, scnhdr_ext->s_nreloc);
       else
@@ -1169,8 +1169,8 @@ _bfd_XXi_slurp_codeview_record (bfd * ab
       cvinfo->Age = H_GET_32(abfd, cvinfo70->Age);
 
       /* A GUID consists of 4,2,2 byte values in little-endian order, followed
-         by 8 single bytes.  Byte swap them so we can conveniently treat the GUID
-         as 16 bytes in big-endian order.  */
+	 by 8 single bytes.  Byte swap them so we can conveniently treat the GUID
+	 as 16 bytes in big-endian order.  */
       bfd_putb32 (bfd_getl32 (cvinfo70->Signature), cvinfo->Signature);
       bfd_putb16 (bfd_getl16 (&(cvinfo70->Signature[4])), &(cvinfo->Signature[4]));
       bfd_putb16 (bfd_getl16 (&(cvinfo70->Signature[6])), &(cvinfo->Signature[6]));
@@ -1182,7 +1182,7 @@ _bfd_XXi_slurp_codeview_record (bfd * ab
       return cvinfo;
     }
   else if ((cvinfo->CVSignature == CVINFO_PDB20_CVSIGNATURE)
-           && (length > sizeof (CV_INFO_PDB20)))
+	   && (length > sizeof (CV_INFO_PDB20)))
     {
       CV_INFO_PDB20 *cvinfo20 = (CV_INFO_PDB20 *)(buffer);
       cvinfo->Age = H_GET_32(abfd, cvinfo20->Age);
@@ -1309,12 +1309,12 @@ pe_print_idata (bfd * abfd, void * vfile
 	  return TRUE;
 	}
       else if (!(section->flags & SEC_HAS_CONTENTS))
-        {
+	{
 	  fprintf (file,
 		   _("\nThere is an import table in %s, but that section has no contents\n"),
 		   section->name);
 	  return TRUE;
-        }
+	}
     }
 
   /* xgettext:c-format */
@@ -1349,11 +1349,11 @@ pe_print_idata (bfd * abfd, void * vfile
       offset = abfd->start_address - rel_section->vma;
 
       if (offset >= rel_section->size || offset + 8 > rel_section->size)
-        {
-          if (data != NULL)
-            free (data);
-          return FALSE;
-        }
+	{
+	  if (data != NULL)
+	    free (data);
+	  return FALSE;
+	}
 
       start_address = bfd_get_32 (abfd, data + offset);
       loadable_toc_address = bfd_get_32 (abfd, data + offset + 4);
@@ -1425,13 +1425,18 @@ pe_print_idata (bfd * abfd, void * vfile
 	break;
 
       if (dll_name - adj >= section->size)
-        break;
+	break;
 
       dll = (char *) data + dll_name - adj;
       /* PR 17512 file: 078-12277-0.004.  */
       bfd_size_type maxlen = (char *)(data + datasize) - dll - 1;
       fprintf (file, _("\n\tDLL Name: %.*s\n"), (int) maxlen, dll);
 
+      /* PR 21546: When the Hint Address is zero,
+	 we try the First Thunk instead.  */
+      if (hint_addr == 0)
+	hint_addr = first_thunk;
+
       if (hint_addr != 0)
 	{
 	  bfd_byte *ft_data;
@@ -1509,7 +1514,7 @@ pe_print_idata (bfd * abfd, void * vfile
 			 member_high, member,
 			 WithoutHighBit (member_high), member);
 	      /* PR binutils/17512: Handle corrupt PE data.  */
-	      else if (amt + 2 >= datasize)
+	      else if (amt >= datasize || amt + 2 >= datasize)
 		fprintf (file, _("\t<corrupt: 0x%04lx>"), member);
 	      else
 		{
@@ -1543,11 +1548,12 @@ pe_print_idata (bfd * abfd, void * vfile
 		break;
 
 	      amt = member - adj;
+
 	      if (HighBitSet (member))
 		fprintf (file, "\t%04lx\t %4lu  <none>",
 			 member, WithoutHighBit (member));
 	      /* PR binutils/17512: Handle corrupt PE data.  */
-	      else if (amt + 2 >= datasize)
+	      else if (amt >= datasize || amt + 2 >= datasize)
 		fprintf (file, _("\t<corrupt: 0x%04lx>"), member);
 	      else
 		{
@@ -1597,14 +1603,14 @@ pe_print_edata (bfd * abfd, void * vfile
   bfd_vma       adj;
   struct EDT_type
   {
-    long export_flags;          /* Reserved - should be zero.  */
+    long export_flags;		/* Reserved - should be zero.  */
     long time_stamp;
     short major_ver;
     short minor_ver;
-    bfd_vma name;               /* RVA - relative to image base.  */
-    long base;                  /* Ordinal base.  */
+    bfd_vma name;		/* RVA - relative to image base.  */
+    long base;			/* Ordinal base.  */
     unsigned long num_functions;/* Number in the export address table.  */
-    unsigned long num_names;    /* Number in the name pointer table.  */
+    unsigned long num_names;	/* Number in the name pointer table.  */
     bfd_vma eat_addr;		/* RVA to the export address table.  */
     bfd_vma npt_addr;		/* RVA to the Export Name Pointer Table.  */
     bfd_vma ot_addr;		/* RVA to the Ordinal Table.  */
@@ -1645,12 +1651,12 @@ pe_print_edata (bfd * abfd, void * vfile
 	  return TRUE;
 	}
       else if (!(section->flags & SEC_HAS_CONTENTS))
-        {
+	{
 	  fprintf (file,
 		   _("\nThere is an export table in %s, but that section has no contents\n"),
 		   section->name);
 	  return TRUE;
-        }
+	}
 
       dataoff = addr - section->vma;
       datasize = extra->DataDirectory[PE_EXPORT_TABLE].Size;
@@ -1686,17 +1692,17 @@ pe_print_edata (bfd * abfd, void * vfile
     return FALSE;
 
   /* Go get Export Directory Table.  */
-  edt.export_flags   = bfd_get_32 (abfd, data +  0);
-  edt.time_stamp     = bfd_get_32 (abfd, data +  4);
-  edt.major_ver      = bfd_get_16 (abfd, data +  8);
-  edt.minor_ver      = bfd_get_16 (abfd, data + 10);
-  edt.name           = bfd_get_32 (abfd, data + 12);
-  edt.base           = bfd_get_32 (abfd, data + 16);
+  edt.export_flags   = bfd_get_32 (abfd, data +	 0);
+  edt.time_stamp     = bfd_get_32 (abfd, data +	 4);
+  edt.major_ver	     = bfd_get_16 (abfd, data +	 8);
+  edt.minor_ver	     = bfd_get_16 (abfd, data + 10);
+  edt.name	     = bfd_get_32 (abfd, data + 12);
+  edt.base	     = bfd_get_32 (abfd, data + 16);
   edt.num_functions  = bfd_get_32 (abfd, data + 20);
-  edt.num_names      = bfd_get_32 (abfd, data + 24);
-  edt.eat_addr       = bfd_get_32 (abfd, data + 28);
-  edt.npt_addr       = bfd_get_32 (abfd, data + 32);
-  edt.ot_addr        = bfd_get_32 (abfd, data + 36);
+  edt.num_names	     = bfd_get_32 (abfd, data + 24);
+  edt.eat_addr	     = bfd_get_32 (abfd, data + 28);
+  edt.npt_addr	     = bfd_get_32 (abfd, data + 32);
+  edt.ot_addr	     = bfd_get_32 (abfd, data + 36);
 
   adj = section->vma - extra->ImageBase + dataoff;
 
@@ -1762,8 +1768,8 @@ pe_print_edata (bfd * abfd, void * vfile
      forward the call to another dll. Something like:
       typedef union
       {
-        long export_rva;
-        long forwarder_rva;
+	long export_rva;
+	long forwarder_rva;
       } export_address_table_entry;  */
 
   fprintf (file,
@@ -1947,10 +1953,10 @@ pe_print_pdata (bfd * abfd, void * vfile
       if (i + PDATA_ROW_SIZE > stop)
 	break;
 
-      begin_addr      = GET_PDATA_ENTRY (abfd, data + i     );
-      end_addr        = GET_PDATA_ENTRY (abfd, data + i +  4);
+      begin_addr      = GET_PDATA_ENTRY (abfd, data + i	    );
+      end_addr	      = GET_PDATA_ENTRY (abfd, data + i +  4);
       eh_handler      = GET_PDATA_ENTRY (abfd, data + i +  8);
-      eh_data         = GET_PDATA_ENTRY (abfd, data + i + 12);
+      eh_data	      = GET_PDATA_ENTRY (abfd, data + i + 12);
       prolog_end_addr = GET_PDATA_ENTRY (abfd, data + i + 16);
 
       if (begin_addr == 0 && end_addr == 0 && eh_handler == 0
@@ -2013,7 +2019,7 @@ pe_print_pdata (bfd * abfd, void * vfile
 
 typedef struct sym_cache
 {
-  int        symcount;
+  int	     symcount;
   asymbol ** syms;
 } sym_cache;
 
@@ -2148,8 +2154,8 @@ _bfd_XX_print_ce_compressed_pdata (bfd *
       fprintf (file, "%2d  %2d   ", flag32bit, exception_flag);
 
       /* Get the exception handler's address and the data passed from the
-         .text section. This is really the data that belongs with the .pdata
-         but got "compressed" out for the ARM and SH4 architectures.  */
+	 .text section. This is really the data that belongs with the .pdata
+	 but got "compressed" out for the ARM and SH4 architectures.  */
       tsection = bfd_get_section_by_name (abfd, ".text");
       if (tsection && coff_section_data (abfd, tsection)
 	  && pei_section_data (abfd, tsection))
@@ -2255,7 +2261,7 @@ pe_print_reloc (bfd * abfd, void * vfile
 	       _("\nVirtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n"),
 	       (unsigned long) virtual_address, size, size, number);
 
-      chunk_end = p + size;
+      chunk_end = p - 8 + size;
       if (chunk_end > end)
 	chunk_end = end;
       j = 0;
@@ -2316,13 +2322,13 @@ rsrc_print_resource_directory (FILE * , 
    or section_end + 1 upon failure.  */
 
 static bfd_byte *
-rsrc_print_resource_entries (FILE *         file,
-			     bfd *          abfd,
+rsrc_print_resource_entries (FILE *	    file,
+			     bfd *	    abfd,
 			     unsigned int   indent,
 			     bfd_boolean    is_name,
-			     bfd_byte *     data,
+			     bfd_byte *	    data,
 			     rsrc_regions * regions,
-			     bfd_vma        rva_bias)
+			     bfd_vma	    rva_bias)
 {
   unsigned long entry, addr, size;
   bfd_byte * leaf;
@@ -2437,12 +2443,12 @@ rsrc_print_resource_entries (FILE *     
 #define min(a,b) ((a) < (b) ? (a) : (b))
 
 static bfd_byte *
-rsrc_print_resource_directory (FILE *         file,
-			       bfd *          abfd,
+rsrc_print_resource_directory (FILE *	      file,
+			       bfd *	      abfd,
 			       unsigned int   indent,
 			       bfd_byte *     data,
 			       rsrc_regions * regions,
-			       bfd_vma        rva_bias)
+			       bfd_vma	      rva_bias)
 {
   unsigned int num_names, num_ids;
   bfd_byte * highest_data = data;
@@ -2633,27 +2639,27 @@ pe_print_debugdata (bfd * abfd, void * v
   for (section = abfd->sections; section != NULL; section = section->next)
     {
       if ((addr >= section->vma) && (addr < (section->vma + section->size)))
-        break;
+	break;
     }
 
   if (section == NULL)
     {
       fprintf (file,
-               _("\nThere is a debug directory, but the section containing it could not be found\n"));
+	       _("\nThere is a debug directory, but the section containing it could not be found\n"));
       return TRUE;
     }
   else if (!(section->flags & SEC_HAS_CONTENTS))
     {
       fprintf (file,
-               _("\nThere is a debug directory in %s, but that section has no contents\n"),
-               section->name);
+	       _("\nThere is a debug directory in %s, but that section has no contents\n"),
+	       section->name);
       return TRUE;
     }
   else if (section->size < size)
     {
       fprintf (file,
-               _("\nError: section %s contains the debug data starting address but it is too small\n"),
-               section->name);
+	       _("\nError: section %s contains the debug data starting address but it is too small\n"),
+	       section->name);
       return FALSE;
     }
 
@@ -2689,43 +2695,43 @@ pe_print_debugdata (bfd * abfd, void * v
       _bfd_XXi_swap_debugdir_in (abfd, ext, &idd);
 
       if ((idd.Type) >= IMAGE_NUMBEROF_DEBUG_TYPES)
-        type_name = debug_type_names[0];
+	type_name = debug_type_names[0];
       else
-        type_name = debug_type_names[idd.Type];
+	type_name = debug_type_names[idd.Type];
 
       fprintf (file, " %2ld  %14s %08lx %08lx %08lx\n",
 	       idd.Type, type_name, idd.SizeOfData,
 	       idd.AddressOfRawData, idd.PointerToRawData);
 
       if (idd.Type == PE_IMAGE_DEBUG_TYPE_CODEVIEW)
-        {
-          char signature[CV_INFO_SIGNATURE_LENGTH * 2 + 1];
+	{
+	  char signature[CV_INFO_SIGNATURE_LENGTH * 2 + 1];
 	  /* PR 17512: file: 065-29434-0.001:0.1
 	     We need to use a 32-bit aligned buffer
 	     to safely read in a codeview record.  */
-          char buffer[256 + 1] ATTRIBUTE_ALIGNED_ALIGNOF (CODEVIEW_INFO);
+	  char buffer[256 + 1] ATTRIBUTE_ALIGNED_ALIGNOF (CODEVIEW_INFO);
 
-          CODEVIEW_INFO *cvinfo = (CODEVIEW_INFO *) buffer;
+	  CODEVIEW_INFO *cvinfo = (CODEVIEW_INFO *) buffer;
 
-          /* The debug entry doesn't have to have to be in a section,
+	  /* The debug entry doesn't have to have to be in a section,
 	     in which case AddressOfRawData is 0, so always use PointerToRawData.  */
-          if (!_bfd_XXi_slurp_codeview_record (abfd, (file_ptr) idd.PointerToRawData,
+	  if (!_bfd_XXi_slurp_codeview_record (abfd, (file_ptr) idd.PointerToRawData,
 					       idd.SizeOfData, cvinfo))
-            continue;
+	    continue;
 
-          for (i = 0; i < cvinfo->SignatureLength; i++)
-            sprintf (&signature[i*2], "%02x", cvinfo->Signature[i] & 0xff);
+	  for (i = 0; i < cvinfo->SignatureLength; i++)
+	    sprintf (&signature[i*2], "%02x", cvinfo->Signature[i] & 0xff);
 
 	  /* xgettext:c-format */
-          fprintf (file, _("(format %c%c%c%c signature %s age %ld)\n"),
+	  fprintf (file, _("(format %c%c%c%c signature %s age %ld)\n"),
 		   buffer[0], buffer[1], buffer[2], buffer[3],
 		   signature, cvinfo->Age);
-        }
+	}
     }
 
   if (size % sizeof (struct external_IMAGE_DEBUG_DIRECTORY) != 0)
     fprintf (file,
-            _("The debug directory size is not a multiple of the debug directory entry size\n"));
+	    _("The debug directory size is not a multiple of the debug directory entry size\n"));
 
   return TRUE;
 }
@@ -2970,9 +2976,9 @@ _bfd_XX_bfd_copy_private_bfd_data_common
       bfd_byte *data;
 
       if (section && bfd_malloc_and_get_section (obfd, section, &data))
-        {
-          unsigned int i;
-          struct external_IMAGE_DEBUG_DIRECTORY *dd =
+	{
+	  unsigned int i;
+	  struct external_IMAGE_DEBUG_DIRECTORY *dd =
 	    (struct external_IMAGE_DEBUG_DIRECTORY *)(data + (addr - section->vma));
 
 	  /* PR 17512: file: 0f15796a.  */
@@ -2980,40 +2986,40 @@ _bfd_XX_bfd_copy_private_bfd_data_common
 	      > bfd_get_section_size (section))
 	    {
 	      /* xgettext:c-format */
-	      _bfd_error_handler (_("%B: Data Directory size (%lx) exceeds space left in section (%lx)"),
+	      _bfd_error_handler (_("%B: Data Directory size (%lx) exceeds space left in section (%Lx)"),
 				  obfd, ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size,
 				  bfd_get_section_size (section) - (addr - section->vma));
 	      return FALSE;
 	    }
 
-          for (i = 0; i < ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size
+	  for (i = 0; i < ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size
 		 / sizeof (struct external_IMAGE_DEBUG_DIRECTORY); i++)
-            {
-              asection *ddsection;
-              struct external_IMAGE_DEBUG_DIRECTORY *edd = &(dd[i]);
-              struct internal_IMAGE_DEBUG_DIRECTORY idd;
+	    {
+	      asection *ddsection;
+	      struct external_IMAGE_DEBUG_DIRECTORY *edd = &(dd[i]);
+	      struct internal_IMAGE_DEBUG_DIRECTORY idd;
 
-              _bfd_XXi_swap_debugdir_in (obfd, edd, &idd);
+	      _bfd_XXi_swap_debugdir_in (obfd, edd, &idd);
 
-              if (idd.AddressOfRawData == 0)
-                continue; /* RVA 0 means only offset is valid, not handled yet.  */
+	      if (idd.AddressOfRawData == 0)
+		continue; /* RVA 0 means only offset is valid, not handled yet.  */
 
-              ddsection = find_section_by_vma (obfd, idd.AddressOfRawData + ope->pe_opthdr.ImageBase);
-              if (!ddsection)
-                continue; /* Not in a section! */
+	      ddsection = find_section_by_vma (obfd, idd.AddressOfRawData + ope->pe_opthdr.ImageBase);
+	      if (!ddsection)
+		continue; /* Not in a section! */
 
-              idd.PointerToRawData = ddsection->filepos + (idd.AddressOfRawData
+	      idd.PointerToRawData = ddsection->filepos + (idd.AddressOfRawData
 							   + ope->pe_opthdr.ImageBase) - ddsection->vma;
 
-              _bfd_XXi_swap_debugdir_out (obfd, &idd, edd);
-            }
+	      _bfd_XXi_swap_debugdir_out (obfd, &idd, edd);
+	    }
 
-          if (!bfd_set_section_contents (obfd, section, data, 0, section->size))
+	  if (!bfd_set_section_contents (obfd, section, data, 0, section->size))
 	    {
 	      _bfd_error_handler (_("Failed to update file offsets in debug directory"));
 	      return FALSE;
 	    }
-        }
+	}
       else if (section)
 	{
 	  _bfd_error_handler (_("%B: Failed to read debug data section"), obfd);
@@ -3095,12 +3101,12 @@ static bfd_byte *
 rsrc_count_directory (bfd *, bfd_byte *, bfd_byte *, bfd_byte *, bfd_vma);
 
 static bfd_byte *
-rsrc_count_entries (bfd *          abfd,
-		    bfd_boolean    is_name,
-		    bfd_byte *     datastart,
-		    bfd_byte *     data,
-		    bfd_byte *     dataend,
-		    bfd_vma        rva_bias)
+rsrc_count_entries (bfd *	   abfd,
+		    bfd_boolean	   is_name,
+		    bfd_byte *	   datastart,
+		    bfd_byte *	   data,
+		    bfd_byte *	   dataend,
+		    bfd_vma	   rva_bias)
 {
   unsigned long entry, addr, size;
 
@@ -3148,11 +3154,11 @@ rsrc_count_entries (bfd *          abfd,
 }
 
 static bfd_byte *
-rsrc_count_directory (bfd *          abfd,
+rsrc_count_directory (bfd *	     abfd,
 		      bfd_byte *     datastart,
 		      bfd_byte *     data,
 		      bfd_byte *     dataend,
-		      bfd_vma        rva_bias)
+		      bfd_vma	     rva_bias)
 {
   unsigned int  num_entries, num_ids;
   bfd_byte *    highest_data = data;
@@ -3184,7 +3190,7 @@ rsrc_count_directory (bfd *          abf
 
 typedef struct rsrc_dir_chain
 {
-  unsigned int         num_entries;
+  unsigned int	       num_entries;
   struct rsrc_entry *  first_entry;
   struct rsrc_entry *  last_entry;
 } rsrc_dir_chain;
@@ -3204,15 +3210,15 @@ typedef struct rsrc_directory
 
 typedef struct rsrc_string
 {
-  unsigned int  len;
-  bfd_byte *    string;
+  unsigned int	len;
+  bfd_byte *	string;
 } rsrc_string;
 
 typedef struct rsrc_leaf
 {
-  unsigned int  size;
-  unsigned int  codepage;
-  bfd_byte *    data;
+  unsigned int	size;
+  unsigned int	codepage;
+  bfd_byte *	data;
 } rsrc_leaf;
 
 typedef struct rsrc_entry
@@ -3220,18 +3226,18 @@ typedef struct rsrc_entry
   bfd_boolean is_name;
   union
   {
-    unsigned int          id;
-    struct rsrc_string    name;
+    unsigned int	  id;
+    struct rsrc_string	  name;
   } name_id;
 
   bfd_boolean is_dir;
   union
   {
     struct rsrc_directory * directory;
-    struct rsrc_leaf *      leaf;
+    struct rsrc_leaf *	    leaf;
   } value;
 
-  struct rsrc_entry *     next_entry;
+  struct rsrc_entry *	  next_entry;
   struct rsrc_directory * parent;
 } rsrc_entry;
 
@@ -3240,13 +3246,13 @@ rsrc_parse_directory (bfd *, rsrc_direct
 		      bfd_byte *, bfd_byte *, bfd_vma, rsrc_entry *);
 
 static bfd_byte *
-rsrc_parse_entry (bfd *            abfd,
-		  bfd_boolean      is_name,
-		  rsrc_entry *     entry,
-		  bfd_byte *       datastart,
-		  bfd_byte *       data,
-		  bfd_byte *       dataend,
-		  bfd_vma          rva_bias,
+rsrc_parse_entry (bfd *		   abfd,
+		  bfd_boolean	   is_name,
+		  rsrc_entry *	   entry,
+		  bfd_byte *	   datastart,
+		  bfd_byte *	   data,
+		  bfd_byte *	   dataend,
+		  bfd_vma	   rva_bias,
 		  rsrc_directory * parent)
 {
   unsigned long val, addr, size;
@@ -3318,14 +3324,14 @@ rsrc_parse_entry (bfd *            abfd,
 }
 
 static bfd_byte *
-rsrc_parse_entries (bfd *            abfd,
+rsrc_parse_entries (bfd *	     abfd,
 		    rsrc_dir_chain * chain,
-		    bfd_boolean      is_name,
-		    bfd_byte *       highest_data,
-		    bfd_byte *       datastart,
-		    bfd_byte *       data,
-		    bfd_byte *       dataend,
-		    bfd_vma          rva_bias,
+		    bfd_boolean	     is_name,
+		    bfd_byte *	     highest_data,
+		    bfd_byte *	     datastart,
+		    bfd_byte *	     data,
+		    bfd_byte *	     dataend,
+		    bfd_vma	     rva_bias,
 		    rsrc_directory * parent)
 {
   unsigned int i;
@@ -3371,12 +3377,12 @@ rsrc_parse_entries (bfd *            abf
 }
 
 static bfd_byte *
-rsrc_parse_directory (bfd *            abfd,
+rsrc_parse_directory (bfd *	       abfd,
 		      rsrc_directory * table,
 		      bfd_byte *       datastart,
 		      bfd_byte *       data,
 		      bfd_byte *       dataend,
-		      bfd_vma          rva_bias,
+		      bfd_vma	       rva_bias,
 		      rsrc_entry *     entry)
 {
   bfd_byte * highest_data = data;
@@ -3427,14 +3433,14 @@ rsrc_write_string (rsrc_write_data * dat
 
 static inline unsigned int
 rsrc_compute_rva (rsrc_write_data * data,
-		  bfd_byte *        addr)
+		  bfd_byte *	    addr)
 {
   return (addr - data->datastart) + data->rva_bias;
 }
 
 static void
 rsrc_write_leaf (rsrc_write_data * data,
-		 rsrc_leaf *       leaf)
+		 rsrc_leaf *	   leaf)
 {
   bfd_put_32 (data->abfd, rsrc_compute_rva (data, data->next_data),
 	      data->next_leaf);
@@ -3453,8 +3459,8 @@ static void rsrc_write_directory (rsrc_w
 
 static void
 rsrc_write_entry (rsrc_write_data *  data,
-		  bfd_byte *         where,
-		  rsrc_entry *       entry)
+		  bfd_byte *	     where,
+		  rsrc_entry *	     entry)
 {
   if (entry->is_name)
     {
@@ -3582,19 +3588,19 @@ u16_mbtouc (wchar_t * puc, const unsigne
   if (c < 0xdc00)
     {
       if (n >= 2)
-        {
-          if (s[1] >= 0xdc00 && s[1] < 0xe000)
-            {
-              *puc = 0x10000 + ((c - 0xd800) << 10) + (s[1] - 0xdc00);
-              return 2;
-            }
-        }
+	{
+	  if (s[1] >= 0xdc00 && s[1] < 0xe000)
+	    {
+	      *puc = 0x10000 + ((c - 0xd800) << 10) + (s[1] - 0xdc00);
+	      return 2;
+	    }
+	}
       else
-        {
-          /* Incomplete multibyte character.  */
-          *puc = 0xfffd;
-          return n;
-        }
+	{
+	  /* Incomplete multibyte character.  */
+	  *puc = 0xfffd;
+	  return n;
+	}
     }
 
   /* Invalid multibyte character.  */
@@ -3719,7 +3725,7 @@ rsrc_resource_name (rsrc_entry * entry, 
 	    case 1: strcat (buffer, " (CURSOR)"); break;
 	    case 2: strcat (buffer, " (BITMAP)"); break;
 	    case 3: strcat (buffer, " (ICON)"); break;
-            case 4: strcat (buffer, " (MENU)"); break;
+	    case 4: strcat (buffer, " (MENU)"); break;
 	    case 5: strcat (buffer, " (DIALOG)"); break;
 	    case 6: strcat (buffer, " (STRING)"); is_string = TRUE; break;
 	    case 7: strcat (buffer, " (FONTDIR)"); break;
@@ -3831,7 +3837,7 @@ rsrc_merge_string_entries (rsrc_entry * 
     {
       if (a->parent != NULL
 	  && a->parent->entry != NULL
-	  && a->parent->entry->is_name == FALSE)
+	  && !a->parent->entry->is_name)
 	_bfd_error_handler (_(".rsrc merge failure: duplicate string resource: %d"),
 			    ((a->parent->entry->name_id.id - 1) << 4) + i);
       return FALSE;
@@ -3939,22 +3945,22 @@ rsrc_sort_entries (rsrc_dir_chain *  cha
 		     There should only ever be one non-zero lang manifest -
 		     if there are more it is an error.  A non-zero lang
 		     manifest takes precedence over a default manifest.  */
-		  if (entry->is_name == FALSE
+		  if (!entry->is_name
 		      && entry->name_id.id == 1
 		      && dir != NULL
 		      && dir->entry != NULL
-		      && dir->entry->is_name == FALSE
+		      && !dir->entry->is_name
 		      && dir->entry->name_id.id == 0x18)
 		    {
 		      if (next->value.directory->names.num_entries == 0
 			  && next->value.directory->ids.num_entries == 1
-			  && next->value.directory->ids.first_entry->is_name == FALSE
+			  && !next->value.directory->ids.first_entry->is_name
 			  && next->value.directory->ids.first_entry->name_id.id == 0)
 			/* Fall through so that NEXT is dropped.  */
 			;
 		      else if (entry->value.directory->names.num_entries == 0
 			       && entry->value.directory->ids.num_entries == 1
-			       && entry->value.directory->ids.first_entry->is_name == FALSE
+			       && !entry->value.directory->ids.first_entry->is_name
 			       && entry->value.directory->ids.first_entry->name_id.id == 0)
 			{
 			  /* Swap ENTRY and NEXT.  Then fall through so that the old ENTRY is dropped.  */
@@ -3995,22 +4001,22 @@ rsrc_sort_entries (rsrc_dir_chain *  cha
 		     message - because there should never be duplicates.
 		     The exception is Type 18/Name 1/Lang 0 which is the
 		     defaul manifest - this can just be dropped.  */
-		  if (entry->is_name == FALSE
+		  if (!entry->is_name
 		      && entry->name_id.id == 0
 		      && dir != NULL
 		      && dir->entry != NULL
-		      && dir->entry->is_name == FALSE
+		      && !dir->entry->is_name
 		      && dir->entry->name_id.id == 1
 		      && dir->entry->parent != NULL
 		      && dir->entry->parent->entry != NULL
-		      && dir->entry->parent->entry->is_name == FALSE
+		      && !dir->entry->parent->entry->is_name
 		      && dir->entry->parent->entry->name_id.id == 0x18 /* RT_MANIFEST */)
 		    ;
 		  else if (dir != NULL
 			   && dir->entry != NULL
 			   && dir->entry->parent != NULL
 			   && dir->entry->parent->entry != NULL
-			   && dir->entry->parent->entry->is_name == FALSE
+			   && !dir->entry->parent->entry->is_name
 			   && dir->entry->parent->entry->name_id.id == 0x6 /* RT_STRING */)
 		    {
 		      /* Strings need special handling.  */
@@ -4127,22 +4133,22 @@ rsrc_process_section (bfd * abfd,
 		      struct coff_final_link_info * pfinfo)
 {
   rsrc_directory    new_table;
-  bfd_size_type     size;
-  asection *        sec;
+  bfd_size_type	    size;
+  asection *	    sec;
   pe_data_type *    pe;
-  bfd_vma           rva_bias;
-  bfd_byte *        data;
-  bfd_byte *        datastart;
-  bfd_byte *        dataend;
-  bfd_byte *        new_data;
-  unsigned int      num_resource_sets;
+  bfd_vma	    rva_bias;
+  bfd_byte *	    data;
+  bfd_byte *	    datastart;
+  bfd_byte *	    dataend;
+  bfd_byte *	    new_data;
+  unsigned int	    num_resource_sets;
   rsrc_directory *  type_tables;
   rsrc_write_data   write_data;
-  unsigned int      indx;
-  bfd *             input;
-  unsigned int      num_input_rsrc = 0;
-  unsigned int      max_num_input_rsrc = 4;
-  ptrdiff_t *       rsrc_sizes = NULL;
+  unsigned int	    indx;
+  bfd *		    input;
+  unsigned int	    num_input_rsrc = 0;
+  unsigned int	    max_num_input_rsrc = 4;
+  ptrdiff_t *	    rsrc_sizes = NULL;
 
   new_table.names.num_entries = 0;
   new_table.ids.num_entries = 0;
@@ -4271,9 +4277,9 @@ rsrc_process_section (bfd * abfd,
 
   /* FIXME: Should we verify that all type tables are the same ?  */
   new_table.characteristics = type_tables[0].characteristics;
-  new_table.time            = type_tables[0].time;
-  new_table.major           = type_tables[0].major;
-  new_table.minor           = type_tables[0].minor;
+  new_table.time	    = type_tables[0].time;
+  new_table.major	    = type_tables[0].major;
+  new_table.minor	    = type_tables[0].minor;
 
   /* Chain the NAME entries onto the table.  */
   new_table.names.first_entry = NULL;
@@ -4307,13 +4313,13 @@ rsrc_process_section (bfd * abfd,
   if (new_data == NULL)
     goto end;
 
-  write_data.abfd        = abfd;
-  write_data.datastart   = new_data;
-  write_data.next_table  = new_data;
-  write_data.next_leaf   = new_data + sizeof_tables_and_entries;
+  write_data.abfd	 = abfd;
+  write_data.datastart	 = new_data;
+  write_data.next_table	 = new_data;
+  write_data.next_leaf	 = new_data + sizeof_tables_and_entries;
   write_data.next_string = write_data.next_leaf + sizeof_leaves;
-  write_data.next_data   = write_data.next_string + sizeof_strings;
-  write_data.rva_bias    = sec->vma - pe->pe_opthdr.ImageBase;
+  write_data.next_data	 = write_data.next_string + sizeof_strings;
+  write_data.rva_bias	 = sec->vma - pe->pe_opthdr.ImageBase;
 
   rsrc_write_directory (& write_data, & new_table);
 
@@ -4392,7 +4398,7 @@ _bfd_XXi_final_link_postscript (bfd * ab
 	}
 
       /* The import address table.  This is the size/address of
-         .idata$5.  */
+	 .idata$5.  */
       h1 = coff_link_hash_lookup (coff_hash_table (info),
 				  ".idata$5", FALSE, FALSE, TRUE);
       if (h1 != NULL
@@ -4473,7 +4479,7 @@ _bfd_XXi_final_link_postscript (bfd * ab
 		   " because .idata$6 is missing"), abfd);
 	      result = FALSE;
 	    }
-        }
+	}
     }
 
   h1 = coff_link_hash_lookup (coff_hash_table (info),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/plugin.c ./bfd/plugin.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/plugin.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/plugin.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Plugin support for BFD.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -69,44 +69,45 @@ dlerror (void)
 
 #endif /* !defined (HAVE_DLFCN_H) && defined (HAVE_WINDOWS_H)  */
 
-#define bfd_plugin_close_and_cleanup                  _bfd_generic_close_and_cleanup
-#define bfd_plugin_bfd_free_cached_info               _bfd_generic_bfd_free_cached_info
-#define bfd_plugin_new_section_hook                   _bfd_generic_new_section_hook
-#define bfd_plugin_get_section_contents               _bfd_generic_get_section_contents
+#define bfd_plugin_close_and_cleanup		      _bfd_generic_close_and_cleanup
+#define bfd_plugin_bfd_free_cached_info		      _bfd_generic_bfd_free_cached_info
+#define bfd_plugin_new_section_hook		      _bfd_generic_new_section_hook
+#define bfd_plugin_get_section_contents		      _bfd_generic_get_section_contents
 #define bfd_plugin_get_section_contents_in_window     _bfd_generic_get_section_contents_in_window
-#define bfd_plugin_bfd_copy_private_header_data       _bfd_generic_bfd_copy_private_header_data
-#define bfd_plugin_bfd_merge_private_bfd_data         _bfd_generic_bfd_merge_private_bfd_data
-#define bfd_plugin_bfd_copy_private_header_data       _bfd_generic_bfd_copy_private_header_data
-#define bfd_plugin_bfd_set_private_flags              _bfd_generic_bfd_set_private_flags
+#define bfd_plugin_bfd_copy_private_header_data	      _bfd_generic_bfd_copy_private_header_data
+#define bfd_plugin_bfd_merge_private_bfd_data	      _bfd_generic_bfd_merge_private_bfd_data
+#define bfd_plugin_bfd_copy_private_header_data	      _bfd_generic_bfd_copy_private_header_data
+#define bfd_plugin_bfd_set_private_flags	      _bfd_generic_bfd_set_private_flags
 #define bfd_plugin_core_file_matches_executable_p     generic_core_file_matches_executable_p
-#define bfd_plugin_bfd_is_local_label_name            _bfd_nosymbols_bfd_is_local_label_name
-#define bfd_plugin_bfd_is_target_special_symbol       ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define bfd_plugin_get_lineno                         _bfd_nosymbols_get_lineno
-#define bfd_plugin_find_nearest_line                  _bfd_nosymbols_find_nearest_line
-#define bfd_plugin_find_line                          _bfd_nosymbols_find_line
-#define bfd_plugin_find_inliner_info                  _bfd_nosymbols_find_inliner_info
+#define bfd_plugin_bfd_is_local_label_name	      _bfd_nosymbols_bfd_is_local_label_name
+#define bfd_plugin_bfd_is_target_special_symbol	      ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
+#define bfd_plugin_get_lineno			      _bfd_nosymbols_get_lineno
+#define bfd_plugin_find_nearest_line		      _bfd_nosymbols_find_nearest_line
+#define bfd_plugin_find_line			      _bfd_nosymbols_find_line
+#define bfd_plugin_find_inliner_info		      _bfd_nosymbols_find_inliner_info
 #define bfd_plugin_get_symbol_version_string	      _bfd_nosymbols_get_symbol_version_string
-#define bfd_plugin_bfd_make_debug_symbol              _bfd_nosymbols_bfd_make_debug_symbol
-#define bfd_plugin_read_minisymbols                   _bfd_generic_read_minisymbols
-#define bfd_plugin_minisymbol_to_symbol               _bfd_generic_minisymbol_to_symbol
-#define bfd_plugin_set_arch_mach                      bfd_default_set_arch_mach
-#define bfd_plugin_set_section_contents               _bfd_generic_set_section_contents
+#define bfd_plugin_bfd_make_debug_symbol	      _bfd_nosymbols_bfd_make_debug_symbol
+#define bfd_plugin_read_minisymbols		      _bfd_generic_read_minisymbols
+#define bfd_plugin_minisymbol_to_symbol		      _bfd_generic_minisymbol_to_symbol
+#define bfd_plugin_set_arch_mach		      bfd_default_set_arch_mach
+#define bfd_plugin_set_section_contents		      _bfd_generic_set_section_contents
 #define bfd_plugin_bfd_get_relocated_section_contents bfd_generic_get_relocated_section_contents
-#define bfd_plugin_bfd_relax_section                  bfd_generic_relax_section
-#define bfd_plugin_bfd_link_hash_table_create         _bfd_generic_link_hash_table_create
-#define bfd_plugin_bfd_link_add_symbols               _bfd_generic_link_add_symbols
-#define bfd_plugin_bfd_link_just_syms                 _bfd_generic_link_just_syms
-#define bfd_plugin_bfd_final_link                     _bfd_generic_final_link
-#define bfd_plugin_bfd_link_split_section             _bfd_generic_link_split_section
-#define bfd_plugin_bfd_gc_sections                    bfd_generic_gc_sections
-#define bfd_plugin_bfd_lookup_section_flags           bfd_generic_lookup_section_flags
-#define bfd_plugin_bfd_merge_sections                 bfd_generic_merge_sections
-#define bfd_plugin_bfd_is_group_section               bfd_generic_is_group_section
-#define bfd_plugin_bfd_discard_group                  bfd_generic_discard_group
-#define bfd_plugin_section_already_linked             _bfd_generic_section_already_linked
-#define bfd_plugin_bfd_define_common_symbol           bfd_generic_define_common_symbol
+#define bfd_plugin_bfd_relax_section		      bfd_generic_relax_section
+#define bfd_plugin_bfd_link_hash_table_create	      _bfd_generic_link_hash_table_create
+#define bfd_plugin_bfd_link_add_symbols		      _bfd_generic_link_add_symbols
+#define bfd_plugin_bfd_link_just_syms		      _bfd_generic_link_just_syms
+#define bfd_plugin_bfd_final_link		      _bfd_generic_final_link
+#define bfd_plugin_bfd_link_split_section	      _bfd_generic_link_split_section
+#define bfd_plugin_bfd_gc_sections		      bfd_generic_gc_sections
+#define bfd_plugin_bfd_lookup_section_flags	      bfd_generic_lookup_section_flags
+#define bfd_plugin_bfd_merge_sections		      bfd_generic_merge_sections
+#define bfd_plugin_bfd_is_group_section		      bfd_generic_is_group_section
+#define bfd_plugin_bfd_discard_group		      bfd_generic_discard_group
+#define bfd_plugin_section_already_linked	      _bfd_generic_section_already_linked
+#define bfd_plugin_bfd_define_common_symbol	      bfd_generic_define_common_symbol
+#define bfd_plugin_bfd_define_start_stop	      bfd_generic_define_start_stop
 #define bfd_plugin_bfd_copy_link_hash_symbol_type     _bfd_generic_copy_link_hash_symbol_type
-#define bfd_plugin_bfd_link_check_relocs              _bfd_generic_link_check_relocs
+#define bfd_plugin_bfd_link_check_relocs	      _bfd_generic_link_check_relocs
 
 static enum ld_plugin_status
 message (int level ATTRIBUTE_UNUSED,
@@ -177,7 +178,7 @@ bfd_plugin_open_input (bfd *ibfd, struct
     {
       struct stat stat_buf;
       if (fstat (file->fd, &stat_buf))
-        return 0;
+	return 0;
       file->offset = 0;
       file->filesize = stat_buf.st_size;
     }
@@ -621,6 +622,6 @@ const bfd_target plugin_vec =
 
   NULL,
 
-  NULL  			/* backend_data.  */
+  NULL				/* backend_data.  */
 };
 #endif /* BFD_SUPPORTS_PLUGIN */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/plugin.h ./bfd/plugin.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/plugin.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/plugin.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Plugin support for BFD.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/bfd.pot ./bfd/po/bfd.pot
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/bfd.pot	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/bfd.pot	2018-01-09 02:04:54.000000000 +0000
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2017-03-29 17:07+0100\n"
+"POT-Creation-Date: 2017-08-14 10:55+0100\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"
@@ -24,7 +24,7 @@ msgstr ""
 
 #: aout-cris.c:200
 #, c-format
-msgid "%s: Invalid relocation type exported: %d"
+msgid "%B: Invalid relocation type exported: %d"
 msgstr ""
 
 #: aout-cris.c:244
@@ -37,48 +37,47 @@ msgstr ""
 msgid "%B: Bad relocation record imported: %d"
 msgstr ""
 
-#: aoutx.h:1282 aoutx.h:1619 pdp11.c:1152
+#: aoutx.h:1284 aoutx.h:1621 pdp11.c:1152 pdp11.c:1413
 #, c-format
-msgid "%s: can not represent section `%s' in a.out object file format"
+msgid "%B: can not represent section `%A' in a.out object file format"
 msgstr ""
 
-#: aoutx.h:1583
+#: aoutx.h:1585 pdp11.c:1385
 #, c-format
 msgid ""
-"%s: can not represent section for symbol `%s' in a.out object file format"
+"%B: can not represent section for symbol `%s' in a.out object file format"
 msgstr ""
 
-#: aoutx.h:1586 vms-alpha.c:7632
+#: aoutx.h:1588 vms-alpha.c:7853
 msgid "*unknown*"
 msgstr ""
 
-#: aoutx.h:2405 aoutx.h:2423
+#: aoutx.h:2407 aoutx.h:2425
 msgid "%B: attempt to write out unknown reloc type"
 msgstr ""
 
-#: aoutx.h:4075 aoutx.h:4396
+#: aoutx.h:4077 aoutx.h:4398
 msgid "%P: %B: unexpected relocation type\n"
 msgstr ""
 
-#: aoutx.h:5422 pdp11.c:3708
+#: aoutx.h:5424 pdp11.c:3708
 #, c-format
-msgid "%s: relocatable link from %s to %s not supported"
+msgid "%B: relocatable link from %s to %s not supported"
 msgstr ""
 
-#: archive.c:2293
+#: archive.c:2298
 msgid "Warning: writing archive was slow: rewriting timestamp\n"
 msgstr ""
 
-#: archive.c:2405 linker.c:1408
-#, c-format
-msgid "%s: plugin needed to handle lto object"
+#: archive.c:2410 linker.c:1408
+msgid "%B: plugin needed to handle lto object"
 msgstr ""
 
-#: archive.c:2634
+#: archive.c:2639
 msgid "Reading archive file mod timestamp"
 msgstr ""
 
-#: archive.c:2658
+#: archive.c:2663
 msgid "Writing updated armap timestamp"
 msgstr ""
 
@@ -171,22 +170,22 @@ msgstr ""
 msgid "#<Invalid error code>"
 msgstr ""
 
-#: bfd.c:1064
+#: bfd.c:1144
 #, c-format
 msgid "BFD %s assertion fail %s:%d"
 msgstr ""
 
-#: bfd.c:1077
+#: bfd.c:1157
 #, c-format
 msgid "BFD %s internal error, aborting at %s:%d in %s\n"
 msgstr ""
 
-#: bfd.c:1082
+#: bfd.c:1162
 #, c-format
 msgid "BFD %s internal error, aborting at %s:%d\n"
 msgstr ""
 
-#: bfd.c:1084
+#: bfd.c:1164
 msgid "Please report this bug.\n"
 msgstr ""
 
@@ -200,13 +199,13 @@ msgstr ""
 msgid "not mapping: env var not set\n"
 msgstr ""
 
-#: binary.c:274
+#: binary.c:276
 #, c-format
-msgid "Warning: Writing section `%s' at huge (ie negative) file offset 0x%lx."
+msgid "warning: writing section `%A' at huge (ie negative) file offset"
 msgstr ""
 
-#: bout.c:1142 elf-m10300.c:2651 elf32-avr.c:2452 elf32-frv.c:5633
-#: elf64-ia64-vms.c:353 elfxx-sparc.c:2876 reloc.c:8004 reloc16.c:156
+#: bout.c:1142 elf-m10300.c:2651 elf32-avr.c:2484 elf32-frv.c:5633
+#: elf64-ia64-vms.c:353 elfxx-sparc.c:2989 reloc.c:8020 reloc16.c:156
 #: elf32-ia64.c:351 elf64-ia64.c:351
 msgid "%P%F: --relax and -r may not be used together\n"
 msgstr ""
@@ -242,8 +241,9 @@ msgstr ""
 msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW"
 msgstr ""
 
-#: coff-alpha.c:1518 elf32-i370.c:1085 elf32-m32r.c:2418 elf64-alpha.c:4167
-#: elf64-alpha.c:4315 elf64-ia64-vms.c:3432 elf32-ia64.c:3840 elf64-ia64.c:3840
+#: coff-alpha.c:1518 elf32-i370.c:1085 elf32-m32r.c:2418 elf32-microblaze.c:952
+#: elf64-alpha.c:4165 elf64-alpha.c:4313 elf64-ia64-vms.c:3431
+#: elf32-ia64.c:3839 elf64-ia64.c:3839
 #, c-format
 msgid "%B: unknown relocation type %d"
 msgstr ""
@@ -258,7 +258,7 @@ msgstr ""
 msgid "%B: unable to find ARM glue '%s' for `%s'"
 msgstr ""
 
-#: coff-arm.c:1363 elf32-arm.c:8899
+#: coff-arm.c:1363 elf32-arm.c:8896
 #, c-format
 msgid ""
 "%B(%s): warning: interworking not enabled.\n"
@@ -273,14 +273,14 @@ msgid ""
 "  consider relinking with --support-old-code enabled"
 msgstr ""
 
-#: coff-arm.c:1746 coff-tic80.c:670 cofflink.c:3126
+#: coff-arm.c:1746 coff-tic80.c:670 cofflink.c:3123
 #, c-format
-msgid "%B: bad reloc address 0x%lx in section `%A'"
+msgid "%B: bad reloc address %#Lx in section `%A'"
 msgstr ""
 
 #: coff-arm.c:2071
 #, c-format
-msgid "%B: illegal symbol index in reloc: %d"
+msgid "%B: illegal symbol index in reloc: %ld"
 msgstr ""
 
 #: coff-arm.c:2203
@@ -288,95 +288,95 @@ msgstr ""
 msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d"
 msgstr ""
 
-#: coff-arm.c:2217 elf32-arm.c:19724
+#: coff-arm.c:2216 elf32-arm.c:19754
 #, c-format
 msgid ""
 "error: %B passes floats in float registers, whereas %B passes them in "
 "integer registers"
 msgstr ""
 
-#: coff-arm.c:2222 elf32-arm.c:19728
+#: coff-arm.c:2221 elf32-arm.c:19758
 #, c-format
 msgid ""
 "error: %B passes floats in integer registers, whereas %B passes them in "
 "float registers"
 msgstr ""
 
-#: coff-arm.c:2234
+#: coff-arm.c:2233
 #, c-format
 msgid ""
 "error: %B is compiled as position independent code, whereas target %B is "
 "absolute position"
 msgstr ""
 
-#: coff-arm.c:2239
+#: coff-arm.c:2238
 #, c-format
 msgid ""
 "error: %B is compiled as absolute position code, whereas target %B is "
 "position independent"
 msgstr ""
 
-#: coff-arm.c:2266 elf32-arm.c:19793
+#: coff-arm.c:2265 elf32-arm.c:19823
 #, c-format
 msgid "Warning: %B supports interworking, whereas %B does not"
 msgstr ""
 
-#: coff-arm.c:2271 elf32-arm.c:19799
+#: coff-arm.c:2270 elf32-arm.c:19829
 #, c-format
 msgid "Warning: %B does not support interworking, whereas %B does"
 msgstr ""
 
-#: coff-arm.c:2294
+#: coff-arm.c:2293
 #, c-format
 msgid "private flags = %x:"
 msgstr ""
 
-#: coff-arm.c:2302 elf32-arm.c:14125
+#: coff-arm.c:2301 elf32-arm.c:14154
 #, c-format
 msgid " [floats passed in float registers]"
 msgstr ""
 
-#: coff-arm.c:2304
+#: coff-arm.c:2303
 #, c-format
 msgid " [floats passed in integer registers]"
 msgstr ""
 
-#: coff-arm.c:2307 elf32-arm.c:14128
+#: coff-arm.c:2306 elf32-arm.c:14157
 #, c-format
 msgid " [position independent]"
 msgstr ""
 
-#: coff-arm.c:2309
+#: coff-arm.c:2308
 #, c-format
 msgid " [absolute position]"
 msgstr ""
 
-#: coff-arm.c:2313
+#: coff-arm.c:2312
 #, c-format
 msgid " [interworking flag not initialised]"
 msgstr ""
 
-#: coff-arm.c:2315
+#: coff-arm.c:2314
 #, c-format
 msgid " [interworking supported]"
 msgstr ""
 
-#: coff-arm.c:2317
+#: coff-arm.c:2316
 #, c-format
 msgid " [interworking not supported]"
 msgstr ""
 
-#: coff-arm.c:2362 elf32-arm.c:13014
+#: coff-arm.c:2361 elf32-arm.c:13015
 msgid ""
 "Warning: Not setting interworking flag of %B since it has already been "
 "specified as non-interworking"
 msgstr ""
 
-#: coff-arm.c:2365 elf32-arm.c:13018
+#: coff-arm.c:2364 elf32-arm.c:13019
 msgid "Warning: Clearing the interworking flag of %B due to outside request"
 msgstr ""
 
-#: coff-arm.c:2422 elf32-arm.c:13063
+#: coff-arm.c:2421 elf32-arm.c:13064
 #, c-format
 msgid ""
 "Warning: Clearing the interworking flag of %B because non-interworking code "
@@ -393,7 +393,7 @@ msgstr ""
 msgid "relocation `%s' not yet implemented"
 msgstr ""
 
-#: coff-i860.c:608 coff-tic54x.c:365 coffcode.h:5317
+#: coff-i860.c:608 coff-tic4x.c:227 coff-tic54x.c:365 coffcode.h:5327
 #, c-format
 msgid "%B: warning: illegal symbol index %ld in relocs"
 msgstr ""
@@ -402,26 +402,26 @@ msgstr ""
 msgid "uncertain calling convention for non-COFF symbol"
 msgstr ""
 
-#: coff-m68k.c:483 elf32-bfin.c:5531 elf32-cr16.c:2817 elf32-m68k.c:4574
+#: coff-m68k.c:483 elf32-bfin.c:5529 elf32-cr16.c:2817 elf32-m68k.c:4573
 msgid "unsupported reloc type"
 msgstr ""
 
 #: coff-mips.c:634 elf32-mips.c:1744 elf32-score.c:430 elf32-score7.c:330
-#: elf64-mips.c:3141 elfn32-mips.c:2954
+#: elf64-mips.c:3135 elfn32-mips.c:2954
 msgid "GP relative relocation when _gp not defined"
 msgstr ""
 
-#: coff-rs6000.c:2741
+#: coff-rs6000.c:2773
 #, c-format
-msgid "%s: unsupported relocation type 0x%02x"
+msgid "%B: unsupported relocation type 0x%02x"
 msgstr ""
 
-#: coff-rs6000.c:2827
+#: coff-rs6000.c:2859
 #, c-format
-msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
+msgid "%B: TOC reloc at %#Lx to symbol `%s' with no TOC entry"
 msgstr ""
 
-#: coff-rs6000.c:3574 coff64-rs6000.c:2110
+#: coff-rs6000.c:3605 coff64-rs6000.c:2150
 #, c-format
 msgid "%B: symbol `%s' has unrecognized smclas %d"
 msgstr ""
@@ -431,51 +431,51 @@ msgstr ""
 msgid "SH Error: unknown reloc type %d"
 msgstr ""
 
-#: coff-sh.c:775 elf32-sh.c:580
+#: coff-sh.c:778 elf32-sh.c:580
 #, c-format
-msgid "%B: 0x%lx: warning: bad R_SH_USES offset"
+msgid "%B: %#Lx: warning: bad R_SH_USES offset"
 msgstr ""
 
-#: coff-sh.c:786 elf32-sh.c:592
+#: coff-sh.c:789
 #, c-format
-msgid "%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"
+msgid "%B: %#Lx: warning: R_SH_USES points to unrecognized insn %#x"
 msgstr ""
 
-#: coff-sh.c:804 elf32-sh.c:610
+#: coff-sh.c:807 elf32-sh.c:610
 #, c-format
-msgid "%B: 0x%lx: warning: bad R_SH_USES load offset"
+msgid "%B: %#Lx: warning: bad R_SH_USES load offset"
 msgstr ""
 
-#: coff-sh.c:829 elf32-sh.c:626
+#: coff-sh.c:832 elf32-sh.c:626
 #, c-format
-msgid "%B: 0x%lx: warning: could not find expected reloc"
+msgid "%B: %#Lx: warning: could not find expected reloc"
 msgstr ""
 
-#: coff-sh.c:846 elf32-sh.c:655
+#: coff-sh.c:849 elf32-sh.c:655
 #, c-format
-msgid "%B: 0x%lx: warning: symbol in unexpected section"
+msgid "%B: %#Lx: warning: symbol in unexpected section"
 msgstr ""
 
-#: coff-sh.c:972 elf32-sh.c:785
+#: coff-sh.c:975 elf32-sh.c:785
 #, c-format
-msgid "%B: 0x%lx: warning: could not find expected COUNT reloc"
+msgid "%B: %#Lx: warning: could not find expected COUNT reloc"
 msgstr ""
 
-#: coff-sh.c:982 elf32-sh.c:795
+#: coff-sh.c:985 elf32-sh.c:795
 #, c-format
-msgid "%B: 0x%lx: warning: bad count"
+msgid "%B: %#Lx: warning: bad count"
 msgstr ""
 
-#: coff-sh.c:1354 coff-sh.c:2642 elf32-sh.c:1199 elf32-sh.c:1570
+#: coff-sh.c:1357 coff-sh.c:2645 elf32-sh.c:1199 elf32-sh.c:1570
 #, c-format
-msgid "%B: 0x%lx: fatal: reloc overflow while relaxing"
+msgid "%B: %#Lx: fatal: reloc overflow while relaxing"
 msgstr ""
 
-#: coff-sh.c:1449
+#: coff-sh.c:1452
 msgid "%B: fatal: generic symbols retrieved before relaxing"
 msgstr ""
 
-#: coff-sh.c:2780 cofflink.c:2964
+#: coff-sh.c:2783 cofflink.c:2961
 #, c-format
 msgid "%B: illegal symbol index %ld in relocs"
 msgstr ""
@@ -485,11 +485,6 @@ msgstr ""
 msgid "Unrecognized reloc type 0x%x"
 msgstr ""
 
-#: coff-tic4x.c:227
-#, c-format
-msgid "%s: warning: illegal symbol index %ld in relocs"
-msgstr ""
-
 #: coff-w65.c:352
 #, c-format
 msgid "ignoring reloc %s\n"
@@ -499,12 +494,18 @@ msgstr ""
 msgid "%B: unable to load COMDAT section name"
 msgstr ""
 
-#: coffcode.h:1008
+#. Malformed input files can trigger this test.
+#. cf PR 21781.
+#: coffcode.h:1003
+msgid "%B: error: unexpected symbol '%s' in COMDAT section"
+msgstr ""
+
+#: coffcode.h:1015
 #, c-format
 msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'"
 msgstr ""
 
-#: coffcode.h:1017
+#: coffcode.h:1025
 #, c-format
 msgid "%B: warning: No symbol for section '%s' found"
 msgstr ""
@@ -512,102 +513,101 @@ msgstr ""
 #. Generate a warning message rather using the 'unhandled'
 #. variable as this will allow some .sys files generate by
 #. other toolchains to be processed.  See bugzilla issue 196.
-#: coffcode.h:1242
+#: coffcode.h:1251
 #, c-format
 msgid ""
 "%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s"
 msgstr ""
 
-#: coffcode.h:1310
+#: coffcode.h:1320
 #, c-format
-msgid "%B (%s): Section flag %s (0x%x) ignored"
+msgid "%B (%s): Section flag %s (%#lx) ignored"
 msgstr ""
 
-#: coffcode.h:1945
-#, c-format
-msgid "%s: warning: claims to have 0xffff relocs, without overflow"
+#: coffcode.h:1955
+msgid "%B: warning: claims to have 0xffff relocs, without overflow"
 msgstr ""
 
-#: coffcode.h:2461
+#: coffcode.h:2471
 #, c-format
 msgid "Unrecognized TI COFF target id '0x%x'"
 msgstr ""
 
-#: coffcode.h:2787
+#: coffcode.h:2789
 #, c-format
-msgid "%B: reloc against a non-existant symbol index: %ld"
+msgid "%B: reloc against a non-existent symbol index: %ld"
 msgstr ""
 
-#: coffcode.h:3189
+#: coffcode.h:3192
 #, c-format
 msgid "%B: page size is too large (0x%x)"
 msgstr ""
 
-#: coffcode.h:3349
+#: coffcode.h:3352
 #, c-format
 msgid "%B: too many sections (%d)"
 msgstr ""
 
-#: coffcode.h:3770
+#: coffcode.h:3773
 #, c-format
-msgid "%B: section %s: string table overflow at offset %ld"
+msgid "%B: section %A: string table overflow at offset %ld"
 msgstr ""
 
-#: coffcode.h:4588
+#: coffcode.h:4591
 msgid "%B: warning: line number table read failed"
 msgstr ""
 
-#: coffcode.h:4622 coffcode.h:4636
+#: coffcode.h:4625 coffcode.h:4639
 #, c-format
 msgid "%B: warning: illegal symbol index 0x%lx in line number entry %d"
 msgstr ""
 
-#: coffcode.h:4650
+#: coffcode.h:4653
 #, c-format
 msgid "%B: warning: illegal symbol in line number entry %d"
 msgstr ""
 
-#: coffcode.h:4663
+#: coffcode.h:4666
 #, c-format
 msgid "%B: warning: duplicate line number information for `%s'"
 msgstr ""
 
-#: coffcode.h:5077
+#: coffcode.h:5087
 #, c-format
 msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
 msgstr ""
 
-#: coffcode.h:5210
+#: coffcode.h:5220
 #, c-format
 msgid "warning: %B: local symbol `%s' has no section"
 msgstr ""
 
-#: coffcode.h:5357
+#: coffcode.h:5367
 #, c-format
-msgid "%B: illegal relocation type %d at address 0x%lx"
+msgid "%B: illegal relocation type %d at address %#Lx"
 msgstr ""
 
-#: coffgen.c:178 elf.c:1164
+#: coffgen.c:178 elf.c:1198
 #, c-format
 msgid "%B: unable to initialize compress status for section %s"
 msgstr ""
 
-#: coffgen.c:202 elf.c:1175
+#: coffgen.c:202 elf.c:1209
 #, c-format
 msgid "%B: unable to initialize decompress status for section %s"
 msgstr ""
 
 #. PR 21013: Provide an error message when the alloc fails.
 #: coffgen.c:1648
-msgid "%B: Not enough memory to allocate space for %lu symbols"
+msgid "%B: Not enough memory to allocate space for %Lu symbols"
 msgstr ""
 
 #: coffgen.c:1716
 #, c-format
-msgid "%B: bad string table size %lu"
+msgid "%B: bad string table size %Lu"
 msgstr ""
 
-#: coffgen.c:1885 coffgen.c:1945 coffgen.c:1963 cofflink.c:2040
+#: coffgen.c:1885 coffgen.c:1945 coffgen.c:1963 cofflink.c:2041
 #: xcofflink.c:4507
 msgid "<corrupt>"
 msgstr ""
@@ -617,16 +617,16 @@ msgstr ""
 msgid "<corrupt info> %s"
 msgstr ""
 
-#: coffgen.c:2666 elflink.c:13940 linker.c:2931
+#: coffgen.c:2666 elflink.c:14078 linker.c:2931
 msgid "%F%P: already_linked_table: %E\n"
 msgstr ""
 
-#: coffgen.c:2993 elflink.c:12981
+#: coffgen.c:3007 elflink.c:13064
 #, c-format
-msgid "Removing unused section '%s' in file '%B'"
+msgid "Removing unused section '%A' in file '%B'"
 msgstr ""
 
-#: coffgen.c:3069 elflink.c:13219
+#: coffgen.c:3084 elflink.c:13309
 msgid "Warning: gc-sections option ignored"
 msgstr ""
 
@@ -635,36 +635,46 @@ msgstr ""
 msgid "Warning: symbol `%s' is both section and non-section"
 msgstr ""
 
-#: cofflink.c:450 elf64-ia64-vms.c:5187 elflink.c:4734
+#: cofflink.c:450 elf64-ia64-vms.c:5187 elflink.c:4794
 #, c-format
 msgid "Warning: type of symbol `%s' changed from %d to %d in %B"
 msgstr ""
 
-#: cofflink.c:2368
+#: cofflink.c:2369
 #, c-format
 msgid "%B: relocs in section `%A', but it has no contents"
 msgstr ""
 
-#: cofflink.c:2431 elflink.c:10470
+#: cofflink.c:2432 elflink.c:10572
 #, c-format
 msgid ""
 "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' "
 "of %B\n"
 msgstr ""
 
-#: cofflink.c:2729 coffswap.h:826
+#: cofflink.c:2730
+#, c-format
+msgid "%B: %A: reloc overflow: %#x > 0xffff"
+msgstr ""
+
+#: cofflink.c:2738
 #, c-format
-msgid "%s: %s: reloc overflow: 0x%lx > 0xffff"
+msgid "%B: warning: %A: line number overflow: %#x > 0xffff"
 msgstr ""
 
-#: cofflink.c:2739 coffswap.h:811
+#: coffswap.h:811
 #, c-format
-msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff"
+msgid "%B: warning: %s: line number overflow: 0x%lx > 0xffff"
+msgstr ""
+
+#: coffswap.h:825
+#, c-format
+msgid "%B: %s: reloc overflow: 0x%lx > 0xffff"
 msgstr ""
 
 #: compress.c:255
 #, c-format
-msgid "error: %B(%A) is too large (%#lx bytes)"
+msgid "error: %B(%A) is too large (%#Lx bytes)"
 msgstr ""
 
 #: cpu-arm.c:192 cpu-arm.c:204
@@ -674,95 +684,105 @@ msgstr ""
 
 #: cpu-arm.c:338
 #, c-format
-msgid "warning: unable to update contents of %s section in %s"
+msgid "warning: unable to update contents of %s section in %B"
 msgstr ""
 
-#: dwarf2.c:532
+#: dwarf2.c:546
 #, c-format
 msgid "Dwarf Error: Can't find %s section."
 msgstr ""
 
-#: dwarf2.c:562
+#: dwarf2.c:576
 #, c-format
-msgid "Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu)."
+msgid "Dwarf Error: Offset (%llu) greater than or equal to %s size (%Lu)."
 msgstr ""
 
-#: dwarf2.c:1028
+#: dwarf2.c:1093
 msgid "Dwarf Error: Info pointer extends beyond end of attributes"
 msgstr ""
 
-#: dwarf2.c:1185
+#: dwarf2.c:1265
 #, c-format
 msgid "Dwarf Error: Invalid or unhandled FORM value: %#x."
 msgstr ""
 
-#: dwarf2.c:1491
+#: dwarf2.c:1572
 msgid "Dwarf Error: mangled line number section (bad file number)."
 msgstr ""
 
-#: dwarf2.c:1779
+#: dwarf2.c:1946
+#, c-format
+msgid "Dwarf Error: Unknown format content type %Lu."
+msgstr ""
+
+#: dwarf2.c:2050
 #, c-format
-msgid "Dwarf Error: Line info section is too small (%ld)"
+msgid "Dwarf Error: Line info section is too small (%Ld)"
 msgstr ""
 
-#: dwarf2.c:1809
+#: dwarf2.c:2080
 #, c-format
-msgid "Dwarf Error: Line info data is bigger (0x%lx) than the section (0x%lx)"
+msgid "Dwarf Error: Line info data is bigger (%#Lx) than the section (%#Lx)"
 msgstr ""
 
-#: dwarf2.c:1821
+#: dwarf2.c:2092
 #, c-format
 msgid "Dwarf Error: Unhandled .debug_line version %d."
 msgstr ""
 
-#: dwarf2.c:1830
+#: dwarf2.c:2102
 msgid "Dwarf Error: Ran out of room reading prologue"
 msgstr ""
 
-#: dwarf2.c:1855
+#: dwarf2.c:2120
+#, c-format
+msgid "Dwarf Error: Line info unsupported segment selector size %u."
+msgstr ""
+
+#: dwarf2.c:2147
 msgid "Dwarf Error: Invalid maximum operations per instruction."
 msgstr ""
 
-#: dwarf2.c:1874
+#: dwarf2.c:2166
 msgid "Dwarf Error: Ran out of room reading opcodes"
 msgstr ""
 
-#: dwarf2.c:2069
+#: dwarf2.c:2351
 msgid "Dwarf Error: mangled line number section."
 msgstr ""
 
-#: dwarf2.c:2575
+#: dwarf2.c:2857
 #, c-format
-msgid "Dwarf Error: Unable to read alt ref %u."
+msgid "Dwarf Error: Unable to read alt ref %llu."
 msgstr ""
 
-#: dwarf2.c:2600 dwarf2.c:2750 dwarf2.c:3071
+#: dwarf2.c:2883 dwarf2.c:3033 dwarf2.c:3380
 #, c-format
 msgid "Dwarf Error: Could not find abbrev number %u."
 msgstr ""
 
-#: dwarf2.c:3023
+#: dwarf2.c:3299
 #, c-format
 msgid ""
-"Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 "
-"and 4 information."
+"Dwarf Error: found dwarf version '%u', this reader only handles version 2, "
+"3, 4 and 5 information."
 msgstr ""
 
-#: dwarf2.c:3034
+#: dwarf2.c:3343
 #, c-format
 msgid ""
 "Dwarf Error: found address size '%u', this reader can not handle sizes "
 "greater than '%u'."
 msgstr ""
 
-#: dwarf2.c:3137
+#: dwarf2.c:3446
 msgid ""
 "Dwarf Error: DW_AT_comp_dir attribute encountered with a non-string form."
 msgstr ""
 
 #: ecoff.c:964
 #, c-format
-msgid "%B: warning: isymMax (%ld) is greater than ifdMax (%d)\n"
+msgid "%B: warning: isymMax (%ld) is greater than ifdMax (%ld)"
 msgstr ""
 
 #: ecoff.c:1261
@@ -826,74 +846,78 @@ msgid ""
 "      Type: %s"
 msgstr ""
 
-#: elf-attrs.c:595
+#: elf-attrs.c:473
+msgid "%B: error: attribute section length too small: %ld"
+msgstr ""
+
+#: elf-attrs.c:601
 #, c-format
 msgid ""
 "error: %B: Object has vendor-specific contents that must be processed by the "
 "'%s' toolchain"
 msgstr ""
 
-#: elf-attrs.c:605
+#: elf-attrs.c:611
 #, c-format
 msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'"
 msgstr ""
 
-#: elf-eh-frame.c:943
+#: elf-eh-frame.c:946
 #, c-format
 msgid "discarding zero address range FDE in %B(%A).\n"
 msgstr ""
 
-#: elf-eh-frame.c:1048
+#: elf-eh-frame.c:1051
 #, c-format
 msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n"
 msgstr ""
 
-#: elf-eh-frame.c:1400
+#: elf-eh-frame.c:1541
 #, c-format
 msgid ""
 "%P: FDE encoding in %B(%A) prevents .eh_frame_hdr table being created.\n"
 msgstr ""
 
-#: elf-eh-frame.c:1407
+#: elf-eh-frame.c:1548
 msgid ""
 "%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation "
 "dropped.\n"
 msgstr ""
 
-#: elf-eh-frame.c:1727
+#: elf-eh-frame.c:1870
 #, c-format
-msgid "%B: %s not in order"
+msgid "%B: %A not in order"
 msgstr ""
 
-#: elf-eh-frame.c:1741
+#: elf-eh-frame.c:1884
 #, c-format
-msgid "%B: %s invalid input section size"
+msgid "%B: %A invalid input section size"
 msgstr ""
 
-#: elf-eh-frame.c:1749
+#: elf-eh-frame.c:1892
 #, c-format
-msgid "%B: %s points past end of text section"
+msgid "%B: %A points past end of text section"
 msgstr ""
 
-#: elf-eh-frame.c:1998
+#: elf-eh-frame.c:2141
 msgid "%P: DW_EH_PE_datarel unspecified for this architecture.\n"
 msgstr ""
 
-#: elf-eh-frame.c:2168
+#: elf-eh-frame.c:2311
 #, c-format
-msgid "Invalid output section for .eh_frame_entry: %s"
+msgid "Invalid output section for .eh_frame_entry: %A"
 msgstr ""
 
-#: elf-eh-frame.c:2191
+#: elf-eh-frame.c:2334
 #, c-format
-msgid "Invalid contents in %s section"
+msgid "Invalid contents in %A section"
 msgstr ""
 
-#: elf-eh-frame.c:2347
+#: elf-eh-frame.c:2490
 msgid "%P: .eh_frame_hdr entry overflow.\n"
 msgstr ""
 
-#: elf-eh-frame.c:2350
+#: elf-eh-frame.c:2493
 msgid "%P: .eh_frame_hdr refers to overlapping FDEs.\n"
 msgstr ""
 
@@ -905,51 +929,51 @@ msgid ""
 "pie\n"
 msgstr ""
 
-#: elf-m10200.c:425 elf-m10300.c:2149 elf32-avr.c:1502 elf32-bfin.c:3194
+#: elf-m10200.c:425 elf-m10300.c:2149 elf32-avr.c:1502 elf32-bfin.c:3193
 #: elf32-cr16.c:1466 elf32-cr16c.c:780 elf32-cris.c:2025 elf32-crx.c:924
 #: elf32-d10v.c:513 elf32-epiphany.c:563 elf32-fr30.c:591 elf32-frv.c:4041
 #: elf32-ft32.c:334 elf32-h8300.c:522 elf32-i860.c:1210 elf32-ip2k.c:1475
-#: elf32-iq2000.c:693 elf32-lm32.c:1126 elf32-m32c.c:621 elf32-m32r.c:3044
-#: elf32-m68hc1x.c:1269 elf32-mep.c:524 elf32-metag.c:2001
+#: elf32-iq2000.c:693 elf32-lm32.c:1126 elf32-m32c.c:621 elf32-m32r.c:3045
+#: elf32-m68hc1x.c:1269 elf32-mep.c:524 elf32-metag.c:2000
 #: elf32-microblaze.c:1570 elf32-moxie.c:285 elf32-mt.c:400 elf32-nds32.c:5402
-#: elf32-or1k.c:1258 elf32-score.c:2733 elf32-score7.c:2546 elf32-spu.c:5076
-#: elf32-tilepro.c:3665 elf32-v850.c:2287 elf32-visium.c:677
-#: elf32-xstormy16.c:927 elf64-mmix.c:1540 elfxx-tilegx.c:4052
+#: elf32-or1k.c:1258 elf32-score.c:2731 elf32-score7.c:2540 elf32-spu.c:5076
+#: elf32-tilepro.c:3657 elf32-v850.c:2287 elf32-visium.c:677
+#: elf32-xstormy16.c:927 elf64-mmix.c:1538 elfxx-tilegx.c:4044
 #: /work/sources/binutils/current/bfd/elfnn-riscv.c:2267
 msgid "internal error: out of range error"
 msgstr ""
 
-#: elf-m10200.c:429 elf-m10300.c:2153 elf32-avr.c:1506 elf32-bfin.c:3198
+#: elf-m10200.c:429 elf-m10300.c:2153 elf32-avr.c:1506 elf32-bfin.c:3197
 #: elf32-cr16.c:1470 elf32-cr16c.c:784 elf32-cris.c:2029 elf32-crx.c:928
 #: elf32-d10v.c:517 elf32-fr30.c:595 elf32-frv.c:4045 elf32-ft32.c:338
 #: elf32-h8300.c:526 elf32-i860.c:1214 elf32-iq2000.c:697 elf32-lm32.c:1130
-#: elf32-m32c.c:625 elf32-m32r.c:3048 elf32-m68hc1x.c:1273 elf32-mep.c:528
-#: elf32-metag.c:2005 elf32-microblaze.c:1574 elf32-moxie.c:289
-#: elf32-msp430.c:1361 elf32-nds32.c:5406 elf32-or1k.c:1262 elf32-score.c:2737
-#: elf32-score7.c:2550 elf32-spu.c:5080 elf32-tilepro.c:3669 elf32-v850.c:2291
-#: elf32-visium.c:681 elf32-xstormy16.c:931 elf64-mmix.c:1544
-#: elfxx-mips.c:10253 elfxx-tilegx.c:4056
+#: elf32-m32c.c:625 elf32-m32r.c:3049 elf32-m68hc1x.c:1273 elf32-mep.c:528
+#: elf32-metag.c:2004 elf32-microblaze.c:1574 elf32-moxie.c:289
+#: elf32-msp430.c:1361 elf32-nds32.c:5406 elf32-or1k.c:1262 elf32-score.c:2735
+#: elf32-score7.c:2544 elf32-spu.c:5080 elf32-tilepro.c:3661 elf32-v850.c:2291
+#: elf32-visium.c:681 elf32-xstormy16.c:931 elf64-mmix.c:1542
+#: elfxx-mips.c:10258 elfxx-tilegx.c:4048
 #: /work/sources/binutils/current/bfd/elfnn-riscv.c:2271
 msgid "internal error: unsupported relocation error"
 msgstr ""
 
 #: elf-m10200.c:433 elf32-cr16.c:1474 elf32-cr16c.c:788 elf32-crx.c:932
-#: elf32-d10v.c:521 elf32-h8300.c:530 elf32-lm32.c:1134 elf32-m32r.c:3052
+#: elf32-d10v.c:521 elf32-h8300.c:530 elf32-lm32.c:1134 elf32-m32r.c:3053
 #: elf32-m68hc1x.c:1277 elf32-microblaze.c:1578 elf32-nds32.c:5410
-#: elf32-score.c:2741 elf32-score7.c:2554 elf32-spu.c:5084
+#: elf32-score.c:2739 elf32-score7.c:2548 elf32-spu.c:5084
 msgid "internal error: dangerous error"
 msgstr ""
 
-#: elf-m10200.c:437 elf-m10300.c:2170 elf32-avr.c:1514 elf32-bfin.c:3206
+#: elf-m10200.c:437 elf-m10300.c:2170 elf32-avr.c:1514 elf32-bfin.c:3205
 #: elf32-cr16.c:1478 elf32-cr16c.c:792 elf32-cris.c:2037 elf32-crx.c:936
 #: elf32-d10v.c:525 elf32-epiphany.c:578 elf32-fr30.c:603 elf32-frv.c:4053
 #: elf32-ft32.c:346 elf32-h8300.c:534 elf32-i860.c:1222 elf32-ip2k.c:1490
-#: elf32-iq2000.c:705 elf32-lm32.c:1138 elf32-m32c.c:633 elf32-m32r.c:3056
-#: elf32-m68hc1x.c:1281 elf32-mep.c:536 elf32-metag.c:2013
+#: elf32-iq2000.c:705 elf32-lm32.c:1138 elf32-m32c.c:633 elf32-m32r.c:3057
+#: elf32-m68hc1x.c:1281 elf32-mep.c:536 elf32-metag.c:2012
 #: elf32-microblaze.c:1582 elf32-moxie.c:297 elf32-msp430.c:1369 elf32-mt.c:408
-#: elf32-nds32.c:5414 elf32-or1k.c:1270 elf32-score.c:2750 elf32-score7.c:2558
-#: elf32-spu.c:5088 elf32-tilepro.c:3677 elf32-v850.c:2311 elf32-visium.c:689
-#: elf32-xstormy16.c:939 elf64-mmix.c:1552 elfxx-tilegx.c:4064
+#: elf32-nds32.c:5414 elf32-or1k.c:1270 elf32-score.c:2748 elf32-score7.c:2552
+#: elf32-spu.c:5088 elf32-tilepro.c:3669 elf32-v850.c:2311 elf32-visium.c:689
+#: elf32-xstormy16.c:939 elf64-mmix.c:1550 elfxx-tilegx.c:4056
 #: /work/sources/binutils/current/bfd/elfnn-riscv.c:2279
 msgid "internal error: unknown error"
 msgstr ""
@@ -961,7 +985,7 @@ msgstr ""
 
 #: elf-m10300.c:1028
 #, c-format
-msgid "%s: Unsupported transition from %s to %s"
+msgid "%B: Unsupported transition from %s to %s"
 msgstr ""
 
 #: elf-m10300.c:1201
@@ -969,14 +993,14 @@ msgstr ""
 msgid "%B: %s' accessed both as normal and thread local symbol"
 msgstr ""
 
-#: elf-m10300.c:2097 elf32-arm.c:12529 elf32-i386.c:5222 elf32-m32r.c:2540
-#: elf32-m68k.c:4084 elf32-s390.c:3361 elf32-sh.c:4127 elf32-tilepro.c:3569
-#: elf32-xtensa.c:3060 elf64-s390.c:3280 elf64-sh64.c:1636 elf64-x86-64.c:5697
-#: elfxx-sparc.c:3945 elfxx-tilegx.c:3976
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6466
+#: elf-m10300.c:2097 elf32-arm.c:12530 elf32-i386.c:5344 elf32-m32r.c:2540
+#: elf32-m68k.c:4083 elf32-s390.c:3372 elf32-sh.c:4127 elf32-tilepro.c:3561
+#: elf32-xtensa.c:3074 elf64-s390.c:3296 elf64-sh64.c:1636 elf64-x86-64.c:5712
+#: elfxx-sparc.c:4086 elfxx-tilegx.c:3968
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6431
 #: /work/sources/binutils/current/bfd/elfnn-riscv.c:2236
 #, c-format
-msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"
+msgid "%B(%A+%#Lx): unresolvable %s relocation against symbol `%s'"
 msgstr ""
 
 #: elf-m10300.c:2158
@@ -996,227 +1020,245 @@ msgstr ""
 msgid "internal error: suspicious relocation type used in shared library"
 msgstr ""
 
+#: elf-properties.c:65
+msgid "%B: out of memory in _bfd_elf_get_property"
+msgstr ""
+
+#: elf-properties.c:91
+msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx"
+msgstr ""
+
+#: elf-properties.c:107
+msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x"
+msgstr ""
+
+#: elf-properties.c:146
+msgid "warning: %B: corrupt stack size: 0x%x"
+msgstr ""
+
+#: elf-properties.c:164
+msgid "warning: %B: corrupt no copy on protected size: 0x%x"
+msgstr ""
+
+#: elf-properties.c:180
+msgid "warning: %B: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x"
+msgstr ""
+
 #. PR 17512: file: f057ec89.
 #: elf.c:342
 #, c-format
 msgid "%B: attempt to load strings from a non-string section (number %d)"
 msgstr ""
 
-#: elf.c:356
+#: elf.c:357
 #, c-format
-msgid "%B: invalid string offset %u >= %lu for section `%s'"
+msgid "%B: invalid string offset %u >= %Lu for section `%s'"
 msgstr ""
 
-#: elf.c:495
+#: elf.c:496 /work/sources/binutils/current/bfd/elfnn-aarch64.c:7650
 #, c-format
 msgid "%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
 msgstr ""
 
-#: elf.c:652
+#: elf.c:660
 #, c-format
-msgid "%B: corrupt size field in group section header: 0x%lx"
+msgid "%B: corrupt size field in group section header: %#Lx"
 msgstr ""
 
-#: elf.c:666
+#: elf.c:675
 #, c-format
-msgid "%B: invalid size field in group section header: 0x%lx"
+msgid "%B: invalid size field in group section header: %#Lx"
 msgstr ""
 
-#: elf.c:700
+#: elf.c:711
 msgid "%B: invalid SHT_GROUP entry"
 msgstr ""
 
-#: elf.c:719
+#: elf.c:730
 msgid "%B: no valid group sections found"
 msgstr ""
 
-#: elf.c:787
+#. See PR 21957 for a reproducer.
+#: elf.c:755
+#, c-format
+msgid "%B: group section '%A' has no contents"
+msgstr ""
+
+#: elf.c:814
 #, c-format
-msgid "%B: no group info for section %A"
+msgid "%B: no group info for section '%A'"
 msgstr ""
 
-#: elf.c:818 elf.c:3817 elflink.c:11059
+#: elf.c:845 elf.c:3836 elflink.c:11160
 #, c-format
 msgid "%B: warning: sh_link not set for section `%A'"
 msgstr ""
 
-#: elf.c:838
+#: elf.c:865
 #, c-format
 msgid "%B: sh_link [%d] in section `%A' is incorrect"
 msgstr ""
 
-#: elf.c:851
+#: elf.c:878
 #, c-format
 msgid "%B: SHT_GROUP section [index %d] has no SHF_GROUP sections"
 msgstr ""
 
-#: elf.c:872
+#: elf.c:899
 #, c-format
 msgid "%B: section group entry number %u is corrupt"
 msgstr ""
 
-#: elf.c:897
+#: elf.c:929
 #, c-format
-msgid "%B: unknown [%d] section `%s' in group [%s]"
+msgid "%B: unknown type [%#x] section `%s' in group [%A]"
 msgstr ""
 
-#: elf.c:1354
+#: elf.c:1390
 #, c-format
 msgid "%B: Invalid sh_link field (%d) in section number %d"
 msgstr ""
 
-#: elf.c:1370
+#: elf.c:1406
 #, c-format
 msgid "%B: Failed to find link section for section %d"
 msgstr ""
 
-#: elf.c:1397
+#: elf.c:1433
 #, c-format
 msgid "%B: Failed to find info section for section %d"
 msgstr ""
 
-#: elf.c:1569
+#: elf.c:1605
 #, c-format
 msgid ""
 "\n"
 "Program Header:\n"
 msgstr ""
 
-#: elf.c:1611
+#: elf.c:1647
 #, c-format
 msgid ""
 "\n"
 "Dynamic Section:\n"
 msgstr ""
 
-#: elf.c:1752
+#: elf.c:1788
 #, c-format
 msgid ""
 "\n"
 "Version definitions:\n"
 msgstr ""
 
-#: elf.c:1777
+#: elf.c:1813
 #, c-format
 msgid ""
 "\n"
 "Version References:\n"
 msgstr ""
 
-#: elf.c:1782
+#: elf.c:1818
 #, c-format
 msgid "  required from %s:\n"
 msgstr ""
 
-#: elf.c:1980
+#: elf.c:2016
 msgid "%B: warning: loop in section dependencies detected"
 msgstr ""
 
-#: elf.c:2088
+#: elf.c:2124
 #, c-format
 msgid ""
 "%B: warning: multiple symbol tables detected - ignoring the table in section "
 "%u"
 msgstr ""
 
-#: elf.c:2171
+#: elf.c:2208
 #, c-format
 msgid ""
 "%B: warning: multiple dynamic symbol tables detected - ignoring the table in "
 "section %u"
 msgstr ""
 
-#: elf.c:2283
-#, c-format
-msgid "%B: invalid link %lu for reloc section %s (index %u)"
-msgstr ""
-
-#: elf.c:2469
-#, c-format
-msgid ""
-"%B: don't know how to handle allocated, application specific section `%s' [0x"
-"%8x]"
-msgstr ""
-
-#: elf.c:2485
-#, c-format
-msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]"
-msgstr ""
-
-#: elf.c:2497
+#: elf.c:2321
 #, c-format
-msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]"
+msgid "%B: invalid link %u for reloc section %s (index %u)"
 msgstr ""
 
-#: elf.c:2511
+#: elf.c:2480 elf.c:2495 elf.c:2506 elf.c:2519
 #, c-format
-msgid "%B: don't know how to handle section `%s' [0x%8x]"
+msgid "%B: unknown type [%#x] section `%s'"
 msgstr ""
 
-#: elf.c:3215
+#: elf.c:3223
 #, c-format
 msgid "%B: error: Alignment power %d of section `%A' is too big"
 msgstr ""
 
-#: elf.c:3245
+#: elf.c:3253
 #, c-format
 msgid "warning: section `%A' type changed to PROGBITS"
 msgstr ""
 
-#: elf.c:3687
+#: elf.c:3704
 #, c-format
 msgid "%B: too many sections: %u"
 msgstr ""
 
-#: elf.c:3772
+#: elf.c:3789
 #, c-format
 msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'"
 msgstr ""
 
-#: elf.c:3796
+#: elf.c:3814
 #, c-format
 msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'"
 msgstr ""
 
-#: elf.c:4861
+#: elf.c:4366
+#, c-format
+msgid "%B: GNU_MBIN section `%A' has invalid sh_info field: %d"
+msgstr ""
+
+#: elf.c:4908
 msgid "%B: TLS sections are not adjacent:"
 msgstr ""
 
-#: elf.c:4868
+#: elf.c:4915
 #, c-format
 msgid "\t    TLS: %A"
 msgstr ""
 
-#: elf.c:4872
+#: elf.c:4919
 #, c-format
 msgid "\tnon-TLS: %A"
 msgstr ""
 
-#: elf.c:5339
+#: elf.c:5415
 msgid ""
 "%B: The first section in the PT_DYNAMIC segment is not the .dynamic section"
 msgstr ""
 
-#: elf.c:5366
+#: elf.c:5443
 msgid "%B: Not enough room for program headers, try linking with -N"
 msgstr ""
 
-#: elf.c:5453
+#: elf.c:5531
 #, c-format
-msgid "%B: section %A lma %#lx adjusted to %#lx"
+msgid "%B: section %A lma %#Lx adjusted to %#Lx"
 msgstr ""
 
-#: elf.c:5590
+#: elf.c:5668
 #, c-format
 msgid "%B: section `%A' can't be allocated in segment %d"
 msgstr ""
 
-#: elf.c:5638
+#: elf.c:5716
 #, c-format
 msgid "%B: warning: allocated section `%s' not in segment"
 msgstr ""
 
-#: elf.c:5836
+#: elf.c:5914
 msgid ""
 "%B: error: non-load segment %d includes file header and/or program header"
 msgstr ""
@@ -1224,455 +1266,485 @@ msgstr ""
 #. The fix for this error is usually to edit the linker script being
 #. used and set up the program headers manually.  Either that or
 #. leave room for the headers at the start of the SECTIONS.
-#: elf.c:6012
+#: elf.c:6091
 msgid "%B: error: PHDR segment not covered by LOAD segment"
 msgstr ""
 
-#: elf.c:6356
+#: elf.c:6435
 #, c-format
 msgid "%B: symbol `%s' required but not present"
 msgstr ""
 
-#: elf.c:6699
+#: elf.c:6778
 #, c-format
 msgid ""
-"%B: warning: Empty loadable segment detected at vaddr=0x%.8x, is this "
-"intentional ?"
+"%B: warning: Empty loadable segment detected at vaddr=%#Lx, is this "
+"intentional?"
 msgstr ""
 
-#: elf.c:7313
+#: elf.c:7392
 #, c-format
-msgid "%B: warning: segment alignment of 0x%llx is too large"
+msgid "%B: warning: segment alignment of %#Lx is too large"
 msgstr ""
 
-#: elf.c:7790
+#: elf.c:7873
 #, c-format
 msgid ""
 "Unable to find equivalent output section for symbol '%s' from section '%s'"
 msgstr ""
 
-#: elf.c:8122
+#: elf.c:8205
 msgid "%B: .gnu.version_r invalid entry"
 msgstr ""
 
-#: elf.c:8249
+#: elf.c:8332
 msgid "%B: .gnu.version_d invalid entry"
 msgstr ""
 
-#: elf.c:8801
+#: elf.c:8884
 #, c-format
 msgid "%B: unsupported relocation type %s"
 msgstr ""
 
-#: elf32-arc.c:426 elf32-frv.c:6625 elf32-iq2000.c:870 elf32-m32c.c:914
-#: elf32-mt.c:564 elf32-rl78.c:1256 elf32-rx.c:3176 elf32-visium.c:838
-#: elf64-ppc.c:6066
+#: elf32-arc.c:433 elf32-frv.c:6626 elf32-iq2000.c:870 elf32-m32c.c:915
+#: elf32-mt.c:564 elf32-rl78.c:1256 elf32-rx.c:3177 elf32-visium.c:837
+#: elf64-ppc.c:6087
 #, c-format
 msgid "private flags = 0x%lx:"
 msgstr ""
 
-#: elf32-arc.c:567
+#: elf32-arc.c:611
+msgid "Warning: %B: Conflicting platform configuration %s with %s.\n"
+msgstr ""
+
+#: elf32-arc.c:630
+msgid "error: %B: unable to merge CPU base attributes %s with %s.\n"
+msgstr ""
+
+#: elf32-arc.c:667
+msgid "error: %B: unable to merge ISA extension attributes %s.\n"
+msgstr ""
+
+#: elf32-arc.c:691
+msgid "error: %B: conflicting ISA extension attributes %s with %s.\n"
+msgstr ""
+
+#: elf32-arc.c:726
+msgid "error: %B: cannot mix rf16 with full register set %B.\n"
+msgstr ""
+
+#: elf32-arc.c:752
+msgid "error: %B: conflicting attributes %s: %s with %s.\n"
+msgstr ""
+
+#: elf32-arc.c:777
+msgid "error: %B: conflicting attributes %s.\n"
+msgstr ""
+
+#: elf32-arc.c:877
 #, c-format
-msgid "ERROR: Attempting to link %B with a binary %s of different architecture"
+msgid "ERROR: Attempting to link %B with a binary %B of different architecture"
 msgstr ""
 
-#: elf32-arc.c:577 elf32-iq2000.c:846 elf32-m32c.c:890
+#: elf32-arc.c:891 elf32-i370.c:359 elf32-iq2000.c:846 elf32-m32c.c:890
+#: elf32-m68hc1x.c:1388 elf32-ppc.c:4909 elf64-sparc.c:727 elfxx-mips.c:15127
 #, c-format
-msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
+msgid "%B: uses different e_flags (%#x) fields than previous modules (%#x)"
 msgstr ""
 
-#: elf32-arc.c:638
+#: elf32-arc.c:980
 msgid "Error: The ARC4 architecture is no longer supported.\n"
 msgstr ""
 
-#: elf32-arc.c:644
+#: elf32-arc.c:986
 msgid ""
 "Warning: unset or old architecture flags. \n"
 "\t       Use default machine.\n"
 msgstr ""
 
-#: elf32-arc.c:772
+#: elf32-arc.c:1119
 #, c-format
 msgid ""
-"%B(%A+0x%lx): CMEM relocation to `%s' is invalid, 16 MSB should be 0x%04x "
-"(value is 0x%lx)"
+"%B(%A+%#Lx): CMEM relocation to `%s' is invalid, 16 MSB should be %#x (value "
+"is %#Lx)"
 msgstr ""
 
-#: elf32-arc.c:783
+#: elf32-arc.c:1130
 #, c-format
 msgid ""
-"%B(%A+0x%lx): CMEM relocation to `%s+0x%lx' is invalid, 16 MSB should be 0x"
-"%04x (value is 0x%lx)"
+"%B(%A+%#Lx): CMEM relocation to `%s+%#Lx' is invalid, 16 MSB should be %#x "
+"(value is %#Lx)"
 msgstr ""
 
-#: elf32-arc.c:1472
+#: elf32-arc.c:1836
 msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker."
 msgstr ""
 
-#: elf32-arc.c:1496 elf32-rl78.c:1094 elf32-rx.c:1448
+#: elf32-arc.c:1860 elf32-rl78.c:1094 elf32-rx.c:1448
 #, c-format
 msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area"
 msgstr ""
 
-#: elf32-arc.c:1501 elf32-rl78.c:1099 elf32-rx.c:1453
+#: elf32-arc.c:1865 elf32-rl78.c:1099 elf32-rx.c:1453
 #, c-format
 msgid "%B(%A): internal error: out of range error"
 msgstr ""
 
-#: elf32-arc.c:1506 elf32-rl78.c:1104 elf32-rx.c:1458
+#: elf32-arc.c:1870 elf32-rl78.c:1104 elf32-rx.c:1458
 #, c-format
 msgid "%B(%A): internal error: unsupported relocation error"
 msgstr ""
 
-#: elf32-arc.c:1511 elf32-rl78.c:1109 elf32-rx.c:1463
+#: elf32-arc.c:1875 elf32-rl78.c:1109 elf32-rx.c:1463
 #, c-format
 msgid "%B(%A): internal error: dangerous relocation"
 msgstr ""
 
-#: elf32-arc.c:1516 elf32-rl78.c:1114 elf32-rx.c:1468
+#: elf32-arc.c:1880 elf32-rl78.c:1114 elf32-rx.c:1468
 #, c-format
 msgid "%B(%A): internal error: unknown error"
 msgstr ""
 
-#: elf32-arc.c:1608 elf32-arm.c:14683 elf32-metag.c:2272 elfxx-mips.c:8878
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7398
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:488
+#: elf32-arc.c:1968 elf32-arm.c:14712 elf32-metag.c:2271 elfxx-mips.c:8883
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7218
+#: /work/sources/binutils/current/bfd/elfnn-riscv.c:484
 #, c-format
 msgid ""
 "%B: relocation %s against `%s' can not be used when making a shared object; "
 "recompile with -fPIC"
 msgstr ""
 
-#: elf32-arm.c:4027 elf32-arm.c:4059
-msgid ""
-"%B(%A): warning: long branch  veneers used in section with SHF_ARM_PURECODE "
-"section attribute is only supported for M-profile targets that implement the "
-"movw instruction."
+#: elf32-arc.c:2860
+msgid "%B: Unknown mandatory ARC object attribute %d."
+msgstr ""
+
+#: elf32-arc.c:2868
+msgid "Warning: %B: Unknown ARC object attribute %d."
 msgstr ""
 
-#: elf32-arm.c:4076 elf32-arm.c:4129
+#: elf32-arm.c:4022 elf32-arm.c:4056 elf32-arm.c:4075 elf32-arm.c:4127
 msgid ""
-"%B(%s): warning: long branch  veneers used in section with SHF_ARM_PURECODE "
+"%B(%A): warning: long branch veneers used in section with SHF_ARM_PURECODE "
 "section attribute is only supported for M-profile targets that implement the "
 "movw instruction."
 msgstr ""
 
-#: elf32-arm.c:4090 elf32-arm.c:8809
+#: elf32-arm.c:4087 elf32-arm.c:8806
 msgid ""
 "%B(%s): warning: interworking not enabled.\n"
 "  first occurrence: %B: Thumb call to ARM"
 msgstr ""
 
-#: elf32-arm.c:4145
+#: elf32-arm.c:4141
 msgid ""
 "%B(%s): warning: interworking not enabled.\n"
 "  first occurrence: %B: ARM call to Thumb"
 msgstr ""
 
-#: elf32-arm.c:4419
+#: elf32-arm.c:4415
 #, c-format
 msgid "No address assigned to the veneers output section %s"
 msgstr ""
 
-#: elf32-arm.c:4494 elf32-arm.c:6631
+#: elf32-arm.c:4490 elf32-arm.c:6627 elf32-hppa.c:587 elf32-m68hc1x.c:165
+#: elf32-metag.c:1198 elf32-nios2.c:2227
 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2852
 #, c-format
-msgid "%s: cannot create stub entry %s"
+msgid "%B: cannot create stub entry %s"
 msgstr ""
 
-#: elf32-arm.c:5679
+#: elf32-arm.c:5675
 msgid "%B: Special symbol `%s' only allowed for ARMv8-M architecture or later."
 msgstr ""
 
-#: elf32-arm.c:5688
+#: elf32-arm.c:5684
 msgid "%B: invalid special symbol `%s'."
 msgstr ""
 
-#: elf32-arm.c:5690 elf32-arm.c:5730
+#: elf32-arm.c:5686 elf32-arm.c:5726
 msgid "It must be a global or weak function symbol."
 msgstr ""
 
-#: elf32-arm.c:5728
+#: elf32-arm.c:5724
 msgid "%B: invalid standard symbol `%s'."
 msgstr ""
 
-#: elf32-arm.c:5734
+#: elf32-arm.c:5730
 msgid "%B: absent standard symbol `%s'."
 msgstr ""
 
-#: elf32-arm.c:5746
+#: elf32-arm.c:5742
 msgid "%B: `%s' and its special symbol are in different sections."
 msgstr ""
 
-#: elf32-arm.c:5758
+#: elf32-arm.c:5754
 msgid "%B: entry function `%s' not output."
 msgstr ""
 
-#: elf32-arm.c:5765
+#: elf32-arm.c:5761
 msgid "%B: entry function `%s' is empty."
 msgstr ""
 
-#: elf32-arm.c:5894
+#: elf32-arm.c:5890
 msgid "%B: --in-implib only supported for Secure Gateway import libraries."
 msgstr ""
 
-#: elf32-arm.c:5940
+#: elf32-arm.c:5936
 msgid "%B: invalid import library entry: `%s'."
 msgstr ""
 
-#: elf32-arm.c:5942
+#: elf32-arm.c:5938
 msgid "Symbol should be absolute, global and refer to Thumb functions."
 msgstr ""
 
-#: elf32-arm.c:5962
+#: elf32-arm.c:5958
 #, c-format
 msgid "Entry function `%s' disappeared from secure code."
 msgstr ""
 
-#: elf32-arm.c:5986
+#: elf32-arm.c:5982
 #, c-format
 msgid "`%s' refers to a non entry function."
 msgstr ""
 
-#: elf32-arm.c:6001
+#: elf32-arm.c:5997
 msgid "%B: visibility of symbol `%s' has changed."
 msgstr ""
 
-#: elf32-arm.c:6010
+#: elf32-arm.c:6006
 msgid "%B: incorrect size for symbol `%s'."
 msgstr ""
 
-#: elf32-arm.c:6029
+#: elf32-arm.c:6025
 #, c-format
 msgid "Offset of veneer for entry function `%s' not a multiple of its size."
 msgstr ""
 
-#: elf32-arm.c:6049
+#: elf32-arm.c:6045
 msgid ""
 "new entry function(s) introduced but no output import library specified:"
 msgstr ""
 
-#: elf32-arm.c:6057
+#: elf32-arm.c:6053
 #, c-format
 msgid "Start address of `%s' is different from previous link."
 msgstr ""
 
-#: elf32-arm.c:6764
+#: elf32-arm.c:6760
 #, c-format
 msgid "unable to find THUMB glue '%s' for '%s'"
 msgstr ""
 
-#: elf32-arm.c:6800
+#: elf32-arm.c:6796
 #, c-format
 msgid "unable to find ARM glue '%s' for '%s'"
 msgstr ""
 
-#: elf32-arm.c:7515
+#: elf32-arm.c:7511
 msgid "%B: BE8 images only valid in big-endian mode."
 msgstr ""
 
 #. Give a warning, but do as the user requests anyway.
-#: elf32-arm.c:7746
+#: elf32-arm.c:7742
 msgid ""
 "%B: warning: selected VFP11 erratum workaround is not necessary for target "
 "architecture"
 msgstr ""
 
-#: elf32-arm.c:7773
+#: elf32-arm.c:7769
 msgid ""
 "%B: warning: selected STM32L4XX erratum workaround is not necessary for "
 "target architecture"
 msgstr ""
 
-#: elf32-arm.c:8310 elf32-arm.c:8330
+#: elf32-arm.c:8306 elf32-arm.c:8326
 msgid "%B: unable to find VFP11 veneer `%s'"
 msgstr ""
 
-#: elf32-arm.c:8396 elf32-arm.c:8415
+#: elf32-arm.c:8392 elf32-arm.c:8411
 msgid "%B: unable to find STM32L4XX veneer `%s'"
 msgstr ""
 
-#. Note - overlong line used here to allow for translation.
-#: elf32-arm.c:8623
+#: elf32-arm.c:8618
 #, c-format
 msgid ""
-"%B(%A+0x%lx): error: multiple load detected in non-last IT block "
-"instruction : STM32L4XX veneer cannot be generated.\n"
+"%B(%A+%#x): error: multiple load detected in non-last IT block instruction : "
+"STM32L4XX veneer cannot be generated.\n"
 "Use gcc option -mrestrict-it to generate only one instruction per IT block.\n"
 msgstr ""
 
-#: elf32-arm.c:8719
+#: elf32-arm.c:8716
 #, c-format
 msgid "Invalid TARGET2 relocation type '%s'."
 msgstr ""
 
 #. FIXME: We ought to be able to generate thumb-1 PLT
 #. instructions...
-#: elf32-arm.c:9461
+#: elf32-arm.c:9458
 msgid "%B: Warning: thumb-1 mode PLT generation not currently supported"
 msgstr ""
 
-#: elf32-arm.c:9726
+#: elf32-arm.c:9723
 #, c-format
-msgid "%B(%A+0x%lx): unexpected Thumb instruction '0x%x' in TLS trampoline"
+msgid "%B(%A+%#Lx): unexpected Thumb instruction '%#lx' in TLS trampoline"
 msgstr ""
 
-#: elf32-arm.c:9766
+#: elf32-arm.c:9763
 #, c-format
-msgid "%B(%A+0x%lx): unexpected ARM instruction '0x%x' in TLS trampoline"
+msgid "%B(%A+%#Lx): unexpected ARM instruction '%#lx' in TLS trampoline"
 msgstr ""
 
-#: elf32-arm.c:10100
+#: elf32-arm.c:10098
 msgid "shared object"
 msgstr ""
 
-#: elf32-arm.c:10103
+#: elf32-arm.c:10101
 msgid "PIE executable"
 msgstr ""
 
-#: elf32-arm.c:10106
+#: elf32-arm.c:10104
 msgid ""
 "%B: relocation %s against external or undefined symbol `%s' can not be used "
 "when making a %s; recompile with -fPIC"
 msgstr ""
 
-#: elf32-arm.c:10237
+#: elf32-arm.c:10235
 msgid "%B: Warning: Arm BLX instruction targets Arm function '%s'."
 msgstr ""
 
-#: elf32-arm.c:10657
+#: elf32-arm.c:10661
 msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'."
 msgstr ""
 
-#: elf32-arm.c:11524
+#: elf32-arm.c:11528
 #, c-format
 msgid ""
-"%B(%A+0x%lx): unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC"
+"%B(%A+%#Lx): unexpected Thumb instruction '%#lx' referenced by TLS_GOTDESC"
 msgstr ""
 
-#: elf32-arm.c:11548
+#: elf32-arm.c:11551
 #, c-format
 msgid ""
-"%B(%A+0x%lx): unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC"
+"%B(%A+%#Lx): unexpected ARM instruction '%#lx' referenced by TLS_GOTDESC"
 msgstr ""
 
-#: elf32-arm.c:11578
+#: elf32-arm.c:11580 elf32-m68k.c:3890 elf32-metag.c:1931 elf32-nios2.c:4372
 #, c-format
-msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object"
+msgid "%B(%A+%#Lx): %s relocation not permitted in shared object"
 msgstr ""
 
-#: elf32-arm.c:11792
+#: elf32-arm.c:11793
 #, c-format
 msgid ""
-"%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group "
+"%B(%A+%#Lx): Only ADD or SUB instructions are allowed for ALU group "
 "relocations"
 msgstr ""
 
-#: elf32-arm.c:11833 elf32-arm.c:11924 elf32-arm.c:12010 elf32-arm.c:12098
+#: elf32-arm.c:11833 elf32-arm.c:11923 elf32-arm.c:12009 elf32-arm.c:12097
 #, c-format
-msgid "%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"
+msgid "%B(%A+%#Lx): Overflow whilst splitting %#Lx for group relocation %s"
 msgstr ""
 
-#: elf32-arm.c:12362 elf32-sh.c:4009 elf64-sh64.c:1539
+#: elf32-arm.c:12363 elf32-sh.c:4009 elf64-sh64.c:1539
 #, c-format
-msgid "%B(%A+0x%lx): %s relocation against SEC_MERGE section"
+msgid "%B(%A+%#Lx): %s relocation against SEC_MERGE section"
 msgstr ""
 
-#: elf32-arm.c:12474 elf32-m68k.c:4120 elf32-xtensa.c:2802
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6194
+#: elf32-arm.c:12475 elf32-m68k.c:4119 elf32-xtensa.c:2816
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6159
 #, c-format
-msgid "%B(%A+0x%lx): %s used with TLS symbol %s"
+msgid "%B(%A+%#Lx): %s used with TLS symbol %s"
 msgstr ""
 
-#: elf32-arm.c:12476 elf32-m68k.c:4122 elf32-xtensa.c:2804
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6196
+#: elf32-arm.c:12477 elf32-m68k.c:4121 elf32-xtensa.c:2818
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6161
 #, c-format
-msgid "%B(%A+0x%lx): %s used with non-TLS symbol %s"
+msgid "%B(%A+%#Lx): %s used with non-TLS symbol %s"
 msgstr ""
 
-#: elf32-arm.c:12558 elf32-tic6x.c:2739
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6529
+#: elf32-arm.c:12559 elf32-tic6x.c:2739
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6494
 msgid "out of range"
 msgstr ""
 
-#: elf32-arm.c:12562 elf32-nios2.c:4505 elf32-pru.c:821 elf32-tic6x.c:2743
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6533
+#: elf32-arm.c:12563 elf32-nios2.c:4505 elf32-pru.c:821 elf32-tic6x.c:2743
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6498
 msgid "unsupported relocation"
 msgstr ""
 
-#: elf32-arm.c:12570 elf32-nios2.c:4515 elf32-pru.c:831 elf32-tic6x.c:2751
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6541
+#: elf32-arm.c:12571 elf32-nios2.c:4515 elf32-pru.c:831 elf32-tic6x.c:2751
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6506
 msgid "unknown error"
 msgstr ""
 
-#: elf32-arm.c:13150
+#: elf32-arm.c:13151
 msgid "%B: Unknown mandatory EABI object attribute %d"
 msgstr ""
 
-#: elf32-arm.c:13158
+#: elf32-arm.c:13159
 msgid "Warning: %B: Unknown EABI object attribute %d"
 msgstr ""
 
-#: elf32-arm.c:13406
+#: elf32-arm.c:13426
 msgid "error: %B: Unknown CPU architecture"
 msgstr ""
 
-#: elf32-arm.c:13444 elf32-nios2.c:2965
+#: elf32-arm.c:13464 elf32-nios2.c:2965
 #, c-format
 msgid "error: %B: Conflicting CPU architectures %d/%d"
 msgstr ""
 
-#: elf32-arm.c:13541
+#: elf32-arm.c:13561
 msgid ""
 "Error: %B has both the current and legacy Tag_MPextension_use attributes"
 msgstr ""
 
-#: elf32-arm.c:13570
+#: elf32-arm.c:13590
 msgid "error: %B uses VFP register arguments, %B does not"
 msgstr ""
 
-#: elf32-arm.c:13728
+#: elf32-arm.c:13748
 msgid "error: %B: unable to merge virtualization attributes with %B"
 msgstr ""
 
-#: elf32-arm.c:13754
+#: elf32-arm.c:13774
 msgid "error: %B: Conflicting architecture profiles %c/%c"
 msgstr ""
 
-#: elf32-arm.c:13884
+#: elf32-arm.c:13913
 msgid "Warning: %B: Conflicting platform configuration"
 msgstr ""
 
-#: elf32-arm.c:13893
+#: elf32-arm.c:13922
 msgid "error: %B: Conflicting use of R9"
 msgstr ""
 
-#: elf32-arm.c:13905
+#: elf32-arm.c:13934
 msgid "error: %B: SB relative addressing conflicts with use of R9"
 msgstr ""
 
-#: elf32-arm.c:13918
+#: elf32-arm.c:13947
 msgid ""
 "warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; "
 "use of wchar_t values across objects may fail"
 msgstr ""
 
-#: elf32-arm.c:13949
+#: elf32-arm.c:13978
 msgid ""
 "warning: %B uses %s enums yet the output is to use %s enums; use of enum "
 "values across objects may fail"
 msgstr ""
 
-#: elf32-arm.c:13961
+#: elf32-arm.c:13990
 msgid "error: %B uses iWMMXt register arguments, %B does not"
 msgstr ""
 
-#: elf32-arm.c:13978
+#: elf32-arm.c:14007
 msgid "error: fp16 format mismatch between %B and %B"
 msgstr ""
 
-#: elf32-arm.c:14014
-msgid "%B has has both the current and legacy Tag_MPextension_use attributes"
+#: elf32-arm.c:14043
+msgid "%B has both the current and legacy Tag_MPextension_use attributes"
 msgstr ""
 
 #. Ignore init flag - it may not be set, despite the flags field
@@ -1680,207 +1752,206 @@ msgstr ""
 #. Ignore init flag - it may not be set, despite the flags field containing valid data.
 #. Ignore init flag - it may not be set, despite the flags field
 #. containing valid data.
-#: elf32-arm.c:14101 elf32-bfin.c:4919 elf32-cris.c:4089 elf32-m68hc1x.c:1413
-#: elf32-m68k.c:1200 elf32-score.c:4009 elf32-score7.c:3818 elf32-vax.c:536
-#: elf32-xgate.c:669 elfxx-mips.c:15782
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6695
+#: elf32-arm.c:14130 elf32-bfin.c:4918 elf32-cris.c:4089 elf32-m68hc1x.c:1413
+#: elf32-m68k.c:1200 elf32-score.c:4002 elf32-score7.c:3807 elf32-vax.c:536
+#: elf32-xgate.c:669 elfxx-mips.c:15801
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6660
 #, c-format
 msgid "private flags = %lx:"
 msgstr ""
 
-#: elf32-arm.c:14110
+#: elf32-arm.c:14139
 #, c-format
 msgid " [interworking enabled]"
 msgstr ""
 
-#: elf32-arm.c:14118
+#: elf32-arm.c:14147
 #, c-format
 msgid " [VFP float format]"
 msgstr ""
 
-#: elf32-arm.c:14120
+#: elf32-arm.c:14149
 #, c-format
 msgid " [Maverick float format]"
 msgstr ""
 
-#: elf32-arm.c:14122
+#: elf32-arm.c:14151
 #, c-format
 msgid " [FPA float format]"
 msgstr ""
 
-#: elf32-arm.c:14131
+#: elf32-arm.c:14160
 #, c-format
 msgid " [new ABI]"
 msgstr ""
 
-#: elf32-arm.c:14134
+#: elf32-arm.c:14163
 #, c-format
 msgid " [old ABI]"
 msgstr ""
 
-#: elf32-arm.c:14137
+#: elf32-arm.c:14166
 #, c-format
 msgid " [software FP]"
 msgstr ""
 
-#: elf32-arm.c:14146
+#: elf32-arm.c:14175
 #, c-format
 msgid " [Version1 EABI]"
 msgstr ""
 
-#: elf32-arm.c:14149 elf32-arm.c:14160
+#: elf32-arm.c:14178 elf32-arm.c:14189
 #, c-format
 msgid " [sorted symbol table]"
 msgstr ""
 
-#: elf32-arm.c:14151 elf32-arm.c:14162
+#: elf32-arm.c:14180 elf32-arm.c:14191
 #, c-format
 msgid " [unsorted symbol table]"
 msgstr ""
 
-#: elf32-arm.c:14157
+#: elf32-arm.c:14186
 #, c-format
 msgid " [Version2 EABI]"
 msgstr ""
 
-#: elf32-arm.c:14165
+#: elf32-arm.c:14194
 #, c-format
 msgid " [dynamic symbols use segment index]"
 msgstr ""
 
-#: elf32-arm.c:14168
+#: elf32-arm.c:14197
 #, c-format
 msgid " [mapping symbols precede others]"
 msgstr ""
 
-#: elf32-arm.c:14175
+#: elf32-arm.c:14204
 #, c-format
 msgid " [Version3 EABI]"
 msgstr ""
 
-#: elf32-arm.c:14179
+#: elf32-arm.c:14208
 #, c-format
 msgid " [Version4 EABI]"
 msgstr ""
 
-#: elf32-arm.c:14183
+#: elf32-arm.c:14212
 #, c-format
 msgid " [Version5 EABI]"
 msgstr ""
 
-#: elf32-arm.c:14186
+#: elf32-arm.c:14215
 #, c-format
 msgid " [soft-float ABI]"
 msgstr ""
 
-#: elf32-arm.c:14189
+#: elf32-arm.c:14218
 #, c-format
 msgid " [hard-float ABI]"
 msgstr ""
 
-#: elf32-arm.c:14195
+#: elf32-arm.c:14224
 #, c-format
 msgid " [BE8]"
 msgstr ""
 
-#: elf32-arm.c:14198
+#: elf32-arm.c:14227
 #, c-format
 msgid " [LE8]"
 msgstr ""
 
-#: elf32-arm.c:14204
+#: elf32-arm.c:14233
 #, c-format
 msgid " <EABI version unrecognised>"
 msgstr ""
 
-#: elf32-arm.c:14211
+#: elf32-arm.c:14240
 #, c-format
 msgid " [relocatable executable]"
 msgstr ""
 
-#: elf32-arm.c:14216 /work/sources/binutils/current/bfd/elfnn-aarch64.c:6698
+#: elf32-arm.c:14245 /work/sources/binutils/current/bfd/elfnn-aarch64.c:6663
 #, c-format
 msgid "<Unrecognised flag bits set>"
 msgstr ""
 
-#: elf32-arm.c:14526 elf32-i386.c:1914 elf32-s390.c:956 elf32-tic6x.c:2814
-#: elf32-tilepro.c:1491 elf32-xtensa.c:1004 elf64-s390.c:871
-#: elf64-x86-64.c:2258 elfxx-sparc.c:1411 elfxx-tilegx.c:1708
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7099
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:530
+#: elf32-arm.c:14555 elf32-i386.c:2031 elf32-s390.c:956 elf32-tic6x.c:2814
+#: elf32-tilepro.c:1491 elf32-xtensa.c:1018 elf64-s390.c:875
+#: elf64-x86-64.c:2421 elfxx-sparc.c:1440 elfxx-tilegx.c:1708
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7109
+#: /work/sources/binutils/current/bfd/elfnn-riscv.c:526
 #, c-format
 msgid "%B: bad symbol index: %d"
 msgstr ""
 
-#: elf32-arm.c:16024
-#, c-format
-msgid "Errors encountered processing file %s"
+#: elf32-arm.c:16053
+msgid "Errors encountered processing file %B"
 msgstr ""
 
-#: elf32-arm.c:16463 elflink.c:12197 elflink.c:12244
+#: elf32-arm.c:16491 elflink.c:12302 elflink.c:12349
 #, c-format
 msgid "could not find section %s"
 msgstr ""
 
-#: elf32-arm.c:17635
+#: elf32-arm.c:17667
 msgid "%B: error: Cortex-A8 erratum stub is allocated in unsafe location"
 msgstr ""
 
 #. There's not much we can do apart from complain if this
 #. happens.
-#: elf32-arm.c:17662
+#: elf32-arm.c:17694
 msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)"
 msgstr ""
 
-#: elf32-arm.c:18489 elf32-arm.c:18511
+#: elf32-arm.c:18521 elf32-arm.c:18543
 msgid "%B: error: VFP11 veneer out of range"
 msgstr ""
 
-#: elf32-arm.c:18562
+#: elf32-arm.c:18594
 msgid ""
-"%B(%#x): error: Cannot create STM32L4XX veneer. Jump out of range by %ld "
+"%B(%#Lx): error: Cannot create STM32L4XX veneer. Jump out of range by %Ld "
 "bytes. Cannot encode branch instruction. "
 msgstr ""
 
-#: elf32-arm.c:18600
+#: elf32-arm.c:18632
 msgid "%B: error: Cannot create STM32L4XX veneer."
 msgstr ""
 
-#: elf32-arm.c:19621
+#: elf32-arm.c:19653
 msgid "error: %B is already in final BE8 format"
 msgstr ""
 
-#: elf32-arm.c:19697
+#: elf32-arm.c:19729
 msgid ""
 "error: Source object %B has EABI version %d, but target %B has EABI version "
 "%d"
 msgstr ""
 
-#: elf32-arm.c:19713
+#: elf32-arm.c:19744
 msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d"
 msgstr ""
 
-#: elf32-arm.c:19738
+#: elf32-arm.c:19768
 msgid "error: %B uses VFP instructions, whereas %B does not"
 msgstr ""
 
-#: elf32-arm.c:19742
+#: elf32-arm.c:19772
 msgid "error: %B uses FPA instructions, whereas %B does not"
 msgstr ""
 
-#: elf32-arm.c:19752
+#: elf32-arm.c:19782
 msgid "error: %B uses Maverick instructions, whereas %B does not"
 msgstr ""
 
-#: elf32-arm.c:19756
+#: elf32-arm.c:19786
 msgid "error: %B does not use Maverick instructions, whereas %B does"
 msgstr ""
 
-#: elf32-arm.c:19775
+#: elf32-arm.c:19805
 msgid "error: %B uses software FP, whereas %B uses hardware FP"
 msgstr ""
 
-#: elf32-arm.c:19779
+#: elf32-arm.c:19809
 msgid "error: %B uses hardware FP, whereas %B uses software FP"
 msgstr ""
 
@@ -1889,20 +1960,19 @@ msgstr ""
 msgid "%B: invalid AVR reloc number: %d"
 msgstr ""
 
-#: elf32-avr.c:1510 elf32-bfin.c:3202 elf32-cris.c:2033 elf32-epiphany.c:574
+#: elf32-avr.c:1510 elf32-bfin.c:3201 elf32-cris.c:2033 elf32-epiphany.c:574
 #: elf32-fr30.c:599 elf32-frv.c:4049 elf32-ft32.c:342 elf32-i860.c:1218
 #: elf32-ip2k.c:1486 elf32-iq2000.c:701 elf32-m32c.c:629 elf32-mep.c:532
-#: elf32-metag.c:2009 elf32-moxie.c:293 elf32-msp430.c:1365 elf32-mt.c:404
-#: elf32-or1k.c:1266 elf32-tilepro.c:3673 elf32-v850.c:2295 elf32-visium.c:685
-#: elf32-xstormy16.c:935 elf64-mmix.c:1548 elfxx-tilegx.c:4060
+#: elf32-metag.c:2008 elf32-moxie.c:293 elf32-msp430.c:1365 elf32-mt.c:404
+#: elf32-or1k.c:1266 elf32-tilepro.c:3665 elf32-v850.c:2295 elf32-visium.c:685
+#: elf32-xstormy16.c:935 elf64-mmix.c:1546 elfxx-tilegx.c:4052
 #: /work/sources/binutils/current/bfd/elfnn-riscv.c:2275
 msgid "internal error: dangerous relocation"
 msgstr ""
 
-#: elf32-avr.c:3287 elf32-hppa.c:587 elf32-m68hc1x.c:165 elf32-metag.c:1198
-#: elf32-nios2.c:2227
+#: elf32-avr.c:3319 /work/sources/binutils/current/bfd/elfnn-aarch64.c:2880
 #, c-format
-msgid "%B: cannot create stub entry %s"
+msgid "cannot create stub entry %s"
 msgstr ""
 
 #: elf32-bfin.c:106 elf32-bfin.c:362
@@ -1911,69 +1981,67 @@ msgstr ""
 
 #: elf32-bfin.c:1581
 #, c-format
-msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'"
+msgid "%B(%A+%#Lx): unresolvable relocation against symbol `%s'"
 msgstr ""
 
-#: elf32-bfin.c:1612 elf32-i386.c:5262 elf32-m68k.c:4160 elf32-s390.c:3418
-#: elf64-s390.c:3337 elf64-x86-64.c:5737
+#: elf32-bfin.c:1612 elf32-i386.c:5384 elf32-m68k.c:4159 elf32-s390.c:3429
+#: elf64-s390.c:3353 elf64-x86-64.c:5752
 #, c-format
-msgid "%B(%A+0x%lx): reloc against `%s': error %d"
+msgid "%B(%A+%#Lx): reloc against `%s': error %d"
 msgstr ""
 
-#: elf32-bfin.c:2706
+#: elf32-bfin.c:2705
 #, c-format
-msgid "%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend"
+msgid "%B: relocation at `%A+%#Lx' references symbol `%s' with nonzero addend"
 msgstr ""
 
-#: elf32-bfin.c:2722
+#: elf32-bfin.c:2721
 msgid "relocation references symbol not defined in the module"
 msgstr ""
 
-#: elf32-bfin.c:2819
+#: elf32-bfin.c:2818
 msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend"
 msgstr ""
 
-#: elf32-bfin.c:2860 elf32-bfin.c:2983
+#: elf32-bfin.c:2859 elf32-bfin.c:2982
 msgid "cannot emit fixups in read-only section"
 msgstr ""
 
-#: elf32-bfin.c:2891 elf32-bfin.c:3021 elf32-lm32.c:1064 elf32-sh.c:4930
+#: elf32-bfin.c:2890 elf32-bfin.c:3020 elf32-lm32.c:1064 elf32-sh.c:4930
 msgid "cannot emit dynamic relocations in read-only section"
 msgstr ""
 
-#: elf32-bfin.c:2941
+#: elf32-bfin.c:2940
 msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend"
 msgstr ""
 
-#: elf32-bfin.c:3106
+#: elf32-bfin.c:3105
 msgid "relocations between different segments are not supported"
 msgstr ""
 
-#: elf32-bfin.c:3107
+#: elf32-bfin.c:3106
 msgid "warning: relocation references a different segment"
 msgstr ""
 
-#: elf32-bfin.c:4877
+#: elf32-bfin.c:4876
 #, c-format
-msgid "%B: unsupported relocation type %i"
+msgid "%B: unsupported relocation type %d"
 msgstr ""
 
-#: elf32-bfin.c:4967 elf32-frv.c:6598
-#, c-format
-msgid "%s: cannot link non-fdpic object file into fdpic executable"
+#: elf32-bfin.c:4965 elf32-frv.c:6599
+msgid "%B: cannot link non-fdpic object file into fdpic executable"
 msgstr ""
 
-#: elf32-bfin.c:4971 elf32-frv.c:6602
-#, c-format
-msgid "%s: cannot link fdpic object file into non-fdpic executable"
+#: elf32-bfin.c:4969 elf32-frv.c:6603
+msgid "%B: cannot link fdpic object file into non-fdpic executable"
 msgstr ""
 
-#: elf32-bfin.c:5121
+#: elf32-bfin.c:5119
 #, c-format
 msgid "*** check this relocation %s"
 msgstr ""
 
-#: elf32-bfin.c:5237
+#: elf32-bfin.c:5235
 msgid ""
 "the bfin target does not currently support the generation of copy relocations"
 msgstr ""
@@ -2021,13 +2089,13 @@ msgstr ""
 #: elf32-cris.c:1304 elf32-tic6x.c:2635
 #, c-format
 msgid ""
-"%B, section %A: relocation %s with non-zero addend %d against local symbol"
+"%B, section %A: relocation %s with non-zero addend %Ld against local symbol"
 msgstr ""
 
 #: elf32-cris.c:1313 elf32-cris.c:1660 elf32-cris.c:1813 elf32-tic6x.c:2644
 #, c-format
 msgid ""
-"%B, section %A: relocation %s with non-zero addend %d against symbol `%s'"
+"%B, section %A: relocation %s with non-zero addend %Ld against symbol `%s'"
 msgstr ""
 
 #: elf32-cris.c:1340
@@ -2076,7 +2144,7 @@ msgstr ""
 #, c-format
 msgid ""
 "%B, section %A:\n"
-"  v10/v32 compatible object %s must not contain a PIC relocation"
+"  v10/v32 compatible object must not contain a PIC relocation"
 msgstr ""
 
 #: elf32-cris.c:3287
@@ -2282,19 +2350,18 @@ msgstr ""
 #: elf32-frv.c:6510
 #, c-format
 msgid ""
-"%s: compiled with %s and linked with modules that use non-pic relocations"
+"%B: compiled with %s and linked with modules that use non-pic relocations"
 msgstr ""
 
 #: elf32-frv.c:6564 elf32-iq2000.c:832 elf32-m32c.c:877
 #, c-format
-msgid "%s: compiled with %s and linked with modules compiled with %s"
+msgid "%B: compiled with %s and linked with modules compiled with %s"
 msgstr ""
 
 #: elf32-frv.c:6577
 #, c-format
 msgid ""
-"%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x"
-"%lx)"
+"%B: uses different unknown e_flags (%#x) fields than previous modules (%#x)"
 msgstr ""
 
 #: elf32-gen.c:69 elf64-gen.c:69
@@ -2302,9 +2369,9 @@ msgstr ""
 msgid "%B: Relocations in generic ELF (EM: %d)"
 msgstr ""
 
-#: elf32-hppa.c:839 elf32-hppa.c:3599
+#: elf32-hppa.c:839 elf32-hppa.c:3597
 #, c-format
-msgid "%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections"
+msgid "%B(%A+%#Lx): cannot reach %s, recompile with -ffunction-sections"
 msgstr ""
 
 #: elf32-hppa.c:1270
@@ -2319,18 +2386,18 @@ msgstr ""
 msgid "%B: duplicate export stub %s"
 msgstr ""
 
-#: elf32-hppa.c:3433
+#: elf32-hppa.c:3431
 #, c-format
 msgid ""
-"%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link"
+"%B(%A+%#Lx): %s fixup for insn %#x is not supported in a non-shared link"
 msgstr ""
 
-#: elf32-hppa.c:4290
+#: elf32-hppa.c:4288
 #, c-format
-msgid "%B(%A+0x%lx): cannot handle %s for %s"
+msgid "%B(%A+%#Lx): cannot handle %s for %s"
 msgstr ""
 
-#: elf32-hppa.c:4588
+#: elf32-hppa.c:4586
 msgid ".got section not immediately after .plt section"
 msgstr ""
 
@@ -2339,12 +2406,6 @@ msgstr ""
 msgid "%B: unrecognised I370 reloc number: %d"
 msgstr ""
 
-#: elf32-i370.c:359 elf32-m68hc1x.c:1388 elf32-ppc.c:4902 elf64-sparc.c:713
-#: elfxx-mips.c:15111
-#, c-format
-msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
-msgstr ""
-
 #: elf32-i370.c:1168
 msgid "%B: unknown relocation type %d for symbol %s"
 msgstr ""
@@ -2356,107 +2417,163 @@ msgstr ""
 
 #. Unknown relocation.
 #: elf32-i386.c:387 elf32-m68k.c:352 elf32-ppc.c:2074 elf32-s390.c:346
-#: elf32-tic6x.c:2674 elf32-wasm32.c:106 elf64-ppc.c:2515 elf64-s390.c:372
+#: elf32-tic6x.c:2674 elf32-wasm32.c:106 elf64-ppc.c:2516 elf64-s390.c:373
 #: elf64-x86-64.c:289
 #, c-format
 msgid "%B: invalid relocation type %d"
 msgstr ""
 
-#: elf32-i386.c:1570 elf64-x86-64.c:1703
+#: elf32-i386.c:1689 elf64-x86-64.c:1866
 #, c-format
 msgid ""
-"%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed"
+"%B: TLS transition from %s to %s against `%s' at %#Lx in section `%A' failed"
 msgstr ""
 
-#: elf32-i386.c:1658
+#: elf32-i386.c:1777
 #, c-format
 msgid ""
 "%B: direct GOT relocation R_386_GOT32X against `%s' without base register "
 "can not be used when making a shared object"
 msgstr ""
 
-#: elf32-i386.c:2116 elf32-s390.c:1188 elf32-sh.c:6056 elf32-tilepro.c:1608
-#: elf32-xtensa.c:1182 elf64-s390.c:1113 elfxx-sparc.c:1592 elfxx-tilegx.c:1817
-#: /work/sources/binutils/current/bfd/elfnn-riscv.c:444
+#: elf32-i386.c:2215 elf32-s390.c:1188 elf32-sh.c:6056 elf32-tilepro.c:1608
+#: elf32-xtensa.c:1196 elf64-s390.c:1117 elfxx-sparc.c:1625 elfxx-tilegx.c:1817
+#: /work/sources/binutils/current/bfd/elfnn-riscv.c:440
 #, c-format
 msgid "%B: `%s' accessed both as normal and thread local symbol"
 msgstr ""
 
-#: elf32-i386.c:2205
+#: elf32-i386.c:2292
 #, c-format
 msgid "%B: unsupported non-PIC call to IFUNC `%s'"
 msgstr ""
 
-#: elf32-i386.c:3106 elf64-x86-64.c:3553
+#: elf32-i386.c:3167 elf64-x86-64.c:3566
 #, c-format
 msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'\n"
 msgstr ""
 
-#: elf32-i386.c:3318 elf64-x86-64.c:3763
+#: elf32-i386.c:3380 elf64-x86-64.c:3775
 #, c-format
 msgid "%P: %B: warning: relocation in readonly section `%A'\n"
 msgstr ""
 
-#: elf32-i386.c:3600 elf64-x86-64.c:4081
+#: elf32-i386.c:3683 elf64-x86-64.c:4091
 msgid ""
 "%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n"
 msgstr ""
 
-#: elf32-i386.c:3838 elf32-tilepro.c:2868 elf64-x86-64.c:4286
-#: elfxx-tilegx.c:3167 /work/sources/binutils/current/bfd/elfnn-aarch64.c:6111
+#: elf32-i386.c:4212 elf64-x86-64.c:4520
 #, c-format
-msgid "%B: unrecognized relocation (0x%x) in section `%A'"
+msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported"
 msgstr ""
 
-#: elf32-i386.c:4120 elf64-x86-64.c:4514
-#, c-format
-msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported"
+#: elf32-i386.c:4247 elf32-i386.c:5614 elf32-i386.c:5753 elf64-x86-64.c:4579
+#: elf64-x86-64.c:5941 elf64-x86-64.c:6095
+msgid "Local IFUNC function `%s' in %B\n"
 msgstr ""
 
-#: elf32-i386.c:4370
+#: elf32-i386.c:4480
 #, c-format
 msgid ""
 "%B: direct GOT relocation %s against `%s' without base register can not be "
 "used when making a shared object"
 msgstr ""
 
-#: elf32-i386.c:4403 elf64-x86-64.c:4761
+#: elf32-i386.c:4515 elf64-x86-64.c:4786
 msgid "hidden symbol"
 msgstr ""
 
-#: elf32-i386.c:4406 elf64-x86-64.c:4764
+#: elf32-i386.c:4518 elf64-x86-64.c:4789
 msgid "internal symbol"
 msgstr ""
 
-#: elf32-i386.c:4409 elf64-x86-64.c:4767
+#: elf32-i386.c:4521 elf64-x86-64.c:4792
 msgid "protected symbol"
 msgstr ""
 
-#: elf32-i386.c:4412 elf64-x86-64.c:4770
+#: elf32-i386.c:4524 elf64-x86-64.c:4795
 msgid "symbol"
 msgstr ""
 
-#: elf32-i386.c:4418
+#: elf32-i386.c:4530
 #, c-format
 msgid ""
 "%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when "
 "making a shared object"
 msgstr ""
 
-#: elf32-i386.c:4430
+#: elf32-i386.c:4543
 #, c-format
 msgid ""
 "%B: relocation R_386_GOTOFF against protected %s `%s' can not be used when "
 "making a shared object"
 msgstr ""
 
-#: elf32-i386.c:5917 elf32-tilepro.c:3920 elf64-x86-64.c:6439
-#: elfxx-tilegx.c:4327 /work/sources/binutils/current/bfd/elfnn-aarch64.c:9215
+#: elf32-i386.c:6088 elf32-tilepro.c:3912 elf64-x86-64.c:6442
+#: elfxx-tilegx.c:4319 /work/sources/binutils/current/bfd/elfnn-aarch64.c:9279
 #: /work/sources/binutils/current/bfd/elfnn-riscv.c:2522
 #, c-format
 msgid "discarded output section: `%A'"
 msgstr ""
 
+#: elf32-i386.c:6656 elf64-x86-64.c:7178
+msgid "error: %B: <corrupt x86 ISA used size: 0x%x>"
+msgstr ""
+
+#: elf32-i386.c:6658 elf64-x86-64.c:7180
+msgid "error: %B: <corrupt x86 ISA needed size: 0x%x>"
+msgstr ""
+
+#: elf32-i386.c:6659 elf64-x86-64.c:7181
+msgid "error: %B: <corrupt x86 feature size: 0x%x>"
+msgstr ""
+
+#: elf32-i386.c:6836 elf64-x86-64.c:7358
+#, c-format
+msgid "%F: failed to create GNU property section\n"
+msgstr ""
+
+#: elf32-i386.c:6931
+#, c-format
+msgid "%F: failed to create VxWorks dynamic sections\n"
+msgstr ""
+
+#: elf32-i386.c:6998 elf64-x86-64.c:7519
+#, c-format
+msgid "%F: failed to create GOT sections\n"
+msgstr ""
+
+#: elf32-i386.c:7003 elf64-x86-64.c:7535
+#, c-format
+msgid "%F: failed to create ifunc sections\n"
+msgstr ""
+
+#: elf32-i386.c:7046 elf64-x86-64.c:7578
+#, c-format
+msgid "%F: failed to create GOT PLT section\n"
+msgstr ""
+
+#: elf32-i386.c:7067 elf64-x86-64.c:7599
+#, c-format
+msgid "%F: failed to create IBT-enabled PLT section\n"
+msgstr ""
+
+#: elf32-i386.c:7088 elf64-x86-64.c:7635
+#, c-format
+msgid "%F: failed to create PLT .eh_frame section\n"
+msgstr ""
+
+#: elf32-i386.c:7101 elf64-x86-64.c:7649
+#, c-format
+msgid "%F: failed to create GOT PLT .eh_frame section\n"
+msgstr ""
+
+#: elf32-i386.c:7121 elf64-x86-64.c:7364
+#, c-format
+msgid "%F%A: failed to align section\n"
+msgstr ""
+
 #: elf32-i960.c:140
 #, c-format
 msgid "%B: invalid i960 reloc number: %d"
@@ -2478,12 +2595,12 @@ msgstr ""
 
 #: elf32-ip2k.c:1298
 #, c-format
-msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)."
+msgid "ip2k linker: missing page instruction at %#Lx (dest = %#Lx)"
 msgstr ""
 
 #: elf32-ip2k.c:1315
 #, c-format
-msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)."
+msgid "ip2k linker: redundant page instruction at %#Lx (dest = %#Lx)"
 msgstr ""
 
 #: elf32-iq2000.c:441
@@ -2522,31 +2639,31 @@ msgstr ""
 msgid "SDA relocation when _SDA_BASE_ not defined"
 msgstr ""
 
-#: elf32-m32r.c:2984
+#: elf32-m32r.c:2985 elf32-microblaze.c:1080 elf32-microblaze.c:1128
 #, c-format
 msgid "%B: The target (%s) of an %s relocation is in the wrong section (%A)"
 msgstr ""
 
-#: elf32-m32r.c:3486
+#: elf32-m32r.c:3487
 msgid "%B: Instruction set mismatch with previous modules"
 msgstr ""
 
-#: elf32-m32r.c:3507 elf32-nds32.c:6111
+#: elf32-m32r.c:3508 elf32-nds32.c:6111
 #, c-format
 msgid "private flags = %lx"
 msgstr ""
 
-#: elf32-m32r.c:3512
+#: elf32-m32r.c:3513
 #, c-format
 msgid ": m32r instructions"
 msgstr ""
 
-#: elf32-m32r.c:3513
+#: elf32-m32r.c:3514
 #, c-format
 msgid ": m32rx instructions"
 msgstr ""
 
-#: elf32-m32r.c:3514
+#: elf32-m32r.c:3515
 #, c-format
 msgid ": m32r2 instructions"
 msgstr ""
@@ -2662,7 +2779,7 @@ msgstr ""
 msgid " [XGATE RAM offsetting]"
 msgstr ""
 
-#: elf32-m68k.c:1215 elf32-m68k.c:1216 vms-alpha.c:7256 vms-alpha.c:7272
+#: elf32-m68k.c:1215 elf32-m68k.c:1216 vms-alpha.c:7477 vms-alpha.c:7493
 msgid "unknown"
 msgstr ""
 
@@ -2676,11 +2793,6 @@ msgstr ""
 msgid "%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d"
 msgstr ""
 
-#: elf32-m68k.c:3890
-#, c-format
-msgid "%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object"
-msgstr ""
-
 #: elf32-mcore.c:100 elf32-mcore.c:455
 #, c-format
 msgid "%B: Relocation %s (%d) is not currently supported.\n"
@@ -2717,12 +2829,12 @@ msgstr ""
 msgid "%B and %B are for different cores"
 msgstr ""
 
-#: elf32-mep.c:638
+#: elf32-mep.c:639
 #, c-format
 msgid "%B and %B are for different configurations"
 msgstr ""
 
-#: elf32-mep.c:675
+#: elf32-mep.c:677
 #, c-format
 msgid "private flags = 0x%lx"
 msgstr ""
@@ -2741,38 +2853,21 @@ msgid ""
 "%B(%A): shared library symbol %s encountered whilst performing a static link"
 msgstr ""
 
-#: elf32-metag.c:1931
-#, c-format
-msgid ""
-"%B(%A+0x%lx): R_METAG_TLS_LE/IENONPIC relocation not permitted in shared "
-"object"
-msgstr ""
-
 #: elf32-microblaze.c:656
 #, c-format
 msgid "%B: unrecognised MicroBlaze reloc number: %d"
 msgstr ""
 
-#: elf32-microblaze.c:952
-#, c-format
-msgid "%s: unknown relocation type %d"
-msgstr ""
-
-#: elf32-microblaze.c:1080 elf32-microblaze.c:1128
-#, c-format
-msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
-msgstr ""
-
-#: elf32-microblaze.c:1496 elf32-or1k.c:1072 elf32-tilepro.c:3317
-#: elfxx-sparc.c:3564 elfxx-tilegx.c:3726
+#: elf32-microblaze.c:1496 elf32-or1k.c:1072 elf32-tilepro.c:3309
+#: elfxx-sparc.c:3705 elfxx-tilegx.c:3718
 msgid "%B: probably compiled without -fPIC?"
 msgstr ""
 
-#: elf32-mips.c:1777 elf64-mips.c:3206 elfn32-mips.c:3010
+#: elf32-mips.c:1777 elf64-mips.c:3200 elfn32-mips.c:3010
 msgid "literal relocation occurs for an external symbol"
 msgstr ""
 
-#: elf32-mips.c:1824 elf32-score.c:569 elf32-score7.c:469 elf64-mips.c:3249
+#: elf32-mips.c:1824 elf32-score.c:569 elf32-score7.c:469 elf64-mips.c:3243
 #: elfn32-mips.c:3051
 msgid "32bits gp relative relocation occurs for an external symbol"
 msgstr ""
@@ -2805,17 +2900,17 @@ msgstr ""
 msgid "internal error: branch/jump to an odd address detected"
 msgstr ""
 
-#: elf32-msp430.c:2354
+#: elf32-msp430.c:2356
 #, c-format
 msgid "Warning: %B: Unknown MSPABI object attribute %d"
 msgstr ""
 
-#: elf32-msp430.c:2447
+#: elf32-msp430.c:2449
 #, c-format
 msgid "error: %B uses %s instructions but %B uses %s"
 msgstr ""
 
-#: elf32-msp430.c:2460
+#: elf32-msp430.c:2461
 #, c-format
 msgid "error: %B uses the %s code model whereas %B uses the %s code model"
 msgstr ""
@@ -2830,12 +2925,12 @@ msgstr ""
 msgid "error: %B uses the %s data model whereas %B uses the %s data model"
 msgstr ""
 
-#: elf32-msp430.c:2497
+#: elf32-msp430.c:2496
 #, c-format
 msgid "error: %B uses the small code model but %B uses the %s data model"
 msgstr ""
 
-#: elf32-msp430.c:2509
+#: elf32-msp430.c:2508
 #, c-format
 msgid "error: %B uses the %s data model but %B only uses MSP430 instructions"
 msgstr ""
@@ -2868,8 +2963,7 @@ msgid "%B: error: unknown relocation typ
 msgstr ""
 
 #: elf32-nds32.c:4972
-#, c-format
-msgid "%s: warning: cannot deal R_NDS32_25_ABS_RELA in shared mode."
+msgid "%B: warning: cannot deal R_NDS32_25_ABS_RELA in shared mode."
 msgstr ""
 
 #: elf32-nds32.c:5106
@@ -2931,7 +3025,7 @@ msgstr ""
 
 #: elf32-nds32.c:8989
 #, c-format
-msgid "%B: warning: %s points to unrecognized reloc at 0x%lx."
+msgid "%B: warning: %s points to unrecognized reloc at %#Lx"
 msgstr ""
 
 #: elf32-nds32.c:11850 elf32-nds32.c:11867
@@ -2948,7 +3042,7 @@ msgstr ""
 msgid "%B: Unmatched OMIT_FP in %A."
 msgstr ""
 
-#: elf32-nds32.c:13026 reloc.c:8215
+#: elf32-nds32.c:13026 reloc.c:8234
 #, c-format
 msgid "%X%P: %B(%A): relocation \"%R\" goes out of range\n"
 msgstr ""
@@ -2964,12 +3058,13 @@ msgstr ""
 #: elf32-nds32.c:15436
 #, c-format
 msgid ""
-"%s: warning: unaligned small data access. For entry: {%d, %d, %d}, addr = 0x"
-"%x, align = 0x%x."
+"%B: warning: unaligned small data access for entry: {%Ld, %Ld, %Ld}, addr = "
+"%#Lx, align = %#x"
 msgstr ""
 
 #: elf32-nds32.c:15469
-msgid "%P%F: failed creating ex9.it %s hash table: %E\n"
+#, c-format
+msgid "failed creating ex9.it %s hash table entry"
 msgstr ""
 
 #: elf32-nios2.c:2949
@@ -2989,12 +3084,6 @@ msgid ""
 "the offset (%d) is out of the allowed range, -32678 to 32767.\n"
 msgstr ""
 
-#: elf32-nios2.c:4372
-#, c-format
-msgid ""
-"%B(%A+0x%lx): R_NIOS2_TLS_LE16 relocation not permitted in shared object"
-msgstr ""
-
 #: elf32-nios2.c:4500 elf32-pru.c:816
 msgid "relocation out of range"
 msgstr ""
@@ -3076,73 +3165,73 @@ msgstr ""
 msgid "failed to install new APUinfo section."
 msgstr ""
 
-#: elf32-ppc.c:3968
+#: elf32-ppc.c:3975
 #, c-format
 msgid "%B: relocation %s cannot be used when making a shared object"
 msgstr ""
 
-#: elf32-ppc.c:4322 elf64-ppc.c:5579
+#: elf32-ppc.c:4329 elf64-ppc.c:5600
 #, c-format
 msgid "%H: %s reloc against local symbol\n"
 msgstr ""
 
-#: elf32-ppc.c:4684 elf32-ppc.c:4688
+#: elf32-ppc.c:4691 elf32-ppc.c:4695
 #, c-format
 msgid "Warning: %B uses hard float, %B uses soft float"
 msgstr ""
 
-#: elf32-ppc.c:4692 elf32-ppc.c:4697
+#: elf32-ppc.c:4699 elf32-ppc.c:4704
 #, c-format
 msgid ""
 "Warning: %B uses double-precision hard float, %B uses single-precision hard "
 "float"
 msgstr ""
 
-#: elf32-ppc.c:4712 elf32-ppc.c:4717
+#: elf32-ppc.c:4719 elf32-ppc.c:4724
 #, c-format
 msgid "Warning: %B uses 64-bit long double, %B uses 128-bit long double"
 msgstr ""
 
-#: elf32-ppc.c:4722 elf32-ppc.c:4727
+#: elf32-ppc.c:4729 elf32-ppc.c:4734
 #, c-format
 msgid "Warning: %B uses IBM long double, %B uses IEEE long double"
 msgstr ""
 
-#: elf32-ppc.c:4778 elf32-ppc.c:4783
+#: elf32-ppc.c:4785 elf32-ppc.c:4790
 #, c-format
 msgid "Warning: %B uses AltiVec vector ABI, %B uses SPE vector ABI"
 msgstr ""
 
-#: elf32-ppc.c:4806 elf32-ppc.c:4811
+#: elf32-ppc.c:4813 elf32-ppc.c:4818
 #, c-format
 msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory"
 msgstr ""
 
-#: elf32-ppc.c:4866
+#: elf32-ppc.c:4873
 msgid ""
 "%B: compiled with -mrelocatable and linked with modules compiled normally"
 msgstr ""
 
-#: elf32-ppc.c:4874
+#: elf32-ppc.c:4881
 msgid ""
 "%B: compiled normally and linked with modules compiled with -mrelocatable"
 msgstr ""
 
-#: elf32-ppc.c:4943
+#: elf32-ppc.c:4950
 #, c-format
 msgid "%B(%A+0x%lx): expected 16A style relocation on 0x%08x insn"
 msgstr ""
 
-#: elf32-ppc.c:4962
+#: elf32-ppc.c:4969
 #, c-format
 msgid "%B(%A+0x%lx): expected 16D style relocation on 0x%08x insn"
 msgstr ""
 
-#: elf32-ppc.c:5037
+#: elf32-ppc.c:5043
 msgid "%P: bss-plt forced due to %B\n"
 msgstr ""
 
-#: elf32-ppc.c:5040
+#: elf32-ppc.c:5046
 msgid "%P: bss-plt forced by profiling\n"
 msgstr ""
 
@@ -3150,31 +3239,31 @@ msgstr ""
 #. could just mark this symbol to exclude it
 #. from tls optimization but it's safer to skip
 #. the entire optimization.
-#: elf32-ppc.c:5539 elf64-ppc.c:8749
+#: elf32-ppc.c:5544 elf64-ppc.c:8826
 #, c-format
 msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
 msgstr ""
 
-#: elf32-ppc.c:8246
+#: elf32-ppc.c:8249
 msgid "%H: fixup branch overflow\n"
 msgstr ""
 
-#: elf32-ppc.c:8286 elf32-ppc.c:8321
+#: elf32-ppc.c:8289 elf32-ppc.c:8324
 #, c-format
-msgid "%H: error: %s with unexpected instruction %x\n"
+msgid "%B(%A+%#Lx): error: %s with unexpected instruction %#x"
 msgstr ""
 
-#: elf32-ppc.c:8377
+#: elf32-ppc.c:8380
 #, c-format
 msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
 msgstr ""
 
-#: elf32-ppc.c:8431
+#: elf32-ppc.c:8434
 #, c-format
 msgid "%P: %B: unknown relocation type %d for symbol %s\n"
 msgstr ""
 
-#: elf32-ppc.c:8722
+#: elf32-ppc.c:8718
 #, c-format
 msgid "%H: non-zero addend on %s reloc against `%s'\n"
 msgstr ""
@@ -3187,62 +3276,62 @@ msgstr ""
 #. local won't have the +32k reloc addend trick marking
 #. -fPIC code, so the linker won't know whether r30 is
 #. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section.
-#: elf32-ppc.c:8754
+#: elf32-ppc.c:8750
 #, c-format
 msgid "%X%H: @local call to ifunc %s\n"
 msgstr ""
 
-#: elf32-ppc.c:8939
+#: elf32-ppc.c:8930
 #, c-format
 msgid "%H: relocation %s for indirect function %s unsupported\n"
 msgstr ""
 
-#: elf32-ppc.c:9236 elf32-ppc.c:9267 elf32-ppc.c:9358
+#: elf32-ppc.c:9199 elf32-ppc.c:9230 elf32-ppc.c:9321
 #, c-format
 msgid ""
 "%P: %B: the target (%s) of a %s relocation is in the wrong output section "
 "(%s)\n"
 msgstr ""
 
-#: elf32-ppc.c:9446
+#: elf32-ppc.c:9409
 #, c-format
 msgid ""
 "%B: the target (%s) of a %s relocation is in the wrong output section (%s)"
 msgstr ""
 
-#: elf32-ppc.c:9550
+#: elf32-ppc.c:9513
 #, c-format
 msgid "%P: %B: relocation %s is not yet supported for symbol %s\n"
 msgstr ""
 
-#: elf32-ppc.c:9635
+#: elf32-ppc.c:9598
 #, c-format
 msgid "%H: error: %s against `%s' not a multiple of %u\n"
 msgstr ""
 
-#: elf32-ppc.c:9664
+#: elf32-ppc.c:9627
 #, c-format
 msgid "%H: unresolvable %s relocation against symbol `%s'\n"
 msgstr ""
 
-#: elf32-ppc.c:9745
+#: elf32-ppc.c:9708
 #, c-format
 msgid "%H: %s reloc against `%s': error %d\n"
 msgstr ""
 
-#: elf32-ppc.c:10509 elf64-ppc.c:15641
+#: elf32-ppc.c:10472 elf64-ppc.c:15763
 msgid ""
 "%X%P: text relocations and GNU indirect functions will result in a segfault "
 "at runtime\n"
 msgstr ""
 
-#: elf32-ppc.c:10513 elf64-ppc.c:15645
+#: elf32-ppc.c:10476 elf64-ppc.c:15767
 msgid ""
 "%P: warning: text relocations and GNU indirect functions may result in a "
 "segfault at runtime\n"
 msgstr ""
 
-#: elf32-ppc.c:10558
+#: elf32-ppc.c:10521
 #, c-format
 msgid "%P: %s not defined in linker created %s\n"
 msgstr ""
@@ -3271,12 +3360,12 @@ msgstr ""
 
 #: elf32-rl78.c:1201
 #, c-format
-msgid "RL78 ABI conflict: G10 file %s cannot be linked with %s file %s"
+msgid "RL78 ABI conflict: G10 file %B cannot be linked with %s file %B"
 msgstr ""
 
 #: elf32-rl78.c:1218
 #, c-format
-msgid "RL78 ABI conflict: cannot link %s file %s with %s file %s"
+msgid "RL78 ABI conflict: cannot link %s file %B with %s file %B"
 msgstr ""
 
 #: elf32-rl78.c:1227
@@ -3285,7 +3374,7 @@ msgstr ""
 
 #: elf32-rl78.c:1231 elf32-rl78.c:1235
 #, c-format
-msgid "- %s is 64-bit, %s is not"
+msgid "- %B is 64-bit, %B is not"
 msgstr ""
 
 #: elf32-rl78.c:1262
@@ -3319,7 +3408,7 @@ msgstr ""
 #. crt0.o before the PID base address register has been initialised.
 #: elf32-rx.c:686
 #, c-format
-msgid "%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)"
+msgid "%B(%A): unsafe PID relocation %s at %#Lx (against %s in %s)"
 msgstr ""
 
 #: elf32-rx.c:1266
@@ -3327,64 +3416,63 @@ msgid "Warning: RX_SYM reloc with an unk
 msgstr ""
 
 #: elf32-rx.c:3145
-#, c-format
-msgid "There is a conflict merging the ELF header flags from %s"
+msgid "There is a conflict merging the ELF header flags from %B"
 msgstr ""
 
-#: elf32-rx.c:3147
+#: elf32-rx.c:3148
 #, c-format
 msgid "  the input  file's flags: %s"
 msgstr ""
 
-#: elf32-rx.c:3149
+#: elf32-rx.c:3150
 #, c-format
 msgid "  the output file's flags: %s"
 msgstr ""
 
-#: elf32-rx.c:3756
+#: elf32-rx.c:3757
 #, c-format
 msgid "%B:%A: table %s missing corresponding %s"
 msgstr ""
 
-#: elf32-rx.c:3764
+#: elf32-rx.c:3765
 #, c-format
 msgid "%B:%A: %s and %s must be in the same input section"
 msgstr ""
 
-#: elf32-s390.c:2310 elf64-s390.c:2253
+#: elf32-s390.c:2310 elf64-s390.c:2257
 #, c-format
-msgid "%B(%A+0x%lx): invalid instruction for TLS relocation %s"
+msgid "%B(%A+%#Lx): invalid instruction for TLS relocation %s"
 msgstr ""
 
 #: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3756
 msgid "not enough GOT space for local GOT entries"
 msgstr ""
 
-#: elf32-score.c:2746
+#: elf32-score.c:2744
 msgid "address not word align"
 msgstr ""
 
-#: elf32-score.c:2832 elf32-score7.c:2641
+#: elf32-score.c:2825 elf32-score7.c:2630
 #, c-format
-msgid "%s: Malformed reloc detected for section %s"
+msgid "%B: Malformed reloc detected for section %A"
 msgstr ""
 
-#: elf32-score.c:2890 elf32-score7.c:2699
+#: elf32-score.c:2883 elf32-score7.c:2688
 #, c-format
-msgid "%B: CALL15 reloc at 0x%lx not against global symbol"
+msgid "%B: CALL15 reloc at %#Lx not against global symbol"
 msgstr ""
 
-#: elf32-score.c:4012 elf32-score7.c:3821
+#: elf32-score.c:4005 elf32-score7.c:3810
 #, c-format
 msgid " [pic]"
 msgstr ""
 
-#: elf32-score.c:4016 elf32-score7.c:3825
+#: elf32-score.c:4009 elf32-score7.c:3814
 #, c-format
 msgid " [fix dep]"
 msgstr ""
 
-#: elf32-score.c:4059 elf32-score7.c:3868
+#: elf32-score.c:4052 elf32-score7.c:3857
 msgid "%B: warning: linking PIC files with non-PIC files"
 msgstr ""
 
@@ -3408,38 +3496,43 @@ msgstr ""
 msgid "%B: unrecognised SH reloc number: %d"
 msgstr ""
 
+#: elf32-sh.c:592
+#, c-format
+msgid "%B: %#Lx: warning: R_SH_USES points to unrecognized insn 0x%x"
+msgstr ""
+
 #: elf32-sh.c:3953 elf64-sh64.c:1508
 msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled"
 msgstr ""
 
 #: elf32-sh.c:4206
 #, c-format
-msgid "%B: 0x%lx: fatal: unaligned branch target for relax-support relocation"
+msgid "%B: %#Lx: fatal: unaligned branch target for relax-support relocation"
 msgstr ""
 
 #: elf32-sh.c:4240 elf32-sh.c:4256
 #, c-format
-msgid "%B: 0x%lx: fatal: unaligned %s relocation 0x%lx"
+msgid "%B: %#Lx: fatal: unaligned %s relocation %#Lx"
 msgstr ""
 
 #: elf32-sh.c:4271
 #, c-format
-msgid "%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32"
+msgid "%B: %#Lx: fatal: R_SH_PSHA relocation %Ld not in range -32..32"
 msgstr ""
 
 #: elf32-sh.c:4286
 #, c-format
-msgid "%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32"
+msgid "%B: %#Lx: fatal: R_SH_PSHL relocation %Ld not in range -32..32"
 msgstr ""
 
 #: elf32-sh.c:4431 elf32-sh.c:4903
 #, c-format
-msgid "%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section"
+msgid "%B(%A+%#Lx): cannot emit fixup to `%s' in read-only section"
 msgstr ""
 
 #: elf32-sh.c:5005
 #, c-format
-msgid "%B(%A+0x%lx): %s relocation against external symbol \"%s\""
+msgid "%B(%A+%#Lx): %s relocation against external symbol \"%s\""
 msgstr ""
 
 #: elf32-sh.c:5469
@@ -3466,7 +3559,7 @@ msgstr ""
 msgid "%B: Function descriptor relocation with non-zero addend"
 msgstr ""
 
-#: elf32-sh.c:6320 elf64-alpha.c:4757
+#: elf32-sh.c:6320 elf64-alpha.c:4755
 #, c-format
 msgid "%B: TLS local exec code cannot be linked into shared objects"
 msgstr ""
@@ -3493,52 +3586,48 @@ msgstr ""
 msgid "%B: attempt to mix FDPIC and non-FDPIC objects"
 msgstr ""
 
-#: elf32-sh64.c:225 elf64-sh64.c:2276
+#: elf32-sh64.c:225 elf64-sh64.c:2277
 #, c-format
-msgid "%s: compiled as 32-bit object and %s is 64-bit"
+msgid "%B: compiled as 32-bit object and %B is 64-bit"
 msgstr ""
 
-#: elf32-sh64.c:229 elf64-sh64.c:2280
+#: elf32-sh64.c:229 elf64-sh64.c:2281
 #, c-format
-msgid "%s: compiled as 64-bit object and %s is 32-bit"
+msgid "%B: compiled as 64-bit object and %B is 32-bit"
 msgstr ""
 
-#: elf32-sh64.c:232 elf64-sh64.c:2283
+#: elf32-sh64.c:232 elf64-sh64.c:2284
 #, c-format
-msgid "%s: object size does not match that of target %s"
+msgid "%B: object size does not match that of target %B"
 msgstr ""
 
-#: elf32-sh64.c:455 elf64-sh64.c:2777
-#, c-format
-msgid "%s: encountered datalabel symbol in input"
+#: elf32-sh64.c:455 elf64-sh64.c:2776
+msgid "%B: encountered datalabel symbol in input"
 msgstr ""
 
-#: elf32-sh64.c:532
+#: elf32-sh64.c:531
 msgid "PTB mismatch: a SHmedia address (bit 0 == 1)"
 msgstr ""
 
-#: elf32-sh64.c:535
+#: elf32-sh64.c:534
 msgid "PTA mismatch: a SHcompact address (bit 0 == 0)"
 msgstr ""
 
-#: elf32-sh64.c:551
-#, c-format
-msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16"
+#: elf32-sh64.c:550
+msgid "%B: GAS error: unexpected PTB insn with R_SH_PT_16"
 msgstr ""
 
-#: elf32-sh64.c:601
+#: elf32-sh64.c:600
 #, c-format
-msgid "%B: error: unaligned relocation type %d at %08x reloc %p\n"
+msgid "%B: error: unaligned relocation type %d at %#Lx reloc %#Lx"
 msgstr ""
 
-#: elf32-sh64.c:677
-#, c-format
-msgid "%s: could not write out added .cranges entries"
+#: elf32-sh64.c:676
+msgid "%B: could not write out added .cranges entries"
 msgstr ""
 
-#: elf32-sh64.c:737
-#, c-format
-msgid "%s: could not write out sorted .cranges entries"
+#: elf32-sh64.c:735
+msgid "%B: could not write out sorted .cranges entries"
 msgstr ""
 
 #: elf32-sparc.c:89
@@ -3691,7 +3780,7 @@ msgstr ""
 
 #: elf32-spu.c:5043
 #, c-format
-msgid "%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'"
+msgid "%B(%s+%#Lx): unresolvable %s relocation against symbol `%s'"
 msgstr ""
 
 #: elf32-tic6x.c:1596
@@ -3794,190 +3883,190 @@ msgstr ""
 msgid "could not locate special linker symbol __ctbp"
 msgstr ""
 
-#: elf32-v850.c:2526
+#: elf32-v850.c:2528
 #, c-format
-msgid "error: %B needs 8-byte aligment but %B is set for 4-byte alignment"
+msgid "error: %B needs 8-byte alignment but %B is set for 4-byte alignment"
 msgstr ""
 
-#: elf32-v850.c:2542
+#: elf32-v850.c:2544
 #, c-format
 msgid "error: %B uses 64-bit doubles but %B uses 32-bit doubles"
 msgstr ""
 
-#: elf32-v850.c:2557
+#: elf32-v850.c:2559
 #, c-format
 msgid "error: %B uses FPU-3.0 but %B only supports FPU-2.0"
 msgstr ""
 
-#: elf32-v850.c:2589
+#: elf32-v850.c:2591
 #, c-format
 msgid " alignment of 8-byte entities: "
 msgstr ""
 
-#: elf32-v850.c:2592
+#: elf32-v850.c:2594
 #, c-format
 msgid "4-byte"
 msgstr ""
 
-#: elf32-v850.c:2593
+#: elf32-v850.c:2595
 #, c-format
 msgid "8-byte"
 msgstr ""
 
-#: elf32-v850.c:2594 elf32-v850.c:2606
+#: elf32-v850.c:2596 elf32-v850.c:2608
 #, c-format
 msgid "not set"
 msgstr ""
 
-#: elf32-v850.c:2595 elf32-v850.c:2607 elf32-v850.c:2619 elf32-v850.c:2630
-#: elf32-v850.c:2641 elf32-v850.c:2652
+#: elf32-v850.c:2597 elf32-v850.c:2609 elf32-v850.c:2621 elf32-v850.c:2632
+#: elf32-v850.c:2643 elf32-v850.c:2654
 #, c-format
 msgid "unknown: %x"
 msgstr ""
 
-#: elf32-v850.c:2601
+#: elf32-v850.c:2603
 #, c-format
 msgid " size of doubles: "
 msgstr ""
 
-#: elf32-v850.c:2604
+#: elf32-v850.c:2606
 #, c-format
 msgid "4-bytes"
 msgstr ""
 
-#: elf32-v850.c:2605
+#: elf32-v850.c:2607
 #, c-format
 msgid "8-bytes"
 msgstr ""
 
-#: elf32-v850.c:2613
+#: elf32-v850.c:2615
 #, c-format
 msgid " FPU support required: "
 msgstr ""
 
-#: elf32-v850.c:2616
+#: elf32-v850.c:2618
 #, c-format
 msgid "FPU-2.0"
 msgstr ""
 
-#: elf32-v850.c:2617
+#: elf32-v850.c:2619
 #, c-format
 msgid "FPU-3.0"
 msgstr ""
 
-#: elf32-v850.c:2618
+#: elf32-v850.c:2620
 #, c-format
 msgid "none"
 msgstr ""
 
-#: elf32-v850.c:2625
+#: elf32-v850.c:2627
 #, c-format
 msgid "SIMD use: "
 msgstr ""
 
-#: elf32-v850.c:2628 elf32-v850.c:2639 elf32-v850.c:2650
+#: elf32-v850.c:2630 elf32-v850.c:2641 elf32-v850.c:2652
 #, c-format
 msgid "yes"
 msgstr ""
 
-#: elf32-v850.c:2629 elf32-v850.c:2640 elf32-v850.c:2651
+#: elf32-v850.c:2631 elf32-v850.c:2642 elf32-v850.c:2653
 #, c-format
 msgid "no"
 msgstr ""
 
-#: elf32-v850.c:2636
+#: elf32-v850.c:2638
 #, c-format
 msgid "CACHE use: "
 msgstr ""
 
-#: elf32-v850.c:2647
+#: elf32-v850.c:2649
 #, c-format
 msgid "MMU use: "
 msgstr ""
 
-#: elf32-v850.c:2814 elf32-v850.c:2870
+#: elf32-v850.c:2816 elf32-v850.c:2872
 msgid "%B: Architecture mismatch with previous modules"
 msgstr ""
 
 #. xgettext:c-format.
-#: elf32-v850.c:2888
+#: elf32-v850.c:2890
 #, c-format
 msgid "private flags = %lx: "
 msgstr ""
 
-#: elf32-v850.c:2893
+#: elf32-v850.c:2895
 #, c-format
 msgid "unknown v850 architecture"
 msgstr ""
 
-#: elf32-v850.c:2895
+#: elf32-v850.c:2897
 #, c-format
 msgid "v850 E3 architecture"
 msgstr ""
 
-#: elf32-v850.c:2897 elf32-v850.c:2904
+#: elf32-v850.c:2899 elf32-v850.c:2906
 #, c-format
 msgid "v850 architecture"
 msgstr ""
 
-#: elf32-v850.c:2905
+#: elf32-v850.c:2907
 #, c-format
 msgid "v850e architecture"
 msgstr ""
 
-#: elf32-v850.c:2906
+#: elf32-v850.c:2908
 #, c-format
 msgid "v850e1 architecture"
 msgstr ""
 
-#: elf32-v850.c:2907
+#: elf32-v850.c:2909
 #, c-format
 msgid "v850e2 architecture"
 msgstr ""
 
-#: elf32-v850.c:2908
+#: elf32-v850.c:2910
 #, c-format
 msgid "v850e2v3 architecture"
 msgstr ""
 
-#: elf32-v850.c:2909
+#: elf32-v850.c:2911
 #, c-format
 msgid "v850e3v5 architecture"
 msgstr ""
 
-#: elf32-v850.c:3603
+#: elf32-v850.c:3605
 #, c-format
-msgid "%s: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insns"
+msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized insns"
 msgstr ""
 
-#: elf32-v850.c:3613
+#: elf32-v850.c:3615
 #, c-format
-msgid "%s: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insn 0x%x"
+msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized insn %#x"
 msgstr ""
 
-#: elf32-v850.c:3658
+#: elf32-v850.c:3660
 #, c-format
-msgid "%s: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc"
+msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized reloc"
 msgstr ""
 
-#: elf32-v850.c:3698
+#: elf32-v850.c:3700
 #, c-format
-msgid "%s: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc 0x%lx"
+msgid "%B: %#Lx: warning: R_V850_LONGCALL points to unrecognized reloc %#Lx"
 msgstr ""
 
-#: elf32-v850.c:3841
+#: elf32-v850.c:3843
 #, c-format
-msgid "%s: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insns"
+msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized insns"
 msgstr ""
 
-#: elf32-v850.c:3851
+#: elf32-v850.c:3853
 #, c-format
-msgid "%s: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insn 0x%x"
+msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized insn %#x"
 msgstr ""
 
-#: elf32-v850.c:3885
+#: elf32-v850.c:3887
 #, c-format
-msgid "%s: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized reloc"
+msgid "%B: %#Lx: warning: R_V850_LONGJUMP points to unrecognized reloc"
 msgstr ""
 
 #: elf32-vax.c:290
@@ -4003,23 +4092,23 @@ msgstr ""
 #: elf32-vax.c:635
 #, c-format
 msgid ""
-"%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of "
-"%ld"
+"%B: warning: GOT addend of %Ld to `%s' does not match previous GOT addend of "
+"%Ld"
 msgstr ""
 
-#: elf32-vax.c:1512
+#: elf32-vax.c:1511
 #, c-format
-msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored"
+msgid "%B: warning: PLT addend of %Ld to `%s' from %A section ignored"
 msgstr ""
 
-#: elf32-vax.c:1638
+#: elf32-vax.c:1636
 #, c-format
-msgid "%s: warning: %s relocation against symbol `%s' from %s section"
+msgid "%B: warning: %s relocation against symbol `%s' from %A section"
 msgstr ""
 
-#: elf32-vax.c:1645
+#: elf32-vax.c:1643
 #, c-format
-msgid "%s: warning: %s relocation to 0x%x from %s section"
+msgid "%B: warning: %s relocation to %#Lx from %A section"
 msgstr ""
 
 #: elf32-visium.c:481
@@ -4029,7 +4118,7 @@ msgstr ""
 
 #: elf32-visium.c:817
 #, c-format
-msgid "%s: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s"
+msgid "%B: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s"
 msgstr ""
 
 #: elf32-xgate.c:428
@@ -4047,8 +4136,8 @@ msgstr ""
 msgid "error reading cpu type from elf private data"
 msgstr ""
 
-#: elf32-xstormy16.c:453 elf64-ia64-vms.c:2073 elf32-ia64.c:2333
-#: elf64-ia64.c:2333
+#: elf32-xstormy16.c:453 elf64-ia64-vms.c:2074 elf32-ia64.c:2334
+#: elf64-ia64.c:2334
 msgid "non-zero addend in @fptr reloc"
 msgstr ""
 
@@ -4057,61 +4146,61 @@ msgstr ""
 msgid "%B: invalid XTENSA reloc number: %d"
 msgstr ""
 
-#: elf32-xtensa.c:912
+#: elf32-xtensa.c:926
 #, c-format
 msgid "%B(%A): invalid property table"
 msgstr ""
 
-#: elf32-xtensa.c:2776
+#: elf32-xtensa.c:2790
 #, c-format
-msgid "%B(%A+0x%lx): relocation offset out of range (size=0x%x)"
+msgid "%B(%A+%#Lx): relocation offset out of range (size=%#Lx)"
 msgstr ""
 
-#: elf32-xtensa.c:2857 elf32-xtensa.c:2976
+#: elf32-xtensa.c:2871 elf32-xtensa.c:2990
 msgid "dynamic relocation in read-only section"
 msgstr ""
 
-#: elf32-xtensa.c:2953
+#: elf32-xtensa.c:2967
 msgid "TLS relocation invalid without dynamic sections"
 msgstr ""
 
-#: elf32-xtensa.c:3164
+#: elf32-xtensa.c:3178
 msgid "internal inconsistency in size of .got.loc section"
 msgstr ""
 
-#: elf32-xtensa.c:3471
+#: elf32-xtensa.c:3485
 #, c-format
 msgid "%B: incompatible machine type. Output is 0x%x. Input is 0x%x"
 msgstr ""
 
-#: elf32-xtensa.c:4702 elf32-xtensa.c:4710
+#: elf32-xtensa.c:4716 elf32-xtensa.c:4724
 msgid "Attempt to convert L32R/CALLX to CALL failed"
 msgstr ""
 
-#: elf32-xtensa.c:6538 elf32-xtensa.c:6615 elf32-xtensa.c:7988
+#: elf32-xtensa.c:6552 elf32-xtensa.c:6630 elf32-xtensa.c:8006
 #, c-format
 msgid ""
-"%B(%A+0x%lx): could not decode instruction; possible configuration mismatch"
+"%B(%A+%#Lx): could not decode instruction; possible configuration mismatch"
 msgstr ""
 
-#: elf32-xtensa.c:7729
+#: elf32-xtensa.c:7745
 #, c-format
 msgid ""
-"%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY "
+"%B(%A+%#Lx): could not decode instruction for XTENSA_ASM_SIMPLIFY "
 "relocation; possible configuration mismatch"
 msgstr ""
 
-#: elf32-xtensa.c:9571
+#: elf32-xtensa.c:9590
 msgid "invalid relocation address"
 msgstr ""
 
-#: elf32-xtensa.c:9621
+#: elf32-xtensa.c:9640
 msgid "overflow after relaxation"
 msgstr ""
 
-#: elf32-xtensa.c:10765
+#: elf32-xtensa.c:10784
 #, c-format
-msgid "%B(%A+0x%lx): unexpected fix for %s relocation"
+msgid "%B(%A+%#Lx): unexpected fix for %s relocation"
 msgstr ""
 
 #: elf64-alpha.c:472
@@ -4130,174 +4219,173 @@ msgstr ""
 
 #: elf64-alpha.c:3084
 #, c-format
-msgid "%B: %A+0x%lx: warning: %s relocation against unexpected insn"
+msgid "%B: %A+%#Lx: warning: %s relocation against unexpected insn"
 msgstr ""
 
-#: elf64-alpha.c:3280
+#: elf64-alpha.c:3279
 #, c-format
-msgid "%B: %A+0x%lx: warning: LITERAL relocation against unexpected insn"
+msgid "%B: %A+%#Lx: warning: LITERAL relocation against unexpected insn"
 msgstr ""
 
-#: elf64-alpha.c:4481 elf64-alpha.c:4494
+#: elf64-alpha.c:4479 elf64-alpha.c:4492
 #, c-format
 msgid "%B: gp-relative relocation against dynamic symbol %s"
 msgstr ""
 
-#: elf64-alpha.c:4521 elf64-alpha.c:4665
+#: elf64-alpha.c:4519 elf64-alpha.c:4663
 #, c-format
 msgid "%B: pc-relative relocation against dynamic symbol %s"
 msgstr ""
 
-#: elf64-alpha.c:4550
+#: elf64-alpha.c:4548
 #, c-format
 msgid "%B: change in gp: BRSGP %s"
 msgstr ""
 
-#: elf64-alpha.c:4575
+#: elf64-alpha.c:4573
 msgid "<unknown>"
 msgstr ""
 
-#: elf64-alpha.c:4581
+#: elf64-alpha.c:4579
 #, c-format
 msgid "%B: !samegp reloc against symbol without .prologue: %s"
 msgstr ""
 
-#: elf64-alpha.c:4639
+#: elf64-alpha.c:4637
 #, c-format
 msgid "%B: unhandled dynamic relocation against %s"
 msgstr ""
 
-#: elf64-alpha.c:4674
+#: elf64-alpha.c:4672
 #, c-format
 msgid "%B: pc-relative relocation against undefined weak symbol %s"
 msgstr ""
 
-#: elf64-alpha.c:4740
+#: elf64-alpha.c:4738
 #, c-format
 msgid "%B: dtp-relative relocation against dynamic symbol %s"
 msgstr ""
 
-#: elf64-alpha.c:4765
+#: elf64-alpha.c:4763
 #, c-format
 msgid "%B: tp-relative relocation against dynamic symbol %s"
 msgstr ""
 
 #: elf64-hppa.c:2082
 #, c-format
-msgid "stub entry for %s cannot load .plt, dp offset = %ld"
+msgid "stub entry for %s cannot load .plt, dp offset = %Ld"
 msgstr ""
 
 #: elf64-hppa.c:3287
 #, c-format
-msgid "%B(%A+0x%"
+msgid "%B(%A+%#Lx): cannot reach %s"
 msgstr ""
 
 #: elf64-ia64-vms.c:587 elf32-ia64.c:620 elf64-ia64.c:620
 #, c-format
 msgid ""
-"%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect "
+"%B: Can't relax br at %#Lx in section `%A'. Please use brl or indirect "
 "branch."
 msgstr ""
 
-#: elf64-ia64-vms.c:2028 elf32-ia64.c:2281 elf64-ia64.c:2281
+#: elf64-ia64-vms.c:2029 elf32-ia64.c:2282 elf64-ia64.c:2282
 msgid "@pltoff reloc against local symbol"
 msgstr ""
 
-#: elf64-ia64-vms.c:3281 elf32-ia64.c:3687 elf64-ia64.c:3687
+#: elf64-ia64-vms.c:3282 elf32-ia64.c:3688 elf64-ia64.c:3688
 #, c-format
-msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
+msgid "%B: short data segment overflowed (%#Lx >= 0x400000)"
 msgstr ""
 
 #: elf64-ia64-vms.c:3292 elf32-ia64.c:3698 elf64-ia64.c:3698
-#, c-format
-msgid "%s: __gp does not cover short data segment"
+msgid "%B: __gp does not cover short data segment"
 msgstr ""
 
-#: elf64-ia64-vms.c:3559 elf32-ia64.c:3967 elf64-ia64.c:3967
+#: elf64-ia64-vms.c:3558 elf32-ia64.c:3965 elf64-ia64.c:3965
 #, c-format
 msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'"
 msgstr ""
 
-#: elf64-ia64-vms.c:3622 elf32-ia64.c:4035 elf64-ia64.c:4035
+#: elf64-ia64-vms.c:3622 elf32-ia64.c:4033 elf64-ia64.c:4033
 #, c-format
 msgid "%B: @gprel relocation against dynamic symbol %s"
 msgstr ""
 
-#: elf64-ia64-vms.c:3681 elf32-ia64.c:4098 elf64-ia64.c:4098
+#: elf64-ia64-vms.c:3681 elf32-ia64.c:4096 elf64-ia64.c:4096
 msgid "%B: linking non-pic code in a position independent executable"
 msgstr ""
 
-#: elf64-ia64-vms.c:3783 elf32-ia64.c:4236 elf64-ia64.c:4236
+#: elf64-ia64-vms.c:3783 elf32-ia64.c:4234 elf64-ia64.c:4234
 #, c-format
 msgid "%B: @internal branch to dynamic symbol %s"
 msgstr ""
 
-#: elf64-ia64-vms.c:3786 elf32-ia64.c:4239 elf64-ia64.c:4239
+#: elf64-ia64-vms.c:3786 elf32-ia64.c:4237 elf64-ia64.c:4237
 #, c-format
 msgid "%B: speculation fixup to dynamic symbol %s"
 msgstr ""
 
-#: elf64-ia64-vms.c:3789 elf32-ia64.c:4242 elf64-ia64.c:4242
+#: elf64-ia64-vms.c:3789 elf32-ia64.c:4240 elf64-ia64.c:4240
 #, c-format
 msgid "%B: @pcrel relocation against dynamic symbol %s"
 msgstr ""
 
-#: elf64-ia64-vms.c:3913 elf32-ia64.c:4439 elf64-ia64.c:4439
+#: elf64-ia64-vms.c:3913 elf32-ia64.c:4437 elf64-ia64.c:4437
 msgid "unsupported reloc"
 msgstr ""
 
-#: elf64-ia64-vms.c:3950 elf32-ia64.c:4477 elf64-ia64.c:4477
+#: elf64-ia64-vms.c:3950 elf32-ia64.c:4475 elf64-ia64.c:4475
 #, c-format
 msgid ""
-"%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `"
+"%B: missing TLS section for relocation %s against `%s' at %#Lx in section `"
 "%A'."
 msgstr ""
 
-#: elf64-ia64-vms.c:3966 elf32-ia64.c:4493 elf64-ia64.c:4493
+#: elf64-ia64-vms.c:3967 elf32-ia64.c:4492 elf64-ia64.c:4492
 #, c-format
 msgid ""
-"%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> "
+"%B: Can't relax br (%s) to `%s' at %#Lx in section `%A' with size %#Lx (> "
 "0x1000000)."
 msgstr ""
 
-#: elf64-ia64-vms.c:4256 elf32-ia64.c:4749 elf64-ia64.c:4749
+#: elf64-ia64-vms.c:4258 elf32-ia64.c:4749 elf64-ia64.c:4749
 msgid "%B: linking trap-on-NULL-dereference with non-trapping files"
 msgstr ""
 
-#: elf64-ia64-vms.c:4265 elf32-ia64.c:4758 elf64-ia64.c:4758
+#: elf64-ia64-vms.c:4267 elf32-ia64.c:4758 elf64-ia64.c:4758
 msgid "%B: linking big-endian files with little-endian files"
 msgstr ""
 
-#: elf64-ia64-vms.c:4274 elf32-ia64.c:4767 elf64-ia64.c:4767
+#: elf64-ia64-vms.c:4276 elf32-ia64.c:4767 elf64-ia64.c:4767
 msgid "%B: linking 64-bit files with 32-bit files"
 msgstr ""
 
-#: elf64-ia64-vms.c:4283 elf32-ia64.c:4776 elf64-ia64.c:4776
+#: elf64-ia64-vms.c:4285 elf32-ia64.c:4776 elf64-ia64.c:4776
 msgid "%B: linking constant-gp files with non-constant-gp files"
 msgstr ""
 
-#: elf64-ia64-vms.c:4293 elf32-ia64.c:4786 elf64-ia64.c:4786
+#: elf64-ia64-vms.c:4295 elf32-ia64.c:4786 elf64-ia64.c:4786
 msgid "%B: linking auto-pic files with non-auto-pic files"
 msgstr ""
 
-#: elf64-ia64-vms.c:5136 elflink.c:4674
+#: elf64-ia64-vms.c:5138 elflink.c:4736
 #, c-format
 msgid ""
 "Warning: alignment %u of common symbol `%s' in %B is greater than the "
 "alignment (%u) of its section %A"
 msgstr ""
 
-#: elf64-ia64-vms.c:5143 elflink.c:4681
+#: elf64-ia64-vms.c:5145 elflink.c:4743
 #, c-format
 msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B"
 msgstr ""
 
-#: elf64-ia64-vms.c:5159 elflink.c:4698
+#: elf64-ia64-vms.c:5161 elflink.c:4760
 #, c-format
-msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B"
+msgid "Warning: size of symbol `%s' changed from %Lu in %B to %Lu in %B"
 msgstr ""
 
-#: elf64-mips.c:3621 elfn32-mips.c:3439
+#: elf64-mips.c:3615 elfn32-mips.c:3439
 #, c-format
 msgid "unrecognised MIPS reloc number: %d"
 msgstr ""
@@ -4319,180 +4407,184 @@ msgstr ""
 #: elf64-mmix.c:1195
 #, c-format
 msgid ""
-"%s: Internal inconsistency error for value for\n"
-" linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx"
-"%08lx\n"
+"%B: Internal inconsistency error for value for\n"
+" linker-allocated global register: linked: %#Lx != relaxed: %#Lx"
 msgstr ""
 
-#: elf64-mmix.c:1266
+#: elf64-mmix.c:1264
 #, c-format
 msgid "%B: invalid MMIX reloc number: %d"
 msgstr ""
 
-#: elf64-mmix.c:1618
+#: elf64-mmix.c:1616
 #, c-format
 msgid ""
-"%s: base-plus-offset relocation against register symbol: (unknown) in %s"
+"%B: base-plus-offset relocation against register symbol: (unknown) in %A"
 msgstr ""
 
-#: elf64-mmix.c:1624
+#: elf64-mmix.c:1622
 #, c-format
-msgid "%s: base-plus-offset relocation against register symbol: %s in %s"
+msgid "%B: base-plus-offset relocation against register symbol: %s in %A"
 msgstr ""
 
-#: elf64-mmix.c:1669
+#: elf64-mmix.c:1667
 #, c-format
-msgid "%s: register relocation against non-register symbol: (unknown) in %s"
+msgid "%B: register relocation against non-register symbol: (unknown) in %A"
 msgstr ""
 
-#: elf64-mmix.c:1675
+#: elf64-mmix.c:1673
 #, c-format
-msgid "%s: register relocation against non-register symbol: %s in %s"
+msgid "%B: register relocation against non-register symbol: %s in %A"
 msgstr ""
 
-#: elf64-mmix.c:1712
-#, c-format
-msgid "%s: directive LOCAL valid only with a register or absolute value"
+#: elf64-mmix.c:1710
+msgid "%B: directive LOCAL valid only with a register or absolute value"
 msgstr ""
 
-#: elf64-mmix.c:1743
+#: elf64-mmix.c:1741
 #, c-format
 msgid ""
-"%s: LOCAL directive: Register $%ld is not a local register.  First global "
-"register is $%ld."
+"%B: LOCAL directive: Register $%Ld is not a local register.  First global "
+"register is $%Ld."
 msgstr ""
 
-#: elf64-mmix.c:2201
+#: elf64-mmix.c:2200
 #, c-format
 msgid ""
-"%s: Error: multiple definition of `%s'; start of %s is set in a earlier "
+"%B: Error: multiple definition of `%s'; start of %s is set in a earlier "
 "linked file\n"
 msgstr ""
 
-#: elf64-mmix.c:2256
+#: elf64-mmix.c:2255
 msgid "Register section has contents\n"
 msgstr ""
 
-#: elf64-mmix.c:2446
+#: elf64-mmix.c:2445
 #, c-format
 msgid ""
-"Internal inconsistency: remaining %u != max %u.\n"
+"Internal inconsistency: remaining %lu != max %lu.\n"
 "  Please report this bug."
 msgstr ""
 
-#: elf64-ppc.c:4614
+#: elf64-ppc.c:4632
 #, c-format
 msgid "%P: %B: cannot create stub entry %s\n"
 msgstr ""
 
-#: elf64-ppc.c:4982
+#: elf64-ppc.c:5000
 msgid "%P: symbol '%s' has invalid st_other for ABI version 1\n"
 msgstr ""
 
-#: elf64-ppc.c:5151
+#: elf64-ppc.c:5172
 #, c-format
 msgid "%P: %B .opd not allowed in ABI version %d\n"
 msgstr ""
 
-#: elf64-ppc.c:5627
+#: elf64-ppc.c:5648
 #, c-format
 msgid "%H: %s reloc unsupported in shared libraries and PIEs.\n"
 msgstr ""
 
-#: elf64-ppc.c:6034
+#: elf64-ppc.c:6055
 #, c-format
 msgid "%B uses unknown e_flags 0x%lx"
 msgstr ""
 
-#: elf64-ppc.c:6042
+#: elf64-ppc.c:6063
 #, c-format
 msgid "%B: ABI version %ld is not compatible with ABI version %ld output"
 msgstr ""
 
-#: elf64-ppc.c:6070
+#: elf64-ppc.c:6091
 #, c-format
 msgid " [abiv%ld]"
 msgstr ""
 
-#: elf64-ppc.c:7368
+#: elf64-ppc.c:7423
 msgid ""
 "%P: copy reloc against `%T' requires lazy plt linking; avoid setting "
 "LD_BIND_NOW=1 or upgrade gcc\n"
 msgstr ""
 
-#: elf64-ppc.c:7635
+#: elf64-ppc.c:7690
 msgid "%B: undefined symbol on R_PPC64_TOCSAVE relocation"
 msgstr ""
 
-#: elf64-ppc.c:7865
+#: elf64-ppc.c:7920
 #, c-format
 msgid "%P: dynreloc miscount for %B, section %A\n"
 msgstr ""
 
-#: elf64-ppc.c:7954
+#: elf64-ppc.c:8009
 msgid "%B: .opd is not a regular array of opd entries"
 msgstr ""
 
-#: elf64-ppc.c:7964
+#: elf64-ppc.c:8019
 #, c-format
 msgid "%B: unexpected reloc type %u in .opd section"
 msgstr ""
 
-#: elf64-ppc.c:7986
+#: elf64-ppc.c:8041
 #, c-format
 msgid "%B: undefined sym `%s' in .opd section"
 msgstr ""
 
-#: elf64-ppc.c:8551
+#: elf64-ppc.c:8379
+msgid ""
+"%P: warning: --plt-localentry is especially dangerous without ld.so support "
+"to detect ABI violations.\n"
+msgstr ""
+
+#: elf64-ppc.c:8628
 msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
 msgstr ""
 
-#: elf64-ppc.c:8894 elf64-ppc.c:9531
+#: elf64-ppc.c:8971 elf64-ppc.c:9608
 #, c-format
 msgid "%s defined on removed toc entry"
 msgstr ""
 
-#: elf64-ppc.c:9259
+#: elf64-ppc.c:9336
 #, c-format
 msgid "%H: toc optimization is not supported for %s instruction.\n"
 msgstr ""
 
-#: elf64-ppc.c:9488
+#: elf64-ppc.c:9565
 #, c-format
 msgid "%H: %s references optimized away TOC entry\n"
 msgstr ""
 
-#: elf64-ppc.c:10817
+#: elf64-ppc.c:10906
 msgid "%P: cannot find opd entry toc for `%T'\n"
 msgstr ""
 
-#: elf64-ppc.c:10908
+#: elf64-ppc.c:10997
 msgid "%P: long branch stub `%s' offset overflow\n"
 msgstr ""
 
-#: elf64-ppc.c:10967
+#: elf64-ppc.c:11056
 msgid "%P: can't find branch stub `%s'\n"
 msgstr ""
 
-#: elf64-ppc.c:11031 elf64-ppc.c:11183 elf64-ppc.c:12984
+#: elf64-ppc.c:11120 elf64-ppc.c:11272 elf64-ppc.c:13134
 #, c-format
 msgid "%P: linkage table error against `%T'\n"
 msgstr ""
 
-#: elf64-ppc.c:11393
+#: elf64-ppc.c:11491
 msgid "%P: can't build branch stub `%s'\n"
 msgstr ""
 
-#: elf64-ppc.c:12166
+#: elf64-ppc.c:12264
 #, c-format
 msgid "%B section %A exceeds stub group size"
 msgstr ""
 
-#: elf64-ppc.c:13261
+#: elf64-ppc.c:13407
 msgid "%P: stubs don't match calculated size\n"
 msgstr ""
 
-#: elf64-ppc.c:13273
+#: elf64-ppc.c:13419
 #, c-format
 msgid ""
 "linker stubs in %u group%s\n"
@@ -4505,63 +4597,63 @@ msgid ""
 "  global entry %lu"
 msgstr ""
 
-#: elf64-ppc.c:13595
+#: elf64-ppc.c:13741
 #, c-format
 msgid "%H: %s used with TLS symbol `%T'\n"
 msgstr ""
 
-#: elf64-ppc.c:13597
+#: elf64-ppc.c:13743
 #, c-format
 msgid "%H: %s used with non-TLS symbol `%T'\n"
 msgstr ""
 
-#: elf64-ppc.c:14227
+#: elf64-ppc.c:14382
 #, c-format
 msgid "%H: call to `%T' lacks nop, can't restore toc; recompile with -fPIC\n"
 msgstr ""
 
-#: elf64-ppc.c:14233
+#: elf64-ppc.c:14388
 #, c-format
 msgid ""
 "%H: call to `%T' lacks nop, can't restore toc; (-mcmodel=small toc adjust "
 "stub)\n"
 msgstr ""
 
-#: elf64-ppc.c:14361
+#: elf64-ppc.c:14516
 #, c-format
 msgid "%P: %B: unknown relocation type %d for `%T'\n"
 msgstr ""
 
-#: elf64-ppc.c:14918
+#: elf64-ppc.c:15064
 #, c-format
 msgid "%H: %s for indirect function `%T' unsupported\n"
 msgstr ""
 
-#: elf64-ppc.c:15056
+#: elf64-ppc.c:15176
 #, c-format
 msgid "%P: %B: %s is not supported for `%T'\n"
 msgstr ""
 
-#: elf64-ppc.c:15211
+#: elf64-ppc.c:15331
 #, c-format
 msgid "%H: error: %s not a multiple of %u\n"
 msgstr ""
 
-#: elf64-ppc.c:15233
+#: elf64-ppc.c:15353
 #, c-format
 msgid "%H: unresolvable %s against `%T'\n"
 msgstr ""
 
-#: elf64-ppc.c:15330
+#: elf64-ppc.c:15450
 #, c-format
 msgid "%H: %s against `%T': error %d\n"
 msgstr ""
 
-#: elf64-ppc.c:15723 elf64-ppc.c:15752
+#: elf64-ppc.c:15840 elf64-ppc.c:15859
 msgid "%P: %s offset too large for .eh_frame sdata4 encoding"
 msgstr ""
 
-#: elf64-s390.c:2708
+#: elf64-s390.c:2712
 msgid ""
 "%B: `%s' non-PLT reloc for symbol defined in shared library and accessed "
 "from executable (rebuild file with -fPIC ?)"
@@ -4569,376 +4661,389 @@ msgstr ""
 
 #: elf64-sh64.c:1680
 #, c-format
-msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n"
+msgid "%B: error: unaligned relocation type %d at %08Lx reloc %08Lx"
 msgstr ""
 
-#: elf64-sparc.c:448
+#: elf64-sparc.c:460
 msgid "%B: Only registers %%g[2367] can be declared using STT_REGISTER"
 msgstr ""
 
-#: elf64-sparc.c:469
+#: elf64-sparc.c:481
 #, c-format
 msgid "Register %%g%d used incompatibly: %s in %B, previously %s in %B"
 msgstr ""
 
-#: elf64-sparc.c:493
+#: elf64-sparc.c:505
 #, c-format
 msgid "Symbol `%s' has differing types: REGISTER in %B, previously %s in %B"
 msgstr ""
 
-#: elf64-sparc.c:539
+#: elf64-sparc.c:552
 #, c-format
 msgid "Symbol `%s' has differing types: %s in %B, previously REGISTER in %B"
 msgstr ""
 
-#: elf64-sparc.c:693
+#: elf64-sparc.c:707
 msgid "%B: linking UltraSPARC specific with HAL specific code"
 msgstr ""
 
-#: elf64-x86-64.c:1738
+#: elf64-x86-64.c:1900
 msgid "hidden symbol "
 msgstr ""
 
-#: elf64-x86-64.c:1741
+#: elf64-x86-64.c:1903
 msgid "internal symbol "
 msgstr ""
 
-#: elf64-x86-64.c:1744
+#: elf64-x86-64.c:1906
 msgid "protected symbol "
 msgstr ""
 
-#: elf64-x86-64.c:1747
+#: elf64-x86-64.c:1909
 msgid "symbol "
 msgstr ""
 
-#: elf64-x86-64.c:1748 elf64-x86-64.c:1758
+#: elf64-x86-64.c:1910 elf64-x86-64.c:1920
 msgid "; recompile with -fPIC"
 msgstr ""
 
-#: elf64-x86-64.c:1753
+#: elf64-x86-64.c:1915
 msgid "undefined "
 msgstr ""
 
-#: elf64-x86-64.c:1762
+#: elf64-x86-64.c:1924
 #, c-format
 msgid ""
 "%B: relocation %s against %s%s`%s' can not be used when making a shared "
 "object%s"
 msgstr ""
 
-#: elf64-x86-64.c:2322
+#: elf64-x86-64.c:2487
 #, c-format
 msgid "%B: relocation %s against symbol `%s' isn't supported in x32 mode"
 msgstr ""
 
-#: elf64-x86-64.c:2527
+#: elf64-x86-64.c:2610
 #, c-format
 msgid "%B: '%s' accessed both as normal and thread local symbol"
 msgstr ""
 
-#: elf64-x86-64.c:4540 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5004
+#: elf64-x86-64.c:4546 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5018
 #, c-format
 msgid ""
-"%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d"
+"%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %Ld"
 msgstr ""
 
-#: elf64-x86-64.c:4776
+#: elf64-x86-64.c:4801
 #, c-format
 msgid ""
 "%B: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used "
 "when making a shared object"
 msgstr ""
 
-#: elf64-x86-64.c:4789
+#: elf64-x86-64.c:4815
 #, c-format
 msgid ""
 "%B: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used "
 "when making a shared object"
 msgstr ""
 
-#: elf64-x86-64.c:5064
-#, c-format
-msgid ""
-"%B: addend -0x%x in relocation %s against symbol `%s' at 0x%lx in section `"
-"%A' is out of range"
-msgstr ""
-
-#: elf64-x86-64.c:5073
+#: elf64-x86-64.c:5089
 #, c-format
 msgid ""
-"%B: addend 0x%x in relocation %s against symbol `%s' at 0x%lx in section `"
+"%B: addend %s%#x in relocation %s against symbol `%s' at %#Lx in section `"
 "%A' is out of range"
 msgstr ""
 
-#: elf64-x86-64.c:5930
+#: elf64-x86-64.c:5911
 #, c-format
 msgid "%F%B: PC-relative offset overflow in PLT entry for `%s'\n"
 msgstr ""
 
-#: elf64-x86-64.c:5989
+#: elf64-x86-64.c:5978
 #, c-format
 msgid "%F%B: branch displacement overflow in PLT entry for `%s'\n"
 msgstr ""
 
-#: elf64-x86-64.c:6054
+#: elf64-x86-64.c:6031
 #, c-format
 msgid "%F%B: PC-relative offset overflow in GOT PLT entry for `%s'\n"
 msgstr ""
 
-#: elfcode.h:759
+#: elf64-x86-64.c:7614
+#, c-format
+msgid "%F: failed to create BND PLT section\n"
+msgstr ""
+
+#: elf64-x86-64.c:7664
 #, c-format
-msgid "warning: %s has a corrupt string table index - ignoring"
+msgid "%F: failed to create BND PLT .eh_frame section\n"
+msgstr ""
+
+#: elfcode.h:760
+msgid "warning: %B has a corrupt string table index - ignoring"
 msgstr ""
 
-#: elfcode.h:1192
+#: elfcode.h:1193
 #, c-format
-msgid "%s: version count (%ld) does not match symbol count (%ld)"
+msgid "%B: version count (%Ld) does not match symbol count (%ld)"
 msgstr ""
 
-#: elfcode.h:1447
+#: elfcode.h:1448
 #, c-format
-msgid "%s(%s): relocation %d has invalid symbol index %ld"
+msgid "%B(%A): relocation %d has invalid symbol index %ld"
 msgstr ""
 
 #: elfcore.h:300
 #, c-format
-msgid "Warning: %B is truncated: expected core file size >= %lu, found: %lu."
+msgid "warning: %B is truncated: expected core file size >= %Lu, found: %llu"
 msgstr ""
 
-#: elflink.c:1296
+#: elflink.c:1336
 #, c-format
 msgid ""
 "%s: TLS definition in %B section %A mismatches non-TLS definition in %B "
 "section %A"
 msgstr ""
 
-#: elflink.c:1302
+#: elflink.c:1342
 #, c-format
 msgid "%s: TLS reference in %B mismatches non-TLS reference in %B"
 msgstr ""
 
-#: elflink.c:1308
+#: elflink.c:1348
 #, c-format
 msgid "%s: TLS definition in %B section %A mismatches non-TLS reference in %B"
 msgstr ""
 
-#: elflink.c:1314
+#: elflink.c:1354
 #, c-format
 msgid "%s: TLS reference in %B mismatches non-TLS definition in %B section %A"
 msgstr ""
 
-#: elflink.c:1978
+#: elflink.c:2015
 #, c-format
 msgid "%B: unexpected redefinition of indirect versioned symbol `%s'"
 msgstr ""
 
-#: elflink.c:2271
+#: elflink.c:2308
 #, c-format
 msgid "%B: version node not found for symbol %s"
 msgstr ""
 
-#: elflink.c:2360
+#: elflink.c:2397
 #, c-format
 msgid ""
-"%B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A'"
+"%B: bad reloc symbol index (%#Lx >= %#lx) for offset %#Lx in section `%A'"
 msgstr ""
 
-#: elflink.c:2372
+#: elflink.c:2409
 #, c-format
 msgid ""
-"%B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the "
+"%B: non-zero symbol index (%#Lx) for offset %#Lx in section `%A' when the "
 "object file has no symbol table"
 msgstr ""
 
-#: elflink.c:2563
+#: elflink.c:2600
 #, c-format
 msgid "%B: relocation size mismatch in %B section %A"
 msgstr ""
 
-#: elflink.c:2856
+#: elflink.c:2911
 #, c-format
 msgid "warning: type and size of dynamic symbol `%s' are not defined"
 msgstr ""
 
-#: elflink.c:2921
+#: elflink.c:2976
 msgid "%P: copy reloc against protected `%T' is dangerous\n"
 msgstr ""
 
-#: elflink.c:3722
+#: elflink.c:3777
 #, c-format
 msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n"
 msgstr ""
 
-#: elflink.c:4382
+#: elflink.c:4444
 #, c-format
 msgid "%B: %s: invalid version %u (max %d)"
 msgstr ""
 
-#: elflink.c:4419
+#: elflink.c:4481
 #, c-format
 msgid "%B: %s: invalid needed version %d"
 msgstr ""
 
-#: elflink.c:4836
+#: elflink.c:4896
 #, c-format
 msgid "%B: undefined reference to symbol '%s'"
 msgstr ""
 
-#: elflink.c:5840
+#: elflink.c:5909
 #, c-format
 msgid "%B: stack size specified and %s set"
 msgstr ""
 
-#: elflink.c:5844
+#: elflink.c:5913
 #, c-format
 msgid "%B: %s not absolute"
 msgstr ""
 
-#: elflink.c:6033
+#: elflink.c:6111
 #, c-format
 msgid "%s: undefined version: %s"
 msgstr ""
 
-#: elflink.c:6609
+#: elflink.c:6688
 msgid "%B: .preinit_array section is not allowed in DSO"
 msgstr ""
 
-#: elflink.c:8040
+#: elflink.c:8128
 #, c-format
 msgid "undefined %s reference in complex symbol: %s"
 msgstr ""
 
-#: elflink.c:8195
+#: elflink.c:8283
 #, c-format
 msgid "unknown operator '%c' in complex symbol"
 msgstr ""
 
-#: elflink.c:8758 elflink.c:8776 elflink.c:8815 elflink.c:8833
+#. PR 21524: Let the user know if a symbol was removed by garbage collection.
+#: elflink.c:8621
+msgid ""
+"%B:%A: error: relocation references symbol %s which was removed by garbage "
+"collection."
+msgstr ""
+
+#: elflink.c:8624
+msgid "%B:%A: error: try relinking with --gc-keep-exported enabled."
+msgstr ""
+
+#: elflink.c:8860 elflink.c:8878 elflink.c:8917 elflink.c:8935
 msgid "%B: Unable to sort relocs - they are in more than one size"
 msgstr ""
 
 #. The section size is not divisible by either -
 #. something is wrong.
-#: elflink.c:8792 elflink.c:8849
+#: elflink.c:8894 elflink.c:8951
 msgid "%B: Unable to sort relocs - they are of an unknown size"
 msgstr ""
 
-#: elflink.c:8901
+#: elflink.c:9003
 msgid "Not enough memory to sort relocations"
 msgstr ""
 
-#: elflink.c:9169
+#: elflink.c:9271
 #, c-format
 msgid "%B: Too many sections: %d (>= %d)"
 msgstr ""
 
-#: elflink.c:9449
+#: elflink.c:9551
 #, c-format
 msgid "%B: internal symbol `%s' in %B is referenced by DSO"
 msgstr ""
 
-#: elflink.c:9452
+#: elflink.c:9554
 #, c-format
 msgid "%B: hidden symbol `%s' in %B is referenced by DSO"
 msgstr ""
 
-#: elflink.c:9455
+#: elflink.c:9557
 #, c-format
 msgid "%B: local symbol `%s' in %B is referenced by DSO"
 msgstr ""
 
-#: elflink.c:9541
+#: elflink.c:9643
 #, c-format
 msgid "%B: could not find output section %A for input section %A"
 msgstr ""
 
-#: elflink.c:9695
+#: elflink.c:9797
 #, c-format
 msgid "%B: protected symbol `%s' isn't defined"
 msgstr ""
 
-#: elflink.c:9698
+#: elflink.c:9800
 #, c-format
 msgid "%B: internal symbol `%s' isn't defined"
 msgstr ""
 
-#: elflink.c:9701
+#: elflink.c:9803
 #, c-format
 msgid "%B: hidden symbol `%s' isn't defined"
 msgstr ""
 
-#: elflink.c:9732
+#: elflink.c:9834
 #, c-format
 msgid "%B: No symbol version section for versioned symbol `%s'"
 msgstr ""
 
-#: elflink.c:10337
+#: elflink.c:10441
 #, c-format
 msgid "error: %B: size of section %A is not multiple of address size"
 msgstr ""
 
-#: elflink.c:10385
+#: elflink.c:10486
 #, c-format
 msgid ""
-"error: %B contains a reloc (0x%s) for section %A that references a non-"
+"error: %B contains a reloc (%#Lx) for section %A that references a non-"
 "existent global symbol"
 msgstr ""
 
-#: elflink.c:11140
+#: elflink.c:11241
 #, c-format
 msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections"
 msgstr ""
 
-#: elflink.c:11147
+#: elflink.c:11247
 #, c-format
 msgid "%A has both ordered and unordered sections"
 msgstr ""
 
-#: elflink.c:11248
+#: elflink.c:11349
 msgid "%B: no symbol found for import library"
 msgstr ""
 
-#: elflink.c:11871
+#: elflink.c:11971
 #, c-format
 msgid "%B: file class %s incompatible with %s"
 msgstr ""
 
-#: elflink.c:12084
+#: elflink.c:12188
 msgid "%B: failed to generate import library"
 msgstr ""
 
-#: elflink.c:12202
+#: elflink.c:12307
 #, c-format
 msgid "warning: %s section has zero size"
 msgstr ""
 
-#: elflink.c:12250
+#: elflink.c:12355
 #, c-format
 msgid "warning: section '%s' is being made into a note"
 msgstr ""
 
-#: elflink.c:12342
+#: elflink.c:12447
 msgid "%P%X: read-only segment has dynamic relocations.\n"
 msgstr ""
 
-#: elflink.c:12345
+#: elflink.c:12450
 msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n"
 msgstr ""
 
-#: elflink.c:12469
+#: elflink.c:12575
 msgid "%P%X: can not read symbols: %E\n"
 msgstr ""
 
-#: elflink.c:12667
+#: elflink.c:12737
 msgid "%F%P: corrupt input: %B\n"
 msgstr ""
 
-#: elflink.c:13329
+#: elflink.c:13426
 #, c-format
-msgid "%B: %A+%lu: No symbol found for INHERIT"
+msgid "%B: %A+%#Lx: No symbol found for INHERIT"
 msgstr ""
 
-#: elflink.c:13505
+#: elflink.c:13602
 #, c-format
 msgid "Unrecognized INPUT_SECTION_FLAG %s\n"
 msgstr ""
@@ -4971,281 +5076,281 @@ msgstr ""
 msgid "%X%H: Unsupported branch between ISA modes\n"
 msgstr ""
 
-#: elfxx-mips.c:7131 elfxx-mips.c:7365
+#: elfxx-mips.c:7134 elfxx-mips.c:7369
 #, c-format
 msgid "%B: Warning: bad `%s' option size %u smaller than its header"
 msgstr ""
 
-#: elfxx-mips.c:8120 elfxx-mips.c:8246
+#: elfxx-mips.c:8125 elfxx-mips.c:8251
 #, c-format
 msgid "%B: Warning: cannot determine the target function for stub section `%s'"
 msgstr ""
 
-#: elfxx-mips.c:8378
+#: elfxx-mips.c:8383
 #, c-format
 msgid "%B: Malformed reloc detected for section %s"
 msgstr ""
 
-#: elfxx-mips.c:8454
+#: elfxx-mips.c:8459
 #, c-format
-msgid "%B: GOT reloc at 0x%lx not expected in executables"
+msgid "%B: GOT reloc at %#Lx not expected in executables"
 msgstr ""
 
-#: elfxx-mips.c:8592
+#: elfxx-mips.c:8597
 #, c-format
-msgid "%B: CALL16 reloc at 0x%lx not against global symbol"
+msgid "%B: CALL16 reloc at %#Lx not against global symbol"
 msgstr ""
 
-#: elfxx-mips.c:9213
+#: elfxx-mips.c:9219
 #, c-format
 msgid "non-dynamic relocations refer to dynamic symbol %s"
 msgstr ""
 
-#: elfxx-mips.c:10135
+#: elfxx-mips.c:10139
 #, c-format
 msgid ""
-"%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `"
+"%B: Can't find matching LO16 reloc against `%s' for %s at %#Lx in section `"
 "%A'"
 msgstr ""
 
-#: elfxx-mips.c:10274
+#: elfxx-mips.c:10279
 msgid ""
 "small-data section exceeds 64KB; lower small-data size limit (see option -G)"
 msgstr ""
 
-#: elfxx-mips.c:10293
+#: elfxx-mips.c:10298
 msgid "Cannot convert a jump to JALX for a non-word-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10296
+#: elfxx-mips.c:10301
 msgid "Jump to a non-word-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10297
+#: elfxx-mips.c:10302
 msgid "Jump to a non-instruction-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10300
+#: elfxx-mips.c:10305
 msgid "Cannot convert a branch to JALX for a non-word-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10302
+#: elfxx-mips.c:10307
 msgid "Branch to a non-instruction-aligned address"
 msgstr ""
 
-#: elfxx-mips.c:10304
+#: elfxx-mips.c:10309
 msgid "PC-relative load from unaligned address"
 msgstr ""
 
-#: elfxx-mips.c:10678 elfxx-mips.c:11246
+#: elfxx-mips.c:10683 elfxx-mips.c:11251
 #, c-format
-msgid "%B: `%A' offset of %ld from `%A' beyond the range of ADDIUPC"
+msgid "%B: `%A' offset of %Ld from `%A' beyond the range of ADDIUPC"
 msgstr ""
 
-#: elfxx-mips.c:14157
+#: elfxx-mips.c:14174
 #, c-format
 msgid "%B: Unknown architecture %s"
 msgstr ""
 
-#: elfxx-mips.c:14687
+#: elfxx-mips.c:14704
 #, c-format
-msgid "%s: illegal section name `%s'"
+msgid "%B: illegal section name `%A'"
 msgstr ""
 
-#: elfxx-mips.c:14965
+#: elfxx-mips.c:14981
 msgid "%B: warning: linking abicalls files with non-abicalls files"
 msgstr ""
 
-#: elfxx-mips.c:14982
+#: elfxx-mips.c:14998
 msgid "%B: linking 32-bit code with 64-bit code"
 msgstr ""
 
-#: elfxx-mips.c:15014 elfxx-mips.c:15080 elfxx-mips.c:15095
+#: elfxx-mips.c:15030 elfxx-mips.c:15096 elfxx-mips.c:15111
 #, c-format
 msgid "%B: linking %s module with previous %s modules"
 msgstr ""
 
-#: elfxx-mips.c:15038
+#: elfxx-mips.c:15054
 #, c-format
 msgid "%B: ABI mismatch: linking %s module with previous %s modules"
 msgstr ""
 
-#: elfxx-mips.c:15063
+#: elfxx-mips.c:15079
 #, c-format
 msgid "%B: ASE mismatch: linking %s module with previous %s modules"
 msgstr ""
 
-#: elfxx-mips.c:15198
+#: elfxx-mips.c:15213
 msgid ""
 "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses unknown "
 "floating point ABI %d"
 msgstr ""
 
-#: elfxx-mips.c:15204
+#: elfxx-mips.c:15219
 #, c-format
 msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses %s"
 msgstr ""
 
-#: elfxx-mips.c:15210
+#: elfxx-mips.c:15225
 #, c-format
 msgid "Warning: %B uses %s (set by %B), %B uses unknown floating point ABI %d"
 msgstr ""
 
-#: elfxx-mips.c:15224
+#: elfxx-mips.c:15239
 #, c-format
 msgid "Warning: %B uses %s (set by %B), %B uses %s"
 msgstr ""
 
-#: elfxx-mips.c:15243
+#: elfxx-mips.c:15258
 #, c-format
 msgid "Warning: %B uses %s (set by %B), %B uses unknown MSA ABI %d"
 msgstr ""
 
-#: elfxx-mips.c:15255
+#: elfxx-mips.c:15270
 #, c-format
 msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses %s"
 msgstr ""
 
-#: elfxx-mips.c:15264
+#: elfxx-mips.c:15279
 #, c-format
 msgid ""
 "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses unknown MSA ABI %d"
 msgstr ""
 
-#: elfxx-mips.c:15327
+#: elfxx-mips.c:15341
 msgid "%B: endianness incompatible with that of the selected emulation"
 msgstr ""
 
-#: elfxx-mips.c:15341
+#: elfxx-mips.c:15355
 msgid "%B: ABI is incompatible with that of the selected emulation"
 msgstr ""
 
-#: elfxx-mips.c:15393
+#: elfxx-mips.c:15407
 msgid "%B: warning: Inconsistent ISA between e_flags and .MIPS.abiflags"
 msgstr ""
 
-#: elfxx-mips.c:15398
+#: elfxx-mips.c:15412
 msgid ""
 "%B: warning: Inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
 msgstr ""
 
-#: elfxx-mips.c:15402
+#: elfxx-mips.c:15416
 msgid "%B: warning: Inconsistent ASEs between e_flags and .MIPS.abiflags"
 msgstr ""
 
-#: elfxx-mips.c:15409
+#: elfxx-mips.c:15423
 msgid ""
 "%B: warning: Inconsistent ISA extensions between e_flags and .MIPS.abiflags"
 msgstr ""
 
-#: elfxx-mips.c:15413
+#: elfxx-mips.c:15427
 msgid ""
 "%B: warning: Unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
 msgstr ""
 
-#: elfxx-mips.c:15602
+#: elfxx-mips.c:15616
 msgid "-mips32r2 -mfp64 (12 callee-saved)"
 msgstr ""
 
-#: elfxx-mips.c:15650 elfxx-mips.c:15661
+#: elfxx-mips.c:15666 elfxx-mips.c:15677
 msgid "None"
 msgstr ""
 
-#: elfxx-mips.c:15652 elfxx-mips.c:15721
+#: elfxx-mips.c:15668 elfxx-mips.c:15740
 msgid "Unknown"
 msgstr ""
 
-#: elfxx-mips.c:15732
+#: elfxx-mips.c:15751
 #, c-format
 msgid "Hard or soft float\n"
 msgstr ""
 
-#: elfxx-mips.c:15735
+#: elfxx-mips.c:15754
 #, c-format
 msgid "Hard float (double precision)\n"
 msgstr ""
 
-#: elfxx-mips.c:15738
+#: elfxx-mips.c:15757
 #, c-format
 msgid "Hard float (single precision)\n"
 msgstr ""
 
-#: elfxx-mips.c:15741
+#: elfxx-mips.c:15760
 #, c-format
 msgid "Soft float\n"
 msgstr ""
 
-#: elfxx-mips.c:15744
+#: elfxx-mips.c:15763
 #, c-format
 msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
 msgstr ""
 
-#: elfxx-mips.c:15747
+#: elfxx-mips.c:15766
 #, c-format
 msgid "Hard float (32-bit CPU, Any FPU)\n"
 msgstr ""
 
-#: elfxx-mips.c:15750
+#: elfxx-mips.c:15769
 #, c-format
 msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
 msgstr ""
 
-#: elfxx-mips.c:15753
+#: elfxx-mips.c:15772
 #, c-format
 msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
 msgstr ""
 
-#: elfxx-mips.c:15785
+#: elfxx-mips.c:15804
 #, c-format
 msgid " [abi=O32]"
 msgstr ""
 
-#: elfxx-mips.c:15787
+#: elfxx-mips.c:15806
 #, c-format
 msgid " [abi=O64]"
 msgstr ""
 
-#: elfxx-mips.c:15789
+#: elfxx-mips.c:15808
 #, c-format
 msgid " [abi=EABI32]"
 msgstr ""
 
-#: elfxx-mips.c:15791
+#: elfxx-mips.c:15810
 #, c-format
 msgid " [abi=EABI64]"
 msgstr ""
 
-#: elfxx-mips.c:15793
+#: elfxx-mips.c:15812
 #, c-format
 msgid " [abi unknown]"
 msgstr ""
 
-#: elfxx-mips.c:15795
+#: elfxx-mips.c:15814
 #, c-format
 msgid " [abi=N32]"
 msgstr ""
 
-#: elfxx-mips.c:15797
+#: elfxx-mips.c:15816
 #, c-format
 msgid " [abi=64]"
 msgstr ""
 
-#: elfxx-mips.c:15799
+#: elfxx-mips.c:15818
 #, c-format
 msgid " [no abi set]"
 msgstr ""
 
-#: elfxx-mips.c:15824
+#: elfxx-mips.c:15843
 #, c-format
 msgid " [unknown ISA]"
 msgstr ""
 
-#: elfxx-mips.c:15844
+#: elfxx-mips.c:15863
 #, c-format
 msgid " [not 32bitmode]"
 msgstr ""
 
-#: elfxx-riscv.c:932
+#: elfxx-riscv.c:955
 #, c-format
 msgid "unrecognized relocation (0x%x)"
 msgstr ""
@@ -5255,12 +5360,12 @@ msgstr ""
 msgid "invalid relocation type %d"
 msgstr ""
 
-#: elfxx-sparc.c:3185 /work/sources/binutils/current/bfd/elfnn-aarch64.c:4988
+#: elfxx-sparc.c:3301 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5002
 #, c-format
 msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
 msgstr ""
 
-#: elfxx-tilegx.c:4436
+#: elfxx-tilegx.c:4428
 #, c-format
 msgid "%B: Cannot link together %s and %s objects."
 msgstr ""
@@ -5287,25 +5392,30 @@ msgstr ""
 
 #: ieee.c:159
 #, c-format
-msgid "%s: string too long (%d chars, max 65535)"
+msgid "%B: string too long (%ld chars, max 65535)"
+msgstr ""
+
+#: ieee.c:226
+#, c-format
+msgid "IEEE parser: string length: %#lx longer than buffer: %#lx"
 msgstr ""
 
-#: ieee.c:294
+#: ieee.c:302
 #, c-format
-msgid "%s: unrecognized symbol `%s' flags 0x%x"
+msgid "%B: unrecognized symbol `%s' flags 0x%x"
 msgstr ""
 
-#: ieee.c:830
+#: ieee.c:837
 #, c-format
 msgid "%B: unimplemented ATI record %u for symbol %u"
 msgstr ""
 
-#: ieee.c:855
+#: ieee.c:862
 #, c-format
-msgid "%B: unexpected ATN type %d in external part"
+msgid "%B: unexpected ATN type %Ld in external part"
 msgstr ""
 
-#: ieee.c:877
+#: ieee.c:884
 msgid "%B: unexpected type after ATN"
 msgstr ""
 
@@ -5352,27 +5462,27 @@ msgstr ""
 msgid "%B: bad section length in ihex_read_section"
 msgstr ""
 
-#: ihex.c:833
+#: ihex.c:830
 #, c-format
-msgid "%s: address 0x%s out of range for Intel Hex file"
+msgid "%B: address %#Lx out of range for Intel Hex file"
 msgstr ""
 
-#: libbfd.c:790
+#: libbfd.c:799
 #, c-format
 msgid "%B: unable to get decompressed section %A"
 msgstr ""
 
-#: libbfd.c:945
+#: libbfd.c:963
 #, c-format
 msgid "Deprecated %s called at %s line %d in %s\n"
 msgstr ""
 
-#: libbfd.c:948
+#: libbfd.c:966
 #, c-format
 msgid "Deprecated %s called\n"
 msgstr ""
 
-#: linker.c:1670
+#: linker.c:1669
 #, c-format
 msgid "%B: indirect symbol `%s' to `%s' is a loop"
 msgstr ""
@@ -5402,11 +5512,11 @@ msgstr ""
 msgid "%B: duplicate section `%A' has different contents\n"
 msgstr ""
 
-#: linker.c:3316
+#: linker.c:3353
 msgid "%B: compiled for a big endian system and target is little endian"
 msgstr ""
 
-#: linker.c:3319
+#: linker.c:3356
 msgid "%B: compiled for a little endian system and target is big endian"
 msgstr ""
 
@@ -5427,44 +5537,44 @@ msgstr ""
 
 #: mach-o.c:2531
 #, c-format
-msgid "unable to allocate data for load command 0x%lx"
+msgid "unable to allocate data for load command %#x"
 msgstr ""
 
 #: mach-o.c:2636
 #, c-format
-msgid "unable to write unknown load command 0x%lx"
+msgid "unable to write unknown load command %#x"
 msgstr ""
 
 #: mach-o.c:2820
 #, c-format
-msgid "section address (%lx) below start of segment (%lx)"
+msgid "section address (%#Lx) below start of segment (%#Lx)"
 msgstr ""
 
 #: mach-o.c:2961
 #, c-format
-msgid "unable to layout unknown load command 0x%lx"
+msgid "unable to layout unknown load command %#x"
 msgstr ""
 
 #: mach-o.c:3497
 #, c-format
 msgid ""
-"bfd_mach_o_read_section_32: overlarge alignment value: 0x%x, using 32 instead"
+"bfd_mach_o_read_section_32: overlarge alignment value: %#lx, using 32 instead"
 msgstr ""
 
 #: mach-o.c:3540
 #, c-format
 msgid ""
-"bfd_mach_o_read_section_64: overlarge alignment value: 0x%x, using 32 instead"
+"bfd_mach_o_read_section_64: overlarge alignment value: %#lx, using 32 instead"
 msgstr ""
 
 #: mach-o.c:3591
 #, c-format
-msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu"
+msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u"
 msgstr ""
 
 #: mach-o.c:3610
 #, c-format
-msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)"
+msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)"
 msgstr ""
 
 #: mach-o.c:3693
@@ -5481,179 +5591,175 @@ msgid ""
 "%x: setting to undefined"
 msgstr ""
 
-#: mach-o.c:3786
+#: mach-o.c:3789
 msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols"
 msgstr ""
 
-#: mach-o.c:4759
-msgid "%B: unknown load command 0x%lx"
+#: mach-o.c:4762
+msgid "%B: unknown load command %#x"
 msgstr ""
 
-#: mach-o.c:4950
+#: mach-o.c:4953
 #, c-format
 msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"
 msgstr ""
 
-#: mach-o.c:5055
+#: mach-o.c:5058
 #, c-format
-msgid "unknown header byte-order value 0x%lx"
+msgid "unknown header byte-order value %#x"
 msgstr ""
 
 #: merge.c:864
 #, c-format
-msgid "%s: access beyond end of merged section (%ld)"
+msgid "%B: access beyond end of merged section (%Ld)"
 msgstr ""
 
 #: mmo.c:468
 #, c-format
-msgid "%s: No core to allocate section name %s\n"
+msgid "%B: No core to allocate section name %s\n"
 msgstr ""
 
 #: mmo.c:544
 #, c-format
-msgid "%s: No core to allocate a symbol %d bytes long\n"
+msgid "%B: No core to allocate a symbol %d bytes long\n"
 msgstr ""
 
 #: mmo.c:958
 #, c-format
-msgid "%s: attempt to emit contents at non-multiple-of-4 address 0x%lx\n"
+msgid "%B: attempt to emit contents at non-multiple-of-4 address %#Lx"
 msgstr ""
 
-#: mmo.c:1254
-#, c-format
-msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n"
+#: mmo.c:1255
+msgid "%B: invalid mmo file: initialization value for $255 is not `Main'\n"
 msgstr ""
 
-#: mmo.c:1400
+#: mmo.c:1402
 #, c-format
 msgid ""
-"%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name "
+"%B: unsupported wide character sequence 0x%02X 0x%02X after symbol name "
 "starting with `%s'\n"
 msgstr ""
 
-#: mmo.c:1635
+#: mmo.c:1636
 #, c-format
-msgid "%s: invalid mmo file: unsupported lopcode `%d'\n"
+msgid "%B: invalid mmo file: unsupported lopcode `%d'\n"
 msgstr ""
 
-#: mmo.c:1646
+#: mmo.c:1647
 #, c-format
-msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
+msgid "%B: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
 msgstr ""
 
-#: mmo.c:1683
+#: mmo.c:1685
 #, c-format
-msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
+msgid "%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
 msgstr ""
 
-#: mmo.c:1733
+#: mmo.c:1736
 #, c-format
 msgid ""
-"%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
+"%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
 msgstr ""
 
-#: mmo.c:1773
+#: mmo.c:1777
 #, c-format
-msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
+msgid "%B: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
 msgstr ""
 
-#: mmo.c:1783
+#: mmo.c:1788
 #, c-format
 msgid ""
-"%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
+"%B: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
 msgstr ""
 
-#: mmo.c:1807
+#: mmo.c:1813
 #, c-format
 msgid ""
-"%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d "
+"%B: invalid mmo file: leading byte of operand word must be 0 or 1, got %d "
 "for lop_fixrx\n"
 msgstr ""
 
-#: mmo.c:1831
+#: mmo.c:1838
 #, c-format
-msgid "%s: cannot allocate file name for file number %d, %d bytes\n"
+msgid "%B: cannot allocate file name for file number %d, %d bytes\n"
 msgstr ""
 
-#: mmo.c:1852
+#: mmo.c:1860
 #, c-format
 msgid ""
-"%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
+"%B: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
 msgstr ""
 
-#: mmo.c:1866
+#: mmo.c:1874
 #, c-format
 msgid ""
-"%s: invalid mmo file: file name for number %d was not specified before use\n"
+"%B: invalid mmo file: file name for number %d was not specified before use\n"
 msgstr ""
 
-#: mmo.c:1973
+#: mmo.c:1981
 #, c-format
 msgid ""
-"%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
+"%B: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
 msgstr ""
 
-#: mmo.c:2010
+#: mmo.c:2018
 #, c-format
-msgid "%s: invalid mmo file: lop_end not last item in file\n"
+msgid "%B: invalid mmo file: lop_end not last item in file\n"
 msgstr ""
 
-#: mmo.c:2024
+#: mmo.c:2032
 #, c-format
 msgid ""
-"%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras "
+"%B: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras "
 "to the preceding lop_stab (%ld)\n"
 msgstr ""
 
-#: mmo.c:2735
+#: mmo.c:2743
 #, c-format
-msgid "%s: invalid symbol table: duplicate symbol `%s'\n"
+msgid "%B: invalid symbol table: duplicate symbol `%s'\n"
 msgstr ""
 
-#: mmo.c:2978
+#: mmo.c:2986
 #, c-format
 msgid ""
-"%s: Bad symbol definition: `Main' set to %s rather than the start address "
+"%B: Bad symbol definition: `Main' set to %s rather than the start address "
 "%s\n"
 msgstr ""
 
-#: mmo.c:3077
+#: mmo.c:3085
 #, c-format
 msgid ""
-"%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: "
+"%B: warning: symbol table too large for mmo, larger than 65535 32-bit words: "
 "%d.  Only `Main' will be emitted.\n"
 msgstr ""
 
-#: mmo.c:3123
+#: mmo.c:3131
 #, c-format
-msgid "%s: internal error, symbol table changed size from %d to %d words\n"
+msgid "%B: internal error, symbol table changed size from %d to %d words\n"
 msgstr ""
 
-#: mmo.c:3176
+#: mmo.c:3184
 #, c-format
-msgid "%s: internal error, internal register section %s had contents\n"
+msgid "%B: internal error, internal register section %A had contents\n"
 msgstr ""
 
-#: mmo.c:3227
-#, c-format
-msgid "%s: no initialized registers; section length 0\n"
+#: mmo.c:3235
+msgid "%B: no initialized registers; section length 0\n"
 msgstr ""
 
-#: mmo.c:3234
+#: mmo.c:3242
 #, c-format
-msgid "%s: too many initialized registers; section length %ld\n"
+msgid "%B: too many initialized registers; section length %Ld"
 msgstr ""
 
-#: mmo.c:3240
+#: mmo.c:3247
 #, c-format
-msgid ""
-"%s: invalid start address for initialized registers of length %ld: 0x%lx"
-"%08lx\n"
+msgid "%B: invalid start address for initialized registers of length %Ld: %#Lx"
 msgstr ""
 
 #: oasys.c:881
 #, c-format
-msgid "%s: can not represent section `%s' in oasys"
+msgid "%B: can not represent section `%A' in oasys"
 msgstr ""
 
 #: osf-core.c:127
@@ -5661,17 +5767,6 @@ msgstr ""
 msgid "Unhandled OSF/1 core file section type %d\n"
 msgstr ""
 
-#: pdp11.c:1385
-#, c-format
-msgid ""
-"%B: can not represent section for symbol `%s' in a.out object file format"
-msgstr ""
-
-#: pdp11.c:1413
-#, c-format
-msgid "%B: can not represent section `%A' in a.out object file format"
-msgstr ""
-
 #: pe-mips.c:609
 msgid "%B: `ld -r' not supported with PE MIPS objects\n"
 msgstr ""
@@ -5693,7 +5788,7 @@ msgstr ""
 msgid "%B: bad pair/reflo after refhi\n"
 msgstr ""
 
-#: pef.c:525
+#: pef.c:526
 #, c-format
 msgid "bfd_pef_scan: unknown architecture 0x%lx"
 msgstr ""
@@ -5842,38 +5937,48 @@ msgstr ""
 msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
 msgstr ""
 
-#: reloc.c:8051
+#: reloc.c:8067
 msgid "INPUT_SECTION_FLAGS are not supported.\n"
 msgstr ""
 
-#: reloc.c:8149
+#: reloc.c:8168
 #, c-format
 msgid "%X%P: %B(%A): error: relocation for offset %V has no value\n"
 msgstr ""
 
-#: reloc.c:8225
+#: reloc.c:8244
 #, c-format
 msgid "%X%P: %B(%A): relocation \"%R\" is not supported\n"
 msgstr ""
 
-#: reloc.c:8234
+#: reloc.c:8253
 #, c-format
 msgid "%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n"
 msgstr ""
 
-#: rs6000-core.c:471
+#: reloc.c:8315
+#, c-format
+msgid "%B: unrecognized relocation (%#x) in section `%A'"
+msgstr ""
+
+#. PR 21803: Suggest the most likely cause of this error.
+#: reloc.c:8319
 #, c-format
-msgid "%s: warning core file truncated"
+msgid "Is this version of the linker - %s - out of date ?"
+msgstr ""
+
+#: rs6000-core.c:471
+msgid "%B: warning core file truncated"
 msgstr ""
 
-#: som.c:5473
+#: som.c:5478
 #, c-format
 msgid ""
 "\n"
 "Exec Auxiliary Header\n"
 msgstr ""
 
-#: som.c:5782
+#: som.c:5787
 msgid "som_sizeof_headers unimplemented"
 msgstr ""
 
@@ -5894,39 +5999,76 @@ msgstr ""
 
 #: stabs.c:279
 #, c-format
-msgid "%B(%A+0x%lx): Stabs entry has invalid string index."
+msgid "%B(%A+%#lx): Stabs entry has invalid string index."
 msgstr ""
 
 #: syms.c:1079
 msgid "Unsupported .stab relocation"
 msgstr ""
 
-#: vms-alpha.c:1317
+#: vms-alpha.c:479
+msgid "Corrupt EIHD record - size is too small"
+msgstr ""
+
+#: vms-alpha.c:660
+#, c-format
+msgid "Unable to read EIHS record at offset %#x"
+msgstr ""
+
+#: vms-alpha.c:1172
+#, c-format
+msgid "Corrupt EGSD record: its size (%#x) is too small"
+msgstr ""
+
+#: vms-alpha.c:1196
+#, c-format
+msgid "Corrupt EGSD record: size (%#x) is larger than remaining space (%#x)"
+msgstr ""
+
+#: vms-alpha.c:1204
+#, c-format
+msgid "Corrupt EGSD record: size (%#x) is too small"
+msgstr ""
+
+#: vms-alpha.c:1333 vms-alpha.c:1349 vms-alpha.c:1389
+#, c-format
+msgid "Corrupt EGSD record: its psindx field is too big (%#lx)"
+msgstr ""
+
+#: vms-alpha.c:1418
 #, c-format
 msgid "Unknown EGSD subtype %d"
 msgstr ""
 
-#: vms-alpha.c:1348
+#: vms-alpha.c:1451
 #, c-format
 msgid "Stack overflow (%d) in _bfd_vms_push"
 msgstr ""
 
-#: vms-alpha.c:1361
+#: vms-alpha.c:1464
 msgid "Stack underflow in _bfd_vms_pop"
 msgstr ""
 
 #. These names have not yet been added to this switch statement.
-#: vms-alpha.c:1598
+#: vms-alpha.c:1706
 #, c-format
 msgid "unknown ETIR command %d"
 msgstr ""
 
-#: vms-alpha.c:1784
+#: vms-alpha.c:1737
+msgid "Corrupt vms value"
+msgstr ""
+
+#: vms-alpha.c:1865
+msgid "Corrupt ETIR record encountered"
+msgstr ""
+
+#: vms-alpha.c:1922
 #, c-format
 msgid "bad section index in %s"
 msgstr ""
 
-#: vms-alpha.c:1797
+#: vms-alpha.c:1935
 #, c-format
 msgid "unsupported STA cmd %s"
 msgstr ""
@@ -5936,1909 +6078,1959 @@ msgstr ""
 #. Rotate.
 #. Redefine symbol to current location.
 #. Define a literal.
-#: vms-alpha.c:1973 vms-alpha.c:2004 vms-alpha.c:2095 vms-alpha.c:2251
+#: vms-alpha.c:2115 vms-alpha.c:2146 vms-alpha.c:2237 vms-alpha.c:2395
 #, c-format
 msgid "%s: not supported"
 msgstr ""
 
-#: vms-alpha.c:1979
+#: vms-alpha.c:2121
 #, c-format
 msgid "%s: not implemented"
 msgstr ""
 
-#: vms-alpha.c:2235
+#: vms-alpha.c:2379
 #, c-format
 msgid "invalid use of %s with contexts"
 msgstr ""
 
-#: vms-alpha.c:2269
+#: vms-alpha.c:2413
 #, c-format
 msgid "reserved cmd %d"
 msgstr ""
 
-#: vms-alpha.c:2354
+#: vms-alpha.c:2497
+msgid "Corrupt EEOM record - size is too small"
+msgstr ""
+
+#: vms-alpha.c:2506
 msgid "Object module NOT error-free !\n"
 msgstr ""
 
-#: vms-alpha.c:3675
+#: vms-alpha.c:3830
 #, c-format
-msgid "SEC_RELOC with no relocs in section %s"
+msgid "SEC_RELOC with no relocs in section %A"
 msgstr ""
 
-#: vms-alpha.c:3727 vms-alpha.c:3940
+#: vms-alpha.c:3882 vms-alpha.c:4095
 #, c-format
-msgid "Size error in section %s"
+msgid "Size error in section %A"
 msgstr ""
 
-#: vms-alpha.c:3886
+#: vms-alpha.c:4041
 msgid "Spurious ALPHA_R_BSR reloc"
 msgstr ""
 
-#: vms-alpha.c:3927
+#: vms-alpha.c:4082
 #, c-format
 msgid "Unhandled relocation %s"
 msgstr ""
 
-#: vms-alpha.c:4217
+#: vms-alpha.c:4375
 #, c-format
 msgid "unknown source command %d"
 msgstr ""
 
-#: vms-alpha.c:4278
+#: vms-alpha.c:4436
 msgid "DST__K_SET_LINUM_INCR not implemented"
 msgstr ""
 
-#: vms-alpha.c:4284
+#: vms-alpha.c:4442
 msgid "DST__K_SET_LINUM_INCR_W not implemented"
 msgstr ""
 
-#: vms-alpha.c:4290
+#: vms-alpha.c:4448
 msgid "DST__K_RESET_LINUM_INCR not implemented"
 msgstr ""
 
-#: vms-alpha.c:4296
+#: vms-alpha.c:4454
 msgid "DST__K_BEG_STMT_MODE not implemented"
 msgstr ""
 
-#: vms-alpha.c:4302
+#: vms-alpha.c:4460
 msgid "DST__K_END_STMT_MODE not implemented"
 msgstr ""
 
-#: vms-alpha.c:4329
+#: vms-alpha.c:4487
 msgid "DST__K_SET_PC not implemented"
 msgstr ""
 
-#: vms-alpha.c:4335
+#: vms-alpha.c:4493
 msgid "DST__K_SET_PC_W not implemented"
 msgstr ""
 
-#: vms-alpha.c:4341
+#: vms-alpha.c:4499
 msgid "DST__K_SET_PC_L not implemented"
 msgstr ""
 
-#: vms-alpha.c:4347
+#: vms-alpha.c:4505
 msgid "DST__K_SET_STMTNUM not implemented"
 msgstr ""
 
-#: vms-alpha.c:4390
+#: vms-alpha.c:4548
 #, c-format
 msgid "unknown line command %d"
 msgstr ""
 
-#: vms-alpha.c:4850 vms-alpha.c:4868 vms-alpha.c:4883 vms-alpha.c:4899
-#: vms-alpha.c:4912 vms-alpha.c:4924 vms-alpha.c:4937
+#: vms-alpha.c:5008 vms-alpha.c:5026 vms-alpha.c:5041 vms-alpha.c:5057
+#: vms-alpha.c:5070 vms-alpha.c:5082 vms-alpha.c:5095
 #, c-format
 msgid "Unknown reloc %s + %s"
 msgstr ""
 
-#: vms-alpha.c:4992
+#: vms-alpha.c:5150
 #, c-format
 msgid "Unknown reloc %s"
 msgstr ""
 
-#: vms-alpha.c:5005
+#: vms-alpha.c:5163
 msgid "Invalid section index in ETIR"
 msgstr ""
 
-#: vms-alpha.c:5012
+#: vms-alpha.c:5172
 msgid "Relocation for non-REL psect"
 msgstr ""
 
-#: vms-alpha.c:5059
+#: vms-alpha.c:5219
 #, c-format
 msgid "Unknown symbol in command %s"
 msgstr ""
 
-#: vms-alpha.c:5460
+#: vms-alpha.c:5629
 #, c-format
 msgid "reloc (%d) is *UNKNOWN*"
 msgstr ""
 
-#: vms-alpha.c:5575
+#: vms-alpha.c:5745
 #, c-format
 msgid "  EMH %u (len=%u): "
 msgstr ""
 
-#: vms-alpha.c:5584
+#: vms-alpha.c:5750
+#, c-format
+msgid "   Error: The length is less than the length of an EMH record\n"
+msgstr ""
+
+#: vms-alpha.c:5767
+#, c-format
+msgid ""
+"   Error: The record length is less than the size of an EMH_MHD record\n"
+msgstr ""
+
+#: vms-alpha.c:5770
 #, c-format
 msgid "Module header\n"
 msgstr ""
 
-#: vms-alpha.c:5585
+#: vms-alpha.c:5771
 #, c-format
 msgid "   structure level: %u\n"
 msgstr ""
 
-#: vms-alpha.c:5586
+#: vms-alpha.c:5772
 #, c-format
 msgid "   max record size: %u\n"
 msgstr ""
 
-#: vms-alpha.c:5589
+#: vms-alpha.c:5778
+#, c-format
+msgid "   Error: The module name is missing\n"
+msgstr ""
+
+#: vms-alpha.c:5784
+#, c-format
+msgid "   Error: The module name is too long\n"
+msgstr ""
+
+#: vms-alpha.c:5787
 #, c-format
 msgid "   module name    : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5591
+#: vms-alpha.c:5791
+#, c-format
+msgid "   Error: The module version is missing\n"
+msgstr ""
+
+#: vms-alpha.c:5797
+#, c-format
+msgid "   Error: The module version is too long\n"
+msgstr ""
+
+#: vms-alpha.c:5800
 #, c-format
 msgid "   module version : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5593
+#: vms-alpha.c:5803
+#, c-format
+msgid "   Error: The compile date is truncated\n"
+msgstr ""
+
+#: vms-alpha.c:5805
 #, c-format
 msgid "   compile date   : %.17s\n"
 msgstr ""
 
-#: vms-alpha.c:5598
+#: vms-alpha.c:5810
 #, c-format
 msgid "Language Processor Name\n"
 msgstr ""
 
-#: vms-alpha.c:5599
+#: vms-alpha.c:5811
 #, c-format
 msgid "   language name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5606
+#: vms-alpha.c:5815
 #, c-format
 msgid "Source Files Header\n"
 msgstr ""
 
-#: vms-alpha.c:5607
+#: vms-alpha.c:5816
 #, c-format
 msgid "   file: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5614
+#: vms-alpha.c:5820
 #, c-format
 msgid "Title Text Header\n"
 msgstr ""
 
-#: vms-alpha.c:5615
+#: vms-alpha.c:5821
 #, c-format
 msgid "   title: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5622
+#: vms-alpha.c:5825
 #, c-format
 msgid "Copyright Header\n"
 msgstr ""
 
-#: vms-alpha.c:5623
+#: vms-alpha.c:5826
 #, c-format
 msgid "   copyright: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5629
+#: vms-alpha.c:5830
 #, c-format
 msgid "unhandled emh subtype %u\n"
 msgstr ""
 
-#: vms-alpha.c:5639
+#: vms-alpha.c:5840
 #, c-format
 msgid "  EEOM (len=%u):\n"
 msgstr ""
 
-#: vms-alpha.c:5640
+#: vms-alpha.c:5845
+#, c-format
+msgid "   Error: The length is less than the length of an EEOM record\n"
+msgstr ""
+
+#: vms-alpha.c:5849
 #, c-format
 msgid "   number of cond linkage pairs: %u\n"
 msgstr ""
 
-#: vms-alpha.c:5642
+#: vms-alpha.c:5851
 #, c-format
 msgid "   completion code: %u\n"
 msgstr ""
 
-#: vms-alpha.c:5646
+#: vms-alpha.c:5855
 #, c-format
 msgid "   transfer addr flags: 0x%02x\n"
 msgstr ""
 
-#: vms-alpha.c:5647
+#: vms-alpha.c:5856
 #, c-format
 msgid "   transfer addr psect: %u\n"
 msgstr ""
 
-#: vms-alpha.c:5649
+#: vms-alpha.c:5858
 #, c-format
 msgid "   transfer address   : 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:5658
+#: vms-alpha.c:5867
 msgid " WEAK"
 msgstr ""
 
-#: vms-alpha.c:5660
+#: vms-alpha.c:5869
 msgid " DEF"
 msgstr ""
 
-#: vms-alpha.c:5662
+#: vms-alpha.c:5871
 msgid " UNI"
 msgstr ""
 
-#: vms-alpha.c:5664 vms-alpha.c:5685
+#: vms-alpha.c:5873 vms-alpha.c:5894
 msgid " REL"
 msgstr ""
 
-#: vms-alpha.c:5666
+#: vms-alpha.c:5875
 msgid " COMM"
 msgstr ""
 
-#: vms-alpha.c:5668
+#: vms-alpha.c:5877
 msgid " VECEP"
 msgstr ""
 
-#: vms-alpha.c:5670
+#: vms-alpha.c:5879
 msgid " NORM"
 msgstr ""
 
-#: vms-alpha.c:5672
+#: vms-alpha.c:5881
 msgid " QVAL"
 msgstr ""
 
-#: vms-alpha.c:5679
+#: vms-alpha.c:5888
 msgid " PIC"
 msgstr ""
 
-#: vms-alpha.c:5681
+#: vms-alpha.c:5890
 msgid " LIB"
 msgstr ""
 
-#: vms-alpha.c:5683
+#: vms-alpha.c:5892
 msgid " OVR"
 msgstr ""
 
-#: vms-alpha.c:5687
+#: vms-alpha.c:5896
 msgid " GBL"
 msgstr ""
 
-#: vms-alpha.c:5689
+#: vms-alpha.c:5898
 msgid " SHR"
 msgstr ""
 
-#: vms-alpha.c:5691
+#: vms-alpha.c:5900
 msgid " EXE"
 msgstr ""
 
-#: vms-alpha.c:5693
+#: vms-alpha.c:5902
 msgid " RD"
 msgstr ""
 
-#: vms-alpha.c:5695
+#: vms-alpha.c:5904
 msgid " WRT"
 msgstr ""
 
-#: vms-alpha.c:5697
+#: vms-alpha.c:5906
 msgid " VEC"
 msgstr ""
 
-#: vms-alpha.c:5699
+#: vms-alpha.c:5908
 msgid " NOMOD"
 msgstr ""
 
-#: vms-alpha.c:5701
+#: vms-alpha.c:5910
 msgid " COM"
 msgstr ""
 
-#: vms-alpha.c:5703
+#: vms-alpha.c:5912
 msgid " 64B"
 msgstr ""
 
-#: vms-alpha.c:5712
+#: vms-alpha.c:5921
 #, c-format
 msgid "  EGSD (len=%u):\n"
 msgstr ""
 
-#: vms-alpha.c:5725
+#: vms-alpha.c:5934
 #, c-format
 msgid "  EGSD entry %2u (type: %u, len: %u): "
 msgstr ""
 
-#: vms-alpha.c:5737
+#: vms-alpha.c:5940 vms-alpha.c:6191
+#, c-format
+msgid "   Error: length larger than remaining space in record\n"
+msgstr ""
+
+#: vms-alpha.c:5952
 #, c-format
 msgid "PSC - Program section definition\n"
 msgstr ""
 
-#: vms-alpha.c:5738 vms-alpha.c:5755
+#: vms-alpha.c:5953 vms-alpha.c:5970
 #, c-format
 msgid "   alignment  : 2**%u\n"
 msgstr ""
 
-#: vms-alpha.c:5739 vms-alpha.c:5756
+#: vms-alpha.c:5954 vms-alpha.c:5971
 #, c-format
 msgid "   flags      : 0x%04x"
 msgstr ""
 
-#: vms-alpha.c:5743
+#: vms-alpha.c:5958
 #, c-format
 msgid "   alloc (len): %u (0x%08x)\n"
 msgstr ""
 
-#: vms-alpha.c:5744 vms-alpha.c:5801 vms-alpha.c:5850
+#: vms-alpha.c:5959 vms-alpha.c:6016 vms-alpha.c:6065
 #, c-format
 msgid "   name       : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5754
+#: vms-alpha.c:5969
 #, c-format
 msgid "SPSC - Shared Image Program section def\n"
 msgstr ""
 
-#: vms-alpha.c:5760
+#: vms-alpha.c:5975
 #, c-format
 msgid "   alloc (len)   : %u (0x%08x)\n"
 msgstr ""
 
-#: vms-alpha.c:5761
+#: vms-alpha.c:5976
 #, c-format
 msgid "   image offset  : 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:5763
+#: vms-alpha.c:5978
 #, c-format
 msgid "   symvec offset : 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:5765
+#: vms-alpha.c:5980
 #, c-format
 msgid "   name          : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5778
+#: vms-alpha.c:5993
 #, c-format
 msgid "SYM - Global symbol definition\n"
 msgstr ""
 
-#: vms-alpha.c:5779 vms-alpha.c:5839 vms-alpha.c:5860 vms-alpha.c:5879
+#: vms-alpha.c:5994 vms-alpha.c:6054 vms-alpha.c:6075 vms-alpha.c:6094
 #, c-format
 msgid "   flags: 0x%04x"
 msgstr ""
 
-#: vms-alpha.c:5782
+#: vms-alpha.c:5997
 #, c-format
 msgid "   psect offset: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:5786
+#: vms-alpha.c:6001
 #, c-format
 msgid "   code address: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:5788
+#: vms-alpha.c:6003
 #, c-format
 msgid "   psect index for entry point : %u\n"
 msgstr ""
 
-#: vms-alpha.c:5791 vms-alpha.c:5867 vms-alpha.c:5886
+#: vms-alpha.c:6006 vms-alpha.c:6082 vms-alpha.c:6101
 #, c-format
 msgid "   psect index : %u\n"
 msgstr ""
 
-#: vms-alpha.c:5793 vms-alpha.c:5869 vms-alpha.c:5888
+#: vms-alpha.c:6008 vms-alpha.c:6084 vms-alpha.c:6103
 #, c-format
 msgid "   name        : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5800
+#: vms-alpha.c:6015
 #, c-format
 msgid "SYM - Global symbol reference\n"
 msgstr ""
 
-#: vms-alpha.c:5812
+#: vms-alpha.c:6027
 #, c-format
 msgid "IDC - Ident Consistency check\n"
 msgstr ""
 
-#: vms-alpha.c:5813
+#: vms-alpha.c:6028
 #, c-format
 msgid "   flags         : 0x%08x"
 msgstr ""
 
-#: vms-alpha.c:5817
+#: vms-alpha.c:6032
 #, c-format
 msgid "   id match      : %x\n"
 msgstr ""
 
-#: vms-alpha.c:5819
+#: vms-alpha.c:6034
 #, c-format
 msgid "   error severity: %x\n"
 msgstr ""
 
-#: vms-alpha.c:5822
+#: vms-alpha.c:6037
 #, c-format
 msgid "   entity name   : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5824
+#: vms-alpha.c:6039
 #, c-format
 msgid "   object name   : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5827
+#: vms-alpha.c:6042
 #, c-format
 msgid "   binary ident  : 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:5830
+#: vms-alpha.c:6045
 #, c-format
 msgid "   ascii ident   : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5838
+#: vms-alpha.c:6053
 #, c-format
 msgid "SYMG - Universal symbol definition\n"
 msgstr ""
 
-#: vms-alpha.c:5842
+#: vms-alpha.c:6057
 #, c-format
 msgid "   symbol vector offset: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:5844
+#: vms-alpha.c:6059
 #, c-format
 msgid "   entry point: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:5846
+#: vms-alpha.c:6061
 #, c-format
 msgid "   proc descr : 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:5848
+#: vms-alpha.c:6063
 #, c-format
 msgid "   psect index: %u\n"
 msgstr ""
 
-#: vms-alpha.c:5859
+#: vms-alpha.c:6074
 #, c-format
 msgid "SYMV - Vectored symbol definition\n"
 msgstr ""
 
-#: vms-alpha.c:5863
+#: vms-alpha.c:6078
 #, c-format
 msgid "   vector      : 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:5865 vms-alpha.c:5884
+#: vms-alpha.c:6080 vms-alpha.c:6099
 #, c-format
 msgid "   psect offset: %u\n"
 msgstr ""
 
-#: vms-alpha.c:5878
+#: vms-alpha.c:6093
 #, c-format
 msgid "SYMM - Global symbol definition with version\n"
 msgstr ""
 
-#: vms-alpha.c:5882
+#: vms-alpha.c:6097
 #, c-format
 msgid "   version mask: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:5893
+#: vms-alpha.c:6108
 #, c-format
 msgid "unhandled egsd entry type %u\n"
 msgstr ""
 
-#: vms-alpha.c:5928
+#: vms-alpha.c:6143
 #, c-format
 msgid "    linkage index: %u, replacement insn: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:5932
+#: vms-alpha.c:6147
 #, c-format
 msgid "    psect idx 1: %u, offset 1: 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:5937
+#: vms-alpha.c:6152
 #, c-format
 msgid "    psect idx 2: %u, offset 2: 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:5943
+#: vms-alpha.c:6158
 #, c-format
 msgid "    psect idx 3: %u, offset 3: 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:5948
+#: vms-alpha.c:6163
 #, c-format
 msgid "    global name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5959
+#: vms-alpha.c:6174
 #, c-format
 msgid "  %s (len=%u+%u):\n"
 msgstr ""
 
-#: vms-alpha.c:5975
+#: vms-alpha.c:6196
 #, c-format
 msgid "   (type: %3u, size: 4+%3u): "
 msgstr ""
 
-#: vms-alpha.c:5979
+#: vms-alpha.c:6200
 #, c-format
 msgid "STA_GBL (stack global) %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:5983
+#: vms-alpha.c:6204
 #, c-format
 msgid "STA_LW (stack longword) 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:5987
+#: vms-alpha.c:6208
 #, c-format
 msgid "STA_QW (stack quadword) 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:5992
+#: vms-alpha.c:6213
 #, c-format
 msgid "STA_PQ (stack psect base + offset)\n"
 msgstr ""
 
-#: vms-alpha.c:5994
+#: vms-alpha.c:6215
 #, c-format
 msgid "    psect: %u, offset: 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:6000
+#: vms-alpha.c:6221
 #, c-format
 msgid "STA_LI (stack literal)\n"
 msgstr ""
 
-#: vms-alpha.c:6003
+#: vms-alpha.c:6224
 #, c-format
 msgid "STA_MOD (stack module)\n"
 msgstr ""
 
-#: vms-alpha.c:6006
+#: vms-alpha.c:6227
 #, c-format
 msgid "STA_CKARG (compare procedure argument)\n"
 msgstr ""
 
-#: vms-alpha.c:6010
+#: vms-alpha.c:6231
 #, c-format
 msgid "STO_B (store byte)\n"
 msgstr ""
 
-#: vms-alpha.c:6013
+#: vms-alpha.c:6234
 #, c-format
 msgid "STO_W (store word)\n"
 msgstr ""
 
-#: vms-alpha.c:6016
+#: vms-alpha.c:6237
 #, c-format
 msgid "STO_LW (store longword)\n"
 msgstr ""
 
-#: vms-alpha.c:6019
+#: vms-alpha.c:6240
 #, c-format
 msgid "STO_QW (store quadword)\n"
 msgstr ""
 
-#: vms-alpha.c:6025
+#: vms-alpha.c:6246
 #, c-format
 msgid "STO_IMMR (store immediate repeat) %u bytes\n"
 msgstr ""
 
-#: vms-alpha.c:6032
+#: vms-alpha.c:6253
 #, c-format
 msgid "STO_GBL (store global) %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6036
+#: vms-alpha.c:6257
 #, c-format
 msgid "STO_CA (store code address) %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6040
+#: vms-alpha.c:6261
 #, c-format
 msgid "STO_RB (store relative branch)\n"
 msgstr ""
 
-#: vms-alpha.c:6043
+#: vms-alpha.c:6264
 #, c-format
 msgid "STO_AB (store absolute branch)\n"
 msgstr ""
 
-#: vms-alpha.c:6046
+#: vms-alpha.c:6267
 #, c-format
 msgid "STO_OFF (store offset to psect)\n"
 msgstr ""
 
-#: vms-alpha.c:6052
+#: vms-alpha.c:6273
 #, c-format
 msgid "STO_IMM (store immediate) %u bytes\n"
 msgstr ""
 
-#: vms-alpha.c:6059
+#: vms-alpha.c:6280
 #, c-format
 msgid "STO_GBL_LW (store global longword) %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6063
+#: vms-alpha.c:6284
 #, c-format
 msgid "STO_OFF (store LP with procedure signature)\n"
 msgstr ""
 
-#: vms-alpha.c:6066
+#: vms-alpha.c:6287
 #, c-format
 msgid "STO_BR_GBL (store branch global) *todo*\n"
 msgstr ""
 
-#: vms-alpha.c:6069
+#: vms-alpha.c:6290
 #, c-format
 msgid "STO_BR_PS (store branch psect + offset) *todo*\n"
 msgstr ""
 
-#: vms-alpha.c:6073
+#: vms-alpha.c:6294
 #, c-format
 msgid "OPR_NOP (no-operation)\n"
 msgstr ""
 
-#: vms-alpha.c:6076
+#: vms-alpha.c:6297
 #, c-format
 msgid "OPR_ADD (add)\n"
 msgstr ""
 
-#: vms-alpha.c:6079
+#: vms-alpha.c:6300
 #, c-format
-msgid "OPR_SUB (substract)\n"
+msgid "OPR_SUB (subtract)\n"
 msgstr ""
 
-#: vms-alpha.c:6082
+#: vms-alpha.c:6303
 #, c-format
 msgid "OPR_MUL (multiply)\n"
 msgstr ""
 
-#: vms-alpha.c:6085
+#: vms-alpha.c:6306
 #, c-format
 msgid "OPR_DIV (divide)\n"
 msgstr ""
 
-#: vms-alpha.c:6088
+#: vms-alpha.c:6309
 #, c-format
 msgid "OPR_AND (logical and)\n"
 msgstr ""
 
-#: vms-alpha.c:6091
+#: vms-alpha.c:6312
 #, c-format
 msgid "OPR_IOR (logical inclusive or)\n"
 msgstr ""
 
-#: vms-alpha.c:6094
+#: vms-alpha.c:6315
 #, c-format
 msgid "OPR_EOR (logical exclusive or)\n"
 msgstr ""
 
-#: vms-alpha.c:6097
+#: vms-alpha.c:6318
 #, c-format
 msgid "OPR_NEG (negate)\n"
 msgstr ""
 
-#: vms-alpha.c:6100
+#: vms-alpha.c:6321
 #, c-format
 msgid "OPR_COM (complement)\n"
 msgstr ""
 
-#: vms-alpha.c:6103
+#: vms-alpha.c:6324
 #, c-format
 msgid "OPR_INSV (insert field)\n"
 msgstr ""
 
-#: vms-alpha.c:6106
+#: vms-alpha.c:6327
 #, c-format
 msgid "OPR_ASH (arithmetic shift)\n"
 msgstr ""
 
-#: vms-alpha.c:6109
+#: vms-alpha.c:6330
 #, c-format
 msgid "OPR_USH (unsigned shift)\n"
 msgstr ""
 
-#: vms-alpha.c:6112
+#: vms-alpha.c:6333
 #, c-format
 msgid "OPR_ROT (rotate)\n"
 msgstr ""
 
-#: vms-alpha.c:6115
+#: vms-alpha.c:6336
 #, c-format
 msgid "OPR_SEL (select)\n"
 msgstr ""
 
-#: vms-alpha.c:6118
+#: vms-alpha.c:6339
 #, c-format
 msgid "OPR_REDEF (redefine symbol to curr location)\n"
 msgstr ""
 
-#: vms-alpha.c:6121
+#: vms-alpha.c:6342
 #, c-format
 msgid "OPR_REDEF (define a literal)\n"
 msgstr ""
 
-#: vms-alpha.c:6125
+#: vms-alpha.c:6346
 #, c-format
 msgid "STC_LP (store cond linkage pair)\n"
 msgstr ""
 
-#: vms-alpha.c:6129
+#: vms-alpha.c:6350
 #, c-format
 msgid "STC_LP_PSB (store cond linkage pair + signature)\n"
 msgstr ""
 
-#: vms-alpha.c:6131
+#: vms-alpha.c:6352
 #, c-format
 msgid "   linkage index: %u, procedure: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6134
+#: vms-alpha.c:6355
 #, c-format
 msgid "   signature: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6137
+#: vms-alpha.c:6358
 #, c-format
 msgid "STC_GBL (store cond global)\n"
 msgstr ""
 
-#: vms-alpha.c:6139
+#: vms-alpha.c:6360
 #, c-format
 msgid "   linkage index: %u, global: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6143
+#: vms-alpha.c:6364
 #, c-format
 msgid "STC_GCA (store cond code address)\n"
 msgstr ""
 
-#: vms-alpha.c:6145
+#: vms-alpha.c:6366
 #, c-format
 msgid "   linkage index: %u, procedure name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6149
+#: vms-alpha.c:6370
 #, c-format
 msgid "STC_PS (store cond psect + offset)\n"
 msgstr ""
 
-#: vms-alpha.c:6152
+#: vms-alpha.c:6373
 #, c-format
 msgid "   linkage index: %u, psect: %u, offset: 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:6159
+#: vms-alpha.c:6380
 #, c-format
 msgid "STC_NOP_GBL (store cond NOP at global addr)\n"
 msgstr ""
 
-#: vms-alpha.c:6163
+#: vms-alpha.c:6384
 #, c-format
 msgid "STC_NOP_PS (store cond NOP at psect + offset)\n"
 msgstr ""
 
-#: vms-alpha.c:6167
+#: vms-alpha.c:6388
 #, c-format
 msgid "STC_BSR_GBL (store cond BSR at global addr)\n"
 msgstr ""
 
-#: vms-alpha.c:6171
+#: vms-alpha.c:6392
 #, c-format
 msgid "STC_BSR_PS (store cond BSR at psect + offset)\n"
 msgstr ""
 
-#: vms-alpha.c:6175
+#: vms-alpha.c:6396
 #, c-format
 msgid "STC_LDA_GBL (store cond LDA at global addr)\n"
 msgstr ""
 
-#: vms-alpha.c:6179
+#: vms-alpha.c:6400
 #, c-format
 msgid "STC_LDA_PS (store cond LDA at psect + offset)\n"
 msgstr ""
 
-#: vms-alpha.c:6183
+#: vms-alpha.c:6404
 #, c-format
 msgid "STC_BOH_GBL (store cond BOH at global addr)\n"
 msgstr ""
 
-#: vms-alpha.c:6187
+#: vms-alpha.c:6408
 #, c-format
 msgid "STC_BOH_PS (store cond BOH at psect + offset)\n"
 msgstr ""
 
-#: vms-alpha.c:6192
+#: vms-alpha.c:6413
 #, c-format
 msgid "STC_NBH_GBL (store cond or hint at global addr)\n"
 msgstr ""
 
-#: vms-alpha.c:6196
+#: vms-alpha.c:6417
 #, c-format
 msgid "STC_NBH_PS (store cond or hint at psect + offset)\n"
 msgstr ""
 
-#: vms-alpha.c:6200
+#: vms-alpha.c:6421
 #, c-format
 msgid "CTL_SETRB (set relocation base)\n"
 msgstr ""
 
-#: vms-alpha.c:6206
+#: vms-alpha.c:6427
 #, c-format
 msgid "CTL_AUGRB (augment relocation base) %u\n"
 msgstr ""
 
-#: vms-alpha.c:6210
+#: vms-alpha.c:6431
 #, c-format
 msgid "CTL_DFLOC (define location)\n"
 msgstr ""
 
-#: vms-alpha.c:6213
+#: vms-alpha.c:6434
 #, c-format
 msgid "CTL_STLOC (set location)\n"
 msgstr ""
 
-#: vms-alpha.c:6216
+#: vms-alpha.c:6437
 #, c-format
 msgid "CTL_STKDL (stack defined location)\n"
 msgstr ""
 
-#: vms-alpha.c:6219 vms-alpha.c:6643 vms-alpha.c:6769
+#: vms-alpha.c:6440 vms-alpha.c:6864 vms-alpha.c:6990
 #, c-format
 msgid "*unhandled*\n"
 msgstr ""
 
-#: vms-alpha.c:6249 vms-alpha.c:6288
+#: vms-alpha.c:6470 vms-alpha.c:6509
 #, c-format
 msgid "cannot read GST record length\n"
 msgstr ""
 
 #. Ill-formed.
-#: vms-alpha.c:6270
+#: vms-alpha.c:6491
 #, c-format
 msgid "cannot find EMH in first GST record\n"
 msgstr ""
 
-#: vms-alpha.c:6296
+#: vms-alpha.c:6517
 #, c-format
 msgid "cannot read GST record header\n"
 msgstr ""
 
-#: vms-alpha.c:6309
+#: vms-alpha.c:6530
 #, c-format
 msgid " corrupted GST\n"
 msgstr ""
 
-#: vms-alpha.c:6317
+#: vms-alpha.c:6538
 #, c-format
 msgid "cannot read GST record\n"
 msgstr ""
 
-#: vms-alpha.c:6346
+#: vms-alpha.c:6567
 #, c-format
 msgid " unhandled EOBJ record type %u\n"
 msgstr ""
 
-#: vms-alpha.c:6370
+#: vms-alpha.c:6591
 #, c-format
 msgid "  bitcount: %u, base addr: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6384
+#: vms-alpha.c:6605
 #, c-format
 msgid "   bitmap: 0x%08x (count: %u):\n"
 msgstr ""
 
-#: vms-alpha.c:6391
+#: vms-alpha.c:6612
 #, c-format
 msgid " %08x"
 msgstr ""
 
-#: vms-alpha.c:6417
+#: vms-alpha.c:6638
 #, c-format
 msgid "  image %u (%u entries)\n"
 msgstr ""
 
-#: vms-alpha.c:6423
+#: vms-alpha.c:6644
 #, c-format
 msgid "   offset: 0x%08x, val: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6445
+#: vms-alpha.c:6666
 #, c-format
 msgid "  image %u (%u entries), offsets:\n"
 msgstr ""
 
-#: vms-alpha.c:6452
+#: vms-alpha.c:6673
 #, c-format
 msgid " 0x%08x"
 msgstr ""
 
 #. 64 bits.
-#: vms-alpha.c:6574
+#: vms-alpha.c:6795
 #, c-format
 msgid "64 bits *unhandled*\n"
 msgstr ""
 
-#: vms-alpha.c:6579
+#: vms-alpha.c:6800
 #, c-format
 msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6590
+#: vms-alpha.c:6811
 #, c-format
 msgid "non-contiguous array of %s\n"
 msgstr ""
 
-#: vms-alpha.c:6595
+#: vms-alpha.c:6816
 #, c-format
 msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"
 msgstr ""
 
-#: vms-alpha.c:6600
+#: vms-alpha.c:6821
 #, c-format
 msgid "arsize: %u, a0: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6604
+#: vms-alpha.c:6825
 #, c-format
 msgid "Strides:\n"
 msgstr ""
 
-#: vms-alpha.c:6614
+#: vms-alpha.c:6835
 #, c-format
 msgid "Bounds:\n"
 msgstr ""
 
-#: vms-alpha.c:6620
+#: vms-alpha.c:6841
 #, c-format
 msgid "[%u]: Lower: %u, upper: %u\n"
 msgstr ""
 
-#: vms-alpha.c:6632
+#: vms-alpha.c:6853
 #, c-format
 msgid "unaligned bit-string of %s\n"
 msgstr ""
 
-#: vms-alpha.c:6637
+#: vms-alpha.c:6858
 #, c-format
 msgid "base: %u, pos: %u\n"
 msgstr ""
 
-#: vms-alpha.c:6658
+#: vms-alpha.c:6879
 #, c-format
 msgid "vflags: 0x%02x, value: 0x%08x "
 msgstr ""
 
-#: vms-alpha.c:6664
+#: vms-alpha.c:6885
 #, c-format
 msgid "(no value)\n"
 msgstr ""
 
-#: vms-alpha.c:6667
+#: vms-alpha.c:6888
 #, c-format
 msgid "(not active)\n"
 msgstr ""
 
-#: vms-alpha.c:6670
+#: vms-alpha.c:6891
 #, c-format
 msgid "(not allocated)\n"
 msgstr ""
 
-#: vms-alpha.c:6673
+#: vms-alpha.c:6894
 #, c-format
 msgid "(descriptor)\n"
 msgstr ""
 
-#: vms-alpha.c:6677
+#: vms-alpha.c:6898
 #, c-format
 msgid "(trailing value)\n"
 msgstr ""
 
-#: vms-alpha.c:6680
+#: vms-alpha.c:6901
 #, c-format
 msgid "(value spec follows)\n"
 msgstr ""
 
-#: vms-alpha.c:6683
+#: vms-alpha.c:6904
 #, c-format
 msgid "(at bit offset %u)\n"
 msgstr ""
 
-#: vms-alpha.c:6687
+#: vms-alpha.c:6908
 #, c-format
 msgid "(reg: %u, disp: %u, indir: %u, kind: "
 msgstr ""
 
-#: vms-alpha.c:6694
+#: vms-alpha.c:6915
 msgid "literal"
 msgstr ""
 
-#: vms-alpha.c:6697
+#: vms-alpha.c:6918
 msgid "address"
 msgstr ""
 
-#: vms-alpha.c:6700
+#: vms-alpha.c:6921
 msgid "desc"
 msgstr ""
 
-#: vms-alpha.c:6703
+#: vms-alpha.c:6924
 msgid "reg"
 msgstr ""
 
-#: vms-alpha.c:6720
+#: vms-alpha.c:6941
 #, c-format
 msgid "len: %2u, kind: %2u "
 msgstr ""
 
-#: vms-alpha.c:6726
+#: vms-alpha.c:6947
 #, c-format
 msgid "atomic, type=0x%02x %s\n"
 msgstr ""
 
-#: vms-alpha.c:6730
+#: vms-alpha.c:6951
 #, c-format
 msgid "indirect, defined at 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6734
+#: vms-alpha.c:6955
 #, c-format
 msgid "typed pointer\n"
 msgstr ""
 
-#: vms-alpha.c:6738
+#: vms-alpha.c:6959
 #, c-format
 msgid "pointer\n"
 msgstr ""
 
-#: vms-alpha.c:6746
+#: vms-alpha.c:6967
 #, c-format
 msgid "array, dim: %u, bitmap: "
 msgstr ""
 
-#: vms-alpha.c:6753
+#: vms-alpha.c:6974
 #, c-format
 msgid "array descriptor:\n"
 msgstr ""
 
-#: vms-alpha.c:6760
+#: vms-alpha.c:6981
 #, c-format
 msgid "type spec for element:\n"
 msgstr ""
 
-#: vms-alpha.c:6762
+#: vms-alpha.c:6983
 #, c-format
 msgid "type spec for subscript %u:\n"
 msgstr ""
 
-#: vms-alpha.c:6780
+#: vms-alpha.c:7001
 #, c-format
 msgid "Debug symbol table:\n"
 msgstr ""
 
-#: vms-alpha.c:6791
+#: vms-alpha.c:7012
 #, c-format
 msgid "cannot read DST header\n"
 msgstr ""
 
-#: vms-alpha.c:6797
+#: vms-alpha.c:7018
 #, c-format
 msgid " type: %3u, len: %3u (at 0x%08x): "
 msgstr ""
 
-#: vms-alpha.c:6811
+#: vms-alpha.c:7032
 #, c-format
 msgid "cannot read DST symbol\n"
 msgstr ""
 
-#: vms-alpha.c:6854
+#: vms-alpha.c:7075
 #, c-format
 msgid "standard data: %s\n"
 msgstr ""
 
-#: vms-alpha.c:6857 vms-alpha.c:6945
+#: vms-alpha.c:7078 vms-alpha.c:7166
 #, c-format
 msgid "    name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6864
+#: vms-alpha.c:7085
 #, c-format
 msgid "modbeg\n"
 msgstr ""
 
-#: vms-alpha.c:6866
+#: vms-alpha.c:7087
 #, c-format
 msgid "   flags: %d, language: %u, major: %u, minor: %u\n"
 msgstr ""
 
-#: vms-alpha.c:6872 vms-alpha.c:7146
+#: vms-alpha.c:7093 vms-alpha.c:7367
 #, c-format
 msgid "   module name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6875
+#: vms-alpha.c:7096
 #, c-format
 msgid "   compiler   : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6880
+#: vms-alpha.c:7101
 #, c-format
 msgid "modend\n"
 msgstr ""
 
-#: vms-alpha.c:6887
+#: vms-alpha.c:7108
 msgid "rtnbeg\n"
 msgstr ""
 
-#: vms-alpha.c:6889
+#: vms-alpha.c:7110
 #, c-format
 msgid "    flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6894
+#: vms-alpha.c:7115
 #, c-format
 msgid "    routine name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6902
+#: vms-alpha.c:7123
 #, c-format
 msgid "rtnend: size 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6910
+#: vms-alpha.c:7131
 #, c-format
 msgid "prolog: bkpt address 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6919
+#: vms-alpha.c:7140
 #, c-format
 msgid "epilog: flags: %u, count: %u\n"
 msgstr ""
 
-#: vms-alpha.c:6929
+#: vms-alpha.c:7150
 #, c-format
 msgid "blkbeg: address: 0x%08x, name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6938
+#: vms-alpha.c:7159
 #, c-format
 msgid "blkend: size: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6944
+#: vms-alpha.c:7165
 #, c-format
 msgid "typspec (len: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:6951
+#: vms-alpha.c:7172
 #, c-format
 msgid "septyp, name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6960
+#: vms-alpha.c:7181
 #, c-format
 msgid "recbeg: name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6962
+#: vms-alpha.c:7183
 #, c-format
 msgid "    len: %u bits\n"
 msgstr ""
 
-#: vms-alpha.c:6967
+#: vms-alpha.c:7188
 #, c-format
 msgid "recend\n"
 msgstr ""
 
-#: vms-alpha.c:6971
+#: vms-alpha.c:7192
 #, c-format
 msgid "enumbeg, len: %u, name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6975
+#: vms-alpha.c:7196
 #, c-format
 msgid "enumelt, name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6979
+#: vms-alpha.c:7200
 #, c-format
 msgid "enumend\n"
 msgstr ""
 
-#: vms-alpha.c:6984
+#: vms-alpha.c:7205
 #, c-format
 msgid "label, name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:6986
+#: vms-alpha.c:7207
 #, c-format
 msgid "    address: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:6996
+#: vms-alpha.c:7217
 #, c-format
 msgid "discontiguous range (nbr: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:6999
+#: vms-alpha.c:7220
 #, c-format
 msgid "    address: 0x%08x, size: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7009
+#: vms-alpha.c:7230
 #, c-format
 msgid "line num  (len: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7026
+#: vms-alpha.c:7247
 #, c-format
 msgid "delta_pc_w %u\n"
 msgstr ""
 
-#: vms-alpha.c:7033
+#: vms-alpha.c:7254
 #, c-format
 msgid "incr_linum(b): +%u\n"
 msgstr ""
 
-#: vms-alpha.c:7039
+#: vms-alpha.c:7260
 #, c-format
 msgid "incr_linum_w: +%u\n"
 msgstr ""
 
-#: vms-alpha.c:7045
+#: vms-alpha.c:7266
 #, c-format
 msgid "incr_linum_l: +%u\n"
 msgstr ""
 
-#: vms-alpha.c:7051
+#: vms-alpha.c:7272
 #, c-format
 msgid "set_line_num(w) %u\n"
 msgstr ""
 
-#: vms-alpha.c:7056
+#: vms-alpha.c:7277
 #, c-format
 msgid "set_line_num_b %u\n"
 msgstr ""
 
-#: vms-alpha.c:7061
+#: vms-alpha.c:7282
 #, c-format
 msgid "set_line_num_l %u\n"
 msgstr ""
 
-#: vms-alpha.c:7066
+#: vms-alpha.c:7287
 #, c-format
 msgid "set_abs_pc: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7070
+#: vms-alpha.c:7291
 #, c-format
 msgid "delta_pc_l: +0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7075
+#: vms-alpha.c:7296
 #, c-format
 msgid "term(b): 0x%02x"
 msgstr ""
 
-#: vms-alpha.c:7077
+#: vms-alpha.c:7298
 #, c-format
 msgid "        pc: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7082
+#: vms-alpha.c:7303
 #, c-format
 msgid "term_w: 0x%04x"
 msgstr ""
 
-#: vms-alpha.c:7084
+#: vms-alpha.c:7305
 #, c-format
 msgid "    pc: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7090
+#: vms-alpha.c:7311
 #, c-format
 msgid "delta pc +%-4d"
 msgstr ""
 
-#: vms-alpha.c:7094
+#: vms-alpha.c:7315
 #, c-format
 msgid "    pc: 0x%08x line: %5u\n"
 msgstr ""
 
-#: vms-alpha.c:7099
+#: vms-alpha.c:7320
 #, c-format
 msgid "    *unhandled* cmd %u\n"
 msgstr ""
 
-#: vms-alpha.c:7114
+#: vms-alpha.c:7335
 #, c-format
 msgid "source (len: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7129
+#: vms-alpha.c:7350
 #, c-format
 msgid "   declfile: len: %u, flags: %u, fileid: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7134
+#: vms-alpha.c:7355
 #, c-format
 msgid "   rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7143
+#: vms-alpha.c:7364
 #, c-format
 msgid "   filename   : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7152
+#: vms-alpha.c:7373
 #, c-format
 msgid "   setfile %u\n"
 msgstr ""
 
-#: vms-alpha.c:7157 vms-alpha.c:7162
+#: vms-alpha.c:7378 vms-alpha.c:7383
 #, c-format
 msgid "   setrec %u\n"
 msgstr ""
 
-#: vms-alpha.c:7167 vms-alpha.c:7172
+#: vms-alpha.c:7388 vms-alpha.c:7393
 #, c-format
 msgid "   setlnum %u\n"
 msgstr ""
 
-#: vms-alpha.c:7177 vms-alpha.c:7182
+#: vms-alpha.c:7398 vms-alpha.c:7403
 #, c-format
 msgid "   deflines %u\n"
 msgstr ""
 
-#: vms-alpha.c:7186
+#: vms-alpha.c:7407
 #, c-format
 msgid "   formfeed\n"
 msgstr ""
 
-#: vms-alpha.c:7190
+#: vms-alpha.c:7411
 #, c-format
 msgid "   *unhandled* cmd %u\n"
 msgstr ""
 
-#: vms-alpha.c:7202
+#: vms-alpha.c:7423
 #, c-format
 msgid "*unhandled* dst type %u\n"
 msgstr ""
 
-#: vms-alpha.c:7234
+#: vms-alpha.c:7455
 #, c-format
 msgid "cannot read EIHD\n"
 msgstr ""
 
-#: vms-alpha.c:7238
+#: vms-alpha.c:7459
 #, c-format
 msgid "EIHD: (size: %u, nbr blocks: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7242
+#: vms-alpha.c:7463
 #, c-format
 msgid " majorid: %u, minorid: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7250
+#: vms-alpha.c:7471
 msgid "executable"
 msgstr ""
 
-#: vms-alpha.c:7253
+#: vms-alpha.c:7474
 msgid "linkable image"
 msgstr ""
 
-#: vms-alpha.c:7260
+#: vms-alpha.c:7481
 #, c-format
 msgid " image type: %u (%s)"
 msgstr ""
 
-#: vms-alpha.c:7266
+#: vms-alpha.c:7487
 msgid "native"
 msgstr ""
 
-#: vms-alpha.c:7269
+#: vms-alpha.c:7490
 msgid "CLI"
 msgstr ""
 
-#: vms-alpha.c:7276
+#: vms-alpha.c:7497
 #, c-format
 msgid ", subtype: %u (%s)\n"
 msgstr ""
 
-#: vms-alpha.c:7283
+#: vms-alpha.c:7504
 #, c-format
 msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7287
+#: vms-alpha.c:7508
 #, c-format
 msgid " fixup info rva: "
 msgstr ""
 
-#: vms-alpha.c:7289
+#: vms-alpha.c:7510
 #, c-format
 msgid ", symbol vector rva: "
 msgstr ""
 
-#: vms-alpha.c:7292
+#: vms-alpha.c:7513
 #, c-format
 msgid ""
 "\n"
 " version array off: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7297
+#: vms-alpha.c:7518
 #, c-format
 msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7303
+#: vms-alpha.c:7524
 #, c-format
 msgid " linker flags: %08x:"
 msgstr ""
 
-#: vms-alpha.c:7334
+#: vms-alpha.c:7555
 #, c-format
 msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7340
+#: vms-alpha.c:7561
 #, c-format
 msgid " BPAGE: %u"
 msgstr ""
 
-#: vms-alpha.c:7347
+#: vms-alpha.c:7568
 #, c-format
 msgid ", ext fixup offset: %u, no_opt psect off: %u"
 msgstr ""
 
-#: vms-alpha.c:7350
+#: vms-alpha.c:7571
 #, c-format
 msgid ", alias: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7358
+#: vms-alpha.c:7579
 #, c-format
 msgid "system version array information:\n"
 msgstr ""
 
-#: vms-alpha.c:7362
+#: vms-alpha.c:7583
 #, c-format
 msgid "cannot read EIHVN header\n"
 msgstr ""
 
-#: vms-alpha.c:7372
+#: vms-alpha.c:7593
 #, c-format
 msgid "cannot read EIHVN version\n"
 msgstr ""
 
-#: vms-alpha.c:7375
+#: vms-alpha.c:7596
 #, c-format
 msgid "   %02u "
 msgstr ""
 
-#: vms-alpha.c:7379
+#: vms-alpha.c:7600
 msgid "BASE_IMAGE       "
 msgstr ""
 
-#: vms-alpha.c:7382
+#: vms-alpha.c:7603
 msgid "MEMORY_MANAGEMENT"
 msgstr ""
 
-#: vms-alpha.c:7385
+#: vms-alpha.c:7606
 msgid "IO               "
 msgstr ""
 
-#: vms-alpha.c:7388
+#: vms-alpha.c:7609
 msgid "FILES_VOLUMES    "
 msgstr ""
 
-#: vms-alpha.c:7391
+#: vms-alpha.c:7612
 msgid "PROCESS_SCHED    "
 msgstr ""
 
-#: vms-alpha.c:7394
+#: vms-alpha.c:7615
 msgid "SYSGEN           "
 msgstr ""
 
-#: vms-alpha.c:7397
+#: vms-alpha.c:7618
 msgid "CLUSTERS_LOCKMGR "
 msgstr ""
 
-#: vms-alpha.c:7400
+#: vms-alpha.c:7621
 msgid "LOGICAL_NAMES    "
 msgstr ""
 
-#: vms-alpha.c:7403
+#: vms-alpha.c:7624
 msgid "SECURITY         "
 msgstr ""
 
-#: vms-alpha.c:7406
+#: vms-alpha.c:7627
 msgid "IMAGE_ACTIVATOR  "
 msgstr ""
 
-#: vms-alpha.c:7409
+#: vms-alpha.c:7630
 msgid "NETWORKS         "
 msgstr ""
 
-#: vms-alpha.c:7412
+#: vms-alpha.c:7633
 msgid "COUNTERS         "
 msgstr ""
 
-#: vms-alpha.c:7415
+#: vms-alpha.c:7636
 msgid "STABLE           "
 msgstr ""
 
-#: vms-alpha.c:7418
+#: vms-alpha.c:7639
 msgid "MISC             "
 msgstr ""
 
-#: vms-alpha.c:7421
+#: vms-alpha.c:7642
 msgid "CPU              "
 msgstr ""
 
-#: vms-alpha.c:7424
+#: vms-alpha.c:7645
 msgid "VOLATILE         "
 msgstr ""
 
-#: vms-alpha.c:7427
+#: vms-alpha.c:7648
 msgid "SHELL            "
 msgstr ""
 
-#: vms-alpha.c:7430
+#: vms-alpha.c:7651
 msgid "POSIX            "
 msgstr ""
 
-#: vms-alpha.c:7433
+#: vms-alpha.c:7654
 msgid "MULTI_PROCESSING "
 msgstr ""
 
-#: vms-alpha.c:7436
+#: vms-alpha.c:7657
 msgid "GALAXY           "
 msgstr ""
 
-#: vms-alpha.c:7439
+#: vms-alpha.c:7660
 msgid "*unknown*        "
 msgstr ""
 
-#: vms-alpha.c:7455 vms-alpha.c:7730
+#: vms-alpha.c:7676 vms-alpha.c:7951
 #, c-format
 msgid "cannot read EIHA\n"
 msgstr ""
 
-#: vms-alpha.c:7458
+#: vms-alpha.c:7679
 #, c-format
 msgid "Image activation:  (size=%u)\n"
 msgstr ""
 
-#: vms-alpha.c:7461
+#: vms-alpha.c:7682
 #, c-format
 msgid " First address : 0x%08x 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7465
+#: vms-alpha.c:7686
 #, c-format
 msgid " Second address: 0x%08x 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7469
+#: vms-alpha.c:7690
 #, c-format
 msgid " Third address : 0x%08x 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7473
+#: vms-alpha.c:7694
 #, c-format
 msgid " Fourth address: 0x%08x 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7477
+#: vms-alpha.c:7698
 #, c-format
 msgid " Shared image  : 0x%08x 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7488
+#: vms-alpha.c:7709
 #, c-format
 msgid "cannot read EIHI\n"
 msgstr ""
 
-#: vms-alpha.c:7492
+#: vms-alpha.c:7713
 #, c-format
 msgid "Image identification: (major: %u, minor: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7495
+#: vms-alpha.c:7716
 #, c-format
 msgid " image name       : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7497
+#: vms-alpha.c:7718
 #, c-format
 msgid " link time        : %s\n"
 msgstr ""
 
-#: vms-alpha.c:7499
+#: vms-alpha.c:7720
 #, c-format
 msgid " image ident      : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7501
+#: vms-alpha.c:7722
 #, c-format
 msgid " linker ident     : %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7503
+#: vms-alpha.c:7724
 #, c-format
 msgid " image build ident: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7513
+#: vms-alpha.c:7734
 #, c-format
 msgid "cannot read EIHS\n"
 msgstr ""
 
-#: vms-alpha.c:7517
+#: vms-alpha.c:7738
 #, c-format
 msgid "Image symbol & debug table: (major: %u, minor: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7523
+#: vms-alpha.c:7744
 #, c-format
 msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n"
 msgstr ""
 
-#: vms-alpha.c:7528
+#: vms-alpha.c:7749
 #, c-format
 msgid " global symbol table: vbn: %u, records: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7533
+#: vms-alpha.c:7754
 #, c-format
 msgid " debug module table : vbn: %u, size: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7546
+#: vms-alpha.c:7767
 #, c-format
 msgid "cannot read EISD\n"
 msgstr ""
 
-#: vms-alpha.c:7557
+#: vms-alpha.c:7778
 #, c-format
 msgid ""
 "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7565
+#: vms-alpha.c:7786
 #, c-format
 msgid " section: base: 0x%08x%08x size: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7570
+#: vms-alpha.c:7791
 #, c-format
 msgid " flags: 0x%04x"
 msgstr ""
 
-#: vms-alpha.c:7608
+#: vms-alpha.c:7829
 #, c-format
 msgid " vbn: %u, pfc: %u, matchctl: %u type: %u ("
 msgstr ""
 
-#: vms-alpha.c:7614
+#: vms-alpha.c:7835
 msgid "NORMAL"
 msgstr ""
 
-#: vms-alpha.c:7617
+#: vms-alpha.c:7838
 msgid "SHRFXD"
 msgstr ""
 
-#: vms-alpha.c:7620
+#: vms-alpha.c:7841
 msgid "PRVFXD"
 msgstr ""
 
-#: vms-alpha.c:7623
+#: vms-alpha.c:7844
 msgid "SHRPIC"
 msgstr ""
 
-#: vms-alpha.c:7626
+#: vms-alpha.c:7847
 msgid "PRVPIC"
 msgstr ""
 
-#: vms-alpha.c:7629
+#: vms-alpha.c:7850
 msgid "USRSTACK"
 msgstr ""
 
-#: vms-alpha.c:7635
+#: vms-alpha.c:7856
 msgid ")\n"
 msgstr ""
 
-#: vms-alpha.c:7638
+#: vms-alpha.c:7859
 #, c-format
 msgid " ident: 0x%08x, name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7648
+#: vms-alpha.c:7869
 #, c-format
 msgid "cannot read DMT\n"
 msgstr ""
 
-#: vms-alpha.c:7652
+#: vms-alpha.c:7873
 #, c-format
 msgid "Debug module table:\n"
 msgstr ""
 
-#: vms-alpha.c:7661
+#: vms-alpha.c:7882
 #, c-format
 msgid "cannot read DMT header\n"
 msgstr ""
 
-#: vms-alpha.c:7667
+#: vms-alpha.c:7888
 #, c-format
 msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
 msgstr ""
 
-#: vms-alpha.c:7677
+#: vms-alpha.c:7898
 #, c-format
 msgid "cannot read DMT psect\n"
 msgstr ""
 
-#: vms-alpha.c:7681
+#: vms-alpha.c:7902
 #, c-format
 msgid "  psect start: 0x%08x, length: %u\n"
 msgstr ""
 
-#: vms-alpha.c:7694
+#: vms-alpha.c:7915
 #, c-format
 msgid "cannot read DST\n"
 msgstr ""
 
-#: vms-alpha.c:7704
+#: vms-alpha.c:7925
 #, c-format
 msgid "cannot read GST\n"
 msgstr ""
 
-#: vms-alpha.c:7708
+#: vms-alpha.c:7929
 #, c-format
 msgid "Global symbol table:\n"
 msgstr ""
 
-#: vms-alpha.c:7737
+#: vms-alpha.c:7958
 #, c-format
 msgid "Image activator fixup: (major: %u, minor: %u)\n"
 msgstr ""
 
-#: vms-alpha.c:7741
+#: vms-alpha.c:7962
 #, c-format
 msgid "  iaflink : 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:7745
+#: vms-alpha.c:7966
 #, c-format
 msgid "  fixuplnk: 0x%08x %08x\n"
 msgstr ""
 
-#: vms-alpha.c:7748
+#: vms-alpha.c:7969
 #, c-format
 msgid "  size : %u\n"
 msgstr ""
 
-#: vms-alpha.c:7750
+#: vms-alpha.c:7971
 #, c-format
 msgid "  flags: 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7755
+#: vms-alpha.c:7976
 #, c-format
 msgid "  qrelfixoff: %5u, lrelfixoff: %5u\n"
 msgstr ""
 
-#: vms-alpha.c:7760
+#: vms-alpha.c:7981
 #, c-format
 msgid "  qdotadroff: %5u, ldotadroff: %5u\n"
 msgstr ""
 
-#: vms-alpha.c:7765
+#: vms-alpha.c:7986
 #, c-format
 msgid "  codeadroff: %5u, lpfixoff  : %5u\n"
 msgstr ""
 
-#: vms-alpha.c:7768
+#: vms-alpha.c:7989
 #, c-format
 msgid "  chgprtoff : %5u\n"
 msgstr ""
 
-#: vms-alpha.c:7772
+#: vms-alpha.c:7993
 #, c-format
 msgid "  shlstoff  : %5u, shrimgcnt : %5u\n"
 msgstr ""
 
-#: vms-alpha.c:7775
+#: vms-alpha.c:7996
 #, c-format
 msgid "  shlextra  : %5u, permctx   : %5u\n"
 msgstr ""
 
-#: vms-alpha.c:7778
+#: vms-alpha.c:7999
 #, c-format
 msgid "  base_va : 0x%08x\n"
 msgstr ""
 
-#: vms-alpha.c:7780
+#: vms-alpha.c:8001
 #, c-format
 msgid "  lppsbfixoff: %5u\n"
 msgstr ""
 
-#: vms-alpha.c:7788
+#: vms-alpha.c:8009
 #, c-format
 msgid " Shareable images:\n"
 msgstr ""
 
-#: vms-alpha.c:7793
+#: vms-alpha.c:8014
 #, c-format
 msgid "  %u: size: %u, flags: 0x%02x, name: %.*s\n"
 msgstr ""
 
-#: vms-alpha.c:7800
+#: vms-alpha.c:8021
 #, c-format
 msgid " quad-word relocation fixups:\n"
 msgstr ""
 
-#: vms-alpha.c:7805
+#: vms-alpha.c:8026
 #, c-format
 msgid " long-word relocation fixups:\n"
 msgstr ""
 
-#: vms-alpha.c:7810
+#: vms-alpha.c:8031
 #, c-format
 msgid " quad-word .address reference fixups:\n"
 msgstr ""
 
-#: vms-alpha.c:7815
+#: vms-alpha.c:8036
 #, c-format
 msgid " long-word .address reference fixups:\n"
 msgstr ""
 
-#: vms-alpha.c:7820
+#: vms-alpha.c:8041
 #, c-format
 msgid " Code Address Reference Fixups:\n"
 msgstr ""
 
-#: vms-alpha.c:7825
+#: vms-alpha.c:8046
 #, c-format
 msgid " Linkage Pairs Reference Fixups:\n"
 msgstr ""
 
-#: vms-alpha.c:7834
+#: vms-alpha.c:8055
 #, c-format
 msgid " Change Protection (%u entries):\n"
 msgstr ""
 
-#: vms-alpha.c:7840
+#: vms-alpha.c:8061
 #, c-format
 msgid "  base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "
 msgstr ""
 
 #. FIXME: we do not yet support relocatable link.  It is not obvious
 #. how to do it for debug infos.
-#: vms-alpha.c:8680
+#: vms-alpha.c:8901
 msgid "%P: relocatable link is not supported\n"
 msgstr ""
 
-#: vms-alpha.c:8751
+#: vms-alpha.c:8972
 #, c-format
 msgid "%P: multiple entry points: in modules %B and %B\n"
 msgstr ""
@@ -7848,22 +8040,20 @@ msgstr ""
 msgid "could not open shared image '%s' from '%s'"
 msgstr ""
 
-#: vms-misc.c:359
+#: vms-misc.c:361
 msgid "_bfd_vms_output_counted called with zero bytes"
 msgstr ""
 
-#: vms-misc.c:364
+#: vms-misc.c:366
 msgid "_bfd_vms_output_counted called with too many bytes"
 msgstr ""
 
 #: xcofflink.c:832
-#, c-format
-msgid "%s: XCOFF shared object when not producing XCOFF output"
+msgid "%B: XCOFF shared object when not producing XCOFF output"
 msgstr ""
 
 #: xcofflink.c:853
-#, c-format
-msgid "%s: dynamic object with no .loader section"
+msgid "%B: dynamic object with no .loader section"
 msgstr ""
 
 #: xcofflink.c:1413
@@ -7883,12 +8073,12 @@ msgstr ""
 
 #: xcofflink.c:1502
 #, c-format
-msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d"
+msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %Ld"
 msgstr ""
 
 #: xcofflink.c:1532
 #, c-format
-msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %d"
+msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %Ld"
 msgstr ""
 
 #: xcofflink.c:1679
@@ -7903,7 +8093,7 @@ msgstr ""
 
 #: xcofflink.c:2108
 #, c-format
-msgid "%B: reloc %s:%d not in csect"
+msgid "%B: reloc %s:%Ld not in csect"
 msgstr ""
 
 #: xcofflink.c:3198
@@ -7937,7 +8127,7 @@ msgstr ""
 
 #: xcofflink.c:5115
 #, c-format
-msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"
+msgid "TOC overflow: %#Lx > 0x10000; try -mminimal-toc when compiling"
 msgstr ""
 
 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:1890
@@ -7945,11 +8135,6 @@ msgstr ""
 msgid "Invalid AArch64 reloc number: %d"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2880
-#, c-format
-msgid "cannot create stub entry %s"
-msgstr ""
-
 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:4777
 msgid "%B: error: Erratum 835769 stub out of range (input file too large)"
 msgstr ""
@@ -7958,26 +8143,25 @@ msgstr ""
 msgid "%B: error: Erratum 843419 stub out of range (input file too large)"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5326
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5340
 #, c-format
 msgid ""
-"%B: relocation %s against external symbol `%s' can not be used when making a "
-"shared object; recompile with -fPIC"
+"%B: relocation %s against symbol `%s' which may bind externally can not be "
+"used when making a shared object; recompile with -fPIC"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5394
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5463
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:5431
 #, c-format
 msgid ""
 "%B: Local symbol descriptor table be NULL when applying relocation %s "
 "against local symbol"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6488
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6453
 msgid "Too many GOT entries for -fpic, please recompile with -fPIC"
 msgstr ""
 
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6516
+#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6481
 msgid ""
 "One possible cause of this error is that the symbol is being referenced in "
 "the indicated code as if it had a larger alignment than was declared where "
@@ -8008,193 +8192,193 @@ msgstr ""
 
 #: peigen.c:532 pepigen.c:532 pex64igen.c:532
 msgid ""
-"%B: aout header specifies an invalid number of data-directory entries: %d"
+"%B: aout header specifies an invalid number of data-directory entries: %ld"
 msgstr ""
 
 #: peigen.c:1089 pepigen.c:1089 pex64igen.c:1089
 #, c-format
-msgid "%s: line number overflow: 0x%lx > 0xffff"
+msgid "%B: line number overflow: 0x%lx > 0xffff"
 msgstr ""
 
-#: peigen.c:1234 pepigen.c:1234 pex64igen.c:1234
+#: peigen.c:1233 pepigen.c:1233 pex64igen.c:1233
 msgid "Export Directory [.edata (or where ever we found it)]"
 msgstr ""
 
-#: peigen.c:1235 pepigen.c:1235 pex64igen.c:1235
+#: peigen.c:1234 pepigen.c:1234 pex64igen.c:1234
 msgid "Import Directory [parts of .idata]"
 msgstr ""
 
-#: peigen.c:1236 pepigen.c:1236 pex64igen.c:1236
+#: peigen.c:1235 pepigen.c:1235 pex64igen.c:1235
 msgid "Resource Directory [.rsrc]"
 msgstr ""
 
-#: peigen.c:1237 pepigen.c:1237 pex64igen.c:1237
+#: peigen.c:1236 pepigen.c:1236 pex64igen.c:1236
 msgid "Exception Directory [.pdata]"
 msgstr ""
 
-#: peigen.c:1238 pepigen.c:1238 pex64igen.c:1238
+#: peigen.c:1237 pepigen.c:1237 pex64igen.c:1237
 msgid "Security Directory"
 msgstr ""
 
-#: peigen.c:1239 pepigen.c:1239 pex64igen.c:1239
+#: peigen.c:1238 pepigen.c:1238 pex64igen.c:1238
 msgid "Base Relocation Directory [.reloc]"
 msgstr ""
 
-#: peigen.c:1240 pepigen.c:1240 pex64igen.c:1240
+#: peigen.c:1239 pepigen.c:1239 pex64igen.c:1239
 msgid "Debug Directory"
 msgstr ""
 
-#: peigen.c:1241 pepigen.c:1241 pex64igen.c:1241
+#: peigen.c:1240 pepigen.c:1240 pex64igen.c:1240
 msgid "Description Directory"
 msgstr ""
 
-#: peigen.c:1242 pepigen.c:1242 pex64igen.c:1242
+#: peigen.c:1241 pepigen.c:1241 pex64igen.c:1241
 msgid "Special Directory"
 msgstr ""
 
-#: peigen.c:1243 pepigen.c:1243 pex64igen.c:1243
+#: peigen.c:1242 pepigen.c:1242 pex64igen.c:1242
 msgid "Thread Storage Directory [.tls]"
 msgstr ""
 
-#: peigen.c:1244 pepigen.c:1244 pex64igen.c:1244
+#: peigen.c:1243 pepigen.c:1243 pex64igen.c:1243
 msgid "Load Configuration Directory"
 msgstr ""
 
-#: peigen.c:1245 pepigen.c:1245 pex64igen.c:1245
+#: peigen.c:1244 pepigen.c:1244 pex64igen.c:1244
 msgid "Bound Import Directory"
 msgstr ""
 
-#: peigen.c:1246 pepigen.c:1246 pex64igen.c:1246
+#: peigen.c:1245 pepigen.c:1245 pex64igen.c:1245
 msgid "Import Address Table Directory"
 msgstr ""
 
-#: peigen.c:1247 pepigen.c:1247 pex64igen.c:1247
+#: peigen.c:1246 pepigen.c:1246 pex64igen.c:1246
 msgid "Delay Import Directory"
 msgstr ""
 
-#: peigen.c:1248 pepigen.c:1248 pex64igen.c:1248
+#: peigen.c:1247 pepigen.c:1247 pex64igen.c:1247
 msgid "CLR Runtime Header"
 msgstr ""
 
-#: peigen.c:1249 pepigen.c:1249 pex64igen.c:1249
+#: peigen.c:1248 pepigen.c:1248 pex64igen.c:1248
 msgid "Reserved"
 msgstr ""
 
-#: peigen.c:1309 pepigen.c:1309 pex64igen.c:1309
+#: peigen.c:1308 pepigen.c:1308 pex64igen.c:1308
 #, c-format
 msgid ""
 "\n"
 "There is an import table, but the section containing it could not be found\n"
 msgstr ""
 
-#: peigen.c:1315 pepigen.c:1315 pex64igen.c:1315
+#: peigen.c:1314 pepigen.c:1314 pex64igen.c:1314
 #, c-format
 msgid ""
 "\n"
 "There is an import table in %s, but that section has no contents\n"
 msgstr ""
 
-#: peigen.c:1322 pepigen.c:1322 pex64igen.c:1322
+#: peigen.c:1321 pepigen.c:1321 pex64igen.c:1321
 #, c-format
 msgid ""
 "\n"
 "There is an import table in %s at 0x%lx\n"
 msgstr ""
 
-#: peigen.c:1364 pepigen.c:1364 pex64igen.c:1364
+#: peigen.c:1363 pepigen.c:1363 pex64igen.c:1363
 #, c-format
 msgid ""
 "\n"
 "Function descriptor located at the start address: %04lx\n"
 msgstr ""
 
-#: peigen.c:1368 pepigen.c:1368 pex64igen.c:1368
+#: peigen.c:1367 pepigen.c:1367 pex64igen.c:1367
 #, c-format
 msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
 msgstr ""
 
-#: peigen.c:1376 pepigen.c:1376 pex64igen.c:1376
+#: peigen.c:1375 pepigen.c:1375 pex64igen.c:1375
 #, c-format
 msgid ""
 "\n"
 "No reldata section! Function descriptor not decoded.\n"
 msgstr ""
 
-#: peigen.c:1381 pepigen.c:1381 pex64igen.c:1381
+#: peigen.c:1380 pepigen.c:1380 pex64igen.c:1380
 #, c-format
 msgid ""
 "\n"
 "The Import Tables (interpreted %s section contents)\n"
 msgstr ""
 
-#: peigen.c:1384 pepigen.c:1384 pex64igen.c:1384
+#: peigen.c:1383 pepigen.c:1383 pex64igen.c:1383
 #, c-format
 msgid ""
 " vma:            Hint    Time      Forward  DLL       First\n"
 "                 Table   Stamp     Chain    Name      Thunk\n"
 msgstr ""
 
-#: peigen.c:1434 pepigen.c:1434 pex64igen.c:1434
+#: peigen.c:1433 pepigen.c:1433 pex64igen.c:1433
 #, c-format
 msgid ""
 "\n"
 "\tDLL Name: %.*s\n"
 msgstr ""
 
-#: peigen.c:1445 pepigen.c:1445 pex64igen.c:1445
+#: peigen.c:1449 pepigen.c:1449 pex64igen.c:1449
 #, c-format
 msgid "\tvma:  Hint/Ord Member-Name Bound-To\n"
 msgstr ""
 
-#: peigen.c:1470 pepigen.c:1470 pex64igen.c:1470
+#: peigen.c:1474 pepigen.c:1474 pex64igen.c:1474
 #, c-format
 msgid ""
 "\n"
 "There is a first thunk, but the section containing it could not be found\n"
 msgstr ""
 
-#: peigen.c:1514 peigen.c:1552 pepigen.c:1514 pepigen.c:1552 pex64igen.c:1514
-#: pex64igen.c:1552
+#: peigen.c:1518 peigen.c:1556 pepigen.c:1518 pepigen.c:1556 pex64igen.c:1518
+#: pex64igen.c:1556
 #, c-format
 msgid "\t<corrupt: 0x%04lx>"
 msgstr ""
 
-#: peigen.c:1645 pepigen.c:1645 pex64igen.c:1645
+#: peigen.c:1649 pepigen.c:1649 pex64igen.c:1649
 #, c-format
 msgid ""
 "\n"
 "There is an export table, but the section containing it could not be found\n"
 msgstr ""
 
-#: peigen.c:1651 pepigen.c:1651 pex64igen.c:1651
+#: peigen.c:1655 pepigen.c:1655 pex64igen.c:1655
 #, c-format
 msgid ""
 "\n"
 "There is an export table in %s, but that section has no contents\n"
 msgstr ""
 
-#: peigen.c:1661 pepigen.c:1661 pex64igen.c:1661
+#: peigen.c:1665 pepigen.c:1665 pex64igen.c:1665
 #, c-format
 msgid ""
 "\n"
 "There is an export table in %s, but it does not fit into that section\n"
 msgstr ""
 
-#: peigen.c:1672 pepigen.c:1672 pex64igen.c:1672
+#: peigen.c:1676 pepigen.c:1676 pex64igen.c:1676
 #, c-format
 msgid ""
 "\n"
 "There is an export table in %s, but it is too small (%d)\n"
 msgstr ""
 
-#: peigen.c:1678 pepigen.c:1678 pex64igen.c:1678
+#: peigen.c:1682 pepigen.c:1682 pex64igen.c:1682
 #, c-format
 msgid ""
 "\n"
 "There is an export table in %s at 0x%lx\n"
 msgstr ""
 
-#: peigen.c:1706 pepigen.c:1706 pex64igen.c:1706
+#: peigen.c:1710 pepigen.c:1710 pex64igen.c:1710
 #, c-format
 msgid ""
 "\n"
@@ -8202,162 +8386,162 @@ msgid ""
 "\n"
 msgstr ""
 
-#: peigen.c:1710 pepigen.c:1710 pex64igen.c:1710
+#: peigen.c:1714 pepigen.c:1714 pex64igen.c:1714
 #, c-format
 msgid "Export Flags \t\t\t%lx\n"
 msgstr ""
 
-#: peigen.c:1713 pepigen.c:1713 pex64igen.c:1713
+#: peigen.c:1717 pepigen.c:1717 pex64igen.c:1717
 #, c-format
 msgid "Time/Date stamp \t\t%lx\n"
 msgstr ""
 
-#: peigen.c:1717 pepigen.c:1717 pex64igen.c:1717
+#: peigen.c:1721 pepigen.c:1721 pex64igen.c:1721
 #, c-format
 msgid "Major/Minor \t\t\t%d/%d\n"
 msgstr ""
 
-#: peigen.c:1720 pepigen.c:1720 pex64igen.c:1720
+#: peigen.c:1724 pepigen.c:1724 pex64igen.c:1724
 #, c-format
 msgid "Name \t\t\t\t"
 msgstr ""
 
-#: peigen.c:1731 pepigen.c:1731 pex64igen.c:1731
+#: peigen.c:1735 pepigen.c:1735 pex64igen.c:1735
 #, c-format
 msgid "Ordinal Base \t\t\t%ld\n"
 msgstr ""
 
-#: peigen.c:1734 pepigen.c:1734 pex64igen.c:1734
+#: peigen.c:1738 pepigen.c:1738 pex64igen.c:1738
 #, c-format
 msgid "Number in:\n"
 msgstr ""
 
-#: peigen.c:1737 pepigen.c:1737 pex64igen.c:1737
+#: peigen.c:1741 pepigen.c:1741 pex64igen.c:1741
 #, c-format
 msgid "\tExport Address Table \t\t%08lx\n"
 msgstr ""
 
-#: peigen.c:1741 pepigen.c:1741 pex64igen.c:1741
+#: peigen.c:1745 pepigen.c:1745 pex64igen.c:1745
 #, c-format
 msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
 msgstr ""
 
-#: peigen.c:1744 pepigen.c:1744 pex64igen.c:1744
+#: peigen.c:1748 pepigen.c:1748 pex64igen.c:1748
 #, c-format
 msgid "Table Addresses\n"
 msgstr ""
 
-#: peigen.c:1747 pepigen.c:1747 pex64igen.c:1747
+#: peigen.c:1751 pepigen.c:1751 pex64igen.c:1751
 #, c-format
 msgid "\tExport Address Table \t\t"
 msgstr ""
 
-#: peigen.c:1752 pepigen.c:1752 pex64igen.c:1752
+#: peigen.c:1756 pepigen.c:1756 pex64igen.c:1756
 #, c-format
 msgid "\tName Pointer Table \t\t"
 msgstr ""
 
-#: peigen.c:1757 pepigen.c:1757 pex64igen.c:1757
+#: peigen.c:1761 pepigen.c:1761 pex64igen.c:1761
 #, c-format
 msgid "\tOrdinal Table \t\t\t"
 msgstr ""
 
-#: peigen.c:1771 pepigen.c:1771 pex64igen.c:1771
+#: peigen.c:1775 pepigen.c:1775 pex64igen.c:1775
 #, c-format
 msgid ""
 "\n"
 "Export Address Table -- Ordinal Base %ld\n"
 msgstr ""
 
-#: peigen.c:1780 pepigen.c:1780 pex64igen.c:1780
+#: peigen.c:1784 pepigen.c:1784 pex64igen.c:1784
 #, c-format
 msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"
 msgstr ""
 
-#: peigen.c:1799 pepigen.c:1799 pex64igen.c:1799
+#: peigen.c:1803 pepigen.c:1803 pex64igen.c:1803
 msgid "Forwarder RVA"
 msgstr ""
 
-#: peigen.c:1811 pepigen.c:1811 pex64igen.c:1811
+#: peigen.c:1815 pepigen.c:1815 pex64igen.c:1815
 msgid "Export RVA"
 msgstr ""
 
-#: peigen.c:1818 pepigen.c:1818 pex64igen.c:1818
+#: peigen.c:1822 pepigen.c:1822 pex64igen.c:1822
 #, c-format
 msgid ""
 "\n"
 "[Ordinal/Name Pointer] Table\n"
 msgstr ""
 
-#: peigen.c:1826 pepigen.c:1826 pex64igen.c:1826
+#: peigen.c:1830 pepigen.c:1830 pex64igen.c:1830
 #, c-format
 msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n"
 msgstr ""
 
-#: peigen.c:1833 pepigen.c:1833 pex64igen.c:1833
+#: peigen.c:1837 pepigen.c:1837 pex64igen.c:1837
 #, c-format
 msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n"
 msgstr ""
 
-#: peigen.c:1847 pepigen.c:1847 pex64igen.c:1847
+#: peigen.c:1851 pepigen.c:1851 pex64igen.c:1851
 #, c-format
 msgid "\t[%4ld] <corrupt offset: %lx>\n"
 msgstr ""
 
-#: peigen.c:1901 peigen.c:2098 pepigen.c:1901 pepigen.c:2098 pex64igen.c:1901
-#: pex64igen.c:2098
+#: peigen.c:1905 peigen.c:2102 pepigen.c:1905 pepigen.c:2102 pex64igen.c:1905
+#: pex64igen.c:2102
 #, c-format
 msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n"
 msgstr ""
 
-#: peigen.c:1905 peigen.c:2102 pepigen.c:1905 pepigen.c:2102 pex64igen.c:1905
-#: pex64igen.c:2102
+#: peigen.c:1909 peigen.c:2106 pepigen.c:1909 pepigen.c:2106 pex64igen.c:1909
+#: pex64igen.c:2106
 #, c-format
 msgid ""
 "\n"
 "The Function Table (interpreted .pdata section contents)\n"
 msgstr ""
 
-#: peigen.c:1908 pepigen.c:1908 pex64igen.c:1908
+#: peigen.c:1912 pepigen.c:1912 pex64igen.c:1912
 #, c-format
 msgid " vma:\t\t\tBegin Address    End Address      Unwind Info\n"
 msgstr ""
 
-#: peigen.c:1910 pepigen.c:1910 pex64igen.c:1910
+#: peigen.c:1914 pepigen.c:1914 pex64igen.c:1914
 #, c-format
 msgid ""
 " vma:\t\tBegin    End      EH       EH       PrologEnd  Exception\n"
 "     \t\tAddress  Address  Handler  Data     Address    Mask\n"
 msgstr ""
 
-#: peigen.c:1923 pepigen.c:1923 pex64igen.c:1923
+#: peigen.c:1927 pepigen.c:1927 pex64igen.c:1927
 #, c-format
 msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n"
 msgstr ""
 
-#: peigen.c:1993 pepigen.c:1993 pex64igen.c:1993
+#: peigen.c:1997 pepigen.c:1997 pex64igen.c:1997
 #, c-format
 msgid " Register save millicode"
 msgstr ""
 
-#: peigen.c:1996 pepigen.c:1996 pex64igen.c:1996
+#: peigen.c:2000 pepigen.c:2000 pex64igen.c:2000
 #, c-format
 msgid " Register restore millicode"
 msgstr ""
 
-#: peigen.c:1999 pepigen.c:1999 pex64igen.c:1999
+#: peigen.c:2003 pepigen.c:2003 pex64igen.c:2003
 #, c-format
 msgid " Glue code sequence"
 msgstr ""
 
-#: peigen.c:2104 pepigen.c:2104 pex64igen.c:2104
+#: peigen.c:2108 pepigen.c:2108 pex64igen.c:2108
 #, c-format
 msgid ""
 " vma:\t\tBegin    Prolog   Function Flags    Exception EH\n"
 "     \t\tAddress  Length   Length   32b exc  Handler   Data\n"
 msgstr ""
 
-#: peigen.c:2226 pepigen.c:2226 pex64igen.c:2226
+#: peigen.c:2230 pepigen.c:2230 pex64igen.c:2230
 #, c-format
 msgid ""
 "\n"
@@ -8365,86 +8549,86 @@ msgid ""
 "PE File Base Relocations (interpreted .reloc section contents)\n"
 msgstr ""
 
-#: peigen.c:2256 pepigen.c:2256 pex64igen.c:2256
+#: peigen.c:2260 pepigen.c:2260 pex64igen.c:2260
 #, c-format
 msgid ""
 "\n"
 "Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n"
 msgstr ""
 
-#: peigen.c:2274 pepigen.c:2274 pex64igen.c:2274
+#: peigen.c:2278 pepigen.c:2278 pex64igen.c:2278
 #, c-format
 msgid "\treloc %4d offset %4x [%4lx] %s"
 msgstr ""
 
-#: peigen.c:2335 pepigen.c:2335 pex64igen.c:2335
+#: peigen.c:2339 pepigen.c:2339 pex64igen.c:2339
 #, c-format
 msgid "%03x %*.s Entry: "
 msgstr ""
 
-#: peigen.c:2359 pepigen.c:2359 pex64igen.c:2359
+#: peigen.c:2363 pepigen.c:2363 pex64igen.c:2363
 #, c-format
 msgid "name: [val: %08lx len %d]: "
 msgstr ""
 
-#: peigen.c:2379 pepigen.c:2379 pex64igen.c:2379
+#: peigen.c:2383 pepigen.c:2383 pex64igen.c:2383
 #, c-format
 msgid "<corrupt string length: %#x>\n"
 msgstr ""
 
-#: peigen.c:2389 pepigen.c:2389 pex64igen.c:2389
+#: peigen.c:2393 pepigen.c:2393 pex64igen.c:2393
 #, c-format
 msgid "<corrupt string offset: %#lx>\n"
 msgstr ""
 
-#: peigen.c:2394 pepigen.c:2394 pex64igen.c:2394
+#: peigen.c:2398 pepigen.c:2398 pex64igen.c:2398
 #, c-format
 msgid "ID: %#08lx"
 msgstr ""
 
-#: peigen.c:2397 pepigen.c:2397 pex64igen.c:2397
+#: peigen.c:2401 pepigen.c:2401 pex64igen.c:2401
 #, c-format
 msgid ", Value: %#08lx\n"
 msgstr ""
 
-#: peigen.c:2419 pepigen.c:2419 pex64igen.c:2419
+#: peigen.c:2423 pepigen.c:2423 pex64igen.c:2423
 #, c-format
 msgid "%03x %*.s  Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
 msgstr ""
 
-#: peigen.c:2461 pepigen.c:2461 pex64igen.c:2461
+#: peigen.c:2465 pepigen.c:2465 pex64igen.c:2465
 #, c-format
 msgid "<unknown directory type: %d>\n"
 msgstr ""
 
-#: peigen.c:2469 pepigen.c:2469 pex64igen.c:2469
+#: peigen.c:2473 pepigen.c:2473 pex64igen.c:2473
 #, c-format
 msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n"
 msgstr ""
 
-#: peigen.c:2558 pepigen.c:2558 pex64igen.c:2558
+#: peigen.c:2562 pepigen.c:2562 pex64igen.c:2562
 #, c-format
 msgid "Corrupt .rsrc section detected!\n"
 msgstr ""
 
-#: peigen.c:2582 pepigen.c:2582 pex64igen.c:2582
+#: peigen.c:2586 pepigen.c:2586 pex64igen.c:2586
 #, c-format
 msgid ""
 "\n"
 "WARNING: Extra data in .rsrc section - it will be ignored by Windows:\n"
 msgstr ""
 
-#: peigen.c:2588 pepigen.c:2588 pex64igen.c:2588
+#: peigen.c:2592 pepigen.c:2592 pex64igen.c:2592
 #, c-format
 msgid " String table starts at offset: %#03x\n"
 msgstr ""
 
-#: peigen.c:2591 pepigen.c:2591 pex64igen.c:2591
+#: peigen.c:2595 pepigen.c:2595 pex64igen.c:2595
 #, c-format
 msgid " Resources start at offset: %#03x\n"
 msgstr ""
 
-#: peigen.c:2643 pepigen.c:2643 pex64igen.c:2643
+#: peigen.c:2647 pepigen.c:2647 pex64igen.c:2647
 #, c-format
 msgid ""
 "\n"
@@ -8452,14 +8636,14 @@ msgid ""
 "found\n"
 msgstr ""
 
-#: peigen.c:2649 pepigen.c:2649 pex64igen.c:2649
+#: peigen.c:2653 pepigen.c:2653 pex64igen.c:2653
 #, c-format
 msgid ""
 "\n"
 "There is a debug directory in %s, but that section has no contents\n"
 msgstr ""
 
-#: peigen.c:2656 pepigen.c:2656 pex64igen.c:2656
+#: peigen.c:2660 pepigen.c:2660 pex64igen.c:2660
 #, c-format
 msgid ""
 "\n"
@@ -8467,7 +8651,7 @@ msgid ""
 "small\n"
 msgstr ""
 
-#: peigen.c:2661 pepigen.c:2661 pex64igen.c:2661
+#: peigen.c:2665 pepigen.c:2665 pex64igen.c:2665
 #, c-format
 msgid ""
 "\n"
@@ -8475,23 +8659,23 @@ msgid ""
 "\n"
 msgstr ""
 
-#: peigen.c:2668 pepigen.c:2668 pex64igen.c:2668
+#: peigen.c:2672 pepigen.c:2672 pex64igen.c:2672
 #, c-format
 msgid ""
 "The debug data size field in the data directory is too big for the section"
 msgstr ""
 
-#: peigen.c:2673 pepigen.c:2673 pex64igen.c:2673
+#: peigen.c:2677 pepigen.c:2677 pex64igen.c:2677
 #, c-format
 msgid "Type                Size     Rva      Offset\n"
 msgstr ""
 
-#: peigen.c:2721 pepigen.c:2721 pex64igen.c:2721
+#: peigen.c:2725 pepigen.c:2725 pex64igen.c:2725
 #, c-format
 msgid "(format %c%c%c%c signature %s age %ld)\n"
 msgstr ""
 
-#: peigen.c:2729 pepigen.c:2729 pex64igen.c:2729
+#: peigen.c:2733 pepigen.c:2733 pex64igen.c:2733
 #, c-format
 msgid ""
 "The debug directory size is not a multiple of the debug directory entry "
@@ -8501,91 +8685,89 @@ msgstr ""
 #. The MS dumpbin program reportedly ands with 0xff0f before
 #. printing the characteristics field.  Not sure why.  No reason to
 #. emulate it here.
-#: peigen.c:2749 pepigen.c:2749 pex64igen.c:2749
+#: peigen.c:2753 pepigen.c:2753 pex64igen.c:2753
 #, c-format
 msgid ""
 "\n"
 "Characteristics 0x%x\n"
 msgstr ""
 
-#: peigen.c:2984 pepigen.c:2984 pex64igen.c:2984
+#: peigen.c:2988 pepigen.c:2988 pex64igen.c:2988
 #, c-format
-msgid "%B: Data Directory size (%lx) exceeds space left in section (%lx)"
+msgid "%B: Data Directory size (%lx) exceeds space left in section (%Lx)"
 msgstr ""
 
-#: peigen.c:3014 pepigen.c:3014 pex64igen.c:3014
+#: peigen.c:3018 pepigen.c:3018 pex64igen.c:3018
 msgid "Failed to update file offsets in debug directory"
 msgstr ""
 
-#: peigen.c:3020 pepigen.c:3020 pex64igen.c:3020
+#: peigen.c:3024 pepigen.c:3024 pex64igen.c:3024
 msgid "%B: Failed to read debug data section"
 msgstr ""
 
-#: peigen.c:3836 pepigen.c:3836 pex64igen.c:3836
+#: peigen.c:3840 pepigen.c:3840 pex64igen.c:3840
 #, c-format
 msgid ".rsrc merge failure: duplicate string resource: %d"
 msgstr ""
 
-#: peigen.c:3971 pepigen.c:3971 pex64igen.c:3971
+#: peigen.c:3975 pepigen.c:3975 pex64igen.c:3975
 msgid ".rsrc merge failure: multiple non-default manifests"
 msgstr ""
 
-#: peigen.c:3989 pepigen.c:3989 pex64igen.c:3989
+#: peigen.c:3993 pepigen.c:3993 pex64igen.c:3993
 msgid ".rsrc merge failure: a directory matches a leaf"
 msgstr ""
 
-#: peigen.c:4031 pepigen.c:4031 pex64igen.c:4031
+#: peigen.c:4035 pepigen.c:4035 pex64igen.c:4035
 msgid ".rsrc merge failure: duplicate leaf"
 msgstr ""
 
-#: peigen.c:4033 pepigen.c:4033 pex64igen.c:4033
+#: peigen.c:4037 pepigen.c:4037 pex64igen.c:4037
 #, c-format
 msgid ".rsrc merge failure: duplicate leaf: %s"
 msgstr ""
 
-#: peigen.c:4099 pepigen.c:4099 pex64igen.c:4099
+#: peigen.c:4103 pepigen.c:4103 pex64igen.c:4103
 msgid ".rsrc merge failure: dirs with differing characteristics\n"
 msgstr ""
 
-#: peigen.c:4106 pepigen.c:4106 pex64igen.c:4106
+#: peigen.c:4110 pepigen.c:4110 pex64igen.c:4110
 msgid ".rsrc merge failure: differing directory versions\n"
 msgstr ""
 
 #. Corrupted .rsrc section - cannot merge.
-#: peigen.c:4223 pepigen.c:4223 pex64igen.c:4223
-#, c-format
-msgid "%s: .rsrc merge failure: corrupt .rsrc section"
+#: peigen.c:4227 pepigen.c:4227 pex64igen.c:4227
+msgid "%B: .rsrc merge failure: corrupt .rsrc section"
 msgstr ""
 
-#: peigen.c:4231 pepigen.c:4231 pex64igen.c:4231
-#, c-format
-msgid "%s: .rsrc merge failure: unexpected .rsrc size"
+#: peigen.c:4235 pepigen.c:4235 pex64igen.c:4235
+msgid "%B: .rsrc merge failure: unexpected .rsrc size"
 msgstr ""
 
-#: peigen.c:4370 pepigen.c:4370 pex64igen.c:4370
+#: peigen.c:4374 pepigen.c:4374 pex64igen.c:4374
 msgid "%B: unable to fill in DataDictionary[1] because .idata$2 is missing"
 msgstr ""
 
-#: peigen.c:4390 pepigen.c:4390 pex64igen.c:4390
+#: peigen.c:4394 pepigen.c:4394 pex64igen.c:4394
 msgid "%B: unable to fill in DataDictionary[1] because .idata$4 is missing"
 msgstr ""
 
-#: peigen.c:4411 pepigen.c:4411 pex64igen.c:4411
+#: peigen.c:4415 pepigen.c:4415 pex64igen.c:4415
 msgid "%B: unable to fill in DataDictionary[12] because .idata$5 is missing"
 msgstr ""
 
-#: peigen.c:4431 pepigen.c:4431 pex64igen.c:4431
+#: peigen.c:4435 pepigen.c:4435 pex64igen.c:4435
 msgid ""
 "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because ."
 "idata$6 is missing"
 msgstr ""
 
-#: peigen.c:4473 pepigen.c:4473 pex64igen.c:4473
+#: peigen.c:4477 pepigen.c:4477 pex64igen.c:4477
 msgid ""
 "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because ."
 "idata$6 is missing"
 msgstr ""
 
-#: peigen.c:4498 pepigen.c:4498 pex64igen.c:4498
+#: peigen.c:4502 pepigen.c:4502 pex64igen.c:4502
 msgid "%B: unable to fill in DataDictionary[9] because __tls_used is missing"
 msgstr ""
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/es.gmo ./bfd/po/es.gmo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/es.gmo	2018-01-02 02:07:01.000000000 +0000
+++ ./bfd/po/es.gmo	2018-01-09 02:08:39.000000000 +0000
@@ -22,29 +22,37 @@
 &)Pp‚‰(�¹'Ëó(H#`$„,©.Ö,
.2
a
"~
,¡
.Î
!ý
10Q2‚,µ.â#5U(i/’!Âä(#*+Nz,“ Àáú.N#m-‘"¿âô7Pew2’$Å&ê	1!;]DwD¼/1/C?s³ÄäûJ7bš*´ß÷%6L#i%�³ÆãJJ]J¨Ió:=;x:´Eï659l7¦9ÞQ/jBš@Ý.=M&‹.²/á-i?D©dî,SF€fÇC.r#‘@µ8ö7/g	‡‘­¿Ñ<æ2# .V … � ¤ ¼ dÔ 9!6L!@ƒ!=Ä!d"gg"bÏ"=2#Ep#1¶#(è#$$6$4L$'�$$©$7Î$%%/%F%W%o%‡%™%«%½%Ï%é%&&'&?&^&2}&°&-É&+÷&+#'*O'	z'	„'
 Ž'™'®'½'Ò'á'1æ'(7('V("~(¡(¿(Ô(Ý(]û(=Y)(—)ZÀ)Z*Ev*A¼*Gþ*WF+Wž+9ö+90,4j,9Ÿ,4Ù,2-7A-5y-7¯-.ç-2. I.[j.@Æ.:/#B/=f/<¤/Ná/-00O^0 ®0>Ï091
 H11S1&…1&¬1!Ó1õ1,27A2
y2‡2š2®2Á27Ô23$,3"Q3At3¶3,Ô32444¾D4»5¿5Ú5õ5B6DX6*�6LÈ67*7y97³70»7ì78888298Ol8¼8*Û8 9'9KE9‘9ž9 ¸9Ù9í9::,:B:Y:v:‡:›:N£:ò:#ö:6;Q; q;8’;Ë;Ý;í;õ;
-<<2<F<Y<Ll< ¹<DÚ<=1=D=3_=!“=µ="¼=ß=ï=þ=%>'7>$_>)„>*®>Ù>0õ>,&?S?q?‹?“?
«?%¹?ß?'÷?@9@P@b@y@7�@È@á@ó@AA.ADA-cA)‘A>»AgúAxbB-ÛB!	C7+CcC!|C;žC0ÚC5D<AD<~D2»D/îD.E=ME/‹E6»E,òEgF(‡G.°G"ßGH&HF<H.ƒH(²HÛH[óH'OIwI”I°IËI"ÛI$þI##JGJdJ|J#’J:¶JJñJN<K<‹KÈKSãKQ7LO‰LPÙLN*M.yMC¨MWìM.DNWsNËNæNTO"WOzO“O§O$ÁO3æOP/3PcPuP…P*¡P*ÌP*÷P""QEQ]QfQrQ�Q¨QÀQàQýQR"1RTRsRŽR¤RÂR*ÖRSS*SGS^SpS†S S/·SçS
ûS	T T;T$UT2zT+­T5ÙTU(UCUZUvU�U¦U'¼UäUýUV4V,KVxVŽV£V<»VøVWW%W5W!MWoWŠW!œW¾W ÞWÿWX6XIX*UX€X’X'¤XÌX/àXY&$Y	KYUY#hYŒY¥Y¶YÏY+êYZ!*Z#LZ#pZ”Z#¬Z#ÐZôZ2[4[:[B[%G[
-m[x[}[$ƒ[6¨[ß[ä[é[	\)\.\N\1S\…\Œ\’\—\œ\¢\¦\$«\"Ð\ó\ø\]2]R]r]w]|]ƒ]‰]Ž]¢]©]É]$Ð]õ]^&^7^H^Y^j^	}^
‡^
•^
-£^
-®^
-¹^Ä^
Ù^ç^9î^
-(_A3_8u_
®_¼_Ö_3ô_(`F`(a`Š`¦`·`Ä`	Û`å`ù`aa,aEaXa#xaœa!¯aÑaÞaåaôab6!b=Xb–b¯bÂb×b;çb#c@Ac‚c�c·cÑc8çc d8dVd/pd( dÉdÝd1ød*e?De/„e(´eÝe(ðef"-f&Pf*wfE¢f‚èfvkgzâg]hN{h4Êh7ÿh07i5hi+ži$Êi>ïiH.jMwj Åj2æjXk5rk-¨k+Ök(l<+l&hlH�lMØl&ma/m:‘m=Ìm/
-n9:n]tnJÒnQoQooEÁoWp,_pGŒp’Ôpigq@Ñq0rJCr;ŽrEÊrBsDSsL˜sFåsN,tV{t[Òt[.u[Šu[æu‘BvEÔv†wb¡w\xKaxR­xyyOzy›Êy2fzX™zWòzHJ{{“{=|sM|'Á|*é|O}3d}1˜}3Ê}Kþ}KJ~G–~7Þ~kC‚<Æ3€!7€FY€@ €5á€7�4O�7„�D¼�D‚DF‚8‹‚<Ä‚8ƒC:ƒC~ƒlÂƒd/„e”„…ú„4€…Mµ…/†F3†Yz†TÔ†>)‡=h‡A¦‡5è‡?ˆV^ˆPµˆt‰6{‰+²‰GÞ‰Q&ŠTxŠLÍŠN‹%i‹G�‹G×‹(Œ6HŒ(Œ?¨Œ*èŒ8�/L�e|�Fâ�W)ŽE�ŽTÇŽT�/q�G¡�@é�H*�Bs�L¶�-‘>1‘*p‘A›‘}Ý‘4[’6�’,Ç’%ô’+“F“7a“B™“GÜ“G$”Rl”R¿”Q•2d•6—•1Î•G–[H–O¤–5ô–?*—%j—9�—7Ê—I˜KL˜h˜˜.™G0™=x™1¶™>è™<'š-dš+’š9¾š6øšH/›4x›&­›=Ô›.œAœIaœ%«œFÑœ�33�5g�8��NÖ�K%ž=qžH¯ž`øžeYŸM¿Ÿ=
 OK L› @è D)¡;n¡ª¡[Æ¡4"¢NW¢–¦¢>=£G|£(Ä£0í£+¤AJ¤\Œ¤\é¤RF¥l™¥G¦hN¦`·¦K§wd§oÜ§zL¨YÇ¨<!©>^©,�©LÊ©:ª3RªL†ªKÓª\«8|«;µ«>ñ«70¬7h¬ ¬>¾¬?ý¬>=­>|­@»­Yü­XV®9¯®;é®0%¯4V¯B‹¯EÎ¯+°1@°;r°.®°EÝ°:#±#^±0‚±³±9Ë±3²'9²3a²L•²+â²,³+;³7g³6Ÿ³YÖ³M0´Y~´<Ø´MµMcµ<±µAîµD0¶;u¶;±¶>í¶V,·sƒ·:÷·12¸,d¸+‘¸=½¸8û¸C4¹gx¹_à¹f@ºd§º]»Hj»E³»ù» ¼Mº¼J½QS½W¥½:ý½A8¾=z¾>¸¾G÷¾;?¿={¿F¹¿@À;AÀ;}ÀQ¹ÀDÁBPÁ!“ÁPµÁ?Â,FÂ&sÂCšÂ0ÞÂ<ÃALÃ]ŽÃ(ìÃ@ÄNVÄB¥Ä.èÄ1ÅLIÅ*–Å4ÁÅ�öÅ+xÆB¤ÆFçÆ®.Ç@ÝÇ7ÈSVÈ=ªÈKèÈ.4É"cÉ9†É8ÀÉKùÉxEÊ2¾ÊDñÊ;6ËTrË.ÇËIöË:@Ì&{Ì4¢Ì:×Ì@ÍJSÍPžÍGïÍQ7Î\‰Î*æÎ
ÏÏ#3ÏEWÏ6�ÏÔÏkãÏqOÐ4ÁÐ“öÐ5ŠÑbÀÑ?#ÒAcÒ6¥ÒgÜÒZDÓZŸÓMúÓ@HÔN‰Ô=ØÔ,Õ=CÕN�ÕRÐÕ]#ÖR�Ö5ÔÖc
-×Un×+Ä×Pð×PAØ8’Ø8ËØ>ÙRCÙ9–Ù9ÐÙK
-Ú)VÚ4€ÚIµÚ"ÿÚG"ÛMjÛn¸ÛO'ÜNwÜVÆÜUÝYsÝRÍÝi Þ\ŠÞJçÞj2ßK�ßHéß`2à:“à7Îà7á>áVájáD{áLÀáW
â0eâ:–â?Ñâ=ãOã'lã1”ã/ÆãuöãMläbºäLå jåD‹å3ÐåBæVGæEžæ;äæ‡ ç¨ç
ÁçÏçÜç
éç(÷çe è?†èÆèØèöè ùèé)é
DéRédé+qé�é±éEÉéêG!êiê€ê’ê›ê°êÆêÜê/òê
"ë-0ë<^ë.›ë0ÊëAûë=ì#Oì3sì9§ìRáìJ4íí(Ží(·í
-àíëí&ïíî(î:î,Lîyî(˜î(Áî!êîï'%ï$Mï$rï'—ï%¿ï'åï
ð+ðKð"kðŽð!¨ð#Êð%îðñ54ñjñ5†ñ5¼ñCòñB6ò:yòX´ò4
óxBó|»óV8ô8�ô%Èô*îôõU.õ0„õ"µõEØõ ö?ö0Nöö!‘ö%³öÙöõö÷#%÷I÷Y÷Ck÷7¯÷@ç÷(ø-Dørø"„ø§ø¹ø:Ùø2ùMGùA•ù3×ù-úR9ú,Œú¹úÐú%åú4û@û!Rû*tû&Ÿû
ÆûAÔûü(ü:üQügü"zü�ü¼üÌüãüõüüüýý5ý&Fý8mý¦ý³ýÇýÞýûýþ'þGþbþ‚þ�þ²þËþ5ëþ!ÿ6ÿLÿdÿ1ÿ±ÿ<ÆÿBFXjq*x6£4Ú";2(n&—¾MÝS+@>ÀrÿOr,Â%ï6	LV4uª-¼-ê*128k1}¯Ëâ!#;5_0•5Æ0ü-.M5|0²%ã1	9;4u5ª0à%	!7	Y	*p	0›	&Ì	ó	+
-&?
-0f
-—
-1³
-$å
-
-!&H%_$…)ª3Ô+4Fe}"•¸× ë7
/D
?t
4´

-é
2ô
$'NLN›Fê13PH„Í,æ.NaW=¹÷9Pl‹§ Ã#ä%/.^+}"©ÌZßV:V‘UèC>G‚:ÊW6]5”3Ê5þd4;™IÕP4pB¥-è05G1}q¯U!�w6ù]0pŽNÿ,N){D¥9êK$2p	£!­ÏäùB6X0�
-À&Ëò"	{,¨=»CùA=jzêse @Ù K!5f!,œ!)É!ó!L"?U"4•"QÊ"##2#V#u##‹#!¯#Ñ#è#ÿ#$%-$#S$w$Ž$!¤$0Æ$.÷$0&%W%?r%=²%=ð%6.&	e&	o&
-y&„&›&ª&¿&Î&2Ó&''.'6K'-‚'°'Ï'å'í'm
-(@x(*¹(wä(w\)TÔ)N)*Ux*uÎ*uD+Dº+Bÿ+7B,<z,7·,@ï,H0-Cy-H½-2.79.!q.u“.R	/N\/*«/WÖ/G.0]v00Ô0X1$^1Eƒ1@É1
-
-2<2/R2/‚2²2*Î24ù2D.3s3ƒ3£3·3Ê36Ý34%34#Y4U}4 Ó44ô4<)5f5Þw5ÛV6$27!W7 y7Mš7Oè7488Xm8Æ8Ü8Ží8|97„9+¼9è9ð9ø9ÿ9H:{b:0Þ:7;"G;7j;f¢;	<)<;B<~<–<¯<É<á<û<=6=I=_=_g=Ç=*Ë=Kö=*B>'m>:•>Ð>â>õ>ý>?'?;?O?b?iu?"ß?]@`@r@$‡@H¬@/õ@%A/.A^AnA}A5‘A7ÇA+ÿA0+B4\B ‘B?²B5òB$(CMCiCuC�C6¡CØC1÷C)DEDbD$D¤DEÁD E(E:EMEaEuE‹E:¨E*ãEBFgQF€¹F3:G+nGFšGáG(üGG%H7mHA¥HLçHM4I8‚I9»I5õIH+J@tJBµJ(øJê:Š;–Îý#ë¾>ÏÅÏÊýˆ>ñ†)Œô-ÌšúüeÆFR KÔú>N<Ù•º;9/½ÞZ~24ÊlŠbuƒ÷P’‚»O�,æ´è-ÆM³4	‰.¥±Rÿ¡—«ì�”@�€°^Ð
ã÷ª=×äW@©D�
ÇÝL_ð¡ºàßÍœS5¦óà’Ê¿}ti›û(cÁs^8]ñPž]®*º™qûZ7Ë„¹PŸqÀóÛŽïa6Àç¨/TõË{Ev®‚xQÍ¸Ãƒ/œ7ô€ëž›Å¤Ò©cyM!A†¦
+<<2<F<Y<Ll< ¹<DÚ<=1=D=3_=!“=µ="¼=ß=ï=þ=%>'7>$_>)„>*®>Ù>0õ>,&?S?q?‹?“?
«?%¹?ß?'÷?@9@P@b@y@7�@È@á@ó@AA.ADA-cA)‘A>»AgúAxbB-ÛB!	C7+CcC!|C;žC0ÚC5D<AD<~D2»D/îD.E=ME/‹E6»E,òE§F(ÇG.ðG"HBH&UHF|H.ÃH(òHI[3I'�I·IÔIðIJ"J$>J#cJ‡J¤J¼J#ÒJ:öJJ1KN|K<ËKLS#LQwLOÉLPMNjM.¹MCèMW,N.„NW³NO&OTBO"—OºOÓOçO$P3&PZP/sP£PµPÅP*áP*Q*7Q"bQ…Q�Q¦Q²QÏQèQR R=RVR"qR”R³RÎRäRS*SASQSjS‡SžS°SÆSàS/÷S'T
;TIT`T{T$•T2ºT+íT5UOUhUƒUšU¶UÏUæU'üU$V=V\VtV,‹V¸VÎVãV<ûV8WGWVWeWuW!�W¯WÊW!ÜWþW X?XXXvX‰X*•XÀXÒX'äXY/ YPY&dY	‹Y•Y#¨YÌYåYöYZ+*ZVZ!jZ#ŒZ#°ZÔZ#ìZ#[4[2A[t[z[‚[%‡[
+­[¸[½[$Ã[6è[\$\)\I\i\n\Ž\1“\Å\Ì\Ò\×\Ü\â\æ\$ë\"]3]8]X]r]’]²]·]¼]Ã]É]Î]â]é]	^$^5^U^f^w^ˆ^™^ª^	½^
Ç^
Õ^
+ã^
+î^
+ù^_
_'_9._
+h_As_8µ_
î_ü_`34`h`†`(¡`Ê`æ`÷`a	a%a9aHaOala…a˜a#¸aÜa!ïabb%b4bHb6ab=˜bÖbïbcc;'ccc@�cÂcÝc÷cd8'd`dxd–d/°d(àd	ee18eje?„e/Äe(ôef(0fYf"mf&�f*·fEâf‚(gv«gz"h�hN»h4
+i7?i0wi5¨i+Þi$
+j>/jHnjM·j k2&kXYk5²k-èk+l(Bl<kl&¨lHÏlMmfmaom:Ñm=n/Jn9zn]´nJoQ]oQ¯oEpWGp,ŸpGÌp’qi§q@r0RrJƒr;ÎrE
+sBPsD“sLØsF%tNltV»t[u[nu[Êu[&v‘‚vEw†Zwbáw\DxK¡xRíxy@yOºy›
+z2¦zXÙzW2{HŠ{{Ó{=O|s�|'}*)}OT}3¤}1Ø}3
+~K>~KŠ~GÖ~7kVCÂ<€3C€!w€F™€@à€5!�7W�4��7Ä�Dü�DA‚D†‚8Ë‚<ƒ8AƒCzƒC¾ƒl„do„eÔ„…:…4À…Mõ…/C†Fs†Yº†T‡>i‡=¨‡Aæ‡5(ˆ?^ˆVžˆPõˆtF‰6»‰+ò‰GŠQfŠT¸ŠL
‹NZ‹%©‹GÏ‹GŒ(_Œ6ˆŒ(¿Œ?èŒ*(�8S�/Œ�e¼�F"ŽWiŽEÁŽT�T\�/±�Gá�@)�Hj�B³�Lö�-C‘>q‘*°‘AÛ‘}’4›’6Ð’,“%4“+Z“†“7¡“BÙ“G”Gd”R¬”Rÿ”QR•2¤•6×•1–G@–[ˆ–Oä–54—?j—%ª—9Ð—7
+˜IB˜KŒ˜hØ˜.A™Gp™=¸™1ö™>(š<gš-¤š+Òš9þš68›Ho›4¸›&í›=œ.Rœ�œI¡œ%ëœF�X�3s�5§�8Ý�NžKež=±žHïž`8Ÿe™ŸMÿŸ=M O‹ LÛ @(¡Di¡;®¡ê¡[¢4b¢N—¢–æ¢>}£G¼£(¤0-¤+^¤AŠ¤\Ì¤\)¥R†¥lÙ¥GF¦hŽ¦`÷¦KX§w¤§o¨zŒ¨Y©<a©>ž©,Ý©L
+ª:Wª3’ªLÆªK«\_«8¼«;õ«>1¬7p¬7¨¬à¬>þ¬?=­>}­>¼­@û­Y<®X–®9ï®;)¯0e¯4–¯BË¯E°+T°1€°;²°.î°E±:c±#ž±0Â±ó±9²3E²'y²3¡²LÕ²+"³,N³+{³7§³6ß³Y´Mp´Y¾´<µMUµM£µ<ñµA.¶Dp¶;µ¶;ñ¶>-·Vl·sÃ·:7¸1r¸,¤¸+Ñ¸=ý¸8;¹Ct¹g¸¹_ ºf€ºdçº]L»Hª»Eó»9¼ Y¼Mú¼JH½Q“½Wå½:=¾Ax¾=º¾>ø¾G7¿;¿=»¿Fù¿@@À;�À;½ÀQùÀDKÁB�Á!ÓÁPõÁ?FÂ,†Â&³ÂCÚÂ0Ã<OÃAŒÃ]ÎÃ(,Ä@UÄN–ÄBåÄ.(Å1WÅL‰Å*ÖÅ4Æ�6Æ+¸ÆBäÆF'Ç®nÇ@È7^ÈS–È=êÈK(É.tÉ"£É9ÆÉ8ÊK9Êx…Ê2þÊD1Ë;vËT²Ë.ÌI6Ì:€Ì&»Ì4âÌ:Í@RÍJ“ÍPÞÍG/ÎQwÎ\ÉÎ*&Ï
QÏ_Ï#sÏE—Ï6ÝÏÐk#Ðq�Ð4Ñ“6Ñ5ÊÑbÒ?cÒA£Ò6åÒgÓZ„ÓZßÓM:Ô@ˆÔNÉÔ=Õ,VÕ=ƒÕNÁÕRÖ]cÖRÁÖ5×cJ×U®×+ØP0ØP�Ø8ÒØ8Ù>DÙRƒÙ9ÖÙ9ÚKJÚ)–Ú4ÀÚIõÚ"?ÛGbÛMªÛnøÛOgÜN·ÜVÝU]ÝY³ÝR
Þi`Þ\ÊÞJ'ßjrßKÝßH)à`rà:Óà7á7Fá~á–áªáD»áLâWMâ0¥â:Öâ?ã=Qã�ã'¬ã1Ôã/äu6äM¬äbúäL]å ªåDËå3æBDæV‡æEÞæ;$ç‡`çèç
èèè
)è(7èe`è?Æèéé6é 9éZéié
„é’é¤é+±éÝéñéE	êOêGaê©êÀêÒêÛêðêëë/2ë
bë-pë<žë.Ûë0
+ìA;ì}ì#�ì3³ì9çìR!íJtí¿í(Îí(÷í
+ î+î&/îVîhîzî,Œî¹î(Øî(ï!*ïLï'eï$�ï$²ï'×ï%ÿï'%ðMðkð‹ð"«ðÎð!èð#
+ñ%.ñTñ5tñªñ5Æñ5üñC2òBvò:¹òXôò4Móx‚ó|ûóVxô8Ïô%õ*.õYõUnõ0Äõ"õõEö ^öö0Žö¿ö!Ñö%óö÷5÷T÷#e÷‰÷™÷C«÷7ï÷@'øhø-„ø²ø"Äøçøùø:ù2TùM‡ùAÕù3ú-KúRyú,Ìúùúû%%û4Kû€û!’û*´û&ßû
üAüVühüzü‘ü§ü"ºüÝüüüý#ý5ý<ýHýUýuý&†ý8­ýæýóýþþ;þRþgþ‡þ¢þÂþÝþòþÿ5+ÿaÿvÿŒÿ¤ÿ1¿ÿñÿ<BC†˜ª±*¸6ã4"O;r(®&×þMSk@¿>r?O²,%/6U	Œ–4µê-ü-*Xjq2x«1½ï"A!Y#{5Ÿ0Õ50<m.�5¼0ò%#1I9{4µ5ê0 	%Q	!w	™	*°	0Û	&
+3
++S
+&
+0¦
+×
+1ó
+$%J!fˆ%Ÿ$Å)ê3+Ht†¥½"Õø
 +
7L
/„
?´
4ô

+)24$gNŒNÛF*q3�HÄ
,&SnŽa—=ù79V�¬Ëç #$%H/nž+½"éZVzVÑU(C~GÂ:
+WE6�5Ô3
+5>dt;ÙIP_4°Bå-(0V5‡1½qïUa�·69]ppÎN?,Ž)»Då9*Kd2°	ã!í$9BU6˜0Ï
+&2"I{lè=ûC9A}j¿z* s¥ @!KZ!5¦!,Ü!)	"3"LH"?•"4Õ"Q
+#\##r#–#µ##Ë#!ï#$($?$V$%m$#“$·$Î$!ä$0%.7%0f%—%?²%=ò%=0&6n&	¥&	¯&
+¹&Ä&Û&ê&ÿ&'2''F'n'6‹'-Â'ð'(%(-(mJ(@¸(*ù(w$)wœ)T*Ni*U¸*u+u„+Dú+B?,7‚,<º,7÷,@/-Hp-C¹-Hý-2F.7y.!±.uÓ.RI/Nœ/*ë/W0Gn0]¶001XE1$ž1EÃ1@	2
+J2<U2/’2/Â2ò2*3493Dn3³3Ã3ã3÷3
+464T4%s4#™4U½4 5445<i5¦5Þ·5Û–6$r7!—7 ¹7MÚ7O(84x8X­899Ž-9¼97Ä9+ü9(:0:8:?:HY:{¢:0;7O;"‡;7ª;fâ;I<)X<;‚<¾<Ö<ï<	=!=;=V=v=‰=Ÿ=_§=>*>K6>*‚>'­>:Õ>?"?5?=?Q?g?{?�?¢?iµ?"@]B@ @²@$Ç@Hì@/5AeA/nAžA®A½A5ÑA7B+?B0kB4œB ÑB?òB52C$hC�C©CµCÏC6áCD17DiD…D¢D$¿DäDEE GEhEzE�E¡EµEËE:èE*#FBNFg‘F€ùF3zG+®GFÚG!H(<HGeH7­HAåHL'IMtI8ÂI9ûI55JHkJ@´JBõJ(8Kê:Š;–Îý#ë¾>ÏÅÏÊýˆ>ñ†)Œô-ÌšúüeÆFR KÔú>N<Ù•º;9/½ÞZ~24ÊlŠbuƒ÷P’‚»O�,æ´è-ÆM³4	‰.¥±Rÿ¡—«ì�”@�€°^Ð
ã÷ª=×äW@©D�
ÇÝL_ð¡ºàßÍœS5¦óà’Ê¿}ti›û(cÁs^8]ñPž]®*º™qûZ7Ë„¹PŸqÀóÛŽïa6Àç¨/TõË{Ev®‚xQÍ¸Ãƒ/œ7ô€ëž›Å¤Ò©cyM!A†¦
 ÿ�ÖÏþî—*Zïu�àXˆ! Èõ&$x.˜„
 .c�ÿ“%^îeÉý‰é00¹�¥#o¿2?“íßHx$úd':a­‚YJ‹íÜUso©˜"öF¯AÐLaT³ì’»t~Ì}ÕØP¸·w`´�øÙ¸õ£ïÂÅ¢EúIÃ°ƒ>$=N&'�j]h[ð¸.jòÓÿÄþFúò�{åãkö°q‚ÝXpkÈNŠòå5ˆ
ï§*…çÖÏÑÑ#ÁŸ';ÄšÞØÂjŽ„®¥a–rÃU¿~¾Û7”'ùÐ¤Ú_%­âévÑÁ­Mhj`ˆC¤né§Sül(•
	ã^|ÁoÇžäCÖ‹ùŠVX)†u=lRF¨nøRzÕYÄ¬b5fšÛN
 —<œðì½T^€|Â¤v¼½pW	—ûþçÐÅÞWã¬f\’T9×pzæþ…b„8[¡1è”K%)ÕCñMtG(,wdå ðwmñÒ:þ»ÿ7EÑ®Ã‘¸ž¾‘$HiêuÔcDŒæ<Æá3I¨›f9 6N@Ø"\#Ÿ·!]åªÏV(ÂÜšÇ�r§p¨ãY; ¼ä)ÛB°D �BÝ]�ŸïÜ
@@ -608,6 +616,7 @@ PO-Revision-Date: 2012-07-27 12:29-0500
 Last-Translator: Cristian OthÃ³n MartÃ­nez Vera <cfuga@cfuga.mx>
 Language-Team: Spanish <es@li.org>
 Language: es
+X-Bugs: Report translation errors to the Language-Team address.
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/es.po ./bfd/po/es.po
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/es.po	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/es.po	2018-01-09 02:04:54.000000000 +0000
@@ -12,6 +12,7 @@ msgstr ""
 "Last-Translator: Cristian OthÃ³n MartÃ­nez Vera <cfuga@cfuga.mx>\n"
 "Language-Team: Spanish <es@li.org>\n"
 "Language: es\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/fi.gmo ./bfd/po/fi.gmo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/fi.gmo	2018-01-02 02:07:01.000000000 +0000
+++ ./bfd/po/fi.gmo	2018-01-09 02:08:39.000000000 +0000
@@ -35,27 +35,26 @@
 7=A7g7bç7=J8Eˆ81Î8(9$)9N94d9'™9$Á97æ9:/:G:^:o:‡:Ÿ:±:Ã:Õ:ç:;;.;?;W;v;2•;È;-á;+<+;<*g<	’<	œ<
 ¦<
 ±<¼<Ñ<à<õ<=1	=;=Z='y="¡=Ä=â=÷=>,>]K>=©>(ç>Z?Zk?EÆ?A@GN@W–@Wî@9FA9€A-ºA4èA9B4WB2ŒB7¿B5÷B7-CBeCE¨CBîCC1DAuD.·D2æD E[:E@–E:×E#F=6F<tF%±FN×F-&GOTG;¤G àG>H9@H
-zH1…H&·H&ÞH!I'I,FIJsI7¾I
öIJJ+J>J7QJ6‰JÀJ$àJ"KA(KjK,ˆK2µKèK¾øK»·LsMŽM©MBÉMDN*QNL|NÉNÞNŒíNzO0‚O9³OíOPPP3P:P2VPO‰PÙP*øP #QDQbQoQ ‰QªQ¾QÓQéQýQR*RGRXRlRNtRÃR#ÇRëR6S:S ZS8{S´SÆSÖSÞSóSTT/TBTLUT ¢TDÃTPUYUkU~U3™U!ÍUïU"öUV)V8V%KV'qV$™V*¾VéV0W,6WcW�W›W£W
»W%ÉWïW'X/XIXcXzXŒX£X7ºXòXY Y2YEYYYmYƒY™Y-¸Y)æY>ZgOZx·Z-0[!^[7€[¸[!Ñ[;ó[0/\5`\<–\<Ó\2]/C].s]=¢]/à]6^,G^Çt^<`I`_`{`�`,«`GØ` a-,a&Za�aE‘a+×ab b@b`b!rb#”b"¸bÛbøbc#&c.Jc0yc4ªc;ßcdP,d,}d5ªd+àdHe+Ue8�e9ºe+ôe< f]fofM†f=Ôf&g9gKg#_gƒg1¡gÓg/ègh(h8h,Rh,h,¬h$Ùhþhii*i"Jimi�i¡iÁiÛi+÷i#j';jcj}j˜j9¬jæjöjk&k>kQkhkƒk.škÉkÚkçkll&0l-Wl)…l8¯lèlm m5mMmfm}m/“mÃm!Ýmÿmn#2nVnnn„n<žnÛnên
ùnoo!0oRono€oŸo»oØoòop!p*-pXpmp/‚p²p1Épûp-q
-=qHq#[qq˜q©qÂq%Ûqr!r#7r#[rr#˜r#¼ràrírórûrs
-s(s-s3sPsnsss%xs%žsÄsÉsßs!äst
tttt#t't$,t$Qtvt${t t$¶tNÛt$*uOuTuYu`ufuku$ru—užu¥uÀuÙuêuûuvv .vOv	av
kv
yv
-‡v
-’v
-�v
-¨v³vËv7åvw0.w3_w“w­wÈw6ØwHx2Xx0‹x0¼xíxyy&y":y]ypy}y˜y%­yÓyîyz"zBzTz
sz�zˆz. z6Ïz{{-*{X{Et{º{Ù{ø{|H-|v|“|©|&È|ï|}2*}B]}& }#Ç}'ë}0~(D~,m~8š~~Ó~yRˆÌU€9p€ª€s·€C+�4o�%¤�0Ê�#û�/‚SO‚P£‚Oô‚#Dƒ%hƒ@Žƒ(ÏƒAøƒ-:„<h„)¥„0Ï„$…Z%…R€…OÓ…:#†	^†Kh†5´†?ê†4*‡7_‡Q—‡Dé‡T.ˆTƒˆ]ØˆK6‰C‚‰\Æ‰0#Š`TŠvµŠT,‹6�‹A¸‹Gú‹2BŒDuŒ7ºŒAòŒI4�C~�LÂ�HŽ�XŽ�ÚŽ‡\�Àä�D¥�‘ê�q|‘fî‘WU’p­’_“@~“‚¿“:B”Y}”V×”D.•‹s•Sÿ•tS–È–Ð–Gé–'1—+Y—L…—BÒ—A˜8W˜D�˜DÕ˜;™/V™L†™GÓ™?š9[š.•šMÄšA›6T›;‹›5Ç›;ý›:9œStœGÈœS�4d�;™�CÕ�%žL?žSŒžŠàžtkŸzàŸ‘[ 4í ;"¡>^¡C�¡€á¡mb¢bÐ¢Y3£`�£8î£)'¤=Q¤'�¤;·¤Só¤PG¥a˜¥3ú¥..¦J]¦_¨¦)§x2§J«§:ö§#1¨KU¨A¡¨&ã¨4
-©!?©=a©*Ÿ©.Ê©&ù©" ªJCªIŽªOØªF(«Lo«F¼«C¬>G¬J†¬OÑ¬:!­J\­5§­PÝ­4.®‡c®†ë®]r¯-Ð¯;þ¯h:°=£°(á°$
-±#/±&S±8z±F³±Qú±QL²lž²f³3r³!¦³/È³7ø³X0´T‰´MÞ´8,µ?eµ#¥µ>Éµ3¶X<¶?•¶)Õ¶@ÿ¶V@·@—·2Ø·J¸;V¸(’¸:»¸Gö¸@>¹5¹8µ¹4î¹5#º?Yº>™º4Øº?
»4M»$‚»<§»"ä»D¼L¼9c¼=�¼GÛ¼?#½ƒc½Tç½X<¾q•¾~¿F†¿QÍ¿]ÀV}À=ÔÀ?ÁARÁ'”Áf¼Á #ÂcDÂ€¨ÂI)Ã]sÃ4ÑÃ3Ä,:ÄDgÄe¬ÄhÅU{Å€ÑÅ?RÆe’ÆpøÆBiÇv¬Ç|#È{ ÈcÉ9€É>ºÉ0ùÉ<*Ê3gÊ:›ÊRÖÊS)Ë@}Ë/¾Ë(îËAÌ=YÌ=—Ì3ÕÌc	ÍDmÍ²ÍÏÍ>ëÍI*ÎHtÎH½ÎJÏcQÏbµÏ8Ð:QÐ'ŒÐ9´Ð3îÐ;"Ñ0^Ñ<�Ñ=ÌÑ/
-ÒM:Ò3ˆÒ%¼Ò@âÒ#Ó-9Ó2gÓ!šÓ ¼Ó*ÝÓ3Ô<Ô \Ô}Ô)�Ô(ÇÔ\ðÔPMÕ^žÕ+ýÕM)ÖSwÖNËÖ6×jQ×8¼×Aõ×=7Ø@uØ6¶ØlíØHZÙ-£ÙZÑÙ<,Ú:iÚ3¤Ú ØÚ3ùÚ7-Û7eÛ9�ÛY×ÛI1ÜN{ÜOÊÜJÝ:eÝC ÝäÝåÞMêÞG8ßN€ßTÏß/$à5Tà8Šà9ÃàKýà6Iá8€áJ¹á8â6=â6tâL«â>øâ97ã2qã;¤ãXàã:9ä9tä!®äBÐä,å(@å7iåI¡å#ëå9æ3Iæ_}æBÝæ2 ç5SçA‰ç?Ëç8è5Dè8zè)³è|ÝèQZé4¬éSáé:5êFpê6·ê?îê4.ëDcë*¨ëBÓëIì+`ì-Œì6ºì1ñìX#í‚|í5ÿíA5îNwî4Æî?ûî,;ï&hï-�ï>½ï?üï;<ð>xðA·ðDùð4>ñ?sñd³ñ9òRòoò�ò<¤ò,áò;óJómYóbÇó:*ô„eô)êôhõ9}õM·õ>öiDö[®öY
-÷Kd÷n°÷:ø/Zø8Šø2Ãø,öø>#ùQbù[´ùFú1WúQ‰ú@Ûú#û„@û|Åû<Bü<üV¼üjýO~ýOÎýEþ1dþ-–þIÄþ#ÿG2ÿIzÿyÄÿS>T’]ç\E`¢`^d^ÃL"hoJØ:#W^@¶&÷0Of
x:†FÁP@Y=š;Ø;"P s-”#Â`æPGd˜Ký$I	Bn	;±	4í	�"
-Y²
-N@[‚œ_
-—¢®
À2Îƒ
W…

Ý
ë
	)#>bo�™©3¶êE.:t:¯Fê418fEŸ@å&LE ’³ÒÛêú
-
+% Q$r&—¾:ËD-KGyGÁ	&BBP…CÖ>
Yg‡Ÿ§«½Ïá$ó 7$X}—#©Í&é&)7'a)‰³!Ó!õ$<UpŒ"¡MÄ("!K,mCš?ÞL7k;£vßeVD¼&!((JsV‹1â=/m#�;¥á$ó6Uk",¢ÏTáC6@z»Ò%ã	 # ? S 1p '¢ AÊ <!I!#d!›ˆ!-$"R"i"("%¨"Î"à"(÷"8 #6Y#�#­#8¿#ø#
-$$8$X$-v$¤$
´$Â$Ô$	Ý$ç$!ô$%#%0A%r%…%˜%(¯%Ø%ð%%ÿ%%&A&a&r&ˆ&! &<Â&ÿ&''''<'"d'‡'1£'7Õ'
((1(8(?(9_(7™(#Ñ(:õ(%0)%V)|)S™)Qí)W?*D—**Ü*h+^p+Ï+ ï+>,O,W,…q,5÷,--,?-&l-“-¥-¬-,³-à-)ò-.9.Q.p.$†.#«.7Ï.?/7G/?/&¿/*æ/70?I0*‰0<´0=ñ0E/17u1?­1-í1.2J23a2:•2#Ð2 ô2,3&B3.i3˜3/´3,ä34--4[4"r4•4#±4-Õ4&5*5<5X5n5„5œ5!­5?Ï5+6#;6%_6
-…62�6TÃ6T72m7 71¸7Zê7E8U8 r8“8N¨8÷8I9±J9Cü9@:JW:¢:À:Ý:÷:; 2;$S;4x;­;È;è;<^<_x<_Ø<^8=B—==Ú=M>af>MÈ>;?RR?X¥?wþ?Pv@MÇ@eAR{AiÎA78BXpBuÉBF?C5†CF¼C>D3BD5vD†¬DM3E€�E3F16FfhFgÏFU7G4�G8ÂGXûGNTHH£H.ìHªI	ÆIÐIîIJ.JCGJ7‹J.ÃJòJùJK&,K{SKÏK=æKH$L„mL|òLJoMGºM5N,8N(eNŽNFªN9ñN=+OViOÀOÝO"ûOP;PYPvP”P²PÐPîPQ-QKQhQ#†Q"ªQ3ÍQ"R>$R<cR< R2ÝRS!S2S
-DSOSdSsSˆS—S4žSÓS%óS0T-JT%xTžT³T$ÂT7çT_U?U)¿U_éUaIVL«VMøVIFWs�WyX?~X;¾X9úXH4Y?}YF½Y=ZXBZ@›ZXÜZJ5[M€[HÎ[M\Ke\9±\7ë\'#]hK]Z´]L^-\^8Š^QÃ^,_RB_B•_GØ_A `1b`G”`BÜ`a=5a,sa- aÎa2îa;!bQ]bC¯bób%c,c@cScNfc6µc"ìc%d45dTjd!¿d(ád;
-eFeÖXeÈ/føfg'3gG[gI£g.ígNhkh„hó™h	�i1—i0Éi#úij
+j9j
Yjgj7ƒj^»j6kOQk!¡k1Ãkõk
l+lKlblzl“lªlÃlÝlùl
-m
#m\1m	Žm,˜m Åm6æm'n+En.qn nºnÍnÚnõn	oo1oDoiWo$ÁoTæoW;p“p¨p!¹pLÛp((qQq%Yqq�qžq3´q5èq$r9Cr}r-œr4Êr*ÿr#*s
-NsYsts)…s¯s3Ésýst7tPtgt~t5‘t&Çtîtuu+u@uUuluƒu/¢u.ÒuLv’Nv¬áv=Žw!ÌwKîw.:x"ix=Œx@Êx@yCLyC�y*Ôy/ÿy</zIlz5¶z@ìz,-{�ÝgóAX]˜1Ð�rb:Yð
+zH1…H&·H&ÞH!I'I,FIJsI7¾I
öIJJ+J>J7QJ6‰JÀJ$àJ"KA(KjK,ˆK2µKèK¾øK»·LsMŽM©MBÉMDN*QNL|NÉNÞNŒíNzO0‚O9³OíOPPP3P:P2VPO‰PÙP*øP #QDQbQoQ ‰QªQ¾QÓQéQýQR*RGRXRlRNtRÃR#ÇRëR6S:S ZS8{S´SÆSÖSÞSóSTT/TBTLUT ¢TDÃTPUYUkU~U3™U!ÍUïU"öUV)V8V%KV'qV$™V*¾VéV0W,6WcW�W›W£W
»W%ÉWïW'X/XIXcXzXŒX£X7ºXòXY Y2YEYYYmYƒY™Y-¸Y)æY>ZgOZx·Z-0[!^[7€[¸[!Ñ[;ó[0/\5`\<–\<Ó\2]/C].s]=¢]/à]6^,G^t^|`‰`Ÿ`»`Ð`,ë`Ga`a-la&šaÁaEÑa+bCb _b€b b!²b#Ôb"øbc8cRc#fc.Šc0¹c4êc;d[dPld,½d5êd+ eHLe+•e8Áe9úe+4f<`f�f¯fMÆf=g&Rgyg‹g#ŸgÃg1ágh/(hXhhhxh,’h,¿h,ìh$i>iUi^iji"Ši­iÁiáijj+7jcj'{j£j½jØj9ìj&k6kQkfk~k‘k¨kÃk.Úk	ll'lAl\l&pl-—l)Ål8ïl(mGm`mum�m¦m½m/Ómn!n?n[n#rn–n®nÄn<Þno*o
9oGo]o!po’o®oÀoßoûop2pKpap*mp˜p­p/Âpòp1	q;q-Oq
+}qˆq#›q¿qØqéqr%rAr!Ur#wr#›r¿r#Ør#ür s-s3s;s@s
+]shsmsss�s®s³s%¸s%Þst	tt!$tFtMtStXt]tctgt$lt$‘t¶t$»tàt$ötNu$ju�u”u™u u¦u«u$²u×uÞuåuvv*v;vLv]v nv�v	¡v
«v
¹v
+Çv
+Òv
+Ýv
+èvóvw7%w]w0nw3ŸwÓwíwx6xHOx2˜x0Ëx0üx-yHyZyfy"zy�y°y½yØy%íyz.zEz"_z‚z”z
³zÁzÈz.àz6{F{[{-j{˜{E´{ú{|8|W|Hm|¶|Ó|é|&}/}O}2j}B�}&à}#~'+~0S~(„~,­~8Ú~~y’ˆ€•€9°€ê€s÷€Ck�4¯�%ä�0
+‚#;‚/_‚S�‚Pã‚O4ƒ#„ƒ%¨ƒ@Îƒ(„A8„-z„<¨„)å„0…$@…Ze…RÀ…O†:c†	ž†K¨†5ô†?*‡4j‡7Ÿ‡Q×‡D)ˆTnˆTÃˆ]‰Kv‰CÂ‰\Š0cŠ`”ŠvõŠTl‹6Á‹Aø‹G:Œ2‚ŒDµŒ7úŒA2�It�C¾�LŽHOŽ�˜Ž��‡œ�À$�Då�‘*‘q¼‘f.’W•’pí’_^“@¾“‚ÿ“:‚”Y½”V•Dn•‹³•S?–t“–——G)—'q—+™—LÅ—B˜AU˜8—˜DÐ˜D™;Z™/–™LÆ™Gš?[š9›š.ÕšM›AR›6”›;Ë›5œ;=œ:yœS´œG�SP�4¤�;Ù�Cž%YžLžSÌžŠ Ÿt«Ÿz  ‘› 4-¡;b¡>ž¡CÝ¡€!¢m¢¢b£Ys£`Í£8.¤)g¤=‘¤'Ï¤;÷¤S3¥P‡¥aØ¥3:¦.n¦J�¦_è¦)H§xr§Jë§:6¨#q¨K•¨Aá¨&#©4J©!©=¡©*ß©.
+ª&9ª"`ªJƒªIÎªO«Fh«L¯«Fü«CC¬>‡¬JÆ¬O­:a­Jœ­5ç­P®4n®‡£®†+¯]²¯-°;>°hz°=ã°(!±$J±#o±&“±8º±Fó±Q:²QŒ²lÞ²fK³3²³!æ³/´78´Xp´TÉ´Mµ8lµ?¥µ#åµ>	¶3H¶X|¶?Õ¶)·@?·V€·@×·2¸JK¸;–¸(Ò¸:û¸G6¹@~¹5¿¹8õ¹4.º5cº?™º>Ùº4»?M»4�»$Â»<ç»"$¼DG¼Œ¼9£¼=Ý¼G½?c½ƒ£½T'¾X|¾qÕ¾~G¿FÆ¿Q
À]_ÀV½À=Á?RÁA’Á'ÔÁfüÁ cÂc„Â€èÂIiÃ]³Ã4Ä3FÄ,zÄD§ÄeìÄhRÅU»Å€Æ?’ÆeÒÆp8ÇB©ÇvìÇ|cÈ{àÈc\É9ÀÉ>úÉ09Ê<jÊ3§Ê:ÛÊRËSiË@½Ë/þË(.ÌAWÌ=™Ì=×Ì3ÍcIÍD­ÍòÍÎ>+ÎIjÎH´ÎHýÎJFÏc‘ÏbõÏ8XÐ:‘Ð'ÌÐ9ôÐ3.Ñ;bÑ0žÑ<ÏÑ=Ò/JÒMzÒ3ÈÒ%üÒ@"ÓcÓ-yÓ2§Ó!ÚÓ üÓ*Ô3HÔ|Ô œÔ½Ô)ÝÔ(Õ\0ÕP�Õ^ÞÕ+=ÖMiÖS·ÖN×6Z×j‘×8ü×A5Ø=wØ@µØ6öØl-ÙHšÙ-ãÙZÚ<lÚ:©Ú3äÚ Û39Û7mÛ7¥Û9ÝÛYÜIqÜN»ÜO
+ÝJZÝ:¥ÝCàÝ$ÞåDÞM*ßGxßNÀßTà/dà5”à8Êà9áK=á6‰á8ÀáJùá8Dâ6}â6´âLëâ>8ã9wã2±ã;äãX ä:yä9´ä!îäBå,Så(€å7©åIáå#+æ9Oæ3‰æ_½æBç2`ç5“çAÉç?è8Kè5„è8ºè)óè|éQšé4ìéS!ê:uêF°ê6÷ê?.ë4nëD£ë*èëBìIVì+ ì-Ìì6úì11íXcí‚¼í5?îAuîN·î4ï?;ï,{ï&¨ï-Ïï>ýï?<ð;|ð>¸ðA÷ðD9ñ4~ñ?³ñdóñ9Xò’ò¯òÏò<äò,!ó;NóŠóm™óbô:jô„¥ô)*õhTõ9½õM÷õ>Eöi„ö[îöYJ÷K¤÷nð÷:_ø/šø8Êø2ù,6ù>cùQ¢ù[ôùFPú1—úQÉú@û#\û„€û|ü<‚ü<¿üVüüjSýO¾ýOþE^þ1¤þ-ÖþIÿ#NÿGrÿIºÿyS~TÒ]'\…`â`C^¤^Lbh¯J:cWž@ö&70^�¦
¸:ÆFPH@™=Ú;;T"� ³-Ô#`&P‡dØK=	$‰	B®	;ñ	4-
+�b
+Yò
+NL@›‚Ü__¿
+×âî

2
ƒA
WÅ

+FIi#~¢¯ÁÙé3ö*@WEn:´:ïF*4q8¦Eß@%fL… Òó*:J
W+e ‘$²&×þ:DF-‹G¹GI&[B‚PÅC>Z
™§Çßçëý!$3X w$˜½×#é
&)&P)w'¡)Éó!!5$W|•°Ì"áMR(b!‹,­CÚ?L^7«;ãve–Dü&A!h(Š³VË1"T=o­#Á;å!$3Xv•«"¿,âT!Cv@ºû %# I #[  “ 1° 'â A
+!<L!‰!#¤!›È!-d"’"©"(¿"%è"# #(7#8`#6™#Ð#í#8ÿ#8$J$\$x$˜$-¶$ä$
ô$%%	%'%!4%V%c%0�%²%Å%Ø%(ï%&0&%?&e&�&¡&²&È&!à&<'?'T'g''|'"¤'Ç'1ã'7(M(_(q(x((9Ÿ(7Ù(#):5)%p)%–)¼)SÙ)Q-*W*D×**+hG+^°+, /,>P,�,—,…±,57-m-,-&¬-Ó-å-ì-,ó- .)2.\.y.‘.°.$Æ.#ë.7/?G/7‡/?¿/&ÿ/*&07Q0?‰0*É0<ô0=11Eo17µ1?í1--2.[2Š23¡2:Õ2#3 43,U3&‚3.©3Ø3/ô3,$4Q4-m4›4"²4Õ4#ñ4-5&C5j5|5˜5®5Ä5Ü5!í5?6+O6#{6%Ÿ6
+Å62Ð6T7TX72­7à71ø7Z*8…8•8 ²8Ó8Nè879I@9±Š9C<:€:J—:â:;;7;R; r;$“;4¸;í;<(<G<^Y<_¸<_=^x=B×==>MX>a¦>M?;V?R’?Xå?w>@P¶@MAeUAR»AiB7xBX°Bu	CFC5ÆCFüC>CD3‚D5¶D†ìDMsE€ÁE3BF1vFf¨FgGUwG4ÍG8HX;HN”HHãH.,Iª[I	JJ.JNJnJC‡J7ËJ.K2K9KTK&lK{“KL=&LHdL„­L|2MJ¯MGúM5BN,xN(¥NÎNFêN91O=kOV©OPP";P^P{P™P¶PÔPòPQ.QNQmQ‹Q¨Q#ÆQ"êQ3
R"AR>dR<£R<àR2SPSaSrS
+„S�S¤S³SÈS×S4ÞST%3T0YT-ŠT%¸TÞTóT$U7'U__U?¿U)ÿU_)Va‰VLëVM8WI†WsÐWyDX?¾X;þX9:YHtY?½YFýY=DZX‚Z@ÛZX[Ju[MÀ[H\MW\K¥\9ñ\7+]'c]h‹]Zô]LO^-œ^8Ê^Q_,U_R‚_BÕ_G`A``1¢`GÔ`Ba_a=ua,³a-àab2.b;abQ�bCïb3c%Fclc€c“cN¦c6õc",d%Od4udTªd!ÿd(!e;Je†eÖ˜eÈof8gTg'sgG›gIãg.-hN\h«hÄhóÙh	Íi1×i0	j#:j^j
kjyj
™j§j7Ãj^ûj6ZkO‘k!ák1l5lMlkl‹l¢lºlÓlêlmm9mJm
cm\qm	Îm,Øm n6&n']n+…n.±nànún
oo5oIo]oqo„oi—o$pT&pW{pÓpèp!ùpLq(hq‘q%™q¿qÏqÞq3ôq5(r$^r9ƒr½r-Ür4
+s*?s#js
+Žs™s´s)Åsïs3	t=tYtwt�t§t¾t5Ñt&u.uDuWuku€u•u¬uÃu/âu.vLAv’Žv¬!w=Îw!xK.x.zx"©x=Ìx@
+y@KyCŒyCÐy*z/?z<ozI¬z5öz@,{,m{�ÝgóAX]˜1Ð�rb:Yð
 kê4ÏrGJêæ‘(äOÒªqúçîß/ièB_Œ¾Snwx½RŽÐ	[ïÌT+‚ÿ| Ì¡†c2ºÐFÀí?\ÿJM>ŸAqÀŸ²VýIÔ^š­Ç/rÒä—Ô£HÈ®²è‡bHÔGûì¾Ãn™�®–%­ÊñIkc¶“2<Êº�¥Y´§X5“$
\7÷àã²©æEéãšz´V|ÓòˆK­˜EouÄ$VJK¡»†>Ûì¨
 èñ¢â&	¨k'¸sØv.9¤b†át ˜Ýioðõ[½ÖašŽœžÄQ8‘@ «³dÍ¬zØ8ÅêCt”idþBf–§ž*oÃìËEÞ—ôþ]ºcl0ÑÎ¹\8¼,)œ™�\PõíÁmT±ê�•¬BÇY‰;]¤0ayON£�X6³ÖSu:1r€3"‡n	ö±[rƒÓ=§^=IåMÄ$%X¶<¾”p-á:Á¬�Â@3üRÉOÅeÅµŸ¹ç{÷Œ^ñö›	¶¦¥=e´ç(UˆhD¸Üã5…27e*sôù.é4äMXW	OP_eÉQÛèjÅkLë‚Œ™©1SÅ½³6,Jœ:¿P.’Ö˜Ñ*ë¸ÝU}jt#Ùat~8<ÿ­0!¦uüVÆZ	;�Í³÷ù¬+`ø°`Ê@ÈØ¹ $µ°_Ö£G€‰lò~¯¹!ÞÙ{;…Àóq{M’ˆ¿¼URÇ(!¢C(þïv‹¿JLnIjÒskmswŠG#(?ë¥#"@q�¨Ü’÷+!„Ç‹J6ÒÎÈÚ]‡d'Ô„p¶OÂbîÂ]žÈ›Z
V�x\˜�¦·zur²Á‚Œ™GX;¼ÚˆS?&=xÕ-#©òHEoNcõgÁ¨pÞù*œ¾6«�óúF‡Æ1òdRÆ'
 ÖýeUWC·–>-ËNàÌzé›ZŽ»–K»•ƒi%`Ä¡Ã:h¤¤.k
@@ -631,6 +630,7 @@ PO-Revision-Date: 2014-11-03 01:40+0200
 Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>
 Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>
 Language: fi
+X-Bugs: Report translation errors to the Language-Team address.
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/fi.po ./bfd/po/fi.po
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/fi.po	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/fi.po	2018-01-09 02:04:54.000000000 +0000
@@ -12,6 +12,7 @@ msgstr ""
 "Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
 "Language: fi\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/fr.gmo ./bfd/po/fr.gmo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/fr.gmo	2018-01-02 02:07:01.000000000 +0000
+++ ./bfd/po/fr.gmo	2018-01-09 02:08:39.000000000 +0000
@@ -1,59 +1,79 @@
-Þ•!$)Ù,R�m‘mªmÉmàm$óm3nLn%ln’nA¢n&äno$o=oVofo …o¦oÆoßoöo	p*!p9Lp6†p;½pùpFq6Rq:‰q5ÄqJúq)ErGorL·r)sL.s{s‘sD¨sístt2tJt3it�t0´tåtõtu+u+Ku+wu#£uÇußuèuôuv)v@v`v}v–v±vÑvêvww3w,Gwtw„w�wµwÌwÛwñwx1"xTxexrx‰x¤x#¼x+àx&y53yiy�y›y±yËyäyûy$z6zOzoz‡z$œzÁzÕzêz<{@{O{
^{l{€{ ˜{¹{Ô{ä{| |@|Y|r|…|*‘|¼|Î|&à|}0}L}"`}	ƒ}�}# }Ä}Ý}î}~" ~C~"W~#z~#ž~Â~#×~#û~.,[ain
-‹–›!¡ Ãäéî€.€3€G€ L€m€t€z€€„€Š€Ž€“€¯€È€Í€í€�!�A�F�K�R�X�]�o�v�Š�‘�ª�¾�Ï�à�ñ�‚‚	"‚
,‚
:‚
-H‚
-S‚
-^‚i‚
-~‚‰‚$�‚
-µ‚#À‚%ä‚
+Þ•Ët6	Ìl@‘A‘N‘b‘{‘Aš‘?Ü‘:’W’n’�’$ ’3Å’ù’“%&“L“A^“& “Ç“à“ù“”"” A”b”‚”›”²”¿”PÒ”#•*;•9f•6 •;×•–F%–6l–6£–:Ú–5—,K—Dx—N½—J˜)W˜G�˜:É˜B™LG™)”™B¾™LšNšdšD{šGÀš›'›9›M›e›z›3™›Í›ä›0ö›'œ7œGœ+aœ+�œ+¹œ#åœ	�!�*�H�?_�>Ÿ�7Þ�ž-žMžjžƒžžž¾ž×žòžŸ Ÿ,4ŸaŸqŸŠŸ¢Ÿ¹ŸÈŸÞŸøŸ1 A R _ v ‘ #© +Í &ù 5 ¡V¡n¡ˆ¡ž¡¸¡Ñ¡è¡$þ¡#¢<¢\¢t¢$‰¢®¢Â¢×¢<ð¢-£<£
K£Y£m£ …£¦£Á£Ñ£ñ£
¤-¤F¤_¤*r¤�¤¯¤&Á¤è¤0ü¤-¥"A¥	d¥n¥#�¥¥¥¾¥Ï¥è¥"¦$¦"8¦#[¦#¦£¦#¸¦#Ü¦§
§+§I§O§W§\§
+y§„§‰§!�§ ±§Ò§×§Ü§ô§¨4¨9¨M¨!R¨t¨{¨�¨†¨‹¨‘¨•¨š¨¶¨"Ï¨ò¨÷¨©+©&K©Br©µ©Õ©Ú©ß©æ©ì©ñ©ª
+ªª%ª>ªRªcªtª…ª–ª§ª¿ª	Îª
Øª
æª
+ôª
+ÿª
 
-ƒƒ(ƒ$@ƒeƒƒƒ!�ƒ¿ƒÔƒ
-ãƒ
îƒ	üƒ„
-„"„)„A„[„j„�„œ„«„Ä„Ó„Ú„ê„þ„(…/@…p…‰…›…°…+¿…ë…A†I†c†}†—†8¬†å†ý†‡&,‡S‡r‡†‡2¡‡Ô‡?î‡&.ˆUˆtˆ(‡ˆ°ˆ"Äˆçˆ*‰62‰{i‰rå‰xXŠÑŠDçŠ*,‹7W‹$�‹'´‹*Ü‹!Œ=)ŒAgŒE©ŒïŒ%�D4�.y�,¨�*Õ�%Ž4&Ž[Ž>zŽG¹Ž�J
-�5U�8‹�(Ä�,í�P�Ek�F±�Fø�3?‘<s‘%°‘AÖ‘n’K‡’7Ó’*“86“.o“<ž“9Û“@”HV”BŸ”Jâ”B-•Tp•TÅ•T–To–‰Ä–<N—m‹—[ù—PU˜<¦˜Dã˜^(™D‡™€Ì™1MšJšIÊš>›mS›6Á›mø›!fœ#ˆœ8¬œ)åœ.�0>�>o�>®�/í�/žFMž>”ž-Óž(Ÿ*Ÿ7HŸ1€Ÿ0²Ÿ/ãŸ) /= ;m <© <æ /#¡-S¡&�¡3¨¡3Ü¡O¢W`¢O¸¢o£+x£5¤£#Ú£7þ£E6¤>|¤2»¤:î¤2)¥(\¥+…¥<±¥?î¥Q.¦3€¦'´¦=Ü¦<§MW§K¥§Dñ§!6¨:X¨7“¨Ë¨.é¨©18©'j©%’© ¸©EÙ©4ªHTª?�ª<ÝªG«-b«7�«1È«8ú«23¬+f¬/’¬7Â¬ú¬+­LF­$“­+¸­ä­®®;®+V®5‚®@¸®@ù®I:¯I„¯9Î¯$°,-°'Z°=‚°QÀ°D±1W±5‰±¿±2Ü±.²?>²A~²EÀ²$³9+³5e³&›³4Â³1÷³$)´$N´/s´%£´<É´*µ'1µ3Yµ&�µ´µ4Ðµ¶4$¶Y¶.p¶(Ÿ¶*È¶6ó¶2*·5]·8“·WÌ·Z$¸B¸5Â¸=ø¸<6¹(s¹-œ¹0Ê¹û¹Pº fº@‡ºkÈº44»;i»$¥»'Ê»ò»2¼OB¼K’¼GÞ¼`&½A‡½YÉ½S#¾<w¾g´¾a¿l~¿Fë¿-2À2`À(“À3¼À1ðÀ-"ÁDPÁB•Á6ØÁ*Â2:Â.mÂ*œÂ(ÇÂðÂ4ÃD@ÃC…ÃCÉÃE
Ä^SÄ]²Ä)Å+:Å$fÅ)‹Å8µÅ:îÅ&)Æ&PÆ2wÆ+ªÆ=ÖÆ,ÇAÇ+_Ç‹Ç-¡Ç+ÏÇûÇ*È2EÈ"xÈ#›È"¿È-âÈ,ÉG=ÉG…ÉGÍÉ(Ê@>ÊDÊ2ÄÊ7÷Ê5/Ë/eË*•Ë1ÀË;òËW.Ì-†Ì-´ÌâÌ)Í%*Í2PÍ2ƒÍ=¶Í;ôÍB0ÎAsÎ:µÎ2ðÎ?#ÏcÏ›ƒÏ6Ð6VÐA�ÐGÏÐ6Ñ=NÑ:ŒÑ:ÇÑDÒ8GÒ9€ÒCºÒ:þÒ79Ó8qÓ9ªÓ,äÓ6ÔHÔ;dÔ: Ô.ÛÔ
-Õ1*Õ$\Õ5�Õ9·ÕOñÕ#AÖ1eÖC—Ö6ÛÖ(×&;×:b×#�×'Á×pé×'ZØ1‚Ø;´Ø£ðØ7”Ù(ÌÙ5õÙ8+Ú>dÚ £ÚÄÚ!âÚ Û%%ÛbKÛ'®Û)ÖÛ=ÜG>Ü%†Ü*¬Ü0×Ü&Ý&/Ý7VÝ8ŽÝ9ÇÝ6Þ/8ÞChÞQ¬ÞþÞß-ßBß2Xß&‹ß²ßMÁßTà2dà|—à(á[=á+™á/Åá(õáRâFqâF¸â:ÿâ6:ãDqã7¶ã*îã-ä0GäAxäHºä>å+BåInå;¸åôå;æ;Pæ.Œæ.»æ=êæI(ç.rç/¡ç@Ñç*è)=è;gè£è>ÁèBélCé@°é?ñéG1êFyêJÀêHëKTëG ëBèëX+ì4„ì/¹ìNéì08í(ií/’íÂíÕíéí0ûí=,îDjî0¯î5àî)ï7@ïxï’ï'±ï&Ùï[ðG\ðO¤ð9ôð.ñ>Nñ2�ñ5ÀñPöñ=Gò/…òoµò%ó
9óGó
Sóaó%ró\˜ó;õó1ôCôYô\ôyô†ô	Ÿô©ô»ô,Èôõô	õ/õOõ;_õ›õ°õÀõÉõÝõòõöö	;ö"Eö+hö#”ö,¸ö:åö ÷2÷.N÷4}÷?²÷=ò÷	0ø":ø]øtø}ø�ø”ø¦ø¸ø'Êøòø ù#0ùTùnù$€ù$¥ù$Êù'ïù%ú'=úeúƒú£ú"Ãúæúöúû û7û)Mûwû#�û#±û-Õû8ü1<üAnü.°üYßü_9ý;™ý)Õý!ÿý$!þFþH[þ%¤þÊþ5çþÿ
-2ÿ"=ÿ`ÿrÿ‹ÿ¦ÿ»ÿÈÿ×ÿ
õÿ/+E8qªÀß'ñ+.I-xG¦3î""AId%®Ôçù":L$eŠ§5¹ï#9Kk…–¥·	¾ÈÑ
-è"ó%<HWnŠ ²Òë1I-g•§¹Îè)/Gw‰›¢!©.Ë,ú':C%~%¤Ê=ãC!	=e	"£	[Æ	?"
-b
-�
-)ž
-È
-Ñ
-*ì
-&)Pp‚‰(�¹'Ëó(H#`$„,©.Ö,
.2
a
"~
,¡
.Î
!ý
10Q2‚,µ.â#5U(i/’!Âä(#*+Nz,“ Àáú.N#m-‘"¿âô7Pew2’$Å&ê	1!;]DwD¼/1/C?s³ÄäûJ7bš*´ß÷%6L#i%�³ÆãJJ]J¨Ió:=;x:´Eï659l7¦9ÞQ/jBš@Ý.=M&‹.²/á-i?D©dî,SF€fÇC.r#‘@µ8ö7/g	‡‘­¿Ñ<æ2# .V … � ¤ ¼ dÔ 9!6L!@ƒ!=Ä!d"gg"bÏ"=2#Ep#1¶#(è#$$6$4L$'�$$©$7Î$%%/%F%W%o%‡%™%«%½%Ï%é%&&'&?&^&2}&°&-É&+÷&+#'*O'	z'	„'
-Ž'™'®'½'Ò'á'1æ'(7('V("~(¡(¿(Ô(Ý(]û(=Y)(—)ZÀ)Z*Ev*A¼*Gþ*WF+Wž+9ö+90,4j,9Ÿ,4Ù,2-7A-5y-7¯-.ç-2. I.[j.@Æ.:/#B/=f/<¤/Ná/-00O^0 ®0>Ï091
-H11S1&…1&¬1!Ó1õ1,27A2
y2‡2š2®2Á27Ô23$,3"Q3At3¶3,Ô32444¾D4»5¿5Ú5õ5B6DX6*�6LÈ67*7y97³70»7ì78888298Ol8¼8*Û8 9'9KE9‘9ž9 ¸9Ù9í9::,:B:Y:v:‡:›:N£:ò:#ö:6;Q; q;8’;Ë;Ý;í;õ;
-<<2<F<Y<Ll< ¹<DÚ<=1=D=3_=!“=µ="¼=ß=ï=þ=%>'7>$_>)„>*®>Ù>0õ>,&?S?q?‹?“?
«?%¹?ß?'÷?@9@P@b@y@7�@È@á@ó@AA.ADA-cA)‘A>»AgúAxbB-ÛB!	C7+CcC!|C;žC0ÚC5D<AD<~D2»D/îD.E=ME/‹E6»E,òEªF!ÊG(ìGH5H+MHCyH+½H!éHIUI+pIœIºIÖIðI"J!#J$EJjJˆJ¡J¶J>ÖJBK?XK>˜K×KZðKDKLI�LCÚLSM1rMQ¤MUöM1LNV~NÕNðNS
O!aOƒO˜O¬O ÆO5çOP=2PpPP�P,ªP,×P,Q"1QTQlQuQ�Q¡QºQÑQñQR'R,BRoRˆR¨RÀRÜR3ðR$S4SNSjS‡S™S¯SÉS5àST)T6TQTlT$†T+«T'×T5ÿT#5UYUxU�U¯UÈUßU)õUV8VXVpV(…V®VÂV×V<ðV-W<W
KWYWmW"‰W¬WÇW&×WþWX9XRXpX„X-�X¾XÑX)äXY2#YVY+jY
-–Y¡Y#´YØY÷Y
-Z$Z#>ZbZ%vZ#œZ#ÀZäZ#õZ#[=[.L[{[�[‰[Ž[
-«[¶[»[)Á[3ë[\$\#)\#M\q\v\“\4˜\Í\Ô\Ú\ß\ä\ê\î\"ó\#]:]#?]c]#z]#ž]Â]Ç]Ì]Ó]Û]à]ö]ý]^^7^N^_^p^�^’^£^	²^
¼^
Ê^
-Ø^
-ã^
-î^ù^
-
__4_
-T_[__P»_
-``2`7Q`"‰`¬`,Ë`ø`
a
a*a	;aEa
[aiapaŠa§aÅa'âa
-b b
:bHbOb^bsb1�b:¿búbc*c?c:Pc‹cG¦c îcd*dEd;Zd–d¯dÅd6àd,eDeYe7xe°eHÊe5f+Ifuf*Šfµf#Éf-íf*g7Fg~gwþg{vhòh]i;jiC¦i0êi,j2Hj){jF¥jJìjD7k|k5—kVÍk8$l.]l#Œl'°l2Øl%m@1mYrmÌmXÕm8.n@gn0¨n4ÙnOoN^oK­oKùoCEp_‰p,épGqŠ^qaéq>Kr3ŠrA¾r;sF<sCƒsLÇsMtNbtU±tMulUuoÂuj2vo�v“
wF¡wˆèwpqxXâxH;yR„y‚×yYZz¦´z+[{T‡{YÜ{E6|Œ||=	}vG}#¾}$â}L~0T~6…~5¼~Iò~O<KŒ3Ø^€@k€?¬€6ì€'#�LK�A˜�9Ú�4‚6I‚4€‚Cµ‚Wù‚WQƒ@©ƒ=êƒ7(„U`„P¶„i…oq…ká…šM†.è†H‡,`‡A�‡SÏ‡M#ˆAqˆ?³ˆDóˆ.8‰>g‰R¦‰bù‰m\Š;ÊŠ4‹H;‹E„‹XÊ‹Q#ŒFuŒ ¼ŒLÝŒF*�'q�7™�$Ñ�<ö�(3Ž-\Ž&ŠŽ[±Ž=
�UK�Q¡�Nó�XB�4›�SÐ�J$‘Uo‘HÅ‘R’4a’?–’-Ö’C“hH“5±“6ç“0”O”-m” ›”9¼”Cö”r:•r­•a –a‚–Iä–,.—9[—8•—cÎ—e2˜V˜˜<ï˜<,™'i™=‘™@Ï™\šUmš\Ãš$ ›GE›?�›-Í›;û›>7œ/vœ/¦œ7Öœ5�CD�6ˆ�)¿�?é�0)žZžEyž$¿žBäž'ŸCAŸ:…Ÿ@ÀŸO FQ j˜ L¡jP¡q»¡R-¢k€¢Iì¢M6£B„£DÇ£=¤J¤eg¤,Í¤Pú¤�K¥;Í¥D	¦%N¦2t¦-§¦FÕ¦a§Y~§VØ§„/¨P´¨p©mv©Sä©ˆ8ªŠÁª�L«dÚ«=?¬7}¬-µ¬Dã¬C(­9l­W¦­Vþ­VU®;¬®Gè®10¯6b¯%™¯¿¯;Ù¯F°E\°E¢°Gè°`0±_‘±9ñ±@+²/l²5œ²FÒ²I³-c³1‘³9Ã³0ý³O.´<~´»´.Ù´µ:µ6Yµ#�µ4´µ:éµ)$¶*N¶)y¶9£¶8Ý¶b·Sy·]Í·4+¸R`¸H³¸@ü¸F=¹F„¹BË¹JºKYºU¥ºQûº?M»/�»+½»5é»<¼<\¼E™¼]ß¼b=½l ½c
¾Xq¾AÊ¾V¿c¿Äƒ¿DHÀD�ÀVÒÀ\)Á=†ÁAÄÁ=Â>DÂHƒÂ;ÌÂ=ÃGFÃ=ŽÃ;ÌÃ;ÄXDÄL�ÄMêÄ$8ÅN]ÅN¬ÅBûÅ(>Æ?gÆ2§Æ@ÚÆFÇWbÇ+ºÇ;æÇ\"ÈMÈ3ÍÈ7É]9É+—É/ÃÉ‡óÉ/{ÊK«ÊD÷ÊÅ<ËHÌ:KÌ<†Ì=ÃÌEÍ$GÍ"lÍ<�Í:ÌÍ.Î„6Î8»ÎFôÎD;ÏN€Ï2ÏÏJÐ:MÐ%ˆÐB®ÐAñÐP3ÑL„ÑJÑÑFÒPcÒe´Ò*Ó
EÓSÓ#iÓ:�Ó6ÈÓÿÓcÔkrÔ3ÞÔŽÕ.¡ÕbÐÕ>3ÖBrÖ3µÖeéÖVO×Z¦×OØ^QØF°ØC÷Ø3;Ù<oÙ?¬ÙIìÙP6ÚM‡Ú5ÕÚ]ÛOiÛ*¹ÛEäÛE*Ü;pÜ;¬Ü?èÜS(Ý=|Ý;ºÝKöÝ(BÞCkÞI¯Þ"ùÞJßJgßp²ßG#àFkàN²àMáQOáJ¡á[ìá]HâO¦âköâPbã7³ã\ëã9Hä4‚ä6·äîäååC,åEpåL¶å8æA<æ3~æ=²æðæ#
ç,1ç-^çnŒçSûçSOèO£è)óèJé9héO¢é]òéBPêB“ê~ÖêUënë}ë
Žëœë$¬ëiÑë>;ìzì&‘ì¸ì »ìÜìòì	íí(í75ímíƒí6�íÔíAèí*îCîWî`îtî‰î�îµî	Ôî,Þî>ï.Jï6yïM°ïþï!ð/2ð7bðTšðMïð=ñ,Mñ&zñ	¡ñ«ñ¯ñÈñÚñìñ0þñ/ò)Nò+xò¤òÀò0×ò%ó%.ó(Tó&}ó(¤óÍó ìó 
ô#.ôRôhôƒô%¡ôÇô6Ýôõ*/õ,Zõ5‡õ;½õ<ùõF6ö9}ön·öp&÷J—÷1â÷"ø&7ø#^øL‚ø8Ïø#ùB,ùoùŒù4œùÑùãùüùú9úKú\ú
zúˆú?šú4ÚúDûTû2qû¤û$¶ûÛû$íû@ü1SüQ…ü<×ü/ý4DýOyý0Éýúý
þ$!þ-Fþtþ†þ$¤þ*ÉþôþHÿOÿaÿsÿ…ÿ�ÿ±ÿÐÿîÿ$+4A
_(m2–ÉØé!ÿ!8Lk‡¦ÀÕ!ð9L`u�%­Ó1òC$hzŒ“*š3Å1ù+=I-‡,µ#âRXYA²:ôs/V£úC8	|!†7¨à0ò*#N`g8n§3¹í
-	"	A	"X	#{	3Ÿ	/Ó	3
-/7
-g
-#†
-3ª
-/Þ
-%54=j9¨3â/$F kŒ+¢1Î!
"
)A
$k
3�
Ä
7Þ
!8!Rt#ˆ$¬(Ñ3ú&.Ug|™#°Ôó#2,/_6�+Æò2ø+VHVŸ?ö62Nh�ê(ü%>ZOc>³ò5Ea{“®#Î"ò4J'f#Ž²\ÄY!U{XÑI*ItF¾T?ZAš?ÜA‡^bæZIt¤NUh8¾A÷79/qx¡]~x8÷h0o™P	/Z1ŠK¼? WH 1  	Ò 'Ü !!(!@@!2�!=´!ò!ú!"!2"uT"Ê"BÝ"E #<f#w£#t$o�$B%RC%2–%)É%'ó%&S4&Gˆ&@Ð&R'd'v'“'®'"À'ã'((&(9(L(k(Š(�("¯(6Ò(7	)6A)x)>•)<Ô)<*4N*	ƒ*	�*
-—*¢*¹*È*Ý*ì*4ñ*"&+I+8f+/Ÿ+*Ï+$ú+,#2,uV,KÌ,)-gB-hª-K.F_.I¦.zð.zk/Qæ/N80G‡0LÏ0G1Qd1n¶1L%2nr22á253+J3nv3Så3J94%„4\ª4J5WR50ª5bÛ5$>6Cc6>§6æ6>ò63174e7,š7&Ç70î7D8d8s8�8£8¶8@É8!
-9&,9S9Ro9Â95â9::S:ëc:ßO;"/< R</s<I£<Jí<98=_r=Ò=é=·ö=	®>9¸>(ò>?*?6?<?EW?m�?*@;6@@r@F³@bú@]AiA:‰AÄAÚAðABB6BOBnB€B—BY BúB/þBI.C&xC-ŸCCÍCD)D@DLDdDwD‹DŸD²D�ÅD#GESkE¿EÒEêEF
-F=QF�F+—FÃFÓFâF5öF<,G4iG;žG=ÚG"H6;H8rH%«H$ÑHöHþHI:(IcI2�I´IÐIïI$
J2JAMJ#�J³JÅJØJìJKK26K:iKM¤K‹òK�~L6M/SM@ƒMÄM(ßMINBRNI•NIßNI)OAsO1µO8çOJ PEkPJ±P-üPê:Š;–Îý#ë¾>ÏÅÏÊýˆ>ñ†)Œô-ÌšúüeÆFR KÔú>N<Ù•º;9/½ÞZ~24ÊlŠbuƒ÷P’‚»O�,æ´è-ÆM³4	‰.¥±Rÿ¡—«ì�”@�€°^Ð
ã÷ª=×äW@©D�
ÇÝL_ð¡ºàßÍœS5¦óà’Ê¿}ti›û(cÁs^8]ñPž]®*º™qûZ7Ë„¹PŸqÀóÛŽïa6Àç¨/TõË{Ev®‚xQÍ¸Ãƒ/œ7ô€ëž›Å¤Ò©cyM!A†¦
-ÿ�ÖÏþî—*Zïu�àXˆ! Èõ&$x.˜„
-.c�ÿ“%^îeÉý‰é00¹�¥#o¿2?“íßHx$úd':a­‚YJ‹íÜUso©˜"öF¯AÐLaT³ì’»t~Ì}ÕØP¸·w`´�øÙ¸õ£ïÂÅ¢EúIÃ°ƒ>$=N&'�j]h[ð¸.jòÓÿÄþFúò�{åãkö°q‚ÝXpkÈNŠòå5ˆ
ï§*…çÖÏÑÑ#ÁŸ';ÄšÞØÂjŽ„®¥a–rÃU¿~¾Û7”'ùÐ¤Ú_%­âévÑÁ­Mhj`ˆC¤né§Sül(•
	ã^|ÁoÇžäCÖ‹ùŠVX)†u=lRF¨nøRzÕYÄ¬b5fšÛN
-—<œðì½T^€|Â¤v¼½pW	—ûþçÐÅÞWã¬f\’T9×pzæþ…b„8[¡1è”K%)ÕCñMtG(,wdå ðwmñÒ:þ»ÿ7EÑ®Ã‘¸ž¾‘$HiêuÔcDŒæ<Æá3I¨›f9 6N@Ø"\#Ÿ·!]åªÏV(ÂÜšÇ�r§p¨ãY; ¼ä)ÛB°D �BÝ]�ŸïÜ
-ñ²Õáô* ³4»gÀ©ÜÍ‡Þ9kíîO…w¦¶Õ¿ý8Y|Ò²åõ÷eÚâë{¢ÓÍsRl¤
&× B6÷Œ�ä!n3 ±#_ªâ¼¯e¯bÉülzä�‹£ë<h_ÈíM†Æ­‰ù.¬3ý«­·?œÎôÒK®|(™ËHiDÉèmmàvîßJT°ó1æ[Úƒ›„¦Æö0DùˆìSüg£\eøµèÌv,é¡4È©ðµÇA
-x{+Ë+†¶yªrd[5±ÂJ>‰XŸ"â¢æZ\¡? ÓALÉ¢G%‘õ+Èrc·�µ2\ÍŠ•«£Q›‡”¥™0<Ëºâs¼gÖ¯�–ø@OoCsçJÔóy€nÔ5¶Ugë}Ý�Ý•;Q"
Pi²I1”ôÎØO}‡B=…`|øof™b6QÌªqpLÄÙ`÷¢K•,“tkyÎÉ
-Ó7òW�ízÔàF0Ž‘Ùi¹¦¹4Où�yG–&Å«£µ±¶2ó×-~}ÚG²Ò‹�?gu/J¨E,!/V¹S3`	dŒnèÖ	ÁéQÜ=€X¾³E˜·fêÊç‘hß+Y-B$Lî:?q¬±'_áÀ“À´9œa%ÊÄòÌ³t…§Œ‡áÚ!Þ“ê-½ÓÑCÇmG8¼‡~ßH�á¥{UÃZ«˜m28ê1´ìØ¿Vƒ13�ŽxÛ¶[’wj—ž‚–6¯kA:‹‰�rÐz&§UW× "ü	»IÙ*¬IHV@d+ûû™ö)´˜KŽh½²ÎºSµöš¾	Export Address Table 			Export Address Table 		%08lx
-	Name Pointer Table 			Ordinal Table 				[Name Pointer/Ordinal] Table	%08lx
+«
+« «
+5«$@«
+e«#p«%”«
+º«Å«×«$ï«¬2¬!L¬n¬ƒ¬
+’¬
�¬	«¬µ¬
+Æ¬Ñ¬Ø¬ð¬
+­­+­B­]­l­…­”­›­»­(Ë­/ô­$®6®+E®q®A�®Ï®é®¯¯82¯k¯ƒ¯˜¯&²¯Ù¯ø¯2°?F°&†°­°(Ì°õ°"±+±*K±6v±{­±r)²xœ²³:+³f³Dx³*½³7è³$ ´'E´*m´!˜´=º´Aø´E:µ€µ%ŸµDÅµ
+¶r(¶.›¶,Ê¶*÷¶%"·4H·}·-œ·2Ê·Lý·>J¸©‰¸G3¹8{¹	´¹J¾¹5	º8?º(xº,¡ºZÎº`)»PŠ»EÛ»F!¼Fh¼O¯¼Hÿ¼3H½<|½%¹½Aß½n!¾K�¾ÁÜ¾:ž¿:Ù¿7À*LÀ8wÀA°ÀIòÀC<ÁK€Á.ÌÁ<ûÁ98ÂBrÂTµÂT
+ÃT_Ã‰´Ã<>Äm{Ä[éÄPEÅ<–ÅDÓÅ^Æ|wÆDôÆ€9Ç1ºÇJìÇI7È>�ÈmÀÈ6.É!eÉ‡É&›É(ÂÉ<ëÉA(Ê&jÊ‘Ê7¥Ê!ÝÊ#ÿÊ&#Ë8JËCƒË ÇË èË)	Ì.3Ì0bÌ.“Ì.ÂÌ>ñÌ>0Í/oÍ/ŸÍFÏÍ>ÎDUÎ@šÎ@ÛÎFÏDcÏ@¨Ï@éÏ-*Ð(XÐ�Ð7ŸÐ1×Ð0	Ñ/:Ñ)jÑ/”Ñ;ÄÑhÒ<iÒA¦Ò<èÒ/%Ó-UÓ&ƒÓMªÓ3øÓ3,ÔO`ÔW°ÔOÕoXÕ+ÈÕAôÕ76Ö9nÖT¨Ö5ýÖ#3×.W×.†×%µ×7Û×2Ø7FØE~Ø>ÄØ2Ù:6ÙUqÙ2ÇÙ|úÙ(wÚ( Ú3ÉÚ[ýÚZYÛ+´Û+àÛÜ/&Ü(VÜ7Ü7·Ü<ïÜ?,ÝQlÝ3¾Ý5òÝ'(Þ=PÞ:ŽÞGÉÞ<ß"NßMqß6¿ßKößDBà!‡à:©à7äàá:á.Vá.…á´á1Ôáâ'#â%Kâ qâE’â4Øâ(
ãH6ã?ã<¿ãGüã@Dä7…ä-½ä*ëä<å7Så1‹å8½å:öå21æ+dæt�æ/ç 5ç-Vç^„ç]ãç0AèIrè@¼èAýè.?é+né7šéÒé+òéIê$hê+�ê¹ê×êAðêH2ë>{ë+ºëIæë90ì;jì¦ì;Æì;í>í+YíG…í.Íí.üí5+î@aî@¢îIãî=-ïIkïIµï4ÿï94ð,nð.›ð/Êð'úðk"ñuŽñ@ò5Eò{ò2˜ò.Ëò*úò)%ó?Oó!�ó#±ó.Õó8ô*=ô hôA‰ôEËôBõBTõ:—õ3Òõ$öI+ö;uö9±ö5ëö&!÷%H÷4n÷&£÷4Ê÷1ÿ÷$1ø$Vø/{ø«ø&Éø%ðø<ù#Sù*wù'¢ù>ÊùB	ú3Lú&€ú §ú"Èú!ëú!
û!/û%Qû!wû ™û!ºû#Üû!ü!"ü!Dü$fü$‹ü °ü"Ñü!ôü#ý$:ý_ý"ý"¢ý!Åý!çý	þ)þ!Eþ#gþ"‹þ#®þ!Òþ'ôþ3ÿlPÿ@½ÿ?þÿG>F†JÍHKaG­BõX84‘/Æö4 J!kN�4Ü0B(Y.‚(±*Ú62<5o8¥WÞZ6B‘5Ô=
+<H(…-®0Ü
P' x/™&É!ð@	iS	0½	1î	* 
+!K
+4m
+;¢
+&Þ
+$'*=RD�Õ2ò0%PVK§GóC;
`
rà
AS�•S<ka¨a
+flfÓF:-�2¯(â31?,q-žDÌB5T6Š*Á#ì2)C-m.›*Ê(õ]J|7Çÿ44'iD‘CÖCE^^¤])a(‹+´$à))/7Y9‘&Ë&ò&2@+s=Ÿ,Ý
++(T-j˜·,Ö#1'*Y'„&¬%Ó&ù' )H,r%Ÿ*Å$ð%%;2a'”*¼"ç#
+".&Q-x,¦[ÓC/ Gs C» Gÿ OG!W—!Gï!97"(q"*š"Å"5å"6#>R#2‘#5Ä#@ú#P;$3Œ$PÀ$2%AD%K†%@Ò%K&-_&`�&=î&J,'2w'<ª';ç'7#(3[(/�(?¿(7ÿ(*7)1b);”)2Ð)W*O[*&«*3Ò*[+Wb+-º+oè++X,]„,-â,+-<-2Z-)�-V·-<.(K.3t.#¨.%Ì.2ò.%/2E/=x/;¶/Bò/A50:w02²0?å0%1<D18�19º1ô12&22Y2›r2/3%>3*d3/�3%¿3"å3-4+64.b4$‘46¶46í4$5.C5+r5$ž5"Ã57æ5!6%@6Af6G¨66ð6='7:e7: 7DÛ78 89Y8C“8:×8798J9Pƒ9DÔ99:,S:0€:#±:-Õ:;-;6L;ƒ;7Ÿ;;×;:<:N<!‰<3«<.ß</=>=L^=1«=*Ý=%>$.>9S>O�>#Ý>,?1.?B`?5£?(Ù?5@"8@.[@8Š@GÃ@UA>aA  AÁA!ßA B'"BbJB3­B)áB=C%IC*oC0šC&ËC&òC7D7QD]‰D8çD EO?E,�E+¼EYèE)BF;lF0¨F/ÙF?	G9IG6ƒG/ºGCêG&.HWUHQ­HÿHI.ICIRYIF¬IFóI::JuJˆJœJ®JÈJ
ÜJ'êJK
K,K%=K\cK;ÀKüKL$L'LDLQL	jLtL†L—L,¤LÑLåLûL"M/8M/hM2˜M9ËM#N')N2QN3„N¸N;ÈNOOO(O8O?OGO[OpO…O—OªOÁOÞOðOP	-P7P	UP"_P+‚P#®P,ÒP:ÿP:QLQ)hQ/’Q?ÂQ=R	@R"JRmR„R+�R¹RÅRÉRÜRîRS'S:S WS#xSœS>¶S<õS2T DT0eTD–T,ÛTU(U:U$XU$}U'¢U%ÊU'ðUV6VVV"vV™V©V¾VÓVêV)W*W#@W-dWI’W:ÜW8X2PXFƒX1ÊXAüX,>Y-kY'™Y.ÁYYðY_JZ;ªZ)æZ![G2[1z[$¬[Ñ[Hæ[5/\%e\‹\5¨\Þ\
+ó\"þ\!]3];]0C]t]�]¨]½]Ê]Ù]
÷]^B^/Z^+Š^8¶^ï^$_!*_1L_~_�_+¼_è_
+ü_`9&```'r`š`¬`.Ê`-ù`G'a3oa£a"Âa)åa*bI:b „b¥b%Âbèbûbc.,c[c,yc)¦c"Ðcócd$d*Cd+ndšd ·dØd5êd e	2e<eNedeve–e°eÁeÐeâe	ée4óe(f1f
+HfSf"Xf%{f¡f­f¼fÓfïfgg7gPgpg„g–g®g-Ìgúghh3hMhDmh¥²hXi)mi/—i'Çiïiþij"j)j!0j.Rj,�j®j:Êj%k%+kQk?jk9ªkCäk=(lCfl=ªl"èl[m?gm§mÆm)ãm
nnv1n*¨nÓn&åno,o>oEo
+Lo(Wo€o'’oºo×oïop#'p$Kp,pp.�p,Ìp.ùp(q"Eq,hq.•q!Äq1æq0r2Ir,|r.©r#Ørürs(0s/Ys!‰s«s(Ès#ñs+tAt,Zt ‡t¨tÁtátõtu#4u-Xu"†u©u»uÓuæuÿuv v2v2Mv$€v&¥vÌv6ìv	#w!-wDOwD”w/Ùw?	xIx/[x?‹xËxJÜxM'y8uy®yÎyåy;øy4z7Qz-‰z·zJÀz‰{(•{7¾{ö{*|;|S|[|s|‰|š|°|Í|"Ù|#ü|% }F}c}'€}¨}Jº}J~JP~I›~:å~A ;b:žEÙ6€+V€;‚€F¾€@�;F�:‚�Q½�/‚B?‚;‚‚K¾‚F
+ƒaQƒ/³ƒ<ãƒ- „-N„/|„7¬„Bä„!'…iI…D³…dø….]†,Œ†f¹†C ‡d‡#ƒ‡@§‡@è‡4)ˆ8^ˆH—ˆ7àˆ‰˜8‰Ñ‰í‰ÿ‰Š<&Š2cŠ.–Š$ÅŠêŠòŠ	‹‹5‹M‹e‹d}‹â‹6õ‹M,ŒMzŒ=ÈŒg�bn�=Ñ�EŽ1UŽ(‡Ž$°ŽÕŽëŽ4�'<�$d�7‰�Á�Ò�ê���*�B�T�f�x�Š�¤�¿�Ñ�â�ú�‘28‘k‘„‘-ž‘+Ì‘+ø‘*$’	O’	Y’
+c’
+n’y’Ž’�’²’Á’1Æ’ø’-“E“'d“"Œ“¯“Í“â“ë“,	”]6”=””(Ò”Zû”ZV•E±•A÷•G9–B�–WÄ–W—9t—9®—-è—8˜4O˜3„˜9¸˜4ò˜2'™7Z™5’™7È™BšECšB‰šCÌšA›'R›.z›,©›+Ö›*œ.-œ2\œ �œ[°œ@�:M�#ˆ�6¬�<ã�& ž2Gž=zž;¸ž8ôž<-Ÿ%jŸ�Ÿ­ŸNÃŸ- O@  � >± 9ð 
+*¡15¡&g¡&Ž¡!µ¡×¡,ö¡J#¢7n¢
¦¢´¢Ã¢Ö¢ê¢ý¢£7-£6e£6œ£Ó£$ó£_¤"x¤A›¤Ý¤,û¤2(¥[¥k¥¾|¥»;¦÷¦§-§BM§D�§*Õ§L¨M¨`¨u¨Š¨Ÿ™¨9©0A©9r©¬©Æ©Î©Ö©ò©Hù©BªEª2aªO”ªäª«*« 3«T«r«z«‡« ¡«Â«Ë«ß«ô«
+¬¬4¬K¬h¬y¬‹¬Ÿ¬N§¬ö¬ú¬#­6­6N­…­ ¥­8Æ­ÿ­®!®)®2>®q®…®™®­®À®
Ó®Lá® .¯DO¯P”¯å¯÷¯
+°3%°!Y°{°‚°"Š°­°½°MÌ°±2±O±^±.q±% ±'Æ±+î±$²*?²j²0†²
+·²,Â²ï²
³'³/³
G³%U³{³'“³»³Õ³ï³"û³´=´T´f´}´7”´Ì´å´ú´µµ3µGµ]µsµ-’µ)Àµ>êµ7)¶ga¶xÉ¶7B·Ez·4À·%õ·-¸;I¸!…¸§¸!À¸0â¸5¹<I¹<†¹2Ã¹/ö¹.&º=Uº/“º6ÃºFúºA»`»€»,„»Ð±»‚½�½!¤½(Æ½wï½lg¾_Ô¾4¿T¿l¿+Œ¿C¸¿ü¿)	À!3ÀUÀUfÀ+¼ÀèÀÁ"Á<Á"LÁ!oÁ$‘Á¶ÁÔÁíÁýÁiÂ|Â>œÂBÛÂ?Ã>^Ã�Ãb¶ÃDÄE^ÄI¤ÄCîÄ52ÅShÅ\¼ÅWÆ1qÆQ£ÆHõÆO>ÇUŽÇ1äÇOÈVfÈ½ÈØÈSõÈ[IÉ!¥ÉÇÉÜÉðÉ
+Ê Ê5@ÊvÊ‹Ê=�ÊÛÊêÊúÊ,Ë,BË,oË"œË¿Ë×ËàËÌPÌOjÌKºÌÍÍ=ÍZÍsÍ,ŽÍ»ÍÔÍôÍÎ(Î3<ÎpÎ€ÎšÎ¶ÎÓÎåÎûÎÏ5,ÏbÏuÏ‚Ï�Ï¸Ï$ÒÏ+÷Ï'#Ð5KÐ#�Ð¥ÐÄÐÜÐûÐÑ+Ñ)AÑkÑ„Ñ¤Ñ¼Ñ(ÑÑúÑÒ#Ò<<ÒyÒˆÒ
—Ò¥Ò¹Ò"ÕÒøÒÓ&#ÓJÓeÓ…ÓžÓ¼Ó-ÐÓþÓÔ)$ÔNÔ2cÔ–Ô+ªÔ
+ÖÔáÔ#ôÔÕ7ÕJÕdÕ#~Õ¢Õ%¶Õ#ÜÕ#Ö$Ö#5Ö#YÖ}Ö&ŒÖ&³ÖÚÖàÖèÖíÖ
+
+×××) ×3J×~×ƒ×ˆ×#¡×#Å×é×î×Ø4ØEØLØRØWØ\ØbØfØ"kØ#ŽØ/²ØâØ#çØÙ#"Ù4FÙ@{Ù#¼ÙàÙåÙêÙñÙùÙþÙÚÚ2Ú9ÚUÚlÚ}ÚŽÚŸÚ°ÚÁÚØÚ	çÚ
ñÚ
ÿÚ
+
Û
+Û
+#Û
+.Û9Û
+MÛ4XÛ
+�Û[˜ÛPôÛ
+EÜPÜbÜ7�Ü"¹ÜÜÜ,ûÜ(Ý=Ý
LÝZÝ	kÝuÝ
‹Ý™Ý ÝºÝ×ÝéÝÞ+$ÞPÞ _Þ
€ÞŽÞ#•Þ¹Þ1ÈÞ:úÞ5ßKß:\ß—ßG²ß úßà6àQà;fà¢à»àÑà:ìà,'áTá7sáH«á9ôá+.â*Zâ…â#›â-¿â*íâ7ãPãwÐã{HäÄä?Þäåe2å;˜åCÔå0æ,Iæ2væ)©æFÓæJçDeçªç5ÅçVûç#Rè¤vè<é.Xé#‡é'«é2Óé%êC,ê:pêf«ê@ëÛSë]/ìG�ì	ÕìXßì88í@qí0²í4ãírîx‹îOïNTïK£ïKïïT;ðM�ðCÞðc"ñ,†ñG³ñŠûña†òèòA÷óA9ô>{ô5ºôAðôL2õMõNÍõUö;röF®öCõöM9÷l‡÷oô÷jdø“ÏøFcùˆªùp3úX¤úHýúRFû‚™û§üYÄü¦ý+ÅýTñýYFþE þ”æþ;{ÿ+·ÿãÿ4ûÿ00CaE¥4ë Z5#�$´4ÙPU_#µ#Ù0ý6.5e9›<ÕIO\I¬3ö^*@‰FÊEMWO¥HõI>Mˆ?Ö6'MKu>Á9	4:	6o	4¦	CÛ	‹
+W«
+OWS@«=ì7*gbSÊN
nm
wÜ
oTšÄ._]ŽFì\3o�=,>EkB±EôA:3|B°SóMG?•?ÕrDˆŽÍ.\.‹:ºbõwX:Ð:FBf3©PÝA.RpbÃm&;”AÐ4HG@�kÑE=,ƒ`°cQuFÇ J/Dz'¿ç67;$s<˜!Õ(÷- &N[uAÑ) U= U“ Ré \<!M™!Cç!8+"3d"O˜"Wè"N@#Y�#Né#L8$T…$£Ú$8~%'·%<ß%|&{™&?'ZU'X°'R	(8\(7•(CÍ(-)E?)g…)5í)6#*0Z*‹*I©*Pó*QD+9–+aÐ+x2,O«,-û,E)-Eo- µ-=Ö-I.;^.;š.CÖ.r/r�/a0?b0S¢0aö0GX1I 19ê1=$2;b2<ž2‹Û2Ÿg3K4<S4'�4=¸4@ö4(75C`5\¤5.6.06C_6S£6E÷6'=7Ue7\»7Y8Yr8MÌ889$S9Yx9IÒ9G:?d:,¤:?Ñ:?;-Q;;;>»;/ú;/*<7Z<&’<5¹<3ï<C#=1g=>™=)Ø=J>JM>?˜>0Ø>,	?.6?-e?-“?-Á?1ï?-!@,O@-|@/ª@-Ú@-A-6A0dA0•A,ÆA.óA-"B/PB0€B+±B.ÝB.C-;C-iC+—CÃC-âC/D.@D/oD-ŸD;ÍDC	EpMEG¾EFFNMFMœFQêFJ<G[‡GeãGSIHk�HP	I;ZI$–IG»I*J).J\XJFµJ=üJ:K4TKC‰K:ÍK@LOILF™LjàLLKMj˜MqNRuNkÈNI4OM~OAÌOEP=TP ’Pe³P,Q7FQ=~Q-¼QPêQƒ;RC¿RAS4ES,zS;§SDãS&(T%OT2uTE¨TLîT+;UCgU8«UmäUYRVV¬VRW„VW“ÛWPoX±ÀXmrYSàY‚4ZŠ·Z‡B[�Ê[dZ\=¿\9ý\-7]De]Gª]3ò]=&^cd^bÈ^A+_Vm_;Ä_,`G-`3u`8©`5â`:a)Sau}aRóa<Fbƒb�b;¶b1òbF$cEkcE±cG÷c`?d_ dAeLBeH�eHØe6!f5XfFŽfIÕf2g1Rg5„g9ºg0ôgS%h:yh´h.Òhi:i)Ri#|i6 i1×i@	j4Jj1j0±j/âj0k1Ck3uk6©k/àk4l.El/tl/¤l:Ôl0m5@m)vm* m)Ëm-õm9#n8]nr–na	obkoOÎoSpSrprÆp]9qO—q4çq3r)PrOzrCÊrJs9YsO“sZãsV>tW•taít5Ou?…uLÅu@vKSv@ŸvyàvFZwN¡wDðwC5xEyxJ¿xH
+y@SyV”y<ëyJ(zKszU¿zB{yX{dÒ{07|>h|c§|_}Ck}‚¯}52~uh~/Þ~;+J=v3´gèOP€. €KÏ€9�<U�@’�%Ó�Iù�]C‚b¡‚lƒcqƒXÕƒA.„Vp„0Ç„Uø„QN…U …ö…%†;<†x†Ì•†@b‡6£‡CÚ‡@ˆ6_ˆ1–ˆDÈˆ<
‰@J‰3‹‰D¿‰DŠ"IŠ;lŠI¨Š/òŠ7"‹ZZ‹/µ‹3å‹VŒ\pŒ=ÍŒA�=M�>‹�HÊ�;Ž=OŽG�Ž=ÕŽ;�;O�}‹�b	�Xl�LÅ�E‘+X‘0„‘.µ‘Gä‘M,’$z’@Ÿ’Nà’N/“C~“7Â“Dú“B?”B‚”(Å”^î”?M•4�•:Â•2ý•F0–Ww–+Ï–8û–;4—[p—LÌ—:˜<T˜-‘˜B¿˜=™N@™z�™E
+š$Pš"uš<˜š:Õš6›…G›HÍ›FœD]œ2¢œJÕœ: �%[�B��LÄ�Až|SžPÐž!ŸdAŸ6¦Ÿ0ÝŸ_ +n Mš ?è =(¡Mf¡L´¡J¢FL¢P“¢*ä¢k£q{£*í£
¤&¤#<¤e`¤VÆ¤Z¥Ox¥È¥ß¥ô¥¦#¦<¦'K¦s¦
„¦’¦$¢¦iÇ¦>1§p§&‡§®§ ±§Ò§è§	¨¨¨0¨7=¨u¨‹¨!¥¨"Ç¨6ê¨F!©Dh©P­©0þ©1/ª>aªB ªãªA÷ª9«B«K«d«x«�«Š«ž«³«Ç«Ù«ì«¬#¬(7¬'`¬
+ˆ¬"“¬	¶¬*À¬>ë¬.*­6Y­K�­Ü­!î­(®09®Tj®M¿®
¯,¯&J¯	q¯={¯¹¯Í¯Ñ¯ê¯ü¯°0 °Q°)p°+š°Æ°Yâ°R<±�±,¦±=Ó±X²=j²'¨²Ð²&å²%³%2³(X³&�³(¨³Ñ³ ð³ ´#2´V´l´‡´%¥´Ë´6á´µ,3µ6`µL—µDäµ;)¶=e¶f£¶I
+·FT·C›·Lß·/,¸9\¸v–¸t
¹J‚¹2Í¹"ºN#º8rº&«º#ÒºLöº3C»8w»#°»BÔ»¼4¼4D¼y¼‹¼“¼Y›¼õ¼½,½K½]½n½
Œ½š½d¬½?¾4Q¾D†¾Ë¾>è¾;'¿:c¿'ž¿'Æ¿Mî¿<À
+\À2gÀIšÀäÀ$öÀÁ$-Á@RÁ1“ÁQÅÁ<Â/TÂ4„Â=¹ÂH÷ÂO@Ã,�Ã(½Ã0æÃÄ#*ÄNÄ3bÄ$–Ä6»Ä6òÄ-)ÅWÅiÅ$‡Å4¬Å&áÅ*Æ)3Æ]ÆHoÆ¸ÆÊÆÜÆîÆÇÇ9ÇWÇjÇ{Ç�Ç”ÇM�ÇëÇøÇ
È$È(*È2SÈ†È•È¦È!¼ÈÞÈõÈ	É(ÉDÉcÉ}É’É!­É9ÏÉ	ÊÊ2ÊJÊ%jÊq�ÊÁËÄË5ãËGÌ8aÌšÌªÌ¼ÌÎÌÕÌ*ÜÌ3Í1;Í!mÍ=�Í-ÍÍ,ûÍ#(ÎMLÎYšÎRôÎRGÏXšÏAóÏ:5ÐspÐVäÐ;ÑYÑKyÑ	ÅÑ!ÏÑ™ñÑ7‹ÒÃÒ/ÕÒ*Ó0ÓBÓIÓPÓ8cÓœÓ3®ÓâÓÿÓÔ6Ô"MÔ#pÔ3”Ô/ÈÔ3øÔ/,Õ\Õ#{Õ3ŸÕ/ÓÕ%Ö5)Ö=_Ö9�Ö3×Ö/×$;× `×�×+—×1Ã×!õ×Ø)6Ø$`Ø3…Ø¹Ø7ÓØ!Ù-Ù!GÙiÙ#}Ù$¡Ù(ÆÙ3ïÙ&#ÚJÚ\ÚqÚ#ŽÚ²ÚÅÚäÚ"ùÚ2Û/OÛ6Û+¶Û`âÛCÜ2IÜZ|ÜZ×Ü?2ÝTrÝÇÝ2ßÝhÞ{Þk�ÞsùÞAmß(¯ßØßñß5
à#CàHgà0°àáàWêà”Bá8×á>âOâ5lâ¢â¾âÆâàâøâã#-ãQã,]ã"Šã8­ã%æã#ä.0ä_ä`qä]ÒäY0å\ŠåMçå[5æI‘æFÛæT"ç?wç@·çKøçYDèSžèQòèHDé‡�ébêZxêLÓê_ ëZ€ë{Ûë7WìA�ì/Ñì/í01íHbíZ«í0îx7î]°î~ï8�ï8ÆïsÿïTsð/Èð1øðO*ñOzñNÊñCòl]òWÊò1"ó»Tó'ô8ôJô\ôDtô2¹ô=ìôR*õ}õ…õ¥õ¾õÙõñõ!öu-ö£öB¶öYùöYS÷<­÷tê÷o_øBÏøRù2eù)˜ù'Âùêù&úS*úG~ú@ÆúPûXûjû‡û¢û"´û×ûôûüü-ü@ü_ü~ü‘ü"£ü6Æü7ýü65ýlý‰ý>¨ý<çý<$þ<aþ	žþ	¨þ
+²þ
+½þÈþßþîþÿÿ4ÿ&Lÿ<sÿ°ÿ8Íÿ3*:$eŠ#�GÁr	K|)ÈgòhZKÃFIVd zz€QûNM>œOÛG+:sL®GûQCn•LnQSÀd	[y	XÕ	Z.
++‰
+Fµ
+Cü
+D@1…2·5ê+ rL[¿J
%f
TŒ
=á
'3G\{JØI#Jm5¸#îW/0‡b¸$C@>„Ã>Ï34B,w&¤0ËYüDV›ªºÓçú
@*?kC«!ï&y8²RÎ!5A:w²ÂëÓß¿"Ÿ Â/ãIJ]9¨_âBYo†î“	‚9Œ9Æ()8D`ofÖÚEõm;(©Ò;Ø@FUœ¨´:Ô	/E]s‹¤ÃÕèÿY b "f /‰ ¹ IÒ &!-C!Cq!µ!Í!ä!ð!="F"Y"m"�"”"§"�¶"#8#S\#a°#$%$=$F]$=¤$â$ê$+ó$%/%S>%’%°%Ð%à%Fô%=;&Dy&?¾&4þ&=3'"q'6”'Ë'8Ø'%($7(\(d(~(:Ž(É(6ç():)U))a)‹)«)Ê)"æ)	*A$*#f*Š*Ÿ*±*Ä*Ø*ì*++28+:k+M¦+@ô+‹5,�Á,@_-S -Eô-.:.:i.?¤./ä./(//FX/IŸ/Ié/I30A}01¿0<ñ0N.1E}1JÃ1p2"2#¢2Æ2-Ê2¥¾–¹îŠÓ¢ílbÝåRøª#ðÕYš™+ÊÇÁI{¦bO5�;Ä•ä3	ßn^k|´DçX˜B``ºt÷Xæ#ÇOFZFy§e¸þqº?®_l¨†¤ˆFQD+›ßæ(¹ÿ	?¹ø¼žw@{MHïµýÄÛÍ,\�%dÍBJŒŒû­^ƒ<¨å¦�…}2�jß.dž“˜MýUÄ²«�Ž¡õ¦BÚjp‚�P÷Á
çèiäQÀÛSÉ[}ši¶hÛÔ½•7iÿß$-Î¤YŽÈ¤�ë°·òûv¯b2—XGmÀ°ãÞ´WçYPwˆòs¾|¥àö~‡—S�HÊ³ÚOJ�düÈã“{U7qá%w~�œêÞªÜãa×œ‰Às±©‡\€Mq Ð§p„ö¢Þ±²"÷¯=¾Ì)©×:j™¸�\Œ›Rã.�RT:­œP`!,‰\žÌsÀÝtgL£"�.KÏ!wˆ½àÆOþŠ€~Ó„%=žš|èúP–Ø|eG.°¼žï„UûTL�Ãª]î’V¢›_©Ô4[�Ê¨ ¬ïêLOØå$‚�Òâ1gRíºéó(N>©çíŠt‹c'�/¶Ç$«š�Ó¯6™UhàwHêA	@§q€Â:…(F)Ùå½‡Ó^0ŸÒNÆÑsLyY„¥¼aq>P4’½oæŸ~ÛÂ>šOŸ/IêÆí[ è
+A`Dól€‚ìW�ÜÅ³I±	áüÑ¤vf0ñ§0°CÄ?Æ¼ua�ûÜµ¥«m2�/®^«(ZtÕìulàzÁ…nNÂÑþ½¥ŸÙˆ'±–fMQ	¾›}Z‚¡·“�Ûó¡Áý“‚ä­(›ë
±SfÆ%»Öý¤¶ÈHÙ}¯ÿá?TÍ´ @Ò‹#7/-ÂCjUåP—d'ê‘ýK ­nç<43y ßöØS¶o.ð1StZªÔÃVz
6‘�õøyuÈ*3Ecó8ZzxS'â®U^Õ_¤ôÍ‰¸ *™1Já&ŸŸÉ
+ñ.<­o=ô9’·`0H�T…’Ae·æáõÅ�¸$•;n,œÙªÙ"¿6Œ7²²‘”¡®*p¦¶1=”¸îùÅ¾.9ÞbËˆ�”‰Ë’åGÇ}?x*¿%ù¬–_‘Ü×¿kø¿_³Ö+lÅäV»6²b~'”Aâ‹’@~^dû´g<Ò¶†õì´y†¨€=J:ºC2ŽrgŠ°+â-|)ÔžÓ5HÊ•r�écJk“4ÔµSÙ›¿1˜]No&XfBÍ2"7ŽvNùø¥W8õc\UŠ‘!Œk†×ª”d‰I
+¬gÉ#>÷)(ƒî{&=µNµ±ïBRgL*«Xxr—¾+ÖoQ°e„xXfìº@È;RIG÷KŒèQräÁÈònÿ]·Ò¢RØØŽË^aq•ÆÎËo;]J·Ênâº—Á’ÇÁ`¼Fš“/;k+©öOÌÏ0ò<,”hÏñ[ÉÏ],»¡u9t×Ü%ÐM™¬YvèæNz¦A,9ÓDÿsE‡õMI«4©ú5Ý3�ì€x¸ ™a;‹s
—¿8i{�0Âöc;®Eü6úÝô‚ð“ë‰P€"*CÎ
+u™Ð‹#Kó:&…³'Y$Àù-DÚÖbz:»,¸:CñFœh¹
>ô³ñ§¯>2´H5£s8ã¯Eiv£Œör_p«8ç‰9WÐ9´g4~LEÚ˜r)ÑÅ?
+p(#Çvü!Ze²x=Ž7×Ð|{°‡†ñøÂMÌË½h|<mL9î•þ§Åz¯ôQ¡»þZôŠÍ·&¹ÉðÒ'‡
ãE+&ìTóý�E	§¶ <3ÃBAëÚê��Ëu$­$ÃÆf„]Ðƒ”3–m£5_¢5Ñûuújb5V³ÀƒDÝÃú]fmµëÖ#Þw³vc
+"•\ârVÜ8�ÊI›Qé&Ä
+òjxqmnÅ©CÈÏVà)¬®œ"�)ßÌÖ»ÎaiºëÂ¨¨£Êé>¤£}e4þÎ¥hk�äéW/c%D !06[ï½-ü¹—‘X†3ú‹ÉK*Vï2¾è±-˜@ÏÑ!Ga÷w\œžŸµ j[Äòh»m‚ª¼ÄÎ…K…®‘{¬Éš¨¦1Ã¬Kp?²6ŠÚé- G˜T dlÌ1Ô t‹!FÿŽàíe£y8G­ðËÃy¡BW¹„ùØƒzTÀAùÕ‡æiƒ˜–Õî}[ˆÕüWJÝC
ˆk@¿Yðl`Ûp†¦ƒ/áo¢	7¼–Ç¢íÞ	    TLS: %A	<corrupt: 0x%04lx>	Export Address Table 			Export Address Table 		%08lx
+	Invalid Export Address Table rva (0x%lx) or entry count (0x%lx)
+	Invalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)
+	Invalid Ordinal Table rva (0x%lx) or entry count (0x%lx)
+	Name Pointer Table 			Ordinal Table 				[%4ld] <corrupt offset: %lx>
+	[Name Pointer/Ordinal] Table	%08lx
 	code-base %08lx toc (loadable/actual) %08lx/%08lx
-	reloc %4d offset %4x [%4lx] %s	vma:  Hint/Ord Member-Name Bound-To
+	non-TLS: %A	reloc %4d offset %4x [%4lx] %s	vma:  Hint/Ord Member-Name Bound-To
 
-	DLL Name: %s
+	DLL Name: %.*s
 
 
 PE File Base Relocations (interpreted .reloc section contents)
@@ -70,8 +90,12 @@ PE File Base Relocations (interpreted .r
 
 Characteristics 0x%x
 
+Dump of %s
+
 Dynamic Section:
 
+Error: section %s contains the debug data starting address but it is too small
+
 Exec Auxiliary Header
 
 Export Address Table -- Ordinal Base %ld
@@ -89,20 +113,35 @@ Stack size for functions.  Annotations: 
 The Export Tables (interpreted %s section contents)
 
 
+The Function Table (interpreted %s section contents)
+
 The Function Table (interpreted .pdata section contents)
 
 The Import Tables (interpreted %s section contents)
 
+There is a debug directory in %s at 0x%lx
+
+
+There is a debug directory in %s, but that section has no contents
+
+There is a debug directory, but the section containing it could not be found
+
 There is a first thunk, but the section containing it could not be found
 
 There is an export table in %s at 0x%lx
 
 There is an export table in %s, but it does not fit into that section
 
+There is an export table in %s, but it is too small (%d)
+
+There is an export table in %s, but that section has no contents
+
 There is an export table, but the section containing it could not be found
 
 There is an import table in %s at 0x%lx
 
+There is an import table in %s, but that section has no contents
+
 There is an import table, but the section containing it could not be found
 
 Version References:
@@ -111,14 +150,18 @@ Version definitions:
 
 Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld
 
+WARNING: Extra data in .rsrc section - it will be ignored by Windows:
+
 [Ordinal/Name Pointer] Table
 
 ppcboot header:
         pc: 0x%08x
     *unhandled* cmd %u
+    address: 0x%08x
     address: 0x%08x, size: %u
     flags: %u, address: 0x%08x, pd-address: 0x%08x
     global name: %.*s
+    len: %u bits
     linkage index: %u, replacement insn: 0x%08x
     name: %.*s
     pc: 0x%08x
@@ -128,8 +171,10 @@ ppcboot header:
     psect idx 3: %u, offset 3: 0x%08x %08x
     psect: %u, offset: 0x%08x %08x
     routine name: %.*s
-   %02u    %s%s %s
-   (type: %3u, size: 4+%3u):    *unhandled* cmd %u
+   %02u    (type: %3u, size: 4+%3u):    *unhandled* cmd %u
+   Error: The length is less than the length of an EEOM record
+   Error: The length is less than the length of an EMH record
+   Error: length larger than remaining space in record
    alignment  : 2**%u
    alloc (len)   : %u (0x%08x)
    alloc (len): %u (0x%08x)
@@ -188,7 +233,6 @@ ppcboot header:
    vector      : 0x%08x
    version mask: 0x%08x
   %s (len=%u+%u):
-  %s: 0x%v
   %u: size: %u, flags: 0x%02x, name: %.*s
   EEOM (len=%u):
   EGSD (len=%u):
@@ -210,23 +254,22 @@ ppcboot header:
   shlextra  : %5u, permctx   : %5u
   shlstoff  : %5u, shrimgcnt : %5u
   size : %u
- #: Segment name     Section name     Address
- %08x 0x%08x 64B <EABI version unrecognised> BPAGE: %u COM COMM Change Protection (%u entries):
+  the input  file's flags: %s  the output file's flags: %s %08x 0x%08x 64B <EABI version unrecognised> BPAGE: %u COM COMM Change Protection (%u entries):
  Code Address Reference Fixups:
- DEF EXE First address : 0x%08x 0x%08x
+ DEF EXE FPU support required:  First address : 0x%08x 0x%08x
  Fourth address: 0x%08x 0x%08x
- GBL Glue code sequence LIB Linkage Pairs Referece Fixups:
- NOMOD NORM OVR PIC QVAL RD REL Register restore millicode Register save millicode SHR Second address: 0x%08x 0x%08x
+ GBL Glue code sequence LIB Linkage Pairs Reference Fixups:
+ NOMOD NORM OVR PIC QVAL RD REL Register restore millicode Register save millicode Resources start at offset: %#03x
+ SHR Second address: 0x%08x 0x%08x
  Shareable images:
  Shared image  : 0x%08x 0x%08x
+ String table starts at offset: %#03x
+ Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d
  Third address : 0x%08x 0x%08x
- UNI VEC VECEP WEAK WRT [64-bit doubles] [BE8] [FPA float format] [LE8] [Maverick float format] [VFP float format] [Version1 EABI] [Version2 EABI] [Version3 EABI] [Version4 EABI] [Version5 EABI] [abi unknown] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=O32] [abi=O64] [absolute position] [d-float] [dsp] [dynamic symbols use segment index] [fix dep] [floats passed in float registers] [floats passed in integer registers] [g-float] [has entry point] [interworking enabled] [interworking flag not initialised] [interworking not supported] [interworking supported] [mapping symbols precede others] [memory=bank-model] [memory=flat] [new ABI] [no abi set] [nonpic] [not 32bitmode] [old ABI] [pic] [position independent] [relocatable executable] [software FP] [sorted symbol table] [symbols have a _ prefix] [unknown ISA] [unsorted symbol table] [v10 and v32] [v32] corrupted GST
- cpusubtype: %08lx
- cputype   : %08lx (%s)
+ UNI VEC VECEP WEAK WRT [64-bit doubles] [BE8] [FPA float format] [LE8] [Maverick float format] [VFP float format] [Version1 EABI] [Version2 EABI] [Version3 EABI] [Version4 EABI] [Version5 EABI] [XGATE RAM offsetting] [abi unknown] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=O32] [abi=O64] [abiv%ld] [absolute position] [d-float] [dynamic symbols use segment index] [fix dep] [floats passed in float registers] [floats passed in integer registers] [g-float] [hard-float ABI] [interworking enabled] [interworking flag not initialised] [interworking not supported] [interworking supported] [mapping symbols precede others] [memory=bank-model] [memory=flat] [new ABI] [no abi set] [nonpic] [not 32bitmode] [old ABI] [pic] [position independent] [relocatable executable] [soft-float ABI] [software FP] [sorted symbol table] [symbols have a _ prefix] [unknown ISA] [unsorted symbol table] [v10 and v32] [v32] alignment of 8-byte entities:  corrupted GST
  debug module table : vbn: %u, size: %u
  debug symbol table : vbn: %u, size: %u (0x%x)
- filetype  : %08lx (%s)
- fixup info rva:  flags     : %08lx ( flags: 0x%04x global symbol table: vbn: %u, records: %u
+ fixup info rva:  flags: 0x%04x global symbol table: vbn: %u, records: %u
  ident: 0x%08x, name: %.*s
  ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u
  image build ident: %.*s
@@ -237,17 +280,13 @@ ppcboot header:
  linker flags: %08x: linker ident     : %.*s
  long-word .address reference fixups:
  long-word relocation fixups:
- magic     : %08lx
  majorid: %u, minorid: %u
  module offset: 0x%08x, size: 0x%08x, (%u psects)
- ncmds     : %08lx (%lu)
  offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u
  quad-word .address reference fixups:
  quad-word relocation fixups:
- reserved  : %08x
  section: base: 0x%08x%08x size: 0x%08x
- sizeofcmds: %08lx
- type: %3u, len: %3u (at 0x%08x):  unhandled EOBJ record type %u
+ size of doubles:  type: %3u, len: %3u (at 0x%08x):  unhandled EOBJ record type %u
  vbn: %u, pfc: %u, matchctl: %u type: %u ( vma:			Begin Address    End Address      Unwind Info
  vma:		Begin    End      EH       EH       PrologEnd  Exception
      		Address  Address  Handler  Data     Address    Mask
@@ -255,42 +294,102 @@ ppcboot header:
      		Address  Length   Length   32b exc  Handler   Data
  vma:            Hint    Time      Forward  DLL       First
                  Table   Stamp     Chain    Name      Thunk
-#<Invalid error code>%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections%A has both ordered and unordered sections%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)
+#<Invalid error code>%03x %*.s  Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d
+%03x %*.s Entry: %A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections%A has both ordered and unordered sections%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)
 %A:0x%v not found in function table
-%B (%s): Section flag %s (0x%x) ignored%B and %B are for different configurations%B and %B are for different cores%B contains CRIS v32 code, incompatible with previous objects%B contains non-CRIS-v32 code, incompatible with previous objects%B has has both the current and legacy Tag_MPextension_use attributes%B is not allowed to define %s%B section %A exceeds stub group size%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section%B(%A): error: call to undefined function '%s'%B(%A): internal error: dangerous relocation%B(%A): internal error: out of range error%B(%A): internal error: unknown error%B(%A): internal error: unsupported relocation error%B(%A): invalid property table%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)%B(%A): warning: unaligned access to symbol '%s' in the small data area%B(%A+0x%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link%B(%A+0x%lx): %s relocation against SEC_MERGE section%B(%A+0x%lx): %s relocation against external symbol "%s"%B(%A+0x%lx): %s used with TLS symbol %s%B(%A+0x%lx): %s used with non-TLS symbol %s%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object%B(%A+0x%lx): Stabs entry has invalid string index.%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section%B(%A+0x%lx): cannot handle %s for %s%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch%B(%A+0x%lx): could not decode instruction; possible configuration mismatch%B(%A+0x%lx): invalid instruction for TLS relocation %s%B(%A+0x%lx): reloc against `%s': error %d%B(%A+0x%lx): relocation offset out of range (size=0x%x)%B(%A+0x%lx): unexpected fix for %s relocation%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'%B(%A+0x%lx): unresolvable relocation against symbol `%s'%B(%A+0x%lx):unexpected ARM instruction '0x%x' in TLS trampoline%B(%A+0x%lx):unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC%B(%A+0x%lx):unexpected Thumb instruction '0x%x' in TLS trampoline%B(%A+0x%lx):unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete
+%B (%s): Section flag %s (0x%x) ignored%B and %B are for different configurations%B and %B are for different cores%B contains CRIS v32 code, incompatible with previous objects%B contains non-CRIS-v32 code, incompatible with previous objects%B has has both the current and legacy Tag_MPextension_use attributes%B is not allowed to define %s%B section %A exceeds stub group size%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section%B uses unknown e_flags 0x%lx%B(%#x): error: Cannot create STM32L4XX veneer. Jump out of range by %ld bytes. Cannot encode branch instruction. %B(%A): error: call to undefined function '%s'%B(%A): internal error: dangerous relocation%B(%A): internal error: out of range error%B(%A): internal error: unknown error%B(%A): internal error: unsupported relocation error%B(%A): invalid property table%B(%A): multiple TLS models are not supported%B(%A): relocation %d has invalid symbol index %ld%B(%A): shared library symbol %s encountered whilst performing a static link%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)%B(%A): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction.%B(%A): warning: unaligned access to symbol '%s' in the small data area%B(%A): warning: unaligned small data access of type %d.%B(%A+0x%%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link%B(%A+0x%lx): %s relocation against SEC_MERGE section%B(%A+0x%lx): %s relocation against external symbol "%s"%B(%A+0x%lx): %s used with TLS symbol %s%B(%A+0x%lx): %s used with non-TLS symbol %s%B(%A+0x%lx): CMEM relocation to `%s' is invalid, 16 MSB should be 0x%04x (value is 0x%lx)%B(%A+0x%lx): CMEM relocation to `%s+0x%lx' is invalid, 16 MSB should be 0x%04x (value is 0x%lx)%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object%B(%A+0x%lx): R_METAG_TLS_LE/IENONPIC relocation not permitted in shared object%B(%A+0x%lx): R_NIOS2_TLS_LE16 relocation not permitted in shared object%B(%A+0x%lx): Stabs entry has invalid string index.%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section%B(%A+0x%lx): cannot handle %s for %s%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch%B(%A+0x%lx): could not decode instruction; possible configuration mismatch%B(%A+0x%lx): error: multiple load detected in non-last IT block instruction : STM32L4XX veneer cannot be generated.
+Use gcc option -mrestrict-it to generate only one instruction per IT block.
+%B(%A+0x%lx): expected 16A style relocation on 0x%08x insn%B(%A+0x%lx): expected 16D style relocation on 0x%08x insn%B(%A+0x%lx): invalid instruction for TLS relocation %s%B(%A+0x%lx): reloc against `%s': error %d%B(%A+0x%lx): relocation offset out of range (size=0x%x)%B(%A+0x%lx): unexpected ARM instruction '0x%x' in TLS trampoline%B(%A+0x%lx): unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC%B(%A+0x%lx): unexpected Thumb instruction '0x%x' in TLS trampoline%B(%A+0x%lx): unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC%B(%A+0x%lx): unexpected fix for %s relocation%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'%B(%A+0x%lx): unresolvable relocation against symbol `%s'%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete
 %B(%s): warning: interworking not enabled.
   first occurrence: %B: ARM call to Thumb%B(%s): warning: interworking not enabled.
   first occurrence: %B: Thumb call to ARM%B(%s): warning: interworking not enabled.
   first occurrence: %B: arm call to thumb%B(%s): warning: interworking not enabled.
-  first occurrence: %B: thumb call to arm%B(%s): warning: interworking not enabled.
   first occurrence: %B: thumb call to arm
   consider relinking with --support-old-code enabled%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'%B, section %A:
   relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC%B, section %A:
   relocation %s should not be used in a shared object; recompile with -fPIC%B, section %A:
-  v10/v32 compatible object %s must not contain a PIC relocation%B, section %A: No PLT for relocation %s against symbol `%s'%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?%B, section %A: relocation %s is not allowed for global symbol: `%s'%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?%B, section %A: relocation %s with no GOT created%B, section %A: relocation %s with non-zero addend %d against local symbol%B, section %A: relocation %s with non-zero addend %d against symbol `%s'%B, section %A: unresolvable relocation %s against symbol `%s'%B, section `%A', to symbol `%s':
-  relocation %s should not be used in a shared object; recompile with -fPIC%B: !samegp reloc against symbol without .prologue: %s%B: %A+0x%lx: Direct jumps between ISA modes are not allowed; consider recompiling with interlinking enabled.%B: %s: invalid needed version %d%B: %s: invalid version %u (max %d)%B: '%s' accessed both as normal and thread local symbol%B: .got subsegment exceeds 64K (size %d)%B: .opd is not a regular array of opd entries%B: .preinit_array section is not allowed in DSO%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32%B: 0x%lx: fatal: reloc overflow while relaxing%B: 0x%lx: fatal: unaligned %s relocation 0x%lx%B: 0x%lx: fatal: unaligned branch target for relax-support relocation%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x%B: 0x%lx: warning: bad R_SH_USES load offset%B: 0x%lx: warning: bad R_SH_USES offset%B: 0x%lx: warning: bad count%B: 0x%lx: warning: could not find expected COUNT reloc%B: 0x%lx: warning: could not find expected reloc%B: 0x%lx: warning: symbol in unexpected section%B: @gprel relocation against dynamic symbol %s%B: @internal branch to dynamic symbol %s%B: @pcrel relocation against dynamic symbol %s%B: ABI is incompatible with that of the selected emulation%B: ABI mismatch: linking %s module with previous %s modules%B: ASE mismatch: linking %s module with previous %s modules%B: Architecture mismatch with previous modules%B: BE8 images only valid in big-endian mode.%B: Bad relocation record imported: %d%B: CALL15 reloc at 0x%lx not against global symbol%B: CALL16 reloc at 0x%lx not against global symbol%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000).%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch.%B: Cannot handle compressed Alpha binaries.
-   Use compiler flags, or objZ, to generate uncompressed binaries.%B: Cannot link together %s and %s objects.%B: Corrupt size field in group section header: 0x%lx%B: Failed to add renamed symbol %s%B: Function descriptor relocation with non-zero addend%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d%B: GOT overflow: Number of relocations with 8-bit offset > %d%B: GOT reloc at 0x%lx not expected in executables%B: IMPORT AS directive for %s conceals previous IMPORT AS%B: Instruction set mismatch with previous modules%B: Invalid relocation type imported: %d%B: Malformed reloc detected for section %s%B: Not enough room for program headers, try linking with -N%B: Only registers %%g[2367] can be declared using STT_REGISTER%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive%B: Relocation %s (%d) is not currently supported.
-%B: Relocations in generic ELF (EM: %d)%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined%B: TLS local exec code cannot be linked into shared objects%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed%B: The first section in the PT_DYNAMIC segment is not the .dynamic section%B: The target (%s) of an %s relocation is in the wrong section (%A)%B: Too many sections: %d (>= %d)%B: Unable to sort relocs - they are in more than one size%B: Unable to sort relocs - they are of an unknown size%B: Unhandled import type; %x%B: Unknown mandatory EABI object attribute %d%B: Unknown relocation type %d
+  v10/v32 compatible object %s must not contain a PIC relocation%B, section %A: No PLT for relocation %s against symbol `%s'%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?%B, section %A: relocation %s is not allowed for `%s', a global symbol with default visibility, perhaps a declaration mixup?%B, section %A: relocation %s is not allowed for global symbol: `%s'%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?%B, section %A: relocation %s with no GOT created%B, section %A: relocation %s with non-zero addend %d against local symbol%B, section %A: relocation %s with non-zero addend %d against symbol `%s'%B, section %A: unresolvable relocation %s against symbol `%s'%B, section `%A', to symbol `%s':
+  relocation %s should not be used in a shared object; recompile with -fPIC%B: !samegp reloc against symbol without .prologue: %s%B: %A invalid input section size%B: %A not in order%B: %A points past end of text section%B: %A+%#Lx: No symbol found for INHERIT%B: %A+0x%lx: warning: %s relocation against unexpected insn%B: %A+0x%lx: warning: LITERAL relocation against unexpected insn%B: %A: reloc overflow: 0x%lx > 0xffff%B: %s not absolute%B: %s' accessed both as normal and thread local symbol%B: %s: invalid needed version %d%B: %s: invalid version %u (max %d)%B: %s: reloc overflow: 0x%lx > 0xffff%B: '%s' accessed both as normal and thread local symbol%B: --in-implib only supported for Secure Gateway import libraries.%B: .gnu.version_d invalid entry%B: .gnu.version_r invalid entry%B: .got subsegment exceeds 64K (size %d)%B: .opd is not a regular array of opd entries%B: .preinit_array section is not allowed in DSO%B: .rsrc merge failure: corrupt .rsrc section%B: .rsrc merge failure: unexpected .rsrc size%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32%B: 0x%lx: fatal: reloc overflow while relaxing%B: 0x%lx: fatal: unaligned %s relocation 0x%lx%B: 0x%lx: fatal: unaligned branch target for relax-support relocation%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insn 0x%x%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insns%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc 0x%lx%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insn 0x%x%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insns%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized reloc%B: 0x%lx: warning: bad R_SH_USES load offset%B: 0x%lx: warning: bad R_SH_USES offset%B: 0x%lx: warning: bad count%B: 0x%lx: warning: could not find expected COUNT reloc%B: 0x%lx: warning: could not find expected reloc%B: 0x%lx: warning: symbol in unexpected section%B: @gprel relocation against dynamic symbol %s%B: @internal branch to dynamic symbol %s%B: @pcrel relocation against dynamic symbol %s%B: ABI is incompatible with that of the selected emulation%B: ABI is incompatible with that of the selected emulation:
+  target emulation `%s' does not match `%s'%B: ABI mismatch: linking %s module with previous %s modules%B: ABI version %ld is not compatible with ABI version %ld output%B: ASE mismatch: linking %s module with previous %s modules%B: Architecture mismatch with previous modules%B: BE8 images only valid in big-endian mode.%B: Bad relocation record imported: %d%B: Bad symbol definition: `Main' set to %s rather than the start address %s
+%B: CALL15 reloc at 0x%lx not against global symbol%B: CALL16 reloc at 0x%lx not against global symbol%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000).%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch.%B: Cannot handle compressed Alpha binaries.
+   Use compiler flags, or objZ, to generate uncompressed binaries.%B: Cannot link together %s and %s objects.%B: Data Directory size (%lx) exceeds space left in section (%lx)%B: EF_OR1K_NODELAY flag mismatch with previous modules%B: Error: Debug Data ends beyond end of debug directory.%B: Error: multiple definition of `%s'; start of %s is set in a earlier linked file
+%B: Error: search_nds32_elf_blank reports wrong node
+%B: Failed to add renamed symbol %s%B: Failed to find info section for section %d%B: Failed to find link section for section %d%B: Failed to read debug data section%B: Function descriptor relocation with non-zero addend%B: GAS error: unexpected PTB insn with R_SH_PT_16%B: GNU_MBIN section `%A' has invalid sh_info field: %d%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d%B: GOT overflow: Number of relocations with 8-bit offset > %d%B: GOT reloc at 0x%lx not expected in executables%B: IMPORT AS directive for %s conceals previous IMPORT AS%B: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte%B: Instruction set mismatch with previous modules%B: Internal inconsistency error for value for
+ linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx
+%B: Invalid relocation type exported: %d%B: Invalid relocation type imported: %d%B: Invalid sh_link field (%d) in section number %d%B: LOCAL directive: Register $%ld is not a local register.  First global register is $%ld.%B: Local symbol descriptor table be NULL when applying relocation %s against local symbol%B: Malformed reloc detected for section %A%B: Malformed reloc detected for section %s%B: Nested OMIT_FP in %A.%B: No core to allocate a symbol %d bytes long
+%B: No core to allocate section name %s
+%B: No symbol version section for versioned symbol `%s'%B: Not enough memory to allocate space for %lu symbols%B: Not enough room for program headers, try linking with -N%B: Only registers %%g[2367] can be declared using STT_REGISTER%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive%B: Relocation %s (%d) is not currently supported.
+%B: Relocation %s is not yet supported for symbol %s.%B: Relocations in generic ELF (EM: %d)%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined%B: SHT_GROUP section [index %d] has no SHF_GROUP sections%B: Special symbol `%s' only allowed for ARMv8-M architecture or later.%B: TLS local exec code cannot be linked into shared objects%B: TLS sections are not adjacent:%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed%B: TOC reloc at 0x%x to symbol `%s' with no TOC entry%B: The first section in the PT_DYNAMIC segment is not the .dynamic section%B: The target (%s) of an %s relocation is in the wrong section (%A)%B: Too many sections: %d (>= %d)%B: Unable to sort relocs - they are in more than one size%B: Unable to sort relocs - they are of an unknown size%B: Unhandled import type; %x%B: Unknown architecture %s%B: Unknown mandatory ARC object attribute %d.%B: Unknown mandatory EABI object attribute %d%B: Unknown relocation type %d
 %B: Unknown section type in a.out.adobe file: %x
-%B: Unrecognised .directive command: %s%B: Unrecognised import name type; %x%B: Unrecognised import type; %x%B: Unrecognised machine type (0x%x) in Import Library Format archive%B: Unrecognized storage class %d for %s symbol `%s'%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s%B: Warning: Thumb BLX instruction targets thumb function '%s'.%B: Warning: bad `%s' option size %u smaller than its header%B: Warning: cannot determine the target function for stub section `%s'%B: XMC_TC0 symbol `%s' is class %d scnlen %d%B: `%s' accessed both as FDPIC and thread local symbol%B: `%s' accessed both as normal and FDPIC symbol%B: `%s' accessed both as normal and thread local symbol%B: `%s' has line numbers but no enclosing section%B: `%s' in loader reloc but not loader sym%B: `ld -r' not supported with PE MIPS objects
-%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d%B: bad pair/reflo after refhi
-%B: bad reloc address 0x%lx in section `%A'%B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A'%B: bad relocation section name `%s'%B: bad section length in ihex_read_section%B: bad string table size %lu%B: bad symbol index: %d%B: cannot create stub entry %s%B: change in gp: BRSGP %s%B: class %d symbol `%s' has no aux entries%B: compiled for a 64 bit system and target is 32 bit%B: compiled for a big endian system and target is little endian%B: compiled for a little endian system and target is big endian%B: compiled normally and linked with modules compiled with -mrelocatable%B: compiled with -mrelocatable and linked with modules compiled normally%B: could not find output section %A for input section %A%B: could not find output section %s%B: could not read contents of section `%A'
-%B: csect `%s' not in enclosing section%B: don't know how to handle OS specific section `%s' [0x%8x]%B: don't know how to handle allocated, application specific section `%s' [0x%8x]%B: don't know how to handle processor specific section `%s' [0x%8x]%B: don't know how to handle section `%s' [0x%8x]%B: dtp-relative relocation against dynamic symbol %s%B: duplicate export stub %s%B: duplicate section `%A' has different contents
+%B: Unmatched OMIT_FP in %A.%B: Unrecognised .directive command: %s%B: Unrecognised import name type; %x%B: Unrecognised import type; %x%B: Unrecognised machine type (0x%x) in Import Library Format archive%B: Unrecognized storage class %d for %s symbol `%s'%B: Unsupported transition from %s to %s%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s%B: Warning: Thumb BLX instruction targets thumb function '%s'.%B: Warning: bad `%s' option size %u smaller than its header%B: Warning: cannot determine the target function for stub section `%s'%B: Warning: thumb-1 mode PLT generation not currently supported%B: XCOFF shared object when not producing XCOFF output%B: XMC_TC0 symbol `%s' is class %d scnlen %d%B: __gp does not cover short data segment%B: `%A' offset of %ld from `%A' beyond the range of ADDIUPC%B: `%s' accessed both as FDPIC and thread local symbol%B: `%s' accessed both as normal and FDPIC symbol%B: `%s' accessed both as normal and thread local symbol%B: `%s' and its special symbol are in different sections.%B: `%s' has line numbers but no enclosing section%B: `%s' in loader reloc but not loader sym%B: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)%B: `ld -r' not supported with PE MIPS objects
+%B: absent standard symbol `%s'.%B: access beyond end of merged section (%ld)%B: addend -0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range%B: addend 0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range%B: address 0x%s out of range for Intel Hex file%B: aout header specifies an invalid number of data-directory entries: %d%B: attempt to emit contents at non-multiple-of-4 address 0x%lx
+%B: attempt to load strings from a non-string section (number %d)%B: attempt to mix FDPIC and non-FDPIC objects%B: attempt to write out unknown reloc type%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d%B: bad pair/reflo after refhi
+%B: bad reloc address 0x%lx in section `%A'%B: bad reloc symbol index (%#lx >= %#lx) for offset %#Lx in section `%A'%B: bad relocation section name `%s'%B: bad section length in ihex_read_section%B: bad string table size %lu%B: bad symbol index: %d%B: base-plus-offset relocation against register symbol: %s in %A%B: base-plus-offset relocation against register symbol: (unknown) in %A%B: can not represent section `%A' in a.out object file format%B: can not represent section `%A' in oasys%B: can not represent section for symbol `%s' in a.out object file format%B: can't link hard-float modules with soft-float modules%B: cannot allocate file name for file number %d, %d bytes
+%B: cannot create stub entry %s%B: cannot link fdpic object file into non-fdpic executable%B: cannot link non-fdpic object file into fdpic executable%B: change in gp: BRSGP %s%B: class %d symbol `%s' has no aux entries%B: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s%B: compiled as 32-bit object and %B is 64-bit%B: compiled as 64-bit object and %B is 32-bit%B: compiled for a 64 bit system and target is 32 bit%B: compiled for a big endian system and target is little endian%B: compiled for a little endian system and target is big endian%B: compiled normally and linked with modules compiled with -mrelocatable%B: compiled with %s and linked with modules compiled with %s%B: compiled with %s and linked with modules that use non-pic relocations%B: compiled with -mrelocatable and linked with modules compiled normally%B: corrupt size field in group section header: %#Lx%B: could not find output section %A for input section %A%B: could not read contents of section `%A'
+%B: could not write out added .cranges entries%B: could not write out sorted .cranges entries%B: csect `%s' not in enclosing section%B: direct GOT relocation %s against `%s' without base register can not be used when making a shared object%B: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object%B: directive LOCAL valid only with a register or absolute value%B: dtp-relative relocation against dynamic symbol %s%B: duplicate export stub %s%B: duplicate section `%A' has different contents
 %B: duplicate section `%A' has different size
-%B: endianness incompatible with that of the selected emulation%B: error: Cortex-A8 erratum stub is allocated in unsafe location%B: error: Cortex-A8 erratum stub out of range (input file too large)%B: error: VFP11 veneer out of range%B: error: unaligned relocation type %d at %08x reloc %p
-%B: error: unknown mandatory EABI object attribute %d%B: file class %s incompatible with %s%B: gp-relative relocation against dynamic symbol %s%B: hidden symbol `%s' in %B is referenced by DSO%B: hidden symbol `%s' isn't defined%B: ignoring duplicate section `%A'
-%B: illegal relocation type %d at address 0x%lx%B: illegal symbol index in reloc: %d%B: incompatible machine type. Output is 0x%x. Input is 0x%x%B: indirect symbol `%s' to `%s' is a loop%B: internal error in ihex_read_section%B: internal symbol `%s' in %B is referenced by DSO%B: internal symbol `%s' isn't defined%B: invalid SHT_GROUP entry%B: invalid link %lu for reloc section %s (index %u)%B: invalid relocation type %d%B: invalid string offset %u >= %lu for section `%s'%B: jump too far away
-%B: linking %s module with previous %s modules%B: linking 32-bit code with 64-bit code%B: linking 64-bit files with 32-bit files%B: linking UltraSPARC specific with HAL specific code%B: linking auto-pic files with non-auto-pic files%B: linking big-endian files with little-endian files%B: linking constant-gp files with non-constant-gp files%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double%B: linking files compiled for HCS12 with others compiled for HC12%B: linking little endian files with big endian files%B: linking non-pic code in a position independent executable%B: linking trap-on-NULL-dereference with non-trapping files%B: loader reloc in read-only section %A%B: loader reloc in unrecognized section `%s'%B: local symbol `%s' in %B is referenced by DSO%B: misplaced XTY_LD `%s'%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'.%B: no group info for section %A%B: non-pic code with imm relocation against dynamic symbol `%s'%B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the object file has no symbol table%B: pc-relative relocation against dynamic symbol %s%B: pc-relative relocation against undefined weak symbol %s%B: probably compiled without -fPIC?%B: protected symbol `%s' isn't defined%B: reloc %s:%d not in csect%B: reloc against a non-existant symbol index: %ld%B: relocation %s against %s `%s' can not be used when making a shared object%s%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC%B: relocation %s against symbol `%s' isn't supported in x32 mode%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s%B: relocation %s can not be used when making a shared object; recompile with -fPIC%B: relocation %s cannot be used when making a shared object%B: relocation R_386_GOTOFF against protected function `%s' can not be used when making a shared object%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object%B: relocation R_X86_64_GOTOFF64 against protected function `%s' can not be used when making a shared object%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend%B: relocation size mismatch in %B section %A%B: relocs in section `%A', but it has no contents%B: section %A lma %#lx adjusted to %#lx%B: section %s: string table overflow at offset %ld%B: section `%A' can't be allocated in segment %d%B: sh_link [%d] in section `%A' is incorrect%B: sh_link of section `%A' points to discarded section `%A' of `%B'%B: sh_link of section `%A' points to removed section `%A' of `%B'%B: size field is zero in Import Library Format header%B: speculation fixup to dynamic symbol %s%B: string not null terminated in ILF object file.%B: symbol `%s' has unrecognized csect type %d%B: symbol `%s' has unrecognized smclas %d%B: symbol `%s' required but not present%B: too many sections (%d)%B: tp-relative relocation against dynamic symbol %s%B: unable to fill in DataDictionary[12] because .idata$5 is missing%B: unable to fill in DataDictionary[1] because .idata$2 is missing%B: unable to fill in DataDictionary[1] because .idata$4 is missing%B: unable to fill in DataDictionary[9] because __tls_used is missing%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing%B: unable to find ARM glue '%s' for `%s'%B: unable to find THUMB glue '%s' for `%s'%B: unable to find VFP11 veneer `%s'%B: unable to get decompressed section %A%B: unable to initialize commpress status for section %s%B: unable to initialize decommpress status for section %s%B: undefined reference to symbol '%s'%B: undefined sym `%s' in .opd section%B: undefined symbol on R_PPC64_TOCSAVE relocation%B: unexpected ATN type %d in external part%B: unexpected redefinition of indirect versioned symbol `%s'%B: unexpected reloc type %u in .opd section%B: unexpected type after ATN%B: unhandled dynamic relocation against %s%B: unimplemented %s
-%B: unimplemented ATI record %u for symbol %u%B: unknown [%d] section `%s' in group [%s]%B: unknown relocation type %d%B: unknown/unsupported relocation type %d%B: unrecognized relocation (0x%x) in section `%A'%B: unsupported relocation type %i%B: unsupported relocation type %i
-%B: unsupported relocation type %s%B: unsupported relocation: ALPHA_R_GPRELHIGH%B: unsupported relocation: ALPHA_R_GPRELLOW%B: uses _-prefixed symbols, but writing file with non-prefixed symbols%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)%B: uses non-prefixed symbols, but writing file with _-prefixed symbols%B: version node not found for symbol %s%B: warning: COMDAT symbol '%s' does not match section name '%s'%B: warning: Empty loadable segment detected, is this intentional ?
-%B: warning: allocated section `%s' not in segment%B: warning: duplicate line number information for `%s'%B: warning: illegal symbol index %ld in line numbers%B: warning: illegal symbol index %ld in relocs%B: warning: line number table read failed%B: warning: linking PIC files with non-PIC files%B: warning: linking abicalls files with non-abicalls files%B: warning: selected VFP11 erratum workaround is not necessary for target architecture%B: warning: sh_link not set for section `%A'%B: warning: unknown EABI object attribute %d%B:%A%s exceeds overlay size
-%B:%A: Warning: deprecated Red Hat reloc %B:%d: Bad checksum in S-record file
+%B: dynamic object with no .loader section%B: encountered datalabel symbol in input%B: endianness incompatible with that of the selected emulation%B: entry function `%s' is empty.%B: entry function `%s' not output.%B: error: ABI mismatch with previous modules.%B: error: Alignment power %d of section `%A' is too big%B: error: Cannot create STM32L4XX veneer.%B: error: Cannot set _ITB_BASE_%B: error: Cortex-A8 erratum stub is allocated in unsafe location%B: error: Cortex-A8 erratum stub out of range (input file too large)%B: error: Erratum 835769 stub out of range (input file too large)%B: error: Erratum 843419 stub out of range (input file too large)%B: error: Instruction set mismatch with previous modules.%B: error: PHDR segment not covered by LOAD segment%B: error: VFP11 veneer out of range%B: error: non-load segment %d includes file header and/or program header%B: error: unaligned relocation type %d at %08x reloc %08x
+%B: error: unaligned relocation type %d at %08x reloc %p
+%B: error: unknown mandatory EABI object attribute %d%B: error: unknown relocation type %d.%B: failed to generate import library%B: fatal: generic symbols retrieved before relaxing%B: file class %s incompatible with %s%B: gp-relative relocation against dynamic symbol %s%B: hidden symbol `%s' in %B is referenced by DSO%B: hidden symbol `%s' isn't defined%B: ignoring duplicate section `%A'
+%B: illegal relocation type %d at address 0x%lx%B: illegal section name `%A'%B: illegal symbol index %ld in relocs%B: illegal symbol index in reloc: %d%B: incompatible machine type. Output is 0x%x. Input is 0x%x%B: incorrect size for symbol `%s'.%B: indirect symbol `%s' to `%s' is a loop%B: internal error in ihex_read_section%B: internal error, internal register section %A had contents
+%B: internal error, symbol table changed size from %d to %d words
+%B: internal symbol `%s' in %B is referenced by DSO%B: internal symbol `%s' isn't defined%B: invalid AVR reloc number: %d%B: invalid CR16C reloc number: %d%B: invalid CRIS reloc number: %d%B: invalid D10V reloc number: %d%B: invalid D30V reloc number: %d%B: invalid Epiphany reloc number: %d%B: invalid FR30 reloc number: %d%B: invalid FRV reloc number: %d%B: invalid IP2K reloc number: %d%B: invalid IQ2000 reloc number: %d%B: invalid LM32 reloc number: %d%B: invalid M32C reloc number: %d%B: invalid M32R reloc number: %d%B: invalid M68HC11 reloc number: %d%B: invalid M68HC12 reloc number: %d%B: invalid MEP reloc number: %d%B: invalid METAG reloc number: %d%B: invalid MMIX reloc number: %d%B: invalid MSP430 reloc number: %d%B: invalid MSP430X reloc number: %d%B: invalid MT reloc number: %d%B: invalid Moxie reloc number: %d%B: invalid NDS32 reloc number: %d%B: invalid OR1K reloc number: %d%B: invalid RL78 reloc number: %d%B: invalid RX reloc number: %d%B: invalid SHT_GROUP entry%B: invalid V850 reloc number: %d%B: invalid Visium reloc number: %d%B: invalid XGate reloc number: %d%B: invalid XTENSA reloc number: %d%B: invalid i960 reloc number: %d%B: invalid import library entry: `%s'.%B: invalid link %u for reloc section %s (index %u)%B: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)
+%B: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote
+%B: invalid mmo file: expected y = 0, got y = %d for lop_fixrx
+%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo
+%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc
+%B: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx
+%B: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d
+%B: invalid mmo file: file name for number %d was not specified before use
+%B: invalid mmo file: file number %d `%s', was already entered as `%s'
+%B: invalid mmo file: initialization value for $255 is not `Main'
+%B: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx
+%B: invalid mmo file: lop_end not last item in file
+%B: invalid mmo file: unsupported lopcode `%d'
+%B: invalid relocation type %d%B: invalid size field in group section header: %#Lx%B: invalid special symbol `%s'.%B: invalid standard symbol `%s'.%B: invalid start address for initialized registers of length %ld: 0x%lx%08lx
+%B: invalid string offset %u >= %lu for section `%s'%B: invalid symbol table: duplicate symbol `%s'
+%B: jump too far away
+%B: line number overflow: 0x%lx > 0xffff%B: linking %s module with previous %s modules%B: linking 32-bit code with 64-bit code%B: linking 64-bit files with 32-bit files%B: linking UltraSPARC specific with HAL specific code%B: linking auto-pic files with non-auto-pic files%B: linking big-endian files with little-endian files%B: linking constant-gp files with non-constant-gp files%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double%B: linking files compiled for HCS12 with others compiled for HC12%B: linking little endian files with big endian files%B: linking non-pic code in a position independent executable%B: linking trap-on-NULL-dereference with non-trapping files%B: loader reloc in read-only section %A%B: loader reloc in unrecognized section `%s'%B: local symbol `%s' in %B is referenced by DSO%B: misplaced XTY_LD `%s'%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'.%B: no group info for section %A%B: no initialized registers; section length 0
+%B: no symbol found for import library%B: no valid group sections found%B: non-pic code with imm relocation against dynamic symbol `%s'%B: non-zero symbol index (%#lx) for offset %#Lx in section `%A' when the object file has no symbol table%B: object size does not match that of target %B%B: out of memory creating name for empty section%B: out of memory in _bfd_elf_get_property%B: page size is too large (0x%x)%B: pc-relative relocation against dynamic symbol %s%B: pc-relative relocation against undefined weak symbol %s%B: plugin needed to handle lto object%B: probably compiled without -fPIC?%B: protected symbol `%s' isn't defined%B: register relocation against non-register symbol: %s in %A%B: register relocation against non-register symbol: (unknown) in %A%B: reloc %s:%d not in csect%B: reloc against a non-existent symbol index: %ld%B: relocatable link from %s to %s not supported%B: relocation %s against %s%s`%s' can not be used when making a shared object%s%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC%B: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC%B: relocation %s against symbol `%s' isn't supported in x32 mode%B: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC%B: relocation %s can not be used when making a shared object; recompile with -fPIC%B: relocation %s cannot be used when making a shared object%B: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object%B: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object%B: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend%B: relocation size mismatch in %B section %A%B: relocs in section `%A', but it has no contents%B: section %A lma %#Lx adjusted to %#Lx%B: section %A: string table overflow at offset %ld%B: section `%A' can't be allocated in segment %d%B: section group entry number %u is corrupt%B: sh_link [%d] in section `%A' is incorrect%B: sh_link of section `%A' points to discarded section `%A' of `%B'%B: sh_link of section `%A' points to removed section `%A' of `%B'%B: short data segment overflowed (0x%lx >= 0x400000)%B: size field is zero in Import Library Format header%B: speculation fixup to dynamic symbol %s%B: stack size specified and %s set%B: string not null terminated in ILF object file.%B: string too long (%d chars, max 65535)%B: support for local dynamic not implemented%B: symbol `%s' has unrecognized csect type %d%B: symbol `%s' has unrecognized smclas %d%B: symbol `%s' required but not present%B: taking the address of protected function '%s' cannot be done when making a shared library%B: the target (%s) of a %s relocation is in the wrong output section (%s)%B: too many initialized registers; section length %ld
+%B: too many sections (%d)%B: too many sections: %u%B: tp-relative relocation against dynamic symbol %s%B: unable to create fake empty section%B: unable to fill in DataDictionary[12] because .idata$5 is missing%B: unable to fill in DataDictionary[1] because .idata$2 is missing%B: unable to fill in DataDictionary[1] because .idata$4 is missing%B: unable to fill in DataDictionary[9] because __tls_used is missing%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing%B: unable to find ARM glue '%s' for `%s'%B: unable to find STM32L4XX veneer `%s'%B: unable to find THUMB glue '%s' for `%s'%B: unable to find VFP11 veneer `%s'%B: unable to find name for empty section%B: unable to get decompressed section %A%B: unable to initialize compress status for section %s%B: unable to initialize decompress status for section %s%B: unable to load COMDAT section name%B: undefined reference to symbol '%s'%B: undefined sym `%s' in .opd section%B: undefined symbol on R_PPC64_TOCSAVE relocation%B: unexpected ATN type %d in external part%B: unexpected redefinition of indirect versioned symbol `%s'%B: unexpected reloc type %u in .opd section%B: unexpected type after ATN%B: unhandled dynamic relocation against %s%B: unimplemented %s
+%B: unimplemented ATI record %u for symbol %u%B: unknown load command 0x%lx%B: unknown relocation type %d%B: unknown relocation type %d for symbol %s%B: unknown type [%#x] section `%s'%B: unknown type [%#x] section `%s' in group [%A]%B: unknown/unsupported relocation type %d%B: unrecognised Alpha reloc number: %d%B: unrecognised CR16 reloc number: %d%B: unrecognised CRX reloc number: %d%B: unrecognised I370 reloc number: %d%B: unrecognised MCore reloc number: %d%B: unrecognised MN10300 reloc number: %d%B: unrecognised MicroBlaze reloc number: %d%B: unrecognised PPC reloc number: %d%B: unrecognised PicoJava reloc number: %d%B: unrecognised SH reloc number: %d%B: unrecognised SPU reloc number: %d%B: unrecognised VAX reloc number: %d%B: unrecognized relocation (0x%x) in section `%A'%B: unrecognized symbol `%s' flags 0x%x%B: unsupported non-PIC call to IFUNC `%s'%B: unsupported relocation type %i%B: unsupported relocation type %i
+%B: unsupported relocation type %s%B: unsupported relocation type 0x%02x%B: unsupported relocation: ALPHA_R_GPRELHIGH%B: unsupported relocation: ALPHA_R_GPRELLOW%B: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'
+%B: uses %s instructions while previous modules use %s instructions%B: uses _-prefixed symbols, but writing file with non-prefixed symbols%B: uses different e_flags (%#x) fields than previous modules (%#x)%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)%B: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)%B: uses instructions which are incompatible with instructions used in previous modules%B: uses non-prefixed symbols, but writing file with _-prefixed symbols%B: version count (%ld) does not match symbol count (%ld)%B: version node not found for symbol %s%B: visibility of symbol `%s' has changed.%B: warning core file truncated%B: warning: %A: line number overflow: 0x%lx > 0xffff%B: warning: %s points to unrecognized reloc at 0x%lx.%B: warning: %s relocation against symbol `%s' from %A section%B: warning: %s relocation to 0x%x from %A section%B: warning: %s: line number overflow: 0x%lx > 0xffff%B: warning: COMDAT symbol '%s' does not match section name '%s'%B: warning: Empty loadable segment detected at vaddr=%#Lx, is this intentional?%B: warning: Endian mismatch with previous modules.%B: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld%B: warning: Incompatible elf-versions %s and  %s.%B: warning: Inconsistent ASEs between e_flags and .MIPS.abiflags%B: warning: Inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags%B: warning: Inconsistent ISA between e_flags and .MIPS.abiflags%B: warning: Inconsistent ISA extensions between e_flags and .MIPS.abiflags%B: warning: No symbol for section '%s' found%B: warning: Older version of object file encountered, Please recompile with current tool chain.%B: warning: PLT addend of %d to `%s' from %A section ignored%B: warning: Unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)%B: warning: allocated section `%s' not in segment%B: warning: cannot deal R_NDS32_25_ABS_RELA in shared mode.%B: warning: claims to have 0xffff relocs, without overflow%B: warning: duplicate line number information for `%s'%B: warning: illegal symbol in line number entry %d%B: warning: illegal symbol index %ld in relocs%B: warning: illegal symbol index 0x%lx in line number entry %d%B: warning: isymMax (%ld) is greater than ifdMax (%d)
+%B: warning: line number table read failed%B: warning: linking PIC files with non-PIC files%B: warning: linking abicalls files with non-abicalls files%B: warning: loop in section dependencies detected%B: warning: multiple dynamic symbol tables detected - ignoring the table in section %u%B: warning: multiple symbol tables detected - ignoring the table in section %u%B: warning: relocate SDA_BASE failed.%B: warning: segment alignment of %#Lx is too large%B: warning: selected STM32L4XX erratum workaround is not necessary for target architecture%B: warning: selected VFP11 erratum workaround is not necessary for target architecture%B: warning: sh_link not set for section `%A'%B: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d.  Only `Main' will be emitted.
+%B: warning: unaligned access to GOT entry.%B: warning: unaligned small data access. For entry: {%d, %d, %d}, addr = 0x%x, align = 0x%x.%B: warning: unknown EABI object attribute %d%B: will not resolve runtime TLS relocation%B:%A%s exceeds overlay size
+%B:%A: %s and %s must be in the same input section%B:%A: Warning: deprecated Red Hat reloc %B:%A: error: relocation references symbol %s which was removed by garbage collection.%B:%A: error: try relinking with --gc-keep-exported enabled.%B:%A: table %s missing corresponding %s%B:%A: table entry %s not word-aligned within table%B:%A: table entry %s outside table%B:%d: Bad checksum in S-record file
 %B:%d: Unexpected character `%s' in S-record file
+%B:%d: byte count %d too small
 %B:%d: unexpected character `%s' in Intel Hex file%B:%u: bad checksum in Intel Hex file (expected %u, found %u)%B:%u: bad extended address record length in Intel Hex file%B:%u: bad extended linear address record length in Intel Hex file%B:%u: bad extended linear start address length in Intel Hex file%B:%u: bad extended start address length in Intel Hex file%B:%u: unrecognized ihex type %u in Intel Hex file%C: warning: relocation to "%s" references a different segment
+%F%A: failed to align section
+%F%B: PC-relative offset overflow in GOT PLT entry for `%s'
+%F%B: PC-relative offset overflow in PLT entry for `%s'
+%F%B: branch displacement overflow in PLT entry for `%s'
 %F%P: already_linked_table: %E
+%F%P: auto overlay error: %E
+%F%P: can not build overlay stubs: %E
+%F%P: corrupt input: %B
 %F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can not be used when making an executable; recompile with -fPIE and relink with -pie
+%F: failed to create BND PLT .eh_frame section
+%F: failed to create BND PLT section
+%F: failed to create GNU property section
+%F: failed to create GOT PLT .eh_frame section
+%F: failed to create GOT PLT section
+%F: failed to create GOT sections
+%F: failed to create IBT-enabled PLT section
+%F: failed to create PLT .eh_frame section
+%F: failed to create VxWorks dynamic sections
+%F: failed to create ifunc sections
 %H __tls_get_addr lost arg, TLS optimization disabled
 %H arg lost __tls_get_addr, TLS optimization disabled
+%H: %s against `%T': error %d
+%H: %s for indirect function `%T' unsupported
+%H: %s references optimized away TOC entry
+%H: %s reloc against `%s': error %d
+%H: %s reloc against local symbol
+%H: %s reloc unsupported in shared libraries and PIEs.
+%H: %s used with TLS symbol `%T'
+%H: %s used with non-TLS symbol `%T'
 %H: R_FRV_FUNCDESC references dynamic symbol with nonzero addend
 %H: R_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addend
 %H: R_FRV_GETTLSOFF not applied to a call instruction
@@ -304,93 +403,85 @@ ppcboot header:
 %H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction
 %H: R_FRV_TLSMOFFHI not applied to a sethi instruction
 %H: R_FRV_TLSOFF_RELAX not applied to an ld instruction
+%H: call to `%T' lacks nop, can't restore toc; (-mcmodel=small toc adjust stub)
+%H: call to `%T' lacks nop, can't restore toc; recompile with -fPIC
 %H: cannot emit dynamic relocations in read-only section
 %H: cannot emit fixups in read-only section
+%H: error: %s against `%s' not a multiple of %u
+%H: error: %s not a multiple of %u
+%H: error: %s with unexpected instruction %x
+%H: fixup branch overflow
+%H: non-zero addend on %s reloc against `%s'
 %H: reloc against `%s' references a different segment
 %H: reloc against `%s': %s
+%H: relocation %s for indirect function %s unsupported
 %H: relocation references symbol not defined in the module
 %H: relocation to `%s+%v' may have caused the error above
+%H: toc optimization is not supported for %s instruction.
+%H: unresolvable %s against `%T'
+%H: unresolvable %s relocation against symbol `%s'
 %P%F: --relax and -r may not be used together
+%P%F: failed creating ex9.it %s hash table: %E
 %P%X: can not read symbols: %E
+%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC
 %P%X: read-only segment has dynamic relocations.
+%P: %B .opd not allowed in ABI version %d
+%P: %B: %s is not supported for `%T'
 %P: %B: cannot create stub entry %s
-%P: %B: relocation %s is not supported for symbol %s
 %P: %B: relocation %s is not yet supported for symbol %s
 %P: %B: the target (%s) of a %s relocation is in the wrong output section (%s)
 %P: %B: unexpected relocation type
+%P: %B: unknown relocation type %d for `%T'
 %P: %B: unknown relocation type %d for symbol %s
-%P: %B: warning: relocation against `%s' in readonly section `%A'.
-%P: %B: warning: relocation in readonly section `%A'.
-%P: %H: %s reloc against `%s': error %d
-%P: %H: %s reloc against local symbol
-%P: %H: %s relocation references optimized away TOC entry
-%P: %H: %s used with TLS symbol %s
-%P: %H: %s used with non-TLS symbol %s
-%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc
-%P: %H: error: %s not a multiple of %u
-%P: %H: non-zero addend on %s reloc against `%s'
-%P: %H: relocation %s for indirect function %s unsupported
-%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern
-%P: %H: unresolvable %s relocation against symbol `%s'
+%P: %B: warning: relocation against `%s' in readonly section `%A'
+%P: %B: warning: relocation in readonly section `%A'
 %P: %s not defined in linker created %s
-%P: %s offset too large for .eh_frame sdata4 encoding%P: DW_EH_PE_datarel unspecified for this architecture.
+%P: %s offset too large for .eh_frame sdata4 encoding%P: .eh_frame_hdr entry overflow.
+%P: .eh_frame_hdr refers to overlapping FDEs.
+%P: DW_EH_PE_datarel unspecified for this architecture.
+%P: FDE encoding in %B(%A) prevents .eh_frame_hdr table being created.
+%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation dropped.
 %P: alternate ELF machine code found (%d) in %B, expecting %d
 %P: bss-plt forced by profiling
 %P: bss-plt forced due to %B
 %P: can't build branch stub `%s'
 %P: can't find branch stub `%s'
-%P: cannot find opd entry toc for %s
-%P: copy reloc against `%s' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc
-%P: dynamic variable `%s' is zero size
+%P: cannot find opd entry toc for `%T'
+%P: copy reloc against `%T' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc
+%P: copy reloc against protected `%T' is dangerous
 %P: dynreloc miscount for %B, section %A
 %P: error in %B(%A); no .eh_frame_hdr table will be created.
-%P: fde encoding in %B(%A) prevents .eh_frame_hdr table being created.
-%P: linkage table error against `%s'
+%P: linkage table error against `%T'
 %P: long branch stub `%s' offset overflow
 %P: multiple entry points: in modules %B and %B
 %P: relocatable link is not supported
 %P: stubs don't match calculated size
+%P: symbol '%s' has invalid st_other for ABI version 1
 %P: warning: creating a DT_TEXTREL in a shared object.
+%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime
 %X%C: relocation to "%s" references a different segment
+%X%H: @local call to ifunc %s
+%X%H: Cannot convert branch between ISA modes to JALX: relocation out of range
+%X%H: Unsupported JALX to the same ISA mode
+%X%H: Unsupported branch between ISA modes
+%X%H: Unsupported jump between ISA modes; consider recompiling with interlinking enabled
+%X%H: unsupported bss-plt -fPIC ifunc %s
+%X%P: %B(%A): error: relocation for offset %V has no value
+%X%P: %B(%A): relocation "%R" goes out of range
+%X%P: %B(%A): relocation "%R" is not supported
+%X%P: %B(%A): relocation "%R" returns an unrecognized value %x
 %X%P: overlay section %A does not start on a cache line.
 %X%P: overlay section %A is larger than a cache line.
 %X%P: overlay section %A is not in cache area.
 %X%P: overlay sections %A and %A do not start at the same address.
+%X%P: stack/lrlive analysis error: %E
+%X%P: text relocations and GNU indirect functions will result in a segfault at runtime
 %X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B
 %s defined on removed toc entry%s duplicated
 %s duplicated in %s
-%s in overlay section%s(%s): relocation %d has invalid symbol index %ld%s: %s: reloc overflow: 0x%lx > 0xffff%s: 0x%v 0x%v
-%s: Bad symbol definition: `Main' set to %s rather than the start address %s
-%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file
-%s: GAS error: unexpected PTB insn with R_SH_PT_16%s: Internal inconsistency error for value for
- linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx
-%s: Invalid relocation type exported: %d%s: LOCAL directive: Register $%ld is not a local register.  First global register is $%ld.%s: Malformed reloc detected for section %s%s: No core to allocate a symbol %d bytes long
-%s: No core to allocate section name %s
-%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A%s: TLS definition in %B section %A mismatches non-TLS reference in %B%s: TLS reference in %B mismatches non-TLS definition in %B section %A%s: TLS reference in %B mismatches non-TLS reference in %B%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry%s: The target (%s) of an %s relocation is in the wrong section (%s)%s: XCOFF shared object when not producing XCOFF output%s: __gp does not cover short data segment%s: access beyond end of merged section (%ld)%s: address 0x%s out of range for Intel Hex file%s: base-plus-offset relocation against register symbol: %s in %s%s: base-plus-offset relocation against register symbol: (unknown) in %s%s: can not represent section `%s' in a.out object file format%s: can not represent section `%s' in oasys%s: can not represent section for symbol `%s' in a.out object file format%s: cannot allocate file name for file number %d, %d bytes
-%s: cannot create stub entry %s%s: cannot link fdpic object file into non-fdpic executable%s: cannot link non-fdpic object file into fdpic executable%s: compiled as 32-bit object and %s is 64-bit%s: compiled as 64-bit object and %s is 32-bit%s: compiled with %s and linked with modules compiled with %s%s: compiled with %s and linked with modules that use non-pic relocations%s: could not write out added .cranges entries%s: could not write out sorted .cranges entries%s: directive LOCAL valid only with a register or absolute value%s: dynamic object with no .loader section%s: encountered datalabel symbol in input%s: error: unaligned relocation type %d at %08x reloc %08x
-%s: illegal section name `%s'%s: internal error, internal register section %s had contents
-%s: internal error, symbol table changed size from %d to %d words
-%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)
-%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote
-%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx
-%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo
-%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc
-%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx
-%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d
-%s: invalid mmo file: file name for number %d was not specified before use
-%s: invalid mmo file: file number %d `%s', was already entered as `%s'
-%s: invalid mmo file: initialization value for $255 is not `Main'
-%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx
-%s: invalid mmo file: lop_end not last item in file
-%s: invalid mmo file: unsupported lopcode `%d'
-%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx
-%s: invalid symbol table: duplicate symbol `%s'
-%s: line number overflow: 0x%lx > 0xffff%s: no initialized registers; section length 0
-%s: no such symbol%s: not implemented%s: not supported%s: object size does not match that of target %s%s: register relocation against non-register symbol: %s in %s%s: register relocation against non-register symbol: (unknown) in %s%s: relocatable link from %s to %s not supported%s: short data segment overflowed (0x%lx >= 0x400000)%s: string too long (%d chars, max 65535)%s: too many initialized registers; section length %ld
-%s: undefined version: %s%s: unknown relocation type %d%s: unrecognized symbol `%s' flags 0x%x%s: unsupported relocation type 0x%02x%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'
-%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)%s: version count (%ld) does not match symbol count (%ld)%s: warning core file truncated%s: warning: %s relocation against symbol `%s' from %s section%s: warning: %s relocation to 0x%x from %s section%s: warning: %s: line number overflow: 0x%lx > 0xffff%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld%s: warning: PLT addend of %d to `%s' from %s section ignored%s: warning: illegal symbol index %ld in relocs%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d.  Only `Main' will be emitted.
-(at bit offset %u)
+%s in overlay section%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A%s: TLS definition in %B section %A mismatches non-TLS reference in %B%s: TLS reference in %B mismatches non-TLS definition in %B section %A%s: TLS reference in %B mismatches non-TLS reference in %B%s: no such symbol%s: not implemented%s: not supported%s: undefined version: %s(at bit offset %u)
 (descriptor)
+(format %c%c%c%c signature %s age %ld)
 (no value)
 (not active)
 (not allocated)
@@ -399,43 +490,59 @@ ppcboot header:
 )
 *** check this relocation %s*unhandled*
 *unhandled* dst type %u
-*unknown**unknown*        , alias: %u
+*unknown**unknown*        , Value: %#08lx
+, alias: %u
 , ext fixup offset: %u, no_opt psect off: %u, subtype: %u (%s)
-, symbol vector rva: .got section not immediately after .plt section32-bit double, 32bits gp relative relocation occurs for an external symbol64 bits *unhandled*
-64-bit double, : %u.%u
-: m32r instructions: m32r2 instructions: m32rx instructions; recompile with -fPIC<Unrecognised flag bits set><unknown>@pltoff reloc against local symbolArchive has no index; run ranlib to add oneArchive object file in wrong formatAttempt to convert L32R/CALLX to CALL failedAttempt to do relocatable link with %s input and %s outputBASE_IMAGE       BFD %s assertion fail %s:%dBFD %s internal error, aborting at %s line %d
-BFD %s internal error, aborting at %s line %d in %s
+, symbol vector rva: - %B is 64-bit, %B is not-mips32r2 -mfp64 (12 callee-saved).got section not immediately after .plt section.rsrc merge failure: a directory matches a leaf.rsrc merge failure: differing directory versions
+.rsrc merge failure: dirs with differing characteristics
+.rsrc merge failure: duplicate leaf.rsrc merge failure: duplicate leaf: %s.rsrc merge failure: duplicate string resource: %d.rsrc merge failure: multiple non-default manifests32-bit double, 32bits gp relative relocation occurs for an external symbol4-byte4-bytes64 bits *unhandled*
+64-bit double, 8-byte8-bytes: m32r instructions: m32r2 instructions: m32rx instructions: n1 instructions: n1h instructions; recompile with -fPIC<Unrecognised flag bits set><corrupt info> %s<corrupt string length: %#x>
+<corrupt string offset: %#lx>
+<corrupt><unknown directory type: %d>
+<unknown>@pltoff reloc against local symbolArchive has no index; run ranlib to add oneArchive object file in wrong formatAttempt to convert L32R/CALLX to CALL failedAttempt to do relocatable link with %s input and %s outputBASE_IMAGE       BFD %s assertion fail %s:%dBFD %s internal error, aborting at %s:%d
+BFD %s internal error, aborting at %s:%d in %s
 BFD Link Error: branch (PC rel16) to section (%s) not supportedBFD Link Error: jump (PC rel26) to section (%s) not supportedBad valueBase Relocation Directory [.reloc]Bound Import DirectoryBounds:
-CLICLR Runtime HeaderCLUSTERS_LOCKMGR COUNTERS         CPU              CTL_AUGRB (augment relocation base) %u
+Branch to a non-instruction-aligned addressCACHE use: CLICLR Runtime HeaderCLUSTERS_LOCKMGR COUNTERS         CPU              CTL_AUGRB (augment relocation base) %u
 CTL_DFLOC (define location)
 CTL_SETRB (set relocation base)
 CTL_STKDL (stack defined location)
 CTL_STLOC (set location)
-Copyright Header
-DIV usage mismatch between %B and %BDST__K_BEG_STMT_MODE not implementedDST__K_END_STMT_MODE not implementedDST__K_RESET_LINUM_INCR not implementedDST__K_SET_LINUM_INCR not implementedDST__K_SET_LINUM_INCR_W not implementedDST__K_SET_PC not implementedDST__K_SET_PC_L not implementedDST__K_SET_PC_W not implementedDST__K_SET_STMTNUM not implementedDebug DirectoryDebug module table:
+Cannot convert a branch to JALX for a non-word-aligned addressCannot convert a jump to JALX for a non-word-aligned addressCopyright Header
+Corrupt .rsrc section detected!
+Corrupt EGSD record: its size (%#x) is too smallCorrupt EGSD record: size (%#x) is larger than remaining space (%#x)Corrupt EGSD record: size (%#x) is too smallCorrupt ETIR record encounteredCorrupt vms valueDSO missing from command lineDST__K_BEG_STMT_MODE not implementedDST__K_END_STMT_MODE not implementedDST__K_RESET_LINUM_INCR not implementedDST__K_SET_LINUM_INCR not implementedDST__K_SET_LINUM_INCR_W not implementedDST__K_SET_PC not implementedDST__K_SET_PC_L not implementedDST__K_SET_PC_W not implementedDST__K_SET_STMTNUM not implementedDebug DirectoryDebug module table:
 Debug symbol table:
 Delay Import DirectoryDeprecated %s called
 Deprecated %s called at %s line %d in %s
-Description DirectoryDwarf Error: Bad abbrev number: %u.Dwarf Error: Can't find %s section.Dwarf Error: Could not find abbrev number %u.Dwarf Error: Invalid maximum operations per instruction.Dwarf Error: Invalid or unhandled FORM value: %u.Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu).Dwarf Error: Unhandled .debug_line version %d.Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'.Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information.Dwarf Error: mangled line number section (bad file number).Dwarf Error: mangled line number section.EIHD: (size: %u, nbr blocks: %u)
-Entry offset        = 0x%.8lx (%ld)
-Error reading %s: %sError: %B has both the current and legacy Tag_MPextension_use attributesErrors encountered processing file %sException Directory [.pdata]Export Directory [.edata (or where ever we found it)]Export Flags 			%lx
-Export RVAFAILED to find previous HI16 relocFILES_VOLUMES    File format is ambiguousFile format not recognizedFile in wrong formatFile too bigFile truncatedFlag field          = 0x%.2x
-Forwarder RVAGALAXY           GP relative relocation used when GP not definedGP relative relocation when _gp not definedGPDISP relocation did not find ldah and lda instructionsGlobal symbol table:
-IDC - Ident Consistency check
-IMAGE_ACTIVATOR  INPUT_SECTION_FLAGS are not supported.
+Description DirectoryDwarf Error: Can't find %s section.Dwarf Error: Could not find abbrev number %u.Dwarf Error: DW_AT_comp_dir attribute encountered with a non-string form.Dwarf Error: Info pointer extends beyond end of attributesDwarf Error: Invalid maximum operations per instruction.Dwarf Error: Invalid or unhandled FORM value: %#x.Dwarf Error: Line info data is bigger (0x%lx) than the section (0x%lx)Dwarf Error: Line info section is too small (%ld)Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu).Dwarf Error: Ran out of room reading opcodesDwarf Error: Ran out of room reading prologueDwarf Error: Unable to read alt ref %u.Dwarf Error: Unhandled .debug_line version %d.Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'.Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information.Dwarf Error: mangled line number section (bad file number).Dwarf Error: mangled line number section.EIHD: (size: %u, nbr blocks: %u)
+ERROR: Attempting to link %B with a binary %B of different architectureEntry function `%s' disappeared from secure code.Entry offset        = 0x%.8lx (%ld)
+Error reading %s: %sError: %B has both the current and legacy Tag_MPextension_use attributesError: The ARC4 architecture is no longer supported.
+Errors encountered processing file %BException Directory [.pdata]Export Directory [.edata (or where ever we found it)]Export Flags 			%lx
+Export RVAFAILED to find previous HI16 relocFILES_VOLUMES    FPU-2.0FPU-3.0Failed to update file offsets in debug directoryFile format is ambiguousFile format not recognizedFile in wrong formatFile too bigFile truncatedFlag field          = 0x%.2x
+Forwarder RVAGALAXY           GOT and PLT relocations cannot be fixed with a non dynamic linker.GP relative relocation used when GP not definedGP relative relocation when _gp not definedGPDISP relocation did not find ldah and lda instructionsGlobal symbol table:
+Hard float (32-bit CPU, 64-bit FPU)
+Hard float (32-bit CPU, Any FPU)
+Hard float (MIPS32r2 64-bit FPU 12 callee-saved)
+Hard float (double precision)
+Hard float (single precision)
+Hard float compat (32-bit CPU, 64-bit FPU)
+Hard or soft float
+ID: %#08lxIDC - Ident Consistency check
+IEEE parser: string length: %#lx longer than buffer: %#lxIMAGE_ACTIVATOR  INPUT_SECTION_FLAGS are not supported.
 IO               Image activation:  (size=%u)
 Image activator fixup: (major: %u, minor: %u)
 Image identification: (major: %u, minor: %u)
 Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)
 Image symbol & debug table: (major: %u, minor: %u)
-Import Address Table DirectoryImport Directory [parts of .idata]Internal inconsistency: remaining %u != max %u.
-  Please report this bug.Invalid TARGET2 relocation type '%s'.Invalid bfd targetInvalid operationInvalid section index in ETIRJALX to a non-word-aligned addressLOGICAL_NAMES    Language Processor Name
+Import Address Table DirectoryImport Directory [parts of .idata]Internal Error: RL78 reloc stack overflowInternal Error: RL78 reloc stack underflowInternal inconsistency: remaining %u != max %u.
+  Please report this bug.Invalid AArch64 reloc number: %dInvalid DLX reloc number: %dInvalid TARGET2 relocation type '%s'.Invalid bfd targetInvalid contents in %A sectionInvalid operationInvalid output section for .eh_frame_entry: %AInvalid section index in ETIRIt must be a global or weak function symbol.Jump to a non-instruction-aligned addressJump to a non-word-aligned addressLOGICAL_NAMES    Language Processor Name
 Length              = 0x%.8lx (%ld)
-Load Configuration DirectoryMEMORY_MANAGEMENTMIPS16 and microMIPS functions cannot call each otherMISC             MULTI_PROCESSING Mach-O header:
-Major/Minor 			%d/%d
+Linker: cannot init ex9 hash table error 
+Linker: error cannot fixed ex9 relocation 
+Load Configuration DirectoryLocal IFUNC function `%s' in %B
+MEMORY_MANAGEMENTMIPS16 and microMIPS functions cannot call each otherMISC             MMU use: MULTI_PROCESSING Major/Minor 			%d/%d
 Malformed archiveMaximum stack required is 0x%v
 MeP: howto %d has type %dMemory exhaustedModule header
-NETWORKS         NORMALName 				No errorNo more archived filesNo symbolsNonrepresentable section on outputNot enough memory to sort relocationsNumber in:
+NETWORKS         NORMALName 				No address assigned to the veneers output section %sNo errorNo more archived filesNo symbolsNoneNonrepresentable section on outputNot enough memory to sort relocationsNumber in:
 OPR_ADD (add)
 OPR_AND (logical and)
 OPR_ASH (arithmetic shift)
@@ -454,18 +561,18 @@ ppcboot header:
 OPR_SUB (substract)
 OPR_USH (unsigned shift)
 Object module NOT error-free !
-Ordinal Base 			%ld
+Offset of veneer for entry function `%s' not a multiple of its size.One possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined.Ordinal Base 			%ld
 Output file requires shared library `%s'
 Output file requires shared library `%s.so.%s'
-POSIX            PROCESS_SCHED    PRVFXDPRVPICPSC - Program section definition
+PC-relative load from unaligned addressPIE executablePOSIX            PROCESS_SCHED    PRVFXDPRVPICPSC - Program section definition
 PTA mismatch: a SHcompact address (bit 0 == 0)PTB mismatch: a SHmedia address (bit 0 == 1)Partition name      = "%s"
 Partition[%d] end    = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }
 Partition[%d] length = 0x%.8lx (%ld)
 Partition[%d] sector = 0x%.8lx (%ld)
 Please report this bug.
-R_BFIN_FUNCDESC references dynamic symbol with nonzero addendR_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addendR_FRV_TLSMOFFLO not applied to a setlo or setlos instruction
+RL78 ABI conflict: G10 file %B cannot be linked with %s file %BRL78 ABI conflict: cannot link %s file %B with %s file %BRL78 merge conflict: cannot link 32-bit and 64-bit objects togetherR_BFIN_FUNCDESC references dynamic symbol with nonzero addendR_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addendR_FRV_TLSMOFFLO not applied to a setlo or setlos instruction
 Reading archive file mod timestampReference to the far symbol `%s' using a wrong relocation may result in incorrect executionRegister %%g%d used incompatibly: %s in %B, previously %s in %BRegister section has contents
-Relocation for non-REL psectRemoving unused section '%s' in file '%B'ReservedResource Directory [.rsrc]SDA relocation when _SDA_BASE_ not definedSECURITY         SEC_RELOC with no relocs in section %sSH Error: unknown reloc type %dSHELL            SHRFXDSHRPICSPSC - Shared Image Program section def
+Relocation for non-REL psectRemoving unused section '%A' in file '%B'ReservedResource Directory [.rsrc]S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you must manually offset the address in your codeSDA relocation when _SDA_BASE_ not definedSECURITY         SEC_RELOC with no relocs in section %ASH Error: unknown reloc type %dSHELL            SHRFXDSHRPICSIMD use: SPSC - Shared Image Program section def
 STABLE           STA_CKARG (compare procedure argument)
 STA_GBL (stack global) %.*s
 STA_LI (stack literal)
@@ -508,28 +615,40 @@ ppcboot header:
 SYMG - Universal symbol definition
 SYMM - Global symbol definition with version
 SYMV - Vectored symbol definition
-SYSGEN           Section has no contentsSecurity DirectorySegments and Sections:
-Size error in section %sSource Files Header
+SYSGEN           Section has no contentsSecurity DirectorySize error in section %ASoft float
+Source Files Header
 Special DirectorySpurious ALPHA_R_BSR relocStack analysis will ignore the call from %s to %s
 Stack overflow (%d) in _bfd_vms_pushStack size for call graph root nodes.
-Stack underflow in _bfd_vms_popStrides:
+Stack underflow in _bfd_vms_popStart address of `%s' is different from previous link.Strides:
 Symbol %s not defined for fixups
-Symbol %s replaced by %s
-Symbol `%s' has differing types: %s in %B, previously REGISTER in %BSymbol `%s' has differing types: REGISTER in %B, previously %s in %BSymbol needs debug section which does not existSystem call errorTLS relocation invalid without dynamic sectionsTOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compilingTable Addresses
-Thread Storage Directory [.tls]Time/Date stamp 		%lx
+Symbol `%s' has differing types: %s in %B, previously REGISTER in %BSymbol `%s' has differing types: REGISTER in %B, previously %s in %BSymbol needs debug section which does not existSymbol should be absolute, global and refer to Thumb functions.System call errorTLS relocation invalid without dynamic sectionsTOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compilingTable Addresses
+The debug data size field in the data directory is too big for the sectionThe debug directory size is not a multiple of the debug directory entry size
+There is a conflict merging the ELF header flags from %BThread Storage Directory [.tls]Time/Date stamp 		%lx
 Title Text Header
-USRSTACKUnable to find equivalent output section for symbol '%s' from section '%s'Unexpected STO_SH5_ISA32 on local symbol is not handledUnexpected machine numberUnhandled OSF/1 core file section type %d
-Unhandled relocation %sUnknown EGSD subtype %dUnknown basic type %dUnknown reloc %sUnknown reloc %s + %sUnknown symbol in command %sUnrecognized INPUT_SECTION_FLAG %s
-Unrecognized TI COFF target id '0x%x'Unrecognized relocUnrecognized reloc type 0x%xUnsupported .stab relocationVOLATILE         Variable `%s' can only be in one of the small, zero, and tiny data regionsVariable `%s' cannot be in both small and tiny data regions simultaneouslyVariable `%s' cannot be in both small and zero data regions simultaneouslyVariable `%s' cannot be in both zero and tiny data regions simultaneouslyVariable `%s' cannot occupy in multiple small data regionsWarning, .pdata section size (%ld) is not a multiple of %d
-Warning: %B does not support interworking, whereas %B doesWarning: %B is truncated: expected core file size >= %lu, found: %lu.Warning: %B supports interworking, whereas %B does notWarning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64Warning: %B uses -msingle-float, %B uses -mdouble-floatWarning: %B uses -msingle-float, %B uses -mips32r2 -mfp64Warning: %B uses double-precision hard float, %B uses single-precision hard floatWarning: %B uses hard float, %B uses soft floatWarning: %B uses r3/r4 for small structure returns, %B uses memoryWarning: %B uses soft float, %B uses single-precision hard floatWarning: %B uses unknown floating point ABI %dWarning: %B uses unknown small structure return convention %dWarning: %B uses unknown vector ABI %dWarning: %B uses vector ABI "%s", %B uses "%s"Warning: %B: Conflicting platform configurationWarning: %B: Unknown EABI object attribute %dWarning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with itWarning: Clearing the interworking flag of %B due to outside requestWarning: Not setting interworking flag of %B since it has already been specified as non-interworkingWarning: RX_SYM reloc with an unknown symbolWarning: Writing section `%s' to huge (ie negative) file offset 0x%lx.Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %AWarning: alignment %u of symbol `%s' in %B is smaller than %u in %BWarning: fixup count mismatch
-Warning: gc-sections option ignoredWarning: size of symbol `%s' changed from %lu in %B to %lu in %BWarning: type of symbol `%s' changed from %d to %d in %BWarning: writing archive was slow: rewriting timestamp
-Writing updated armap timestamp[%u]: %u
-[%u]: Lower: %u, upper: %u
-[abi=16-bit int, [abi=32-bit int, [whose name is lost]\%B: Warning: Arm BLX instruction targets Arm function '%s'._bfd_vms_output_counted called with too many bytes_bfd_vms_output_counted called with zero bytesaddressaddress not word alignarsize: %u, a0: 0x%08x
+Too many GOT entries for -fpic, please recompile with -fPICToo many unwind codes (%ld)
+Try enabling relaxation to avoid relocation truncationsType                Size     Rva      Offset
+USRSTACKUnable to find equivalent output section for symbol '%s' from section '%s'Unable to reach %s (at 0x%08x) from the global pointer (at 0x%08x) because the offset (%d) is out of the allowed range, -32678 to 32767.
+Unable to read EIHS record at offset %#xUnexpected STO_SH5_ISA32 on local symbol is not handledUnexpected machine numberUnhandled OSF/1 core file section type %d
+Unhandled relocation %sUnknownUnknown EGSD subtype %dUnknown basic type %dUnknown reloc %sUnknown reloc %s + %sUnknown symbol in command %sUnknown: %xUnrecognised MIPS reloc number: %dUnrecognized INPUT_SECTION_FLAG %s
+Unrecognized TI COFF target id '0x%x'Unrecognized reloc type 0x%xUnsupported .stab relocationUnsupported CR16 relocation type: 0x%x
+VOLATILE         Variable `%s' can only be in one of the small, zero, and tiny data regionsVariable `%s' cannot be in both small and tiny data regions simultaneouslyVariable `%s' cannot be in both small and zero data regions simultaneouslyVariable `%s' cannot be in both zero and tiny data regions simultaneouslyVariable `%s' cannot occupy in multiple small data regionsVirtual size of .pdata section (%ld) larger than real size (%ld)
+Warning, .pdata section size (%ld) is not a multiple of %d
+Warning: %B does not support interworking, whereas %B doesWarning: %B is truncated: expected core file size >= %lu, found: %lu.Warning: %B supports interworking, whereas %B does notWarning: %B uses %s (set by %B), %B uses %sWarning: %B uses %s (set by %B), %B uses unknown MSA ABI %dWarning: %B uses %s (set by %B), %B uses unknown floating point ABI %dWarning: %B uses 64-bit long double, %B uses 128-bit long doubleWarning: %B uses AltiVec vector ABI, %B uses SPE vector ABIWarning: %B uses IBM long double, %B uses IEEE long doubleWarning: %B uses double-precision hard float, %B uses single-precision hard floatWarning: %B uses hard float, %B uses soft floatWarning: %B uses r3/r4 for small structure returns, %B uses memoryWarning: %B uses unknown MSA ABI %d (set by %B), %B uses %sWarning: %B uses unknown MSA ABI %d (set by %B), %B uses unknown MSA ABI %dWarning: %B uses unknown floating point ABI %d (set by %B), %B uses %sWarning: %B uses unknown floating point ABI %d (set by %B), %B uses unknown floating point ABI %dWarning: %B: Conflicting platform configurationWarning: %B: Conflicting platform configuration %s with %s.
+Warning: %B: Unknown ARC object attribute %d.Warning: %B: Unknown EABI object attribute %dWarning: %B: Unknown MSPABI object attribute %dWarning: %s section size (%ld) is not a multiple of %d
+Warning: %s section size (%ld) is smaller than virtual size (%ld)
+Warning: %s section size is zero
+Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with itWarning: Clearing the interworking flag of %B due to outside requestWarning: Not setting interworking flag of %B since it has already been specified as non-interworkingWarning: RL78_SYM reloc with an unknown symbolWarning: RX_SYM reloc with an unknown symbolWarning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %AWarning: alignment %u of symbol `%s' in %B is smaller than %u in %BWarning: fixup count mismatch
+Warning: gc-sections option ignoredWarning: size of symbol `%s' changed from %Lu in %B to %Lu in %BWarning: size of symbol `%s' changed from %lu in %B to %lu in %BWarning: symbol `%s' is both section and non-sectionWarning: type of symbol `%s' changed from %d to %d in %BWarning: unset or old architecture flags. 
+	       Use default machine.
+Warning: writing archive was slow: rewriting timestamp
+Writing updated armap timestampXGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you must manually offset the address, and possibly manage the page, in your code.[%u]: Lower: %u, upper: %u
+[abi=16-bit int, [abi=32-bit int, [whose name is lost]\%B: Warning: Arm BLX instruction targets Arm function '%s'._bfd_vms_output_counted called with too many bytes_bfd_vms_output_counted called with zero bytes`%s' refers to a non entry function.addressaddress not word alignarray descriptor:
+array, dim: %u, bitmap: arsize: %u, a0: 0x%08x
+atomic, type=0x%02x %s
 bad section index in %sbanked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)base: %u, pos: %u
-bfd_mach_o_canonicalize_symtab: unable to load symbolsbfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lubfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)bfd_mach_o_read_symtab_symbol: symbol "%s" is unsupported 'indirect' reference: setting to undefinedbfd_mach_o_read_symtab_symbol: symbol "%s" specified invalid section %d (max %lu): setting to undefinedbfd_mach_o_read_symtab_symbol: symbol "%s" specified invalid type field 0x%x: setting to undefinedbfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lubfd_mach_o_read_symtab_symbols: unable to allocate memory for symbolsbfd_mach_o_scan: unknown architecture 0x%lx/0x%lxbfd_pef_scan: unknown architecture 0x%lxblkbeg: address: 0x%08x, name: %.*s
+bfd_mach_o_canonicalize_symtab: unable to load symbolsbfd_mach_o_read_section_32: overlarge alignment value: 0x%x, using 32 insteadbfd_mach_o_read_section_64: overlarge alignment value: 0x%x, using 32 insteadbfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)bfd_mach_o_read_symtab_symbol: symbol "%s" specified invalid section %d (max %lu): setting to undefinedbfd_mach_o_read_symtab_symbol: symbol "%s" specified invalid type field 0x%x: setting to undefinedbfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lubfd_mach_o_read_symtab_symbols: unable to allocate memory for symbolsbfd_mach_o_scan: unknown architecture 0x%lx/0x%lxbfd_pef_scan: unknown architecture 0x%lxblkbeg: address: 0x%08x, name: %.*s
 blkend: size: 0x%08x
-cannot emit dynamic relocations in read-only sectioncannot emit fixups in read-only sectioncannot find EMH in first GST record
+cannot create stub entry %scannot emit dynamic relocations in read-only sectioncannot emit fixups in read-only sectioncannot find EMH in first GST record
 cannot handle R_MEM_INDIRECT reloc when using %s outputcannot read DMT
 cannot read DMT header
 cannot read DMT psect
@@ -548,75 +667,96 @@ ppcboot header:
 cannot read GST record header
 cannot read GST record length
 class: %u, dtype: %u, length: %u, pointer: 0x%08x
-corrupt %s section in %Bcould not locate special linker symbol __ctbpcould not locate special linker symbol __epcould not locate special linker symbol __gpcould not open shared image '%s' from '%s'cpu=HC11]cpu=HC12]cpu=HCS12]dangerous relocationdelta pc +%-4ddelta_pc_l: +0x%08x
+corrupt %s section in %Bcould not find section %scould not locate special linker symbol __ctbpcould not locate special linker symbol __epcould not locate special linker symbol __gpcould not open shared image '%s' from '%s'cpu=HC11]cpu=HC12]cpu=HCS12]cpu=XGATE]dangerous relocationdelta pc +%-4ddelta_pc_l: +0x%08x
 delta_pc_w %u
 descdimct: %u, aflags: 0x%02x, digits: %u, scale: %u
-discarded output section: `%A'discontiguous range (nbr: %u)
+discarded output section: `%A'discarding zero address range FDE in %B(%A).
+discontiguous range (nbr: %u)
 dynamic relocation in read-only sectiondynamic variable `%s' is zero sizeenumbeg, len: %u, name: %.*s
 enumelt, name: %.*s
 enumend
 epilog: flags: %u, count: %u
-error: %B contains a reloc (0x%s) for section %A that references a non-existent global symbolerror: %B does not use Maverick instructions, whereas %B doeserror: %B is already in final BE8 formaterror: %B is compiled as absolute position code, whereas target %B is position independenterror: %B is compiled as position independent code, whereas target %B is absolute positionerror: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%derror: %B is compiled for APCS-%d, whereas target %B uses APCS-%derror: %B is compiled for the EP9312, whereas %B is compiled for XScaleerror: %B passes floats in float registers, whereas %B passes them in integer registerserror: %B passes floats in integer registers, whereas %B passes them in float registerserror: %B requires more array alignment than %B preserveserror: %B requires more stack alignment than %B preserveserror: %B uses FPA instructions, whereas %B does noterror: %B uses Maverick instructions, whereas %B does noterror: %B uses VFP instructions, whereas %B does noterror: %B uses VFP register arguments, %B does noterror: %B uses hardware FP, whereas %B uses software FPerror: %B uses iWMMXt register arguments, %B does noterror: %B uses software FP, whereas %B uses hardware FPerror: %B: Conflicting CPU architectures %d/%derror: %B: Conflicting architecture profiles %c/%cerror: %B: Conflicting use of R9error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchainerror: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'error: %B: SB relative addressing conflicts with use of R9error: %B: Unknown CPU architectureerror: %B: size of section %A is not multiple of address sizeerror: %B: unable to merge virtualization attributes with %Berror: Source object %B has EABI version %d, but target %B has EABI version %derror: fp16 format mismatch between %B and %Berror: inappropriate relocation type for shared library (did you forget -fpic?)error: undefined symbol __rtiniterror: unknown Tag_ABI_array_object_align_expected value in %Berror: unknown Tag_ABI_array_object_alignment value in %Bexecutablefailed to allocate space for new APUinfo section.failed to compute new APUinfo section.failed to install new APUinfo section.fatal error while creating .fixupgeneric linker can't handle %sglobal pointer relative address out of rangeglobal pointer relative relocation when _gp not definedhidden symbolignoring reloc %s
+error reading cpu type from elf private dataerror: %B contains a reloc (%#Lx) for section %A that references a non-existent global symbolerror: %B does not use Maverick instructions, whereas %B doeserror: %B is already in final BE8 formaterror: %B is compiled as absolute position code, whereas target %B is position independenterror: %B is compiled as position independent code, whereas target %B is absolute positionerror: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%derror: %B is compiled for APCS-%d, whereas target %B uses APCS-%derror: %B is compiled for the EP9312, whereas %B is compiled for XScaleerror: %B needs 8-byte aligment but %B is set for 4-byte alignmenterror: %B passes floats in float registers, whereas %B passes them in integer registerserror: %B passes floats in integer registers, whereas %B passes them in float registerserror: %B requires more array alignment than %B preserveserror: %B requires more stack alignment than %B preserveserror: %B uses %s instructions but %B uses %serror: %B uses 64-bit doubles but %B uses 32-bit doubleserror: %B uses FPA instructions, whereas %B does noterror: %B uses FPU-3.0 but %B only supports FPU-2.0error: %B uses Maverick instructions, whereas %B does noterror: %B uses VFP instructions, whereas %B does noterror: %B uses VFP register arguments, %B does noterror: %B uses hardware FP, whereas %B uses software FPerror: %B uses iWMMXt register arguments, %B does noterror: %B uses software FP, whereas %B uses hardware FPerror: %B uses the %s code model whereas %B uses the %s code modelerror: %B uses the %s data model but %B only uses MSP430 instructionserror: %B uses the %s data model whereas %B uses the %s data modelerror: %B uses the large code model but %B uses MSP430 instructionserror: %B uses the small code model but %B uses the %s data modelerror: %B(%A) is too large (%#lx bytes)error: %B: <corrupt x86 ISA needed size: 0x%x>error: %B: <corrupt x86 ISA used size: 0x%x>error: %B: <corrupt x86 feature size: 0x%x>error: %B: Big-endian R2 is not supported.error: %B: Conflicting CPU architectures %d/%derror: %B: Conflicting architecture profiles %c/%cerror: %B: Conflicting use of R9error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchainerror: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'error: %B: SB relative addressing conflicts with use of R9error: %B: Unknown CPU architectureerror: %B: cannot mix rf16 with full register set %B.
+error: %B: conflicting ISA extension attributes %s with %s.
+error: %B: conflicting attributes %s.
+error: %B: conflicting attributes %s: %s with %s.
+error: %B: size of section %A is not multiple of address sizeerror: %B: unable to merge CPU base attributes %s with %s.
+error: %B: unable to merge ISA extension attributes %s.
+error: %B: unable to merge virtualization attributes with %Berror: Can't find symbol: _SDA_BASE_.error: IFC relocation error.error: Jump IFC Fail.error: Source object %B has EABI version %d, but target %B has EABI version %derror: fp16 format mismatch between %B and %Berror: inappropriate relocation type for shared library (did you forget -fpic?)error: undefined symbol __rtiniterror: unknown Tag_ABI_array_object_align_expected value in %Berror: unknown Tag_ABI_array_object_alignment value in %Bexecutablefailed to allocate space for new APUinfo section.failed to compute new APUinfo section.failed to install new APUinfo section.fatal error while creating .fixupgeneric linker can't handle %sglobal pointer relative address out of rangeglobal pointer relative relocation at address 0x%08x when _gp not defined
+global pointer relative relocation when _gp not definedhidden symbolhidden symbol ignoring reloc %s
 incr_linum(b): +%u
 incr_linum_l: +%u
 incr_linum_w: +%u
-internal error: addend should be zero for R_LM32_16_GOTinternal error: dangerous errorinternal error: dangerous relocationinternal error: out of range errorinternal error: suspicious relocation type used in shared libraryinternal error: unknown errorinternal error: unsupported relocation errorinternal inconsistency in size of .got.loc sectioninternal symbolinvalid input relocation when producing non-ELF, non-mmo format output.
+indirect, defined at 0x%08x
+internal error: addend should be zero for R_LM32_16_GOTinternal error: addend should be zero for R_OR1K_GOT16internal error: branch/jump to an odd address detectedinternal error: dangerous errorinternal error: dangerous relocationinternal error: merge of architecture '%s' with architecture '%s' produced unknown architectureinternal error: out of range errorinternal error: suspicious relocation type used in shared libraryinternal error: unknown errorinternal error: unsupported relocation errorinternal inconsistency in size of .got.loc sectioninternal symbolinternal symbol invalid input relocation when producing non-ELF, non-mmo format output.
  Please use the objcopy program to convert from ELF or mmo,
  or assemble using "-no-expand" (for gcc, "-Wa,-no-expand"invalid input relocation when producing non-ELF, non-mmo format output.
  Please use the objcopy program to convert from ELF or mmo,
- or compile using the gcc-option "-mno-base-addresses".invalid relocation addressinvalid relocation type %dinvalid use of %s with contextsip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx).ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx).ip2k relaxer: switch table header corrupt.ip2k relaxer: switch table without complete matching relocation information.line num  (len: %u)
+ or compile using the gcc-option "-mno-base-addresses".invalid relocation addressinvalid relocation type %dinvalid use of %s with contextsip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx).ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx).ip2k relaxer: switch table header corrupt.ip2k relaxer: switch table without complete matching relocation information.label, name: %.*s
+len: %2u, kind: %2u line num  (len: %u)
 linkable imagelinker stubs in %u group%s
   branch       %lu
   toc adjust   %lu
   long branch  %lu
   long toc adj %lu
-  plt call     %luliteralliteral relocation occurs for an external symbolmep: no reloc for code %dmodbeg
+  plt call     %lu
+  plt call toc %lu
+  global entry %luliteralliteral relocation occurs for an external symbolmach-o: there are too many sections (%u) maximum is 255,
+mep: no reloc for code %dmodbeg
 modend
-nativenon-contiguous array of %s
+name: [val: %08lx len %d]: nativenew entry function(s) introduced but no output import library specified:nonon-contiguous array of %s
 non-dynamic relocations refer to dynamic symbol %snon-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store
-non-zero addend in @fptr relocnot enough GOT space for local GOT entriesnot mapping: data=%lx mapped=%d
+non-zero addend in @fptr relocnonenot enough GOT space for local GOT entriesnot mapping: data=%lx mapped=%d
 not mapping: env var not set
-note: '%s' is defined in DSO %B so try adding it to the linker command lineout of rangeoverflow after relaxationoverlay stub relocation overflowprivate flags = %lxprivate flags = %lx:private flags = %lx: private flags = %x:private flags = 0x%lxprivate flags = 0x%lx:prolog: bkpt address 0x%08x
-protected symbolrecbeg: name: %.*s
+not setout of rangeoverflow after relaxationoverlay stub relocation overflowpointer
+private flags = %lxprivate flags = %lx:private flags = %lx: private flags = %x:private flags = 0x%lxprivate flags = 0x%lx:prolog: bkpt address 0x%08x
+protected symbolprotected symbol recbeg: name: %.*s
 recend
-reference to a banked address [%lx:%04lx] in the normal address space at %04lxregrelocation `%s' not yet implementedrelocation references symbol not defined in the modulerelocation requires zero addendrelocation should be even numberrelocations between different segments are not supportedreopening %B: %s
+reference to a banked address [%lx:%04lx] in the normal address space at %04lxregreloc (%d) is *UNKNOWN*relocation `%s' not yet implementedrelocation out of rangerelocation references symbol not defined in the modulerelocation requires zero addendrelocation should be even numberrelocations between different segments are not supportedreopening %B: %s
 reserved cmd %drtnbeg
 rtnend: size 0x%08x
-septyp, name: %.*s
+section address (%lx) below start of segment (%lx)septyp, name: %.*s
 set_abs_pc: 0x%08x
 set_line_num(w) %u
 set_line_num_b %u
 set_line_num_l %u
-small-data section exceeds 64KB; lower small-data size limit (see option -G)som_sizeof_headers unimplementedsorry, no support for duplicate object files in auto-overlay script
-source (len: %u)
+shared objectsmall-data section exceeds 64KB; lower small-data size limit (see option -G)som_sizeof_headers unimplementedsorry, no support for duplicate object files in auto-overlay script
+sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab commands.source (len: %u)
 standard data: %s
-static procedure (no name)stub entry for %s cannot load .plt, dp offset = %ldstubs don't match calculated sizesymbolsystem version array information:
-term(b): 0x%02xterm_w: 0x%04xtypspec (len: %u)
-unable to find ARM glue '%s' for '%s'unable to find THUMB glue '%s' for '%s'unable to read in %s section from %Bunable to read unknown load command 0x%lxunable to write unknown load command 0x%lxunaligned bit-string of %s
-uncertain calling convention for non-COFF symbolundefined %s reference in complex symbol: %sunhandled egsd entry type %u
+static procedure (no name)stub entry for %s cannot load .plt, dp offset = %ldstubs don't match calculated sizesymbolsymbol system version array information:
+term(b): 0x%02xterm_w: 0x%04xthe bfin target does not currently support the generation of copy relocationstype spec for element:
+type spec for subscript %u:
+typed pointer
+typspec (len: %u)
+unable to allocate data for load command 0x%lxunable to find ARM glue '%s' for '%s'unable to find THUMB glue '%s' for '%s'unable to layout unknown load command 0x%lxunable to read in %s section from %Bunable to write unknown load command 0x%lxunaligned bit-string of %s
+uncertain calling convention for non-COFF symbolundefined undefined %s reference in complex symbol: %sunhandled egsd entry type %u
 unhandled emh subtype %u
-unknownunknown ETIR command %dunknown errorunknown header byte-order value 0x%lxunknown line command %dunknown operator '%c' in complex symbolunknown source command %dunsupported STA cmd %sunsupported relocunsupported reloc typeunsupported relocationunsupported relocation between data/insn address spacesusing multiple gp valuesv850 architecturev850e architecturev850e1 architecturev850e2 architecturev850e2v3 architecturevflags: 0x%02x, value: 0x%08x vma:			BeginAddress	 EndAddress	  UnwindData
-warning: %B and %B differ in wchar_t sizewarning: %B and %B differ in whether code is compiled for DSBTwarning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may failwarning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may failwarning: %B: local symbol `%s' has no sectionwarning: %s exceeds section size
-warning: %s has a corrupt string table index - ignoringwarning: %s overlaps %s
-warning: %s section has zero sizewarning: .pdata section size (%ld) is not a multiple of %d
-warning: attempt to export undefined symbol `%s'warning: call to non-function symbol %s defined in %Bwarning: generating a shared library containing non-PIC codewarning: generating a shared library containing non-PID codewarning: relocation references a different segmentwarning: section '%s' is being made into a notewarning: section `%A' type changed to PROGBITSwarning: type and size of dynamic symbol `%s' are not definedwarning: unable to set size of %s section in %Bwarning: unable to update contents of %s section in %syou are not allowed to define %s in a scriptProject-Id-Version: bfd-2.22.90
+unknownunknown ETIR command %dunknown errorunknown header byte-order value 0x%lxunknown line command %dunknown operator '%c' in complex symbolunknown source command %dunknown v850 architectureunknown: %xunrecognised MIPS reloc number: %dunrecognized relocation (0x%x)unsupported STA cmd %sunsupported relocunsupported reloc typeunsupported relocationunsupported relocation between data/insn address spacesusing multiple gp valuesv850 E3 architecturev850 architecturev850e architecturev850e1 architecturev850e2 architecturev850e2v3 architecturev850e3v5 architecturevflags: 0x%02x, value: 0x%08x vma:			BeginAddress	 EndAddress	  UnwindData
+warning: %B and %B differ in wchar_t sizewarning: %B and %B differ in whether code is compiled for DSBTwarning: %B has a corrupt string table index - ignoringwarning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may failwarning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may failwarning: %B: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lxwarning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%xwarning: %B: corrupt no copy on protected size: 0x%xwarning: %B: corrupt stack size: 0x%xwarning: %B: local symbol `%s' has no sectionwarning: %B: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%xwarning: %s exceeds section size
+warning: %s overlaps %s
+warning: %s section has zero sizewarning: attempt to export undefined symbol `%s'warning: call to non-function symbol %s defined in %Bwarning: generating a shared library containing non-PIC codewarning: generating a shared library containing non-PID codewarning: relocation references a different segmentwarning: section '%s' is being made into a notewarning: section `%A' type changed to PROGBITSwarning: type and size of dynamic symbol `%s' are not definedwarning: unable to set size of %s section in %Bwarning: unable to update contents of %s section in %Bwarning: writing section `%A' at huge (ie negative) file offset 0x%lx.warning: xdata section corruptwarning: xdata section corrupt
+yesyou are not allowed to define %s in a scriptProject-Id-Version: bfd-2.28.90
 Report-Msgid-Bugs-To: bug-binutils@gnu.org
-POT-Creation-Date: 2011-10-25 11:58+0100
-PO-Revision-Date: 2012-07-28 10:47+0200
+POT-Creation-Date: 2017-07-03 16:54+0200
+PO-Revision-Date: 2017-07-23 16:42+0200
 Last-Translator: FrÃ©dÃ©ric Marchal <fmarchal@perso.be>
 Language-Team: French <traduc@traduc.org>
 Language: fr
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
-Plural-Forms:  nplurals=2; plural=(n > 1);
-X-Generator: Lokalize 1.4
-	Table d'adresse d'exportation 			Table d'adresses d'exportation 		%08lx
-	Table des noms de pointeurs 			Table des ordinals 				Table [Nom pointeur/Nombre ordinal]	%08lx
+X-Bugs: Report translation errors to the Language-Team address.
+Plural-Forms: nplurals=2; plural=(n >= 2);
+	    TLS: %A	<corrompu: 0x%04lx>	Table d'adresse d'exportation 			Table d'adresses d'exportation 		%08lx
+	L'adresse virtuelle relative de la table des adresses exportÃ©es (0x%lx) ou le nombre d'entrÃ©es (0x%lx) est invalide
+	Adresse virtuelle relative de la table des pointeurs de noms (0x%lx) ou nombre d'entrÃ©es (0x%lx) invalide
+	Adresse virtuelle relative de la table ordinale (0x%lx) ou nombre d'entrÃ©es (0x%lx) invalide
+	Table des noms de pointeurs 			Table des ordinals 				[%4ld] <offset corrompu: %lx>
+	Table [Nom pointeur/Nombre ordinal]	%08lx
 	code-base %08lx tab. des entrÃ©es (chargeable/actuel) %08lx/%08lx
-	relocalisation %4d dÃ©calage %4x [%4lx] %s	vma:  Hint/Ord Membre      Lien
+	non-TLS: %A	rÃ©adressage %4d dÃ©calage %4x [%4lx] %s	vma:  Hint/Ord Membre      Lien
 
-	Nom DLL: %s
+	Nom DLL: %.*s
 
 
 Fichier de base des rÃ©adressages PE (contenus interprÃ©tÃ©s de la section .reloc)
@@ -633,8 +773,12 @@ Fichier de base des rÃ©adressages PE (co
 
 CaractÃ©ristiques 0x%x
 
+Vidange de %s
+
 Section dynamique:
 
+Erreur: la section %s contient l'adresse de dÃ©part des donnÃ©es de dÃ©bogage mais elle est trop petite
+
 En-tÃªte auxiliaire de l'exec
 
 Table d'adresses d'exportation -- base de nombre ordinal %ld
@@ -647,25 +791,39 @@ DÃ©but de partition[%d] = { 0x%.2x, 0x%.
 
 En-tÃªte de programme:
 
-Taille de la pile pour les fonctions.  Annotations: Â«*Â» pile max, Â«tÂ» appel de queue
+Taille de la pile pour les fonctions.  Annotations: Â«Â *Â Â» pile max, Â«Â tÂ Â» appel de queue
 
 Les tables d'exportation (contenus interprÃ©tÃ© de la section %s)
 
 
+La table de fonctions (interprÃ©tation du contenu de la section %s)
+
 La table de fonctions (interprÃ©tation du contenu de la section .pdata)
 
 Les tables d'importation (contenus interprÃ©tÃ© de la section %s)
 
-Il y a un premier Â«thunkÂ», mais la section le contenant ne peut Ãªtre repÃ©rÃ©e
+Il y a un rÃ©pertoire de dÃ©bogage dans %s Ã  0x%lx
+
+Il y a un rÃ©pertoire de dÃ©bogage dans %s, mais cette section n'a pas de contenu
+
+Ceci est un rÃ©pertoire de dÃ©bogage, mais la section le contenant ne peut Ãªtre repÃ©rÃ©e
+
+Il y a un premier Â«Â thunkÂ Â», mais la section le contenant ne peut Ãªtre repÃ©rÃ©e
 
 Il y a une table d'exportation dans %s Ã  0x%lx
 
 Il y a une table d'exportation dans %s, mais elle ne rentre pas dans la section
 
+Il y a une table d'exportation dans %s, mais elle est trop petite (%d)
+
+Il y a une table d'exportation dans %s, mais cette section n'a pas de contenu
+
 Il y a une table d'exportation, mais la section la contenant n'a pu Ãªtre repÃ©rÃ©e
 
 Il y a une table d'importation dans %s Ã  0x%lx
 
+Il y a une table d'importation dans %s, mais cette section n'a pas de contenu
+
 Il y a une table d'importation, mais la section la contenant ne peut Ãªtre repÃ©rÃ©e
 
 RÃ©fÃ©rences de version:
@@ -674,14 +832,18 @@ DÃ©finitions des versions:
 
 Adresse virtuelle: %08lx taille des morceaux %ld (0x%lx) nombre de correctifs %ld
 
+ATTENTION: DonnÃ©es en trop dans la section .rsrc â€“ elles seront ignorÃ©es par Windows:
+
 Table [Ordinal/Nom de pointeur]
 
 En-tÃªtes ppcboot:
         pc: 0x%08x
     cmd %u *non gÃ©rÃ©e*
+    adresse: 0x%08x
     adresse: 0x%08x, taille: %u
     fanions: %u, adresse: 0x%08x, pd-adresse: 0x%08x
    nom global: %.*s
+   long: %u bits
    index de liaison: %u, instruction de remplacement: 0x%08x
     nom: %.*s
     pc: 0x%08x
@@ -691,8 +853,10 @@ En-tÃªtes ppcboot:
    index psect 3: %u, offset 3: 0x%08x %08x
    psect: %u, offset: 0x%08x %08x
     nom routine : %.*s
-   %02u    %s%s %s
-   (type: %3u, taille: 4+%3u):    cmd %u *non gÃ©rÃ©e*
+   %02u    (type: %3u, taille: 4+%3u):    cmd %u *non gÃ©rÃ©e*
+   Erreur: La longueur est plus petite que la longueur d'un enregistrement EEOM
+   Erreur: La longueur est plus petite que la longueur d'un enregistrement EMH
+   Erreur: longueur plus grande que l'espace restant dans l'enregistrement
    alignement : 2**%u
    alloc (long)  : %u (0x%08x)
   alloc (long): %u (0x%08x)
@@ -751,7 +915,6 @@ En-tÃªtes ppcboot:
    vecteur     : 0x%08x
    masque de version: 0x%08x
   %s (long=%u+%u):
-  %s: 0x%v
   %u: taille: %u, fanions: 0x%02x, nom: %.*s
   EEOM (long=%u):
   EGSD (long=%u):
@@ -773,23 +936,22 @@ En-tÃªtes ppcboot:
   shlextra  : %5u, permctx   : %5u
   shlstoff  : %5u, shrimgcnt : %5u
   taille : %u
- #: Nom segment      Nom section      Adresse
- %08x 0x%08x 64B <Version EABI non reconnue> BPAGE: %u COM COMM Changement de protection (%u entrÃ©es):
+  les fanions du fichier d'entrÃ©e: %s  les fanions du fichier de sortie: %s %08x 0x%08x 64B <Version EABI non reconnue> BPAGE: %u COM COMM Changement de protection (%u entrÃ©es):
  Correctifs des rÃ©fÃ©rences des adresses de code:
- DEF EXE PremiÃ¨re adresse : 0x%08x 0x%08x
+ DEF EXE support du FPU requis:  PremiÃ¨re adresse : 0x%08x 0x%08x
  QuatriÃ¨me adresse: 0x%08x 0x%08x
  GBL SÃ©quence du code de liants LIB Correctifs des rÃ©fÃ©rences des paires de liaison:
- NOMOD NORM OVR PIC QVAL RD REL Registre a restaurÃ© le millicode Registre a prÃ©servÃ© le millicode SHR DeuxiÃ¨me adresse : 0x%08x 0x%08x
+ NOMOD NORM OVR PIC QVAL RD REL Registre a restaurÃ© le millicode Registre a prÃ©servÃ© le millicode Les ressources dÃ©marrent au dÃ©calage: %#03x
+ SHR DeuxiÃ¨me adresse : 0x%08x 0x%08x
  Images partageables:
  Image partagÃ©e   : 0x%08x 0x%08x
+ La table des chaÃ®nes dÃ©marre au dÃ©calage: %#03x
+Table: Car: %d, Temps: %08lx, Ver: %d/%d, Nbr Noms: %d, IDs: %d
  TroisiÃ¨me adresse: 0x%08x 0x%08x
- UNI VEC VECEP FAIBLE WRT [doubles de 64 bits] [BE8] [format flottant FPA] [LE8] [format flottant Maverick] [format flottant VFP] [Version1 EABI] [Version2 EABI] [Version3 EABI] [Version4 EABI] [Version5 EABI] [abi inconnu] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=O32] [abi=O64] [position absolue] [d-float] [dsp] [symboles dynamiques utilisent un index de segment] [fix dep] [valeurs en virgule flottante passÃ©es dans des registres de valeurs en virgule flottante] [valeurs en virgule flottante passÃ©es dans des registres de valeurs entiÃ¨res] [g-float] [a des points d'entrÃ©es] [inter-rÃ©seautage autorisÃ©] [fanion d'inter-rÃ©seautage n'a pas Ã©tÃ© initialisÃ©] [inter-rÃ©seautage non supportÃ©] [inter-rÃ©seautage supportÃ©] [mapping de symboles prÃ©cÃ¨des les autres] [memory=bank-model] [memory=flat] [nouvel ABI] [aucun jeu abi] [nonpic] [aucun mode 32 bits] [ancien ABI] [pic] [position indÃ©pendante] [exÃ©cutables relocalisÃ©s] [virgule flottante logiciel] [table des symboles triÃ©s] [symboles sont prÃ©fixÃ©s par Â« _ Â»] [ISA inconnu] [table des symboles non triÃ©s] [v10 et v32] [v32] GST corrompu
- soustypecpu: %08lx
- typecpu    : %08lx (%s)
+ UNI VEC VECEP FAIBLE WRT [doubles de 64 bits] [BE8] [format flottant FPA] [LE8] [format flottant Maverick] [format flottant VFP] [Version1 EABI] [Version2 EABI] [Version3 EABI] [Version4 EABI] [Version5 EABI] [dÃ©calage RAM XGATE] [abi inconnu] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=O32] [abi=O64] [abiv%ld] [position absolue] [d-float] [symboles dynamiques utilisent un index de segment] [fix dep] [valeurs en virgule flottante passÃ©es dans des registres de valeurs en virgule flottante] [valeurs en virgule flottante passÃ©es dans des registres de valeurs entiÃ¨res] [g-float] [hard-float ABI] [inter-rÃ©seautage autorisÃ©] [fanion d'inter-rÃ©seautage n'a pas Ã©tÃ© initialisÃ©] [inter-rÃ©seautage non supportÃ©] [inter-rÃ©seautage supportÃ©] [mapping de symboles prÃ©cÃ¨des les autres] [memory=bank-model] [memory=flat] [nouvel ABI] [aucun jeu abi] [nonpic] [aucun mode 32 bits] [ancien ABI] [pic] [position indÃ©pendante] [exÃ©cutables relocalisÃ©s] [soft-float ABI] [virgule flottante logiciel] [table des symboles triÃ©s] [symboles sont prÃ©fixÃ©s par Â«Â  _ Â Â»] [ISA inconnu] [table des symboles non triÃ©s] [v10 et v32] [v32] alignement d'entitÃ©s de 8 octets: GST corrompu
  table des modules de debug: vbn: %u, taille: %u
  table des symboles de debug : vbn: %u, taille: %u (0x%x)
- typefichier: %08lx (%s)
- correctif info rva:  fanions   : %08lx ( fanions: 0x%04x table des symboles globale: vbn: %u, enregistrements: %u
+ correctif info rva:  fanions: 0x%04x table des symboles globale: vbn: %u, enregistrements: %u
  ident: 0x%08x, nom: %.*s
  ident: 0x%08x, ver sys: 0x%08x, apparier ctrl: %u, taille vectsym: %u
  ident construction image: %.*s
@@ -798,19 +960,15 @@ En-tÃªtes ppcboot:
  type image: %u (%s) dÃ©compte E/S img: %u, nbr canaux: %u, priv req: %08x%08x
  heure de liaison  : %s
  fanions lieur: %08x: ident lieur       : %.*s
- correctifs des rÃ©fÃ©rences mots longs Â«.addressÂ»:
+ correctifs des rÃ©fÃ©rences mots longs Â«Â .addressÂ Â»:
  correctifs du rÃ©adressage des mots longs:
- magique    : %08lx
  id majeur: %u, id mineur: %u
  offset du module: 0x%08x, taille: 0x%08x, (%u psects)
- ncmds     : %08lx (%lu)
  offsets: isd: %u, actif: %u, debug symbol: %u, id image: %u, patch: %u
- correctifs des rÃ©fÃ©rences quad-mots Â«.addressÂ»:
+ correctifs des rÃ©fÃ©rences quad-mots Â«Â .addressÂ Â»:
  correctifs du rÃ©adressage des quad-mots:
- rÃ©servÃ©   : %08x
  section: base: 0x%08x%08x taille: 0x%08x
- taillecmds: %08lx
- type: %3u, long: %3u (Ã  0x%08x):  type d'enregistrement EOBJ %u non supportÃ©
+ taille des doubles:  type: %3u, long: %3u (Ã  0x%08x):  type d'enregistrement EOBJ %u non supportÃ©
  vbn: %u, pfc: %u, matchctl: %u type: %u ( vma:			DÃ©but Adresse    Fin Adresse      Unwind Info
  vma:		DÃ©but    Fin      EH       EH       FinProlog  Exception
      		Adresse  Adresse  Handler  DonnÃ©es  Adresse    Masque
@@ -818,44 +976,104 @@ En-tÃªtes ppcboot:
      		Adresse  Prolog.  Fonction 32b exc  Exception DonnÃ©es
  vma:            Hint    Temps     Avant    DLL       Premier
                  Table   Estampil. ChaÃ®ne   Nom       Thunk
-#<Code d'erreur invalide>%A a, Ã  la fois, des sections ordonnÃ©es [Â«%AÂ» dans %B] et dÃ©sordonnÃ©es [Â«%AÂ» dans %B]%A a, Ã  la fois, des sections ordonnÃ©es et dÃ©sordonnÃ©es%A:0x%v le lrlive .brinfo (%u) diffÃ¨re de celui de l'analyse (%u)
+#<Code d'erreur invalide>%03x %*.s  Feuilles: Adr: %#08lx, Taille: %#08lx, Codepage: %d
+%03x %*.s EntrÃ©e: %A a, Ã  la fois, des sections ordonnÃ©es [Â«Â %AÂ Â» dans %B] et dÃ©sordonnÃ©es [Â«Â %AÂ Â» dans %B]%A a, Ã  la fois, des sections ordonnÃ©es et dÃ©sordonnÃ©es%A:0x%v le lrlive .brinfo (%u) diffÃ¨re de celui de l'analyse (%u)
 %A:%0x%v pas trouvÃ© dans la table de fonctions
-%B (%s): Fanion de section %s (0x%x) ignorÃ©%B et %B sont pour des configurations diffÃ©rentes%B et %B sont pour des noyaux diffÃ©rents%B contient du code CRIS v32 incompatible avec les objets prÃ©cÃ©dents%B contient du code non CRIS v32 incompatible avec les objets prÃ©cÃ©dents%B utilise les deux attributs Tag_MPextension_use actuel et hÃ©ritÃ©%B ne peut pas dÃ©finir %s%B section %A dÃ©passe la taille du groupe d'Ã©bauche%B le symbole numÃ©ro %lu fait rÃ©fÃ©rence Ã  une section SHT_SYMTAB_SHNDX inexistante%B(%A): erreur: appel Ã  la fonction non dÃ©finie Â«%sÂ»%B(%A): erreur interne: rÃ©adressage dangereux%B(%A): erreur interne: hors limite%B(%A): erreur interne: erreur inconnue%B(%A): erreur interne: rÃ©adressage non supportÃ©%B(%A): table de propriÃ©tÃ© invalide%B(%A): rÃ©adressage PID %s non sÃ»r Ã  0x%08lx (sur %s dans %s)%B(%A): attention: accÃ¨s non alignÃ© au symbole Â«%sÂ» dans la zone des petites donnÃ©es%B(%A+0x%B(%A+0x%lx): correction %s pour insn 0x%x n'est pas supportÃ© dans un lien non partagÃ©%B(%A+0x%lx): %s rÃ©adressage vers une section SEC_MERGE%B(%A+0x%lx): %s rÃ©adressage vers le symbole externe Â«Â %sÂ Â»%B(%A+0x%lx): %s utilisÃ© avec le symbole TLS %s%B(%A+0x%lx): %s utilisÃ© avec le symbole non-TLS %s%B(%A+0x%lx): Seuls ADD ou SUB sont permis dans les rÃ©adressages du groupe ALU%B(%A+0x%lx): DÃ©bordement en scindant 0x%lx pour le rÃ©adressage du groupe %s%B(%A+0x%lx): rÃ©adressage R_68K_TLS_LE32 pas permis dans un objet partagÃ©%B(%A+0x%lx): rÃ©adressage R_ARM_TLS_LE32 pas permis dans un objet partagÃ©%B(%A+0x%lx): EntrÃ©e des Ã©bauches a un indexe de chaÃ®ne invalide%B(%A+0x%lx): impossible d'apporter des corrections Ã  Â«%sÂ» dans une section en lecture seule%B(%A+0x%lx): ne sait pas traiter %s pour %s%B(%A+0x%lx): ne peut atteindre %s, recompilez avec -ffunction-sections%B(%A+0x%lx): l'instruction ne peut pas Ãªtre dÃ©codÃ©e pour un rÃ©adressage XTENSA_ASM_SIMPLIFY; la configuration est peut-Ãªtre erronÃ©e%B(%A+0x%lx): l'instruction ne peut pas Ãªtre dÃ©codÃ©e; la configuration est peut-Ãªtre erronÃ©e%B(%A+0x%lx): instruction invalide pour le rÃ©adressage TLS %s%B(%A+0x%lx): relocalisation vers Â«%sÂ»: erreur %d%B(%A+0x%lx): dÃ©calage de rÃ©adressage hors limite (taille=0x%x)%B(%A+0x%lx): correction inattendue pour le rÃ©adressage %s%B(%A+0x%lx): rÃ©adressage %s sans solution vers le symbole Â«Â %sÂ Â»%B(%A+0x%lx): rÃ©adressage sans solution vers le symbole Â«Â %sÂ Â»%B(%A+0x%lx): instruction ARM Â«Â 0x%xÂ Â» inattendue dans le trampoline TLS%B(%A+0x%lx): instruction ARM '0x%x' inattendue rÃ©fÃ©rencÃ©e par TLS_GOTDESC%B(%A+0x%lx): instruction Thumb Â«Â 0x%xÂ Â» inattendue dans le trampoline TLS%B(%A+0x%lx): instruction Thumb Â«Â 0x%xÂ Â» inattendue rÃ©fÃ©rencÃ©e par TLS_GOTDESC%B(%A+0x%v): appel Ã  la section non exÃ©cutable %B(%A), analyse incomplÃ¨te
+%B (%s): Fanion de section %s (0x%x) ignorÃ©%B et %B sont pour des configurations diffÃ©rentes%B et %B sont pour des noyaux diffÃ©rents%B contient du code CRIS v32 incompatible avec les objets prÃ©cÃ©dents%B contient du code non CRIS v32 incompatible avec les objets prÃ©cÃ©dents%B utilise les deux attributs Tag_MPextension_use actuel et hÃ©ritÃ©%B ne peut pas dÃ©finir %s%B section %A dÃ©passe la taille du groupe d'Ã©bauche%B le symbole numÃ©ro %lu fait rÃ©fÃ©rence Ã  une section SHT_SYMTAB_SHNDX inexistante%B utilise le e_flags 0x%lx inconnu%B(%#x): erreur: Impossible de crÃ©er le trampoline (veneer) du STM32L4XX. Saut hors de portÃ©e pour %ld octets. Impossible d'encoder l'instruction de branchement. %B(%A): erreur: appel Ã  la fonction non dÃ©finie Â«Â %sÂ Â»%B(%A): erreur interne: rÃ©adressage dangereux%B(%A): erreur interne: hors limite%B(%A): erreur interne: erreur inconnue%B(%A): erreur interne: rÃ©adressage non supportÃ©%B(%A): table de propriÃ©tÃ© invalide%B(%A): l'utilisation de plusieurs modÃ¨les TLS n'est pas supportÃ©%B(%A): rÃ©adressage %d a un index de symbole %ld invalide%B(%A): symbole de bibliothÃ¨que partagÃ©e %s rencontrÃ© en rÃ©alisant une Ã©dition de liens statiques%B(%A): rÃ©adressage PID %s non sÃ»r Ã  0x%08lx (sur %s dans %s)%B(%A): attention: les trampolines (aka veneers) de branchements longs utilisÃ©s dans la section avec l'attribut de section SHF_ARM_PURECODE n'est supportÃ© que sur les cibles M-profile implÃ©mentant l'instruction movw.%B(%A): attention: accÃ¨s non alignÃ© au symbole Â«Â %sÂ Â» dans la zone des petites donnÃ©es%B(%A): attention: accÃ¨s non alignÃ© Ã  une petite donnÃ©e de type %d.%B(%A+0x%%B(%A+0x%lx): correction %s pour insn 0x%x n'est pas supportÃ© dans un lien non partagÃ©%B(%A+0x%lx): %s rÃ©adressage vers une section SEC_MERGE%B(%A+0x%lx): %s rÃ©adressage vers le symbole externe Â«Â %sÂ Â»%B(%A+0x%lx): %s utilisÃ© avec le symbole TLS %s%B(%A+0x%lx): %s utilisÃ© avec le symbole non-TLS %s%B(%A+0x%lx): le rÃ©adressage CMEM vers Â«Â %sÂ Â» est invalide. 16 MSB devrait Ãªtre 0x%04x (la valeur est 0x%lx)%B(%A+0x%lx): le rÃ©adressage CMEM vers Â«Â %s+0x%lxÂ Â» est invalide, 16 MSB devrait Ãªtre 0x%04x (la valeur est 0x%lx)%B(%A+0x%lx): Seuls ADD ou SUB sont permis dans les rÃ©adressages du groupe ALU%B(%A+0x%lx): DÃ©bordement en scindant 0x%lx pour le rÃ©adressage du groupe %s%B(%A+0x%lx): rÃ©adressage R_68K_TLS_LE32 pas permis dans un objet partagÃ©%B(%A+0x%lx): rÃ©adressage R_ARM_TLS_LE32 pas permis dans un objet partagÃ©%B(%A+0x%lx): rÃ©adressage R_METAG_TLS_LE/IENONPIC pas permis dans un objet partagÃ©%B(%A+0x%lx): rÃ©adressage R_NIOS2_TLS_LE16 pas permis dans un objet partagÃ©%B(%A+0x%lx): EntrÃ©e des Ã©bauches a un indexe de chaÃ®ne invalide%B(%A+0x%lx): impossible d'apporter des corrections Ã  Â«Â %sÂ Â» dans une section en lecture seule%B(%A+0x%lx): ne sait pas traiter %s pour %s%B(%A+0x%lx): ne peut atteindre %s, recompilez avec -ffunction-sections%B(%A+0x%lx): l'instruction ne peut pas Ãªtre dÃ©codÃ©e pour un rÃ©adressage XTENSA_ASM_SIMPLIFY; la configuration est peut-Ãªtre erronÃ©e%B(%A+0x%lx): l'instruction ne peut pas Ãªtre dÃ©codÃ©e; la configuration est peut-Ãªtre erronÃ©e%B(%A+0x%lx): erreur: chargements multiples dÃ©tectÃ©s dans un bloc d'instruction IT qui n'est pas le dernier : le trampoline (veneer) du STM32L4XX ne peut pas Ãªtre gÃ©nÃ©rÃ©.
+Utilisez l'option -mrestrict-it de gcc pour gÃ©nÃ©rer seulement une instruction par bloc IT.
+%B(%A+0x%lx): rÃ©adressage du style 16A attendu sur l'insn 0x%08x%B(%A+0x%lx): rÃ©adressage du style 16D attendu sur l'insn 0x%08x%B(%A+0x%lx): instruction invalide pour le rÃ©adressage TLS %s%B(%A+0x%lx): rÃ©adressage vers Â«Â %sÂ Â»: erreur %d%B(%A+0x%lx): dÃ©calage de rÃ©adressage hors limite (taille=0x%x)%B(%A+0x%lx): instruction ARM Â«Â 0x%xÂ Â» inattendue dans le trampoline TLS%B(%A+0x%lx): instruction ARM '0x%x' inattendue rÃ©fÃ©rencÃ©e par TLS_GOTDESC%B(%A+0x%lx): instruction Thumb Â«Â 0x%xÂ Â» inattendue dans le trampoline TLS%B(%A+0x%lx): instruction Thumb Â«Â 0x%xÂ Â» inattendue rÃ©fÃ©rencÃ©e par TLS_GOTDESC%B(%A+0x%lx): correction inattendue pour le rÃ©adressage %s%B(%A+0x%lx): rÃ©adressage %s sans solution vers le symbole Â«Â %sÂ Â»%B(%A+0x%lx): rÃ©adressage sans solution vers le symbole Â«Â %sÂ Â»%B(%A+0x%v): appel Ã  la section non exÃ©cutable %B(%A), analyse incomplÃ¨te
 %B(%s): attention: l'inter-rÃ©seautage n'est pas activÃ©.
   premiÃ¨re occurrence: %B: appel ARM vers repÃ¨re%B(%s): attention: l'inter-rÃ©seautage n'est pas activÃ©.
   premiÃ¨re occurrence: %B: appel de repÃ¨re vers ARM%B(%s): attention: l'inter-rÃ©seautage n'est pas activÃ©.
   premiÃ¨re occurrence: %B: appel arm au repÃ¨re%B(%s): attention: l'inter-rÃ©seautage n'est pas activÃ©.
-  premiÃ¨re occurrence: %B: appel de repÃ¨re vers arm%B(%s): attention: l'inter-rÃ©seautage n'est pas activÃ©.
   premiÃ¨re occurrence: %B: appel arm au repÃ¨re
   reliez avec --support-old-code activÃ©%B(%A+0x%lx): rÃ©adressage %s sans solution vers le symbole Â«Â %sÂ Â»%B, section %A:
   rÃ©adressage de %s pas valable dans un objet partagÃ©; typiquement un mÃ©lange dans les options. Recompilez avec -fPIC%B, section %A:
   rÃ©adressage de %s ne devrait pas Ãªtre utilisÃ© dans un objet partagÃ©; recompilez avec -fPIC%B, section %A:
-  l'objet compatible v10/v32 %s ne peut pas contenir de rÃ©adressage PIC%B, section %A: Pas de PLT pour rÃ©adresser %s sur le symbole Â«Â %sÂ Â»%B, section %a: Pas de PLT ni de GOT pour rÃ©adresser %s sur le symbole Â«Â %sÂ Â»%B, section %A: rÃ©adressage de %s a une rÃ©fÃ©rence non dÃ©finie vers Â«Â %sÂ Â», peut-Ãªtre un mÃ©lange dans les dÃ©clarations ?%B, section %A: le rÃ©adressage de %s n'est pas permis pour le symbole global: Â«Â %sÂ Â»%B, section %A: rÃ©adressage de %s n'est pas permis pour le symbole Â«Â %sÂ Â» qui est dÃ©fini en dehors du programme, peut-Ãªtre un mÃ©lange dans les dÃ©clarations ?%B, section %A: rÃ©adressage de %s sans GOT%B, section %A: rÃ©adressage de %s avec un opÃ©rande non nul %d sur le symbole local%B, section %A: rÃ©adressage de %s avec un opÃ©rande non nul %d sur le symbole Â«Â %sÂ Â»%B, section %A: rÃ©adressage %s non rÃ©solu sur le symbole Â«Â %sÂ Â»%B, section Â«%AÂ», vers le symbole Â«%sÂ»:
-  rÃ©adressage de %s ne devrait pas Ãªtre utilisÃ© dans un objet partagÃ©; recompilez avec -fPIC%B: relocalisation !samegp vers le symbole sans .prologue: %s%B: %A+0x%lx: Les sauts directs entre modes ISA ne sont pas permis; envisagez de recompiler avec l'interliage activÃ©.%B: %s: version requise invalide %d%B: %s: version invalide %u (max %d)%B: symbole Â«%sÂ» accÃ©dÃ© Ã  la fois comme normal et comme local au thread%B: le sous-segment .got excÃ¨de 64K (taille %d)%B: .opd n'est pas un tableau rÃ©gulier d'entrÃ©es opd%B: section .preinit_array n'est pas permise dans DSO%B: 0x%lx: fatal: rÃ©adressage R_SH_PSHA %d pas dans l'intervalle -32..32%B: 0x%lx: fatal: rÃ©adressage R_SH_PSHL %d n'est pas dans l'intervalle -32..32%B: 0x%lx: erreur fatale: dÃ©bordement de relocalisation lors des relÃ¢ches%B: 0x%lx: fatal: rÃ©adressage %s non alignÃ© 0x%lx%B: 0x%lx: fatal: cible de branchement non alignÃ©e pour un rÃ©adressage de type relax-support%B: 0x%lx: attention: R_SH_USES pointe vers un insn inconnu 0x%x%B: 0x%lx: attention: mauvais dÃ©calage de chargement R_SH_USES%B: 0x%lx: attention: mauvais dÃ©calage pour R_SH_USES%B: 0x%lx: attention: mauvais dÃ©compte%B: 0x%lx: attention: ne peut repÃ©rer le compteur de relocalisation attendu%B: 0x%lx: attention: ne peut repÃ©rer la relocalisation attendue%B: 0x%lx: attention: symbole dans une section inattendue%B: rÃ©adressage @gprel vers le symbole dynamique %s%B: branchement @internal vers le symbole dynamique %s%B: rÃ©adressage @pcrel vers le symbole dynamique %s%B: ABI est incompatible avec celui sÃ©lectionnÃ© pour l'Ã©mulation%B: ABI ne concorde pas: Ã©dition de lien du module %s avec les modules prÃ©cÃ©dents %s%B: ASE ne concorde pas: Ã©dition de lien du module %s avec les modules prÃ©cÃ©dents %s%B: L'architecture ne concorde pas avec les modules prÃ©cÃ©dents%B: les images BE8 ne sont valables qu'en mode gros boutiste.%B: Mauvais enregistrement de rÃ©adressage importÃ©: %d%B: appel CALL15 de relocalisation Ã  0x%lx n'est pas appliquÃ© sur un symbole global%B: appel CALL16 de relocalisation Ã  0x%lx qui n'est pas pour un symbole global%B: Ne trouve pas de relocalisation LO16 correspondante vers Â«%sÂ» pour %s Ã  0x%lx de la section Â«%AÂ»%B:Ne peut pas relÃ¢cher br (%s) sur Â«%sÂ» Ã  0x%lx dans la section Â«%AÂ» avec la taille 0x%lx (> 0x1000000).%B: Ne peut relÃ¢cher br Ã  0x%lx dans la section Â«%AÂ». Veuillez utiliser brl ou un branchement indirect.%B: Les binaires compressÃ©s pour Alpha ne sont pas supportÃ©s.
-   Utilisez les options du compilateur ou objZ pour produire des binaires non compressÃ©s.%B: Ne peut lier ensemble les objets %s et %s.%B: Champ de taille corrompu dans l'en-tÃªte du groupe de section: 0x%lx%B: Ã‰chec de l'ajout du symbole renommÃ© %s%B: Descripteur de fonction rÃ©adressÃ© avec un opÃ©rande non nul%B: dÃ©bordement GOT: Nombre de rÃ©adressages avec des offsets de 8 ou 16 bits > %d%B: dÃ©bordement GOT: Nombre de rÃ©adressages avec des offsets de 8 bits > %d%B: relocalisation GOT Ã  0x%lx pas attendue dans les executables%B: la directive IMPORT AS de %s masque l'IMPORT AS prÃ©cÃ©dent%B: jeu d'instructions ne concorde par avec les modules prÃ©cÃ©dents%B: Type de rÃ©adressage importÃ© invalide: %d%B: relocalisation mal composÃ©e dÃ©tectÃ©e dans la section %s%B: Pas suffisamment d'espace pour les en-tÃªtes du programme, essayer l'option -N%B: Seuls les registres %%g[2367] peuvent Ãªtre dÃ©clarÃ©s en utilisant les registres STT_REGISTER%B: type de machine reconnue mais non traitÃ©e (0x%x) dans l'archive da la librairie de formats d'importation%B: RÃ©adressage %s (%d) n'est pas actuellement supportÃ©.
-%B: RÃ©adressages en format ELF gÃ©nÃ©rique (EM: %d)%B: rÃ©adressage relatif Ã  SB mais __c6xabi_DSBT_BASE n'est pas dÃ©fini%B: code exÃ©cutable local TLS ne peut Ãªtre liÃ© en objets partagÃ©s%B: Ã‰chec de la transition TLS de %s vers %s sur Â«%sÂ» Ã  0x%lx dans la section Â«%AÂ»%B: La premiÃ¨re section dans le segment PT_DYNAMIC n'est pas la section .dynamic%B: la cible (%s) du rÃ©adressage %s est dans la mauvaise section (%A)%B: Trop de sections: %d (>= %d)%B: Impossible de trier les relocalisations - plusieurs tailles rencontrÃ©es%B: Impossible de trier les relocalisations - leur taille est inconnue%B: type d'importation non traitÃ©e; %x%B: L'attribut d'objet EABI obligatoire %d est manquant%B: Type de rÃ©adressage %d inconnu
+  l'objet compatible v10/v32 %s ne peut pas contenir de rÃ©adressage PIC%B, section %A: Pas de PLT pour rÃ©adresser %s sur le symbole Â«Â %sÂ Â»%B, section %a: Pas de PLT ni de GOT pour rÃ©adresser %s sur le symbole Â«Â %sÂ Â»%B, section %A: rÃ©adressage de %s a une rÃ©fÃ©rence non dÃ©finie vers Â«Â %sÂ Â», peut-Ãªtre un mÃ©lange dans les dÃ©clarations ?%B, section %A: rÃ©adressage de %s n'est pas permis pour Â«Â %sÂ Â», un symbole global avec la visibilitÃ© par dÃ©faut, peut-Ãªtre un mÃ©lange dans les dÃ©clarations ?%B, section %A: le rÃ©adressage de %s n'est pas permis pour le symbole global: Â«Â %sÂ Â»%B, section %A: rÃ©adressage de %s n'est pas permis pour le symbole Â«Â %sÂ Â» qui est dÃ©fini en dehors du programme, peut-Ãªtre un mÃ©lange dans les dÃ©clarations ?%B, section %A: rÃ©adressage de %s sans GOT%B, section %A: rÃ©adressage de %s avec un opÃ©rande non nul %d sur le symbole local%B, section %A: rÃ©adressage de %s avec un opÃ©rande non nul %d sur le symbole Â«Â %sÂ Â»%B, section %A: rÃ©adressage %s non rÃ©solu sur le symbole Â«Â %sÂ Â»%B, section Â«Â %AÂ Â», vers le symbole Â«Â %sÂ Â»:
+  rÃ©adressage de %s ne devrait pas Ãªtre utilisÃ© dans un objet partagÃ©; recompilez avec -fPIC%B: rÃ©adressage !samegp vers le symbole sans .prologue: %s%B: %A taille de section d'entrÃ©e invalide%B: %A pas dans l'ordre%B: %A pointe au delÃ  de la fin de la section texte%B: %A+%#Lx: Pas de symbole trouvÃ© pour INHERIT%B: %A+0x%lx: attention: rÃ©adressage de %s sur une insn inattendue%B: %A+0x%lx: attention: rÃ©adressage LITERAL sur une insn inattendue%B: %A: dÃ©bordement de rÃ©adressage: 0x%lx > 0xffff%B: %s pas supportÃ©%B: Â«Â %s Â Â» accÃ©dÃ© Ã  la fois comme symbole normal et comme symbole locale au thread%B: %s: version requise invalide %d%B: %s: version invalide %u (max %d)%B: %s: dÃ©bordement de rÃ©adressage: 0x%lx > 0xffff%B: symbole Â«Â %sÂ Â» accÃ©dÃ© Ã  la fois comme normal et comme local au thread%B: --in-implib uniquement supportÃ© pour les bibliothÃ¨ques d'import Secure Gateway.%B: entrÃ©e .gnu.version_d invalide%B: entrÃ©e .gnu.version_r invalide%B: le sous-segment .got excÃ¨de 64K (taille %d)%B: .opd n'est pas un tableau rÃ©gulier d'entrÃ©es opd%B: section .preinit_array n'est pas permise dans DSO%B: Ã©chec de la fusion de .rsrc: section .rsrc corrompue%B: Ã©chec de la fusion de .rsrc: taille de .rsrc inattendue%B: 0x%lx: fatal: rÃ©adressage R_SH_PSHA %d pas dans l'intervalle -32..32%B: 0x%lx: fatal: rÃ©adressage R_SH_PSHL %d n'est pas dans l'intervalle -32..32%B: 0x%lx: erreur fatale: dÃ©bordement de rÃ©adressage lors des relÃ¢ches%B: 0x%lx: fatal: rÃ©adressage %s non alignÃ© 0x%lx%B: 0x%lx: fatal: cible de branchement non alignÃ©e pour un rÃ©adressage de type relax-support%B: 0x%lx: attention: R_SH_USES pointe vers un insn inconnu 0x%x%B: 0x%lx: attention: R_V850_LONGCALL pointe vers l'insn inconnue 0x%x%B: 0x%lx: attention: R_V850_LONGCALL pointe vers des insns inconnues%B: 0x%lx: attention: R_V850_LONGCALL pointe vers un rÃ©adressage non reconnu%B: 0x%lx: attention: R_V850_LONGCALL pointe vers le rÃ©adressage inconnu 0x%lx%B: 0x%lx: attention: R_V850_LONGJUMP pointe vers une insn inconnue 0x%x%B: 0x%lx: attention: R_V850_LONGJUMP pointe vers des insns non reconnues%B: 0x%lx: attention: R_V850_LONGJUMP pointe vers un rÃ©adressage non reconnu%B: 0x%lx: attention: mauvais dÃ©calage de chargement R_SH_USES%B: 0x%lx: attention: mauvais dÃ©calage pour R_SH_USES%B: 0x%lx: attention: mauvais dÃ©compte%B: 0x%lx: attention: ne peut repÃ©rer le compteur de rÃ©adressages attendu%B: 0x%lx: attention: ne peut repÃ©rer le rÃ©adressage attendu%B: 0x%lx: attention: symbole dans une section inattendue%B: rÃ©adressage @gprel vers le symbole dynamique %s%B: branchement @internal vers le symbole dynamique %s%B: rÃ©adressage @pcrel vers le symbole dynamique %s%B: ABI est incompatible avec celui sÃ©lectionnÃ© pour l'Ã©mulation%B: l'ABI est incompatible avec celle de l'Ã©mulation sÃ©lectionnÃ©e:
+  l'Ã©mulation de la cible Â«Â %sÂ Â» ne correspond pas Ã  Â«Â %sÂ Â»%B: ABI ne concorde pas: Ã©dition de lien du module %s avec les modules prÃ©cÃ©dents %s%B: la version ABI %ld n'est pas compatible avec la sortie de l'ABI version %ld%B: ASE ne concorde pas: Ã©dition de lien du module %s avec les modules prÃ©cÃ©dents %s%B: L'architecture ne concorde pas avec les modules prÃ©cÃ©dents%B: les images BE8 ne sont valables qu'en mode gros boutiste.%B: Mauvais enregistrement de rÃ©adressage importÃ©: %d%B: DÃ©finition de symbole erronÃ©e: Â«Â MainÂ Â» initialisÃ© Ã  %s au lieu de l'adresse de dÃ©part %s
+%B: appel CALL15 de rÃ©adressage Ã  0x%lx n'est pas appliquÃ© sur un symbole global%B: appel CALL16 de rÃ©adressage Ã  0x%lx qui n'est pas pour un symbole global%B: Ne trouve pas de rÃ©adressage LO16 correspondant vers Â«Â %sÂ Â» pour %s Ã  0x%lx de la section Â«Â %AÂ Â»%B:Ne peut pas relÃ¢cher br (%s) sur Â«Â %sÂ Â» Ã  0x%lx dans la section Â«Â %AÂ Â» avec la taille 0x%lx (> 0x1000000).%B: Ne peut relÃ¢cher br Ã  0x%lx dans la section Â«Â %AÂ Â». Veuillez utiliser brl ou un branchement indirect.%B: Les binaires compressÃ©s pour Alpha ne sont pas supportÃ©s.
+   Utilisez les options du compilateur ou objZ pour produire des binaires non compressÃ©s.%B: Ne peut lier ensemble les objets %s et %s.%B: La taille du rÃ©pertoire de donnÃ©es (%lx) excÃ¨de l'espace restant dans la section (%lx)%B: dÃ©saccord du fanion EF_OR1K_NODELAY avec les modules prÃ©cÃ©dents%B: Erreur: Les donnÃ©es de dÃ©bogage s'arrÃªtent aprÃ¨s la fin du rÃ©pertoire de dÃ©bogage.%B: erreur: multiple dÃ©finitions de Â«Â %sÂ Â»; dÃ©but de %s est initialisÃ© dans un prÃ©cÃ©dent fichier liÃ©
+%B: Erreur: search_nds32_elf_blank rapporte le mauvais nÅ“ud
+%B: Ã‰chec de l'ajout du symbole renommÃ© %s%B: Impossible de trouver la section d'information pour la section %d%B: Impossible de trouver la section de liaison pour la section %d%B: Ã‰chec lors de la lecture de la section des donnÃ©es de dÃ©bogage%B: Descripteur de fonction rÃ©adressÃ© avec un opÃ©rande non nul%B: Erreur GAS: insn PTB inattendue avec R_SH_PT_16%B: la section GNU_MBIN Â«Â %AÂ Â» a un champ sh_info invalide: %d%B: dÃ©bordement GOT: Nombre de rÃ©adressages avec des offsets de 8 ou 16 bits > %d%B: dÃ©bordement GOT: Nombre de rÃ©adressages avec des offsets de 8 bits > %d%B: RÃ©adressage GOT Ã  0x%lx pas attendu dans les exÃ©cutables%B: la directive IMPORT AS de %s masque l'IMPORT AS prÃ©cÃ©dent%B: Taille de vecteur ISR en dÃ©saccord avec les modules prÃ©cÃ©dents: prÃ©cÃ©dent a %u octets; actuel a %u octets%B: jeu d'instructions ne concorde par avec les modules prÃ©cÃ©dents%B: erreur d'incohÃ©rence interne pour la valeur du registre global
+ allouÃ© Ã  l'Ã©dition de lien: liÃ©: 0x%lx%08lx != relÃ¢chÃ©: 0x%lx%08lx
+%B: Type de rÃ©adressage exportÃ© invalide: %d%B: Type de rÃ©adressage importÃ© invalide: %d%B: Champ sh_link (%d) invalide dans la section numÃ©ro %d%B: directive LOCAL: registre $%ld n'est pas un registre local.  Premier registre global est $%ld.%B: La table des descripteurs de symboles locaux peut Ãªtre NULL en application le rÃ©adressage %s sur un symbole local%B: RÃ©adressage mal composÃ© dÃ©tectÃ© dans la section %A%B: RÃ©adressage mal composÃ© dÃ©tectÃ© dans la section %s%B: OMIT_FP imbriquÃ©s dans %A.%B: pas de corps pour allouer un symbole de %d octets de longueur
+%B: Pas de corps pour allouer un nom de section %s
+%B: Pas de section de version de symbole pour le symbole avec version Â«Â %sÂ Â»%B: Pas assez de mÃ©moire pour allouer l'espace pour %lu symboles%B: Pas suffisamment d'espace pour les en-tÃªtes du programme, essayer l'option -N%B: Seuls les registres %%g[2367] peuvent Ãªtre dÃ©clarÃ©s en utilisant les registres STT_REGISTER%B: type de machine reconnue mais non traitÃ©e (0x%x) dans l'archive da la librairie de formats d'importation%B: RÃ©adressage %s (%d) n'est pas actuellement supportÃ©.
+%B: rÃ©adressage %s n'est pas encore supportÃ© pour le symbole %s%B: RÃ©adressages en format ELF gÃ©nÃ©rique (EM: %d)%B: rÃ©adressage relatif Ã  SB mais __c6xabi_DSBT_BASE n'est pas dÃ©fini%B: la section SHT_GROUP [index %d] n'a pas de section SHF_GROUP%B: Le symbole spÃ©cial Â«Â %sÂ Â» est uniquement autorisÃ© pour les architectures ARMv8-M ou ultÃ©rieures.%B: code exÃ©cutable local TLS ne peut Ãªtre liÃ© en objets partagÃ©s%B: Les sections TLS ne sont pas adjacentes:%B: Ã‰chec de la transition TLS de %s vers %s sur Â«Â %sÂ Â» Ã  0x%lx dans la section Â«Â %AÂ Â»%B: la table des matiÃ¨res des rÃ©adressages Ã  0x%x pour le symbole Â«Â %sÂ Â» sans aucune entrÃ©e%B: La premiÃ¨re section dans le segment PT_DYNAMIC n'est pas la section .dynamic%B: la cible (%s) du rÃ©adressage %s est dans la mauvaise section (%A)%B: Trop de sections: %d (>= %d)%B: Impossible de trier les rÃ©adressages - plusieurs tailles rencontrÃ©es%B: Impossible de trier les rÃ©adressages - leur taille est inconnue%B: type d'importation non traitÃ©e; %x%B: Architecture %s inconnue%B: L'attribut d'objet ARC obligatoire %d est inconnu.%B: L'attribut d'objet EABI obligatoire %d est manquant%B: Type de rÃ©adressage %d inconnu
 %B: Type de section inconnu dans le fichier a.out.adobe: %x
-%B: Commande .directive non reconnue: %s%B: type de nom d'importation non reconnu: %x%B: type d'importation non reconnu; %x%B: type de machine non reconnu (0x%x) dans l'archive de librairie de formats d'importation%B: Classe de stockage %d non reconnue pour %s symbole Â«%sÂ»%B: Attention: Ignore le fanion de section IMAGE_SCN_MEM_NOT_PAGED dans la section %s%B: Attention: instruction de repÃ©rage BLX vise la fonction de repÃ©rage Â«%sÂ».%B: Attention: mauvaise Â«%sÂ» taille d'option %u plus petite que son en-tÃªte%B: Attention: ne peut pas dÃ©terminer la fonction cible de la section d'Ã©bauche Â«%sÂ»%B: XMC_TC0 symbol Â«%sÂ» est la classe %d scnlen %d%B: Â«%sÂ» accÃ©dÃ© Ã  la fois comme symbole FDPIC et comme symbole local au thread%B: Â«%sÂ» accÃ©dÃ© Ã  la fois comme symbole normal et comme symbole FDPIC%B: Â«%sÂ» accÃ©dÃ© Ã  la fois comme symbole normal et comme symbole locale au thread%B: Â«%sÂ» contient des numÃ©ros de lignes mais de section d'encadrement%B: Â«%sÂ» est dans le chargeur de relocalisation mais pas dans celui des symboles%B: Â«ld -rÂ» non supportÃ© avec les objets PE MIPS
-%B: symbole XTY_ER Â«%sÂ» erronÃ©: classe %d scnum %d scnlen %d%B: pairage erronÃ©e pair/reflo aprÃ¨s refhi
-%B: mauvaise adresse de relocalisation 0x%lx dans la section Â«%AÂ»%B: mauvais index de relocalisation du symbole (0x%lx >= 0x%lx) pour l'offset 0x%lx de la section Â«%AÂ»%B: nom de section de rÃ©adressage erronÃ© Â«Â %sÂ Â»%B: longuer erronÃ©e de section dans ihex_read_section%B: mauvaise taille de la table des chaÃ®nes %lu%B: symbole index erronÃ©: %d%B: ne peut crÃ©er l'entrÃ©e de l'Ã©bauche %s%B: changÃ© dans le GP: BRSGP %s%B: classe %d symbole Â«%sÂ» n'a pas d'entrÃ©e auxiliaire%B: compilÃ© pour un systÃ¨me Ã  64 bits et la cible est de 32 bits%B: compilÃ© pour un systÃ¨me Ã  octets de poids fort alors que la cible
+%B: OMIT_FP non appariÃ© dans %A.%B: Commande .directive non reconnue: %s%B: type de nom d'importation non reconnu: %x%B: type d'importation non reconnu; %x%B: type de machine non reconnu (0x%x) dans l'archive de librairie de formats d'importation%B: Classe de stockage %d non reconnue pour %s symbole Â«Â %sÂ Â»%B: Transition de %s Ã  %s non supportÃ©e%B: Attention: Ignore le fanion de section IMAGE_SCN_MEM_NOT_PAGED dans la section %s%B: Attention: instruction de repÃ©rage BLX vise la fonction de repÃ©rage Â«Â %sÂ Â».%B: Attention: mauvaise Â«Â %sÂ Â» taille d'option %u plus petite que son en-tÃªte%B: Attention: ne peut pas dÃ©terminer la fonction cible de la section d'Ã©bauche Â«Â %sÂ Â»%B: Attention: gÃ©nÃ©ration de PLT dans le mode thumb-1 pas encore supportÃ©e%B: objet XCOFF partagÃ© alors qu'on ne produit pas de sortie XCOFF%B: XMC_TC0 symbol Â«Â %sÂ Â» est la classe %d scnlen %d%B: __gp ne couvre pas le segment de donnÃ©es court%B: Â«Â %AÂ Â» offset de %ld depuis Â«Â %AÂ Â» au delÃ  de la limite de ADDIUPC%B: Â«Â %sÂ Â» accÃ©dÃ© Ã  la fois comme symbole FDPIC et comme symbole local au thread%B: Â«Â %sÂ Â» accÃ©dÃ© Ã  la fois comme symbole normal et comme symbole FDPIC%B: Â«Â %sÂ Â» accÃ©dÃ© Ã  la fois comme symbole normal et comme symbole locale au thread%B: Â«Â %sÂ Â» est ses symboles spÃ©ciaux sont dans des sections diffÃ©rentes.%B: Â«Â %sÂ Â» contient des numÃ©ros de lignes mais de section d'encadrement%B: Â«Â %sÂ Â» est dans le chargeur de rÃ©adressage mais pas dans celui des symboles%B: rÃ©adressage non-PLT Â«Â %sÂ Â» pour le symbole dÃ©fini dans une bibliothÃ¨que partagÃ©e et accÃ©dÃ© depuis l'exÃ©cutable (recompiler le fichier avec -fPICÂ ?)%B: Â«Â ld -rÂ Â» non supportÃ© avec les objets PE MIPS
+%B: symbole standard Â«Â %sÂ Â» absent.%B: accÃ¨s au-delÃ  de la fin de la section fusionnÃ©e (%ld)%B: l'opÃ©rande -0x%x dans le rÃ©adressage %s vers le symbole Â«Â %sÂ Â» Ã  0x%lx dans la section Â«Â %AÂ Â» est hors limite%B: l'opÃ©rande 0x%x dans le rÃ©adressage %s vers le symbole Â«Â %sÂ Â» Ã  0x%lx dans la section Â«Â %AÂ Â» est hors limite%B: adresse 0x%s hors limite pour le fichier Intel hexadÃ©cimal%B: l'en-tÃªte aout spÃ©cifie un nombre invalide d'entrÃ©es de rÃ©pertoire de donnÃ©es: %d%B: tentative d'Ã©mettre du contenu Ã  une adresse 0x%lx qui n'est pas un multiple de 4
+%B: tentative de charger des chaÃ®nes depuis une section non-chaÃ®nes (numÃ©ro %d)%B: tentative de mÃ©langer des objets FDPIC et non-FDPIC%B: tentative d'Ã©crire un type de rÃ©adressage inconnu%B: symbole XTY_ER Â«Â %sÂ Â» erronÃ©: classe %d scnum %d scnlen %d%B: pairage erronÃ©e pair/reflo aprÃ¨s refhi
+%B: mauvaise adresse de rÃ©adressage 0x%lx dans la section Â«Â %AÂ Â»%B: mauvais index du symbole de rÃ©adressage (%#lx >= %#lx) pour l'offset %#Lx de la section Â«Â %AÂ Â»%B: nom de section de rÃ©adressage erronÃ© Â«Â %sÂ Â»%B: longuer erronÃ©e de section dans ihex_read_section%B: mauvaise taille de la table des chaÃ®nes %lu%B: symbole index erronÃ©: %d%B: rÃ©adressage base plus dÃ©calage vers le symbole registre: %s dans %A%B: rÃ©adressage base plus dÃ©calage vers le symbole registre: (inconnu) dans %A%B: ne peut reprÃ©senter la section Â«Â %AÂ Â» dans le fichier format objet a.out%B: ne peut reprÃ©senter la section Â«Â %AÂ Â» dans oasys%B: ne peut reprÃ©senter la section pour le symbole Â«Â %sÂ Â» dans le fichier format objet a.out%B: impossible de lier des modules utilisant des flottants matÃ©riels avec des modules utilisant des flottants logiciels%B: ne paut pas allouer un nom de ficheir pour le no. de fichier %d, %d octets
+%B: ne peut crÃ©er l'entrÃ©e de l'Ã©bauche %s%B: ne peut lier un fichier objet fdpic dans un exÃ©cutable non fdpic%B: ne peut lier un fichier objet non fdpic dans un exÃ©cutable fdpic%B: changÃ© dans le GP: BRSGP %s%B: classe %d symbole Â«Â %sÂ Â» n'a pas d'entrÃ©e auxiliaire%B: compilÃ© %s -mtune=%s et liÃ© avec des modules compilÃ©s %s -mtune=%s%B: compilÃ© comme un objet de 32 bits et %B est de 64 bits%B: compilÃ© comme un objet de 64 bits et %B est de 32 bits%B: compilÃ© pour un systÃ¨me Ã  64 bits et la cible est de 32 bits%B: compilÃ© pour un systÃ¨me Ã  octets de poids fort alors que la cible
 est un systÃ¨me Ã  octets de poids faible%B: compilÃ© pour un systÃ¨me Ã  octets de poids faible alors que la cible
-est un systÃ¨me Ã  octets de poids fort%B: compilÃ© normalement et fait l'Ã©dition de lien avec les modules compilÃ©s avec -mrelocatable%B: compilÃ© avec -mrelocatable et fait l'Ã©dition de lien avec les modules compilÃ©s normalement%B: ne peut repÃ©rer la section de sortie %A pour la section d'entrÃ©e %A%B: ne peut repÃ©rer la section de sortie %s%B: ne peut pas lire le contenu de la section Â«Â %AÂ Â»
-%B: csect Â«%sÂ» n'est pas dans un section d'encadrement%B: je ne sais pas comment traiter la section Â«%sÂ» [0x%8x] spÃ©cifique au systÃ¨me d'exploitation%B: je ne sais pas comment traiter la section Â«%sÂ» [0x%8x] allouÃ©e et spÃ©cifique Ã  l'application%B: je ne sais pas comment traiter la section Â«%sÂ» [0x%8x] spÃ©cifique au processeur%B: je ne sais pas comment traiter la section Â«%sÂ» [0x%8x]%B: rÃ©adressage relatif au dtp vers le symbole dynamique %s%B: Ã©bauche d'exportation en double %s%B: section dupliquÃ©e Â«Â %AÂ Â» a des contenus diffÃ©rents
+est un systÃ¨me Ã  octets de poids fort%B: compilÃ© normalement et fait l'Ã©dition de lien avec les modules compilÃ©s avec -mrelocatable%B: compilÃ© avec %s et liÃ© avec les modules compilÃ©s avec %s%B: compilÃ© avec %s et liÃ© avec les modules qui utilisent le rÃ©adressage non PIC%B: compilÃ© avec -mrelocatable et fait l'Ã©dition de lien avec les modules compilÃ©s normalement%B: champ de taille corrompu dans l'en-tÃªte du groupe de section: %#Lx%B: ne peut repÃ©rer la section de sortie %A pour la section d'entrÃ©e %A%B: ne peut pas lire le contenu de la section Â«Â %AÂ Â»
+%B: ne peut Ã©crire en sortie des entrÃ©es .cranges ajoutÃ©es%B: ne peut Ã©crire en sortie des entrÃ©es .cranges triÃ©es%B: csect Â«Â %sÂ Â» n'est pas dans un section d'encadrement%B: le rÃ©adressage GOT direct %s vers Â«Â %sÂ Â» sans registre de base ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©%B: le rÃ©adressage GOT direct R_386_GOT32X sur le symbole Â«Â %sÂ Â» sans registre de base ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©%B: directive LOCAL valide seulement avec un registre ou une valeur absolue%B: rÃ©adressage relatif au dtp vers le symbole dynamique %s%B: Ã©bauche d'exportation en double %s%B: section dupliquÃ©e Â«Â %AÂ Â» a des contenus diffÃ©rents
 %B: section dupliquÃ©e Â«Â %AÂ Â» avec des tailles diffÃ©rentes
-%B: systÃ¨me de poids fort ou faible incompatible avec celui sÃ©lectionnÃ© pour l'Ã©mulation%B: erreur: L'Ã©bauche d'erratum du Cortex A8 est allouÃ©e Ã  un emplacement peu sÃ»r%B: erreur: L'Ã©bauche d'erratum du Cortex A8 est hors limite (fichier d'entrÃ©e trop grand)%B: erreur: vernis VFP11 hors limite%B: erreur: type de rÃ©adressage %d non alignÃ© Ã  %08x rÃ©adressÃ© %p
-%B: erreur: l'attribut d'objet EABI obligatoire %d est manquant%B: classe de fichier %s incompatible avec %s%B: rÃ©adressage relatif au gp vers le symbole dynamique %s%B: symbole cachÃ© Â«Â %sÂ Â» dans %B est rÃ©fÃ©rencÃ© par DSO%B: symbole cachÃ© Â«Â %sÂ Â» n'est pas dÃ©fini%B: ignore les sections dupliquÃ©es Â«Â %AÂ Â»
-%B: type de rÃ©adressage %d illÃ©gal Ã  l'adresse 0x%lx%B: symbole index illÃ©gal dans la relocalisation: %d%B: type de machine incompatible. Sortie est 0x%x. EntrÃ©e est 0x%x%B: symbole indirect Â«%sÂ» vers Â«%sÂ» est une boucle%B: erreur interne dans ihex_read_section%B: symbole interne Â«Â %sÂ Â» dans %B est rÃ©fÃ©rencÃ© par DSO%B: symbole interne Â«Â %sÂ Â» n'est pas dÃ©fini%B: entrÃ©e SHT_GROUP invalide%B: lien invalide %lu pour la section de relocalisation %s (index %u)%B: type de rÃ©adressage %d invalide%B: chaÃ®ne de dÃ©calage invalide %u >= %lu pour la section Â«%sÂ»%B: le saut va trop loin
-%B: Ã©dition de liens du module %s avec les modules prÃ©cÃ©dents %s%B: Ã©dition de liens de code 32 bits avec du code 64 bits%B: Ã©dition de liens entre fichiers 64 bits et fichiers 32 bits%B: Ã©dition de liens spÃ©cifiques pour UltraSPARC avec du code spÃ©cifique HAL%B: Ã©dition de liens entre fichiers auto-pic et fichiers non-auto-pic%B: Ã©dition de liens entre des fichiers Ã  octets de poids fort et des fichiers Ã  octets de poids faible%B: Ã©dition de liens entre fichiers constant-gp et fichiers non-constant-gp%B: fichiers liÃ©s compilÃ©s pour des entiers de 16 bits (-mshort) et d'autres pour des entiers de 32 bits%B: fichiers liÃ©s compilÃ©s pour des doubles de 32 bits (-fshort-double) et d'autres pour des doubles de 64 bits%B: certains fichiers liÃ©s compilÃ©s pour HCS12 avec d'autres compilÃ©s pour HC12%B: Ã©dition de liens pour des fichiers Ã  octets de poids faible avec des fichiers Ã  octets de poids fort%B: liaison de code non-pic dans un exÃ©cutable Ã  position indÃ©pendante%B: Ã©dition de liens trap-on-NULL-dereference avec des fichiers non-trapping%B: chargeur de relocalisation dans la section %A en lecture seule%B: chargeur de relocalisation dans une section non reconnnue Â«%sÂ»%B: symbole local Â«Â %sÂ Â» dans %B est rÃ©fÃ©rencÃ© par DSO%B: XTY_LD Â«%sÂ» mal placÃ©%B: setion TLS manquante pour le rÃ©adressage %s vers Â«Â %sÂ Â» Ã  0x%lx dans la section Â«Â %AÂ Â».%B: aucune info de groupe pour la section %A%B: code non pic avec des rÃ©adressages imm vers le symbole dynamique Â«Â %sÂ Â»%B: index de symbole non nul (0x%lx) pour l'offset 0x%lx de la section Â«%AÂ» quand le fichier objet n'a pas de table de symboles%B: rÃ©adressage relatif au PC vers le symbole dynamique %s%B: rÃ©adressage relatif au PC vers le symbole faible non dÃ©fini %s%B: probablement compilÃ© sans -fPIC?%B: symbole protÃ©gÃ© Â«Â %sÂ Â» n'est pas dÃ©fini%B: relocalisation %s:%d n'est pas dans csect%B: relocalisation par rapport Ã  un indexe de symbole inexistant: %ld%B: rÃ©adressage %s vers %s Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© en crÃ©ant un objet partagÃ© %s%B: le rÃ©adressage %s vers le symbole STT_GNU_IFUNC Â«Â %sÂ Â» a l'opÃ©rande non nul: %d%B: le rÃ©adressage %s sur le symbole STT_GNU_IFUNC Â«Â %sÂ Â» n'est pas gÃ©rÃ© par %s%B: rÃ©adressage de %s en vertu de Â«Â %sÂ Â» ne peut Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©; recompilez avec -fPIC%B: le rÃ©adressage %s sur le symbole Â«Â %sÂ Â» n'est pas supportÃ© en mode x32%B: rÃ©adressage %s vers le %s non dÃ©fini Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© en crÃ©ant un objet partagÃ© %s%B: rÃ©adressage de %s ne peut Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©; recompilez avec -fPIC%B: rÃ©adressage %s ne peut Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©%B: rÃ©adressage R_386_GOTOFF vers la fonction protÃ©gÃ©e Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©%B: rÃ©adressage R_386_GOTOFF sur le symbole %s Â«Â %sÂ Â» non dÃ©fini ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©%B: rÃ©adressage R_X86_64_GOTOFF64 vers la fonction protÃ©gÃ©e Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©%B: rÃ©adressage Ã  Â«Â %A+0x%xÂ Â» fait rÃ©fÃ©rence au symbole Â«Â %sÂ Â» avec un opÃ©rande non nul%B: taille du rÃ©adressage ne concorde pas dans %B section %A%B: relocalisations dans la section Â«%AÂ» qui est vide%B: section %A avec lma %#lx ajustÃ©e Ã  %#lx%B: section %s: dÃ©bordement de la table de chaÃ®nes Ã  l'offset %ld%B: la section Â«%AÂ» ne peut pas Ãªtre allouÃ©e dans le segment %d%B: sh_link [%d] n'est pas correct dans la section Â«%AÂ»%B: le sh_link de la section Â«%AÂ» pointe vers la section abandonnÃ©e Â«%AÂ» de Â«%BÂ»%B: le sh_link de la section Â«%AÂ» pointe vers la section supprimÃ©e Â«%AÂ» de Â«%BÂ»%B: taille du champ est zÃ©ro dans l'en-tÃªte de la librairie de formats d'importation%B: spÃ©culation d'ajustements vers le symbole dynamique %s%B: chaÃ®ne n'est pas terminÃ©e par un zÃ©ro dans le fichier objet ILF.%B: symbole Â«%sÂ» a un type csect %d non reconnu%B: symbole Â«%sÂ» a une classe smclas %d non reconnue%B: symbole Â«%sÂ» requis mais absent%B: trop de sections (%d)%B: rÃ©adressage relatif au tp vers le symbole dynamique %s%B: impossible de remplir DataDictionary[12] car .idata$5 est manquant%B: impossible de remplir DataDictionary[1] car .idata$2 est manquant%B: impossible de remplir DataDictionary[1] car .idata$4 est manquant%B: impossible de remplir DataDictionary[9] car __tls_used est manquant%B: impossible de remplir DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] car .idata$6 est manquant%B: impossible de remplir DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] car .idata$6 est manquant%B: incapable de repÃ©rer le liant ARM Â«%sÂ» pour Â«%sÂ»%B: incapable de repÃ©rer le REPÃˆRE de liant Â«%sÂ» pour Â«%sÂ»%B: incapable de trouver le vernis VFP11 Â«%sÂ»%B: impossible d'obtenir la section dÃ©compressÃ©e %A%B: impossible d'initialiser le statut de compression de la section %s%B: impossible d'initialiser le statut de dÃ©compression de la section %s%B: rÃ©fÃ©rence au symbole non dÃ©fini Â«%sÂ»%B: symbole Â«%sÂ» indÃ©fini dans la section .opd%B: symbole indÃ©fini sur le rÃ©adressage R_PPC64_TOCSAVE%B: type ATN %d inattendu dans la partie externe%B: attention: redÃ©finition inattendue du symbole indirect avec version Â«%sÂ»%B: type de relocalisation %u inattendu dans la section .opd%B: type inattendu aprÃ¨s ATN%B: rÃ©adressage dynamique non traitÃ© vers %s%B: non implantÃ© %s
-%B: enregistrement ATI non implantÃ© %u pour le symbole %u%B: [%d] inconnu dans la section Â«%sÂ» du groupe [%s]%B: type de rÃ©adressage %d inconnu%B: type de rÃ©adressage %d inconnu ou non supportÃ©%B: rÃ©adressage inconnu (0x%x) dans la section Â«Â %AÂ Â»%B: type de rÃ©adressage %i non supportÃ©%B: type de rÃ©adressage %i non supportÃ©
-%B: type de rÃ©adressage %s non supportÃ©%B: type de rÃ©adressage non supportÃ©: ALPHA_R_GPRELHIGH%B: type de rÃ©adressage non supportÃ©: ALPHA_R_GPRELLOW%B: utilise des symboles prÃ©fixÃ©s par _ mais Ã©crits les symboles sans prÃ©fixes dans le fichier%B: utilise des champs e_flags (0x%lx) diffÃ©rents des modules prÃ©cÃ©dents (0x%lx)%B: utilise des symboles sans prÃ©fixe mais ajoute le prÃ©fixe _ aux symboles dans le fichier%B: version du nÅ“ud pas trouvÃ©e pour le symbole %s%B: attention: symbole COMDAT Â«%sÂ» ne concorde par avec le nom de section Â«%sÂ»%B: attention: segment chargeable vide dÃ©tectÃ©, est-ce intentionnel ?
-%B: attention: section allouÃ©e Â«%sÂ» n'est pas dans le segment%B: attention: information de numÃ©ro de ligne dÃ©doublÃ©e pour Â«%sÂ»%B: attention: symbole d'index illÃ©gal %ld dans les numÃ©ros de ligne%B: attention: symbole index illÃ©gal %ld dans les relocalisations%B: attention: erreur lors de la lecture de la table des numÃ©ros de ligne%B: attention: Ã©dition de liens des fichiers PIC avec des fichiers non PIC%B: attention: Ã©dition de liens des fichiers abicalls avec des fichiers non abicalls%B: attention: le palliatif VFP11 n'est pas nÃ©cessaire avec l'architecture cible%B: attention: sh_link n'a pas de valeur pour la section Â«%AÂ»%B: attention: attribut d'objet EABI %d inconnu%B:%A%s dÃ©passe la taille de recouvrement
-%B:%A: Attention: relocalisation Red Hat rÃ©prouvÃ©e %B:%d: Mauvaise somme de contrÃ´le dans le fichier S-record
-%B:%d: caractÃ¨re inattendu Â«%sÂ» dans le fichier S-record
-%B:%d: caractÃ¨re inattendu Â«%sÂ» dans le fichier Intel hexadÃ©cimal%B:%u: somme de contrÃ´le erronÃ©e dans le fichier Intel hexadÃ©cimal (attendu %u, obtenu %u)%B:%u: longueur erronÃ©e de l'enregistrement d'adresse Ã©tendue dans le fichier Intel hexadÃ©cimal%B:%u: longueur erronÃ©e de l'enregistrement d'adresse Ã©tendue linÃ©aire dans le fichier Intel hexadÃ©cimal%B:%u: longueur erronÃ©e d'adresse Ã©tendue linÃ©raire de dÃ©but dans le fichier Intel hexadÃ©cimal%B:%u: longueur erronÃ©e d'adresse Ã©tendue de dÃ©but dans le fichier Intel hexadÃ©cimal%B:%u: type ihex %u non reconnu dans le fichier Intel hexadÃ©cima%C: attention: rÃ©adressage vers Â«Â %sÂ Â» fait rÃ©fÃ©rence Ã  un segment diffÃ©rent
+%B: objet dynamique sans section .loader%B: rencontre du symbole d'une Ã©tiquette de donnÃ©e dans l'entrÃ©e%B: systÃ¨me de poids fort ou faible incompatible avec celui sÃ©lectionnÃ© pour l'Ã©mulation%B: la fonction Â«Â %sÂ Â» d'entrÃ©e est vide.%B: fonction Â«Â %sÂ Â» d'entrÃ©e par Ã©crite.%B: erreur: non concordance de l'ABI avec les modules prÃ©cÃ©dents.%B: erreur: L'alignement Ã  la puissance %d de la section Â«Â %AÂ Â» est trop grand%B: erreur: Impossible de crÃ©er le trampoline (veneer) du STM32L4XX.%B: erreur: Ne peut dÃ©finir _ITB_BASE_%B: erreur: L'Ã©bauche d'erratum du Cortex A8 est allouÃ©e Ã  un emplacement peu sÃ»r%B: erreur: L'Ã©bauche d'erratum du Cortex A8 est hors limite (fichier d'entrÃ©e trop grand)%B: erreur: L'Ã©bauche d'erratum du 835769 est hors limite (fichier d'entrÃ©e trop grand)%B: erreur: L'Ã©bauche d'erratum du 843419 est hors limite (fichier d'entrÃ©e trop grand)%B: erreur: Jeu d'instructions ne concorde par avec les modules prÃ©cÃ©dents.%B: erreur: segment PHDR non couvert par le segment LOAD%B: erreur: vernis VFP11 hors limite%B: erreur: le segment de non-chargement %d inclus un en-tÃªte de fichier ou de programme%B: erreur: type de rÃ©adressage %d non alignÃ© Ã  %08x rÃ©adressÃ©`%08x
+%B: erreur: type de rÃ©adressage %d non alignÃ© Ã  %08x rÃ©adressÃ© %p
+%B: erreur: l'attribut d'objet EABI obligatoire %d est manquant%B: erreur: type de rÃ©adressage %d inconnu.%B: Ã©chec de la gÃ©nÃ©ration de la bibliothÃ¨que d'importation%B: fatal: symboles gÃ©nÃ©riques rÃ©cupÃ©rÃ©s avant la relÃ¢che%B: classe de fichier %s incompatible avec %s%B: rÃ©adressage relatif au gp vers le symbole dynamique %s%B: symbole cachÃ© Â«Â %sÂ Â» dans %B est rÃ©fÃ©rencÃ© par DSO%B: symbole cachÃ© Â«Â %sÂ Â» n'est pas dÃ©fini%B: ignore les sections dupliquÃ©es Â«Â %AÂ Â»
+%B: type de rÃ©adressage %d illÃ©gal Ã  l'adresse 0x%lx%B: nom illÃ©gal de section Â«Â %AÂ Â»%B: symbole index %ld illÃ©gal dans les rÃ©adressages%B: symbole index illÃ©gal dans le rÃ©adressage: %d%B: type de machine incompatible. Sortie est 0x%x. EntrÃ©e est 0x%x%B: taille incorrecte pour le symbole Â«Â %sÂ Â».%B: symbole indirect Â«Â %sÂ Â» vers Â«Â %sÂ Â» est une boucle%B: erreur interne dans ihex_read_section%B: erreur interne, registre interne de section %A contient quelque chose
+%B: erreur interne, table de symbole a changÃ© de taille de %d Ã  %d mots
+%B: symbole interne Â«Â %sÂ Â» dans %B est rÃ©fÃ©rencÃ© par DSO%B: symbole interne Â«Â %sÂ Â» n'est pas dÃ©fini%B: numÃ©ro de rÃ©adressage AVR invalide: %d%B: numÃ©ro de rÃ©adressage CR16C invalide: %d%B: numÃ©ro de rÃ©adressage CRIS invalide: %d%B: numÃ©ro de rÃ©adressage D10V invalide: %d%B: numÃ©ro de rÃ©adressage D30V invalide: %d%B: numÃ©ro de rÃ©adressage Epiphany invalide: %d%B: numÃ©ro de rÃ©adressage FR30 invalide: %d%B: numÃ©ro de rÃ©adressage FRV invalide: %d%B: numÃ©ro de rÃ©adressage IP2K invalide: %d%B: numÃ©ro de rÃ©adressage IQ2000 invalide: %d%B: numÃ©ro de rÃ©adressage LM32 invalide: %d%B: numÃ©ro de rÃ©adressage M32C invalide: %d%B: numÃ©ro de rÃ©adressage M32R invalide: %d%B: numÃ©ro de rÃ©adressage M68HC11 invalide: %d%B: numÃ©ro de rÃ©adressage M68HC12 invalide: %d%B: numÃ©ro de rÃ©adressage MEP invalide: %d%B: numÃ©ro de rÃ©adressage METAG invalide: %d%B: numÃ©ro de rÃ©adressage MMIX invalide: %d%B: numÃ©ro de rÃ©adressage MSP430 invalide: %d%B: numÃ©ro de rÃ©adressage MSP430X invalide: %d%B: numÃ©ro de rÃ©adressage MT invalide: %d%B: numÃ©ro de rÃ©adressage Moxie invalide: %d%B: numÃ©ro de rÃ©adressage NDS32 invalide: %d%B: numÃ©ro de rÃ©adressage OR1K invalide: %d%B: numÃ©ro de rÃ©adressage RL78 invalide: %d%B: numÃ©ro de rÃ©adressage RX invalide: %d%B: entrÃ©e SHT_GROUP invalide%B: numÃ©ro de rÃ©adressage V850 invalide: %d%B: numÃ©ro de rÃ©adressage Visium invalide: %d%B: numÃ©ro de rÃ©adressage XGate invalide: %d%B: numÃ©ro de rÃ©adressage XTENSA invalide: %d%B: numÃ©ro de rÃ©adressage i960 invalide: %d%B: entrÃ©e de bibliothÃ¨que d'import invalide: Â«Â %sÂ Â».%B: lien %u invalide pour la section de rÃ©adressages %s (index %u)%B: fichier mmo invalide: YZ de lop_end (%ld) n'est pas Ã©gal au nombre de tetras du lop_stab prÃ©cÃ©dent (%ld)
+%B: fichier mmo invalide: attendu YZ = 1 obtenu YZ = %d pour lop_quote
+%B: fichier mmo invalide: attendu y = 0, obtenu y = %d pour lop_fixrx
+%B: fichier mmo invalide: attendu z = 1 ou z = 2, obtenu z = %d pour lop_fixo
+%B: fichier mmo invalide: attendu z = 1 ou z = 2, obtenu z = %d pour lop_loc
+%B: fichier mmo invalide: attendu z = 16 ou z = 24, obtenu z = %d pour lop_fixrx
+%B: fichier mmo invalide: champs y et z de lop_stab non nul, y: %d, z: %d
+%B: fichier mmo invalide: nom de fichier %d n'a pas Ã©tÃ© spÃ©cifiÃ© avant son utilisation
+%B: fichier mmo invalide: no. de fichier %d Â«Â %sÂ Â», a dÃ©jÃ  Ã©tÃ© entrÃ© en tant que Â«Â %sÂ Â»
+%B: fichier mmo invalide: valeur d'initialisation pour $255 n'est pas Â«Â MainÂ Â»
+%B: fichier mmo invalide: octet de tÃªte du mot de l'opÃ©rande doit Ãªtre 0 ou 1, obtenu %d pour lop_fixrx
+%B: fichier mmo invalide: lop_end n'est pas le dernier Ã©lement dans le fichier
+%B: fichier mmo invalide: lopcode Â«Â %dÂ Â» non supportÃ©
+%B: type de rÃ©adressage %d invalide%B: champ de taille invalide dans l'en-tÃªte du groupe de section: %#Lx%B: symbole spÃ©ciale Â«Â %sÂ Â» invalide.%B: symbole standard Â«Â %sÂ Â» invalide.%B: adresse de dÃ©part invalide pour des registres initialisÃ©s de longueur %ld: 0x%lx%08lx
+%B: chaÃ®ne de dÃ©calage invalide %u >= %lu pour la section Â«Â %sÂ Â»%B: table de symboles invalide: symbole Â«Â %sÂ Â» dupliquÃ©
+%B: le saut va trop loin
+%B: dÃ©bordement du nombre de lignes: 0x%lx > 0xffff%B: Ã©dition de liens du module %s avec les modules prÃ©cÃ©dents %s%B: Ã©dition de liens de code 32 bits avec du code 64 bits%B: Ã©dition de liens entre fichiers 64 bits et fichiers 32 bits%B: Ã©dition de liens spÃ©cifiques pour UltraSPARC avec du code spÃ©cifique HAL%B: Ã©dition de liens entre fichiers auto-pic et fichiers non-auto-pic%B: Ã©dition de liens entre des fichiers Ã  octets de poids fort et des fichiers Ã  octets de poids faible%B: Ã©dition de liens entre fichiers constant-gp et fichiers non-constant-gp%B: fichiers liÃ©s compilÃ©s pour des entiers de 16 bits (-mshort) et d'autres pour des entiers de 32 bits%B: fichiers liÃ©s compilÃ©s pour des doubles de 32 bits (-fshort-double) et d'autres pour des doubles de 64 bits%B: certains fichiers liÃ©s compilÃ©s pour HCS12 avec d'autres compilÃ©s pour HC12%B: Ã©dition de liens pour des fichiers Ã  octets de poids faible avec des fichiers Ã  octets de poids fort%B: liaison de code non-pic dans un exÃ©cutable Ã  position indÃ©pendante%B: Ã©dition de liens trap-on-NULL-dereference avec des fichiers non-trapping%B: chargeur de rÃ©adressages dans la section %A en lecture seule%B: chargeur de rÃ©adressage dans une section non reconnue Â«Â %sÂ Â»%B: symbole local Â«Â %sÂ Â» dans %B est rÃ©fÃ©rencÃ© par DSO%B: XTY_LD Â«Â %sÂ Â» mal placÃ©%B: setion TLS manquante pour le rÃ©adressage %s vers Â«Â %sÂ Â» Ã  0x%lx dans la section Â«Â %AÂ Â».%B: aucune info de groupe pour la section %A%B: pas de registre initialisÃ©; section de longueur 0
+%B: aucun symbole trouvÃ© dans la bibliothÃ¨que d'importation%B: aucune section de groupe valable trouvÃ©e%B: code non pic avec des rÃ©adressages imm vers le symbole dynamique Â«Â %sÂ Â»%B: index de symbole non nul (%#lx) pour l'offset %#Lx de la section Â«Â %AÂ Â» quand le fichier objet n'a pas de table de symboles%B: taille de l'objet ne concorde pas avec la taille de la cible %B%B: pas assez de mÃ©moire en crÃ©ant le nom pour une section vide%B: pas assez de mÃ©moire dans _bfd_elf_get_property%B: la taille de page est trop grande (0x%x)%B: rÃ©adressage relatif au PC vers le symbole dynamique %s%B: rÃ©adressage relatif au PC vers le symbole faible non dÃ©fini %s%B: le greffon doit gÃ©rer l'objet lto%B: probablement compilÃ© sans -fPIC?%B: symbole protÃ©gÃ© Â«Â %sÂ Â» n'est pas dÃ©fini%B: rÃ©adressage de registre vers le symbole non-registre: %s dans %A%B: rÃ©adressage de registre vers le symbole non-registre: (inconnu) dans %A%B: rÃ©adressage %s:%d n'est pas dans csect%B: rÃ©adressage par rapport Ã  un index de symbole inexistant: %ld%B: lien relocalisable de %s vers %s n'est pas supportÃ©%1$B: rÃ©adressage %2$s vers %4$s%3$sÂ«Â %5$sÂ Â» ne peut pas Ãªtre utilisÃ© en crÃ©ant un objet partagÃ©%6$s%B: le rÃ©adressage %s vers le symbole STT_GNU_IFUNC Â«Â %sÂ Â» a l'opÃ©rande non nul: %d%B: le rÃ©adressage %s sur le symbole STT_GNU_IFUNC Â«Â %sÂ Â» n'est pas gÃ©rÃ© par %s%B: le rÃ©adressage %s sur le symbole STT_GNU_IFUNC Â«Â %sÂ Â» n'est pas supportÃ©%B: rÃ©adressage de %s en vertu de Â«Â %sÂ Â» ne peut Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©; recompilez avec -fPIC%B: le rÃ©adressage de %s vers le symbole externe ou non dÃ©fini Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© en construisant un %s; recompilez avec -fPIC%B: le rÃ©adressage %s sur le symbole Â«Â %sÂ Â» n'est pas supportÃ© en mode x32%B: rÃ©adressage de %s en vertu du symbol Â«Â %sÂ Â» qui peut Ãªtre liÃ© avec l'extÃ©rieur ne peut Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©; recompilez avec -fPIC%B: rÃ©adressage de %s ne peut Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©; recompilez avec -fPIC%B: rÃ©adressage %s ne peut Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©%B: rÃ©adressage R_386_GOTOFF vers la %s protÃ©gÃ©e Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©%B: rÃ©adressage R_386_GOTOFF sur le symbole %s Â«Â %sÂ Â» non dÃ©fini ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©%B: rÃ©adressage R_X86_64_GOTOFF64 vers la %s protÃ©gÃ©e Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©%B: rÃ©adressage R_X86_64_GOTOFF64 sur le symbole %s Â«Â %sÂ Â» non dÃ©fini ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©%B: rÃ©adressage Ã  Â«Â %A+0x%xÂ Â» fait rÃ©fÃ©rence au symbole Â«Â %sÂ Â» avec un opÃ©rande non nul%B: taille du rÃ©adressage ne concorde pas dans %B section %A%B: rÃ©adressages dans la section Â«Â %AÂ Â» qui est vide%B: section %A avec lma %#Lx ajustÃ©e Ã  %#Lx%B: section %A: dÃ©bordement de la table de chaÃ®nes Ã  l'offset %ld%B: la section Â«Â %AÂ Â» ne peut pas Ãªtre allouÃ©e dans le segment %d%B: l'entrÃ©e de groupe de section %u est corrompue%B: sh_link [%d] n'est pas correct dans la section Â«Â %AÂ Â»%B: le sh_link de la section Â«Â %AÂ Â» pointe vers la section abandonnÃ©e Â«Â %AÂ Â» de Â«Â %BÂ Â»%B: le sh_link de la section Â«Â %AÂ Â» pointe vers la section supprimÃ©e Â«Â %AÂ Â» de Â«Â %BÂ Â»%B: dÃ©bordement du segment de donnÃ©es court (0x%lx >= 0x400000)%B: taille du champ est zÃ©ro dans l'en-tÃªte de la librairie de formats d'importation%B: spÃ©culation d'ajustements vers le symbole dynamique %s%B: taille de pile spÃ©cifiÃ©e et %s dÃ©fini%B: chaÃ®ne n'est pas terminÃ©e par un zÃ©ro dans le fichier objet ILF.%B: chaÃ®ne trop longue (%d caractÃ¨res, max 65535)%B: support pour les dynamiques locaux pas implÃ©mentÃ©e%B: symbole Â«Â %sÂ Â» a un type csect %d non reconnu%B: symbole Â«Â %sÂ Â» a une classe smclas %d non reconnue%B: symbole Â«Â %sÂ Â» requis mais absent%B: l'adresse de la fonction protÃ©gÃ©e Â«Â %sÂ Â» ne peut Ãªtre prise lors de la crÃ©ation d'une librairie partagÃ©e%B: la cible (%s) d'un rÃ©adressage %s est dans la mauvaise section de sortie (%s)%B: trop de registres initialisÃ©s; longueur de section %ld
+%B: trop de sections (%d)%B: trop de sections: %u%B: rÃ©adressage relatif au tp vers le symbole dynamique %s%B: impossible de crÃ©er une section vide factice%B: impossible de remplir DataDictionary[12] car .idata$5 est manquant%B: impossible de remplir DataDictionary[1] car .idata$2 est manquant%B: impossible de remplir DataDictionary[1] car .idata$4 est manquant%B: impossible de remplir DataDictionary[9] car __tls_used est manquant%B: impossible de remplir DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] car .idata$6 est manquant%B: impossible de remplir DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] car .idata$6 est manquant%B: incapable de repÃ©rer le liant ARM Â«Â %sÂ Â» pour Â«Â %sÂ Â»%B: incapable de trouver le trampoline (veneer) Â«Â %sÂ Â» pour le STM32L4XX%B: incapable de repÃ©rer le REPÃˆRE de liant Â«Â %sÂ Â» pour Â«Â %sÂ Â»%B: incapable de trouver le trampoline (veneer) Â«Â %sÂ Â» pour le VFP11%B: impossible de trouver le nom pour une section vide%B: impossible d'obtenir la section dÃ©compressÃ©e %A%B: impossible d'initialiser le statut de compression de la section %s%B: impossible d'initialiser le statut de dÃ©compression de la section %s%B: impossible de charger le nom de section COMDAT%B: rÃ©fÃ©rence au symbole non dÃ©fini Â«Â %sÂ Â»%B: symbole Â«Â %sÂ Â» indÃ©fini dans la section .opd%B: symbole indÃ©fini sur le rÃ©adressage R_PPC64_TOCSAVE%B: type ATN %d inattendu dans la partie externe%B: attention: redÃ©finition inattendue du symbole indirect avec version Â«Â %sÂ Â»%B: type de rÃ©adressage %u inattendu dans la section .opd%B: type inattendu aprÃ¨s ATN%B: rÃ©adressage dynamique non traitÃ© vers %s%B: non implantÃ© %s
+%B: enregistrement ATI non implantÃ© %u pour le symbole %u%B: commande de chargement inconnue 0x%lx%B: type de rÃ©adressage %d inconnu%B: type de rÃ©adressage %d inconnu pour le symbole %s%B: type [%#x] inconnu dans la section Â«Â %sÂ Â»%B: type [%#x] de section Â«Â %sÂ Â» inconnu dans le groupe [%A]%B: type de rÃ©adressage %d inconnu ou non supportÃ©%B: numÃ©ro de rÃ©adressage Alpha non reconnu: %d%B: numÃ©ro de rÃ©adressage CR16 non reconnu: %d%B: numÃ©ro de rÃ©adressage CRX non reconnu: %d%B: numÃ©ro de rÃ©adressage I370 non reconnu: %d%B: numÃ©ro de rÃ©adressage MCore non reconnu: %d%B: numÃ©ro de rÃ©adressage MN10300 non reconnu: %d%B: numÃ©ro de rÃ©adressage MicroBlaze non reconnu: %d%B: numÃ©ro de rÃ©adressage PPC non reconnu: %d%B: numÃ©ro de rÃ©adressage PicoJava non reconnu: %d%B: numÃ©ro de rÃ©adressage SH non reconnu: %d%B: numÃ©ro de rÃ©adressage SPU non reconnu: %d%B: numÃ©ro de rÃ©adressage VAX non reconnu: %d%B: rÃ©adressage inconnu (0x%x) dans la section Â«Â %AÂ Â»%B: symbole non reconnue Â«Â %sÂ Â» fanions 0x%x%B: appel non-PIC non supportÃ© vers IFUNC Â«Â %sÂ Â»%B: type de rÃ©adressage %i non supportÃ©%B: type de rÃ©adressage %i non supportÃ©
+%B: type de rÃ©adressage %s non supportÃ©%B: type de rÃ©adressage non supportÃ© 0x%02x%B: type de rÃ©adressage non supportÃ©: ALPHA_R_GPRELHIGH%B: type de rÃ©adressage non supportÃ©: ALPHA_R_GPRELLOW%B: sÃ©quence de caractÃ¨res large 0x%02X 0x%02X non supportÃ©e aprÃ¨s le nom de symbole dÃ©butant par Â«Â %sÂ Â»
+%B: utilise les instructions %s tandis que les modules prÃ©cÃ©dents utilisent les instructions %s%B: utilise des symboles prÃ©fixÃ©s par _ mais Ã©crits les symboles sans prÃ©fixes dans le fichier%B: utilise des champs e_flags (%#x) diffÃ©rents des modules prÃ©cÃ©dents (%#x)%B: utilise des champs e_flags (0x%lx) diffÃ©rents des modules prÃ©cÃ©dents (0x%lx)%B: utilise diffÃ©rents champs e_flags (0x%lx) que les modules prÃ©cÃ©dents (0x%lx)%B: utilise des instructions qui sont incompatibles avec les instructions utilisÃ©es dans les modules prÃ©cÃ©dents%B: utilise des symboles sans prÃ©fixe mais ajoute le prÃ©fixe _ aux symboles dans le fichier%B: compteur de version (%ld) ne concorde pas avec le symbole du compteur (%ld)%B: version du nÅ“ud pas trouvÃ©e pour le symbole %s%B: la visibilitÃ© du symbole Â«Â %sÂ Â» a changÃ©.%B: fichier core d'avertissement tronquÃ©%B: attention: %A: dÃ©bordement du compteur de numÃ©ro de ligne: 0x%lx > 0xffff%B: attention: %s pointe vers le rÃ©adressage non reconnu Ã  0x%lx.%B: attention: rÃ©adressage %s vers le symbole Â«Â %sÂ Â» de la section %A%B: attention: rÃ©adressage %s vers 0x%x de la section %A%B: attention: %s: dÃ©bordement du compteur de numÃ©ro de ligne: 0x%lx > 0xffff%B: attention: symbole COMDAT Â«Â %sÂ Â» ne concorde par avec le nom de section Â«Â %sÂ Â»%B: attention: Segment chargeable vide dÃ©tectÃ© Ã  vaddr=%#Lx, est-ce intentionnelÂ ?%B: attention: L'ordre des octets n'est pas le mÃªme que dans les modules prÃ©cÃ©dents.%B: attention: ajout GOT de %ld Ã  Â«Â %sÂ Â» ne concorde par avec l'ajout GOT prÃ©cÃ©dent de %ld%B: attention: Versions elf %s et %s non compatibles.%B: attention: ASE incohÃ©rents entre e_flags et .MIPS.abiflags%B: attention: ABI FP incohÃ©rentes entre .gnu.attributes and .MIPS.abiflags%B: attention: ISA incohÃ©rentes entre e_flags et .MIPS.abiflags%B: attention: Extensions ISA incohÃ©rentes entre e_flags et .MIPS.abiflags%B: attention: Pas de symbole trouvÃ© pour la section Â«Â %sÂ Â»%B: attention: Version plus ancienne du fichier objet rencontrÃ©e. Veuillez recompiler avec la chaÃ®ne d'outils actuelle.%B: attention: ignore l'ajout PLT de %d Ã  Â«Â %sÂ Â» de la section %A%B: attention: Fanion inattendu dans le champ flags2 de .MIPS.abiflags (0x%lx)%B: attention: section allouÃ©e Â«Â %sÂ Â» n'est pas dans le segment%B: attention: ne peut gÃ©rer R_NDS32_25_ABS_RELA en mode partagÃ©.%B: attention: prÃ©tend avoir 0xffff rÃ©adressages, sans dÃ©bordement%B: attention: information de numÃ©ro de ligne dÃ©doublÃ©e pour Â«Â %sÂ Â»%B: attention: symbole illÃ©gal dans l'entrÃ©e %d des numÃ©ros de lignes%B: attention: symbole index illÃ©gal %ld dans les rÃ©adressages%B: attention: symbole d'index 0x%lx illÃ©gal dans l'entrÃ©e %d des numÃ©ros de lignes%B: attention: isymMax (%ld) est plus grand que ifdMax (%d)
+%B: attention: erreur lors de la lecture de la table des numÃ©ros de ligne%B: attention: Ã©dition de liens des fichiers PIC avec des fichiers non PIC%B: attention: Ã©dition de liens des fichiers abicalls avec des fichiers non abicalls%B: attention: boucle dÃ©tectÃ©e dans les dÃ©pendances de sections%B: attention: plusieurs tables de symboles dynamiques ont Ã©tÃ© dÃ©tectÃ©es â€” la table dans la section %u est ignorÃ©e%B: attention: plusieurs tables de symboles dÃ©tectÃ©es â€” la table dans la section %u est ignorÃ©e%B: attention: rÃ©adressage SDA_BASE a Ã©chouÃ©.%B: attention: un alignement de segment de %#Lx est trop grand%B: attention: le palliatif STM32L4XX sÃ©lectionnÃ© n'est pas nÃ©cessaire avec l'architecture cible%B: attention: le palliatif VFP11 sÃ©lectionnÃ© n'est pas nÃ©cessaire avec l'architecture cible%B: attention: sh_link n'a pas de valeur pour la section Â«Â %AÂ Â»%B: attention: table de symboles trop grande pour mmo, plus grande que 65535 mots de 32 bits: %d. Seul Â«Â MainÂ Â» sera produit.
+%B: attention: accÃ¨s non alignÃ© Ã  une entrÃ©e GOT.%B: attention: accÃ¨s non alignÃ© Ã  une petite donnÃ©e. Pour l'entrÃ©e: {%d, %d, %d}, adr = 0x%x, alignement = 0x%x.%B: attention: attribut d'objet EABI %d inconnu%B: le rÃ©adressage TLS ne sera pas rÃ©solu Ã  l'exÃ©cution%B:%A%s dÃ©passe la taille de recouvrement
+%B:%A: %s et %s doivent Ãªtre dans la mÃªme section d'entrÃ©e%B:%A: Attention: rÃ©adressage Red Hat rÃ©prouvÃ©e %B:%A: erreur: symbole de rÃ©fÃ©rence des rÃ©adressages %s qui a Ã©tÃ© supprimÃ© par le ramasse miettes%B:%A: erreur: essayez de rÃ©Ã©diter les liens avec --gc-keep-exported enabled.%B:%A: la table %s n'a pas de %s correspondant%B:%A: l'entrÃ©e %s de la table n'est pas alignÃ©e sur un mot dans la table%B:%A: l'entrÃ©e %s de la table est en dehors de la table%B:%d: Mauvaise somme de contrÃ´le dans le fichier S-record
+%B:%d: caractÃ¨re inattendu Â«Â %sÂ Â» dans le fichier S-record
+%B:%d: nombre d'octets %d trop petit
+%B:%d: caractÃ¨re inattendu Â«Â %sÂ Â» dans le fichier Intel hexadÃ©cimal%B:%u: somme de contrÃ´le erronÃ©e dans le fichier Intel hexadÃ©cimal (attendu %u, obtenu %u)%B:%u: longueur erronÃ©e de l'enregistrement d'adresse Ã©tendue dans le fichier Intel hexadÃ©cimal%B:%u: longueur erronÃ©e de l'enregistrement d'adresse Ã©tendue linÃ©aire dans le fichier Intel hexadÃ©cimal%B:%u: longueur erronÃ©e d'adresse Ã©tendue linÃ©raire de dÃ©but dans le fichier Intel hexadÃ©cimal%B:%u: longueur erronÃ©e d'adresse Ã©tendue de dÃ©but dans le fichier Intel hexadÃ©cimal%B:%u: type ihex %u non reconnu dans le fichier Intel hexadÃ©cima%C: attention: rÃ©adressage vers Â«Â %sÂ Â» fait rÃ©fÃ©rence Ã  un segment diffÃ©rent
+%F%A: Ã©chec lors de l'alignement de la section
+%F%B: dÃ©bordement du dÃ©calage relatif au PC dans l'entrÃ©e PLT GOT pour Â«Â %sÂ Â»
+%F%B: dÃ©bordement du dÃ©calage relatif au PC dans l'entrÃ©e PLT pour Â«Â %sÂ Â»
+%F%B: dÃ©bordement du dÃ©placement de branchement dans l'entrÃ©e PLT pour Â«Â %sÂ Â»
 %F%P: already_linked_table: %E
-%P%P: symbole dynamique STT_GNU_IFUNC Â«%sÂ» avec une Ã©galitÃ© de pointeur dans Â«%BÂ» ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un exÃ©cutable. Recompilez avec -fPIE et reliez avec -pie
+%F%P: erreur d'auto recouvrement: %E
+%F%P: ne peut construire les Ã©bauches de recouvrement: %E
+%F%P: entrÃ©e corrompue: %B
+%P%P: symbole dynamique STT_GNU_IFUNC Â«Â %sÂ Â» avec une Ã©galitÃ© de pointeur dans Â«Â %BÂ Â» ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un exÃ©cutable. Recompilez avec -fPIE et reliez avec -pie
+%F: Ã©chec lors de la crÃ©ation de la section .eh_frame PLT BND
+%F: Ã©chec lors de la crÃ©ation de la section PLT BND
+%F: Ã©chec lors de la crÃ©ation de la section des propriÃ©tÃ©s GNU
+%F: Ã©chec lors de la crÃ©ation de la section .eh_frame PLT GOT
+%F: Ã©chec lors de la crÃ©ation de la section PLT GOT
+%F: Ã©chec lors de la crÃ©ation des sections GOT
+%F: Ã©chec lors de la crÃ©ation de la section PLT activÃ©e pour IBT
+%F: Ã©chec lors de la crÃ©ation de la section .eh_frame PLT
+%F: Ã©chec lors de la crÃ©ation des sections dynamiques VxWorks
+%F: Ã©chec lors de la crÃ©ation des sections ifunc
 %H __tls_get_addr a perdu l'argument, optimisation TLS dÃ©sactivÃ©e
 %H l'argument a perdu __tls_get_addr, optimisation TLS dÃ©sactivÃ©e
+%H: %s vers Â«Â %TÂ Â»: erreur %d
+%H: %s non supportÃ© pour la fonction indirecte Â«Â %TÂ Â»
+%H: %s fait rÃ©fÃ©rence Ã  une entrÃ©e TOC supprimÃ©e par l'optimisation
+%H: rÃ©adressage %s vers Â«Â %sÂ Â»: erreur %d
+%H: %s est rÃ©adressÃ© par rapport Ã  un symbole local
+%H: le rÃ©adressage %s n'est pas supportÃ© dans les bibliothÃ¨ques partagÃ©es et les PIE.
+%H: %s utilisÃ© avec le symbole TLS Â«Â %TÂ Â»
+%H: %s utilisÃ© avec le symbole non-TLS Â«Â %TÂ Â»
 %H: R_FRV_FUNCDESC fait rÃ©fÃ©rence Ã  un symbole dynamique avec un opÃ©rande non nul
 %H: R_FRV_FUNCDESC_VALUE fait rÃ©fÃ©rence Ã  un symbole dynamique avec un opÃ©rande non nul
 %H: R_FRV_GETTLSOFF pas appliquÃ© Ã  une instruction d'appel
@@ -869,93 +1087,85 @@ est un systÃ¨me Ã  octets de poids fort
 %H: R_FRV_TLSDESC_RELAX pas appliquÃ© Ã  une instruction ldd
 %H: R_FRV_TLSMOFFHI pas appliquÃ© Ã  une instruction sethi
 %H: R_FRV_TLSOFF_RELAX pas appliquÃ© Ã  une instruction ld
+%H: il manque un nop Ã  l'appel Ã  Â«Â %TÂ Â», toc ne peut Ãªtre rÃ©tablie, (Ã©bauche d'ajustement de la toc -mcmodel=small)
+%H: il manque un nop Ã  l'appel Ã  Â«Â %TÂ Â», toc ne peut Ãªtre rÃ©tablie, recompilez avec -fPIC
 %H: impossible d'Ã©diter les rÃ©adressages dynamiques dans une section en lecture seule
 %H: impossible d'apporter des corrections dans une section en lecture seule
+%H: erreur: %s par rapport Ã  Â«Â %sÂ Â» n'est pas un multiple de %u
+%H: erreur: %s n'est pas un multiple de %u
+%H: erreur: %s avec l'instruction inattendue %x
+%H: dÃ©bordement du branchement de correction
+%H: opÃ©rande non nul sur le rÃ©adressage %s par rapport Ã  Â«Â %sÂ Â»
 %H: le rÃ©adressage sur Â«Â %sÂ Â» fait rÃ©fÃ©rence Ã  un segment diffÃ©rent
 %H: rÃ©adressage sur Â«Â %sÂ Â»: %s
+%H: rÃ©adressage %s non supportÃ© pour la fonction indirecte %s
 %H: le rÃ©adressage fait rÃ©fÃ©rence Ã  un symbole non dÃ©fini dans le module
 %H: le rÃ©adressage en Â«Â %s+%vÂ Â» peut avoir causÃ© le problÃ¨me ci-dessus
+%H: l'optimisation toc n'est pas supportÃ©e pour l'instruction %s.
+%H: %s ne peut Ãªtre rÃ©solu par rapport Ã  Â«Â %TÂ Â»
+%H: rÃ©adressage %s sans solution par rapport au symbole Â«Â %sÂ Â»
 %P%F: --relax et -r ne peuvent pas Ãªtre utilisÃ©s en mÃªme temps
+%P%F: Ã©chec de la crÃ©ation de la table de hachage ex9.it %s: %E
 %P%X: ne peut pas lire les symboles: %E
+%P%X: le segment en lecture seule a des rÃ©adressages IFUNC dynamiques; recompilez avec -fPIC
 %P%X: segment en lecture seule a des rÃ©adressages dynamiques.
+%P: %B: .opd pas permis dans l'ABI Ã  la version %d
+%P: %B: %s n'est pas supportÃ© pour le symbole Â«Â %TÂ Â»
 %P: %B: ne peut crÃ©er l'entrÃ©e de l'Ã©bauche %s
-%P: %B: rÃ©adressage %s n'est pas supportÃ©e pour le symbole %s
 %P: %B: rÃ©adressage %s n'est pas encore supportÃ© pour le symbole %s
 %P: %B: la cible (%s) d'un rÃ©adressage %s est dans la mauvaise section de sortie (%s)
 %P: %B: type de rÃ©adressage non supportÃ©
+%P: %B: type de rÃ©adressage %d inconnu pour Â«Â %TÂ Â»
 %P: %B: type de rÃ©adressage %d inconnu pour le symbole %s
-%P: %B: attention: rÃ©adressage sur Â«Â %sÂ Â» dans la section en lecture seule Â«Â %AÂ Â».
-%P: %B: attention: rÃ©adressage dans la section Â«Â %AÂ Â» en lecture seule.
-%P: %H: rÃ©adressage %s vers Â«Â %sÂ Â»: erreur %d
-%P: %H: %s rÃ©adressÃ© par rapport Ã  un symbole local
-%P: %H: le rÃ©adressage %s fait rÃ©fÃ©rence Ã  une entrÃ©e TOC supprimÃ©e par l'optimisation
-%P: %H: %s utilisÃ© avec le symbole TLS %s
-%P: %H: %s utilisÃ© avec le symbole non-TLS %s
-%P: %H: TOC multiples et automatiques non supportÃ©es utilisant votre fichier crt; recompilez avec -mminimal-toc ou mettez Ã  jour gcc
-%P: %H: erreur: %s n'est pas un multiple de %u
-%P: %H: opÃ©rande non nul sur le rÃ©adressage %s par rapport Ã  Â«Â %sÂ Â»
-%P: %H: rÃ©adressage %s non supportÃ© pour la fonction indirecte %s
-%P: %H: l'optimisation sÅ“urs des appels vers Â«Â %sÂ Â» n'autorise pas de TOC multiples et automatiques; recompilez avec -mminimal-toc ou -fno-optimize-sibling-calls, ou rendez Â«Â %sÂ Â» externe
-%P: %H: rÃ©adressage %s sans solution par rapport au symbole Â«Â %sÂ Â»
+%P: %B: attention: rÃ©adressage sur Â«Â %sÂ Â» dans la section en lecture seule Â«Â %AÂ Â»
+%P: %B: attention: rÃ©adressage dans la section Â«Â %AÂ Â» en lecture seule
 %P: %s pas dÃ©fini dans %s crÃ©Ã© par l'Ã©diteur de liens
-%P: dÃ©calage %s trop grand pour l'encodage .eh_frame sdata4%P: DW_EH_PE_datarel non spÃ©cifiÃ© pour cette architecture.
+%P: dÃ©calage %s trop grand pour l'encodage .eh_frame sdata4*P: dÃ©bordement de l'entrÃ©e .eh_frame_hrd.
+%P: .eh_frame_hdr fait rÃ©fÃ©rence Ã  des FDE qui se chevauchent.
+%P: DW_EH_PE_datarel non spÃ©cifiÃ© pour cette architecture.
+%P: encodage FDE dans %B(%A) empÃªche la crÃ©ation de la table .eh_frame_hdr.
+%P: Les avertissements suivants Ã  propos de l'encodage FDE empÃªchant la gÃ©nÃ©ration de .eh_frame_hdr sont abandonnÃ©s.
 %P: code machine ELF alternatif trouvÃ© (%d) dans %B, %d est attendu
 %P: bss-plt forcÃ© par le profilage
 %P: bss-plt forcÃ© Ã  cause de %B
 %P: ne peut construire l'Ã©bauche de branchement Â«Â %sÂ Â»
 %P: ne peut repÃ©rer l'Ã©bauche de branchement Â«Â %sÂ Â»
-%P: l'entrÃ©e toc de opd non trouvÃ©e pour %s
-%P: la copie du rÃ©adressage sur Â«Â %sÂ Â» nÃ©cessite un lien plt paresseux; Ã©vitez de mettre LD_BIND_NOW=1 ou mettez Ã  jour gcc
-%P: la variable dynamique Â«Â %sÂ Â» a une taille nulle
+%P: l'entrÃ©e toc de opd non trouvÃ©e pour Â«Â %TÂ Â»
+%P: le rÃ©adressage par copie sur Â«Â %TÂ Â» nÃ©cessite un lien plt paresseux; Ã©vitez de mettre LD_BIND_NOW=1 ou mettez Ã  jour gcc
+%P: un rÃ©adressage copiÃ© envers un Â«Â %TÂ Â» protÃ©gÃ© est dangereux
 %P: erreur de dÃ©compte de rÃ©adressage dynamique pour %B, section %A
 %P: erreur dans %B(%A); aucune table .eh_frame_hdr ne sera crÃ©Ã©e.
-%P: encodage fde dans %B(%A) empÃªche la crÃ©ation de la table .eh_frame_hdr.
-%P: erreur de la table de liaison vers Â«Â %sÂ Â»
+%P: erreur de la table de liaison vers Â«Â %TÂ Â»
 %P: dÃ©bordement de l'offset du branchement long de l'Ã©bauche Â«Â %sÂ Â»
 %P: points d'entrÃ©e multiples: dans les modules %B et %B
 %P: lien relocalisable pas supportÃ©
 %P: taille des Ã©bauches ne concorde pas avec la taille calculÃ©e
+%P: le symbole Â«Â %sÂ Â» a un st_other invalide pour l'ABI Ã  la version 1
 %P: attention: crÃ©ation d'un DT_TEXTREL dans un objet partagÃ©.
+%P: attention: les rÃ©adressages de textes et les fonctions indirectes GNU pourraient rÃ©sulter en un crash Ã  l'exÃ©cution
 %X%C: le rÃ©adressage vers Â«Â %sÂ Â» fait rÃ©fÃ©rence Ã  un segment diffÃ©rent
+%X%H: appel @local Ã  ifunc %s
+%X%H: Impossible de convertir les branchements vers JALX entre modes ISA: rÃ©adressage hors portÃ©e
+%X%H: JALX vers le mÃªme mode ISA n'est pas supportÃ©
+%X%H: Branchement entre modes ISA non supportÃ©
+%X%H: Saut non supportÃ© entre modes ISAÂ ; envisagez de recompiler avec l'interliage activÃ©.
+%X%H: bss-plt -fPIC ifunc %s non supportÃ©
+%X%P: %B(%A): erreur: le rÃ©adressage pour le dÃ©calage %V n'a pas de valeur
+%X%P: %B(%A): rÃ©adressage Â«Â %RÂ Â» va en dehors des limites
+%X%P: %B(%A): le rÃ©adressage Â«Â %RÂ Â» n'est pas supportÃ©
+%X%P: %B(%A): le rÃ©adressage Â«Â %RÂ Â» retourne une valeur %x non reconnue
 %X%P: recouvrement de la section %A ne dÃ©marre pas sur une ligne de cache.
 %X%P: recouvrement de la section %A est plus grand que la ligne de cache.
 %X%P: recouvrement de la section %A n'est pas dans une zone de cache.
 %X%P: recouvrement des sections %A et %A ne commencent pas Ã  la mÃªme adresse.
-%XÂ«%sÂ» rÃ©fÃ©rencÃ© dans la section Â«%AÂ» de %B: dÃ©fini dans la section abandonnÃ©e Â«%AÂ» de %B
+%X%P: erreur d'analyse de pile/lrlive: %E
+%X%P: les rÃ©adressages de textes et les fonctions indirectes GNU rÃ©sulteront en un crash Ã  l'exÃ©cution
+%XÂ«Â %sÂ Â» rÃ©fÃ©rencÃ© dans la section Â«Â %AÂ Â» de %B: dÃ©fini dans la section abandonnÃ©e Â«Â %AÂ Â» de %B
 %s dÃ©fini dans une entrÃ©e toc supprimÃ©e%s dupliquÃ©
 %s dupliquÃ© dans %s
-%s dans une section de recouvrement%s(%s): rÃ©adressage %d a un index de symbole %ld invalide%s: %s: dÃ©bordement de relocalisation: 0x%lx > 0xffff%s: 0x%v 0x%v
-%s: DÃ©finition de symbole erronÃ©e: Â«MainÂ» initialisÃ© Ã  %s au lieu de l'adresse de dÃ©part %s
-%s: erreur: multiple dÃ©finitions de Â«%sÂ»; dÃ©but de %s est initialisÃ© dans un prÃ©cÃ©dent fichier liÃ©
-%s: Erreur GAS: insn PTB inattendue avec R_SH_PT_16%s: erreur d'incohÃ©rence interne pour la valeur du registre global
- allouÃ© Ã  l'Ã©dition de lien: liÃ©: 0x%lx%08lx != relÃ¢chÃ©: 0x%lx%08lx
-%s: Type de rÃ©adressage exportÃ© invalide: %d%s: directive LOCAL: registre $%ld n'est pas un registre local.  Premier registre global est $%ld.%s: relocalisation mal composÃ©e dÃ©tectÃ©e dans la section %s%s: pas de corps pour allouer un symbole de %d octets de longueur
-%s: pas de corps pour allouer un nom de section %s
-%s: dÃ©finition TLS dans %B section %A ne correspond pas Ã  la dÃ©finition non TLS dans %B section %A%s: dÃ©finition TLS dans %B section %A ne correspond pas Ã  la rÃ©fÃ©rence TLS dans %B%s: rÃ©fÃ©rence TLS dans %B ne correspond pas Ã  la dÃ©finition non TLS dans %B section %A%s: rÃ©fÃ©rence TLS dans %B ne correspond pas Ã  la rÃ©fÃ©rence non TLS dans %B%s: table des matiÃ¨res des relocalisations Ã  0x%x pour le symbole Â«%sÂ» sans aucune entrÃ©e%s: la cible (%s) du rÃ©adressage %s est dans la mauvaise section (%s)%s: objet XCOFF partagÃ© alors qu'on ne produit pas de sortie XCOFF%s: __gp ne couvre pas le segment de donnÃ©es court%s: accÃ¨s au-delÃ  de la fin de la section fusionnÃ©e (%ld)%s: adresse 0x%s hors limite pour le fichier Intel hexadÃ©cimal%s: rÃ©adressage base plus dÃ©calage vers le symbole registre: %s dans %s%s: rÃ©adressage base plus dÃ©calage vers le symbole registre: (inconnu) dans %s%s: ne peut reprÃ©senter la section Â«%sÂ» dans le fichier format objet a.out%s: ne peut reprÃ©senter la section Â«%sÂ» dans oasys%s: ne peut reprÃ©senter la section pour le symbole Â«%sÂ» dans le fichier format objet a.out%s: ne paut pas allouer un nom de ficheir pour le no. de fichier %d, %d octets
-%s: ne peut crÃ©er l'entrÃ©e d'Ã©bauche %s%s: ne peut lier un fichier objet fdpic dans un exÃ©cutable non fdpic%s: ne peut lier un fichier objet non fdpic dans un exÃ©cutable fdpic%s: compilÃ© comme un objet de 32 bits et %s est de 64 bits%s: compilÃ© comme un objet de 64 bits et %s est de 32 bits%s: compilÃ© avec %s et liÃ© avec les modules compilÃ©s avec %s%s: compilÃ© avec %s et liÃ© avec les modules qui utilisent le rÃ©adressage non PIC%s: ne peut Ã©crire en sortie des entrÃ©es .cranges ajoutÃ©es%s: ne peut Ã©crire en sortie des entrÃ©es .cranges triÃ©es%s: directive LOCAL valide seulement avec un registre ou une valeur absolue%s: objet dynamique sans section .loader%s: rencontre du symbole d'une Ã©tiquette de donnÃ©e dans l'entrÃ©e%s: erreur: type de rÃ©adressage %d non alignÃ© Ã  %08x rÃ©adressÃ©`%08x
-%s: nom illÃ©gal de section Â«%sÂ»%s: erreur interne, registre interne de section %s contient quelque chose
-%s: erreur interne, table de symbole a changÃ© de taille de %d Ã  %d mots
-%s: fichier mmo invalide: YZ de lop_end (%ld) n'est pas Ã©gal au nombre de tetras du lop_stab prÃ©cÃ©dent (%ld)
-%s: fichier mmo invalide: attendu YZ = 1 obtenu YZ = %d pour lop_quote
-%s: fichier mmo invalide: attendu y = 0, obtenu y = %d pour lop_fixrx
-%s: fichier mmo invalide: attendu z = 1 ou z = 2, obtenu z = %d pour lop_fixo
-%s: fichier mmo invalide: attendu z = 1 ou z = 2, obtenu z = %d pour lop_loc
-%s: fichier mmo invalide: attendu z = 16 ou z = 24, obtenu z = %d pour lop_fixrx
-%s: fichier mmo invalide: champs y et z de lop_stab non nul, y: %d, z: %d
-%s: fichier mmo invalide: nom de fichier %d n'a pas Ã©tÃ© spÃ©cifiÃ© avant son utilisation
-%s: fichier mmo invalide: no. de fichier %d Â«%sÂ», a dÃ©jÃ  Ã©tÃ© entrÃ© en tant que Â«%sÂ»
-%s: fichier mmo invalide: valeur d'initialisation pour $255 n'est pas Â«MainÂ»
-%s: fichier mmo invalide: octet de tÃªte du mot de l'opÃ©rande doit Ãªtre 0 ou 1, obtenu %d pour lop_fixrx
-%s: fichier mmo invalide: lop_end n'est pas le dernier Ã©lement dans le fichier
-%s: fichier mmo invalide: lopcode Â«%dÂ» non supportÃ©
-%s: adresse de dÃ©part invalide pour des registres initialisÃ©s de longueur %ld: 0x%lx%08lx
-%s: table de symboles invalide: symbole Â«%sÂ» dupliquÃ©
-%s: dÃ©bordement du nombre de lignes: 0x%lx > 0xffff%s: pas de registre initialisÃ©; section de longeur 0
-%s: pas de tel symbole%s: non implÃ©mentÃ©%s: pas supportÃ©%s: taille de l'objet ne concorde pas avec la taille de la cible %s%s: rÃ©adressage de registre vers le symbole non-registre: %s dans %s%s: rÃ©adressage de registre vers le symbole non-registre: (inconnu) dans %s%s: lien relocalisable de %s vers %s n'est pas supportÃ©%s: dÃ©bordement du segment de donnÃ©es court (0x%lx >= 0x400000)%s: chaÃ®ne trop longue (%d caractÃ¨res, max 65535)%s: trop de resigstres initialisÃ©s; longueur de section %ld
-%s: version non dÃ©finie: %s%s: type de rÃ©adressage %d inconnu%s: symbole non reconnue Â«%sÂ» fanions 0x%x%s: type de rÃ©adressage non supportÃ© 0x%02x%s: sÃ©quence de caractÃ¨res large 0x%02X 0x%02X non supportÃ©e aprÃ¨s le nom de symbole dÃ©butant par Â«%sÂ»
-%s: utilise des champs e_flags (0x%lx) diffÃ©rents des modules prÃ©cÃ©dents (0x%lx)%s: utilise diffÃ©rents champs e_flags (0x%lx) que les modules prÃ©cÃ©dents (0x%lx)%s: compteur de version (%ld) ne concorde pas avec le symbole du compteur (%ld)%s: fichier core d'avertissement tronquÃ©%s: attention: rÃ©adressage %s vers le symbole Â«Â %sÂ Â» de la section %s%s: attention: rÃ©adressage %s vers 0x%x de la section %s%s: attention: %s: dÃ©bordement du compteur de numÃ©ro de ligne: 0x%lx > 0xffff%s: attention: ajout GOT de %ld Ã  Â«%sÂ» ne concorde par avec l'ajout GOT prÃ©cÃ©dent de %ld%s: attention: ignore l'ajout PLT de %d Ã  Â«%sÂ» de la section %s%s: attention: symbole index illÃ©gal %ld dans les relocalisations%s: attention: table de symboles trop grande pour mmo, plus grande que 65535 mots de 32 bits: %d. Seul Â«MainÂ» sera produit.
-(Ã  l'offset de bit %u)
+%s dans une section de recouvrement%s: dÃ©finition TLS dans %B section %A ne correspond pas Ã  la dÃ©finition non TLS dans %B section %A%s: dÃ©finition TLS dans %B section %A ne correspond pas Ã  la rÃ©fÃ©rence TLS dans %B%s: rÃ©fÃ©rence TLS dans %B ne correspond pas Ã  la dÃ©finition non TLS dans %B section %A%s: rÃ©fÃ©rence TLS dans %B ne correspond pas Ã  la rÃ©fÃ©rence non TLS dans %B%s: pas de tel symbole%s: non implÃ©mentÃ©%s: pas supportÃ©%s: version non dÃ©finie: %s(Ã  l'offset de bit %u)
 (descripteur)
+(format %c%c%c%c signature %s age %ld)
 (pas de valeur)
 (pas active)
 (pas allouÃ©e)
@@ -964,43 +1174,59 @@ est un systÃ¨me Ã  octets de poids fort
 )
 *** vÃ©rifiez ce rÃ©adressage %s*non pris en charge*
 type dst %u *non gÃ©rÃ©*
-*inconnu**inconnu*        , alias: %u
+*inconnu**inconnu*        , Valeur: %#08lx
+, alias: %u
 , offset correctif Ã©tendu: %u, offset no_opt psect: %u, sous-type: %u (%s)
-, vecteur de symbol rva: section .got pas immÃ©diatement aprÃ¨s la section .pltdouble de 32 bits, rÃ©adressage relatif gp 32bits rencontrÃ© pour un symbole externe64 bits *non supportÃ©*
-double de 64 bits, : %u.%u
-: instructions m32r: instructions m32r2: instruction m32rx; recompilÃ© avec -fPIC<Bits de fanions non reconnus><inconnu>relocalisation @pltoff vers un symbole localL'archive n'a pas d'index; exÃ©cuter ranlib pour en ajouter unFichier objet d'archive dans un mauvais formatÃ‰chec de la tentative de convertir L32R/CALLX en CALLTentative de relocalisation d'un lien avec %s Ã  l'entrÃ©e et %s Ã  la sortieBASE_IMAGE       BFD assertion %s a Ã©chouÃ© %s:%dBFD erreur interne %s, abandon Ã  %s, ligne %d
-BFD erreur interne %s, abandon Ã  %s, ligne %d dans %s
+, vecteur de symbol rva: - %B est 64 bits, %B ne l'est pas-mips32r2 -mfp64 (12 callee-saved)section .got pas immÃ©diatement aprÃ¨s la section .pltÃ©chec de la fusion de .rsrc: un rÃ©pertoire correspond Ã  une feuilleÃ©chec de la fusion de .rsrc: versions de rÃ©pertoires diffÃ©rentes
+Ã©chec de la fusion .rsrc: rÃ©pertoires avec des caractÃ©ristiques diffÃ©rentes
+Ã©chec de la fusion de .rsrc: feuille dupliquÃ©eÃ©chec de la fusion .rsrc: feuille dupliquÃ©e: %sÃ©chec de la fusion de .rsrc: ressource chaÃ®ne dupliquÃ©e: %dÃ©chec de la fusion de .rsrc: plusieurs manifestes pas par dÃ©fautdouble de 32 bits, rÃ©adressage relatif gp 32bits rencontrÃ© pour un symbole externe4 octets4 octets64 bits *non supportÃ©*
+double de 64 bits, 8 octets8 octets: instructions m32r: instructions m32r2: instruction m32rx: instructions n1: instructions n1h; recompilÃ© avec -fPIC<Bits de fanions non reconnus><info corrompue> %s<longueur de la chaÃ®ne corrompue: %#x>
+<offset de la chaÃ®ne corrompue: %#lx>
+<corrompu><type de rÃ©pertoire inconnu: %d>
+<inconnu>rÃ©adressage @pltoff vers un symbole localL'archive n'a pas d'index; exÃ©cuter ranlib pour en ajouter unFichier objet d'archive dans un mauvais formatÃ‰chec de la tentative de convertir L32R/CALLX en CALLTentative de rÃ©adressage d'un lien avec %s Ã  l'entrÃ©e et %s Ã  la sortieBASE_IMAGE       BFD assertion %s a Ã©chouÃ© %s:%dBFD erreur interne %s, abandon Ã  %s:%d
+BFD erreur interne %s, abandon Ã  %s:%d dans %s
 Erreur de liaison BFD: branchement (PC rel16) Ã  la section (%s) n'est pas supportÃ©Erreur de liaison BFD: saut (PC rel26) Ã  la section (%s) n'est pas supportÃ©Mauvaise valeurRÃ©pertoire de base du rÃ©adressage [.reloc]RÃ©pertoire des importations limitÃ©esLimites:
-CLIEn-tÃªte exÃ©cutable CLRCLUSTERS_LOCKMGR COUNTERS         CPU              CTL_AUGRB (augmente la base du rÃ©adressage) %u
+Branchement vers une adresse non alignÃ©e sur une instructionutilisation CACHE: CLIEn-tÃªte exÃ©cutable CLRCLUSTERS_LOCKMGR COUNTERS         CPU              CTL_AUGRB (augmente la base du rÃ©adressage) %u
 CTL_DFLOC (dÃ©finir position)
 CTL_SETRB (fixe la base du rÃ©adressage)
 CTL_STKDL (position dÃ©finie dans la pile)
 CTL_STLOC (fixer position)
-En-tÃªte du copyright
-incohÃ©rence d'utilisation de DIV entre %B et %BDST__K_BEG_STMT_MODE pas implÃ©mentÃ©DST__K_END_STMT_MODE pas implÃ©mentÃ©DST__K_RESET_LINUM_INCR pas implÃ©mentÃ©DST__K_SET_LINUM_INCR pas implÃ©mentÃ©DST__K_SET_LINUM_INCR_W pas implÃ©mentÃ©DST__K_SET_PC pas implÃ©mentÃ©DST__K_SET_PC_L pas implÃ©mentÃ©DST__K_SET_PC_W pas implÃ©mentÃ©DST__K_SET_STMTNUM pas implÃ©mentÃ©RÃ©pertoire de dÃ©bugTable de debug du module:
+Impossible de convertir un branchement vers JALX pour une adresse non alignÃ©e sur un motImpossible de convertir un saut vers JALX pour une adresse non alignÃ©e sur un motEn-tÃªte du copyright
+DÃ©tection d'une section .rsrc corrompueÂ !
+Enregistrement EGSD corrompu: sa taille (%#x) est trop petiteEnregistrement EGSD corrompu: la taille (%#x) est plus grande que l'espace restant (%#x)Enregistrement EGSD corrompu: la taille (%#x) est trop petiteEnregistrement ETIR corrompu rencontrÃ©Valeur vms corrompueDSO manquant dans la ligne de commandeDST__K_BEG_STMT_MODE pas implÃ©mentÃ©DST__K_END_STMT_MODE pas implÃ©mentÃ©DST__K_RESET_LINUM_INCR pas implÃ©mentÃ©DST__K_SET_LINUM_INCR pas implÃ©mentÃ©DST__K_SET_LINUM_INCR_W pas implÃ©mentÃ©DST__K_SET_PC pas implÃ©mentÃ©DST__K_SET_PC_L pas implÃ©mentÃ©DST__K_SET_PC_W pas implÃ©mentÃ©DST__K_SET_STMTNUM pas implÃ©mentÃ©RÃ©pertoire de dÃ©bugTable de debug du module:
 Table des symboles de debug:
 RÃ©pertoire des dÃ©lais d'importation%s appel dÃ©prÃ©ciÃ©
 %s dÃ©prÃ©ciÃ© appelÃ© Ã  %s dans la ligne %d dans %s
-RÃ©pertoire de descriptionErreur DWARF: mauvais numÃ©ro abrÃ©gÃ©: %uErreur DWARF: ne peut repÃ©rer la section %sErreur DWARF: ne peut repÃ©rer le numÃ©ro abrÃ©gÃ© %uErreur DWARF: OpÃ©rations maximum par instruction invalide.Erreur DWARF: valeur de FORME invalide ou non supportÃ©e: %uErreur DWARF: dÃ©calage de ligne (%lu) est >= Ã  la taille de %s (%lu)Erreur DWARF: Version .debug_line %d non prise en charge.Erreur DWARF: taille d'adresse obtenue Â«%uÂ», ce lecteur ne peut traiter des tailles plus grandes que Â«%uÂ».Erreur DWARF: version DWARF trouvÃ©e Â«%uÂ», ce lecteur ne supporte que les informations des versions 2, 3 et 4.Erreur DWARF: numÃ©ro de ligne de section mutilÃ© (mauvais no. de fichier)Erreur DWARF: numÃ©ro de ligne de section mutilÃ©EIHD: (taille: %u, nbr blocs: %u)
-DÃ©calage de l'entrÃ©e= 0x%.8lx (%ld)
-Erreur lors de la lecture de %s: %sErreur: %B utilise les deux attributs Tag_MPextension_use actuel et hÃ©ritÃ©Erreurs rencontrÃ©es pendant le traitement du fichier %sRÃ©pertoire des exceptions [.pdata]RÃ©pertoire d'exportation [.edata (ou lÃ  oÃ¹ il a Ã©tÃ© trouvÃ©)]Fanion d'exportation 			%lx
-Exportation RVAÃ‰CHEC de repÃ©rage du rÃ©adressage HI16 prÃ©cÃ©dentFILES_VOLUMES    Format de fichier ambiguFormat de fichier non reconnuFichier dans un mauvais formatFichier trop grosFichier tronquÃ©Champ de fanion     = 0x%.2x
-Adresseur RVAGALAXY           RÃ©adressage relatif GP utilisÃ© alors que GP n'est pas dÃ©finirÃ©adressage relatif GP sans que _gp ne soit dÃ©finile rÃ©adressage GPDISP n'a pas repÃ©rÃ© les instructions ldah et ldaTable des symboles globaux:
-IDC - VÃ©rification de la consistance d'identitÃ©
-IMAGE_ACTIVATOR  INPUT_SECTION_FLAGS pas supportÃ©s.
+RÃ©pertoire de descriptionErreur Dwarf: ne peut repÃ©rer la section %sErreur Dwarf: ne peut repÃ©rer le numÃ©ro abrÃ©gÃ© %u.Erreur Dwarf: attribut DW_AT_comp_dir rencontrÃ© sous une forme non-chaÃ®ne.Erreur Dwarf: Le pointeur d'info va au delÃ  de la fin des attributsErreur Dwarf: OpÃ©rations maximum par instruction invalide.Erreur Dwarf: valeur de FORM invalide ou non supportÃ©e: %#x.Erreur Dwarf: Les donnÃ©es des informations de lignes sont plus grandes (0x%lx) que la section (0x%lx)Erreur Dwarf: Le section des informations de lignes est trop petite (%ld)Erreur Dwarf: dÃ©calage de ligne (%lu) est >= Ã  la taille de %s (%lu)Erreur Dwarf: On est tombÃ© Ã  cours de place en lisant les opcodesErreur Dwarf: On est tombÃ© Ã  cours de place lors de la lecture du prologueErreur Dwarf: Impossible de lire la ref alt %u.Erreur Dwarf: Version .debug_line %d non prise en charge.Erreur Dwarf: taille d'adresse obtenue Â«Â %uÂ Â», ce lecteur ne peut traiter des tailles plus grandes que Â«Â %uÂ Â».Erreur Dwarf: version DWARF trouvÃ©e Â«Â %uÂ Â», ce lecteur ne supporte que les informations des versions 2, 3 et 4.Erreur Dwarf: numÃ©ro de ligne de section mutilÃ© (mauvais no. de fichier)Erreur Dwarf: numÃ©ro de ligne de section mutilÃ©.EIHD: (taille: %u, nbr blocs: %u)
+ERREUR: Tentative de lier %B avec un binaire %B d'une architecture diffÃ©renteLa fonction d'entrÃ©e Â«Â %sÂ Â» a disparu du code sÃ»r.DÃ©calage de l'entrÃ©e= 0x%.8lx (%ld)
+Erreur lors de la lecture de %s: %sErreur: %B utilise les deux attributs Tag_MPextension_use actuel et hÃ©ritÃ©Erreur: L'architecture ARC4 n'est plus supportÃ©e.
+Erreurs rencontrÃ©es pendant le traitement du fichier %BRÃ©pertoire des exceptions [.pdata]RÃ©pertoire d'exportation [.edata (ou lÃ  oÃ¹ il a Ã©tÃ© trouvÃ©)]Fanion d'exportation 			%lx
+Exportation RVAÃ‰CHEC de repÃ©rage du rÃ©adressage HI16 prÃ©cÃ©dentFILES_VOLUMES    FPU-2.0FPU-3.0Ã‰chec lors de la mise Ã  jour des dÃ©calages du fichier dans le rÃ©pertoire de dÃ©bogageFormat de fichier ambiguFormat de fichier non reconnuFichier dans un mauvais formatFichier trop grosFichier tronquÃ©Champ de fanion     = 0x%.2x
+Adresseur RVAGALAXY           les rÃ©adressages GOT et PLT ne peuvent pas Ãªtre corrigÃ©s avec un Ã©diteur de liens non dynamique.RÃ©adressage relatif GP utilisÃ© alors que GP n'est pas dÃ©finirÃ©adressage relatif GP sans que _gp ne soit dÃ©finile rÃ©adressage GPDISP n'a pas repÃ©rÃ© les instructions ldah et ldaTable des symboles globaux:
+Flottant matÃ©riel (processeur 32 bits, coprocesseur 64 bits)
+Flottant matÃ©riel (processeur 32 bits, tout coprocesseur)
+Flottant matÃ©riel (MIPS32r2 64 bits FPU 12 callee-saved)
+Flottant matÃ©riel (double prÃ©cision)
+Flottant matÃ©riel (simple prÃ©cision)
+CompatibilitÃ© flottant matÃ©riel (processeur 32 bits, coprocesseur 64 bits)
+Flottant matÃ©riel ou logiciel
+ID: %#08lxIDC - VÃ©rification de la consistance d'identitÃ©
+Analyseur IEEE: longueur de chaÃ®ne: %#lx plus longue que le tampon: %#lxIMAGE_ACTIVATOR  INPUT_SECTION_FLAGS pas supportÃ©s.
 IO               Activation de l'image:  (taille=%u)
 Correction de l'activateur de l'image: (majeur: %u, mineur: %u)
 Identification d'image: (majeur: %u, mineur: %u)
 Descripteur de section d'image: (majeur: %u, mineur: %u, taille: %u, offset: %u)
 Image des symboles et table debug: (majeur: %u, mineur: %u)
-RÃ©pertoire de la table d'adresse d'importationRÃ©pertoire d'importation [faisant partie de .idata]Inconsistence interne: reste %u != max %u.
-  Merci de rapporter cette anomalie.Type de rÃ©adressage TARGET2 Â«Â %sÂ Â» invalideCible bfd invalideOpÃ©ration invalideIndex de section incorrect dans ETIRJALX vers une adresse non alignÃ©e sur un motLOGICAL_NAMES    Nom du Processeur de Langage
+RÃ©pertoire de la table d'adresse d'importationRÃ©pertoire d'importation [faisant partie de .idata]Erreur interne: dÃ©bordement de la pile de rÃ©adressages RL78Erreur interne: dÃ©bordement par le bas de la pile de rÃ©adressages RL78Inconsistance interne: reste %u != max %u.
+  Merci de rapporter cette anomalie.NumÃ©ro de rÃ©adressage AArch64 invalide: %dNumÃ©ro de rÃ©adressage DLX invalide: %dType de rÃ©adressage TARGET2 Â«Â %sÂ Â» invalideCible bfd invalideContenu invalide dans la section %AOpÃ©ration invalideSection de sortie invalide pour .eh_frame_entry: %AIndex de section incorrect dans ETIRIl doit Ãªtre un symbole de fonction global ou faible.Saut vers une adresse non alignÃ©e sur une instructionSaut vers une adresse non alignÃ©e sur un motLOGICAL_NAMES    Nom du Processeur de Langage
 Longueur            = 0x%.8lx (%ld)
-RÃ©pertoire de chargement de configurationMEMORY_MANAGEMENTDes fonctions MIPS16 et microMIPS ne peuvent pas s'appeler l'une l'autreMISC             MULTI_PROCESSING En-tÃªte Mach-O:
-Majeur/Mineur 			%d/%d
+Lieur: ne peut initialiser la table de hachage ex9 
+Lieur: ne peut rÃ©adresser ex9 fixÃ© 
+RÃ©pertoire de chargement de configurationFonction IFUNC locale Â«Â %sÂ Â» dans %B
+MEMORY_MANAGEMENTDes fonctions MIPS16 et microMIPS ne peuvent pas s'appeler l'une l'autreMISC             utilisation MMU: MULTI_PROCESSING Majeur/Mineur 			%d/%d
 Archive mal formÃ©ePile maximum requise est 0x%v
 MeP: le howto %d a le type %dMÃ©moire Ã©puisÃ©eEn-tÃªte module
-NETWORKS         NORMALNom 				Pas d'erreurAucun autre fichier d'archiveAucun symboleSection non-reprÃ©sentable sur la sortiePas assez de mÃ©moire pour trier les rÃ©adressagesNumÃ©ro dans:
+NETWORKS         NORMALNom 				Aucune adresse assignÃ©e Ã  la section de sortie %s des trampolines (veneers)Pas d'erreurAucun autre fichier d'archiveAucun symboleaucunSection non-reprÃ©sentable sur la sortiePas assez de mÃ©moire pour trier les rÃ©adressagesNumÃ©ro dans:
 OPR_ADD (ajout)
 OPR_AND (et logique)
 OPR_ASH (dÃ©calage arithmetique)
@@ -1019,18 +1245,18 @@ est un systÃ¨me Ã  octets de poids fort
 OPR_SUB (soustraction)
 OPR_USH (dÃ©calage non signÃ©)
 Module objet N'EST PAS sans erreur !
-base de nombre ordinal 			%ld
-La sortie requiert la librairie partagÃ©e Â«%sÂ»
-Le fichier de sortie requiert une librairie partagÃ©e Â«%s.so.%sÂ»
-POSIX            PROCESS_SCHED    PRVFXDPRVPICPSC - DÃ©finition de section du programme
-Non concordance PTA: adresse SHcompact (bit 0 == 0)Non concordance PTB: adresse SHmedia (bit 0 == 1)Nom de partition    = Â«%sÂ»
+Le dÃ©calage du trampoline (aka veneer) pour la fonction d'entrÃ©e Â«Â %sÂ Â» n'est pas un multiple de sa taille.Une cause possible pour cette erreur est que le symbole est rÃ©fÃ©rencÃ© dans le code indiquÃ© comme si il avait un alignement plus grand que celui qui a Ã©tÃ© dÃ©clarÃ© lors de sa dÃ©finition.base de nombre ordinal 			%ld
+La sortie requiert la librairie partagÃ©e Â«Â %sÂ Â»
+Le fichier de sortie requiert une librairie partagÃ©e Â«Â %s.so.%sÂ Â»
+Chargement relatif au PC depuis une adresse non alignÃ©eexÃ©cutable PIEPOSIX            PROCESS_SCHED    PRVFXDPRVPICPSC - DÃ©finition de section du programme
+Non concordance PTA: adresse SHcompact (bit 0 == 0)Non concordance PTB: adresse SHmedia (bit 0 == 1)Nom de partition    = Â«Â %sÂ Â»
 Fin de la partition[%d] = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }
 Longueur de la partition[%d] = 0x%.8lx (%ld)
 Secteur de la partition[%d] = 0x%.8lx (%ld)
 Merci de rapporter cette anomalie.
-R_BFIN_FUNCDESC fait rÃ©fÃ©rence Ã  un symbole dynamique avec un opÃ©rande non nulR_BFIN_FUNCDESC_VALUE fait rÃ©fÃ©rence Ã  un symbole dynamique avec un opÃ©rande non nulR_FRV_TLSMOFFLO pas appliquÃ© Ã  une instruction setlo ou setlos
+Conflit ABI RL78: Le fichier G10 %B ne peut pas Ãªtre liÃ© avec %s fichier %BConflit d'ABI RL78: ne peut lier le fichier %2$B pour %1$s avec le fichier %4$B pour %3$sConflit de fusion RL78: ne peut lier ensemble un objet 32 bits et un objet 64 bitsR_BFIN_FUNCDESC fait rÃ©fÃ©rence Ã  un symbole dynamique avec un opÃ©rande non nulR_BFIN_FUNCDESC_VALUE fait rÃ©fÃ©rence Ã  un symbole dynamique avec un opÃ©rande non nulR_FRV_TLSMOFFLO pas appliquÃ© Ã  une instruction setlo ou setlos
 Lecture du cachet date-heure modifiÃ© du fichier d'archiveRÃ©fÃ©rence Ã  un symbole far Â«Â %sÂ Â» utilisant le mauvais rÃ©adressage peut provoquer une exÃ©cution incorrecteRegistre %%g%d utilisÃ© de maniÃ¨re incompatible: %s dans %B prÃ©cÃ©demment %s dans %BRegistre de section contient
-RÃ©adressage pour psect non-RELSuppression de la section inutilisÃ©e Â«%sÂ» dans le fichier Â«%BÂ»RÃ©servÃ©RÃ©pertoire des resources [.rsrc]rÃ©adressage SDA alors que _SDA_BASE_ n'est pas dÃ©finiSECURITY         SEC_RELOC sans relocalisation dans la section %sErreur SH: type de rÃ©adressage %d inconnuSHELL            SHRFXDSHRPICSPSC - Def de section de l'image partagÃ©e du programme
+RÃ©adressage pour psect non-RELSuppression de la section inutilisÃ©e Â«Â %AÂ Â» dans le fichier Â«Â %BÂ Â»RÃ©servÃ©RÃ©pertoire des resources [.rsrc]l'adresse S12 (%lx) n'est pas dans la mÃ©moire RAM partagÃ©e (0x2000-0x4000), par consÃ©quent, vous devez dÃ©caler l'adresse manuellement dans votre coderÃ©adressage SDA alors que _SDA_BASE_ n'est pas dÃ©finiSECURITY         SEC_RELOC sans rÃ©adressages dans la section %AErreur SH: type de rÃ©adressage %d inconnuSHELL            SHRFXDSHRPICutilisation SIMD: SPSC - Def de section de l'image partagÃ©e du programme
 STABLE           STA_CKARG (compare les arguments de la procÃ©dure)
 STA_GBL (pile globals) %.*s
 STA_LI (pile literale)
@@ -1073,29 +1299,41 @@ est un systÃ¨me Ã  octets de poids fort
 SYMG - DÃ©finition de symbole universel
 SYMM - DÃ©finition de symbole globale avec version
 SYMV - DÃ©finition symbole vectorisÃ©
-SYSGEN           Section sans contenuRÃ©pertoire de la sÃ©curitÃ©Segments et Sections:
-Erreur de taille dans la section %sEn-tÃªte des fichiers sources
-RÃ©pertoire spÃ©cialRelocalisation ALPHA_R_BSR parasiteL'analyse de la pile ignorera l'appel de %s Ã  %s
+SYSGEN           Section sans contenuRÃ©pertoire de la sÃ©curitÃ©Erreur de taille dans la section %AFlottant logiciel
+En-tÃªte des fichiers sources
+RÃ©pertoire spÃ©cialRÃ©adressages ALPHA_R_BSR parasiteL'analyse de la pile ignorera l'appel de %s Ã  %s
 DÃ©bordement de la pile (%d) dans _bfd_vms_pushTaille de la pile des nÅ“uds racine du graph d'appel.
-Sous dÃ©pilage de la pile dans _bfd_vms_popPas:
+Sous dÃ©pilage de la pile dans _bfd_vms_popL'adresse de dÃ©part de Â«Â %sÂ Â» est diffÃ©rente de celle de l'Ã©dition de liens prÃ©cÃ©dente.Pas:
 Symbole %s n'est pas dÃ©fini pour les corrections
-Symbole %s remplacÃ© par %s
-Symbole Â«%sÂ» a des types qui diffÃ¨rent: %s dans %B, prÃ©cÃ©demment REGISTRE dans %BSymbole Â«%sÂ» a des types qui diffÃ¨rent: REGISTRE dans %B, prÃ©cÃ©demment %s dans %BSymboles ont besoin de la section de dÃ©bug qui est inexistenteErreur d'appel systÃ¨merÃ©adressage TLS incorrecte sans section dynamiqueDÃ©bordement de la table des entrÃ©es: 0x%lx > 0x10000; essayez l'option -mminimal-toc Ã  la compilationTable d'adresses
-RÃ©pertoire des files de stockage [.tls]Tampon Heure/Date 		%lx
+Symbole Â«Â %sÂ Â» a des types qui diffÃ¨rent: %s dans %B, prÃ©cÃ©demment REGISTRE dans %BSymbole Â«Â %sÂ Â» a des types qui diffÃ¨rent: REGISTRE dans %B, prÃ©cÃ©demment %s dans %BSymboles ont besoin de la section de dÃ©bug qui est inexistenteLe symbole devrait Ãªtre absolu, global et faire rÃ©fÃ©rence Ã  des fonctions Thumb.Erreur d'appel systÃ¨merÃ©adressage TLS incorrecte sans section dynamiqueDÃ©bordement de la table des entrÃ©es: 0x%lx > 0x10000; essayez l'option -mminimal-toc Ã  la compilationTable d'adresses
+Le champ de taille des donnÃ©es de dÃ©bogage dans le rÃ©pertoire de donnÃ©es est trop grand pour la sectionLa taille du rÃ©pertoire de dÃ©bogage n'est pas un multiple de la taille d'une entrÃ©e du rÃ©pertoire de dÃ©bogage
+Il y a un conflit en fusionnant les fanions d'en-tÃªtes ELF de %BRÃ©pertoire des files de stockage [.tls]Tampon Heure/Date 		%lx
 En-tÃªte du texte du titre
-USRSTACKIncapable de trouver un Ã©quivalent pour le symbole Â«%sÂ» de la section Â«%sÂ»STO_SH5_ISA32 inattendu sur le symbole local n'est pas traitÃ©NumÃ©ro de machine inattenduType de section de fichier core OSF/1 %d non traitÃ©
-RÃ©adressage %s non traitÃ©Sous type EGSD %d inconnuType de base %d inconnuRelocalisation %s inconnueRelocalisation %s + %s inconnueSymbole inconnu dans la commande %sINPUT_SECTION_FLAG %s non reconnu
-Identificateur de cible TI COFF non reconnu Â«0x%xÂ»Relocalisation non reconnueType de relocalisation non reconnu 0x%xRÃ©adressage du .stab non supportÃ©VOLATILE         Variable Â«%sÂ» peut seulement Ãªtre dans une rÃ©gion de donnÃ©es petite, zÃ©ro ou minusculeVariable Â«%sÂ» ne peut Ãªtre dans une rÃ©gion de donnÃ©es petite et minuscule Ã  la foisVariable Â«%sÂ» ne peut Ãªtre dans une rÃ©gion de donnÃ©es petite et zÃ©ro Ã  la foisVariable Â«%sÂ» ne peut Ãªtre dans une rÃ©gion de donnÃ©es zÃ©ro et minuscule Ã  la foisVariable Â«%sÂ» ne peut occuper de multiples petites rÃ©gions de donnÃ©esAttention, taille de la section .pdata (%ld) n'est pas un multiple de %d
-Attention: %B ne supporte pas l'inter-rÃ©seautage, contrairement Ã  %BAttention: %B est tronquÃ©: taille attendue du cÅ“ur du fichier >= %lu, obtenu: %lu.Attention: %B supporte l'inter-rÃ©seautage, contrairement Ã  %BAttention: %B utilise -mdouble-float, %B utilise -mips32r2 -mfp64Attention: %B utilise -msingle-float, %B utilise -mdouble-floatAttention: %B utilise -msingle-float, %B utilise -mips32r2 -mfp64Attention: %B utilise la virgule flottante double prÃ©cision matÃ©rielle, %B utilise la virgule flottante simple prÃ©cision matÃ©rielleAttention: %B utilise la virgule flottante matÃ©rielle, %B utilise la virgule flottante logicielleAttention: %B utilise r3/r4 pour les retours de petites structures, %B utilise la mÃ©moireAttention: %B utilise la virgule flottante logicielle, %B utilise la virgule flottante simple prÃ©cision matÃ©rielleAttention: %B utilise l'ABI inconnu %d pour la gestion des virgules flottantesAttention: %B utilise la convention inconnue %d pour le retour des petites structuresAttention: %B utilise l'ABI inconnu %d pour les vecteursAttention: %B utilise l'ABI de vecteurs Â«%sÂ», %B utilise Â«%sÂ»Attention: %B: Configuration de platforme conflictuelleAttention: %B: Attribut d'objet EABI %d inconnuAttention: mise Ã  zÃ©ro du fanion d'inter-rÃ©seautage %B en raison du code sans inter-rÃ©seautage dans %B liÃ© avec luiAttention: Mise Ã  zÃ©ro du fanion d'inter-rÃ©seautage de %B en raison d'une requÃªte externeAttention: Pas d'initialisation du fanion d'inter-rÃ©seautage de %B puisqu'il a dÃ©jÃ  Ã©tÃ© spÃ©cifiÃ© sans inter-rÃ©seautageAttention: Relocalistaion RX_SYM avec un symbole inconnuAttention: Ã‰criture de la section Â«%sÂ» vers un Ã©norme dÃ©calage (ie nÃ©gatif) dans le fichier 0x%lx.Attention: alignement %u du symbole commun Â«%sÂ» dans %B est plus grand que l'alignement (%u) de sa section %AAttention: alignement %u du symbole Â«%sÂ» dans %B est plus petit que %u dans %BAttention: nombre de corrections en dÃ©saccord
-Attention: l'option de la section gc est ignorÃ©eAttention: taille du symbole Â«%sÂ» a changÃ© de %lu dans %B Ã  %lu dans %BAttention: type de symbole Â«%sÂ» a changÃ© de %d Ã  %d dans %BAttention: l'Ã©criture de l'archive Ã©tait lente: rÃ©Ã©criture du cachet de date-heure
-Ã‰criture du cachet date-heure armap mise Ã  jour[%u]: %u
-[%u]: InfÃ©rieure: %u, supÃ©rieure: %u
-[abi=16-bit int, [abi=32-bit int, [dont le nom est perdu]\%B: Attention: instruction Arm BLX vise la fonction Arm Â«%sÂ»._bfd_vms_output_counted appelÃ© avec trop d'octets_bfd_vms_output_counted appelÃ© avec un compte de zÃ©ro octetadresseadresse pas alignÃ©e sur un motarsize: %u, a0: 0x%08x
+Trop d'entrÃ©es GOT pour -fpic, recompilez avec -fPICTrop de codes de dÃ©roulages (%ld)
+Essayez d'activer la relaxation pour Ã©viter des rÃ©adressages tronquÃ©sType                Taille   Rva      DÃ©calage
+USRSTACKIncapable de trouver un Ã©quivalent pour le symbole Â«Â %sÂ Â» de la section Â«Â %sÂ Â»Impossible d'atteindre %s (Ã  0x%08x) depuis le pointeur global (Ã  0x%08x) car l'offset (%d) est en dehors de la plage autorisÃ©e -32768 Ã  32767.
+Impossible de lire l'enregistrement EIHS Ã  l'offset %#xSTO_SH5_ISA32 inattendu sur le symbole local n'est pas traitÃ©NumÃ©ro de machine inattenduType de section de fichier core OSF/1 %d non traitÃ©
+RÃ©adressage %s non traitÃ©InconnuSous type EGSD %d inconnuType de base %d inconnuRÃ©adressage %s inconnuRÃ©adressage %s + %s inconnuSymbole inconnu dans la commande %sInconnu: %xNumÃ©ro de rÃ©adressage MIPS non reconnu: %dINPUT_SECTION_FLAG %s non reconnu
+Identificateur de cible TI COFF non reconnu Â«Â 0x%xÂ Â»Type de rÃ©adressage non reconnu 0x%xRÃ©adressage du .stab non supportÃ©Type de rÃ©adressage CR16 non supportÃ©: 0x%x
+VOLATILE         Variable Â«Â %sÂ Â» peut seulement Ãªtre dans une rÃ©gion de donnÃ©es petite, zÃ©ro ou minusculeVariable Â«Â %sÂ Â» ne peut Ãªtre dans une rÃ©gion de donnÃ©es petite et minuscule Ã  la foisVariable Â«Â %sÂ Â» ne peut Ãªtre dans une rÃ©gion de donnÃ©es petite et zÃ©ro Ã  la foisVariable Â«Â %sÂ Â» ne peut Ãªtre dans une rÃ©gion de donnÃ©es zÃ©ro et minuscule Ã  la foisVariable Â«Â %sÂ Â» ne peut occuper de multiples petites rÃ©gions de donnÃ©esLa taille virtuelle de la section .pdata (%ld) est plus grande que la taille rÃ©elle (%ld)
+Attention, taille de la section .pdata (%ld) n'est pas un multiple de %d
+Attention: %B ne supporte pas l'inter-rÃ©seautage, contrairement Ã  %BAttention: %B est tronquÃ©: taille attendue du cÅ“ur du fichier >= %lu, obtenu: %lu.Attention: %B supporte l'inter-rÃ©seautage, contrairement Ã  %BAttention: %B utilise %s (dÃ©fini par %B), %B utilise Â«Â %sÂ Â»Attention: %B utilise %s (dÃ©fini par %B), %B utilise l'ABI MSA inconnue %dAttention: %B utilise %s (dÃ©fini par %B), %B utilise l'ABI virgule flottante inconnue %dAttention: %B utilise un double long 64 bits, %B utilise un double long de 128 bitsAttention: %B utilise l'ABI de vecteurs AltiVec, %B utilise l'ABI de vecteurs SPEAttention: %B utilise un double long IBM, %B utilise un double long IEEEAttention: %B utilise la virgule flottante double prÃ©cision matÃ©rielle, %B utilise la virgule flottante simple prÃ©cision matÃ©rielleAttention: %B utilise la virgule flottante matÃ©rielle, %B utilise la virgule flottante logicielleAttention: %B utilise r3/r4 pour les retours de petites structures, %B utilise la mÃ©moireAttention: %B utilise l'ABI MSA inconnue %d (dÃ©finie par %B), %B utilise %sAttention: %B utilise l'ABI MSA inconnue %d (dÃ©finie par %B), %B utilise l'ABI MSA inconnue %dAttention: %B utilise l'ABI virgule flottante inconnue %d (dÃ©finie par %B), %B utilise %sAttention: %B utilise l'ABI virgule flottante inconnue %d (dÃ©finie par %B), %B utilise l'ABI virgule flottante inconnue %dAttention: %B: Configuration de platforme conflictuelleAttention: %B: Configuration de platforme %s en conflit avec %s.
+Attention: %B: Attribut d'objet ARC %d inconnu.Attention: %B: Attribut d'objet EABI %d inconnuAttention: %B: Attribut d'objet MSPBI %d inconnuAttention: la taille de la section %s (%ld) n'est pas un multiple de %d
+Attention: la taille de la section %s (%ld) est plus petite que la taille virtuelle (%ld)
+Attention: la taille de la section %s est nulle
+Attention: mise Ã  zÃ©ro du fanion d'inter-rÃ©seautage %B en raison du code sans inter-rÃ©seautage dans %B liÃ© avec luiAttention: Mise Ã  zÃ©ro du fanion d'inter-rÃ©seautage de %B en raison d'une requÃªte externeAttention: Pas d'initialisation du fanion d'inter-rÃ©seautage de %B puisqu'il a dÃ©jÃ  Ã©tÃ© spÃ©cifiÃ© sans inter-rÃ©seautageAttention: RÃ©adressage RL78_SYM avec un symbole inconnuAttention: Relocalistaion RX_SYM avec un symbole inconnuAttention: alignement %u du symbole commun Â«Â %sÂ Â» dans %B est plus grand que l'alignement (%u) de sa section %AAttention: alignement %u du symbole Â«Â %sÂ Â» dans %B est plus petit que %u dans %BAttention: nombre de corrections en dÃ©saccord
+Attention: l'option de la section gc est ignorÃ©eAttention: taille du symbole Â«Â %sÂ Â» a changÃ© de %Lu dans %B Ã  %Lu dans %BAttention: taille du symbole Â«Â %sÂ Â» a changÃ© de %lu dans %B Ã  %lu dans %BAttention: le symbole Â«Â %sÂ Â» est Ã  la fois une section et une non-sectionAttention: type de symbole Â«Â %sÂ Â» a changÃ© de %d Ã  %d dans %BAttention: fanions d'architecture non dÃ©finis ou trop anciens. 
+           Utilise la machine par dÃ©faut.
+Attention: l'Ã©criture de l'archive Ã©tait lente: rÃ©Ã©criture du cachet de date-heure
+Ã‰criture du cachet date-heure armap mise Ã  jourl'adresse XGATE (%lx) n'est pas dans la mÃ©moire RAM partagÃ©e (0xE000-0xFFFF), par consÃ©quent, vous devez dÃ©caler l'adresse manuellement, et peut-Ãªtre gÃ©rer la page, dans votre code.[%u]: InfÃ©rieure: %u, supÃ©rieure: %u
+[abi=16-bit int, [abi=32-bit int, [dont le nom est perdu]\%B: Attention: instruction Arm BLX vise la fonction Arm Â«Â %sÂ Â»._bfd_vms_output_counted appelÃ© avec trop d'octets_bfd_vms_output_counted appelÃ© avec un compte de zÃ©ro octetÂ«Â %sÂ Â» fait rÃ©fÃ©rence Ã  quelque chose qui n'est pas une fonction d'entrÃ©e.adresseadresse pas alignÃ©e sur un motdescripteur de tableau:
+tableau, dim: %u, bitmpa: arsize: %u, a0: 0x%08x
+atomique, type=0x%02x %s
 index de section erronÃ©e dans %sbanque d'adresses [%lx:%04lx] (%lx) n'es pas dans la mÃªme banque que la banque courante d'adresses [%lx:%04lx] (%lx)base: %u, pos: %u
-bfd_mach_o_canonicalize_symtab: impossible de charger les symbolesbfd_mach_o_read_dysymtab_symbol: impossible de lire %lu octets Ã  %lubfd_mach_o_read_symtab_symbol: nom hors limites (%lu >= %lu)bfd_mach_o_read_symtab_symbol: symbole Â«Â %sÂ Â» a la rÃ©fÃ©rence non supportÃ©e Â«Â indirectÂ Â»: laissÃ© non dÃ©finibfd_mach_o_read_symtab_symbol: le symbole Â«Â %sÂ Â» spÃ©cifie la section %d invalide (max %lu): laissÃ© non dÃ©finibfd_mach_o_read_symtab_symbol: symbole Â«Â %sÂ Â» spÃ©cifie le champ de type 0x%x invalide: laissÃ© non dÃ©finibfd_mach_o_read_symtab_symbol: impossible de lire %d octets Ã  %lubfd_mach_o_read_symtab_symbols: impossible d'allouer la mÃ©moire pour les symbolesbfd_mach_o_scan: architecture 0x%lx/0x%lx inconnuebfd_pef_scan: architecture 0x%lx inconnuedÃ©but blk: adresse: 0x%08x, nom: %.*s
+bfd_mach_o_canonicalize_symtab: impossible de charger les symbolesbfd_mach_o_read_section_32: valeur d'alignement dÃ©mesurÃ©e: 0x%x, utilise 32 Ã  la placebfd_mach_o_read_section_64: valeur d'alignement dÃ©mesurÃ©e: 0x%x, utilise 32 Ã  la placebfd_mach_o_read_symtab_symbol: nom hors limites (%lu >= %lu)bfd_mach_o_read_symtab_symbol: le symbole Â«Â %sÂ Â» spÃ©cifie la section %d invalide (max %lu): laissÃ© non dÃ©finibfd_mach_o_read_symtab_symbol: symbole Â«Â %sÂ Â» spÃ©cifie le champ de type 0x%x invalide: laissÃ© non dÃ©finibfd_mach_o_read_symtab_symbol: impossible de lire %d octets Ã  %lubfd_mach_o_read_symtab_symbols: impossible d'allouer la mÃ©moire pour les symbolesbfd_mach_o_scan: architecture 0x%lx/0x%lx inconnuebfd_pef_scan: architecture 0x%lx inconnuedÃ©but blk: adresse: 0x%08x, nom: %.*s
 fin blk: taille: 0x%08x
-impossible d'Ã©diter les rÃ©adressages dynamiques dans une section en lecture seuleimpossible d'apporter des corrections dans une section en lecture seuleimpossible de trouver le EMH dans le premier enregistrement GST
-ne peut traiter la relocalisation R_MEM_INDIRECT lorsque %s est utilisÃ© en sortiene peut lire DMT
+ne peut crÃ©er l'entrÃ©e d'Ã©bauche %simpossible d'Ã©diter les rÃ©adressages dynamiques dans une section en lecture seuleimpossible d'apporter des corrections dans une section en lecture seuleimpossible de trouver le EMH dans le premier enregistrement GST
+ne peut traiter le rÃ©adressage R_MEM_INDIRECT lorsque %s est utilisÃ© en sortiene peut lire DMT
 ne peut lire l'en-tÃªte DMT
 ne peut lire le psect DMT
 ne peut lire DST
@@ -1113,55 +1351,72 @@ est un systÃ¨me Ã  octets de poids fort
 impossible de lire l'en-tÃªte de l'enregistrement GST
 impossible de lire la longueur de l'enregistrement GST
 classe: %u, dtype: %u, longueur: %u, pointeur: 0x%08x
-section %s corrompue dans %Bne peut repÃ©rer le symbole spÃ©cial d'Ã©dition de lien __ctbpne peut repÃ©rer le symbole spÃ©cial d'Ã©dition de lien __epne peut repÃ©rer le symbole spÃ©cial d'Ã©dition de lien __gpn'a pas su ouvrir l'image partagÃ©e Â«%sÂ» de Â«%sÂ»cpu=HC11]cpu=HC12]cpu=HCS12]rÃ©adressage dangereuxdelta pc +%-4ddelta_pc_l: +0x%08x
+section %s corrompue dans %Bne peut repÃ©rer la section %sne peut repÃ©rer le symbole spÃ©cial d'Ã©dition de lien __ctbpne peut repÃ©rer le symbole spÃ©cial d'Ã©dition de lien __epne peut repÃ©rer le symbole spÃ©cial d'Ã©dition de lien __gpn'a pas su ouvrir l'image partagÃ©e Â«Â %sÂ Â» de Â«Â %sÂ Â»cpu=HC11]cpu=HC12]cpu=HCS12]cpu=XGATE]rÃ©adressage dangereuxdelta pc +%-4ddelta_pc_l: +0x%08x
 delta_pc_w %u
 descdimct: %u, aflags: 0x%02x, digits: %u, Ã©chelle: %u
-section de sortie rejetÃ©e: Â«%AÂ»plage discontinue (nbr: %u)
-rÃ©adressage dynamique dans une section en lecture seulela variable dynamique Â«%sÂ» a une taille nulledÃ©but Ã©numÃ©ration, long: %u, nom: %.*s
+section de sortie rejetÃ©e: Â«Â %AÂ Â»abandon du FDE avec une plage d'adresses nulle dans %B(%A).
+plage discontinue (nbr: %u)
+rÃ©adressage dynamique dans une section en lecture seulela variable dynamique Â«Â %sÂ Â» a une taille nulledÃ©but Ã©numÃ©ration, long: %u, nom: %.*s
 Ã©numÃ©ration Ã©lÃ©ments, nom: %.*s
 fin Ã©numÃ©ration
 Ã©pilogue: fanions: %u, nombre: %u
-erreur: %B contient une relocalisation (0x%s) pour la section %A qui fait rÃ©fÃ©rence Ã  un symbole global inexistanterreur: %B n'utilise pas les instructions Maverick alors que %B les utiliseerreur: %B est dÃ©jÃ  au format final BE8erreur: %B compilÃ© avec du code Ã  position absolu alors que la cible %B est Ã  position indÃ©pendanteerreur: %B compilÃ© avec du code Ã  position indÃ©pendante alors que la cible %B est Ã  position absolueerreur: %B compilÃ© pour APCS-%d alors que %B a Ã©tÃ© compilÃ© pour APCS-%derreur: %B compilÃ© pour APCS-%d alors que la cible %B utilise APCS-%derreur: %B compilÃ© pour EP9312 alors que %B a Ã©tÃ© compilÃ© pour XScaleerreur: %B passage de valeurs en virgule flottante dans les registres FP alors que %B les passe dans les registres entierserreur: %B passage de valeurs en virgule flottante dans les registres entiers alors que %B les passe dans les registres FPerreur: %B nÃ©cessite un plus grand alignement de tableau que ce que %B prÃ©serveerreur: %B nÃ©cessite un plus grand alignement de pile que ce que %B prÃ©serveerreur: %B utilise les instructions FPA alors que %B ne les utilise paserreur: %B utilise les instructions Maverick alors que %B ne les utilise paserreur: %B utilise les instructions VFP alors que %B ne les utilise paserreur: %B passe les paramÃ¨tres dans un registre VFP alors que %B ne le fait paserreur: %B utilise le matÃ©riel pour virgule flottante alors que %B utilise le logiciel pour virgule flottanteerreur: %B passe les paramÃ¨tres dans le registre iWMMXt contrairement Ã  %Berreur: %B utilise le logiciel pour virgule flottante alors que %B utilise le matÃ©riel pour virgule flottanteerreur: %B: Architectures CPU conflictuelles %d/%derreur: %B: Profils d'architecture conflictuels %c/%cerreur: %B: Utilisation conflictuelle de R9erreur: %B: L'objet a un contenu spÃ©cific Ã  un vendeur qui doit Ãªtre traitÃ© par la chaÃ®ne d'outils Â«%sÂ»erreur: %B: Ã‰tiquette d'objet Â«%d, %sÂ» incompatible avec l'Ã©tiquette Â«%d, %sÂ»erreur: %B: Adressage relatif SB entre en conflit avec l'utilisation de R9erreur: %B: Architecture CPU inconnueerreur: %B: le rÃ©adressage de la section %A n'est pas un multiple de la taille des adresseserreur: %B: impossible de fusionner les attributs de visualisation avec %Berreur: L'objet source %B a l'EABI version %d alors que la cible %B a l'EABI version %derreur: dÃ©saccord de format fp16 entre %B et %Berreur: type de rÃ©adressage inappropriÃ© pour une librairie partagÃ©e (avez-vous oubliÃ© -fpic ?)erreur: symbole __rtinit non dÃ©finierreur: valeur Tag_ABI_array_object_align_expected inconnue dans %Berreur: valeur Tag_ABI_array_object_alignment inconnue dans %BexÃ©cutableÃ©chec d'allocation d'espace pour une nouvelle section APUinfoÃ©chec d'Ã©valuation de la nouvelle section APUinfoÃ©chec d'installation de la nouvelle section APUinfoerreur fatale lors de la crÃ©ation de .fixupliaison gÃ©nÃ©rique ne peut traiter %sadresse relative du pointeur global hors limitesrÃ©adressage relatif au pointeur global sans que _gp ne soit dÃ©finisymbole cachÃ©relocalisation %s ignorÃ©e
+erreur lors de la lecture du type de CPU dans les donnÃ©es elf privÃ©eserreur: %B contient un rÃ©adressage (%#Lx) pour la section %A qui fait rÃ©fÃ©rence Ã  un symbole global inexistanterreur: %B n'utilise pas les instructions Maverick alors que %B les utiliseerreur: %B est dÃ©jÃ  au format final BE8erreur: %B compilÃ© avec du code Ã  position absolu alors que la cible %B est Ã  position indÃ©pendanteerreur: %B compilÃ© avec du code Ã  position indÃ©pendante alors que la cible %B est Ã  position absolueerreur: %B compilÃ© pour APCS-%d alors que %B a Ã©tÃ© compilÃ© pour APCS-%derreur: %B compilÃ© pour APCS-%d alors que la cible %B utilise APCS-%derreur: %B compilÃ© pour EP9312 alors que %B a Ã©tÃ© compilÃ© pour XScaleerreur: %B a besoin d'un alignement sur 8 octets mais %B est dÃ©fini pour un alignement sur 4 octetserreur: %B passage de valeurs en virgule flottante dans les registres FP alors que %B les passe dans les registres entierserreur: %B passage de valeurs en virgule flottante dans les registres entiers alors que %B les passe dans les registres FPerreur: %B nÃ©cessite un plus grand alignement de tableau que ce que %B prÃ©serveerreur: %B nÃ©cessite un plus grand alignement de pile que ce que %B prÃ©serveerreur: %B utilise les instructions %s alors que %B utilise %serreur: %B utilise des doubles 64 bits alors que %B utilise des doubles 32 bitserreur: %B utilise les instructions FPA alors que %B ne les utilise paserreur: %B utilise FPU-3.0 mais %B ne supporte que FPU-2.0erreur: %B utilise les instructions Maverick alors que %B ne les utilise paserreur: %B utilise les instructions VFP alors que %B ne les utilise paserreur: %B passe les paramÃ¨tres dans un registre VFP alors que %B ne le fait paserreur: %B utilise le matÃ©riel pour virgule flottante alors que %B utilise le logiciel pour virgule flottanteerreur: %B passe les paramÃ¨tres dans le registre iWMMXt contrairement Ã  %Berreur: %B utilise le logiciel pour virgule flottante alors que %B utilise le matÃ©riel pour virgule flottanteerreur: %B utilise le modÃ¨le de code %s alors que %B utilise le modÃ¨le de code %serreur: %B utilise le modÃ¨le de donnÃ©es %s alors que %B utilise uniquement des instructions MSP430erreur: %B utilise le modÃ¨le de donnÃ©es %s alors que %B utilise le modÃ¨le de donnÃ©es %serreur: %B utilise le grand modÃ¨le de code alors que %B utilise les instructions MSP430erreur: %B utilise le petit modÃ¨le de code alors que %B utilise le modÃ¨le de donnÃ©es %serreur: %B(%A) est trop grand (%#lx octets)erreur: %B: <la taille nÃ©cessaire pour l'ISA x86 est corrompue: 0x%x>erreur: %B: <la taille utilisÃ©e par l'ISA x86 est corrompue: 0x%x>erreur: %B: <la taille des fonctionnalitÃ©s x86 est corrompue: 0x%x>erreur: %B: R2 gros boutiste n'est pas supportÃ©.erreur: %B: Architectures CPU conflictuelles %d/%derreur: %B: Profils d'architecture conflictuels %c/%cerreur: %B: Utilisation conflictuelle de R9erreur: %B: L'objet a un contenu spÃ©cific Ã  un vendeur qui doit Ãªtre traitÃ© par la chaÃ®ne d'outils Â«Â %sÂ Â»erreur: %B: Ã‰tiquette d'objet Â«Â %d, %sÂ Â» incompatible avec l'Ã©tiquette Â«Â %d, %sÂ Â»erreur: %B: Adressage relatif SB entre en conflit avec l'utilisation de R9erreur: %B: Architecture CPU inconnueerreur: %B: impossible de mÃ©langer rf16 avec l'ensemble des registres complets %B.
+erreur: %B: attributs d'extension ISA %s en conflit avec %s.
+erreur: %B: attributs %s conflictuels.
+erreur: %B: attributs %s conflictuels: %s avec %s.
+erreur: %B: le rÃ©adressage de la section %A n'est pas un multiple de la taille des adresseserreur: %B: impossible de fusionner les attributs de base CPU %s avec %s.
+erreur: %B: impossible de fusionner les attributs de l'extension ISA %s.
+erreur: %B: impossible de fusionner les attributs de visualisation avec %Berreur: Le symbole ne peut Ãªtre trouvÃ©: _SDA_BASE_.erreur: erreur de rÃ©adressage IFC.erreur: Saut IFC a Ã©chouÃ©.erreur: L'objet source %B a l'EABI version %d alors que la cible %B a l'EABI version %derreur: dÃ©saccord de format fp16 entre %B et %Berreur: type de rÃ©adressage inappropriÃ© pour une librairie partagÃ©e (avez-vous oubliÃ© -fpic ?)erreur: symbole __rtinit non dÃ©finierreur: valeur Tag_ABI_array_object_align_expected inconnue dans %Berreur: valeur Tag_ABI_array_object_alignment inconnue dans %BexÃ©cutableÃ©chec d'allocation d'espace pour une nouvelle section APUinfoÃ©chec d'Ã©valuation de la nouvelle section APUinfoÃ©chec d'installation de la nouvelle section APUinfoerreur fatale lors de la crÃ©ation de .fixupliaison gÃ©nÃ©rique ne peut traiter %sadresse relative du pointeur global hors limitesrÃ©adressage relatif au pointeur global Ã  l'adresse 0x%08x sans que _gp ne soit dÃ©fini
+rÃ©adressage relatif au pointeur global sans que _gp ne soit dÃ©finisymbole cachÃ©symbole cachÃ© rÃ©adressage %s ignorÃ©
 incr_linum(b): +%u
 incr_linum_l: +%u
 incr_linum_w: +%u
-erreur interne: opÃ©rande devrait Ãªtre zÃ©ro pour R_LM32_16_GOTerreur interne: erreur dangereuseerreur interne: rÃ©adressage dangereuxerreur interne: hors limiteerreur interne: type de rÃ©adressage douteux utilisÃ© dans une librairie partagÃ©eerreur interne: erreur inconnueerreur interne: erreur de rÃ©adressage non supportÃ©eincohÃ©rence interne dans la taille de la section .got.locsymbole internerÃ©adressage d'entrÃ©e invalide en produisant un format de sortie non ELF et non mmo.
+indirect, dÃ©fini Ã  0x%08x
+erreur interne: opÃ©rande devrait Ãªtre zÃ©ro pour R_LM32_16_GOTerreur interne: opÃ©rande devrait Ãªtre zÃ©ro pour R_OR1K_GOT16erreur interne: branchement/saut vers une adresse impaire dÃ©tectÃ©erreur interne: erreur dangereuseerreur interne: rÃ©adressage dangereuxerreur interne: la fusion de l'architecture Â«Â %sÂ Â» avec l'architecture Â«Â %sÂ Â» a produit une architecture inconnueerreur interne: hors limiteerreur interne: type de rÃ©adressage douteux utilisÃ© dans une librairie partagÃ©eerreur interne: erreur inconnueerreur interne: erreur de rÃ©adressage non supportÃ©eincohÃ©rence interne dans la taille de la section .got.locsymbole internesymbole interne rÃ©adressage d'entrÃ©e invalide en produisant un format de sortie non ELF et non mmo.
  Veuillez utiliser le programme objcopy pour convertir de ELF ou mmo,
  ou assembler en utilisant Â«Â -no-expandÂ Â» (pour gcc, Â«Â -Wa,-no-expandÂ Â»rÃ©adressage d'entrÃ©e invalide en produisant un format de sortie non ELF et non mmo.
  Veuillez utiliser le programme objcopy pour convertir de ELF ou mmo,
- ou compiler en utilisant l'option gcc Â«Â -mno-base-addressesÂ Â».adresse de rÃ©adressage incorrectetype de rÃ©adressage %d invalideutilisation incorrecte de %s avec des contextesliaison ip2k: instruction de page manquante Ã  0x%08lx (cible = 0x%08lx).liaison ip2k: instruction de page redondante Ã  0x%08lx (cible = 0x%08lx).relÃ¢che ip2k: en-tÃªte de table de commutation corrompuerelÃ¢che ip2k: table de commutation sans concordance complÃ¨te des informations de rÃ©adressagenum ligne  (long: %u)
+ ou compiler en utilisant l'option gcc Â«Â -mno-base-addressesÂ Â».adresse de rÃ©adressage incorrectetype de rÃ©adressage %d invalideutilisation incorrecte de %s avec des contextesliaison ip2k: instruction de page manquante Ã  0x%08lx (cible = 0x%08lx).liaison ip2k: instruction de page redondante Ã  0x%08lx (cible = 0x%08lx).relÃ¢che ip2k: en-tÃªte de table de commutation corrompuerelÃ¢che ip2k: table de commutation sans concordance complÃ¨te des informations de rÃ©adressageÃ©tiquette, nom: %.*s
+long: %2u, type: %2u num ligne  (long: %u)
 image liableÃ©diteur de liens des Ã©bauches dans %u groupe%s
   branchements         %lu
   ajustements toc      %lu
   long branchements    %lu
   long ajustements toc %lu
-  appels plt           %lulitÃ©ralerÃ©adressage littÃ©ral rencontrÃ© pour un symbole externemep: pas de rÃ©adressage pour le code %ddÃ©but module
+  appels plt           %lu
+  appels plt toc       %lu
+  entrÃ©es globales     %lulitÃ©ralerÃ©adressage littÃ©ral rencontrÃ© pour un symbole externemach-o: il y a trop de sections (%u) le maximum est 255,
+mep: pas de rÃ©adressage pour le code %ddÃ©but module
 fin module
-natiftable de %s non contiguÃ«
+nom: [val: %08lx long %d]: natifune ou plusieurs nouvelles fonctions d'entrÃ©e spÃ©cifiÃ©es mais aucune bibliothÃ¨que d'import est spÃ©cifiÃ©e:nontable de %s non contiguÃ«
 rÃ©adressages non dynamiques font rÃ©fÃ©rence au symbole dynamique %sla taille de non recouvrement de 0x%v plus la taille maximum de recouvrement de 0x%v dÃ©passe l'espace local
-ajout non nul dans la relocalisation @fptrpas suffisamment d'espace GOT pour les entrÃ©es locales GOTpas de table de projection: donnÃ©es=%lx adresse de la table=%d
+ajout non nul dans le rÃ©adressage @fptraucunpas suffisamment d'espace GOT pour les entrÃ©es locales GOTpas de table de projection: donnÃ©es=%lx adresse de la table=%d
 pas de table de projection: variable d'environnement pas initialisÃ©e
-note: Â«%sÂ» est dÃ©fini dans le DSO %B donc essayez de l'ajouter Ã  la ligne de commande du lieurhors limitedÃ©bordement aprÃ¨s la relÃ¢chedÃ©bordement du rÃ©adressage de l'Ã©bauche de recouvrementfanions privÃ©s = %lxfanions privÃ©s = %lxfanions privÃ©s = %lx: fanions privÃ©s = %x:fanions privÃ©s = 0x%lxfanions privÃ©s = 0x%lx:prologue: adresse bkpt 0x%08x
-symbole protÃ©gÃ©dÃ©but rec: nom: %.*s
+pas dÃ©finihors limitedÃ©bordement aprÃ¨s la relÃ¢chedÃ©bordement du rÃ©adressage de l'Ã©bauche de recouvrementpointeur
+fanions privÃ©s = %lxfanions privÃ©s = %lxfanions privÃ©s = %lx: fanions privÃ©s = %x:fanions privÃ©s = 0x%lxfanions privÃ©s = 0x%lx:prologue: adresse bkpt 0x%08x
+symbole protÃ©gÃ©symbole protÃ©gÃ© dÃ©but rec: nom: %.*s
 fin rec
-rÃ©fÃ©rence Ã  une banque d'adresses [%lx:%04lx] dans l'espace normal d'adresses Ã  %04lxregrÃ©adressage Â«Â %sÂ Â» pas encore implÃ©mentÃ©le rÃ©adressage fait rÃ©fÃ©rence Ã  un symbole non dÃ©fini dans le modulele rÃ©adressage exige un opÃ©rande nulle rÃ©adressage devrait Ãªtre un nombre paireles rÃ©adressages entre segments diffÃ©rents ne sont pas supportÃ©srÃ©ouverture de %B: %s
+rÃ©fÃ©rence Ã  une banque d'adresses [%lx:%04lx] dans l'espace normal d'adresses Ã  %04lxregle rÃ©adressage (%d) est *INCONNU*rÃ©adressage Â«Â %sÂ Â» pas encore implÃ©mentÃ©rÃ©adressage hors limitele rÃ©adressage fait rÃ©fÃ©rence Ã  un symbole non dÃ©fini dans le modulele rÃ©adressage exige un opÃ©rande nulle rÃ©adressage devrait Ãªtre un nombre paireles rÃ©adressages entre segments diffÃ©rents ne sont pas supportÃ©srÃ©ouverture de %B: %s
 commande %d rÃ©servÃ©edÃ©but rtn
 fin rtn: taille 0x%08x
-septyp, nom: %.*s
+adresse de section (%lx) en deÃ§Ã  du dÃ©but du segment (%lx)septyp, nom: %.*s
 set_abs_pc: 0x%08x
 set_line_num(w) %u
 set_line_num_b %u
 set_line_num_l %u
-la taille des petites donnÃ©es de la section dÃ©passe 64KB; abaissez la limite de taille des petites donnÃ©es (voyez l'option -G)som_sizeof_headers non implÃ©mentÃ©dÃ©solÃ©, pas de support des fichiers objet dupliquÃ©s dans un script auto-overlay
-source (long: %u)
+objet partagÃ©la taille des petites donnÃ©es de la section dÃ©passe 64KB; abaissez la limite de taille des petites donnÃ©es (voyez l'option -G)som_sizeof_headers non implÃ©mentÃ©dÃ©solÃ©, pas de support des fichiers objet dupliquÃ©s dans un script auto-overlay
+dÃ©solÃ©: modtab, toc et extrefsyms ne sont pas encore implÃ©mentÃ©s pour les commandes dysymtab.source (long: %u)
 donnÃ©es standards: %s
-procÃ©dure statique (sans name)entrÃ©e de l'Ã©bauche pour %s ne peut charger .plt, dÃ©calage dp = %ldtaille des Ã©bauches ne concorde pas avec la taille calculÃ©esymboleinformation sur table de version systÃ¨me:
-term(b): 0x%02xterm_w: 0x%04xtypspec (long: %u)
-incapable de repÃ©rer le liant ARM Â«%sÂ» pour Â«%sÂ»incapable de repÃ©rer le REPÃˆRE de liant Â«%sÂ» pour Â«%sÂ»incapable de lire dans la section %s Ã  partir de %Bimpossible de lire la commande de chargement inconnue 0x%lximpossible d'Ã©crire la commande de chargement inconnue 0x%lxchaine de bits de %s dÃ©salignÃ©e
-convention d'appel incertaine pour un symbole non COFFrÃ©fÃ©rence %s non dÃ©finie dans le symbole complexe: %stype d'entrÃ©e egsd %u non supportÃ©
+procÃ©dure statique (sans name)entrÃ©e de l'Ã©bauche pour %s ne peut charger .plt, dÃ©calage dp = %ldtaille des Ã©bauches ne concorde pas avec la taille calculÃ©esymbolesymbole information sur table de version systÃ¨me:
+term(b): 0x%02xterm_w: 0x%04xla cible bfin ne supporte actuellement pas la gÃ©nÃ©ration de rÃ©adressages copiÃ©sspec de type pour Ã©lÃ©ment:
+spec de type pour l'indice %u:
+pointeur typÃ©
+typspec (long: %u)
+impossible d'allouer les donnÃ©es pour la commande de chargement 0x%lxincapable de repÃ©rer le liant ARM Â«Â %sÂ Â» pour Â«Â %sÂ Â»incapable de repÃ©rer le REPÃˆRE de liant Â«Â %sÂ Â» pour Â«Â %sÂ Â»impossible de disposer la commande de chargement inconnue 0x%lxincapable de lire dans la section %s Ã  partir de %Bimpossible d'Ã©crire la commande de chargement inconnue 0x%lxchaine de bits de %s dÃ©salignÃ©e
+convention d'appel incertaine pour un symbole non COFFnon dÃ©fini rÃ©fÃ©rence %s non dÃ©finie dans le symbole complexe: %stype d'entrÃ©e egsd %u non supportÃ©
 sous-type emh %u non pris en charge
-inconnucommande ETIR %d inconnueerreur inconnuevaleur d'ordre des octets de l'en-tÃªte 0x%lx est inconnuecommande de ligne %d inconnueopÃ©rateur Â«%cÂ» inconnu dans le symbole complexecommande source %d inconnuecommande STA %s non supportÃ©erelocalisation non supportÃ©etype de relocalisation non supportÃ©rÃ©adressage non supportÃ©rÃ©adressage non supportÃ© entre les espaces d'adresses data/insnutilisation de valeurs gp multiplesarchitecture v850architecture v850earchitecture v850e1architecture v850e2architecture v850e2v3vflags: 0x%02x, valeur: 0x%08x  vma:			Adresse DÃ©but	 Adresse Fin	  Unwind Info
-attention: %B et %B on des tailles de wchar_t diffÃ©rentesattention: %B et %B ne sont pas d'accord sur la compilation du code pour DSBTattantion: %B utilise des enums %s alors que la sortie doit utiliser des enums %s. L'utilisation des valeurs enum entre objets peu Ã©chouerattention: %B utilise des wchar_t de %u octets alors que la sortie doit utiliser des wchar_t de %u octets. L'utilisation de wchar_t entre objets peu Ã©chouerattention: %B: symbole local Â«%sÂ» n'a pas de sectionattention: %s dÃ©passe la taille de la section
-attention: %s a un index de table de chaÃ®nes corrompu - ignorÃ©attention: %s recouvre %s
-attention: section %s a une taille nulleattention, taille de la section .pdata (%ld) n'est pas un multiple de %d
-attention: tentative d'exportation d'un symbole non dÃ©fini Â«%sÂ»attention: appel au symbole %s dÃ©fini dans %B qui n'est pas une fonctionattention: production d'une librairie partagÃ©e contenant du code non-PICattention: production d'une librairie partagÃ©e contenant du code non-PIDattention: rÃ©adressage fait rÃ©fÃ©rence Ã  un segment diffÃ©rentattention: section Â«Â %sÂ Â» changÃ© en une noteattention: type de la section Â«%AÂ» changÃ© en PROGBITSattention: type et taille du symbole dynamique Â«%sÂ» ne sont pas dÃ©finisattention: incapable d'initialiser la taille de la section %s dans %Battention: incapable de mettre Ã  jour le contenu de la section %s dans %svous ne pouvez pas dÃ©finir %s dans un script
\ No newline at end of file
+inconnucommande ETIR %d inconnueerreur inconnuevaleur d'ordre des octets de l'en-tÃªte 0x%lx est inconnuecommande de ligne %d inconnueopÃ©rateur Â«Â %cÂ Â» inconnu dans le symbole complexecommande source %d inconnuearchitecture v850 inconnueinconnu: %xtype de rÃ©adressage MIPS non reconnu: %dRÃ©adressage non reconnu (0x%x)commande STA %s non supportÃ©erÃ©adressage non supportÃ©etype de rÃ©adressage non supportÃ©rÃ©adressage non supportÃ©rÃ©adressage non supportÃ© entre les espaces d'adresses data/insnutilisation de valeurs gp multiplesarchitecture v850 E3architecture v850architecture v850earchitecture v850e1architecture v850e2architecture v850e2v3architecture v850e3v5vflags: 0x%02x, valeur: 0x%08x  vma:			Adresse DÃ©but	 Adresse Fin	  Unwind Info
+attention: %B et %B on des tailles de wchar_t diffÃ©rentesattention: %B et %B ne sont pas d'accord sur la compilation du code pour DSBTattention: %B a un index de table de chaÃ®nes corrompu - ignorÃ©attantion: %B utilise des enums %s alors que la sortie doit utiliser des enums %s. L'utilisation des valeurs enum entre objets peu Ã©chouerattention: %B utilise des wchar_t de %u octets alors que la sortie doit utiliser des wchar_t de %u octets. L'utilisation de wchar_t entre objets peu Ã©chouerattention: %B: taille de GNU_PROPERTY_TYPE (%ld) corrompue: %#lxattention: %1$B: datasz du type (0x%3$x) GNU_PROPERTY_TYPE (%2$ld) corrompu: 0x%4$xattention: %B: taille de Â«Â no copy on protectedÂ Â» corrompue: 0x%xattention: %B: taille de pille corrompue: 0x%xattention: %B: symbole local Â«Â %sÂ Â» n'a pas de sectionattention: %B: type GNU_PROPERTY_TYPE (%ld) non supportÃ©: 0x%xattention: %s dÃ©passe la taille de la section
+attention: %s recouvre %s
+attention: section %s a une taille nulleattention: tentative d'exportation d'un symbole non dÃ©fini Â«Â %sÂ Â»attention: appel au symbole %s dÃ©fini dans %B qui n'est pas une fonctionattention: production d'une librairie partagÃ©e contenant du code non-PICattention: production d'une librairie partagÃ©e contenant du code non-PIDattention: rÃ©adressage fait rÃ©fÃ©rence Ã  un segment diffÃ©rentattention: section Â«Â %sÂ Â» changÃ© en une noteattention: type de la section Â«Â %AÂ Â» changÃ© en PROGBITSattention: type et taille du symbole dynamique Â«Â %sÂ Â» ne sont pas dÃ©finisattention: incapable d'initialiser la taille de la section %s dans %Battention: incapable de mettre Ã  jour le contenu de la section %s dans %BAttention: Ã©criture de la section Â«Â %AÂ Â» vers un Ã©norme dÃ©calage (c-Ã -d nÃ©gatif) dans le fichier 0x%lx.attention: section xdata corrompueattention: section xdata corrompue
+ouivous ne pouvez pas dÃ©finir %s dans un script
\ No newline at end of file
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/fr.po ./bfd/po/fr.po
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/fr.po	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/fr.po	2018-01-09 02:04:54.000000000 +0000
@@ -1,176 +1,191 @@
 # Messages franÃ§ais pour GNU concernant bfd.
-# Copyright (C) 2012 Free Software Foundation, Inc.
+# Copyright (C) 2017 Free Software Foundation, Inc.
 # This file is distributed under the same license as the binutils package.
 # Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur depuis/since 1996.
-# FrÃ©dÃ©ric Marchal <fmarchal@perso.be>, 2012.
+# FrÃ©dÃ©ric Marchal <fmarchal@perso.be>, 2017.
 msgid ""
 msgstr ""
-"Project-Id-Version: bfd-2.22.90\n"
+"Project-Id-Version: bfd-2.28.90\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2011-10-25 11:58+0100\n"
-"PO-Revision-Date: 2012-07-28 10:47+0200\n"
+"POT-Creation-Date: 2017-07-03 16:54+0200\n"
+"PO-Revision-Date: 2017-07-23 16:42+0200\n"
 "Last-Translator: FrÃ©dÃ©ric Marchal <fmarchal@perso.be>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms:  nplurals=2; plural=(n > 1);\n"
-"X-Generator: Lokalize 1.4\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=2; plural=(n >= 2);\n"
 
-#: aout-adobe.c:127
+#: aout-adobe.c:126
+#, c-format
 msgid "%B: Unknown section type in a.out.adobe file: %x\n"
 msgstr "%B: Type de section inconnu dans le fichier a.out.adobe: %x\n"
 
-#: aout-cris.c:199
+#: aout-cris.c:200
 #, c-format
-msgid "%s: Invalid relocation type exported: %d"
-msgstr "%s: Type de rÃ©adressage exportÃ© invalide: %d"
+msgid "%B: Invalid relocation type exported: %d"
+msgstr "%B: Type de rÃ©adressage exportÃ© invalide: %d"
 
-#: aout-cris.c:242
+#: aout-cris.c:244
+#, c-format
 msgid "%B: Invalid relocation type imported: %d"
 msgstr "%B: Type de rÃ©adressage importÃ© invalide: %d"
 
-#: aout-cris.c:253
+#: aout-cris.c:256
+#, c-format
 msgid "%B: Bad relocation record imported: %d"
 msgstr "%B: Mauvais enregistrement de rÃ©adressage importÃ©: %d"
 
-#: aoutx.h:1273 aoutx.h:1611
+#: aoutx.h:1284 aoutx.h:1621 pdp11.c:1152 pdp11.c:1413
 #, c-format
-msgid "%s: can not represent section `%s' in a.out object file format"
-msgstr "%s: ne peut reprÃ©senter la section Â«%sÂ» dans le fichier format objet a.out"
+msgid "%B: can not represent section `%A' in a.out object file format"
+msgstr "%B: ne peut reprÃ©senter la section Â«Â %AÂ Â» dans le fichier format objet a.out"
 
-#: aoutx.h:1577
+#: aoutx.h:1585 pdp11.c:1385
 #, c-format
-msgid "%s: can not represent section for symbol `%s' in a.out object file format"
-msgstr "%s: ne peut reprÃ©senter la section pour le symbole Â«%sÂ» dans le fichier format objet a.out"
+msgid "%B: can not represent section for symbol `%s' in a.out object file format"
+msgstr "%B: ne peut reprÃ©senter la section pour le symbole Â«Â %sÂ Â» dans le fichier format objet a.out"
 
-#: aoutx.h:1579 vms-alpha.c:7671
+#: aoutx.h:1588 vms-alpha.c:7776
 msgid "*unknown*"
 msgstr "*inconnu*"
 
-#: aoutx.h:4018 aoutx.h:4344
+#: aoutx.h:2407 aoutx.h:2425
+msgid "%B: attempt to write out unknown reloc type"
+msgstr "%B: tentative d'Ã©crire un type de rÃ©adressage inconnu"
+
+#: aoutx.h:4077 aoutx.h:4398
 msgid "%P: %B: unexpected relocation type\n"
 msgstr "%P: %B: type de rÃ©adressage non supportÃ©\n"
 
-#: aoutx.h:5375
+#: aoutx.h:5424 pdp11.c:3708
 #, c-format
-msgid "%s: relocatable link from %s to %s not supported"
-msgstr "%s: lien relocalisable de %s vers %s n'est pas supportÃ©"
+msgid "%B: relocatable link from %s to %s not supported"
+msgstr "%B: lien relocalisable de %s vers %s n'est pas supportÃ©"
 
-#: archive.c:2203
+#: archive.c:2293
 msgid "Warning: writing archive was slow: rewriting timestamp\n"
 msgstr "Attention: l'Ã©criture de l'archive Ã©tait lente: rÃ©Ã©criture du cachet de date-heure\n"
 
-#: archive.c:2491
+#: archive.c:2405 linker.c:1408
+msgid "%B: plugin needed to handle lto object"
+msgstr "%B: le greffon doit gÃ©rer l'objet lto"
+
+#: archive.c:2634
 msgid "Reading archive file mod timestamp"
 msgstr "Lecture du cachet date-heure modifiÃ© du fichier d'archive"
 
-#: archive.c:2515
+#: archive.c:2658
 msgid "Writing updated armap timestamp"
 msgstr "Ã‰criture du cachet date-heure armap mise Ã  jour"
 
-#: bfd.c:398
+#: bfd.c:454
 msgid "No error"
 msgstr "Pas d'erreur"
 
-#: bfd.c:399
+#: bfd.c:455
 msgid "System call error"
 msgstr "Erreur d'appel systÃ¨me"
 
-#: bfd.c:400
+#: bfd.c:456
 msgid "Invalid bfd target"
 msgstr "Cible bfd invalide"
 
-#: bfd.c:401
+#: bfd.c:457
 msgid "File in wrong format"
 msgstr "Fichier dans un mauvais format"
 
-#: bfd.c:402
+#: bfd.c:458
 msgid "Archive object file in wrong format"
 msgstr "Fichier objet d'archive dans un mauvais format"
 
-#: bfd.c:403
+#: bfd.c:459
 msgid "Invalid operation"
 msgstr "OpÃ©ration invalide"
 
-#: bfd.c:404
+#: bfd.c:460
 msgid "Memory exhausted"
 msgstr "MÃ©moire Ã©puisÃ©e"
 
-#: bfd.c:405
+#: bfd.c:461
 msgid "No symbols"
 msgstr "Aucun symbole"
 
-#: bfd.c:406
+#: bfd.c:462
 msgid "Archive has no index; run ranlib to add one"
 msgstr "L'archive n'a pas d'index; exÃ©cuter ranlib pour en ajouter un"
 
-#: bfd.c:407
+#: bfd.c:463
 msgid "No more archived files"
 msgstr "Aucun autre fichier d'archive"
 
-#: bfd.c:408
+#: bfd.c:464
 msgid "Malformed archive"
 msgstr "Archive mal formÃ©e"
 
-#: bfd.c:409
+#: bfd.c:465
+msgid "DSO missing from command line"
+msgstr "DSO manquant dans la ligne de commande"
+
+#: bfd.c:466
 msgid "File format not recognized"
 msgstr "Format de fichier non reconnu"
 
-#: bfd.c:410
+#: bfd.c:467
 msgid "File format is ambiguous"
 msgstr "Format de fichier ambigu"
 
-#: bfd.c:411
+#: bfd.c:468
 msgid "Section has no contents"
 msgstr "Section sans contenu"
 
-#: bfd.c:412
+#: bfd.c:469
 msgid "Nonrepresentable section on output"
 msgstr "Section non-reprÃ©sentable sur la sortie"
 
-#: bfd.c:413
+#: bfd.c:470
 msgid "Symbol needs debug section which does not exist"
 msgstr "Symboles ont besoin de la section de dÃ©bug qui est inexistente"
 
-#: bfd.c:414
+#: bfd.c:471
 msgid "Bad value"
 msgstr "Mauvaise valeur"
 
-#: bfd.c:415
+#: bfd.c:472
 msgid "File truncated"
 msgstr "Fichier tronquÃ©"
 
-#: bfd.c:416
+#: bfd.c:473
 msgid "File too big"
 msgstr "Fichier trop gros"
 
-#: bfd.c:417
+#: bfd.c:474
 #, c-format
 msgid "Error reading %s: %s"
 msgstr "Erreur lors de la lecture de %s: %s"
 
-#: bfd.c:418
+#: bfd.c:475
 msgid "#<Invalid error code>"
 msgstr "#<Code d'erreur invalide>"
 
-#: bfd.c:945
+#: bfd.c:1138
 #, c-format
 msgid "BFD %s assertion fail %s:%d"
 msgstr "BFD assertion %s a Ã©chouÃ© %s:%d"
 
-#: bfd.c:957
+#: bfd.c:1151
 #, c-format
-msgid "BFD %s internal error, aborting at %s line %d in %s\n"
-msgstr "BFD erreur interne %s, abandon Ã  %s, ligne %d dans %s\n"
+msgid "BFD %s internal error, aborting at %s:%d in %s\n"
+msgstr "BFD erreur interne %s, abandon Ã  %s:%d dans %s\n"
 
-#: bfd.c:961
+#: bfd.c:1156
 #, c-format
-msgid "BFD %s internal error, aborting at %s line %d\n"
-msgstr "BFD erreur interne %s, abandon Ã  %s, ligne %d\n"
+msgid "BFD %s internal error, aborting at %s:%d\n"
+msgstr "BFD erreur interne %s, abandon Ã  %s:%d\n"
 
-#: bfd.c:963
+#: bfd.c:1158
 msgid "Please report this bug.\n"
 msgstr "Merci de rapporter cette anomalie.\n"
 
@@ -184,22 +199,23 @@ msgstr "pas de table de projection: donn
 msgid "not mapping: env var not set\n"
 msgstr "pas de table de projection: variable d'environnement pas initialisÃ©e\n"
 
-#: binary.c:271
+#: binary.c:276
 #, c-format
-msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx."
-msgstr "Attention: Ã‰criture de la section Â«%sÂ» vers un Ã©norme dÃ©calage (ie nÃ©gatif) dans le fichier 0x%lx."
+msgid "warning: writing section `%A' at huge (ie negative) file offset 0x%lx."
+msgstr "Attention: Ã©criture de la section Â«Â %AÂ Â» vers un Ã©norme dÃ©calage (c-Ã -d nÃ©gatif) dans le fichier 0x%lx."
 
-#: bout.c:1146 elf-m10300.c:2063 elf32-avr.c:1654 elf32-frv.c:5734
-#: elfxx-sparc.c:2802 reloc.c:6115 reloc16.c:162 elf32-ia64.c:360
-#: elf64-ia64.c:360
+#: bout.c:1142 elf-m10300.c:2651 elf32-avr.c:2484 elf32-frv.c:5633
+#: elf64-ia64-vms.c:353 elfxx-sparc.c:2989 reloc.c:8017 reloc16.c:156
+#: elf32-ia64.c:351 elf64-ia64.c:351
 msgid "%P%F: --relax and -r may not be used together\n"
 msgstr "%P%F: --relax et -r ne peuvent pas Ãªtre utilisÃ©s en mÃªme temps\n"
 
-#: cache.c:227
+#: cache.c:273
+#, c-format
 msgid "reopening %B: %s\n"
 msgstr "rÃ©ouverture de %B: %s\n"
 
-#: coff-alpha.c:491
+#: coff-alpha.c:450
 msgid ""
 "%B: Cannot handle compressed Alpha binaries.\n"
 "   Use compiler flags, or objZ, to generate uncompressed binaries."
@@ -207,42 +223,44 @@ msgstr ""
 "%B: Les binaires compressÃ©s pour Alpha ne sont pas supportÃ©s.\n"
 "   Utilisez les options du compilateur ou objZ pour produire des binaires non compressÃ©s."
 
-#: coff-alpha.c:648
+#: coff-alpha.c:602
 msgid "%B: unknown/unsupported relocation type %d"
 msgstr "%B: type de rÃ©adressage %d inconnu ou non supportÃ©"
 
-#: coff-alpha.c:900 coff-alpha.c:937 coff-alpha.c:2025 coff-mips.c:1003
+#: coff-alpha.c:851 coff-alpha.c:888 coff-alpha.c:1961 coff-mips.c:944
 msgid "GP relative relocation used when GP not defined"
 msgstr "RÃ©adressage relatif GP utilisÃ© alors que GP n'est pas dÃ©fini"
 
-#: coff-alpha.c:1502
+#: coff-alpha.c:1444
 msgid "using multiple gp values"
 msgstr "utilisation de valeurs gp multiples"
 
-#: coff-alpha.c:1561
+#: coff-alpha.c:1503
 msgid "%B: unsupported relocation: ALPHA_R_GPRELHIGH"
 msgstr "%B: type de rÃ©adressage non supportÃ©: ALPHA_R_GPRELHIGH"
 
-#: coff-alpha.c:1568
+#: coff-alpha.c:1510
 msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW"
 msgstr "%B: type de rÃ©adressage non supportÃ©: ALPHA_R_GPRELLOW"
 
-#: coff-alpha.c:1575 elf32-m32r.c:2484 elf64-alpha.c:4074 elf64-alpha.c:4224
-#: elf32-ia64.c:3839 elf64-ia64.c:3839
+#: coff-alpha.c:1518 elf32-i370.c:1085 elf32-m32r.c:2418
+#: elf32-microblaze.c:952 elf64-alpha.c:4167 elf64-alpha.c:4315
+#: elf64-ia64-vms.c:3431 elf32-ia64.c:3839 elf64-ia64.c:3839
+#, c-format
 msgid "%B: unknown relocation type %d"
 msgstr "%B: type de rÃ©adressage %d inconnu"
 
-#: coff-arm.c:1038
+#: coff-arm.c:1032
 #, c-format
 msgid "%B: unable to find THUMB glue '%s' for `%s'"
-msgstr "%B: incapable de repÃ©rer le REPÃˆRE de liant Â«%sÂ» pour Â«%sÂ»"
+msgstr "%B: incapable de repÃ©rer le REPÃˆRE de liant Â«Â %sÂ Â» pour Â«Â %sÂ Â»"
 
-#: coff-arm.c:1067
+#: coff-arm.c:1061
 #, c-format
 msgid "%B: unable to find ARM glue '%s' for `%s'"
-msgstr "%B: incapable de repÃ©rer le liant ARM Â«%sÂ» pour Â«%sÂ»"
+msgstr "%B: incapable de repÃ©rer le liant ARM Â«Â %sÂ Â» pour Â«Â %sÂ Â»"
 
-#: coff-arm.c:1369 elf32-arm.c:7023
+#: coff-arm.c:1363 elf32-arm.c:8896
 #, c-format
 msgid ""
 "%B(%s): warning: interworking not enabled.\n"
@@ -251,7 +269,7 @@ msgstr ""
 "%B(%s): attention: l'inter-rÃ©seautage n'est pas activÃ©.\n"
 "  premiÃ¨re occurrence: %B: appel arm au repÃ¨re"
 
-#: coff-arm.c:1459
+#: coff-arm.c:1453
 #, c-format
 msgid ""
 "%B(%s): warning: interworking not enabled.\n"
@@ -262,317 +280,488 @@ msgstr ""
 "  premiÃ¨re occurrence: %B: appel arm au repÃ¨re\n"
 "  reliez avec --support-old-code activÃ©"
 
-#: coff-arm.c:1754 coff-tic80.c:695 cofflink.c:3081
+#: coff-arm.c:1746 coff-tic80.c:670 cofflink.c:3123
+#, c-format
 msgid "%B: bad reloc address 0x%lx in section `%A'"
-msgstr "%B: mauvaise adresse de relocalisation 0x%lx dans la section Â«%AÂ»"
+msgstr "%B: mauvaise adresse de rÃ©adressage 0x%lx dans la section Â«Â %AÂ Â»"
 
-#: coff-arm.c:2079
+#: coff-arm.c:2071
+#, c-format
 msgid "%B: illegal symbol index in reloc: %d"
-msgstr "%B: symbole index illÃ©gal dans la relocalisation: %d"
+msgstr "%B: symbole index illÃ©gal dans le rÃ©adressage: %d"
 
-#: coff-arm.c:2210
+#: coff-arm.c:2203
 #, c-format
 msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d"
 msgstr "erreur: %B compilÃ© pour APCS-%d alors que %B a Ã©tÃ© compilÃ© pour APCS-%d"
 
-#: coff-arm.c:2226 elf32-arm.c:15621
+#: coff-arm.c:2216 elf32-arm.c:19756
 #, c-format
 msgid "error: %B passes floats in float registers, whereas %B passes them in integer registers"
 msgstr "erreur: %B passage de valeurs en virgule flottante dans les registres FP alors que %B les passe dans les registres entiers"
 
-#: coff-arm.c:2229 elf32-arm.c:15625
+#: coff-arm.c:2221 elf32-arm.c:19760
 #, c-format
 msgid "error: %B passes floats in integer registers, whereas %B passes them in float registers"
 msgstr "erreur: %B passage de valeurs en virgule flottante dans les registres entiers alors que %B les passe dans les registres FP"
 
-#: coff-arm.c:2243
+#: coff-arm.c:2233
 #, c-format
 msgid "error: %B is compiled as position independent code, whereas target %B is absolute position"
 msgstr "erreur: %B compilÃ© avec du code Ã  position indÃ©pendante alors que la cible %B est Ã  position absolue"
 
-#: coff-arm.c:2246
+#: coff-arm.c:2238
 #, c-format
 msgid "error: %B is compiled as absolute position code, whereas target %B is position independent"
 msgstr "erreur: %B compilÃ© avec du code Ã  position absolu alors que la cible %B est Ã  position indÃ©pendante"
 
-#: coff-arm.c:2274 elf32-arm.c:15690
+#: coff-arm.c:2265 elf32-arm.c:19825
 #, c-format
 msgid "Warning: %B supports interworking, whereas %B does not"
 msgstr "Attention: %B supporte l'inter-rÃ©seautage, contrairement Ã  %B"
 
-#: coff-arm.c:2277 elf32-arm.c:15696
+#: coff-arm.c:2270 elf32-arm.c:19831
 #, c-format
 msgid "Warning: %B does not support interworking, whereas %B does"
 msgstr "Attention: %B ne supporte pas l'inter-rÃ©seautage, contrairement Ã  %B"
 
-#: coff-arm.c:2301
+#: coff-arm.c:2293
 #, c-format
 msgid "private flags = %x:"
 msgstr "fanions privÃ©s = %x:"
 
-#: coff-arm.c:2309 elf32-arm.c:11806
+#: coff-arm.c:2301 elf32-arm.c:14156
 #, c-format
 msgid " [floats passed in float registers]"
 msgstr " [valeurs en virgule flottante passÃ©es dans des registres de valeurs en virgule flottante]"
 
-#: coff-arm.c:2311
+#: coff-arm.c:2303
 #, c-format
 msgid " [floats passed in integer registers]"
 msgstr " [valeurs en virgule flottante passÃ©es dans des registres de valeurs entiÃ¨res]"
 
-#: coff-arm.c:2314 elf32-arm.c:11809
+#: coff-arm.c:2306 elf32-arm.c:14159
 #, c-format
 msgid " [position independent]"
 msgstr " [position indÃ©pendante]"
 
-#: coff-arm.c:2316
+#: coff-arm.c:2308
 #, c-format
 msgid " [absolute position]"
 msgstr " [position absolue]"
 
-#: coff-arm.c:2320
+#: coff-arm.c:2312
 #, c-format
 msgid " [interworking flag not initialised]"
 msgstr " [fanion d'inter-rÃ©seautage n'a pas Ã©tÃ© initialisÃ©]"
 
-#: coff-arm.c:2322
+#: coff-arm.c:2314
 #, c-format
 msgid " [interworking supported]"
 msgstr " [inter-rÃ©seautage supportÃ©]"
 
-#: coff-arm.c:2324
+#: coff-arm.c:2316
 #, c-format
 msgid " [interworking not supported]"
 msgstr " [inter-rÃ©seautage non supportÃ©]"
 
-#: coff-arm.c:2370 elf32-arm.c:10841
-#, c-format
+#: coff-arm.c:2361 elf32-arm.c:13017
 msgid "Warning: Not setting interworking flag of %B since it has already been specified as non-interworking"
 msgstr "Attention: Pas d'initialisation du fanion d'inter-rÃ©seautage de %B puisqu'il a dÃ©jÃ  Ã©tÃ© spÃ©cifiÃ© sans inter-rÃ©seautage"
 
-#: coff-arm.c:2374 elf32-arm.c:10845
-#, c-format
+#: coff-arm.c:2364 elf32-arm.c:13021
 msgid "Warning: Clearing the interworking flag of %B due to outside request"
 msgstr "Attention: Mise Ã  zÃ©ro du fanion d'inter-rÃ©seautage de %B en raison d'une requÃªte externe"
 
-#: coff-h8300.c:1122
+#: coff-arm.c:2421 elf32-arm.c:13066
+#, c-format
+msgid "Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it"
+msgstr "Attention: mise Ã  zÃ©ro du fanion d'inter-rÃ©seautage %B en raison du code sans inter-rÃ©seautage dans %B liÃ© avec lui"
+
+#: coff-h8300.c:1068
 #, c-format
 msgid "cannot handle R_MEM_INDIRECT reloc when using %s output"
-msgstr "ne peut traiter la relocalisation R_MEM_INDIRECT lorsque %s est utilisÃ© en sortie"
+msgstr "ne peut traiter le rÃ©adressage R_MEM_INDIRECT lorsque %s est utilisÃ© en sortie"
 
-#: coff-i860.c:147
+#: coff-i860.c:146
 #, c-format
 msgid "relocation `%s' not yet implemented"
 msgstr "rÃ©adressage Â«Â %sÂ Â» pas encore implÃ©mentÃ©"
 
-#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5198
+#: coff-i860.c:608 coff-tic4x.c:227 coff-tic54x.c:365 coffcode.h:5314
+#, c-format
 msgid "%B: warning: illegal symbol index %ld in relocs"
-msgstr "%B: attention: symbole index illÃ©gal %ld dans les relocalisations"
+msgstr "%B: attention: symbole index illÃ©gal %ld dans les rÃ©adressages"
 
-#: coff-i960.c:144 coff-i960.c:507
+#: coff-i960.c:122 coff-i960.c:475
 msgid "uncertain calling convention for non-COFF symbol"
 msgstr "convention d'appel incertaine pour un symbole non COFF"
 
-#: coff-m68k.c:506 elf32-bfin.c:5690 elf32-cr16.c:2897 elf32-m68k.c:4677
+#: coff-m68k.c:483 elf32-bfin.c:5530 elf32-cr16.c:2817 elf32-m68k.c:4574
 msgid "unsupported reloc type"
-msgstr "type de relocalisation non supportÃ©"
+msgstr "type de rÃ©adressage non supportÃ©"
 
-#: coff-mips.c:688 elf32-mips.c:1516 elf32-score.c:431 elf32-score7.c:330
-#: elf64-mips.c:2618 elfn32-mips.c:2431
+#: coff-mips.c:634 elf32-mips.c:1744 elf32-score.c:430 elf32-score7.c:330
+#: elf64-mips.c:3135 elfn32-mips.c:2954
 msgid "GP relative relocation when _gp not defined"
 msgstr "rÃ©adressage relatif GP sans que _gp ne soit dÃ©fini"
 
-#: coff-or32.c:229
-msgid "Unrecognized reloc"
-msgstr "Relocalisation non reconnue"
-
-#: coff-rs6000.c:2720
+#: coff-rs6000.c:2747
 #, c-format
-msgid "%s: unsupported relocation type 0x%02x"
-msgstr "%s: type de rÃ©adressage non supportÃ© 0x%02x"
+msgid "%B: unsupported relocation type 0x%02x"
+msgstr "%B: type de rÃ©adressage non supportÃ© 0x%02x"
 
-#: coff-rs6000.c:2805
+#: coff-rs6000.c:2833
 #, c-format
-msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
-msgstr "%s: table des matiÃ¨res des relocalisations Ã  0x%x pour le symbole Â«%sÂ» sans aucune entrÃ©e"
+msgid "%B: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
+msgstr "%B: la table des matiÃ¨res des rÃ©adressages Ã  0x%x pour le symbole Â«Â %sÂ Â» sans aucune entrÃ©e"
 
-#: coff-rs6000.c:3556 coff64-rs6000.c:2111
+#: coff-rs6000.c:3579 coff64-rs6000.c:2110
+#, c-format
 msgid "%B: symbol `%s' has unrecognized smclas %d"
-msgstr "%B: symbole Â«%sÂ» a une classe smclas %d non reconnue"
+msgstr "%B: symbole Â«Â %sÂ Â» a une classe smclas %d non reconnue"
 
-#: coff-sh.c:521
+#: coff-sh.c:504
 #, c-format
 msgid "SH Error: unknown reloc type %d"
 msgstr "Erreur SH: type de rÃ©adressage %d inconnu"
 
-#: coff-tic4x.c:195 coff-tic54x.c:299 coff-tic80.c:458
+#: coff-sh.c:778 elf32-sh.c:580
 #, c-format
-msgid "Unrecognized reloc type 0x%x"
-msgstr "Type de relocalisation non reconnu 0x%x"
+msgid "%B: 0x%lx: warning: bad R_SH_USES offset"
+msgstr "%B: 0x%lx: attention: mauvais dÃ©calage pour R_SH_USES"
+
+#: coff-sh.c:789 elf32-sh.c:592
+#, c-format
+msgid "%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"
+msgstr "%B: 0x%lx: attention: R_SH_USES pointe vers un insn inconnu 0x%x"
+
+#: coff-sh.c:807 elf32-sh.c:610
+#, c-format
+msgid "%B: 0x%lx: warning: bad R_SH_USES load offset"
+msgstr "%B: 0x%lx: attention: mauvais dÃ©calage de chargement R_SH_USES"
 
-#: coff-tic4x.c:240
+#: coff-sh.c:832 elf32-sh.c:626
 #, c-format
-msgid "%s: warning: illegal symbol index %ld in relocs"
-msgstr "%s: attention: symbole index illÃ©gal %ld dans les relocalisations"
+msgid "%B: 0x%lx: warning: could not find expected reloc"
+msgstr "%B: 0x%lx: attention: ne peut repÃ©rer le rÃ©adressage attendu"
+
+#: coff-sh.c:849 elf32-sh.c:655
+#, c-format
+msgid "%B: 0x%lx: warning: symbol in unexpected section"
+msgstr "%B: 0x%lx: attention: symbole dans une section inattendue"
+
+#: coff-sh.c:975 elf32-sh.c:785
+#, c-format
+msgid "%B: 0x%lx: warning: could not find expected COUNT reloc"
+msgstr "%B: 0x%lx: attention: ne peut repÃ©rer le compteur de rÃ©adressages attendu"
+
+#: coff-sh.c:985 elf32-sh.c:795
+#, c-format
+msgid "%B: 0x%lx: warning: bad count"
+msgstr "%B: 0x%lx: attention: mauvais dÃ©compte"
+
+#: coff-sh.c:1357 coff-sh.c:2645 elf32-sh.c:1199 elf32-sh.c:1570
+#, c-format
+msgid "%B: 0x%lx: fatal: reloc overflow while relaxing"
+msgstr "%B: 0x%lx: erreur fatale: dÃ©bordement de rÃ©adressage lors des relÃ¢ches"
+
+#: coff-sh.c:1452
+msgid "%B: fatal: generic symbols retrieved before relaxing"
+msgstr "%B: fatal: symboles gÃ©nÃ©riques rÃ©cupÃ©rÃ©s avant la relÃ¢che"
 
-#: coff-w65.c:367
+#: coff-sh.c:2783 cofflink.c:2961
+#, c-format
+msgid "%B: illegal symbol index %ld in relocs"
+msgstr "%B: symbole index %ld illÃ©gal dans les rÃ©adressages"
+
+#: coff-tic4x.c:183 coff-tic54x.c:278 coff-tic80.c:439
+#, c-format
+msgid "Unrecognized reloc type 0x%x"
+msgstr "Type de rÃ©adressage non reconnu 0x%x"
+
+#: coff-w65.c:352
 #, c-format
 msgid "ignoring reloc %s\n"
-msgstr "relocalisation %s ignorÃ©e\n"
+msgstr "rÃ©adressage %s ignorÃ©\n"
+
+#: coffcode.h:968
+msgid "%B: unable to load COMDAT section name"
+msgstr "%B: impossible de charger le nom de section COMDAT"
 
-#: coffcode.h:997
+#: coffcode.h:1009
+#, c-format
 msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'"
-msgstr "%B: attention: symbole COMDAT Â«%sÂ» ne concorde par avec le nom de section Â«%sÂ»"
+msgstr "%B: attention: symbole COMDAT Â«Â %sÂ Â» ne concorde par avec le nom de section Â«Â %sÂ Â»"
+
+#: coffcode.h:1019
+#, c-format
+msgid "%B: warning: No symbol for section '%s' found"
+msgstr "%B: attention: Pas de symbole trouvÃ© pour la section Â«Â %sÂ Â»"
 
 #. Generate a warning message rather using the 'unhandled'
 #. variable as this will allow some .sys files generate by
 #. other toolchains to be processed.  See bugzilla issue 196.
-#: coffcode.h:1221
+#: coffcode.h:1245
+#, c-format
 msgid "%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s"
 msgstr "%B: Attention: Ignore le fanion de section IMAGE_SCN_MEM_NOT_PAGED dans la section %s"
 
-#: coffcode.h:1288
+#: coffcode.h:1314
+#, c-format
 msgid "%B (%s): Section flag %s (0x%x) ignored"
 msgstr "%B (%s): Fanion de section %s (0x%x) ignorÃ©"
 
-#: coffcode.h:2430
+#: coffcode.h:1949
+msgid "%B: warning: claims to have 0xffff relocs, without overflow"
+msgstr "%B: attention: prÃ©tend avoir 0xffff rÃ©adressages, sans dÃ©bordement"
+
+#: coffcode.h:2465
 #, c-format
 msgid "Unrecognized TI COFF target id '0x%x'"
-msgstr "Identificateur de cible TI COFF non reconnu Â«0x%xÂ»"
+msgstr "Identificateur de cible TI COFF non reconnu Â«Â 0x%xÂ Â»"
 
-#: coffcode.h:2744
-msgid "%B: reloc against a non-existant symbol index: %ld"
-msgstr "%B: relocalisation par rapport Ã  un indexe de symbole inexistant: %ld"
+#: coffcode.h:2783
+#, c-format
+msgid "%B: reloc against a non-existent symbol index: %ld"
+msgstr "%B: rÃ©adressage par rapport Ã  un index de symbole inexistant: %ld"
+
+#: coffcode.h:3186
+#, c-format
+msgid "%B: page size is too large (0x%x)"
+msgstr "%B: la taille de page est trop grande (0x%x)"
 
-#: coffcode.h:3302
+#: coffcode.h:3346
+#, c-format
 msgid "%B: too many sections (%d)"
 msgstr "%B: trop de sections (%d)"
 
-#: coffcode.h:3718
-msgid "%B: section %s: string table overflow at offset %ld"
-msgstr "%B: section %s: dÃ©bordement de la table de chaÃ®nes Ã  l'offset %ld"
+#: coffcode.h:3767
+#, c-format
+msgid "%B: section %A: string table overflow at offset %ld"
+msgstr "%B: section %A: dÃ©bordement de la table de chaÃ®nes Ã  l'offset %ld"
 
-#: coffcode.h:4523
+#: coffcode.h:4585
 msgid "%B: warning: line number table read failed"
 msgstr "%B: attention: erreur lors de la lecture de la table des numÃ©ros de ligne"
 
-#: coffcode.h:4553
-msgid "%B: warning: illegal symbol index %ld in line numbers"
-msgstr "%B: attention: symbole d'index illÃ©gal %ld dans les numÃ©ros de ligne"
+#: coffcode.h:4619 coffcode.h:4633
+#, c-format
+msgid "%B: warning: illegal symbol index 0x%lx in line number entry %d"
+msgstr "%B: attention: symbole d'index 0x%lx illÃ©gal dans l'entrÃ©e %d des numÃ©ros de lignes"
+
+#: coffcode.h:4647
+#, c-format
+msgid "%B: warning: illegal symbol in line number entry %d"
+msgstr "%B: attention: symbole illÃ©gal dans l'entrÃ©e %d des numÃ©ros de lignes"
 
-#: coffcode.h:4567
+#: coffcode.h:4660
+#, c-format
 msgid "%B: warning: duplicate line number information for `%s'"
-msgstr "%B: attention: information de numÃ©ro de ligne dÃ©doublÃ©e pour Â«%sÂ»"
+msgstr "%B: attention: information de numÃ©ro de ligne dÃ©doublÃ©e pour Â«Â %sÂ Â»"
 
-#: coffcode.h:4967
+#: coffcode.h:5074
+#, c-format
 msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
-msgstr "%B: Classe de stockage %d non reconnue pour %s symbole Â«%sÂ»"
+msgstr "%B: Classe de stockage %d non reconnue pour %s symbole Â«Â %sÂ Â»"
 
-#: coffcode.h:5093
+#: coffcode.h:5207
+#, c-format
 msgid "warning: %B: local symbol `%s' has no section"
-msgstr "attention: %B: symbole local Â«%sÂ» n'a pas de section"
+msgstr "attention: %B: symbole local Â«Â %sÂ Â» n'a pas de section"
 
-#: coffcode.h:5237
+#: coffcode.h:5354
+#, c-format
 msgid "%B: illegal relocation type %d at address 0x%lx"
 msgstr "%B: type de rÃ©adressage %d illÃ©gal Ã  l'adresse 0x%lx"
 
-#: coffgen.c:1595
+#: coffgen.c:178 elf.c:1181
+#, c-format
+msgid "%B: unable to initialize compress status for section %s"
+msgstr "%B: impossible d'initialiser le statut de compression de la section %s"
+
+#: coffgen.c:202 elf.c:1192
+#, c-format
+msgid "%B: unable to initialize decompress status for section %s"
+msgstr "%B: impossible d'initialiser le statut de dÃ©compression de la section %s"
+
+#. PR 21013: Provide an error message when the alloc fails.
+#: coffgen.c:1648
+msgid "%B: Not enough memory to allocate space for %lu symbols"
+msgstr "%B: Pas assez de mÃ©moire pour allouer l'espace pour %lu symboles"
+
+#: coffgen.c:1716
+#, c-format
 msgid "%B: bad string table size %lu"
 msgstr "%B: mauvaise taille de la table des chaÃ®nes %lu"
 
-#: coffgen.c:2500 elflink.c:12689 linker.c:3122
+#: coffgen.c:1885 coffgen.c:1945 coffgen.c:1963 cofflink.c:2041
+#: xcofflink.c:4507
+msgid "<corrupt>"
+msgstr "<corrompu>"
+
+#: coffgen.c:2087
+#, c-format
+msgid "<corrupt info> %s"
+msgstr "<info corrompue> %s"
+
+#: coffgen.c:2666 elflink.c:14044 linker.c:2931
 msgid "%F%P: already_linked_table: %E\n"
 msgstr "%F%P: already_linked_table: %E\n"
 
-#: cofflink.c:533 elflink.c:4323
+#: coffgen.c:3007 elflink.c:13059
+#, c-format
+msgid "Removing unused section '%A' in file '%B'"
+msgstr "Suppression de la section inutilisÃ©e Â«Â %AÂ Â» dans le fichier Â«Â %BÂ Â»"
+
+#: coffgen.c:3084 elflink.c:13304
+msgid "Warning: gc-sections option ignored"
+msgstr "Attention: l'option de la section gc est ignorÃ©e"
+
+#: cofflink.c:348
+#, c-format
+msgid "Warning: symbol `%s' is both section and non-section"
+msgstr "Attention: le symbole Â«Â %sÂ Â» est Ã  la fois une section et une non-section"
+
+#: cofflink.c:450 elf64-ia64-vms.c:5188 elflink.c:4788
+#, c-format
 msgid "Warning: type of symbol `%s' changed from %d to %d in %B"
-msgstr "Attention: type de symbole Â«%sÂ» a changÃ© de %d Ã  %d dans %B"
+msgstr "Attention: type de symbole Â«Â %sÂ Â» a changÃ© de %d Ã  %d dans %B"
 
-#: cofflink.c:2329
+#: cofflink.c:2369
+#, c-format
 msgid "%B: relocs in section `%A', but it has no contents"
-msgstr "%B: relocalisations dans la section Â«%AÂ» qui est vide"
+msgstr "%B: rÃ©adressages dans la section Â«Â %AÂ Â» qui est vide"
 
-#: cofflink.c:2391 elflink.c:9545
+#: cofflink.c:2432 elflink.c:10567
+#, c-format
 msgid "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B\n"
-msgstr "%XÂ«%sÂ» rÃ©fÃ©rencÃ© dans la section Â«%AÂ» de %B: dÃ©fini dans la section abandonnÃ©e Â«%AÂ» de %B\n"
+msgstr "%XÂ«Â %sÂ Â» rÃ©fÃ©rencÃ© dans la section Â«Â %AÂ Â» de %B: dÃ©fini dans la section abandonnÃ©e Â«Â %AÂ Â» de %B\n"
+
+#: cofflink.c:2730
+#, c-format
+msgid "%B: %A: reloc overflow: 0x%lx > 0xffff"
+msgstr "%B: %A: dÃ©bordement de rÃ©adressage: 0x%lx > 0xffff"
+
+#: cofflink.c:2738
+#, c-format
+msgid "%B: warning: %A: line number overflow: 0x%lx > 0xffff"
+msgstr "%B: attention: %A: dÃ©bordement du compteur de numÃ©ro de ligne: 0x%lx > 0xffff"
+
+#: coffswap.h:811
+#, c-format
+msgid "%B: warning: %s: line number overflow: 0x%lx > 0xffff"
+msgstr "%B: attention: %s: dÃ©bordement du compteur de numÃ©ro de ligne: 0x%lx > 0xffff"
 
-#: cofflink.c:2690 coffswap.h:826
+#: coffswap.h:825
 #, c-format
-msgid "%s: %s: reloc overflow: 0x%lx > 0xffff"
-msgstr "%s: %s: dÃ©bordement de relocalisation: 0x%lx > 0xffff"
+msgid "%B: %s: reloc overflow: 0x%lx > 0xffff"
+msgstr "%B: %s: dÃ©bordement de rÃ©adressage: 0x%lx > 0xffff"
 
-#: cofflink.c:2699 coffswap.h:812
+#: compress.c:255
 #, c-format
-msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff"
-msgstr "%s: attention: %s: dÃ©bordement du compteur de numÃ©ro de ligne: 0x%lx > 0xffff"
+msgid "error: %B(%A) is too large (%#lx bytes)"
+msgstr "erreur: %B(%A) est trop grand (%#lx octets)"
 
-#: cpu-arm.c:189 cpu-arm.c:200
+#: cpu-arm.c:192 cpu-arm.c:204
+#, c-format
 msgid "error: %B is compiled for the EP9312, whereas %B is compiled for XScale"
 msgstr "erreur: %B compilÃ© pour EP9312 alors que %B a Ã©tÃ© compilÃ© pour XScale"
 
-#: cpu-arm.c:333
+#: cpu-arm.c:338
 #, c-format
-msgid "warning: unable to update contents of %s section in %s"
-msgstr "attention: incapable de mettre Ã  jour le contenu de la section %s dans %s"
+msgid "warning: unable to update contents of %s section in %B"
+msgstr "attention: incapable de mettre Ã  jour le contenu de la section %s dans %B"
 
-#: dwarf2.c:496
+#: dwarf2.c:532
 #, c-format
 msgid "Dwarf Error: Can't find %s section."
-msgstr "Erreur DWARF: ne peut repÃ©rer la section %s"
+msgstr "Erreur Dwarf: ne peut repÃ©rer la section %s"
 
-#: dwarf2.c:525
+#: dwarf2.c:562
 #, c-format
 msgid "Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu)."
-msgstr "Erreur DWARF: dÃ©calage de ligne (%lu) est >= Ã  la taille de %s (%lu)"
+msgstr "Erreur Dwarf: dÃ©calage de ligne (%lu) est >= Ã  la taille de %s (%lu)"
 
-#: dwarf2.c:949
+#: dwarf2.c:1028
+msgid "Dwarf Error: Info pointer extends beyond end of attributes"
+msgstr "Erreur Dwarf: Le pointeur d'info va au delÃ  de la fin des attributs"
+
+#: dwarf2.c:1185
 #, c-format
-msgid "Dwarf Error: Invalid or unhandled FORM value: %u."
-msgstr "Erreur DWARF: valeur de FORME invalide ou non supportÃ©e: %u"
+msgid "Dwarf Error: Invalid or unhandled FORM value: %#x."
+msgstr "Erreur Dwarf: valeur de FORM invalide ou non supportÃ©e: %#x."
 
-#: dwarf2.c:1200
+#: dwarf2.c:1491
 msgid "Dwarf Error: mangled line number section (bad file number)."
-msgstr "Erreur DWARF: numÃ©ro de ligne de section mutilÃ© (mauvais no. de fichier)"
+msgstr "Erreur Dwarf: numÃ©ro de ligne de section mutilÃ© (mauvais no. de fichier)"
+
+#: dwarf2.c:1779
+#, c-format
+msgid "Dwarf Error: Line info section is too small (%ld)"
+msgstr "Erreur Dwarf: Le section des informations de lignes est trop petite (%ld)"
+
+#: dwarf2.c:1809
+#, c-format
+msgid "Dwarf Error: Line info data is bigger (0x%lx) than the section (0x%lx)"
+msgstr "Erreur Dwarf: Les donnÃ©es des informations de lignes sont plus grandes (0x%lx) que la section (0x%lx)"
 
-#: dwarf2.c:1453
+#: dwarf2.c:1821
 #, c-format
 msgid "Dwarf Error: Unhandled .debug_line version %d."
-msgstr "Erreur DWARF: Version .debug_line %d non prise en charge."
+msgstr "Erreur Dwarf: Version .debug_line %d non prise en charge."
+
+#: dwarf2.c:1830
+msgid "Dwarf Error: Ran out of room reading prologue"
+msgstr "Erreur Dwarf: On est tombÃ© Ã  cours de place lors de la lecture du prologue"
 
-#: dwarf2.c:1475
+#: dwarf2.c:1855
 msgid "Dwarf Error: Invalid maximum operations per instruction."
-msgstr "Erreur DWARF: OpÃ©rations maximum par instruction invalide."
+msgstr "Erreur Dwarf: OpÃ©rations maximum par instruction invalide."
 
-#: dwarf2.c:1662
+#: dwarf2.c:1874
+msgid "Dwarf Error: Ran out of room reading opcodes"
+msgstr "Erreur Dwarf: On est tombÃ© Ã  cours de place en lisant les opcodes"
+
+#: dwarf2.c:2069
 msgid "Dwarf Error: mangled line number section."
-msgstr "Erreur DWARF: numÃ©ro de ligne de section mutilÃ©"
+msgstr "Erreur Dwarf: numÃ©ro de ligne de section mutilÃ©."
+
+#: dwarf2.c:2575
+#, c-format
+msgid "Dwarf Error: Unable to read alt ref %u."
+msgstr "Erreur Dwarf: Impossible de lire la ref alt %u."
 
-#: dwarf2.c:1989 dwarf2.c:2109 dwarf2.c:2394
+#: dwarf2.c:2600 dwarf2.c:2750 dwarf2.c:3071
 #, c-format
 msgid "Dwarf Error: Could not find abbrev number %u."
-msgstr "Erreur DWARF: ne peut repÃ©rer le numÃ©ro abrÃ©gÃ© %u"
+msgstr "Erreur Dwarf: ne peut repÃ©rer le numÃ©ro abrÃ©gÃ© %u."
 
-#: dwarf2.c:2355
+#: dwarf2.c:3023
 #, c-format
 msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information."
-msgstr "Erreur DWARF: version DWARF trouvÃ©e Â«%uÂ», ce lecteur ne supporte que les informations des versions 2, 3 et 4."
+msgstr "Erreur Dwarf: version DWARF trouvÃ©e Â«Â %uÂ Â», ce lecteur ne supporte que les informations des versions 2, 3 et 4."
 
-#: dwarf2.c:2362
+#: dwarf2.c:3034
 #, c-format
 msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'."
-msgstr "Erreur DWARF: taille d'adresse obtenue Â«%uÂ», ce lecteur ne peut traiter des tailles plus grandes que Â«%uÂ»."
+msgstr "Erreur Dwarf: taille d'adresse obtenue Â«Â %uÂ Â», ce lecteur ne peut traiter des tailles plus grandes que Â«Â %uÂ Â»."
+
+#: dwarf2.c:3137
+msgid "Dwarf Error: DW_AT_comp_dir attribute encountered with a non-string form."
+msgstr "Erreur Dwarf: attribut DW_AT_comp_dir rencontrÃ© sous une forme non-chaÃ®ne."
 
-#: dwarf2.c:2385
+#: ecoff.c:964
 #, c-format
-msgid "Dwarf Error: Bad abbrev number: %u."
-msgstr "Erreur DWARF: mauvais numÃ©ro abrÃ©gÃ©: %u"
+msgid "%B: warning: isymMax (%ld) is greater than ifdMax (%d)\n"
+msgstr "%B: attention: isymMax (%ld) est plus grand que ifdMax (%d)\n"
 
-#: ecoff.c:1239
+#: ecoff.c:1261
 #, c-format
 msgid "Unknown basic type %d"
 msgstr "Type de base %d inconnu"
 
-#: ecoff.c:1496
+#: ecoff.c:1518
 #, c-format
 msgid ""
 "\n"
@@ -581,7 +770,7 @@ msgstr ""
 "\n"
 "      Dernier+1 symbole: %ld"
 
-#: ecoff.c:1503 ecoff.c:1506
+#: ecoff.c:1525 ecoff.c:1528
 #, c-format
 msgid ""
 "\n"
@@ -590,7 +779,7 @@ msgstr ""
 "\n"
 "      Premier symbole: %ld"
 
-#: ecoff.c:1518
+#: ecoff.c:1541
 #, c-format
 msgid ""
 "\n"
@@ -599,7 +788,7 @@ msgstr ""
 "\n"
 "      Dernier+1 symbole: %-7ld   Type:  %s"
 
-#: ecoff.c:1525
+#: ecoff.c:1548
 #, c-format
 msgid ""
 "\n"
@@ -608,7 +797,7 @@ msgstr ""
 "\n"
 "      Symbole local: %ld"
 
-#: ecoff.c:1533
+#: ecoff.c:1556
 #, c-format
 msgid ""
 "\n"
@@ -617,7 +806,7 @@ msgstr ""
 "\n"
 "      struct; Symbole Fin+1: %ld"
 
-#: ecoff.c:1538
+#: ecoff.c:1561
 #, c-format
 msgid ""
 "\n"
@@ -626,7 +815,7 @@ msgstr ""
 "\n"
 "      union; Dernier+1 symbole: %ld"
 
-#: ecoff.c:1543
+#: ecoff.c:1566
 #, c-format
 msgid ""
 "\n"
@@ -635,7 +824,7 @@ msgstr ""
 "\n"
 "      enum; Dernier+1 symbol: %ld"
 
-#: ecoff.c:1549
+#: ecoff.c:1572
 #, c-format
 msgid ""
 "\n"
@@ -644,140 +833,269 @@ msgstr ""
 "\n"
 "      Type: %s"
 
-#: elf-attrs.c:569
+#: elf-attrs.c:595
+#, c-format
 msgid "error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchain"
-msgstr "erreur: %B: L'objet a un contenu spÃ©cific Ã  un vendeur qui doit Ãªtre traitÃ© par la chaÃ®ne d'outils Â«%sÂ»"
+msgstr "erreur: %B: L'objet a un contenu spÃ©cific Ã  un vendeur qui doit Ãªtre traitÃ© par la chaÃ®ne d'outils Â«Â %sÂ Â»"
 
-#: elf-attrs.c:578
+#: elf-attrs.c:605
+#, c-format
 msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'"
-msgstr "erreur: %B: Ã‰tiquette d'objet Â«%d, %sÂ» incompatible avec l'Ã©tiquette Â«%d, %sÂ»"
+msgstr "erreur: %B: Ã‰tiquette d'objet Â«Â %d, %sÂ Â» incompatible avec l'Ã©tiquette Â«Â %d, %sÂ Â»"
+
+#: elf-eh-frame.c:946
+#, c-format
+msgid "discarding zero address range FDE in %B(%A).\n"
+msgstr "abandon du FDE avec une plage d'adresses nulle dans %B(%A).\n"
 
-#: elf-eh-frame.c:917
+#: elf-eh-frame.c:1051
+#, c-format
 msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n"
 msgstr "%P: erreur dans %B(%A); aucune table .eh_frame_hdr ne sera crÃ©Ã©e.\n"
 
-#: elf-eh-frame.c:1189
-msgid "%P: fde encoding in %B(%A) prevents .eh_frame_hdr table being created.\n"
-msgstr "%P: encodage fde dans %B(%A) empÃªche la crÃ©ation de la table .eh_frame_hdr.\n"
+#: elf-eh-frame.c:1541
+#, c-format
+msgid "%P: FDE encoding in %B(%A) prevents .eh_frame_hdr table being created.\n"
+msgstr "%P: encodage FDE dans %B(%A) empÃªche la crÃ©ation de la table .eh_frame_hdr.\n"
+
+#: elf-eh-frame.c:1548
+msgid "%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation dropped.\n"
+msgstr "%P: Les avertissements suivants Ã  propos de l'encodage FDE empÃªchant la gÃ©nÃ©ration de .eh_frame_hdr sont abandonnÃ©s.\n"
+
+#: elf-eh-frame.c:1879
+#, c-format
+msgid "%B: %A not in order"
+msgstr "%B: %A pas dans l'ordre"
+
+#: elf-eh-frame.c:1893
+#, c-format
+msgid "%B: %A invalid input section size"
+msgstr "%B: %A taille de section d'entrÃ©e invalide"
+
+#: elf-eh-frame.c:1901
+#, c-format
+msgid "%B: %A points past end of text section"
+msgstr "%B: %A pointe au delÃ  de la fin de la section texte"
 
-#: elf-eh-frame.c:1605
+#: elf-eh-frame.c:2150
 msgid "%P: DW_EH_PE_datarel unspecified for this architecture.\n"
 msgstr "%P: DW_EH_PE_datarel non spÃ©cifiÃ© pour cette architecture.\n"
 
-#: elf-ifunc.c:179
+#: elf-eh-frame.c:2320
+#, c-format
+msgid "Invalid output section for .eh_frame_entry: %A"
+msgstr "Section de sortie invalide pour .eh_frame_entry: %A"
+
+#: elf-eh-frame.c:2343
+#, c-format
+msgid "Invalid contents in %A section"
+msgstr "Contenu invalide dans la section %A"
+
+#: elf-eh-frame.c:2499
+msgid "%P: .eh_frame_hdr entry overflow.\n"
+msgstr "*P: dÃ©bordement de l'entrÃ©e .eh_frame_hrd.\n"
+
+#: elf-eh-frame.c:2502
+msgid "%P: .eh_frame_hdr refers to overlapping FDEs.\n"
+msgstr "%P: .eh_frame_hdr fait rÃ©fÃ©rence Ã  des FDE qui se chevauchent.\n"
+
+#: elf-ifunc.c:142
+#, c-format
 msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can not be used when making an executable; recompile with -fPIE and relink with -pie\n"
-msgstr "%P%P: symbole dynamique STT_GNU_IFUNC Â«%sÂ» avec une Ã©galitÃ© de pointeur dans Â«%BÂ» ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un exÃ©cutable. Recompilez avec -fPIE et reliez avec -pie\n"
+msgstr "%P%P: symbole dynamique STT_GNU_IFUNC Â«Â %sÂ Â» avec une Ã©galitÃ© de pointeur dans Â«Â %BÂ Â» ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un exÃ©cutable. Recompilez avec -fPIE et reliez avec -pie\n"
 
-#: elf-m10200.c:450 elf-m10300.c:1563 elf32-avr.c:1221 elf32-bfin.c:3213
-#: elf32-cr16.c:1482 elf32-cr16c.c:780 elf32-cris.c:2081 elf32-crx.c:922
-#: elf32-d10v.c:509 elf32-epiphany.c:556 elf32-fr30.c:609 elf32-frv.c:4105
-#: elf32-h8300.c:509 elf32-i860.c:1211 elf32-ip2k.c:1468 elf32-iq2000.c:684
-#: elf32-lm32.c:1168 elf32-m32c.c:553 elf32-m32r.c:3106 elf32-m68hc1x.c:1138
-#: elf32-mep.c:535 elf32-microblaze.c:1231 elf32-moxie.c:282
-#: elf32-msp430.c:486 elf32-mt.c:395 elf32-openrisc.c:404 elf32-score.c:2729
-#: elf32-score7.c:2537 elf32-spu.c:5044 elf32-tilepro.c:3214 elf32-v850.c:2143
-#: elf32-xstormy16.c:935 elf64-mmix.c:1590 elfxx-tilegx.c:3577
+#: elf-m10200.c:425 elf-m10300.c:2149 elf32-avr.c:1502 elf32-bfin.c:3194
+#: elf32-cr16.c:1466 elf32-cr16c.c:780 elf32-cris.c:2025 elf32-crx.c:924
+#: elf32-d10v.c:513 elf32-epiphany.c:563 elf32-fr30.c:591 elf32-frv.c:4041
+#: elf32-ft32.c:334 elf32-h8300.c:522 elf32-i860.c:1210 elf32-ip2k.c:1475
+#: elf32-iq2000.c:693 elf32-lm32.c:1126 elf32-m32c.c:621 elf32-m32r.c:3044
+#: elf32-m68hc1x.c:1269 elf32-mep.c:524 elf32-metag.c:2001
+#: elf32-microblaze.c:1570 elf32-moxie.c:285 elf32-mt.c:400 elf32-nds32.c:5402
+#: elf32-or1k.c:1258 elf32-score.c:2731 elf32-score7.c:2540 elf32-spu.c:5076
+#: elf32-tilepro.c:3665 elf32-v850.c:2287 elf32-visium.c:677
+#: elf32-xstormy16.c:927 elf64-mmix.c:1540 elfxx-tilegx.c:4052
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2267
 msgid "internal error: out of range error"
 msgstr "erreur interne: hors limite"
 
-#: elf-m10200.c:454 elf-m10300.c:1567 elf32-avr.c:1225 elf32-bfin.c:3217
-#: elf32-cr16.c:1486 elf32-cr16c.c:784 elf32-cris.c:2085 elf32-crx.c:926
-#: elf32-d10v.c:513 elf32-fr30.c:613 elf32-frv.c:4109 elf32-h8300.c:513
-#: elf32-i860.c:1215 elf32-iq2000.c:688 elf32-lm32.c:1172 elf32-m32c.c:557
-#: elf32-m32r.c:3110 elf32-m68hc1x.c:1142 elf32-mep.c:539
-#: elf32-microblaze.c:1235 elf32-moxie.c:286 elf32-msp430.c:490
-#: elf32-openrisc.c:408 elf32-score.c:2733 elf32-score7.c:2541
-#: elf32-spu.c:5048 elf32-tilepro.c:3218 elf32-v850.c:2147
-#: elf32-xstormy16.c:939 elf64-mmix.c:1594 elfxx-mips.c:9465
-#: elfxx-tilegx.c:3581
+#: elf-m10200.c:429 elf-m10300.c:2153 elf32-avr.c:1506 elf32-bfin.c:3198
+#: elf32-cr16.c:1470 elf32-cr16c.c:784 elf32-cris.c:2029 elf32-crx.c:928
+#: elf32-d10v.c:517 elf32-fr30.c:595 elf32-frv.c:4045 elf32-ft32.c:338
+#: elf32-h8300.c:526 elf32-i860.c:1214 elf32-iq2000.c:697 elf32-lm32.c:1130
+#: elf32-m32c.c:625 elf32-m32r.c:3048 elf32-m68hc1x.c:1273 elf32-mep.c:528
+#: elf32-metag.c:2005 elf32-microblaze.c:1574 elf32-moxie.c:289
+#: elf32-msp430.c:1361 elf32-nds32.c:5406 elf32-or1k.c:1262 elf32-score.c:2735
+#: elf32-score7.c:2544 elf32-spu.c:5080 elf32-tilepro.c:3669 elf32-v850.c:2291
+#: elf32-visium.c:681 elf32-xstormy16.c:931 elf64-mmix.c:1544
+#: elfxx-mips.c:10258 elfxx-tilegx.c:4056
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2271
 msgid "internal error: unsupported relocation error"
 msgstr "erreur interne: erreur de rÃ©adressage non supportÃ©e"
 
-#: elf-m10200.c:458 elf32-cr16.c:1490 elf32-cr16c.c:788 elf32-crx.c:930
-#: elf32-d10v.c:517 elf32-h8300.c:517 elf32-lm32.c:1176 elf32-m32r.c:3114
-#: elf32-m68hc1x.c:1146 elf32-microblaze.c:1239 elf32-score.c:2737
-#: elf32-score7.c:2545 elf32-spu.c:5052
+#: elf-m10200.c:433 elf32-cr16.c:1474 elf32-cr16c.c:788 elf32-crx.c:932
+#: elf32-d10v.c:521 elf32-h8300.c:530 elf32-lm32.c:1134 elf32-m32r.c:3052
+#: elf32-m68hc1x.c:1277 elf32-microblaze.c:1578 elf32-nds32.c:5410
+#: elf32-score.c:2739 elf32-score7.c:2548 elf32-spu.c:5084
 msgid "internal error: dangerous error"
 msgstr "erreur interne: erreur dangereuse"
 
-#: elf-m10200.c:462 elf-m10300.c:1580 elf32-avr.c:1233 elf32-bfin.c:3225
-#: elf32-cr16.c:1494 elf32-cr16c.c:792 elf32-cris.c:2093 elf32-crx.c:934
-#: elf32-d10v.c:521 elf32-epiphany.c:571 elf32-fr30.c:621 elf32-frv.c:4117
-#: elf32-h8300.c:521 elf32-i860.c:1223 elf32-ip2k.c:1483 elf32-iq2000.c:696
-#: elf32-lm32.c:1180 elf32-m32c.c:565 elf32-m32r.c:3118 elf32-m68hc1x.c:1150
-#: elf32-mep.c:547 elf32-microblaze.c:1243 elf32-moxie.c:294
-#: elf32-msp430.c:498 elf32-mt.c:403 elf32-openrisc.c:416 elf32-score.c:2746
-#: elf32-score7.c:2549 elf32-spu.c:5056 elf32-tilepro.c:3226 elf32-v850.c:2167
-#: elf32-xstormy16.c:947 elf64-mmix.c:1602 elfxx-tilegx.c:3589
+#: elf-m10200.c:437 elf-m10300.c:2170 elf32-avr.c:1514 elf32-bfin.c:3206
+#: elf32-cr16.c:1478 elf32-cr16c.c:792 elf32-cris.c:2037 elf32-crx.c:936
+#: elf32-d10v.c:525 elf32-epiphany.c:578 elf32-fr30.c:603 elf32-frv.c:4053
+#: elf32-ft32.c:346 elf32-h8300.c:534 elf32-i860.c:1222 elf32-ip2k.c:1490
+#: elf32-iq2000.c:705 elf32-lm32.c:1138 elf32-m32c.c:633 elf32-m32r.c:3056
+#: elf32-m68hc1x.c:1281 elf32-mep.c:536 elf32-metag.c:2013
+#: elf32-microblaze.c:1582 elf32-moxie.c:297 elf32-msp430.c:1369
+#: elf32-mt.c:408 elf32-nds32.c:5414 elf32-or1k.c:1270 elf32-score.c:2748
+#: elf32-score7.c:2552 elf32-spu.c:5088 elf32-tilepro.c:3677 elf32-v850.c:2311
+#: elf32-visium.c:689 elf32-xstormy16.c:939 elf64-mmix.c:1552
+#: elfxx-tilegx.c:4064
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2279
 msgid "internal error: unknown error"
 msgstr "erreur interne: erreur inconnue"
 
-#: elf-m10300.c:1507 elf32-arm.c:10419 elf32-i386.c:4264 elf32-m32r.c:2599
-#: elf32-m68k.c:4156 elf32-s390.c:3003 elf32-sh.c:4218 elf32-tilepro.c:3117
-#: elf32-xtensa.c:3066 elf64-s390.c:2978 elf64-sh64.c:1640 elf64-x86-64.c:4110
-#: elfxx-sparc.c:3835 elfxx-tilegx.c:3500
+#: elf-m10300.c:812
+#, c-format
+msgid "%B: unrecognised MN10300 reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage MN10300 non reconnu: %d"
+
+#: elf-m10300.c:1028
+#, c-format
+msgid "%B: Unsupported transition from %s to %s"
+msgstr "%B: Transition de %s Ã  %s non supportÃ©e"
+
+#: elf-m10300.c:1201
+#, c-format
+msgid "%B: %s' accessed both as normal and thread local symbol"
+msgstr "%B: Â«Â %s Â Â» accÃ©dÃ© Ã  la fois comme symbole normal et comme symbole locale au thread"
+
+#: elf-m10300.c:2097 elf32-arm.c:12532 elf32-i386.c:5372 elf32-m32r.c:2540
+#: elf32-m68k.c:4084 elf32-s390.c:3372 elf32-sh.c:4127 elf32-tilepro.c:3569
+#: elf32-xtensa.c:3074 elf64-s390.c:3296 elf64-sh64.c:1636 elf64-x86-64.c:5753
+#: elfxx-sparc.c:4086 elfxx-tilegx.c:3976
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6437
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2236
+#, c-format
 msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"
 msgstr "%B(%A+0x%lx): rÃ©adressage %s sans solution vers le symbole Â«Â %sÂ Â»"
 
-#: elf-m10300.c:1572
+#: elf-m10300.c:2158
 msgid "error: inappropriate relocation type for shared library (did you forget -fpic?)"
 msgstr "erreur: type de rÃ©adressage inappropriÃ© pour une librairie partagÃ©e (avez-vous oubliÃ© -fpic ?)"
 
-#: elf-m10300.c:1575
+#: elf-m10300.c:2162
+#, c-format
+msgid "%B: taking the address of protected function '%s' cannot be done when making a shared library"
+msgstr "%B: l'adresse de la fonction protÃ©gÃ©e Â«Â %sÂ Â» ne peut Ãªtre prise lors de la crÃ©ation d'une librairie partagÃ©e"
+
+#: elf-m10300.c:2165
 msgid "internal error: suspicious relocation type used in shared library"
 msgstr "erreur interne: type de rÃ©adressage douteux utilisÃ© dans une librairie partagÃ©e"
 
-#: elf-m10300.c:4372 elf32-arm.c:12800 elf32-cr16.c:2451 elf32-cris.c:3057
-#: elf32-hppa.c:1894 elf32-i370.c:503 elf32-i386.c:2182 elf32-lm32.c:1868
-#: elf32-m32r.c:1927 elf32-m68k.c:3253 elf32-s390.c:1652 elf32-sh.c:2931
-#: elf32-tic6x.c:2162 elf32-tilepro.c:1940 elf32-vax.c:1041 elf64-s390.c:1635
-#: elf64-sh64.c:3381 elf64-x86-64.c:2176 elfxx-sparc.c:2119
-#: elfxx-tilegx.c:2261
+#: elf-properties.c:65
+msgid "%B: out of memory in _bfd_elf_get_property"
+msgstr "%B: pas assez de mÃ©moire dans _bfd_elf_get_property"
+
+#: elf-properties.c:91
+msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx"
+msgstr "attention: %B: taille de GNU_PROPERTY_TYPE (%ld) corrompue: %#lx"
+
+#: elf-properties.c:107
+msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x"
+msgstr "attention: %1$B: datasz du type (0x%3$x) GNU_PROPERTY_TYPE (%2$ld) corrompu: 0x%4$x"
+
+#: elf-properties.c:146
+msgid "warning: %B: corrupt stack size: 0x%x"
+msgstr "attention: %B: taille de pille corrompue: 0x%x"
+
+#: elf-properties.c:164
+msgid "warning: %B: corrupt no copy on protected size: 0x%x"
+msgstr "attention: %B: taille de Â«Â no copy on protectedÂ Â» corrompue: 0x%x"
+
+#: elf-properties.c:180
+msgid "warning: %B: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x"
+msgstr "attention: %B: type GNU_PROPERTY_TYPE (%ld) non supportÃ©: 0x%x"
+
+#. PR 17512: file: f057ec89.
+#: elf.c:342
 #, c-format
-msgid "dynamic variable `%s' is zero size"
-msgstr "la variable dynamique Â«%sÂ» a une taille nulle"
+msgid "%B: attempt to load strings from a non-string section (number %d)"
+msgstr "%B: tentative de charger des chaÃ®nes depuis une section non-chaÃ®nes (numÃ©ro %d)"
 
-#: elf.c:334
+#: elf.c:357
+#, c-format
 msgid "%B: invalid string offset %u >= %lu for section `%s'"
-msgstr "%B: chaÃ®ne de dÃ©calage invalide %u >= %lu pour la section Â«%sÂ»"
+msgstr "%B: chaÃ®ne de dÃ©calage invalide %u >= %lu pour la section Â«Â %sÂ Â»"
 
-#: elf.c:446
+#: elf.c:496
+#, c-format
 msgid "%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
 msgstr "%B le symbole numÃ©ro %lu fait rÃ©fÃ©rence Ã  une section SHT_SYMTAB_SHNDX inexistante"
 
-#: elf.c:602
-msgid "%B: Corrupt size field in group section header: 0x%lx"
-msgstr "%B: Champ de taille corrompu dans l'en-tÃªte du groupe de section: 0x%lx"
+#: elf.c:660
+#, c-format
+msgid "%B: corrupt size field in group section header: %#Lx"
+msgstr "%B: champ de taille corrompu dans l'en-tÃªte du groupe de section: %#Lx"
+
+#: elf.c:675
+#, c-format
+msgid "%B: invalid size field in group section header: %#Lx"
+msgstr "%B: champ de taille invalide dans l'en-tÃªte du groupe de section: %#Lx"
 
-#: elf.c:638
+#: elf.c:711
 msgid "%B: invalid SHT_GROUP entry"
 msgstr "%B: entrÃ©e SHT_GROUP invalide"
 
-#: elf.c:708
+#: elf.c:730
+msgid "%B: no valid group sections found"
+msgstr "%B: aucune section de groupe valable trouvÃ©e"
+
+#: elf.c:804
+#, c-format
 msgid "%B: no group info for section %A"
 msgstr "%B: aucune info de groupe pour la section %A"
 
-#: elf.c:737 elf.c:3121 elflink.c:10135
+#: elf.c:835 elf.c:3819 elflink.c:11155
+#, c-format
 msgid "%B: warning: sh_link not set for section `%A'"
-msgstr "%B: attention: sh_link n'a pas de valeur pour la section Â«%AÂ»"
+msgstr "%B: attention: sh_link n'a pas de valeur pour la section Â«Â %AÂ Â»"
 
-#: elf.c:756
+#: elf.c:855
+#, c-format
 msgid "%B: sh_link [%d] in section `%A' is incorrect"
-msgstr "%B: sh_link [%d] n'est pas correct dans la section Â«%AÂ»"
+msgstr "%B: sh_link [%d] n'est pas correct dans la section Â«Â %AÂ Â»"
 
-#: elf.c:791
-msgid "%B: unknown [%d] section `%s' in group [%s]"
-msgstr "%B: [%d] inconnu dans la section Â«%sÂ» du groupe [%s]"
+#: elf.c:868
+#, c-format
+msgid "%B: SHT_GROUP section [index %d] has no SHF_GROUP sections"
+msgstr "%B: la section SHT_GROUP [index %d] n'a pas de section SHF_GROUP"
 
-#: elf.c:1041
-msgid "%B: unable to initialize commpress status for section %s"
-msgstr "%B: impossible d'initialiser le statut de compression de la section %s"
+#: elf.c:889
+#, c-format
+msgid "%B: section group entry number %u is corrupt"
+msgstr "%B: l'entrÃ©e de groupe de section %u est corrompue"
 
-#: elf.c:1061
-msgid "%B: unable to initialize decommpress status for section %s"
-msgstr "%B: impossible d'initialiser le statut de dÃ©compression de la section %s"
+#: elf.c:914
+#, c-format
+msgid "%B: unknown type [%#x] section `%s' in group [%A]"
+msgstr "%B: type [%#x] de section Â«Â %sÂ Â» inconnu dans le groupe [%A]"
+
+#: elf.c:1373
+#, c-format
+msgid "%B: Invalid sh_link field (%d) in section number %d"
+msgstr "%B: Champ sh_link (%d) invalide dans la section numÃ©ro %d"
+
+#: elf.c:1389
+#, c-format
+msgid "%B: Failed to find link section for section %d"
+msgstr "%B: Impossible de trouver la section de liaison pour la section %d"
+
+#: elf.c:1416
+#, c-format
+msgid "%B: Failed to find info section for section %d"
+msgstr "%B: Impossible de trouver la section d'information pour la section %d"
 
-#: elf.c:1181
+#: elf.c:1588
 #, c-format
 msgid ""
 "\n"
@@ -786,7 +1104,7 @@ msgstr ""
 "\n"
 "En-tÃªte de programme:\n"
 
-#: elf.c:1223
+#: elf.c:1630
 #, c-format
 msgid ""
 "\n"
@@ -795,7 +1113,7 @@ msgstr ""
 "\n"
 "Section dynamique:\n"
 
-#: elf.c:1359
+#: elf.c:1771
 #, c-format
 msgid ""
 "\n"
@@ -804,7 +1122,7 @@ msgstr ""
 "\n"
 "DÃ©finitions des versions:\n"
 
-#: elf.c:1384
+#: elf.c:1796
 #, c-format
 msgid ""
 "\n"
@@ -813,583 +1131,954 @@ msgstr ""
 "\n"
 "RÃ©fÃ©rences de version:\n"
 
-#: elf.c:1389
+#: elf.c:1801
 #, c-format
 msgid "  required from %s:\n"
 msgstr " requis par %s:\n"
 
-#: elf.c:1796
-msgid "%B: invalid link %lu for reloc section %s (index %u)"
-msgstr "%B: lien invalide %lu pour la section de relocalisation %s (index %u)"
+#: elf.c:1999
+msgid "%B: warning: loop in section dependencies detected"
+msgstr "%B: attention: boucle dÃ©tectÃ©e dans les dÃ©pendances de sections"
 
-#: elf.c:1966
-msgid "%B: don't know how to handle allocated, application specific section `%s' [0x%8x]"
-msgstr "%B: je ne sais pas comment traiter la section Â«%sÂ» [0x%8x] allouÃ©e et spÃ©cifique Ã  l'application"
-
-#: elf.c:1978
-msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]"
-msgstr "%B: je ne sais pas comment traiter la section Â«%sÂ» [0x%8x] spÃ©cifique au processeur"
-
-#: elf.c:1989
-msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]"
-msgstr "%B: je ne sais pas comment traiter la section Â«%sÂ» [0x%8x] spÃ©cifique au systÃ¨me d'exploitation"
+#: elf.c:2107
+#, c-format
+msgid "%B: warning: multiple symbol tables detected - ignoring the table in section %u"
+msgstr "%B: attention: plusieurs tables de symboles dÃ©tectÃ©es â€” la table dans la section %u est ignorÃ©e"
 
-#: elf.c:1999
-msgid "%B: don't know how to handle section `%s' [0x%8x]"
-msgstr "%B: je ne sais pas comment traiter la section Â«%sÂ» [0x%8x]"
+#: elf.c:2191
+#, c-format
+msgid "%B: warning: multiple dynamic symbol tables detected - ignoring the table in section %u"
+msgstr "%B: attention: plusieurs tables de symboles dynamiques ont Ã©tÃ© dÃ©tectÃ©es â€” la table dans la section %u est ignorÃ©e"
 
-#: elf.c:2634
+#: elf.c:2304
+#, c-format
+msgid "%B: invalid link %u for reloc section %s (index %u)"
+msgstr "%B: lien %u invalide pour la section de rÃ©adressages %s (index %u)"
+
+#: elf.c:2463 elf.c:2478 elf.c:2489 elf.c:2502
+#, c-format
+msgid "%B: unknown type [%#x] section `%s'"
+msgstr "%B: type [%#x] inconnu dans la section Â«Â %sÂ Â»"
+
+#: elf.c:3206
+#, c-format
+msgid "%B: error: Alignment power %d of section `%A' is too big"
+msgstr "%B: erreur: L'alignement Ã  la puissance %d de la section Â«Â %AÂ Â» est trop grand"
+
+#: elf.c:3236
 #, c-format
 msgid "warning: section `%A' type changed to PROGBITS"
-msgstr "attention: type de la section Â«%AÂ» changÃ© en PROGBITS"
+msgstr "attention: type de la section Â«Â %AÂ Â» changÃ© en PROGBITS"
+
+#: elf.c:3687
+#, c-format
+msgid "%B: too many sections: %u"
+msgstr "%B: trop de sections: %u"
 
-#: elf.c:3078
+#: elf.c:3772
+#, c-format
 msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'"
-msgstr "%B: le sh_link de la section Â«%AÂ» pointe vers la section abandonnÃ©e Â«%AÂ» de Â«%BÂ»"
+msgstr "%B: le sh_link de la section Â«Â %AÂ Â» pointe vers la section abandonnÃ©e Â«Â %AÂ Â» de Â«Â %BÂ Â»"
 
-#: elf.c:3101
+#: elf.c:3797
+#, c-format
 msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'"
-msgstr "%B: le sh_link de la section Â«%AÂ» pointe vers la section supprimÃ©e Â«%AÂ» de Â«%BÂ»"
+msgstr "%B: le sh_link de la section Â«Â %AÂ Â» pointe vers la section supprimÃ©e Â«Â %AÂ Â» de Â«Â %BÂ Â»"
+
+#: elf.c:4349
+#, c-format
+msgid "%B: GNU_MBIN section `%A' has invalid sh_info field: %d"
+msgstr "%B: la section GNU_MBIN Â«Â %AÂ Â» a un champ sh_info invalide: %d"
+
+#: elf.c:4891
+msgid "%B: TLS sections are not adjacent:"
+msgstr "%B: Les sections TLS ne sont pas adjacentes:"
+
+#: elf.c:4898
+#, c-format
+msgid "\t    TLS: %A"
+msgstr "\t    TLS: %A"
+
+#: elf.c:4902
+#, c-format
+msgid "\tnon-TLS: %A"
+msgstr "\tnon-TLS: %A"
 
-#: elf.c:4527
+#: elf.c:5398
 msgid "%B: The first section in the PT_DYNAMIC segment is not the .dynamic section"
 msgstr "%B: La premiÃ¨re section dans le segment PT_DYNAMIC n'est pas la section .dynamic"
 
-#: elf.c:4554
+#: elf.c:5426
 msgid "%B: Not enough room for program headers, try linking with -N"
 msgstr "%B: Pas suffisamment d'espace pour les en-tÃªtes du programme, essayer l'option -N"
 
-#: elf.c:4641
-msgid "%B: section %A lma %#lx adjusted to %#lx"
-msgstr "%B: section %A avec lma %#lx ajustÃ©e Ã  %#lx"
+#: elf.c:5514
+#, c-format
+msgid "%B: section %A lma %#Lx adjusted to %#Lx"
+msgstr "%B: section %A avec lma %#Lx ajustÃ©e Ã  %#Lx"
 
-#: elf.c:4776
+#: elf.c:5651
+#, c-format
 msgid "%B: section `%A' can't be allocated in segment %d"
-msgstr "%B: la section Â«%AÂ» ne peut pas Ãªtre allouÃ©e dans le segment %d"
+msgstr "%B: la section Â«Â %AÂ Â» ne peut pas Ãªtre allouÃ©e dans le segment %d"
 
-#: elf.c:4824
+#: elf.c:5699
+#, c-format
 msgid "%B: warning: allocated section `%s' not in segment"
-msgstr "%B: attention: section allouÃ©e Â«%sÂ» n'est pas dans le segment"
+msgstr "%B: attention: section allouÃ©e Â«Â %sÂ Â» n'est pas dans le segment"
 
-#: elf.c:5324
+#: elf.c:5897
+msgid "%B: error: non-load segment %d includes file header and/or program header"
+msgstr "%B: erreur: le segment de non-chargement %d inclus un en-tÃªte de fichier ou de programme"
+
+#. The fix for this error is usually to edit the linker script being
+#. used and set up the program headers manually.  Either that or
+#. leave room for the headers at the start of the SECTIONS.
+#: elf.c:6074
+msgid "%B: error: PHDR segment not covered by LOAD segment"
+msgstr "%B: erreur: segment PHDR non couvert par le segment LOAD"
+
+#: elf.c:6418
+#, c-format
 msgid "%B: symbol `%s' required but not present"
-msgstr "%B: symbole Â«%sÂ» requis mais absent"
+msgstr "%B: symbole Â«Â %sÂ Â» requis mais absent"
+
+#: elf.c:6761
+#, c-format
+msgid "%B: warning: Empty loadable segment detected at vaddr=%#Lx, is this intentional?"
+msgstr "%B: attention: Segment chargeable vide dÃ©tectÃ© Ã  vaddr=%#Lx, est-ce intentionnelÂ ?"
 
-#: elf.c:5662
-msgid "%B: warning: Empty loadable segment detected, is this intentional ?\n"
-msgstr "%B: attention: segment chargeable vide dÃ©tectÃ©, est-ce intentionnel ?\n"
+#: elf.c:7375
+#, c-format
+msgid "%B: warning: segment alignment of %#Lx is too large"
+msgstr "%B: attention: un alignement de segment de %#Lx est trop grand"
 
-#: elf.c:6692
+#: elf.c:7856
 #, c-format
 msgid "Unable to find equivalent output section for symbol '%s' from section '%s'"
-msgstr "Incapable de trouver un Ã©quivalent pour le symbole Â«%sÂ» de la section Â«%sÂ»"
+msgstr "Incapable de trouver un Ã©quivalent pour le symbole Â«Â %sÂ Â» de la section Â«Â %sÂ Â»"
+
+#: elf.c:8188
+msgid "%B: .gnu.version_r invalid entry"
+msgstr "%B: entrÃ©e .gnu.version_r invalide"
 
-#: elf.c:7692
+#: elf.c:8315
+msgid "%B: .gnu.version_d invalid entry"
+msgstr "%B: entrÃ©e .gnu.version_d invalide"
+
+#: elf.c:8867
+#, c-format
 msgid "%B: unsupported relocation type %s"
 msgstr "%B: type de rÃ©adressage %s non supportÃ©"
 
-#: elf32-arm.c:3617
-msgid ""
-"%B(%s): warning: interworking not enabled.\n"
-"  first occurrence: %B: Thumb call to ARM"
-msgstr ""
-"%B(%s): attention: l'inter-rÃ©seautage n'est pas activÃ©.\n"
-"  premiÃ¨re occurrence: %B: appel de repÃ¨re vers ARM"
+#: elf32-arc.c:433 elf32-frv.c:6626 elf32-iq2000.c:870 elf32-m32c.c:915
+#: elf32-mt.c:564 elf32-rl78.c:1256 elf32-rx.c:3177 elf32-visium.c:837
+#: elf64-ppc.c:6078
+#, c-format
+msgid "private flags = 0x%lx:"
+msgstr "fanions privÃ©s = 0x%lx:"
 
-#: elf32-arm.c:3664
-msgid ""
-"%B(%s): warning: interworking not enabled.\n"
-"  first occurrence: %B: ARM call to Thumb"
-msgstr ""
-"%B(%s): attention: l'inter-rÃ©seautage n'est pas activÃ©.\n"
-"  premiÃ¨re occurrence: %B: appel ARM vers repÃ¨re"
+#: elf32-arc.c:611
+msgid "Warning: %B: Conflicting platform configuration %s with %s.\n"
+msgstr "Attention: %B: Configuration de platforme %s en conflit avec %s.\n"
 
-#: elf32-arm.c:3878 elf32-arm.c:5315
-#, c-format
-msgid "%s: cannot create stub entry %s"
-msgstr "%s: ne peut crÃ©er l'entrÃ©e d'Ã©bauche %s"
+#: elf32-arc.c:630
+msgid "error: %B: unable to merge CPU base attributes %s with %s.\n"
+msgstr "erreur: %B: impossible de fusionner les attributs de base CPU %s avec %s.\n"
 
-#: elf32-arm.c:5431
-#, c-format
-msgid "unable to find THUMB glue '%s' for '%s'"
-msgstr "incapable de repÃ©rer le REPÃˆRE de liant Â«%sÂ» pour Â«%sÂ»"
+#: elf32-arc.c:667
+msgid "error: %B: unable to merge ISA extension attributes %s.\n"
+msgstr "erreur: %B: impossible de fusionner les attributs de l'extension ISA %s.\n"
 
-#: elf32-arm.c:5467
-#, c-format
-msgid "unable to find ARM glue '%s' for '%s'"
-msgstr "incapable de repÃ©rer le liant ARM Â«%sÂ» pour Â«%sÂ»"
+#: elf32-arc.c:691
+msgid "error: %B: conflicting ISA extension attributes %s with %s.\n"
+msgstr "erreur: %B: attributs d'extension ISA %s en conflit avec %s.\n"
 
-#: elf32-arm.c:6005
-msgid "%B: BE8 images only valid in big-endian mode."
-msgstr "%B: les images BE8 ne sont valables qu'en mode gros boutiste."
+#: elf32-arc.c:726
+msgid "error: %B: cannot mix rf16 with full register set %B.\n"
+msgstr "erreur: %B: impossible de mÃ©langer rf16 avec l'ensemble des registres complets %B.\n"
 
-#. Give a warning, but do as the user requests anyway.
-#: elf32-arm.c:6235
-msgid "%B: warning: selected VFP11 erratum workaround is not necessary for target architecture"
-msgstr "%B: attention: le palliatif VFP11 n'est pas nÃ©cessaire avec l'architecture cible"
+#: elf32-arc.c:752
+msgid "error: %B: conflicting attributes %s: %s with %s.\n"
+msgstr "erreur: %B: attributs %s conflictuels: %s avec %s.\n"
 
-#: elf32-arm.c:6779 elf32-arm.c:6799
-msgid "%B: unable to find VFP11 veneer `%s'"
-msgstr "%B: incapable de trouver le vernis VFP11 Â«%sÂ»"
+#: elf32-arc.c:777
+msgid "error: %B: conflicting attributes %s.\n"
+msgstr "erreur: %B: attributs %s conflictuels.\n"
 
-#: elf32-arm.c:6848
+#: elf32-arc.c:877
 #, c-format
-msgid "Invalid TARGET2 relocation type '%s'."
-msgstr "Type de rÃ©adressage TARGET2 Â«Â %sÂ Â» invalide"
+msgid "ERROR: Attempting to link %B with a binary %B of different architecture"
+msgstr "ERREUR: Tentative de lier %B avec un binaire %B d'une architecture diffÃ©rente"
+
+#: elf32-arc.c:891 elf32-i370.c:359 elf32-iq2000.c:846 elf32-m32c.c:890
+#: elf32-m68hc1x.c:1388 elf64-sparc.c:727 elfxx-mips.c:15127
+#, c-format
+msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
+msgstr "%B: utilise des champs e_flags (0x%lx) diffÃ©rents des modules prÃ©cÃ©dents (0x%lx)"
+
+#: elf32-arc.c:980
+msgid "Error: The ARC4 architecture is no longer supported.\n"
+msgstr "Erreur: L'architecture ARC4 n'est plus supportÃ©e.\n"
 
-#: elf32-arm.c:6933
+#: elf32-arc.c:986
 msgid ""
-"%B(%s): warning: interworking not enabled.\n"
-"  first occurrence: %B: thumb call to arm"
+"Warning: unset or old architecture flags. \n"
+"\t       Use default machine.\n"
 msgstr ""
-"%B(%s): attention: l'inter-rÃ©seautage n'est pas activÃ©.\n"
-"  premiÃ¨re occurrence: %B: appel de repÃ¨re vers arm"
+"Attention: fanions d'architecture non dÃ©finis ou trop anciens. \n"
+"           Utilise la machine par dÃ©faut.\n"
 
-#: elf32-arm.c:7717
-msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' in TLS trampoline"
-msgstr "%B(%A+0x%lx): instruction Thumb Â«Â 0x%xÂ Â» inattendue dans le trampoline TLS"
+#: elf32-arc.c:1119
+#, c-format
+msgid "%B(%A+0x%lx): CMEM relocation to `%s' is invalid, 16 MSB should be 0x%04x (value is 0x%lx)"
+msgstr "%B(%A+0x%lx): le rÃ©adressage CMEM vers Â«Â %sÂ Â» est invalide. 16 MSB devrait Ãªtre 0x%04x (la valeur est 0x%lx)"
 
-#: elf32-arm.c:7756
-msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' in TLS trampoline"
-msgstr "%B(%A+0x%lx): instruction ARM Â«Â 0x%xÂ Â» inattendue dans le trampoline TLS"
+#: elf32-arc.c:1130
+#, c-format
+msgid "%B(%A+0x%lx): CMEM relocation to `%s+0x%lx' is invalid, 16 MSB should be 0x%04x (value is 0x%lx)"
+msgstr "%B(%A+0x%lx): le rÃ©adressage CMEM vers Â«Â %s+0x%lxÂ Â» est invalide, 16 MSB devrait Ãªtre 0x%04x (la valeur est 0x%lx)"
 
-#: elf32-arm.c:8209
-msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'."
-msgstr "\\%B: Attention: instruction Arm BLX vise la fonction Arm Â«%sÂ»."
+#: elf32-arc.c:1835
+msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker."
+msgstr "les rÃ©adressages GOT et PLT ne peuvent pas Ãªtre corrigÃ©s avec un Ã©diteur de liens non dynamique."
 
-#: elf32-arm.c:8622
-msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'."
-msgstr "%B: Attention: instruction de repÃ©rage BLX vise la fonction de repÃ©rage Â«%sÂ»."
+#: elf32-arc.c:1859 elf32-rl78.c:1094 elf32-rx.c:1448
+#, c-format
+msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area"
+msgstr "%B(%A): attention: accÃ¨s non alignÃ© au symbole Â«Â %sÂ Â» dans la zone des petites donnÃ©es"
 
-#: elf32-arm.c:9460
-msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC"
-msgstr "%B(%A+0x%lx): instruction Thumb Â«Â 0x%xÂ Â» inattendue rÃ©fÃ©rencÃ©e par TLS_GOTDESC"
+#: elf32-arc.c:1864 elf32-rl78.c:1099 elf32-rx.c:1453
+#, c-format
+msgid "%B(%A): internal error: out of range error"
+msgstr "%B(%A): erreur interne: hors limite"
 
-#: elf32-arm.c:9483
-msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC"
-msgstr "%B(%A+0x%lx): instruction ARM '0x%x' inattendue rÃ©fÃ©rencÃ©e par TLS_GOTDESC"
+#: elf32-arc.c:1869 elf32-rl78.c:1104 elf32-rx.c:1458
+#, c-format
+msgid "%B(%A): internal error: unsupported relocation error"
+msgstr "%B(%A): erreur interne: rÃ©adressage non supportÃ©"
 
-#: elf32-arm.c:9512
-msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object"
-msgstr "%B(%A+0x%lx): rÃ©adressage R_ARM_TLS_LE32 pas permis dans un objet partagÃ©"
+#: elf32-arc.c:1874 elf32-rl78.c:1109 elf32-rx.c:1463
+#, c-format
+msgid "%B(%A): internal error: dangerous relocation"
+msgstr "%B(%A): erreur interne: rÃ©adressage dangereux"
+
+#: elf32-arc.c:1879 elf32-rl78.c:1114 elf32-rx.c:1468
+#, c-format
+msgid "%B(%A): internal error: unknown error"
+msgstr "%B(%A): erreur interne: erreur inconnue"
+
+#: elf32-arc.c:1967 elf32-arm.c:14714 elf32-metag.c:2272 elfxx-mips.c:8883
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:7224
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:484
+#, c-format
+msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"
+msgstr "%B: rÃ©adressage de %s en vertu de Â«Â %sÂ Â» ne peut Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©; recompilez avec -fPIC"
+
+#: elf32-arc.c:2859
+msgid "%B: Unknown mandatory ARC object attribute %d."
+msgstr "%B: L'attribut d'objet ARC obligatoire %d est inconnu."
+
+#: elf32-arc.c:2867
+msgid "Warning: %B: Unknown ARC object attribute %d."
+msgstr "Attention: %B: Attribut d'objet ARC %d inconnu."
+
+# Les auteurs francophones que j'ai trouvÃ©s utilisent le mot Â«Â veneerÂ Â». Le mot Â«Â trampolineÂ Â» est netttement plus appropriÃ©
+# pour dÃ©signer une instruction intermÃ©diaire dont le seul but est de faire rebondir un branchement court vers une destination plus
+# Ã©loignÃ©e.
+#: elf32-arm.c:4022 elf32-arm.c:4056 elf32-arm.c:4075 elf32-arm.c:4127
+msgid "%B(%A): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction."
+msgstr "%B(%A): attention: les trampolines (aka veneers) de branchements longs utilisÃ©s dans la section avec l'attribut de section SHF_ARM_PURECODE n'est supportÃ© que sur les cibles M-profile implÃ©mentant l'instruction movw."
+
+#: elf32-arm.c:4087 elf32-arm.c:8806
+msgid ""
+"%B(%s): warning: interworking not enabled.\n"
+"  first occurrence: %B: Thumb call to ARM"
+msgstr ""
+"%B(%s): attention: l'inter-rÃ©seautage n'est pas activÃ©.\n"
+"  premiÃ¨re occurrence: %B: appel de repÃ¨re vers ARM"
+
+#: elf32-arm.c:4141
+msgid ""
+"%B(%s): warning: interworking not enabled.\n"
+"  first occurrence: %B: ARM call to Thumb"
+msgstr ""
+"%B(%s): attention: l'inter-rÃ©seautage n'est pas activÃ©.\n"
+"  premiÃ¨re occurrence: %B: appel ARM vers repÃ¨re"
+
+#: elf32-arm.c:4415
+#, c-format
+msgid "No address assigned to the veneers output section %s"
+msgstr "Aucune adresse assignÃ©e Ã  la section de sortie %s des trampolines (veneers)"
+
+#: elf32-arm.c:4490 elf32-arm.c:6627 elf32-hppa.c:587 elf32-m68hc1x.c:165
+#: elf32-metag.c:1198 elf32-nios2.c:2227
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:2852
+#, c-format
+msgid "%B: cannot create stub entry %s"
+msgstr "%B: ne peut crÃ©er l'entrÃ©e de l'Ã©bauche %s"
+
+#: elf32-arm.c:5675
+msgid "%B: Special symbol `%s' only allowed for ARMv8-M architecture or later."
+msgstr "%B: Le symbole spÃ©cial Â«Â %sÂ Â» est uniquement autorisÃ© pour les architectures ARMv8-M ou ultÃ©rieures."
+
+#: elf32-arm.c:5684
+msgid "%B: invalid special symbol `%s'."
+msgstr "%B: symbole spÃ©ciale Â«Â %sÂ Â» invalide."
+
+#: elf32-arm.c:5686 elf32-arm.c:5726
+msgid "It must be a global or weak function symbol."
+msgstr "Il doit Ãªtre un symbole de fonction global ou faible."
+
+#: elf32-arm.c:5724
+msgid "%B: invalid standard symbol `%s'."
+msgstr "%B: symbole standard Â«Â %sÂ Â» invalide."
+
+#: elf32-arm.c:5730
+msgid "%B: absent standard symbol `%s'."
+msgstr "%B: symbole standard Â«Â %sÂ Â» absent."
+
+#: elf32-arm.c:5742
+msgid "%B: `%s' and its special symbol are in different sections."
+msgstr "%B: Â«Â %sÂ Â» est ses symboles spÃ©ciaux sont dans des sections diffÃ©rentes."
+
+#: elf32-arm.c:5754
+msgid "%B: entry function `%s' not output."
+msgstr "%B: fonction Â«Â %sÂ Â» d'entrÃ©e par Ã©crite."
+
+#: elf32-arm.c:5761
+msgid "%B: entry function `%s' is empty."
+msgstr "%B: la fonction Â«Â %sÂ Â» d'entrÃ©e est vide."
+
+#: elf32-arm.c:5890
+msgid "%B: --in-implib only supported for Secure Gateway import libraries."
+msgstr "%B: --in-implib uniquement supportÃ© pour les bibliothÃ¨ques d'import Secure Gateway."
+
+#: elf32-arm.c:5936
+msgid "%B: invalid import library entry: `%s'."
+msgstr "%B: entrÃ©e de bibliothÃ¨que d'import invalide: Â«Â %sÂ Â»."
+
+#: elf32-arm.c:5938
+msgid "Symbol should be absolute, global and refer to Thumb functions."
+msgstr "Le symbole devrait Ãªtre absolu, global et faire rÃ©fÃ©rence Ã  des fonctions Thumb."
+
+#: elf32-arm.c:5958
+#, c-format
+msgid "Entry function `%s' disappeared from secure code."
+msgstr "La fonction d'entrÃ©e Â«Â %sÂ Â» a disparu du code sÃ»r."
+
+#: elf32-arm.c:5982
+#, c-format
+msgid "`%s' refers to a non entry function."
+msgstr "Â«Â %sÂ Â» fait rÃ©fÃ©rence Ã  quelque chose qui n'est pas une fonction d'entrÃ©e."
+
+#: elf32-arm.c:5997
+msgid "%B: visibility of symbol `%s' has changed."
+msgstr "%B: la visibilitÃ© du symbole Â«Â %sÂ Â» a changÃ©."
+
+#: elf32-arm.c:6006
+msgid "%B: incorrect size for symbol `%s'."
+msgstr "%B: taille incorrecte pour le symbole Â«Â %sÂ Â»."
+
+#: elf32-arm.c:6025
+#, c-format
+msgid "Offset of veneer for entry function `%s' not a multiple of its size."
+msgstr "Le dÃ©calage du trampoline (aka veneer) pour la fonction d'entrÃ©e Â«Â %sÂ Â» n'est pas un multiple de sa taille."
+
+#: elf32-arm.c:6045
+msgid "new entry function(s) introduced but no output import library specified:"
+msgstr "une ou plusieurs nouvelles fonctions d'entrÃ©e spÃ©cifiÃ©es mais aucune bibliothÃ¨que d'import est spÃ©cifiÃ©e:"
+
+#: elf32-arm.c:6053
+#, c-format
+msgid "Start address of `%s' is different from previous link."
+msgstr "L'adresse de dÃ©part de Â«Â %sÂ Â» est diffÃ©rente de celle de l'Ã©dition de liens prÃ©cÃ©dente."
+
+#: elf32-arm.c:6760
+#, c-format
+msgid "unable to find THUMB glue '%s' for '%s'"
+msgstr "incapable de repÃ©rer le REPÃˆRE de liant Â«Â %sÂ Â» pour Â«Â %sÂ Â»"
+
+#: elf32-arm.c:6796
+#, c-format
+msgid "unable to find ARM glue '%s' for '%s'"
+msgstr "incapable de repÃ©rer le liant ARM Â«Â %sÂ Â» pour Â«Â %sÂ Â»"
+
+#: elf32-arm.c:7511
+msgid "%B: BE8 images only valid in big-endian mode."
+msgstr "%B: les images BE8 ne sont valables qu'en mode gros boutiste."
+
+#. Give a warning, but do as the user requests anyway.
+#: elf32-arm.c:7742
+msgid "%B: warning: selected VFP11 erratum workaround is not necessary for target architecture"
+msgstr "%B: attention: le palliatif VFP11 sÃ©lectionnÃ© n'est pas nÃ©cessaire avec l'architecture cible"
+
+#: elf32-arm.c:7769
+msgid "%B: warning: selected STM32L4XX erratum workaround is not necessary for target architecture"
+msgstr "%B: attention: le palliatif STM32L4XX sÃ©lectionnÃ© n'est pas nÃ©cessaire avec l'architecture cible"
+
+#: elf32-arm.c:8306 elf32-arm.c:8326
+msgid "%B: unable to find VFP11 veneer `%s'"
+msgstr "%B: incapable de trouver le trampoline (veneer) Â«Â %sÂ Â» pour le VFP11"
+
+#: elf32-arm.c:8392 elf32-arm.c:8411
+msgid "%B: unable to find STM32L4XX veneer `%s'"
+msgstr "%B: incapable de trouver le trampoline (veneer) Â«Â %sÂ Â» pour le STM32L4XX"
+
+#: elf32-arm.c:8618
+#, c-format
+msgid ""
+"%B(%A+0x%lx): error: multiple load detected in non-last IT block instruction : STM32L4XX veneer cannot be generated.\n"
+"Use gcc option -mrestrict-it to generate only one instruction per IT block.\n"
+msgstr ""
+"%B(%A+0x%lx): erreur: chargements multiples dÃ©tectÃ©s dans un bloc d'instruction IT qui n'est pas le dernier : le trampoline (veneer) du STM32L4XX ne peut pas Ãªtre gÃ©nÃ©rÃ©.\n"
+"Utilisez l'option -mrestrict-it de gcc pour gÃ©nÃ©rer seulement une instruction par bloc IT.\n"
+
+#: elf32-arm.c:8716
+#, c-format
+msgid "Invalid TARGET2 relocation type '%s'."
+msgstr "Type de rÃ©adressage TARGET2 Â«Â %sÂ Â» invalide"
+
+#. FIXME: We ought to be able to generate thumb-1 PLT
+#. instructions...
+#: elf32-arm.c:9458
+msgid "%B: Warning: thumb-1 mode PLT generation not currently supported"
+msgstr "%B: Attention: gÃ©nÃ©ration de PLT dans le mode thumb-1 pas encore supportÃ©e"
+
+#: elf32-arm.c:9723
+#, c-format
+msgid "%B(%A+0x%lx): unexpected Thumb instruction '0x%x' in TLS trampoline"
+msgstr "%B(%A+0x%lx): instruction Thumb Â«Â 0x%xÂ Â» inattendue dans le trampoline TLS"
+
+#: elf32-arm.c:9763
+#, c-format
+msgid "%B(%A+0x%lx): unexpected ARM instruction '0x%x' in TLS trampoline"
+msgstr "%B(%A+0x%lx): instruction ARM Â«Â 0x%xÂ Â» inattendue dans le trampoline TLS"
+
+#: elf32-arm.c:10097
+msgid "shared object"
+msgstr "objet partagÃ©"
+
+#: elf32-arm.c:10100
+msgid "PIE executable"
+msgstr "exÃ©cutable PIE"
+
+#: elf32-arm.c:10103
+msgid "%B: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC"
+msgstr "%B: le rÃ©adressage de %s vers le symbole externe ou non dÃ©fini Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© en construisant un %s; recompilez avec -fPIC"
+
+#: elf32-arm.c:10234
+msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'."
+msgstr "\\%B: Attention: instruction Arm BLX vise la fonction Arm Â«Â %sÂ Â»."
+
+#: elf32-arm.c:10660
+msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'."
+msgstr "%B: Attention: instruction de repÃ©rage BLX vise la fonction de repÃ©rage Â«Â %sÂ Â»."
+
+#: elf32-arm.c:11527
+#, c-format
+msgid "%B(%A+0x%lx): unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC"
+msgstr "%B(%A+0x%lx): instruction Thumb Â«Â 0x%xÂ Â» inattendue rÃ©fÃ©rencÃ©e par TLS_GOTDESC"
+
+#: elf32-arm.c:11551
+#, c-format
+msgid "%B(%A+0x%lx): unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC"
+msgstr "%B(%A+0x%lx): instruction ARM '0x%x' inattendue rÃ©fÃ©rencÃ©e par TLS_GOTDESC"
 
-#: elf32-arm.c:9727
+#: elf32-arm.c:11581
+#, c-format
+msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object"
+msgstr "%B(%A+0x%lx): rÃ©adressage R_ARM_TLS_LE32 pas permis dans un objet partagÃ©"
+
+#: elf32-arm.c:11795
+#, c-format
 msgid "%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations"
 msgstr "%B(%A+0x%lx): Seuls ADD ou SUB sont permis dans les rÃ©adressages du groupe ALU"
 
-#: elf32-arm.c:9767 elf32-arm.c:9854 elf32-arm.c:9937 elf32-arm.c:10022
+#: elf32-arm.c:11836 elf32-arm.c:11927 elf32-arm.c:12013 elf32-arm.c:12101
+#, c-format
 msgid "%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"
 msgstr "%B(%A+0x%lx): DÃ©bordement en scindant 0x%lx pour le rÃ©adressage du groupe %s"
 
-#: elf32-arm.c:10261 elf32-sh.c:4103 elf64-sh64.c:1544
+#: elf32-arm.c:12365 elf32-sh.c:4009 elf64-sh64.c:1539
+#, c-format
 msgid "%B(%A+0x%lx): %s relocation against SEC_MERGE section"
 msgstr "%B(%A+0x%lx): %s rÃ©adressage vers une section SEC_MERGE"
 
-#: elf32-arm.c:10372 elf32-m68k.c:4191 elf32-xtensa.c:2802
+#: elf32-arm.c:12477 elf32-m68k.c:4120 elf32-xtensa.c:2816
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6165
+#, c-format
 msgid "%B(%A+0x%lx): %s used with TLS symbol %s"
 msgstr "%B(%A+0x%lx): %s utilisÃ© avec le symbole TLS %s"
 
-#: elf32-arm.c:10373 elf32-m68k.c:4192 elf32-xtensa.c:2803
+#: elf32-arm.c:12479 elf32-m68k.c:4122 elf32-xtensa.c:2818
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6167
+#, c-format
 msgid "%B(%A+0x%lx): %s used with non-TLS symbol %s"
 msgstr "%B(%A+0x%lx): %s utilisÃ© avec le symbole non-TLS %s"
 
-#: elf32-arm.c:10453 elf32-tic6x.c:2753
+#: elf32-arm.c:12561 elf32-tic6x.c:2739
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6500
 msgid "out of range"
 msgstr "hors limite"
 
-#: elf32-arm.c:10457 elf32-tic6x.c:2757
+#: elf32-arm.c:12565 elf32-nios2.c:4505 elf32-pru.c:821 elf32-tic6x.c:2743
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6504
 msgid "unsupported relocation"
 msgstr "rÃ©adressage non supportÃ©"
 
-#: elf32-arm.c:10465 elf32-tic6x.c:2765
+#: elf32-arm.c:12573 elf32-nios2.c:4515 elf32-pru.c:831 elf32-tic6x.c:2751
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6512
 msgid "unknown error"
 msgstr "erreur inconnue"
 
-#: elf32-arm.c:10890
-msgid "Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it"
-msgstr "Attention: mise Ã  zÃ©ro du fanion d'inter-rÃ©seautage %B en raison du code sans inter-rÃ©seautage dans %B liÃ© avec lui"
-
-#: elf32-arm.c:10984
+#: elf32-arm.c:13153
 msgid "%B: Unknown mandatory EABI object attribute %d"
 msgstr "%B: L'attribut d'objet EABI obligatoire %d est manquant"
 
-#: elf32-arm.c:10992
+#: elf32-arm.c:13161
 msgid "Warning: %B: Unknown EABI object attribute %d"
 msgstr "Attention: %B: Attribut d'objet EABI %d inconnu"
 
-#: elf32-arm.c:11173
+#: elf32-arm.c:13428
 msgid "error: %B: Unknown CPU architecture"
 msgstr "erreur: %B: Architecture CPU inconnue"
 
-#: elf32-arm.c:11211
+#: elf32-arm.c:13466 elf32-nios2.c:2965
+#, c-format
 msgid "error: %B: Conflicting CPU architectures %d/%d"
 msgstr "erreur: %B: Architectures CPU conflictuelles %d/%d"
 
-#: elf32-arm.c:11260
+#: elf32-arm.c:13563
 msgid "Error: %B has both the current and legacy Tag_MPextension_use attributes"
 msgstr "Erreur: %B utilise les deux attributs Tag_MPextension_use actuel et hÃ©ritÃ©"
 
-#: elf32-arm.c:11285
+#: elf32-arm.c:13592
 msgid "error: %B uses VFP register arguments, %B does not"
 msgstr "erreur: %B passe les paramÃ¨tres dans un registre VFP alors que %B ne le fait pas"
 
-#: elf32-arm.c:11430
+#: elf32-arm.c:13750
 msgid "error: %B: unable to merge virtualization attributes with %B"
 msgstr "erreur: %B: impossible de fusionner les attributs de visualisation avec %B"
 
-#: elf32-arm.c:11456
+#: elf32-arm.c:13776
 msgid "error: %B: Conflicting architecture profiles %c/%c"
 msgstr "erreur: %B: Profils d'architecture conflictuels %c/%c"
 
-#: elf32-arm.c:11557
+#: elf32-arm.c:13915
 msgid "Warning: %B: Conflicting platform configuration"
 msgstr "Attention: %B: Configuration de platforme conflictuelle"
 
-#: elf32-arm.c:11566
+#: elf32-arm.c:13924
 msgid "error: %B: Conflicting use of R9"
 msgstr "erreur: %B: Utilisation conflictuelle de R9"
 
-#: elf32-arm.c:11578
+#: elf32-arm.c:13936
 msgid "error: %B: SB relative addressing conflicts with use of R9"
 msgstr "erreur: %B: Adressage relatif SB entre en conflit avec l'utilisation de R9"
 
-#: elf32-arm.c:11591
+#: elf32-arm.c:13949
 msgid "warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail"
 msgstr "attention: %B utilise des wchar_t de %u octets alors que la sortie doit utiliser des wchar_t de %u octets. L'utilisation de wchar_t entre objets peu Ã©chouer"
 
-#: elf32-arm.c:11622
+#: elf32-arm.c:13980
 msgid "warning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may fail"
 msgstr "attantion: %B utilise des enums %s alors que la sortie doit utiliser des enums %s. L'utilisation des valeurs enum entre objets peu Ã©chouer"
 
-#: elf32-arm.c:11634
+#: elf32-arm.c:13992
 msgid "error: %B uses iWMMXt register arguments, %B does not"
 msgstr "erreur: %B passe les paramÃ¨tres dans le registre iWMMXt contrairement Ã  %B"
 
-#: elf32-arm.c:11651
+#: elf32-arm.c:14009
 msgid "error: fp16 format mismatch between %B and %B"
 msgstr "erreur: dÃ©saccord de format fp16 entre %B et %B"
 
-#: elf32-arm.c:11675
-msgid "DIV usage mismatch between %B and %B"
-msgstr "incohÃ©rence d'utilisation de DIV entre %B et %B"
-
-#: elf32-arm.c:11694
+#: elf32-arm.c:14045
 msgid "%B has has both the current and legacy Tag_MPextension_use attributes"
 msgstr "%B utilise les deux attributs Tag_MPextension_use actuel et hÃ©ritÃ©"
 
 #. Ignore init flag - it may not be set, despite the flags field
 #. containing valid data.
 #. Ignore init flag - it may not be set, despite the flags field containing valid data.
-#: elf32-arm.c:11782 elf32-bfin.c:5079 elf32-cris.c:4169 elf32-m68hc1x.c:1282
-#: elf32-m68k.c:1236 elf32-score.c:3994 elf32-score7.c:3800 elf32-vax.c:529
-#: elfxx-mips.c:14103
+#. Ignore init flag - it may not be set, despite the flags field
+#. containing valid data.
+#: elf32-arm.c:14132 elf32-bfin.c:4919 elf32-cris.c:4089 elf32-m68hc1x.c:1413
+#: elf32-m68k.c:1200 elf32-score.c:4002 elf32-score7.c:3807 elf32-vax.c:536
+#: elf32-xgate.c:669 elfxx-mips.c:15802
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6666
 #, c-format
 msgid "private flags = %lx:"
 msgstr "fanions privÃ©s = %lx"
 
-#: elf32-arm.c:11791
+#: elf32-arm.c:14141
 #, c-format
 msgid " [interworking enabled]"
 msgstr " [inter-rÃ©seautage autorisÃ©]"
 
-#: elf32-arm.c:11799
+#: elf32-arm.c:14149
 #, c-format
 msgid " [VFP float format]"
 msgstr " [format flottant VFP]"
 
-#: elf32-arm.c:11801
+#: elf32-arm.c:14151
 #, c-format
 msgid " [Maverick float format]"
 msgstr " [format flottant Maverick]"
 
-#: elf32-arm.c:11803
+#: elf32-arm.c:14153
 #, c-format
 msgid " [FPA float format]"
 msgstr " [format flottant FPA]"
 
-#: elf32-arm.c:11812
+#: elf32-arm.c:14162
 #, c-format
 msgid " [new ABI]"
 msgstr " [nouvel ABI]"
 
-#: elf32-arm.c:11815
+#: elf32-arm.c:14165
 #, c-format
 msgid " [old ABI]"
 msgstr " [ancien ABI]"
 
-#: elf32-arm.c:11818
+#: elf32-arm.c:14168
 #, c-format
 msgid " [software FP]"
 msgstr " [virgule flottante logiciel]"
 
-#: elf32-arm.c:11827
+#: elf32-arm.c:14177
 #, c-format
 msgid " [Version1 EABI]"
 msgstr " [Version1 EABI]"
 
-#: elf32-arm.c:11830 elf32-arm.c:11841
+#: elf32-arm.c:14180 elf32-arm.c:14191
 #, c-format
 msgid " [sorted symbol table]"
 msgstr " [table des symboles triÃ©s]"
 
-#: elf32-arm.c:11832 elf32-arm.c:11843
+#: elf32-arm.c:14182 elf32-arm.c:14193
 #, c-format
 msgid " [unsorted symbol table]"
 msgstr " [table des symboles non triÃ©s]"
 
-#: elf32-arm.c:11838
+#: elf32-arm.c:14188
 #, c-format
 msgid " [Version2 EABI]"
 msgstr " [Version2 EABI]"
 
-#: elf32-arm.c:11846
+#: elf32-arm.c:14196
 #, c-format
 msgid " [dynamic symbols use segment index]"
 msgstr " [symboles dynamiques utilisent un index de segment]"
 
-#: elf32-arm.c:11849
+#: elf32-arm.c:14199
 #, c-format
 msgid " [mapping symbols precede others]"
 msgstr " [mapping de symboles prÃ©cÃ¨des les autres]"
 
-#: elf32-arm.c:11856
+#: elf32-arm.c:14206
 #, c-format
 msgid " [Version3 EABI]"
 msgstr " [Version3 EABI]"
 
-#: elf32-arm.c:11860
+#: elf32-arm.c:14210
 #, c-format
 msgid " [Version4 EABI]"
 msgstr " [Version4 EABI]"
 
-#: elf32-arm.c:11864
+#: elf32-arm.c:14214
 #, c-format
 msgid " [Version5 EABI]"
 msgstr " [Version5 EABI]"
 
-#: elf32-arm.c:11867
+#: elf32-arm.c:14217
+#, c-format
+msgid " [soft-float ABI]"
+msgstr " [soft-float ABI]"
+
+#: elf32-arm.c:14220
+#, c-format
+msgid " [hard-float ABI]"
+msgstr " [hard-float ABI]"
+
+#: elf32-arm.c:14226
 #, c-format
 msgid " [BE8]"
 msgstr " [BE8]"
 
-#: elf32-arm.c:11870
+#: elf32-arm.c:14229
 #, c-format
 msgid " [LE8]"
 msgstr " [LE8]"
 
-#: elf32-arm.c:11876
+#: elf32-arm.c:14235
 #, c-format
 msgid " <EABI version unrecognised>"
 msgstr " <Version EABI non reconnue>"
 
-#: elf32-arm.c:11883
+#: elf32-arm.c:14242
 #, c-format
 msgid " [relocatable executable]"
 msgstr " [exÃ©cutables relocalisÃ©s]"
 
-#: elf32-arm.c:11886
-#, c-format
-msgid " [has entry point]"
-msgstr " [a des points d'entrÃ©es]"
-
-#: elf32-arm.c:11891
+#: elf32-arm.c:14247
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6669
 #, c-format
 msgid "<Unrecognised flag bits set>"
 msgstr "<Bits de fanions non reconnus>"
 
-#: elf32-arm.c:12189 elf32-i386.c:1461 elf32-s390.c:1000 elf32-tic6x.c:2829
-#: elf32-tilepro.c:1336 elf32-xtensa.c:1009 elf64-s390.c:960
-#: elf64-x86-64.c:1364 elfxx-sparc.c:1371 elfxx-tilegx.c:1586
+#: elf32-arm.c:14557 elf32-i386.c:2053 elf32-s390.c:956 elf32-tic6x.c:2814
+#: elf32-tilepro.c:1491 elf32-xtensa.c:1018 elf64-s390.c:875
+#: elf64-x86-64.c:2444 elfxx-sparc.c:1440 elfxx-tilegx.c:1708
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:7115
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:526
+#, c-format
 msgid "%B: bad symbol index: %d"
 msgstr "%B: symbole index erronÃ©: %d"
 
-#: elf32-arm.c:12337 elf64-x86-64.c:1561 elf64-x86-64.c:1732 elfxx-mips.c:8223
-msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"
-msgstr "%B: rÃ©adressage de %s en vertu de Â«Â %sÂ Â» ne peut Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©; recompilez avec -fPIC"
+#: elf32-arm.c:16055
+msgid "Errors encountered processing file %B"
+msgstr "Erreurs rencontrÃ©es pendant le traitement du fichier %B"
 
-#: elf32-arm.c:13460
+#: elf32-arm.c:16493 elflink.c:12297 elflink.c:12344
 #, c-format
-msgid "Errors encountered processing file %s"
-msgstr "Erreurs rencontrÃ©es pendant le traitement du fichier %s"
+msgid "could not find section %s"
+msgstr "ne peut repÃ©rer la section %s"
 
-#: elf32-arm.c:14837
+#: elf32-arm.c:17669
 msgid "%B: error: Cortex-A8 erratum stub is allocated in unsafe location"
 msgstr "%B: erreur: L'Ã©bauche d'erratum du Cortex A8 est allouÃ©e Ã  un emplacement peu sÃ»r"
 
 #. There's not much we can do apart from complain if this
 #. happens.
-#: elf32-arm.c:14864
+#: elf32-arm.c:17696
 msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)"
 msgstr "%B: erreur: L'Ã©bauche d'erratum du Cortex A8 est hors limite (fichier d'entrÃ©e trop grand)"
 
-#: elf32-arm.c:14958 elf32-arm.c:14980
+#: elf32-arm.c:18523 elf32-arm.c:18545
 msgid "%B: error: VFP11 veneer out of range"
 msgstr "%B: erreur: vernis VFP11 hors limite"
 
-#: elf32-arm.c:15518
+#: elf32-arm.c:18596
+msgid "%B(%#x): error: Cannot create STM32L4XX veneer. Jump out of range by %ld bytes. Cannot encode branch instruction. "
+msgstr "%B(%#x): erreur: Impossible de crÃ©er le trampoline (veneer) du STM32L4XX. Saut hors de portÃ©e pour %ld octets. Impossible d'encoder l'instruction de branchement. "
+
+#: elf32-arm.c:18634
+msgid "%B: error: Cannot create STM32L4XX veneer."
+msgstr "%B: erreur: Impossible de crÃ©er le trampoline (veneer) du STM32L4XX."
+
+#: elf32-arm.c:19655
 msgid "error: %B is already in final BE8 format"
 msgstr "erreur: %B est dÃ©jÃ  au format final BE8"
 
-#: elf32-arm.c:15594
+#: elf32-arm.c:19731
 msgid "error: Source object %B has EABI version %d, but target %B has EABI version %d"
 msgstr "erreur: L'objet source %B a l'EABI version %d alors que la cible %B a l'EABI version %d"
 
-#: elf32-arm.c:15610
+#: elf32-arm.c:19746
 msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d"
 msgstr "erreur: %B compilÃ© pour APCS-%d alors que la cible %B utilise APCS-%d"
 
-#: elf32-arm.c:15635
+#: elf32-arm.c:19770
 msgid "error: %B uses VFP instructions, whereas %B does not"
 msgstr "erreur: %B utilise les instructions VFP alors que %B ne les utilise pas"
 
-#: elf32-arm.c:15639
+#: elf32-arm.c:19774
 msgid "error: %B uses FPA instructions, whereas %B does not"
 msgstr "erreur: %B utilise les instructions FPA alors que %B ne les utilise pas"
 
-#: elf32-arm.c:15649
+#: elf32-arm.c:19784
 msgid "error: %B uses Maverick instructions, whereas %B does not"
 msgstr "erreur: %B utilise les instructions Maverick alors que %B ne les utilise pas"
 
-#: elf32-arm.c:15653
+#: elf32-arm.c:19788
 msgid "error: %B does not use Maverick instructions, whereas %B does"
 msgstr "erreur: %B n'utilise pas les instructions Maverick alors que %B les utilise"
 
-#: elf32-arm.c:15672
+#: elf32-arm.c:19807
 msgid "error: %B uses software FP, whereas %B uses hardware FP"
 msgstr "erreur: %B utilise le logiciel pour virgule flottante alors que %B utilise le matÃ©riel pour virgule flottante"
 
-#: elf32-arm.c:15676
+#: elf32-arm.c:19811
 msgid "error: %B uses hardware FP, whereas %B uses software FP"
 msgstr "erreur: %B utilise le matÃ©riel pour virgule flottante alors que %B utilise le logiciel pour virgule flottante"
 
-#: elf32-avr.c:1229 elf32-bfin.c:3221 elf32-cris.c:2089 elf32-epiphany.c:567
-#: elf32-fr30.c:617 elf32-frv.c:4113 elf32-i860.c:1219 elf32-ip2k.c:1479
-#: elf32-iq2000.c:692 elf32-m32c.c:561 elf32-mep.c:543 elf32-moxie.c:290
-#: elf32-msp430.c:494 elf32-mt.c:399 elf32-openrisc.c:412 elf32-tilepro.c:3222
-#: elf32-v850.c:2151 elf32-xstormy16.c:943 elf64-mmix.c:1598
-#: elfxx-tilegx.c:3585
+#: elf32-avr.c:959
+#, c-format
+msgid "%B: invalid AVR reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage AVR invalide: %d"
+
+#: elf32-avr.c:1510 elf32-bfin.c:3202 elf32-cris.c:2033 elf32-epiphany.c:574
+#: elf32-fr30.c:599 elf32-frv.c:4049 elf32-ft32.c:342 elf32-i860.c:1218
+#: elf32-ip2k.c:1486 elf32-iq2000.c:701 elf32-m32c.c:629 elf32-mep.c:532
+#: elf32-metag.c:2009 elf32-moxie.c:293 elf32-msp430.c:1365 elf32-mt.c:404
+#: elf32-or1k.c:1266 elf32-tilepro.c:3673 elf32-v850.c:2295 elf32-visium.c:685
+#: elf32-xstormy16.c:935 elf64-mmix.c:1548 elfxx-tilegx.c:4060
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2275
 msgid "internal error: dangerous relocation"
 msgstr "erreur interne: rÃ©adressage dangereux"
 
-#: elf32-avr.c:2415 elf32-hppa.c:598 elf32-m68hc1x.c:166
-msgid "%B: cannot create stub entry %s"
-msgstr "%B: ne peut crÃ©er l'entrÃ©e de l'Ã©bauche %s"
+#: elf32-avr.c:3319
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:2880
+#, c-format
+msgid "cannot create stub entry %s"
+msgstr "ne peut crÃ©er l'entrÃ©e d'Ã©bauche %s"
 
-#: elf32-bfin.c:107 elf32-bfin.c:363
+#: elf32-bfin.c:106 elf32-bfin.c:362
 msgid "relocation should be even number"
 msgstr "le rÃ©adressage devrait Ãªtre un nombre paire"
 
-#: elf32-bfin.c:1593
+#: elf32-bfin.c:1581
+#, c-format
 msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'"
 msgstr "%B(%A+0x%lx): rÃ©adressage sans solution vers le symbole Â«Â %sÂ Â»"
 
-#: elf32-bfin.c:1626 elf32-i386.c:4307 elf32-m68k.c:4233 elf32-s390.c:3055
-#: elf64-s390.c:3030 elf64-x86-64.c:4151
+#: elf32-bfin.c:1612 elf32-i386.c:5412 elf32-m68k.c:4160 elf32-s390.c:3429
+#: elf64-s390.c:3353 elf64-x86-64.c:5793
+#, c-format
 msgid "%B(%A+0x%lx): reloc against `%s': error %d"
-msgstr "%B(%A+0x%lx): relocalisation vers Â«%sÂ»: erreur %d"
+msgstr "%B(%A+0x%lx): rÃ©adressage vers Â«Â %sÂ Â»: erreur %d"
 
-#: elf32-bfin.c:2725
+#: elf32-bfin.c:2706
+#, c-format
 msgid "%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend"
 msgstr "%B: rÃ©adressage Ã  Â«Â %A+0x%xÂ Â» fait rÃ©fÃ©rence au symbole Â«Â %sÂ Â» avec un opÃ©rande non nul"
 
-#: elf32-bfin.c:2741
+#: elf32-bfin.c:2722
 msgid "relocation references symbol not defined in the module"
 msgstr "le rÃ©adressage fait rÃ©fÃ©rence Ã  un symbole non dÃ©fini dans le module"
 
-#: elf32-bfin.c:2838
+#: elf32-bfin.c:2819
 msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend"
 msgstr "R_BFIN_FUNCDESC fait rÃ©fÃ©rence Ã  un symbole dynamique avec un opÃ©rande non nul"
 
-#: elf32-bfin.c:2879 elf32-bfin.c:3002
+#: elf32-bfin.c:2860 elf32-bfin.c:2983
 msgid "cannot emit fixups in read-only section"
 msgstr "impossible d'apporter des corrections dans une section en lecture seule"
 
-#: elf32-bfin.c:2910 elf32-bfin.c:3040 elf32-lm32.c:1103 elf32-sh.c:5016
+#: elf32-bfin.c:2891 elf32-bfin.c:3021 elf32-lm32.c:1064 elf32-sh.c:4930
 msgid "cannot emit dynamic relocations in read-only section"
 msgstr "impossible d'Ã©diter les rÃ©adressages dynamiques dans une section en lecture seule"
 
-#: elf32-bfin.c:2960
+#: elf32-bfin.c:2941
 msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend"
 msgstr "R_BFIN_FUNCDESC_VALUE fait rÃ©fÃ©rence Ã  un symbole dynamique avec un opÃ©rande non nul"
 
-#: elf32-bfin.c:3125
+#: elf32-bfin.c:3106
 msgid "relocations between different segments are not supported"
 msgstr "les rÃ©adressages entre segments diffÃ©rents ne sont pas supportÃ©s"
 
-#: elf32-bfin.c:3126
+#: elf32-bfin.c:3107
 msgid "warning: relocation references a different segment"
 msgstr "attention: rÃ©adressage fait rÃ©fÃ©rence Ã  un segment diffÃ©rent"
 
-#: elf32-bfin.c:4971
+#: elf32-bfin.c:4877
+#, c-format
 msgid "%B: unsupported relocation type %i"
 msgstr "%B: type de rÃ©adressage %i non supportÃ©"
 
-#: elf32-bfin.c:5125 elf32-frv.c:6808
+#: elf32-bfin.c:4966 elf32-frv.c:6599
+msgid "%B: cannot link non-fdpic object file into fdpic executable"
+msgstr "%B: ne peut lier un fichier objet non fdpic dans un exÃ©cutable fdpic"
+
+#: elf32-bfin.c:4970 elf32-frv.c:6603
+msgid "%B: cannot link fdpic object file into non-fdpic executable"
+msgstr "%B: ne peut lier un fichier objet fdpic dans un exÃ©cutable non fdpic"
+
+#: elf32-bfin.c:5120
 #, c-format
-msgid "%s: cannot link non-fdpic object file into fdpic executable"
-msgstr "%s: ne peut lier un fichier objet non fdpic dans un exÃ©cutable fdpic"
+msgid "*** check this relocation %s"
+msgstr "*** vÃ©rifiez ce rÃ©adressage %s"
 
-#: elf32-bfin.c:5129 elf32-frv.c:6812
+#: elf32-bfin.c:5236
+msgid "the bfin target does not currently support the generation of copy relocations"
+msgstr "la cible bfin ne supporte actuellement pas la gÃ©nÃ©ration de rÃ©adressages copiÃ©s"
+
+#: elf32-cr16.c:653
 #, c-format
-msgid "%s: cannot link fdpic object file into non-fdpic executable"
-msgstr "%s: ne peut lier un fichier objet fdpic dans un exÃ©cutable non fdpic"
+msgid "Unsupported CR16 relocation type: 0x%x\n"
+msgstr "Type de rÃ©adressage CR16 non supportÃ©: 0x%x\n"
 
-#: elf32-bfin.c:5283
+#: elf32-cr16.c:682
 #, c-format
-msgid "*** check this relocation %s"
-msgstr "*** vÃ©rifiez ce rÃ©adressage %s"
+msgid "%B: unrecognised CR16 reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage CR16 non reconnu: %d"
+
+#: elf32-cr16c.c:186
+#, c-format
+msgid "%B: invalid CR16C reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage CR16C invalide: %d"
+
+#: elf32-cris.c:467
+#, c-format
+msgid "%B: invalid CRIS reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage CRIS invalide: %d"
 
-#: elf32-cris.c:1176
+#: elf32-cris.c:1115
+#, c-format
 msgid "%B, section %A: unresolvable relocation %s against symbol `%s'"
 msgstr "%B, section %A: rÃ©adressage %s non rÃ©solu sur le symbole Â«Â %sÂ Â»"
 
-#: elf32-cris.c:1238
+#: elf32-cris.c:1177
+#, c-format
 msgid "%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'"
 msgstr "%B, section %a: Pas de PLT ni de GOT pour rÃ©adresser %s sur le symbole Â«Â %sÂ Â»"
 
-#: elf32-cris.c:1240
+#: elf32-cris.c:1180
+#, c-format
 msgid "%B, section %A: No PLT for relocation %s against symbol `%s'"
 msgstr "%B, section %A: Pas de PLT pour rÃ©adresser %s sur le symbole Â«Â %sÂ Â»"
 
-#: elf32-cris.c:1246 elf32-cris.c:1379 elf32-cris.c:1639 elf32-cris.c:1722
-#: elf32-cris.c:1875 elf32-tic6x.c:2662
+#: elf32-cris.c:1186 elf32-cris.c:1319 elf32-cris.c:1583 elf32-cris.c:1666
+#: elf32-cris.c:1819 elf32-tic6x.c:2651
 msgid "[whose name is lost]"
 msgstr "[dont le nom est perdu]"
 
-#: elf32-cris.c:1365 elf32-tic6x.c:2647
+#: elf32-cris.c:1304 elf32-tic6x.c:2635
+#, c-format
 msgid "%B, section %A: relocation %s with non-zero addend %d against local symbol"
 msgstr "%B, section %A: rÃ©adressage de %s avec un opÃ©rande non nul %d sur le symbole local"
 
-#: elf32-cris.c:1373 elf32-cris.c:1716 elf32-cris.c:1869 elf32-tic6x.c:2655
+#: elf32-cris.c:1313 elf32-cris.c:1660 elf32-cris.c:1813 elf32-tic6x.c:2644
+#, c-format
 msgid "%B, section %A: relocation %s with non-zero addend %d against symbol `%s'"
 msgstr "%B, section %A: rÃ©adressage de %s avec un opÃ©rande non nul %d sur le symbole Â«Â %sÂ Â»"
 
-#: elf32-cris.c:1399
+#: elf32-cris.c:1340
+#, c-format
 msgid "%B, section %A: relocation %s is not allowed for global symbol: `%s'"
 msgstr "%B, section %A: le rÃ©adressage de %s n'est pas permis pour le symbole global: Â«Â %sÂ Â»"
 
-#: elf32-cris.c:1415
+#: elf32-cris.c:1357
+#, c-format
 msgid "%B, section %A: relocation %s with no GOT created"
 msgstr "%B, section %A: rÃ©adressage de %s sans GOT"
 
 #. We shouldn't get here for GCC-emitted code.
-#: elf32-cris.c:1630
+#: elf32-cris.c:1573
+#, c-format
 msgid "%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?"
 msgstr "%B, section %A: rÃ©adressage de %s a une rÃ©fÃ©rence non dÃ©finie vers Â«Â %sÂ Â», peut-Ãªtre un mÃ©lange dans les dÃ©clarations ?"
 
-#: elf32-cris.c:2002
+#: elf32-cris.c:1576
+#, c-format
+msgid "%B, section %A: relocation %s is not allowed for `%s', a global symbol with default visibility, perhaps a declaration mixup?"
+msgstr "%B, section %A: rÃ©adressage de %s n'est pas permis pour Â«Â %sÂ Â», un symbole global avec la visibilitÃ© par dÃ©faut, peut-Ãªtre un mÃ©lange dans les dÃ©clarations ?"
+
+#: elf32-cris.c:1947
+#, c-format
 msgid "%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?"
 msgstr "%B, section %A: rÃ©adressage de %s n'est pas permis pour le symbole Â«Â %sÂ Â» qui est dÃ©fini en dehors du programme, peut-Ãªtre un mÃ©lange dans les dÃ©clarations ?"
 
-#: elf32-cris.c:2055
+#: elf32-cris.c:2000
 msgid "(too many global variables for -fpic: recompile with -fPIC)"
 msgstr "(trop de variables globales pour -fpic: recompilez avec -fPIC)"
 
-#: elf32-cris.c:2062
+#: elf32-cris.c:2007
 msgid "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)"
 msgstr "(donnÃ©e locale au thread trop grande pour -fpic or -msmall-tls: recompilez avec -fPIC ou -mno-small-tls)"
 
-#: elf32-cris.c:3261
+#: elf32-cris.c:3233
+#, c-format
 msgid ""
 "%B, section %A:\n"
 "  v10/v32 compatible object %s must not contain a PIC relocation"
@@ -1397,7 +2086,8 @@ msgstr ""
 "%B, section %A:\n"
 "  l'objet compatible v10/v32 %s ne peut pas contenir de rÃ©adressage PIC"
 
-#: elf32-cris.c:3366
+#: elf32-cris.c:3287
+#, c-format
 msgid ""
 "%B, section %A:\n"
 "  relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC"
@@ -1405,7 +2095,8 @@ msgstr ""
 "%B, section %A:\n"
 "  rÃ©adressage de %s pas valable dans un objet partagÃ©; typiquement un mÃ©lange dans les options. Recompilez avec -fPIC"
 
-#: elf32-cris.c:3580
+#: elf32-cris.c:3505
+#, c-format
 msgid ""
 "%B, section %A:\n"
 "  relocation %s should not be used in a shared object; recompile with -fPIC"
@@ -1413,50 +2104,66 @@ msgstr ""
 "%B, section %A:\n"
 "  rÃ©adressage de %s ne devrait pas Ãªtre utilisÃ© dans un objet partagÃ©; recompilez avec -fPIC"
 
-#: elf32-cris.c:4002
+#: elf32-cris.c:3929
+#, c-format
 msgid ""
 "%B, section `%A', to symbol `%s':\n"
 "  relocation %s should not be used in a shared object; recompile with -fPIC"
 msgstr ""
-"%B, section Â«%AÂ», vers le symbole Â«%sÂ»:\n"
+"%B, section Â«Â %AÂ Â», vers le symbole Â«Â %sÂ Â»:\n"
 "  rÃ©adressage de %s ne devrait pas Ãªtre utilisÃ© dans un objet partagÃ©; recompilez avec -fPIC"
 
-#: elf32-cris.c:4118
+#: elf32-cris.c:4041
 msgid "Unexpected machine number"
 msgstr "NumÃ©ro de machine inattendu"
 
-#: elf32-cris.c:4172
+#: elf32-cris.c:4092
 #, c-format
 msgid " [symbols have a _ prefix]"
-msgstr " [symboles sont prÃ©fixÃ©s par Â« _ Â»]"
+msgstr " [symboles sont prÃ©fixÃ©s par Â«Â  _ Â Â»]"
 
-#: elf32-cris.c:4175
+#: elf32-cris.c:4095
 #, c-format
 msgid " [v10 and v32]"
 msgstr " [v10 et v32]"
 
-#: elf32-cris.c:4178
+#: elf32-cris.c:4098
 #, c-format
 msgid " [v32]"
 msgstr " [v32]"
 
-#: elf32-cris.c:4223
+#: elf32-cris.c:4142
 msgid "%B: uses _-prefixed symbols, but writing file with non-prefixed symbols"
 msgstr "%B: utilise des symboles prÃ©fixÃ©s par _ mais Ã©crits les symboles sans prÃ©fixes dans le fichier"
 
-#: elf32-cris.c:4224
+#: elf32-cris.c:4143
 msgid "%B: uses non-prefixed symbols, but writing file with _-prefixed symbols"
 msgstr "%B: utilise des symboles sans prÃ©fixe mais ajoute le prÃ©fixe _ aux symboles dans le fichier"
 
-#: elf32-cris.c:4243
+#: elf32-cris.c:4162
 msgid "%B contains CRIS v32 code, incompatible with previous objects"
 msgstr "%B contient du code CRIS v32 incompatible avec les objets prÃ©cÃ©dents"
 
-#: elf32-cris.c:4245
+#: elf32-cris.c:4164
 msgid "%B contains non-CRIS-v32 code, incompatible with previous objects"
 msgstr "%B contient du code non CRIS v32 incompatible avec les objets prÃ©cÃ©dents"
 
-#: elf32-dlx.c:142
+#: elf32-crx.c:429
+#, c-format
+msgid "%B: unrecognised CRX reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage CRX non reconnu: %d"
+
+#: elf32-d10v.c:234
+#, c-format
+msgid "%B: invalid D10V reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage D10V invalide: %d"
+
+#: elf32-d30v.c:522 elf32-d30v.c:541
+#, c-format
+msgid "%B: invalid D30V reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage D30V invalide: %d"
+
+#: elf32-dlx.c:141
 #, c-format
 msgid "BFD Link Error: branch (PC rel16) to section (%s) not supported"
 msgstr "Erreur de liaison BFD: branchement (PC rel16) Ã  la section (%s) n'est pas supportÃ©"
@@ -1466,515 +2173,994 @@ msgstr "Erreur de liaison BFD: brancheme
 msgid "BFD Link Error: jump (PC rel26) to section (%s) not supported"
 msgstr "Erreur de liaison BFD: saut (PC rel26) Ã  la section (%s) n'est pas supportÃ©"
 
+#: elf32-dlx.c:552
+#, c-format
+msgid "Invalid DLX reloc number: %d"
+msgstr "NumÃ©ro de rÃ©adressage DLX invalide: %d"
+
+#: elf32-epiphany.c:376
+#, c-format
+msgid "%B: invalid Epiphany reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage Epiphany invalide: %d"
+
 #. Only if it's not an unresolved symbol.
-#: elf32-epiphany.c:563 elf32-ip2k.c:1475
+#: elf32-epiphany.c:570 elf32-ip2k.c:1482
 msgid "unsupported relocation between data/insn address spaces"
 msgstr "rÃ©adressage non supportÃ© entre les espaces d'adresses data/insn"
 
-#: elf32-frv.c:1509 elf32-frv.c:1658
+#: elf32-fr30.c:381
+#, c-format
+msgid "%B: invalid FR30 reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage FR30 invalide: %d"
+
+#: elf32-frv.c:1451 elf32-frv.c:1602
 msgid "relocation requires zero addend"
 msgstr "le rÃ©adressage exige un opÃ©rande nul"
 
-#: elf32-frv.c:2888
+#: elf32-frv.c:2557
+#, c-format
+msgid "%B: invalid FRV reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage FRV invalide: %d"
+
+#: elf32-frv.c:2823
+#, c-format
 msgid "%H: relocation to `%s+%v' may have caused the error above\n"
 msgstr "%H: le rÃ©adressage en Â«Â %s+%vÂ Â» peut avoir causÃ© le problÃ¨me ci-dessus\n"
 
-#: elf32-frv.c:2905
+#: elf32-frv.c:2840
 msgid "%H: relocation references symbol not defined in the module\n"
 msgstr "%H: le rÃ©adressage fait rÃ©fÃ©rence Ã  un symbole non dÃ©fini dans le module\n"
 
-#: elf32-frv.c:2981
+#: elf32-frv.c:2916
 msgid "%H: R_FRV_GETTLSOFF not applied to a call instruction\n"
 msgstr "%H: R_FRV_GETTLSOFF pas appliquÃ© Ã  une instruction d'appel\n"
 
-#: elf32-frv.c:3022
+#: elf32-frv.c:2957
 msgid "%H: R_FRV_GOTTLSDESC12 not applied to an lddi instruction\n"
 msgstr "%H: R_FRV_GOTTLSDESC12 pas appliquÃ© Ã  une instruction lddi\n"
 
-#: elf32-frv.c:3093
+#: elf32-frv.c:3028
 msgid "%H: R_FRV_GOTTLSDESCHI not applied to a sethi instruction\n"
 msgstr "%H: R_FRV_GOTTLSDESCHI pas appliquÃ© Ã  une instruction sethi\n"
 
-#: elf32-frv.c:3130
+#: elf32-frv.c:3065
 msgid "%H: R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction\n"
 msgstr "%H: R_FRV_GOTTLSDESCLO pas appliquÃ© Ã  une instruction setlo ou setlos\n"
 
-#: elf32-frv.c:3177
+#: elf32-frv.c:3112
 msgid "%H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction\n"
 msgstr "%H: R_FRV_TLSDESC_RELAX pas appliquÃ© Ã  une instruction ldd\n"
 
-#: elf32-frv.c:3261
+#: elf32-frv.c:3196
 msgid "%H: R_FRV_GETTLSOFF_RELAX not applied to a calll instruction\n"
 msgstr "%H: R_FRV_GETTLSOFF_RELAX pas appliquÃ© Ã  une instruction calll\n"
 
-#: elf32-frv.c:3315
+#: elf32-frv.c:3250
 msgid "%H: R_FRV_GOTTLSOFF12 not applied to an ldi instruction\n"
 msgstr "%H: R_FRV_GOTTLSOFF12 pas appliquÃ© Ã  une instruction ldi\n"
 
-#: elf32-frv.c:3345
+#: elf32-frv.c:3280
 msgid "%H: R_FRV_GOTTLSOFFHI not applied to a sethi instruction\n"
 msgstr "%H: R_FRV_GOTTLSOFFHI pas appliquÃ© Ã  une instruction sethi\n"
 
-#: elf32-frv.c:3374
+#: elf32-frv.c:3309
 msgid "%H: R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction\n"
 msgstr "%H: R_FRV_GOTTLSOFFLO pas appliquÃ© Ã  une instruction setlo ou setlos\n"
 
-#: elf32-frv.c:3404
+#: elf32-frv.c:3339
 msgid "%H: R_FRV_TLSOFF_RELAX not applied to an ld instruction\n"
 msgstr "%H: R_FRV_TLSOFF_RELAX pas appliquÃ© Ã  une instruction ld\n"
 
-#: elf32-frv.c:3449
+#: elf32-frv.c:3384
 msgid "%H: R_FRV_TLSMOFFHI not applied to a sethi instruction\n"
 msgstr "%H: R_FRV_TLSMOFFHI pas appliquÃ© Ã  une instruction sethi\n"
 
-#: elf32-frv.c:3476
+#: elf32-frv.c:3411
 msgid "R_FRV_TLSMOFFLO not applied to a setlo or setlos instruction\n"
 msgstr "R_FRV_TLSMOFFLO pas appliquÃ© Ã  une instruction setlo ou setlos\n"
 
-#: elf32-frv.c:3597
+#: elf32-frv.c:3532
 msgid "%H: R_FRV_FUNCDESC references dynamic symbol with nonzero addend\n"
 msgstr "%H: R_FRV_FUNCDESC fait rÃ©fÃ©rence Ã  un symbole dynamique avec un opÃ©rande non nul\n"
 
-#: elf32-frv.c:3638 elf32-frv.c:3760
+#: elf32-frv.c:3573 elf32-frv.c:3695
 msgid "%H: cannot emit fixups in read-only section\n"
 msgstr "%H: impossible d'apporter des corrections dans une section en lecture seule\n"
 
-#: elf32-frv.c:3669 elf32-frv.c:3803
+#: elf32-frv.c:3604 elf32-frv.c:3738
 msgid "%H: cannot emit dynamic relocations in read-only section\n"
 msgstr "%H: impossible d'Ã©diter les rÃ©adressages dynamiques dans une section en lecture seule\n"
 
-#: elf32-frv.c:3718
+#: elf32-frv.c:3653
 msgid "%H: R_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addend\n"
 msgstr "%H: R_FRV_FUNCDESC_VALUE fait rÃ©fÃ©rence Ã  un symbole dynamique avec un opÃ©rande non nul\n"
 
-#: elf32-frv.c:3974
+#: elf32-frv.c:3910
+#, c-format
 msgid "%H: reloc against `%s' references a different segment\n"
 msgstr "%H: le rÃ©adressage sur Â«Â %sÂ Â» fait rÃ©fÃ©rence Ã  un segment diffÃ©rent\n"
 
-#: elf32-frv.c:4124
+#: elf32-frv.c:4061
+#, c-format
 msgid "%H: reloc against `%s': %s\n"
 msgstr "%H: rÃ©adressage sur Â«Â %sÂ Â»: %s\n"
 
-#: elf32-frv.c:6400
+#: elf32-frv.c:6258
+#, c-format
 msgid "%B: unsupported relocation type %i\n"
 msgstr "%B: type de rÃ©adressage %i non supportÃ©\n"
 
-#: elf32-frv.c:6722
-#, c-format
-msgid "%s: compiled with %s and linked with modules that use non-pic relocations"
-msgstr "%s: compilÃ© avec %s et liÃ© avec les modules qui utilisent le rÃ©adressage non PIC"
-
-#: elf32-frv.c:6775 elf32-iq2000.c:845 elf32-m32c.c:807
+#: elf32-frv.c:6510
 #, c-format
-msgid "%s: compiled with %s and linked with modules compiled with %s"
-msgstr "%s: compilÃ© avec %s et liÃ© avec les modules compilÃ©s avec %s"
+msgid "%B: compiled with %s and linked with modules that use non-pic relocations"
+msgstr "%B: compilÃ© avec %s et liÃ© avec les modules qui utilisent le rÃ©adressage non PIC"
 
-#: elf32-frv.c:6787
+#: elf32-frv.c:6564 elf32-iq2000.c:832 elf32-m32c.c:877
 #, c-format
-msgid "%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)"
-msgstr "%s: utilise diffÃ©rents champs e_flags (0x%lx) que les modules prÃ©cÃ©dents (0x%lx)"
+msgid "%B: compiled with %s and linked with modules compiled with %s"
+msgstr "%B: compilÃ© avec %s et liÃ© avec les modules compilÃ©s avec %s"
 
-#: elf32-frv.c:6837 elf32-iq2000.c:882 elf32-m32c.c:843 elf32-mt.c:576
-#: elf32-rx.c:3001
+#: elf32-frv.c:6577
 #, c-format
-msgid "private flags = 0x%lx:"
-msgstr "fanions privÃ©s = 0x%lx:"
+msgid "%B: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)"
+msgstr "%B: utilise diffÃ©rents champs e_flags (0x%lx) que les modules prÃ©cÃ©dents (0x%lx)"
 
 #: elf32-gen.c:69 elf64-gen.c:69
+#, c-format
 msgid "%B: Relocations in generic ELF (EM: %d)"
 msgstr "%B: RÃ©adressages en format ELF gÃ©nÃ©rique (EM: %d)"
 
-#: elf32-hppa.c:850 elf32-hppa.c:3598
+#: elf32-hppa.c:839 elf32-hppa.c:3599
+#, c-format
 msgid "%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections"
 msgstr "%B(%A+0x%lx): ne peut atteindre %s, recompilez avec -ffunction-sections"
 
-#: elf32-hppa.c:1284
+#: elf32-hppa.c:1270
+#, c-format
 msgid "%B: relocation %s can not be used when making a shared object; recompile with -fPIC"
 msgstr "%B: rÃ©adressage de %s ne peut Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©; recompilez avec -fPIC"
 
-#: elf32-hppa.c:2791
+#: elf32-hppa.c:2778
+#, c-format
 msgid "%B: duplicate export stub %s"
 msgstr "%B: Ã©bauche d'exportation en double %s"
 
-#: elf32-hppa.c:3437
+#: elf32-hppa.c:3433
+#, c-format
 msgid "%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link"
 msgstr "%B(%A+0x%lx): correction %s pour insn 0x%x n'est pas supportÃ© dans un lien non partagÃ©"
 
-#: elf32-hppa.c:4284
+#: elf32-hppa.c:4290
+#, c-format
 msgid "%B(%A+0x%lx): cannot handle %s for %s"
 msgstr "%B(%A+0x%lx): ne sait pas traiter %s pour %s"
 
-#: elf32-hppa.c:4603
+#: elf32-hppa.c:4588
 msgid ".got section not immediately after .plt section"
 msgstr "section .got pas immÃ©diatement aprÃ¨s la section .plt"
 
+#: elf32-i370.c:307
+#, c-format
+msgid "%B: unrecognised I370 reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage I370 non reconnu: %d"
+
+#: elf32-i370.c:1168
+msgid "%B: unknown relocation type %d for symbol %s"
+msgstr "%B: type de rÃ©adressage %d inconnu pour le symbole %s"
+
+#: elf32-i370.c:1310
+#, c-format
+msgid "%B: Relocation %s is not yet supported for symbol %s."
+msgstr "%B: rÃ©adressage %s n'est pas encore supportÃ© pour le symbole %s"
+
 #. Unknown relocation.
-#: elf32-i386.c:373 elf32-m68k.c:384 elf32-ppc.c:1676 elf32-s390.c:379
-#: elf32-tic6x.c:2684 elf64-ppc.c:2300 elf64-s390.c:403 elf64-x86-64.c:265
+#: elf32-i386.c:387 elf32-m68k.c:352 elf32-ppc.c:2074 elf32-s390.c:346
+#: elf32-tic6x.c:2674 elf32-wasm32.c:106 elf64-ppc.c:2516 elf64-s390.c:373
+#: elf64-x86-64.c:289
+#, c-format
 msgid "%B: invalid relocation type %d"
 msgstr "%B: type de rÃ©adressage %d invalide"
 
-#: elf32-i386.c:1404 elf64-x86-64.c:1308
+#: elf32-i386.c:1711 elf64-x86-64.c:1888
+#, c-format
 msgid "%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed"
-msgstr "%B: Ã‰chec de la transition TLS de %s vers %s sur Â«%sÂ» Ã  0x%lx dans la section Â«%AÂ»"
+msgstr "%B: Ã‰chec de la transition TLS de %s vers %s sur Â«Â %sÂ Â» Ã  0x%lx dans la section Â«Â %AÂ Â»"
 
-#: elf32-i386.c:1549 elf32-i386.c:3244 elf64-x86-64.c:1487 elf64-x86-64.c:3125
-#: elfxx-sparc.c:3083
-msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
-msgstr "%B: le rÃ©adressage %s sur le symbole STT_GNU_IFUNC Â«Â %sÂ Â» n'est pas gÃ©rÃ© par %s"
+#: elf32-i386.c:1799
+#, c-format
+msgid "%B: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object"
+msgstr "%B: le rÃ©adressage GOT direct R_386_GOT32X sur le symbole Â«Â %sÂ Â» sans registre de base ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©"
 
-#: elf32-i386.c:1711 elf32-s390.c:1182 elf32-sh.c:6362 elf32-tilepro.c:1434
-#: elf32-xtensa.c:1182 elf64-s390.c:1151 elfxx-sparc.c:1548
-#: elfxx-tilegx.c:1701
+#: elf32-i386.c:2237 elf32-s390.c:1188 elf32-sh.c:6056 elf32-tilepro.c:1608
+#: elf32-xtensa.c:1196 elf64-s390.c:1117 elfxx-sparc.c:1625
+#: elfxx-tilegx.c:1817
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:440
+#, c-format
 msgid "%B: `%s' accessed both as normal and thread local symbol"
-msgstr "%B: Â«%sÂ» accÃ©dÃ© Ã  la fois comme symbole normal et comme symbole locale au thread"
+msgstr "%B: Â«Â %sÂ Â» accÃ©dÃ© Ã  la fois comme symbole normal et comme symbole locale au thread"
+
+#: elf32-i386.c:2314
+#, c-format
+msgid "%B: unsupported non-PIC call to IFUNC `%s'"
+msgstr "%B: appel non-PIC non supportÃ© vers IFUNC Â«Â %sÂ Â»"
+
+#: elf32-i386.c:3189 elf64-x86-64.c:3589
+#, c-format
+msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'\n"
+msgstr "%P: %B: attention: rÃ©adressage sur Â«Â %sÂ Â» dans la section en lecture seule Â«Â %AÂ Â»\n"
 
-#: elf32-i386.c:2539 elf64-x86-64.c:2506
-msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'.\n"
-msgstr "%P: %B: attention: rÃ©adressage sur Â«Â %sÂ Â» dans la section en lecture seule Â«Â %AÂ Â».\n"
+#: elf32-i386.c:3402 elf64-x86-64.c:3798
+#, c-format
+msgid "%P: %B: warning: relocation in readonly section `%A'\n"
+msgstr "%P: %B: attention: rÃ©adressage dans la section Â«Â %AÂ Â» en lecture seule\n"
 
-#: elf32-i386.c:2629 elf64-x86-64.c:2593
-msgid "%P: %B: warning: relocation in readonly section `%A'.\n"
-msgstr "%P: %B: attention: rÃ©adressage dans la section Â«Â %AÂ Â» en lecture seule.\n"
+#: elf32-i386.c:3705 elf64-x86-64.c:4114
+msgid "%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n"
+msgstr "%P%X: le segment en lecture seule a des rÃ©adressages IFUNC dynamiques; recompilez avec -fPIC\n"
 
-#: elf32-i386.c:3086 elf32-tilepro.c:2557 elfxx-tilegx.c:2871
+#: elf32-i386.c:3945 elf32-tilepro.c:2868 elf64-x86-64.c:4321
+#: elfxx-tilegx.c:3167
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6082
+#, c-format
 msgid "%B: unrecognized relocation (0x%x) in section `%A'"
 msgstr "%B: rÃ©adressage inconnu (0x%x) dans la section Â«Â %AÂ Â»"
 
-#: elf32-i386.c:3494 elf64-x86-64.c:3513
+#: elf32-i386.c:4240 elf64-x86-64.c:4550
+#, c-format
+msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported"
+msgstr "%B: le rÃ©adressage %s sur le symbole STT_GNU_IFUNC Â«Â %sÂ Â» n'est pas supportÃ©"
+
+#: elf32-i386.c:4275 elf32-i386.c:5642 elf32-i386.c:5781 elf64-x86-64.c:4609
+#: elf64-x86-64.c:5982 elf64-x86-64.c:6136
+msgid "Local IFUNC function `%s' in %B\n"
+msgstr "Fonction IFUNC locale Â«Â %sÂ Â» dans %B\n"
+
+#: elf32-i386.c:4508
+#, c-format
+msgid "%B: direct GOT relocation %s against `%s' without base register can not be used when making a shared object"
+msgstr "%B: le rÃ©adressage GOT direct %s vers Â«Â %sÂ Â» sans registre de base ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©"
+
+#: elf32-i386.c:4543 elf64-x86-64.c:4816
 msgid "hidden symbol"
 msgstr "symbole cachÃ©"
 
-#: elf32-i386.c:3497 elf64-x86-64.c:3516
+#: elf32-i386.c:4546 elf64-x86-64.c:4819
 msgid "internal symbol"
 msgstr "symbole interne"
 
-#: elf32-i386.c:3500 elf64-x86-64.c:3519
+#: elf32-i386.c:4549 elf64-x86-64.c:4822
 msgid "protected symbol"
 msgstr "symbole protÃ©gÃ©"
 
-#: elf32-i386.c:3503 elf64-x86-64.c:3522
+#: elf32-i386.c:4552 elf64-x86-64.c:4825
 msgid "symbol"
 msgstr "symbole"
 
-#: elf32-i386.c:3508
+#: elf32-i386.c:4558
+#, c-format
 msgid "%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object"
 msgstr "%B: rÃ©adressage R_386_GOTOFF sur le symbole %s Â«Â %sÂ Â» non dÃ©fini ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©"
 
-#: elf32-i386.c:3518
-msgid "%B: relocation R_386_GOTOFF against protected function `%s' can not be used when making a shared object"
-msgstr "%B: rÃ©adressage R_386_GOTOFF vers la fonction protÃ©gÃ©e Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©"
-
-#: elf32-i386.c:4839 elf32-tilepro.c:3467 elf64-x86-64.c:4609
-#: elfxx-tilegx.c:3847
+# Â«Â la %s progÃ©tÃ©eÂ Â» a un %s qui est remplacÃ© par le texte non traduit Â«Â functionÂ Â» ou Â«Â dataÂ Â».
+# Heureusement, cette ligne n'existe plus dans le code source actuel.
+#: elf32-i386.c:4571
+#, c-format
+msgid "%B: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object"
+msgstr "%B: rÃ©adressage R_386_GOTOFF vers la %s protÃ©gÃ©e Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©"
+
+#: elf32-i386.c:6116 elf32-tilepro.c:3920 elf64-x86-64.c:6483
+#: elfxx-tilegx.c:4327
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:9261
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2522
 #, c-format
 msgid "discarded output section: `%A'"
-msgstr "section de sortie rejetÃ©e: Â«%AÂ»"
+msgstr "section de sortie rejetÃ©e: Â«Â %AÂ Â»"
+
+#: elf32-i386.c:6693 elf64-x86-64.c:7228
+msgid "error: %B: <corrupt x86 ISA used size: 0x%x>"
+msgstr "erreur: %B: <la taille utilisÃ©e par l'ISA x86 est corrompue: 0x%x>"
+
+#: elf32-i386.c:6695 elf64-x86-64.c:7230
+msgid "error: %B: <corrupt x86 ISA needed size: 0x%x>"
+msgstr "erreur: %B: <la taille nÃ©cessaire pour l'ISA x86 est corrompue: 0x%x>"
+
+#: elf32-i386.c:6696 elf64-x86-64.c:7231
+msgid "error: %B: <corrupt x86 feature size: 0x%x>"
+msgstr "erreur: %B: <la taille des fonctionnalitÃ©s x86 est corrompue: 0x%x>"
+
+#: elf32-i386.c:6873 elf64-x86-64.c:7408
+#, c-format
+msgid "%F: failed to create GNU property section\n"
+msgstr "%F: Ã©chec lors de la crÃ©ation de la section des propriÃ©tÃ©s GNU\n"
+
+#: elf32-i386.c:6959
+#, c-format
+msgid "%F: failed to create VxWorks dynamic sections\n"
+msgstr "%F: Ã©chec lors de la crÃ©ation des sections dynamiques VxWorks\n"
+
+#: elf32-i386.c:7026 elf64-x86-64.c:7568
+#, c-format
+msgid "%F: failed to create GOT sections\n"
+msgstr "%F: Ã©chec lors de la crÃ©ation des sections GOT\n"
+
+#: elf32-i386.c:7031 elf64-x86-64.c:7584
+#, c-format
+msgid "%F: failed to create ifunc sections\n"
+msgstr "%F: Ã©chec lors de la crÃ©ation des sections ifunc\n"
+
+#: elf32-i386.c:7074 elf64-x86-64.c:7627
+#, c-format
+msgid "%F: failed to create GOT PLT section\n"
+msgstr "%F: Ã©chec lors de la crÃ©ation de la section PLT GOT\n"
+
+#: elf32-i386.c:7095 elf64-x86-64.c:7648
+#, c-format
+msgid "%F: failed to create IBT-enabled PLT section\n"
+msgstr "%F: Ã©chec lors de la crÃ©ation de la section PLT activÃ©e pour IBT\n"
+
+#: elf32-i386.c:7116 elf64-x86-64.c:7684
+#, c-format
+msgid "%F: failed to create PLT .eh_frame section\n"
+msgstr "%F: Ã©chec lors de la crÃ©ation de la section .eh_frame PLT\n"
+
+#: elf32-i386.c:7129 elf64-x86-64.c:7698
+#, c-format
+msgid "%F: failed to create GOT PLT .eh_frame section\n"
+msgstr "%F: Ã©chec lors de la crÃ©ation de la section .eh_frame PLT GOT\n"
+
+#: elf32-i386.c:7149 elf64-x86-64.c:7414
+#, c-format
+msgid "%F%A: failed to align section\n"
+msgstr "%F%A: Ã©chec lors de l'alignement de la section\n"
+
+#: elf32-i960.c:140
+#, c-format
+msgid "%B: invalid i960 reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage i960 invalide: %d"
 
-#: elf32-ip2k.c:857 elf32-ip2k.c:863 elf32-ip2k.c:930 elf32-ip2k.c:936
+#: elf32-ip2k.c:856 elf32-ip2k.c:862 elf32-ip2k.c:929 elf32-ip2k.c:935
 msgid "ip2k relaxer: switch table without complete matching relocation information."
 msgstr "relÃ¢che ip2k: table de commutation sans concordance complÃ¨te des informations de rÃ©adressage"
 
-#: elf32-ip2k.c:880 elf32-ip2k.c:963
+#: elf32-ip2k.c:879 elf32-ip2k.c:962
 msgid "ip2k relaxer: switch table header corrupt."
 msgstr "relÃ¢che ip2k: en-tÃªte de table de commutation corrompue"
 
-#: elf32-ip2k.c:1292
+#: elf32-ip2k.c:1245
+#, c-format
+msgid "%B: invalid IP2K reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage IP2K invalide: %d"
+
+#: elf32-ip2k.c:1298
 #, c-format
 msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)."
 msgstr "liaison ip2k: instruction de page manquante Ã  0x%08lx (cible = 0x%08lx)."
 
-#: elf32-ip2k.c:1308
+#: elf32-ip2k.c:1315
 #, c-format
 msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)."
 msgstr "liaison ip2k: instruction de page redondante Ã  0x%08lx (cible = 0x%08lx)."
 
-#: elf32-iq2000.c:858 elf32-m32c.c:819
+#: elf32-iq2000.c:441
+#, c-format
+msgid "%B: invalid IQ2000 reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage IQ2000 invalide: %d"
+
+#: elf32-lm32.c:559
 #, c-format
-msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
-msgstr "%s: utilise des champs e_flags (0x%lx) diffÃ©rents des modules prÃ©cÃ©dents (0x%lx)"
+msgid "%B: invalid LM32 reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage LM32 invalide: %d"
 
-#: elf32-lm32.c:706
+#: elf32-lm32.c:668 elf32-nios2.c:3153
 msgid "global pointer relative relocation when _gp not defined"
 msgstr "rÃ©adressage relatif au pointeur global sans que _gp ne soit dÃ©fini"
 
-#: elf32-lm32.c:761
+#: elf32-lm32.c:723 elf32-nios2.c:3590
 msgid "global pointer relative address out of range"
 msgstr "adresse relative du pointeur global hors limites"
 
-#: elf32-lm32.c:1057
+#: elf32-lm32.c:1018
 msgid "internal error: addend should be zero for R_LM32_16_GOT"
 msgstr "erreur interne: opÃ©rande devrait Ãªtre zÃ©ro pour R_LM32_16_GOT"
 
-#: elf32-m32r.c:1453
+#: elf32-m32c.c:305
+#, c-format
+msgid "%B: invalid M32C reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage M32C invalide: %d"
+
+#: elf32-m32r.c:1286
+#, c-format
+msgid "%B: invalid M32R reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage M32R invalide: %d"
+
+#: elf32-m32r.c:1458
 msgid "SDA relocation when _SDA_BASE_ not defined"
 msgstr "rÃ©adressage SDA alors que _SDA_BASE_ n'est pas dÃ©fini"
 
-#: elf32-m32r.c:3043
+#: elf32-m32r.c:2984 elf32-microblaze.c:1080 elf32-microblaze.c:1128
+#, c-format
 msgid "%B: The target (%s) of an %s relocation is in the wrong section (%A)"
 msgstr "%B: la cible (%s) du rÃ©adressage %s est dans la mauvaise section (%A)"
 
-#: elf32-m32r.c:3571
+#: elf32-m32r.c:3486
 msgid "%B: Instruction set mismatch with previous modules"
 msgstr "%B: jeu d'instructions ne concorde par avec les modules prÃ©cÃ©dents"
 
-#: elf32-m32r.c:3592
+#: elf32-m32r.c:3507 elf32-nds32.c:6111
 #, c-format
 msgid "private flags = %lx"
 msgstr "fanions privÃ©s = %lx"
 
-#: elf32-m32r.c:3597
+#: elf32-m32r.c:3512
 #, c-format
 msgid ": m32r instructions"
 msgstr ": instructions m32r"
 
-#: elf32-m32r.c:3598
+#: elf32-m32r.c:3513
 #, c-format
 msgid ": m32rx instructions"
 msgstr ": instruction m32rx"
 
-#: elf32-m32r.c:3599
+#: elf32-m32r.c:3514
 #, c-format
 msgid ": m32r2 instructions"
 msgstr ": instructions m32r2"
 
-#: elf32-m68hc1x.c:1050
+#: elf32-m68hc11.c:390
+#, c-format
+msgid "%B: invalid M68HC11 reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage M68HC11 invalide: %d"
+
+#: elf32-m68hc12.c:510
+#, c-format
+msgid "%B: invalid M68HC12 reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage M68HC12 invalide: %d"
+
+#: elf32-m68hc1x.c:1119
 #, c-format
 msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution"
 msgstr "RÃ©fÃ©rence Ã  un symbole far Â«Â %sÂ Â» utilisant le mauvais rÃ©adressage peut provoquer une exÃ©cution incorrecte"
 
-#: elf32-m68hc1x.c:1073
+#: elf32-m68hc1x.c:1153
+#, c-format
+msgid "XGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you must manually offset the address, and possibly manage the page, in your code."
+msgstr "l'adresse XGATE (%lx) n'est pas dans la mÃ©moire RAM partagÃ©e (0xE000-0xFFFF), par consÃ©quent, vous devez dÃ©caler l'adresse manuellement, et peut-Ãªtre gÃ©rer la page, dans votre code."
+
+#: elf32-m68hc1x.c:1171
 #, c-format
 msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)"
 msgstr "banque d'adresses [%lx:%04lx] (%lx) n'es pas dans la mÃªme banque que la banque courante d'adresses [%lx:%04lx] (%lx)"
 
-#: elf32-m68hc1x.c:1092
+#: elf32-m68hc1x.c:1187
 #, c-format
 msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx"
 msgstr "rÃ©fÃ©rence Ã  une banque d'adresses [%lx:%04lx] dans l'espace normal d'adresses Ã  %04lx"
 
-#: elf32-m68hc1x.c:1225
+#: elf32-m68hc1x.c:1228
+#, c-format
+msgid "S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you must manually offset the address in your code"
+msgstr "l'adresse S12 (%lx) n'est pas dans la mÃ©moire RAM partagÃ©e (0x2000-0x4000), par consÃ©quent, vous devez dÃ©caler l'adresse manuellement dans votre code"
+
+#: elf32-m68hc1x.c:1355
 msgid "%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers"
 msgstr "%B: fichiers liÃ©s compilÃ©s pour des entiers de 16 bits (-mshort) et d'autres pour des entiers de 32 bits"
 
-#: elf32-m68hc1x.c:1232
+#: elf32-m68hc1x.c:1362
 msgid "%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double"
 msgstr "%B: fichiers liÃ©s compilÃ©s pour des doubles de 32 bits (-fshort-double) et d'autres pour des doubles de 64 bits"
 
-#: elf32-m68hc1x.c:1241
+#: elf32-m68hc1x.c:1371
 msgid "%B: linking files compiled for HCS12 with others compiled for HC12"
 msgstr "%B: certains fichiers liÃ©s compilÃ©s pour HCS12 avec d'autres compilÃ©s pour HC12"
 
-#: elf32-m68hc1x.c:1257 elf32-ppc.c:4227 elf64-sparc.c:706 elfxx-mips.c:13965
-msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
-msgstr "%B: utilise des champs e_flags (0x%lx) diffÃ©rents des modules prÃ©cÃ©dents (0x%lx)"
-
-#: elf32-m68hc1x.c:1285
+#: elf32-m68hc1x.c:1416 elf32-xgate.c:672
 #, c-format
 msgid "[abi=32-bit int, "
 msgstr "[abi=32-bit int, "
 
-#: elf32-m68hc1x.c:1287
+#: elf32-m68hc1x.c:1418 elf32-xgate.c:674
 #, c-format
 msgid "[abi=16-bit int, "
 msgstr "[abi=16-bit int, "
 
-#: elf32-m68hc1x.c:1290
+#: elf32-m68hc1x.c:1421 elf32-xgate.c:677
 #, c-format
 msgid "64-bit double, "
 msgstr "double de 64 bits, "
 
-#: elf32-m68hc1x.c:1292
+#: elf32-m68hc1x.c:1423 elf32-xgate.c:679
 #, c-format
 msgid "32-bit double, "
 msgstr "double de 32 bits, "
 
-#: elf32-m68hc1x.c:1295
+#: elf32-m68hc1x.c:1426
 #, c-format
 msgid "cpu=HC11]"
 msgstr "cpu=HC11]"
 
-#: elf32-m68hc1x.c:1297
+#: elf32-m68hc1x.c:1428
 #, c-format
 msgid "cpu=HCS12]"
 msgstr "cpu=HCS12]"
 
-#: elf32-m68hc1x.c:1299
+#: elf32-m68hc1x.c:1430
 #, c-format
 msgid "cpu=HC12]"
 msgstr "cpu=HC12]"
 
-#: elf32-m68hc1x.c:1302
+#: elf32-m68hc1x.c:1433
 #, c-format
 msgid " [memory=bank-model]"
 msgstr " [memory=bank-model]"
 
-#: elf32-m68hc1x.c:1304
+#: elf32-m68hc1x.c:1435
 #, c-format
 msgid " [memory=flat]"
 msgstr " [memory=flat]"
 
-#: elf32-m68k.c:1251 elf32-m68k.c:1252 vms-alpha.c:7314 vms-alpha.c:7329
+#: elf32-m68hc1x.c:1438
+#, c-format
+msgid " [XGATE RAM offsetting]"
+msgstr " [dÃ©calage RAM XGATE]"
+
+#: elf32-m68k.c:1215 elf32-m68k.c:1216 vms-alpha.c:7400 vms-alpha.c:7416
 msgid "unknown"
 msgstr "inconnu"
 
-#: elf32-m68k.c:1715
+#: elf32-m68k.c:1680
+#, c-format
 msgid "%B: GOT overflow: Number of relocations with 8-bit offset > %d"
 msgstr "%B: dÃ©bordement GOT: Nombre de rÃ©adressages avec des offsets de 8 bits > %d"
 
-#: elf32-m68k.c:1721
+#: elf32-m68k.c:1687
+#, c-format
 msgid "%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d"
 msgstr "%B: dÃ©bordement GOT: Nombre de rÃ©adressages avec des offsets de 8 ou 16 bits > %d"
 
-#: elf32-m68k.c:3957
+#: elf32-m68k.c:3890
+#, c-format
 msgid "%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object"
 msgstr "%B(%A+0x%lx): rÃ©adressage R_68K_TLS_LE32 pas permis dans un objet partagÃ©"
 
-#: elf32-mcore.c:99 elf32-mcore.c:442
+#: elf32-mcore.c:100 elf32-mcore.c:455
+#, c-format
 msgid "%B: Relocation %s (%d) is not currently supported.\n"
 msgstr "%B: RÃ©adressage %s (%d) n'est pas actuellement supportÃ©.\n"
 
-#: elf32-mcore.c:428
+#: elf32-mcore.c:355
+#, c-format
+msgid "%B: unrecognised MCore reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage MCore non reconnu: %d"
+
+#: elf32-mcore.c:440
+#, c-format
 msgid "%B: Unknown relocation type %d\n"
 msgstr "%B: Type de rÃ©adressage %d inconnu\n"
 
 #. Pacify gcc -Wall.
-#: elf32-mep.c:157
+#: elf32-mep.c:139
 #, c-format
 msgid "mep: no reloc for code %d"
 msgstr "mep: pas de rÃ©adressage pour le code %d"
 
-#: elf32-mep.c:163
+#: elf32-mep.c:146
 #, c-format
 msgid "MeP: howto %d has type %d"
 msgstr "MeP: le howto %d a le type %d"
 
-#: elf32-mep.c:648
+#: elf32-mep.c:390
+#, c-format
+msgid "%B: invalid MEP reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage MEP invalide: %d"
+
+#: elf32-mep.c:620
+#, c-format
 msgid "%B and %B are for different cores"
 msgstr "%B et %B sont pour des noyaux diffÃ©rents"
 
-#: elf32-mep.c:665
+#: elf32-mep.c:639
+#, c-format
 msgid "%B and %B are for different configurations"
 msgstr "%B et %B sont pour des configurations diffÃ©rentes"
 
-#: elf32-mep.c:702
+#: elf32-mep.c:677
 #, c-format
 msgid "private flags = 0x%lx"
 msgstr "fanions privÃ©s = 0x%lx"
 
-#: elf32-microblaze.c:742
+#: elf32-metag.c:893
 #, c-format
-msgid "%s: unknown relocation type %d"
-msgstr "%s: type de rÃ©adressage %d inconnu"
+msgid "%B: invalid METAG reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage METAG invalide: %d"
+
+#: elf32-metag.c:1875
+msgid "%B(%A): multiple TLS models are not supported"
+msgstr "%B(%A): l'utilisation de plusieurs modÃ¨les TLS n'est pas supportÃ©"
 
-#: elf32-microblaze.c:867 elf32-microblaze.c:912
+#: elf32-metag.c:1878
+msgid "%B(%A): shared library symbol %s encountered whilst performing a static link"
+msgstr "%B(%A): symbole de bibliothÃ¨que partagÃ©e %s rencontrÃ© en rÃ©alisant une Ã©dition de liens statiques"
+
+#: elf32-metag.c:1931
 #, c-format
-msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
-msgstr "%s: la cible (%s) du rÃ©adressage %s est dans la mauvaise section (%s)"
+msgid "%B(%A+0x%lx): R_METAG_TLS_LE/IENONPIC relocation not permitted in shared object"
+msgstr "%B(%A+0x%lx): rÃ©adressage R_METAG_TLS_LE/IENONPIC pas permis dans un objet partagÃ©"
 
-#: elf32-microblaze.c:1155 elf32-tilepro.c:2891 elfxx-sparc.c:3457
-#: elfxx-tilegx.c:3230
+#: elf32-microblaze.c:656
+#, c-format
+msgid "%B: unrecognised MicroBlaze reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage MicroBlaze non reconnu: %d"
+
+#: elf32-microblaze.c:1496 elf32-or1k.c:1072 elf32-tilepro.c:3317
+#: elfxx-sparc.c:3705 elfxx-tilegx.c:3726
 msgid "%B: probably compiled without -fPIC?"
 msgstr "%B: probablement compilÃ© sans -fPIC?"
 
-#: elf32-microblaze.c:2074
-msgid "%B: bad relocation section name `%s'"
-msgstr "%B: nom de section de rÃ©adressage erronÃ© Â«Â %sÂ Â»"
-
-#: elf32-mips.c:1549 elf64-mips.c:2683 elfn32-mips.c:2487
+#: elf32-mips.c:1777 elf64-mips.c:3200 elfn32-mips.c:3010
 msgid "literal relocation occurs for an external symbol"
 msgstr "rÃ©adressage littÃ©ral rencontrÃ© pour un symbole externe"
 
-#: elf32-mips.c:1596 elf32-score.c:570 elf32-score7.c:469 elf64-mips.c:2726
-#: elfn32-mips.c:2528
+#: elf32-mips.c:1824 elf32-score.c:569 elf32-score7.c:469 elf64-mips.c:3243
+#: elfn32-mips.c:3051
 msgid "32bits gp relative relocation occurs for an external symbol"
 msgstr "rÃ©adressage relatif gp 32bits rencontrÃ© pour un symbole externe"
 
-#: elf32-ppc.c:1741
+#: elf32-mips.c:2225
+#, c-format
+msgid "Unrecognised MIPS reloc number: %d"
+msgstr "NumÃ©ro de rÃ©adressage MIPS non reconnu: %d"
+
+#: elf32-moxie.c:137
+#, c-format
+msgid "%B: invalid Moxie reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage Moxie invalide: %d"
+
+#: elf32-msp430.c:648
+#, c-format
+msgid "%B: invalid MSP430X reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage MSP430X invalide: %d"
+
+#: elf32-msp430.c:658
+#, c-format
+msgid "%B: invalid MSP430 reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage MSP430 invalide: %d"
+
+#: elf32-msp430.c:836 elf32-msp430.c:1150
+msgid "Try enabling relaxation to avoid relocation truncations"
+msgstr "Essayez d'activer la relaxation pour Ã©viter des rÃ©adressages tronquÃ©s"
+
+#: elf32-msp430.c:1357
+msgid "internal error: branch/jump to an odd address detected"
+msgstr "erreur interne: branchement/saut vers une adresse impaire dÃ©tectÃ©"
+
+#: elf32-msp430.c:2354
+#, c-format
+msgid "Warning: %B: Unknown MSPABI object attribute %d"
+msgstr "Attention: %B: Attribut d'objet MSPBI %d inconnu"
+
+#: elf32-msp430.c:2447
+#, c-format
+msgid "error: %B uses %s instructions but %B uses %s"
+msgstr "erreur: %B utilise les instructions %s alors que %B utilise %s"
+
+#: elf32-msp430.c:2459
+#, c-format
+msgid "error: %B uses the %s code model whereas %B uses the %s code model"
+msgstr "erreur: %B utilise le modÃ¨le de code %s alors que %B utilise le modÃ¨le de code %s"
+
+#: elf32-msp430.c:2471
+#, c-format
+msgid "error: %B uses the large code model but %B uses MSP430 instructions"
+msgstr "erreur: %B utilise le grand modÃ¨le de code alors que %B utilise les instructions MSP430"
+
+#: elf32-msp430.c:2482
+#, c-format
+msgid "error: %B uses the %s data model whereas %B uses the %s data model"
+msgstr "erreur: %B utilise le modÃ¨le de donnÃ©es %s alors que %B utilise le modÃ¨le de donnÃ©es %s"
+
+#: elf32-msp430.c:2494
+#, c-format
+msgid "error: %B uses the small code model but %B uses the %s data model"
+msgstr "erreur: %B utilise le petit modÃ¨le de code alors que %B utilise le modÃ¨le de donnÃ©es %s"
+
+#: elf32-msp430.c:2506
+#, c-format
+msgid "error: %B uses the %s data model but %B only uses MSP430 instructions"
+msgstr "erreur: %B utilise le modÃ¨le de donnÃ©es %s alors que %B utilise uniquement des instructions MSP430"
+
+#: elf32-mt.c:242
+#, c-format
+msgid "%B: invalid MT reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage MT invalide: %d"
+
+#: elf32-nds32.c:2974
+#, c-format
+msgid "%B: invalid NDS32 reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage NDS32 invalide: %d"
+
+#: elf32-nds32.c:3309
+msgid "error: Can't find symbol: _SDA_BASE_."
+msgstr "erreur: Le symbole ne peut Ãªtre trouvÃ©: _SDA_BASE_."
+
+#: elf32-nds32.c:4484 elf32-nds32.c:11978
+msgid "%B: error: Cannot set _ITB_BASE_"
+msgstr "%B: erreur: Ne peut dÃ©finir _ITB_BASE_"
+
+#: elf32-nds32.c:4492
+msgid "error: IFC relocation error."
+msgstr "erreur: erreur de rÃ©adressage IFC."
+
+#: elf32-nds32.c:4526
+#, c-format
+msgid "%B: error: unknown relocation type %d."
+msgstr "%B: erreur: type de rÃ©adressage %d inconnu."
+
+#: elf32-nds32.c:4972
+msgid "%B: warning: cannot deal R_NDS32_25_ABS_RELA in shared mode."
+msgstr "%B: attention: ne peut gÃ©rer R_NDS32_25_ABS_RELA en mode partagÃ©."
+
+#: elf32-nds32.c:5106
+msgid "%B: warning: unaligned access to GOT entry."
+msgstr "%B: attention: accÃ¨s non alignÃ© Ã  une entrÃ©e GOT."
+
+#: elf32-nds32.c:5148
+msgid "%B: warning: relocate SDA_BASE failed."
+msgstr "%B: attention: rÃ©adressage SDA_BASE a Ã©chouÃ©."
+
+#: elf32-nds32.c:5170
+#, c-format
+msgid "%B(%A): warning: unaligned small data access of type %d."
+msgstr "%B(%A): attention: accÃ¨s non alignÃ© Ã  une petite donnÃ©e de type %d."
+
+#: elf32-nds32.c:5918
+#, c-format
+msgid "%B: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte"
+msgstr "%B: Taille de vecteur ISR en dÃ©saccord avec les modules prÃ©cÃ©dents: prÃ©cÃ©dent a %u octets; actuel a %u octets"
+
+#: elf32-nds32.c:5962
+msgid "%B: warning: Endian mismatch with previous modules."
+msgstr "%B: attention: L'ordre des octets n'est pas le mÃªme que dans les modules prÃ©cÃ©dents."
+
+#: elf32-nds32.c:5972
+msgid "%B: warning: Older version of object file encountered, Please recompile with current tool chain."
+msgstr "%B: attention: Version plus ancienne du fichier objet rencontrÃ©e. Veuillez recompiler avec la chaÃ®ne d'outils actuelle."
+
+#: elf32-nds32.c:6050
+msgid "%B: error: ABI mismatch with previous modules."
+msgstr "%B: erreur: non concordance de l'ABI avec les modules prÃ©cÃ©dents."
+
+#: elf32-nds32.c:6061
+msgid "%B: error: Instruction set mismatch with previous modules."
+msgstr "%B: erreur: Jeu d'instructions ne concorde par avec les modules prÃ©cÃ©dents."
+
+#: elf32-nds32.c:6087
+#, c-format
+msgid "%B: warning: Incompatible elf-versions %s and  %s."
+msgstr "%B: attention: Versions elf %s et %s non compatibles."
+
+#: elf32-nds32.c:6117
+#, c-format
+msgid ": n1 instructions"
+msgstr ": instructions n1"
+
+#: elf32-nds32.c:6120
+#, c-format
+msgid ": n1h instructions"
+msgstr ": instructions n1h"
+
+#: elf32-nds32.c:8730
+msgid "%B: Error: search_nds32_elf_blank reports wrong node\n"
+msgstr "%B: Erreur: search_nds32_elf_blank rapporte le mauvais nÅ“ud\n"
+
+#: elf32-nds32.c:8989
+#, c-format
+msgid "%B: warning: %s points to unrecognized reloc at 0x%lx."
+msgstr "%B: attention: %s pointe vers le rÃ©adressage non reconnu Ã  0x%lx."
+
+#: elf32-nds32.c:11850 elf32-nds32.c:11867
+msgid "error: Jump IFC Fail."
+msgstr "erreur: Saut IFC a Ã©chouÃ©."
+
+#: elf32-nds32.c:12724
+#, c-format
+msgid "%B: Nested OMIT_FP in %A."
+msgstr "%B: OMIT_FP imbriquÃ©s dans %A."
+
+#: elf32-nds32.c:12743
+#, c-format
+msgid "%B: Unmatched OMIT_FP in %A."
+msgstr "%B: OMIT_FP non appariÃ© dans %A."
+
+#: elf32-nds32.c:13026 reloc.c:8231
+#, c-format
+msgid "%X%P: %B(%A): relocation \"%R\" goes out of range\n"
+msgstr "%X%P: %B(%A): rÃ©adressage Â«Â %RÂ Â» va en dehors des limites\n"
+
+#: elf32-nds32.c:14802
+msgid "Linker: cannot init ex9 hash table error \n"
+msgstr "Lieur: ne peut initialiser la table de hachage ex9 \n"
+
+#: elf32-nds32.c:15211 elf32-nds32.c:15225
+msgid "Linker: error cannot fixed ex9 relocation \n"
+msgstr "Lieur: ne peut rÃ©adresser ex9 fixÃ© \n"
+
+#: elf32-nds32.c:15436
+#, c-format
+msgid "%B: warning: unaligned small data access. For entry: {%d, %d, %d}, addr = 0x%x, align = 0x%x."
+msgstr "%B: attention: accÃ¨s non alignÃ© Ã  une petite donnÃ©e. Pour l'entrÃ©e: {%d, %d, %d}, adr = 0x%x, alignement = 0x%x."
+
+#: elf32-nds32.c:15469
+msgid "%P%F: failed creating ex9.it %s hash table: %E\n"
+msgstr "%P%F: Ã©chec de la crÃ©ation de la table de hachage ex9.it %s: %E\n"
+
+#: elf32-nios2.c:2949
+msgid "error: %B: Big-endian R2 is not supported."
+msgstr "erreur: %B: R2 gros boutiste n'est pas supportÃ©."
+
+#: elf32-nios2.c:3830
+#, c-format
+msgid "global pointer relative relocation at address 0x%08x when _gp not defined\n"
+msgstr "rÃ©adressage relatif au pointeur global Ã  l'adresse 0x%08x sans que _gp ne soit dÃ©fini\n"
+
+#: elf32-nios2.c:3850
+#, c-format
+msgid "Unable to reach %s (at 0x%08x) from the global pointer (at 0x%08x) because the offset (%d) is out of the allowed range, -32678 to 32767.\n"
+msgstr "Impossible d'atteindre %s (Ã  0x%08x) depuis le pointeur global (Ã  0x%08x) car l'offset (%d) est en dehors de la plage autorisÃ©e -32768 Ã  32767.\n"
+
+#: elf32-nios2.c:4372
+#, c-format
+msgid "%B(%A+0x%lx): R_NIOS2_TLS_LE16 relocation not permitted in shared object"
+msgstr "%B(%A+0x%lx): rÃ©adressage R_NIOS2_TLS_LE16 pas permis dans un objet partagÃ©"
+
+#: elf32-nios2.c:4500 elf32-pru.c:816
+msgid "relocation out of range"
+msgstr "rÃ©adressage hors limite"
+
+#: elf32-nios2.c:4510 elf32-pru.c:826 elf32-tic6x.c:2747
+msgid "dangerous relocation"
+msgstr "rÃ©adressage dangereux"
+
+#: elf32-nios2.c:5491
+#, c-format
+msgid "dynamic variable `%s' is zero size"
+msgstr "la variable dynamique Â«Â %sÂ Â» a une taille nulle"
+
+#: elf32-or1k.c:735
+#, c-format
+msgid "%B: invalid OR1K reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage OR1K invalide: %d"
+
+#: elf32-or1k.c:985
+msgid "internal error: addend should be zero for R_OR1K_GOT16"
+msgstr "erreur interne: opÃ©rande devrait Ãªtre zÃ©ro pour R_OR1K_GOT16"
+
+#: elf32-or1k.c:1094
+msgid "%B: support for local dynamic not implemented"
+msgstr "%B: support pour les dynamiques locaux pas implÃ©mentÃ©e"
+
+#: elf32-or1k.c:1229
+msgid "%B: will not resolve runtime TLS relocation"
+msgstr "%B: le rÃ©adressage TLS ne sera pas rÃ©solu Ã  l'exÃ©cution"
+
+#: elf32-or1k.c:1599
+#, c-format
+msgid "%B: bad relocation section name `%s'"
+msgstr "%B: nom de section de rÃ©adressage erronÃ© Â«Â %sÂ Â»"
+
+#: elf32-or1k.c:2704
+msgid "%B: EF_OR1K_NODELAY flag mismatch with previous modules"
+msgstr "%B: dÃ©saccord du fanion EF_OR1K_NODELAY avec les modules prÃ©cÃ©dents"
+
+#: elf32-pj.c:325
+#, c-format
+msgid "%B: unrecognised PicoJava reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage PicoJava non reconnu: %d"
+
+#: elf32-ppc.c:2062
+#, c-format
+msgid "%B: unrecognised PPC reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage PPC non reconnu: %d"
+
+#: elf32-ppc.c:2147
 #, c-format
 msgid "generic linker can't handle %s"
 msgstr "liaison gÃ©nÃ©rique ne peut traiter %s"
 
-#: elf32-ppc.c:2184
+#: elf32-ppc.c:2781
+#, c-format
 msgid "corrupt %s section in %B"
 msgstr "section %s corrompue dans %B"
 
-#: elf32-ppc.c:2203
+#: elf32-ppc.c:2801
+#, c-format
 msgid "unable to read in %s section from %B"
 msgstr "incapable de lire dans la section %s Ã  partir de %B"
 
-#: elf32-ppc.c:2244
+#: elf32-ppc.c:2843
+#, c-format
 msgid "warning: unable to set size of %s section in %B"
 msgstr "attention: incapable d'initialiser la taille de la section %s dans %B"
 
-#: elf32-ppc.c:2294
+#: elf32-ppc.c:2893
 msgid "failed to allocate space for new APUinfo section."
 msgstr "Ã©chec d'allocation d'espace pour une nouvelle section APUinfo"
 
-#: elf32-ppc.c:2313
+#: elf32-ppc.c:2912
 msgid "failed to compute new APUinfo section."
 msgstr "Ã©chec d'Ã©valuation de la nouvelle section APUinfo"
 
-#: elf32-ppc.c:2316
+#: elf32-ppc.c:2915
 msgid "failed to install new APUinfo section."
 msgstr "Ã©chec d'installation de la nouvelle section APUinfo"
 
-#: elf32-ppc.c:3356
+#: elf32-ppc.c:3975
+#, c-format
 msgid "%B: relocation %s cannot be used when making a shared object"
 msgstr "%B: rÃ©adressage %s ne peut Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©"
 
-#. It does not make sense to have a procedure linkage
-#. table entry for a local symbol.
-#: elf32-ppc.c:3700
-msgid "%P: %H: %s reloc against local symbol\n"
-msgstr "%P: %H: %s rÃ©adressÃ© par rapport Ã  un symbole local\n"
+#: elf32-ppc.c:4329 elf64-ppc.c:5591
+#, c-format
+msgid "%H: %s reloc against local symbol\n"
+msgstr "%H: %s est rÃ©adressÃ© par rapport Ã  un symbole local\n"
 
-#: elf32-ppc.c:4039 elf32-ppc.c:4054 elfxx-mips.c:13651 elfxx-mips.c:13677
-#: elfxx-mips.c:13699 elfxx-mips.c:13725
+#: elf32-ppc.c:4691 elf32-ppc.c:4695
+#, c-format
 msgid "Warning: %B uses hard float, %B uses soft float"
 msgstr "Attention: %B utilise la virgule flottante matÃ©rielle, %B utilise la virgule flottante logicielle"
 
-#: elf32-ppc.c:4042 elf32-ppc.c:4046
+#: elf32-ppc.c:4699 elf32-ppc.c:4704
+#, c-format
 msgid "Warning: %B uses double-precision hard float, %B uses single-precision hard float"
 msgstr "Attention: %B utilise la virgule flottante double prÃ©cision matÃ©rielle, %B utilise la virgule flottante simple prÃ©cision matÃ©rielle"
 
-#: elf32-ppc.c:4050
-msgid "Warning: %B uses soft float, %B uses single-precision hard float"
-msgstr "Attention: %B utilise la virgule flottante logicielle, %B utilise la virgule flottante simple prÃ©cision matÃ©rielle"
-
-#: elf32-ppc.c:4057 elf32-ppc.c:4061 elfxx-mips.c:13631 elfxx-mips.c:13635
-msgid "Warning: %B uses unknown floating point ABI %d"
-msgstr "Attention: %B utilise l'ABI inconnu %d pour la gestion des virgules flottantes"
-
-#: elf32-ppc.c:4103 elf32-ppc.c:4107
-msgid "Warning: %B uses unknown vector ABI %d"
-msgstr "Attention: %B utilise l'ABI inconnu %d pour les vecteurs"
-
-#: elf32-ppc.c:4111
-msgid "Warning: %B uses vector ABI \"%s\", %B uses \"%s\""
-msgstr "Attention: %B utilise l'ABI de vecteurs Â«%sÂ», %B utilise Â«%sÂ»"
+#: elf32-ppc.c:4719 elf32-ppc.c:4724
+#, c-format
+msgid "Warning: %B uses 64-bit long double, %B uses 128-bit long double"
+msgstr "Attention: %B utilise un double long 64 bits, %B utilise un double long de 128 bits"
+
+#: elf32-ppc.c:4729 elf32-ppc.c:4734
+#, c-format
+msgid "Warning: %B uses IBM long double, %B uses IEEE long double"
+msgstr "Attention: %B utilise un double long IBM, %B utilise un double long IEEE"
+
+#: elf32-ppc.c:4785 elf32-ppc.c:4790
+#, c-format
+msgid "Warning: %B uses AltiVec vector ABI, %B uses SPE vector ABI"
+msgstr "Attention: %B utilise l'ABI de vecteurs AltiVec, %B utilise l'ABI de vecteurs SPE"
 
-#: elf32-ppc.c:4128 elf32-ppc.c:4131
+#: elf32-ppc.c:4813 elf32-ppc.c:4818
+#, c-format
 msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory"
 msgstr "Attention: %B utilise r3/r4 pour les retours de petites structures, %B utilise la mÃ©moire"
 
-#: elf32-ppc.c:4134 elf32-ppc.c:4138
-msgid "Warning: %B uses unknown small structure return convention %d"
-msgstr "Attention: %B utilise la convention inconnue %d pour le retour des petites structures"
-
-#: elf32-ppc.c:4192
+#: elf32-ppc.c:4873
 msgid "%B: compiled with -mrelocatable and linked with modules compiled normally"
 msgstr "%B: compilÃ© avec -mrelocatable et fait l'Ã©dition de lien avec les modules compilÃ©s normalement"
 
-#: elf32-ppc.c:4200
+#: elf32-ppc.c:4881
 msgid "%B: compiled normally and linked with modules compiled with -mrelocatable"
 msgstr "%B: compilÃ© normalement et fait l'Ã©dition de lien avec les modules compilÃ©s avec -mrelocatable"
 
-#: elf32-ppc.c:4309
+#: elf32-ppc.c:4909
+#, c-format
+msgid "%B: uses different e_flags (%#x) fields than previous modules (%#x)"
+msgstr "%B: utilise des champs e_flags (%#x) diffÃ©rents des modules prÃ©cÃ©dents (%#x)"
+
+#: elf32-ppc.c:4950
+#, c-format
+msgid "%B(%A+0x%lx): expected 16A style relocation on 0x%08x insn"
+msgstr "%B(%A+0x%lx): rÃ©adressage du style 16A attendu sur l'insn 0x%08x"
+
+#: elf32-ppc.c:4969
+#, c-format
+msgid "%B(%A+0x%lx): expected 16D style relocation on 0x%08x insn"
+msgstr "%B(%A+0x%lx): rÃ©adressage du style 16D attendu sur l'insn 0x%08x"
+
+#: elf32-ppc.c:5043
 msgid "%P: bss-plt forced due to %B\n"
 msgstr "%P: bss-plt forcÃ© Ã  cause de %B\n"
 
-#: elf32-ppc.c:4312
+#: elf32-ppc.c:5046
 msgid "%P: bss-plt forced by profiling\n"
 msgstr "%P: bss-plt forcÃ© par le profilage\n"
 
@@ -1982,681 +3168,1129 @@ msgstr "%P: bss-plt forcÃ© par le profil
 #. could just mark this symbol to exclude it
 #. from tls optimization but it's safer to skip
 #. the entire optimization.
-#: elf32-ppc.c:4809 elf64-ppc.c:7858
+#: elf32-ppc.c:5544 elf64-ppc.c:8798
+#, c-format
 msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
 msgstr "%H l'argument a perdu __tls_get_addr, optimisation TLS dÃ©sactivÃ©e\n"
 
-#: elf32-ppc.c:5044 elf64-ppc.c:6528
-msgid "%P: dynamic variable `%s' is zero size\n"
-msgstr "%P: la variable dynamique Â«Â %sÂ Â» a une taille nulle\n"
+#: elf32-ppc.c:8249
+msgid "%H: fixup branch overflow\n"
+msgstr "%H: dÃ©bordement du branchement de correction\n"
 
-#: elf32-ppc.c:7263 elf64-ppc.c:12675
+#: elf32-ppc.c:8289 elf32-ppc.c:8324
+#, c-format
+msgid "%H: error: %s with unexpected instruction %x\n"
+msgstr "%H: erreur: %s avec l'instruction inattendue %x\n"
+
+#: elf32-ppc.c:8380
+#, c-format
+msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
+msgstr "%X%H: bss-plt -fPIC ifunc %s non supportÃ©\n"
+
+#: elf32-ppc.c:8434
+#, c-format
 msgid "%P: %B: unknown relocation type %d for symbol %s\n"
 msgstr "%P: %B: type de rÃ©adressage %d inconnu pour le symbole %s\n"
 
-#: elf32-ppc.c:7524
-msgid "%P: %H: non-zero addend on %s reloc against `%s'\n"
-msgstr "%P: %H: opÃ©rande non nul sur le rÃ©adressage %s par rapport Ã  Â«Â %sÂ Â»\n"
-
-#: elf32-ppc.c:7720 elf64-ppc.c:13181
-msgid "%P: %H: relocation %s for indirect function %s unsupported\n"
-msgstr "%P: %H: rÃ©adressage %s non supportÃ© pour la fonction indirecte %s\n"
+#: elf32-ppc.c:8723
+#, c-format
+msgid "%H: non-zero addend on %s reloc against `%s'\n"
+msgstr "%H: opÃ©rande non nul sur le rÃ©adressage %s par rapport Ã  Â«Â %sÂ Â»\n"
 
-#: elf32-ppc.c:7948 elf32-ppc.c:7978 elf32-ppc.c:8025
+#. @local on an ifunc does not really make sense since
+#. the ifunc resolver can take you anywhere.  More
+#. seriously, calls to ifuncs must go through a plt call
+#. stub, and for pic the plt call stubs uses r30 to
+#. access the PLT.  The problem is that a call that is
+#. local won't have the +32k reloc addend trick marking
+#. -fPIC code, so the linker won't know whether r30 is
+#. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section.
+#: elf32-ppc.c:8755
+#, c-format
+msgid "%X%H: @local call to ifunc %s\n"
+msgstr "%X%H: appel @local Ã  ifunc %s\n"
+
+#: elf32-ppc.c:8935
+#, c-format
+msgid "%H: relocation %s for indirect function %s unsupported\n"
+msgstr "%H: rÃ©adressage %s non supportÃ© pour la fonction indirecte %s\n"
+
+#: elf32-ppc.c:9232 elf32-ppc.c:9263 elf32-ppc.c:9354
+#, c-format
 msgid "%P: %B: the target (%s) of a %s relocation is in the wrong output section (%s)\n"
 msgstr "%P: %B: la cible (%s) d'un rÃ©adressage %s est dans la mauvaise section de sortie (%s)\n"
 
-#: elf32-ppc.c:8097
+#: elf32-ppc.c:9442
+#, c-format
+msgid "%B: the target (%s) of a %s relocation is in the wrong output section (%s)"
+msgstr "%B: la cible (%s) d'un rÃ©adressage %s est dans la mauvaise section de sortie (%s)"
+
+#: elf32-ppc.c:9546
+#, c-format
 msgid "%P: %B: relocation %s is not yet supported for symbol %s\n"
 msgstr "%P: %B: rÃ©adressage %s n'est pas encore supportÃ© pour le symbole %s\n"
 
-#: elf32-ppc.c:8158 elf64-ppc.c:13467
-msgid "%P: %H: unresolvable %s relocation against symbol `%s'\n"
-msgstr "%P: %H: rÃ©adressage %s sans solution par rapport au symbole Â«Â %sÂ Â»\n"
-
-#: elf32-ppc.c:8205 elf64-ppc.c:13512
-msgid "%P: %H: %s reloc against `%s': error %d\n"
-msgstr "%P: %H: rÃ©adressage %s vers Â«Â %sÂ Â»: erreur %d\n"
+#: elf32-ppc.c:9631
+#, c-format
+msgid "%H: error: %s against `%s' not a multiple of %u\n"
+msgstr "%H: erreur: %s par rapport Ã  Â«Â %sÂ Â» n'est pas un multiple de %u\n"
+
+#: elf32-ppc.c:9660
+#, c-format
+msgid "%H: unresolvable %s relocation against symbol `%s'\n"
+msgstr "%H: rÃ©adressage %s sans solution par rapport au symbole Â«Â %sÂ Â»\n"
 
-#: elf32-ppc.c:8696
+#: elf32-ppc.c:9741
+#, c-format
+msgid "%H: %s reloc against `%s': error %d\n"
+msgstr "%H: rÃ©adressage %s vers Â«Â %sÂ Â»: erreur %d\n"
+
+#: elf32-ppc.c:10505 elf64-ppc.c:15719
+msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n"
+msgstr "%X%P: les rÃ©adressages de textes et les fonctions indirectes GNU rÃ©sulteront en un crash Ã  l'exÃ©cution\n"
+
+#: elf32-ppc.c:10509 elf64-ppc.c:15723
+msgid "%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime\n"
+msgstr "%P: attention: les rÃ©adressages de textes et les fonctions indirectes GNU pourraient rÃ©sulter en un crash Ã  l'exÃ©cution\n"
+
+#: elf32-ppc.c:10554
+#, c-format
 msgid "%P: %s not defined in linker created %s\n"
 msgstr "%P: %s pas dÃ©fini dans %s crÃ©Ã© par l'Ã©diteur de liens\n"
 
-#: elf32-rx.c:563
+#: elf32-rl78.c:291
+#, c-format
+msgid "%B: invalid RL78 reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage RL78 invalide: %d"
+
+#: elf32-rl78.c:369
+msgid "Internal Error: RL78 reloc stack overflow"
+msgstr "Erreur interne: dÃ©bordement de la pile de rÃ©adressages RL78"
+
+#: elf32-rl78.c:380
+msgid "Internal Error: RL78 reloc stack underflow"
+msgstr "Erreur interne: dÃ©bordement par le bas de la pile de rÃ©adressages RL78"
+
+#: elf32-rl78.c:1049
+msgid "Warning: RL78_SYM reloc with an unknown symbol"
+msgstr "Attention: RÃ©adressage RL78_SYM avec un symbole inconnu"
+
+#: elf32-rl78.c:1080 elf32-rx.c:1434
+#, c-format
+msgid "%B(%A): error: call to undefined function '%s'"
+msgstr "%B(%A): erreur: appel Ã  la fonction non dÃ©finie Â«Â %sÂ Â»"
+
+#: elf32-rl78.c:1201
+#, c-format
+msgid "RL78 ABI conflict: G10 file %B cannot be linked with %s file %B"
+msgstr "Conflit ABI RL78: Le fichier G10 %B ne peut pas Ãªtre liÃ© avec %s fichier %B"
+
+# les deux %s sont des noms de processeurs
+#: elf32-rl78.c:1218
+#, c-format
+msgid "RL78 ABI conflict: cannot link %s file %B with %s file %B"
+msgstr "Conflit d'ABI RL78: ne peut lier le fichier %2$B pour %1$s avec le fichier %4$B pour %3$s"
+
+#: elf32-rl78.c:1227
+msgid "RL78 merge conflict: cannot link 32-bit and 64-bit objects together"
+msgstr "Conflit de fusion RL78: ne peut lier ensemble un objet 32 bits et un objet 64 bits"
+
+#: elf32-rl78.c:1231 elf32-rl78.c:1235
+#, c-format
+msgid "- %B is 64-bit, %B is not"
+msgstr "- %B est 64 bits, %B ne l'est pas"
+
+#: elf32-rl78.c:1262
+#, c-format
+msgid " [64-bit doubles]"
+msgstr " [doubles de 64 bits]"
+
+#: elf32-rx.c:313
+#, c-format
+msgid "%B: invalid RX reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage RX invalide: %d"
+
+#: elf32-rx.c:594
+#, c-format
+msgid "%B:%A: table entry %s outside table"
+msgstr "%B:%A: l'entrÃ©e %s de la table est en dehors de la table"
+
+#: elf32-rx.c:601
+#, c-format
+msgid "%B:%A: table entry %s not word-aligned within table"
+msgstr "%B:%A: l'entrÃ©e %s de la table n'est pas alignÃ©e sur un mot dans la table"
+
+#: elf32-rx.c:667
+#, c-format
 msgid "%B:%A: Warning: deprecated Red Hat reloc "
-msgstr "%B:%A: Attention: relocalisation Red Hat rÃ©prouvÃ©e "
+msgstr "%B:%A: Attention: rÃ©adressage Red Hat rÃ©prouvÃ©e "
 
 #. Check for unsafe relocs in PID mode.  These are any relocs where
 #. an absolute address is being computed.  There are special cases
 #. for relocs against symbols that are known to be referenced in
 #. crt0.o before the PID base address register has been initialised.
-#: elf32-rx.c:581
+#: elf32-rx.c:686
+#, c-format
 msgid "%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)"
 msgstr "%B(%A): rÃ©adressage PID %s non sÃ»r Ã  0x%08lx (sur %s dans %s)"
 
-#: elf32-rx.c:1157
+#: elf32-rx.c:1266
 msgid "Warning: RX_SYM reloc with an unknown symbol"
 msgstr "Attention: Relocalistaion RX_SYM avec un symbole inconnu"
 
-#: elf32-rx.c:1324
-msgid "%B(%A): error: call to undefined function '%s'"
-msgstr "%B(%A): erreur: appel Ã  la fonction non dÃ©finie Â«%sÂ»"
-
-#: elf32-rx.c:1338
-msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area"
-msgstr "%B(%A): attention: accÃ¨s non alignÃ© au symbole Â«%sÂ» dans la zone des petites donnÃ©es"
-
-#: elf32-rx.c:1342
-msgid "%B(%A): internal error: out of range error"
-msgstr "%B(%A): erreur interne: hors limite"
-
-#: elf32-rx.c:1346
-msgid "%B(%A): internal error: unsupported relocation error"
-msgstr "%B(%A): erreur interne: rÃ©adressage non supportÃ©"
+#: elf32-rx.c:3145
+msgid "There is a conflict merging the ELF header flags from %B"
+msgstr "Il y a un conflit en fusionnant les fanions d'en-tÃªtes ELF de %B"
 
-#: elf32-rx.c:1350
-msgid "%B(%A): internal error: dangerous relocation"
-msgstr "%B(%A): erreur interne: rÃ©adressage dangereux"
+#: elf32-rx.c:3148
+#, c-format
+msgid "  the input  file's flags: %s"
+msgstr "  les fanions du fichier d'entrÃ©e: %s"
 
-#: elf32-rx.c:1354
-msgid "%B(%A): internal error: unknown error"
-msgstr "%B(%A): erreur interne: erreur inconnue"
+#: elf32-rx.c:3150
+#, c-format
+msgid "  the output file's flags: %s"
+msgstr "  les fanions du fichier de sortie: %s"
 
-#: elf32-rx.c:3004
+#: elf32-rx.c:3757
 #, c-format
-msgid " [64-bit doubles]"
-msgstr " [doubles de 64 bits]"
+msgid "%B:%A: table %s missing corresponding %s"
+msgstr "%B:%A: la table %s n'a pas de %s correspondant"
 
-#: elf32-rx.c:3006
+#: elf32-rx.c:3765
 #, c-format
-msgid " [dsp]"
-msgstr " [dsp]"
+msgid "%B:%A: %s and %s must be in the same input section"
+msgstr "%B:%A: %s et %s doivent Ãªtre dans la mÃªme section d'entrÃ©e"
 
-#: elf32-s390.c:2200 elf64-s390.c:2187
+#: elf32-s390.c:2310 elf64-s390.c:2257
+#, c-format
 msgid "%B(%A+0x%lx): invalid instruction for TLS relocation %s"
 msgstr "%B(%A+0x%lx): instruction invalide pour le rÃ©adressage TLS %s"
 
-#: elf32-score.c:1520 elf32-score7.c:1379 elfxx-mips.c:3435
+#: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3756
 msgid "not enough GOT space for local GOT entries"
 msgstr "pas suffisamment d'espace GOT pour les entrÃ©es locales GOT"
 
-#: elf32-score.c:2742
+#: elf32-score.c:2744
 msgid "address not word align"
 msgstr "adresse pas alignÃ©e sur un mot"
 
-#: elf32-score.c:2827 elf32-score7.c:2631
+#: elf32-score.c:2825 elf32-score7.c:2630
 #, c-format
-msgid "%s: Malformed reloc detected for section %s"
-msgstr "%s: relocalisation mal composÃ©e dÃ©tectÃ©e dans la section %s"
+msgid "%B: Malformed reloc detected for section %A"
+msgstr "%B: RÃ©adressage mal composÃ© dÃ©tectÃ© dans la section %A"
 
-#: elf32-score.c:2878 elf32-score7.c:2682
+#: elf32-score.c:2883 elf32-score7.c:2688
+#, c-format
 msgid "%B: CALL15 reloc at 0x%lx not against global symbol"
-msgstr "%B: appel CALL15 de relocalisation Ã  0x%lx n'est pas appliquÃ© sur un symbole global"
+msgstr "%B: appel CALL15 de rÃ©adressage Ã  0x%lx n'est pas appliquÃ© sur un symbole global"
 
-#: elf32-score.c:3997 elf32-score7.c:3803
+#: elf32-score.c:4005 elf32-score7.c:3810
 #, c-format
 msgid " [pic]"
 msgstr " [pic]"
 
-#: elf32-score.c:4001 elf32-score7.c:3807
+#: elf32-score.c:4009 elf32-score7.c:3814
 #, c-format
 msgid " [fix dep]"
 msgstr " [fix dep]"
 
-#: elf32-score.c:4043 elf32-score7.c:3849
+#: elf32-score.c:4052 elf32-score7.c:3857
 msgid "%B: warning: linking PIC files with non-PIC files"
 msgstr "%B: attention: Ã©dition de liens des fichiers PIC avec des fichiers non PIC"
 
 #: elf32-sh-symbian.c:130
+#, c-format
 msgid "%B: IMPORT AS directive for %s conceals previous IMPORT AS"
 msgstr "%B: la directive IMPORT AS de %s masque l'IMPORT AS prÃ©cÃ©dent"
 
-#: elf32-sh-symbian.c:383
+#: elf32-sh-symbian.c:384
+#, c-format
 msgid "%B: Unrecognised .directive command: %s"
 msgstr "%B: Commande .directive non reconnue: %s"
 
-#: elf32-sh-symbian.c:504
+#: elf32-sh-symbian.c:502
+#, c-format
 msgid "%B: Failed to add renamed symbol %s"
 msgstr "%B: Ã‰chec de l'ajout du symbole renommÃ© %s"
 
-#: elf32-sh.c:568
-msgid "%B: 0x%lx: warning: bad R_SH_USES offset"
-msgstr "%B: 0x%lx: attention: mauvais dÃ©calage pour R_SH_USES"
-
-#: elf32-sh.c:580
-msgid "%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"
-msgstr "%B: 0x%lx: attention: R_SH_USES pointe vers un insn inconnu 0x%x"
-
-#: elf32-sh.c:597
-msgid "%B: 0x%lx: warning: bad R_SH_USES load offset"
-msgstr "%B: 0x%lx: attention: mauvais dÃ©calage de chargement R_SH_USES"
-
-#: elf32-sh.c:612
-msgid "%B: 0x%lx: warning: could not find expected reloc"
-msgstr "%B: 0x%lx: attention: ne peut repÃ©rer la relocalisation attendue"
-
-#: elf32-sh.c:640
-msgid "%B: 0x%lx: warning: symbol in unexpected section"
-msgstr "%B: 0x%lx: attention: symbole dans une section inattendue"
-
-#: elf32-sh.c:766
-msgid "%B: 0x%lx: warning: could not find expected COUNT reloc"
-msgstr "%B: 0x%lx: attention: ne peut repÃ©rer le compteur de relocalisation attendu"
-
-#: elf32-sh.c:775
-msgid "%B: 0x%lx: warning: bad count"
-msgstr "%B: 0x%lx: attention: mauvais dÃ©compte"
-
-#: elf32-sh.c:1179 elf32-sh.c:1549
-msgid "%B: 0x%lx: fatal: reloc overflow while relaxing"
-msgstr "%B: 0x%lx: erreur fatale: dÃ©bordement de relocalisation lors des relÃ¢ches"
+#: elf32-sh.c:491
+#, c-format
+msgid "%B: unrecognised SH reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage SH non reconnu: %d"
 
-#: elf32-sh.c:4048 elf64-sh64.c:1514
+#: elf32-sh.c:3953 elf64-sh64.c:1508
 msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled"
 msgstr "STO_SH5_ISA32 inattendu sur le symbole local n'est pas traitÃ©"
 
-#: elf32-sh.c:4299
+#: elf32-sh.c:4206
+#, c-format
 msgid "%B: 0x%lx: fatal: unaligned branch target for relax-support relocation"
 msgstr "%B: 0x%lx: fatal: cible de branchement non alignÃ©e pour un rÃ©adressage de type relax-support"
 
-#: elf32-sh.c:4332 elf32-sh.c:4347
+#: elf32-sh.c:4240 elf32-sh.c:4256
+#, c-format
 msgid "%B: 0x%lx: fatal: unaligned %s relocation 0x%lx"
 msgstr "%B: 0x%lx: fatal: rÃ©adressage %s non alignÃ© 0x%lx"
 
-#: elf32-sh.c:4361
+#: elf32-sh.c:4271
+#, c-format
 msgid "%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32"
 msgstr "%B: 0x%lx: fatal: rÃ©adressage R_SH_PSHA %d pas dans l'intervalle -32..32"
 
-#: elf32-sh.c:4375
+#: elf32-sh.c:4286
+#, c-format
 msgid "%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32"
 msgstr "%B: 0x%lx: fatal: rÃ©adressage R_SH_PSHL %d n'est pas dans l'intervalle -32..32"
 
-#: elf32-sh.c:4519 elf32-sh.c:4989
+#: elf32-sh.c:4431 elf32-sh.c:4903
+#, c-format
 msgid "%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section"
-msgstr "%B(%A+0x%lx): impossible d'apporter des corrections Ã  Â«%sÂ» dans une section en lecture seule"
+msgstr "%B(%A+0x%lx): impossible d'apporter des corrections Ã  Â«Â %sÂ Â» dans une section en lecture seule"
 
-#: elf32-sh.c:5096
+#: elf32-sh.c:5005
+#, c-format
 msgid "%B(%A+0x%lx): %s relocation against external symbol \"%s\""
 msgstr "%B(%A+0x%lx): %s rÃ©adressage vers le symbole externe Â«Â %sÂ Â»"
 
-#: elf32-sh.c:5569
+#: elf32-sh.c:5469
 #, c-format
 msgid "%X%C: relocation to \"%s\" references a different segment\n"
 msgstr "%X%C: le rÃ©adressage vers Â«Â %sÂ Â» fait rÃ©fÃ©rence Ã  un segment diffÃ©rent\n"
 
-#: elf32-sh.c:5575
+#: elf32-sh.c:5476
 #, c-format
 msgid "%C: warning: relocation to \"%s\" references a different segment\n"
 msgstr "%C: attention: rÃ©adressage vers Â«Â %sÂ Â» fait rÃ©fÃ©rence Ã  un segment diffÃ©rent\n"
 
-#: elf32-sh.c:6353 elf32-sh.c:6436
+#: elf32-sh.c:6045 elf32-sh.c:6131
+#, c-format
 msgid "%B: `%s' accessed both as normal and FDPIC symbol"
-msgstr "%B: Â«%sÂ» accÃ©dÃ© Ã  la fois comme symbole normal et comme symbole FDPIC"
+msgstr "%B: Â«Â %sÂ Â» accÃ©dÃ© Ã  la fois comme symbole normal et comme symbole FDPIC"
 
-#: elf32-sh.c:6358 elf32-sh.c:6440
+#: elf32-sh.c:6051 elf32-sh.c:6136
+#, c-format
 msgid "%B: `%s' accessed both as FDPIC and thread local symbol"
-msgstr "%B: Â«%sÂ» accÃ©dÃ© Ã  la fois comme symbole FDPIC et comme symbole local au thread"
+msgstr "%B: Â«Â %sÂ Â» accÃ©dÃ© Ã  la fois comme symbole FDPIC et comme symbole local au thread"
 
-#: elf32-sh.c:6388
+#: elf32-sh.c:6082
 msgid "%B: Function descriptor relocation with non-zero addend"
 msgstr "%B: Descripteur de fonction rÃ©adressÃ© avec un opÃ©rande non nul"
 
-#: elf32-sh.c:6624 elf64-alpha.c:4652
+#: elf32-sh.c:6320 elf64-alpha.c:4757
+#, c-format
 msgid "%B: TLS local exec code cannot be linked into shared objects"
 msgstr "%B: code exÃ©cutable local TLS ne peut Ãªtre liÃ© en objets partagÃ©s"
 
-#: elf32-sh64.c:223 elf64-sh64.c:2318
+# %s sont Â«Â dspÂ Â» ou Â«Â floating pointÂ Â» non traduits
+#: elf32-sh.c:6435
 #, c-format
-msgid "%s: compiled as 32-bit object and %s is 64-bit"
-msgstr "%s: compilÃ© comme un objet de 32 bits et %s est de 64 bits"
+msgid "%B: uses %s instructions while previous modules use %s instructions"
+msgstr "%B: utilise les instructions %s tandis que les modules prÃ©cÃ©dents utilisent les instructions %s"
+
+#: elf32-sh.c:6447
+#, c-format
+msgid "internal error: merge of architecture '%s' with architecture '%s' produced unknown architecture"
+msgstr "erreur interne: la fusion de l'architecture Â«Â %sÂ Â» avec l'architecture Â«Â %sÂ Â» a produit une architecture inconnue"
+
+#: elf32-sh.c:6484
+msgid "%B: uses instructions which are incompatible with instructions used in previous modules"
+msgstr "%B: utilise des instructions qui sont incompatibles avec les instructions utilisÃ©es dans les modules prÃ©cÃ©dents"
 
-#: elf32-sh64.c:226 elf64-sh64.c:2321
+#: elf32-sh.c:6497
+msgid "%B: attempt to mix FDPIC and non-FDPIC objects"
+msgstr "%B: tentative de mÃ©langer des objets FDPIC et non-FDPIC"
+
+#: elf32-sh64.c:225 elf64-sh64.c:2277
 #, c-format
-msgid "%s: compiled as 64-bit object and %s is 32-bit"
-msgstr "%s: compilÃ© comme un objet de 64 bits et %s est de 32 bits"
+msgid "%B: compiled as 32-bit object and %B is 64-bit"
+msgstr "%B: compilÃ© comme un objet de 32 bits et %B est de 64 bits"
 
-#: elf32-sh64.c:228 elf64-sh64.c:2323
+#: elf32-sh64.c:229 elf64-sh64.c:2281
 #, c-format
-msgid "%s: object size does not match that of target %s"
-msgstr "%s: taille de l'objet ne concorde pas avec la taille de la cible %s"
+msgid "%B: compiled as 64-bit object and %B is 32-bit"
+msgstr "%B: compilÃ© comme un objet de 64 bits et %B est de 32 bits"
 
-#: elf32-sh64.c:451 elf64-sh64.c:2837
+#: elf32-sh64.c:232 elf64-sh64.c:2284
 #, c-format
-msgid "%s: encountered datalabel symbol in input"
-msgstr "%s: rencontre du symbole d'une Ã©tiquette de donnÃ©e dans l'entrÃ©e"
+msgid "%B: object size does not match that of target %B"
+msgstr "%B: taille de l'objet ne concorde pas avec la taille de la cible %B"
+
+#: elf32-sh64.c:455 elf64-sh64.c:2776
+msgid "%B: encountered datalabel symbol in input"
+msgstr "%B: rencontre du symbole d'une Ã©tiquette de donnÃ©e dans l'entrÃ©e"
 
-#: elf32-sh64.c:528
+#: elf32-sh64.c:531
 msgid "PTB mismatch: a SHmedia address (bit 0 == 1)"
 msgstr "Non concordance PTB: adresse SHmedia (bit 0 == 1)"
 
-#: elf32-sh64.c:531
+#: elf32-sh64.c:534
 msgid "PTA mismatch: a SHcompact address (bit 0 == 0)"
 msgstr "Non concordance PTA: adresse SHcompact (bit 0 == 0)"
 
-#: elf32-sh64.c:549
-#, c-format
-msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16"
-msgstr "%s: Erreur GAS: insn PTB inattendue avec R_SH_PT_16"
+#: elf32-sh64.c:550
+msgid "%B: GAS error: unexpected PTB insn with R_SH_PT_16"
+msgstr "%B: Erreur GAS: insn PTB inattendue avec R_SH_PT_16"
 
-#: elf32-sh64.c:598
+#: elf32-sh64.c:600
+#, c-format
 msgid "%B: error: unaligned relocation type %d at %08x reloc %p\n"
 msgstr "%B: erreur: type de rÃ©adressage %d non alignÃ© Ã  %08x rÃ©adressÃ© %p\n"
 
-#: elf32-sh64.c:674
-#, c-format
-msgid "%s: could not write out added .cranges entries"
-msgstr "%s: ne peut Ã©crire en sortie des entrÃ©es .cranges ajoutÃ©es"
+#: elf32-sh64.c:676
+msgid "%B: could not write out added .cranges entries"
+msgstr "%B: ne peut Ã©crire en sortie des entrÃ©es .cranges ajoutÃ©es"
+
+#: elf32-sh64.c:735
+msgid "%B: could not write out sorted .cranges entries"
+msgstr "%B: ne peut Ã©crire en sortie des entrÃ©es .cranges triÃ©es"
 
-#: elf32-sh64.c:734
-#, c-format
-msgid "%s: could not write out sorted .cranges entries"
-msgstr "%s: ne peut Ã©crire en sortie des entrÃ©es .cranges triÃ©es"
-
-#: elf32-sparc.c:90
+#: elf32-sparc.c:89
 msgid "%B: compiled for a 64 bit system and target is 32 bit"
 msgstr "%B: compilÃ© pour un systÃ¨me Ã  64 bits et la cible est de 32 bits"
 
-#: elf32-sparc.c:103
+#: elf32-sparc.c:102
 msgid "%B: linking little endian files with big endian files"
 msgstr "%B: Ã©dition de liens pour des fichiers Ã  octets de poids faible avec des fichiers Ã  octets de poids fort"
 
-#: elf32-spu.c:719
+#: elf32-spu.c:160
+#, c-format
+msgid "%B: unrecognised SPU reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage SPU non reconnu: %d"
+
+#: elf32-spu.c:726
 msgid "%X%P: overlay section %A does not start on a cache line.\n"
 msgstr "%X%P: recouvrement de la section %A ne dÃ©marre pas sur une ligne de cache.\n"
 
-#: elf32-spu.c:727
+#: elf32-spu.c:734
 msgid "%X%P: overlay section %A is larger than a cache line.\n"
 msgstr "%X%P: recouvrement de la section %A est plus grand que la ligne de cache.\n"
 
-#: elf32-spu.c:747
+#: elf32-spu.c:754
 msgid "%X%P: overlay section %A is not in cache area.\n"
 msgstr "%X%P: recouvrement de la section %A n'est pas dans une zone de cache.\n"
 
-#: elf32-spu.c:787
+#: elf32-spu.c:795
+#, c-format
 msgid "%X%P: overlay sections %A and %A do not start at the same address.\n"
 msgstr "%X%P: recouvrement des sections %A et %A ne commencent pas Ã  la mÃªme adresse.\n"
 
-#: elf32-spu.c:1011
+#: elf32-spu.c:1021
+#, c-format
 msgid "warning: call to non-function symbol %s defined in %B"
 msgstr "attention: appel au symbole %s dÃ©fini dans %B qui n'est pas une fonction"
 
-#: elf32-spu.c:1361
+#: elf32-spu.c:1371
+#, c-format
 msgid "%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n"
 msgstr "%A:0x%v le lrlive .brinfo (%u) diffÃ¨re de celui de l'analyse (%u)\n"
 
-#: elf32-spu.c:1880
+#: elf32-spu.c:1903
+#, c-format
 msgid "%B is not allowed to define %s"
 msgstr "%B ne peut pas dÃ©finir %s"
 
-#: elf32-spu.c:1888
+#: elf32-spu.c:1911
 #, c-format
 msgid "you are not allowed to define %s in a script"
 msgstr "vous ne pouvez pas dÃ©finir %s dans un script"
 
-#: elf32-spu.c:1922
+#: elf32-spu.c:1945
 #, c-format
 msgid "%s in overlay section"
 msgstr "%s dans une section de recouvrement"
 
-#: elf32-spu.c:1951
+#: elf32-spu.c:1974
 msgid "overlay stub relocation overflow"
 msgstr "dÃ©bordement du rÃ©adressage de l'Ã©bauche de recouvrement"
 
-#: elf32-spu.c:1960
+#: elf32-spu.c:1983
 msgid "stubs don't match calculated size"
 msgstr "taille des Ã©bauches ne concorde pas avec la taille calculÃ©e"
 
-#: elf32-spu.c:2542
+#: elf32-spu.c:2566
 #, c-format
 msgid "warning: %s overlaps %s\n"
 msgstr "attention: %s recouvre %s\n"
 
-#: elf32-spu.c:2558
+#: elf32-spu.c:2582
 #, c-format
 msgid "warning: %s exceeds section size\n"
 msgstr "attention: %s dÃ©passe la taille de la section\n"
 
-#: elf32-spu.c:2589
+#: elf32-spu.c:2614
+#, c-format
 msgid "%A:0x%v not found in function table\n"
 msgstr "%A:%0x%v pas trouvÃ© dans la table de fonctions\n"
 
-#: elf32-spu.c:2729
+#: elf32-spu.c:2755
+#, c-format
 msgid "%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete\n"
 msgstr "%B(%A+0x%v): appel Ã  la section non exÃ©cutable %B(%A), analyse incomplÃ¨te\n"
 
-#: elf32-spu.c:3297
+#: elf32-spu.c:3324
 #, c-format
 msgid "Stack analysis will ignore the call from %s to %s\n"
 msgstr "L'analyse de la pile ignorera l'appel de %s Ã  %s\n"
 
-#: elf32-spu.c:3988
-msgid "  %s: 0x%v\n"
-msgstr "  %s: 0x%v\n"
-
-#: elf32-spu.c:3989
-msgid "%s: 0x%v 0x%v\n"
-msgstr "%s: 0x%v 0x%v\n"
-
-#: elf32-spu.c:3994
+#: elf32-spu.c:4021
 msgid "  calls:\n"
 msgstr "  appels:\n"
 
-#: elf32-spu.c:4002
-#, c-format
-msgid "   %s%s %s\n"
-msgstr "   %s%s %s\n"
-
-#: elf32-spu.c:4307
+#: elf32-spu.c:4335
 #, c-format
 msgid "%s duplicated in %s\n"
 msgstr "%s dupliquÃ© dans %s\n"
 
-#: elf32-spu.c:4311
+#: elf32-spu.c:4339
 #, c-format
 msgid "%s duplicated\n"
 msgstr "%s dupliquÃ©\n"
 
-#: elf32-spu.c:4318
+#: elf32-spu.c:4346
 msgid "sorry, no support for duplicate object files in auto-overlay script\n"
 msgstr "dÃ©solÃ©, pas de support des fichiers objet dupliquÃ©s dans un script auto-overlay\n"
 
-#: elf32-spu.c:4359
+#: elf32-spu.c:4388
+#, c-format
 msgid "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store\n"
 msgstr "la taille de non recouvrement de 0x%v plus la taille maximum de recouvrement de 0x%v dÃ©passe l'espace local\n"
 
-#: elf32-spu.c:4514
+#: elf32-spu.c:4544
+#, c-format
 msgid "%B:%A%s exceeds overlay size\n"
 msgstr "%B:%A%s dÃ©passe la taille de recouvrement\n"
 
-#: elf32-spu.c:4676
+#: elf32-spu.c:4685
+msgid "%F%P: auto overlay error: %E\n"
+msgstr "%F%P: erreur d'auto recouvrement: %E\n"
+
+#: elf32-spu.c:4706
 msgid "Stack size for call graph root nodes.\n"
 msgstr "Taille de la pile des nÅ“uds racine du graph d'appel.\n"
 
-#: elf32-spu.c:4677
+#: elf32-spu.c:4707
 msgid ""
 "\n"
 "Stack size for functions.  Annotations: '*' max stack, 't' tail call\n"
 msgstr ""
 "\n"
-"Taille de la pile pour les fonctions.  Annotations: Â«*Â» pile max, Â«tÂ» appel de queue\n"
+"Taille de la pile pour les fonctions.  Annotations: Â«Â *Â Â» pile max, Â«Â tÂ Â» appel de queue\n"
 
-#: elf32-spu.c:4687
+#: elf32-spu.c:4717
 msgid "Maximum stack required is 0x%v\n"
 msgstr "Pile maximum requise est 0x%v\n"
 
-#: elf32-spu.c:4778
+#: elf32-spu.c:4736
+msgid "%X%P: stack/lrlive analysis error: %E\n"
+msgstr "%X%P: erreur d'analyse de pile/lrlive: %E\n"
+
+#: elf32-spu.c:4739
+msgid "%F%P: can not build overlay stubs: %E\n"
+msgstr "%F%P: ne peut construire les Ã©bauches de recouvrement: %E\n"
+
+#: elf32-spu.c:4808
 msgid "fatal error while creating .fixup"
 msgstr "erreur fatale lors de la crÃ©ation de .fixup"
 
-#: elf32-spu.c:5008
+#: elf32-spu.c:5043
+#, c-format
 msgid "%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'"
 msgstr "%B(%A+0x%lx): rÃ©adressage %s sans solution vers le symbole Â«Â %sÂ Â»"
 
-#: elf32-tic6x.c:1602
+#: elf32-tic6x.c:1596
 msgid "warning: generating a shared library containing non-PIC code"
 msgstr "attention: production d'une librairie partagÃ©e contenant du code non-PIC"
 
-#: elf32-tic6x.c:1607
+#: elf32-tic6x.c:1601
 msgid "warning: generating a shared library containing non-PID code"
 msgstr "attention: production d'une librairie partagÃ©e contenant du code non-PID"
 
-#: elf32-tic6x.c:2541
+#: elf32-tic6x.c:2525
 msgid "%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined"
 msgstr "%B: rÃ©adressage relatif Ã  SB mais __c6xabi_DSBT_BASE n'est pas dÃ©fini"
 
-#: elf32-tic6x.c:2761
-msgid "dangerous relocation"
-msgstr "rÃ©adressage dangereux"
-
-#: elf32-tic6x.c:3733
+#: elf32-tic6x.c:3651
+#, c-format
 msgid "%B: error: unknown mandatory EABI object attribute %d"
 msgstr "%B: erreur: l'attribut d'objet EABI obligatoire %d est manquant"
 
-#: elf32-tic6x.c:3741
+#: elf32-tic6x.c:3660
+#, c-format
 msgid "%B: warning: unknown EABI object attribute %d"
 msgstr "%B: attention: attribut d'objet EABI %d inconnu"
 
-#: elf32-tic6x.c:3853 elf32-tic6x.c:3861
+#: elf32-tic6x.c:3774 elf32-tic6x.c:3783
+#, c-format
 msgid "error: %B requires more stack alignment than %B preserves"
 msgstr "erreur: %B nÃ©cessite un plus grand alignement de pile que ce que %B prÃ©serve"
 
-#: elf32-tic6x.c:3871 elf32-tic6x.c:3880
+#: elf32-tic6x.c:3793 elf32-tic6x.c:3802
 msgid "error: unknown Tag_ABI_array_object_alignment value in %B"
 msgstr "erreur: valeur Tag_ABI_array_object_alignment inconnue dans %B"
 
-#: elf32-tic6x.c:3889 elf32-tic6x.c:3898
+#: elf32-tic6x.c:3811 elf32-tic6x.c:3820
 msgid "error: unknown Tag_ABI_array_object_align_expected value in %B"
 msgstr "erreur: valeur Tag_ABI_array_object_align_expected inconnue dans %B"
 
-#: elf32-tic6x.c:3906 elf32-tic6x.c:3913
+#: elf32-tic6x.c:3829 elf32-tic6x.c:3837
+#, c-format
 msgid "error: %B requires more array alignment than %B preserves"
 msgstr "erreur: %B nÃ©cessite un plus grand alignement de tableau que ce que %B prÃ©serve"
 
-#: elf32-tic6x.c:3935
+#: elf32-tic6x.c:3860
+#, c-format
 msgid "warning: %B and %B differ in wchar_t size"
 msgstr "attention: %B et %B on des tailles de wchar_t diffÃ©rentes"
 
-#: elf32-tic6x.c:3953
+#: elf32-tic6x.c:3879
+#, c-format
 msgid "warning: %B and %B differ in whether code is compiled for DSBT"
 msgstr "attention: %B et %B ne sont pas d'accord sur la compilation du code pour DSBT"
 
-#: elf32-v850.c:173
+#: elf32-v850.c:157
 #, c-format
 msgid "Variable `%s' cannot occupy in multiple small data regions"
-msgstr "Variable Â«%sÂ» ne peut occuper de multiples petites rÃ©gions de donnÃ©es"
+msgstr "Variable Â«Â %sÂ Â» ne peut occuper de multiples petites rÃ©gions de donnÃ©es"
 
-#: elf32-v850.c:176
+#: elf32-v850.c:160
 #, c-format
 msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions"
-msgstr "Variable Â«%sÂ» peut seulement Ãªtre dans une rÃ©gion de donnÃ©es petite, zÃ©ro ou minuscule"
+msgstr "Variable Â«Â %sÂ Â» peut seulement Ãªtre dans une rÃ©gion de donnÃ©es petite, zÃ©ro ou minuscule"
 
-#: elf32-v850.c:179
+#: elf32-v850.c:163
 #, c-format
 msgid "Variable `%s' cannot be in both small and zero data regions simultaneously"
-msgstr "Variable Â«%sÂ» ne peut Ãªtre dans une rÃ©gion de donnÃ©es petite et zÃ©ro Ã  la fois"
+msgstr "Variable Â«Â %sÂ Â» ne peut Ãªtre dans une rÃ©gion de donnÃ©es petite et zÃ©ro Ã  la fois"
 
-#: elf32-v850.c:182
+#: elf32-v850.c:166
 #, c-format
 msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously"
-msgstr "Variable Â«%sÂ» ne peut Ãªtre dans une rÃ©gion de donnÃ©es petite et minuscule Ã  la fois"
+msgstr "Variable Â«Â %sÂ Â» ne peut Ãªtre dans une rÃ©gion de donnÃ©es petite et minuscule Ã  la fois"
 
-#: elf32-v850.c:185
+#: elf32-v850.c:169
 #, c-format
 msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously"
-msgstr "Variable Â«%sÂ» ne peut Ãªtre dans une rÃ©gion de donnÃ©es zÃ©ro et minuscule Ã  la fois"
+msgstr "Variable Â«Â %sÂ Â» ne peut Ãªtre dans une rÃ©gion de donnÃ©es zÃ©ro et minuscule Ã  la fois"
 
-#: elf32-v850.c:483
+#: elf32-v850.c:467
 msgid "FAILED to find previous HI16 reloc"
 msgstr "Ã‰CHEC de repÃ©rage du rÃ©adressage HI16 prÃ©cÃ©dent"
 
-#: elf32-v850.c:2155
+#: elf32-v850.c:1902 elf32-v850.c:1921
+#, c-format
+msgid "%B: invalid V850 reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage V850 invalide: %d"
+
+#: elf32-v850.c:2299
 msgid "could not locate special linker symbol __gp"
 msgstr "ne peut repÃ©rer le symbole spÃ©cial d'Ã©dition de lien __gp"
 
-#: elf32-v850.c:2159
+#: elf32-v850.c:2303
 msgid "could not locate special linker symbol __ep"
 msgstr "ne peut repÃ©rer le symbole spÃ©cial d'Ã©dition de lien __ep"
 
-#: elf32-v850.c:2163
+#: elf32-v850.c:2307
 msgid "could not locate special linker symbol __ctbp"
 msgstr "ne peut repÃ©rer le symbole spÃ©cial d'Ã©dition de lien __ctbp"
 
-#: elf32-v850.c:2341
+#: elf32-v850.c:2528
+#, c-format
+msgid "error: %B needs 8-byte aligment but %B is set for 4-byte alignment"
+msgstr "erreur: %B a besoin d'un alignement sur 8 octets mais %B est dÃ©fini pour un alignement sur 4 octets"
+
+#: elf32-v850.c:2544
+#, c-format
+msgid "error: %B uses 64-bit doubles but %B uses 32-bit doubles"
+msgstr "erreur: %B utilise des doubles 64 bits alors que %B utilise des doubles 32 bits"
+
+#: elf32-v850.c:2559
+#, c-format
+msgid "error: %B uses FPU-3.0 but %B only supports FPU-2.0"
+msgstr "erreur: %B utilise FPU-3.0 mais %B ne supporte que FPU-2.0"
+
+#: elf32-v850.c:2591
+#, c-format
+msgid " alignment of 8-byte entities: "
+msgstr " alignement d'entitÃ©s de 8 octets:"
+
+#: elf32-v850.c:2594
+#, c-format
+msgid "4-byte"
+msgstr "4 octets"
+
+#: elf32-v850.c:2595
+#, c-format
+msgid "8-byte"
+msgstr "8 octets"
+
+#: elf32-v850.c:2596 elf32-v850.c:2608
+#, c-format
+msgid "not set"
+msgstr "pas dÃ©fini"
+
+#: elf32-v850.c:2597 elf32-v850.c:2609 elf32-v850.c:2621 elf32-v850.c:2632
+#: elf32-v850.c:2643 elf32-v850.c:2654
+#, c-format
+msgid "unknown: %x"
+msgstr "inconnu: %x"
+
+#: elf32-v850.c:2603
+#, c-format
+msgid " size of doubles: "
+msgstr " taille des doubles: "
+
+#: elf32-v850.c:2606
+#, c-format
+msgid "4-bytes"
+msgstr "4 octets"
+
+#: elf32-v850.c:2607
+#, c-format
+msgid "8-bytes"
+msgstr "8 octets"
+
+#: elf32-v850.c:2615
+#, c-format
+msgid " FPU support required: "
+msgstr " support du FPU requis: "
+
+#: elf32-v850.c:2618
+#, c-format
+msgid "FPU-2.0"
+msgstr "FPU-2.0"
+
+#: elf32-v850.c:2619
+#, c-format
+msgid "FPU-3.0"
+msgstr "FPU-3.0"
+
+#: elf32-v850.c:2620
+#, c-format
+msgid "none"
+msgstr "aucun"
+
+#: elf32-v850.c:2627
+#, c-format
+msgid "SIMD use: "
+msgstr "utilisation SIMD: "
+
+#: elf32-v850.c:2630 elf32-v850.c:2641 elf32-v850.c:2652
+#, c-format
+msgid "yes"
+msgstr "oui"
+
+#: elf32-v850.c:2631 elf32-v850.c:2642 elf32-v850.c:2653
+#, c-format
+msgid "no"
+msgstr "non"
+
+#: elf32-v850.c:2638
+#, c-format
+msgid "CACHE use: "
+msgstr "utilisation CACHE: "
+
+#: elf32-v850.c:2649
+#, c-format
+msgid "MMU use: "
+msgstr "utilisation MMU: "
+
+#: elf32-v850.c:2816 elf32-v850.c:2872
 msgid "%B: Architecture mismatch with previous modules"
 msgstr "%B: L'architecture ne concorde pas avec les modules prÃ©cÃ©dents"
 
 #. xgettext:c-format.
-#: elf32-v850.c:2360
+#: elf32-v850.c:2890
 #, c-format
 msgid "private flags = %lx: "
 msgstr "fanions privÃ©s = %lx: "
 
-#: elf32-v850.c:2365
+#: elf32-v850.c:2895
+#, c-format
+msgid "unknown v850 architecture"
+msgstr "architecture v850 inconnue"
+
+#: elf32-v850.c:2897
+#, c-format
+msgid "v850 E3 architecture"
+msgstr "architecture v850 E3"
+
+#: elf32-v850.c:2899 elf32-v850.c:2906
 #, c-format
 msgid "v850 architecture"
 msgstr "architecture v850"
 
-#: elf32-v850.c:2366
+#: elf32-v850.c:2907
 #, c-format
 msgid "v850e architecture"
 msgstr "architecture v850e"
 
-#: elf32-v850.c:2367
+#: elf32-v850.c:2908
 #, c-format
 msgid "v850e1 architecture"
 msgstr "architecture v850e1"
 
-#: elf32-v850.c:2368
+#: elf32-v850.c:2909
 #, c-format
 msgid "v850e2 architecture"
 msgstr "architecture v850e2"
 
-#: elf32-v850.c:2369
+#: elf32-v850.c:2910
 #, c-format
 msgid "v850e2v3 architecture"
 msgstr "architecture v850e2v3"
 
-#: elf32-vax.c:532
+#: elf32-v850.c:2911
+#, c-format
+msgid "v850e3v5 architecture"
+msgstr "architecture v850e3v5"
+
+#: elf32-v850.c:3605
+#, c-format
+msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insns"
+msgstr "%B: 0x%lx: attention: R_V850_LONGCALL pointe vers des insns inconnues"
+
+#: elf32-v850.c:3615
+#, c-format
+msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insn 0x%x"
+msgstr "%B: 0x%lx: attention: R_V850_LONGCALL pointe vers l'insn inconnue 0x%x"
+
+#: elf32-v850.c:3660
+#, c-format
+msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc"
+msgstr "%B: 0x%lx: attention: R_V850_LONGCALL pointe vers un rÃ©adressage non reconnu"
+
+#: elf32-v850.c:3700
+#, c-format
+msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc 0x%lx"
+msgstr "%B: 0x%lx: attention: R_V850_LONGCALL pointe vers le rÃ©adressage inconnu 0x%lx"
+
+#: elf32-v850.c:3843
+#, c-format
+msgid "%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insns"
+msgstr "%B: 0x%lx: attention: R_V850_LONGJUMP pointe vers des insns non reconnues"
+
+#: elf32-v850.c:3853
+#, c-format
+msgid "%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insn 0x%x"
+msgstr "%B: 0x%lx: attention: R_V850_LONGJUMP pointe vers une insn inconnue 0x%x"
+
+#: elf32-v850.c:3887
+#, c-format
+msgid "%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized reloc"
+msgstr "%B: 0x%lx: attention: R_V850_LONGJUMP pointe vers un rÃ©adressage non reconnu"
+
+#: elf32-vax.c:290
+#, c-format
+msgid "%B: unrecognised VAX reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage VAX non reconnu: %d"
+
+#: elf32-vax.c:539
 #, c-format
 msgid " [nonpic]"
 msgstr " [nonpic]"
 
-#: elf32-vax.c:535
+#: elf32-vax.c:542
 #, c-format
 msgid " [d-float]"
 msgstr " [d-float]"
 
-#: elf32-vax.c:538
+#: elf32-vax.c:545
 #, c-format
 msgid " [g-float]"
 msgstr " [g-float]"
 
-#: elf32-vax.c:655
+#: elf32-vax.c:635
+#, c-format
+msgid "%B: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld"
+msgstr "%B: attention: ajout GOT de %ld Ã  Â«Â %sÂ Â» ne concorde par avec l'ajout GOT prÃ©cÃ©dent de %ld"
+
+#: elf32-vax.c:1511
+#, c-format
+msgid "%B: warning: PLT addend of %d to `%s' from %A section ignored"
+msgstr "%B: attention: ignore l'ajout PLT de %d Ã  Â«Â %sÂ Â» de la section %A"
+
+#: elf32-vax.c:1636
+#, c-format
+msgid "%B: warning: %s relocation against symbol `%s' from %A section"
+msgstr "%B: attention: rÃ©adressage %s vers le symbole Â«Â %sÂ Â» de la section %A"
+
+#: elf32-vax.c:1643
+#, c-format
+msgid "%B: warning: %s relocation to 0x%x from %A section"
+msgstr "%B: attention: rÃ©adressage %s vers 0x%x de la section %A"
+
+#: elf32-visium.c:481
+#, c-format
+msgid "%B: invalid Visium reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage Visium invalide: %d"
+
+# Les %s sont Â«Â withÂ Â» ou Â«Â withoutÂ Â» non traduits.
+# Heureusement, le fichier entier a Ã©tÃ© supprimÃ© dans les sources actuelles.
+#: elf32-visium.c:817
 #, c-format
-msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld"
-msgstr "%s: attention: ajout GOT de %ld Ã  Â«%sÂ» ne concorde par avec l'ajout GOT prÃ©cÃ©dent de %ld"
+msgid "%B: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s"
+msgstr "%B: compilÃ© %s -mtune=%s et liÃ© avec des modules compilÃ©s %s -mtune=%s"
 
-#: elf32-vax.c:1585
+#: elf32-xgate.c:428
 #, c-format
-msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored"
-msgstr "%s: attention: ignore l'ajout PLT de %d Ã  Â«%sÂ» de la section %s"
+msgid "%B: invalid XGate reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage XGate invalide: %d"
 
-#: elf32-vax.c:1712
+#: elf32-xgate.c:681
 #, c-format
-msgid "%s: warning: %s relocation against symbol `%s' from %s section"
-msgstr "%s: attention: rÃ©adressage %s vers le symbole Â«Â %sÂ Â» de la section %s"
+msgid "cpu=XGATE]"
+msgstr "cpu=XGATE]"
 
-#: elf32-vax.c:1718
+#: elf32-xgate.c:683
 #, c-format
-msgid "%s: warning: %s relocation to 0x%x from %s section"
-msgstr "%s: attention: rÃ©adressage %s vers 0x%x de la section %s"
+msgid "error reading cpu type from elf private data"
+msgstr "erreur lors de la lecture du type de CPU dans les donnÃ©es elf privÃ©es"
 
-#: elf32-xstormy16.c:451 elf32-ia64.c:2336 elf64-ia64.c:2336
+#: elf32-xstormy16.c:453 elf64-ia64-vms.c:2074 elf32-ia64.c:2334
+#: elf64-ia64.c:2334
 msgid "non-zero addend in @fptr reloc"
-msgstr "ajout non nul dans la relocalisation @fptr"
+msgstr "ajout non nul dans le rÃ©adressage @fptr"
+
+#: elf32-xtensa.c:485
+#, c-format
+msgid "%B: invalid XTENSA reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage XTENSA invalide: %d"
 
-#: elf32-xtensa.c:918
+#: elf32-xtensa.c:926
+#, c-format
 msgid "%B(%A): invalid property table"
 msgstr "%B(%A): table de propriÃ©tÃ© invalide"
 
-#: elf32-xtensa.c:2777
+#: elf32-xtensa.c:2790
+#, c-format
 msgid "%B(%A+0x%lx): relocation offset out of range (size=0x%x)"
 msgstr "%B(%A+0x%lx): dÃ©calage de rÃ©adressage hors limite (taille=0x%x)"
 
-#: elf32-xtensa.c:2856 elf32-xtensa.c:2977
+#: elf32-xtensa.c:2871 elf32-xtensa.c:2990
 msgid "dynamic relocation in read-only section"
 msgstr "rÃ©adressage dynamique dans une section en lecture seule"
 
-#: elf32-xtensa.c:2953
+#: elf32-xtensa.c:2967
 msgid "TLS relocation invalid without dynamic sections"
 msgstr "rÃ©adressage TLS incorrecte sans section dynamique"
 
-#: elf32-xtensa.c:3172
+#: elf32-xtensa.c:3178
 msgid "internal inconsistency in size of .got.loc section"
 msgstr "incohÃ©rence interne dans la taille de la section .got.loc"
 
 #: elf32-xtensa.c:3485
+#, c-format
 msgid "%B: incompatible machine type. Output is 0x%x. Input is 0x%x"
 msgstr "%B: type de machine incompatible. Sortie est 0x%x. EntrÃ©e est 0x%x"
 
-#: elf32-xtensa.c:4714 elf32-xtensa.c:4722
+#: elf32-xtensa.c:4716 elf32-xtensa.c:4724
 msgid "Attempt to convert L32R/CALLX to CALL failed"
 msgstr "Ã‰chec de la tentative de convertir L32R/CALLX en CALL"
 
-#: elf32-xtensa.c:6332 elf32-xtensa.c:6408 elf32-xtensa.c:7524
+#: elf32-xtensa.c:6552 elf32-xtensa.c:6629 elf32-xtensa.c:8002
+#, c-format
 msgid "%B(%A+0x%lx): could not decode instruction; possible configuration mismatch"
 msgstr "%B(%A+0x%lx): l'instruction ne peut pas Ãªtre dÃ©codÃ©e; la configuration est peut-Ãªtre erronÃ©e"
 
-#: elf32-xtensa.c:7264
+#: elf32-xtensa.c:7743
+#, c-format
 msgid "%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch"
 msgstr "%B(%A+0x%lx): l'instruction ne peut pas Ãªtre dÃ©codÃ©e pour un rÃ©adressage XTENSA_ASM_SIMPLIFY; la configuration est peut-Ãªtre erronÃ©e"
 
-#: elf32-xtensa.c:9023
+#: elf32-xtensa.c:9585
 msgid "invalid relocation address"
 msgstr "adresse de rÃ©adressage incorrecte"
 
-#: elf32-xtensa.c:9072
+#: elf32-xtensa.c:9635
 msgid "overflow after relaxation"
 msgstr "dÃ©bordement aprÃ¨s la relÃ¢che"
 
-#: elf32-xtensa.c:10204
+#: elf32-xtensa.c:10779
+#, c-format
 msgid "%B(%A+0x%lx): unexpected fix for %s relocation"
 msgstr "%B(%A+0x%lx): correction inattendue pour le rÃ©adressage %s"
 
-#: elf64-alpha.c:460
+#: elf64-alpha.c:472
 msgid "GPDISP relocation did not find ldah and lda instructions"
 msgstr "le rÃ©adressage GPDISP n'a pas repÃ©rÃ© les instructions ldah et lda"
 
-#: elf64-alpha.c:2497
+#: elf64-alpha.c:1112
+#, c-format
+msgid "%B: unrecognised Alpha reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage Alpha non reconnu: %d"
+
+#: elf64-alpha.c:2529
+#, c-format
 msgid "%B: .got subsegment exceeds 64K (size %d)"
 msgstr "%B: le sous-segment .got excÃ¨de 64K (taille %d)"
 
-#: elf64-alpha.c:4387 elf64-alpha.c:4399
+#: elf64-alpha.c:3084
+#, c-format
+msgid "%B: %A+0x%lx: warning: %s relocation against unexpected insn"
+msgstr "%B: %A+0x%lx: attention: rÃ©adressage de %s sur une insn inattendue"
+
+#: elf64-alpha.c:3280
+#, c-format
+msgid "%B: %A+0x%lx: warning: LITERAL relocation against unexpected insn"
+msgstr "%B: %A+0x%lx: attention: rÃ©adressage LITERAL sur une insn inattendue"
+
+#: elf64-alpha.c:4481 elf64-alpha.c:4494
+#, c-format
 msgid "%B: gp-relative relocation against dynamic symbol %s"
 msgstr "%B: rÃ©adressage relatif au gp vers le symbole dynamique %s"
 
-#: elf64-alpha.c:4425 elf64-alpha.c:4565
+#: elf64-alpha.c:4521 elf64-alpha.c:4665
+#, c-format
 msgid "%B: pc-relative relocation against dynamic symbol %s"
 msgstr "%B: rÃ©adressage relatif au PC vers le symbole dynamique %s"
 
-#: elf64-alpha.c:4453
+#: elf64-alpha.c:4550
+#, c-format
 msgid "%B: change in gp: BRSGP %s"
 msgstr "%B: changÃ© dans le GP: BRSGP %s"
 
-#: elf64-alpha.c:4478
+#: elf64-alpha.c:4575
 msgid "<unknown>"
 msgstr "<inconnu>"
 
-#: elf64-alpha.c:4483
+#: elf64-alpha.c:4581
+#, c-format
 msgid "%B: !samegp reloc against symbol without .prologue: %s"
-msgstr "%B: relocalisation !samegp vers le symbole sans .prologue: %s"
+msgstr "%B: rÃ©adressage !samegp vers le symbole sans .prologue: %s"
 
-#: elf64-alpha.c:4540
+#: elf64-alpha.c:4639
+#, c-format
 msgid "%B: unhandled dynamic relocation against %s"
 msgstr "%B: rÃ©adressage dynamique non traitÃ© vers %s"
 
-#: elf64-alpha.c:4572
+#: elf64-alpha.c:4674
+#, c-format
 msgid "%B: pc-relative relocation against undefined weak symbol %s"
 msgstr "%B: rÃ©adressage relatif au PC vers le symbole faible non dÃ©fini %s"
 
-#: elf64-alpha.c:4636
+#: elf64-alpha.c:4740
+#, c-format
 msgid "%B: dtp-relative relocation against dynamic symbol %s"
 msgstr "%B: rÃ©adressage relatif au dtp vers le symbole dynamique %s"
 
-#: elf64-alpha.c:4659
+#: elf64-alpha.c:4765
+#, c-format
 msgid "%B: tp-relative relocation against dynamic symbol %s"
 msgstr "%B: rÃ©adressage relatif au tp vers le symbole dynamique %s"
 
-#: elf64-hppa.c:2083
+#: elf64-hppa.c:2082
 #, c-format
 msgid "stub entry for %s cannot load .plt, dp offset = %ld"
 msgstr "entrÃ©e de l'Ã©bauche pour %s ne peut charger .plt, dÃ©calage dp = %ld"
 
-#: elf64-hppa.c:3275
-msgid "%B(%A+0x"
-msgstr "%B(%A+0x"
+#: elf64-hppa.c:3287
+#, c-format
+msgid "%B(%A+0x%"
+msgstr "%B(%A+0x%"
+
+#: elf64-ia64-vms.c:587 elf32-ia64.c:620 elf64-ia64.c:620
+#, c-format
+msgid "%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch."
+msgstr "%B: Ne peut relÃ¢cher br Ã  0x%lx dans la section Â«Â %AÂ Â». Veuillez utiliser brl ou un branchement indirect."
+
+#: elf64-ia64-vms.c:2029 elf32-ia64.c:2282 elf64-ia64.c:2282
+msgid "@pltoff reloc against local symbol"
+msgstr "rÃ©adressage @pltoff vers un symbole local"
+
+#: elf64-ia64-vms.c:3282 elf32-ia64.c:3688 elf64-ia64.c:3688
+#, c-format
+msgid "%B: short data segment overflowed (0x%lx >= 0x400000)"
+msgstr "%B: dÃ©bordement du segment de donnÃ©es court (0x%lx >= 0x400000)"
+
+#: elf64-ia64-vms.c:3292 elf32-ia64.c:3698 elf64-ia64.c:3698
+msgid "%B: __gp does not cover short data segment"
+msgstr "%B: __gp ne couvre pas le segment de donnÃ©es court"
+
+#: elf64-ia64-vms.c:3558 elf32-ia64.c:3965 elf64-ia64.c:3965
+#, c-format
+msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'"
+msgstr "%B: code non pic avec des rÃ©adressages imm vers le symbole dynamique Â«Â %sÂ Â»"
+
+#: elf64-ia64-vms.c:3622 elf32-ia64.c:4033 elf64-ia64.c:4033
+#, c-format
+msgid "%B: @gprel relocation against dynamic symbol %s"
+msgstr "%B: rÃ©adressage @gprel vers le symbole dynamique %s"
+
+#: elf64-ia64-vms.c:3681 elf32-ia64.c:4096 elf64-ia64.c:4096
+msgid "%B: linking non-pic code in a position independent executable"
+msgstr "%B: liaison de code non-pic dans un exÃ©cutable Ã  position indÃ©pendante"
+
+#: elf64-ia64-vms.c:3783 elf32-ia64.c:4234 elf64-ia64.c:4234
+#, c-format
+msgid "%B: @internal branch to dynamic symbol %s"
+msgstr "%B: branchement @internal vers le symbole dynamique %s"
+
+#: elf64-ia64-vms.c:3786 elf32-ia64.c:4237 elf64-ia64.c:4237
+#, c-format
+msgid "%B: speculation fixup to dynamic symbol %s"
+msgstr "%B: spÃ©culation d'ajustements vers le symbole dynamique %s"
+
+#: elf64-ia64-vms.c:3789 elf32-ia64.c:4240 elf64-ia64.c:4240
+#, c-format
+msgid "%B: @pcrel relocation against dynamic symbol %s"
+msgstr "%B: rÃ©adressage @pcrel vers le symbole dynamique %s"
+
+#: elf64-ia64-vms.c:3913 elf32-ia64.c:4437 elf64-ia64.c:4437
+msgid "unsupported reloc"
+msgstr "rÃ©adressage non supportÃ©e"
+
+#: elf64-ia64-vms.c:3950 elf32-ia64.c:4475 elf64-ia64.c:4475
+#, c-format
+msgid "%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'."
+msgstr "%B: setion TLS manquante pour le rÃ©adressage %s vers Â«Â %sÂ Â» Ã  0x%lx dans la section Â«Â %AÂ Â»."
+
+#: elf64-ia64-vms.c:3967 elf32-ia64.c:4492 elf64-ia64.c:4492
+#, c-format
+msgid "%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000)."
+msgstr "%B:Ne peut pas relÃ¢cher br (%s) sur Â«Â %sÂ Â» Ã  0x%lx dans la section Â«Â %AÂ Â» avec la taille 0x%lx (> 0x1000000)."
+
+#: elf64-ia64-vms.c:4258 elf32-ia64.c:4749 elf64-ia64.c:4749
+msgid "%B: linking trap-on-NULL-dereference with non-trapping files"
+msgstr "%B: Ã©dition de liens trap-on-NULL-dereference avec des fichiers non-trapping"
+
+#: elf64-ia64-vms.c:4267 elf32-ia64.c:4758 elf64-ia64.c:4758
+msgid "%B: linking big-endian files with little-endian files"
+msgstr "%B: Ã©dition de liens entre des fichiers Ã  octets de poids fort et des fichiers Ã  octets de poids faible"
+
+#: elf64-ia64-vms.c:4276 elf32-ia64.c:4767 elf64-ia64.c:4767
+msgid "%B: linking 64-bit files with 32-bit files"
+msgstr "%B: Ã©dition de liens entre fichiers 64 bits et fichiers 32 bits"
+
+#: elf64-ia64-vms.c:4285 elf32-ia64.c:4776 elf64-ia64.c:4776
+msgid "%B: linking constant-gp files with non-constant-gp files"
+msgstr "%B: Ã©dition de liens entre fichiers constant-gp et fichiers non-constant-gp"
+
+#: elf64-ia64-vms.c:4295 elf32-ia64.c:4786 elf64-ia64.c:4786
+msgid "%B: linking auto-pic files with non-auto-pic files"
+msgstr "%B: Ã©dition de liens entre fichiers auto-pic et fichiers non-auto-pic"
+
+#: elf64-ia64-vms.c:5138 elflink.c:4730
+#, c-format
+msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A"
+msgstr "Attention: alignement %u du symbole commun Â«Â %sÂ Â» dans %B est plus grand que l'alignement (%u) de sa section %A"
+
+#: elf64-ia64-vms.c:5145 elflink.c:4737
+#, c-format
+msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B"
+msgstr "Attention: alignement %u du symbole Â«Â %sÂ Â» dans %B est plus petit que %u dans %B"
+
+#: elf64-ia64-vms.c:5161
+#, c-format
+msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B"
+msgstr "Attention: taille du symbole Â«Â %sÂ Â» a changÃ© de %lu dans %B Ã  %lu dans %B"
+
+#: elf64-mips.c:3615 elfn32-mips.c:3439
+#, c-format
+msgid "unrecognised MIPS reloc number: %d"
+msgstr "type de rÃ©adressage MIPS non reconnu: %d"
 
-#: elf64-mmix.c:1034
+#: elf64-mmix.c:984
 msgid ""
 "invalid input relocation when producing non-ELF, non-mmo format output.\n"
 " Please use the objcopy program to convert from ELF or mmo,\n"
@@ -2666,7 +4300,7 @@ msgstr ""
 " Veuillez utiliser le programme objcopy pour convertir de ELF ou mmo,\n"
 " ou assembler en utilisant Â«Â -no-expandÂ Â» (pour gcc, Â«Â -Wa,-no-expandÂ Â»"
 
-#: elf64-mmix.c:1218
+#: elf64-mmix.c:1168
 msgid ""
 "invalid input relocation when producing non-ELF, non-mmo format output.\n"
 " Please use the objcopy program to convert from ELF or mmo,\n"
@@ -2676,137 +4310,178 @@ msgstr ""
 " Veuillez utiliser le programme objcopy pour convertir de ELF ou mmo,\n"
 " ou compiler en utilisant l'option gcc Â«Â -mno-base-addressesÂ Â»."
 
-#: elf64-mmix.c:1244
+#: elf64-mmix.c:1195
 #, c-format
 msgid ""
-"%s: Internal inconsistency error for value for\n"
+"%B: Internal inconsistency error for value for\n"
 " linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx\n"
 msgstr ""
-"%s: erreur d'incohÃ©rence interne pour la valeur du registre global\n"
+"%B: erreur d'incohÃ©rence interne pour la valeur du registre global\n"
 " allouÃ© Ã  l'Ã©dition de lien: liÃ©: 0x%lx%08lx != relÃ¢chÃ©: 0x%lx%08lx\n"
 
-#: elf64-mmix.c:1670
+#: elf64-mmix.c:1266
 #, c-format
-msgid "%s: base-plus-offset relocation against register symbol: (unknown) in %s"
-msgstr "%s: rÃ©adressage base plus dÃ©calage vers le symbole registre: (inconnu) dans %s"
+msgid "%B: invalid MMIX reloc number: %d"
+msgstr "%B: numÃ©ro de rÃ©adressage MMIX invalide: %d"
 
-#: elf64-mmix.c:1675
+#: elf64-mmix.c:1618
 #, c-format
-msgid "%s: base-plus-offset relocation against register symbol: %s in %s"
-msgstr "%s: rÃ©adressage base plus dÃ©calage vers le symbole registre: %s dans %s"
+msgid "%B: base-plus-offset relocation against register symbol: (unknown) in %A"
+msgstr "%B: rÃ©adressage base plus dÃ©calage vers le symbole registre: (inconnu) dans %A"
 
-#: elf64-mmix.c:1719
+#: elf64-mmix.c:1624
 #, c-format
-msgid "%s: register relocation against non-register symbol: (unknown) in %s"
-msgstr "%s: rÃ©adressage de registre vers le symbole non-registre: (inconnu) dans %s"
+msgid "%B: base-plus-offset relocation against register symbol: %s in %A"
+msgstr "%B: rÃ©adressage base plus dÃ©calage vers le symbole registre: %s dans %A"
 
-#: elf64-mmix.c:1724
+#: elf64-mmix.c:1669
 #, c-format
-msgid "%s: register relocation against non-register symbol: %s in %s"
-msgstr "%s: rÃ©adressage de registre vers le symbole non-registre: %s dans %s"
+msgid "%B: register relocation against non-register symbol: (unknown) in %A"
+msgstr "%B: rÃ©adressage de registre vers le symbole non-registre: (inconnu) dans %A"
 
-#: elf64-mmix.c:1761
+#: elf64-mmix.c:1675
 #, c-format
-msgid "%s: directive LOCAL valid only with a register or absolute value"
-msgstr "%s: directive LOCAL valide seulement avec un registre ou une valeur absolue"
+msgid "%B: register relocation against non-register symbol: %s in %A"
+msgstr "%B: rÃ©adressage de registre vers le symbole non-registre: %s dans %A"
+
+#: elf64-mmix.c:1712
+msgid "%B: directive LOCAL valid only with a register or absolute value"
+msgstr "%B: directive LOCAL valide seulement avec un registre ou une valeur absolue"
 
-#: elf64-mmix.c:1789
+#: elf64-mmix.c:1743
 #, c-format
-msgid "%s: LOCAL directive: Register $%ld is not a local register.  First global register is $%ld."
-msgstr "%s: directive LOCAL: registre $%ld n'est pas un registre local.  Premier registre global est $%ld."
+msgid "%B: LOCAL directive: Register $%ld is not a local register.  First global register is $%ld."
+msgstr "%B: directive LOCAL: registre $%ld n'est pas un registre local.  Premier registre global est $%ld."
 
-#: elf64-mmix.c:2253
+#: elf64-mmix.c:2202
 #, c-format
-msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n"
-msgstr "%s: erreur: multiple dÃ©finitions de Â«%sÂ»; dÃ©but de %s est initialisÃ© dans un prÃ©cÃ©dent fichier liÃ©\n"
+msgid "%B: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n"
+msgstr "%B: erreur: multiple dÃ©finitions de Â«Â %sÂ Â»; dÃ©but de %s est initialisÃ© dans un prÃ©cÃ©dent fichier liÃ©\n"
 
-#: elf64-mmix.c:2311
+#: elf64-mmix.c:2257
 msgid "Register section has contents\n"
 msgstr "Registre de section contient\n"
 
-#: elf64-mmix.c:2503
+#: elf64-mmix.c:2447
 #, c-format
 msgid ""
 "Internal inconsistency: remaining %u != max %u.\n"
 "  Please report this bug."
 msgstr ""
-"Inconsistence interne: reste %u != max %u.\n"
+"Inconsistance interne: reste %u != max %u.\n"
 "  Merci de rapporter cette anomalie."
 
-#: elf64-ppc.c:4185
+#: elf64-ppc.c:4625
+#, c-format
 msgid "%P: %B: cannot create stub entry %s\n"
 msgstr "%P: %B: ne peut crÃ©er l'entrÃ©e de l'Ã©bauche %s\n"
 
-#: elf64-ppc.c:6518
-msgid "%P: copy reloc against `%s' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n"
-msgstr "%P: la copie du rÃ©adressage sur Â«Â %sÂ Â» nÃ©cessite un lien plt paresseux; Ã©vitez de mettre LD_BIND_NOW=1 ou mettez Ã  jour gcc\n"
+#: elf64-ppc.c:4993
+msgid "%P: symbol '%s' has invalid st_other for ABI version 1\n"
+msgstr "%P: le symbole Â«Â %sÂ Â» a un st_other invalide pour l'ABI Ã  la version 1\n"
+
+#: elf64-ppc.c:5163
+#, c-format
+msgid "%P: %B .opd not allowed in ABI version %d\n"
+msgstr "%P: %B: .opd pas permis dans l'ABI Ã  la version %d\n"
+
+#: elf64-ppc.c:5639
+#, c-format
+msgid "%H: %s reloc unsupported in shared libraries and PIEs.\n"
+msgstr "%H: le rÃ©adressage %s n'est pas supportÃ© dans les bibliothÃ¨ques partagÃ©es et les PIE.\n"
+
+#: elf64-ppc.c:6046
+#, c-format
+msgid "%B uses unknown e_flags 0x%lx"
+msgstr "%B utilise le e_flags 0x%lx inconnu"
+
+#: elf64-ppc.c:6054
+#, c-format
+msgid "%B: ABI version %ld is not compatible with ABI version %ld output"
+msgstr "%B: la version ABI %ld n'est pas compatible avec la sortie de l'ABI version %ld"
+
+#: elf64-ppc.c:6082
+#, c-format
+msgid " [abiv%ld]"
+msgstr " [abiv%ld]"
+
+#: elf64-ppc.c:7413
+msgid "%P: copy reloc against `%T' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n"
+msgstr "%P: le rÃ©adressage par copie sur Â«Â %TÂ Â» nÃ©cessite un lien plt paresseux; Ã©vitez de mettre LD_BIND_NOW=1 ou mettez Ã  jour gcc\n"
 
-#: elf64-ppc.c:6788
+#: elf64-ppc.c:7680
 msgid "%B: undefined symbol on R_PPC64_TOCSAVE relocation"
 msgstr "%B: symbole indÃ©fini sur le rÃ©adressage R_PPC64_TOCSAVE"
 
-#: elf64-ppc.c:6992
+#: elf64-ppc.c:7910
+#, c-format
 msgid "%P: dynreloc miscount for %B, section %A\n"
 msgstr "%P: erreur de dÃ©compte de rÃ©adressage dynamique pour %B, section %A\n"
 
-#: elf64-ppc.c:7076
+#: elf64-ppc.c:7999
 msgid "%B: .opd is not a regular array of opd entries"
 msgstr "%B: .opd n'est pas un tableau rÃ©gulier d'entrÃ©es opd"
 
-#: elf64-ppc.c:7085
+#: elf64-ppc.c:8009
+#, c-format
 msgid "%B: unexpected reloc type %u in .opd section"
-msgstr "%B: type de relocalisation %u inattendu dans la section .opd"
+msgstr "%B: type de rÃ©adressage %u inattendu dans la section .opd"
 
-#: elf64-ppc.c:7106
+#: elf64-ppc.c:8031
+#, c-format
 msgid "%B: undefined sym `%s' in .opd section"
-msgstr "%B: symbole Â«%sÂ» indÃ©fini dans la section .opd"
+msgstr "%B: symbole Â«Â %sÂ Â» indÃ©fini dans la section .opd"
 
-#: elf64-ppc.c:7664
+#: elf64-ppc.c:8600
 msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
 msgstr "%H __tls_get_addr a perdu l'argument, optimisation TLS dÃ©sactivÃ©e\n"
 
-#: elf64-ppc.c:8003 elf64-ppc.c:8564
+#: elf64-ppc.c:8943 elf64-ppc.c:9580
 #, c-format
 msgid "%s defined on removed toc entry"
 msgstr "%s dÃ©fini dans une entrÃ©e toc supprimÃ©e"
 
-#: elf64-ppc.c:8521
-msgid "%P: %H: %s relocation references optimized away TOC entry\n"
-msgstr "%P: %H: le rÃ©adressage %s fait rÃ©fÃ©rence Ã  une entrÃ©e TOC supprimÃ©e par l'optimisation\n"
-
-#: elf64-ppc.c:9598
-msgid "%P: cannot find opd entry toc for %s\n"
-msgstr "%P: l'entrÃ©e toc de opd non trouvÃ©e pour %s\n"
+#: elf64-ppc.c:9308
+#, c-format
+msgid "%H: toc optimization is not supported for %s instruction.\n"
+msgstr "%H: l'optimisation toc n'est pas supportÃ©e pour l'instruction %s.\n"
+
+#: elf64-ppc.c:9537
+#, c-format
+msgid "%H: %s references optimized away TOC entry\n"
+msgstr "%H: %s fait rÃ©fÃ©rence Ã  une entrÃ©e TOC supprimÃ©e par l'optimisation\n"
+
+#: elf64-ppc.c:10878
+msgid "%P: cannot find opd entry toc for `%T'\n"
+msgstr "%P: l'entrÃ©e toc de opd non trouvÃ©e pour Â«Â %TÂ Â»\n"
 
-#: elf64-ppc.c:9680
+#: elf64-ppc.c:10969
 msgid "%P: long branch stub `%s' offset overflow\n"
 msgstr "%P: dÃ©bordement de l'offset du branchement long de l'Ã©bauche Â«Â %sÂ Â»\n"
 
-#: elf64-ppc.c:9739
+#: elf64-ppc.c:11028
 msgid "%P: can't find branch stub `%s'\n"
 msgstr "%P: ne peut repÃ©rer l'Ã©bauche de branchement Â«Â %sÂ Â»\n"
 
-#: elf64-ppc.c:9801 elf64-ppc.c:9943
-msgid "%P: linkage table error against `%s'\n"
-msgstr "%P: erreur de la table de liaison vers Â«Â %sÂ Â»\n"
+#: elf64-ppc.c:11092 elf64-ppc.c:11244 elf64-ppc.c:13052
+#, c-format
+msgid "%P: linkage table error against `%T'\n"
+msgstr "%P: erreur de la table de liaison vers Â«Â %TÂ Â»\n"
 
-#: elf64-ppc.c:10126
+#: elf64-ppc.c:11454
 msgid "%P: can't build branch stub `%s'\n"
 msgstr "%P: ne peut construire l'Ã©bauche de branchement Â«Â %sÂ Â»\n"
 
-#: elf64-ppc.c:10941
+#: elf64-ppc.c:12227
+#, c-format
 msgid "%B section %A exceeds stub group size"
 msgstr "%B section %A dÃ©passe la taille du groupe d'Ã©bauche"
 
-#: elf64-ppc.c:11666 elf64-ppc.c:11699
-msgid "%P: %s offset too large for .eh_frame sdata4 encoding"
-msgstr "%P: dÃ©calage %s trop grand pour l'encodage .eh_frame sdata4"
-
-#: elf64-ppc.c:11744
+#: elf64-ppc.c:13331
 msgid "%P: stubs don't match calculated size\n"
 msgstr "%P: taille des Ã©bauches ne concorde pas avec la taille calculÃ©e\n"
 
-#: elf64-ppc.c:11756
+#: elf64-ppc.c:13343
 #, c-format
 msgid ""
 "linker stubs in %u group%s\n"
@@ -2814,923 +4489,1276 @@ msgid ""
 "  toc adjust   %lu\n"
 "  long branch  %lu\n"
 "  long toc adj %lu\n"
-"  plt call     %lu"
+"  plt call     %lu\n"
+"  plt call toc %lu\n"
+"  global entry %lu"
 msgstr ""
 "Ã©diteur de liens des Ã©bauches dans %u groupe%s\n"
 "  branchements         %lu\n"
 "  ajustements toc      %lu\n"
 "  long branchements    %lu\n"
 "  long ajustements toc %lu\n"
-"  appels plt           %lu"
+"  appels plt           %lu\n"
+"  appels plt toc       %lu\n"
+"  entrÃ©es globales     %lu"
 
-#: elf64-ppc.c:12042
-msgid "%P: %H: %s used with TLS symbol %s\n"
-msgstr "%P: %H: %s utilisÃ© avec le symbole TLS %s\n"
+#: elf64-ppc.c:13665
+#, c-format
+msgid "%H: %s used with TLS symbol `%T'\n"
+msgstr "%H: %s utilisÃ© avec le symbole TLS Â«Â %TÂ Â»\n"
+
+#: elf64-ppc.c:13667
+#, c-format
+msgid "%H: %s used with non-TLS symbol `%T'\n"
+msgstr "%H: %s utilisÃ© avec le symbole non-TLS Â«Â %TÂ Â»\n"
+
+#: elf64-ppc.c:14306
+#, c-format
+msgid "%H: call to `%T' lacks nop, can't restore toc; recompile with -fPIC\n"
+msgstr "%H: il manque un nop Ã  l'appel Ã  Â«Â %TÂ Â», toc ne peut Ãªtre rÃ©tablie, recompilez avec -fPIC\n"
+
+#: elf64-ppc.c:14312
+#, c-format
+msgid "%H: call to `%T' lacks nop, can't restore toc; (-mcmodel=small toc adjust stub)\n"
+msgstr "%H: il manque un nop Ã  l'appel Ã  Â«Â %TÂ Â», toc ne peut Ãªtre rÃ©tablie, (Ã©bauche d'ajustement de la toc -mcmodel=small)\n"
+
+#: elf64-ppc.c:14440
+#, c-format
+msgid "%P: %B: unknown relocation type %d for `%T'\n"
+msgstr "%P: %B: type de rÃ©adressage %d inconnu pour Â«Â %TÂ Â»\n"
+
+#: elf64-ppc.c:14994
+#, c-format
+msgid "%H: %s for indirect function `%T' unsupported\n"
+msgstr "%H: %s non supportÃ© pour la fonction indirecte Â«Â %TÂ Â»\n"
+
+#: elf64-ppc.c:15132
+#, c-format
+msgid "%P: %B: %s is not supported for `%T'\n"
+msgstr "%P: %B: %s n'est pas supportÃ© pour le symbole Â«Â %TÂ Â»\n"
 
-#: elf64-ppc.c:12043
-msgid "%P: %H: %s used with non-TLS symbol %s\n"
-msgstr "%P: %H: %s utilisÃ© avec le symbole non-TLS %s\n"
+#: elf64-ppc.c:15287
+#, c-format
+msgid "%H: error: %s not a multiple of %u\n"
+msgstr "%H: erreur: %s n'est pas un multiple de %u\n"
 
-#: elf64-ppc.c:12556
-msgid "%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc\n"
-msgstr "%P: %H: TOC multiples et automatiques non supportÃ©es utilisant votre fichier crt; recompilez avec -mminimal-toc ou mettez Ã  jour gcc\n"
+#: elf64-ppc.c:15309
+#, c-format
+msgid "%H: unresolvable %s against `%T'\n"
+msgstr "%H: %s ne peut Ãªtre rÃ©solu par rapport Ã  Â«Â %TÂ Â»\n"
 
-#: elf64-ppc.c:12562
-msgid "%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern\n"
-msgstr "%P: %H: l'optimisation sÅ“urs des appels vers Â«Â %sÂ Â» n'autorise pas de TOC multiples et automatiques; recompilez avec -mminimal-toc ou -fno-optimize-sibling-calls, ou rendez Â«Â %sÂ Â» externe\n"
+#: elf64-ppc.c:15406
+#, c-format
+msgid "%H: %s against `%T': error %d\n"
+msgstr "%H: %s vers Â«Â %TÂ Â»: erreur %d\n"
 
-#: elf64-ppc.c:13286
-msgid "%P: %B: relocation %s is not supported for symbol %s\n"
-msgstr "%P: %B: rÃ©adressage %s n'est pas supportÃ©e pour le symbole %s\n"
+#: elf64-ppc.c:15801 elf64-ppc.c:15830
+msgid "%P: %s offset too large for .eh_frame sdata4 encoding"
+msgstr "%P: dÃ©calage %s trop grand pour l'encodage .eh_frame sdata4"
 
-#: elf64-ppc.c:13446
-msgid "%P: %H: error: %s not a multiple of %u\n"
-msgstr "%P: %H: erreur: %s n'est pas un multiple de %u\n"
+#: elf64-s390.c:2712
+msgid "%B: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)"
+msgstr "%B: rÃ©adressage non-PLT Â«Â %sÂ Â» pour le symbole dÃ©fini dans une bibliothÃ¨que partagÃ©e et accÃ©dÃ© depuis l'exÃ©cutable (recompiler le fichier avec -fPICÂ ?)"
 
-#: elf64-sh64.c:1686
+#: elf64-sh64.c:1680
 #, c-format
-msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n"
-msgstr "%s: erreur: type de rÃ©adressage %d non alignÃ© Ã  %08x rÃ©adressÃ©`%08x\n"
+msgid "%B: error: unaligned relocation type %d at %08x reloc %08x\n"
+msgstr "%B: erreur: type de rÃ©adressage %d non alignÃ© Ã  %08x rÃ©adressÃ©`%08x\n"
 
-#: elf64-sparc.c:446
+#: elf64-sparc.c:460
 msgid "%B: Only registers %%g[2367] can be declared using STT_REGISTER"
 msgstr "%B: Seuls les registres %%g[2367] peuvent Ãªtre dÃ©clarÃ©s en utilisant les registres STT_REGISTER"
 
-#: elf64-sparc.c:466
+#: elf64-sparc.c:481
+#, c-format
 msgid "Register %%g%d used incompatibly: %s in %B, previously %s in %B"
 msgstr "Registre %%g%d utilisÃ© de maniÃ¨re incompatible: %s dans %B prÃ©cÃ©demment %s dans %B"
 
-#: elf64-sparc.c:489
+#: elf64-sparc.c:505
+#, c-format
 msgid "Symbol `%s' has differing types: REGISTER in %B, previously %s in %B"
-msgstr "Symbole Â«%sÂ» a des types qui diffÃ¨rent: REGISTRE dans %B, prÃ©cÃ©demment %s dans %B"
+msgstr "Symbole Â«Â %sÂ Â» a des types qui diffÃ¨rent: REGISTRE dans %B, prÃ©cÃ©demment %s dans %B"
 
-#: elf64-sparc.c:534
+#: elf64-sparc.c:552
+#, c-format
 msgid "Symbol `%s' has differing types: %s in %B, previously REGISTER in %B"
-msgstr "Symbole Â«%sÂ» a des types qui diffÃ¨rent: %s dans %B, prÃ©cÃ©demment REGISTRE dans %B"
+msgstr "Symbole Â«Â %sÂ Â» a des types qui diffÃ¨rent: %s dans %B, prÃ©cÃ©demment REGISTRE dans %B"
 
-#: elf64-sparc.c:687
+#: elf64-sparc.c:707
 msgid "%B: linking UltraSPARC specific with HAL specific code"
 msgstr "%B: Ã©dition de liens spÃ©cifiques pour UltraSPARC avec du code spÃ©cifique HAL"
 
-#: elf64-x86-64.c:1427
+#: elf64-x86-64.c:1923
+msgid "hidden symbol "
+msgstr "symbole cachÃ© "
+
+#: elf64-x86-64.c:1926
+msgid "internal symbol "
+msgstr "symbole interne "
+
+#: elf64-x86-64.c:1929
+msgid "protected symbol "
+msgstr "symbole protÃ©gÃ© "
+
+#: elf64-x86-64.c:1932
+msgid "symbol "
+msgstr "symbole "
+
+#: elf64-x86-64.c:1933 elf64-x86-64.c:1943
+msgid "; recompile with -fPIC"
+msgstr "; recompilÃ© avec -fPIC"
+
+#: elf64-x86-64.c:1938
+msgid "undefined "
+msgstr "non dÃ©fini "
+
+# Les %s%s au dÃ©but de %s%sÂ«Â %sÂ Â» peuvent Ãªtre Â«Â non dÃ©finiÂ Â» ou rien pour le premier et
+# un des fragments ci-dessus pour le second ce qui donne par exemple Â«Â symbole interneÂ non dÃ©finiÂ» en inversant les deux %s.
+# Le dernier %s collÃ© au dernier mot peut Ãªtre rien ou un des fragments traduits ci-dessus et commenÃ§ant par un point-virgule.
+#: elf64-x86-64.c:1947
+#, c-format
+msgid "%B: relocation %s against %s%s`%s' can not be used when making a shared object%s"
+msgstr "%1$B: rÃ©adressage %2$s vers %4$s%3$sÂ«Â %5$sÂ Â» ne peut pas Ãªtre utilisÃ© en crÃ©ant un objet partagÃ©%6$s"
+
+#: elf64-x86-64.c:2510
+#, c-format
 msgid "%B: relocation %s against symbol `%s' isn't supported in x32 mode"
 msgstr "%B: le rÃ©adressage %s sur le symbole Â«Â %sÂ Â» n'est pas supportÃ© en mode x32"
 
-#: elf64-x86-64.c:1656
+#: elf64-x86-64.c:2633
+#, c-format
 msgid "%B: '%s' accessed both as normal and thread local symbol"
-msgstr "%B: symbole Â«%sÂ» accÃ©dÃ© Ã  la fois comme normal et comme local au thread"
+msgstr "%B: symbole Â«Â %sÂ Â» accÃ©dÃ© Ã  la fois comme normal et comme local au thread"
 
-#: elf64-x86-64.c:3150
+#: elf64-x86-64.c:4576
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5018
+#, c-format
 msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d"
 msgstr "%B: le rÃ©adressage %s vers le symbole STT_GNU_IFUNC Â«Â %sÂ Â» a l'opÃ©rande non nul: %d"
 
-#: elf64-x86-64.c:3411
-msgid "%B: relocation R_X86_64_GOTOFF64 against protected function `%s' can not be used when making a shared object"
-msgstr "%B: rÃ©adressage R_X86_64_GOTOFF64 vers la fonction protÃ©gÃ©e Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©"
+#: elf64-x86-64.c:4831
+#, c-format
+msgid "%B: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object"
+msgstr "%B: rÃ©adressage R_X86_64_GOTOFF64 sur le symbole %s Â«Â %sÂ Â» non dÃ©fini ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©"
 
-#: elf64-x86-64.c:3523
-msgid "; recompile with -fPIC"
-msgstr "; recompilÃ© avec -fPIC"
+# Le %s protÃ©gÃ©e est soit Â«Â functionÂ Â» ou Â«Â dataÂ Â» sans traduction.
+# Cette construction scabreuse a dÃ©jÃ  Ã©tÃ© enlevÃ©e dans les sources.
+#: elf64-x86-64.c:4845
+#, c-format
+msgid "%B: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object"
+msgstr "%B: rÃ©adressage R_X86_64_GOTOFF64 vers la %s protÃ©gÃ©e Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©"
+
+#: elf64-x86-64.c:5122
+#, c-format
+msgid "%B: addend -0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range"
+msgstr "%B: l'opÃ©rande -0x%x dans le rÃ©adressage %s vers le symbole Â«Â %sÂ Â» Ã  0x%lx dans la section Â«Â %AÂ Â» est hors limite"
+
+#: elf64-x86-64.c:5130
+#, c-format
+msgid "%B: addend 0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range"
+msgstr "%B: l'opÃ©rande 0x%x dans le rÃ©adressage %s vers le symbole Â«Â %sÂ Â» Ã  0x%lx dans la section Â«Â %AÂ Â» est hors limite"
+
+#: elf64-x86-64.c:5952
+#, c-format
+msgid "%F%B: PC-relative offset overflow in PLT entry for `%s'\n"
+msgstr "%F%B: dÃ©bordement du dÃ©calage relatif au PC dans l'entrÃ©e PLT pour Â«Â %sÂ Â»\n"
 
-#: elf64-x86-64.c:3528
-msgid "%B: relocation %s against %s `%s' can not be used when making a shared object%s"
-msgstr "%B: rÃ©adressage %s vers %s Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© en crÃ©ant un objet partagÃ© %s"
+#: elf64-x86-64.c:6019
+#, c-format
+msgid "%F%B: branch displacement overflow in PLT entry for `%s'\n"
+msgstr "%F%B: dÃ©bordement du dÃ©placement de branchement dans l'entrÃ©e PLT pour Â«Â %sÂ Â»\n"
+
+#: elf64-x86-64.c:6072
+#, c-format
+msgid "%F%B: PC-relative offset overflow in GOT PLT entry for `%s'\n"
+msgstr "%F%B: dÃ©bordement du dÃ©calage relatif au PC dans l'entrÃ©e PLT GOT pour Â«Â %sÂ Â»\n"
 
-#: elf64-x86-64.c:3530
-msgid "%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s"
-msgstr "%B: rÃ©adressage %s vers le %s non dÃ©fini Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© en crÃ©ant un objet partagÃ© %s"
+#: elf64-x86-64.c:7663
+#, c-format
+msgid "%F: failed to create BND PLT section\n"
+msgstr "%F: Ã©chec lors de la crÃ©ation de la section PLT BND\n"
 
-#: elfcode.h:767
+#: elf64-x86-64.c:7713
 #, c-format
-msgid "warning: %s has a corrupt string table index - ignoring"
-msgstr "attention: %s a un index de table de chaÃ®nes corrompu - ignorÃ©"
+msgid "%F: failed to create BND PLT .eh_frame section\n"
+msgstr "%F: Ã©chec lors de la crÃ©ation de la section .eh_frame PLT BND\n"
 
-#: elfcode.h:1177
+#: elfcode.h:760
+msgid "warning: %B has a corrupt string table index - ignoring"
+msgstr "attention: %B a un index de table de chaÃ®nes corrompu - ignorÃ©"
+
+#: elfcode.h:1193
 #, c-format
-msgid "%s: version count (%ld) does not match symbol count (%ld)"
-msgstr "%s: compteur de version (%ld) ne concorde pas avec le symbole du compteur (%ld)"
+msgid "%B: version count (%ld) does not match symbol count (%ld)"
+msgstr "%B: compteur de version (%ld) ne concorde pas avec le symbole du compteur (%ld)"
 
-#: elfcode.h:1431
+#: elfcode.h:1448
 #, c-format
-msgid "%s(%s): relocation %d has invalid symbol index %ld"
-msgstr "%s(%s): rÃ©adressage %d a un index de symbole %ld invalide"
+msgid "%B(%A): relocation %d has invalid symbol index %ld"
+msgstr "%B(%A): rÃ©adressage %d a un index de symbole %ld invalide"
 
-#: elfcore.h:312
+#: elfcore.h:300
+#, c-format
 msgid "Warning: %B is truncated: expected core file size >= %lu, found: %lu."
 msgstr "Attention: %B est tronquÃ©: taille attendue du cÅ“ur du fichier >= %lu, obtenu: %lu."
 
-#: elflink.c:1117
+#: elflink.c:1336
+#, c-format
 msgid "%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A"
 msgstr "%s: dÃ©finition TLS dans %B section %A ne correspond pas Ã  la dÃ©finition non TLS dans %B section %A"
 
-#: elflink.c:1121
+#: elflink.c:1342
+#, c-format
 msgid "%s: TLS reference in %B mismatches non-TLS reference in %B"
 msgstr "%s: rÃ©fÃ©rence TLS dans %B ne correspond pas Ã  la rÃ©fÃ©rence non TLS dans %B"
 
-#: elflink.c:1125
+#: elflink.c:1348
+#, c-format
 msgid "%s: TLS definition in %B section %A mismatches non-TLS reference in %B"
 msgstr "%s: dÃ©finition TLS dans %B section %A ne correspond pas Ã  la rÃ©fÃ©rence TLS dans %B"
 
-#: elflink.c:1129
+#: elflink.c:1354
+#, c-format
 msgid "%s: TLS reference in %B mismatches non-TLS definition in %B section %A"
 msgstr "%s: rÃ©fÃ©rence TLS dans %B ne correspond pas Ã  la dÃ©finition non TLS dans %B section %A"
 
-#: elflink.c:1762
+#: elflink.c:2015
+#, c-format
 msgid "%B: unexpected redefinition of indirect versioned symbol `%s'"
-msgstr "%B: attention: redÃ©finition inattendue du symbole indirect avec version Â«%sÂ»"
+msgstr "%B: attention: redÃ©finition inattendue du symbole indirect avec version Â«Â %sÂ Â»"
 
-#: elflink.c:2063
+#: elflink.c:2308
+#, c-format
 msgid "%B: version node not found for symbol %s"
 msgstr "%B: version du nÅ“ud pas trouvÃ©e pour le symbole %s"
 
-#: elflink.c:2154
-msgid "%B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A'"
-msgstr "%B: mauvais index de relocalisation du symbole (0x%lx >= 0x%lx) pour l'offset 0x%lx de la section Â«%AÂ»"
-
-#: elflink.c:2165
-msgid "%B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the object file has no symbol table"
-msgstr "%B: index de symbole non nul (0x%lx) pour l'offset 0x%lx de la section Â«%AÂ» quand le fichier objet n'a pas de table de symboles"
+#: elflink.c:2397
+#, c-format
+msgid "%B: bad reloc symbol index (%#lx >= %#lx) for offset %#Lx in section `%A'"
+msgstr "%B: mauvais index du symbole de rÃ©adressage (%#lx >= %#lx) pour l'offset %#Lx de la section Â«Â %AÂ Â»"
+
+#: elflink.c:2409
+#, c-format
+msgid "%B: non-zero symbol index (%#lx) for offset %#Lx in section `%A' when the object file has no symbol table"
+msgstr "%B: index de symbole non nul (%#lx) pour l'offset %#Lx de la section Â«Â %AÂ Â» quand le fichier objet n'a pas de table de symboles"
 
-#: elflink.c:2355
+#: elflink.c:2600
+#, c-format
 msgid "%B: relocation size mismatch in %B section %A"
 msgstr "%B: taille du rÃ©adressage ne concorde pas dans %B section %A"
 
-#: elflink.c:2639
+#: elflink.c:2911
 #, c-format
 msgid "warning: type and size of dynamic symbol `%s' are not defined"
-msgstr "attention: type et taille du symbole dynamique Â«%sÂ» ne sont pas dÃ©finis"
+msgstr "attention: type et taille du symbole dynamique Â«Â %sÂ Â» ne sont pas dÃ©finis"
 
-#: elflink.c:3391
+#: elflink.c:2976
+msgid "%P: copy reloc against protected `%T' is dangerous\n"
+msgstr "%P: un rÃ©adressage copiÃ© envers un Â«Â %TÂ Â» protÃ©gÃ© est dangereux\n"
+
+#: elflink.c:3777
+#, c-format
 msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n"
 msgstr "%P: code machine ELF alternatif trouvÃ© (%d) dans %B, %d est attendu\n"
 
-#: elflink.c:4037
+#: elflink.c:4438
+#, c-format
 msgid "%B: %s: invalid version %u (max %d)"
 msgstr "%B: %s: version invalide %u (max %d)"
 
-#: elflink.c:4073
+#: elflink.c:4475
+#, c-format
 msgid "%B: %s: invalid needed version %d"
 msgstr "%B: %s: version requise invalide %d"
 
-#: elflink.c:4269
-msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A"
-msgstr "Attention: alignement %u du symbole commun Â«%sÂ» dans %B est plus grand que l'alignement (%u) de sa section %A"
-
-#: elflink.c:4275
-msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B"
-msgstr "Attention: alignement %u du symbole Â«%sÂ» dans %B est plus petit que %u dans %B"
-
-#: elflink.c:4290
-msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B"
-msgstr "Attention: taille du symbole Â«%sÂ» a changÃ© de %lu dans %B Ã  %lu dans %B"
+#: elflink.c:4754
+#, c-format
+msgid "Warning: size of symbol `%s' changed from %Lu in %B to %Lu in %B"
+msgstr "Attention: taille du symbole Â«Â %sÂ Â» a changÃ© de %Lu dans %B Ã  %Lu dans %B"
 
-#: elflink.c:4463
+#: elflink.c:4890
+#, c-format
 msgid "%B: undefined reference to symbol '%s'"
-msgstr "%B: rÃ©fÃ©rence au symbole non dÃ©fini Â«%sÂ»"
+msgstr "%B: rÃ©fÃ©rence au symbole non dÃ©fini Â«Â %sÂ Â»"
+
+#: elflink.c:5903
+#, c-format
+msgid "%B: stack size specified and %s set"
+msgstr "%B: taille de pile spÃ©cifiÃ©e et %s dÃ©fini"
 
-#: elflink.c:4466
-msgid "note: '%s' is defined in DSO %B so try adding it to the linker command line"
-msgstr "note: Â«%sÂ» est dÃ©fini dans le DSO %B donc essayez de l'ajouter Ã  la ligne de commande du lieur"
+#: elflink.c:5907
+#, c-format
+msgid "%B: %s not absolute"
+msgstr "%B: %s pas supportÃ©"
 
-#: elflink.c:5781
+#: elflink.c:6105
 #, c-format
 msgid "%s: undefined version: %s"
 msgstr "%s: version non dÃ©finie: %s"
 
-#: elflink.c:5849
+#: elflink.c:6682
 msgid "%B: .preinit_array section is not allowed in DSO"
 msgstr "%B: section .preinit_array n'est pas permise dans DSO"
 
-#: elflink.c:7604
+#: elflink.c:8122
 #, c-format
 msgid "undefined %s reference in complex symbol: %s"
 msgstr "rÃ©fÃ©rence %s non dÃ©finie dans le symbole complexe: %s"
 
-#: elflink.c:7758
+#: elflink.c:8277
 #, c-format
 msgid "unknown operator '%c' in complex symbol"
-msgstr "opÃ©rateur Â«%cÂ» inconnu dans le symbole complexe"
+msgstr "opÃ©rateur Â«Â %cÂ Â» inconnu dans le symbole complexe"
 
-#: elflink.c:8097 elflink.c:8114 elflink.c:8151 elflink.c:8168
+#. PR 21524: Let the user know if a symbol was removed by garbage collection.
+#: elflink.c:8615
+msgid "%B:%A: error: relocation references symbol %s which was removed by garbage collection."
+msgstr "%B:%A: erreur: symbole de rÃ©fÃ©rence des rÃ©adressages %s qui a Ã©tÃ© supprimÃ© par le ramasse miettes"
+
+#: elflink.c:8618
+msgid "%B:%A: error: try relinking with --gc-keep-exported enabled."
+msgstr "%B:%A: erreur: essayez de rÃ©Ã©diter les liens avec --gc-keep-exported enabled."
+
+#: elflink.c:8855 elflink.c:8873 elflink.c:8912 elflink.c:8930
 msgid "%B: Unable to sort relocs - they are in more than one size"
-msgstr "%B: Impossible de trier les relocalisations - plusieurs tailles rencontrÃ©es"
+msgstr "%B: Impossible de trier les rÃ©adressages - plusieurs tailles rencontrÃ©es"
 
-#: elflink.c:8128 elflink.c:8182
+#. The section size is not divisible by either -
+#. something is wrong.
+#: elflink.c:8889 elflink.c:8946
 msgid "%B: Unable to sort relocs - they are of an unknown size"
-msgstr "%B: Impossible de trier les relocalisations - leur taille est inconnue"
+msgstr "%B: Impossible de trier les rÃ©adressages - leur taille est inconnue"
 
-#: elflink.c:8233
+#: elflink.c:8998
 msgid "Not enough memory to sort relocations"
 msgstr "Pas assez de mÃ©moire pour trier les rÃ©adressages"
 
-#: elflink.c:8426
+#: elflink.c:9266
+#, c-format
 msgid "%B: Too many sections: %d (>= %d)"
 msgstr "%B: Trop de sections: %d (>= %d)"
 
-#: elflink.c:8675
+#: elflink.c:9546
+#, c-format
 msgid "%B: internal symbol `%s' in %B is referenced by DSO"
 msgstr "%B: symbole interne Â«Â %sÂ Â» dans %B est rÃ©fÃ©rencÃ© par DSO"
 
-#: elflink.c:8677
+#: elflink.c:9549
+#, c-format
 msgid "%B: hidden symbol `%s' in %B is referenced by DSO"
 msgstr "%B: symbole cachÃ© Â«Â %sÂ Â» dans %B est rÃ©fÃ©rencÃ© par DSO"
 
-#: elflink.c:8679
+#: elflink.c:9552
+#, c-format
 msgid "%B: local symbol `%s' in %B is referenced by DSO"
 msgstr "%B: symbole local Â«Â %sÂ Â» dans %B est rÃ©fÃ©rencÃ© par DSO"
 
-#: elflink.c:8776
+#: elflink.c:9638
+#, c-format
 msgid "%B: could not find output section %A for input section %A"
 msgstr "%B: ne peut repÃ©rer la section de sortie %A pour la section d'entrÃ©e %A"
 
-#: elflink.c:8899
+#: elflink.c:9792
+#, c-format
 msgid "%B: protected symbol `%s' isn't defined"
 msgstr "%B: symbole protÃ©gÃ© Â«Â %sÂ Â» n'est pas dÃ©fini"
 
-#: elflink.c:8901
+#: elflink.c:9795
+#, c-format
 msgid "%B: internal symbol `%s' isn't defined"
 msgstr "%B: symbole interne Â«Â %sÂ Â» n'est pas dÃ©fini"
 
-#: elflink.c:8903
+#: elflink.c:9798
+#, c-format
 msgid "%B: hidden symbol `%s' isn't defined"
 msgstr "%B: symbole cachÃ© Â«Â %sÂ Â» n'est pas dÃ©fini"
 
-#: elflink.c:9432
+#: elflink.c:9829
+#, c-format
+msgid "%B: No symbol version section for versioned symbol `%s'"
+msgstr "%B: Pas de section de version de symbole pour le symbole avec version Â«Â %sÂ Â»"
+
+#: elflink.c:10436
+#, c-format
 msgid "error: %B: size of section %A is not multiple of address size"
 msgstr "erreur: %B: le rÃ©adressage de la section %A n'est pas un multiple de la taille des adresses"
 
-#: elflink.c:9479
-msgid "error: %B contains a reloc (0x%s) for section %A that references a non-existent global symbol"
-msgstr "erreur: %B contient une relocalisation (0x%s) pour la section %A qui fait rÃ©fÃ©rence Ã  un symbole global inexistant"
+#: elflink.c:10481
+#, c-format
+msgid "error: %B contains a reloc (%#Lx) for section %A that references a non-existent global symbol"
+msgstr "erreur: %B contient un rÃ©adressage (%#Lx) pour la section %A qui fait rÃ©fÃ©rence Ã  un symbole global inexistant"
 
-#: elflink.c:10214
+#: elflink.c:11236
+#, c-format
 msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections"
-msgstr "%A a, Ã  la fois, des sections ordonnÃ©es [Â«%AÂ» dans %B] et dÃ©sordonnÃ©es [Â«%AÂ» dans %B]"
+msgstr "%A a, Ã  la fois, des sections ordonnÃ©es [Â«Â %AÂ Â» dans %B] et dÃ©sordonnÃ©es [Â«Â %AÂ Â» dans %B]"
 
-#: elflink.c:10219
+#: elflink.c:11242
 #, c-format
 msgid "%A has both ordered and unordered sections"
 msgstr "%A a, Ã  la fois, des sections ordonnÃ©es et dÃ©sordonnÃ©es"
 
-#: elflink.c:10784
+#: elflink.c:11344
+msgid "%B: no symbol found for import library"
+msgstr "%B: aucun symbole trouvÃ© dans la bibliothÃ¨que d'importation"
+
+#: elflink.c:11966
+#, c-format
 msgid "%B: file class %s incompatible with %s"
 msgstr "%B: classe de fichier %s incompatible avec %s"
 
-#: elflink.c:11093 elflink.c:11137
-msgid "%B: could not find output section %s"
-msgstr "%B: ne peut repÃ©rer la section de sortie %s"
+#: elflink.c:12183
+msgid "%B: failed to generate import library"
+msgstr "%B: Ã©chec de la gÃ©nÃ©ration de la bibliothÃ¨que d'importation"
 
-#: elflink.c:11098
+#: elflink.c:12302
 #, c-format
 msgid "warning: %s section has zero size"
 msgstr "attention: section %s a une taille nulle"
 
-#: elflink.c:11143
+#: elflink.c:12350
 #, c-format
 msgid "warning: section '%s' is being made into a note"
 msgstr "attention: section Â«Â %sÂ Â» changÃ© en une note"
 
-#: elflink.c:11212
+#: elflink.c:12442
 msgid "%P%X: read-only segment has dynamic relocations.\n"
 msgstr "%P%X: segment en lecture seule a des rÃ©adressages dynamiques.\n"
 
-#: elflink.c:11215
+#: elflink.c:12445
 msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n"
 msgstr "%P: attention: crÃ©ation d'un DT_TEXTREL dans un objet partagÃ©.\n"
 
-#: elflink.c:11402
+#: elflink.c:12570
 msgid "%P%X: can not read symbols: %E\n"
 msgstr "%P%X: ne peut pas lire les symboles: %E\n"
 
-#: elflink.c:11792
-msgid "Removing unused section '%s' in file '%B'"
-msgstr "Suppression de la section inutilisÃ©e Â«%sÂ» dans le fichier Â«%BÂ»"
+#: elflink.c:12732
+msgid "%F%P: corrupt input: %B\n"
+msgstr "%F%P: entrÃ©e corrompue: %B\n"
 
-#: elflink.c:11998
-msgid "Warning: gc-sections option ignored"
-msgstr "Attention: l'option de la section gc est ignorÃ©e"
+#: elflink.c:13421
+#, c-format
+msgid "%B: %A+%#Lx: No symbol found for INHERIT"
+msgstr "%B: %A+%#Lx: Pas de symbole trouvÃ© pour INHERIT"
 
-#: elflink.c:12277
+#: elflink.c:13597
 #, c-format
 msgid "Unrecognized INPUT_SECTION_FLAG %s\n"
 msgstr "INPUT_SECTION_FLAG %s non reconnu\n"
 
-#: elfxx-mips.c:1234
+#: elfxx-mips.c:1444
 msgid "static procedure (no name)"
 msgstr "procÃ©dure statique (sans name)"
 
-#: elfxx-mips.c:5259
+#: elfxx-mips.c:5627
 msgid "MIPS16 and microMIPS functions cannot call each other"
 msgstr "Des fonctions MIPS16 et microMIPS ne peuvent pas s'appeler l'une l'autre"
 
-#: elfxx-mips.c:5856
-msgid "%B: %A+0x%lx: Direct jumps between ISA modes are not allowed; consider recompiling with interlinking enabled."
-msgstr "%B: %A+0x%lx: Les sauts directs entre modes ISA ne sont pas permis; envisagez de recompiler avec l'interliage activÃ©."
+#: elfxx-mips.c:6370
+msgid "%X%H: Unsupported JALX to the same ISA mode\n"
+msgstr "%X%H: JALX vers le mÃªme mode ISA n'est pas supportÃ©\n"
+
+#: elfxx-mips.c:6403
+msgid "%X%H: Unsupported jump between ISA modes; consider recompiling with interlinking enabled\n"
+msgstr "%X%H: Saut non supportÃ© entre modes ISAÂ ; envisagez de recompiler avec l'interliage activÃ©.\n"
+
+#: elfxx-mips.c:6444
+msgid "%X%H: Cannot convert branch between ISA modes to JALX: relocation out of range\n"
+msgstr "%X%H: Impossible de convertir les branchements vers JALX entre modes ISA: rÃ©adressage hors portÃ©e\n"
+
+#: elfxx-mips.c:6456
+msgid "%X%H: Unsupported branch between ISA modes\n"
+msgstr "%X%H: Branchement entre modes ISA non supportÃ©\n"
 
-#: elfxx-mips.c:6519 elfxx-mips.c:6742
+#: elfxx-mips.c:7134 elfxx-mips.c:7369
+#, c-format
 msgid "%B: Warning: bad `%s' option size %u smaller than its header"
-msgstr "%B: Attention: mauvaise Â«%sÂ» taille d'option %u plus petite que son en-tÃªte"
+msgstr "%B: Attention: mauvaise Â«Â %sÂ Â» taille d'option %u plus petite que son en-tÃªte"
 
-#: elfxx-mips.c:7495 elfxx-mips.c:7620
+#: elfxx-mips.c:8125 elfxx-mips.c:8251
+#, c-format
 msgid "%B: Warning: cannot determine the target function for stub section `%s'"
-msgstr "%B: Attention: ne peut pas dÃ©terminer la fonction cible de la section d'Ã©bauche Â«%sÂ»"
+msgstr "%B: Attention: ne peut pas dÃ©terminer la fonction cible de la section d'Ã©bauche Â«Â %sÂ Â»"
 
-#: elfxx-mips.c:7749
+#: elfxx-mips.c:8383
+#, c-format
 msgid "%B: Malformed reloc detected for section %s"
-msgstr "%B: relocalisation mal composÃ©e dÃ©tectÃ©e dans la section %s"
+msgstr "%B: RÃ©adressage mal composÃ© dÃ©tectÃ© dans la section %s"
 
-#: elfxx-mips.c:7801
+#: elfxx-mips.c:8459
+#, c-format
 msgid "%B: GOT reloc at 0x%lx not expected in executables"
-msgstr "%B: relocalisation GOT Ã  0x%lx pas attendue dans les executables"
+msgstr "%B: RÃ©adressage GOT Ã  0x%lx pas attendu dans les exÃ©cutables"
 
-#: elfxx-mips.c:7930
+#: elfxx-mips.c:8597
+#, c-format
 msgid "%B: CALL16 reloc at 0x%lx not against global symbol"
-msgstr "%B: appel CALL16 de relocalisation Ã  0x%lx qui n'est pas pour un symbole global"
+msgstr "%B: appel CALL16 de rÃ©adressage Ã  0x%lx qui n'est pas pour un symbole global"
+
+#: elfxx-mips.c:9219
+#, c-format
+msgid "non-dynamic relocations refer to dynamic symbol %s"
+msgstr "rÃ©adressages non dynamiques font rÃ©fÃ©rence au symbole dynamique %s"
+
+#: elfxx-mips.c:10139
+#, c-format
+msgid "%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'"
+msgstr "%B: Ne trouve pas de rÃ©adressage LO16 correspondant vers Â«Â %sÂ Â» pour %s Ã  0x%lx de la section Â«Â %AÂ Â»"
+
+#: elfxx-mips.c:10279
+msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)"
+msgstr "la taille des petites donnÃ©es de la section dÃ©passe 64KB; abaissez la limite de taille des petites donnÃ©es (voyez l'option -G)"
+
+#: elfxx-mips.c:10298
+msgid "Cannot convert a jump to JALX for a non-word-aligned address"
+msgstr "Impossible de convertir un saut vers JALX pour une adresse non alignÃ©e sur un mot"
+
+#: elfxx-mips.c:10301
+msgid "Jump to a non-word-aligned address"
+msgstr "Saut vers une adresse non alignÃ©e sur un mot"
+
+#: elfxx-mips.c:10302
+msgid "Jump to a non-instruction-aligned address"
+msgstr "Saut vers une adresse non alignÃ©e sur une instruction"
+
+#: elfxx-mips.c:10305
+msgid "Cannot convert a branch to JALX for a non-word-aligned address"
+msgstr "Impossible de convertir un branchement vers JALX pour une adresse non alignÃ©e sur un mot"
+
+#: elfxx-mips.c:10307
+msgid "Branch to a non-instruction-aligned address"
+msgstr "Branchement vers une adresse non alignÃ©e sur une instruction"
+
+#: elfxx-mips.c:10309
+msgid "PC-relative load from unaligned address"
+msgstr "Chargement relatif au PC depuis une adresse non alignÃ©e"
+
+#: elfxx-mips.c:10683 elfxx-mips.c:11251
+#, c-format
+msgid "%B: `%A' offset of %ld from `%A' beyond the range of ADDIUPC"
+msgstr "%B: Â«Â %AÂ Â» offset de %ld depuis Â«Â %AÂ Â» au delÃ  de la limite de ADDIUPC"
+
+#: elfxx-mips.c:14174
+#, c-format
+msgid "%B: Unknown architecture %s"
+msgstr "%B: Architecture %s inconnue"
+
+#: elfxx-mips.c:14704
+#, c-format
+msgid "%B: illegal section name `%A'"
+msgstr "%B: nom illÃ©gal de section Â«Â %AÂ Â»"
+
+#: elfxx-mips.c:14981
+msgid "%B: warning: linking abicalls files with non-abicalls files"
+msgstr "%B: attention: Ã©dition de liens des fichiers abicalls avec des fichiers non abicalls"
+
+#: elfxx-mips.c:14998
+msgid "%B: linking 32-bit code with 64-bit code"
+msgstr "%B: Ã©dition de liens de code 32 bits avec du code 64 bits"
+
+#: elfxx-mips.c:15030 elfxx-mips.c:15096 elfxx-mips.c:15111
+#, c-format
+msgid "%B: linking %s module with previous %s modules"
+msgstr "%B: Ã©dition de liens du module %s avec les modules prÃ©cÃ©dents %s"
+
+#: elfxx-mips.c:15054
+#, c-format
+msgid "%B: ABI mismatch: linking %s module with previous %s modules"
+msgstr "%B: ABI ne concorde pas: Ã©dition de lien du module %s avec les modules prÃ©cÃ©dents %s"
 
-#: elfxx-mips.c:8645
+#: elfxx-mips.c:15079
 #, c-format
-msgid "non-dynamic relocations refer to dynamic symbol %s"
-msgstr "rÃ©adressages non dynamiques font rÃ©fÃ©rence au symbole dynamique %s"
+msgid "%B: ASE mismatch: linking %s module with previous %s modules"
+msgstr "%B: ASE ne concorde pas: Ã©dition de lien du module %s avec les modules prÃ©cÃ©dents %s"
 
-#: elfxx-mips.c:9347
-msgid "%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'"
-msgstr "%B: Ne trouve pas de relocalisation LO16 correspondante vers Â«%sÂ» pour %s Ã  0x%lx de la section Â«%AÂ»"
+#: elfxx-mips.c:15214
+msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses unknown floating point ABI %d"
+msgstr "Attention: %B utilise l'ABI virgule flottante inconnue %d (dÃ©finie par %B), %B utilise l'ABI virgule flottante inconnue %d"
 
-#: elfxx-mips.c:9486
-msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)"
-msgstr "la taille des petites donnÃ©es de la section dÃ©passe 64KB; abaissez la limite de taille des petites donnÃ©es (voyez l'option -G)"
+#: elfxx-mips.c:15220
+#, c-format
+msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses %s"
+msgstr "Attention: %B utilise l'ABI virgule flottante inconnue %d (dÃ©finie par %B), %B utilise %s"
 
-#: elfxx-mips.c:9505
-msgid "JALX to a non-word-aligned address"
-msgstr "JALX vers une adresse non alignÃ©e sur un mot"
+#: elfxx-mips.c:15226
+#, c-format
+msgid "Warning: %B uses %s (set by %B), %B uses unknown floating point ABI %d"
+msgstr "Attention: %B utilise %s (dÃ©fini par %B), %B utilise l'ABI virgule flottante inconnue %d"
 
-#: elfxx-mips.c:13266
+#: elfxx-mips.c:15240
 #, c-format
-msgid "%s: illegal section name `%s'"
-msgstr "%s: nom illÃ©gal de section Â«%sÂ»"
+msgid "Warning: %B uses %s (set by %B), %B uses %s"
+msgstr "Attention: %B utilise %s (dÃ©fini par %B), %B utilise Â«Â %sÂ Â»"
 
-#: elfxx-mips.c:13645 elfxx-mips.c:13671
-msgid "Warning: %B uses -msingle-float, %B uses -mdouble-float"
-msgstr "Attention: %B utilise -msingle-float, %B utilise -mdouble-float"
+#: elfxx-mips.c:15259
+#, c-format
+msgid "Warning: %B uses %s (set by %B), %B uses unknown MSA ABI %d"
+msgstr "Attention: %B utilise %s (dÃ©fini par %B), %B utilise l'ABI MSA inconnue %d"
 
-#: elfxx-mips.c:13657 elfxx-mips.c:13713
-msgid "Warning: %B uses -msingle-float, %B uses -mips32r2 -mfp64"
-msgstr "Attention: %B utilise -msingle-float, %B utilise -mips32r2 -mfp64"
+#: elfxx-mips.c:15271
+#, c-format
+msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses %s"
+msgstr "Attention: %B utilise l'ABI MSA inconnue %d (dÃ©finie par %B), %B utilise %s"
 
-#: elfxx-mips.c:13683 elfxx-mips.c:13719
-msgid "Warning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64"
-msgstr "Attention: %B utilise -mdouble-float, %B utilise -mips32r2 -mfp64"
+#: elfxx-mips.c:15280
+#, c-format
+msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses unknown MSA ABI %d"
+msgstr "Attention: %B utilise l'ABI MSA inconnue %d (dÃ©finie par %B), %B utilise l'ABI MSA inconnue %d"
 
-#: elfxx-mips.c:13761
+#: elfxx-mips.c:15342
 msgid "%B: endianness incompatible with that of the selected emulation"
 msgstr "%B: systÃ¨me de poids fort ou faible incompatible avec celui sÃ©lectionnÃ© pour l'Ã©mulation"
 
-#: elfxx-mips.c:13772
+#: elfxx-mips.c:15356
 msgid "%B: ABI is incompatible with that of the selected emulation"
 msgstr "%B: ABI est incompatible avec celui sÃ©lectionnÃ© pour l'Ã©mulation"
 
-#: elfxx-mips.c:13856
-msgid "%B: warning: linking abicalls files with non-abicalls files"
-msgstr "%B: attention: Ã©dition de liens des fichiers abicalls avec des fichiers non abicalls"
+#: elfxx-mips.c:15408
+msgid "%B: warning: Inconsistent ISA between e_flags and .MIPS.abiflags"
+msgstr "%B: attention: ISA incohÃ©rentes entre e_flags et .MIPS.abiflags"
 
-#: elfxx-mips.c:13873
-msgid "%B: linking 32-bit code with 64-bit code"
-msgstr "%B: Ã©dition de liens de code 32 bits avec du code 64 bits"
+#: elfxx-mips.c:15413
+msgid "%B: warning: Inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
+msgstr "%B: attention: ABI FP incohÃ©rentes entre .gnu.attributes and .MIPS.abiflags"
 
-#: elfxx-mips.c:13901
-msgid "%B: linking %s module with previous %s modules"
-msgstr "%B: Ã©dition de liens du module %s avec les modules prÃ©cÃ©dents %s"
+#: elfxx-mips.c:15417
+msgid "%B: warning: Inconsistent ASEs between e_flags and .MIPS.abiflags"
+msgstr "%B: attention: ASE incohÃ©rents entre e_flags et .MIPS.abiflags"
 
-#: elfxx-mips.c:13924
-msgid "%B: ABI mismatch: linking %s module with previous %s modules"
-msgstr "%B: ABI ne concorde pas: Ã©dition de lien du module %s avec les modules prÃ©cÃ©dents %s"
+#: elfxx-mips.c:15424
+msgid "%B: warning: Inconsistent ISA extensions between e_flags and .MIPS.abiflags"
+msgstr "%B: attention: Extensions ISA incohÃ©rentes entre e_flags et .MIPS.abiflags"
 
-#: elfxx-mips.c:13948
-msgid "%B: ASE mismatch: linking %s module with previous %s modules"
-msgstr "%B: ASE ne concorde pas: Ã©dition de lien du module %s avec les modules prÃ©cÃ©dents %s"
+#: elfxx-mips.c:15428
+msgid "%B: warning: Unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
+msgstr "%B: attention: Fanion inattendu dans le champ flags2 de .MIPS.abiflags (0x%lx)"
+
+#: elfxx-mips.c:15617
+msgid "-mips32r2 -mfp64 (12 callee-saved)"
+msgstr "-mips32r2 -mfp64 (12 callee-saved)"
+
+#: elfxx-mips.c:15667 elfxx-mips.c:15678
+msgid "None"
+msgstr "aucun"
+
+#: elfxx-mips.c:15669 elfxx-mips.c:15741
+msgid "Unknown"
+msgstr "Inconnu"
+
+#: elfxx-mips.c:15752
+#, c-format
+msgid "Hard or soft float\n"
+msgstr "Flottant matÃ©riel ou logiciel\n"
+
+#: elfxx-mips.c:15755
+#, c-format
+msgid "Hard float (double precision)\n"
+msgstr "Flottant matÃ©riel (double prÃ©cision)\n"
+
+#: elfxx-mips.c:15758
+#, c-format
+msgid "Hard float (single precision)\n"
+msgstr "Flottant matÃ©riel (simple prÃ©cision)\n"
+
+#: elfxx-mips.c:15761
+#, c-format
+msgid "Soft float\n"
+msgstr "Flottant logiciel\n"
+
+#: elfxx-mips.c:15764
+#, c-format
+msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
+msgstr "Flottant matÃ©riel (MIPS32r2 64 bits FPU 12 callee-saved)\n"
+
+#: elfxx-mips.c:15767
+#, c-format
+msgid "Hard float (32-bit CPU, Any FPU)\n"
+msgstr "Flottant matÃ©riel (processeur 32 bits, tout coprocesseur)\n"
+
+#: elfxx-mips.c:15770
+#, c-format
+msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
+msgstr "Flottant matÃ©riel (processeur 32 bits, coprocesseur 64 bits)\n"
+
+#: elfxx-mips.c:15773
+#, c-format
+msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
+msgstr "CompatibilitÃ© flottant matÃ©riel (processeur 32 bits, coprocesseur 64 bits)\n"
 
-#: elfxx-mips.c:14106
+#: elfxx-mips.c:15805
 #, c-format
 msgid " [abi=O32]"
 msgstr " [abi=O32]"
 
-#: elfxx-mips.c:14108
+#: elfxx-mips.c:15807
 #, c-format
 msgid " [abi=O64]"
 msgstr " [abi=O64]"
 
-#: elfxx-mips.c:14110
+#: elfxx-mips.c:15809
 #, c-format
 msgid " [abi=EABI32]"
 msgstr " [abi=EABI32]"
 
-#: elfxx-mips.c:14112
+#: elfxx-mips.c:15811
 #, c-format
 msgid " [abi=EABI64]"
 msgstr " [abi=EABI64]"
 
-#: elfxx-mips.c:14114
+#: elfxx-mips.c:15813
 #, c-format
 msgid " [abi unknown]"
 msgstr " [abi inconnu]"
 
-#: elfxx-mips.c:14116
+#: elfxx-mips.c:15815
 #, c-format
 msgid " [abi=N32]"
 msgstr " [abi=N32]"
 
-#: elfxx-mips.c:14118
+#: elfxx-mips.c:15817
 #, c-format
 msgid " [abi=64]"
 msgstr " [abi=64]"
 
-#: elfxx-mips.c:14120
+#: elfxx-mips.c:15819
 #, c-format
 msgid " [no abi set]"
 msgstr " [aucun jeu abi]"
 
-#: elfxx-mips.c:14141
+#: elfxx-mips.c:15844
 #, c-format
 msgid " [unknown ISA]"
 msgstr " [ISA inconnu]"
 
-#: elfxx-mips.c:14155
+#: elfxx-mips.c:15864
 #, c-format
 msgid " [not 32bitmode]"
 msgstr " [aucun mode 32 bits]"
 
-#: elfxx-sparc.c:596
+#: elfxx-riscv.c:948
+#, c-format
+msgid "unrecognized relocation (0x%x)"
+msgstr "RÃ©adressage non reconnu (0x%x)"
+
+#: elfxx-sparc.c:639
 #, c-format
 msgid "invalid relocation type %d"
 msgstr "type de rÃ©adressage %d invalide"
 
-#: elfxx-tilegx.c:3952
+#: elfxx-sparc.c:3301
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5002
+#, c-format
+msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
+msgstr "%B: le rÃ©adressage %s sur le symbole STT_GNU_IFUNC Â«Â %sÂ Â» n'est pas gÃ©rÃ© par %s"
+
+#: elfxx-tilegx.c:4436
+#, c-format
 msgid "%B: Cannot link together %s and %s objects."
 msgstr "%B: Ne peut lier ensemble les objets %s et %s."
 
-#: i386linux.c:451 m68klinux.c:456 sparclinux.c:450
+#: i386linux.c:416 m68klinux.c:419 sparclinux.c:412
 #, c-format
 msgid "Output file requires shared library `%s'\n"
-msgstr "La sortie requiert la librairie partagÃ©e Â«%sÂ»\n"
+msgstr "La sortie requiert la librairie partagÃ©e Â«Â %sÂ Â»\n"
 
-#: i386linux.c:459 m68klinux.c:464 sparclinux.c:458
+#: i386linux.c:424 m68klinux.c:428 sparclinux.c:421
 #, c-format
 msgid "Output file requires shared library `%s.so.%s'\n"
-msgstr "Le fichier de sortie requiert une librairie partagÃ©e Â«%s.so.%sÂ»\n"
+msgstr "Le fichier de sortie requiert une librairie partagÃ©e Â«Â %s.so.%sÂ Â»\n"
 
-#: i386linux.c:648 i386linux.c:698 m68klinux.c:656 m68klinux.c:704
-#: sparclinux.c:648 sparclinux.c:698
+#: i386linux.c:611 i386linux.c:661 m68klinux.c:617 m68klinux.c:665
+#: sparclinux.c:608 sparclinux.c:658
 #, c-format
 msgid "Symbol %s not defined for fixups\n"
 msgstr "Symbole %s n'est pas dÃ©fini pour les corrections\n"
 
-#: i386linux.c:722 m68klinux.c:728 sparclinux.c:722
+#: i386linux.c:685 m68klinux.c:689 sparclinux.c:682
 msgid "Warning: fixup count mismatch\n"
 msgstr "Attention: nombre de corrections en dÃ©saccord\n"
 
 #: ieee.c:159
 #, c-format
-msgid "%s: string too long (%d chars, max 65535)"
-msgstr "%s: chaÃ®ne trop longue (%d caractÃ¨res, max 65535)"
+msgid "%B: string too long (%d chars, max 65535)"
+msgstr "%B: chaÃ®ne trop longue (%d caractÃ¨res, max 65535)"
+
+#: ieee.c:226
+#, c-format
+msgid "IEEE parser: string length: %#lx longer than buffer: %#lx"
+msgstr "Analyseur IEEE: longueur de chaÃ®ne: %#lx plus longue que le tampon: %#lx"
 
-#: ieee.c:286
+#: ieee.c:302
 #, c-format
-msgid "%s: unrecognized symbol `%s' flags 0x%x"
-msgstr "%s: symbole non reconnue Â«%sÂ» fanions 0x%x"
+msgid "%B: unrecognized symbol `%s' flags 0x%x"
+msgstr "%B: symbole non reconnue Â«Â %sÂ Â» fanions 0x%x"
 
-#: ieee.c:792
+#: ieee.c:837
+#, c-format
 msgid "%B: unimplemented ATI record %u for symbol %u"
 msgstr "%B: enregistrement ATI non implantÃ© %u pour le symbole %u"
 
-#: ieee.c:816
+#: ieee.c:862
+#, c-format
 msgid "%B: unexpected ATN type %d in external part"
 msgstr "%B: type ATN %d inattendu dans la partie externe"
 
-#: ieee.c:838
+#: ieee.c:884
 msgid "%B: unexpected type after ATN"
 msgstr "%B: type inattendu aprÃ¨s ATN"
 
 #: ihex.c:230
+#, c-format
 msgid "%B:%d: unexpected character `%s' in Intel Hex file"
-msgstr "%B:%d: caractÃ¨re inattendu Â«%sÂ» dans le fichier Intel hexadÃ©cimal"
+msgstr "%B:%d: caractÃ¨re inattendu Â«Â %sÂ Â» dans le fichier Intel hexadÃ©cimal"
 
-#: ihex.c:337
+#: ihex.c:338
+#, c-format
 msgid "%B:%u: bad checksum in Intel Hex file (expected %u, found %u)"
 msgstr "%B:%u: somme de contrÃ´le erronÃ©e dans le fichier Intel hexadÃ©cimal (attendu %u, obtenu %u)"
 
-#: ihex.c:392
+#: ihex.c:394
+#, c-format
 msgid "%B:%u: bad extended address record length in Intel Hex file"
 msgstr "%B:%u: longueur erronÃ©e de l'enregistrement d'adresse Ã©tendue dans le fichier Intel hexadÃ©cimal"
 
-#: ihex.c:409
+#: ihex.c:412
+#, c-format
 msgid "%B:%u: bad extended start address length in Intel Hex file"
 msgstr "%B:%u: longueur erronÃ©e d'adresse Ã©tendue de dÃ©but dans le fichier Intel hexadÃ©cimal"
 
-#: ihex.c:426
+#: ihex.c:430
+#, c-format
 msgid "%B:%u: bad extended linear address record length in Intel Hex file"
 msgstr "%B:%u: longueur erronÃ©e de l'enregistrement d'adresse Ã©tendue linÃ©aire dans le fichier Intel hexadÃ©cimal"
 
-#: ihex.c:443
+#: ihex.c:448
+#, c-format
 msgid "%B:%u: bad extended linear start address length in Intel Hex file"
 msgstr "%B:%u: longueur erronÃ©e d'adresse Ã©tendue linÃ©raire de dÃ©but dans le fichier Intel hexadÃ©cimal"
 
-#: ihex.c:460
+#: ihex.c:466
+#, c-format
 msgid "%B:%u: unrecognized ihex type %u in Intel Hex file"
 msgstr "%B:%u: type ihex %u non reconnu dans le fichier Intel hexadÃ©cima"
 
-#: ihex.c:579
+#: ihex.c:585
 msgid "%B: internal error in ihex_read_section"
 msgstr "%B: erreur interne dans ihex_read_section"
 
-#: ihex.c:613
+#: ihex.c:619
 msgid "%B: bad section length in ihex_read_section"
 msgstr "%B: longuer erronÃ©e de section dans ihex_read_section"
 
-#: ihex.c:826
+#: ihex.c:833
 #, c-format
-msgid "%s: address 0x%s out of range for Intel Hex file"
-msgstr "%s: adresse 0x%s hors limite pour le fichier Intel hexadÃ©cimal"
+msgid "%B: address 0x%s out of range for Intel Hex file"
+msgstr "%B: adresse 0x%s hors limite pour le fichier Intel hexadÃ©cimal"
 
-#: libbfd.c:863
+#: libbfd.c:799
+#, c-format
 msgid "%B: unable to get decompressed section %A"
 msgstr "%B: impossible d'obtenir la section dÃ©compressÃ©e %A"
 
-#: libbfd.c:1012
-msgid "%B: compiled for a big endian system and target is little endian"
-msgstr ""
-"%B: compilÃ© pour un systÃ¨me Ã  octets de poids fort alors que la cible\n"
-"est un systÃ¨me Ã  octets de poids faible"
-
-#: libbfd.c:1014
-msgid "%B: compiled for a little endian system and target is big endian"
-msgstr ""
-"%B: compilÃ© pour un systÃ¨me Ã  octets de poids faible alors que la cible\n"
-"est un systÃ¨me Ã  octets de poids fort"
-
-#: libbfd.c:1043
+#: libbfd.c:963
 #, c-format
 msgid "Deprecated %s called at %s line %d in %s\n"
 msgstr "%s dÃ©prÃ©ciÃ© appelÃ© Ã  %s dans la ligne %d dans %s\n"
 
-#: libbfd.c:1046
+#: libbfd.c:966
 #, c-format
 msgid "Deprecated %s called\n"
 msgstr "%s appel dÃ©prÃ©ciÃ©\n"
 
-#: linker.c:1872
+#: linker.c:1669
+#, c-format
 msgid "%B: indirect symbol `%s' to `%s' is a loop"
-msgstr "%B: symbole indirect Â«%sÂ» vers Â«%sÂ» est une boucle"
+msgstr "%B: symbole indirect Â«Â %sÂ Â» vers Â«Â %sÂ Â» est une boucle"
 
-#: linker.c:2736
+#: linker.c:2539
 #, c-format
 msgid "Attempt to do relocatable link with %s input and %s output"
-msgstr "Tentative de relocalisation d'un lien avec %s Ã  l'entrÃ©e et %s Ã  la sortie"
+msgstr "Tentative de rÃ©adressage d'un lien avec %s Ã  l'entrÃ©e et %s Ã  la sortie"
 
-#: linker.c:3021
+#: linker.c:2825
+#, c-format
 msgid "%B: ignoring duplicate section `%A'\n"
 msgstr "%B: ignore les sections dupliquÃ©es Â«Â %AÂ Â»\n"
 
-#: linker.c:3030 linker.c:3039
+#: linker.c:2835 linker.c:2845
+#, c-format
 msgid "%B: duplicate section `%A' has different size\n"
 msgstr "%B: section dupliquÃ©e Â«Â %AÂ Â» avec des tailles diffÃ©rentes\n"
 
-#: linker.c:3047 linker.c:3052
+#: linker.c:2854 linker.c:2860
+#, c-format
 msgid "%B: could not read contents of section `%A'\n"
 msgstr "%B: ne peut pas lire le contenu de la section Â«Â %AÂ Â»\n"
 
-#: linker.c:3056
+#: linker.c:2865
+#, c-format
 msgid "%B: duplicate section `%A' has different contents\n"
 msgstr "%B: section dupliquÃ©e Â«Â %AÂ Â» a des contenus diffÃ©rents\n"
 
-#: mach-o.c:407
+#: linker.c:3353
+msgid "%B: compiled for a big endian system and target is little endian"
+msgstr ""
+"%B: compilÃ© pour un systÃ¨me Ã  octets de poids fort alors que la cible\n"
+"est un systÃ¨me Ã  octets de poids faible"
+
+#: linker.c:3356
+msgid "%B: compiled for a little endian system and target is big endian"
+msgstr ""
+"%B: compilÃ© pour un systÃ¨me Ã  octets de poids faible alors que la cible\n"
+"est un systÃ¨me Ã  octets de poids fort"
+
+#: mach-o.c:779
 msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols"
 msgstr "bfd_mach_o_canonicalize_symtab: impossible de charger les symboles"
 
-#: mach-o.c:1301
+#: mach-o.c:1981
+msgid "sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab commands."
+msgstr "dÃ©solÃ©: modtab, toc et extrefsyms ne sont pas encore implÃ©mentÃ©s pour les commandes dysymtab."
+
+#: mach-o.c:2424
+#, c-format
+msgid "mach-o: there are too many sections (%u) maximum is 255,\n"
+msgstr "mach-o: il y a trop de sections (%u) le maximum est 255,\n"
+
+#: mach-o.c:2531
+#, c-format
+msgid "unable to allocate data for load command 0x%lx"
+msgstr "impossible d'allouer les donnÃ©es pour la commande de chargement 0x%lx"
+
+#: mach-o.c:2636
 #, c-format
 msgid "unable to write unknown load command 0x%lx"
 msgstr "impossible d'Ã©crire la commande de chargement inconnue 0x%lx"
 
-#: mach-o.c:1789
+#: mach-o.c:2820
+#, c-format
+msgid "section address (%lx) below start of segment (%lx)"
+msgstr "adresse de section (%lx) en deÃ§Ã  du dÃ©but du segment (%lx)"
+
+#: mach-o.c:2961
+#, c-format
+msgid "unable to layout unknown load command 0x%lx"
+msgstr "impossible de disposer la commande de chargement inconnue 0x%lx"
+
+#: mach-o.c:3497
+#, c-format
+msgid "bfd_mach_o_read_section_32: overlarge alignment value: 0x%x, using 32 instead"
+msgstr "bfd_mach_o_read_section_32: valeur d'alignement dÃ©mesurÃ©e: 0x%x, utilise 32 Ã  la place"
+
+#: mach-o.c:3540
+#, c-format
+msgid "bfd_mach_o_read_section_64: overlarge alignment value: 0x%x, using 32 instead"
+msgstr "bfd_mach_o_read_section_64: valeur d'alignement dÃ©mesurÃ©e: 0x%x, utilise 32 Ã  la place"
+
+#: mach-o.c:3591
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu"
 msgstr "bfd_mach_o_read_symtab_symbol: impossible de lire %d octets Ã  %lu"
 
-#: mach-o.c:1807
+#: mach-o.c:3610
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)"
 msgstr "bfd_mach_o_read_symtab_symbol: nom hors limites (%lu >= %lu)"
 
-#: mach-o.c:1892
+#: mach-o.c:3693
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined"
 msgstr "bfd_mach_o_read_symtab_symbol: le symbole Â«Â %sÂ Â» spÃ©cifie la section %d invalide (max %lu): laissÃ© non dÃ©fini"
 
-#: mach-o.c:1900
-#, c-format
-msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" is unsupported 'indirect' reference: setting to undefined"
-msgstr "bfd_mach_o_read_symtab_symbol: symbole Â«Â %sÂ Â» a la rÃ©fÃ©rence non supportÃ©e Â«Â indirectÂ Â»: laissÃ© non dÃ©fini"
-
-#: mach-o.c:1906
+#: mach-o.c:3712
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined"
 msgstr "bfd_mach_o_read_symtab_symbol: symbole Â«Â %sÂ Â» spÃ©cifie le champ de type 0x%x invalide: laissÃ© non dÃ©fini"
 
-#: mach-o.c:1979
+#: mach-o.c:3786
 msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols"
 msgstr "bfd_mach_o_read_symtab_symbols: impossible d'allouer la mÃ©moire pour les symboles"
 
-#: mach-o.c:2014
-#, c-format
-msgid "bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu"
-msgstr "bfd_mach_o_read_dysymtab_symbol: impossible de lire %lu octets Ã  %lu"
-
-#: mach-o.c:2734
-#, c-format
-msgid "unable to read unknown load command 0x%lx"
-msgstr "impossible de lire la commande de chargement inconnue 0x%lx"
+#: mach-o.c:4759
+msgid "%B: unknown load command 0x%lx"
+msgstr "%B: commande de chargement inconnue 0x%lx"
 
-#: mach-o.c:2915
+#: mach-o.c:4950
 #, c-format
 msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"
 msgstr "bfd_mach_o_scan: architecture 0x%lx/0x%lx inconnue"
 
-#: mach-o.c:3011
+#: mach-o.c:5055
 #, c-format
 msgid "unknown header byte-order value 0x%lx"
 msgstr "valeur d'ordre des octets de l'en-tÃªte 0x%lx est inconnue"
 
-#: mach-o.c:3577
-msgid "Mach-O header:\n"
-msgstr "En-tÃªte Mach-O:\n"
-
-#: mach-o.c:3578
-#, c-format
-msgid " magic     : %08lx\n"
-msgstr " magique    : %08lx\n"
-
-#: mach-o.c:3579
-#, c-format
-msgid " cputype   : %08lx (%s)\n"
-msgstr " typecpu    : %08lx (%s)\n"
-
-#: mach-o.c:3581
-#, c-format
-msgid " cpusubtype: %08lx\n"
-msgstr " soustypecpu: %08lx\n"
-
-#: mach-o.c:3582
+#: merge.c:864
 #, c-format
-msgid " filetype  : %08lx (%s)\n"
-msgstr " typefichier: %08lx (%s)\n"
+msgid "%B: access beyond end of merged section (%ld)"
+msgstr "%B: accÃ¨s au-delÃ  de la fin de la section fusionnÃ©e (%ld)"
 
-#: mach-o.c:3585
+#: mmo.c:468
 #, c-format
-msgid " ncmds     : %08lx (%lu)\n"
-msgstr " ncmds     : %08lx (%lu)\n"
+msgid "%B: No core to allocate section name %s\n"
+msgstr "%B: Pas de corps pour allouer un nom de section %s\n"
 
-#: mach-o.c:3586
+#: mmo.c:544
 #, c-format
-msgid " sizeofcmds: %08lx\n"
-msgstr " taillecmds: %08lx\n"
+msgid "%B: No core to allocate a symbol %d bytes long\n"
+msgstr "%B: pas de corps pour allouer un symbole de %d octets de longueur\n"
 
-#: mach-o.c:3587
+#: mmo.c:958
 #, c-format
-msgid " flags     : %08lx ("
-msgstr " fanions   : %08lx ("
+msgid "%B: attempt to emit contents at non-multiple-of-4 address 0x%lx\n"
+msgstr "%B: tentative d'Ã©mettre du contenu Ã  une adresse 0x%lx qui n'est pas un multiple de 4\n"
 
-#: mach-o.c:3589 vms-alpha.c:7674
-msgid ")\n"
-msgstr ")\n"
-
-#: mach-o.c:3590
-#, c-format
-msgid " reserved  : %08x\n"
-msgstr " rÃ©servÃ©   : %08x\n"
-
-#: mach-o.c:3600
-msgid "Segments and Sections:\n"
-msgstr "Segments et Sections:\n"
-
-#: mach-o.c:3601
-msgid " #: Segment name     Section name     Address\n"
-msgstr " #: Nom segment      Nom section      Adresse\n"
-
-#: merge.c:832
-#, c-format
-msgid "%s: access beyond end of merged section (%ld)"
-msgstr "%s: accÃ¨s au-delÃ  de la fin de la section fusionnÃ©e (%ld)"
+#: mmo.c:1255
+msgid "%B: invalid mmo file: initialization value for $255 is not `Main'\n"
+msgstr "%B: fichier mmo invalide: valeur d'initialisation pour $255 n'est pas Â«Â MainÂ Â»\n"
 
-#: mmo.c:456
+#: mmo.c:1402
 #, c-format
-msgid "%s: No core to allocate section name %s\n"
-msgstr "%s: pas de corps pour allouer un nom de section %s\n"
+msgid "%B: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
+msgstr "%B: sÃ©quence de caractÃ¨res large 0x%02X 0x%02X non supportÃ©e aprÃ¨s le nom de symbole dÃ©butant par Â«Â %sÂ Â»\n"
 
-#: mmo.c:531
+#: mmo.c:1636
 #, c-format
-msgid "%s: No core to allocate a symbol %d bytes long\n"
-msgstr "%s: pas de corps pour allouer un symbole de %d octets de longueur\n"
+msgid "%B: invalid mmo file: unsupported lopcode `%d'\n"
+msgstr "%B: fichier mmo invalide: lopcode Â«Â %dÂ Â» non supportÃ©\n"
 
-#: mmo.c:1187
+#: mmo.c:1647
 #, c-format
-msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n"
-msgstr "%s: fichier mmo invalide: valeur d'initialisation pour $255 n'est pas Â«MainÂ»\n"
+msgid "%B: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
+msgstr "%B: fichier mmo invalide: attendu YZ = 1 obtenu YZ = %d pour lop_quote\n"
 
-#: mmo.c:1332
+#: mmo.c:1685
 #, c-format
-msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
-msgstr "%s: sÃ©quence de caractÃ¨res large 0x%02X 0x%02X non supportÃ©e aprÃ¨s le nom de symbole dÃ©butant par Â«%sÂ»\n"
+msgid "%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
+msgstr "%B: fichier mmo invalide: attendu z = 1 ou z = 2, obtenu z = %d pour lop_loc\n"
 
-#: mmo.c:1565
+#: mmo.c:1736
 #, c-format
-msgid "%s: invalid mmo file: unsupported lopcode `%d'\n"
-msgstr "%s: fichier mmo invalide: lopcode Â«%dÂ» non supportÃ©\n"
+msgid "%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
+msgstr "%B: fichier mmo invalide: attendu z = 1 ou z = 2, obtenu z = %d pour lop_fixo\n"
 
-#: mmo.c:1575
+#: mmo.c:1777
 #, c-format
-msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
-msgstr "%s: fichier mmo invalide: attendu YZ = 1 obtenu YZ = %d pour lop_quote\n"
+msgid "%B: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
+msgstr "%B: fichier mmo invalide: attendu y = 0, obtenu y = %d pour lop_fixrx\n"
 
-#: mmo.c:1611
+#: mmo.c:1788
 #, c-format
-msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
-msgstr "%s: fichier mmo invalide: attendu z = 1 ou z = 2, obtenu z = %d pour lop_loc\n"
+msgid "%B: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
+msgstr "%B: fichier mmo invalide: attendu z = 16 ou z = 24, obtenu z = %d pour lop_fixrx\n"
 
-#: mmo.c:1657
+#: mmo.c:1813
 #, c-format
-msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
-msgstr "%s: fichier mmo invalide: attendu z = 1 ou z = 2, obtenu z = %d pour lop_fixo\n"
+msgid "%B: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n"
+msgstr "%B: fichier mmo invalide: octet de tÃªte du mot de l'opÃ©rande doit Ãªtre 0 ou 1, obtenu %d pour lop_fixrx\n"
 
-#: mmo.c:1696
+#: mmo.c:1838
 #, c-format
-msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
-msgstr "%s: fichier mmo invalide: attendu y = 0, obtenu y = %d pour lop_fixrx\n"
+msgid "%B: cannot allocate file name for file number %d, %d bytes\n"
+msgstr "%B: ne paut pas allouer un nom de ficheir pour le no. de fichier %d, %d octets\n"
 
-#: mmo.c:1705
+#: mmo.c:1860
 #, c-format
-msgid "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
-msgstr "%s: fichier mmo invalide: attendu z = 16 ou z = 24, obtenu z = %d pour lop_fixrx\n"
+msgid "%B: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
+msgstr "%B: fichier mmo invalide: no. de fichier %d Â«Â %sÂ Â», a dÃ©jÃ  Ã©tÃ© entrÃ© en tant que Â«Â %sÂ Â»\n"
 
-#: mmo.c:1728
+#: mmo.c:1874
 #, c-format
-msgid "%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n"
-msgstr "%s: fichier mmo invalide: octet de tÃªte du mot de l'opÃ©rande doit Ãªtre 0 ou 1, obtenu %d pour lop_fixrx\n"
+msgid "%B: invalid mmo file: file name for number %d was not specified before use\n"
+msgstr "%B: fichier mmo invalide: nom de fichier %d n'a pas Ã©tÃ© spÃ©cifiÃ© avant son utilisation\n"
 
-#: mmo.c:1751
+#: mmo.c:1981
 #, c-format
-msgid "%s: cannot allocate file name for file number %d, %d bytes\n"
-msgstr "%s: ne paut pas allouer un nom de ficheir pour le no. de fichier %d, %d octets\n"
+msgid "%B: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
+msgstr "%B: fichier mmo invalide: champs y et z de lop_stab non nul, y: %d, z: %d\n"
 
-#: mmo.c:1771
+#: mmo.c:2018
 #, c-format
-msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
-msgstr "%s: fichier mmo invalide: no. de fichier %d Â«%sÂ», a dÃ©jÃ  Ã©tÃ© entrÃ© en tant que Â«%sÂ»\n"
+msgid "%B: invalid mmo file: lop_end not last item in file\n"
+msgstr "%B: fichier mmo invalide: lop_end n'est pas le dernier Ã©lement dans le fichier\n"
 
-#: mmo.c:1784
+#: mmo.c:2032
 #, c-format
-msgid "%s: invalid mmo file: file name for number %d was not specified before use\n"
-msgstr "%s: fichier mmo invalide: nom de fichier %d n'a pas Ã©tÃ© spÃ©cifiÃ© avant son utilisation\n"
+msgid "%B: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n"
+msgstr "%B: fichier mmo invalide: YZ de lop_end (%ld) n'est pas Ã©gal au nombre de tetras du lop_stab prÃ©cÃ©dent (%ld)\n"
 
-#: mmo.c:1890
+#: mmo.c:2743
 #, c-format
-msgid "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
-msgstr "%s: fichier mmo invalide: champs y et z de lop_stab non nul, y: %d, z: %d\n"
+msgid "%B: invalid symbol table: duplicate symbol `%s'\n"
+msgstr "%B: table de symboles invalide: symbole Â«Â %sÂ Â» dupliquÃ©\n"
 
-#: mmo.c:1926
+#: mmo.c:2986
 #, c-format
-msgid "%s: invalid mmo file: lop_end not last item in file\n"
-msgstr "%s: fichier mmo invalide: lop_end n'est pas le dernier Ã©lement dans le fichier\n"
+msgid "%B: Bad symbol definition: `Main' set to %s rather than the start address %s\n"
+msgstr "%B: DÃ©finition de symbole erronÃ©e: Â«Â MainÂ Â» initialisÃ© Ã  %s au lieu de l'adresse de dÃ©part %s\n"
 
-#: mmo.c:1939
+#: mmo.c:3085
 #, c-format
-msgid "%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n"
-msgstr "%s: fichier mmo invalide: YZ de lop_end (%ld) n'est pas Ã©gal au nombre de tetras du lop_stab prÃ©cÃ©dent (%ld)\n"
+msgid "%B: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d.  Only `Main' will be emitted.\n"
+msgstr "%B: attention: table de symboles trop grande pour mmo, plus grande que 65535 mots de 32 bits: %d. Seul Â«Â MainÂ Â» sera produit.\n"
 
-#: mmo.c:2649
+#: mmo.c:3131
 #, c-format
-msgid "%s: invalid symbol table: duplicate symbol `%s'\n"
-msgstr "%s: table de symboles invalide: symbole Â«%sÂ» dupliquÃ©\n"
+msgid "%B: internal error, symbol table changed size from %d to %d words\n"
+msgstr "%B: erreur interne, table de symbole a changÃ© de taille de %d Ã  %d mots\n"
 
-#: mmo.c:2889
+#: mmo.c:3184
 #, c-format
-msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n"
-msgstr "%s: DÃ©finition de symbole erronÃ©e: Â«MainÂ» initialisÃ© Ã  %s au lieu de l'adresse de dÃ©part %s\n"
+msgid "%B: internal error, internal register section %A had contents\n"
+msgstr "%B: erreur interne, registre interne de section %A contient quelque chose\n"
 
-#: mmo.c:2981
-#, c-format
-msgid "%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d.  Only `Main' will be emitted.\n"
-msgstr "%s: attention: table de symboles trop grande pour mmo, plus grande que 65535 mots de 32 bits: %d. Seul Â«MainÂ» sera produit.\n"
-
-#: mmo.c:3026
-#, c-format
-msgid "%s: internal error, symbol table changed size from %d to %d words\n"
-msgstr "%s: erreur interne, table de symbole a changÃ© de taille de %d Ã  %d mots\n"
-
-#: mmo.c:3078
-#, c-format
-msgid "%s: internal error, internal register section %s had contents\n"
-msgstr "%s: erreur interne, registre interne de section %s contient quelque chose\n"
-
-#: mmo.c:3129
-#, c-format
-msgid "%s: no initialized registers; section length 0\n"
-msgstr "%s: pas de registre initialisÃ©; section de longeur 0\n"
+#: mmo.c:3235
+msgid "%B: no initialized registers; section length 0\n"
+msgstr "%B: pas de registre initialisÃ©; section de longueur 0\n"
 
-#: mmo.c:3135
+#: mmo.c:3242
 #, c-format
-msgid "%s: too many initialized registers; section length %ld\n"
-msgstr "%s: trop de resigstres initialisÃ©s; longueur de section %ld\n"
+msgid "%B: too many initialized registers; section length %ld\n"
+msgstr "%B: trop de registres initialisÃ©s; longueur de section %ld\n"
 
-#: mmo.c:3140
+#: mmo.c:3247
 #, c-format
-msgid "%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n"
-msgstr "%s: adresse de dÃ©part invalide pour des registres initialisÃ©s de longueur %ld: 0x%lx%08lx\n"
+msgid "%B: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n"
+msgstr "%B: adresse de dÃ©part invalide pour des registres initialisÃ©s de longueur %ld: 0x%lx%08lx\n"
 
-#: oasys.c:882
+#: oasys.c:881
 #, c-format
-msgid "%s: can not represent section `%s' in oasys"
-msgstr "%s: ne peut reprÃ©senter la section Â«%sÂ» dans oasys"
+msgid "%B: can not represent section `%A' in oasys"
+msgstr "%B: ne peut reprÃ©senter la section Â«Â %AÂ Â» dans oasys"
 
-#: osf-core.c:140
+#: osf-core.c:127
 #, c-format
 msgid "Unhandled OSF/1 core file section type %d\n"
 msgstr "Type de section de fichier core OSF/1 %d non traitÃ©\n"
 
-#: pe-mips.c:607
+#: pe-mips.c:609
 msgid "%B: `ld -r' not supported with PE MIPS objects\n"
-msgstr "%B: Â«ld -rÂ» non supportÃ© avec les objets PE MIPS\n"
+msgstr "%B: Â«Â ld -rÂ Â» non supportÃ© avec les objets PE MIPS\n"
 
 #. OK, at this point the following variables are set up:
 #. src = VMA of the memory we're fixing up
 #. mem = pointer to memory we're fixing up
 #. val = VMA of what we need to refer to.
-#: pe-mips.c:719
+#: pe-mips.c:720
+#, c-format
 msgid "%B: unimplemented %s\n"
 msgstr "%B: non implantÃ© %s\n"
 
-#: pe-mips.c:745
+#: pe-mips.c:746
 msgid "%B: jump too far away\n"
 msgstr "%B: le saut va trop loin\n"
 
-#: pe-mips.c:771
+#: pe-mips.c:772
 msgid "%B: bad pair/reflo after refhi\n"
 msgstr "%B: pairage erronÃ©e pair/reflo aprÃ¨s refhi\n"
 
-#: pef.c:520
+#: pef.c:526
 #, c-format
 msgid "bfd_pef_scan: unknown architecture 0x%lx"
 msgstr "bfd_pef_scan: architecture 0x%lx inconnue"
 
-#: pei-x86_64.c:444
+#. PR 17512: file: 2245-7442-0.004.
+#: pei-x86_64.c:281
 #, c-format
-msgid "warning: .pdata section size (%ld) is not a multiple of %d\n"
-msgstr "attention, taille de la section .pdata (%ld) n'est pas un multiple de %d\n"
+msgid "Unknown: %x"
+msgstr "Inconnu: %x"
 
-#: pei-x86_64.c:448 peigen.c:1618 peigen.c:1801 pepigen.c:1618 pepigen.c:1801
-#: pex64igen.c:1618 pex64igen.c:1801
+#: pei-x86_64.c:331
+#, c-format
+msgid "warning: xdata section corrupt\n"
+msgstr "attention: section xdata corrompue\n"
+
+#: pei-x86_64.c:341
+#, c-format
+msgid "warning: xdata section corrupt"
+msgstr "attention: section xdata corrompue"
+
+#: pei-x86_64.c:401
+#, c-format
+msgid "Too many unwind codes (%ld)\n"
+msgstr "Trop de codes de dÃ©roulages (%ld)\n"
+
+#: pei-x86_64.c:491
+#, c-format
+msgid "Warning: %s section size (%ld) is not a multiple of %d\n"
+msgstr "Attention: la taille de la section %s (%ld) n'est pas un multiple de %d\n"
+
+#: pei-x86_64.c:498
+#, c-format
+msgid "Warning: %s section size is zero\n"
+msgstr "Attention: la taille de la section %s est nulle\n"
+
+#: pei-x86_64.c:513
+#, c-format
+msgid "Warning: %s section size (%ld) is smaller than virtual size (%ld)\n"
+msgstr "Attention: la taille de la section %s (%ld) est plus petite que la taille virtuelle (%ld)\n"
+
+#: pei-x86_64.c:522
 #, c-format
 msgid ""
 "\n"
-"The Function Table (interpreted .pdata section contents)\n"
+"The Function Table (interpreted %s section contents)\n"
 msgstr ""
 "\n"
-"La table de fonctions (interprÃ©tation du contenu de la section .pdata)\n"
+"La table de fonctions (interprÃ©tation du contenu de la section %s)\n"
 
-#: pei-x86_64.c:450
+#: pei-x86_64.c:525
 #, c-format
 msgid "vma:\t\t\tBeginAddress\t EndAddress\t  UnwindData\n"
 msgstr " vma:\t\t\tAdresse DÃ©but\t Adresse Fin\t  Unwind Info\n"
 
+#: pei-x86_64.c:654
+#, c-format
+msgid ""
+"\n"
+"Dump of %s\n"
+msgstr ""
+"\n"
+"Vidange de %s\n"
+
 #. XXX code yet to be written.
-#: peicode.h:751
+#: peicode.h:775
+#, c-format
 msgid "%B: Unhandled import type; %x"
 msgstr "%B: type d'importation non traitÃ©e; %x"
 
-#: peicode.h:756
+#: peicode.h:781
+#, c-format
 msgid "%B: Unrecognised import type; %x"
 msgstr "%B: type d'importation non reconnu; %x"
 
-#: peicode.h:770
+#: peicode.h:796
+#, c-format
 msgid "%B: Unrecognised import name type; %x"
 msgstr "%B: type de nom d'importation non reconnu: %x"
 
-#: peicode.h:1166
+#: peicode.h:1217
+#, c-format
 msgid "%B: Unrecognised machine type (0x%x) in Import Library Format archive"
 msgstr "%B: type de machine non reconnu (0x%x) dans l'archive de librairie de formats d'importation"
 
-#: peicode.h:1178
+#: peicode.h:1230
+#, c-format
 msgid "%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive"
 msgstr "%B: type de machine reconnue mais non traitÃ©e (0x%x) dans l'archive da la librairie de formats d'importation"
 
-#: peicode.h:1196
+#: peicode.h:1248
 msgid "%B: size field is zero in Import Library Format header"
 msgstr "%B: taille du champ est zÃ©ro dans l'en-tÃªte de la librairie de formats d'importation"
 
-#: peicode.h:1227
+#: peicode.h:1280
 msgid "%B: string not null terminated in ILF object file."
 msgstr "%B: chaÃ®ne n'est pas terminÃ©e par un zÃ©ro dans le fichier objet ILF."
 
-#: ppcboot.c:414
+#: peicode.h:1333
+msgid "%B: Error: Debug Data ends beyond end of debug directory."
+msgstr "%B: Erreur: Les donnÃ©es de dÃ©bogage s'arrÃªtent aprÃ¨s la fin du rÃ©pertoire de dÃ©bogage."
+
+#: ppcboot.c:393
 #, c-format
 msgid ""
 "\n"
@@ -3739,27 +5767,27 @@ msgstr ""
 "\n"
 "En-tÃªtes ppcboot:\n"
 
-#: ppcboot.c:415
+#: ppcboot.c:394
 #, c-format
 msgid "Entry offset        = 0x%.8lx (%ld)\n"
 msgstr "DÃ©calage de l'entrÃ©e= 0x%.8lx (%ld)\n"
 
-#: ppcboot.c:417
+#: ppcboot.c:396
 #, c-format
 msgid "Length              = 0x%.8lx (%ld)\n"
 msgstr "Longueur            = 0x%.8lx (%ld)\n"
 
-#: ppcboot.c:421
+#: ppcboot.c:400
 #, c-format
 msgid "Flag field          = 0x%.2x\n"
 msgstr "Champ de fanion     = 0x%.2x\n"
 
-#: ppcboot.c:427
+#: ppcboot.c:406
 #, c-format
 msgid "Partition name      = \"%s\"\n"
-msgstr "Nom de partition    = Â«%sÂ»\n"
+msgstr "Nom de partition    = Â«Â %sÂ Â»\n"
 
-#: ppcboot.c:446
+#: ppcboot.c:426
 #, c-format
 msgid ""
 "\n"
@@ -3768,31 +5796,45 @@ msgstr ""
 "\n"
 "DÃ©but de partition[%d] = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
 
-#: ppcboot.c:452
+#: ppcboot.c:433
 #, c-format
 msgid "Partition[%d] end    = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
 msgstr "Fin de la partition[%d] = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
 
-#: ppcboot.c:458
+#: ppcboot.c:440
 #, c-format
 msgid "Partition[%d] sector = 0x%.8lx (%ld)\n"
 msgstr "Secteur de la partition[%d] = 0x%.8lx (%ld)\n"
 
-#: ppcboot.c:460
+#: ppcboot.c:444
 #, c-format
 msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
 msgstr "Longueur de la partition[%d] = 0x%.8lx (%ld)\n"
 
-#: reloc.c:6160
+#: reloc.c:8064
 msgid "INPUT_SECTION_FLAGS are not supported.\n"
 msgstr "INPUT_SECTION_FLAGS pas supportÃ©s.\n"
 
-#: rs6000-core.c:448
+#: reloc.c:8165
+#, c-format
+msgid "%X%P: %B(%A): error: relocation for offset %V has no value\n"
+msgstr "%X%P: %B(%A): erreur: le rÃ©adressage pour le dÃ©calage %V n'a pas de valeur\n"
+
+#: reloc.c:8241
 #, c-format
-msgid "%s: warning core file truncated"
-msgstr "%s: fichier core d'avertissement tronquÃ©"
+msgid "%X%P: %B(%A): relocation \"%R\" is not supported\n"
+msgstr "%X%P: %B(%A): le rÃ©adressage Â«Â %RÂ Â» n'est pas supportÃ©\n"
 
-#: som.c:5471
+#: reloc.c:8250
+#, c-format
+msgid "%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n"
+msgstr "%X%P: %B(%A): le rÃ©adressage Â«Â %RÂ Â» retourne une valeur %x non reconnue\n"
+
+#: rs6000-core.c:471
+msgid "%B: warning core file truncated"
+msgstr "%B: fichier core d'avertissement tronquÃ©"
+
+#: som.c:5478
 #, c-format
 msgid ""
 "\n"
@@ -3801,19 +5843,27 @@ msgstr ""
 "\n"
 "En-tÃªte auxiliaire de l'exec\n"
 
-#: som.c:5776
+#: som.c:5787
 msgid "som_sizeof_headers unimplemented"
 msgstr "som_sizeof_headers non implÃ©mentÃ©"
 
-#: srec.c:261
+#: srec.c:260
+#, c-format
 msgid "%B:%d: Unexpected character `%s' in S-record file\n"
-msgstr "%B:%d: caractÃ¨re inattendu Â«%sÂ» dans le fichier S-record\n"
+msgstr "%B:%d: caractÃ¨re inattendu Â«Â %sÂ Â» dans le fichier S-record\n"
 
-#: srec.c:567 srec.c:600
+#: srec.c:488
+#, c-format
+msgid "%B:%d: byte count %d too small\n"
+msgstr "%B:%d: nombre d'octets %d trop petit\n"
+
+#: srec.c:581 srec.c:615
+#, c-format
 msgid "%B:%d: Bad checksum in S-record file\n"
 msgstr "%B:%d: Mauvaise somme de contrÃ´le dans le fichier S-record\n"
 
 #: stabs.c:279
+#, c-format
 msgid "%B(%A+0x%lx): Stabs entry has invalid string index."
 msgstr "%B(%A+0x%lx): EntrÃ©e des Ã©bauches a un indexe de chaÃ®ne invalide"
 
@@ -3821,32 +5871,60 @@ msgstr "%B(%A+0x%lx): EntrÃ©e des Ã©bauc
 msgid "Unsupported .stab relocation"
 msgstr "RÃ©adressage du .stab non supportÃ©"
 
-#: vms-alpha.c:1299
+#: vms-alpha.c:652
+#, c-format
+msgid "Unable to read EIHS record at offset %#x"
+msgstr "Impossible de lire l'enregistrement EIHS Ã  l'offset %#x"
+
+#: vms-alpha.c:1164
+#, c-format
+msgid "Corrupt EGSD record: its size (%#x) is too small"
+msgstr "Enregistrement EGSD corrompu: sa taille (%#x) est trop petite"
+
+#: vms-alpha.c:1188
+#, c-format
+msgid "Corrupt EGSD record: size (%#x) is larger than remaining space (%#x)"
+msgstr "Enregistrement EGSD corrompu: la taille (%#x) est plus grande que l'espace restant (%#x)"
+
+#: vms-alpha.c:1196
+#, c-format
+msgid "Corrupt EGSD record: size (%#x) is too small"
+msgstr "Enregistrement EGSD corrompu: la taille (%#x) est trop petite"
+
+#: vms-alpha.c:1380
 #, c-format
 msgid "Unknown EGSD subtype %d"
 msgstr "Sous type EGSD %d inconnu"
 
-#: vms-alpha.c:1330
+#: vms-alpha.c:1413
 #, c-format
 msgid "Stack overflow (%d) in _bfd_vms_push"
 msgstr "DÃ©bordement de la pile (%d) dans _bfd_vms_push"
 
-#: vms-alpha.c:1343
+#: vms-alpha.c:1426
 msgid "Stack underflow in _bfd_vms_pop"
 msgstr "Sous dÃ©pilage de la pile dans _bfd_vms_pop"
 
 #. These names have not yet been added to this switch statement.
-#: vms-alpha.c:1580
+#: vms-alpha.c:1665
 #, c-format
 msgid "unknown ETIR command %d"
 msgstr "commande ETIR %d inconnue"
 
-#: vms-alpha.c:1767
+#: vms-alpha.c:1696
+msgid "Corrupt vms value"
+msgstr "Valeur vms corrompue"
+
+#: vms-alpha.c:1824
+msgid "Corrupt ETIR record encountered"
+msgstr "Enregistrement ETIR corrompu rencontrÃ©"
+
+#: vms-alpha.c:1881
 #, c-format
 msgid "bad section index in %s"
 msgstr "index de section erronÃ©e dans %s"
 
-#: vms-alpha.c:1780
+#: vms-alpha.c:1894
 #, c-format
 msgid "unsupported STA cmd %s"
 msgstr "commande STA %s non supportÃ©e"
@@ -3856,1393 +5934,1463 @@ msgstr "commande STA %s non supportÃ©e"
 #. Rotate.
 #. Redefine symbol to current location.
 #. Define a literal.
-#: vms-alpha.c:1956 vms-alpha.c:1987 vms-alpha.c:2234
+#: vms-alpha.c:2074 vms-alpha.c:2105 vms-alpha.c:2196 vms-alpha.c:2354
 #, c-format
 msgid "%s: not supported"
 msgstr "%s: pas supportÃ©"
 
-#: vms-alpha.c:1962
+#: vms-alpha.c:2080
 #, c-format
 msgid "%s: not implemented"
 msgstr "%s: non implÃ©mentÃ©"
 
-#: vms-alpha.c:2218
+#: vms-alpha.c:2338
 #, c-format
 msgid "invalid use of %s with contexts"
 msgstr "utilisation incorrecte de %s avec des contextes"
 
-#: vms-alpha.c:2252
+#: vms-alpha.c:2372
 #, c-format
 msgid "reserved cmd %d"
 msgstr "commande %d rÃ©servÃ©e"
 
-#: vms-alpha.c:2337
+#: vms-alpha.c:2457
 msgid "Object module NOT error-free !\n"
 msgstr "Module objet N'EST PAS sans erreur !\n"
 
-#: vms-alpha.c:2766
-#, c-format
-msgid "Symbol %s replaced by %s\n"
-msgstr "Symbole %s remplacÃ© par %s\n"
-
-#: vms-alpha.c:3769
+#: vms-alpha.c:3778
 #, c-format
-msgid "SEC_RELOC with no relocs in section %s"
-msgstr "SEC_RELOC sans relocalisation dans la section %s"
+msgid "SEC_RELOC with no relocs in section %A"
+msgstr "SEC_RELOC sans rÃ©adressages dans la section %A"
 
-#: vms-alpha.c:3822 vms-alpha.c:4049
+#: vms-alpha.c:3830 vms-alpha.c:4043
 #, c-format
-msgid "Size error in section %s"
-msgstr "Erreur de taille dans la section %s"
+msgid "Size error in section %A"
+msgstr "Erreur de taille dans la section %A"
 
-#: vms-alpha.c:3991
+#: vms-alpha.c:3989
 msgid "Spurious ALPHA_R_BSR reloc"
-msgstr "Relocalisation ALPHA_R_BSR parasite"
+msgstr "RÃ©adressages ALPHA_R_BSR parasite"
 
-#: vms-alpha.c:4036
+#: vms-alpha.c:4030
 #, c-format
 msgid "Unhandled relocation %s"
 msgstr "RÃ©adressage %s non traitÃ©"
 
-#: vms-alpha.c:4326
+#: vms-alpha.c:4323
 #, c-format
 msgid "unknown source command %d"
 msgstr "commande source %d inconnue"
 
-#: vms-alpha.c:4387
+#: vms-alpha.c:4384
 msgid "DST__K_SET_LINUM_INCR not implemented"
 msgstr "DST__K_SET_LINUM_INCR pas implÃ©mentÃ©"
 
-#: vms-alpha.c:4393
+#: vms-alpha.c:4390
 msgid "DST__K_SET_LINUM_INCR_W not implemented"
 msgstr "DST__K_SET_LINUM_INCR_W pas implÃ©mentÃ©"
 
-#: vms-alpha.c:4399
+#: vms-alpha.c:4396
 msgid "DST__K_RESET_LINUM_INCR not implemented"
 msgstr "DST__K_RESET_LINUM_INCR pas implÃ©mentÃ©"
 
-#: vms-alpha.c:4405
+#: vms-alpha.c:4402
 msgid "DST__K_BEG_STMT_MODE not implemented"
 msgstr "DST__K_BEG_STMT_MODE pas implÃ©mentÃ©"
 
-#: vms-alpha.c:4411
+#: vms-alpha.c:4408
 msgid "DST__K_END_STMT_MODE not implemented"
 msgstr "DST__K_END_STMT_MODE pas implÃ©mentÃ©"
 
-#: vms-alpha.c:4438
+#: vms-alpha.c:4435
 msgid "DST__K_SET_PC not implemented"
 msgstr "DST__K_SET_PC pas implÃ©mentÃ©"
 
-#: vms-alpha.c:4444
+#: vms-alpha.c:4441
 msgid "DST__K_SET_PC_W not implemented"
 msgstr "DST__K_SET_PC_W pas implÃ©mentÃ©"
 
-#: vms-alpha.c:4450
+#: vms-alpha.c:4447
 msgid "DST__K_SET_PC_L not implemented"
 msgstr "DST__K_SET_PC_L pas implÃ©mentÃ©"
 
-#: vms-alpha.c:4456
+#: vms-alpha.c:4453
 msgid "DST__K_SET_STMTNUM not implemented"
 msgstr "DST__K_SET_STMTNUM pas implÃ©mentÃ©"
 
-#: vms-alpha.c:4499
+#: vms-alpha.c:4496
 #, c-format
 msgid "unknown line command %d"
 msgstr "commande de ligne %d inconnue"
 
-#: vms-alpha.c:4953 vms-alpha.c:4970 vms-alpha.c:4984 vms-alpha.c:4999
-#: vms-alpha.c:5011 vms-alpha.c:5022 vms-alpha.c:5034
+#: vms-alpha.c:4956 vms-alpha.c:4974 vms-alpha.c:4989 vms-alpha.c:5005
+#: vms-alpha.c:5018 vms-alpha.c:5030 vms-alpha.c:5043
 #, c-format
 msgid "Unknown reloc %s + %s"
-msgstr "Relocalisation %s + %s inconnue"
+msgstr "RÃ©adressage %s + %s inconnu"
 
-#: vms-alpha.c:5089
+#: vms-alpha.c:5098
 #, c-format
 msgid "Unknown reloc %s"
-msgstr "Relocalisation %s inconnue"
+msgstr "RÃ©adressage %s inconnu"
 
-#: vms-alpha.c:5102
+#: vms-alpha.c:5111
 msgid "Invalid section index in ETIR"
 msgstr "Index de section incorrect dans ETIR"
 
-#: vms-alpha.c:5109
+#: vms-alpha.c:5120
 msgid "Relocation for non-REL psect"
 msgstr "RÃ©adressage pour psect non-REL"
 
-#: vms-alpha.c:5156
+#: vms-alpha.c:5167
 #, c-format
 msgid "Unknown symbol in command %s"
 msgstr "Symbole inconnu dans la commande %s"
 
-#: vms-alpha.c:5671
+#: vms-alpha.c:5577
+#, c-format
+msgid "reloc (%d) is *UNKNOWN*"
+msgstr "le rÃ©adressage (%d) est *INCONNU*"
+
+#: vms-alpha.c:5692
 #, c-format
 msgid "  EMH %u (len=%u): "
 msgstr "  EMH %u (long=%u): "
 
-#: vms-alpha.c:5680
+#: vms-alpha.c:5697
+#, c-format
+msgid "   Error: The length is less than the length of an EMH record\n"
+msgstr "   Erreur: La longueur est plus petite que la longueur d'un enregistrement EMH\n"
+
+#: vms-alpha.c:5708
 #, c-format
 msgid "Module header\n"
 msgstr "En-tÃªte module\n"
 
-#: vms-alpha.c:5681
+#: vms-alpha.c:5709
 #, c-format
 msgid "   structure level: %u\n"
 msgstr "   niveau de structure: %u\n"
 
-#: vms-alpha.c:5682
+#: vms-alpha.c:5710
 #, c-format
 msgid "   max record size: %u\n"
 msgstr "   taille max d'enregistrement: %u\n"
 
-#: vms-alpha.c:5685
+#: vms-alpha.c:5713
 #, c-format
 msgid "   module name    : %.*s\n"
 msgstr "   nom du module       : %.*s\n"
 
-#: vms-alpha.c:5687
+#: vms-alpha.c:5715
 #, c-format
 msgid "   module version : %.*s\n"
 msgstr "   version du module   : %.*s\n"
 
-#: vms-alpha.c:5689
+#: vms-alpha.c:5717
 #, c-format
 msgid "   compile date   : %.17s\n"
 msgstr "   date de compilation : %.17s\n"
 
-#: vms-alpha.c:5694
+#: vms-alpha.c:5722
 #, c-format
 msgid "Language Processor Name\n"
 msgstr "Nom du Processeur de Langage\n"
 
-#: vms-alpha.c:5695
+#: vms-alpha.c:5723
 #, c-format
 msgid "   language name: %.*s\n"
 msgstr "   nom du language: %.*s\n"
 
-#: vms-alpha.c:5702
+#: vms-alpha.c:5730
 #, c-format
 msgid "Source Files Header\n"
 msgstr "En-tÃªte des fichiers sources\n"
 
-#: vms-alpha.c:5703
+#: vms-alpha.c:5731
 #, c-format
 msgid "   file: %.*s\n"
 msgstr "   fichier: %.*s\n"
 
-#: vms-alpha.c:5710
+#: vms-alpha.c:5738
 #, c-format
 msgid "Title Text Header\n"
 msgstr "En-tÃªte du texte du titre\n"
 
-#: vms-alpha.c:5711
+#: vms-alpha.c:5739
 #, c-format
 msgid "   title: %.*s\n"
 msgstr "   titre: %.*s\n"
 
-#: vms-alpha.c:5718
+#: vms-alpha.c:5746
 #, c-format
 msgid "Copyright Header\n"
 msgstr "En-tÃªte du copyright\n"
 
-#: vms-alpha.c:5719
+#: vms-alpha.c:5747
 #, c-format
 msgid "   copyright: %.*s\n"
 msgstr "   copyright: %.*s\n"
 
-#: vms-alpha.c:5725
+#: vms-alpha.c:5753
 #, c-format
 msgid "unhandled emh subtype %u\n"
 msgstr "sous-type emh %u non pris en charge\n"
 
-#: vms-alpha.c:5735
+#: vms-alpha.c:5763
 #, c-format
 msgid "  EEOM (len=%u):\n"
 msgstr "  EEOM (long=%u):\n"
 
-#: vms-alpha.c:5736
+#: vms-alpha.c:5768
+#, c-format
+msgid "   Error: The length is less than the length of an EEOM record\n"
+msgstr "   Erreur: La longueur est plus petite que la longueur d'un enregistrement EEOM\n"
+
+#: vms-alpha.c:5772
 #, c-format
 msgid "   number of cond linkage pairs: %u\n"
 msgstr "   nombre de paires de liaisons cond: %u\n"
 
-#: vms-alpha.c:5738
+#: vms-alpha.c:5774
 #, c-format
 msgid "   completion code: %u\n"
 msgstr "   code de complÃ©tion: %u\n"
 
-#: vms-alpha.c:5742
+#: vms-alpha.c:5778
 #, c-format
 msgid "   transfer addr flags: 0x%02x\n"
 msgstr "   fanions de transfert d'adr: 0x%02x\n"
 
-#: vms-alpha.c:5743
+#: vms-alpha.c:5779
 #, c-format
 msgid "   transfer addr psect: %u\n"
 msgstr "   psect transert adr: %u\n"
 
-#: vms-alpha.c:5745
+#: vms-alpha.c:5781
 #, c-format
 msgid "   transfer address   : 0x%08x\n"
 msgstr "   adresse de transert: 0x%08x\n"
 
-#: vms-alpha.c:5754
+#: vms-alpha.c:5790
 msgid " WEAK"
 msgstr " FAIBLE"
 
-#: vms-alpha.c:5756
+#: vms-alpha.c:5792
 msgid " DEF"
 msgstr " DEF"
 
-#: vms-alpha.c:5758
+#: vms-alpha.c:5794
 msgid " UNI"
 msgstr " UNI"
 
-#: vms-alpha.c:5760 vms-alpha.c:5781
+#: vms-alpha.c:5796 vms-alpha.c:5817
 msgid " REL"
 msgstr " REL"
 
-#: vms-alpha.c:5762
+#: vms-alpha.c:5798
 msgid " COMM"
 msgstr " COMM"
 
-#: vms-alpha.c:5764
+#: vms-alpha.c:5800
 msgid " VECEP"
 msgstr " VECEP"
 
-#: vms-alpha.c:5766
+#: vms-alpha.c:5802
 msgid " NORM"
 msgstr " NORM"
 
-#: vms-alpha.c:5768
+#: vms-alpha.c:5804
 msgid " QVAL"
 msgstr " QVAL"
 
-#: vms-alpha.c:5775
+#: vms-alpha.c:5811
 msgid " PIC"
 msgstr " PIC"
 
-#: vms-alpha.c:5777
+#: vms-alpha.c:5813
 msgid " LIB"
 msgstr " LIB"
 
-#: vms-alpha.c:5779
+#: vms-alpha.c:5815
 msgid " OVR"
 msgstr " OVR"
 
-#: vms-alpha.c:5783
+#: vms-alpha.c:5819
 msgid " GBL"
 msgstr " GBL"
 
-#: vms-alpha.c:5785
+#: vms-alpha.c:5821
 msgid " SHR"
 msgstr " SHR"
 
-#: vms-alpha.c:5787
+#: vms-alpha.c:5823
 msgid " EXE"
 msgstr " EXE"
 
-#: vms-alpha.c:5789
+#: vms-alpha.c:5825
 msgid " RD"
 msgstr " RD"
 
-#: vms-alpha.c:5791
+#: vms-alpha.c:5827
 msgid " WRT"
 msgstr " WRT"
 
-#: vms-alpha.c:5793
+#: vms-alpha.c:5829
 msgid " VEC"
 msgstr " VEC"
 
-#: vms-alpha.c:5795
+#: vms-alpha.c:5831
 msgid " NOMOD"
 msgstr " NOMOD"
 
-#: vms-alpha.c:5797
+#: vms-alpha.c:5833
 msgid " COM"
 msgstr " COM"
 
-#: vms-alpha.c:5799
+#: vms-alpha.c:5835
 msgid " 64B"
 msgstr " 64B"
 
-#: vms-alpha.c:5808
+#: vms-alpha.c:5844
 #, c-format
 msgid "  EGSD (len=%u):\n"
 msgstr "  EGSD (long=%u):\n"
 
-#: vms-alpha.c:5820
+#: vms-alpha.c:5857
 #, c-format
 msgid "  EGSD entry %2u (type: %u, len: %u): "
 msgstr "  entrÃ©e EGSD %2u (type: %u, long: %u): "
 
-#: vms-alpha.c:5832
+#: vms-alpha.c:5863 vms-alpha.c:6114
+#, c-format
+msgid "   Error: length larger than remaining space in record\n"
+msgstr "   Erreur: longueur plus grande que l'espace restant dans l'enregistrement\n"
+
+#: vms-alpha.c:5875
 #, c-format
 msgid "PSC - Program section definition\n"
 msgstr "PSC - DÃ©finition de section du programme\n"
 
-#: vms-alpha.c:5833 vms-alpha.c:5850
+#: vms-alpha.c:5876 vms-alpha.c:5893
 #, c-format
 msgid "   alignment  : 2**%u\n"
 msgstr "   alignement : 2**%u\n"
 
-#: vms-alpha.c:5834 vms-alpha.c:5851
+#: vms-alpha.c:5877 vms-alpha.c:5894
 #, c-format
 msgid "   flags      : 0x%04x"
 msgstr "   fanions    : 0x%04x"
 
-#: vms-alpha.c:5838
+#: vms-alpha.c:5881
 #, c-format
 msgid "   alloc (len): %u (0x%08x)\n"
 msgstr "  alloc (long): %u (0x%08x)\n"
 
-#: vms-alpha.c:5839 vms-alpha.c:5896 vms-alpha.c:5945
+#: vms-alpha.c:5882 vms-alpha.c:5939 vms-alpha.c:5988
 #, c-format
 msgid "   name       : %.*s\n"
 msgstr "   nom        : %.*s\n"
 
-#: vms-alpha.c:5849
+#: vms-alpha.c:5892
 #, c-format
 msgid "SPSC - Shared Image Program section def\n"
 msgstr "SPSC - Def de section de l'image partagÃ©e du programme\n"
 
-#: vms-alpha.c:5855
+#: vms-alpha.c:5898
 #, c-format
 msgid "   alloc (len)   : %u (0x%08x)\n"
 msgstr "   alloc (long)  : %u (0x%08x)\n"
 
-#: vms-alpha.c:5856
+#: vms-alpha.c:5899
 #, c-format
 msgid "   image offset  : 0x%08x\n"
 msgstr "   offset d'image: 0x%08x\n"
 
-#: vms-alpha.c:5858
+#: vms-alpha.c:5901
 #, c-format
 msgid "   symvec offset : 0x%08x\n"
 msgstr "   offset symvec : 0x%08x\n"
 
-#: vms-alpha.c:5860
+#: vms-alpha.c:5903
 #, c-format
 msgid "   name          : %.*s\n"
 msgstr "   nom           : %.*s\n"
 
-#: vms-alpha.c:5873
+#: vms-alpha.c:5916
 #, c-format
 msgid "SYM - Global symbol definition\n"
 msgstr "SYM - DÃ©finition du symbol global\n"
 
-#: vms-alpha.c:5874 vms-alpha.c:5934 vms-alpha.c:5955 vms-alpha.c:5974
+#: vms-alpha.c:5917 vms-alpha.c:5977 vms-alpha.c:5998 vms-alpha.c:6017
 #, c-format
 msgid "   flags: 0x%04x"
 msgstr "   fanions: 0x%04x"
 
-#: vms-alpha.c:5877
+#: vms-alpha.c:5920
 #, c-format
 msgid "   psect offset: 0x%08x\n"
 msgstr "   offset psect: 0x%08x\n"
 
-#: vms-alpha.c:5881
+#: vms-alpha.c:5924
 #, c-format
 msgid "   code address: 0x%08x\n"
 msgstr "   adresse code: 0x%08x\n"
 
-#: vms-alpha.c:5883
+#: vms-alpha.c:5926
 #, c-format
 msgid "   psect index for entry point : %u\n"
 msgstr "   index psect pour point d'entrÃ©e: %u\n"
 
-#: vms-alpha.c:5886 vms-alpha.c:5962 vms-alpha.c:5981
+#: vms-alpha.c:5929 vms-alpha.c:6005 vms-alpha.c:6024
 #, c-format
 msgid "   psect index : %u\n"
 msgstr "   index psect : %u\n"
 
-#: vms-alpha.c:5888 vms-alpha.c:5964 vms-alpha.c:5983
+#: vms-alpha.c:5931 vms-alpha.c:6007 vms-alpha.c:6026
 #, c-format
 msgid "   name        : %.*s\n"
 msgstr "   nom         : %.*s\n"
 
-#: vms-alpha.c:5895
+#: vms-alpha.c:5938
 #, c-format
 msgid "SYM - Global symbol reference\n"
 msgstr "SYM - RÃ©fÃ©rence du symbol globaux\n"
 
-#: vms-alpha.c:5907
+#: vms-alpha.c:5950
 #, c-format
 msgid "IDC - Ident Consistency check\n"
 msgstr "IDC - VÃ©rification de la consistance d'identitÃ©\n"
 
-#: vms-alpha.c:5908
+#: vms-alpha.c:5951
 #, c-format
 msgid "   flags         : 0x%08x"
 msgstr "   fanions       : 0x%08x"
 
-#: vms-alpha.c:5912
+#: vms-alpha.c:5955
 #, c-format
 msgid "   id match      : %x\n"
 msgstr "   correspondance id : %x\n"
 
-#: vms-alpha.c:5914
+#: vms-alpha.c:5957
 #, c-format
 msgid "   error severity: %x\n"
 msgstr "   sÃ©vÃ©ritÃ© d'erreur: %x\n"
 
-#: vms-alpha.c:5917
+#: vms-alpha.c:5960
 #, c-format
 msgid "   entity name   : %.*s\n"
 msgstr "   nom d'entitÃ©  : %.*s\n"
 
-#: vms-alpha.c:5919
+#: vms-alpha.c:5962
 #, c-format
 msgid "   object name   : %.*s\n"
 msgstr "   nom d'objet   : %.*s\n"
 
-#: vms-alpha.c:5922
+#: vms-alpha.c:5965
 #, c-format
 msgid "   binary ident  : 0x%08x\n"
 msgstr "   ident binaire : 0x%08x\n"
 
-#: vms-alpha.c:5925
+#: vms-alpha.c:5968
 #, c-format
 msgid "   ascii ident   : %.*s\n"
 msgstr "   ident ascii   : %.*s\n"
 
-#: vms-alpha.c:5933
+#: vms-alpha.c:5976
 #, c-format
 msgid "SYMG - Universal symbol definition\n"
 msgstr "SYMG - DÃ©finition de symbole universel\n"
 
-#: vms-alpha.c:5937
+#: vms-alpha.c:5980
 #, c-format
 msgid "   symbol vector offset: 0x%08x\n"
 msgstr "   offset vecteur symbole: 0x%08x\n"
 
-#: vms-alpha.c:5939
+#: vms-alpha.c:5982
 #, c-format
 msgid "   entry point: 0x%08x\n"
 msgstr "   point d'entrÃ©e: 0x%08x\n"
 
-#: vms-alpha.c:5941
+#: vms-alpha.c:5984
 #, c-format
 msgid "   proc descr : 0x%08x\n"
 msgstr "   descr proc : 0x%08x\n"
 
-#: vms-alpha.c:5943
+#: vms-alpha.c:5986
 #, c-format
 msgid "   psect index: %u\n"
 msgstr "   index psect: %u\n"
 
-#: vms-alpha.c:5954
+#: vms-alpha.c:5997
 #, c-format
 msgid "SYMV - Vectored symbol definition\n"
 msgstr "SYMV - DÃ©finition symbole vectorisÃ©\n"
 
-#: vms-alpha.c:5958
+#: vms-alpha.c:6001
 #, c-format
 msgid "   vector      : 0x%08x\n"
 msgstr "   vecteur     : 0x%08x\n"
 
-#: vms-alpha.c:5960 vms-alpha.c:5979
+#: vms-alpha.c:6003 vms-alpha.c:6022
 #, c-format
 msgid "   psect offset: %u\n"
 msgstr "   offset psect: %u\n"
 
-#: vms-alpha.c:5973
+#: vms-alpha.c:6016
 #, c-format
 msgid "SYMM - Global symbol definition with version\n"
 msgstr "SYMM - DÃ©finition de symbole globale avec version\n"
 
-#: vms-alpha.c:5977
+#: vms-alpha.c:6020
 #, c-format
 msgid "   version mask: 0x%08x\n"
 msgstr "   masque de version: 0x%08x\n"
 
-#: vms-alpha.c:5988
+#: vms-alpha.c:6031
 #, c-format
 msgid "unhandled egsd entry type %u\n"
 msgstr "type d'entrÃ©e egsd %u non supportÃ©\n"
 
-#: vms-alpha.c:6022
+#: vms-alpha.c:6066
 #, c-format
 msgid "    linkage index: %u, replacement insn: 0x%08x\n"
 msgstr "   index de liaison: %u, instruction de remplacement: 0x%08x\n"
 
-#: vms-alpha.c:6025
+#: vms-alpha.c:6070
 #, c-format
 msgid "    psect idx 1: %u, offset 1: 0x%08x %08x\n"
 msgstr "   index psect 1: %u, offset 1: 0x%08x %08x\n"
 
-#: vms-alpha.c:6029
+#: vms-alpha.c:6075
 #, c-format
 msgid "    psect idx 2: %u, offset 2: 0x%08x %08x\n"
 msgstr "   index psect 2: %u, offset 2: 0x%08x %08x\n"
 
-#: vms-alpha.c:6034
+#: vms-alpha.c:6081
 #, c-format
 msgid "    psect idx 3: %u, offset 3: 0x%08x %08x\n"
 msgstr "   index psect 3: %u, offset 3: 0x%08x %08x\n"
 
-#: vms-alpha.c:6039
+#: vms-alpha.c:6086
 #, c-format
 msgid "    global name: %.*s\n"
 msgstr "   nom global: %.*s\n"
 
-#: vms-alpha.c:6049
+#: vms-alpha.c:6097
 #, c-format
 msgid "  %s (len=%u+%u):\n"
 msgstr "  %s (long=%u+%u):\n"
 
-#: vms-alpha.c:6064
+#: vms-alpha.c:6119
 #, c-format
 msgid "   (type: %3u, size: 4+%3u): "
 msgstr "   (type: %3u, taille: 4+%3u): "
 
-#: vms-alpha.c:6068
+#: vms-alpha.c:6123
 #, c-format
 msgid "STA_GBL (stack global) %.*s\n"
 msgstr "STA_GBL (pile globals) %.*s\n"
 
-#: vms-alpha.c:6072
+#: vms-alpha.c:6127
 #, c-format
 msgid "STA_LW (stack longword) 0x%08x\n"
 msgstr "STA_LW (pile mot long) 0x%08x\n"
 
-#: vms-alpha.c:6076
+#: vms-alpha.c:6131
 #, c-format
 msgid "STA_QW (stack quadword) 0x%08x %08x\n"
 msgstr "STA_QW (pile quad mot) 0x%08x %08x\n"
 
-#: vms-alpha.c:6081
+#: vms-alpha.c:6136
 #, c-format
 msgid "STA_PQ (stack psect base + offset)\n"
 msgstr "STA_PQ (base pile psect + offset)\n"
 
-#: vms-alpha.c:6082
+#: vms-alpha.c:6138
 #, c-format
 msgid "    psect: %u, offset: 0x%08x %08x\n"
 msgstr "   psect: %u, offset: 0x%08x %08x\n"
 
-#: vms-alpha.c:6088
+#: vms-alpha.c:6144
 #, c-format
 msgid "STA_LI (stack literal)\n"
 msgstr "STA_LI (pile literale)\n"
 
-#: vms-alpha.c:6091
+#: vms-alpha.c:6147
 #, c-format
 msgid "STA_MOD (stack module)\n"
 msgstr "STA_MOD (pile module)\n"
 
-#: vms-alpha.c:6094
+#: vms-alpha.c:6150
 #, c-format
 msgid "STA_CKARG (compare procedure argument)\n"
 msgstr "STA_CKARG (compare les arguments de la procÃ©dure)\n"
 
-#: vms-alpha.c:6098
+#: vms-alpha.c:6154
 #, c-format
 msgid "STO_B (store byte)\n"
 msgstr "STO_B (stocke octet)\n"
 
-#: vms-alpha.c:6101
+#: vms-alpha.c:6157
 #, c-format
 msgid "STO_W (store word)\n"
 msgstr "STO_W (stocke mot)\n"
 
-#: vms-alpha.c:6104
+#: vms-alpha.c:6160
 #, c-format
 msgid "STO_LW (store longword)\n"
 msgstr "STO_LW (stocke mot long)\n"
 
-#: vms-alpha.c:6107
+#: vms-alpha.c:6163
 #, c-format
 msgid "STO_QW (store quadword)\n"
 msgstr "STO_QW (stocke quad mot)\n"
 
-#: vms-alpha.c:6113
+#: vms-alpha.c:6169
 #, c-format
 msgid "STO_IMMR (store immediate repeat) %u bytes\n"
 msgstr "STO_IMMR (stock rÃ©pÃ©tition immÃ©diate) %u octets\n"
 
-#: vms-alpha.c:6120
+#: vms-alpha.c:6176
 #, c-format
 msgid "STO_GBL (store global) %.*s\n"
 msgstr "STO_GBL (stocke globale) %.*s\n"
 
-#: vms-alpha.c:6124
+#: vms-alpha.c:6180
 #, c-format
 msgid "STO_CA (store code address) %.*s\n"
 msgstr "STO_CA (stock adresse code) %.*s\n"
 
-#: vms-alpha.c:6128
+#: vms-alpha.c:6184
 #, c-format
 msgid "STO_RB (store relative branch)\n"
 msgstr "STO_RB (stocke branche relative)\n"
 
-#: vms-alpha.c:6131
+#: vms-alpha.c:6187
 #, c-format
 msgid "STO_AB (store absolute branch)\n"
 msgstr "STO_AB (stocke branche absolue)\n"
 
-#: vms-alpha.c:6134
+#: vms-alpha.c:6190
 #, c-format
 msgid "STO_OFF (store offset to psect)\n"
 msgstr "STO_OFF (stocke offset de psect)\n"
 
-#: vms-alpha.c:6140
+#: vms-alpha.c:6196
 #, c-format
 msgid "STO_IMM (store immediate) %u bytes\n"
 msgstr "STO_IMM (stocke immediat) %u octets\n"
 
-#: vms-alpha.c:6147
+#: vms-alpha.c:6203
 #, c-format
 msgid "STO_GBL_LW (store global longword) %.*s\n"
 msgstr "STO_GBL_LW (stocke mot long global) %.*s\n"
 
-#: vms-alpha.c:6151
+#: vms-alpha.c:6207
 #, c-format
 msgid "STO_OFF (store LP with procedure signature)\n"
 msgstr "STO_OFF (stocke LP avec la signature de la procÃ©dure)\n"
 
-#: vms-alpha.c:6154
+#: vms-alpha.c:6210
 #, c-format
 msgid "STO_BR_GBL (store branch global) *todo*\n"
 msgstr "STO_BR_GBL (stocke branche globale) *todo*\n"
 
-#: vms-alpha.c:6157
+#: vms-alpha.c:6213
 #, c-format
 msgid "STO_BR_PS (store branch psect + offset) *todo*\n"
 msgstr "STO_BR_PS (stocke branche psect + offset) *todo*\n"
 
-#: vms-alpha.c:6161
+#: vms-alpha.c:6217
 #, c-format
 msgid "OPR_NOP (no-operation)\n"
 msgstr "OPR_NOP (pas d'operation)\n"
 
-#: vms-alpha.c:6164
+#: vms-alpha.c:6220
 #, c-format
 msgid "OPR_ADD (add)\n"
 msgstr "OPR_ADD (ajout)\n"
 
-#: vms-alpha.c:6167
+#: vms-alpha.c:6223
 #, c-format
 msgid "OPR_SUB (substract)\n"
 msgstr "OPR_SUB (soustraction)\n"
 
-#: vms-alpha.c:6170
+#: vms-alpha.c:6226
 #, c-format
 msgid "OPR_MUL (multiply)\n"
 msgstr "OPR_MUL (multiplication)\n"
 
-#: vms-alpha.c:6173
+#: vms-alpha.c:6229
 #, c-format
 msgid "OPR_DIV (divide)\n"
 msgstr "OPR_DIV (division)\n"
 
-#: vms-alpha.c:6176
+#: vms-alpha.c:6232
 #, c-format
 msgid "OPR_AND (logical and)\n"
 msgstr "OPR_AND (et logique)\n"
 
-#: vms-alpha.c:6179
+#: vms-alpha.c:6235
 #, c-format
 msgid "OPR_IOR (logical inclusive or)\n"
 msgstr "OPR_IOR (ou inclusif logique)\n"
 
-#: vms-alpha.c:6182
+#: vms-alpha.c:6238
 #, c-format
 msgid "OPR_EOR (logical exclusive or)\n"
 msgstr "OPR_EOR (ou exclusif logique)\n"
 
-#: vms-alpha.c:6185
+#: vms-alpha.c:6241
 #, c-format
 msgid "OPR_NEG (negate)\n"
 msgstr "OPR_NEG (nÃ©gation)\n"
 
-#: vms-alpha.c:6188
+#: vms-alpha.c:6244
 #, c-format
 msgid "OPR_COM (complement)\n"
 msgstr "OPR_COM (complÃ©ment)\n"
 
-#: vms-alpha.c:6191
+#: vms-alpha.c:6247
 #, c-format
 msgid "OPR_INSV (insert field)\n"
 msgstr "OPR_INSV (insertion champ)\n"
 
-#: vms-alpha.c:6194
+#: vms-alpha.c:6250
 #, c-format
 msgid "OPR_ASH (arithmetic shift)\n"
 msgstr "OPR_ASH (dÃ©calage arithmetique)\n"
 
-#: vms-alpha.c:6197
+#: vms-alpha.c:6253
 #, c-format
 msgid "OPR_USH (unsigned shift)\n"
 msgstr "OPR_USH (dÃ©calage non signÃ©)\n"
 
-#: vms-alpha.c:6200
+#: vms-alpha.c:6256
 #, c-format
 msgid "OPR_ROT (rotate)\n"
 msgstr "OPR_ROT (rotation)\n"
 
-#: vms-alpha.c:6203
+#: vms-alpha.c:6259
 #, c-format
 msgid "OPR_SEL (select)\n"
 msgstr "OPR_SEL (selection)\n"
 
-#: vms-alpha.c:6206
+#: vms-alpha.c:6262
 #, c-format
 msgid "OPR_REDEF (redefine symbol to curr location)\n"
 msgstr "OPR_REDEF (redÃ©fini le symbole Ã  la position actuelle)\n"
 
-#: vms-alpha.c:6209
+#: vms-alpha.c:6265
 #, c-format
 msgid "OPR_REDEF (define a literal)\n"
 msgstr "OPR_REDEF (dÃ©finir un litÃ©ral)\n"
 
-#: vms-alpha.c:6213
+#: vms-alpha.c:6269
 #, c-format
 msgid "STC_LP (store cond linkage pair)\n"
 msgstr "STC_LP (stocke pair de liaison cond)\n"
 
-#: vms-alpha.c:6217
+#: vms-alpha.c:6273
 #, c-format
 msgid "STC_LP_PSB (store cond linkage pair + signature)\n"
 msgstr "STC_LP_PSB (stocke pair de liaison cond + signature)\n"
 
-#: vms-alpha.c:6218
+#: vms-alpha.c:6275
 #, c-format
 msgid "   linkage index: %u, procedure: %.*s\n"
 msgstr "   index liaison: %u, procÃ©dure: %.*s\n"
 
-#: vms-alpha.c:6221
+#: vms-alpha.c:6278
 #, c-format
 msgid "   signature: %.*s\n"
 msgstr "   signature: %.*s\n"
 
-#: vms-alpha.c:6224
+#: vms-alpha.c:6281
 #, c-format
 msgid "STC_GBL (store cond global)\n"
 msgstr "STC_GBL (stocke cond globale)\n"
 
-#: vms-alpha.c:6225
+#: vms-alpha.c:6283
 #, c-format
 msgid "   linkage index: %u, global: %.*s\n"
 msgstr "   index liaison: %u, globale: %.*s\n"
 
-#: vms-alpha.c:6229
+#: vms-alpha.c:6287
 #, c-format
 msgid "STC_GCA (store cond code address)\n"
 msgstr "STC_GCA (stocke adresse code cond)\n"
 
-#: vms-alpha.c:6230
+#: vms-alpha.c:6289
 #, c-format
 msgid "   linkage index: %u, procedure name: %.*s\n"
 msgstr "   index liaison: %u, nom procÃ©dure: %.*s\n"
 
-#: vms-alpha.c:6234
+#: vms-alpha.c:6293
 #, c-format
 msgid "STC_PS (store cond psect + offset)\n"
 msgstr "STC_PS (stocke psect cond + offset)\n"
 
-#: vms-alpha.c:6236
+#: vms-alpha.c:6296
 #, c-format
 msgid "   linkage index: %u, psect: %u, offset: 0x%08x %08x\n"
 msgstr "   index liaison: %u, psect: %u, offset: 0x%08x %08x\n"
 
-#: vms-alpha.c:6243
+#: vms-alpha.c:6303
 #, c-format
 msgid "STC_NOP_GBL (store cond NOP at global addr)\n"
 msgstr "STC_NOP_GBL (stocke NOP cond Ã  l'adresse globale)\n"
 
-#: vms-alpha.c:6247
+#: vms-alpha.c:6307
 #, c-format
 msgid "STC_NOP_PS (store cond NOP at psect + offset)\n"
 msgstr "STC_NOP_PS (stocke NOP cond Ã  psect + offset)\n"
 
-#: vms-alpha.c:6251
+#: vms-alpha.c:6311
 #, c-format
 msgid "STC_BSR_GBL (store cond BSR at global addr)\n"
 msgstr "STC_BSR_GBL (stocke BSR cond Ã  l'adresse globale)\n"
 
-#: vms-alpha.c:6255
+#: vms-alpha.c:6315
 #, c-format
 msgid "STC_BSR_PS (store cond BSR at psect + offset)\n"
 msgstr "STC_BSR_PS (stocke BSR cond Ã  psect + offset)\n"
 
-#: vms-alpha.c:6259
+#: vms-alpha.c:6319
 #, c-format
 msgid "STC_LDA_GBL (store cond LDA at global addr)\n"
 msgstr "STC_LDA_GBL (stocke LDA cond Ã  l'adresse globale)\n"
 
-#: vms-alpha.c:6263
+#: vms-alpha.c:6323
 #, c-format
 msgid "STC_LDA_PS (store cond LDA at psect + offset)\n"
 msgstr "STC_LDA_PS (stocke LDA cond Ã  psect + offset)\n"
 
-#: vms-alpha.c:6267
+#: vms-alpha.c:6327
 #, c-format
 msgid "STC_BOH_GBL (store cond BOH at global addr)\n"
 msgstr "STC_BOH_GBL (stocke BOH cond Ã  l'adresse globale)\n"
 
-#: vms-alpha.c:6271
+#: vms-alpha.c:6331
 #, c-format
 msgid "STC_BOH_PS (store cond BOH at psect + offset)\n"
 msgstr "STC_BOH_PS (stocke BOH cond Ã  psect + offset)\n"
 
-#: vms-alpha.c:6276
+#: vms-alpha.c:6336
 #, c-format
 msgid "STC_NBH_GBL (store cond or hint at global addr)\n"
 msgstr "STC_NBH_GBL (stocke cond ou suggestion Ã  l'adresse globale)\n"
 
-#: vms-alpha.c:6280
+#: vms-alpha.c:6340
 #, c-format
 msgid "STC_NBH_PS (store cond or hint at psect + offset)\n"
 msgstr "STC_NBH_PS (stocke cond or suggestion Ã  psect + offset)\n"
 
-#: vms-alpha.c:6284
+#: vms-alpha.c:6344
 #, c-format
 msgid "CTL_SETRB (set relocation base)\n"
 msgstr "CTL_SETRB (fixe la base du rÃ©adressage)\n"
 
-#: vms-alpha.c:6290
+#: vms-alpha.c:6350
 #, c-format
 msgid "CTL_AUGRB (augment relocation base) %u\n"
 msgstr "CTL_AUGRB (augmente la base du rÃ©adressage) %u\n"
 
-#: vms-alpha.c:6294
+#: vms-alpha.c:6354
 #, c-format
 msgid "CTL_DFLOC (define location)\n"
 msgstr "CTL_DFLOC (dÃ©finir position)\n"
 
-#: vms-alpha.c:6297
+#: vms-alpha.c:6357
 #, c-format
 msgid "CTL_STLOC (set location)\n"
 msgstr "CTL_STLOC (fixer position)\n"
 
-#: vms-alpha.c:6300
+#: vms-alpha.c:6360
 #, c-format
 msgid "CTL_STKDL (stack defined location)\n"
 msgstr "CTL_STKDL (position dÃ©finie dans la pile)\n"
 
-#: vms-alpha.c:6303 vms-alpha.c:6717
+#: vms-alpha.c:6363 vms-alpha.c:6787 vms-alpha.c:6913
 #, c-format
 msgid "*unhandled*\n"
 msgstr "*non pris en charge*\n"
 
-#: vms-alpha.c:6333 vms-alpha.c:6372
+#: vms-alpha.c:6393 vms-alpha.c:6432
 #, c-format
 msgid "cannot read GST record length\n"
 msgstr "impossible de lire la longueur de l'enregistrement GST\n"
 
 #. Ill-formed.
-#: vms-alpha.c:6354
+#: vms-alpha.c:6414
 #, c-format
 msgid "cannot find EMH in first GST record\n"
 msgstr "impossible de trouver le EMH dans le premier enregistrement GST\n"
 
-#: vms-alpha.c:6380
+#: vms-alpha.c:6440
 #, c-format
 msgid "cannot read GST record header\n"
 msgstr "impossible de lire l'en-tÃªte de l'enregistrement GST\n"
 
-#: vms-alpha.c:6393
+#: vms-alpha.c:6453
 #, c-format
 msgid " corrupted GST\n"
 msgstr " GST corrompu\n"
 
-#: vms-alpha.c:6401
+#: vms-alpha.c:6461
 #, c-format
 msgid "cannot read GST record\n"
 msgstr "ne peut lire l'enregistrement GST\n"
 
-#: vms-alpha.c:6430
+#: vms-alpha.c:6490
 #, c-format
 msgid " unhandled EOBJ record type %u\n"
 msgstr " type d'enregistrement EOBJ %u non supportÃ©\n"
 
-#: vms-alpha.c:6453
+#: vms-alpha.c:6514
 #, c-format
 msgid "  bitcount: %u, base addr: 0x%08x\n"
 msgstr "  dÃ©compte des bits: %u, adr base: 0x%08x\n"
 
-#: vms-alpha.c:6466
+#: vms-alpha.c:6528
 #, c-format
 msgid "   bitmap: 0x%08x (count: %u):\n"
 msgstr "   carte des bits: 0x%08x (occurrence: %u):\n"
 
-#: vms-alpha.c:6473
+#: vms-alpha.c:6535
 #, c-format
 msgid " %08x"
 msgstr " %08x"
 
-#: vms-alpha.c:6498
+#: vms-alpha.c:6561
 #, c-format
 msgid "  image %u (%u entries)\n"
 msgstr "  image %u (%u entrÃ©es)\n"
 
-#: vms-alpha.c:6503
+#: vms-alpha.c:6567
 #, c-format
 msgid "   offset: 0x%08x, val: 0x%08x\n"
 msgstr "   offset: 0x%08x, val: 0x%08x\n"
 
-#: vms-alpha.c:6524
+#: vms-alpha.c:6589
 #, c-format
 msgid "  image %u (%u entries), offsets:\n"
 msgstr "  image %u (%u entrÃ©es), offsets:\n"
 
-#: vms-alpha.c:6531
+#: vms-alpha.c:6596
 #, c-format
 msgid " 0x%08x"
 msgstr " 0x%08x"
 
 #. 64 bits.
-#: vms-alpha.c:6653
+#: vms-alpha.c:6718
 #, c-format
 msgid "64 bits *unhandled*\n"
 msgstr "64 bits *non supportÃ©*\n"
 
-#: vms-alpha.c:6657
+#: vms-alpha.c:6723
 #, c-format
 msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
 msgstr "classe: %u, dtype: %u, longueur: %u, pointeur: 0x%08x\n"
 
-#: vms-alpha.c:6668
+#: vms-alpha.c:6734
 #, c-format
 msgid "non-contiguous array of %s\n"
 msgstr "table de %s non contiguÃ«\n"
 
-#: vms-alpha.c:6672
+#: vms-alpha.c:6739
 #, c-format
 msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"
 msgstr "dimct: %u, aflags: 0x%02x, digits: %u, Ã©chelle: %u\n"
 
-#: vms-alpha.c:6676
+#: vms-alpha.c:6744
 #, c-format
 msgid "arsize: %u, a0: 0x%08x\n"
 msgstr "arsize: %u, a0: 0x%08x\n"
 
-#: vms-alpha.c:6680
+#: vms-alpha.c:6748
 #, c-format
 msgid "Strides:\n"
 msgstr "Pas:\n"
 
-#: vms-alpha.c:6685
-#, c-format
-msgid "[%u]: %u\n"
-msgstr "[%u]: %u\n"
-
-#: vms-alpha.c:6690
+#: vms-alpha.c:6758
 #, c-format
 msgid "Bounds:\n"
 msgstr "Limites:\n"
 
-#: vms-alpha.c:6695
+#: vms-alpha.c:6764
 #, c-format
 msgid "[%u]: Lower: %u, upper: %u\n"
 msgstr "[%u]: InfÃ©rieure: %u, supÃ©rieure: %u\n"
 
-#: vms-alpha.c:6707
+#: vms-alpha.c:6776
 #, c-format
 msgid "unaligned bit-string of %s\n"
 msgstr "chaine de bits de %s dÃ©salignÃ©e\n"
 
-#: vms-alpha.c:6711
+#: vms-alpha.c:6781
 #, c-format
 msgid "base: %u, pos: %u\n"
 msgstr "base: %u, pos: %u\n"
 
-#: vms-alpha.c:6731
+#: vms-alpha.c:6802
 #, c-format
 msgid "vflags: 0x%02x, value: 0x%08x "
 msgstr "vflags: 0x%02x, valeur: 0x%08x "
 
-#: vms-alpha.c:6737
+#: vms-alpha.c:6808
 #, c-format
 msgid "(no value)\n"
 msgstr "(pas de valeur)\n"
 
-#: vms-alpha.c:6740
+#: vms-alpha.c:6811
 #, c-format
 msgid "(not active)\n"
 msgstr "(pas active)\n"
 
-#: vms-alpha.c:6743
+#: vms-alpha.c:6814
 #, c-format
 msgid "(not allocated)\n"
 msgstr "(pas allouÃ©e)\n"
 
-#: vms-alpha.c:6746
+#: vms-alpha.c:6817
 #, c-format
 msgid "(descriptor)\n"
 msgstr "(descripteur)\n"
 
-#: vms-alpha.c:6750
+#: vms-alpha.c:6821
 #, c-format
 msgid "(trailing value)\n"
 msgstr "(valeur postÃ©rieure)\n"
 
-#: vms-alpha.c:6753
+#: vms-alpha.c:6824
 #, c-format
 msgid "(value spec follows)\n"
 msgstr "(spÃ©cificitÃ©s de la valeur suivent)\n"
 
-#: vms-alpha.c:6756
+#: vms-alpha.c:6827
 #, c-format
 msgid "(at bit offset %u)\n"
 msgstr "(Ã  l'offset de bit %u)\n"
 
-#: vms-alpha.c:6759
+#: vms-alpha.c:6831
 #, c-format
 msgid "(reg: %u, disp: %u, indir: %u, kind: "
 msgstr "(reg: %u, aff: %u, indir: %u, type: "
 
-#: vms-alpha.c:6766
+#: vms-alpha.c:6838
 msgid "literal"
 msgstr "litÃ©rale"
 
-#: vms-alpha.c:6769
+#: vms-alpha.c:6841
 msgid "address"
 msgstr "adresse"
 
-#: vms-alpha.c:6772
+#: vms-alpha.c:6844
 msgid "desc"
 msgstr "desc"
 
-#: vms-alpha.c:6775
+#: vms-alpha.c:6847
 msgid "reg"
 msgstr "reg"
 
-#: vms-alpha.c:6850
+#: vms-alpha.c:6864
+#, c-format
+msgid "len: %2u, kind: %2u "
+msgstr "long: %2u, type: %2u "
+
+#: vms-alpha.c:6870
+#, c-format
+msgid "atomic, type=0x%02x %s\n"
+msgstr "atomique, type=0x%02x %s\n"
+
+#: vms-alpha.c:6874
+#, c-format
+msgid "indirect, defined at 0x%08x\n"
+msgstr "indirect, dÃ©fini Ã  0x%08x\n"
+
+#: vms-alpha.c:6878
+#, c-format
+msgid "typed pointer\n"
+msgstr "pointeur typÃ©\n"
+
+#: vms-alpha.c:6882
+#, c-format
+msgid "pointer\n"
+msgstr "pointeur\n"
+
+#: vms-alpha.c:6890
+#, c-format
+msgid "array, dim: %u, bitmap: "
+msgstr "tableau, dim: %u, bitmpa: "
+
+#: vms-alpha.c:6897
+#, c-format
+msgid "array descriptor:\n"
+msgstr "descripteur de tableau:\n"
+
+#: vms-alpha.c:6904
+#, c-format
+msgid "type spec for element:\n"
+msgstr "spec de type pour Ã©lÃ©ment:\n"
+
+#: vms-alpha.c:6906
+#, c-format
+msgid "type spec for subscript %u:\n"
+msgstr "spec de type pour l'indice %u:\n"
+
+#: vms-alpha.c:6924
 #, c-format
 msgid "Debug symbol table:\n"
 msgstr "Table des symboles de debug:\n"
 
-#: vms-alpha.c:6861
+#: vms-alpha.c:6935
 #, c-format
 msgid "cannot read DST header\n"
 msgstr "impossible de lire l'en-tÃªte DST\n"
 
-#: vms-alpha.c:6866
+#: vms-alpha.c:6941
 #, c-format
 msgid " type: %3u, len: %3u (at 0x%08x): "
 msgstr " type: %3u, long: %3u (Ã  0x%08x): "
 
-#: vms-alpha.c:6880
+#: vms-alpha.c:6955
 #, c-format
 msgid "cannot read DST symbol\n"
 msgstr "ne peut lire le symbole DST\n"
 
-#: vms-alpha.c:6923
+#: vms-alpha.c:6998
 #, c-format
 msgid "standard data: %s\n"
 msgstr "donnÃ©es standards: %s\n"
 
-#: vms-alpha.c:6926 vms-alpha.c:7010
+#: vms-alpha.c:7001 vms-alpha.c:7089
 #, c-format
 msgid "    name: %.*s\n"
 msgstr "    nom: %.*s\n"
 
-#: vms-alpha.c:6933
+#: vms-alpha.c:7008
 #, c-format
 msgid "modbeg\n"
 msgstr "dÃ©but module\n"
 
-#: vms-alpha.c:6934
+#: vms-alpha.c:7010
 #, c-format
 msgid "   flags: %d, language: %u, major: %u, minor: %u\n"
 msgstr "   fanions: %d, language: %u, majeur: %u, mineur: %u\n"
 
-#: vms-alpha.c:6940 vms-alpha.c:7206
+#: vms-alpha.c:7016 vms-alpha.c:7290
 #, c-format
 msgid "   module name: %.*s\n"
 msgstr "   nom du module: %.*s\n"
 
-#: vms-alpha.c:6943
+#: vms-alpha.c:7019
 #, c-format
 msgid "   compiler   : %.*s\n"
 msgstr "   compilateur  : %.*s\n"
 
-#: vms-alpha.c:6948
+#: vms-alpha.c:7024
 #, c-format
 msgid "modend\n"
 msgstr "fin module\n"
 
-#: vms-alpha.c:6955
+#: vms-alpha.c:7031
 msgid "rtnbeg\n"
 msgstr "dÃ©but rtn\n"
 
-#: vms-alpha.c:6956
+#: vms-alpha.c:7033
 #, c-format
 msgid "    flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
 msgstr "    fanions: %u, adresse: 0x%08x, pd-adresse: 0x%08x\n"
 
-#: vms-alpha.c:6961
+#: vms-alpha.c:7038
 #, c-format
 msgid "    routine name: %.*s\n"
 msgstr "    nom routine : %.*s\n"
 
-#: vms-alpha.c:6969
+#: vms-alpha.c:7046
 #, c-format
 msgid "rtnend: size 0x%08x\n"
 msgstr "fin rtn: taille 0x%08x\n"
 
-#: vms-alpha.c:6977
+#: vms-alpha.c:7054
 #, c-format
 msgid "prolog: bkpt address 0x%08x\n"
 msgstr "prologue: adresse bkpt 0x%08x\n"
 
-#: vms-alpha.c:6985
+#: vms-alpha.c:7063
 #, c-format
 msgid "epilog: flags: %u, count: %u\n"
 msgstr "Ã©pilogue: fanions: %u, nombre: %u\n"
 
-#: vms-alpha.c:6994
+#: vms-alpha.c:7073
 #, c-format
 msgid "blkbeg: address: 0x%08x, name: %.*s\n"
 msgstr "dÃ©but blk: adresse: 0x%08x, nom: %.*s\n"
 
-#: vms-alpha.c:7003
+#: vms-alpha.c:7082
 #, c-format
 msgid "blkend: size: 0x%08x\n"
 msgstr "fin blk: taille: 0x%08x\n"
 
-#: vms-alpha.c:7009
+#: vms-alpha.c:7088
 #, c-format
 msgid "typspec (len: %u)\n"
 msgstr "typspec (long: %u)\n"
 
-#: vms-alpha.c:7016
+#: vms-alpha.c:7095
 #, c-format
 msgid "septyp, name: %.*s\n"
 msgstr "septyp, nom: %.*s\n"
 
-#: vms-alpha.c:7025
+#: vms-alpha.c:7104
 #, c-format
 msgid "recbeg: name: %.*s\n"
 msgstr "dÃ©but rec: nom: %.*s\n"
 
-#: vms-alpha.c:7032
+#: vms-alpha.c:7106
+#, c-format
+msgid "    len: %u bits\n"
+msgstr "   long: %u bits\n"
+
+#: vms-alpha.c:7111
 #, c-format
 msgid "recend\n"
 msgstr "fin rec\n"
 
-#: vms-alpha.c:7035
+#: vms-alpha.c:7115
 #, c-format
 msgid "enumbeg, len: %u, name: %.*s\n"
 msgstr "dÃ©but Ã©numÃ©ration, long: %u, nom: %.*s\n"
 
-#: vms-alpha.c:7039
+#: vms-alpha.c:7119
 #, c-format
 msgid "enumelt, name: %.*s\n"
 msgstr "Ã©numÃ©ration Ã©lÃ©ments, nom: %.*s\n"
 
-#: vms-alpha.c:7043
+#: vms-alpha.c:7123
 #, c-format
 msgid "enumend\n"
 msgstr "fin Ã©numÃ©ration\n"
 
-#: vms-alpha.c:7060
+#: vms-alpha.c:7128
+#, c-format
+msgid "label, name: %.*s\n"
+msgstr "Ã©tiquette, nom: %.*s\n"
+
+#: vms-alpha.c:7130
+#, c-format
+msgid "    address: 0x%08x\n"
+msgstr "    adresse: 0x%08x\n"
+
+#: vms-alpha.c:7140
 #, c-format
 msgid "discontiguous range (nbr: %u)\n"
 msgstr "plage discontinue (nbr: %u)\n"
 
-#: vms-alpha.c:7062
+#: vms-alpha.c:7143
 #, c-format
 msgid "    address: 0x%08x, size: %u\n"
 msgstr "    adresse: 0x%08x, taille: %u\n"
 
-#: vms-alpha.c:7072
+#: vms-alpha.c:7153
 #, c-format
 msgid "line num  (len: %u)\n"
 msgstr "num ligne  (long: %u)\n"
 
-#: vms-alpha.c:7089
+#: vms-alpha.c:7170
 #, c-format
 msgid "delta_pc_w %u\n"
 msgstr "delta_pc_w %u\n"
 
-#: vms-alpha.c:7096
+#: vms-alpha.c:7177
 #, c-format
 msgid "incr_linum(b): +%u\n"
 msgstr "incr_linum(b): +%u\n"
 
-#: vms-alpha.c:7102
+#: vms-alpha.c:7183
 #, c-format
 msgid "incr_linum_w: +%u\n"
 msgstr "incr_linum_w: +%u\n"
 
-#: vms-alpha.c:7108
+#: vms-alpha.c:7189
 #, c-format
 msgid "incr_linum_l: +%u\n"
 msgstr "incr_linum_l: +%u\n"
 
-#: vms-alpha.c:7114
+#: vms-alpha.c:7195
 #, c-format
 msgid "set_line_num(w) %u\n"
 msgstr "set_line_num(w) %u\n"
 
-#: vms-alpha.c:7119
+#: vms-alpha.c:7200
 #, c-format
 msgid "set_line_num_b %u\n"
 msgstr "set_line_num_b %u\n"
 
-#: vms-alpha.c:7124
+#: vms-alpha.c:7205
 #, c-format
 msgid "set_line_num_l %u\n"
 msgstr "set_line_num_l %u\n"
 
-#: vms-alpha.c:7129
+#: vms-alpha.c:7210
 #, c-format
 msgid "set_abs_pc: 0x%08x\n"
 msgstr "set_abs_pc: 0x%08x\n"
 
-#: vms-alpha.c:7133
+#: vms-alpha.c:7214
 #, c-format
 msgid "delta_pc_l: +0x%08x\n"
 msgstr "delta_pc_l: +0x%08x\n"
 
-#: vms-alpha.c:7138
+#: vms-alpha.c:7219
 #, c-format
 msgid "term(b): 0x%02x"
 msgstr "term(b): 0x%02x"
 
-#: vms-alpha.c:7140
+#: vms-alpha.c:7221
 #, c-format
 msgid "        pc: 0x%08x\n"
 msgstr "        pc: 0x%08x\n"
 
-#: vms-alpha.c:7145
+#: vms-alpha.c:7226
 #, c-format
 msgid "term_w: 0x%04x"
 msgstr "term_w: 0x%04x"
 
-#: vms-alpha.c:7147
+#: vms-alpha.c:7228
 #, c-format
 msgid "    pc: 0x%08x\n"
 msgstr "    pc: 0x%08x\n"
 
-#: vms-alpha.c:7153
+#: vms-alpha.c:7234
 #, c-format
 msgid "delta pc +%-4d"
 msgstr "delta pc +%-4d"
 
-#: vms-alpha.c:7156
+#: vms-alpha.c:7238
 #, c-format
 msgid "    pc: 0x%08x line: %5u\n"
 msgstr "    pc: 0x%08x ligne: %5u\n"
 
-#: vms-alpha.c:7161
+#: vms-alpha.c:7243
 #, c-format
 msgid "    *unhandled* cmd %u\n"
 msgstr "    cmd %u *non gÃ©rÃ©e*\n"
 
-#: vms-alpha.c:7176
+#: vms-alpha.c:7258
 #, c-format
 msgid "source (len: %u)\n"
 msgstr "source (long: %u)\n"
 
-#: vms-alpha.c:7190
+#: vms-alpha.c:7273
 #, c-format
 msgid "   declfile: len: %u, flags: %u, fileid: %u\n"
 msgstr "   declfile: long: %u, fanions: %u, id fichier: %u\n"
 
-#: vms-alpha.c:7194
+#: vms-alpha.c:7278
 #, c-format
 msgid "   rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
 msgstr "   rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
 
-#: vms-alpha.c:7203
+#: vms-alpha.c:7287
 #, c-format
 msgid "   filename   : %.*s\n"
 msgstr "   nom fichier: %.*s\n"
 
-#: vms-alpha.c:7212
+#: vms-alpha.c:7296
 #, c-format
 msgid "   setfile %u\n"
 msgstr "   setfile %u\n"
 
-#: vms-alpha.c:7217 vms-alpha.c:7222
+#: vms-alpha.c:7301 vms-alpha.c:7306
 #, c-format
 msgid "   setrec %u\n"
 msgstr "   setrec %u\n"
 
-#: vms-alpha.c:7227 vms-alpha.c:7232
+#: vms-alpha.c:7311 vms-alpha.c:7316
 #, c-format
 msgid "   setlnum %u\n"
 msgstr "   setlnum %u\n"
 
-#: vms-alpha.c:7237 vms-alpha.c:7242
+#: vms-alpha.c:7321 vms-alpha.c:7326
 #, c-format
 msgid "   deflines %u\n"
 msgstr "   deflines %u\n"
 
-#: vms-alpha.c:7246
+#: vms-alpha.c:7330
 #, c-format
 msgid "   formfeed\n"
 msgstr "   formfeed\n"
 
-#: vms-alpha.c:7250
+#: vms-alpha.c:7334
 #, c-format
 msgid "   *unhandled* cmd %u\n"
 msgstr "   cmd %u *non gÃ©rÃ©e*\n"
 
-#: vms-alpha.c:7262
+#: vms-alpha.c:7346
 #, c-format
 msgid "*unhandled* dst type %u\n"
 msgstr "type dst %u *non gÃ©rÃ©*\n"
 
-#: vms-alpha.c:7294
+#: vms-alpha.c:7378
 #, c-format
 msgid "cannot read EIHD\n"
 msgstr "ne peut lire EIHD\n"
 
-#: vms-alpha.c:7297
+#: vms-alpha.c:7382
 #, c-format
 msgid "EIHD: (size: %u, nbr blocks: %u)\n"
 msgstr "EIHD: (taille: %u, nbr blocs: %u)\n"
 
-#: vms-alpha.c:7300
+#: vms-alpha.c:7386
 #, c-format
 msgid " majorid: %u, minorid: %u\n"
 msgstr " id majeur: %u, id mineur: %u\n"
 
-#: vms-alpha.c:7308
+#: vms-alpha.c:7394
 msgid "executable"
 msgstr "exÃ©cutable"
 
-#: vms-alpha.c:7311
+#: vms-alpha.c:7397
 msgid "linkable image"
 msgstr "image liable"
 
-#: vms-alpha.c:7317
+#: vms-alpha.c:7404
 #, c-format
 msgid " image type: %u (%s)"
 msgstr " type image: %u (%s)"
 
-#: vms-alpha.c:7323
+#: vms-alpha.c:7410
 msgid "native"
 msgstr "natif"
 
-#: vms-alpha.c:7326
+#: vms-alpha.c:7413
 msgid "CLI"
 msgstr "CLI"
 
-#: vms-alpha.c:7332
+#: vms-alpha.c:7420
 #, c-format
 msgid ", subtype: %u (%s)\n"
 msgstr ", sous-type: %u (%s)\n"
 
-#: vms-alpha.c:7338
+#: vms-alpha.c:7427
 #, c-format
 msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
 msgstr " offsets: isd: %u, actif: %u, debug symbol: %u, id image: %u, patch: %u\n"
 
-#: vms-alpha.c:7342
+#: vms-alpha.c:7431
 #, c-format
 msgid " fixup info rva: "
 msgstr " correctif info rva: "
 
-#: vms-alpha.c:7344
+#: vms-alpha.c:7433
 #, c-format
 msgid ", symbol vector rva: "
 msgstr ", vecteur de symbol rva: "
 
-#: vms-alpha.c:7347
+#: vms-alpha.c:7436
 #, c-format
 msgid ""
 "\n"
@@ -5251,694 +7399,688 @@ msgstr ""
 "\n"
 " offset tableau version: %u\n"
 
-#: vms-alpha.c:7351
+#: vms-alpha.c:7441
 #, c-format
 msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
 msgstr " dÃ©compte E/S img: %u, nbr canaux: %u, priv req: %08x%08x\n"
 
-#: vms-alpha.c:7357
+#: vms-alpha.c:7447
 #, c-format
 msgid " linker flags: %08x:"
 msgstr " fanions lieur: %08x:"
 
-#: vms-alpha.c:7387
+#: vms-alpha.c:7478
 #, c-format
 msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
 msgstr " ident: 0x%08x, ver sys: 0x%08x, apparier ctrl: %u, taille vectsym: %u\n"
 
-#: vms-alpha.c:7393
+#: vms-alpha.c:7484
 #, c-format
 msgid " BPAGE: %u"
 msgstr " BPAGE: %u"
 
-#: vms-alpha.c:7399
+#: vms-alpha.c:7491
 #, c-format
 msgid ", ext fixup offset: %u, no_opt psect off: %u"
 msgstr ", offset correctif Ã©tendu: %u, offset no_opt psect: %u"
 
-#: vms-alpha.c:7402
+#: vms-alpha.c:7494
 #, c-format
 msgid ", alias: %u\n"
 msgstr ", alias: %u\n"
 
-#: vms-alpha.c:7410
+#: vms-alpha.c:7502
 #, c-format
 msgid "system version array information:\n"
 msgstr "information sur table de version systÃ¨me:\n"
 
-#: vms-alpha.c:7414
+#: vms-alpha.c:7506
 #, c-format
 msgid "cannot read EIHVN header\n"
 msgstr "ne peut lire l'en-tÃªte EIHVN\n"
 
-#: vms-alpha.c:7424
+#: vms-alpha.c:7516
 #, c-format
 msgid "cannot read EIHVN version\n"
 msgstr "ne peut lire la version EIHVN\n"
 
-#: vms-alpha.c:7427
+#: vms-alpha.c:7519
 #, c-format
 msgid "   %02u "
 msgstr "   %02u "
 
-#: vms-alpha.c:7431
+#: vms-alpha.c:7523
 msgid "BASE_IMAGE       "
 msgstr "BASE_IMAGE       "
 
-#: vms-alpha.c:7434
+#: vms-alpha.c:7526
 msgid "MEMORY_MANAGEMENT"
 msgstr "MEMORY_MANAGEMENT"
 
-#: vms-alpha.c:7437
+#: vms-alpha.c:7529
 msgid "IO               "
 msgstr "IO               "
 
-#: vms-alpha.c:7440
+#: vms-alpha.c:7532
 msgid "FILES_VOLUMES    "
 msgstr "FILES_VOLUMES    "
 
-#: vms-alpha.c:7443
+#: vms-alpha.c:7535
 msgid "PROCESS_SCHED    "
 msgstr "PROCESS_SCHED    "
 
-#: vms-alpha.c:7446
+#: vms-alpha.c:7538
 msgid "SYSGEN           "
 msgstr "SYSGEN           "
 
-#: vms-alpha.c:7449
+#: vms-alpha.c:7541
 msgid "CLUSTERS_LOCKMGR "
 msgstr "CLUSTERS_LOCKMGR "
 
-#: vms-alpha.c:7452
+#: vms-alpha.c:7544
 msgid "LOGICAL_NAMES    "
 msgstr "LOGICAL_NAMES    "
 
-#: vms-alpha.c:7455
+#: vms-alpha.c:7547
 msgid "SECURITY         "
 msgstr "SECURITY         "
 
-#: vms-alpha.c:7458
+#: vms-alpha.c:7550
 msgid "IMAGE_ACTIVATOR  "
 msgstr "IMAGE_ACTIVATOR  "
 
-#: vms-alpha.c:7461
+#: vms-alpha.c:7553
 msgid "NETWORKS         "
 msgstr "NETWORKS         "
 
-#: vms-alpha.c:7464
+#: vms-alpha.c:7556
 msgid "COUNTERS         "
 msgstr "COUNTERS         "
 
-#: vms-alpha.c:7467
+#: vms-alpha.c:7559
 msgid "STABLE           "
 msgstr "STABLE           "
 
-#: vms-alpha.c:7470
+#: vms-alpha.c:7562
 msgid "MISC             "
 msgstr "MISC             "
 
-#: vms-alpha.c:7473
+#: vms-alpha.c:7565
 msgid "CPU              "
 msgstr "CPU              "
 
-#: vms-alpha.c:7476
+#: vms-alpha.c:7568
 msgid "VOLATILE         "
 msgstr "VOLATILE         "
 
-#: vms-alpha.c:7479
+#: vms-alpha.c:7571
 msgid "SHELL            "
 msgstr "SHELL            "
 
-#: vms-alpha.c:7482
+#: vms-alpha.c:7574
 msgid "POSIX            "
 msgstr "POSIX            "
 
-#: vms-alpha.c:7485
+#: vms-alpha.c:7577
 msgid "MULTI_PROCESSING "
 msgstr "MULTI_PROCESSING "
 
-#: vms-alpha.c:7488
+#: vms-alpha.c:7580
 msgid "GALAXY           "
 msgstr "GALAXY           "
 
-#: vms-alpha.c:7491
+#: vms-alpha.c:7583
 msgid "*unknown*        "
 msgstr "*inconnu*        "
 
-#: vms-alpha.c:7494
-#, c-format
-msgid ": %u.%u\n"
-msgstr ": %u.%u\n"
-
-#: vms-alpha.c:7507 vms-alpha.c:7766
+#: vms-alpha.c:7599 vms-alpha.c:7874
 #, c-format
 msgid "cannot read EIHA\n"
 msgstr "ne peut lire EIHA\n"
 
-#: vms-alpha.c:7510
+#: vms-alpha.c:7602
 #, c-format
 msgid "Image activation:  (size=%u)\n"
 msgstr "Activation de l'image:  (taille=%u)\n"
 
-#: vms-alpha.c:7512
+#: vms-alpha.c:7605
 #, c-format
 msgid " First address : 0x%08x 0x%08x\n"
 msgstr " PremiÃ¨re adresse : 0x%08x 0x%08x\n"
 
-#: vms-alpha.c:7515
+#: vms-alpha.c:7609
 #, c-format
 msgid " Second address: 0x%08x 0x%08x\n"
 msgstr " DeuxiÃ¨me adresse : 0x%08x 0x%08x\n"
 
-#: vms-alpha.c:7518
+#: vms-alpha.c:7613
 #, c-format
 msgid " Third address : 0x%08x 0x%08x\n"
 msgstr " TroisiÃ¨me adresse: 0x%08x 0x%08x\n"
 
-#: vms-alpha.c:7521
+#: vms-alpha.c:7617
 #, c-format
 msgid " Fourth address: 0x%08x 0x%08x\n"
 msgstr " QuatriÃ¨me adresse: 0x%08x 0x%08x\n"
 
-#: vms-alpha.c:7524
+#: vms-alpha.c:7621
 #, c-format
 msgid " Shared image  : 0x%08x 0x%08x\n"
 msgstr " Image partagÃ©e   : 0x%08x 0x%08x\n"
 
-#: vms-alpha.c:7535
+#: vms-alpha.c:7632
 #, c-format
 msgid "cannot read EIHI\n"
 msgstr "ne peut lire EIHI\n"
 
-#: vms-alpha.c:7538
+#: vms-alpha.c:7636
 #, c-format
 msgid "Image identification: (major: %u, minor: %u)\n"
 msgstr "Identification d'image: (majeur: %u, mineur: %u)\n"
 
-#: vms-alpha.c:7541
+#: vms-alpha.c:7639
 #, c-format
 msgid " image name       : %.*s\n"
 msgstr " nom de l'image    : %.*s\n"
 
-#: vms-alpha.c:7543
+#: vms-alpha.c:7641
 #, c-format
 msgid " link time        : %s\n"
 msgstr " heure de liaison  : %s\n"
 
-#: vms-alpha.c:7545
+#: vms-alpha.c:7643
 #, c-format
 msgid " image ident      : %.*s\n"
 msgstr " ident image       : %.*s\n"
 
-#: vms-alpha.c:7547
+#: vms-alpha.c:7645
 #, c-format
 msgid " linker ident     : %.*s\n"
 msgstr " ident lieur       : %.*s\n"
 
-#: vms-alpha.c:7549
+#: vms-alpha.c:7647
 #, c-format
 msgid " image build ident: %.*s\n"
 msgstr " ident construction image: %.*s\n"
 
-#: vms-alpha.c:7559
+#: vms-alpha.c:7657
 #, c-format
 msgid "cannot read EIHS\n"
 msgstr "ne peut lire EIHS\n"
 
-#: vms-alpha.c:7562
+#: vms-alpha.c:7661
 #, c-format
 msgid "Image symbol & debug table: (major: %u, minor: %u)\n"
 msgstr "Image des symboles et table debug: (majeur: %u, mineur: %u)\n"
 
-#: vms-alpha.c:7567
+#: vms-alpha.c:7667
 #, c-format
 msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n"
 msgstr " table des symboles de debug : vbn: %u, taille: %u (0x%x)\n"
 
-#: vms-alpha.c:7571
+#: vms-alpha.c:7672
 #, c-format
 msgid " global symbol table: vbn: %u, records: %u\n"
 msgstr " table des symboles globale: vbn: %u, enregistrements: %u\n"
 
-#: vms-alpha.c:7575
+#: vms-alpha.c:7677
 #, c-format
 msgid " debug module table : vbn: %u, size: %u\n"
 msgstr " table des modules de debug: vbn: %u, taille: %u\n"
 
-#: vms-alpha.c:7588
+#: vms-alpha.c:7690
 #, c-format
 msgid "cannot read EISD\n"
 msgstr "ne peut lire EISD\n"
 
-#: vms-alpha.c:7598
+#: vms-alpha.c:7701
 #, c-format
 msgid "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n"
 msgstr "Descripteur de section d'image: (majeur: %u, mineur: %u, taille: %u, offset: %u)\n"
 
-#: vms-alpha.c:7605
+#: vms-alpha.c:7709
 #, c-format
 msgid " section: base: 0x%08x%08x size: 0x%08x\n"
 msgstr " section: base: 0x%08x%08x taille: 0x%08x\n"
 
-#: vms-alpha.c:7610
+#: vms-alpha.c:7714
 #, c-format
 msgid " flags: 0x%04x"
 msgstr " fanions: 0x%04x"
 
-#: vms-alpha.c:7647
+#: vms-alpha.c:7752
 #, c-format
 msgid " vbn: %u, pfc: %u, matchctl: %u type: %u ("
 msgstr " vbn: %u, pfc: %u, matchctl: %u type: %u ("
 
-#: vms-alpha.c:7653
+#: vms-alpha.c:7758
 msgid "NORMAL"
 msgstr "NORMAL"
 
-#: vms-alpha.c:7656
+#: vms-alpha.c:7761
 msgid "SHRFXD"
 msgstr "SHRFXD"
 
-#: vms-alpha.c:7659
+#: vms-alpha.c:7764
 msgid "PRVFXD"
 msgstr "PRVFXD"
 
-#: vms-alpha.c:7662
+#: vms-alpha.c:7767
 msgid "SHRPIC"
 msgstr "SHRPIC"
 
-#: vms-alpha.c:7665
+#: vms-alpha.c:7770
 msgid "PRVPIC"
 msgstr "PRVPIC"
 
-#: vms-alpha.c:7668
+#: vms-alpha.c:7773
 msgid "USRSTACK"
 msgstr "USRSTACK"
 
-#: vms-alpha.c:7676
+#: vms-alpha.c:7779
+msgid ")\n"
+msgstr ")\n"
+
+#: vms-alpha.c:7782
 #, c-format
 msgid " ident: 0x%08x, name: %.*s\n"
 msgstr " ident: 0x%08x, nom: %.*s\n"
 
-#: vms-alpha.c:7686
+#: vms-alpha.c:7792
 #, c-format
 msgid "cannot read DMT\n"
 msgstr "ne peut lire DMT\n"
 
-#: vms-alpha.c:7690
+#: vms-alpha.c:7796
 #, c-format
 msgid "Debug module table:\n"
 msgstr "Table de debug du module:\n"
 
-#: vms-alpha.c:7699
+#: vms-alpha.c:7805
 #, c-format
 msgid "cannot read DMT header\n"
 msgstr "ne peut lire l'en-tÃªte DMT\n"
 
-#: vms-alpha.c:7704
+#: vms-alpha.c:7811
 #, c-format
 msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
 msgstr " offset du module: 0x%08x, taille: 0x%08x, (%u psects)\n"
 
-#: vms-alpha.c:7714
+#: vms-alpha.c:7821
 #, c-format
 msgid "cannot read DMT psect\n"
 msgstr "ne peut lire le psect DMT\n"
 
-#: vms-alpha.c:7717
+#: vms-alpha.c:7825
 #, c-format
 msgid "  psect start: 0x%08x, length: %u\n"
 msgstr "  dÃ©but psect: 0x%08x, longueur: %u\n"
 
-#: vms-alpha.c:7730
+#: vms-alpha.c:7838
 #, c-format
 msgid "cannot read DST\n"
 msgstr "ne peut lire DST\n"
 
-#: vms-alpha.c:7740
+#: vms-alpha.c:7848
 #, c-format
 msgid "cannot read GST\n"
 msgstr "ne peut lire GST\n"
 
-#: vms-alpha.c:7744
+#: vms-alpha.c:7852
 #, c-format
 msgid "Global symbol table:\n"
 msgstr "Table des symboles globaux:\n"
 
-#: vms-alpha.c:7772
+#: vms-alpha.c:7881
 #, c-format
 msgid "Image activator fixup: (major: %u, minor: %u)\n"
 msgstr "Correction de l'activateur de l'image: (majeur: %u, mineur: %u)\n"
 
-#: vms-alpha.c:7775
+#: vms-alpha.c:7885
 #, c-format
 msgid "  iaflink : 0x%08x %08x\n"
 msgstr "  lien iaf : 0x%08x %08x\n"
 
-#: vms-alpha.c:7778
+#: vms-alpha.c:7889
 #, c-format
 msgid "  fixuplnk: 0x%08x %08x\n"
 msgstr "  lien correctif: 0x%08x %08x\n"
 
-#: vms-alpha.c:7781
+#: vms-alpha.c:7892
 #, c-format
 msgid "  size : %u\n"
 msgstr "  taille : %u\n"
 
-#: vms-alpha.c:7783
+#: vms-alpha.c:7894
 #, c-format
 msgid "  flags: 0x%08x\n"
 msgstr "  fanions: 0x%08x\n"
 
-#: vms-alpha.c:7787
+#: vms-alpha.c:7899
 #, c-format
 msgid "  qrelfixoff: %5u, lrelfixoff: %5u\n"
 msgstr "  qrelfixoff: %5u, lrelfixoff: %5u\n"
 
-#: vms-alpha.c:7791
+#: vms-alpha.c:7904
 #, c-format
 msgid "  qdotadroff: %5u, ldotadroff: %5u\n"
 msgstr "  qdotadroff: %5u, ldotadroff: %5u\n"
 
-#: vms-alpha.c:7795
+#: vms-alpha.c:7909
 #, c-format
 msgid "  codeadroff: %5u, lpfixoff  : %5u\n"
 msgstr "  codeadroff: %5u, lpfixoff  : %5u\n"
 
-#: vms-alpha.c:7798
+#: vms-alpha.c:7912
 #, c-format
 msgid "  chgprtoff : %5u\n"
 msgstr "  chgprtoff : %5u\n"
 
-#: vms-alpha.c:7801
+#: vms-alpha.c:7916
 #, c-format
 msgid "  shlstoff  : %5u, shrimgcnt : %5u\n"
 msgstr "  shlstoff  : %5u, shrimgcnt : %5u\n"
 
-#: vms-alpha.c:7803
+#: vms-alpha.c:7919
 #, c-format
 msgid "  shlextra  : %5u, permctx   : %5u\n"
 msgstr "  shlextra  : %5u, permctx   : %5u\n"
 
-#: vms-alpha.c:7806
+#: vms-alpha.c:7922
 #, c-format
 msgid "  base_va : 0x%08x\n"
 msgstr "  base_va : 0x%08x\n"
 
-#: vms-alpha.c:7808
+#: vms-alpha.c:7924
 #, c-format
 msgid "  lppsbfixoff: %5u\n"
 msgstr "  lppsbfixoff: %5u\n"
 
-#: vms-alpha.c:7816
+#: vms-alpha.c:7932
 #, c-format
 msgid " Shareable images:\n"
 msgstr " Images partageables:\n"
 
-#: vms-alpha.c:7820
+#: vms-alpha.c:7937
 #, c-format
 msgid "  %u: size: %u, flags: 0x%02x, name: %.*s\n"
 msgstr "  %u: taille: %u, fanions: 0x%02x, nom: %.*s\n"
 
-#: vms-alpha.c:7827
+#: vms-alpha.c:7944
 #, c-format
 msgid " quad-word relocation fixups:\n"
 msgstr " correctifs du rÃ©adressage des quad-mots:\n"
 
-#: vms-alpha.c:7832
+#: vms-alpha.c:7949
 #, c-format
 msgid " long-word relocation fixups:\n"
 msgstr " correctifs du rÃ©adressage des mots longs:\n"
 
-#: vms-alpha.c:7837
+#: vms-alpha.c:7954
 #, c-format
 msgid " quad-word .address reference fixups:\n"
-msgstr " correctifs des rÃ©fÃ©rences quad-mots Â«.addressÂ»:\n"
+msgstr " correctifs des rÃ©fÃ©rences quad-mots Â«Â .addressÂ Â»:\n"
 
-#: vms-alpha.c:7842
+#: vms-alpha.c:7959
 #, c-format
 msgid " long-word .address reference fixups:\n"
-msgstr " correctifs des rÃ©fÃ©rences mots longs Â«.addressÂ»:\n"
+msgstr " correctifs des rÃ©fÃ©rences mots longs Â«Â .addressÂ Â»:\n"
 
-#: vms-alpha.c:7847
+#: vms-alpha.c:7964
 #, c-format
 msgid " Code Address Reference Fixups:\n"
 msgstr " Correctifs des rÃ©fÃ©rences des adresses de code:\n"
 
-#: vms-alpha.c:7852
+#: vms-alpha.c:7969
 #, c-format
-msgid " Linkage Pairs Referece Fixups:\n"
+msgid " Linkage Pairs Reference Fixups:\n"
 msgstr " Correctifs des rÃ©fÃ©rences des paires de liaison:\n"
 
-#: vms-alpha.c:7861
+#: vms-alpha.c:7978
 #, c-format
 msgid " Change Protection (%u entries):\n"
 msgstr " Changement de protection (%u entrÃ©es):\n"
 
-#: vms-alpha.c:7866
+#: vms-alpha.c:7984
 #, c-format
 msgid "  base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "
 msgstr "  base: 0x%08x %08x, taille: 0x%08x, prot: 0x%08x "
 
 #. FIXME: we do not yet support relocatable link.  It is not obvious
 #. how to do it for debug infos.
-#: vms-alpha.c:8706
+#: vms-alpha.c:8824
 msgid "%P: relocatable link is not supported\n"
 msgstr "%P: lien relocalisable pas supportÃ©\n"
 
-#: vms-alpha.c:8776
+#: vms-alpha.c:8895
+#, c-format
 msgid "%P: multiple entry points: in modules %B and %B\n"
 msgstr "%P: points d'entrÃ©e multiples: dans les modules %B et %B\n"
 
-#: vms-lib.c:1423
+#: vms-lib.c:1445
 #, c-format
 msgid "could not open shared image '%s' from '%s'"
-msgstr "n'a pas su ouvrir l'image partagÃ©e Â«%sÂ» de Â«%sÂ»"
+msgstr "n'a pas su ouvrir l'image partagÃ©e Â«Â %sÂ Â» de Â«Â %sÂ Â»"
 
-#: vms-misc.c:360
+#: vms-misc.c:361
 msgid "_bfd_vms_output_counted called with zero bytes"
 msgstr "_bfd_vms_output_counted appelÃ© avec un compte de zÃ©ro octet"
 
-#: vms-misc.c:365
+#: vms-misc.c:366
 msgid "_bfd_vms_output_counted called with too many bytes"
 msgstr "_bfd_vms_output_counted appelÃ© avec trop d'octets"
 
-#: xcofflink.c:836
-#, c-format
-msgid "%s: XCOFF shared object when not producing XCOFF output"
-msgstr "%s: objet XCOFF partagÃ© alors qu'on ne produit pas de sortie XCOFF"
+#: xcofflink.c:832
+msgid "%B: XCOFF shared object when not producing XCOFF output"
+msgstr "%B: objet XCOFF partagÃ© alors qu'on ne produit pas de sortie XCOFF"
+
+#: xcofflink.c:853
+msgid "%B: dynamic object with no .loader section"
+msgstr "%B: objet dynamique sans section .loader"
 
-#: xcofflink.c:857
+#: xcofflink.c:1413
 #, c-format
-msgid "%s: dynamic object with no .loader section"
-msgstr "%s: objet dynamique sans section .loader"
-
-#: xcofflink.c:1416
 msgid "%B: `%s' has line numbers but no enclosing section"
-msgstr "%B: Â«%sÂ» contient des numÃ©ros de lignes mais de section d'encadrement"
+msgstr "%B: Â«Â %sÂ Â» contient des numÃ©ros de lignes mais de section d'encadrement"
 
-#: xcofflink.c:1468
+#: xcofflink.c:1466
+#, c-format
 msgid "%B: class %d symbol `%s' has no aux entries"
-msgstr "%B: classe %d symbole Â«%sÂ» n'a pas d'entrÃ©e auxiliaire"
+msgstr "%B: classe %d symbole Â«Â %sÂ Â» n'a pas d'entrÃ©e auxiliaire"
 
-#: xcofflink.c:1490
+#: xcofflink.c:1489
+#, c-format
 msgid "%B: symbol `%s' has unrecognized csect type %d"
-msgstr "%B: symbole Â«%sÂ» a un type csect %d non reconnu"
+msgstr "%B: symbole Â«Â %sÂ Â» a un type csect %d non reconnu"
 
 #: xcofflink.c:1502
+#, c-format
 msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d"
-msgstr "%B: symbole XTY_ER Â«%sÂ» erronÃ©: classe %d scnum %d scnlen %d"
+msgstr "%B: symbole XTY_ER Â«Â %sÂ Â» erronÃ©: classe %d scnum %d scnlen %d"
 
-#: xcofflink.c:1531
+#: xcofflink.c:1532
+#, c-format
 msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %d"
-msgstr "%B: XMC_TC0 symbol Â«%sÂ» est la classe %d scnlen %d"
+msgstr "%B: XMC_TC0 symbol Â«Â %sÂ Â» est la classe %d scnlen %d"
 
-#: xcofflink.c:1677
+#: xcofflink.c:1679
+#, c-format
 msgid "%B: csect `%s' not in enclosing section"
-msgstr "%B: csect Â«%sÂ» n'est pas dans un section d'encadrement"
+msgstr "%B: csect Â«Â %sÂ Â» n'est pas dans un section d'encadrement"
 
-#: xcofflink.c:1784
+#: xcofflink.c:1787
+#, c-format
 msgid "%B: misplaced XTY_LD `%s'"
-msgstr "%B: XTY_LD Â«%sÂ» mal placÃ©"
+msgstr "%B: XTY_LD Â«Â %sÂ Â» mal placÃ©"
 
-#: xcofflink.c:2103
+#: xcofflink.c:2108
+#, c-format
 msgid "%B: reloc %s:%d not in csect"
-msgstr "%B: relocalisation %s:%d n'est pas dans csect"
+msgstr "%B: rÃ©adressage %s:%d n'est pas dans csect"
 
-#: xcofflink.c:3194
+#: xcofflink.c:3198
 #, c-format
 msgid "%s: no such symbol"
 msgstr "%s: pas de tel symbole"
 
-#: xcofflink.c:3299
+#: xcofflink.c:3303
 #, c-format
 msgid "warning: attempt to export undefined symbol `%s'"
-msgstr "attention: tentative d'exportation d'un symbole non dÃ©fini Â«%sÂ»"
+msgstr "attention: tentative d'exportation d'un symbole non dÃ©fini Â«Â %sÂ Â»"
 
-#: xcofflink.c:3678
+#: xcofflink.c:3682
 msgid "error: undefined symbol __rtinit"
 msgstr "erreur: symbole __rtinit non dÃ©fini"
 
-#: xcofflink.c:4057
+#: xcofflink.c:4062
+#, c-format
 msgid "%B: loader reloc in unrecognized section `%s'"
-msgstr "%B: chargeur de relocalisation dans une section non reconnnue Â«%sÂ»"
+msgstr "%B: chargeur de rÃ©adressage dans une section non reconnue Â«Â %sÂ Â»"
 
-#: xcofflink.c:4068
+#: xcofflink.c:4074
+#, c-format
 msgid "%B: `%s' in loader reloc but not loader sym"
-msgstr "%B: Â«%sÂ» est dans le chargeur de relocalisation mais pas dans celui des symboles"
+msgstr "%B: Â«Â %sÂ Â» est dans le chargeur de rÃ©adressage mais pas dans celui des symboles"
 
-#: xcofflink.c:4084
+#: xcofflink.c:4091
+#, c-format
 msgid "%B: loader reloc in read-only section %A"
-msgstr "%B: chargeur de relocalisation dans la section %A en lecture seule"
+msgstr "%B: chargeur de rÃ©adressages dans la section %A en lecture seule"
 
-#: xcofflink.c:5106
+#: xcofflink.c:5115
 #, c-format
 msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"
 msgstr "DÃ©bordement de la table des entrÃ©es: 0x%lx > 0x10000; essayez l'option -mminimal-toc Ã  la compilation"
 
-#: elf32-ia64.c:628 elf64-ia64.c:628
-msgid "%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch."
-msgstr "%B: Ne peut relÃ¢cher br Ã  0x%lx dans la section Â«%AÂ». Veuillez utiliser brl ou un branchement indirect."
-
-#: elf32-ia64.c:2284 elf64-ia64.c:2284
-msgid "@pltoff reloc against local symbol"
-msgstr "relocalisation @pltoff vers un symbole local"
-
-#: elf32-ia64.c:3687 elf64-ia64.c:3687
-#, c-format
-msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
-msgstr "%s: dÃ©bordement du segment de donnÃ©es court (0x%lx >= 0x400000)"
-
-#: elf32-ia64.c:3698 elf64-ia64.c:3698
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:1890
 #, c-format
-msgid "%s: __gp does not cover short data segment"
-msgstr "%s: __gp ne couvre pas le segment de donnÃ©es court"
-
-#: elf32-ia64.c:3965 elf64-ia64.c:3965
-msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'"
-msgstr "%B: code non pic avec des rÃ©adressages imm vers le symbole dynamique Â«Â %sÂ Â»"
+msgid "Invalid AArch64 reloc number: %d"
+msgstr "NumÃ©ro de rÃ©adressage AArch64 invalide: %d"
 
-#: elf32-ia64.c:4032 elf64-ia64.c:4032
-msgid "%B: @gprel relocation against dynamic symbol %s"
-msgstr "%B: rÃ©adressage @gprel vers le symbole dynamique %s"
-
-#: elf32-ia64.c:4095 elf64-ia64.c:4095
-msgid "%B: linking non-pic code in a position independent executable"
-msgstr "%B: liaison de code non-pic dans un exÃ©cutable Ã  position indÃ©pendante"
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:4777
+msgid "%B: error: Erratum 835769 stub out of range (input file too large)"
+msgstr "%B: erreur: L'Ã©bauche d'erratum du 835769 est hors limite (fichier d'entrÃ©e trop grand)"
 
-#: elf32-ia64.c:4232 elf64-ia64.c:4232
-msgid "%B: @internal branch to dynamic symbol %s"
-msgstr "%B: branchement @internal vers le symbole dynamique %s"
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:4858
+msgid "%B: error: Erratum 843419 stub out of range (input file too large)"
+msgstr "%B: erreur: L'Ã©bauche d'erratum du 843419 est hors limite (fichier d'entrÃ©e trop grand)"
 
-#: elf32-ia64.c:4234 elf64-ia64.c:4234
-msgid "%B: speculation fixup to dynamic symbol %s"
-msgstr "%B: spÃ©culation d'ajustements vers le symbole dynamique %s"
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5340
+#, c-format
+msgid "%B: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC"
+msgstr "%B: rÃ©adressage de %s en vertu du symbol Â«Â %sÂ Â» qui peut Ãªtre liÃ© avec l'extÃ©rieur ne peut Ãªtre utilisÃ© lors de la crÃ©ation d'un objet partagÃ©; recompilez avec -fPIC"
 
-#: elf32-ia64.c:4236 elf64-ia64.c:4236
-msgid "%B: @pcrel relocation against dynamic symbol %s"
-msgstr "%B: rÃ©adressage @pcrel vers le symbole dynamique %s"
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5431
+#, c-format
+msgid "%B: Local symbol descriptor table be NULL when applying relocation %s against local symbol"
+msgstr "%B: La table des descripteurs de symboles locaux peut Ãªtre NULL en application le rÃ©adressage %s sur un symbole local"
 
-#: elf32-ia64.c:4433 elf64-ia64.c:4433
-msgid "unsupported reloc"
-msgstr "relocalisation non supportÃ©e"
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6459
+msgid "Too many GOT entries for -fpic, please recompile with -fPIC"
+msgstr "Trop d'entrÃ©es GOT pour -fpic, recompilez avec -fPIC"
 
-#: elf32-ia64.c:4471 elf64-ia64.c:4471
-msgid "%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'."
-msgstr "%B: setion TLS manquante pour le rÃ©adressage %s vers Â«Â %sÂ Â» Ã  0x%lx dans la section Â«Â %AÂ Â»."
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6487
+msgid "One possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined."
+msgstr "Une cause possible pour cette erreur est que le symbole est rÃ©fÃ©rencÃ© dans le code indiquÃ© comme si il avait un alignement plus grand que celui qui a Ã©tÃ© dÃ©clarÃ© lors de sa dÃ©finition."
 
-#: elf32-ia64.c:4486 elf64-ia64.c:4486
-msgid "%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000)."
-msgstr "%B:Ne peut pas relÃ¢cher br (%s) sur Â«%sÂ» Ã  0x%lx dans la section Â«%AÂ» avec la taille 0x%lx (> 0x1000000)."
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2600
+msgid ""
+"%B: ABI is incompatible with that of the selected emulation:\n"
+"  target emulation `%s' does not match `%s'"
+msgstr ""
+"%B: l'ABI est incompatible avec celle de l'Ã©mulation sÃ©lectionnÃ©e:\n"
+"  l'Ã©mulation de la cible Â«Â %sÂ Â» ne correspond pas Ã  Â«Â %sÂ Â»"
 
-#: elf32-ia64.c:4748 elf64-ia64.c:4748
-msgid "%B: linking trap-on-NULL-dereference with non-trapping files"
-msgstr "%B: Ã©dition de liens trap-on-NULL-dereference avec des fichiers non-trapping"
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2620
+msgid "%B: can't link hard-float modules with soft-float modules"
+msgstr "%B: impossible de lier des modules utilisant des flottants matÃ©riels avec des modules utilisant des flottants logiciels"
 
-#: elf32-ia64.c:4757 elf64-ia64.c:4757
-msgid "%B: linking big-endian files with little-endian files"
-msgstr "%B: Ã©dition de liens entre des fichiers Ã  octets de poids fort et des fichiers Ã  octets de poids faible"
+#: peigen.c:157 pepigen.c:157 pex64igen.c:157
+msgid "%B: unable to find name for empty section"
+msgstr "%B: impossible de trouver le nom pour une section vide"
 
-#: elf32-ia64.c:4766 elf64-ia64.c:4766
-msgid "%B: linking 64-bit files with 32-bit files"
-msgstr "%B: Ã©dition de liens entre fichiers 64 bits et fichiers 32 bits"
+#: peigen.c:183 pepigen.c:183 pex64igen.c:183
+msgid "%B: out of memory creating name for empty section"
+msgstr "%B: pas assez de mÃ©moire en crÃ©ant le nom pour une section vide"
 
-#: elf32-ia64.c:4775 elf64-ia64.c:4775
-msgid "%B: linking constant-gp files with non-constant-gp files"
-msgstr "%B: Ã©dition de liens entre fichiers constant-gp et fichiers non-constant-gp"
+#: peigen.c:194 pepigen.c:194 pex64igen.c:194
+msgid "%B: unable to create fake empty section"
+msgstr "%B: impossible de crÃ©er une section vide factice"
 
-#: elf32-ia64.c:4785 elf64-ia64.c:4785
-msgid "%B: linking auto-pic files with non-auto-pic files"
-msgstr "%B: Ã©dition de liens entre fichiers auto-pic et fichiers non-auto-pic"
+#: peigen.c:532 pepigen.c:532 pex64igen.c:532
+msgid "%B: aout header specifies an invalid number of data-directory entries: %d"
+msgstr "%B: l'en-tÃªte aout spÃ©cifie un nombre invalide d'entrÃ©es de rÃ©pertoire de donnÃ©es: %d"
 
-#: peigen.c:1002 pepigen.c:1002 pex64igen.c:1002
+#: peigen.c:1089 pepigen.c:1089 pex64igen.c:1089
 #, c-format
-msgid "%s: line number overflow: 0x%lx > 0xffff"
-msgstr "%s: dÃ©bordement du nombre de lignes: 0x%lx > 0xffff"
+msgid "%B: line number overflow: 0x%lx > 0xffff"
+msgstr "%B: dÃ©bordement du nombre de lignes: 0x%lx > 0xffff"
 
-#: peigen.c:1029 pepigen.c:1029 pex64igen.c:1029
+#: peigen.c:1233 pepigen.c:1233 pex64igen.c:1233
 msgid "Export Directory [.edata (or where ever we found it)]"
 msgstr "RÃ©pertoire d'exportation [.edata (ou lÃ  oÃ¹ il a Ã©tÃ© trouvÃ©)]"
 
-#: peigen.c:1030 pepigen.c:1030 pex64igen.c:1030
+#: peigen.c:1234 pepigen.c:1234 pex64igen.c:1234
 msgid "Import Directory [parts of .idata]"
 msgstr "RÃ©pertoire d'importation [faisant partie de .idata]"
 
-#: peigen.c:1031 pepigen.c:1031 pex64igen.c:1031
+#: peigen.c:1235 pepigen.c:1235 pex64igen.c:1235
 msgid "Resource Directory [.rsrc]"
 msgstr "RÃ©pertoire des resources [.rsrc]"
 
-#: peigen.c:1032 pepigen.c:1032 pex64igen.c:1032
+#: peigen.c:1236 pepigen.c:1236 pex64igen.c:1236
 msgid "Exception Directory [.pdata]"
 msgstr "RÃ©pertoire des exceptions [.pdata]"
 
-#: peigen.c:1033 pepigen.c:1033 pex64igen.c:1033
+#: peigen.c:1237 pepigen.c:1237 pex64igen.c:1237
 msgid "Security Directory"
 msgstr "RÃ©pertoire de la sÃ©curitÃ©"
 
-#: peigen.c:1034 pepigen.c:1034 pex64igen.c:1034
+#: peigen.c:1238 pepigen.c:1238 pex64igen.c:1238
 msgid "Base Relocation Directory [.reloc]"
 msgstr "RÃ©pertoire de base du rÃ©adressage [.reloc]"
 
-#: peigen.c:1035 pepigen.c:1035 pex64igen.c:1035
+#: peigen.c:1239 pepigen.c:1239 pex64igen.c:1239
 msgid "Debug Directory"
 msgstr "RÃ©pertoire de dÃ©bug"
 
-#: peigen.c:1036 pepigen.c:1036 pex64igen.c:1036
+#: peigen.c:1240 pepigen.c:1240 pex64igen.c:1240
 msgid "Description Directory"
 msgstr "RÃ©pertoire de description"
 
-#: peigen.c:1037 pepigen.c:1037 pex64igen.c:1037
+#: peigen.c:1241 pepigen.c:1241 pex64igen.c:1241
 msgid "Special Directory"
 msgstr "RÃ©pertoire spÃ©cial"
 
-#: peigen.c:1038 pepigen.c:1038 pex64igen.c:1038
+#: peigen.c:1242 pepigen.c:1242 pex64igen.c:1242
 msgid "Thread Storage Directory [.tls]"
 msgstr "RÃ©pertoire des files de stockage [.tls]"
 
-#: peigen.c:1039 pepigen.c:1039 pex64igen.c:1039
+#: peigen.c:1243 pepigen.c:1243 pex64igen.c:1243
 msgid "Load Configuration Directory"
 msgstr "RÃ©pertoire de chargement de configuration"
 
-#: peigen.c:1040 pepigen.c:1040 pex64igen.c:1040
+#: peigen.c:1244 pepigen.c:1244 pex64igen.c:1244
 msgid "Bound Import Directory"
 msgstr "RÃ©pertoire des importations limitÃ©es"
 
-#: peigen.c:1041 pepigen.c:1041 pex64igen.c:1041
+#: peigen.c:1245 pepigen.c:1245 pex64igen.c:1245
 msgid "Import Address Table Directory"
 msgstr "RÃ©pertoire de la table d'adresse d'importation"
 
-#: peigen.c:1042 pepigen.c:1042 pex64igen.c:1042
+#: peigen.c:1246 pepigen.c:1246 pex64igen.c:1246
 msgid "Delay Import Directory"
 msgstr "RÃ©pertoire des dÃ©lais d'importation"
 
-#: peigen.c:1043 pepigen.c:1043 pex64igen.c:1043
+#: peigen.c:1247 pepigen.c:1247 pex64igen.c:1247
 msgid "CLR Runtime Header"
 msgstr "En-tÃªte exÃ©cutable CLR"
 
-#: peigen.c:1044 pepigen.c:1044 pex64igen.c:1044
+#: peigen.c:1248 pepigen.c:1248 pex64igen.c:1248
 msgid "Reserved"
 msgstr "RÃ©servÃ©"
 
-#: peigen.c:1104 pepigen.c:1104 pex64igen.c:1104
+#: peigen.c:1308 pepigen.c:1308 pex64igen.c:1308
 #, c-format
 msgid ""
 "\n"
@@ -5947,7 +8089,16 @@ msgstr ""
 "\n"
 "Il y a une table d'importation, mais la section la contenant ne peut Ãªtre repÃ©rÃ©e\n"
 
-#: peigen.c:1109 pepigen.c:1109 pex64igen.c:1109
+#: peigen.c:1314 pepigen.c:1314 pex64igen.c:1314
+#, c-format
+msgid ""
+"\n"
+"There is an import table in %s, but that section has no contents\n"
+msgstr ""
+"\n"
+"Il y a une table d'importation dans %s, mais cette section n'a pas de contenu\n"
+
+#: peigen.c:1321 pepigen.c:1321 pex64igen.c:1321
 #, c-format
 msgid ""
 "\n"
@@ -5956,7 +8107,7 @@ msgstr ""
 "\n"
 "Il y a une table d'importation dans %s Ã  0x%lx\n"
 
-#: peigen.c:1151 pepigen.c:1151 pex64igen.c:1151
+#: peigen.c:1363 pepigen.c:1363 pex64igen.c:1363
 #, c-format
 msgid ""
 "\n"
@@ -5965,12 +8116,12 @@ msgstr ""
 "\n"
 "Descripteur de fonction localisÃ© Ã  l'adresse de dÃ©part: %04lx\n"
 
-#: peigen.c:1154 pepigen.c:1154 pex64igen.c:1154
+#: peigen.c:1367 pepigen.c:1367 pex64igen.c:1367
 #, c-format
 msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
 msgstr "\tcode-base %08lx tab. des entrÃ©es (chargeable/actuel) %08lx/%08lx\n"
 
-#: peigen.c:1162 pepigen.c:1162 pex64igen.c:1162
+#: peigen.c:1375 pepigen.c:1375 pex64igen.c:1375
 #, c-format
 msgid ""
 "\n"
@@ -5979,7 +8130,7 @@ msgstr ""
 "\n"
 "Pas de section reldata! Descripteur de fonction pas dÃ©codÃ©.\n"
 
-#: peigen.c:1167 pepigen.c:1167 pex64igen.c:1167
+#: peigen.c:1380 pepigen.c:1380 pex64igen.c:1380
 #, c-format
 msgid ""
 "\n"
@@ -5988,7 +8139,7 @@ msgstr ""
 "\n"
 "Les tables d'importation (contenus interprÃ©tÃ© de la section %s)\n"
 
-#: peigen.c:1170 pepigen.c:1170 pex64igen.c:1170
+#: peigen.c:1383 pepigen.c:1383 pex64igen.c:1383
 #, c-format
 msgid ""
 " vma:            Hint    Time      Forward  DLL       First\n"
@@ -5997,30 +8148,36 @@ msgstr ""
 " vma:            Hint    Temps     Avant    DLL       Premier\n"
 "                 Table   Estampil. ChaÃ®ne   Nom       Thunk\n"
 
-#: peigen.c:1218 pepigen.c:1218 pex64igen.c:1218
+#: peigen.c:1433 pepigen.c:1433 pex64igen.c:1433
 #, c-format
 msgid ""
 "\n"
-"\tDLL Name: %s\n"
+"\tDLL Name: %.*s\n"
 msgstr ""
 "\n"
-"\tNom DLL: %s\n"
+"\tNom DLL: %.*s\n"
 
-#: peigen.c:1229 pepigen.c:1229 pex64igen.c:1229
+#: peigen.c:1449 pepigen.c:1449 pex64igen.c:1449
 #, c-format
 msgid "\tvma:  Hint/Ord Member-Name Bound-To\n"
 msgstr "\tvma:  Hint/Ord Membre      Lien\n"
 
-#: peigen.c:1254 pepigen.c:1254 pex64igen.c:1254
+#: peigen.c:1474 pepigen.c:1474 pex64igen.c:1474
 #, c-format
 msgid ""
 "\n"
 "There is a first thunk, but the section containing it could not be found\n"
 msgstr ""
 "\n"
-"Il y a un premier Â«thunkÂ», mais la section le contenant ne peut Ãªtre repÃ©rÃ©e\n"
+"Il y a un premier Â«Â thunkÂ Â», mais la section le contenant ne peut Ãªtre repÃ©rÃ©e\n"
+
+#: peigen.c:1518 peigen.c:1556 pepigen.c:1518 pepigen.c:1556 pex64igen.c:1518
+#: pex64igen.c:1556
+#, c-format
+msgid "\t<corrupt: 0x%04lx>"
+msgstr "\t<corrompu: 0x%04lx>"
 
-#: peigen.c:1415 pepigen.c:1415 pex64igen.c:1415
+#: peigen.c:1649 pepigen.c:1649 pex64igen.c:1649
 #, c-format
 msgid ""
 "\n"
@@ -6029,7 +8186,16 @@ msgstr ""
 "\n"
 "Il y a une table d'exportation, mais la section la contenant n'a pu Ãªtre repÃ©rÃ©e\n"
 
-#: peigen.c:1424 pepigen.c:1424 pex64igen.c:1424
+#: peigen.c:1655 pepigen.c:1655 pex64igen.c:1655
+#, c-format
+msgid ""
+"\n"
+"There is an export table in %s, but that section has no contents\n"
+msgstr ""
+"\n"
+"Il y a une table d'exportation dans %s, mais cette section n'a pas de contenu\n"
+
+#: peigen.c:1665 pepigen.c:1665 pex64igen.c:1665
 #, c-format
 msgid ""
 "\n"
@@ -6038,7 +8204,16 @@ msgstr ""
 "\n"
 "Il y a une table d'exportation dans %s, mais elle ne rentre pas dans la section\n"
 
-#: peigen.c:1430 pepigen.c:1430 pex64igen.c:1430
+#: peigen.c:1676 pepigen.c:1676 pex64igen.c:1676
+#, c-format
+msgid ""
+"\n"
+"There is an export table in %s, but it is too small (%d)\n"
+msgstr ""
+"\n"
+"Il y a une table d'exportation dans %s, mais elle est trop petite (%d)\n"
+
+#: peigen.c:1682 pepigen.c:1682 pex64igen.c:1682
 #, c-format
 msgid ""
 "\n"
@@ -6047,7 +8222,7 @@ msgstr ""
 "\n"
 "Il y a une table d'exportation dans %s Ã  0x%lx\n"
 
-#: peigen.c:1458 pepigen.c:1458 pex64igen.c:1458
+#: peigen.c:1710 pepigen.c:1710 pex64igen.c:1710
 #, c-format
 msgid ""
 "\n"
@@ -6058,67 +8233,67 @@ msgstr ""
 "Les tables d'exportation (contenus interprÃ©tÃ© de la section %s)\n"
 "\n"
 
-#: peigen.c:1462 pepigen.c:1462 pex64igen.c:1462
+#: peigen.c:1714 pepigen.c:1714 pex64igen.c:1714
 #, c-format
 msgid "Export Flags \t\t\t%lx\n"
 msgstr "Fanion d'exportation \t\t\t%lx\n"
 
-#: peigen.c:1465 pepigen.c:1465 pex64igen.c:1465
+#: peigen.c:1717 pepigen.c:1717 pex64igen.c:1717
 #, c-format
 msgid "Time/Date stamp \t\t%lx\n"
 msgstr "Tampon Heure/Date \t\t%lx\n"
 
-#: peigen.c:1468 pepigen.c:1468 pex64igen.c:1468
+#: peigen.c:1721 pepigen.c:1721 pex64igen.c:1721
 #, c-format
 msgid "Major/Minor \t\t\t%d/%d\n"
 msgstr "Majeur/Mineur \t\t\t%d/%d\n"
 
-#: peigen.c:1471 pepigen.c:1471 pex64igen.c:1471
+#: peigen.c:1724 pepigen.c:1724 pex64igen.c:1724
 #, c-format
 msgid "Name \t\t\t\t"
 msgstr "Nom \t\t\t\t"
 
-#: peigen.c:1477 pepigen.c:1477 pex64igen.c:1477
+#: peigen.c:1735 pepigen.c:1735 pex64igen.c:1735
 #, c-format
 msgid "Ordinal Base \t\t\t%ld\n"
 msgstr "base de nombre ordinal \t\t\t%ld\n"
 
-#: peigen.c:1480 pepigen.c:1480 pex64igen.c:1480
+#: peigen.c:1738 pepigen.c:1738 pex64igen.c:1738
 #, c-format
 msgid "Number in:\n"
 msgstr "NumÃ©ro dans:\n"
 
-#: peigen.c:1483 pepigen.c:1483 pex64igen.c:1483
+#: peigen.c:1741 pepigen.c:1741 pex64igen.c:1741
 #, c-format
 msgid "\tExport Address Table \t\t%08lx\n"
 msgstr "\tTable d'adresses d'exportation \t\t%08lx\n"
 
-#: peigen.c:1487 pepigen.c:1487 pex64igen.c:1487
+#: peigen.c:1745 pepigen.c:1745 pex64igen.c:1745
 #, c-format
 msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
 msgstr "\tTable [Nom pointeur/Nombre ordinal]\t%08lx\n"
 
-#: peigen.c:1490 pepigen.c:1490 pex64igen.c:1490
+#: peigen.c:1748 pepigen.c:1748 pex64igen.c:1748
 #, c-format
 msgid "Table Addresses\n"
 msgstr "Table d'adresses\n"
 
-#: peigen.c:1493 pepigen.c:1493 pex64igen.c:1493
+#: peigen.c:1751 pepigen.c:1751 pex64igen.c:1751
 #, c-format
 msgid "\tExport Address Table \t\t"
 msgstr "\tTable d'adresse d'exportation \t\t"
 
-#: peigen.c:1498 pepigen.c:1498 pex64igen.c:1498
+#: peigen.c:1756 pepigen.c:1756 pex64igen.c:1756
 #, c-format
 msgid "\tName Pointer Table \t\t"
 msgstr "\tTable des noms de pointeurs \t\t"
 
-#: peigen.c:1503 pepigen.c:1503 pex64igen.c:1503
+#: peigen.c:1761 pepigen.c:1761 pex64igen.c:1761
 #, c-format
 msgid "\tOrdinal Table \t\t\t"
 msgstr "\tTable des ordinals \t\t\t"
 
-#: peigen.c:1517 pepigen.c:1517 pex64igen.c:1517
+#: peigen.c:1775 pepigen.c:1775 pex64igen.c:1775
 #, c-format
 msgid ""
 "\n"
@@ -6127,15 +8302,20 @@ msgstr ""
 "\n"
 "Table d'adresses d'exportation -- base de nombre ordinal %ld\n"
 
-#: peigen.c:1536 pepigen.c:1536 pex64igen.c:1536
+#: peigen.c:1784 pepigen.c:1784 pex64igen.c:1784
+#, c-format
+msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"
+msgstr "\tL'adresse virtuelle relative de la table des adresses exportÃ©es (0x%lx) ou le nombre d'entrÃ©es (0x%lx) est invalide\n"
+
+#: peigen.c:1803 pepigen.c:1803 pex64igen.c:1803
 msgid "Forwarder RVA"
 msgstr "Adresseur RVA"
 
-#: peigen.c:1547 pepigen.c:1547 pex64igen.c:1547
+#: peigen.c:1815 pepigen.c:1815 pex64igen.c:1815
 msgid "Export RVA"
 msgstr "Exportation RVA"
 
-#: peigen.c:1554 pepigen.c:1554 pex64igen.c:1554
+#: peigen.c:1822 pepigen.c:1822 pex64igen.c:1822
 #, c-format
 msgid ""
 "\n"
@@ -6144,18 +8324,43 @@ msgstr ""
 "\n"
 "Table [Ordinal/Nom de pointeur]\n"
 
-#: peigen.c:1614 peigen.c:1797 pepigen.c:1614 pepigen.c:1797 pex64igen.c:1614
-#: pex64igen.c:1797
+#: peigen.c:1830 pepigen.c:1830 pex64igen.c:1830
+#, c-format
+msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n"
+msgstr "\tAdresse virtuelle relative de la table des pointeurs de noms (0x%lx) ou nombre d'entrÃ©es (0x%lx) invalide\n"
+
+#: peigen.c:1837 pepigen.c:1837 pex64igen.c:1837
+#, c-format
+msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n"
+msgstr "\tAdresse virtuelle relative de la table ordinale (0x%lx) ou nombre d'entrÃ©es (0x%lx) invalide\n"
+
+#: peigen.c:1851 pepigen.c:1851 pex64igen.c:1851
+#, c-format
+msgid "\t[%4ld] <corrupt offset: %lx>\n"
+msgstr "\t[%4ld] <offset corrompu: %lx>\n"
+
+#: peigen.c:1905 peigen.c:2102 pepigen.c:1905 pepigen.c:2102 pex64igen.c:1905
+#: pex64igen.c:2102
 #, c-format
 msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n"
 msgstr "Attention, taille de la section .pdata (%ld) n'est pas un multiple de %d\n"
 
-#: peigen.c:1621 pepigen.c:1621 pex64igen.c:1621
+#: peigen.c:1909 peigen.c:2106 pepigen.c:1909 pepigen.c:2106 pex64igen.c:1909
+#: pex64igen.c:2106
+#, c-format
+msgid ""
+"\n"
+"The Function Table (interpreted .pdata section contents)\n"
+msgstr ""
+"\n"
+"La table de fonctions (interprÃ©tation du contenu de la section .pdata)\n"
+
+#: peigen.c:1912 pepigen.c:1912 pex64igen.c:1912
 #, c-format
 msgid " vma:\t\t\tBegin Address    End Address      Unwind Info\n"
 msgstr " vma:\t\t\tDÃ©but Adresse    Fin Adresse      Unwind Info\n"
 
-#: peigen.c:1623 pepigen.c:1623 pex64igen.c:1623
+#: peigen.c:1914 pepigen.c:1914 pex64igen.c:1914
 #, c-format
 msgid ""
 " vma:\t\tBegin    End      EH       EH       PrologEnd  Exception\n"
@@ -6164,22 +8369,27 @@ msgstr ""
 " vma:\t\tDÃ©but    Fin      EH       EH       FinProlog  Exception\n"
 "     \t\tAdresse  Adresse  Handler  DonnÃ©es  Adresse    Masque\n"
 
-#: peigen.c:1697 pepigen.c:1697 pex64igen.c:1697
+#: peigen.c:1927 pepigen.c:1927 pex64igen.c:1927
+#, c-format
+msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n"
+msgstr "La taille virtuelle de la section .pdata (%ld) est plus grande que la taille rÃ©elle (%ld)\n"
+
+#: peigen.c:1997 pepigen.c:1997 pex64igen.c:1997
 #, c-format
 msgid " Register save millicode"
 msgstr " Registre a prÃ©servÃ© le millicode"
 
-#: peigen.c:1700 pepigen.c:1700 pex64igen.c:1700
+#: peigen.c:2000 pepigen.c:2000 pex64igen.c:2000
 #, c-format
 msgid " Register restore millicode"
 msgstr " Registre a restaurÃ© le millicode"
 
-#: peigen.c:1703 pepigen.c:1703 pex64igen.c:1703
+#: peigen.c:2003 pepigen.c:2003 pex64igen.c:2003
 #, c-format
 msgid " Glue code sequence"
 msgstr " SÃ©quence du code de liants"
 
-#: peigen.c:1803 pepigen.c:1803 pex64igen.c:1803
+#: peigen.c:2108 pepigen.c:2108 pex64igen.c:2108
 #, c-format
 msgid ""
 " vma:\t\tBegin    Prolog   Function Flags    Exception EH\n"
@@ -6188,7 +8398,7 @@ msgstr ""
 " vma:\t\tDÃ©but    Long.    Long.    Fanions  Gestion.  EH\n"
 "     \t\tAdresse  Prolog.  Fonction 32b exc  Exception DonnÃ©es\n"
 
-#: peigen.c:1929 pepigen.c:1929 pex64igen.c:1929
+#: peigen.c:2230 pepigen.c:2230 pex64igen.c:2230
 #, c-format
 msgid ""
 "\n"
@@ -6199,7 +8409,7 @@ msgstr ""
 "\n"
 "Fichier de base des rÃ©adressages PE (contenus interprÃ©tÃ©s de la section .reloc)\n"
 
-#: peigen.c:1958 pepigen.c:1958 pex64igen.c:1958
+#: peigen.c:2260 pepigen.c:2260 pex64igen.c:2260
 #, c-format
 msgid ""
 "\n"
@@ -6208,15 +8418,143 @@ msgstr ""
 "\n"
 "Adresse virtuelle: %08lx taille des morceaux %ld (0x%lx) nombre de correctifs %ld\n"
 
-#: peigen.c:1971 pepigen.c:1971 pex64igen.c:1971
+#: peigen.c:2278 pepigen.c:2278 pex64igen.c:2278
 #, c-format
 msgid "\treloc %4d offset %4x [%4lx] %s"
-msgstr "\trelocalisation %4d dÃ©calage %4x [%4lx] %s"
+msgstr "\trÃ©adressage %4d dÃ©calage %4x [%4lx] %s"
+
+#: peigen.c:2339 pepigen.c:2339 pex64igen.c:2339
+#, c-format
+msgid "%03x %*.s Entry: "
+msgstr "%03x %*.s EntrÃ©e: "
+
+#: peigen.c:2363 pepigen.c:2363 pex64igen.c:2363
+#, c-format
+msgid "name: [val: %08lx len %d]: "
+msgstr "nom: [val: %08lx long %d]: "
+
+#: peigen.c:2383 pepigen.c:2383 pex64igen.c:2383
+#, c-format
+msgid "<corrupt string length: %#x>\n"
+msgstr "<longueur de la chaÃ®ne corrompue: %#x>\n"
+
+#: peigen.c:2393 pepigen.c:2393 pex64igen.c:2393
+#, c-format
+msgid "<corrupt string offset: %#lx>\n"
+msgstr "<offset de la chaÃ®ne corrompue: %#lx>\n"
+
+#: peigen.c:2398 pepigen.c:2398 pex64igen.c:2398
+#, c-format
+msgid "ID: %#08lx"
+msgstr "ID: %#08lx"
+
+#: peigen.c:2401 pepigen.c:2401 pex64igen.c:2401
+#, c-format
+msgid ", Value: %#08lx\n"
+msgstr ", Valeur: %#08lx\n"
+
+#: peigen.c:2423 pepigen.c:2423 pex64igen.c:2423
+#, c-format
+msgid "%03x %*.s  Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
+msgstr "%03x %*.s  Feuilles: Adr: %#08lx, Taille: %#08lx, Codepage: %d\n"
+
+#: peigen.c:2465 pepigen.c:2465 pex64igen.c:2465
+#, c-format
+msgid "<unknown directory type: %d>\n"
+msgstr "<type de rÃ©pertoire inconnu: %d>\n"
+
+#: peigen.c:2473 pepigen.c:2473 pex64igen.c:2473
+#, c-format
+msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n"
+msgstr "Table: Car: %d, Temps: %08lx, Ver: %d/%d, Nbr Noms: %d, IDs: %d\n"
+
+#: peigen.c:2562 pepigen.c:2562 pex64igen.c:2562
+#, c-format
+msgid "Corrupt .rsrc section detected!\n"
+msgstr "DÃ©tection d'une section .rsrc corrompueÂ !\n"
+
+#: peigen.c:2586 pepigen.c:2586 pex64igen.c:2586
+#, c-format
+msgid ""
+"\n"
+"WARNING: Extra data in .rsrc section - it will be ignored by Windows:\n"
+msgstr ""
+"\n"
+"ATTENTION: DonnÃ©es en trop dans la section .rsrc â€“ elles seront ignorÃ©es par Windows:\n"
+
+#: peigen.c:2592 pepigen.c:2592 pex64igen.c:2592
+#, c-format
+msgid " String table starts at offset: %#03x\n"
+msgstr " La table des chaÃ®nes dÃ©marre au dÃ©calage: %#03x\n"
+
+#: peigen.c:2595 pepigen.c:2595 pex64igen.c:2595
+#, c-format
+msgid " Resources start at offset: %#03x\n"
+msgstr " Les ressources dÃ©marrent au dÃ©calage: %#03x\n"
+
+#: peigen.c:2647 pepigen.c:2647 pex64igen.c:2647
+#, c-format
+msgid ""
+"\n"
+"There is a debug directory, but the section containing it could not be found\n"
+msgstr ""
+"\n"
+"Ceci est un rÃ©pertoire de dÃ©bogage, mais la section le contenant ne peut Ãªtre repÃ©rÃ©e\n"
+
+#: peigen.c:2653 pepigen.c:2653 pex64igen.c:2653
+#, c-format
+msgid ""
+"\n"
+"There is a debug directory in %s, but that section has no contents\n"
+msgstr ""
+"\n"
+"Il y a un rÃ©pertoire de dÃ©bogage dans %s, mais cette section n'a pas de contenu\n"
+
+#: peigen.c:2660 pepigen.c:2660 pex64igen.c:2660
+#, c-format
+msgid ""
+"\n"
+"Error: section %s contains the debug data starting address but it is too small\n"
+msgstr ""
+"\n"
+"Erreur: la section %s contient l'adresse de dÃ©part des donnÃ©es de dÃ©bogage mais elle est trop petite\n"
+
+#: peigen.c:2665 pepigen.c:2665 pex64igen.c:2665
+#, c-format
+msgid ""
+"\n"
+"There is a debug directory in %s at 0x%lx\n"
+"\n"
+msgstr ""
+"\n"
+"Il y a un rÃ©pertoire de dÃ©bogage dans %s Ã  0x%lx\n"
+
+#: peigen.c:2672 pepigen.c:2672 pex64igen.c:2672
+#, c-format
+msgid "The debug data size field in the data directory is too big for the section"
+msgstr "Le champ de taille des donnÃ©es de dÃ©bogage dans le rÃ©pertoire de donnÃ©es est trop grand pour la section"
+
+# RVA = Adresse Virtuelle Relative mais AVR semble inconnu sur internet. Gageons que les utilisateurs trouverons plus
+# facilement la signification de RVA dans ce contexte.
+#: peigen.c:2677 pepigen.c:2677 pex64igen.c:2677
+#, c-format
+msgid "Type                Size     Rva      Offset\n"
+msgstr "Type                Taille   Rva      DÃ©calage\n"
+
+#: peigen.c:2725 pepigen.c:2725 pex64igen.c:2725
+#, c-format
+msgid "(format %c%c%c%c signature %s age %ld)\n"
+msgstr "(format %c%c%c%c signature %s age %ld)\n"
+
+#: peigen.c:2733 pepigen.c:2733 pex64igen.c:2733
+#, c-format
+msgid "The debug directory size is not a multiple of the debug directory entry size\n"
+msgstr "La taille du rÃ©pertoire de dÃ©bogage n'est pas un multiple de la taille d'une entrÃ©e du rÃ©pertoire de dÃ©bogage\n"
 
 #. The MS dumpbin program reportedly ands with 0xff0f before
 #. printing the characteristics field.  Not sure why.  No reason to
 #. emulate it here.
-#: peigen.c:2010 pepigen.c:2010 pex64igen.c:2010
+#: peigen.c:2753 pepigen.c:2753 pex64igen.c:2753
 #, c-format
 msgid ""
 "\n"
@@ -6225,48 +8563,245 @@ msgstr ""
 "\n"
 "CaractÃ©ristiques 0x%x\n"
 
-#: peigen.c:2310 pepigen.c:2310 pex64igen.c:2310
+#: peigen.c:2988 pepigen.c:2988 pex64igen.c:2988
+#, c-format
+msgid "%B: Data Directory size (%lx) exceeds space left in section (%lx)"
+msgstr "%B: La taille du rÃ©pertoire de donnÃ©es (%lx) excÃ¨de l'espace restant dans la section (%lx)"
+
+#: peigen.c:3018 pepigen.c:3018 pex64igen.c:3018
+msgid "Failed to update file offsets in debug directory"
+msgstr "Ã‰chec lors de la mise Ã  jour des dÃ©calages du fichier dans le rÃ©pertoire de dÃ©bogage"
+
+#: peigen.c:3024 pepigen.c:3024 pex64igen.c:3024
+msgid "%B: Failed to read debug data section"
+msgstr "%B: Ã‰chec lors de la lecture de la section des donnÃ©es de dÃ©bogage"
+
+#: peigen.c:3840 pepigen.c:3840 pex64igen.c:3840
+#, c-format
+msgid ".rsrc merge failure: duplicate string resource: %d"
+msgstr "Ã©chec de la fusion de .rsrc: ressource chaÃ®ne dupliquÃ©e: %d"
+
+#: peigen.c:3975 pepigen.c:3975 pex64igen.c:3975
+msgid ".rsrc merge failure: multiple non-default manifests"
+msgstr "Ã©chec de la fusion de .rsrc: plusieurs manifestes pas par dÃ©faut"
+
+#: peigen.c:3993 pepigen.c:3993 pex64igen.c:3993
+msgid ".rsrc merge failure: a directory matches a leaf"
+msgstr "Ã©chec de la fusion de .rsrc: un rÃ©pertoire correspond Ã  une feuille"
+
+#: peigen.c:4035 pepigen.c:4035 pex64igen.c:4035
+msgid ".rsrc merge failure: duplicate leaf"
+msgstr "Ã©chec de la fusion de .rsrc: feuille dupliquÃ©e"
+
+#: peigen.c:4037 pepigen.c:4037 pex64igen.c:4037
+#, c-format
+msgid ".rsrc merge failure: duplicate leaf: %s"
+msgstr "Ã©chec de la fusion .rsrc: feuille dupliquÃ©e: %s"
+
+#: peigen.c:4103 pepigen.c:4103 pex64igen.c:4103
+msgid ".rsrc merge failure: dirs with differing characteristics\n"
+msgstr "Ã©chec de la fusion .rsrc: rÃ©pertoires avec des caractÃ©ristiques diffÃ©rentes\n"
+
+#: peigen.c:4110 pepigen.c:4110 pex64igen.c:4110
+msgid ".rsrc merge failure: differing directory versions\n"
+msgstr "Ã©chec de la fusion de .rsrc: versions de rÃ©pertoires diffÃ©rentes\n"
+
+#. Corrupted .rsrc section - cannot merge.
+#: peigen.c:4227 pepigen.c:4227 pex64igen.c:4227
+msgid "%B: .rsrc merge failure: corrupt .rsrc section"
+msgstr "%B: Ã©chec de la fusion de .rsrc: section .rsrc corrompue"
+
+#: peigen.c:4235 pepigen.c:4235 pex64igen.c:4235
+msgid "%B: .rsrc merge failure: unexpected .rsrc size"
+msgstr "%B: Ã©chec de la fusion de .rsrc: taille de .rsrc inattendue"
+
+#: peigen.c:4374 pepigen.c:4374 pex64igen.c:4374
 msgid "%B: unable to fill in DataDictionary[1] because .idata$2 is missing"
 msgstr "%B: impossible de remplir DataDictionary[1] car .idata$2 est manquant"
 
-#: peigen.c:2330 pepigen.c:2330 pex64igen.c:2330
+#: peigen.c:4394 pepigen.c:4394 pex64igen.c:4394
 msgid "%B: unable to fill in DataDictionary[1] because .idata$4 is missing"
 msgstr "%B: impossible de remplir DataDictionary[1] car .idata$4 est manquant"
 
-#: peigen.c:2351 pepigen.c:2351 pex64igen.c:2351
+#: peigen.c:4415 pepigen.c:4415 pex64igen.c:4415
 msgid "%B: unable to fill in DataDictionary[12] because .idata$5 is missing"
 msgstr "%B: impossible de remplir DataDictionary[12] car .idata$5 est manquant"
 
-#: peigen.c:2371 pepigen.c:2371 pex64igen.c:2371
+#: peigen.c:4435 pepigen.c:4435 pex64igen.c:4435
 msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing"
 msgstr "%B: impossible de remplir DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] car .idata$6 est manquant"
 
-#: peigen.c:2413 pepigen.c:2413 pex64igen.c:2413
+#: peigen.c:4477 pepigen.c:4477 pex64igen.c:4477
 msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing"
 msgstr "%B: impossible de remplir DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] car .idata$6 est manquant"
 
-#: peigen.c:2438 pepigen.c:2438 pex64igen.c:2438
+#: peigen.c:4502 pepigen.c:4502 pex64igen.c:4502
 msgid "%B: unable to fill in DataDictionary[9] because __tls_used is missing"
 msgstr "%B: impossible de remplir DataDictionary[9] car __tls_used est manquant"
 
-#~ msgid "%B: error: taking the address of protected function '%s' cannot be done when making a shared library"
-#~ msgstr "%B: erreur: l'adresse de la fonction protÃ©gÃ©e Â«Â %sÂ Â» ne peut Ãªtre prise lors de la crÃ©ation d'une librairie partagÃ©e"
+#~ msgid "Unrecognized reloc"
+#~ msgstr "Relocalisation non reconnue"
+
+#~ msgid "%s: warning: illegal symbol index %ld in relocs"
+#~ msgstr "%s: attention: symbole index illÃ©gal %ld dans les relocalisations"
+
+#~ msgid "Dwarf Error: Bad abbrev number: %u."
+#~ msgstr "Erreur DWARF: mauvais numÃ©ro abrÃ©gÃ©: %u"
+
+#~ msgid "%B: don't know how to handle allocated, application specific section `%s' [0x%8x]"
+#~ msgstr "%B: je ne sais pas comment traiter la section Â«Â %sÂ Â» [0x%8x] allouÃ©e et spÃ©cifique Ã  l'application"
+
+#~ msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]"
+#~ msgstr "%B: je ne sais pas comment traiter la section Â«Â %sÂ Â» [0x%8x] spÃ©cifique au processeur"
+
+#~ msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]"
+#~ msgstr "%B: je ne sais pas comment traiter la section Â«Â %sÂ Â» [0x%8x] spÃ©cifique au systÃ¨me d'exploitation"
+
+#~ msgid "%B: don't know how to handle section `%s' [0x%8x]"
+#~ msgstr "%B: je ne sais pas comment traiter la section Â«Â %sÂ Â» [0x%8x]"
+
+#~ msgid " [has entry point]"
+#~ msgstr " [a des points d'entrÃ©es]"
+
+#~ msgid "error: required section '%s' not found in the linker script"
+#~ msgstr "erreur: section requise Â«Â %sÂ Â» pas trouvÃ©e dans le script de liaison"
+
+#~ msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
+#~ msgstr "%s: utilise des champs e_flags (0x%lx) diffÃ©rents des modules prÃ©cÃ©dents (0x%lx)"
+
+#~ msgid "%s: unknown relocation type %d"
+#~ msgstr "%s: type de rÃ©adressage %d inconnu"
+
+#~ msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
+#~ msgstr "%s: la cible (%s) du rÃ©adressage %s est dans la mauvaise section (%s)"
+
+#~ msgid "%B: %s\n"
+#~ msgstr "%B: %s\n"
+
+#~ msgid "%B(%A): warning: relax is suppressed for sections of alignment %d-bytes > 4-byte."
+#~ msgstr "%B(%A): attention: la relaxation est supprimÃ©e pour les sections avec l'alignement %d octets > 4 octets."
+
+#~ msgid "Warning: %B uses soft float, %B uses single-precision hard float"
+#~ msgstr "Attention: %B utilise la virgule flottante logicielle, %B utilise la virgule flottante simple prÃ©cision matÃ©rielle"
+
+#~ msgid "Warning: %B uses unknown floating point ABI %d"
+#~ msgstr "Attention: %B utilise l'ABI inconnu %d pour la gestion des virgules flottantes"
+
+#~ msgid "Warning: %B uses unknown vector ABI %d"
+#~ msgstr "Attention: %B utilise l'ABI inconnu %d pour les vecteurs"
+
+#~ msgid "Warning: %B uses unknown small structure return convention %d"
+#~ msgstr "Attention: %B utilise la convention inconnue %d pour le retour des petites structures"
+
+#~ msgid " [G10]"
+#~ msgstr " [G10]"
+
+#~ msgid "%s: Malformed reloc detected for section %s"
+#~ msgstr "%s: relocalisation mal composÃ©e dÃ©tectÃ©e dans la section %s"
+
+#~ msgid "  %s: 0x%v\n"
+#~ msgstr "  %s: 0x%v\n"
+
+#~ msgid "%s: 0x%v 0x%v\n"
+#~ msgstr "%s: 0x%v 0x%v\n"
+
+#~ msgid "   %s%s %s\n"
+#~ msgstr "   %s%s %s\n"
+
+#~ msgid ", 8-byte data alignment"
+#~ msgstr ", alignement de donnÃ©es sur 8 octets"
+
+#~ msgid "%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s"
+#~ msgstr "%B: rÃ©adressage %s vers le %s non dÃ©fini Â«Â %sÂ Â» ne peut pas Ãªtre utilisÃ© en crÃ©ant un objet partagÃ© %s"
+
+#~ msgid "[%u]: %u\n"
+#~ msgstr "[%u]: %u\n"
+
+#~ msgid ": %u.%u\n"
+#~ msgstr ": %u.%u\n"
+
+#~ msgid ""
+#~ "%B(%s): warning: interworking not enabled.\n"
+#~ "  first occurrence: %B: thumb call to arm"
+#~ msgstr ""
+#~ "%B(%s): attention: l'inter-rÃ©seautage n'est pas activÃ©.\n"
+#~ "  premiÃ¨re occurrence: %B: appel de repÃ¨re vers arm"
+
+#~ msgid "DIV usage mismatch between %B and %B"
+#~ msgstr "incohÃ©rence d'utilisation de DIV entre %B et %B"
+
+#~ msgid "%P: dynamic variable `%s' is zero size\n"
+#~ msgstr "%P: la variable dynamique Â«Â %sÂ Â» a une taille nulle\n"
+
+#~ msgid " [dsp]"
+#~ msgstr " [dsp]"
+
+#~ msgid "%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc\n"
+#~ msgstr "%P: %H: TOC multiples et automatiques non supportÃ©es utilisant votre fichier crt; recompilez avec -mminimal-toc ou mettez Ã  jour gcc\n"
+
+#~ msgid "%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern\n"
+#~ msgstr "%P: %H: l'optimisation sÅ“urs des appels vers Â«Â %sÂ Â» n'autorise pas de TOC multiples et automatiques; recompilez avec -mminimal-toc ou -fno-optimize-sibling-calls, ou rendez Â«Â %sÂ Â» externe\n"
+
+#~ msgid "note: '%s' is defined in DSO %B so try adding it to the linker command line"
+#~ msgstr "note: Â«Â %sÂ Â» est dÃ©fini dans le DSO %B donc essayez de l'ajouter Ã  la ligne de commande du lieur"
+
+#~ msgid "Warning: %B uses -msingle-float, %B uses -mips32r2 -mfp64"
+#~ msgstr "Attention: %B utilise -msingle-float, %B utilise -mips32r2 -mfp64"
+
+#~ msgid "Warning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64"
+#~ msgstr "Attention: %B utilise -mdouble-float, %B utilise -mips32r2 -mfp64"
+
+#~ msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" is unsupported 'indirect' reference: setting to undefined"
+#~ msgstr "bfd_mach_o_read_symtab_symbol: symbole Â«Â %sÂ Â» a la rÃ©fÃ©rence non supportÃ©e Â«Â indirectÂ Â»: laissÃ© non dÃ©fini"
+
+#~ msgid "bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu"
+#~ msgstr "bfd_mach_o_read_dysymtab_symbol: impossible de lire %lu octets Ã  %lu"
+
+#~ msgid "Mach-O header:\n"
+#~ msgstr "En-tÃªte Mach-O:\n"
+
+#~ msgid " magic     : %08lx\n"
+#~ msgstr " magique    : %08lx\n"
+
+#~ msgid " cputype   : %08lx (%s)\n"
+#~ msgstr " typecpu    : %08lx (%s)\n"
+
+#~ msgid " filetype  : %08lx (%s)\n"
+#~ msgstr " typefichier: %08lx (%s)\n"
+
+#~ msgid " ncmds     : %08lx (%lu)\n"
+#~ msgstr " ncmds     : %08lx (%lu)\n"
+
+#~ msgid " sizeofcmds: %08lx\n"
+#~ msgstr " taillecmds: %08lx\n"
+
+#~ msgid " flags     : %08lx ("
+#~ msgstr " fanions   : %08lx ("
+
+#~ msgid " reserved  : %08x\n"
+#~ msgstr " rÃ©servÃ©   : %08x\n"
+
+#~ msgid "Segments and Sections:\n"
+#~ msgstr "Segments et Sections:\n"
+
+#~ msgid " #: Segment name     Section name     Address\n"
+#~ msgstr " #: Nom segment      Nom section      Adresse\n"
+
+#~ msgid "Symbol %s replaced by %s\n"
+#~ msgstr "Symbole %s remplacÃ© par %s\n"
 
 #~ msgid "%B(%A+0x%lx): cannot reach %s"
 #~ msgstr "%B(%A+0x%lx): ne peut atteindre %s"
 
 #~ msgid "%B: warning: ignoring duplicate section `%A'\n"
-#~ msgstr "%B: attention: ignore la section dupliquÃ©e Â«%AÂ»\n"
+#~ msgstr "%B: attention: ignore la section dupliquÃ©e Â«Â %AÂ Â»\n"
 
 #~ msgid "%B: warning: duplicate section `%A' has different size\n"
-#~ msgstr "%B: attention: section dupliquÃ©e Â«%AÂ» avec des tailles diffÃ©rentes\n"
+#~ msgstr "%B: attention: section dupliquÃ©e Â«Â %AÂ Â» avec des tailles diffÃ©rentes\n"
 
 #~ msgid "relocation references a different segment"
 #~ msgstr "la relocalisation fait rÃ©fÃ©rence Ã  un segment diffÃ©rent"
 
-#~ msgid "%B: relocation type %d not implemented"
-#~ msgstr "%B: relocalisation de type %d pas implÃ©mentÃ©e"
-
 #~ msgid "warning: %B and %B differ in position-dependence of data addressing"
 #~ msgstr "attention: %B et %B divergent sur la dÃ©pendance de la position de l'adressage des donnÃ©es"
 
@@ -6292,7 +8827,7 @@ msgstr "%B: impossible de remplir DataDi
 #~ msgstr "section %s vide ou corrompue dans %B"
 
 #~ msgid "%s: invalid DSO for symbol `%s' definition"
-#~ msgstr "%s: DSO incorrect pour la dÃ©finition du symbole Â«%sÂ»"
+#~ msgstr "%s: DSO incorrect pour la dÃ©finition du symbole Â«Â %sÂ Â»"
 
 #~ msgid "%B: %A+0x%lx: jump to stub routine which is not jal"
 #~ msgstr "%B: %A+0x%lx: saut vers la routine dans la partie de l'Ã©bauche (stub) qui n'est pas jal"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/hr.gmo ./bfd/po/hr.gmo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/hr.gmo	1970-01-01 00:00:00.000000000 +0000
+++ ./bfd/po/hr.gmo	2018-01-09 02:08:39.000000000 +0000
@@ -0,0 +1,102 @@
+Þ•PœkÈÉÙëû!	0
:
H
+V
+a
+l
w…”£ª$ºßþ19O^q…—±´	ÁËßô						2	?	Q	a	r	�	Š	£	¬	Æ		Ü	æ	î	ÿ	
+#
+4
+L
+a
+v
+…
+ Š
+
«
+¹
+Í
+à
+ó
+#48H\pƒ–©°
¸Æ,ßERcx‡“Ÿ¥­	½
Ç
Õ
+ã
+î
+ù+8?*P!{�7¦Þ÷6Igj|ˆ›¯ÃÏå-@Tfs‘�¼	×áèý)>Ynƒ’%—½Íáô'>QUl€”§ºÑ	Øâ!ô*&F:2K0CB1
+I4N/OJ+$-;!@E	<)'%>HP#L5D,A =3GM
"769(8*.?
+      Type: %s
+ppcboot header:
+    name: %.*s
+   %s%s %s
+  %s: 0x%v
+ %08x 0x%08x [abi unknown] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=O32] [abi=O64] [no abi set] [unknown ISA] [v10 and v32] [v32] corrupted GST
+%A:0x%v not found in function table
+%B is not allowed to define %s%B(%A+0x%B: Unknown section type in a.out.adobe file: %x
+%B: unimplemented %s
+%s: 0x%v 0x%v
+%s: no such symbol%s: not implemented%s: not supported%s: undefined version: %s)
+*unhandled*
+*unknown*: m32r instructions: m32r2 instructions: m32rx instructions<unknown>Bad valueError reading %s: %sFile too bigMEMORY_MANAGEMENTMach-O header:
+Memory exhaustedModule header
+No errorPlease report this bug.
+ReservedSymbol %s replaced by %s
+Unknown basic type %d[%u]: %u
+addresscannot read DST
+cannot read EIHI
+cannot read EISD
+cannot read GST
+cannot read GST record
+dangerous relocationdelta_pc_l: +0x%08x
+delta_pc_w %u
+descerror: undefined symbol __rtinithidden symbolincr_linum(b): +%u
+incr_linum_l: +%u
+incr_linum_w: +%u
+internal symbolinvalid use of %s with contextsprotected symbolregreserved cmd %dset_abs_pc: 0x%08x
+set_line_num(w) %u
+set_line_num_b %u
+set_line_num_l %u
+standard data: %s
+symbolunknownunknown errorwarning: %s overlaps %s
+you are not allowed to define %s in a scriptProject-Id-Version: bfd 2.22.90
+Report-Msgid-Bugs-To: bug-binutils@gnu.org
+POT-Creation-Date: 2011-10-25 11:58+0100
+PO-Revision-Date: 2013-01-12 00:50+0100
+Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>
+Language-Team: Croatian <lokalizacija@linux.hr>
+Language: hr
+X-Bugs: Report translation errors to the Language-Team address.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);
+X-Generator: Gtranslator 2.91.6
+
+      Vrsta: %s
+ppcboot zaglavlje:
+    ime: %.*s
+   %s%s %s
+  %s: 0x%v
+ %08x 0x%08x [abi nepoznat] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=O32] [abi=O64] [abi nije postavljen] [nepoznat ISA] [v10 i v32] [v32] oÅ¡teÄ‡eni GST
+%A:0x%v nije pronaÄ‘en u tablici funkcija
+%B nema dozvolu za definiranje %s%B(%A+0x%B: Nepoznata vrsta odlomka u a.out.adobe datoteci: %x
+%B: neimplementirani %s
+%s: 0x%v 0x%v
+%s: nema takvog simbola%s: nije implementirano%s: nije podrÅ¾ano%s: nedefinirana inaÄ�ica: %s)
+*nekontrolirano*
+*nepoznato*: m32r instrukcije: m32r2 instrukcije: m32rx instrukcije<nepoznato>Neispravna vrijednostGreÅ¡ka pri Ä�itanju %s: %sDatoteka je prevelikaUPRAVLJANJE_MEMORIJOMMach-O zaglavlje:
+Memorija iscrpljenaZaglavlje modula
+Nema greÅ¡keMolim prijavite ovu greÅ¡ku.
+RezerviranoSimbol %s je zamijenjen sa %s
+Nepoznata osnovna vrsta %d[%u]: %u
+adresane mogu Ä�itati DST
+ne mogu Ä�itati EIHI
+ne mogu Ä�itati EISD
+ne mogu Ä�itati GST
+ne mogu Ä�itati GST zapis
+opasno premjeÅ¡tanjedelta_pc_l: +0x%08x
+delta_pc_w %u
+opisgreÅ¡ka: nedefinirani simbol __rtinitskriveni simbolincr_linum(b): +%u
+incr_linum_l: +%u
+incr_linum_w: +%u
+interni simbolneispravno koriÅ¡tenje %s s kontekstimazaÅ¡tiÄ‡eni simbolregrezervirana naredba %dset_abs_pc: 0x%08x
+set_line_num(w) %u
+set_line_num_b %u
+set_line_num_l %u
+standardni podaci: %s
+simbolnepoznatonepoznata greÅ¡kaupozorenje: %s se preklapa sa %s
+nemate dozvolu za definiranje %s u skripti
\ No newline at end of file
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/hr.po ./bfd/po/hr.po
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/hr.po	1970-01-01 00:00:00.000000000 +0000
+++ ./bfd/po/hr.po	2018-01-09 02:04:54.000000000 +0000
@@ -0,0 +1,6138 @@
+# Translation of bfd to Croatian.
+# Copyright Â© 2013 Free Software Foundation, Inc.
+# This file is distributed under the same license as the binutils package.
+# Tomislav Krznar <tomislav.krznar@gmail.com>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: bfd 2.22.90\n"
+"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
+"POT-Creation-Date: 2011-10-25 11:58+0100\n"
+"PO-Revision-Date: 2013-01-12 00:50+0100\n"
+"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
+"Language-Team: Croatian <lokalizacija@linux.hr>\n"
+"Language: hr\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Gtranslator 2.91.6\n"
+
+#: aout-adobe.c:127
+msgid "%B: Unknown section type in a.out.adobe file: %x\n"
+msgstr "%B: Nepoznata vrsta odlomka u a.out.adobe datoteci: %x\n"
+
+#: aout-cris.c:199
+#, c-format
+msgid "%s: Invalid relocation type exported: %d"
+msgstr ""
+
+#: aout-cris.c:242
+msgid "%B: Invalid relocation type imported: %d"
+msgstr ""
+
+#: aout-cris.c:253
+msgid "%B: Bad relocation record imported: %d"
+msgstr ""
+
+#: aoutx.h:1273 aoutx.h:1611
+#, c-format
+msgid "%s: can not represent section `%s' in a.out object file format"
+msgstr ""
+
+#: aoutx.h:1577
+#, c-format
+msgid "%s: can not represent section for symbol `%s' in a.out object file format"
+msgstr ""
+
+#: aoutx.h:1579 vms-alpha.c:7671
+msgid "*unknown*"
+msgstr "*nepoznato*"
+
+#: aoutx.h:4018 aoutx.h:4344
+msgid "%P: %B: unexpected relocation type\n"
+msgstr ""
+
+#: aoutx.h:5375
+#, c-format
+msgid "%s: relocatable link from %s to %s not supported"
+msgstr ""
+
+#: archive.c:2203
+msgid "Warning: writing archive was slow: rewriting timestamp\n"
+msgstr ""
+
+#: archive.c:2491
+msgid "Reading archive file mod timestamp"
+msgstr ""
+
+#: archive.c:2515
+msgid "Writing updated armap timestamp"
+msgstr ""
+
+#: bfd.c:398
+msgid "No error"
+msgstr "Nema greÅ¡ke"
+
+#: bfd.c:399
+msgid "System call error"
+msgstr ""
+
+#: bfd.c:400
+msgid "Invalid bfd target"
+msgstr ""
+
+#: bfd.c:401
+msgid "File in wrong format"
+msgstr ""
+
+#: bfd.c:402
+msgid "Archive object file in wrong format"
+msgstr ""
+
+#: bfd.c:403
+msgid "Invalid operation"
+msgstr ""
+
+#: bfd.c:404
+msgid "Memory exhausted"
+msgstr "Memorija iscrpljena"
+
+#: bfd.c:405
+msgid "No symbols"
+msgstr ""
+
+#: bfd.c:406
+msgid "Archive has no index; run ranlib to add one"
+msgstr ""
+
+#: bfd.c:407
+msgid "No more archived files"
+msgstr ""
+
+#: bfd.c:408
+msgid "Malformed archive"
+msgstr ""
+
+#: bfd.c:409
+msgid "File format not recognized"
+msgstr ""
+
+#: bfd.c:410
+msgid "File format is ambiguous"
+msgstr ""
+
+#: bfd.c:411
+msgid "Section has no contents"
+msgstr ""
+
+#: bfd.c:412
+msgid "Nonrepresentable section on output"
+msgstr ""
+
+#: bfd.c:413
+msgid "Symbol needs debug section which does not exist"
+msgstr ""
+
+#: bfd.c:414
+msgid "Bad value"
+msgstr "Neispravna vrijednost"
+
+#: bfd.c:415
+msgid "File truncated"
+msgstr ""
+
+#: bfd.c:416
+msgid "File too big"
+msgstr "Datoteka je prevelika"
+
+#: bfd.c:417
+#, c-format
+msgid "Error reading %s: %s"
+msgstr "GreÅ¡ka pri Ä�itanju %s: %s"
+
+#: bfd.c:418
+msgid "#<Invalid error code>"
+msgstr ""
+
+#: bfd.c:945
+#, c-format
+msgid "BFD %s assertion fail %s:%d"
+msgstr ""
+
+#: bfd.c:957
+#, c-format
+msgid "BFD %s internal error, aborting at %s line %d in %s\n"
+msgstr ""
+
+#: bfd.c:961
+#, c-format
+msgid "BFD %s internal error, aborting at %s line %d\n"
+msgstr ""
+
+#: bfd.c:963
+msgid "Please report this bug.\n"
+msgstr "Molim prijavite ovu greÅ¡ku.\n"
+
+#: bfdwin.c:206
+#, c-format
+msgid "not mapping: data=%lx mapped=%d\n"
+msgstr ""
+
+#: bfdwin.c:209
+#, c-format
+msgid "not mapping: env var not set\n"
+msgstr ""
+
+#: binary.c:271
+#, c-format
+msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx."
+msgstr ""
+
+#: bout.c:1146 elf-m10300.c:2063 elf32-avr.c:1654 elf32-frv.c:5734
+#: elfxx-sparc.c:2802 reloc.c:6115 reloc16.c:162 elf32-ia64.c:360
+#: elf64-ia64.c:360
+msgid "%P%F: --relax and -r may not be used together\n"
+msgstr ""
+
+#: cache.c:227
+msgid "reopening %B: %s\n"
+msgstr ""
+
+#: coff-alpha.c:491
+msgid ""
+"%B: Cannot handle compressed Alpha binaries.\n"
+"   Use compiler flags, or objZ, to generate uncompressed binaries."
+msgstr ""
+
+#: coff-alpha.c:648
+msgid "%B: unknown/unsupported relocation type %d"
+msgstr ""
+
+#: coff-alpha.c:900 coff-alpha.c:937 coff-alpha.c:2025 coff-mips.c:1003
+msgid "GP relative relocation used when GP not defined"
+msgstr ""
+
+#: coff-alpha.c:1502
+msgid "using multiple gp values"
+msgstr ""
+
+#: coff-alpha.c:1561
+msgid "%B: unsupported relocation: ALPHA_R_GPRELHIGH"
+msgstr ""
+
+#: coff-alpha.c:1568
+msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW"
+msgstr ""
+
+#: coff-alpha.c:1575 elf32-m32r.c:2484 elf64-alpha.c:4074 elf64-alpha.c:4224
+#: elf32-ia64.c:3839 elf64-ia64.c:3839
+msgid "%B: unknown relocation type %d"
+msgstr ""
+
+#: coff-arm.c:1038
+#, c-format
+msgid "%B: unable to find THUMB glue '%s' for `%s'"
+msgstr ""
+
+#: coff-arm.c:1067
+#, c-format
+msgid "%B: unable to find ARM glue '%s' for `%s'"
+msgstr ""
+
+#: coff-arm.c:1369 elf32-arm.c:7023
+#, c-format
+msgid ""
+"%B(%s): warning: interworking not enabled.\n"
+"  first occurrence: %B: arm call to thumb"
+msgstr ""
+
+#: coff-arm.c:1459
+#, c-format
+msgid ""
+"%B(%s): warning: interworking not enabled.\n"
+"  first occurrence: %B: thumb call to arm\n"
+"  consider relinking with --support-old-code enabled"
+msgstr ""
+
+#: coff-arm.c:1754 coff-tic80.c:695 cofflink.c:3081
+msgid "%B: bad reloc address 0x%lx in section `%A'"
+msgstr ""
+
+#: coff-arm.c:2079
+msgid "%B: illegal symbol index in reloc: %d"
+msgstr ""
+
+#: coff-arm.c:2210
+#, c-format
+msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d"
+msgstr ""
+
+#: coff-arm.c:2226 elf32-arm.c:15621
+#, c-format
+msgid "error: %B passes floats in float registers, whereas %B passes them in integer registers"
+msgstr ""
+
+#: coff-arm.c:2229 elf32-arm.c:15625
+#, c-format
+msgid "error: %B passes floats in integer registers, whereas %B passes them in float registers"
+msgstr ""
+
+#: coff-arm.c:2243
+#, c-format
+msgid "error: %B is compiled as position independent code, whereas target %B is absolute position"
+msgstr ""
+
+#: coff-arm.c:2246
+#, c-format
+msgid "error: %B is compiled as absolute position code, whereas target %B is position independent"
+msgstr ""
+
+#: coff-arm.c:2274 elf32-arm.c:15690
+#, c-format
+msgid "Warning: %B supports interworking, whereas %B does not"
+msgstr ""
+
+#: coff-arm.c:2277 elf32-arm.c:15696
+#, c-format
+msgid "Warning: %B does not support interworking, whereas %B does"
+msgstr ""
+
+#: coff-arm.c:2301
+#, c-format
+msgid "private flags = %x:"
+msgstr ""
+
+#: coff-arm.c:2309 elf32-arm.c:11806
+#, c-format
+msgid " [floats passed in float registers]"
+msgstr ""
+
+#: coff-arm.c:2311
+#, c-format
+msgid " [floats passed in integer registers]"
+msgstr ""
+
+#: coff-arm.c:2314 elf32-arm.c:11809
+#, c-format
+msgid " [position independent]"
+msgstr ""
+
+#: coff-arm.c:2316
+#, c-format
+msgid " [absolute position]"
+msgstr ""
+
+#: coff-arm.c:2320
+#, c-format
+msgid " [interworking flag not initialised]"
+msgstr ""
+
+#: coff-arm.c:2322
+#, c-format
+msgid " [interworking supported]"
+msgstr ""
+
+#: coff-arm.c:2324
+#, c-format
+msgid " [interworking not supported]"
+msgstr ""
+
+#: coff-arm.c:2370 elf32-arm.c:10841
+#, c-format
+msgid "Warning: Not setting interworking flag of %B since it has already been specified as non-interworking"
+msgstr ""
+
+#: coff-arm.c:2374 elf32-arm.c:10845
+#, c-format
+msgid "Warning: Clearing the interworking flag of %B due to outside request"
+msgstr ""
+
+#: coff-h8300.c:1122
+#, c-format
+msgid "cannot handle R_MEM_INDIRECT reloc when using %s output"
+msgstr ""
+
+#: coff-i860.c:147
+#, c-format
+msgid "relocation `%s' not yet implemented"
+msgstr ""
+
+#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5198
+msgid "%B: warning: illegal symbol index %ld in relocs"
+msgstr ""
+
+#: coff-i960.c:144 coff-i960.c:507
+msgid "uncertain calling convention for non-COFF symbol"
+msgstr ""
+
+#: coff-m68k.c:506 elf32-bfin.c:5690 elf32-cr16.c:2897 elf32-m68k.c:4677
+msgid "unsupported reloc type"
+msgstr ""
+
+#: coff-mips.c:688 elf32-mips.c:1516 elf32-score.c:431 elf32-score7.c:330
+#: elf64-mips.c:2618 elfn32-mips.c:2431
+msgid "GP relative relocation when _gp not defined"
+msgstr ""
+
+#: coff-or32.c:229
+msgid "Unrecognized reloc"
+msgstr ""
+
+#: coff-rs6000.c:2720
+#, c-format
+msgid "%s: unsupported relocation type 0x%02x"
+msgstr ""
+
+#: coff-rs6000.c:2805
+#, c-format
+msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
+msgstr ""
+
+#: coff-rs6000.c:3556 coff64-rs6000.c:2111
+msgid "%B: symbol `%s' has unrecognized smclas %d"
+msgstr ""
+
+#: coff-sh.c:521
+#, c-format
+msgid "SH Error: unknown reloc type %d"
+msgstr ""
+
+#: coff-tic4x.c:195 coff-tic54x.c:299 coff-tic80.c:458
+#, c-format
+msgid "Unrecognized reloc type 0x%x"
+msgstr ""
+
+#: coff-tic4x.c:240
+#, c-format
+msgid "%s: warning: illegal symbol index %ld in relocs"
+msgstr ""
+
+#: coff-w65.c:367
+#, c-format
+msgid "ignoring reloc %s\n"
+msgstr ""
+
+#: coffcode.h:997
+msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'"
+msgstr ""
+
+#. Generate a warning message rather using the 'unhandled'
+#. variable as this will allow some .sys files generate by
+#. other toolchains to be processed.  See bugzilla issue 196.
+#: coffcode.h:1221
+msgid "%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s"
+msgstr ""
+
+#: coffcode.h:1288
+msgid "%B (%s): Section flag %s (0x%x) ignored"
+msgstr ""
+
+#: coffcode.h:2430
+#, c-format
+msgid "Unrecognized TI COFF target id '0x%x'"
+msgstr ""
+
+#: coffcode.h:2744
+msgid "%B: reloc against a non-existant symbol index: %ld"
+msgstr ""
+
+#: coffcode.h:3302
+msgid "%B: too many sections (%d)"
+msgstr ""
+
+#: coffcode.h:3718
+msgid "%B: section %s: string table overflow at offset %ld"
+msgstr ""
+
+#: coffcode.h:4523
+msgid "%B: warning: line number table read failed"
+msgstr ""
+
+#: coffcode.h:4553
+msgid "%B: warning: illegal symbol index %ld in line numbers"
+msgstr ""
+
+#: coffcode.h:4567
+msgid "%B: warning: duplicate line number information for `%s'"
+msgstr ""
+
+#: coffcode.h:4967
+msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
+msgstr ""
+
+#: coffcode.h:5093
+msgid "warning: %B: local symbol `%s' has no section"
+msgstr ""
+
+#: coffcode.h:5237
+msgid "%B: illegal relocation type %d at address 0x%lx"
+msgstr ""
+
+#: coffgen.c:1595
+msgid "%B: bad string table size %lu"
+msgstr ""
+
+#: coffgen.c:2500 elflink.c:12689 linker.c:3122
+msgid "%F%P: already_linked_table: %E\n"
+msgstr ""
+
+#: cofflink.c:533 elflink.c:4323
+msgid "Warning: type of symbol `%s' changed from %d to %d in %B"
+msgstr ""
+
+#: cofflink.c:2329
+msgid "%B: relocs in section `%A', but it has no contents"
+msgstr ""
+
+#: cofflink.c:2391 elflink.c:9545
+msgid "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B\n"
+msgstr ""
+
+#: cofflink.c:2690 coffswap.h:826
+#, c-format
+msgid "%s: %s: reloc overflow: 0x%lx > 0xffff"
+msgstr ""
+
+#: cofflink.c:2699 coffswap.h:812
+#, c-format
+msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff"
+msgstr ""
+
+#: cpu-arm.c:189 cpu-arm.c:200
+msgid "error: %B is compiled for the EP9312, whereas %B is compiled for XScale"
+msgstr ""
+
+#: cpu-arm.c:333
+#, c-format
+msgid "warning: unable to update contents of %s section in %s"
+msgstr ""
+
+#: dwarf2.c:496
+#, c-format
+msgid "Dwarf Error: Can't find %s section."
+msgstr ""
+
+#: dwarf2.c:525
+#, c-format
+msgid "Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu)."
+msgstr ""
+
+#: dwarf2.c:949
+#, c-format
+msgid "Dwarf Error: Invalid or unhandled FORM value: %u."
+msgstr ""
+
+#: dwarf2.c:1200
+msgid "Dwarf Error: mangled line number section (bad file number)."
+msgstr ""
+
+#: dwarf2.c:1453
+#, c-format
+msgid "Dwarf Error: Unhandled .debug_line version %d."
+msgstr ""
+
+#: dwarf2.c:1475
+msgid "Dwarf Error: Invalid maximum operations per instruction."
+msgstr ""
+
+#: dwarf2.c:1662
+msgid "Dwarf Error: mangled line number section."
+msgstr ""
+
+#: dwarf2.c:1989 dwarf2.c:2109 dwarf2.c:2394
+#, c-format
+msgid "Dwarf Error: Could not find abbrev number %u."
+msgstr ""
+
+#: dwarf2.c:2355
+#, c-format
+msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information."
+msgstr ""
+
+#: dwarf2.c:2362
+#, c-format
+msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'."
+msgstr ""
+
+#: dwarf2.c:2385
+#, c-format
+msgid "Dwarf Error: Bad abbrev number: %u."
+msgstr ""
+
+#: ecoff.c:1239
+#, c-format
+msgid "Unknown basic type %d"
+msgstr "Nepoznata osnovna vrsta %d"
+
+#: ecoff.c:1496
+#, c-format
+msgid ""
+"\n"
+"      End+1 symbol: %ld"
+msgstr ""
+
+#: ecoff.c:1503 ecoff.c:1506
+#, c-format
+msgid ""
+"\n"
+"      First symbol: %ld"
+msgstr ""
+
+#: ecoff.c:1518
+#, c-format
+msgid ""
+"\n"
+"      End+1 symbol: %-7ld   Type:  %s"
+msgstr ""
+
+#: ecoff.c:1525
+#, c-format
+msgid ""
+"\n"
+"      Local symbol: %ld"
+msgstr ""
+
+#: ecoff.c:1533
+#, c-format
+msgid ""
+"\n"
+"      struct; End+1 symbol: %ld"
+msgstr ""
+
+#: ecoff.c:1538
+#, c-format
+msgid ""
+"\n"
+"      union; End+1 symbol: %ld"
+msgstr ""
+
+#: ecoff.c:1543
+#, c-format
+msgid ""
+"\n"
+"      enum; End+1 symbol: %ld"
+msgstr ""
+
+#: ecoff.c:1549
+#, c-format
+msgid ""
+"\n"
+"      Type: %s"
+msgstr ""
+"\n"
+"      Vrsta: %s"
+
+#: elf-attrs.c:569
+msgid "error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchain"
+msgstr ""
+
+#: elf-attrs.c:578
+msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'"
+msgstr ""
+
+#: elf-eh-frame.c:917
+msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n"
+msgstr ""
+
+#: elf-eh-frame.c:1189
+msgid "%P: fde encoding in %B(%A) prevents .eh_frame_hdr table being created.\n"
+msgstr ""
+
+#: elf-eh-frame.c:1605
+msgid "%P: DW_EH_PE_datarel unspecified for this architecture.\n"
+msgstr ""
+
+#: elf-ifunc.c:179
+msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can not be used when making an executable; recompile with -fPIE and relink with -pie\n"
+msgstr ""
+
+#: elf-m10200.c:450 elf-m10300.c:1563 elf32-avr.c:1221 elf32-bfin.c:3213
+#: elf32-cr16.c:1482 elf32-cr16c.c:780 elf32-cris.c:2081 elf32-crx.c:922
+#: elf32-d10v.c:509 elf32-epiphany.c:556 elf32-fr30.c:609 elf32-frv.c:4105
+#: elf32-h8300.c:509 elf32-i860.c:1211 elf32-ip2k.c:1468 elf32-iq2000.c:684
+#: elf32-lm32.c:1168 elf32-m32c.c:553 elf32-m32r.c:3106 elf32-m68hc1x.c:1138
+#: elf32-mep.c:535 elf32-microblaze.c:1231 elf32-moxie.c:282
+#: elf32-msp430.c:486 elf32-mt.c:395 elf32-openrisc.c:404 elf32-score.c:2729
+#: elf32-score7.c:2537 elf32-spu.c:5044 elf32-tilepro.c:3214 elf32-v850.c:2143
+#: elf32-xstormy16.c:935 elf64-mmix.c:1590 elfxx-tilegx.c:3577
+msgid "internal error: out of range error"
+msgstr ""
+
+#: elf-m10200.c:454 elf-m10300.c:1567 elf32-avr.c:1225 elf32-bfin.c:3217
+#: elf32-cr16.c:1486 elf32-cr16c.c:784 elf32-cris.c:2085 elf32-crx.c:926
+#: elf32-d10v.c:513 elf32-fr30.c:613 elf32-frv.c:4109 elf32-h8300.c:513
+#: elf32-i860.c:1215 elf32-iq2000.c:688 elf32-lm32.c:1172 elf32-m32c.c:557
+#: elf32-m32r.c:3110 elf32-m68hc1x.c:1142 elf32-mep.c:539
+#: elf32-microblaze.c:1235 elf32-moxie.c:286 elf32-msp430.c:490
+#: elf32-openrisc.c:408 elf32-score.c:2733 elf32-score7.c:2541
+#: elf32-spu.c:5048 elf32-tilepro.c:3218 elf32-v850.c:2147
+#: elf32-xstormy16.c:939 elf64-mmix.c:1594 elfxx-mips.c:9465
+#: elfxx-tilegx.c:3581
+msgid "internal error: unsupported relocation error"
+msgstr ""
+
+#: elf-m10200.c:458 elf32-cr16.c:1490 elf32-cr16c.c:788 elf32-crx.c:930
+#: elf32-d10v.c:517 elf32-h8300.c:517 elf32-lm32.c:1176 elf32-m32r.c:3114
+#: elf32-m68hc1x.c:1146 elf32-microblaze.c:1239 elf32-score.c:2737
+#: elf32-score7.c:2545 elf32-spu.c:5052
+msgid "internal error: dangerous error"
+msgstr ""
+
+#: elf-m10200.c:462 elf-m10300.c:1580 elf32-avr.c:1233 elf32-bfin.c:3225
+#: elf32-cr16.c:1494 elf32-cr16c.c:792 elf32-cris.c:2093 elf32-crx.c:934
+#: elf32-d10v.c:521 elf32-epiphany.c:571 elf32-fr30.c:621 elf32-frv.c:4117
+#: elf32-h8300.c:521 elf32-i860.c:1223 elf32-ip2k.c:1483 elf32-iq2000.c:696
+#: elf32-lm32.c:1180 elf32-m32c.c:565 elf32-m32r.c:3118 elf32-m68hc1x.c:1150
+#: elf32-mep.c:547 elf32-microblaze.c:1243 elf32-moxie.c:294
+#: elf32-msp430.c:498 elf32-mt.c:403 elf32-openrisc.c:416 elf32-score.c:2746
+#: elf32-score7.c:2549 elf32-spu.c:5056 elf32-tilepro.c:3226 elf32-v850.c:2167
+#: elf32-xstormy16.c:947 elf64-mmix.c:1602 elfxx-tilegx.c:3589
+msgid "internal error: unknown error"
+msgstr ""
+
+#: elf-m10300.c:1507 elf32-arm.c:10419 elf32-i386.c:4264 elf32-m32r.c:2599
+#: elf32-m68k.c:4156 elf32-s390.c:3003 elf32-sh.c:4218 elf32-tilepro.c:3117
+#: elf32-xtensa.c:3066 elf64-s390.c:2978 elf64-sh64.c:1640 elf64-x86-64.c:4110
+#: elfxx-sparc.c:3835 elfxx-tilegx.c:3500
+msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"
+msgstr ""
+
+#: elf-m10300.c:1572
+msgid "error: inappropriate relocation type for shared library (did you forget -fpic?)"
+msgstr ""
+
+#: elf-m10300.c:1575
+msgid "internal error: suspicious relocation type used in shared library"
+msgstr ""
+
+#: elf-m10300.c:4372 elf32-arm.c:12800 elf32-cr16.c:2451 elf32-cris.c:3057
+#: elf32-hppa.c:1894 elf32-i370.c:503 elf32-i386.c:2182 elf32-lm32.c:1868
+#: elf32-m32r.c:1927 elf32-m68k.c:3253 elf32-s390.c:1652 elf32-sh.c:2931
+#: elf32-tic6x.c:2162 elf32-tilepro.c:1940 elf32-vax.c:1041 elf64-s390.c:1635
+#: elf64-sh64.c:3381 elf64-x86-64.c:2176 elfxx-sparc.c:2119
+#: elfxx-tilegx.c:2261
+#, c-format
+msgid "dynamic variable `%s' is zero size"
+msgstr ""
+
+#: elf.c:334
+msgid "%B: invalid string offset %u >= %lu for section `%s'"
+msgstr ""
+
+#: elf.c:446
+msgid "%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
+msgstr ""
+
+#: elf.c:602
+msgid "%B: Corrupt size field in group section header: 0x%lx"
+msgstr ""
+
+#: elf.c:638
+msgid "%B: invalid SHT_GROUP entry"
+msgstr ""
+
+#: elf.c:708
+msgid "%B: no group info for section %A"
+msgstr ""
+
+#: elf.c:737 elf.c:3121 elflink.c:10135
+msgid "%B: warning: sh_link not set for section `%A'"
+msgstr ""
+
+#: elf.c:756
+msgid "%B: sh_link [%d] in section `%A' is incorrect"
+msgstr ""
+
+#: elf.c:791
+msgid "%B: unknown [%d] section `%s' in group [%s]"
+msgstr ""
+
+#: elf.c:1041
+msgid "%B: unable to initialize commpress status for section %s"
+msgstr ""
+
+#: elf.c:1061
+msgid "%B: unable to initialize decommpress status for section %s"
+msgstr ""
+
+#: elf.c:1181
+#, c-format
+msgid ""
+"\n"
+"Program Header:\n"
+msgstr ""
+
+#: elf.c:1223
+#, c-format
+msgid ""
+"\n"
+"Dynamic Section:\n"
+msgstr ""
+
+#: elf.c:1359
+#, c-format
+msgid ""
+"\n"
+"Version definitions:\n"
+msgstr ""
+
+#: elf.c:1384
+#, c-format
+msgid ""
+"\n"
+"Version References:\n"
+msgstr ""
+
+#: elf.c:1389
+#, c-format
+msgid "  required from %s:\n"
+msgstr ""
+
+#: elf.c:1796
+msgid "%B: invalid link %lu for reloc section %s (index %u)"
+msgstr ""
+
+#: elf.c:1966
+msgid "%B: don't know how to handle allocated, application specific section `%s' [0x%8x]"
+msgstr ""
+
+#: elf.c:1978
+msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]"
+msgstr ""
+
+#: elf.c:1989
+msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]"
+msgstr ""
+
+#: elf.c:1999
+msgid "%B: don't know how to handle section `%s' [0x%8x]"
+msgstr ""
+
+#: elf.c:2634
+#, c-format
+msgid "warning: section `%A' type changed to PROGBITS"
+msgstr ""
+
+#: elf.c:3078
+msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'"
+msgstr ""
+
+#: elf.c:3101
+msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'"
+msgstr ""
+
+#: elf.c:4527
+msgid "%B: The first section in the PT_DYNAMIC segment is not the .dynamic section"
+msgstr ""
+
+#: elf.c:4554
+msgid "%B: Not enough room for program headers, try linking with -N"
+msgstr ""
+
+#: elf.c:4641
+msgid "%B: section %A lma %#lx adjusted to %#lx"
+msgstr ""
+
+#: elf.c:4776
+msgid "%B: section `%A' can't be allocated in segment %d"
+msgstr ""
+
+#: elf.c:4824
+msgid "%B: warning: allocated section `%s' not in segment"
+msgstr ""
+
+#: elf.c:5324
+msgid "%B: symbol `%s' required but not present"
+msgstr ""
+
+#: elf.c:5662
+msgid "%B: warning: Empty loadable segment detected, is this intentional ?\n"
+msgstr ""
+
+#: elf.c:6692
+#, c-format
+msgid "Unable to find equivalent output section for symbol '%s' from section '%s'"
+msgstr ""
+
+#: elf.c:7692
+msgid "%B: unsupported relocation type %s"
+msgstr ""
+
+#: elf32-arm.c:3617
+msgid ""
+"%B(%s): warning: interworking not enabled.\n"
+"  first occurrence: %B: Thumb call to ARM"
+msgstr ""
+
+#: elf32-arm.c:3664
+msgid ""
+"%B(%s): warning: interworking not enabled.\n"
+"  first occurrence: %B: ARM call to Thumb"
+msgstr ""
+
+#: elf32-arm.c:3878 elf32-arm.c:5315
+#, c-format
+msgid "%s: cannot create stub entry %s"
+msgstr ""
+
+#: elf32-arm.c:5431
+#, c-format
+msgid "unable to find THUMB glue '%s' for '%s'"
+msgstr ""
+
+#: elf32-arm.c:5467
+#, c-format
+msgid "unable to find ARM glue '%s' for '%s'"
+msgstr ""
+
+#: elf32-arm.c:6005
+msgid "%B: BE8 images only valid in big-endian mode."
+msgstr ""
+
+#. Give a warning, but do as the user requests anyway.
+#: elf32-arm.c:6235
+msgid "%B: warning: selected VFP11 erratum workaround is not necessary for target architecture"
+msgstr ""
+
+#: elf32-arm.c:6779 elf32-arm.c:6799
+msgid "%B: unable to find VFP11 veneer `%s'"
+msgstr ""
+
+#: elf32-arm.c:6848
+#, c-format
+msgid "Invalid TARGET2 relocation type '%s'."
+msgstr ""
+
+#: elf32-arm.c:6933
+msgid ""
+"%B(%s): warning: interworking not enabled.\n"
+"  first occurrence: %B: thumb call to arm"
+msgstr ""
+
+#: elf32-arm.c:7717
+msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' in TLS trampoline"
+msgstr ""
+
+#: elf32-arm.c:7756
+msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' in TLS trampoline"
+msgstr ""
+
+#: elf32-arm.c:8209
+msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'."
+msgstr ""
+
+#: elf32-arm.c:8622
+msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'."
+msgstr ""
+
+#: elf32-arm.c:9460
+msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC"
+msgstr ""
+
+#: elf32-arm.c:9483
+msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC"
+msgstr ""
+
+#: elf32-arm.c:9512
+msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object"
+msgstr ""
+
+#: elf32-arm.c:9727
+msgid "%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations"
+msgstr ""
+
+#: elf32-arm.c:9767 elf32-arm.c:9854 elf32-arm.c:9937 elf32-arm.c:10022
+msgid "%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"
+msgstr ""
+
+#: elf32-arm.c:10261 elf32-sh.c:4103 elf64-sh64.c:1544
+msgid "%B(%A+0x%lx): %s relocation against SEC_MERGE section"
+msgstr ""
+
+#: elf32-arm.c:10372 elf32-m68k.c:4191 elf32-xtensa.c:2802
+msgid "%B(%A+0x%lx): %s used with TLS symbol %s"
+msgstr ""
+
+#: elf32-arm.c:10373 elf32-m68k.c:4192 elf32-xtensa.c:2803
+msgid "%B(%A+0x%lx): %s used with non-TLS symbol %s"
+msgstr ""
+
+#: elf32-arm.c:10453 elf32-tic6x.c:2753
+msgid "out of range"
+msgstr ""
+
+#: elf32-arm.c:10457 elf32-tic6x.c:2757
+msgid "unsupported relocation"
+msgstr ""
+
+#: elf32-arm.c:10465 elf32-tic6x.c:2765
+msgid "unknown error"
+msgstr "nepoznata greÅ¡ka"
+
+#: elf32-arm.c:10890
+msgid "Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it"
+msgstr ""
+
+#: elf32-arm.c:10984
+msgid "%B: Unknown mandatory EABI object attribute %d"
+msgstr ""
+
+#: elf32-arm.c:10992
+msgid "Warning: %B: Unknown EABI object attribute %d"
+msgstr ""
+
+#: elf32-arm.c:11173
+msgid "error: %B: Unknown CPU architecture"
+msgstr ""
+
+#: elf32-arm.c:11211
+msgid "error: %B: Conflicting CPU architectures %d/%d"
+msgstr ""
+
+#: elf32-arm.c:11260
+msgid "Error: %B has both the current and legacy Tag_MPextension_use attributes"
+msgstr ""
+
+#: elf32-arm.c:11285
+msgid "error: %B uses VFP register arguments, %B does not"
+msgstr ""
+
+#: elf32-arm.c:11430
+msgid "error: %B: unable to merge virtualization attributes with %B"
+msgstr ""
+
+#: elf32-arm.c:11456
+msgid "error: %B: Conflicting architecture profiles %c/%c"
+msgstr ""
+
+#: elf32-arm.c:11557
+msgid "Warning: %B: Conflicting platform configuration"
+msgstr ""
+
+#: elf32-arm.c:11566
+msgid "error: %B: Conflicting use of R9"
+msgstr ""
+
+#: elf32-arm.c:11578
+msgid "error: %B: SB relative addressing conflicts with use of R9"
+msgstr ""
+
+#: elf32-arm.c:11591
+msgid "warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail"
+msgstr ""
+
+#: elf32-arm.c:11622
+msgid "warning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may fail"
+msgstr ""
+
+#: elf32-arm.c:11634
+msgid "error: %B uses iWMMXt register arguments, %B does not"
+msgstr ""
+
+#: elf32-arm.c:11651
+msgid "error: fp16 format mismatch between %B and %B"
+msgstr ""
+
+#: elf32-arm.c:11675
+msgid "DIV usage mismatch between %B and %B"
+msgstr ""
+
+#: elf32-arm.c:11694
+msgid "%B has has both the current and legacy Tag_MPextension_use attributes"
+msgstr ""
+
+#. Ignore init flag - it may not be set, despite the flags field
+#. containing valid data.
+#. Ignore init flag - it may not be set, despite the flags field containing valid data.
+#: elf32-arm.c:11782 elf32-bfin.c:5079 elf32-cris.c:4169 elf32-m68hc1x.c:1282
+#: elf32-m68k.c:1236 elf32-score.c:3994 elf32-score7.c:3800 elf32-vax.c:529
+#: elfxx-mips.c:14103
+#, c-format
+msgid "private flags = %lx:"
+msgstr ""
+
+#: elf32-arm.c:11791
+#, c-format
+msgid " [interworking enabled]"
+msgstr ""
+
+#: elf32-arm.c:11799
+#, c-format
+msgid " [VFP float format]"
+msgstr ""
+
+#: elf32-arm.c:11801
+#, c-format
+msgid " [Maverick float format]"
+msgstr ""
+
+#: elf32-arm.c:11803
+#, c-format
+msgid " [FPA float format]"
+msgstr ""
+
+#: elf32-arm.c:11812
+#, c-format
+msgid " [new ABI]"
+msgstr ""
+
+#: elf32-arm.c:11815
+#, c-format
+msgid " [old ABI]"
+msgstr ""
+
+#: elf32-arm.c:11818
+#, c-format
+msgid " [software FP]"
+msgstr ""
+
+#: elf32-arm.c:11827
+#, c-format
+msgid " [Version1 EABI]"
+msgstr ""
+
+#: elf32-arm.c:11830 elf32-arm.c:11841
+#, c-format
+msgid " [sorted symbol table]"
+msgstr ""
+
+#: elf32-arm.c:11832 elf32-arm.c:11843
+#, c-format
+msgid " [unsorted symbol table]"
+msgstr ""
+
+#: elf32-arm.c:11838
+#, c-format
+msgid " [Version2 EABI]"
+msgstr ""
+
+#: elf32-arm.c:11846
+#, c-format
+msgid " [dynamic symbols use segment index]"
+msgstr ""
+
+#: elf32-arm.c:11849
+#, c-format
+msgid " [mapping symbols precede others]"
+msgstr ""
+
+#: elf32-arm.c:11856
+#, c-format
+msgid " [Version3 EABI]"
+msgstr ""
+
+#: elf32-arm.c:11860
+#, c-format
+msgid " [Version4 EABI]"
+msgstr ""
+
+#: elf32-arm.c:11864
+#, c-format
+msgid " [Version5 EABI]"
+msgstr ""
+
+#: elf32-arm.c:11867
+#, c-format
+msgid " [BE8]"
+msgstr ""
+
+#: elf32-arm.c:11870
+#, c-format
+msgid " [LE8]"
+msgstr ""
+
+#: elf32-arm.c:11876
+#, c-format
+msgid " <EABI version unrecognised>"
+msgstr ""
+
+#: elf32-arm.c:11883
+#, c-format
+msgid " [relocatable executable]"
+msgstr ""
+
+#: elf32-arm.c:11886
+#, c-format
+msgid " [has entry point]"
+msgstr ""
+
+#: elf32-arm.c:11891
+#, c-format
+msgid "<Unrecognised flag bits set>"
+msgstr ""
+
+#: elf32-arm.c:12189 elf32-i386.c:1461 elf32-s390.c:1000 elf32-tic6x.c:2829
+#: elf32-tilepro.c:1336 elf32-xtensa.c:1009 elf64-s390.c:960
+#: elf64-x86-64.c:1364 elfxx-sparc.c:1371 elfxx-tilegx.c:1586
+msgid "%B: bad symbol index: %d"
+msgstr ""
+
+#: elf32-arm.c:12337 elf64-x86-64.c:1561 elf64-x86-64.c:1732 elfxx-mips.c:8223
+msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"
+msgstr ""
+
+#: elf32-arm.c:13460
+#, c-format
+msgid "Errors encountered processing file %s"
+msgstr ""
+
+#: elf32-arm.c:14837
+msgid "%B: error: Cortex-A8 erratum stub is allocated in unsafe location"
+msgstr ""
+
+#. There's not much we can do apart from complain if this
+#. happens.
+#: elf32-arm.c:14864
+msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)"
+msgstr ""
+
+#: elf32-arm.c:14958 elf32-arm.c:14980
+msgid "%B: error: VFP11 veneer out of range"
+msgstr ""
+
+#: elf32-arm.c:15518
+msgid "error: %B is already in final BE8 format"
+msgstr ""
+
+#: elf32-arm.c:15594
+msgid "error: Source object %B has EABI version %d, but target %B has EABI version %d"
+msgstr ""
+
+#: elf32-arm.c:15610
+msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d"
+msgstr ""
+
+#: elf32-arm.c:15635
+msgid "error: %B uses VFP instructions, whereas %B does not"
+msgstr ""
+
+#: elf32-arm.c:15639
+msgid "error: %B uses FPA instructions, whereas %B does not"
+msgstr ""
+
+#: elf32-arm.c:15649
+msgid "error: %B uses Maverick instructions, whereas %B does not"
+msgstr ""
+
+#: elf32-arm.c:15653
+msgid "error: %B does not use Maverick instructions, whereas %B does"
+msgstr ""
+
+#: elf32-arm.c:15672
+msgid "error: %B uses software FP, whereas %B uses hardware FP"
+msgstr ""
+
+#: elf32-arm.c:15676
+msgid "error: %B uses hardware FP, whereas %B uses software FP"
+msgstr ""
+
+#: elf32-avr.c:1229 elf32-bfin.c:3221 elf32-cris.c:2089 elf32-epiphany.c:567
+#: elf32-fr30.c:617 elf32-frv.c:4113 elf32-i860.c:1219 elf32-ip2k.c:1479
+#: elf32-iq2000.c:692 elf32-m32c.c:561 elf32-mep.c:543 elf32-moxie.c:290
+#: elf32-msp430.c:494 elf32-mt.c:399 elf32-openrisc.c:412 elf32-tilepro.c:3222
+#: elf32-v850.c:2151 elf32-xstormy16.c:943 elf64-mmix.c:1598
+#: elfxx-tilegx.c:3585
+msgid "internal error: dangerous relocation"
+msgstr ""
+
+#: elf32-avr.c:2415 elf32-hppa.c:598 elf32-m68hc1x.c:166
+msgid "%B: cannot create stub entry %s"
+msgstr ""
+
+#: elf32-bfin.c:107 elf32-bfin.c:363
+msgid "relocation should be even number"
+msgstr ""
+
+#: elf32-bfin.c:1593
+msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'"
+msgstr ""
+
+#: elf32-bfin.c:1626 elf32-i386.c:4307 elf32-m68k.c:4233 elf32-s390.c:3055
+#: elf64-s390.c:3030 elf64-x86-64.c:4151
+msgid "%B(%A+0x%lx): reloc against `%s': error %d"
+msgstr ""
+
+#: elf32-bfin.c:2725
+msgid "%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend"
+msgstr ""
+
+#: elf32-bfin.c:2741
+msgid "relocation references symbol not defined in the module"
+msgstr ""
+
+#: elf32-bfin.c:2838
+msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend"
+msgstr ""
+
+#: elf32-bfin.c:2879 elf32-bfin.c:3002
+msgid "cannot emit fixups in read-only section"
+msgstr ""
+
+#: elf32-bfin.c:2910 elf32-bfin.c:3040 elf32-lm32.c:1103 elf32-sh.c:5016
+msgid "cannot emit dynamic relocations in read-only section"
+msgstr ""
+
+#: elf32-bfin.c:2960
+msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend"
+msgstr ""
+
+#: elf32-bfin.c:3125
+msgid "relocations between different segments are not supported"
+msgstr ""
+
+#: elf32-bfin.c:3126
+msgid "warning: relocation references a different segment"
+msgstr ""
+
+#: elf32-bfin.c:4971
+msgid "%B: unsupported relocation type %i"
+msgstr ""
+
+#: elf32-bfin.c:5125 elf32-frv.c:6808
+#, c-format
+msgid "%s: cannot link non-fdpic object file into fdpic executable"
+msgstr ""
+
+#: elf32-bfin.c:5129 elf32-frv.c:6812
+#, c-format
+msgid "%s: cannot link fdpic object file into non-fdpic executable"
+msgstr ""
+
+#: elf32-bfin.c:5283
+#, c-format
+msgid "*** check this relocation %s"
+msgstr ""
+
+#: elf32-cris.c:1176
+msgid "%B, section %A: unresolvable relocation %s against symbol `%s'"
+msgstr ""
+
+#: elf32-cris.c:1238
+msgid "%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'"
+msgstr ""
+
+#: elf32-cris.c:1240
+msgid "%B, section %A: No PLT for relocation %s against symbol `%s'"
+msgstr ""
+
+#: elf32-cris.c:1246 elf32-cris.c:1379 elf32-cris.c:1639 elf32-cris.c:1722
+#: elf32-cris.c:1875 elf32-tic6x.c:2662
+msgid "[whose name is lost]"
+msgstr ""
+
+#: elf32-cris.c:1365 elf32-tic6x.c:2647
+msgid "%B, section %A: relocation %s with non-zero addend %d against local symbol"
+msgstr ""
+
+#: elf32-cris.c:1373 elf32-cris.c:1716 elf32-cris.c:1869 elf32-tic6x.c:2655
+msgid "%B, section %A: relocation %s with non-zero addend %d against symbol `%s'"
+msgstr ""
+
+#: elf32-cris.c:1399
+msgid "%B, section %A: relocation %s is not allowed for global symbol: `%s'"
+msgstr ""
+
+#: elf32-cris.c:1415
+msgid "%B, section %A: relocation %s with no GOT created"
+msgstr ""
+
+#. We shouldn't get here for GCC-emitted code.
+#: elf32-cris.c:1630
+msgid "%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?"
+msgstr ""
+
+#: elf32-cris.c:2002
+msgid "%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?"
+msgstr ""
+
+#: elf32-cris.c:2055
+msgid "(too many global variables for -fpic: recompile with -fPIC)"
+msgstr ""
+
+#: elf32-cris.c:2062
+msgid "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)"
+msgstr ""
+
+#: elf32-cris.c:3261
+msgid ""
+"%B, section %A:\n"
+"  v10/v32 compatible object %s must not contain a PIC relocation"
+msgstr ""
+
+#: elf32-cris.c:3366
+msgid ""
+"%B, section %A:\n"
+"  relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC"
+msgstr ""
+
+#: elf32-cris.c:3580
+msgid ""
+"%B, section %A:\n"
+"  relocation %s should not be used in a shared object; recompile with -fPIC"
+msgstr ""
+
+#: elf32-cris.c:4002
+msgid ""
+"%B, section `%A', to symbol `%s':\n"
+"  relocation %s should not be used in a shared object; recompile with -fPIC"
+msgstr ""
+
+#: elf32-cris.c:4118
+msgid "Unexpected machine number"
+msgstr ""
+
+#: elf32-cris.c:4172
+#, c-format
+msgid " [symbols have a _ prefix]"
+msgstr ""
+
+#: elf32-cris.c:4175
+#, c-format
+msgid " [v10 and v32]"
+msgstr " [v10 i v32]"
+
+#: elf32-cris.c:4178
+#, c-format
+msgid " [v32]"
+msgstr " [v32]"
+
+#: elf32-cris.c:4223
+msgid "%B: uses _-prefixed symbols, but writing file with non-prefixed symbols"
+msgstr ""
+
+#: elf32-cris.c:4224
+msgid "%B: uses non-prefixed symbols, but writing file with _-prefixed symbols"
+msgstr ""
+
+#: elf32-cris.c:4243
+msgid "%B contains CRIS v32 code, incompatible with previous objects"
+msgstr ""
+
+#: elf32-cris.c:4245
+msgid "%B contains non-CRIS-v32 code, incompatible with previous objects"
+msgstr ""
+
+#: elf32-dlx.c:142
+#, c-format
+msgid "BFD Link Error: branch (PC rel16) to section (%s) not supported"
+msgstr ""
+
+#: elf32-dlx.c:204
+#, c-format
+msgid "BFD Link Error: jump (PC rel26) to section (%s) not supported"
+msgstr ""
+
+#. Only if it's not an unresolved symbol.
+#: elf32-epiphany.c:563 elf32-ip2k.c:1475
+msgid "unsupported relocation between data/insn address spaces"
+msgstr ""
+
+#: elf32-frv.c:1509 elf32-frv.c:1658
+msgid "relocation requires zero addend"
+msgstr ""
+
+#: elf32-frv.c:2888
+msgid "%H: relocation to `%s+%v' may have caused the error above\n"
+msgstr ""
+
+#: elf32-frv.c:2905
+msgid "%H: relocation references symbol not defined in the module\n"
+msgstr ""
+
+#: elf32-frv.c:2981
+msgid "%H: R_FRV_GETTLSOFF not applied to a call instruction\n"
+msgstr ""
+
+#: elf32-frv.c:3022
+msgid "%H: R_FRV_GOTTLSDESC12 not applied to an lddi instruction\n"
+msgstr ""
+
+#: elf32-frv.c:3093
+msgid "%H: R_FRV_GOTTLSDESCHI not applied to a sethi instruction\n"
+msgstr ""
+
+#: elf32-frv.c:3130
+msgid "%H: R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction\n"
+msgstr ""
+
+#: elf32-frv.c:3177
+msgid "%H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction\n"
+msgstr ""
+
+#: elf32-frv.c:3261
+msgid "%H: R_FRV_GETTLSOFF_RELAX not applied to a calll instruction\n"
+msgstr ""
+
+#: elf32-frv.c:3315
+msgid "%H: R_FRV_GOTTLSOFF12 not applied to an ldi instruction\n"
+msgstr ""
+
+#: elf32-frv.c:3345
+msgid "%H: R_FRV_GOTTLSOFFHI not applied to a sethi instruction\n"
+msgstr ""
+
+#: elf32-frv.c:3374
+msgid "%H: R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction\n"
+msgstr ""
+
+#: elf32-frv.c:3404
+msgid "%H: R_FRV_TLSOFF_RELAX not applied to an ld instruction\n"
+msgstr ""
+
+#: elf32-frv.c:3449
+msgid "%H: R_FRV_TLSMOFFHI not applied to a sethi instruction\n"
+msgstr ""
+
+#: elf32-frv.c:3476
+msgid "R_FRV_TLSMOFFLO not applied to a setlo or setlos instruction\n"
+msgstr ""
+
+#: elf32-frv.c:3597
+msgid "%H: R_FRV_FUNCDESC references dynamic symbol with nonzero addend\n"
+msgstr ""
+
+#: elf32-frv.c:3638 elf32-frv.c:3760
+msgid "%H: cannot emit fixups in read-only section\n"
+msgstr ""
+
+#: elf32-frv.c:3669 elf32-frv.c:3803
+msgid "%H: cannot emit dynamic relocations in read-only section\n"
+msgstr ""
+
+#: elf32-frv.c:3718
+msgid "%H: R_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addend\n"
+msgstr ""
+
+#: elf32-frv.c:3974
+msgid "%H: reloc against `%s' references a different segment\n"
+msgstr ""
+
+#: elf32-frv.c:4124
+msgid "%H: reloc against `%s': %s\n"
+msgstr ""
+
+#: elf32-frv.c:6400
+msgid "%B: unsupported relocation type %i\n"
+msgstr ""
+
+#: elf32-frv.c:6722
+#, c-format
+msgid "%s: compiled with %s and linked with modules that use non-pic relocations"
+msgstr ""
+
+#: elf32-frv.c:6775 elf32-iq2000.c:845 elf32-m32c.c:807
+#, c-format
+msgid "%s: compiled with %s and linked with modules compiled with %s"
+msgstr ""
+
+#: elf32-frv.c:6787
+#, c-format
+msgid "%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)"
+msgstr ""
+
+#: elf32-frv.c:6837 elf32-iq2000.c:882 elf32-m32c.c:843 elf32-mt.c:576
+#: elf32-rx.c:3001
+#, c-format
+msgid "private flags = 0x%lx:"
+msgstr ""
+
+#: elf32-gen.c:69 elf64-gen.c:69
+msgid "%B: Relocations in generic ELF (EM: %d)"
+msgstr ""
+
+#: elf32-hppa.c:850 elf32-hppa.c:3598
+msgid "%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections"
+msgstr ""
+
+#: elf32-hppa.c:1284
+msgid "%B: relocation %s can not be used when making a shared object; recompile with -fPIC"
+msgstr ""
+
+#: elf32-hppa.c:2791
+msgid "%B: duplicate export stub %s"
+msgstr ""
+
+#: elf32-hppa.c:3437
+msgid "%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link"
+msgstr ""
+
+#: elf32-hppa.c:4284
+msgid "%B(%A+0x%lx): cannot handle %s for %s"
+msgstr ""
+
+#: elf32-hppa.c:4603
+msgid ".got section not immediately after .plt section"
+msgstr ""
+
+#. Unknown relocation.
+#: elf32-i386.c:373 elf32-m68k.c:384 elf32-ppc.c:1676 elf32-s390.c:379
+#: elf32-tic6x.c:2684 elf64-ppc.c:2300 elf64-s390.c:403 elf64-x86-64.c:265
+msgid "%B: invalid relocation type %d"
+msgstr ""
+
+#: elf32-i386.c:1404 elf64-x86-64.c:1308
+msgid "%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed"
+msgstr ""
+
+#: elf32-i386.c:1549 elf32-i386.c:3244 elf64-x86-64.c:1487 elf64-x86-64.c:3125
+#: elfxx-sparc.c:3083
+msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
+msgstr ""
+
+#: elf32-i386.c:1711 elf32-s390.c:1182 elf32-sh.c:6362 elf32-tilepro.c:1434
+#: elf32-xtensa.c:1182 elf64-s390.c:1151 elfxx-sparc.c:1548
+#: elfxx-tilegx.c:1701
+msgid "%B: `%s' accessed both as normal and thread local symbol"
+msgstr ""
+
+#: elf32-i386.c:2539 elf64-x86-64.c:2506
+msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'.\n"
+msgstr ""
+
+#: elf32-i386.c:2629 elf64-x86-64.c:2593
+msgid "%P: %B: warning: relocation in readonly section `%A'.\n"
+msgstr ""
+
+#: elf32-i386.c:3086 elf32-tilepro.c:2557 elfxx-tilegx.c:2871
+msgid "%B: unrecognized relocation (0x%x) in section `%A'"
+msgstr ""
+
+#: elf32-i386.c:3494 elf64-x86-64.c:3513
+msgid "hidden symbol"
+msgstr "skriveni simbol"
+
+#: elf32-i386.c:3497 elf64-x86-64.c:3516
+msgid "internal symbol"
+msgstr "interni simbol"
+
+#: elf32-i386.c:3500 elf64-x86-64.c:3519
+msgid "protected symbol"
+msgstr "zaÅ¡tiÄ‡eni simbol"
+
+#: elf32-i386.c:3503 elf64-x86-64.c:3522
+msgid "symbol"
+msgstr "simbol"
+
+#: elf32-i386.c:3508
+msgid "%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object"
+msgstr ""
+
+#: elf32-i386.c:3518
+msgid "%B: relocation R_386_GOTOFF against protected function `%s' can not be used when making a shared object"
+msgstr ""
+
+#: elf32-i386.c:4839 elf32-tilepro.c:3467 elf64-x86-64.c:4609
+#: elfxx-tilegx.c:3847
+#, c-format
+msgid "discarded output section: `%A'"
+msgstr ""
+
+#: elf32-ip2k.c:857 elf32-ip2k.c:863 elf32-ip2k.c:930 elf32-ip2k.c:936
+msgid "ip2k relaxer: switch table without complete matching relocation information."
+msgstr ""
+
+#: elf32-ip2k.c:880 elf32-ip2k.c:963
+msgid "ip2k relaxer: switch table header corrupt."
+msgstr ""
+
+#: elf32-ip2k.c:1292
+#, c-format
+msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)."
+msgstr ""
+
+#: elf32-ip2k.c:1308
+#, c-format
+msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)."
+msgstr ""
+
+#: elf32-iq2000.c:858 elf32-m32c.c:819
+#, c-format
+msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
+msgstr ""
+
+#: elf32-lm32.c:706
+msgid "global pointer relative relocation when _gp not defined"
+msgstr ""
+
+#: elf32-lm32.c:761
+msgid "global pointer relative address out of range"
+msgstr ""
+
+#: elf32-lm32.c:1057
+msgid "internal error: addend should be zero for R_LM32_16_GOT"
+msgstr ""
+
+#: elf32-m32r.c:1453
+msgid "SDA relocation when _SDA_BASE_ not defined"
+msgstr ""
+
+#: elf32-m32r.c:3043
+msgid "%B: The target (%s) of an %s relocation is in the wrong section (%A)"
+msgstr ""
+
+#: elf32-m32r.c:3571
+msgid "%B: Instruction set mismatch with previous modules"
+msgstr ""
+
+#: elf32-m32r.c:3592
+#, c-format
+msgid "private flags = %lx"
+msgstr ""
+
+#: elf32-m32r.c:3597
+#, c-format
+msgid ": m32r instructions"
+msgstr ": m32r instrukcije"
+
+#: elf32-m32r.c:3598
+#, c-format
+msgid ": m32rx instructions"
+msgstr ": m32rx instrukcije"
+
+#: elf32-m32r.c:3599
+#, c-format
+msgid ": m32r2 instructions"
+msgstr ": m32r2 instrukcije"
+
+#: elf32-m68hc1x.c:1050
+#, c-format
+msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution"
+msgstr ""
+
+#: elf32-m68hc1x.c:1073
+#, c-format
+msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)"
+msgstr ""
+
+#: elf32-m68hc1x.c:1092
+#, c-format
+msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx"
+msgstr ""
+
+#: elf32-m68hc1x.c:1225
+msgid "%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers"
+msgstr ""
+
+#: elf32-m68hc1x.c:1232
+msgid "%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double"
+msgstr ""
+
+#: elf32-m68hc1x.c:1241
+msgid "%B: linking files compiled for HCS12 with others compiled for HC12"
+msgstr ""
+
+#: elf32-m68hc1x.c:1257 elf32-ppc.c:4227 elf64-sparc.c:706 elfxx-mips.c:13965
+msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
+msgstr ""
+
+#: elf32-m68hc1x.c:1285
+#, c-format
+msgid "[abi=32-bit int, "
+msgstr ""
+
+#: elf32-m68hc1x.c:1287
+#, c-format
+msgid "[abi=16-bit int, "
+msgstr ""
+
+#: elf32-m68hc1x.c:1290
+#, c-format
+msgid "64-bit double, "
+msgstr ""
+
+#: elf32-m68hc1x.c:1292
+#, c-format
+msgid "32-bit double, "
+msgstr ""
+
+#: elf32-m68hc1x.c:1295
+#, c-format
+msgid "cpu=HC11]"
+msgstr ""
+
+#: elf32-m68hc1x.c:1297
+#, c-format
+msgid "cpu=HCS12]"
+msgstr ""
+
+#: elf32-m68hc1x.c:1299
+#, c-format
+msgid "cpu=HC12]"
+msgstr ""
+
+#: elf32-m68hc1x.c:1302
+#, c-format
+msgid " [memory=bank-model]"
+msgstr ""
+
+#: elf32-m68hc1x.c:1304
+#, c-format
+msgid " [memory=flat]"
+msgstr ""
+
+#: elf32-m68k.c:1251 elf32-m68k.c:1252 vms-alpha.c:7314 vms-alpha.c:7329
+msgid "unknown"
+msgstr "nepoznato"
+
+#: elf32-m68k.c:1715
+msgid "%B: GOT overflow: Number of relocations with 8-bit offset > %d"
+msgstr ""
+
+#: elf32-m68k.c:1721
+msgid "%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d"
+msgstr ""
+
+#: elf32-m68k.c:3957
+msgid "%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object"
+msgstr ""
+
+#: elf32-mcore.c:99 elf32-mcore.c:442
+msgid "%B: Relocation %s (%d) is not currently supported.\n"
+msgstr ""
+
+#: elf32-mcore.c:428
+msgid "%B: Unknown relocation type %d\n"
+msgstr ""
+
+#. Pacify gcc -Wall.
+#: elf32-mep.c:157
+#, c-format
+msgid "mep: no reloc for code %d"
+msgstr ""
+
+#: elf32-mep.c:163
+#, c-format
+msgid "MeP: howto %d has type %d"
+msgstr ""
+
+#: elf32-mep.c:648
+msgid "%B and %B are for different cores"
+msgstr ""
+
+#: elf32-mep.c:665
+msgid "%B and %B are for different configurations"
+msgstr ""
+
+#: elf32-mep.c:702
+#, c-format
+msgid "private flags = 0x%lx"
+msgstr ""
+
+#: elf32-microblaze.c:742
+#, c-format
+msgid "%s: unknown relocation type %d"
+msgstr ""
+
+#: elf32-microblaze.c:867 elf32-microblaze.c:912
+#, c-format
+msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
+msgstr ""
+
+#: elf32-microblaze.c:1155 elf32-tilepro.c:2891 elfxx-sparc.c:3457
+#: elfxx-tilegx.c:3230
+msgid "%B: probably compiled without -fPIC?"
+msgstr ""
+
+#: elf32-microblaze.c:2074
+msgid "%B: bad relocation section name `%s'"
+msgstr ""
+
+#: elf32-mips.c:1549 elf64-mips.c:2683 elfn32-mips.c:2487
+msgid "literal relocation occurs for an external symbol"
+msgstr ""
+
+#: elf32-mips.c:1596 elf32-score.c:570 elf32-score7.c:469 elf64-mips.c:2726
+#: elfn32-mips.c:2528
+msgid "32bits gp relative relocation occurs for an external symbol"
+msgstr ""
+
+#: elf32-ppc.c:1741
+#, c-format
+msgid "generic linker can't handle %s"
+msgstr ""
+
+#: elf32-ppc.c:2184
+msgid "corrupt %s section in %B"
+msgstr ""
+
+#: elf32-ppc.c:2203
+msgid "unable to read in %s section from %B"
+msgstr ""
+
+#: elf32-ppc.c:2244
+msgid "warning: unable to set size of %s section in %B"
+msgstr ""
+
+#: elf32-ppc.c:2294
+msgid "failed to allocate space for new APUinfo section."
+msgstr ""
+
+#: elf32-ppc.c:2313
+msgid "failed to compute new APUinfo section."
+msgstr ""
+
+#: elf32-ppc.c:2316
+msgid "failed to install new APUinfo section."
+msgstr ""
+
+#: elf32-ppc.c:3356
+msgid "%B: relocation %s cannot be used when making a shared object"
+msgstr ""
+
+#. It does not make sense to have a procedure linkage
+#. table entry for a local symbol.
+#: elf32-ppc.c:3700
+msgid "%P: %H: %s reloc against local symbol\n"
+msgstr ""
+
+#: elf32-ppc.c:4039 elf32-ppc.c:4054 elfxx-mips.c:13651 elfxx-mips.c:13677
+#: elfxx-mips.c:13699 elfxx-mips.c:13725
+msgid "Warning: %B uses hard float, %B uses soft float"
+msgstr ""
+
+#: elf32-ppc.c:4042 elf32-ppc.c:4046
+msgid "Warning: %B uses double-precision hard float, %B uses single-precision hard float"
+msgstr ""
+
+#: elf32-ppc.c:4050
+msgid "Warning: %B uses soft float, %B uses single-precision hard float"
+msgstr ""
+
+#: elf32-ppc.c:4057 elf32-ppc.c:4061 elfxx-mips.c:13631 elfxx-mips.c:13635
+msgid "Warning: %B uses unknown floating point ABI %d"
+msgstr ""
+
+#: elf32-ppc.c:4103 elf32-ppc.c:4107
+msgid "Warning: %B uses unknown vector ABI %d"
+msgstr ""
+
+#: elf32-ppc.c:4111
+msgid "Warning: %B uses vector ABI \"%s\", %B uses \"%s\""
+msgstr ""
+
+#: elf32-ppc.c:4128 elf32-ppc.c:4131
+msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory"
+msgstr ""
+
+#: elf32-ppc.c:4134 elf32-ppc.c:4138
+msgid "Warning: %B uses unknown small structure return convention %d"
+msgstr ""
+
+#: elf32-ppc.c:4192
+msgid "%B: compiled with -mrelocatable and linked with modules compiled normally"
+msgstr ""
+
+#: elf32-ppc.c:4200
+msgid "%B: compiled normally and linked with modules compiled with -mrelocatable"
+msgstr ""
+
+#: elf32-ppc.c:4309
+msgid "%P: bss-plt forced due to %B\n"
+msgstr ""
+
+#: elf32-ppc.c:4312
+msgid "%P: bss-plt forced by profiling\n"
+msgstr ""
+
+#. Uh oh, we didn't find the expected call.  We
+#. could just mark this symbol to exclude it
+#. from tls optimization but it's safer to skip
+#. the entire optimization.
+#: elf32-ppc.c:4809 elf64-ppc.c:7858
+msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
+msgstr ""
+
+#: elf32-ppc.c:5044 elf64-ppc.c:6528
+msgid "%P: dynamic variable `%s' is zero size\n"
+msgstr ""
+
+#: elf32-ppc.c:7263 elf64-ppc.c:12675
+msgid "%P: %B: unknown relocation type %d for symbol %s\n"
+msgstr ""
+
+#: elf32-ppc.c:7524
+msgid "%P: %H: non-zero addend on %s reloc against `%s'\n"
+msgstr ""
+
+#: elf32-ppc.c:7720 elf64-ppc.c:13181
+msgid "%P: %H: relocation %s for indirect function %s unsupported\n"
+msgstr ""
+
+#: elf32-ppc.c:7948 elf32-ppc.c:7978 elf32-ppc.c:8025
+msgid "%P: %B: the target (%s) of a %s relocation is in the wrong output section (%s)\n"
+msgstr ""
+
+#: elf32-ppc.c:8097
+msgid "%P: %B: relocation %s is not yet supported for symbol %s\n"
+msgstr ""
+
+#: elf32-ppc.c:8158 elf64-ppc.c:13467
+msgid "%P: %H: unresolvable %s relocation against symbol `%s'\n"
+msgstr ""
+
+#: elf32-ppc.c:8205 elf64-ppc.c:13512
+msgid "%P: %H: %s reloc against `%s': error %d\n"
+msgstr ""
+
+#: elf32-ppc.c:8696
+msgid "%P: %s not defined in linker created %s\n"
+msgstr ""
+
+#: elf32-rx.c:563
+msgid "%B:%A: Warning: deprecated Red Hat reloc "
+msgstr ""
+
+#. Check for unsafe relocs in PID mode.  These are any relocs where
+#. an absolute address is being computed.  There are special cases
+#. for relocs against symbols that are known to be referenced in
+#. crt0.o before the PID base address register has been initialised.
+#: elf32-rx.c:581
+msgid "%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)"
+msgstr ""
+
+#: elf32-rx.c:1157
+msgid "Warning: RX_SYM reloc with an unknown symbol"
+msgstr ""
+
+#: elf32-rx.c:1324
+msgid "%B(%A): error: call to undefined function '%s'"
+msgstr ""
+
+#: elf32-rx.c:1338
+msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area"
+msgstr ""
+
+#: elf32-rx.c:1342
+msgid "%B(%A): internal error: out of range error"
+msgstr ""
+
+#: elf32-rx.c:1346
+msgid "%B(%A): internal error: unsupported relocation error"
+msgstr ""
+
+#: elf32-rx.c:1350
+msgid "%B(%A): internal error: dangerous relocation"
+msgstr ""
+
+#: elf32-rx.c:1354
+msgid "%B(%A): internal error: unknown error"
+msgstr ""
+
+#: elf32-rx.c:3004
+#, c-format
+msgid " [64-bit doubles]"
+msgstr ""
+
+#: elf32-rx.c:3006
+#, c-format
+msgid " [dsp]"
+msgstr ""
+
+#: elf32-s390.c:2200 elf64-s390.c:2187
+msgid "%B(%A+0x%lx): invalid instruction for TLS relocation %s"
+msgstr ""
+
+#: elf32-score.c:1520 elf32-score7.c:1379 elfxx-mips.c:3435
+msgid "not enough GOT space for local GOT entries"
+msgstr ""
+
+#: elf32-score.c:2742
+msgid "address not word align"
+msgstr ""
+
+#: elf32-score.c:2827 elf32-score7.c:2631
+#, c-format
+msgid "%s: Malformed reloc detected for section %s"
+msgstr ""
+
+#: elf32-score.c:2878 elf32-score7.c:2682
+msgid "%B: CALL15 reloc at 0x%lx not against global symbol"
+msgstr ""
+
+#: elf32-score.c:3997 elf32-score7.c:3803
+#, c-format
+msgid " [pic]"
+msgstr ""
+
+#: elf32-score.c:4001 elf32-score7.c:3807
+#, c-format
+msgid " [fix dep]"
+msgstr ""
+
+#: elf32-score.c:4043 elf32-score7.c:3849
+msgid "%B: warning: linking PIC files with non-PIC files"
+msgstr ""
+
+#: elf32-sh-symbian.c:130
+msgid "%B: IMPORT AS directive for %s conceals previous IMPORT AS"
+msgstr ""
+
+#: elf32-sh-symbian.c:383
+msgid "%B: Unrecognised .directive command: %s"
+msgstr ""
+
+#: elf32-sh-symbian.c:504
+msgid "%B: Failed to add renamed symbol %s"
+msgstr ""
+
+#: elf32-sh.c:568
+msgid "%B: 0x%lx: warning: bad R_SH_USES offset"
+msgstr ""
+
+#: elf32-sh.c:580
+msgid "%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"
+msgstr ""
+
+#: elf32-sh.c:597
+msgid "%B: 0x%lx: warning: bad R_SH_USES load offset"
+msgstr ""
+
+#: elf32-sh.c:612
+msgid "%B: 0x%lx: warning: could not find expected reloc"
+msgstr ""
+
+#: elf32-sh.c:640
+msgid "%B: 0x%lx: warning: symbol in unexpected section"
+msgstr ""
+
+#: elf32-sh.c:766
+msgid "%B: 0x%lx: warning: could not find expected COUNT reloc"
+msgstr ""
+
+#: elf32-sh.c:775
+msgid "%B: 0x%lx: warning: bad count"
+msgstr ""
+
+#: elf32-sh.c:1179 elf32-sh.c:1549
+msgid "%B: 0x%lx: fatal: reloc overflow while relaxing"
+msgstr ""
+
+#: elf32-sh.c:4048 elf64-sh64.c:1514
+msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled"
+msgstr ""
+
+#: elf32-sh.c:4299
+msgid "%B: 0x%lx: fatal: unaligned branch target for relax-support relocation"
+msgstr ""
+
+#: elf32-sh.c:4332 elf32-sh.c:4347
+msgid "%B: 0x%lx: fatal: unaligned %s relocation 0x%lx"
+msgstr ""
+
+#: elf32-sh.c:4361
+msgid "%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32"
+msgstr ""
+
+#: elf32-sh.c:4375
+msgid "%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32"
+msgstr ""
+
+#: elf32-sh.c:4519 elf32-sh.c:4989
+msgid "%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section"
+msgstr ""
+
+#: elf32-sh.c:5096
+msgid "%B(%A+0x%lx): %s relocation against external symbol \"%s\""
+msgstr ""
+
+#: elf32-sh.c:5569
+#, c-format
+msgid "%X%C: relocation to \"%s\" references a different segment\n"
+msgstr ""
+
+#: elf32-sh.c:5575
+#, c-format
+msgid "%C: warning: relocation to \"%s\" references a different segment\n"
+msgstr ""
+
+#: elf32-sh.c:6353 elf32-sh.c:6436
+msgid "%B: `%s' accessed both as normal and FDPIC symbol"
+msgstr ""
+
+#: elf32-sh.c:6358 elf32-sh.c:6440
+msgid "%B: `%s' accessed both as FDPIC and thread local symbol"
+msgstr ""
+
+#: elf32-sh.c:6388
+msgid "%B: Function descriptor relocation with non-zero addend"
+msgstr ""
+
+#: elf32-sh.c:6624 elf64-alpha.c:4652
+msgid "%B: TLS local exec code cannot be linked into shared objects"
+msgstr ""
+
+#: elf32-sh64.c:223 elf64-sh64.c:2318
+#, c-format
+msgid "%s: compiled as 32-bit object and %s is 64-bit"
+msgstr ""
+
+#: elf32-sh64.c:226 elf64-sh64.c:2321
+#, c-format
+msgid "%s: compiled as 64-bit object and %s is 32-bit"
+msgstr ""
+
+#: elf32-sh64.c:228 elf64-sh64.c:2323
+#, c-format
+msgid "%s: object size does not match that of target %s"
+msgstr ""
+
+#: elf32-sh64.c:451 elf64-sh64.c:2837
+#, c-format
+msgid "%s: encountered datalabel symbol in input"
+msgstr ""
+
+#: elf32-sh64.c:528
+msgid "PTB mismatch: a SHmedia address (bit 0 == 1)"
+msgstr ""
+
+#: elf32-sh64.c:531
+msgid "PTA mismatch: a SHcompact address (bit 0 == 0)"
+msgstr ""
+
+#: elf32-sh64.c:549
+#, c-format
+msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16"
+msgstr ""
+
+#: elf32-sh64.c:598
+msgid "%B: error: unaligned relocation type %d at %08x reloc %p\n"
+msgstr ""
+
+#: elf32-sh64.c:674
+#, c-format
+msgid "%s: could not write out added .cranges entries"
+msgstr ""
+
+#: elf32-sh64.c:734
+#, c-format
+msgid "%s: could not write out sorted .cranges entries"
+msgstr ""
+
+#: elf32-sparc.c:90
+msgid "%B: compiled for a 64 bit system and target is 32 bit"
+msgstr ""
+
+#: elf32-sparc.c:103
+msgid "%B: linking little endian files with big endian files"
+msgstr ""
+
+#: elf32-spu.c:719
+msgid "%X%P: overlay section %A does not start on a cache line.\n"
+msgstr ""
+
+#: elf32-spu.c:727
+msgid "%X%P: overlay section %A is larger than a cache line.\n"
+msgstr ""
+
+#: elf32-spu.c:747
+msgid "%X%P: overlay section %A is not in cache area.\n"
+msgstr ""
+
+#: elf32-spu.c:787
+msgid "%X%P: overlay sections %A and %A do not start at the same address.\n"
+msgstr ""
+
+#: elf32-spu.c:1011
+msgid "warning: call to non-function symbol %s defined in %B"
+msgstr ""
+
+#: elf32-spu.c:1361
+msgid "%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n"
+msgstr ""
+
+#: elf32-spu.c:1880
+msgid "%B is not allowed to define %s"
+msgstr "%B nema dozvolu za definiranje %s"
+
+#: elf32-spu.c:1888
+#, c-format
+msgid "you are not allowed to define %s in a script"
+msgstr "nemate dozvolu za definiranje %s u skripti"
+
+#: elf32-spu.c:1922
+#, c-format
+msgid "%s in overlay section"
+msgstr ""
+
+#: elf32-spu.c:1951
+msgid "overlay stub relocation overflow"
+msgstr ""
+
+#: elf32-spu.c:1960
+msgid "stubs don't match calculated size"
+msgstr ""
+
+#: elf32-spu.c:2542
+#, c-format
+msgid "warning: %s overlaps %s\n"
+msgstr "upozorenje: %s se preklapa sa %s\n"
+
+#: elf32-spu.c:2558
+#, c-format
+msgid "warning: %s exceeds section size\n"
+msgstr ""
+
+#: elf32-spu.c:2589
+msgid "%A:0x%v not found in function table\n"
+msgstr "%A:0x%v nije pronaÄ‘en u tablici funkcija\n"
+
+#: elf32-spu.c:2729
+msgid "%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete\n"
+msgstr ""
+
+#: elf32-spu.c:3297
+#, c-format
+msgid "Stack analysis will ignore the call from %s to %s\n"
+msgstr ""
+
+#: elf32-spu.c:3988
+msgid "  %s: 0x%v\n"
+msgstr "  %s: 0x%v\n"
+
+#: elf32-spu.c:3989
+msgid "%s: 0x%v 0x%v\n"
+msgstr "%s: 0x%v 0x%v\n"
+
+#: elf32-spu.c:3994
+msgid "  calls:\n"
+msgstr ""
+
+#: elf32-spu.c:4002
+#, c-format
+msgid "   %s%s %s\n"
+msgstr "   %s%s %s\n"
+
+#: elf32-spu.c:4307
+#, c-format
+msgid "%s duplicated in %s\n"
+msgstr ""
+
+#: elf32-spu.c:4311
+#, c-format
+msgid "%s duplicated\n"
+msgstr ""
+
+#: elf32-spu.c:4318
+msgid "sorry, no support for duplicate object files in auto-overlay script\n"
+msgstr ""
+
+#: elf32-spu.c:4359
+msgid "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store\n"
+msgstr ""
+
+#: elf32-spu.c:4514
+msgid "%B:%A%s exceeds overlay size\n"
+msgstr ""
+
+#: elf32-spu.c:4676
+msgid "Stack size for call graph root nodes.\n"
+msgstr ""
+
+#: elf32-spu.c:4677
+msgid ""
+"\n"
+"Stack size for functions.  Annotations: '*' max stack, 't' tail call\n"
+msgstr ""
+
+#: elf32-spu.c:4687
+msgid "Maximum stack required is 0x%v\n"
+msgstr ""
+
+#: elf32-spu.c:4778
+msgid "fatal error while creating .fixup"
+msgstr ""
+
+#: elf32-spu.c:5008
+msgid "%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'"
+msgstr ""
+
+#: elf32-tic6x.c:1602
+msgid "warning: generating a shared library containing non-PIC code"
+msgstr ""
+
+#: elf32-tic6x.c:1607
+msgid "warning: generating a shared library containing non-PID code"
+msgstr ""
+
+#: elf32-tic6x.c:2541
+msgid "%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined"
+msgstr ""
+
+#: elf32-tic6x.c:2761
+msgid "dangerous relocation"
+msgstr "opasno premjeÅ¡tanje"
+
+#: elf32-tic6x.c:3733
+msgid "%B: error: unknown mandatory EABI object attribute %d"
+msgstr ""
+
+#: elf32-tic6x.c:3741
+msgid "%B: warning: unknown EABI object attribute %d"
+msgstr ""
+
+#: elf32-tic6x.c:3853 elf32-tic6x.c:3861
+msgid "error: %B requires more stack alignment than %B preserves"
+msgstr ""
+
+#: elf32-tic6x.c:3871 elf32-tic6x.c:3880
+msgid "error: unknown Tag_ABI_array_object_alignment value in %B"
+msgstr ""
+
+#: elf32-tic6x.c:3889 elf32-tic6x.c:3898
+msgid "error: unknown Tag_ABI_array_object_align_expected value in %B"
+msgstr ""
+
+#: elf32-tic6x.c:3906 elf32-tic6x.c:3913
+msgid "error: %B requires more array alignment than %B preserves"
+msgstr ""
+
+#: elf32-tic6x.c:3935
+msgid "warning: %B and %B differ in wchar_t size"
+msgstr ""
+
+#: elf32-tic6x.c:3953
+msgid "warning: %B and %B differ in whether code is compiled for DSBT"
+msgstr ""
+
+#: elf32-v850.c:173
+#, c-format
+msgid "Variable `%s' cannot occupy in multiple small data regions"
+msgstr ""
+
+#: elf32-v850.c:176
+#, c-format
+msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions"
+msgstr ""
+
+#: elf32-v850.c:179
+#, c-format
+msgid "Variable `%s' cannot be in both small and zero data regions simultaneously"
+msgstr ""
+
+#: elf32-v850.c:182
+#, c-format
+msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously"
+msgstr ""
+
+#: elf32-v850.c:185
+#, c-format
+msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously"
+msgstr ""
+
+#: elf32-v850.c:483
+msgid "FAILED to find previous HI16 reloc"
+msgstr ""
+
+#: elf32-v850.c:2155
+msgid "could not locate special linker symbol __gp"
+msgstr ""
+
+#: elf32-v850.c:2159
+msgid "could not locate special linker symbol __ep"
+msgstr ""
+
+#: elf32-v850.c:2163
+msgid "could not locate special linker symbol __ctbp"
+msgstr ""
+
+#: elf32-v850.c:2341
+msgid "%B: Architecture mismatch with previous modules"
+msgstr ""
+
+#. xgettext:c-format.
+#: elf32-v850.c:2360
+#, c-format
+msgid "private flags = %lx: "
+msgstr ""
+
+#: elf32-v850.c:2365
+#, c-format
+msgid "v850 architecture"
+msgstr ""
+
+#: elf32-v850.c:2366
+#, c-format
+msgid "v850e architecture"
+msgstr ""
+
+#: elf32-v850.c:2367
+#, c-format
+msgid "v850e1 architecture"
+msgstr ""
+
+#: elf32-v850.c:2368
+#, c-format
+msgid "v850e2 architecture"
+msgstr ""
+
+#: elf32-v850.c:2369
+#, c-format
+msgid "v850e2v3 architecture"
+msgstr ""
+
+#: elf32-vax.c:532
+#, c-format
+msgid " [nonpic]"
+msgstr ""
+
+#: elf32-vax.c:535
+#, c-format
+msgid " [d-float]"
+msgstr ""
+
+#: elf32-vax.c:538
+#, c-format
+msgid " [g-float]"
+msgstr ""
+
+#: elf32-vax.c:655
+#, c-format
+msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld"
+msgstr ""
+
+#: elf32-vax.c:1585
+#, c-format
+msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored"
+msgstr ""
+
+#: elf32-vax.c:1712
+#, c-format
+msgid "%s: warning: %s relocation against symbol `%s' from %s section"
+msgstr ""
+
+#: elf32-vax.c:1718
+#, c-format
+msgid "%s: warning: %s relocation to 0x%x from %s section"
+msgstr ""
+
+#: elf32-xstormy16.c:451 elf32-ia64.c:2336 elf64-ia64.c:2336
+msgid "non-zero addend in @fptr reloc"
+msgstr ""
+
+#: elf32-xtensa.c:918
+msgid "%B(%A): invalid property table"
+msgstr ""
+
+#: elf32-xtensa.c:2777
+msgid "%B(%A+0x%lx): relocation offset out of range (size=0x%x)"
+msgstr ""
+
+#: elf32-xtensa.c:2856 elf32-xtensa.c:2977
+msgid "dynamic relocation in read-only section"
+msgstr ""
+
+#: elf32-xtensa.c:2953
+msgid "TLS relocation invalid without dynamic sections"
+msgstr ""
+
+#: elf32-xtensa.c:3172
+msgid "internal inconsistency in size of .got.loc section"
+msgstr ""
+
+#: elf32-xtensa.c:3485
+msgid "%B: incompatible machine type. Output is 0x%x. Input is 0x%x"
+msgstr ""
+
+#: elf32-xtensa.c:4714 elf32-xtensa.c:4722
+msgid "Attempt to convert L32R/CALLX to CALL failed"
+msgstr ""
+
+#: elf32-xtensa.c:6332 elf32-xtensa.c:6408 elf32-xtensa.c:7524
+msgid "%B(%A+0x%lx): could not decode instruction; possible configuration mismatch"
+msgstr ""
+
+#: elf32-xtensa.c:7264
+msgid "%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch"
+msgstr ""
+
+#: elf32-xtensa.c:9023
+msgid "invalid relocation address"
+msgstr ""
+
+#: elf32-xtensa.c:9072
+msgid "overflow after relaxation"
+msgstr ""
+
+#: elf32-xtensa.c:10204
+msgid "%B(%A+0x%lx): unexpected fix for %s relocation"
+msgstr ""
+
+#: elf64-alpha.c:460
+msgid "GPDISP relocation did not find ldah and lda instructions"
+msgstr ""
+
+#: elf64-alpha.c:2497
+msgid "%B: .got subsegment exceeds 64K (size %d)"
+msgstr ""
+
+#: elf64-alpha.c:4387 elf64-alpha.c:4399
+msgid "%B: gp-relative relocation against dynamic symbol %s"
+msgstr ""
+
+#: elf64-alpha.c:4425 elf64-alpha.c:4565
+msgid "%B: pc-relative relocation against dynamic symbol %s"
+msgstr ""
+
+#: elf64-alpha.c:4453
+msgid "%B: change in gp: BRSGP %s"
+msgstr ""
+
+#: elf64-alpha.c:4478
+msgid "<unknown>"
+msgstr "<nepoznato>"
+
+#: elf64-alpha.c:4483
+msgid "%B: !samegp reloc against symbol without .prologue: %s"
+msgstr ""
+
+#: elf64-alpha.c:4540
+msgid "%B: unhandled dynamic relocation against %s"
+msgstr ""
+
+#: elf64-alpha.c:4572
+msgid "%B: pc-relative relocation against undefined weak symbol %s"
+msgstr ""
+
+#: elf64-alpha.c:4636
+msgid "%B: dtp-relative relocation against dynamic symbol %s"
+msgstr ""
+
+#: elf64-alpha.c:4659
+msgid "%B: tp-relative relocation against dynamic symbol %s"
+msgstr ""
+
+#: elf64-hppa.c:2083
+#, c-format
+msgid "stub entry for %s cannot load .plt, dp offset = %ld"
+msgstr ""
+
+#: elf64-hppa.c:3275
+msgid "%B(%A+0x"
+msgstr "%B(%A+0x"
+
+#: elf64-mmix.c:1034
+msgid ""
+"invalid input relocation when producing non-ELF, non-mmo format output.\n"
+" Please use the objcopy program to convert from ELF or mmo,\n"
+" or assemble using \"-no-expand\" (for gcc, \"-Wa,-no-expand\""
+msgstr ""
+
+#: elf64-mmix.c:1218
+msgid ""
+"invalid input relocation when producing non-ELF, non-mmo format output.\n"
+" Please use the objcopy program to convert from ELF or mmo,\n"
+" or compile using the gcc-option \"-mno-base-addresses\"."
+msgstr ""
+
+#: elf64-mmix.c:1244
+#, c-format
+msgid ""
+"%s: Internal inconsistency error for value for\n"
+" linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx\n"
+msgstr ""
+
+#: elf64-mmix.c:1670
+#, c-format
+msgid "%s: base-plus-offset relocation against register symbol: (unknown) in %s"
+msgstr ""
+
+#: elf64-mmix.c:1675
+#, c-format
+msgid "%s: base-plus-offset relocation against register symbol: %s in %s"
+msgstr ""
+
+#: elf64-mmix.c:1719
+#, c-format
+msgid "%s: register relocation against non-register symbol: (unknown) in %s"
+msgstr ""
+
+#: elf64-mmix.c:1724
+#, c-format
+msgid "%s: register relocation against non-register symbol: %s in %s"
+msgstr ""
+
+#: elf64-mmix.c:1761
+#, c-format
+msgid "%s: directive LOCAL valid only with a register or absolute value"
+msgstr ""
+
+#: elf64-mmix.c:1789
+#, c-format
+msgid "%s: LOCAL directive: Register $%ld is not a local register.  First global register is $%ld."
+msgstr ""
+
+#: elf64-mmix.c:2253
+#, c-format
+msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n"
+msgstr ""
+
+#: elf64-mmix.c:2311
+msgid "Register section has contents\n"
+msgstr ""
+
+#: elf64-mmix.c:2503
+#, c-format
+msgid ""
+"Internal inconsistency: remaining %u != max %u.\n"
+"  Please report this bug."
+msgstr ""
+
+#: elf64-ppc.c:4185
+msgid "%P: %B: cannot create stub entry %s\n"
+msgstr ""
+
+#: elf64-ppc.c:6518
+msgid "%P: copy reloc against `%s' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n"
+msgstr ""
+
+#: elf64-ppc.c:6788
+msgid "%B: undefined symbol on R_PPC64_TOCSAVE relocation"
+msgstr ""
+
+#: elf64-ppc.c:6992
+msgid "%P: dynreloc miscount for %B, section %A\n"
+msgstr ""
+
+#: elf64-ppc.c:7076
+msgid "%B: .opd is not a regular array of opd entries"
+msgstr ""
+
+#: elf64-ppc.c:7085
+msgid "%B: unexpected reloc type %u in .opd section"
+msgstr ""
+
+#: elf64-ppc.c:7106
+msgid "%B: undefined sym `%s' in .opd section"
+msgstr ""
+
+#: elf64-ppc.c:7664
+msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
+msgstr ""
+
+#: elf64-ppc.c:8003 elf64-ppc.c:8564
+#, c-format
+msgid "%s defined on removed toc entry"
+msgstr ""
+
+#: elf64-ppc.c:8521
+msgid "%P: %H: %s relocation references optimized away TOC entry\n"
+msgstr ""
+
+#: elf64-ppc.c:9598
+msgid "%P: cannot find opd entry toc for %s\n"
+msgstr ""
+
+#: elf64-ppc.c:9680
+msgid "%P: long branch stub `%s' offset overflow\n"
+msgstr ""
+
+#: elf64-ppc.c:9739
+msgid "%P: can't find branch stub `%s'\n"
+msgstr ""
+
+#: elf64-ppc.c:9801 elf64-ppc.c:9943
+msgid "%P: linkage table error against `%s'\n"
+msgstr ""
+
+#: elf64-ppc.c:10126
+msgid "%P: can't build branch stub `%s'\n"
+msgstr ""
+
+#: elf64-ppc.c:10941
+msgid "%B section %A exceeds stub group size"
+msgstr ""
+
+#: elf64-ppc.c:11666 elf64-ppc.c:11699
+msgid "%P: %s offset too large for .eh_frame sdata4 encoding"
+msgstr ""
+
+#: elf64-ppc.c:11744
+msgid "%P: stubs don't match calculated size\n"
+msgstr ""
+
+#: elf64-ppc.c:11756
+#, c-format
+msgid ""
+"linker stubs in %u group%s\n"
+"  branch       %lu\n"
+"  toc adjust   %lu\n"
+"  long branch  %lu\n"
+"  long toc adj %lu\n"
+"  plt call     %lu"
+msgstr ""
+
+#: elf64-ppc.c:12042
+msgid "%P: %H: %s used with TLS symbol %s\n"
+msgstr ""
+
+#: elf64-ppc.c:12043
+msgid "%P: %H: %s used with non-TLS symbol %s\n"
+msgstr ""
+
+#: elf64-ppc.c:12556
+msgid "%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc\n"
+msgstr ""
+
+#: elf64-ppc.c:12562
+msgid "%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern\n"
+msgstr ""
+
+#: elf64-ppc.c:13286
+msgid "%P: %B: relocation %s is not supported for symbol %s\n"
+msgstr ""
+
+#: elf64-ppc.c:13446
+msgid "%P: %H: error: %s not a multiple of %u\n"
+msgstr ""
+
+#: elf64-sh64.c:1686
+#, c-format
+msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n"
+msgstr ""
+
+#: elf64-sparc.c:446
+msgid "%B: Only registers %%g[2367] can be declared using STT_REGISTER"
+msgstr ""
+
+#: elf64-sparc.c:466
+msgid "Register %%g%d used incompatibly: %s in %B, previously %s in %B"
+msgstr ""
+
+#: elf64-sparc.c:489
+msgid "Symbol `%s' has differing types: REGISTER in %B, previously %s in %B"
+msgstr ""
+
+#: elf64-sparc.c:534
+msgid "Symbol `%s' has differing types: %s in %B, previously REGISTER in %B"
+msgstr ""
+
+#: elf64-sparc.c:687
+msgid "%B: linking UltraSPARC specific with HAL specific code"
+msgstr ""
+
+#: elf64-x86-64.c:1427
+msgid "%B: relocation %s against symbol `%s' isn't supported in x32 mode"
+msgstr ""
+
+#: elf64-x86-64.c:1656
+msgid "%B: '%s' accessed both as normal and thread local symbol"
+msgstr ""
+
+#: elf64-x86-64.c:3150
+msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d"
+msgstr ""
+
+#: elf64-x86-64.c:3411
+msgid "%B: relocation R_X86_64_GOTOFF64 against protected function `%s' can not be used when making a shared object"
+msgstr ""
+
+#: elf64-x86-64.c:3523
+msgid "; recompile with -fPIC"
+msgstr ""
+
+#: elf64-x86-64.c:3528
+msgid "%B: relocation %s against %s `%s' can not be used when making a shared object%s"
+msgstr ""
+
+#: elf64-x86-64.c:3530
+msgid "%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s"
+msgstr ""
+
+#: elfcode.h:767
+#, c-format
+msgid "warning: %s has a corrupt string table index - ignoring"
+msgstr ""
+
+#: elfcode.h:1177
+#, c-format
+msgid "%s: version count (%ld) does not match symbol count (%ld)"
+msgstr ""
+
+#: elfcode.h:1431
+#, c-format
+msgid "%s(%s): relocation %d has invalid symbol index %ld"
+msgstr ""
+
+#: elfcore.h:312
+msgid "Warning: %B is truncated: expected core file size >= %lu, found: %lu."
+msgstr ""
+
+#: elflink.c:1117
+msgid "%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A"
+msgstr ""
+
+#: elflink.c:1121
+msgid "%s: TLS reference in %B mismatches non-TLS reference in %B"
+msgstr ""
+
+#: elflink.c:1125
+msgid "%s: TLS definition in %B section %A mismatches non-TLS reference in %B"
+msgstr ""
+
+#: elflink.c:1129
+msgid "%s: TLS reference in %B mismatches non-TLS definition in %B section %A"
+msgstr ""
+
+#: elflink.c:1762
+msgid "%B: unexpected redefinition of indirect versioned symbol `%s'"
+msgstr ""
+
+#: elflink.c:2063
+msgid "%B: version node not found for symbol %s"
+msgstr ""
+
+#: elflink.c:2154
+msgid "%B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A'"
+msgstr ""
+
+#: elflink.c:2165
+msgid "%B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the object file has no symbol table"
+msgstr ""
+
+#: elflink.c:2355
+msgid "%B: relocation size mismatch in %B section %A"
+msgstr ""
+
+#: elflink.c:2639
+#, c-format
+msgid "warning: type and size of dynamic symbol `%s' are not defined"
+msgstr ""
+
+#: elflink.c:3391
+msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n"
+msgstr ""
+
+#: elflink.c:4037
+msgid "%B: %s: invalid version %u (max %d)"
+msgstr ""
+
+#: elflink.c:4073
+msgid "%B: %s: invalid needed version %d"
+msgstr ""
+
+#: elflink.c:4269
+msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A"
+msgstr ""
+
+#: elflink.c:4275
+msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B"
+msgstr ""
+
+#: elflink.c:4290
+msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B"
+msgstr ""
+
+#: elflink.c:4463
+msgid "%B: undefined reference to symbol '%s'"
+msgstr ""
+
+#: elflink.c:4466
+msgid "note: '%s' is defined in DSO %B so try adding it to the linker command line"
+msgstr ""
+
+#: elflink.c:5781
+#, c-format
+msgid "%s: undefined version: %s"
+msgstr "%s: nedefinirana inaÄ�ica: %s"
+
+#: elflink.c:5849
+msgid "%B: .preinit_array section is not allowed in DSO"
+msgstr ""
+
+#: elflink.c:7604
+#, c-format
+msgid "undefined %s reference in complex symbol: %s"
+msgstr ""
+
+#: elflink.c:7758
+#, c-format
+msgid "unknown operator '%c' in complex symbol"
+msgstr ""
+
+#: elflink.c:8097 elflink.c:8114 elflink.c:8151 elflink.c:8168
+msgid "%B: Unable to sort relocs - they are in more than one size"
+msgstr ""
+
+#: elflink.c:8128 elflink.c:8182
+msgid "%B: Unable to sort relocs - they are of an unknown size"
+msgstr ""
+
+#: elflink.c:8233
+msgid "Not enough memory to sort relocations"
+msgstr ""
+
+#: elflink.c:8426
+msgid "%B: Too many sections: %d (>= %d)"
+msgstr ""
+
+#: elflink.c:8675
+msgid "%B: internal symbol `%s' in %B is referenced by DSO"
+msgstr ""
+
+#: elflink.c:8677
+msgid "%B: hidden symbol `%s' in %B is referenced by DSO"
+msgstr ""
+
+#: elflink.c:8679
+msgid "%B: local symbol `%s' in %B is referenced by DSO"
+msgstr ""
+
+#: elflink.c:8776
+msgid "%B: could not find output section %A for input section %A"
+msgstr ""
+
+#: elflink.c:8899
+msgid "%B: protected symbol `%s' isn't defined"
+msgstr ""
+
+#: elflink.c:8901
+msgid "%B: internal symbol `%s' isn't defined"
+msgstr ""
+
+#: elflink.c:8903
+msgid "%B: hidden symbol `%s' isn't defined"
+msgstr ""
+
+#: elflink.c:9432
+msgid "error: %B: size of section %A is not multiple of address size"
+msgstr ""
+
+#: elflink.c:9479
+msgid "error: %B contains a reloc (0x%s) for section %A that references a non-existent global symbol"
+msgstr ""
+
+#: elflink.c:10214
+msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections"
+msgstr ""
+
+#: elflink.c:10219
+#, c-format
+msgid "%A has both ordered and unordered sections"
+msgstr ""
+
+#: elflink.c:10784
+msgid "%B: file class %s incompatible with %s"
+msgstr ""
+
+#: elflink.c:11093 elflink.c:11137
+msgid "%B: could not find output section %s"
+msgstr ""
+
+#: elflink.c:11098
+#, c-format
+msgid "warning: %s section has zero size"
+msgstr ""
+
+#: elflink.c:11143
+#, c-format
+msgid "warning: section '%s' is being made into a note"
+msgstr ""
+
+#: elflink.c:11212
+msgid "%P%X: read-only segment has dynamic relocations.\n"
+msgstr ""
+
+#: elflink.c:11215
+msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n"
+msgstr ""
+
+#: elflink.c:11402
+msgid "%P%X: can not read symbols: %E\n"
+msgstr ""
+
+#: elflink.c:11792
+msgid "Removing unused section '%s' in file '%B'"
+msgstr ""
+
+#: elflink.c:11998
+msgid "Warning: gc-sections option ignored"
+msgstr ""
+
+#: elflink.c:12277
+#, c-format
+msgid "Unrecognized INPUT_SECTION_FLAG %s\n"
+msgstr ""
+
+#: elfxx-mips.c:1234
+msgid "static procedure (no name)"
+msgstr ""
+
+#: elfxx-mips.c:5259
+msgid "MIPS16 and microMIPS functions cannot call each other"
+msgstr ""
+
+#: elfxx-mips.c:5856
+msgid "%B: %A+0x%lx: Direct jumps between ISA modes are not allowed; consider recompiling with interlinking enabled."
+msgstr ""
+
+#: elfxx-mips.c:6519 elfxx-mips.c:6742
+msgid "%B: Warning: bad `%s' option size %u smaller than its header"
+msgstr ""
+
+#: elfxx-mips.c:7495 elfxx-mips.c:7620
+msgid "%B: Warning: cannot determine the target function for stub section `%s'"
+msgstr ""
+
+#: elfxx-mips.c:7749
+msgid "%B: Malformed reloc detected for section %s"
+msgstr ""
+
+#: elfxx-mips.c:7801
+msgid "%B: GOT reloc at 0x%lx not expected in executables"
+msgstr ""
+
+#: elfxx-mips.c:7930
+msgid "%B: CALL16 reloc at 0x%lx not against global symbol"
+msgstr ""
+
+#: elfxx-mips.c:8645
+#, c-format
+msgid "non-dynamic relocations refer to dynamic symbol %s"
+msgstr ""
+
+#: elfxx-mips.c:9347
+msgid "%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'"
+msgstr ""
+
+#: elfxx-mips.c:9486
+msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)"
+msgstr ""
+
+#: elfxx-mips.c:9505
+msgid "JALX to a non-word-aligned address"
+msgstr ""
+
+#: elfxx-mips.c:13266
+#, c-format
+msgid "%s: illegal section name `%s'"
+msgstr ""
+
+#: elfxx-mips.c:13645 elfxx-mips.c:13671
+msgid "Warning: %B uses -msingle-float, %B uses -mdouble-float"
+msgstr ""
+
+#: elfxx-mips.c:13657 elfxx-mips.c:13713
+msgid "Warning: %B uses -msingle-float, %B uses -mips32r2 -mfp64"
+msgstr ""
+
+#: elfxx-mips.c:13683 elfxx-mips.c:13719
+msgid "Warning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64"
+msgstr ""
+
+#: elfxx-mips.c:13761
+msgid "%B: endianness incompatible with that of the selected emulation"
+msgstr ""
+
+#: elfxx-mips.c:13772
+msgid "%B: ABI is incompatible with that of the selected emulation"
+msgstr ""
+
+#: elfxx-mips.c:13856
+msgid "%B: warning: linking abicalls files with non-abicalls files"
+msgstr ""
+
+#: elfxx-mips.c:13873
+msgid "%B: linking 32-bit code with 64-bit code"
+msgstr ""
+
+#: elfxx-mips.c:13901
+msgid "%B: linking %s module with previous %s modules"
+msgstr ""
+
+#: elfxx-mips.c:13924
+msgid "%B: ABI mismatch: linking %s module with previous %s modules"
+msgstr ""
+
+#: elfxx-mips.c:13948
+msgid "%B: ASE mismatch: linking %s module with previous %s modules"
+msgstr ""
+
+#: elfxx-mips.c:14106
+#, c-format
+msgid " [abi=O32]"
+msgstr " [abi=O32]"
+
+#: elfxx-mips.c:14108
+#, c-format
+msgid " [abi=O64]"
+msgstr " [abi=O64]"
+
+#: elfxx-mips.c:14110
+#, c-format
+msgid " [abi=EABI32]"
+msgstr " [abi=EABI32]"
+
+#: elfxx-mips.c:14112
+#, c-format
+msgid " [abi=EABI64]"
+msgstr " [abi=EABI64]"
+
+#: elfxx-mips.c:14114
+#, c-format
+msgid " [abi unknown]"
+msgstr " [abi nepoznat]"
+
+#: elfxx-mips.c:14116
+#, c-format
+msgid " [abi=N32]"
+msgstr " [abi=N32]"
+
+#: elfxx-mips.c:14118
+#, c-format
+msgid " [abi=64]"
+msgstr " [abi=64]"
+
+#: elfxx-mips.c:14120
+#, c-format
+msgid " [no abi set]"
+msgstr " [abi nije postavljen]"
+
+#: elfxx-mips.c:14141
+#, c-format
+msgid " [unknown ISA]"
+msgstr " [nepoznat ISA]"
+
+#: elfxx-mips.c:14155
+#, c-format
+msgid " [not 32bitmode]"
+msgstr ""
+
+#: elfxx-sparc.c:596
+#, c-format
+msgid "invalid relocation type %d"
+msgstr ""
+
+#: elfxx-tilegx.c:3952
+msgid "%B: Cannot link together %s and %s objects."
+msgstr ""
+
+#: i386linux.c:451 m68klinux.c:456 sparclinux.c:450
+#, c-format
+msgid "Output file requires shared library `%s'\n"
+msgstr ""
+
+#: i386linux.c:459 m68klinux.c:464 sparclinux.c:458
+#, c-format
+msgid "Output file requires shared library `%s.so.%s'\n"
+msgstr ""
+
+#: i386linux.c:648 i386linux.c:698 m68klinux.c:656 m68klinux.c:704
+#: sparclinux.c:648 sparclinux.c:698
+#, c-format
+msgid "Symbol %s not defined for fixups\n"
+msgstr ""
+
+#: i386linux.c:722 m68klinux.c:728 sparclinux.c:722
+msgid "Warning: fixup count mismatch\n"
+msgstr ""
+
+#: ieee.c:159
+#, c-format
+msgid "%s: string too long (%d chars, max 65535)"
+msgstr ""
+
+#: ieee.c:286
+#, c-format
+msgid "%s: unrecognized symbol `%s' flags 0x%x"
+msgstr ""
+
+#: ieee.c:792
+msgid "%B: unimplemented ATI record %u for symbol %u"
+msgstr ""
+
+#: ieee.c:816
+msgid "%B: unexpected ATN type %d in external part"
+msgstr ""
+
+#: ieee.c:838
+msgid "%B: unexpected type after ATN"
+msgstr ""
+
+#: ihex.c:230
+msgid "%B:%d: unexpected character `%s' in Intel Hex file"
+msgstr ""
+
+#: ihex.c:337
+msgid "%B:%u: bad checksum in Intel Hex file (expected %u, found %u)"
+msgstr ""
+
+#: ihex.c:392
+msgid "%B:%u: bad extended address record length in Intel Hex file"
+msgstr ""
+
+#: ihex.c:409
+msgid "%B:%u: bad extended start address length in Intel Hex file"
+msgstr ""
+
+#: ihex.c:426
+msgid "%B:%u: bad extended linear address record length in Intel Hex file"
+msgstr ""
+
+#: ihex.c:443
+msgid "%B:%u: bad extended linear start address length in Intel Hex file"
+msgstr ""
+
+#: ihex.c:460
+msgid "%B:%u: unrecognized ihex type %u in Intel Hex file"
+msgstr ""
+
+#: ihex.c:579
+msgid "%B: internal error in ihex_read_section"
+msgstr ""
+
+#: ihex.c:613
+msgid "%B: bad section length in ihex_read_section"
+msgstr ""
+
+#: ihex.c:826
+#, c-format
+msgid "%s: address 0x%s out of range for Intel Hex file"
+msgstr ""
+
+#: libbfd.c:863
+msgid "%B: unable to get decompressed section %A"
+msgstr ""
+
+#: libbfd.c:1012
+msgid "%B: compiled for a big endian system and target is little endian"
+msgstr ""
+
+#: libbfd.c:1014
+msgid "%B: compiled for a little endian system and target is big endian"
+msgstr ""
+
+#: libbfd.c:1043
+#, c-format
+msgid "Deprecated %s called at %s line %d in %s\n"
+msgstr ""
+
+#: libbfd.c:1046
+#, c-format
+msgid "Deprecated %s called\n"
+msgstr ""
+
+#: linker.c:1872
+msgid "%B: indirect symbol `%s' to `%s' is a loop"
+msgstr ""
+
+#: linker.c:2736
+#, c-format
+msgid "Attempt to do relocatable link with %s input and %s output"
+msgstr ""
+
+#: linker.c:3021
+msgid "%B: ignoring duplicate section `%A'\n"
+msgstr ""
+
+#: linker.c:3030 linker.c:3039
+msgid "%B: duplicate section `%A' has different size\n"
+msgstr ""
+
+#: linker.c:3047 linker.c:3052
+msgid "%B: could not read contents of section `%A'\n"
+msgstr ""
+
+#: linker.c:3056
+msgid "%B: duplicate section `%A' has different contents\n"
+msgstr ""
+
+#: mach-o.c:407
+msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols"
+msgstr ""
+
+#: mach-o.c:1301
+#, c-format
+msgid "unable to write unknown load command 0x%lx"
+msgstr ""
+
+#: mach-o.c:1789
+#, c-format
+msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu"
+msgstr ""
+
+#: mach-o.c:1807
+#, c-format
+msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)"
+msgstr ""
+
+#: mach-o.c:1892
+#, c-format
+msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined"
+msgstr ""
+
+#: mach-o.c:1900
+#, c-format
+msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" is unsupported 'indirect' reference: setting to undefined"
+msgstr ""
+
+#: mach-o.c:1906
+#, c-format
+msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined"
+msgstr ""
+
+#: mach-o.c:1979
+msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols"
+msgstr ""
+
+#: mach-o.c:2014
+#, c-format
+msgid "bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu"
+msgstr ""
+
+#: mach-o.c:2734
+#, c-format
+msgid "unable to read unknown load command 0x%lx"
+msgstr ""
+
+#: mach-o.c:2915
+#, c-format
+msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"
+msgstr ""
+
+#: mach-o.c:3011
+#, c-format
+msgid "unknown header byte-order value 0x%lx"
+msgstr ""
+
+#: mach-o.c:3577
+msgid "Mach-O header:\n"
+msgstr "Mach-O zaglavlje:\n"
+
+#: mach-o.c:3578
+#, c-format
+msgid " magic     : %08lx\n"
+msgstr ""
+
+#: mach-o.c:3579
+#, c-format
+msgid " cputype   : %08lx (%s)\n"
+msgstr ""
+
+#: mach-o.c:3581
+#, c-format
+msgid " cpusubtype: %08lx\n"
+msgstr ""
+
+#: mach-o.c:3582
+#, c-format
+msgid " filetype  : %08lx (%s)\n"
+msgstr ""
+
+#: mach-o.c:3585
+#, c-format
+msgid " ncmds     : %08lx (%lu)\n"
+msgstr ""
+
+#: mach-o.c:3586
+#, c-format
+msgid " sizeofcmds: %08lx\n"
+msgstr ""
+
+#: mach-o.c:3587
+#, c-format
+msgid " flags     : %08lx ("
+msgstr ""
+
+#: mach-o.c:3589 vms-alpha.c:7674
+msgid ")\n"
+msgstr ")\n"
+
+#: mach-o.c:3590
+#, c-format
+msgid " reserved  : %08x\n"
+msgstr ""
+
+#: mach-o.c:3600
+msgid "Segments and Sections:\n"
+msgstr ""
+
+#: mach-o.c:3601
+msgid " #: Segment name     Section name     Address\n"
+msgstr ""
+
+#: merge.c:832
+#, c-format
+msgid "%s: access beyond end of merged section (%ld)"
+msgstr ""
+
+#: mmo.c:456
+#, c-format
+msgid "%s: No core to allocate section name %s\n"
+msgstr ""
+
+#: mmo.c:531
+#, c-format
+msgid "%s: No core to allocate a symbol %d bytes long\n"
+msgstr ""
+
+#: mmo.c:1187
+#, c-format
+msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n"
+msgstr ""
+
+#: mmo.c:1332
+#, c-format
+msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
+msgstr ""
+
+#: mmo.c:1565
+#, c-format
+msgid "%s: invalid mmo file: unsupported lopcode `%d'\n"
+msgstr ""
+
+#: mmo.c:1575
+#, c-format
+msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
+msgstr ""
+
+#: mmo.c:1611
+#, c-format
+msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
+msgstr ""
+
+#: mmo.c:1657
+#, c-format
+msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
+msgstr ""
+
+#: mmo.c:1696
+#, c-format
+msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
+msgstr ""
+
+#: mmo.c:1705
+#, c-format
+msgid "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
+msgstr ""
+
+#: mmo.c:1728
+#, c-format
+msgid "%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n"
+msgstr ""
+
+#: mmo.c:1751
+#, c-format
+msgid "%s: cannot allocate file name for file number %d, %d bytes\n"
+msgstr ""
+
+#: mmo.c:1771
+#, c-format
+msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
+msgstr ""
+
+#: mmo.c:1784
+#, c-format
+msgid "%s: invalid mmo file: file name for number %d was not specified before use\n"
+msgstr ""
+
+#: mmo.c:1890
+#, c-format
+msgid "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
+msgstr ""
+
+#: mmo.c:1926
+#, c-format
+msgid "%s: invalid mmo file: lop_end not last item in file\n"
+msgstr ""
+
+#: mmo.c:1939
+#, c-format
+msgid "%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n"
+msgstr ""
+
+#: mmo.c:2649
+#, c-format
+msgid "%s: invalid symbol table: duplicate symbol `%s'\n"
+msgstr ""
+
+#: mmo.c:2889
+#, c-format
+msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n"
+msgstr ""
+
+#: mmo.c:2981
+#, c-format
+msgid "%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d.  Only `Main' will be emitted.\n"
+msgstr ""
+
+#: mmo.c:3026
+#, c-format
+msgid "%s: internal error, symbol table changed size from %d to %d words\n"
+msgstr ""
+
+#: mmo.c:3078
+#, c-format
+msgid "%s: internal error, internal register section %s had contents\n"
+msgstr ""
+
+#: mmo.c:3129
+#, c-format
+msgid "%s: no initialized registers; section length 0\n"
+msgstr ""
+
+#: mmo.c:3135
+#, c-format
+msgid "%s: too many initialized registers; section length %ld\n"
+msgstr ""
+
+#: mmo.c:3140
+#, c-format
+msgid "%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n"
+msgstr ""
+
+#: oasys.c:882
+#, c-format
+msgid "%s: can not represent section `%s' in oasys"
+msgstr ""
+
+#: osf-core.c:140
+#, c-format
+msgid "Unhandled OSF/1 core file section type %d\n"
+msgstr ""
+
+#: pe-mips.c:607
+msgid "%B: `ld -r' not supported with PE MIPS objects\n"
+msgstr ""
+
+#. OK, at this point the following variables are set up:
+#. src = VMA of the memory we're fixing up
+#. mem = pointer to memory we're fixing up
+#. val = VMA of what we need to refer to.
+#: pe-mips.c:719
+msgid "%B: unimplemented %s\n"
+msgstr "%B: neimplementirani %s\n"
+
+#: pe-mips.c:745
+msgid "%B: jump too far away\n"
+msgstr ""
+
+#: pe-mips.c:771
+msgid "%B: bad pair/reflo after refhi\n"
+msgstr ""
+
+#: pef.c:520
+#, c-format
+msgid "bfd_pef_scan: unknown architecture 0x%lx"
+msgstr ""
+
+#: pei-x86_64.c:444
+#, c-format
+msgid "warning: .pdata section size (%ld) is not a multiple of %d\n"
+msgstr ""
+
+#: pei-x86_64.c:448 peigen.c:1618 peigen.c:1801 pepigen.c:1618 pepigen.c:1801
+#: pex64igen.c:1618 pex64igen.c:1801
+#, c-format
+msgid ""
+"\n"
+"The Function Table (interpreted .pdata section contents)\n"
+msgstr ""
+
+#: pei-x86_64.c:450
+#, c-format
+msgid "vma:\t\t\tBeginAddress\t EndAddress\t  UnwindData\n"
+msgstr ""
+
+#. XXX code yet to be written.
+#: peicode.h:751
+msgid "%B: Unhandled import type; %x"
+msgstr ""
+
+#: peicode.h:756
+msgid "%B: Unrecognised import type; %x"
+msgstr ""
+
+#: peicode.h:770
+msgid "%B: Unrecognised import name type; %x"
+msgstr ""
+
+#: peicode.h:1166
+msgid "%B: Unrecognised machine type (0x%x) in Import Library Format archive"
+msgstr ""
+
+#: peicode.h:1178
+msgid "%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive"
+msgstr ""
+
+#: peicode.h:1196
+msgid "%B: size field is zero in Import Library Format header"
+msgstr ""
+
+#: peicode.h:1227
+msgid "%B: string not null terminated in ILF object file."
+msgstr ""
+
+#: ppcboot.c:414
+#, c-format
+msgid ""
+"\n"
+"ppcboot header:\n"
+msgstr ""
+"\n"
+"ppcboot zaglavlje:\n"
+
+#: ppcboot.c:415
+#, c-format
+msgid "Entry offset        = 0x%.8lx (%ld)\n"
+msgstr ""
+
+#: ppcboot.c:417
+#, c-format
+msgid "Length              = 0x%.8lx (%ld)\n"
+msgstr ""
+
+#: ppcboot.c:421
+#, c-format
+msgid "Flag field          = 0x%.2x\n"
+msgstr ""
+
+#: ppcboot.c:427
+#, c-format
+msgid "Partition name      = \"%s\"\n"
+msgstr ""
+
+#: ppcboot.c:446
+#, c-format
+msgid ""
+"\n"
+"Partition[%d] start  = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
+msgstr ""
+
+#: ppcboot.c:452
+#, c-format
+msgid "Partition[%d] end    = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
+msgstr ""
+
+#: ppcboot.c:458
+#, c-format
+msgid "Partition[%d] sector = 0x%.8lx (%ld)\n"
+msgstr ""
+
+#: ppcboot.c:460
+#, c-format
+msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
+msgstr ""
+
+#: reloc.c:6160
+msgid "INPUT_SECTION_FLAGS are not supported.\n"
+msgstr ""
+
+#: rs6000-core.c:448
+#, c-format
+msgid "%s: warning core file truncated"
+msgstr ""
+
+#: som.c:5471
+#, c-format
+msgid ""
+"\n"
+"Exec Auxiliary Header\n"
+msgstr ""
+
+#: som.c:5776
+msgid "som_sizeof_headers unimplemented"
+msgstr ""
+
+#: srec.c:261
+msgid "%B:%d: Unexpected character `%s' in S-record file\n"
+msgstr ""
+
+#: srec.c:567 srec.c:600
+msgid "%B:%d: Bad checksum in S-record file\n"
+msgstr ""
+
+#: stabs.c:279
+msgid "%B(%A+0x%lx): Stabs entry has invalid string index."
+msgstr ""
+
+#: syms.c:1079
+msgid "Unsupported .stab relocation"
+msgstr ""
+
+#: vms-alpha.c:1299
+#, c-format
+msgid "Unknown EGSD subtype %d"
+msgstr ""
+
+#: vms-alpha.c:1330
+#, c-format
+msgid "Stack overflow (%d) in _bfd_vms_push"
+msgstr ""
+
+#: vms-alpha.c:1343
+msgid "Stack underflow in _bfd_vms_pop"
+msgstr ""
+
+#. These names have not yet been added to this switch statement.
+#: vms-alpha.c:1580
+#, c-format
+msgid "unknown ETIR command %d"
+msgstr ""
+
+#: vms-alpha.c:1767
+#, c-format
+msgid "bad section index in %s"
+msgstr ""
+
+#: vms-alpha.c:1780
+#, c-format
+msgid "unsupported STA cmd %s"
+msgstr ""
+
+#. Insert field.
+#. Unsigned shift.
+#. Rotate.
+#. Redefine symbol to current location.
+#. Define a literal.
+#: vms-alpha.c:1956 vms-alpha.c:1987 vms-alpha.c:2234
+#, c-format
+msgid "%s: not supported"
+msgstr "%s: nije podrÅ¾ano"
+
+#: vms-alpha.c:1962
+#, c-format
+msgid "%s: not implemented"
+msgstr "%s: nije implementirano"
+
+#: vms-alpha.c:2218
+#, c-format
+msgid "invalid use of %s with contexts"
+msgstr "neispravno koriÅ¡tenje %s s kontekstima"
+
+#: vms-alpha.c:2252
+#, c-format
+msgid "reserved cmd %d"
+msgstr "rezervirana naredba %d"
+
+#: vms-alpha.c:2337
+msgid "Object module NOT error-free !\n"
+msgstr ""
+
+#: vms-alpha.c:2766
+#, c-format
+msgid "Symbol %s replaced by %s\n"
+msgstr "Simbol %s je zamijenjen sa %s\n"
+
+#: vms-alpha.c:3769
+#, c-format
+msgid "SEC_RELOC with no relocs in section %s"
+msgstr ""
+
+#: vms-alpha.c:3822 vms-alpha.c:4049
+#, c-format
+msgid "Size error in section %s"
+msgstr ""
+
+#: vms-alpha.c:3991
+msgid "Spurious ALPHA_R_BSR reloc"
+msgstr ""
+
+#: vms-alpha.c:4036
+#, c-format
+msgid "Unhandled relocation %s"
+msgstr ""
+
+#: vms-alpha.c:4326
+#, c-format
+msgid "unknown source command %d"
+msgstr ""
+
+#: vms-alpha.c:4387
+msgid "DST__K_SET_LINUM_INCR not implemented"
+msgstr ""
+
+#: vms-alpha.c:4393
+msgid "DST__K_SET_LINUM_INCR_W not implemented"
+msgstr ""
+
+#: vms-alpha.c:4399
+msgid "DST__K_RESET_LINUM_INCR not implemented"
+msgstr ""
+
+#: vms-alpha.c:4405
+msgid "DST__K_BEG_STMT_MODE not implemented"
+msgstr ""
+
+#: vms-alpha.c:4411
+msgid "DST__K_END_STMT_MODE not implemented"
+msgstr ""
+
+#: vms-alpha.c:4438
+msgid "DST__K_SET_PC not implemented"
+msgstr ""
+
+#: vms-alpha.c:4444
+msgid "DST__K_SET_PC_W not implemented"
+msgstr ""
+
+#: vms-alpha.c:4450
+msgid "DST__K_SET_PC_L not implemented"
+msgstr ""
+
+#: vms-alpha.c:4456
+msgid "DST__K_SET_STMTNUM not implemented"
+msgstr ""
+
+#: vms-alpha.c:4499
+#, c-format
+msgid "unknown line command %d"
+msgstr ""
+
+#: vms-alpha.c:4953 vms-alpha.c:4970 vms-alpha.c:4984 vms-alpha.c:4999
+#: vms-alpha.c:5011 vms-alpha.c:5022 vms-alpha.c:5034
+#, c-format
+msgid "Unknown reloc %s + %s"
+msgstr ""
+
+#: vms-alpha.c:5089
+#, c-format
+msgid "Unknown reloc %s"
+msgstr ""
+
+#: vms-alpha.c:5102
+msgid "Invalid section index in ETIR"
+msgstr ""
+
+#: vms-alpha.c:5109
+msgid "Relocation for non-REL psect"
+msgstr ""
+
+#: vms-alpha.c:5156
+#, c-format
+msgid "Unknown symbol in command %s"
+msgstr ""
+
+#: vms-alpha.c:5671
+#, c-format
+msgid "  EMH %u (len=%u): "
+msgstr ""
+
+#: vms-alpha.c:5680
+#, c-format
+msgid "Module header\n"
+msgstr "Zaglavlje modula\n"
+
+#: vms-alpha.c:5681
+#, c-format
+msgid "   structure level: %u\n"
+msgstr ""
+
+#: vms-alpha.c:5682
+#, c-format
+msgid "   max record size: %u\n"
+msgstr ""
+
+#: vms-alpha.c:5685
+#, c-format
+msgid "   module name    : %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:5687
+#, c-format
+msgid "   module version : %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:5689
+#, c-format
+msgid "   compile date   : %.17s\n"
+msgstr ""
+
+#: vms-alpha.c:5694
+#, c-format
+msgid "Language Processor Name\n"
+msgstr ""
+
+#: vms-alpha.c:5695
+#, c-format
+msgid "   language name: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:5702
+#, c-format
+msgid "Source Files Header\n"
+msgstr ""
+
+#: vms-alpha.c:5703
+#, c-format
+msgid "   file: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:5710
+#, c-format
+msgid "Title Text Header\n"
+msgstr ""
+
+#: vms-alpha.c:5711
+#, c-format
+msgid "   title: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:5718
+#, c-format
+msgid "Copyright Header\n"
+msgstr ""
+
+#: vms-alpha.c:5719
+#, c-format
+msgid "   copyright: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:5725
+#, c-format
+msgid "unhandled emh subtype %u\n"
+msgstr ""
+
+#: vms-alpha.c:5735
+#, c-format
+msgid "  EEOM (len=%u):\n"
+msgstr ""
+
+#: vms-alpha.c:5736
+#, c-format
+msgid "   number of cond linkage pairs: %u\n"
+msgstr ""
+
+#: vms-alpha.c:5738
+#, c-format
+msgid "   completion code: %u\n"
+msgstr ""
+
+#: vms-alpha.c:5742
+#, c-format
+msgid "   transfer addr flags: 0x%02x\n"
+msgstr ""
+
+#: vms-alpha.c:5743
+#, c-format
+msgid "   transfer addr psect: %u\n"
+msgstr ""
+
+#: vms-alpha.c:5745
+#, c-format
+msgid "   transfer address   : 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:5754
+msgid " WEAK"
+msgstr ""
+
+#: vms-alpha.c:5756
+msgid " DEF"
+msgstr ""
+
+#: vms-alpha.c:5758
+msgid " UNI"
+msgstr ""
+
+#: vms-alpha.c:5760 vms-alpha.c:5781
+msgid " REL"
+msgstr ""
+
+#: vms-alpha.c:5762
+msgid " COMM"
+msgstr ""
+
+#: vms-alpha.c:5764
+msgid " VECEP"
+msgstr ""
+
+#: vms-alpha.c:5766
+msgid " NORM"
+msgstr ""
+
+#: vms-alpha.c:5768
+msgid " QVAL"
+msgstr ""
+
+#: vms-alpha.c:5775
+msgid " PIC"
+msgstr ""
+
+#: vms-alpha.c:5777
+msgid " LIB"
+msgstr ""
+
+#: vms-alpha.c:5779
+msgid " OVR"
+msgstr ""
+
+#: vms-alpha.c:5783
+msgid " GBL"
+msgstr ""
+
+#: vms-alpha.c:5785
+msgid " SHR"
+msgstr ""
+
+#: vms-alpha.c:5787
+msgid " EXE"
+msgstr ""
+
+#: vms-alpha.c:5789
+msgid " RD"
+msgstr ""
+
+#: vms-alpha.c:5791
+msgid " WRT"
+msgstr ""
+
+#: vms-alpha.c:5793
+msgid " VEC"
+msgstr ""
+
+#: vms-alpha.c:5795
+msgid " NOMOD"
+msgstr ""
+
+#: vms-alpha.c:5797
+msgid " COM"
+msgstr ""
+
+#: vms-alpha.c:5799
+msgid " 64B"
+msgstr ""
+
+#: vms-alpha.c:5808
+#, c-format
+msgid "  EGSD (len=%u):\n"
+msgstr ""
+
+#: vms-alpha.c:5820
+#, c-format
+msgid "  EGSD entry %2u (type: %u, len: %u): "
+msgstr ""
+
+#: vms-alpha.c:5832
+#, c-format
+msgid "PSC - Program section definition\n"
+msgstr ""
+
+#: vms-alpha.c:5833 vms-alpha.c:5850
+#, c-format
+msgid "   alignment  : 2**%u\n"
+msgstr ""
+
+#: vms-alpha.c:5834 vms-alpha.c:5851
+#, c-format
+msgid "   flags      : 0x%04x"
+msgstr ""
+
+#: vms-alpha.c:5838
+#, c-format
+msgid "   alloc (len): %u (0x%08x)\n"
+msgstr ""
+
+#: vms-alpha.c:5839 vms-alpha.c:5896 vms-alpha.c:5945
+#, c-format
+msgid "   name       : %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:5849
+#, c-format
+msgid "SPSC - Shared Image Program section def\n"
+msgstr ""
+
+#: vms-alpha.c:5855
+#, c-format
+msgid "   alloc (len)   : %u (0x%08x)\n"
+msgstr ""
+
+#: vms-alpha.c:5856
+#, c-format
+msgid "   image offset  : 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:5858
+#, c-format
+msgid "   symvec offset : 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:5860
+#, c-format
+msgid "   name          : %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:5873
+#, c-format
+msgid "SYM - Global symbol definition\n"
+msgstr ""
+
+#: vms-alpha.c:5874 vms-alpha.c:5934 vms-alpha.c:5955 vms-alpha.c:5974
+#, c-format
+msgid "   flags: 0x%04x"
+msgstr ""
+
+#: vms-alpha.c:5877
+#, c-format
+msgid "   psect offset: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:5881
+#, c-format
+msgid "   code address: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:5883
+#, c-format
+msgid "   psect index for entry point : %u\n"
+msgstr ""
+
+#: vms-alpha.c:5886 vms-alpha.c:5962 vms-alpha.c:5981
+#, c-format
+msgid "   psect index : %u\n"
+msgstr ""
+
+#: vms-alpha.c:5888 vms-alpha.c:5964 vms-alpha.c:5983
+#, c-format
+msgid "   name        : %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:5895
+#, c-format
+msgid "SYM - Global symbol reference\n"
+msgstr ""
+
+#: vms-alpha.c:5907
+#, c-format
+msgid "IDC - Ident Consistency check\n"
+msgstr ""
+
+#: vms-alpha.c:5908
+#, c-format
+msgid "   flags         : 0x%08x"
+msgstr ""
+
+#: vms-alpha.c:5912
+#, c-format
+msgid "   id match      : %x\n"
+msgstr ""
+
+#: vms-alpha.c:5914
+#, c-format
+msgid "   error severity: %x\n"
+msgstr ""
+
+#: vms-alpha.c:5917
+#, c-format
+msgid "   entity name   : %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:5919
+#, c-format
+msgid "   object name   : %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:5922
+#, c-format
+msgid "   binary ident  : 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:5925
+#, c-format
+msgid "   ascii ident   : %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:5933
+#, c-format
+msgid "SYMG - Universal symbol definition\n"
+msgstr ""
+
+#: vms-alpha.c:5937
+#, c-format
+msgid "   symbol vector offset: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:5939
+#, c-format
+msgid "   entry point: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:5941
+#, c-format
+msgid "   proc descr : 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:5943
+#, c-format
+msgid "   psect index: %u\n"
+msgstr ""
+
+#: vms-alpha.c:5954
+#, c-format
+msgid "SYMV - Vectored symbol definition\n"
+msgstr ""
+
+#: vms-alpha.c:5958
+#, c-format
+msgid "   vector      : 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:5960 vms-alpha.c:5979
+#, c-format
+msgid "   psect offset: %u\n"
+msgstr ""
+
+#: vms-alpha.c:5973
+#, c-format
+msgid "SYMM - Global symbol definition with version\n"
+msgstr ""
+
+#: vms-alpha.c:5977
+#, c-format
+msgid "   version mask: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:5988
+#, c-format
+msgid "unhandled egsd entry type %u\n"
+msgstr ""
+
+#: vms-alpha.c:6022
+#, c-format
+msgid "    linkage index: %u, replacement insn: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:6025
+#, c-format
+msgid "    psect idx 1: %u, offset 1: 0x%08x %08x\n"
+msgstr ""
+
+#: vms-alpha.c:6029
+#, c-format
+msgid "    psect idx 2: %u, offset 2: 0x%08x %08x\n"
+msgstr ""
+
+#: vms-alpha.c:6034
+#, c-format
+msgid "    psect idx 3: %u, offset 3: 0x%08x %08x\n"
+msgstr ""
+
+#: vms-alpha.c:6039
+#, c-format
+msgid "    global name: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:6049
+#, c-format
+msgid "  %s (len=%u+%u):\n"
+msgstr ""
+
+#: vms-alpha.c:6064
+#, c-format
+msgid "   (type: %3u, size: 4+%3u): "
+msgstr ""
+
+#: vms-alpha.c:6068
+#, c-format
+msgid "STA_GBL (stack global) %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:6072
+#, c-format
+msgid "STA_LW (stack longword) 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:6076
+#, c-format
+msgid "STA_QW (stack quadword) 0x%08x %08x\n"
+msgstr ""
+
+#: vms-alpha.c:6081
+#, c-format
+msgid "STA_PQ (stack psect base + offset)\n"
+msgstr ""
+
+#: vms-alpha.c:6082
+#, c-format
+msgid "    psect: %u, offset: 0x%08x %08x\n"
+msgstr ""
+
+#: vms-alpha.c:6088
+#, c-format
+msgid "STA_LI (stack literal)\n"
+msgstr ""
+
+#: vms-alpha.c:6091
+#, c-format
+msgid "STA_MOD (stack module)\n"
+msgstr ""
+
+#: vms-alpha.c:6094
+#, c-format
+msgid "STA_CKARG (compare procedure argument)\n"
+msgstr ""
+
+#: vms-alpha.c:6098
+#, c-format
+msgid "STO_B (store byte)\n"
+msgstr ""
+
+#: vms-alpha.c:6101
+#, c-format
+msgid "STO_W (store word)\n"
+msgstr ""
+
+#: vms-alpha.c:6104
+#, c-format
+msgid "STO_LW (store longword)\n"
+msgstr ""
+
+#: vms-alpha.c:6107
+#, c-format
+msgid "STO_QW (store quadword)\n"
+msgstr ""
+
+#: vms-alpha.c:6113
+#, c-format
+msgid "STO_IMMR (store immediate repeat) %u bytes\n"
+msgstr ""
+
+#: vms-alpha.c:6120
+#, c-format
+msgid "STO_GBL (store global) %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:6124
+#, c-format
+msgid "STO_CA (store code address) %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:6128
+#, c-format
+msgid "STO_RB (store relative branch)\n"
+msgstr ""
+
+#: vms-alpha.c:6131
+#, c-format
+msgid "STO_AB (store absolute branch)\n"
+msgstr ""
+
+#: vms-alpha.c:6134
+#, c-format
+msgid "STO_OFF (store offset to psect)\n"
+msgstr ""
+
+#: vms-alpha.c:6140
+#, c-format
+msgid "STO_IMM (store immediate) %u bytes\n"
+msgstr ""
+
+#: vms-alpha.c:6147
+#, c-format
+msgid "STO_GBL_LW (store global longword) %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:6151
+#, c-format
+msgid "STO_OFF (store LP with procedure signature)\n"
+msgstr ""
+
+#: vms-alpha.c:6154
+#, c-format
+msgid "STO_BR_GBL (store branch global) *todo*\n"
+msgstr ""
+
+#: vms-alpha.c:6157
+#, c-format
+msgid "STO_BR_PS (store branch psect + offset) *todo*\n"
+msgstr ""
+
+#: vms-alpha.c:6161
+#, c-format
+msgid "OPR_NOP (no-operation)\n"
+msgstr ""
+
+#: vms-alpha.c:6164
+#, c-format
+msgid "OPR_ADD (add)\n"
+msgstr ""
+
+#: vms-alpha.c:6167
+#, c-format
+msgid "OPR_SUB (substract)\n"
+msgstr ""
+
+#: vms-alpha.c:6170
+#, c-format
+msgid "OPR_MUL (multiply)\n"
+msgstr ""
+
+#: vms-alpha.c:6173
+#, c-format
+msgid "OPR_DIV (divide)\n"
+msgstr ""
+
+#: vms-alpha.c:6176
+#, c-format
+msgid "OPR_AND (logical and)\n"
+msgstr ""
+
+#: vms-alpha.c:6179
+#, c-format
+msgid "OPR_IOR (logical inclusive or)\n"
+msgstr ""
+
+#: vms-alpha.c:6182
+#, c-format
+msgid "OPR_EOR (logical exclusive or)\n"
+msgstr ""
+
+#: vms-alpha.c:6185
+#, c-format
+msgid "OPR_NEG (negate)\n"
+msgstr ""
+
+#: vms-alpha.c:6188
+#, c-format
+msgid "OPR_COM (complement)\n"
+msgstr ""
+
+#: vms-alpha.c:6191
+#, c-format
+msgid "OPR_INSV (insert field)\n"
+msgstr ""
+
+#: vms-alpha.c:6194
+#, c-format
+msgid "OPR_ASH (arithmetic shift)\n"
+msgstr ""
+
+#: vms-alpha.c:6197
+#, c-format
+msgid "OPR_USH (unsigned shift)\n"
+msgstr ""
+
+#: vms-alpha.c:6200
+#, c-format
+msgid "OPR_ROT (rotate)\n"
+msgstr ""
+
+#: vms-alpha.c:6203
+#, c-format
+msgid "OPR_SEL (select)\n"
+msgstr ""
+
+#: vms-alpha.c:6206
+#, c-format
+msgid "OPR_REDEF (redefine symbol to curr location)\n"
+msgstr ""
+
+#: vms-alpha.c:6209
+#, c-format
+msgid "OPR_REDEF (define a literal)\n"
+msgstr ""
+
+#: vms-alpha.c:6213
+#, c-format
+msgid "STC_LP (store cond linkage pair)\n"
+msgstr ""
+
+#: vms-alpha.c:6217
+#, c-format
+msgid "STC_LP_PSB (store cond linkage pair + signature)\n"
+msgstr ""
+
+#: vms-alpha.c:6218
+#, c-format
+msgid "   linkage index: %u, procedure: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:6221
+#, c-format
+msgid "   signature: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:6224
+#, c-format
+msgid "STC_GBL (store cond global)\n"
+msgstr ""
+
+#: vms-alpha.c:6225
+#, c-format
+msgid "   linkage index: %u, global: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:6229
+#, c-format
+msgid "STC_GCA (store cond code address)\n"
+msgstr ""
+
+#: vms-alpha.c:6230
+#, c-format
+msgid "   linkage index: %u, procedure name: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:6234
+#, c-format
+msgid "STC_PS (store cond psect + offset)\n"
+msgstr ""
+
+#: vms-alpha.c:6236
+#, c-format
+msgid "   linkage index: %u, psect: %u, offset: 0x%08x %08x\n"
+msgstr ""
+
+#: vms-alpha.c:6243
+#, c-format
+msgid "STC_NOP_GBL (store cond NOP at global addr)\n"
+msgstr ""
+
+#: vms-alpha.c:6247
+#, c-format
+msgid "STC_NOP_PS (store cond NOP at psect + offset)\n"
+msgstr ""
+
+#: vms-alpha.c:6251
+#, c-format
+msgid "STC_BSR_GBL (store cond BSR at global addr)\n"
+msgstr ""
+
+#: vms-alpha.c:6255
+#, c-format
+msgid "STC_BSR_PS (store cond BSR at psect + offset)\n"
+msgstr ""
+
+#: vms-alpha.c:6259
+#, c-format
+msgid "STC_LDA_GBL (store cond LDA at global addr)\n"
+msgstr ""
+
+#: vms-alpha.c:6263
+#, c-format
+msgid "STC_LDA_PS (store cond LDA at psect + offset)\n"
+msgstr ""
+
+#: vms-alpha.c:6267
+#, c-format
+msgid "STC_BOH_GBL (store cond BOH at global addr)\n"
+msgstr ""
+
+#: vms-alpha.c:6271
+#, c-format
+msgid "STC_BOH_PS (store cond BOH at psect + offset)\n"
+msgstr ""
+
+#: vms-alpha.c:6276
+#, c-format
+msgid "STC_NBH_GBL (store cond or hint at global addr)\n"
+msgstr ""
+
+#: vms-alpha.c:6280
+#, c-format
+msgid "STC_NBH_PS (store cond or hint at psect + offset)\n"
+msgstr ""
+
+#: vms-alpha.c:6284
+#, c-format
+msgid "CTL_SETRB (set relocation base)\n"
+msgstr ""
+
+#: vms-alpha.c:6290
+#, c-format
+msgid "CTL_AUGRB (augment relocation base) %u\n"
+msgstr ""
+
+#: vms-alpha.c:6294
+#, c-format
+msgid "CTL_DFLOC (define location)\n"
+msgstr ""
+
+#: vms-alpha.c:6297
+#, c-format
+msgid "CTL_STLOC (set location)\n"
+msgstr ""
+
+#: vms-alpha.c:6300
+#, c-format
+msgid "CTL_STKDL (stack defined location)\n"
+msgstr ""
+
+#: vms-alpha.c:6303 vms-alpha.c:6717
+#, c-format
+msgid "*unhandled*\n"
+msgstr "*nekontrolirano*\n"
+
+#: vms-alpha.c:6333 vms-alpha.c:6372
+#, c-format
+msgid "cannot read GST record length\n"
+msgstr ""
+
+#. Ill-formed.
+#: vms-alpha.c:6354
+#, c-format
+msgid "cannot find EMH in first GST record\n"
+msgstr ""
+
+#: vms-alpha.c:6380
+#, c-format
+msgid "cannot read GST record header\n"
+msgstr ""
+
+#: vms-alpha.c:6393
+#, c-format
+msgid " corrupted GST\n"
+msgstr " oÅ¡teÄ‡eni GST\n"
+
+#: vms-alpha.c:6401
+#, c-format
+msgid "cannot read GST record\n"
+msgstr "ne mogu Ä�itati GST zapis\n"
+
+#: vms-alpha.c:6430
+#, c-format
+msgid " unhandled EOBJ record type %u\n"
+msgstr ""
+
+#: vms-alpha.c:6453
+#, c-format
+msgid "  bitcount: %u, base addr: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:6466
+#, c-format
+msgid "   bitmap: 0x%08x (count: %u):\n"
+msgstr ""
+
+#: vms-alpha.c:6473
+#, c-format
+msgid " %08x"
+msgstr " %08x"
+
+#: vms-alpha.c:6498
+#, c-format
+msgid "  image %u (%u entries)\n"
+msgstr ""
+
+#: vms-alpha.c:6503
+#, c-format
+msgid "   offset: 0x%08x, val: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:6524
+#, c-format
+msgid "  image %u (%u entries), offsets:\n"
+msgstr ""
+
+#: vms-alpha.c:6531
+#, c-format
+msgid " 0x%08x"
+msgstr " 0x%08x"
+
+#. 64 bits.
+#: vms-alpha.c:6653
+#, c-format
+msgid "64 bits *unhandled*\n"
+msgstr ""
+
+#: vms-alpha.c:6657
+#, c-format
+msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:6668
+#, c-format
+msgid "non-contiguous array of %s\n"
+msgstr ""
+
+#: vms-alpha.c:6672
+#, c-format
+msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"
+msgstr ""
+
+#: vms-alpha.c:6676
+#, c-format
+msgid "arsize: %u, a0: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:6680
+#, c-format
+msgid "Strides:\n"
+msgstr ""
+
+#: vms-alpha.c:6685
+#, c-format
+msgid "[%u]: %u\n"
+msgstr "[%u]: %u\n"
+
+#: vms-alpha.c:6690
+#, c-format
+msgid "Bounds:\n"
+msgstr ""
+
+#: vms-alpha.c:6695
+#, c-format
+msgid "[%u]: Lower: %u, upper: %u\n"
+msgstr ""
+
+#: vms-alpha.c:6707
+#, c-format
+msgid "unaligned bit-string of %s\n"
+msgstr ""
+
+#: vms-alpha.c:6711
+#, c-format
+msgid "base: %u, pos: %u\n"
+msgstr ""
+
+#: vms-alpha.c:6731
+#, c-format
+msgid "vflags: 0x%02x, value: 0x%08x "
+msgstr ""
+
+#: vms-alpha.c:6737
+#, c-format
+msgid "(no value)\n"
+msgstr ""
+
+#: vms-alpha.c:6740
+#, c-format
+msgid "(not active)\n"
+msgstr ""
+
+#: vms-alpha.c:6743
+#, c-format
+msgid "(not allocated)\n"
+msgstr ""
+
+#: vms-alpha.c:6746
+#, c-format
+msgid "(descriptor)\n"
+msgstr ""
+
+#: vms-alpha.c:6750
+#, c-format
+msgid "(trailing value)\n"
+msgstr ""
+
+#: vms-alpha.c:6753
+#, c-format
+msgid "(value spec follows)\n"
+msgstr ""
+
+#: vms-alpha.c:6756
+#, c-format
+msgid "(at bit offset %u)\n"
+msgstr ""
+
+#: vms-alpha.c:6759
+#, c-format
+msgid "(reg: %u, disp: %u, indir: %u, kind: "
+msgstr ""
+
+#: vms-alpha.c:6766
+msgid "literal"
+msgstr ""
+
+#: vms-alpha.c:6769
+msgid "address"
+msgstr "adresa"
+
+#: vms-alpha.c:6772
+msgid "desc"
+msgstr "opis"
+
+#: vms-alpha.c:6775
+msgid "reg"
+msgstr "reg"
+
+#: vms-alpha.c:6850
+#, c-format
+msgid "Debug symbol table:\n"
+msgstr ""
+
+#: vms-alpha.c:6861
+#, c-format
+msgid "cannot read DST header\n"
+msgstr ""
+
+#: vms-alpha.c:6866
+#, c-format
+msgid " type: %3u, len: %3u (at 0x%08x): "
+msgstr ""
+
+#: vms-alpha.c:6880
+#, c-format
+msgid "cannot read DST symbol\n"
+msgstr ""
+
+#: vms-alpha.c:6923
+#, c-format
+msgid "standard data: %s\n"
+msgstr "standardni podaci: %s\n"
+
+#: vms-alpha.c:6926 vms-alpha.c:7010
+#, c-format
+msgid "    name: %.*s\n"
+msgstr "    ime: %.*s\n"
+
+#: vms-alpha.c:6933
+#, c-format
+msgid "modbeg\n"
+msgstr ""
+
+#: vms-alpha.c:6934
+#, c-format
+msgid "   flags: %d, language: %u, major: %u, minor: %u\n"
+msgstr ""
+
+#: vms-alpha.c:6940 vms-alpha.c:7206
+#, c-format
+msgid "   module name: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:6943
+#, c-format
+msgid "   compiler   : %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:6948
+#, c-format
+msgid "modend\n"
+msgstr ""
+
+#: vms-alpha.c:6955
+msgid "rtnbeg\n"
+msgstr ""
+
+#: vms-alpha.c:6956
+#, c-format
+msgid "    flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:6961
+#, c-format
+msgid "    routine name: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:6969
+#, c-format
+msgid "rtnend: size 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:6977
+#, c-format
+msgid "prolog: bkpt address 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:6985
+#, c-format
+msgid "epilog: flags: %u, count: %u\n"
+msgstr ""
+
+#: vms-alpha.c:6994
+#, c-format
+msgid "blkbeg: address: 0x%08x, name: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:7003
+#, c-format
+msgid "blkend: size: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:7009
+#, c-format
+msgid "typspec (len: %u)\n"
+msgstr ""
+
+#: vms-alpha.c:7016
+#, c-format
+msgid "septyp, name: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:7025
+#, c-format
+msgid "recbeg: name: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:7032
+#, c-format
+msgid "recend\n"
+msgstr ""
+
+#: vms-alpha.c:7035
+#, c-format
+msgid "enumbeg, len: %u, name: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:7039
+#, c-format
+msgid "enumelt, name: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:7043
+#, c-format
+msgid "enumend\n"
+msgstr ""
+
+#: vms-alpha.c:7060
+#, c-format
+msgid "discontiguous range (nbr: %u)\n"
+msgstr ""
+
+#: vms-alpha.c:7062
+#, c-format
+msgid "    address: 0x%08x, size: %u\n"
+msgstr ""
+
+#: vms-alpha.c:7072
+#, c-format
+msgid "line num  (len: %u)\n"
+msgstr ""
+
+#: vms-alpha.c:7089
+#, c-format
+msgid "delta_pc_w %u\n"
+msgstr "delta_pc_w %u\n"
+
+#: vms-alpha.c:7096
+#, c-format
+msgid "incr_linum(b): +%u\n"
+msgstr "incr_linum(b): +%u\n"
+
+#: vms-alpha.c:7102
+#, c-format
+msgid "incr_linum_w: +%u\n"
+msgstr "incr_linum_w: +%u\n"
+
+#: vms-alpha.c:7108
+#, c-format
+msgid "incr_linum_l: +%u\n"
+msgstr "incr_linum_l: +%u\n"
+
+#: vms-alpha.c:7114
+#, c-format
+msgid "set_line_num(w) %u\n"
+msgstr "set_line_num(w) %u\n"
+
+#: vms-alpha.c:7119
+#, c-format
+msgid "set_line_num_b %u\n"
+msgstr "set_line_num_b %u\n"
+
+#: vms-alpha.c:7124
+#, c-format
+msgid "set_line_num_l %u\n"
+msgstr "set_line_num_l %u\n"
+
+#: vms-alpha.c:7129
+#, c-format
+msgid "set_abs_pc: 0x%08x\n"
+msgstr "set_abs_pc: 0x%08x\n"
+
+#: vms-alpha.c:7133
+#, c-format
+msgid "delta_pc_l: +0x%08x\n"
+msgstr "delta_pc_l: +0x%08x\n"
+
+#: vms-alpha.c:7138
+#, c-format
+msgid "term(b): 0x%02x"
+msgstr ""
+
+#: vms-alpha.c:7140
+#, c-format
+msgid "        pc: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:7145
+#, c-format
+msgid "term_w: 0x%04x"
+msgstr ""
+
+#: vms-alpha.c:7147
+#, c-format
+msgid "    pc: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:7153
+#, c-format
+msgid "delta pc +%-4d"
+msgstr ""
+
+#: vms-alpha.c:7156
+#, c-format
+msgid "    pc: 0x%08x line: %5u\n"
+msgstr ""
+
+#: vms-alpha.c:7161
+#, c-format
+msgid "    *unhandled* cmd %u\n"
+msgstr ""
+
+#: vms-alpha.c:7176
+#, c-format
+msgid "source (len: %u)\n"
+msgstr ""
+
+#: vms-alpha.c:7190
+#, c-format
+msgid "   declfile: len: %u, flags: %u, fileid: %u\n"
+msgstr ""
+
+#: vms-alpha.c:7194
+#, c-format
+msgid "   rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
+msgstr ""
+
+#: vms-alpha.c:7203
+#, c-format
+msgid "   filename   : %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:7212
+#, c-format
+msgid "   setfile %u\n"
+msgstr ""
+
+#: vms-alpha.c:7217 vms-alpha.c:7222
+#, c-format
+msgid "   setrec %u\n"
+msgstr ""
+
+#: vms-alpha.c:7227 vms-alpha.c:7232
+#, c-format
+msgid "   setlnum %u\n"
+msgstr ""
+
+#: vms-alpha.c:7237 vms-alpha.c:7242
+#, c-format
+msgid "   deflines %u\n"
+msgstr ""
+
+#: vms-alpha.c:7246
+#, c-format
+msgid "   formfeed\n"
+msgstr ""
+
+#: vms-alpha.c:7250
+#, c-format
+msgid "   *unhandled* cmd %u\n"
+msgstr ""
+
+#: vms-alpha.c:7262
+#, c-format
+msgid "*unhandled* dst type %u\n"
+msgstr ""
+
+#: vms-alpha.c:7294
+#, c-format
+msgid "cannot read EIHD\n"
+msgstr ""
+
+#: vms-alpha.c:7297
+#, c-format
+msgid "EIHD: (size: %u, nbr blocks: %u)\n"
+msgstr ""
+
+#: vms-alpha.c:7300
+#, c-format
+msgid " majorid: %u, minorid: %u\n"
+msgstr ""
+
+#: vms-alpha.c:7308
+msgid "executable"
+msgstr ""
+
+#: vms-alpha.c:7311
+msgid "linkable image"
+msgstr ""
+
+#: vms-alpha.c:7317
+#, c-format
+msgid " image type: %u (%s)"
+msgstr ""
+
+#: vms-alpha.c:7323
+msgid "native"
+msgstr ""
+
+#: vms-alpha.c:7326
+msgid "CLI"
+msgstr ""
+
+#: vms-alpha.c:7332
+#, c-format
+msgid ", subtype: %u (%s)\n"
+msgstr ""
+
+#: vms-alpha.c:7338
+#, c-format
+msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
+msgstr ""
+
+#: vms-alpha.c:7342
+#, c-format
+msgid " fixup info rva: "
+msgstr ""
+
+#: vms-alpha.c:7344
+#, c-format
+msgid ", symbol vector rva: "
+msgstr ""
+
+#: vms-alpha.c:7347
+#, c-format
+msgid ""
+"\n"
+" version array off: %u\n"
+msgstr ""
+
+#: vms-alpha.c:7351
+#, c-format
+msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:7357
+#, c-format
+msgid " linker flags: %08x:"
+msgstr ""
+
+#: vms-alpha.c:7387
+#, c-format
+msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
+msgstr ""
+
+#: vms-alpha.c:7393
+#, c-format
+msgid " BPAGE: %u"
+msgstr ""
+
+#: vms-alpha.c:7399
+#, c-format
+msgid ", ext fixup offset: %u, no_opt psect off: %u"
+msgstr ""
+
+#: vms-alpha.c:7402
+#, c-format
+msgid ", alias: %u\n"
+msgstr ""
+
+#: vms-alpha.c:7410
+#, c-format
+msgid "system version array information:\n"
+msgstr ""
+
+#: vms-alpha.c:7414
+#, c-format
+msgid "cannot read EIHVN header\n"
+msgstr ""
+
+#: vms-alpha.c:7424
+#, c-format
+msgid "cannot read EIHVN version\n"
+msgstr ""
+
+#: vms-alpha.c:7427
+#, c-format
+msgid "   %02u "
+msgstr ""
+
+#: vms-alpha.c:7431
+msgid "BASE_IMAGE       "
+msgstr ""
+
+#: vms-alpha.c:7434
+msgid "MEMORY_MANAGEMENT"
+msgstr "UPRAVLJANJE_MEMORIJOM"
+
+#: vms-alpha.c:7437
+msgid "IO               "
+msgstr ""
+
+#: vms-alpha.c:7440
+msgid "FILES_VOLUMES    "
+msgstr ""
+
+#: vms-alpha.c:7443
+msgid "PROCESS_SCHED    "
+msgstr ""
+
+#: vms-alpha.c:7446
+msgid "SYSGEN           "
+msgstr ""
+
+#: vms-alpha.c:7449
+msgid "CLUSTERS_LOCKMGR "
+msgstr ""
+
+#: vms-alpha.c:7452
+msgid "LOGICAL_NAMES    "
+msgstr ""
+
+#: vms-alpha.c:7455
+msgid "SECURITY         "
+msgstr ""
+
+#: vms-alpha.c:7458
+msgid "IMAGE_ACTIVATOR  "
+msgstr ""
+
+#: vms-alpha.c:7461
+msgid "NETWORKS         "
+msgstr ""
+
+#: vms-alpha.c:7464
+msgid "COUNTERS         "
+msgstr ""
+
+#: vms-alpha.c:7467
+msgid "STABLE           "
+msgstr ""
+
+#: vms-alpha.c:7470
+msgid "MISC             "
+msgstr ""
+
+#: vms-alpha.c:7473
+msgid "CPU              "
+msgstr ""
+
+#: vms-alpha.c:7476
+msgid "VOLATILE         "
+msgstr ""
+
+#: vms-alpha.c:7479
+msgid "SHELL            "
+msgstr ""
+
+#: vms-alpha.c:7482
+msgid "POSIX            "
+msgstr ""
+
+#: vms-alpha.c:7485
+msgid "MULTI_PROCESSING "
+msgstr ""
+
+#: vms-alpha.c:7488
+msgid "GALAXY           "
+msgstr ""
+
+#: vms-alpha.c:7491
+msgid "*unknown*        "
+msgstr ""
+
+#: vms-alpha.c:7494
+#, c-format
+msgid ": %u.%u\n"
+msgstr ""
+
+#: vms-alpha.c:7507 vms-alpha.c:7766
+#, c-format
+msgid "cannot read EIHA\n"
+msgstr ""
+
+#: vms-alpha.c:7510
+#, c-format
+msgid "Image activation:  (size=%u)\n"
+msgstr ""
+
+#: vms-alpha.c:7512
+#, c-format
+msgid " First address : 0x%08x 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:7515
+#, c-format
+msgid " Second address: 0x%08x 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:7518
+#, c-format
+msgid " Third address : 0x%08x 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:7521
+#, c-format
+msgid " Fourth address: 0x%08x 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:7524
+#, c-format
+msgid " Shared image  : 0x%08x 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:7535
+#, c-format
+msgid "cannot read EIHI\n"
+msgstr "ne mogu Ä�itati EIHI\n"
+
+#: vms-alpha.c:7538
+#, c-format
+msgid "Image identification: (major: %u, minor: %u)\n"
+msgstr ""
+
+#: vms-alpha.c:7541
+#, c-format
+msgid " image name       : %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:7543
+#, c-format
+msgid " link time        : %s\n"
+msgstr ""
+
+#: vms-alpha.c:7545
+#, c-format
+msgid " image ident      : %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:7547
+#, c-format
+msgid " linker ident     : %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:7549
+#, c-format
+msgid " image build ident: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:7559
+#, c-format
+msgid "cannot read EIHS\n"
+msgstr ""
+
+#: vms-alpha.c:7562
+#, c-format
+msgid "Image symbol & debug table: (major: %u, minor: %u)\n"
+msgstr ""
+
+#: vms-alpha.c:7567
+#, c-format
+msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n"
+msgstr ""
+
+#: vms-alpha.c:7571
+#, c-format
+msgid " global symbol table: vbn: %u, records: %u\n"
+msgstr ""
+
+#: vms-alpha.c:7575
+#, c-format
+msgid " debug module table : vbn: %u, size: %u\n"
+msgstr ""
+
+#: vms-alpha.c:7588
+#, c-format
+msgid "cannot read EISD\n"
+msgstr "ne mogu Ä�itati EISD\n"
+
+#: vms-alpha.c:7598
+#, c-format
+msgid "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n"
+msgstr ""
+
+#: vms-alpha.c:7605
+#, c-format
+msgid " section: base: 0x%08x%08x size: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:7610
+#, c-format
+msgid " flags: 0x%04x"
+msgstr ""
+
+#: vms-alpha.c:7647
+#, c-format
+msgid " vbn: %u, pfc: %u, matchctl: %u type: %u ("
+msgstr ""
+
+#: vms-alpha.c:7653
+msgid "NORMAL"
+msgstr ""
+
+#: vms-alpha.c:7656
+msgid "SHRFXD"
+msgstr ""
+
+#: vms-alpha.c:7659
+msgid "PRVFXD"
+msgstr ""
+
+#: vms-alpha.c:7662
+msgid "SHRPIC"
+msgstr ""
+
+#: vms-alpha.c:7665
+msgid "PRVPIC"
+msgstr ""
+
+#: vms-alpha.c:7668
+msgid "USRSTACK"
+msgstr ""
+
+#: vms-alpha.c:7676
+#, c-format
+msgid " ident: 0x%08x, name: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:7686
+#, c-format
+msgid "cannot read DMT\n"
+msgstr ""
+
+#: vms-alpha.c:7690
+#, c-format
+msgid "Debug module table:\n"
+msgstr ""
+
+#: vms-alpha.c:7699
+#, c-format
+msgid "cannot read DMT header\n"
+msgstr ""
+
+#: vms-alpha.c:7704
+#, c-format
+msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
+msgstr ""
+
+#: vms-alpha.c:7714
+#, c-format
+msgid "cannot read DMT psect\n"
+msgstr ""
+
+#: vms-alpha.c:7717
+#, c-format
+msgid "  psect start: 0x%08x, length: %u\n"
+msgstr ""
+
+#: vms-alpha.c:7730
+#, c-format
+msgid "cannot read DST\n"
+msgstr "ne mogu Ä�itati DST\n"
+
+#: vms-alpha.c:7740
+#, c-format
+msgid "cannot read GST\n"
+msgstr "ne mogu Ä�itati GST\n"
+
+#: vms-alpha.c:7744
+#, c-format
+msgid "Global symbol table:\n"
+msgstr ""
+
+#: vms-alpha.c:7772
+#, c-format
+msgid "Image activator fixup: (major: %u, minor: %u)\n"
+msgstr ""
+
+#: vms-alpha.c:7775
+#, c-format
+msgid "  iaflink : 0x%08x %08x\n"
+msgstr ""
+
+#: vms-alpha.c:7778
+#, c-format
+msgid "  fixuplnk: 0x%08x %08x\n"
+msgstr ""
+
+#: vms-alpha.c:7781
+#, c-format
+msgid "  size : %u\n"
+msgstr ""
+
+#: vms-alpha.c:7783
+#, c-format
+msgid "  flags: 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:7787
+#, c-format
+msgid "  qrelfixoff: %5u, lrelfixoff: %5u\n"
+msgstr ""
+
+#: vms-alpha.c:7791
+#, c-format
+msgid "  qdotadroff: %5u, ldotadroff: %5u\n"
+msgstr ""
+
+#: vms-alpha.c:7795
+#, c-format
+msgid "  codeadroff: %5u, lpfixoff  : %5u\n"
+msgstr ""
+
+#: vms-alpha.c:7798
+#, c-format
+msgid "  chgprtoff : %5u\n"
+msgstr ""
+
+#: vms-alpha.c:7801
+#, c-format
+msgid "  shlstoff  : %5u, shrimgcnt : %5u\n"
+msgstr ""
+
+#: vms-alpha.c:7803
+#, c-format
+msgid "  shlextra  : %5u, permctx   : %5u\n"
+msgstr ""
+
+#: vms-alpha.c:7806
+#, c-format
+msgid "  base_va : 0x%08x\n"
+msgstr ""
+
+#: vms-alpha.c:7808
+#, c-format
+msgid "  lppsbfixoff: %5u\n"
+msgstr ""
+
+#: vms-alpha.c:7816
+#, c-format
+msgid " Shareable images:\n"
+msgstr ""
+
+#: vms-alpha.c:7820
+#, c-format
+msgid "  %u: size: %u, flags: 0x%02x, name: %.*s\n"
+msgstr ""
+
+#: vms-alpha.c:7827
+#, c-format
+msgid " quad-word relocation fixups:\n"
+msgstr ""
+
+#: vms-alpha.c:7832
+#, c-format
+msgid " long-word relocation fixups:\n"
+msgstr ""
+
+#: vms-alpha.c:7837
+#, c-format
+msgid " quad-word .address reference fixups:\n"
+msgstr ""
+
+#: vms-alpha.c:7842
+#, c-format
+msgid " long-word .address reference fixups:\n"
+msgstr ""
+
+#: vms-alpha.c:7847
+#, c-format
+msgid " Code Address Reference Fixups:\n"
+msgstr ""
+
+#: vms-alpha.c:7852
+#, c-format
+msgid " Linkage Pairs Referece Fixups:\n"
+msgstr ""
+
+#: vms-alpha.c:7861
+#, c-format
+msgid " Change Protection (%u entries):\n"
+msgstr ""
+
+#: vms-alpha.c:7866
+#, c-format
+msgid "  base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "
+msgstr ""
+
+#. FIXME: we do not yet support relocatable link.  It is not obvious
+#. how to do it for debug infos.
+#: vms-alpha.c:8706
+msgid "%P: relocatable link is not supported\n"
+msgstr ""
+
+#: vms-alpha.c:8776
+msgid "%P: multiple entry points: in modules %B and %B\n"
+msgstr ""
+
+#: vms-lib.c:1423
+#, c-format
+msgid "could not open shared image '%s' from '%s'"
+msgstr ""
+
+#: vms-misc.c:360
+msgid "_bfd_vms_output_counted called with zero bytes"
+msgstr ""
+
+#: vms-misc.c:365
+msgid "_bfd_vms_output_counted called with too many bytes"
+msgstr ""
+
+#: xcofflink.c:836
+#, c-format
+msgid "%s: XCOFF shared object when not producing XCOFF output"
+msgstr ""
+
+#: xcofflink.c:857
+#, c-format
+msgid "%s: dynamic object with no .loader section"
+msgstr ""
+
+#: xcofflink.c:1416
+msgid "%B: `%s' has line numbers but no enclosing section"
+msgstr ""
+
+#: xcofflink.c:1468
+msgid "%B: class %d symbol `%s' has no aux entries"
+msgstr ""
+
+#: xcofflink.c:1490
+msgid "%B: symbol `%s' has unrecognized csect type %d"
+msgstr ""
+
+#: xcofflink.c:1502
+msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d"
+msgstr ""
+
+#: xcofflink.c:1531
+msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %d"
+msgstr ""
+
+#: xcofflink.c:1677
+msgid "%B: csect `%s' not in enclosing section"
+msgstr ""
+
+#: xcofflink.c:1784
+msgid "%B: misplaced XTY_LD `%s'"
+msgstr ""
+
+#: xcofflink.c:2103
+msgid "%B: reloc %s:%d not in csect"
+msgstr ""
+
+#: xcofflink.c:3194
+#, c-format
+msgid "%s: no such symbol"
+msgstr "%s: nema takvog simbola"
+
+#: xcofflink.c:3299
+#, c-format
+msgid "warning: attempt to export undefined symbol `%s'"
+msgstr ""
+
+#: xcofflink.c:3678
+msgid "error: undefined symbol __rtinit"
+msgstr "greÅ¡ka: nedefinirani simbol __rtinit"
+
+#: xcofflink.c:4057
+msgid "%B: loader reloc in unrecognized section `%s'"
+msgstr ""
+
+#: xcofflink.c:4068
+msgid "%B: `%s' in loader reloc but not loader sym"
+msgstr ""
+
+#: xcofflink.c:4084
+msgid "%B: loader reloc in read-only section %A"
+msgstr ""
+
+#: xcofflink.c:5106
+#, c-format
+msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"
+msgstr ""
+
+#: elf32-ia64.c:628 elf64-ia64.c:628
+msgid "%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch."
+msgstr ""
+
+#: elf32-ia64.c:2284 elf64-ia64.c:2284
+msgid "@pltoff reloc against local symbol"
+msgstr ""
+
+#: elf32-ia64.c:3687 elf64-ia64.c:3687
+#, c-format
+msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
+msgstr ""
+
+#: elf32-ia64.c:3698 elf64-ia64.c:3698
+#, c-format
+msgid "%s: __gp does not cover short data segment"
+msgstr ""
+
+#: elf32-ia64.c:3965 elf64-ia64.c:3965
+msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'"
+msgstr ""
+
+#: elf32-ia64.c:4032 elf64-ia64.c:4032
+msgid "%B: @gprel relocation against dynamic symbol %s"
+msgstr ""
+
+#: elf32-ia64.c:4095 elf64-ia64.c:4095
+msgid "%B: linking non-pic code in a position independent executable"
+msgstr ""
+
+#: elf32-ia64.c:4232 elf64-ia64.c:4232
+msgid "%B: @internal branch to dynamic symbol %s"
+msgstr ""
+
+#: elf32-ia64.c:4234 elf64-ia64.c:4234
+msgid "%B: speculation fixup to dynamic symbol %s"
+msgstr ""
+
+#: elf32-ia64.c:4236 elf64-ia64.c:4236
+msgid "%B: @pcrel relocation against dynamic symbol %s"
+msgstr ""
+
+#: elf32-ia64.c:4433 elf64-ia64.c:4433
+msgid "unsupported reloc"
+msgstr ""
+
+#: elf32-ia64.c:4471 elf64-ia64.c:4471
+msgid "%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'."
+msgstr ""
+
+#: elf32-ia64.c:4486 elf64-ia64.c:4486
+msgid "%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000)."
+msgstr ""
+
+#: elf32-ia64.c:4748 elf64-ia64.c:4748
+msgid "%B: linking trap-on-NULL-dereference with non-trapping files"
+msgstr ""
+
+#: elf32-ia64.c:4757 elf64-ia64.c:4757
+msgid "%B: linking big-endian files with little-endian files"
+msgstr ""
+
+#: elf32-ia64.c:4766 elf64-ia64.c:4766
+msgid "%B: linking 64-bit files with 32-bit files"
+msgstr ""
+
+#: elf32-ia64.c:4775 elf64-ia64.c:4775
+msgid "%B: linking constant-gp files with non-constant-gp files"
+msgstr ""
+
+#: elf32-ia64.c:4785 elf64-ia64.c:4785
+msgid "%B: linking auto-pic files with non-auto-pic files"
+msgstr ""
+
+#: peigen.c:1002 pepigen.c:1002 pex64igen.c:1002
+#, c-format
+msgid "%s: line number overflow: 0x%lx > 0xffff"
+msgstr ""
+
+#: peigen.c:1029 pepigen.c:1029 pex64igen.c:1029
+msgid "Export Directory [.edata (or where ever we found it)]"
+msgstr ""
+
+#: peigen.c:1030 pepigen.c:1030 pex64igen.c:1030
+msgid "Import Directory [parts of .idata]"
+msgstr ""
+
+#: peigen.c:1031 pepigen.c:1031 pex64igen.c:1031
+msgid "Resource Directory [.rsrc]"
+msgstr ""
+
+#: peigen.c:1032 pepigen.c:1032 pex64igen.c:1032
+msgid "Exception Directory [.pdata]"
+msgstr ""
+
+#: peigen.c:1033 pepigen.c:1033 pex64igen.c:1033
+msgid "Security Directory"
+msgstr ""
+
+#: peigen.c:1034 pepigen.c:1034 pex64igen.c:1034
+msgid "Base Relocation Directory [.reloc]"
+msgstr ""
+
+#: peigen.c:1035 pepigen.c:1035 pex64igen.c:1035
+msgid "Debug Directory"
+msgstr ""
+
+#: peigen.c:1036 pepigen.c:1036 pex64igen.c:1036
+msgid "Description Directory"
+msgstr ""
+
+#: peigen.c:1037 pepigen.c:1037 pex64igen.c:1037
+msgid "Special Directory"
+msgstr ""
+
+#: peigen.c:1038 pepigen.c:1038 pex64igen.c:1038
+msgid "Thread Storage Directory [.tls]"
+msgstr ""
+
+#: peigen.c:1039 pepigen.c:1039 pex64igen.c:1039
+msgid "Load Configuration Directory"
+msgstr ""
+
+#: peigen.c:1040 pepigen.c:1040 pex64igen.c:1040
+msgid "Bound Import Directory"
+msgstr ""
+
+#: peigen.c:1041 pepigen.c:1041 pex64igen.c:1041
+msgid "Import Address Table Directory"
+msgstr ""
+
+#: peigen.c:1042 pepigen.c:1042 pex64igen.c:1042
+msgid "Delay Import Directory"
+msgstr ""
+
+#: peigen.c:1043 pepigen.c:1043 pex64igen.c:1043
+msgid "CLR Runtime Header"
+msgstr ""
+
+#: peigen.c:1044 pepigen.c:1044 pex64igen.c:1044
+msgid "Reserved"
+msgstr "Rezervirano"
+
+#: peigen.c:1104 pepigen.c:1104 pex64igen.c:1104
+#, c-format
+msgid ""
+"\n"
+"There is an import table, but the section containing it could not be found\n"
+msgstr ""
+
+#: peigen.c:1109 pepigen.c:1109 pex64igen.c:1109
+#, c-format
+msgid ""
+"\n"
+"There is an import table in %s at 0x%lx\n"
+msgstr ""
+
+#: peigen.c:1151 pepigen.c:1151 pex64igen.c:1151
+#, c-format
+msgid ""
+"\n"
+"Function descriptor located at the start address: %04lx\n"
+msgstr ""
+
+#: peigen.c:1154 pepigen.c:1154 pex64igen.c:1154
+#, c-format
+msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
+msgstr ""
+
+#: peigen.c:1162 pepigen.c:1162 pex64igen.c:1162
+#, c-format
+msgid ""
+"\n"
+"No reldata section! Function descriptor not decoded.\n"
+msgstr ""
+
+#: peigen.c:1167 pepigen.c:1167 pex64igen.c:1167
+#, c-format
+msgid ""
+"\n"
+"The Import Tables (interpreted %s section contents)\n"
+msgstr ""
+
+#: peigen.c:1170 pepigen.c:1170 pex64igen.c:1170
+#, c-format
+msgid ""
+" vma:            Hint    Time      Forward  DLL       First\n"
+"                 Table   Stamp     Chain    Name      Thunk\n"
+msgstr ""
+
+#: peigen.c:1218 pepigen.c:1218 pex64igen.c:1218
+#, c-format
+msgid ""
+"\n"
+"\tDLL Name: %s\n"
+msgstr ""
+
+#: peigen.c:1229 pepigen.c:1229 pex64igen.c:1229
+#, c-format
+msgid "\tvma:  Hint/Ord Member-Name Bound-To\n"
+msgstr ""
+
+#: peigen.c:1254 pepigen.c:1254 pex64igen.c:1254
+#, c-format
+msgid ""
+"\n"
+"There is a first thunk, but the section containing it could not be found\n"
+msgstr ""
+
+#: peigen.c:1415 pepigen.c:1415 pex64igen.c:1415
+#, c-format
+msgid ""
+"\n"
+"There is an export table, but the section containing it could not be found\n"
+msgstr ""
+
+#: peigen.c:1424 pepigen.c:1424 pex64igen.c:1424
+#, c-format
+msgid ""
+"\n"
+"There is an export table in %s, but it does not fit into that section\n"
+msgstr ""
+
+#: peigen.c:1430 pepigen.c:1430 pex64igen.c:1430
+#, c-format
+msgid ""
+"\n"
+"There is an export table in %s at 0x%lx\n"
+msgstr ""
+
+#: peigen.c:1458 pepigen.c:1458 pex64igen.c:1458
+#, c-format
+msgid ""
+"\n"
+"The Export Tables (interpreted %s section contents)\n"
+"\n"
+msgstr ""
+
+#: peigen.c:1462 pepigen.c:1462 pex64igen.c:1462
+#, c-format
+msgid "Export Flags \t\t\t%lx\n"
+msgstr ""
+
+#: peigen.c:1465 pepigen.c:1465 pex64igen.c:1465
+#, c-format
+msgid "Time/Date stamp \t\t%lx\n"
+msgstr ""
+
+#: peigen.c:1468 pepigen.c:1468 pex64igen.c:1468
+#, c-format
+msgid "Major/Minor \t\t\t%d/%d\n"
+msgstr ""
+
+#: peigen.c:1471 pepigen.c:1471 pex64igen.c:1471
+#, c-format
+msgid "Name \t\t\t\t"
+msgstr ""
+
+#: peigen.c:1477 pepigen.c:1477 pex64igen.c:1477
+#, c-format
+msgid "Ordinal Base \t\t\t%ld\n"
+msgstr ""
+
+#: peigen.c:1480 pepigen.c:1480 pex64igen.c:1480
+#, c-format
+msgid "Number in:\n"
+msgstr ""
+
+#: peigen.c:1483 pepigen.c:1483 pex64igen.c:1483
+#, c-format
+msgid "\tExport Address Table \t\t%08lx\n"
+msgstr ""
+
+#: peigen.c:1487 pepigen.c:1487 pex64igen.c:1487
+#, c-format
+msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
+msgstr ""
+
+#: peigen.c:1490 pepigen.c:1490 pex64igen.c:1490
+#, c-format
+msgid "Table Addresses\n"
+msgstr ""
+
+#: peigen.c:1493 pepigen.c:1493 pex64igen.c:1493
+#, c-format
+msgid "\tExport Address Table \t\t"
+msgstr ""
+
+#: peigen.c:1498 pepigen.c:1498 pex64igen.c:1498
+#, c-format
+msgid "\tName Pointer Table \t\t"
+msgstr ""
+
+#: peigen.c:1503 pepigen.c:1503 pex64igen.c:1503
+#, c-format
+msgid "\tOrdinal Table \t\t\t"
+msgstr ""
+
+#: peigen.c:1517 pepigen.c:1517 pex64igen.c:1517
+#, c-format
+msgid ""
+"\n"
+"Export Address Table -- Ordinal Base %ld\n"
+msgstr ""
+
+#: peigen.c:1536 pepigen.c:1536 pex64igen.c:1536
+msgid "Forwarder RVA"
+msgstr ""
+
+#: peigen.c:1547 pepigen.c:1547 pex64igen.c:1547
+msgid "Export RVA"
+msgstr ""
+
+#: peigen.c:1554 pepigen.c:1554 pex64igen.c:1554
+#, c-format
+msgid ""
+"\n"
+"[Ordinal/Name Pointer] Table\n"
+msgstr ""
+
+#: peigen.c:1614 peigen.c:1797 pepigen.c:1614 pepigen.c:1797 pex64igen.c:1614
+#: pex64igen.c:1797
+#, c-format
+msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n"
+msgstr ""
+
+#: peigen.c:1621 pepigen.c:1621 pex64igen.c:1621
+#, c-format
+msgid " vma:\t\t\tBegin Address    End Address      Unwind Info\n"
+msgstr ""
+
+#: peigen.c:1623 pepigen.c:1623 pex64igen.c:1623
+#, c-format
+msgid ""
+" vma:\t\tBegin    End      EH       EH       PrologEnd  Exception\n"
+"     \t\tAddress  Address  Handler  Data     Address    Mask\n"
+msgstr ""
+
+#: peigen.c:1697 pepigen.c:1697 pex64igen.c:1697
+#, c-format
+msgid " Register save millicode"
+msgstr ""
+
+#: peigen.c:1700 pepigen.c:1700 pex64igen.c:1700
+#, c-format
+msgid " Register restore millicode"
+msgstr ""
+
+#: peigen.c:1703 pepigen.c:1703 pex64igen.c:1703
+#, c-format
+msgid " Glue code sequence"
+msgstr ""
+
+#: peigen.c:1803 pepigen.c:1803 pex64igen.c:1803
+#, c-format
+msgid ""
+" vma:\t\tBegin    Prolog   Function Flags    Exception EH\n"
+"     \t\tAddress  Length   Length   32b exc  Handler   Data\n"
+msgstr ""
+
+#: peigen.c:1929 pepigen.c:1929 pex64igen.c:1929
+#, c-format
+msgid ""
+"\n"
+"\n"
+"PE File Base Relocations (interpreted .reloc section contents)\n"
+msgstr ""
+
+#: peigen.c:1958 pepigen.c:1958 pex64igen.c:1958
+#, c-format
+msgid ""
+"\n"
+"Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n"
+msgstr ""
+
+#: peigen.c:1971 pepigen.c:1971 pex64igen.c:1971
+#, c-format
+msgid "\treloc %4d offset %4x [%4lx] %s"
+msgstr ""
+
+#. The MS dumpbin program reportedly ands with 0xff0f before
+#. printing the characteristics field.  Not sure why.  No reason to
+#. emulate it here.
+#: peigen.c:2010 pepigen.c:2010 pex64igen.c:2010
+#, c-format
+msgid ""
+"\n"
+"Characteristics 0x%x\n"
+msgstr ""
+
+#: peigen.c:2310 pepigen.c:2310 pex64igen.c:2310
+msgid "%B: unable to fill in DataDictionary[1] because .idata$2 is missing"
+msgstr ""
+
+#: peigen.c:2330 pepigen.c:2330 pex64igen.c:2330
+msgid "%B: unable to fill in DataDictionary[1] because .idata$4 is missing"
+msgstr ""
+
+#: peigen.c:2351 pepigen.c:2351 pex64igen.c:2351
+msgid "%B: unable to fill in DataDictionary[12] because .idata$5 is missing"
+msgstr ""
+
+#: peigen.c:2371 pepigen.c:2371 pex64igen.c:2371
+msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing"
+msgstr ""
+
+#: peigen.c:2413 pepigen.c:2413 pex64igen.c:2413
+msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing"
+msgstr ""
+
+#: peigen.c:2438 pepigen.c:2438 pex64igen.c:2438
+msgid "%B: unable to fill in DataDictionary[9] because __tls_used is missing"
+msgstr ""
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/id.gmo ./bfd/po/id.gmo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/id.gmo	2018-01-02 02:07:01.000000000 +0000
+++ ./bfd/po/id.gmo	2018-01-09 02:08:39.000000000 +0000
@@ -1,38 +1,58 @@
-Þ•gT‹Œ6¸H¹HÒHñHI$I3@ItI%”IºIAÊI&J3JLJeJ~JŽJ ­JÎJîJKK*0K9[K6•K;ÌKLFL6aL:˜L5ÓLJ	M)TMG~MLÆM)NL=NŠN ND·NüNO-O9O	EOOO.dO“O°OÄOàOùOPPP4PHPYPjP{PŒP�P	¬P
¶P
ÄP
-ÒP
-ÝP
-èPóP
-Q$Q
-8Q#CQ%gQ
-�Q˜Q«Q$ÃQèQR! RBRWR
-fR
qR	R‰R
-šR¥R¬RÄRÞRíRSS.SGSVS]SqSŠS£S¸SÌSàSóS6T{>TrºTx-U¦UD¼U*V7,V$dV'‰V*±V!ÜV=þVA<W~W%�WDÃWXJ'X-rX+ X5ÌX(Y,+YPXYE©YFïYF6Z3}Zu±Z%'[M[Ak[n­[K\7h\6 \$×\*ü\@']8h]¨¡].J^<y^9¶^Bð^B3_Tv_TË_T `Tu`‰Ê`<Tam‘a[ÿaP[b<¬bDéb^.cD�c€Òc1SdJ…dIÐd>emYe6Çe3þe-2f `f!�f#£f8Çf)g.*g0Yg>Šg>Ég/h/8hFhh>¯h-îh(iEi7ci1›i0Íi/þi).j/Xj;ˆj<Äj/k-1k&_k3†k3ºkOîkW>lO–loæl5Vm#ŒmE°m>öm25n:hn2£n(Ön+ÿn<+o?hoQ¨o3úo'.p<VpM“pKápD-q!rq:”q7Ïqr.%rTr1tr'¦r%Îr ôrEs4[sH�s?Ùs<tGVt-žt8Ìt2u+8u/du7”uÌu+ìuLv$ev+Šv¶vÔvív
w+(w5Tw@Šw@ËwIxIVx9 x$Úx'ÿx='yQeyD·y1üy5.zdz-�z?¯zAïzE1{$w{-œ{9Ê{4|#9|/]|%�|<³|*ð|'}C}4_}”}4³}è}.ÿ}(.~*W~6‚~2¹~5ì~8"W[Z³B€5Q€=‡€<Å€(�-+�Y�Ps� Ä�@å�k&‚4’‚;Ç‚$ƒ(ƒ2EƒOxƒKÈƒG„`\„Y½„S…<k…1¨…5Ú…g†ax†lÚ†FG‡-Ž‡2¼‡3ï‡3#ˆ1Wˆ-‰ˆD·ˆBüˆ6?‰*v‰2¡‰.Ô‰*Š(.ŠJWŠ4¢ŠD×ŠC‹C`‹E¤‹^ê‹)IŒ+sŒ$ŸŒ&ÄŒ+ëŒ=�,U�‚�+ �Ì�-â�+Ž<Ž,[Ž*ˆŽ2³Ž"æŽ"	�-,�,Z�G‡�GÏ�G�(_�@ˆ�DÉ�2‘4A‘7v‘:®‘7é‘-!’5O’/…’*µ’1à’;“WN“-¦“Ô“%ò“2”2K”=~”;¼”Bø”A;•:}•2¸•ë•›–.§–Ö–#ö–>—=Y—G——7ß—9˜6Q˜/ˆ˜C¸˜Qü˜N™n™}™’™#¨™2Ì™&ÿ™&šM5šTƒš2Øš|›(ˆ›[±›+
œ/9œ(iœR’œFåœF,�:s�6®�Då�7*ž*bž-�ž0»žAìžH.Ÿ>wŸ+¶ŸIâŸ;, h ;ˆ ;Ä .¡./¡=^¡Iœ¡.æ¡/¢@E¢*†¢)±¢;Û¢£>5£Bt£*·£lâ£@O¤?�¤GÐ¤F¥J_¥Hª¥Kó¥G?¦B‡¦XÊ¦4#§/X§Nˆ§0×§(¨/1¨a¨t¨Ž¨¢¨0´¨=å¨D#©0h©5™©)Ï©7ù©1ªKª'jª&’ª[¹ªG«O]«9­«>ç«2&¬5Y¬P�¬=à¬/­oN­\¾­;®W®	Z®/d®”®;¤®à®ð®¯¯.¯E¯	b¯"l¯%�¯$µ¯+Ú¯#°,*°:W°’°.®°4Ý°	±"±?±V±i±%„±%ª±(Ð±&ù±( ²I² h² ‰²#ª²Î²Þ²õ²)³5³#K³#o³-“³1Á³Aó³Y5´\�´;ì´)(µ-Rµ$€µ¥µ%ºµàµøµ5¶K¶
-`¶#k¶�¶¨¶Ã¶Ø¶å¶ô¶
·/ ·+P·8|·µ·"Ô·I÷·%A¸g¸z¸$Œ¸±¸Î¸Þ¸ô¸¹&¹	7¹A¹J¹S¹
-j¹"u¹%˜¹¾¹Ê¹ê¹)ÿ¹/)ºYº.xº,§ºÔº:ðº%+»%Q»w»=�»CÎ»<¼BO¼1’¼8Ä¼5ý¼53½?i½3©½4Ý½>¾5Q¾2‡¾<º¾3÷¾"+¿[N¿?ª¿ê¿	À$(À)MÀwÀ€À*›À&ÆÀíÀÁÁ0Á$IÁnÁ€Á2›Á$ÎÁ&óÁÂ!:Â\ÂDvÂD»Â/Ã0Ã/BÃ?rÃ²ÃÃÃãÃJúÃ7EÄ}Ä*—ÄÂÄÚÄöÄÅ"ÅBÅ%ZÅ€Å“Å°ÅÍÅJåÅJ0ÆJ{ÆIÆÆ:Ç;KÇ:‡ÇEÂÇ6È9?È7yÈ9±ÈQëÈ/=ÉBmÉ@°É.ñÉ= Ê&^Ê.…Ê/´Ê-äÊiËD|ËdÁËF&ÌfmÌCÔÌÍ#7Í@[Í8œÍ7ÕÍ
Î-Î?ÎQÎ<fÎ2£Î.ÖÎÏÏd4Ï™Ï%¶ÏÜÏùÏ4Ð'JÐ7rÐ]ªÐÑ!!Ñ-CÑ+qÑ+�Ñ	ÉÑ	ÓÑ
-ÝÑ'èÑ"Ò$3Ò]XÒ=¶Ò(ôÒZÓZxÓEÓÓAÔG[ÔW£ÔWûÔ4SÕ9ˆÕ4ÂÕ2÷Õ7*Ö5bÖ7˜Ö.ÐÖ2ÿÖ 2×.S×@‚×:Ã×#þ×N"Ø-qØOŸØ ïØ1Ù&BÙiÙ&|Ù!£ÙÅÙ,äÙ7Ú
IÚWÚ7jÚ¢Ú$ÂÚ"çÚA
-ÛLÛ,jÛ2—ÛÊÛÚÛõÛBÜDSÜ*˜ÜLÃÜ Ýy1Ý0«Ý%ÜÝ2ÞO5Þ…Þ*¤Þ ÏÞðÞß$ß1ß Kßlß€ß•ß«ß¿ßÕßìßNýß)Là6và­à8Íàáá,á@áTáháL|á ÉáDêá&/â Vâ#wâ(›â9Äâþâ3ã!Mãoã%vã'œã$Äã0éã,äGäOä
gäuä'�äµäÏäæäøäå7&å^åwå‰åœå-°ågÞåxFæ-¿æ!íæ7çGç!`ç;‚ç0¾ç5ïç2%è.Xè=‡è/Åè6õè,,évYéÐêçêëë$.ë3Së!‡ë(©ëÒëAâë&$ìKìdìì˜ì¨ì Çìèìíí/í(Fí4oí=¤í;âíîB1î/tî4¤î/ÙîH	ï*RïC}ïFÁï"ðF+ðrð…ðI—ðáðñññ
*ñ8ñ-Oñ}ñ™ñ¯ñËñæñíñòò!ò5òEòUòeòuò…ò	œò
¦ò
´ò
-Âò
-Íò
-Øòãò
-öò*ó
-,ó'7ó"_ó
-‚ó�ó¥ó*ºóåóô"ô>ôSôbônôôŒôŸô«ô²ôÂôÜôëô"õ&õ=õ[õjõqõ…õžõ¹õÎõâõöõ	ö;$ö}`örÞözQ÷Ì÷Uæ÷,<ø6iø+ ø)Ìø*öø$!ùAFùGˆù-Ðù&þù?%ú"eúYˆú1âú/û3Dû/xû5¨ûUÞûB4üMwüMÅü>ýRý/Òý%þK(þotþLäþ91ÿ@kÿ(¬ÿ.ÕÿH9M¯‡.7=f:¤NßA._pWÐ_(Wˆ›à=|}ºd8M�?ëH+stHè�12ÂPõNF>•xÔ8M	5†	:¼	&÷	'
-%F
-?l
-)¬
-4Ö
-7ECE‰3Ï-F1>x2·,ê#
;;
Gw
B¿
.)1.[7ŠFÂ2	1<'n9–9Ð\
-dg^ÌŒ+7¸.ðH?h5¨MÞ5,*b1�C¿JYN.¨'×CÿMCF‘KØ%$QJNœ#ë/#?=c)¡%Ë ñG;ZP–=çG%Km1¹Eë:16l0£9Ô'16Sh#¼0à!3'Q y8šAÓLLb\¯]Dj,¯)ÜBQIH›6ä4 P 1m >Ÿ KÞ V*!(�!-ª!:Ø!3"$G"+l"*˜"JÃ"3#*B#!m#<�# Ì#8í#&$5?$0u$4¦$>Û$<%?W%D—%iÜ%nF&Tµ&?
-'LJ'G—'-ß'3
(A(Q^(,°(CÝ(x!)3š)CÎ)"*$5*6Z*\‘*Pî*J?+nŠ+où+ai,IË,/-/E-tu-vê-ya.LÛ.2(/=[/2™/2Ì/8ÿ//80Gh0G°0=ø0(618_14˜10Í1+þ1O*23z2G®2Fö2E=3Hƒ3aÌ31.43`4+”43À4.ô4>#53b5!–50¸5é5764?6$t62™63Ì637#47#X7.|7-«7QÙ7K+8Qw8/É8Fù8H@96‰98À9:ù9:4:Ao:6±:9è:6";1Y;@‹;JÌ;b<5z< °<,Ñ<8þ<87=Lp=B½=I>GJ>A’>8Ô>
?¿-?<í?%*@#P@Gt@H¼@HAFNA>•A:ÔA9BCIBc�B)ñB
C)C@C;XC9”C)ÎCøCJDfRD6¹D…ðD+vEb¢E1F=7F0uFU¦FLüFLIGC–GGÚGK"H?nH*®H)ÙH7IC;IRIMÒI9 JZZJKµJ'KM)KMwK7ÅK7ýKH5LW~L1ÖL0MH9M1‚M*´M<ßMN=8NCvN.ºNuéNK_OK«OU÷OTMPX¢PQûP`MQO®QGþQgFRE®R8ôRX-S4†S(»S>äS #T&DTkT…T+˜TAÄTNU.UU5„U0ºUEëU1V$QV(vV'ŸVfÇVK.W_zWCÚW?X2^X8‘XfÊXH1Y6zY‡±Yl9ZF¦ZíZðZ'[*[@:[{[‹[œ[®[À[ Ù[ú[&
-\(1\(Z\Dƒ\'È\/ð\? ]`]3}]<±]î]!ú]^2^.E^-t^-¢^0Ð^._00_&a_(ˆ_(±_+Ú_``,`0E`v`%‹`-±`4ß`>aFSajša]b=cb(¡b/Êb$úbc)4c#^c‚c;ŸcÛc	ïc/ùc)d>dZdtd‰dšd
¸d;Æd0e<3epe$�eG²e'úe"f9f$MfrfŽfžf´f&Ìfóf	gg!g"-gPg0]g-Žg
¼g Êgëg1h73h+kh5—h2Íhi:i%Wi%}i£iE½iKjCOjI“jBÝjD k@ekA¦kMèk>6l@ulL¶l@m>DmJƒm>Îm$
na2nN”nãn)o$+o7Poˆo‘o0¬o3Ýop+p>p Rp(spœp®p8Ìp'q/-q"]q)€qªqLÈqLrCbr¦r-¿rDír
2s@s`sR{s@Îst2)t\t#yt�t »t+Ütu&$uKu buƒu¡uY¿uZvQtvJÆvBwDTw8™wQÒw6$xJ[xH¦xJïxb:y@�yVÞyQ5z0‡zM¸z6{?={,}{5ª{sà{HT|l�|N
-}tY}ZÎ}%)~)O~My~AÇ~>	!Hj|Ž:¤=ß3€'Q€y€p•€�$"�$G�&l�@“�6Ô�L‚mX‚Æ‚$ß‚2ƒ07ƒ0hƒ	™ƒ	£ƒ
-­ƒ'¸ƒ)àƒ&
-„l1„Dž„&ã„V
-…]a…D¿…G†BL†U�†Uå†4;‡9p‡4ª‡4ß‡Dˆ7YˆD‘ˆ*Öˆ*‰ ,‰/M‰B}‰DÀ‰)ŠV/Š1†ŠP¸Š(	‹52‹+h‹”‹)¬‹%Ö‹'ü‹4$Œ<YŒ–Œ©Œ=ÂŒ�"�&B�Fi�%°�-Ö�:Ž?ŽOŽkŽBˆŽEËŽ-�G?�!‡�†©�/0�&`�1‡�W¹�*‘-<‘!j‘#Œ‘°‘Ì‘Ý‘ø‘’+’@’V’j’€’—’Gª’$ò’9“#Q“/u“¥“½“Ö“ï“	””S8”(Œ”Pµ”3•&:•0a•5’•FÈ•–=/–,m–š–-¡–/Ï–+ÿ–6+—0b—
“— ¡—Â—!Ø—3ú—".˜Q˜p˜ˆ˜¥˜7½˜õ˜™#™4™-F™|t™Œñ™7~š&¶šCÝš!!›)C›Dm›B²›Cõ›49œ0nœFŸœ8æœ>�D^�ÌK5ë¥'¹z°™×�’L:Ÿ¨4Áàù�ìø±æmItôJß\ÎBûfï»A6Ûå¼Éß(šLcÙ­ne¨__É¸·/ò»±G
º³‰†U9â2�	TŒ ‡¬uQéENÈ–N¦bA™©BÙ�ó¢£0V=~ŠëgÜ!8s+j´µ1Ó@{°!ô›Óƒ$„²,î®øL	”æ[aoC:Ñ”z‰ JJD>RîÜßÞÊr¸�r.®À?©KYJ‰åÕÏ¡õÇÖ�Np6›Ÿ`äöxÂ`µÄp5,U<øôX³AêØý1/§_ÀâÍUãçíD-`}n‘Ö'#ØËÜfocq³R´ÒaHÐùìZ/]Wöo,œ^ÞÃŽ–:üéÆ}"dKXI2*Sœq‘\ñY�aR�|÷pèêª_ºÁ+ ÌUŽ@Ïæþz}¤Ýqmú²Ë"Hžh×{EÆ�†‡¼Mðcœˆ&RW×lÔÄ*ÇjÓiV�.¦MÚ=B…îÑÂõ£èÈãÃÃ%í|*ûàöÛ  C^ävk¡¿D2�»È3FPÖžÊ…$«%Ì—KX@Æå"tHŒ¯ûš!½Ÿe
-Ô.ƒ(¢½
¶§’ˆW‹~ˆGL[™h'\«l*#!Í$ÎÿGw6+“Sÿx
Iá’t>c\äY`yý<gk-Y)˜g,Œ� •Q¨žuçáÅéïiºFv]ËÇ8ŽI¦”ü–d<6„4Ø1ð;®y#
->e¿—lþª÷dw„¿g|¥N�9Ð%)Vr¥¼Z]è›07þó'Ù°ñ&:iVÊÑü´[÷ÀÉ•¶¬ÏC8bÚ3ëEò&
-¾$“M¤7(‚“ŠÍO4f;¯¡ƒv•ÝjšCH1‹ðÕ—m83¸ú)0	 =ú€
7	P-/-Sf€w2�Â3[.TQEá;%;s@F·«4ÿ?¤=A¹€ê0¶ýò½ùb5dªb(Î^)‚&Ò7·¬�D~ìÔ£­n‹sP9
-Q9S?‘çÞ#Ò…²ÄïThO]5íÁóµÅW?FÐ>¾u˜"‡ÅÛÚ©O^a˜kZŠ¹õ<PT‚X¢†yâxGñ¯§{Õ­¾àãB±O+ZÝMe	Export Address Table 			Export Address Table 		%08lx
+Þ•!$)Ù,R�m‘mªmÉmàm$óm3nLn%ln’nA¢n&äno$o=oVofo …o¦oÆoßoöo	p*!p9Lp6†p;½pùpFq6Rq:‰q5ÄqJúq)ErGorL·r)sL.s{s‘sD¨sístt2tJt3it�t0´tåtõtu+u+Ku+wu#£uÇußuèuôuv)v@v`v}v–v±vÑvêvww3w,Gwtw„w�wµwÌwÛwñwx1"xTxexrx‰x¤x#¼x+àx&y53yiy�y›y±yËyäyûy$z6zOzoz‡z$œzÁzÕzêz<{@{O{
^{l{€{ ˜{¹{Ô{ä{| |@|Y|r|…|*‘|¼|Î|&à|}0}L}"`}	ƒ}�}# }Ä}Ý}î}~" ~C~"W~#z~#ž~Â~#×~#û~.,[ain
+‹–›!¡ Ãäéî€.€3€G€ L€m€t€z€€„€Š€Ž€“€¯€È€Í€í€�!�A�F�K�R�X�]�o�v�Š�‘�ª�¾�Ï�à�ñ�‚‚	"‚
,‚
:‚
+H‚
+S‚
+^‚i‚
+~‚‰‚$�‚
+µ‚#À‚%ä‚
+
+ƒƒ(ƒ$@ƒeƒƒƒ!�ƒ¿ƒÔƒ
+ãƒ
îƒ	üƒ„
+„"„)„A„[„j„�„œ„«„Ä„Ó„Ú„ê„þ„(…/@…p…‰…›…°…+¿…ë…A†I†c†}†—†8¬†å†ý†‡&,‡S‡r‡†‡2¡‡Ô‡?î‡&.ˆUˆtˆ(‡ˆ°ˆ"Äˆçˆ*‰62‰{i‰rå‰xXŠÑŠDçŠ*,‹7W‹$�‹'´‹*Ü‹!Œ=)ŒAgŒE©ŒïŒ%�D4�.y�,¨�*Õ�%Ž4&Ž[Ž>zŽG¹Ž�J
+�5U�8‹�(Ä�,í�P�Ek�F±�Fø�3?‘<s‘%°‘AÖ‘n’K‡’7Ó’*“86“.o“<ž“9Û“@”HV”BŸ”Jâ”B-•Tp•TÅ•T–To–‰Ä–<N—m‹—[ù—PU˜<¦˜Dã˜^(™D‡™€Ì™1MšJšIÊš>›mS›6Á›mø›!fœ#ˆœ8¬œ)åœ.�0>�>o�>®�/í�/žFMž>”ž-Óž(Ÿ*Ÿ7HŸ1€Ÿ0²Ÿ/ãŸ) /= ;m <© <æ /#¡-S¡&�¡3¨¡3Ü¡O¢W`¢O¸¢o£+x£5¤£#Ú£7þ£E6¤>|¤2»¤:î¤2)¥(\¥+…¥<±¥?î¥Q.¦3€¦'´¦=Ü¦<§MW§K¥§Dñ§!6¨:X¨7“¨Ë¨.é¨©18©'j©%’© ¸©EÙ©4ªHTª?�ª<ÝªG«-b«7�«1È«8ú«23¬+f¬/’¬7Â¬ú¬+­LF­$“­+¸­ä­®®;®+V®5‚®@¸®@ù®I:¯I„¯9Î¯$°,-°'Z°=‚°QÀ°D±1W±5‰±¿±2Ü±.²?>²A~²EÀ²$³9+³5e³&›³4Â³1÷³$)´$N´/s´%£´<É´*µ'1µ3Yµ&�µ´µ4Ðµ¶4$¶Y¶.p¶(Ÿ¶*È¶6ó¶2*·5]·8“·WÌ·Z$¸B¸5Â¸=ø¸<6¹(s¹-œ¹0Ê¹û¹Pº fº@‡ºkÈº44»;i»$¥»'Ê»ò»2¼OB¼K’¼GÞ¼`&½A‡½YÉ½S#¾<w¾g´¾a¿l~¿Fë¿-2À2`À(“À3¼À1ðÀ-"ÁDPÁB•Á6ØÁ*Â2:Â.mÂ*œÂ(ÇÂðÂ4ÃD@ÃC…ÃCÉÃE
Ä^SÄ]²Ä)Å+:Å$fÅ)‹Å8µÅ:îÅ&)Æ&PÆ2wÆ+ªÆ=ÖÆ,ÇAÇ+_Ç‹Ç-¡Ç+ÏÇûÇ*È2EÈ"xÈ#›È"¿È-âÈ,ÉG=ÉG…ÉGÍÉ(Ê@>ÊDÊ2ÄÊ7÷Ê5/Ë/eË*•Ë1ÀË;òËW.Ì-†Ì-´ÌâÌ)Í%*Í2PÍ2ƒÍ=¶Í;ôÍB0ÎAsÎ:µÎ2ðÎ?#ÏcÏ›ƒÏ6Ð6VÐA�ÐGÏÐ6Ñ=NÑ:ŒÑ:ÇÑDÒ8GÒ9€ÒCºÒ:þÒ79Ó8qÓ9ªÓ,äÓ6ÔHÔ;dÔ: Ô.ÛÔ
+Õ1*Õ$\Õ5�Õ9·ÕOñÕ#AÖ1eÖC—Ö6ÛÖ(×&;×:b×#�×'Á×pé×'ZØ1‚Ø;´Ø£ðØ7”Ù(ÌÙ5õÙ8+Ú>dÚ £ÚÄÚ!âÚ Û%%ÛbKÛ'®Û)ÖÛ=ÜG>Ü%†Ü*¬Ü0×Ü&Ý&/Ý7VÝ8ŽÝ9ÇÝ6Þ/8ÞChÞQ¬ÞþÞß-ßBß2Xß&‹ß²ßMÁßTà2dà|—à(á[=á+™á/Åá(õáRâFqâF¸â:ÿâ6:ãDqã7¶ã*îã-ä0GäAxäHºä>å+BåInå;¸åôå;æ;Pæ.Œæ.»æ=êæI(ç.rç/¡ç@Ñç*è)=è;gè£è>ÁèBélCé@°é?ñéG1êFyêJÀêHëKTëG ëBèëX+ì4„ì/¹ìNéì08í(ií/’íÂíÕíéí0ûí=,îDjî0¯î5àî)ï7@ïxï’ï'±ï&Ùï[ðG\ðO¤ð9ôð.ñ>Nñ2�ñ5ÀñPöñ=Gò/…òoµò%ó
9óGó
Sóaó%ró\˜ó;õó1ôCôYô\ôyô†ô	Ÿô©ô»ô,Èôõô	õ/õOõ;_õ›õ°õÀõÉõÝõòõöö	;ö"Eö+hö#”ö,¸ö:åö ÷2÷.N÷4}÷?²÷=ò÷	0ø":ø]øtø}ø�ø”ø¦ø¸ø'Êøòø ù#0ùTùnù$€ù$¥ù$Êù'ïù%ú'=úeúƒú£ú"Ãúæúöúû û7û)Mûwû#�û#±û-Õû8ü1<üAnü.°üYßü_9ý;™ý)Õý!ÿý$!þFþH[þ%¤þÊþ5çþÿ
+2ÿ"=ÿ`ÿrÿ‹ÿ¦ÿ»ÿÈÿ×ÿ
õÿ/+E8qªÀß'ñ+.I-xG¦3î""AId%®Ôçù":L$eŠ§5¹ï#9Kk…–¥·	¾ÈÑ
+è"ó%<HWnŠ ²Òë1I-g•§¹Îè)/Gw‰›¢!©.Ë,ú':C%~%¤Ê=ãC!	=e	"£	[Æ	?"
+b
+�
+)ž
+È
+Ñ
+*ì
+&)Pp‚‰(�¹'Ëó(H#`$„,©.Ö,
.2
a
"~
,¡
.Î
!ý
10Q2‚,µ.â#5U(i/’!Âä(#*+Nz,“ Àáú.N#m-‘"¿âô7Pew2’$Å&ê	1!;]DwD¼/1/C?s³ÄäûJ7bš*´ß÷%6L#i%�³ÆãJJ]J¨Ió:=;x:´Eï659l7¦9ÞQ/jBš@Ý.=M&‹.²/á-i?D©dî,SF€fÇC.r#‘@µ8ö7/g	‡‘­¿Ñ<æ2# .V … � ¤ ¼ dÔ 9!6L!@ƒ!=Ä!d"gg"bÏ"=2#Ep#1¶#(è#$$6$4L$'�$$©$7Î$%%/%F%W%o%‡%™%«%½%Ï%é%&&'&?&^&2}&°&-É&+÷&+#'*O'	z'	„'
+Ž'™'®'½'Ò'á'1æ'(7('V("~(¡(¿(Ô(Ý(]û(=Y)(—)ZÀ)Z*Ev*A¼*Gþ*WF+Wž+9ö+90,4j,9Ÿ,4Ù,2-7A-5y-7¯-.ç-2. I.[j.@Æ.:/#B/=f/<¤/Ná/-00O^0 ®0>Ï091
+H11S1&…1&¬1!Ó1õ1,27A2
y2‡2š2®2Á27Ô23$,3"Q3At3¶3,Ô32444¾D4»5¿5Ú5õ5B6DX6*�6LÈ67*7y97³70»7ì78888298Ol8¼8*Û8 9'9KE9‘9ž9 ¸9Ù9í9::,:B:Y:v:‡:›:N£:ò:#ö:6;Q; q;8’;Ë;Ý;í;õ;
+<<2<F<Y<Ll< ¹<DÚ<=1=D=3_=!“=µ="¼=ß=ï=þ=%>'7>$_>)„>*®>Ù>0õ>,&?S?q?‹?“?
«?%¹?ß?'÷?@9@P@b@y@7�@È@á@ó@AA.ADA-cA)‘A>»AgúAxbB-ÛB!	C7+CcC!|C;žC0ÚC5D<AD<~D2»D/îD.E=ME/‹E6»E,òEÆFæGýGH1H$DH3iH!�H(¿HèHAøH&:IaIzI•I®I¾I ÝIþIJ7JLJ^J(uJ4žJ=ÓJ;KMKB`K/£K4ÓK/LH8L*�LC¬LFðL"7MFZM¡M´MIÆMN/NANZNrN3‘NÅN0ÜN
OO6O+PO+|O+¨O#ÔOøOPP%PCPZPqP‘P®PÇPâPQQ6QLQdQ,xQ¥QµQÎQæQýQR"R<R1SR…R–R£RºRÕR#íR+S&=S5dSšS²SÌSâSüST,T$BTgT€T T¾T$ÓTøT
U"U<;UxU‡U
–U¤U¸U ÐUñUVV<VXVxV‘VªV½V*ÉVôVW&W?W0SW„W"�W
ÀWÎW#áWXX/XHX"aX„X"˜X#»X#ßXY#Y#>YbY-oY�Y£Y«Y°Y
+ÌY×YÜY!âY#Z(Z-Z2ZRZrZwZ�Z ’Z³ZºZÀZÅZÊZÐZÔZÙZõZ[[5[I[i[‰[Ž[“[š[ [¥[·[¾[Ò[Ù[ò[\\&\6\F\V\	m\
w\
…\
+“\
+ž\
+©\´\
+Ç\Ò\*Ù\
+]']"7]
+Z]e]}]*’]½]Û]"ó]^+^:^F^W^d^w^ƒ^Š^š^´^Ã^"Û^þ^_3_B_I_Y_m_(†_/¯_ß_ú_`!`+0`\`Ax`º`Ô`î`a8aWapa‰a&£aÊaéaýa2bKb?eb&¥b'Ìbôb(c0c"Kc'nc*–c;Ác}ýcr{dzîdieUƒe,Ùe6f+=f)if*“f$¾fAãfG%gEmg-³g&ág?h.Hh*wh.¢h-Ñh5ÿh"5iDXiN�iìiYõi3Oj8ƒj/¼j5ìjU"kBxkM»kM	l>WlI–l/àlKmo\mLÌm9n.Sn9‚n.¼n=ën:)oDdoH©oFòoJ9pN„p_ÓpW3q_‹qWëq›Cr=ßr}sd›sMt?NtHŽts×tHKu�”u2%vPXvN©v>øvx7w8°wméw'Wx%x?¥x)åx4y7DyE|yEÂy3z-<zFjz>±z2ðz,#{#P{;t{G°{Bø{.;|)j|.”|7Ã|Fû|FB}2‰}1¼}'î}9~9P~\Š~dç~^LŒ«+8€7d€.œ€9Ë€H�?N�5Ž�MÄ�5‚*H‚1s‚C¥‚Jé‚Y4ƒ.Žƒ'½ƒDåƒC*„Mn„F¼„K…%O…Qu…NÇ…#†/:†#j†=Ž†)Ì†%ö† ‡G=‡;…‡PÁ‡=ˆGPˆK˜ˆ1äˆD‰7[‰E“‰:Ù‰6Š0KŠ9|Š'¶Š1ÞŠS‹#d‹0ˆ‹!¹‹Û‹'ù‹ !Œ8BŒA{ŒL½ŒL
+�\W�]´�DŽ,WŽ-„Ž)²ŽBÜŽQ�Hq�6º�4ñ�&�/C�2s�>¦�Kå�V1‘(ˆ‘:±‘6ì‘.#’3R’C†’/Ê’&ú’+!“*M“Jx“3Ã“*÷“@"”,c”!�”<²” ï”8•I•5b•0˜•4É•>þ•<=–?z–Dº–iÿ–ni—TØ—?-˜Lm˜Gº˜-™30™=d™¢™Q¿™,šC>šx‚š3ûšC/›"s›/–›$Æ›6ë›\"œPœJÐœn�BŠ�oÍ�a=žIŸžtéžv^ŸyÕŸLO 2œ =Ï )
¡27¡8j¡/£¡GÓ¡G¢=c¢(¡¢8Ê¢4£08£+i£•£3´£Gè£F0¤Ew¤H½¤a¥`h¥1É¥3û¥+/¦0[¦FŒ¦HÓ¦.§3K§;§.»§>ê§3)¨!]¨0¨°¨7Î¨4©$;©3`©3”©#È©$ì©#ª.5ª-dªQ’ªKäªQ0«/‚«F²«Hù«6B¬:y¬9´¬6î¬1%­@W­J˜­bã­5F®5|® ²®.Ó®,¯8/¯8h¯L¡¯Bî¯I1°G{°AÃ°8±A>±€±¿ ±6`²6—²HÎ²N³Gf³I®³Eø³F>´R…´CØ´EµQbµE´µCúµC>¶E‚¶;È¶7·<·>\·?›·<Û·%¸1>¸,p¸3�¸3Ñ¸T¹#Z¹7~¹H¶¹:ÿ¹,:º*gº:’º*Íº0øºz)»)¤»;Î»B
+¼ªM¼8ø¼;1½5m½8£½GÜ½ $¾"E¾)h¾+’¾4¾¾ró¾.f¿+•¿HÁ¿H
+À&SÀ+zÀ0¦À!×À1ùÀF+Á0rÁ>£Á:âÁ9ÂCWÂc›Â)ÿÂ
)Ã7ÃNÃ9fÃ) ÃÊÃJÙÃf$Ä6‹Ä…ÂÄ+HÅbtÅ1×Å=	Æ0GÆUxÆLÎÆLÇChÇG¬ÇKôÇ?@È*€È)«È7ÕÈC
ÉRQÉM¤É9òÉZ,ÊK‡Ê'ÓÊMûÊMIË7—Ë7ÏËHÌWPÌ1¨Ì0ÚÌHÍ1TÍ*†Í<±ÍîÍ=
+ÎCHÎuŒÎKÏKNÏUšÏTðÏXEÐQžÐ`ðÐOQÑG¡ÑgéÑEQÒ8—ÒXÐÒ4)Ó(^Ó>‡Ó ÆÓçÓÔ+ÔA@ÔN‚Ô.ÑÔ5Õ06ÕEgÕ­Õ$ÍÕ(òÕ'ÖfCÖKªÖ_öÖCV×š×?º×2ú×8-ØffØHÍØ6Ù‡MÙÕÙ
éÙ÷Ù

+ÚÚ%)ÚlOÚF¼ÚÛÛ+Û.ÛJÛWÛwÛ‰Û¢Û,¯ÛÜÛðÛ'Ü.Ü@>ÜÜ”Ü¤Ü­Ü¾ÜÐÜâÜ ûÜÝ&,ÝDSÝ'˜Ý/ÀÝ?ðÝ0ÞBÞ3_Þ<“Þ?ÐÞ=ßNß!Zß|ß’ß›ßŸß²ßÄßÖß'èßà -à#NàràŒà-žà,Ìà,ùà/&á-Vá/„á%´á'Úá'â**âUâeâzâ•â«â0Äâõâ%
+ã-0ã4^ã?“ã>ÓãFä3Yäj�ä`øä=Yå(—å!Àå$âåæHæ)eæ�æ;¬æèæ	üæ.ç5çGç\çxç’ç§ç¸ç
Öçäç;öç02è<cè è¶èÕè'çèé!é.?é-néGœé3äéê$5êGZê'¢êÊêáê#õê"ë<ëNë$gëŒë¨ë5ºëðëìì$ì:ì&Rìyì“ì¤ì³ìÅì	ÌìÖì"âìí0í-Cí
qííŽí¥íÁí×íéí	î"îBîVîhî€î-žîÌîÞîðîï ï@ï1Vï7ˆïÀïÒïäïëïòï5ð2Gðzð:–ð%Ñð%÷ðñE7ñK}ñKÉñ$òa:òNœòëò	ó7&ó^ógó0‚ó³ó3Åó*ùó$ô6ô=ô(Dômô'ô§ôÄôÜôüô#õ$8õ,]õ.Šõ,¹õ.æõö"2ö,Uö.‚ö!±ö1Óö0÷26÷,i÷.–÷#Å÷é÷	ø(ø/Fø!vø˜ø(µø#Þø+ù.ù,Gù tù•ù®ùÎùâùú#!ú-Eú sú”ú¦úÀúÓú çúûû/û8Mû'†û/®û"Þû	ü)ü5üLSüL üCíü1ý-JýDxý
½ýËýëýþþR"þ@uþ¶þ2Ðþÿ ÿ@ÿ^ÿ zÿ(›ÿ#Äÿ&èÿ &GeYwZÑQ,J~BÉD8QQŠ6ÜJH^J§bò@UV–Qí0?Mp6¾?õ,55bs˜HlU,ÂNït>Z³%	)4	M^	A¬	>î	!-
+	O
+Y
+u
+‡
+™
+:¯
+=ê
+3(\'c‹£p¿06C@z=»dùg^
bÆ
=)Eg1­(ß$-@E6†$½Lâ/@Xo€˜¸ÊÜî5GXp�2®á2ú0-0^*�	º	Ä
+ÎÙìû1$Vv'•)½ç#lAD®&óV]qDÏGB\UŸUõ9K9…4¿9ô4.4cD˜7ÝD*Z*… °ZÑB,Do)´BÞ<!V^1µPç(8>a9 
+Ú5å+)G%q'—4¿<ô1D]q„=—Õ"ô&F>%…-«:Ù ¾$ »ã Ÿ!»!Ø!Bø!E;"-�"G¯"÷"#†#¢#/ª#Ú#ô#ü#$$1'$WY$*±$-Ü$!
+%#,%KP%œ%­%È%ç%û%&&&:&P&g&„&—&«&G³&û&#ÿ&9#'#]' �'/¢'Ò'ê'(((1(E(Y(l(S((Ó(Pü(M)_)r)=’),Ð)ý)"*'*7*F*-Y*/‡*+·*)ã**
+8+6T+0‹+¼+ Ú+
û+ 	,*,%@,!f,3ˆ,"¼,ß,þ,-3-7K-ƒ-¡-±-Â-Ô-æ-ú--.2G.>z.|¹.Œ6/7Ã/&û/C"0!f0)ˆ0D²0B÷0C:1<~1<»14ø13-20a2F’28Ù2>3DQ3ê:Š;–Îý#ë¾>ÏÅÏÊýˆ>ñ†)Œô-ÌšúüeÆFR KÔú>N<Ù•º;9/½ÞZ~24ÊlŠbuƒ÷P’‚»O�,æ´è-ÆM³4	‰.¥±Rÿ¡—«ì�”@�€°^Ð
ã÷ª=×äW@©D�
ÇÝL_ð¡ºàßÍœS5¦óà’Ê¿}ti›û(cÁs^8]ñPž]®*º™qûZ7Ë„¹PŸqÀóÛŽïa6Àç¨/TõË{Ev®‚xQÍ¸Ãƒ/œ7ô€ëž›Å¤Ò©cyM!A†¦
+ÿ�ÖÏþî—*Zïu�àXˆ! Èõ&$x.˜„
+.c�ÿ“%^îeÉý‰é00¹�¥#o¿2?“íßHx$úd':a­‚YJ‹íÜUso©˜"öF¯AÐLaT³ì’»t~Ì}ÕØP¸·w`´�øÙ¸õ£ïÂÅ¢EúIÃ°ƒ>$=N&'�j]h[ð¸.jòÓÿÄþFúò�{åãkö°q‚ÝXpkÈNŠòå5ˆ
ï§*…çÖÏÑÑ#ÁŸ';ÄšÞØÂjŽ„®¥a–rÃU¿~¾Û7”'ùÐ¤Ú_%­âévÑÁ­Mhj`ˆC¤né§Sül(•
	ã^|ÁoÇžäCÖ‹ùŠVX)†u=lRF¨nøRzÕYÄ¬b5fšÛN
+—<œðì½T^€|Â¤v¼½pW	—ûþçÐÅÞWã¬f\’T9×pzæþ…b„8[¡1è”K%)ÕCñMtG(,wdå ðwmñÒ:þ»ÿ7EÑ®Ã‘¸ž¾‘$HiêuÔcDŒæ<Æá3I¨›f9 6N@Ø"\#Ÿ·!]åªÏV(ÂÜšÇ�r§p¨ãY; ¼ä)ÛB°D �BÝ]�ŸïÜ
+ñ²Õáô* ³4»gÀ©ÜÍ‡Þ9kíîO…w¦¶Õ¿ý8Y|Ò²åõ÷eÚâë{¢ÓÍsRl¤
&× B6÷Œ�ä!n3 ±#_ªâ¼¯e¯bÉülzä�‹£ë<h_ÈíM†Æ­‰ù.¬3ý«­·?œÎôÒK®|(™ËHiDÉèmmàvîßJT°ó1æ[Úƒ›„¦Æö0DùˆìSüg£\eøµèÌv,é¡4È©ðµÇA
+x{+Ë+†¶yªrd[5±ÂJ>‰XŸ"â¢æZ\¡? ÓALÉ¢G%‘õ+Èrc·�µ2\ÍŠ•«£Q›‡”¥™0<Ëºâs¼gÖ¯�–ø@OoCsçJÔóy€nÔ5¶Ugë}Ý�Ý•;Q"
Pi²I1”ôÎØO}‡B=…`|øof™b6QÌªqpLÄÙ`÷¢K•,“tkyÎÉ
+Ó7òW�ízÔàF0Ž‘Ùi¹¦¹4Où�yG–&Å«£µ±¶2ó×-~}ÚG²Ò‹�?gu/J¨E,!/V¹S3`	dŒnèÖ	ÁéQÜ=€X¾³E˜·fêÊç‘hß+Y-B$Lî:?q¬±'_áÀ“À´9œa%ÊÄòÌ³t…§Œ‡áÚ!Þ“ê-½ÓÑCÇmG8¼‡~ßH�á¥{UÃZ«˜m28ê1´ìØ¿Vƒ13�ŽxÛ¶[’wj—ž‚–6¯kA:‹‰�rÐz&§UW× "ü	»IÙ*¬IHV@d+ûû™ö)´˜KŽh½²ÎºSµöš¾	Export Address Table 			Export Address Table 		%08lx
 	Name Pointer Table 			Ordinal Table 				[Name Pointer/Ordinal] Table	%08lx
 	code-base %08lx toc (loadable/actual) %08lx/%08lx
 	reloc %4d offset %4x [%4lx] %s	vma:  Hint/Ord Member-Name Bound-To
@@ -50,6 +70,8 @@ PE File Base Relocations (interpreted .r
       enum; End+1 symbol: %ld
       struct; End+1 symbol: %ld
       union; End+1 symbol: %ld
+ version array off: %u
+
 Characteristics 0x%x
 
 Dynamic Section:
@@ -96,19 +118,141 @@ Virtual Address: %08lx Chunk size %ld (0
 [Ordinal/Name Pointer] Table
 
 ppcboot header:
-   %s%s %s
+        pc: 0x%08x
+    *unhandled* cmd %u
+    address: 0x%08x, size: %u
+    flags: %u, address: 0x%08x, pd-address: 0x%08x
+    global name: %.*s
+    linkage index: %u, replacement insn: 0x%08x
+    name: %.*s
+    pc: 0x%08x
+    pc: 0x%08x line: %5u
+    psect idx 1: %u, offset 1: 0x%08x %08x
+    psect idx 2: %u, offset 2: 0x%08x %08x
+    psect idx 3: %u, offset 3: 0x%08x %08x
+    psect: %u, offset: 0x%08x %08x
+    routine name: %.*s
+   %02u    %s%s %s
+   (type: %3u, size: 4+%3u):    *unhandled* cmd %u
+   alignment  : 2**%u
+   alloc (len)   : %u (0x%08x)
+   alloc (len): %u (0x%08x)
+   ascii ident   : %.*s
+   binary ident  : 0x%08x
+   bitmap: 0x%08x (count: %u):
+   code address: 0x%08x
+   compile date   : %.17s
+   compiler   : %.*s
+   completion code: %u
+   copyright: %.*s
+   declfile: len: %u, flags: %u, fileid: %u
+   deflines %u
+   entity name   : %.*s
+   entry point: 0x%08x
+   error severity: %x
+   file: %.*s
+   filename   : %.*s
+   flags         : 0x%08x   flags      : 0x%04x   flags: %d, language: %u, major: %u, minor: %u
+   flags: 0x%04x   formfeed
+   id match      : %x
+   image offset  : 0x%08x
+   language name: %.*s
+   linkage index: %u, global: %.*s
+   linkage index: %u, procedure name: %.*s
+   linkage index: %u, procedure: %.*s
+   linkage index: %u, psect: %u, offset: 0x%08x %08x
+   max record size: %u
+   module name    : %.*s
+   module name: %.*s
+   module version : %.*s
+   name          : %.*s
+   name        : %.*s
+   name       : %.*s
+   number of cond linkage pairs: %u
+   object name   : %.*s
+   offset: 0x%08x, val: 0x%08x
+   proc descr : 0x%08x
+   psect index : %u
+   psect index for entry point : %u
+   psect index: %u
+   psect offset: %u
+   psect offset: 0x%08x
+   rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u
+   setfile %u
+   setlnum %u
+   setrec %u
+   signature: %.*s
+   structure level: %u
+   symbol vector offset: 0x%08x
+   symvec offset : 0x%08x
+   title: %.*s
+   transfer addr flags: 0x%02x
+   transfer addr psect: %u
+   transfer address   : 0x%08x
+   vector      : 0x%08x
+   version mask: 0x%08x
+  %s (len=%u+%u):
   %s: 0x%v
+  %u: size: %u, flags: 0x%02x, name: %.*s
+  EEOM (len=%u):
+  EGSD (len=%u):
+  EGSD entry %2u (type: %u, len: %u):   EMH %u (len=%u):   base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x   base_va : 0x%08x
+  bitcount: %u, base addr: 0x%08x
   calls:
+  chgprtoff : %5u
+  codeadroff: %5u, lpfixoff  : %5u
+  fixuplnk: 0x%08x %08x
+  flags: 0x%08x
+  iaflink : 0x%08x %08x
+  image %u (%u entries)
+  image %u (%u entries), offsets:
+  lppsbfixoff: %5u
+  psect start: 0x%08x, length: %u
+  qdotadroff: %5u, ldotadroff: %5u
+  qrelfixoff: %5u, lrelfixoff: %5u
   required from %s:
+  shlextra  : %5u, permctx   : %5u
+  shlstoff  : %5u, shrimgcnt : %5u
+  size : %u
  #: Segment name     Section name     Address
- <EABI version unrecognised> Glue code sequence Register restore millicode Register save millicode [BE8] [FPA float format] [LE8] [Maverick float format] [VFP float format] [Version1 EABI] [Version2 EABI] [Version3 EABI] [Version4 EABI] [Version5 EABI] [abi unknown] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=O32] [abi=O64] [absolute position] [d-float] [dynamic symbols use segment index] [fix dep] [floats passed in float registers] [floats passed in integer registers] [g-float] [has entry point] [interworking enabled] [interworking flag not initialised] [interworking not supported] [interworking supported] [mapping symbols precede others] [memory=bank-model] [memory=flat] [new ABI] [no abi set] [nonpic] [not 32bitmode] [old ABI] [pic] [position independent] [relocatable executable] [software FP] [sorted symbol table] [symbols have a _ prefix] [unknown ISA] [unsorted symbol table] [v10 and v32] [v32] cpusubtype: %08lx
+ %08x 0x%08x 64B <EABI version unrecognised> BPAGE: %u COM COMM Change Protection (%u entries):
+ Code Address Reference Fixups:
+ DEF EXE First address : 0x%08x 0x%08x
+ Fourth address: 0x%08x 0x%08x
+ GBL Glue code sequence LIB Linkage Pairs Referece Fixups:
+ NOMOD NORM OVR PIC QVAL RD REL Register restore millicode Register save millicode SHR Second address: 0x%08x 0x%08x
+ Shareable images:
+ Shared image  : 0x%08x 0x%08x
+ Third address : 0x%08x 0x%08x
+ UNI VEC VECEP WEAK WRT [64-bit doubles] [BE8] [FPA float format] [LE8] [Maverick float format] [VFP float format] [Version1 EABI] [Version2 EABI] [Version3 EABI] [Version4 EABI] [Version5 EABI] [abi unknown] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=O32] [abi=O64] [absolute position] [d-float] [dsp] [dynamic symbols use segment index] [fix dep] [floats passed in float registers] [floats passed in integer registers] [g-float] [has entry point] [interworking enabled] [interworking flag not initialised] [interworking not supported] [interworking supported] [mapping symbols precede others] [memory=bank-model] [memory=flat] [new ABI] [no abi set] [nonpic] [not 32bitmode] [old ABI] [pic] [position independent] [relocatable executable] [software FP] [sorted symbol table] [symbols have a _ prefix] [unknown ISA] [unsorted symbol table] [v10 and v32] [v32] corrupted GST
+ cpusubtype: %08lx
  cputype   : %08lx (%s)
+ debug module table : vbn: %u, size: %u
+ debug symbol table : vbn: %u, size: %u (0x%x)
  filetype  : %08lx (%s)
- flags     : %08lx ( magic     : %08lx
- ncmds     : %08lx
+ fixup info rva:  flags     : %08lx ( flags: 0x%04x global symbol table: vbn: %u, records: %u
+ ident: 0x%08x, name: %.*s
+ ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u
+ image build ident: %.*s
+ image ident      : %.*s
+ image name       : %.*s
+ image type: %u (%s) img I/O count: %u, nbr channels: %u, req pri: %08x%08x
+ link time        : %s
+ linker flags: %08x: linker ident     : %.*s
+ long-word .address reference fixups:
+ long-word relocation fixups:
+ magic     : %08lx
+ majorid: %u, minorid: %u
+ module offset: 0x%08x, size: 0x%08x, (%u psects)
+ ncmds     : %08lx (%lu)
+ offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u
+ quad-word .address reference fixups:
+ quad-word relocation fixups:
  reserved  : %08x
+ section: base: 0x%08x%08x size: 0x%08x
  sizeofcmds: %08lx
- vma:			Begin Address    End Address      Unwind Info
+ type: %3u, len: %3u (at 0x%08x):  unhandled EOBJ record type %u
+ vbn: %u, pfc: %u, matchctl: %u type: %u ( vma:			Begin Address    End Address      Unwind Info
  vma:		Begin    End      EH       EH       PrologEnd  Exception
      		Address  Address  Handler  Data     Address    Mask
  vma:		Begin    Prolog   Function Flags    Exception EH
@@ -117,8 +261,8 @@ ppcboot header:
                  Table   Stamp     Chain    Name      Thunk
 #<Invalid error code>%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections%A has both ordered and unordered sections%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)
 %A:0x%v not found in function table
-%B (%s): Section flag %s (0x%x) ignored%B and %B are for different configurations%B and %B are for different cores%B contains CRIS v32 code, incompatible with previous objects%B contains non-CRIS-v32 code, incompatible with previous objects%B is not allowed to define %s%B section %A exceeds stub group size%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section%B(%A): invalid property table%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link%B(%A+0x%lx): %s reloc against `%s': error %d%B(%A+0x%lx): %s reloc against local symbol%B(%A+0x%lx): %s relocation against SEC_MERGE section%B(%A+0x%lx): %s used with TLS symbol %s%B(%A+0x%lx): %s used with non-TLS symbol %s%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object%B(%A+0x%lx): Stabs entry has invalid string index.%B(%A+0x%lx): automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc%B(%A+0x%lx): cannot handle %s for %s%B(%A+0x%lx): cannot reach %s%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch%B(%A+0x%lx): could not decode instruction; possible configuration mismatch%B(%A+0x%lx): invalid instruction for TLS relocation %s%B(%A+0x%lx): non-zero addend on %s reloc against `%s'%B(%A+0x%lx): reloc against `%s': %s%B(%A+0x%lx): reloc against `%s': error %d%B(%A+0x%lx): relocation %s for indirect function %s unsupported%B(%A+0x%lx): relocation offset out of range (size=0x%x)%B(%A+0x%lx): sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern%B(%A+0x%lx): unexpected fix for %s relocation%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'%B(%A+0x%lx): unresolvable relocation against symbol `%s'%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete
-%B(%A+0x%x): relocation to `%s+%x' may have caused the error above%B(%s): warning: interworking not enabled.
+%B (%s): Section flag %s (0x%x) ignored%B and %B are for different configurations%B and %B are for different cores%B contains CRIS v32 code, incompatible with previous objects%B contains non-CRIS-v32 code, incompatible with previous objects%B has has both the current and legacy Tag_MPextension_use attributes%B is not allowed to define %s%B section %A exceeds stub group size%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section%B(%A): error: call to undefined function '%s'%B(%A): internal error: dangerous relocation%B(%A): internal error: out of range error%B(%A): internal error: unknown error%B(%A): internal error: unsupported relocation error%B(%A): invalid property table%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)%B(%A): warning: unaligned access to symbol '%s' in the small data area%B(%A+0x%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link%B(%A+0x%lx): %s relocation against SEC_MERGE section%B(%A+0x%lx): %s relocation against external symbol "%s"%B(%A+0x%lx): %s used with TLS symbol %s%B(%A+0x%lx): %s used with non-TLS symbol %s%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object%B(%A+0x%lx): Stabs entry has invalid string index.%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section%B(%A+0x%lx): cannot handle %s for %s%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch%B(%A+0x%lx): could not decode instruction; possible configuration mismatch%B(%A+0x%lx): invalid instruction for TLS relocation %s%B(%A+0x%lx): reloc against `%s': error %d%B(%A+0x%lx): relocation offset out of range (size=0x%x)%B(%A+0x%lx): unexpected fix for %s relocation%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'%B(%A+0x%lx): unresolvable relocation against symbol `%s'%B(%A+0x%lx):unexpected ARM instruction '0x%x' in TLS trampoline%B(%A+0x%lx):unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC%B(%A+0x%lx):unexpected Thumb instruction '0x%x' in TLS trampoline%B(%A+0x%lx):unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete
+%B(%s): warning: interworking not enabled.
   first occurrence: %B: ARM call to Thumb%B(%s): warning: interworking not enabled.
   first occurrence: %B: Thumb call to ARM%B(%s): warning: interworking not enabled.
   first occurrence: %B: arm call to thumb%B(%s): warning: interworking not enabled.
@@ -128,38 +272,98 @@ ppcboot header:
   relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC%B, section %A:
   relocation %s should not be used in a shared object; recompile with -fPIC%B, section %A:
   v10/v32 compatible object %s must not contain a PIC relocation%B, section %A: No PLT for relocation %s against symbol `%s'%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?%B, section %A: relocation %s is not allowed for global symbol: `%s'%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?%B, section %A: relocation %s with no GOT created%B, section %A: relocation %s with non-zero addend %d against local symbol%B, section %A: relocation %s with non-zero addend %d against symbol `%s'%B, section %A: unresolvable relocation %s against symbol `%s'%B, section `%A', to symbol `%s':
-  relocation %s should not be used in a shared object; recompile with -fPIC%B: !samegp reloc against symbol without .prologue: %s%B: %A+0x%lx: jump to stub routine which is not jal%B: %s symbol `%s' in %B is referenced by DSO%B: %s symbol `%s' isn't defined%B: %s: invalid needed version %d%B: %s: invalid version %u (max %d)%B: '%s' accessed both as normal and thread local symbol%B: .got subsegment exceeds 64K (size %d)%B: .opd is not a regular array of opd entries%B: .preinit_array section is not allowed in DSO%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32%B: 0x%lx: fatal: reloc overflow while relaxing%B: 0x%lx: fatal: unaligned %s relocation 0x%lx%B: 0x%lx: fatal: unaligned branch target for relax-support relocation%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x%B: 0x%lx: warning: bad R_SH_USES load offset%B: 0x%lx: warning: bad R_SH_USES offset%B: 0x%lx: warning: bad count%B: 0x%lx: warning: could not find expected COUNT reloc%B: 0x%lx: warning: could not find expected reloc%B: 0x%lx: warning: symbol in unexpected section%B: @gprel relocation against dynamic symbol %s%B: @internal branch to dynamic symbol %s%B: @pcrel relocation against dynamic symbol %s%B: ABI is incompatible with that of the selected emulation%B: ABI mismatch: linking %s module with previous %s modules%B: Architecture mismatch with previous modules%B: BE8 images only valid in big-endian mode.%B: Bad relocation record imported: %d%B: CALL15 reloc at 0x%lx not against global symbol%B: CALL16 reloc at 0x%lx not against global symbol%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000).%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch.%B: Cannot handle compressed Alpha binaries.
-   Use compiler flags, or objZ, to generate uncompressed binaries.%B: Corrupt size field in group section header: 0x%lx%B: Failed to add renamed symbol %s%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d%B: GOT overflow: Number of relocations with 8-bit offset > %d%B: GOT reloc at 0x%lx not expected in executables%B: IMPORT AS directive for %s conceals previous IMPORT AS%B: Instruction set mismatch with previous modules%B: Invalid relocation type imported: %d%B: Malformed reloc detected for section %s%B: Not enough room for program headers, try linking with -N%B: Only registers %%g[2367] can be declared using STT_REGISTER%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive%B: Relocation %s (%d) is not currently supported.
-%B: Relocations in generic ELF (EM: %d)%B: TLS local exec code cannot be linked into shared objects%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed%B: The first section in the PT_DYNAMIC segment is not the .dynamic section%B: The target (%s) of an %s relocation is in the wrong section (%A)%B: Too many sections: %d (>= %d)%B: Unable to sort relocs - they are in more than one size%B: Unable to sort relocs - they are of an unknown size%B: Unhandled import type; %x%B: Unknown mandatory EABI object attribute %d%B: Unknown relocation type %d
+  relocation %s should not be used in a shared object; recompile with -fPIC%B: !samegp reloc against symbol without .prologue: %s%B: %A+0x%lx: Direct jumps between ISA modes are not allowed; consider recompiling with interlinking enabled.%B: %s: invalid needed version %d%B: %s: invalid version %u (max %d)%B: '%s' accessed both as normal and thread local symbol%B: .got subsegment exceeds 64K (size %d)%B: .opd is not a regular array of opd entries%B: .preinit_array section is not allowed in DSO%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32%B: 0x%lx: fatal: reloc overflow while relaxing%B: 0x%lx: fatal: unaligned %s relocation 0x%lx%B: 0x%lx: fatal: unaligned branch target for relax-support relocation%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x%B: 0x%lx: warning: bad R_SH_USES load offset%B: 0x%lx: warning: bad R_SH_USES offset%B: 0x%lx: warning: bad count%B: 0x%lx: warning: could not find expected COUNT reloc%B: 0x%lx: warning: could not find expected reloc%B: 0x%lx: warning: symbol in unexpected section%B: @gprel relocation against dynamic symbol %s%B: @internal branch to dynamic symbol %s%B: @pcrel relocation against dynamic symbol %s%B: ABI is incompatible with that of the selected emulation%B: ABI mismatch: linking %s module with previous %s modules%B: ASE mismatch: linking %s module with previous %s modules%B: Architecture mismatch with previous modules%B: BE8 images only valid in big-endian mode.%B: Bad relocation record imported: %d%B: CALL15 reloc at 0x%lx not against global symbol%B: CALL16 reloc at 0x%lx not against global symbol%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000).%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch.%B: Cannot handle compressed Alpha binaries.
+   Use compiler flags, or objZ, to generate uncompressed binaries.%B: Cannot link together %s and %s objects.%B: Corrupt size field in group section header: 0x%lx%B: Failed to add renamed symbol %s%B: Function descriptor relocation with non-zero addend%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d%B: GOT overflow: Number of relocations with 8-bit offset > %d%B: GOT reloc at 0x%lx not expected in executables%B: IMPORT AS directive for %s conceals previous IMPORT AS%B: Instruction set mismatch with previous modules%B: Invalid relocation type imported: %d%B: Malformed reloc detected for section %s%B: Not enough room for program headers, try linking with -N%B: Only registers %%g[2367] can be declared using STT_REGISTER%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive%B: Relocation %s (%d) is not currently supported.
+%B: Relocations in generic ELF (EM: %d)%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined%B: TLS local exec code cannot be linked into shared objects%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed%B: The first section in the PT_DYNAMIC segment is not the .dynamic section%B: The target (%s) of an %s relocation is in the wrong section (%A)%B: Too many sections: %d (>= %d)%B: Unable to sort relocs - they are in more than one size%B: Unable to sort relocs - they are of an unknown size%B: Unhandled import type; %x%B: Unknown mandatory EABI object attribute %d%B: Unknown relocation type %d
 %B: Unknown section type in a.out.adobe file: %x
-%B: Unrecognised .directive command: %s%B: Unrecognised import name type; %x%B: Unrecognised import type; %x%B: Unrecognised machine type (0x%x) in Import Library Format archive%B: Unrecognized storage class %d for %s symbol `%s'%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s%B: Warning: Thumb BLX instruction targets thumb function '%s'.%B: Warning: bad `%s' option size %u smaller than its header%B: Warning: cannot determine the target function for stub section `%s'%B: XMC_TC0 symbol `%s' is class %d scnlen %d%B: `%s' accessed both as normal and thread local symbol%B: `%s' has line numbers but no enclosing section%B: `%s' in loader reloc but not loader sym%B: `ld -r' not supported with PE MIPS objects
+%B: Unrecognised .directive command: %s%B: Unrecognised import name type; %x%B: Unrecognised import type; %x%B: Unrecognised machine type (0x%x) in Import Library Format archive%B: Unrecognized storage class %d for %s symbol `%s'%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s%B: Warning: Thumb BLX instruction targets thumb function '%s'.%B: Warning: bad `%s' option size %u smaller than its header%B: Warning: cannot determine the target function for stub section `%s'%B: XMC_TC0 symbol `%s' is class %d scnlen %d%B: `%s' accessed both as FDPIC and thread local symbol%B: `%s' accessed both as normal and FDPIC symbol%B: `%s' accessed both as normal and thread local symbol%B: `%s' has line numbers but no enclosing section%B: `%s' in loader reloc but not loader sym%B: `ld -r' not supported with PE MIPS objects
 %B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d%B: bad pair/reflo after refhi
-%B: bad reloc address 0x%lx in section `%A'%B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A'%B: bad relocation section name `%s'%B: bad section length in ihex_read_section%B: bad string table size %lu%B: bad symbol index: %d%B: cannot create stub entry %s%B: change in gp: BRSGP %s%B: class %d symbol `%s' has no aux entries%B: compiled for a 64 bit system and target is 32 bit%B: compiled for a big endian system and target is little endian%B: compiled for a little endian system and target is big endian%B: compiled normally and linked with modules compiled with -mrelocatable%B: compiled with -mrelocatable and linked with modules compiled normally%B: could not find output section %A for input section %A%B: could not find output section %s%B: csect `%s' not in enclosing section%B: don't know how to handle OS specific section `%s' [0x%8x]%B: don't know how to handle allocated, application specific section `%s' [0x%8x]%B: don't know how to handle processor specific section `%s' [0x%8x]%B: don't know how to handle section `%s' [0x%8x]%B: dtp-relative relocation against dynamic symbol %s%B: duplicate export stub %s%B: duplicate section `%A' has different size%B: endianness incompatible with that of the selected emulation%B: error: Cortex-A8 erratum stub is allocated in unsafe location%B: error: Cortex-A8 erratum stub out of range (input file too large)%B: error: VFP11 veneer out of range%B: error: relocation %s not a multiple of %d%B: error: unaligned relocation type %d at %08x reloc %p
-%B: gp-relative relocation against dynamic symbol %s%B: ignoring duplicate section `%A'%B: illegal relocation type %d at address 0x%lx%B: illegal symbol index in reloc: %d%B: incompatible machine type. Output is 0x%x. Input is 0x%x%B: indirect symbol `%s' to `%s' is a loop%B: internal error in ihex_read_section%B: invalid SHT_GROUP entry%B: invalid link %lu for reloc section %s (index %u)%B: invalid relocation type %d%B: invalid string offset %u >= %lu for section `%s'%B: jump too far away
-%B: linking %s module with previous %s modules%B: linking 32-bit code with 64-bit code%B: linking 64-bit files with 32-bit files%B: linking UltraSPARC specific with HAL specific code%B: linking auto-pic files with non-auto-pic files%B: linking big-endian files with little-endian files%B: linking constant-gp files with non-constant-gp files%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double%B: linking files compiled for HCS12 with others compiled for HC12%B: linking little endian files with big endian files%B: linking non-pic code in a position independent executable%B: linking trap-on-NULL-dereference with non-trapping files%B: loader reloc in read-only section %A%B: loader reloc in unrecognized section `%s'%B: misplaced XTY_LD `%s'%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'.%B: no group info for section %A%B: non-pic code with imm relocation against dynamic symbol `%s'%B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the object file has no symbol table%B: pc-relative relocation against dynamic symbol %s%B: pc-relative relocation against undefined weak symbol %s%B: probably compiled without -fPIC?%B: reloc %s:%d not in csect%B: reloc against a non-existant symbol index: %ld%B: relocation %s against %s `%s' can not be used when making a shared object%s%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s%B: relocation %s can not be used when making a shared object; recompile with -fPIC%B: relocation %s cannot be used when making a shared object%B: relocation %s is not supported for symbol %s.%B: relocation %s is not yet supported for symbol %s.%B: relocation R_386_GOTOFF against protected function `%s' can not be used when making a shared object%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object%B: relocation R_X86_64_GOTOFF64 against protected function `%s' can not be used when making a shared object%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend%B: relocation size mismatch in %B section %A%B: relocs in section `%A', but it has no contents%B: section %A vma 0x%lx overlaps previous sections%B: section %s: string table overflow at offset %ld%B: section `%A' can't be allocated in segment %d%B: sh_link [%d] in section `%A' is incorrect%B: sh_link of section `%A' points to discarded section `%A' of `%B'%B: sh_link of section `%A' points to removed section `%A' of `%B'%B: size field is zero in Import Library Format header%B: speculation fixup to dynamic symbol %s%B: string not null terminated in ILF object file.%B: symbol `%s' has unrecognized csect type %d%B: symbol `%s' has unrecognized smclas %d%B: symbol `%s' required but not present%B: the target (%s) of a %s relocation is in the wrong output section (%s)%B: tp-relative relocation against dynamic symbol %s%B: unable to fill in DataDictionary[12] because .idata$5 is missing%B: unable to fill in DataDictionary[1] because .idata$2 is missing%B: unable to fill in DataDictionary[1] because .idata$4 is missing%B: unable to fill in DataDictionary[9] because __tls_used is missing%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing%B: unable to find ARM glue '%s' for `%s'%B: unable to find THUMB glue '%s' for `%s'%B: unable to find VFP11 veneer `%s'%B: undefined sym `%s' in .opd section%B: unexpected ATN type %d in external part%B: unexpected redefinition of indirect versioned symbol `%s'%B: unexpected reloc type %u in .opd section%B: unexpected type after ATN%B: unhandled dynamic relocation against %s%B: unimplemented %s
-%B: unimplemented ATI record %u for symbol %u%B: unknown [%d] section `%s' in group [%s]%B: unknown relocation type %d%B: unknown relocation type %d for symbol %s%B: unknown/unsupported relocation type %d%B: unrecognized relocation (0x%x) in section `%A'%B: unsupported relocation type %i%B: unsupported relocation type %s%B: unsupported relocation: ALPHA_R_GPRELHIGH%B: unsupported relocation: ALPHA_R_GPRELLOW%B: uses _-prefixed symbols, but writing file with non-prefixed symbols%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)%B: uses non-prefixed symbols, but writing file with _-prefixed symbols%B: version node not found for symbol %s%B: warning: COMDAT symbol '%s' does not match section name '%s'%B: warning: Empty loadable segment detected, is this intentional ?
-%B: warning: allocated section `%s' not in segment%B: warning: could not read contents of section `%A'%B: warning: duplicate line number information for `%s'%B: warning: duplicate section `%A' has different contents%B: warning: duplicate section `%A' has different size
-%B: warning: ignoring duplicate section `%A'
-%B: warning: illegal symbol index %ld in line numbers%B: warning: illegal symbol index %ld in relocs%B: warning: line number table read failed%B: warning: linking PIC files with non-PIC files%B: warning: linking abicalls files with non-abicalls files%B: warning: selected VFP11 erratum workaround is not necessary for target architecture%B: warning: sh_link not set for section `%A'%B:%A%s exceeds overlay size
-%B:%d: Bad checksum in S-record file
+%B: bad reloc address 0x%lx in section `%A'%B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A'%B: bad relocation section name `%s'%B: bad section length in ihex_read_section%B: bad string table size %lu%B: bad symbol index: %d%B: cannot create stub entry %s%B: change in gp: BRSGP %s%B: class %d symbol `%s' has no aux entries%B: compiled for a 64 bit system and target is 32 bit%B: compiled for a big endian system and target is little endian%B: compiled for a little endian system and target is big endian%B: compiled normally and linked with modules compiled with -mrelocatable%B: compiled with -mrelocatable and linked with modules compiled normally%B: could not find output section %A for input section %A%B: could not find output section %s%B: could not read contents of section `%A'
+%B: csect `%s' not in enclosing section%B: don't know how to handle OS specific section `%s' [0x%8x]%B: don't know how to handle allocated, application specific section `%s' [0x%8x]%B: don't know how to handle processor specific section `%s' [0x%8x]%B: don't know how to handle section `%s' [0x%8x]%B: dtp-relative relocation against dynamic symbol %s%B: duplicate export stub %s%B: duplicate section `%A' has different contents
+%B: duplicate section `%A' has different size
+%B: endianness incompatible with that of the selected emulation%B: error: Cortex-A8 erratum stub is allocated in unsafe location%B: error: Cortex-A8 erratum stub out of range (input file too large)%B: error: VFP11 veneer out of range%B: error: unaligned relocation type %d at %08x reloc %p
+%B: error: unknown mandatory EABI object attribute %d%B: file class %s incompatible with %s%B: gp-relative relocation against dynamic symbol %s%B: hidden symbol `%s' in %B is referenced by DSO%B: hidden symbol `%s' isn't defined%B: ignoring duplicate section `%A'
+%B: illegal relocation type %d at address 0x%lx%B: illegal symbol index in reloc: %d%B: incompatible machine type. Output is 0x%x. Input is 0x%x%B: indirect symbol `%s' to `%s' is a loop%B: internal error in ihex_read_section%B: internal symbol `%s' in %B is referenced by DSO%B: internal symbol `%s' isn't defined%B: invalid SHT_GROUP entry%B: invalid link %lu for reloc section %s (index %u)%B: invalid relocation type %d%B: invalid string offset %u >= %lu for section `%s'%B: jump too far away
+%B: linking %s module with previous %s modules%B: linking 32-bit code with 64-bit code%B: linking 64-bit files with 32-bit files%B: linking UltraSPARC specific with HAL specific code%B: linking auto-pic files with non-auto-pic files%B: linking big-endian files with little-endian files%B: linking constant-gp files with non-constant-gp files%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double%B: linking files compiled for HCS12 with others compiled for HC12%B: linking little endian files with big endian files%B: linking non-pic code in a position independent executable%B: linking trap-on-NULL-dereference with non-trapping files%B: loader reloc in read-only section %A%B: loader reloc in unrecognized section `%s'%B: local symbol `%s' in %B is referenced by DSO%B: misplaced XTY_LD `%s'%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'.%B: no group info for section %A%B: non-pic code with imm relocation against dynamic symbol `%s'%B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the object file has no symbol table%B: pc-relative relocation against dynamic symbol %s%B: pc-relative relocation against undefined weak symbol %s%B: probably compiled without -fPIC?%B: protected symbol `%s' isn't defined%B: reloc %s:%d not in csect%B: reloc against a non-existant symbol index: %ld%B: relocation %s against %s `%s' can not be used when making a shared object%s%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC%B: relocation %s against symbol `%s' isn't supported in x32 mode%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s%B: relocation %s can not be used when making a shared object; recompile with -fPIC%B: relocation %s cannot be used when making a shared object%B: relocation R_386_GOTOFF against protected function `%s' can not be used when making a shared object%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object%B: relocation R_X86_64_GOTOFF64 against protected function `%s' can not be used when making a shared object%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend%B: relocation size mismatch in %B section %A%B: relocs in section `%A', but it has no contents%B: section %A lma %#lx adjusted to %#lx%B: section %s: string table overflow at offset %ld%B: section `%A' can't be allocated in segment %d%B: sh_link [%d] in section `%A' is incorrect%B: sh_link of section `%A' points to discarded section `%A' of `%B'%B: sh_link of section `%A' points to removed section `%A' of `%B'%B: size field is zero in Import Library Format header%B: speculation fixup to dynamic symbol %s%B: string not null terminated in ILF object file.%B: symbol `%s' has unrecognized csect type %d%B: symbol `%s' has unrecognized smclas %d%B: symbol `%s' required but not present%B: too many sections (%d)%B: tp-relative relocation against dynamic symbol %s%B: unable to fill in DataDictionary[12] because .idata$5 is missing%B: unable to fill in DataDictionary[1] because .idata$2 is missing%B: unable to fill in DataDictionary[1] because .idata$4 is missing%B: unable to fill in DataDictionary[9] because __tls_used is missing%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing%B: unable to find ARM glue '%s' for `%s'%B: unable to find THUMB glue '%s' for `%s'%B: unable to find VFP11 veneer `%s'%B: unable to get decompressed section %A%B: unable to initialize commpress status for section %s%B: unable to initialize decommpress status for section %s%B: undefined reference to symbol '%s'%B: undefined sym `%s' in .opd section%B: undefined symbol on R_PPC64_TOCSAVE relocation%B: unexpected ATN type %d in external part%B: unexpected redefinition of indirect versioned symbol `%s'%B: unexpected reloc type %u in .opd section%B: unexpected type after ATN%B: unhandled dynamic relocation against %s%B: unimplemented %s
+%B: unimplemented ATI record %u for symbol %u%B: unknown [%d] section `%s' in group [%s]%B: unknown relocation type %d%B: unknown/unsupported relocation type %d%B: unrecognized relocation (0x%x) in section `%A'%B: unsupported relocation type %i%B: unsupported relocation type %i
+%B: unsupported relocation type %s%B: unsupported relocation: ALPHA_R_GPRELHIGH%B: unsupported relocation: ALPHA_R_GPRELLOW%B: uses _-prefixed symbols, but writing file with non-prefixed symbols%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)%B: uses non-prefixed symbols, but writing file with _-prefixed symbols%B: version node not found for symbol %s%B: warning: COMDAT symbol '%s' does not match section name '%s'%B: warning: Empty loadable segment detected, is this intentional ?
+%B: warning: allocated section `%s' not in segment%B: warning: duplicate line number information for `%s'%B: warning: illegal symbol index %ld in line numbers%B: warning: illegal symbol index %ld in relocs%B: warning: line number table read failed%B: warning: linking PIC files with non-PIC files%B: warning: linking abicalls files with non-abicalls files%B: warning: selected VFP11 erratum workaround is not necessary for target architecture%B: warning: sh_link not set for section `%A'%B: warning: unknown EABI object attribute %d%B:%A%s exceeds overlay size
+%B:%A: Warning: deprecated Red Hat reloc %B:%d: Bad checksum in S-record file
 %B:%d: Unexpected character `%s' in S-record file
-%B:%d: unexpected character `%s' in Intel Hex file%B:%u: bad checksum in Intel Hex file (expected %u, found %u)%B:%u: bad extended address record length in Intel Hex file%B:%u: bad extended linear address record length in Intel Hex file%B:%u: bad extended linear start address length in Intel Hex file%B:%u: bad extended start address length in Intel Hex file%B:%u: unrecognized ihex type %u in Intel Hex file%F%P: already_linked_table: %E
+%B:%d: unexpected character `%s' in Intel Hex file%B:%u: bad checksum in Intel Hex file (expected %u, found %u)%B:%u: bad extended address record length in Intel Hex file%B:%u: bad extended linear address record length in Intel Hex file%B:%u: bad extended linear start address length in Intel Hex file%B:%u: bad extended start address length in Intel Hex file%B:%u: unrecognized ihex type %u in Intel Hex file%C: warning: relocation to "%s" references a different segment
+%F%P: already_linked_table: %E
 %F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can not be used when making an executable; recompile with -fPIE and relink with -pie
+%H __tls_get_addr lost arg, TLS optimization disabled
+%H arg lost __tls_get_addr, TLS optimization disabled
+%H: R_FRV_FUNCDESC references dynamic symbol with nonzero addend
+%H: R_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addend
+%H: R_FRV_GETTLSOFF not applied to a call instruction
+%H: R_FRV_GETTLSOFF_RELAX not applied to a calll instruction
+%H: R_FRV_GOTTLSDESC12 not applied to an lddi instruction
+%H: R_FRV_GOTTLSDESCHI not applied to a sethi instruction
+%H: R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction
+%H: R_FRV_GOTTLSOFF12 not applied to an ldi instruction
+%H: R_FRV_GOTTLSOFFHI not applied to a sethi instruction
+%H: R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction
+%H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction
+%H: R_FRV_TLSMOFFHI not applied to a sethi instruction
+%H: R_FRV_TLSOFF_RELAX not applied to an ld instruction
+%H: cannot emit dynamic relocations in read-only section
+%H: cannot emit fixups in read-only section
+%H: reloc against `%s' references a different segment
+%H: reloc against `%s': %s
+%H: relocation references symbol not defined in the module
+%H: relocation to `%s+%v' may have caused the error above
 %P%F: --relax and -r may not be used together
 %P%X: can not read symbols: %E
+%P%X: read-only segment has dynamic relocations.
+%P: %B: cannot create stub entry %s
+%P: %B: relocation %s is not supported for symbol %s
+%P: %B: relocation %s is not yet supported for symbol %s
+%P: %B: the target (%s) of a %s relocation is in the wrong output section (%s)
 %P: %B: unexpected relocation type
+%P: %B: unknown relocation type %d for symbol %s
+%P: %B: warning: relocation against `%s' in readonly section `%A'.
+%P: %B: warning: relocation in readonly section `%A'.
+%P: %H: %s reloc against `%s': error %d
+%P: %H: %s reloc against local symbol
+%P: %H: %s relocation references optimized away TOC entry
+%P: %H: %s used with TLS symbol %s
+%P: %H: %s used with non-TLS symbol %s
+%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc
+%P: %H: error: %s not a multiple of %u
+%P: %H: non-zero addend on %s reloc against `%s'
+%P: %H: relocation %s for indirect function %s unsupported
+%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern
+%P: %H: unresolvable %s relocation against symbol `%s'
+%P: %s not defined in linker created %s
+%P: %s offset too large for .eh_frame sdata4 encoding%P: DW_EH_PE_datarel unspecified for this architecture.
 %P: alternate ELF machine code found (%d) in %B, expecting %d
+%P: bss-plt forced by profiling
+%P: bss-plt forced due to %B
+%P: can't build branch stub `%s'
+%P: can't find branch stub `%s'
+%P: cannot find opd entry toc for %s
+%P: copy reloc against `%s' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc
+%P: dynamic variable `%s' is zero size
+%P: dynreloc miscount for %B, section %A
 %P: error in %B(%A); no .eh_frame_hdr table will be created.
 %P: fde encoding in %B(%A) prevents .eh_frame_hdr table being created.
+%P: linkage table error against `%s'
+%P: long branch stub `%s' offset overflow
+%P: multiple entry points: in modules %B and %B
+%P: relocatable link is not supported
+%P: stubs don't match calculated size
 %P: warning: creating a DT_TEXTREL in a shared object.
+%X%C: relocation to "%s" references a different segment
 %X%P: overlay section %A does not start on a cache line.
 %X%P: overlay section %A is larger than a cache line.
 %X%P: overlay section %A is not in cache area.
 %X%P: overlay sections %A and %A do not start at the same address.
 %X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B
-%s defined in removed toc entry%s duplicated
+%s defined on removed toc entry%s duplicated
 %s duplicated in %s
-%s in overlay section%s not defined in linker created %s%s(%s): relocation %d has invalid symbol index %ld%s: %s: reloc overflow: 0x%lx > 0xffff%s: 0x%v 0x%v
+%s in overlay section%s(%s): relocation %d has invalid symbol index %ld%s: %s: reloc overflow: 0x%lx > 0xffff%s: 0x%v 0x%v
 %s: Bad symbol definition: `Main' set to %s rather than the start address %s
 %s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file
 %s: GAS error: unexpected PTB insn with R_SH_PT_16%s: Internal inconsistency error for value for
@@ -170,7 +374,7 @@ ppcboot header:
 %s: cannot create stub entry %s%s: cannot link fdpic object file into non-fdpic executable%s: cannot link non-fdpic object file into fdpic executable%s: compiled as 32-bit object and %s is 64-bit%s: compiled as 64-bit object and %s is 32-bit%s: compiled with %s and linked with modules compiled with %s%s: compiled with %s and linked with modules that use non-pic relocations%s: could not write out added .cranges entries%s: could not write out sorted .cranges entries%s: directive LOCAL valid only with a register or absolute value%s: dynamic object with no .loader section%s: encountered datalabel symbol in input%s: error: unaligned relocation type %d at %08x reloc %08x
 %s: illegal section name `%s'%s: internal error, internal register section %s had contents
 %s: internal error, symbol table changed size from %d to %d words
-%s: invalid DSO for symbol `%s' definition%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)
+%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)
 %s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote
 %s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx
 %s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo
@@ -186,67 +390,227 @@ ppcboot header:
 %s: invalid start address for initialized registers of length %ld: 0x%lx%08lx
 %s: invalid symbol table: duplicate symbol `%s'
 %s: line number overflow: 0x%lx > 0xffff%s: no initialized registers; section length 0
-%s: no such symbol%s: not fully implemented%s: not implemented%s: not supported%s: object size does not match that of target %s%s: register relocation against non-register symbol: %s in %s%s: register relocation against non-register symbol: (unknown) in %s%s: relocatable link from %s to %s not supported%s: short data segment overflowed (0x%lx >= 0x400000)%s: string too long (%d chars, max 65535)%s: too many initialized registers; section length %ld
+%s: no such symbol%s: not implemented%s: not supported%s: object size does not match that of target %s%s: register relocation against non-register symbol: %s in %s%s: register relocation against non-register symbol: (unknown) in %s%s: relocatable link from %s to %s not supported%s: short data segment overflowed (0x%lx >= 0x400000)%s: string too long (%d chars, max 65535)%s: too many initialized registers; section length %ld
 %s: undefined version: %s%s: unknown relocation type %d%s: unrecognized symbol `%s' flags 0x%x%s: unsupported relocation type 0x%02x%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'
-%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)%s: version count (%ld) does not match symbol count (%ld)%s: warning: %s relocation against symbol `%s' from %s section%s: warning: %s relocation to 0x%x from %s section%s: warning: %s: line number overflow: 0x%lx > 0xffff%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld%s: warning: PLT addend of %d to `%s' from %s section ignored%s: warning: illegal symbol index %ld in relocs%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d.  Only `Main' will be emitted.
-(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)(too many global variables for -fpic: recompile with -fPIC))
-*unknown*.got section not immediately after .plt section32-bit double, 32bits gp relative relocation occurs for an external symbol64-bit double, : m32r instructions: m32r2 instructions: m32rx instructions; recompile with -fPIC<Unrecognised flag bits set><unknown>@pltoff reloc against local symbolAbsolute address Exceeds 16 bit RangeAbsolute address Exceeds 8 bit RangeArchive has no index; run ranlib to add oneArchive object file in wrong formatAttempt to convert L32R/CALLX to CALL failedAttempt to do relocatable link with %s input and %s outputBFD %s assertion fail %s:%dBFD %s internal error, aborting at %s line %d
+%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)%s: version count (%ld) does not match symbol count (%ld)%s: warning core file truncated%s: warning: %s relocation against symbol `%s' from %s section%s: warning: %s relocation to 0x%x from %s section%s: warning: %s: line number overflow: 0x%lx > 0xffff%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld%s: warning: PLT addend of %d to `%s' from %s section ignored%s: warning: illegal symbol index %ld in relocs%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d.  Only `Main' will be emitted.
+(at bit offset %u)
+(descriptor)
+(no value)
+(not active)
+(not allocated)
+(reg: %u, disp: %u, indir: %u, kind: (thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)(too many global variables for -fpic: recompile with -fPIC)(trailing value)
+(value spec follows)
+)
+*** check this relocation %s*unhandled*
+*unhandled* dst type %u
+*unknown**unknown*        , alias: %u
+, ext fixup offset: %u, no_opt psect off: %u, subtype: %u (%s)
+, symbol vector rva: .got section not immediately after .plt section32-bit double, 32bits gp relative relocation occurs for an external symbol64 bits *unhandled*
+64-bit double, : %u.%u
+: m32r instructions: m32r2 instructions: m32rx instructions; recompile with -fPIC<Unrecognised flag bits set><unknown>@pltoff reloc against local symbolArchive has no index; run ranlib to add oneArchive object file in wrong formatAttempt to convert L32R/CALLX to CALL failedAttempt to do relocatable link with %s input and %s outputBASE_IMAGE       BFD %s assertion fail %s:%dBFD %s internal error, aborting at %s line %d
 BFD %s internal error, aborting at %s line %d in %s
-Bad valueBase Relocation Directory [.reloc]Bound Import DirectoryCLR Runtime HeaderCan't Make it a Short JumpDST_S_C_BEG_STMT_MODE not implementedDST_S_C_END_STMT_MODE not implementedDST_S_C_RESET_LINUM_INCR not implementedDST_S_C_SET_LINUM_INCR not implementedDST_S_C_SET_LINUM_INCR_W not implementedDST_S_C_SET_PC not implementedDST_S_C_SET_PC_L not implementedDST_S_C_SET_PC_W not implementedDST_S_C_SET_STMTNUM not implementedDebug DirectoryDelay Import DirectoryDeprecated %s called
+BFD Link Error: branch (PC rel16) to section (%s) not supportedBFD Link Error: jump (PC rel26) to section (%s) not supportedBad valueBase Relocation Directory [.reloc]Bound Import DirectoryBounds:
+CLICLR Runtime HeaderCLUSTERS_LOCKMGR COUNTERS         CPU              CTL_AUGRB (augment relocation base) %u
+CTL_DFLOC (define location)
+CTL_SETRB (set relocation base)
+CTL_STKDL (stack defined location)
+CTL_STLOC (set location)
+Copyright Header
+DIV usage mismatch between %B and %BDST__K_BEG_STMT_MODE not implementedDST__K_END_STMT_MODE not implementedDST__K_RESET_LINUM_INCR not implementedDST__K_SET_LINUM_INCR not implementedDST__K_SET_LINUM_INCR_W not implementedDST__K_SET_PC not implementedDST__K_SET_PC_L not implementedDST__K_SET_PC_W not implementedDST__K_SET_STMTNUM not implementedDebug DirectoryDebug module table:
+Debug symbol table:
+Delay Import DirectoryDeprecated %s called
 Deprecated %s called at %s line %d in %s
-Description DirectoryDwarf Error: Bad abbrev number: %u.Dwarf Error: Can't find %s section.Dwarf Error: Could not find abbrev number %u.Dwarf Error: Invalid or unhandled FORM value: %u.Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu).Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'.Dwarf Error: found dwarf version '%u', this reader only handles version 2 and 3 information.Dwarf Error: mangled line number section (bad file number).Dwarf Error: mangled line number section.Dwarf Error: unable to decompress %s section.Entry offset        = 0x%.8lx (%ld)
-Error reading %s: %sErrors encountered processing file %sExceeds Long Jump RangeException Directory [.pdata]Export Directory [.edata (or where ever we found it)]Export Flags 			%lx
-Export RVAFAILED to find previous HI16 reloc
-File format is ambiguousFile format not recognizedFile in wrong formatFile too bigFile truncatedFlag field          = 0x%.2x
-Forwarder RVAGP relative relocation used when GP not definedGP relative relocation when _gp not definedGPDISP relocation did not find ldah and lda instructionsImport Address Table DirectoryImport Directory [parts of .idata]Internal inconsistency: remaining %u != max %u.
-  Please report this bug.Invalid TARGET2 relocation type '%s'.Invalid bfd targetInvalid operationLength              = 0x%.8lx (%ld)
-Load Configuration DirectoryMach-O header:
+Description DirectoryDwarf Error: Bad abbrev number: %u.Dwarf Error: Can't find %s section.Dwarf Error: Could not find abbrev number %u.Dwarf Error: Invalid maximum operations per instruction.Dwarf Error: Invalid or unhandled FORM value: %u.Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu).Dwarf Error: Unhandled .debug_line version %d.Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'.Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information.Dwarf Error: mangled line number section (bad file number).Dwarf Error: mangled line number section.EIHD: (size: %u, nbr blocks: %u)
+Entry offset        = 0x%.8lx (%ld)
+Error reading %s: %sError: %B has both the current and legacy Tag_MPextension_use attributesErrors encountered processing file %sException Directory [.pdata]Export Directory [.edata (or where ever we found it)]Export Flags 			%lx
+Export RVAFAILED to find previous HI16 relocFILES_VOLUMES    File format is ambiguousFile format not recognizedFile in wrong formatFile too bigFile truncatedFlag field          = 0x%.2x
+Forwarder RVAGALAXY           GP relative relocation used when GP not definedGP relative relocation when _gp not definedGPDISP relocation did not find ldah and lda instructionsGlobal symbol table:
+IDC - Ident Consistency check
+IMAGE_ACTIVATOR  INPUT_SECTION_FLAGS are not supported.
+IO               Image activation:  (size=%u)
+Image activator fixup: (major: %u, minor: %u)
+Image identification: (major: %u, minor: %u)
+Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)
+Image symbol & debug table: (major: %u, minor: %u)
+Import Address Table DirectoryImport Directory [parts of .idata]Internal inconsistency: remaining %u != max %u.
+  Please report this bug.Invalid TARGET2 relocation type '%s'.Invalid bfd targetInvalid operationInvalid section index in ETIRJALX to a non-word-aligned addressLOGICAL_NAMES    Language Processor Name
+Length              = 0x%.8lx (%ld)
+Load Configuration DirectoryMEMORY_MANAGEMENTMIPS16 and microMIPS functions cannot call each otherMISC             MULTI_PROCESSING Mach-O header:
 Major/Minor 			%d/%d
 Malformed archiveMaximum stack required is 0x%v
-Memory exhaustedName 				No Mem !No errorNo more archived filesNo symbolsNonrepresentable section on outputNot enough memory to sort relocationsNumber in:
+MeP: howto %d has type %dMemory exhaustedModule header
+NETWORKS         NORMALName 				No errorNo more archived filesNo symbolsNonrepresentable section on outputNot enough memory to sort relocationsNumber in:
+OPR_ADD (add)
+OPR_AND (logical and)
+OPR_ASH (arithmetic shift)
+OPR_COM (complement)
+OPR_DIV (divide)
+OPR_EOR (logical exclusive or)
+OPR_INSV (insert field)
+OPR_IOR (logical inclusive or)
+OPR_MUL (multiply)
+OPR_NEG (negate)
+OPR_NOP (no-operation)
+OPR_REDEF (define a literal)
+OPR_REDEF (redefine symbol to curr location)
+OPR_ROT (rotate)
+OPR_SEL (select)
+OPR_SUB (substract)
+OPR_USH (unsigned shift)
 Object module NOT error-free !
 Ordinal Base 			%ld
 Output file requires shared library `%s'
 Output file requires shared library `%s.so.%s'
-PASSMECH not fully implementedPTA mismatch: a SHcompact address (bit 0 == 0)PTB mismatch: a SHmedia address (bit 0 == 1)Partition name      = "%s"
+POSIX            PROCESS_SCHED    PRVFXDPRVPICPSC - Program section definition
+PTA mismatch: a SHcompact address (bit 0 == 0)PTB mismatch: a SHmedia address (bit 0 == 1)Partition name      = "%s"
 Partition[%d] end    = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }
 Partition[%d] length = 0x%.8lx (%ld)
 Partition[%d] sector = 0x%.8lx (%ld)
 Please report this bug.
-R_BFIN_FUNCDESC references dynamic symbol with nonzero addendR_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addendR_FRV_FUNCDESC references dynamic symbol with nonzero addendR_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addendR_FRV_GETTLSOFF not applied to a call instructionR_FRV_GETTLSOFF_RELAX not applied to a calll instructionR_FRV_GOTTLSDESC12 not applied to an lddi instructionR_FRV_GOTTLSDESCHI not applied to a sethi instructionR_FRV_GOTTLSDESCLO not applied to a setlo or setlos instructionR_FRV_GOTTLSOFF12 not applied to an ldi instructionR_FRV_GOTTLSOFFHI not applied to a sethi instructionR_FRV_GOTTLSOFFLO not applied to a setlo or setlos instructionR_FRV_TLSDESC_RELAX not applied to an ldd instructionR_FRV_TLSMOFFHI not applied to a sethi instructionR_FRV_TLSMOFFLO not applied to a setlo or setlos instructionR_FRV_TLSOFF_RELAX not applied to an ld instructionReading archive file mod timestampReference to the far symbol `%s' using a wrong relocation may result in incorrect executionRegister %%g%d used incompatibly: %s in %B, previously %s in %BRegister section has contents
-Reloc size error in section %sRelocation `%s' not yet implemented
-Removing unused section '%s' in file '%B'ReservedResource Directory [.rsrc]SDA relocation when _SDA_BASE_ not definedSEC_RELOC with no relocs in section %sSection has no contentsSecurity DirectorySegments and Sections:
-Size error in section %sSize mismatch section %s=%lx, %s=%lxSpecial DirectorySpurious ALPHA_R_BSR relocStack analysis will ignore the call from %s to %s
+R_BFIN_FUNCDESC references dynamic symbol with nonzero addendR_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addendR_FRV_TLSMOFFLO not applied to a setlo or setlos instruction
+Reading archive file mod timestampReference to the far symbol `%s' using a wrong relocation may result in incorrect executionRegister %%g%d used incompatibly: %s in %B, previously %s in %BRegister section has contents
+Relocation for non-REL psectRemoving unused section '%s' in file '%B'ReservedResource Directory [.rsrc]SDA relocation when _SDA_BASE_ not definedSECURITY         SEC_RELOC with no relocs in section %sSH Error: unknown reloc type %dSHELL            SHRFXDSHRPICSPSC - Shared Image Program section def
+STABLE           STA_CKARG (compare procedure argument)
+STA_GBL (stack global) %.*s
+STA_LI (stack literal)
+STA_LW (stack longword) 0x%08x
+STA_MOD (stack module)
+STA_PQ (stack psect base + offset)
+STA_QW (stack quadword) 0x%08x %08x
+STC_BOH_GBL (store cond BOH at global addr)
+STC_BOH_PS (store cond BOH at psect + offset)
+STC_BSR_GBL (store cond BSR at global addr)
+STC_BSR_PS (store cond BSR at psect + offset)
+STC_GBL (store cond global)
+STC_GCA (store cond code address)
+STC_LDA_GBL (store cond LDA at global addr)
+STC_LDA_PS (store cond LDA at psect + offset)
+STC_LP (store cond linkage pair)
+STC_LP_PSB (store cond linkage pair + signature)
+STC_NBH_GBL (store cond or hint at global addr)
+STC_NBH_PS (store cond or hint at psect + offset)
+STC_NOP_GBL (store cond NOP at global addr)
+STC_NOP_PS (store cond NOP at psect + offset)
+STC_PS (store cond psect + offset)
+STO_AB (store absolute branch)
+STO_B (store byte)
+STO_BR_GBL (store branch global) *todo*
+STO_BR_PS (store branch psect + offset) *todo*
+STO_CA (store code address) %.*s
+STO_GBL (store global) %.*s
+STO_GBL_LW (store global longword) %.*s
+STO_IMM (store immediate) %u bytes
+STO_IMMR (store immediate repeat) %u bytes
+STO_LW (store longword)
+STO_OFF (store LP with procedure signature)
+STO_OFF (store offset to psect)
+STO_QW (store quadword)
+STO_RB (store relative branch)
+STO_W (store word)
+SYM - Global symbol definition
+SYM - Global symbol reference
+SYMG - Universal symbol definition
+SYMM - Global symbol definition with version
+SYMV - Vectored symbol definition
+SYSGEN           Section has no contentsSecurity DirectorySegments and Sections:
+Size error in section %sSource Files Header
+Special DirectorySpurious ALPHA_R_BSR relocStack analysis will ignore the call from %s to %s
 Stack overflow (%d) in _bfd_vms_pushStack size for call graph root nodes.
-Stack underflow in _bfd_vms_popSymbol %s not defined for fixups
+Stack underflow in _bfd_vms_popStrides:
+Symbol %s not defined for fixups
 Symbol %s replaced by %s
 Symbol `%s' has differing types: %s in %B, previously REGISTER in %BSymbol `%s' has differing types: REGISTER in %B, previously %s in %BSymbol needs debug section which does not existSystem call errorTLS relocation invalid without dynamic sectionsTOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compilingTable Addresses
 Thread Storage Directory [.tls]Time/Date stamp 		%lx
-Unable to find equivalent output section for symbol '%s' from section '%s'Unexpected STO_SH5_ISA32 on local symbol is not handledUnexpected machine numberUnhandled OSF/1 core file section type %d
-Unhandled relocation %sUnknown GSD/EGSD subtype %dUnknown basic type %dUnknown reloc %s + %sUnknown symbol %s in command %sUnrecognized Reloc TypeUnrecognized TI COFF target id '0x%x'Unrecognized relocUnrecognized reloc type 0x%xUnsupported .stab relocationUsing bss-plt due to %BVariable `%s' can only be in one of the small, zero, and tiny data regionsVariable `%s' cannot be in both small and tiny data regions simultaneouslyVariable `%s' cannot be in both small and zero data regions simultaneouslyVariable `%s' cannot be in both zero and tiny data regions simultaneouslyVariable `%s' cannot occupy in multiple small data regionsWarning, .pdata section size (%ld) is not a multiple of %d
-Warning: %B does not support interworking, whereas %B doesWarning: %B is truncated: expected core file size >= %lu, found: %lu.Warning: %B supports interworking, whereas %B does notWarning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64Warning: %B uses -msingle-float, %B uses -mdouble-floatWarning: %B uses -msingle-float, %B uses -mips32r2 -mfp64Warning: %B uses double-precision hard float, %B uses single-precision hard floatWarning: %B uses hard float, %B uses soft floatWarning: %B uses r3/r4 for small structure returns, %B uses memoryWarning: %B uses soft float, %B uses single-precision hard floatWarning: %B uses unknown floating point ABI %dWarning: %B uses unknown small structure return convention %dWarning: %B uses unknown vector ABI %dWarning: %B uses vector ABI "%s", %B uses "%s"Warning: %B: Conflicting platform configurationWarning: %B: Unknown EABI object attribute %dWarning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with itWarning: Clearing the interworking flag of %B due to outside requestWarning: Not setting interworking flag of %B since it has already been specified as non-interworkingWarning: Writing section `%s' to huge (ie negative) file offset 0x%lx.Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %AWarning: alignment %u of symbol `%s' in %B is smaller than %u in %BWarning: fixup count mismatch
+Title Text Header
+USRSTACKUnable to find equivalent output section for symbol '%s' from section '%s'Unexpected STO_SH5_ISA32 on local symbol is not handledUnexpected machine numberUnhandled OSF/1 core file section type %d
+Unhandled relocation %sUnknown EGSD subtype %dUnknown basic type %dUnknown reloc %sUnknown reloc %s + %sUnknown symbol in command %sUnrecognized INPUT_SECTION_FLAG %s
+Unrecognized TI COFF target id '0x%x'Unrecognized relocUnrecognized reloc type 0x%xUnsupported .stab relocationVOLATILE         Variable `%s' can only be in one of the small, zero, and tiny data regionsVariable `%s' cannot be in both small and tiny data regions simultaneouslyVariable `%s' cannot be in both small and zero data regions simultaneouslyVariable `%s' cannot be in both zero and tiny data regions simultaneouslyVariable `%s' cannot occupy in multiple small data regionsWarning, .pdata section size (%ld) is not a multiple of %d
+Warning: %B does not support interworking, whereas %B doesWarning: %B is truncated: expected core file size >= %lu, found: %lu.Warning: %B supports interworking, whereas %B does notWarning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64Warning: %B uses -msingle-float, %B uses -mdouble-floatWarning: %B uses -msingle-float, %B uses -mips32r2 -mfp64Warning: %B uses double-precision hard float, %B uses single-precision hard floatWarning: %B uses hard float, %B uses soft floatWarning: %B uses r3/r4 for small structure returns, %B uses memoryWarning: %B uses soft float, %B uses single-precision hard floatWarning: %B uses unknown floating point ABI %dWarning: %B uses unknown small structure return convention %dWarning: %B uses unknown vector ABI %dWarning: %B uses vector ABI "%s", %B uses "%s"Warning: %B: Conflicting platform configurationWarning: %B: Unknown EABI object attribute %dWarning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with itWarning: Clearing the interworking flag of %B due to outside requestWarning: Not setting interworking flag of %B since it has already been specified as non-interworkingWarning: RX_SYM reloc with an unknown symbolWarning: Writing section `%s' to huge (ie negative) file offset 0x%lx.Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %AWarning: alignment %u of symbol `%s' in %B is smaller than %u in %BWarning: fixup count mismatch
 Warning: gc-sections option ignoredWarning: size of symbol `%s' changed from %lu in %B to %lu in %BWarning: type of symbol `%s' changed from %d to %d in %BWarning: writing archive was slow: rewriting timestamp
-Writing updated armap timestamp[abi=16-bit int, [abi=32-bit int, [whose name is lost]\%B: Warning: Arm BLX instruction targets Arm function '%s'._bfd_vms_output_counted called with too many bytes_bfd_vms_output_counted called with zero bytesaddress not word alignbad section index in %sbanked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)bfd_make_section (%s) failedbfd_set_section_flags (%s, %x) failedcan't build branch stub `%s'can't find branch stub `%s'cannot emit dynamic relocations in read-only sectioncannot emit fixups in read-only sectioncannot handle R_MEM_INDIRECT reloc when using %s outputcopy reloc against `%s' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcccorrupt %s section in %Bcorrupt or empty %s section in %Bcould not locate special linker symbol __ctbpcould not locate special linker symbol __epcould not locate special linker symbol __gpcpu=HC11]cpu=HC12]cpu=HCS12]dynamic relocation in read-only sectiondynamic variable `%s' is zero sizedynreloc miscount for %B, section %Aerror: %B contains a reloc (0x%s) for section %A that references a non-existent global symbolerror: %B does not use Maverick instructions, whereas %B doeserror: %B is already in final BE8 formaterror: %B is compiled as absolute position code, whereas target %B is position independenterror: %B is compiled as position independent code, whereas target %B is absolute positionerror: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%derror: %B is compiled for APCS-%d, whereas target %B uses APCS-%derror: %B is compiled for the EP9312, whereas %B is compiled for XScaleerror: %B passes floats in float registers, whereas %B passes them in integer registerserror: %B passes floats in integer registers, whereas %B passes them in float registerserror: %B uses FPA instructions, whereas %B does noterror: %B uses Maverick instructions, whereas %B does noterror: %B uses VFP instructions, whereas %B does noterror: %B uses VFP register arguments, %B does noterror: %B uses hardware FP, whereas %B uses software FPerror: %B uses iWMMXt register arguments, %B does noterror: %B uses software FP, whereas %B uses hardware FPerror: %B: Conflicting CPU architectures %d/%derror: %B: Conflicting architecture profiles %c/%cerror: %B: Conflicting use of R9error: %B: Must be processed by '%s' toolchainerror: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'error: %B: SB relative addressing conflicts with use of R9error: %B: Unknown CPU architectureerror: Source object %B has EABI version %d, but target %B has EABI version %derror: fp16 format mismatch between %B and %Berror: inappropriate relocation type for shared library (did you forget -fpic?)error: undefined symbol __rtinitfailed to allocate space for new APUinfo section.failed to compute new APUinfo section.failed to enter %sfailed to install new APUinfo section.fatal error while creating .fixupgeneric linker can't handle %sglobal pointer relative address out of rangeglobal pointer relative relocation when _gp not definedhidden symbolignoring reloc %s
-internal error: addend should be zero for R_LM32_16_GOTinternal error: dangerous errorinternal error: dangerous relocationinternal error: out of range errorinternal error: suspicious relocation type used in shared libraryinternal error: unknown errorinternal error: unsupported relocation errorinternal inconsistency in size of .got.loc sectioninternal symbolinvalid relocation addressinvalid relocation type %dip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx).ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx).ip2k relaxer: switch table header corrupt.ip2k relaxer: switch table without complete matching relocation information.linkage table error against `%s'linker stubs in %u group%s
+Writing updated armap timestamp[%u]: %u
+[%u]: Lower: %u, upper: %u
+[abi=16-bit int, [abi=32-bit int, [whose name is lost]\%B: Warning: Arm BLX instruction targets Arm function '%s'._bfd_vms_output_counted called with too many bytes_bfd_vms_output_counted called with zero bytesaddressaddress not word alignarsize: %u, a0: 0x%08x
+bad section index in %sbanked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)base: %u, pos: %u
+bfd_mach_o_canonicalize_symtab: unable to load symbolsbfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lubfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)bfd_mach_o_read_symtab_symbol: symbol "%s" is unsupported 'indirect' reference: setting to undefinedbfd_mach_o_read_symtab_symbol: symbol "%s" specified invalid section %d (max %lu): setting to undefinedbfd_mach_o_read_symtab_symbol: symbol "%s" specified invalid type field 0x%x: setting to undefinedbfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lubfd_mach_o_read_symtab_symbols: unable to allocate memory for symbolsbfd_mach_o_scan: unknown architecture 0x%lx/0x%lxbfd_pef_scan: unknown architecture 0x%lxblkbeg: address: 0x%08x, name: %.*s
+blkend: size: 0x%08x
+cannot emit dynamic relocations in read-only sectioncannot emit fixups in read-only sectioncannot find EMH in first GST record
+cannot handle R_MEM_INDIRECT reloc when using %s outputcannot read DMT
+cannot read DMT header
+cannot read DMT psect
+cannot read DST
+cannot read DST header
+cannot read DST symbol
+cannot read EIHA
+cannot read EIHD
+cannot read EIHI
+cannot read EIHS
+cannot read EIHVN header
+cannot read EIHVN version
+cannot read EISD
+cannot read GST
+cannot read GST record
+cannot read GST record header
+cannot read GST record length
+class: %u, dtype: %u, length: %u, pointer: 0x%08x
+corrupt %s section in %Bcould not locate special linker symbol __ctbpcould not locate special linker symbol __epcould not locate special linker symbol __gpcould not open shared image '%s' from '%s'cpu=HC11]cpu=HC12]cpu=HCS12]dangerous relocationdelta pc +%-4ddelta_pc_l: +0x%08x
+delta_pc_w %u
+descdimct: %u, aflags: 0x%02x, digits: %u, scale: %u
+discarded output section: `%A'discontiguous range (nbr: %u)
+dynamic relocation in read-only sectiondynamic variable `%s' is zero sizeenumbeg, len: %u, name: %.*s
+enumelt, name: %.*s
+enumend
+epilog: flags: %u, count: %u
+error: %B contains a reloc (0x%s) for section %A that references a non-existent global symbolerror: %B does not use Maverick instructions, whereas %B doeserror: %B is already in final BE8 formaterror: %B is compiled as absolute position code, whereas target %B is position independenterror: %B is compiled as position independent code, whereas target %B is absolute positionerror: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%derror: %B is compiled for APCS-%d, whereas target %B uses APCS-%derror: %B is compiled for the EP9312, whereas %B is compiled for XScaleerror: %B passes floats in float registers, whereas %B passes them in integer registerserror: %B passes floats in integer registers, whereas %B passes them in float registerserror: %B requires more array alignment than %B preserveserror: %B requires more stack alignment than %B preserveserror: %B uses FPA instructions, whereas %B does noterror: %B uses Maverick instructions, whereas %B does noterror: %B uses VFP instructions, whereas %B does noterror: %B uses VFP register arguments, %B does noterror: %B uses hardware FP, whereas %B uses software FPerror: %B uses iWMMXt register arguments, %B does noterror: %B uses software FP, whereas %B uses hardware FPerror: %B: Conflicting CPU architectures %d/%derror: %B: Conflicting architecture profiles %c/%cerror: %B: Conflicting use of R9error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchainerror: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'error: %B: SB relative addressing conflicts with use of R9error: %B: Unknown CPU architectureerror: %B: size of section %A is not multiple of address sizeerror: %B: unable to merge virtualization attributes with %Berror: Source object %B has EABI version %d, but target %B has EABI version %derror: fp16 format mismatch between %B and %Berror: inappropriate relocation type for shared library (did you forget -fpic?)error: undefined symbol __rtiniterror: unknown Tag_ABI_array_object_align_expected value in %Berror: unknown Tag_ABI_array_object_alignment value in %Bexecutablefailed to allocate space for new APUinfo section.failed to compute new APUinfo section.failed to install new APUinfo section.fatal error while creating .fixupgeneric linker can't handle %sglobal pointer relative address out of rangeglobal pointer relative relocation when _gp not definedhidden symbolignoring reloc %s
+incr_linum(b): +%u
+incr_linum_l: +%u
+incr_linum_w: +%u
+internal error: addend should be zero for R_LM32_16_GOTinternal error: dangerous errorinternal error: dangerous relocationinternal error: out of range errorinternal error: suspicious relocation type used in shared libraryinternal error: unknown errorinternal error: unsupported relocation errorinternal inconsistency in size of .got.loc sectioninternal symbolinvalid input relocation when producing non-ELF, non-mmo format output.
+ Please use the objcopy program to convert from ELF or mmo,
+ or assemble using "-no-expand" (for gcc, "-Wa,-no-expand"invalid input relocation when producing non-ELF, non-mmo format output.
+ Please use the objcopy program to convert from ELF or mmo,
+ or compile using the gcc-option "-mno-base-addresses".invalid relocation addressinvalid relocation type %dinvalid use of %s with contextsip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx).ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx).ip2k relaxer: switch table header corrupt.ip2k relaxer: switch table without complete matching relocation information.line num  (len: %u)
+linkable imagelinker stubs in %u group%s
   branch       %lu
   toc adjust   %lu
   long branch  %lu
   long toc adj %lu
-  plt call     %luliteral relocation occurs for an external symbollong branch stub `%s' offset overflownon-dynamic relocations refer to dynamic symbol %snon-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store
+  plt call     %luliteralliteral relocation occurs for an external symbolmep: no reloc for code %dmodbeg
+modend
+nativenon-contiguous array of %s
+non-dynamic relocations refer to dynamic symbol %snon-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store
 non-zero addend in @fptr relocnot enough GOT space for local GOT entriesnot mapping: data=%lx mapped=%d
 not mapping: env var not set
-obj code %d not foundout of rangeoverflow after relaxationoverlay stub relocation overflowprivate flags = %lxprivate flags = %lx:private flags = %lx: private flags = %x:private flags = 0x%lxprivate flags = 0x%lx:protected symbolreference to a banked address [%lx:%04lx] in the normal address space at %04lxrelocation references a different segmentrelocation references symbol not defined in the modulerelocation requires zero addendrelocations between different segments are not supportedreopening %B: %s
-reserved CTL cmd %dreserved OPR cmd %dreserved STA cmd %dreserved STC cmd %dreserved STO cmd %dsmall-data section exceeds 64KB; lower small-data size limit (see option -G)som_sizeof_headers unimplementedsorry, no support for duplicate object files in auto-overlay script
-stack-entry-mask not fully implementedstack-from-image not implementedstack-literal not fully implementedstack-local-symbol not fully implementedstack-local-symbol-entry-point-mask not fully implementedstatic procedure (no name)stub entry for %s cannot load .plt, dp offset = %ldstubs don't match calculated sizesymbolunable to find ARM glue '%s' for '%s'unable to find THUMB glue '%s' for '%s'unable to read in %s section from %Buncertain calling convention for non-COFF symbolundefined %s reference in complex symbol: %sunknownunknown ETIR command %dunknown errorunknown line command %dunknown operator '%c' in complex symbolunknown source command %dunsupported STA cmd %sunsupported relocunsupported reloc typeunsupported relocationunsupported relocation between data/insn address spacesusing multiple gp valuesv850 architecturev850e architecturev850e1 architecturevma:			BeginAddress	 EndAddress	  UnwindData
-warning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may failwarning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may failwarning: %B: local symbol `%s' has no sectionwarning: %s exceeds section size
+note: '%s' is defined in DSO %B so try adding it to the linker command lineout of rangeoverflow after relaxationoverlay stub relocation overflowprivate flags = %lxprivate flags = %lx:private flags = %lx: private flags = %x:private flags = 0x%lxprivate flags = 0x%lx:prolog: bkpt address 0x%08x
+protected symbolrecbeg: name: %.*s
+recend
+reference to a banked address [%lx:%04lx] in the normal address space at %04lxregrelocation `%s' not yet implementedrelocation references symbol not defined in the modulerelocation requires zero addendrelocation should be even numberrelocations between different segments are not supportedreopening %B: %s
+reserved cmd %drtnbeg
+rtnend: size 0x%08x
+septyp, name: %.*s
+set_abs_pc: 0x%08x
+set_line_num(w) %u
+set_line_num_b %u
+set_line_num_l %u
+small-data section exceeds 64KB; lower small-data size limit (see option -G)som_sizeof_headers unimplementedsorry, no support for duplicate object files in auto-overlay script
+source (len: %u)
+standard data: %s
+static procedure (no name)stub entry for %s cannot load .plt, dp offset = %ldstubs don't match calculated sizesymbolsystem version array information:
+term(b): 0x%02xterm_w: 0x%04xtypspec (len: %u)
+unable to find ARM glue '%s' for '%s'unable to find THUMB glue '%s' for '%s'unable to read in %s section from %Bunable to read unknown load command 0x%lxunable to write unknown load command 0x%lxunaligned bit-string of %s
+uncertain calling convention for non-COFF symbolundefined %s reference in complex symbol: %sunhandled egsd entry type %u
+unhandled emh subtype %u
+unknownunknown ETIR command %dunknown errorunknown header byte-order value 0x%lxunknown line command %dunknown operator '%c' in complex symbolunknown source command %dunsupported STA cmd %sunsupported relocunsupported reloc typeunsupported relocationunsupported relocation between data/insn address spacesusing multiple gp valuesv850 architecturev850e architecturev850e1 architecturev850e2 architecturev850e2v3 architecturevflags: 0x%02x, value: 0x%08x vma:			BeginAddress	 EndAddress	  UnwindData
+warning: %B and %B differ in wchar_t sizewarning: %B and %B differ in whether code is compiled for DSBTwarning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may failwarning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may failwarning: %B: local symbol `%s' has no sectionwarning: %s exceeds section size
 warning: %s has a corrupt string table index - ignoringwarning: %s overlaps %s
 warning: %s section has zero sizewarning: .pdata section size (%ld) is not a multiple of %d
-warning: attempt to export undefined symbol `%s'warning: call to non-function symbol %s defined in %Bwarning: relocation references a different segmentwarning: section `%A' type changed to PROGBITSwarning: type and size of dynamic symbol `%s' are not definedwarning: unable to set size of %s section in %Bwarning: unable to update contents of %s section in %syou are not allowed to define %s in a scriptProject-Id-Version: bfd 2.20
+warning: attempt to export undefined symbol `%s'warning: call to non-function symbol %s defined in %Bwarning: generating a shared library containing non-PIC codewarning: generating a shared library containing non-PID codewarning: relocation references a different segmentwarning: section '%s' is being made into a notewarning: section `%A' type changed to PROGBITSwarning: type and size of dynamic symbol `%s' are not definedwarning: unable to set size of %s section in %Bwarning: unable to update contents of %s section in %syou are not allowed to define %s in a scriptProject-Id-Version: bfd 2.23.90
 Report-Msgid-Bugs-To: bug-binutils@gnu.org
-POT-Creation-Date: 2009-09-07 14:05+0200
-PO-Revision-Date: 2009-11-11 08:00+0700
+POT-Creation-Date: 2011-10-25 11:58+0100
+PO-Revision-Date: 2014-09-16 08:00+0700
 Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>
 Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>
+Language: id
+X-Bugs: Report translation errors to the Language-Team address.
 MIME-Version: 1.0
 Content-Type: text/plain; charset=ISO-8859-1
 Content-Transfer-Encoding: 8bit
@@ -268,6 +632,8 @@ Berkas Dasar Relokasi PE (diinterpretasi
       enum; End+1 simbol: %ld
       struct; simbol End+1: %ld
       union: End+1 simbol: %ld
+ version array off: %u
+
 Karakteristik 0x%x
 
 Bagian Dinamis:
@@ -313,19 +679,141 @@ Alamat Maya: %08lx Besar potongan %ld (0
 [Ordinal/Nama Pointer] Tabel
 
 ppcboot header:
-   %s%s %s
+program counter: 0x%08x
+    *unhandled* cmd %u
+    address: 0x%08x, size: %u
+    flags: %u, address: 0x%08x, pd-address: 0x%08x
+    global name: %.*s
+    linkage index: %u, replacement insn: 0x%08x
+    nama: %.*s
+program counter: 0x%08x
+    pc: 0x%08x line: %5u
+    psect idx 1: %u, offset 1: 0x%08x %08x
+    psect idx 2: %u, offset 2: 0x%08x %08x
+    psect idx 3: %u, offset 3: 0x%08x %08x
+    psect: %u, offset: 0x%08x %08x
+    routine name: %.*s
+   %02u    %s%s %s
+   (type: %3u, size: 4+%3u):    *unhandled* cmd %u
+   alignment  : 2**%u
+   alloc (len)   : %u (0x%08x)
+   alloc (len): %u (0x%08x)
+   ascii ident   : %.*s
+   binary ident  : 0x%08x
+   bitmap: 0x%08x (count: %u):
+   code address: 0x%08x
+   compile date   : %.17s
+   compiler   : %.*s
+   completion code: %u
+   copyright: %.*s
+   declfile: len: %u, flags: %u, fileid: %u
+   deflines %u
+   entity name   : %.*s
+   titik masuk: 0x%08x
+   error severity: %x
+   file: %.*s
+   filename   : %.*s
+   tanda         : 0x%08x   tanda      : 0x%04x   flags: %d, language: %u, major: %u, minor: %u
+   tanda: 0x%04x   formfeed
+   besar byte    : %x
+   besar byte    : 0x%08x
+   language name: %.*s
+   linkage index: %u, global: %.*s
+   linkage index: %u, procedure name: %.*s
+   linkage index: %u, procedure: %.*s
+   linkage index: %u, psect: %u, offset: 0x%08x %08x
+   max record size: %u
+   module name    : %.*s
+   module name: %.*s
+   module versi   : %.*s
+   nama          : %.*s
+   nama        : %.*s
+   nama       : %.*s
+   number of cond linkage pairs: %u
+   object name   : %.*s
+   offset: 0x%08x, val: 0x%08x
+   deskripsi proses : 0x%08x
+   psect indeks: %u
+   psect index for entry point : %u
+   psect indeks: %u
+   psect offset: %u
+   psect offset: 0x%08x
+   rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u
+   setfile %u
+   setlnum %u
+   setrec %u
+   signature: %.*s
+   structure level: %u
+   symbol vector offset: 0x%08x
+   symvec offset : 0x%08x
+   title: %.*s
+   transfer addr flags: 0x%02x
+   transfer addr psect: %u
+   transfer alamat    : 0x%08x
+   vector      : 0x%08x
+   version mask: 0x%08x
+  %s (len=%u+%u):
   %s: 0x%v
+  %u: size: %u, flags: 0x%02x, name: %.*s
+  EEOM (len=%u):
+  EGSD (len=%u):
+  EGSD entry %2u (type: %u, len: %u):   EMH %u (len=%u):   base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x   basis alamat : 0x%08x
+  bitcount: %u, base addr: 0x%08x
   panggilan:
+  chgprtoff : %5u
+  codeadroff: %5u, lpfixoff  : %5u
+  fixuplnk: 0x%08x %08x
+  tanda: 0x%08x
+  iaflink : 0x%08x %08x
+  image %u (%u entries)
+  image %u (%u entries), offsets:
+  lppsbfixoff: %5u
+  psect start: 0x%08x, length: %u
+  qdotadroff: %5u, ldotadroff: %5u
+  qrelfixoff: %5u, lrelfixoff: %5u
   dibutuhkan dari %s:
+  shlextra  : %5u, permctx   : %5u
+  shlstoff  : %5u, shrimgcnt : %5u
+  size : %u
  #: Nama bagian      Nama daerah      Alamat
- <EABI versi tidak dikenal> Urutan kode pengikat Register restore millicode Register simpan millicode [BE8] [FPA float format] [LE8] [Maverick float format] [VFP float format] [EABI Versi 1] [EABI Versi 2] [EABI Versi 3] [EABI Versi 4] [EABI Versi 5] [abi tidak diketahui] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=032] [abi=064] [absolute posisi] [d-float] [simbol dinamis menggunakan segmen indek] [fix dep] [floats melewati dalam register float] [float melewati register integer] [g-float] [memiliki titik masuk] [antar-kerja aktif] [tanda antar-kerja tidak terinisialisasi] [antar-kerja tidak didukung] [antar-kerja didukung] [simbol map mendahului yang lain] [memory=bank-model] [memory=flat] [ABI baru] [bukan abi set] [bukan-pic] [bukan 32bitmode] [ABI lama] [pic] [bebas posisi] [relocatable executable] [software FP] [simbol tabel terurut] [simbol memiliki sebuah awalan _] [ISA tidak diketahui] [simbol tabel tidak terurut] [v10 dan v32] [v32] subtipecpu: %08lx
+ %08x 0x%08x 64B <EABI versi tidak dikenal> BPAGE: %u COM COMM Change Protection (%u entries):
+ Kode Alamat Referensi Dibenarkan:
+ DEF EXE First address : 0x%08x 0x%08x
+ Fourth address: 0x%08x 0x%08x
+ GBL Urutan kode pengikat LIB Linkage Pairs Referece Fixups:
+ NOMOD NORM OVR PIC QVAL RD REL Register restore millicode Register simpan millicode SHR Second address: 0x%08x 0x%08x
+ Shareable images:
+ Shared image  : 0x%08x 0x%08x
+ Third address : 0x%08x 0x%08x
+ UNI VEC VECEP WEAK WRT [64-bit doubles] [BE8] [FPA float format] [LE8] [Maverick float format] [VFP float format] [EABI Versi 1] [EABI Versi 2] [EABI Versi 3] [EABI Versi 4] [EABI Versi 5] [abi tidak diketahui] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=032] [abi=064] [absolute posisi] [d-float] [dsp] [simbol dinamis menggunakan segmen indek] [fix dep] [floats melewati dalam register float] [float melewati register integer] [g-float] [memiliki titik masuk] [antar-kerja aktif] [tanda antar-kerja tidak terinisialisasi] [antar-kerja tidak didukung] [antar-kerja didukung] [simbol map mendahului yang lain] [memory=bank-model] [memory=flat] [ABI baru] [bukan abi set] [bukan-pic] [bukan 32bitmode] [ABI lama] [pic] [bebas posisi] [relocatable executable] [software FP] [simbol tabel terurut] [simbol memiliki sebuah awalan _] [ISA tidak diketahui] [simbol tabel tidak terurut] [v10 dan v32] [v32] corrupted GST
+ subtipecpu: %08lx
  tipe-cpu  : %08lx (%s)
+ debug module table : vbn: %u, size: %u
+ debug symbol table : vbn: %u, size: %u (0x%x)
  tipe-berkas : %08lx (%s)
- tanda     : %08lx ( majik     : %08lx
- ncmds     : %08lx
+ fixup info rva:  tanda     : %08lx ( tanda: 0x%04x global symbol table: vbn: %u, records: %u
+ ident: 0x%08x, name: %.*s
+ ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u
+ image build ident: %.*s
+ identitas program: %.*s
+ nama program     : %.*s
+ tipe gambar: %u (%s) img I/O count: %u, nbr channels: %u, req pri: %08x%08x
+ waktu penyambungan: %s
+ tanda penyambung: %08x; linker ident     : %.*s
+ long-word .address reference fixups:
+ long-word relocation fixups:
+ majik     : %08lx
+ majorid: %u, minorid: %u
+ module offset: 0x%08x, size: 0x%08x, (%u psects)
+ ncmds     : %08lx (%lu)
+ offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u
+ quad-word .address reference fixups:
+ relokasi empat-kata tidak dibenarkan:
  direserve : %08x
+ section: base: 0x%08x%08x size: 0x%08x
  besardariperintah: %08lx
- vma:			Awal  Alamat     Akhir Alamat     Unwind Informasi
+ type: %3u, len: %3u (at 0x%08x):  tipe rekaman EOBJ tidak tertangani %u
+ vbn: %u, pfc: %u, matchctl: %u type: %u ( vma:			Awal  Alamat     Akhir Alamat     Unwind Informasi
  vma:		Awal     Akhir    EH       EH       PrologEnd  Exception
      		Alamat   Alamat   Handler  Data     Alamat     Topeng
  vma:		Mulai    Prolog   Fungsi   Flags    Exception EH
@@ -334,8 +822,8 @@ ppcboot header:
                  Tabel   Stamp     Rantai   Nama      Thunk
 #<Kode error tidak valid>%A memiliki keduanya terurut [`%A' dalam %B] dan daerah tidak terurut [`%A' dalam %B]%A memiliki daerah terurut dan tidak terurut%A:0x%v lrlive .brinfo (%u) berbeda dari analisa (%u)
 %A:0x%v tidak ditemukan dalam tabel fungsi
-%B (%s): Tanda bagian %s (0x%x) diabaikan%B dan %B adalah untuk konfigurasi berbeda%B dan %B adalah untuk cores berbeda%B berisi kode CRIS v32, tidak kompatibel dengan objek sebelumnya%B berisi kode bukan CRIS v32, tidak kompatibel dengan objek sebelumnya%B tidak diperbolehkan untuk didefinisikan %s%B bagian %A melebihi ukuran grup stub%B nomor simbol %lu referensi tidak ada SHT_SYMTAB_SHNDX bagian%B(%A): tabel properti tidak valid%B(%A+0x%lx): %s fixup untuk insn 0x%x tidak didukung dalam sebuah sambunga tidak terbagi%B(%A+0x%lx): %s relokasi terhadap `%s': error %d%B(%A+0x%lx): %s relokasi terhadap simbol lokal%B(%A+0x%lx): %s relokasi terhadap bagian SEC_MERGE%B(%A+0x%lx): %s digunakan dengan simbol TLS %s%B(%A+0x%lx): %s digunakan dengan simbol bukan-TLS %s%B(%A+0x%lx): Hanya ADD atau SUB instruksi yang diperbolehkan untuk grup ALU relokasi%B(%A+0x%lx): Overflow ketika membagi 0x%lx untuk relokasi grup %s%B(%A+0x%lx): R_68K_TLS_LE32 relokasi tidak diperbolehkan dalam objek terbagi%B(%A+0x%lx): R_ARM_TLS_LE32 relokasi tidak diperbolehkan dalam objek terbagi%B(%A+0x%lx): Masukan stabs memiliki index string tidak valid.%B(%A+0x%lx): otomatis multiple TOC tidak didukung menggunakan berkas crt anda; rekompile dengan -mminimal-toc atau upgrade gcc%B(%A+0x%lx): tidak dapat menangani %s untuk %s%B(%A+0x%lx): tidak dapat mencapai %s%B(%A+0x%lx): tidak dapat mencapai %s, rekompile dengan -ffunction-sections%B(%A+0x%lx): tidak dapat mendeko instruksi untuk XTENSA_ASM_SIMPLIFY relokasi; mungkin konfigurasi tidak cocok%B(%A+0x%lx): tidak dapat mendeko instruksi; mungkin konfigurasi tidak cocok%B(%A+0x%lx): instruksi tidak valid untuk relokasi TLS %s%B(%A+0x%lx): bukan-nol ditambahkan di %s relokasi terhadap `%s'%B(%A+0x%lx): relokasi terhadap `%s': %s%B(%A+0x%lx): relokasi terhadap `%s': error %d%B(%A+0x%lx): Relokasi %s untuk fungsi tidak langsung %s tidak didukung.%B(%A+0x%lx): ofset relokasi diluar jangkauan (size=0x%x)%B(%A+0x%lx): sibling call optimization ke `%s' tidak membolehkan otomatis multiple TOC; rekompile dengan -mminimal-toc atau -fno-optimize-sibling-calls, atau buat `%s' extern%B(%A+0x%lx): unexpected fix untuk relokasi %s%B(%A+0x%lx): tidak teresolf %s relokasi terhadap simbol `%s'%B(%A+0x%lx): relokasi tidak teresolf terhadap simbol `%s'%B(%A+0x%v): panggilan untuk daerah bukan-kode %B(%A), analysis tidak lengkap
-%B(%A+0x%x): relokasi ke `%s+%x' mungkin menyebabkan error diatas%B(%s): peringatan: antar-kerja tidak diaktifkan.
+%B (%s): Tanda bagian %s (0x%x) diabaikan%B dan %B adalah untuk konfigurasi berbeda%B dan %B adalah untuk cores berbeda%B berisi kode CRIS v32, tidak kompatibel dengan objek sebelumnya%B berisi kode bukan CRIS v32, tidak kompatibel dengan objek sebelumnya%B has has both the current and legacy Tag_MPextension_use attributes%B tidak diperbolehkan untuk didefinisikan %s%B bagian %A melebihi ukuran grup stub%B nomor simbol %lu referensi tidak ada SHT_SYMTAB_SHNDX bagian%B(%A): error: call to undefined function '%s'%B(%A): internal error: relokasi berbahaya%B(%A): internal error: diluar jangkauan error%B(%A): internal error: error tidak diketahui%B(%A): internal error: relokasi tidak didukung error%B(%A): tabel properti tidak valid%B(%A): tidak aman PID relokasi %s di 0x%08lx (terhadap %s dalam %s)%B(%A): peringatan: tidak alignment akses ke simbol '%s' dalam area data kecil%B(%A+0x%B(%A+0x%lx): %s fixup untuk insn 0x%x tidak didukung dalam sebuah sambunga tidak terbagi%B(%A+0x%lx): %s relokasi terhadap bagian SEC_MERGE%B(%A+0x%lx): %s relokasi terhadap simbol eksternal "%s"%B(%A+0x%lx): %s digunakan dengan simbol TLS %s%B(%A+0x%lx): %s digunakan dengan simbol bukan-TLS %s%B(%A+0x%lx): Hanya ADD atau SUB instruksi yang diperbolehkan untuk grup ALU relokasi%B(%A+0x%lx): Overflow ketika membagi 0x%lx untuk relokasi grup %s%B(%A+0x%lx): R_68K_TLS_LE32 relokasi tidak diperbolehkan dalam objek terbagi%B(%A+0x%lx): R_ARM_TLS_LE32 relokasi tidak diperbolehkan dalam objek terbagi%B(%A+0x%lx): Masukan stabs memiliki index string tidak valid.%B(%A+0x%lx): tidak dapat mengeluarkan fixups `%s' dalam bagian baca-saja%B(%A+0x%lx): tidak dapat menangani %s untuk %s%B(%A+0x%lx): tidak dapat mencapai %s, rekompile dengan -ffunction-sections%B(%A+0x%lx): tidak dapat mendeko instruksi untuk XTENSA_ASM_SIMPLIFY relokasi; mungkin konfigurasi tidak cocok%B(%A+0x%lx): tidak dapat mendeko instruksi; mungkin konfigurasi tidak cocok%B(%A+0x%lx): instruksi tidak valid untuk relokasi TLS %s%B(%A+0x%lx): relokasi terhadap `%s': error %d%B(%A+0x%lx): ofset relokasi diluar jangkauan (size=0x%x)%B(%A+0x%lx): unexpected fix untuk relokasi %s%B(%A+0x%lx): tidak teresolf %s relokasi terhadap simbol `%s'%B(%A+0x%lx): relokasi tidak teresolf terhadap simbol `%s'%B(%A+0x%lx):tidak terduga instruksi ARM '0x%x' dalam TLS trampoline%B(%A+0x%lx):unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC%B(%A+0x%lx):tidak terduga instruksi Thumb '0x%x' dalam TLS trampoline%B(%A+0x%lx):unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC%B(%A+0x%v): panggilan untuk daerah bukan-kode %B(%A), analysis tidak lengkap
+%B(%s): peringatan: antar-kerja tidak diaktifkan.
   pertemuan pertama: %B: ARM panggil ke Thumb%B(%s): peringatan: antar-kerja tidak aktif.
   pertemuan pertama: %B: Thumb call ke ARM%B(%s): peringatan: antar-kerja tidak diaktifkan.
   pertemuan pertama: %B: arm panggil ke thumb%B(%s): peringatan: antar-kerja tidak aktif.
@@ -345,30 +833,90 @@ ppcboot header:
   relokasi %s tidak valid dalam sebuah objek terbagi; umumnya sebuah kesalahan pilihan, rekompile dengan -fPIC%B, bagian %A:
   relokasi %s seharusnya digunakan dalam sebuah objek terbagi; rekompile dengan -fPIC%B, bagian %A:
   v10/v32 objek kompatibel %s harus berisi sebuah relokasi PIC%B, bagian %A: Bukan PLT untuk relokasi %s terhadap simbol `%s'%B, bagian %A: Bukan PLT atau GOT untuk relokasi %s terhadap simbol `%s'%B, bagian %A: relokasi %s memiliki sebuah referensi tidak terdefinisi ke `%s', mungkin sebuah kesalahan deklarasi?%B, bagian %A: relokasi %s tidak diperbolehkan untuk simbol global: `%s'%B, bagian %A: relokasi %s tidak diperbolehkan untuk simbol global: `%s' yang didefinisikan diluar aplikasi, mungkin sebuah kesalahan deklarasi?%B, bagian %A: relokasi %s dengan tidak GOT dibuat%B, bagian %A: relokasi %s dengan bukan-nol ditambahkan %d terhadap simbol lokal%B, bagian %A: relokasi %s dengan bukan-nol ditambakan %d terhadap simbol `%s'%B, bagian %A: relokasi tidak teresolf %s terhadap simbol `%s'%B, bagian `%A', ke simbol `%s':
-  relokasi %s seharusnya digunakan dalam sebuah objek terbagi; rekompilasi dengan -fPIC%B: !samegp relokasi terhadap simbol tanpa .prologue: %s%B: %A+0x%lx: lompat ke routine stub dimana bukan jal%B: %s simbol `%s' dalam %B adalah direferensikan oleh DSO%B: %s simbol `%s' tidak didefinisikan%B: %s: tidak valid dibutuhkan versi %d%B: %s: versi %u tidak valid (max %d)%B: '%s' keduanya diakses secara normal dan thread simbol lokal%B: .got subsegmen melebihi 64K (size %d)%B: .opd adalah bukan array regular dari masukan opd%B: .preinit_array bagian tidak diperbolehkan dalam DSO%B: 0x%lx: fatal: R_SH_PSHA relokasi %d tidak dalam jangkauan -32..32%B: 0x%lx: fatal: R_SH_PSHL relokasi %d tidak dalam jangkauan -32..32%B: 0x%lx: fatal: relokasi overflow ketika relaxing%B: 0x%lx: fatal: unaligned %s relokasi 0x%lx%B: 0x%lx: fatal: unaligned branch target untuk relax-support relokasi%B: 0x%lx: peringatan: R_SH_USES titik tidak dikenal insn 0x%x%B: 0x%lx: peringatan: ofset R_SH_USES beban buruk%B: 0x%lx: peringatan: ofset R_SH_USES buruk%B: 0x%lx: peringatan: jumlah buruk%B: 0x%lx: peringatan: tidak dapat menemukan COUNT relokasi%B: 0x%lx: peringatan: tidak dapat menemukan relokasi yang diperkirakan%B: 0x%lx: peringatan: simbol dalam bagian yang tidak diperkirakan%B: @gprel relokasi terhadap simbol dinamis %s%B: @internal branck ke simbol dinamis %s%B: @pcrel relokasi terhadap simbol dinamis %s%B: ABI tidak kompatibel dengan yang dipilih di emulasi%B: ABI tidak cocok: menghubungkan modul %s dengan modul %s sebelumnya%B: Arsitektur tidak cocok dengan modul sebelumnya%B: hanya images BE8 valid dalam mode big-endian.%B: Catatan relokasi buruk terimpor: %d%B: CALL15 relokasi di 0x%lx tidak terhadap simbol global%B: CALL16 relokasi di 0x%lx tidak terhadap simbol global%B: Tidak dapat menemukan cocok LO16 relokasi terhadap `%s' untuk %s di 0x%lx di daerah `%A'%B: Tidak dapat relaks br (%s) ke `%s' di 0x%lx dalam daerah `%A' dengan ukuran 0x%lx (> 0x1000000).%B: Tidak dapat relaks br di 0x%lx dalam daerah `%A'. Tolong gunakan brl atau indirect branch.%B: Tidak dapat menangani binari yang dikompres Alpha.
-   Menggunakan tanda kompiler, atau objZ, untuk menghasilkan binari tidak terkompres.%B: Ukuran bagian korup dalam grup bagian kepala: 0x%lx%B: Gagal menambahkan simbol diubah namanya %s%B: GOT overflow: Jumlah dari relokasi dengan offset 8- atau 16-bit > %d%B: GOT overflow: Jumlah dari relokasi dengan offset 8-bit > %d%B: GOT relokasi di 0x%lx tidak diduga dalam aplikasi%B: IMPORT SEBAGAI direktif untuk %s menyembunyikan IMPORT SEBAGAI sebelumnya%B: Set Instruksi tidak cocok dengan modul sebelumnya%B: Tipe relokasi tidak valid terimpor: %d%B: Malformed relokasi terdeteksi untuk daerah %s%B: tidak cukup ruang untuk kepala aplikasi, coba linking dengan -N%B: Hanya register %%g[2367] dapat dideklarasikan menggunakan STT_REGISTER%B: Dikenal tetapi tidak tertangani tipe mesin (0x%x) dalam Import Library Format archive%B: Relokasi %s (%d) saat ini tidak didukung.
-%B: Relokasi dalam ELF standar (EM: %d)%B: TLS lokal exec kode tidak dapat dihubungkan dalam objek terbagi%B: TLS transisi dari %s ke %s terhadap `%s' di 0x%lx dalam bagian `%A' gagal%B: bagian pertama dalam segmen PT_DYNAMIC tidak dalam bagian .dynamic%B: Target (%s) dari sebuah %s relokasi berada dalam bagian yang salah (%A)%B: Terlalu banyak bagian: %d (>= %d)%B: Tidak dapat mengurutkan relokasi - mereka berada dalam lebih dari satu ukuran%B: Tidak dapat mengurutkan relokasi - mereka dari ukuran yang tidak diketahui%B: Tipe impor tidak tertangani; %x%B: atribut objek wajib EABI tidak diketahui %d%B: Tipe relokasi %d tidak dikenal
+  relokasi %s seharusnya digunakan dalam sebuah objek terbagi; rekompilasi dengan -fPIC%B: !samegp relokasi terhadap simbol tanpa .prologue: %s%B: %A+0x%lx: Direct jumps between ISA modes are not allowed; consider recompiling with interlinking enabled.%B: %s: tidak valid dibutuhkan versi %d%B: %s: versi %u tidak valid (max %d)%B: '%s' keduanya diakses secara normal dan thread simbol lokal%B: .got subsegmen melebihi 64K (size %d)%B: .opd adalah bukan array regular dari masukan opd%B: .preinit_array bagian tidak diperbolehkan dalam DSO%B: 0x%lx: fatal: R_SH_PSHA relokasi %d tidak dalam jangkauan -32..32%B: 0x%lx: fatal: R_SH_PSHL relokasi %d tidak dalam jangkauan -32..32%B: 0x%lx: fatal: relokasi overflow ketika relaxing%B: 0x%lx: fatal: unaligned %s relokasi 0x%lx%B: 0x%lx: fatal: unaligned branch target untuk relax-support relokasi%B: 0x%lx: peringatan: R_SH_USES titik tidak dikenal insn 0x%x%B: 0x%lx: peringatan: ofset R_SH_USES beban buruk%B: 0x%lx: peringatan: ofset R_SH_USES buruk%B: 0x%lx: peringatan: jumlah buruk%B: 0x%lx: peringatan: tidak dapat menemukan COUNT relokasi%B: 0x%lx: peringatan: tidak dapat menemukan relokasi yang diperkirakan%B: 0x%lx: peringatan: simbol dalam bagian yang tidak diperkirakan%B: @gprel relokasi terhadap simbol dinamis %s%B: @internal branck ke simbol dinamis %s%B: @pcrel relokasi terhadap simbol dinamis %s%B: ABI tidak kompatibel dengan yang dipilih di emulasi%B: ABI tidak cocok: menghubungkan modul %s dengan modul %s sebelumnya%B: ASE tidak cocok: menghubungkan modul %s dengan modul %s sebelumnya%B: Arsitektur tidak cocok dengan modul sebelumnya%B: hanya images BE8 valid dalam mode big-endian.%B: Catatan relokasi buruk terimpor: %d%B: CALL15 relokasi di 0x%lx tidak terhadap simbol global%B: CALL16 relokasi di 0x%lx tidak terhadap simbol global%B: Tidak dapat menemukan cocok LO16 relokasi terhadap `%s' untuk %s di 0x%lx di daerah `%A'%B: Tidak dapat relaks br (%s) ke `%s' di 0x%lx dalam daerah `%A' dengan ukuran 0x%lx (> 0x1000000).%B: Tidak dapat relaks br di 0x%lx dalam daerah `%A'. Tolong gunakan brl atau indirect branch.%B: Tidak dapat menangani binari yang dikompres Alpha.
+   Menggunakan tanda kompiler, atau objZ, untuk menghasilkan binari tidak terkompres.%B: Cannot link together %s and %s objects.%B: Ukuran bagian korup dalam grup bagian kepala: 0x%lx%B: Gagal menambahkan simbol diubah namanya %s%B: Fungsi deskripsi relokasi dengan bukan-nol ditambakan%B: GOT overflow: Jumlah dari relokasi dengan offset 8- atau 16-bit > %d%B: GOT overflow: Jumlah dari relokasi dengan offset 8-bit > %d%B: GOT relokasi di 0x%lx tidak diduga dalam aplikasi%B: IMPORT SEBAGAI direktif untuk %s menyembunyikan IMPORT SEBAGAI sebelumnya%B: Set Instruksi tidak cocok dengan modul sebelumnya%B: Tipe relokasi tidak valid terimpor: %d%B: Malformed relokasi terdeteksi untuk daerah %s%B: tidak cukup ruang untuk kepala aplikasi, coba linking dengan -N%B: Hanya register %%g[2367] dapat dideklarasikan menggunakan STT_REGISTER%B: Dikenal tetapi tidak tertangani tipe mesin (0x%x) dalam Import Library Format archive%B: Relokasi %s (%d) saat ini tidak didukung.
+%B: Relokasi dalam ELF standar (EM: %d)%B: SB-relative relokasi tetapi __c6xabi_DSBT_BASE tidak terdefinisi%B: TLS lokal exec kode tidak dapat dihubungkan dalam objek terbagi%B: TLS transisi dari %s ke %s terhadap `%s' di 0x%lx dalam bagian `%A' gagal%B: bagian pertama dalam segmen PT_DYNAMIC tidak dalam bagian .dynamic%B: Target (%s) dari sebuah %s relokasi berada dalam bagian yang salah (%A)%B: Terlalu banyak bagian: %d (>= %d)%B: Tidak dapat mengurutkan relokasi - mereka berada dalam lebih dari satu ukuran%B: Tidak dapat mengurutkan relokasi - mereka dari ukuran yang tidak diketahui%B: Tipe impor tidak tertangani; %x%B: atribut objek wajib EABI tidak diketahui %d%B: Tipe relokasi %d tidak dikenal
 %B: Tipe bagian tidak diketahui dalam berkas a.out.adobe: %x
-%B: Perintah .directive tidak dikenal: %s%B: Nama tipe impor tidak dikenal; %x%B: Tipe impor tidak dikenal; %x%B: Tipe mesin (0x%x) tidak dikenal dalam Import Library Format archive%B: kelas %d penyimpanan tidak dikenal untuk %s simbol `%s'%B: Peringatan: Mengabaikan tanda bagian IMAGE_SCN_MEM_NOT_PAGED dalam bagian %s%B: Peringatan: Thumb BLX instruksi target thumb fungsi '%s'.%B: Peringatan: pilihan `%s' buruk ukuran %u lebih kecil dari headernya%B: Peringatan: tidak dapat menentukan fungsi terget untuk daerah stub `%s'%B: XMC_TC0 simbol `%s' adalah kelas %d scnlen %d%B: `%s' terakses kedua sebagai normal dan memperlakukan lokal simbol%B: `%s' memiliki nomor baris tetapi tidak ditutupi daerah%B: `%s' dalam relokasi loader tetapi bukan loader sym%B: `ld -r' tidak didukung dengan PE MIPS objek
+%B: Perintah .directive tidak dikenal: %s%B: Nama tipe impor tidak dikenal; %x%B: Tipe impor tidak dikenal; %x%B: Tipe mesin (0x%x) tidak dikenal dalam Import Library Format archive%B: kelas %d penyimpanan tidak dikenal untuk %s simbol `%s'%B: Peringatan: Mengabaikan tanda bagian IMAGE_SCN_MEM_NOT_PAGED dalam bagian %s%B: Peringatan: Thumb BLX instruksi target thumb fungsi '%s'.%B: Peringatan: pilihan `%s' buruk ukuran %u lebih kecil dari headernya%B: Peringatan: tidak dapat menentukan fungsi terget untuk daerah stub `%s'%B: XMC_TC0 simbol `%s' adalah kelas %d scnlen %d%B: `%s' terakses kedua sebagai FDPIC dan memperlakukan lokal simbol%B: `%s' terakses kedua sebagai normal dan FDPIC simbol%B: `%s' terakses kedua sebagai normal dan memperlakukan lokal simbol%B: `%s' memiliki nomor baris tetapi tidak ditutupi daerah%B: `%s' dalam relokasi loader tetapi bukan loader sym%B: `ld -r' tidak didukung dengan PE MIPS objek
 %B: simbol XTY_ER buruk `%s': kelas %d scnum %d scnlen %d%B: pasangan/reflo buruk setelah refhi
-%B: alamat relokasi buruk 0x%lx dalam bagian `%A'%B: bad relokasi simbol indeks (0x%lx >= 0x%lx) untuk ofset 0x%lx dalam daerah `%A'%B: relokasi bagian nama `%s' buruk%B: buruk panjang bagian dalam ihex_read_section%B: string buruk ukuran tabel %lu%B: memiliki indek simbol: %d%B: tidak dapat membuat masukan stub %s%B: perubahan dalam gp: BRSGP %s%B: kelas %d simbol `%s' tidak memiliki tambahan masukan%B: dikompile untuk sebuah sistem 64 bit dan target adalah 32 bit%B: dikompile untuk sebuah sistem big endian dan target adalah little endian%B: dikompile untuk sebuah sistem little endian dan target adalah big endian%B: dikompile secara normal dan dihubungkan dengan modul yang dikompile dengan -mrelocatable%B: dikompile dengan -mrelocatable dan dihubungkan dengan module yang dikompile secara normal%B: tidak dapat menemukan bagian keluaran %A untuk daerah masukan %A%B: tidak dapat menemukan daerah keluaran %s%B: csect `%s' tidak dalam lingkup daerah%B: tidak tahu bagaimana menangani bagian spesifik OS `%s' [0x%8x]%B: tidak tahu bagaimana menangani alokasi, bagian spesifik aplikasi `%s' [0x%8x]%B: tidak tahu bagaimana menangani bagian spesifik prosesor `%s' [0x%8x]%B: tidak tahu bagaimana menangani bagian `%s' [0x%8x]%B: dtp-relative relokasi terhadap simbol dinamis %s%B: duplikasi export stub %s%B: daerah duplikasi `%A' memiliki ukuran berbeda%B: endianness tidak kompatibel dengan yang dipilih di emulasi%B: error: Cortex-A8 erratum stub dialokasikan dalam lokasi yang tidak aman%B: error: Cortex-A8 erratum stub diluar dari jangkauan (berkas masukan terlalu besar)%B: error: VFP11 veneer diluar jangkauan%B: error: relokasi %s bukan multiple dari %d%B: error: tipe relokasi unaligned %d di %08x relokasi %p
-%B: gp-relative relokasi terhadap simbol dinamis %s%B: peringatan daerah duplikasi `%A'%B: tipe relokasi %d ilegal di alamat 0x%lx%B: indek simbol ilegal dalam relokasi: %d%B: tipe mesin tidak kompatibel. Keluaran adalah 0x%x. Masukan adalah 0x%x%B: indirect simbol `%s' ke `%s' adalah sebuah loop%B: internal error dalam ihex_read_section%B: masukan SHT_GROUP tidak valid%B: link tidak valid %lu untuk bagian relokasi %s (indek %u)%B: tipe relokasi %d tidak valid%B: string ofset tidak valid %u >= %lu untuk bagian `%s'%B: lompat terlalu jauh
-%B: menghubungkan %s modul dengan modul %s sebelumnya%B: menghubungkan 32-bit kode dengan 64-bit kode%B: menghubungkan berkas 64-bit dengan berkas 32-bit%B: menghubungkan UltraSPARC spesifik dengan HAL spesifik kode%B: menghubungkan berkas auto-pic dengan berkas non-auto-pic%B: menghubungkan berkas big-endian dengan berkas little-endian%B: menghubungkan berkas constant-gp dengan berkas bukan-constant-gp%B: menghubungkan berkas yang dikompile untuk 16-bit integer (-mshort) dan yang lain untuk 32-bit integer%B: menghubungkan berkas yang dikompile untuk 32-bit double (-fshort-double) dan yang lain untuk 64-bit double%B: menghubungkan berkas dikompile untuk HCS12 dengan yang lain dikompile untuk HC12%B: menghubungkan berkas little endian dengan berkas big endian%B: menghubungkan dengan kode bukan-pic dalam sebuah executable bebas posisi%B: menghubungkan trap-on-NULL-dereference dengan berkas bukan-trapping%B: loader relokasi dalam daerah baca-saja %A%B: loader relokasi dalam daerah tidak dikenal `%s'%B: salah tempat XTY_LD `%s'%B: hilang daerah TLS untuk relokasi %s terhadap `%s' di 0x%lx dalam daerah `%A'.%B: tidak ada informasi grup untuk bagian %A%B: bukan-pic kode dengan relokasi imm terhadap simbol dinamis `%s'%B: bukan-nol simbol indeks (0x%lx) untuk offset 0x%lx dalam bagian `%A' ketika berkas objek tidak memiliki tabel simbol%B: pc-relative relokasi terhadap simbol dinamis %s%B: pc-relative relokasi terhadap simbol lemah tidak terdefinisi %s%B: mungkin dikompile tanpa -fPIC?%B: relokasi %s:%d tidak dalam csect%B: relokasi terhadap simbol indek yang tidak ada: %ld%B: relokasi %s terhadap %s `%s' tidak dapat digunakan ketika membuat sebuah objek terbagi%s%B: relokasi %s terhadap STT_GNU_IFUNC simbol `%s' memiliki addend bukan-nol: %d%B: relokasi %s terhadap STT_GNU_IFUNC simbol `%s' tidak ditangani oleh %s%B: relokasi %s terhadap `%s' tidak dapat digunkan ketika membuat sebuah objek terbagi; rekompile dengan -fPIC%B: relokasi %s terhadap tidak terdefinisi %s `%s' tidak dapat digunakan ketika membuat sebuah objek terbagi %s%B: relokasi %s tidak dapat digunakan ketika membuat sebuah objek terbagi; rekompile dengan -fPIC%B: relokasi %s tidak dapat digunakan ketika membuat sebuah objek terbagi%B: relokasi %s tidak didukung untuk simbol %s.%B: relokasi %s tidak didukung untuk simbol %s.%B: relokasi R_386_GOTOFF terhadap fungsi terproteksi `%s' tidak dapat digunakan ketika membuat sebuah objek terbagi%B: relokasi R_386_GOTOFF terhadap %s `%s' tidak terdefinisi tidak dapat digunakan ketika membuah sebuah objek terbagi%B: relokasi R_X86_64_GOTOFF64 terhadap fungsi terproteksi `%s' tidak dapat digunakan ketika membuat sebuah objek terbagi%B: relokasi di `%A+0x%x' simbol referensi `%s' dengan bukan nol ditambahkan%B: ukuran relokasi tidak cocok dalam %B bagian %A%B: relokasi dalam bagian `%A', tetapi ini tidak memiliki isi%B: bagian %A vma 0x%lx overlaps bagian sebelumnya%B: bagian %s: tabel string overflow di offset %ld%B: bagian `%A' tidak dapat dialokasikan dalam segmen %d%B: sh_link [%ld] dalam bagian `%A' tidak benar%B: sh_link dari bagian `%A' menunjuk ke bagian terbuang `%A' dari `%B'%B: sh_link dari bagian `%A' menunjuk ke bagian terhapus `%A' dari `%B'%B: besar field adalah nol dalam Import Library Format header%B: spekulasi fixup ke simbol dinamis %s%B: string tidak diakhiri kosong dalam berkas objek ILF.%B: simbol `%s' memiliki tipe %d csect tidak dikenal%B: simbol `%s' memiliki smclas tidak dikenal %d%B: simbol `%s' dibutuhkan tetapi tidak ada%B: target (%s) dari sebuah relokasi %s berada dalam daerah keluaran salah (%s)%B: tp-relative relokasi terhadap simbol dinamis %s%B: tidak dapat mengisi dalam DataDictionary[12] karena .idata$5 hilang%B: tidak dapat mengisi dalam DataDictionary[1] karena .idata$2 hilang%B: tidak dapat mengisi dalam DataDictionary[1] karena .data$4 hilang%B: tidak dapat mengisi dalam DataDictionary[9] karena __tls_used hilang%B: tidak dapat mengisi dalam DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] karena .idata$6 hilang%B: tidak dapat menemukan lem ARM '%s' untuk `%s'%B: tidak dapat menemukan lem THUMB '%s' untuk `%s'%B: tidak dapat menemukan VFP11 veneer `%s'%B: tidak terdefinisi simbol `%s' dalam bagian .opd%B: tipe ATN %d tidak diduga dalam bagian luar%B: tidak diduga redefinisi dari indirek versioned simbol `%s'%B: tipe relokasi %u tidak diduga dalam bagian .opd%B: tidak diduga tipe sesudah ATN%B: relokasi dinamis tidak ditangani terhadap %s%B: tidak terimplementasi %s
-%B: tidak terimplementasi ATI record %u untuk simbol %u%B: tidak diketahui [%d] bagian `%s' dalam grup [%s]%B: tipe relokasi %d tidak diketahui%B: tipe relokasi %d tidak dikenal untuk simbol %s%B; tidak diketahui/tidak didukung tipe relokasi %d%B: relokasi tidak dikenal (0x%x) dalam bagian `%A'%B: tipe relokasi %i tidak didukung%B: tipe relokasi tidak didukung %s%B: relokasi tidak didukung: ALPHA_R_GPRELHIGH%B: relokasi tidak didukung: ALPHA_R_GPRELLOW%B: menggunakan awalan _ simbol, tetapi menulis berkas dengan simbol tanpa awalan%B: menggunakan field e_flags (0x%lx) berbeda dari modul sebelumnya (0x%lx)%B: menggunakan simbol tanpa awalan, tetapi menulis berkas dengan simbol awalan _%B: titik versi tidak ditemukan untuk simbol %s%B: peringatan: COMDAT simbol '%s' tidak cocok dengan nama bagian '%s'%B: peringatan: loadable segmen kosong terdeteksi, apakah ini sengaja ?
-%B: peringatan: alokasi bagian `%s' tidak dalam segmen%B: peringatan: tidak dapat membaca isi dari daerah `%A'%B: peringatan: duplikasi informasi nomor baris untuk `%s'%B: peringatan: duplikasi daerah `%A' memiliki isi berbeda%B: peringatan: bagian terduplikasi `%A' memiliki ukuran berbeda
-%B: peringatan: mengabaikan bagiann terduplikasi `%A'
-%B: peringatan: simbol index %ld ilegal dalam nomor baris%B: peringatan: indek simbol ilegal %ld dalam relokasi%B: peringatan: pembacaan tabel nomor baris gagal%B: peringatan: menghubungkan berkas PIC dengan berkas bukan-PIC%B: peringatan: menghubungkan berkas abicalls dengan berkas bukan-abicalls%B: peringatan: memilih VFP11 erratum penyelesaian adalah tidak diperlukan untuk arsitektur target%B: peringatan: sh_link tidak diset untuk bagian `%A'%B:%A%s melebihi ukuran overlay
-%B:%d: Checksum buruk dalam berkas S-record
+%B: alamat relokasi buruk 0x%lx dalam bagian `%A'%B: bad relokasi simbol indeks (0x%lx >= 0x%lx) untuk ofset 0x%lx dalam daerah `%A'%B: relokasi bagian nama `%s' buruk%B: buruk panjang bagian dalam ihex_read_section%B: string buruk ukuran tabel %lu%B: memiliki indek simbol: %d%B: tidak dapat membuat masukan stub %s%B: perubahan dalam gp: BRSGP %s%B: kelas %d simbol `%s' tidak memiliki tambahan masukan%B: dikompile untuk sebuah sistem 64 bit dan target adalah 32 bit%B: dikompile untuk sebuah sistem big endian dan target adalah little endian%B: dikompile untuk sebuah sistem little endian dan target adalah big endian%B: dikompile secara normal dan dihubungkan dengan modul yang dikompile dengan -mrelocatable%B: dikompile dengan -mrelocatable dan dihubungkan dengan module yang dikompile secara normal%B: tidak dapat menemukan bagian keluaran %A untuk daerah masukan %A%B: tidak dapat menemukan daerah keluaran %s%B: tidak dapat membaca isi dari daerah `%A'
+%B: csect `%s' tidak dalam lingkup daerah%B: tidak tahu bagaimana menangani bagian spesifik OS `%s' [0x%8x]%B: tidak tahu bagaimana menangani alokasi, bagian spesifik aplikasi `%s' [0x%8x]%B: tidak tahu bagaimana menangani bagian spesifik prosesor `%s' [0x%8x]%B: tidak tahu bagaimana menangani bagian `%s' [0x%8x]%B: dtp-relative relokasi terhadap simbol dinamis %s%B: duplikasi export stub %s%B: duplikasi daerah `%A' memiliki isi berbeda
+%B: daerah duplikasi `%A' memiliki ukuran berbeda
+%B: endianness tidak kompatibel dengan yang dipilih di emulasi%B: error: Cortex-A8 erratum stub dialokasikan dalam lokasi yang tidak aman%B: error: Cortex-A8 erratum stub diluar dari jangkauan (berkas masukan terlalu besar)%B: error: VFP11 veneer diluar jangkauan%B: error: tipe relokasi unaligned %d di %08x relokasi %p
+%B: error: tidak diketahui EABI wajib atribut objek %d%B: berkas kelas %s tidak kompatibel dengan %s%B: gp-relative relokasi terhadap simbol dinamis %s%B: tersembunyi simbol `%s' dalam %B adalah direferensikan oleh DSO%B: tersembunyi simbol `%s' tidak didefinisikan%B: mengabaikan daerah duplikasi `%A'
+%B: tipe relokasi %d ilegal di alamat 0x%lx%B: indek simbol ilegal dalam relokasi: %d%B: tipe mesin tidak kompatibel. Keluaran adalah 0x%x. Masukan adalah 0x%x%B: indirect simbol `%s' ke `%s' adalah sebuah loop%B: internal error dalam ihex_read_section%B: internal simbol `%s' dalam %B adalah direferensikan oleh DSO%B: internal simbol `%s' tidak didefinisikan%B: masukan SHT_GROUP tidak valid%B: link tidak valid %lu untuk bagian relokasi %s (indek %u)%B: tipe relokasi %d tidak valid%B: string ofset tidak valid %u >= %lu untuk bagian `%s'%B: lompat terlalu jauh
+%B: menghubungkan %s modul dengan modul %s sebelumnya%B: menghubungkan 32-bit kode dengan 64-bit kode%B: menghubungkan berkas 64-bit dengan berkas 32-bit%B: menghubungkan UltraSPARC spesifik dengan HAL spesifik kode%B: menghubungkan berkas auto-pic dengan berkas non-auto-pic%B: menghubungkan berkas big-endian dengan berkas little-endian%B: menghubungkan berkas constant-gp dengan berkas bukan-constant-gp%B: menghubungkan berkas yang dikompile untuk 16-bit integer (-mshort) dan yang lain untuk 32-bit integer%B: menghubungkan berkas yang dikompile untuk 32-bit double (-fshort-double) dan yang lain untuk 64-bit double%B: menghubungkan berkas dikompile untuk HCS12 dengan yang lain dikompile untuk HC12%B: menghubungkan berkas little endian dengan berkas big endian%B: menghubungkan dengan kode bukan-pic dalam sebuah executable bebas posisi%B: menghubungkan trap-on-NULL-dereference dengan berkas bukan-trapping%B: loader relokasi dalam daerah baca-saja %A%B: loader relokasi dalam daerah tidak dikenal `%s'%B: lokal simbol `%s' dalam %B adalah direferensikan oleh DSO%B: salah tempat XTY_LD `%s'%B: hilang daerah TLS untuk relokasi %s terhadap `%s' di 0x%lx dalam daerah `%A'.%B: tidak ada informasi grup untuk bagian %A%B: bukan-pic kode dengan relokasi imm terhadap simbol dinamis `%s'%B: bukan-nol simbol indeks (0x%lx) untuk offset 0x%lx dalam bagian `%A' ketika berkas objek tidak memiliki tabel simbol%B: pc-relative relokasi terhadap simbol dinamis %s%B: pc-relative relokasi terhadap simbol lemah tidak terdefinisi %s%B: mungkin dikompile tanpa -fPIC?%B: terproteksi simbol `%s' tidak didefinisikan%B: relokasi %s:%d tidak dalam csect%B: relokasi terhadap simbol indek yang tidak ada: %ld%B: relokasi %s terhadap %s `%s' tidak dapat digunakan ketika membuat sebuah objek terbagi%s%B: relokasi %s terhadap STT_GNU_IFUNC simbol `%s' memiliki addend bukan-nol: %d%B: relokasi %s terhadap STT_GNU_IFUNC simbol `%s' tidak ditangani oleh %s%B: relokasi %s terhadap `%s' tidak dapat digunkan ketika membuat sebuah objek terbagi; rekompile dengan -fPIC%B: relokasi %s terhadap simbol `%s' tidak didukung dalam mode x32%B: relokasi %s terhadap tidak terdefinisi %s `%s' tidak dapat digunakan ketika membuat sebuah objek terbagi %s%B: relokasi %s tidak dapat digunakan ketika membuat sebuah objek terbagi; rekompile dengan -fPIC%B: relokasi %s tidak dapat digunakan ketika membuat sebuah objek terbagi%B: relokasi R_386_GOTOFF terhadap fungsi terproteksi `%s' tidak dapat digunakan ketika membuat sebuah objek terbagi%B: relokasi R_386_GOTOFF terhadap %s `%s' tidak terdefinisi tidak dapat digunakan ketika membuah sebuah objek terbagi%B: relokasi R_X86_64_GOTOFF64 terhadap fungsi terproteksi `%s' tidak dapat digunakan ketika membuat sebuah objek terbagi%B: relokasi di `%A+0x%x' simbol referensi `%s' dengan bukan nol ditambahkan%B: ukuran relokasi tidak cocok dalam %B bagian %A%B: relokasi dalam bagian `%A', tetapi ini tidak memiliki isi%B: bagian %A lma %#lx dibenarkan ke %#lx%B: bagian %s: tabel string overflow di offset %ld%B: bagian `%A' tidak dapat dialokasikan dalam segmen %d%B: sh_link [%ld] dalam bagian `%A' tidak benar%B: sh_link dari bagian `%A' menunjuk ke bagian terbuang `%A' dari `%B'%B: sh_link dari bagian `%A' menunjuk ke bagian terhapus `%A' dari `%B'%B: besar field adalah nol dalam Import Library Format header%B: spekulasi fixup ke simbol dinamis %s%B: string tidak diakhiri kosong dalam berkas objek ILF.%B: simbol `%s' memiliki tipe %d csect tidak dikenal%B: simbol `%s' memiliki smclas tidak dikenal %d%B: simbol `%s' dibutuhkan tetapi tidak ada%B: terlalu banyak bagian (%d)%B: tp-relative relokasi terhadap simbol dinamis %s%B: tidak dapat mengisi dalam DataDictionary[12] karena .idata$5 hilang%B: tidak dapat mengisi dalam DataDictionary[1] karena .idata$2 hilang%B: tidak dapat mengisi dalam DataDictionary[1] karena .data$4 hilang%B: tidak dapat mengisi dalam DataDictionary[9] karena __tls_used hilang%B: tidak dapat mengisi dalam DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] karena .idata$6 hilang%B: tidak dapat mengisi dalam DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] karena .idata$6 hilang%B: tidak dapat menemukan lem ARM '%s' untuk `%s'%B: tidak dapat menemukan lem THUMB '%s' untuk `%s'%B: tidak dapat menemukan VFP11 veneer `%s'%B: tidak dapat memperoleh mengekstrak bagian %A%B: tidak dapat untuk menginisialisasi status kompresi untuk bagian %s%B: tidak dapat untuk menginisialisasi ekstraksi status untuk bagian %s.%B: tidak terdefinisi referensi ke simbol '%s'%B: tidak terdefinisi simbol `%s' dalam bagian .opd%B: tidak terdefinisi simbol dalam relokasi R_PPC64_TOCSAVE%B: tipe ATN %d tidak diduga dalam bagian luar%B: tidak diduga redefinisi dari indirek versioned simbol `%s'%B: tipe relokasi %u tidak diduga dalam bagian .opd%B: tidak diduga tipe sesudah ATN%B: relokasi dinamis tidak ditangani terhadap %s%B: tidak terimplementasi %s
+%B: tidak terimplementasi ATI record %u untuk simbol %u%B: tidak diketahui [%d] bagian `%s' dalam grup [%s]%B: tipe relokasi %d tidak diketahui%B; tidak diketahui/tidak didukung tipe relokasi %d%B: relokasi tidak dikenal (0x%x) dalam bagian `%A'%B: tipe relokasi %i tidak didukung%B: tipe relokasi %i tidak didukung
+%B: tipe relokasi tidak didukung %s%B: relokasi tidak didukung: ALPHA_R_GPRELHIGH%B: relokasi tidak didukung: ALPHA_R_GPRELLOW%B: menggunakan awalan _ simbol, tetapi menulis berkas dengan simbol tanpa awalan%B: menggunakan field e_flags (0x%lx) berbeda dari modul sebelumnya (0x%lx)%B: menggunakan simbol tanpa awalan, tetapi menulis berkas dengan simbol awalan _%B: titik versi tidak ditemukan untuk simbol %s%B: peringatan: COMDAT simbol '%s' tidak cocok dengan nama bagian '%s'%B: peringatan: loadable segmen kosong terdeteksi, apakah ini sengaja ?
+%B: peringatan: alokasi bagian `%s' tidak dalam segmen%B: peringatan: duplikasi informasi nomor baris untuk `%s'%B: peringatan: simbol index %ld ilegal dalam nomor baris%B: peringatan: indek simbol ilegal %ld dalam relokasi%B: peringatan: pembacaan tabel nomor baris gagal%B: peringatan: menghubungkan berkas PIC dengan berkas bukan-PIC%B: peringatan: menghubungkan berkas abicalls dengan berkas bukan-abicalls%B: peringatan: memilih VFP11 erratum penyelesaian adalah tidak diperlukan untuk arsitektur target%B: peringatan: sh_link tidak diset untuk bagian `%A'%B: peringatan: atribut objek EABI tidak diketahui %d%B:%A%s melebihi ukuran overlay
+%B:%A: Peringatan: tertinggal Red Hat relokasi%B:%d: Checksum buruk dalam berkas S-record
 %B:%d: Karakter `%s' tidak diduga dalam berkas S-record
-%B:%d: tidak diduga karakter `%s' dalam berkas Intel Hex%B:%u: checksum buruk dalam berkas Intel Hex (diperkirakan %u, ditemukan %u)%B:%u: buruk extended alamat panjang record dalam berkas Intel Hex%B:%u: buruk extended alamat linear panjang record dalam berkas Intel Hex%B:%u: buruk extended panjang awal alamat linear dalam berkas Intel Hex%B:%u: buruk extended awal panjang alamat dalam berkas Intel Hex %B:%u: tidak dikenal ihex tipe %u dalam berkas Intel Hex%F%P: already_linked_table: %E
+%B:%d: tidak diduga karakter `%s' dalam berkas Intel Hex%B:%u: checksum buruk dalam berkas Intel Hex (diperkirakan %u, ditemukan %u)%B:%u: buruk extended alamat panjang record dalam berkas Intel Hex%B:%u: buruk extended alamat linear panjang record dalam berkas Intel Hex%B:%u: buruk extended panjang awal alamat linear dalam berkas Intel Hex%B:%u: buruk extended awal panjang alamat dalam berkas Intel Hex %B:%u: tidak dikenal ihex tipe %u dalam berkas Intel Hex%C: peringatan: relokasi referensi ke "%s" sebuah segmen berbeda
+%F%P: already_linked_table: %E
 %F%P: dynamic STT_GNU_IFUNC simbol '%s' dengan penunjuk persamaan dalam `%B' tidak dapat digunakan ketika membuat sebuah pelaksana; rekompilasi dengan -fPIE dan hubungkan kembali dengan -pie
+%H __tls_get_addr lost arg, TLS optimization disabled
+%H arg lost __tls_get_addr, TLS optimization disabled
+%H: R_FRV_FUNCDESC referensi simbol dinamis dengan penambahan bukan nol
+%H: R_FRV_FUNCDESC_VALUE referensi simbol dinamis dengan penambahan bukan nol
+%H: R_FRV_GETTLSOFF tidak teraplikasi untuk sebuah panggilan instruksi
+%H: R_FRV_GETTLSOFF_RELAX tidak teraplikasi untuk sebuah instruksi calll
+%H: R_FRV_GOTTLSDESC12 tidak teraplikasi untuk sebuah instruksi lddi
+%H: R_FRV_GOTTLSDESCHI tidak teraplikasi untuk sebuah instruksi sethi
+%H: R_FRV_GOTTLSDESCLO tidak teraplikasi untuk sebuah instruksi setlo atau setlos
+%H: R_FRV_GETTLSOFF12 tidak teraplikasi untuk sebuah instruksi ldi
+%H: R_FRV_GOTTLSOFFHI tidak teraplikasi untuk sebuah instruksi sethi
+%H: R_FRV_GOTTLSOFFLO tidak teraplikasi untuk sebuah instruksi setlo atau setlos
+%H: R_FRV_TLSDESC_RELAX tidak teraplikasi untuk sebuah instruksi ldd
+%H: R_FRV_TLSMOFFHI tidak teraplikasi untuk sebuah instruksi sethi
+%H: R_FRV_TLSOFF_RELAX tidak teraplikasi untuk sebuah instruksi ld
+%H: tidak dapat mengeluarkan relokasi dinamis dalam bagian baca-saja
+%H: tidak dapat mengeluarkan fixups dalam bagian baca-saja
+%H: relokasi terhadap `%s' referensi ke segmen berbeda
+%H: relokasi terhadap `%s': %s
+%H: relokasi referensi simbol tidak didefinisikan dalam modul
+%H: relokasi ke `%s+%v' mungkin telah menyebabkan error diatas
 %P%F: --relax dan -r tidak boleh digunakan secara bersamaan
 %P%X: tidak dapat membaca simbol: %E
+%P%X: read-only segment has dynamic relocations.
+%P: %B: tidak dapat membuat masukan stub %s
+%P: %B: relokasi %s tidak didukung untuk simbol %s
+%P: %B: relokasi %s tidak didukung untuk simbol %s
+%P: %B: target (%s) dari sebuah relokasi %s berada dalam daerah keluaran salah (%s)
 %P: %B: tipe relokasi tidak diduga
+%P: %B: tipe relokasi %d tidak dikenal untuk simbol %s
+%P: %B: peringatan: relokasi terhadap `%s' dalam bagian baca-saja `%A'.
+%P: %B: peringatan: relokasi dalam daerah baca-saja `%A'.
+%P: %H: %s relokasi terhadap `%s': error %d
+%P: %H: %s relokasi terhadap simbol lokal
+%P: %H: %s relocation references optimized away TOC entry
+%P: %H: %s digunakan dengan simbol TLS %s
+%P: %H: %s digunakan dengan simbol bukan-TLS %s
+%P: %H: otomatis multiple TOC tidak didukung menggunakan berkas crt anda; rekompile dengan -mminimal-toc atau upgrade gcc
+%P: %H: error: %s bukan multiple dari %u
+%P: %H: bukan-nol ditambahkan di %s relokasi terhadap `%s'
+%P: %H: relokasi %s untuk fungsi tidak langsung %s tidak didukung
+%P: %H: sibling call optimization ke `%s' tidak membolehkan otomatis multiple TOC; rekompile dengan -mminimal-toc atau -fno-optimize-sibling-calls, atau buat `%s' extern
+%P: %H: tidak teresolf %s relokasi terhadap simbol `%s'
+%P: %s tidak didefinisikan dalam penyambung dibuat oleh %s
+%P: %s offset too large for .eh_frame sdata4 encoding%P: DW_EH_PE_datarel unspecified for this architecture.
 %P: kode mesin alternatif untuk ELF ditemukan (%d) dalam %B, diduga %d
+%P: bss-plt forced by profiling
+%P: bss-plt dipaksa karena ada %B
+%P: tidak dapat membuat branch stub `%s'
+%P: tidak dapat menemukan branch stub `%s'
+%P: tidak dapat menemukan masukan opdd toc untuk %s
+%P: salin relokasi terhadap `%s' membutuhkan lazy plt linking; hindari konfigurasi LD_BIND_NOW=1 atau upgrade gcc
+%P: variabel dinamik `%s' memiliki ukuran nol
+%P: dynareloc miscount untuk %B, bagian %A
 %P: error dalam %B(%A); tidak ada .eh_frame_hdr tabel yang akan dibuat.
 %P: fde enkoding dalam %B(%A) menjaga .eh_frame_hdr tabel untuk dibuat.
+%P: linkage tabel error terhadap `%s'
+%P: stub brach panjang `%s' ofset overflow
+%P: multiple entry points: in modules %B and %B
+%P: link relokasi tidak didukung
+%P: stub tidak cocok dengan ukuran yang dihitung
 %P: peringatan: membuat sebuah DT_TEXTREL dalam sebuah objek terbagi.
+%X%C: relokasi referensi ke "%s" segmen berbeda
 %X%P: bagian overlay %A jangan diawali di sebuah baris cache.
 %X%P: bagian overlay %A lebih besar daripada baris cache.
 %X%P: bagian overlay %A tidak berada dalam daerah cache.
@@ -376,7 +924,7 @@ ppcboot header:
 %X`%s' direferensikan dalam daerah `%A' dari %B: didefinisikan dalam daerah diabaikan `%A' dari %B
 %s terdefinisi dalam masukan toc terhapus%s duplikasi
 %s duplikasi dalam %s
-%s dalam daerah overlay%s tidak didefinisikan dalam %s yang dibuat oleh penyambung%s(%s): relokasi %d memiliki indek simbol tidak valid %ld%s: %s: relokasi overflow: 0x%lx > 0xffff%s: 0x%v 0x%v
+%s dalam daerah overlay%s(%s): relokasi %d memiliki indek simbol tidak valid %ld%s: %s: relokasi overflow: 0x%lx > 0xffff%s: 0x%v 0x%v
 %s: Definisi simbol buruk: `Main' di set ke %s daripada ke awal alamat %s
 %s: Error: multiple definisi dari `%s'; awal dari %s adalah diset dalam sebuah sebelum berkas terlink
 %s: GAS error: tidak diduga PTB insn dengan R_SH_PT_16%s: Internal tidak konsisten error untuk nilai untuk
@@ -387,7 +935,7 @@ ppcboot header:
 %s: tidak dapat membuat masukan stub %s%s: tidak dapat menghubungkan berkas objek fdpic kedalam aplikasi bukan-fdpic%s: tidak dapat menghubungkan berkas objek bukan-fdpic kedalam aplikasi fdpic%s: dikompile sebagai 32-bit objek dan %s adalah 64-bit%s: dikompile sebagai 64-bit objek dan %s adalah 32-bit%s: terkompile dengan %s dan terhubung dengan modul terkompile dengan %s%s: terkompile dengan %s dan terhubung dengan modul yang menggunakan relokasi bukan-pic%s: tidak dapat menulis masukan tambahan .cranges%s: tidak dapat menulis masukan terurut .cranges%s: direktif LOKAL hanya valid dengan sebuah register atau nilai absolut%s: objek dinamis dengan tidak ada daerah .loader%s: ditemui datalabel simbol dalam masukan%s: error: tipe relokasi %d unaligned di %08x relokasi %08x
 %s: nama daerah `%s' ilegal%s: internal error, daerah internal register %s memiliki isi
 %s: internal error, tabel simbol berubah ukuran dari %d ke %d kata
-%s: tidak valid DSO untuk simbol `%s' definisi%s: berkas mmo tidak valid: YZ dari lop_end (%ld) tidak sama dengan jumlah dari tetras yang mengawali lop_stab (%ld)
+%s: berkas mmo tidak valid: YZ dari lop_end (%ld) tidak sama dengan jumlah dari tetras yang mengawali lop_stab (%ld)
 %s: berka mmo tidak valid: diduga YZ = 1 diperoleh YZ = %d untuk lop_quote
 %s: berkas mmo tidak valid: diduga y = 0, diperoleh y = %d untuk lop_fixrx
 %s: berkas mmo tidak valid: diduga z = 1 atau z = 2, diperoleh z = %d untuk lop_fixo
@@ -403,59 +951,217 @@ ppcboot header:
 %s: awal alaman tidak valid untuk register terinisialisasi dari panjang %ld: 0x%lx%08lx
 %s: tabel simbol tidak valid: duplikasi simbol `%s'
 %s: nomor baris overflow: 0x%lx > 0xffff%s: tidak ada register yang terinisialisasi; panjang daerah 0
-%s: tidak ada simbol seperti itu%s: tidak terimplementasi secara penuh%s: tidak terimplementasi%s: tidak didukung%s: ukuran objek tidak cocok dari target %s%s: register relokasi terhadap bukan-register simbol: %s dalam %s%s: register relokasi terhadap non-register simbol: (tidak diketahui) dalam %s%s: link relokasi dari %s ke %s tidak didukung%s: short data segment overflowed (0x%lx >= 0x400000)%s: string terlalu panjang (%d chars, max 65535)%s: terlalu banyak register yang terinisialisasi; panjang daerah %ld
+%s: tidak ada simbol seperti itu%s: tidak terimplementasi%s: tidak didukung%s: ukuran objek tidak cocok dari target %s%s: register relokasi terhadap bukan-register simbol: %s dalam %s%s: register relokasi terhadap non-register simbol: (tidak diketahui) dalam %s%s: link relokasi dari %s ke %s tidak didukung%s: short data segment overflowed (0x%lx >= 0x400000)%s: string terlalu panjang (%d chars, max 65535)%s: terlalu banyak register yang terinisialisasi; panjang daerah %ld
 %s: versi tidak terdefinisi: %s%s: tipe relokasi %d tidak diketahui%s: simbol tidak dikenal `%s' flags 0x%x%s: tipe relokasi tidak didukung 0x%02x%s: tidak didukung dengan urutan karakter lebar 0x%02X 0x%02X sesudah nama simbol dimulai dengan `%s'
-%s: menggunakan e_flags (0x%lx) field berbeda dari modul sebelumnya (0x%lx)%s: menggunakan bagian e_flags (0x%lx) berbeda yang tidak dikenal dari modul sebelumnya (0x%lx)%s: versi terhitung (%ld) tidak cocok dengan simbol terhitung (%ld)%s: peringatan: %s relokasi terhadap simbol `%s' dari bagian %s%s: peringatan: relokasi %s ke 0x%x dari daerah %s%s: peringatan: %s: nomor baris overflow: 0x%lx > 0xffff%s: peringatan: GOT ditambahkan dari %ld ke `%s' tidak cocok dengan penambahan GOT sebelumnya dari %ld%s: peringatan: PLT ditambahkan dari %d ke `%s' dari %s bagian diabaikan%s: peringatan: indek simbol ilegal %ld dalam relokasi%s: Peringatan: tabel simbol terlalu besar untuk mmo, lebih besar daripada 65535 32-bit words: %d. Hanya `Main' yang akan dikeluarkan.
-(thread-local data terlalu besar untuk -fpic atau -msmall-tls: rekompilasi dengan -fPIC atau -mno-small-tls)(terlalu banyak variabel global untuk -fpic: rekompilasi dengan -fPIC))
-*tidak diketahui*bagian .got tidak mengikuti bagian .plt32-bit double, 32bit gp relative relokasi terjadi untuk sebuah simbol eksternal64-bit double, : m32r instruksi: m32r2 instruksi: m32rx instruksi; rekompile dengan -fPIC<Tanda bit tidak dikenal terset><tidak dikenal>@pltoff relokasi terhadap simbol lokalAlamat absolut melewati jangkauan 16 bitAlamat absolute melewati jangkauan 8 bitArchive tidak memiliki indek; jalankan ranlib untuk menambahkan satuArchive berkas objek dalam format salahMencoba untuk mengubah L32R/CALLX ke CALL gagalMencoba untuk merelokasi link dengan masukan %s dan keluaran %sBFD %s assertion gagal %s:%dBFD %s error internal, menggagalkan di %s baris %d
+%s: menggunakan e_flags (0x%lx) field berbeda dari modul sebelumnya (0x%lx)%s: menggunakan bagian e_flags (0x%lx) berbeda yang tidak dikenal dari modul sebelumnya (0x%lx)%s: versi terhitung (%ld) tidak cocok dengan simbol terhitung (%ld)%s: warning core file truncated%s: peringatan: %s relokasi terhadap simbol `%s' dari bagian %s%s: peringatan: relokasi %s ke 0x%x dari daerah %s%s: peringatan: %s: nomor baris overflow: 0x%lx > 0xffff%s: peringatan: GOT ditambahkan dari %ld ke `%s' tidak cocok dengan penambahan GOT sebelumnya dari %ld%s: peringatan: PLT ditambahkan dari %d ke `%s' dari %s bagian diabaikan%s: peringatan: indek simbol ilegal %ld dalam relokasi%s: Peringatan: tabel simbol terlalu besar untuk mmo, lebih besar daripada 65535 32-bit words: %d. Hanya `Main' yang akan dikeluarkan.
+(at bit offset %u)
+(descriptor)
+(tidak ada nilai)
+(not active)
+(not allocated)
+(reg: %u, disp: %u, indir: %u, kind: (thread-local data terlalu besar untuk -fpic atau -msmall-tls: rekompilasi dengan -fPIC atau -mno-small-tls)(terlalu banyak variabel global untuk -fpic: rekompilasi dengan -fPIC)(trailing value)
+(value spec follows)
+)
+*** periksa relokasi ini %s*unhandled*
+*tidak tertangani* tipe dst %u
+*tidak diketahui**tidak diketahui*       , alias: %u
+, ext fixup offset: %u, no_opt psect off: %u, subtipe: %u (%s)
+, symbol vector rva: bagian .got tidak mengikuti bagian .plt32-bit double, 32bit gp relative relokasi terjadi untuk sebuah simbol eksternal64 bits *unhandled*
+64-bit double, : %u.%u
+: m32r instruksi: m32r2 instruksi: m32rx instruksi; rekompile dengan -fPIC<Tanda bit tidak dikenal terset><tidak dikenal>@pltoff relokasi terhadap simbol lokalArchive tidak memiliki indek; jalankan ranlib untuk menambahkan satuArchive berkas objek dalam format salahMencoba untuk mengubah L32R/CALLX ke CALL gagalMencoba untuk merelokasi link dengan masukan %s dan keluaran %sBASE_IMAGE       BFD %s assertion gagal %s:%dBFD %s error internal, menggagalkan di %s baris %d
 BFD %s error internal, menggagalkan di %s baris %d dalam %s
-Nilai burukDasar Relokasi Direktori [.reloc]Direktori Bound ImporCLR Runtime HeaderTidak dapat membuka ini sebuah lompatan pendekDST_S_C_BEG_STMT_MODE belum diimplementasikanDST_S_C_END_STMT_MODE belum diimplementasikanDST_S_C_RESET_LINUM_INCR belum diimplementasikanDST_S_C_SET_LINUM_INCR belum diimplementasikanDST_S_C_SET_LINUM_INCR_W belum diimplementasikanDST_S_C_SET_PC belum diimplementasikanDST_S_C_SET_PC_L belum diimplementasikanDST_S_C_SET_PC_W belum diimplementasikanDST_S_C_SET_STMTNUM belum diimplementasikanDebug DirektoriDelay Impor DirektoriDeprecated %s dipanggil
+BFD Link Error: branch (PC rel16) to section (%s) not supportedBFD Link Error: jump (PC rel26) to section (%s) not supportedNilai burukDasar Relokasi Direktori [.reloc]Direktori Bound ImporBounds:
+CLICLR Runtime HeaderCLUSTERS_LOCKMGR COUNTERS         CPU              CTL_AUGRB (augment relocation base) %u
+CTL_DFLOC (define location)
+CTL_SETRB (set relocation base)
+CTL_STKDL (stack defined location)
+CTL_STLOC (set location)
+Copyright Header
+DIV penggunaan tidak cocok diantara %B dan %BDST__K_BEG_STMT_MODE belum diimplementasikanDST__K_END_STMT_MODE belum diimplementasikanDST__K_RESET_LINUM_INCR belum diimplementasikanDST__K_SET_LINUM_INCR belum diimplementasikanDST__K_SET_LINUM_INCR_W belum diimplementasikanDST__K_SET_PC belum diimplementasikanDST__K_SET_PC_L belum diimplementasikanDST__K_SET_PC_W belum diimplementasikanDST__K_SET_STMTNUM belum diimplementasikanDebug DirektoriDebug module table:
+Simbol tabel penelusuran:
+Delay Impor DirektoriDeprecated %s dipanggil
 Deprecated %s dipanggil di %s baris %d dalam %s
-Direktori PenjelasanDwarf Error: Nomor singkat buruk: %u.Dwarf Error: Tidak dapat menemukan bagian %s.Dwarf Error: Tidak dapat menemukan nomor singkat %u.Dwarf Error: Tidak valid atau nilai FORM tidak tertangani: %u.Dwarf Error: Ofset (%lu) lebih besar atau sama dengan %s ukuran (%lu).Dwarf Error: menemukan ukuran alamat '%u', pembaca ini tidak dapat menangani ukuran lebih besar dari '%u'.Dwarf Error: menemukan versi dwarf '%u', pembaca ini hanya menangani informasi versi 2 dan 3.Dwarf Error: mangled bagian nomor baris (nomor berkas buruk).Dwarf Error: mangled bagian nomor baris.Dwarf Error: tidak dapat mengekstrak bagian %s.Ofset masukan       = 0x%.8lx (%ld)
-Error membaca %s: %sErrors ditemui dalam pemrosesan berkas %sMelewati jangkauan lompatan panjangException Direktori [.pdata]Direktori expor [.edata (atau dimanapun kita menemukannya)]Tanda Expor 			%lx
-Expor RVAGAGAL untuk menemukan relokasi HI16 sebelumnya
-Berkas format ambiguBerkas format tidak dikenalBerkas dalam format salahBerkas terlalu besarBerkas terpotongTanda daerah        = 0x%.2x
-Forwarder RVAGP relatif relokasi digunakan ketika GP tidak didefinisikanGP relokasi relatif ketika _gp tidak terdefinisiGPDISP relokasi tidak dapat menemukan instruksi ldah dan ldaDirektori Impor Tabel AlamatImpor Direktori [bagian dari .idata]Internal tidak konsisten: sisa %u != max %u.
-  Tolong laporkan bug ini.Tipe relokasi '%s' TARGET2 tidak valid.Target bfd tidak validOperasi tidak validPanjang             = 0x%.8lx (%ld)
-Direktori Konfigurasi BebanKepala Mach-O:
+Direktori PenjelasanDwarf Error: Nomor singkat buruk: %u.Dwarf Error: Tidak dapat menemukan bagian %s.Dwarf Error: Tidak dapat menemukan nomor singkat %u.Dwarf Error: Tidak valid jumlah maksimal operasi per instruksi.Dwarf Error: Tidak valid atau nilai FORM tidak tertangani: %u.Dwarf Error: Ofset (%lu) lebih besar atau sama dengan %s ukuran (%lu).Dwarf Error: Tidak tertangani .debug_line versi %d.Dwarf Error: menemukan ukuran alamat '%u', pembaca ini tidak dapat menangani ukuran lebih besar dari '%u'.Dwarf Error: menemukan versi dwarf '%u', pembaca ini hanya menangani informasi versi 2, 3 dan 4.Dwarf Error: mangled bagian nomor baris (nomor berkas buruk).Dwarf Error: mangled bagian nomor baris.EIHD: (size: %u, nbr blocks: %u)
+Ofset masukan       = 0x%.8lx (%ld)
+Error membaca %s: %sError: %B has both the current and legacy Tag_MPextension_use attributesErrors ditemui dalam pemrosesan berkas %sException Direktori [.pdata]Direktori expor [.edata (atau dimanapun kita menemukannya)]Tanda Expor 			%lx
+Expor RVAGAGAL untuk menemukan relokasi HI16 sebelumnyaFILES_VOLUMES    Berkas format ambiguBerkas format tidak dikenalBerkas dalam format salahBerkas terlalu besarBerkas terpotongTanda daerah        = 0x%.2x
+Forwarder RVAGALAXY           GP relatif relokasi digunakan ketika GP tidak didefinisikanGP relokasi relatif ketika _gp tidak terdefinisiGPDISP relokasi tidak dapat menemukan instruksi ldah dan ldaSimbol tabel global:
+IDC - Ident Consistency check
+IMAGE_ACTIVATOR  INPUT_SECTION_FLAGS are not supported.
+IO               Image activation:  (size=%u)
+Image activator fixup: (major: %u, minor: %u)
+Image identification: (major: %u, minor: %u)
+Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)
+Image symbol & debug table: (major: %u, minor: %u)
+Direktori Impor Tabel AlamatImpor Direktori [bagian dari .idata]Internal tidak konsisten: sisa %u != max %u.
+  Tolong laporkan bug ini.Tipe relokasi '%s' TARGET2 tidak valid.Target bfd tidak validOperasi tidak validIndek daerah tidak valid dalam ETIRJALX to a non-word-aligned addressLOGICAL_NAMES    Language Processor Name
+Panjang             = 0x%.8lx (%ld)
+Direktori Konfigurasi BebanMEMORY_MANAGEMENTMIPS16 and microMIPS functions cannot call each otherMISC             MULTI_PROCESSING Kepala Mach-O:
 Mayor/Minor 			%d/%d
 Archive tidak terformatMaksimal stack dibutuhkan adalah 0x%v
-Kehabisan memoriNama 				Tidak ada Memori !Tidak errorTidak lagi berkas yang ter-archiveBukan simbolBagian tidak dapat direpresentasikan di keluaranTidak cukup memori untuk mengurutkan relokasiNomor dalam:
+MeP: howto %d has type %dKehabisan memoriKepala module
+NETWORKS         NORMALNama 				Tidak errorTidak lagi berkas yang ter-archiveBukan simbolBagian tidak dapat direpresentasikan di keluaranTidak cukup memori untuk mengurutkan relokasiNomor dalam:
+OPR_ADD (add)
+OPR_AND (logical and)
+OPR_ASH (arithmetic shift)
+OPR_COM (complement)
+OPR_DIV (divide)
+OPR_EOR (logical exclusive or)
+OPR_INSV (insert field)
+OPR_IOR (logical inclusive or)
+OPR_MUL (multiply)
+OPR_NEG (negate)
+OPR_NOP (no-operation)
+OPR_REDEF (define a literal)
+OPR_REDEF (redefine symbol to curr location)
+OPR_ROT (rotate)
+OPR_SEL (select)
+OPR_SUB (substract)
+OPR_USH (unsigned shift)
 Modul objek Tidak bebas-error !
 Dasar Ordinal 			%ld
 Berkas keluaran membutuhkan library terbagi `%s'
 Berkas keluaran membutuhkan library terbagi `%s.so.%s'
-PASSMECH tidak terimplementasi secara penuhPTA tidak cocok: sebuah SHcompact alamat (bit 0 == 0)PTB tidak cocok: sebuah SHmedia alamat (bit 0 ==1)Nama partisi        = "%s"
+POSIX            PROCESS_SCHED    PRVFXDPRVPICPSC - Definisi bagian program
+PTA tidak cocok: sebuah SHcompact alamat (bit 0 == 0)PTB tidak cocok: sebuah SHmedia alamat (bit 0 ==1)Nama partisi        = "%s"
 Akhir partisi[%d]    = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }
 Panjang partisi[%d]  = 0x%.8lx (%ld)
 Daerah partisi[%d]   = 0x%.8lx (%ld)
 Tolong laporkan bug ini.
-R_BFIN_FUNCDESC referensi simbol dinamis dengan bukan nol ditambahkanR_BFIN_FUNCDESC_VALUE referensi simbol dinamis dengan bukan nol ditambahkanR_FRV_FUNCDESC referensi simbol dinamis dengan penambahan bukan nolR_FRV_FUNCDESC_VALUE referensi simbol dinamis dengan penambahan bukan nolR_FRV_GETTLSOFF tidak teraplikasi untuk sebuah panggilan instruksiR_FRV_GETTLSOFF_RELAX tidak teraplikasi untuk sebuah instruksi calllR_FRV_GOTTLSDESC12 tidak teraplikasi untuk sebuah instruksi lddiR_FRV_GOTTLSDESCHI tidak teraplikasi untuk sebuah instruksi sethiR_FRV_GOTTLSDESCLO tidak teraplikasi untuk sebuah instruksi setlo atau setlosR_FRV_GETTLSOFF12 tidak teraplikasi untuk sebuah instruksi ldiR_FRV_GOTTLSOFFHI tidak teraplikasi untuk sebuah instruksi sethiR_FRV_GOTTLSOFFLO tidak teraplikasi untuk sebuah instruksi setlo atau setlosR_FRV_TLSDESC_RELAX tidak teraplikasi untuk sebuah instruksi lddR_FRV_TLSMOFFHI tidak teraplikasi untuk sebuah instruksi sethiR_FRV_TLSMOFFLO tidak teraplikasi untuk sebuah instruksi setlo atau setlosR_FRV_TLSOFF_RELAX tidak teraplikasi untuk sebuah instruksi ldMembaca berkas mod timestamp archiveReferensi ke simbol jauh `%s' menggunakan relokasi salah mungkin akan menghasilkan eksekusi salahRegister %%g%d digunakan tidak kompatibel: %s dalam %B, sebelumnya %s dalam %BDaerah register memiliki isi
-Kesalahan ukuran relokasi dalam daerah %sRelokasi `%s' belum terimplementasi
-Menghapus daerah tidak digunakan '%s' dalam berkas '%B'ReservedResource Direktori [.rsrc]SDA relokasi ketika _SDA_BASE_ tidak terdefinisiSEC_RELOC dengan tidak ada relokasi dalam daerah %sBagian tidak memiliki isiDirektori KeamananBagian dan Daerah:
-Kesalahan ukuran dalam daerah %sUkuran tidak cocok daerah %s=%lx, %s=%lxDirektori SpesialSpurious ALPHA_R_BSR relokasiStack analysis akan mengabaikan panggilan dari %s ke %s
+R_BFIN_FUNCDESC referensi simbol dinamis dengan bukan nol ditambahkanR_BFIN_FUNCDESC_VALUE referensi simbol dinamis dengan bukan nol ditambahkanR_FRV_TLSMOFFLO tidak teraplikasi untuk sebuah instruksi setlo atau setlos
+Membaca berkas mod timestamp archiveReferensi ke simbol jauh `%s' menggunakan relokasi salah mungkin akan menghasilkan eksekusi salahRegister %%g%d digunakan tidak kompatibel: %s dalam %B, sebelumnya %s dalam %BDaerah register memiliki isi
+Relocation for non-REL psectMenghapus daerah tidak digunakan '%s' dalam berkas '%B'ReservedResource Direktori [.rsrc]SDA relokasi ketika _SDA_BASE_ tidak terdefinisiSECURITY         SEC_RELOC dengan tidak ada relokasi dalam daerah %sSH Error: tipe relokasi %d tidak diketahuiSHELL            SHRFXDSHRPICSPSC - Shared Image Program section def
+STABLE           STA_CKARG (compare procedure argument)
+STA_GBL (stack global) %.*s
+STA_LI (stack literal)
+STA_LW (stack longword) 0x%08x
+STA_MOD (stack module)
+STA_PQ (stack psect base + offset)
+STA_QW (stack quadword) 0x%08x %08x
+STC_BOH_GBL (store cond BOH at global addr)
+STC_BOH_PS (store cond BOH at psect + offset)
+STC_BSR_GBL (store cond BSR at global addr)
+STC_BSR_PS (store cond BSR at psect + offset)
+STC_GBL (store cond global)
+STC_GCA (store cond code address)
+STC_LDA_GBL (store cond LDA at global addr)
+STC_LDA_PS (store cond LDA at psect + offset)
+STC_LP (store cond linkage pair)
+STC_LP_PSB (store cond linkage pair + signature)
+STC_NBH_GBL (store cond or hint at global addr)
+STC_NBH_PS (store cond or hint at psect + offset)
+STC_NOP_GBL (store cond NOP at global addr)
+STC_NOP_PS (store cond NOP at psect + offset)
+STC_PS (store cond psect + offset)
+STO_AB (store absolute branch)
+STO_B (store byte)
+STO_BR_GBL (store branch global) *todo*
+STO_BR_PS (store branch psect + offset) *todo*
+STO_CA (store code address) %.*s
+STO_GBL (store global) %.*s
+STO_GBL_LW (store global longword) %.*s
+STO_IMM (store immediate) %u bytes
+STO_IMMR (store immediate repeat) %u bytes
+STO_LW (store longword)
+STO_OFF (store LP with procedure signature)
+STO_OFF (store offset to psect)
+STO_QW (store quadword)
+STO_RB (store relative branch)
+STO_W (store word)
+SYM - Global symbol definition
+SYM - Global symbol reference
+SYMG - Universal symbol definition
+SYMM - Global symbol definition with version
+SYMV - Vectored definisi simbol
+SYSGEN           Bagian tidak memiliki isiDirektori KeamananBagian dan Daerah:
+Kesalahan ukuran dalam daerah %sSource Files Header
+Direktori SpesialSpurious ALPHA_R_BSR relokasiStack analysis akan mengabaikan panggilan dari %s ke %s
 Stack overflow (%d) dalam _bfd_vms_pushUkuran stack untuk panggilan graph titik root.
-Stack underflow dalam _bfd_vms_popSimbol %s tidak terdefinisi untuk fixups
+Stack underflow dalam _bfd_vms_popStrides:
+Simbol %s tidak terdefinisi untuk fixups
 Simbol %s digantikan oleh %s
 Simbol `%s' memiliki tipe berbeda: %s dalam %B, sebelumnya REGISTER dalam %BSimbol `%s' memiliki tipe berbeda: REGISTER dalam %B, sebelumnya %s dalam %BSimbol membutuhkan bagian debug yang mana bagian tersebut tidak adaPemanggilan sistem errorrelokasi TLS tidak valid tanpa bagian dinamisTOC overflow: 0x%lx > 0x10000; coba -mminimal-toc ketika mengkompileTabel Alamat
 Thread Storage Direktori [.tls]Waktu/Tanggal stamp 		%lx
-Tidak dapat menemukan bagian keluaran ekuivalen untuk simbol '%s' dari bagian '%s'Tidak diperkirakan STO_SH5_ISA32 di simbol lokal tidak ditanganiNomor mesin tidak terdugaTidak tertangani berkas core OSF/1 daerah tipe %d
-Relokasi %s tidak tertanganitidak diketahui GDS/EGSD subtype %dTipe dasar %d tidak diketahuiRelokasi %s + %s tidak diketahuiSimbol %s tidak diketahui dalam perintah %sTipe relokasi tidak dikenalTarget id '0x%x' TI COFF tidak dikenalRelokasi tidak dikenalTipe relokasi tidak dikenal 0x%xRelokasi .stab tidak didukungMenggunakan bss-plt karena %BVariabel `%s' hanya dapat berada dalam satu dari kecil, nol, dan sangat kecil daerah dataVariabel `%s' tidak dapat berada dalam kecil dan sangat kecil daerah data secara bersamaanVariabel `%s' tidak dapat berada dalam kecil dan nol daerah data secara bersamaanvariabel `%s' tidak dapat dalam nol dan kecil daerah data secara bersamaanVariabel `%s' tidak dapat mengisi dalam beberapa daerah data kecilPeringatan, besar (%ld) daerah .pdata tidak dalam kelipatan dari %d
-Peringatan: %B tidak mendukung antar-kerja, dimana %B yaPeringatan: %B terpotong: diperkirakan ukuran berkas core >= %lu, ditemukan: %lu.Peringatan: %B  mendukung antar-kerja, dimana %B tidakPeringatan: %B menggunakan -mdouble-float, %B menggunakan -mips32r2 -mfp64Peringatan: %B menggunakan 0msingle-float, %B menggunakan -mdouble-floatPeringatan: %B menggunakan -msingle-float, %B menggunakan -mips32r2 -mfp64Peringatan: %B menggunakan double-precision hard float, %B menggunakan single-precision hard floatPeringatan: %B menggunakan hard float, %B menggunakan soft floatPeringatan: %B menggunakan r3/34 untuk arsitektur kembali kecil, %B menggunakan memoriPeringatan: %B menggunakan soft float, %B menggunakan single-precision hard floatPeringatan: %B menggunkaan floating point ABI %dPeringatan: %B menggunakan konvensi struktur kembali kecil %d tidak diketahuiPeringatan: %B menggunakan vector ABI %d tidak dikenalPeringatan: %B menggunakan vector ABI "%s", %B menggunakan "%s"Peringatan: %B: Konflik konfigurasi platformPeringatan: %B: atribut objek EABI tidak diketahui %dPeringatan: Menghapus tanda antar-kerja dari %B karena bukan kode antar-kerja dalam %B telah dihubungkan dengan ituPeringatan: Menghapus tanda antar-kerja dari %B karena diluar permintaanPeringatan: Tidak menset tanda antar-kerja dari %B karena itu telah terspesifikasi sebagai bukan-antar-kerjaPeringatan: Menulis bagian `%s' terlalu besar (ie negatif) berkas ofset 0x%lx.Peringatan: alignmen %u dari simbol umum `%s' dalam %B adalah lebih besar daripada alignment (%u) dari bagian ini %APeringatan: alignment %u dari simbol `%s' dalam %B adalah lebih kecil daripada %u dalam %BPeringatan: jumlah fixup tidak cocok
+Title Text Header
+USRSTACKTidak dapat menemukan bagian keluaran ekuivalen untuk simbol '%s' dari bagian '%s'Tidak diperkirakan STO_SH5_ISA32 di simbol lokal tidak ditanganiNomor mesin tidak terdugaTidak tertangani berkas core OSF/1 daerah tipe %d
+Relokasi %s tidak tertanganiTidak diketahui EGSD subtype %dTipe dasar %d tidak diketahuiRelokasi %s tidak diketahuiRelokasi %s + %s tidak diketahuiSimbol tidak diketahui dalam perintah %sUnrecognized INPUT_SECTION_FLAG %s
+Target id '0x%x' TI COFF tidak dikenalRelokasi tidak dikenalTipe relokasi tidak dikenal 0x%xRelokasi .stab tidak didukungVOLATILE         Variabel `%s' hanya dapat berada dalam satu dari kecil, nol, dan sangat kecil daerah dataVariabel `%s' tidak dapat berada dalam kecil dan sangat kecil daerah data secara bersamaanVariabel `%s' tidak dapat berada dalam kecil dan nol daerah data secara bersamaanvariabel `%s' tidak dapat dalam nol dan kecil daerah data secara bersamaanVariabel `%s' tidak dapat mengisi dalam beberapa daerah data kecilPeringatan, besar (%ld) daerah .pdata tidak dalam kelipatan dari %d
+Peringatan: %B tidak mendukung antar-kerja, dimana %B yaPeringatan: %B terpotong: diperkirakan ukuran berkas core >= %lu, ditemukan: %lu.Peringatan: %B  mendukung antar-kerja, dimana %B tidakPeringatan: %B menggunakan -mdouble-float, %B menggunakan -mips32r2 -mfp64Peringatan: %B menggunakan 0msingle-float, %B menggunakan -mdouble-floatPeringatan: %B menggunakan -msingle-float, %B menggunakan -mips32r2 -mfp64Peringatan: %B menggunakan double-precision hard float, %B menggunakan single-precision hard floatPeringatan: %B menggunakan hard float, %B menggunakan soft floatPeringatan: %B menggunakan r3/34 untuk arsitektur kembali kecil, %B menggunakan memoriPeringatan: %B menggunakan soft float, %B menggunakan single-precision hard floatPeringatan: %B menggunkaan floating point ABI %dPeringatan: %B menggunakan konvensi struktur kembali kecil %d tidak diketahuiPeringatan: %B menggunakan vector ABI %d tidak dikenalPeringatan: %B menggunakan vector ABI "%s", %B menggunakan "%s"Peringatan: %B: Konflik konfigurasi platformPeringatan: %B: atribut objek EABI tidak diketahui %dPeringatan: Menghapus tanda antar-kerja dari %B karena bukan kode antar-kerja dalam %B telah dihubungkan dengan ituPeringatan: Menghapus tanda antar-kerja dari %B karena diluar permintaanPeringatan: Tidak menset tanda antar-kerja dari %B karena itu telah terspesifikasi sebagai bukan-antar-kerjaWarning: RX_SYM reloc with an unknown symbolPeringatan: Menulis bagian `%s' terlalu besar (ie negatif) berkas ofset 0x%lx.Peringatan: alignmen %u dari simbol umum `%s' dalam %B adalah lebih besar daripada alignment (%u) dari bagian ini %APeringatan: alignment %u dari simbol `%s' dalam %B adalah lebih kecil daripada %u dalam %BPeringatan: jumlah fixup tidak cocok
 Peringatan: gc-sections pilihan diabaikanPeringatan: ukuran dari simbol `%s' berubah dari %lu dalam %B ke %lu dalam %BPeringatan: tipe dari simbole `%s' berubah dari %d ke %d dalam %BPeringatan: penulisan archive lambat: menulis ulang timestamp
-Menulis armap timestamp terupdate[abi=16-bit int, [abi=32-bit int, [yang namanya hilang]\%B: Peringatan: Arm BLK instruksi target Arm fungsi '%s'._bfd_vms_output_counted dipanggil dengan terlalu banyak bytes_bfd_vms_output_counted dipanggil dengan zero bytesalamat tidak selaras dengan ukuran wordIndek daerah buruk dalam %sbanked address [%lx:%04lx] (%lx) tidak dalam bank yang sama seperti dalam alamat bank sekarang [%lx:%04lx] (%lx)bfd_make_section (%s) gagalbfd_set_section_flags (%s, %x) gagaltidak dapat membuat branch stub `%s'tidak dapat menemukan branch stub `%s'tidak dapat mengeluarkan relokasi dinamis dalam bagian baca-sajatidak dapat mengeluarkan fixups dalam bagian baca-sajatidak dapat menangani R_MEM_INDIRECT relokasi ketika menggunakan keluaran %ssalin relokasi terhadap `%s' membutuhkan lazy plt linking; hindari konfigurasi LD_BIND_NOW=1 atau upgrade gcckorup bagian %s dalam %Bkorup atau kosong %s bagian dalam %Btidak dapat menemukan simbol linker spesial __ctbptidak dapat menemukan simbol linker spesial __eptidak dapat menemukan simbol linker spesial __gpcpu=HC11]cpu=HC12]cpu=HCS12]relokasi dinamis dalam bagian baca-sajavariabel dinamik `%s' memiliki ukuran noldynareloc miscount untuk %B, bagian %Aerror: %B berisi sebuah relokasi (0x%s) untuk daerah %A yang mereferensikan sebuah bukan-exist simbol globalerror: %B tidak menggunakan Maveric instruksi, dimana %B menggunakanerror: %B telah dalam format akhir BE8error: %B dikompile sebagai kode absolute posisi, dimana target %B adalah bebas posisierror: %B dikompile sebagai kode bebas posisi, dimana target %B yang memiliki posisi absoluteerror: %B dikompile untuk APCS-%d, dimana %B dikompile untuk APCS-%derror: %B dikompile untuk APCS-%d, dimana target %B menggunakan APCS-%derror: %B dikompile untuk EP9312, dimana %B dikompile untuk XScaleerror: %B melewati float dalam register float, dimana %B melewatinya register integererror: %B melewati float dalam register integer, dimana %B melewatinya float registererror: %B menggunakan FPA instruksi, dimana %B tidakerror: %B menggunakan Maverick instruksi, dimana %B tidakerror: %B menggunakan VFP instruksi, dimana %B tidakerror: %B menggunakan reguster argumen VFP, %B tidakerror: %B menggunakan hardware FP, dimana %B menggunakan software FPerror: %B menggunakan iWMMXt argumen register, %B tidakerror: %B menggunakan software FP, dimana %B menggunakan hardware FPerror: %B: Profil arsitektur konflik %c/%cerror: %B: Profil arsitektur konflik %c/%cerror: %B: Konflik penggunaan R9error: %B: Harus diproses dengan '%s' toolchainerror: %B: Objek tag '%d, %s' tidak kompatibel dengan tag '%d, %s'error: %B: SB pengalamatan relatif konflik dengan penggunaan dari R9error: %B: Arsitektur CPU tidak diketahuierror: Sumber objek %B memiliki versi EABI %d, tetapi target %B memiliki versi EABI %derror: fp16 format tidak cocok diantara %B dan %Berror: tipe relokasi tidak sesuai untuk shared library (apakah anda lupa -fpic?)error: simbol tidak terdefinisi __rtinitgagal mengalokasikan ruang untuk bagian baru APUinfo.gagal untuk menghitung bagian baru APUinfo.gagal untuk memasuki %sgagal untuk memasang bagian baru APUinfo.kesalahan fatal ketika membuat .fixuplinker generik tidak dapat menangani %spenunjuk global alamat relatif diluar dari jangkauanpenunjuk global relokasi relatif waktu _gp tidak terdefinisisimbol tersembunyimengabaikan relokasi %s
-kesalahan internal: addend seharusnya nol untuk R_LM32_16_GOTinternal error error berbahayainternal error: relokasi berbahayainternal error: diluar jangkauan errorinternal erro: suspicious tipe relokasi digunakan dalam shared libraryinternal error: error tidak diketahuiinternal error: relokasi tidak didukung errorinternal tidak konsisten dalam ukuran dari daerah .got.locinternal simbolalamat relokasi tidak validtipe relokasi %d tidak validip2k linker: hilang halaman instruksi di 0x%08lx (dest = 0x%08lx).ip2k linker: redundant halaman instruksi di 0x%08lx (dest = 0x%08lx).ip2k relaxer: switch tabel header terkorupsi.ip2k relaxer: tabel switch tanpa pencocokan informasi relokasi lengkap.linkage tabel error terhadap `%s'linker stubs dalam %u grup %s
+Menulis armap timestamp terupdate[%u]: %u
+[%u]: Lower: %u, upper: %u
+[abi=16-bit int, [abi=32-bit int, [yang namanya hilang]\%B: Peringatan: Arm BLK instruksi target Arm fungsi '%s'._bfd_vms_output_counted dipanggil dengan terlalu banyak bytes_bfd_vms_output_counted dipanggil dengan zero bytesalamatalamat tidak selaras dengan ukuran wordarsize: %u, a0: 0x%08x
+Indek daerah buruk dalam %sbanked address [%lx:%04lx] (%lx) tidak dalam bank yang sama seperti dalam alamat bank sekarang [%lx:%04lx] (%lx)base: %u, pos: %u
+bfd_mach_o_canonicalize_symtab: unable to load symbolsbfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lubfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)bfd_mach_o_read_symtab_symbol: symbol "%s" is unsupported 'indirect' reference: setting to undefinedbfd_mach_o_read_symtab_symbol: symbol "%s" specified invalid section %d (max %lu): setting to undefinedbfd_mach_o_read_symtab_symbol: symbol "%s" specified invalid type field 0x%x: setting to undefinedbfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lubfd_mach_o_read_symtab_symbols: unable to allocate memory for symbolsbfd_mach_o_scan: unknown architecture 0x%lx/0x%lxbfd_pef_scan: unknown architecture 0x%lxblkbeg: address: 0x%08x, name: %.*s
+blkend: ukuran: 0x%08x
+tidak dapat mengeluarkan relokasi dinamis dalam bagian baca-sajatidak dapat mengeluarkan fixups dalam bagian baca-sajacannot find EMH in first GST record
+tidak dapat menangani R_MEM_INDIRECT relokasi ketika menggunakan keluaran %scannot read DMT
+cannot read DMT header
+cannot read DMT psect
+cannot read DST
+cannot read DST header
+tidak dapat membaca DST simbol
+cannot read EIHA
+cannot read EIHD
+cannot read EIHI
+cannot read EIHS
+cannot read EIHVN header
+cannot read EIHVN version
+cannot read EISD
+cannot read GST
+cannot read GST record
+cannot read GST record header
+cannot read GST record length
+class: %u, dtype: %u, length: %u, pointer: 0x%08x
+korup bagian %s dalam %Btidak dapat menemukan simbol linker spesial __ctbptidak dapat menemukan simbol linker spesial __eptidak dapat menemukan simbol linker spesial __gpcould not open shared image '%s' from '%s'cpu=HC11]cpu=HC12]cpu=HCS12]relokasi berbahayadelta pc +%-4ddelta_pc_l: +0x%08x
+delta_pc_w %u
+descdimct: %u, aflags: 0x%02x, digits: %u, scale: %u
+diabaikan daerah keluaran: `%A'discontiguous range (nbr: %u)
+relokasi dinamis dalam bagian baca-sajavariabel dinamik `%s' memiliki ukuran nolenumbeg, len: %u, name: %.*s
+enumelt, name: %.*s
+enumend
+epilog: flags: %u, count: %u
+error: %B berisi sebuah relokasi (0x%s) untuk daerah %A yang mereferensikan sebuah bukan-exist simbol globalerror: %B tidak menggunakan Maveric instruksi, dimana %B menggunakanerror: %B telah dalam format akhir BE8error: %B dikompile sebagai kode absolute posisi, dimana target %B adalah bebas posisierror: %B dikompile sebagai kode bebas posisi, dimana target %B yang memiliki posisi absoluteerror: %B dikompile untuk APCS-%d, dimana %B dikompile untuk APCS-%derror: %B dikompile untuk APCS-%d, dimana target %B menggunakan APCS-%derror: %B dikompile untuk EP9312, dimana %B dikompile untuk XScaleerror: %B melewati float dalam register float, dimana %B melewatinya register integererror: %B melewati float dalam register integer, dimana %B melewatinya float registererror: %B requires more array alignment than %B preserveserror: %B requires more stack alignment than %B preserveserror: %B menggunakan FPA instruksi, dimana %B tidakerror: %B menggunakan Maverick instruksi, dimana %B tidakerror: %B menggunakan VFP instruksi, dimana %B tidakerror: %B menggunakan reguster argumen VFP, %B tidakerror: %B menggunakan hardware FP, dimana %B menggunakan software FPerror: %B menggunakan iWMMXt argumen register, %B tidakerror: %B menggunakan software FP, dimana %B menggunakan hardware FPerror: %B: Profil arsitektur konflik %c/%cerror: %B: Profil arsitektur konflik %c/%cerror: %B: Konflik penggunaan R9error: %B: Objek yang memiliki konten vendor-specific harus diproses dengan '%s' toolchainerror: %B: Objek tag '%d, %s' tidak kompatibel dengan tag '%d, %s'error: %B: SB pengalamatan relatif konflik dengan penggunaan dari R9error: %B: Arsitektur CPU tidak diketahuierror: %B: ukuran dari bagian %A bukan multiple dari ukuran alamaterror: %B: unable to merge virtualization attributes with %Berror: Sumber objek %B memiliki versi EABI %d, tetapi target %B memiliki versi EABI %derror: fp16 format tidak cocok diantara %B dan %Berror: tipe relokasi tidak sesuai untuk shared library (apakah anda lupa -fpic?)error: simbol tidak terdefinisi __rtiniterror: unknown Tag_ABI_array_object_align_expected value in %Berror: unknown Tag_ABI_array_object_alignment value in %Bexecutablegagal mengalokasikan ruang untuk bagian baru APUinfo.gagal untuk menghitung bagian baru APUinfo.gagal untuk memasang bagian baru APUinfo.kesalahan fatal ketika membuat .fixuplinker generik tidak dapat menangani %spenunjuk global alamat relatif diluar dari jangkauanpenunjuk global relokasi relatif waktu _gp tidak terdefinisisimbol tersembunyimengabaikan relokasi %s
+incr_linum(b): +%u
+incr_linum_l: +%u
+incr_linum_w: +%u
+kesalahan internal: addend seharusnya nol untuk R_LM32_16_GOTinternal error error berbahayainternal error: relokasi berbahayainternal error: diluar jangkauan errorinternal erro: suspicious tipe relokasi digunakan dalam shared libraryinternal error: error tidak diketahuiinternal error: relokasi tidak didukung errorinternal tidak konsisten dalam ukuran dari daerah .got.locinternal simbolinvalid input relocation when producing non-ELF, non-mmo format output.
+ Please use the objcopy program to convert from ELF or mmo,
+ or assemble using "-no-expand" (for gcc, "-Wa,-no-expand"invalid input relocation when producing non-ELF, non-mmo format output.
+ Please use the objcopy program to convert from ELF or mmo,
+ or compile using the gcc-option "-mno-base-addresses".alamat relokasi tidak validtipe relokasi %d tidak validinvalid use of %s with contextsip2k linker: hilang halaman instruksi di 0x%08lx (dest = 0x%08lx).ip2k linker: redundant halaman instruksi di 0x%08lx (dest = 0x%08lx).ip2k relaxer: switch tabel header terkorupsi.ip2k relaxer: tabel switch tanpa pencocokan informasi relokasi lengkap.line num  (len: %u)
+linkable imagelinker stubs dalam %u grup %s
   cabang         %lu
   toc adjust     %lu
   cabang panjang %lu
   long toc adj   %lu
-  plt call       %luliteral relokasi terjadi untuk simbol eksternalstub brach panjang `%s' ofset overflowbukan-dinamis relokasi refer ke simbol dinamis %sukuran non-overlay dari 0x%v plus maksimul overlay size dari 0x%v melebihi lokal store
+  plt call       %luliteralliteral relokasi terjadi untuk simbol eksternalmep: no reloc for code %dmodbeg
+modend
+nativenon-contiguous array of %s
+bukan-dinamis relokasi refer ke simbol dinamis %sukuran non-overlay dari 0x%v plus maksimul overlay size dari 0x%v melebihi lokal store
 bukan-nol ditambahkan dalam @fptr relokasitidak cukup ruang GOT untuk masukan lokal GOTtidak termap: data=%lx mapped=%d
 tidak termap; env var tidak terset
-obj kode %d tidak ditemukandiluar jangkauanoverflow setelah relaksasirelokasi stub overlay overflowprivate flags = %lxtanda private = %lx:private flags = %lx: tanda private = %x:private flags = 0x%lxprivate flags = 0x%lx:simbol terproteksireferensi ke alamat bank [%lx:%04lx] dalam ruang alamat normal di %04lxrelokasi referensi ke segmen berbedarelokasi referensi simbol tidak didefinisikan dalam modulrelokasi membutuhkan penambahan nolrelokasi diantara segmen berbeda tidak didukungmembuka kembali %B: %s
-reserved CTL perintah %dreserved OPR perintah %dperintah %d STA direserveperintah %d direservereserved STO perintah %ddaerah data-kecil melebihi 64KB; dibawah data-kecil batas ukuran (lihat pilihan -G)som_sizeof_headers tidak terimplementasimaaf, tidak ada dukungan untuk duplikasi berkas objek dalam auto-overlay script
-stack-entry-mask tidak terimplementasi secara penuhstack-from-image tidak terimplementasistack-literal tidak terimplementasi secara penuhstack-local-symbol tidak terimplementasi secara penuhstack-local-symbol-entry-point-mask tidak terimplementasi secara penuhprosedur statis (tidak bernama)masukan stub untuk %s tidak dapat diload .plt, dp ofset = %ldstub tidak cocok dengan ukuran yang dihitungsimboltidak dapat menemukan ARM lem '%s' untuk '%s'tidak dapat menemukan THUMB lem '%s' untuk '%s'tidak dapat membaca dalam bagian %s dari %Btidak tentu pemanggilan konvensi untuk non-COFF simbolundefined %s referensi dalam simbol kompleks: %stidak dikenalperintah ETIR %d tidak diketahuierror tidak diketahuibaris perintah %d tidak diketahuioperator tidak diketahui '%c' dalam simbol komplekssumber perintah %d tidak diketahuiperintah %s STA tidak didukungrelokasi tidak didukungtipe relokasi tidak didukungrelokasi tidak didukungrelokasi tidak didukung diantara data/insn ruang alamatmenggunakan nilai gp multiplev850 arsitekturv850e arsitekturv850e1 arsitektur vma:			AlamatAwal 	 AlamatAkhir	 UnwindData
-peringatan: %B menggunakan %s enums tapi keluaran menggunakan %s enums; menggunakan nilai dari enum dari objek mungkin gagalperingatan: %B menggunakan %u-byte wchar_t tapi keluaran menggunakan %u-byte wchar_t; menggunakan nilai wchar_t melewati objek mungkin gagalperingatan: %B: simbol lokal `%s' tidak memiliki bagianperingatan: %s melebihi ukuran daerah
+note: '%s' is defined in DSO %B so try adding it to the linker command linediluar jangkauanoverflow setelah relaksasirelokasi stub overlay overflowprivate flags = %lxtanda private = %lx:private flags = %lx: tanda private = %x:private flags = 0x%lxprivate flags = 0x%lx:prolog: bkpt address 0x%08x
+simbol terproteksirecbeg: name: %.*s
+recend
+referensi ke alamat bank [%lx:%04lx] dalam ruang alamat normal di %04lxregrelokasi `%s' belum terimplementasirelokasi referensi simbol tidak didefinisikan dalam modulrelokasi membutuhkan penambahan nolrelocation should be even numberrelokasi diantara segmen berbeda tidak didukungmembuka kembali %B: %s
+perintah %d direservertnbeg
+rtnend: size 0x%08x
+septyp, name: %.*s
+set_abs_pc: 0x%08x
+set_line_num(w) %u
+set_line_num_b %u
+set_line_num_l %u
+daerah data-kecil melebihi 64KB; dibawah data-kecil batas ukuran (lihat pilihan -G)som_sizeof_headers tidak terimplementasimaaf, tidak ada dukungan untuk duplikasi berkas objek dalam auto-overlay script
+source (len: %u)
+standard data: %s
+prosedur statis (tidak bernama)masukan stub untuk %s tidak dapat diload .plt, dp ofset = %ldstub tidak cocok dengan ukuran yang dihitungsimbolsystem version array information:
+term(b): 0x%02xterm_w: 0x%04xtypspec (len: %u)
+tidak dapat menemukan ARM lem '%s' untuk '%s'tidak dapat menemukan THUMB lem '%s' untuk '%s'tidak dapat membaca dalam bagian %s dari %Bunable to read unknown load command 0x%lxunable to write unknown load command 0x%lxunaligned bit-string of %s
+tidak tentu pemanggilan konvensi untuk non-COFF simbolundefined %s referensi dalam simbol kompleks: %sunhandled egsd entry type %u
+subtipe emh tidak tertangani %u
+tidak dikenalperintah ETIR %d tidak diketahuierror tidak diketahuiunknown header byte-order value 0x%lxbaris perintah %d tidak diketahuioperator tidak diketahui '%c' dalam simbol komplekssumber perintah %d tidak diketahuiperintah %s STA tidak didukungrelokasi tidak didukungtipe relokasi tidak didukungrelokasi tidak didukungrelokasi tidak didukung diantara data/insn ruang alamatmenggunakan nilai gp multiplev850 arsitekturv850e arsitekturv850e1 arsitekturv850e2 arsitekturv850e2v3 arsitekturvflags: 0x%02x, value: 0x%08x  vma:			AlamatAwal 	 AlamatAkhir	 UnwindData
+peringatan: %B dan %B berbeda dalam ukuran wchar_twarning: %B and %B differ in whether code is compiled for DSBTperingatan: %B menggunakan %s enums tapi keluaran menggunakan %s enums; menggunakan nilai dari enum dari objek mungkin gagalperingatan: %B menggunakan %u-byte wchar_t tapi keluaran menggunakan %u-byte wchar_t; menggunakan nilai wchar_t melewati objek mungkin gagalperingatan: %B: simbol lokal `%s' tidak memiliki bagianperingatan: %s melebihi ukuran daerah
 peringatan: %s memiliki sebuah string tabel korup index - diabaikanperingatan: %s timpang tindih %s
 peringatan: %s daerah memiliki ukuran nolperingatan: besar (%ld) daerah .pdata tidak dalam kelipatan dari %d
-peringatan: mencoba untuk mengekspor simbol tidak terdefinisi `%s'peringatan: panggilan bukan-fungsi simbol %s didefinisikan dalam %Bperingatan: relokasi referensi sebuah segmen berbedaperingatan: bagian `%A' tipe berubah ke PROGBITSperingatan: tipe dan ukuran dari simbol dinamis `%s' tidak terdefinisiperingatan: tidak dapat menset ukuran bagian %s dalam %Bperingatan: tidak dapat mengupdate isi dari %s bagian dalam %sanda tidak diperbolehkan untuk mendefinisikan %s dalam sebuah script
\ No newline at end of file
+peringatan: mencoba untuk mengekspor simbol tidak terdefinisi `%s'peringatan: panggilan bukan-fungsi simbol %s didefinisikan dalam %Bwarning: generating a shared library containing non-PIC codewarning: generating a shared library containing non-PID codeperingatan: relokasi referensi sebuah segmen berbedaperingatan: bagian '%s' dibuat dalam sebuah catatanperingatan: bagian `%A' tipe berubah ke PROGBITSperingatan: tipe dan ukuran dari simbol dinamis `%s' tidak terdefinisiperingatan: tidak dapat menset ukuran bagian %s dalam %Bperingatan: tidak dapat mengupdate isi dari %s bagian dalam %sanda tidak diperbolehkan untuk mendefinisikan %s dalam sebuah script
\ No newline at end of file
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/id.po ./bfd/po/id.po
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/id.po	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/id.po	2018-01-09 02:04:54.000000000 +0000
@@ -1,16 +1,18 @@
 # Pesan Bahasa Indonesia untuk BFD
 # Copyright (C) 2008 Free Software Foundation, Inc.
 # This file is distributed under the same license as the binutils package.
-# Arif E. Nugroho <arif_endro@yahoo.com>, 2008, 2009.
+# Arif E. Nugroho <arif_endro@yahoo.com>, 2008, 2009, 2010, 2011, 2012, 2013, 2014.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: bfd 2.20\n"
+"Project-Id-Version: bfd 2.23.90\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 14:05+0200\n"
-"PO-Revision-Date: 2009-11-11 08:00+0700\n"
+"POT-Creation-Date: 2011-10-25 11:58+0100\n"
+"PO-Revision-Date: 2014-09-16 08:00+0700\n"
 "Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
+"Language: id\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -19,155 +21,155 @@ msgstr ""
 msgid "%B: Unknown section type in a.out.adobe file: %x\n"
 msgstr "%B: Tipe bagian tidak diketahui dalam berkas a.out.adobe: %x\n"
 
-#: aout-cris.c:204
+#: aout-cris.c:199
 #, c-format
 msgid "%s: Invalid relocation type exported: %d"
 msgstr "%s: Tipe relokasi tidak valid terekspor: %d"
 
-#: aout-cris.c:247
+#: aout-cris.c:242
 msgid "%B: Invalid relocation type imported: %d"
 msgstr "%B: Tipe relokasi tidak valid terimpor: %d"
 
-#: aout-cris.c:258
+#: aout-cris.c:253
 msgid "%B: Bad relocation record imported: %d"
 msgstr "%B: Catatan relokasi buruk terimpor: %d"
 
-#: aoutx.h:1271 aoutx.h:1609
+#: aoutx.h:1273 aoutx.h:1611
 #, c-format
 msgid "%s: can not represent section `%s' in a.out object file format"
 msgstr "%s: tidak dapat merepresentasikan bagian `%s' dalam a.out objek format berkas"
 
-#: aoutx.h:1575
+#: aoutx.h:1577
 #, c-format
 msgid "%s: can not represent section for symbol `%s' in a.out object file format"
 msgstr "%s: tidak dapat merepresentasikan bagian untuk simbol `%s' dalam format berkas a.out objek"
 
-#: aoutx.h:1577
+#: aoutx.h:1579 vms-alpha.c:7671
 msgid "*unknown*"
 msgstr "*tidak diketahui*"
 
-#: aoutx.h:3994 aoutx.h:4320
+#: aoutx.h:4018 aoutx.h:4344
 msgid "%P: %B: unexpected relocation type\n"
 msgstr "%P: %B: tipe relokasi tidak diduga\n"
 
-#: aoutx.h:5354
+#: aoutx.h:5375
 #, c-format
 msgid "%s: relocatable link from %s to %s not supported"
 msgstr "%s: link relokasi dari %s ke %s tidak didukung"
 
-#: archive.c:2056
+#: archive.c:2203
 msgid "Warning: writing archive was slow: rewriting timestamp\n"
 msgstr "Peringatan: penulisan archive lambat: menulis ulang timestamp\n"
 
-#: archive.c:2342
+#: archive.c:2491
 msgid "Reading archive file mod timestamp"
 msgstr "Membaca berkas mod timestamp archive"
 
-#: archive.c:2366
+#: archive.c:2515
 msgid "Writing updated armap timestamp"
 msgstr "Menulis armap timestamp terupdate"
 
-#: bfd.c:375
+#: bfd.c:398
 msgid "No error"
 msgstr "Tidak error"
 
-#: bfd.c:376
+#: bfd.c:399
 msgid "System call error"
 msgstr "Pemanggilan sistem error"
 
-#: bfd.c:377
+#: bfd.c:400
 msgid "Invalid bfd target"
 msgstr "Target bfd tidak valid"
 
-#: bfd.c:378
+#: bfd.c:401
 msgid "File in wrong format"
 msgstr "Berkas dalam format salah"
 
-#: bfd.c:379
+#: bfd.c:402
 msgid "Archive object file in wrong format"
 msgstr "Archive berkas objek dalam format salah"
 
-#: bfd.c:380
+#: bfd.c:403
 msgid "Invalid operation"
 msgstr "Operasi tidak valid"
 
-#: bfd.c:381
+#: bfd.c:404
 msgid "Memory exhausted"
 msgstr "Kehabisan memori"
 
-#: bfd.c:382
+#: bfd.c:405
 msgid "No symbols"
 msgstr "Bukan simbol"
 
-#: bfd.c:383
+#: bfd.c:406
 msgid "Archive has no index; run ranlib to add one"
 msgstr "Archive tidak memiliki indek; jalankan ranlib untuk menambahkan satu"
 
-#: bfd.c:384
+#: bfd.c:407
 msgid "No more archived files"
 msgstr "Tidak lagi berkas yang ter-archive"
 
-#: bfd.c:385
+#: bfd.c:408
 msgid "Malformed archive"
 msgstr "Archive tidak terformat"
 
-#: bfd.c:386
+#: bfd.c:409
 msgid "File format not recognized"
 msgstr "Berkas format tidak dikenal"
 
-#: bfd.c:387
+#: bfd.c:410
 msgid "File format is ambiguous"
 msgstr "Berkas format ambigu"
 
-#: bfd.c:388
+#: bfd.c:411
 msgid "Section has no contents"
 msgstr "Bagian tidak memiliki isi"
 
-#: bfd.c:389
+#: bfd.c:412
 msgid "Nonrepresentable section on output"
 msgstr "Bagian tidak dapat direpresentasikan di keluaran"
 
-#: bfd.c:390
+#: bfd.c:413
 msgid "Symbol needs debug section which does not exist"
 msgstr "Simbol membutuhkan bagian debug yang mana bagian tersebut tidak ada"
 
-#: bfd.c:391
+#: bfd.c:414
 msgid "Bad value"
 msgstr "Nilai buruk"
 
-#: bfd.c:392
+#: bfd.c:415
 msgid "File truncated"
 msgstr "Berkas terpotong"
 
-#: bfd.c:393
+#: bfd.c:416
 msgid "File too big"
 msgstr "Berkas terlalu besar"
 
-#: bfd.c:394
+#: bfd.c:417
 #, c-format
 msgid "Error reading %s: %s"
 msgstr "Error membaca %s: %s"
 
-#: bfd.c:395
+#: bfd.c:418
 msgid "#<Invalid error code>"
 msgstr "#<Kode error tidak valid>"
 
-#: bfd.c:919
+#: bfd.c:945
 #, c-format
 msgid "BFD %s assertion fail %s:%d"
 msgstr "BFD %s assertion gagal %s:%d"
 
-#: bfd.c:931
+#: bfd.c:957
 #, c-format
 msgid "BFD %s internal error, aborting at %s line %d in %s\n"
 msgstr "BFD %s error internal, menggagalkan di %s baris %d dalam %s\n"
 
-#: bfd.c:935
+#: bfd.c:961
 #, c-format
 msgid "BFD %s internal error, aborting at %s line %d\n"
 msgstr "BFD %s error internal, menggagalkan di %s baris %d\n"
 
-#: bfd.c:937
+#: bfd.c:963
 msgid "Please report this bug.\n"
 msgstr "Tolong laporkan bug ini.\n"
 
@@ -181,22 +183,22 @@ msgstr "tidak termap: data=%lx mapped=%d
 msgid "not mapping: env var not set\n"
 msgstr "tidak termap; env var tidak terset\n"
 
-#: binary.c:284
+#: binary.c:271
 #, c-format
 msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx."
 msgstr "Peringatan: Menulis bagian `%s' terlalu besar (ie negatif) berkas ofset 0x%lx."
 
-#: bout.c:1150 elf-m10300.c:2078 elf32-avr.c:1639 elf32-frv.c:5743
-#: elf32-xtensa.c:6639 elfxx-sparc.c:2456 reloc.c:5386 reloc16.c:162
-#: vms.c:1918 elf32-ia64.c:788 elf64-ia64.c:788
+#: bout.c:1146 elf-m10300.c:2063 elf32-avr.c:1654 elf32-frv.c:5734
+#: elfxx-sparc.c:2802 reloc.c:6115 reloc16.c:162 elf32-ia64.c:360
+#: elf64-ia64.c:360
 msgid "%P%F: --relax and -r may not be used together\n"
 msgstr "%P%F: --relax dan -r tidak boleh digunakan secara bersamaan\n"
 
-#: cache.c:226
+#: cache.c:227
 msgid "reopening %B: %s\n"
 msgstr "membuka kembali %B: %s\n"
 
-#: coff-alpha.c:490
+#: coff-alpha.c:491
 msgid ""
 "%B: Cannot handle compressed Alpha binaries.\n"
 "   Use compiler flags, or objZ, to generate uncompressed binaries."
@@ -204,42 +206,42 @@ msgstr ""
 "%B: Tidak dapat menangani binari yang dikompres Alpha.\n"
 "   Menggunakan tanda kompiler, atau objZ, untuk menghasilkan binari tidak terkompres."
 
-#: coff-alpha.c:647
+#: coff-alpha.c:648
 msgid "%B: unknown/unsupported relocation type %d"
 msgstr "%B; tidak diketahui/tidak didukung tipe relokasi %d"
 
-#: coff-alpha.c:899 coff-alpha.c:936 coff-alpha.c:2024 coff-mips.c:1003
+#: coff-alpha.c:900 coff-alpha.c:937 coff-alpha.c:2025 coff-mips.c:1003
 msgid "GP relative relocation used when GP not defined"
 msgstr "GP relatif relokasi digunakan ketika GP tidak didefinisikan"
 
-#: coff-alpha.c:1501
+#: coff-alpha.c:1502
 msgid "using multiple gp values"
 msgstr "menggunakan nilai gp multiple"
 
-#: coff-alpha.c:1560
+#: coff-alpha.c:1561
 msgid "%B: unsupported relocation: ALPHA_R_GPRELHIGH"
 msgstr "%B: relokasi tidak didukung: ALPHA_R_GPRELHIGH"
 
-#: coff-alpha.c:1567
+#: coff-alpha.c:1568
 msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW"
 msgstr "%B: relokasi tidak didukung: ALPHA_R_GPRELLOW"
 
-#: coff-alpha.c:1574 elf32-m32r.c:2477 elf64-alpha.c:3943 elf64-alpha.c:4098
-#: elf32-ia64.c:4462 elf64-ia64.c:4462
+#: coff-alpha.c:1575 elf32-m32r.c:2484 elf64-alpha.c:4074 elf64-alpha.c:4224
+#: elf32-ia64.c:3839 elf64-ia64.c:3839
 msgid "%B: unknown relocation type %d"
 msgstr "%B: tipe relokasi %d tidak diketahui"
 
-#: coff-arm.c:1039
+#: coff-arm.c:1038
 #, c-format
 msgid "%B: unable to find THUMB glue '%s' for `%s'"
 msgstr "%B: tidak dapat menemukan lem THUMB '%s' untuk `%s'"
 
-#: coff-arm.c:1068
+#: coff-arm.c:1067
 #, c-format
 msgid "%B: unable to find ARM glue '%s' for `%s'"
 msgstr "%B: tidak dapat menemukan lem ARM '%s' untuk `%s'"
 
-#: coff-arm.c:1370 elf32-arm.c:6372
+#: coff-arm.c:1369 elf32-arm.c:7023
 #, c-format
 msgid ""
 "%B(%s): warning: interworking not enabled.\n"
@@ -248,7 +250,7 @@ msgstr ""
 "%B(%s): peringatan: antar-kerja tidak diaktifkan.\n"
 "  pertemuan pertama: %B: arm panggil ke thumb"
 
-#: coff-arm.c:1460
+#: coff-arm.c:1459
 #, c-format
 msgid ""
 "%B(%s): warning: interworking not enabled.\n"
@@ -259,95 +261,95 @@ msgstr ""
 "  pertemuan pertama: %B: panggilan thumb ke arm\n"
 "  pertimbangkan relinking dengan --support-old-code aktif"
 
-#: coff-arm.c:1755 coff-tic80.c:695 cofflink.c:3027
+#: coff-arm.c:1754 coff-tic80.c:695 cofflink.c:3081
 msgid "%B: bad reloc address 0x%lx in section `%A'"
 msgstr "%B: alamat relokasi buruk 0x%lx dalam bagian `%A'"
 
-#: coff-arm.c:2080
+#: coff-arm.c:2079
 msgid "%B: illegal symbol index in reloc: %d"
 msgstr "%B: indek simbol ilegal dalam relokasi: %d"
 
-#: coff-arm.c:2211
+#: coff-arm.c:2210
 #, c-format
 msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d"
 msgstr "error: %B dikompile untuk APCS-%d, dimana %B dikompile untuk APCS-%d"
 
-#: coff-arm.c:2227 elf32-arm.c:10327
+#: coff-arm.c:2226 elf32-arm.c:15621
 #, c-format
 msgid "error: %B passes floats in float registers, whereas %B passes them in integer registers"
 msgstr "error: %B melewati float dalam register float, dimana %B melewatinya register integer"
 
-#: coff-arm.c:2230 elf32-arm.c:10331
+#: coff-arm.c:2229 elf32-arm.c:15625
 #, c-format
 msgid "error: %B passes floats in integer registers, whereas %B passes them in float registers"
 msgstr "error: %B melewati float dalam register integer, dimana %B melewatinya float register"
 
-#: coff-arm.c:2244
+#: coff-arm.c:2243
 #, c-format
 msgid "error: %B is compiled as position independent code, whereas target %B is absolute position"
 msgstr "error: %B dikompile sebagai kode bebas posisi, dimana target %B yang memiliki posisi absolute"
 
-#: coff-arm.c:2247
+#: coff-arm.c:2246
 #, c-format
 msgid "error: %B is compiled as absolute position code, whereas target %B is position independent"
 msgstr "error: %B dikompile sebagai kode absolute posisi, dimana target %B adalah bebas posisi"
 
-#: coff-arm.c:2275 elf32-arm.c:10396
+#: coff-arm.c:2274 elf32-arm.c:15690
 #, c-format
 msgid "Warning: %B supports interworking, whereas %B does not"
 msgstr "Peringatan: %B  mendukung antar-kerja, dimana %B tidak"
 
-#: coff-arm.c:2278 elf32-arm.c:10402
+#: coff-arm.c:2277 elf32-arm.c:15696
 #, c-format
 msgid "Warning: %B does not support interworking, whereas %B does"
 msgstr "Peringatan: %B tidak mendukung antar-kerja, dimana %B ya"
 
-#: coff-arm.c:2302
+#: coff-arm.c:2301
 #, c-format
 msgid "private flags = %x:"
 msgstr "tanda private = %x:"
 
-#: coff-arm.c:2310 elf32-arm.c:10453
+#: coff-arm.c:2309 elf32-arm.c:11806
 #, c-format
 msgid " [floats passed in float registers]"
 msgstr " [floats melewati dalam register float]"
 
-#: coff-arm.c:2312
+#: coff-arm.c:2311
 #, c-format
 msgid " [floats passed in integer registers]"
 msgstr " [float melewati register integer]"
 
-#: coff-arm.c:2315 elf32-arm.c:10456
+#: coff-arm.c:2314 elf32-arm.c:11809
 #, c-format
 msgid " [position independent]"
 msgstr " [bebas posisi]"
 
-#: coff-arm.c:2317
+#: coff-arm.c:2316
 #, c-format
 msgid " [absolute position]"
 msgstr " [absolute posisi]"
 
-#: coff-arm.c:2321
+#: coff-arm.c:2320
 #, c-format
 msgid " [interworking flag not initialised]"
 msgstr " [tanda antar-kerja tidak terinisialisasi]"
 
-#: coff-arm.c:2323
+#: coff-arm.c:2322
 #, c-format
 msgid " [interworking supported]"
 msgstr " [antar-kerja didukung]"
 
-#: coff-arm.c:2325
+#: coff-arm.c:2324
 #, c-format
 msgid " [interworking not supported]"
 msgstr " [antar-kerja tidak didukung]"
 
-#: coff-arm.c:2371 elf32-arm.c:9360
+#: coff-arm.c:2370 elf32-arm.c:10841
 #, c-format
 msgid "Warning: Not setting interworking flag of %B since it has already been specified as non-interworking"
 msgstr "Peringatan: Tidak menset tanda antar-kerja dari %B karena itu telah terspesifikasi sebagai bukan-antar-kerja"
 
-#: coff-arm.c:2375 elf32-arm.c:9364
+#: coff-arm.c:2374 elf32-arm.c:10845
 #, c-format
 msgid "Warning: Clearing the interworking flag of %B due to outside request"
 msgstr "Peringatan: Menghapus tanda antar-kerja dari %B karena diluar permintaan"
@@ -359,43 +361,23 @@ msgstr "tidak dapat menangani R_MEM_INDI
 
 #: coff-i860.c:147
 #, c-format
-msgid "Relocation `%s' not yet implemented\n"
-msgstr "Relokasi `%s' belum terimplementasi\n"
+msgid "relocation `%s' not yet implemented"
+msgstr "relokasi `%s' belum terimplementasi"
 
-#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5143
+#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5198
 msgid "%B: warning: illegal symbol index %ld in relocs"
 msgstr "%B: peringatan: indek simbol ilegal %ld dalam relokasi"
 
-#: coff-i960.c:143 coff-i960.c:506
+#: coff-i960.c:144 coff-i960.c:507
 msgid "uncertain calling convention for non-COFF symbol"
 msgstr "tidak tentu pemanggilan konvensi untuk non-COFF simbol"
 
-#: coff-m68k.c:506 elf32-bfin.c:5693 elf32-cr16.c:2965 elf32-m68k.c:4615
+#: coff-m68k.c:506 elf32-bfin.c:5690 elf32-cr16.c:2897 elf32-m68k.c:4677
 msgid "unsupported reloc type"
 msgstr "tipe relokasi tidak didukung"
 
-#: coff-maxq.c:126
-msgid "Can't Make it a Short Jump"
-msgstr "Tidak dapat membuka ini sebuah lompatan pendek"
-
-#: coff-maxq.c:191
-msgid "Exceeds Long Jump Range"
-msgstr "Melewati jangkauan lompatan panjang"
-
-#: coff-maxq.c:202 coff-maxq.c:276
-msgid "Absolute address Exceeds 16 bit Range"
-msgstr "Alamat absolut melewati jangkauan 16 bit"
-
-#: coff-maxq.c:240
-msgid "Absolute address Exceeds 8 bit Range"
-msgstr "Alamat absolute melewati jangkauan 8 bit"
-
-#: coff-maxq.c:333
-msgid "Unrecognized Reloc Type"
-msgstr "Tipe relokasi tidak dikenal"
-
-#: coff-mips.c:688 elf32-mips.c:1014 elf32-score.c:441 elf32-score7.c:341
-#: elf64-mips.c:2018 elfn32-mips.c:1832
+#: coff-mips.c:688 elf32-mips.c:1516 elf32-score.c:431 elf32-score7.c:330
+#: elf64-mips.c:2618 elfn32-mips.c:2431
 msgid "GP relative relocation when _gp not defined"
 msgstr "GP relokasi relatif ketika _gp tidak terdefinisi"
 
@@ -403,20 +385,25 @@ msgstr "GP relokasi relatif ketika _gp t
 msgid "Unrecognized reloc"
 msgstr "Relokasi tidak dikenal"
 
-#: coff-rs6000.c:2787
+#: coff-rs6000.c:2720
 #, c-format
 msgid "%s: unsupported relocation type 0x%02x"
 msgstr "%s: tipe relokasi tidak didukung 0x%02x"
 
-#: coff-rs6000.c:2880
+#: coff-rs6000.c:2805
 #, c-format
 msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
 msgstr "%s: TOC relokasi di 0x%x untuk simbol `%s' dengan tidak ada masukan TOC"
 
-#: coff-rs6000.c:3646 coff64-rs6000.c:2168
+#: coff-rs6000.c:3556 coff64-rs6000.c:2111
 msgid "%B: symbol `%s' has unrecognized smclas %d"
 msgstr "%B: simbol `%s' memiliki smclas tidak dikenal %d"
 
+#: coff-sh.c:521
+#, c-format
+msgid "SH Error: unknown reloc type %d"
+msgstr "SH Error: tipe relokasi %d tidak diketahui"
+
 #: coff-tic4x.c:195 coff-tic54x.c:299 coff-tic80.c:458
 #, c-format
 msgid "Unrecognized reloc type 0x%x"
@@ -432,76 +419,88 @@ msgstr "%s: peringatan: indek simbol ile
 msgid "ignoring reloc %s\n"
 msgstr "mengabaikan relokasi %s\n"
 
-#: coffcode.h:960
+#: coffcode.h:997
 msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'"
 msgstr "%B: peringatan: COMDAT simbol '%s' tidak cocok dengan nama bagian '%s'"
 
 #. Generate a warning message rather using the 'unhandled'
 #. variable as this will allow some .sys files generate by
 #. other toolchains to be processed.  See bugzilla issue 196.
-#: coffcode.h:1176
+#: coffcode.h:1221
 msgid "%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s"
 msgstr "%B: Peringatan: Mengabaikan tanda bagian IMAGE_SCN_MEM_NOT_PAGED dalam bagian %s"
 
-#: coffcode.h:1240
+#: coffcode.h:1288
 msgid "%B (%s): Section flag %s (0x%x) ignored"
 msgstr "%B (%s): Tanda bagian %s (0x%x) diabaikan"
 
-#: coffcode.h:2382
+#: coffcode.h:2430
 #, c-format
 msgid "Unrecognized TI COFF target id '0x%x'"
 msgstr "Target id '0x%x' TI COFF tidak dikenal"
 
-#: coffcode.h:2696
+#: coffcode.h:2744
 msgid "%B: reloc against a non-existant symbol index: %ld"
 msgstr "%B: relokasi terhadap simbol indek yang tidak ada: %ld"
 
-#: coffcode.h:3669
+#: coffcode.h:3302
+msgid "%B: too many sections (%d)"
+msgstr "%B: terlalu banyak bagian (%d)"
+
+#: coffcode.h:3718
 msgid "%B: section %s: string table overflow at offset %ld"
 msgstr "%B: bagian %s: tabel string overflow di offset %ld"
 
-#: coffcode.h:4477
+#: coffcode.h:4523
 msgid "%B: warning: line number table read failed"
 msgstr "%B: peringatan: pembacaan tabel nomor baris gagal"
 
-#: coffcode.h:4507
+#: coffcode.h:4553
 msgid "%B: warning: illegal symbol index %ld in line numbers"
 msgstr "%B: peringatan: simbol index %ld ilegal dalam nomor baris"
 
-#: coffcode.h:4521
+#: coffcode.h:4567
 msgid "%B: warning: duplicate line number information for `%s'"
 msgstr "%B: peringatan: duplikasi informasi nomor baris untuk `%s'"
 
-#: coffcode.h:4912
+#: coffcode.h:4967
 msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
 msgstr "%B: kelas %d penyimpanan tidak dikenal untuk %s simbol `%s'"
 
-#: coffcode.h:5038
+#: coffcode.h:5093
 msgid "warning: %B: local symbol `%s' has no section"
 msgstr "peringatan: %B: simbol lokal `%s' tidak memiliki bagian"
 
-#: coffcode.h:5181
+#: coffcode.h:5237
 msgid "%B: illegal relocation type %d at address 0x%lx"
 msgstr "%B: tipe relokasi %d ilegal di alamat 0x%lx"
 
-#: coffgen.c:1571
+#: coffgen.c:1595
 msgid "%B: bad string table size %lu"
 msgstr "%B: string buruk ukuran tabel %lu"
 
-#: cofflink.c:513 elflink.c:4307
+#: coffgen.c:2500 elflink.c:12689 linker.c:3122
+msgid "%F%P: already_linked_table: %E\n"
+msgstr "%F%P: already_linked_table: %E\n"
+
+#: cofflink.c:533 elflink.c:4323
 msgid "Warning: type of symbol `%s' changed from %d to %d in %B"
 msgstr "Peringatan: tipe dari simbole `%s' berubah dari %d ke %d dalam %B"
 
-#: cofflink.c:2305
+#: cofflink.c:2329
 msgid "%B: relocs in section `%A', but it has no contents"
 msgstr "%B: relokasi dalam bagian `%A', tetapi ini tidak memiliki isi"
 
-#: cofflink.c:2636 coffswap.h:826
+#: cofflink.c:2391 elflink.c:9545
+msgid "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B\n"
+msgstr "%X`%s' direferensikan dalam daerah `%A' dari %B: didefinisikan dalam daerah diabaikan `%A' dari %B\n"
+
+#: cofflink.c:2690 coffswap.h:826
 #, c-format
 msgid "%s: %s: reloc overflow: 0x%lx > 0xffff"
 msgstr "%s: %s: relokasi overflow: 0x%lx > 0xffff"
 
-#: cofflink.c:2645 coffswap.h:812
+#: cofflink.c:2699 coffswap.h:812
 #, c-format
 msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff"
 msgstr "%s: peringatan: %s: nomor baris overflow: 0x%lx > 0xffff"
@@ -510,65 +509,69 @@ msgstr "%s: peringatan: %s: nomor baris 
 msgid "error: %B is compiled for the EP9312, whereas %B is compiled for XScale"
 msgstr "error: %B dikompile untuk EP9312, dimana %B dikompile untuk XScale"
 
-#: cpu-arm.c:332
+#: cpu-arm.c:333
 #, c-format
 msgid "warning: unable to update contents of %s section in %s"
 msgstr "peringatan: tidak dapat mengupdate isi dari %s bagian dalam %s"
 
-#: dwarf2.c:430
+#: dwarf2.c:496
 #, c-format
 msgid "Dwarf Error: Can't find %s section."
 msgstr "Dwarf Error: Tidak dapat menemukan bagian %s."
 
-#: dwarf2.c:457
-#, c-format
-msgid "Dwarf Error: unable to decompress %s section."
-msgstr "Dwarf Error: tidak dapat mengekstrak bagian %s."
-
-#: dwarf2.c:468
+#: dwarf2.c:525
 #, c-format
 msgid "Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu)."
 msgstr "Dwarf Error: Ofset (%lu) lebih besar atau sama dengan %s ukuran (%lu)."
 
-#: dwarf2.c:865
+#: dwarf2.c:949
 #, c-format
 msgid "Dwarf Error: Invalid or unhandled FORM value: %u."
 msgstr "Dwarf Error: Tidak valid atau nilai FORM tidak tertangani: %u."
 
-#: dwarf2.c:1079
+#: dwarf2.c:1200
 msgid "Dwarf Error: mangled line number section (bad file number)."
 msgstr "Dwarf Error: mangled bagian nomor baris (nomor berkas buruk)."
 
-#: dwarf2.c:1413
+#: dwarf2.c:1453
+#, c-format
+msgid "Dwarf Error: Unhandled .debug_line version %d."
+msgstr "Dwarf Error: Tidak tertangani .debug_line versi %d."
+
+#: dwarf2.c:1475
+msgid "Dwarf Error: Invalid maximum operations per instruction."
+msgstr "Dwarf Error: Tidak valid jumlah maksimal operasi per instruksi."
+
+#: dwarf2.c:1662
 msgid "Dwarf Error: mangled line number section."
 msgstr "Dwarf Error: mangled bagian nomor baris."
 
-#: dwarf2.c:1760 dwarf2.c:1867 dwarf2.c:2139
+#: dwarf2.c:1989 dwarf2.c:2109 dwarf2.c:2394
 #, c-format
 msgid "Dwarf Error: Could not find abbrev number %u."
 msgstr "Dwarf Error: Tidak dapat menemukan nomor singkat %u."
 
-#: dwarf2.c:2100
+#: dwarf2.c:2355
 #, c-format
-msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2 and 3 information."
-msgstr "Dwarf Error: menemukan versi dwarf '%u', pembaca ini hanya menangani informasi versi 2 dan 3."
+msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information."
+msgstr "Dwarf Error: menemukan versi dwarf '%u', pembaca ini hanya menangani informasi versi 2, 3 dan 4."
 
-#: dwarf2.c:2107
+#: dwarf2.c:2362
 #, c-format
 msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'."
 msgstr "Dwarf Error: menemukan ukuran alamat '%u', pembaca ini tidak dapat menangani ukuran lebih besar dari '%u'."
 
-#: dwarf2.c:2130
+#: dwarf2.c:2385
 #, c-format
 msgid "Dwarf Error: Bad abbrev number: %u."
 msgstr "Dwarf Error: Nomor singkat buruk: %u."
 
-#: ecoff.c:1238
+#: ecoff.c:1239
 #, c-format
 msgid "Unknown basic type %d"
 msgstr "Tipe dasar %d tidak diketahui"
 
-#: ecoff.c:1495
+#: ecoff.c:1496
 #, c-format
 msgid ""
 "\n"
@@ -577,7 +580,7 @@ msgstr ""
 "\n"
 "      Simbol End+1: %ld"
 
-#: ecoff.c:1502 ecoff.c:1505
+#: ecoff.c:1503 ecoff.c:1506
 #, c-format
 msgid ""
 "\n"
@@ -586,7 +589,7 @@ msgstr ""
 "\n"
 "      Simbol pertama: %ld"
 
-#: ecoff.c:1517
+#: ecoff.c:1518
 #, c-format
 msgid ""
 "\n"
@@ -595,7 +598,7 @@ msgstr ""
 "\n"
 "      Simbol End+1: %-7ld   Tipe:  %s"
 
-#: ecoff.c:1524
+#: ecoff.c:1525
 #, c-format
 msgid ""
 "\n"
@@ -604,7 +607,7 @@ msgstr ""
 "\n"
 "      Simbol lokal: %ld"
 
-#: ecoff.c:1532
+#: ecoff.c:1533
 #, c-format
 msgid ""
 "\n"
@@ -613,7 +616,7 @@ msgstr ""
 "\n"
 "      struct; simbol End+1: %ld"
 
-#: ecoff.c:1537
+#: ecoff.c:1538
 #, c-format
 msgid ""
 "\n"
@@ -622,7 +625,7 @@ msgstr ""
 "\n"
 "      union: End+1 simbol: %ld"
 
-#: ecoff.c:1542
+#: ecoff.c:1543
 #, c-format
 msgid ""
 "\n"
@@ -631,7 +634,7 @@ msgstr ""
 "\n"
 "      enum; End+1 simbol: %ld"
 
-#: ecoff.c:1548
+#: ecoff.c:1549
 #, c-format
 msgid ""
 "\n"
@@ -640,124 +643,140 @@ msgstr ""
 "\n"
 "      Tipe: %s"
 
-#: elf-attrs.c:567
-msgid "error: %B: Must be processed by '%s' toolchain"
-msgstr "error: %B: Harus diproses dengan '%s' toolchain"
+#: elf-attrs.c:569
+msgid "error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchain"
+msgstr "error: %B: Objek yang memiliki konten vendor-specific harus diproses dengan '%s' toolchain"
 
-#: elf-attrs.c:575
+#: elf-attrs.c:578
 msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'"
 msgstr "error: %B: Objek tag '%d, %s' tidak kompatibel dengan tag '%d, %s'"
 
-#: elf-eh-frame.c:884
+#: elf-eh-frame.c:917
 msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n"
 msgstr "%P: error dalam %B(%A); tidak ada .eh_frame_hdr tabel yang akan dibuat.\n"
 
-#: elf-eh-frame.c:1122
+#: elf-eh-frame.c:1189
 msgid "%P: fde encoding in %B(%A) prevents .eh_frame_hdr table being created.\n"
 msgstr "%P: fde enkoding dalam %B(%A) menjaga .eh_frame_hdr tabel untuk dibuat.\n"
 
+#: elf-eh-frame.c:1605
+msgid "%P: DW_EH_PE_datarel unspecified for this architecture.\n"
+msgstr "%P: DW_EH_PE_datarel unspecified for this architecture.\n"
+
 #: elf-ifunc.c:179
 msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can not be used when making an executable; recompile with -fPIE and relink with -pie\n"
 msgstr "%F%P: dynamic STT_GNU_IFUNC simbol '%s' dengan penunjuk persamaan dalam `%B' tidak dapat digunakan ketika membuat sebuah pelaksana; rekompilasi dengan -fPIE dan hubungkan kembali dengan -pie\n"
 
-#: elf-m10200.c:456 elf-m10300.c:1575 elf32-avr.c:1251 elf32-bfin.c:3200
-#: elf32-cr16.c:1517 elf32-cr16c.c:790 elf32-cris.c:2089 elf32-crx.c:933
-#: elf32-d10v.c:516 elf32-fr30.c:616 elf32-frv.c:4114 elf32-h8300.c:516
-#: elf32-i860.c:1218 elf32-ip2k.c:1499 elf32-iq2000.c:691 elf32-lm32.c:1171
-#: elf32-m32c.c:560 elf32-m32r.c:3102 elf32-m68hc1x.c:1136 elf32-mep.c:541
-#: elf32-microblaze.c:1226 elf32-moxie.c:291 elf32-msp430.c:493 elf32-mt.c:402
-#: elf32-openrisc.c:411 elf32-score.c:2752 elf32-score7.c:2591
-#: elf32-spu.c:5045 elf32-v850.c:1701 elf32-xstormy16.c:948 elf64-mmix.c:1533
+#: elf-m10200.c:450 elf-m10300.c:1563 elf32-avr.c:1221 elf32-bfin.c:3213
+#: elf32-cr16.c:1482 elf32-cr16c.c:780 elf32-cris.c:2081 elf32-crx.c:922
+#: elf32-d10v.c:509 elf32-epiphany.c:556 elf32-fr30.c:609 elf32-frv.c:4105
+#: elf32-h8300.c:509 elf32-i860.c:1211 elf32-ip2k.c:1468 elf32-iq2000.c:684
+#: elf32-lm32.c:1168 elf32-m32c.c:553 elf32-m32r.c:3106 elf32-m68hc1x.c:1138
+#: elf32-mep.c:535 elf32-microblaze.c:1231 elf32-moxie.c:282
+#: elf32-msp430.c:486 elf32-mt.c:395 elf32-openrisc.c:404 elf32-score.c:2729
+#: elf32-score7.c:2537 elf32-spu.c:5044 elf32-tilepro.c:3214 elf32-v850.c:2143
+#: elf32-xstormy16.c:935 elf64-mmix.c:1590 elfxx-tilegx.c:3577
 msgid "internal error: out of range error"
 msgstr "internal error: diluar jangkauan error"
 
-#: elf-m10200.c:460 elf-m10300.c:1579 elf32-avr.c:1255 elf32-bfin.c:3204
-#: elf32-cr16.c:1521 elf32-cr16c.c:794 elf32-cris.c:2093 elf32-crx.c:937
-#: elf32-d10v.c:520 elf32-fr30.c:620 elf32-frv.c:4118 elf32-h8300.c:520
-#: elf32-i860.c:1222 elf32-iq2000.c:695 elf32-lm32.c:1175 elf32-m32c.c:564
-#: elf32-m32r.c:3106 elf32-m68hc1x.c:1140 elf32-mep.c:545
-#: elf32-microblaze.c:1230 elf32-moxie.c:295 elf32-msp430.c:497
-#: elf32-openrisc.c:415 elf32-score.c:2756 elf32-score7.c:2595
-#: elf32-spu.c:5049 elf32-v850.c:1705 elf32-xstormy16.c:952 elf64-mmix.c:1537
-#: elfxx-mips.c:9103
+#: elf-m10200.c:454 elf-m10300.c:1567 elf32-avr.c:1225 elf32-bfin.c:3217
+#: elf32-cr16.c:1486 elf32-cr16c.c:784 elf32-cris.c:2085 elf32-crx.c:926
+#: elf32-d10v.c:513 elf32-fr30.c:613 elf32-frv.c:4109 elf32-h8300.c:513
+#: elf32-i860.c:1215 elf32-iq2000.c:688 elf32-lm32.c:1172 elf32-m32c.c:557
+#: elf32-m32r.c:3110 elf32-m68hc1x.c:1142 elf32-mep.c:539
+#: elf32-microblaze.c:1235 elf32-moxie.c:286 elf32-msp430.c:490
+#: elf32-openrisc.c:408 elf32-score.c:2733 elf32-score7.c:2541
+#: elf32-spu.c:5048 elf32-tilepro.c:3218 elf32-v850.c:2147
+#: elf32-xstormy16.c:939 elf64-mmix.c:1594 elfxx-mips.c:9465
+#: elfxx-tilegx.c:3581
 msgid "internal error: unsupported relocation error"
 msgstr "internal error: relokasi tidak didukung error"
 
-#: elf-m10200.c:464 elf32-cr16.c:1525 elf32-cr16c.c:798 elf32-crx.c:941
-#: elf32-d10v.c:524 elf32-h8300.c:524 elf32-lm32.c:1179 elf32-m32r.c:3110
-#: elf32-m68hc1x.c:1144 elf32-microblaze.c:1234 elf32-score.c:2760
-#: elf32-score7.c:2599 elf32-spu.c:5053
+#: elf-m10200.c:458 elf32-cr16.c:1490 elf32-cr16c.c:788 elf32-crx.c:930
+#: elf32-d10v.c:517 elf32-h8300.c:517 elf32-lm32.c:1176 elf32-m32r.c:3114
+#: elf32-m68hc1x.c:1146 elf32-microblaze.c:1239 elf32-score.c:2737
+#: elf32-score7.c:2545 elf32-spu.c:5052
 msgid "internal error: dangerous error"
 msgstr "internal error error berbahaya"
 
-#: elf-m10200.c:468 elf-m10300.c:1592 elf32-avr.c:1263 elf32-bfin.c:3212
-#: elf32-cr16.c:1529 elf32-cr16c.c:802 elf32-cris.c:2101 elf32-crx.c:945
-#: elf32-d10v.c:528 elf32-fr30.c:628 elf32-frv.c:4126 elf32-h8300.c:528
-#: elf32-i860.c:1230 elf32-ip2k.c:1514 elf32-iq2000.c:703 elf32-lm32.c:1183
-#: elf32-m32c.c:572 elf32-m32r.c:3114 elf32-m68hc1x.c:1148 elf32-mep.c:553
-#: elf32-microblaze.c:1238 elf32-moxie.c:303 elf32-msp430.c:505 elf32-mt.c:410
-#: elf32-openrisc.c:423 elf32-score.c:2769 elf32-score7.c:2603
-#: elf32-spu.c:5057 elf32-v850.c:1725 elf32-xstormy16.c:960 elf64-mmix.c:1545
+#: elf-m10200.c:462 elf-m10300.c:1580 elf32-avr.c:1233 elf32-bfin.c:3225
+#: elf32-cr16.c:1494 elf32-cr16c.c:792 elf32-cris.c:2093 elf32-crx.c:934
+#: elf32-d10v.c:521 elf32-epiphany.c:571 elf32-fr30.c:621 elf32-frv.c:4117
+#: elf32-h8300.c:521 elf32-i860.c:1223 elf32-ip2k.c:1483 elf32-iq2000.c:696
+#: elf32-lm32.c:1180 elf32-m32c.c:565 elf32-m32r.c:3118 elf32-m68hc1x.c:1150
+#: elf32-mep.c:547 elf32-microblaze.c:1243 elf32-moxie.c:294
+#: elf32-msp430.c:498 elf32-mt.c:403 elf32-openrisc.c:416 elf32-score.c:2746
+#: elf32-score7.c:2549 elf32-spu.c:5056 elf32-tilepro.c:3226 elf32-v850.c:2167
+#: elf32-xstormy16.c:947 elf64-mmix.c:1602 elfxx-tilegx.c:3589
 msgid "internal error: unknown error"
 msgstr "internal error: error tidak diketahui"
 
-#: elf-m10300.c:1512 elf32-arm.c:8963 elf32-i386.c:3984 elf32-m32r.c:2588
-#: elf32-m68k.c:4099 elf32-ppc.c:7906 elf32-s390.c:3015 elf32-sh.c:3429
-#: elf32-xtensa.c:3027 elf64-ppc.c:12063 elf64-s390.c:2974 elf64-sh64.c:1648
-#: elf64-x86-64.c:3657 elfxx-sparc.c:3317
+#: elf-m10300.c:1507 elf32-arm.c:10419 elf32-i386.c:4264 elf32-m32r.c:2599
+#: elf32-m68k.c:4156 elf32-s390.c:3003 elf32-sh.c:4218 elf32-tilepro.c:3117
+#: elf32-xtensa.c:3066 elf64-s390.c:2978 elf64-sh64.c:1640 elf64-x86-64.c:4110
+#: elfxx-sparc.c:3835 elfxx-tilegx.c:3500
 msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"
 msgstr "%B(%A+0x%lx): tidak teresolf %s relokasi terhadap simbol `%s'"
 
-#: elf-m10300.c:1584
+#: elf-m10300.c:1572
 msgid "error: inappropriate relocation type for shared library (did you forget -fpic?)"
 msgstr "error: tipe relokasi tidak sesuai untuk shared library (apakah anda lupa -fpic?)"
 
-#: elf-m10300.c:1587
+#: elf-m10300.c:1575
 msgid "internal error: suspicious relocation type used in shared library"
 msgstr "internal erro: suspicious tipe relokasi digunakan dalam shared library"
 
-#: elf-m10300.c:4385 elf32-arm.c:11346 elf32-cr16.c:2519 elf32-cris.c:3030
-#: elf32-hppa.c:1891 elf32-i370.c:506 elf32-i386.c:1975 elf32-lm32.c:1873
-#: elf32-m32r.c:1921 elf32-m68k.c:3188 elf32-ppc.c:4953 elf32-s390.c:1650
-#: elf32-sh.c:2574 elf32-vax.c:1052 elf64-ppc.c:6348 elf64-s390.c:1623
-#: elf64-sh64.c:3396 elf64-x86-64.c:1821 elfxx-sparc.c:1802
+#: elf-m10300.c:4372 elf32-arm.c:12800 elf32-cr16.c:2451 elf32-cris.c:3057
+#: elf32-hppa.c:1894 elf32-i370.c:503 elf32-i386.c:2182 elf32-lm32.c:1868
+#: elf32-m32r.c:1927 elf32-m68k.c:3253 elf32-s390.c:1652 elf32-sh.c:2931
+#: elf32-tic6x.c:2162 elf32-tilepro.c:1940 elf32-vax.c:1041 elf64-s390.c:1635
+#: elf64-sh64.c:3381 elf64-x86-64.c:2176 elfxx-sparc.c:2119
+#: elfxx-tilegx.c:2261
 #, c-format
 msgid "dynamic variable `%s' is zero size"
 msgstr "variabel dinamik `%s' memiliki ukuran nol"
 
-#: elf.c:329
+#: elf.c:334
 msgid "%B: invalid string offset %u >= %lu for section `%s'"
 msgstr "%B: string ofset tidak valid %u >= %lu untuk bagian `%s'"
 
-#: elf.c:439
+#: elf.c:446
 msgid "%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
 msgstr "%B nomor simbol %lu referensi tidak ada SHT_SYMTAB_SHNDX bagian"
 
-#: elf.c:595
+#: elf.c:602
 msgid "%B: Corrupt size field in group section header: 0x%lx"
 msgstr "%B: Ukuran bagian korup dalam grup bagian kepala: 0x%lx"
 
-#: elf.c:631
+#: elf.c:638
 msgid "%B: invalid SHT_GROUP entry"
 msgstr "%B: masukan SHT_GROUP tidak valid"
 
-#: elf.c:701
+#: elf.c:708
 msgid "%B: no group info for section %A"
 msgstr "%B: tidak ada informasi grup untuk bagian %A"
 
-#: elf.c:730 elf.c:2960 elflink.c:9912
+#: elf.c:737 elf.c:3121 elflink.c:10135
 msgid "%B: warning: sh_link not set for section `%A'"
 msgstr "%B: peringatan: sh_link tidak diset untuk bagian `%A'"
 
-#: elf.c:749
+#: elf.c:756
 msgid "%B: sh_link [%d] in section `%A' is incorrect"
 msgstr "%B: sh_link [%ld] dalam bagian `%A' tidak benar"
 
-#: elf.c:784
+#: elf.c:791
 msgid "%B: unknown [%d] section `%s' in group [%s]"
 msgstr "%B: tidak diketahui [%d] bagian `%s' dalam grup [%s]"
 
-#: elf.c:1104
+#: elf.c:1041
+msgid "%B: unable to initialize commpress status for section %s"
+msgstr "%B: tidak dapat untuk menginisialisasi status kompresi untuk bagian %s"
+
+#: elf.c:1061
+msgid "%B: unable to initialize decommpress status for section %s"
+msgstr "%B: tidak dapat untuk menginisialisasi ekstraksi status untuk bagian %s."
+
+#: elf.c:1181
 #, c-format
 msgid ""
 "\n"
@@ -766,7 +785,7 @@ msgstr ""
 "\n"
 "Kepala Aplikasi:\n"
 
-#: elf.c:1146
+#: elf.c:1223
 #, c-format
 msgid ""
 "\n"
@@ -775,7 +794,7 @@ msgstr ""
 "\n"
 "Bagian Dinamis:\n"
 
-#: elf.c:1282
+#: elf.c:1359
 #, c-format
 msgid ""
 "\n"
@@ -784,7 +803,7 @@ msgstr ""
 "\n"
 "Definisi Versi:\n"
 
-#: elf.c:1307
+#: elf.c:1384
 #, c-format
 msgid ""
 "\n"
@@ -793,82 +812,82 @@ msgstr ""
 "\n"
 "Referensi Versi:\n"
 
-#: elf.c:1312
+#: elf.c:1389
 #, c-format
 msgid "  required from %s:\n"
 msgstr "  dibutuhkan dari %s:\n"
 
-#: elf.c:1702
+#: elf.c:1796
 msgid "%B: invalid link %lu for reloc section %s (index %u)"
 msgstr "%B: link tidak valid %lu untuk bagian relokasi %s (indek %u)"
 
-#: elf.c:1870
+#: elf.c:1966
 msgid "%B: don't know how to handle allocated, application specific section `%s' [0x%8x]"
 msgstr "%B: tidak tahu bagaimana menangani alokasi, bagian spesifik aplikasi `%s' [0x%8x]"
 
-#: elf.c:1882
+#: elf.c:1978
 msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]"
 msgstr "%B: tidak tahu bagaimana menangani bagian spesifik prosesor `%s' [0x%8x]"
 
-#: elf.c:1893
+#: elf.c:1989
 msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]"
 msgstr "%B: tidak tahu bagaimana menangani bagian spesifik OS `%s' [0x%8x]"
 
-#: elf.c:1903
+#: elf.c:1999
 msgid "%B: don't know how to handle section `%s' [0x%8x]"
 msgstr "%B: tidak tahu bagaimana menangani bagian `%s' [0x%8x]"
 
-#: elf.c:2500
+#: elf.c:2634
 #, c-format
 msgid "warning: section `%A' type changed to PROGBITS"
 msgstr "peringatan: bagian `%A' tipe berubah ke PROGBITS"
 
-#: elf.c:2917
+#: elf.c:3078
 msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'"
 msgstr "%B: sh_link dari bagian `%A' menunjuk ke bagian terbuang `%A' dari `%B'"
 
-#: elf.c:2940
+#: elf.c:3101
 msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'"
 msgstr "%B: sh_link dari bagian `%A' menunjuk ke bagian terhapus `%A' dari `%B'"
 
-#: elf.c:4311
+#: elf.c:4527
 msgid "%B: The first section in the PT_DYNAMIC segment is not the .dynamic section"
 msgstr "%B: bagian pertama dalam segmen PT_DYNAMIC tidak dalam bagian .dynamic"
 
-#: elf.c:4338
+#: elf.c:4554
 msgid "%B: Not enough room for program headers, try linking with -N"
 msgstr "%B: tidak cukup ruang untuk kepala aplikasi, coba linking dengan -N"
 
-#: elf.c:4420
-msgid "%B: section %A vma 0x%lx overlaps previous sections"
-msgstr "%B: bagian %A vma 0x%lx overlaps bagian sebelumnya"
+#: elf.c:4641
+msgid "%B: section %A lma %#lx adjusted to %#lx"
+msgstr "%B: bagian %A lma %#lx dibenarkan ke %#lx"
 
-#: elf.c:4515
+#: elf.c:4776
 msgid "%B: section `%A' can't be allocated in segment %d"
 msgstr "%B: bagian `%A' tidak dapat dialokasikan dalam segmen %d"
 
-#: elf.c:4565
+#: elf.c:4824
 msgid "%B: warning: allocated section `%s' not in segment"
 msgstr "%B: peringatan: alokasi bagian `%s' tidak dalam segmen"
 
-#: elf.c:5065
+#: elf.c:5324
 msgid "%B: symbol `%s' required but not present"
 msgstr "%B: simbol `%s' dibutuhkan tetapi tidak ada"
 
-#: elf.c:5404
+#: elf.c:5662
 msgid "%B: warning: Empty loadable segment detected, is this intentional ?\n"
 msgstr "%B: peringatan: loadable segmen kosong terdeteksi, apakah ini sengaja ?\n"
 
-#: elf.c:6370
+#: elf.c:6692
 #, c-format
 msgid "Unable to find equivalent output section for symbol '%s' from section '%s'"
 msgstr "Tidak dapat menemukan bagian keluaran ekuivalen untuk simbol '%s' dari bagian '%s'"
 
-#: elf.c:7356
+#: elf.c:7692
 msgid "%B: unsupported relocation type %s"
 msgstr "%B: tipe relokasi tidak didukung %s"
 
-#: elf32-arm.c:3149
+#: elf32-arm.c:3617
 msgid ""
 "%B(%s): warning: interworking not enabled.\n"
 "  first occurrence: %B: Thumb call to ARM"
@@ -876,7 +895,7 @@ msgstr ""
 "%B(%s): peringatan: antar-kerja tidak aktif.\n"
 "  pertemuan pertama: %B: Thumb call ke ARM"
 
-#: elf32-arm.c:3190
+#: elf32-arm.c:3664
 msgid ""
 "%B(%s): warning: interworking not enabled.\n"
 "  first occurrence: %B: ARM call to Thumb"
@@ -884,40 +903,40 @@ msgstr ""
 "%B(%s): peringatan: antar-kerja tidak diaktifkan.\n"
 "  pertemuan pertama: %B: ARM panggil ke Thumb"
 
-#: elf32-arm.c:3387 elf32-arm.c:4692
+#: elf32-arm.c:3878 elf32-arm.c:5315
 #, c-format
 msgid "%s: cannot create stub entry %s"
 msgstr "%s: tidak dapat membuat masukan stub %s"
 
-#: elf32-arm.c:4804
+#: elf32-arm.c:5431
 #, c-format
 msgid "unable to find THUMB glue '%s' for '%s'"
 msgstr "tidak dapat menemukan THUMB lem '%s' untuk '%s'"
 
-#: elf32-arm.c:4838
+#: elf32-arm.c:5467
 #, c-format
 msgid "unable to find ARM glue '%s' for '%s'"
 msgstr "tidak dapat menemukan ARM lem '%s' untuk '%s'"
 
-#: elf32-arm.c:5365
+#: elf32-arm.c:6005
 msgid "%B: BE8 images only valid in big-endian mode."
 msgstr "%B: hanya images BE8 valid dalam mode big-endian."
 
 #. Give a warning, but do as the user requests anyway.
-#: elf32-arm.c:5590
+#: elf32-arm.c:6235
 msgid "%B: warning: selected VFP11 erratum workaround is not necessary for target architecture"
 msgstr "%B: peringatan: memilih VFP11 erratum penyelesaian adalah tidak diperlukan untuk arsitektur target"
 
-#: elf32-arm.c:6130 elf32-arm.c:6150
+#: elf32-arm.c:6779 elf32-arm.c:6799
 msgid "%B: unable to find VFP11 veneer `%s'"
 msgstr "%B: tidak dapat menemukan VFP11 veneer `%s'"
 
-#: elf32-arm.c:6196
+#: elf32-arm.c:6848
 #, c-format
 msgid "Invalid TARGET2 relocation type '%s'."
 msgstr "Tipe relokasi '%s' TARGET2 tidak valid."
 
-#: elf32-arm.c:6281
+#: elf32-arm.c:6933
 msgid ""
 "%B(%s): warning: interworking not enabled.\n"
 "  first occurrence: %B: thumb call to arm"
@@ -925,359 +944,401 @@ msgstr ""
 "%B(%s): peringatan: antar-kerja tidak aktif.\n"
 "  pertemuan pertama: %B: thumb call ke arm"
 
-#: elf32-arm.c:7003
+#: elf32-arm.c:7717
+msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' in TLS trampoline"
+msgstr "%B(%A+0x%lx):tidak terduga instruksi Thumb '0x%x' dalam TLS trampoline"
+
+#: elf32-arm.c:7756
+msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' in TLS trampoline"
+msgstr "%B(%A+0x%lx):tidak terduga instruksi ARM '0x%x' dalam TLS trampoline"
+
+#: elf32-arm.c:8209
 msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'."
 msgstr "\\%B: Peringatan: Arm BLK instruksi target Arm fungsi '%s'."
 
-#: elf32-arm.c:7405
+#: elf32-arm.c:8622
 msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'."
 msgstr "%B: Peringatan: Thumb BLX instruksi target thumb fungsi '%s'."
 
-#: elf32-arm.c:8085
+#: elf32-arm.c:9460
+msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC"
+msgstr "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC"
+
+#: elf32-arm.c:9483
+msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC"
+msgstr "%B(%A+0x%lx):unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC"
+
+#: elf32-arm.c:9512
 msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object"
 msgstr "%B(%A+0x%lx): R_ARM_TLS_LE32 relokasi tidak diperbolehkan dalam objek terbagi"
 
-#: elf32-arm.c:8300
+#: elf32-arm.c:9727
 msgid "%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations"
 msgstr "%B(%A+0x%lx): Hanya ADD atau SUB instruksi yang diperbolehkan untuk grup ALU relokasi"
 
-#: elf32-arm.c:8340 elf32-arm.c:8427 elf32-arm.c:8510 elf32-arm.c:8595
+#: elf32-arm.c:9767 elf32-arm.c:9854 elf32-arm.c:9937 elf32-arm.c:10022
 msgid "%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"
 msgstr "%B(%A+0x%lx): Overflow ketika membagi 0x%lx untuk relokasi grup %s"
 
-#: elf32-arm.c:8821 elf32-sh.c:3325 elf64-sh64.c:1556
+#: elf32-arm.c:10261 elf32-sh.c:4103 elf64-sh64.c:1544
 msgid "%B(%A+0x%lx): %s relocation against SEC_MERGE section"
 msgstr "%B(%A+0x%lx): %s relokasi terhadap bagian SEC_MERGE"
 
-#: elf32-arm.c:8939 elf32-m68k.c:4134 elf32-xtensa.c:2765 elf64-ppc.c:10743
+#: elf32-arm.c:10372 elf32-m68k.c:4191 elf32-xtensa.c:2802
 msgid "%B(%A+0x%lx): %s used with TLS symbol %s"
 msgstr "%B(%A+0x%lx): %s digunakan dengan simbol TLS %s"
 
-#: elf32-arm.c:8940 elf32-m68k.c:4135 elf32-xtensa.c:2766 elf64-ppc.c:10744
+#: elf32-arm.c:10373 elf32-m68k.c:4192 elf32-xtensa.c:2803
 msgid "%B(%A+0x%lx): %s used with non-TLS symbol %s"
 msgstr "%B(%A+0x%lx): %s digunakan dengan simbol bukan-TLS %s"
 
-#: elf32-arm.c:8997
+#: elf32-arm.c:10453 elf32-tic6x.c:2753
 msgid "out of range"
 msgstr "diluar jangkauan"
 
-#: elf32-arm.c:9001
+#: elf32-arm.c:10457 elf32-tic6x.c:2757
 msgid "unsupported relocation"
 msgstr "relokasi tidak didukung"
 
-#: elf32-arm.c:9009
+#: elf32-arm.c:10465 elf32-tic6x.c:2765
 msgid "unknown error"
 msgstr "error tidak diketahui"
 
-#: elf32-arm.c:9409
+#: elf32-arm.c:10890
 msgid "Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it"
 msgstr "Peringatan: Menghapus tanda antar-kerja dari %B karena bukan kode antar-kerja dalam %B telah dihubungkan dengan itu"
 
-#: elf32-arm.c:9652
+#: elf32-arm.c:10984
+msgid "%B: Unknown mandatory EABI object attribute %d"
+msgstr "%B: atribut objek wajib EABI tidak diketahui %d"
+
+#: elf32-arm.c:10992
+msgid "Warning: %B: Unknown EABI object attribute %d"
+msgstr "Peringatan: %B: atribut objek EABI tidak diketahui %d"
+
+#: elf32-arm.c:11173
 msgid "error: %B: Unknown CPU architecture"
 msgstr "error: %B: Arsitektur CPU tidak diketahui"
 
-#: elf32-arm.c:9690
+#: elf32-arm.c:11211
 msgid "error: %B: Conflicting CPU architectures %d/%d"
 msgstr "error: %B: Profil arsitektur konflik %c/%c"
 
-#: elf32-arm.c:9747
+#: elf32-arm.c:11260
+msgid "Error: %B has both the current and legacy Tag_MPextension_use attributes"
+msgstr "Error: %B has both the current and legacy Tag_MPextension_use attributes"
+
+#: elf32-arm.c:11285
 msgid "error: %B uses VFP register arguments, %B does not"
 msgstr "error: %B menggunakan reguster argumen VFP, %B tidak"
 
-#: elf32-arm.c:9897
+#: elf32-arm.c:11430
+msgid "error: %B: unable to merge virtualization attributes with %B"
+msgstr "error: %B: unable to merge virtualization attributes with %B"
+
+#: elf32-arm.c:11456
 msgid "error: %B: Conflicting architecture profiles %c/%c"
 msgstr "error: %B: Profil arsitektur konflik %c/%c"
 
-#: elf32-arm.c:9921
+#: elf32-arm.c:11557
 msgid "Warning: %B: Conflicting platform configuration"
 msgstr "Peringatan: %B: Konflik konfigurasi platform"
 
-#: elf32-arm.c:9930
+#: elf32-arm.c:11566
 msgid "error: %B: Conflicting use of R9"
 msgstr "error: %B: Konflik penggunaan R9"
 
-#: elf32-arm.c:9942
+#: elf32-arm.c:11578
 msgid "error: %B: SB relative addressing conflicts with use of R9"
 msgstr "error: %B: SB pengalamatan relatif konflik dengan penggunaan dari R9"
 
-#: elf32-arm.c:9955
+#: elf32-arm.c:11591
 msgid "warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail"
 msgstr "peringatan: %B menggunakan %u-byte wchar_t tapi keluaran menggunakan %u-byte wchar_t; menggunakan nilai wchar_t melewati objek mungkin gagal"
 
-#: elf32-arm.c:9986
+#: elf32-arm.c:11622
 msgid "warning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may fail"
 msgstr "peringatan: %B menggunakan %s enums tapi keluaran menggunakan %s enums; menggunakan nilai dari enum dari objek mungkin gagal"
 
-#: elf32-arm.c:9998
+#: elf32-arm.c:11634
 msgid "error: %B uses iWMMXt register arguments, %B does not"
 msgstr "error: %B menggunakan iWMMXt argumen register, %B tidak"
 
-#: elf32-arm.c:10020
+#: elf32-arm.c:11651
 msgid "error: fp16 format mismatch between %B and %B"
 msgstr "error: fp16 format tidak cocok diantara %B dan %B"
 
-#: elf32-arm.c:10063 elf32-arm.c:10156
-msgid "%B: Unknown mandatory EABI object attribute %d"
-msgstr "%B: atribut objek wajib EABI tidak diketahui %d"
-
-#: elf32-arm.c:10071 elf32-arm.c:10164
-msgid "Warning: %B: Unknown EABI object attribute %d"
-msgstr "Peringatan: %B: atribut objek EABI tidak diketahui %d"
-
-#: elf32-arm.c:10224
-msgid "error: %B is already in final BE8 format"
-msgstr "error: %B telah dalam format akhir BE8"
-
-#: elf32-arm.c:10300
-msgid "error: Source object %B has EABI version %d, but target %B has EABI version %d"
-msgstr "error: Sumber objek %B memiliki versi EABI %d, tetapi target %B memiliki versi EABI %d"
-
-#: elf32-arm.c:10316
-msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d"
-msgstr "error: %B dikompile untuk APCS-%d, dimana target %B menggunakan APCS-%d"
-
-#: elf32-arm.c:10341
-msgid "error: %B uses VFP instructions, whereas %B does not"
-msgstr "error: %B menggunakan VFP instruksi, dimana %B tidak"
-
-#: elf32-arm.c:10345
-msgid "error: %B uses FPA instructions, whereas %B does not"
-msgstr "error: %B menggunakan FPA instruksi, dimana %B tidak"
-
-#: elf32-arm.c:10355
-msgid "error: %B uses Maverick instructions, whereas %B does not"
-msgstr "error: %B menggunakan Maverick instruksi, dimana %B tidak"
-
-#: elf32-arm.c:10359
-msgid "error: %B does not use Maverick instructions, whereas %B does"
-msgstr "error: %B tidak menggunakan Maveric instruksi, dimana %B menggunakan"
-
-#: elf32-arm.c:10378
-msgid "error: %B uses software FP, whereas %B uses hardware FP"
-msgstr "error: %B menggunakan software FP, dimana %B menggunakan hardware FP"
-
-#: elf32-arm.c:10382
-msgid "error: %B uses hardware FP, whereas %B uses software FP"
-msgstr "error: %B menggunakan hardware FP, dimana %B menggunakan software FP"
+#: elf32-arm.c:11675
+msgid "DIV usage mismatch between %B and %B"
+msgstr "DIV penggunaan tidak cocok diantara %B dan %B"
+
+#: elf32-arm.c:11694
+msgid "%B has has both the current and legacy Tag_MPextension_use attributes"
+msgstr "%B has has both the current and legacy Tag_MPextension_use attributes"
 
 #. Ignore init flag - it may not be set, despite the flags field
 #. containing valid data.
 #. Ignore init flag - it may not be set, despite the flags field containing valid data.
-#: elf32-arm.c:10429 elf32-bfin.c:5082 elf32-cris.c:4110 elf32-m68hc1x.c:1280
-#: elf32-m68k.c:1169 elf32-score.c:4039 elf32-score7.c:3876 elf32-vax.c:540
-#: elfxx-mips.c:12755
+#: elf32-arm.c:11782 elf32-bfin.c:5079 elf32-cris.c:4169 elf32-m68hc1x.c:1282
+#: elf32-m68k.c:1236 elf32-score.c:3994 elf32-score7.c:3800 elf32-vax.c:529
+#: elfxx-mips.c:14103
 #, c-format
 msgid "private flags = %lx:"
 msgstr "tanda private = %lx:"
 
-#: elf32-arm.c:10438
+#: elf32-arm.c:11791
 #, c-format
 msgid " [interworking enabled]"
 msgstr " [antar-kerja aktif]"
 
-#: elf32-arm.c:10446
+#: elf32-arm.c:11799
 #, c-format
 msgid " [VFP float format]"
 msgstr " [VFP float format]"
 
-#: elf32-arm.c:10448
+#: elf32-arm.c:11801
 #, c-format
 msgid " [Maverick float format]"
 msgstr " [Maverick float format]"
 
-#: elf32-arm.c:10450
+#: elf32-arm.c:11803
 #, c-format
 msgid " [FPA float format]"
 msgstr " [FPA float format]"
 
-#: elf32-arm.c:10459
+#: elf32-arm.c:11812
 #, c-format
 msgid " [new ABI]"
 msgstr " [ABI baru]"
 
-#: elf32-arm.c:10462
+#: elf32-arm.c:11815
 #, c-format
 msgid " [old ABI]"
 msgstr " [ABI lama]"
 
-#: elf32-arm.c:10465
+#: elf32-arm.c:11818
 #, c-format
 msgid " [software FP]"
 msgstr " [software FP]"
 
-#: elf32-arm.c:10474
+#: elf32-arm.c:11827
 #, c-format
 msgid " [Version1 EABI]"
 msgstr " [EABI Versi 1]"
 
-#: elf32-arm.c:10477 elf32-arm.c:10488
+#: elf32-arm.c:11830 elf32-arm.c:11841
 #, c-format
 msgid " [sorted symbol table]"
 msgstr " [simbol tabel terurut]"
 
-#: elf32-arm.c:10479 elf32-arm.c:10490
+#: elf32-arm.c:11832 elf32-arm.c:11843
 #, c-format
 msgid " [unsorted symbol table]"
 msgstr " [simbol tabel tidak terurut]"
 
-#: elf32-arm.c:10485
+#: elf32-arm.c:11838
 #, c-format
 msgid " [Version2 EABI]"
 msgstr " [EABI Versi 2]"
 
-#: elf32-arm.c:10493
+#: elf32-arm.c:11846
 #, c-format
 msgid " [dynamic symbols use segment index]"
 msgstr " [simbol dinamis menggunakan segmen indek]"
 
-#: elf32-arm.c:10496
+#: elf32-arm.c:11849
 #, c-format
 msgid " [mapping symbols precede others]"
 msgstr " [simbol map mendahului yang lain]"
 
-#: elf32-arm.c:10503
+#: elf32-arm.c:11856
 #, c-format
 msgid " [Version3 EABI]"
 msgstr " [EABI Versi 3]"
 
-#: elf32-arm.c:10507
+#: elf32-arm.c:11860
 #, c-format
 msgid " [Version4 EABI]"
 msgstr " [EABI Versi 4]"
 
-#: elf32-arm.c:10511
+#: elf32-arm.c:11864
 #, c-format
 msgid " [Version5 EABI]"
 msgstr " [EABI Versi 5]"
 
-#: elf32-arm.c:10514
+#: elf32-arm.c:11867
 #, c-format
 msgid " [BE8]"
 msgstr " [BE8]"
 
-#: elf32-arm.c:10517
+#: elf32-arm.c:11870
 #, c-format
 msgid " [LE8]"
 msgstr " [LE8]"
 
-#: elf32-arm.c:10523
+#: elf32-arm.c:11876
 #, c-format
 msgid " <EABI version unrecognised>"
 msgstr " <EABI versi tidak dikenal>"
 
-#: elf32-arm.c:10530
+#: elf32-arm.c:11883
 #, c-format
 msgid " [relocatable executable]"
 msgstr " [relocatable executable]"
 
-#: elf32-arm.c:10533
+#: elf32-arm.c:11886
 #, c-format
 msgid " [has entry point]"
 msgstr " [memiliki titik masuk]"
 
-#: elf32-arm.c:10538
+#: elf32-arm.c:11891
 #, c-format
 msgid "<Unrecognised flag bits set>"
 msgstr "<Tanda bit tidak dikenal terset>"
 
-#: elf32-arm.c:10783 elf32-i386.c:1300 elf32-s390.c:998 elf32-xtensa.c:1000
-#: elf64-s390.c:952 elf64-x86-64.c:1082 elfxx-sparc.c:1121
+#: elf32-arm.c:12189 elf32-i386.c:1461 elf32-s390.c:1000 elf32-tic6x.c:2829
+#: elf32-tilepro.c:1336 elf32-xtensa.c:1009 elf64-s390.c:960
+#: elf64-x86-64.c:1364 elfxx-sparc.c:1371 elfxx-tilegx.c:1586
 msgid "%B: bad symbol index: %d"
 msgstr "%B: memiliki indek simbol: %d"
 
-#: elf32-arm.c:10904 elf64-x86-64.c:1242 elf64-x86-64.c:1411 elfxx-mips.c:7870
+#: elf32-arm.c:12337 elf64-x86-64.c:1561 elf64-x86-64.c:1732 elfxx-mips.c:8223
 msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"
 msgstr "%B: relokasi %s terhadap `%s' tidak dapat digunkan ketika membuat sebuah objek terbagi; rekompile dengan -fPIC"
 
-#: elf32-arm.c:11893
+#: elf32-arm.c:13460
 #, c-format
 msgid "Errors encountered processing file %s"
 msgstr "Errors ditemui dalam pemrosesan berkas %s"
 
-#: elf32-arm.c:13339
+#: elf32-arm.c:14837
 msgid "%B: error: Cortex-A8 erratum stub is allocated in unsafe location"
 msgstr "%B: error: Cortex-A8 erratum stub dialokasikan dalam lokasi yang tidak aman"
 
 #. There's not much we can do apart from complain if this
 #. happens.
-#: elf32-arm.c:13366
+#: elf32-arm.c:14864
 msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)"
 msgstr "%B: error: Cortex-A8 erratum stub diluar dari jangkauan (berkas masukan terlalu besar)"
 
-#: elf32-arm.c:13457 elf32-arm.c:13479
+#: elf32-arm.c:14958 elf32-arm.c:14980
 msgid "%B: error: VFP11 veneer out of range"
 msgstr "%B: error: VFP11 veneer diluar jangkauan"
 
-#: elf32-avr.c:1259 elf32-bfin.c:3208 elf32-cris.c:2097 elf32-fr30.c:624
-#: elf32-frv.c:4122 elf32-i860.c:1226 elf32-ip2k.c:1510 elf32-iq2000.c:699
-#: elf32-m32c.c:568 elf32-mep.c:549 elf32-moxie.c:299 elf32-msp430.c:501
-#: elf32-mt.c:406 elf32-openrisc.c:419 elf32-v850.c:1709 elf32-xstormy16.c:956
-#: elf64-mmix.c:1541
+#: elf32-arm.c:15518
+msgid "error: %B is already in final BE8 format"
+msgstr "error: %B telah dalam format akhir BE8"
+
+#: elf32-arm.c:15594
+msgid "error: Source object %B has EABI version %d, but target %B has EABI version %d"
+msgstr "error: Sumber objek %B memiliki versi EABI %d, tetapi target %B memiliki versi EABI %d"
+
+#: elf32-arm.c:15610
+msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d"
+msgstr "error: %B dikompile untuk APCS-%d, dimana target %B menggunakan APCS-%d"
+
+#: elf32-arm.c:15635
+msgid "error: %B uses VFP instructions, whereas %B does not"
+msgstr "error: %B menggunakan VFP instruksi, dimana %B tidak"
+
+#: elf32-arm.c:15639
+msgid "error: %B uses FPA instructions, whereas %B does not"
+msgstr "error: %B menggunakan FPA instruksi, dimana %B tidak"
+
+#: elf32-arm.c:15649
+msgid "error: %B uses Maverick instructions, whereas %B does not"
+msgstr "error: %B menggunakan Maverick instruksi, dimana %B tidak"
+
+#: elf32-arm.c:15653
+msgid "error: %B does not use Maverick instructions, whereas %B does"
+msgstr "error: %B tidak menggunakan Maveric instruksi, dimana %B menggunakan"
+
+#: elf32-arm.c:15672
+msgid "error: %B uses software FP, whereas %B uses hardware FP"
+msgstr "error: %B menggunakan software FP, dimana %B menggunakan hardware FP"
+
+#: elf32-arm.c:15676
+msgid "error: %B uses hardware FP, whereas %B uses software FP"
+msgstr "error: %B menggunakan hardware FP, dimana %B menggunakan software FP"
+
+#: elf32-avr.c:1229 elf32-bfin.c:3221 elf32-cris.c:2089 elf32-epiphany.c:567
+#: elf32-fr30.c:617 elf32-frv.c:4113 elf32-i860.c:1219 elf32-ip2k.c:1479
+#: elf32-iq2000.c:692 elf32-m32c.c:561 elf32-mep.c:543 elf32-moxie.c:290
+#: elf32-msp430.c:494 elf32-mt.c:399 elf32-openrisc.c:412 elf32-tilepro.c:3222
+#: elf32-v850.c:2151 elf32-xstormy16.c:943 elf64-mmix.c:1598
+#: elfxx-tilegx.c:3585
 msgid "internal error: dangerous relocation"
 msgstr "internal error: relokasi berbahaya"
 
-#: elf32-avr.c:2409 elf32-hppa.c:605 elf32-m68hc1x.c:165 elf64-ppc.c:4141
+#: elf32-avr.c:2415 elf32-hppa.c:598 elf32-m68hc1x.c:166
 msgid "%B: cannot create stub entry %s"
 msgstr "%B: tidak dapat membuat masukan stub %s"
 
-#: elf32-bfin.c:1581
+#: elf32-bfin.c:107 elf32-bfin.c:363
+msgid "relocation should be even number"
+msgstr "relocation should be even number"
+
+#: elf32-bfin.c:1593
 msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'"
 msgstr "%B(%A+0x%lx): relokasi tidak teresolf terhadap simbol `%s'"
 
-#: elf32-bfin.c:1614 elf32-i386.c:4026 elf32-m68k.c:4176 elf32-s390.c:3067
-#: elf64-s390.c:3026 elf64-x86-64.c:3697
+#: elf32-bfin.c:1626 elf32-i386.c:4307 elf32-m68k.c:4233 elf32-s390.c:3055
+#: elf64-s390.c:3030 elf64-x86-64.c:4151
 msgid "%B(%A+0x%lx): reloc against `%s': error %d"
 msgstr "%B(%A+0x%lx): relokasi terhadap `%s': error %d"
 
-#: elf32-bfin.c:2714
+#: elf32-bfin.c:2725
 msgid "%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend"
 msgstr "%B: relokasi di `%A+0x%x' simbol referensi `%s' dengan bukan nol ditambahkan"
 
-#: elf32-bfin.c:2728 elf32-frv.c:2904
+#: elf32-bfin.c:2741
 msgid "relocation references symbol not defined in the module"
 msgstr "relokasi referensi simbol tidak didefinisikan dalam modul"
 
-#: elf32-bfin.c:2825
+#: elf32-bfin.c:2838
 msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend"
 msgstr "R_BFIN_FUNCDESC referensi simbol dinamis dengan bukan nol ditambahkan"
 
-#: elf32-bfin.c:2866 elf32-bfin.c:2989 elf32-frv.c:3641 elf32-frv.c:3762
+#: elf32-bfin.c:2879 elf32-bfin.c:3002
 msgid "cannot emit fixups in read-only section"
 msgstr "tidak dapat mengeluarkan fixups dalam bagian baca-saja"
 
-#: elf32-bfin.c:2897 elf32-bfin.c:3027 elf32-frv.c:3672 elf32-frv.c:3806
-#: elf32-lm32.c:1104
+#: elf32-bfin.c:2910 elf32-bfin.c:3040 elf32-lm32.c:1103 elf32-sh.c:5016
 msgid "cannot emit dynamic relocations in read-only section"
 msgstr "tidak dapat mengeluarkan relokasi dinamis dalam bagian baca-saja"
 
-#: elf32-bfin.c:2947
+#: elf32-bfin.c:2960
 msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend"
 msgstr "R_BFIN_FUNCDESC_VALUE referensi simbol dinamis dengan bukan nol ditambahkan"
 
-#: elf32-bfin.c:3112
+#: elf32-bfin.c:3125
 msgid "relocations between different segments are not supported"
 msgstr "relokasi diantara segmen berbeda tidak didukung"
 
-#: elf32-bfin.c:3113
+#: elf32-bfin.c:3126
 msgid "warning: relocation references a different segment"
 msgstr "peringatan: relokasi referensi sebuah segmen berbeda"
 
-#: elf32-bfin.c:4974 elf32-frv.c:6408
+#: elf32-bfin.c:4971
 msgid "%B: unsupported relocation type %i"
 msgstr "%B: tipe relokasi %i tidak didukung"
 
-#: elf32-bfin.c:5127 elf32-frv.c:6816
+#: elf32-bfin.c:5125 elf32-frv.c:6808
 #, c-format
 msgid "%s: cannot link non-fdpic object file into fdpic executable"
 msgstr "%s: tidak dapat menghubungkan berkas objek bukan-fdpic kedalam aplikasi fdpic"
 
-#: elf32-bfin.c:5131 elf32-frv.c:6820
+#: elf32-bfin.c:5129 elf32-frv.c:6812
 #, c-format
 msgid "%s: cannot link fdpic object file into non-fdpic executable"
 msgstr "%s: tidak dapat menghubungkan berkas objek fdpic kedalam aplikasi bukan-fdpic"
 
-#: elf32-cris.c:1169
+#: elf32-bfin.c:5283
+#, c-format
+msgid "*** check this relocation %s"
+msgstr "*** periksa relokasi ini %s"
+
+#: elf32-cris.c:1176
 msgid "%B, section %A: unresolvable relocation %s against symbol `%s'"
 msgstr "%B, bagian %A: relokasi tidak teresolf %s terhadap simbol `%s'"
 
@@ -1289,16 +1350,16 @@ msgstr "%B, bagian %A: Bukan PLT atau GO
 msgid "%B, section %A: No PLT for relocation %s against symbol `%s'"
 msgstr "%B, bagian %A: Bukan PLT untuk relokasi %s terhadap simbol `%s'"
 
-#: elf32-cris.c:1246 elf32-cris.c:1379 elf32-cris.c:1641 elf32-cris.c:1730
-#: elf32-cris.c:1883
+#: elf32-cris.c:1246 elf32-cris.c:1379 elf32-cris.c:1639 elf32-cris.c:1722
+#: elf32-cris.c:1875 elf32-tic6x.c:2662
 msgid "[whose name is lost]"
 msgstr "[yang namanya hilang]"
 
-#: elf32-cris.c:1365
+#: elf32-cris.c:1365 elf32-tic6x.c:2647
 msgid "%B, section %A: relocation %s with non-zero addend %d against local symbol"
 msgstr "%B, bagian %A: relokasi %s dengan bukan-nol ditambahkan %d terhadap simbol lokal"
 
-#: elf32-cris.c:1373 elf32-cris.c:1724 elf32-cris.c:1877
+#: elf32-cris.c:1373 elf32-cris.c:1716 elf32-cris.c:1869 elf32-tic6x.c:2655
 msgid "%B, section %A: relocation %s with non-zero addend %d against symbol `%s'"
 msgstr "%B, bagian %A: relokasi %s dengan bukan-nol ditambakan %d terhadap simbol `%s'"
 
@@ -1311,23 +1372,23 @@ msgid "%B, section %A: relocation %s wit
 msgstr "%B, bagian %A: relokasi %s dengan tidak GOT dibuat"
 
 #. We shouldn't get here for GCC-emitted code.
-#: elf32-cris.c:1632
+#: elf32-cris.c:1630
 msgid "%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?"
 msgstr "%B, bagian %A: relokasi %s memiliki sebuah referensi tidak terdefinisi ke `%s', mungkin sebuah kesalahan deklarasi?"
 
-#: elf32-cris.c:2010
+#: elf32-cris.c:2002
 msgid "%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?"
 msgstr "%B, bagian %A: relokasi %s tidak diperbolehkan untuk simbol global: `%s' yang didefinisikan diluar aplikasi, mungkin sebuah kesalahan deklarasi?"
 
-#: elf32-cris.c:2063
+#: elf32-cris.c:2055
 msgid "(too many global variables for -fpic: recompile with -fPIC)"
 msgstr "(terlalu banyak variabel global untuk -fpic: rekompilasi dengan -fPIC)"
 
-#: elf32-cris.c:2070
+#: elf32-cris.c:2062
 msgid "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)"
 msgstr "(thread-local data terlalu besar untuk -fpic atau -msmall-tls: rekompilasi dengan -fPIC atau -mno-small-tls)"
 
-#: elf32-cris.c:3204
+#: elf32-cris.c:3261
 msgid ""
 "%B, section %A:\n"
 "  v10/v32 compatible object %s must not contain a PIC relocation"
@@ -1335,7 +1396,7 @@ msgstr ""
 "%B, bagian %A:\n"
 "  v10/v32 objek kompatibel %s harus berisi sebuah relokasi PIC"
 
-#: elf32-cris.c:3309
+#: elf32-cris.c:3366
 msgid ""
 "%B, section %A:\n"
 "  relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC"
@@ -1343,7 +1404,7 @@ msgstr ""
 "%B, bagian %A:\n"
 "  relokasi %s tidak valid dalam sebuah objek terbagi; umumnya sebuah kesalahan pilihan, rekompile dengan -fPIC"
 
-#: elf32-cris.c:3523
+#: elf32-cris.c:3580
 msgid ""
 "%B, section %A:\n"
 "  relocation %s should not be used in a shared object; recompile with -fPIC"
@@ -1351,7 +1412,7 @@ msgstr ""
 "%B, bagian %A:\n"
 "  relokasi %s seharusnya digunakan dalam sebuah objek terbagi; rekompile dengan -fPIC"
 
-#: elf32-cris.c:3940
+#: elf32-cris.c:4002
 msgid ""
 "%B, section `%A', to symbol `%s':\n"
 "  relocation %s should not be used in a shared object; recompile with -fPIC"
@@ -1359,129 +1420,161 @@ msgstr ""
 "%B, bagian `%A', ke simbol `%s':\n"
 "  relokasi %s seharusnya digunakan dalam sebuah objek terbagi; rekompilasi dengan -fPIC"
 
-#: elf32-cris.c:4059
+#: elf32-cris.c:4118
 msgid "Unexpected machine number"
 msgstr "Nomor mesin tidak terduga"
 
-#: elf32-cris.c:4113
+#: elf32-cris.c:4172
 #, c-format
 msgid " [symbols have a _ prefix]"
 msgstr " [simbol memiliki sebuah awalan _]"
 
-#: elf32-cris.c:4116
+#: elf32-cris.c:4175
 #, c-format
 msgid " [v10 and v32]"
 msgstr " [v10 dan v32]"
 
-#: elf32-cris.c:4119
+#: elf32-cris.c:4178
 #, c-format
 msgid " [v32]"
 msgstr " [v32]"
 
-#: elf32-cris.c:4164
+#: elf32-cris.c:4223
 msgid "%B: uses _-prefixed symbols, but writing file with non-prefixed symbols"
 msgstr "%B: menggunakan awalan _ simbol, tetapi menulis berkas dengan simbol tanpa awalan"
 
-#: elf32-cris.c:4165
+#: elf32-cris.c:4224
 msgid "%B: uses non-prefixed symbols, but writing file with _-prefixed symbols"
 msgstr "%B: menggunakan simbol tanpa awalan, tetapi menulis berkas dengan simbol awalan _"
 
-#: elf32-cris.c:4184
+#: elf32-cris.c:4243
 msgid "%B contains CRIS v32 code, incompatible with previous objects"
 msgstr "%B berisi kode CRIS v32, tidak kompatibel dengan objek sebelumnya"
 
-#: elf32-cris.c:4186
+#: elf32-cris.c:4245
 msgid "%B contains non-CRIS-v32 code, incompatible with previous objects"
 msgstr "%B berisi kode bukan CRIS v32, tidak kompatibel dengan objek sebelumnya"
 
-#: elf32-frv.c:1507 elf32-frv.c:1656
+#: elf32-dlx.c:142
+#, c-format
+msgid "BFD Link Error: branch (PC rel16) to section (%s) not supported"
+msgstr "BFD Link Error: branch (PC rel16) to section (%s) not supported"
+
+#: elf32-dlx.c:204
+#, c-format
+msgid "BFD Link Error: jump (PC rel26) to section (%s) not supported"
+msgstr "BFD Link Error: jump (PC rel26) to section (%s) not supported"
+
+#. Only if it's not an unresolved symbol.
+#: elf32-epiphany.c:563 elf32-ip2k.c:1475
+msgid "unsupported relocation between data/insn address spaces"
+msgstr "relokasi tidak didukung diantara data/insn ruang alamat"
+
+#: elf32-frv.c:1509 elf32-frv.c:1658
 msgid "relocation requires zero addend"
 msgstr "relokasi membutuhkan penambahan nol"
 
-#: elf32-frv.c:2891
-msgid "%B(%A+0x%x): relocation to `%s+%x' may have caused the error above"
-msgstr "%B(%A+0x%x): relokasi ke `%s+%x' mungkin menyebabkan error diatas"
-
-#: elf32-frv.c:2980
-msgid "R_FRV_GETTLSOFF not applied to a call instruction"
-msgstr "R_FRV_GETTLSOFF tidak teraplikasi untuk sebuah panggilan instruksi"
+#: elf32-frv.c:2888
+msgid "%H: relocation to `%s+%v' may have caused the error above\n"
+msgstr "%H: relokasi ke `%s+%v' mungkin telah menyebabkan error diatas\n"
+
+#: elf32-frv.c:2905
+msgid "%H: relocation references symbol not defined in the module\n"
+msgstr "%H: relokasi referensi simbol tidak didefinisikan dalam modul\n"
+
+#: elf32-frv.c:2981
+msgid "%H: R_FRV_GETTLSOFF not applied to a call instruction\n"
+msgstr "%H: R_FRV_GETTLSOFF tidak teraplikasi untuk sebuah panggilan instruksi\n"
 
 #: elf32-frv.c:3022
-msgid "R_FRV_GOTTLSDESC12 not applied to an lddi instruction"
-msgstr "R_FRV_GOTTLSDESC12 tidak teraplikasi untuk sebuah instruksi lddi"
+msgid "%H: R_FRV_GOTTLSDESC12 not applied to an lddi instruction\n"
+msgstr "%H: R_FRV_GOTTLSDESC12 tidak teraplikasi untuk sebuah instruksi lddi\n"
 
 #: elf32-frv.c:3093
-msgid "R_FRV_GOTTLSDESCHI not applied to a sethi instruction"
-msgstr "R_FRV_GOTTLSDESCHI tidak teraplikasi untuk sebuah instruksi sethi"
+msgid "%H: R_FRV_GOTTLSDESCHI not applied to a sethi instruction\n"
+msgstr "%H: R_FRV_GOTTLSDESCHI tidak teraplikasi untuk sebuah instruksi sethi\n"
 
 #: elf32-frv.c:3130
-msgid "R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction"
-msgstr "R_FRV_GOTTLSDESCLO tidak teraplikasi untuk sebuah instruksi setlo atau setlos"
+msgid "%H: R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction\n"
+msgstr "%H: R_FRV_GOTTLSDESCLO tidak teraplikasi untuk sebuah instruksi setlo atau setlos\n"
 
-#: elf32-frv.c:3178
-msgid "R_FRV_TLSDESC_RELAX not applied to an ldd instruction"
-msgstr "R_FRV_TLSDESC_RELAX tidak teraplikasi untuk sebuah instruksi ldd"
-
-#: elf32-frv.c:3262
-msgid "R_FRV_GETTLSOFF_RELAX not applied to a calll instruction"
-msgstr "R_FRV_GETTLSOFF_RELAX tidak teraplikasi untuk sebuah instruksi calll"
-
-#: elf32-frv.c:3317
-msgid "R_FRV_GOTTLSOFF12 not applied to an ldi instruction"
-msgstr "R_FRV_GETTLSOFF12 tidak teraplikasi untuk sebuah instruksi ldi"
-
-#: elf32-frv.c:3347
-msgid "R_FRV_GOTTLSOFFHI not applied to a sethi instruction"
-msgstr "R_FRV_GOTTLSOFFHI tidak teraplikasi untuk sebuah instruksi sethi"
-
-#: elf32-frv.c:3376
-msgid "R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction"
-msgstr "R_FRV_GOTTLSOFFLO tidak teraplikasi untuk sebuah instruksi setlo atau setlos"
-
-#: elf32-frv.c:3407
-msgid "R_FRV_TLSOFF_RELAX not applied to an ld instruction"
-msgstr "R_FRV_TLSOFF_RELAX tidak teraplikasi untuk sebuah instruksi ld"
-
-#: elf32-frv.c:3452
-msgid "R_FRV_TLSMOFFHI not applied to a sethi instruction"
-msgstr "R_FRV_TLSMOFFHI tidak teraplikasi untuk sebuah instruksi sethi"
-
-#: elf32-frv.c:3479
-msgid "R_FRV_TLSMOFFLO not applied to a setlo or setlos instruction"
-msgstr "R_FRV_TLSMOFFLO tidak teraplikasi untuk sebuah instruksi setlo atau setlos"
-
-#: elf32-frv.c:3600
-msgid "R_FRV_FUNCDESC references dynamic symbol with nonzero addend"
-msgstr "R_FRV_FUNCDESC referensi simbol dinamis dengan penambahan bukan nol"
-
-#: elf32-frv.c:3720
-msgid "R_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addend"
-msgstr "R_FRV_FUNCDESC_VALUE referensi simbol dinamis dengan penambahan bukan nol"
-
-#: elf32-frv.c:3977 elf32-frv.c:4133
-msgid "%B(%A+0x%lx): reloc against `%s': %s"
-msgstr "%B(%A+0x%lx): relokasi terhadap `%s': %s"
-
-#: elf32-frv.c:3979 elf32-frv.c:3983
-msgid "relocation references a different segment"
-msgstr "relokasi referensi ke segmen berbeda"
+#: elf32-frv.c:3177
+msgid "%H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction\n"
+msgstr "%H: R_FRV_TLSDESC_RELAX tidak teraplikasi untuk sebuah instruksi ldd\n"
+
+#: elf32-frv.c:3261
+msgid "%H: R_FRV_GETTLSOFF_RELAX not applied to a calll instruction\n"
+msgstr "%H: R_FRV_GETTLSOFF_RELAX tidak teraplikasi untuk sebuah instruksi calll\n"
+
+#: elf32-frv.c:3315
+msgid "%H: R_FRV_GOTTLSOFF12 not applied to an ldi instruction\n"
+msgstr "%H: R_FRV_GETTLSOFF12 tidak teraplikasi untuk sebuah instruksi ldi\n"
+
+#: elf32-frv.c:3345
+msgid "%H: R_FRV_GOTTLSOFFHI not applied to a sethi instruction\n"
+msgstr "%H: R_FRV_GOTTLSOFFHI tidak teraplikasi untuk sebuah instruksi sethi\n"
+
+#: elf32-frv.c:3374
+msgid "%H: R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction\n"
+msgstr "%H: R_FRV_GOTTLSOFFLO tidak teraplikasi untuk sebuah instruksi setlo atau setlos\n"
+
+#: elf32-frv.c:3404
+msgid "%H: R_FRV_TLSOFF_RELAX not applied to an ld instruction\n"
+msgstr "%H: R_FRV_TLSOFF_RELAX tidak teraplikasi untuk sebuah instruksi ld\n"
+
+#: elf32-frv.c:3449
+msgid "%H: R_FRV_TLSMOFFHI not applied to a sethi instruction\n"
+msgstr "%H: R_FRV_TLSMOFFHI tidak teraplikasi untuk sebuah instruksi sethi\n"
+
+#: elf32-frv.c:3476
+msgid "R_FRV_TLSMOFFLO not applied to a setlo or setlos instruction\n"
+msgstr "R_FRV_TLSMOFFLO tidak teraplikasi untuk sebuah instruksi setlo atau setlos\n"
+
+#: elf32-frv.c:3597
+msgid "%H: R_FRV_FUNCDESC references dynamic symbol with nonzero addend\n"
+msgstr "%H: R_FRV_FUNCDESC referensi simbol dinamis dengan penambahan bukan nol\n"
+
+#: elf32-frv.c:3638 elf32-frv.c:3760
+msgid "%H: cannot emit fixups in read-only section\n"
+msgstr "%H: tidak dapat mengeluarkan fixups dalam bagian baca-saja\n"
+
+#: elf32-frv.c:3669 elf32-frv.c:3803
+msgid "%H: cannot emit dynamic relocations in read-only section\n"
+msgstr "%H: tidak dapat mengeluarkan relokasi dinamis dalam bagian baca-saja\n"
+
+#: elf32-frv.c:3718
+msgid "%H: R_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addend\n"
+msgstr "%H: R_FRV_FUNCDESC_VALUE referensi simbol dinamis dengan penambahan bukan nol\n"
+
+#: elf32-frv.c:3974
+msgid "%H: reloc against `%s' references a different segment\n"
+msgstr "%H: relokasi terhadap `%s' referensi ke segmen berbeda\n"
+
+#: elf32-frv.c:4124
+msgid "%H: reloc against `%s': %s\n"
+msgstr "%H: relokasi terhadap `%s': %s\n"
+
+#: elf32-frv.c:6400
+msgid "%B: unsupported relocation type %i\n"
+msgstr "%B: tipe relokasi %i tidak didukung\n"
 
-#: elf32-frv.c:6730
+#: elf32-frv.c:6722
 #, c-format
 msgid "%s: compiled with %s and linked with modules that use non-pic relocations"
 msgstr "%s: terkompile dengan %s dan terhubung dengan modul yang menggunakan relokasi bukan-pic"
 
-#: elf32-frv.c:6783 elf32-iq2000.c:852 elf32-m32c.c:814
+#: elf32-frv.c:6775 elf32-iq2000.c:845 elf32-m32c.c:807
 #, c-format
 msgid "%s: compiled with %s and linked with modules compiled with %s"
 msgstr "%s: terkompile dengan %s dan terhubung dengan modul terkompile dengan %s"
 
-#: elf32-frv.c:6795
+#: elf32-frv.c:6787
 #, c-format
 msgid "%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)"
 msgstr "%s: menggunakan bagian e_flags (0x%lx) berbeda yang tidak dikenal dari modul sebelumnya (0x%lx)"
 
-#: elf32-frv.c:6845 elf32-iq2000.c:889 elf32-m32c.c:850 elf32-mt.c:583
+#: elf32-frv.c:6837 elf32-iq2000.c:882 elf32-m32c.c:843 elf32-mt.c:576
+#: elf32-rx.c:3001
 #, c-format
 msgid "private flags = 0x%lx:"
 msgstr "private flags = 0x%lx:"
@@ -1490,113 +1583,125 @@ msgstr "private flags = 0x%lx:"
 msgid "%B: Relocations in generic ELF (EM: %d)"
 msgstr "%B: Relokasi dalam ELF standar (EM: %d)"
 
-#: elf32-hppa.c:854 elf32-hppa.c:3570
+#: elf32-hppa.c:850 elf32-hppa.c:3598
 msgid "%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections"
 msgstr "%B(%A+0x%lx): tidak dapat mencapai %s, rekompile dengan -ffunction-sections"
 
-#: elf32-hppa.c:1286
+#: elf32-hppa.c:1284
 msgid "%B: relocation %s can not be used when making a shared object; recompile with -fPIC"
 msgstr "%B: relokasi %s tidak dapat digunakan ketika membuat sebuah objek terbagi; rekompile dengan -fPIC"
 
-#: elf32-hppa.c:2780
+#: elf32-hppa.c:2791
 msgid "%B: duplicate export stub %s"
 msgstr "%B: duplikasi export stub %s"
 
-#: elf32-hppa.c:3406
+#: elf32-hppa.c:3437
 msgid "%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link"
 msgstr "%B(%A+0x%lx): %s fixup untuk insn 0x%x tidak didukung dalam sebuah sambunga tidak terbagi"
 
-#: elf32-hppa.c:4260
+#: elf32-hppa.c:4284
 msgid "%B(%A+0x%lx): cannot handle %s for %s"
 msgstr "%B(%A+0x%lx): tidak dapat menangani %s untuk %s"
 
-#: elf32-hppa.c:4567
+#: elf32-hppa.c:4603
 msgid ".got section not immediately after .plt section"
 msgstr "bagian .got tidak mengikuti bagian .plt"
 
-#: elf32-i386.c:371 elf32-ppc.c:1666 elf32-s390.c:379 elf64-ppc.c:2283
-#: elf64-s390.c:403 elf64-x86-64.c:234
+#. Unknown relocation.
+#: elf32-i386.c:373 elf32-m68k.c:384 elf32-ppc.c:1676 elf32-s390.c:379
+#: elf32-tic6x.c:2684 elf64-ppc.c:2300 elf64-s390.c:403 elf64-x86-64.c:265
 msgid "%B: invalid relocation type %d"
 msgstr "%B: tipe relokasi %d tidak valid"
 
-#: elf32-i386.c:1246 elf64-x86-64.c:1029
+#: elf32-i386.c:1404 elf64-x86-64.c:1308
 msgid "%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed"
 msgstr "%B: TLS transisi dari %s ke %s terhadap `%s' di 0x%lx dalam bagian `%A' gagal"
 
-#: elf32-i386.c:1387 elf32-i386.c:2970 elf64-x86-64.c:1171 elf64-x86-64.c:2680
+#: elf32-i386.c:1549 elf32-i386.c:3244 elf64-x86-64.c:1487 elf64-x86-64.c:3125
+#: elfxx-sparc.c:3083
 msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
 msgstr "%B: relokasi %s terhadap STT_GNU_IFUNC simbol `%s' tidak ditangani oleh %s"
 
-#: elf32-i386.c:1548 elf32-s390.c:1180 elf32-sh.c:5065 elf32-xtensa.c:1173
-#: elf64-s390.c:1143 elfxx-sparc.c:1257
+#: elf32-i386.c:1711 elf32-s390.c:1182 elf32-sh.c:6362 elf32-tilepro.c:1434
+#: elf32-xtensa.c:1182 elf64-s390.c:1151 elfxx-sparc.c:1548
+#: elfxx-tilegx.c:1701
 msgid "%B: `%s' accessed both as normal and thread local symbol"
 msgstr "%B: `%s' terakses kedua sebagai normal dan memperlakukan lokal simbol"
 
-#: elf32-i386.c:2805
+#: elf32-i386.c:2539 elf64-x86-64.c:2506
+msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'.\n"
+msgstr "%P: %B: peringatan: relokasi terhadap `%s' dalam bagian baca-saja `%A'.\n"
+
+#: elf32-i386.c:2629 elf64-x86-64.c:2593
+msgid "%P: %B: warning: relocation in readonly section `%A'.\n"
+msgstr "%P: %B: peringatan: relokasi dalam daerah baca-saja `%A'.\n"
+
+#: elf32-i386.c:3086 elf32-tilepro.c:2557 elfxx-tilegx.c:2871
 msgid "%B: unrecognized relocation (0x%x) in section `%A'"
 msgstr "%B: relokasi tidak dikenal (0x%x) dalam bagian `%A'"
 
-#: elf32-i386.c:3219 elf64-x86-64.c:3081
+#: elf32-i386.c:3494 elf64-x86-64.c:3513
 msgid "hidden symbol"
 msgstr "simbol tersembunyi"
 
-#: elf32-i386.c:3222 elf64-x86-64.c:3084
+#: elf32-i386.c:3497 elf64-x86-64.c:3516
 msgid "internal symbol"
 msgstr "internal simbol"
 
-#: elf32-i386.c:3225 elf64-x86-64.c:3087
+#: elf32-i386.c:3500 elf64-x86-64.c:3519
 msgid "protected symbol"
 msgstr "simbol terproteksi"
 
-#: elf32-i386.c:3228 elf64-x86-64.c:3090
+#: elf32-i386.c:3503 elf64-x86-64.c:3522
 msgid "symbol"
 msgstr "simbol"
 
-#: elf32-i386.c:3233
+#: elf32-i386.c:3508
 msgid "%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object"
 msgstr "%B: relokasi R_386_GOTOFF terhadap %s `%s' tidak terdefinisi tidak dapat digunakan ketika membuah sebuah objek terbagi"
 
-#: elf32-i386.c:3243
+#: elf32-i386.c:3518
 msgid "%B: relocation R_386_GOTOFF against protected function `%s' can not be used when making a shared object"
 msgstr "%B: relokasi R_386_GOTOFF terhadap fungsi terproteksi `%s' tidak dapat digunakan ketika membuat sebuah objek terbagi"
 
-#: elf32-ip2k.c:868 elf32-ip2k.c:874 elf32-ip2k.c:941 elf32-ip2k.c:947
+#: elf32-i386.c:4839 elf32-tilepro.c:3467 elf64-x86-64.c:4609
+#: elfxx-tilegx.c:3847
+#, c-format
+msgid "discarded output section: `%A'"
+msgstr "diabaikan daerah keluaran: `%A'"
+
+#: elf32-ip2k.c:857 elf32-ip2k.c:863 elf32-ip2k.c:930 elf32-ip2k.c:936
 msgid "ip2k relaxer: switch table without complete matching relocation information."
 msgstr "ip2k relaxer: tabel switch tanpa pencocokan informasi relokasi lengkap."
 
-#: elf32-ip2k.c:891 elf32-ip2k.c:974
+#: elf32-ip2k.c:880 elf32-ip2k.c:963
 msgid "ip2k relaxer: switch table header corrupt."
 msgstr "ip2k relaxer: switch tabel header terkorupsi."
 
-#: elf32-ip2k.c:1316
+#: elf32-ip2k.c:1292
 #, c-format
 msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)."
 msgstr "ip2k linker: hilang halaman instruksi di 0x%08lx (dest = 0x%08lx)."
 
-#: elf32-ip2k.c:1332
+#: elf32-ip2k.c:1308
 #, c-format
 msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)."
 msgstr "ip2k linker: redundant halaman instruksi di 0x%08lx (dest = 0x%08lx)."
 
-#. Only if it's not an unresolved symbol.
-#: elf32-ip2k.c:1506
-msgid "unsupported relocation between data/insn address spaces"
-msgstr "relokasi tidak didukung diantara data/insn ruang alamat"
-
-#: elf32-iq2000.c:865 elf32-m32c.c:826
+#: elf32-iq2000.c:858 elf32-m32c.c:819
 #, c-format
 msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
 msgstr "%s: menggunakan e_flags (0x%lx) field berbeda dari modul sebelumnya (0x%lx)"
 
-#: elf32-lm32.c:698
+#: elf32-lm32.c:706
 msgid "global pointer relative relocation when _gp not defined"
 msgstr "penunjuk global relokasi relatif waktu _gp tidak terdefinisi"
 
-#: elf32-lm32.c:753
+#: elf32-lm32.c:761
 msgid "global pointer relative address out of range"
 msgstr "penunjuk global alamat relatif diluar dari jangkauan"
 
-#: elf32-lm32.c:1058
+#: elf32-lm32.c:1057
 msgid "internal error: addend should be zero for R_LM32_16_GOT"
 msgstr "kesalahan internal: addend seharusnya nol untuk R_LM32_16_GOT"
 
@@ -1604,123 +1709,123 @@ msgstr "kesalahan internal: addend sehar
 msgid "SDA relocation when _SDA_BASE_ not defined"
 msgstr "SDA relokasi ketika _SDA_BASE_ tidak terdefinisi"
 
-#: elf32-m32r.c:3039
+#: elf32-m32r.c:3043
 msgid "%B: The target (%s) of an %s relocation is in the wrong section (%A)"
 msgstr "%B: Target (%s) dari sebuah %s relokasi berada dalam bagian yang salah (%A)"
 
-#: elf32-m32r.c:3567
+#: elf32-m32r.c:3571
 msgid "%B: Instruction set mismatch with previous modules"
 msgstr "%B: Set Instruksi tidak cocok dengan modul sebelumnya"
 
-#: elf32-m32r.c:3588
+#: elf32-m32r.c:3592
 #, c-format
 msgid "private flags = %lx"
 msgstr "private flags = %lx"
 
-#: elf32-m32r.c:3593
+#: elf32-m32r.c:3597
 #, c-format
 msgid ": m32r instructions"
 msgstr ": m32r instruksi"
 
-#: elf32-m32r.c:3594
+#: elf32-m32r.c:3598
 #, c-format
 msgid ": m32rx instructions"
 msgstr ": m32rx instruksi"
 
-#: elf32-m32r.c:3595
+#: elf32-m32r.c:3599
 #, c-format
 msgid ": m32r2 instructions"
 msgstr ": m32r2 instruksi"
 
-#: elf32-m68hc1x.c:1048
+#: elf32-m68hc1x.c:1050
 #, c-format
 msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution"
 msgstr "Referensi ke simbol jauh `%s' menggunakan relokasi salah mungkin akan menghasilkan eksekusi salah"
 
-#: elf32-m68hc1x.c:1071
+#: elf32-m68hc1x.c:1073
 #, c-format
 msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)"
 msgstr "banked address [%lx:%04lx] (%lx) tidak dalam bank yang sama seperti dalam alamat bank sekarang [%lx:%04lx] (%lx)"
 
-#: elf32-m68hc1x.c:1090
+#: elf32-m68hc1x.c:1092
 #, c-format
 msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx"
 msgstr "referensi ke alamat bank [%lx:%04lx] dalam ruang alamat normal di %04lx"
 
-#: elf32-m68hc1x.c:1223
+#: elf32-m68hc1x.c:1225
 msgid "%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers"
 msgstr "%B: menghubungkan berkas yang dikompile untuk 16-bit integer (-mshort) dan yang lain untuk 32-bit integer"
 
-#: elf32-m68hc1x.c:1230
+#: elf32-m68hc1x.c:1232
 msgid "%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double"
 msgstr "%B: menghubungkan berkas yang dikompile untuk 32-bit double (-fshort-double) dan yang lain untuk 64-bit double"
 
-#: elf32-m68hc1x.c:1239
+#: elf32-m68hc1x.c:1241
 msgid "%B: linking files compiled for HCS12 with others compiled for HC12"
 msgstr "%B: menghubungkan berkas dikompile untuk HCS12 dengan yang lain dikompile untuk HC12"
 
-#: elf32-m68hc1x.c:1255 elf32-ppc.c:4255 elf64-sparc.c:698 elfxx-mips.c:12617
+#: elf32-m68hc1x.c:1257 elf32-ppc.c:4227 elf64-sparc.c:706 elfxx-mips.c:13965
 msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
 msgstr "%B: menggunakan field e_flags (0x%lx) berbeda dari modul sebelumnya (0x%lx)"
 
-#: elf32-m68hc1x.c:1283
+#: elf32-m68hc1x.c:1285
 #, c-format
 msgid "[abi=32-bit int, "
 msgstr "[abi=32-bit int, "
 
-#: elf32-m68hc1x.c:1285
+#: elf32-m68hc1x.c:1287
 #, c-format
 msgid "[abi=16-bit int, "
 msgstr "[abi=16-bit int, "
 
-#: elf32-m68hc1x.c:1288
+#: elf32-m68hc1x.c:1290
 #, c-format
 msgid "64-bit double, "
 msgstr "64-bit double, "
 
-#: elf32-m68hc1x.c:1290
+#: elf32-m68hc1x.c:1292
 #, c-format
 msgid "32-bit double, "
 msgstr "32-bit double, "
 
-#: elf32-m68hc1x.c:1293
+#: elf32-m68hc1x.c:1295
 #, c-format
 msgid "cpu=HC11]"
 msgstr "cpu=HC11]"
 
-#: elf32-m68hc1x.c:1295
+#: elf32-m68hc1x.c:1297
 #, c-format
 msgid "cpu=HCS12]"
 msgstr "cpu=HCS12]"
 
-#: elf32-m68hc1x.c:1297
+#: elf32-m68hc1x.c:1299
 #, c-format
 msgid "cpu=HC12]"
 msgstr "cpu=HC12]"
 
-#: elf32-m68hc1x.c:1300
+#: elf32-m68hc1x.c:1302
 #, c-format
 msgid " [memory=bank-model]"
 msgstr " [memory=bank-model]"
 
-#: elf32-m68hc1x.c:1302
+#: elf32-m68hc1x.c:1304
 #, c-format
 msgid " [memory=flat]"
 msgstr " [memory=flat]"
 
-#: elf32-m68k.c:1184 elf32-m68k.c:1185
+#: elf32-m68k.c:1251 elf32-m68k.c:1252 vms-alpha.c:7314 vms-alpha.c:7329
 msgid "unknown"
 msgstr "tidak dikenal"
 
-#: elf32-m68k.c:1645
+#: elf32-m68k.c:1715
 msgid "%B: GOT overflow: Number of relocations with 8-bit offset > %d"
 msgstr "%B: GOT overflow: Jumlah dari relokasi dengan offset 8-bit > %d"
 
-#: elf32-m68k.c:1651
+#: elf32-m68k.c:1721
 msgid "%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d"
 msgstr "%B: GOT overflow: Jumlah dari relokasi dengan offset 8- atau 16-bit > %d"
 
-#: elf32-m68k.c:3902
+#: elf32-m68k.c:3957
 msgid "%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object"
 msgstr "%B(%A+0x%lx): R_68K_TLS_LE32 relokasi tidak diperbolehkan dalam objek terbagi"
 
@@ -1732,195 +1837,272 @@ msgstr "%B: Relokasi %s (%d) saat ini ti
 msgid "%B: Unknown relocation type %d\n"
 msgstr "%B: Tipe relokasi %d tidak dikenal\n"
 
-#: elf32-mep.c:654
+#. Pacify gcc -Wall.
+#: elf32-mep.c:157
+#, c-format
+msgid "mep: no reloc for code %d"
+msgstr "mep: no reloc for code %d"
+
+#: elf32-mep.c:163
+#, c-format
+msgid "MeP: howto %d has type %d"
+msgstr "MeP: howto %d has type %d"
+
+#: elf32-mep.c:648
 msgid "%B and %B are for different cores"
 msgstr "%B dan %B adalah untuk cores berbeda"
 
-#: elf32-mep.c:671
+#: elf32-mep.c:665
 msgid "%B and %B are for different configurations"
 msgstr "%B dan %B adalah untuk konfigurasi berbeda"
 
-#: elf32-mep.c:708
+#: elf32-mep.c:702
 #, c-format
 msgid "private flags = 0x%lx"
 msgstr "private flags = 0x%lx"
 
-#: elf32-microblaze.c:737
+#: elf32-microblaze.c:742
 #, c-format
 msgid "%s: unknown relocation type %d"
 msgstr "%s: tipe relokasi %d tidak diketahui"
 
-#: elf32-microblaze.c:862 elf32-microblaze.c:907
+#: elf32-microblaze.c:867 elf32-microblaze.c:912
 #, c-format
 msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
 msgstr "%s: Target (%s) dari sebuah %s relokasi berada dalam bagian yang salah (%s)"
 
-#: elf32-microblaze.c:1150 elfxx-sparc.c:2957
+#: elf32-microblaze.c:1155 elf32-tilepro.c:2891 elfxx-sparc.c:3457
+#: elfxx-tilegx.c:3230
 msgid "%B: probably compiled without -fPIC?"
 msgstr "%B: mungkin dikompile tanpa -fPIC?"
 
-#: elf32-microblaze.c:2086 elflink.c:12444
+#: elf32-microblaze.c:2074
 msgid "%B: bad relocation section name `%s'"
 msgstr "%B: relokasi bagian nama `%s' buruk"
 
-#: elf32-mips.c:1045 elf64-mips.c:2083 elfn32-mips.c:1888
+#: elf32-mips.c:1549 elf64-mips.c:2683 elfn32-mips.c:2487
 msgid "literal relocation occurs for an external symbol"
 msgstr "literal relokasi terjadi untuk simbol eksternal"
 
-#: elf32-mips.c:1085 elf32-score.c:580 elf32-score7.c:480 elf64-mips.c:2126
-#: elfn32-mips.c:1929
+#: elf32-mips.c:1596 elf32-score.c:570 elf32-score7.c:469 elf64-mips.c:2726
+#: elfn32-mips.c:2528
 msgid "32bits gp relative relocation occurs for an external symbol"
 msgstr "32bit gp relative relokasi terjadi untuk sebuah simbol eksternal"
 
-#: elf32-ppc.c:1731
+#: elf32-ppc.c:1741
 #, c-format
 msgid "generic linker can't handle %s"
 msgstr "linker generik tidak dapat menangani %s"
 
-#: elf32-ppc.c:2211
-msgid "corrupt or empty %s section in %B"
-msgstr "korup atau kosong %s bagian dalam %B"
+#: elf32-ppc.c:2184
+msgid "corrupt %s section in %B"
+msgstr "korup bagian %s dalam %B"
 
-#: elf32-ppc.c:2218
+#: elf32-ppc.c:2203
 msgid "unable to read in %s section from %B"
 msgstr "tidak dapat membaca dalam bagian %s dari %B"
 
-#: elf32-ppc.c:2224
-msgid "corrupt %s section in %B"
-msgstr "korup bagian %s dalam %B"
-
-#: elf32-ppc.c:2267
+#: elf32-ppc.c:2244
 msgid "warning: unable to set size of %s section in %B"
 msgstr "peringatan: tidak dapat menset ukuran bagian %s dalam %B"
 
-#: elf32-ppc.c:2315
+#: elf32-ppc.c:2294
 msgid "failed to allocate space for new APUinfo section."
 msgstr "gagal mengalokasikan ruang untuk bagian baru APUinfo."
 
-#: elf32-ppc.c:2334
+#: elf32-ppc.c:2313
 msgid "failed to compute new APUinfo section."
 msgstr "gagal untuk menghitung bagian baru APUinfo."
 
-#: elf32-ppc.c:2337
+#: elf32-ppc.c:2316
 msgid "failed to install new APUinfo section."
 msgstr "gagal untuk memasang bagian baru APUinfo."
 
-#: elf32-ppc.c:3364
+#: elf32-ppc.c:3356
 msgid "%B: relocation %s cannot be used when making a shared object"
 msgstr "%B: relokasi %s tidak dapat digunakan ketika membuat sebuah objek terbagi"
 
 #. It does not make sense to have a procedure linkage
 #. table entry for a local symbol.
-#: elf32-ppc.c:3723
-msgid "%B(%A+0x%lx): %s reloc against local symbol"
-msgstr "%B(%A+0x%lx): %s relokasi terhadap simbol lokal"
+#: elf32-ppc.c:3700
+msgid "%P: %H: %s reloc against local symbol\n"
+msgstr "%P: %H: %s relokasi terhadap simbol lokal\n"
 
-#: elf32-ppc.c:4067 elf32-ppc.c:4082 elfxx-mips.c:12324 elfxx-mips.c:12350
-#: elfxx-mips.c:12372 elfxx-mips.c:12398
+#: elf32-ppc.c:4039 elf32-ppc.c:4054 elfxx-mips.c:13651 elfxx-mips.c:13677
+#: elfxx-mips.c:13699 elfxx-mips.c:13725
 msgid "Warning: %B uses hard float, %B uses soft float"
 msgstr "Peringatan: %B menggunakan hard float, %B menggunakan soft float"
 
-#: elf32-ppc.c:4070 elf32-ppc.c:4074
+#: elf32-ppc.c:4042 elf32-ppc.c:4046
 msgid "Warning: %B uses double-precision hard float, %B uses single-precision hard float"
 msgstr "Peringatan: %B menggunakan double-precision hard float, %B menggunakan single-precision hard float"
 
-#: elf32-ppc.c:4078
+#: elf32-ppc.c:4050
 msgid "Warning: %B uses soft float, %B uses single-precision hard float"
 msgstr "Peringatan: %B menggunakan soft float, %B menggunakan single-precision hard float"
 
-#: elf32-ppc.c:4085 elf32-ppc.c:4089 elfxx-mips.c:12304 elfxx-mips.c:12308
+#: elf32-ppc.c:4057 elf32-ppc.c:4061 elfxx-mips.c:13631 elfxx-mips.c:13635
 msgid "Warning: %B uses unknown floating point ABI %d"
 msgstr "Peringatan: %B menggunkaan floating point ABI %d"
 
-#: elf32-ppc.c:4131 elf32-ppc.c:4135
+#: elf32-ppc.c:4103 elf32-ppc.c:4107
 msgid "Warning: %B uses unknown vector ABI %d"
 msgstr "Peringatan: %B menggunakan vector ABI %d tidak dikenal"
 
-#: elf32-ppc.c:4139
+#: elf32-ppc.c:4111
 msgid "Warning: %B uses vector ABI \"%s\", %B uses \"%s\""
 msgstr "Peringatan: %B menggunakan vector ABI \"%s\", %B menggunakan \"%s\""
 
-#: elf32-ppc.c:4156 elf32-ppc.c:4159
+#: elf32-ppc.c:4128 elf32-ppc.c:4131
 msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory"
 msgstr "Peringatan: %B menggunakan r3/34 untuk arsitektur kembali kecil, %B menggunakan memori"
 
-#: elf32-ppc.c:4162 elf32-ppc.c:4166
+#: elf32-ppc.c:4134 elf32-ppc.c:4138
 msgid "Warning: %B uses unknown small structure return convention %d"
 msgstr "Peringatan: %B menggunakan konvensi struktur kembali kecil %d tidak diketahui"
 
-#: elf32-ppc.c:4220
+#: elf32-ppc.c:4192
 msgid "%B: compiled with -mrelocatable and linked with modules compiled normally"
 msgstr "%B: dikompile dengan -mrelocatable dan dihubungkan dengan module yang dikompile secara normal"
 
-#: elf32-ppc.c:4228
+#: elf32-ppc.c:4200
 msgid "%B: compiled normally and linked with modules compiled with -mrelocatable"
 msgstr "%B: dikompile secara normal dan dihubungkan dengan modul yang dikompile dengan -mrelocatable"
 
-#: elf32-ppc.c:4314
-msgid "Using bss-plt due to %B"
-msgstr "Menggunakan bss-plt karena %B"
-
-#: elf32-ppc.c:7056 elf64-ppc.c:11364
-msgid "%B: unknown relocation type %d for symbol %s"
-msgstr "%B: tipe relokasi %d tidak dikenal untuk simbol %s"
-
-#: elf32-ppc.c:7316
-msgid "%B(%A+0x%lx): non-zero addend on %s reloc against `%s'"
-msgstr "%B(%A+0x%lx): bukan-nol ditambahkan di %s relokasi terhadap `%s'"
-
-#: elf32-ppc.c:7499 elf64-ppc.c:11854
-msgid "%B(%A+0x%lx): relocation %s for indirect function %s unsupported"
-msgstr "%B(%A+0x%lx): Relokasi %s untuk fungsi tidak langsung %s tidak didukung."
+#: elf32-ppc.c:4309
+msgid "%P: bss-plt forced due to %B\n"
+msgstr "%P: bss-plt dipaksa karena ada %B\n"
+
+#: elf32-ppc.c:4312
+msgid "%P: bss-plt forced by profiling\n"
+msgstr "%P: bss-plt forced by profiling\n"
+
+#. Uh oh, we didn't find the expected call.  We
+#. could just mark this symbol to exclude it
+#. from tls optimization but it's safer to skip
+#. the entire optimization.
+#: elf32-ppc.c:4809 elf64-ppc.c:7858
+msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
+msgstr "%H arg lost __tls_get_addr, TLS optimization disabled\n"
+
+#: elf32-ppc.c:5044 elf64-ppc.c:6528
+msgid "%P: dynamic variable `%s' is zero size\n"
+msgstr "%P: variabel dinamik `%s' memiliki ukuran nol\n"
+
+#: elf32-ppc.c:7263 elf64-ppc.c:12675
+msgid "%P: %B: unknown relocation type %d for symbol %s\n"
+msgstr "%P: %B: tipe relokasi %d tidak dikenal untuk simbol %s\n"
+
+#: elf32-ppc.c:7524
+msgid "%P: %H: non-zero addend on %s reloc against `%s'\n"
+msgstr "%P: %H: bukan-nol ditambahkan di %s relokasi terhadap `%s'\n"
+
+#: elf32-ppc.c:7720 elf64-ppc.c:13181
+msgid "%P: %H: relocation %s for indirect function %s unsupported\n"
+msgstr "%P: %H: relokasi %s untuk fungsi tidak langsung %s tidak didukung\n"
+
+#: elf32-ppc.c:7948 elf32-ppc.c:7978 elf32-ppc.c:8025
+msgid "%P: %B: the target (%s) of a %s relocation is in the wrong output section (%s)\n"
+msgstr "%P: %B: target (%s) dari sebuah relokasi %s berada dalam daerah keluaran salah (%s)\n"
+
+#: elf32-ppc.c:8097
+msgid "%P: %B: relocation %s is not yet supported for symbol %s\n"
+msgstr "%P: %B: relokasi %s tidak didukung untuk simbol %s\n"
+
+#: elf32-ppc.c:8158 elf64-ppc.c:13467
+msgid "%P: %H: unresolvable %s relocation against symbol `%s'\n"
+msgstr "%P: %H: tidak teresolf %s relokasi terhadap simbol `%s'\n"
+
+#: elf32-ppc.c:8205 elf64-ppc.c:13512
+msgid "%P: %H: %s reloc against `%s': error %d\n"
+msgstr "%P: %H: %s relokasi terhadap `%s': error %d\n"
+
+#: elf32-ppc.c:8696
+msgid "%P: %s not defined in linker created %s\n"
+msgstr "%P: %s tidak didefinisikan dalam penyambung dibuat oleh %s\n"
+
+#: elf32-rx.c:563
+msgid "%B:%A: Warning: deprecated Red Hat reloc "
+msgstr "%B:%A: Peringatan: tertinggal Red Hat relokasi"
+
+#. Check for unsafe relocs in PID mode.  These are any relocs where
+#. an absolute address is being computed.  There are special cases
+#. for relocs against symbols that are known to be referenced in
+#. crt0.o before the PID base address register has been initialised.
+#: elf32-rx.c:581
+msgid "%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)"
+msgstr "%B(%A): tidak aman PID relokasi %s di 0x%08lx (terhadap %s dalam %s)"
+
+#: elf32-rx.c:1157
+msgid "Warning: RX_SYM reloc with an unknown symbol"
+msgstr "Warning: RX_SYM reloc with an unknown symbol"
+
+#: elf32-rx.c:1324
+msgid "%B(%A): error: call to undefined function '%s'"
+msgstr "%B(%A): error: call to undefined function '%s'"
+
+#: elf32-rx.c:1338
+msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area"
+msgstr "%B(%A): peringatan: tidak alignment akses ke simbol '%s' dalam area data kecil"
+
+#: elf32-rx.c:1342
+msgid "%B(%A): internal error: out of range error"
+msgstr "%B(%A): internal error: diluar jangkauan error"
+
+#: elf32-rx.c:1346
+msgid "%B(%A): internal error: unsupported relocation error"
+msgstr "%B(%A): internal error: relokasi tidak didukung error"
+
+#: elf32-rx.c:1350
+msgid "%B(%A): internal error: dangerous relocation"
+msgstr "%B(%A): internal error: relokasi berbahaya"
+
+#: elf32-rx.c:1354
+msgid "%B(%A): internal error: unknown error"
+msgstr "%B(%A): internal error: error tidak diketahui"
+
+#: elf32-rx.c:3004
+#, c-format
+msgid " [64-bit doubles]"
+msgstr " [64-bit doubles]"
 
-#: elf32-ppc.c:7709 elf32-ppc.c:7736 elf32-ppc.c:7787
-msgid "%B: the target (%s) of a %s relocation is in the wrong output section (%s)"
-msgstr "%B: target (%s) dari sebuah relokasi %s berada dalam daerah keluaran salah (%s)"
-
-#: elf32-ppc.c:7847
-msgid "%B: relocation %s is not yet supported for symbol %s."
-msgstr "%B: relokasi %s tidak didukung untuk simbol %s."
-
-#: elf32-ppc.c:7955 elf64-ppc.c:12110
-msgid "%B(%A+0x%lx): %s reloc against `%s': error %d"
-msgstr "%B(%A+0x%lx): %s relokasi terhadap `%s': error %d"
-
-#: elf32-ppc.c:8423
+#: elf32-rx.c:3006
 #, c-format
-msgid "%s not defined in linker created %s"
-msgstr "%s tidak didefinisikan dalam %s yang dibuat oleh penyambung"
+msgid " [dsp]"
+msgstr " [dsp]"
 
-#: elf32-s390.c:2207 elf64-s390.c:2179
+#: elf32-s390.c:2200 elf64-s390.c:2187
 msgid "%B(%A+0x%lx): invalid instruction for TLS relocation %s"
 msgstr "%B(%A+0x%lx): instruksi tidak valid untuk relokasi TLS %s"
 
-#: elf32-score.c:1533 elf32-score7.c:1424 elfxx-mips.c:3299
+#: elf32-score.c:1520 elf32-score7.c:1379 elfxx-mips.c:3435
 msgid "not enough GOT space for local GOT entries"
 msgstr "tidak cukup ruang GOT untuk masukan lokal GOT"
 
-#: elf32-score.c:2765
+#: elf32-score.c:2742
 msgid "address not word align"
 msgstr "alamat tidak selaras dengan ukuran word"
 
-#: elf32-score.c:2850 elf32-score7.c:2685
+#: elf32-score.c:2827 elf32-score7.c:2631
 #, c-format
 msgid "%s: Malformed reloc detected for section %s"
 msgstr "%s: relokasi malformat terdeteksi untuk bagian %s"
 
-#: elf32-score.c:2901 elf32-score7.c:2736
+#: elf32-score.c:2878 elf32-score7.c:2682
 msgid "%B: CALL15 reloc at 0x%lx not against global symbol"
 msgstr "%B: CALL15 relokasi di 0x%lx tidak terhadap simbol global"
 
-#: elf32-score.c:4042 elf32-score7.c:3879
+#: elf32-score.c:3997 elf32-score7.c:3803
 #, c-format
 msgid " [pic]"
 msgstr " [pic]"
 
-#: elf32-score.c:4046 elf32-score7.c:3883
+#: elf32-score.c:4001 elf32-score7.c:3807
 #, c-format
 msgid " [fix dep]"
 msgstr " [fix dep]"
 
-#: elf32-score.c:4088 elf32-score7.c:3925
+#: elf32-score.c:4043 elf32-score7.c:3849
 msgid "%B: warning: linking PIC files with non-PIC files"
 msgstr "%B: peringatan: menghubungkan berkas PIC dengan berkas bukan-PIC"
 
@@ -1932,182 +2114,212 @@ msgstr "%B: IMPORT SEBAGAI direktif untu
 msgid "%B: Unrecognised .directive command: %s"
 msgstr "%B: Perintah .directive tidak dikenal: %s"
 
-#: elf32-sh-symbian.c:503
+#: elf32-sh-symbian.c:504
 msgid "%B: Failed to add renamed symbol %s"
 msgstr "%B: Gagal menambahkan simbol diubah namanya %s"
 
-#: elf32-sh.c:533
+#: elf32-sh.c:568
 msgid "%B: 0x%lx: warning: bad R_SH_USES offset"
 msgstr "%B: 0x%lx: peringatan: ofset R_SH_USES buruk"
 
-#: elf32-sh.c:545
+#: elf32-sh.c:580
 msgid "%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"
 msgstr "%B: 0x%lx: peringatan: R_SH_USES titik tidak dikenal insn 0x%x"
 
-#: elf32-sh.c:562
+#: elf32-sh.c:597
 msgid "%B: 0x%lx: warning: bad R_SH_USES load offset"
 msgstr "%B: 0x%lx: peringatan: ofset R_SH_USES beban buruk"
 
-#: elf32-sh.c:577
+#: elf32-sh.c:612
 msgid "%B: 0x%lx: warning: could not find expected reloc"
 msgstr "%B: 0x%lx: peringatan: tidak dapat menemukan relokasi yang diperkirakan"
 
-#: elf32-sh.c:605
+#: elf32-sh.c:640
 msgid "%B: 0x%lx: warning: symbol in unexpected section"
 msgstr "%B: 0x%lx: peringatan: simbol dalam bagian yang tidak diperkirakan"
 
-#: elf32-sh.c:731
+#: elf32-sh.c:766
 msgid "%B: 0x%lx: warning: could not find expected COUNT reloc"
 msgstr "%B: 0x%lx: peringatan: tidak dapat menemukan COUNT relokasi"
 
-#: elf32-sh.c:740
+#: elf32-sh.c:775
 msgid "%B: 0x%lx: warning: bad count"
 msgstr "%B: 0x%lx: peringatan: jumlah buruk"
 
-#: elf32-sh.c:1144 elf32-sh.c:1514
+#: elf32-sh.c:1179 elf32-sh.c:1549
 msgid "%B: 0x%lx: fatal: reloc overflow while relaxing"
 msgstr "%B: 0x%lx: fatal: relokasi overflow ketika relaxing"
 
-#: elf32-sh.c:3270 elf64-sh64.c:1526
+#: elf32-sh.c:4048 elf64-sh64.c:1514
 msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled"
 msgstr "Tidak diperkirakan STO_SH5_ISA32 di simbol lokal tidak ditangani"
 
-#: elf32-sh.c:3507
+#: elf32-sh.c:4299
 msgid "%B: 0x%lx: fatal: unaligned branch target for relax-support relocation"
 msgstr "%B: 0x%lx: fatal: unaligned branch target untuk relax-support relokasi"
 
-#: elf32-sh.c:3540 elf32-sh.c:3555
+#: elf32-sh.c:4332 elf32-sh.c:4347
 msgid "%B: 0x%lx: fatal: unaligned %s relocation 0x%lx"
 msgstr "%B: 0x%lx: fatal: unaligned %s relokasi 0x%lx"
 
-#: elf32-sh.c:3569
+#: elf32-sh.c:4361
 msgid "%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32"
 msgstr "%B: 0x%lx: fatal: R_SH_PSHA relokasi %d tidak dalam jangkauan -32..32"
 
-#: elf32-sh.c:3583
+#: elf32-sh.c:4375
 msgid "%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32"
 msgstr "%B: 0x%lx: fatal: R_SH_PSHL relokasi %d tidak dalam jangkauan -32..32"
 
-#: elf32-sh.c:5256 elf64-alpha.c:4525
+#: elf32-sh.c:4519 elf32-sh.c:4989
+msgid "%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section"
+msgstr "%B(%A+0x%lx): tidak dapat mengeluarkan fixups `%s' dalam bagian baca-saja"
+
+#: elf32-sh.c:5096
+msgid "%B(%A+0x%lx): %s relocation against external symbol \"%s\""
+msgstr "%B(%A+0x%lx): %s relokasi terhadap simbol eksternal \"%s\""
+
+#: elf32-sh.c:5569
+#, c-format
+msgid "%X%C: relocation to \"%s\" references a different segment\n"
+msgstr "%X%C: relokasi referensi ke \"%s\" segmen berbeda\n"
+
+#: elf32-sh.c:5575
+#, c-format
+msgid "%C: warning: relocation to \"%s\" references a different segment\n"
+msgstr "%C: peringatan: relokasi referensi ke \"%s\" sebuah segmen berbeda\n"
+
+#: elf32-sh.c:6353 elf32-sh.c:6436
+msgid "%B: `%s' accessed both as normal and FDPIC symbol"
+msgstr "%B: `%s' terakses kedua sebagai normal dan FDPIC simbol"
+
+#: elf32-sh.c:6358 elf32-sh.c:6440
+msgid "%B: `%s' accessed both as FDPIC and thread local symbol"
+msgstr "%B: `%s' terakses kedua sebagai FDPIC dan memperlakukan lokal simbol"
+
+#: elf32-sh.c:6388
+msgid "%B: Function descriptor relocation with non-zero addend"
+msgstr "%B: Fungsi deskripsi relokasi dengan bukan-nol ditambakan"
+
+#: elf32-sh.c:6624 elf64-alpha.c:4652
 msgid "%B: TLS local exec code cannot be linked into shared objects"
 msgstr "%B: TLS lokal exec kode tidak dapat dihubungkan dalam objek terbagi"
 
-#: elf32-sh64.c:222 elf64-sh64.c:2333
+#: elf32-sh64.c:223 elf64-sh64.c:2318
 #, c-format
 msgid "%s: compiled as 32-bit object and %s is 64-bit"
 msgstr "%s: dikompile sebagai 32-bit objek dan %s adalah 64-bit"
 
-#: elf32-sh64.c:225 elf64-sh64.c:2336
+#: elf32-sh64.c:226 elf64-sh64.c:2321
 #, c-format
 msgid "%s: compiled as 64-bit object and %s is 32-bit"
 msgstr "%s: dikompile sebagai 64-bit objek dan %s adalah 32-bit"
 
-#: elf32-sh64.c:227 elf64-sh64.c:2338
+#: elf32-sh64.c:228 elf64-sh64.c:2323
 #, c-format
 msgid "%s: object size does not match that of target %s"
 msgstr "%s: ukuran objek tidak cocok dari target %s"
 
-#: elf32-sh64.c:450 elf64-sh64.c:2852
+#: elf32-sh64.c:451 elf64-sh64.c:2837
 #, c-format
 msgid "%s: encountered datalabel symbol in input"
 msgstr "%s: ditemui datalabel simbol dalam masukan"
 
-#: elf32-sh64.c:527
+#: elf32-sh64.c:528
 msgid "PTB mismatch: a SHmedia address (bit 0 == 1)"
 msgstr "PTB tidak cocok: sebuah SHmedia alamat (bit 0 ==1)"
 
-#: elf32-sh64.c:530
+#: elf32-sh64.c:531
 msgid "PTA mismatch: a SHcompact address (bit 0 == 0)"
 msgstr "PTA tidak cocok: sebuah SHcompact alamat (bit 0 == 0)"
 
-#: elf32-sh64.c:548
+#: elf32-sh64.c:549
 #, c-format
 msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16"
 msgstr "%s: GAS error: tidak diduga PTB insn dengan R_SH_PT_16"
 
-#: elf32-sh64.c:597
+#: elf32-sh64.c:598
 msgid "%B: error: unaligned relocation type %d at %08x reloc %p\n"
 msgstr "%B: error: tipe relokasi unaligned %d di %08x relokasi %p\n"
 
-#: elf32-sh64.c:673
+#: elf32-sh64.c:674
 #, c-format
 msgid "%s: could not write out added .cranges entries"
 msgstr "%s: tidak dapat menulis masukan tambahan .cranges"
 
-#: elf32-sh64.c:733
+#: elf32-sh64.c:734
 #, c-format
 msgid "%s: could not write out sorted .cranges entries"
 msgstr "%s: tidak dapat menulis masukan terurut .cranges"
 
-#: elf32-sparc.c:89
+#: elf32-sparc.c:90
 msgid "%B: compiled for a 64 bit system and target is 32 bit"
 msgstr "%B: dikompile untuk sebuah sistem 64 bit dan target adalah 32 bit"
 
-#: elf32-sparc.c:102
+#: elf32-sparc.c:103
 msgid "%B: linking little endian files with big endian files"
 msgstr "%B: menghubungkan berkas little endian dengan berkas big endian"
 
-#: elf32-spu.c:723
+#: elf32-spu.c:719
 msgid "%X%P: overlay section %A does not start on a cache line.\n"
 msgstr "%X%P: bagian overlay %A jangan diawali di sebuah baris cache.\n"
 
-#: elf32-spu.c:731
+#: elf32-spu.c:727
 msgid "%X%P: overlay section %A is larger than a cache line.\n"
 msgstr "%X%P: bagian overlay %A lebih besar daripada baris cache.\n"
 
-#: elf32-spu.c:751
+#: elf32-spu.c:747
 msgid "%X%P: overlay section %A is not in cache area.\n"
 msgstr "%X%P: bagian overlay %A tidak berada dalam daerah cache.\n"
 
-#: elf32-spu.c:791
+#: elf32-spu.c:787
 msgid "%X%P: overlay sections %A and %A do not start at the same address.\n"
 msgstr "%X%P: bagian overlay %A dan %A jangan diawali di alamat yang sama.\n"
 
-#: elf32-spu.c:1015
+#: elf32-spu.c:1011
 msgid "warning: call to non-function symbol %s defined in %B"
 msgstr "peringatan: panggilan bukan-fungsi simbol %s didefinisikan dalam %B"
 
-#: elf32-spu.c:1365
+#: elf32-spu.c:1361
 msgid "%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n"
 msgstr "%A:0x%v lrlive .brinfo (%u) berbeda dari analisa (%u)\n"
 
-#: elf32-spu.c:1884
+#: elf32-spu.c:1880
 msgid "%B is not allowed to define %s"
 msgstr "%B tidak diperbolehkan untuk didefinisikan %s"
 
-#: elf32-spu.c:1892
+#: elf32-spu.c:1888
 #, c-format
 msgid "you are not allowed to define %s in a script"
 msgstr "anda tidak diperbolehkan untuk mendefinisikan %s dalam sebuah script"
 
-#: elf32-spu.c:1926
+#: elf32-spu.c:1922
 #, c-format
 msgid "%s in overlay section"
 msgstr "%s dalam daerah overlay"
 
-#: elf32-spu.c:1955
+#: elf32-spu.c:1951
 msgid "overlay stub relocation overflow"
 msgstr "relokasi stub overlay overflow"
 
-#: elf32-spu.c:1964 elf64-ppc.c:10441
+#: elf32-spu.c:1960
 msgid "stubs don't match calculated size"
 msgstr "stub tidak cocok dengan ukuran yang dihitung"
 
-#: elf32-spu.c:2546
+#: elf32-spu.c:2542
 #, c-format
 msgid "warning: %s overlaps %s\n"
 msgstr "peringatan: %s timpang tindih %s\n"
 
-#: elf32-spu.c:2562
+#: elf32-spu.c:2558
 #, c-format
 msgid "warning: %s exceeds section size\n"
 msgstr "peringatan: %s melebihi ukuran daerah\n"
 
-#: elf32-spu.c:2593
+#: elf32-spu.c:2589
 msgid "%A:0x%v not found in function table\n"
 msgstr "%A:0x%v tidak ditemukan dalam tabel fungsi\n"
 
-#: elf32-spu.c:2740
+#: elf32-spu.c:2729
 msgid "%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete\n"
 msgstr "%B(%A+0x%v): panggilan untuk daerah bukan-kode %B(%A), analysis tidak lengkap\n"
 
@@ -2133,33 +2345,33 @@ msgstr "  panggilan:\n"
 msgid "   %s%s %s\n"
 msgstr "   %s%s %s\n"
 
-#: elf32-spu.c:4304
+#: elf32-spu.c:4307
 #, c-format
 msgid "%s duplicated in %s\n"
 msgstr "%s duplikasi dalam %s\n"
 
-#: elf32-spu.c:4308
+#: elf32-spu.c:4311
 #, c-format
 msgid "%s duplicated\n"
 msgstr "%s duplikasi\n"
 
-#: elf32-spu.c:4315
+#: elf32-spu.c:4318
 msgid "sorry, no support for duplicate object files in auto-overlay script\n"
 msgstr "maaf, tidak ada dukungan untuk duplikasi berkas objek dalam auto-overlay script\n"
 
-#: elf32-spu.c:4356
+#: elf32-spu.c:4359
 msgid "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store\n"
 msgstr "ukuran non-overlay dari 0x%v plus maksimul overlay size dari 0x%v melebihi lokal store\n"
 
-#: elf32-spu.c:4512
+#: elf32-spu.c:4514
 msgid "%B:%A%s exceeds overlay size\n"
 msgstr "%B:%A%s melebihi ukuran overlay\n"
 
-#: elf32-spu.c:4669
+#: elf32-spu.c:4676
 msgid "Stack size for call graph root nodes.\n"
 msgstr "Ukuran stack untuk panggilan graph titik root.\n"
 
-#: elf32-spu.c:4670
+#: elf32-spu.c:4677
 msgid ""
 "\n"
 "Stack size for functions.  Annotations: '*' max stack, 't' tail call\n"
@@ -2167,225 +2379,303 @@ msgstr ""
 "\n"
 "Ukuran stack untuk fungsi. Anotasi: '*' max stack, 't' tail call\n"
 
-#: elf32-spu.c:4680
+#: elf32-spu.c:4687
 msgid "Maximum stack required is 0x%v\n"
 msgstr "Maksimal stack dibutuhkan adalah 0x%v\n"
 
-#: elf32-spu.c:4771
+#: elf32-spu.c:4778
 msgid "fatal error while creating .fixup"
 msgstr "kesalahan fatal ketika membuat .fixup"
 
-#: elf32-spu.c:5009
+#: elf32-spu.c:5008
 msgid "%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'"
 msgstr "%B(%s=0x%lx): tidak teresolf %s relokasi terhadap simbol `%s'"
 
-#: elf32-v850.c:163
+#: elf32-tic6x.c:1602
+msgid "warning: generating a shared library containing non-PIC code"
+msgstr "warning: generating a shared library containing non-PIC code"
+
+#: elf32-tic6x.c:1607
+msgid "warning: generating a shared library containing non-PID code"
+msgstr "warning: generating a shared library containing non-PID code"
+
+#: elf32-tic6x.c:2541
+msgid "%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined"
+msgstr "%B: SB-relative relokasi tetapi __c6xabi_DSBT_BASE tidak terdefinisi"
+
+#: elf32-tic6x.c:2761
+msgid "dangerous relocation"
+msgstr "relokasi berbahaya"
+
+#: elf32-tic6x.c:3733
+msgid "%B: error: unknown mandatory EABI object attribute %d"
+msgstr "%B: error: tidak diketahui EABI wajib atribut objek %d"
+
+#: elf32-tic6x.c:3741
+msgid "%B: warning: unknown EABI object attribute %d"
+msgstr "%B: peringatan: atribut objek EABI tidak diketahui %d"
+
+#: elf32-tic6x.c:3853 elf32-tic6x.c:3861
+msgid "error: %B requires more stack alignment than %B preserves"
+msgstr "error: %B requires more stack alignment than %B preserves"
+
+#: elf32-tic6x.c:3871 elf32-tic6x.c:3880
+msgid "error: unknown Tag_ABI_array_object_alignment value in %B"
+msgstr "error: unknown Tag_ABI_array_object_alignment value in %B"
+
+#: elf32-tic6x.c:3889 elf32-tic6x.c:3898
+msgid "error: unknown Tag_ABI_array_object_align_expected value in %B"
+msgstr "error: unknown Tag_ABI_array_object_align_expected value in %B"
+
+#: elf32-tic6x.c:3906 elf32-tic6x.c:3913
+msgid "error: %B requires more array alignment than %B preserves"
+msgstr "error: %B requires more array alignment than %B preserves"
+
+#: elf32-tic6x.c:3935
+msgid "warning: %B and %B differ in wchar_t size"
+msgstr "peringatan: %B dan %B berbeda dalam ukuran wchar_t"
+
+#: elf32-tic6x.c:3953
+msgid "warning: %B and %B differ in whether code is compiled for DSBT"
+msgstr "warning: %B and %B differ in whether code is compiled for DSBT"
+
+#: elf32-v850.c:173
 #, c-format
 msgid "Variable `%s' cannot occupy in multiple small data regions"
 msgstr "Variabel `%s' tidak dapat mengisi dalam beberapa daerah data kecil"
 
-#: elf32-v850.c:166
+#: elf32-v850.c:176
 #, c-format
 msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions"
 msgstr "Variabel `%s' hanya dapat berada dalam satu dari kecil, nol, dan sangat kecil daerah data"
 
-#: elf32-v850.c:169
+#: elf32-v850.c:179
 #, c-format
 msgid "Variable `%s' cannot be in both small and zero data regions simultaneously"
 msgstr "Variabel `%s' tidak dapat berada dalam kecil dan nol daerah data secara bersamaan"
 
-#: elf32-v850.c:172
+#: elf32-v850.c:182
 #, c-format
 msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously"
 msgstr "Variabel `%s' tidak dapat berada dalam kecil dan sangat kecil daerah data secara bersamaan"
 
-#: elf32-v850.c:175
+#: elf32-v850.c:185
 #, c-format
 msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously"
 msgstr "variabel `%s' tidak dapat dalam nol dan kecil daerah data secara bersamaan"
 
-#: elf32-v850.c:478
-#, c-format
-msgid "FAILED to find previous HI16 reloc\n"
-msgstr "GAGAL untuk menemukan relokasi HI16 sebelumnya\n"
+#: elf32-v850.c:483
+msgid "FAILED to find previous HI16 reloc"
+msgstr "GAGAL untuk menemukan relokasi HI16 sebelumnya"
 
-#: elf32-v850.c:1713
+#: elf32-v850.c:2155
 msgid "could not locate special linker symbol __gp"
 msgstr "tidak dapat menemukan simbol linker spesial __gp"
 
-#: elf32-v850.c:1717
+#: elf32-v850.c:2159
 msgid "could not locate special linker symbol __ep"
 msgstr "tidak dapat menemukan simbol linker spesial __ep"
 
-#: elf32-v850.c:1721
+#: elf32-v850.c:2163
 msgid "could not locate special linker symbol __ctbp"
 msgstr "tidak dapat menemukan simbol linker spesial __ctbp"
 
-#: elf32-v850.c:1871
+#: elf32-v850.c:2341
 msgid "%B: Architecture mismatch with previous modules"
 msgstr "%B: Arsitektur tidak cocok dengan modul sebelumnya"
 
-#: elf32-v850.c:1890
+#. xgettext:c-format.
+#: elf32-v850.c:2360
 #, c-format
 msgid "private flags = %lx: "
 msgstr "private flags = %lx: "
 
-#: elf32-v850.c:1895
+#: elf32-v850.c:2365
 #, c-format
 msgid "v850 architecture"
 msgstr "v850 arsitektur"
 
-#: elf32-v850.c:1896
+#: elf32-v850.c:2366
 #, c-format
 msgid "v850e architecture"
 msgstr "v850e arsitektur"
 
-#: elf32-v850.c:1897
+#: elf32-v850.c:2367
 #, c-format
 msgid "v850e1 architecture"
 msgstr "v850e1 arsitektur"
 
-#: elf32-vax.c:543
+#: elf32-v850.c:2368
+#, c-format
+msgid "v850e2 architecture"
+msgstr "v850e2 arsitektur"
+
+#: elf32-v850.c:2369
+#, c-format
+msgid "v850e2v3 architecture"
+msgstr "v850e2v3 arsitektur"
+
+#: elf32-vax.c:532
 #, c-format
 msgid " [nonpic]"
 msgstr " [bukan-pic]"
 
-#: elf32-vax.c:546
+#: elf32-vax.c:535
 #, c-format
 msgid " [d-float]"
 msgstr " [d-float]"
 
-#: elf32-vax.c:549
+#: elf32-vax.c:538
 #, c-format
 msgid " [g-float]"
 msgstr " [g-float]"
 
-#: elf32-vax.c:666
+#: elf32-vax.c:655
 #, c-format
 msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld"
 msgstr "%s: peringatan: GOT ditambahkan dari %ld ke `%s' tidak cocok dengan penambahan GOT sebelumnya dari %ld"
 
-#: elf32-vax.c:1608
+#: elf32-vax.c:1585
 #, c-format
 msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored"
 msgstr "%s: peringatan: PLT ditambahkan dari %d ke `%s' dari %s bagian diabaikan"
 
-#: elf32-vax.c:1735
+#: elf32-vax.c:1712
 #, c-format
 msgid "%s: warning: %s relocation against symbol `%s' from %s section"
 msgstr "%s: peringatan: %s relokasi terhadap simbol `%s' dari bagian %s"
 
-#: elf32-vax.c:1741
+#: elf32-vax.c:1718
 #, c-format
 msgid "%s: warning: %s relocation to 0x%x from %s section"
 msgstr "%s: peringatan: relokasi %s ke 0x%x dari daerah %s"
 
-#: elf32-xstormy16.c:451 elf32-ia64.c:2791 elf64-ia64.c:2791
+#: elf32-xstormy16.c:451 elf32-ia64.c:2336 elf64-ia64.c:2336
 msgid "non-zero addend in @fptr reloc"
 msgstr "bukan-nol ditambahkan dalam @fptr relokasi"
 
-#: elf32-xtensa.c:912
+#: elf32-xtensa.c:918
 msgid "%B(%A): invalid property table"
 msgstr "%B(%A): tabel properti tidak valid"
 
-#: elf32-xtensa.c:2740
+#: elf32-xtensa.c:2777
 msgid "%B(%A+0x%lx): relocation offset out of range (size=0x%x)"
 msgstr "%B(%A+0x%lx): ofset relokasi diluar jangkauan (size=0x%x)"
 
-#: elf32-xtensa.c:2819 elf32-xtensa.c:2940
+#: elf32-xtensa.c:2856 elf32-xtensa.c:2977
 msgid "dynamic relocation in read-only section"
 msgstr "relokasi dinamis dalam bagian baca-saja"
 
-#: elf32-xtensa.c:2916
+#: elf32-xtensa.c:2953
 msgid "TLS relocation invalid without dynamic sections"
 msgstr "relokasi TLS tidak valid tanpa bagian dinamis"
 
-#: elf32-xtensa.c:3133
+#: elf32-xtensa.c:3172
 msgid "internal inconsistency in size of .got.loc section"
 msgstr "internal tidak konsisten dalam ukuran dari daerah .got.loc"
 
-#: elf32-xtensa.c:3443
+#: elf32-xtensa.c:3485
 msgid "%B: incompatible machine type. Output is 0x%x. Input is 0x%x"
 msgstr "%B: tipe mesin tidak kompatibel. Keluaran adalah 0x%x. Masukan adalah 0x%x"
 
-#: elf32-xtensa.c:4672 elf32-xtensa.c:4680
+#: elf32-xtensa.c:4714 elf32-xtensa.c:4722
 msgid "Attempt to convert L32R/CALLX to CALL failed"
 msgstr "Mencoba untuk mengubah L32R/CALLX ke CALL gagal"
 
-#: elf32-xtensa.c:6290 elf32-xtensa.c:6366 elf32-xtensa.c:7486
+#: elf32-xtensa.c:6332 elf32-xtensa.c:6408 elf32-xtensa.c:7524
 msgid "%B(%A+0x%lx): could not decode instruction; possible configuration mismatch"
 msgstr "%B(%A+0x%lx): tidak dapat mendeko instruksi; mungkin konfigurasi tidak cocok"
 
-#: elf32-xtensa.c:7226
+#: elf32-xtensa.c:7264
 msgid "%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch"
 msgstr "%B(%A+0x%lx): tidak dapat mendeko instruksi untuk XTENSA_ASM_SIMPLIFY relokasi; mungkin konfigurasi tidak cocok"
 
-#: elf32-xtensa.c:8987
+#: elf32-xtensa.c:9023
 msgid "invalid relocation address"
 msgstr "alamat relokasi tidak valid"
 
-#: elf32-xtensa.c:9036
+#: elf32-xtensa.c:9072
 msgid "overflow after relaxation"
 msgstr "overflow setelah relaksasi"
 
-#: elf32-xtensa.c:10167
+#: elf32-xtensa.c:10204
 msgid "%B(%A+0x%lx): unexpected fix for %s relocation"
 msgstr "%B(%A+0x%lx): unexpected fix untuk relokasi %s"
 
-#: elf64-alpha.c:452
+#: elf64-alpha.c:460
 msgid "GPDISP relocation did not find ldah and lda instructions"
 msgstr "GPDISP relokasi tidak dapat menemukan instruksi ldah dan lda"
 
-#: elf64-alpha.c:2389
+#: elf64-alpha.c:2497
 msgid "%B: .got subsegment exceeds 64K (size %d)"
 msgstr "%B: .got subsegmen melebihi 64K (size %d)"
 
-#: elf64-alpha.c:4269 elf64-alpha.c:4281
+#: elf64-alpha.c:4387 elf64-alpha.c:4399
 msgid "%B: gp-relative relocation against dynamic symbol %s"
 msgstr "%B: gp-relative relokasi terhadap simbol dinamis %s"
 
-#: elf64-alpha.c:4307 elf64-alpha.c:4442
+#: elf64-alpha.c:4425 elf64-alpha.c:4565
 msgid "%B: pc-relative relocation against dynamic symbol %s"
 msgstr "%B: pc-relative relokasi terhadap simbol dinamis %s"
 
-#: elf64-alpha.c:4335
+#: elf64-alpha.c:4453
 msgid "%B: change in gp: BRSGP %s"
 msgstr "%B: perubahan dalam gp: BRSGP %s"
 
-#: elf64-alpha.c:4360
+#: elf64-alpha.c:4478
 msgid "<unknown>"
 msgstr "<tidak dikenal>"
 
-#: elf64-alpha.c:4365
+#: elf64-alpha.c:4483
 msgid "%B: !samegp reloc against symbol without .prologue: %s"
 msgstr "%B: !samegp relokasi terhadap simbol tanpa .prologue: %s"
 
-#: elf64-alpha.c:4417
+#: elf64-alpha.c:4540
 msgid "%B: unhandled dynamic relocation against %s"
 msgstr "%B: relokasi dinamis tidak ditangani terhadap %s"
 
-#: elf64-alpha.c:4449
+#: elf64-alpha.c:4572
 msgid "%B: pc-relative relocation against undefined weak symbol %s"
 msgstr "%B: pc-relative relokasi terhadap simbol lemah tidak terdefinisi %s"
 
-#: elf64-alpha.c:4509
+#: elf64-alpha.c:4636
 msgid "%B: dtp-relative relocation against dynamic symbol %s"
 msgstr "%B: dtp-relative relokasi terhadap simbol dinamis %s"
 
-#: elf64-alpha.c:4532
+#: elf64-alpha.c:4659
 msgid "%B: tp-relative relocation against dynamic symbol %s"
 msgstr "%B: tp-relative relokasi terhadap simbol dinamis %s"
 
-#: elf64-hppa.c:2091
+#: elf64-hppa.c:2083
 #, c-format
 msgid "stub entry for %s cannot load .plt, dp offset = %ld"
 msgstr "masukan stub untuk %s tidak dapat diload .plt, dp ofset = %ld"
 
-#: elf64-hppa.c:3273
-msgid "%B(%A+0x%lx): cannot reach %s"
-msgstr "%B(%A+0x%lx): tidak dapat mencapai %s"
+#: elf64-hppa.c:3275
+msgid "%B(%A+0x"
+msgstr "%B(%A+0x"
+
+#: elf64-mmix.c:1034
+msgid ""
+"invalid input relocation when producing non-ELF, non-mmo format output.\n"
+" Please use the objcopy program to convert from ELF or mmo,\n"
+" or assemble using \"-no-expand\" (for gcc, \"-Wa,-no-expand\""
+msgstr ""
+"invalid input relocation when producing non-ELF, non-mmo format output.\n"
+" Please use the objcopy program to convert from ELF or mmo,\n"
+" or assemble using \"-no-expand\" (for gcc, \"-Wa,-no-expand\""
+
+#: elf64-mmix.c:1218
+msgid ""
+"invalid input relocation when producing non-ELF, non-mmo format output.\n"
+" Please use the objcopy program to convert from ELF or mmo,\n"
+" or compile using the gcc-option \"-mno-base-addresses\"."
+msgstr ""
+"invalid input relocation when producing non-ELF, non-mmo format output.\n"
+" Please use the objcopy program to convert from ELF or mmo,\n"
+" or compile using the gcc-option \"-mno-base-addresses\"."
 
-#: elf64-mmix.c:1177
+#: elf64-mmix.c:1244
 #, c-format
 msgid ""
 "%s: Internal inconsistency error for value for\n"
@@ -2394,46 +2684,46 @@ msgstr ""
 "%s: Internal tidak konsisten error untuk nilai untuk\n"
 " linker-allocated global register: terhubung: 0x%lx%08lx != relaxed: 0x%lx%08lx\n"
 
-#: elf64-mmix.c:1618
+#: elf64-mmix.c:1670
 #, c-format
 msgid "%s: base-plus-offset relocation against register symbol: (unknown) in %s"
 msgstr "%s: base-plus-offset relokasi terhadap simbol register: (tidak diketahui) dalam %s"
 
-#: elf64-mmix.c:1623
+#: elf64-mmix.c:1675
 #, c-format
 msgid "%s: base-plus-offset relocation against register symbol: %s in %s"
 msgstr "%s: base-plus-offset relokasi terhadap simbol register: %s dalam %s"
 
-#: elf64-mmix.c:1667
+#: elf64-mmix.c:1719
 #, c-format
 msgid "%s: register relocation against non-register symbol: (unknown) in %s"
 msgstr "%s: register relokasi terhadap non-register simbol: (tidak diketahui) dalam %s"
 
-#: elf64-mmix.c:1672
+#: elf64-mmix.c:1724
 #, c-format
 msgid "%s: register relocation against non-register symbol: %s in %s"
 msgstr "%s: register relokasi terhadap bukan-register simbol: %s dalam %s"
 
-#: elf64-mmix.c:1709
+#: elf64-mmix.c:1761
 #, c-format
 msgid "%s: directive LOCAL valid only with a register or absolute value"
 msgstr "%s: direktif LOKAL hanya valid dengan sebuah register atau nilai absolut"
 
-#: elf64-mmix.c:1737
+#: elf64-mmix.c:1789
 #, c-format
 msgid "%s: LOCAL directive: Register $%ld is not a local register.  First global register is $%ld."
 msgstr "%s: LOKAL direktif: Register $%ld bukan sebuah lokal register. Pertama global registar adala $%ld."
 
-#: elf64-mmix.c:2201
+#: elf64-mmix.c:2253
 #, c-format
 msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n"
 msgstr "%s: Error: multiple definisi dari `%s'; awal dari %s adalah diset dalam sebuah sebelum berkas terlink\n"
 
-#: elf64-mmix.c:2259
+#: elf64-mmix.c:2311
 msgid "Register section has contents\n"
 msgstr "Daerah register memiliki isi\n"
 
-#: elf64-mmix.c:2451
+#: elf64-mmix.c:2503
 #, c-format
 msgid ""
 "Internal inconsistency: remaining %u != max %u.\n"
@@ -2442,65 +2732,80 @@ msgstr ""
 "Internal tidak konsisten: sisa %u != max %u.\n"
 "  Tolong laporkan bug ini."
 
-#: elf64-ppc.c:2691 libbfd.c:978
-msgid "%B: compiled for a big endian system and target is little endian"
-msgstr "%B: dikompile untuk sebuah sistem big endian dan target adalah little endian"
-
-#: elf64-ppc.c:2694 libbfd.c:980
-msgid "%B: compiled for a little endian system and target is big endian"
-msgstr "%B: dikompile untuk sebuah sistem little endian dan target adalah big endian"
-
-#: elf64-ppc.c:6338
-#, c-format
-msgid "copy reloc against `%s' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc"
-msgstr "salin relokasi terhadap `%s' membutuhkan lazy plt linking; hindari konfigurasi LD_BIND_NOW=1 atau upgrade gcc"
-
-#: elf64-ppc.c:6767
-msgid "dynreloc miscount for %B, section %A"
-msgstr "dynareloc miscount untuk %B, bagian %A"
+#: elf64-ppc.c:4185
+msgid "%P: %B: cannot create stub entry %s\n"
+msgstr "%P: %B: tidak dapat membuat masukan stub %s\n"
+
+#: elf64-ppc.c:6518
+msgid "%P: copy reloc against `%s' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n"
+msgstr "%P: salin relokasi terhadap `%s' membutuhkan lazy plt linking; hindari konfigurasi LD_BIND_NOW=1 atau upgrade gcc\n"
+
+#: elf64-ppc.c:6788
+msgid "%B: undefined symbol on R_PPC64_TOCSAVE relocation"
+msgstr "%B: tidak terdefinisi simbol dalam relokasi R_PPC64_TOCSAVE"
+
+#: elf64-ppc.c:6992
+msgid "%P: dynreloc miscount for %B, section %A\n"
+msgstr "%P: dynareloc miscount untuk %B, bagian %A\n"
 
-#: elf64-ppc.c:6851
+#: elf64-ppc.c:7076
 msgid "%B: .opd is not a regular array of opd entries"
 msgstr "%B: .opd adalah bukan array regular dari masukan opd"
 
-#: elf64-ppc.c:6860
+#: elf64-ppc.c:7085
 msgid "%B: unexpected reloc type %u in .opd section"
 msgstr "%B: tipe relokasi %u tidak diduga dalam bagian .opd"
 
-#: elf64-ppc.c:6881
+#: elf64-ppc.c:7106
 msgid "%B: undefined sym `%s' in .opd section"
 msgstr "%B: tidak terdefinisi simbol `%s' dalam bagian .opd"
 
-#: elf64-ppc.c:7640 elf64-ppc.c:8017
-#, c-format
-msgid "%s defined in removed toc entry"
-msgstr "%s terdefinisi dalam masukan toc terhapus"
-
-#: elf64-ppc.c:8910
-#, c-format
-msgid "long branch stub `%s' offset overflow"
-msgstr "stub brach panjang `%s' ofset overflow"
+#: elf64-ppc.c:7664
+msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
+msgstr "%H __tls_get_addr lost arg, TLS optimization disabled\n"
 
-#: elf64-ppc.c:8969
+#: elf64-ppc.c:8003 elf64-ppc.c:8564
 #, c-format
-msgid "can't find branch stub `%s'"
-msgstr "tidak dapat menemukan branch stub `%s'"
-
-#: elf64-ppc.c:9031 elf64-ppc.c:9169
-#, c-format
-msgid "linkage table error against `%s'"
-msgstr "linkage tabel error terhadap `%s'"
+msgid "%s defined on removed toc entry"
+msgstr "%s terdefinisi dalam masukan toc terhapus"
 
-#: elf64-ppc.c:9326
-#, c-format
-msgid "can't build branch stub `%s'"
-msgstr "tidak dapat membuat branch stub `%s'"
+#: elf64-ppc.c:8521
+msgid "%P: %H: %s relocation references optimized away TOC entry\n"
+msgstr "%P: %H: %s relocation references optimized away TOC entry\n"
+
+#: elf64-ppc.c:9598
+msgid "%P: cannot find opd entry toc for %s\n"
+msgstr "%P: tidak dapat menemukan masukan opdd toc untuk %s\n"
+
+#: elf64-ppc.c:9680
+msgid "%P: long branch stub `%s' offset overflow\n"
+msgstr "%P: stub brach panjang `%s' ofset overflow\n"
+
+#: elf64-ppc.c:9739
+msgid "%P: can't find branch stub `%s'\n"
+msgstr "%P: tidak dapat menemukan branch stub `%s'\n"
+
+#: elf64-ppc.c:9801 elf64-ppc.c:9943
+msgid "%P: linkage table error against `%s'\n"
+msgstr "%P: linkage tabel error terhadap `%s'\n"
+
+#: elf64-ppc.c:10126
+msgid "%P: can't build branch stub `%s'\n"
+msgstr "%P: tidak dapat membuat branch stub `%s'\n"
 
-#: elf64-ppc.c:9799
+#: elf64-ppc.c:10941
 msgid "%B section %A exceeds stub group size"
 msgstr "%B bagian %A melebihi ukuran grup stub"
 
-#: elf64-ppc.c:10453
+#: elf64-ppc.c:11666 elf64-ppc.c:11699
+msgid "%P: %s offset too large for .eh_frame sdata4 encoding"
+msgstr "%P: %s offset too large for .eh_frame sdata4 encoding"
+
+#: elf64-ppc.c:11744
+msgid "%P: stubs don't match calculated size\n"
+msgstr "%P: stub tidak cocok dengan ukuran yang dihitung\n"
+
+#: elf64-ppc.c:11756
 #, c-format
 msgid ""
 "linker stubs in %u group%s\n"
@@ -2517,423 +2822,468 @@ msgstr ""
 "  long toc adj   %lu\n"
 "  plt call       %lu"
 
-#: elf64-ppc.c:11252
-msgid "%B(%A+0x%lx): automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc"
-msgstr "%B(%A+0x%lx): otomatis multiple TOC tidak didukung menggunakan berkas crt anda; rekompile dengan -mminimal-toc atau upgrade gcc"
-
-#: elf64-ppc.c:11260
-msgid "%B(%A+0x%lx): sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern"
-msgstr "%B(%A+0x%lx): sibling call optimization ke `%s' tidak membolehkan otomatis multiple TOC; rekompile dengan -mminimal-toc atau -fno-optimize-sibling-calls, atau buat `%s' extern"
-
-#: elf64-ppc.c:11961
-msgid "%B: relocation %s is not supported for symbol %s."
-msgstr "%B: relokasi %s tidak didukung untuk simbol %s."
-
-#: elf64-ppc.c:12044
-msgid "%B: error: relocation %s not a multiple of %d"
-msgstr "%B: error: relokasi %s bukan multiple dari %d"
+#: elf64-ppc.c:12042
+msgid "%P: %H: %s used with TLS symbol %s\n"
+msgstr "%P: %H: %s digunakan dengan simbol TLS %s\n"
+
+#: elf64-ppc.c:12043
+msgid "%P: %H: %s used with non-TLS symbol %s\n"
+msgstr "%P: %H: %s digunakan dengan simbol bukan-TLS %s\n"
+
+#: elf64-ppc.c:12556
+msgid "%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc\n"
+msgstr "%P: %H: otomatis multiple TOC tidak didukung menggunakan berkas crt anda; rekompile dengan -mminimal-toc atau upgrade gcc\n"
+
+#: elf64-ppc.c:12562
+msgid "%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern\n"
+msgstr "%P: %H: sibling call optimization ke `%s' tidak membolehkan otomatis multiple TOC; rekompile dengan -mminimal-toc atau -fno-optimize-sibling-calls, atau buat `%s' extern\n"
+
+#: elf64-ppc.c:13286
+msgid "%P: %B: relocation %s is not supported for symbol %s\n"
+msgstr "%P: %B: relokasi %s tidak didukung untuk simbol %s\n"
+
+#: elf64-ppc.c:13446
+msgid "%P: %H: error: %s not a multiple of %u\n"
+msgstr "%P: %H: error: %s bukan multiple dari %u\n"
 
-#: elf64-sh64.c:1701
+#: elf64-sh64.c:1686
 #, c-format
 msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n"
 msgstr "%s: error: tipe relokasi %d unaligned di %08x relokasi %08x\n"
 
-#: elf64-sparc.c:439
+#: elf64-sparc.c:446
 msgid "%B: Only registers %%g[2367] can be declared using STT_REGISTER"
 msgstr "%B: Hanya register %%g[2367] dapat dideklarasikan menggunakan STT_REGISTER"
 
-#: elf64-sparc.c:459
+#: elf64-sparc.c:466
 msgid "Register %%g%d used incompatibly: %s in %B, previously %s in %B"
 msgstr "Register %%g%d digunakan tidak kompatibel: %s dalam %B, sebelumnya %s dalam %B"
 
-#: elf64-sparc.c:482
+#: elf64-sparc.c:489
 msgid "Symbol `%s' has differing types: REGISTER in %B, previously %s in %B"
 msgstr "Simbol `%s' memiliki tipe berbeda: REGISTER dalam %B, sebelumnya %s dalam %B"
 
-#: elf64-sparc.c:527
+#: elf64-sparc.c:534
 msgid "Symbol `%s' has differing types: %s in %B, previously REGISTER in %B"
 msgstr "Simbol `%s' memiliki tipe berbeda: %s dalam %B, sebelumnya REGISTER dalam %B"
 
-#: elf64-sparc.c:679
+#: elf64-sparc.c:687
 msgid "%B: linking UltraSPARC specific with HAL specific code"
 msgstr "%B: menghubungkan UltraSPARC spesifik dengan HAL spesifik kode"
 
-#: elf64-x86-64.c:1337
+#: elf64-x86-64.c:1427
+msgid "%B: relocation %s against symbol `%s' isn't supported in x32 mode"
+msgstr "%B: relokasi %s terhadap simbol `%s' tidak didukung dalam mode x32"
+
+#: elf64-x86-64.c:1656
 msgid "%B: '%s' accessed both as normal and thread local symbol"
 msgstr "%B: '%s' keduanya diakses secara normal dan thread simbol lokal"
 
-#: elf64-x86-64.c:2701
+#: elf64-x86-64.c:3150
 msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d"
 msgstr "%B: relokasi %s terhadap STT_GNU_IFUNC simbol `%s' memiliki addend bukan-nol: %d"
 
-#: elf64-x86-64.c:2980
+#: elf64-x86-64.c:3411
 msgid "%B: relocation R_X86_64_GOTOFF64 against protected function `%s' can not be used when making a shared object"
 msgstr "%B: relokasi R_X86_64_GOTOFF64 terhadap fungsi terproteksi `%s' tidak dapat digunakan ketika membuat sebuah objek terbagi"
 
-#: elf64-x86-64.c:3091
+#: elf64-x86-64.c:3523
 msgid "; recompile with -fPIC"
 msgstr "; rekompile dengan -fPIC"
 
-#: elf64-x86-64.c:3096
+#: elf64-x86-64.c:3528
 msgid "%B: relocation %s against %s `%s' can not be used when making a shared object%s"
 msgstr "%B: relokasi %s terhadap %s `%s' tidak dapat digunakan ketika membuat sebuah objek terbagi%s"
 
-#: elf64-x86-64.c:3098
+#: elf64-x86-64.c:3530
 msgid "%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s"
 msgstr "%B: relokasi %s terhadap tidak terdefinisi %s `%s' tidak dapat digunakan ketika membuat sebuah objek terbagi %s"
 
-#: elfcode.h:795
+#: elfcode.h:767
 #, c-format
 msgid "warning: %s has a corrupt string table index - ignoring"
 msgstr "peringatan: %s memiliki sebuah string tabel korup index - diabaikan"
 
-#: elfcode.h:1201
+#: elfcode.h:1177
 #, c-format
 msgid "%s: version count (%ld) does not match symbol count (%ld)"
 msgstr "%s: versi terhitung (%ld) tidak cocok dengan simbol terhitung (%ld)"
 
-#: elfcode.h:1441
+#: elfcode.h:1431
 #, c-format
 msgid "%s(%s): relocation %d has invalid symbol index %ld"
 msgstr "%s(%s): relokasi %d memiliki indek simbol tidak valid %ld"
 
-#: elfcore.h:251
+#: elfcore.h:312
 msgid "Warning: %B is truncated: expected core file size >= %lu, found: %lu."
 msgstr "Peringatan: %B terpotong: diperkirakan ukuran berkas core >= %lu, ditemukan: %lu."
 
-#: elflink.c:1113
+#: elflink.c:1117
 msgid "%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A"
 msgstr "%s: TLS definisi dalam %B bagian %A tidak cocok bukan-TLS definisi dalam %B bagian %A"
 
-#: elflink.c:1117
+#: elflink.c:1121
 msgid "%s: TLS reference in %B mismatches non-TLS reference in %B"
 msgstr "%s: TLS referensi dalam %B tidak cocok bukan-TLS referensi dalam %B"
 
-#: elflink.c:1121
+#: elflink.c:1125
 msgid "%s: TLS definition in %B section %A mismatches non-TLS reference in %B"
 msgstr "%s: TLS definisi dalam %B bagian %A tidak cocok bukan-TLS referensi dalam %B"
 
-#: elflink.c:1125
+#: elflink.c:1129
 msgid "%s: TLS reference in %B mismatches non-TLS definition in %B section %A"
 msgstr "%s: TLS referensi dalam %B tidak cocok bukan-TLS definisi dalam %B bagian %A"
 
-#: elflink.c:1764
+#: elflink.c:1762
 msgid "%B: unexpected redefinition of indirect versioned symbol `%s'"
 msgstr "%B: tidak diduga redefinisi dari indirek versioned simbol `%s'"
 
-#: elflink.c:2077
+#: elflink.c:2063
 msgid "%B: version node not found for symbol %s"
 msgstr "%B: titik versi tidak ditemukan untuk simbol %s"
 
-#: elflink.c:2167
+#: elflink.c:2154
 msgid "%B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A'"
 msgstr "%B: bad relokasi simbol indeks (0x%lx >= 0x%lx) untuk ofset 0x%lx dalam daerah `%A'"
 
-#: elflink.c:2178
+#: elflink.c:2165
 msgid "%B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the object file has no symbol table"
 msgstr "%B: bukan-nol simbol indeks (0x%lx) untuk offset 0x%lx dalam bagian `%A' ketika berkas objek tidak memiliki tabel simbol"
 
-#: elflink.c:2375
+#: elflink.c:2355
 msgid "%B: relocation size mismatch in %B section %A"
 msgstr "%B: ukuran relokasi tidak cocok dalam %B bagian %A"
 
-#: elflink.c:2678
+#: elflink.c:2639
 #, c-format
 msgid "warning: type and size of dynamic symbol `%s' are not defined"
 msgstr "peringatan: tipe dan ukuran dari simbol dinamis `%s' tidak terdefinisi"
 
-#: elflink.c:3424
+#: elflink.c:3391
 msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n"
 msgstr "%P: kode mesin alternatif untuk ELF ditemukan (%d) dalam %B, diduga %d\n"
 
-#: elflink.c:4032
+#: elflink.c:4037
 msgid "%B: %s: invalid version %u (max %d)"
 msgstr "%B: %s: versi %u tidak valid (max %d)"
 
-#: elflink.c:4068
+#: elflink.c:4073
 msgid "%B: %s: invalid needed version %d"
 msgstr "%B: %s: tidak valid dibutuhkan versi %d"
 
-#: elflink.c:4253
+#: elflink.c:4269
 msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A"
 msgstr "Peringatan: alignmen %u dari simbol umum `%s' dalam %B adalah lebih besar daripada alignment (%u) dari bagian ini %A"
 
-#: elflink.c:4259
+#: elflink.c:4275
 msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B"
 msgstr "Peringatan: alignment %u dari simbol `%s' dalam %B adalah lebih kecil daripada %u dalam %B"
 
-#: elflink.c:4274
+#: elflink.c:4290
 msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B"
 msgstr "Peringatan: ukuran dari simbol `%s' berubah dari %lu dalam %B ke %lu dalam %B"
 
-#: elflink.c:4438
-#, c-format
-msgid "%s: invalid DSO for symbol `%s' definition"
-msgstr "%s: tidak valid DSO untuk simbol `%s' definisi"
+#: elflink.c:4463
+msgid "%B: undefined reference to symbol '%s'"
+msgstr "%B: tidak terdefinisi referensi ke simbol '%s'"
+
+#: elflink.c:4466
+msgid "note: '%s' is defined in DSO %B so try adding it to the linker command line"
+msgstr "note: '%s' is defined in DSO %B so try adding it to the linker command line"
 
-#: elflink.c:5688
+#: elflink.c:5781
 #, c-format
 msgid "%s: undefined version: %s"
 msgstr "%s: versi tidak terdefinisi: %s"
 
-#: elflink.c:5756
+#: elflink.c:5849
 msgid "%B: .preinit_array section is not allowed in DSO"
 msgstr "%B: .preinit_array bagian tidak diperbolehkan dalam DSO"
 
-#: elflink.c:7484
+#: elflink.c:7604
 #, c-format
 msgid "undefined %s reference in complex symbol: %s"
 msgstr "undefined %s referensi dalam simbol kompleks: %s"
 
-#: elflink.c:7638
+#: elflink.c:7758
 #, c-format
 msgid "unknown operator '%c' in complex symbol"
 msgstr "operator tidak diketahui '%c' dalam simbol kompleks"
 
-#: elflink.c:7976 elflink.c:7993 elflink.c:8030 elflink.c:8047
+#: elflink.c:8097 elflink.c:8114 elflink.c:8151 elflink.c:8168
 msgid "%B: Unable to sort relocs - they are in more than one size"
 msgstr "%B: Tidak dapat mengurutkan relokasi - mereka berada dalam lebih dari satu ukuran"
 
-#: elflink.c:8007 elflink.c:8061
+#: elflink.c:8128 elflink.c:8182
 msgid "%B: Unable to sort relocs - they are of an unknown size"
 msgstr "%B: Tidak dapat mengurutkan relokasi - mereka dari ukuran yang tidak diketahui"
 
-#: elflink.c:8112
+#: elflink.c:8233
 msgid "Not enough memory to sort relocations"
 msgstr "Tidak cukup memori untuk mengurutkan relokasi"
 
-#: elflink.c:8304
+#: elflink.c:8426
 msgid "%B: Too many sections: %d (>= %d)"
 msgstr "%B: Terlalu banyak bagian: %d (>= %d)"
 
-#: elflink.c:8540
-msgid "%B: %s symbol `%s' in %B is referenced by DSO"
-msgstr "%B: %s simbol `%s' dalam %B adalah direferensikan oleh DSO"
+#: elflink.c:8675
+msgid "%B: internal symbol `%s' in %B is referenced by DSO"
+msgstr "%B: internal simbol `%s' dalam %B adalah direferensikan oleh DSO"
+
+#: elflink.c:8677
+msgid "%B: hidden symbol `%s' in %B is referenced by DSO"
+msgstr "%B: tersembunyi simbol `%s' dalam %B adalah direferensikan oleh DSO"
+
+#: elflink.c:8679
+msgid "%B: local symbol `%s' in %B is referenced by DSO"
+msgstr "%B: lokal simbol `%s' dalam %B adalah direferensikan oleh DSO"
 
-#: elflink.c:8625
+#: elflink.c:8776
 msgid "%B: could not find output section %A for input section %A"
 msgstr "%B: tidak dapat menemukan bagian keluaran %A untuk daerah masukan %A"
 
-#: elflink.c:8745
-msgid "%B: %s symbol `%s' isn't defined"
-msgstr "%B: %s simbol `%s' tidak didefinisikan"
+#: elflink.c:8899
+msgid "%B: protected symbol `%s' isn't defined"
+msgstr "%B: terproteksi simbol `%s' tidak didefinisikan"
+
+#: elflink.c:8901
+msgid "%B: internal symbol `%s' isn't defined"
+msgstr "%B: internal simbol `%s' tidak didefinisikan"
+
+#: elflink.c:8903
+msgid "%B: hidden symbol `%s' isn't defined"
+msgstr "%B: tersembunyi simbol `%s' tidak didefinisikan"
+
+#: elflink.c:9432
+msgid "error: %B: size of section %A is not multiple of address size"
+msgstr "error: %B: ukuran dari bagian %A bukan multiple dari ukuran alamat"
 
-#: elflink.c:9301
+#: elflink.c:9479
 msgid "error: %B contains a reloc (0x%s) for section %A that references a non-existent global symbol"
 msgstr "error: %B berisi sebuah relokasi (0x%s) untuk daerah %A yang mereferensikan sebuah bukan-exist simbol global"
 
-#: elflink.c:9366
-msgid "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B\n"
-msgstr "%X`%s' direferensikan dalam daerah `%A' dari %B: didefinisikan dalam daerah diabaikan `%A' dari %B\n"
-
-#: elflink.c:9991
+#: elflink.c:10214
 msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections"
 msgstr "%A memiliki keduanya terurut [`%A' dalam %B] dan daerah tidak terurut [`%A' dalam %B]"
 
-#: elflink.c:9996
+#: elflink.c:10219
 #, c-format
 msgid "%A has both ordered and unordered sections"
 msgstr "%A memiliki daerah terurut dan tidak terurut"
 
-#: elflink.c:10872 elflink.c:10916
+#: elflink.c:10784
+msgid "%B: file class %s incompatible with %s"
+msgstr "%B: berkas kelas %s tidak kompatibel dengan %s"
+
+#: elflink.c:11093 elflink.c:11137
 msgid "%B: could not find output section %s"
 msgstr "%B: tidak dapat menemukan daerah keluaran %s"
 
-#: elflink.c:10877
+#: elflink.c:11098
 #, c-format
 msgid "warning: %s section has zero size"
 msgstr "peringatan: %s daerah memiliki ukuran nol"
 
-#: elflink.c:10982
+#: elflink.c:11143
+#, c-format
+msgid "warning: section '%s' is being made into a note"
+msgstr "peringatan: bagian '%s' dibuat dalam sebuah catatan"
+
+#: elflink.c:11212
+msgid "%P%X: read-only segment has dynamic relocations.\n"
+msgstr "%P%X: read-only segment has dynamic relocations.\n"
+
+#: elflink.c:11215
 msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n"
 msgstr "%P: peringatan: membuat sebuah DT_TEXTREL dalam sebuah objek terbagi.\n"
 
-#: elflink.c:11165
+#: elflink.c:11402
 msgid "%P%X: can not read symbols: %E\n"
 msgstr "%P%X: tidak dapat membaca simbol: %E\n"
 
-#: elflink.c:11483
+#: elflink.c:11792
 msgid "Removing unused section '%s' in file '%B'"
 msgstr "Menghapus daerah tidak digunakan '%s' dalam berkas '%B'"
 
-#: elflink.c:11695
+#: elflink.c:11998
 msgid "Warning: gc-sections option ignored"
 msgstr "Peringatan: gc-sections pilihan diabaikan"
 
-#: elflink.c:12242
-msgid "%B: ignoring duplicate section `%A'"
-msgstr "%B: peringatan daerah duplikasi `%A'"
-
-#: elflink.c:12249 elflink.c:12256
-msgid "%B: duplicate section `%A' has different size"
-msgstr "%B: daerah duplikasi `%A' memiliki ukuran berbeda"
-
-#: elflink.c:12264 elflink.c:12269
-msgid "%B: warning: could not read contents of section `%A'"
-msgstr "%B: peringatan: tidak dapat membaca isi dari daerah `%A'"
-
-#: elflink.c:12273
-msgid "%B: warning: duplicate section `%A' has different contents"
-msgstr "%B: peringatan: duplikasi daerah `%A' memiliki isi berbeda"
-
-#: elflink.c:12374 linker.c:3098
-msgid "%F%P: already_linked_table: %E\n"
-msgstr "%F%P: already_linked_table: %E\n"
+#: elflink.c:12277
+#, c-format
+msgid "Unrecognized INPUT_SECTION_FLAG %s\n"
+msgstr "Unrecognized INPUT_SECTION_FLAG %s\n"
 
-#: elfxx-mips.c:1222
+#: elfxx-mips.c:1234
 msgid "static procedure (no name)"
 msgstr "prosedur statis (tidak bernama)"
 
-#: elfxx-mips.c:5588
-msgid "%B: %A+0x%lx: jump to stub routine which is not jal"
-msgstr "%B: %A+0x%lx: lompat ke routine stub dimana bukan jal"
+#: elfxx-mips.c:5259
+msgid "MIPS16 and microMIPS functions cannot call each other"
+msgstr "MIPS16 and microMIPS functions cannot call each other"
+
+#: elfxx-mips.c:5856
+msgid "%B: %A+0x%lx: Direct jumps between ISA modes are not allowed; consider recompiling with interlinking enabled."
+msgstr "%B: %A+0x%lx: Direct jumps between ISA modes are not allowed; consider recompiling with interlinking enabled."
 
-#: elfxx-mips.c:6235 elfxx-mips.c:6458
+#: elfxx-mips.c:6519 elfxx-mips.c:6742
 msgid "%B: Warning: bad `%s' option size %u smaller than its header"
 msgstr "%B: Peringatan: pilihan `%s' buruk ukuran %u lebih kecil dari headernya"
 
-#: elfxx-mips.c:7205 elfxx-mips.c:7330
+#: elfxx-mips.c:7495 elfxx-mips.c:7620
 msgid "%B: Warning: cannot determine the target function for stub section `%s'"
 msgstr "%B: Peringatan: tidak dapat menentukan fungsi terget untuk daerah stub `%s'"
 
-#: elfxx-mips.c:7459
+#: elfxx-mips.c:7749
 msgid "%B: Malformed reloc detected for section %s"
 msgstr "%B: Malformed relokasi terdeteksi untuk daerah %s"
 
-#: elfxx-mips.c:7499
+#: elfxx-mips.c:7801
 msgid "%B: GOT reloc at 0x%lx not expected in executables"
 msgstr "%B: GOT relokasi di 0x%lx tidak diduga dalam aplikasi"
 
-#: elfxx-mips.c:7602
+#: elfxx-mips.c:7930
 msgid "%B: CALL16 reloc at 0x%lx not against global symbol"
 msgstr "%B: CALL16 relokasi di 0x%lx tidak terhadap simbol global"
 
-#: elfxx-mips.c:8280
+#: elfxx-mips.c:8645
 #, c-format
 msgid "non-dynamic relocations refer to dynamic symbol %s"
 msgstr "bukan-dinamis relokasi refer ke simbol dinamis %s"
 
-#: elfxx-mips.c:8985
+#: elfxx-mips.c:9347
 msgid "%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'"
 msgstr "%B: Tidak dapat menemukan cocok LO16 relokasi terhadap `%s' untuk %s di 0x%lx di daerah `%A'"
 
-#: elfxx-mips.c:9124
+#: elfxx-mips.c:9486
 msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)"
 msgstr "daerah data-kecil melebihi 64KB; dibawah data-kecil batas ukuran (lihat pilihan -G)"
 
-#: elfxx-mips.c:11940
+#: elfxx-mips.c:9505
+msgid "JALX to a non-word-aligned address"
+msgstr "JALX to a non-word-aligned address"
+
+#: elfxx-mips.c:13266
 #, c-format
 msgid "%s: illegal section name `%s'"
 msgstr "%s: nama daerah `%s' ilegal"
 
-#: elfxx-mips.c:12318 elfxx-mips.c:12344
+#: elfxx-mips.c:13645 elfxx-mips.c:13671
 msgid "Warning: %B uses -msingle-float, %B uses -mdouble-float"
 msgstr "Peringatan: %B menggunakan 0msingle-float, %B menggunakan -mdouble-float"
 
-#: elfxx-mips.c:12330 elfxx-mips.c:12386
+#: elfxx-mips.c:13657 elfxx-mips.c:13713
 msgid "Warning: %B uses -msingle-float, %B uses -mips32r2 -mfp64"
 msgstr "Peringatan: %B menggunakan -msingle-float, %B menggunakan -mips32r2 -mfp64"
 
-#: elfxx-mips.c:12356 elfxx-mips.c:12392
+#: elfxx-mips.c:13683 elfxx-mips.c:13719
 msgid "Warning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64"
 msgstr "Peringatan: %B menggunakan -mdouble-float, %B menggunakan -mips32r2 -mfp64"
 
-#: elfxx-mips.c:12434
+#: elfxx-mips.c:13761
 msgid "%B: endianness incompatible with that of the selected emulation"
 msgstr "%B: endianness tidak kompatibel dengan yang dipilih di emulasi"
 
-#: elfxx-mips.c:12445
+#: elfxx-mips.c:13772
 msgid "%B: ABI is incompatible with that of the selected emulation"
 msgstr "%B: ABI tidak kompatibel dengan yang dipilih di emulasi"
 
-#: elfxx-mips.c:12526
+#: elfxx-mips.c:13856
 msgid "%B: warning: linking abicalls files with non-abicalls files"
 msgstr "%B: peringatan: menghubungkan berkas abicalls dengan berkas bukan-abicalls"
 
-#: elfxx-mips.c:12543
+#: elfxx-mips.c:13873
 msgid "%B: linking 32-bit code with 64-bit code"
 msgstr "%B: menghubungkan 32-bit kode dengan 64-bit kode"
 
-#: elfxx-mips.c:12571
+#: elfxx-mips.c:13901
 msgid "%B: linking %s module with previous %s modules"
 msgstr "%B: menghubungkan %s modul dengan modul %s sebelumnya"
 
-#: elfxx-mips.c:12594
+#: elfxx-mips.c:13924
 msgid "%B: ABI mismatch: linking %s module with previous %s modules"
 msgstr "%B: ABI tidak cocok: menghubungkan modul %s dengan modul %s sebelumnya"
 
-#: elfxx-mips.c:12758
+#: elfxx-mips.c:13948
+msgid "%B: ASE mismatch: linking %s module with previous %s modules"
+msgstr "%B: ASE tidak cocok: menghubungkan modul %s dengan modul %s sebelumnya"
+
+#: elfxx-mips.c:14106
 #, c-format
 msgid " [abi=O32]"
 msgstr " [abi=032]"
 
-#: elfxx-mips.c:12760
+#: elfxx-mips.c:14108
 #, c-format
 msgid " [abi=O64]"
 msgstr " [abi=064]"
 
-#: elfxx-mips.c:12762
+#: elfxx-mips.c:14110
 #, c-format
 msgid " [abi=EABI32]"
 msgstr " [abi=EABI32]"
 
-#: elfxx-mips.c:12764
+#: elfxx-mips.c:14112
 #, c-format
 msgid " [abi=EABI64]"
 msgstr " [abi=EABI64]"
 
-#: elfxx-mips.c:12766
+#: elfxx-mips.c:14114
 #, c-format
 msgid " [abi unknown]"
 msgstr " [abi tidak diketahui]"
 
-#: elfxx-mips.c:12768
+#: elfxx-mips.c:14116
 #, c-format
 msgid " [abi=N32]"
 msgstr " [abi=N32]"
 
-#: elfxx-mips.c:12770
+#: elfxx-mips.c:14118
 #, c-format
 msgid " [abi=64]"
 msgstr " [abi=64]"
 
-#: elfxx-mips.c:12772
+#: elfxx-mips.c:14120
 #, c-format
 msgid " [no abi set]"
 msgstr " [bukan abi set]"
 
-#: elfxx-mips.c:12793
+#: elfxx-mips.c:14141
 #, c-format
 msgid " [unknown ISA]"
 msgstr " [ISA tidak diketahui]"
 
-#: elfxx-mips.c:12804
+#: elfxx-mips.c:14155
 #, c-format
 msgid " [not 32bitmode]"
 msgstr " [bukan 32bitmode]"
 
-#: elfxx-sparc.c:440
+#: elfxx-sparc.c:596
 #, c-format
 msgid "invalid relocation type %d"
 msgstr "tipe relokasi %d tidak valid"
 
-#: i386linux.c:455 m68klinux.c:459 sparclinux.c:453
+#: elfxx-tilegx.c:3952
+msgid "%B: Cannot link together %s and %s objects."
+msgstr "%B: Cannot link together %s and %s objects."
+
+#: i386linux.c:451 m68klinux.c:456 sparclinux.c:450
 #, c-format
 msgid "Output file requires shared library `%s'\n"
 msgstr "Berkas keluaran membutuhkan library terbagi `%s'\n"
 
-#: i386linux.c:463 m68klinux.c:467 sparclinux.c:461
+#: i386linux.c:459 m68klinux.c:464 sparclinux.c:458
 #, c-format
 msgid "Output file requires shared library `%s.so.%s'\n"
 msgstr "Berkas keluaran membutuhkan library terbagi `%s.so.%s'\n"
 
-#: i386linux.c:652 i386linux.c:702 m68klinux.c:659 m68klinux.c:707
-#: sparclinux.c:651 sparclinux.c:701
+#: i386linux.c:648 i386linux.c:698 m68klinux.c:656 m68klinux.c:704
+#: sparclinux.c:648 sparclinux.c:698
 #, c-format
 msgid "Symbol %s not defined for fixups\n"
 msgstr "Simbol %s tidak terdefinisi untuk fixups\n"
 
-#: i386linux.c:726 m68klinux.c:731 sparclinux.c:725
+#: i386linux.c:722 m68klinux.c:728 sparclinux.c:722
 msgid "Warning: fixup count mismatch\n"
 msgstr "Peringatan: jumlah fixup tidak cocok\n"
 
@@ -2947,15 +3297,15 @@ msgstr "%s: string terlalu panjang (%d c
 msgid "%s: unrecognized symbol `%s' flags 0x%x"
 msgstr "%s: simbol tidak dikenal `%s' flags 0x%x"
 
-#: ieee.c:788
+#: ieee.c:792
 msgid "%B: unimplemented ATI record %u for symbol %u"
 msgstr "%B: tidak terimplementasi ATI record %u untuk simbol %u"
 
-#: ieee.c:812
+#: ieee.c:816
 msgid "%B: unexpected ATN type %d in external part"
 msgstr "%B: tipe ATN %d tidak diduga dalam bagian luar"
 
-#: ieee.c:834
+#: ieee.c:838
 msgid "%B: unexpected type after ATN"
 msgstr "%B: tidak diduga tipe sesudah ATN"
 
@@ -2995,99 +3345,173 @@ msgstr "%B: internal error dalam ihex_re
 msgid "%B: bad section length in ihex_read_section"
 msgstr "%B: buruk panjang bagian dalam ihex_read_section"
 
-#: ihex.c:825
+#: ihex.c:826
 #, c-format
 msgid "%s: address 0x%s out of range for Intel Hex file"
 msgstr "%s: alamat 0x%s diluar jangkauan untuk berkas Intel Hex"
 
-#: libbfd.c:1008
+#: libbfd.c:863
+msgid "%B: unable to get decompressed section %A"
+msgstr "%B: tidak dapat memperoleh mengekstrak bagian %A"
+
+#: libbfd.c:1012
+msgid "%B: compiled for a big endian system and target is little endian"
+msgstr "%B: dikompile untuk sebuah sistem big endian dan target adalah little endian"
+
+#: libbfd.c:1014
+msgid "%B: compiled for a little endian system and target is big endian"
+msgstr "%B: dikompile untuk sebuah sistem little endian dan target adalah big endian"
+
+#: libbfd.c:1043
 #, c-format
 msgid "Deprecated %s called at %s line %d in %s\n"
 msgstr "Deprecated %s dipanggil di %s baris %d dalam %s\n"
 
-#: libbfd.c:1011
+#: libbfd.c:1046
 #, c-format
 msgid "Deprecated %s called\n"
 msgstr "Deprecated %s dipanggil\n"
 
-#: linker.c:1874
+#: linker.c:1872
 msgid "%B: indirect symbol `%s' to `%s' is a loop"
 msgstr "%B: indirect simbol `%s' ke `%s' adalah sebuah loop"
 
-#: linker.c:2740
+#: linker.c:2736
 #, c-format
 msgid "Attempt to do relocatable link with %s input and %s output"
 msgstr "Mencoba untuk merelokasi link dengan masukan %s dan keluaran %s"
 
-#: linker.c:3065
-msgid "%B: warning: ignoring duplicate section `%A'\n"
-msgstr "%B: peringatan: mengabaikan bagiann terduplikasi `%A'\n"
-
-#: linker.c:3079
-msgid "%B: warning: duplicate section `%A' has different size\n"
-msgstr "%B: peringatan: bagian terduplikasi `%A' memiliki ukuran berbeda\n"
+#: linker.c:3021
+msgid "%B: ignoring duplicate section `%A'\n"
+msgstr "%B: mengabaikan daerah duplikasi `%A'\n"
+
+#: linker.c:3030 linker.c:3039
+msgid "%B: duplicate section `%A' has different size\n"
+msgstr "%B: daerah duplikasi `%A' memiliki ukuran berbeda\n"
+
+#: linker.c:3047 linker.c:3052
+msgid "%B: could not read contents of section `%A'\n"
+msgstr "%B: tidak dapat membaca isi dari daerah `%A'\n"
+
+#: linker.c:3056
+msgid "%B: duplicate section `%A' has different contents\n"
+msgstr "%B: duplikasi daerah `%A' memiliki isi berbeda\n"
+
+#: mach-o.c:407
+msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols"
+msgstr "bfd_mach_o_canonicalize_symtab: unable to load symbols"
+
+#: mach-o.c:1301
+#, c-format
+msgid "unable to write unknown load command 0x%lx"
+msgstr "unable to write unknown load command 0x%lx"
+
+#: mach-o.c:1789
+#, c-format
+msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu"
+msgstr "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu"
+
+#: mach-o.c:1807
+#, c-format
+msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)"
+msgstr "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)"
+
+#: mach-o.c:1892
+#, c-format
+msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined"
+msgstr "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined"
+
+#: mach-o.c:1900
+#, c-format
+msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" is unsupported 'indirect' reference: setting to undefined"
+msgstr "bfd_mach_o_read_symtab_symbol: symbol \"%s\" is unsupported 'indirect' reference: setting to undefined"
+
+#: mach-o.c:1906
+#, c-format
+msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined"
+msgstr "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined"
+
+#: mach-o.c:1979
+msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols"
+msgstr "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols"
+
+#: mach-o.c:2014
+#, c-format
+msgid "bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu"
+msgstr "bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu"
+
+#: mach-o.c:2734
+#, c-format
+msgid "unable to read unknown load command 0x%lx"
+msgstr "unable to read unknown load command 0x%lx"
+
+#: mach-o.c:2915
+#, c-format
+msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"
+msgstr "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"
 
-#: mach-o.c:3195
+#: mach-o.c:3011
 #, c-format
+msgid "unknown header byte-order value 0x%lx"
+msgstr "unknown header byte-order value 0x%lx"
+
+#: mach-o.c:3577
 msgid "Mach-O header:\n"
 msgstr "Kepala Mach-O:\n"
 
-#: mach-o.c:3196
+#: mach-o.c:3578
 #, c-format
 msgid " magic     : %08lx\n"
 msgstr " majik     : %08lx\n"
 
-#: mach-o.c:3197
+#: mach-o.c:3579
 #, c-format
 msgid " cputype   : %08lx (%s)\n"
 msgstr " tipe-cpu  : %08lx (%s)\n"
 
-#: mach-o.c:3199
+#: mach-o.c:3581
 #, c-format
 msgid " cpusubtype: %08lx\n"
 msgstr " subtipecpu: %08lx\n"
 
-#: mach-o.c:3200
+#: mach-o.c:3582
 #, c-format
 msgid " filetype  : %08lx (%s)\n"
 msgstr " tipe-berkas : %08lx (%s)\n"
 
-#: mach-o.c:3203
+#: mach-o.c:3585
 #, c-format
-msgid " ncmds     : %08lx\n"
-msgstr " ncmds     : %08lx\n"
+msgid " ncmds     : %08lx (%lu)\n"
+msgstr " ncmds     : %08lx (%lu)\n"
 
-#: mach-o.c:3204
+#: mach-o.c:3586
 #, c-format
 msgid " sizeofcmds: %08lx\n"
 msgstr " besardariperintah: %08lx\n"
 
-#: mach-o.c:3205
+#: mach-o.c:3587
 #, c-format
 msgid " flags     : %08lx ("
 msgstr " tanda     : %08lx ("
 
-#: mach-o.c:3207
-#, c-format
+#: mach-o.c:3589 vms-alpha.c:7674
 msgid ")\n"
 msgstr ")\n"
 
-#: mach-o.c:3208
+#: mach-o.c:3590
 #, c-format
 msgid " reserved  : %08x\n"
 msgstr " direserve : %08x\n"
 
-#: mach-o.c:3218
-#, c-format
+#: mach-o.c:3600
 msgid "Segments and Sections:\n"
 msgstr "Bagian dan Daerah:\n"
 
-#: mach-o.c:3219
-#, c-format
+#: mach-o.c:3601
 msgid " #: Segment name     Section name     Address\n"
 msgstr " #: Nama bagian      Nama daerah      Alamat\n"
 
-#: merge.c:829
+#: merge.c:832
 #, c-format
 msgid "%s: access beyond end of merged section (%ld)"
 msgstr "%s: akses diluar dari daerah merged (%ld)"
@@ -3112,122 +3536,122 @@ msgstr "%s: berkas mmo tidak valid: nila
 msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
 msgstr "%s: tidak didukung dengan urutan karakter lebar 0x%02X 0x%02X sesudah nama simbol dimulai dengan `%s'\n"
 
-#: mmo.c:1566
+#: mmo.c:1565
 #, c-format
 msgid "%s: invalid mmo file: unsupported lopcode `%d'\n"
 msgstr "%s: berkas mmo tidak valid: lopcode tidak didukung `%d'\n"
 
-#: mmo.c:1576
+#: mmo.c:1575
 #, c-format
 msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
 msgstr "%s: berka mmo tidak valid: diduga YZ = 1 diperoleh YZ = %d untuk lop_quote\n"
 
-#: mmo.c:1612
+#: mmo.c:1611
 #, c-format
 msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
 msgstr "%s: berkas mmo tidak valid: diduga z = 1 atau z = 2, diperoleh z = %d untuk lop_loc\n"
 
-#: mmo.c:1658
+#: mmo.c:1657
 #, c-format
 msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
 msgstr "%s: berkas mmo tidak valid: diduga z = 1 atau z = 2, diperoleh z = %d untuk lop_fixo\n"
 
-#: mmo.c:1697
+#: mmo.c:1696
 #, c-format
 msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
 msgstr "%s: berkas mmo tidak valid: diduga y = 0, diperoleh y = %d untuk lop_fixrx\n"
 
-#: mmo.c:1706
+#: mmo.c:1705
 #, c-format
 msgid "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
 msgstr "%s: berkas mmo tidak valid: diduga z = 16 atau z = 24, diperoleh z = %d untuk lop_fixrx\n"
 
-#: mmo.c:1729
+#: mmo.c:1728
 #, c-format
 msgid "%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n"
 msgstr "%s: berkas mmo tidak valid: awalan byte dari kata operand harus 0 atau 1, diperoleh %d untuk lop_fixrx\n"
 
-#: mmo.c:1752
+#: mmo.c:1751
 #, c-format
 msgid "%s: cannot allocate file name for file number %d, %d bytes\n"
 msgstr "%s: tidak dapat mengalokasikan nama berkas untuk nomor berkas %d, %d bytes\n"
 
-#: mmo.c:1772
+#: mmo.c:1771
 #, c-format
 msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
 msgstr "%s: berkas mmo tidak valid: nomor berkas %d `%s', telah dimasukan sebagai `%s'\n"
 
-#: mmo.c:1785
+#: mmo.c:1784
 #, c-format
 msgid "%s: invalid mmo file: file name for number %d was not specified before use\n"
 msgstr "%s: berkas mmo tidak valid: nama berkas untuk nomor %d telah dispesifikasikan sebelum digunakan\n"
 
-#: mmo.c:1892
+#: mmo.c:1890
 #, c-format
 msgid "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
 msgstr "%s: berkas mmo tidak valid: daerah y dan z dari lop_stab bukan-nol, y: %d, z: %d\n"
 
-#: mmo.c:1928
+#: mmo.c:1926
 #, c-format
 msgid "%s: invalid mmo file: lop_end not last item in file\n"
 msgstr "%s: berkas mmo tidak valid: lop_end bukan item terakhir dalam berkas\n"
 
-#: mmo.c:1941
+#: mmo.c:1939
 #, c-format
 msgid "%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n"
 msgstr "%s: berkas mmo tidak valid: YZ dari lop_end (%ld) tidak sama dengan jumlah dari tetras yang mengawali lop_stab (%ld)\n"
 
-#: mmo.c:2651
+#: mmo.c:2649
 #, c-format
 msgid "%s: invalid symbol table: duplicate symbol `%s'\n"
 msgstr "%s: tabel simbol tidak valid: duplikasi simbol `%s'\n"
 
-#: mmo.c:2894
+#: mmo.c:2889
 #, c-format
 msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n"
 msgstr "%s: Definisi simbol buruk: `Main' di set ke %s daripada ke awal alamat %s\n"
 
-#: mmo.c:2986
+#: mmo.c:2981
 #, c-format
 msgid "%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d.  Only `Main' will be emitted.\n"
 msgstr "%s: Peringatan: tabel simbol terlalu besar untuk mmo, lebih besar daripada 65535 32-bit words: %d. Hanya `Main' yang akan dikeluarkan.\n"
 
-#: mmo.c:3031
+#: mmo.c:3026
 #, c-format
 msgid "%s: internal error, symbol table changed size from %d to %d words\n"
 msgstr "%s: internal error, tabel simbol berubah ukuran dari %d ke %d kata\n"
 
-#: mmo.c:3083
+#: mmo.c:3078
 #, c-format
 msgid "%s: internal error, internal register section %s had contents\n"
 msgstr "%s: internal error, daerah internal register %s memiliki isi\n"
 
-#: mmo.c:3134
+#: mmo.c:3129
 #, c-format
 msgid "%s: no initialized registers; section length 0\n"
 msgstr "%s: tidak ada register yang terinisialisasi; panjang daerah 0\n"
 
-#: mmo.c:3140
+#: mmo.c:3135
 #, c-format
 msgid "%s: too many initialized registers; section length %ld\n"
 msgstr "%s: terlalu banyak register yang terinisialisasi; panjang daerah %ld\n"
 
-#: mmo.c:3145
+#: mmo.c:3140
 #, c-format
 msgid "%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n"
 msgstr "%s: awal alaman tidak valid untuk register terinisialisasi dari panjang %ld: 0x%lx%08lx\n"
 
-#: oasys.c:881
+#: oasys.c:882
 #, c-format
 msgid "%s: can not represent section `%s' in oasys"
 msgstr "%s: tidak dapat merepresentasikan daerah `%s' dalam oasys"
 
-#: osf-core.c:139
+#: osf-core.c:140
 #, c-format
 msgid "Unhandled OSF/1 core file section type %d\n"
 msgstr "Tidak tertangani berkas core OSF/1 daerah tipe %d\n"
 
-#: pe-mips.c:613
+#: pe-mips.c:607
 msgid "%B: `ld -r' not supported with PE MIPS objects\n"
 msgstr "%B: `ld -r' tidak didukung dengan PE MIPS objek\n"
 
@@ -3235,25 +3659,30 @@ msgstr "%B: `ld -r' tidak didukung denga
 #. src = VMA of the memory we're fixing up
 #. mem = pointer to memory we're fixing up
 #. val = VMA of what we need to refer to.
-#: pe-mips.c:729
+#: pe-mips.c:719
 msgid "%B: unimplemented %s\n"
 msgstr "%B: tidak terimplementasi %s\n"
 
-#: pe-mips.c:755
+#: pe-mips.c:745
 msgid "%B: jump too far away\n"
 msgstr "%B: lompat terlalu jauh\n"
 
-#: pe-mips.c:781
+#: pe-mips.c:771
 msgid "%B: bad pair/reflo after refhi\n"
 msgstr "%B: pasangan/reflo buruk setelah refhi\n"
 
-#: pei-x86_64.c:465
+#: pef.c:520
+#, c-format
+msgid "bfd_pef_scan: unknown architecture 0x%lx"
+msgstr "bfd_pef_scan: unknown architecture 0x%lx"
+
+#: pei-x86_64.c:444
 #, c-format
 msgid "warning: .pdata section size (%ld) is not a multiple of %d\n"
 msgstr "peringatan: besar (%ld) daerah .pdata tidak dalam kelipatan dari %d\n"
 
-#: pei-x86_64.c:469 peigen.c:1620 peigen.c:1799 pepigen.c:1620 pepigen.c:1799
-#: pex64igen.c:1620 pex64igen.c:1799
+#: pei-x86_64.c:448 peigen.c:1618 peigen.c:1801 pepigen.c:1618 pepigen.c:1801
+#: pex64igen.c:1618 pex64igen.c:1801
 #, c-format
 msgid ""
 "\n"
@@ -3262,37 +3691,37 @@ msgstr ""
 "\n"
 "Tabel Fungsi (diinterpretasikan isi daerah .pdata)\n"
 
-#: pei-x86_64.c:471
+#: pei-x86_64.c:450
 #, c-format
 msgid "vma:\t\t\tBeginAddress\t EndAddress\t  UnwindData\n"
 msgstr " vma:\t\t\tAlamatAwal \t AlamatAkhir\t UnwindData\n"
 
 #. XXX code yet to be written.
-#: peicode.h:752
+#: peicode.h:751
 msgid "%B: Unhandled import type; %x"
 msgstr "%B: Tipe impor tidak tertangani; %x"
 
-#: peicode.h:757
+#: peicode.h:756
 msgid "%B: Unrecognised import type; %x"
 msgstr "%B: Tipe impor tidak dikenal; %x"
 
-#: peicode.h:771
+#: peicode.h:770
 msgid "%B: Unrecognised import name type; %x"
 msgstr "%B: Nama tipe impor tidak dikenal; %x"
 
-#: peicode.h:1154
+#: peicode.h:1166
 msgid "%B: Unrecognised machine type (0x%x) in Import Library Format archive"
 msgstr "%B: Tipe mesin (0x%x) tidak dikenal dalam Import Library Format archive"
 
-#: peicode.h:1166
+#: peicode.h:1178
 msgid "%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive"
 msgstr "%B: Dikenal tetapi tidak tertangani tipe mesin (0x%x) dalam Import Library Format archive"
 
-#: peicode.h:1184
+#: peicode.h:1196
 msgid "%B: size field is zero in Import Library Format header"
 msgstr "%B: besar field adalah nol dalam Import Library Format header"
 
-#: peicode.h:1215
+#: peicode.h:1227
 msgid "%B: string not null terminated in ILF object file."
 msgstr "%B: string tidak diakhiri kosong dalam berkas objek ILF."
 
@@ -3349,7 +3778,16 @@ msgstr "Daerah partisi[%d]   = 0x%.8lx (
 msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
 msgstr "Panjang partisi[%d]  = 0x%.8lx (%ld)\n"
 
-#: som.c:5114
+#: reloc.c:6160
+msgid "INPUT_SECTION_FLAGS are not supported.\n"
+msgstr "INPUT_SECTION_FLAGS are not supported.\n"
+
+#: rs6000-core.c:448
+#, c-format
+msgid "%s: warning core file truncated"
+msgstr "%s: warning core file truncated"
+
+#: som.c:5471
 #, c-format
 msgid ""
 "\n"
@@ -3358,7 +3796,7 @@ msgstr ""
 "\n"
 "Tambahan exec header\n"
 
-#: som.c:5417
+#: som.c:5776
 msgid "som_sizeof_headers unimplemented"
 msgstr "som_sizeof_headers tidak terimplementasi"
 
@@ -3378,240 +3816,1906 @@ msgstr "%B(%A+0x%lx): Masukan stabs memi
 msgid "Unsupported .stab relocation"
 msgstr "Relokasi .stab tidak didukung"
 
-#: vms-gsd.c:350
+#: vms-alpha.c:1299
 #, c-format
-msgid "bfd_make_section (%s) failed"
-msgstr "bfd_make_section (%s) gagal"
+msgid "Unknown EGSD subtype %d"
+msgstr "Tidak diketahui EGSD subtype %d"
 
-#: vms-gsd.c:365
+#: vms-alpha.c:1330
 #, c-format
-msgid "bfd_set_section_flags (%s, %x) failed"
-msgstr "bfd_set_section_flags (%s, %x) gagal"
+msgid "Stack overflow (%d) in _bfd_vms_push"
+msgstr "Stack overflow (%d) dalam _bfd_vms_push"
 
-#: vms-gsd.c:399
-#, c-format
-msgid "Size mismatch section %s=%lx, %s=%lx"
-msgstr "Ukuran tidak cocok daerah %s=%lx, %s=%lx"
+#: vms-alpha.c:1343
+msgid "Stack underflow in _bfd_vms_pop"
+msgstr "Stack underflow dalam _bfd_vms_pop"
 
-#: vms-gsd.c:754
+#. These names have not yet been added to this switch statement.
+#: vms-alpha.c:1580
 #, c-format
-msgid "Unknown GSD/EGSD subtype %d"
-msgstr "tidak diketahui GDS/EGSD subtype %d"
-
-#: vms-hdr.c:364
-msgid "Object module NOT error-free !\n"
-msgstr "Modul objek Tidak bebas-error !\n"
+msgid "unknown ETIR command %d"
+msgstr "perintah ETIR %d tidak diketahui"
 
-#: vms-hdr.c:878
+#: vms-alpha.c:1767
 #, c-format
-msgid "unknown source command %d"
-msgstr "sumber perintah %d tidak diketahui"
-
-#: vms-hdr.c:951
-msgid "DST_S_C_SET_LINUM_INCR not implemented"
-msgstr "DST_S_C_SET_LINUM_INCR belum diimplementasikan"
-
-#: vms-hdr.c:957
-msgid "DST_S_C_SET_LINUM_INCR_W not implemented"
-msgstr "DST_S_C_SET_LINUM_INCR_W belum diimplementasikan"
-
-#: vms-hdr.c:963
-msgid "DST_S_C_RESET_LINUM_INCR not implemented"
-msgstr "DST_S_C_RESET_LINUM_INCR belum diimplementasikan"
-
-#: vms-hdr.c:969
-msgid "DST_S_C_BEG_STMT_MODE not implemented"
-msgstr "DST_S_C_BEG_STMT_MODE belum diimplementasikan"
-
-#: vms-hdr.c:975
-msgid "DST_S_C_END_STMT_MODE not implemented"
-msgstr "DST_S_C_END_STMT_MODE belum diimplementasikan"
-
-#: vms-hdr.c:1008
-msgid "DST_S_C_SET_PC not implemented"
-msgstr "DST_S_C_SET_PC belum diimplementasikan"
-
-#: vms-hdr.c:1014
-msgid "DST_S_C_SET_PC_W not implemented"
-msgstr "DST_S_C_SET_PC_W belum diimplementasikan"
-
-#: vms-hdr.c:1020
-msgid "DST_S_C_SET_PC_L not implemented"
-msgstr "DST_S_C_SET_PC_L belum diimplementasikan"
-
-#: vms-hdr.c:1026
-msgid "DST_S_C_SET_STMTNUM not implemented"
-msgstr "DST_S_C_SET_STMTNUM belum diimplementasikan"
+msgid "bad section index in %s"
+msgstr "Indek daerah buruk dalam %s"
 
-#: vms-hdr.c:1079
+#: vms-alpha.c:1780
 #, c-format
-msgid "unknown line command %d"
-msgstr "baris perintah %d tidak diketahui"
+msgid "unsupported STA cmd %s"
+msgstr "perintah %s STA tidak didukung"
 
-#: vms-misc.c:588
-#, c-format
-msgid "Stack overflow (%d) in _bfd_vms_push"
-msgstr "Stack overflow (%d) dalam _bfd_vms_push"
+#. Insert field.
+#. Unsigned shift.
+#. Rotate.
+#. Redefine symbol to current location.
+#. Define a literal.
+#: vms-alpha.c:1956 vms-alpha.c:1987 vms-alpha.c:2234
+#, c-format
+msgid "%s: not supported"
+msgstr "%s: tidak didukung"
+
+#: vms-alpha.c:1962
+#, c-format
+msgid "%s: not implemented"
+msgstr "%s: tidak terimplementasi"
+
+#: vms-alpha.c:2218
+#, c-format
+msgid "invalid use of %s with contexts"
+msgstr "invalid use of %s with contexts"
+
+#: vms-alpha.c:2252
+#, c-format
+msgid "reserved cmd %d"
+msgstr "perintah %d direserve"
+
+#: vms-alpha.c:2337
+msgid "Object module NOT error-free !\n"
+msgstr "Modul objek Tidak bebas-error !\n"
+
+#: vms-alpha.c:2766
+#, c-format
+msgid "Symbol %s replaced by %s\n"
+msgstr "Simbol %s digantikan oleh %s\n"
+
+#: vms-alpha.c:3769
+#, c-format
+msgid "SEC_RELOC with no relocs in section %s"
+msgstr "SEC_RELOC dengan tidak ada relokasi dalam daerah %s"
+
+#: vms-alpha.c:3822 vms-alpha.c:4049
+#, c-format
+msgid "Size error in section %s"
+msgstr "Kesalahan ukuran dalam daerah %s"
+
+#: vms-alpha.c:3991
+msgid "Spurious ALPHA_R_BSR reloc"
+msgstr "Spurious ALPHA_R_BSR relokasi"
+
+#: vms-alpha.c:4036
+#, c-format
+msgid "Unhandled relocation %s"
+msgstr "Relokasi %s tidak tertangani"
+
+#: vms-alpha.c:4326
+#, c-format
+msgid "unknown source command %d"
+msgstr "sumber perintah %d tidak diketahui"
+
+#: vms-alpha.c:4387
+msgid "DST__K_SET_LINUM_INCR not implemented"
+msgstr "DST__K_SET_LINUM_INCR belum diimplementasikan"
+
+#: vms-alpha.c:4393
+msgid "DST__K_SET_LINUM_INCR_W not implemented"
+msgstr "DST__K_SET_LINUM_INCR_W belum diimplementasikan"
+
+#: vms-alpha.c:4399
+msgid "DST__K_RESET_LINUM_INCR not implemented"
+msgstr "DST__K_RESET_LINUM_INCR belum diimplementasikan"
+
+#: vms-alpha.c:4405
+msgid "DST__K_BEG_STMT_MODE not implemented"
+msgstr "DST__K_BEG_STMT_MODE belum diimplementasikan"
+
+#: vms-alpha.c:4411
+msgid "DST__K_END_STMT_MODE not implemented"
+msgstr "DST__K_END_STMT_MODE belum diimplementasikan"
+
+#: vms-alpha.c:4438
+msgid "DST__K_SET_PC not implemented"
+msgstr "DST__K_SET_PC belum diimplementasikan"
+
+#: vms-alpha.c:4444
+msgid "DST__K_SET_PC_W not implemented"
+msgstr "DST__K_SET_PC_W belum diimplementasikan"
+
+#: vms-alpha.c:4450
+msgid "DST__K_SET_PC_L not implemented"
+msgstr "DST__K_SET_PC_L belum diimplementasikan"
+
+#: vms-alpha.c:4456
+msgid "DST__K_SET_STMTNUM not implemented"
+msgstr "DST__K_SET_STMTNUM belum diimplementasikan"
+
+#: vms-alpha.c:4499
+#, c-format
+msgid "unknown line command %d"
+msgstr "baris perintah %d tidak diketahui"
+
+#: vms-alpha.c:4953 vms-alpha.c:4970 vms-alpha.c:4984 vms-alpha.c:4999
+#: vms-alpha.c:5011 vms-alpha.c:5022 vms-alpha.c:5034
+#, c-format
+msgid "Unknown reloc %s + %s"
+msgstr "Relokasi %s + %s tidak diketahui"
+
+#: vms-alpha.c:5089
+#, c-format
+msgid "Unknown reloc %s"
+msgstr "Relokasi %s tidak diketahui"
+
+#: vms-alpha.c:5102
+msgid "Invalid section index in ETIR"
+msgstr "Indek daerah tidak valid dalam ETIR"
+
+#: vms-alpha.c:5109
+msgid "Relocation for non-REL psect"
+msgstr "Relocation for non-REL psect"
+
+#: vms-alpha.c:5156
+#, c-format
+msgid "Unknown symbol in command %s"
+msgstr "Simbol tidak diketahui dalam perintah %s"
+
+#: vms-alpha.c:5671
+#, c-format
+msgid "  EMH %u (len=%u): "
+msgstr "  EMH %u (len=%u): "
+
+#: vms-alpha.c:5680
+#, c-format
+msgid "Module header\n"
+msgstr "Kepala module\n"
+
+#: vms-alpha.c:5681
+#, c-format
+msgid "   structure level: %u\n"
+msgstr "   structure level: %u\n"
+
+#: vms-alpha.c:5682
+#, c-format
+msgid "   max record size: %u\n"
+msgstr "   max record size: %u\n"
+
+#: vms-alpha.c:5685
+#, c-format
+msgid "   module name    : %.*s\n"
+msgstr "   module name    : %.*s\n"
+
+#: vms-alpha.c:5687
+#, c-format
+msgid "   module version : %.*s\n"
+msgstr "   module versi   : %.*s\n"
+
+#: vms-alpha.c:5689
+#, c-format
+msgid "   compile date   : %.17s\n"
+msgstr "   compile date   : %.17s\n"
+
+#: vms-alpha.c:5694
+#, c-format
+msgid "Language Processor Name\n"
+msgstr "Language Processor Name\n"
+
+#: vms-alpha.c:5695
+#, c-format
+msgid "   language name: %.*s\n"
+msgstr "   language name: %.*s\n"
+
+#: vms-alpha.c:5702
+#, c-format
+msgid "Source Files Header\n"
+msgstr "Source Files Header\n"
+
+#: vms-alpha.c:5703
+#, c-format
+msgid "   file: %.*s\n"
+msgstr "   file: %.*s\n"
+
+#: vms-alpha.c:5710
+#, c-format
+msgid "Title Text Header\n"
+msgstr "Title Text Header\n"
+
+#: vms-alpha.c:5711
+#, c-format
+msgid "   title: %.*s\n"
+msgstr "   title: %.*s\n"
+
+#: vms-alpha.c:5718
+#, c-format
+msgid "Copyright Header\n"
+msgstr "Copyright Header\n"
+
+#: vms-alpha.c:5719
+#, c-format
+msgid "   copyright: %.*s\n"
+msgstr "   copyright: %.*s\n"
+
+#: vms-alpha.c:5725
+#, c-format
+msgid "unhandled emh subtype %u\n"
+msgstr "subtipe emh tidak tertangani %u\n"
+
+#: vms-alpha.c:5735
+#, c-format
+msgid "  EEOM (len=%u):\n"
+msgstr "  EEOM (len=%u):\n"
+
+#: vms-alpha.c:5736
+#, c-format
+msgid "   number of cond linkage pairs: %u\n"
+msgstr "   number of cond linkage pairs: %u\n"
+
+#: vms-alpha.c:5738
+#, c-format
+msgid "   completion code: %u\n"
+msgstr "   completion code: %u\n"
+
+#: vms-alpha.c:5742
+#, c-format
+msgid "   transfer addr flags: 0x%02x\n"
+msgstr "   transfer addr flags: 0x%02x\n"
+
+#: vms-alpha.c:5743
+#, c-format
+msgid "   transfer addr psect: %u\n"
+msgstr "   transfer addr psect: %u\n"
+
+#: vms-alpha.c:5745
+#, c-format
+msgid "   transfer address   : 0x%08x\n"
+msgstr "   transfer alamat    : 0x%08x\n"
+
+#: vms-alpha.c:5754
+msgid " WEAK"
+msgstr " WEAK"
+
+#: vms-alpha.c:5756
+msgid " DEF"
+msgstr " DEF"
+
+#: vms-alpha.c:5758
+msgid " UNI"
+msgstr " UNI"
+
+#: vms-alpha.c:5760 vms-alpha.c:5781
+msgid " REL"
+msgstr " REL"
+
+#: vms-alpha.c:5762
+msgid " COMM"
+msgstr " COMM"
+
+#: vms-alpha.c:5764
+msgid " VECEP"
+msgstr " VECEP"
+
+#: vms-alpha.c:5766
+msgid " NORM"
+msgstr " NORM"
+
+#: vms-alpha.c:5768
+msgid " QVAL"
+msgstr " QVAL"
+
+#: vms-alpha.c:5775
+msgid " PIC"
+msgstr " PIC"
+
+#: vms-alpha.c:5777
+msgid " LIB"
+msgstr " LIB"
+
+#: vms-alpha.c:5779
+msgid " OVR"
+msgstr " OVR"
+
+#: vms-alpha.c:5783
+msgid " GBL"
+msgstr " GBL"
+
+#: vms-alpha.c:5785
+msgid " SHR"
+msgstr " SHR"
+
+#: vms-alpha.c:5787
+msgid " EXE"
+msgstr " EXE"
+
+#: vms-alpha.c:5789
+msgid " RD"
+msgstr " RD"
+
+#: vms-alpha.c:5791
+msgid " WRT"
+msgstr " WRT"
+
+#: vms-alpha.c:5793
+msgid " VEC"
+msgstr " VEC"
+
+#: vms-alpha.c:5795
+msgid " NOMOD"
+msgstr " NOMOD"
+
+#: vms-alpha.c:5797
+msgid " COM"
+msgstr " COM"
+
+#: vms-alpha.c:5799
+msgid " 64B"
+msgstr " 64B"
+
+#: vms-alpha.c:5808
+#, c-format
+msgid "  EGSD (len=%u):\n"
+msgstr "  EGSD (len=%u):\n"
+
+#: vms-alpha.c:5820
+#, c-format
+msgid "  EGSD entry %2u (type: %u, len: %u): "
+msgstr "  EGSD entry %2u (type: %u, len: %u): "
+
+#: vms-alpha.c:5832
+#, c-format
+msgid "PSC - Program section definition\n"
+msgstr "PSC - Definisi bagian program\n"
+
+#: vms-alpha.c:5833 vms-alpha.c:5850
+#, c-format
+msgid "   alignment  : 2**%u\n"
+msgstr "   alignment  : 2**%u\n"
+
+#: vms-alpha.c:5834 vms-alpha.c:5851
+#, c-format
+msgid "   flags      : 0x%04x"
+msgstr "   tanda      : 0x%04x"
+
+#: vms-alpha.c:5838
+#, c-format
+msgid "   alloc (len): %u (0x%08x)\n"
+msgstr "   alloc (len): %u (0x%08x)\n"
+
+#: vms-alpha.c:5839 vms-alpha.c:5896 vms-alpha.c:5945
+#, c-format
+msgid "   name       : %.*s\n"
+msgstr "   nama       : %.*s\n"
+
+#: vms-alpha.c:5849
+#, c-format
+msgid "SPSC - Shared Image Program section def\n"
+msgstr "SPSC - Shared Image Program section def\n"
+
+#: vms-alpha.c:5855
+#, c-format
+msgid "   alloc (len)   : %u (0x%08x)\n"
+msgstr "   alloc (len)   : %u (0x%08x)\n"
+
+#: vms-alpha.c:5856
+#, c-format
+msgid "   image offset  : 0x%08x\n"
+msgstr "   besar byte    : 0x%08x\n"
+
+#: vms-alpha.c:5858
+#, c-format
+msgid "   symvec offset : 0x%08x\n"
+msgstr "   symvec offset : 0x%08x\n"
+
+#: vms-alpha.c:5860
+#, c-format
+msgid "   name          : %.*s\n"
+msgstr "   nama          : %.*s\n"
+
+#: vms-alpha.c:5873
+#, c-format
+msgid "SYM - Global symbol definition\n"
+msgstr "SYM - Global symbol definition\n"
+
+#: vms-alpha.c:5874 vms-alpha.c:5934 vms-alpha.c:5955 vms-alpha.c:5974
+#, c-format
+msgid "   flags: 0x%04x"
+msgstr "   tanda: 0x%04x"
+
+#: vms-alpha.c:5877
+#, c-format
+msgid "   psect offset: 0x%08x\n"
+msgstr "   psect offset: 0x%08x\n"
+
+#: vms-alpha.c:5881
+#, c-format
+msgid "   code address: 0x%08x\n"
+msgstr "   code address: 0x%08x\n"
+
+#: vms-alpha.c:5883
+#, c-format
+msgid "   psect index for entry point : %u\n"
+msgstr "   psect index for entry point : %u\n"
+
+#: vms-alpha.c:5886 vms-alpha.c:5962 vms-alpha.c:5981
+#, c-format
+msgid "   psect index : %u\n"
+msgstr "   psect indeks: %u\n"
+
+#: vms-alpha.c:5888 vms-alpha.c:5964 vms-alpha.c:5983
+#, c-format
+msgid "   name        : %.*s\n"
+msgstr "   nama        : %.*s\n"
+
+#: vms-alpha.c:5895
+#, c-format
+msgid "SYM - Global symbol reference\n"
+msgstr "SYM - Global symbol reference\n"
+
+#: vms-alpha.c:5907
+#, c-format
+msgid "IDC - Ident Consistency check\n"
+msgstr "IDC - Ident Consistency check\n"
+
+#: vms-alpha.c:5908
+#, c-format
+msgid "   flags         : 0x%08x"
+msgstr "   tanda         : 0x%08x"
+
+#: vms-alpha.c:5912
+#, c-format
+msgid "   id match      : %x\n"
+msgstr "   besar byte    : %x\n"
+
+#: vms-alpha.c:5914
+#, c-format
+msgid "   error severity: %x\n"
+msgstr "   error severity: %x\n"
+
+#: vms-alpha.c:5917
+#, c-format
+msgid "   entity name   : %.*s\n"
+msgstr "   entity name   : %.*s\n"
+
+#: vms-alpha.c:5919
+#, c-format
+msgid "   object name   : %.*s\n"
+msgstr "   object name   : %.*s\n"
+
+#: vms-alpha.c:5922
+#, c-format
+msgid "   binary ident  : 0x%08x\n"
+msgstr "   binary ident  : 0x%08x\n"
+
+#: vms-alpha.c:5925
+#, c-format
+msgid "   ascii ident   : %.*s\n"
+msgstr "   ascii ident   : %.*s\n"
+
+#: vms-alpha.c:5933
+#, c-format
+msgid "SYMG - Universal symbol definition\n"
+msgstr "SYMG - Universal symbol definition\n"
+
+#: vms-alpha.c:5937
+#, c-format
+msgid "   symbol vector offset: 0x%08x\n"
+msgstr "   symbol vector offset: 0x%08x\n"
+
+#: vms-alpha.c:5939
+#, c-format
+msgid "   entry point: 0x%08x\n"
+msgstr "   titik masuk: 0x%08x\n"
+
+#: vms-alpha.c:5941
+#, c-format
+msgid "   proc descr : 0x%08x\n"
+msgstr "   deskripsi proses : 0x%08x\n"
+
+#: vms-alpha.c:5943
+#, c-format
+msgid "   psect index: %u\n"
+msgstr "   psect indeks: %u\n"
+
+#: vms-alpha.c:5954
+#, c-format
+msgid "SYMV - Vectored symbol definition\n"
+msgstr "SYMV - Vectored definisi simbol\n"
+
+#: vms-alpha.c:5958
+#, c-format
+msgid "   vector      : 0x%08x\n"
+msgstr "   vector      : 0x%08x\n"
+
+#: vms-alpha.c:5960 vms-alpha.c:5979
+#, c-format
+msgid "   psect offset: %u\n"
+msgstr "   psect offset: %u\n"
+
+#: vms-alpha.c:5973
+#, c-format
+msgid "SYMM - Global symbol definition with version\n"
+msgstr "SYMM - Global symbol definition with version\n"
+
+#: vms-alpha.c:5977
+#, c-format
+msgid "   version mask: 0x%08x\n"
+msgstr "   version mask: 0x%08x\n"
+
+#: vms-alpha.c:5988
+#, c-format
+msgid "unhandled egsd entry type %u\n"
+msgstr "unhandled egsd entry type %u\n"
+
+#: vms-alpha.c:6022
+#, c-format
+msgid "    linkage index: %u, replacement insn: 0x%08x\n"
+msgstr "    linkage index: %u, replacement insn: 0x%08x\n"
+
+#: vms-alpha.c:6025
+#, c-format
+msgid "    psect idx 1: %u, offset 1: 0x%08x %08x\n"
+msgstr "    psect idx 1: %u, offset 1: 0x%08x %08x\n"
+
+#: vms-alpha.c:6029
+#, c-format
+msgid "    psect idx 2: %u, offset 2: 0x%08x %08x\n"
+msgstr "    psect idx 2: %u, offset 2: 0x%08x %08x\n"
+
+#: vms-alpha.c:6034
+#, c-format
+msgid "    psect idx 3: %u, offset 3: 0x%08x %08x\n"
+msgstr "    psect idx 3: %u, offset 3: 0x%08x %08x\n"
+
+#: vms-alpha.c:6039
+#, c-format
+msgid "    global name: %.*s\n"
+msgstr "    global name: %.*s\n"
+
+#: vms-alpha.c:6049
+#, c-format
+msgid "  %s (len=%u+%u):\n"
+msgstr "  %s (len=%u+%u):\n"
+
+#: vms-alpha.c:6064
+#, c-format
+msgid "   (type: %3u, size: 4+%3u): "
+msgstr "   (type: %3u, size: 4+%3u): "
+
+#: vms-alpha.c:6068
+#, c-format
+msgid "STA_GBL (stack global) %.*s\n"
+msgstr "STA_GBL (stack global) %.*s\n"
+
+#: vms-alpha.c:6072
+#, c-format
+msgid "STA_LW (stack longword) 0x%08x\n"
+msgstr "STA_LW (stack longword) 0x%08x\n"
+
+#: vms-alpha.c:6076
+#, c-format
+msgid "STA_QW (stack quadword) 0x%08x %08x\n"
+msgstr "STA_QW (stack quadword) 0x%08x %08x\n"
+
+#: vms-alpha.c:6081
+#, c-format
+msgid "STA_PQ (stack psect base + offset)\n"
+msgstr "STA_PQ (stack psect base + offset)\n"
+
+#: vms-alpha.c:6082
+#, c-format
+msgid "    psect: %u, offset: 0x%08x %08x\n"
+msgstr "    psect: %u, offset: 0x%08x %08x\n"
+
+#: vms-alpha.c:6088
+#, c-format
+msgid "STA_LI (stack literal)\n"
+msgstr "STA_LI (stack literal)\n"
+
+#: vms-alpha.c:6091
+#, c-format
+msgid "STA_MOD (stack module)\n"
+msgstr "STA_MOD (stack module)\n"
+
+#: vms-alpha.c:6094
+#, c-format
+msgid "STA_CKARG (compare procedure argument)\n"
+msgstr "STA_CKARG (compare procedure argument)\n"
+
+#: vms-alpha.c:6098
+#, c-format
+msgid "STO_B (store byte)\n"
+msgstr "STO_B (store byte)\n"
+
+#: vms-alpha.c:6101
+#, c-format
+msgid "STO_W (store word)\n"
+msgstr "STO_W (store word)\n"
+
+#: vms-alpha.c:6104
+#, c-format
+msgid "STO_LW (store longword)\n"
+msgstr "STO_LW (store longword)\n"
+
+#: vms-alpha.c:6107
+#, c-format
+msgid "STO_QW (store quadword)\n"
+msgstr "STO_QW (store quadword)\n"
+
+#: vms-alpha.c:6113
+#, c-format
+msgid "STO_IMMR (store immediate repeat) %u bytes\n"
+msgstr "STO_IMMR (store immediate repeat) %u bytes\n"
+
+#: vms-alpha.c:6120
+#, c-format
+msgid "STO_GBL (store global) %.*s\n"
+msgstr "STO_GBL (store global) %.*s\n"
+
+#: vms-alpha.c:6124
+#, c-format
+msgid "STO_CA (store code address) %.*s\n"
+msgstr "STO_CA (store code address) %.*s\n"
+
+#: vms-alpha.c:6128
+#, c-format
+msgid "STO_RB (store relative branch)\n"
+msgstr "STO_RB (store relative branch)\n"
+
+#: vms-alpha.c:6131
+#, c-format
+msgid "STO_AB (store absolute branch)\n"
+msgstr "STO_AB (store absolute branch)\n"
+
+#: vms-alpha.c:6134
+#, c-format
+msgid "STO_OFF (store offset to psect)\n"
+msgstr "STO_OFF (store offset to psect)\n"
+
+#: vms-alpha.c:6140
+#, c-format
+msgid "STO_IMM (store immediate) %u bytes\n"
+msgstr "STO_IMM (store immediate) %u bytes\n"
+
+#: vms-alpha.c:6147
+#, c-format
+msgid "STO_GBL_LW (store global longword) %.*s\n"
+msgstr "STO_GBL_LW (store global longword) %.*s\n"
+
+#: vms-alpha.c:6151
+#, c-format
+msgid "STO_OFF (store LP with procedure signature)\n"
+msgstr "STO_OFF (store LP with procedure signature)\n"
+
+#: vms-alpha.c:6154
+#, c-format
+msgid "STO_BR_GBL (store branch global) *todo*\n"
+msgstr "STO_BR_GBL (store branch global) *todo*\n"
+
+#: vms-alpha.c:6157
+#, c-format
+msgid "STO_BR_PS (store branch psect + offset) *todo*\n"
+msgstr "STO_BR_PS (store branch psect + offset) *todo*\n"
+
+#: vms-alpha.c:6161
+#, c-format
+msgid "OPR_NOP (no-operation)\n"
+msgstr "OPR_NOP (no-operation)\n"
+
+#: vms-alpha.c:6164
+#, c-format
+msgid "OPR_ADD (add)\n"
+msgstr "OPR_ADD (add)\n"
+
+#: vms-alpha.c:6167
+#, c-format
+msgid "OPR_SUB (substract)\n"
+msgstr "OPR_SUB (substract)\n"
+
+#: vms-alpha.c:6170
+#, c-format
+msgid "OPR_MUL (multiply)\n"
+msgstr "OPR_MUL (multiply)\n"
+
+#: vms-alpha.c:6173
+#, c-format
+msgid "OPR_DIV (divide)\n"
+msgstr "OPR_DIV (divide)\n"
+
+#: vms-alpha.c:6176
+#, c-format
+msgid "OPR_AND (logical and)\n"
+msgstr "OPR_AND (logical and)\n"
+
+#: vms-alpha.c:6179
+#, c-format
+msgid "OPR_IOR (logical inclusive or)\n"
+msgstr "OPR_IOR (logical inclusive or)\n"
+
+#: vms-alpha.c:6182
+#, c-format
+msgid "OPR_EOR (logical exclusive or)\n"
+msgstr "OPR_EOR (logical exclusive or)\n"
+
+#: vms-alpha.c:6185
+#, c-format
+msgid "OPR_NEG (negate)\n"
+msgstr "OPR_NEG (negate)\n"
+
+#: vms-alpha.c:6188
+#, c-format
+msgid "OPR_COM (complement)\n"
+msgstr "OPR_COM (complement)\n"
+
+#: vms-alpha.c:6191
+#, c-format
+msgid "OPR_INSV (insert field)\n"
+msgstr "OPR_INSV (insert field)\n"
+
+#: vms-alpha.c:6194
+#, c-format
+msgid "OPR_ASH (arithmetic shift)\n"
+msgstr "OPR_ASH (arithmetic shift)\n"
+
+#: vms-alpha.c:6197
+#, c-format
+msgid "OPR_USH (unsigned shift)\n"
+msgstr "OPR_USH (unsigned shift)\n"
+
+#: vms-alpha.c:6200
+#, c-format
+msgid "OPR_ROT (rotate)\n"
+msgstr "OPR_ROT (rotate)\n"
+
+#: vms-alpha.c:6203
+#, c-format
+msgid "OPR_SEL (select)\n"
+msgstr "OPR_SEL (select)\n"
+
+#: vms-alpha.c:6206
+#, c-format
+msgid "OPR_REDEF (redefine symbol to curr location)\n"
+msgstr "OPR_REDEF (redefine symbol to curr location)\n"
+
+#: vms-alpha.c:6209
+#, c-format
+msgid "OPR_REDEF (define a literal)\n"
+msgstr "OPR_REDEF (define a literal)\n"
+
+#: vms-alpha.c:6213
+#, c-format
+msgid "STC_LP (store cond linkage pair)\n"
+msgstr "STC_LP (store cond linkage pair)\n"
+
+#: vms-alpha.c:6217
+#, c-format
+msgid "STC_LP_PSB (store cond linkage pair + signature)\n"
+msgstr "STC_LP_PSB (store cond linkage pair + signature)\n"
+
+#: vms-alpha.c:6218
+#, c-format
+msgid "   linkage index: %u, procedure: %.*s\n"
+msgstr "   linkage index: %u, procedure: %.*s\n"
+
+#: vms-alpha.c:6221
+#, c-format
+msgid "   signature: %.*s\n"
+msgstr "   signature: %.*s\n"
+
+#: vms-alpha.c:6224
+#, c-format
+msgid "STC_GBL (store cond global)\n"
+msgstr "STC_GBL (store cond global)\n"
+
+#: vms-alpha.c:6225
+#, c-format
+msgid "   linkage index: %u, global: %.*s\n"
+msgstr "   linkage index: %u, global: %.*s\n"
+
+#: vms-alpha.c:6229
+#, c-format
+msgid "STC_GCA (store cond code address)\n"
+msgstr "STC_GCA (store cond code address)\n"
+
+#: vms-alpha.c:6230
+#, c-format
+msgid "   linkage index: %u, procedure name: %.*s\n"
+msgstr "   linkage index: %u, procedure name: %.*s\n"
+
+#: vms-alpha.c:6234
+#, c-format
+msgid "STC_PS (store cond psect + offset)\n"
+msgstr "STC_PS (store cond psect + offset)\n"
+
+#: vms-alpha.c:6236
+#, c-format
+msgid "   linkage index: %u, psect: %u, offset: 0x%08x %08x\n"
+msgstr "   linkage index: %u, psect: %u, offset: 0x%08x %08x\n"
+
+#: vms-alpha.c:6243
+#, c-format
+msgid "STC_NOP_GBL (store cond NOP at global addr)\n"
+msgstr "STC_NOP_GBL (store cond NOP at global addr)\n"
+
+#: vms-alpha.c:6247
+#, c-format
+msgid "STC_NOP_PS (store cond NOP at psect + offset)\n"
+msgstr "STC_NOP_PS (store cond NOP at psect + offset)\n"
+
+#: vms-alpha.c:6251
+#, c-format
+msgid "STC_BSR_GBL (store cond BSR at global addr)\n"
+msgstr "STC_BSR_GBL (store cond BSR at global addr)\n"
+
+#: vms-alpha.c:6255
+#, c-format
+msgid "STC_BSR_PS (store cond BSR at psect + offset)\n"
+msgstr "STC_BSR_PS (store cond BSR at psect + offset)\n"
+
+#: vms-alpha.c:6259
+#, c-format
+msgid "STC_LDA_GBL (store cond LDA at global addr)\n"
+msgstr "STC_LDA_GBL (store cond LDA at global addr)\n"
+
+#: vms-alpha.c:6263
+#, c-format
+msgid "STC_LDA_PS (store cond LDA at psect + offset)\n"
+msgstr "STC_LDA_PS (store cond LDA at psect + offset)\n"
+
+#: vms-alpha.c:6267
+#, c-format
+msgid "STC_BOH_GBL (store cond BOH at global addr)\n"
+msgstr "STC_BOH_GBL (store cond BOH at global addr)\n"
+
+#: vms-alpha.c:6271
+#, c-format
+msgid "STC_BOH_PS (store cond BOH at psect + offset)\n"
+msgstr "STC_BOH_PS (store cond BOH at psect + offset)\n"
+
+#: vms-alpha.c:6276
+#, c-format
+msgid "STC_NBH_GBL (store cond or hint at global addr)\n"
+msgstr "STC_NBH_GBL (store cond or hint at global addr)\n"
+
+#: vms-alpha.c:6280
+#, c-format
+msgid "STC_NBH_PS (store cond or hint at psect + offset)\n"
+msgstr "STC_NBH_PS (store cond or hint at psect + offset)\n"
+
+#: vms-alpha.c:6284
+#, c-format
+msgid "CTL_SETRB (set relocation base)\n"
+msgstr "CTL_SETRB (set relocation base)\n"
+
+#: vms-alpha.c:6290
+#, c-format
+msgid "CTL_AUGRB (augment relocation base) %u\n"
+msgstr "CTL_AUGRB (augment relocation base) %u\n"
+
+#: vms-alpha.c:6294
+#, c-format
+msgid "CTL_DFLOC (define location)\n"
+msgstr "CTL_DFLOC (define location)\n"
+
+#: vms-alpha.c:6297
+#, c-format
+msgid "CTL_STLOC (set location)\n"
+msgstr "CTL_STLOC (set location)\n"
+
+#: vms-alpha.c:6300
+#, c-format
+msgid "CTL_STKDL (stack defined location)\n"
+msgstr "CTL_STKDL (stack defined location)\n"
+
+#: vms-alpha.c:6303 vms-alpha.c:6717
+#, c-format
+msgid "*unhandled*\n"
+msgstr "*unhandled*\n"
+
+#: vms-alpha.c:6333 vms-alpha.c:6372
+#, c-format
+msgid "cannot read GST record length\n"
+msgstr "cannot read GST record length\n"
+
+#. Ill-formed.
+#: vms-alpha.c:6354
+#, c-format
+msgid "cannot find EMH in first GST record\n"
+msgstr "cannot find EMH in first GST record\n"
+
+#: vms-alpha.c:6380
+#, c-format
+msgid "cannot read GST record header\n"
+msgstr "cannot read GST record header\n"
+
+#: vms-alpha.c:6393
+#, c-format
+msgid " corrupted GST\n"
+msgstr " corrupted GST\n"
+
+#: vms-alpha.c:6401
+#, c-format
+msgid "cannot read GST record\n"
+msgstr "cannot read GST record\n"
+
+#: vms-alpha.c:6430
+#, c-format
+msgid " unhandled EOBJ record type %u\n"
+msgstr " tipe rekaman EOBJ tidak tertangani %u\n"
+
+#: vms-alpha.c:6453
+#, c-format
+msgid "  bitcount: %u, base addr: 0x%08x\n"
+msgstr "  bitcount: %u, base addr: 0x%08x\n"
+
+#: vms-alpha.c:6466
+#, c-format
+msgid "   bitmap: 0x%08x (count: %u):\n"
+msgstr "   bitmap: 0x%08x (count: %u):\n"
+
+#: vms-alpha.c:6473
+#, c-format
+msgid " %08x"
+msgstr " %08x"
+
+#: vms-alpha.c:6498
+#, c-format
+msgid "  image %u (%u entries)\n"
+msgstr "  image %u (%u entries)\n"
+
+#: vms-alpha.c:6503
+#, c-format
+msgid "   offset: 0x%08x, val: 0x%08x\n"
+msgstr "   offset: 0x%08x, val: 0x%08x\n"
+
+#: vms-alpha.c:6524
+#, c-format
+msgid "  image %u (%u entries), offsets:\n"
+msgstr "  image %u (%u entries), offsets:\n"
+
+#: vms-alpha.c:6531
+#, c-format
+msgid " 0x%08x"
+msgstr " 0x%08x"
+
+#. 64 bits.
+#: vms-alpha.c:6653
+#, c-format
+msgid "64 bits *unhandled*\n"
+msgstr "64 bits *unhandled*\n"
+
+#: vms-alpha.c:6657
+#, c-format
+msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
+msgstr "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
+
+#: vms-alpha.c:6668
+#, c-format
+msgid "non-contiguous array of %s\n"
+msgstr "non-contiguous array of %s\n"
+
+#: vms-alpha.c:6672
+#, c-format
+msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"
+msgstr "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"
+
+#: vms-alpha.c:6676
+#, c-format
+msgid "arsize: %u, a0: 0x%08x\n"
+msgstr "arsize: %u, a0: 0x%08x\n"
+
+#: vms-alpha.c:6680
+#, c-format
+msgid "Strides:\n"
+msgstr "Strides:\n"
+
+#: vms-alpha.c:6685
+#, c-format
+msgid "[%u]: %u\n"
+msgstr "[%u]: %u\n"
+
+#: vms-alpha.c:6690
+#, c-format
+msgid "Bounds:\n"
+msgstr "Bounds:\n"
+
+#: vms-alpha.c:6695
+#, c-format
+msgid "[%u]: Lower: %u, upper: %u\n"
+msgstr "[%u]: Lower: %u, upper: %u\n"
+
+#: vms-alpha.c:6707
+#, c-format
+msgid "unaligned bit-string of %s\n"
+msgstr "unaligned bit-string of %s\n"
+
+#: vms-alpha.c:6711
+#, c-format
+msgid "base: %u, pos: %u\n"
+msgstr "base: %u, pos: %u\n"
+
+#: vms-alpha.c:6731
+#, c-format
+msgid "vflags: 0x%02x, value: 0x%08x "
+msgstr "vflags: 0x%02x, value: 0x%08x "
+
+#: vms-alpha.c:6737
+#, c-format
+msgid "(no value)\n"
+msgstr "(tidak ada nilai)\n"
+
+#: vms-alpha.c:6740
+#, c-format
+msgid "(not active)\n"
+msgstr "(not active)\n"
+
+#: vms-alpha.c:6743
+#, c-format
+msgid "(not allocated)\n"
+msgstr "(not allocated)\n"
+
+#: vms-alpha.c:6746
+#, c-format
+msgid "(descriptor)\n"
+msgstr "(descriptor)\n"
+
+#: vms-alpha.c:6750
+#, c-format
+msgid "(trailing value)\n"
+msgstr "(trailing value)\n"
+
+#: vms-alpha.c:6753
+#, c-format
+msgid "(value spec follows)\n"
+msgstr "(value spec follows)\n"
+
+#: vms-alpha.c:6756
+#, c-format
+msgid "(at bit offset %u)\n"
+msgstr "(at bit offset %u)\n"
+
+#: vms-alpha.c:6759
+#, c-format
+msgid "(reg: %u, disp: %u, indir: %u, kind: "
+msgstr "(reg: %u, disp: %u, indir: %u, kind: "
+
+#: vms-alpha.c:6766
+msgid "literal"
+msgstr "literal"
+
+#: vms-alpha.c:6769
+msgid "address"
+msgstr "alamat"
+
+#: vms-alpha.c:6772
+msgid "desc"
+msgstr "desc"
+
+#: vms-alpha.c:6775
+msgid "reg"
+msgstr "reg"
+
+#: vms-alpha.c:6850
+#, c-format
+msgid "Debug symbol table:\n"
+msgstr "Simbol tabel penelusuran:\n"
+
+#: vms-alpha.c:6861
+#, c-format
+msgid "cannot read DST header\n"
+msgstr "cannot read DST header\n"
+
+#: vms-alpha.c:6866
+#, c-format
+msgid " type: %3u, len: %3u (at 0x%08x): "
+msgstr " type: %3u, len: %3u (at 0x%08x): "
+
+#: vms-alpha.c:6880
+#, c-format
+msgid "cannot read DST symbol\n"
+msgstr "tidak dapat membaca DST simbol\n"
+
+#: vms-alpha.c:6923
+#, c-format
+msgid "standard data: %s\n"
+msgstr "standard data: %s\n"
+
+#: vms-alpha.c:6926 vms-alpha.c:7010
+#, c-format
+msgid "    name: %.*s\n"
+msgstr "    nama: %.*s\n"
+
+#: vms-alpha.c:6933
+#, c-format
+msgid "modbeg\n"
+msgstr "modbeg\n"
+
+#: vms-alpha.c:6934
+#, c-format
+msgid "   flags: %d, language: %u, major: %u, minor: %u\n"
+msgstr "   flags: %d, language: %u, major: %u, minor: %u\n"
+
+#: vms-alpha.c:6940 vms-alpha.c:7206
+#, c-format
+msgid "   module name: %.*s\n"
+msgstr "   module name: %.*s\n"
+
+#: vms-alpha.c:6943
+#, c-format
+msgid "   compiler   : %.*s\n"
+msgstr "   compiler   : %.*s\n"
+
+#: vms-alpha.c:6948
+#, c-format
+msgid "modend\n"
+msgstr "modend\n"
+
+#: vms-alpha.c:6955
+msgid "rtnbeg\n"
+msgstr "rtnbeg\n"
+
+#: vms-alpha.c:6956
+#, c-format
+msgid "    flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
+msgstr "    flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
+
+#: vms-alpha.c:6961
+#, c-format
+msgid "    routine name: %.*s\n"
+msgstr "    routine name: %.*s\n"
+
+#: vms-alpha.c:6969
+#, c-format
+msgid "rtnend: size 0x%08x\n"
+msgstr "rtnend: size 0x%08x\n"
+
+#: vms-alpha.c:6977
+#, c-format
+msgid "prolog: bkpt address 0x%08x\n"
+msgstr "prolog: bkpt address 0x%08x\n"
+
+#: vms-alpha.c:6985
+#, c-format
+msgid "epilog: flags: %u, count: %u\n"
+msgstr "epilog: flags: %u, count: %u\n"
+
+#: vms-alpha.c:6994
+#, c-format
+msgid "blkbeg: address: 0x%08x, name: %.*s\n"
+msgstr "blkbeg: address: 0x%08x, name: %.*s\n"
+
+#: vms-alpha.c:7003
+#, c-format
+msgid "blkend: size: 0x%08x\n"
+msgstr "blkend: ukuran: 0x%08x\n"
+
+#: vms-alpha.c:7009
+#, c-format
+msgid "typspec (len: %u)\n"
+msgstr "typspec (len: %u)\n"
+
+#: vms-alpha.c:7016
+#, c-format
+msgid "septyp, name: %.*s\n"
+msgstr "septyp, name: %.*s\n"
+
+#: vms-alpha.c:7025
+#, c-format
+msgid "recbeg: name: %.*s\n"
+msgstr "recbeg: name: %.*s\n"
+
+#: vms-alpha.c:7032
+#, c-format
+msgid "recend\n"
+msgstr "recend\n"
+
+#: vms-alpha.c:7035
+#, c-format
+msgid "enumbeg, len: %u, name: %.*s\n"
+msgstr "enumbeg, len: %u, name: %.*s\n"
+
+#: vms-alpha.c:7039
+#, c-format
+msgid "enumelt, name: %.*s\n"
+msgstr "enumelt, name: %.*s\n"
+
+#: vms-alpha.c:7043
+#, c-format
+msgid "enumend\n"
+msgstr "enumend\n"
+
+#: vms-alpha.c:7060
+#, c-format
+msgid "discontiguous range (nbr: %u)\n"
+msgstr "discontiguous range (nbr: %u)\n"
+
+#: vms-alpha.c:7062
+#, c-format
+msgid "    address: 0x%08x, size: %u\n"
+msgstr "    address: 0x%08x, size: %u\n"
+
+#: vms-alpha.c:7072
+#, c-format
+msgid "line num  (len: %u)\n"
+msgstr "line num  (len: %u)\n"
+
+#: vms-alpha.c:7089
+#, c-format
+msgid "delta_pc_w %u\n"
+msgstr "delta_pc_w %u\n"
+
+#: vms-alpha.c:7096
+#, c-format
+msgid "incr_linum(b): +%u\n"
+msgstr "incr_linum(b): +%u\n"
+
+#: vms-alpha.c:7102
+#, c-format
+msgid "incr_linum_w: +%u\n"
+msgstr "incr_linum_w: +%u\n"
+
+#: vms-alpha.c:7108
+#, c-format
+msgid "incr_linum_l: +%u\n"
+msgstr "incr_linum_l: +%u\n"
+
+#: vms-alpha.c:7114
+#, c-format
+msgid "set_line_num(w) %u\n"
+msgstr "set_line_num(w) %u\n"
+
+#: vms-alpha.c:7119
+#, c-format
+msgid "set_line_num_b %u\n"
+msgstr "set_line_num_b %u\n"
+
+#: vms-alpha.c:7124
+#, c-format
+msgid "set_line_num_l %u\n"
+msgstr "set_line_num_l %u\n"
+
+#: vms-alpha.c:7129
+#, c-format
+msgid "set_abs_pc: 0x%08x\n"
+msgstr "set_abs_pc: 0x%08x\n"
+
+#: vms-alpha.c:7133
+#, c-format
+msgid "delta_pc_l: +0x%08x\n"
+msgstr "delta_pc_l: +0x%08x\n"
+
+#: vms-alpha.c:7138
+#, c-format
+msgid "term(b): 0x%02x"
+msgstr "term(b): 0x%02x"
+
+#: vms-alpha.c:7140
+#, c-format
+msgid "        pc: 0x%08x\n"
+msgstr "program counter: 0x%08x\n"
+
+#: vms-alpha.c:7145
+#, c-format
+msgid "term_w: 0x%04x"
+msgstr "term_w: 0x%04x"
+
+#: vms-alpha.c:7147
+#, c-format
+msgid "    pc: 0x%08x\n"
+msgstr "program counter: 0x%08x\n"
+
+#: vms-alpha.c:7153
+#, c-format
+msgid "delta pc +%-4d"
+msgstr "delta pc +%-4d"
+
+#: vms-alpha.c:7156
+#, c-format
+msgid "    pc: 0x%08x line: %5u\n"
+msgstr "    pc: 0x%08x line: %5u\n"
+
+#: vms-alpha.c:7161
+#, c-format
+msgid "    *unhandled* cmd %u\n"
+msgstr "    *unhandled* cmd %u\n"
+
+#: vms-alpha.c:7176
+#, c-format
+msgid "source (len: %u)\n"
+msgstr "source (len: %u)\n"
+
+#: vms-alpha.c:7190
+#, c-format
+msgid "   declfile: len: %u, flags: %u, fileid: %u\n"
+msgstr "   declfile: len: %u, flags: %u, fileid: %u\n"
+
+#: vms-alpha.c:7194
+#, c-format
+msgid "   rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
+msgstr "   rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
+
+#: vms-alpha.c:7203
+#, c-format
+msgid "   filename   : %.*s\n"
+msgstr "   filename   : %.*s\n"
+
+#: vms-alpha.c:7212
+#, c-format
+msgid "   setfile %u\n"
+msgstr "   setfile %u\n"
+
+#: vms-alpha.c:7217 vms-alpha.c:7222
+#, c-format
+msgid "   setrec %u\n"
+msgstr "   setrec %u\n"
+
+#: vms-alpha.c:7227 vms-alpha.c:7232
+#, c-format
+msgid "   setlnum %u\n"
+msgstr "   setlnum %u\n"
+
+#: vms-alpha.c:7237 vms-alpha.c:7242
+#, c-format
+msgid "   deflines %u\n"
+msgstr "   deflines %u\n"
+
+#: vms-alpha.c:7246
+#, c-format
+msgid "   formfeed\n"
+msgstr "   formfeed\n"
 
-#: vms-misc.c:603
-msgid "Stack underflow in _bfd_vms_pop"
-msgstr "Stack underflow dalam _bfd_vms_pop"
+#: vms-alpha.c:7250
+#, c-format
+msgid "   *unhandled* cmd %u\n"
+msgstr "   *unhandled* cmd %u\n"
 
-#: vms-misc.c:844
-msgid "_bfd_vms_output_counted called with zero bytes"
-msgstr "_bfd_vms_output_counted dipanggil dengan zero bytes"
+#: vms-alpha.c:7262
+#, c-format
+msgid "*unhandled* dst type %u\n"
+msgstr "*tidak tertangani* tipe dst %u\n"
 
-#: vms-misc.c:849
-msgid "_bfd_vms_output_counted called with too many bytes"
-msgstr "_bfd_vms_output_counted dipanggil dengan terlalu banyak bytes"
+#: vms-alpha.c:7294
+#, c-format
+msgid "cannot read EIHD\n"
+msgstr "cannot read EIHD\n"
 
-#: vms-misc.c:967
+#: vms-alpha.c:7297
 #, c-format
-msgid "Symbol %s replaced by %s\n"
-msgstr "Simbol %s digantikan oleh %s\n"
+msgid "EIHD: (size: %u, nbr blocks: %u)\n"
+msgstr "EIHD: (size: %u, nbr blocks: %u)\n"
 
-#: vms-misc.c:1026
+#: vms-alpha.c:7300
 #, c-format
-msgid "failed to enter %s"
-msgstr "gagal untuk memasuki %s"
+msgid " majorid: %u, minorid: %u\n"
+msgstr " majorid: %u, minorid: %u\n"
 
-#: vms-tir.c:83
-msgid "No Mem !"
-msgstr "Tidak ada Memori !"
+#: vms-alpha.c:7308
+msgid "executable"
+msgstr "executable"
 
-#. These names have not yet been added to this switch statement.
-#: vms-tir.c:346
+#: vms-alpha.c:7311
+msgid "linkable image"
+msgstr "linkable image"
+
+#: vms-alpha.c:7317
 #, c-format
-msgid "unknown ETIR command %d"
-msgstr "perintah ETIR %d tidak diketahui"
+msgid " image type: %u (%s)"
+msgstr " tipe gambar: %u (%s)"
 
-#: vms-tir.c:440
+#: vms-alpha.c:7323
+msgid "native"
+msgstr "native"
+
+#: vms-alpha.c:7326
+msgid "CLI"
+msgstr "CLI"
+
+#: vms-alpha.c:7332
 #, c-format
-msgid "bad section index in %s"
-msgstr "Indek daerah buruk dalam %s"
+msgid ", subtype: %u (%s)\n"
+msgstr ", subtipe: %u (%s)\n"
 
-#: vms-tir.c:459
+#: vms-alpha.c:7338
 #, c-format
-msgid "unsupported STA cmd %s"
-msgstr "perintah %s STA tidak didukung"
+msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
+msgstr " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
 
-#: vms-tir.c:464 vms-tir.c:1304
+#: vms-alpha.c:7342
 #, c-format
-msgid "reserved STA cmd %d"
-msgstr "perintah %d STA direserve"
+msgid " fixup info rva: "
+msgstr " fixup info rva: "
 
-#. Unsigned shift.
-#. Rotate.
-#. Redefine symbol to current location.
-#. Define a literal.
-#: vms-tir.c:655 vms-tir.c:774 vms-tir.c:894 vms-tir.c:1624
+#: vms-alpha.c:7344
 #, c-format
-msgid "%s: not supported"
-msgstr "%s: tidak didukung"
+msgid ", symbol vector rva: "
+msgstr ", symbol vector rva: "
 
-#: vms-tir.c:661 vms-tir.c:1481
+#: vms-alpha.c:7347
 #, c-format
-msgid "%s: not implemented"
-msgstr "%s: tidak terimplementasi"
+msgid ""
+"\n"
+" version array off: %u\n"
+msgstr ""
+"\n"
+" version array off: %u\n"
 
-#: vms-tir.c:666 vms-tir.c:1485
+#: vms-alpha.c:7351
 #, c-format
-msgid "reserved STO cmd %d"
-msgstr "reserved STO perintah %d"
+msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
+msgstr " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
 
-#: vms-tir.c:789 vms-tir.c:1629
+#: vms-alpha.c:7357
 #, c-format
-msgid "reserved OPR cmd %d"
-msgstr "reserved OPR perintah %d"
+msgid " linker flags: %08x:"
+msgstr " tanda penyambung: %08x;"
 
-#: vms-tir.c:852 vms-tir.c:1693
+#: vms-alpha.c:7387
 #, c-format
-msgid "reserved CTL cmd %d"
-msgstr "reserved CTL perintah %d"
+msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
+msgstr " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
 
-#: vms-tir.c:966
+#: vms-alpha.c:7393
 #, c-format
-msgid "reserved STC cmd %d"
-msgstr "perintah %d direserve"
+msgid " BPAGE: %u"
+msgstr " BPAGE: %u"
 
-#. stack byte from image
-#. arg: none.
-#: vms-tir.c:1212
-msgid "stack-from-image not implemented"
-msgstr "stack-from-image tidak terimplementasi"
-
-#: vms-tir.c:1230
-msgid "stack-entry-mask not fully implemented"
-msgstr "stack-entry-mask tidak terimplementasi secara penuh"
-
-#. compare procedure argument
-#. arg: cs	symbol name
-#. by	argument index
-#. da	argument descriptor
-#.
-#. compare argument descriptor with symbol argument (ARG$V_PASSMECH)
-#. and stack TRUE (args match) or FALSE (args dont match) value.
-#: vms-tir.c:1244
-msgid "PASSMECH not fully implemented"
-msgstr "PASSMECH tidak terimplementasi secara penuh"
-
-#: vms-tir.c:1263
-msgid "stack-local-symbol not fully implemented"
-msgstr "stack-local-symbol tidak terimplementasi secara penuh"
-
-#: vms-tir.c:1276
-msgid "stack-literal not fully implemented"
-msgstr "stack-literal tidak terimplementasi secara penuh"
-
-#: vms-tir.c:1297
-msgid "stack-local-symbol-entry-point-mask not fully implemented"
-msgstr "stack-local-symbol-entry-point-mask tidak terimplementasi secara penuh"
-
-#: vms-tir.c:1571 vms-tir.c:1583 vms-tir.c:1595 vms-tir.c:1607 vms-tir.c:1672
-#: vms-tir.c:1680 vms-tir.c:1688
-#, c-format
-msgid "%s: not fully implemented"
-msgstr "%s: tidak terimplementasi secara penuh"
-
-#: vms-tir.c:1746
-#, c-format
-msgid "obj code %d not found"
-msgstr "obj kode %d tidak ditemukan"
+#: vms-alpha.c:7399
+#, c-format
+msgid ", ext fixup offset: %u, no_opt psect off: %u"
+msgstr ", ext fixup offset: %u, no_opt psect off: %u"
 
-#: vms-tir.c:2019
+#: vms-alpha.c:7402
 #, c-format
-msgid "Reloc size error in section %s"
-msgstr "Kesalahan ukuran relokasi dalam daerah %s"
+msgid ", alias: %u\n"
+msgstr ", alias: %u\n"
 
-#: vms-tir.c:2112 vms-tir.c:2129 vms-tir.c:2147 vms-tir.c:2159 vms-tir.c:2170
-#: vms-tir.c:2182
+#: vms-alpha.c:7410
 #, c-format
-msgid "Unknown reloc %s + %s"
-msgstr "Relokasi %s + %s tidak diketahui"
+msgid "system version array information:\n"
+msgstr "system version array information:\n"
 
-#: vms-tir.c:2249
+#: vms-alpha.c:7414
 #, c-format
-msgid "Unknown symbol %s in command %s"
-msgstr "Simbol %s tidak diketahui dalam perintah %s"
+msgid "cannot read EIHVN header\n"
+msgstr "cannot read EIHVN header\n"
 
-#: vms-tir.c:2504
+#: vms-alpha.c:7424
 #, c-format
-msgid "SEC_RELOC with no relocs in section %s"
-msgstr "SEC_RELOC dengan tidak ada relokasi dalam daerah %s"
+msgid "cannot read EIHVN version\n"
+msgstr "cannot read EIHVN version\n"
 
-#: vms-tir.c:2556 vms-tir.c:2783
+#: vms-alpha.c:7427
 #, c-format
-msgid "Size error in section %s"
-msgstr "Kesalahan ukuran dalam daerah %s"
+msgid "   %02u "
+msgstr "   %02u "
 
-#: vms-tir.c:2725
-msgid "Spurious ALPHA_R_BSR reloc"
-msgstr "Spurious ALPHA_R_BSR relokasi"
+#: vms-alpha.c:7431
+msgid "BASE_IMAGE       "
+msgstr "BASE_IMAGE       "
+
+#: vms-alpha.c:7434
+msgid "MEMORY_MANAGEMENT"
+msgstr "MEMORY_MANAGEMENT"
+
+#: vms-alpha.c:7437
+msgid "IO               "
+msgstr "IO               "
+
+#: vms-alpha.c:7440
+msgid "FILES_VOLUMES    "
+msgstr "FILES_VOLUMES    "
+
+#: vms-alpha.c:7443
+msgid "PROCESS_SCHED    "
+msgstr "PROCESS_SCHED    "
+
+#: vms-alpha.c:7446
+msgid "SYSGEN           "
+msgstr "SYSGEN           "
+
+#: vms-alpha.c:7449
+msgid "CLUSTERS_LOCKMGR "
+msgstr "CLUSTERS_LOCKMGR "
+
+#: vms-alpha.c:7452
+msgid "LOGICAL_NAMES    "
+msgstr "LOGICAL_NAMES    "
+
+#: vms-alpha.c:7455
+msgid "SECURITY         "
+msgstr "SECURITY         "
+
+#: vms-alpha.c:7458
+msgid "IMAGE_ACTIVATOR  "
+msgstr "IMAGE_ACTIVATOR  "
+
+#: vms-alpha.c:7461
+msgid "NETWORKS         "
+msgstr "NETWORKS         "
+
+#: vms-alpha.c:7464
+msgid "COUNTERS         "
+msgstr "COUNTERS         "
+
+#: vms-alpha.c:7467
+msgid "STABLE           "
+msgstr "STABLE           "
+
+#: vms-alpha.c:7470
+msgid "MISC             "
+msgstr "MISC             "
+
+#: vms-alpha.c:7473
+msgid "CPU              "
+msgstr "CPU              "
+
+#: vms-alpha.c:7476
+msgid "VOLATILE         "
+msgstr "VOLATILE         "
+
+#: vms-alpha.c:7479
+msgid "SHELL            "
+msgstr "SHELL            "
+
+#: vms-alpha.c:7482
+msgid "POSIX            "
+msgstr "POSIX            "
+
+#: vms-alpha.c:7485
+msgid "MULTI_PROCESSING "
+msgstr "MULTI_PROCESSING "
+
+#: vms-alpha.c:7488
+msgid "GALAXY           "
+msgstr "GALAXY           "
+
+#: vms-alpha.c:7491
+msgid "*unknown*        "
+msgstr "*tidak diketahui*       "
 
-#: vms-tir.c:2770
+#: vms-alpha.c:7494
 #, c-format
-msgid "Unhandled relocation %s"
-msgstr "Relokasi %s tidak tertangani"
+msgid ": %u.%u\n"
+msgstr ": %u.%u\n"
+
+#: vms-alpha.c:7507 vms-alpha.c:7766
+#, c-format
+msgid "cannot read EIHA\n"
+msgstr "cannot read EIHA\n"
+
+#: vms-alpha.c:7510
+#, c-format
+msgid "Image activation:  (size=%u)\n"
+msgstr "Image activation:  (size=%u)\n"
+
+#: vms-alpha.c:7512
+#, c-format
+msgid " First address : 0x%08x 0x%08x\n"
+msgstr " First address : 0x%08x 0x%08x\n"
+
+#: vms-alpha.c:7515
+#, c-format
+msgid " Second address: 0x%08x 0x%08x\n"
+msgstr " Second address: 0x%08x 0x%08x\n"
+
+#: vms-alpha.c:7518
+#, c-format
+msgid " Third address : 0x%08x 0x%08x\n"
+msgstr " Third address : 0x%08x 0x%08x\n"
+
+#: vms-alpha.c:7521
+#, c-format
+msgid " Fourth address: 0x%08x 0x%08x\n"
+msgstr " Fourth address: 0x%08x 0x%08x\n"
+
+#: vms-alpha.c:7524
+#, c-format
+msgid " Shared image  : 0x%08x 0x%08x\n"
+msgstr " Shared image  : 0x%08x 0x%08x\n"
+
+#: vms-alpha.c:7535
+#, c-format
+msgid "cannot read EIHI\n"
+msgstr "cannot read EIHI\n"
+
+#: vms-alpha.c:7538
+#, c-format
+msgid "Image identification: (major: %u, minor: %u)\n"
+msgstr "Image identification: (major: %u, minor: %u)\n"
+
+#: vms-alpha.c:7541
+#, c-format
+msgid " image name       : %.*s\n"
+msgstr " nama program     : %.*s\n"
+
+#: vms-alpha.c:7543
+#, c-format
+msgid " link time        : %s\n"
+msgstr " waktu penyambungan: %s\n"
+
+#: vms-alpha.c:7545
+#, c-format
+msgid " image ident      : %.*s\n"
+msgstr " identitas program: %.*s\n"
+
+#: vms-alpha.c:7547
+#, c-format
+msgid " linker ident     : %.*s\n"
+msgstr " linker ident     : %.*s\n"
+
+#: vms-alpha.c:7549
+#, c-format
+msgid " image build ident: %.*s\n"
+msgstr " image build ident: %.*s\n"
+
+#: vms-alpha.c:7559
+#, c-format
+msgid "cannot read EIHS\n"
+msgstr "cannot read EIHS\n"
+
+#: vms-alpha.c:7562
+#, c-format
+msgid "Image symbol & debug table: (major: %u, minor: %u)\n"
+msgstr "Image symbol & debug table: (major: %u, minor: %u)\n"
+
+#: vms-alpha.c:7567
+#, c-format
+msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n"
+msgstr " debug symbol table : vbn: %u, size: %u (0x%x)\n"
+
+#: vms-alpha.c:7571
+#, c-format
+msgid " global symbol table: vbn: %u, records: %u\n"
+msgstr " global symbol table: vbn: %u, records: %u\n"
+
+#: vms-alpha.c:7575
+#, c-format
+msgid " debug module table : vbn: %u, size: %u\n"
+msgstr " debug module table : vbn: %u, size: %u\n"
+
+#: vms-alpha.c:7588
+#, c-format
+msgid "cannot read EISD\n"
+msgstr "cannot read EISD\n"
+
+#: vms-alpha.c:7598
+#, c-format
+msgid "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n"
+msgstr "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n"
+
+#: vms-alpha.c:7605
+#, c-format
+msgid " section: base: 0x%08x%08x size: 0x%08x\n"
+msgstr " section: base: 0x%08x%08x size: 0x%08x\n"
+
+#: vms-alpha.c:7610
+#, c-format
+msgid " flags: 0x%04x"
+msgstr " tanda: 0x%04x"
+
+#: vms-alpha.c:7647
+#, c-format
+msgid " vbn: %u, pfc: %u, matchctl: %u type: %u ("
+msgstr " vbn: %u, pfc: %u, matchctl: %u type: %u ("
+
+#: vms-alpha.c:7653
+msgid "NORMAL"
+msgstr "NORMAL"
+
+#: vms-alpha.c:7656
+msgid "SHRFXD"
+msgstr "SHRFXD"
+
+#: vms-alpha.c:7659
+msgid "PRVFXD"
+msgstr "PRVFXD"
+
+#: vms-alpha.c:7662
+msgid "SHRPIC"
+msgstr "SHRPIC"
+
+#: vms-alpha.c:7665
+msgid "PRVPIC"
+msgstr "PRVPIC"
+
+#: vms-alpha.c:7668
+msgid "USRSTACK"
+msgstr "USRSTACK"
+
+#: vms-alpha.c:7676
+#, c-format
+msgid " ident: 0x%08x, name: %.*s\n"
+msgstr " ident: 0x%08x, name: %.*s\n"
+
+#: vms-alpha.c:7686
+#, c-format
+msgid "cannot read DMT\n"
+msgstr "cannot read DMT\n"
+
+#: vms-alpha.c:7690
+#, c-format
+msgid "Debug module table:\n"
+msgstr "Debug module table:\n"
+
+#: vms-alpha.c:7699
+#, c-format
+msgid "cannot read DMT header\n"
+msgstr "cannot read DMT header\n"
+
+#: vms-alpha.c:7704
+#, c-format
+msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
+msgstr " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
+
+#: vms-alpha.c:7714
+#, c-format
+msgid "cannot read DMT psect\n"
+msgstr "cannot read DMT psect\n"
+
+#: vms-alpha.c:7717
+#, c-format
+msgid "  psect start: 0x%08x, length: %u\n"
+msgstr "  psect start: 0x%08x, length: %u\n"
+
+#: vms-alpha.c:7730
+#, c-format
+msgid "cannot read DST\n"
+msgstr "cannot read DST\n"
+
+#: vms-alpha.c:7740
+#, c-format
+msgid "cannot read GST\n"
+msgstr "cannot read GST\n"
+
+#: vms-alpha.c:7744
+#, c-format
+msgid "Global symbol table:\n"
+msgstr "Simbol tabel global:\n"
+
+#: vms-alpha.c:7772
+#, c-format
+msgid "Image activator fixup: (major: %u, minor: %u)\n"
+msgstr "Image activator fixup: (major: %u, minor: %u)\n"
+
+#: vms-alpha.c:7775
+#, c-format
+msgid "  iaflink : 0x%08x %08x\n"
+msgstr "  iaflink : 0x%08x %08x\n"
+
+#: vms-alpha.c:7778
+#, c-format
+msgid "  fixuplnk: 0x%08x %08x\n"
+msgstr "  fixuplnk: 0x%08x %08x\n"
+
+#: vms-alpha.c:7781
+#, c-format
+msgid "  size : %u\n"
+msgstr "  size : %u\n"
+
+#: vms-alpha.c:7783
+#, c-format
+msgid "  flags: 0x%08x\n"
+msgstr "  tanda: 0x%08x\n"
+
+#: vms-alpha.c:7787
+#, c-format
+msgid "  qrelfixoff: %5u, lrelfixoff: %5u\n"
+msgstr "  qrelfixoff: %5u, lrelfixoff: %5u\n"
+
+#: vms-alpha.c:7791
+#, c-format
+msgid "  qdotadroff: %5u, ldotadroff: %5u\n"
+msgstr "  qdotadroff: %5u, ldotadroff: %5u\n"
+
+#: vms-alpha.c:7795
+#, c-format
+msgid "  codeadroff: %5u, lpfixoff  : %5u\n"
+msgstr "  codeadroff: %5u, lpfixoff  : %5u\n"
+
+#: vms-alpha.c:7798
+#, c-format
+msgid "  chgprtoff : %5u\n"
+msgstr "  chgprtoff : %5u\n"
+
+#: vms-alpha.c:7801
+#, c-format
+msgid "  shlstoff  : %5u, shrimgcnt : %5u\n"
+msgstr "  shlstoff  : %5u, shrimgcnt : %5u\n"
+
+#: vms-alpha.c:7803
+#, c-format
+msgid "  shlextra  : %5u, permctx   : %5u\n"
+msgstr "  shlextra  : %5u, permctx   : %5u\n"
+
+#: vms-alpha.c:7806
+#, c-format
+msgid "  base_va : 0x%08x\n"
+msgstr "  basis alamat : 0x%08x\n"
+
+#: vms-alpha.c:7808
+#, c-format
+msgid "  lppsbfixoff: %5u\n"
+msgstr "  lppsbfixoff: %5u\n"
+
+#: vms-alpha.c:7816
+#, c-format
+msgid " Shareable images:\n"
+msgstr " Shareable images:\n"
+
+#: vms-alpha.c:7820
+#, c-format
+msgid "  %u: size: %u, flags: 0x%02x, name: %.*s\n"
+msgstr "  %u: size: %u, flags: 0x%02x, name: %.*s\n"
+
+#: vms-alpha.c:7827
+#, c-format
+msgid " quad-word relocation fixups:\n"
+msgstr " relokasi empat-kata tidak dibenarkan:\n"
+
+#: vms-alpha.c:7832
+#, c-format
+msgid " long-word relocation fixups:\n"
+msgstr " long-word relocation fixups:\n"
+
+#: vms-alpha.c:7837
+#, c-format
+msgid " quad-word .address reference fixups:\n"
+msgstr " quad-word .address reference fixups:\n"
+
+#: vms-alpha.c:7842
+#, c-format
+msgid " long-word .address reference fixups:\n"
+msgstr " long-word .address reference fixups:\n"
+
+#: vms-alpha.c:7847
+#, c-format
+msgid " Code Address Reference Fixups:\n"
+msgstr " Kode Alamat Referensi Dibenarkan:\n"
+
+#: vms-alpha.c:7852
+#, c-format
+msgid " Linkage Pairs Referece Fixups:\n"
+msgstr " Linkage Pairs Referece Fixups:\n"
+
+#: vms-alpha.c:7861
+#, c-format
+msgid " Change Protection (%u entries):\n"
+msgstr " Change Protection (%u entries):\n"
+
+#: vms-alpha.c:7866
+#, c-format
+msgid "  base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "
+msgstr "  base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "
+
+#. FIXME: we do not yet support relocatable link.  It is not obvious
+#. how to do it for debug infos.
+#: vms-alpha.c:8706
+msgid "%P: relocatable link is not supported\n"
+msgstr "%P: link relokasi tidak didukung\n"
+
+#: vms-alpha.c:8776
+msgid "%P: multiple entry points: in modules %B and %B\n"
+msgstr "%P: multiple entry points: in modules %B and %B\n"
+
+#: vms-lib.c:1423
+#, c-format
+msgid "could not open shared image '%s' from '%s'"
+msgstr "could not open shared image '%s' from '%s'"
+
+#: vms-misc.c:360
+msgid "_bfd_vms_output_counted called with zero bytes"
+msgstr "_bfd_vms_output_counted dipanggil dengan zero bytes"
+
+#: vms-misc.c:365
+msgid "_bfd_vms_output_counted called with too many bytes"
+msgstr "_bfd_vms_output_counted dipanggil dengan terlalu banyak bytes"
 
 #: xcofflink.c:836
 #, c-format
@@ -3623,213 +5727,213 @@ msgstr "%s: XCOFF objek shared ketika ti
 msgid "%s: dynamic object with no .loader section"
 msgstr "%s: objek dinamis dengan tidak ada daerah .loader"
 
-#: xcofflink.c:1415
+#: xcofflink.c:1416
 msgid "%B: `%s' has line numbers but no enclosing section"
 msgstr "%B: `%s' memiliki nomor baris tetapi tidak ditutupi daerah"
 
-#: xcofflink.c:1467
+#: xcofflink.c:1468
 msgid "%B: class %d symbol `%s' has no aux entries"
 msgstr "%B: kelas %d simbol `%s' tidak memiliki tambahan masukan"
 
-#: xcofflink.c:1489
+#: xcofflink.c:1490
 msgid "%B: symbol `%s' has unrecognized csect type %d"
 msgstr "%B: simbol `%s' memiliki tipe %d csect tidak dikenal"
 
-#: xcofflink.c:1501
+#: xcofflink.c:1502
 msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d"
 msgstr "%B: simbol XTY_ER buruk `%s': kelas %d scnum %d scnlen %d"
 
-#: xcofflink.c:1530
+#: xcofflink.c:1531
 msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %d"
 msgstr "%B: XMC_TC0 simbol `%s' adalah kelas %d scnlen %d"
 
-#: xcofflink.c:1676
+#: xcofflink.c:1677
 msgid "%B: csect `%s' not in enclosing section"
 msgstr "%B: csect `%s' tidak dalam lingkup daerah"
 
-#: xcofflink.c:1783
+#: xcofflink.c:1784
 msgid "%B: misplaced XTY_LD `%s'"
 msgstr "%B: salah tempat XTY_LD `%s'"
 
-#: xcofflink.c:2102
+#: xcofflink.c:2103
 msgid "%B: reloc %s:%d not in csect"
 msgstr "%B: relokasi %s:%d tidak dalam csect"
 
-#: xcofflink.c:3177
+#: xcofflink.c:3194
 #, c-format
 msgid "%s: no such symbol"
 msgstr "%s: tidak ada simbol seperti itu"
 
-#: xcofflink.c:3282
+#: xcofflink.c:3299
 #, c-format
 msgid "warning: attempt to export undefined symbol `%s'"
 msgstr "peringatan: mencoba untuk mengekspor simbol tidak terdefinisi `%s'"
 
-#: xcofflink.c:3664
+#: xcofflink.c:3678
 msgid "error: undefined symbol __rtinit"
 msgstr "error: simbol tidak terdefinisi __rtinit"
 
-#: xcofflink.c:4041
+#: xcofflink.c:4057
 msgid "%B: loader reloc in unrecognized section `%s'"
 msgstr "%B: loader relokasi dalam daerah tidak dikenal `%s'"
 
-#: xcofflink.c:4052
+#: xcofflink.c:4068
 msgid "%B: `%s' in loader reloc but not loader sym"
 msgstr "%B: `%s' dalam relokasi loader tetapi bukan loader sym"
 
-#: xcofflink.c:4068
+#: xcofflink.c:4084
 msgid "%B: loader reloc in read-only section %A"
 msgstr "%B: loader relokasi dalam daerah baca-saja %A"
 
-#: xcofflink.c:5086
+#: xcofflink.c:5106
 #, c-format
 msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"
 msgstr "TOC overflow: 0x%lx > 0x10000; coba -mminimal-toc ketika mengkompile"
 
-#: elf32-ia64.c:1050 elf64-ia64.c:1050
+#: elf32-ia64.c:628 elf64-ia64.c:628
 msgid "%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch."
 msgstr "%B: Tidak dapat relaks br di 0x%lx dalam daerah `%A'. Tolong gunakan brl atau indirect branch."
 
-#: elf32-ia64.c:2739 elf64-ia64.c:2739
+#: elf32-ia64.c:2284 elf64-ia64.c:2284
 msgid "@pltoff reloc against local symbol"
 msgstr "@pltoff relokasi terhadap simbol lokal"
 
-#: elf32-ia64.c:4314 elf64-ia64.c:4314
+#: elf32-ia64.c:3687 elf64-ia64.c:3687
 #, c-format
 msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
 msgstr "%s: short data segment overflowed (0x%lx >= 0x400000)"
 
-#: elf32-ia64.c:4325 elf64-ia64.c:4325
+#: elf32-ia64.c:3698 elf64-ia64.c:3698
 #, c-format
 msgid "%s: __gp does not cover short data segment"
 msgstr "%s: __gp tidak meliputi segmen data pendek"
 
-#: elf32-ia64.c:4595 elf64-ia64.c:4595
+#: elf32-ia64.c:3965 elf64-ia64.c:3965
 msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'"
 msgstr "%B: bukan-pic kode dengan relokasi imm terhadap simbol dinamis `%s'"
 
-#: elf32-ia64.c:4662 elf64-ia64.c:4662
+#: elf32-ia64.c:4032 elf64-ia64.c:4032
 msgid "%B: @gprel relocation against dynamic symbol %s"
 msgstr "%B: @gprel relokasi terhadap simbol dinamis %s"
 
-#: elf32-ia64.c:4725 elf64-ia64.c:4725
+#: elf32-ia64.c:4095 elf64-ia64.c:4095
 msgid "%B: linking non-pic code in a position independent executable"
 msgstr "%B: menghubungkan dengan kode bukan-pic dalam sebuah executable bebas posisi"
 
-#: elf32-ia64.c:4862 elf64-ia64.c:4862
+#: elf32-ia64.c:4232 elf64-ia64.c:4232
 msgid "%B: @internal branch to dynamic symbol %s"
 msgstr "%B: @internal branck ke simbol dinamis %s"
 
-#: elf32-ia64.c:4864 elf64-ia64.c:4864
+#: elf32-ia64.c:4234 elf64-ia64.c:4234
 msgid "%B: speculation fixup to dynamic symbol %s"
 msgstr "%B: spekulasi fixup ke simbol dinamis %s"
 
-#: elf32-ia64.c:4866 elf64-ia64.c:4866
+#: elf32-ia64.c:4236 elf64-ia64.c:4236
 msgid "%B: @pcrel relocation against dynamic symbol %s"
 msgstr "%B: @pcrel relokasi terhadap simbol dinamis %s"
 
-#: elf32-ia64.c:5063 elf64-ia64.c:5063
+#: elf32-ia64.c:4433 elf64-ia64.c:4433
 msgid "unsupported reloc"
 msgstr "relokasi tidak didukung"
 
-#: elf32-ia64.c:5101 elf64-ia64.c:5101
+#: elf32-ia64.c:4471 elf64-ia64.c:4471
 msgid "%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'."
 msgstr "%B: hilang daerah TLS untuk relokasi %s terhadap `%s' di 0x%lx dalam daerah `%A'."
 
-#: elf32-ia64.c:5116 elf64-ia64.c:5116
+#: elf32-ia64.c:4486 elf64-ia64.c:4486
 msgid "%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000)."
 msgstr "%B: Tidak dapat relaks br (%s) ke `%s' di 0x%lx dalam daerah `%A' dengan ukuran 0x%lx (> 0x1000000)."
 
-#: elf32-ia64.c:5372 elf64-ia64.c:5372
+#: elf32-ia64.c:4748 elf64-ia64.c:4748
 msgid "%B: linking trap-on-NULL-dereference with non-trapping files"
 msgstr "%B: menghubungkan trap-on-NULL-dereference dengan berkas bukan-trapping"
 
-#: elf32-ia64.c:5381 elf64-ia64.c:5381
+#: elf32-ia64.c:4757 elf64-ia64.c:4757
 msgid "%B: linking big-endian files with little-endian files"
 msgstr "%B: menghubungkan berkas big-endian dengan berkas little-endian"
 
-#: elf32-ia64.c:5390 elf64-ia64.c:5390
+#: elf32-ia64.c:4766 elf64-ia64.c:4766
 msgid "%B: linking 64-bit files with 32-bit files"
 msgstr "%B: menghubungkan berkas 64-bit dengan berkas 32-bit"
 
-#: elf32-ia64.c:5399 elf64-ia64.c:5399
+#: elf32-ia64.c:4775 elf64-ia64.c:4775
 msgid "%B: linking constant-gp files with non-constant-gp files"
 msgstr "%B: menghubungkan berkas constant-gp dengan berkas bukan-constant-gp"
 
-#: elf32-ia64.c:5409 elf64-ia64.c:5409
+#: elf32-ia64.c:4785 elf64-ia64.c:4785
 msgid "%B: linking auto-pic files with non-auto-pic files"
 msgstr "%B: menghubungkan berkas auto-pic dengan berkas non-auto-pic"
 
-#: peigen.c:999 pepigen.c:999 pex64igen.c:999
+#: peigen.c:1002 pepigen.c:1002 pex64igen.c:1002
 #, c-format
 msgid "%s: line number overflow: 0x%lx > 0xffff"
 msgstr "%s: nomor baris overflow: 0x%lx > 0xffff"
 
-#: peigen.c:1026 pepigen.c:1026 pex64igen.c:1026
+#: peigen.c:1029 pepigen.c:1029 pex64igen.c:1029
 msgid "Export Directory [.edata (or where ever we found it)]"
 msgstr "Direktori expor [.edata (atau dimanapun kita menemukannya)]"
 
-#: peigen.c:1027 pepigen.c:1027 pex64igen.c:1027
+#: peigen.c:1030 pepigen.c:1030 pex64igen.c:1030
 msgid "Import Directory [parts of .idata]"
 msgstr "Impor Direktori [bagian dari .idata]"
 
-#: peigen.c:1028 pepigen.c:1028 pex64igen.c:1028
+#: peigen.c:1031 pepigen.c:1031 pex64igen.c:1031
 msgid "Resource Directory [.rsrc]"
 msgstr "Resource Direktori [.rsrc]"
 
-#: peigen.c:1029 pepigen.c:1029 pex64igen.c:1029
+#: peigen.c:1032 pepigen.c:1032 pex64igen.c:1032
 msgid "Exception Directory [.pdata]"
 msgstr "Exception Direktori [.pdata]"
 
-#: peigen.c:1030 pepigen.c:1030 pex64igen.c:1030
+#: peigen.c:1033 pepigen.c:1033 pex64igen.c:1033
 msgid "Security Directory"
 msgstr "Direktori Keamanan"
 
-#: peigen.c:1031 pepigen.c:1031 pex64igen.c:1031
+#: peigen.c:1034 pepigen.c:1034 pex64igen.c:1034
 msgid "Base Relocation Directory [.reloc]"
 msgstr "Dasar Relokasi Direktori [.reloc]"
 
-#: peigen.c:1032 pepigen.c:1032 pex64igen.c:1032
+#: peigen.c:1035 pepigen.c:1035 pex64igen.c:1035
 msgid "Debug Directory"
 msgstr "Debug Direktori"
 
-#: peigen.c:1033 pepigen.c:1033 pex64igen.c:1033
+#: peigen.c:1036 pepigen.c:1036 pex64igen.c:1036
 msgid "Description Directory"
 msgstr "Direktori Penjelasan"
 
-#: peigen.c:1034 pepigen.c:1034 pex64igen.c:1034
+#: peigen.c:1037 pepigen.c:1037 pex64igen.c:1037
 msgid "Special Directory"
 msgstr "Direktori Spesial"
 
-#: peigen.c:1035 pepigen.c:1035 pex64igen.c:1035
+#: peigen.c:1038 pepigen.c:1038 pex64igen.c:1038
 msgid "Thread Storage Directory [.tls]"
 msgstr "Thread Storage Direktori [.tls]"
 
-#: peigen.c:1036 pepigen.c:1036 pex64igen.c:1036
+#: peigen.c:1039 pepigen.c:1039 pex64igen.c:1039
 msgid "Load Configuration Directory"
 msgstr "Direktori Konfigurasi Beban"
 
-#: peigen.c:1037 pepigen.c:1037 pex64igen.c:1037
+#: peigen.c:1040 pepigen.c:1040 pex64igen.c:1040
 msgid "Bound Import Directory"
 msgstr "Direktori Bound Impor"
 
-#: peigen.c:1038 pepigen.c:1038 pex64igen.c:1038
+#: peigen.c:1041 pepigen.c:1041 pex64igen.c:1041
 msgid "Import Address Table Directory"
 msgstr "Direktori Impor Tabel Alamat"
 
-#: peigen.c:1039 pepigen.c:1039 pex64igen.c:1039
+#: peigen.c:1042 pepigen.c:1042 pex64igen.c:1042
 msgid "Delay Import Directory"
 msgstr "Delay Impor Direktori"
 
-#: peigen.c:1040 pepigen.c:1040 pex64igen.c:1040
+#: peigen.c:1043 pepigen.c:1043 pex64igen.c:1043
 msgid "CLR Runtime Header"
 msgstr "CLR Runtime Header"
 
-#: peigen.c:1041 pepigen.c:1041 pex64igen.c:1041
+#: peigen.c:1044 pepigen.c:1044 pex64igen.c:1044
 msgid "Reserved"
 msgstr "Reserved"
 
-#: peigen.c:1101 pepigen.c:1101 pex64igen.c:1101
+#: peigen.c:1104 pepigen.c:1104 pex64igen.c:1104
 #, c-format
 msgid ""
 "\n"
@@ -3838,7 +5942,7 @@ msgstr ""
 "\n"
 "Ada tabel impor, tetapi daerah yang berisi itu tidak dapat ditemukan\n"
 
-#: peigen.c:1106 pepigen.c:1106 pex64igen.c:1106
+#: peigen.c:1109 pepigen.c:1109 pex64igen.c:1109
 #, c-format
 msgid ""
 "\n"
@@ -3847,7 +5951,7 @@ msgstr ""
 "\n"
 "Ada impor tabel di %s pada 0x%lx\n"
 
-#: peigen.c:1149 pepigen.c:1149 pex64igen.c:1149
+#: peigen.c:1151 pepigen.c:1151 pex64igen.c:1151
 #, c-format
 msgid ""
 "\n"
@@ -3856,12 +5960,12 @@ msgstr ""
 "\n"
 "Deskripsi fungsi ditempatkan di awal alamat: %04lx\n"
 
-#: peigen.c:1152 pepigen.c:1152 pex64igen.c:1152
+#: peigen.c:1154 pepigen.c:1154 pex64igen.c:1154
 #, c-format
 msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
 msgstr "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
 
-#: peigen.c:1160 pepigen.c:1160 pex64igen.c:1160
+#: peigen.c:1162 pepigen.c:1162 pex64igen.c:1162
 #, c-format
 msgid ""
 "\n"
@@ -3870,7 +5974,7 @@ msgstr ""
 "\n"
 "Tidak ada daerah reldata! Deskripsi fungsi tidak terdekode.\n"
 
-#: peigen.c:1165 pepigen.c:1165 pex64igen.c:1165
+#: peigen.c:1167 pepigen.c:1167 pex64igen.c:1167
 #, c-format
 msgid ""
 "\n"
@@ -3879,7 +5983,7 @@ msgstr ""
 "\n"
 "Tabel Impor (diinterpretasikan isi daerah %s)\n"
 
-#: peigen.c:1168 pepigen.c:1168 pex64igen.c:1168
+#: peigen.c:1170 pepigen.c:1170 pex64igen.c:1170
 #, c-format
 msgid ""
 " vma:            Hint    Time      Forward  DLL       First\n"
@@ -3888,7 +5992,7 @@ msgstr ""
 "vma:             Tips    Waktu     Forward  DLL       Pertama\n"
 "                 Tabel   Stamp     Rantai   Nama      Thunk\n"
 
-#: peigen.c:1216 pepigen.c:1216 pex64igen.c:1216
+#: peigen.c:1218 pepigen.c:1218 pex64igen.c:1218
 #, c-format
 msgid ""
 "\n"
@@ -3897,12 +6001,12 @@ msgstr ""
 "\n"
 "\tNama DLL: %s\n"
 
-#: peigen.c:1227 pepigen.c:1227 pex64igen.c:1227
+#: peigen.c:1229 pepigen.c:1229 pex64igen.c:1229
 #, c-format
 msgid "\tvma:  Hint/Ord Member-Name Bound-To\n"
 msgstr "\tvma:  Tips/Ord Nama-Anggota Terikat-Ke\n"
 
-#: peigen.c:1252 pepigen.c:1252 pex64igen.c:1252
+#: peigen.c:1254 pepigen.c:1254 pex64igen.c:1254
 #, c-format
 msgid ""
 "\n"
@@ -3911,7 +6015,7 @@ msgstr ""
 "\n"
 "Ada thunk pertama, tetapi daerah yang berisi itu tidak dapat ditemukan\n"
 
-#: peigen.c:1417 pepigen.c:1417 pex64igen.c:1417
+#: peigen.c:1415 pepigen.c:1415 pex64igen.c:1415
 #, c-format
 msgid ""
 "\n"
@@ -3920,7 +6024,7 @@ msgstr ""
 "\n"
 "Ada tabel expor, tetapi daerah yang berisi itu tidak dapat ditemukan\n"
 
-#: peigen.c:1426 pepigen.c:1426 pex64igen.c:1426
+#: peigen.c:1424 pepigen.c:1424 pex64igen.c:1424
 #, c-format
 msgid ""
 "\n"
@@ -3929,7 +6033,7 @@ msgstr ""
 "\n"
 "Ada tabel expor dalam %s, tetapi ini tidak masuk dalam daerah itu\n"
 
-#: peigen.c:1432 pepigen.c:1432 pex64igen.c:1432
+#: peigen.c:1430 pepigen.c:1430 pex64igen.c:1430
 #, c-format
 msgid ""
 "\n"
@@ -3938,7 +6042,7 @@ msgstr ""
 "\n"
 "Ada sebuah tabel expor dalam %s di 0x%lx\n"
 
-#: peigen.c:1460 pepigen.c:1460 pex64igen.c:1460
+#: peigen.c:1458 pepigen.c:1458 pex64igen.c:1458
 #, c-format
 msgid ""
 "\n"
@@ -3948,67 +6052,67 @@ msgstr ""
 "\n"
 "Tabel expor (diinterpretasikan isi daerah %s)\n"
 
-#: peigen.c:1464 pepigen.c:1464 pex64igen.c:1464
+#: peigen.c:1462 pepigen.c:1462 pex64igen.c:1462
 #, c-format
 msgid "Export Flags \t\t\t%lx\n"
 msgstr "Tanda Expor \t\t\t%lx\n"
 
-#: peigen.c:1467 pepigen.c:1467 pex64igen.c:1467
+#: peigen.c:1465 pepigen.c:1465 pex64igen.c:1465
 #, c-format
 msgid "Time/Date stamp \t\t%lx\n"
 msgstr "Waktu/Tanggal stamp \t\t%lx\n"
 
-#: peigen.c:1470 pepigen.c:1470 pex64igen.c:1470
+#: peigen.c:1468 pepigen.c:1468 pex64igen.c:1468
 #, c-format
 msgid "Major/Minor \t\t\t%d/%d\n"
 msgstr "Mayor/Minor \t\t\t%d/%d\n"
 
-#: peigen.c:1473 pepigen.c:1473 pex64igen.c:1473
+#: peigen.c:1471 pepigen.c:1471 pex64igen.c:1471
 #, c-format
 msgid "Name \t\t\t\t"
 msgstr "Nama \t\t\t\t"
 
-#: peigen.c:1479 pepigen.c:1479 pex64igen.c:1479
+#: peigen.c:1477 pepigen.c:1477 pex64igen.c:1477
 #, c-format
 msgid "Ordinal Base \t\t\t%ld\n"
 msgstr "Dasar Ordinal \t\t\t%ld\n"
 
-#: peigen.c:1482 pepigen.c:1482 pex64igen.c:1482
+#: peigen.c:1480 pepigen.c:1480 pex64igen.c:1480
 #, c-format
 msgid "Number in:\n"
 msgstr "Nomor dalam:\n"
 
-#: peigen.c:1485 pepigen.c:1485 pex64igen.c:1485
+#: peigen.c:1483 pepigen.c:1483 pex64igen.c:1483
 #, c-format
 msgid "\tExport Address Table \t\t%08lx\n"
 msgstr "\tTabel Alamat Expor \t\t%08lx\n"
 
-#: peigen.c:1489 pepigen.c:1489 pex64igen.c:1489
+#: peigen.c:1487 pepigen.c:1487 pex64igen.c:1487
 #, c-format
 msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
 msgstr "\t[Nama Pointer/Ordinal] Tabel\t%08lx\n"
 
-#: peigen.c:1492 pepigen.c:1492 pex64igen.c:1492
+#: peigen.c:1490 pepigen.c:1490 pex64igen.c:1490
 #, c-format
 msgid "Table Addresses\n"
 msgstr "Tabel Alamat\n"
 
-#: peigen.c:1495 pepigen.c:1495 pex64igen.c:1495
+#: peigen.c:1493 pepigen.c:1493 pex64igen.c:1493
 #, c-format
 msgid "\tExport Address Table \t\t"
 msgstr "\tTabel Alamat Expor \t\t"
 
-#: peigen.c:1500 pepigen.c:1500 pex64igen.c:1500
+#: peigen.c:1498 pepigen.c:1498 pex64igen.c:1498
 #, c-format
 msgid "\tName Pointer Table \t\t"
 msgstr "\tTabel Nama Pointer \t\t"
 
-#: peigen.c:1505 pepigen.c:1505 pex64igen.c:1505
+#: peigen.c:1503 pepigen.c:1503 pex64igen.c:1503
 #, c-format
 msgid "\tOrdinal Table \t\t\t"
 msgstr "\tTabel Ordinal \t\t\t"
 
-#: peigen.c:1519 pepigen.c:1519 pex64igen.c:1519
+#: peigen.c:1517 pepigen.c:1517 pex64igen.c:1517
 #, c-format
 msgid ""
 "\n"
@@ -4017,15 +6121,15 @@ msgstr ""
 "\n"
 "Tabel Alamat Expor -- Ordinal Base %ld\n"
 
-#: peigen.c:1538 pepigen.c:1538 pex64igen.c:1538
+#: peigen.c:1536 pepigen.c:1536 pex64igen.c:1536
 msgid "Forwarder RVA"
 msgstr "Forwarder RVA"
 
-#: peigen.c:1549 pepigen.c:1549 pex64igen.c:1549
+#: peigen.c:1547 pepigen.c:1547 pex64igen.c:1547
 msgid "Export RVA"
 msgstr "Expor RVA"
 
-#: peigen.c:1556 pepigen.c:1556 pex64igen.c:1556
+#: peigen.c:1554 pepigen.c:1554 pex64igen.c:1554
 #, c-format
 msgid ""
 "\n"
@@ -4034,18 +6138,18 @@ msgstr ""
 "\n"
 "[Ordinal/Nama Pointer] Tabel\n"
 
-#: peigen.c:1616 peigen.c:1795 pepigen.c:1616 pepigen.c:1795 pex64igen.c:1616
-#: pex64igen.c:1795
+#: peigen.c:1614 peigen.c:1797 pepigen.c:1614 pepigen.c:1797 pex64igen.c:1614
+#: pex64igen.c:1797
 #, c-format
 msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n"
 msgstr "Peringatan, besar (%ld) daerah .pdata tidak dalam kelipatan dari %d\n"
 
-#: peigen.c:1623 pepigen.c:1623 pex64igen.c:1623
+#: peigen.c:1621 pepigen.c:1621 pex64igen.c:1621
 #, c-format
 msgid " vma:\t\t\tBegin Address    End Address      Unwind Info\n"
 msgstr " vma:\t\t\tAwal  Alamat     Akhir Alamat     Unwind Informasi\n"
 
-#: peigen.c:1625 pepigen.c:1625 pex64igen.c:1625
+#: peigen.c:1623 pepigen.c:1623 pex64igen.c:1623
 #, c-format
 msgid ""
 " vma:\t\tBegin    End      EH       EH       PrologEnd  Exception\n"
@@ -4054,22 +6158,22 @@ msgstr ""
 " vma:\t\tAwal     Akhir    EH       EH       PrologEnd  Exception\n"
 "     \t\tAlamat   Alamat   Handler  Data     Alamat     Topeng\n"
 
-#: peigen.c:1695 pepigen.c:1695 pex64igen.c:1695
+#: peigen.c:1697 pepigen.c:1697 pex64igen.c:1697
 #, c-format
 msgid " Register save millicode"
 msgstr " Register simpan millicode"
 
-#: peigen.c:1698 pepigen.c:1698 pex64igen.c:1698
+#: peigen.c:1700 pepigen.c:1700 pex64igen.c:1700
 #, c-format
 msgid " Register restore millicode"
 msgstr " Register restore millicode"
 
-#: peigen.c:1701 pepigen.c:1701 pex64igen.c:1701
+#: peigen.c:1703 pepigen.c:1703 pex64igen.c:1703
 #, c-format
 msgid " Glue code sequence"
 msgstr " Urutan kode pengikat"
 
-#: peigen.c:1801 pepigen.c:1801 pex64igen.c:1801
+#: peigen.c:1803 pepigen.c:1803 pex64igen.c:1803
 #, c-format
 msgid ""
 " vma:\t\tBegin    Prolog   Function Flags    Exception EH\n"
@@ -4078,7 +6182,7 @@ msgstr ""
 " vma:\t\tMulai    Prolog   Fungsi   Flags    Exception EH\n"
 "     \t\tAlamat   Panjang  Panjang  32b exc  Handler   Data\n"
 
-#: peigen.c:1933 pepigen.c:1933 pex64igen.c:1933
+#: peigen.c:1929 pepigen.c:1929 pex64igen.c:1929
 #, c-format
 msgid ""
 "\n"
@@ -4089,7 +6193,7 @@ msgstr ""
 "\n"
 "Berkas Dasar Relokasi PE (diinterpretasikan isi daerah .reloc)\n"
 
-#: peigen.c:1963 pepigen.c:1963 pex64igen.c:1963
+#: peigen.c:1958 pepigen.c:1958 pex64igen.c:1958
 #, c-format
 msgid ""
 "\n"
@@ -4098,7 +6202,7 @@ msgstr ""
 "\n"
 "Alamat Maya: %08lx Besar potongan %ld (0x%lx) Jumlah dari perbaikan %ld\n"
 
-#: peigen.c:1976 pepigen.c:1976 pex64igen.c:1976
+#: peigen.c:1971 pepigen.c:1971 pex64igen.c:1971
 #, c-format
 msgid "\treloc %4d offset %4x [%4lx] %s"
 msgstr "\trelokasi %4d ofset %4x [%4lx] %s"
@@ -4106,7 +6210,7 @@ msgstr "\trelokasi %4d ofset %4x [%4lx] 
 #. The MS dumpbin program reportedly ands with 0xff0f before
 #. printing the characteristics field.  Not sure why.  No reason to
 #. emulate it here.
-#: peigen.c:2015 pepigen.c:2015 pex64igen.c:2015
+#: peigen.c:2010 pepigen.c:2010 pex64igen.c:2010
 #, c-format
 msgid ""
 "\n"
@@ -4115,26 +6219,117 @@ msgstr ""
 "\n"
 "Karakteristik 0x%x\n"
 
-#: peigen.c:2292 pepigen.c:2292 pex64igen.c:2292
+#: peigen.c:2310 pepigen.c:2310 pex64igen.c:2310
 msgid "%B: unable to fill in DataDictionary[1] because .idata$2 is missing"
 msgstr "%B: tidak dapat mengisi dalam DataDictionary[1] karena .idata$2 hilang"
 
-#: peigen.c:2312 pepigen.c:2312 pex64igen.c:2312
+#: peigen.c:2330 pepigen.c:2330 pex64igen.c:2330
 msgid "%B: unable to fill in DataDictionary[1] because .idata$4 is missing"
 msgstr "%B: tidak dapat mengisi dalam DataDictionary[1] karena .data$4 hilang"
 
-#: peigen.c:2333 pepigen.c:2333 pex64igen.c:2333
+#: peigen.c:2351 pepigen.c:2351 pex64igen.c:2351
 msgid "%B: unable to fill in DataDictionary[12] because .idata$5 is missing"
 msgstr "%B: tidak dapat mengisi dalam DataDictionary[12] karena .idata$5 hilang"
 
-#: peigen.c:2353 pepigen.c:2353 pex64igen.c:2353
+#: peigen.c:2371 pepigen.c:2371 pex64igen.c:2371
 msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing"
 msgstr "%B: tidak dapat mengisi dalam DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] karena .idata$6 hilang"
 
-#: peigen.c:2375 pepigen.c:2375 pex64igen.c:2375
+#: peigen.c:2413 pepigen.c:2413 pex64igen.c:2413
+msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing"
+msgstr "%B: tidak dapat mengisi dalam DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] karena .idata$6 hilang"
+
+#: peigen.c:2438 pepigen.c:2438 pex64igen.c:2438
 msgid "%B: unable to fill in DataDictionary[9] because __tls_used is missing"
 msgstr "%B: tidak dapat mengisi dalam DataDictionary[9] karena __tls_used hilang"
 
+#~ msgid "Can't Make it a Short Jump"
+#~ msgstr "Tidak dapat membuka ini sebuah lompatan pendek"
+
+#~ msgid "Exceeds Long Jump Range"
+#~ msgstr "Melewati jangkauan lompatan panjang"
+
+#~ msgid "Absolute address Exceeds 16 bit Range"
+#~ msgstr "Alamat absolut melewati jangkauan 16 bit"
+
+#~ msgid "Absolute address Exceeds 8 bit Range"
+#~ msgstr "Alamat absolute melewati jangkauan 8 bit"
+
+#~ msgid "Unrecognized Reloc Type"
+#~ msgstr "Tipe relokasi tidak dikenal"
+
+#~ msgid "corrupt or empty %s section in %B"
+#~ msgstr "korup atau kosong %s bagian dalam %B"
+
+#~ msgid "%B(%A+0x%lx): cannot reach %s"
+#~ msgstr "%B(%A+0x%lx): tidak dapat mencapai %s"
+
+#~ msgid "%s: invalid DSO for symbol `%s' definition"
+#~ msgstr "%s: tidak valid DSO untuk simbol `%s' definisi"
+
+#~ msgid "%B: %A+0x%lx: jump to stub routine which is not jal"
+#~ msgstr "%B: %A+0x%lx: lompat ke routine stub dimana bukan jal"
+
+#~ msgid "%B: warning: ignoring duplicate section `%A'\n"
+#~ msgstr "%B: peringatan: mengabaikan bagiann terduplikasi `%A'\n"
+
+#~ msgid "%B: warning: duplicate section `%A' has different size\n"
+#~ msgstr "%B: peringatan: bagian terduplikasi `%A' memiliki ukuran berbeda\n"
+
+#~ msgid "bfd_make_section (%s) failed"
+#~ msgstr "bfd_make_section (%s) gagal"
+
+#~ msgid "bfd_set_section_flags (%s, %x) failed"
+#~ msgstr "bfd_set_section_flags (%s, %x) gagal"
+
+#~ msgid "Size mismatch section %s=%lx, %s=%lx"
+#~ msgstr "Ukuran tidak cocok daerah %s=%lx, %s=%lx"
+
+#~ msgid "failed to enter %s"
+#~ msgstr "gagal untuk memasuki %s"
+
+#~ msgid "No Mem !"
+#~ msgstr "Tidak ada Memori !"
+
+#~ msgid "reserved STO cmd %d"
+#~ msgstr "reserved STO perintah %d"
+
+#~ msgid "reserved OPR cmd %d"
+#~ msgstr "reserved OPR perintah %d"
+
+#~ msgid "reserved CTL cmd %d"
+#~ msgstr "reserved CTL perintah %d"
+
+#~ msgid "reserved STC cmd %d"
+#~ msgstr "perintah %d direserve"
+
+#~ msgid "stack-from-image not implemented"
+#~ msgstr "stack-from-image tidak terimplementasi"
+
+#~ msgid "stack-entry-mask not fully implemented"
+#~ msgstr "stack-entry-mask tidak terimplementasi secara penuh"
+
+#~ msgid "PASSMECH not fully implemented"
+#~ msgstr "PASSMECH tidak terimplementasi secara penuh"
+
+#~ msgid "stack-local-symbol not fully implemented"
+#~ msgstr "stack-local-symbol tidak terimplementasi secara penuh"
+
+#~ msgid "stack-literal not fully implemented"
+#~ msgstr "stack-literal tidak terimplementasi secara penuh"
+
+#~ msgid "stack-local-symbol-entry-point-mask not fully implemented"
+#~ msgstr "stack-local-symbol-entry-point-mask tidak terimplementasi secara penuh"
+
+#~ msgid "%s: not fully implemented"
+#~ msgstr "%s: tidak terimplementasi secara penuh"
+
+#~ msgid "obj code %d not found"
+#~ msgstr "obj kode %d tidak ditemukan"
+
+#~ msgid "Reloc size error in section %s"
+#~ msgstr "Kesalahan ukuran relokasi dalam daerah %s"
+
 #~ msgid "ERROR: %B: Incompatible object tag '%s':%d"
 #~ msgstr "ERROR: %B: Tanda objek tidak kompatibel '%s':%d"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/ja.gmo ./bfd/po/ja.gmo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/ja.gmo	2018-01-02 02:07:01.000000000 +0000
+++ ./bfd/po/ja.gmo	2018-01-09 02:08:39.000000000 +0000
@@ -9,25 +9,28 @@
 µTµ2nµ|¡µ(¶[G¶+£¶/Ï¶(ÿ¶R(·F{·FÂ·:	¸6D¸D{¸7À¸-ø¸0&¹AW¹H™¹>â¹+!ºIMº—º;·º;óº./».^»=�»IË».¼/D¼@t¼*µ¼;à¼½>:½By½@¼½?ý½G=¾F…¾JÌ¾B¿XZ¿4³¿/è¿NÀ0gÀ(˜À/ÁÀñÀÁÁ0*Á=[ÁD™Á0ÞÁ5Â)EÂ7oÂ§ÂÁÂ'àÂ&Ã[/ÃG‹ÃOÓÃ9#Ä>]Ä2œÄ5ÏÄ/Å
5ÅCÅOÅ\`Å;½ÅùÅÆÆ	+Æ5Æ/GÆwÆ;‡ÆÃÆÓÆçÆüÆÇ(Ç	EÇ"OÇ+rÇ#žÇ,ÂÇ:ïÇ*È.FÈ4uÈ?ªÈ=êÈ	(É"2ÉUÉlÉÉ#œÉÀÉ$ÒÉ$÷É$Ê'AÊ%iÊ'�Ê·ÊÕÊõÊ"Ë8ËHË]ËrË‰Ë)ŸËÉË#ßË#Ì-'Ì8UÌ1ŽÌAÀÌ.ÍY1Í_‹Í;ëÍ)'Î$QÎvÎH‹Î%ÔÎúÎ5ÏMÏ
 bÏ"mÏ�Ï©ÏÄÏÙÏæÏõÏ
Ð/!Ð+QÐ8}Ð¶ÐGÌÐ3ÑHÑ"gÑIŠÑ%ÔÑúÑ
ÒÒ=Ò$VÒ{Ò˜Ò¨Ò¾ÒÐÒðÒÓÓ	Ó!Ó*Ó
 AÓ"LÓ%oÓ•Ó¡ÓÁÓ)ÖÓ/Ô0Ô7Ô!>Ô.`Ô,�Ô¼Ô:ØÔ%Õ%9Õ_Õ=xÕ"¶Õ[ÙÕ?5ÖuÖ)”Ö¾ÖÇÖ*âÖ&
×4×T×[×(b×‹×«×#Ê×-î×"Ø?ØWØjØ‚Ø›Ø°ØÂØ2ÝØ$Ù5Ù!UÙwÙD‘ÙDÖÙ/ÚKÚ/]Ú?�ÚÍÚÞÚþÚÛ(ÛJ1Û7|Û´Û*ÎÛùÛÜ)Ü?ÜPÜfÜ%ƒÜ©Ü¼ÜÙÜöÜJÝJYÝJ¤ÝIïÝ:9Þ;tÞ:°ÞEëÞ61ß9hß7¢ß9ÚßQà/fàB–à@Ùà.á=Iá&‡á.®á/Ýá-
âi;âD¥âdêâ,OãF|ãfÃãC*änä#�ä@±ä8òä7+åcåƒå•å§å<¼å2ùå.,æ[æcæ6zæ@±ædòægWçb¿çD"è=gèE¥è1ëèé;é4Xé'�é7µéíéþéê-ê>êPêbêtêŽê©ê»êÌêäêë"ë-;ë+ië+•ë*Áë	ìë	öë
-ìì ì'?ì"gì#Šì%®ì]Ôì=2í(píZ™íZôíEOîA•îG×îWïWwï9Ïï9	ð4Cð9xð4²ð2çð7ñ5Rñ7ˆñ.Àñ2ïñ "ò[Cò@Ÿò:àò#ó=?ó<}óNºó-	ôO7ô ‡ô>¨ô9çô1!õ&Sõ&zõ!¡õÃõ,âõ7ö
GöUöhö$ˆö"­öAÐö÷,0÷2]÷�÷ ÷»÷*Ö÷Lø!Nøypø0êø&ùBù2\ù*�ù ºùÛùKùùEúRúlú€ú•ú«ú¿úÕúìú#ýú6!û8Xû‘û£û ³ûÔû3ïû!#ü"Eühü"oü%’ü'¸ü$àü)ý*/ý0Zý‹ý¥ý­ý
Åý%Óýùýþ+þBþTþkþ7‚þºþÓþåþøþÿ ÿ)6ÿ>`ÿgŸÿx-€!®7Ð!!;C05°<æ<#2`.“=Â/60,g£”$8(]"†©0Á<ò(/XOg1·é!*I$X&}%¤
ÊØñ8	?Bf‚@é*	?F	6†	;½	6ù	_0
-k�
-6ü
-t3¨ÁRÚ*-Xm˜¤!½ ß

2
$P
u
Œ
§
Ä
Þ
(ó
#7[{(˜ÁÜõ
-!Ce3ƒ·Îë5÷-B/W‡:žÙíþ#5Nc|#�#´#Øü##7[?l¬²/·çì$ò'!'Iqv�’™Ÿ¤©¯³"¸"Ûþ'+%G'm•šŸ¦¬$±ÖÝ÷þ7Qk…Ÿ¹	È
Ò
à
-î
-ù
-?&9f0 (ÑLúCG@‹Ìá
-ðû
-#*$=$b‡!¦ÈÙø
4Q9n>¨#ç#85n�ª%Åë
-H& o&�·×ì,D8”}Šx�n5K¤Dð05Af:¨:ãv y• H!=X!O–!eæ!LL"1™"1Ë"1ý"O/#)#v©#f $F‡$HÎ$J%Vb%m¹%d'&eŒ&eò&eX'.¾',í'j(Ž…(k):€)6»)Iò);<*Ux*MÎ*[+dx+]Ý+f;,a¢,‰-ˆŽ-Ž.‰¦.é0/U0Äp0¦51tÜ1iQ2w»2‰33h½3Æ&4Kí4]95É—5Ka6¢­6<P7/�7l½7J*8Au8N·8W9Z^9=¹9H÷9s@:S´:E;<N;)‹;Sµ;L	<RV<=©<7ç<==M]=h«=F>P[>J¬>g÷>[_?±»?em@PÓ@…$AlªA^BGvBC¾B;CP>Cm�CUýClSDPÀD-E\?EVœEuóEjiF_ÔF14GVfGF½G2H;7H$sHN˜H8çH8 I2YI]ŒINêIn9JN¨Ja÷J]YK;·KaóKdUL]ºLWM[pMLÌMJN<dNS¡NvõN4lO@¡O3âO2P5IP6P,¶PPãPh4Qˆ�Qˆ&R‹¯RŠ;S]ÆS>$TBcTQ¦T{øT]tUEÒUCV0\V@�V[ÎVa*WjŒWu÷W[mXFÉXBY?SYW“Y@ëY=,ZBjZ8­ZQæZ?8[1x[Qª[:ü[*7\Ob\#²\QÖ\&(]MO]M�]Së]V?^S–^vê^Qa_–³_ºJ`qaywaWñaMIbO—bQçb29c{lc>ècS'd¾{d?:eNzeBÉeCf3PfE„fiÊfl4g ¡gdBhs§h�iM«iLùiRFj�™jz'k‡¢kF*lXqlEÊlMm\^mD»mlnnmn[Ün_8oN˜oKçoC3phwp*àpBqTNqS£qS÷qUKrn¡rms4~s6³s;êsJ&tJqt1¼t?îtA.uRpuCÃu)v=1vovL‹vPØv#)w:Mw9ˆwNÂw8x9Jx8„xD½xCyŠFyZÑyŠ,zJ·zU{qX{]Ê{B(|Dk|H°|Où|LI}J–}Pá}<2~No~X¾~|T”<é7&€J^€M©€M÷€wE�\½�e‚_€‚Yà‚H:ƒTƒƒØƒïøƒYè„]B…3 …6Ô…A†DM†?’†FÒ†B‡C\‡T ‡@õ‡B6ˆSyˆBÍˆ@‰@Q‰Ô’‰\gŠSÄŠ8‹LQ‹#ž‹LÂ‹bŒLrŒL¿Œ=�/J�0z�e«�SŽYeŽl¿Ž_,�YŒ�Hæ�A/�Oq�NÁ�’‘B£‘æ‘&’G*’Mr’9À’ú’€	“HŠ“›Ó“>o”~®”V-•V„•NÛ•p*–[›–[÷–HS—Qœ—]î—SL˜M ˜Bî˜V1™\ˆ™aå™=Gšs…š5ùši/›h™›‚œ˜…œƒ��¢�J$žMožO½žI
Ÿ]WŸ+µŸTáŸm6 †¤ …+¡—±¡“I¢—Ý¢Ru£³È£h|¤Yå¤e?¥R¥¥/ø¥V(¦1¦±¦%Ñ¦J÷¦SB§Y–§Sð§HD¨9�¨XÇ¨  ©#A©=e©<£©Œà©bmª�Ðª]a«Y¿«C¬;]¬P™¬ê¬÷¬­«­mÃ­1®A®,D®q®z®GŽ®#Ö®Kú®#F¯
j¯x¯‡¯=–¯5Ô¯
-°6°\J°<§°Aä°L&±%s±B™±JÜ±i'²o‘²³*³ ?³`³}³%—³½³9Ñ³3´3?´6s´4ª´6ß´,µ.Cµ.rµ1¡µÓµ òµ¶'1¶)Y¶Hƒ¶Ì¶2è¶>·FZ·A¡·?ã·P#¸Nt¸˜Ã¸¤\¹eºDgº-¬º:Úº\»=r»!°»]Ò»#0¼
-T¼<_¼!œ¼*¾¼$é¼!½$0½%U½
{½@‰½DÊ½E¾U¾rm¾Pà¾01¿4b¿r—¿-
-À#8À\À;rÀ®À&ÂÀ!éÀÁÁ4Á1SÁ$…ÁªÁÄÁËÁ×Á0óÁ$Â6CÂHzÂÃÂJÕÂ ÃL8ÃR…ÃØÃßÃ+æÃ7Ä5JÄ€Ä?ŸÄ"ßÄ%Å+(ÅMTÅ<¢Å„ßÅ{dÆ4àÆWÇ	mÇ&wÇ:žÇEÙÇ-ÈMÈTÈ>[ÈšÈºÈ,ÚÈ5É2=É*pÉ$›É#ÀÉ1äÉÊ!6Ê(XÊK�ÊBÍÊ=Ë<NË6‹ËoÂËo2ÌZ¢ÌýÌDÍgaÍÉÍ+ÚÍ Î"'ÎJÎxSÎWÌÎ$$ÏKIÏ(•Ï(¾ÏçÏÐ!!Ð1CÐ:uÐ!°Ð*ÒÐ3ýÐ01ÑgbÑXÊÑX#ÒW|ÒUÔÒU*Óƒ€Ó‚Ôƒ‡ÔiÕguÕiÝÕ•GÖƒÝÖxa×ŒÚ×FgØT®ØCÙsGÙB»Ù<þÙŸ;Ú\ÛÚŸ8Û=ØÛrÜp‰ÜXúÜ0SÝ;„ÝcÀÝS$Þ_xÞ4ØÞ
ß'ß#AßKeßK±ßEýßCà3PàG„àTÌà‹!á›­á™IâNãâQ2ãS„ãBØã.ä.JäWyäNÑäR åså&‘å#¸åÜåúåæ8æ(Wæ.€æ¯æÎæ)ìæ2ç,Iç4vçM«çKùçKEèG‘è	Ùè	ãè
-íèøè*éB<é*é+ªéKÖé€"êa£ê.ë¨4ë¥Ýë™ƒì‡í—¥íŸ=îŸÝîZ}ï\Øï\5ða’ðXôðdMñ“²ñhFò“¯òGCóU‹ó3áó„ôbšôQýô8Oõdˆõ:íõ‡(öB°öoóö0c÷K”÷Fà÷N'ø?vøK¶ø:ù+=ù6iùI ùêù&ú#*ú)Nú)xúb¢ú#û5)ûH_û¨û$»ûàû<üO=ü-�ü—»üBSýR–ý3éý@þ:^þ5™þBÏþxÿ	‹ÿ-•ÿÃÿÛÿôÿ&@[3w]«K	)U%�&Ã^ê<I=†Ä)Ñ0û2,4_7”=ÌE
-1P‚%‰¯1Â"ô(0@-q0Ÿ'Ðlø(eŽ©Åâÿ9ZX³³ÜgND	6“	YÊ	1$
-2V
-T‰
-SÞ
-Q2O„OÔD$HiP²H
EL
L’
Ç"hu"Õò5Ñ¸¡âè
•^†3Z}øš(¿‘·'p32ýÒ#ÿc““4e¨DÍãï
+ìì ì'?ì"gì#Šì%®ì]Ôì=2í(píZ™íZôíEOîA•îG×îWïWwï9Ïï9	ð4Cð9xð4²ð2çð7ñ5Rñ7ˆñ.Àñ2ïñ "ò[Cò@Ÿò:àò#ó=?ó<}óNºó-	ôO7ô ‡ô>¨ô9çô1!õ&Sõ&zõ!¡õÃõ,âõ7ö
GöUöhö$ˆö"­öAÐö÷,0÷2]÷�÷ ÷»÷*Ö÷Lø!Nøypø0êø&ùBù2\ù*�ù ºùÛùKùùEúRúlú€ú•ú«ú¿úÕúìú#ýú6!û8Xû‘û£û ³ûÔû3ïû!#ü"Eühü"oü%’ü'¸ü$àü)ý*/ý0Zý‹ý¥ý­ý
Åý%Óýùýþ+þBþTþkþ7‚þºþÓþåþøþÿ ÿ)6ÿ>`ÿgŸÿx-€!®7Ð!!;C05°<æ<#2`.“=Â/60,gã”$x(�"Æé0<2(o˜O§1÷)!Hj‰$˜&½%ä

+18I?‚fÂ@)	j	?†	6Æ	;ý	69
+_p
+kÐ
+6<tsèR*m˜­¿Øä!ý 
@
[
r
$�
µ
Ì
ç
(3\#w›»(Ø5Mm!ƒ¥3Ã÷+57m‚/—Ç:Þ->#QuŽ£¼#Ð#ô#<#S#w›?¬ìò/÷',$2W\'a'‰±¶ÍÒÙßäéïó"ø">'Ck%‡'­ÕÚßæì$ñ7>]w‘«Åßù	

 
+.
+9
+DO_?f9¦0à(L:C‡@Ë!
+0;
+Xcj$}$¢Ç!æ8MTt‘9®>è#'Kc8u®Íê%+JHf ¯&Ð÷,,KDx”½ŠRxÝVnuKäD00uA¦:è:# v^ yÕ HO!=˜!OÖ!e&"LŒ"1Ù"1#1=#Oo#)¿#vé#f`$FÇ$H%JW%V¢%mù%dg&eÌ&e2'e˜'.þ',-(jZ(ŽÅ(kT):À)6û)I2*;|*U¸*M+[\+d¸+],f{,aâ,‰D-ˆÎ-ŽW.‰æ.ép/UZ0Ä°0¦u1t2i‘2wû2‰s3hý3Æf4K-5]y5É×5K¡6¢í6<�7/Í7lý7Jj8Aµ8N÷8WF9Zž9=ù9H7:s€:Sô:EH;<Ž;)Ë;Sõ;LI<R–<=é<7'==_=M�=hë=FT>P›>Jì>g7?[Ÿ?±û?e­@PA…dAlêA^WBG¶BCþB;BCP~CmÏCU=Dl“DPE-QE\EVÜEu3Fj©F_G1tGV¦GFýG2DH;wH$³HNØH8'I8`I2™I]ÌIN*JnyJNèJa7K]™K;÷Ka3Ld•L]úLWXM[°MLNJYN<¤NSáNv5O4¬O@áO3"P2VP5‰P6¿P,öPP#QhtQˆÝQˆfR‹ïRŠ{S]T>dTB£TQæT{8U]´UEVCXV0œV@ÍV[WajWjÌWu7X[­XF	YBPY?“YWÓY@+Z=lZBªZ8íZQ&[?x[1¸[Qê[:<\*w\O¢\#ò\Q]&h]M�]MÝ]S+^V^SÖ^v*_Q¡_–ó_ºŠ`qEay·aW1bM‰bO×bQ'c2yc{¬c>(dSgd¾»d?zeNºeB	fCLf3�fEÄfi
+gltg ágd‚hsçh�[iMëiL9jR†j�Ùjzgk‡âkFjlX±lE
+mMPm\žmDûml@nn­n[o_xoNØoK'pCsph·p* qBKqTŽqSãqS7rU‹rnármPs4¾s6ós;*tJftJ±t1üt?.uAnuR°uCv)Gv=qv¯vLËvPw#iw:�w9ÈwNx8Qx9Šx8ÄxDýxCByŠ†yZzŠlzJ÷zUB{q˜{]
+|Bh|D«|Hð|O9}L‰}JÖ}P!~<r~N¯~Xþ~|WTÔ<)€7f€Jž€Mé€M7�w…�\ý�eZ‚_À‚Y ƒHzƒTÃƒ„ï8„Y(…]‚…3à…6†AK†D�†?Ò†F‡BY‡Cœ‡Tà‡@5ˆBvˆS¹ˆB
‰@P‰@‘‰ÔÒ‰\§ŠS‹8X‹L‘‹#Þ‹LŒbOŒL²ŒLÿŒ=L�/Š�0º�eë�SQŽY¥ŽlÿŽ_l�YÌ�H&�Ao�O±�N‘’P‘Bã‘&’&C’Gj’M²’9“:“€I“HÊ“›”>¯”~î”Vm•VÄ•N–pj–[Û–[7—H“—QÜ—].˜SŒ˜Mà˜B.™Vq™\È™a%š=‡šsÅš59›io›hÙ›‚Bœ˜Åœƒ^��â�JdžM¯žOýžIMŸ]—Ÿ+õŸT! mv †ä …k¡—ñ¡“‰¢—£Rµ£³¤h¼¤Y%¥e¥Rå¥/8¦Vh¦1¿¦ñ¦%§J7§S‚§YÖ§S0¨H„¨9Í¨X© `©#�©=¥©<ã©Œ ªb­ª�«]¡«Yÿ«CY¬;�¬PÙ¬*­7­D­«W­m®q®�®,„®±®º®GÎ®#¯K:¯#†¯
ª¯¸¯Ç¯=Ö¯5°J°6S°\Š°<ç°A$±Lf±%³±BÙ±J²ig²oÑ²A³*T³ ³ ³½³%×³ý³9´3K´3´6³´4ê´6µ,Vµ.ƒµ.²µ1áµ¶ 2¶S¶'q¶)™¶HÃ¶·2(·>[·Fš·Aá·?#¸Pc¸N´¸˜¹¤œ¹eAºD§º-ìº:»\U»=²»!ð»]¼#p¼
+”¼<Ÿ¼!Ü¼*þ¼$)½!N½$p½%•½
»½@É½D
+¾EO¾•¾r­¾P ¿0q¿4¢¿r×¿-JÀ#xÀœÀ;²ÀîÀ&Á!)ÁKÁ^ÁtÁ1“Á$ÅÁêÁÂÂÂ03ÂdÂ6ƒÂHºÂÃJÃ`ÃLxÃRÅÃÄÄ+&Ä7RÄ5ŠÄÀÄ?ßÄ"Å%BÅ+hÅM”Å<âÅ„Æ{¤Æ4 ÇWUÇ	­Ç&·Ç:ÞÇEÈ-_È�È”È>›ÈÚÈúÈ,É5GÉ2}É*°É$ÛÉ#Ê1$ÊVÊ!vÊ(˜ÊKÁÊB
Ë=PË<ŽË6ËËoÌorÌZâÌ=ÍD\Íg¡Í	Î+Î FÎ"gÎŠÎx“ÎWÏ$dÏK‰Ï(ÕÏ(þÏ'ÐDÐ!aÐ1ƒÐ:µÐ!ðÐ*Ñ3=Ñ0qÑg¢ÑX
+ÒXcÒW¼ÒUÓUjÓƒÀÓ‚DÔƒÇÔiKÕgµÕiÖ•‡Öƒ×x¡×ŒØF§ØTîØCCÙs‡ÙBûÙ<>ÚŸ{Ú\ÛŸxÛ=ÜrVÜpÉÜX:Ý0“Ý;ÄÝcÞSdÞ_¸Þ4ßMßgß#�ßK¥ßKñßE=àƒà3�àGÄàTá‹aá›íá™‰âN#ãQrãSÄãBä.[ä.ŠäW¹äNåR`å³å&Ñå#øåæ:æYæxæ(—æ.Àæïæç),ç2Vç,‰ç4¶çMëçK9èK…èGÑè	é	#é
+-é8é*QéB|é*¿é+êéKê€bêaãê.Eë¨të¥ì™Ãì‡]í—åíŸ}îŸïZ½ï\ð\uðaÒðX4ñd�ñ“òñh†ò“ïòGƒóUËó3!ô„UôbÚôQ=õ8�õdÈõ:-ö‡höBðöo3÷0£÷KÔ÷F øNgø?¶øKöø:Bù+}ù6©ùIàù*ú&Cú#jú)Žú)¸úbâú#Eû5iûHŸûèû$ûû ü<@üO}ü-Íü—ûüB“ýRÖý3)þ@]þ:žþ5ÙþBÿxRÿ	Ëÿ-Õÿ4Nf€›3·]ëKI)•¿%Ý&^*<‰=Æ)0;2l4Ÿ7Ô=EJ1�Â%Éï1"4(W0€-±0ß'l8(¥Îé"?9^Z˜³óÜ§N„	6Ó	Y
+
+1d
+2–
+TÉ
+SQrOÄODdH©PòHC
EŒ
LÒ
Ç"hu"Õò5Ñ¸¡âè
•^†3Z}øš(¿‘·'p32ýÒ#ÿc““4e¨DÍãï
 ¦Kƒ¢6Ðr%WÚøåÚÏ¼‰ŒTÊÄïÖdÔ¢VyÞùúgµ
ôPõ‘œ£ªå`iÐS¼¾�ÄÁ†<„¼WÆ_ÜŠ‘�³Pûì¤U§uÛÜ@ö&-„W˜=Ü“r¤D$RW§B�N{ €fÆœOÌñòÍåT™#\·Çò–`Ý°>´iHSµvÀ_¶g­NÎEY/,=žU®‡¦?Mt~üßjâ”+`[|š¯wú.€hJÙÌC±mð¾cLäøÍ ÕyÞð�º:ž{« —$\lnà§yõ¶×Î4Ù±û>…‚at}5Œ"îo¯à â0ž?¹Ÿ<°K!¢„áÏ´DËëP³
 5Ýê6ŽÓ;�›Çxôf¥íçÒpÒ\¾dRED'¨z::mkù’­³'b‹Ó¤Ê!»«{LŠ*lõ}È˜e�Ã¬YÂA1~ÅßkRRÃ‰Éû]ÔÚ-aãÆj
¼¸/ëš¥ƒ¡®¯ý–ñA®;CxßXkÌ¦¦´8ö*5C4.÷8Ø»œêFÀQ²OçÔvwÛIsº°½€èÏp’«™íþVIÖ”ÔéÁ»É‹^xQîh#æèa+÷3~0s’sIìjÎä„L2.’l |ùb<{‡åØ[§YKŸ&‰%¬��fÓÅI�ïë?¡Nˆz¶uæÃ_¥­ä¸VT]—z	‘1àH_�*˜-S]SJ�AìGqn“cÄq1µG³üo+[%>ç©ÓŽõª²�u&F~£ÉrÖ6Œ=©B—�7
 \j	mÆ2;ß<ˆÈ¥£ªÂ	]ËUkXO•o…xYs™Fþê´÷‚ ¶ôÊqewTm ñB,hMì–½@3}×öÖ
@@ -374,6 +377,7 @@ PO-Revision-Date: 2011-10-23 16:09+0900
 Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>
 Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>
 Language: ja
+X-Bugs: Report translation errors to the Language-Team address.
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/ja.po ./bfd/po/ja.po
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/ja.po	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/ja.po	2018-01-09 02:04:54.000000000 +0000
@@ -12,6 +12,7 @@ msgstr ""
 "Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
 "Language: ja\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/Make-in ./bfd/po/Make-in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/Make-in	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/Make-in	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 # Makefile for program source directory in GNU NLS utilities package.
 # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file may be copied and used freely without restrictions.  It can
 # be used in projects which are not available under the GNU Public License
@@ -20,10 +20,10 @@ top_builddir = @top_builddir@
 
 prefix = @prefix@
 exec_prefix = @exec_prefix@
-datadir = $(prefix)/@DATADIRNAME@
-localedir = $(datadir)/locale
-gnulocaledir = $(prefix)/share/locale
-gettextsrcdir = $(prefix)/share/gettext/po
+datadir = @datadir@
+localedir = @localedir@
+gnulocaledir = @datarootdir@/locale
+gettextsrcdir = @datarootdir@/gettext/po
 subdir = po
 
 DESTDIR =
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/ro.gmo ./bfd/po/ro.gmo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/ro.gmo	2018-01-02 02:07:01.000000000 +0000
+++ ./bfd/po/ro.gmo	2018-01-09 02:08:39.000000000 +0000
@@ -11,21 +11,23 @@ C.4C0cC/”CFÄC>
 |4D|7y|7±|$é|V}e}5‚}¸}
 Í}#Ø}ü}~0~E~R~a~
~/�~+½~8é~""AId®Á$Ó6ø/€L€b€t€…€•€	¥€¯€¸€Á€
 Ø€"ã€%�,�8�X�)m�/—�Ç�.æ�,‚B‚:^‚%™‚%¿‚å‚"þ‚[!ƒ?}ƒ½ƒÜƒåƒ*„&+„R„j„$}„¢„$´„Ù„!ù„…D5…Dz…/¿…ï…?†A†R†r†J‰†7Ô†*‡7‡O‡%e‡‹‡ž‡»‡JØ‡J#ˆJnˆI¹ˆ:‰;>‰:z‰6µ‰iì‰DVŠd›ŠF‹CG‹‹‹@ª‹8ë‹7$Œ\Œ|ŒŽŒ Œ2µŒ.èŒ�d/�”�%±�×�ô�7ŽHŽ!aŽ-ƒŽ+±Ž+ÝŽ		�	�
-� (�1I�&{�¢�&µ�Ü�û��$.�"S�v�,”�BÁ�D‘*I‘Lt‘ Á‘xâ‘[’q’‡’*¦’ Ñ’ò’“&“:“O“e“y“N�“!ß“””0”D”X” l”&�” ´”#Õ”(ù”9"•\•3w•!«•$Í•0ò•#–?–V–h–7–·–Ð–â–!õ–-—0E—=v—/´—6ä—P˜l™"‹™®™Æ™%Ú™5š#6š(ZšƒšB“š)Öš››7›P›"_›$‚›$§›Ì›â›1÷›=)œFgœ:®œéœ<ûœ;8�=t�H²�-û�J)ž-tžP¢žóž	ŸJ"ŸmŸ�Ÿ@ŸŸ8àŸ8 R c € � ¸ × ä ø ¡%¡8¡K¡	]¡
g¡
u¡
-ƒ¡
-Ž¡
-™¡¤¡¸¡
-Á¡1Ì¡&þ¡)%¢
-O¢Z¢#r¢A–¢&Ø¢$ÿ¢	$£3.£b£j£~£	—£¡£ª£	³£½£É£Ò£Û£	ä£
-î£ù£	¤¤#¤0¤J¤b¤q¤�¤­¤ ¿¤:à¤}¥z™¥¦2-¦5`¦6–¦>Í¦,§)9§0c§:”§ƒÏ§*S¨E~¨Ä¨;à¨;©)X©³‚©86ª5oªa¥ª3«.;«$j«X�«6è«%¬%E¬6k¬-¢¬1Ð¬;­A>­O€­DÐ­<®0R®3ƒ®C·®=û®69¯*p¯.›¯+Ê¯7ö¯>.°7m°2¥°QØ°8*±dc±3È±Aü±„>²=Ã²(³(*³]S³5±³Tç³F<´?ƒ´OÃ´PµCdµU¨µ.þµ$-¶DR¶D—¶BÜ¶ ·"@·6c·"š·½·@Û·G¸7d¸;œ¸0Ø¸0	¹,:¹Xg¹=À¹0þ¹0/ºH`ºI©º;óº"/»6R»'‰»1±»$ã»!¼?*¼Ij¼J´¼1ÿ¼\1½HŽ½+×½¾2!¾-T¾7‚¾7º¾?ò¾E2¿Ex¿D¾¿7ÀG;ÀCƒÀ,ÇÀHôÀ1=Á0oÁ0 ÁJÑÁ4Â(QÂ(zÂD£Â;èÂ/$Ã?TÃ+”Ã-ÀÃ îÃ'Ä37Ä'kÄE“ÄSÙÄ-Å?LÅiŒÅMöÅKDÆU�ÆTæÆW;ÇR“ÇdæÇNKÈKšÈvæÈB]É0 ÉÑÉVðÉ9GÊ7�Ê ¹Ê2ÚÊ4
Ë'BË5jË8 Ë5ÙË7Ì;GÌ†ƒÌv
-ÍR�Í>ÔÍBÎ:VÎ=‘Î2ÏÎ0Ï3Ï3JÏ8~Ï·ÏÒÏîÏ	ÐÐ:*Ð3eÐ!™Ð;»ÐE÷Ð$=Ñ1bÑ7”ÑYÌÑE&Ò0lÒM�Ò6ëÒ;"ÓZ^ÓT¹ÓJÔ8YÔ1’ÔAÄÔAÕ5HÕ.~Õ+­Õ-ÙÕ-Ö.5ÖLdÖ;±Ö3íÖ9!×;[×'—×¿×(Ù×*Ø2-Ø`Ø.|Ø«Ø5ÁØ!÷Ø4Ù.NÙA}Ù>¿Ù"þÙ%!ÚiGÚW±ÚX	ÛUbÛU¸ÛGÜBVÜ7™ÜFÑÜIÝ\bÝE¿Ý:ÞE@Þ?†Þ7ÆÞ;þÞ„:ßY¿ßLàKfà2²à4åàIáJdáR¯áKâCNâ3’âÆâ)Óâ5ýâ3ã8Gã€ã”ã¨ã)½ãçã ôã@ä%Vä>|ä»ä1Ûä7
åEå"Uå$xå0�åÎåÝåûå*æ<æYOæ0©æ8Úæ6ç4Jç9ç^¹çBè[[èn·èo&éM–é7äé`ê_}êMÝêK+ë_wëK×ë]#ì_�ìAáìF#íAjíB¬íBïí&2îVYî°î4Ëî ï
!ï,/ï\ï'|ï¤ï¼ïÍï Þïÿï5ð7Oð4‡ð#¼ð&àðKñSñfñ%xñ<žñÛñûñò
#ò
1ò?ò	LòVò
jòxò—ò#¦ò6Êò
-óó%ó<;óDxó½ó0Ýó.ô=ô=Xô$–ô+»ôçô,õa3õH•õ#Þõöö,$ö'Qöyö“ö*§öÒö/ãö,÷5@÷v÷H’÷HÛ÷2$øWøTjø¿ø'ÎøöøYùAnù2°ùãùþù"ú;úLúlúI‡úPÑúN"ûPqû;ÂûCþûGBüGŠü‡ÒüfZý�ÁýTOþP¤þ5õþR+ÿ?~ÿS¾ÿ#6HZ3v-ªØfø_%|+¢"ÎUñG"a6„4»4ð	%	/
-9!D8f5ŸÕ,í-H"\$8¤"Ý.J/Kz;ÆT$W”|%#97]"•,¸å >]zK™"å	#	8	M	b	!w	'™	Á	$á	)
-:0
-k
-D‰
->Î
-'
45jˆŸ´2Ï!2)D4n?£Fã8*
Jc
Á÷6éÇ™4,õ
¯a;ëçÚYªQ>®öe7K�1V°U$•	(½Ó
+� (�1I�&{�¢�&µ�Ü�û��$.�"S�v�,”�BÁ�D‘*I‘Lt‘ Á‘xâ‘[’q’‡’*¦’ Ñ’ò’“&“:“O“e“y“N�“!ß“””0”D”X” l”&�” ´”#Õ”(ù”9"•\•3w•!«•$Í•0ò•#–?–V–h–7–·–Ð–â–!õ–-—0E—=v—/´—6ä—�˜¬™"Ë™î™š%š5@š#vš(ššÃšBÓš)›@›]›w›�›"Ÿ›$Â›$ç›œ"œ17œ=iœF§œ:îœ)�<;�;x�=´�Hò�-;žJiž-´žPâž3ŸIŸJbŸ­ŸÍŸ@ßŸ8  8Y ’ £ À Ý ø ¡$¡8¡Q¡e¡x¡‹¡	�¡
§¡
µ¡
+Ã¡
+Î¡
+Ù¡ä¡ø¡
+¢1¢&>¢)e¢
+�¢š¢#²¢AÖ¢&£$?£	d£3n£¢£ª£¾£	×£á£ê£	ó£ý£	¤¤¤	$¤
+.¤9¤	H¤R¤c¤p¤Š¤¢¤±¤Ð¤í¤ ÿ¤: ¥}[¥zÙ¥T¦2m¦5 ¦6Ö¦>
§,L§)y§0£§:Ô§ƒ¨*“¨E¾¨©; ©;\©)˜©³Â©8vª5¯ªaåª3G«.{«$ª«XÏ«6(¬%_¬%…¬6«¬-â¬1­;B­A~­OÀ­D®<U®0’®3Ã®C÷®=;¯6y¯*°¯.Û¯+
+°76°>n°7­°2å°Q±8j±d£±3²A<²„~²=³(A³(j³]“³5ñ³T'´F|´?Ã´OµPSµC¤µUèµ.>¶$m¶D’¶D×¶B· _·"€·6£·"Ú·ý·@¸G\¸7¤¸;Ü¸0¹0I¹,z¹X§¹=º0>º0oºH ºIéº;3»"o»6’»'É»1ñ»$#¼!H¼?j¼Iª¼Jô¼1?½\q½HÎ½+¾C¾2a¾-”¾7Â¾7ú¾?2¿Er¿E¸¿Dþ¿7CÀG{ÀCÃÀ,ÁH4Á1}Á0¯Á0àÁJÂ4\Â(‘Â(ºÂDãÂ;(Ã/dÃ?”Ã+ÔÃ-Ä .Ä'OÄ3wÄ'«ÄEÓÄSÅmÅ?ŒÅiÌÅM6ÆK„ÆUÐÆT&ÇW{ÇRÓÇd&ÈN‹ÈKÚÈv&ÉB�É0àÉÊV0Ê9‡Ê7ÁÊ ùÊ2Ë4MË'‚Ë5ªË8àË5Ì7OÌ;‡Ì†ÃÌvJÍRÁÍ>ÎBSÎ:–Î=ÑÎ2Ï0BÏsÏ3ŠÏ8¾Ï÷ÏÐ.ÐIÐ[Ð:jÐ3¥Ð!ÙÐ;ûÐE7Ñ$}Ñ1¢Ñ7ÔÑYÒEfÒ0¬ÒMÝÒ6+Ó;bÓZžÓTùÓJNÔ8™Ô1ÒÔAÕAFÕ5ˆÕ.¾Õ+íÕ-Ö-GÖ.uÖL¤Ö;ñÖ3-×9a×;›×'××ÿ×(Ø*BØ2mØ Ø.¼ØëØ5Ù!7Ù4YÙ.ŽÙA½Ù>ÿÙ">Ú%aÚi‡ÚWñÚXIÛU¢ÛUøÛGNÜB–Ü7ÙÜFÝIXÝ\¢ÝEÿÝ:EÞE€Þ?ÆÞ7ß;>ß„zßYÿßLYàK¦à2òà4%áIZáJ¤áRïáKBâCŽâ3Òâã)ã5=ãsã8‡ãÀãÔãèã)ýã'ä 4ä@Uä%–ä>¼äûä1å7Må…å"•å$¸å0Ýåææ;æ*Qæ|æY�æ0éæ8ç6Sç4Šç9¿ç^ùçBXè[›èn÷èoféMÖé7$ê`\ê_½êMëKkë_·ëKì]cì_ÁìA!íFcíAªíBìíB/î&rîV™îðî4ï @ï
aï,oïœï'¼ïäïüï
ð ð?ð5Yð7�ð4Çð#üð& ñKGñ“ñ¦ñ%¸ñ<Þñò;òQò
cò
qòò	Œò–ò
ªò¸ò×ò#æò6
+ó
+AóLóeó<{óD¸óýó0ô.Nô}ô=˜ô$Öô+ûô'õ,FõasõHÕõ#öBöKö,dö'‘ö¹öÓö*çö÷/#÷,S÷5€÷¶÷HÒ÷Hø2dø—øTªøÿø'ù6ùYTùA®ù2ðù#ú>ú"Xú{úŒú¬úIÇúPûNbûP±û;üC>üG‚üGÊü‡ýfšý�þT�þPäþ55ÿRkÿ?¾ÿSþÿ#Rvˆš3¶-êf8Ÿ%¼+â"U1‡"¡6Ä4û40	e	o
+y!„8¦5ß,--Zˆ"œ$¿8ä".@JoKº;TB$—”¼Qe#y7�"Õ,ø%B`~�ºKÙ"%	H	c	x	�	¢	!·	'Ù	
+$!
+)F
+:p
+«
+DÉ
+>'M4uªÈßô2Bar)„4®?ãF#
8j
J£
Á÷6éÇ™4,õ
¯a;ëçÚYªQ>®öe7K�1V°U$•	(½Ó
 ˆ¬Žhøn#SI�%Ú×ÀP±T‹}p‘¦5î+HBøW—S€¡‘!{F×³¢ÅXEµ#¤	‚±Æ)Œ %ÅÂ¶`ˆ.mÁg·w?(Ÿz+¸€
 À!) y|¥•Õ[úƒ½›[GDÿmç‰†YÈÝy6‹ot*tååðæßIºJ­E\ù¼AU³¼u6:ëzÔž†"¡„C¥ìnq­¶XÃ�¯o'«0Bí¹â|2�ï2J@ï5«õ:/V®
þx˜‡h/‚Lðc—?š‡O¿3ôú
²öªã“äjdD°ŽE�Ë=ùJ’š�]C}�\Î*ÏŠŠ<B‰·µ»àóK3_1v.^' ñÃM&ÿRk4ãýÑ£bÏè´9ûêìp§ÕAò!ÒL8Ô¾c˜¾TòF…Pá÷ÆÍô &ä2~vkZ1“i{Ùx$AÊL=)²M©W7íOÇÞHÖž´fé¦~–œI?0q’e›âÜ�b-9lêÌZ"7Ê”Œ$ÌG^ÄœÉý¤iÓÑàl]î¨:ó8™/9Q5sÜD`*@ËÐñÐG-©C-ÛP0NÎüRdrØ<>ujƒÒæ3ÈèOg¸¨,Þ('@�Ä
 K+%&a£	H=;N…ßÖ§8NºŸ„û¿<Û» ”,ÉM¬"r¹sþ�¢_áØF#Ý4ü;–QÍ.w>fÙÂ	Export Address Table 			Export Address Table 		%08lx
@@ -177,6 +179,7 @@ POT-Creation-Date: 2003-07-11 13:53+0930
 PO-Revision-Date: 2003-11-25 08:39+0200
 Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>
 Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>
+X-Bugs: Report translation errors to the Language-Team address.
 MIME-Version: 1.0
 Content-Type: text/plain; charset=ISO-8859-2
 Content-Transfer-Encoding: 8bit
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/ro.po ./bfd/po/ro.po
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/ro.po	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/ro.po	2018-01-09 02:04:54.000000000 +0000
@@ -9,6 +9,7 @@ msgstr ""
 "PO-Revision-Date: 2003-11-25 08:39+0200\n"
 "Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-2\n"
 "Content-Transfer-Encoding: 8bit\n"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/ru.gmo ./bfd/po/ru.gmo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/ru.gmo	2018-01-02 02:07:01.000000000 +0000
+++ ./bfd/po/ru.gmo	2018-01-09 02:08:39.000000000 +0000
@@ -22,26 +22,27 @@
 &)Pp‚‰(�¹'Ëó(H#`$„,©.Ö,
.2
a
"~
,¡
.Î
!ý
10Q2‚,µ.â#5U(i/’!Âä(#*+Nz,“ Àáú.N#m-‘"¿âô7Pew2’$Å&ê	1!;]DwD¼/1/C?s³ÄäûJ7bš*´ß÷%6L#i%�³ÆãJJ]J¨Ió:=;x:´Eï659l7¦9ÞQ/jBš@Ý.=M&‹.²/á-i?D©dî,SF€fÇC.r#‘@µ8ö7/g	‡‘­¿Ñ<æ2# .V … � ¤ ¼ dÔ 9!6L!@ƒ!=Ä!d"gg"bÏ"=2#Ep#1¶#(è#$$6$4L$'�$$©$7Î$%%/%F%W%o%‡%™%«%½%Ï%é%&&'&?&^&2}&°&-É&+÷&+#'*O'	z'	„'
 Ž'™'®'½'Ò'á'1æ'(7('V("~(¡(¿(Ô(Ý(]û(=Y)(—)ZÀ)Z*Ev*A¼*Gþ*WF+Wž+9ö+90,4j,9Ÿ,4Ù,2-7A-5y-7¯-.ç-2. I.[j.@Æ.:/#B/=f/<¤/Ná/-00O^0 ®0>Ï091
 H11S1&…1&¬1!Ó1õ1,27A2
y2‡2š2®2Á27Ô23$,3"Q3At3¶3,Ô32444¾D4»5¿5Ú5õ5B6DX6*�6LÈ67*7y97³70»7ì78888298Ol8¼8*Û8 9'9KE9‘9ž9 ¸9Ù9í9::,:B:Y:v:‡:›:N£:ò:#ö:6;Q; q;8’;Ë;Ý;í;õ;
-<<2<F<Y<Ll< ¹<DÚ<=1=D=3_=!“=µ="¼=ß=ï=þ=%>'7>$_>)„>*®>Ù>0õ>,&?S?q?‹?“?
«?%¹?ß?'÷?@9@P@b@y@7�@È@á@ó@AA.ADA-cA)‘A>»AgúAxbB-ÛB!	C7+CcC!|C;žC0ÚC5D<AD<~D2»D/îD.E=ME/‹E6»E,òEèF>HDGH0ŒH7½HZõHKPI:œI<×IJ`&J.‡J¶J%ÕJ+ûJ'K$9K&^K%…K3«K#ßK(L8,LveLHÜL_%MG…M(ÍMöMGvNH¾NDO~LOTËO| PŠ�PL(QˆuQþQ$Rz@RT»RS.S5BS)xS>¢S&áSMTVThT!xTDšTDßTD$U-iU$—U¼UÅU'ÑU4ùU%.VTVtV*‘V7¼V(ôVW,=W!jW%ŒW'²W8ÚWX-#X!QX+sXŸX²XÑXðXHYUYkY$xY*�Y*ÈYEóYJ9ZC„ZSÈZ+[&H[o[)�[·[Ò[ë[@\D\6d\›\³\7Î\]!]"@]<c] ]¯]
¾]Ì]+é]B^#X^|^/˜^)È^*ò^_#<_`_s_9_¹_Ë_6Ý_`<(`e`?y`¹`Ê`#Ý`aa0a(Ia;ra®a-Âa#ða#b8b#Wb#{bŸbz³b.c4c<c1Ac
-sc~cƒc:‰cHÄc
dd(d.@dodCtd¸dP½deee e%e+e/e?4e7te¬e(±eÚe&õe(fEfJfOfVf\fafzf1�f³f6ºf1ñf#g9gOgeg{g‘g	­g
·g
Åg
-Óg
-Þg
-ég/ôg
-$h/ha6h
-˜h~£hv"i
-™i#¤i5ÈiGþiFFjA�jNÏj.kMklk~k•k"¡kÄkØk.ßk2lAlA^l3 lÔlAòl
4mBmImhm„mO¢mXòm Knln~n˜nS¬n#oA$o/fo(–o"¿oâo8p&9p+`p.ŒpU»pRqdq€qJ›qæqHrYNrV¨rÿr9sTs-ps:žs,ÙsstÜztÁWu¼v'Öv}þv_|wXÜw=5xCsx5·x%íxxy}Œyy
-z2„zV·zy{Sˆ{PÜ{\-|NŠ|qÙ|>K}|Š}�~˜~{¡~CUaD·Iü|F€Ã€nC�n²�a!‚—ƒ‚Dƒm`ƒÆÎƒ”•„`*…?‹…cË…Z/†oŠ†lú†`g‡zÈ‡bCˆ|¦ˆb#‰Ÿ†‰Ÿ&ŠŸÆŠ€f‹	ç‹_ñŒàQ�§2Ž…ÚŽY`�gº�©"�{Ì�ÛH‘N$’…s’wù’`q“ÅÒ“M˜”Ãæ”Gª•>ò•k1–D�–Uâ–B8—`{—`Ü—f=˜U¤˜¨ú˜q£™sš\‰šPæšx7›r°›^#œU‚œPØœU)�I�tÉ�t>ž]³žPŸbbŸkÅŸ†1 ™¸ —R¡§ê¡ã’¢Wv£kÎ£W:¤m’¤†¥w‡¥uÿ¥^u¦tÔ¦OI§Y™§¢ó§l–¨y©c}©Eá©i'ª‹‘ª|«lš«U¬:]¬q˜¬{
-­:†­YÁ­<®OX®>¨®Iç®:1¯el¯^Ò¯1°_±°|±�Ž±L,²[y²NÕ²k$³b�³hó³N\´Q«´1ý´]/µ›�µT)¶K~¶GÊ¶B·JU·& ·NÇ·a¸›x¸›¹­°¹®^ºn
»D|»uÁ»>7¼lv¼”ã¼|x½Põ½mF¾9´¾~î¾Xm¿]Æ¿~$À¥£À@IÁŠÁg
-Â?rÂl²ÂOÃ>oÃL®ÃUûÃ\QÄb®Ä\Å:nÅU©ÅDÿÅ5DÆozÆ5êÆa Ç<‚ÇV¿ÇQÈYhÈcÂÈN&É�uÉTÊÌZÊË'Ë—óË¨‹Ìp4ÍQ¥Íy÷ÍeqÎS×ÎC+ÏŒoÏHüÏkEÐÔ±Ðl†ÑóÑ8sÒD¬Ò.ñÒi Ó•ŠÓŠ Ôx«Ô·$ÕpÜÕ´MÖ©×t¬×º!Ø¸ÜØ¿•ÙUÚWÕÚe-Û9“Û`ÍÛ\.ÜB‹ÜpÎÜl?ÝY¬Ý\ÞacÞPÅÞIßL`ß4­ßlâßmOàl½àl*án—á‡â†ŽâJãL`ã?­ã\íãjJänµäF$åKkåY·åGæ{YæRÕæ0(çZYç#´çOØçH(è<qè\®èWéEcéF©éEðéN6êM…ê—Óê‰kë—õëF�ìyÔì‘Níkàí|Lî}Éî|GïqÄïy6ðl°ð—ñVµñ^ò7kòY£òQýòIOóI™ó‰ãóumô’ãôšvõ}öJ�ö…Úö`÷W€÷[ØøW4ù~Œù„úM�úTÞúO3ûQƒû_ÕûN5üP„ü^ÕüP4ýN…ýNÔý—#þ„»þg@ÿ>¨ÿmçÿoUGÅA
–OOæ]6f”uû=qY¯™	w£AM]{«?'Dgí¬.š[É|%A¢qä	TV
-e«
-WriLÜ2)S\C°Fôº;
`ö
FWWžlöFcjªIL_]¬^
-ii[ÓI/FyqÀ‡2Bºý %9e_GÅ
�§¬CTþ˜Q—¦é]�YîUH‹žo*ošS
-g^UÆLMiP·IvRŠÉqTLÆ‡‚›J xi xâ Y[!Yµ!|"žŒ"Y+#a…#�ç#Gi$\±$�%9�%}Ê%�H&—Ê&pb'nÓ'zB(y½(}7)nµ)�$*uµ*„++µ°+hf,[Ï,•+-dÁ-F&.jm.&Ø.ÿ.%/TE/nš/‚	0YŒ0aæ0UH1€ž112;Q2H�2IÖ2Ã 3ˆä3ˆm4jö4<a5ož5Z6hi6¡Ò6|t7|ñ7×n8,F9s9‹9¦9½9%Ö9¼ü9’¹:$L;7q;©;7¬;ä;><@<W<v<,�<½<)Ö<X=Y=r=(ò=>4>=>Y>v>@“>?Ô>?I+?Mu?WÃ?f@k‚@î@NAROAX¢A{ûAuwB)íB?C8WC�C¡C:¥CàCòCDDD6[D?’DEÒD.E3GE?{E.»E.êE1F/KF1{F'­F)ÕF)ÿF,)GVG4tG0©G4ÚG/HY?H™HN¹H9I\BI�ŸIn!Je�JSöJÁJK¡L|®LS+M/M5¯M åM‡NIŽN,ØNLO#RO vOO—OçO0ùO/*P3ZP&ŽPµP'ËP óPQp&QX—QYðQ6JRK�RÍR7ßRS4)Sg^SRÆSƒTh�T;U1BUxtUIíU7V!UV4wVd¬VW7#W)[W8…W¾WWÐW(X:XLX'hX�XE°X"öX#Y =Y^YpYwYƒY2—YÊY>âYX!ZzZŠZ"¦Z2ÉZüZ[@6[#w[;›[×[õ["\44\[i\,Å\ò\],&]2S]:†]_Á]e!^‡^™^«^²^E¹^Bÿ^@B_%ƒ_E©_0ï_1 `CR`z–`€aX’aHëaÅ4bkúbMfc,´cTác6d'UdE}dÃd<ÕdHe[emeteb{eÞeCðe-4f#bf1†f"¸f4Ûf:g[KgO§g[÷gOSh?£hBãh[&iO‚iIÒibjojcïj[SkO¯kBÿkBBl"…lM¨lPöl3Gm5{mR±mFnVKn4¢nI×n7!o>YoH˜o$áoCp9JpJ„pVÏpB&qiq3{q'¯q$×q0üq1-r%_r7…r^½r9sTVsF«s
-òsLýs'Jt_rt_Òtq2u.¤ubÓuq6v¨v3Çv)ûv1%wWw`wjàw2KxU~x6Ôx+y37y0ky5œy8Òy3zO?z3�z?Ãz={A{¦S{—ú{“’|“&}€º}P;~—Œ~}$€¢n#€l’€nÿ€øn�¶g‚ŸƒÅ¾ƒq„„ ö„d—…mü…dj†^Ï†À.‡Šï‡ÝzˆfX‰¹¿‰®yŠs(‹bœ‹Sÿ‹oSŒ]ÃŒ~!�C �	ä�+î�Ž5Ž PŽ[qŽeÍŽT3�
-ˆ�?“�Ó�2ë�¤�!Ã�Vå�^<‘L›‘´è‘É�’žg“[”jb”JÍ”A•)Z•„•’¢•5–Dµ–‰ú–+„—>°—1ï—+!˜>M˜8Œ˜,Å˜,ò˜,™,L™@y™:º™,õ™+"š8NšK‡šCÓšF›.^›e�›có›cWœK»œ
-�
-��%)�O�^�s�‚�8‹�<Ä�.žb0ž[“ž&ïžŸ-Ÿ16Ÿ¿hŸ{( >¤ Ïã Ï³¡fƒ¢~ê¢€i£íê£ÊØ¤‚£¥~&¦v¥¦{§v˜§t¨Š„¨w©Š‡©^ª^qªLÐªß«_ý«€]¬XÞ¬^7­l–­~®@‚®†Ã®@J¯_‹¯Zë¯F°[]°G¹°I±DK±W�±gè±{P²Ì²3è²³0³C³mV³:Ä³Hÿ³TH´€�´Fµieµ^Ïµ!.¶JP¶M›·:é¸9$¹P^¹}¯¹�-º]¯º�
»)ž»!È»ê»½i½5~½´½¼½Ä½#Ñ½uõ½¨k¾G¿f\¿DÃ¿FÀ¡OÀñÀ8ÁUDÁ'šÁ(ÂÁ)ëÁ'Â)=Â*gÂ%’Â!¸ÂÚÂðÂ“øÂŒÃB“ÃhÖÃT?ÄW”ÄmìÄ&ZÅ)�Å«Å³ÅÐÅæÅúÅÆ!Æv4Æ,«ÆŒØÆ"eÇ(ˆÇ=±ÇlïÇX\ÈµÈ?ÂÈÉÉ!ÉB;ÉD~É>ÃÉdÊbgÊ2ÊÊSýÊQQË=£Ë1áËÌ-(Ì#VÌ[zÌ5ÖÌMÍ9ZÍ+”Í7ÀÍ>øÍ77Î€oÎ?ðÎ0ÏLÏiÏ‡Ï¥Ï)ÅÏKïÏU;Ðk‘ÐðýÐîÑg
-ÓPrÓ€ÃÓBDÔT‡Ô\ÜÔz9Õg´ÕuÖu’Öh×dq×WÖ×}.Øk¬ØoÙJˆÙê:Š;–Îý#ë¾>ÏÅÏÊýˆ>ñ†)Œô-ÌšúüeÆFR KÔú>N<Ù•º;9/½ÞZ~24ÊlŠbuƒ÷P’‚»O�,æ´è-ÆM³4	‰.¥±Rÿ¡—«ì�”@�€°^Ð
ã÷ª=×äW@©D�
ÇÝL_ð¡ºàßÍœS5¦óà’Ê¿}ti›û(cÁs^8]ñPž]®*º™qûZ7Ë„¹PŸqÀóÛŽïa6Àç¨/TõË{Ev®‚xQÍ¸Ãƒ/œ7ô€ëž›Å¤Ò©cyM!A†¦
+<<2<F<Y<Ll< ¹<DÚ<=1=D=3_=!“=µ="¼=ß=ï=þ=%>'7>$_>)„>*®>Ù>0õ>,&?S?q?‹?“?
«?%¹?ß?'÷?@9@P@b@y@7�@È@á@ó@AA.ADA-cA)‘A>»AgúAxbB-ÛB!	C7+CcC!|C;žC0ÚC5D<AD<~D2»D/îD.E=ME/‹E6»E,òE(F>HHD‡H0ÌH7ýHZ5IK�I:ÜI<JTJ`fJ.ÇJöJ%K+;KgK$yK&žK%ÅK3ëK#L(CL8lLv¥LHM_eMGÅM(
N6NG¶NHþNDGO~ŒOTP|`PŠÝPLhQˆµQ>R$[Rz€RTûRPSnS5‚S)¸S>âS&!TMHT–T¨T!¸TDÚTDUDdU-©U$×UüUV'V49V%nV”V´V*ÑV7üV(4W]W,}W!ªW%ÌW'òW8XSX-cX!‘X+³XßXòXY0YHLY•Y«Y$¸Y*ÝY*ZE3ZJyZCÄZS[+\[&ˆ[¯[)Í[÷[\+\@C\„\6¤\Û\ó\7]F]a]"€]<£]à]ï]
þ]^+)^BU^#˜^¼^/Ø^)_*2_]_#|_ _³_9¿_ù_`6`T`<h`¥`?¹`ù`
+a#aAaZapa(‰a;²aîa-b#0b#Tbxb#—b#»bßbzóbnctc|c1�c
+³c¾cÃc:ÉcHdMdRd(Wd.€d¯dC´dødPýdNeUe[e`eeekeoe?te7´eìe(ñef&5f(\f…fŠf�f–fœf¡fºf1Áfóf6úf11gcgyg�g¥g»gÑg	íg
÷g
h
+h
+h
+)h/4h
+dhohavh
+Øh~ãhvbi
+Ùi#äi5jG>jF†jAÍjNk.^k�k¬k¾kÕk"ákll.l2Nl�lAžl3àlmA2m
tm‚m‰m¨mÄmOâmX2n ‹n¬n¾nØnSìn#@oAdo/¦o(Öo"ÿo"p8@p&yp+ p.ÌpUûpRQq¤qÀqJÛq&rHErYŽrVèr?s9Zs”s-°s:Þs,tsFtÜºtÁ—u¼Yv'w}>w_¼wXx=uxC³x5÷x%-yxSy}ÌyyJz2ÄzV÷zyN{SÈ{P|\m|NÊ|q}>‹}|Ê}�G~Ø~{á~C]U¡D÷I<€|†€�nƒ�nò�aa‚—Ã‚D[ƒm ƒÆ„”Õ„`j…?Ë…c†Zo†oÊ†l:‡`§‡zˆbƒˆ|æˆbc‰ŸÆ‰ŸfŠŸ‹€¦‹	'Œ_1�à‘�§rŽ…�Y �gú�©b�{‘Ûˆ‘Nd’…³’w9“`±“Å”MØ”Ã&•Gê•>2–kq–DÝ–U"—Bx—`»—`˜f}˜Uä˜¨:™qã™sUš\ÉšP&›xw›rð›^cœUÂœP�Ui�I¿�t	žt~ž]óžPQŸb¢Ÿk †q ™ø —’¡§*¢ãÒ¢W¶£k¤Wz¤mÒ¤†@¥wÇ¥u?¦^µ¦t§O‰§YÙ§¢3¨lÖ¨yC©c½©E!ªigª‹Ñª|]«lÚ«UG¬:�¬qØ¬{J­:Æ­Y®<[®O˜®>è®I'¯:q¯e¬¯^°q°_ñ°|Q±�Î±Ll²[¹²N³kd³bÐ³h3´Nœ´Që´1=µ]oµ›ÍµTi¶K¾¶G
+·BR·J•·&à·N¸aV¸›¸¸›T¹­ð¹®žºnM»D¼»u¼>w¼l¶¼”#½|¸½P5¾m†¾9ô¾~.¿X­¿]À~dÀ¥ãÀ@‰ÁÊÁgJÂ?²ÂlòÂO_Ã>¯ÃLîÃU;Ä\‘ÄbîÄ\QÅ:®ÅUéÅD?Æ5„ÆoºÆ5*Ça`Ç<ÂÇVÿÇQVÈY¨ÈcÉNfÉ�µÉTEÊÌšÊËgË—3Ì¨ËÌptÍQåÍy7Îe±ÎSÏCkÏŒ¯ÏH<Ðk…ÐÔñÐlÆÑ3Ò8³ÒDìÒ.1Ói`Ó•ÊÓŠ`ÔxëÔ·dÕpÖ´�Ö©B×tì×ºaØ¸Ù¿ÕÙ•ÚWÛemÛ9ÓÛ`
Ü\nÜBËÜpÝlÝYìÝ\FÞa£ÞPßIVßL ß4íßl"àm�àlýàlján×á‡Fâ†ÎâJUãL ã?íã\-äjŠänõäFdåK«åY÷åGQæ{™æRç0hçZ™ç#ôçOèHhè<±è\îèWKéE£éFééE0êNvêMÅê—ë‰«ë—5ìFÍìyí‘Žík î|Œî}	ï|‡ïqðyvðlðð—]ñVõñ^Lò7«òYãòQ=óI�óIÙó‰#ôu­ô’#õš¶õ}QöJÏö…÷ ÷WÀ÷[ùWtù~Ìù„KúMÐúTûOsûQÃû_üNuüPÄü^ýPtýNÅýNþ—cþ„ûþg€ÿ>èÿm'o•GAM–�O&]vfÔu;=±Yï™IwãA[M�{ë?gD§íì.Ú[	|eAâq$
+T–
+eë
+WQr©L2iSœCðF4
º{
`6F—WÞl6F£jêIULŸ]ì^Ji©[IoF¹q‡rBú= X%yeŸGM�\§ìC”þØQ×¦)]ÐY.Uˆ‹ÞojoÚSJgžUL\M©P÷IHv’Š	q”L‡S‚ÛJ^ x© x"!Y›!Yõ!|O"žÌ"Yk#aÅ#�'$G©$\ñ$�N%9Ð%}
+&�ˆ&—
+'p¢'n(z‚(yý(}w)nõ)�d*uõ*„k+µð+h¦,[-•k-d.Ff.j­.&/?/%_/T…/nÚ/‚I0YÌ0a&1Uˆ1€Þ11_2;‘2HÍ2I3Ã`3ˆ$4ˆ­4j65<¡5oÞ5ZN6h©6¡7|´7|18×®8,†9³9Ë9æ9ý9%:¼<:’ù:$Œ;7±;é;7ì;$<>A<€<—<¶<,Ð<ý<)=X@=™=²=(2>[>t>}>™>¶>@Ó>??T?Ik?Mµ?W@f[@kÂ@.AN@AR�AXâA{;Bu·B)-C?WC8—CÐCáC:åC D2DDDDVD6›D?ÒDEE.XE3‡E?»E.ûE.*F1YF/‹F1»F'íF)G)?G,iG–G4´G0éG4H/OHYHÙHNùH9HI\‚I�ßInaJeÐJS6KÁŠK¡LL|îLSkM/¿M5ïM %N‡FNIÎN,OLEO#’O ¶OO×O'P09P/jP3šP&ÎPõP'Q 3QTQpfQX×QY0R6ŠRKÁR
S7SWS4iSgžSRTƒYThÝT;FU1‚Ux´UI-VwV!•V4·VdìVQW7cW)›W8ÅWþWWXhXzXŒX'¨XÐXEðX"6Y#YY }YžY°Y·YÃY2×Y
+Z>"ZXaZºZÊZ"æZ2	[<[\[@v[#·[;Û[\5\"Q\4t\[©\,]2]H],f]2“]:Æ]_^ea^Ç^Ù^ë^ò^Eù^B?_@‚_%Ã_Eé_0/`1``C’`zÖ`€QaXÒaH+bÅtbk:cM¦c,ôcT!dvd'•dE½de<eHRe›e­e´eb»efC0f-tf#¢f1Æf"øf4g:Pg[‹gOçg[7hO“h?ãhB#i[fiOÂiIjb\jo¿jc/k[“kOïkB?lB‚l"ÅlMèlP6m3‡m5»mRñmFDnV‹n4ânIo7ao>™oHØo$!pCFp9ŠpJÄpVqBfq©q3»q'ïq$r0<r1mr%Ÿr7År^ýr9\sT–sFës
+2tL=t'Št_²t_uqru.äubvqvvèv3w);w1ew—w wj x2‹xU¾x6y+Ky3wy0«y5Üy8z3KzOz3Ïz?{=C{�{¦“{—:|“Ò|“f}€ú}P{~—Ì~}d€ânc€lÒ€n?�ø®�¶§‚Ÿ^ƒÅþƒqÄ„ 6…d×…m<†dª†^‡Àn‡Š/ˆÝºˆf˜‰¹ÿ‰®¹Šsh‹bÜ‹S?Œo“Œ]�~a�Cà�	$Ž+.ŽZŽuŽ �Ž[±Že
�Ts�
+È�?Ó��2+�¤^�!‘V%‘^|‘LÛ‘´(’ÉÝ’ž§“[F”j¢”J
•AX•)š•Ä•’â•u–Dõ–‰:—+Ä—>ð—1/˜+a˜>�˜8Ì˜,™,2™,_™,Œ™@¹™:ú™,5š+bš8ŽšKÇšC›FW›.ž›eÍ›c3œc—œKûœ
+G�
+R�]�%i���ž�³�Â�8Ë�<ž.Ažbpž[Óž&/ŸVŸmŸ1vŸ¿¨Ÿ{h >ä Ï#¡Ïó¡fÃ¢~*£€©£í*¤Ê¥‚ã¥~f¦vå¦{\§vØ§tO¨ŠÄ¨wO©ŠÇ©^Rª^±ªL«ß]«_=¬€�¬X­^w­lÖ­~C®@Â®†¯@Š¯_Ë¯Z+°†°[�°Gù°IA±D‹±WÐ±g(²{�²³3(³\³p³ƒ³m–³:´H?´Tˆ´€Ý´F^µi¥µ^¶!n¶J�¶MÛ·:)¹9d¹Pž¹}ï¹�mº]ïº�M»)Þ»!¼*¼E½iT½5¾½ô½ü½¾#¾u5¾¨«¾GT¿fœ¿DÀFHÀ¡�À1Á8KÁU„Á'ÚÁ(Â)+Â'UÂ)}Â*§Â%ÒÂ!øÂÃ0Ã“8ÃÌÃBÓÃhÄTÄWÔÄm,Å&šÅ)ÁÅëÅóÅÆ&Æ:ÆNÆaÆvtÆ,ëÆŒÇ"¥Ç(ÈÇ=ñÇl/ÈXœÈõÈ?ÉBÉRÉaÉB{ÉD¾É>ÊdBÊb§Ê2
+ËS=ËQ‘Ë=ãË1!ÌSÌ-hÌ#–Ì[ºÌ5ÍMLÍ9šÍ+ÔÍ7Î>8Î7wÎ€¯Î?0ÏpÏŒÏ©ÏÇÏåÏ)ÐK/ÐU{ÐkÑÐð=Ñ.ÒgJÓP²Ó€ÔB„ÔTÇÔ\ÕzyÕgôÕu\ÖuÒÖhH×d±×WØ}nØkìØoXÙJÈÙê:Š;–Îý#ë¾>ÏÅÏÊýˆ>ñ†)Œô-ÌšúüeÆFR KÔú>N<Ù•º;9/½ÞZ~24ÊlŠbuƒ÷P’‚»O�,æ´è-ÆM³4	‰.¥±Rÿ¡—«ì�”@�€°^Ð
ã÷ª=×äW@©D�
ÇÝL_ð¡ºàßÍœS5¦óà’Ê¿}ti›û(cÁs^8]ñPž]®*º™qûZ7Ë„¹PŸqÀóÛŽïa6Àç¨/TõË{Ev®‚xQÍ¸Ãƒ/œ7ô€ëž›Å¤Ò©cyM!A†¦
 ÿ�ÖÏþî—*Zïu�àXˆ! Èõ&$x.˜„
 .c�ÿ“%^îeÉý‰é00¹�¥#o¿2?“íßHx$úd':a­‚YJ‹íÜUso©˜"öF¯AÐLaT³ì’»t~Ì}ÕØP¸·w`´�øÙ¸õ£ïÂÅ¢EúIÃ°ƒ>$=N&'�j]h[ð¸.jòÓÿÄþFúò�{åãkö°q‚ÝXpkÈNŠòå5ˆ
ï§*…çÖÏÑÑ#ÁŸ';ÄšÞØÂjŽ„®¥a–rÃU¿~¾Û7”'ùÐ¤Ú_%­âévÑÁ­Mhj`ˆC¤né§Sül(•
	ã^|ÁoÇžäCÖ‹ùŠVX)†u=lRF¨nøRzÕYÄ¬b5fšÛN
 —<œðì½T^€|Â¤v¼½pW	—ûþçÐÅÞWã¬f\’T9×pzæþ…b„8[¡1è”K%)ÕCñMtG(,wdå ðwmñÒ:þ»ÿ7EÑ®Ã‘¸ž¾‘$HiêuÔcDŒæ<Æá3I¨›f9 6N@Ø"\#Ÿ·!]åªÏV(ÂÜšÇ�r§p¨ãY; ¼ä)ÛB°D �BÝ]�ŸïÜ
@@ -605,6 +606,7 @@ PO-Revision-Date: 2012-07-29 11:48+0400
 Last-Translator: Yuri Kozlov <yuray@komyakino.ru>
 Language-Team: Russian <gnu@mx.ru>
 Language: ru
+X-Bugs: Report translation errors to the Language-Team address.
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/ru.po ./bfd/po/ru.po
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/ru.po	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/ru.po	2018-01-09 02:04:54.000000000 +0000
@@ -12,6 +12,7 @@ msgstr ""
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
 "Language: ru\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/SRC-POTFILES.in ./bfd/po/SRC-POTFILES.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/SRC-POTFILES.in	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/SRC-POTFILES.in	2018-01-09 02:04:54.000000000 +0000
@@ -263,6 +263,8 @@ elfxx-mips.c
 elfxx-riscv.c
 elfxx-sparc.c
 elfxx-tilegx.c
+elfxx-x86.c
+elfxx-x86.c
 epoc-pe-arm.c
 epoc-pei-arm.c
 format.c
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/sr.gmo ./bfd/po/sr.gmo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/sr.gmo	2018-01-02 02:07:01.000000000 +0000
+++ ./bfd/po/sr.gmo	2018-01-09 02:08:39.000000000 +0000
@@ -35,22 +35,20 @@
 7=A7g7bç7=J8Eˆ81Î8(9$)9N94d9'™9$Á97æ9:/:G:^:o:‡:Ÿ:±:Ã:Õ:ç:;;.;?;W;v;2•;È;-á;+<+;<*g<	’<	œ<
 ¦<
 ±<¼<Ñ<à<õ<=1	=;=Z='y="¡=Ä=â=÷=>,>]K>=©>(ç>Z?Zk?EÆ?A@GN@W–@Wî@9FA9€A-ºA4èA9B4WB2ŒB7¿B5÷B7-CBeCE¨CBîCC1DAuD.·D2æD E[:E@–E:×E#F=6F<tF%±FN×F-&GOTG;¤G àG>H9@H
-zH1…H&·H&ÞH!I'I,FIJsI7¾I
öIJJ+J>J7QJ6‰JÀJ$àJ"KA(KjK,ˆK2µKèK¾øK»·LsMŽM©MBÉMDN*QNL|NÉNÞNŒíNzO0‚O9³OíOPPP3P:P2VPO‰PÙP*øP #QDQbQoQ ‰QªQ¾QÓQéQýQR*RGRXRlRNtRÃR#ÇRëR6S:S ZS8{S´SÆSÖSÞSóSTT/TBTLUT ¢TDÃTPUYUkU~U3™U!ÍUïU"öUV)V8V%KV'qV$™V*¾VéV0W,6WcW�W›W£W
»W%ÉWïW'X/XIXcXzXŒX£X7ºXòXY Y2YEYYYmYƒY™Y-¸Y)æY>ZgOZx·Z-0[!^[7€[¸[!Ñ[;ó[0/\5`\<–\<Ó\2]/C].s]=¢]/à]6^,G^ít^b`*r`0�`2Î`-aN/am~aìa6ýaG4b|b|•b?c+Rc!~c' cÈc1Þc3d2Dd-wd¥d"Ád0äd\eare{ÔeLPf$�fšÂfZ]ga¸gWh|rhAïhs1ix¥i?jv^jÕj$ðjrk€ˆk;	l!Elgl3{l/¯lLßl ,m_Mm­mÃmÓmFïmF6nF}n5Än#úno'o/3o2co–o.µo,äo(p.:p1ip!›p0½p îp%q%5qI[q¥q'µq!Ýq'ÿq'r%BrhrˆrF¨rïrs%s%Bs!hs;ŠsLÆsAt[Ut3±t,åt,u-?umu�u«u=Èu%v4,v*av%Œv?²v$òv&w*>w<iw¦wµw
ÄwÒw,éw8x+Ox{x:’x4Íx1y4y%Ryxy”yI yêyzG zhzN…zÔz=èz&{7{#J{)n{˜{ ¸{ Ù{1ú{,|;@|#||# |$Ä|#é|#
}1}J}P}X}-]}‹}£}¨}0®}4ß}~~'~-F~t~y~•~@š~Û~â~è~í~ò~ø~ü~+)-W)\†+¡jÍ)8€b€g€l€s€y€~€7…€½€Å€<Ì€7	�A�]�y�•�±�Í�!é�‚‚)‚
:‚
H‚
V‚
-d‚$o‚ ”‚Qµ‚ƒ~ƒt™ƒ „C/„s„/“„HÃ„3…/@…Bp…)³… Ý…þ…#†8†$G†l†	„†-Ž†&¼†Cã†-'‡/U‡9…‡¿‡3Ü‡
ˆˆ%ˆVBˆ`™ˆ#úˆ‰H;‰,„‰�±‰4AŠ*vŠ!¡ŠÃŠPãŠ#4‹/X‹4ˆ‹?½‹:ý‹&8ŒW_Œp·ŒE(�@n�A¯�5ñ�6'ŽA^Ž\ ŽÆýŽÆÄ�·‹�+C‘`o‘Ð‘rà‘DS’S˜’Eì’R2“F…“>Ì“{”€‡”d•?m•`­•q–>€–X¿–J—@c—H¤—Wí—>E˜r„˜‡÷˜‰™t	š	~švˆšWÿšaW›[¹›`œ�vœu�x|�xõ��nžzðžZkŸuÆŸG< |„ ½¡‰¿¡cI¢K­¢bù¢X\£cµ£Z¤rt¤ç¤tg¥�Ü¥l^¦œË¦œh§—¨�¨c¡©×ª¼Ýª�š«}+¬‘©¬Ã;­�ÿ­ù�®b{¯˜Þ¯�w°v±Ú±bZ²º½²x³(€³t©³=´;\´t˜´X
µMfµO´µr¶rw¶qê¶^\·„»·e@¸W¦¸Dþ¸.C¹pr¹dã¹YHºp¢ºP»pd»VÕ»|,¼Y©¼|½U€½YÖ½h0¾B™¾dÜ¾dA¿¢¦¿�IÀ˜ÚÀÿsÁYsÂfÍÂX4Ãb�ÃzðÃokÄ]ÛÄl9Åª¦ÅbQÆP´ÆTÇ1ZÇiŒÇ�öÇ~xÈŠ÷ÈS‚É>ÖÉvÊvŒÊ0Ëˆ4Ëa½Ë\Ì-|ÌsªÌgÍ2†Í\¹Í@ÎYWÎ;±Î:íÎ9(Ï0bÏr“Ï_Ð…fÐsìÐi`ÑÊÑyJÒPÄÒOÓpeÓhÖÓt?Ôb´ÔtÕNŒÕ�ÛÕœyÖb×5y×U¯×ØN…Ø7ÔØ*ÙF7Ù)~ÙN¨ÙS÷ÙqKÚq½Úœ/ÛœÌÛniÜFØÜMÝNmÝp¼Ý‚-Þt°ÞL%ßmrß=àß\à^{à`ÚàX;áD”á~Ùá“XâqìâG^ãz¦ãj!äNŒäPÛäl,åT™åFîåJ5æS€æPÔæX%çL~çKËçVèHnè1·èséèA]é]Ÿé.ýé^,êK‹ê_×êz7ëx²ë}+ì�©ì³:íºîí‰©î}3ïh±ïƒðcžð]ñR`ñ7³ñŠëñCvòxºò¸3ólìóYôBÙôHõ@eõc¦õª
-ö†µö…<÷ÑÂ÷v”øÅù¹Ñù‡‹úÄû¾ØûÉ—üƒaýaåýdGþ@¬þcíþRQÿI¤ÿpîÿp_jÐT;Z�_ëXKV¤Pû¸Lm&s%šlÀy-x§x z™“’¨S;U�GåR-	^€	dß	DD
-I‰
-UÓ
-P)†z^:`X›)ôP
Bo
>²
?ñ
T1K†FÒG@aE¢Dè›-uÉ›?JÛ&š¦hAOªºúYµdothä[Mn©€R™‘ì^~QÝ_/K�SÛL/T|uÑ’G�Ú j¯ž»~ZoÙ/I8y|² |/!}¬!ƒ*"_®"d#`s#aÔ#u6$^¬$`%tl%`á%^B&^¡&y'pz'gë'5S(r‰(nü(Uk)ZÁ)5*^R*F±*Kø*bD+r§+?,RZ,_­,Œ
-tš-:._J.|ª.O'/Uw/OÍ/T0Ar0±´0Zf1BÁ1b2tg2Ü2?\3^œ3_û3^[4Hº4Y5n]5CÌ5<6KM6E™6jß6ãJ7o.8zž8p9KŠ9ZÖ9M1:<:U¼:`;Zs;]Î;G,<]t<[Ò<T.=mƒ=™ñ=c‹>'ï>3?-K?ay?CÛ?_@@—Ž@§&AWÎAÛ&BRCœUCTòC\GDW¤DšüDz—EzFZ�FŽèF\wGHÔGhHQ†HJØHr#I‚–IŽJ}¨JP&K�wKsLH{LtÄLt9M\®M\N}hNŠæNLqOP¾OˆPG˜PSàPv4Q9«QuåQ[RºÛRu–SsT€€TUƒ�UwV’}V…Ww–W¦X~µXc4Y{˜YeZBzZR½Z([9[Y[\w[sÔ[H\WÈ\_ ]C€]ZÄ]-^?M^B�^?Ð^�_u _ˆ`UŸ`Eõ`w;aX³aZbœgb}ct‚ch÷c¿`dª eËeéeûef3fUPf¶¦fw]g"Õg?øg8h;;hwh2�hÂh×h2ôh'iCifWi¾i&Ûi)jN,jf{jrâj€UkSÖkW*ll‚lyïl imqŠm(üm %nFn#On$sn$˜n!½n"ßn2o;5o/qo0¡oÒoQçoZ9pT”pXépzBq½qAÜq\rh{rfärhKs!´sCÖs.tItZt,at.Žt½tÕtBêt(-u?VuA–u(Øu/vA1v:sv6®v6åv9w7Vw9Žw/Èw1øw1*x4\x1‘x4Ãx6øx2/y0byS“y#çy?zNKzUšzvðzjg{QÒ{V$|Q{|°Í|›~}p~M‹~:Ù~0&ErlPß40€de€&Ê€ñ€X�%[�/��7±�8é�("‚$K‚*p‚›‚º‚ŠØ‚]cƒdÁƒ*&„Q„?^„ž„5¼„ò„8…M?…B�…oÐ…_@†= †9Þ†}‡L–‡%ã‡'	ˆ?1ˆ?qˆ±ˆ+Ñˆ*ýˆd(‰c�‰@ñ‰%2ŠjXŠÃŠÛŠôŠ‹;&‹4b‹(—‹À‹ß‹ó‹ú‹
-Œ9 ŒZŒRrŒOÅŒ�+�C�,`���­�3Á�õ�1ŽGŽ]ŽyŽ2–ŽUÉŽ�7�K�'e�;��,É�Zö�`Q�²�#Ë�ï�ö�;ý�J9‘H„‘-Í‘Gû‘4C’4x’(­’pÖ’yG“Á“kA”@­”¸î”†§•4.–5c–X™–ò–3	—¾=—Sü—P˜Fn˜Vµ˜™%™,™T3™ˆ™?¤™1ä™1š3Hš(|šJ¥š=ðšQ.›W€›QØ›W*œ3‚œ:¶œQñœWC�?›�RÛ�Y.ž_ˆžQèžW:ŸD’Ÿ4×Ÿ E+ Vq 1È 'ú :"¡:]¡N˜¡&ç¡C¢9R¢+Œ¢4¸¢í¢9
-£/D£Ft£N»£F
-¤*Q¤&|¤/£¤6Ó¤/
-¥-:¥7h¥c ¥H¦`M¦B®¦ñ¦H§I§É§sI¨.½¨`ì¨”M©â©9ý©/7ª-gª‚•ª«†!«á¨«eŠ¬0ð¬d!­2†­+¹­5å­0®5L®:‚®4½®7ò®'*¯7R¯:Š¯Å¯—ã¯�{°‰	±�“±u#²g™²p³Œr³pÿ³wp´˜è´¼�µæ>¶¦%·•Ì·Âb¸˜%¹¹¾¹nxº¼çº¤»‡¦¼].½lŒ½Tù½_N¾a®¾º¿Ë¿±KÀbýÀ``ÁŽÁÁ°PÂ{ÃD}ÃRÂÃ†ÄtœÄeÅ9wÅ±Å	¹Æ#ÃÆ'çÆ'Ç+7ÇmcÇTÑÇN&ÈuÈ6‚È&¹È,àÈ�
É%«ÉRÑÉO$Ê±tÊ¤&ËYËËf%ÌFŒÌ=ÓÌ>Í*PÍt{Í]ðÍMNÎ|œÎ(Ï9BÏ8|Ï(µÏ9ÞÏ5Ð)NÐ)xÐ)¢Ð)ÌÐ;öÐ72Ñ)jÑ(”Ñ3½ÑLñÑB>ÒP�Ò0ÒÒ[ÓY_ÓY¹ÓPÔdÔ{Ô’ÔªÔ!ÂÔäÔóÔÕÕR Õ4sÕ,¨ÕRÕÕQ(ÖBzÖ2½ÖðÖ3	×d=×§¢×fJØM±Ø¨ÿØ¢¨ÙuKÚxÁÚk:Û×¦Û×~ÜpVÝzÇÝmBÞ\°Þa
ß\oßeÌß‹2àh¾à‹'á~³á�2âŽÀâ‰Oã†ÙãV`äX·äBå«SåuÿåzuæNðæp?çm°çEèšdèOÿè«OéoûéEkêg±êbë|ëb‹ëRîëTAìI–ìGàìZ(í”ƒízî“î5±îçîûîïj!ïqŒï@þïB?ð8‚ðŽ»ð@JñO‹ñ[Ûñ7òaWò[¹ó6õ=LõHŠõxÓõtLöhÁö—*÷&Â÷é÷ø
ùZ"ùK}ù7Éùúú75úmú.|úi«ú¬ûBÂûWü;]üY™üóü2ýO>ý)Žý*¸ý+ãý(þ+8þ,dþ+‘þ½þ.Ýþÿv#ÿšÿ@¡ÿ-âÿj={<¹cö)Z.„³/Ð./CWj¯}4-˜b„û€&Ÿ7ÆmþPl½7Ê-!OOQŸDñ\69“PÍS5r3¨Ü/ï	T?	5”	MÊ	7
-4P
-6…
-)¼
-4æ
-)gEV­$!)"K#n#’%¶%Ü8
\;
T˜
…í
÷skRnRÁr7‡J¿g
-brvÕmLmº^(S‡\Û}8j¶f!Uˆ�ÝgóAX]˜1Ð�rb:Yð
+zH1…H&·H&ÞH!I'I,FIJsI7¾I
öIJJ+J>J7QJ6‰JÀJ$àJ"KA(KjK,ˆK2µKèK¾øK»·LsMŽM©MBÉMDN*QNL|NÉNÞNŒíNzO0‚O9³OíOPPP3P:P2VPO‰PÙP*øP #QDQbQoQ ‰QªQ¾QÓQéQýQR*RGRXRlRNtRÃR#ÇRëR6S:S ZS8{S´SÆSÖSÞSóSTT/TBTLUT ¢TDÃTPUYUkU~U3™U!ÍUïU"öUV)V8V%KV'qV$™V*¾VéV0W,6WcW�W›W£W
»W%ÉWïW'X/XIXcXzXŒX£X7ºXòXY Y2YEYYYmYƒY™Y-¸Y)æY>ZgOZx·Z-0[!^[7€[¸[!Ñ[;ó[0/\5`\<–\<Ó\2]/C].s]=¢]/à]6^,G^-t^¢`*²`0Ý`2a-AaNoam¾a,b6=bGtb¼b|Õb?Rc+’c!¾c'àcd1d3Pd2„d-·dåd"e0$e\Uea²e{fL�f$ÝfšgZ�gaøgWZh|²hA/isqixåi?^jvžjk$0krUk€Èk;Il!…l§l3»l/ïlLm lm_�mímnnF/nFvnF½n5o#:o^ogo/so2£oÖo.õo,$p(Qp.zp1©p!Ûp0ýp .q%Oq%uqI›qåq'õq!r'?rgr%‚r¨rÈrFèr/sOs%\s%‚s!¨s;ÊsLtASt[•t3ñt,%u,Ru-u­uÍuëu=v%Fv4lv*¡v%Ìv?òv$2w&Ww*~w<©wæwõw
xx,)x8Vx+�x»x:Òx4
y1Byty%’y¸yÔyIày*zEzG`z¨zNÅz{=({f{w{#Š{)®{Ø{ ø{ |1:|l|;€|#¼|#à|$}#)}#M}q}Š}�}˜}-�}Ë}ã}è}0î}4~T~Y~'^~-†~´~¹~Õ~@Ú~"(-28<+A)m—)œÆ+áj
€)x€¢€§€¬€³€¹€¾€7Å€ý€�<�7I�����¹�Õ�ñ�
‚!)‚K‚X‚i‚
z‚
ˆ‚
–‚
+¤‚$¯‚ Ô‚Qõ‚Gƒ~ZƒtÙƒ N„Co„³„/Ó„H…3L…/€…B°…)ó… †>†#T†x†$‡†¬†	Ä†-Î†&ü†C#‡-g‡/•‡9Å‡ÿ‡3ˆ
Pˆ^ˆeˆV‚ˆ`Ùˆ#:‰^‰H{‰,Ä‰�ñ‰4�Š*¶Š!áŠ‹P#‹#t‹/˜‹4È‹?ý‹:=Œ&xŒWŸŒp÷ŒEh�@®�Aï�51Ž6gŽAžŽ\àŽÆ=�Æ�·Ë�+ƒ‘`¯‘’r ’D“’SØ’E,“Rr“FÅ“>”{K”€Ç”dH•?­•`í•qN–>À–Xÿ–JX—@£—Hä—W-˜>…˜rÄ˜‡7™‰¿™tIš	¾švÈšW?›a—›[ù›`Uœ�¶œuF�x¼�x5ž�®žz0ŸZ«Ÿu G| |Ä ½A¡‰ÿ¡c‰¢Kí¢b9£Xœ£cõ£ZY¤r´¤'¥t§¥�¦lž¦œ§œ¨§—E¨Ý¨cá©×Eª¼«�Ú«}k¬‘é¬Ã{­�?®ùÁ®b»¯˜°�·°vH±Ú¿±bš²ºý²¸³(À³té³=^´;œ´tØ´XMµM¦µOôµrD¶r·¶q*·^œ·„û·e€¸Wæ¸D>¹.ƒ¹p²¹d#ºYˆºpâºPS»p¤»V¼|l¼Yé¼|C½UÀ½Y¾hp¾BÙ¾d¿d�¿¢æ¿�‰À˜Áÿ³ÁY³Âf
ÃXtÃbÍÃz0Äo«Ä]ÅlyÅªæÅb‘ÆPôÆTEÇ1šÇiÌÇ�6È~¸ÈŠ7ÉSÂÉ>ÊvUÊvÌÊ0CËˆtËaýË\_Ì-¼ÌsêÌg^Í2ÆÍ\ùÍ@VÎY—Î;ñÎ:-Ï9hÏ0¢ÏrÓÏ_FÐ…¦Ðs,Ñi Ñ
+ÒyŠÒPÓOUÓp¥ÓhÔtÔbôÔtWÕNÌÕ�Öœ¹ÖbV×5¹×Uï×EØNÅØ7Ù*LÙFwÙ)¾ÙNèÙS7Úq‹ÚqýÚœoÛœÜn©ÜFÝM_ÝN­ÝpüÝ‚mÞtðÞLeßm²ß= à\^à^»à`áX{áDÔá~â“˜âq,ãGžãzæãjaäNÌäPållåTÙåF.æJuæSÀæPçXeçL¾çKèVWèH®è1÷ès)éA�é]ßé.=ê^lêKËê_ëzwëxòë}kì�éì³zíº.î‰éî}sïhñïƒZðcÞð]BñR ñ7óñŠ+òC¶òxúò¸sól,ô™ôBõH\õ@¥õcæõªJö†õö…|÷ÑøvÔøÅKù¹ú‡ËúÄSû¾üÉ×üƒ¡ýa%þd‡þ@ìþc-ÿR‘ÿIäÿp.pŸjT{ZÐ_+X‹VäP;¸ŒmE&³%Úlymxçx`zÙ“T’èS{UÏG%	Rm	^À	d
+D„
+IÉ
+UPi†º^A: XÛ)4
P^
B¯
>ò
?1TqKÆFGY@¡EâD(›mu	›Jfšæh�Oêº:YõdOo´h$[�né€XRÙ‘,^¾Q_oKÏSLoT¼u’‡� ª¯Kžû~šo/‰8¹|ò |o!}ì!ƒj"_î"dN#`³#a$uv$^ì$`K%t¬%`!&^‚&^á&y@'pº'g+(5“(rÉ(n<)U«)Z*5\*^’*Fñ*K8+b„+rç+?Z,Rš,_í,ŒM-tÚ-:O._Š.|ê.Og/U·/O
0T]0A²0±ô0Z¦1B2bD2t§23?œ3^Ü3_;4^›4Hú4YC5n�5C6<P6K�6EÙ6j7ãŠ7on8zÞ8pY9KÊ9Z:Mq:<¿:Uü:`R;Z³;]<Gl<]´<[=Tn=mÃ=™1>cË>'/?3W?-‹?a¹?C@__@¿@—Î@§fAWBÛfBRBCœ•CT2D\‡DWäDš<Ez×EzRFZÍFŽ(G\·GHHh]HQÆHJIrcI‚ÖIŽYJ}èJPfK�·KsGLH»LtMtyM\îM\KN}¨NŠ&OL±OPþOˆOPGØPS QvtQ9ëQu%R›RºSuÖSsLT€ÀTAUƒÁUwEV’½V…PWwÖW¦NX~õXctY{ØYeTZBºZRýZ(P[y[™[\·[s\ˆ\W]_`]CÀ]Z^-_^?�^BÍ^?_�P_uà_ˆV`Uß`E5aw{aXóaZLbœ§b}DctÂch7d¿ dª`ef)f;fXfsfU�f¶æfw�g"h?8hxh;{h·h2Ïhii24igiƒif—iþi&j)BjNljf»jr"k€•kSlWjllÂly/m ©mqÊm(<n en†n#�n$³n$Øn!ýn"o2Bo;uo/±o0áopQ'pZypTÔpX)qz‚qýqAr\^rh»rf$sh‹s!ôsCt.Zt‰tšt,¡t.ÎtýtuB*u(mu?–uAÖu(v/AvAqv:³v6îv6%w9\w7–w9Îw/x18x1jx4œx1Ñx4y68y2oy0¢ySÓy#'z?KzN‹zUÚzv0{j§{Q|Vd|Q»|°
}›¾}pZ~MË~:0T&…r¬P€4p€d¥€&
+�1�XB�%›�/Á�7ñ�8)‚(b‚$‹‚*°‚Û‚ú‚Šƒ]£ƒd„*f„‘„?ž„Þ„5ü„2…8F…M…BÍ…o†_€†=à†9‡}X‡LÖ‡%#ˆ'Iˆ?qˆ?±ˆñˆ+‰*=‰dh‰cÍ‰@1Š%rŠj˜Š‹‹4‹P‹;f‹4¢‹(×‹ŒŒ3Œ:ŒJŒ9`ŒšŒR²ŒO�U�k�ƒ�, �Í�í�3Ž5Ž1UŽ‡Ž�Ž¹Ž2ÖŽU	�_�w�‹�'¥�;Í�,	�Z6�`‘�ò�#‘/‘6‘;=‘Jy‘HÄ‘-
’G;’4ƒ’4¸’(í’p“y‡“”k�”@í”¸.•†ç•4n–5£–XÙ–2—3I—¾}—S<˜�˜F®˜Võ˜L™e™l™Ts™È™?ä™1$š1Vš3ˆš(¼šJåš=0›Qn›WÀ›QœWjœ3Âœ:öœQ1�Wƒ�?Û�RžYnž_ÈžQ(ŸWzŸDÒŸ4 L Ek V± 1¡':¡:b¡:�¡NØ¡&'¢CN¢9’¢+Ì¢4ø¢-£9J£/„£F´£Nû£FJ¤*‘¤&¼¤/ã¤6¥/J¥-z¥7¨¥cà¥HD¦`�¦Bî¦1§H@§‰§	¨s‰¨.ý¨`,©”�©"ª9=ª/wª-§ª‚ÕªX«†a«áè«eÊ¬00­da­2Æ­+ù­5%®0[®5Œ®:Â®4ý®72¯'j¯7’¯:Ê¯°—#°�»°‰I±�Ó±uc²gÙ²pA³Œ²³p?´w°´˜(µ¼Áµæ~¶¦e·•¸Â¢¸˜e¹¹þ¹n¸º¼'»ä»‡æ¼]n½lÌ½T9¾_Ž¾aî¾ºP¿À±‹Àb=Á` ÁŽÂ°�Â{AÃD½ÃRÄ†UÄtÜÄeQÅ9·ÅñÅ	ùÆ#Ç''Ç'OÇ+wÇm£ÇTÈNfÈµÈ6ÂÈ&ùÈ, É�MÉ%ëÉRÊOdÊ±´Ê¤fËYÌfeÌFÌÌ=Í>QÍ*�Ít»Í]0ÎMŽÎ|ÜÎ(YÏ9‚Ï8¼Ï(õÏ9Ð5XÐ)ŽÐ)¸Ð)âÐ)Ñ;6Ñ7rÑ)ªÑ(ÔÑ3ýÑL1ÒB~ÒPÁÒ0Ó[CÓYŸÓYùÓPSÔ¤Ô»ÔÒÔêÔ!Õ$Õ3ÕHÕWÕR`Õ4³Õ,èÕRÖQhÖBºÖ2ýÖ0×3I×d}×§â×fŠØMñØ¨?Ù¢èÙu‹ÚxÛkzÛ×æÛ×¾Üp–ÝzÞm‚Þ\ðÞaMß\¯ßeà‹ràhþà‹gá~óá�râŽã‰�ã†äV äX÷äBPå«“åu?æzµæN0çpçmðçE^èš¤èO?é«�éo;êE«êgñêbYë¼ëbËëR.ìT�ìIÖìG íZhí”ÃízXîÓî5ñî'ï;ïNïjaïqÌï@>ðBð8ÂðŽûð@ŠñOËñ[òwòa—ò[ùó6Uõ=ŒõHÊõxötŒöh÷—j÷&ø)øEøMùZbùK½ù7	úAú^ú7uú­ú.¼úiëú¬UûBüWEü;�üYÙü3ý2KýO~ý)Îý*øý+#þ(Oþ+xþ,¤þ+Ñþýþ.ÿLÿvcÿÚÿ@áÿ-"jP=»<ùc6)š.Äó/.@oƒ—ª¯½4m˜¢„;À&ß7m>P¬ý7
+BR-aO�QßD1\v9ÓP
S^5²3è	//	_	T	5Ô	M
+
+7X
+4�
+6Å
+)ü
+4&)[g…Ví$D!i"‹#®#Ò%ö%
8B
\{
TØ
…-÷³«R®RrT7ÇJÿgJb²vmŒmú^hSÇ\}xjöfaUÈ�ÝgóAX]˜1Ð�rb:Yð
 kê4ÏrGJêæ‘(äOÒªqúçîß/ièB_Œ¾Snwx½RŽÐ	[ïÌT+‚ÿ| Ì¡†c2ºÐFÀí?\ÿJM>ŸAqÀŸ²VýIÔ^š­Ç/rÒä—Ô£HÈ®²è‡bHÔGûì¾Ãn™�®–%­ÊñIkc¶“2<Êº�¥Y´§X5“$
\7÷àã²©æEéãšz´V|ÓòˆK­˜EouÄ$VJK¡»†>Ûì¨
 èñ¢â&	¨k'¸sØv.9¤b†át ˜Ýioðõ[½ÖašŽœžÄQ8‘@ «³dÍ¬zØ8ÅêCt”idþBf–§ž*oÃìËEÞ—ôþ]ºcl0ÑÎ¹\8¼,)œ™�\PõíÁmT±ê�•¬BÇY‰;]¤0ayON£�X6³ÖSu:1r€3"‡n	ö±[rƒÓ=§^=IåMÄ$%X¶<¾”p-á:Á¬�Â@3üRÉOÅeÅµŸ¹ç{÷Œ^ñö›	¶¦¥=e´ç(UˆhD¸Üã5…27e*sôù.é4äMXW	OP_eÉQÛèjÅkLë‚Œ™©1SÅ½³6,Jœ:¿P.’Ö˜Ñ*ë¸ÝU}jt#Ùat~8<ÿ­0!¦uüVÆZ	;�Í³÷ù¬+`ø°`Ê@ÈØ¹ $µ°_Ö£G€‰lò~¯¹!ÞÙ{;…Àóq{M’ˆ¿¼URÇ(!¢C(þïv‹¿JLnIjÒskmswŠG#(?ë¥#"@q�¨Ü’÷+!„Ç‹J6ÒÎÈÚ]‡d'Ô„p¶OÂbîÂ]žÈ›Z
V�x\˜�¦·zur²Á‚Œ™GX;¼ÚˆS?&=xÕ-#©òHEoNcõgÁ¨pÞù*œ¾6«�óúF‡Æ1òdRÆ'
 ÖýeUWC·–>-ËNàÌzé›ZŽ»–K»•ƒi%`Ä¡Ã:h¤¤.k
@@ -626,6 +624,7 @@ PO-Revision-Date: 2016-05-29 17:48+0200
 Last-Translator: ÐœÐ¸Ñ€Ð¾Ñ�Ð»Ð°Ð² Ð�Ð¸ÐºÐ¾Ð»Ð¸Ñ› <miroslavnikolic@rocketmail.com>
 Language-Team: Serbian <(nothing)>
 Language: sr
+X-Bugs: Report translation errors to the Language-Team address.
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/sr.po ./bfd/po/sr.po
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/sr.po	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/sr.po	2018-01-09 02:04:54.000000000 +0000
@@ -11,6 +11,7 @@ msgstr ""
 "Last-Translator: ÐœÐ¸Ñ€Ð¾Ñ�Ð»Ð°Ð² Ð�Ð¸ÐºÐ¾Ð»Ð¸Ñ› <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
 "Language: sr\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/sv.gmo ./bfd/po/sv.gmo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/sv.gmo	2018-01-02 02:07:01.000000000 +0000
+++ ./bfd/po/sv.gmo	2018-01-09 02:08:39.000000000 +0000
@@ -35,36 +35,36 @@
 7=A7g7bç7=J8Eˆ81Î8(9$)9N94d9'™9$Á97æ9:/:G:^:o:‡:Ÿ:±:Ã:Õ:ç:;;.;?;W;v;2•;È;-á;+<+;<*g<	’<	œ<
 ¦<
 ±<¼<Ñ<à<õ<=1	=;=Z='y="¡=Ä=â=÷=>,>]K>=©>(ç>Z?Zk?EÆ?A@GN@W–@Wî@9FA9€A-ºA4èA9B4WB2ŒB7¿B5÷B7-CBeCE¨CBîCC1DAuD.·D2æD E[:E@–E:×E#F=6F<tF%±FN×F-&GOTG;¤G àG>H9@H
-zH1…H&·H&ÞH!I'I,FIJsI7¾I
öIJJ+J>J7QJ6‰JÀJ$àJ"KA(KjK,ˆK2µKèK¾øK»·LsMŽM©MBÉMDN*QNL|NÉNÞNŒíNzO0‚O9³OíOPPP3P:P2VPO‰PÙP*øP #QDQbQoQ ‰QªQ¾QÓQéQýQR*RGRXRlRNtRÃR#ÇRëR6S:S ZS8{S´SÆSÖSÞSóSTT/TBTLUT ¢TDÃTPUYUkU~U3™U!ÍUïU"öUV)V8V%KV'qV$™V*¾VéV0W,6WcW�W›W£W
»W%ÉWïW'X/XIXcXzXŒX£X7ºXòXY Y2YEYYYmYƒY™Y-¸Y)æY>ZgOZx·Z-0[!^[7€[¸[!Ñ[;ó[0/\5`\<–\<Ó\2]/C].s]=¢]/à]6^,G^çt^\`i`€`�`±`'È`7ð`(a*4a)_a‰aB™a%Üabb9bRbab!�b £bÄbÜbñbc'c8@c?yc?¹cùcS	d4]d>’d3ÑdQe*WeE‚ePÈe*fPDf•f«fDÃfNg"Wgzg‹gŸg ·g3Øgh2$hWhghwh+�h+¼h+èh*i?iTi]iii…iœi³iÓiði	j$jDjZjxj�j§j,¾jëjûjk(k
8kFk[kvk4�kÄk×käk#ûkl!4l&Vl"}l9 lÚlòlmm6mOmfm |m�m&µmÜmôm#n,n@nUn<un²nÁn
ÐnÞnñn o (oIo"Yo|o™o¸oÑoêoýo/	p9pKp$]p‚p2–pÉp"Ýp	q
-q#qAqZqmq‡q* qËq"ßq#r#&rJr#^r#‚r¦r¶r¼rÄr Ér
-êrõrúrss9s>s Cs ds…sŠs�s¢sÂsÉsÏsÔsÙsßsåsêst t%tDt^tA~tÀtàtåtêtñt÷tütuu u'uBuXuiuzu‹uœu­u
Èu	Öu
àu
îu
-üu
-v
-v
-v(v<v,Iv
-vv&�v%¨vÎvÛvðvw'wGw`w+tw wµwÄwÐwçwów
-xx x!6xXxlx~x—x
´xÂxÜxëxòx/y74yly~y*�yºyAÖyz1zMzjz7~z¶zÒzéz"{ &{G{3b{G–{"Þ{ |*"|"M|p|*Œ|=·|~õ|ut}|ê}g~6y~°~O¼~/;<*x,£(Ð ùB€G]€C¥€'é€-�H?�!ˆ�5ª�,à�'
‚5‚0U‚†‚?¦‚Uæ‚N<ƒ=‹ƒ	ÉƒHÓƒ5„:R„-�„2»„Zî„JI…L”…Há…R*†O}†3Í†I‡)K‡Cu‡ƒ¹‡[=ˆ<™ˆ1ÖˆL‰1U‰<‡‰9Ä‰Aþ‰O@ŠC�ŠQÔŠF&‹Ym‹YÇ‹_!Œ–�Œ<�lU�bÂ�Z%ŽD€ŽOÅŽk�L��ˆÎ�3W�R‹�UÞ�>4‘~s‘8ò‘g+’“’›’<¯’ ì’#
“=1“0o“1 “.Ò“N”NP”>Ÿ”9Þ”R•8k•=¤•4â•#–E;–?�–-Á–0ï–* —0K—,|—?©—Gé—=1˜3o˜@£˜:ä˜-™:M™:ˆ™aÃ™p%šT–š…ëš.q›7 ›0Ø›D	œYNœO¨œBøœ=;�hy�Nâ�-1ž3_ž“ž@¯žLðž<=ŸHzŸ:ÃŸ*þŸJ) 9t &® ZÕ J0¡G{¡%Ã¡Gé¡B1¢t¢/�¢!À¢/â¢£".£Q£o£;‡£3Ã£K÷£GC¤I‹¤QÕ¤/'¥2W¥QŠ¥=Ü¥8¦=S¦8‘¦6Ê¦0§r2§s¥§@¨%Z¨;€¨e¼¨/"©&R©y©—©·©3Ó©Iª[Qª[­ªU	«T_«?´«&ô«4¬3P¬?„¬NÄ¬E­3Y­5�­Ã­3á­4®.J®+y®#¥®<É®M¯ET¯'š¯DÂ¯0°%8°)^°4ˆ°-½°4ë°) ±2J±/}±<­±8ê±##²/G²6w²®²?É²!	³@+³l³-‚³,°³)Ý³4´1<´Gn´7¶´]î´vLµHÃµ=¶8J¶?ƒ¶2Ã¶2ö¶.)·X·Xx·*Ñ·Dü·vA¸4¸¸<í¸%*¹7P¹%ˆ¹<®¹Wë¹]CºM¡ºjïºAZ»cœ»a¼Eb¼m¨¼k½r‚½`õ½CV¾:š¾*Õ¾6¿47¿1l¿Pž¿Sï¿<CÀ+€À$¬À6ÑÀ-Á*6Á4aÁj–ÁMÂOÂnÂ4ŒÂBÁÂAÃ@FÃC‡Ã\ËÃ[(Ä3„Ä5¸Ä(îÄ.Å=FÅ<„Å/ÁÅ+ñÅ9Æ$WÆG|Æ1ÄÆöÆ,Ç>Ç/UÇ-…Ç!³Ç ÕÇ6öÇ3-È&aÈ$ˆÈ&­È/ÔÈ.ÉP3ÉJ„ÉPÏÉ, ÊJMÊJ˜Ê<ãÊ2 ËaSË<µË7òË1*Ì.\Ì/‹Ì1»Ì<íÌ5*ÍP`Í4±Í.æÍ*Î'@Î3hÎ*œÎ,ÇÎ/ôÎO$Ï8tÏ8­ÏAæÏ9(Ð)bÐFŒÐÓÐ¬óÐ< Ñ>ÝÑFÒMcÒ=±ÒCïÒ?3Ó@sÓN´Ó=Ô?AÔL�Ô?ÎÔ=Õ=LÕIŠÕ7ÔÕAÖ$NÖKsÖ>¿Ö4þÖ23×"f×;‰×#Å×&é×5ØTFØ$›Ø3ÀØ6ôØN+ÙAzÙ ¼Ù8ÝÙ/Ú0FÚ.wÚ+¦Ú0ÒÚÛW!Û8yÛ+²Û:ÞÛCÜ8]Ü.–Ü:ÅÜ1Ý<2Ý/oÝ?ŸÝEßÝ'%ÞMÞ'kÞ&“Þ.ºÞyéÞ-cß<‘ßHÎß%à2=à1pà,¢à8Ïà>á6Gá?~áB¾á;â:=â9xâD²âY÷â7Qã‰ã˜ã¬ã6Äã5ûã41äfä`uä`Öä47å}lå-êåcæ5|æ;²æ3îæi"ç[Œç[èçKDèK�è@Üè(é9Fé&€é7§éEßéE%êKkêD·ê4üêR1ë:„ë"¿ë;âë;ì7Zì7’ìDÊìSí1cí1•íLÇí0î,EîFrî"¹î=ÜîFïmaïEÏïDðOZðNªðRùðMLñLšñLçñE4ò_zò;Úò1óNHó2—ó,Êó/÷ó'ô?ôVô@fô;§ôAãô9%õ6_õ3–õ8Êõö ö'@ö+höa”öFööN=÷;Œ÷È÷Gç÷;/ø9kø\¥øGù@Jù<‹ùÈù\Hú¥ú¹úÈú
-Øúãú%óúgûB�ûÄûÝûôû(÷û ü-üEüNü`üvüˆü3•üÉüÜüñü7
ý4Eý0zý;«ý'çý+þ4;þ6pþ#§þBËþÿ#$ÿHÿQÿfÿ|ÿ’ÿ¥ÿ¹ÿÒÿíÿ$
-/'8=`!ž9ÀJúE%W+}0©AÚA^"o’
-°»¿Ñãõ,4)Q"{ž¶"Êí''4*\(‡*° Û"ü"%Bh|–"±Ô*ì-+%Y39³7íK%'q2™jÌV7:Ž$É#î%	8	HS	+œ	È	2â	
+zH1…H&·H&ÞH!I'I,FIJsI7¾I
öIJJ+J>J7QJ6‰JÀJ$àJ"KA(KjK,ˆK2µKèK¾øK»·LsMŽM©MBÉMDN*QNL|NÉNÞNŒíNzO0‚O9³OíOPPP3P:P2VPO‰PÙP*øP #QDQbQoQ ‰QªQ¾QÓQéQýQR*RGRXRlRNtRÃR#ÇRëR6S:S ZS8{S´SÆSÖSÞSóSTT/TBTLUT ¢TDÃTPUYUkU~U3™U!ÍUïU"öUV)V8V%KV'qV$™V*¾VéV0W,6WcW�W›W£W
»W%ÉWïW'X/XIXcXzXŒX£X7ºXòXY Y2YEYYYmYƒY™Y-¸Y)æY>ZgOZx·Z-0[!^[7€[¸[!Ñ[;ó[0/\5`\<–\<Ó\2]/C].s]=¢]/à]6^,G^'t^œ`©`À`Ý`ñ`'a70aha*ta)ŸaÉaBÙa%bBb\byb’b¡b!Áb ãbcc1cEc'Xc8€c?¹c?ùc9dSId4�d>Òd3eQEe*—eEÂePf*YfP„fÕfëfDgNHg"—gºgËgßg ÷g3hLh2dh—h§h·h+Ðh+üh+(i*Tii”i�i©iÅiÜióij0jIjdj„jšj¸jÏjçj,þj+k;kQkhk
xk†k›k¶k4Ïkll$l#;l_l!tl&–l"½l9àlm2mKm_mvm�m¦m ¼mÝm&õmn4n#Hnln€n•n<µnòno
oo1o Go ho‰o"™o¼oÙoøop*p=p/Ipyp‹p$�pÂp2Öp	q"q	@qJq#]q�qšq­qÇq*àqr"r#Br#frŠr#žr#Ârærörürs 	s
+*s5s:s@s^sys~s ƒs ¤sÅsÊsÝsâst	ttttt%t*tHt`tet„tžtA¾tu u%u*u1u7u<uCuYu`ugu‚u˜u©uºuËuÜuíu
v	v
 v
.v
+<v
+Gv
+Rv
+]vhv|v,‰v
+¶v&Áv%èvww0wBw'_w‡w w+´wàwõwxx'x3xJxYx`x!vx˜x¬x¾x×x
ôxyy+y2y/Dy7ty¬y¾y*ÏyúyAzXzqz�zªz7¾zöz{){"C{ f{‡{3¢{GÖ{"| A|*b|"�|°|*Ì|=÷|~5}u´}|*~§~6¹~ð~Oü~/L;|*¸,ã(€ 9€BZ€G�€Cå€')�-Q�H�!È�5ê�, ‚'M‚u‚0•‚Æ‚?æ‚U&ƒN|ƒ=Ëƒ		„H„5\„:’„-Í„2û„Z.…J‰…LÔ…H!†Rj†O½†3
‡IA‡)‹‡Cµ‡ƒù‡[}ˆ<Ùˆ1‰LH‰1•‰<Ç‰9ŠA>ŠO€ŠCÐŠQ‹Ff‹Y­‹YŒ_aŒ–ÁŒ<X�l•�bŽZeŽDÀŽO�kU�LÁ�ˆ�3—�RË�U‘>t‘~³‘82’gk’Ó’Û’<ï’ ,“#M“=q“0¯“1à“.”NA”N�”>ß”9•RX•8«•=ä•4"–#W–E{–?Á–-—0/—*`—0‹—,¼—?é—G)˜=q˜3¯˜@ã˜:$™-_™:�™:È™ašpešTÖš…+›.±›7à›0œDIœYŽœOèœB8�={�h¹�N"ž-qž3ŸžÓž@ïžL0Ÿ<}ŸHºŸ: *> Ji 9´ &î Z¡Jp¡G»¡%¢G)¢Bq¢´¢/Ð¢!£/"£R£"n£‘£¯£;Ç£3¤K7¤Gƒ¤IË¤Q¥/g¥2—¥QÊ¥=¦8Z¦=“¦8Ñ¦6
+§0A§rr§så§@Y¨%š¨;À¨eü¨/b©&’©¹©×©÷©3ªIGª[‘ª[íªUI«TŸ«?ô«&4¬4[¬3�¬?Ä¬N­ES­3™­5Í­®3!®4U®.Š®+¹®#å®<	¯MF¯E”¯'Ú¯D°0G°%x°)ž°4È°-ý°4+±)`±2Š±/½±<í±8*²#c²/‡²6·²î²?	³!I³@k³¬³-Â³,ð³)´4G´1|´G®´7ö´].µvŒµH¶=L¶8Š¶?Ã¶2·26·.i·˜·X¸·*¸D<¸v�¸4ø¸<-¹%j¹7�¹%È¹<î¹W+º]ƒºMáºj/»Aš»cÜ»a@¼E¢¼mè¼kV½rÂ½`5¾C–¾:Ú¾*¿6@¿4w¿1¬¿PÞ¿S/À<ƒÀ+ÀÀ$ìÀ6Á-HÁ*vÁ4¡ÁjÖÁMAÂ�Â®Â4ÌÂBÃADÃ@†ÃCÇÃ\Ä[hÄ3ÄÄ5øÄ(.Å.WÅ=†Å<ÄÅ/Æ+1Æ9]Æ$—ÆG¼Æ1Ç6Ç,QÇ~Ç/•Ç-ÅÇ!óÇ È66È3mÈ&¡È$ÈÈ&íÈ/É.DÉPsÉJÄÉPÊ,`ÊJ�ÊJØÊ<#Ë2`Ëa“Ë<õË72Ì1jÌ.œÌ/ËÌ1ûÌ<-Í5jÍP Í4ñÍ.&Î*UÎ'€Î3¨Î*ÜÎ,Ï/4ÏOdÏ8´Ï8íÏA&Ð9hÐ)¢ÐFÌÐÑ¬3Ñ<àÑ>ÒF\ÒM£Ò=ñÒC/Ó?sÓ@³ÓNôÓ=CÔ?�ÔLÁÔ?Õ=NÕ=ŒÕIÊÕ7ÖALÖ$ŽÖK³Ö>ÿÖ4>×2s×"¦×;É×#Ø&)Ø5PØT†Ø$ÛØ3Ù64ÙNkÙAºÙ üÙ8Ú/VÚ0†Ú.·Ú+æÚ0ÛCÛWaÛ8¹Û+òÛ:ÜCYÜ8�Ü.ÖÜ:Ý1@Ý<rÝ/¯Ý?ßÝEÞ'eÞ�Þ'«Þ&ÓÞ.úÞy)ß-£ß<ÑßHà%Wà2}à1°à,âà8á>Há6‡á?¾áBþá;Aâ:}â9¸âDòâY7ã7‘ãÉãØãìã6ä5;ä4qä¦ä`µä`å4wå}¬å-*æcXæ5¼æ;òæ3.çibç[Ìç[(èK„èKÐè@é(]é9†é&Àé7çéEêEeêK«êD÷ê4<ëRqë:Äë"ÿë;"ì;^ì7šì7ÒìD
+íSOí1£í1ÕíLî0Tî,…îF²î"ùî=ïFZïm¡ïEðDUðOšðNêðR9ñMŒñLÚñL'òEtò_ºò;ó1VóNˆó2×ó,
+ô/7ôgôô–ô@¦ô;çôA#õ9eõ6Ÿõ3Öõ8
+öCö _ö'€ö+¨öaÔöF6÷N}÷;Ì÷øG'ø;oø9«ø\åøGBù@Šù<Ëùú\ˆúåúùúû
+û#û%3ûgYûBÁûüü4ü(7ü`ümü…üŽü ü¶üÈü3Õü	ýý1ý7Mý4…ý0ºý;ëý''þ+Oþ4{þ6°þ#çþBÿNÿ#dÿˆÿ‘ÿ¦ÿ¼ÿÒÿåÿùÿ-$Jo'x= !Þ9J:…%—+½0éAA\ž"¯Ò
+ðûÿ#5,Gt)‘"»Þö"
+-'L't*œ(Ç*ð "<"_%‚¨¼Ö"ñ*,W-k%™3¿9ó7-Ke'±2ÙjVw:Î$		#.	%R	x	H“	+Ü	
+2"
+U
 
-+
-16
-h
-z
-”
-±
-È
-Ü
-ì
->15p>¦å
-û#*<\!n.�-¿Ví9D
~
˜
H¸
,.@Q"o’¤%½/ã, @a8s¬¾Ð
æ"ô2BN`	g	q{
–#¤>È!>\u+‰µ+Îú$"</_�¡²Èä06E|Ž § ®1Ï/1?Q)‘*»æEIJL”Fá+(zTNÏ"=6`
-—¢r¸5+a,s$ Å×Þ(å& Gd}�(³$Ü/61/h6˜ Ï%ð/6F }/ž6Î=/C6s)ªÔñ'0-^})š#Ä.è(0Yy’¯Âá#þ-"%Pvˆ¦¸Ñè"÷5 +P *| %§ Í +Ô D!DE!3Š!¾!3Î!H"K"["w"‘"F¡"è"Wñ"ŸI#5é#$.5$d$€$–$©$Â$à$ü$ %;%Q%$p%•%S§%Qû%MM&R›&@î&I/'5y'Q¯'5(67(>n(J­(gø(?`)Q )Sò)EF*TŒ*,á*J+^Y+H¸+*,@,,/m,*�,,È,\õ,@R-i“-5ý-33.Yg.lÁ.F./%u/&›/NÂ/C0>U0%”0“º0	N1X1u1�1¥1D¾1;2-?2m2t2Ž2©2iÆ2039B3E|3nÂ3h14?š4GÚ4."5%Q5#w5›5G´52ü5(/6KX6¤6¸6Ò6ì67757J7_7t7‰7¥7Ã7Ø7ì7!8"'81J8|83”81È81ú86,9	c9	m9
-w9
-‚9�9¥9´9É9Ø94Þ9 :%4:.Z:.‰:¸:Ö:ë:ô:1;lF;>³;'ò;U<Xp<EÉ<K=C[=RŸ=Rò=2E>1x>6ª>0á>5?0H?3y?B­?6ð?B'@<j@G§@Bï@M2AI€A+ÊA-öA'$BdLBM±B@ÿB@CH_C=¨C'æCUD8dDG�D<åD "E;CE6E¶E@ÂE3F57F$mF$’F-·FRåF=8GvG‚GŸG³GÆG5ÙG6HFH"_H!‚H=¤HâH)úH7$I
\IÞjI×IJ!K?K(]KB†KHÉK*LJ=LˆL›L†°L7M;@M=|M%ºMàMèMðMNN<2NeoN&ÕN9üN 6O*WO‚O•O3±OåOûOP*P@PXPqP�PœP°PQ¸P
-Q*Q#9Q>]Q*œQ*ÇQ2òQ%R:RLRTRlR€R”R¨R»RUÎR)$SKNSZšSõSTT@7T4xT­T#´TØTèT÷T3
-U5>U(tU0�UÎU.íU,VIVdV}V„V
-œV+§VÓV(éVW*WAW]W zW›WBµWøWX&X6XGXYXkXX!“X,µX,âXQY~aY‘àY;rZ+®Z>ÚZ[%5[F[[>¢[=á[A\Aa\3£\5×\5
]QC]7•]9Í]4^�ÝgóAX]˜1Ð�rb:Yð
+k
+1v
+¨
+º
+Ô
+ñ
+,K_>q5°>æ%
+;#Fj|œ!®.Ð-ÿV-
9„
¾
Ø
Hø
,An€‘"¯Òä%ý/#,S €¡8³ìþ
&"4Wr‚Ž 	§	±»
Ö#ä>GOa~œµ+Éõ+:Rd"|/ŸÏáò$@0T6…¼Îàç î1/Aq?‘)Ñ*û&EDIŠLÔF!+hz”N^"}6 
+×ârø5k¡,³$à(%N&`‡¤½Ý(ó$/A6q/¨6Ø %0/V6† ½/Þ6=E/ƒ6³)ê1'E0mž½)Ú#.(W(p™¹Òï!#>-b%�¶Èæø ( "7 5Z +� *¼ %ç 
!+!D@!D…!3Ê!þ!3"HB"‹"›"·"Ñ"Fá"(#W1#Ÿ‰#5)$_$.u$¤$À$Ö$é$% %<% Z%{%‘%$°%Õ%Sç%Q;&M�&RÛ&@.'Io'5¹'Qï'5A(6w(>®(Jí(g8)? )Qà)S2*E†*TÌ*,!+JN+^™+Hø+*A,@l,/­,*Ý,,-\5-@’-iÓ-5=.3s.Y§.l/Fn/%µ/&Û/N0CQ0>•0%Ô0“ú0	Ž1˜1µ1Í1å1Dþ1;C2-2­2´2Î2é2i3p39‚3E¼3n4hq4?Ú4G5.b5%‘5#·5Û5Gô52<6(o6K˜6ä6ø67,7@7Z7u7Š7Ÿ7´7É7å788,8!E8"g81Š8¼83Ô8191:96l9	£9	­9
+·9
+Â9Í9å9ô9	::4: S:%t:.š:.É:ø:;+;4;1T;l†;>ó;'2<UZ<X°<E	=KO=C›=Rß=R2>2…>1¸>6ê>0!?5R?0ˆ?3¹?Bí?60@Bg@<ª@Gç@B/AMrAIÀA+
+B-6B'dBdŒBMñB@?C€CHŸC=èC'&DUND8¤DGÝD<%E bE;ƒE6¿EöE@F3CF5wF$­F$ÒF-÷FR%G=xG¶GÂGßGóGH5H6OH†H"ŸH!ÂH=äH"I):I7dI
œIÞªI×‰JaKK(�KBÆKH	L*RLJ}LÈLÛL†ðLwM;€M=¼M%úM N(N0NNNTN<rNe¯N&O9<O vO*—OÂOÕO3ñO%P;PRPjP€P˜P±PÍPÜPðPQøPJQ*NQ#yQ>�Q*ÜQ*R22ReRzRŒR”R¬RÀRÔRèRûRUS)dSKŽSZÚS5TGTYT@wT4¸TíT#ôTU(U7U3JU5~U(´U0ÝUV.-V,\V‰V¤V½VÄV
+ÜV+çVW()WRWjW�W�W ºWÛWBõW8XSXfXvX‡X™X«X¿X!ÓX,õX,"YQOY~¡Y‘ Z;²Z+îZ>[Y[%u[F›[>â[=!\A_\A¡\3ã\5]5M]Qƒ]7Õ]9
^4G^�ÝgóAX]˜1Ð�rb:Yð
 kê4ÏrGJêæ‘(äOÒªqúçîß/ièB_Œ¾Snwx½RŽÐ	[ïÌT+‚ÿ| Ì¡†c2ºÐFÀí?\ÿJM>ŸAqÀŸ²VýIÔ^š­Ç/rÒä—Ô£HÈ®²è‡bHÔGûì¾Ãn™�®–%­ÊñIkc¶“2<Êº�¥Y´§X5“$
\7÷àã²©æEéãšz´V|ÓòˆK­˜EouÄ$VJK¡»†>Ûì¨
 èñ¢â&	¨k'¸sØv.9¤b†át ˜Ýioðõ[½ÖašŽœžÄQ8‘@ «³dÍ¬zØ8ÅêCt”idþBf–§ž*oÃìËEÞ—ôþ]ºcl0ÑÎ¹\8¼,)œ™�\PõíÁmT±ê�•¬BÇY‰;]¤0ayON£�X6³ÖSu:1r€3"‡n	ö±[rƒÓ=§^=IåMÄ$%X¶<¾”p-á:Á¬�Â@3üRÉOÅeÅµŸ¹ç{÷Œ^ñö›	¶¦¥=e´ç(UˆhD¸Üã5…27e*sôù.é4äMXW	OP_eÉQÛèjÅkLë‚Œ™©1SÅ½³6,Jœ:¿P.’Ö˜Ñ*ë¸ÝU}jt#Ùat~8<ÿ­0!¦uüVÆZ	;�Í³÷ù¬+`ø°`Ê@ÈØ¹ $µ°_Ö£G€‰lò~¯¹!ÞÙ{;…Àóq{M’ˆ¿¼URÇ(!¢C(þïv‹¿JLnIjÒskmswŠG#(?ë¥#"@q�¨Ü’÷+!„Ç‹J6ÒÎÈÚ]‡d'Ô„p¶OÂbîÂ]žÈ›Z
V�x\˜�¦·zur²Á‚Œ™GX;¼ÚˆS?&=xÕ-#©òHEoNcõgÁ¨pÞù*œ¾6«�óúF‡Æ1òdRÆ'
 ÖýeUWC·–>-ËNàÌzé›ZŽ»–K»•ƒi%`Ä¡Ã:h¤¤.k
@@ -640,6 +640,7 @@ PO-Revision-Date: 2016-05-14 04:05+0200
 Last-Translator: Josef Andersson <josef.andersson@fripost.org>
 Language-Team: Swedish <tp-sv@listor.tp-sv.se>
 Language: sv
+X-Bugs: Report translation errors to the Language-Team address.
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/sv.po ./bfd/po/sv.po
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/sv.po	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/sv.po	2018-01-09 02:04:54.000000000 +0000
@@ -13,6 +13,7 @@ msgstr ""
 "Last-Translator: Josef Andersson <josef.andersson@fripost.org>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "Language: sv\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/tr.gmo ./bfd/po/tr.gmo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/tr.gmo	2018-01-02 02:07:01.000000000 +0000
+++ ./bfd/po/tr.gmo	2018-01-09 02:08:39.000000000 +0000
@@ -11,24 +11,26 @@ C.4C0cC/”CFÄC>
 |4D|7y|7±|$é|V}e}5‚}¸}
 Í}#Ø}ü}~0~E~R~a~
~/�~+½~8é~""AId®Á$Ó6ø/€L€b€t€…€•€	¥€¯€¸€Á€
 Ø€"ã€%�,�8�X�)m�/—�Ç�.æ�,‚B‚:^‚%™‚%¿‚å‚"þ‚[!ƒ?}ƒ½ƒÜƒåƒ*„&+„R„j„$}„¢„$´„Ù„!ù„…D5…Dz…/¿…ï…?†A†R†r†J‰†7Ô†*‡7‡O‡%e‡‹‡ž‡»‡JØ‡J#ˆJnˆI¹ˆ:‰;>‰:z‰6µ‰iì‰DVŠd›ŠF‹CG‹‹‹@ª‹8ë‹7$Œ\Œ|ŒŽŒ Œ2µŒ.èŒ�d/�”�%±�×�ô�7ŽHŽ!aŽ-ƒŽ+±Ž+ÝŽ		�	�
-� (�1I�&{�¢�&µ�Ü�û��$.�"S�v�,”�BÁ�D‘*I‘Lt‘ Á‘xâ‘[’q’‡’*¦’ Ñ’ò’“&“:“O“e“y“N�“!ß“””0”D”X” l”&�” ´”#Õ”(ù”9"•\•3w•!«•$Í•0ò•#–?–V–h–7–·–Ð–â–!õ–-—0E—=v—/´—6ä—Z˜v™�™°™Ì™%Ý™:š.>š&mš”šH¤š(íš›1›I›b› r›!“›%µ›Û›î›+œ<-œ@jœA«œíœ:�:A�8|�;µ�,ñ�?ž/^ž>ŽžÍžæžCýž!AŸcŸ?zŸ4ºŸ4ïŸ$ 9 V p � ¦ ³ Î î 	¡¡+¡	=¡
G¡
U¡
-c¡
-n¡
-y¡„¡—¡
- ¡2«¡/Þ¡2¢
-A¢L¢(b¢7‹¢$Ã¢#è¢	£4£K£S£i£	x£‚£‹£	”£ž£ª£³£¼£	Å£Ï£Û£	î£ø£¤¤ .¤O¤_¤¤�¤!¯¤=Ñ¤|¥{Œ¥¦(¦1H¦>z¦5¹¦<ï¦,,§4Y§7Ž§§Æ§/n¨Cž¨â¨9©J;©-†©°´©Keª>±ªsðª<d«I¡«#ë«F¬5V¬$Œ¬*±¬2Ü¬0­0@­/q­<¡­NÞ­<-®<j®3§®!Û®;ý®49¯/n¯.ž¯)Í¯.÷¯,&°BS°-–°8Ä°fý°Ad±l¦±@².T²Šƒ²5³9D³8~³b·³6´UQ´C§´,ë´LµMeµB³µ^öµ2U¶*ˆ¶E³¶Aù¶H;·#„·'¨·:Ð·%¸ 1¸NR¸B¡¸8ä¸>¹B\¹/Ÿ¹,Ï¹@ü¹C=ºE�º:ÇºG»>J»?‰»(É»Dò».7¼2f¼"™¼ ¼¼MÝ¼Q+½=}½+»½?ç½='¾&e¾%Œ¾7²¾5ê¾2 ¿2S¿5†¿A¼¿Aþ¿I@À?ŠÀ?ÊÀJ
-Á%UÁD{Á+ÀÁ1ìÁ+ÂPJÂ6›Â#ÒÂ+öÂ."Ã2QÃ.„ÃX³Ã5Ä>BÄ�Ä3¡Ä/ÕÄ!Å9'ÅGaÅ©ÅJÉÅxÆM�ÆKÛÆY'ÇY�Ç\ÛÇZ8È_“ÈQóÈJEÉj�É?ûÉ7;Ê%sÊY™ÊGóÊ9;ËuË.�Ë0¾Ë8ïË8(Ì;aÌ@�ÌAÞÌF ÍxgÍsàÍQTÎA¦Î;èÎ9$ÏN^Ï8­Ï9æÏ Ð$>Ð.cÐ’Ð¬ÐÂÐÖÐêÐ0ýÐ5.Ñ,dÑF‘ÑJØÑ+#Ò,OÒ<|Òc¹ÒFÓUdÓSºÓ6Ô=EÔaƒÔ`åÔ_FÕE¦ÕAìÕ6.ÖCeÖ2©Ö<ÜÖ2×3L×&€×-§×OÕ×9%Ø5_Ø9•Ø<ÏØ3Ù@Ù.[Ù,ŠÙ7·Ù"ïÙ,Ú?Ú8WÚ&�ÚA·Ú+ùÚX%ÛK~Û)ÊÛ2ôÛm'ÜP•ÜWæÜ]>ÝPœÝAíÝF/Þ=vÞ:´ÞLïÞZ<ßS—ß<ëß>(à>gà>¦à>åàv$áP›áXìáSEâ7™â@Ñâ_ãHrãO»ãUäOaäF±äøä"å9(åbåGråºåÊåÜå%ïåæ!"æ<Dæ'�æ<©æ#ææ9
-çIDçŽç"ŸçÂç/Øçèè(6èF_è¦èp¸è1)é3[é1�é0Áé2òét%ê>šêiÙê]Cëd¡ëPì0WìOˆìOØìD(íEmíQ³íBîuHîu¾î74ï<lï7©ï_áï_Að%¡ðHÇðñ1)ñ[ñwñ&„ñ«ñÂñÝñõñ	òò7òCKò1�ò7Áòùò'óI=ó‡óœó$­ó8Òóô ô8ôEôUôaô
-mô
xô†ô�ô
-®ô"¹ô4Üôõ"!õDõ=YõC—õÛõ/ôõ-$öRö9qö&«ö&Òöùö1÷\I÷\¦÷!ø%ø1ø3Gø3{ø¯øÅø)Öøù(ù&5ù0\ù"�ùj°ùgú3ƒú·úCÏúû$û>ûSYû+­û5Ùûü.ü)Güqü'Žü"¶üVÙüM0ýP~ýLÏýAþ6^þT•þTêþs?ÿG³ÿqûÿWm]Å%#WIR¡Hô/=m‘3£5×"
s0"¤+ÇóP/!€+¢.Î,ý,*	W	a
-k&v.�&Ìó#%0!Vx!’ ´Õ.ïNQm8¿UøN…n ô 	.6	.e	#”	,¸	å	þ	
-+
-B
-X
-Iq
-)»
-&å
-&@Z"t%—&½ä';,h@ƒ'Äì8
!D
f
ƒ
&Ÿ
?Æ
&-<$L1q9£AÝ7AWÁ÷6éÇ™4,õ
¯a;ëçÚYªQ>®öe7K�1V°U$•	(½Ó
+� (�1I�&{�¢�&µ�Ü�û��$.�"S�v�,”�BÁ�D‘*I‘Lt‘ Á‘xâ‘[’q’‡’*¦’ Ñ’ò’“&“:“O“e“y“N�“!ß“””0”D”X” l”&�” ´”#Õ”(ù”9"•\•3w•!«•$Í•0ò•#–?–V–h–7–·–Ð–â–!õ–-—0E—=v—/´—6ä—š˜¶™Ð™ð™š%š:Cš.~š&­šÔšHäš(-›V›q›‰›¢› ²›!Ó›%õ›œ.œ+Aœ<mœ@ªœAëœ-�:F�:��8¼�;õ�,1ž?^ž/žž>Îž
Ÿ&ŸC=Ÿ!�Ÿ£Ÿ?ºŸ4úŸ4/ d y – ° Í æ ó ¡.¡I¡Z¡k¡	}¡
‡¡
•¡
+£¡
+®¡
+¹¡Ä¡×¡
+à¡2ë¡/¢2N¢
+�¢Œ¢(¢¢7Ë¢$£#(£	L£4V£‹£“£©£	¸£Â£Ë£	Ô£Þ£ê£ó£ü£	¤¤¤	.¤8¤L¤X¤ n¤�¤Ÿ¤¿¤Ý¤!ï¤=¥|O¥{Ì¥H¦(_¦1ˆ¦>º¦5ù¦</§,l§4™§7Î§§¨/®¨CÞ¨"©9A©J{©-Æ©°ô©K¥ª>ñªs0«<¤«Iá«#+¬FO¬5–¬$Ì¬*ñ¬2­0O­0€­/±­<á­N®<m®<ª®3ç®!¯;=¯4y¯/®¯.Þ¯)
°.7°,f°B“°-Ö°8±f=±A¤±læ±@S².”²ŠÃ²5N³9„³8¾³b÷³6Z´U‘´Cç´,+µLXµM¥µBóµ^6¶2•¶*È¶Eó¶A9·H{·#Ä·'è·:¸%K¸ q¸N’¸Bá¸8$¹>]¹Bœ¹/ß¹,º@<ºC}ºEÁº:»GB»>Š»?É»(	¼D2¼.w¼2¦¼"Ù¼ ü¼M½Qk½=½½+û½?'¾=g¾&¥¾%Ì¾7ò¾5*¿2`¿2“¿5Æ¿Aü¿A>ÀI€À?ÊÀ?
+ÁJJÁ%•ÁD»Á+Â1,Â+^ÂPŠÂ6ÛÂ#Ã+6Ã.bÃ2‘Ã.ÄÃXóÃ5LÄ>‚ÄÁÄ3áÄ/Å!EÅ9gÅG¡ÅéÅJ	ÆxTÆMÍÆKÇYgÇYÁÇ\ÈZxÈ_ÓÈQ3ÉJ…ÉjÐÉ?;Ê7{Ê%³ÊYÙÊG3Ë9{ËµË.ÏË0þË8/Ì8hÌ;¡Ì@ÝÌAÍF`Íx§Ís ÎQ”ÎAæÎ;(Ï9dÏNžÏ8íÏ9&Ð`Ð$~Ð.£ÐÒÐìÐÑÑ*Ñ0=Ñ5nÑ,¤ÑFÑÑJÒ+cÒ,�Ò<¼ÒcùÒF]ÓU¤ÓSúÓ6NÔ=…ÔaÃÔ`%Õ_†ÕEæÕA,Ö6nÖC¥Ö2éÖ<×2Y×3Œ×&À×-ç×OØ9eØ5ŸØ9ÕØ<Ù3LÙ€Ù.›Ù,ÊÙ7÷Ù"/Ú,RÚÚ8—Ú&ÐÚA÷Ú+9ÛXeÛK¾Û)
+Ü24ÜmgÜPÕÜW&Ý]~ÝPÜÝA-ÞFoÞ=¶Þ:ôÞL/ßZ|ßS×ß<+à>hà>§à>æà>%ávdáPÛáX,âS…â7Ùâ@ã_RãH²ãOûãUKäO¡äFñä8å"Eå9hå¢åG²åúå
+ææ%/æUæ!bæ<„æ'Áæ<éæ#&ç9JçI„çÎç"ßçè/èHè^è(vèFŸèæèpøè1ié3›é1Ïé0ê22êteê>Úêië]ƒëdáëPFì0—ìOÈìOíDhíE­íQóíBEîuˆîuþî7tï<¬ï7éï_!ð_�ð%áðHñPñ1iñ›ñ·ñ&Äñëñòò5òIòXòwòC‹ò1Ïò7ó9ó'UóI}óÇóÜó$íó8ôKô`ôxô…ô•ô¡ô
+­ô
¸ôÆôÏô
+îô"ùô4õQõ"aõ„õ=™õC×õö/4ö-dö’ö9±ö&ëö&÷9÷1W÷\‰÷\æ÷!Cøeøqø3‡ø3»øïøù)ù@ù(Lù&uù0œù"Íùjðùg[ú3Ãú÷úCûSûdû~ûS™û+íû5üOünü)‡ü±ü'Îü"öüVýMpýP¾ýLþA\þ6žþTÕþT*ÿsÿGóÿq;W­]%cW‰RáH4/}­¿Ñ3ã5"Msp"ä+3QPo!À+â.,=,j	—	¡
+«&¶.Ý&3#L%p!–¸!Ò ô./N^Q­8ÿU8Ž…® 4	 U	.v	.¥	#Ô	,ø	%
+>
+T
+k
+‚
+˜
+I±
+)û
+&%Lf€š"´%×&ý$'D;l¨@Ã'
,
8K
!„
¦
Ã
&ß
?&Fm|$Œ1±9ãA7_A—Á÷6éÇ™4,õ
¯a;ëçÚYªQ>®öe7K�1V°U$•	(½Ó
 ˆ¬Žhøn#SI�%Ú×ÀP±T‹}p‘¦5î+HBøW—S€¡‘!{F×³¢ÅXEµ#¤	‚±Æ)Œ %ÅÂ¶`ˆ.mÁg·w?(Ÿz+¸€
 À!) y|¥•Õ[úƒ½›[GDÿmç‰†YÈÝy6‹ot*tååðæßIºJ­E\ù¼AU³¼u6:ëzÔž†"¡„C¥ìnq­¶XÃ�¯o'«0Bí¹â|2�ï2J@ï5«õ:/V®
þx˜‡h/‚Lðc—?š‡O¿3ôú
²öªã“äjdD°ŽE�Ë=ùJ’š�]C}�\Î*ÏŠŠ<B‰·µ»àóK3_1v.^' ñÃM&ÿRk4ãýÑ£bÏè´9ûêìp§ÕAò!ÒL8Ô¾c˜¾TòF…Pá÷ÆÍô &ä2~vkZ1“i{Ùx$AÊL=)²M©W7íOÇÞHÖž´fé¦~–œI?0q’e›âÜ�b-9lêÌZ"7Ê”Œ$ÌG^ÄœÉý¤iÓÑàl]î¨:ó8™/9Q5sÜD`*@ËÐñÐG-©C-ÛP0NÎüRdrØ<>ujƒÒæ3ÈèOg¸¨,Þ('@�Ä
 K+%&a£	H=;N…ßÖ§8NºŸ„û¿<Û» ”,ÉM¬"r¹sþ�¢_áØF#Ý4ü;–QÍ.w>fÙÂ	Export Address Table 			Export Address Table 		%08lx
@@ -180,6 +182,7 @@ POT-Creation-Date: 2003-07-11 13:53+0930
 PO-Revision-Date: 2003-07-13 22:07+0300
 Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>
 Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>
+X-Bugs: Report translation errors to the Language-Team address.
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/tr.po ./bfd/po/tr.po
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/tr.po	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/tr.po	2018-01-09 02:04:54.000000000 +0000
@@ -9,6 +9,7 @@ msgstr ""
 "PO-Revision-Date: 2003-07-13 22:07+0300\n"
 "Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/uk.gmo ./bfd/po/uk.gmo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/uk.gmo	2018-01-02 02:07:01.000000000 +0000
+++ ./bfd/po/uk.gmo	2018-01-09 02:08:39.000000000 +0000
@@ -1,56 +1,73 @@
-Þ•!$)Ù,R�m‘mªmÉmàm$óm3nLn%ln’nA¢n&äno$o=oVofo …o¦oÆoßoöo	p*!p9Lp6†p;½pùpFq6Rq:‰q5ÄqJúq)ErGorL·r)sL.s{s‘sD¨sístt2tJt3it�t0´tåtõtu+u+Ku+wu#£uÇußuèuôuv)v@v`v}v–v±vÑvêvww3w,Gwtw„w�wµwÌwÛwñwx1"xTxexrx‰x¤x#¼x+àx&y53yiy�y›y±yËyäyûy$z6zOzoz‡z$œzÁzÕzêz<{@{O{
^{l{€{ ˜{¹{Ô{ä{| |@|Y|r|…|*‘|¼|Î|&à|}0}L}"`}	ƒ}�}# }Ä}Ý}î}~" ~C~"W~#z~#ž~Â~#×~#û~.,[ain
-‹–›!¡ Ãäéî€.€3€G€ L€m€t€z€€„€Š€Ž€“€¯€È€Í€í€�!�A�F�K�R�X�]�o�v�Š�‘�ª�¾�Ï�à�ñ�‚‚	"‚
,‚
:‚
-H‚
-S‚
-^‚i‚
-~‚‰‚$�‚
-µ‚#À‚%ä‚
+Þ•Ët6	Ìl@‘A‘N‘b‘{‘Aš‘?Ü‘:’W’n’�’$ ’3Å’ù’“%&“L“A^“& “Ç“à“ù“”"” A”b”‚”›”²”¿”PÒ”#•*;•9f•6 •;×•–F%–6l–6£–:Ú–5—,K—Dx—N½—J˜)W˜G�˜:É˜B™LG™)”™B¾™LšNšdšD{šGÀš›'›9›M›e›z›3™›Í›ä›0ö›'œ7œGœ+aœ+�œ+¹œ#åœ	�!�*�H�?_�>Ÿ�7Þ�ž-žMžjžƒžžž¾ž×žòžŸ Ÿ,4ŸaŸqŸŠŸ¢Ÿ¹ŸÈŸÞŸøŸ1 A R _ v ‘ #© +Í &ù 5 ¡V¡n¡ˆ¡ž¡¸¡Ñ¡è¡$þ¡#¢<¢\¢t¢$‰¢®¢Â¢×¢<ð¢-£<£
K£Y£m£ …£¦£Á£Ñ£ñ£
¤-¤F¤_¤*r¤�¤¯¤&Á¤è¤0ü¤-¥"A¥	d¥n¥#�¥¥¥¾¥Ï¥è¥"¦$¦"8¦#[¦#¦£¦#¸¦#Ü¦§
§+§I§O§W§\§
+y§„§‰§!�§ ±§Ò§×§Ü§ô§¨4¨9¨M¨!R¨t¨{¨�¨†¨‹¨‘¨•¨š¨¶¨"Ï¨ò¨÷¨©+©&K©Br©µ©Õ©Ú©ß©æ©ì©ñ©ª
+ªª%ª>ªRªcªtª…ª–ª§ª¿ª	Îª
Øª
æª
+ôª
+ÿª
 
-ƒƒ(ƒ$@ƒeƒƒƒ!�ƒ¿ƒÔƒ
-ãƒ
îƒ	üƒ„
-„"„)„A„[„j„�„œ„«„Ä„Ó„Ú„ê„þ„(…/@…p…‰…›…°…+¿…ë…A†I†c†}†—†8¬†å†ý†‡&,‡S‡r‡†‡2¡‡Ô‡?î‡&.ˆUˆtˆ(‡ˆ°ˆ"Äˆçˆ*‰62‰{i‰rå‰xXŠÑŠDçŠ*,‹7W‹$�‹'´‹*Ü‹!Œ=)ŒAgŒE©ŒïŒ%�D4�.y�,¨�*Õ�%Ž4&Ž[Ž>zŽG¹Ž�J
-�5U�8‹�(Ä�,í�P�Ek�F±�Fø�3?‘<s‘%°‘AÖ‘n’K‡’7Ó’*“86“.o“<ž“9Û“@”HV”BŸ”Jâ”B-•Tp•TÅ•T–To–‰Ä–<N—m‹—[ù—PU˜<¦˜Dã˜^(™D‡™€Ì™1MšJšIÊš>›mS›6Á›mø›!fœ#ˆœ8¬œ)åœ.�0>�>o�>®�/í�/žFMž>”ž-Óž(Ÿ*Ÿ7HŸ1€Ÿ0²Ÿ/ãŸ) /= ;m <© <æ /#¡-S¡&�¡3¨¡3Ü¡O¢W`¢O¸¢o£+x£5¤£#Ú£7þ£E6¤>|¤2»¤:î¤2)¥(\¥+…¥<±¥?î¥Q.¦3€¦'´¦=Ü¦<§MW§K¥§Dñ§!6¨:X¨7“¨Ë¨.é¨©18©'j©%’© ¸©EÙ©4ªHTª?�ª<ÝªG«-b«7�«1È«8ú«23¬+f¬/’¬7Â¬ú¬+­LF­$“­+¸­ä­®®;®+V®5‚®@¸®@ù®I:¯I„¯9Î¯$°,-°'Z°=‚°QÀ°D±1W±5‰±¿±2Ü±.²?>²A~²EÀ²$³9+³5e³&›³4Â³1÷³$)´$N´/s´%£´<É´*µ'1µ3Yµ&�µ´µ4Ðµ¶4$¶Y¶.p¶(Ÿ¶*È¶6ó¶2*·5]·8“·WÌ·Z$¸B¸5Â¸=ø¸<6¹(s¹-œ¹0Ê¹û¹Pº fº@‡ºkÈº44»;i»$¥»'Ê»ò»2¼OB¼K’¼GÞ¼`&½A‡½YÉ½S#¾<w¾g´¾a¿l~¿Fë¿-2À2`À(“À3¼À1ðÀ-"ÁDPÁB•Á6ØÁ*Â2:Â.mÂ*œÂ(ÇÂðÂ4ÃD@ÃC…ÃCÉÃE
Ä^SÄ]²Ä)Å+:Å$fÅ)‹Å8µÅ:îÅ&)Æ&PÆ2wÆ+ªÆ=ÖÆ,ÇAÇ+_Ç‹Ç-¡Ç+ÏÇûÇ*È2EÈ"xÈ#›È"¿È-âÈ,ÉG=ÉG…ÉGÍÉ(Ê@>ÊDÊ2ÄÊ7÷Ê5/Ë/eË*•Ë1ÀË;òËW.Ì-†Ì-´ÌâÌ)Í%*Í2PÍ2ƒÍ=¶Í;ôÍB0ÎAsÎ:µÎ2ðÎ?#ÏcÏ›ƒÏ6Ð6VÐA�ÐGÏÐ6Ñ=NÑ:ŒÑ:ÇÑDÒ8GÒ9€ÒCºÒ:þÒ79Ó8qÓ9ªÓ,äÓ6ÔHÔ;dÔ: Ô.ÛÔ
-Õ1*Õ$\Õ5�Õ9·ÕOñÕ#AÖ1eÖC—Ö6ÛÖ(×&;×:b×#�×'Á×pé×'ZØ1‚Ø;´Ø£ðØ7”Ù(ÌÙ5õÙ8+Ú>dÚ £ÚÄÚ!âÚ Û%%ÛbKÛ'®Û)ÖÛ=ÜG>Ü%†Ü*¬Ü0×Ü&Ý&/Ý7VÝ8ŽÝ9ÇÝ6Þ/8ÞChÞQ¬ÞþÞß-ßBß2Xß&‹ß²ßMÁßTà2dà|—à(á[=á+™á/Åá(õáRâFqâF¸â:ÿâ6:ãDqã7¶ã*îã-ä0GäAxäHºä>å+BåInå;¸åôå;æ;Pæ.Œæ.»æ=êæI(ç.rç/¡ç@Ñç*è)=è;gè£è>ÁèBélCé@°é?ñéG1êFyêJÀêHëKTëG ëBèëX+ì4„ì/¹ìNéì08í(ií/’íÂíÕíéí0ûí=,îDjî0¯î5àî)ï7@ïxï’ï'±ï&Ùï[ðG\ðO¤ð9ôð.ñ>Nñ2�ñ5ÀñPöñ=Gò/…òoµò%ó
9óGó
Sóaó%ró\˜ó;õó1ôCôYô\ôyô†ô	Ÿô©ô»ô,Èôõô	õ/õOõ;_õ›õ°õÀõÉõÝõòõöö	;ö"Eö+hö#”ö,¸ö:åö ÷2÷.N÷4}÷?²÷=ò÷	0ø":ø]øtø}ø�ø”ø¦ø¸ø'Êøòø ù#0ùTùnù$€ù$¥ù$Êù'ïù%ú'=úeúƒú£ú"Ãúæúöúû û7û)Mûwû#�û#±û-Õû8ü1<üAnü.°üYßü_9ý;™ý)Õý!ÿý$!þFþH[þ%¤þÊþ5çþÿ
-2ÿ"=ÿ`ÿrÿ‹ÿ¦ÿ»ÿÈÿ×ÿ
õÿ/+E8qªÀß'ñ+.I-xG¦3î""AId%®Ôçù":L$eŠ§5¹ï#9Kk…–¥·	¾ÈÑ
-è"ó%<HWnŠ ²Òë1I-g•§¹Îè)/Gw‰›¢!©.Ë,ú':C%~%¤Ê=ãC!	=e	"£	[Æ	?"
-b
-�
-)ž
-È
-Ñ
-*ì
-&)Pp‚‰(�¹'Ëó(H#`$„,©.Ö,
.2
a
"~
,¡
.Î
!ý
10Q2‚,µ.â#5U(i/’!Âä(#*+Nz,“ Àáú.N#m-‘"¿âô7Pew2’$Å&ê	1!;]DwD¼/1/C?s³ÄäûJ7bš*´ß÷%6L#i%�³ÆãJJ]J¨Ió:=;x:´Eï659l7¦9ÞQ/jBš@Ý.=M&‹.²/á-i?D©dî,SF€fÇC.r#‘@µ8ö7/g	‡‘­¿Ñ<æ2# .V … � ¤ ¼ dÔ 9!6L!@ƒ!=Ä!d"gg"bÏ"=2#Ep#1¶#(è#$$6$4L$'�$$©$7Î$%%/%F%W%o%‡%™%«%½%Ï%é%&&'&?&^&2}&°&-É&+÷&+#'*O'	z'	„'
-Ž'™'®'½'Ò'á'1æ'(7('V("~(¡(¿(Ô(Ý(]û(=Y)(—)ZÀ)Z*Ev*A¼*Gþ*WF+Wž+9ö+90,4j,9Ÿ,4Ù,2-7A-5y-7¯-.ç-2. I.[j.@Æ.:/#B/=f/<¤/Ná/-00O^0 ®0>Ï091
-H11S1&…1&¬1!Ó1õ1,27A2
y2‡2š2®2Á27Ô23$,3"Q3At3¶3,Ô32444¾D4»5¿5Ú5õ5B6DX6*�6LÈ67*7y97³70»7ì78888298Ol8¼8*Û8 9'9KE9‘9ž9 ¸9Ù9í9::,:B:Y:v:‡:›:N£:ò:#ö:6;Q; q;8’;Ë;Ý;í;õ;
-<<2<F<Y<Ll< ¹<DÚ<=1=D=3_=!“=µ="¼=ß=ï=þ=%>'7>$_>)„>*®>Ù>0õ>,&?S?q?‹?“?
«?%¹?ß?'÷?@9@P@b@y@7�@È@á@ó@AA.ADA-cA)‘A>»AgúAxbB-ÛB!	C7+CcC!|C;žC0ÚC5D<AD<~D2»D/îD.E=ME/‹E6»E,òEF8(H>aH9 H"ÚH\ýH[ZI8¶INïI>JuTJ:ÊJ*K%0K+VK‚K0”K2ÅK1øK/*L#ZL$~L<£LpàLkQMg½MI%N&oN§–N_>OWžO]öO‚TPS×P•+QˆÁQQJR{œR'S$@S…eS]ëSITgT-{T+©THÕT&U]EU£U¹UÉU7éU7!V7YV%‘V(·VàVéV'õV,W#JW'nW'–W¾W$ÜW?X!AX&cXŠX#ªX'ÎXLöXCY%SY!yY-›YÉYÜY!üYZP>Z�Z«Z(¸Z'áZ 	[G*[Vr[GÉ[O\(a\$Š\!¯\%Ñ\÷\]1]KL]%˜]4¾]&ó]^?5^u^�^ ­^<Î^__
)_7_#N_4r_§_Æ_@ã_1$`0V`‡`#¦`Ê`â`Cî`2aIa2`a“a;¬aèaGüaDbWb#jbŽb§bÃb$Üb7c9c3Mc#�c#¥cÉc#ác#d)dL=dŠd�d˜d-�d
-ËdÖdÛd.ád*e;e@e(Ee.ne�eB¢eåeNêe9f@fFfKfPfVfZf7_f5—fÍf(Òf;ûf,7g(dg�g’g—gžg¤g©gÃgÊgägëg
-h$h:hPhfh|h’h	¬h
¶h
Äh
-Òh
-Ýh
-èh5óh
-)i4i_;i›i{²in.j
-�j!¨j1ÊjUüj>Rk9‘kHËk1l,Flsl"…l¨l´lÑlål-ìlQmlm;…m1Ámóm?
nMn]ndn�n¡nQÁn^o ro,“oÀoÝoQ÷o6IpA€p@Âp#q$'qLq�jq&øq7r,WrI„rDÎrs'sGBs"ŠsB­sKðsF<tƒt=žtÜt1ùtI+u,uuP¢u¹óu¸­v­fw/xˆDxjÍxv8y?¯yOïyJ?z:ŠzlÅz‰2{n¼{&+|RR|v¥|S}Vp}VÇ}J~mi~D×~[Šx€Ë€IØ€W"�Lz�UÇ�‡‚�¥‚‡5ƒ‡½ƒlE„²²„?e…k¥…Å†“×†\k‡GÈ‡eˆ\vˆ^ÓˆZ2‰\�‰qê‰^\Šs»Šx/‹‘¨‹‘:Œ‘ÌŒ‘^�öð�^çŽâF�ª)�zÔ�cO‘r³‘´&’†Û’âb“NE”‰””{•eš•É–OÊ–ì—L˜GT˜²œ˜\O™E¬™Uò™rHšr»š�.›c¾›Ì"œsïœkc�RÏ�L"žuožoåž^UŸS´ŸT S] H± ~ú ~y¡bø¡K[¢U§¢dý¢db£‘Ç£ Y¤Ïú¤Ê¥LÒ¦n§QŽ§ià§€J¨uË¨jA©k¬©–ªS¯ªo«–s«n
-¬˜y¬t­;‡­aÃ­ %®|Æ®^C¯|¢¯1°}Q°qÏ°RA±Y”±8î±K'²:s²D®²Bó²i6³b ³´cƒ´yç´—aµTùµ­N¶{ü¶¼x·y5¸y¯¸\)¹€†¹3ºY;º“•ºU)»I»EÉ»8¼IH¼’¼T±¼y½»€½½<¾Œú¾Œ‡¿‡ÀSœÀLðÀB=Áu€Á•öÁ�ŒÂPÃa_ÃEÁÃHÄJPÄz›Ä™ÅÝ°ÅHŽÆq×ÆjIÇ:´Ç`ïÇ\PÈD­È>òÈU1ÉT‡ÉqÜÉTNÊ:£Ê\ÞÊD;Ë/€Ëq°Ë;"Ì]^Ì1¼ÌVîÌYEÍaŸÍkÎ�mÎ¡ïÎg‘Ï±ùÏ«Ð^·ÑŸÒˆ¶Òn?Ó„®Ók3ÔZŸÔ=úÔ‘8ÕFÊÕiÖÊ{Ö`F×u§×1ØBOØ.’Ø[ÁØÀÙƒÞÙkbÚãÎÚ²ÛÛ2ÜÓÝ©âÝåŒÞârßêUà‚@á`Ãáp$â?•âeÕâ\;ãC˜ãcÜãa@ä[¢äpþäwoå[çåTCæD˜æ5Ýæ`çntçmãçmQèo¿èˆ/é‡¸éL@êN�êBÜêQëiqëoÛëFKìH’ìSÛìQ/í†�íVî2_îb’î$õîMïBhï7«ï]ãïSAðC•ðDÙðCñhbñgËñ´3ò|èòºeóJ ôskô‡ßô€gõpèõsYöpÍöi>÷|¨÷n%øµ”ø^JùX©ù9úb<úWŸúS÷úhKû�´ûŒRü�ßü¥}ý”#þ]¸þwÿŽÿ[®ÿa
-olzÜ€W\ØR5NˆO×]'L…NÒ\!N~LÍL¨g�a®/v@›·VS	@ª	‡ë	Ns
-jÂ
-o-’�?0Up—Æˆ^
Eç
K-�yGPOù :š[Õ‚1i´YZx]ÓU1t‡MüDJZ�RêE=ÎƒPRt£[mtNâ]1O�{ßW[|³_0e�]öeT{ºƒ6>ºù"%5h[UÄ‘)�»UY 
¯ U½!œ"o°"f #S‡#‰Û#ˆe$uî$ad%{Æ%|B&]¿&K'Oi'l¹'r&(‚™(|)[™)’õ){ˆ*I+�N+�Ð+TR,S§,bû,–^-Zõ-fP.²·.Dj/T¯/s0:x0w³0z+1�¦1rD2n·2|&3{£34jŸ4‘
-5}œ5€6­›6gI7g±7‘8e«8H9sZ9*Î9ù92:hL:…µ:•;;€Ñ;YR<]¬<y
-=+„=7°=Iè=G2>«z>|&?�£?r1@<¤@sá@VUAb¬AŠBošBp
-Cá{C+]D‰D¡D¾DÔD*ïD«E€ÆE$GF3lF F6£FÚF;õF1GDG^GKxGÄG%ÝGQHUH€nH,ïHI5I>ITIkI?‚IEÂIJKJfgJVÎJX%Kr~KñKRLcVLiºL‰$M�®M#?N?cN<£N
-àNëN+ïNO-O?OHQO8šOIÓOFP4dP1™PHËP0Q0EQ3vQ1ªQ3ÜQ)R+:R+fR.’R%ÁR<çR<$S@aS)¢SDÌSTO-TG}TZÅTp Uu‘UlV\tVÇÑVÂ™Wƒ\XVàX>7Y0vY2§Y~ÚYIYZ*£ZoÎZ1>[p[O�[ß[5ñ[1'\1Y\%‹\±\*Ë\ ö\]g)]N‘]Và]47^Ql^¾^DÐ^_4'_u\_TÒ_‰'`x±`A*a?la™¬aHFb/�b¿b8ÛbBcWc'ic+‘c>½cücYdhdzdŒd/¨d?ØdMe/fe"–e ¹eÚeìeóef;fXfItfa¾f g0g Ng,ogœg¼g5Ög)h36hjh!†h"¨h2Ëh]þh&\iƒi™i*¹iIäi1.jy`jÚjZklk~k…k=ŒkJÊkHl'^lG†l2Îl2m>4mvsm|êmVgnP¾nÑozáoA\p9žp`Øp9q'TqA|q¾q:ÐqGrSrerlrdsrØrEêr+0s%\s/‚s"²s0Õs:t]AtKŸt]ëtKIu9•uDÏu]vGrvOºvb
-wkmwYÙw]3xK‘x>ÝxHy&eymŒynúy7iz5¡z?×z:{RR{%¥{MË{7|%Q|Fw|&¾|Aå|@'}Hh}T±}L~S~%e~‹~$©~5Î~)!.3Pg„9ì\&€3ƒ€·€TÄ€)�iC�j­�_‚2x‚a«‚
ƒ�ƒ9¬ƒ(æƒ5„E„˜N„vç„0^…Y�…Bé…(,†-U†*ƒ†/®†4Þ†2‡^F‡/¥‡=Õ‡9ˆMˆž_ˆ�þˆ‡Œ‰“Šh¨Šb‹zt‹�ï‹x}ŒdöŒb[�d¾�#ŽŸC�Ëã�ú¯��ª‘™;’bÕ’s8“V¬“W”â[”Ž>•ïÍ•^½–º—²×—oŠ˜qú˜Ql™g¾™Y&š”€šO›	e›'o›—›·›$×›bü›o_œbÏœ2�??��4—�ÌÌ�%™žY¿ž_ŸpyŸ»êŸ¹¦ ´`¡\¢{r¢Eî¢<4£/q£¡££¿£˜c¤Hü¤…E¥+Ë¥>÷¥16¦+h¦>”¦8Ó¦,§,9§,f§,“§@À§:¨,<¨+i¨6•¨KÌ¨G©H`©,©©jÖ©hAªhªªl«€«—«®«+Æ«ò«
-¬¬.¬87¬Ep¬.¶¬tå¬KZ­.¦­Õ­ð­;ù­¸5®hî®_W¯Ç·¯Ç°UG±c�±R²©T²¤þ²{£³y´\™´aö´\Xµqµµn'¶t–¶n·Tz·QÏ·C!¸Îe¸g4¹‹œ¹N(ºjwºpâº­S»n¼¦p¼>½[V½V²½	¾I ¾Gj¾I²¾Tü¾OQ¿�¡¿q2À!¤À-ÆÀôÀÁÁg.ÁF–ÁNÝÁN,Â�{ÂBÃe\Ã]ÂÃ! Ä«BÄ¬îÅ8›Ç7ÔÇJÈ–WÈ‹îÈwzÉ¨òÉ,›Ê#ÈÊÀìÊ­Ëo¼Ë9,ÌfÌnÌvÌ!�Ìo¯ÌÏÍCïÍX3ÎDŒÎ_ÑÎ°1ÏâÏIÐ]JÐ%¨Ð&ÎÐ'õÐ%Ñ'CÑ(kÑ'”Ñ¼ÑÜÑöÑŒþÑ‹Ò>’ÒqÑÒNCÓO’ÓpâÓ+SÔ,Ô¬Ô´ÔÑÔëÔÿÔÕ&Õ¦9Õ.àÕ¸Ö$ÈÖ"íÖ7×lH×Rµ×Ø<ØRØbØqØHŠØJÓØ<Ùf[ÙdÂÙ6'ÚP^ÚY¯ÚH	Û@RÛ“Û(¤ÛÍÛZíÛ1HÜSzÜ5ÎÜ3Ý38Ý<lÝ3©ÝiÝÝCGÞ‹Þ§ÞÄÞâÞß) ßHJß[“ßxïß'hà,�á_½âLãyjã5äãLäbgärÊäz=å¬¸å¬eævçX‰çSâçu6è~¬è_+é7‹éê:Š;–Îý#ë¾>ÏÅÏÊýˆ>ñ†)Œô-ÌšúüeÆFR KÔú>N<Ù•º;9/½ÞZ~24ÊlŠbuƒ÷P’‚»O�,æ´è-ÆM³4	‰.¥±Rÿ¡—«ì�”@�€°^Ð
ã÷ª=×äW@©D�
ÇÝL_ð¡ºàßÍœS5¦óà’Ê¿}ti›û(cÁs^8]ñPž]®*º™qûZ7Ë„¹PŸqÀóÛŽïa6Àç¨/TõË{Ev®‚xQÍ¸Ãƒ/œ7ô€ëž›Å¤Ò©cyM!A†¦
-ÿ�ÖÏþî—*Zïu�àXˆ! Èõ&$x.˜„
-.c�ÿ“%^îeÉý‰é00¹�¥#o¿2?“íßHx$úd':a­‚YJ‹íÜUso©˜"öF¯AÐLaT³ì’»t~Ì}ÕØP¸·w`´�øÙ¸õ£ïÂÅ¢EúIÃ°ƒ>$=N&'�j]h[ð¸.jòÓÿÄþFúò�{åãkö°q‚ÝXpkÈNŠòå5ˆ
ï§*…çÖÏÑÑ#ÁŸ';ÄšÞØÂjŽ„®¥a–rÃU¿~¾Û7”'ùÐ¤Ú_%­âévÑÁ­Mhj`ˆC¤né§Sül(•
	ã^|ÁoÇžäCÖ‹ùŠVX)†u=lRF¨nøRzÕYÄ¬b5fšÛN
-—<œðì½T^€|Â¤v¼½pW	—ûþçÐÅÞWã¬f\’T9×pzæþ…b„8[¡1è”K%)ÕCñMtG(,wdå ðwmñÒ:þ»ÿ7EÑ®Ã‘¸ž¾‘$HiêuÔcDŒæ<Æá3I¨›f9 6N@Ø"\#Ÿ·!]åªÏV(ÂÜšÇ�r§p¨ãY; ¼ä)ÛB°D �BÝ]�ŸïÜ
-ñ²Õáô* ³4»gÀ©ÜÍ‡Þ9kíîO…w¦¶Õ¿ý8Y|Ò²åõ÷eÚâë{¢ÓÍsRl¤
&× B6÷Œ�ä!n3 ±#_ªâ¼¯e¯bÉülzä�‹£ë<h_ÈíM†Æ­‰ù.¬3ý«­·?œÎôÒK®|(™ËHiDÉèmmàvîßJT°ó1æ[Úƒ›„¦Æö0DùˆìSüg£\eøµèÌv,é¡4È©ðµÇA
-x{+Ë+†¶yªrd[5±ÂJ>‰XŸ"â¢æZ\¡? ÓALÉ¢G%‘õ+Èrc·�µ2\ÍŠ•«£Q›‡”¥™0<Ëºâs¼gÖ¯�–ø@OoCsçJÔóy€nÔ5¶Ugë}Ý�Ý•;Q"
Pi²I1”ôÎØO}‡B=…`|øof™b6QÌªqpLÄÙ`÷¢K•,“tkyÎÉ
-Ó7òW�ízÔàF0Ž‘Ùi¹¦¹4Où�yG–&Å«£µ±¶2ó×-~}ÚG²Ò‹�?gu/J¨E,!/V¹S3`	dŒnèÖ	ÁéQÜ=€X¾³E˜·fêÊç‘hß+Y-B$Lî:?q¬±'_áÀ“À´9œa%ÊÄòÌ³t…§Œ‡áÚ!Þ“ê-½ÓÑCÇmG8¼‡~ßH�á¥{UÃZ«˜m28ê1´ìØ¿Vƒ13�ŽxÛ¶[’wj—ž‚–6¯kA:‹‰�rÐz&§UW× "ü	»IÙ*¬IHV@d+ûû™ö)´˜KŽh½²ÎºSµöš¾	Export Address Table 			Export Address Table 		%08lx
-	Name Pointer Table 			Ordinal Table 				[Name Pointer/Ordinal] Table	%08lx
+«
+« «
+5«$@«
+e«#p«%”«
+º«Å«×«$ï«¬2¬!L¬n¬ƒ¬
+’¬
�¬	«¬µ¬
+Æ¬Ñ¬Ø¬ð¬
+­­+­B­]­l­…­”­›­»­(Ë­/ô­$®6®+E®q®A�®Ï®é®¯¯82¯k¯ƒ¯˜¯&²¯Ù¯ø¯2°?F°&†°­°(Ì°õ°"±+±*K±6v±{­±r)²xœ²³:+³f³Dx³*½³7è³$ ´'E´*m´!˜´=º´Aø´E:µ€µ%ŸµDÅµ
+¶r(¶.›¶,Ê¶*÷¶%"·4H·}·-œ·2Ê·Lý·>J¸©‰¸G3¹8{¹	´¹J¾¹5	º8?º(xº,¡ºZÎº`)»PŠ»EÛ»F!¼Fh¼O¯¼Hÿ¼3H½<|½%¹½Aß½n!¾K�¾ÁÜ¾:ž¿:Ù¿7À*LÀ8wÀA°ÀIòÀC<ÁK€Á.ÌÁ<ûÁ98ÂBrÂTµÂT
+ÃT_Ã‰´Ã<>Äm{Ä[éÄPEÅ<–ÅDÓÅ^Æ|wÆDôÆ€9Ç1ºÇJìÇI7È>�ÈmÀÈ6.É!eÉ‡É&›É(ÂÉ<ëÉA(Ê&jÊ‘Ê7¥Ê!ÝÊ#ÿÊ&#Ë8JËCƒË ÇË èË)	Ì.3Ì0bÌ.“Ì.ÂÌ>ñÌ>0Í/oÍ/ŸÍFÏÍ>ÎDUÎ@šÎ@ÛÎFÏDcÏ@¨Ï@éÏ-*Ð(XÐ�Ð7ŸÐ1×Ð0	Ñ/:Ñ)jÑ/”Ñ;ÄÑhÒ<iÒA¦Ò<èÒ/%Ó-UÓ&ƒÓMªÓ3øÓ3,ÔO`ÔW°ÔOÕoXÕ+ÈÕAôÕ76Ö9nÖT¨Ö5ýÖ#3×.W×.†×%µ×7Û×2Ø7FØE~Ø>ÄØ2Ù:6ÙUqÙ2ÇÙ|úÙ(wÚ( Ú3ÉÚ[ýÚZYÛ+´Û+àÛÜ/&Ü(VÜ7Ü7·Ü<ïÜ?,ÝQlÝ3¾Ý5òÝ'(Þ=PÞ:ŽÞGÉÞ<ß"NßMqß6¿ßKößDBà!‡à:©à7äàá:á.Vá.…á´á1Ôáâ'#â%Kâ qâE’â4Øâ(
ãH6ã?ã<¿ãGüã@Dä7…ä-½ä*ëä<å7Så1‹å8½å:öå21æ+dæt�æ/ç 5ç-Vç^„ç]ãç0AèIrè@¼èAýè.?é+né7šéÒé+òéIê$hê+�ê¹ê×êAðêH2ë>{ë+ºëIæë90ì;jì¦ì;Æì;í>í+YíG…í.Íí.üí5+î@aî@¢îIãî=-ïIkïIµï4ÿï94ð,nð.›ð/Êð'úðk"ñuŽñ@ò5Eò{ò2˜ò.Ëò*úò)%ó?Oó!�ó#±ó.Õó8ô*=ô hôA‰ôEËôBõBTõ:—õ3Òõ$öI+ö;uö9±ö5ëö&!÷%H÷4n÷&£÷4Ê÷1ÿ÷$1ø$Vø/{ø«ø&Éø%ðø<ù#Sù*wù'¢ù>ÊùB	ú3Lú&€ú §ú"Èú!ëú!
û!/û%Qû!wû ™û!ºû#Üû!ü!"ü!Dü$fü$‹ü °ü"Ñü!ôü#ý$:ý_ý"ý"¢ý!Åý!çý	þ)þ!Eþ#gþ"‹þ#®þ!Òþ'ôþ3ÿlPÿ@½ÿ?þÿG>F†JÍHKaG­BõX84‘/Æö4 J!kN�4Ü0B(Y.‚(±*Ú62<5o8¥WÞZ6B‘5Ô=
+<H(…-®0Ü
P' x/™&É!ð@	iS	0½	1î	* 
+!K
+4m
+;¢
+&Þ
+$'*=RD�Õ2ò0%PVK§GóC;
`
rà
AS�•S<ka¨a
+flfÓF:-�2¯(â31?,q-žDÌB5T6Š*Á#ì2)C-m.›*Ê(õ]J|7Çÿ44'iD‘CÖCE^^¤])a(‹+´$à))/7Y9‘&Ë&ò&2@+s=Ÿ,Ý
++(T-j˜·,Ö#1'*Y'„&¬%Ó&ù' )H,r%Ÿ*Å$ð%%;2a'”*¼"ç#
+".&Q-x,¦[ÓC/ Gs C» Gÿ OG!W—!Gï!97"(q"*š"Å"5å"6#>R#2‘#5Ä#@ú#P;$3Œ$PÀ$2%AD%K†%@Ò%K&-_&`�&=î&J,'2w'<ª';ç'7#(3[(/�(?¿(7ÿ(*7)1b);”)2Ð)W*O[*&«*3Ò*[+Wb+-º+oè++X,]„,-â,+-<-2Z-)�-V·-<.(K.3t.#¨.%Ì.2ò.%/2E/=x/;¶/Bò/A50:w02²0?å0%1<D18�19º1ô12&22Y2›r2/3%>3*d3/�3%¿3"å3-4+64.b4$‘46¶46í4$5.C5+r5$ž5"Ã57æ5!6%@6Af6G¨66ð6='7:e7: 7DÛ78 89Y8C“8:×8798J9Pƒ9DÔ99:,S:0€:#±:-Õ:;-;6L;ƒ;7Ÿ;;×;:<:N<!‰<3«<.ß</=>=L^=1«=*Ý=%>$.>9S>O�>#Ý>,?1.?B`?5£?(Ù?5@"8@.[@8Š@GÃ@UA>aA  AÁA!ßA B'"BbJB3­B)áB=C%IC*oC0šC&ËC&òC7D7QD]‰D8çD EO?E,�E+¼EYèE)BF;lF0¨F/ÙF?	G9IG6ƒG/ºGCêG&.HWUHQ­HÿHI.ICIRYIF¬IFóI::JuJˆJœJ®JÈJ
ÜJ'êJK
K,K%=K\cK;ÀKüKL$L'LDLQL	jLtL†L—L,¤LÑLåLûL"M/8M/hM2˜M9ËM#N')N2QN3„N¸N;ÈNOOO(O8O?OGO[OpO…O—OªOÁOÞOðOP	-P7P	UP"_P+‚P#®P,ÒP:ÿP:QLQ)hQ/’Q?ÂQ=R	@R"JRmR„R+�R¹RÅRÉRÜRîRS'S:S WS#xSœS>¶S<õS2T DT0eTD–T,ÛTU(U:U$XU$}U'¢U%ÊU'ðUV6VVV"vV™V©V¾VÓVêV)W*W#@W-dWI’W:ÜW8X2PXFƒX1ÊXAüX,>Y-kY'™Y.ÁYYðY_JZ;ªZ)æZ![G2[1z[$¬[Ñ[Hæ[5/\%e\‹\5¨\Þ\
+ó\"þ\!]3];]0C]t]�]¨]½]Ê]Ù]
÷]^B^/Z^+Š^8¶^ï^$_!*_1L_~_�_+¼_è_
+ü_`9&```'r`š`¬`.Ê`-ù`G'a3oa£a"Âa)åa*bI:b „b¥b%Âbèbûbc.,c[c,yc)¦c"Ðcócd$d*Cd+ndšd ·dØd5êd e	2e<eNedeve–e°eÁeÐeâe	ée4óe(f1f
+HfSf"Xf%{f¡f­f¼fÓfïfgg7gPgpg„g–g®g-Ìgúghh3hMhDmh¥²hXi)mi/—i'Çiïiþij"j)j!0j.Rj,�j®j:Êj%k%+kQk?jk9ªkCäk=(lCfl=ªl"èl[m?gm§mÆm)ãm
nnv1n*¨nÓn&åno,o>oEo
+Lo(Wo€o'’oºo×oïop#'p$Kp,pp.�p,Ìp.ùp(q"Eq,hq.•q!Äq1æq0r2Ir,|r.©r#Ørürs(0s/Ys!‰s«s(Ès#ñs+tAt,Zt ‡t¨tÁtátõtu#4u-Xu"†u©u»uÓuæuÿuv v2v2Mv$€v&¥vÌv6ìv	#w!-wDOwD”w/Ùw?	xIx/[x?‹xËxJÜxM'y8uy®yÎyåy;øy4z7Qz-‰z·zJÀz‰{(•{7¾{ö{*|;|S|[|s|‰|š|°|Í|"Ù|#ü|% }F}c}'€}¨}Jº}J~JP~I›~:å~A ;b:žEÙ6€+V€;‚€F¾€@�;F�:‚�Q½�/‚B?‚;‚‚K¾‚F
+ƒaQƒ/³ƒ<ãƒ- „-N„/|„7¬„Bä„!'…iI…D³…dø….]†,Œ†f¹†C ‡d‡#ƒ‡@§‡@è‡4)ˆ8^ˆH—ˆ7àˆ‰˜8‰Ñ‰í‰ÿ‰Š<&Š2cŠ.–Š$ÅŠêŠòŠ	‹‹5‹M‹e‹d}‹â‹6õ‹M,ŒMzŒ=ÈŒg�bn�=Ñ�EŽ1UŽ(‡Ž$°ŽÕŽëŽ4�'<�$d�7‰�Á�Ò�ê���*�B�T�f�x�Š�¤�¿�Ñ�â�ú�‘28‘k‘„‘-ž‘+Ì‘+ø‘*$’	O’	Y’
+c’
+n’y’Ž’�’²’Á’1Æ’ø’-“E“'d“"Œ“¯“Í“â“ë“,	”]6”=””(Ò”Zû”ZV•E±•A÷•G9–B�–WÄ–W—9t—9®—-è—8˜4O˜3„˜9¸˜4ò˜2'™7Z™5’™7È™BšECšB‰šCÌšA›'R›.z›,©›+Ö›*œ.-œ2\œ �œ[°œ@�:M�#ˆ�6¬�<ã�& ž2Gž=zž;¸ž8ôž<-Ÿ%jŸ�Ÿ­ŸNÃŸ- O@  � >± 9ð 
+*¡15¡&g¡&Ž¡!µ¡×¡,ö¡J#¢7n¢
¦¢´¢Ã¢Ö¢ê¢ý¢£7-£6e£6œ£Ó£$ó£_¤"x¤A›¤Ý¤,û¤2(¥[¥k¥¾|¥»;¦÷¦§-§BM§D�§*Õ§L¨M¨`¨u¨Š¨Ÿ™¨9©0A©9r©¬©Æ©Î©Ö©ò©Hù©BªEª2aªO”ªäª«*« 3«T«r«z«‡« ¡«Â«Ë«ß«ô«
+¬¬4¬K¬h¬y¬‹¬Ÿ¬N§¬ö¬ú¬#­6­6N­…­ ¥­8Æ­ÿ­®!®)®2>®q®…®™®­®À®
Ó®Lá® .¯DO¯P”¯å¯÷¯
+°3%°!Y°{°‚°"Š°­°½°MÌ°±2±O±^±.q±% ±'Æ±+î±$²*?²j²0†²
+·²,Â²ï²
³'³/³
G³%U³{³'“³»³Õ³ï³"û³´=´T´f´}´7”´Ì´å´ú´µµ3µGµ]µsµ-’µ)Àµ>êµ7)¶ga¶xÉ¶7B·Ez·4À·%õ·-¸;I¸!…¸§¸!À¸0â¸5¹<I¹<†¹2Ã¹/ö¹.&º=Uº/“º6ÃºFúºA»`»€»,„»H±»ú½ ¾8(¾>a¾ˆ ¾‰)¿‚³¿96À"pÀ/“À\ÃÀ[ Á
|Á8ŠÁNÃÁÂu*Â: Â*ÛÂ%Ã+,ÃXÃ0jÃ2›Ã1ÎÃ/Ä#0Ä
TÄ$bÄ©‡Ä<1ÅpnÅkßÅgKÆI³Æ&ýÆ§$Ç_ÌÇS,ÈW€È]ØÈY6Ék�É}üÉ‚zÊSýÊ•QËyçËoaÌˆÑÌQZÍm¬Í{Î'–Î$¾Î…ãÎ}iÏ]çÏEÐcÐ-wÐ¥Ð+¿ÐHëÐ&4Ñ"[Ñ]~ÑÜÑòÑÒ7"Ò7ZÒ7’Ò%ÊÒ(ðÒÓ'"Ó,JÓXwÓWÐÓi(Ô#’Ô'¶Ô'ÞÔÕ$$Õ?IÕ!‰Õ&«ÕÒÕ#òÕ'ÖL>Ö‹Ö%›Ö!ÁÖ-ãÖ×$×!D×f×P†×××ó×(Ø')Ø QØGrØVºØGÙOYÙ(©Ù$ÒÙ!÷Ù%Ú?Ú]ÚyÚK”Ú%àÚ4Û&;ÛbÛ?}Û½ÛØÛ õÛ<ÜSÜbÜ
qÜÜ#–Ü4ºÜïÜÝ@+Ý1lÝ0žÝÏÝ#îÝÞC*ÞnÞ…Þ2œÞÏÞ;èÞ$ßG8ß€ß“ß#¦ßÊßãßÿß$à7=àuà3‰à#½à#áàá#á#Aáeá;yá8µáîáôáüá-â
+/â:â?â.Eâ*tâŸâ¤â*©â(Ôâ.ýâ,ãB1ãtãNyãÈãÏãÕãÚãßãåãéã7îã5&äI\ä¦ä(«ä;Ôä,åV=åk”å(æ)æ.æ3æ:æ@æEæ_æfæ€æ‡æ¦æÀæÖæìæçç6.çeç	ç
‰ç
—ç
+¥ç
+°ç
+»ç
+Æç5Ñç
+è_èrè{‰èné
+té5é1µéUçé>=ê9|êH¶ê1ÿê,1ë^ë"pë“ëŸë¼ëÐë-×ëQì7Wì�ì;¨ì1äìí?0ípí€í=‡íÅíQâí^4î,“îÀîQÚî6,ïAcï@¥ï#æï$
+ð/ð�Mð&Ûð7ñ,:ñIgñD±ñöñGòBYòKœòFèò=/ómó1„óI¶ó,ôP-ô¹~ô¸8õ­ñõ/ŸöfÏö6÷ˆP÷jÙ÷vDø?»øOûøJKù:–ùlÑù‰>únÈú&7ûR^ûv±ûK(ütüS„ýVØýV/þJ†þmÑþD?ÿ\„ÿháÿ¸J[8_Š˜o#	“Ë�IiW³LUX‡®�6‡Ä�L‡Ü‡d�ì‰}	l
+²t
+?'kgÅÓ“™o-
k�k	\uGÒe\€qÝ^Os®\"^ZÞx9‘²‘D‘Ööh^_â¾ª¡zLcÇr+´žõS†IâÐN³‰{ŒeÉnO8Sˆ(Ü[ @a x¢ }!U™!#ï!±"LÅ"G#UZ#²°#…c$4é$4%\S%E°%Uö%\L&^©&r'r{'�î'c~(Ìâ(s¯)y#*t�*v+|‰+y,t€,võ,kl-RØ-L+.ux.oî.^^/S½/T0Sf0Hº0�1~“1_2~r2bñ2KT3U 3‘ö3dˆ4dí4‘R5 ä5Ï…6U7L]8Žª8g99�¡9�1:gÏ:Q7;R‰;\Ü;]9<i—<U=bW=€º=u;>j±>k?Ëˆ?–T@
ë@UùASOBU£BœùBÃ–CoZDoÊD#:Ef^ESÅEjFi„F–îFn…G˜ôGt�HkI;nIaªISJ¯`J K2±K|äK{aL^ÝL|<M1¹M}ëMqiNRÛN..OX]OY¶O8PKIP2•P:ÈPDQBHQi‹QbõQ?XR˜RcSy|S—öSœŽT]+UT‰UKÞUm*V­˜V{FW¼ÂWoXyïXyiYãY\[>^[O�[Üí[ÛÊ\l¦]^]“^qñ^Rc_R¶_€	`3Š`Y¾`�aU©aIÿaEIb8�brÈb‚;c|¾c[;d’—d»*e{æeIbf�¬f�.g°gTÏgp$hT•hSêhy>i»¸i½tjŒ2kb¿k–"lŒ¹lmFm‡´mL<nZ‰nfänBKoûŽo	Šp²”qaGrE©rHïrJ8sDƒsTÈszt=˜tHÖtbuq‚uTôuGIv™‘vÝ+wÚ	xÚäx§¿y]gzHÅz¡{s°{q$|j–|H}VJ}€¡}:"~`]~\¾~D>`UŸ:õV0€T‡€qÜ€>N�T��:â�w‚z•‚\ƒDmƒD²ƒD÷ƒE<„C‚„CÆ„G
+…CR…B–…CÙ…E†Cc†C§†Cë†F/‡Fv‡B½‡DˆCEˆE‰ˆFÏˆA‰DX‰D�‰Câ‰C&ŠAjŠ/¬ŠCÜŠE ‹Df‹E«‹Cñ‹_5Œp•Œ��r¤�nŽ|†Ž{��jÿ�‘j�}ü�€z‘­û‘g©’g“;y“mµ“F#”Fj”‘±”]C•e¡•1–H9–V‚–YÙ–a3—k•—�˜¡ƒ˜g%™±�™?š^K›Ÿª›ˆJœnÓœ„B�kÇ�Z3ž=Žž‘ÌžF^Ÿs¥Ÿ_ Hy iÂ È,¡hõ¡�^¢Rü¢BO£`’£uó£Ki¤1µ¤Bç¤…*¥•°¥.F¦[u¦€Ñ¦ÀR§ƒ¨k—¨y©ã}©îaªP«1Ð«Ó­©Ö­Ù€®ãZ¯Þ>°ç±‚²`ˆ²pé²?Z³eš³\´V]´C´´cø´a\µY¾µ[¶pt¶Iå¶w/·]§·]¸[c¸T¿¸D¹ÓY¹�-ºy»º55»3k»`Ÿ»Y¼nZ¼mÉ¼m7½o¥½ˆ¾‡ž¾L&¿Fs¿Nº¿B	ÀSLÀQ ÀiòÀs\ÁOÐÁF ÂHgÂS°ÂQÃ†VÃVÝÃ24ÄbgÄ$ÊÄMïÄC=Å7�ÅP¹Å<
+ÆNGÆ]–Æ@ôÆ?5Ç>uÇ?´Ç@ôÇB5ÈExÈ>¾ÈCýÈ=AÉ>É>¾ÉSýÉIQÊG›ÊCãÊD'ËClËG°ËhøËgaÌ«ÉÌžuÍ´ÎxÉÎ|BÏ�¿ÏµMÐºÑr¾ÑJ1Ò<|Ò<¹ÒböÒfYÓsÀÓV4Ôb‹ÔsîÔ–bÕ†ùÕŠ€ÖN×[Z×f¶×[ØnyØ_èØóHÙo<Ús¬Ú€ Û�¡Ûo2Üp¢ÜlÝp€Ý�ñÝKsÞi¿Þ|)ßn¦ßmà¯ƒàš3áMÎáiâ¹†âµ@ã^öãáUäZ7å¯’åXBæf›æ9çh<çb¥ç«è�´èBEévˆé=ÿéW=êS•êCéêh-ë�–ëŒ4ì�Áì¥_í”î]šîwøî:pïd«ï`ðcqðÕð6õðM,ñ5zñ[°ñHó>UóS”óHèó>1ô<pôX­ôDõSKõ>ŸõaÞõo@ö*°örÛörN÷AÁ÷Gø›KøGçøP/ùz€ù€ûù\|úRÙúN,ûO{û]ËûL)üNvü\ÅüN"ýLqýL¾ý¨þ�´þ¨Eÿ�îÿDŒ6ÑObXW»a/u~¥v$››n7/¦UÖV,Sƒ@×¸‡ÑRYH¬NõoD’´?G	L‡	UÔ	–*
+‡Á
+ZI]¤9X<U•më›Y
tõ
MjD¸ZýRXJ«ÎötÅt:[¯N]ZO¸{W„hÜ|EîÂ_±#Â5VøXOÈ¨:qg¬w[ŒjèeS]¹e{}:ùË4ƒ>„Ã"Ü%ÿ‰%ˆ¯u8a®* ; 2[ +Ž +º æ 3þ 2!O!e!*€!««!€W"$Ø"3ý"1#64#k#;†#Â#Õ#ï#$K%$q$%Š$)°$SÚ$Q.%a€%kâ%sN&RÂ&V'fl'gÓ';(€T(Õ(è(,ù(&)?)R)c)y)�)§)Á)?Ü)E*"b*:…*;À*ü*1+E+KX+f¤+V,Xb,r»,.-R@-W“-]ë-‰I.�Ó.#d/?ˆ/<È/
+0`0 q0’0+–0Â0Ô0æ0Hø08A1Iz1FÄ142™@2�Ú21j3<œ3\Ù3q64S¨47ü4)459^50˜50É53ú51.63`6)”6+¾6+ê6.7%E7<k7<¨7@å7)&8DP8•8G±8Zù8lT9lÁ9p.:vŸ:j;b�;lä;vQ<gÈ<n0=\Ÿ=Çü=ÂÄ>ƒ‡?V@>b@†¡@Q(A0zA2«A~ÞAS]BI±B*ûBo&C1–CÈCOçC7DIDQDeYD5¿D1õD1'E%YEE*™E ÄEåE‘÷Eg‰FNñFV@G4—GgÌGg4H£œHO@IO�I€àIEaJ
§JQµJYKaKDsK¸K4ÊKuÿKTuL‰ÊLxTMAÍM?N`ON\°N™
OB§O>êOH)P/rP6¢PÙPMõP8CQj|QLçQL4R�R'“R+»R�çR†iS>ðS3/TcTYuTÏTáTU/U?BUM‚U/ÐU"V #VDVVV]V`lVÍV;çV#W
+?WIJWa”WöWX $X,EXrX’X5¬X)âX3Y@Y!\Y"~Y2¡Y]ÔY&2ZYZoZ*�ZIºZv[?{[1»\yí\g]Uç]#=^a^s^…^Œ^=“^JÑ^H_'e_G�_2Õ_2`>;`dz`dß`†DavËa|BbV¿bPcÑgcz9dA´d9öd`0e‘e'¬eæÔeA»fýf:gGJg’g¤g«g²gdÒg7hEIh+�h%»h/áh"i04i:ei] iKþi]JjK¨j9ôjD.k]skGÑkOlbilkÌlY8m]’mKðm><nH{n&ÄnmënnYo7Èo5p?6p:vpR±p%qM*q7xq%°qFÖq&rADr@†rHÇrTsLes²s%Äsês5t+>t)jt!”t3¶tgêt9Ru\Œu3éudv‚vT�viävjNw_¹wxx2’xaÅx'y§y¦Æy•mz|{9€{(º{5ã{o|9‰|�Ã|6Q}ˆ}˜‘}*~LIv–0
€Y>€B˜€Û€(î€-�*E�/p�4 �Õ�;ì�2(‚^[‚=º‚9ø‚H2ƒ{ƒž�ƒ�,„‡º„“B…hÖ…w?†b·†z‡�•‡x#ˆwœˆ“‰Ö¨‰³ŠŒ3‹›À‹\ŒŸ|�ËŽ”èŽ®}�Ð,�ý�V’bp’VÓ’W*“Y‚“^Ü“~;”Mº”â•Žë•ïz–`j—^Ë—²*˜oÝ˜qM™Q¿™gšgyš_ášYA›Û››”wœO�4\�'‘ž¹žÙž$ùžbŸo�ŸbñŸDT ™ ?¦ #æ A
+¡L¡%d¡4Š¡Ì¿¡%Œ¢Y²¢ž£ž«£pJ¤¹»¤´u¥\*¦{‡¦E§<I§/†§¶§EÔ§£¨˜¾¨HW©… ©+&ª>Rª1‘ª+Ãª>ïª8.«,g«,”«,Á«,î«@¬:\¬,—¬+Ä¬6ð¬K'­Gs­H»­,®01®jb®hÍ®h6¯lŸ¯°#°:°R°+j°–°®°Ã°Ò°8Û°E±UZ±.°±tß±KT². ²Ï²ê²;ó²€/³¸°³hi´_Ò´Ç2µÇúµUÂ¶c·R|·¢Ï·©r¸¤¹{Á¹y=ºj·º–"»\¹»t¼a‹¼\í¼qJ½n¼½t+¾n ¾ˆ¿–˜¿Œ/ÀŽ¼À‰KÁGÕÁ\ÂbzÂXÝÂw6ÃT®ÃQÄCUÄÎ™ÄghÅ‹ÐÅN\Æ�«Æ\9Ç<–ÇFÓÇjÈw…ÈjýÈphÉIÙÉ:#Ê4^Ê­“ÊnAË¦°Ë>WÌ[–ÌVòÌIÍI`ÍGªÍIòÍT<ÎO‘Î�áÎ”rÏqÐ%yÐ"ŸÐ-ÂÐðÐÑÑB*ÑgmÑfÕÑ…<ÒFÂÒN	ÓÌXÓN%Ô�tÔBÕeUÕ]»Õ'Ö"AÖ«dÖ¬Ø8½Ù7öÙJ.Ú–yÚ‹ÛwœÛ¨Ü½ÜÛÜ,øÜ#%ÝñIÝ;ÞoJÞˆºÞ9Cß}ß…ß9�ßÇß«ÞßŠà!�ào±àÏ!áCñá
+5âX@âD™â_Þâ>ãZãIxã]Âã ä%4ä&Zä'�ä%©ä'Ïä(÷ä' å#Hå lå�å§åŒ¯å<æ3Cæ>wæ7¶æqîæN`çO¯çpÿç+pè,œèÉèÑèWîèFé`étéˆé›é®é¦Ëé.rê¸¡ê‹Zë$æë"ì7.ìlfìRÓì&í
5í<Cí€í�íŽŸí4.îKcî*¯îÚîfóîHZïJ£ïjîï<Yðd–ð6ûðP2ñƒñY�ñH÷ñ@@ò�ò(’ò»òZÛò16óShó5¼ó,òóô;4ô6pô3§ô3Ûô<õ3Lõi€õCêõ.öMöiö†ö¤öÂöâö)÷H,÷[u÷xÑ÷yJø'Äø,ìù^ûvxûsïûPcü_´üaýLvý5ÃýLùýrFþz¹þ¬4ÿ¬áÿvŽXS^u²~(_§ºAÂBG7N¥¾–¹îŠÓ¢ílbÝåRøª#ðÕYš™+ÊÇÁI{¦bO5�;Ä•ä3	ßn^k|´DçX˜B``ºt÷Xæ#ÇOFZFy§e¸þqº?®_l¨†¤ˆFQD+›ßæ(¹ÿ	?¹ø¼žw@{MHïµýÄÛÍ,\�%dÍBJŒŒû­^ƒ<¨å¦�…}2�jß.dž“˜MýUÄ²«�Ž¡õ¦BÚjp‚�P÷Á
çèiäQÀÛSÉ[}ši¶hÛÔ½•7iÿß$-Î¤YŽÈ¤�ë°·òûv¯b2—XGmÀ°ãÞ´WçYPwˆòs¾|¥àö~‡—S�HÊ³ÚOJ�düÈã“{U7qá%w~�œêÞªÜãa×œ‰Às±©‡\€Mq Ð§p„ö¢Þ±²"÷¯=¾Ì)©×:j™¸�\Œ›Rã.�RT:­œP`!,‰\žÌsÀÝtgL£"�.KÏ!wˆ½àÆOþŠ€~Ó„%=žš|èúP–Ø|eG.°¼žï„UûTL�Ãª]î’V¢›_©Ô4[�Ê¨ ¬ïêLOØå$‚�Òâ1gRíºéó(N>©çíŠt‹c'�/¶Ç$«š�Ó¯6™UhàwHêA	@§q€Â:…(F)Ùå½‡Ó^0ŸÒNÆÑsLyY„¥¼aq>P4’½oæŸ~ÛÂ>šOŸ/IêÆí[ è
+A`Dól€‚ìW�ÜÅ³I±	áüÑ¤vf0ñ§0°CÄ?Æ¼ua�ûÜµ¥«m2�/®^«(ZtÕìulàzÁ…nNÂÑþ½¥ŸÙˆ'±–fMQ	¾›}Z‚¡·“�Ûó¡Áý“‚ä­(›ë
±SfÆ%»Öý¤¶ÈHÙ}¯ÿá?TÍ´ @Ò‹#7/-ÂCjUåP—d'ê‘ýK ­nç<43y ßöØS¶o.ð1StZªÔÃVz
6‘�õøyuÈ*3Ecó8ZzxS'â®U^Õ_¤ôÍ‰¸ *™1Já&ŸŸÉ
+ñ.<­o=ô9’·`0H�T…’Ae·æáõÅ�¸$•;n,œÙªÙ"¿6Œ7²²‘”¡®*p¦¶1=”¸îùÅ¾.9ÞbËˆ�”‰Ë’åGÇ}?x*¿%ù¬–_‘Ü×¿kø¿_³Ö+lÅäV»6²b~'”Aâ‹’@~^dû´g<Ò¶†õì´y†¨€=J:ºC2ŽrgŠ°+â-|)ÔžÓ5HÊ•r�écJk“4ÔµSÙ›¿1˜]No&XfBÍ2"7ŽvNùø¥W8õc\UŠ‘!Œk†×ª”d‰I
+¬gÉ#>÷)(ƒî{&=µNµ±ïBRgL*«Xxr—¾+ÖoQ°e„xXfìº@È;RIG÷KŒèQräÁÈònÿ]·Ò¢RØØŽË^aq•ÆÎËo;]J·Ênâº—Á’ÇÁ`¼Fš“/;k+©öOÌÏ0ò<,”hÏñ[ÉÏ],»¡u9t×Ü%ÐM™¬YvèæNz¦A,9ÓDÿsE‡õMI«4©ú5Ý3�ì€x¸ ™a;‹s
—¿8i{�0Âöc;®Eü6úÝô‚ð“ë‰P€"*CÎ
+u™Ð‹#Kó:&…³'Y$Àù-DÚÖbz:»,¸:CñFœh¹
>ô³ñ§¯>2´H5£s8ã¯Eiv£Œör_p«8ç‰9WÐ9´g4~LEÚ˜r)ÑÅ?
+p(#Çvü!Ze²x=Ž7×Ð|{°‡†ñøÂMÌË½h|<mL9î•þ§Åz¯ôQ¡»þZôŠÍ·&¹ÉðÒ'‡
ãE+&ìTóý�E	§¶ <3ÃBAëÚê��Ëu$­$ÃÆf„]Ðƒ”3–m£5_¢5Ñûuújb5V³ÀƒDÝÃú]fmµëÖ#Þw³vc
+"•\ârVÜ8�ÊI›Qé&Ä
+òjxqmnÅ©CÈÏVà)¬®œ"�)ßÌÖ»ÎaiºëÂ¨¨£Êé>¤£}e4þÎ¥hk�äéW/c%D !06[ï½-ü¹—‘X†3ú‹ÉK*Vï2¾è±-˜@ÏÑ!Ga÷w\œžŸµ j[Äòh»m‚ª¼ÄÎ…K…®‘{¬Éš¨¦1Ã¬Kp?²6ŠÚé- G˜T dlÌ1Ô t‹!FÿŽàíe£y8G­ðËÃy¡BW¹„ùØƒzTÀAùÕ‡æiƒ˜–Õî}[ˆÕüWJÝC
ˆk@¿Yðl`Ûp†¦ƒ/áo¢	7¼–Ç¢íÞ	    TLS: %A	<corrupt: 0x%04lx>	Export Address Table 			Export Address Table 		%08lx
+	Invalid Export Address Table rva (0x%lx) or entry count (0x%lx)
+	Invalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)
+	Invalid Ordinal Table rva (0x%lx) or entry count (0x%lx)
+	Name Pointer Table 			Ordinal Table 				[%4ld] <corrupt offset: %lx>
+	[Name Pointer/Ordinal] Table	%08lx
 	code-base %08lx toc (loadable/actual) %08lx/%08lx
-	reloc %4d offset %4x [%4lx] %s	vma:  Hint/Ord Member-Name Bound-To
+	non-TLS: %A	reloc %4d offset %4x [%4lx] %s	vma:  Hint/Ord Member-Name Bound-To
 
-	DLL Name: %s
+	DLL Name: %.*s
 
 
 PE File Base Relocations (interpreted .reloc section contents)
@@ -67,8 +84,12 @@ PE File Base Relocations (interpreted .r
 
 Characteristics 0x%x
 
+Dump of %s
+
 Dynamic Section:
 
+Error: section %s contains the debug data starting address but it is too small
+
 Exec Auxiliary Header
 
 Export Address Table -- Ordinal Base %ld
@@ -86,20 +107,35 @@ Stack size for functions.  Annotations: 
 The Export Tables (interpreted %s section contents)
 
 
+The Function Table (interpreted %s section contents)
+
 The Function Table (interpreted .pdata section contents)
 
 The Import Tables (interpreted %s section contents)
 
+There is a debug directory in %s at 0x%lx
+
+
+There is a debug directory in %s, but that section has no contents
+
+There is a debug directory, but the section containing it could not be found
+
 There is a first thunk, but the section containing it could not be found
 
 There is an export table in %s at 0x%lx
 
 There is an export table in %s, but it does not fit into that section
 
+There is an export table in %s, but it is too small (%d)
+
+There is an export table in %s, but that section has no contents
+
 There is an export table, but the section containing it could not be found
 
 There is an import table in %s at 0x%lx
 
+There is an import table in %s, but that section has no contents
+
 There is an import table, but the section containing it could not be found
 
 Version References:
@@ -108,14 +144,18 @@ Version definitions:
 
 Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld
 
+WARNING: Extra data in .rsrc section - it will be ignored by Windows:
+
 [Ordinal/Name Pointer] Table
 
 ppcboot header:
         pc: 0x%08x
     *unhandled* cmd %u
+    address: 0x%08x
     address: 0x%08x, size: %u
     flags: %u, address: 0x%08x, pd-address: 0x%08x
     global name: %.*s
+    len: %u bits
     linkage index: %u, replacement insn: 0x%08x
     name: %.*s
     pc: 0x%08x
@@ -125,8 +165,10 @@ ppcboot header:
     psect idx 3: %u, offset 3: 0x%08x %08x
     psect: %u, offset: 0x%08x %08x
     routine name: %.*s
-   %02u    %s%s %s
-   (type: %3u, size: 4+%3u):    *unhandled* cmd %u
+   %02u    (type: %3u, size: 4+%3u):    *unhandled* cmd %u
+   Error: The length is less than the length of an EEOM record
+   Error: The length is less than the length of an EMH record
+   Error: length larger than remaining space in record
    alignment  : 2**%u
    alloc (len)   : %u (0x%08x)
    alloc (len): %u (0x%08x)
@@ -185,7 +227,6 @@ ppcboot header:
    vector      : 0x%08x
    version mask: 0x%08x
   %s (len=%u+%u):
-  %s: 0x%v
   %u: size: %u, flags: 0x%02x, name: %.*s
   EEOM (len=%u):
   EGSD (len=%u):
@@ -207,23 +248,22 @@ ppcboot header:
   shlextra  : %5u, permctx   : %5u
   shlstoff  : %5u, shrimgcnt : %5u
   size : %u
- #: Segment name     Section name     Address
- %08x 0x%08x 64B <EABI version unrecognised> BPAGE: %u COM COMM Change Protection (%u entries):
+  the input  file's flags: %s  the output file's flags: %s %08x 0x%08x 64B <EABI version unrecognised> BPAGE: %u COM COMM Change Protection (%u entries):
  Code Address Reference Fixups:
- DEF EXE First address : 0x%08x 0x%08x
+ DEF EXE FPU support required:  First address : 0x%08x 0x%08x
  Fourth address: 0x%08x 0x%08x
- GBL Glue code sequence LIB Linkage Pairs Referece Fixups:
- NOMOD NORM OVR PIC QVAL RD REL Register restore millicode Register save millicode SHR Second address: 0x%08x 0x%08x
+ GBL Glue code sequence LIB Linkage Pairs Reference Fixups:
+ NOMOD NORM OVR PIC QVAL RD REL Register restore millicode Register save millicode Resources start at offset: %#03x
+ SHR Second address: 0x%08x 0x%08x
  Shareable images:
  Shared image  : 0x%08x 0x%08x
+ String table starts at offset: %#03x
+ Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d
  Third address : 0x%08x 0x%08x
- UNI VEC VECEP WEAK WRT [64-bit doubles] [BE8] [FPA float format] [LE8] [Maverick float format] [VFP float format] [Version1 EABI] [Version2 EABI] [Version3 EABI] [Version4 EABI] [Version5 EABI] [abi unknown] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=O32] [abi=O64] [absolute position] [d-float] [dsp] [dynamic symbols use segment index] [fix dep] [floats passed in float registers] [floats passed in integer registers] [g-float] [has entry point] [interworking enabled] [interworking flag not initialised] [interworking not supported] [interworking supported] [mapping symbols precede others] [memory=bank-model] [memory=flat] [new ABI] [no abi set] [nonpic] [not 32bitmode] [old ABI] [pic] [position independent] [relocatable executable] [software FP] [sorted symbol table] [symbols have a _ prefix] [unknown ISA] [unsorted symbol table] [v10 and v32] [v32] corrupted GST
- cpusubtype: %08lx
- cputype   : %08lx (%s)
+ UNI VEC VECEP WEAK WRT [64-bit doubles] [BE8] [FPA float format] [LE8] [Maverick float format] [VFP float format] [Version1 EABI] [Version2 EABI] [Version3 EABI] [Version4 EABI] [Version5 EABI] [XGATE RAM offsetting] [abi unknown] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=O32] [abi=O64] [abiv%ld] [absolute position] [d-float] [dynamic symbols use segment index] [fix dep] [floats passed in float registers] [floats passed in integer registers] [g-float] [hard-float ABI] [interworking enabled] [interworking flag not initialised] [interworking not supported] [interworking supported] [mapping symbols precede others] [memory=bank-model] [memory=flat] [new ABI] [no abi set] [nonpic] [not 32bitmode] [old ABI] [pic] [position independent] [relocatable executable] [soft-float ABI] [software FP] [sorted symbol table] [symbols have a _ prefix] [unknown ISA] [unsorted symbol table] [v10 and v32] [v32] alignment of 8-byte entities:  corrupted GST
  debug module table : vbn: %u, size: %u
  debug symbol table : vbn: %u, size: %u (0x%x)
- filetype  : %08lx (%s)
- fixup info rva:  flags     : %08lx ( flags: 0x%04x global symbol table: vbn: %u, records: %u
+ fixup info rva:  flags: 0x%04x global symbol table: vbn: %u, records: %u
  ident: 0x%08x, name: %.*s
  ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u
  image build ident: %.*s
@@ -234,17 +274,13 @@ ppcboot header:
  linker flags: %08x: linker ident     : %.*s
  long-word .address reference fixups:
  long-word relocation fixups:
- magic     : %08lx
  majorid: %u, minorid: %u
  module offset: 0x%08x, size: 0x%08x, (%u psects)
- ncmds     : %08lx (%lu)
  offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u
  quad-word .address reference fixups:
  quad-word relocation fixups:
- reserved  : %08x
  section: base: 0x%08x%08x size: 0x%08x
- sizeofcmds: %08lx
- type: %3u, len: %3u (at 0x%08x):  unhandled EOBJ record type %u
+ size of doubles:  type: %3u, len: %3u (at 0x%08x):  unhandled EOBJ record type %u
  vbn: %u, pfc: %u, matchctl: %u type: %u ( vma:			Begin Address    End Address      Unwind Info
  vma:		Begin    End      EH       EH       PrologEnd  Exception
      		Address  Address  Handler  Data     Address    Mask
@@ -252,42 +288,102 @@ ppcboot header:
      		Address  Length   Length   32b exc  Handler   Data
  vma:            Hint    Time      Forward  DLL       First
                  Table   Stamp     Chain    Name      Thunk
-#<Invalid error code>%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections%A has both ordered and unordered sections%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)
+#<Invalid error code>%03x %*.s  Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d
+%03x %*.s Entry: %A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections%A has both ordered and unordered sections%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)
 %A:0x%v not found in function table
-%B (%s): Section flag %s (0x%x) ignored%B and %B are for different configurations%B and %B are for different cores%B contains CRIS v32 code, incompatible with previous objects%B contains non-CRIS-v32 code, incompatible with previous objects%B has has both the current and legacy Tag_MPextension_use attributes%B is not allowed to define %s%B section %A exceeds stub group size%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section%B(%A): error: call to undefined function '%s'%B(%A): internal error: dangerous relocation%B(%A): internal error: out of range error%B(%A): internal error: unknown error%B(%A): internal error: unsupported relocation error%B(%A): invalid property table%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)%B(%A): warning: unaligned access to symbol '%s' in the small data area%B(%A+0x%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link%B(%A+0x%lx): %s relocation against SEC_MERGE section%B(%A+0x%lx): %s relocation against external symbol "%s"%B(%A+0x%lx): %s used with TLS symbol %s%B(%A+0x%lx): %s used with non-TLS symbol %s%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object%B(%A+0x%lx): Stabs entry has invalid string index.%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section%B(%A+0x%lx): cannot handle %s for %s%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch%B(%A+0x%lx): could not decode instruction; possible configuration mismatch%B(%A+0x%lx): invalid instruction for TLS relocation %s%B(%A+0x%lx): reloc against `%s': error %d%B(%A+0x%lx): relocation offset out of range (size=0x%x)%B(%A+0x%lx): unexpected fix for %s relocation%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'%B(%A+0x%lx): unresolvable relocation against symbol `%s'%B(%A+0x%lx):unexpected ARM instruction '0x%x' in TLS trampoline%B(%A+0x%lx):unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC%B(%A+0x%lx):unexpected Thumb instruction '0x%x' in TLS trampoline%B(%A+0x%lx):unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete
+%B (%s): Section flag %s (0x%x) ignored%B and %B are for different configurations%B and %B are for different cores%B contains CRIS v32 code, incompatible with previous objects%B contains non-CRIS-v32 code, incompatible with previous objects%B has has both the current and legacy Tag_MPextension_use attributes%B is not allowed to define %s%B section %A exceeds stub group size%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section%B uses unknown e_flags 0x%lx%B(%#x): error: Cannot create STM32L4XX veneer. Jump out of range by %ld bytes. Cannot encode branch instruction. %B(%A): error: call to undefined function '%s'%B(%A): internal error: dangerous relocation%B(%A): internal error: out of range error%B(%A): internal error: unknown error%B(%A): internal error: unsupported relocation error%B(%A): invalid property table%B(%A): multiple TLS models are not supported%B(%A): relocation %d has invalid symbol index %ld%B(%A): shared library symbol %s encountered whilst performing a static link%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)%B(%A): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction.%B(%A): warning: unaligned access to symbol '%s' in the small data area%B(%A): warning: unaligned small data access of type %d.%B(%A+0x%%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link%B(%A+0x%lx): %s relocation against SEC_MERGE section%B(%A+0x%lx): %s relocation against external symbol "%s"%B(%A+0x%lx): %s used with TLS symbol %s%B(%A+0x%lx): %s used with non-TLS symbol %s%B(%A+0x%lx): CMEM relocation to `%s' is invalid, 16 MSB should be 0x%04x (value is 0x%lx)%B(%A+0x%lx): CMEM relocation to `%s+0x%lx' is invalid, 16 MSB should be 0x%04x (value is 0x%lx)%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object%B(%A+0x%lx): R_METAG_TLS_LE/IENONPIC relocation not permitted in shared object%B(%A+0x%lx): R_NIOS2_TLS_LE16 relocation not permitted in shared object%B(%A+0x%lx): Stabs entry has invalid string index.%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section%B(%A+0x%lx): cannot handle %s for %s%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch%B(%A+0x%lx): could not decode instruction; possible configuration mismatch%B(%A+0x%lx): error: multiple load detected in non-last IT block instruction : STM32L4XX veneer cannot be generated.
+Use gcc option -mrestrict-it to generate only one instruction per IT block.
+%B(%A+0x%lx): expected 16A style relocation on 0x%08x insn%B(%A+0x%lx): expected 16D style relocation on 0x%08x insn%B(%A+0x%lx): invalid instruction for TLS relocation %s%B(%A+0x%lx): reloc against `%s': error %d%B(%A+0x%lx): relocation offset out of range (size=0x%x)%B(%A+0x%lx): unexpected ARM instruction '0x%x' in TLS trampoline%B(%A+0x%lx): unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC%B(%A+0x%lx): unexpected Thumb instruction '0x%x' in TLS trampoline%B(%A+0x%lx): unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC%B(%A+0x%lx): unexpected fix for %s relocation%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'%B(%A+0x%lx): unresolvable relocation against symbol `%s'%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete
 %B(%s): warning: interworking not enabled.
   first occurrence: %B: ARM call to Thumb%B(%s): warning: interworking not enabled.
   first occurrence: %B: Thumb call to ARM%B(%s): warning: interworking not enabled.
   first occurrence: %B: arm call to thumb%B(%s): warning: interworking not enabled.
-  first occurrence: %B: thumb call to arm%B(%s): warning: interworking not enabled.
   first occurrence: %B: thumb call to arm
   consider relinking with --support-old-code enabled%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'%B, section %A:
   relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC%B, section %A:
   relocation %s should not be used in a shared object; recompile with -fPIC%B, section %A:
-  v10/v32 compatible object %s must not contain a PIC relocation%B, section %A: No PLT for relocation %s against symbol `%s'%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?%B, section %A: relocation %s is not allowed for global symbol: `%s'%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?%B, section %A: relocation %s with no GOT created%B, section %A: relocation %s with non-zero addend %d against local symbol%B, section %A: relocation %s with non-zero addend %d against symbol `%s'%B, section %A: unresolvable relocation %s against symbol `%s'%B, section `%A', to symbol `%s':
-  relocation %s should not be used in a shared object; recompile with -fPIC%B: !samegp reloc against symbol without .prologue: %s%B: %A+0x%lx: Direct jumps between ISA modes are not allowed; consider recompiling with interlinking enabled.%B: %s: invalid needed version %d%B: %s: invalid version %u (max %d)%B: '%s' accessed both as normal and thread local symbol%B: .got subsegment exceeds 64K (size %d)%B: .opd is not a regular array of opd entries%B: .preinit_array section is not allowed in DSO%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32%B: 0x%lx: fatal: reloc overflow while relaxing%B: 0x%lx: fatal: unaligned %s relocation 0x%lx%B: 0x%lx: fatal: unaligned branch target for relax-support relocation%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x%B: 0x%lx: warning: bad R_SH_USES load offset%B: 0x%lx: warning: bad R_SH_USES offset%B: 0x%lx: warning: bad count%B: 0x%lx: warning: could not find expected COUNT reloc%B: 0x%lx: warning: could not find expected reloc%B: 0x%lx: warning: symbol in unexpected section%B: @gprel relocation against dynamic symbol %s%B: @internal branch to dynamic symbol %s%B: @pcrel relocation against dynamic symbol %s%B: ABI is incompatible with that of the selected emulation%B: ABI mismatch: linking %s module with previous %s modules%B: ASE mismatch: linking %s module with previous %s modules%B: Architecture mismatch with previous modules%B: BE8 images only valid in big-endian mode.%B: Bad relocation record imported: %d%B: CALL15 reloc at 0x%lx not against global symbol%B: CALL16 reloc at 0x%lx not against global symbol%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000).%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch.%B: Cannot handle compressed Alpha binaries.
-   Use compiler flags, or objZ, to generate uncompressed binaries.%B: Cannot link together %s and %s objects.%B: Corrupt size field in group section header: 0x%lx%B: Failed to add renamed symbol %s%B: Function descriptor relocation with non-zero addend%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d%B: GOT overflow: Number of relocations with 8-bit offset > %d%B: GOT reloc at 0x%lx not expected in executables%B: IMPORT AS directive for %s conceals previous IMPORT AS%B: Instruction set mismatch with previous modules%B: Invalid relocation type imported: %d%B: Malformed reloc detected for section %s%B: Not enough room for program headers, try linking with -N%B: Only registers %%g[2367] can be declared using STT_REGISTER%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive%B: Relocation %s (%d) is not currently supported.
-%B: Relocations in generic ELF (EM: %d)%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined%B: TLS local exec code cannot be linked into shared objects%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed%B: The first section in the PT_DYNAMIC segment is not the .dynamic section%B: The target (%s) of an %s relocation is in the wrong section (%A)%B: Too many sections: %d (>= %d)%B: Unable to sort relocs - they are in more than one size%B: Unable to sort relocs - they are of an unknown size%B: Unhandled import type; %x%B: Unknown mandatory EABI object attribute %d%B: Unknown relocation type %d
+  v10/v32 compatible object %s must not contain a PIC relocation%B, section %A: No PLT for relocation %s against symbol `%s'%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?%B, section %A: relocation %s is not allowed for `%s', a global symbol with default visibility, perhaps a declaration mixup?%B, section %A: relocation %s is not allowed for global symbol: `%s'%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?%B, section %A: relocation %s with no GOT created%B, section %A: relocation %s with non-zero addend %d against local symbol%B, section %A: relocation %s with non-zero addend %d against symbol `%s'%B, section %A: unresolvable relocation %s against symbol `%s'%B, section `%A', to symbol `%s':
+  relocation %s should not be used in a shared object; recompile with -fPIC%B: !samegp reloc against symbol without .prologue: %s%B: %A invalid input section size%B: %A not in order%B: %A points past end of text section%B: %A+%#Lx: No symbol found for INHERIT%B: %A+0x%lx: warning: %s relocation against unexpected insn%B: %A+0x%lx: warning: LITERAL relocation against unexpected insn%B: %A: reloc overflow: 0x%lx > 0xffff%B: %s not absolute%B: %s' accessed both as normal and thread local symbol%B: %s: invalid needed version %d%B: %s: invalid version %u (max %d)%B: %s: reloc overflow: 0x%lx > 0xffff%B: '%s' accessed both as normal and thread local symbol%B: --in-implib only supported for Secure Gateway import libraries.%B: .gnu.version_d invalid entry%B: .gnu.version_r invalid entry%B: .got subsegment exceeds 64K (size %d)%B: .opd is not a regular array of opd entries%B: .preinit_array section is not allowed in DSO%B: .rsrc merge failure: corrupt .rsrc section%B: .rsrc merge failure: unexpected .rsrc size%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32%B: 0x%lx: fatal: reloc overflow while relaxing%B: 0x%lx: fatal: unaligned %s relocation 0x%lx%B: 0x%lx: fatal: unaligned branch target for relax-support relocation%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insn 0x%x%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insns%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc 0x%lx%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insn 0x%x%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insns%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized reloc%B: 0x%lx: warning: bad R_SH_USES load offset%B: 0x%lx: warning: bad R_SH_USES offset%B: 0x%lx: warning: bad count%B: 0x%lx: warning: could not find expected COUNT reloc%B: 0x%lx: warning: could not find expected reloc%B: 0x%lx: warning: symbol in unexpected section%B: @gprel relocation against dynamic symbol %s%B: @internal branch to dynamic symbol %s%B: @pcrel relocation against dynamic symbol %s%B: ABI is incompatible with that of the selected emulation%B: ABI is incompatible with that of the selected emulation:
+  target emulation `%s' does not match `%s'%B: ABI mismatch: linking %s module with previous %s modules%B: ABI version %ld is not compatible with ABI version %ld output%B: ASE mismatch: linking %s module with previous %s modules%B: Architecture mismatch with previous modules%B: BE8 images only valid in big-endian mode.%B: Bad relocation record imported: %d%B: Bad symbol definition: `Main' set to %s rather than the start address %s
+%B: CALL15 reloc at 0x%lx not against global symbol%B: CALL16 reloc at 0x%lx not against global symbol%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000).%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch.%B: Cannot handle compressed Alpha binaries.
+   Use compiler flags, or objZ, to generate uncompressed binaries.%B: Cannot link together %s and %s objects.%B: Data Directory size (%lx) exceeds space left in section (%lx)%B: EF_OR1K_NODELAY flag mismatch with previous modules%B: Error: Debug Data ends beyond end of debug directory.%B: Error: multiple definition of `%s'; start of %s is set in a earlier linked file
+%B: Error: search_nds32_elf_blank reports wrong node
+%B: Failed to add renamed symbol %s%B: Failed to find info section for section %d%B: Failed to find link section for section %d%B: Failed to read debug data section%B: Function descriptor relocation with non-zero addend%B: GAS error: unexpected PTB insn with R_SH_PT_16%B: GNU_MBIN section `%A' has invalid sh_info field: %d%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d%B: GOT overflow: Number of relocations with 8-bit offset > %d%B: GOT reloc at 0x%lx not expected in executables%B: IMPORT AS directive for %s conceals previous IMPORT AS%B: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte%B: Instruction set mismatch with previous modules%B: Internal inconsistency error for value for
+ linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx
+%B: Invalid relocation type exported: %d%B: Invalid relocation type imported: %d%B: Invalid sh_link field (%d) in section number %d%B: LOCAL directive: Register $%ld is not a local register.  First global register is $%ld.%B: Local symbol descriptor table be NULL when applying relocation %s against local symbol%B: Malformed reloc detected for section %A%B: Malformed reloc detected for section %s%B: Nested OMIT_FP in %A.%B: No core to allocate a symbol %d bytes long
+%B: No core to allocate section name %s
+%B: No symbol version section for versioned symbol `%s'%B: Not enough memory to allocate space for %lu symbols%B: Not enough room for program headers, try linking with -N%B: Only registers %%g[2367] can be declared using STT_REGISTER%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive%B: Relocation %s (%d) is not currently supported.
+%B: Relocation %s is not yet supported for symbol %s.%B: Relocations in generic ELF (EM: %d)%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined%B: SHT_GROUP section [index %d] has no SHF_GROUP sections%B: Special symbol `%s' only allowed for ARMv8-M architecture or later.%B: TLS local exec code cannot be linked into shared objects%B: TLS sections are not adjacent:%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed%B: TOC reloc at 0x%x to symbol `%s' with no TOC entry%B: The first section in the PT_DYNAMIC segment is not the .dynamic section%B: The target (%s) of an %s relocation is in the wrong section (%A)%B: Too many sections: %d (>= %d)%B: Unable to sort relocs - they are in more than one size%B: Unable to sort relocs - they are of an unknown size%B: Unhandled import type; %x%B: Unknown architecture %s%B: Unknown mandatory ARC object attribute %d.%B: Unknown mandatory EABI object attribute %d%B: Unknown relocation type %d
 %B: Unknown section type in a.out.adobe file: %x
-%B: Unrecognised .directive command: %s%B: Unrecognised import name type; %x%B: Unrecognised import type; %x%B: Unrecognised machine type (0x%x) in Import Library Format archive%B: Unrecognized storage class %d for %s symbol `%s'%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s%B: Warning: Thumb BLX instruction targets thumb function '%s'.%B: Warning: bad `%s' option size %u smaller than its header%B: Warning: cannot determine the target function for stub section `%s'%B: XMC_TC0 symbol `%s' is class %d scnlen %d%B: `%s' accessed both as FDPIC and thread local symbol%B: `%s' accessed both as normal and FDPIC symbol%B: `%s' accessed both as normal and thread local symbol%B: `%s' has line numbers but no enclosing section%B: `%s' in loader reloc but not loader sym%B: `ld -r' not supported with PE MIPS objects
-%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d%B: bad pair/reflo after refhi
-%B: bad reloc address 0x%lx in section `%A'%B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A'%B: bad relocation section name `%s'%B: bad section length in ihex_read_section%B: bad string table size %lu%B: bad symbol index: %d%B: cannot create stub entry %s%B: change in gp: BRSGP %s%B: class %d symbol `%s' has no aux entries%B: compiled for a 64 bit system and target is 32 bit%B: compiled for a big endian system and target is little endian%B: compiled for a little endian system and target is big endian%B: compiled normally and linked with modules compiled with -mrelocatable%B: compiled with -mrelocatable and linked with modules compiled normally%B: could not find output section %A for input section %A%B: could not find output section %s%B: could not read contents of section `%A'
-%B: csect `%s' not in enclosing section%B: don't know how to handle OS specific section `%s' [0x%8x]%B: don't know how to handle allocated, application specific section `%s' [0x%8x]%B: don't know how to handle processor specific section `%s' [0x%8x]%B: don't know how to handle section `%s' [0x%8x]%B: dtp-relative relocation against dynamic symbol %s%B: duplicate export stub %s%B: duplicate section `%A' has different contents
+%B: Unmatched OMIT_FP in %A.%B: Unrecognised .directive command: %s%B: Unrecognised import name type; %x%B: Unrecognised import type; %x%B: Unrecognised machine type (0x%x) in Import Library Format archive%B: Unrecognized storage class %d for %s symbol `%s'%B: Unsupported transition from %s to %s%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s%B: Warning: Thumb BLX instruction targets thumb function '%s'.%B: Warning: bad `%s' option size %u smaller than its header%B: Warning: cannot determine the target function for stub section `%s'%B: Warning: thumb-1 mode PLT generation not currently supported%B: XCOFF shared object when not producing XCOFF output%B: XMC_TC0 symbol `%s' is class %d scnlen %d%B: __gp does not cover short data segment%B: `%A' offset of %ld from `%A' beyond the range of ADDIUPC%B: `%s' accessed both as FDPIC and thread local symbol%B: `%s' accessed both as normal and FDPIC symbol%B: `%s' accessed both as normal and thread local symbol%B: `%s' and its special symbol are in different sections.%B: `%s' has line numbers but no enclosing section%B: `%s' in loader reloc but not loader sym%B: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)%B: `ld -r' not supported with PE MIPS objects
+%B: absent standard symbol `%s'.%B: access beyond end of merged section (%ld)%B: addend -0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range%B: addend 0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range%B: address 0x%s out of range for Intel Hex file%B: aout header specifies an invalid number of data-directory entries: %d%B: attempt to emit contents at non-multiple-of-4 address 0x%lx
+%B: attempt to load strings from a non-string section (number %d)%B: attempt to mix FDPIC and non-FDPIC objects%B: attempt to write out unknown reloc type%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d%B: bad pair/reflo after refhi
+%B: bad reloc address 0x%lx in section `%A'%B: bad reloc symbol index (%#lx >= %#lx) for offset %#Lx in section `%A'%B: bad relocation section name `%s'%B: bad section length in ihex_read_section%B: bad string table size %lu%B: bad symbol index: %d%B: base-plus-offset relocation against register symbol: %s in %A%B: base-plus-offset relocation against register symbol: (unknown) in %A%B: can not represent section `%A' in a.out object file format%B: can not represent section `%A' in oasys%B: can not represent section for symbol `%s' in a.out object file format%B: can't link hard-float modules with soft-float modules%B: cannot allocate file name for file number %d, %d bytes
+%B: cannot create stub entry %s%B: cannot link fdpic object file into non-fdpic executable%B: cannot link non-fdpic object file into fdpic executable%B: change in gp: BRSGP %s%B: class %d symbol `%s' has no aux entries%B: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s%B: compiled as 32-bit object and %B is 64-bit%B: compiled as 64-bit object and %B is 32-bit%B: compiled for a 64 bit system and target is 32 bit%B: compiled for a big endian system and target is little endian%B: compiled for a little endian system and target is big endian%B: compiled normally and linked with modules compiled with -mrelocatable%B: compiled with %s and linked with modules compiled with %s%B: compiled with %s and linked with modules that use non-pic relocations%B: compiled with -mrelocatable and linked with modules compiled normally%B: corrupt size field in group section header: %#Lx%B: could not find output section %A for input section %A%B: could not read contents of section `%A'
+%B: could not write out added .cranges entries%B: could not write out sorted .cranges entries%B: csect `%s' not in enclosing section%B: direct GOT relocation %s against `%s' without base register can not be used when making a shared object%B: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object%B: directive LOCAL valid only with a register or absolute value%B: dtp-relative relocation against dynamic symbol %s%B: duplicate export stub %s%B: duplicate section `%A' has different contents
 %B: duplicate section `%A' has different size
-%B: endianness incompatible with that of the selected emulation%B: error: Cortex-A8 erratum stub is allocated in unsafe location%B: error: Cortex-A8 erratum stub out of range (input file too large)%B: error: VFP11 veneer out of range%B: error: unaligned relocation type %d at %08x reloc %p
-%B: error: unknown mandatory EABI object attribute %d%B: file class %s incompatible with %s%B: gp-relative relocation against dynamic symbol %s%B: hidden symbol `%s' in %B is referenced by DSO%B: hidden symbol `%s' isn't defined%B: ignoring duplicate section `%A'
-%B: illegal relocation type %d at address 0x%lx%B: illegal symbol index in reloc: %d%B: incompatible machine type. Output is 0x%x. Input is 0x%x%B: indirect symbol `%s' to `%s' is a loop%B: internal error in ihex_read_section%B: internal symbol `%s' in %B is referenced by DSO%B: internal symbol `%s' isn't defined%B: invalid SHT_GROUP entry%B: invalid link %lu for reloc section %s (index %u)%B: invalid relocation type %d%B: invalid string offset %u >= %lu for section `%s'%B: jump too far away
-%B: linking %s module with previous %s modules%B: linking 32-bit code with 64-bit code%B: linking 64-bit files with 32-bit files%B: linking UltraSPARC specific with HAL specific code%B: linking auto-pic files with non-auto-pic files%B: linking big-endian files with little-endian files%B: linking constant-gp files with non-constant-gp files%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double%B: linking files compiled for HCS12 with others compiled for HC12%B: linking little endian files with big endian files%B: linking non-pic code in a position independent executable%B: linking trap-on-NULL-dereference with non-trapping files%B: loader reloc in read-only section %A%B: loader reloc in unrecognized section `%s'%B: local symbol `%s' in %B is referenced by DSO%B: misplaced XTY_LD `%s'%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'.%B: no group info for section %A%B: non-pic code with imm relocation against dynamic symbol `%s'%B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the object file has no symbol table%B: pc-relative relocation against dynamic symbol %s%B: pc-relative relocation against undefined weak symbol %s%B: probably compiled without -fPIC?%B: protected symbol `%s' isn't defined%B: reloc %s:%d not in csect%B: reloc against a non-existant symbol index: %ld%B: relocation %s against %s `%s' can not be used when making a shared object%s%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC%B: relocation %s against symbol `%s' isn't supported in x32 mode%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s%B: relocation %s can not be used when making a shared object; recompile with -fPIC%B: relocation %s cannot be used when making a shared object%B: relocation R_386_GOTOFF against protected function `%s' can not be used when making a shared object%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object%B: relocation R_X86_64_GOTOFF64 against protected function `%s' can not be used when making a shared object%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend%B: relocation size mismatch in %B section %A%B: relocs in section `%A', but it has no contents%B: section %A lma %#lx adjusted to %#lx%B: section %s: string table overflow at offset %ld%B: section `%A' can't be allocated in segment %d%B: sh_link [%d] in section `%A' is incorrect%B: sh_link of section `%A' points to discarded section `%A' of `%B'%B: sh_link of section `%A' points to removed section `%A' of `%B'%B: size field is zero in Import Library Format header%B: speculation fixup to dynamic symbol %s%B: string not null terminated in ILF object file.%B: symbol `%s' has unrecognized csect type %d%B: symbol `%s' has unrecognized smclas %d%B: symbol `%s' required but not present%B: too many sections (%d)%B: tp-relative relocation against dynamic symbol %s%B: unable to fill in DataDictionary[12] because .idata$5 is missing%B: unable to fill in DataDictionary[1] because .idata$2 is missing%B: unable to fill in DataDictionary[1] because .idata$4 is missing%B: unable to fill in DataDictionary[9] because __tls_used is missing%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing%B: unable to find ARM glue '%s' for `%s'%B: unable to find THUMB glue '%s' for `%s'%B: unable to find VFP11 veneer `%s'%B: unable to get decompressed section %A%B: unable to initialize commpress status for section %s%B: unable to initialize decommpress status for section %s%B: undefined reference to symbol '%s'%B: undefined sym `%s' in .opd section%B: undefined symbol on R_PPC64_TOCSAVE relocation%B: unexpected ATN type %d in external part%B: unexpected redefinition of indirect versioned symbol `%s'%B: unexpected reloc type %u in .opd section%B: unexpected type after ATN%B: unhandled dynamic relocation against %s%B: unimplemented %s
-%B: unimplemented ATI record %u for symbol %u%B: unknown [%d] section `%s' in group [%s]%B: unknown relocation type %d%B: unknown/unsupported relocation type %d%B: unrecognized relocation (0x%x) in section `%A'%B: unsupported relocation type %i%B: unsupported relocation type %i
-%B: unsupported relocation type %s%B: unsupported relocation: ALPHA_R_GPRELHIGH%B: unsupported relocation: ALPHA_R_GPRELLOW%B: uses _-prefixed symbols, but writing file with non-prefixed symbols%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)%B: uses non-prefixed symbols, but writing file with _-prefixed symbols%B: version node not found for symbol %s%B: warning: COMDAT symbol '%s' does not match section name '%s'%B: warning: Empty loadable segment detected, is this intentional ?
-%B: warning: allocated section `%s' not in segment%B: warning: duplicate line number information for `%s'%B: warning: illegal symbol index %ld in line numbers%B: warning: illegal symbol index %ld in relocs%B: warning: line number table read failed%B: warning: linking PIC files with non-PIC files%B: warning: linking abicalls files with non-abicalls files%B: warning: selected VFP11 erratum workaround is not necessary for target architecture%B: warning: sh_link not set for section `%A'%B: warning: unknown EABI object attribute %d%B:%A%s exceeds overlay size
-%B:%A: Warning: deprecated Red Hat reloc %B:%d: Bad checksum in S-record file
+%B: dynamic object with no .loader section%B: encountered datalabel symbol in input%B: endianness incompatible with that of the selected emulation%B: entry function `%s' is empty.%B: entry function `%s' not output.%B: error: ABI mismatch with previous modules.%B: error: Alignment power %d of section `%A' is too big%B: error: Cannot create STM32L4XX veneer.%B: error: Cannot set _ITB_BASE_%B: error: Cortex-A8 erratum stub is allocated in unsafe location%B: error: Cortex-A8 erratum stub out of range (input file too large)%B: error: Erratum 835769 stub out of range (input file too large)%B: error: Erratum 843419 stub out of range (input file too large)%B: error: Instruction set mismatch with previous modules.%B: error: PHDR segment not covered by LOAD segment%B: error: VFP11 veneer out of range%B: error: non-load segment %d includes file header and/or program header%B: error: unaligned relocation type %d at %08x reloc %08x
+%B: error: unaligned relocation type %d at %08x reloc %p
+%B: error: unknown mandatory EABI object attribute %d%B: error: unknown relocation type %d.%B: failed to generate import library%B: fatal: generic symbols retrieved before relaxing%B: file class %s incompatible with %s%B: gp-relative relocation against dynamic symbol %s%B: hidden symbol `%s' in %B is referenced by DSO%B: hidden symbol `%s' isn't defined%B: ignoring duplicate section `%A'
+%B: illegal relocation type %d at address 0x%lx%B: illegal section name `%A'%B: illegal symbol index %ld in relocs%B: illegal symbol index in reloc: %d%B: incompatible machine type. Output is 0x%x. Input is 0x%x%B: incorrect size for symbol `%s'.%B: indirect symbol `%s' to `%s' is a loop%B: internal error in ihex_read_section%B: internal error, internal register section %A had contents
+%B: internal error, symbol table changed size from %d to %d words
+%B: internal symbol `%s' in %B is referenced by DSO%B: internal symbol `%s' isn't defined%B: invalid AVR reloc number: %d%B: invalid CR16C reloc number: %d%B: invalid CRIS reloc number: %d%B: invalid D10V reloc number: %d%B: invalid D30V reloc number: %d%B: invalid Epiphany reloc number: %d%B: invalid FR30 reloc number: %d%B: invalid FRV reloc number: %d%B: invalid IP2K reloc number: %d%B: invalid IQ2000 reloc number: %d%B: invalid LM32 reloc number: %d%B: invalid M32C reloc number: %d%B: invalid M32R reloc number: %d%B: invalid M68HC11 reloc number: %d%B: invalid M68HC12 reloc number: %d%B: invalid MEP reloc number: %d%B: invalid METAG reloc number: %d%B: invalid MMIX reloc number: %d%B: invalid MSP430 reloc number: %d%B: invalid MSP430X reloc number: %d%B: invalid MT reloc number: %d%B: invalid Moxie reloc number: %d%B: invalid NDS32 reloc number: %d%B: invalid OR1K reloc number: %d%B: invalid RL78 reloc number: %d%B: invalid RX reloc number: %d%B: invalid SHT_GROUP entry%B: invalid V850 reloc number: %d%B: invalid Visium reloc number: %d%B: invalid XGate reloc number: %d%B: invalid XTENSA reloc number: %d%B: invalid i960 reloc number: %d%B: invalid import library entry: `%s'.%B: invalid link %u for reloc section %s (index %u)%B: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)
+%B: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote
+%B: invalid mmo file: expected y = 0, got y = %d for lop_fixrx
+%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo
+%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc
+%B: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx
+%B: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d
+%B: invalid mmo file: file name for number %d was not specified before use
+%B: invalid mmo file: file number %d `%s', was already entered as `%s'
+%B: invalid mmo file: initialization value for $255 is not `Main'
+%B: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx
+%B: invalid mmo file: lop_end not last item in file
+%B: invalid mmo file: unsupported lopcode `%d'
+%B: invalid relocation type %d%B: invalid size field in group section header: %#Lx%B: invalid special symbol `%s'.%B: invalid standard symbol `%s'.%B: invalid start address for initialized registers of length %ld: 0x%lx%08lx
+%B: invalid string offset %u >= %lu for section `%s'%B: invalid symbol table: duplicate symbol `%s'
+%B: jump too far away
+%B: line number overflow: 0x%lx > 0xffff%B: linking %s module with previous %s modules%B: linking 32-bit code with 64-bit code%B: linking 64-bit files with 32-bit files%B: linking UltraSPARC specific with HAL specific code%B: linking auto-pic files with non-auto-pic files%B: linking big-endian files with little-endian files%B: linking constant-gp files with non-constant-gp files%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double%B: linking files compiled for HCS12 with others compiled for HC12%B: linking little endian files with big endian files%B: linking non-pic code in a position independent executable%B: linking trap-on-NULL-dereference with non-trapping files%B: loader reloc in read-only section %A%B: loader reloc in unrecognized section `%s'%B: local symbol `%s' in %B is referenced by DSO%B: misplaced XTY_LD `%s'%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'.%B: no group info for section %A%B: no initialized registers; section length 0
+%B: no symbol found for import library%B: no valid group sections found%B: non-pic code with imm relocation against dynamic symbol `%s'%B: non-zero symbol index (%#lx) for offset %#Lx in section `%A' when the object file has no symbol table%B: object size does not match that of target %B%B: out of memory creating name for empty section%B: out of memory in _bfd_elf_get_property%B: page size is too large (0x%x)%B: pc-relative relocation against dynamic symbol %s%B: pc-relative relocation against undefined weak symbol %s%B: plugin needed to handle lto object%B: probably compiled without -fPIC?%B: protected symbol `%s' isn't defined%B: register relocation against non-register symbol: %s in %A%B: register relocation against non-register symbol: (unknown) in %A%B: reloc %s:%d not in csect%B: reloc against a non-existent symbol index: %ld%B: relocatable link from %s to %s not supported%B: relocation %s against %s%s`%s' can not be used when making a shared object%s%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC%B: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC%B: relocation %s against symbol `%s' isn't supported in x32 mode%B: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC%B: relocation %s can not be used when making a shared object; recompile with -fPIC%B: relocation %s cannot be used when making a shared object%B: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object%B: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object%B: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend%B: relocation size mismatch in %B section %A%B: relocs in section `%A', but it has no contents%B: section %A lma %#Lx adjusted to %#Lx%B: section %A: string table overflow at offset %ld%B: section `%A' can't be allocated in segment %d%B: section group entry number %u is corrupt%B: sh_link [%d] in section `%A' is incorrect%B: sh_link of section `%A' points to discarded section `%A' of `%B'%B: sh_link of section `%A' points to removed section `%A' of `%B'%B: short data segment overflowed (0x%lx >= 0x400000)%B: size field is zero in Import Library Format header%B: speculation fixup to dynamic symbol %s%B: stack size specified and %s set%B: string not null terminated in ILF object file.%B: string too long (%d chars, max 65535)%B: support for local dynamic not implemented%B: symbol `%s' has unrecognized csect type %d%B: symbol `%s' has unrecognized smclas %d%B: symbol `%s' required but not present%B: taking the address of protected function '%s' cannot be done when making a shared library%B: the target (%s) of a %s relocation is in the wrong output section (%s)%B: too many initialized registers; section length %ld
+%B: too many sections (%d)%B: too many sections: %u%B: tp-relative relocation against dynamic symbol %s%B: unable to create fake empty section%B: unable to fill in DataDictionary[12] because .idata$5 is missing%B: unable to fill in DataDictionary[1] because .idata$2 is missing%B: unable to fill in DataDictionary[1] because .idata$4 is missing%B: unable to fill in DataDictionary[9] because __tls_used is missing%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing%B: unable to find ARM glue '%s' for `%s'%B: unable to find STM32L4XX veneer `%s'%B: unable to find THUMB glue '%s' for `%s'%B: unable to find VFP11 veneer `%s'%B: unable to find name for empty section%B: unable to get decompressed section %A%B: unable to initialize compress status for section %s%B: unable to initialize decompress status for section %s%B: unable to load COMDAT section name%B: undefined reference to symbol '%s'%B: undefined sym `%s' in .opd section%B: undefined symbol on R_PPC64_TOCSAVE relocation%B: unexpected ATN type %d in external part%B: unexpected redefinition of indirect versioned symbol `%s'%B: unexpected reloc type %u in .opd section%B: unexpected type after ATN%B: unhandled dynamic relocation against %s%B: unimplemented %s
+%B: unimplemented ATI record %u for symbol %u%B: unknown load command 0x%lx%B: unknown relocation type %d%B: unknown relocation type %d for symbol %s%B: unknown type [%#x] section `%s'%B: unknown type [%#x] section `%s' in group [%A]%B: unknown/unsupported relocation type %d%B: unrecognised Alpha reloc number: %d%B: unrecognised CR16 reloc number: %d%B: unrecognised CRX reloc number: %d%B: unrecognised I370 reloc number: %d%B: unrecognised MCore reloc number: %d%B: unrecognised MN10300 reloc number: %d%B: unrecognised MicroBlaze reloc number: %d%B: unrecognised PPC reloc number: %d%B: unrecognised PicoJava reloc number: %d%B: unrecognised SH reloc number: %d%B: unrecognised SPU reloc number: %d%B: unrecognised VAX reloc number: %d%B: unrecognized relocation (0x%x) in section `%A'%B: unrecognized symbol `%s' flags 0x%x%B: unsupported non-PIC call to IFUNC `%s'%B: unsupported relocation type %i%B: unsupported relocation type %i
+%B: unsupported relocation type %s%B: unsupported relocation type 0x%02x%B: unsupported relocation: ALPHA_R_GPRELHIGH%B: unsupported relocation: ALPHA_R_GPRELLOW%B: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'
+%B: uses %s instructions while previous modules use %s instructions%B: uses _-prefixed symbols, but writing file with non-prefixed symbols%B: uses different e_flags (%#x) fields than previous modules (%#x)%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)%B: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)%B: uses instructions which are incompatible with instructions used in previous modules%B: uses non-prefixed symbols, but writing file with _-prefixed symbols%B: version count (%ld) does not match symbol count (%ld)%B: version node not found for symbol %s%B: visibility of symbol `%s' has changed.%B: warning core file truncated%B: warning: %A: line number overflow: 0x%lx > 0xffff%B: warning: %s points to unrecognized reloc at 0x%lx.%B: warning: %s relocation against symbol `%s' from %A section%B: warning: %s relocation to 0x%x from %A section%B: warning: %s: line number overflow: 0x%lx > 0xffff%B: warning: COMDAT symbol '%s' does not match section name '%s'%B: warning: Empty loadable segment detected at vaddr=%#Lx, is this intentional?%B: warning: Endian mismatch with previous modules.%B: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld%B: warning: Incompatible elf-versions %s and  %s.%B: warning: Inconsistent ASEs between e_flags and .MIPS.abiflags%B: warning: Inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags%B: warning: Inconsistent ISA between e_flags and .MIPS.abiflags%B: warning: Inconsistent ISA extensions between e_flags and .MIPS.abiflags%B: warning: No symbol for section '%s' found%B: warning: Older version of object file encountered, Please recompile with current tool chain.%B: warning: PLT addend of %d to `%s' from %A section ignored%B: warning: Unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)%B: warning: allocated section `%s' not in segment%B: warning: cannot deal R_NDS32_25_ABS_RELA in shared mode.%B: warning: claims to have 0xffff relocs, without overflow%B: warning: duplicate line number information for `%s'%B: warning: illegal symbol in line number entry %d%B: warning: illegal symbol index %ld in relocs%B: warning: illegal symbol index 0x%lx in line number entry %d%B: warning: isymMax (%ld) is greater than ifdMax (%d)
+%B: warning: line number table read failed%B: warning: linking PIC files with non-PIC files%B: warning: linking abicalls files with non-abicalls files%B: warning: loop in section dependencies detected%B: warning: multiple dynamic symbol tables detected - ignoring the table in section %u%B: warning: multiple symbol tables detected - ignoring the table in section %u%B: warning: relocate SDA_BASE failed.%B: warning: segment alignment of %#Lx is too large%B: warning: selected STM32L4XX erratum workaround is not necessary for target architecture%B: warning: selected VFP11 erratum workaround is not necessary for target architecture%B: warning: sh_link not set for section `%A'%B: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d.  Only `Main' will be emitted.
+%B: warning: unaligned access to GOT entry.%B: warning: unaligned small data access. For entry: {%d, %d, %d}, addr = 0x%x, align = 0x%x.%B: warning: unknown EABI object attribute %d%B: will not resolve runtime TLS relocation%B:%A%s exceeds overlay size
+%B:%A: %s and %s must be in the same input section%B:%A: Warning: deprecated Red Hat reloc %B:%A: error: relocation references symbol %s which was removed by garbage collection.%B:%A: error: try relinking with --gc-keep-exported enabled.%B:%A: table %s missing corresponding %s%B:%A: table entry %s not word-aligned within table%B:%A: table entry %s outside table%B:%d: Bad checksum in S-record file
 %B:%d: Unexpected character `%s' in S-record file
+%B:%d: byte count %d too small
 %B:%d: unexpected character `%s' in Intel Hex file%B:%u: bad checksum in Intel Hex file (expected %u, found %u)%B:%u: bad extended address record length in Intel Hex file%B:%u: bad extended linear address record length in Intel Hex file%B:%u: bad extended linear start address length in Intel Hex file%B:%u: bad extended start address length in Intel Hex file%B:%u: unrecognized ihex type %u in Intel Hex file%C: warning: relocation to "%s" references a different segment
+%F%A: failed to align section
+%F%B: PC-relative offset overflow in GOT PLT entry for `%s'
+%F%B: PC-relative offset overflow in PLT entry for `%s'
+%F%B: branch displacement overflow in PLT entry for `%s'
 %F%P: already_linked_table: %E
+%F%P: auto overlay error: %E
+%F%P: can not build overlay stubs: %E
+%F%P: corrupt input: %B
 %F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can not be used when making an executable; recompile with -fPIE and relink with -pie
+%F: failed to create BND PLT .eh_frame section
+%F: failed to create BND PLT section
+%F: failed to create GNU property section
+%F: failed to create GOT PLT .eh_frame section
+%F: failed to create GOT PLT section
+%F: failed to create GOT sections
+%F: failed to create IBT-enabled PLT section
+%F: failed to create PLT .eh_frame section
+%F: failed to create VxWorks dynamic sections
+%F: failed to create ifunc sections
 %H __tls_get_addr lost arg, TLS optimization disabled
 %H arg lost __tls_get_addr, TLS optimization disabled
+%H: %s against `%T': error %d
+%H: %s for indirect function `%T' unsupported
+%H: %s references optimized away TOC entry
+%H: %s reloc against `%s': error %d
+%H: %s reloc against local symbol
+%H: %s reloc unsupported in shared libraries and PIEs.
+%H: %s used with TLS symbol `%T'
+%H: %s used with non-TLS symbol `%T'
 %H: R_FRV_FUNCDESC references dynamic symbol with nonzero addend
 %H: R_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addend
 %H: R_FRV_GETTLSOFF not applied to a call instruction
@@ -301,93 +397,85 @@ ppcboot header:
 %H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction
 %H: R_FRV_TLSMOFFHI not applied to a sethi instruction
 %H: R_FRV_TLSOFF_RELAX not applied to an ld instruction
+%H: call to `%T' lacks nop, can't restore toc; (-mcmodel=small toc adjust stub)
+%H: call to `%T' lacks nop, can't restore toc; recompile with -fPIC
 %H: cannot emit dynamic relocations in read-only section
 %H: cannot emit fixups in read-only section
+%H: error: %s against `%s' not a multiple of %u
+%H: error: %s not a multiple of %u
+%H: error: %s with unexpected instruction %x
+%H: fixup branch overflow
+%H: non-zero addend on %s reloc against `%s'
 %H: reloc against `%s' references a different segment
 %H: reloc against `%s': %s
+%H: relocation %s for indirect function %s unsupported
 %H: relocation references symbol not defined in the module
 %H: relocation to `%s+%v' may have caused the error above
+%H: toc optimization is not supported for %s instruction.
+%H: unresolvable %s against `%T'
+%H: unresolvable %s relocation against symbol `%s'
 %P%F: --relax and -r may not be used together
+%P%F: failed creating ex9.it %s hash table: %E
 %P%X: can not read symbols: %E
+%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC
 %P%X: read-only segment has dynamic relocations.
+%P: %B .opd not allowed in ABI version %d
+%P: %B: %s is not supported for `%T'
 %P: %B: cannot create stub entry %s
-%P: %B: relocation %s is not supported for symbol %s
 %P: %B: relocation %s is not yet supported for symbol %s
 %P: %B: the target (%s) of a %s relocation is in the wrong output section (%s)
 %P: %B: unexpected relocation type
+%P: %B: unknown relocation type %d for `%T'
 %P: %B: unknown relocation type %d for symbol %s
-%P: %B: warning: relocation against `%s' in readonly section `%A'.
-%P: %B: warning: relocation in readonly section `%A'.
-%P: %H: %s reloc against `%s': error %d
-%P: %H: %s reloc against local symbol
-%P: %H: %s relocation references optimized away TOC entry
-%P: %H: %s used with TLS symbol %s
-%P: %H: %s used with non-TLS symbol %s
-%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc
-%P: %H: error: %s not a multiple of %u
-%P: %H: non-zero addend on %s reloc against `%s'
-%P: %H: relocation %s for indirect function %s unsupported
-%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern
-%P: %H: unresolvable %s relocation against symbol `%s'
+%P: %B: warning: relocation against `%s' in readonly section `%A'
+%P: %B: warning: relocation in readonly section `%A'
 %P: %s not defined in linker created %s
-%P: %s offset too large for .eh_frame sdata4 encoding%P: DW_EH_PE_datarel unspecified for this architecture.
+%P: %s offset too large for .eh_frame sdata4 encoding%P: .eh_frame_hdr entry overflow.
+%P: .eh_frame_hdr refers to overlapping FDEs.
+%P: DW_EH_PE_datarel unspecified for this architecture.
+%P: FDE encoding in %B(%A) prevents .eh_frame_hdr table being created.
+%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation dropped.
 %P: alternate ELF machine code found (%d) in %B, expecting %d
 %P: bss-plt forced by profiling
 %P: bss-plt forced due to %B
 %P: can't build branch stub `%s'
 %P: can't find branch stub `%s'
-%P: cannot find opd entry toc for %s
-%P: copy reloc against `%s' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc
-%P: dynamic variable `%s' is zero size
+%P: cannot find opd entry toc for `%T'
+%P: copy reloc against `%T' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc
+%P: copy reloc against protected `%T' is dangerous
 %P: dynreloc miscount for %B, section %A
 %P: error in %B(%A); no .eh_frame_hdr table will be created.
-%P: fde encoding in %B(%A) prevents .eh_frame_hdr table being created.
-%P: linkage table error against `%s'
+%P: linkage table error against `%T'
 %P: long branch stub `%s' offset overflow
 %P: multiple entry points: in modules %B and %B
 %P: relocatable link is not supported
 %P: stubs don't match calculated size
+%P: symbol '%s' has invalid st_other for ABI version 1
 %P: warning: creating a DT_TEXTREL in a shared object.
+%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime
 %X%C: relocation to "%s" references a different segment
+%X%H: @local call to ifunc %s
+%X%H: Cannot convert branch between ISA modes to JALX: relocation out of range
+%X%H: Unsupported JALX to the same ISA mode
+%X%H: Unsupported branch between ISA modes
+%X%H: Unsupported jump between ISA modes; consider recompiling with interlinking enabled
+%X%H: unsupported bss-plt -fPIC ifunc %s
+%X%P: %B(%A): error: relocation for offset %V has no value
+%X%P: %B(%A): relocation "%R" goes out of range
+%X%P: %B(%A): relocation "%R" is not supported
+%X%P: %B(%A): relocation "%R" returns an unrecognized value %x
 %X%P: overlay section %A does not start on a cache line.
 %X%P: overlay section %A is larger than a cache line.
 %X%P: overlay section %A is not in cache area.
 %X%P: overlay sections %A and %A do not start at the same address.
+%X%P: stack/lrlive analysis error: %E
+%X%P: text relocations and GNU indirect functions will result in a segfault at runtime
 %X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B
 %s defined on removed toc entry%s duplicated
 %s duplicated in %s
-%s in overlay section%s(%s): relocation %d has invalid symbol index %ld%s: %s: reloc overflow: 0x%lx > 0xffff%s: 0x%v 0x%v
-%s: Bad symbol definition: `Main' set to %s rather than the start address %s
-%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file
-%s: GAS error: unexpected PTB insn with R_SH_PT_16%s: Internal inconsistency error for value for
- linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx
-%s: Invalid relocation type exported: %d%s: LOCAL directive: Register $%ld is not a local register.  First global register is $%ld.%s: Malformed reloc detected for section %s%s: No core to allocate a symbol %d bytes long
-%s: No core to allocate section name %s
-%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A%s: TLS definition in %B section %A mismatches non-TLS reference in %B%s: TLS reference in %B mismatches non-TLS definition in %B section %A%s: TLS reference in %B mismatches non-TLS reference in %B%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry%s: The target (%s) of an %s relocation is in the wrong section (%s)%s: XCOFF shared object when not producing XCOFF output%s: __gp does not cover short data segment%s: access beyond end of merged section (%ld)%s: address 0x%s out of range for Intel Hex file%s: base-plus-offset relocation against register symbol: %s in %s%s: base-plus-offset relocation against register symbol: (unknown) in %s%s: can not represent section `%s' in a.out object file format%s: can not represent section `%s' in oasys%s: can not represent section for symbol `%s' in a.out object file format%s: cannot allocate file name for file number %d, %d bytes
-%s: cannot create stub entry %s%s: cannot link fdpic object file into non-fdpic executable%s: cannot link non-fdpic object file into fdpic executable%s: compiled as 32-bit object and %s is 64-bit%s: compiled as 64-bit object and %s is 32-bit%s: compiled with %s and linked with modules compiled with %s%s: compiled with %s and linked with modules that use non-pic relocations%s: could not write out added .cranges entries%s: could not write out sorted .cranges entries%s: directive LOCAL valid only with a register or absolute value%s: dynamic object with no .loader section%s: encountered datalabel symbol in input%s: error: unaligned relocation type %d at %08x reloc %08x
-%s: illegal section name `%s'%s: internal error, internal register section %s had contents
-%s: internal error, symbol table changed size from %d to %d words
-%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)
-%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote
-%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx
-%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo
-%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc
-%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx
-%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d
-%s: invalid mmo file: file name for number %d was not specified before use
-%s: invalid mmo file: file number %d `%s', was already entered as `%s'
-%s: invalid mmo file: initialization value for $255 is not `Main'
-%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx
-%s: invalid mmo file: lop_end not last item in file
-%s: invalid mmo file: unsupported lopcode `%d'
-%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx
-%s: invalid symbol table: duplicate symbol `%s'
-%s: line number overflow: 0x%lx > 0xffff%s: no initialized registers; section length 0
-%s: no such symbol%s: not implemented%s: not supported%s: object size does not match that of target %s%s: register relocation against non-register symbol: %s in %s%s: register relocation against non-register symbol: (unknown) in %s%s: relocatable link from %s to %s not supported%s: short data segment overflowed (0x%lx >= 0x400000)%s: string too long (%d chars, max 65535)%s: too many initialized registers; section length %ld
-%s: undefined version: %s%s: unknown relocation type %d%s: unrecognized symbol `%s' flags 0x%x%s: unsupported relocation type 0x%02x%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'
-%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)%s: version count (%ld) does not match symbol count (%ld)%s: warning core file truncated%s: warning: %s relocation against symbol `%s' from %s section%s: warning: %s relocation to 0x%x from %s section%s: warning: %s: line number overflow: 0x%lx > 0xffff%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld%s: warning: PLT addend of %d to `%s' from %s section ignored%s: warning: illegal symbol index %ld in relocs%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d.  Only `Main' will be emitted.
-(at bit offset %u)
+%s in overlay section%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A%s: TLS definition in %B section %A mismatches non-TLS reference in %B%s: TLS reference in %B mismatches non-TLS definition in %B section %A%s: TLS reference in %B mismatches non-TLS reference in %B%s: no such symbol%s: not implemented%s: not supported%s: undefined version: %s(at bit offset %u)
 (descriptor)
+(format %c%c%c%c signature %s age %ld)
 (no value)
 (not active)
 (not allocated)
@@ -396,43 +484,59 @@ ppcboot header:
 )
 *** check this relocation %s*unhandled*
 *unhandled* dst type %u
-*unknown**unknown*        , alias: %u
+*unknown**unknown*        , Value: %#08lx
+, alias: %u
 , ext fixup offset: %u, no_opt psect off: %u, subtype: %u (%s)
-, symbol vector rva: .got section not immediately after .plt section32-bit double, 32bits gp relative relocation occurs for an external symbol64 bits *unhandled*
-64-bit double, : %u.%u
-: m32r instructions: m32r2 instructions: m32rx instructions; recompile with -fPIC<Unrecognised flag bits set><unknown>@pltoff reloc against local symbolArchive has no index; run ranlib to add oneArchive object file in wrong formatAttempt to convert L32R/CALLX to CALL failedAttempt to do relocatable link with %s input and %s outputBASE_IMAGE       BFD %s assertion fail %s:%dBFD %s internal error, aborting at %s line %d
-BFD %s internal error, aborting at %s line %d in %s
+, symbol vector rva: - %B is 64-bit, %B is not-mips32r2 -mfp64 (12 callee-saved).got section not immediately after .plt section.rsrc merge failure: a directory matches a leaf.rsrc merge failure: differing directory versions
+.rsrc merge failure: dirs with differing characteristics
+.rsrc merge failure: duplicate leaf.rsrc merge failure: duplicate leaf: %s.rsrc merge failure: duplicate string resource: %d.rsrc merge failure: multiple non-default manifests32-bit double, 32bits gp relative relocation occurs for an external symbol4-byte4-bytes64 bits *unhandled*
+64-bit double, 8-byte8-bytes: m32r instructions: m32r2 instructions: m32rx instructions: n1 instructions: n1h instructions; recompile with -fPIC<Unrecognised flag bits set><corrupt info> %s<corrupt string length: %#x>
+<corrupt string offset: %#lx>
+<corrupt><unknown directory type: %d>
+<unknown>@pltoff reloc against local symbolArchive has no index; run ranlib to add oneArchive object file in wrong formatAttempt to convert L32R/CALLX to CALL failedAttempt to do relocatable link with %s input and %s outputBASE_IMAGE       BFD %s assertion fail %s:%dBFD %s internal error, aborting at %s:%d
+BFD %s internal error, aborting at %s:%d in %s
 BFD Link Error: branch (PC rel16) to section (%s) not supportedBFD Link Error: jump (PC rel26) to section (%s) not supportedBad valueBase Relocation Directory [.reloc]Bound Import DirectoryBounds:
-CLICLR Runtime HeaderCLUSTERS_LOCKMGR COUNTERS         CPU              CTL_AUGRB (augment relocation base) %u
+Branch to a non-instruction-aligned addressCACHE use: CLICLR Runtime HeaderCLUSTERS_LOCKMGR COUNTERS         CPU              CTL_AUGRB (augment relocation base) %u
 CTL_DFLOC (define location)
 CTL_SETRB (set relocation base)
 CTL_STKDL (stack defined location)
 CTL_STLOC (set location)
-Copyright Header
-DIV usage mismatch between %B and %BDST__K_BEG_STMT_MODE not implementedDST__K_END_STMT_MODE not implementedDST__K_RESET_LINUM_INCR not implementedDST__K_SET_LINUM_INCR not implementedDST__K_SET_LINUM_INCR_W not implementedDST__K_SET_PC not implementedDST__K_SET_PC_L not implementedDST__K_SET_PC_W not implementedDST__K_SET_STMTNUM not implementedDebug DirectoryDebug module table:
+Cannot convert a branch to JALX for a non-word-aligned addressCannot convert a jump to JALX for a non-word-aligned addressCopyright Header
+Corrupt .rsrc section detected!
+Corrupt EGSD record: its size (%#x) is too smallCorrupt EGSD record: size (%#x) is larger than remaining space (%#x)Corrupt EGSD record: size (%#x) is too smallCorrupt ETIR record encounteredCorrupt vms valueDSO missing from command lineDST__K_BEG_STMT_MODE not implementedDST__K_END_STMT_MODE not implementedDST__K_RESET_LINUM_INCR not implementedDST__K_SET_LINUM_INCR not implementedDST__K_SET_LINUM_INCR_W not implementedDST__K_SET_PC not implementedDST__K_SET_PC_L not implementedDST__K_SET_PC_W not implementedDST__K_SET_STMTNUM not implementedDebug DirectoryDebug module table:
 Debug symbol table:
 Delay Import DirectoryDeprecated %s called
 Deprecated %s called at %s line %d in %s
-Description DirectoryDwarf Error: Bad abbrev number: %u.Dwarf Error: Can't find %s section.Dwarf Error: Could not find abbrev number %u.Dwarf Error: Invalid maximum operations per instruction.Dwarf Error: Invalid or unhandled FORM value: %u.Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu).Dwarf Error: Unhandled .debug_line version %d.Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'.Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information.Dwarf Error: mangled line number section (bad file number).Dwarf Error: mangled line number section.EIHD: (size: %u, nbr blocks: %u)
-Entry offset        = 0x%.8lx (%ld)
-Error reading %s: %sError: %B has both the current and legacy Tag_MPextension_use attributesErrors encountered processing file %sException Directory [.pdata]Export Directory [.edata (or where ever we found it)]Export Flags 			%lx
-Export RVAFAILED to find previous HI16 relocFILES_VOLUMES    File format is ambiguousFile format not recognizedFile in wrong formatFile too bigFile truncatedFlag field          = 0x%.2x
-Forwarder RVAGALAXY           GP relative relocation used when GP not definedGP relative relocation when _gp not definedGPDISP relocation did not find ldah and lda instructionsGlobal symbol table:
-IDC - Ident Consistency check
-IMAGE_ACTIVATOR  INPUT_SECTION_FLAGS are not supported.
+Description DirectoryDwarf Error: Can't find %s section.Dwarf Error: Could not find abbrev number %u.Dwarf Error: DW_AT_comp_dir attribute encountered with a non-string form.Dwarf Error: Info pointer extends beyond end of attributesDwarf Error: Invalid maximum operations per instruction.Dwarf Error: Invalid or unhandled FORM value: %#x.Dwarf Error: Line info data is bigger (0x%lx) than the section (0x%lx)Dwarf Error: Line info section is too small (%ld)Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu).Dwarf Error: Ran out of room reading opcodesDwarf Error: Ran out of room reading prologueDwarf Error: Unable to read alt ref %u.Dwarf Error: Unhandled .debug_line version %d.Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'.Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information.Dwarf Error: mangled line number section (bad file number).Dwarf Error: mangled line number section.EIHD: (size: %u, nbr blocks: %u)
+ERROR: Attempting to link %B with a binary %B of different architectureEntry function `%s' disappeared from secure code.Entry offset        = 0x%.8lx (%ld)
+Error reading %s: %sError: %B has both the current and legacy Tag_MPextension_use attributesError: The ARC4 architecture is no longer supported.
+Errors encountered processing file %BException Directory [.pdata]Export Directory [.edata (or where ever we found it)]Export Flags 			%lx
+Export RVAFAILED to find previous HI16 relocFILES_VOLUMES    FPU-2.0FPU-3.0Failed to update file offsets in debug directoryFile format is ambiguousFile format not recognizedFile in wrong formatFile too bigFile truncatedFlag field          = 0x%.2x
+Forwarder RVAGALAXY           GOT and PLT relocations cannot be fixed with a non dynamic linker.GP relative relocation used when GP not definedGP relative relocation when _gp not definedGPDISP relocation did not find ldah and lda instructionsGlobal symbol table:
+Hard float (32-bit CPU, 64-bit FPU)
+Hard float (32-bit CPU, Any FPU)
+Hard float (MIPS32r2 64-bit FPU 12 callee-saved)
+Hard float (double precision)
+Hard float (single precision)
+Hard float compat (32-bit CPU, 64-bit FPU)
+Hard or soft float
+ID: %#08lxIDC - Ident Consistency check
+IEEE parser: string length: %#lx longer than buffer: %#lxIMAGE_ACTIVATOR  INPUT_SECTION_FLAGS are not supported.
 IO               Image activation:  (size=%u)
 Image activator fixup: (major: %u, minor: %u)
 Image identification: (major: %u, minor: %u)
 Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)
 Image symbol & debug table: (major: %u, minor: %u)
-Import Address Table DirectoryImport Directory [parts of .idata]Internal inconsistency: remaining %u != max %u.
-  Please report this bug.Invalid TARGET2 relocation type '%s'.Invalid bfd targetInvalid operationInvalid section index in ETIRJALX to a non-word-aligned addressLOGICAL_NAMES    Language Processor Name
+Import Address Table DirectoryImport Directory [parts of .idata]Internal Error: RL78 reloc stack overflowInternal Error: RL78 reloc stack underflowInternal inconsistency: remaining %u != max %u.
+  Please report this bug.Invalid AArch64 reloc number: %dInvalid DLX reloc number: %dInvalid TARGET2 relocation type '%s'.Invalid bfd targetInvalid contents in %A sectionInvalid operationInvalid output section for .eh_frame_entry: %AInvalid section index in ETIRIt must be a global or weak function symbol.Jump to a non-instruction-aligned addressJump to a non-word-aligned addressLOGICAL_NAMES    Language Processor Name
 Length              = 0x%.8lx (%ld)
-Load Configuration DirectoryMEMORY_MANAGEMENTMIPS16 and microMIPS functions cannot call each otherMISC             MULTI_PROCESSING Mach-O header:
-Major/Minor 			%d/%d
+Linker: cannot init ex9 hash table error 
+Linker: error cannot fixed ex9 relocation 
+Load Configuration DirectoryLocal IFUNC function `%s' in %B
+MEMORY_MANAGEMENTMIPS16 and microMIPS functions cannot call each otherMISC             MMU use: MULTI_PROCESSING Major/Minor 			%d/%d
 Malformed archiveMaximum stack required is 0x%v
 MeP: howto %d has type %dMemory exhaustedModule header
-NETWORKS         NORMALName 				No errorNo more archived filesNo symbolsNonrepresentable section on outputNot enough memory to sort relocationsNumber in:
+NETWORKS         NORMALName 				No address assigned to the veneers output section %sNo errorNo more archived filesNo symbolsNoneNonrepresentable section on outputNot enough memory to sort relocationsNumber in:
 OPR_ADD (add)
 OPR_AND (logical and)
 OPR_ASH (arithmetic shift)
@@ -451,18 +555,18 @@ ppcboot header:
 OPR_SUB (substract)
 OPR_USH (unsigned shift)
 Object module NOT error-free !
-Ordinal Base 			%ld
+Offset of veneer for entry function `%s' not a multiple of its size.One possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined.Ordinal Base 			%ld
 Output file requires shared library `%s'
 Output file requires shared library `%s.so.%s'
-POSIX            PROCESS_SCHED    PRVFXDPRVPICPSC - Program section definition
+PC-relative load from unaligned addressPIE executablePOSIX            PROCESS_SCHED    PRVFXDPRVPICPSC - Program section definition
 PTA mismatch: a SHcompact address (bit 0 == 0)PTB mismatch: a SHmedia address (bit 0 == 1)Partition name      = "%s"
 Partition[%d] end    = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }
 Partition[%d] length = 0x%.8lx (%ld)
 Partition[%d] sector = 0x%.8lx (%ld)
 Please report this bug.
-R_BFIN_FUNCDESC references dynamic symbol with nonzero addendR_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addendR_FRV_TLSMOFFLO not applied to a setlo or setlos instruction
+RL78 ABI conflict: G10 file %B cannot be linked with %s file %BRL78 ABI conflict: cannot link %s file %B with %s file %BRL78 merge conflict: cannot link 32-bit and 64-bit objects togetherR_BFIN_FUNCDESC references dynamic symbol with nonzero addendR_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addendR_FRV_TLSMOFFLO not applied to a setlo or setlos instruction
 Reading archive file mod timestampReference to the far symbol `%s' using a wrong relocation may result in incorrect executionRegister %%g%d used incompatibly: %s in %B, previously %s in %BRegister section has contents
-Relocation for non-REL psectRemoving unused section '%s' in file '%B'ReservedResource Directory [.rsrc]SDA relocation when _SDA_BASE_ not definedSECURITY         SEC_RELOC with no relocs in section %sSH Error: unknown reloc type %dSHELL            SHRFXDSHRPICSPSC - Shared Image Program section def
+Relocation for non-REL psectRemoving unused section '%A' in file '%B'ReservedResource Directory [.rsrc]S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you must manually offset the address in your codeSDA relocation when _SDA_BASE_ not definedSECURITY         SEC_RELOC with no relocs in section %ASH Error: unknown reloc type %dSHELL            SHRFXDSHRPICSIMD use: SPSC - Shared Image Program section def
 STABLE           STA_CKARG (compare procedure argument)
 STA_GBL (stack global) %.*s
 STA_LI (stack literal)
@@ -505,28 +609,40 @@ ppcboot header:
 SYMG - Universal symbol definition
 SYMM - Global symbol definition with version
 SYMV - Vectored symbol definition
-SYSGEN           Section has no contentsSecurity DirectorySegments and Sections:
-Size error in section %sSource Files Header
+SYSGEN           Section has no contentsSecurity DirectorySize error in section %ASoft float
+Source Files Header
 Special DirectorySpurious ALPHA_R_BSR relocStack analysis will ignore the call from %s to %s
 Stack overflow (%d) in _bfd_vms_pushStack size for call graph root nodes.
-Stack underflow in _bfd_vms_popStrides:
+Stack underflow in _bfd_vms_popStart address of `%s' is different from previous link.Strides:
 Symbol %s not defined for fixups
-Symbol %s replaced by %s
-Symbol `%s' has differing types: %s in %B, previously REGISTER in %BSymbol `%s' has differing types: REGISTER in %B, previously %s in %BSymbol needs debug section which does not existSystem call errorTLS relocation invalid without dynamic sectionsTOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compilingTable Addresses
-Thread Storage Directory [.tls]Time/Date stamp 		%lx
+Symbol `%s' has differing types: %s in %B, previously REGISTER in %BSymbol `%s' has differing types: REGISTER in %B, previously %s in %BSymbol needs debug section which does not existSymbol should be absolute, global and refer to Thumb functions.System call errorTLS relocation invalid without dynamic sectionsTOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compilingTable Addresses
+The debug data size field in the data directory is too big for the sectionThe debug directory size is not a multiple of the debug directory entry size
+There is a conflict merging the ELF header flags from %BThread Storage Directory [.tls]Time/Date stamp 		%lx
 Title Text Header
-USRSTACKUnable to find equivalent output section for symbol '%s' from section '%s'Unexpected STO_SH5_ISA32 on local symbol is not handledUnexpected machine numberUnhandled OSF/1 core file section type %d
-Unhandled relocation %sUnknown EGSD subtype %dUnknown basic type %dUnknown reloc %sUnknown reloc %s + %sUnknown symbol in command %sUnrecognized INPUT_SECTION_FLAG %s
-Unrecognized TI COFF target id '0x%x'Unrecognized relocUnrecognized reloc type 0x%xUnsupported .stab relocationVOLATILE         Variable `%s' can only be in one of the small, zero, and tiny data regionsVariable `%s' cannot be in both small and tiny data regions simultaneouslyVariable `%s' cannot be in both small and zero data regions simultaneouslyVariable `%s' cannot be in both zero and tiny data regions simultaneouslyVariable `%s' cannot occupy in multiple small data regionsWarning, .pdata section size (%ld) is not a multiple of %d
-Warning: %B does not support interworking, whereas %B doesWarning: %B is truncated: expected core file size >= %lu, found: %lu.Warning: %B supports interworking, whereas %B does notWarning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64Warning: %B uses -msingle-float, %B uses -mdouble-floatWarning: %B uses -msingle-float, %B uses -mips32r2 -mfp64Warning: %B uses double-precision hard float, %B uses single-precision hard floatWarning: %B uses hard float, %B uses soft floatWarning: %B uses r3/r4 for small structure returns, %B uses memoryWarning: %B uses soft float, %B uses single-precision hard floatWarning: %B uses unknown floating point ABI %dWarning: %B uses unknown small structure return convention %dWarning: %B uses unknown vector ABI %dWarning: %B uses vector ABI "%s", %B uses "%s"Warning: %B: Conflicting platform configurationWarning: %B: Unknown EABI object attribute %dWarning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with itWarning: Clearing the interworking flag of %B due to outside requestWarning: Not setting interworking flag of %B since it has already been specified as non-interworkingWarning: RX_SYM reloc with an unknown symbolWarning: Writing section `%s' to huge (ie negative) file offset 0x%lx.Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %AWarning: alignment %u of symbol `%s' in %B is smaller than %u in %BWarning: fixup count mismatch
-Warning: gc-sections option ignoredWarning: size of symbol `%s' changed from %lu in %B to %lu in %BWarning: type of symbol `%s' changed from %d to %d in %BWarning: writing archive was slow: rewriting timestamp
-Writing updated armap timestamp[%u]: %u
-[%u]: Lower: %u, upper: %u
-[abi=16-bit int, [abi=32-bit int, [whose name is lost]\%B: Warning: Arm BLX instruction targets Arm function '%s'._bfd_vms_output_counted called with too many bytes_bfd_vms_output_counted called with zero bytesaddressaddress not word alignarsize: %u, a0: 0x%08x
+Too many GOT entries for -fpic, please recompile with -fPICToo many unwind codes (%ld)
+Try enabling relaxation to avoid relocation truncationsType                Size     Rva      Offset
+USRSTACKUnable to find equivalent output section for symbol '%s' from section '%s'Unable to reach %s (at 0x%08x) from the global pointer (at 0x%08x) because the offset (%d) is out of the allowed range, -32678 to 32767.
+Unable to read EIHS record at offset %#xUnexpected STO_SH5_ISA32 on local symbol is not handledUnexpected machine numberUnhandled OSF/1 core file section type %d
+Unhandled relocation %sUnknownUnknown EGSD subtype %dUnknown basic type %dUnknown reloc %sUnknown reloc %s + %sUnknown symbol in command %sUnknown: %xUnrecognised MIPS reloc number: %dUnrecognized INPUT_SECTION_FLAG %s
+Unrecognized TI COFF target id '0x%x'Unrecognized reloc type 0x%xUnsupported .stab relocationUnsupported CR16 relocation type: 0x%x
+VOLATILE         Variable `%s' can only be in one of the small, zero, and tiny data regionsVariable `%s' cannot be in both small and tiny data regions simultaneouslyVariable `%s' cannot be in both small and zero data regions simultaneouslyVariable `%s' cannot be in both zero and tiny data regions simultaneouslyVariable `%s' cannot occupy in multiple small data regionsVirtual size of .pdata section (%ld) larger than real size (%ld)
+Warning, .pdata section size (%ld) is not a multiple of %d
+Warning: %B does not support interworking, whereas %B doesWarning: %B is truncated: expected core file size >= %lu, found: %lu.Warning: %B supports interworking, whereas %B does notWarning: %B uses %s (set by %B), %B uses %sWarning: %B uses %s (set by %B), %B uses unknown MSA ABI %dWarning: %B uses %s (set by %B), %B uses unknown floating point ABI %dWarning: %B uses 64-bit long double, %B uses 128-bit long doubleWarning: %B uses AltiVec vector ABI, %B uses SPE vector ABIWarning: %B uses IBM long double, %B uses IEEE long doubleWarning: %B uses double-precision hard float, %B uses single-precision hard floatWarning: %B uses hard float, %B uses soft floatWarning: %B uses r3/r4 for small structure returns, %B uses memoryWarning: %B uses unknown MSA ABI %d (set by %B), %B uses %sWarning: %B uses unknown MSA ABI %d (set by %B), %B uses unknown MSA ABI %dWarning: %B uses unknown floating point ABI %d (set by %B), %B uses %sWarning: %B uses unknown floating point ABI %d (set by %B), %B uses unknown floating point ABI %dWarning: %B: Conflicting platform configurationWarning: %B: Conflicting platform configuration %s with %s.
+Warning: %B: Unknown ARC object attribute %d.Warning: %B: Unknown EABI object attribute %dWarning: %B: Unknown MSPABI object attribute %dWarning: %s section size (%ld) is not a multiple of %d
+Warning: %s section size (%ld) is smaller than virtual size (%ld)
+Warning: %s section size is zero
+Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with itWarning: Clearing the interworking flag of %B due to outside requestWarning: Not setting interworking flag of %B since it has already been specified as non-interworkingWarning: RL78_SYM reloc with an unknown symbolWarning: RX_SYM reloc with an unknown symbolWarning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %AWarning: alignment %u of symbol `%s' in %B is smaller than %u in %BWarning: fixup count mismatch
+Warning: gc-sections option ignoredWarning: size of symbol `%s' changed from %Lu in %B to %Lu in %BWarning: size of symbol `%s' changed from %lu in %B to %lu in %BWarning: symbol `%s' is both section and non-sectionWarning: type of symbol `%s' changed from %d to %d in %BWarning: unset or old architecture flags. 
+	       Use default machine.
+Warning: writing archive was slow: rewriting timestamp
+Writing updated armap timestampXGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you must manually offset the address, and possibly manage the page, in your code.[%u]: Lower: %u, upper: %u
+[abi=16-bit int, [abi=32-bit int, [whose name is lost]\%B: Warning: Arm BLX instruction targets Arm function '%s'._bfd_vms_output_counted called with too many bytes_bfd_vms_output_counted called with zero bytes`%s' refers to a non entry function.addressaddress not word alignarray descriptor:
+array, dim: %u, bitmap: arsize: %u, a0: 0x%08x
+atomic, type=0x%02x %s
 bad section index in %sbanked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)base: %u, pos: %u
-bfd_mach_o_canonicalize_symtab: unable to load symbolsbfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lubfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)bfd_mach_o_read_symtab_symbol: symbol "%s" is unsupported 'indirect' reference: setting to undefinedbfd_mach_o_read_symtab_symbol: symbol "%s" specified invalid section %d (max %lu): setting to undefinedbfd_mach_o_read_symtab_symbol: symbol "%s" specified invalid type field 0x%x: setting to undefinedbfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lubfd_mach_o_read_symtab_symbols: unable to allocate memory for symbolsbfd_mach_o_scan: unknown architecture 0x%lx/0x%lxbfd_pef_scan: unknown architecture 0x%lxblkbeg: address: 0x%08x, name: %.*s
+bfd_mach_o_canonicalize_symtab: unable to load symbolsbfd_mach_o_read_section_32: overlarge alignment value: 0x%x, using 32 insteadbfd_mach_o_read_section_64: overlarge alignment value: 0x%x, using 32 insteadbfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)bfd_mach_o_read_symtab_symbol: symbol "%s" specified invalid section %d (max %lu): setting to undefinedbfd_mach_o_read_symtab_symbol: symbol "%s" specified invalid type field 0x%x: setting to undefinedbfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lubfd_mach_o_read_symtab_symbols: unable to allocate memory for symbolsbfd_mach_o_scan: unknown architecture 0x%lx/0x%lxbfd_pef_scan: unknown architecture 0x%lxblkbeg: address: 0x%08x, name: %.*s
 blkend: size: 0x%08x
-cannot emit dynamic relocations in read-only sectioncannot emit fixups in read-only sectioncannot find EMH in first GST record
+cannot create stub entry %scannot emit dynamic relocations in read-only sectioncannot emit fixups in read-only sectioncannot find EMH in first GST record
 cannot handle R_MEM_INDIRECT reloc when using %s outputcannot read DMT
 cannot read DMT header
 cannot read DMT psect
@@ -545,75 +661,97 @@ ppcboot header:
 cannot read GST record header
 cannot read GST record length
 class: %u, dtype: %u, length: %u, pointer: 0x%08x
-corrupt %s section in %Bcould not locate special linker symbol __ctbpcould not locate special linker symbol __epcould not locate special linker symbol __gpcould not open shared image '%s' from '%s'cpu=HC11]cpu=HC12]cpu=HCS12]dangerous relocationdelta pc +%-4ddelta_pc_l: +0x%08x
+corrupt %s section in %Bcould not find section %scould not locate special linker symbol __ctbpcould not locate special linker symbol __epcould not locate special linker symbol __gpcould not open shared image '%s' from '%s'cpu=HC11]cpu=HC12]cpu=HCS12]cpu=XGATE]dangerous relocationdelta pc +%-4ddelta_pc_l: +0x%08x
 delta_pc_w %u
 descdimct: %u, aflags: 0x%02x, digits: %u, scale: %u
-discarded output section: `%A'discontiguous range (nbr: %u)
+discarded output section: `%A'discarding zero address range FDE in %B(%A).
+discontiguous range (nbr: %u)
 dynamic relocation in read-only sectiondynamic variable `%s' is zero sizeenumbeg, len: %u, name: %.*s
 enumelt, name: %.*s
 enumend
 epilog: flags: %u, count: %u
-error: %B contains a reloc (0x%s) for section %A that references a non-existent global symbolerror: %B does not use Maverick instructions, whereas %B doeserror: %B is already in final BE8 formaterror: %B is compiled as absolute position code, whereas target %B is position independenterror: %B is compiled as position independent code, whereas target %B is absolute positionerror: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%derror: %B is compiled for APCS-%d, whereas target %B uses APCS-%derror: %B is compiled for the EP9312, whereas %B is compiled for XScaleerror: %B passes floats in float registers, whereas %B passes them in integer registerserror: %B passes floats in integer registers, whereas %B passes them in float registerserror: %B requires more array alignment than %B preserveserror: %B requires more stack alignment than %B preserveserror: %B uses FPA instructions, whereas %B does noterror: %B uses Maverick instructions, whereas %B does noterror: %B uses VFP instructions, whereas %B does noterror: %B uses VFP register arguments, %B does noterror: %B uses hardware FP, whereas %B uses software FPerror: %B uses iWMMXt register arguments, %B does noterror: %B uses software FP, whereas %B uses hardware FPerror: %B: Conflicting CPU architectures %d/%derror: %B: Conflicting architecture profiles %c/%cerror: %B: Conflicting use of R9error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchainerror: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'error: %B: SB relative addressing conflicts with use of R9error: %B: Unknown CPU architectureerror: %B: size of section %A is not multiple of address sizeerror: %B: unable to merge virtualization attributes with %Berror: Source object %B has EABI version %d, but target %B has EABI version %derror: fp16 format mismatch between %B and %Berror: inappropriate relocation type for shared library (did you forget -fpic?)error: undefined symbol __rtiniterror: unknown Tag_ABI_array_object_align_expected value in %Berror: unknown Tag_ABI_array_object_alignment value in %Bexecutablefailed to allocate space for new APUinfo section.failed to compute new APUinfo section.failed to install new APUinfo section.fatal error while creating .fixupgeneric linker can't handle %sglobal pointer relative address out of rangeglobal pointer relative relocation when _gp not definedhidden symbolignoring reloc %s
+error reading cpu type from elf private dataerror: %B contains a reloc (%#Lx) for section %A that references a non-existent global symbolerror: %B does not use Maverick instructions, whereas %B doeserror: %B is already in final BE8 formaterror: %B is compiled as absolute position code, whereas target %B is position independenterror: %B is compiled as position independent code, whereas target %B is absolute positionerror: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%derror: %B is compiled for APCS-%d, whereas target %B uses APCS-%derror: %B is compiled for the EP9312, whereas %B is compiled for XScaleerror: %B needs 8-byte aligment but %B is set for 4-byte alignmenterror: %B passes floats in float registers, whereas %B passes them in integer registerserror: %B passes floats in integer registers, whereas %B passes them in float registerserror: %B requires more array alignment than %B preserveserror: %B requires more stack alignment than %B preserveserror: %B uses %s instructions but %B uses %serror: %B uses 64-bit doubles but %B uses 32-bit doubleserror: %B uses FPA instructions, whereas %B does noterror: %B uses FPU-3.0 but %B only supports FPU-2.0error: %B uses Maverick instructions, whereas %B does noterror: %B uses VFP instructions, whereas %B does noterror: %B uses VFP register arguments, %B does noterror: %B uses hardware FP, whereas %B uses software FPerror: %B uses iWMMXt register arguments, %B does noterror: %B uses software FP, whereas %B uses hardware FPerror: %B uses the %s code model whereas %B uses the %s code modelerror: %B uses the %s data model but %B only uses MSP430 instructionserror: %B uses the %s data model whereas %B uses the %s data modelerror: %B uses the large code model but %B uses MSP430 instructionserror: %B uses the small code model but %B uses the %s data modelerror: %B(%A) is too large (%#lx bytes)error: %B: <corrupt x86 ISA needed size: 0x%x>error: %B: <corrupt x86 ISA used size: 0x%x>error: %B: <corrupt x86 feature size: 0x%x>error: %B: Big-endian R2 is not supported.error: %B: Conflicting CPU architectures %d/%derror: %B: Conflicting architecture profiles %c/%cerror: %B: Conflicting use of R9error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchainerror: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'error: %B: SB relative addressing conflicts with use of R9error: %B: Unknown CPU architectureerror: %B: cannot mix rf16 with full register set %B.
+error: %B: conflicting ISA extension attributes %s with %s.
+error: %B: conflicting attributes %s.
+error: %B: conflicting attributes %s: %s with %s.
+error: %B: size of section %A is not multiple of address sizeerror: %B: unable to merge CPU base attributes %s with %s.
+error: %B: unable to merge ISA extension attributes %s.
+error: %B: unable to merge virtualization attributes with %Berror: Can't find symbol: _SDA_BASE_.error: IFC relocation error.error: Jump IFC Fail.error: Source object %B has EABI version %d, but target %B has EABI version %derror: fp16 format mismatch between %B and %Berror: inappropriate relocation type for shared library (did you forget -fpic?)error: undefined symbol __rtiniterror: unknown Tag_ABI_array_object_align_expected value in %Berror: unknown Tag_ABI_array_object_alignment value in %Bexecutablefailed to allocate space for new APUinfo section.failed to compute new APUinfo section.failed to install new APUinfo section.fatal error while creating .fixupgeneric linker can't handle %sglobal pointer relative address out of rangeglobal pointer relative relocation at address 0x%08x when _gp not defined
+global pointer relative relocation when _gp not definedhidden symbolhidden symbol ignoring reloc %s
 incr_linum(b): +%u
 incr_linum_l: +%u
 incr_linum_w: +%u
-internal error: addend should be zero for R_LM32_16_GOTinternal error: dangerous errorinternal error: dangerous relocationinternal error: out of range errorinternal error: suspicious relocation type used in shared libraryinternal error: unknown errorinternal error: unsupported relocation errorinternal inconsistency in size of .got.loc sectioninternal symbolinvalid input relocation when producing non-ELF, non-mmo format output.
+indirect, defined at 0x%08x
+internal error: addend should be zero for R_LM32_16_GOTinternal error: addend should be zero for R_OR1K_GOT16internal error: branch/jump to an odd address detectedinternal error: dangerous errorinternal error: dangerous relocationinternal error: merge of architecture '%s' with architecture '%s' produced unknown architectureinternal error: out of range errorinternal error: suspicious relocation type used in shared libraryinternal error: unknown errorinternal error: unsupported relocation errorinternal inconsistency in size of .got.loc sectioninternal symbolinternal symbol invalid input relocation when producing non-ELF, non-mmo format output.
  Please use the objcopy program to convert from ELF or mmo,
  or assemble using "-no-expand" (for gcc, "-Wa,-no-expand"invalid input relocation when producing non-ELF, non-mmo format output.
  Please use the objcopy program to convert from ELF or mmo,
- or compile using the gcc-option "-mno-base-addresses".invalid relocation addressinvalid relocation type %dinvalid use of %s with contextsip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx).ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx).ip2k relaxer: switch table header corrupt.ip2k relaxer: switch table without complete matching relocation information.line num  (len: %u)
+ or compile using the gcc-option "-mno-base-addresses".invalid relocation addressinvalid relocation type %dinvalid use of %s with contextsip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx).ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx).ip2k relaxer: switch table header corrupt.ip2k relaxer: switch table without complete matching relocation information.label, name: %.*s
+len: %2u, kind: %2u line num  (len: %u)
 linkable imagelinker stubs in %u group%s
   branch       %lu
   toc adjust   %lu
   long branch  %lu
   long toc adj %lu
-  plt call     %luliteralliteral relocation occurs for an external symbolmep: no reloc for code %dmodbeg
+  plt call     %lu
+  plt call toc %lu
+  global entry %luliteralliteral relocation occurs for an external symbolmach-o: there are too many sections (%u) maximum is 255,
+mep: no reloc for code %dmodbeg
 modend
-nativenon-contiguous array of %s
+name: [val: %08lx len %d]: nativenew entry function(s) introduced but no output import library specified:nonon-contiguous array of %s
 non-dynamic relocations refer to dynamic symbol %snon-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store
-non-zero addend in @fptr relocnot enough GOT space for local GOT entriesnot mapping: data=%lx mapped=%d
+non-zero addend in @fptr relocnonenot enough GOT space for local GOT entriesnot mapping: data=%lx mapped=%d
 not mapping: env var not set
-note: '%s' is defined in DSO %B so try adding it to the linker command lineout of rangeoverflow after relaxationoverlay stub relocation overflowprivate flags = %lxprivate flags = %lx:private flags = %lx: private flags = %x:private flags = 0x%lxprivate flags = 0x%lx:prolog: bkpt address 0x%08x
-protected symbolrecbeg: name: %.*s
+not setout of rangeoverflow after relaxationoverlay stub relocation overflowpointer
+private flags = %lxprivate flags = %lx:private flags = %lx: private flags = %x:private flags = 0x%lxprivate flags = 0x%lx:prolog: bkpt address 0x%08x
+protected symbolprotected symbol recbeg: name: %.*s
 recend
-reference to a banked address [%lx:%04lx] in the normal address space at %04lxregrelocation `%s' not yet implementedrelocation references symbol not defined in the modulerelocation requires zero addendrelocation should be even numberrelocations between different segments are not supportedreopening %B: %s
+reference to a banked address [%lx:%04lx] in the normal address space at %04lxregreloc (%d) is *UNKNOWN*relocation `%s' not yet implementedrelocation out of rangerelocation references symbol not defined in the modulerelocation requires zero addendrelocation should be even numberrelocations between different segments are not supportedreopening %B: %s
 reserved cmd %drtnbeg
 rtnend: size 0x%08x
-septyp, name: %.*s
+section address (%lx) below start of segment (%lx)septyp, name: %.*s
 set_abs_pc: 0x%08x
 set_line_num(w) %u
 set_line_num_b %u
 set_line_num_l %u
-small-data section exceeds 64KB; lower small-data size limit (see option -G)som_sizeof_headers unimplementedsorry, no support for duplicate object files in auto-overlay script
-source (len: %u)
+shared objectsmall-data section exceeds 64KB; lower small-data size limit (see option -G)som_sizeof_headers unimplementedsorry, no support for duplicate object files in auto-overlay script
+sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab commands.source (len: %u)
 standard data: %s
-static procedure (no name)stub entry for %s cannot load .plt, dp offset = %ldstubs don't match calculated sizesymbolsystem version array information:
-term(b): 0x%02xterm_w: 0x%04xtypspec (len: %u)
-unable to find ARM glue '%s' for '%s'unable to find THUMB glue '%s' for '%s'unable to read in %s section from %Bunable to read unknown load command 0x%lxunable to write unknown load command 0x%lxunaligned bit-string of %s
-uncertain calling convention for non-COFF symbolundefined %s reference in complex symbol: %sunhandled egsd entry type %u
+static procedure (no name)stub entry for %s cannot load .plt, dp offset = %ldstubs don't match calculated sizesymbolsymbol system version array information:
+term(b): 0x%02xterm_w: 0x%04xthe bfin target does not currently support the generation of copy relocationstype spec for element:
+type spec for subscript %u:
+typed pointer
+typspec (len: %u)
+unable to allocate data for load command 0x%lxunable to find ARM glue '%s' for '%s'unable to find THUMB glue '%s' for '%s'unable to layout unknown load command 0x%lxunable to read in %s section from %Bunable to write unknown load command 0x%lxunaligned bit-string of %s
+uncertain calling convention for non-COFF symbolundefined undefined %s reference in complex symbol: %sunhandled egsd entry type %u
 unhandled emh subtype %u
-unknownunknown ETIR command %dunknown errorunknown header byte-order value 0x%lxunknown line command %dunknown operator '%c' in complex symbolunknown source command %dunsupported STA cmd %sunsupported relocunsupported reloc typeunsupported relocationunsupported relocation between data/insn address spacesusing multiple gp valuesv850 architecturev850e architecturev850e1 architecturev850e2 architecturev850e2v3 architecturevflags: 0x%02x, value: 0x%08x vma:			BeginAddress	 EndAddress	  UnwindData
-warning: %B and %B differ in wchar_t sizewarning: %B and %B differ in whether code is compiled for DSBTwarning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may failwarning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may failwarning: %B: local symbol `%s' has no sectionwarning: %s exceeds section size
-warning: %s has a corrupt string table index - ignoringwarning: %s overlaps %s
-warning: %s section has zero sizewarning: .pdata section size (%ld) is not a multiple of %d
-warning: attempt to export undefined symbol `%s'warning: call to non-function symbol %s defined in %Bwarning: generating a shared library containing non-PIC codewarning: generating a shared library containing non-PID codewarning: relocation references a different segmentwarning: section '%s' is being made into a notewarning: section `%A' type changed to PROGBITSwarning: type and size of dynamic symbol `%s' are not definedwarning: unable to set size of %s section in %Bwarning: unable to update contents of %s section in %syou are not allowed to define %s in a scriptProject-Id-Version: bfd 2.22.90
+unknownunknown ETIR command %dunknown errorunknown header byte-order value 0x%lxunknown line command %dunknown operator '%c' in complex symbolunknown source command %dunknown v850 architectureunknown: %xunrecognised MIPS reloc number: %dunrecognized relocation (0x%x)unsupported STA cmd %sunsupported relocunsupported reloc typeunsupported relocationunsupported relocation between data/insn address spacesusing multiple gp valuesv850 E3 architecturev850 architecturev850e architecturev850e1 architecturev850e2 architecturev850e2v3 architecturev850e3v5 architecturevflags: 0x%02x, value: 0x%08x vma:			BeginAddress	 EndAddress	  UnwindData
+warning: %B and %B differ in wchar_t sizewarning: %B and %B differ in whether code is compiled for DSBTwarning: %B has a corrupt string table index - ignoringwarning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may failwarning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may failwarning: %B: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lxwarning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%xwarning: %B: corrupt no copy on protected size: 0x%xwarning: %B: corrupt stack size: 0x%xwarning: %B: local symbol `%s' has no sectionwarning: %B: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%xwarning: %s exceeds section size
+warning: %s overlaps %s
+warning: %s section has zero sizewarning: attempt to export undefined symbol `%s'warning: call to non-function symbol %s defined in %Bwarning: generating a shared library containing non-PIC codewarning: generating a shared library containing non-PID codewarning: relocation references a different segmentwarning: section '%s' is being made into a notewarning: section `%A' type changed to PROGBITSwarning: type and size of dynamic symbol `%s' are not definedwarning: unable to set size of %s section in %Bwarning: unable to update contents of %s section in %Bwarning: writing section `%A' at huge (ie negative) file offset 0x%lx.warning: xdata section corruptwarning: xdata section corrupt
+yesyou are not allowed to define %s in a scriptProject-Id-Version: bfd 2.28.90
 Report-Msgid-Bugs-To: bug-binutils@gnu.org
-POT-Creation-Date: 2011-10-25 11:58+0100
-PO-Revision-Date: 2012-09-09 21:27+0300
+POT-Creation-Date: 2017-07-03 16:54+0200
+PO-Revision-Date: 2017-07-07 21:57+0300
 Last-Translator: Yuri Chornoivan <yurchor@ukr.net>
 Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>
 Language: uk
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
+X-Bugs: Report translation errors to the Language-Team address.
 Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
 X-Generator: Lokalize 1.5
-	Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¸Ñ… Ð°Ð´Ñ€ÐµÑ� 			Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¸Ñ… Ð°Ð´Ñ€ÐµÑ� 		%08lx
-	Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² Ð½Ð° Ð½Ð°Ð·Ð²Ð¸ 			Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² 				Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� [Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² Ð½Ð°Ð·Ð²/Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð¸Ñ… Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð²]	%08lx
+	    TLS: %A	<Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾: 0x%04lx>	Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¸Ñ… Ð°Ð´Ñ€ÐµÑ� 			Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¸Ñ… Ð°Ð´Ñ€ÐµÑ� 		%08lx
+	Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ rva (0x%lx) Ð°Ð±Ð¾ ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² (0x%lx) Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð°Ð´Ñ€ÐµÑ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�
+	Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ rva (0x%lx) Ð°Ð±Ð¾ ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² (0x%lx) Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² Ð½Ð° Ð½Ð°Ð·Ð²Ð¸
+	Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ rva (0x%lx) Ð°Ð±Ð¾ ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² (0x%lx) Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…
+	Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² Ð½Ð° Ð½Ð°Ð·Ð²Ð¸ 			Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² 				[%4ld] <Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ð·Ñ�ÑƒÐ²: %lx>
+	Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� [Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² Ð½Ð°Ð·Ð²/Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð¸Ñ… Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð²]	%08lx
 	toc Ð¾Ñ�Ð½Ð¾Ð²Ð¸ ÐºÐ¾Ð´Ñƒ %08lx (Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ð½Ð¸Ð¹/Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ð¹) %08lx/%08lx
-	Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %4d Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ %4x [%4lx] %s	vma:  Ð’ÐºÐ°Ð·/ÐŸÐ¾Ñ€ Ð�Ð°Ð·Ð²Ð°-ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð° ÐŸÑ€Ð¸Ð²â€™Ñ�Ð·Ð°Ð½Ð¾-Ð´Ð¾
+	Ð½Ðµ-TLS: %A	Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %4d Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ %4x [%4lx] %s	vma:  Ð’ÐºÐ°Ð·/ÐŸÐ¾Ñ€ Ð�Ð°Ð·Ð²Ð°-ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð° ÐŸÑ€Ð¸Ð²â€™Ñ�Ð·Ð°Ð½Ð¾-Ð´Ð¾
 
-	Ð�Ð°Ð·Ð²Ð° DLL: %s
+	Ð�Ð°Ð·Ð²Ð° DLL: %.*s
 
 
 ÐŸÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ñ„Ð°Ð¹Ð»Ð° PE (Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .reloc)
@@ -630,8 +768,12 @@ X-Generator: Lokalize 1.5
 
 Ð¥Ð°Ñ€Ð°ÐºÑ‚ÐµÑ€Ð¸Ñ�Ñ‚Ð¸ÐºÐ¸ 0x%x
 
+Ð”Ð°Ð¼Ð¿ %s
+
 Ð”Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð»:
 
+ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %s Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒÑ�Ñ� Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…, Ð°Ð»Ðµ Ð²Ð¾Ð½Ð° Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð¼Ð°Ð»Ð¾ÑŽ
+
 Ð”Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¸Ð¹ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ�
 
 Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¸Ñ… Ð°Ð´Ñ€ÐµÑ� â€” Ð¾Ñ�Ð½Ð¾Ð²Ð° Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð¸Ñ… Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð²: %ld
@@ -648,20 +790,35 @@ X-Generator: Lokalize 1.5
 
 Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ– ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� (Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s)
 
+Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ (Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s)
+
 Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ (Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .pdata)
 
 Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� (Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s)
 
+Ð’Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸ Ñƒ %s Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx
+
+
+Ð£ %s Ñ” ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸, Ð°Ð»Ðµ Ñƒ Ñ†ÑŒÐ¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð½ÐµÐ¼Ð°Ñ” Ð´Ð°Ð½Ð¸Ñ…
+
+Ð†Ñ�Ð½ÑƒÑ” ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸, Ð°Ð»Ðµ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Ñ‰Ð¾ Ð¹Ð¾Ð³Ð¾ Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾
+
 Ð†Ñ�Ð½ÑƒÑ” Ð·Ð°Ð¿Ð¸Ñ� Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñƒ, Ð°Ð»Ðµ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Ñ‰Ð¾ Ð¹Ð¾Ð³Ð¾ Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾
 
 Ð£ %s Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ 0x%lx
 
 Ð£ %s Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð°Ð»Ðµ Ñ—Ñ— Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚Ð¸ Ñƒ Ñ†ÑŒÐ¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–
 
+Ð£ %s Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð°Ð»Ðµ Ð²Ð¾Ð½Ð° Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð¼Ð°Ð»Ð¾ÑŽ (%d)
+
+Ð£ %s Ñ” Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð°Ð»Ðµ Ñƒ Ñ†ÑŒÐ¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð½ÐµÐ¼Ð°Ñ” Ð´Ð°Ð½Ð¸Ñ…
+
 Ð†Ñ�Ð½ÑƒÑ” Ð·Ð°Ð¿Ð¸Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð°Ð»Ðµ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Ñ‰Ð¾ Ñ—Ñ— Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾
 
 Ð£ %s Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ 0x%lx
 
+Ð£ %s Ñ” Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð°Ð»Ðµ Ñƒ Ñ†ÑŒÐ¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð½ÐµÐ¼Ð°Ñ” Ð´Ð°Ð½Ð¸Ñ…
+
 Ð†Ñ�Ð½ÑƒÑ” Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð°Ð»Ðµ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Ñ‰Ð¾ Ñ—Ñ— Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾
 
 ÐŸÐ¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ð²ÐµÑ€Ñ�Ñ–Ñ—:
@@ -670,14 +827,18 @@ X-Generator: Lokalize 1.5
 
 Ð’Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð° Ð°Ð´Ñ€ÐµÑ�Ð°: %08lx, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ„Ñ€Ð°Ð³Ð¼ÐµÐ½Ñ‚Ð°: %ld (0x%lx), ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·Ð¾Ðº: %ld
 
+ÐŸÐžÐŸÐ•Ð Ð•Ð”Ð–Ð•Ð�Ð�Ð¯: Ð·Ð°Ð¹Ð²Ñ– Ð´Ð°Ð½Ñ– Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– .rsrc â€” Ñ—Ñ… Ð±ÑƒÐ´Ðµ Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾ Windows:
+
 Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� [Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð¸Ñ… Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð²/Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² Ð½Ð° Ð½Ð°Ð·Ð²Ð¸]
 
 Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº ppcboot:
         pc: 0x%08x
     *Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð°* ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %u
+    Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x
     Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u
     Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–: %u, Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x, pd-Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x
     Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð° Ð½Ð°Ð·Ð²Ð°: %.*s
+    Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %u Ð±Ñ–Ñ‚Ñ–Ð²
     Ñ–Ð½Ð´ÐµÐºÑ� ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ�: %u, Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ�-Ð·Ð°Ð¼Ñ–Ð½Ð½Ð¸Ðº: 0x%08x
     Ð½Ð°Ð·Ð²Ð°: %.*s
     pc: 0x%08x
@@ -687,8 +848,10 @@ X-Generator: Lokalize 1.5
     Ñ–Ð½Ð´. psect 3: %u, Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ 3: 0x%08x %08x
     psect: %u, Ð·Ñ�ÑƒÐ²: 0x%08x %08x
     Ð½Ð°Ð·Ð²Ð° Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð¸: %.*s
-   %02u    %s%s %s
-   (Ñ‚Ð¸Ð¿: %3u, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: 4+%3u):    *Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð°* ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %u
+   %02u    (Ñ‚Ð¸Ð¿: %3u, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: 4+%3u):    *Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð°* ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %u
+   ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ” Ð¼ÐµÐ½ÑˆÐ¾ÑŽ Ð·Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ EEOM
+   ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ” Ð¼ÐµÐ½ÑˆÐ¾ÑŽ Ð·Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ EMH
+   ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ð¼Ñ–Ñ�Ñ†Ðµ, Ñ�ÐºÐµ Ð»Ð¸ÑˆÐ¸Ð»Ð¾Ñ�Ñ� Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ–
    Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ�: 2**%u
    alloc (Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°): %u (0x%08x)
    alloc (Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°): %u (0x%08x)
@@ -747,7 +910,6 @@ X-Generator: Lokalize 1.5
    Ð²ÐµÐºÑ‚Ð¾Ñ€      : 0x%08x
    Ð¼Ð°Ñ�ÐºÐ° Ð²ÐµÑ€Ñ�Ñ–Ñ—: 0x%08x
   %s (Ð´Ð¾Ð²Ð¶=%u+%u):
-  %s: 0x%v
   %u: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u, Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–: 0x%02x, Ð½Ð°Ð·Ð²Ð°: %.*s
   EEOM (Ð´Ð¾Ð²Ð¶=%u):
   EGSD (Ð´Ð¾Ð²Ð¶=%u):
@@ -769,23 +931,22 @@ X-Generator: Lokalize 1.5
   shlextra  : %5u, permctx   : %5u
   shlstoff  : %5u, shrimgcnt : %5u
   Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u
- #: Ð�Ð°Ð·Ð²Ð° Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°   Ð�Ð°Ð·Ð²Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ    Ð�Ð´Ñ€ÐµÑ�Ð°
- %08x 0x%08x 64B <Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð° Ð²ÐµÑ€Ñ�Ñ–Ñ� EABI> BPAGE: %u COM COMM Ð—Ð¼Ñ–Ð½Ð° Ð·Ð°Ñ…Ð¸Ñ�Ñ‚Ñƒ (%u Ð·Ð°Ð¿Ð¸Ñ�Ð¸):
+  Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– Ñ„Ð°Ð¹Ð»Ð° Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…: %s  Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– Ñ„Ð°Ð¹Ð»Ð° Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ–Ð²: %s %08x 0x%08x 64B <Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð° Ð²ÐµÑ€Ñ�Ñ–Ñ� EABI> BPAGE: %u COM COMM Ð—Ð¼Ñ–Ð½Ð° Ð·Ð°Ñ…Ð¸Ñ�Ñ‚Ñƒ (%u Ð·Ð°Ð¿Ð¸Ñ�Ð¸):
  ÐŸÑ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð°Ð´Ñ€ÐµÑ� ÐºÐ¾Ð´Ñƒ:
- DEF EXE ÐŸÐµÑ€ÑˆÐ° Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x 0x%08x
+ DEF EXE ÐŸÐ¾Ñ‚Ñ€Ñ–Ð±Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° FPU:  ÐŸÐµÑ€ÑˆÐ° Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x 0x%08x
  Ð§ÐµÑ‚Ð²ÐµÑ€Ñ‚Ð° Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x 0x%08x
  GBL ÐŸÐ¾Ñ�Ð»Ñ–Ð´Ð¾Ð²Ð½Ñ–Ñ�Ñ‚ÑŒ Ð·â€™Ñ”Ð´Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ LIB ÐŸÑ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½ÑŒ Ð½Ð° Ð¿Ð°Ñ€Ð¸ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ�:
- NOMOD NORM OVR PIC QVAL RD REL ÐœÑ–Ð»Ñ–ÐºÐ¾Ð´ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð° ÐœÑ–Ð»Ñ–ÐºÐ¾Ð´ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð° SHR Ð”Ñ€ÑƒÐ³Ð° Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x 0x%08x
+ NOMOD NORM OVR PIC QVAL RD REL ÐœÑ–Ð»Ñ–ÐºÐ¾Ð´ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð° ÐœÑ–Ð»Ñ–ÐºÐ¾Ð´ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð° Ð ÐµÑ�ÑƒÑ€Ñ�Ð¸ Ð¿Ð¾Ñ‡Ð¸Ð½Ð°ÑŽÑ‚ÑŒÑ�Ñ� Ð· Ñ‚Ð°ÐºÐ¸Ð¼ Ð·Ñ�ÑƒÐ²Ð¾Ð¼: %#03x
+ SHR Ð”Ñ€ÑƒÐ³Ð° Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x 0x%08x
  ÐžÐ±Ñ€Ð°Ð·Ð¸ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�:
  Ð¡Ð¿Ñ–Ð»ÑŒÐ½Ð¸Ð¹ Ð¾Ð±Ñ€Ð°Ð·: 0x%08x 0x%08x
+ Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ€Ñ�Ð´ÐºÑ–Ð² Ð¿Ð¾Ñ‡Ð¸Ð½Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ‚Ð°ÐºÐ¸Ð¼ Ð·Ñ�ÑƒÐ²Ð¾Ð¼: %#03x
+ Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ�: Ñ…Ð°Ñ€.: %d, Ñ‡Ð°Ñ�: %08lx, Ð²ÐµÑ€Ñ�Ñ–Ñ�: %d/%d, Ñ‡Ð¸Ñ�Ð»Ð¾Ð²Ñ– Ð½Ð°Ð·Ð²Ð¸: %d, Ñ–Ð´.: %d
  Ð¢Ñ€ÐµÑ‚Ñ� Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x 0x%08x
- UNI VEC VECEP WEAK WRT [64-Ð±Ñ–Ñ‚Ð¾Ð²Ñ– double] [BE8] [Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ float FPA] [LE8] [Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ float Maverick] [Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ float VFP] [Ð’ÐµÑ€Ñ�Ñ–Ñ�1 EABI] [Ð’ÐµÑ€Ñ�Ñ–Ñ�2 EABI] [Ð’ÐµÑ€Ñ�Ñ–Ñ�3 EABI] [Ð’ÐµÑ€Ñ�Ñ–Ñ�4 EABI] [Ð’ÐµÑ€Ñ�Ñ–Ñ�5 EABI] [Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ abi] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=O32] [abi=O64] [Ð· Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼] [d-float] [dsp] [Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°] [Ñ„Ñ–ÐºÑ�. Ñ€Ð¾Ð·Ñ‚.] [Ñ‡Ð¸Ñ�Ð»Ð° Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽ Ð¿ÐµÑ€ÐµÐ´Ð°Ð½Ð¾ Ð´Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽ] [Ñ‡Ð¸Ñ�Ð»Ð° Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽ Ð¿ÐµÑ€ÐµÐ´Ð°Ð½Ð¾ Ð´Ð¾ Ñ†Ñ–Ð»Ð¾Ñ‡Ð¸Ñ�ÐµÐ»ÑŒÐ½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð²] [g-float] [Ð¼Ð°Ñ” Ð²Ñ…Ñ–Ð´Ð½Ñƒ Ñ‚Ð¾Ñ‡ÐºÑƒ] [ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ] [Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ð½Ðµ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾] [Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð° Ñ€Ð¾Ð±Ð¾Ñ‚Ð° Ð½Ðµ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÑ”Ñ‚ÑŒÑ�Ñ�] [Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð° Ñ€Ð¾Ð±Ð¾Ñ‚Ð°] [Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ� Ð¿ÐµÑ€ÐµÐ´ÑƒÑŽÑ‚ÑŒ Ñ–Ð½ÑˆÐ¸Ð¼] [Ð¿Ð°Ð¼â€™Ñ�Ñ‚ÑŒ=Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð· Ð±Ð°Ð½ÐºÐ°Ð¼Ð¸] [Ð¿Ð°Ð¼â€™Ñ�Ñ‚ÑŒ=Ð¿Ð»Ð¾Ñ�ÐºÐ° Ð¼Ð¾Ð´ÐµÐ»ÑŒ] [Ð½Ð¾Ð²Ð¸Ð¹ ABI] [Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ abi] [Ð½Ðµ-pic] [Ð½Ðµ 32-Ð±Ñ–Ñ‚.Ñ€ÐµÐ¶Ð¸Ð¼] [Ñ�Ñ‚Ð°Ñ€Ð¸Ð¹ ABI] [pic] [Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¹ Ð²Ñ–Ð´ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ—] [Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð»] [Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð° FP] [Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²] [Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð¼Ñ–Ñ�Ñ‚Ñ�Ñ‚ÑŒ Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ� _] [Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ISA] [Ð½ÐµÐ²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²] [v10 Ñ‚Ð° v32] [v32] Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ GST
- Ð¿Ñ–Ð´Ñ‚Ð¸Ð¿ Ð¿Ñ€Ð¾Ñ†.: %08lx
- Ñ‚Ð¸Ð¿ Ð¿Ñ€Ð¾Ñ†. : %08lx (%s)
+ UNI VEC VECEP WEAK WRT [64-Ð±Ñ–Ñ‚Ð¾Ð²Ñ– double] [BE8] [Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ float FPA] [LE8] [Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ float Maverick] [Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ float VFP] [Ð’ÐµÑ€Ñ�Ñ–Ñ�1 EABI] [Ð’ÐµÑ€Ñ�Ñ–Ñ�2 EABI] [Ð’ÐµÑ€Ñ�Ñ–Ñ�3 EABI] [Ð’ÐµÑ€Ñ�Ñ–Ñ�4 EABI] [Ð’ÐµÑ€Ñ�Ñ–Ñ�5 EABI] [Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ� Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ñƒ RAM XGATE] [Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ abi] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=O32] [abi=O64] [abiv%ld] [Ð· Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼] [d-float] [Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°] [Ñ„Ñ–ÐºÑ�. Ñ€Ð¾Ð·Ñ‚.] [Ñ‡Ð¸Ñ�Ð»Ð° Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽ Ð¿ÐµÑ€ÐµÐ´Ð°Ð½Ð¾ Ð´Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽ] [Ñ‡Ð¸Ñ�Ð»Ð° Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽ Ð¿ÐµÑ€ÐµÐ´Ð°Ð½Ð¾ Ð´Ð¾ Ñ†Ñ–Ð»Ð¾Ñ‡Ð¸Ñ�ÐµÐ»ÑŒÐ½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð²] [g-float] [ABI Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¾Ñ— Ñ€ÑƒÑ…Ð¾Ð¼Ð¾Ñ— ÐºÑ€Ð°Ð¿ÐºÐ¸] [ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ] [Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ð½Ðµ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾] [Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð° Ñ€Ð¾Ð±Ð¾Ñ‚Ð° Ð½Ðµ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÑ”Ñ‚ÑŒÑ�Ñ�] [Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð° Ñ€Ð¾Ð±Ð¾Ñ‚Ð°] [Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ� Ð¿ÐµÑ€ÐµÐ´ÑƒÑŽÑ‚ÑŒ Ñ–Ð½ÑˆÐ¸Ð¼] [Ð¿Ð°Ð¼â€™Ñ�Ñ‚ÑŒ=Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð· Ð±Ð°Ð½ÐºÐ°Ð¼Ð¸] [Ð¿Ð°Ð¼â€™Ñ�Ñ‚ÑŒ=Ð¿Ð»Ð¾Ñ�ÐºÐ° Ð¼Ð¾Ð´ÐµÐ»ÑŒ] [Ð½Ð¾Ð²Ð¸Ð¹ ABI] [Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ abi] [Ð½Ðµ-pic] [Ð½Ðµ 32-Ð±Ñ–Ñ‚.Ñ€ÐµÐ¶Ð¸Ð¼] [Ñ�Ñ‚Ð°Ñ€Ð¸Ð¹ ABI] [pic] [Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¹ Ð²Ñ–Ð´ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ—] [Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð»] [ABI Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¾Ñ— Ñ€ÑƒÑ…Ð¾Ð¼Ð¾Ñ— ÐºÑ€Ð°Ð¿ÐºÐ¸] [Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð° FP] [Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²] [Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð¼Ñ–Ñ�Ñ‚Ñ�Ñ‚ÑŒ Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ� _] [Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ISA] [Ð½ÐµÐ²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²] [v10 Ñ‚Ð° v32] [v32] Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� 8-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð²:  Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ GST
  Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ–Ð²: vbn: %u, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u
  Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ð¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²: vbn: %u, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u (0x%x)
- Ñ‚Ð¸Ð¿ Ñ„Ð°Ð¹Ð»Ð° : %08lx (%s)
- Ð´Ð°Ð½Ñ– Ñ‰Ð¾Ð´Ð¾ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ rva:  Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–  : %08lx ( Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–: 0x%04x Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²: vbn: %u, Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð²: %u
+ Ð´Ð°Ð½Ñ– Ñ‰Ð¾Ð´Ð¾ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ rva:  Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–: 0x%04x Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²: vbn: %u, Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð²: %u
  Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€: 0x%08x, Ð½Ð°Ð·Ð²Ð°: %.*s
  ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u
  Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð¾Ð±Ñ€Ð°Ð·Ñƒ: %.*s
@@ -796,17 +957,13 @@ X-Generator: Lokalize 1.5
  Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ°: %08x: Ñ–Ð´. ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ°: %.*s
  Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½ÑŒ .address Ñƒ Ð´Ð¾Ð²Ð³Ðµ Ñ�Ð»Ð¾Ð²Ð¾:
  Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ñƒ Ð´Ð¾Ð²Ð³Ðµ Ñ�Ð»Ð¾Ð²Ð¾:
- magic     : %08lx
  majorid: %u, minorid: %u
  Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð¼Ð¾Ð´ÑƒÐ»Ñ�: 0x%08x, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: 0x%08x, (%u psect)
- ÐºÑ‚ÑŒ_ÐºÐ¾Ð¼Ð°Ð½Ð´: %08lx (%lu)
  Ð·Ñ�ÑƒÐ²Ð¸: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u
  Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½ÑŒ .address Ñƒ Ñ‡Ð¾Ñ‚Ð¸Ñ€Ð¸ Ñ�Ð»Ð¾Ð²Ð°:
  Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ñƒ Ñ‡Ð¾Ñ‚Ð¸Ñ€Ð¸ Ñ�Ð»Ð¾Ð²Ð°:
- Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð². : %08x
  Ñ€Ð¾Ð·Ð´Ñ–Ð»: Ð¾Ñ�Ð½Ð¾Ð²Ð°: 0x%08x%08x Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: 0x%08x
- Ñ€Ð¾Ð·Ð¼Ñ–Ñ€_ÐºÐ¼Ð´: %08lx
- Ñ‚Ð¸Ð¿: %3u, Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %3u (Ð·Ð° 0x%08x):  Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ EOBJ, %u
+ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ double:  Ñ‚Ð¸Ð¿: %3u, Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %3u (Ð·Ð° 0x%08x):  Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ EOBJ, %u
  vbn: %u, pfc: %u, matchctl: %u Ñ‚Ð¸Ð¿: %u ( vma:			ÐŸÐ¾Ñ‡Ð°Ñ‚. Ð°Ð´Ñ€ÐµÑ�Ð°    ÐšÑ–Ð½Ñ†. Ð°Ð´Ñ€ÐµÑ�Ð°      Ð”Ð°Ð½Ñ– unwind
  vma:		ÐŸÐ¾Ñ‡.     ÐšÑ–Ð½Ñ†.    ÐžÐ±Ñ€Ð¾Ð±Ð½Ð¸Ðº Ð”Ð°Ð½Ñ–     Ð�Ð´Ñ€ÐµÑ�Ð°     ÐœÐ°Ñ�ÐºÐ°
      		Ð°Ð´Ñ€ÐµÑ�Ð°   Ð°Ð´Ñ€ÐµÑ�Ð°   EH       EH       ÐºÑ–Ð½Ñ†. Ð¿Ñ€Ð¾Ð».Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ�
@@ -814,43 +971,103 @@ X-Generator: Lokalize 1.5
      		Ð°Ð´Ñ€ÐµÑ�Ð°   Ð¿Ñ€Ð¾Ð»Ð¾Ð³Ñƒ  Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ—  32Ð± Ð²Ð¸Ðº. Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½ÑŒ EH
  vma:            Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð§Ð°Ñ�Ð¾Ð²Ð°    Ð›Ð°Ð½Ñ†ÑŽÐ¶Ð¾Ðº Ð�Ð°Ð·Ð²Ð°     ÐŸÐµÑ€ÑˆÐ¸Ð¹
                  Ð²ÐºÐ°Ð·.   ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐºÐ°  Ñ�Ð¿Ñ€Ñ�Ð¼.   DLL       ÑˆÐ»ÑŽÐ·
-#<Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ ÐºÐ¾Ð´ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸>%A Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ [Â«%AÂ» Ñƒ %B] Ñ– Ð½ÐµÐ²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ [Â«%AÂ» Ñƒ %B] Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸%A Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ Ñ– Ð½ÐµÐ²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸%A:0x%v .brinfo lrlive (%u) Ð²Ñ–Ð´Ñ€Ñ–Ð·Ð½Ñ�Ñ”Ñ‚ÑŒÑ�Ñ� Ð²Ñ–Ð´ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ ÑˆÐ»Ñ�Ñ…Ð¾Ð¼ Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ (%u)
+#<Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ ÐºÐ¾Ð´ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸>%03x Ð›Ð¸Ñ�Ñ‚Ð¾Ðº %*.s: Ð°Ð´Ñ€ÐµÑ�Ð°: %#08lx, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %#08lx, ÐºÐ¾Ð´Ð¾Ð²Ð° Ñ�Ñ‚Ð¾Ñ€Ñ–Ð½ÐºÐ°: %d
+Ð’Ñ…Ñ–Ð´ Ð´Ð¾ %03x %*.s: %A Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ [Â«%AÂ» Ñƒ %B] Ñ– Ð½ÐµÐ²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ [Â«%AÂ» Ñƒ %B] Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸%A Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ Ñ– Ð½ÐµÐ²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸%A:0x%v .brinfo lrlive (%u) Ð²Ñ–Ð´Ñ€Ñ–Ð·Ð½Ñ�Ñ”Ñ‚ÑŒÑ�Ñ� Ð²Ñ–Ð´ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ ÑˆÐ»Ñ�Ñ…Ð¾Ð¼ Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ (%u)
 %A:0x%v Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ñƒ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹
-%B (%s): Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s (0x%x) Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾%B Ñ– %B Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ� Ñ€Ñ–Ð·Ð½Ð¸Ñ… ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ð¹%B Ñ– %B Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ� Ñ€Ñ–Ð·Ð½Ð¸Ñ… Ñ�Ð´ÐµÑ€Ñƒ %B Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒÑ�Ñ� ÐºÐ¾Ð´ v32 CRIS, Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¹ Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸Ñƒ %B Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒÑ�Ñ� ÐºÐ¾Ð´, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ñ” ÐºÐ¾Ð´Ð¾Ð¼ v32 CRIS, Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¹ Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸Ð´Ð»Ñ� %B Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð¾Ð±Ð¸Ð´Ð²Ð° Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Tag_MPextension_use, current Ñ– legacy%B Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ‚Ð¸ %sÐ Ð¾Ð·Ð´Ñ–Ð» %B, %A, Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¸ Ð³Ñ€ÑƒÐ¿Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ–Ð²%B Ð½Ð¾Ð¼ÐµÑ€ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %lu Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð» SHT_SYMTAB_SHNDX, Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ñ–Ñ�Ð½ÑƒÑ”%B(%A): Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸ÐºÐ»Ð¸Ðº Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%sÂ»%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�%B(%A): Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð²Ð»Ð°Ñ�Ñ‚Ð¸Ð²Ð¾Ñ�Ñ‚ÐµÐ¹%B(%A): Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� PID %s Ð´Ð¾ 0x%08lx (Ñ‰Ð¾Ð´Ð¾ %s Ñƒ %s)%B(%A): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ Ð¼Ð°Ð»Ñ–Ð¹ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð´Ð°Ð½Ð¸Ñ…%B(%A+0x%B(%A+0x%lx): Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð°Ð´Ñ€ÐµÑ�Ð½Ð¾Ñ— Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ %s Ð´Ð»Ñ� Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— 0x%x Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ– Ð½ÐµÑ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ SEC_MERGE%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð·Ð° Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ Â«%sÂ»%B(%A+0x%lx): %s Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ TLS %s%B(%A+0x%lx): %s Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ Ð¿Ð¾Ð·Ð° TLS %s%B(%A+0x%lx): Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ð³Ñ€ÑƒÐ¿ ALU Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ ADD Ð°Ð±Ð¾ SUB%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ð¿Ñ€Ð¾Ð±Ð¸ Ð¿Ð¾Ð´Ñ–Ð»Ñƒ 0x%lx Ð· Ð¼ÐµÑ‚Ð¾ÑŽ Ð³Ñ€ÑƒÐ¿Ð¾Ð²Ð¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_68K_TLS_LE32 Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_ARM_TLS_LE32 Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾%B(%A+0x%lx): Ð·Ð°Ð¿Ð¸Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– stabs Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ€Ñ�Ð´ÐºÐ°.%B(%A+0x%lx): Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð°Ð´Ñ€ÐµÑ�Ð½Ñƒ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÑƒ Ð´Ð¾ Â«%sÂ» Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�%B(%A+0x%lx): Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ %s Ð´Ð»Ñ� %s%B(%A+0x%lx): Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð´Ð¾Ñ�Ñ�Ð³Ñ‚Ð¸ %s, Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -ffunction-sections%B(%A+0x%lx): Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ñ‚Ð¸ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� XTENSA_ASM_SIMPLIFY, Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð° Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ð¹%B(%A+0x%lx): Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ñ‚Ð¸ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ, Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð° Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ð¹%B(%A+0x%lx): Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ� Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� TLS %s%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° %d%B(%A+0x%lx): Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ð·Ð° Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼ (Ñ€Ð¾Ð·Ð¼Ñ–Ñ€=0x%x)%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ðµ Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ� Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s%B(%A+0x%lx): Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»B(%A+0x%lx): Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ARM, Â«0x%xÂ», Ñƒ Ñ‚Ñ€Ð°Ð¼Ð¿Ð»Ñ–Ð½Ñ– TLS%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ARM, Â«0x%xÂ», Ð½Ð° Ñ�ÐºÑƒ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� TLS_GOTDESC%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Thumb, Â«0x%xÂ», Ñƒ Ñ‚Ñ€Ð°Ð¼Ð¿Ð»Ñ–Ð½Ñ– TLS%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Thumb, Â«0x%xÂ», Ð½Ð° Ñ�ÐºÑƒ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� TLS_GOTDESC%B(%A+0x%v): Ð²Ð¸ÐºÐ»Ð¸Ðº Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ ÐºÐ¾Ð´, %B(%A), Ð°Ð½Ð°Ð»Ñ–Ð· Ñ” Ð½ÐµÐ¿Ð¾Ð²Ð½Ð¸Ð¼
+%B (%s): Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s (0x%x) Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾%B Ñ– %B Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ� Ñ€Ñ–Ð·Ð½Ð¸Ñ… ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ð¹%B Ñ– %B Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ� Ñ€Ñ–Ð·Ð½Ð¸Ñ… Ñ�Ð´ÐµÑ€Ñƒ %B Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒÑ�Ñ� ÐºÐ¾Ð´ v32 CRIS, Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¹ Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸Ñƒ %B Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒÑ�Ñ� ÐºÐ¾Ð´, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ñ” ÐºÐ¾Ð´Ð¾Ð¼ v32 CRIS, Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¹ Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸Ð´Ð»Ñ� %B Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð¾Ð±Ð¸Ð´Ð²Ð° Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Tag_MPextension_use, current Ñ– legacy%B Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ‚Ð¸ %sÐ Ð¾Ð·Ð´Ñ–Ð» %B, %A, Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¸ Ð³Ñ€ÑƒÐ¿Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ–Ð²%B Ð½Ð¾Ð¼ÐµÑ€ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %lu Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð» SHT_SYMTAB_SHNDX, Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ñ–Ñ�Ð½ÑƒÑ”%B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� e_flags 0x%lx%B(%#x): Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÑƒ STM32L4XX. ÐŸÐµÑ€ÐµÑ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð¿Ñ€Ð¸Ð¿ÑƒÑ�Ñ‚Ð¸Ð¼Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ Ð½Ð° %ld Ð±Ð°Ð¹Ñ‚Ñ–Ð². ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ. %B(%A): Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸ÐºÐ»Ð¸Ðº Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%sÂ»%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�%B(%A): Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð²Ð»Ð°Ñ�Ñ‚Ð¸Ð²Ð¾Ñ�Ñ‚ÐµÐ¹%B(%A): Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… Ð¼Ð¾Ð´ÐµÐ»ÐµÐ¹ TLS Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾%B(%A): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, %ld%B(%A): Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ� Ñ�Ñ‚Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� %s%B(%A): Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� PID %s Ð´Ð¾ 0x%08lx (Ñ‰Ð¾Ð´Ð¾ %s Ñƒ %s)%B(%A): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð´Ð¾Ð²Ð³Ð¸Ñ… Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ñ… Ð³Ñ–Ð»Ð¾Ðº Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð°Ñ… Ñ–Ð· Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ SHF_ARM_PURECODE Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ†Ñ–Ð»ÐµÐ¹ Ð· Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÐµÐ¼ M, Ñƒ Ñ�ÐºÐ¸Ñ… Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ movw.%B(%A): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ Ð¼Ð°Ð»Ñ–Ð¹ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð´Ð°Ð½Ð¸Ñ…%B(%A): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Ð¼Ð°Ð»Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ñ‚Ð¸Ð¿Ñƒ %d.%B(%A+0x%%B(%A+0x%lx): Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð°Ð´Ñ€ÐµÑ�Ð½Ð¾Ñ— Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ %s Ð´Ð»Ñ� Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— 0x%x Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ– Ð½ÐµÑ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ SEC_MERGE%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð·Ð° Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ Â«%sÂ»%B(%A+0x%lx): %s Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ TLS %s%B(%A+0x%lx): %s Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ Ð¿Ð¾Ð·Ð° TLS %s%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CMEM Ð´Ð¾ Â«%sÂ» Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¼, 16 MSB Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ 0x%04x (Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� 0x%lx)%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CMEM Ð´Ð¾ Â«%s+0x%lxÂ» Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¼, 16 MSB Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ 0x%04x (Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� 0x%lx)%B(%A+0x%lx): Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ð³Ñ€ÑƒÐ¿ ALU Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ ADD Ð°Ð±Ð¾ SUB%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ð¿Ñ€Ð¾Ð±Ð¸ Ð¿Ð¾Ð´Ñ–Ð»Ñƒ 0x%lx Ð· Ð¼ÐµÑ‚Ð¾ÑŽ Ð³Ñ€ÑƒÐ¿Ð¾Ð²Ð¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_68K_TLS_LE32 Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_ARM_TLS_LE32 Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_METAG_TLS_LE/IENONPIC Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_NIOS2_TLS_LE16 Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾%B(%A+0x%lx): Ð·Ð°Ð¿Ð¸Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– stabs Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ€Ñ�Ð´ÐºÐ°.%B(%A+0x%lx): Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð°Ð´Ñ€ÐµÑ�Ð½Ñƒ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÑƒ Ð´Ð¾ Â«%sÂ» Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�%B(%A+0x%lx): Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ %s Ð´Ð»Ñ� %s%B(%A+0x%lx): Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð´Ð¾Ñ�Ñ�Ð³Ñ‚Ð¸ %s, Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -ffunction-sections%B(%A+0x%lx): Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ñ‚Ð¸ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� XTENSA_ASM_SIMPLIFY, Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð° Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ð¹%B(%A+0x%lx): Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ñ‚Ð¸ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ, Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð° Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ð¹%B(%A+0x%lx): Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½ÑŒ Ñƒ Ð½ÐµÐ¾Ñ�Ñ‚Ð°Ð½Ð½Ñ–Ð¹ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— Ð±Ð»Ð¾ÐºÑƒ IT: Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÑƒ STM32L4XX Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚Ð¸ Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð¾.
+Ð¡ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð¹Ñ‚ÐµÑ�Ñ� Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ gcc -mrestrict-it, Ñ‰Ð¾Ð± Ñ�Ñ‚Ð²Ð¾Ñ€ÑŽÐ²Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ Ð¾Ð´Ð½Ñƒ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ Ð½Ð° Ð±Ð»Ð¾Ðº IT.
+%B(%A+0x%lx): Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ�Ñ‚Ð¸Ð»ÑŽ 16A Ð½Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— 0x%08x%B(%A+0x%lx): Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ�Ñ‚Ð¸Ð»ÑŽ 16D Ð½Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— 0x%08x%B(%A+0x%lx): Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ� Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� TLS %s%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° %d%B(%A+0x%lx): Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ð·Ð° Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼ (Ñ€Ð¾Ð·Ð¼Ñ–Ñ€=0x%x)%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ARM, Â«0x%xÂ», Ñƒ Ñ‚Ñ€Ð°Ð¼Ð¿Ð»Ñ–Ð½Ñ– TLS%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ARM, Â«0x%xÂ», Ð½Ð° Ñ�ÐºÑƒ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� TLS_GOTDESC%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Thumb, Â«0x%xÂ», Ñƒ Ñ‚Ñ€Ð°Ð¼Ð¿Ð»Ñ–Ð½Ñ– TLS%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Thumb, Â«0x%xÂ», Ð½Ð° Ñ�ÐºÑƒ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� TLS_GOTDESC%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ðµ Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ� Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s%B(%A+0x%lx): Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»B(%A+0x%lx): Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»%B(%A+0x%v): Ð²Ð¸ÐºÐ»Ð¸Ðº Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ ÐºÐ¾Ð´, %B(%A), Ð°Ð½Ð°Ð»Ñ–Ð· Ñ” Ð½ÐµÐ¿Ð¾Ð²Ð½Ð¸Ð¼
 %B(%s): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ð½Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾.
   Ð¿ÐµÑ€ÑˆÐ° Ð·Ð³Ð°Ð´ÐºÐ°: %B: Ð²Ð¸ÐºÐ»Ð¸Ðº ARM Ð´Ð¾ Thumb%B(%s): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ð½Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾.
   Ð¿ÐµÑ€ÑˆÐ° Ð·Ð³Ð°Ð´ÐºÐ°: %B: Ð²Ð¸ÐºÐ»Ð¸Ðº thumb Ð´Ð¾ ARM%B(%s): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ð½Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾.
   Ð¿ÐµÑ€ÑˆÐ° Ð·Ð³Ð°Ð´ÐºÐ°: %B: Ð²Ð¸ÐºÐ»Ð¸Ðº arm Ð´Ð¾ thumb%B(%s): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ð½Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾.
-  Ð¿ÐµÑ€ÑˆÐ° Ð·Ð³Ð°Ð´ÐºÐ°: %B: Ð²Ð¸ÐºÐ»Ð¸Ðº thumb Ð´Ð¾ arm%B(%s): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ð½Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾.
   Ð¿ÐµÑ€ÑˆÐ° Ð·Ð³Ð°Ð´ÐºÐ°: %B: Ð²Ð¸ÐºÐ»Ð¸Ðº arm Ð´Ð¾ arm
   Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� Ð· ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¸Ð¼ --support-old-code%B(%s+0x%lx): Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A:
   Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ñ” ÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¼ Ñƒ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð¼Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–; Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾ÑŽ Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½Ð¾ÑŽ Ñ” ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð², Ð¿ÐµÑ€ÐµÐºÐ¾Ð¼Ð¿Ñ–Ð»ÑŽÐ¹Ñ‚Ðµ Ð· -fPIC%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A:
   Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ñ�Ð»Ñ–Ð´ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ñƒ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð¼Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–; Ð¿ÐµÑ€ÐµÐºÐ¾Ð¼Ð¿Ñ–Ð»ÑŽÐ¹Ñ‚Ðµ Ð· -fPIC%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A:
-  Ð¾Ð±â€™Ñ”ÐºÑ‚ Ð²ÐµÑ€Ñ�Ñ–Ñ— 10/32, %s, Ð½Ðµ Ð¿Ð¾Ð²Ð¸Ð½ÐµÐ½ Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� PIC%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½ÐµÐ¼Ð°Ñ” PLT Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½ÐµÐ¼Ð°Ñ” Ð½Ñ– PLT, Ð½Ñ– GOT Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– %s Ñ” Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Â«%sÂ», Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾, Ð°Ð´Ñ€ÐµÑ�Ð½Ð° Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ° Ð¾Ð³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ�?%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð»Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ: Â«%sÂ»%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», Ñ�ÐºÐ¸Ð¹ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð¿Ð¾Ð·Ð° Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¾ÑŽ. ÐœÐ¾Ð¶Ð»Ð¸Ð²Ð¾, Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ð¾Ð³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ–?%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð±ÐµÐ· Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð¾Ð³Ð¾ GOT%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼, %d, Ñ‰Ð¾Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼, %d, Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»:
-  Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ñ�Ð»Ñ–Ð´ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ñƒ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð¼Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–; Ð¿ÐµÑ€ÐµÐºÐ¾Ð¼Ð¿Ñ–Ð»ÑŽÐ¹Ñ‚Ðµ Ð· -fPIC%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� !samegp Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð±ÐµÐ· .prologue: %s%B: %A+0x%lx: Ð±ÐµÐ·Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´Ð½Ñ– Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ð¸ Ð¼Ñ–Ð¶ Ñ€ÐµÐ¶Ð¸Ð¼Ð°Ð¼Ð¸ ISA Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾; Ð²Ð°Ñ€Ñ‚Ð¾ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¸Ð¼ Ð²Ð·Ð°Ñ”Ð¼Ð½Ð¸Ð¼ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼.%B: %s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾Ñ— Ð²ÐµÑ€Ñ�Ñ–Ñ— %d%B: %s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð²ÐµÑ€Ñ�Ñ–Ñ�, %u (Ð¼Ð°ÐºÑ�Ð¸Ð¼ÑƒÐ¼ â€” %d)'%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Â«%sÂ» Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�Ðº Ð´Ð¾ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ‚Ð° Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð´Ð»Ñ� Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%B: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¿Ñ–Ð´Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð° .got Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” 64ÐºÐ‘ (Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ â€” %d)%B: .opd Ð½Ðµ Ñ” Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¸Ð¼ Ð¼Ð°Ñ�Ð¸Ð²Ð¾Ð¼ Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² opd%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» .preinit_array Ñƒ DSO%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_SH_PSHA %d Ð½Ðµ Ñƒ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñ– -32..32%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_SH_PSHL %d Ð½Ðµ Ñƒ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñ– -32..32%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s, 0x%lx%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ðµ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ðµ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¾ÑŽ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_SH_USES Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñƒ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ 0x%x%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ� R_SH_USES%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ R_SH_USES%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸Ðº%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� COUNT%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñƒ Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� @gprel Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� @internal Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� @pcrel Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: ABI Ñ” Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¼ Ð· ABI Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ñ— ÐµÐ¼ÑƒÐ»Ñ�Ñ†Ñ–Ñ—%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ABI: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ð¾Ð´ÑƒÐ»Ñ� %s Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸ %s%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ASE: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ð¾Ð´ÑƒÐ»Ñ� %s Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸ %s%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€ Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸%B: Ð¾Ð±Ñ€Ð°Ð·Ð¸ BE8 Ñ” Ñ‡Ð¸Ð½Ð½Ð¸Ð¼Ð¸ Ð»Ð¸ÑˆÐµ Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– big-endian.%B: Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: %d%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CALL15 Ñƒ 0x%lx Ð½Ðµ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CALL16 Ñƒ 0x%lx Ð½Ðµ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� LO16 Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð´Ð»Ñ� %s Ñƒ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ br (%s) Ð´Ð¾ Â«%sÂ» Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» Ð· Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¾Ð¼ 0x%lx (> 0x1000000).%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ br Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ». Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ñ�ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð¹Ñ‚ÐµÑ�Ñ� brl Ð°Ð±Ð¾ Ð½ÐµÐ¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ�Ð¼.%B: Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ° Ñ�Ñ‚Ð¸Ñ�Ð½ÑƒÑ‚Ð¸Ñ… Ð´Ð²Ñ–Ð¹ÐºÐ¾Ð²Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² Alpha Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð°.
-   Ð¡ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð¹Ñ‚ÐµÑ�Ñ� Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ�Ð¼Ð¸ ÐºÐ¾Ð¼Ð¿Ñ–Ð»Ñ�Ñ‚Ð¾Ñ€Ð° Ð°Ð±Ð¾ objZ Ð´Ð»Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð½ÐµÑ�Ñ‚Ð¸Ñ�Ð½ÐµÐ½Ð¸Ñ… Ð´Ð²Ñ–Ð¹ÐºÐ¾Ð²Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð².%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð¸ %s Ñ‚Ð° %s.%B: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ñ– Ð´Ð°Ð½Ñ– Ð¿Ð¾Ð»Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñƒ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð³Ñ€ÑƒÐ¿: 0x%lx%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð´Ð¾Ð´Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» %s%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´ÐµÑ�ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ñ€Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� GOT: ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ð· 8- Ð°Ð±Ð¾ 16-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ > %d%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� GOT: ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ð· 8-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ > %d%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� GOT Ñƒ 0x%lx Ñ” Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¼ Ñƒ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ð°Ñ…%B: Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð° IMPORT AS Ð´Ð»Ñ� %s Ð¿Ñ€Ð¸Ñ…Ð¾Ð²ÑƒÑ” Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŽ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ñƒ IMPORT AS%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ð½Ð°Ð±Ð¾Ñ€Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ Ñ†ÑŒÐ¾Ð³Ð¾ Ð¼Ð¾Ð´ÑƒÐ»Ñ� Ð½Ð°Ð±Ð¾Ñ€Ð°Ð¼ ÐºÐ¾Ð¼Ð°Ð½Ð´ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ–Ð²%B: Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¾ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: %d%B: Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑƒ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ– Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ�%B: Ð½ÐµÐ´Ð¾Ñ�Ñ‚Ð°Ñ‚Ð½ÑŒÐ¾ Ð¼Ñ–Ñ�Ñ†Ñ� Ð´Ð»Ñ� Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑ–Ð² Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸, Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· -N%B: Ð·Ð° Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾ÑŽ STT_REGISTER Ð¼Ð¾Ð¶Ð½Ð° Ð¾Ð³Ð¾Ð»Ð¾ÑˆÑƒÐ²Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸ %%g[2367]%B: Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹, Ð°Ð»Ðµ Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ (0x%x) Ñƒ Ð°Ñ€Ñ…Ñ–Ð²Ñ– Import Library Format%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s (%d) Ñƒ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ñ–Ð¹ Ð²ÐµÑ€Ñ�Ñ–Ñ— Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾.
-%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð¼Ñƒ ELF (EM: %d)%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ SB, Ð°Ð»Ðµ __c6xabi_DSBT_BASE Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾%B: Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ ÐºÐ¾Ð´ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ TLS Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð¸ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%B: Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ� TLS Ð· %s Ð´Ð¾ %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ñƒ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» Ð·Ð°Ð·Ð½Ð°Ð»Ð¾ Ð½ÐµÐ²Ð´Ð°Ñ‡Ñ–%B: Ð¿ÐµÑ€ÑˆÐ¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ñƒ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ñ– PT_DYNAMIC Ð½Ðµ Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¾Ð¼ .dynamic%B: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� (%s) Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– (%A)
-)%B: Ð·Ð°Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð²: %d (>= %d)%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÑƒÐ²Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: Ñ—Ñ…Ð½Ñ– Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¸ Ð½Ðµ Ñ” Ð¾Ð´Ð½Ð°ÐºÐ¾Ð²Ð¸Ð¼Ð¸%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÑƒÐ²Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: Ñ—Ñ…Ð½Ñ– Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¸ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñ–%B: Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�; %x%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¾Ð±Ð¾Ð²â€™Ñ�Ð·ÐºÐ¾Ð²Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° EABI %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d
+  Ð¾Ð±â€™Ñ”ÐºÑ‚ Ð²ÐµÑ€Ñ�Ñ–Ñ— 10/32, %s, Ð½Ðµ Ð¿Ð¾Ð²Ð¸Ð½ÐµÐ½ Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� PIC%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½ÐµÐ¼Ð°Ñ” PLT Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½ÐµÐ¼Ð°Ñ” Ð½Ñ– PLT, Ð½Ñ– GOT Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– %s Ñ” Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Â«%sÂ», Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾, Ð°Ð´Ñ€ÐµÑ�Ð½Ð° Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ° Ð¾Ð³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ�?%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ–Ð· Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾ÑŽ Ð²Ð¸Ð´Ð¸Ð¼Ñ–Ñ�Ñ‚ÑŽ. ÐœÐ¾Ð¶Ð»Ð¸Ð²Ð¾, Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ð¾Ð³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ–?%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð»Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ: Â«%sÂ»%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», Ñ�ÐºÐ¸Ð¹ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð¿Ð¾Ð·Ð° Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¾ÑŽ. ÐœÐ¾Ð¶Ð»Ð¸Ð²Ð¾, Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ð¾Ð³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ–?%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð±ÐµÐ· Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð¾Ð³Ð¾ GOT%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼, %d, Ñ‰Ð¾Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼, %d, Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»:
+  Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ñ�Ð»Ñ–Ð´ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ñƒ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð¼Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–; Ð¿ÐµÑ€ÐµÐºÐ¾Ð¼Ð¿Ñ–Ð»ÑŽÐ¹Ñ‚Ðµ Ð· -fPIC%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� !samegp Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð±ÐµÐ· .prologue: %s%B: %A Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ñ… Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…%B: %A Ñ” Ð½ÐµÐ²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¼%B: %A Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð°Ð´Ñ€ÐµÑ�Ñƒ Ð·Ð° ÐºÑ–Ð½Ñ†ÐµÐ¼ Ñ‚ÐµÐºÑ�Ñ‚Ð¾Ð²Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ%B: %A+%#Lx: Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð´Ð»Ñ� INHERIT%B: %A+0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¾Ñ— Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ—%B: %A+0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� LITERAL Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¾Ñ— Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ—%B: %A: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: 0x%lx > 0xffff%B: %s Ð½Ðµ Ñ” Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¸Ð¼%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Â«%sÂ» Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�Ðº Ð´Ð¾ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ‚Ð° Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð´Ð»Ñ� Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%B: %s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾Ñ— Ð²ÐµÑ€Ñ�Ñ–Ñ— %d%B: %s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð²ÐµÑ€Ñ�Ñ–Ñ�, %u (Ð¼Ð°ÐºÑ�Ð¸Ð¼ÑƒÐ¼ â€” %d)%B: %s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: 0x%lx > 0xffff'%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Â«%sÂ» Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�Ðº Ð´Ð¾ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ‚Ð° Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð´Ð»Ñ� Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÑƒ --in-implib Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐº Secure Gateway.%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� .gnu.version_d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� .gnu.version_r%B: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¿Ñ–Ð´Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð° .got Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” 64ÐºÐ‘ (Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ â€” %d)%B: .opd Ð½Ðµ Ñ” Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¸Ð¼ Ð¼Ð°Ñ�Ð¸Ð²Ð¾Ð¼ Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² opd%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» .preinit_array Ñƒ DSO%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» .rsrc%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ .rsrc%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_SH_PSHA %d Ð½Ðµ Ñƒ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñ– -32..32%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_SH_PSHL %d Ð½Ðµ Ñƒ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñ– -32..32%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s, 0x%lx%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ðµ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ðµ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¾ÑŽ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_SH_USES Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñƒ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ 0x%x%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_V850_LONGCALL Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñƒ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ 0x%x%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_V850_LONGCALL Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñ– Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ—%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_V850_LONGCALL Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_V850_LONGCALL Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� 0x%lx%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_V850_LONGJUMP Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñƒ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ 0x%x%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_V850_LONGJUMP Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñ– Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ—%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_V850_LONGJUMP Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ� R_SH_USES%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ R_SH_USES%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸Ðº%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� COUNT%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñƒ Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� @gprel Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� @internal Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� @pcrel Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: ABI Ñ” Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¼ Ð· ABI Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ñ— ÐµÐ¼ÑƒÐ»Ñ�Ñ†Ñ–Ñ—%B: ABI Ñ” Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¼ Ñ–Ð· Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾ÑŽ ÐµÐ¼ÑƒÐ»Ñ�Ñ†Ñ–Ñ”ÑŽ:
+  Ñ†Ñ–Ð»ÑŒ ÐµÐ¼ÑƒÐ»Ñ�Ñ†Ñ–Ñ—, Â«%sÂ», Ð½Ðµ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ” Â«%sÂ»%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ABI: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ð¾Ð´ÑƒÐ»Ñ� %s Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸ %s%B: Ð²ÐµÑ€Ñ�Ñ–Ñ� ABI %ld Ñ” Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾ÑŽ Ð· Ð²ÐµÑ€Ñ�Ñ–Ñ”ÑŽ ABI %ld Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñƒ%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ASE: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ð¾Ð´ÑƒÐ»Ñ� %s Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸ %s%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€ Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸%B: Ð¾Ð±Ñ€Ð°Ð·Ð¸ BE8 Ñ” Ñ‡Ð¸Ð½Ð½Ð¸Ð¼Ð¸ Ð»Ð¸ÑˆÐµ Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– big-endian.%B: Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: %d%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ: Â«MainÂ» Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ Ñƒ %s, Ð° Ð½Ðµ Ñƒ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ñƒ Ð°Ð´Ñ€ÐµÑ�Ñƒ %s
+%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CALL15 Ñƒ 0x%lx Ð½Ðµ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CALL16 Ñƒ 0x%lx Ð½Ðµ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� LO16 Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð´Ð»Ñ� %s Ñƒ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ br (%s) Ð´Ð¾ Â«%sÂ» Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» Ð· Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¾Ð¼ 0x%lx (> 0x1000000).%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ br Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ». Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ñ�ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð¹Ñ‚ÐµÑ�Ñ� brl Ð°Ð±Ð¾ Ð½ÐµÐ¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ�Ð¼.%B: Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ° Ñ�Ñ‚Ð¸Ñ�Ð½ÑƒÑ‚Ð¸Ñ… Ð´Ð²Ñ–Ð¹ÐºÐ¾Ð²Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² Alpha Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð°.
+   Ð¡ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð¹Ñ‚ÐµÑ�Ñ� Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ�Ð¼Ð¸ ÐºÐ¾Ð¼Ð¿Ñ–Ð»Ñ�Ñ‚Ð¾Ñ€Ð° Ð°Ð±Ð¾ objZ Ð´Ð»Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð½ÐµÑ�Ñ‚Ð¸Ñ�Ð½ÐµÐ½Ð¸Ñ… Ð´Ð²Ñ–Ð¹ÐºÐ¾Ð²Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð².%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð¸ %s Ñ‚Ð° %s.%B: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ Ð´Ð°Ð½Ð¸Ñ… (%lx) Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¼Ñ–Ñ�Ñ†Ñ�, Ñ�ÐºÐµ Ð»Ð¸ÑˆÐ¸Ð»Ð¾Ñ�Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– (%lx)%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ� EF_OR1K_NODELAY Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ñ– Ð´Ð°Ð½Ñ– Ð·Ð°Ð²ÐµÑ€ÑˆÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð·Ð° ÐºÑ–Ð½Ñ†ÐµÐ¼ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ.%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ Â«%sÂ»; Ð¿Ð¾Ñ‡Ð°Ñ‚Ð¾Ðº %s Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ Ñƒ Ñ€Ð°Ð½Ñ–ÑˆÐµ Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð»
+%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: search_nds32_elf_blank Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»Ñ�Ñ” Ð¿Ñ€Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð²ÑƒÐ·Ð¾Ð»
+%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð´Ð¾Ð´Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» %s%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð·Ð²â€™Ñ�Ð·ÐºÑ–Ð² Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´ÐµÑ�ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ñ€Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° GAS: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ� PTB Ð· R_SH_PT_16%B: Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– GNU_MBIN Â«%AÂ» Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒÑ�Ñ� Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð¿Ð¾Ð»Ðµ sh_info: %d%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� GOT: ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ð· 8- Ð°Ð±Ð¾ 16-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ > %d%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� GOT: ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ð· 8-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ > %d%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� GOT Ñƒ 0x%lx Ñ” Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¼ Ñƒ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ð°Ñ…%B: Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð° IMPORT AS Ð´Ð»Ñ� %s Ð¿Ñ€Ð¸Ñ…Ð¾Ð²ÑƒÑ” Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŽ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ñƒ IMPORT AS%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñ–Ð² Ð²ÐµÐºÑ‚Ð¾Ñ€Ñ–Ð² ISR Ñ–Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ– Ñ” %u-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¼Ð¸, Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ñ– Ñ” %u-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¼Ð¸%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ð½Ð°Ð±Ð¾Ñ€Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ Ñ†ÑŒÐ¾Ð³Ð¾ Ð¼Ð¾Ð´ÑƒÐ»Ñ� Ð½Ð°Ð±Ð¾Ñ€Ð°Ð¼ ÐºÐ¾Ð¼Ð°Ð½Ð´ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ–Ð²%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñ‡ÐµÑ€ÐµÐ· Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½ÑŽ Ð½ÐµÐ¿Ð¾Ñ�Ð»Ñ–Ð´Ð¾Ð²Ð½Ñ–Ñ�Ñ‚ÑŒ Ð´Ð»Ñ� Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�
+ Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ¾Ð¼ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð°: ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾: 0x%lx%08lx != Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð¾: 0x%lx%08lx
+%B: ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¾ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: %d%B: Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¾ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð¿Ð¾Ð»Ðµ sh_link (%d) Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð· Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ %d%B: Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð° LOCAL: Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€ $%ld Ð½Ðµ Ñ” Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¼ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¾Ð¼. ÐŸÐµÑ€ÑˆÐ¸Ð¼ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¼ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¾Ð¼ Ñ” $%ld.%B: Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð´ÐµÑ�ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ñ€Ñ–Ð² Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ñ” NULL Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð·Ð°Ñ�Ñ‚Ð¾Ñ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%B: Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑƒ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ– Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ�%B: Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑƒ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ– Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ�%B: Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ðµ OMIT_FP Ñƒ %A.%B: Ð½ÐµÐ¼Ð°Ñ” Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ð´Ð»Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¾ÑŽ %d Ð±Ð°Ð¹Ñ‚Ñ–Ð²
+%B: Ð½ÐµÐ¼Ð°Ñ” Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ð´Ð»Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ� Ð½Ð°Ð·Ð²Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s
+%B: Ð½ÐµÐ¼Ð°Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð²ÐµÑ€Ñ�Ñ–Ñ— Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð· Ð²ÐµÑ€Ñ�Ñ–Ñ”ÑŽ Â«%sÂ»%B: Ð½ÐµÐ´Ð¾Ñ�Ñ‚Ð°Ñ‚Ð½ÑŒÐ¾ Ð¿Ð°Ð¼'Ñ�Ñ‚Ñ– Ð´Ð»Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ� Ð¼Ñ–Ñ�Ñ†Ñ� Ð´Ð»Ñ� %lu Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²%B: Ð½ÐµÐ´Ð¾Ñ�Ñ‚Ð°Ñ‚Ð½ÑŒÐ¾ Ð¼Ñ–Ñ�Ñ†Ñ� Ð´Ð»Ñ� Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑ–Ð² Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸, Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· -N%B: Ð·Ð° Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾ÑŽ STT_REGISTER Ð¼Ð¾Ð¶Ð½Ð° Ð¾Ð³Ð¾Ð»Ð¾ÑˆÑƒÐ²Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸ %%g[2367]%B: Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹, Ð°Ð»Ðµ Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ (0x%x) Ñƒ Ð°Ñ€Ñ…Ñ–Ð²Ñ– Import Library Format%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s (%d) Ñƒ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ñ–Ð¹ Ð²ÐµÑ€Ñ�Ñ–Ñ— Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾.
+%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s Ñ‰Ðµ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾.%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð¼Ñƒ ELF (EM: %d)%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ SB, Ð°Ð»Ðµ __c6xabi_DSBT_BASE Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾%B: Ñ€Ð¾Ð·Ð´Ñ–Ð» SHT_GROUP [Ñ–Ð½Ð´ÐµÐºÑ� %d] Ð½Ðµ Ð¼Ð°Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² SHF_GROUP%B: Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ ARMv8-M Ñ– Ð½Ð¾Ð²Ñ–ÑˆÐ¸Ñ… Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€.%B: Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ ÐºÐ¾Ð´ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ TLS Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð¸ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%B: Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸ TLS Ð½Ðµ Ñ” Ñ�ÑƒÑ�Ñ–Ð´Ð½Ñ–Ð¼Ð¸:%B: Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ� TLS Ð· %s Ð´Ð¾ %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ñƒ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» Ð·Ð°Ð·Ð½Ð°Ð»Ð¾ Ð½ÐµÐ²Ð´Ð°Ñ‡Ñ–%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� TOC Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%x Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», Ñ�ÐºÐ¸Ð¹ Ð½ÐµÐ¼Ð°Ñ” Ð·Ð°Ð¿Ð¸Ñ�Ñƒ Ñƒ TOC%B: Ð¿ÐµÑ€ÑˆÐ¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ñƒ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ñ– PT_DYNAMIC Ð½Ðµ Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¾Ð¼ .dynamic%B: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� (%s) Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– (%A)
+)%B: Ð·Ð°Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð²: %d (>= %d)%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÑƒÐ²Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: Ñ—Ñ…Ð½Ñ– Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¸ Ð½Ðµ Ñ” Ð¾Ð´Ð½Ð°ÐºÐ¾Ð²Ð¸Ð¼Ð¸%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÑƒÐ²Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: Ñ—Ñ…Ð½Ñ– Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¸ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñ–%B: Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�; %x%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° %s%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¾Ð±Ð¾Ð²â€™Ñ�Ð·ÐºÐ¾Ð²Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° ARC %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¾Ð±Ð¾Ð²â€™Ñ�Ð·ÐºÐ¾Ð²Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° EABI %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d
 %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñƒ Ñ„Ð°Ð¹Ð»Ñ– a.out.adobe: %x
-%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° .directive: %s%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð° Ð½Ð°Ð·Ð²Ð° Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�; %x%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�; %x%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ (0x%x) Ñƒ Ð°Ñ€Ñ…Ñ–Ð²Ñ– Import Library Format%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ÐºÐ»Ð°Ñ� Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… %d Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s Â«%sÂ»%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ð¼Ð¾ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ IMAGE_SCN_MEM_NOT_PAGED Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %s%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Thumb BLX Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–ÑŽ Arm Â«%sÂ».%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Â«%sÂ», %u, Ð¼ÐµÐ½ÑˆÐ¸Ð¹ Ð·Ð° Ð¹Ð¾Ð³Ð¾ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ„ÑƒÐ½ÐºÑ†Ñ–ÑŽ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°, Â«%sÂ»%B: Ñ�Ð¸Ð¼Ð²Ð¾Ð» XMC_TC0 Â«%sÂ» Ñ” ÐºÐ»Ð°Ñ�Ð¾Ð¼ %d, Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Â«%sÂ» Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�Ðº Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ FDPIC, Ñ‚Ð°Ðº Ñ– Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð´Ð»Ñ� Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Â«%sÂ» Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�Ðº Ð´Ð¾ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ‚Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ FDPIC%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Â«%sÂ» Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�Ðº Ð´Ð¾ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ñ‚Ð°Ðº Ñ– Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð´Ð»Ñ� Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%B: Â«%sÂ» Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½Ð¾Ð¼ÐµÑ€Ð¸ Ñ€Ñ�Ð´ÐºÑ–Ð², Ð°Ð»Ðµ Ð½Ðµ Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð·Ð°Ð²ÐµÑ€ÑˆÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ%B: Â«%sÂ» Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð°, Ð°Ð»Ðµ Ð½Ðµ Ñƒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð°Ñ… Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ�%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Â«ld -rÂ» Ð· Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸ PE MIPS Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾
-%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» XTY_ER Â«%sÂ»: ÐºÐ»Ð°Ñ� %d, Ð½Ð¾Ð¼ÐµÑ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d, Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ pair/reflo Ð¿Ñ–Ñ�Ð»Ñ� refhi
-%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (0x%lx >= 0x%lx) Ð´Ð»Ñ� Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ñƒ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð½Ð°Ð·Ð²Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Â«%sÂ»%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñƒ ihex_read_section%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñ�Ð´ÐºÑ–Ð² %lu%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ: %d%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� %s%B: Ð·Ð¼Ñ–Ð½Ð° Ñƒ gp: BRSGP %s%B: ÐºÐ»Ð°Ñ� %d, Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð¼Ð°Ñ” Ð´Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð²%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¾Ñ— Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¸, Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¾ÑŽ Ð¶ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ” 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð°%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¸ Ð· Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð², Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ñ” Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð° Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¸ Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð², Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ñ” Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð° Ð·Ñ– Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñƒ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð¼Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¸Ð¼Ð¸ Ð· -mrelocatable%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð· -mrelocatable Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¸Ð¼Ð¸ Ñƒ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð¼Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ–%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… %A Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… %A%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ…, %s%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ»
-%B: csect Â«%sÂ» Ð½Ðµ Ñƒ Ð·Ð°Ð²ÐµÑ€ÑˆÐ°Ð»ÑŒÐ½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–%B: Ñ�Ð¿Ð¾Ñ�Ñ–Ð± Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ð´Ð»Ñ� ÐžÐ¡ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ» [0x%8x] Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹%B: Ñ�Ð¿Ð¾Ñ�Ñ–Ð± Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð¾Ð³Ð¾ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹, Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¸Ð¹ Ð´Ð»Ñ� Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%sÂ» [0x%8x]%B: Ñ�Ð¿Ð¾Ñ�Ñ–Ð± Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ð´Ð»Ñ� Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ `%s' [0x%8x] Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹%B: Ñ�Ð¿Ð¾Ñ�Ñ–Ð± Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ» [0x%8x] Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹%B: dtp-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� %s%B: Ð´ÑƒÐ±Ð»Ñ–ÐºÐ°Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð¼Ð°Ñ” Ñ–Ð½ÑˆÐ¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚
+%B: OMIT_FP Ð±ÐµÐ· Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¸ÐºÐ° Ñƒ %A.%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° .directive: %s%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð° Ð½Ð°Ð·Ð²Ð° Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�; %x%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�; %x%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ (0x%x) Ñƒ Ð°Ñ€Ñ…Ñ–Ð²Ñ– Import Library Format%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ÐºÐ»Ð°Ñ� Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… %d Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s Â«%sÂ»%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ð¿ÐµÑ€ÐµÑ…Ñ–Ð´ Ð· %s Ð´Ð¾ %s%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ð¼Ð¾ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ IMAGE_SCN_MEM_NOT_PAGED Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %s%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Thumb BLX Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–ÑŽ Arm Â«%sÂ».%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Â«%sÂ», %u, Ð¼ÐµÐ½ÑˆÐ¸Ð¹ Ð·Ð° Ð¹Ð¾Ð³Ð¾ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ„ÑƒÐ½ÐºÑ†Ñ–ÑŽ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°, Â«%sÂ»%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ñ–Ð¹ Ð²ÐµÑ€Ñ�Ñ–Ñ— Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� PLT Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– thumb-1%B: Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚ XCOFF, Ñ…Ð¾Ñ‡Ð° Ð´Ð°Ð½Ñ– XCOFF Ð½Ðµ Ñ�Ñ‚Ð²Ð¾Ñ€ÑŽÑŽÑ‚ÑŒÑ�Ñ�%B: Ñ�Ð¸Ð¼Ð²Ð¾Ð» XMC_TC0 Â«%sÂ» Ñ” ÐºÐ»Ð°Ñ�Ð¾Ð¼ %d, Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d%B: __gp Ð½Ðµ Ð²ÐºÑ€Ð¸Ð²Ð°Ñ” ÐºÐ¾Ñ€Ð¾Ñ‚ÐºÐ¾Ð³Ð¾ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð° Ð´Ð°Ð½Ð¸Ñ…%B: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ� Â«%AÂ» %ld Ð· Â«%AÂ» Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¿Ð¾Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ ADDIUPC%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Â«%sÂ» Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�Ðº Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ FDPIC, Ñ‚Ð°Ðº Ñ– Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð´Ð»Ñ� Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Â«%sÂ» Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�Ðº Ð´Ð¾ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ‚Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ FDPIC%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Â«%sÂ» Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�Ðº Ð´Ð¾ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ñ‚Ð°Ðº Ñ– Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð´Ð»Ñ� Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%B: Â«%sÂ» Ñ– Ñ—Ñ— Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°ÑŽÑ‚ÑŒ Ñƒ Ñ€Ñ–Ð·Ð½Ð¸Ñ… Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð°Ñ….%B: Â«%sÂ» Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½Ð¾Ð¼ÐµÑ€Ð¸ Ñ€Ñ�Ð´ÐºÑ–Ð², Ð°Ð»Ðµ Ð½Ðµ Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð·Ð°Ð²ÐµÑ€ÑˆÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ%B: Â«%sÂ» Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð°, Ð°Ð»Ðµ Ð½Ðµ Ñƒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð°Ñ… Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ�%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½Ðµ-PLT Â«%sÂ» Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ Ñƒ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÑ†Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�, Ñ– Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ð½Ð¾Ð³Ð¾ Ð· Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° (Ñ�Ð»Ñ–Ð´ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ñ–Ð±Ñ€Ð°Ñ‚Ð¸ Ñ„Ð°Ð¹Ð» Ñ–Ð· -fPIC ?)%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Â«ld -rÂ» Ð· Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸ PE MIPS Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾
+%B: Ð½ÐµÐ¼Ð°Ñ” Ñ�Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ».%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð·Ð° ÐºÑ–Ð½Ñ†ÐµÐ¼ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ (%ld)%B: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº -0x%x Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¿Ð¾Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ð¿Ñ€Ð¸Ð¿ÑƒÑ�Ñ‚Ð¸Ð¼Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ%B: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº 0x%x Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¿Ð¾Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ð¿Ñ€Ð¸Ð¿ÑƒÑ�Ñ‚Ð¸Ð¼Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ%B: Ð°Ð´Ñ€ÐµÑ�Ð° 0x%s Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° Intel%B: Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº aout Ð²ÐºÐ°Ð·ÑƒÑ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ñƒ ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ Ð´Ð°Ð½Ð¸Ñ…: %d%B: Ñ�Ð¿Ñ€Ð¾Ð±Ð° Ð½Ð°Ð´Ñ–Ñ�Ð»Ð°Ñ‚Ð¸ Ð´Ð°Ð½Ñ– Ð½Ð° Ð½ÐµÐºÑ€Ð°Ñ‚Ð½Ñƒ Ð´Ð¾ 4 Ð°Ð´Ñ€ÐµÑ�Ñƒ 0x%lx
+%B: Ñ�Ð¿Ñ€Ð¾Ð±Ð° Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ� Ñ€Ñ�Ð´ÐºÑ–Ð² Ñ–Ð· Ð½ÐµÑ€Ñ�Ð´ÐºÐ¾Ð²Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ (Ð½Ð¾Ð¼ÐµÑ€ %d)%B: Ñ�Ð¿Ñ€Ð¾Ð±Ð° Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ�ÑƒÐ¼Ñ–Ñˆ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–Ð² FDPIC Ñ– Ð½Ðµ-FDPIC%B: Ñ�Ð¿Ñ€Ð¾Ð±Ð° Ð²Ð¸Ð¿Ð¸Ñ�Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» XTY_ER Â«%sÂ»: ÐºÐ»Ð°Ñ� %d, Ð½Ð¾Ð¼ÐµÑ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d, Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ pair/reflo Ð¿Ñ–Ñ�Ð»Ñ� refhi
+%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (%#lx >= %#lx) Ð´Ð»Ñ� Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ñƒ %#Lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð½Ð°Ð·Ð²Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Â«%sÂ»%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñƒ ihex_read_section%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñ�Ð´ÐºÑ–Ð² %lu%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ: %d%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¾Ñ�Ð½Ð¾Ð²Ð°-Ð¿Ð»ÑŽÑ�-Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñƒ: %s Ñƒ %A%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¾Ñ�Ð½Ð¾Ð²Ð°-Ð¿Ð»ÑŽÑ�-Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñƒ: (Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ) Ñƒ %A%B: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² a.out Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ%B: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– oasys Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ%B: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² a.out Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ– Ñ–Ð· Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¾ÑŽ Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ Ñ–Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸ Ñ–Ð· Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¾ÑŽ Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚Ð¸ Ð½Ð°Ð·Ð²Ñƒ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ� Ñ„Ð°Ð¹Ð»Ð° Ð· Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ %d, %d Ð±Ð°Ð¹Ñ‚Ñ–Ð²
+%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� %s%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» fdpic Ð´Ð¾ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° Ð½Ðµ-fdpic%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» Ð½Ðµ-fdpic Ð´Ð¾ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° fdpic%B: Ð·Ð¼Ñ–Ð½Ð° Ñƒ gp: BRSGP %s%B: ÐºÐ»Ð°Ñ� %d, Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð¼Ð°Ñ” Ð´Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð²%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ %s -mtune=%s Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¸Ð¼Ð¸ %s -mtune=%s%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñ�Ðº 32- Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚, Ð° %B Ñ” 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñ�Ðº 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚, Ð° %B Ñ” 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¾Ñ— Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¸, Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¾ÑŽ Ð¶ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ” 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð°%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¸ Ð· Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð², Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ñ” Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð° Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¸ Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð², Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ñ” Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð° Ð·Ñ– Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñƒ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð¼Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¸Ð¼Ð¸ Ð· -mrelocatable%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð· %s Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¸Ð¼Ð¸ Ð· %s%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð· %s Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ñƒ Ñ�ÐºÐ¸Ñ… Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½Ðµ-pic%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð· -mrelocatable Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¸Ð¼Ð¸ Ñƒ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð¼Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ–%B: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ñ– Ð´Ð°Ð½Ñ– Ð¿Ð¾Ð»Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñƒ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð³Ñ€ÑƒÐ¿: %#Lx%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… %A Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… %A%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ»
+%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� Ð´Ð¾Ð´Ð°Ð½Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² .cranges%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² .cranges%B: csect Â«%sÂ» Ð½Ðµ Ñƒ Ð·Ð°Ð²ÐµÑ€ÑˆÐ°Ð»ÑŒÐ½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–%B: Ð±ÐµÐ·Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´Ð½Ñ” Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð±ÐµÐ· Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð° Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%B: Ð±ÐµÐ·Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´Ð½Ñ” Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� GOT R_386_GOT32X Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð±ÐµÐ· Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð° Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%B: Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ñƒ LOCAL Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ Ð·Ñ– Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼Ð¸ Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð°Ñ… Ð°Ð±Ð¾ Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¸Ð¼Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼Ð¸%B: dtp-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� %s%B: Ð´ÑƒÐ±Ð»Ñ–ÐºÐ°Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð¼Ð°Ñ” Ñ–Ð½ÑˆÐ¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚
 %B: Ð´ÑƒÐ±Ð»Ñ–ÐºÐ°Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð¼Ð°Ñ” Ñ–Ð½ÑˆÐ¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€
-%B: Ð¿Ð¾Ñ€Ñ�Ð´Ð¾Ðº Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ñ” Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¼ Ð· Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ñ— ÐµÐ¼ÑƒÐ»Ñ�Ñ†Ñ–Ñ—%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð·Ð°Ð¼Ñ–Ð½Ð½Ð¸Ðº Ð´Ð»Ñ� Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Cortex-A8 Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÐ¾Ð²Ð°Ð½Ð¾ Ð·Ð° Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð¾ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð·Ð°Ð¼Ñ–Ð½Ð½Ð¸Ðº Ð´Ð»Ñ� Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Cortex-A8 Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¿Ð¾Ð·Ð° Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ð½Ð¸Ð¼ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼ (Ñ„Ð°Ð¹Ð» Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼)%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÐ° VFP11 Ð¿Ð¾Ð·Ð° Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ñƒ %08x, Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %p
-%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¾Ð±Ð¾Ð²â€™Ñ�Ð·ÐºÐ¾Ð²Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° EABI, %d%B: ÐºÐ»Ð°Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² %s Ñ” Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¼ Ð· %s%B: gp-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð½Ð° Ð¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñƒ %B Ñ–Ñ�Ð½ÑƒÑ” Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð· DSO%B: Ð¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾%B: Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ð¼Ð¾ Ð´ÑƒÐ±Ð»Ñ–ÐºÐ°Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ»
-%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ–: %d%B: Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ– Ñ‚Ð¸Ð¿Ð¸ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€. Ð’Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� â€” 0x%x. Ð’Ñ…Ñ–Ð´Ð½Ñ– Ð´Ð°Ð½Ñ– â€” 0x%x%B: Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ» Ñ” Ñ†Ð¸ÐºÐ»Ð¾Ð¼%B: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ ihex_read_section%B: Ð½Ð° Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñƒ %B Ñ–Ñ�Ð½ÑƒÑ” Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð· DSO%B: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� SHT_GROUP%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� %lu Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s (Ñ–Ð½Ð´ÐµÐºÑ� %u)%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ñ€Ñ�Ð´ÐºÐ°, %u >= %lu, Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ»%B: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð´Ð°Ð»ÐµÐºÐ¸Ð¹ Ð¿ÐµÑ€ÐµÑ…Ñ–Ð´
-%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÑ”Ð¼Ð¾ Ð¼Ð¾Ð´ÑƒÐ»ÑŒ %s Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸ %s%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ Ð· 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼ ÐºÐ¾Ð´Ð¾Ð¼%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð· 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼Ð¸ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� UltraSPARC-Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ‚Ð° HAL-Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð· Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¸Ð¼ pic Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ pic%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð·Ñ– Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð·Ñ– Ñ�Ñ‚Ð°Ð»Ð¸Ð¼ gp Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð·Ñ– Ð·Ð¼Ñ–Ð½Ð½Ð¸Ð¼ gp%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ñ– Ñ„Ð°Ð¹Ð»Ð¸ Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� 16-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ñ†Ñ–Ð»Ð¸Ñ… (-mshort), Ð° Ñ€ÐµÑˆÑ‚Ñƒ Ñ„Ð°Ð¹Ð»Ñ–Ð² â€” Ð´Ð»Ñ� 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ñ†Ñ–Ð»Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ»%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ñ– Ñ„Ð°Ð¹Ð»Ð¸ Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ (-fshort-double), Ð° Ñ–Ð½ÑˆÑ– â€” Ð´Ð»Ñ� 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ.%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ñ– Ñ„Ð°Ð¹Ð»Ð¸ Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� HCS12, Ñ–Ð½ÑˆÑ– Ð¶ â€” Ð´Ð»Ñ� HC12%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð· Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½Ðµ-pic ÐºÐ¾Ð´Ñƒ Ñƒ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Ð· Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¼ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� trap-on-NULL-dereference Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· Ð·Ð°Ñ…Ð¾Ð¿Ð»ÐµÐ½Ð½Ñ� (trapping)%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð° Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�, %A%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð° Ñƒ Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%sÂ»%B: Ð½Ð° Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñƒ %B Ñ–Ñ�Ð½ÑƒÑ” Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð· DSO%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ� XTY_LD Â«%sÂ»%B: Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ TLS Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ».%B: Ð½ÐµÐ¼Ð°Ñ” Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ð³Ñ€ÑƒÐ¿Ð¸ Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A%B: Ð½Ðµ-pic ÐºÐ¾Ð´ Ð· Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼ imm Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»%B: Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ (0x%lx) Ð´Ð»Ñ� Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ñƒ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ», Ð°Ð»Ðµ Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Ð½ÐµÐ¼Ð°Ñ” Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²%B: pc-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: pc-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ Ñ�Ð»Ð°Ð±ÐºÐ¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð¹Ð¼Ð¾Ð²Ñ–Ñ€Ð½Ð¾ Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð±ÐµÐ· -fPIC?%B: Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s:%d Ð½Ðµ Ñƒ csect%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Ð½ÐµÑ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð¸Ð¼ Ñ–Ð½Ð´ÐµÐºÑ�Ð¾Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ: %ld%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ %s, Â«%sÂ», Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%s%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ STT_GNU_IFUNC, Â«%sÂ», Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº: %d%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ STT_GNU_IFUNC Â«%sÂ» Ð½Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»Ñ�Ñ”Ñ‚ÑŒÑ�Ñ� %s%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�; Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -fPIC%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– x32 Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ %s, Â«%sÂ», Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%s%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�; Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -fPIC%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ R_386_GOTOFF Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%sÂ» Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_386_GOTOFF Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ %s, Â«%sÂ», Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ R_X86_64_GOTOFF64 Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%sÂ» Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Â«%A+0x%xÂ» Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %B %A%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ», Ð°Ð»Ðµ Ñƒ Ñ†ÑŒÐ¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð½ÐµÐ¼Ð°Ñ” Ð·Ð¼Ñ–Ñ�Ñ‚Ñƒ%B: lma %#lx Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A Ñ�ÐºÐ¾Ñ€Ð¸Ð³Ð¾Ð²Ð°Ð½Ð¾ Ð´Ð¾ %#lx%B: Ñ€Ð¾Ð·Ð´Ñ–Ð» %s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñ�Ð´ÐºÑ–Ð² Ð·Ð° Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ %ld%B: Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚Ð¸ Ñ€Ð¾Ð·Ð¿Ð¾Ð´Ñ–Ð»ÐµÐ½Ð¾ Ñƒ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ñ– %d%B: sh_link [%d] Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¼%B: sh_link Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð²Ñ–Ð´ÐºÐ¸Ð½ÑƒÑ‚Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» Â«%BÂ»%B: sh_link Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» Â«%BÂ»%B: Ñƒ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑƒ Import Library Format Ð¿Ð¾Ð»Ðµ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñ” Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼%B: Ð·Ð´Ð¾Ð³Ð°Ð´ÐºÐ° Ñ‰Ð¾Ð´Ð¾ Ð°Ð´Ñ€ÐµÑ�Ð½Ð¾Ñ— Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– ILF Ñ€Ñ�Ð´Ð¾Ðº Ð½Ðµ Ð·Ð°Ð²ÐµÑ€ÑˆÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼.B: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð´Ð¾ Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¾Ð³Ð¾ Ñ‚Ð¸Ð¿Ñƒ csect %d%B: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð´Ð¾ Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¾Ð³Ð¾ smclas %d%B: Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±ÐµÐ½ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ», Ð°Ð»Ðµ Ð¹Ð¾Ð³Ð¾ Ð½ÐµÐ¼Ð°Ñ”%B: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² (%d)%B: tp-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[12], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” .idata$5%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[1], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” .idata$2%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[1], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” .idata$4%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[9], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” __tls_used%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” .idata$6%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ .idata$6 Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ”%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ»ÐµÐ¹ÐºÑƒ ARM Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ»%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ»ÐµÐ¹ÐºÑƒ THUMB Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ»%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÑƒ VFP11 Â«%sÂ»%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» %A%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñ�Ñ‚Ð°Ð½ Ñ�Ñ‚Ð¸Ñ�ÐºÐ°Ð½Ð½Ñ� Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñ�Ñ‚Ð°Ð½ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s%B: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ»%B: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð», Â«%sÂ» Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– .opd%B: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– R_PPC64_TOCSAVE%B: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ ATN, %d, Ñƒ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ð¹ Ñ‡Ð°Ñ�Ñ‚Ð¸Ð½Ñ–%B: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð· Ð½ÐµÐ¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ð²ÐµÑ€Ñ�Ñ–Ñ—, Â«%sÂ»%B: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, %u, Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– .opd%B: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿Ñ–Ñ�Ð»Ñ� ATN%B: Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ðµ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ %s%B: Ð½ÐµÑ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ð¹ %s
-%B: Ð½ÐµÑ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� ATI, %u, Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %u%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ [%d] Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%sÂ» Ñƒ Ð³Ñ€ÑƒÐ¿Ñ– [%s]%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð°Ð±Ð¾ Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (0x%x) Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %i%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %i
-%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾: ALPHA_R_GPRELHIGH%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾: ALPHA_R_GPRELLOW%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð· Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ�Ð¾Ð¼ Â«_Â», Ð°Ð»Ðµ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð·Ð°Ð¿Ð¸Ñ� Ñ„Ð°Ð¹Ð»Ð° Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ�Ñ–Ð²%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½ÑˆÑ– Ð¿Ð¾Ð»Ñ� e_flags (0x%lx) Ð½Ñ–Ð¶ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… (0x%lx)%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð±ÐµÐ· Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ�Ð° Â«_Â», Ð°Ð»Ðµ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð·Ð°Ð¿Ð¸Ñ� Ñ„Ð°Ð¹Ð»Ð° Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð°Ð¼Ð¸ Ð· Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ�Ð°Ð¼Ð¸ Â«_Â»%B: Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ð²ÑƒÐ·Ð»Ð° Ð²ÐµÑ€Ñ�Ñ–Ñ— Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ð¸Ð¼Ð²Ð¾Ð» COMDAT Â«%sÂ» Ð½Ðµ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ” Ð½Ð°Ð·Ð²Ñ– Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ»%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ–Ð¹ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚, Ñ‚Ð°Ðº Ñ– Ñ‚Ñ€ÐµÐ±Ð°?
-%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¿Ð¾Ð´Ñ–Ð»ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%sÂ» Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð² Ð´Ð»Ñ� Â«%sÂ»%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %ld Ñƒ Ð½Ð¾Ð¼ÐµÑ€Ð°Ñ… Ñ€Ñ�Ð´ÐºÑ–Ð²%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %ld Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ñ…%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ð· Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð²%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² PIC Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸, Ñ�ÐºÑ– Ð½Ðµ Ñ” Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ PIC%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² abicalls Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· abicalls%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ð¹ Ñ�Ð¿Ð¾Ñ�Ñ–Ð± ÑƒÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ VFP11 Ð½Ðµ Ñ” Ð½ÐµÐ¾Ð±Ñ…Ñ–Ð´Ð½Ð¸Ð¼ Ð´Ð»Ñ� Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ sh_link Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ»%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° EABI, %d%B:%A%s Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸
-%B:%A: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð·Ð°Ñ�Ñ‚Ð°Ñ€Ñ–Ð»Ð¸Ð¹ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Red Hat %B:%d: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð° Ñ�ÑƒÐ¼Ð° Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² S
+%B: Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚ Ð±ÐµÐ· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .loader%B: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð¼Ñ–Ñ‚ÐºÐ¸ Ð´Ð°Ð½Ð¸Ñ… Ñƒ Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…%B: Ð¿Ð¾Ñ€Ñ�Ð´Ð¾Ðº Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ñ” Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¼ Ð· Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ñ— ÐµÐ¼ÑƒÐ»Ñ�Ñ†Ñ–Ñ—%B: Ð²Ñ…Ñ–Ð´Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ� Â«%sÂ» Ñ” Ð¿Ð¾Ñ€Ð¾Ð¶Ð½ÑŒÐ¾ÑŽ.%B: Ð²Ñ…Ñ–Ð´Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ� Â«%sÂ» Ð½Ðµ Ð²Ð¸Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ Ð´Ð°Ð½Ð¸Ñ….%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ABI Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸.%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñ�Ñ‚ÐµÐ¿Ñ–Ð½ÑŒ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� %d Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¾ÑŽ%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÑƒ STM32L4XX.%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ _ITB_BASE_%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð·Ð°Ð¼Ñ–Ð½Ð½Ð¸Ðº Ð´Ð»Ñ� Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Cortex-A8 Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÐ¾Ð²Ð°Ð½Ð¾ Ð·Ð° Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð¾ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð·Ð°Ð¼Ñ–Ð½Ð½Ð¸Ðº Ð´Ð»Ñ� Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Cortex-A8 Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¿Ð¾Ð·Ð° Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ð½Ð¸Ð¼ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼ (Ñ„Ð°Ð¹Ð» Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼)%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð·Ð°Ð¼Ñ–Ð½Ð½Ð¸Ðº Ð´Ð»Ñ� Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ 835769 Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¿Ð¾Ð·Ð° Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ð½Ð¸Ð¼ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼ (Ñ„Ð°Ð¹Ð» Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼)%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð·Ð°Ð¼Ñ–Ð½Ð½Ð¸Ðº Ð´Ð»Ñ� Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ 843419 Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¿Ð¾Ð·Ð° Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ð½Ð¸Ð¼ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼ (Ñ„Ð°Ð¹Ð» Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼)%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ð½Ð°Ð±Ð¾Ñ€Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ Ñ†ÑŒÐ¾Ð³Ð¾ Ð¼Ð¾Ð´ÑƒÐ»Ñ� Ð½Ð°Ð±Ð¾Ñ€Ð°Ð¼ ÐºÐ¾Ð¼Ð°Ð½Ð´ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ–Ð².%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚ PHDR Ð½Ðµ Ð¿Ð¾ÐºÑ€Ð¸Ð²Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð¾Ð¼ LOAD%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÐ° VFP11 Ð¿Ð¾Ð·Ð° Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚ %d Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ” Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ„Ð°Ð¹Ð»Ð° Ñ–/Ð°Ð±Ð¾ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ñƒ %08x, Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %08x
+%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ñƒ %08x, Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %p
+%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¾Ð±Ð¾Ð²â€™Ñ�Ð·ÐºÐ¾Ð²Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° EABI, %d%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d.%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÑƒ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�%B: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð´Ð¾ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ%B: ÐºÐ»Ð°Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² %s Ñ” Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¼ Ð· %s%B: gp-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð½Ð° Ð¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñƒ %B Ñ–Ñ�Ð½ÑƒÑ” Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð· DSO%B: Ð¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾%B: Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ð¼Ð¾ Ð´ÑƒÐ±Ð»Ñ–ÐºÐ°Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ»
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð½Ð°Ð·Ð²Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Â«%AÂ»%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %ld Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ñ…%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ–: %d%B: Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ– Ñ‚Ð¸Ð¿Ð¸ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€. Ð’Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� â€” 0x%x. Ð’Ñ…Ñ–Ð´Ð½Ñ– Ð´Ð°Ð½Ñ– â€” 0x%x%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ».%B: Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ» Ñ” Ñ†Ð¸ÐºÐ»Ð¾Ð¼%B: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ ihex_read_section%B: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°, Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð², %A, Ð¼Ñ–Ñ�Ñ‚Ð¸Ð² Ð´Ð°Ð½Ñ–
+%B: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°, Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ð· %d Ð´Ð¾ %d Ñ�Ð»Ñ–Ð²
+%B: Ð½Ð° Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñƒ %B Ñ–Ñ�Ð½ÑƒÑ” Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð· DSO%B: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� AVR: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CR16C: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CRIS: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� D10V: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� D30V: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Epiphany: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� FR30: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� FRV: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� IP2K: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� IQ2000: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� LM32: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� M32C: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� M32R: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� M68HC11: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� M68HC12: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MEP: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� METAG: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MMIX: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MSP430: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MSP430X: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MT: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Moxie: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� NDS32: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� OR1K: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� RL78: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� RX: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� SHT_GROUP%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� V850: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Visium: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� XGate: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� XTENSA: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� i960: %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð²Ñ…Ñ–Ð´ Ð´Ð¾ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¾Ñ— Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸: Â«%sÂ».%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� %u Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s (Ñ–Ð½Ð´ÐµÐºÑ� %u)%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: YZ lop_end (%ld) Ð½Ðµ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” ÐºÑ–Ð»ÑŒÐºÐ¾Ñ�Ñ‚Ñ– Ñ‚ÐµÑ‚Ñ€Ð°Ð´ Ð´Ð¾ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ lop_stab (%ld)
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� YZ = 1, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ YZ = %d Ð´Ð»Ñ� lop_quote
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� y=0, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ y = %d Ð´Ð»Ñ� lop_fixrx
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� z = 1 Ð°Ð±Ð¾ z = 2, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ z = %d Ð´Ð»Ñ� lop_fixo
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� z = 1 Ð°Ð±Ð¾ z = 2, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ z = %d Ð´Ð»Ñ� lop_loc
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� z = 16 Ð°Ð±Ð¾ z = 24, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ z = %d Ð´Ð»Ñ� lop_fixrx
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¿Ð¾Ð»Ñ� y Ñ– z lop_stab Ñ” Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼Ð¸, y: %d, z: %d
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð½Ð°Ð·Ð²Ñƒ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ� Ð½Ð¾Ð¼ÐµÑ€Ð° %d Ð½Ðµ Ð±ÑƒÐ»Ð¾ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ Ð´Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð½Ð¾Ð¼ÐµÑ€ Ñ„Ð°Ð¹Ð»Ð° %d, Â«%sÂ», ÑƒÐ¶Ðµ Ð·Ð´Ñ–Ð¹Ñ�Ð½ÐµÐ½Ð¾ Ð²Ñ…Ñ–Ð´ Ñ�Ðº Ñƒ Â«%sÂ»
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð´Ð»Ñ� $255 Ð½Ðµ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” Â«MainÂ»
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ð¼ Ð±Ð°Ð¹Ñ‚Ð¾Ð¼ Ñ�Ð»Ð¾Ð²Ð° Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð° Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ 0 Ð°Ð±Ð¾ 1, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ Ð¶ %d Ð´Ð»Ñ� lop_fixrx
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: lop_end Ð½Ðµ Ñ” Ð¾Ñ�Ñ‚Ð°Ð½Ð½Ñ–Ð¼ Ð·Ð°Ð¿Ð¸Ñ�Ð¾Ð¼ Ñƒ Ñ„Ð°Ð¹Ð»Ñ–
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� lopcode, Â«%dÂ»
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ñ– Ð´Ð°Ð½Ñ– Ð¿Ð¾Ð»Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñƒ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð³Ñ€ÑƒÐ¿: %#Lx%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ».%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ�Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ».%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð´Ð»Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ %ld: 0x%lx%08lx
+%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ñ€Ñ�Ð´ÐºÐ°, %u >= %lu, Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ»%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»
+%B: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð´Ð°Ð»ÐµÐºÐ¸Ð¹ Ð¿ÐµÑ€ÐµÑ…Ñ–Ð´
+%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð²; 0x%lx > 0xffff%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÑ”Ð¼Ð¾ Ð¼Ð¾Ð´ÑƒÐ»ÑŒ %s Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸ %s%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ Ð· 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼ ÐºÐ¾Ð´Ð¾Ð¼%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð· 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼Ð¸ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� UltraSPARC-Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ‚Ð° HAL-Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð· Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¸Ð¼ pic Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ pic%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð·Ñ– Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð·Ñ– Ñ�Ñ‚Ð°Ð»Ð¸Ð¼ gp Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð·Ñ– Ð·Ð¼Ñ–Ð½Ð½Ð¸Ð¼ gp%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ñ– Ñ„Ð°Ð¹Ð»Ð¸ Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� 16-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ñ†Ñ–Ð»Ð¸Ñ… (-mshort), Ð° Ñ€ÐµÑˆÑ‚Ñƒ Ñ„Ð°Ð¹Ð»Ñ–Ð² â€” Ð´Ð»Ñ� 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ñ†Ñ–Ð»Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ»%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ñ– Ñ„Ð°Ð¹Ð»Ð¸ Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ (-fshort-double), Ð° Ñ–Ð½ÑˆÑ– â€” Ð´Ð»Ñ� 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ.%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ñ– Ñ„Ð°Ð¹Ð»Ð¸ Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� HCS12, Ñ–Ð½ÑˆÑ– Ð¶ â€” Ð´Ð»Ñ� HC12%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð· Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½Ðµ-pic ÐºÐ¾Ð´Ñƒ Ñƒ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Ð· Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¼ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� trap-on-NULL-dereference Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· Ð·Ð°Ñ…Ð¾Ð¿Ð»ÐµÐ½Ð½Ñ� (trapping)%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð° Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�, %A%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð° Ñƒ Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%sÂ»%B: Ð½Ð° Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñƒ %B Ñ–Ñ�Ð½ÑƒÑ” Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð· DSO%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ� XTY_LD Â«%sÂ»%B: Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ TLS Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ».%B: Ð½ÐµÐ¼Ð°Ñ” Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ð³Ñ€ÑƒÐ¿Ð¸ Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A%B: Ð½ÐµÐ¼Ð°Ñ” Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð², Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” 0
+%B: Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ð´Ð»Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�%B: Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ ÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ñ… Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² Ð³Ñ€ÑƒÐ¿Ð¸%B: Ð½Ðµ-pic ÐºÐ¾Ð´ Ð· Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼ imm Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»%B: Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ (%#lx) Ð´Ð»Ñ� Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ñƒ %#Lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ», Ð°Ð»Ðµ Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Ð½ÐµÐ¼Ð°Ñ” Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²%B: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¾Ð¼ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %B%B: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð¿Ð°Ð¼â€™Ñ�Ñ‚Ñ– Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ð¿Ñ€Ð¾Ð±Ð¸ Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð½Ð°Ð·Ð²Ñƒ Ð´Ð»Ñ� Ð¿Ð¾Ñ€Ð¾Ð¶Ð½ÑŒÐ¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ%B: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð´Ñ–Ð»Ñ�Ð½ÐºÐ¸ Ð¿Ð°Ð¼'Ñ�Ñ‚Ñ– Ñƒ _bfd_elf_get_property%B: Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ñ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¸ (0x%x)%B: pc-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: pc-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ Ñ�Ð»Ð°Ð±ÐºÐ¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð´Ð»Ñ� Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð¾Ð±'Ñ”ÐºÑ‚Ð° lto Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±ÐµÐ½ Ð´Ð¾Ð´Ð°Ñ‚Ð¾Ðº%B: Ð¹Ð¼Ð¾Ð²Ñ–Ñ€Ð½Ð¾ Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð±ÐµÐ· -fPIC?%B: Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–: %s Ñƒ %A%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–: (Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ) Ñƒ %A%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s:%d Ð½Ðµ Ñƒ csect%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Ð½ÐµÑ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð¸Ð¼ Ñ–Ð½Ð´ÐµÐºÑ�Ð¾Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ: %ld%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ñ… Ð´Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½ÑŒ Ð· %s Ð´Ð¾ %s Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ %s%sÂ«%sÂ», Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%s%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ STT_GNU_IFUNC, Â«%sÂ», Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº: %d%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ STT_GNU_IFUNC Â«%sÂ» Ð½Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»Ñ�Ñ”Ñ‚ÑŒÑ�Ñ� %s%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ STT_GNU_IFUNC Â«%sÂ» Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�; Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -fPIC%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ Ð°Ð±Ð¾ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� %s; Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -fPIC%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– x32 Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», Ñ�ÐºÐ¸Ð¹ Ð¼Ð¾Ð¶Ðµ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÑƒÐ²Ð°Ñ‚Ð¸Ñ�Ñ� Ð·Ð·Ð¾Ð²Ð½Ñ–, Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�; Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -fPIC%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�; Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -fPIC%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ R_386_GOTOFF Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ñ— %s Â«%sÂ» Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_386_GOTOFF Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ %s, Â«%sÂ», Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ R_X86_64_GOTOFF64 Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ñ— %s Â«%sÂ» Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_X86_64_GOTOFF64 Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ %s, Â«%sÂ», Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Â«%A+0x%xÂ» Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %B %A%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ», Ð°Ð»Ðµ Ñƒ Ñ†ÑŒÐ¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð½ÐµÐ¼Ð°Ñ” Ð·Ð¼Ñ–Ñ�Ñ‚Ñƒ%B: lma %#Lx Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A Ñ�ÐºÐ¾Ñ€Ð¸Ð³Ð¾Ð²Ð°Ð½Ð¾ Ð´Ð¾ %#Lx%B: Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñ�Ð´ÐºÑ–Ð² Ð·Ð° Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ %ld%B: Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚Ð¸ Ñ€Ð¾Ð·Ð¿Ð¾Ð´Ñ–Ð»ÐµÐ½Ð¾ Ñƒ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ñ– %d%B: Ð·Ð°Ð¿Ð¸Ñ� Ð³Ñ€ÑƒÐ¿Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² Ñ–Ð· Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ %u Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾%B: sh_link [%d] Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¼%B: sh_link Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð²Ñ–Ð´ÐºÐ¸Ð½ÑƒÑ‚Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» Â«%BÂ»%B: sh_link Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» Â«%BÂ»%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð¾ ÐºÐ¾Ñ€Ð¾Ñ‚ÐºÐ¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚ Ð´Ð°Ð½Ð¸Ñ… (0x%lx >= 0x400000)%B: Ñƒ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑƒ Import Library Format Ð¿Ð¾Ð»Ðµ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñ” Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼%B: Ð·Ð´Ð¾Ð³Ð°Ð´ÐºÐ° Ñ‰Ð¾Ð´Ð¾ Ð°Ð´Ñ€ÐµÑ�Ð½Ð¾Ñ— Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¸ Ñ�Ñ‚ÐµÐºÐ° Ñ– Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %s%B: Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– ILF Ñ€Ñ�Ð´Ð¾Ðº Ð½Ðµ Ð·Ð°Ð²ÐµÑ€ÑˆÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼.%B: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð´Ð¾Ð²Ð³Ð¸Ð¹ Ñ€Ñ�Ð´Ð¾Ðº (%d Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð², Ð¼Ð°ÐºÑ�. Ðº-Ñ‚ÑŒ â€” 65535)%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÑƒ Ð´Ð»Ñ� Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ñ— Ð´Ð¸Ð½Ð°Ð¼Ñ–ÐºÐ¸ Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾B: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð´Ð¾ Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¾Ð³Ð¾ Ñ‚Ð¸Ð¿Ñƒ csect %d%B: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð´Ð¾ Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¾Ð³Ð¾ smclas %d%B: Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±ÐµÐ½ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ», Ð°Ð»Ðµ Ð¹Ð¾Ð³Ð¾ Ð½ÐµÐ¼Ð°Ñ”%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ� Ð°Ð´Ñ€ÐµÑ�Ð¸ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%sÂ» Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%B: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� (%s) Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� (%s)%B: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð²; Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ â€” %ld
+%B: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² (%d)%B: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² %u%B: tp-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ„Ñ–ÐºÑ‚Ð¸Ð²Ð½Ð¸Ð¹ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ–Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð»%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[12], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” .idata$5%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[1], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” .idata$2%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[1], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” .idata$4%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[9], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” __tls_used%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” .idata$6%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ .idata$6 Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ”%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ»ÐµÐ¹ÐºÑƒ ARM Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ»%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÑƒ STM32L4XX Â«%sÂ»%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ»ÐµÐ¹ÐºÑƒ THUMB Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ»%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÑƒ VFP11 Â«%sÂ»%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð½Ð°Ð·Ð²Ñƒ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½ÑŒÐ¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» %A%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñ�Ñ‚Ð°Ð½ Ñ�Ñ‚Ð¸Ñ�ÐºÐ°Ð½Ð½Ñ� Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñ�Ñ‚Ð°Ð½ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Ð½Ð°Ð·Ð²Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ COMDAT%B: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ»%B: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð», Â«%sÂ» Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– .opd%B: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– R_PPC64_TOCSAVE%B: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ ATN, %d, Ñƒ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ð¹ Ñ‡Ð°Ñ�Ñ‚Ð¸Ð½Ñ–%B: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð· Ð½ÐµÐ¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ð²ÐµÑ€Ñ�Ñ–Ñ—, Â«%sÂ»%B: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, %u, Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– .opd%B: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿Ñ–Ñ�Ð»Ñ� ATN%B: Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ðµ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ %s%B: Ð½ÐµÑ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ð¹ %s
+%B: Ð½ÐµÑ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� ATI, %u, Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %u%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ�, 0x%lx%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾Ð³Ð¾ Ñ‚Ð¸Ð¿Ñƒ [%#x], Â«%sÂ»%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿, [%#x], Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ» Ñƒ Ð³Ñ€ÑƒÐ¿Ñ– [%A]%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð°Ð±Ð¾ Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Alpha: %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CR16: %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CRX: %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� I370: %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MCore: %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MN10300: %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MicroBlaze: %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� PPC: %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� PicoJava: %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� SH: %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� SPU: %d%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� VAX: %d%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (0x%x) Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», 0x%x%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ð²Ð¸ÐºÐ»Ð¸Ðº Ð±ÐµÐ· PIC IFUNC Â«%sÂ»%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %i%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %i
+%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� 0x%02x%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾: ALPHA_R_GPRELHIGH%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾: ALPHA_R_GPRELLOW%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° ÑˆÐ¸Ñ€Ð¾ÐºÐ° Ð¿Ð¾Ñ�Ð»Ñ–Ð´Ð¾Ð²Ð½Ñ–Ñ�Ñ‚ÑŒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² 0x%02X 0x%02X Ð¿Ñ–Ñ�Ð»Ñ� Ð½Ð°Ð·Ð²Ð¸ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ð¿Ð¾Ñ‡Ð¸Ð½Ð°ÑŽÑ‡Ð¸ Ð· Â«%sÂ»
+%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— %s, Ñ…Ð¾Ñ‡Ð° Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— %s%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð· Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ�Ð¾Ð¼ Â«_Â», Ð°Ð»Ðµ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð·Ð°Ð¿Ð¸Ñ� Ñ„Ð°Ð¹Ð»Ð° Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ�Ñ–Ð²%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½ÑˆÑ– Ð¿Ð¾Ð»Ñ� e_flags (%#x) Ð½Ñ–Ð¶ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… (%#x)%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½ÑˆÑ– Ð¿Ð¾Ð»Ñ� e_flags (0x%lx) Ð½Ñ–Ð¶ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… (0x%lx)%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½ÑˆÑ– Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñ– Ð¿Ð¾Ð»Ñ� e_flags (0x%lx) Ð½Ñ–Ð¶ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… (0x%lx)%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ—, Ñ�ÐºÑ– Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ– Ñ–Ð· Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ�Ð¼Ð¸, Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¸Ð¼Ð¸ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ…%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð±ÐµÐ· Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ�Ð° Â«_Â», Ð°Ð»Ðµ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð·Ð°Ð¿Ð¸Ñ� Ñ„Ð°Ð¹Ð»Ð° Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð°Ð¼Ð¸ Ð· Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ�Ð°Ð¼Ð¸ Â«_Â»%B: Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸Ðº Ð²ÐµÑ€Ñ�Ñ–Ñ— (%ld) Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸ÐºÐ¾Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ (%ld)%B: Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ð²ÑƒÐ·Ð»Ð° Ð²ÐµÑ€Ñ�Ñ–Ñ— Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s%B: Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð²Ð¸Ð´Ð¸Ð¼Ñ–Ñ�Ñ‚ÑŒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ».%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ„Ð°Ð¹Ð» core Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð¾%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %A: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð½Ð¾Ð¼ÐµÑ€Ð° Ñ€Ñ�Ð´ÐºÐ°: 0x%lx > 0xffff%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %s Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð¾ 0x%lx.%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð¾ 0x%x Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð½Ð¾Ð¼ÐµÑ€Ð° Ñ€Ñ�Ð´ÐºÐ°: 0x%lx > 0xffff%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ð¸Ð¼Ð²Ð¾Ð» COMDAT Â«%sÂ» Ð½Ðµ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ” Ð½Ð°Ð·Ð²Ñ– Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ»%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ–Ð¹ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚ Ð·Ð° vaddr=%#Lx, Ñ‚Ð°Ðº Ñ– Ñ‚Ñ€ÐµÐ±Ð°?%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÑƒ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ñ–Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸.%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº GOT %ld Ð´Ð¾ Â«%sÂ» Ð½Ðµ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ” Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð¼Ñƒ Ð´Ð¾Ð´Ð°Ð½ÐºÑƒ GOT %ld%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ– Ð²ÐµÑ€Ñ�Ñ–Ñ— elf, %s Ñ‚Ð° %s.%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ–Ñ�Ñ‚ÑŒ ASE Ð¼Ñ–Ð¶ e_flags Ñ– .MIPS.abiflags%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ–Ñ�Ñ‚ÑŒ ABI FP Ð¼Ñ–Ð¶ .gnu.attributes Ñ– .MIPS.abiflags%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ–Ñ�Ñ‚ÑŒ ISA Ð¼Ñ–Ð¶ e_flags Ñ– .MIPS.abiflags%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ–Ñ�Ñ‚ÑŒ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½ÑŒ ISA Ð¼Ñ–Ð¶ e_flags Ñ– .MIPS.abiflags%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ»%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ñ�Ñ‚Ð°Ñ€Ñ–ÑˆÑƒ Ð²ÐµÑ€Ñ�Ñ–ÑŽ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð°. Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¸Ð¼ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð¼ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð².%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº PLT %d Ð´Ð¾ Â«%sÂ» Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñƒ Ð¿Ð¾Ð»Ñ– flags2 .MIPS.abiflags (0x%lx)%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¿Ð¾Ð´Ñ–Ð»ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%sÂ» Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ° R_NDS32_25_ABS_RELA Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð°.%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ð¼Ð¾Ð³Ð° Ñ‰Ð¾Ð´Ð¾ 0xffff Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ð±ÐµÐ· Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ�%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð² Ð´Ð»Ñ� Â«%sÂ»%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– Ð½Ð¾Ð¼ÐµÑ€Ð° Ñ€Ñ�Ð´ÐºÐ° %d%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %ld Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ñ…%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ 0x%lx Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– Ð½Ð¾Ð¼ÐµÑ€Ð° Ñ€Ñ�Ð´ÐºÐ° %d%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: isymMax (%ld) Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” ifdMax (%d)
+%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ð· Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð²%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² PIC Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸, Ñ�ÐºÑ– Ð½Ðµ Ñ” Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ PIC%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² abicalls Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· abicalls%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð·Ð°Ñ†Ð¸ÐºÐ»ÐµÐ½Ñ–Ñ�Ñ‚ÑŒ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾Ñ�Ñ‚ÐµÐ¹ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŒ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² â€” Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ð¼Ð¾ Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŽ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %u%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² â€” Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ð¼Ð¾ Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŽ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %u%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� SDA_BASE.%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð° %#Lx Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ð¹ Ñ�Ð¿Ð¾Ñ�Ñ–Ð± ÑƒÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ STM32L4XX Ð½Ðµ Ñ” Ð½ÐµÐ¾Ð±Ñ…Ñ–Ð´Ð½Ð¸Ð¼ Ð´Ð»Ñ� Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ð¹ Ñ�Ð¿Ð¾Ñ�Ñ–Ð± ÑƒÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ VFP11 Ð½Ðµ Ñ” Ð½ÐµÐ¾Ð±Ñ…Ñ–Ð´Ð½Ð¸Ð¼ Ð´Ð»Ñ� Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ sh_link Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ»%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¾ÑŽ Ð´Ð»Ñ� mmo, Ñ—Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” 65535 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ñ�Ð»Ð¾Ð²Ð°: %d. Ð‘ÑƒÐ´Ðµ Ð²Ð¸Ð¿ÑƒÑ‰ÐµÐ½Ð¾ Ð»Ð¸ÑˆÐµ Â«MainÂ».
+%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ GOT.%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Ð¼Ð°Ð»Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…. Ð—Ð°Ð¿Ð¸Ñ�: {%d, %d, %d}, Ð°Ð´Ñ€ÐµÑ�Ð° = 0x%x, Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� = 0x%x.%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° EABI, %d%B: Ð½Ðµ Ð±ÑƒÐ´Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� TLS Ñƒ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð¼Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ–%B:%A%s Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸
+%B:%A: %s Ñ– %s Ð¼Ð°ÑŽÑ‚ÑŒ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ‚Ð¸ Ñƒ Ð¾Ð´Ð½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…%B:%A: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð·Ð°Ñ�Ñ‚Ð°Ñ€Ñ–Ð»Ð¸Ð¹ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Red Hat %B:%A: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð» %s, Ñ�ÐºÐ¸Ð¹ Ð±ÑƒÐ»Ð¾ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð¾ Ð·Ð°Ñ�Ð¾Ð±Ð¾Ð¼ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ñ�Ð¼Ñ–Ñ‚Ñ‚Ñ�.%B:%A: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¸Ð¼ --gc-keep-exported.%B:%A: Ñƒ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– %s Ð½ÐµÐ¼Ð°Ñ” Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ð³Ð¾ %s%B:%A: Ð·Ð°Ð¿Ð¸Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– %s Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾ Ð½Ð° Ð¼ÐµÐ¶Ñƒ Ñ�Ð»Ð¾Ð²Ð° Ð²Ñ�ÐµÑ€ÐµÐ´Ð¸Ð½Ñ– Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ–%B:%A: Ð·Ð°Ð¿Ð¸Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– %s Ð¿Ð¾Ð·Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÐµÑŽ%B:%d: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð° Ñ�ÑƒÐ¼Ð° Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² S
 %B:%d: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² S
+%B:%d: ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð±Ð°Ð¹Ñ‚Ñ–Ð² %d Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð¼Ð°Ð»Ð¾ÑŽ
 %B:%d: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñƒ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Intel%B:%u: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð° Ñ�ÑƒÐ¼Ð° Ñƒ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Intel (Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� %u, Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ %u)%B:%u: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ð·Ð°Ð¿Ð¸Ñ�Ñƒ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð¸ Ñƒ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Intel%B:%u: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ð·Ð°Ð¿Ð¸Ñ�Ñƒ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ñ— Ð»Ñ–Ð½Ñ–Ð¹Ð½Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð¸ Ñƒ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Intel%B:%u: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ñ— Ð»Ñ–Ð½Ñ–Ð¹Ð½Ð¾Ñ— Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð¸ Ñƒ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Intel%B:%u: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ñ— Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð¸ Ñƒ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Intel%B:%u: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ ihex %u Ñƒ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Intel%C: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Â«%sÂ» Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ–Ð½ÑˆÐ¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚
+%F%A: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ñ‚Ð¸ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€
+%F%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð·Ñ�ÑƒÐ²Ñƒ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ PC Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– PLT GOT Ð´Ð»Ñ� Â«%sÂ»
+%F%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð·Ñ�ÑƒÐ²Ñƒ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ PC Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– PLT Ð´Ð»Ñ� Â«%sÂ»
+%F%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ� Ð³Ñ–Ð»Ð¾Ðº Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– PLT Ð´Ð»Ñ� Â«%sÂ»
 %F%P: already_linked_table: %E
+%F%P: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð°Ð²Ñ‚Ð¾Ð½Ð°ÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ�: %E
+%F%P: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ñ–Ð±Ñ€Ð°Ñ‚Ð¸ Ð½Ð°ÐºÐ»Ð°Ð´Ð½Ñ– ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸: %E
+%F%P: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ñ– Ð²Ñ…Ñ–Ð´Ð½Ñ– Ð´Ð°Ð½Ñ–: %B
 %F%P: Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» STT_GNU_IFUNC Â«%sÂ» Ð· Ñ€Ñ–Ð²Ð½Ñ–Ñ�Ñ‚ÑŽ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² Ñƒ Â«%BÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð°; Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ñƒ ÐºÐ¾Ð¼Ð¿Ñ–Ð»Ñ�Ñ†Ñ–ÑŽ Ð· -fPIE Ñ– Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� -pie
+%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» .eh_frame PLT BND
+%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» PLT BND
+%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð²Ð»Ð°Ñ�Ñ‚Ð¸Ð²Ð¾Ñ�Ñ‚ÐµÐ¹ GNU
+%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» .eh_frame PLT GOT
+%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» PLT GOT
+%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸ GOT
+%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» PLT Ñ–Ð· ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¸Ð¼ IBT
+%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» .eh_frame PLT
+%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸ VxWorks
+%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸ ifunc
 %H __tls_get_addr Ð²Ñ‚Ñ€Ð°Ñ‡ÐµÐ½Ð¾ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚, Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–ÑŽ TLS Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾
 %H: Ñƒ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” __tls_get_addr, Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–ÑŽ TLS Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾.
+%H: %s Ñ‰Ð¾Ð´Ð¾ Â«%TÂ»: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° %d
+%H: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ %s Ð´Ð»Ñ� Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%TÂ» Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾
+%H: %s Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° ÑƒÑ�ÑƒÐ½ÑƒÑ‚Ð¸Ð¹ Ñƒ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ– Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð·Ð°Ð¿Ð¸Ñ� TOC
+%H: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° %d
+%H: %s Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼
+%H: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ°Ñ… Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ– PIE.
+%H: %s Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ TLS Â«%TÂ»
+%H: %s Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ Ð¿Ð¾Ð·Ð° TLS Â«%TÂ»
 %H: R_FRV_FUNCDESC Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼
 %H: R_FRV_FUNCDESC_VALUE Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼
 %H: R_FRV_GETTLSOFF Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ (call)
@@ -864,94 +1081,85 @@ X-Generator: Lokalize 1.5
 %H: R_FRV_TLSDESC_RELAX Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ ldd
 %H: R_FRV_TLSMOFFHI Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ sethi
 %H: R_FRV_TLSOFF_RELAX Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ ld
+%P: %H: Ñƒ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ Â«%TÂ» Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” nop, Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ� toc Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ (-mcmodel=small Ð´Ð»Ñ� ÐºÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ� ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°)
+%H: Ñƒ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ Â«%TÂ» Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” nop, Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ� toc Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ; Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð· -fPIC
 %H: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�
 %H: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð°Ð´Ñ€ÐµÑ�Ð½Ñƒ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÑƒ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�
+%H: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %s Ð´Ð»Ñ� Â«%sÂ» Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ %u
+%H: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %s Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ %u
+%H: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %s Ñ–Ð· Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¾ÑŽ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ”ÑŽ %x
+%H: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Ñ–Ð· Ð°Ð´Ñ€ÐµÑ�Ð½Ð¾ÑŽ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¾ÑŽ
+%H: Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ð´Ð¾Ð´Ð°Ñ‚Ð¾Ðº Ð´Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»
 %H: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ–Ð½ÑˆÐ¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚
 %H: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»: %s
+%H: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— %s Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾
 %H: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð», Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¼Ð¾Ð´ÑƒÐ»Ñ–
 %H: Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ� Ð¿Ñ€Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑƒ, Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ðµ Ð²Ð¸Ñ‰Ðµ, Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ Ñ�Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½ÐµÐ½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼ Ð´Ð¾ Â«%s+%vÂ»
+%H: Ð´Ð»Ñ� Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— %s Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— toc.
+%H: Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ %s Ñ‰Ð¾Ð´Ð¾ Â«%TÂ»
+%H: Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»
 %P%F: --relax Ñ– -r Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ�Ð½Ð¾
+%P%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŽ Ñ…ÐµÑˆÑ–Ð² ex9.it %s: %E
 %P%X: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸: %E
+%P%X: Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�, Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� IFUNC. Ð¡Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð·Ñ–Ð±Ñ€Ð°Ñ‚Ð¸ Ð· -fPIC
 %P%X: Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�, Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�.
+%P: .opd %B Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ñƒ Ð²ÐµÑ€Ñ�Ñ–Ñ— ABI %d
+%P: %B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ %s Ð´Ð»Ñ� Â«%TÂ» Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾
 %P: %B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� %s
-%P: %B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾
 %P: %B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s Ñ‰Ðµ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾
 %P: %B: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� (%s) Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� (%s)
 %P: %B: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�
+%P: %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, %d, Ð´Ð»Ñ� Â«%TÂ»
 %P: %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s
-%P: %B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ñƒ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ».
-%P: %B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Â«%AÂ».
-%P: %H: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° %d
-%P: %H: %s Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼
-%P: %H: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° ÑƒÑ�ÑƒÐ½ÑƒÑ‚Ð¸Ð¹ Ñƒ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ– Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð·Ð°Ð¿Ð¸Ñ� TOC
-%P: %H: %s Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ TLS %s
-%P: %H: %s Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ Ð¿Ð¾Ð·Ð° TLS %s
-%P: %H: Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ðµ Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… TOC Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð½Ð° Ð¾Ñ�Ð½Ð¾Ð²Ñ– Ð²Ð°ÑˆÐ¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² crt; Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· -mminimal-toc Ð°Ð±Ð¾ Ð¾Ð½Ð¾Ð²Ñ–Ñ‚ÑŒ gcc
-%P: %H: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %s Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ %u
-%P: %H: Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ð´Ð¾Ð´Ð°Ñ‚Ð¾Ðº Ð´Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»
-%P: %H: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— %s Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾
-%P: %H: Ñƒ Ñ€Ð°Ð·Ñ– Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð²Ð¸ÐºÐ»Ð¸ÐºÑ–Ð² Ð¾Ð´Ð½Ð°ÐºÐ¾Ð²Ð¸Ñ… Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ Ð´Ð»Ñ� Â«%sÂ» Ð½Ðµ Ð´Ð°Ñ�Ñ‚ÑŒ Ð·Ð¼Ð¾Ð³Ð¸ Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° TOC; Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· -mminimal-toc Ð°Ð±Ð¾ -fno-optimize-sibling-calls Ñ‡Ð¸ Ð·Ñ€Ð¾Ð±Ñ–Ñ‚ÑŒ Â«%sÂ» Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾ÑŽ (extern)
-%P: %H: Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»
+%P: %B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ñƒ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»
+%P: %B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Â«%AÂ»
 %P: %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÑƒ, Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð¾Ð¼Ñƒ %s
-%P: Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ %s Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼ Ð´Ð»Ñ� ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ� sdata4 .eh_frame%P: DW_EH_PE_datarel Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ� Ñ†Ñ–Ñ”Ñ— Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸.
+%P: Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ %s Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼ Ð´Ð»Ñ� ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ� sdata4 .eh_frame%P: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð·Ð°Ð¿Ð¸Ñ�Ñƒ .eh_frame_hdr.
+%P: .eh_frame_hdr Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° FDE, Ñ�ÐºÑ– Ð¿ÐµÑ€ÐµÐºÑ€Ð¸Ð²Ð°ÑŽÑ‚ÑŒÑ�Ñ�.
+%P: DW_EH_PE_datarel Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ� Ñ†Ñ–Ñ”Ñ— Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸.
+%P: ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ� FDE Ñƒ %B(%A) Ð¿ÐµÑ€ÐµÑˆÐºÐ¾Ð´Ð¶Ð°Ñ” Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½ÑŽ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– .eh_frame_hdr.
+%P: Ð¿Ð¾Ð´Ð°Ð»ÑŒÑˆÑ– Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ� FDE, Ñ�ÐºÐµ Ð·Ð°Ð²Ð°Ð¶Ð°Ñ” Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½ÑŽ .eh_frame_hdr, Ð¿Ñ€Ð¾Ð¿ÑƒÑ‰ÐµÐ½Ð¾.
 %P: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð¸Ð¹ Ð¼Ð°ÑˆÐ¸Ð½Ð½Ð¸Ð¹ ÐºÐ¾Ð´ ELF (%d) Ñƒ %B, Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� %d
 %P: Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼ Ð¿Ñ€Ð¸Ð¼ÑƒÑ�Ð¾Ð²Ð¾ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ bss-plt
 %P: Ð¿Ñ€Ð¸Ð¼ÑƒÑ�Ð¾Ð²Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ bss-plt Ñ‡ÐµÑ€ÐµÐ· %B
 %P: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ð¾Ð±ÑƒÐ´ÑƒÐ²Ð°Ñ‚Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Â«%sÂ»
 %P: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Â«%sÂ»
-%P: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� opd Ñƒ toc Ð´Ð»Ñ� %s
-%P: ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” Ð²Ñ–Ð´ÐºÐ»Ð°Ð´ÐµÐ½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� plt; Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÑŽÐ¹Ñ‚Ðµ LD_BIND_NOW=1 Ð°Ð±Ð¾ Ð¾Ð½Ð¾Ð²Ñ–Ñ‚ÑŒ gcc
-%P: Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð° Ð·Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð¼Ð°Ñ” Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€
+`%P: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� opd Ñƒ toc Ð´Ð»Ñ� Â«%TÂ»
+%P: ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%TÂ» Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” Ð²Ñ–Ð´ÐºÐ»Ð°Ð´ÐµÐ½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� plt; Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÑŽÐ¹Ñ‚Ðµ LD_BIND_NOW=1 Ð°Ð±Ð¾ Ð¾Ð½Ð¾Ð²Ñ–Ñ‚ÑŒ gcc
+%P: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼ Ñ‰Ð¾Ð´Ð¾ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ð³Ð¾ Â«%TÂ» Ñ” Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð¸Ð¼
 %P: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Ñƒ Ð¾Ð±Ñ‡Ð¸Ñ�Ð»ÐµÐ½Ð½Ñ– Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� %B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A
 %P: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ %B(%A); Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŽ .eh_frame_hdr Ð½Ðµ Ð±ÑƒÐ´Ðµ Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð¾.
-%P: ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ� fde Ñƒ %B(%A) Ð¿ÐµÑ€ÐµÑˆÐºÐ¾Ð´Ð¶Ð°Ñ” Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½ÑŽ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– .eh_frame_hdr.
-%P: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»
+%P: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%TÂ»
 %P: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ñƒ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° Ð´Ð¾Ð²Ð³Ð¾Ñ— Ð³Ñ–Ð»ÐºÐ¸, Â«%sÂ»
 %P: Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ñ‚Ð¾Ñ‡Ð¾Ðº Ð²Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… %B Ñ– %B
 %P: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ñ–Ñ�Ñ‚ÑŽ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾
 %P: ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸ Ð½Ðµ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°ÑŽÑ‚ÑŒ Ð¾Ð±Ñ‡Ð¸Ñ�Ð»ÐµÐ½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ
+%P: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð¼Ð°Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� st_other Ð´Ð»Ñ� Ð²ÐµÑ€Ñ�Ñ–Ñ— ABI 1
 %P: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ñ‚Ð²Ð¾Ñ€ÑŽÑ”Ð¼Ð¾ DT_TEXTREL Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�.
+%P: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‚ÐµÐºÑ�Ñ‚Ñƒ Ñ– Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¸Ñ… Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ GNU Ð¼Ð¾Ð¶Ðµ Ð¿Ñ€Ð¸Ð·Ð²ÐµÑ�Ñ‚Ð¸ Ð´Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ— Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð·Ð°Ð¿ÑƒÑ�ÐºÑƒ
 %X%C: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Â«%sÂ» Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ–Ð½ÑˆÐ¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚
+%X%H: Ð²Ð¸ÐºÐ»Ð¸Ðº @local ifunc %s
+%X%H: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÑŽÐ²Ð°Ñ‚Ð¸ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Ð¼Ñ–Ð¶ Ñ€ÐµÐ¶Ð¸Ð¼Ð°Ð¼Ð¸ ISA Ð½Ð° JALX: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð¿Ñ€Ð¸Ð¿ÑƒÑ�Ñ‚Ð¸Ð¼Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ
+%X%H: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ JALX Ð´Ð¾ Ñ‚Ð¾Ð³Ð¾ Ñ�Ð°Ð¼Ð¾Ð³Ð¾ Ñ€ÐµÐ¶Ð¸Ð¼Ñƒ ISA
+%X%H: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Ð¼Ñ–Ð¶ Ñ€ÐµÐ¶Ð¸Ð¼Ð°Ð¼Ð¸ ISA
+%X%H: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ð¿ÐµÑ€ÐµÑ…Ñ–Ð´ Ð¼Ñ–Ð¶ Ñ€ÐµÐ¶Ð¸Ð¼Ð°Ð¼Ð¸ ISA; Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ñ–Ð±Ñ€Ð°Ñ‚Ð¸ Ð· ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¸Ð¼ Ð²Ð·Ð°Ñ”Ð¼Ð½Ð¸Ð¼ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼
+%X%H: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° bss-plt -fPIC ifunc %s
+%X%P: %B(%A): Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ð·Ñ�ÑƒÐ²Ñƒ %V Ð½Ðµ Ð¼Ð°Ñ” Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�
+%X%P: %B(%A): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Â«%RÂ» Ð²Ð¸Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð¿Ñ€Ð¸Ð¿ÑƒÑ�Ñ‚Ð¸Ð¼Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ
+%X%P: %B(%A): Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Â«%RÂ» Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾
+%X%P: %B(%A): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Â«%RÂ» Ð¿Ð¾Ð²ÐµÑ€Ñ‚Ð°Ñ” Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %x
 %X%P: Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸ %A Ð½Ðµ Ð¿Ð¾Ñ‡Ð¸Ð½Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ€Ñ�Ð´ÐºÐ° ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ�.
 %X%P: Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸ %A Ñ” Ð±Ñ–Ð»ÑŒÑˆÐ¸Ð¼ Ð·Ð° Ñ€Ñ�Ð´Ð¾Ðº ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ�.
 %X%P: Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸ %A Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ�.
 %X%P: Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸, Ñ‰Ð¾ Ð½Ð°ÐºÐ»Ð°Ð´Ð°ÑŽÑ‚ÑŒÑ�Ñ�, %A Ñ– %A, Ð½Ðµ Ð¿Ð¾Ñ‡Ð¸Ð½Ð°ÑŽÑ‚ÑŒÑ�Ñ� Ð·Ð° Ð¾Ð´Ð½Ð¾ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ.
+%X%P: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ Ñ�Ñ‚ÐµÐºÐ°/lrlive: %E
+%X%P: Ð¿Ð¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‚ÐµÐºÑ�Ñ‚Ñƒ Ñ– Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¸Ñ… Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ GNU Ð¿Ñ€Ð¸Ð·Ð²ÐµÐ´Ðµ Ð´Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ— Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð·Ð°Ð¿ÑƒÑ�ÐºÑƒ
 Ð�Ð° %XÂ«%sÂ» Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» %B: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð²Ñ–Ð´ÐºÐ¸Ð½ÑƒÑ‚Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» %B
 %s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð¾Ð¼Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– toc%s Ð´ÑƒÐ±Ð»ÑŒÐ¾Ð²Ð°Ð½Ð¾
 %s Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€ÑŽÑ”Ñ‚ÑŒÑ�Ñ� Ñƒ %s
-%s Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸%s(%s): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, %ld%s: %s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: 0x%lx > 0xffff%s: 0x%v 0x%v
-%s: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ: Â«MainÂ» Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ Ñƒ %s, Ð° Ð½Ðµ Ñƒ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ñƒ Ð°Ð´Ñ€ÐµÑ�Ñƒ %s
-%s: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ Â«%sÂ»; Ð¿Ð¾Ñ‡Ð°Ñ‚Ð¾Ðº %s Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ Ñƒ Ñ€Ð°Ð½Ñ–ÑˆÐµ Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð»
-%s: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° GAS: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ� PTB Ð· R_SH_PT_16%s: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñ‡ÐµÑ€ÐµÐ· Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½ÑŽ Ð½ÐµÐ¿Ð¾Ñ�Ð»Ñ–Ð´Ð¾Ð²Ð½Ñ–Ñ�Ñ‚ÑŒ Ð´Ð»Ñ� Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�
- Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ¾Ð¼ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð°: ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾: 0x%lx%08lx != Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð¾: 0x%lx%08lx
-%s: ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¾ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: %d%s: Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð° LOCAL: Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€ $%ld Ð½Ðµ Ñ” Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¼ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¾Ð¼. ÐŸÐµÑ€ÑˆÐ¸Ð¼ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¼ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¾Ð¼ Ñ” $%ld.%s: Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑƒ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ– Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ�%s: Ð½ÐµÐ¼Ð°Ñ” Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ð´Ð»Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¾ÑŽ %d Ð±Ð°Ð¹Ñ‚Ñ–Ð²
-%s: Ð½ÐµÐ¼Ð°Ñ” Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ð´Ð»Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ� Ð½Ð°Ð·Ð²Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s
-%s: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� TLS Ñƒ %B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A, Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ð½Ðµ-TLS Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %B %A%s: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� TLS Ñƒ %B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A, Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ�Ð¼ Ð½Ðµ-TLS Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %B, %A%s: Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� TLS Ñƒ %B Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ð½Ðµ-TLS Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %B %A%s: Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� TLS Ñƒ %B Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ�Ð¼ Ð½Ðµ-TLS Ñƒ %B%s: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� TOC Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%x Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», Ñ�ÐºÐ¸Ð¹ Ð½ÐµÐ¼Ð°Ñ” Ð·Ð°Ð¿Ð¸Ñ�Ñƒ Ñƒ TOC%s: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� (%s) Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– (%s)
-)%s: Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚ XCOFF, Ñ…Ð¾Ñ‡Ð° Ð´Ð°Ð½Ñ– XCOFF Ð½Ðµ Ñ�Ñ‚Ð²Ð¾Ñ€ÑŽÑŽÑ‚ÑŒÑ�Ñ�%s: __gp Ð½Ðµ Ð²ÐºÑ€Ð¸Ð²Ð°Ñ” ÐºÐ¾Ñ€Ð¾Ñ‚ÐºÐ¾Ð³Ð¾ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð° Ð´Ð°Ð½Ð¸Ñ…%s: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð·Ð° ÐºÑ–Ð½Ñ†ÐµÐ¼ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ (%ld)%s: Ð°Ð´Ñ€ÐµÑ�Ð° 0x%s Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° Intel%s: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¾Ñ�Ð½Ð¾Ð²Ð°-Ð¿Ð»ÑŽÑ�-Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñƒ: %s Ñƒ %s%s: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¾Ñ�Ð½Ð¾Ð²Ð°-Ð¿Ð»ÑŽÑ�-Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñƒ: (Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ) Ñƒ %s%s: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ» Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² a.out Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ%s: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ» Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– oasys Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ%s: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² a.out Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ%s: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚Ð¸ Ð½Ð°Ð·Ð²Ñƒ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ� Ñ„Ð°Ð¹Ð»Ð° Ð· Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ %d, %d Ð±Ð°Ð¹Ñ‚Ñ–Ð²
-%s: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� %s%s: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» fdpic Ð´Ð¾ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° Ð½Ðµ-fdpic%s: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» Ð½Ðµ-fdpic Ð´Ð¾ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° fdpic%s: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñ�Ðº 32- Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚, Ð° %s Ñ” 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼%s: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñ�Ðº 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚, Ð° %s Ñ” 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼%s: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð· %s Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¸Ð¼Ð¸ Ð· %s%s: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð· %s Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ñƒ Ñ�ÐºÐ¸Ñ… Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½Ðµ-pic%s: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� Ð´Ð¾Ð´Ð°Ð½Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² .cranges%s: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² .cranges%s: Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ñƒ LOCAL Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ Ð·Ñ– Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼Ð¸ Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð°Ñ… Ð°Ð±Ð¾ Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¸Ð¼Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼Ð¸%s: Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚ Ð±ÐµÐ· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .loader%s: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð¼Ñ–Ñ‚ÐºÐ¸ Ð´Ð°Ð½Ð¸Ñ… Ñƒ Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…%s: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ñƒ %08x, Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %08x
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð½Ð°Ð·Ð²Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Â«%sÂ»%s: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°, Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð², %s, Ð¼Ñ–Ñ�Ñ‚Ð¸Ð² Ð´Ð°Ð½Ñ–
-%s: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°, Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ð· %d Ð´Ð¾ %d Ñ�Ð»Ñ–Ð²
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: YZ lop_end (%ld) Ð½Ðµ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” ÐºÑ–Ð»ÑŒÐºÐ¾Ñ�Ñ‚Ñ– Ñ‚ÐµÑ‚Ñ€Ð°Ð´ Ð´Ð¾ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ lop_stab (%ld)
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� YZ = 1, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ YZ = %d Ð´Ð»Ñ� lop_quote
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� y=0, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ y = %d Ð´Ð»Ñ� lop_fixrx
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� z = 1 Ð°Ð±Ð¾ z = 2, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ z = %d Ð´Ð»Ñ� lop_fixo
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� z = 1 Ð°Ð±Ð¾ z = 2, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ z = %d Ð´Ð»Ñ� lop_loc
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� z = 16 Ð°Ð±Ð¾ z = 24, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ z = %d Ð´Ð»Ñ� lop_fixrx
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¿Ð¾Ð»Ñ� y Ñ– z lop_stab Ñ” Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼Ð¸, y: %d, z: %d
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð½Ð°Ð·Ð²Ñƒ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ� Ð½Ð¾Ð¼ÐµÑ€Ð° %d Ð½Ðµ Ð±ÑƒÐ»Ð¾ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ Ð´Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð½Ð¾Ð¼ÐµÑ€ Ñ„Ð°Ð¹Ð»Ð° %d, Â«%sÂ», ÑƒÐ¶Ðµ Ð·Ð´Ñ–Ð¹Ñ�Ð½ÐµÐ½Ð¾ Ð²Ñ…Ñ–Ð´ Ñ�Ðº Ñƒ Â«%sÂ»
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð´Ð»Ñ� $255 Ð½Ðµ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” Â«MainÂ»
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ð¼ Ð±Ð°Ð¹Ñ‚Ð¾Ð¼ Ñ�Ð»Ð¾Ð²Ð° Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð° Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ 0 Ð°Ð±Ð¾ 1, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ Ð¶ %d Ð´Ð»Ñ� lop_fixrx
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: lop_end Ð½Ðµ Ñ” Ð¾Ñ�Ñ‚Ð°Ð½Ð½Ñ–Ð¼ Ð·Ð°Ð¿Ð¸Ñ�Ð¾Ð¼ Ñƒ Ñ„Ð°Ð¹Ð»Ñ–
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� lopcode, Â«%dÂ»
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð´Ð»Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ %ld: 0x%lx%08lx
-%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»
-%s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð²; 0x%lx > 0xffff%s: Ð½ÐµÐ¼Ð°Ñ” Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð², Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” 0
-%s: Ð½ÐµÐ¼Ð°Ñ” Ñ‚Ð°ÐºÐ¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%s: Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾%s: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾%s: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¾Ð¼ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %s%s: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–: %s Ñƒ %s%s: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–: (Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ) Ñƒ %s%s: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ñ… Ð´Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½ÑŒ Ð· %s Ð´Ð¾ %s Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾%s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð¾ ÐºÐ¾Ñ€Ð¾Ñ‚ÐºÐ¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚ Ð´Ð°Ð½Ð¸Ñ… (0x%lx >= 0x400000)%s: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð´Ð¾Ð²Ð³Ð¸Ð¹ Ñ€Ñ�Ð´Ð¾Ðº (%d Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð², Ð¼Ð°ÐºÑ�. Ðº-Ñ‚ÑŒ â€” 65535)%s: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð²; Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ â€” %ld
-%s: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð° Ð²ÐµÑ€Ñ�Ñ–Ñ�: %s%s: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d%s: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», 0x%x%s: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� 0x%02x%s: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° ÑˆÐ¸Ñ€Ð¾ÐºÐ° Ð¿Ð¾Ñ�Ð»Ñ–Ð´Ð¾Ð²Ð½Ñ–Ñ�Ñ‚ÑŒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² 0x%02X 0x%02X Ð¿Ñ–Ñ�Ð»Ñ� Ð½Ð°Ð·Ð²Ð¸ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ð¿Ð¾Ñ‡Ð¸Ð½Ð°ÑŽÑ‡Ð¸ Ð· Â«%sÂ»
-%s: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½ÑˆÑ– Ð¿Ð¾Ð»Ñ� e_flags (0x%lx) Ð½Ñ–Ð¶ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… (0x%lx)%s: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½ÑˆÑ– Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñ– Ð¿Ð¾Ð»Ñ� e_flags (0x%lx) Ð½Ñ–Ð¶ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… (0x%lx)%s: Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸Ðº Ð²ÐµÑ€Ñ�Ñ–Ñ— (%ld) Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸ÐºÐ¾Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ (%ld)%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ„Ð°Ð¹Ð» core Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð¾%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð¾ 0x%x Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð½Ð¾Ð¼ÐµÑ€Ð° Ñ€Ñ�Ð´ÐºÐ°: 0x%lx > 0xffff%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº GOT %ld Ð´Ð¾ Â«%sÂ» Ð½Ðµ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ” Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð¼Ñƒ Ð´Ð¾Ð´Ð°Ð½ÐºÑƒ GOT %ld%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº PLT %d Ð´Ð¾ Â«%sÂ» Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %ld Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ñ…%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¾ÑŽ Ð´Ð»Ñ� mmo, Ñ—Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” 65535 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ñ�Ð»Ð¾Ð²Ð°: %d. Ð‘ÑƒÐ´Ðµ Ð²Ð¸Ð¿ÑƒÑ‰ÐµÐ½Ð¾ Ð»Ð¸ÑˆÐµ Â«MainÂ».
-(Ð·Ð° Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ Ñƒ Ð±Ñ–Ñ‚Ð°Ñ… %u)
+%s Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸%s: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� TLS Ñƒ %B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A, Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ð½Ðµ-TLS Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %B %A%s: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� TLS Ñƒ %B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A, Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ�Ð¼ Ð½Ðµ-TLS Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %B, %A%s: Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� TLS Ñƒ %B Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ð½Ðµ-TLS Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %B %A%s: Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� TLS Ñƒ %B Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ�Ð¼ Ð½Ðµ-TLS Ñƒ %B%s: Ð½ÐµÐ¼Ð°Ñ” Ñ‚Ð°ÐºÐ¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ%s: Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾%s: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾%s: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð° Ð²ÐµÑ€Ñ�Ñ–Ñ�: %s(Ð·Ð° Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ Ñƒ Ð±Ñ–Ñ‚Ð°Ñ… %u)
 (Ð´ÐµÑ�ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ñ€)
+(Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ %c%c%c%c Ð¿Ñ–Ð´Ð¿Ð¸Ñ� %s Ð²Ñ–Ðº %ld)
 (Ð½ÐµÐ¼Ð° Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�)
 (Ð½ÐµÐ°ÐºÑ‚Ð¸Ð²Ð½Ðµ)
 (Ð½Ðµ Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð¾)
@@ -960,43 +1168,59 @@ X-Generator: Lokalize 1.5
 )
 *** Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ñ‚Ðµ Ñ†Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: %s*Ð½Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¾*
 *Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹* Ñ‚Ð¸Ð¿ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�, %u
-*Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾**Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾*       , Ð¿Ñ�ÐµÐ²Ð´Ð¾Ð½Ñ–Ð¼: %u
+*Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾**Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾*       , Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�: %#08lx
+, Ð¿Ñ�ÐµÐ²Ð´Ð¾Ð½Ñ–Ð¼: %u
 , Ð·Ñ�ÑƒÐ² Ñ€Ð¾Ð·ÑˆÐ¸Ñ€. Ð¿Ñ€Ð¸Ð²â€™Ð·Ñ�ÐºÐ¸: %u, Ð·Ñ�ÑƒÐ² psect no_opt: %u, Ð¿Ñ–Ð´Ñ‚Ð¸Ð¿: %u (%s)
-, Ð²ÐµÐºÑ‚Ð¾Ñ€ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² rva: Ð Ð¾Ð·Ð´Ñ–Ð» .got Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð·Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¾Ð¼ .plt32-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ double, Ð²Ñ–Ð´Ð±ÑƒÐ²Ð°Ñ”Ñ‚ÑŒÑ�Ñ� 32-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ gp-Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ64 Ð±Ñ–Ñ‚Ð¸ *Ð½Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»Ñ�Ñ”Ñ‚ÑŒÑ�Ñ�*
-64-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ double, : %u.%u
-: ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ m32r: ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ m32r2: ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ m32rx; Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· -fPIC<Ð�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ð½Ð°Ð±Ñ–Ñ€ Ð±Ñ–Ñ‚Ñ–Ð² Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–Ð²><Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð°>Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� @pltoff Ñ‰Ð¾Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»ÑƒÐ£ Ð°Ñ€Ñ…Ñ–Ð²Ñ– Ð½ÐµÐ¼Ð°Ñ” Ð¿Ð¾ÐºÐ°Ð¶Ñ‡Ð¸ÐºÐ°; Ð·Ð°Ð¿ÑƒÑ�Ñ‚Ñ–Ñ‚ÑŒ ranlib, Ñ‰Ð¾Ð± Ð¹Ð¾Ð³Ð¾ Ð´Ð¾Ð´Ð°Ñ‚Ð¸Ð�Ñ€Ñ…Ñ–Ð²Ð½Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–Ð¡Ð¿Ñ€Ð¾Ð±Ð° Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� L32R/CALLX Ð½Ð° CALL Ð·Ð°Ð·Ð½Ð°Ð»Ð° Ð½ÐµÐ²Ð´Ð°Ñ‡Ñ–Ð¡Ð¿Ñ€Ð¾Ð±Ð° Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð·Ð²â€™Ñ�Ð·ÐºÑƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· Ð²Ñ…Ñ–Ð´Ð½Ð¸Ð¼ %s Ñ– Ð²Ð¸Ñ…Ñ–Ð´Ð½Ð¸Ð¼ %sBASE_IMAGE       ÐžÐ¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð¾Ð¼ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŽ BFD %s Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑƒ %s:%dÐ’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° BFD %s, Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ñ”Ð¼Ð¾ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ñƒ %s, Ñ€Ñ�Ð´Ð¾Ðº %d
-Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° BFD %s, Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ñ”Ð¼Ð¾ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ñƒ %s, Ñ€Ñ�Ð´Ð¾Ðº %d Ñƒ %s
+, Ð²ÐµÐºÑ‚Ð¾Ñ€ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² rva: - %B Ñ” 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼, Ð° %B â€” Ð½Ñ–-mips32r2 -mfp64 (12 Ð±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð¸Ñ… Ð´Ð»Ñ� Ð²Ð¸ÐºÐ»Ð¸ÐºÑ–Ð² Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð²)Ð Ð¾Ð·Ð´Ñ–Ð» .got Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð·Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¾Ð¼ .pltÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ” Ð»Ð¸Ñ�Ñ‚Ð¾ÐºÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ð²Ñ–Ð´Ð¼Ñ–Ð½Ð½Ð¾Ñ�Ñ‚Ñ– Ñƒ Ð²ÐµÑ€Ñ�Ñ–Ñ�Ñ… ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñ–Ð²
+Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¸ Ð· Ñ€Ñ–Ð·Ð½Ð¸Ð¼Ð¸ Ñ…Ð°Ñ€Ð°ÐºÑ‚ÐµÑ€Ð¸Ñ�Ñ‚Ð¸ÐºÐ°Ð¼Ð¸
+Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� Ð»Ð¸Ñ�Ñ‚ÐºÑ–Ð²Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� Ð»Ð¸Ñ�Ñ‚ÐºÑ–Ð²: %sÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ñ€ÐµÑ�ÑƒÑ€Ñ� Ð· Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼ Ñ€Ñ�Ð´ÐºÑ–Ð²: %dÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ð½ÐµÑ‚Ð¸Ð¿Ð¾Ð²Ð¸Ñ… Ð¼Ð°Ð½Ñ–Ñ„ÐµÑ�Ñ‚Ñ–Ð²32-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ double, Ð²Ñ–Ð´Ð±ÑƒÐ²Ð°Ñ”Ñ‚ÑŒÑ�Ñ� 32-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ gp-Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ4-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¹4-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ñ–64 Ð±Ñ–Ñ‚Ð¸ *Ð½Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»Ñ�Ñ”Ñ‚ÑŒÑ�Ñ�*
+64-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ double, 8-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¹8-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ñ–: ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ m32r: ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ m32r2: ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ m32rx: Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— n1: Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— n1h; Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· -fPIC<Ð�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ð½Ð°Ð±Ñ–Ñ€ Ð±Ñ–Ñ‚Ñ–Ð² Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–Ð²><Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ñ– Ð´Ð°Ð½Ñ–> %s<Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾Ð³Ð¾ Ñ€Ñ�Ð´ÐºÐ°: %#x>
+<Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾Ð³Ð¾ Ñ€Ñ�Ð´ÐºÐ°: %#lx>
+<Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾><Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ: %d>
+<Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð°>Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� @pltoff Ñ‰Ð¾Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»ÑƒÐ£ Ð°Ñ€Ñ…Ñ–Ð²Ñ– Ð½ÐµÐ¼Ð°Ñ” Ð¿Ð¾ÐºÐ°Ð¶Ñ‡Ð¸ÐºÐ°; Ð·Ð°Ð¿ÑƒÑ�Ñ‚Ñ–Ñ‚ÑŒ ranlib, Ñ‰Ð¾Ð± Ð¹Ð¾Ð³Ð¾ Ð´Ð¾Ð´Ð°Ñ‚Ð¸Ð�Ñ€Ñ…Ñ–Ð²Ð½Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–Ð¡Ð¿Ñ€Ð¾Ð±Ð° Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� L32R/CALLX Ð½Ð° CALL Ð·Ð°Ð·Ð½Ð°Ð»Ð° Ð½ÐµÐ²Ð´Ð°Ñ‡Ñ–Ð¡Ð¿Ñ€Ð¾Ð±Ð° Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð·Ð²â€™Ñ�Ð·ÐºÑƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· Ð²Ñ…Ñ–Ð´Ð½Ð¸Ð¼ %s Ñ– Ð²Ð¸Ñ…Ñ–Ð´Ð½Ð¸Ð¼ %sBASE_IMAGE       ÐžÐ¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð¾Ð¼ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŽ BFD %s Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑƒ %s:%dÐ’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° BFD %s, Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ñ”Ð¼Ð¾ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ñƒ %s:%d
+Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° BFD %s, Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ñ”Ð¼Ð¾ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ñƒ %s:%d Ñƒ %s
 ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� BFD: Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� (PC rel16) Ð´Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ (%s) Ð½Ðµ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÑ”Ñ‚ÑŒÑ�Ñ�ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� BFD: Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñƒ (PC rel26) Ð´Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ (%s)Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� [.reloc]ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð²Ð¸Ð¼ÑƒÑˆÐµÐ½Ð¾Ð³Ð¾ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�ÐœÐµÐ¶Ñ–:
-CLIÐ”Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº CLRCLUSTERS_LOCKMGR COUNTERS         CPU              CTL_AUGRB (Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ� Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�) %u
+Ð Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Ð´Ð¾ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾Ñ— Ð·Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ”ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¸Ð’Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� CACHE: CLIÐ”Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº CLRCLUSTERS_LOCKMGR COUNTERS         CPU              CTL_AUGRB (Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ� Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�) %u
 CTL_DFLOC (Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ�)
 CTL_SETRB (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ� Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�)
 CTL_STKDL (Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ�, Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ñ�Ñ‚ÐµÐºÐ¾Ð¼)
 CTL_STLOC (Ð²ÐºÐ°Ð·Ð°Ñ‚Ð¸ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ�)
-Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ð°Ð²Ñ‚Ð¾Ñ€Ñ�ÑŒÐºÐ¸Ñ… Ð¿Ñ€Ð°Ð²
-Ñ€Ð¾Ð·Ð±Ñ–Ð¶Ð½Ð¾Ñ�Ñ‚Ñ– Ñƒ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ– DIV Ð¼Ñ–Ð¶ %B Ñ‚Ð° %BDST__K_BEG_STMT_MODE Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_END_STMT_MODE Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_RESET_LINUM_INCR Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_SET_LINUM_INCR Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_SET_LINUM_INCR_W Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_SET_PC Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_SET_PC_L Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_SET_PC_W Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_SET_STMTNUM Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ð¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²:
+Ð�ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Ð½Ð° JALX Ð´Ð»Ñ� Ð°Ð´Ñ€ÐµÑ�Ð¸, Ñ�ÐºÑƒ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾ Ð½Ð° Ð¼ÐµÐ¶Ñƒ Ñ�Ð»Ð¾Ð²Ð°Ð�ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ…Ñ–Ð´ Ð½Ð° JALX Ð´Ð»Ñ� Ð°Ð´Ñ€ÐµÑ�Ð¸, Ñ�ÐºÑƒ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾ Ð½Ð° Ð¼ÐµÐ¶Ñƒ Ñ�Ð»Ð¾Ð²Ð°Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ð°Ð²Ñ‚Ð¾Ñ€Ñ�ÑŒÐºÐ¸Ñ… Ð¿Ñ€Ð°Ð²
+Ð’Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» .rsrc!
+ÐŸÐ¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� EGSD: Ð¹Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ (%#x) Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð¼Ð°Ð»Ð¸Ð¼ÐŸÐ¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� EGSD: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ (%#x) Ñ” Ð±Ñ–Ð»ÑŒÑˆÐ¸Ð¼ Ð·Ð° Ð·Ð°Ð»Ð¸ÑˆÐ¾Ðº Ð¼Ñ–Ñ�Ñ†Ñ� (%#x)ÐŸÐ¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� EGSD: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ (%#x) Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð¼Ð°Ð»Ð¸Ð¼Ð’Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� ETIRÐŸÐ¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� vmsÑƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¼Ñƒ Ñ€Ñ�Ð´ÐºÑƒ Ð¿Ñ€Ð¾Ð¿ÑƒÑ‰ÐµÐ½Ð¾ DSODST__K_BEG_STMT_MODE Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_END_STMT_MODE Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_RESET_LINUM_INCR Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_SET_LINUM_INCR Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_SET_LINUM_INCR_W Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_SET_PC Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_SET_PC_L Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_SET_PC_W Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾DST__K_SET_STMTNUM Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ð¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²:
 Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ�:
 ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð²Ñ–Ð´ÐºÐ»Ð°Ð´ÐµÐ½Ð¾Ð³Ð¾ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�Ð’Ð¸ÐºÐ»Ð¸ÐºÐ°Ð½Ð¾ Ð·Ð°Ñ�Ñ‚Ð°Ñ€Ñ–Ð»Ñƒ %s
 Ð’Ð¸ÐºÐ»Ð¸ÐºÐ°Ð½Ð¾ Ð·Ð°Ñ�Ñ‚Ð°Ñ€Ñ–Ð»Ñƒ %s Ñƒ %s, Ñ€Ñ�Ð´Ð¾Ðº %d Ñƒ %s
-ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð¾Ð¿Ð¸Ñ�Ñ–Ð²ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ�ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€: %u.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» %s.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ %u.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð¼Ð°ÐºÑ�Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð° ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð´Ñ–Ð¹ Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð°Ð±Ð¾ Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ðµ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� FORM: %u.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ (%lu) Ñ” Ð±Ñ–Ð»ÑŒÑˆÐ¸Ð¼ Ð°Ð±Ð¾ Ñ€Ñ–Ð²Ð½Ð¸Ð¼ Ð·Ð° Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ %s (%lu).ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð° Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð²ÐµÑ€Ñ�Ñ–Ñ� .debug_line, %d.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ dwarf: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð°Ð´Ñ€ÐµÑ�Ð¸ Â«%uÂ», Ð²Ñ‚Ñ–Ð¼ Ñƒ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñ–Ð², Ñ‰Ð¾ Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑŽÑ‚ÑŒ Â«%uÂ».ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð²ÐµÑ€Ñ�Ñ–ÑŽ dwarf Â«%uÂ», Ð°Ð»Ðµ Ñƒ Ñ†Ñ–Ð¹ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÑƒ Ð»Ð¸ÑˆÐµ Ð²ÐµÑ€Ñ�Ñ–Ð¹ Ð´Ð°Ð½Ð¸Ñ… 2, 3 Ñ– 4.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð² (Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ñ„Ð°Ð¹Ð»Ð°).ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð².EIHD: (Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u, ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð±Ð»Ð¾ÐºÑ–Ð²: %u)
-Ð’Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð²Ñ…Ð¾Ð´Ñƒ       = 0x%.8lx (%ld)
-ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� %s: %sÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ð»Ñ� %B Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð¾Ð±Ð¸Ð´Ð²Ð° Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Tag_MPextension_use, current Ñ– legacyÐŸÑ–Ð´ Ñ‡Ð°Ñ� Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ„Ð°Ð¹Ð»Ð° Ñ�Ñ‚Ð°Ð»Ð¸Ñ�Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸, %sÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½ÑŒ [.pdata]ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� [.edata (Ð°Ð±Ð¾ Ñ–Ð½ÑˆÐµ Ð¼Ñ–Ñ�Ñ†Ðµ, Ð´Ðµ Ð¹Ð¾Ð³Ð¾ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾)]ÐŸÑ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�		%lx
-Ð•ÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¸Ð¹ RVAÐ�Ð• Ð’Ð”Ð�Ð›ÐžÐ¡Ð¯ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ” Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� HI16FILES_VOLUMES    Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚ Ñ„Ð°Ð¹Ð»Ð° Ñ” Ð½ÐµÐ¾Ð´Ð½Ð¾Ð·Ð½Ð°Ñ‡Ð½Ð¸Ð¼Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚ Ñ„Ð°Ð¹Ð»Ð° Ð½Ðµ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¾Ð¤Ð°Ð¹Ð» Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–Ð¤Ð°Ð¹Ð» Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼Ð¤Ð°Ð¹Ð» Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð¾ÐŸÐ¾Ð»Ðµ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–Ð²      = 0x%.2x
-ÐŸÐµÑ€ÐµÑ�Ð¿Ñ€Ñ�Ð¼Ð¾Ð²Ð½Ð¸Ð¹ RVAGALAXY           Ð’Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� GP, Ð²Ñ‚Ñ–Ð¼, GP Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� GP, Ð°Ð»Ðµ _gp Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ÐŸÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼ GPDISP Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— ldah Ñ– ldaÐ¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²:
-IDC â€” Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ° ÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¾Ñ�Ñ‚Ñ– Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ñ–Ð²
-IMAGE_ACTIVATOR  ÐŸÑ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ INPUT_SECTION_FLAGS Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾.
+ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð¾Ð¿Ð¸Ñ�Ñ–Ð²ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» %s.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ %u.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ DW_AT_comp_dir Ñ–Ð· Ð½ÐµÑ€Ñ�Ð´ÐºÐ¾Ð²Ð¾ÑŽ Ñ„Ð¾Ñ€Ð¼Ð¾ÑŽ.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸Ðº Ð½Ð° Ð´Ð°Ð½Ñ– Ð²Ð¸Ñ…Ð¾Ð´Ð¸Ñ‚ÑŒ Ð·Ð° ÐºÑ–Ð½ÐµÑ†ÑŒ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð²ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð¼Ð°ÐºÑ�Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð° ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð´Ñ–Ð¹ Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð°Ð±Ð¾ Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ðµ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� FORM: %#x.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð´Ð°Ð½Ñ– Ñ‰Ð¾Ð´Ð¾ Ñ€Ñ�Ð´ÐºÑ–Ð² Ñ” Ð±Ñ–Ð»ÑŒÑˆÐ¸Ð¼Ð¸ (0x%lx) Ð·Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð» (0x%lx)ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ñ€Ñ�Ð´ÐºÑ–Ð² Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð¼Ð°Ð»Ð¸Ð¼ (%ld)ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ (%lu) Ñ” Ð±Ñ–Ð»ÑŒÑˆÐ¸Ð¼ Ð°Ð±Ð¾ Ñ€Ñ–Ð²Ð½Ð¸Ð¼ Ð·Ð° Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ %s (%lu).ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� ÐºÐ¾Ð´Ñ–Ð² Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ð¹ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ð²Ñ�Ñ‚ÑƒÐ¿ÑƒÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Dwarf: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� %u.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð° Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð²ÐµÑ€Ñ�Ñ–Ñ� .debug_line, %d.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ dwarf: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð°Ð´Ñ€ÐµÑ�Ð¸ Â«%uÂ», Ð²Ñ‚Ñ–Ð¼ Ñƒ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñ–Ð², Ñ‰Ð¾ Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑŽÑ‚ÑŒ Â«%uÂ».ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð²ÐµÑ€Ñ�Ñ–ÑŽ dwarf Â«%uÂ», Ð°Ð»Ðµ Ñƒ Ñ†Ñ–Ð¹ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÑƒ Ð»Ð¸ÑˆÐµ Ð²ÐµÑ€Ñ�Ñ–Ð¹ Ð´Ð°Ð½Ð¸Ñ… 2, 3 Ñ– 4.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð² (Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ñ„Ð°Ð¹Ð»Ð°).ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð².EIHD: (Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u, ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð±Ð»Ð¾ÐºÑ–Ð²: %u)
+ÐŸÐžÐœÐ˜Ð›ÐšÐ�: Ñ�Ð¿Ñ€Ð¾Ð±Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� %B Ð·Ñ– Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¼ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ %B Ñ–Ð½ÑˆÐ¾Ñ— Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸Ð’Ñ…Ñ–Ð´Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ� Â«%sÂ» Ð·Ð½Ð¸ÐºÐ»Ð° Ð· Ð±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ.Ð’Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð²Ñ…Ð¾Ð´Ñƒ       = 0x%.8lx (%ld)
+ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� %s: %sÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ð»Ñ� %B Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð¾Ð±Ð¸Ð´Ð²Ð° Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Tag_MPextension_use, current Ñ– legacyÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÑƒ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ ARC4 Ð¿Ñ€Ð¸Ð¿Ð¸Ð½ÐµÐ½Ð¾.
+ÐŸÑ–Ð´ Ñ‡Ð°Ñ� Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ„Ð°Ð¹Ð»Ð° Ñ�Ñ‚Ð°Ð»Ð¸Ñ�Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸, %BÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½ÑŒ [.pdata]ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� [.edata (Ð°Ð±Ð¾ Ñ–Ð½ÑˆÐµ Ð¼Ñ–Ñ�Ñ†Ðµ, Ð´Ðµ Ð¹Ð¾Ð³Ð¾ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾)]ÐŸÑ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�		%lx
+Ð•ÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¸Ð¹ RVAÐ�Ð• Ð’Ð”Ð�Ð›ÐžÐ¡Ð¯ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ” Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� HI16FILES_VOLUMES    FPU-2.0FPU-3.0Ð�Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð·Ñ�ÑƒÐ²Ð¸ Ñ„Ð°Ð¹Ð»Ñ–Ð² Ñƒ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð·Ñ– Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚ Ñ„Ð°Ð¹Ð»Ð° Ñ” Ð½ÐµÐ¾Ð´Ð½Ð¾Ð·Ð½Ð°Ñ‡Ð½Ð¸Ð¼Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚ Ñ„Ð°Ð¹Ð»Ð° Ð½Ðµ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¾Ð¤Ð°Ð¹Ð» Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–Ð¤Ð°Ð¹Ð» Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼Ð¤Ð°Ð¹Ð» Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð¾ÐŸÐ¾Ð»Ðµ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–Ð²      = 0x%.2x
+ÐŸÐµÑ€ÐµÑ�Ð¿Ñ€Ñ�Ð¼Ð¾Ð²Ð½Ð¸Ð¹ RVAGALAXY           ÐŸÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� GOT Ñ– PLT Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚Ð¸ Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¾, Ñ�ÐºÑ‰Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº Ñ” Ð½ÐµÐ´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¼.Ð’Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� GP, Ð²Ñ‚Ñ–Ð¼, GP Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� GP, Ð°Ð»Ðµ _gp Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ÐŸÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼ GPDISP Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— ldah Ñ– ldaÐ¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²:
+Ð�Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ñ€ÑƒÑ…Ð¾Ð¼Ð° ÐºÑ€Ð°Ð¿ÐºÐ° (32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€, 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ FPU)
+Ð�Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ñ€ÑƒÑ…Ð¾Ð¼Ð° ÐºÑ€Ð°Ð¿ÐºÐ° (32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€, Ð±ÑƒÐ´ÑŒ-Ñ�ÐºÐ¸Ð¹ FPU)
+Ð�Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ñ€ÑƒÑ…Ð¾Ð¼Ð° ÐºÑ€Ð°Ð¿ÐºÐ° (64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ñ�Ð¿Ñ–Ð²Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€ MIPS32r2, 12 Ð±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð¸Ñ… Ð´Ð»Ñ� Ð²Ð¸ÐºÐ»Ð¸ÐºÑ–Ð² Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð²)
+Ð�Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ñ€ÑƒÑ…Ð¾Ð¼Ð° ÐºÑ€Ð°Ð¿ÐºÐ° (Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð° Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŒ)
+Ð�Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ñ€ÑƒÑ…Ð¾Ð¼Ð° ÐºÑ€Ð°Ð¿ÐºÐ° (Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð° Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŒ)
+Ð¡ÑƒÐ¼Ñ–Ñ�Ð½Ñ–Ñ�Ñ‚ÑŒ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¾Ñ— Ñ€ÑƒÑ…Ð¾Ð¼Ð¾Ñ— ÐºÑ€Ð°Ð¿ÐºÐ¸ (32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€, 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ FPU)
+Ð�Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ð°Ð±Ð¾ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð° Ñ€ÑƒÑ…Ð¾Ð¼Ð° ÐºÑ€Ð°Ð¿ÐºÐ°
+Ð†Ð´.: %#08lxIDC â€” Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ° ÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¾Ñ�Ñ‚Ñ– Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ñ–Ð²
+Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸Ðº IEEE: Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ñ�Ð´ÐºÐ°: %#lx Ð´Ð¾Ð²ÑˆÐ¸Ð¹ Ð·Ð° Ð±ÑƒÑ„ÐµÑ€: %#lxIMAGE_ACTIVATOR  ÐŸÑ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ INPUT_SECTION_FLAGS Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾.
 IO               Ð�ÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ� Ð¾Ð±Ñ€Ð°Ð·Ñƒ:  (Ñ€Ð¾Ð·Ð¼Ñ–Ñ€=%u)
 ÐŸÑ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ° Ð°Ð´Ñ€ÐµÑ�Ð¸ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ‚Ð¾Ñ€Ð° Ð¾Ð±Ñ€Ð°Ð·Ñƒ: (Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð°: %u, Ð¼Ð¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ�: %u)
 Ð†Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ� Ð¾Ð±Ñ€Ð°Ð·Ñƒ: (Ñ�Ñ‚Ð°Ñ€ÑˆÐ¸Ð¹: %u, Ð¼Ð¾Ð»Ð¾Ð´ÑˆÐ¸Ð¹: %u)
 Ð”ÐµÑ�ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð¾Ð±Ñ€Ð°Ð·Ñƒ: (Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð°: %u, Ð¼Ð¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ�: %u, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u, Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿: %u)
 Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ñ– Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸ Ð¾Ð±Ñ€Ð°Ð·Ñƒ (Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð°: %u, Ð¼Ð¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ�: %u)
-ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð°Ð´Ñ€ÐµÑ�ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� [Ñ‡Ð°Ñ�Ñ‚Ð¸Ð½Ð¸ .idata]Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð½ÐµÑƒÐ·Ð³Ð¾Ð´Ð¶ÐµÐ½Ñ–Ñ�Ñ‚ÑŒ: Ð·Ð°Ð»Ð¸ÑˆÐ¸Ð»Ð¾Ñ�Ñ� %u != Ð¼Ð°ÐºÑ�. %u.
-  Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ñ‚Ðµ Ð¿Ñ€Ð¾ Ñ†ÑŽ Ð²Ð°Ð´Ñƒ.Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ TARGET2, Â«%sÂ».Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� bfdÐ�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð´Ñ–Ñ�Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñƒ ETIRJALX Ð´Ð¾ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾Ñ— Ð·Ð° Ñ�Ð»Ð¾Ð²Ð¾Ð¼ Ð°Ð´Ñ€ÐµÑ�Ð¸LOGICAL_NAMES    Ð�Ð°Ð·Ð²Ð° Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° Ð¼Ð¾Ð²Ð¸
+ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð°Ð´Ñ€ÐµÑ�ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� [Ñ‡Ð°Ñ�Ñ‚Ð¸Ð½Ð¸ .idata]Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ñ�Ñ‚ÐµÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ RL78Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð½Ñ� Ñ�Ñ‚ÐµÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ RL78Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð½ÐµÑƒÐ·Ð³Ð¾Ð´Ð¶ÐµÐ½Ñ–Ñ�Ñ‚ÑŒ: Ð·Ð°Ð»Ð¸ÑˆÐ¸Ð»Ð¾Ñ�Ñ� %u != Ð¼Ð°ÐºÑ�. %u.
+  Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ñ‚Ðµ Ð¿Ñ€Ð¾ Ñ†ÑŽ Ð²Ð°Ð´Ñƒ.Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� AArch64: %dÐ�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� DLX: %dÐ�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ TARGET2, Â«%sÂ».Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� bfdÐ�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %AÐ�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð´Ñ–Ñ�Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Invalid output section for .eh_frame_entry: %AÐ�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñƒ ETIRÐ¦Ðµ Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¹ (global) Ð°Ð±Ð¾ Ñ�Ð»Ð°Ð±ÐºÐ¸Ð¹ (weak) Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ—.JALX Ð´Ð¾ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾Ñ— Ð·Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ”ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¸ÐŸÐµÑ€ÐµÑ…Ñ–Ð´ Ð´Ð¾ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾Ñ— Ð·Ð° Ñ�Ð»Ð¾Ð²Ð¾Ð¼ Ð°Ð´Ñ€ÐµÑ�Ð¸LOGICAL_NAMES    Ð�Ð°Ð·Ð²Ð° Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° Ð¼Ð¾Ð²Ð¸
 Ð”Ð¾Ð²Ð¶Ð¸Ð½Ð°             = 0x%.8lx (%ld)
-ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ� Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒMEMORY_MANAGEMENTÐ¤ÑƒÐ½ÐºÑ†Ñ–Ñ— MIPS16 Ñ– microMIPS Ð½Ðµ Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ Ð²Ð¸ÐºÐ»Ð¸ÐºÐ°Ñ‚Ð¸ Ð¾Ð´Ð½Ð° Ð¾Ð´Ð½ÑƒMISC             MULTI_PROCESSING Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Mach-O:
-ÐžÑ�Ð½Ð¾Ð²Ð½Ð°/ÐœÐ¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ� 			%d/%d
+ÐšÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ ex9, Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ…ÐµÑˆÑ–Ð² 
+ÐšÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°, Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ñ–ÐºÑ�Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ ex9 
+ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ� Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒÐ›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ� IFUNC Â«%sÂ» Ñƒ %B
+MEMORY_MANAGEMENTÐ¤ÑƒÐ½ÐºÑ†Ñ–Ñ— MIPS16 Ñ– microMIPS Ð½Ðµ Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ Ð²Ð¸ÐºÐ»Ð¸ÐºÐ°Ñ‚Ð¸ Ð¾Ð´Ð½Ð° Ð¾Ð´Ð½ÑƒMISC             Ð’Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� MMU: MULTI_PROCESSING ÐžÑ�Ð½Ð¾Ð²Ð½Ð°/ÐœÐ¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ� 			%d/%d
 Ð�Ñ€Ñ…Ñ–Ð² Ð· Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¼ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼ÐœÐ°ÐºÑ�Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ñ‚ÐµÐºÐ° â€” 0x%v
 MeP: howto %d Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð´Ð¾ Ñ‚Ð¸Ð¿Ñƒ %dÐŸÐ°Ð¼â€™Ñ�Ñ‚ÑŒ Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð¾Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ð¼Ð¾Ð´ÑƒÐ»Ñ�
-NETWORKS         NORMALÐ�Ð°Ð·Ð²Ð°				Ð�ÐµÐ¼Ð°Ñ” Ð¿Ð¾Ð¼Ð¸Ð»Ð¾ÐºÐ‘Ñ–Ð»ÑŒÑˆÐµ Ð°Ñ€Ñ…Ñ–Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð½ÐµÐ¼Ð°Ñ”Ð�ÐµÐ¼Ð°Ñ” Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²Ð Ð¾Ð·Ð´Ñ–Ð», Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð»Ñ� Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ…Ð�ÐµÐ´Ð¾Ñ�Ñ‚Ð°Ñ‚Ð½ÑŒÐ¾ Ð¿Ð°Ð¼â€™Ñ�Ñ‚Ñ– Ð´Ð»Ñ� Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒÐ�Ð¾Ð¼ÐµÑ€ Ñƒ:
+NETWORKS         NORMALÐ�Ð°Ð·Ð²Ð°				Ð†Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¾Ð¼ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð½Ð°Ð·Ð¾Ð²Ð½Ñ– %s Ð½Ðµ Ð¿Ð¾Ð²â€™Ñ�Ð·Ð°Ð½Ð¾ Ð°Ð´Ñ€ÐµÑ�Ð¸Ð�ÐµÐ¼Ð°Ñ” Ð¿Ð¾Ð¼Ð¸Ð»Ð¾ÐºÐ‘Ñ–Ð»ÑŒÑˆÐµ Ð°Ñ€Ñ…Ñ–Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð½ÐµÐ¼Ð°Ñ”Ð�ÐµÐ¼Ð°Ñ” Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²Ð�ÐµÐ¼Ð°Ñ”Ð Ð¾Ð·Ð´Ñ–Ð», Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð»Ñ� Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ…Ð�ÐµÐ´Ð¾Ñ�Ñ‚Ð°Ñ‚Ð½ÑŒÐ¾ Ð¿Ð°Ð¼â€™Ñ�Ñ‚Ñ– Ð´Ð»Ñ� Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒÐ�Ð¾Ð¼ÐµÑ€ Ñƒ:
 OPR_ADD (Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ�)
 OPR_AND (Ð»Ð¾Ð³Ñ–Ñ‡Ð½Ðµ Â«Ð†Â»)
 OPR_ASH (Ð°Ñ€Ð¸Ñ„Ð¼ÐµÑ‚Ð¸Ñ‡Ð½Ð¸Ð¹ Ð·Ñ�ÑƒÐ²)
@@ -1015,18 +1239,18 @@ X-Generator: Lokalize 1.5
 OPR_SUB (Ð²Ñ–Ð´Ð½Ñ–Ð¼Ð°Ð½Ð½Ñ�)
 OPR_USH (Ð±ÐµÐ·Ð·Ð½Ð°ÐºÐ¾Ð²Ð¸Ð¹ Ð·Ñ�ÑƒÐ²)
 Ð£ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¾Ð¼Ñƒ Ð¼Ð¾Ð´ÑƒÐ»Ñ– Ð¼Ñ–Ñ�Ñ‚Ñ�Ñ‚ÑŒÑ�Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸!
-ÐžÑ�Ð½Ð¾Ð²Ð° Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ�		%ld
+Ð—Ñ�ÑƒÐ² Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÐ¸ Ð´Ð»Ñ� Ð²Ñ…Ñ–Ð´Ð½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%sÂ» Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ Ñ—Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ.ÐžÐ´Ð½Ñ–Ñ”ÑŽ Ñ–Ð· Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¸Ñ… Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½ Ñ†Ñ–Ñ”Ñ— Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Ñ” Ñ‚Ðµ, Ñ‰Ð¾ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñƒ ÐºÐ¾Ð´Ñ– Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ‚Ð°Ðº, Ð½Ð°Ñ‡Ðµ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð¼Ð°Ñ” Ð±Ñ–Ð»ÑŒÑˆÐµ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ�, Ð½Ñ–Ð¶ Ð±ÑƒÐ»Ð¾ Ð¾Ð³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð¾ Ñ‚Ð°Ð¼, Ð´Ðµ Ð¹Ð¾Ð³Ð¾ Ð±ÑƒÐ»Ð¾ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾.ÐžÑ�Ð½Ð¾Ð²Ð° Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ�		%ld
 Ð¤Ð°Ð¹Ð»Ñƒ-Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñƒ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð° Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Â«%sÂ»
 Ð¤Ð°Ð¹Ð»Ñƒ-Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñƒ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð° Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Â«%s.so.%sÂ»
-POSIX            PROCESS_SCHED    PRVFXDPRVPICPSC â€” Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸
+Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ� Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ PC Ð· Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð¸Ð’Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» PIEPOSIX            PROCESS_SCHED    PRVFXDPRVPICPSC â€” Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸
 Ð�ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ PTA: Ð°Ð´Ñ€ÐµÑ�Ð° SHcompact (Ð±Ñ–Ñ‚ 0 == 0)Ð�ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ PTB: Ð°Ð´Ñ€ÐµÑ�Ð° SHmedia (Ð±Ñ–Ñ‚ 0 == 1)Ð�Ð°Ð·Ð²Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ       = "%s"
 ÐšÑ–Ð½ÐµÑ†ÑŒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ[%d]   = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }
 Ð”Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ[%d] = 0x%.8lx (%ld)
 Ð¡ÐµÐºÑ‚Ð¾Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ[%d]   = 0x%.8lx (%ld)
 Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ñ‚Ðµ Ð¿Ñ€Ð¾ Ñ†ÑŽ Ð²Ð°Ð´Ñƒ.
-R_BFIN_FUNCDESC Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼R_BFIN_FUNCDESC_VALUE Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼R_FRV_TLSMOFFLO Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ setlo Ð°Ð±Ð¾ setlos
+ÐšÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ ABI RL78: Ñ„Ð°Ð¹Ð» G10 %B Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð· %s, Ñ„Ð°Ð¹Ð» %BÐšÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ ABI RL78: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ %s, Ñ„Ð°Ð¹Ð» %B Ð· %s, Ñ„Ð°Ð¹Ð» %BÐšÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� RL78: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ 32-Ð±Ñ–Ñ‚Ð¾Ð²Ñ– Ñ– 64-Ð±Ñ–Ñ‚Ð¾Ð²Ñ– Ð¾Ð±â€™Ñ”ÐºÑ‚Ð¸R_BFIN_FUNCDESC Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼R_BFIN_FUNCDESC_VALUE Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼R_FRV_TLSMOFFLO Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ setlo Ð°Ð±Ð¾ setlos
 Ð§Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ñ‡Ð°Ñ�Ð¾Ð²Ð¾Ñ— Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐºÐ¸ mod Ð°Ñ€Ñ…Ñ–Ð²Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð°ÐŸÐ¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ», Ñ‰Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð¼Ð¾Ð¶Ðµ Ð¿Ñ€Ð¸Ð·Ð²ÐµÑ�Ñ‚Ð¸ Ð´Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº Ñƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ–.Ð�ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ðµ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñƒ %%g%d: %s Ñƒ %B, Ñ€Ð°Ð½Ñ–ÑˆÐµ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ %s Ñƒ %BÐ£ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ð¼Ñ–Ñ�Ñ‚Ñ�Ñ‚ÑŒÑ�Ñ� Ð´Ð°Ð½Ñ–
-ÐŸÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� psect, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ñ” RELÐ’Ð¸Ð»ÑƒÑ‡Ð°Ñ”Ð¼Ð¾ Ð½ÐµÐ²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%sÂ» Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Â«%BÂ»Ð—Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¾Ð²Ð°Ð½Ð¾ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ñ€ÐµÑ�ÑƒÑ€Ñ�Ñ–Ð² [.rsrc]Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ� SDA Ð±ÐµÐ· Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� _SDA_BASE_SECURITY         SEC_RELOC Ð±ÐµÐ· Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %sÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° SH: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, %dSHELL            SHRFXDSHRPICSPSC â€” Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð¾Ð±Ñ€Ð°Ð·Ñƒ
+ÐŸÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� psect, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ñ” RELÐ’Ð¸Ð»ÑƒÑ‡Ð°Ñ”Ð¼Ð¾ Ð½ÐµÐ²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Â«%BÂ»Ð—Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¾Ð²Ð°Ð½Ð¾ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ñ€ÐµÑ�ÑƒÑ€Ñ�Ñ–Ð² [.rsrc]Ð�Ð´Ñ€ÐµÑ�Ð° S12 (%lx) Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÐ¾Ð²Ð°Ð½Ð° Ð¿Ð¾Ð·Ð° RAM Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� (0x2000-x4000), Ñ‚Ð¾Ð¼Ñƒ Ð²Ð°Ð¼ Ñ�Ð»Ñ–Ð´ Ð²Ñ€ÑƒÑ‡Ð½Ñƒ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð°Ð´Ñ€ÐµÑ�Ð¸ Ñƒ Ð²Ð°ÑˆÐ¾Ð¼Ñƒ ÐºÐ¾Ð´Ñ–Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ� SDA Ð±ÐµÐ· Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� _SDA_BASE_SECURITY         SEC_RELOC Ð±ÐµÐ· Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %AÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° SH: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, %dSHELL            SHRFXDSHRPICÐ’Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� SIMD: SPSC â€” Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð¾Ð±Ñ€Ð°Ð·Ñƒ
 STABLE           STA_CKARG (Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð¸ Ð¿Ð¾Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð½Ñ�)
 STA_GBL (Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ñ‚ÐµÐº) %.*s
 STA_LI (Ñ�Ñ‚ÐµÐº Ð»Ñ–Ñ‚ÐµÑ€Ð°Ð»Ñ–Ð²)
@@ -1069,28 +1293,40 @@ X-Generator: Lokalize 1.5
 SYMG â€” Ð£Ð½Ñ–Ð²ÐµÑ€Ñ�Ð°Ð»ÑŒÐ½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²
 SYMM â€” Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð· Ð²ÐµÑ€Ñ�Ñ–Ñ”ÑŽ
 SYMV â€” Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð²ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð·Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ
-SYSGEN           Ð Ð¾Ð·Ð´Ñ–Ð» Ð½Ðµ Ð¼Ð°Ñ” Ð²Ð¼Ñ–Ñ�Ñ‚ÑƒÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð·Ð°Ñ…Ð¸Ñ�Ñ‚ÑƒÐ¡ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð¸ Ñ– Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸:
-ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñ– Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %sÐ—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ„Ð°Ð¹Ð»Ñ–Ð² ÐºÐ¾Ð´Ñƒ
+SYSGEN           Ð Ð¾Ð·Ð´Ñ–Ð» Ð½Ðµ Ð¼Ð°Ñ” Ð²Ð¼Ñ–Ñ�Ñ‚ÑƒÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð·Ð°Ñ…Ð¸Ñ�Ñ‚ÑƒÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñ– Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %AÐŸÑ€Ð¾Ð³Ñ€Ð°Ð¼Ð° Ñ€ÑƒÑ…Ð¾Ð¼Ð° ÐºÑ€Ð°Ð¿ÐºÐ°
+Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ„Ð°Ð¹Ð»Ñ–Ð² ÐºÐ¾Ð´Ñƒ
 ÐžÑ�Ð¾Ð±Ð»Ð¸Ð²Ð¸Ð¹ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¤Ð°Ð»ÑŒÑˆÐ¸Ð²Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� ALPHA_R_BSRÐŸÑ–Ð´ Ñ‡Ð°Ñ� Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ Ñ�Ñ‚ÐµÐºÐ° Ð±ÑƒÐ´Ðµ Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾ Ð²Ð¸ÐºÐ»Ð¸Ðº Ð· %s Ð´Ð¾ %s
 ÐŸÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ñ�Ñ‚ÐµÐºÐ° (%d) Ñƒ _bfd_vms_pushÐ Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ñ‚ÐµÐºÐ° Ð´Ð»Ñ� ÐºÐ¾Ñ€ÐµÐ½ÐµÐ²Ð¸Ñ… Ð²ÑƒÐ·Ð»Ñ–Ð² Ð³Ñ€Ð°Ñ„Ñƒ Ð²Ð¸ÐºÐ»Ð¸ÐºÑ–Ð².
-ÐŸÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ñ�Ñ‚ÐµÐºÐ° Ñƒ _bfd_vms_popÐšÑ€Ð¾ÐºÐ¸:
+ÐŸÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ñ�Ñ‚ÐµÐºÐ° Ñƒ _bfd_vms_popÐŸÐ¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Â«%sÂ» Ñ” Ñ–Ð½ÑˆÐ¾ÑŽ Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ�.ÐšÑ€Ð¾ÐºÐ¸:
 Ð¡Ð¸Ð¼Ð²Ð¾Ð» %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ� Ð°Ð´Ñ€ÐµÑ�Ð½Ð¸Ñ… Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·Ð¾Ðº
-Ð¡Ð¸Ð¼Ð²Ð¾Ð» %s Ð·Ð°Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð½Ð° %s
-Ð¡Ð¸Ð¼Ð²Ð¾Ð» Â«sÂ» Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð´Ð¾ Ñ€Ñ–Ð·Ð½Ð¸Ñ… Ñ‚Ð¸Ð¿Ñ–Ð²: %s Ñƒ %B Ñ– REGISTER Ñ€Ð°Ð½Ñ–ÑˆÐµ Ñƒ %BÐ¡Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð´Ð¾ Ñ€Ñ–Ð·Ð½Ð¸Ñ… Ñ‚Ð¸Ð¿Ñ–Ð²: REGISTER Ñƒ %B Ñ– %s Ñ€Ð°Ð½Ñ–ÑˆÐµ Ñƒ %BÐ¡Ð¸Ð¼Ð²Ð¾Ð» Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸, Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ñ–Ñ�Ð½ÑƒÑ”ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒÐŸÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� TLS Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¼ Ð±ÐµÐ· Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ñ… Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð²ÐŸÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� TOC: 0x%lx > 0x10000; Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ -mminimal-toc Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ�Ð¢Ð°Ð±Ð»Ð¸Ñ‡Ð½Ñ– Ð°Ð´Ñ€ÐµÑ�Ð¸
-ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ‚Ð¾ÐºÑ–Ð² [.tls]ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐºÐ° Ñ‡Ð°Ñ�Ñƒ/Ð´Ð°Ñ‚Ð¸		%lx
+Ð¡Ð¸Ð¼Ð²Ð¾Ð» Â«sÂ» Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð´Ð¾ Ñ€Ñ–Ð·Ð½Ð¸Ñ… Ñ‚Ð¸Ð¿Ñ–Ð²: %s Ñƒ %B Ñ– REGISTER Ñ€Ð°Ð½Ñ–ÑˆÐµ Ñƒ %BÐ¡Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð´Ð¾ Ñ€Ñ–Ð·Ð½Ð¸Ñ… Ñ‚Ð¸Ð¿Ñ–Ð²: REGISTER Ñƒ %B Ñ– %s Ñ€Ð°Ð½Ñ–ÑˆÐµ Ñƒ %BÐ¡Ð¸Ð¼Ð²Ð¾Ð» Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸, Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ñ–Ñ�Ð½ÑƒÑ”Ð¡Ð¸Ð¼Ð²Ð¾Ð» Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¸Ð¼, Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¼ Ñ– Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ‚Ð¸Ñ�Ñ� Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Thumb.ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒÐŸÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� TLS Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¼ Ð±ÐµÐ· Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ñ… Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð²ÐŸÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� TOC: 0x%lx > 0x10000; Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ -mminimal-toc Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ�Ð¢Ð°Ð±Ð»Ð¸Ñ‡Ð½Ñ– Ð°Ð´Ñ€ÐµÑ�Ð¸
+ÐŸÐ¾Ð»Ðµ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ñƒ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð·Ñ– Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸ Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼ Ð´Ð»Ñ� Ñ†ÑŒÐ¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»ÑƒÐ Ð¾Ð·Ð¼Ñ–Ñ€ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸ Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸
+ÐŸÑ–Ð´ Ñ‡Ð°Ñ� Ñ�Ð¿Ñ€Ð¾Ð±Ð¸ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–Ð² Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ELF Ð· %B Ð²Ð¸Ð½Ð¸Ðº ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ‚Ð¾ÐºÑ–Ð² [.tls]ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐºÐ° Ñ‡Ð°Ñ�Ñƒ/Ð´Ð°Ñ‚Ð¸		%lx
 Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ‚Ð¸Ñ‚ÑƒÐ»ÑŒÐ½Ð¾Ð³Ð¾ Ñ‚ÐµÐºÑ�Ñ‚Ñƒ
-USRSTACKÐ�Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ñ–Ð²Ð½Ð¾Ñ†Ñ–Ð½Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ»Ð�ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ STO_SH5_ISA32 Ð½Ð°Ð´ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ Ð½Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¾Ð�ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ð¼Ð°ÑˆÐ¸Ð½Ð¸Ð�ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñ„Ð°Ð¹Ð»Ð° core OSF/1, %d
-Ð�ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ðµ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %sÐ�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¿Ñ–Ð´Ñ‚Ð¸Ð¿ EGSD, %dÐ�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ %dÐ�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %sÐ�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s + %sÐ�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ– %sÐ�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ INPUT_SECTION_FLAG, %s
-Ð�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� TI COFF, Â«0x%xÂ»Ð�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� 0x%xÐ�ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� .stabVOLATILE         Ð—Ð¼Ñ–Ð½Ð½Ñƒ Â«%sÂ» Ð¼Ð¾Ð¶Ð½Ð° Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ Ñƒ Ð¾Ð´Ð½Ñ–Ð¹ Ð· Ð¼Ð°Ð»Ð¸Ñ…, Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ñ… Ñ– Ð¼Ð°Ð»ÑŽÑ�Ñ–Ð½ÑŒÐºÐ¸Ñ… Ð¾Ð±Ð»Ð°Ñ�Ñ‚ÐµÐ¹ Ð´Ð°Ð½Ð¸Ñ…Ð—Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ‚Ð¸Ñ�Ñ� Ñƒ Ð¼Ð°Ð»Ñ–Ð¹ Ñ– Ð¼Ð°Ð»ÑŽÑ�Ñ–Ð½ÑŒÐºÑ–Ð¹ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð´Ð°Ð½Ð¸Ñ… Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ�Ð½Ð¾Ð—Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ‚Ð¸Ñ�Ñ� Ñƒ Ð¼Ð°Ð»Ñ–Ð¹ Ñ– Ð½ÑƒÐ»ÑŒÐ¾Ð²Ñ–Ð¹ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð´Ð°Ð½Ð¸Ñ… Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ�Ð½Ð¾Ð—Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ‚Ð¸Ñ�Ñ� Ñƒ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ñ–Ð¹ Ñ– Ð¼Ð°Ð»ÑŽÑ�Ñ–Ð½ÑŒÐºÑ–Ð¹ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð´Ð°Ð½Ð¸Ñ… Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ�Ð½Ð¾Ð—Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð·Ð°Ð¹Ð¼Ð°Ñ‚Ð¸ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ð¼Ð°Ð»Ð¸Ñ… Ð¾Ð±Ð»Ð°Ñ�Ñ‚ÐµÐ¹ Ð´Ð°Ð½Ð¸Ñ…ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .pdata (%ld) Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ %d
-ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸, Ð° Ñƒ %B Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð¾: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° >= %lu, Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾: %lu.ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ, Ð° Ñƒ %B Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ -mdouble-float, Ð° Ñƒ %B â€” -mips32r2 -mfp64ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ -msingle-float, Ð° Ñƒ %B â€” -mdouble-floatÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ -msingle-float, Ð° Ñƒ %B â€” -mips32r2 -mfp64ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ, Ð° Ñƒ %B â€” Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ð»Ñ� Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ», Ð° Ñƒ %B â€” Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð°ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B r3/r4 Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð´Ð»Ñ� Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ� Ð¼Ð°Ð»Ð¸Ñ… Ñ�Ñ‚Ñ€ÑƒÐºÑ‚ÑƒÑ€, Ð° Ñƒ %B Ð´Ð»Ñ� Ñ†ÑŒÐ¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð¿Ð°Ð¼â€™Ñ�Ñ‚ÑŒÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ», Ð° Ñƒ %B â€” Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ð»Ñ� Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ð· Ñ‡Ð¸Ñ�Ð»Ð°Ð¼Ð¸ Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ, %dÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñƒ ÑƒÐ³Ð¾Ð´Ñƒ, %d, Ñ‰Ð¾Ð´Ð¾ Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ� Ð¼Ð°Ð»ÐµÐ½ÑŒÐºÐ¸Ñ… Ñ�Ñ‚Ñ€ÑƒÐºÑ‚ÑƒÑ€ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð½Ð¸Ð¹ ABI %dÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð²ÐµÐºÑ‚Ð¾Ñ€Ð½Ð¸Ð¹ ABI Â«%sÂ», Ð° Ñƒ %B â€” Â«%sÂ»ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° EABI %dÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð·Ð½Ñ�Ñ‚Ð¾ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ñƒ %B, Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð· Ð½Ð¸Ð¼ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� ÐºÐ¾Ð´, Ñ�ÐºÐ¸Ð¹ Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸, Ñƒ %BÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð·Ð½Ñ�Ñ‚Ð¾ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ñƒ %B Ñƒ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´ÑŒ Ð½Ð° Ð·Ð°Ð¿Ð¸Ñ‚ Ð·Ð·Ð¾Ð²Ð½Ñ–ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ñƒ %B Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾, Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð¹Ð¾Ð³Ð¾ Ð²Ð¶Ðµ Ð±ÑƒÐ»Ð¾ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñ‚Ð°Ðº, Ñ‰Ð¾Ð± Ð²Ñ–Ð½ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½Ñ�Ð² Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚ÑƒÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� RX_SYM Ð· Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð·Ð°Ð¿Ð¸Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ» Ð·Ð° Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼ (Ñ‚Ð¾Ð±Ñ‚Ð¾ Ð²Ñ–Ð´â€™Ñ”Ð¼Ð½Ð¸Ð¼) Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ Ñƒ Ñ„Ð°Ð¹Ð»Ñ–, 0x%lx.ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� %u Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ %B Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� (%u) Ð¹Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %AÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� %u Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ %B Ñ” Ð¼ÐµÐ½ÑˆÐ¸Ð¼ Ð·Ð° %u Ñƒ %BÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ÐºÑ–Ð»ÑŒÐºÐ¾Ñ�Ñ‚Ñ– Ð°Ð´Ñ€ÐµÑ�Ð½Ð¸Ñ… Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·Ð¾Ðº
-ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ gc-sections Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð· %lu Ñƒ %B Ð½Ð° %lu Ñƒ %BÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ‚Ð¸Ð¿ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð· %d Ð½Ð° %d Ñƒ %BÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð·Ð°Ð¿Ð¸Ñ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð°Ñ€Ñ…Ñ–Ð²Ñƒ Ð±ÑƒÐ»Ð¾ Ð¿Ð¾Ð²Ñ–Ð»ÑŒÐ½Ð¸Ð¼: Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ�ÑƒÑ”Ð¼Ð¾ Ñ‡Ð°Ñ�Ð¾Ð²Ñƒ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐºÑƒ
-Ð—Ð°Ð¿Ð¸Ñ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾Ñ— Ñ‡Ð°Ñ�Ð¾Ð²Ð¾Ñ— Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐºÐ¸ armap[%u]: %u
-[%u]: Ð½Ð¸Ð¶Ð½Ñ�: %u, Ð²ÐµÑ€Ñ…Ð½Ñ�: %u
-[abi=16-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ Ñ†Ñ–Ð»Ðµ, [abi=32-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ Ñ†Ñ–Ð»Ðµ, [Ñ‡Ð¸ÑŽ Ð½Ð°Ð·Ð²Ñƒ Ð²Ñ‚Ñ€Ð°Ñ‡ÐµÐ½Ð¾]\%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Arm BLX Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–ÑŽ Arm Â«%sÂ»._bfd_vms_output_counted Ð²Ð¸ÐºÐ»Ð¸ÐºÐ°Ð½Ð¾ Ð´Ð»Ñ� Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¾Ñ— ÐºÑ–Ð»ÑŒÐºÐ¾Ñ�Ñ‚Ñ– Ð±Ð°Ð¹Ñ‚Ñ–Ð²_bfd_vms_output_counted Ð²Ð¸ÐºÐ»Ð¸ÐºÐ°Ð½Ð¾ Ð´Ð»Ñ� Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¾Ñ— ÐºÑ–Ð»ÑŒÐºÐ¾Ñ�Ñ‚Ñ– Ð±Ð°Ð¹Ñ‚Ñ–Ð²Ð°Ð´Ñ€ÐµÑ�Ð°Ð°Ð´Ñ€ÐµÑ�Ñƒ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾ Ð·Ð° Ð¼ÐµÐ¶ÐµÑŽ Ñ�Ð»Ð¾Ð²Ð°arsize: %u, a0: 0x%08x
+Ð—Ð°Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² GOT Ð´Ð»Ñ� -fpic. Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð· -fPICÐ—Ð°Ð±Ð°Ð³Ð°Ñ‚Ð¾ ÐºÐ¾Ð´Ñ–Ð² Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ� (%ld)
+Ð¡Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÑƒÑ‚Ð¸ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–ÑŽ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð´Ð»Ñ� ÑƒÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ� Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒÐ¢Ð¸Ð¿                 Ð Ð¾Ð·Ð¼     Rva      Ð—Ñ�ÑƒÐ²
+USRSTACKÐ�Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ñ–Ð²Ð½Ð¾Ñ†Ñ–Ð½Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ»Ð�ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ Ð´Ð¾Ñ�Ñ�Ð³Ñ‚Ð¸ %s (Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%08x) Ñ–Ð· Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° (Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%08x), Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ� (%d) Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð¿Ð¾Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ, Ð²Ñ–Ð´ -32678 Ð´Ð¾ 32767.
+Ð�Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� EIHS Ð·Ñ– Ð·Ñ�ÑƒÐ²Ð¾Ð¼ %#xÐ�ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ STO_SH5_ISA32 Ð½Ð°Ð´ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ Ð½Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¾Ð�ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ð¼Ð°ÑˆÐ¸Ð½Ð¸Ð�ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñ„Ð°Ð¹Ð»Ð° core OSF/1, %d
+Ð�ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ðµ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %sÐ�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹Ð�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¿Ñ–Ð´Ñ‚Ð¸Ð¿ EGSD, %dÐ�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ %dÐ�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %sÐ�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s + %sÐ�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ– %sÐ�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹: %xÐ�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MIPS: %dÐ�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ INPUT_SECTION_FLAG, %s
+Ð�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� TI COFF, Â«0x%xÂ»Ð�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� 0x%xÐ�ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� .stabÐ�ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CR16: 0x%x
+VOLATILE         Ð—Ð¼Ñ–Ð½Ð½Ñƒ Â«%sÂ» Ð¼Ð¾Ð¶Ð½Ð° Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ Ñƒ Ð¾Ð´Ð½Ñ–Ð¹ Ð· Ð¼Ð°Ð»Ð¸Ñ…, Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ñ… Ñ– Ð¼Ð°Ð»ÑŽÑ�Ñ–Ð½ÑŒÐºÐ¸Ñ… Ð¾Ð±Ð»Ð°Ñ�Ñ‚ÐµÐ¹ Ð´Ð°Ð½Ð¸Ñ…Ð—Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ‚Ð¸Ñ�Ñ� Ñƒ Ð¼Ð°Ð»Ñ–Ð¹ Ñ– Ð¼Ð°Ð»ÑŽÑ�Ñ–Ð½ÑŒÐºÑ–Ð¹ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð´Ð°Ð½Ð¸Ñ… Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ�Ð½Ð¾Ð—Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ‚Ð¸Ñ�Ñ� Ñƒ Ð¼Ð°Ð»Ñ–Ð¹ Ñ– Ð½ÑƒÐ»ÑŒÐ¾Ð²Ñ–Ð¹ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð´Ð°Ð½Ð¸Ñ… Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ�Ð½Ð¾Ð—Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ‚Ð¸Ñ�Ñ� Ñƒ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ñ–Ð¹ Ñ– Ð¼Ð°Ð»ÑŽÑ�Ñ–Ð½ÑŒÐºÑ–Ð¹ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð´Ð°Ð½Ð¸Ñ… Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ�Ð½Ð¾Ð—Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð·Ð°Ð¹Ð¼Ð°Ñ‚Ð¸ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ð¼Ð°Ð»Ð¸Ñ… Ð¾Ð±Ð»Ð°Ñ�Ñ‚ÐµÐ¹ Ð´Ð°Ð½Ð¸Ñ…Ð’Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .pdata (%ld) Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ñ€ÐµÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ (%ld)
+ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .pdata (%ld) Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ %d
+ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸, Ð° Ñƒ %B Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð¾: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° >= %lu, Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾: %lu.ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ, Ð° Ñƒ %B Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” %s (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %B), Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” %sÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” %s (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %B), Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI MSA, %dÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” %s (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %B), Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI Ð´Ð»Ñ� Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ð· Ñ‡Ð¸Ñ�Ð»Ð°Ð¼Ð¸ Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ, %dÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ 64-Ð±Ñ–Ñ‚Ð¾Ð²Ñ– Ð´Ð¾Ð²Ð³Ñ– Ñ†Ñ–Ð»Ñ– Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ–Ð· Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ, Ð° Ñƒ %B â€” 128-Ð±Ñ–Ñ‚Ð¾Ð²Ñ–ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð²ÐµÐºÑ‚Ð¾Ñ€Ð½Ð¸Ð¹ ABI AltiVec, %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð²ÐµÐºÑ‚Ð¾Ñ€Ð½Ð¸Ð¹ ABI SPEÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ Ð´Ð¾Ð²Ð³Ñ– Ñ†Ñ–Ð»Ñ– Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ–Ð· Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ IBM, Ð° Ñƒ %B â€” IEEEÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ, Ð° Ñƒ %B â€” Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ð»Ñ� Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ», Ð° Ñƒ %B â€” Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð°ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B r3/r4 Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð´Ð»Ñ� Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ� Ð¼Ð°Ð»Ð¸Ñ… Ñ�Ñ‚Ñ€ÑƒÐºÑ‚ÑƒÑ€, Ð° Ñƒ %B Ð´Ð»Ñ� Ñ†ÑŒÐ¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð¿Ð°Ð¼â€™Ñ�Ñ‚ÑŒÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI MSA, %d, (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %B), Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” %sÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI MSA %d (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %B), Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI MSA, %dÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ð· Ñ‡Ð¸Ñ�Ð»Ð°Ð¼Ð¸ Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ, %d, (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %B), Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” %sÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ð· Ñ‡Ð¸Ñ�Ð»Ð°Ð¼Ð¸ Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ, %d, (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %B), Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI Ð´Ð»Ñ� Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ, %dÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼, %s Ð· %s.
+ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° ARC %dÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° EABI %dÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° MSPABI %dÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s (%ld) Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ %d
+ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s (%ld) Ñ” Ð¼ÐµÐ½ÑˆÐ¸Ð¼ Ð·Ð° Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ (%ld)
+ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ñ” Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼
+ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð·Ð½Ñ�Ñ‚Ð¾ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ñƒ %B, Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð· Ð½Ð¸Ð¼ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� ÐºÐ¾Ð´, Ñ�ÐºÐ¸Ð¹ Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸, Ñƒ %BÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð·Ð½Ñ�Ñ‚Ð¾ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ñƒ %B Ñƒ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´ÑŒ Ð½Ð° Ð·Ð°Ð¿Ð¸Ñ‚ Ð·Ð·Ð¾Ð²Ð½Ñ–ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ñƒ %B Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾, Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð¹Ð¾Ð³Ð¾ Ð²Ð¶Ðµ Ð±ÑƒÐ»Ð¾ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñ‚Ð°Ðº, Ñ‰Ð¾Ð± Ð²Ñ–Ð½ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½Ñ�Ð² Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚ÑƒÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� RL78_SYM Ð· Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� RX_SYM Ð· Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� %u Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ %B Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� (%u) Ð¹Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %AÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� %u Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ %B Ñ” Ð¼ÐµÐ½ÑˆÐ¸Ð¼ Ð·Ð° %u Ñƒ %BÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ÐºÑ–Ð»ÑŒÐºÐ¾Ñ�Ñ‚Ñ– Ð°Ð´Ñ€ÐµÑ�Ð½Ð¸Ñ… Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·Ð¾Ðº
+ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ gc-sections Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð· %Lu Ñƒ %B Ð½Ð° %Lu Ñƒ %BÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð· %lu Ñƒ %B Ð½Ð° %lu Ñƒ %BÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñ” Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ñ– Ð¿Ð¾Ð·Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¾Ð¼ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ‚Ð¸Ð¿ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð· %d Ð½Ð° %d Ñƒ %BÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ Ð°Ð±Ð¾ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ Ð·Ð°Ñ�Ñ‚Ð°Ñ€Ñ–Ð»Ñ–. 
+	       Ð’Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ð¼Ð¾ Ñ‚Ð¸Ð¿Ð¾Ð²Ñƒ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ñƒ.
+ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð·Ð°Ð¿Ð¸Ñ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð°Ñ€Ñ…Ñ–Ð²Ñƒ Ð±ÑƒÐ»Ð¾ Ð¿Ð¾Ð²Ñ–Ð»ÑŒÐ½Ð¸Ð¼: Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ�ÑƒÑ”Ð¼Ð¾ Ñ‡Ð°Ñ�Ð¾Ð²Ñƒ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐºÑƒ
+Ð—Ð°Ð¿Ð¸Ñ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾Ñ— Ñ‡Ð°Ñ�Ð¾Ð²Ð¾Ñ— Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐºÐ¸ armapÐ�Ð´Ñ€ÐµÑ�Ð° XGATE (%lx) Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÐ¾Ð²Ð°Ð½Ð° Ð¿Ð¾Ð·Ð° RAM Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� (0xE000-0xFFFF), Ñ‚Ð¾Ð¼Ñƒ Ð²Ð°Ð¼ Ñ�Ð»Ñ–Ð´ Ð²Ñ€ÑƒÑ‡Ð½Ñƒ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð°Ð´Ñ€ÐµÑ�Ð¸ Ñ–, Ð¹Ð¼Ð¾Ð²Ñ–Ñ€Ð½Ð¾, ÐºÐµÑ€ÑƒÐ²Ð°Ñ‚Ð¸ Ñ�Ñ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¾ÑŽ Ð¿Ð°Ð¼â€™Ñ�Ñ‚Ñ– Ñƒ Ð²Ð°ÑˆÐ¾Ð¼Ñƒ ÐºÐ¾Ð´Ñ–.[%u]: Ð½Ð¸Ð¶Ð½Ñ�: %u, Ð²ÐµÑ€Ñ…Ð½Ñ�: %u
+[abi=16-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ Ñ†Ñ–Ð»Ðµ, [abi=32-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ Ñ†Ñ–Ð»Ðµ, [Ñ‡Ð¸ÑŽ Ð½Ð°Ð·Ð²Ñƒ Ð²Ñ‚Ñ€Ð°Ñ‡ÐµÐ½Ð¾]\%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Arm BLX Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–ÑŽ Arm Â«%sÂ»._bfd_vms_output_counted Ð²Ð¸ÐºÐ»Ð¸ÐºÐ°Ð½Ð¾ Ð´Ð»Ñ� Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¾Ñ— ÐºÑ–Ð»ÑŒÐºÐ¾Ñ�Ñ‚Ñ– Ð±Ð°Ð¹Ñ‚Ñ–Ð²_bfd_vms_output_counted Ð²Ð¸ÐºÐ»Ð¸ÐºÐ°Ð½Ð¾ Ð´Ð»Ñ� Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¾Ñ— ÐºÑ–Ð»ÑŒÐºÐ¾Ñ�Ñ‚Ñ– Ð±Ð°Ð¹Ñ‚Ñ–Ð²Â«%sÂ» Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–ÑŽ Ð±ÐµÐ· Ð²Ñ…Ð¾Ð´Ñƒ.Ð°Ð´Ñ€ÐµÑ�Ð°Ð°Ð´Ñ€ÐµÑ�Ñƒ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾ Ð·Ð° Ð¼ÐµÐ¶ÐµÑŽ Ñ�Ð»Ð¾Ð²Ð°Ð´ÐµÑ�ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ñ€ Ð¼Ð°Ñ�Ð¸Ð²Ñƒ:
+Ð¼Ð°Ñ�Ð¸Ð², Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð½Ñ–Ñ�Ñ‚ÑŒ: %u, Ð±Ñ–Ñ‚Ð¾Ð²Ð° ÐºÐ°Ñ€Ñ‚Ð°: arsize: %u, a0: 0x%08x
+Ð°Ñ‚Ð¾Ð¼Ð°Ñ€Ð½Ð¸Ð¹, Ñ‚Ð¸Ð¿=0x%02x %s
 Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñƒ %sÐ·Ð°Ð½ÐµÑ�ÐµÐ½Ð° Ð´Ð¾ Ð±Ð°Ð½ÐºÑƒ Ð°Ð´Ñ€ÐµÑ�Ð° [%lx:%04lx] (%lx) Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ð¾Ð´Ð½Ð¾Ð¼Ñƒ Ð±Ð°Ð½ÐºÑƒ Ð· Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ, Ð·Ð°Ð½ÐµÑ�ÐµÐ½Ð¾ÑŽ Ð´Ð¾ Ð±Ð°Ð½ÐºÑƒ, [%lx:%04lx] (%lx)Ð¾Ñ�Ð½Ð¾Ð²Ð°: %u, Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ�: %u
-bfd_mach_o_canonicalize_symtab: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸bfd_mach_o_read_dysymtab_symbol: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %lu Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ð· %lubfd_mach_o_read_symtab_symbol: Ð½Ð°Ð·Ð²Ð° Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ð½Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ (%lu >= %lu)bfd_mach_o_read_symtab_symbol: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñ” Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¼ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ�Ð¼ Â«indirectÂ»: Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÑŽÑ”Ð¼Ð¾ Ñƒ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�bfd_mach_o_read_symtab_symbol: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» %d (max %lu): Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÑŽÑ”Ð¼Ð¾ Ñƒ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�bfd_mach_o_read_symtab_symbol: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿Ð¾Ð»Ñ� 0x%x: Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÑŽÑ”Ð¼Ð¾ Ñƒ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�bfd_mach_o_read_symtab_symbol: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %d Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ñƒ %lubfd_mach_o_read_symtab_symbols: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð¾Ð±Ð»Ð°Ñ�Ñ‚ÑŒ Ð¿Ð°Ð¼â€™Ñ�Ñ‚Ñ– Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²bfd_mach_o_scan: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð°, 0x%lx/0x%lxbfd_pef_scan: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð°, 0x%lxblkbeg: Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x, Ð½Ð°Ð·Ð²Ð°: %.*s
+bfd_mach_o_canonicalize_symtab: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸bfd_mach_o_read_section_32: Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ�: 0x%x, Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ð¼Ð¾ Ð·Ð°Ð¼Ñ–Ñ�Ñ‚ÑŒ Ð½ÑŒÐ¾Ð³Ð¾ 32bfd_mach_o_read_section_64: Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ�: 0x%x, Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ð¼Ð¾ Ð·Ð°Ð¼Ñ–Ñ�Ñ‚ÑŒ Ð½ÑŒÐ¾Ð³Ð¾ 32bfd_mach_o_read_symtab_symbol: Ð½Ð°Ð·Ð²Ð° Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ð½Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ (%lu >= %lu)bfd_mach_o_read_symtab_symbol: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» %d (max %lu): Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÑŽÑ”Ð¼Ð¾ Ñƒ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�bfd_mach_o_read_symtab_symbol: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿Ð¾Ð»Ñ� 0x%x: Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÑŽÑ”Ð¼Ð¾ Ñƒ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�bfd_mach_o_read_symtab_symbol: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %d Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ñƒ %lubfd_mach_o_read_symtab_symbols: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð¾Ð±Ð»Ð°Ñ�Ñ‚ÑŒ Ð¿Ð°Ð¼â€™Ñ�Ñ‚Ñ– Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²bfd_mach_o_scan: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð°, 0x%lx/0x%lxbfd_pef_scan: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð°, 0x%lxblkbeg: Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x, Ð½Ð°Ð·Ð²Ð°: %.*s
 blkend: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: 0x%08x
-Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð°Ð´Ñ€ÐµÑ�Ð½Ñƒ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÑƒ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ EMH Ñƒ Ð¿ÐµÑ€ÑˆÐ¾Ð¼Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– GST
+Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� %sÐ½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð°Ð´Ñ€ÐµÑ�Ð½Ñƒ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÑƒ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ EMH Ñƒ Ð¿ÐµÑ€ÑˆÐ¾Ð¼Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– GST
 Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ R_MEM_INDIRECT, Ñ�ÐºÑ‰Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð¾ %sÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ DMT
 Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº DMT
 Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ psect DMT
@@ -1109,19 +1345,28 @@ X-Generator: Lokalize 1.5
 Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ð·Ð°Ð¿Ð¸Ñ�Ñƒ GST
 Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ GST
 ÐºÐ»Ð°Ñ�: %u, dtype: %u, Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %u, Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸Ðº: 0x%08x
-Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» %s Ñƒ %BÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ° __ctbpÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ° __epÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ° __gpÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ Ð¾Ð±Ñ€Ð°Ð· Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Â«%sÂ» Ð· Â«%sÂ»Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€=HC11]Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€=HC12]Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€=HCS12]Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¿Ñ€Ð¸Ñ€Ñ–Ñ�Ñ‚ pc +%-4ddelta_pc_l: +0x%08x
+Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» %s Ñƒ %BÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» %sÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ° __ctbpÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ° __epÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ° __gpÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ Ð¾Ð±Ñ€Ð°Ð· Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Â«%sÂ» Ð· Â«%sÂ»Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€=HC11]Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€=HC12]Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€=HCS12]Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€=XGATE]Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¿Ñ€Ð¸Ñ€Ñ–Ñ�Ñ‚ pc +%-4ddelta_pc_l: +0x%08x
 delta_pc_w %u
 Ð´ÐµÑ�Ðºdimct: %u, aflags: 0x%02x, Ñ†Ð¸Ñ„Ñ€: %u, ÑˆÐºÐ°Ð»Ð°: %u
-Ð²Ñ–Ð´ÐºÐ¸Ð½ÑƒÑ‚Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ…: Â«%AÂ»Ñ€Ð¾Ð·Ñ€Ð¸Ð²Ð½Ð¸Ð¹ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½ (nbr: %u)
+Ð²Ñ–Ð´ÐºÐ¸Ð½ÑƒÑ‚Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ…: Â«%AÂ»Ð²Ñ–Ð´ÐºÐ¸Ð´Ð°Ñ”Ð¼Ð¾ FDE Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ Ð°Ð´Ñ€ÐµÑ� Ñƒ %B(%A).
+Ñ€Ð¾Ð·Ñ€Ð¸Ð²Ð½Ð¸Ð¹ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½ (nbr: %u)
 Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð° Ð·Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð¼Ð°Ñ” Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€enumbeg, Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %u, Ð½Ð°Ð·Ð²Ð°: %.*s
 enumelt, Ð½Ð°Ð·Ð²Ð°: %.*s
 enumend
 ÐµÐ¿Ñ–Ð»Ð¾Ð³: Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–: %u, Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸Ðº: %u
-Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (0x%s) Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A, Ñ�ÐºÐµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð», Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ñ–Ñ�Ð½ÑƒÑ”Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð½Ðµ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Maverick, Ð° Ñƒ %B â€” Ñ‚Ð°ÐºÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¶Ðµ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñƒ Ð¾Ñ�Ñ‚Ð°Ñ‚Ð¾Ñ‡Ð½Ð¾Ð¼Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– BE8Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñ�Ðº ÐºÐ¾Ð´ Ð· Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼, Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %B Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¾Ñ— Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ—Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñ�Ðº ÐºÐ¾Ð´ Ð· Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¼ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼, Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %B Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¾Ñ— Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ—Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� APCS-%d, Ð° %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� APCS-%dÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� APCS-%d, Ñ‚Ð¾Ð´Ñ– Ñ�Ðº %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” APCS-%dÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� EP9312, Ð° %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� XScaleÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¿ÐµÑ€ÐµÐ´Ð°Ñ” Ñ‡Ð¸Ñ�Ð»Ð° Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽ Ð´Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð², Ð° %B Ð¿ÐµÑ€ÐµÐ´Ð°Ñ” Ñ—Ñ… Ñƒ Ñ†Ñ–Ð»Ð¾Ñ‡Ð¸Ñ�ÐµÐ»ÑŒÐ½Ñ– Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¿ÐµÑ€ÐµÐ´Ð°Ñ” Ñ†Ñ–Ð»Ñ– Ñ‡Ð¸Ñ�Ð»Ð° Ð´Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð², Ð° %B Ð¿ÐµÑ€ÐµÐ´Ð°Ñ” Ñ—Ñ… Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸ Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” Ð±Ñ–Ð»ÑŒÑˆÐ¾Ð³Ð¾ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� Ð¼Ð°Ñ�Ð¸Ð²Ñƒ, Ð½Ñ–Ð¶ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾ Ñƒ %BÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” Ð±Ñ–Ð»ÑŒÑˆÐ¾Ð³Ð¾ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� Ñ�Ñ‚ÐµÐºÐ°, Ð½Ñ–Ð¶ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾ Ñƒ %BÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ FPA, Ð° Ñƒ %B â€” Ð½Ñ–Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Maverick, Ð° Ñƒ %B â€” Ð½Ñ–Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ VFP, Ð° Ñƒ %B â€” Ð½Ñ–Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¸ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸ VFP, Ð° Ñƒ %B â€” Ð½Ñ–Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ñ– FP, Ð° Ñƒ %B â€” Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ñ– FPÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¸-Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸ iWMMXt, Ð° Ñƒ %B â€” Ð½Ñ–Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ñ– FP, Ð° Ñƒ %B â€” Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ñ– FPÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€ Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€Ñ–Ð² %d/%dÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»Ñ–Ð² Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€, %c/%cÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ñƒ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ– R9Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ð¼Ñ–Ñ�Ñ‚Ñ�Ñ‚ÑŒÑ�Ñ� Ð´Ð°Ð½Ñ– Ñƒ Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð¼Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–, Ñ†Ñ– Ð´Ð°Ð½Ñ– Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¾ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð¼ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² Â«%sÂ»Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð¼Ñ–Ñ‚ÐºÐ° Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Â«%d, %sÂ» Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð° Ð· Ð¼Ñ–Ñ‚ÐºÐ¾ÑŽ Â«%d, %sÂ»Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð°Ñ†Ñ–Ñ— SB ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ÑƒÑ” Ð· Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�Ð¼ R9Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€Ð°Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð°Ð´Ñ€ÐµÑ�Ð¸Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð· %B Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²ÐµÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¾Ð±â€™Ñ”ÐºÑ‚-Ð´Ð¶ÐµÑ€ÐµÐ»Ð¾, %B, Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð²ÐµÑ€Ñ�Ñ–ÑŽ EABI %d, Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�, %B, Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð²ÐµÑ€Ñ�Ñ–ÑŽ EABI %dÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñ€Ð¾Ð·Ð±Ñ–Ð¶Ð½Ð¾Ñ�Ñ‚Ñ– Ñƒ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ– Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� fp16 Ð¼Ñ–Ð¶ %B Ñ‚Ð° %BÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� (Ð·Ð°Ð±ÑƒÐ»Ð¸ -fpic?)Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» __rtinitÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Tag_ABI_array_object_align_expected Ñƒ %BÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Tag_ABI_array_object_alignment Ñƒ %BÐ²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚Ð¸ Ð½Ð¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» APUinfo.Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±Ñ‡Ð¸Ñ�Ð»Ð¸Ñ‚Ð¸ Ð½Ð¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» APUinfo.Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð½Ð¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» APUinfo.ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ð¿Ñ€Ð¾Ð±Ð¸ Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� .fixupÑ‚Ð¸Ð¿Ð¾Ð²Ð¸Ð¹ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»Ñ�Ñ‚Ð¸ %sÐ²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½ÑƒÐ²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° Ð±ÐµÐ· Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� _gpÐ¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ð¼Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s
+Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ñ‚Ð¸Ð¿Ñƒ Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€Ð° Ð· Ð¿Ñ€Ð¸Ð²Ð°Ñ‚Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… elfÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (%#Lx) Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A, Ñ�ÐºÐµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð», Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ñ–Ñ�Ð½ÑƒÑ”Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð½Ðµ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Maverick, Ð° Ñƒ %B â€” Ñ‚Ð°ÐºÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¶Ðµ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñƒ Ð¾Ñ�Ñ‚Ð°Ñ‚Ð¾Ñ‡Ð½Ð¾Ð¼Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– BE8Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñ�Ðº ÐºÐ¾Ð´ Ð· Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼, Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %B Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¾Ñ— Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ—Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñ�Ðº ÐºÐ¾Ð´ Ð· Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¼ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼, Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %B Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¾Ñ— Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ—Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� APCS-%d, Ð° %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� APCS-%dÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� APCS-%d, Ñ‚Ð¾Ð´Ñ– Ñ�Ðº %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” APCS-%dÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� EP9312, Ð° %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� XScaleÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” 8-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¾Ð³Ð¾ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ�, Ð°Ð»Ðµ %B Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²Ð°Ð½Ð¾ Ð½Ð° 4-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¿ÐµÑ€ÐµÐ´Ð°Ñ” Ñ‡Ð¸Ñ�Ð»Ð° Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽ Ð´Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð², Ð° %B Ð¿ÐµÑ€ÐµÐ´Ð°Ñ” Ñ—Ñ… Ñƒ Ñ†Ñ–Ð»Ð¾Ñ‡Ð¸Ñ�ÐµÐ»ÑŒÐ½Ñ– Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¿ÐµÑ€ÐµÐ´Ð°Ñ” Ñ†Ñ–Ð»Ñ– Ñ‡Ð¸Ñ�Ð»Ð° Ð´Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð², Ð° %B Ð¿ÐµÑ€ÐµÐ´Ð°Ñ” Ñ—Ñ… Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸ Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” Ð±Ñ–Ð»ÑŒÑˆÐ¾Ð³Ð¾ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� Ð¼Ð°Ñ�Ð¸Ð²Ñƒ, Ð½Ñ–Ð¶ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾ Ñƒ %BÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” Ð±Ñ–Ð»ÑŒÑˆÐ¾Ð³Ð¾ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� Ñ�Ñ‚ÐµÐºÐ°, Ð½Ñ–Ð¶ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾ Ñƒ %BÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— %s, Ð°Ð»Ðµ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” %sÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ 64-Ð±Ñ–Ñ‚Ð¾Ð²Ñ– Ð´Ñ–Ð¹Ñ�Ð½Ñ– Ñ‡Ð¸Ñ�Ð»Ð° Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾Ñ— Ñ‚Ð¾Ñ‡Ð½Ð¾Ñ�Ñ‚Ñ–, Ð° Ñƒ %B â€” 32-Ð±Ñ–Ñ‚Ð¾Ð²Ñ–Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ FPA, Ð° Ñƒ %B â€” Ð½Ñ–Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ FPU-3.0, Ð°Ð»Ðµ Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð»Ð¸ÑˆÐµ FPU-2.0Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Maverick, Ð° Ñƒ %B â€” Ð½Ñ–Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ VFP, Ð° Ñƒ %B â€” Ð½Ñ–Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¸ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸ VFP, Ð° Ñƒ %B â€” Ð½Ñ–Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ñ– FP, Ð° Ñƒ %B â€” Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ñ– FPÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¸-Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸ iWMMXt, Ð° Ñƒ %B â€” Ð½Ñ–Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ñ– FP, Ð° Ñƒ %B â€” Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ñ– FPÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ ÐºÐ¾Ð´Ñƒ %s, Ñ‚Ð¾Ð´Ñ– Ñ�Ðº %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ ÐºÐ¾Ð´Ñƒ %sÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð´Ð°Ð½Ð¸Ñ… %s, Ð° Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð»Ð¸ÑˆÐµ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— MSP430Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð´Ð°Ð½Ð¸Ñ… %s, Ñ‚Ð¾Ð´Ñ– Ñ�Ðº %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð´Ð°Ð½Ð¸Ñ… %sÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð²ÐµÐ»Ð¸ÐºÐ¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ, Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— MSP430Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð¼Ð°Ð»Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ, Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð´Ð°Ð½Ð¸Ñ… %sÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B(%A) Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼ (%#lx Ð±Ð°Ð¹Ñ‚Ñ–Ð²)Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: <Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾Ð³Ð¾ ISA x86: 0x%x>Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: <Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾Ð³Ð¾ ISA x86: 0x%x>Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: <Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾Ñ�Ñ‚Ñ– x86: 0x%x>Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¾Ð³Ð¾ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÑƒ Ð±Ð°Ð¹Ñ‚Ñ–Ð² R2 Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾.Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€ Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€Ñ–Ð² %d/%dÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»Ñ–Ð² Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€, %c/%cÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ñƒ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ– R9Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ð¼Ñ–Ñ�Ñ‚Ñ�Ñ‚ÑŒÑ�Ñ� Ð´Ð°Ð½Ñ– Ñƒ Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð¼Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–, Ñ†Ñ– Ð´Ð°Ð½Ñ– Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¾ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð¼ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² Â«%sÂ»Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð¼Ñ–Ñ‚ÐºÐ° Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Â«%d, %sÂ» Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð° Ð· Ð¼Ñ–Ñ‚ÐºÐ¾ÑŽ Â«%d, %sÂ»Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð°Ñ†Ñ–Ñ— SB ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ÑƒÑ” Ð· Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�Ð¼ R9Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€Ð°Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ�Ð½Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ rf16 Ñ– Ð¿Ð¾Ð²Ð½Ð¸Ð¹ Ð½Ð°Ð±Ñ–Ñ€ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² %B.
+Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ� ISA, %s Ð· %s.
+Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² %s.
+Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² %s: %s Ð· %s.
+Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð°Ð´Ñ€ÐµÑ�Ð¸Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ Ð±Ð°Ð·Ð¾Ð²Ñ– Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€Ð° %s Ð· %s.
+Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ� ISA %s.
+Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð· %B Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²ÐµÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�Ð¸Ð¼Ð²Ð¾Ð» _SDA_BASE_.Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� IFC.Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñƒ IFC.Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¾Ð±â€™Ñ”ÐºÑ‚-Ð´Ð¶ÐµÑ€ÐµÐ»Ð¾, %B, Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð²ÐµÑ€Ñ�Ñ–ÑŽ EABI %d, Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�, %B, Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð²ÐµÑ€Ñ�Ñ–ÑŽ EABI %dÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñ€Ð¾Ð·Ð±Ñ–Ð¶Ð½Ð¾Ñ�Ñ‚Ñ– Ñƒ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ– Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� fp16 Ð¼Ñ–Ð¶ %B Ñ‚Ð° %BÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� (Ð·Ð°Ð±ÑƒÐ»Ð¸ -fpic?)Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» __rtinitÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Tag_ABI_array_object_align_expected Ñƒ %BÐ¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Tag_ABI_array_object_alignment Ñƒ %BÐ²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚Ð¸ Ð½Ð¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» APUinfo.Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±Ñ‡Ð¸Ñ�Ð»Ð¸Ñ‚Ð¸ Ð½Ð¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» APUinfo.Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð½Ð¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» APUinfo.ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ð¿Ñ€Ð¾Ð±Ð¸ Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� .fixupÑ‚Ð¸Ð¿Ð¾Ð²Ð¸Ð¹ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»Ñ�Ñ‚Ð¸ %sÐ²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½ÑƒÐ²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%08x, Ð²Ñ‚Ñ–Ð¼, _gp Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾
+Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° Ð±ÐµÐ· Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� _gpÐ¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»ÑƒÐ¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ð¼Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s
 incr_linum(b): +%u
 incr_linum_l: +%u
 incr_linum_w: +%u
-Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð»Ñ� R_LM32_16_GOTÐ²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½ÑƒÐ²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿Ñ–Ð´Ð¾Ð·Ñ€Ñ–Ð»Ð¸Ð²Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÑ†Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð½ÐµÐ¿Ð¾Ñ�Ð»Ñ–Ð´Ð¾Ð²Ð½Ñ–Ñ�Ñ‚ÑŒ Ñƒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð°Ñ… Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .got.locÐ²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð²Ñ…Ñ–Ð´Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… Ð½Ðµ Ñƒ
+Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹, Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñ‚ÑƒÑ‚: 0x%08x
+Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð»Ñ� R_LM32_16_GOTÐ²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð»Ñ� R_OR1K_GOT16Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Ð°Ð±Ð¾ Ð¿ÐµÑ€ÐµÑ…Ñ–Ð´ Ð´Ð¾ Ð½ÐµÐ¿Ð°Ñ€Ð½Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð¸Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ Â«%sÂ» Ð· Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¾ÑŽ Â«%sÂ» Ð¿Ñ€Ð¸Ð·Ð²ÐµÐ»Ð¾ Ð´Ð¾ Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾Ñ— Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½ÑƒÐ²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿Ñ–Ð´Ð¾Ð·Ñ€Ñ–Ð»Ð¸Ð²Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÑ†Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð½ÐµÐ¿Ð¾Ñ�Ð»Ñ–Ð´Ð¾Ð²Ð½Ñ–Ñ�Ñ‚ÑŒ Ñƒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð°Ñ… Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .got.locÐ²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»ÑƒÐ²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð²Ñ…Ñ–Ð´Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… Ð½Ðµ Ñƒ
  Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– ELF Ñ– Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… Ð½Ðµ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– mmo.
  Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ñ�ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð¹Ñ‚ÐµÑ�Ñ� Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¾ÑŽ objcopy Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ�
  Ð´Ð°Ð½Ð¸Ñ… Ð· ELF Ð°Ð±Ð¾ mmo Ð°Ð±Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�Ð¼ Â«-no-expandÂ»
@@ -1129,39 +1374,47 @@ X-Generator: Lokalize 1.5
  Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– ELF Ñ– Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… Ð½Ðµ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– mmo.
  Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ñ�ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð¹Ñ‚ÐµÑ�Ñ� Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¾ÑŽ objcopy Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ�
  Ð´Ð°Ð½Ð¸Ñ… Ð· ELF Ð°Ð±Ð¾ mmo Ð°Ð±Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�Ð¼ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° gcc
- Â«-mno-base-addressesÂ».Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %dÐ½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� %s Ð· ÐºÐ¾Ð½Ñ‚ÐµÐºÑ�Ñ‚Ð°Ð¼Ð¸ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº ip2k: Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— Ñ‰Ð¾Ð´Ð¾ Ñ�Ñ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¸ Ñƒ 0x%08lx (Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� = 0x%08lx).ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº ip2k: Ð·Ð°Ð¹Ð²Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ� Ñ‰Ð¾Ð´Ð¾ Ñ�Ñ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¸ Ñƒ 0x%08lx (Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� = 0x%08lx).ÐžÐ¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ‚Ð¾Ñ€ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ ip2k: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½ÑŒÐžÐ¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ‚Ð¾Ñ€ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ ip2k: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½ÑŒ Ð±ÐµÐ· Ð¿Ð¾Ð²Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ñ�Ñ‚Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ.Ð½Ð¾Ð¼ÐµÑ€ Ñ€Ñ�Ð´ÐºÐ°  (Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %u)
+ Â«-mno-base-addressesÂ».Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %dÐ½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� %s Ð· ÐºÐ¾Ð½Ñ‚ÐµÐºÑ�Ñ‚Ð°Ð¼Ð¸ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº ip2k: Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— Ñ‰Ð¾Ð´Ð¾ Ñ�Ñ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¸ Ñƒ 0x%08lx (Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� = 0x%08lx).ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº ip2k: Ð·Ð°Ð¹Ð²Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ� Ñ‰Ð¾Ð´Ð¾ Ñ�Ñ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¸ Ñƒ 0x%08lx (Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� = 0x%08lx).ÐžÐ¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ‚Ð¾Ñ€ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ ip2k: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½ÑŒÐžÐ¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ‚Ð¾Ñ€ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ ip2k: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½ÑŒ Ð±ÐµÐ· Ð¿Ð¾Ð²Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ñ�Ñ‚Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ.Ð¼Ñ–Ñ‚ÐºÐ°, Ð½Ð°Ð·Ð²Ð°: %.*s
+Ð´Ð¾Ð²Ð¶.: %2u, Ñ‚Ð¸Ð¿: %2u Ð½Ð¾Ð¼ÐµÑ€ Ñ€Ñ�Ð´ÐºÐ°  (Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %u)
 ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ð¾Ð±Ñ€Ð°Ð·ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ° Ñƒ %u Ð³Ñ€ÑƒÐ¿Ð°Ñ… %s
   Ð³Ñ–Ð»ÐºÐ°        %lu
   ÐºÐ¾Ñ€Ð¸Ð³. toc   %lu
   Ð´Ð¾Ð²Ð³Ð° Ð³Ñ–Ð»ÐºÐ°  %lu
   Ð´. ÐºÐ¾Ñ€. toc  %lu
-  plt-Ð²Ð¸ÐºÐ»Ð¸Ðº   %luÐ»Ñ–Ñ‚ÐµÑ€Ð°Ð»Ð²Ñ–Ð´Ð±ÑƒÐ²Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð±ÑƒÐºÐ²Ð°Ð»ÑŒÐ½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒmep: Ð½ÐµÐ¼Ð°Ñ” Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� ÐºÐ¾Ð´Ñƒ %dmodbeg
+  plt-Ð²Ð¸ÐºÐ»Ð¸Ðº   %lu
+  toc Ð²Ð¸Ðº. plt %lu
+  Ð·Ð°Ð³. Ð·Ð°Ð¿Ð¸Ñ�   %luÐ»Ñ–Ñ‚ÐµÑ€Ð°Ð»Ð²Ñ–Ð´Ð±ÑƒÐ²Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð±ÑƒÐºÐ²Ð°Ð»ÑŒÐ½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒmach-o: Ð½Ð°Ð´Ñ‚Ð¾ Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² (%u), Ð¼Ð°ÐºÑ�Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð° ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” 255,
+mep: Ð½ÐµÐ¼Ð°Ñ” Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� ÐºÐ¾Ð´Ñƒ %dmodbeg
 modend
-Ñ�Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ð¹Ñ€Ð¾Ð·Ñ€Ð¸Ð²Ð½Ð¸Ð¹ Ð¼Ð°Ñ�Ð¸Ð² %s
+Ð½Ð°Ð·Ð²Ð°: [Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�: %08lx Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° %d]: Ñ�Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ð¹Ð²Ð¿Ñ€Ð¾Ð²Ð°Ð´Ð¶ÐµÐ½Ð¾ Ð½Ð¾Ð²Ñ– Ð²Ñ…Ñ–Ð´Ð½Ñ– Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ—, Ð°Ð»Ðµ Ð½Ðµ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ…:Ð½Ñ–Ñ€Ð¾Ð·Ñ€Ð¸Ð²Ð½Ð¸Ð¹ Ð¼Ð°Ñ�Ð¸Ð² %s
 Ð½ÐµÐ´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ�Ð¸Ð»Ð°ÑŽÑ‚ÑŒÑ�Ñ� Ð½Ð° Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð», %sÑ�ÑƒÐ¼Ð° Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ 0x%v Ð±ÐµÐ· Ð¾Ð²ÐµÑ€Ð»ÐµÑŽ Ñ‚Ð° Ð¼Ð°ÐºÑ�Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð¾Ð²ÐµÑ€Ð»ÐµÑŽ 0x%v Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑŽÑ‚ÑŒ Ð¼Ñ–Ñ�Ñ‚ÐºÑ–Ñ�Ñ‚ÑŒ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ñ…Ð¾Ð²Ð¸Ñ‰Ð° Ð´Ð°Ð½Ð¸Ñ…
-Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– @fptrÐ½ÐµÐ´Ð¾Ñ�Ñ‚Ð°Ñ‚Ð½ÑŒÐ¾ Ð¿Ñ€Ð¾Ñ�Ñ‚Ð¾Ñ€Ñƒ GOT Ð´Ð»Ñ� Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² GOTÐ½Ðµ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¾: Ð´Ð°Ð½Ñ–=%lx Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¾=%d
+Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– @fptrÐ½ÐµÐ¼Ð°Ñ”Ð½ÐµÐ´Ð¾Ñ�Ñ‚Ð°Ñ‚Ð½ÑŒÐ¾ Ð¿Ñ€Ð¾Ñ�Ñ‚Ð¾Ñ€Ñƒ GOT Ð´Ð»Ñ� Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² GOTÐ½Ðµ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¾: Ð´Ð°Ð½Ñ–=%lx Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¾=%d
 Ð½Ðµ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¾: Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ Ð·Ð¼Ñ–Ð½Ð½Ñƒ Ñ�ÐµÑ€ÐµÐ´Ð¾Ð²Ð¸Ñ‰Ð° var
-Ð·Ð°ÑƒÐ²Ð°Ð¶ÐµÐ½Ð½Ñ�: Â«%sÂ» Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ %B DSO, Ð¾Ñ‚Ð¶Ðµ Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÑ”Ð¼Ð¾ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ Ð¹Ð¾Ð³Ð¾ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³Ð¾ Ñ€Ñ�Ð´ÐºÐ° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ°Ð¿Ð¾Ð·Ð° Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ñ�Ð»Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ÑƒÐ¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = %lxÐ·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = %lx:Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = %lx: Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = %x:Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = 0x%lxÐ·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = 0x%lx:Ð¿Ñ€Ð¾Ð»Ð¾Ð³: Ð°Ð´Ñ€ÐµÑ�Ð° bkpt 0x%08x
-Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð»recbeg: Ð½Ð°Ð·Ð²Ð°: %.*s
+Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾Ð¿Ð¾Ð·Ð° Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ñ�Ð»Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ÑƒÐ¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸Ðº
+Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = %lxÐ·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = %lx:Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = %lx: Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = %x:Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = 0x%lxÐ·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = 0x%lx:Ð¿Ñ€Ð¾Ð»Ð¾Ð³: Ð°Ð´Ñ€ÐµÑ�Ð° bkpt 0x%08x
+Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»ÑƒÐ·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» recbeg: Ð½Ð°Ð·Ð²Ð°: %.*s
 recend
-Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ð·Ð°Ð½ÐµÑ�ÐµÐ½Ñƒ Ð´Ð¾ Ð±Ð°Ð½ÐºÑƒ Ð°Ð´Ñ€ÐµÑ�Ñƒ [%lx:%04lx] Ñƒ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð¼Ñƒ Ð¿Ñ€Ð¾Ñ�Ñ‚Ð¾Ñ€Ñ– Ð°Ð´Ñ€ÐµÑ�, %04lxÑ€ÐµÐ³Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Â«%sÂ» Ñ‰Ðµ Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð», Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¼Ð¾Ð´ÑƒÐ»Ñ–Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±ÐµÐ½ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ð´Ð¾Ð´Ð°Ð½Ð¾ÐºÐ¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ Ð¿Ð°Ñ€Ð½Ð¸Ð¼ Ñ‡Ð¸Ñ�Ð»Ð¾Ð¼Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ñ–Ð¶ Ñ€Ñ–Ð·Ð½Ð¸Ð¼Ð¸ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°Ð¼Ð¸ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ� %B: %s
+Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ð·Ð°Ð½ÐµÑ�ÐµÐ½Ñƒ Ð´Ð¾ Ð±Ð°Ð½ÐºÑƒ Ð°Ð´Ñ€ÐµÑ�Ñƒ [%lx:%04lx] Ñƒ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð¼Ñƒ Ð¿Ñ€Ð¾Ñ�Ñ‚Ð¾Ñ€Ñ– Ð°Ð´Ñ€ÐµÑ�, %04lxÑ€ÐµÐ³Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (%d) Ñ” *Ð�Ð•Ð’Ð†Ð”ÐžÐœÐ˜Ðœ*Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Â«%sÂ» Ñ‰Ðµ Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½ÑƒÐ¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð», Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¼Ð¾Ð´ÑƒÐ»Ñ–Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±ÐµÐ½ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ð´Ð¾Ð´Ð°Ð½Ð¾ÐºÐ¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ Ð¿Ð°Ñ€Ð½Ð¸Ð¼ Ñ‡Ð¸Ñ�Ð»Ð¾Ð¼Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ñ–Ð¶ Ñ€Ñ–Ð·Ð½Ð¸Ð¼Ð¸ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°Ð¼Ð¸ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ� %B: %s
 Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¾Ð²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %drtnbeg
 rtnend: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ 0x%08x
-septyp, Ð½Ð°Ð·Ð²Ð°: %.*s
+Ð°Ð´Ñ€ÐµÑ�Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ (%lx) Ð½Ð¸Ð¶Ñ‡Ðµ Ð·Ð° Ð¿Ð¾Ñ‡Ð°Ñ‚Ð¾Ðº Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð° (%lx)septyp, Ð½Ð°Ð·Ð²Ð°: %.*s
 set_abs_pc: 0x%08x
 set_line_num(w) %u
 set_line_num_b %u
 set_line_num_l %u
-Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð¼Ð°Ð»Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” 64 ÐºÐ‘; Ð½Ð¸Ð¶Ñ‡Ð¸Ð¹ Ð·Ð° Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð¼Ð°Ð»Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… (Ð´Ð¸Ð². Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ -G)som_sizeof_headers Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾Ð²Ð¸Ð±Ð°Ñ‡Ñ‚Ðµ, Ñƒ Ñ�ÐºÑ€Ð¸Ð¿Ñ‚Ñ– Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ Ð½Ð°ÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ� Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð².
-Ð´Ð¶ÐµÑ€ÐµÐ»Ð¾ (Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %u)
+Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¸Ð¹ Ð¾Ð±'Ñ”ÐºÑ‚Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð¼Ð°Ð»Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” 64 ÐºÐ‘; Ð½Ð¸Ð¶Ñ‡Ð¸Ð¹ Ð·Ð° Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð¼Ð°Ð»Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… (Ð´Ð¸Ð². Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ -G)som_sizeof_headers Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾Ð²Ð¸Ð±Ð°Ñ‡Ñ‚Ðµ, Ñƒ Ñ�ÐºÑ€Ð¸Ð¿Ñ‚Ñ– Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ Ð½Ð°ÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ� Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð².
+Ð²Ð¸Ð±ÐµÑ‡Ñ‚Ðµ, modtab, toc Ñ‚Ð° extrefsyms Ð´Ð»Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´ dysymtab Ñƒ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ñ–Ð¹ Ð²ÐµÑ€Ñ�Ñ–Ñ— Ñ‰Ðµ Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾.Ð´Ð¶ÐµÑ€ÐµÐ»Ð¾ (Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %u)
 Ñ�Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ñ– Ð´Ð°Ð½Ñ–: %s
-Ñ�Ñ‚Ð°Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð° (Ð±ÐµÐ· Ð½Ð°Ð·Ð²Ð¸)ÑˆÐ°Ð±Ð»Ð¾Ð½ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ Ð´Ð»Ñ� %s Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‚Ð¸ .plt, Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ dp = %ldÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸ Ð½Ðµ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°ÑŽÑ‚ÑŒ Ð¾Ð±Ñ‡Ð¸Ñ�Ð»ÐµÐ½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ÑƒÑ�Ð¸Ð¼Ð²Ð¾Ð»Ð¼Ð°Ñ�Ð¸Ð² Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ð²ÐµÑ€Ñ�Ñ–Ñ— Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¸:
-term(b): 0x%02xterm_w: 0x%04xtypspec (Ð´Ð¾Ð²Ð¶.: %u)
-Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ»ÐµÐ¹ÐºÑƒ ARM Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ»Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ»ÐµÐ¹ÐºÑƒ THUMB Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ»Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %s Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ Ð· %BÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ�, 0x%lxÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¸Ñ�Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ�, 0x%lxÐ½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ñ€Ñ�Ð´Ð¾Ðº %s
-Ð½ÐµÐ¿ÐµÐ²Ð½Ñ– Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð¿Ð¾Ð·Ð° COFFÐ½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ�, %s, Ñƒ Ñ�ÐºÐ»Ð°Ð´ÐµÐ½Ð¾Ð¼Ñƒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–: %sÐ½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ egsd, %u
+Ñ�Ñ‚Ð°Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð° (Ð±ÐµÐ· Ð½Ð°Ð·Ð²Ð¸)ÑˆÐ°Ð±Ð»Ð¾Ð½ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ Ð´Ð»Ñ� %s Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‚Ð¸ .plt, Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ dp = %ldÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸ Ð½Ðµ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°ÑŽÑ‚ÑŒ Ð¾Ð±Ñ‡Ð¸Ñ�Ð»ÐµÐ½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ÑƒÑ�Ð¸Ð¼Ð²Ð¾Ð»ÑƒÑ�Ð¸Ð¼Ð²Ð¾Ð» Ð¼Ð°Ñ�Ð¸Ð² Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ð²ÐµÑ€Ñ�Ñ–Ñ— Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¸:
+term(b): 0x%02xterm_w: 0x%04xÑƒ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ñ–Ð¹ Ð²ÐµÑ€Ñ�Ñ–Ñ— Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ� Ñ†Ñ–Ð»Ñ– bfin Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ� Ñ‚Ð¸Ð¿Ñƒ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°:
+Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ� Ñ‚Ð¸Ð¿Ñƒ Ð´Ð»Ñ� Ñ�Ð¿Ð¸Ñ�ÐºÑƒ Ñ–Ð½Ð´ÐµÐºÑ�Ñ–Ð² %u:
+Ñ‚Ð¸Ð¿Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸Ðº
+typspec (Ð´Ð¾Ð²Ð¶.: %u)
+Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚Ð¸ Ð´Ð°Ð½Ñ– Ð´Ð»Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ� 0x%lxÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ»ÐµÐ¹ÐºÑƒ ARM Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ»Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ»ÐµÐ¹ÐºÑƒ THUMB Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ»Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ�, 0x%lxÑ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %s Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ Ð· %BÐ½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¸Ñ�Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ�, 0x%lxÐ½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ñ€Ñ�Ð´Ð¾Ðº %s
+Ð½ÐµÐ¿ÐµÐ²Ð½Ñ– Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð¿Ð¾Ð·Ð° COFFÐ½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ�, %s, Ñƒ Ñ�ÐºÐ»Ð°Ð´ÐµÐ½Ð¾Ð¼Ñƒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–: %sÐ½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ egsd, %u
 Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð¿Ñ–Ð´Ñ‚Ð¸Ð¿ emh, %u
-Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ETIR, %dÐ½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð¿Ð¾Ñ€Ñ�Ð´ÐºÑƒ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ñƒ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑƒ, 0x%lxÐ½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %dÐ½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€, Â«%cÂ», Ñƒ Ñ�ÐºÐ»Ð°Ð´ÐµÐ½Ð¾Ð¼Ñƒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %dÐ½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° STA, %sÐ½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ñ–Ð¶ Ð¿Ñ€Ð¾Ñ�Ñ‚Ð¾Ñ€Ð°Ð¼Ð¸ Ð°Ð´Ñ€ÐµÑ� data Ñ‚Ð° insnÐ²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ gpÐ°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850eÐ°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850e1Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850e2Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850e2v3vflags: 0x%02x, Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�: 0x%08x vma:			ÐŸÐ¾Ñ‡Ð°Ñ‚ÐºÐ�Ð´Ñ€ÐµÑ�Ð°	 ÐšÑ–Ð½Ñ†Ð�Ð´Ñ€ÐµÑ�Ð°s	  Ð”Ð°Ð½Ñ–Unwind
-Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ñ– %B Ð²Ñ–Ð´Ñ€Ñ–Ð·Ð½Ñ�ÑŽÑ‚ÑŒÑ�Ñ� Ð·Ð° Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¾Ð¼ wchar_tÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ñ– %B Ð²Ñ–Ð´Ñ€Ñ–Ð·Ð½Ñ�ÑŽÑ‚ÑŒÑ�Ñ� Ð·Ð° Ñ‚Ð¸Ð¼, Ñ‡Ð¸ Ð±ÑƒÐ»Ð¾ Ñ—Ñ… Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� DSBTÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÐ¸ %s, Ñ…Ð¾Ñ‡Ð° Ñƒ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ– Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÐ¸ %s; Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÑ–Ð² Ð¼Ñ–Ð¶ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸ Ð¼Ð¾Ð¶Ðµ Ð·Ð°Ð·Ð½Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ð´Ð°Ñ‡Ñ–Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� %u-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¹ wchar_t, Ñ…Ð¾Ñ‡Ð° Ñƒ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ– Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� %u-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¹ wchar_t; Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ wchar_t Ð¼Ñ–Ð¶ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸ Ð¼Ð¾Ð¶Ðµ Ð·Ð°Ð·Ð½Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ð´Ð°Ñ‡Ñ–Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð¼Ð°Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»ÑƒÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %s Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ
-Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾ÐºÐ°Ð¶Ñ‡Ð¸Ðº Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñ�Ð´ÐºÑ–Ð² %s Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ â€” Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ñ‚ÑŒÑ�Ñ�Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %s Ð¿ÐµÑ€ÐµÐºÑ€Ð¸Ð²Ð°Ñ” %s
-Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ñ” Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .pdata (%ld) Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ %d
-Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ð¿Ñ€Ð¾Ð±Ð° ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸ÐºÐ»Ð¸Ðº Ð½ÐµÑ„ÑƒÐ½ÐºÑ†Ñ–Ð¾Ð½Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, %s, Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ Ñƒ %BÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ñ‚Ð²Ð¾Ñ€ÑŽÑ”Ñ‚ÑŒÑ�Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�, Ñ�ÐºÐ° Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ ÐºÐ¾Ð´, Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¹ Ð· PICÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ñ‚Ð²Ð¾Ñ€ÑŽÑ”Ñ‚ÑŒÑ�Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�, Ñ�ÐºÐ° Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ ÐºÐ¾Ð´, Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¹ Ð· PIDÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ñ–Ð½ÑˆÐ¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%sÂ» Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð¾ Ð½Ð° Ð½Ð¾Ñ‚Ð°Ñ‚ÐºÑƒÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ‚Ð¸Ð¿ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð½Ð° PROGBITSÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ‚Ð¸Ð¿ Ñ– Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %BÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð·Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ñƒ %sÐ½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ‚Ð¸ %s Ñƒ Ñ�ÐºÑ€Ð¸Ð¿Ñ‚Ñ–
\ No newline at end of file
+Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ETIR, %dÐ½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð¿Ð¾Ñ€Ñ�Ð´ÐºÑƒ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ñƒ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑƒ, 0x%lxÐ½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %dÐ½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€, Â«%cÂ», Ñƒ Ñ�ÐºÐ»Ð°Ð´ÐµÐ½Ð¾Ð¼Ñƒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %dÐ½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾: %xÐ½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MIPS: %dÐ½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (0x%x)Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° STA, %sÐ½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ñ–Ð¶ Ð¿Ñ€Ð¾Ñ�Ñ‚Ð¾Ñ€Ð°Ð¼Ð¸ Ð°Ð´Ñ€ÐµÑ� data Ñ‚Ð° insnÐ²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ gpÐ°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850 E3Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850eÐ°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850e1Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850e2Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850e2v3Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850e3v5vflags: 0x%02x, Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�: 0x%08x vma:			ÐŸÐ¾Ñ‡Ð°Ñ‚ÐºÐ�Ð´Ñ€ÐµÑ�Ð°	 ÐšÑ–Ð½Ñ†Ð�Ð´Ñ€ÐµÑ�Ð°s	  Ð”Ð°Ð½Ñ–Unwind
+Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ñ– %B Ð²Ñ–Ð´Ñ€Ñ–Ð·Ð½Ñ�ÑŽÑ‚ÑŒÑ�Ñ� Ð·Ð° Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¾Ð¼ wchar_tÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ñ– %B Ð²Ñ–Ð´Ñ€Ñ–Ð·Ð½Ñ�ÑŽÑ‚ÑŒÑ�Ñ� Ð·Ð° Ñ‚Ð¸Ð¼, Ñ‡Ð¸ Ð±ÑƒÐ»Ð¾ Ñ—Ñ… Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� DSBTÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾ÐºÐ°Ð¶Ñ‡Ð¸Ðº Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñ�Ð´ÐºÑ–Ð² %B Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ â€” Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ñ‚ÑŒÑ�Ñ�Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÐ¸ %s, Ñ…Ð¾Ñ‡Ð° Ñƒ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ– Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÐ¸ %s; Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÑ–Ð² Ð¼Ñ–Ð¶ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸ Ð¼Ð¾Ð¶Ðµ Ð·Ð°Ð·Ð½Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ð´Ð°Ñ‡Ñ–Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� %u-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¹ wchar_t, Ñ…Ð¾Ñ‡Ð° Ñƒ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ– Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� %u-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¹ wchar_t; Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ wchar_t Ð¼Ñ–Ð¶ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸ Ð¼Ð¾Ð¶Ðµ Ð·Ð°Ð·Ð½Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ð´Ð°Ñ‡Ñ–Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ GNU_PROPERTY_TYPE (%ld), Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %#lxÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ GNU_PROPERTY_TYPE (%ld), Ñ‚Ð¸Ð¿ (0x%x), Ð¾Ð±Ñ�Ñ�Ð³ Ð´Ð°Ð½Ð¸Ñ…: 0x%xÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ Â«Ð½Ðµ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ñ‚Ð¸ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½ÐµÂ», Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: 0x%xÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ñ‚ÐµÐºÐ°: 0x%xÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð¼Ð°Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»ÑƒÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ GNU_PROPERTY_TYPE (%ld): 0x%xÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %s Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ
+Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %s Ð¿ÐµÑ€ÐµÐºÑ€Ð¸Ð²Ð°Ñ” %s
+Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ñ” Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ð¿Ñ€Ð¾Ð±Ð° ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸ÐºÐ»Ð¸Ðº Ð½ÐµÑ„ÑƒÐ½ÐºÑ†Ñ–Ð¾Ð½Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, %s, Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ Ñƒ %BÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ñ‚Ð²Ð¾Ñ€ÑŽÑ”Ñ‚ÑŒÑ�Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�, Ñ�ÐºÐ° Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ ÐºÐ¾Ð´, Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¹ Ð· PICÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ñ‚Ð²Ð¾Ñ€ÑŽÑ”Ñ‚ÑŒÑ�Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�, Ñ�ÐºÐ° Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ ÐºÐ¾Ð´, Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¹ Ð· PIDÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ñ–Ð½ÑˆÐ¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%sÂ» Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð¾ Ð½Ð° Ð½Ð¾Ñ‚Ð°Ñ‚ÐºÑƒÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ‚Ð¸Ð¿ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð½Ð° PROGBITSÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ‚Ð¸Ð¿ Ñ– Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %BÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð·Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ñƒ %BÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð·Ð°Ð¿Ð¸Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð·Ð° Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼ (Ñ‚Ð¾Ð±Ñ‚Ð¾ Ð²Ñ–Ð´â€™Ñ”Ð¼Ð½Ð¸Ð¼) Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ Ñƒ Ñ„Ð°Ð¹Ð»Ñ–, 0x%lx.Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð» xdataÐ¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð» xdata
+Ñ‚Ð°ÐºÐ½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ‚Ð¸ %s Ñƒ Ñ�ÐºÑ€Ð¸Ð¿Ñ‚Ñ–
\ No newline at end of file
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/uk.po ./bfd/po/uk.po
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/uk.po	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/uk.po	2018-01-09 02:04:54.000000000 +0000
@@ -2,175 +2,191 @@
 # Copyright (C) 2012 Free Software Foundation, Inc.
 # This file is distributed under the same license as the binutils package.
 #
-# Yuri Chornoivan <yurchor@ukr.net>, 2012.
+# Yuri Chornoivan <yurchor@ukr.net>, 2012, 2014, 2017.
 msgid ""
 msgstr ""
-"Project-Id-Version: bfd 2.22.90\n"
+"Project-Id-Version: bfd 2.28.90\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2011-10-25 11:58+0100\n"
-"PO-Revision-Date: 2012-09-09 21:27+0300\n"
+"POT-Creation-Date: 2017-07-03 16:54+0200\n"
+"PO-Revision-Date: 2017-07-07 21:57+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 "X-Generator: Lokalize 1.5\n"
 
-#: aout-adobe.c:127
+#: aout-adobe.c:126
+#, c-format
 msgid "%B: Unknown section type in a.out.adobe file: %x\n"
 msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñƒ Ñ„Ð°Ð¹Ð»Ñ– a.out.adobe: %x\n"
 
-#: aout-cris.c:199
+#: aout-cris.c:200
 #, c-format
-msgid "%s: Invalid relocation type exported: %d"
-msgstr "%s: ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¾ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: %d"
+msgid "%B: Invalid relocation type exported: %d"
+msgstr "%B: ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¾ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: %d"
 
-#: aout-cris.c:242
+#: aout-cris.c:244
+#, c-format
 msgid "%B: Invalid relocation type imported: %d"
 msgstr "%B: Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¾ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: %d"
 
-#: aout-cris.c:253
+#: aout-cris.c:256
+#, c-format
 msgid "%B: Bad relocation record imported: %d"
 msgstr "%B: Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: %d"
 
-#: aoutx.h:1273 aoutx.h:1611
+#: aoutx.h:1284 aoutx.h:1621 pdp11.c:1152 pdp11.c:1413
 #, c-format
-msgid "%s: can not represent section `%s' in a.out object file format"
-msgstr "%s: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ» Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² a.out Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ"
+msgid "%B: can not represent section `%A' in a.out object file format"
+msgstr "%B: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² a.out Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ"
 
-#: aoutx.h:1577
+#: aoutx.h:1585 pdp11.c:1385
 #, c-format
-msgid "%s: can not represent section for symbol `%s' in a.out object file format"
-msgstr "%s: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² a.out Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ"
+msgid "%B: can not represent section for symbol `%s' in a.out object file format"
+msgstr "%B: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² a.out Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ"
 
-#: aoutx.h:1579 vms-alpha.c:7671
+#: aoutx.h:1588 vms-alpha.c:7776
 msgid "*unknown*"
 msgstr "*Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾*"
 
-#: aoutx.h:4018 aoutx.h:4344
+#: aoutx.h:2407 aoutx.h:2425
+msgid "%B: attempt to write out unknown reloc type"
+msgstr "%B: Ñ�Ð¿Ñ€Ð¾Ð±Ð° Ð²Ð¸Ð¿Ð¸Ñ�Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
+
+#: aoutx.h:4077 aoutx.h:4398
 msgid "%P: %B: unexpected relocation type\n"
 msgstr "%P: %B: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�\n"
 
-#: aoutx.h:5375
+#: aoutx.h:5424 pdp11.c:3708
 #, c-format
-msgid "%s: relocatable link from %s to %s not supported"
-msgstr "%s: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ñ… Ð´Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½ÑŒ Ð· %s Ð´Ð¾ %s Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾"
+msgid "%B: relocatable link from %s to %s not supported"
+msgstr "%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ñ… Ð´Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½ÑŒ Ð· %s Ð´Ð¾ %s Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾"
 
-#: archive.c:2203
+#: archive.c:2293
 msgid "Warning: writing archive was slow: rewriting timestamp\n"
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð·Ð°Ð¿Ð¸Ñ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð°Ñ€Ñ…Ñ–Ð²Ñƒ Ð±ÑƒÐ»Ð¾ Ð¿Ð¾Ð²Ñ–Ð»ÑŒÐ½Ð¸Ð¼: Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ�ÑƒÑ”Ð¼Ð¾ Ñ‡Ð°Ñ�Ð¾Ð²Ñƒ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐºÑƒ\n"
 
-#: archive.c:2491
+#: archive.c:2405 linker.c:1408
+msgid "%B: plugin needed to handle lto object"
+msgstr "%B: Ð´Ð»Ñ� Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð¾Ð±'Ñ”ÐºÑ‚Ð° lto Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±ÐµÐ½ Ð´Ð¾Ð´Ð°Ñ‚Ð¾Ðº"
+
+#: archive.c:2634
 msgid "Reading archive file mod timestamp"
 msgstr "Ð§Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ñ‡Ð°Ñ�Ð¾Ð²Ð¾Ñ— Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐºÐ¸ mod Ð°Ñ€Ñ…Ñ–Ð²Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð°"
 
-#: archive.c:2515
+#: archive.c:2658
 msgid "Writing updated armap timestamp"
 msgstr "Ð—Ð°Ð¿Ð¸Ñ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾Ñ— Ñ‡Ð°Ñ�Ð¾Ð²Ð¾Ñ— Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐºÐ¸ armap"
 
-#: bfd.c:398
+#: bfd.c:454
 msgid "No error"
 msgstr "Ð�ÐµÐ¼Ð°Ñ” Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº"
 
-#: bfd.c:399
+#: bfd.c:455
 msgid "System call error"
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ"
 
-#: bfd.c:400
+#: bfd.c:456
 msgid "Invalid bfd target"
 msgstr "Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� bfd"
 
-#: bfd.c:401
+#: bfd.c:457
 msgid "File in wrong format"
 msgstr "Ð¤Ð°Ð¹Ð» Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–"
 
-#: bfd.c:402
+#: bfd.c:458
 msgid "Archive object file in wrong format"
 msgstr "Ð�Ñ€Ñ…Ñ–Ð²Ð½Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–"
 
-#: bfd.c:403
+#: bfd.c:459
 msgid "Invalid operation"
 msgstr "Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð´Ñ–Ñ�"
 
-#: bfd.c:404
+#: bfd.c:460
 msgid "Memory exhausted"
 msgstr "ÐŸÐ°Ð¼â€™Ñ�Ñ‚ÑŒ Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð¾"
 
-#: bfd.c:405
+#: bfd.c:461
 msgid "No symbols"
 msgstr "Ð�ÐµÐ¼Ð°Ñ” Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²"
 
-#: bfd.c:406
+#: bfd.c:462
 msgid "Archive has no index; run ranlib to add one"
 msgstr "Ð£ Ð°Ñ€Ñ…Ñ–Ð²Ñ– Ð½ÐµÐ¼Ð°Ñ” Ð¿Ð¾ÐºÐ°Ð¶Ñ‡Ð¸ÐºÐ°; Ð·Ð°Ð¿ÑƒÑ�Ñ‚Ñ–Ñ‚ÑŒ ranlib, Ñ‰Ð¾Ð± Ð¹Ð¾Ð³Ð¾ Ð´Ð¾Ð´Ð°Ñ‚Ð¸"
 
-#: bfd.c:407
+#: bfd.c:463
 msgid "No more archived files"
 msgstr "Ð‘Ñ–Ð»ÑŒÑˆÐµ Ð°Ñ€Ñ…Ñ–Ð²Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð½ÐµÐ¼Ð°Ñ”"
 
-#: bfd.c:408
+#: bfd.c:464
 msgid "Malformed archive"
 msgstr "Ð�Ñ€Ñ…Ñ–Ð² Ð· Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¼ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼"
 
-#: bfd.c:409
+#: bfd.c:465
+msgid "DSO missing from command line"
+msgstr "Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¼Ñƒ Ñ€Ñ�Ð´ÐºÑƒ Ð¿Ñ€Ð¾Ð¿ÑƒÑ‰ÐµÐ½Ð¾ DSO"
+
+#: bfd.c:466
 msgid "File format not recognized"
 msgstr "Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚ Ñ„Ð°Ð¹Ð»Ð° Ð½Ðµ Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¾"
 
-#: bfd.c:410
+#: bfd.c:467
 msgid "File format is ambiguous"
 msgstr "Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚ Ñ„Ð°Ð¹Ð»Ð° Ñ” Ð½ÐµÐ¾Ð´Ð½Ð¾Ð·Ð½Ð°Ñ‡Ð½Ð¸Ð¼"
 
-#: bfd.c:411
+#: bfd.c:468
 msgid "Section has no contents"
 msgstr "Ð Ð¾Ð·Ð´Ñ–Ð» Ð½Ðµ Ð¼Ð°Ñ” Ð²Ð¼Ñ–Ñ�Ñ‚Ñƒ"
 
-#: bfd.c:412
+#: bfd.c:469
 msgid "Nonrepresentable section on output"
 msgstr "Ð Ð¾Ð·Ð´Ñ–Ð», Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð»Ñ� Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ…"
 
-#: bfd.c:413
+#: bfd.c:470
 msgid "Symbol needs debug section which does not exist"
 msgstr "Ð¡Ð¸Ð¼Ð²Ð¾Ð» Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸, Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ñ–Ñ�Ð½ÑƒÑ”"
 
-#: bfd.c:414
+#: bfd.c:471
 msgid "Bad value"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�"
 
-#: bfd.c:415
+#: bfd.c:472
 msgid "File truncated"
 msgstr "Ð¤Ð°Ð¹Ð» Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð¾"
 
-#: bfd.c:416
+#: bfd.c:473
 msgid "File too big"
 msgstr "Ð¤Ð°Ð¹Ð» Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼"
 
-#: bfd.c:417
+#: bfd.c:474
 #, c-format
 msgid "Error reading %s: %s"
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� %s: %s"
 
-#: bfd.c:418
+#: bfd.c:475
 msgid "#<Invalid error code>"
 msgstr "#<Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ ÐºÐ¾Ð´ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸>"
 
-#: bfd.c:945
+#: bfd.c:1138
 #, c-format
 msgid "BFD %s assertion fail %s:%d"
 msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð¾Ð¼ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŽ BFD %s Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑƒ %s:%d"
 
-#: bfd.c:957
+#: bfd.c:1151
 #, c-format
-msgid "BFD %s internal error, aborting at %s line %d in %s\n"
-msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° BFD %s, Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ñ”Ð¼Ð¾ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ñƒ %s, Ñ€Ñ�Ð´Ð¾Ðº %d Ñƒ %s\n"
+msgid "BFD %s internal error, aborting at %s:%d in %s\n"
+msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° BFD %s, Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ñ”Ð¼Ð¾ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ñƒ %s:%d Ñƒ %s\n"
 
-#: bfd.c:961
+#: bfd.c:1156
 #, c-format
-msgid "BFD %s internal error, aborting at %s line %d\n"
-msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° BFD %s, Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ñ”Ð¼Ð¾ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ñƒ %s, Ñ€Ñ�Ð´Ð¾Ðº %d\n"
+msgid "BFD %s internal error, aborting at %s:%d\n"
+msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° BFD %s, Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ñ”Ð¼Ð¾ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ñƒ %s:%d\n"
 
-#: bfd.c:963
+#: bfd.c:1158
 msgid "Please report this bug.\n"
 msgstr "Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ñ‚Ðµ Ð¿Ñ€Ð¾ Ñ†ÑŽ Ð²Ð°Ð´Ñƒ.\n"
 
@@ -184,22 +200,23 @@ msgstr "Ð½Ðµ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¾: Ð´Ð
 msgid "not mapping: env var not set\n"
 msgstr "Ð½Ðµ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¾: Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ Ð·Ð¼Ñ–Ð½Ð½Ñƒ Ñ�ÐµÑ€ÐµÐ´Ð¾Ð²Ð¸Ñ‰Ð° var\n"
 
-#: binary.c:271
+#: binary.c:276
 #, c-format
-msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx."
-msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð·Ð°Ð¿Ð¸Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ» Ð·Ð° Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼ (Ñ‚Ð¾Ð±Ñ‚Ð¾ Ð²Ñ–Ð´â€™Ñ”Ð¼Ð½Ð¸Ð¼) Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ Ñƒ Ñ„Ð°Ð¹Ð»Ñ–, 0x%lx."
+msgid "warning: writing section `%A' at huge (ie negative) file offset 0x%lx."
+msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð·Ð°Ð¿Ð¸Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð·Ð° Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼ (Ñ‚Ð¾Ð±Ñ‚Ð¾ Ð²Ñ–Ð´â€™Ñ”Ð¼Ð½Ð¸Ð¼) Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ Ñƒ Ñ„Ð°Ð¹Ð»Ñ–, 0x%lx."
 
-#: bout.c:1146 elf-m10300.c:2063 elf32-avr.c:1654 elf32-frv.c:5734
-#: elfxx-sparc.c:2802 reloc.c:6115 reloc16.c:162 elf32-ia64.c:360
-#: elf64-ia64.c:360
+#: bout.c:1142 elf-m10300.c:2651 elf32-avr.c:2484 elf32-frv.c:5633
+#: elf64-ia64-vms.c:353 elfxx-sparc.c:2989 reloc.c:8017 reloc16.c:156
+#: elf32-ia64.c:351 elf64-ia64.c:351
 msgid "%P%F: --relax and -r may not be used together\n"
 msgstr "%P%F: --relax Ñ– -r Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ�Ð½Ð¾\n"
 
-#: cache.c:227
+#: cache.c:273
+#, c-format
 msgid "reopening %B: %s\n"
 msgstr "Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ� %B: %s\n"
 
-#: coff-alpha.c:491
+#: coff-alpha.c:450
 msgid ""
 "%B: Cannot handle compressed Alpha binaries.\n"
 "   Use compiler flags, or objZ, to generate uncompressed binaries."
@@ -207,42 +224,44 @@ msgstr ""
 "%B: Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ° Ñ�Ñ‚Ð¸Ñ�Ð½ÑƒÑ‚Ð¸Ñ… Ð´Ð²Ñ–Ð¹ÐºÐ¾Ð²Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² Alpha Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð°.\n"
 "   Ð¡ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð¹Ñ‚ÐµÑ�Ñ� Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ�Ð¼Ð¸ ÐºÐ¾Ð¼Ð¿Ñ–Ð»Ñ�Ñ‚Ð¾Ñ€Ð° Ð°Ð±Ð¾ objZ Ð´Ð»Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð½ÐµÑ�Ñ‚Ð¸Ñ�Ð½ÐµÐ½Ð¸Ñ… Ð´Ð²Ñ–Ð¹ÐºÐ¾Ð²Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð²."
 
-#: coff-alpha.c:648
+#: coff-alpha.c:602
 msgid "%B: unknown/unsupported relocation type %d"
 msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð°Ð±Ð¾ Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d"
 
-#: coff-alpha.c:900 coff-alpha.c:937 coff-alpha.c:2025 coff-mips.c:1003
+#: coff-alpha.c:851 coff-alpha.c:888 coff-alpha.c:1961 coff-mips.c:944
 msgid "GP relative relocation used when GP not defined"
 msgstr "Ð’Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� GP, Ð²Ñ‚Ñ–Ð¼, GP Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
 
-#: coff-alpha.c:1502
+#: coff-alpha.c:1444
 msgid "using multiple gp values"
 msgstr "Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ gp"
 
-#: coff-alpha.c:1561
+#: coff-alpha.c:1503
 msgid "%B: unsupported relocation: ALPHA_R_GPRELHIGH"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾: ALPHA_R_GPRELHIGH"
 
-#: coff-alpha.c:1568
+#: coff-alpha.c:1510
 msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾: ALPHA_R_GPRELLOW"
 
-#: coff-alpha.c:1575 elf32-m32r.c:2484 elf64-alpha.c:4074 elf64-alpha.c:4224
-#: elf32-ia64.c:3839 elf64-ia64.c:3839
+#: coff-alpha.c:1518 elf32-i370.c:1085 elf32-m32r.c:2418
+#: elf32-microblaze.c:952 elf64-alpha.c:4167 elf64-alpha.c:4315
+#: elf64-ia64-vms.c:3431 elf32-ia64.c:3839 elf64-ia64.c:3839
+#, c-format
 msgid "%B: unknown relocation type %d"
 msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d"
 
-#: coff-arm.c:1038
+#: coff-arm.c:1032
 #, c-format
 msgid "%B: unable to find THUMB glue '%s' for `%s'"
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ»ÐµÐ¹ÐºÑƒ THUMB Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ»"
 
-#: coff-arm.c:1067
+#: coff-arm.c:1061
 #, c-format
 msgid "%B: unable to find ARM glue '%s' for `%s'"
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ»ÐµÐ¹ÐºÑƒ ARM Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ»"
 
-#: coff-arm.c:1369 elf32-arm.c:7023
+#: coff-arm.c:1363 elf32-arm.c:8896
 #, c-format
 msgid ""
 "%B(%s): warning: interworking not enabled.\n"
@@ -251,7 +270,7 @@ msgstr ""
 "%B(%s): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ð½Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾.\n"
 "  Ð¿ÐµÑ€ÑˆÐ° Ð·Ð³Ð°Ð´ÐºÐ°: %B: Ð²Ð¸ÐºÐ»Ð¸Ðº arm Ð´Ð¾ thumb"
 
-#: coff-arm.c:1459
+#: coff-arm.c:1453
 #, c-format
 msgid ""
 "%B(%s): warning: interworking not enabled.\n"
@@ -262,317 +281,488 @@ msgstr ""
 "  Ð¿ÐµÑ€ÑˆÐ° Ð·Ð³Ð°Ð´ÐºÐ°: %B: Ð²Ð¸ÐºÐ»Ð¸Ðº arm Ð´Ð¾ arm\n"
 "  Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� Ð· ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¸Ð¼ --support-old-code"
 
-#: coff-arm.c:1754 coff-tic80.c:695 cofflink.c:3081
+#: coff-arm.c:1746 coff-tic80.c:670 cofflink.c:3123
+#, c-format
 msgid "%B: bad reloc address 0x%lx in section `%A'"
 msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»"
 
-#: coff-arm.c:2079
+#: coff-arm.c:2071
+#, c-format
 msgid "%B: illegal symbol index in reloc: %d"
 msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ–: %d"
 
-#: coff-arm.c:2210
+#: coff-arm.c:2203
 #, c-format
 msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� APCS-%d, Ð° %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� APCS-%d"
 
-#: coff-arm.c:2226 elf32-arm.c:15621
+#: coff-arm.c:2216 elf32-arm.c:19756
 #, c-format
 msgid "error: %B passes floats in float registers, whereas %B passes them in integer registers"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¿ÐµÑ€ÐµÐ´Ð°Ñ” Ñ‡Ð¸Ñ�Ð»Ð° Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽ Ð´Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð², Ð° %B Ð¿ÐµÑ€ÐµÐ´Ð°Ñ” Ñ—Ñ… Ñƒ Ñ†Ñ–Ð»Ð¾Ñ‡Ð¸Ñ�ÐµÐ»ÑŒÐ½Ñ– Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸"
 
-#: coff-arm.c:2229 elf32-arm.c:15625
+#: coff-arm.c:2221 elf32-arm.c:19760
 #, c-format
 msgid "error: %B passes floats in integer registers, whereas %B passes them in float registers"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¿ÐµÑ€ÐµÐ´Ð°Ñ” Ñ†Ñ–Ð»Ñ– Ñ‡Ð¸Ñ�Ð»Ð° Ð´Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð², Ð° %B Ð¿ÐµÑ€ÐµÐ´Ð°Ñ” Ñ—Ñ… Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸ Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽ"
 
-#: coff-arm.c:2243
+#: coff-arm.c:2233
 #, c-format
 msgid "error: %B is compiled as position independent code, whereas target %B is absolute position"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñ�Ðº ÐºÐ¾Ð´ Ð· Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¼ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼, Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %B Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¾Ñ— Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ—"
 
-#: coff-arm.c:2246
+#: coff-arm.c:2238
 #, c-format
 msgid "error: %B is compiled as absolute position code, whereas target %B is position independent"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñ�Ðº ÐºÐ¾Ð´ Ð· Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼, Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %B Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¾Ñ— Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ—"
 
-#: coff-arm.c:2274 elf32-arm.c:15690
+#: coff-arm.c:2265 elf32-arm.c:19825
 #, c-format
 msgid "Warning: %B supports interworking, whereas %B does not"
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ, Ð° Ñƒ %B Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾"
 
-#: coff-arm.c:2277 elf32-arm.c:15696
+#: coff-arm.c:2270 elf32-arm.c:19831
 #, c-format
 msgid "Warning: %B does not support interworking, whereas %B does"
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸, Ð° Ñƒ %B Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾"
 
-#: coff-arm.c:2301
+#: coff-arm.c:2293
 #, c-format
 msgid "private flags = %x:"
 msgstr "Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = %x:"
 
-#: coff-arm.c:2309 elf32-arm.c:11806
+#: coff-arm.c:2301 elf32-arm.c:14156
 #, c-format
 msgid " [floats passed in float registers]"
 msgstr " [Ñ‡Ð¸Ñ�Ð»Ð° Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽ Ð¿ÐµÑ€ÐµÐ´Ð°Ð½Ð¾ Ð´Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽ]"
 
-#: coff-arm.c:2311
+#: coff-arm.c:2303
 #, c-format
 msgid " [floats passed in integer registers]"
 msgstr " [Ñ‡Ð¸Ñ�Ð»Ð° Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÐ¾Ð¼Ð¾ÑŽ Ð¿ÐµÑ€ÐµÐ´Ð°Ð½Ð¾ Ð´Ð¾ Ñ†Ñ–Ð»Ð¾Ñ‡Ð¸Ñ�ÐµÐ»ÑŒÐ½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð²]"
 
-#: coff-arm.c:2314 elf32-arm.c:11809
+#: coff-arm.c:2306 elf32-arm.c:14159
 #, c-format
 msgid " [position independent]"
 msgstr " [Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¹ Ð²Ñ–Ð´ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ—]"
 
-#: coff-arm.c:2316
+#: coff-arm.c:2308
 #, c-format
 msgid " [absolute position]"
 msgstr " [Ð· Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼]"
 
-#: coff-arm.c:2320
+#: coff-arm.c:2312
 #, c-format
 msgid " [interworking flag not initialised]"
 msgstr " [Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ð½Ðµ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾]"
 
-#: coff-arm.c:2322
+#: coff-arm.c:2314
 #, c-format
 msgid " [interworking supported]"
 msgstr " [Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð° Ñ€Ð¾Ð±Ð¾Ñ‚Ð°]"
 
-#: coff-arm.c:2324
+#: coff-arm.c:2316
 #, c-format
 msgid " [interworking not supported]"
 msgstr " [Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð° Ñ€Ð¾Ð±Ð¾Ñ‚Ð° Ð½Ðµ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÑ”Ñ‚ÑŒÑ�Ñ�]"
 
-#: coff-arm.c:2370 elf32-arm.c:10841
-#, c-format
+#: coff-arm.c:2361 elf32-arm.c:13017
 msgid "Warning: Not setting interworking flag of %B since it has already been specified as non-interworking"
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ñƒ %B Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾, Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð¹Ð¾Ð³Ð¾ Ð²Ð¶Ðµ Ð±ÑƒÐ»Ð¾ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñ‚Ð°Ðº, Ñ‰Ð¾Ð± Ð²Ñ–Ð½ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½Ñ�Ð² Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ"
 
-#: coff-arm.c:2374 elf32-arm.c:10845
-#, c-format
+#: coff-arm.c:2364 elf32-arm.c:13021
 msgid "Warning: Clearing the interworking flag of %B due to outside request"
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð·Ð½Ñ�Ñ‚Ð¾ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ñƒ %B Ñƒ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´ÑŒ Ð½Ð° Ð·Ð°Ð¿Ð¸Ñ‚ Ð·Ð·Ð¾Ð²Ð½Ñ–"
 
-#: coff-h8300.c:1122
+#: coff-arm.c:2421 elf32-arm.c:13066
+#, c-format
+msgid "Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð·Ð½Ñ�Ñ‚Ð¾ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ñƒ %B, Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð· Ð½Ð¸Ð¼ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� ÐºÐ¾Ð´, Ñ�ÐºÐ¸Ð¹ Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸, Ñƒ %B"
+
+#: coff-h8300.c:1068
 #, c-format
 msgid "cannot handle R_MEM_INDIRECT reloc when using %s output"
 msgstr "Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ R_MEM_INDIRECT, Ñ�ÐºÑ‰Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð¾ %s"
 
-#: coff-i860.c:147
+#: coff-i860.c:146
 #, c-format
 msgid "relocation `%s' not yet implemented"
 msgstr "Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Â«%sÂ» Ñ‰Ðµ Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾"
 
-#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5198
+#: coff-i860.c:608 coff-tic4x.c:227 coff-tic54x.c:365 coffcode.h:5314
+#, c-format
 msgid "%B: warning: illegal symbol index %ld in relocs"
 msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %ld Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ñ…"
 
-#: coff-i960.c:144 coff-i960.c:507
+#: coff-i960.c:122 coff-i960.c:475
 msgid "uncertain calling convention for non-COFF symbol"
 msgstr "Ð½ÐµÐ¿ÐµÐ²Ð½Ñ– Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð¿Ð¾Ð·Ð° COFF"
 
-#: coff-m68k.c:506 elf32-bfin.c:5690 elf32-cr16.c:2897 elf32-m68k.c:4677
+#: coff-m68k.c:483 elf32-bfin.c:5530 elf32-cr16.c:2817 elf32-m68k.c:4574
 msgid "unsupported reloc type"
 msgstr "Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
 
-#: coff-mips.c:688 elf32-mips.c:1516 elf32-score.c:431 elf32-score7.c:330
-#: elf64-mips.c:2618 elfn32-mips.c:2431
+#: coff-mips.c:634 elf32-mips.c:1744 elf32-score.c:430 elf32-score7.c:330
+#: elf64-mips.c:3135 elfn32-mips.c:2954
 msgid "GP relative relocation when _gp not defined"
 msgstr "Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� GP, Ð°Ð»Ðµ _gp Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
 
-#: coff-or32.c:229
-msgid "Unrecognized reloc"
-msgstr "Ð�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
-
-#: coff-rs6000.c:2720
+#: coff-rs6000.c:2747
 #, c-format
-msgid "%s: unsupported relocation type 0x%02x"
-msgstr "%s: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� 0x%02x"
+msgid "%B: unsupported relocation type 0x%02x"
+msgstr "%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� 0x%02x"
 
-#: coff-rs6000.c:2805
+#: coff-rs6000.c:2833
 #, c-format
-msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
-msgstr "%s: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� TOC Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%x Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», Ñ�ÐºÐ¸Ð¹ Ð½ÐµÐ¼Ð°Ñ” Ð·Ð°Ð¿Ð¸Ñ�Ñƒ Ñƒ TOC"
+msgid "%B: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� TOC Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%x Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», Ñ�ÐºÐ¸Ð¹ Ð½ÐµÐ¼Ð°Ñ” Ð·Ð°Ð¿Ð¸Ñ�Ñƒ Ñƒ TOC"
 
-#: coff-rs6000.c:3556 coff64-rs6000.c:2111
+#: coff-rs6000.c:3579 coff64-rs6000.c:2110
+#, c-format
 msgid "%B: symbol `%s' has unrecognized smclas %d"
 msgstr "%B: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð´Ð¾ Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¾Ð³Ð¾ smclas %d"
 
-#: coff-sh.c:521
+#: coff-sh.c:504
 #, c-format
 msgid "SH Error: unknown reloc type %d"
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° SH: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, %d"
 
-#: coff-tic4x.c:195 coff-tic54x.c:299 coff-tic80.c:458
+#: coff-sh.c:778 elf32-sh.c:580
 #, c-format
-msgid "Unrecognized reloc type 0x%x"
-msgstr "Ð�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� 0x%x"
+msgid "%B: 0x%lx: warning: bad R_SH_USES offset"
+msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ R_SH_USES"
+
+#: coff-sh.c:789 elf32-sh.c:592
+#, c-format
+msgid "%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"
+msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_SH_USES Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñƒ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ 0x%x"
+
+#: coff-sh.c:807 elf32-sh.c:610
+#, c-format
+msgid "%B: 0x%lx: warning: bad R_SH_USES load offset"
+msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ� R_SH_USES"
+
+#: coff-sh.c:832 elf32-sh.c:626
+#, c-format
+msgid "%B: 0x%lx: warning: could not find expected reloc"
+msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
+
+#: coff-sh.c:849 elf32-sh.c:655
+#, c-format
+msgid "%B: 0x%lx: warning: symbol in unexpected section"
+msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñƒ Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–"
+
+#: coff-sh.c:975 elf32-sh.c:785
+#, c-format
+msgid "%B: 0x%lx: warning: could not find expected COUNT reloc"
+msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� COUNT"
+
+#: coff-sh.c:985 elf32-sh.c:795
+#, c-format
+msgid "%B: 0x%lx: warning: bad count"
+msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸Ðº"
+
+#: coff-sh.c:1357 coff-sh.c:2645 elf32-sh.c:1199 elf32-sh.c:1570
+#, c-format
+msgid "%B: 0x%lx: fatal: reloc overflow while relaxing"
+msgstr "%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ"
+
+#: coff-sh.c:1452
+msgid "%B: fatal: generic symbols retrieved before relaxing"
+msgstr "%B: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð´Ð¾ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ"
+
+#: coff-sh.c:2783 cofflink.c:2961
+#, c-format
+msgid "%B: illegal symbol index %ld in relocs"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %ld Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ñ…"
 
-#: coff-tic4x.c:240
+#: coff-tic4x.c:183 coff-tic54x.c:278 coff-tic80.c:439
 #, c-format
-msgid "%s: warning: illegal symbol index %ld in relocs"
-msgstr "%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %ld Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ñ…"
+msgid "Unrecognized reloc type 0x%x"
+msgstr "Ð�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� 0x%x"
 
-#: coff-w65.c:367
+#: coff-w65.c:352
 #, c-format
 msgid "ignoring reloc %s\n"
 msgstr "Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ð¼Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s\n"
 
-#: coffcode.h:997
+#: coffcode.h:968
+msgid "%B: unable to load COMDAT section name"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Ð½Ð°Ð·Ð²Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ COMDAT"
+
+#: coffcode.h:1009
+#, c-format
 msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'"
 msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ð¸Ð¼Ð²Ð¾Ð» COMDAT Â«%sÂ» Ð½Ðµ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ” Ð½Ð°Ð·Ð²Ñ– Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ»"
 
+#: coffcode.h:1019
+#, c-format
+msgid "%B: warning: No symbol for section '%s' found"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ»"
+
 #. Generate a warning message rather using the 'unhandled'
 #. variable as this will allow some .sys files generate by
 #. other toolchains to be processed.  See bugzilla issue 196.
-#: coffcode.h:1221
+#: coffcode.h:1245
+#, c-format
 msgid "%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s"
 msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ð¼Ð¾ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ IMAGE_SCN_MEM_NOT_PAGED Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %s"
 
-#: coffcode.h:1288
+#: coffcode.h:1314
+#, c-format
 msgid "%B (%s): Section flag %s (0x%x) ignored"
 msgstr "%B (%s): Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s (0x%x) Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾"
 
-#: coffcode.h:2430
+#: coffcode.h:1949
+msgid "%B: warning: claims to have 0xffff relocs, without overflow"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ð¼Ð¾Ð³Ð° Ñ‰Ð¾Ð´Ð¾ 0xffff Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ð±ÐµÐ· Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ�"
+
+#: coffcode.h:2465
 #, c-format
 msgid "Unrecognized TI COFF target id '0x%x'"
 msgstr "Ð�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� TI COFF, Â«0x%xÂ»"
 
-#: coffcode.h:2744
-msgid "%B: reloc against a non-existant symbol index: %ld"
+#: coffcode.h:2783
+#, c-format
+msgid "%B: reloc against a non-existent symbol index: %ld"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Ð½ÐµÑ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð¸Ð¼ Ñ–Ð½Ð´ÐµÐºÑ�Ð¾Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ: %ld"
 
-#: coffcode.h:3302
+#: coffcode.h:3186
+#, c-format
+msgid "%B: page size is too large (0x%x)"
+msgstr "%B: Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ñ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¸ (0x%x)"
+
+#: coffcode.h:3346
+#, c-format
 msgid "%B: too many sections (%d)"
 msgstr "%B: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² (%d)"
 
-#: coffcode.h:3718
-msgid "%B: section %s: string table overflow at offset %ld"
-msgstr "%B: Ñ€Ð¾Ð·Ð´Ñ–Ð» %s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñ�Ð´ÐºÑ–Ð² Ð·Ð° Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ %ld"
+#: coffcode.h:3767
+#, c-format
+msgid "%B: section %A: string table overflow at offset %ld"
+msgstr "%B: Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñ�Ð´ÐºÑ–Ð² Ð·Ð° Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ %ld"
 
-#: coffcode.h:4523
+#: coffcode.h:4585
 msgid "%B: warning: line number table read failed"
 msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ð· Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð²"
 
-#: coffcode.h:4553
-msgid "%B: warning: illegal symbol index %ld in line numbers"
-msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %ld Ñƒ Ð½Ð¾Ð¼ÐµÑ€Ð°Ñ… Ñ€Ñ�Ð´ÐºÑ–Ð²"
+#: coffcode.h:4619 coffcode.h:4633
+#, c-format
+msgid "%B: warning: illegal symbol index 0x%lx in line number entry %d"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ 0x%lx Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– Ð½Ð¾Ð¼ÐµÑ€Ð° Ñ€Ñ�Ð´ÐºÐ° %d"
+
+#: coffcode.h:4647
+#, c-format
+msgid "%B: warning: illegal symbol in line number entry %d"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– Ð½Ð¾Ð¼ÐµÑ€Ð° Ñ€Ñ�Ð´ÐºÐ° %d"
 
-#: coffcode.h:4567
+#: coffcode.h:4660
+#, c-format
 msgid "%B: warning: duplicate line number information for `%s'"
 msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð² Ð´Ð»Ñ� Â«%sÂ»"
 
-#: coffcode.h:4967
+#: coffcode.h:5074
+#, c-format
 msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
 msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ÐºÐ»Ð°Ñ� Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… %d Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s Â«%sÂ»"
 
-#: coffcode.h:5093
+#: coffcode.h:5207
+#, c-format
 msgid "warning: %B: local symbol `%s' has no section"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð¼Ð°Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ"
 
-#: coffcode.h:5237
+#: coffcode.h:5354
+#, c-format
 msgid "%B: illegal relocation type %d at address 0x%lx"
 msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx"
 
-#: coffgen.c:1595
+#: coffgen.c:178 elf.c:1181
+#, c-format
+msgid "%B: unable to initialize compress status for section %s"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñ�Ñ‚Ð°Ð½ Ñ�Ñ‚Ð¸Ñ�ÐºÐ°Ð½Ð½Ñ� Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s"
+
+#: coffgen.c:202 elf.c:1192
+#, c-format
+msgid "%B: unable to initialize decompress status for section %s"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñ�Ñ‚Ð°Ð½ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s"
+
+#. PR 21013: Provide an error message when the alloc fails.
+#: coffgen.c:1648
+msgid "%B: Not enough memory to allocate space for %lu symbols"
+msgstr "%B: Ð½ÐµÐ´Ð¾Ñ�Ñ‚Ð°Ñ‚Ð½ÑŒÐ¾ Ð¿Ð°Ð¼'Ñ�Ñ‚Ñ– Ð´Ð»Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ� Ð¼Ñ–Ñ�Ñ†Ñ� Ð´Ð»Ñ� %lu Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²"
+
+#: coffgen.c:1716
+#, c-format
 msgid "%B: bad string table size %lu"
 msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñ�Ð´ÐºÑ–Ð² %lu"
 
-#: coffgen.c:2500 elflink.c:12689 linker.c:3122
+#: coffgen.c:1885 coffgen.c:1945 coffgen.c:1963 cofflink.c:2041
+#: xcofflink.c:4507
+msgid "<corrupt>"
+msgstr "<Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾>"
+
+#: coffgen.c:2087
+#, c-format
+msgid "<corrupt info> %s"
+msgstr "<Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ñ– Ð´Ð°Ð½Ñ–> %s"
+
+#: coffgen.c:2666 elflink.c:14044 linker.c:2931
 msgid "%F%P: already_linked_table: %E\n"
 msgstr "%F%P: already_linked_table: %E\n"
 
-#: cofflink.c:533 elflink.c:4323
+#: coffgen.c:3007 elflink.c:13059
+#, c-format
+msgid "Removing unused section '%A' in file '%B'"
+msgstr "Ð’Ð¸Ð»ÑƒÑ‡Ð°Ñ”Ð¼Ð¾ Ð½ÐµÐ²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Â«%BÂ»"
+
+#: coffgen.c:3084 elflink.c:13304
+msgid "Warning: gc-sections option ignored"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ gc-sections Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾"
+
+#: cofflink.c:348
+#, c-format
+msgid "Warning: symbol `%s' is both section and non-section"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñ” Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ñ– Ð¿Ð¾Ð·Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¾Ð¼"
+
+#: cofflink.c:450 elf64-ia64-vms.c:5188 elflink.c:4788
+#, c-format
 msgid "Warning: type of symbol `%s' changed from %d to %d in %B"
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ‚Ð¸Ð¿ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð· %d Ð½Ð° %d Ñƒ %B"
 
-#: cofflink.c:2329
+#: cofflink.c:2369
+#, c-format
 msgid "%B: relocs in section `%A', but it has no contents"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ», Ð°Ð»Ðµ Ñƒ Ñ†ÑŒÐ¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð½ÐµÐ¼Ð°Ñ” Ð·Ð¼Ñ–Ñ�Ñ‚Ñƒ"
 
-#: cofflink.c:2391 elflink.c:9545
+#: cofflink.c:2432 elflink.c:10567
+#, c-format
 msgid "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B\n"
 msgstr "Ð�Ð° %XÂ«%sÂ» Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» %B: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð²Ñ–Ð´ÐºÐ¸Ð½ÑƒÑ‚Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» %B\n"
 
-#: cofflink.c:2690 coffswap.h:826
+#: cofflink.c:2730
+#, c-format
+msgid "%B: %A: reloc overflow: 0x%lx > 0xffff"
+msgstr "%B: %A: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: 0x%lx > 0xffff"
+
+#: cofflink.c:2738
+#, c-format
+msgid "%B: warning: %A: line number overflow: 0x%lx > 0xffff"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %A: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð½Ð¾Ð¼ÐµÑ€Ð° Ñ€Ñ�Ð´ÐºÐ°: 0x%lx > 0xffff"
+
+#: coffswap.h:811
+#, c-format
+msgid "%B: warning: %s: line number overflow: 0x%lx > 0xffff"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð½Ð¾Ð¼ÐµÑ€Ð° Ñ€Ñ�Ð´ÐºÐ°: 0x%lx > 0xffff"
+
+#: coffswap.h:825
 #, c-format
-msgid "%s: %s: reloc overflow: 0x%lx > 0xffff"
-msgstr "%s: %s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: 0x%lx > 0xffff"
+msgid "%B: %s: reloc overflow: 0x%lx > 0xffff"
+msgstr "%B: %s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: 0x%lx > 0xffff"
 
-#: cofflink.c:2699 coffswap.h:812
+#: compress.c:255
 #, c-format
-msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff"
-msgstr "%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð½Ð¾Ð¼ÐµÑ€Ð° Ñ€Ñ�Ð´ÐºÐ°: 0x%lx > 0xffff"
+msgid "error: %B(%A) is too large (%#lx bytes)"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B(%A) Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼ (%#lx Ð±Ð°Ð¹Ñ‚Ñ–Ð²)"
 
-#: cpu-arm.c:189 cpu-arm.c:200
+#: cpu-arm.c:192 cpu-arm.c:204
+#, c-format
 msgid "error: %B is compiled for the EP9312, whereas %B is compiled for XScale"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� EP9312, Ð° %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� XScale"
 
-#: cpu-arm.c:333
+#: cpu-arm.c:338
 #, c-format
-msgid "warning: unable to update contents of %s section in %s"
-msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð·Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ñƒ %s"
+msgid "warning: unable to update contents of %s section in %B"
+msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð·Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ñƒ %B"
 
-#: dwarf2.c:496
+#: dwarf2.c:532
 #, c-format
 msgid "Dwarf Error: Can't find %s section."
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» %s."
 
-#: dwarf2.c:525
+#: dwarf2.c:562
 #, c-format
 msgid "Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu)."
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ (%lu) Ñ” Ð±Ñ–Ð»ÑŒÑˆÐ¸Ð¼ Ð°Ð±Ð¾ Ñ€Ñ–Ð²Ð½Ð¸Ð¼ Ð·Ð° Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ %s (%lu)."
 
-#: dwarf2.c:949
+#: dwarf2.c:1028
+msgid "Dwarf Error: Info pointer extends beyond end of attributes"
+msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸Ðº Ð½Ð° Ð´Ð°Ð½Ñ– Ð²Ð¸Ñ…Ð¾Ð´Ð¸Ñ‚ÑŒ Ð·Ð° ÐºÑ–Ð½ÐµÑ†ÑŒ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð²"
+
+#: dwarf2.c:1185
 #, c-format
-msgid "Dwarf Error: Invalid or unhandled FORM value: %u."
-msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð°Ð±Ð¾ Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ðµ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� FORM: %u."
+msgid "Dwarf Error: Invalid or unhandled FORM value: %#x."
+msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð°Ð±Ð¾ Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ðµ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� FORM: %#x."
 
-#: dwarf2.c:1200
+#: dwarf2.c:1491
 msgid "Dwarf Error: mangled line number section (bad file number)."
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð² (Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ñ„Ð°Ð¹Ð»Ð°)."
 
-#: dwarf2.c:1453
+#: dwarf2.c:1779
+#, c-format
+msgid "Dwarf Error: Line info section is too small (%ld)"
+msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ñ€Ñ�Ð´ÐºÑ–Ð² Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð¼Ð°Ð»Ð¸Ð¼ (%ld)"
+
+#: dwarf2.c:1809
+#, c-format
+msgid "Dwarf Error: Line info data is bigger (0x%lx) than the section (0x%lx)"
+msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð´Ð°Ð½Ñ– Ñ‰Ð¾Ð´Ð¾ Ñ€Ñ�Ð´ÐºÑ–Ð² Ñ” Ð±Ñ–Ð»ÑŒÑˆÐ¸Ð¼Ð¸ (0x%lx) Ð·Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð» (0x%lx)"
+
+#: dwarf2.c:1821
 #, c-format
 msgid "Dwarf Error: Unhandled .debug_line version %d."
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð° Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð²ÐµÑ€Ñ�Ñ–Ñ� .debug_line, %d."
 
-#: dwarf2.c:1475
+#: dwarf2.c:1830
+msgid "Dwarf Error: Ran out of room reading prologue"
+msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ð²Ñ�Ñ‚ÑƒÐ¿Ñƒ"
+
+#: dwarf2.c:1855
 msgid "Dwarf Error: Invalid maximum operations per instruction."
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð¼Ð°ÐºÑ�Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð° ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð´Ñ–Ð¹ Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ."
 
-#: dwarf2.c:1662
+#: dwarf2.c:1874
+msgid "Dwarf Error: Ran out of room reading opcodes"
+msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� ÐºÐ¾Ð´Ñ–Ð² Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ð¹"
+
+#: dwarf2.c:2069
 msgid "Dwarf Error: mangled line number section."
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð²."
 
-#: dwarf2.c:1989 dwarf2.c:2109 dwarf2.c:2394
+#: dwarf2.c:2575
+#, c-format
+msgid "Dwarf Error: Unable to read alt ref %u."
+msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Dwarf: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� %u."
+
+#: dwarf2.c:2600 dwarf2.c:2750 dwarf2.c:3071
 #, c-format
 msgid "Dwarf Error: Could not find abbrev number %u."
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ %u."
 
-#: dwarf2.c:2355
+#: dwarf2.c:3023
 #, c-format
 msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information."
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð²ÐµÑ€Ñ�Ñ–ÑŽ dwarf Â«%uÂ», Ð°Ð»Ðµ Ñƒ Ñ†Ñ–Ð¹ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÑƒ Ð»Ð¸ÑˆÐµ Ð²ÐµÑ€Ñ�Ñ–Ð¹ Ð´Ð°Ð½Ð¸Ñ… 2, 3 Ñ– 4."
 
-#: dwarf2.c:2362
+#: dwarf2.c:3034
 #, c-format
 msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'."
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ dwarf: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð°Ð´Ñ€ÐµÑ�Ð¸ Â«%uÂ», Ð²Ñ‚Ñ–Ð¼ Ñƒ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñ–Ð², Ñ‰Ð¾ Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑŽÑ‚ÑŒ Â«%uÂ»."
 
-#: dwarf2.c:2385
+#: dwarf2.c:3137
+msgid "Dwarf Error: DW_AT_comp_dir attribute encountered with a non-string form."
+msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ DW_AT_comp_dir Ñ–Ð· Ð½ÐµÑ€Ñ�Ð´ÐºÐ¾Ð²Ð¾ÑŽ Ñ„Ð¾Ñ€Ð¼Ð¾ÑŽ."
+
+#: ecoff.c:964
 #, c-format
-msgid "Dwarf Error: Bad abbrev number: %u."
-msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ�ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€: %u."
+msgid "%B: warning: isymMax (%ld) is greater than ifdMax (%d)\n"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: isymMax (%ld) Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” ifdMax (%d)\n"
 
-#: ecoff.c:1239
+#: ecoff.c:1261
 #, c-format
 msgid "Unknown basic type %d"
 msgstr "Ð�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ %d"
 
-#: ecoff.c:1496
+#: ecoff.c:1518
 #, c-format
 msgid ""
 "\n"
@@ -581,7 +771,7 @@ msgstr ""
 "\n"
 "      Ð¡Ð¸Ð¼Ð²Ð¾Ð» Ð·Ð° ÐºÑ–Ð½Ñ†ÐµÐ¼: %ld"
 
-#: ecoff.c:1503 ecoff.c:1506
+#: ecoff.c:1525 ecoff.c:1528
 #, c-format
 msgid ""
 "\n"
@@ -590,7 +780,7 @@ msgstr ""
 "\n"
 "      ÐŸÐµÑ€ÑˆÐ¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð»: %ld"
 
-#: ecoff.c:1518
+#: ecoff.c:1541
 #, c-format
 msgid ""
 "\n"
@@ -599,7 +789,7 @@ msgstr ""
 "\n"
 "      Ð¡Ð¸Ð¼Ð²Ð¾Ð» Ð·Ð° ÐºÑ–Ð½Ñ†ÐµÐ¼: %-7ld   Ð¢Ð¸Ð¿:  %s"
 
-#: ecoff.c:1525
+#: ecoff.c:1548
 #, c-format
 msgid ""
 "\n"
@@ -608,7 +798,7 @@ msgstr ""
 "\n"
 "      Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð»: %ld"
 
-#: ecoff.c:1533
+#: ecoff.c:1556
 #, c-format
 msgid ""
 "\n"
@@ -617,7 +807,7 @@ msgstr ""
 "\n"
 "      struct; Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð·Ð° ÐºÑ–Ð½Ñ†ÐµÐ¼: %ld"
 
-#: ecoff.c:1538
+#: ecoff.c:1561
 #, c-format
 msgid ""
 "\n"
@@ -626,7 +816,7 @@ msgstr ""
 "\n"
 "      union; Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð·Ð° ÐºÑ–Ð½Ñ†ÐµÐ¼: %ld"
 
-#: ecoff.c:1543
+#: ecoff.c:1566
 #, c-format
 msgid ""
 "\n"
@@ -635,7 +825,7 @@ msgstr ""
 "\n"
 "      enum; Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð·Ð° ÐºÑ–Ð½Ñ†ÐµÐ¼: %ld"
 
-#: ecoff.c:1549
+#: ecoff.c:1572
 #, c-format
 msgid ""
 "\n"
@@ -644,140 +834,269 @@ msgstr ""
 "\n"
 "      Ð¢Ð¸Ð¿: %s"
 
-#: elf-attrs.c:569
+#: elf-attrs.c:595
+#, c-format
 msgid "error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchain"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ð¼Ñ–Ñ�Ñ‚Ñ�Ñ‚ÑŒÑ�Ñ� Ð´Ð°Ð½Ñ– Ñƒ Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð¼Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–, Ñ†Ñ– Ð´Ð°Ð½Ñ– Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¾ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð¼ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² Â«%sÂ»"
 
-#: elf-attrs.c:578
+#: elf-attrs.c:605
+#, c-format
 msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð¼Ñ–Ñ‚ÐºÐ° Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Â«%d, %sÂ» Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð° Ð· Ð¼Ñ–Ñ‚ÐºÐ¾ÑŽ Â«%d, %sÂ»"
 
-#: elf-eh-frame.c:917
+#: elf-eh-frame.c:946
+#, c-format
+msgid "discarding zero address range FDE in %B(%A).\n"
+msgstr "Ð²Ñ–Ð´ÐºÐ¸Ð´Ð°Ñ”Ð¼Ð¾ FDE Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ Ð°Ð´Ñ€ÐµÑ� Ñƒ %B(%A).\n"
+
+#: elf-eh-frame.c:1051
+#, c-format
 msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n"
 msgstr "%P: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ %B(%A); Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŽ .eh_frame_hdr Ð½Ðµ Ð±ÑƒÐ´Ðµ Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð¾.\n"
 
-#: elf-eh-frame.c:1189
-msgid "%P: fde encoding in %B(%A) prevents .eh_frame_hdr table being created.\n"
-msgstr "%P: ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ� fde Ñƒ %B(%A) Ð¿ÐµÑ€ÐµÑˆÐºÐ¾Ð´Ð¶Ð°Ñ” Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½ÑŽ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– .eh_frame_hdr.\n"
+#: elf-eh-frame.c:1541
+#, c-format
+msgid "%P: FDE encoding in %B(%A) prevents .eh_frame_hdr table being created.\n"
+msgstr "%P: ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ� FDE Ñƒ %B(%A) Ð¿ÐµÑ€ÐµÑˆÐºÐ¾Ð´Ð¶Ð°Ñ” Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½ÑŽ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– .eh_frame_hdr.\n"
+
+#: elf-eh-frame.c:1548
+msgid "%P: Further warnings about FDE encoding preventing .eh_frame_hdr generation dropped.\n"
+msgstr "%P: Ð¿Ð¾Ð´Ð°Ð»ÑŒÑˆÑ– Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ� FDE, Ñ�ÐºÐµ Ð·Ð°Ð²Ð°Ð¶Ð°Ñ” Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½ÑŽ .eh_frame_hdr, Ð¿Ñ€Ð¾Ð¿ÑƒÑ‰ÐµÐ½Ð¾.\n"
+
+#: elf-eh-frame.c:1879
+#, c-format
+msgid "%B: %A not in order"
+msgstr "%B: %A Ñ” Ð½ÐµÐ²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¼"
+
+#: elf-eh-frame.c:1893
+#, c-format
+msgid "%B: %A invalid input section size"
+msgstr "%B: %A Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ñ… Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…"
+
+#: elf-eh-frame.c:1901
+#, c-format
+msgid "%B: %A points past end of text section"
+msgstr "%B: %A Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð°Ð´Ñ€ÐµÑ�Ñƒ Ð·Ð° ÐºÑ–Ð½Ñ†ÐµÐ¼ Ñ‚ÐµÐºÑ�Ñ‚Ð¾Ð²Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ"
 
-#: elf-eh-frame.c:1605
+#: elf-eh-frame.c:2150
 msgid "%P: DW_EH_PE_datarel unspecified for this architecture.\n"
 msgstr "%P: DW_EH_PE_datarel Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ� Ñ†Ñ–Ñ”Ñ— Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸.\n"
 
-#: elf-ifunc.c:179
+#: elf-eh-frame.c:2320
+#, c-format
+msgid "Invalid output section for .eh_frame_entry: %A"
+msgstr "Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Invalid output section for .eh_frame_entry: %A"
+
+#: elf-eh-frame.c:2343
+#, c-format
+msgid "Invalid contents in %A section"
+msgstr "Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %A"
+
+#: elf-eh-frame.c:2499
+msgid "%P: .eh_frame_hdr entry overflow.\n"
+msgstr "%P: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð·Ð°Ð¿Ð¸Ñ�Ñƒ .eh_frame_hdr.\n"
+
+#: elf-eh-frame.c:2502
+msgid "%P: .eh_frame_hdr refers to overlapping FDEs.\n"
+msgstr "%P: .eh_frame_hdr Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° FDE, Ñ�ÐºÑ– Ð¿ÐµÑ€ÐµÐºÑ€Ð¸Ð²Ð°ÑŽÑ‚ÑŒÑ�Ñ�.\n"
+
+#: elf-ifunc.c:142
+#, c-format
 msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can not be used when making an executable; recompile with -fPIE and relink with -pie\n"
 msgstr "%F%P: Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» STT_GNU_IFUNC Â«%sÂ» Ð· Ñ€Ñ–Ð²Ð½Ñ–Ñ�Ñ‚ÑŽ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² Ñƒ Â«%BÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð°; Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ñƒ ÐºÐ¾Ð¼Ð¿Ñ–Ð»Ñ�Ñ†Ñ–ÑŽ Ð· -fPIE Ñ– Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� -pie\n"
 
-#: elf-m10200.c:450 elf-m10300.c:1563 elf32-avr.c:1221 elf32-bfin.c:3213
-#: elf32-cr16.c:1482 elf32-cr16c.c:780 elf32-cris.c:2081 elf32-crx.c:922
-#: elf32-d10v.c:509 elf32-epiphany.c:556 elf32-fr30.c:609 elf32-frv.c:4105
-#: elf32-h8300.c:509 elf32-i860.c:1211 elf32-ip2k.c:1468 elf32-iq2000.c:684
-#: elf32-lm32.c:1168 elf32-m32c.c:553 elf32-m32r.c:3106 elf32-m68hc1x.c:1138
-#: elf32-mep.c:535 elf32-microblaze.c:1231 elf32-moxie.c:282
-#: elf32-msp430.c:486 elf32-mt.c:395 elf32-openrisc.c:404 elf32-score.c:2729
-#: elf32-score7.c:2537 elf32-spu.c:5044 elf32-tilepro.c:3214 elf32-v850.c:2143
-#: elf32-xstormy16.c:935 elf64-mmix.c:1590 elfxx-tilegx.c:3577
+#: elf-m10200.c:425 elf-m10300.c:2149 elf32-avr.c:1502 elf32-bfin.c:3194
+#: elf32-cr16.c:1466 elf32-cr16c.c:780 elf32-cris.c:2025 elf32-crx.c:924
+#: elf32-d10v.c:513 elf32-epiphany.c:563 elf32-fr30.c:591 elf32-frv.c:4041
+#: elf32-ft32.c:334 elf32-h8300.c:522 elf32-i860.c:1210 elf32-ip2k.c:1475
+#: elf32-iq2000.c:693 elf32-lm32.c:1126 elf32-m32c.c:621 elf32-m32r.c:3044
+#: elf32-m68hc1x.c:1269 elf32-mep.c:524 elf32-metag.c:2001
+#: elf32-microblaze.c:1570 elf32-moxie.c:285 elf32-mt.c:400 elf32-nds32.c:5402
+#: elf32-or1k.c:1258 elf32-score.c:2731 elf32-score7.c:2540 elf32-spu.c:5076
+#: elf32-tilepro.c:3665 elf32-v850.c:2287 elf32-visium.c:677
+#: elf32-xstormy16.c:927 elf64-mmix.c:1540 elfxx-tilegx.c:4052
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2267
 msgid "internal error: out of range error"
 msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ"
 
-#: elf-m10200.c:454 elf-m10300.c:1567 elf32-avr.c:1225 elf32-bfin.c:3217
-#: elf32-cr16.c:1486 elf32-cr16c.c:784 elf32-cris.c:2085 elf32-crx.c:926
-#: elf32-d10v.c:513 elf32-fr30.c:613 elf32-frv.c:4109 elf32-h8300.c:513
-#: elf32-i860.c:1215 elf32-iq2000.c:688 elf32-lm32.c:1172 elf32-m32c.c:557
-#: elf32-m32r.c:3110 elf32-m68hc1x.c:1142 elf32-mep.c:539
-#: elf32-microblaze.c:1235 elf32-moxie.c:286 elf32-msp430.c:490
-#: elf32-openrisc.c:408 elf32-score.c:2733 elf32-score7.c:2541
-#: elf32-spu.c:5048 elf32-tilepro.c:3218 elf32-v850.c:2147
-#: elf32-xstormy16.c:939 elf64-mmix.c:1594 elfxx-mips.c:9465
-#: elfxx-tilegx.c:3581
+#: elf-m10200.c:429 elf-m10300.c:2153 elf32-avr.c:1506 elf32-bfin.c:3198
+#: elf32-cr16.c:1470 elf32-cr16c.c:784 elf32-cris.c:2029 elf32-crx.c:928
+#: elf32-d10v.c:517 elf32-fr30.c:595 elf32-frv.c:4045 elf32-ft32.c:338
+#: elf32-h8300.c:526 elf32-i860.c:1214 elf32-iq2000.c:697 elf32-lm32.c:1130
+#: elf32-m32c.c:625 elf32-m32r.c:3048 elf32-m68hc1x.c:1273 elf32-mep.c:528
+#: elf32-metag.c:2005 elf32-microblaze.c:1574 elf32-moxie.c:289
+#: elf32-msp430.c:1361 elf32-nds32.c:5406 elf32-or1k.c:1262 elf32-score.c:2735
+#: elf32-score7.c:2544 elf32-spu.c:5080 elf32-tilepro.c:3669 elf32-v850.c:2291
+#: elf32-visium.c:681 elf32-xstormy16.c:931 elf64-mmix.c:1544
+#: elfxx-mips.c:10258 elfxx-tilegx.c:4056
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2271
 msgid "internal error: unsupported relocation error"
 msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
 
-#: elf-m10200.c:458 elf32-cr16.c:1490 elf32-cr16c.c:788 elf32-crx.c:930
-#: elf32-d10v.c:517 elf32-h8300.c:517 elf32-lm32.c:1176 elf32-m32r.c:3114
-#: elf32-m68hc1x.c:1146 elf32-microblaze.c:1239 elf32-score.c:2737
-#: elf32-score7.c:2545 elf32-spu.c:5052
+#: elf-m10200.c:433 elf32-cr16.c:1474 elf32-cr16c.c:788 elf32-crx.c:932
+#: elf32-d10v.c:521 elf32-h8300.c:530 elf32-lm32.c:1134 elf32-m32r.c:3052
+#: elf32-m68hc1x.c:1277 elf32-microblaze.c:1578 elf32-nds32.c:5410
+#: elf32-score.c:2739 elf32-score7.c:2548 elf32-spu.c:5084
 msgid "internal error: dangerous error"
 msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
 
-#: elf-m10200.c:462 elf-m10300.c:1580 elf32-avr.c:1233 elf32-bfin.c:3225
-#: elf32-cr16.c:1494 elf32-cr16c.c:792 elf32-cris.c:2093 elf32-crx.c:934
-#: elf32-d10v.c:521 elf32-epiphany.c:571 elf32-fr30.c:621 elf32-frv.c:4117
-#: elf32-h8300.c:521 elf32-i860.c:1223 elf32-ip2k.c:1483 elf32-iq2000.c:696
-#: elf32-lm32.c:1180 elf32-m32c.c:565 elf32-m32r.c:3118 elf32-m68hc1x.c:1150
-#: elf32-mep.c:547 elf32-microblaze.c:1243 elf32-moxie.c:294
-#: elf32-msp430.c:498 elf32-mt.c:403 elf32-openrisc.c:416 elf32-score.c:2746
-#: elf32-score7.c:2549 elf32-spu.c:5056 elf32-tilepro.c:3226 elf32-v850.c:2167
-#: elf32-xstormy16.c:947 elf64-mmix.c:1602 elfxx-tilegx.c:3589
+#: elf-m10200.c:437 elf-m10300.c:2170 elf32-avr.c:1514 elf32-bfin.c:3206
+#: elf32-cr16.c:1478 elf32-cr16c.c:792 elf32-cris.c:2037 elf32-crx.c:936
+#: elf32-d10v.c:525 elf32-epiphany.c:578 elf32-fr30.c:603 elf32-frv.c:4053
+#: elf32-ft32.c:346 elf32-h8300.c:534 elf32-i860.c:1222 elf32-ip2k.c:1490
+#: elf32-iq2000.c:705 elf32-lm32.c:1138 elf32-m32c.c:633 elf32-m32r.c:3056
+#: elf32-m68hc1x.c:1281 elf32-mep.c:536 elf32-metag.c:2013
+#: elf32-microblaze.c:1582 elf32-moxie.c:297 elf32-msp430.c:1369
+#: elf32-mt.c:408 elf32-nds32.c:5414 elf32-or1k.c:1270 elf32-score.c:2748
+#: elf32-score7.c:2552 elf32-spu.c:5088 elf32-tilepro.c:3677 elf32-v850.c:2311
+#: elf32-visium.c:689 elf32-xstormy16.c:939 elf64-mmix.c:1552
+#: elfxx-tilegx.c:4064
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2279
 msgid "internal error: unknown error"
 msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
 
-#: elf-m10300.c:1507 elf32-arm.c:10419 elf32-i386.c:4264 elf32-m32r.c:2599
-#: elf32-m68k.c:4156 elf32-s390.c:3003 elf32-sh.c:4218 elf32-tilepro.c:3117
-#: elf32-xtensa.c:3066 elf64-s390.c:2978 elf64-sh64.c:1640 elf64-x86-64.c:4110
-#: elfxx-sparc.c:3835 elfxx-tilegx.c:3500
+#: elf-m10300.c:812
+#, c-format
+msgid "%B: unrecognised MN10300 reloc number: %d"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MN10300: %d"
+
+#: elf-m10300.c:1028
+#, c-format
+msgid "%B: Unsupported transition from %s to %s"
+msgstr "%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ð¿ÐµÑ€ÐµÑ…Ñ–Ð´ Ð· %s Ð´Ð¾ %s"
+
+#: elf-m10300.c:1201
+#, c-format
+msgid "%B: %s' accessed both as normal and thread local symbol"
+msgstr "%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Â«%sÂ» Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�Ðº Ð´Ð¾ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ‚Ð° Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð´Ð»Ñ� Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
+
+#: elf-m10300.c:2097 elf32-arm.c:12532 elf32-i386.c:5372 elf32-m32r.c:2540
+#: elf32-m68k.c:4084 elf32-s390.c:3372 elf32-sh.c:4127 elf32-tilepro.c:3569
+#: elf32-xtensa.c:3074 elf64-s390.c:3296 elf64-sh64.c:1636 elf64-x86-64.c:5753
+#: elfxx-sparc.c:4086 elfxx-tilegx.c:3976
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6437
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2236
+#, c-format
 msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"
 msgstr "%B(%A+0x%lx): Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»"
 
-#: elf-m10300.c:1572
+#: elf-m10300.c:2158
 msgid "error: inappropriate relocation type for shared library (did you forget -fpic?)"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� (Ð·Ð°Ð±ÑƒÐ»Ð¸ -fpic?)"
 
-#: elf-m10300.c:1575
+#: elf-m10300.c:2162
+#, c-format
+msgid "%B: taking the address of protected function '%s' cannot be done when making a shared library"
+msgstr "%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ� Ð°Ð´Ñ€ÐµÑ�Ð¸ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%sÂ» Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
+
+#: elf-m10300.c:2165
 msgid "internal error: suspicious relocation type used in shared library"
 msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿Ñ–Ð´Ð¾Ð·Ñ€Ñ–Ð»Ð¸Ð²Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÑ†Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
 
-#: elf-m10300.c:4372 elf32-arm.c:12800 elf32-cr16.c:2451 elf32-cris.c:3057
-#: elf32-hppa.c:1894 elf32-i370.c:503 elf32-i386.c:2182 elf32-lm32.c:1868
-#: elf32-m32r.c:1927 elf32-m68k.c:3253 elf32-s390.c:1652 elf32-sh.c:2931
-#: elf32-tic6x.c:2162 elf32-tilepro.c:1940 elf32-vax.c:1041 elf64-s390.c:1635
-#: elf64-sh64.c:3381 elf64-x86-64.c:2176 elfxx-sparc.c:2119
-#: elfxx-tilegx.c:2261
+#: elf-properties.c:65
+msgid "%B: out of memory in _bfd_elf_get_property"
+msgstr "%B: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð´Ñ–Ð»Ñ�Ð½ÐºÐ¸ Ð¿Ð°Ð¼'Ñ�Ñ‚Ñ– Ñƒ _bfd_elf_get_property"
+
+#: elf-properties.c:91
+msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx"
+msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ GNU_PROPERTY_TYPE (%ld), Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %#lx"
+
+#: elf-properties.c:107
+msgid "warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x"
+msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ GNU_PROPERTY_TYPE (%ld), Ñ‚Ð¸Ð¿ (0x%x), Ð¾Ð±Ñ�Ñ�Ð³ Ð´Ð°Ð½Ð¸Ñ…: 0x%x"
+
+#: elf-properties.c:146
+msgid "warning: %B: corrupt stack size: 0x%x"
+msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ñ‚ÐµÐºÐ°: 0x%x"
+
+#: elf-properties.c:164
+msgid "warning: %B: corrupt no copy on protected size: 0x%x"
+msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ Â«Ð½Ðµ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ñ‚Ð¸ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½ÐµÂ», Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: 0x%x"
+
+#: elf-properties.c:180
+msgid "warning: %B: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x"
+msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ GNU_PROPERTY_TYPE (%ld): 0x%x"
+
+#. PR 17512: file: f057ec89.
+#: elf.c:342
 #, c-format
-msgid "dynamic variable `%s' is zero size"
-msgstr "Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð° Ð·Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð¼Ð°Ñ” Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€"
+msgid "%B: attempt to load strings from a non-string section (number %d)"
+msgstr "%B: Ñ�Ð¿Ñ€Ð¾Ð±Ð° Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ� Ñ€Ñ�Ð´ÐºÑ–Ð² Ñ–Ð· Ð½ÐµÑ€Ñ�Ð´ÐºÐ¾Ð²Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ (Ð½Ð¾Ð¼ÐµÑ€ %d)"
 
-#: elf.c:334
+#: elf.c:357
+#, c-format
 msgid "%B: invalid string offset %u >= %lu for section `%s'"
 msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ñ€Ñ�Ð´ÐºÐ°, %u >= %lu, Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ»"
 
-#: elf.c:446
+#: elf.c:496
+#, c-format
 msgid "%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
 msgstr "%B Ð½Ð¾Ð¼ÐµÑ€ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %lu Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð» SHT_SYMTAB_SHNDX, Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ñ–Ñ�Ð½ÑƒÑ”"
 
-#: elf.c:602
-msgid "%B: Corrupt size field in group section header: 0x%lx"
-msgstr "%B: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ñ– Ð´Ð°Ð½Ñ– Ð¿Ð¾Ð»Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñƒ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð³Ñ€ÑƒÐ¿: 0x%lx"
+#: elf.c:660
+#, c-format
+msgid "%B: corrupt size field in group section header: %#Lx"
+msgstr "%B: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ñ– Ð´Ð°Ð½Ñ– Ð¿Ð¾Ð»Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñƒ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð³Ñ€ÑƒÐ¿: %#Lx"
+
+#: elf.c:675
+#, c-format
+msgid "%B: invalid size field in group section header: %#Lx"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ñ– Ð´Ð°Ð½Ñ– Ð¿Ð¾Ð»Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñƒ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð³Ñ€ÑƒÐ¿: %#Lx"
 
-#: elf.c:638
+#: elf.c:711
 msgid "%B: invalid SHT_GROUP entry"
 msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� SHT_GROUP"
 
-#: elf.c:708
+#: elf.c:730
+msgid "%B: no valid group sections found"
+msgstr "%B: Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ ÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ñ… Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² Ð³Ñ€ÑƒÐ¿Ð¸"
+
+#: elf.c:804
+#, c-format
 msgid "%B: no group info for section %A"
 msgstr "%B: Ð½ÐµÐ¼Ð°Ñ” Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ð³Ñ€ÑƒÐ¿Ð¸ Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A"
 
-#: elf.c:737 elf.c:3121 elflink.c:10135
+#: elf.c:835 elf.c:3819 elflink.c:11155
+#, c-format
 msgid "%B: warning: sh_link not set for section `%A'"
 msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ sh_link Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ»"
 
-#: elf.c:756
+#: elf.c:855
+#, c-format
 msgid "%B: sh_link [%d] in section `%A' is incorrect"
 msgstr "%B: sh_link [%d] Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¼"
 
-#: elf.c:791
-msgid "%B: unknown [%d] section `%s' in group [%s]"
-msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ [%d] Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%sÂ» Ñƒ Ð³Ñ€ÑƒÐ¿Ñ– [%s]"
+#: elf.c:868
+#, c-format
+msgid "%B: SHT_GROUP section [index %d] has no SHF_GROUP sections"
+msgstr "%B: Ñ€Ð¾Ð·Ð´Ñ–Ð» SHT_GROUP [Ñ–Ð½Ð´ÐµÐºÑ� %d] Ð½Ðµ Ð¼Ð°Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² SHF_GROUP"
 
-#: elf.c:1041
-msgid "%B: unable to initialize commpress status for section %s"
-msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñ�Ñ‚Ð°Ð½ Ñ�Ñ‚Ð¸Ñ�ÐºÐ°Ð½Ð½Ñ� Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s"
+#: elf.c:889
+#, c-format
+msgid "%B: section group entry number %u is corrupt"
+msgstr "%B: Ð·Ð°Ð¿Ð¸Ñ� Ð³Ñ€ÑƒÐ¿Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² Ñ–Ð· Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ %u Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾"
+
+#: elf.c:914
+#, c-format
+msgid "%B: unknown type [%#x] section `%s' in group [%A]"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿, [%#x], Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ» Ñƒ Ð³Ñ€ÑƒÐ¿Ñ– [%A]"
+
+#: elf.c:1373
+#, c-format
+msgid "%B: Invalid sh_link field (%d) in section number %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð¿Ð¾Ð»Ðµ sh_link (%d) Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð· Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ %d"
+
+#: elf.c:1389
+#, c-format
+msgid "%B: Failed to find link section for section %d"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð·Ð²â€™Ñ�Ð·ÐºÑ–Ð² Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d"
 
-#: elf.c:1061
-msgid "%B: unable to initialize decommpress status for section %s"
-msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñ�Ñ‚Ð°Ð½ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s"
+#: elf.c:1416
+#, c-format
+msgid "%B: Failed to find info section for section %d"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d"
 
-#: elf.c:1181
+#: elf.c:1588
 #, c-format
 msgid ""
 "\n"
@@ -786,7 +1105,7 @@ msgstr ""
 "\n"
 "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸:\n"
 
-#: elf.c:1223
+#: elf.c:1630
 #, c-format
 msgid ""
 "\n"
@@ -795,7 +1114,7 @@ msgstr ""
 "\n"
 "Ð”Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð»:\n"
 
-#: elf.c:1359
+#: elf.c:1771
 #, c-format
 msgid ""
 "\n"
@@ -804,7 +1123,7 @@ msgstr ""
 "\n"
 "Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð²ÐµÑ€Ñ�Ñ–Ð¹:\n"
 
-#: elf.c:1384
+#: elf.c:1796
 #, c-format
 msgid ""
 "\n"
@@ -813,583 +1132,951 @@ msgstr ""
 "\n"
 "ÐŸÐ¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ð²ÐµÑ€Ñ�Ñ–Ñ—:\n"
 
-#: elf.c:1389
+#: elf.c:1801
 #, c-format
 msgid "  required from %s:\n"
 msgstr "  Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ñ– %s:\n"
 
-#: elf.c:1796
-msgid "%B: invalid link %lu for reloc section %s (index %u)"
-msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� %lu Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s (Ñ–Ð½Ð´ÐµÐºÑ� %u)"
+#: elf.c:1999
+msgid "%B: warning: loop in section dependencies detected"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð·Ð°Ñ†Ð¸ÐºÐ»ÐµÐ½Ñ–Ñ�Ñ‚ÑŒ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾Ñ�Ñ‚ÐµÐ¹ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ"
 
-#: elf.c:1966
-msgid "%B: don't know how to handle allocated, application specific section `%s' [0x%8x]"
-msgstr "%B: Ñ�Ð¿Ð¾Ñ�Ñ–Ð± Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð¾Ð³Ð¾ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹, Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¸Ð¹ Ð´Ð»Ñ� Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%sÂ» [0x%8x]"
-
-#: elf.c:1978
-msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]"
-msgstr "%B: Ñ�Ð¿Ð¾Ñ�Ñ–Ð± Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ð´Ð»Ñ� Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ `%s' [0x%8x] Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹"
-
-#: elf.c:1989
-msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]"
-msgstr "%B: Ñ�Ð¿Ð¾Ñ�Ñ–Ð± Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ð´Ð»Ñ� ÐžÐ¡ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ» [0x%8x] Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹"
+#: elf.c:2107
+#, c-format
+msgid "%B: warning: multiple symbol tables detected - ignoring the table in section %u"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² â€” Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ð¼Ð¾ Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŽ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %u"
 
-#: elf.c:1999
-msgid "%B: don't know how to handle section `%s' [0x%8x]"
-msgstr "%B: Ñ�Ð¿Ð¾Ñ�Ñ–Ð± Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ» [0x%8x] Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹"
+#: elf.c:2191
+#, c-format
+msgid "%B: warning: multiple dynamic symbol tables detected - ignoring the table in section %u"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŒ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² â€” Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ð¼Ð¾ Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŽ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %u"
+
+#: elf.c:2304
+#, c-format
+msgid "%B: invalid link %u for reloc section %s (index %u)"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� %u Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s (Ñ–Ð½Ð´ÐµÐºÑ� %u)"
+
+#: elf.c:2463 elf.c:2478 elf.c:2489 elf.c:2502
+#, c-format
+msgid "%B: unknown type [%#x] section `%s'"
+msgstr "%B: Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾Ð³Ð¾ Ñ‚Ð¸Ð¿Ñƒ [%#x], Â«%sÂ»"
 
-#: elf.c:2634
+#: elf.c:3206
+#, c-format
+msgid "%B: error: Alignment power %d of section `%A' is too big"
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñ�Ñ‚ÐµÐ¿Ñ–Ð½ÑŒ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� %d Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¾ÑŽ"
+
+#: elf.c:3236
 #, c-format
 msgid "warning: section `%A' type changed to PROGBITS"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ‚Ð¸Ð¿ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð½Ð° PROGBITS"
 
-#: elf.c:3078
+#: elf.c:3687
+#, c-format
+msgid "%B: too many sections: %u"
+msgstr "%B: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² %u"
+
+#: elf.c:3772
+#, c-format
 msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'"
 msgstr "%B: sh_link Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð²Ñ–Ð´ÐºÐ¸Ð½ÑƒÑ‚Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» Â«%BÂ»"
 
-#: elf.c:3101
+#: elf.c:3797
+#, c-format
 msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'"
 msgstr "%B: sh_link Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» Â«%BÂ»"
 
-#: elf.c:4527
+#: elf.c:4349
+#, c-format
+msgid "%B: GNU_MBIN section `%A' has invalid sh_info field: %d"
+msgstr "%B: Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– GNU_MBIN Â«%AÂ» Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒÑ�Ñ� Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð¿Ð¾Ð»Ðµ sh_info: %d"
+
+#: elf.c:4891
+msgid "%B: TLS sections are not adjacent:"
+msgstr "%B: Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸ TLS Ð½Ðµ Ñ” Ñ�ÑƒÑ�Ñ–Ð´Ð½Ñ–Ð¼Ð¸:"
+
+#: elf.c:4898
+#, c-format
+msgid "\t    TLS: %A"
+msgstr "\t    TLS: %A"
+
+#: elf.c:4902
+#, c-format
+msgid "\tnon-TLS: %A"
+msgstr "\tÐ½Ðµ-TLS: %A"
+
+#: elf.c:5398
 msgid "%B: The first section in the PT_DYNAMIC segment is not the .dynamic section"
 msgstr "%B: Ð¿ÐµÑ€ÑˆÐ¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ñƒ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ñ– PT_DYNAMIC Ð½Ðµ Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¾Ð¼ .dynamic"
 
-#: elf.c:4554
+#: elf.c:5426
 msgid "%B: Not enough room for program headers, try linking with -N"
 msgstr "%B: Ð½ÐµÐ´Ð¾Ñ�Ñ‚Ð°Ñ‚Ð½ÑŒÐ¾ Ð¼Ñ–Ñ�Ñ†Ñ� Ð´Ð»Ñ� Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑ–Ð² Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸, Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· -N"
 
-#: elf.c:4641
-msgid "%B: section %A lma %#lx adjusted to %#lx"
-msgstr "%B: lma %#lx Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A Ñ�ÐºÐ¾Ñ€Ð¸Ð³Ð¾Ð²Ð°Ð½Ð¾ Ð´Ð¾ %#lx"
+#: elf.c:5514
+#, c-format
+msgid "%B: section %A lma %#Lx adjusted to %#Lx"
+msgstr "%B: lma %#Lx Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A Ñ�ÐºÐ¾Ñ€Ð¸Ð³Ð¾Ð²Ð°Ð½Ð¾ Ð´Ð¾ %#Lx"
 
-#: elf.c:4776
+#: elf.c:5651
+#, c-format
 msgid "%B: section `%A' can't be allocated in segment %d"
 msgstr "%B: Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚Ð¸ Ñ€Ð¾Ð·Ð¿Ð¾Ð´Ñ–Ð»ÐµÐ½Ð¾ Ñƒ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ñ– %d"
 
-#: elf.c:4824
+#: elf.c:5699
+#, c-format
 msgid "%B: warning: allocated section `%s' not in segment"
 msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¿Ð¾Ð´Ñ–Ð»ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%sÂ» Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°"
 
-#: elf.c:5324
+#: elf.c:5897
+msgid "%B: error: non-load segment %d includes file header and/or program header"
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚ %d Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ” Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ„Ð°Ð¹Ð»Ð° Ñ–/Ð°Ð±Ð¾ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸"
+
+#. The fix for this error is usually to edit the linker script being
+#. used and set up the program headers manually.  Either that or
+#. leave room for the headers at the start of the SECTIONS.
+#: elf.c:6074
+msgid "%B: error: PHDR segment not covered by LOAD segment"
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚ PHDR Ð½Ðµ Ð¿Ð¾ÐºÑ€Ð¸Ð²Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð¾Ð¼ LOAD"
+
+#: elf.c:6418
+#, c-format
 msgid "%B: symbol `%s' required but not present"
 msgstr "%B: Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±ÐµÐ½ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ», Ð°Ð»Ðµ Ð¹Ð¾Ð³Ð¾ Ð½ÐµÐ¼Ð°Ñ”"
 
-#: elf.c:5662
-msgid "%B: warning: Empty loadable segment detected, is this intentional ?\n"
-msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ–Ð¹ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚, Ñ‚Ð°Ðº Ñ– Ñ‚Ñ€ÐµÐ±Ð°?\n"
+#: elf.c:6761
+#, c-format
+msgid "%B: warning: Empty loadable segment detected at vaddr=%#Lx, is this intentional?"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ–Ð¹ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚ Ð·Ð° vaddr=%#Lx, Ñ‚Ð°Ðº Ñ– Ñ‚Ñ€ÐµÐ±Ð°?"
+
+#: elf.c:7375
+#, c-format
+msgid "%B: warning: segment alignment of %#Lx is too large"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð° %#Lx Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼"
 
-#: elf.c:6692
+#: elf.c:7856
 #, c-format
 msgid "Unable to find equivalent output section for symbol '%s' from section '%s'"
 msgstr "Ð�Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ñ–Ð²Ð½Ð¾Ñ†Ñ–Ð½Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ»"
 
-#: elf.c:7692
+#: elf.c:8188
+msgid "%B: .gnu.version_r invalid entry"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� .gnu.version_r"
+
+#: elf.c:8315
+msgid "%B: .gnu.version_d invalid entry"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� .gnu.version_d"
+
+#: elf.c:8867
+#, c-format
 msgid "%B: unsupported relocation type %s"
 msgstr "%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s"
 
-#: elf32-arm.c:3617
-msgid ""
-"%B(%s): warning: interworking not enabled.\n"
-"  first occurrence: %B: Thumb call to ARM"
-msgstr ""
-"%B(%s): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ð½Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾.\n"
-"  Ð¿ÐµÑ€ÑˆÐ° Ð·Ð³Ð°Ð´ÐºÐ°: %B: Ð²Ð¸ÐºÐ»Ð¸Ðº thumb Ð´Ð¾ ARM"
+#: elf32-arc.c:433 elf32-frv.c:6626 elf32-iq2000.c:870 elf32-m32c.c:915
+#: elf32-mt.c:564 elf32-rl78.c:1256 elf32-rx.c:3177 elf32-visium.c:837
+#: elf64-ppc.c:6078
+#, c-format
+msgid "private flags = 0x%lx:"
+msgstr "Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = 0x%lx:"
 
-#: elf32-arm.c:3664
-msgid ""
-"%B(%s): warning: interworking not enabled.\n"
-"  first occurrence: %B: ARM call to Thumb"
-msgstr ""
-"%B(%s): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ð½Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾.\n"
-"  Ð¿ÐµÑ€ÑˆÐ° Ð·Ð³Ð°Ð´ÐºÐ°: %B: Ð²Ð¸ÐºÐ»Ð¸Ðº ARM Ð´Ð¾ Thumb"
+#: elf32-arc.c:611
+msgid "Warning: %B: Conflicting platform configuration %s with %s.\n"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼, %s Ð· %s.\n"
 
-#: elf32-arm.c:3878 elf32-arm.c:5315
-#, c-format
-msgid "%s: cannot create stub entry %s"
-msgstr "%s: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� %s"
+#: elf32-arc.c:630
+msgid "error: %B: unable to merge CPU base attributes %s with %s.\n"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ Ð±Ð°Ð·Ð¾Ð²Ñ– Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€Ð° %s Ð· %s.\n"
 
-#: elf32-arm.c:5431
-#, c-format
-msgid "unable to find THUMB glue '%s' for '%s'"
-msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ»ÐµÐ¹ÐºÑƒ THUMB Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ»"
+#: elf32-arc.c:667
+msgid "error: %B: unable to merge ISA extension attributes %s.\n"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ� ISA %s.\n"
 
-#: elf32-arm.c:5467
-#, c-format
-msgid "unable to find ARM glue '%s' for '%s'"
-msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ»ÐµÐ¹ÐºÑƒ ARM Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ»"
+#: elf32-arc.c:691
+msgid "error: %B: conflicting ISA extension attributes %s with %s.\n"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ� ISA, %s Ð· %s.\n"
 
-#: elf32-arm.c:6005
-msgid "%B: BE8 images only valid in big-endian mode."
-msgstr "%B: Ð¾Ð±Ñ€Ð°Ð·Ð¸ BE8 Ñ” Ñ‡Ð¸Ð½Ð½Ð¸Ð¼Ð¸ Ð»Ð¸ÑˆÐµ Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– big-endian."
+#: elf32-arc.c:726
+msgid "error: %B: cannot mix rf16 with full register set %B.\n"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ�Ð½Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ rf16 Ñ– Ð¿Ð¾Ð²Ð½Ð¸Ð¹ Ð½Ð°Ð±Ñ–Ñ€ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² %B.\n"
 
-#. Give a warning, but do as the user requests anyway.
-#: elf32-arm.c:6235
-msgid "%B: warning: selected VFP11 erratum workaround is not necessary for target architecture"
-msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ð¹ Ñ�Ð¿Ð¾Ñ�Ñ–Ð± ÑƒÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ VFP11 Ð½Ðµ Ñ” Ð½ÐµÐ¾Ð±Ñ…Ñ–Ð´Ð½Ð¸Ð¼ Ð´Ð»Ñ� Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�"
+#: elf32-arc.c:752
+msgid "error: %B: conflicting attributes %s: %s with %s.\n"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² %s: %s Ð· %s.\n"
 
-#: elf32-arm.c:6779 elf32-arm.c:6799
-msgid "%B: unable to find VFP11 veneer `%s'"
-msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÑƒ VFP11 Â«%sÂ»"
+#: elf32-arc.c:777
+msgid "error: %B: conflicting attributes %s.\n"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² %s.\n"
 
-#: elf32-arm.c:6848
+#: elf32-arc.c:877
 #, c-format
-msgid "Invalid TARGET2 relocation type '%s'."
-msgstr "Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ TARGET2, Â«%sÂ»."
+msgid "ERROR: Attempting to link %B with a binary %B of different architecture"
+msgstr "ÐŸÐžÐœÐ˜Ð›ÐšÐ�: Ñ�Ð¿Ñ€Ð¾Ð±Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� %B Ð·Ñ– Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¼ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ %B Ñ–Ð½ÑˆÐ¾Ñ— Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸"
+
+#: elf32-arc.c:891 elf32-i370.c:359 elf32-iq2000.c:846 elf32-m32c.c:890
+#: elf32-m68hc1x.c:1388 elf64-sparc.c:727 elfxx-mips.c:15127
+#, c-format
+msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
+msgstr "%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½ÑˆÑ– Ð¿Ð¾Ð»Ñ� e_flags (0x%lx) Ð½Ñ–Ð¶ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… (0x%lx)"
 
-#: elf32-arm.c:6933
+#: elf32-arc.c:980
+msgid "Error: The ARC4 architecture is no longer supported.\n"
+msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÑƒ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ ARC4 Ð¿Ñ€Ð¸Ð¿Ð¸Ð½ÐµÐ½Ð¾.\n"
+
+#: elf32-arc.c:986
 msgid ""
-"%B(%s): warning: interworking not enabled.\n"
-"  first occurrence: %B: thumb call to arm"
+"Warning: unset or old architecture flags. \n"
+"\t       Use default machine.\n"
 msgstr ""
-"%B(%s): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ð½Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾.\n"
-"  Ð¿ÐµÑ€ÑˆÐ° Ð·Ð³Ð°Ð´ÐºÐ°: %B: Ð²Ð¸ÐºÐ»Ð¸Ðº thumb Ð´Ð¾ arm"
+"ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ Ð°Ð±Ð¾ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ Ð·Ð°Ñ�Ñ‚Ð°Ñ€Ñ–Ð»Ñ–. \n"
+"\t       Ð’Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ð¼Ð¾ Ñ‚Ð¸Ð¿Ð¾Ð²Ñƒ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ñƒ.\n"
 
-#: elf32-arm.c:7717
-msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' in TLS trampoline"
-msgstr "%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Thumb, Â«0x%xÂ», Ñƒ Ñ‚Ñ€Ð°Ð¼Ð¿Ð»Ñ–Ð½Ñ– TLS"
+#: elf32-arc.c:1119
+#, c-format
+msgid "%B(%A+0x%lx): CMEM relocation to `%s' is invalid, 16 MSB should be 0x%04x (value is 0x%lx)"
+msgstr "%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CMEM Ð´Ð¾ Â«%sÂ» Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¼, 16 MSB Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ 0x%04x (Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� 0x%lx)"
 
-#: elf32-arm.c:7756
-msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' in TLS trampoline"
-msgstr "%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ARM, Â«0x%xÂ», Ñƒ Ñ‚Ñ€Ð°Ð¼Ð¿Ð»Ñ–Ð½Ñ– TLS"
+#: elf32-arc.c:1130
+#, c-format
+msgid "%B(%A+0x%lx): CMEM relocation to `%s+0x%lx' is invalid, 16 MSB should be 0x%04x (value is 0x%lx)"
+msgstr "%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CMEM Ð´Ð¾ Â«%s+0x%lxÂ» Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¼, 16 MSB Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ 0x%04x (Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� 0x%lx)"
 
-#: elf32-arm.c:8209
-msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'."
-msgstr "\\%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Arm BLX Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–ÑŽ Arm Â«%sÂ»."
+#: elf32-arc.c:1835
+msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker."
+msgstr "ÐŸÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� GOT Ñ– PLT Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚Ð¸ Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¾, Ñ�ÐºÑ‰Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº Ñ” Ð½ÐµÐ´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¼."
 
-#: elf32-arm.c:8622
-msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'."
-msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Thumb BLX Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–ÑŽ Arm Â«%sÂ»."
+#: elf32-arc.c:1859 elf32-rl78.c:1094 elf32-rx.c:1448
+#, c-format
+msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area"
+msgstr "%B(%A): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ Ð¼Ð°Ð»Ñ–Ð¹ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð´Ð°Ð½Ð¸Ñ…"
 
-#: elf32-arm.c:9460
-msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC"
+#: elf32-arc.c:1864 elf32-rl78.c:1099 elf32-rx.c:1453
+#, c-format
+msgid "%B(%A): internal error: out of range error"
+msgstr "%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ"
+
+#: elf32-arc.c:1869 elf32-rl78.c:1104 elf32-rx.c:1458
+#, c-format
+msgid "%B(%A): internal error: unsupported relocation error"
+msgstr "%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
+
+#: elf32-arc.c:1874 elf32-rl78.c:1109 elf32-rx.c:1463
+#, c-format
+msgid "%B(%A): internal error: dangerous relocation"
+msgstr "%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
+
+#: elf32-arc.c:1879 elf32-rl78.c:1114 elf32-rx.c:1468
+#, c-format
+msgid "%B(%A): internal error: unknown error"
+msgstr "%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
+
+#: elf32-arc.c:1967 elf32-arm.c:14714 elf32-metag.c:2272 elfxx-mips.c:8883
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:7224
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:484
+#, c-format
+msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�; Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -fPIC"
+
+#: elf32-arc.c:2859
+msgid "%B: Unknown mandatory ARC object attribute %d."
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¾Ð±Ð¾Ð²â€™Ñ�Ð·ÐºÐ¾Ð²Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° ARC %d"
+
+#: elf32-arc.c:2867
+msgid "Warning: %B: Unknown ARC object attribute %d."
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° ARC %d"
+
+#: elf32-arm.c:4022 elf32-arm.c:4056 elf32-arm.c:4075 elf32-arm.c:4127
+msgid "%B(%A): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction."
+msgstr "%B(%A): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð´Ð¾Ð²Ð³Ð¸Ñ… Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ñ… Ð³Ñ–Ð»Ð¾Ðº Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð°Ñ… Ñ–Ð· Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¾Ð¼ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ SHF_ARM_PURECODE Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ†Ñ–Ð»ÐµÐ¹ Ð· Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÐµÐ¼ M, Ñƒ Ñ�ÐºÐ¸Ñ… Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ movw."
+
+#: elf32-arm.c:4087 elf32-arm.c:8806
+msgid ""
+"%B(%s): warning: interworking not enabled.\n"
+"  first occurrence: %B: Thumb call to ARM"
+msgstr ""
+"%B(%s): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ð½Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾.\n"
+"  Ð¿ÐµÑ€ÑˆÐ° Ð·Ð³Ð°Ð´ÐºÐ°: %B: Ð²Ð¸ÐºÐ»Ð¸Ðº thumb Ð´Ð¾ ARM"
+
+#: elf32-arm.c:4141
+msgid ""
+"%B(%s): warning: interworking not enabled.\n"
+"  first occurrence: %B: ARM call to Thumb"
+msgstr ""
+"%B(%s): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ð½Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾.\n"
+"  Ð¿ÐµÑ€ÑˆÐ° Ð·Ð³Ð°Ð´ÐºÐ°: %B: Ð²Ð¸ÐºÐ»Ð¸Ðº ARM Ð´Ð¾ Thumb"
+
+#: elf32-arm.c:4415
+#, c-format
+msgid "No address assigned to the veneers output section %s"
+msgstr "Ð†Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¾Ð¼ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð½Ð°Ð·Ð¾Ð²Ð½Ñ– %s Ð½Ðµ Ð¿Ð¾Ð²â€™Ñ�Ð·Ð°Ð½Ð¾ Ð°Ð´Ñ€ÐµÑ�Ð¸"
+
+#: elf32-arm.c:4490 elf32-arm.c:6627 elf32-hppa.c:587 elf32-m68hc1x.c:165
+#: elf32-metag.c:1198 elf32-nios2.c:2227
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:2852
+#, c-format
+msgid "%B: cannot create stub entry %s"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� %s"
+
+#: elf32-arm.c:5675
+msgid "%B: Special symbol `%s' only allowed for ARMv8-M architecture or later."
+msgstr "%B: Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ ARMv8-M Ñ– Ð½Ð¾Ð²Ñ–ÑˆÐ¸Ñ… Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€."
+
+#: elf32-arm.c:5684
+msgid "%B: invalid special symbol `%s'."
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ»."
+
+#: elf32-arm.c:5686 elf32-arm.c:5726
+msgid "It must be a global or weak function symbol."
+msgstr "Ð¦Ðµ Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¹ (global) Ð°Ð±Ð¾ Ñ�Ð»Ð°Ð±ÐºÐ¸Ð¹ (weak) Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ—."
+
+#: elf32-arm.c:5724
+msgid "%B: invalid standard symbol `%s'."
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ�Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ»."
+
+#: elf32-arm.c:5730
+msgid "%B: absent standard symbol `%s'."
+msgstr "%B: Ð½ÐµÐ¼Ð°Ñ” Ñ�Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»."
+
+#: elf32-arm.c:5742
+msgid "%B: `%s' and its special symbol are in different sections."
+msgstr "%B: Â«%sÂ» Ñ– Ñ—Ñ— Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°ÑŽÑ‚ÑŒ Ñƒ Ñ€Ñ–Ð·Ð½Ð¸Ñ… Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð°Ñ…."
+
+#: elf32-arm.c:5754
+msgid "%B: entry function `%s' not output."
+msgstr "%B: Ð²Ñ…Ñ–Ð´Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ� Â«%sÂ» Ð½Ðµ Ð²Ð¸Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ Ð´Ð°Ð½Ð¸Ñ…."
+
+#: elf32-arm.c:5761
+msgid "%B: entry function `%s' is empty."
+msgstr "%B: Ð²Ñ…Ñ–Ð´Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ� Â«%sÂ» Ñ” Ð¿Ð¾Ñ€Ð¾Ð¶Ð½ÑŒÐ¾ÑŽ."
+
+#: elf32-arm.c:5890
+msgid "%B: --in-implib only supported for Secure Gateway import libraries."
+msgstr "%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÑƒ --in-implib Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐº Secure Gateway."
+
+#: elf32-arm.c:5936
+msgid "%B: invalid import library entry: `%s'."
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð²Ñ…Ñ–Ð´ Ð´Ð¾ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¾Ñ— Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸: Â«%sÂ»."
+
+#: elf32-arm.c:5938
+msgid "Symbol should be absolute, global and refer to Thumb functions."
+msgstr "Ð¡Ð¸Ð¼Ð²Ð¾Ð» Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¸Ð¼, Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¼ Ñ– Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ‚Ð¸Ñ�Ñ� Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Thumb."
+
+#: elf32-arm.c:5958
+#, c-format
+msgid "Entry function `%s' disappeared from secure code."
+msgstr "Ð’Ñ…Ñ–Ð´Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ� Â«%sÂ» Ð·Ð½Ð¸ÐºÐ»Ð° Ð· Ð±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ."
+
+#: elf32-arm.c:5982
+#, c-format
+msgid "`%s' refers to a non entry function."
+msgstr "Â«%sÂ» Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–ÑŽ Ð±ÐµÐ· Ð²Ñ…Ð¾Ð´Ñƒ."
+
+#: elf32-arm.c:5997
+msgid "%B: visibility of symbol `%s' has changed."
+msgstr "%B: Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð²Ð¸Ð´Ð¸Ð¼Ñ–Ñ�Ñ‚ÑŒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»."
+
+#: elf32-arm.c:6006
+msgid "%B: incorrect size for symbol `%s'."
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»."
+
+#: elf32-arm.c:6025
+#, c-format
+msgid "Offset of veneer for entry function `%s' not a multiple of its size."
+msgstr "Ð—Ñ�ÑƒÐ² Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÐ¸ Ð´Ð»Ñ� Ð²Ñ…Ñ–Ð´Ð½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%sÂ» Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ Ñ—Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ."
+
+#: elf32-arm.c:6045
+msgid "new entry function(s) introduced but no output import library specified:"
+msgstr "Ð²Ð¿Ñ€Ð¾Ð²Ð°Ð´Ð¶ÐµÐ½Ð¾ Ð½Ð¾Ð²Ñ– Ð²Ñ…Ñ–Ð´Ð½Ñ– Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ—, Ð°Ð»Ðµ Ð½Ðµ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ…:"
+
+#: elf32-arm.c:6053
+#, c-format
+msgid "Start address of `%s' is different from previous link."
+msgstr "ÐŸÐ¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Â«%sÂ» Ñ” Ñ–Ð½ÑˆÐ¾ÑŽ Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ�."
+
+#: elf32-arm.c:6760
+#, c-format
+msgid "unable to find THUMB glue '%s' for '%s'"
+msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ»ÐµÐ¹ÐºÑƒ THUMB Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ»"
+
+#: elf32-arm.c:6796
+#, c-format
+msgid "unable to find ARM glue '%s' for '%s'"
+msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�ÐºÐ»ÐµÐ¹ÐºÑƒ ARM Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ»"
+
+#: elf32-arm.c:7511
+msgid "%B: BE8 images only valid in big-endian mode."
+msgstr "%B: Ð¾Ð±Ñ€Ð°Ð·Ð¸ BE8 Ñ” Ñ‡Ð¸Ð½Ð½Ð¸Ð¼Ð¸ Ð»Ð¸ÑˆÐµ Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– big-endian."
+
+#. Give a warning, but do as the user requests anyway.
+#: elf32-arm.c:7742
+msgid "%B: warning: selected VFP11 erratum workaround is not necessary for target architecture"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ð¹ Ñ�Ð¿Ð¾Ñ�Ñ–Ð± ÑƒÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ VFP11 Ð½Ðµ Ñ” Ð½ÐµÐ¾Ð±Ñ…Ñ–Ð´Ð½Ð¸Ð¼ Ð´Ð»Ñ� Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�"
+
+#: elf32-arm.c:7769
+msgid "%B: warning: selected STM32L4XX erratum workaround is not necessary for target architecture"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ð¹ Ñ�Ð¿Ð¾Ñ�Ñ–Ð± ÑƒÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ STM32L4XX Ð½Ðµ Ñ” Ð½ÐµÐ¾Ð±Ñ…Ñ–Ð´Ð½Ð¸Ð¼ Ð´Ð»Ñ� Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�"
+
+#: elf32-arm.c:8306 elf32-arm.c:8326
+msgid "%B: unable to find VFP11 veneer `%s'"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÑƒ VFP11 Â«%sÂ»"
+
+#: elf32-arm.c:8392 elf32-arm.c:8411
+msgid "%B: unable to find STM32L4XX veneer `%s'"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÑƒ STM32L4XX Â«%sÂ»"
+
+#: elf32-arm.c:8618
+#, c-format
+msgid ""
+"%B(%A+0x%lx): error: multiple load detected in non-last IT block instruction : STM32L4XX veneer cannot be generated.\n"
+"Use gcc option -mrestrict-it to generate only one instruction per IT block.\n"
+msgstr ""
+"%B(%A+0x%lx): Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½ÑŒ Ñƒ Ð½ÐµÐ¾Ñ�Ñ‚Ð°Ð½Ð½Ñ–Ð¹ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— Ð±Ð»Ð¾ÐºÑƒ IT: Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÑƒ STM32L4XX Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð±ÑƒÑ‚Ð¸ Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð¾.\n"
+"Ð¡ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð¹Ñ‚ÐµÑ�Ñ� Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ gcc -mrestrict-it, Ñ‰Ð¾Ð± Ñ�Ñ‚Ð²Ð¾Ñ€ÑŽÐ²Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ Ð¾Ð´Ð½Ñƒ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ Ð½Ð° Ð±Ð»Ð¾Ðº IT.\n"
+
+#: elf32-arm.c:8716
+#, c-format
+msgid "Invalid TARGET2 relocation type '%s'."
+msgstr "Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ TARGET2, Â«%sÂ»."
+
+#. FIXME: We ought to be able to generate thumb-1 PLT
+#. instructions...
+#: elf32-arm.c:9458
+msgid "%B: Warning: thumb-1 mode PLT generation not currently supported"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ñ–Ð¹ Ð²ÐµÑ€Ñ�Ñ–Ñ— Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� PLT Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– thumb-1"
+
+#: elf32-arm.c:9723
+#, c-format
+msgid "%B(%A+0x%lx): unexpected Thumb instruction '0x%x' in TLS trampoline"
+msgstr "%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Thumb, Â«0x%xÂ», Ñƒ Ñ‚Ñ€Ð°Ð¼Ð¿Ð»Ñ–Ð½Ñ– TLS"
+
+#: elf32-arm.c:9763
+#, c-format
+msgid "%B(%A+0x%lx): unexpected ARM instruction '0x%x' in TLS trampoline"
+msgstr "%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ARM, Â«0x%xÂ», Ñƒ Ñ‚Ñ€Ð°Ð¼Ð¿Ð»Ñ–Ð½Ñ– TLS"
+
+#: elf32-arm.c:10097
+msgid "shared object"
+msgstr "Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¸Ð¹ Ð¾Ð±'Ñ”ÐºÑ‚"
+
+#: elf32-arm.c:10100
+msgid "PIE executable"
+msgstr "Ð’Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» PIE"
+
+#: elf32-arm.c:10103
+msgid "%B: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ Ð°Ð±Ð¾ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� %s; Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -fPIC"
+
+#: elf32-arm.c:10234
+msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'."
+msgstr "\\%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Arm BLX Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–ÑŽ Arm Â«%sÂ»."
+
+#: elf32-arm.c:10660
+msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'."
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Thumb BLX Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–ÑŽ Arm Â«%sÂ»."
+
+#: elf32-arm.c:11527
+#, c-format
+msgid "%B(%A+0x%lx): unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC"
 msgstr "%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Thumb, Â«0x%xÂ», Ð½Ð° Ñ�ÐºÑƒ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� TLS_GOTDESC"
 
-#: elf32-arm.c:9483
-msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC"
+#: elf32-arm.c:11551
+#, c-format
+msgid "%B(%A+0x%lx): unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC"
 msgstr "%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ARM, Â«0x%xÂ», Ð½Ð° Ñ�ÐºÑƒ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� TLS_GOTDESC"
 
-#: elf32-arm.c:9512
+#: elf32-arm.c:11581
+#, c-format
 msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object"
 msgstr "%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_ARM_TLS_LE32 Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾"
 
-#: elf32-arm.c:9727
+#: elf32-arm.c:11795
+#, c-format
 msgid "%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations"
 msgstr "%B(%A+0x%lx): Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ð³Ñ€ÑƒÐ¿ ALU Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ ADD Ð°Ð±Ð¾ SUB"
 
-#: elf32-arm.c:9767 elf32-arm.c:9854 elf32-arm.c:9937 elf32-arm.c:10022
+#: elf32-arm.c:11836 elf32-arm.c:11927 elf32-arm.c:12013 elf32-arm.c:12101
+#, c-format
 msgid "%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"
 msgstr "%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ð¿Ñ€Ð¾Ð±Ð¸ Ð¿Ð¾Ð´Ñ–Ð»Ñƒ 0x%lx Ð· Ð¼ÐµÑ‚Ð¾ÑŽ Ð³Ñ€ÑƒÐ¿Ð¾Ð²Ð¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s"
 
-#: elf32-arm.c:10261 elf32-sh.c:4103 elf64-sh64.c:1544
+#: elf32-arm.c:12365 elf32-sh.c:4009 elf64-sh64.c:1539
+#, c-format
 msgid "%B(%A+0x%lx): %s relocation against SEC_MERGE section"
 msgstr "%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ SEC_MERGE"
 
-#: elf32-arm.c:10372 elf32-m68k.c:4191 elf32-xtensa.c:2802
+#: elf32-arm.c:12477 elf32-m68k.c:4120 elf32-xtensa.c:2816
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6165
+#, c-format
 msgid "%B(%A+0x%lx): %s used with TLS symbol %s"
 msgstr "%B(%A+0x%lx): %s Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ TLS %s"
 
-#: elf32-arm.c:10373 elf32-m68k.c:4192 elf32-xtensa.c:2803
+#: elf32-arm.c:12479 elf32-m68k.c:4122 elf32-xtensa.c:2818
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6167
+#, c-format
 msgid "%B(%A+0x%lx): %s used with non-TLS symbol %s"
 msgstr "%B(%A+0x%lx): %s Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ Ð¿Ð¾Ð·Ð° TLS %s"
 
-#: elf32-arm.c:10453 elf32-tic6x.c:2753
+#: elf32-arm.c:12561 elf32-tic6x.c:2739
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6500
 msgid "out of range"
 msgstr "Ð¿Ð¾Ð·Ð° Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼"
 
-#: elf32-arm.c:10457 elf32-tic6x.c:2757
+#: elf32-arm.c:12565 elf32-nios2.c:4505 elf32-pru.c:821 elf32-tic6x.c:2743
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6504
 msgid "unsupported relocation"
 msgstr "Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
 
-#: elf32-arm.c:10465 elf32-tic6x.c:2765
+#: elf32-arm.c:12573 elf32-nios2.c:4515 elf32-pru.c:831 elf32-tic6x.c:2751
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6512
 msgid "unknown error"
 msgstr "Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
 
-#: elf32-arm.c:10890
-msgid "Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it"
-msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð·Ð½Ñ�Ñ‚Ð¾ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ñƒ %B, Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð· Ð½Ð¸Ð¼ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� ÐºÐ¾Ð´, Ñ�ÐºÐ¸Ð¹ Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ñ— Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸, Ñƒ %B"
-
-#: elf32-arm.c:10984
+#: elf32-arm.c:13153
 msgid "%B: Unknown mandatory EABI object attribute %d"
 msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¾Ð±Ð¾Ð²â€™Ñ�Ð·ÐºÐ¾Ð²Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° EABI %d"
 
-#: elf32-arm.c:10992
+#: elf32-arm.c:13161
 msgid "Warning: %B: Unknown EABI object attribute %d"
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° EABI %d"
 
-#: elf32-arm.c:11173
+#: elf32-arm.c:13428
 msgid "error: %B: Unknown CPU architecture"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€Ð°"
 
-#: elf32-arm.c:11211
+#: elf32-arm.c:13466 elf32-nios2.c:2965
+#, c-format
 msgid "error: %B: Conflicting CPU architectures %d/%d"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€ Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€Ñ–Ð² %d/%d"
 
-#: elf32-arm.c:11260
+#: elf32-arm.c:13563
 msgid "Error: %B has both the current and legacy Tag_MPextension_use attributes"
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ð»Ñ� %B Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð¾Ð±Ð¸Ð´Ð²Ð° Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Tag_MPextension_use, current Ñ– legacy"
 
-#: elf32-arm.c:11285
+#: elf32-arm.c:13592
 msgid "error: %B uses VFP register arguments, %B does not"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¸ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸ VFP, Ð° Ñƒ %B â€” Ð½Ñ–"
 
-#: elf32-arm.c:11430
+#: elf32-arm.c:13750
 msgid "error: %B: unable to merge virtualization attributes with %B"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð· %B Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ"
 
-#: elf32-arm.c:11456
+#: elf32-arm.c:13776
 msgid "error: %B: Conflicting architecture profiles %c/%c"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»Ñ–Ð² Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€, %c/%c"
 
-#: elf32-arm.c:11557
+#: elf32-arm.c:13915
 msgid "Warning: %B: Conflicting platform configuration"
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼"
 
-#: elf32-arm.c:11566
+#: elf32-arm.c:13924
 msgid "error: %B: Conflicting use of R9"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ñƒ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ– R9"
 
-#: elf32-arm.c:11578
+#: elf32-arm.c:13936
 msgid "error: %B: SB relative addressing conflicts with use of R9"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð°Ñ†Ñ–Ñ— SB ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ÑƒÑ” Ð· Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�Ð¼ R9"
 
-#: elf32-arm.c:11591
+#: elf32-arm.c:13949
 msgid "warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� %u-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¹ wchar_t, Ñ…Ð¾Ñ‡Ð° Ñƒ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ– Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� %u-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¹ wchar_t; Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ wchar_t Ð¼Ñ–Ð¶ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸ Ð¼Ð¾Ð¶Ðµ Ð·Ð°Ð·Ð½Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ð´Ð°Ñ‡Ñ–"
 
-#: elf32-arm.c:11622
+#: elf32-arm.c:13980
 msgid "warning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may fail"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÐ¸ %s, Ñ…Ð¾Ñ‡Ð° Ñƒ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ– Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÐ¸ %s; Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÑ–Ð² Ð¼Ñ–Ð¶ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸ Ð¼Ð¾Ð¶Ðµ Ð·Ð°Ð·Ð½Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ð´Ð°Ñ‡Ñ–"
 
-#: elf32-arm.c:11634
+#: elf32-arm.c:13992
 msgid "error: %B uses iWMMXt register arguments, %B does not"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¸-Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸ iWMMXt, Ð° Ñƒ %B â€” Ð½Ñ–"
 
-#: elf32-arm.c:11651
+#: elf32-arm.c:14009
 msgid "error: fp16 format mismatch between %B and %B"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñ€Ð¾Ð·Ð±Ñ–Ð¶Ð½Ð¾Ñ�Ñ‚Ñ– Ñƒ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ– Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� fp16 Ð¼Ñ–Ð¶ %B Ñ‚Ð° %B"
 
-#: elf32-arm.c:11675
-msgid "DIV usage mismatch between %B and %B"
-msgstr "Ñ€Ð¾Ð·Ð±Ñ–Ð¶Ð½Ð¾Ñ�Ñ‚Ñ– Ñƒ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ– DIV Ð¼Ñ–Ð¶ %B Ñ‚Ð° %B"
-
-#: elf32-arm.c:11694
+#: elf32-arm.c:14045
 msgid "%B has has both the current and legacy Tag_MPextension_use attributes"
 msgstr "Ð´Ð»Ñ� %B Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð¾Ð±Ð¸Ð´Ð²Ð° Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Tag_MPextension_use, current Ñ– legacy"
 
 #. Ignore init flag - it may not be set, despite the flags field
 #. containing valid data.
 #. Ignore init flag - it may not be set, despite the flags field containing valid data.
-#: elf32-arm.c:11782 elf32-bfin.c:5079 elf32-cris.c:4169 elf32-m68hc1x.c:1282
-#: elf32-m68k.c:1236 elf32-score.c:3994 elf32-score7.c:3800 elf32-vax.c:529
-#: elfxx-mips.c:14103
+#. Ignore init flag - it may not be set, despite the flags field
+#. containing valid data.
+#: elf32-arm.c:14132 elf32-bfin.c:4919 elf32-cris.c:4089 elf32-m68hc1x.c:1413
+#: elf32-m68k.c:1200 elf32-score.c:4002 elf32-score7.c:3807 elf32-vax.c:536
+#: elf32-xgate.c:669 elfxx-mips.c:15802
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6666
 #, c-format
 msgid "private flags = %lx:"
 msgstr "Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = %lx:"
 
-#: elf32-arm.c:11791
+#: elf32-arm.c:14141
 #, c-format
 msgid " [interworking enabled]"
 msgstr " [ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾ Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ]"
 
-#: elf32-arm.c:11799
+#: elf32-arm.c:14149
 #, c-format
 msgid " [VFP float format]"
 msgstr " [Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ float VFP]"
 
-#: elf32-arm.c:11801
+#: elf32-arm.c:14151
 #, c-format
 msgid " [Maverick float format]"
 msgstr " [Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ float Maverick]"
 
-#: elf32-arm.c:11803
+#: elf32-arm.c:14153
 #, c-format
 msgid " [FPA float format]"
 msgstr " [Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ float FPA]"
 
-#: elf32-arm.c:11812
+#: elf32-arm.c:14162
 #, c-format
 msgid " [new ABI]"
 msgstr " [Ð½Ð¾Ð²Ð¸Ð¹ ABI]"
 
-#: elf32-arm.c:11815
+#: elf32-arm.c:14165
 #, c-format
 msgid " [old ABI]"
 msgstr " [Ñ�Ñ‚Ð°Ñ€Ð¸Ð¹ ABI]"
 
-#: elf32-arm.c:11818
+#: elf32-arm.c:14168
 #, c-format
 msgid " [software FP]"
 msgstr " [Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð° FP]"
 
-#: elf32-arm.c:11827
+#: elf32-arm.c:14177
 #, c-format
 msgid " [Version1 EABI]"
 msgstr " [Ð’ÐµÑ€Ñ�Ñ–Ñ�1 EABI]"
 
-#: elf32-arm.c:11830 elf32-arm.c:11841
+#: elf32-arm.c:14180 elf32-arm.c:14191
 #, c-format
 msgid " [sorted symbol table]"
 msgstr " [Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²]"
 
-#: elf32-arm.c:11832 elf32-arm.c:11843
+#: elf32-arm.c:14182 elf32-arm.c:14193
 #, c-format
 msgid " [unsorted symbol table]"
 msgstr " [Ð½ÐµÐ²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²]"
 
-#: elf32-arm.c:11838
+#: elf32-arm.c:14188
 #, c-format
 msgid " [Version2 EABI]"
 msgstr " [Ð’ÐµÑ€Ñ�Ñ–Ñ�2 EABI]"
 
-#: elf32-arm.c:11846
+#: elf32-arm.c:14196
 #, c-format
 msgid " [dynamic symbols use segment index]"
 msgstr " [Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°]"
 
-#: elf32-arm.c:11849
+#: elf32-arm.c:14199
 #, c-format
 msgid " [mapping symbols precede others]"
 msgstr " [Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ� Ð¿ÐµÑ€ÐµÐ´ÑƒÑŽÑ‚ÑŒ Ñ–Ð½ÑˆÐ¸Ð¼]"
 
-#: elf32-arm.c:11856
+#: elf32-arm.c:14206
 #, c-format
 msgid " [Version3 EABI]"
 msgstr " [Ð’ÐµÑ€Ñ�Ñ–Ñ�3 EABI]"
 
-#: elf32-arm.c:11860
+#: elf32-arm.c:14210
 #, c-format
 msgid " [Version4 EABI]"
 msgstr " [Ð’ÐµÑ€Ñ�Ñ–Ñ�4 EABI]"
 
-#: elf32-arm.c:11864
+#: elf32-arm.c:14214
 #, c-format
 msgid " [Version5 EABI]"
 msgstr " [Ð’ÐµÑ€Ñ�Ñ–Ñ�5 EABI]"
 
-#: elf32-arm.c:11867
+#: elf32-arm.c:14217
+#, c-format
+msgid " [soft-float ABI]"
+msgstr " [ABI Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¾Ñ— Ñ€ÑƒÑ…Ð¾Ð¼Ð¾Ñ— ÐºÑ€Ð°Ð¿ÐºÐ¸]"
+
+#: elf32-arm.c:14220
+#, c-format
+msgid " [hard-float ABI]"
+msgstr " [ABI Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¾Ñ— Ñ€ÑƒÑ…Ð¾Ð¼Ð¾Ñ— ÐºÑ€Ð°Ð¿ÐºÐ¸]"
+
+#: elf32-arm.c:14226
 #, c-format
 msgid " [BE8]"
 msgstr " [BE8]"
 
-#: elf32-arm.c:11870
+#: elf32-arm.c:14229
 #, c-format
 msgid " [LE8]"
 msgstr " [LE8]"
 
-#: elf32-arm.c:11876
+#: elf32-arm.c:14235
 #, c-format
 msgid " <EABI version unrecognised>"
 msgstr " <Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð° Ð²ÐµÑ€Ñ�Ñ–Ñ� EABI>"
 
-#: elf32-arm.c:11883
+#: elf32-arm.c:14242
 #, c-format
 msgid " [relocatable executable]"
 msgstr " [Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð»]"
 
-#: elf32-arm.c:11886
-#, c-format
-msgid " [has entry point]"
-msgstr " [Ð¼Ð°Ñ” Ð²Ñ…Ñ–Ð´Ð½Ñƒ Ñ‚Ð¾Ñ‡ÐºÑƒ]"
-
-#: elf32-arm.c:11891
+#: elf32-arm.c:14247
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6669
 #, c-format
 msgid "<Unrecognised flag bits set>"
 msgstr "<Ð�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ð½Ð°Ð±Ñ–Ñ€ Ð±Ñ–Ñ‚Ñ–Ð² Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–Ð²>"
 
-#: elf32-arm.c:12189 elf32-i386.c:1461 elf32-s390.c:1000 elf32-tic6x.c:2829
-#: elf32-tilepro.c:1336 elf32-xtensa.c:1009 elf64-s390.c:960
-#: elf64-x86-64.c:1364 elfxx-sparc.c:1371 elfxx-tilegx.c:1586
+#: elf32-arm.c:14557 elf32-i386.c:2053 elf32-s390.c:956 elf32-tic6x.c:2814
+#: elf32-tilepro.c:1491 elf32-xtensa.c:1018 elf64-s390.c:875
+#: elf64-x86-64.c:2444 elfxx-sparc.c:1440 elfxx-tilegx.c:1708
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:7115
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:526
+#, c-format
 msgid "%B: bad symbol index: %d"
 msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ: %d"
 
-#: elf32-arm.c:12337 elf64-x86-64.c:1561 elf64-x86-64.c:1732 elfxx-mips.c:8223
-msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"
-msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�; Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -fPIC"
+#: elf32-arm.c:16055
+msgid "Errors encountered processing file %B"
+msgstr "ÐŸÑ–Ð´ Ñ‡Ð°Ñ� Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ„Ð°Ð¹Ð»Ð° Ñ�Ñ‚Ð°Ð»Ð¸Ñ�Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸, %B"
 
-#: elf32-arm.c:13460
+#: elf32-arm.c:16493 elflink.c:12297 elflink.c:12344
 #, c-format
-msgid "Errors encountered processing file %s"
-msgstr "ÐŸÑ–Ð´ Ñ‡Ð°Ñ� Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ„Ð°Ð¹Ð»Ð° Ñ�Ñ‚Ð°Ð»Ð¸Ñ�Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸, %s"
+msgid "could not find section %s"
+msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» %s"
 
-#: elf32-arm.c:14837
+#: elf32-arm.c:17669
 msgid "%B: error: Cortex-A8 erratum stub is allocated in unsafe location"
 msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð·Ð°Ð¼Ñ–Ð½Ð½Ð¸Ðº Ð´Ð»Ñ� Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Cortex-A8 Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÐ¾Ð²Ð°Ð½Ð¾ Ð·Ð° Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð¾ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ"
 
 #. There's not much we can do apart from complain if this
 #. happens.
-#: elf32-arm.c:14864
+#: elf32-arm.c:17696
 msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)"
 msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð·Ð°Ð¼Ñ–Ð½Ð½Ð¸Ðº Ð´Ð»Ñ� Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Cortex-A8 Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¿Ð¾Ð·Ð° Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ð½Ð¸Ð¼ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼ (Ñ„Ð°Ð¹Ð» Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼)"
 
-#: elf32-arm.c:14958 elf32-arm.c:14980
+#: elf32-arm.c:18523 elf32-arm.c:18545
 msgid "%B: error: VFP11 veneer out of range"
 msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÐ° VFP11 Ð¿Ð¾Ð·Ð° Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼"
 
-#: elf32-arm.c:15518
+#: elf32-arm.c:18596
+msgid "%B(%#x): error: Cannot create STM32L4XX veneer. Jump out of range by %ld bytes. Cannot encode branch instruction. "
+msgstr "%B(%#x): Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÑƒ STM32L4XX. ÐŸÐµÑ€ÐµÑ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð¿Ñ€Ð¸Ð¿ÑƒÑ�Ñ‚Ð¸Ð¼Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ Ð½Ð° %ld Ð±Ð°Ð¹Ñ‚Ñ–Ð². ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ. "
+
+#: elf32-arm.c:18634
+msgid "%B: error: Cannot create STM32L4XX veneer."
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÑƒ STM32L4XX."
+
+#: elf32-arm.c:19655
 msgid "error: %B is already in final BE8 format"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¶Ðµ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñƒ Ð¾Ñ�Ñ‚Ð°Ñ‚Ð¾Ñ‡Ð½Ð¾Ð¼Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– BE8"
 
-#: elf32-arm.c:15594
+#: elf32-arm.c:19731
 msgid "error: Source object %B has EABI version %d, but target %B has EABI version %d"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¾Ð±â€™Ñ”ÐºÑ‚-Ð´Ð¶ÐµÑ€ÐµÐ»Ð¾, %B, Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð²ÐµÑ€Ñ�Ñ–ÑŽ EABI %d, Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�, %B, Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð²ÐµÑ€Ñ�Ñ–ÑŽ EABI %d"
 
-#: elf32-arm.c:15610
+#: elf32-arm.c:19746
 msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� APCS-%d, Ñ‚Ð¾Ð´Ñ– Ñ�Ðº %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” APCS-%d"
 
-#: elf32-arm.c:15635
+#: elf32-arm.c:19770
 msgid "error: %B uses VFP instructions, whereas %B does not"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ VFP, Ð° Ñƒ %B â€” Ð½Ñ–"
 
-#: elf32-arm.c:15639
+#: elf32-arm.c:19774
 msgid "error: %B uses FPA instructions, whereas %B does not"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ FPA, Ð° Ñƒ %B â€” Ð½Ñ–"
 
-#: elf32-arm.c:15649
+#: elf32-arm.c:19784
 msgid "error: %B uses Maverick instructions, whereas %B does not"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Maverick, Ð° Ñƒ %B â€” Ð½Ñ–"
 
-#: elf32-arm.c:15653
+#: elf32-arm.c:19788
 msgid "error: %B does not use Maverick instructions, whereas %B does"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð½Ðµ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Maverick, Ð° Ñƒ %B â€” Ñ‚Ð°Ðº"
 
-#: elf32-arm.c:15672
+#: elf32-arm.c:19807
 msgid "error: %B uses software FP, whereas %B uses hardware FP"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ñ– FP, Ð° Ñƒ %B â€” Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ñ– FP"
 
-#: elf32-arm.c:15676
+#: elf32-arm.c:19811
 msgid "error: %B uses hardware FP, whereas %B uses software FP"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ñ– FP, Ð° Ñƒ %B â€” Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ñ– FP"
 
-#: elf32-avr.c:1229 elf32-bfin.c:3221 elf32-cris.c:2089 elf32-epiphany.c:567
-#: elf32-fr30.c:617 elf32-frv.c:4113 elf32-i860.c:1219 elf32-ip2k.c:1479
-#: elf32-iq2000.c:692 elf32-m32c.c:561 elf32-mep.c:543 elf32-moxie.c:290
-#: elf32-msp430.c:494 elf32-mt.c:399 elf32-openrisc.c:412 elf32-tilepro.c:3222
-#: elf32-v850.c:2151 elf32-xstormy16.c:943 elf64-mmix.c:1598
-#: elfxx-tilegx.c:3585
+#: elf32-avr.c:959
+#, c-format
+msgid "%B: invalid AVR reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� AVR: %d"
+
+#: elf32-avr.c:1510 elf32-bfin.c:3202 elf32-cris.c:2033 elf32-epiphany.c:574
+#: elf32-fr30.c:599 elf32-frv.c:4049 elf32-ft32.c:342 elf32-i860.c:1218
+#: elf32-ip2k.c:1486 elf32-iq2000.c:701 elf32-m32c.c:629 elf32-mep.c:532
+#: elf32-metag.c:2009 elf32-moxie.c:293 elf32-msp430.c:1365 elf32-mt.c:404
+#: elf32-or1k.c:1266 elf32-tilepro.c:3673 elf32-v850.c:2295 elf32-visium.c:685
+#: elf32-xstormy16.c:935 elf64-mmix.c:1548 elfxx-tilegx.c:4060
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2275
 msgid "internal error: dangerous relocation"
 msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
 
-#: elf32-avr.c:2415 elf32-hppa.c:598 elf32-m68hc1x.c:166
-msgid "%B: cannot create stub entry %s"
-msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� %s"
+#: elf32-avr.c:3319
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:2880
+#, c-format
+msgid "cannot create stub entry %s"
+msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� %s"
 
-#: elf32-bfin.c:107 elf32-bfin.c:363
+#: elf32-bfin.c:106 elf32-bfin.c:362
 msgid "relocation should be even number"
 msgstr "Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ Ð¿Ð°Ñ€Ð½Ð¸Ð¼ Ñ‡Ð¸Ñ�Ð»Ð¾Ð¼"
 
-#: elf32-bfin.c:1593
+#: elf32-bfin.c:1581
+#, c-format
 msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'"
 msgstr "B(%A+0x%lx): Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»"
 
-#: elf32-bfin.c:1626 elf32-i386.c:4307 elf32-m68k.c:4233 elf32-s390.c:3055
-#: elf64-s390.c:3030 elf64-x86-64.c:4151
+#: elf32-bfin.c:1612 elf32-i386.c:5412 elf32-m68k.c:4160 elf32-s390.c:3429
+#: elf64-s390.c:3353 elf64-x86-64.c:5793
+#, c-format
 msgid "%B(%A+0x%lx): reloc against `%s': error %d"
 msgstr "%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° %d"
 
-#: elf32-bfin.c:2725
+#: elf32-bfin.c:2706
+#, c-format
 msgid "%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Â«%A+0x%xÂ» Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼"
 
-#: elf32-bfin.c:2741
+#: elf32-bfin.c:2722
 msgid "relocation references symbol not defined in the module"
 msgstr "Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð», Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¼Ð¾Ð´ÑƒÐ»Ñ–"
 
-#: elf32-bfin.c:2838
+#: elf32-bfin.c:2819
 msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend"
 msgstr "R_BFIN_FUNCDESC Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼"
 
-#: elf32-bfin.c:2879 elf32-bfin.c:3002
+#: elf32-bfin.c:2860 elf32-bfin.c:2983
 msgid "cannot emit fixups in read-only section"
 msgstr "Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð°Ð´Ñ€ÐµÑ�Ð½Ñƒ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÑƒ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�"
 
-#: elf32-bfin.c:2910 elf32-bfin.c:3040 elf32-lm32.c:1103 elf32-sh.c:5016
+#: elf32-bfin.c:2891 elf32-bfin.c:3021 elf32-lm32.c:1064 elf32-sh.c:4930
 msgid "cannot emit dynamic relocations in read-only section"
 msgstr "Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�"
 
-#: elf32-bfin.c:2960
+#: elf32-bfin.c:2941
 msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend"
 msgstr "R_BFIN_FUNCDESC_VALUE Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼"
 
-#: elf32-bfin.c:3125
+#: elf32-bfin.c:3106
 msgid "relocations between different segments are not supported"
 msgstr "Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ñ–Ð¶ Ñ€Ñ–Ð·Ð½Ð¸Ð¼Ð¸ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°Ð¼Ð¸ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾"
 
-#: elf32-bfin.c:3126
+#: elf32-bfin.c:3107
 msgid "warning: relocation references a different segment"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ñ–Ð½ÑˆÐ¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚"
 
-#: elf32-bfin.c:4971
+#: elf32-bfin.c:4877
+#, c-format
 msgid "%B: unsupported relocation type %i"
 msgstr "%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %i"
 
-#: elf32-bfin.c:5125 elf32-frv.c:6808
+#: elf32-bfin.c:4966 elf32-frv.c:6599
+msgid "%B: cannot link non-fdpic object file into fdpic executable"
+msgstr "%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» Ð½Ðµ-fdpic Ð´Ð¾ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° fdpic"
+
+#: elf32-bfin.c:4970 elf32-frv.c:6603
+msgid "%B: cannot link fdpic object file into non-fdpic executable"
+msgstr "%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» fdpic Ð´Ð¾ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° Ð½Ðµ-fdpic"
+
+#: elf32-bfin.c:5120
 #, c-format
-msgid "%s: cannot link non-fdpic object file into fdpic executable"
-msgstr "%s: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» Ð½Ðµ-fdpic Ð´Ð¾ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° fdpic"
+msgid "*** check this relocation %s"
+msgstr "*** Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ñ‚Ðµ Ñ†Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: %s"
 
-#: elf32-bfin.c:5129 elf32-frv.c:6812
+#: elf32-bfin.c:5236
+msgid "the bfin target does not currently support the generation of copy relocations"
+msgstr "Ñƒ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ñ–Ð¹ Ð²ÐµÑ€Ñ�Ñ–Ñ— Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ� Ñ†Ñ–Ð»Ñ– bfin Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�"
+
+#: elf32-cr16.c:653
 #, c-format
-msgid "%s: cannot link fdpic object file into non-fdpic executable"
-msgstr "%s: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» fdpic Ð´Ð¾ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° Ð½Ðµ-fdpic"
+msgid "Unsupported CR16 relocation type: 0x%x\n"
+msgstr "Ð�ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CR16: 0x%x\n"
 
-#: elf32-bfin.c:5283
+#: elf32-cr16.c:682
 #, c-format
-msgid "*** check this relocation %s"
-msgstr "*** Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ñ‚Ðµ Ñ†Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: %s"
+msgid "%B: unrecognised CR16 reloc number: %d"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CR16: %d"
+
+#: elf32-cr16c.c:186
+#, c-format
+msgid "%B: invalid CR16C reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CR16C: %d"
+
+#: elf32-cris.c:467
+#, c-format
+msgid "%B: invalid CRIS reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CRIS: %d"
 
-#: elf32-cris.c:1176
+#: elf32-cris.c:1115
+#, c-format
 msgid "%B, section %A: unresolvable relocation %s against symbol `%s'"
 msgstr "%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»"
 
-#: elf32-cris.c:1238
+#: elf32-cris.c:1177
+#, c-format
 msgid "%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'"
 msgstr "%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½ÐµÐ¼Ð°Ñ” Ð½Ñ– PLT, Ð½Ñ– GOT Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»"
 
-#: elf32-cris.c:1240
+#: elf32-cris.c:1180
+#, c-format
 msgid "%B, section %A: No PLT for relocation %s against symbol `%s'"
 msgstr "%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½ÐµÐ¼Ð°Ñ” PLT Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»"
 
-#: elf32-cris.c:1246 elf32-cris.c:1379 elf32-cris.c:1639 elf32-cris.c:1722
-#: elf32-cris.c:1875 elf32-tic6x.c:2662
+#: elf32-cris.c:1186 elf32-cris.c:1319 elf32-cris.c:1583 elf32-cris.c:1666
+#: elf32-cris.c:1819 elf32-tic6x.c:2651
 msgid "[whose name is lost]"
 msgstr "[Ñ‡Ð¸ÑŽ Ð½Ð°Ð·Ð²Ñƒ Ð²Ñ‚Ñ€Ð°Ñ‡ÐµÐ½Ð¾]"
 
-#: elf32-cris.c:1365 elf32-tic6x.c:2647
+#: elf32-cris.c:1304 elf32-tic6x.c:2635
+#, c-format
 msgid "%B, section %A: relocation %s with non-zero addend %d against local symbol"
 msgstr "%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼, %d, Ñ‰Ð¾Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
 
-#: elf32-cris.c:1373 elf32-cris.c:1716 elf32-cris.c:1869 elf32-tic6x.c:2655
+#: elf32-cris.c:1313 elf32-cris.c:1660 elf32-cris.c:1813 elf32-tic6x.c:2644
+#, c-format
 msgid "%B, section %A: relocation %s with non-zero addend %d against symbol `%s'"
 msgstr "%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼, %d, Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»"
 
-#: elf32-cris.c:1399
+#: elf32-cris.c:1340
+#, c-format
 msgid "%B, section %A: relocation %s is not allowed for global symbol: `%s'"
 msgstr "%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð»Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ: Â«%sÂ»"
 
-#: elf32-cris.c:1415
+#: elf32-cris.c:1357
+#, c-format
 msgid "%B, section %A: relocation %s with no GOT created"
 msgstr "%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð±ÐµÐ· Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð¾Ð³Ð¾ GOT"
 
 #. We shouldn't get here for GCC-emitted code.
-#: elf32-cris.c:1630
+#: elf32-cris.c:1573
+#, c-format
 msgid "%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?"
 msgstr "%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– %s Ñ” Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Â«%sÂ», Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾, Ð°Ð´Ñ€ÐµÑ�Ð½Ð° Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ° Ð¾Ð³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ�?"
 
-#: elf32-cris.c:2002
+#: elf32-cris.c:1576
+#, c-format
+msgid "%B, section %A: relocation %s is not allowed for `%s', a global symbol with default visibility, perhaps a declaration mixup?"
+msgstr "%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ–Ð· Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾ÑŽ Ð²Ð¸Ð´Ð¸Ð¼Ñ–Ñ�Ñ‚ÑŽ. ÐœÐ¾Ð¶Ð»Ð¸Ð²Ð¾, Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ð¾Ð³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ–?"
+
+#: elf32-cris.c:1947
+#, c-format
 msgid "%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?"
 msgstr "%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», Ñ�ÐºÐ¸Ð¹ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð¿Ð¾Ð·Ð° Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¾ÑŽ. ÐœÐ¾Ð¶Ð»Ð¸Ð²Ð¾, Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ð¾Ð³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ–?"
 
-#: elf32-cris.c:2055
+#: elf32-cris.c:2000
 msgid "(too many global variables for -fpic: recompile with -fPIC)"
 msgstr "(Ð·Ð°Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ… Ð´Ð»Ñ� -fpic: Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· -fPIC)"
 
-#: elf32-cris.c:2062
+#: elf32-cris.c:2007
 msgid "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)"
 msgstr "(Ð´Ð°Ð½Ñ– Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼Ð¸ Ð´Ð»Ñ� -fpic Ð°Ð±Ð¾ -msmall-tls: Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -fPIC Ð°Ð±Ð¾ -mno-small-tls)"
 
-#: elf32-cris.c:3261
+#: elf32-cris.c:3233
+#, c-format
 msgid ""
 "%B, section %A:\n"
 "  v10/v32 compatible object %s must not contain a PIC relocation"
@@ -1397,7 +2084,8 @@ msgstr ""
 "%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A:\n"
 "  Ð¾Ð±â€™Ñ”ÐºÑ‚ Ð²ÐµÑ€Ñ�Ñ–Ñ— 10/32, %s, Ð½Ðµ Ð¿Ð¾Ð²Ð¸Ð½ÐµÐ½ Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� PIC"
 
-#: elf32-cris.c:3366
+#: elf32-cris.c:3287
+#, c-format
 msgid ""
 "%B, section %A:\n"
 "  relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC"
@@ -1405,7 +2093,8 @@ msgstr ""
 "%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A:\n"
 "  Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ñ” ÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¼ Ñƒ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð¼Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–; Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾ÑŽ Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½Ð¾ÑŽ Ñ” ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð², Ð¿ÐµÑ€ÐµÐºÐ¾Ð¼Ð¿Ñ–Ð»ÑŽÐ¹Ñ‚Ðµ Ð· -fPIC"
 
-#: elf32-cris.c:3580
+#: elf32-cris.c:3505
+#, c-format
 msgid ""
 "%B, section %A:\n"
 "  relocation %s should not be used in a shared object; recompile with -fPIC"
@@ -1413,7 +2102,8 @@ msgstr ""
 "%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A:\n"
 "  Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ñ�Ð»Ñ–Ð´ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ñƒ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð¼Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–; Ð¿ÐµÑ€ÐµÐºÐ¾Ð¼Ð¿Ñ–Ð»ÑŽÐ¹Ñ‚Ðµ Ð· -fPIC"
 
-#: elf32-cris.c:4002
+#: elf32-cris.c:3929
+#, c-format
 msgid ""
 "%B, section `%A', to symbol `%s':\n"
 "  relocation %s should not be used in a shared object; recompile with -fPIC"
@@ -1421,42 +2111,57 @@ msgstr ""
 "%B, Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%AÂ» Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»:\n"
 "  Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ñ�Ð»Ñ–Ð´ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ñƒ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð¼Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–; Ð¿ÐµÑ€ÐµÐºÐ¾Ð¼Ð¿Ñ–Ð»ÑŽÐ¹Ñ‚Ðµ Ð· -fPIC"
 
-#: elf32-cris.c:4118
+#: elf32-cris.c:4041
 msgid "Unexpected machine number"
 msgstr "Ð�ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ð¼Ð°ÑˆÐ¸Ð½Ð¸"
 
-#: elf32-cris.c:4172
+#: elf32-cris.c:4092
 #, c-format
 msgid " [symbols have a _ prefix]"
 msgstr " [Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð¼Ñ–Ñ�Ñ‚Ñ�Ñ‚ÑŒ Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ� _]"
 
-#: elf32-cris.c:4175
+#: elf32-cris.c:4095
 #, c-format
 msgid " [v10 and v32]"
 msgstr " [v10 Ñ‚Ð° v32]"
 
-#: elf32-cris.c:4178
+#: elf32-cris.c:4098
 #, c-format
 msgid " [v32]"
 msgstr " [v32]"
 
-#: elf32-cris.c:4223
+#: elf32-cris.c:4142
 msgid "%B: uses _-prefixed symbols, but writing file with non-prefixed symbols"
 msgstr "%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð· Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ�Ð¾Ð¼ Â«_Â», Ð°Ð»Ðµ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð·Ð°Ð¿Ð¸Ñ� Ñ„Ð°Ð¹Ð»Ð° Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ�Ñ–Ð²"
 
-#: elf32-cris.c:4224
+#: elf32-cris.c:4143
 msgid "%B: uses non-prefixed symbols, but writing file with _-prefixed symbols"
 msgstr "%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸ Ð±ÐµÐ· Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ�Ð° Â«_Â», Ð°Ð»Ðµ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð·Ð°Ð¿Ð¸Ñ� Ñ„Ð°Ð¹Ð»Ð° Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð°Ð¼Ð¸ Ð· Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ�Ð°Ð¼Ð¸ Â«_Â»"
 
-#: elf32-cris.c:4243
+#: elf32-cris.c:4162
 msgid "%B contains CRIS v32 code, incompatible with previous objects"
 msgstr "Ñƒ %B Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒÑ�Ñ� ÐºÐ¾Ð´ v32 CRIS, Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¹ Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸"
 
-#: elf32-cris.c:4245
+#: elf32-cris.c:4164
 msgid "%B contains non-CRIS-v32 code, incompatible with previous objects"
 msgstr "Ñƒ %B Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒÑ�Ñ� ÐºÐ¾Ð´, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ñ” ÐºÐ¾Ð´Ð¾Ð¼ v32 CRIS, Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¹ Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸"
 
-#: elf32-dlx.c:142
+#: elf32-crx.c:429
+#, c-format
+msgid "%B: unrecognised CRX reloc number: %d"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CRX: %d"
+
+#: elf32-d10v.c:234
+#, c-format
+msgid "%B: invalid D10V reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� D10V: %d"
+
+#: elf32-d30v.c:522 elf32-d30v.c:541
+#, c-format
+msgid "%B: invalid D30V reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� D30V: %d"
+
+#: elf32-dlx.c:141
 #, c-format
 msgid "BFD Link Error: branch (PC rel16) to section (%s) not supported"
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� BFD: Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� (PC rel16) Ð´Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ (%s) Ð½Ðµ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÑ”Ñ‚ÑŒÑ�Ñ�"
@@ -1466,519 +2171,994 @@ msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð
 msgid "BFD Link Error: jump (PC rel26) to section (%s) not supported"
 msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� BFD: Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñƒ (PC rel26) Ð´Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ (%s)"
 
+#: elf32-dlx.c:552
+#, c-format
+msgid "Invalid DLX reloc number: %d"
+msgstr "Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� DLX: %d"
+
+#: elf32-epiphany.c:376
+#, c-format
+msgid "%B: invalid Epiphany reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Epiphany: %d"
+
 #. Only if it's not an unresolved symbol.
-#: elf32-epiphany.c:563 elf32-ip2k.c:1475
+#: elf32-epiphany.c:570 elf32-ip2k.c:1482
 msgid "unsupported relocation between data/insn address spaces"
 msgstr "Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ñ–Ð¶ Ð¿Ñ€Ð¾Ñ�Ñ‚Ð¾Ñ€Ð°Ð¼Ð¸ Ð°Ð´Ñ€ÐµÑ� data Ñ‚Ð° insn"
 
-#: elf32-frv.c:1509 elf32-frv.c:1658
+#: elf32-fr30.c:381
+#, c-format
+msgid "%B: invalid FR30 reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� FR30: %d"
+
+#: elf32-frv.c:1451 elf32-frv.c:1602
 msgid "relocation requires zero addend"
 msgstr "Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±ÐµÐ½ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº"
 
-#: elf32-frv.c:2888
+#: elf32-frv.c:2557
+#, c-format
+msgid "%B: invalid FRV reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� FRV: %d"
+
+#: elf32-frv.c:2823
+#, c-format
 msgid "%H: relocation to `%s+%v' may have caused the error above\n"
 msgstr "%H: Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ� Ð¿Ñ€Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑƒ, Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ðµ Ð²Ð¸Ñ‰Ðµ, Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ Ñ�Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½ÐµÐ½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼ Ð´Ð¾ Â«%s+%vÂ»\n"
 
-#: elf32-frv.c:2905
+#: elf32-frv.c:2840
 msgid "%H: relocation references symbol not defined in the module\n"
 msgstr "%H: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð», Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¼Ð¾Ð´ÑƒÐ»Ñ–\n"
 
-#: elf32-frv.c:2981
+#: elf32-frv.c:2916
 msgid "%H: R_FRV_GETTLSOFF not applied to a call instruction\n"
 msgstr "%H: R_FRV_GETTLSOFF Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ (call)\n"
 
-#: elf32-frv.c:3022
+#: elf32-frv.c:2957
 msgid "%H: R_FRV_GOTTLSDESC12 not applied to an lddi instruction\n"
 msgstr "%H: R_FRV_GOTTLSDESC12 Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ lddi\n"
 
-#: elf32-frv.c:3093
+#: elf32-frv.c:3028
 msgid "%H: R_FRV_GOTTLSDESCHI not applied to a sethi instruction\n"
 msgstr "%H: R_FRV_GOTTLSDESCHI Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ sethi\n"
 
-#: elf32-frv.c:3130
+#: elf32-frv.c:3065
 msgid "%H: R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction\n"
 msgstr "%H: R_FRV_GOTTLSDESCLO Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ setlo Ð°Ð±Ð¾ setlos\n"
 
-#: elf32-frv.c:3177
+#: elf32-frv.c:3112
 msgid "%H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction\n"
 msgstr "%H: R_FRV_TLSDESC_RELAX Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ ldd\n"
 
-#: elf32-frv.c:3261
+#: elf32-frv.c:3196
 msgid "%H: R_FRV_GETTLSOFF_RELAX not applied to a calll instruction\n"
 msgstr "%H: R_FRV_GETTLSOFF_RELAX Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ calll\n"
 
-#: elf32-frv.c:3315
+#: elf32-frv.c:3250
 msgid "%H: R_FRV_GOTTLSOFF12 not applied to an ldi instruction\n"
 msgstr "%H: R_FRV_GOTTLSOFF12 Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ ldi\n"
 
-#: elf32-frv.c:3345
+#: elf32-frv.c:3280
 msgid "%H: R_FRV_GOTTLSOFFHI not applied to a sethi instruction\n"
 msgstr "%H: R_FRV_GOTTLSOFFHI Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ sethi\n"
 
-#: elf32-frv.c:3374
+#: elf32-frv.c:3309
 msgid "%H: R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction\n"
 msgstr "%H: R_FRV_GOTTLSOFFLO Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ setlo Ð°Ð±Ð¾ setlos\n"
 
-#: elf32-frv.c:3404
+#: elf32-frv.c:3339
 msgid "%H: R_FRV_TLSOFF_RELAX not applied to an ld instruction\n"
 msgstr "%H: R_FRV_TLSOFF_RELAX Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ ld\n"
 
-#: elf32-frv.c:3449
+#: elf32-frv.c:3384
 msgid "%H: R_FRV_TLSMOFFHI not applied to a sethi instruction\n"
 msgstr "%H: R_FRV_TLSMOFFHI Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ sethi\n"
 
-#: elf32-frv.c:3476
+#: elf32-frv.c:3411
 msgid "R_FRV_TLSMOFFLO not applied to a setlo or setlos instruction\n"
 msgstr "R_FRV_TLSMOFFLO Ñ” Ð½ÐµÐ·Ð°Ñ�Ñ‚Ð¾Ñ�Ð¾Ð²Ð½Ð¸Ð¼ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ setlo Ð°Ð±Ð¾ setlos\n"
 
-#: elf32-frv.c:3597
+#: elf32-frv.c:3532
 msgid "%H: R_FRV_FUNCDESC references dynamic symbol with nonzero addend\n"
 msgstr "%H: R_FRV_FUNCDESC Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼\n"
 
-#: elf32-frv.c:3638 elf32-frv.c:3760
+#: elf32-frv.c:3573 elf32-frv.c:3695
 msgid "%H: cannot emit fixups in read-only section\n"
 msgstr "%H: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð°Ð´Ñ€ÐµÑ�Ð½Ñƒ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÑƒ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�\n"
 
-#: elf32-frv.c:3669 elf32-frv.c:3803
+#: elf32-frv.c:3604 elf32-frv.c:3738
 msgid "%H: cannot emit dynamic relocations in read-only section\n"
 msgstr "%H: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�\n"
 
-#: elf32-frv.c:3718
+#: elf32-frv.c:3653
 msgid "%H: R_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addend\n"
 msgstr "%H: R_FRV_FUNCDESC_VALUE Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼\n"
 
-#: elf32-frv.c:3974
+#: elf32-frv.c:3910
+#, c-format
 msgid "%H: reloc against `%s' references a different segment\n"
 msgstr "%H: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ–Ð½ÑˆÐ¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚\n"
 
-#: elf32-frv.c:4124
+#: elf32-frv.c:4061
+#, c-format
 msgid "%H: reloc against `%s': %s\n"
 msgstr "%H: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»: %s\n"
 
-#: elf32-frv.c:6400
+#: elf32-frv.c:6258
+#, c-format
 msgid "%B: unsupported relocation type %i\n"
 msgstr "%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %i\n"
 
-#: elf32-frv.c:6722
-#, c-format
-msgid "%s: compiled with %s and linked with modules that use non-pic relocations"
-msgstr "%s: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð· %s Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ñƒ Ñ�ÐºÐ¸Ñ… Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½Ðµ-pic"
-
-#: elf32-frv.c:6775 elf32-iq2000.c:845 elf32-m32c.c:807
+#: elf32-frv.c:6510
 #, c-format
-msgid "%s: compiled with %s and linked with modules compiled with %s"
-msgstr "%s: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð· %s Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¸Ð¼Ð¸ Ð· %s"
+msgid "%B: compiled with %s and linked with modules that use non-pic relocations"
+msgstr "%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð· %s Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ñƒ Ñ�ÐºÐ¸Ñ… Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½Ðµ-pic"
 
-#: elf32-frv.c:6787
+#: elf32-frv.c:6564 elf32-iq2000.c:832 elf32-m32c.c:877
 #, c-format
-msgid "%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)"
-msgstr "%s: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½ÑˆÑ– Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñ– Ð¿Ð¾Ð»Ñ� e_flags (0x%lx) Ð½Ñ–Ð¶ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… (0x%lx)"
+msgid "%B: compiled with %s and linked with modules compiled with %s"
+msgstr "%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð· %s Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¸Ð¼Ð¸ Ð· %s"
 
-#: elf32-frv.c:6837 elf32-iq2000.c:882 elf32-m32c.c:843 elf32-mt.c:576
-#: elf32-rx.c:3001
+#: elf32-frv.c:6577
 #, c-format
-msgid "private flags = 0x%lx:"
-msgstr "Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = 0x%lx:"
+msgid "%B: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)"
+msgstr "%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½ÑˆÑ– Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñ– Ð¿Ð¾Ð»Ñ� e_flags (0x%lx) Ð½Ñ–Ð¶ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… (0x%lx)"
 
 #: elf32-gen.c:69 elf64-gen.c:69
+#, c-format
 msgid "%B: Relocations in generic ELF (EM: %d)"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð¼Ñƒ ELF (EM: %d)"
 
-#: elf32-hppa.c:850 elf32-hppa.c:3598
+#: elf32-hppa.c:839 elf32-hppa.c:3599
+#, c-format
 msgid "%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections"
 msgstr "%B(%A+0x%lx): Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð´Ð¾Ñ�Ñ�Ð³Ñ‚Ð¸ %s, Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -ffunction-sections"
 
-#: elf32-hppa.c:1284
+#: elf32-hppa.c:1270
+#, c-format
 msgid "%B: relocation %s can not be used when making a shared object; recompile with -fPIC"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�; Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -fPIC"
 
-#: elf32-hppa.c:2791
+#: elf32-hppa.c:2778
+#, c-format
 msgid "%B: duplicate export stub %s"
 msgstr "%B: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� %s"
 
-#: elf32-hppa.c:3437
+#: elf32-hppa.c:3433
+#, c-format
 msgid "%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link"
 msgstr "%B(%A+0x%lx): Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð°Ð´Ñ€ÐµÑ�Ð½Ð¾Ñ— Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ %s Ð´Ð»Ñ� Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— 0x%x Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ– Ð½ÐµÑ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
 
-#: elf32-hppa.c:4284
+#: elf32-hppa.c:4290
+#, c-format
 msgid "%B(%A+0x%lx): cannot handle %s for %s"
 msgstr "%B(%A+0x%lx): Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ %s Ð´Ð»Ñ� %s"
 
-#: elf32-hppa.c:4603
+#: elf32-hppa.c:4588
 msgid ".got section not immediately after .plt section"
 msgstr "Ð Ð¾Ð·Ð´Ñ–Ð» .got Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð·Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¾Ð¼ .plt"
 
+#: elf32-i370.c:307
+#, c-format
+msgid "%B: unrecognised I370 reloc number: %d"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� I370: %d"
+
+#: elf32-i370.c:1168
+msgid "%B: unknown relocation type %d for symbol %s"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
+
+#: elf32-i370.c:1310
+#, c-format
+msgid "%B: Relocation %s is not yet supported for symbol %s."
+msgstr "%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s Ñ‰Ðµ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾."
+
 #. Unknown relocation.
-#: elf32-i386.c:373 elf32-m68k.c:384 elf32-ppc.c:1676 elf32-s390.c:379
-#: elf32-tic6x.c:2684 elf64-ppc.c:2300 elf64-s390.c:403 elf64-x86-64.c:265
+#: elf32-i386.c:387 elf32-m68k.c:352 elf32-ppc.c:2074 elf32-s390.c:346
+#: elf32-tic6x.c:2674 elf32-wasm32.c:106 elf64-ppc.c:2516 elf64-s390.c:373
+#: elf64-x86-64.c:289
+#, c-format
 msgid "%B: invalid relocation type %d"
 msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d"
 
-#: elf32-i386.c:1404 elf64-x86-64.c:1308
+#: elf32-i386.c:1711 elf64-x86-64.c:1888
+#, c-format
 msgid "%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed"
 msgstr "%B: Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ� TLS Ð· %s Ð´Ð¾ %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ñƒ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» Ð·Ð°Ð·Ð½Ð°Ð»Ð¾ Ð½ÐµÐ²Ð´Ð°Ñ‡Ñ–"
 
-#: elf32-i386.c:1549 elf32-i386.c:3244 elf64-x86-64.c:1487 elf64-x86-64.c:3125
-#: elfxx-sparc.c:3083
-msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
-msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ STT_GNU_IFUNC Â«%sÂ» Ð½Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»Ñ�Ñ”Ñ‚ÑŒÑ�Ñ� %s"
+#: elf32-i386.c:1799
+#, c-format
+msgid "%B: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object"
+msgstr "%B: Ð±ÐµÐ·Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´Ð½Ñ” Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� GOT R_386_GOT32X Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð±ÐµÐ· Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð° Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
 
-#: elf32-i386.c:1711 elf32-s390.c:1182 elf32-sh.c:6362 elf32-tilepro.c:1434
-#: elf32-xtensa.c:1182 elf64-s390.c:1151 elfxx-sparc.c:1548
-#: elfxx-tilegx.c:1701
+#: elf32-i386.c:2237 elf32-s390.c:1188 elf32-sh.c:6056 elf32-tilepro.c:1608
+#: elf32-xtensa.c:1196 elf64-s390.c:1117 elfxx-sparc.c:1625
+#: elfxx-tilegx.c:1817
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:440
+#, c-format
 msgid "%B: `%s' accessed both as normal and thread local symbol"
 msgstr "%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Â«%sÂ» Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�Ðº Ð´Ð¾ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ñ‚Ð°Ðº Ñ– Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð´Ð»Ñ� Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
 
-#: elf32-i386.c:2539 elf64-x86-64.c:2506
-msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'.\n"
-msgstr "%P: %B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ñƒ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ».\n"
-
-#: elf32-i386.c:2629 elf64-x86-64.c:2593
-msgid "%P: %B: warning: relocation in readonly section `%A'.\n"
-msgstr "%P: %B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Â«%AÂ».\n"
+#: elf32-i386.c:2314
+#, c-format
+msgid "%B: unsupported non-PIC call to IFUNC `%s'"
+msgstr "%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ð²Ð¸ÐºÐ»Ð¸Ðº Ð±ÐµÐ· PIC IFUNC Â«%sÂ»"
+
+#: elf32-i386.c:3189 elf64-x86-64.c:3589
+#, c-format
+msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'\n"
+msgstr "%P: %B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ñƒ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»\n"
+
+#: elf32-i386.c:3402 elf64-x86-64.c:3798
+#, c-format
+msgid "%P: %B: warning: relocation in readonly section `%A'\n"
+msgstr "%P: %B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Â«%AÂ»\n"
+
+#: elf32-i386.c:3705 elf64-x86-64.c:4114
+msgid "%P%X: read-only segment has dynamic IFUNC relocations; recompile with -fPIC\n"
+msgstr "%P%X: Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�, Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� IFUNC. Ð¡Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð·Ñ–Ð±Ñ€Ð°Ñ‚Ð¸ Ð· -fPIC\n"
 
-#: elf32-i386.c:3086 elf32-tilepro.c:2557 elfxx-tilegx.c:2871
+#: elf32-i386.c:3945 elf32-tilepro.c:2868 elf64-x86-64.c:4321
+#: elfxx-tilegx.c:3167
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6082
+#, c-format
 msgid "%B: unrecognized relocation (0x%x) in section `%A'"
 msgstr "%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (0x%x) Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»"
 
-#: elf32-i386.c:3494 elf64-x86-64.c:3513
+#: elf32-i386.c:4240 elf64-x86-64.c:4550
+#, c-format
+msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported"
+msgstr "%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ STT_GNU_IFUNC Â«%sÂ» Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾"
+
+#: elf32-i386.c:4275 elf32-i386.c:5642 elf32-i386.c:5781 elf64-x86-64.c:4609
+#: elf64-x86-64.c:5982 elf64-x86-64.c:6136
+msgid "Local IFUNC function `%s' in %B\n"
+msgstr "Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ� IFUNC Â«%sÂ» Ñƒ %B\n"
+
+#: elf32-i386.c:4508
+#, c-format
+msgid "%B: direct GOT relocation %s against `%s' without base register can not be used when making a shared object"
+msgstr "%B: Ð±ÐµÐ·Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´Ð½Ñ” Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð±ÐµÐ· Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð° Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
+
+#: elf32-i386.c:4543 elf64-x86-64.c:4816
 msgid "hidden symbol"
-msgstr "Ð¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð»"
+msgstr "Ð¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
 
-#: elf32-i386.c:3497 elf64-x86-64.c:3516
+#: elf32-i386.c:4546 elf64-x86-64.c:4819
 msgid "internal symbol"
-msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð»"
+msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
 
-#: elf32-i386.c:3500 elf64-x86-64.c:3519
+#: elf32-i386.c:4549 elf64-x86-64.c:4822
 msgid "protected symbol"
-msgstr "Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð»"
+msgstr "Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
 
-#: elf32-i386.c:3503 elf64-x86-64.c:3522
+#: elf32-i386.c:4552 elf64-x86-64.c:4825
 msgid "symbol"
-msgstr "Ñ�Ð¸Ð¼Ð²Ð¾Ð»"
+msgstr "Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
 
-#: elf32-i386.c:3508
+#: elf32-i386.c:4558
+#, c-format
 msgid "%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object"
-msgstr "B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_386_GOTOFF Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ %s, Â«%sÂ», Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_386_GOTOFF Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ %s, Â«%sÂ», Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
 
-#: elf32-i386.c:3518
-msgid "%B: relocation R_386_GOTOFF against protected function `%s' can not be used when making a shared object"
-msgstr "%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ R_386_GOTOFF Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%sÂ» Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
+#: elf32-i386.c:4571
+#, c-format
+msgid "%B: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object"
+msgstr "%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ R_386_GOTOFF Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ñ— %s Â«%sÂ» Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
 
-#: elf32-i386.c:4839 elf32-tilepro.c:3467 elf64-x86-64.c:4609
-#: elfxx-tilegx.c:3847
+#: elf32-i386.c:6116 elf32-tilepro.c:3920 elf64-x86-64.c:6483
+#: elfxx-tilegx.c:4327
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:9261
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2522
 #, c-format
 msgid "discarded output section: `%A'"
 msgstr "Ð²Ñ–Ð´ÐºÐ¸Ð½ÑƒÑ‚Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ…: Â«%AÂ»"
 
-#: elf32-ip2k.c:857 elf32-ip2k.c:863 elf32-ip2k.c:930 elf32-ip2k.c:936
+#: elf32-i386.c:6693 elf64-x86-64.c:7228
+msgid "error: %B: <corrupt x86 ISA used size: 0x%x>"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: <Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾Ð³Ð¾ ISA x86: 0x%x>"
+
+#: elf32-i386.c:6695 elf64-x86-64.c:7230
+msgid "error: %B: <corrupt x86 ISA needed size: 0x%x>"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: <Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾Ð³Ð¾ ISA x86: 0x%x>"
+
+#: elf32-i386.c:6696 elf64-x86-64.c:7231
+msgid "error: %B: <corrupt x86 feature size: 0x%x>"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: <Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾Ñ�Ñ‚Ñ– x86: 0x%x>"
+
+#: elf32-i386.c:6873 elf64-x86-64.c:7408
+#, c-format
+msgid "%F: failed to create GNU property section\n"
+msgstr "%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð²Ð»Ð°Ñ�Ñ‚Ð¸Ð²Ð¾Ñ�Ñ‚ÐµÐ¹ GNU\n"
+
+#: elf32-i386.c:6959
+#, c-format
+msgid "%F: failed to create VxWorks dynamic sections\n"
+msgstr "%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸ VxWorks\n"
+
+#: elf32-i386.c:7026 elf64-x86-64.c:7568
+#, c-format
+msgid "%F: failed to create GOT sections\n"
+msgstr "%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸ GOT\n"
+
+#: elf32-i386.c:7031 elf64-x86-64.c:7584
+#, c-format
+msgid "%F: failed to create ifunc sections\n"
+msgstr "%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸ ifunc\n"
+
+#: elf32-i386.c:7074 elf64-x86-64.c:7627
+#, c-format
+msgid "%F: failed to create GOT PLT section\n"
+msgstr "%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» PLT GOT\n"
+
+#: elf32-i386.c:7095 elf64-x86-64.c:7648
+#, c-format
+msgid "%F: failed to create IBT-enabled PLT section\n"
+msgstr "%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» PLT Ñ–Ð· ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¸Ð¼ IBT\n"
+
+#: elf32-i386.c:7116 elf64-x86-64.c:7684
+#, c-format
+msgid "%F: failed to create PLT .eh_frame section\n"
+msgstr "%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» .eh_frame PLT\n"
+
+#: elf32-i386.c:7129 elf64-x86-64.c:7698
+#, c-format
+msgid "%F: failed to create GOT PLT .eh_frame section\n"
+msgstr "%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» .eh_frame PLT GOT\n"
+
+#: elf32-i386.c:7149 elf64-x86-64.c:7414
+#, c-format
+msgid "%F%A: failed to align section\n"
+msgstr "%F%A: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ñ‚Ð¸ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€\n"
+
+#: elf32-i960.c:140
+#, c-format
+msgid "%B: invalid i960 reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� i960: %d"
+
+#: elf32-ip2k.c:856 elf32-ip2k.c:862 elf32-ip2k.c:929 elf32-ip2k.c:935
 msgid "ip2k relaxer: switch table without complete matching relocation information."
 msgstr "ÐžÐ¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ‚Ð¾Ñ€ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ ip2k: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½ÑŒ Ð±ÐµÐ· Ð¿Ð¾Ð²Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ñ�Ñ‚Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ."
 
-#: elf32-ip2k.c:880 elf32-ip2k.c:963
+#: elf32-ip2k.c:879 elf32-ip2k.c:962
 msgid "ip2k relaxer: switch table header corrupt."
 msgstr "ÐžÐ¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ‚Ð¾Ñ€ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ ip2k: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½ÑŒ"
 
-#: elf32-ip2k.c:1292
+#: elf32-ip2k.c:1245
+#, c-format
+msgid "%B: invalid IP2K reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� IP2K: %d"
+
+#: elf32-ip2k.c:1298
 #, c-format
 msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)."
 msgstr "ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº ip2k: Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— Ñ‰Ð¾Ð´Ð¾ Ñ�Ñ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¸ Ñƒ 0x%08lx (Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� = 0x%08lx)."
 
-#: elf32-ip2k.c:1308
+#: elf32-ip2k.c:1315
 #, c-format
 msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)."
 msgstr "ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº ip2k: Ð·Ð°Ð¹Ð²Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ� Ñ‰Ð¾Ð´Ð¾ Ñ�Ñ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¸ Ñƒ 0x%08lx (Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� = 0x%08lx)."
 
-#: elf32-iq2000.c:858 elf32-m32c.c:819
+#: elf32-iq2000.c:441
+#, c-format
+msgid "%B: invalid IQ2000 reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� IQ2000: %d"
+
+#: elf32-lm32.c:559
 #, c-format
-msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
-msgstr "%s: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½ÑˆÑ– Ð¿Ð¾Ð»Ñ� e_flags (0x%lx) Ð½Ñ–Ð¶ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… (0x%lx)"
+msgid "%B: invalid LM32 reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� LM32: %d"
 
-#: elf32-lm32.c:706
+#: elf32-lm32.c:668 elf32-nios2.c:3153
 msgid "global pointer relative relocation when _gp not defined"
 msgstr "Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° Ð±ÐµÐ· Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� _gp"
 
-#: elf32-lm32.c:761
+#: elf32-lm32.c:723 elf32-nios2.c:3590
 msgid "global pointer relative address out of range"
 msgstr "Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ"
 
-#: elf32-lm32.c:1057
+#: elf32-lm32.c:1018
 msgid "internal error: addend should be zero for R_LM32_16_GOT"
 msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð»Ñ� R_LM32_16_GOT"
 
-#: elf32-m32r.c:1453
+#: elf32-m32c.c:305
+#, c-format
+msgid "%B: invalid M32C reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� M32C: %d"
+
+#: elf32-m32r.c:1286
+#, c-format
+msgid "%B: invalid M32R reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� M32R: %d"
+
+#: elf32-m32r.c:1458
 msgid "SDA relocation when _SDA_BASE_ not defined"
 msgstr "Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ� SDA Ð±ÐµÐ· Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� _SDA_BASE_"
 
-#: elf32-m32r.c:3043
+#: elf32-m32r.c:2984 elf32-microblaze.c:1080 elf32-microblaze.c:1128
+#, c-format
 msgid "%B: The target (%s) of an %s relocation is in the wrong section (%A)"
 msgstr ""
 "%B: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� (%s) Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– (%A)\n"
 ")"
 
-#: elf32-m32r.c:3571
+#: elf32-m32r.c:3486
 msgid "%B: Instruction set mismatch with previous modules"
 msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ð½Ð°Ð±Ð¾Ñ€Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ Ñ†ÑŒÐ¾Ð³Ð¾ Ð¼Ð¾Ð´ÑƒÐ»Ñ� Ð½Ð°Ð±Ð¾Ñ€Ð°Ð¼ ÐºÐ¾Ð¼Ð°Ð½Ð´ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ–Ð²"
 
-#: elf32-m32r.c:3592
+#: elf32-m32r.c:3507 elf32-nds32.c:6111
 #, c-format
 msgid "private flags = %lx"
 msgstr "Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = %lx"
 
-#: elf32-m32r.c:3597
+#: elf32-m32r.c:3512
 #, c-format
 msgid ": m32r instructions"
 msgstr ": ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ m32r"
 
-#: elf32-m32r.c:3598
+#: elf32-m32r.c:3513
 #, c-format
 msgid ": m32rx instructions"
 msgstr ": ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ m32rx"
 
-#: elf32-m32r.c:3599
+#: elf32-m32r.c:3514
 #, c-format
 msgid ": m32r2 instructions"
 msgstr ": ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ m32r2"
 
-#: elf32-m68hc1x.c:1050
+#: elf32-m68hc11.c:390
+#, c-format
+msgid "%B: invalid M68HC11 reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� M68HC11: %d"
+
+#: elf32-m68hc12.c:510
+#, c-format
+msgid "%B: invalid M68HC12 reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� M68HC12: %d"
+
+#: elf32-m68hc1x.c:1119
 #, c-format
 msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution"
 msgstr "ÐŸÐ¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ», Ñ‰Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð¼Ð¾Ð¶Ðµ Ð¿Ñ€Ð¸Ð·Ð²ÐµÑ�Ñ‚Ð¸ Ð´Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº Ñƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ–."
 
-#: elf32-m68hc1x.c:1073
+#: elf32-m68hc1x.c:1153
+#, c-format
+msgid "XGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you must manually offset the address, and possibly manage the page, in your code."
+msgstr "Ð�Ð´Ñ€ÐµÑ�Ð° XGATE (%lx) Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÐ¾Ð²Ð°Ð½Ð° Ð¿Ð¾Ð·Ð° RAM Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� (0xE000-0xFFFF), Ñ‚Ð¾Ð¼Ñƒ Ð²Ð°Ð¼ Ñ�Ð»Ñ–Ð´ Ð²Ñ€ÑƒÑ‡Ð½Ñƒ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð°Ð´Ñ€ÐµÑ�Ð¸ Ñ–, Ð¹Ð¼Ð¾Ð²Ñ–Ñ€Ð½Ð¾, ÐºÐµÑ€ÑƒÐ²Ð°Ñ‚Ð¸ Ñ�Ñ‚Ð¾Ñ€Ñ–Ð½ÐºÐ¾ÑŽ Ð¿Ð°Ð¼â€™Ñ�Ñ‚Ñ– Ñƒ Ð²Ð°ÑˆÐ¾Ð¼Ñƒ ÐºÐ¾Ð´Ñ–."
+
+#: elf32-m68hc1x.c:1171
 #, c-format
 msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)"
 msgstr "Ð·Ð°Ð½ÐµÑ�ÐµÐ½Ð° Ð´Ð¾ Ð±Ð°Ð½ÐºÑƒ Ð°Ð´Ñ€ÐµÑ�Ð° [%lx:%04lx] (%lx) Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ð¾Ð´Ð½Ð¾Ð¼Ñƒ Ð±Ð°Ð½ÐºÑƒ Ð· Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ, Ð·Ð°Ð½ÐµÑ�ÐµÐ½Ð¾ÑŽ Ð´Ð¾ Ð±Ð°Ð½ÐºÑƒ, [%lx:%04lx] (%lx)"
 
-#: elf32-m68hc1x.c:1092
+#: elf32-m68hc1x.c:1187
 #, c-format
 msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx"
 msgstr "Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ð·Ð°Ð½ÐµÑ�ÐµÐ½Ñƒ Ð´Ð¾ Ð±Ð°Ð½ÐºÑƒ Ð°Ð´Ñ€ÐµÑ�Ñƒ [%lx:%04lx] Ñƒ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð¼Ñƒ Ð¿Ñ€Ð¾Ñ�Ñ‚Ð¾Ñ€Ñ– Ð°Ð´Ñ€ÐµÑ�, %04lx"
 
-#: elf32-m68hc1x.c:1225
-msgid "%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers"
+#: elf32-m68hc1x.c:1228
+#, c-format
+msgid "S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you must manually offset the address in your code"
+msgstr "Ð�Ð´Ñ€ÐµÑ�Ð° S12 (%lx) Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÐ¾Ð²Ð°Ð½Ð° Ð¿Ð¾Ð·Ð° RAM Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� (0x2000-x4000), Ñ‚Ð¾Ð¼Ñƒ Ð²Ð°Ð¼ Ñ�Ð»Ñ–Ð´ Ð²Ñ€ÑƒÑ‡Ð½Ñƒ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð°Ð´Ñ€ÐµÑ�Ð¸ Ñƒ Ð²Ð°ÑˆÐ¾Ð¼Ñƒ ÐºÐ¾Ð´Ñ–"
+
+#: elf32-m68hc1x.c:1355
+msgid "%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers"
 msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ñ– Ñ„Ð°Ð¹Ð»Ð¸ Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� 16-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ñ†Ñ–Ð»Ð¸Ñ… (-mshort), Ð° Ñ€ÐµÑˆÑ‚Ñƒ Ñ„Ð°Ð¹Ð»Ñ–Ð² â€” Ð´Ð»Ñ� 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ñ†Ñ–Ð»Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ»"
 
-#: elf32-m68hc1x.c:1232
+#: elf32-m68hc1x.c:1362
 msgid "%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double"
 msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ñ– Ñ„Ð°Ð¹Ð»Ð¸ Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ (-fshort-double), Ð° Ñ–Ð½ÑˆÑ– â€” Ð´Ð»Ñ� 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ."
 
-#: elf32-m68hc1x.c:1241
+#: elf32-m68hc1x.c:1371
 msgid "%B: linking files compiled for HCS12 with others compiled for HC12"
 msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ñ– Ñ„Ð°Ð¹Ð»Ð¸ Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� HCS12, Ñ–Ð½ÑˆÑ– Ð¶ â€” Ð´Ð»Ñ� HC12"
 
-#: elf32-m68hc1x.c:1257 elf32-ppc.c:4227 elf64-sparc.c:706 elfxx-mips.c:13965
-msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
-msgstr "%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½ÑˆÑ– Ð¿Ð¾Ð»Ñ� e_flags (0x%lx) Ð½Ñ–Ð¶ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… (0x%lx)"
-
-#: elf32-m68hc1x.c:1285
+#: elf32-m68hc1x.c:1416 elf32-xgate.c:672
 #, c-format
 msgid "[abi=32-bit int, "
 msgstr "[abi=32-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ Ñ†Ñ–Ð»Ðµ, "
 
-#: elf32-m68hc1x.c:1287
+#: elf32-m68hc1x.c:1418 elf32-xgate.c:674
 #, c-format
 msgid "[abi=16-bit int, "
 msgstr "[abi=16-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ Ñ†Ñ–Ð»Ðµ, "
 
-#: elf32-m68hc1x.c:1290
+#: elf32-m68hc1x.c:1421 elf32-xgate.c:677
 #, c-format
 msgid "64-bit double, "
 msgstr "64-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ double, "
 
-#: elf32-m68hc1x.c:1292
+#: elf32-m68hc1x.c:1423 elf32-xgate.c:679
 #, c-format
 msgid "32-bit double, "
 msgstr "32-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ double, "
 
-#: elf32-m68hc1x.c:1295
+#: elf32-m68hc1x.c:1426
 #, c-format
 msgid "cpu=HC11]"
 msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€=HC11]"
 
-#: elf32-m68hc1x.c:1297
+#: elf32-m68hc1x.c:1428
 #, c-format
 msgid "cpu=HCS12]"
 msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€=HCS12]"
 
-#: elf32-m68hc1x.c:1299
+#: elf32-m68hc1x.c:1430
 #, c-format
 msgid "cpu=HC12]"
 msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€=HC12]"
 
-#: elf32-m68hc1x.c:1302
+#: elf32-m68hc1x.c:1433
 #, c-format
 msgid " [memory=bank-model]"
 msgstr " [Ð¿Ð°Ð¼â€™Ñ�Ñ‚ÑŒ=Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð· Ð±Ð°Ð½ÐºÐ°Ð¼Ð¸]"
 
-#: elf32-m68hc1x.c:1304
+#: elf32-m68hc1x.c:1435
 #, c-format
 msgid " [memory=flat]"
 msgstr " [Ð¿Ð°Ð¼â€™Ñ�Ñ‚ÑŒ=Ð¿Ð»Ð¾Ñ�ÐºÐ° Ð¼Ð¾Ð´ÐµÐ»ÑŒ]"
 
-#: elf32-m68k.c:1251 elf32-m68k.c:1252 vms-alpha.c:7314 vms-alpha.c:7329
+#: elf32-m68hc1x.c:1438
+#, c-format
+msgid " [XGATE RAM offsetting]"
+msgstr " [Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ� Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ñƒ RAM XGATE]"
+
+#: elf32-m68k.c:1215 elf32-m68k.c:1216 vms-alpha.c:7400 vms-alpha.c:7416
 msgid "unknown"
 msgstr "Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾"
 
-#: elf32-m68k.c:1715
+#: elf32-m68k.c:1680
+#, c-format
 msgid "%B: GOT overflow: Number of relocations with 8-bit offset > %d"
 msgstr "%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� GOT: ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ð· 8-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ > %d"
 
-#: elf32-m68k.c:1721
+#: elf32-m68k.c:1687
+#, c-format
 msgid "%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d"
 msgstr "%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� GOT: ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ð· 8- Ð°Ð±Ð¾ 16-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ > %d"
 
-#: elf32-m68k.c:3957
+#: elf32-m68k.c:3890
+#, c-format
 msgid "%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object"
 msgstr "%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_68K_TLS_LE32 Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾"
 
-#: elf32-mcore.c:99 elf32-mcore.c:442
+#: elf32-mcore.c:100 elf32-mcore.c:455
+#, c-format
 msgid "%B: Relocation %s (%d) is not currently supported.\n"
 msgstr "%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s (%d) Ñƒ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ñ–Ð¹ Ð²ÐµÑ€Ñ�Ñ–Ñ— Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾.\n"
 
-#: elf32-mcore.c:428
+#: elf32-mcore.c:355
+#, c-format
+msgid "%B: unrecognised MCore reloc number: %d"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MCore: %d"
+
+#: elf32-mcore.c:440
+#, c-format
 msgid "%B: Unknown relocation type %d\n"
 msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d\n"
 
 #. Pacify gcc -Wall.
-#: elf32-mep.c:157
+#: elf32-mep.c:139
 #, c-format
 msgid "mep: no reloc for code %d"
 msgstr "mep: Ð½ÐµÐ¼Ð°Ñ” Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� ÐºÐ¾Ð´Ñƒ %d"
 
-#: elf32-mep.c:163
+#: elf32-mep.c:146
 #, c-format
 msgid "MeP: howto %d has type %d"
 msgstr "MeP: howto %d Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð´Ð¾ Ñ‚Ð¸Ð¿Ñƒ %d"
 
-#: elf32-mep.c:648
+#: elf32-mep.c:390
+#, c-format
+msgid "%B: invalid MEP reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MEP: %d"
+
+#: elf32-mep.c:620
+#, c-format
 msgid "%B and %B are for different cores"
 msgstr "%B Ñ– %B Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ� Ñ€Ñ–Ð·Ð½Ð¸Ñ… Ñ�Ð´ÐµÑ€"
 
-#: elf32-mep.c:665
+#: elf32-mep.c:639
+#, c-format
 msgid "%B and %B are for different configurations"
 msgstr "%B Ñ– %B Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ� Ñ€Ñ–Ð·Ð½Ð¸Ñ… ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ð¹"
 
-#: elf32-mep.c:702
+#: elf32-mep.c:677
 #, c-format
 msgid "private flags = 0x%lx"
 msgstr "Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = 0x%lx"
 
-#: elf32-microblaze.c:742
+#: elf32-metag.c:893
 #, c-format
-msgid "%s: unknown relocation type %d"
-msgstr "%s: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d"
+msgid "%B: invalid METAG reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� METAG: %d"
+
+#: elf32-metag.c:1875
+msgid "%B(%A): multiple TLS models are not supported"
+msgstr "%B(%A): Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… Ð¼Ð¾Ð´ÐµÐ»ÐµÐ¹ TLS Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾"
+
+#: elf32-metag.c:1878
+msgid "%B(%A): shared library symbol %s encountered whilst performing a static link"
+msgstr "%B(%A): Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ� Ñ�Ñ‚Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� %s"
 
-#: elf32-microblaze.c:867 elf32-microblaze.c:912
+#: elf32-metag.c:1931
 #, c-format
-msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
-msgstr ""
-"%s: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� (%s) Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– (%s)\n"
-")"
+msgid "%B(%A+0x%lx): R_METAG_TLS_LE/IENONPIC relocation not permitted in shared object"
+msgstr "%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_METAG_TLS_LE/IENONPIC Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾"
 
-#: elf32-microblaze.c:1155 elf32-tilepro.c:2891 elfxx-sparc.c:3457
-#: elfxx-tilegx.c:3230
+#: elf32-microblaze.c:656
+#, c-format
+msgid "%B: unrecognised MicroBlaze reloc number: %d"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MicroBlaze: %d"
+
+#: elf32-microblaze.c:1496 elf32-or1k.c:1072 elf32-tilepro.c:3317
+#: elfxx-sparc.c:3705 elfxx-tilegx.c:3726
 msgid "%B: probably compiled without -fPIC?"
 msgstr "%B: Ð¹Ð¼Ð¾Ð²Ñ–Ñ€Ð½Ð¾ Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð±ÐµÐ· -fPIC?"
 
-#: elf32-microblaze.c:2074
-msgid "%B: bad relocation section name `%s'"
-msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð½Ð°Ð·Ð²Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Â«%sÂ»"
-
-#: elf32-mips.c:1549 elf64-mips.c:2683 elfn32-mips.c:2487
+#: elf32-mips.c:1777 elf64-mips.c:3200 elfn32-mips.c:3010
 msgid "literal relocation occurs for an external symbol"
 msgstr "Ð²Ñ–Ð´Ð±ÑƒÐ²Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð±ÑƒÐºÐ²Ð°Ð»ÑŒÐ½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
 
-#: elf32-mips.c:1596 elf32-score.c:570 elf32-score7.c:469 elf64-mips.c:2726
-#: elfn32-mips.c:2528
+#: elf32-mips.c:1824 elf32-score.c:569 elf32-score7.c:469 elf64-mips.c:3243
+#: elfn32-mips.c:3051
 msgid "32bits gp relative relocation occurs for an external symbol"
 msgstr "Ð²Ñ–Ð´Ð±ÑƒÐ²Ð°Ñ”Ñ‚ÑŒÑ�Ñ� 32-Ð±Ñ–Ñ‚Ð¾Ð²Ðµ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ gp-Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
 
-#: elf32-ppc.c:1741
+#: elf32-mips.c:2225
+#, c-format
+msgid "Unrecognised MIPS reloc number: %d"
+msgstr "Ð�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MIPS: %d"
+
+#: elf32-moxie.c:137
+#, c-format
+msgid "%B: invalid Moxie reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Moxie: %d"
+
+#: elf32-msp430.c:648
+#, c-format
+msgid "%B: invalid MSP430X reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MSP430X: %d"
+
+#: elf32-msp430.c:658
+#, c-format
+msgid "%B: invalid MSP430 reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MSP430: %d"
+
+#: elf32-msp430.c:836 elf32-msp430.c:1150
+msgid "Try enabling relaxation to avoid relocation truncations"
+msgstr "Ð¡Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÑƒÑ‚Ð¸ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–ÑŽ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð´Ð»Ñ� ÑƒÐ½Ð¸ÐºÐ½ÐµÐ½Ð½Ñ� Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ"
+
+#: elf32-msp430.c:1357
+msgid "internal error: branch/jump to an odd address detected"
+msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Ð°Ð±Ð¾ Ð¿ÐµÑ€ÐµÑ…Ñ–Ð´ Ð´Ð¾ Ð½ÐµÐ¿Ð°Ñ€Ð½Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð¸"
+
+#: elf32-msp430.c:2354
+#, c-format
+msgid "Warning: %B: Unknown MSPABI object attribute %d"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° MSPABI %d"
+
+#: elf32-msp430.c:2447
+#, c-format
+msgid "error: %B uses %s instructions but %B uses %s"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— %s, Ð°Ð»Ðµ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” %s"
+
+#: elf32-msp430.c:2459
+#, c-format
+msgid "error: %B uses the %s code model whereas %B uses the %s code model"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ ÐºÐ¾Ð´Ñƒ %s, Ñ‚Ð¾Ð´Ñ– Ñ�Ðº %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ ÐºÐ¾Ð´Ñƒ %s"
+
+#: elf32-msp430.c:2471
+#, c-format
+msgid "error: %B uses the large code model but %B uses MSP430 instructions"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð²ÐµÐ»Ð¸ÐºÐ¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ, Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— MSP430"
+
+#: elf32-msp430.c:2482
+#, c-format
+msgid "error: %B uses the %s data model whereas %B uses the %s data model"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð´Ð°Ð½Ð¸Ñ… %s, Ñ‚Ð¾Ð´Ñ– Ñ�Ðº %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð´Ð°Ð½Ð¸Ñ… %s"
+
+#: elf32-msp430.c:2494
+#, c-format
+msgid "error: %B uses the small code model but %B uses the %s data model"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð¼Ð°Ð»Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ, Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð´Ð°Ð½Ð¸Ñ… %s"
+
+#: elf32-msp430.c:2506
+#, c-format
+msgid "error: %B uses the %s data model but %B only uses MSP430 instructions"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð¼Ð¾Ð´ÐµÐ»ÑŒ Ð´Ð°Ð½Ð¸Ñ… %s, Ð° Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð»Ð¸ÑˆÐµ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— MSP430"
+
+#: elf32-mt.c:242
+#, c-format
+msgid "%B: invalid MT reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MT: %d"
+
+#: elf32-nds32.c:2974
+#, c-format
+msgid "%B: invalid NDS32 reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� NDS32: %d"
+
+#: elf32-nds32.c:3309
+msgid "error: Can't find symbol: _SDA_BASE_."
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�Ð¸Ð¼Ð²Ð¾Ð» _SDA_BASE_."
+
+#: elf32-nds32.c:4484 elf32-nds32.c:11978
+msgid "%B: error: Cannot set _ITB_BASE_"
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ _ITB_BASE_"
+
+#: elf32-nds32.c:4492
+msgid "error: IFC relocation error."
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� IFC."
+
+#: elf32-nds32.c:4526
+#, c-format
+msgid "%B: error: unknown relocation type %d."
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d."
+
+#: elf32-nds32.c:4972
+msgid "%B: warning: cannot deal R_NDS32_25_ABS_RELA in shared mode."
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ° R_NDS32_25_ABS_RELA Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð°."
+
+#: elf32-nds32.c:5106
+msgid "%B: warning: unaligned access to GOT entry."
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ GOT."
+
+#: elf32-nds32.c:5148
+msgid "%B: warning: relocate SDA_BASE failed."
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� SDA_BASE."
+
+#: elf32-nds32.c:5170
+#, c-format
+msgid "%B(%A): warning: unaligned small data access of type %d."
+msgstr "%B(%A): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Ð¼Ð°Ð»Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ñ‚Ð¸Ð¿Ñƒ %d."
+
+#: elf32-nds32.c:5918
+#, c-format
+msgid "%B: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñ–Ð² Ð²ÐµÐºÑ‚Ð¾Ñ€Ñ–Ð² ISR Ñ–Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ– Ñ” %u-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¼Ð¸, Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ñ– Ñ” %u-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¼Ð¸"
+
+#: elf32-nds32.c:5962
+msgid "%B: warning: Endian mismatch with previous modules."
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÑƒ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ñ–Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸."
+
+#: elf32-nds32.c:5972
+msgid "%B: warning: Older version of object file encountered, Please recompile with current tool chain."
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ñ�Ñ‚Ð°Ñ€Ñ–ÑˆÑƒ Ð²ÐµÑ€Ñ�Ñ–ÑŽ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð°. Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¸Ð¼ Ð½Ð°Ð±Ð¾Ñ€Ð¾Ð¼ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð²."
+
+#: elf32-nds32.c:6050
+msgid "%B: error: ABI mismatch with previous modules."
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ABI Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸."
+
+#: elf32-nds32.c:6061
+msgid "%B: error: Instruction set mismatch with previous modules."
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ð½Ð°Ð±Ð¾Ñ€Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ Ñ†ÑŒÐ¾Ð³Ð¾ Ð¼Ð¾Ð´ÑƒÐ»Ñ� Ð½Ð°Ð±Ð¾Ñ€Ð°Ð¼ ÐºÐ¾Ð¼Ð°Ð½Ð´ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ–Ð²."
+
+#: elf32-nds32.c:6087
+#, c-format
+msgid "%B: warning: Incompatible elf-versions %s and  %s."
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ– Ð²ÐµÑ€Ñ�Ñ–Ñ— elf, %s Ñ‚Ð° %s."
+
+#: elf32-nds32.c:6117
+#, c-format
+msgid ": n1 instructions"
+msgstr ": Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— n1"
+
+#: elf32-nds32.c:6120
+#, c-format
+msgid ": n1h instructions"
+msgstr ": Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— n1h"
+
+#: elf32-nds32.c:8730
+msgid "%B: Error: search_nds32_elf_blank reports wrong node\n"
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: search_nds32_elf_blank Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»Ñ�Ñ” Ð¿Ñ€Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð²ÑƒÐ·Ð¾Ð»\n"
+
+#: elf32-nds32.c:8989
+#, c-format
+msgid "%B: warning: %s points to unrecognized reloc at 0x%lx."
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %s Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð¾ 0x%lx."
+
+#: elf32-nds32.c:11850 elf32-nds32.c:11867
+msgid "error: Jump IFC Fail."
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñƒ IFC."
+
+#: elf32-nds32.c:12724
+#, c-format
+msgid "%B: Nested OMIT_FP in %A."
+msgstr "%B: Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ðµ OMIT_FP Ñƒ %A."
+
+#: elf32-nds32.c:12743
+#, c-format
+msgid "%B: Unmatched OMIT_FP in %A."
+msgstr "%B: OMIT_FP Ð±ÐµÐ· Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¸ÐºÐ° Ñƒ %A."
+
+#: elf32-nds32.c:13026 reloc.c:8231
+#, c-format
+msgid "%X%P: %B(%A): relocation \"%R\" goes out of range\n"
+msgstr "%X%P: %B(%A): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Â«%RÂ» Ð²Ð¸Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð¿Ñ€Ð¸Ð¿ÑƒÑ�Ñ‚Ð¸Ð¼Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ\n"
+
+#: elf32-nds32.c:14802
+msgid "Linker: cannot init ex9 hash table error \n"
+msgstr "ÐšÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ ex9, Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ…ÐµÑˆÑ–Ð² \n"
+
+#: elf32-nds32.c:15211 elf32-nds32.c:15225
+msgid "Linker: error cannot fixed ex9 relocation \n"
+msgstr "ÐšÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°, Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ñ–ÐºÑ�Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ ex9 \n"
+
+#: elf32-nds32.c:15436
+#, c-format
+msgid "%B: warning: unaligned small data access. For entry: {%d, %d, %d}, addr = 0x%x, align = 0x%x."
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Ð¼Ð°Ð»Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…. Ð—Ð°Ð¿Ð¸Ñ�: {%d, %d, %d}, Ð°Ð´Ñ€ÐµÑ�Ð° = 0x%x, Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� = 0x%x."
+
+#: elf32-nds32.c:15469
+msgid "%P%F: failed creating ex9.it %s hash table: %E\n"
+msgstr "%P%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŽ Ñ…ÐµÑˆÑ–Ð² ex9.it %s: %E\n"
+
+#: elf32-nios2.c:2949
+msgid "error: %B: Big-endian R2 is not supported."
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¾Ð³Ð¾ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÑƒ Ð±Ð°Ð¹Ñ‚Ñ–Ð² R2 Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾."
+
+#: elf32-nios2.c:3830
+#, c-format
+msgid "global pointer relative relocation at address 0x%08x when _gp not defined\n"
+msgstr "Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%08x, Ð²Ñ‚Ñ–Ð¼, _gp Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾\n"
+
+#: elf32-nios2.c:3850
+#, c-format
+msgid "Unable to reach %s (at 0x%08x) from the global pointer (at 0x%08x) because the offset (%d) is out of the allowed range, -32678 to 32767.\n"
+msgstr "Ð�ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ Ð´Ð¾Ñ�Ñ�Ð³Ñ‚Ð¸ %s (Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%08x) Ñ–Ð· Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° (Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%08x), Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ� (%d) Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð¿Ð¾Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ, Ð²Ñ–Ð´ -32678 Ð´Ð¾ 32767.\n"
+
+#: elf32-nios2.c:4372
+#, c-format
+msgid "%B(%A+0x%lx): R_NIOS2_TLS_LE16 relocation not permitted in shared object"
+msgstr "%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_NIOS2_TLS_LE16 Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾"
+
+#: elf32-nios2.c:4500 elf32-pru.c:816
+msgid "relocation out of range"
+msgstr "Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ"
+
+#: elf32-nios2.c:4510 elf32-pru.c:826 elf32-tic6x.c:2747
+msgid "dangerous relocation"
+msgstr "Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
+
+#: elf32-nios2.c:5491
+#, c-format
+msgid "dynamic variable `%s' is zero size"
+msgstr "Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð° Ð·Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð¼Ð°Ñ” Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€"
+
+#: elf32-or1k.c:735
+#, c-format
+msgid "%B: invalid OR1K reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� OR1K: %d"
+
+#: elf32-or1k.c:985
+msgid "internal error: addend should be zero for R_OR1K_GOT16"
+msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð»Ñ� R_OR1K_GOT16"
+
+#: elf32-or1k.c:1094
+msgid "%B: support for local dynamic not implemented"
+msgstr "%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÑƒ Ð´Ð»Ñ� Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ñ— Ð´Ð¸Ð½Ð°Ð¼Ñ–ÐºÐ¸ Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾"
+
+#: elf32-or1k.c:1229
+msgid "%B: will not resolve runtime TLS relocation"
+msgstr "%B: Ð½Ðµ Ð±ÑƒÐ´Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� TLS Ñƒ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð¼Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ–"
+
+#: elf32-or1k.c:1599
+#, c-format
+msgid "%B: bad relocation section name `%s'"
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð½Ð°Ð·Ð²Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Â«%sÂ»"
+
+#: elf32-or1k.c:2704
+msgid "%B: EF_OR1K_NODELAY flag mismatch with previous modules"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ� EF_OR1K_NODELAY Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼"
+
+#: elf32-pj.c:325
+#, c-format
+msgid "%B: unrecognised PicoJava reloc number: %d"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� PicoJava: %d"
+
+#: elf32-ppc.c:2062
+#, c-format
+msgid "%B: unrecognised PPC reloc number: %d"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� PPC: %d"
+
+#: elf32-ppc.c:2147
 #, c-format
 msgid "generic linker can't handle %s"
 msgstr "Ñ‚Ð¸Ð¿Ð¾Ð²Ð¸Ð¹ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸Ðº Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»Ñ�Ñ‚Ð¸ %s"
 
-#: elf32-ppc.c:2184
+#: elf32-ppc.c:2781
+#, c-format
 msgid "corrupt %s section in %B"
 msgstr "Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» %s Ñƒ %B"
 
-#: elf32-ppc.c:2203
+#: elf32-ppc.c:2801
+#, c-format
 msgid "unable to read in %s section from %B"
 msgstr "Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %s Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ Ð· %B"
 
-#: elf32-ppc.c:2244
+#: elf32-ppc.c:2843
+#, c-format
 msgid "warning: unable to set size of %s section in %B"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %B"
 
-#: elf32-ppc.c:2294
+#: elf32-ppc.c:2893
 msgid "failed to allocate space for new APUinfo section."
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚Ð¸ Ð½Ð¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» APUinfo."
 
-#: elf32-ppc.c:2313
+#: elf32-ppc.c:2912
 msgid "failed to compute new APUinfo section."
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±Ñ‡Ð¸Ñ�Ð»Ð¸Ñ‚Ð¸ Ð½Ð¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» APUinfo."
 
-#: elf32-ppc.c:2316
+#: elf32-ppc.c:2915
 msgid "failed to install new APUinfo section."
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð½Ð¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» APUinfo."
 
-#: elf32-ppc.c:3356
+#: elf32-ppc.c:3975
+#, c-format
 msgid "%B: relocation %s cannot be used when making a shared object"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
 
-#. It does not make sense to have a procedure linkage
-#. table entry for a local symbol.
-#: elf32-ppc.c:3700
-msgid "%P: %H: %s reloc against local symbol\n"
-msgstr "%P: %H: %s Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼\n"
+#: elf32-ppc.c:4329 elf64-ppc.c:5591
+#, c-format
+msgid "%H: %s reloc against local symbol\n"
+msgstr "%H: %s Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼\n"
 
-#: elf32-ppc.c:4039 elf32-ppc.c:4054 elfxx-mips.c:13651 elfxx-mips.c:13677
-#: elfxx-mips.c:13699 elfxx-mips.c:13725
+#: elf32-ppc.c:4691 elf32-ppc.c:4695
+#, c-format
 msgid "Warning: %B uses hard float, %B uses soft float"
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ», Ð° Ñƒ %B â€” Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð°"
 
-#: elf32-ppc.c:4042 elf32-ppc.c:4046
+#: elf32-ppc.c:4699 elf32-ppc.c:4704
+#, c-format
 msgid "Warning: %B uses double-precision hard float, %B uses single-precision hard float"
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ, Ð° Ñƒ %B â€” Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ð»Ñ� Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ"
 
-#: elf32-ppc.c:4050
-msgid "Warning: %B uses soft float, %B uses single-precision hard float"
-msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ», Ð° Ñƒ %B â€” Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ð»Ñ� Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ"
-
-#: elf32-ppc.c:4057 elf32-ppc.c:4061 elfxx-mips.c:13631 elfxx-mips.c:13635
-msgid "Warning: %B uses unknown floating point ABI %d"
-msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ð· Ñ‡Ð¸Ñ�Ð»Ð°Ð¼Ð¸ Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ, %d"
-
-#: elf32-ppc.c:4103 elf32-ppc.c:4107
-msgid "Warning: %B uses unknown vector ABI %d"
-msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð½Ð¸Ð¹ ABI %d"
-
-#: elf32-ppc.c:4111
-msgid "Warning: %B uses vector ABI \"%s\", %B uses \"%s\""
-msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð²ÐµÐºÑ‚Ð¾Ñ€Ð½Ð¸Ð¹ ABI Â«%sÂ», Ð° Ñƒ %B â€” Â«%sÂ»"
+#: elf32-ppc.c:4719 elf32-ppc.c:4724
+#, c-format
+msgid "Warning: %B uses 64-bit long double, %B uses 128-bit long double"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ 64-Ð±Ñ–Ñ‚Ð¾Ð²Ñ– Ð´Ð¾Ð²Ð³Ñ– Ñ†Ñ–Ð»Ñ– Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ–Ð· Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ, Ð° Ñƒ %B â€” 128-Ð±Ñ–Ñ‚Ð¾Ð²Ñ–"
 
-#: elf32-ppc.c:4128 elf32-ppc.c:4131
+#: elf32-ppc.c:4729 elf32-ppc.c:4734
+#, c-format
+msgid "Warning: %B uses IBM long double, %B uses IEEE long double"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ Ð´Ð¾Ð²Ð³Ñ– Ñ†Ñ–Ð»Ñ– Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ–Ð· Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ IBM, Ð° Ñƒ %B â€” IEEE"
+
+#: elf32-ppc.c:4785 elf32-ppc.c:4790
+#, c-format
+msgid "Warning: %B uses AltiVec vector ABI, %B uses SPE vector ABI"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð²ÐµÐºÑ‚Ð¾Ñ€Ð½Ð¸Ð¹ ABI AltiVec, %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð²ÐµÐºÑ‚Ð¾Ñ€Ð½Ð¸Ð¹ ABI SPE"
+
+#: elf32-ppc.c:4813 elf32-ppc.c:4818
+#, c-format
 msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory"
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B r3/r4 Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð´Ð»Ñ� Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ� Ð¼Ð°Ð»Ð¸Ñ… Ñ�Ñ‚Ñ€ÑƒÐºÑ‚ÑƒÑ€, Ð° Ñƒ %B Ð´Ð»Ñ� Ñ†ÑŒÐ¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð¿Ð°Ð¼â€™Ñ�Ñ‚ÑŒ"
 
-#: elf32-ppc.c:4134 elf32-ppc.c:4138
-msgid "Warning: %B uses unknown small structure return convention %d"
-msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñƒ ÑƒÐ³Ð¾Ð´Ñƒ, %d, Ñ‰Ð¾Ð´Ð¾ Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ� Ð¼Ð°Ð»ÐµÐ½ÑŒÐºÐ¸Ñ… Ñ�Ñ‚Ñ€ÑƒÐºÑ‚ÑƒÑ€"
-
-#: elf32-ppc.c:4192
+#: elf32-ppc.c:4873
 msgid "%B: compiled with -mrelocatable and linked with modules compiled normally"
 msgstr "%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð· -mrelocatable Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¸Ð¼Ð¸ Ñƒ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð¼Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ–"
 
-#: elf32-ppc.c:4200
+#: elf32-ppc.c:4881
 msgid "%B: compiled normally and linked with modules compiled with -mrelocatable"
 msgstr "%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñƒ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð¼Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¸Ð¼Ð¸ Ð· -mrelocatable"
 
-#: elf32-ppc.c:4309
+#: elf32-ppc.c:4909
+#, c-format
+msgid "%B: uses different e_flags (%#x) fields than previous modules (%#x)"
+msgstr "%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½ÑˆÑ– Ð¿Ð¾Ð»Ñ� e_flags (%#x) Ð½Ñ–Ð¶ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… (%#x)"
+
+#: elf32-ppc.c:4950
+#, c-format
+msgid "%B(%A+0x%lx): expected 16A style relocation on 0x%08x insn"
+msgstr "%B(%A+0x%lx): Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ�Ñ‚Ð¸Ð»ÑŽ 16A Ð½Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— 0x%08x"
+
+#: elf32-ppc.c:4969
+#, c-format
+msgid "%B(%A+0x%lx): expected 16D style relocation on 0x%08x insn"
+msgstr "%B(%A+0x%lx): Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ�Ñ‚Ð¸Ð»ÑŽ 16D Ð½Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— 0x%08x"
+
+#: elf32-ppc.c:5043
 msgid "%P: bss-plt forced due to %B\n"
 msgstr "%P: Ð¿Ñ€Ð¸Ð¼ÑƒÑ�Ð¾Ð²Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ bss-plt Ñ‡ÐµÑ€ÐµÐ· %B\n"
 
-#: elf32-ppc.c:4312
+#: elf32-ppc.c:5046
 msgid "%P: bss-plt forced by profiling\n"
 msgstr "%P: Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼ Ð¿Ñ€Ð¸Ð¼ÑƒÑ�Ð¾Ð²Ð¾ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ bss-plt\n"
 
@@ -1986,47 +3166,159 @@ msgstr "%P: Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼ Ð
 #. could just mark this symbol to exclude it
 #. from tls optimization but it's safer to skip
 #. the entire optimization.
-#: elf32-ppc.c:4809 elf64-ppc.c:7858
+#: elf32-ppc.c:5544 elf64-ppc.c:8798
+#, c-format
 msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
 msgstr "%H: Ñƒ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” __tls_get_addr, Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–ÑŽ TLS Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾.\n"
 
-#: elf32-ppc.c:5044 elf64-ppc.c:6528
-msgid "%P: dynamic variable `%s' is zero size\n"
-msgstr "%P: Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð° Ð·Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð¼Ð°Ñ” Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€\n"
+#: elf32-ppc.c:8249
+msgid "%H: fixup branch overflow\n"
+msgstr "%H: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Ñ–Ð· Ð°Ð´Ñ€ÐµÑ�Ð½Ð¾ÑŽ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¾ÑŽ\n"
+
+#: elf32-ppc.c:8289 elf32-ppc.c:8324
+#, c-format
+msgid "%H: error: %s with unexpected instruction %x\n"
+msgstr "%H: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %s Ñ–Ð· Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¾ÑŽ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ”ÑŽ %x\n"
+
+#: elf32-ppc.c:8380
+#, c-format
+msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
+msgstr "%X%H: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° bss-plt -fPIC ifunc %s\n"
 
-#: elf32-ppc.c:7263 elf64-ppc.c:12675
+#: elf32-ppc.c:8434
+#, c-format
 msgid "%P: %B: unknown relocation type %d for symbol %s\n"
 msgstr "%P: %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s\n"
 
-#: elf32-ppc.c:7524
-msgid "%P: %H: non-zero addend on %s reloc against `%s'\n"
-msgstr "%P: %H: Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ð´Ð¾Ð´Ð°Ñ‚Ð¾Ðº Ð´Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»\n"
-
-#: elf32-ppc.c:7720 elf64-ppc.c:13181
-msgid "%P: %H: relocation %s for indirect function %s unsupported\n"
-msgstr "%P: %H: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— %s Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾\n"
+#: elf32-ppc.c:8723
+#, c-format
+msgid "%H: non-zero addend on %s reloc against `%s'\n"
+msgstr "%H: Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ð´Ð¾Ð´Ð°Ñ‚Ð¾Ðº Ð´Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»\n"
+
+#. @local on an ifunc does not really make sense since
+#. the ifunc resolver can take you anywhere.  More
+#. seriously, calls to ifuncs must go through a plt call
+#. stub, and for pic the plt call stubs uses r30 to
+#. access the PLT.  The problem is that a call that is
+#. local won't have the +32k reloc addend trick marking
+#. -fPIC code, so the linker won't know whether r30 is
+#. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section.
+#: elf32-ppc.c:8755
+#, c-format
+msgid "%X%H: @local call to ifunc %s\n"
+msgstr "%X%H: Ð²Ð¸ÐºÐ»Ð¸Ðº @local ifunc %s\n"
+
+#: elf32-ppc.c:8935
+#, c-format
+msgid "%H: relocation %s for indirect function %s unsupported\n"
+msgstr "%H: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— %s Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾\n"
 
-#: elf32-ppc.c:7948 elf32-ppc.c:7978 elf32-ppc.c:8025
+#: elf32-ppc.c:9232 elf32-ppc.c:9263 elf32-ppc.c:9354
+#, c-format
 msgid "%P: %B: the target (%s) of a %s relocation is in the wrong output section (%s)\n"
 msgstr "%P: %B: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� (%s) Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� (%s)\n"
 
-#: elf32-ppc.c:8097
+#: elf32-ppc.c:9442
+#, c-format
+msgid "%B: the target (%s) of a %s relocation is in the wrong output section (%s)"
+msgstr "%B: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� (%s) Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� (%s)"
+
+#: elf32-ppc.c:9546
+#, c-format
 msgid "%P: %B: relocation %s is not yet supported for symbol %s\n"
 msgstr "%P: %B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s Ñ‰Ðµ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾\n"
 
-#: elf32-ppc.c:8158 elf64-ppc.c:13467
-msgid "%P: %H: unresolvable %s relocation against symbol `%s'\n"
-msgstr "%P: %H: Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»\n"
-
-#: elf32-ppc.c:8205 elf64-ppc.c:13512
-msgid "%P: %H: %s reloc against `%s': error %d\n"
-msgstr "%P: %H: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° %d\n"
+#: elf32-ppc.c:9631
+#, c-format
+msgid "%H: error: %s against `%s' not a multiple of %u\n"
+msgstr "%H: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %s Ð´Ð»Ñ� Â«%sÂ» Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ %u\n"
+
+#: elf32-ppc.c:9660
+#, c-format
+msgid "%H: unresolvable %s relocation against symbol `%s'\n"
+msgstr "%H: Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»\n"
 
-#: elf32-ppc.c:8696
+#: elf32-ppc.c:9741
+#, c-format
+msgid "%H: %s reloc against `%s': error %d\n"
+msgstr "%H: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° %d\n"
+
+#: elf32-ppc.c:10505 elf64-ppc.c:15719
+msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n"
+msgstr "%X%P: Ð¿Ð¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‚ÐµÐºÑ�Ñ‚Ñƒ Ñ– Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¸Ñ… Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ GNU Ð¿Ñ€Ð¸Ð·Ð²ÐµÐ´Ðµ Ð´Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ— Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð·Ð°Ð¿ÑƒÑ�ÐºÑƒ\n"
+
+#: elf32-ppc.c:10509 elf64-ppc.c:15723
+msgid "%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime\n"
+msgstr "%P: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‚ÐµÐºÑ�Ñ‚Ñƒ Ñ– Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¸Ñ… Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ GNU Ð¼Ð¾Ð¶Ðµ Ð¿Ñ€Ð¸Ð·Ð²ÐµÑ�Ñ‚Ð¸ Ð´Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ñ— Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð·Ð°Ð¿ÑƒÑ�ÐºÑƒ\n"
+
+#: elf32-ppc.c:10554
+#, c-format
 msgid "%P: %s not defined in linker created %s\n"
 msgstr "%P: %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÑƒ, Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð¾Ð¼Ñƒ %s\n"
 
-#: elf32-rx.c:563
+#: elf32-rl78.c:291
+#, c-format
+msgid "%B: invalid RL78 reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� RL78: %d"
+
+#: elf32-rl78.c:369
+msgid "Internal Error: RL78 reloc stack overflow"
+msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ñ�Ñ‚ÐµÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ RL78"
+
+#: elf32-rl78.c:380
+msgid "Internal Error: RL78 reloc stack underflow"
+msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð½Ñ� Ñ�Ñ‚ÐµÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ RL78"
+
+#: elf32-rl78.c:1049
+msgid "Warning: RL78_SYM reloc with an unknown symbol"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� RL78_SYM Ð· Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼"
+
+#: elf32-rl78.c:1080 elf32-rx.c:1434
+#, c-format
+msgid "%B(%A): error: call to undefined function '%s'"
+msgstr "%B(%A): Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸ÐºÐ»Ð¸Ðº Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%sÂ»"
+
+#: elf32-rl78.c:1201
+#, c-format
+msgid "RL78 ABI conflict: G10 file %B cannot be linked with %s file %B"
+msgstr "ÐšÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ ABI RL78: Ñ„Ð°Ð¹Ð» G10 %B Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð· %s, Ñ„Ð°Ð¹Ð» %B"
+
+#: elf32-rl78.c:1218
+#, c-format
+msgid "RL78 ABI conflict: cannot link %s file %B with %s file %B"
+msgstr "ÐšÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ ABI RL78: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ %s, Ñ„Ð°Ð¹Ð» %B Ð· %s, Ñ„Ð°Ð¹Ð» %B"
+
+#: elf32-rl78.c:1227
+msgid "RL78 merge conflict: cannot link 32-bit and 64-bit objects together"
+msgstr "ÐšÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� RL78: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ 32-Ð±Ñ–Ñ‚Ð¾Ð²Ñ– Ñ– 64-Ð±Ñ–Ñ‚Ð¾Ð²Ñ– Ð¾Ð±â€™Ñ”ÐºÑ‚Ð¸"
+
+#: elf32-rl78.c:1231 elf32-rl78.c:1235
+#, c-format
+msgid "- %B is 64-bit, %B is not"
+msgstr "- %B Ñ” 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼, Ð° %B â€” Ð½Ñ–"
+
+#: elf32-rl78.c:1262
+#, c-format
+msgid " [64-bit doubles]"
+msgstr " [64-Ð±Ñ–Ñ‚Ð¾Ð²Ñ– double]"
+
+#: elf32-rx.c:313
+#, c-format
+msgid "%B: invalid RX reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� RX: %d"
+
+#: elf32-rx.c:594
+#, c-format
+msgid "%B:%A: table entry %s outside table"
+msgstr "%B:%A: Ð·Ð°Ð¿Ð¸Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– %s Ð¿Ð¾Ð·Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÐµÑŽ"
+
+#: elf32-rx.c:601
+#, c-format
+msgid "%B:%A: table entry %s not word-aligned within table"
+msgstr "%B:%A: Ð·Ð°Ð¿Ð¸Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– %s Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾ Ð½Ð° Ð¼ÐµÐ¶Ñƒ Ñ�Ð»Ð¾Ð²Ð° Ð²Ñ�ÐµÑ€ÐµÐ´Ð¸Ð½Ñ– Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ–"
+
+#: elf32-rx.c:667
+#, c-format
 msgid "%B:%A: Warning: deprecated Red Hat reloc "
 msgstr "%B:%A: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð·Ð°Ñ�Ñ‚Ð°Ñ€Ñ–Ð»Ð¸Ð¹ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Red Hat "
 
@@ -2034,349 +3326,346 @@ msgstr "%B:%A: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�:
 #. an absolute address is being computed.  There are special cases
 #. for relocs against symbols that are known to be referenced in
 #. crt0.o before the PID base address register has been initialised.
-#: elf32-rx.c:581
+#: elf32-rx.c:686
+#, c-format
 msgid "%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)"
 msgstr "%B(%A): Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� PID %s Ð´Ð¾ 0x%08lx (Ñ‰Ð¾Ð´Ð¾ %s Ñƒ %s)"
 
-#: elf32-rx.c:1157
+#: elf32-rx.c:1266
 msgid "Warning: RX_SYM reloc with an unknown symbol"
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� RX_SYM Ð· Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼"
 
-#: elf32-rx.c:1324
-msgid "%B(%A): error: call to undefined function '%s'"
-msgstr "%B(%A): Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸ÐºÐ»Ð¸Ðº Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%sÂ»"
-
-#: elf32-rx.c:1338
-msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area"
-msgstr "%B(%A): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ Ð¼Ð°Ð»Ñ–Ð¹ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð´Ð°Ð½Ð¸Ñ…"
+#: elf32-rx.c:3145
+msgid "There is a conflict merging the ELF header flags from %B"
+msgstr "ÐŸÑ–Ð´ Ñ‡Ð°Ñ� Ñ�Ð¿Ñ€Ð¾Ð±Ð¸ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–Ð² Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° ELF Ð· %B Ð²Ð¸Ð½Ð¸Ðº ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚"
 
-#: elf32-rx.c:1342
-msgid "%B(%A): internal error: out of range error"
-msgstr "%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ"
-
-#: elf32-rx.c:1346
-msgid "%B(%A): internal error: unsupported relocation error"
-msgstr "%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
-
-#: elf32-rx.c:1350
-msgid "%B(%A): internal error: dangerous relocation"
-msgstr "%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
+#: elf32-rx.c:3148
+#, c-format
+msgid "  the input  file's flags: %s"
+msgstr "  Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– Ñ„Ð°Ð¹Ð»Ð° Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…: %s"
 
-#: elf32-rx.c:1354
-msgid "%B(%A): internal error: unknown error"
-msgstr "%B(%A): Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
+#: elf32-rx.c:3150
+#, c-format
+msgid "  the output file's flags: %s"
+msgstr "  Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– Ñ„Ð°Ð¹Ð»Ð° Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ–Ð²: %s"
 
-#: elf32-rx.c:3004
+#: elf32-rx.c:3757
 #, c-format
-msgid " [64-bit doubles]"
-msgstr " [64-Ð±Ñ–Ñ‚Ð¾Ð²Ñ– double]"
+msgid "%B:%A: table %s missing corresponding %s"
+msgstr "%B:%A: Ñƒ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– %s Ð½ÐµÐ¼Ð°Ñ” Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ð³Ð¾ %s"
 
-#: elf32-rx.c:3006
+#: elf32-rx.c:3765
 #, c-format
-msgid " [dsp]"
-msgstr " [dsp]"
+msgid "%B:%A: %s and %s must be in the same input section"
+msgstr "%B:%A: %s Ñ– %s Ð¼Ð°ÑŽÑ‚ÑŒ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ‚Ð¸ Ñƒ Ð¾Ð´Ð½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…"
 
-#: elf32-s390.c:2200 elf64-s390.c:2187
+#: elf32-s390.c:2310 elf64-s390.c:2257
+#, c-format
 msgid "%B(%A+0x%lx): invalid instruction for TLS relocation %s"
 msgstr "%B(%A+0x%lx): Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ� Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� TLS %s"
 
-#: elf32-score.c:1520 elf32-score7.c:1379 elfxx-mips.c:3435
+#: elf32-score.c:1521 elf32-score7.c:1382 elfxx-mips.c:3756
 msgid "not enough GOT space for local GOT entries"
 msgstr "Ð½ÐµÐ´Ð¾Ñ�Ñ‚Ð°Ñ‚Ð½ÑŒÐ¾ Ð¿Ñ€Ð¾Ñ�Ñ‚Ð¾Ñ€Ñƒ GOT Ð´Ð»Ñ� Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² GOT"
 
-#: elf32-score.c:2742
+#: elf32-score.c:2744
 msgid "address not word align"
 msgstr "Ð°Ð´Ñ€ÐµÑ�Ñƒ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾ Ð·Ð° Ð¼ÐµÐ¶ÐµÑŽ Ñ�Ð»Ð¾Ð²Ð°"
 
-#: elf32-score.c:2827 elf32-score7.c:2631
+#: elf32-score.c:2825 elf32-score7.c:2630
 #, c-format
-msgid "%s: Malformed reloc detected for section %s"
-msgstr "%s: Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑƒ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ– Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ�"
+msgid "%B: Malformed reloc detected for section %A"
+msgstr "%B: Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑƒ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ– Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ�"
 
-#: elf32-score.c:2878 elf32-score7.c:2682
+#: elf32-score.c:2883 elf32-score7.c:2688
+#, c-format
 msgid "%B: CALL15 reloc at 0x%lx not against global symbol"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CALL15 Ñƒ 0x%lx Ð½Ðµ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
 
-#: elf32-score.c:3997 elf32-score7.c:3803
+#: elf32-score.c:4005 elf32-score7.c:3810
 #, c-format
 msgid " [pic]"
 msgstr " [pic]"
 
-#: elf32-score.c:4001 elf32-score7.c:3807
+#: elf32-score.c:4009 elf32-score7.c:3814
 #, c-format
 msgid " [fix dep]"
 msgstr " [Ñ„Ñ–ÐºÑ�. Ñ€Ð¾Ð·Ñ‚.]"
 
-#: elf32-score.c:4043 elf32-score7.c:3849
+#: elf32-score.c:4052 elf32-score7.c:3857
 msgid "%B: warning: linking PIC files with non-PIC files"
 msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² PIC Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸, Ñ�ÐºÑ– Ð½Ðµ Ñ” Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ PIC"
 
 #: elf32-sh-symbian.c:130
+#, c-format
 msgid "%B: IMPORT AS directive for %s conceals previous IMPORT AS"
 msgstr "%B: Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð° IMPORT AS Ð´Ð»Ñ� %s Ð¿Ñ€Ð¸Ñ…Ð¾Ð²ÑƒÑ” Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŽ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ñƒ IMPORT AS"
 
-#: elf32-sh-symbian.c:383
+#: elf32-sh-symbian.c:384
+#, c-format
 msgid "%B: Unrecognised .directive command: %s"
 msgstr "%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° .directive: %s"
 
-#: elf32-sh-symbian.c:504
+#: elf32-sh-symbian.c:502
+#, c-format
 msgid "%B: Failed to add renamed symbol %s"
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð´Ð¾Ð´Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» %s"
 
-#: elf32-sh.c:568
-msgid "%B: 0x%lx: warning: bad R_SH_USES offset"
-msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ R_SH_USES"
-
-#: elf32-sh.c:580
-msgid "%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"
-msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_SH_USES Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñƒ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ 0x%x"
-
-#: elf32-sh.c:597
-msgid "%B: 0x%lx: warning: bad R_SH_USES load offset"
-msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ� R_SH_USES"
-
-#: elf32-sh.c:612
-msgid "%B: 0x%lx: warning: could not find expected reloc"
-msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
-
-#: elf32-sh.c:640
-msgid "%B: 0x%lx: warning: symbol in unexpected section"
-msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñƒ Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–"
-
-#: elf32-sh.c:766
-msgid "%B: 0x%lx: warning: could not find expected COUNT reloc"
-msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� COUNT"
-
-#: elf32-sh.c:775
-msgid "%B: 0x%lx: warning: bad count"
-msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸Ðº"
-
-#: elf32-sh.c:1179 elf32-sh.c:1549
-msgid "%B: 0x%lx: fatal: reloc overflow while relaxing"
-msgstr "%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ"
+#: elf32-sh.c:491
+#, c-format
+msgid "%B: unrecognised SH reloc number: %d"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� SH: %d"
 
-#: elf32-sh.c:4048 elf64-sh64.c:1514
+#: elf32-sh.c:3953 elf64-sh64.c:1508
 msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled"
 msgstr "Ð�ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ STO_SH5_ISA32 Ð½Ð°Ð´ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ Ð½Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¾"
 
-#: elf32-sh.c:4299
+#: elf32-sh.c:4206
+#, c-format
 msgid "%B: 0x%lx: fatal: unaligned branch target for relax-support relocation"
 msgstr "%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ðµ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ðµ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¾ÑŽ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ"
 
-#: elf32-sh.c:4332 elf32-sh.c:4347
+#: elf32-sh.c:4240 elf32-sh.c:4256
+#, c-format
 msgid "%B: 0x%lx: fatal: unaligned %s relocation 0x%lx"
 msgstr "%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s, 0x%lx"
 
-#: elf32-sh.c:4361
+#: elf32-sh.c:4271
+#, c-format
 msgid "%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32"
 msgstr "%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_SH_PSHA %d Ð½Ðµ Ñƒ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñ– -32..32"
 
-#: elf32-sh.c:4375
+#: elf32-sh.c:4286
+#, c-format
 msgid "%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32"
 msgstr "%B: 0x%lx: ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_SH_PSHL %d Ð½Ðµ Ñƒ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñ– -32..32"
 
-#: elf32-sh.c:4519 elf32-sh.c:4989
+#: elf32-sh.c:4431 elf32-sh.c:4903
+#, c-format
 msgid "%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section"
 msgstr "%B(%A+0x%lx): Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð°Ð´Ñ€ÐµÑ�Ð½Ñƒ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÑƒ Ð´Ð¾ Â«%sÂ» Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�"
 
-#: elf32-sh.c:5096
+#: elf32-sh.c:5005
+#, c-format
 msgid "%B(%A+0x%lx): %s relocation against external symbol \"%s\""
 msgstr "%B(%A+0x%lx): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð·Ð° Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ Â«%sÂ»"
 
-#: elf32-sh.c:5569
+#: elf32-sh.c:5469
 #, c-format
 msgid "%X%C: relocation to \"%s\" references a different segment\n"
 msgstr "%X%C: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Â«%sÂ» Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ–Ð½ÑˆÐ¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚\n"
 
-#: elf32-sh.c:5575
+#: elf32-sh.c:5476
 #, c-format
 msgid "%C: warning: relocation to \"%s\" references a different segment\n"
 msgstr "%C: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Â«%sÂ» Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ–Ð½ÑˆÐ¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚\n"
 
-#: elf32-sh.c:6353 elf32-sh.c:6436
+#: elf32-sh.c:6045 elf32-sh.c:6131
+#, c-format
 msgid "%B: `%s' accessed both as normal and FDPIC symbol"
 msgstr "%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Â«%sÂ» Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�Ðº Ð´Ð¾ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ‚Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ FDPIC"
 
-#: elf32-sh.c:6358 elf32-sh.c:6440
+#: elf32-sh.c:6051 elf32-sh.c:6136
+#, c-format
 msgid "%B: `%s' accessed both as FDPIC and thread local symbol"
 msgstr "%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Â«%sÂ» Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�Ðº Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ FDPIC, Ñ‚Ð°Ðº Ñ– Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð´Ð»Ñ� Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
 
-#: elf32-sh.c:6388
+#: elf32-sh.c:6082
 msgid "%B: Function descriptor relocation with non-zero addend"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´ÐµÑ�ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ñ€Ð° Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Ð· Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ð´Ð¾Ð´Ð°Ð½ÐºÐ¾Ð¼"
 
-#: elf32-sh.c:6624 elf64-alpha.c:4652
+#: elf32-sh.c:6320 elf64-alpha.c:4757
+#, c-format
 msgid "%B: TLS local exec code cannot be linked into shared objects"
 msgstr "%B: Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ ÐºÐ¾Ð´ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ TLS Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð¸ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
 
-#: elf32-sh64.c:223 elf64-sh64.c:2318
+#: elf32-sh.c:6435
 #, c-format
-msgid "%s: compiled as 32-bit object and %s is 64-bit"
-msgstr "%s: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñ�Ðº 32- Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚, Ð° %s Ñ” 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼"
+msgid "%B: uses %s instructions while previous modules use %s instructions"
+msgstr "%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— %s, Ñ…Ð¾Ñ‡Ð° Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— %s"
 
-#: elf32-sh64.c:226 elf64-sh64.c:2321
+#: elf32-sh.c:6447
 #, c-format
-msgid "%s: compiled as 64-bit object and %s is 32-bit"
-msgstr "%s: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñ�Ðº 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚, Ð° %s Ñ” 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼"
+msgid "internal error: merge of architecture '%s' with architecture '%s' produced unknown architecture"
+msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ� Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ Â«%sÂ» Ð· Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¾ÑŽ Â«%sÂ» Ð¿Ñ€Ð¸Ð·Ð²ÐµÐ»Ð¾ Ð´Ð¾ Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾Ñ— Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸"
+
+#: elf32-sh.c:6484
+msgid "%B: uses instructions which are incompatible with instructions used in previous modules"
+msgstr "%B: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ—, Ñ�ÐºÑ– Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ– Ñ–Ð· Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ�Ð¼Ð¸, Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¸Ð¼Ð¸ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ…"
 
-#: elf32-sh64.c:228 elf64-sh64.c:2323
+#: elf32-sh.c:6497
+msgid "%B: attempt to mix FDPIC and non-FDPIC objects"
+msgstr "%B: Ñ�Ð¿Ñ€Ð¾Ð±Ð° Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ�ÑƒÐ¼Ñ–Ñˆ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–Ð² FDPIC Ñ– Ð½Ðµ-FDPIC"
+
+#: elf32-sh64.c:225 elf64-sh64.c:2277
+#, c-format
+msgid "%B: compiled as 32-bit object and %B is 64-bit"
+msgstr "%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñ�Ðº 32- Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚, Ð° %B Ñ” 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼"
+
+#: elf32-sh64.c:229 elf64-sh64.c:2281
 #, c-format
-msgid "%s: object size does not match that of target %s"
-msgstr "%s: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¾Ð¼ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %s"
+msgid "%B: compiled as 64-bit object and %B is 32-bit"
+msgstr "%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ñ�Ðº 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚, Ð° %B Ñ” 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼"
 
-#: elf32-sh64.c:451 elf64-sh64.c:2837
+#: elf32-sh64.c:232 elf64-sh64.c:2284
 #, c-format
-msgid "%s: encountered datalabel symbol in input"
-msgstr "%s: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð¼Ñ–Ñ‚ÐºÐ¸ Ð´Ð°Ð½Ð¸Ñ… Ñƒ Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…"
+msgid "%B: object size does not match that of target %B"
+msgstr "%B: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¾Ð¼ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %B"
 
-#: elf32-sh64.c:528
+#: elf32-sh64.c:455 elf64-sh64.c:2776
+msgid "%B: encountered datalabel symbol in input"
+msgstr "%B: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð¼Ñ–Ñ‚ÐºÐ¸ Ð´Ð°Ð½Ð¸Ñ… Ñƒ Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…"
+
+#: elf32-sh64.c:531
 msgid "PTB mismatch: a SHmedia address (bit 0 == 1)"
 msgstr "Ð�ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ PTB: Ð°Ð´Ñ€ÐµÑ�Ð° SHmedia (Ð±Ñ–Ñ‚ 0 == 1)"
 
-#: elf32-sh64.c:531
+#: elf32-sh64.c:534
 msgid "PTA mismatch: a SHcompact address (bit 0 == 0)"
 msgstr "Ð�ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ PTA: Ð°Ð´Ñ€ÐµÑ�Ð° SHcompact (Ð±Ñ–Ñ‚ 0 == 0)"
 
-#: elf32-sh64.c:549
-#, c-format
-msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16"
-msgstr "%s: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° GAS: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ� PTB Ð· R_SH_PT_16"
+#: elf32-sh64.c:550
+msgid "%B: GAS error: unexpected PTB insn with R_SH_PT_16"
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° GAS: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ� PTB Ð· R_SH_PT_16"
 
-#: elf32-sh64.c:598
+#: elf32-sh64.c:600
+#, c-format
 msgid "%B: error: unaligned relocation type %d at %08x reloc %p\n"
 msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ñƒ %08x, Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %p\n"
 
-#: elf32-sh64.c:674
-#, c-format
-msgid "%s: could not write out added .cranges entries"
-msgstr "%s: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� Ð´Ð¾Ð´Ð°Ð½Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² .cranges"
-
-#: elf32-sh64.c:734
-#, c-format
-msgid "%s: could not write out sorted .cranges entries"
-msgstr "%s: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² .cranges"
+#: elf32-sh64.c:676
+msgid "%B: could not write out added .cranges entries"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� Ð´Ð¾Ð´Ð°Ð½Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² .cranges"
+
+#: elf32-sh64.c:735
+msgid "%B: could not write out sorted .cranges entries"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² .cranges"
 
-#: elf32-sparc.c:90
+#: elf32-sparc.c:89
 msgid "%B: compiled for a 64 bit system and target is 32 bit"
 msgstr "%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¾Ñ— Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¸, Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¾ÑŽ Ð¶ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ” 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð°"
 
-#: elf32-sparc.c:103
+#: elf32-sparc.c:102
 msgid "%B: linking little endian files with big endian files"
 msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð· Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²"
 
-#: elf32-spu.c:719
+#: elf32-spu.c:160
+#, c-format
+msgid "%B: unrecognised SPU reloc number: %d"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� SPU: %d"
+
+#: elf32-spu.c:726
 msgid "%X%P: overlay section %A does not start on a cache line.\n"
 msgstr "%X%P: Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸ %A Ð½Ðµ Ð¿Ð¾Ñ‡Ð¸Ð½Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ€Ñ�Ð´ÐºÐ° ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ�.\n"
 
-#: elf32-spu.c:727
+#: elf32-spu.c:734
 msgid "%X%P: overlay section %A is larger than a cache line.\n"
 msgstr "%X%P: Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸ %A Ñ” Ð±Ñ–Ð»ÑŒÑˆÐ¸Ð¼ Ð·Ð° Ñ€Ñ�Ð´Ð¾Ðº ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ�.\n"
 
-#: elf32-spu.c:747
+#: elf32-spu.c:754
 msgid "%X%P: overlay section %A is not in cache area.\n"
 msgstr "%X%P: Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸ %A Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ�.\n"
 
-#: elf32-spu.c:787
+#: elf32-spu.c:795
+#, c-format
 msgid "%X%P: overlay sections %A and %A do not start at the same address.\n"
 msgstr "%X%P: Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸, Ñ‰Ð¾ Ð½Ð°ÐºÐ»Ð°Ð´Ð°ÑŽÑ‚ÑŒÑ�Ñ�, %A Ñ– %A, Ð½Ðµ Ð¿Ð¾Ñ‡Ð¸Ð½Ð°ÑŽÑ‚ÑŒÑ�Ñ� Ð·Ð° Ð¾Ð´Ð½Ð¾ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ.\n"
 
-#: elf32-spu.c:1011
+#: elf32-spu.c:1021
+#, c-format
 msgid "warning: call to non-function symbol %s defined in %B"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸ÐºÐ»Ð¸Ðº Ð½ÐµÑ„ÑƒÐ½ÐºÑ†Ñ–Ð¾Ð½Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, %s, Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ Ñƒ %B"
 
-#: elf32-spu.c:1361
+#: elf32-spu.c:1371
+#, c-format
 msgid "%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n"
 msgstr "%A:0x%v .brinfo lrlive (%u) Ð²Ñ–Ð´Ñ€Ñ–Ð·Ð½Ñ�Ñ”Ñ‚ÑŒÑ�Ñ� Ð²Ñ–Ð´ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ ÑˆÐ»Ñ�Ñ…Ð¾Ð¼ Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ (%u)\n"
 
-#: elf32-spu.c:1880
+#: elf32-spu.c:1903
+#, c-format
 msgid "%B is not allowed to define %s"
 msgstr "%B Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ‚Ð¸ %s"
 
-#: elf32-spu.c:1888
+#: elf32-spu.c:1911
 #, c-format
 msgid "you are not allowed to define %s in a script"
 msgstr "Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ‚Ð¸ %s Ñƒ Ñ�ÐºÑ€Ð¸Ð¿Ñ‚Ñ–"
 
-#: elf32-spu.c:1922
+#: elf32-spu.c:1945
 #, c-format
 msgid "%s in overlay section"
 msgstr "%s Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸"
 
-#: elf32-spu.c:1951
+#: elf32-spu.c:1974
 msgid "overlay stub relocation overflow"
 msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸"
 
-#: elf32-spu.c:1960
+#: elf32-spu.c:1983
 msgid "stubs don't match calculated size"
 msgstr "ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸ Ð½Ðµ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°ÑŽÑ‚ÑŒ Ð¾Ð±Ñ‡Ð¸Ñ�Ð»ÐµÐ½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ"
 
-#: elf32-spu.c:2542
+#: elf32-spu.c:2566
 #, c-format
 msgid "warning: %s overlaps %s\n"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %s Ð¿ÐµÑ€ÐµÐºÑ€Ð¸Ð²Ð°Ñ” %s\n"
 
-#: elf32-spu.c:2558
+#: elf32-spu.c:2582
 #, c-format
 msgid "warning: %s exceeds section size\n"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %s Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ\n"
 
-#: elf32-spu.c:2589
+#: elf32-spu.c:2614
+#, c-format
 msgid "%A:0x%v not found in function table\n"
 msgstr "%A:0x%v Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ñƒ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹\n"
 
-#: elf32-spu.c:2729
+#: elf32-spu.c:2755
+#, c-format
 msgid "%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete\n"
 msgstr "%B(%A+0x%v): Ð²Ð¸ÐºÐ»Ð¸Ðº Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ ÐºÐ¾Ð´, %B(%A), Ð°Ð½Ð°Ð»Ñ–Ð· Ñ” Ð½ÐµÐ¿Ð¾Ð²Ð½Ð¸Ð¼\n"
 
-#: elf32-spu.c:3297
+#: elf32-spu.c:3324
 #, c-format
 msgid "Stack analysis will ignore the call from %s to %s\n"
 msgstr "ÐŸÑ–Ð´ Ñ‡Ð°Ñ� Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ Ñ�Ñ‚ÐµÐºÐ° Ð±ÑƒÐ´Ðµ Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾ Ð²Ð¸ÐºÐ»Ð¸Ðº Ð· %s Ð´Ð¾ %s\n"
 
-#: elf32-spu.c:3988
-msgid "  %s: 0x%v\n"
-msgstr "  %s: 0x%v\n"
-
-#: elf32-spu.c:3989
-msgid "%s: 0x%v 0x%v\n"
-msgstr "%s: 0x%v 0x%v\n"
-
-#: elf32-spu.c:3994
+#: elf32-spu.c:4021
 msgid "  calls:\n"
 msgstr "  Ð²Ð¸ÐºÐ»Ð¸ÐºÐ¸:\n"
 
-#: elf32-spu.c:4002
-#, c-format
-msgid "   %s%s %s\n"
-msgstr "   %s%s %s\n"
-
-#: elf32-spu.c:4307
+#: elf32-spu.c:4335
 #, c-format
 msgid "%s duplicated in %s\n"
 msgstr "%s Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€ÑŽÑ”Ñ‚ÑŒÑ�Ñ� Ñƒ %s\n"
 
-#: elf32-spu.c:4311
+#: elf32-spu.c:4339
 #, c-format
 msgid "%s duplicated\n"
 msgstr "%s Ð´ÑƒÐ±Ð»ÑŒÐ¾Ð²Ð°Ð½Ð¾\n"
 
-#: elf32-spu.c:4318
+#: elf32-spu.c:4346
 msgid "sorry, no support for duplicate object files in auto-overlay script\n"
 msgstr "Ð²Ð¸Ð±Ð°Ñ‡Ñ‚Ðµ, Ñƒ Ñ�ÐºÑ€Ð¸Ð¿Ñ‚Ñ– Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ Ð½Ð°ÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ� Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð².\n"
 
-#: elf32-spu.c:4359
+#: elf32-spu.c:4388
+#, c-format
 msgid "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store\n"
 msgstr "Ñ�ÑƒÐ¼Ð° Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ 0x%v Ð±ÐµÐ· Ð¾Ð²ÐµÑ€Ð»ÐµÑŽ Ñ‚Ð° Ð¼Ð°ÐºÑ�Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð¾Ð²ÐµÑ€Ð»ÐµÑŽ 0x%v Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑŽÑ‚ÑŒ Ð¼Ñ–Ñ�Ñ‚ÐºÑ–Ñ�Ñ‚ÑŒ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ñ…Ð¾Ð²Ð¸Ñ‰Ð° Ð´Ð°Ð½Ð¸Ñ…\n"
 
-#: elf32-spu.c:4514
+#: elf32-spu.c:4544
+#, c-format
 msgid "%B:%A%s exceeds overlay size\n"
 msgstr "%B:%A%s Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð½Ð°ÐºÐ»Ð°Ð´ÐºÐ¸\n"
 
-#: elf32-spu.c:4676
+#: elf32-spu.c:4685
+msgid "%F%P: auto overlay error: %E\n"
+msgstr "%F%P: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð°Ð²Ñ‚Ð¾Ð½Ð°ÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ�: %E\n"
+
+#: elf32-spu.c:4706
 msgid "Stack size for call graph root nodes.\n"
 msgstr "Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ñ‚ÐµÐºÐ° Ð´Ð»Ñ� ÐºÐ¾Ñ€ÐµÐ½ÐµÐ²Ð¸Ñ… Ð²ÑƒÐ·Ð»Ñ–Ð² Ð³Ñ€Ð°Ñ„Ñƒ Ð²Ð¸ÐºÐ»Ð¸ÐºÑ–Ð².\n"
 
-#: elf32-spu.c:4677
+#: elf32-spu.c:4707
 msgid ""
 "\n"
 "Stack size for functions.  Annotations: '*' max stack, 't' tail call\n"
@@ -2384,283 +3673,618 @@ msgstr ""
 "\n"
 "Ð Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ñ‚ÐµÐºÐ° Ð´Ð»Ñ� Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹. ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�: Â«*Â» Ð¼Ð°ÐºÑ�Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð° Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ� Ñƒ Ñ�Ñ‚ÐµÐºÑƒ, Â«tÂ» Ñ…Ð²Ð¾Ñ�Ñ‚Ð¾Ð²Ð¸Ð¹ Ð²Ð¸ÐºÐ»Ð¸Ðº\n"
 
-#: elf32-spu.c:4687
+#: elf32-spu.c:4717
 msgid "Maximum stack required is 0x%v\n"
 msgstr "ÐœÐ°ÐºÑ�Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ñ‚ÐµÐºÐ° â€” 0x%v\n"
 
-#: elf32-spu.c:4778
+#: elf32-spu.c:4736
+msgid "%X%P: stack/lrlive analysis error: %E\n"
+msgstr "%X%P: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ Ñ�Ñ‚ÐµÐºÐ°/lrlive: %E\n"
+
+#: elf32-spu.c:4739
+msgid "%F%P: can not build overlay stubs: %E\n"
+msgstr "%F%P: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ñ–Ð±Ñ€Ð°Ñ‚Ð¸ Ð½Ð°ÐºÐ»Ð°Ð´Ð½Ñ– ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸: %E\n"
+
+#: elf32-spu.c:4808
 msgid "fatal error while creating .fixup"
 msgstr "ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ð¿Ñ€Ð¾Ð±Ð¸ Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� .fixup"
 
-#: elf32-spu.c:5008
+#: elf32-spu.c:5043
+#, c-format
 msgid "%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'"
 msgstr "%B(%s+0x%lx): Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»"
 
-#: elf32-tic6x.c:1602
+#: elf32-tic6x.c:1596
 msgid "warning: generating a shared library containing non-PIC code"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ñ‚Ð²Ð¾Ñ€ÑŽÑ”Ñ‚ÑŒÑ�Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�, Ñ�ÐºÐ° Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ ÐºÐ¾Ð´, Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¹ Ð· PIC"
 
-#: elf32-tic6x.c:1607
+#: elf32-tic6x.c:1601
 msgid "warning: generating a shared library containing non-PID code"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ñ‚Ð²Ð¾Ñ€ÑŽÑ”Ñ‚ÑŒÑ�Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�, Ñ�ÐºÐ° Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ ÐºÐ¾Ð´, Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¹ Ð· PID"
 
-#: elf32-tic6x.c:2541
+#: elf32-tic6x.c:2525
 msgid "%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ SB, Ð°Ð»Ðµ __c6xabi_DSBT_BASE Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
 
-#: elf32-tic6x.c:2761
-msgid "dangerous relocation"
-msgstr "Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
-
-#: elf32-tic6x.c:3733
+#: elf32-tic6x.c:3651
+#, c-format
 msgid "%B: error: unknown mandatory EABI object attribute %d"
 msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¾Ð±Ð¾Ð²â€™Ñ�Ð·ÐºÐ¾Ð²Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° EABI, %d"
 
-#: elf32-tic6x.c:3741
+#: elf32-tic6x.c:3660
+#, c-format
 msgid "%B: warning: unknown EABI object attribute %d"
 msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° EABI, %d"
 
-#: elf32-tic6x.c:3853 elf32-tic6x.c:3861
+#: elf32-tic6x.c:3774 elf32-tic6x.c:3783
+#, c-format
 msgid "error: %B requires more stack alignment than %B preserves"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” Ð±Ñ–Ð»ÑŒÑˆÐ¾Ð³Ð¾ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� Ñ�Ñ‚ÐµÐºÐ°, Ð½Ñ–Ð¶ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾ Ñƒ %B"
 
-#: elf32-tic6x.c:3871 elf32-tic6x.c:3880
+#: elf32-tic6x.c:3793 elf32-tic6x.c:3802
 msgid "error: unknown Tag_ABI_array_object_alignment value in %B"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Tag_ABI_array_object_alignment Ñƒ %B"
 
-#: elf32-tic6x.c:3889 elf32-tic6x.c:3898
+#: elf32-tic6x.c:3811 elf32-tic6x.c:3820
 msgid "error: unknown Tag_ABI_array_object_align_expected value in %B"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Tag_ABI_array_object_align_expected Ñƒ %B"
 
-#: elf32-tic6x.c:3906 elf32-tic6x.c:3913
+#: elf32-tic6x.c:3829 elf32-tic6x.c:3837
+#, c-format
 msgid "error: %B requires more array alignment than %B preserves"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” Ð±Ñ–Ð»ÑŒÑˆÐ¾Ð³Ð¾ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� Ð¼Ð°Ñ�Ð¸Ð²Ñƒ, Ð½Ñ–Ð¶ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾ Ñƒ %B"
 
-#: elf32-tic6x.c:3935
+#: elf32-tic6x.c:3860
+#, c-format
 msgid "warning: %B and %B differ in wchar_t size"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ñ– %B Ð²Ñ–Ð´Ñ€Ñ–Ð·Ð½Ñ�ÑŽÑ‚ÑŒÑ�Ñ� Ð·Ð° Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¾Ð¼ wchar_t"
 
-#: elf32-tic6x.c:3953
+#: elf32-tic6x.c:3879
+#, c-format
 msgid "warning: %B and %B differ in whether code is compiled for DSBT"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ñ– %B Ð²Ñ–Ð´Ñ€Ñ–Ð·Ð½Ñ�ÑŽÑ‚ÑŒÑ�Ñ� Ð·Ð° Ñ‚Ð¸Ð¼, Ñ‡Ð¸ Ð±ÑƒÐ»Ð¾ Ñ—Ñ… Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� DSBT"
 
-#: elf32-v850.c:173
+#: elf32-v850.c:157
 #, c-format
 msgid "Variable `%s' cannot occupy in multiple small data regions"
 msgstr "Ð—Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð·Ð°Ð¹Ð¼Ð°Ñ‚Ð¸ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ð¼Ð°Ð»Ð¸Ñ… Ð¾Ð±Ð»Ð°Ñ�Ñ‚ÐµÐ¹ Ð´Ð°Ð½Ð¸Ñ…"
 
-#: elf32-v850.c:176
+#: elf32-v850.c:160
 #, c-format
 msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions"
 msgstr "Ð—Ð¼Ñ–Ð½Ð½Ñƒ Â«%sÂ» Ð¼Ð¾Ð¶Ð½Ð° Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ Ñƒ Ð¾Ð´Ð½Ñ–Ð¹ Ð· Ð¼Ð°Ð»Ð¸Ñ…, Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ñ… Ñ– Ð¼Ð°Ð»ÑŽÑ�Ñ–Ð½ÑŒÐºÐ¸Ñ… Ð¾Ð±Ð»Ð°Ñ�Ñ‚ÐµÐ¹ Ð´Ð°Ð½Ð¸Ñ…"
 
-#: elf32-v850.c:179
+#: elf32-v850.c:163
 #, c-format
 msgid "Variable `%s' cannot be in both small and zero data regions simultaneously"
 msgstr "Ð—Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ‚Ð¸Ñ�Ñ� Ñƒ Ð¼Ð°Ð»Ñ–Ð¹ Ñ– Ð½ÑƒÐ»ÑŒÐ¾Ð²Ñ–Ð¹ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð´Ð°Ð½Ð¸Ñ… Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ�Ð½Ð¾"
 
-#: elf32-v850.c:182
+#: elf32-v850.c:166
 #, c-format
 msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously"
 msgstr "Ð—Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ‚Ð¸Ñ�Ñ� Ñƒ Ð¼Ð°Ð»Ñ–Ð¹ Ñ– Ð¼Ð°Ð»ÑŽÑ�Ñ–Ð½ÑŒÐºÑ–Ð¹ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð´Ð°Ð½Ð¸Ñ… Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ�Ð½Ð¾"
 
-#: elf32-v850.c:185
+#: elf32-v850.c:169
 #, c-format
 msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously"
 msgstr "Ð—Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ‚Ð¸Ñ�Ñ� Ñƒ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ñ–Ð¹ Ñ– Ð¼Ð°Ð»ÑŽÑ�Ñ–Ð½ÑŒÐºÑ–Ð¹ Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð´Ð°Ð½Ð¸Ñ… Ð¾Ð´Ð½Ð¾Ñ‡Ð°Ñ�Ð½Ð¾"
 
-#: elf32-v850.c:483
+#: elf32-v850.c:467
 msgid "FAILED to find previous HI16 reloc"
 msgstr "Ð�Ð• Ð’Ð”Ð�Ð›ÐžÐ¡Ð¯ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ” Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� HI16"
 
-#: elf32-v850.c:2155
+#: elf32-v850.c:1902 elf32-v850.c:1921
+#, c-format
+msgid "%B: invalid V850 reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� V850: %d"
+
+#: elf32-v850.c:2299
 msgid "could not locate special linker symbol __gp"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ° __gp"
 
-#: elf32-v850.c:2159
+#: elf32-v850.c:2303
 msgid "could not locate special linker symbol __ep"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ° __ep"
 
-#: elf32-v850.c:2163
+#: elf32-v850.c:2307
 msgid "could not locate special linker symbol __ctbp"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ�Ð¿ÐµÑ†Ñ–Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ° __ctbp"
 
-#: elf32-v850.c:2341
+#: elf32-v850.c:2528
+#, c-format
+msgid "error: %B needs 8-byte aligment but %B is set for 4-byte alignment"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” 8-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¾Ð³Ð¾ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ�, Ð°Ð»Ðµ %B Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²Ð°Ð½Ð¾ Ð½Ð° 4-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ�"
+
+#: elf32-v850.c:2544
+#, c-format
+msgid "error: %B uses 64-bit doubles but %B uses 32-bit doubles"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ 64-Ð±Ñ–Ñ‚Ð¾Ð²Ñ– Ð´Ñ–Ð¹Ñ�Ð½Ñ– Ñ‡Ð¸Ñ�Ð»Ð° Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾Ñ— Ñ‚Ð¾Ñ‡Ð½Ð¾Ñ�Ñ‚Ñ–, Ð° Ñƒ %B â€” 32-Ð±Ñ–Ñ‚Ð¾Ð²Ñ–"
+
+#: elf32-v850.c:2559
+#, c-format
+msgid "error: %B uses FPU-3.0 but %B only supports FPU-2.0"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ FPU-3.0, Ð°Ð»Ðµ Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð»Ð¸ÑˆÐµ FPU-2.0"
+
+#: elf32-v850.c:2591
+#, c-format
+msgid " alignment of 8-byte entities: "
+msgstr " Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� 8-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð²: "
+
+#: elf32-v850.c:2594
+#, c-format
+msgid "4-byte"
+msgstr "4-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¹"
+
+#: elf32-v850.c:2595
+#, c-format
+msgid "8-byte"
+msgstr "8-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¹"
+
+#: elf32-v850.c:2596 elf32-v850.c:2608
+#, c-format
+msgid "not set"
+msgstr "Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾"
+
+#: elf32-v850.c:2597 elf32-v850.c:2609 elf32-v850.c:2621 elf32-v850.c:2632
+#: elf32-v850.c:2643 elf32-v850.c:2654
+#, c-format
+msgid "unknown: %x"
+msgstr "Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾: %x"
+
+#: elf32-v850.c:2603
+#, c-format
+msgid " size of doubles: "
+msgstr " Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ double: "
+
+#: elf32-v850.c:2606
+#, c-format
+msgid "4-bytes"
+msgstr "4-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ñ–"
+
+#: elf32-v850.c:2607
+#, c-format
+msgid "8-bytes"
+msgstr "8-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ñ–"
+
+#: elf32-v850.c:2615
+#, c-format
+msgid " FPU support required: "
+msgstr " ÐŸÐ¾Ñ‚Ñ€Ñ–Ð±Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° FPU: "
+
+#: elf32-v850.c:2618
+#, c-format
+msgid "FPU-2.0"
+msgstr "FPU-2.0"
+
+#: elf32-v850.c:2619
+#, c-format
+msgid "FPU-3.0"
+msgstr "FPU-3.0"
+
+#: elf32-v850.c:2620
+#, c-format
+msgid "none"
+msgstr "Ð½ÐµÐ¼Ð°Ñ”"
+
+#: elf32-v850.c:2627
+#, c-format
+msgid "SIMD use: "
+msgstr "Ð’Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� SIMD: "
+
+#: elf32-v850.c:2630 elf32-v850.c:2641 elf32-v850.c:2652
+#, c-format
+msgid "yes"
+msgstr "Ñ‚Ð°Ðº"
+
+#: elf32-v850.c:2631 elf32-v850.c:2642 elf32-v850.c:2653
+#, c-format
+msgid "no"
+msgstr "Ð½Ñ–"
+
+#: elf32-v850.c:2638
+#, c-format
+msgid "CACHE use: "
+msgstr "Ð’Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� CACHE: "
+
+#: elf32-v850.c:2649
+#, c-format
+msgid "MMU use: "
+msgstr "Ð’Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� MMU: "
+
+#: elf32-v850.c:2816 elf32-v850.c:2872
 msgid "%B: Architecture mismatch with previous modules"
 msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€ Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸"
 
 #. xgettext:c-format.
-#: elf32-v850.c:2360
+#: elf32-v850.c:2890
 #, c-format
 msgid "private flags = %lx: "
 msgstr "Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– = %lx: "
 
-#: elf32-v850.c:2365
+#: elf32-v850.c:2895
+#, c-format
+msgid "unknown v850 architecture"
+msgstr "Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850"
+
+#: elf32-v850.c:2897
+#, c-format
+msgid "v850 E3 architecture"
+msgstr "Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850 E3"
+
+#: elf32-v850.c:2899 elf32-v850.c:2906
 #, c-format
 msgid "v850 architecture"
 msgstr "Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850"
 
-#: elf32-v850.c:2366
+#: elf32-v850.c:2907
 #, c-format
 msgid "v850e architecture"
 msgstr "Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850e"
 
-#: elf32-v850.c:2367
+#: elf32-v850.c:2908
 #, c-format
 msgid "v850e1 architecture"
 msgstr "Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850e1"
 
-#: elf32-v850.c:2368
+#: elf32-v850.c:2909
 #, c-format
 msgid "v850e2 architecture"
 msgstr "Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850e2"
 
-#: elf32-v850.c:2369
+#: elf32-v850.c:2910
 #, c-format
 msgid "v850e2v3 architecture"
 msgstr "Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850e2v3"
 
-#: elf32-vax.c:532
+#: elf32-v850.c:2911
+#, c-format
+msgid "v850e3v5 architecture"
+msgstr "Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° v850e3v5"
+
+#: elf32-v850.c:3605
+#, c-format
+msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insns"
+msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_V850_LONGCALL Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñ– Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ—"
+
+#: elf32-v850.c:3615
+#, c-format
+msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized insn 0x%x"
+msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_V850_LONGCALL Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñƒ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ 0x%x"
+
+#: elf32-v850.c:3660
+#, c-format
+msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc"
+msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_V850_LONGCALL Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
+
+#: elf32-v850.c:3700
+#, c-format
+msgid "%B: 0x%lx: warning: R_V850_LONGCALL points to unrecognized reloc 0x%lx"
+msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_V850_LONGCALL Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� 0x%lx"
+
+#: elf32-v850.c:3843
+#, c-format
+msgid "%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insns"
+msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_V850_LONGJUMP Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñ– Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ—"
+
+#: elf32-v850.c:3853
+#, c-format
+msgid "%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized insn 0x%x"
+msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_V850_LONGJUMP Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñƒ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ 0x%x"
+
+#: elf32-v850.c:3887
+#, c-format
+msgid "%B: 0x%lx: warning: R_V850_LONGJUMP points to unrecognized reloc"
+msgstr "%B: 0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: R_V850_LONGJUMP Ð²ÐºÐ°Ð·ÑƒÑ” Ð½Ð° Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
+
+#: elf32-vax.c:290
+#, c-format
+msgid "%B: unrecognised VAX reloc number: %d"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� VAX: %d"
+
+#: elf32-vax.c:539
 #, c-format
 msgid " [nonpic]"
 msgstr " [Ð½Ðµ-pic]"
 
-#: elf32-vax.c:535
+#: elf32-vax.c:542
 #, c-format
 msgid " [d-float]"
 msgstr " [d-float]"
 
-#: elf32-vax.c:538
+#: elf32-vax.c:545
 #, c-format
 msgid " [g-float]"
 msgstr " [g-float]"
 
-#: elf32-vax.c:655
+#: elf32-vax.c:635
+#, c-format
+msgid "%B: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº GOT %ld Ð´Ð¾ Â«%sÂ» Ð½Ðµ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ” Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð¼Ñƒ Ð´Ð¾Ð´Ð°Ð½ÐºÑƒ GOT %ld"
+
+#: elf32-vax.c:1511
+#, c-format
+msgid "%B: warning: PLT addend of %d to `%s' from %A section ignored"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº PLT %d Ð´Ð¾ Â«%sÂ» Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾"
+
+#: elf32-vax.c:1636
 #, c-format
-msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld"
-msgstr "%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº GOT %ld Ð´Ð¾ Â«%sÂ» Ð½Ðµ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ” Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð¼Ñƒ Ð´Ð¾Ð´Ð°Ð½ÐºÑƒ GOT %ld"
+msgid "%B: warning: %s relocation against symbol `%s' from %A section"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A"
 
-#: elf32-vax.c:1585
+#: elf32-vax.c:1643
 #, c-format
-msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored"
-msgstr "%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº PLT %d Ð´Ð¾ Â«%sÂ» Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾"
+msgid "%B: warning: %s relocation to 0x%x from %A section"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð¾ 0x%x Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A"
 
-#: elf32-vax.c:1712
+#: elf32-visium.c:481
 #, c-format
-msgid "%s: warning: %s relocation against symbol `%s' from %s section"
-msgstr "%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s"
+msgid "%B: invalid Visium reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Visium: %d"
 
-#: elf32-vax.c:1718
+#: elf32-visium.c:817
 #, c-format
-msgid "%s: warning: %s relocation to 0x%x from %s section"
-msgstr "%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð¾ 0x%x Ð· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s"
+msgid "%B: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s"
+msgstr "%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ %s -mtune=%s Ñ– Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾ Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸, Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¸Ð¼Ð¸ %s -mtune=%s"
 
-#: elf32-xstormy16.c:451 elf32-ia64.c:2336 elf64-ia64.c:2336
+#: elf32-xgate.c:428
+#, c-format
+msgid "%B: invalid XGate reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� XGate: %d"
+
+#: elf32-xgate.c:681
+#, c-format
+msgid "cpu=XGATE]"
+msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€=XGATE]"
+
+#: elf32-xgate.c:683
+#, c-format
+msgid "error reading cpu type from elf private data"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ñ‚Ð¸Ð¿Ñƒ Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€Ð° Ð· Ð¿Ñ€Ð¸Ð²Ð°Ñ‚Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… elf"
+
+#: elf32-xstormy16.c:453 elf64-ia64-vms.c:2074 elf32-ia64.c:2334
+#: elf64-ia64.c:2334
 msgid "non-zero addend in @fptr reloc"
 msgstr "Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– @fptr"
 
-#: elf32-xtensa.c:918
+#: elf32-xtensa.c:485
+#, c-format
+msgid "%B: invalid XTENSA reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� XTENSA: %d"
+
+#: elf32-xtensa.c:926
+#, c-format
 msgid "%B(%A): invalid property table"
 msgstr "%B(%A): Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð²Ð»Ð°Ñ�Ñ‚Ð¸Ð²Ð¾Ñ�Ñ‚ÐµÐ¹"
 
-#: elf32-xtensa.c:2777
+#: elf32-xtensa.c:2790
+#, c-format
 msgid "%B(%A+0x%lx): relocation offset out of range (size=0x%x)"
 msgstr "%B(%A+0x%lx): Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ð·Ð° Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼ (Ñ€Ð¾Ð·Ð¼Ñ–Ñ€=0x%x)"
 
-#: elf32-xtensa.c:2856 elf32-xtensa.c:2977
+#: elf32-xtensa.c:2871 elf32-xtensa.c:2990
 msgid "dynamic relocation in read-only section"
 msgstr "Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�"
 
-#: elf32-xtensa.c:2953
+#: elf32-xtensa.c:2967
 msgid "TLS relocation invalid without dynamic sections"
 msgstr "ÐŸÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� TLS Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¼ Ð±ÐµÐ· Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ñ… Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð²"
 
-#: elf32-xtensa.c:3172
+#: elf32-xtensa.c:3178
 msgid "internal inconsistency in size of .got.loc section"
 msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð½ÐµÐ¿Ð¾Ñ�Ð»Ñ–Ð´Ð¾Ð²Ð½Ñ–Ñ�Ñ‚ÑŒ Ñƒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð°Ñ… Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .got.loc"
 
 #: elf32-xtensa.c:3485
+#, c-format
 msgid "%B: incompatible machine type. Output is 0x%x. Input is 0x%x"
 msgstr "%B: Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ– Ñ‚Ð¸Ð¿Ð¸ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€. Ð’Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� â€” 0x%x. Ð’Ñ…Ñ–Ð´Ð½Ñ– Ð´Ð°Ð½Ñ– â€” 0x%x"
 
-#: elf32-xtensa.c:4714 elf32-xtensa.c:4722
+#: elf32-xtensa.c:4716 elf32-xtensa.c:4724
 msgid "Attempt to convert L32R/CALLX to CALL failed"
 msgstr "Ð¡Ð¿Ñ€Ð¾Ð±Ð° Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� L32R/CALLX Ð½Ð° CALL Ð·Ð°Ð·Ð½Ð°Ð»Ð° Ð½ÐµÐ²Ð´Ð°Ñ‡Ñ–"
 
-#: elf32-xtensa.c:6332 elf32-xtensa.c:6408 elf32-xtensa.c:7524
+#: elf32-xtensa.c:6552 elf32-xtensa.c:6629 elf32-xtensa.c:8002
+#, c-format
 msgid "%B(%A+0x%lx): could not decode instruction; possible configuration mismatch"
 msgstr "%B(%A+0x%lx): Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ñ‚Ð¸ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ, Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð° Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ð¹"
 
-#: elf32-xtensa.c:7264
+#: elf32-xtensa.c:7743
+#, c-format
 msgid "%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch"
 msgstr "%B(%A+0x%lx): Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ñ‚Ð¸ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–ÑŽ Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� XTENSA_ASM_SIMPLIFY, Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð° Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ð¹"
 
-#: elf32-xtensa.c:9023
+#: elf32-xtensa.c:9585
 msgid "invalid relocation address"
 msgstr "Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
 
-#: elf32-xtensa.c:9072
+#: elf32-xtensa.c:9635
 msgid "overflow after relaxation"
 msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿Ñ–Ñ�Ð»Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ"
 
-#: elf32-xtensa.c:10204
+#: elf32-xtensa.c:10779
+#, c-format
 msgid "%B(%A+0x%lx): unexpected fix for %s relocation"
 msgstr "%B(%A+0x%lx): Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ðµ Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ� Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s"
 
-#: elf64-alpha.c:460
+#: elf64-alpha.c:472
 msgid "GPDISP relocation did not find ldah and lda instructions"
 msgstr "ÐŸÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼ GPDISP Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— ldah Ñ– lda"
 
-#: elf64-alpha.c:2497
+#: elf64-alpha.c:1112
+#, c-format
+msgid "%B: unrecognised Alpha reloc number: %d"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Alpha: %d"
+
+#: elf64-alpha.c:2529
+#, c-format
 msgid "%B: .got subsegment exceeds 64K (size %d)"
 msgstr "%B: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¿Ñ–Ð´Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð° .got Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” 64ÐºÐ‘ (Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ â€” %d)"
 
-#: elf64-alpha.c:4387 elf64-alpha.c:4399
+#: elf64-alpha.c:3084
+#, c-format
+msgid "%B: %A+0x%lx: warning: %s relocation against unexpected insn"
+msgstr "%B: %A+0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¾Ñ— Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ—"
+
+#: elf64-alpha.c:3280
+#, c-format
+msgid "%B: %A+0x%lx: warning: LITERAL relocation against unexpected insn"
+msgstr "%B: %A+0x%lx: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� LITERAL Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¾Ñ— Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ—"
+
+#: elf64-alpha.c:4481 elf64-alpha.c:4494
+#, c-format
 msgid "%B: gp-relative relocation against dynamic symbol %s"
 msgstr "%B: gp-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
 
-#: elf64-alpha.c:4425 elf64-alpha.c:4565
+#: elf64-alpha.c:4521 elf64-alpha.c:4665
+#, c-format
 msgid "%B: pc-relative relocation against dynamic symbol %s"
 msgstr "%B: pc-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
 
-#: elf64-alpha.c:4453
+#: elf64-alpha.c:4550
+#, c-format
 msgid "%B: change in gp: BRSGP %s"
 msgstr "%B: Ð·Ð¼Ñ–Ð½Ð° Ñƒ gp: BRSGP %s"
 
-#: elf64-alpha.c:4478
+#: elf64-alpha.c:4575
 msgid "<unknown>"
 msgstr "<Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð°>"
 
-#: elf64-alpha.c:4483
+#: elf64-alpha.c:4581
+#, c-format
 msgid "%B: !samegp reloc against symbol without .prologue: %s"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� !samegp Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð±ÐµÐ· .prologue: %s"
 
-#: elf64-alpha.c:4540
+#: elf64-alpha.c:4639
+#, c-format
 msgid "%B: unhandled dynamic relocation against %s"
 msgstr "%B: Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ðµ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ %s"
 
-#: elf64-alpha.c:4572
+#: elf64-alpha.c:4674
+#, c-format
 msgid "%B: pc-relative relocation against undefined weak symbol %s"
 msgstr "%B: pc-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ Ñ�Ð»Ð°Ð±ÐºÐ¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
 
-#: elf64-alpha.c:4636
+#: elf64-alpha.c:4740
+#, c-format
 msgid "%B: dtp-relative relocation against dynamic symbol %s"
 msgstr "%B: dtp-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
 
-#: elf64-alpha.c:4659
+#: elf64-alpha.c:4765
+#, c-format
 msgid "%B: tp-relative relocation against dynamic symbol %s"
 msgstr "%B: tp-Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
 
-#: elf64-hppa.c:2083
+#: elf64-hppa.c:2082
 #, c-format
 msgid "stub entry for %s cannot load .plt, dp offset = %ld"
 msgstr "ÑˆÐ°Ð±Ð»Ð¾Ð½ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ Ð´Ð»Ñ� %s Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‚Ð¸ .plt, Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ dp = %ld"
 
-#: elf64-hppa.c:3275
-msgid "%B(%A+0x"
-msgstr "%B(%A+0x"
+#: elf64-hppa.c:3287
+#, c-format
+msgid "%B(%A+0x%"
+msgstr "%B(%A+0x%"
+
+#: elf64-ia64-vms.c:587 elf32-ia64.c:620 elf64-ia64.c:620
+#, c-format
+msgid "%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch."
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ br Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ». Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ñ�ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð¹Ñ‚ÐµÑ�Ñ� brl Ð°Ð±Ð¾ Ð½ÐµÐ¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ�Ð¼."
+
+#: elf64-ia64-vms.c:2029 elf32-ia64.c:2282 elf64-ia64.c:2282
+msgid "@pltoff reloc against local symbol"
+msgstr "Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� @pltoff Ñ‰Ð¾Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
+
+#: elf64-ia64-vms.c:3282 elf32-ia64.c:3688 elf64-ia64.c:3688
+#, c-format
+msgid "%B: short data segment overflowed (0x%lx >= 0x400000)"
+msgstr "%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð¾ ÐºÐ¾Ñ€Ð¾Ñ‚ÐºÐ¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚ Ð´Ð°Ð½Ð¸Ñ… (0x%lx >= 0x400000)"
+
+#: elf64-ia64-vms.c:3292 elf32-ia64.c:3698 elf64-ia64.c:3698
+msgid "%B: __gp does not cover short data segment"
+msgstr "%B: __gp Ð½Ðµ Ð²ÐºÑ€Ð¸Ð²Ð°Ñ” ÐºÐ¾Ñ€Ð¾Ñ‚ÐºÐ¾Ð³Ð¾ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð° Ð´Ð°Ð½Ð¸Ñ…"
+
+#: elf64-ia64-vms.c:3558 elf32-ia64.c:3965 elf64-ia64.c:3965
+#, c-format
+msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'"
+msgstr "%B: Ð½Ðµ-pic ÐºÐ¾Ð´ Ð· Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼ imm Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»"
+
+#: elf64-ia64-vms.c:3622 elf32-ia64.c:4033 elf64-ia64.c:4033
+#, c-format
+msgid "%B: @gprel relocation against dynamic symbol %s"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� @gprel Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
+
+#: elf64-ia64-vms.c:3681 elf32-ia64.c:4096 elf64-ia64.c:4096
+msgid "%B: linking non-pic code in a position independent executable"
+msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½Ðµ-pic ÐºÐ¾Ð´Ñƒ Ñƒ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Ð· Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¼ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼"
+
+#: elf64-ia64-vms.c:3783 elf32-ia64.c:4234 elf64-ia64.c:4234
+#, c-format
+msgid "%B: @internal branch to dynamic symbol %s"
+msgstr "%B: Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� @internal Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
+
+#: elf64-ia64-vms.c:3786 elf32-ia64.c:4237 elf64-ia64.c:4237
+#, c-format
+msgid "%B: speculation fixup to dynamic symbol %s"
+msgstr "%B: Ð·Ð´Ð¾Ð³Ð°Ð´ÐºÐ° Ñ‰Ð¾Ð´Ð¾ Ð°Ð´Ñ€ÐµÑ�Ð½Ð¾Ñ— Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
+
+#: elf64-ia64-vms.c:3789 elf32-ia64.c:4240 elf64-ia64.c:4240
+#, c-format
+msgid "%B: @pcrel relocation against dynamic symbol %s"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� @pcrel Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
+
+#: elf64-ia64-vms.c:3913 elf32-ia64.c:4437 elf64-ia64.c:4437
+msgid "unsupported reloc"
+msgstr "Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
+
+#: elf64-ia64-vms.c:3950 elf32-ia64.c:4475 elf64-ia64.c:4475
+#, c-format
+msgid "%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'."
+msgstr "%B: Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ TLS Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»."
+
+#: elf64-ia64-vms.c:3967 elf32-ia64.c:4492 elf64-ia64.c:4492
+#, c-format
+msgid "%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000)."
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ br (%s) Ð´Ð¾ Â«%sÂ» Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» Ð· Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¾Ð¼ 0x%lx (> 0x1000000)."
+
+#: elf64-ia64-vms.c:4258 elf32-ia64.c:4749 elf64-ia64.c:4749
+msgid "%B: linking trap-on-NULL-dereference with non-trapping files"
+msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� trap-on-NULL-dereference Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· Ð·Ð°Ñ…Ð¾Ð¿Ð»ÐµÐ½Ð½Ñ� (trapping)"
+
+#: elf64-ia64-vms.c:4267 elf32-ia64.c:4758 elf64-ia64.c:4758
+msgid "%B: linking big-endian files with little-endian files"
+msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð·Ñ– Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²"
+
+#: elf64-ia64-vms.c:4276 elf32-ia64.c:4767 elf64-ia64.c:4767
+msgid "%B: linking 64-bit files with 32-bit files"
+msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð· 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼Ð¸ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸"
+
+#: elf64-ia64-vms.c:4285 elf32-ia64.c:4776 elf64-ia64.c:4776
+msgid "%B: linking constant-gp files with non-constant-gp files"
+msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð·Ñ– Ñ�Ñ‚Ð°Ð»Ð¸Ð¼ gp Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð·Ñ– Ð·Ð¼Ñ–Ð½Ð½Ð¸Ð¼ gp"
+
+#: elf64-ia64-vms.c:4295 elf32-ia64.c:4786 elf64-ia64.c:4786
+msgid "%B: linking auto-pic files with non-auto-pic files"
+msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð· Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¸Ð¼ pic Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ pic"
+
+#: elf64-ia64-vms.c:5138 elflink.c:4730
+#, c-format
+msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� %u Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ %B Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� (%u) Ð¹Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A"
+
+#: elf64-ia64-vms.c:5145 elflink.c:4737
+#, c-format
+msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� %u Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ %B Ñ” Ð¼ÐµÐ½ÑˆÐ¸Ð¼ Ð·Ð° %u Ñƒ %B"
+
+#: elf64-ia64-vms.c:5161
+#, c-format
+msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð· %lu Ñƒ %B Ð½Ð° %lu Ñƒ %B"
+
+#: elf64-mips.c:3615 elfn32-mips.c:3439
+#, c-format
+msgid "unrecognised MIPS reloc number: %d"
+msgstr "Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MIPS: %d"
 
-#: elf64-mmix.c:1034
+#: elf64-mmix.c:984
 msgid ""
 "invalid input relocation when producing non-ELF, non-mmo format output.\n"
 " Please use the objcopy program to convert from ELF or mmo,\n"
@@ -2672,7 +4296,7 @@ msgstr ""
 " Ð´Ð°Ð½Ð¸Ñ… Ð· ELF Ð°Ð±Ð¾ mmo Ð°Ð±Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�Ð¼ Â«-no-expandÂ»\n"
 " (Ð´Ð»Ñ� gcc Â«-Wa,-no-expandÂ»)"
 
-#: elf64-mmix.c:1218
+#: elf64-mmix.c:1168
 msgid ""
 "invalid input relocation when producing non-ELF, non-mmo format output.\n"
 " Please use the objcopy program to convert from ELF or mmo,\n"
@@ -2684,55 +4308,59 @@ msgstr ""
 " Ð´Ð°Ð½Ð¸Ñ… Ð· ELF Ð°Ð±Ð¾ mmo Ð°Ð±Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�Ð¼ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° gcc\n"
 " Â«-mno-base-addressesÂ»."
 
-#: elf64-mmix.c:1244
+#: elf64-mmix.c:1195
 #, c-format
 msgid ""
-"%s: Internal inconsistency error for value for\n"
+"%B: Internal inconsistency error for value for\n"
 " linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx\n"
 msgstr ""
-"%s: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñ‡ÐµÑ€ÐµÐ· Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½ÑŽ Ð½ÐµÐ¿Ð¾Ñ�Ð»Ñ–Ð´Ð¾Ð²Ð½Ñ–Ñ�Ñ‚ÑŒ Ð´Ð»Ñ� Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�\n"
+"%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñ‡ÐµÑ€ÐµÐ· Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½ÑŽ Ð½ÐµÐ¿Ð¾Ñ�Ð»Ñ–Ð´Ð¾Ð²Ð½Ñ–Ñ�Ñ‚ÑŒ Ð´Ð»Ñ� Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�\n"
 " Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ¾Ð¼ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð°: ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¾: 0x%lx%08lx != Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð¾: 0x%lx%08lx\n"
 
-#: elf64-mmix.c:1670
+#: elf64-mmix.c:1266
 #, c-format
-msgid "%s: base-plus-offset relocation against register symbol: (unknown) in %s"
-msgstr "%s: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¾Ñ�Ð½Ð¾Ð²Ð°-Ð¿Ð»ÑŽÑ�-Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñƒ: (Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ) Ñƒ %s"
+msgid "%B: invalid MMIX reloc number: %d"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� MMIX: %d"
 
-#: elf64-mmix.c:1675
+#: elf64-mmix.c:1618
 #, c-format
-msgid "%s: base-plus-offset relocation against register symbol: %s in %s"
-msgstr "%s: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¾Ñ�Ð½Ð¾Ð²Ð°-Ð¿Ð»ÑŽÑ�-Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñƒ: %s Ñƒ %s"
+msgid "%B: base-plus-offset relocation against register symbol: (unknown) in %A"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¾Ñ�Ð½Ð¾Ð²Ð°-Ð¿Ð»ÑŽÑ�-Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñƒ: (Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ) Ñƒ %A"
 
-#: elf64-mmix.c:1719
+#: elf64-mmix.c:1624
 #, c-format
-msgid "%s: register relocation against non-register symbol: (unknown) in %s"
-msgstr "%s: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–: (Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ) Ñƒ %s"
+msgid "%B: base-plus-offset relocation against register symbol: %s in %A"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¾Ñ�Ð½Ð¾Ð²Ð°-Ð¿Ð»ÑŽÑ�-Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñƒ: %s Ñƒ %A"
 
-#: elf64-mmix.c:1724
+#: elf64-mmix.c:1669
 #, c-format
-msgid "%s: register relocation against non-register symbol: %s in %s"
-msgstr "%s: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–: %s Ñƒ %s"
+msgid "%B: register relocation against non-register symbol: (unknown) in %A"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–: (Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ) Ñƒ %A"
 
-#: elf64-mmix.c:1761
+#: elf64-mmix.c:1675
 #, c-format
-msgid "%s: directive LOCAL valid only with a register or absolute value"
-msgstr "%s: Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ñƒ LOCAL Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ Ð·Ñ– Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼Ð¸ Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð°Ñ… Ð°Ð±Ð¾ Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¸Ð¼Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼Ð¸"
+msgid "%B: register relocation against non-register symbol: %s in %A"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–: %s Ñƒ %A"
+
+#: elf64-mmix.c:1712
+msgid "%B: directive LOCAL valid only with a register or absolute value"
+msgstr "%B: Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ñƒ LOCAL Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ Ð·Ñ– Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼Ð¸ Ñƒ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð°Ñ… Ð°Ð±Ð¾ Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¸Ð¼Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼Ð¸"
 
-#: elf64-mmix.c:1789
+#: elf64-mmix.c:1743
 #, c-format
-msgid "%s: LOCAL directive: Register $%ld is not a local register.  First global register is $%ld."
-msgstr "%s: Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð° LOCAL: Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€ $%ld Ð½Ðµ Ñ” Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¼ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¾Ð¼. ÐŸÐµÑ€ÑˆÐ¸Ð¼ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¼ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¾Ð¼ Ñ” $%ld."
+msgid "%B: LOCAL directive: Register $%ld is not a local register.  First global register is $%ld."
+msgstr "%B: Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð° LOCAL: Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€ $%ld Ð½Ðµ Ñ” Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¼ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¾Ð¼. ÐŸÐµÑ€ÑˆÐ¸Ð¼ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¼ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¾Ð¼ Ñ” $%ld."
 
-#: elf64-mmix.c:2253
+#: elf64-mmix.c:2202
 #, c-format
-msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n"
-msgstr "%s: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ Â«%sÂ»; Ð¿Ð¾Ñ‡Ð°Ñ‚Ð¾Ðº %s Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ Ñƒ Ñ€Ð°Ð½Ñ–ÑˆÐµ Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð»\n"
+msgid "%B: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n"
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ Â«%sÂ»; Ð¿Ð¾Ñ‡Ð°Ñ‚Ð¾Ðº %s Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ Ñƒ Ñ€Ð°Ð½Ñ–ÑˆÐµ Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð»\n"
 
-#: elf64-mmix.c:2311
+#: elf64-mmix.c:2257
 msgid "Register section has contents\n"
 msgstr "Ð£ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ð¼Ñ–Ñ�Ñ‚Ñ�Ñ‚ÑŒÑ�Ñ� Ð´Ð°Ð½Ñ–\n"
 
-#: elf64-mmix.c:2503
+#: elf64-mmix.c:2447
 #, c-format
 msgid ""
 "Internal inconsistency: remaining %u != max %u.\n"
@@ -2741,80 +4369,117 @@ msgstr ""
 "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð½ÐµÑƒÐ·Ð³Ð¾Ð´Ð¶ÐµÐ½Ñ–Ñ�Ñ‚ÑŒ: Ð·Ð°Ð»Ð¸ÑˆÐ¸Ð»Ð¾Ñ�Ñ� %u != Ð¼Ð°ÐºÑ�. %u.\n"
 "  Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ñ‚Ðµ Ð¿Ñ€Ð¾ Ñ†ÑŽ Ð²Ð°Ð´Ñƒ."
 
-#: elf64-ppc.c:4185
+#: elf64-ppc.c:4625
+#, c-format
 msgid "%P: %B: cannot create stub entry %s\n"
 msgstr "%P: %B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� %s\n"
 
-#: elf64-ppc.c:6518
-msgid "%P: copy reloc against `%s' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n"
-msgstr "%P: ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” Ð²Ñ–Ð´ÐºÐ»Ð°Ð´ÐµÐ½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� plt; Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÑŽÐ¹Ñ‚Ðµ LD_BIND_NOW=1 Ð°Ð±Ð¾ Ð¾Ð½Ð¾Ð²Ñ–Ñ‚ÑŒ gcc\n"
+#: elf64-ppc.c:4993
+msgid "%P: symbol '%s' has invalid st_other for ABI version 1\n"
+msgstr "%P: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð¼Ð°Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� st_other Ð´Ð»Ñ� Ð²ÐµÑ€Ñ�Ñ–Ñ— ABI 1\n"
+
+#: elf64-ppc.c:5163
+#, c-format
+msgid "%P: %B .opd not allowed in ABI version %d\n"
+msgstr "%P: .opd %B Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ñƒ Ð²ÐµÑ€Ñ�Ñ–Ñ— ABI %d\n"
+
+#: elf64-ppc.c:5639
+#, c-format
+msgid "%H: %s reloc unsupported in shared libraries and PIEs.\n"
+msgstr "%H: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ°Ñ… Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ– PIE.\n"
+
+#: elf64-ppc.c:6046
+#, c-format
+msgid "%B uses unknown e_flags 0x%lx"
+msgstr "%B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� e_flags 0x%lx"
+
+#: elf64-ppc.c:6054
+#, c-format
+msgid "%B: ABI version %ld is not compatible with ABI version %ld output"
+msgstr "%B: Ð²ÐµÑ€Ñ�Ñ–Ñ� ABI %ld Ñ” Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¾ÑŽ Ð· Ð²ÐµÑ€Ñ�Ñ–Ñ”ÑŽ ABI %ld Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñƒ"
+
+#: elf64-ppc.c:6082
+#, c-format
+msgid " [abiv%ld]"
+msgstr " [abiv%ld]"
+
+#: elf64-ppc.c:7413
+msgid "%P: copy reloc against `%T' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n"
+msgstr "%P: ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%TÂ» Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” Ð²Ñ–Ð´ÐºÐ»Ð°Ð´ÐµÐ½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� plt; Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÑŽÐ¹Ñ‚Ðµ LD_BIND_NOW=1 Ð°Ð±Ð¾ Ð¾Ð½Ð¾Ð²Ñ–Ñ‚ÑŒ gcc\n"
 
-#: elf64-ppc.c:6788
+#: elf64-ppc.c:7680
 msgid "%B: undefined symbol on R_PPC64_TOCSAVE relocation"
 msgstr "%B: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– R_PPC64_TOCSAVE"
 
-#: elf64-ppc.c:6992
+#: elf64-ppc.c:7910
+#, c-format
 msgid "%P: dynreloc miscount for %B, section %A\n"
 msgstr "%P: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Ñƒ Ð¾Ð±Ñ‡Ð¸Ñ�Ð»ÐµÐ½Ð½Ñ– Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� %B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A\n"
 
-#: elf64-ppc.c:7076
+#: elf64-ppc.c:7999
 msgid "%B: .opd is not a regular array of opd entries"
 msgstr "%B: .opd Ð½Ðµ Ñ” Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¸Ð¼ Ð¼Ð°Ñ�Ð¸Ð²Ð¾Ð¼ Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² opd"
 
-#: elf64-ppc.c:7085
+#: elf64-ppc.c:8009
+#, c-format
 msgid "%B: unexpected reloc type %u in .opd section"
 msgstr "%B: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, %u, Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– .opd"
 
-#: elf64-ppc.c:7106
+#: elf64-ppc.c:8031
+#, c-format
 msgid "%B: undefined sym `%s' in .opd section"
 msgstr "%B: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð», Â«%sÂ» Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– .opd"
 
-#: elf64-ppc.c:7664
+#: elf64-ppc.c:8600
 msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
 msgstr "%H __tls_get_addr Ð²Ñ‚Ñ€Ð°Ñ‡ÐµÐ½Ð¾ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚, Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–ÑŽ TLS Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾\n"
 
-#: elf64-ppc.c:8003 elf64-ppc.c:8564
+#: elf64-ppc.c:8943 elf64-ppc.c:9580
 #, c-format
 msgid "%s defined on removed toc entry"
 msgstr "%s Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð¾Ð¼Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– toc"
 
-#: elf64-ppc.c:8521
-msgid "%P: %H: %s relocation references optimized away TOC entry\n"
-msgstr "%P: %H: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° ÑƒÑ�ÑƒÐ½ÑƒÑ‚Ð¸Ð¹ Ñƒ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ– Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð·Ð°Ð¿Ð¸Ñ� TOC\n"
-
-#: elf64-ppc.c:9598
-msgid "%P: cannot find opd entry toc for %s\n"
-msgstr "%P: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� opd Ñƒ toc Ð´Ð»Ñ� %s\n"
+#: elf64-ppc.c:9308
+#, c-format
+msgid "%H: toc optimization is not supported for %s instruction.\n"
+msgstr "%H: Ð´Ð»Ñ� Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ— %s Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— toc.\n"
+
+#: elf64-ppc.c:9537
+#, c-format
+msgid "%H: %s references optimized away TOC entry\n"
+msgstr "%H: %s Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° ÑƒÑ�ÑƒÐ½ÑƒÑ‚Ð¸Ð¹ Ñƒ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ– Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð·Ð°Ð¿Ð¸Ñ� TOC\n"
+
+#: elf64-ppc.c:10878
+msgid "%P: cannot find opd entry toc for `%T'\n"
+msgstr "`%P: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� opd Ñƒ toc Ð´Ð»Ñ� Â«%TÂ»\n"
 
-#: elf64-ppc.c:9680
+#: elf64-ppc.c:10969
 msgid "%P: long branch stub `%s' offset overflow\n"
 msgstr "%P: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ñƒ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° Ð´Ð¾Ð²Ð³Ð¾Ñ— Ð³Ñ–Ð»ÐºÐ¸, Â«%sÂ»\n"
 
-#: elf64-ppc.c:9739
+#: elf64-ppc.c:11028
 msgid "%P: can't find branch stub `%s'\n"
 msgstr "%P: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Â«%sÂ»\n"
 
-#: elf64-ppc.c:9801 elf64-ppc.c:9943
-msgid "%P: linkage table error against `%s'\n"
-msgstr "%P: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%sÂ»\n"
+#: elf64-ppc.c:11092 elf64-ppc.c:11244 elf64-ppc.c:13052
+#, c-format
+msgid "%P: linkage table error against `%T'\n"
+msgstr "%P: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Â«%TÂ»\n"
 
-#: elf64-ppc.c:10126
+#: elf64-ppc.c:11454
 msgid "%P: can't build branch stub `%s'\n"
 msgstr "%P: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ð¾Ð±ÑƒÐ´ÑƒÐ²Ð°Ñ‚Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Â«%sÂ»\n"
 
-#: elf64-ppc.c:10941
+#: elf64-ppc.c:12227
+#, c-format
 msgid "%B section %A exceeds stub group size"
 msgstr "Ð Ð¾Ð·Ð´Ñ–Ð» %B, %A, Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¸ Ð³Ñ€ÑƒÐ¿Ð¸ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ–Ð²"
 
-#: elf64-ppc.c:11666 elf64-ppc.c:11699
-msgid "%P: %s offset too large for .eh_frame sdata4 encoding"
-msgstr "%P: Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ %s Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼ Ð´Ð»Ñ� ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ� sdata4 .eh_frame"
-
-#: elf64-ppc.c:11744
+#: elf64-ppc.c:13331
 msgid "%P: stubs don't match calculated size\n"
 msgstr "%P: ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸ Ð½Ðµ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°ÑŽÑ‚ÑŒ Ð¾Ð±Ñ‡Ð¸Ñ�Ð»ÐµÐ½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ\n"
 
-#: elf64-ppc.c:11756
+#: elf64-ppc.c:13343
 #, c-format
 msgid ""
 "linker stubs in %u group%s\n"
@@ -2822,845 +4487,1144 @@ msgid ""
 "  toc adjust   %lu\n"
 "  long branch  %lu\n"
 "  long toc adj %lu\n"
-"  plt call     %lu"
+"  plt call     %lu\n"
+"  plt call toc %lu\n"
+"  global entry %lu"
 msgstr ""
 "ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ° Ñƒ %u Ð³Ñ€ÑƒÐ¿Ð°Ñ… %s\n"
 "  Ð³Ñ–Ð»ÐºÐ°        %lu\n"
 "  ÐºÐ¾Ñ€Ð¸Ð³. toc   %lu\n"
 "  Ð´Ð¾Ð²Ð³Ð° Ð³Ñ–Ð»ÐºÐ°  %lu\n"
 "  Ð´. ÐºÐ¾Ñ€. toc  %lu\n"
-"  plt-Ð²Ð¸ÐºÐ»Ð¸Ðº   %lu"
+"  plt-Ð²Ð¸ÐºÐ»Ð¸Ðº   %lu\n"
+"  toc Ð²Ð¸Ðº. plt %lu\n"
+"  Ð·Ð°Ð³. Ð·Ð°Ð¿Ð¸Ñ�   %lu"
+
+#: elf64-ppc.c:13665
+#, c-format
+msgid "%H: %s used with TLS symbol `%T'\n"
+msgstr "%H: %s Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ TLS Â«%TÂ»\n"
+
+#: elf64-ppc.c:13667
+#, c-format
+msgid "%H: %s used with non-TLS symbol `%T'\n"
+msgstr "%H: %s Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ Ð¿Ð¾Ð·Ð° TLS Â«%TÂ»\n"
+
+#: elf64-ppc.c:14306
+#, c-format
+msgid "%H: call to `%T' lacks nop, can't restore toc; recompile with -fPIC\n"
+msgstr "%H: Ñƒ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ Â«%TÂ» Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” nop, Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ� toc Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ; Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð· -fPIC\n"
 
-#: elf64-ppc.c:12042
-msgid "%P: %H: %s used with TLS symbol %s\n"
-msgstr "%P: %H: %s Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ TLS %s\n"
+#: elf64-ppc.c:14312
+#, c-format
+msgid "%H: call to `%T' lacks nop, can't restore toc; (-mcmodel=small toc adjust stub)\n"
+msgstr "%P: %H: Ñƒ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ Â«%TÂ» Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” nop, Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ� toc Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ (-mcmodel=small Ð´Ð»Ñ� ÐºÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ� ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°)\n"
+
+#: elf64-ppc.c:14440
+#, c-format
+msgid "%P: %B: unknown relocation type %d for `%T'\n"
+msgstr "%P: %B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�, %d, Ð´Ð»Ñ� Â«%TÂ»\n"
+
+#: elf64-ppc.c:14994
+#, c-format
+msgid "%H: %s for indirect function `%T' unsupported\n"
+msgstr "%H: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ %s Ð´Ð»Ñ� Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%TÂ» Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾\n"
+
+#: elf64-ppc.c:15132
+#, c-format
+msgid "%P: %B: %s is not supported for `%T'\n"
+msgstr "%P: %B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ %s Ð´Ð»Ñ� Â«%TÂ» Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾\n"
 
-#: elf64-ppc.c:12043
-msgid "%P: %H: %s used with non-TLS symbol %s\n"
-msgstr "%P: %H: %s Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼ Ð¿Ð¾Ð·Ð° TLS %s\n"
+#: elf64-ppc.c:15287
+#, c-format
+msgid "%H: error: %s not a multiple of %u\n"
+msgstr "%H: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %s Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ %u\n"
 
-#: elf64-ppc.c:12556
-msgid "%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc\n"
-msgstr "%P: %H: Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ðµ Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… TOC Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð½Ð° Ð¾Ñ�Ð½Ð¾Ð²Ñ– Ð²Ð°ÑˆÐ¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² crt; Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· -mminimal-toc Ð°Ð±Ð¾ Ð¾Ð½Ð¾Ð²Ñ–Ñ‚ÑŒ gcc\n"
+#: elf64-ppc.c:15309
+#, c-format
+msgid "%H: unresolvable %s against `%T'\n"
+msgstr "%H: Ð½ÐµÑ€Ð¾Ð·Ð²â€™Ñ�Ð·Ð½Ðµ %s Ñ‰Ð¾Ð´Ð¾ Â«%TÂ»\n"
 
-#: elf64-ppc.c:12562
-msgid "%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern\n"
-msgstr "%P: %H: Ñƒ Ñ€Ð°Ð·Ñ– Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð²Ð¸ÐºÐ»Ð¸ÐºÑ–Ð² Ð¾Ð´Ð½Ð°ÐºÐ¾Ð²Ð¸Ñ… Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ Ð´Ð»Ñ� Â«%sÂ» Ð½Ðµ Ð´Ð°Ñ�Ñ‚ÑŒ Ð·Ð¼Ð¾Ð³Ð¸ Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° TOC; Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· -mminimal-toc Ð°Ð±Ð¾ -fno-optimize-sibling-calls Ñ‡Ð¸ Ð·Ñ€Ð¾Ð±Ñ–Ñ‚ÑŒ Â«%sÂ» Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾ÑŽ (extern)\n"
+#: elf64-ppc.c:15406
+#, c-format
+msgid "%H: %s against `%T': error %d\n"
+msgstr "%H: %s Ñ‰Ð¾Ð´Ð¾ Â«%TÂ»: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° %d\n"
 
-#: elf64-ppc.c:13286
-msgid "%P: %B: relocation %s is not supported for symbol %s\n"
-msgstr "%P: %B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾\n"
+#: elf64-ppc.c:15801 elf64-ppc.c:15830
+msgid "%P: %s offset too large for .eh_frame sdata4 encoding"
+msgstr "%P: Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ %s Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼ Ð´Ð»Ñ� ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ� sdata4 .eh_frame"
 
-#: elf64-ppc.c:13446
-msgid "%P: %H: error: %s not a multiple of %u\n"
-msgstr "%P: %H: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %s Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ %u\n"
+#: elf64-s390.c:2712
+msgid "%B: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½Ðµ-PLT Â«%sÂ» Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ Ñƒ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÑ†Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�, Ñ– Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ð½Ð¾Ð³Ð¾ Ð· Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° (Ñ�Ð»Ñ–Ð´ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ñ–Ð±Ñ€Ð°Ñ‚Ð¸ Ñ„Ð°Ð¹Ð» Ñ–Ð· -fPIC ?)"
 
-#: elf64-sh64.c:1686
+#: elf64-sh64.c:1680
 #, c-format
-msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n"
-msgstr "%s: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ñƒ %08x, Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %08x\n"
+msgid "%B: error: unaligned relocation type %d at %08x reloc %08x\n"
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ñƒ %08x, Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %08x\n"
 
-#: elf64-sparc.c:446
+#: elf64-sparc.c:460
 msgid "%B: Only registers %%g[2367] can be declared using STT_REGISTER"
 msgstr "%B: Ð·Ð° Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾ÑŽ STT_REGISTER Ð¼Ð¾Ð¶Ð½Ð° Ð¾Ð³Ð¾Ð»Ð¾ÑˆÑƒÐ²Ð°Ñ‚Ð¸ Ð»Ð¸ÑˆÐµ Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð¸ %%g[2367]"
 
-#: elf64-sparc.c:466
+#: elf64-sparc.c:481
+#, c-format
 msgid "Register %%g%d used incompatibly: %s in %B, previously %s in %B"
 msgstr "Ð�ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ðµ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñƒ %%g%d: %s Ñƒ %B, Ñ€Ð°Ð½Ñ–ÑˆÐµ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ %s Ñƒ %B"
 
-#: elf64-sparc.c:489
+#: elf64-sparc.c:505
+#, c-format
 msgid "Symbol `%s' has differing types: REGISTER in %B, previously %s in %B"
 msgstr "Ð¡Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð´Ð¾ Ñ€Ñ–Ð·Ð½Ð¸Ñ… Ñ‚Ð¸Ð¿Ñ–Ð²: REGISTER Ñƒ %B Ñ– %s Ñ€Ð°Ð½Ñ–ÑˆÐµ Ñƒ %B"
 
-#: elf64-sparc.c:534
+#: elf64-sparc.c:552
+#, c-format
 msgid "Symbol `%s' has differing types: %s in %B, previously REGISTER in %B"
 msgstr "Ð¡Ð¸Ð¼Ð²Ð¾Ð» Â«sÂ» Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð´Ð¾ Ñ€Ñ–Ð·Ð½Ð¸Ñ… Ñ‚Ð¸Ð¿Ñ–Ð²: %s Ñƒ %B Ñ– REGISTER Ñ€Ð°Ð½Ñ–ÑˆÐµ Ñƒ %B"
 
-#: elf64-sparc.c:687
+#: elf64-sparc.c:707
 msgid "%B: linking UltraSPARC specific with HAL specific code"
 msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� UltraSPARC-Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ‚Ð° HAL-Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ"
 
-#: elf64-x86-64.c:1427
+#: elf64-x86-64.c:1923
+msgid "hidden symbol "
+msgstr "Ð¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» "
+
+#: elf64-x86-64.c:1926
+msgid "internal symbol "
+msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» "
+
+#: elf64-x86-64.c:1929
+msgid "protected symbol "
+msgstr "Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» "
+
+#: elf64-x86-64.c:1932
+msgid "symbol "
+msgstr "Ñ�Ð¸Ð¼Ð²Ð¾Ð» "
+
+#: elf64-x86-64.c:1933 elf64-x86-64.c:1943
+msgid "; recompile with -fPIC"
+msgstr "; Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· -fPIC"
+
+#: elf64-x86-64.c:1938
+msgid "undefined "
+msgstr "Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ "
+
+#: elf64-x86-64.c:1947
+#, c-format
+msgid "%B: relocation %s against %s%s`%s' can not be used when making a shared object%s"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ %s%sÂ«%sÂ», Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%s"
+
+#: elf64-x86-64.c:2510
+#, c-format
 msgid "%B: relocation %s against symbol `%s' isn't supported in x32 mode"
 msgstr "%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ Ñ€ÐµÐ¶Ð¸Ð¼Ñ– x32 Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾"
 
-#: elf64-x86-64.c:1656
+#: elf64-x86-64.c:2633
+#, c-format
 msgid "%B: '%s' accessed both as normal and thread local symbol"
 msgstr "'%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð´Ð¾ Â«%sÂ» Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ�Ðº Ð´Ð¾ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ñ‚Ð° Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð´Ð»Ñ� Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
 
-#: elf64-x86-64.c:3150
+#: elf64-x86-64.c:4576
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5018
+#, c-format
 msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ STT_GNU_IFUNC, Â«%sÂ», Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº: %d"
 
-#: elf64-x86-64.c:3411
-msgid "%B: relocation R_X86_64_GOTOFF64 against protected function `%s' can not be used when making a shared object"
-msgstr "%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ R_X86_64_GOTOFF64 Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%sÂ» Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
+#: elf64-x86-64.c:4831
+#, c-format
+msgid "%B: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object"
+msgstr "B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� R_X86_64_GOTOFF64 Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ %s, Â«%sÂ», Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
 
-#: elf64-x86-64.c:3523
-msgid "; recompile with -fPIC"
-msgstr "; Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· -fPIC"
+#: elf64-x86-64.c:4845
+#, c-format
+msgid "%B: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object"
+msgstr "%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ R_X86_64_GOTOFF64 Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ñ— %s Â«%sÂ» Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
+
+#: elf64-x86-64.c:5122
+#, c-format
+msgid "%B: addend -0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range"
+msgstr "%B: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº -0x%x Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¿Ð¾Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ð¿Ñ€Ð¸Ð¿ÑƒÑ�Ñ‚Ð¸Ð¼Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ"
+
+#: elf64-x86-64.c:5130
+#, c-format
+msgid "%B: addend 0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range"
+msgstr "%B: Ð´Ð¾Ð´Ð°Ð½Ð¾Ðº 0x%x Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¿Ð¾Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ð¿Ñ€Ð¸Ð¿ÑƒÑ�Ñ‚Ð¸Ð¼Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ"
+
+#: elf64-x86-64.c:5952
+#, c-format
+msgid "%F%B: PC-relative offset overflow in PLT entry for `%s'\n"
+msgstr "%F%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð·Ñ�ÑƒÐ²Ñƒ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ PC Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– PLT Ð´Ð»Ñ� Â«%sÂ»\n"
+
+#: elf64-x86-64.c:6019
+#, c-format
+msgid "%F%B: branch displacement overflow in PLT entry for `%s'\n"
+msgstr "%F%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ� Ð³Ñ–Ð»Ð¾Ðº Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– PLT Ð´Ð»Ñ� Â«%sÂ»\n"
 
-#: elf64-x86-64.c:3528
-msgid "%B: relocation %s against %s `%s' can not be used when making a shared object%s"
-msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ %s, Â«%sÂ», Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%s"
+#: elf64-x86-64.c:6072
+#, c-format
+msgid "%F%B: PC-relative offset overflow in GOT PLT entry for `%s'\n"
+msgstr "%F%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð·Ñ�ÑƒÐ²Ñƒ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ PC Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– PLT GOT Ð´Ð»Ñ� Â«%sÂ»\n"
 
-#: elf64-x86-64.c:3530
-msgid "%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s"
-msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ %s, Â«%sÂ», Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%s"
+#: elf64-x86-64.c:7663
+#, c-format
+msgid "%F: failed to create BND PLT section\n"
+msgstr "%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» PLT BND\n"
 
-#: elfcode.h:767
+#: elf64-x86-64.c:7713
 #, c-format
-msgid "warning: %s has a corrupt string table index - ignoring"
-msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾ÐºÐ°Ð¶Ñ‡Ð¸Ðº Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñ�Ð´ÐºÑ–Ð² %s Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ â€” Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ñ‚ÑŒÑ�Ñ�"
+msgid "%F: failed to create BND PLT .eh_frame section\n"
+msgstr "%F: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» .eh_frame PLT BND\n"
+
+#: elfcode.h:760
+msgid "warning: %B has a corrupt string table index - ignoring"
+msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾ÐºÐ°Ð¶Ñ‡Ð¸Ðº Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ€Ñ�Ð´ÐºÑ–Ð² %B Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ â€” Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ñ‚ÑŒÑ�Ñ�"
 
-#: elfcode.h:1177
+#: elfcode.h:1193
 #, c-format
-msgid "%s: version count (%ld) does not match symbol count (%ld)"
-msgstr "%s: Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸Ðº Ð²ÐµÑ€Ñ�Ñ–Ñ— (%ld) Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸ÐºÐ¾Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ (%ld)"
+msgid "%B: version count (%ld) does not match symbol count (%ld)"
+msgstr "%B: Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸Ðº Ð²ÐµÑ€Ñ�Ñ–Ñ— (%ld) Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸ÐºÐ¾Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ (%ld)"
 
-#: elfcode.h:1431
+#: elfcode.h:1448
 #, c-format
-msgid "%s(%s): relocation %d has invalid symbol index %ld"
-msgstr "%s(%s): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, %ld"
+msgid "%B(%A): relocation %d has invalid symbol index %ld"
+msgstr "%B(%A): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, %ld"
 
-#: elfcore.h:312
+#: elfcore.h:300
+#, c-format
 msgid "Warning: %B is truncated: expected core file size >= %lu, found: %lu."
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð¾: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° >= %lu, Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾: %lu."
 
-#: elflink.c:1117
+#: elflink.c:1336
+#, c-format
 msgid "%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A"
 msgstr "%s: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� TLS Ñƒ %B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A, Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ð½Ðµ-TLS Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %B %A"
 
-#: elflink.c:1121
+#: elflink.c:1342
+#, c-format
 msgid "%s: TLS reference in %B mismatches non-TLS reference in %B"
 msgstr "%s: Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� TLS Ñƒ %B Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ�Ð¼ Ð½Ðµ-TLS Ñƒ %B"
 
-#: elflink.c:1125
+#: elflink.c:1348
+#, c-format
 msgid "%s: TLS definition in %B section %A mismatches non-TLS reference in %B"
 msgstr "%s: Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� TLS Ñƒ %B, Ñ€Ð¾Ð·Ð´Ñ–Ð» %A, Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ�Ð¼ Ð½Ðµ-TLS Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %B, %A"
 
-#: elflink.c:1129
+#: elflink.c:1354
+#, c-format
 msgid "%s: TLS reference in %B mismatches non-TLS definition in %B section %A"
 msgstr "%s: Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� TLS Ñƒ %B Ð½Ðµ Ð·Ð±Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ð½Ðµ-TLS Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %B %A"
 
-#: elflink.c:1762
+#: elflink.c:2015
+#, c-format
 msgid "%B: unexpected redefinition of indirect versioned symbol `%s'"
 msgstr "%B: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð· Ð½ÐµÐ¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ð²ÐµÑ€Ñ�Ñ–Ñ—, Â«%sÂ»"
 
-#: elflink.c:2063
+#: elflink.c:2308
+#, c-format
 msgid "%B: version node not found for symbol %s"
 msgstr "%B: Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ð²ÑƒÐ·Ð»Ð° Ð²ÐµÑ€Ñ�Ñ–Ñ— Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
 
-#: elflink.c:2154
-msgid "%B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A'"
-msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (0x%lx >= 0x%lx) Ð´Ð»Ñ� Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ñƒ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»"
-
-#: elflink.c:2165
-msgid "%B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the object file has no symbol table"
-msgstr "%B: Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ (0x%lx) Ð´Ð»Ñ� Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ñƒ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ», Ð°Ð»Ðµ Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Ð½ÐµÐ¼Ð°Ñ” Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²"
+#: elflink.c:2397
+#, c-format
+msgid "%B: bad reloc symbol index (%#lx >= %#lx) for offset %#Lx in section `%A'"
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (%#lx >= %#lx) Ð´Ð»Ñ� Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ñƒ %#Lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»"
+
+#: elflink.c:2409
+#, c-format
+msgid "%B: non-zero symbol index (%#lx) for offset %#Lx in section `%A' when the object file has no symbol table"
+msgstr "%B: Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ (%#lx) Ð´Ð»Ñ� Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ñƒ %#Lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ», Ð°Ð»Ðµ Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Ð½ÐµÐ¼Ð°Ñ” Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²"
 
-#: elflink.c:2355
+#: elflink.c:2600
+#, c-format
 msgid "%B: relocation size mismatch in %B section %A"
 msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %B %A"
 
-#: elflink.c:2639
+#: elflink.c:2911
 #, c-format
 msgid "warning: type and size of dynamic symbol `%s' are not defined"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ‚Ð¸Ð¿ Ñ– Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
 
-#: elflink.c:3391
+#: elflink.c:2976
+msgid "%P: copy reloc against protected `%T' is dangerous\n"
+msgstr "%P: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼ Ñ‰Ð¾Ð´Ð¾ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ð³Ð¾ Â«%TÂ» Ñ” Ð½ÐµÐ±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð¸Ð¼\n"
+
+#: elflink.c:3777
+#, c-format
 msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n"
 msgstr "%P: Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð°Ð»ÑŒÑ‚ÐµÑ€Ð½Ð°Ñ‚Ð¸Ð²Ð½Ð¸Ð¹ Ð¼Ð°ÑˆÐ¸Ð½Ð½Ð¸Ð¹ ÐºÐ¾Ð´ ELF (%d) Ñƒ %B, Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� %d\n"
 
-#: elflink.c:4037
+#: elflink.c:4438
+#, c-format
 msgid "%B: %s: invalid version %u (max %d)"
 msgstr "%B: %s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð²ÐµÑ€Ñ�Ñ–Ñ�, %u (Ð¼Ð°ÐºÑ�Ð¸Ð¼ÑƒÐ¼ â€” %d)"
 
-#: elflink.c:4073
+#: elflink.c:4475
+#, c-format
 msgid "%B: %s: invalid needed version %d"
 msgstr "%B: %s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾Ñ— Ð²ÐµÑ€Ñ�Ñ–Ñ— %d"
 
-#: elflink.c:4269
-msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A"
-msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� %u Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ %B Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� (%u) Ð¹Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A"
-
-#: elflink.c:4275
-msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B"
-msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� %u Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ñƒ %B Ñ” Ð¼ÐµÐ½ÑˆÐ¸Ð¼ Ð·Ð° %u Ñƒ %B"
-
-#: elflink.c:4290
-msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B"
-msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð· %lu Ñƒ %B Ð½Ð° %lu Ñƒ %B"
+#: elflink.c:4754
+#, c-format
+msgid "Warning: size of symbol `%s' changed from %Lu in %B to %Lu in %B"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ» Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð· %Lu Ñƒ %B Ð½Ð° %Lu Ñƒ %B"
 
-#: elflink.c:4463
+#: elflink.c:4890
+#, c-format
 msgid "%B: undefined reference to symbol '%s'"
 msgstr "%B: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ»"
 
-#: elflink.c:4466
-msgid "note: '%s' is defined in DSO %B so try adding it to the linker command line"
-msgstr "Ð·Ð°ÑƒÐ²Ð°Ð¶ÐµÐ½Ð½Ñ�: Â«%sÂ» Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ %B DSO, Ð¾Ñ‚Ð¶Ðµ Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÑ”Ð¼Ð¾ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ Ð¹Ð¾Ð³Ð¾ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³Ð¾ Ñ€Ñ�Ð´ÐºÐ° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ°"
+#: elflink.c:5903
+#, c-format
+msgid "%B: stack size specified and %s set"
+msgstr "%B: Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¸ Ñ�Ñ‚ÐµÐºÐ° Ñ– Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %s"
+
+#: elflink.c:5907
+#, c-format
+msgid "%B: %s not absolute"
+msgstr "%B: %s Ð½Ðµ Ñ” Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¸Ð¼"
 
-#: elflink.c:5781
+#: elflink.c:6105
 #, c-format
 msgid "%s: undefined version: %s"
 msgstr "%s: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð° Ð²ÐµÑ€Ñ�Ñ–Ñ�: %s"
 
-#: elflink.c:5849
+#: elflink.c:6682
 msgid "%B: .preinit_array section is not allowed in DSO"
 msgstr "%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» .preinit_array Ñƒ DSO"
 
-#: elflink.c:7604
+#: elflink.c:8122
 #, c-format
 msgid "undefined %s reference in complex symbol: %s"
 msgstr "Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ�, %s, Ñƒ Ñ�ÐºÐ»Ð°Ð´ÐµÐ½Ð¾Ð¼Ñƒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–: %s"
 
-#: elflink.c:7758
+#: elflink.c:8277
 #, c-format
 msgid "unknown operator '%c' in complex symbol"
 msgstr "Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€, Â«%cÂ», Ñƒ Ñ�ÐºÐ»Ð°Ð´ÐµÐ½Ð¾Ð¼Ñƒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–"
 
-#: elflink.c:8097 elflink.c:8114 elflink.c:8151 elflink.c:8168
+#. PR 21524: Let the user know if a symbol was removed by garbage collection.
+#: elflink.c:8615
+msgid "%B:%A: error: relocation references symbol %s which was removed by garbage collection."
+msgstr "%B:%A: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð» %s, Ñ�ÐºÐ¸Ð¹ Ð±ÑƒÐ»Ð¾ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð¾ Ð·Ð°Ñ�Ð¾Ð±Ð¾Ð¼ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ñ�Ð¼Ñ–Ñ‚Ñ‚Ñ�."
+
+#: elflink.c:8618
+msgid "%B:%A: error: try relinking with --gc-keep-exported enabled."
+msgstr "%B:%A: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¸Ð¼ --gc-keep-exported."
+
+#: elflink.c:8855 elflink.c:8873 elflink.c:8912 elflink.c:8930
 msgid "%B: Unable to sort relocs - they are in more than one size"
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÑƒÐ²Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: Ñ—Ñ…Ð½Ñ– Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¸ Ð½Ðµ Ñ” Ð¾Ð´Ð½Ð°ÐºÐ¾Ð²Ð¸Ð¼Ð¸"
 
-#: elflink.c:8128 elflink.c:8182
+#. The section size is not divisible by either -
+#. something is wrong.
+#: elflink.c:8889 elflink.c:8946
 msgid "%B: Unable to sort relocs - they are of an unknown size"
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÑƒÐ²Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�: Ñ—Ñ…Ð½Ñ– Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¸ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñ–"
 
-#: elflink.c:8233
+#: elflink.c:8998
 msgid "Not enough memory to sort relocations"
 msgstr "Ð�ÐµÐ´Ð¾Ñ�Ñ‚Ð°Ñ‚Ð½ÑŒÐ¾ Ð¿Ð°Ð¼â€™Ñ�Ñ‚Ñ– Ð´Ð»Ñ� Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ"
 
-#: elflink.c:8426
+#: elflink.c:9266
+#, c-format
 msgid "%B: Too many sections: %d (>= %d)"
 msgstr "%B: Ð·Ð°Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð²: %d (>= %d)"
 
-#: elflink.c:8675
+#: elflink.c:9546
+#, c-format
 msgid "%B: internal symbol `%s' in %B is referenced by DSO"
 msgstr "%B: Ð½Ð° Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñƒ %B Ñ–Ñ�Ð½ÑƒÑ” Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð· DSO"
 
-#: elflink.c:8677
+#: elflink.c:9549
+#, c-format
 msgid "%B: hidden symbol `%s' in %B is referenced by DSO"
 msgstr "%B: Ð½Ð° Ð¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñƒ %B Ñ–Ñ�Ð½ÑƒÑ” Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð· DSO"
 
-#: elflink.c:8679
+#: elflink.c:9552
+#, c-format
 msgid "%B: local symbol `%s' in %B is referenced by DSO"
 msgstr "%B: Ð½Ð° Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñƒ %B Ñ–Ñ�Ð½ÑƒÑ” Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð· DSO"
 
-#: elflink.c:8776
+#: elflink.c:9638
+#, c-format
 msgid "%B: could not find output section %A for input section %A"
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… %A Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ… %A"
 
-#: elflink.c:8899
+#: elflink.c:9792
+#, c-format
 msgid "%B: protected symbol `%s' isn't defined"
 msgstr "%B: Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
 
-#: elflink.c:8901
+#: elflink.c:9795
+#, c-format
 msgid "%B: internal symbol `%s' isn't defined"
 msgstr "%B: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
 
-#: elflink.c:8903
+#: elflink.c:9798
+#, c-format
 msgid "%B: hidden symbol `%s' isn't defined"
 msgstr "%B: Ð¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾"
 
-#: elflink.c:9432
+#: elflink.c:9829
+#, c-format
+msgid "%B: No symbol version section for versioned symbol `%s'"
+msgstr "%B: Ð½ÐµÐ¼Ð°Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð²ÐµÑ€Ñ�Ñ–Ñ— Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð· Ð²ÐµÑ€Ñ�Ñ–Ñ”ÑŽ Â«%sÂ»"
+
+#: elflink.c:10436
+#, c-format
 msgid "error: %B: size of section %A is not multiple of address size"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð°Ð´Ñ€ÐµÑ�Ð¸"
 
-#: elflink.c:9479
-msgid "error: %B contains a reloc (0x%s) for section %A that references a non-existent global symbol"
-msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (0x%s) Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A, Ñ�ÐºÐµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð», Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ñ–Ñ�Ð½ÑƒÑ”"
+#: elflink.c:10481
+#, c-format
+msgid "error: %B contains a reloc (%#Lx) for section %A that references a non-existent global symbol"
+msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: %B Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (%#Lx) Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %A, Ñ�ÐºÐµ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð½Ð° Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð», Ñ�ÐºÐ¾Ð³Ð¾ Ð½Ðµ Ñ–Ñ�Ð½ÑƒÑ”"
 
-#: elflink.c:10214
+#: elflink.c:11236
+#, c-format
 msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections"
 msgstr "%A Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ [Â«%AÂ» Ñƒ %B] Ñ– Ð½ÐµÐ²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ [Â«%AÂ» Ñƒ %B] Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸"
 
-#: elflink.c:10219
+#: elflink.c:11242
 #, c-format
 msgid "%A has both ordered and unordered sections"
 msgstr "%A Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð¾Ð´Ñ€Ð°Ð·Ñƒ Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ Ñ– Ð½ÐµÐ²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸"
 
-#: elflink.c:10784
+#: elflink.c:11344
+msgid "%B: no symbol found for import library"
+msgstr "%B: Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ð´Ð»Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�"
+
+#: elflink.c:11966
+#, c-format
 msgid "%B: file class %s incompatible with %s"
 msgstr "%B: ÐºÐ»Ð°Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² %s Ñ” Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¼ Ð· %s"
 
-#: elflink.c:11093 elflink.c:11137
-msgid "%B: could not find output section %s"
-msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ…, %s"
+#: elflink.c:12183
+msgid "%B: failed to generate import library"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÑƒ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�"
 
-#: elflink.c:11098
+#: elflink.c:12302
 #, c-format
 msgid "warning: %s section has zero size"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ñ” Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼"
 
-#: elflink.c:11143
+#: elflink.c:12350
 #, c-format
 msgid "warning: section '%s' is being made into a note"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%sÂ» Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð¾ Ð½Ð° Ð½Ð¾Ñ‚Ð°Ñ‚ÐºÑƒ"
 
-#: elflink.c:11212
+#: elflink.c:12442
 msgid "%P%X: read-only segment has dynamic relocations.\n"
 msgstr "%P%X: Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�, Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�.\n"
 
-#: elflink.c:11215
+#: elflink.c:12445
 msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n"
 msgstr "%P: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ñ‚Ð²Ð¾Ñ€ÑŽÑ”Ð¼Ð¾ DT_TEXTREL Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ– Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�.\n"
 
-#: elflink.c:11402
+#: elflink.c:12570
 msgid "%P%X: can not read symbols: %E\n"
 msgstr "%P%X: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸: %E\n"
 
-#: elflink.c:11792
-msgid "Removing unused section '%s' in file '%B'"
-msgstr "Ð’Ð¸Ð»ÑƒÑ‡Ð°Ñ”Ð¼Ð¾ Ð½ÐµÐ²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%sÂ» Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Â«%BÂ»"
+#: elflink.c:12732
+msgid "%F%P: corrupt input: %B\n"
+msgstr "%F%P: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ñ– Ð²Ñ…Ñ–Ð´Ð½Ñ– Ð´Ð°Ð½Ñ–: %B\n"
 
-#: elflink.c:11998
-msgid "Warning: gc-sections option ignored"
-msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ gc-sections Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾"
+#: elflink.c:13421
+#, c-format
+msgid "%B: %A+%#Lx: No symbol found for INHERIT"
+msgstr "%B: %A+%#Lx: Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð´Ð»Ñ� INHERIT"
 
-#: elflink.c:12277
+#: elflink.c:13597
 #, c-format
 msgid "Unrecognized INPUT_SECTION_FLAG %s\n"
 msgstr "Ð�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ INPUT_SECTION_FLAG, %s\n"
 
-#: elfxx-mips.c:1234
+#: elfxx-mips.c:1444
 msgid "static procedure (no name)"
 msgstr "Ñ�Ñ‚Ð°Ñ‚Ð¸Ñ‡Ð½Ð° Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð° (Ð±ÐµÐ· Ð½Ð°Ð·Ð²Ð¸)"
 
-#: elfxx-mips.c:5259
+#: elfxx-mips.c:5627
 msgid "MIPS16 and microMIPS functions cannot call each other"
 msgstr "Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ— MIPS16 Ñ– microMIPS Ð½Ðµ Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ Ð²Ð¸ÐºÐ»Ð¸ÐºÐ°Ñ‚Ð¸ Ð¾Ð´Ð½Ð° Ð¾Ð´Ð½Ñƒ"
 
-#: elfxx-mips.c:5856
-msgid "%B: %A+0x%lx: Direct jumps between ISA modes are not allowed; consider recompiling with interlinking enabled."
-msgstr "%B: %A+0x%lx: Ð±ÐµÐ·Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´Ð½Ñ– Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ð¸ Ð¼Ñ–Ð¶ Ñ€ÐµÐ¶Ð¸Ð¼Ð°Ð¼Ð¸ ISA Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð¾; Ð²Ð°Ñ€Ñ‚Ð¾ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¸Ð¼ Ð²Ð·Ð°Ñ”Ð¼Ð½Ð¸Ð¼ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼."
+#: elfxx-mips.c:6370
+msgid "%X%H: Unsupported JALX to the same ISA mode\n"
+msgstr "%X%H: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ JALX Ð´Ð¾ Ñ‚Ð¾Ð³Ð¾ Ñ�Ð°Ð¼Ð¾Ð³Ð¾ Ñ€ÐµÐ¶Ð¸Ð¼Ñƒ ISA\n"
+
+#: elfxx-mips.c:6403
+msgid "%X%H: Unsupported jump between ISA modes; consider recompiling with interlinking enabled\n"
+msgstr "%X%H: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¹ Ð¿ÐµÑ€ÐµÑ…Ñ–Ð´ Ð¼Ñ–Ð¶ Ñ€ÐµÐ¶Ð¸Ð¼Ð°Ð¼Ð¸ ISA; Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ñ–Ð±Ñ€Ð°Ñ‚Ð¸ Ð· ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¸Ð¼ Ð²Ð·Ð°Ñ”Ð¼Ð½Ð¸Ð¼ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼\n"
+
+#: elfxx-mips.c:6444
+msgid "%X%H: Cannot convert branch between ISA modes to JALX: relocation out of range\n"
+msgstr "%X%H: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÑŽÐ²Ð°Ñ‚Ð¸ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Ð¼Ñ–Ð¶ Ñ€ÐµÐ¶Ð¸Ð¼Ð°Ð¼Ð¸ ISA Ð½Ð° JALX: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð¿Ñ€Ð¸Ð¿ÑƒÑ�Ñ‚Ð¸Ð¼Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ\n"
+
+#: elfxx-mips.c:6456
+msgid "%X%H: Unsupported branch between ISA modes\n"
+msgstr "%X%H: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Ð¼Ñ–Ð¶ Ñ€ÐµÐ¶Ð¸Ð¼Ð°Ð¼Ð¸ ISA\n"
 
-#: elfxx-mips.c:6519 elfxx-mips.c:6742
+#: elfxx-mips.c:7134 elfxx-mips.c:7369
+#, c-format
 msgid "%B: Warning: bad `%s' option size %u smaller than its header"
 msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Â«%sÂ», %u, Ð¼ÐµÐ½ÑˆÐ¸Ð¹ Ð·Ð° Ð¹Ð¾Ð³Ð¾ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº"
 
-#: elfxx-mips.c:7495 elfxx-mips.c:7620
+#: elfxx-mips.c:8125 elfxx-mips.c:8251
+#, c-format
 msgid "%B: Warning: cannot determine the target function for stub section `%s'"
 msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ„ÑƒÐ½ÐºÑ†Ñ–ÑŽ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°, Â«%sÂ»"
 
-#: elfxx-mips.c:7749
+#: elfxx-mips.c:8383
+#, c-format
 msgid "%B: Malformed reloc detected for section %s"
 msgstr "%B: Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑƒ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ– Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ�"
 
-#: elfxx-mips.c:7801
+#: elfxx-mips.c:8459
+#, c-format
 msgid "%B: GOT reloc at 0x%lx not expected in executables"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� GOT Ñƒ 0x%lx Ñ” Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¼ Ñƒ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ð°Ñ…"
 
-#: elfxx-mips.c:7930
-msgid "%B: CALL16 reloc at 0x%lx not against global symbol"
-msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CALL16 Ñƒ 0x%lx Ð½Ðµ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
+#: elfxx-mips.c:8597
+#, c-format
+msgid "%B: CALL16 reloc at 0x%lx not against global symbol"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� CALL16 Ñƒ 0x%lx Ð½Ðµ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
+
+#: elfxx-mips.c:9219
+#, c-format
+msgid "non-dynamic relocations refer to dynamic symbol %s"
+msgstr "Ð½ÐµÐ´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ�Ð¸Ð»Ð°ÑŽÑ‚ÑŒÑ�Ñ� Ð½Ð° Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð», %s"
+
+#: elfxx-mips.c:10139
+#, c-format
+msgid "%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� LO16 Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð´Ð»Ñ� %s Ñƒ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»"
+
+#: elfxx-mips.c:10279
+msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)"
+msgstr "Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð¼Ð°Ð»Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” 64 ÐºÐ‘; Ð½Ð¸Ð¶Ñ‡Ð¸Ð¹ Ð·Ð° Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð¼Ð°Ð»Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… (Ð´Ð¸Ð². Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ -G)"
+
+#: elfxx-mips.c:10298
+msgid "Cannot convert a jump to JALX for a non-word-aligned address"
+msgstr "Ð�ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ…Ñ–Ð´ Ð½Ð° JALX Ð´Ð»Ñ� Ð°Ð´Ñ€ÐµÑ�Ð¸, Ñ�ÐºÑƒ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾ Ð½Ð° Ð¼ÐµÐ¶Ñƒ Ñ�Ð»Ð¾Ð²Ð°"
+
+#: elfxx-mips.c:10301
+msgid "Jump to a non-word-aligned address"
+msgstr "ÐŸÐµÑ€ÐµÑ…Ñ–Ð´ Ð´Ð¾ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾Ñ— Ð·Ð° Ñ�Ð»Ð¾Ð²Ð¾Ð¼ Ð°Ð´Ñ€ÐµÑ�Ð¸"
+
+#: elfxx-mips.c:10302
+msgid "Jump to a non-instruction-aligned address"
+msgstr "JALX Ð´Ð¾ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾Ñ— Ð·Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ”ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¸"
+
+#: elfxx-mips.c:10305
+msgid "Cannot convert a branch to JALX for a non-word-aligned address"
+msgstr "Ð�ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Ð½Ð° JALX Ð´Ð»Ñ� Ð°Ð´Ñ€ÐµÑ�Ð¸, Ñ�ÐºÑƒ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾ Ð½Ð° Ð¼ÐµÐ¶Ñƒ Ñ�Ð»Ð¾Ð²Ð°"
+
+#: elfxx-mips.c:10307
+msgid "Branch to a non-instruction-aligned address"
+msgstr "Ð Ð¾Ð·Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� Ð´Ð¾ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾Ñ— Ð·Ð° Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ”ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¸"
+
+#: elfxx-mips.c:10309
+msgid "PC-relative load from unaligned address"
+msgstr "Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ� Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ð¾ PC Ð· Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð¸"
+
+#: elfxx-mips.c:10683 elfxx-mips.c:11251
+#, c-format
+msgid "%B: `%A' offset of %ld from `%A' beyond the range of ADDIUPC"
+msgstr "%B: Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ� Â«%AÂ» %ld Ð· Â«%AÂ» Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¿Ð¾Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ ADDIUPC"
+
+#: elfxx-mips.c:14174
+#, c-format
+msgid "%B: Unknown architecture %s"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð° %s"
+
+#: elfxx-mips.c:14704
+#, c-format
+msgid "%B: illegal section name `%A'"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð½Ð°Ð·Ð²Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Â«%AÂ»"
+
+#: elfxx-mips.c:14981
+msgid "%B: warning: linking abicalls files with non-abicalls files"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² abicalls Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· abicalls"
+
+#: elfxx-mips.c:14998
+msgid "%B: linking 32-bit code with 64-bit code"
+msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ Ð· 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼ ÐºÐ¾Ð´Ð¾Ð¼"
+
+#: elfxx-mips.c:15030 elfxx-mips.c:15096 elfxx-mips.c:15111
+#, c-format
+msgid "%B: linking %s module with previous %s modules"
+msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÑ”Ð¼Ð¾ Ð¼Ð¾Ð´ÑƒÐ»ÑŒ %s Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸ %s"
+
+#: elfxx-mips.c:15054
+#, c-format
+msgid "%B: ABI mismatch: linking %s module with previous %s modules"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ABI: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ð¾Ð´ÑƒÐ»Ñ� %s Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸ %s"
 
-#: elfxx-mips.c:8645
+#: elfxx-mips.c:15079
 #, c-format
-msgid "non-dynamic relocations refer to dynamic symbol %s"
-msgstr "Ð½ÐµÐ´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ñ– Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ�Ð¸Ð»Ð°ÑŽÑ‚ÑŒÑ�Ñ� Ð½Ð° Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð», %s"
+msgid "%B: ASE mismatch: linking %s module with previous %s modules"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ASE: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ð¾Ð´ÑƒÐ»Ñ� %s Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸ %s"
 
-#: elfxx-mips.c:9347
-msgid "%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'"
-msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� LO16 Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð´Ð»Ñ� %s Ñƒ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»"
+#: elfxx-mips.c:15214
+msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses unknown floating point ABI %d"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ð· Ñ‡Ð¸Ñ�Ð»Ð°Ð¼Ð¸ Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ, %d, (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %B), Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI Ð´Ð»Ñ� Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ, %d"
 
-#: elfxx-mips.c:9486
-msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)"
-msgstr "Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð¼Ð°Ð»Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” 64 ÐºÐ‘; Ð½Ð¸Ð¶Ñ‡Ð¸Ð¹ Ð·Ð° Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð¼Ð°Ð»Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… (Ð´Ð¸Ð². Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ -G)"
+#: elfxx-mips.c:15220
+#, c-format
+msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses %s"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ð· Ñ‡Ð¸Ñ�Ð»Ð°Ð¼Ð¸ Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ, %d, (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %B), Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” %s"
 
-#: elfxx-mips.c:9505
-msgid "JALX to a non-word-aligned address"
-msgstr "JALX Ð´Ð¾ Ð½Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¾Ñ— Ð·Ð° Ñ�Ð»Ð¾Ð²Ð¾Ð¼ Ð°Ð´Ñ€ÐµÑ�Ð¸"
+#: elfxx-mips.c:15226
+#, c-format
+msgid "Warning: %B uses %s (set by %B), %B uses unknown floating point ABI %d"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” %s (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %B), Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI Ð´Ð»Ñ� Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ð· Ñ‡Ð¸Ñ�Ð»Ð°Ð¼Ð¸ Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ, %d"
 
-#: elfxx-mips.c:13266
+#: elfxx-mips.c:15240
 #, c-format
-msgid "%s: illegal section name `%s'"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð½Ð°Ð·Ð²Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Â«%sÂ»"
+msgid "Warning: %B uses %s (set by %B), %B uses %s"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” %s (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %B), Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” %s"
 
-#: elfxx-mips.c:13645 elfxx-mips.c:13671
-msgid "Warning: %B uses -msingle-float, %B uses -mdouble-float"
-msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ -msingle-float, Ð° Ñƒ %B â€” -mdouble-float"
+#: elfxx-mips.c:15259
+#, c-format
+msgid "Warning: %B uses %s (set by %B), %B uses unknown MSA ABI %d"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” %s (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %B), Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI MSA, %d"
 
-#: elfxx-mips.c:13657 elfxx-mips.c:13713
-msgid "Warning: %B uses -msingle-float, %B uses -mips32r2 -mfp64"
-msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ -msingle-float, Ð° Ñƒ %B â€” -mips32r2 -mfp64"
+#: elfxx-mips.c:15271
+#, c-format
+msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses %s"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI MSA, %d, (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %B), Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” %s"
 
-#: elfxx-mips.c:13683 elfxx-mips.c:13719
-msgid "Warning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64"
-msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ -mdouble-float, Ð° Ñƒ %B â€” -mips32r2 -mfp64"
+#: elfxx-mips.c:15280
+#, c-format
+msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses unknown MSA ABI %d"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI MSA %d (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ %B), Ð° %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI MSA, %d"
 
-#: elfxx-mips.c:13761
+#: elfxx-mips.c:15342
 msgid "%B: endianness incompatible with that of the selected emulation"
 msgstr "%B: Ð¿Ð¾Ñ€Ñ�Ð´Ð¾Ðº Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ñ” Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¼ Ð· Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ñ— ÐµÐ¼ÑƒÐ»Ñ�Ñ†Ñ–Ñ—"
 
-#: elfxx-mips.c:13772
+#: elfxx-mips.c:15356
 msgid "%B: ABI is incompatible with that of the selected emulation"
 msgstr "%B: ABI Ñ” Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¼ Ð· ABI Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ñ— ÐµÐ¼ÑƒÐ»Ñ�Ñ†Ñ–Ñ—"
 
-#: elfxx-mips.c:13856
-msgid "%B: warning: linking abicalls files with non-abicalls files"
-msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² abicalls Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· abicalls"
+#: elfxx-mips.c:15408
+msgid "%B: warning: Inconsistent ISA between e_flags and .MIPS.abiflags"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ–Ñ�Ñ‚ÑŒ ISA Ð¼Ñ–Ð¶ e_flags Ñ– .MIPS.abiflags"
 
-#: elfxx-mips.c:13873
-msgid "%B: linking 32-bit code with 64-bit code"
-msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ Ð· 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼ ÐºÐ¾Ð´Ð¾Ð¼"
+#: elfxx-mips.c:15413
+msgid "%B: warning: Inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ–Ñ�Ñ‚ÑŒ ABI FP Ð¼Ñ–Ð¶ .gnu.attributes Ñ– .MIPS.abiflags"
 
-#: elfxx-mips.c:13901
-msgid "%B: linking %s module with previous %s modules"
-msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÑ”Ð¼Ð¾ Ð¼Ð¾Ð´ÑƒÐ»ÑŒ %s Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸ %s"
+#: elfxx-mips.c:15417
+msgid "%B: warning: Inconsistent ASEs between e_flags and .MIPS.abiflags"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ–Ñ�Ñ‚ÑŒ ASE Ð¼Ñ–Ð¶ e_flags Ñ– .MIPS.abiflags"
 
-#: elfxx-mips.c:13924
-msgid "%B: ABI mismatch: linking %s module with previous %s modules"
-msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ABI: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ð¾Ð´ÑƒÐ»Ñ� %s Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸ %s"
+#: elfxx-mips.c:15424
+msgid "%B: warning: Inconsistent ISA extensions between e_flags and .MIPS.abiflags"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ñ–Ñ�Ñ‚ÑŒ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½ÑŒ ISA Ð¼Ñ–Ð¶ e_flags Ñ– .MIPS.abiflags"
 
-#: elfxx-mips.c:13948
-msgid "%B: ASE mismatch: linking %s module with previous %s modules"
-msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ASE: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¼Ð¾Ð´ÑƒÐ»Ñ� %s Ð· Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ð¼Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸ %s"
+#: elfxx-mips.c:15428
+msgid "%B: warning: Unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€ÐµÑ†ÑŒ Ñƒ Ð¿Ð¾Ð»Ñ– flags2 .MIPS.abiflags (0x%lx)"
+
+#: elfxx-mips.c:15617
+msgid "-mips32r2 -mfp64 (12 callee-saved)"
+msgstr "-mips32r2 -mfp64 (12 Ð±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð¸Ñ… Ð´Ð»Ñ� Ð²Ð¸ÐºÐ»Ð¸ÐºÑ–Ð² Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð²)"
+
+#: elfxx-mips.c:15667 elfxx-mips.c:15678
+msgid "None"
+msgstr "Ð�ÐµÐ¼Ð°Ñ”"
+
+#: elfxx-mips.c:15669 elfxx-mips.c:15741
+msgid "Unknown"
+msgstr "Ð�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹"
+
+#: elfxx-mips.c:15752
+#, c-format
+msgid "Hard or soft float\n"
+msgstr "Ð�Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ð°Ð±Ð¾ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð° Ñ€ÑƒÑ…Ð¾Ð¼Ð° ÐºÑ€Ð°Ð¿ÐºÐ°\n"
+
+#: elfxx-mips.c:15755
+#, c-format
+msgid "Hard float (double precision)\n"
+msgstr "Ð�Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ñ€ÑƒÑ…Ð¾Ð¼Ð° ÐºÑ€Ð°Ð¿ÐºÐ° (Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð° Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŒ)\n"
+
+#: elfxx-mips.c:15758
+#, c-format
+msgid "Hard float (single precision)\n"
+msgstr "Ð�Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ñ€ÑƒÑ…Ð¾Ð¼Ð° ÐºÑ€Ð°Ð¿ÐºÐ° (Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð° Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŒ)\n"
+
+#: elfxx-mips.c:15761
+#, c-format
+msgid "Soft float\n"
+msgstr "ÐŸÑ€Ð¾Ð³Ñ€Ð°Ð¼Ð° Ñ€ÑƒÑ…Ð¾Ð¼Ð° ÐºÑ€Ð°Ð¿ÐºÐ°\n"
+
+#: elfxx-mips.c:15764
+#, c-format
+msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
+msgstr "Ð�Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ñ€ÑƒÑ…Ð¾Ð¼Ð° ÐºÑ€Ð°Ð¿ÐºÐ° (64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ñ�Ð¿Ñ–Ð²Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€ MIPS32r2, 12 Ð±ÐµÐ·Ð¿ÐµÑ‡Ð½Ð¸Ñ… Ð´Ð»Ñ� Ð²Ð¸ÐºÐ»Ð¸ÐºÑ–Ð² Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð²)\n"
+
+#: elfxx-mips.c:15767
+#, c-format
+msgid "Hard float (32-bit CPU, Any FPU)\n"
+msgstr "Ð�Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ñ€ÑƒÑ…Ð¾Ð¼Ð° ÐºÑ€Ð°Ð¿ÐºÐ° (32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€, Ð±ÑƒÐ´ÑŒ-Ñ�ÐºÐ¸Ð¹ FPU)\n"
+
+#: elfxx-mips.c:15770
+#, c-format
+msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
+msgstr "Ð�Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ñ€ÑƒÑ…Ð¾Ð¼Ð° ÐºÑ€Ð°Ð¿ÐºÐ° (32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€, 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ FPU)\n"
+
+#: elfxx-mips.c:15773
+#, c-format
+msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
+msgstr "Ð¡ÑƒÐ¼Ñ–Ñ�Ð½Ñ–Ñ�Ñ‚ÑŒ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¾Ñ— Ñ€ÑƒÑ…Ð¾Ð¼Ð¾Ñ— ÐºÑ€Ð°Ð¿ÐºÐ¸ (32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€, 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ FPU)\n"
 
-#: elfxx-mips.c:14106
+#: elfxx-mips.c:15805
 #, c-format
 msgid " [abi=O32]"
 msgstr " [abi=O32]"
 
-#: elfxx-mips.c:14108
+#: elfxx-mips.c:15807
 #, c-format
 msgid " [abi=O64]"
 msgstr " [abi=O64]"
 
-#: elfxx-mips.c:14110
+#: elfxx-mips.c:15809
 #, c-format
 msgid " [abi=EABI32]"
 msgstr " [abi=EABI32]"
 
-#: elfxx-mips.c:14112
+#: elfxx-mips.c:15811
 #, c-format
 msgid " [abi=EABI64]"
 msgstr " [abi=EABI64]"
 
-#: elfxx-mips.c:14114
+#: elfxx-mips.c:15813
 #, c-format
 msgid " [abi unknown]"
 msgstr " [Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ abi]"
 
-#: elfxx-mips.c:14116
+#: elfxx-mips.c:15815
 #, c-format
 msgid " [abi=N32]"
 msgstr " [abi=N32]"
 
-#: elfxx-mips.c:14118
+#: elfxx-mips.c:15817
 #, c-format
 msgid " [abi=64]"
 msgstr " [abi=64]"
 
-#: elfxx-mips.c:14120
+#: elfxx-mips.c:15819
 #, c-format
 msgid " [no abi set]"
 msgstr " [Ð½Ðµ Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ abi]"
 
-#: elfxx-mips.c:14141
+#: elfxx-mips.c:15844
 #, c-format
 msgid " [unknown ISA]"
 msgstr " [Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ISA]"
 
-#: elfxx-mips.c:14155
+#: elfxx-mips.c:15864
 #, c-format
 msgid " [not 32bitmode]"
 msgstr " [Ð½Ðµ 32-Ð±Ñ–Ñ‚.Ñ€ÐµÐ¶Ð¸Ð¼]"
 
-#: elfxx-sparc.c:596
+#: elfxx-riscv.c:948
+#, c-format
+msgid "unrecognized relocation (0x%x)"
+msgstr "Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (0x%x)"
+
+#: elfxx-sparc.c:639
 #, c-format
 msgid "invalid relocation type %d"
 msgstr "Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d"
 
-#: elfxx-tilegx.c:3952
+#: elfxx-sparc.c:3301
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5002
+#, c-format
+msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ STT_GNU_IFUNC Â«%sÂ» Ð½Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»Ñ�Ñ”Ñ‚ÑŒÑ�Ñ� %s"
+
+#: elfxx-tilegx.c:4436
+#, c-format
 msgid "%B: Cannot link together %s and %s objects."
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð¸ %s Ñ‚Ð° %s."
 
-#: i386linux.c:451 m68klinux.c:456 sparclinux.c:450
+#: i386linux.c:416 m68klinux.c:419 sparclinux.c:412
 #, c-format
 msgid "Output file requires shared library `%s'\n"
 msgstr "Ð¤Ð°Ð¹Ð»Ñƒ-Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñƒ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð° Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Â«%sÂ»\n"
 
-#: i386linux.c:459 m68klinux.c:464 sparclinux.c:458
+#: i386linux.c:424 m68klinux.c:428 sparclinux.c:421
 #, c-format
 msgid "Output file requires shared library `%s.so.%s'\n"
 msgstr "Ð¤Ð°Ð¹Ð»Ñƒ-Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñƒ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð° Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Â«%s.so.%sÂ»\n"
 
-#: i386linux.c:648 i386linux.c:698 m68klinux.c:656 m68klinux.c:704
-#: sparclinux.c:648 sparclinux.c:698
+#: i386linux.c:611 i386linux.c:661 m68klinux.c:617 m68klinux.c:665
+#: sparclinux.c:608 sparclinux.c:658
 #, c-format
 msgid "Symbol %s not defined for fixups\n"
 msgstr "Ð¡Ð¸Ð¼Ð²Ð¾Ð» %s Ð½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ� Ð°Ð´Ñ€ÐµÑ�Ð½Ð¸Ñ… Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·Ð¾Ðº\n"
 
-#: i386linux.c:722 m68klinux.c:728 sparclinux.c:722
+#: i386linux.c:685 m68klinux.c:689 sparclinux.c:682
 msgid "Warning: fixup count mismatch\n"
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐ²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ñ–Ñ�Ñ‚ÑŒ ÐºÑ–Ð»ÑŒÐºÐ¾Ñ�Ñ‚Ñ– Ð°Ð´Ñ€ÐµÑ�Ð½Ð¸Ñ… Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·Ð¾Ðº\n"
 
 #: ieee.c:159
 #, c-format
-msgid "%s: string too long (%d chars, max 65535)"
-msgstr "%s: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð´Ð¾Ð²Ð³Ð¸Ð¹ Ñ€Ñ�Ð´Ð¾Ðº (%d Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð², Ð¼Ð°ÐºÑ�. Ðº-Ñ‚ÑŒ â€” 65535)"
+msgid "%B: string too long (%d chars, max 65535)"
+msgstr "%B: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð´Ð¾Ð²Ð³Ð¸Ð¹ Ñ€Ñ�Ð´Ð¾Ðº (%d Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð², Ð¼Ð°ÐºÑ�. Ðº-Ñ‚ÑŒ â€” 65535)"
+
+#: ieee.c:226
+#, c-format
+msgid "IEEE parser: string length: %#lx longer than buffer: %#lx"
+msgstr "Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸Ðº IEEE: Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ñ�Ð´ÐºÐ°: %#lx Ð´Ð¾Ð²ÑˆÐ¸Ð¹ Ð·Ð° Ð±ÑƒÑ„ÐµÑ€: %#lx"
 
-#: ieee.c:286
+#: ieee.c:302
 #, c-format
-msgid "%s: unrecognized symbol `%s' flags 0x%x"
-msgstr "%s: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», 0x%x"
+msgid "%B: unrecognized symbol `%s' flags 0x%x"
+msgstr "%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ñ– Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», 0x%x"
 
-#: ieee.c:792
+#: ieee.c:837
+#, c-format
 msgid "%B: unimplemented ATI record %u for symbol %u"
 msgstr "%B: Ð½ÐµÑ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� ATI, %u, Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %u"
 
-#: ieee.c:816
+#: ieee.c:862
+#, c-format
 msgid "%B: unexpected ATN type %d in external part"
 msgstr "%B: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ ATN, %d, Ñƒ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ð¹ Ñ‡Ð°Ñ�Ñ‚Ð¸Ð½Ñ–"
 
-#: ieee.c:838
+#: ieee.c:884
 msgid "%B: unexpected type after ATN"
 msgstr "%B: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿Ñ–Ñ�Ð»Ñ� ATN"
 
 #: ihex.c:230
+#, c-format
 msgid "%B:%d: unexpected character `%s' in Intel Hex file"
 msgstr "%B:%d: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñƒ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Intel"
 
-#: ihex.c:337
+#: ihex.c:338
+#, c-format
 msgid "%B:%u: bad checksum in Intel Hex file (expected %u, found %u)"
 msgstr "%B:%u: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð° Ñ�ÑƒÐ¼Ð° Ñƒ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Intel (Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� %u, Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ %u)"
 
-#: ihex.c:392
+#: ihex.c:394
+#, c-format
 msgid "%B:%u: bad extended address record length in Intel Hex file"
 msgstr "%B:%u: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ð·Ð°Ð¿Ð¸Ñ�Ñƒ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð¸ Ñƒ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Intel"
 
-#: ihex.c:409
+#: ihex.c:412
+#, c-format
 msgid "%B:%u: bad extended start address length in Intel Hex file"
 msgstr "%B:%u: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ñ— Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð¸ Ñƒ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Intel"
 
-#: ihex.c:426
+#: ihex.c:430
+#, c-format
 msgid "%B:%u: bad extended linear address record length in Intel Hex file"
 msgstr "%B:%u: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ð·Ð°Ð¿Ð¸Ñ�Ñƒ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ñ— Ð»Ñ–Ð½Ñ–Ð¹Ð½Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð¸ Ñƒ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Intel"
 
-#: ihex.c:443
+#: ihex.c:448
+#, c-format
 msgid "%B:%u: bad extended linear start address length in Intel Hex file"
 msgstr "%B:%u: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ñ— Ð»Ñ–Ð½Ñ–Ð¹Ð½Ð¾Ñ— Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— Ð°Ð´Ñ€ÐµÑ�Ð¸ Ñƒ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Intel"
 
-#: ihex.c:460
+#: ihex.c:466
+#, c-format
 msgid "%B:%u: unrecognized ihex type %u in Intel Hex file"
 msgstr "%B:%u: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ ihex %u Ñƒ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Intel"
 
-#: ihex.c:579
+#: ihex.c:585
 msgid "%B: internal error in ihex_read_section"
 msgstr "%B: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ ihex_read_section"
 
-#: ihex.c:613
+#: ihex.c:619
 msgid "%B: bad section length in ihex_read_section"
 msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñƒ ihex_read_section"
 
-#: ihex.c:826
+#: ihex.c:833
 #, c-format
-msgid "%s: address 0x%s out of range for Intel Hex file"
-msgstr "%s: Ð°Ð´Ñ€ÐµÑ�Ð° 0x%s Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° Intel"
+msgid "%B: address 0x%s out of range for Intel Hex file"
+msgstr "%B: Ð°Ð´Ñ€ÐµÑ�Ð° 0x%s Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ ÑˆÑ–Ñ�Ñ‚Ð½Ð°Ð´Ñ†Ñ�Ñ‚ÐºÐ¾Ð²Ð¾Ð³Ð¾ Ñ„Ð°Ð¹Ð»Ð° Intel"
 
-#: libbfd.c:863
+#: libbfd.c:799
+#, c-format
 msgid "%B: unable to get decompressed section %A"
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» %A"
 
-#: libbfd.c:1012
-msgid "%B: compiled for a big endian system and target is little endian"
-msgstr "%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¸ Ð· Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð², Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ñ” Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð° Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²"
-
-#: libbfd.c:1014
-msgid "%B: compiled for a little endian system and target is big endian"
-msgstr "%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¸ Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð², Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ñ” Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð° Ð·Ñ– Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²"
-
-#: libbfd.c:1043
+#: libbfd.c:963
 #, c-format
 msgid "Deprecated %s called at %s line %d in %s\n"
 msgstr "Ð’Ð¸ÐºÐ»Ð¸ÐºÐ°Ð½Ð¾ Ð·Ð°Ñ�Ñ‚Ð°Ñ€Ñ–Ð»Ñƒ %s Ñƒ %s, Ñ€Ñ�Ð´Ð¾Ðº %d Ñƒ %s\n"
 
-#: libbfd.c:1046
+#: libbfd.c:966
 #, c-format
 msgid "Deprecated %s called\n"
 msgstr "Ð’Ð¸ÐºÐ»Ð¸ÐºÐ°Ð½Ð¾ Ð·Ð°Ñ�Ñ‚Ð°Ñ€Ñ–Ð»Ñƒ %s\n"
 
-#: linker.c:1872
+#: linker.c:1669
+#, c-format
 msgid "%B: indirect symbol `%s' to `%s' is a loop"
 msgstr "%B: Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð´Ð»Ñ� Â«%sÂ» Ñ” Ñ†Ð¸ÐºÐ»Ð¾Ð¼"
 
-#: linker.c:2736
+#: linker.c:2539
 #, c-format
 msgid "Attempt to do relocatable link with %s input and %s output"
 msgstr "Ð¡Ð¿Ñ€Ð¾Ð±Ð° Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð·Ð²â€™Ñ�Ð·ÐºÑƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· Ð²Ñ…Ñ–Ð´Ð½Ð¸Ð¼ %s Ñ– Ð²Ð¸Ñ…Ñ–Ð´Ð½Ð¸Ð¼ %s"
 
-#: linker.c:3021
+#: linker.c:2825
+#, c-format
 msgid "%B: ignoring duplicate section `%A'\n"
 msgstr "%B: Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ð¼Ð¾ Ð´ÑƒÐ±Ð»Ñ–ÐºÐ°Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ»\n"
 
-#: linker.c:3030 linker.c:3039
+#: linker.c:2835 linker.c:2845
+#, c-format
 msgid "%B: duplicate section `%A' has different size\n"
 msgstr "%B: Ð´ÑƒÐ±Ð»Ñ–ÐºÐ°Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð¼Ð°Ñ” Ñ–Ð½ÑˆÐ¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€\n"
 
-#: linker.c:3047 linker.c:3052
+#: linker.c:2854 linker.c:2860
+#, c-format
 msgid "%B: could not read contents of section `%A'\n"
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ»\n"
 
-#: linker.c:3056
+#: linker.c:2865
+#, c-format
 msgid "%B: duplicate section `%A' has different contents\n"
 msgstr "%B: Ð´ÑƒÐ±Ð»Ñ–ÐºÐ°Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ð¼Ð°Ñ” Ñ–Ð½ÑˆÐ¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚\n"
 
-#: mach-o.c:407
+#: linker.c:3353
+msgid "%B: compiled for a big endian system and target is little endian"
+msgstr "%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¸ Ð· Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð², Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ñ” Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð° Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²"
+
+#: linker.c:3356
+msgid "%B: compiled for a little endian system and target is big endian"
+msgstr "%B: Ð·Ñ–Ð±Ñ€Ð°Ð½Ð¾ Ð´Ð»Ñ� Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¸ Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð², Ð° Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�Ð¼ Ñ” Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð° Ð·Ñ– Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²"
+
+#: mach-o.c:779
 msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols"
 msgstr "bfd_mach_o_canonicalize_symtab: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸"
 
-#: mach-o.c:1301
+#: mach-o.c:1981
+msgid "sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab commands."
+msgstr "Ð²Ð¸Ð±ÐµÑ‡Ñ‚Ðµ, modtab, toc Ñ‚Ð° extrefsyms Ð´Ð»Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´ dysymtab Ñƒ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ñ–Ð¹ Ð²ÐµÑ€Ñ�Ñ–Ñ— Ñ‰Ðµ Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾."
+
+#: mach-o.c:2424
+#, c-format
+msgid "mach-o: there are too many sections (%u) maximum is 255,\n"
+msgstr "mach-o: Ð½Ð°Ð´Ñ‚Ð¾ Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² (%u), Ð¼Ð°ÐºÑ�Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð° ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” 255,\n"
+
+#: mach-o.c:2531
+#, c-format
+msgid "unable to allocate data for load command 0x%lx"
+msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚Ð¸ Ð´Ð°Ð½Ñ– Ð´Ð»Ñ� ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ� 0x%lx"
+
+#: mach-o.c:2636
 #, c-format
 msgid "unable to write unknown load command 0x%lx"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¸Ñ�Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ�, 0x%lx"
 
-#: mach-o.c:1789
+#: mach-o.c:2820
+#, c-format
+msgid "section address (%lx) below start of segment (%lx)"
+msgstr "Ð°Ð´Ñ€ÐµÑ�Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ (%lx) Ð½Ð¸Ð¶Ñ‡Ðµ Ð·Ð° Ð¿Ð¾Ñ‡Ð°Ñ‚Ð¾Ðº Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð° (%lx)"
+
+#: mach-o.c:2961
+#, c-format
+msgid "unable to layout unknown load command 0x%lx"
+msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ�, 0x%lx"
+
+#: mach-o.c:3497
+#, c-format
+msgid "bfd_mach_o_read_section_32: overlarge alignment value: 0x%x, using 32 instead"
+msgstr "bfd_mach_o_read_section_32: Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ�: 0x%x, Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ð¼Ð¾ Ð·Ð°Ð¼Ñ–Ñ�Ñ‚ÑŒ Ð½ÑŒÐ¾Ð³Ð¾ 32"
+
+#: mach-o.c:3540
+#, c-format
+msgid "bfd_mach_o_read_section_64: overlarge alignment value: 0x%x, using 32 instead"
+msgstr "bfd_mach_o_read_section_64: Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ�: 0x%x, Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ð¼Ð¾ Ð·Ð°Ð¼Ñ–Ñ�Ñ‚ÑŒ Ð½ÑŒÐ¾Ð³Ð¾ 32"
+
+#: mach-o.c:3591
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu"
 msgstr "bfd_mach_o_read_symtab_symbol: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %d Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ñƒ %lu"
 
-#: mach-o.c:1807
+#: mach-o.c:3610
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)"
 msgstr "bfd_mach_o_read_symtab_symbol: Ð½Ð°Ð·Ð²Ð° Ð·Ð° Ð¼ÐµÐ¶Ð°Ð¼Ð¸ Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ð½Ð¾Ð³Ð¾ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ (%lu >= %lu)"
 
-#: mach-o.c:1892
+#: mach-o.c:3693
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined"
 msgstr "bfd_mach_o_read_symtab_symbol: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» %d (max %lu): Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÑŽÑ”Ð¼Ð¾ Ñƒ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�"
 
-#: mach-o.c:1900
-#, c-format
-msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" is unsupported 'indirect' reference: setting to undefined"
-msgstr "bfd_mach_o_read_symtab_symbol: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñ” Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¼ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ�Ð¼ Â«indirectÂ»: Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÑŽÑ”Ð¼Ð¾ Ñƒ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�"
-
-#: mach-o.c:1906
+#: mach-o.c:3712
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined"
 msgstr "bfd_mach_o_read_symtab_symbol: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿Ð¾Ð»Ñ� 0x%x: Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÑŽÑ”Ð¼Ð¾ Ñƒ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�"
 
-#: mach-o.c:1979
+#: mach-o.c:3786
 msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols"
 msgstr "bfd_mach_o_read_symtab_symbols: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð¾Ð±Ð»Ð°Ñ�Ñ‚ÑŒ Ð¿Ð°Ð¼â€™Ñ�Ñ‚Ñ– Ð´Ð»Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²"
 
-#: mach-o.c:2014
-#, c-format
-msgid "bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu"
-msgstr "bfd_mach_o_read_dysymtab_symbol: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %lu Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ð· %lu"
-
-#: mach-o.c:2734
-#, c-format
-msgid "unable to read unknown load command 0x%lx"
-msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñƒ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ�, 0x%lx"
+#: mach-o.c:4759
+msgid "%B: unknown load command 0x%lx"
+msgstr "%B: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ�, 0x%lx"
 
-#: mach-o.c:2915
+#: mach-o.c:4950
 #, c-format
 msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"
 msgstr "bfd_mach_o_scan: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð°, 0x%lx/0x%lx"
 
-#: mach-o.c:3011
+#: mach-o.c:5055
 #, c-format
 msgid "unknown header byte-order value 0x%lx"
 msgstr "Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð¿Ð¾Ñ€Ñ�Ð´ÐºÑƒ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ñƒ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑƒ, 0x%lx"
 
-#: mach-o.c:3577
-msgid "Mach-O header:\n"
-msgstr "Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Mach-O:\n"
-
-#: mach-o.c:3578
-#, c-format
-msgid " magic     : %08lx\n"
-msgstr " magic     : %08lx\n"
-
-#: mach-o.c:3579
-#, c-format
-msgid " cputype   : %08lx (%s)\n"
-msgstr " Ñ‚Ð¸Ð¿ Ð¿Ñ€Ð¾Ñ†. : %08lx (%s)\n"
-
-#: mach-o.c:3581
-#, c-format
-msgid " cpusubtype: %08lx\n"
-msgstr " Ð¿Ñ–Ð´Ñ‚Ð¸Ð¿ Ð¿Ñ€Ð¾Ñ†.: %08lx\n"
-
-#: mach-o.c:3582
-#, c-format
-msgid " filetype  : %08lx (%s)\n"
-msgstr " Ñ‚Ð¸Ð¿ Ñ„Ð°Ð¹Ð»Ð° : %08lx (%s)\n"
-
-#: mach-o.c:3585
-#, c-format
-msgid " ncmds     : %08lx (%lu)\n"
-msgstr " ÐºÑ‚ÑŒ_ÐºÐ¾Ð¼Ð°Ð½Ð´: %08lx (%lu)\n"
-
-#: mach-o.c:3586
+#: merge.c:864
 #, c-format
-msgid " sizeofcmds: %08lx\n"
-msgstr " Ñ€Ð¾Ð·Ð¼Ñ–Ñ€_ÐºÐ¼Ð´: %08lx\n"
+msgid "%B: access beyond end of merged section (%ld)"
+msgstr "%B: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð·Ð° ÐºÑ–Ð½Ñ†ÐµÐ¼ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ (%ld)"
 
-#: mach-o.c:3587
+#: mmo.c:468
 #, c-format
-msgid " flags     : %08lx ("
-msgstr " Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–  : %08lx ("
+msgid "%B: No core to allocate section name %s\n"
+msgstr "%B: Ð½ÐµÐ¼Ð°Ñ” Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ð´Ð»Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ� Ð½Ð°Ð·Ð²Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s\n"
 
-#: mach-o.c:3589 vms-alpha.c:7674
-msgid ")\n"
-msgstr ")\n"
-
-#: mach-o.c:3590
-#, c-format
-msgid " reserved  : %08x\n"
-msgstr " Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð². : %08x\n"
-
-#: mach-o.c:3600
-msgid "Segments and Sections:\n"
-msgstr "Ð¡ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð¸ Ñ– Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸:\n"
-
-#: mach-o.c:3601
-msgid " #: Segment name     Section name     Address\n"
-msgstr " #: Ð�Ð°Ð·Ð²Ð° Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°   Ð�Ð°Ð·Ð²Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ    Ð�Ð´Ñ€ÐµÑ�Ð°\n"
-
-#: merge.c:832
-#, c-format
-msgid "%s: access beyond end of merged section (%ld)"
-msgstr "%s: Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿ Ð·Ð° ÐºÑ–Ð½Ñ†ÐµÐ¼ Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ð½Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ (%ld)"
-
-#: mmo.c:456
+#: mmo.c:544
 #, c-format
-msgid "%s: No core to allocate section name %s\n"
-msgstr "%s: Ð½ÐµÐ¼Ð°Ñ” Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ð´Ð»Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ� Ð½Ð°Ð·Ð²Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s\n"
+msgid "%B: No core to allocate a symbol %d bytes long\n"
+msgstr "%B: Ð½ÐµÐ¼Ð°Ñ” Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ð´Ð»Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¾ÑŽ %d Ð±Ð°Ð¹Ñ‚Ñ–Ð²\n"
 
-#: mmo.c:531
+#: mmo.c:958
 #, c-format
-msgid "%s: No core to allocate a symbol %d bytes long\n"
-msgstr "%s: Ð½ÐµÐ¼Ð°Ñ” Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ð´Ð»Ñ� Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¾ÑŽ %d Ð±Ð°Ð¹Ñ‚Ñ–Ð²\n"
+msgid "%B: attempt to emit contents at non-multiple-of-4 address 0x%lx\n"
+msgstr "%B: Ñ�Ð¿Ñ€Ð¾Ð±Ð° Ð½Ð°Ð´Ñ–Ñ�Ð»Ð°Ñ‚Ð¸ Ð´Ð°Ð½Ñ– Ð½Ð° Ð½ÐµÐºÑ€Ð°Ñ‚Ð½Ñƒ Ð´Ð¾ 4 Ð°Ð´Ñ€ÐµÑ�Ñƒ 0x%lx\n"
 
-#: mmo.c:1187
-#, c-format
-msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð´Ð»Ñ� $255 Ð½Ðµ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” Â«MainÂ»\n"
+#: mmo.c:1255
+msgid "%B: invalid mmo file: initialization value for $255 is not `Main'\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð´Ð»Ñ� $255 Ð½Ðµ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” Â«MainÂ»\n"
 
-#: mmo.c:1332
+#: mmo.c:1402
 #, c-format
-msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
-msgstr "%s: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° ÑˆÐ¸Ñ€Ð¾ÐºÐ° Ð¿Ð¾Ñ�Ð»Ñ–Ð´Ð¾Ð²Ð½Ñ–Ñ�Ñ‚ÑŒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² 0x%02X 0x%02X Ð¿Ñ–Ñ�Ð»Ñ� Ð½Ð°Ð·Ð²Ð¸ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ð¿Ð¾Ñ‡Ð¸Ð½Ð°ÑŽÑ‡Ð¸ Ð· Â«%sÂ»\n"
+msgid "%B: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
+msgstr "%B: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° ÑˆÐ¸Ñ€Ð¾ÐºÐ° Ð¿Ð¾Ñ�Ð»Ñ–Ð´Ð¾Ð²Ð½Ñ–Ñ�Ñ‚ÑŒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² 0x%02X 0x%02X Ð¿Ñ–Ñ�Ð»Ñ� Ð½Ð°Ð·Ð²Ð¸ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ, Ð¿Ð¾Ñ‡Ð¸Ð½Ð°ÑŽÑ‡Ð¸ Ð· Â«%sÂ»\n"
 
-#: mmo.c:1565
+#: mmo.c:1636
 #, c-format
-msgid "%s: invalid mmo file: unsupported lopcode `%d'\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� lopcode, Â«%dÂ»\n"
+msgid "%B: invalid mmo file: unsupported lopcode `%d'\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� lopcode, Â«%dÂ»\n"
 
-#: mmo.c:1575
+#: mmo.c:1647
 #, c-format
-msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� YZ = 1, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ YZ = %d Ð´Ð»Ñ� lop_quote\n"
+msgid "%B: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� YZ = 1, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ YZ = %d Ð´Ð»Ñ� lop_quote\n"
 
-#: mmo.c:1611
+#: mmo.c:1685
 #, c-format
-msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� z = 1 Ð°Ð±Ð¾ z = 2, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ z = %d Ð´Ð»Ñ� lop_loc\n"
+msgid "%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� z = 1 Ð°Ð±Ð¾ z = 2, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ z = %d Ð´Ð»Ñ� lop_loc\n"
 
-#: mmo.c:1657
+#: mmo.c:1736
 #, c-format
-msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� z = 1 Ð°Ð±Ð¾ z = 2, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ z = %d Ð´Ð»Ñ� lop_fixo\n"
+msgid "%B: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� z = 1 Ð°Ð±Ð¾ z = 2, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ z = %d Ð´Ð»Ñ� lop_fixo\n"
 
-#: mmo.c:1696
+#: mmo.c:1777
 #, c-format
-msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� y=0, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ y = %d Ð´Ð»Ñ� lop_fixrx\n"
+msgid "%B: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� y=0, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ y = %d Ð´Ð»Ñ� lop_fixrx\n"
 
-#: mmo.c:1705
+#: mmo.c:1788
 #, c-format
-msgid "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� z = 16 Ð°Ð±Ð¾ z = 24, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ z = %d Ð´Ð»Ñ� lop_fixrx\n"
+msgid "%B: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð»Ð¾Ñ�Ñ� z = 16 Ð°Ð±Ð¾ z = 24, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ z = %d Ð´Ð»Ñ� lop_fixrx\n"
 
-#: mmo.c:1728
+#: mmo.c:1813
 #, c-format
-msgid "%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ð¼ Ð±Ð°Ð¹Ñ‚Ð¾Ð¼ Ñ�Ð»Ð¾Ð²Ð° Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð° Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ 0 Ð°Ð±Ð¾ 1, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ Ð¶ %d Ð´Ð»Ñ� lop_fixrx\n"
+msgid "%B: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ð¼ Ð±Ð°Ð¹Ñ‚Ð¾Ð¼ Ñ�Ð»Ð¾Ð²Ð° Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð° Ð¼Ð°Ñ” Ð±ÑƒÑ‚Ð¸ 0 Ð°Ð±Ð¾ 1, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾ Ð¶ %d Ð´Ð»Ñ� lop_fixrx\n"
 
-#: mmo.c:1751
+#: mmo.c:1838
 #, c-format
-msgid "%s: cannot allocate file name for file number %d, %d bytes\n"
-msgstr "%s: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚Ð¸ Ð½Ð°Ð·Ð²Ñƒ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ� Ñ„Ð°Ð¹Ð»Ð° Ð· Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ %d, %d Ð±Ð°Ð¹Ñ‚Ñ–Ð²\n"
+msgid "%B: cannot allocate file name for file number %d, %d bytes\n"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ€Ð¾Ð·Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚Ð¸ Ð½Ð°Ð·Ð²Ñƒ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ� Ñ„Ð°Ð¹Ð»Ð° Ð· Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ %d, %d Ð±Ð°Ð¹Ñ‚Ñ–Ð²\n"
 
-#: mmo.c:1771
+#: mmo.c:1860
 #, c-format
-msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð½Ð¾Ð¼ÐµÑ€ Ñ„Ð°Ð¹Ð»Ð° %d, Â«%sÂ», ÑƒÐ¶Ðµ Ð·Ð´Ñ–Ð¹Ñ�Ð½ÐµÐ½Ð¾ Ð²Ñ…Ñ–Ð´ Ñ�Ðº Ñƒ Â«%sÂ»\n"
+msgid "%B: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð½Ð¾Ð¼ÐµÑ€ Ñ„Ð°Ð¹Ð»Ð° %d, Â«%sÂ», ÑƒÐ¶Ðµ Ð·Ð´Ñ–Ð¹Ñ�Ð½ÐµÐ½Ð¾ Ð²Ñ…Ñ–Ð´ Ñ�Ðº Ñƒ Â«%sÂ»\n"
 
-#: mmo.c:1784
+#: mmo.c:1874
 #, c-format
-msgid "%s: invalid mmo file: file name for number %d was not specified before use\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð½Ð°Ð·Ð²Ñƒ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ� Ð½Ð¾Ð¼ÐµÑ€Ð° %d Ð½Ðµ Ð±ÑƒÐ»Ð¾ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ Ð´Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�\n"
+msgid "%B: invalid mmo file: file name for number %d was not specified before use\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð½Ð°Ð·Ð²Ñƒ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ� Ð½Ð¾Ð¼ÐµÑ€Ð° %d Ð½Ðµ Ð±ÑƒÐ»Ð¾ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ Ð´Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�\n"
 
-#: mmo.c:1890
+#: mmo.c:1981
 #, c-format
-msgid "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¿Ð¾Ð»Ñ� y Ñ– z lop_stab Ñ” Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼Ð¸, y: %d, z: %d\n"
+msgid "%B: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: Ð¿Ð¾Ð»Ñ� y Ñ– z lop_stab Ñ” Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼Ð¸, y: %d, z: %d\n"
 
-#: mmo.c:1926
+#: mmo.c:2018
 #, c-format
-msgid "%s: invalid mmo file: lop_end not last item in file\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: lop_end Ð½Ðµ Ñ” Ð¾Ñ�Ñ‚Ð°Ð½Ð½Ñ–Ð¼ Ð·Ð°Ð¿Ð¸Ñ�Ð¾Ð¼ Ñƒ Ñ„Ð°Ð¹Ð»Ñ–\n"
+msgid "%B: invalid mmo file: lop_end not last item in file\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: lop_end Ð½Ðµ Ñ” Ð¾Ñ�Ñ‚Ð°Ð½Ð½Ñ–Ð¼ Ð·Ð°Ð¿Ð¸Ñ�Ð¾Ð¼ Ñƒ Ñ„Ð°Ð¹Ð»Ñ–\n"
 
-#: mmo.c:1939
+#: mmo.c:2032
 #, c-format
-msgid "%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: YZ lop_end (%ld) Ð½Ðµ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” ÐºÑ–Ð»ÑŒÐºÐ¾Ñ�Ñ‚Ñ– Ñ‚ÐµÑ‚Ñ€Ð°Ð´ Ð´Ð¾ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ lop_stab (%ld)\n"
+msgid "%B: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ„Ð°Ð¹Ð» mmo: YZ lop_end (%ld) Ð½Ðµ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” ÐºÑ–Ð»ÑŒÐºÐ¾Ñ�Ñ‚Ñ– Ñ‚ÐµÑ‚Ñ€Ð°Ð´ Ð´Ð¾ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ lop_stab (%ld)\n"
 
-#: mmo.c:2649
+#: mmo.c:2743
 #, c-format
-msgid "%s: invalid symbol table: duplicate symbol `%s'\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»\n"
+msgid "%B: invalid symbol table: duplicate symbol `%s'\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»\n"
 
-#: mmo.c:2889
+#: mmo.c:2986
 #, c-format
-msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n"
-msgstr "%s: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ: Â«MainÂ» Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ Ñƒ %s, Ð° Ð½Ðµ Ñƒ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ñƒ Ð°Ð´Ñ€ÐµÑ�Ñƒ %s\n"
+msgid "%B: Bad symbol definition: `Main' set to %s rather than the start address %s\n"
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ: Â«MainÂ» Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¾ Ñƒ %s, Ð° Ð½Ðµ Ñƒ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ñƒ Ð°Ð´Ñ€ÐµÑ�Ñƒ %s\n"
 
-#: mmo.c:2981
+#: mmo.c:3085
 #, c-format
-msgid "%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d.  Only `Main' will be emitted.\n"
-msgstr "%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¾ÑŽ Ð´Ð»Ñ� mmo, Ñ—Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” 65535 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ñ�Ð»Ð¾Ð²Ð°: %d. Ð‘ÑƒÐ´Ðµ Ð²Ð¸Ð¿ÑƒÑ‰ÐµÐ½Ð¾ Ð»Ð¸ÑˆÐµ Â«MainÂ».\n"
+msgid "%B: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d.  Only `Main' will be emitted.\n"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¾ÑŽ Ð´Ð»Ñ� mmo, Ñ—Ñ— Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” 65535 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ñ�Ð»Ð¾Ð²Ð°: %d. Ð‘ÑƒÐ´Ðµ Ð²Ð¸Ð¿ÑƒÑ‰ÐµÐ½Ð¾ Ð»Ð¸ÑˆÐµ Â«MainÂ».\n"
 
-#: mmo.c:3026
+#: mmo.c:3131
 #, c-format
-msgid "%s: internal error, symbol table changed size from %d to %d words\n"
-msgstr "%s: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°, Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ð· %d Ð´Ð¾ %d Ñ�Ð»Ñ–Ð²\n"
+msgid "%B: internal error, symbol table changed size from %d to %d words\n"
+msgstr "%B: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°, Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ð· %d Ð´Ð¾ %d Ñ�Ð»Ñ–Ð²\n"
 
-#: mmo.c:3078
+#: mmo.c:3184
 #, c-format
-msgid "%s: internal error, internal register section %s had contents\n"
-msgstr "%s: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°, Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð², %s, Ð¼Ñ–Ñ�Ñ‚Ð¸Ð² Ð´Ð°Ð½Ñ–\n"
+msgid "%B: internal error, internal register section %A had contents\n"
+msgstr "%B: Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°, Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ–Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð², %A, Ð¼Ñ–Ñ�Ñ‚Ð¸Ð² Ð´Ð°Ð½Ñ–\n"
 
-#: mmo.c:3129
-#, c-format
-msgid "%s: no initialized registers; section length 0\n"
-msgstr "%s: Ð½ÐµÐ¼Ð°Ñ” Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð², Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” 0\n"
+#: mmo.c:3235
+msgid "%B: no initialized registers; section length 0\n"
+msgstr "%B: Ð½ÐµÐ¼Ð°Ñ” Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð², Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” 0\n"
 
-#: mmo.c:3135
+#: mmo.c:3242
 #, c-format
-msgid "%s: too many initialized registers; section length %ld\n"
-msgstr "%s: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð²; Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ â€” %ld\n"
+msgid "%B: too many initialized registers; section length %ld\n"
+msgstr "%B: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð²; Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ â€” %ld\n"
 
-#: mmo.c:3140
+#: mmo.c:3247
 #, c-format
-msgid "%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n"
-msgstr "%s: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð´Ð»Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ %ld: 0x%lx%08lx\n"
+msgid "%B: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n"
+msgstr "%B: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð° Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð´Ð»Ñ� Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ñ–Ð² Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ %ld: 0x%lx%08lx\n"
 
-#: oasys.c:882
+#: oasys.c:881
 #, c-format
-msgid "%s: can not represent section `%s' in oasys"
-msgstr "%s: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ» Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– oasys Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ"
+msgid "%B: can not represent section `%A' in oasys"
+msgstr "%B: Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%AÂ» Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– oasys Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ"
 
-#: osf-core.c:140
+#: osf-core.c:127
 #, c-format
 msgid "Unhandled OSF/1 core file section type %d\n"
 msgstr "Ð�ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñ„Ð°Ð¹Ð»Ð° core OSF/1, %d\n"
 
-#: pe-mips.c:607
+#: pe-mips.c:609
 msgid "%B: `ld -r' not supported with PE MIPS objects\n"
 msgstr "%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Â«ld -rÂ» Ð· Ð¾Ð±â€™Ñ”ÐºÑ‚Ð°Ð¼Ð¸ PE MIPS Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾\n"
 
@@ -3668,73 +5632,122 @@ msgstr "%B: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Â«ld -rÂ»
 #. src = VMA of the memory we're fixing up
 #. mem = pointer to memory we're fixing up
 #. val = VMA of what we need to refer to.
-#: pe-mips.c:719
+#: pe-mips.c:720
+#, c-format
 msgid "%B: unimplemented %s\n"
 msgstr "%B: Ð½ÐµÑ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ð¹ %s\n"
 
-#: pe-mips.c:745
+#: pe-mips.c:746
 msgid "%B: jump too far away\n"
 msgstr "%B: Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð´Ð°Ð»ÐµÐºÐ¸Ð¹ Ð¿ÐµÑ€ÐµÑ…Ñ–Ð´\n"
 
-#: pe-mips.c:771
+#: pe-mips.c:772
 msgid "%B: bad pair/reflo after refhi\n"
 msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ pair/reflo Ð¿Ñ–Ñ�Ð»Ñ� refhi\n"
 
-#: pef.c:520
+#: pef.c:526
 #, c-format
 msgid "bfd_pef_scan: unknown architecture 0x%lx"
 msgstr "bfd_pef_scan: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð°, 0x%lx"
 
-#: pei-x86_64.c:444
+#. PR 17512: file: 2245-7442-0.004.
+#: pei-x86_64.c:281
+#, c-format
+msgid "Unknown: %x"
+msgstr "Ð�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹: %x"
+
+#: pei-x86_64.c:331
+#, c-format
+msgid "warning: xdata section corrupt\n"
+msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð» xdata\n"
+
+#: pei-x86_64.c:341
 #, c-format
-msgid "warning: .pdata section size (%ld) is not a multiple of %d\n"
-msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .pdata (%ld) Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ %d\n"
+msgid "warning: xdata section corrupt"
+msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð» xdata"
 
-#: pei-x86_64.c:448 peigen.c:1618 peigen.c:1801 pepigen.c:1618 pepigen.c:1801
-#: pex64igen.c:1618 pex64igen.c:1801
+#: pei-x86_64.c:401
+#, c-format
+msgid "Too many unwind codes (%ld)\n"
+msgstr "Ð—Ð°Ð±Ð°Ð³Ð°Ñ‚Ð¾ ÐºÐ¾Ð´Ñ–Ð² Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ� (%ld)\n"
+
+#: pei-x86_64.c:491
+#, c-format
+msgid "Warning: %s section size (%ld) is not a multiple of %d\n"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s (%ld) Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ %d\n"
+
+#: pei-x86_64.c:498
+#, c-format
+msgid "Warning: %s section size is zero\n"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ñ” Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼\n"
+
+#: pei-x86_64.c:513
+#, c-format
+msgid "Warning: %s section size (%ld) is smaller than virtual size (%ld)\n"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s (%ld) Ñ” Ð¼ÐµÐ½ÑˆÐ¸Ð¼ Ð·Ð° Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ (%ld)\n"
+
+#: pei-x86_64.c:522
 #, c-format
 msgid ""
 "\n"
-"The Function Table (interpreted .pdata section contents)\n"
+"The Function Table (interpreted %s section contents)\n"
 msgstr ""
 "\n"
-"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ (Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .pdata)\n"
+"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ (Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s)\n"
 
-#: pei-x86_64.c:450
+#: pei-x86_64.c:525
 #, c-format
 msgid "vma:\t\t\tBeginAddress\t EndAddress\t  UnwindData\n"
 msgstr "vma:\t\t\tÐŸÐ¾Ñ‡Ð°Ñ‚ÐºÐ�Ð´Ñ€ÐµÑ�Ð°\t ÐšÑ–Ð½Ñ†Ð�Ð´Ñ€ÐµÑ�Ð°s\t  Ð”Ð°Ð½Ñ–Unwind\n"
 
+#: pei-x86_64.c:654
+#, c-format
+msgid ""
+"\n"
+"Dump of %s\n"
+msgstr ""
+"\n"
+"Ð”Ð°Ð¼Ð¿ %s\n"
+
 #. XXX code yet to be written.
-#: peicode.h:751
+#: peicode.h:775
+#, c-format
 msgid "%B: Unhandled import type; %x"
 msgstr "%B: Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�; %x"
 
-#: peicode.h:756
+#: peicode.h:781
+#, c-format
 msgid "%B: Unrecognised import type; %x"
 msgstr "%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�; %x"
 
-#: peicode.h:770
+#: peicode.h:796
+#, c-format
 msgid "%B: Unrecognised import name type; %x"
 msgstr "%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð° Ð½Ð°Ð·Ð²Ð° Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�; %x"
 
-#: peicode.h:1166
+#: peicode.h:1217
+#, c-format
 msgid "%B: Unrecognised machine type (0x%x) in Import Library Format archive"
 msgstr "%B: Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ (0x%x) Ñƒ Ð°Ñ€Ñ…Ñ–Ð²Ñ– Import Library Format"
 
-#: peicode.h:1178
+#: peicode.h:1230
+#, c-format
 msgid "%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive"
 msgstr "%B: Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¸Ð¹, Ð°Ð»Ðµ Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ð°Ñ€Ñ…Ñ–Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð¸ (0x%x) Ñƒ Ð°Ñ€Ñ…Ñ–Ð²Ñ– Import Library Format"
 
-#: peicode.h:1196
+#: peicode.h:1248
 msgid "%B: size field is zero in Import Library Format header"
 msgstr "%B: Ñƒ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑƒ Import Library Format Ð¿Ð¾Ð»Ðµ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñ” Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼"
 
-#: peicode.h:1227
+#: peicode.h:1280
 msgid "%B: string not null terminated in ILF object file."
 msgstr "%B: Ñƒ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– ILF Ñ€Ñ�Ð´Ð¾Ðº Ð½Ðµ Ð·Ð°Ð²ÐµÑ€ÑˆÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð¼."
 
-#: ppcboot.c:414
+#: peicode.h:1333
+msgid "%B: Error: Debug Data ends beyond end of debug directory."
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ñ– Ð´Ð°Ð½Ñ– Ð·Ð°Ð²ÐµÑ€ÑˆÑƒÑŽÑ‚ÑŒÑ�Ñ� Ð·Ð° ÐºÑ–Ð½Ñ†ÐµÐ¼ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ."
+
+#: ppcboot.c:393
 #, c-format
 msgid ""
 "\n"
@@ -3743,27 +5756,27 @@ msgstr ""
 "\n"
 "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº ppcboot:\n"
 
-#: ppcboot.c:415
+#: ppcboot.c:394
 #, c-format
 msgid "Entry offset        = 0x%.8lx (%ld)\n"
 msgstr "Ð’Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð²Ñ…Ð¾Ð´Ñƒ       = 0x%.8lx (%ld)\n"
 
-#: ppcboot.c:417
+#: ppcboot.c:396
 #, c-format
 msgid "Length              = 0x%.8lx (%ld)\n"
 msgstr "Ð”Ð¾Ð²Ð¶Ð¸Ð½Ð°             = 0x%.8lx (%ld)\n"
 
-#: ppcboot.c:421
+#: ppcboot.c:400
 #, c-format
 msgid "Flag field          = 0x%.2x\n"
 msgstr "ÐŸÐ¾Ð»Ðµ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–Ð²      = 0x%.2x\n"
 
-#: ppcboot.c:427
+#: ppcboot.c:406
 #, c-format
 msgid "Partition name      = \"%s\"\n"
 msgstr "Ð�Ð°Ð·Ð²Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ       = \"%s\"\n"
 
-#: ppcboot.c:446
+#: ppcboot.c:426
 #, c-format
 msgid ""
 "\n"
@@ -3772,31 +5785,45 @@ msgstr ""
 "\n"
 "ÐŸÐ¾Ñ‡Ð°Ñ‚Ð¾Ðº Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ[%d]  = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
 
-#: ppcboot.c:452
+#: ppcboot.c:433
 #, c-format
 msgid "Partition[%d] end    = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
 msgstr "ÐšÑ–Ð½ÐµÑ†ÑŒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ[%d]   = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
 
-#: ppcboot.c:458
+#: ppcboot.c:440
 #, c-format
 msgid "Partition[%d] sector = 0x%.8lx (%ld)\n"
 msgstr "Ð¡ÐµÐºÑ‚Ð¾Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ[%d]   = 0x%.8lx (%ld)\n"
 
-#: ppcboot.c:460
+#: ppcboot.c:444
 #, c-format
 msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
 msgstr "Ð”Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ[%d] = 0x%.8lx (%ld)\n"
 
-#: reloc.c:6160
+#: reloc.c:8064
 msgid "INPUT_SECTION_FLAGS are not supported.\n"
 msgstr "ÐŸÑ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ INPUT_SECTION_FLAGS Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾.\n"
 
-#: rs6000-core.c:448
+#: reloc.c:8165
+#, c-format
+msgid "%X%P: %B(%A): error: relocation for offset %V has no value\n"
+msgstr "%X%P: %B(%A): Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� Ð·Ñ�ÑƒÐ²Ñƒ %V Ð½Ðµ Ð¼Ð°Ñ” Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�\n"
+
+#: reloc.c:8241
 #, c-format
-msgid "%s: warning core file truncated"
-msgstr "%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ„Ð°Ð¹Ð» core Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð¾"
+msgid "%X%P: %B(%A): relocation \"%R\" is not supported\n"
+msgstr "%X%P: %B(%A): Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Â«%RÂ» Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾\n"
 
-#: som.c:5471
+#: reloc.c:8250
+#, c-format
+msgid "%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n"
+msgstr "%X%P: %B(%A): Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Â«%RÂ» Ð¿Ð¾Ð²ÐµÑ€Ñ‚Ð°Ñ” Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� %x\n"
+
+#: rs6000-core.c:471
+msgid "%B: warning core file truncated"
+msgstr "%B: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ„Ð°Ð¹Ð» core Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð¾"
+
+#: som.c:5478
 #, c-format
 msgid ""
 "\n"
@@ -3805,19 +5832,27 @@ msgstr ""
 "\n"
 "Ð”Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¸Ð¹ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ�\n"
 
-#: som.c:5776
+#: som.c:5787
 msgid "som_sizeof_headers unimplemented"
 msgstr "som_sizeof_headers Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾"
 
-#: srec.c:261
+#: srec.c:260
+#, c-format
 msgid "%B:%d: Unexpected character `%s' in S-record file\n"
 msgstr "%B:%d: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² S\n"
 
-#: srec.c:567 srec.c:600
+#: srec.c:488
+#, c-format
+msgid "%B:%d: byte count %d too small\n"
+msgstr "%B:%d: ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð±Ð°Ð¹Ñ‚Ñ–Ð² %d Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð¼Ð°Ð»Ð¾ÑŽ\n"
+
+#: srec.c:581 srec.c:615
+#, c-format
 msgid "%B:%d: Bad checksum in S-record file\n"
 msgstr "%B:%d: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð° ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð° Ñ�ÑƒÐ¼Ð° Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² S\n"
 
 #: stabs.c:279
+#, c-format
 msgid "%B(%A+0x%lx): Stabs entry has invalid string index."
 msgstr "%B(%A+0x%lx): Ð·Ð°Ð¿Ð¸Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– stabs Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ€Ñ�Ð´ÐºÐ°."
 
@@ -3825,32 +5860,60 @@ msgstr "%B(%A+0x%lx): Ð·Ð°Ð¿Ð¸Ñ� Ñ‚Ð°Ð±Ð
 msgid "Unsupported .stab relocation"
 msgstr "Ð�ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� .stab"
 
-#: vms-alpha.c:1299
+#: vms-alpha.c:652
+#, c-format
+msgid "Unable to read EIHS record at offset %#x"
+msgstr "Ð�Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� EIHS Ð·Ñ– Ð·Ñ�ÑƒÐ²Ð¾Ð¼ %#x"
+
+#: vms-alpha.c:1164
+#, c-format
+msgid "Corrupt EGSD record: its size (%#x) is too small"
+msgstr "ÐŸÐ¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� EGSD: Ð¹Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ (%#x) Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð¼Ð°Ð»Ð¸Ð¼"
+
+#: vms-alpha.c:1188
+#, c-format
+msgid "Corrupt EGSD record: size (%#x) is larger than remaining space (%#x)"
+msgstr "ÐŸÐ¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� EGSD: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ (%#x) Ñ” Ð±Ñ–Ð»ÑŒÑˆÐ¸Ð¼ Ð·Ð° Ð·Ð°Ð»Ð¸ÑˆÐ¾Ðº Ð¼Ñ–Ñ�Ñ†Ñ� (%#x)"
+
+#: vms-alpha.c:1196
+#, c-format
+msgid "Corrupt EGSD record: size (%#x) is too small"
+msgstr "ÐŸÐ¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� EGSD: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ (%#x) Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð¼Ð°Ð»Ð¸Ð¼"
+
+#: vms-alpha.c:1380
 #, c-format
 msgid "Unknown EGSD subtype %d"
 msgstr "Ð�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð¿Ñ–Ð´Ñ‚Ð¸Ð¿ EGSD, %d"
 
-#: vms-alpha.c:1330
+#: vms-alpha.c:1413
 #, c-format
 msgid "Stack overflow (%d) in _bfd_vms_push"
 msgstr "ÐŸÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ñ�Ñ‚ÐµÐºÐ° (%d) Ñƒ _bfd_vms_push"
 
-#: vms-alpha.c:1343
+#: vms-alpha.c:1426
 msgid "Stack underflow in _bfd_vms_pop"
 msgstr "ÐŸÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ñ�Ñ‚ÐµÐºÐ° Ñƒ _bfd_vms_pop"
 
 #. These names have not yet been added to this switch statement.
-#: vms-alpha.c:1580
+#: vms-alpha.c:1665
 #, c-format
 msgid "unknown ETIR command %d"
 msgstr "Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ETIR, %d"
 
-#: vms-alpha.c:1767
+#: vms-alpha.c:1696
+msgid "Corrupt vms value"
+msgstr "ÐŸÐ¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� vms"
+
+#: vms-alpha.c:1824
+msgid "Corrupt ETIR record encountered"
+msgstr "Ð’Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ð·Ð°Ð¿Ð¸Ñ� ETIR"
+
+#: vms-alpha.c:1881
 #, c-format
 msgid "bad section index in %s"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñƒ %s"
 
-#: vms-alpha.c:1780
+#: vms-alpha.c:1894
 #, c-format
 msgid "unsupported STA cmd %s"
 msgstr "Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° STA, %s"
@@ -3860,1393 +5923,1463 @@ msgstr "Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð° ÐºÐ
 #. Rotate.
 #. Redefine symbol to current location.
 #. Define a literal.
-#: vms-alpha.c:1956 vms-alpha.c:1987 vms-alpha.c:2234
+#: vms-alpha.c:2074 vms-alpha.c:2105 vms-alpha.c:2196 vms-alpha.c:2354
 #, c-format
 msgid "%s: not supported"
 msgstr "%s: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾"
 
-#: vms-alpha.c:1962
+#: vms-alpha.c:2080
 #, c-format
 msgid "%s: not implemented"
 msgstr "%s: Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾"
 
-#: vms-alpha.c:2218
+#: vms-alpha.c:2338
 #, c-format
 msgid "invalid use of %s with contexts"
 msgstr "Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� %s Ð· ÐºÐ¾Ð½Ñ‚ÐµÐºÑ�Ñ‚Ð°Ð¼Ð¸"
 
-#: vms-alpha.c:2252
+#: vms-alpha.c:2372
 #, c-format
 msgid "reserved cmd %d"
 msgstr "Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¾Ð²Ð°Ð½Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %d"
 
-#: vms-alpha.c:2337
+#: vms-alpha.c:2457
 msgid "Object module NOT error-free !\n"
 msgstr "Ð£ Ð¾Ð±â€™Ñ”ÐºÑ‚Ð½Ð¾Ð¼Ñƒ Ð¼Ð¾Ð´ÑƒÐ»Ñ– Ð¼Ñ–Ñ�Ñ‚Ñ�Ñ‚ÑŒÑ�Ñ� Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸!\n"
 
-#: vms-alpha.c:2766
-#, c-format
-msgid "Symbol %s replaced by %s\n"
-msgstr "Ð¡Ð¸Ð¼Ð²Ð¾Ð» %s Ð·Ð°Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð½Ð° %s\n"
-
-#: vms-alpha.c:3769
+#: vms-alpha.c:3778
 #, c-format
-msgid "SEC_RELOC with no relocs in section %s"
-msgstr "SEC_RELOC Ð±ÐµÐ· Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %s"
+msgid "SEC_RELOC with no relocs in section %A"
+msgstr "SEC_RELOC Ð±ÐµÐ· Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %A"
 
-#: vms-alpha.c:3822 vms-alpha.c:4049
+#: vms-alpha.c:3830 vms-alpha.c:4043
 #, c-format
-msgid "Size error in section %s"
-msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñ– Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %s"
+msgid "Size error in section %A"
+msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° Ñƒ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñ– Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %A"
 
-#: vms-alpha.c:3991
+#: vms-alpha.c:3989
 msgid "Spurious ALPHA_R_BSR reloc"
 msgstr "Ð¤Ð°Ð»ÑŒÑˆÐ¸Ð²Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� ALPHA_R_BSR"
 
-#: vms-alpha.c:4036
+#: vms-alpha.c:4030
 #, c-format
 msgid "Unhandled relocation %s"
 msgstr "Ð�ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ðµ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s"
 
-#: vms-alpha.c:4326
+#: vms-alpha.c:4323
 #, c-format
 msgid "unknown source command %d"
 msgstr "Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %d"
 
-#: vms-alpha.c:4387
+#: vms-alpha.c:4384
 msgid "DST__K_SET_LINUM_INCR not implemented"
 msgstr "DST__K_SET_LINUM_INCR Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾"
 
-#: vms-alpha.c:4393
+#: vms-alpha.c:4390
 msgid "DST__K_SET_LINUM_INCR_W not implemented"
 msgstr "DST__K_SET_LINUM_INCR_W Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾"
 
-#: vms-alpha.c:4399
+#: vms-alpha.c:4396
 msgid "DST__K_RESET_LINUM_INCR not implemented"
 msgstr "DST__K_RESET_LINUM_INCR Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾"
 
-#: vms-alpha.c:4405
+#: vms-alpha.c:4402
 msgid "DST__K_BEG_STMT_MODE not implemented"
 msgstr "DST__K_BEG_STMT_MODE Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾"
 
-#: vms-alpha.c:4411
+#: vms-alpha.c:4408
 msgid "DST__K_END_STMT_MODE not implemented"
 msgstr "DST__K_END_STMT_MODE Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾"
 
-#: vms-alpha.c:4438
+#: vms-alpha.c:4435
 msgid "DST__K_SET_PC not implemented"
 msgstr "DST__K_SET_PC Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾"
 
-#: vms-alpha.c:4444
+#: vms-alpha.c:4441
 msgid "DST__K_SET_PC_W not implemented"
 msgstr "DST__K_SET_PC_W Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾"
 
-#: vms-alpha.c:4450
+#: vms-alpha.c:4447
 msgid "DST__K_SET_PC_L not implemented"
 msgstr "DST__K_SET_PC_L Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾"
 
-#: vms-alpha.c:4456
+#: vms-alpha.c:4453
 msgid "DST__K_SET_STMTNUM not implemented"
 msgstr "DST__K_SET_STMTNUM Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾"
 
-#: vms-alpha.c:4499
+#: vms-alpha.c:4496
 #, c-format
 msgid "unknown line command %d"
 msgstr "Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð° Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð° ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %d"
 
-#: vms-alpha.c:4953 vms-alpha.c:4970 vms-alpha.c:4984 vms-alpha.c:4999
-#: vms-alpha.c:5011 vms-alpha.c:5022 vms-alpha.c:5034
+#: vms-alpha.c:4956 vms-alpha.c:4974 vms-alpha.c:4989 vms-alpha.c:5005
+#: vms-alpha.c:5018 vms-alpha.c:5030 vms-alpha.c:5043
 #, c-format
 msgid "Unknown reloc %s + %s"
 msgstr "Ð�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s + %s"
 
-#: vms-alpha.c:5089
+#: vms-alpha.c:5098
 #, c-format
 msgid "Unknown reloc %s"
 msgstr "Ð�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s"
 
-#: vms-alpha.c:5102
+#: vms-alpha.c:5111
 msgid "Invalid section index in ETIR"
 msgstr "Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñƒ ETIR"
 
-#: vms-alpha.c:5109
+#: vms-alpha.c:5120
 msgid "Relocation for non-REL psect"
 msgstr "ÐŸÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð´Ð»Ñ� psect, Ñ�ÐºÐ¸Ð¹ Ð½Ðµ Ñ” REL"
 
-#: vms-alpha.c:5156
+#: vms-alpha.c:5167
 #, c-format
 msgid "Unknown symbol in command %s"
 msgstr "Ð�ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñƒ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ– %s"
 
-#: vms-alpha.c:5671
+#: vms-alpha.c:5577
+#, c-format
+msgid "reloc (%d) is *UNKNOWN*"
+msgstr "Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� (%d) Ñ” *Ð�Ð•Ð’Ð†Ð”ÐžÐœÐ˜Ðœ*"
+
+#: vms-alpha.c:5692
 #, c-format
 msgid "  EMH %u (len=%u): "
 msgstr "  EMH %u (Ð´Ð¾Ð²Ð¶=%u): "
 
-#: vms-alpha.c:5680
+#: vms-alpha.c:5697
+#, c-format
+msgid "   Error: The length is less than the length of an EMH record\n"
+msgstr "   ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ” Ð¼ÐµÐ½ÑˆÐ¾ÑŽ Ð·Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ EMH\n"
+
+#: vms-alpha.c:5708
 #, c-format
 msgid "Module header\n"
 msgstr "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ð¼Ð¾Ð´ÑƒÐ»Ñ�\n"
 
-#: vms-alpha.c:5681
+#: vms-alpha.c:5709
 #, c-format
 msgid "   structure level: %u\n"
 msgstr "   Ñ€Ñ–Ð²ÐµÐ½ÑŒ Ñ�Ñ‚Ñ€ÑƒÐºÑ‚. : %u\n"
 
-#: vms-alpha.c:5682
+#: vms-alpha.c:5710
 #, c-format
 msgid "   max record size: %u\n"
 msgstr "   Ð¼Ð°ÐºÑ�. Ñ€Ð¾Ð·Ð¼. Ð·Ð°Ð¿Ð¸Ñ�Ñƒ: %u\n"
 
-#: vms-alpha.c:5685
+#: vms-alpha.c:5713
 #, c-format
 msgid "   module name    : %.*s\n"
 msgstr "   Ð½Ð°Ð·Ð²Ð° Ð¼Ð¾Ð´ÑƒÐ»Ñ�   : %.*s\n"
 
-#: vms-alpha.c:5687
+#: vms-alpha.c:5715
 #, c-format
 msgid "   module version : %.*s\n"
 msgstr "   Ð²ÐµÑ€Ñ�Ñ–Ñ� Ð¼Ð¾Ð´ÑƒÐ»Ñ�  : %.*s\n"
 
-#: vms-alpha.c:5689
+#: vms-alpha.c:5717
 #, c-format
 msgid "   compile date   : %.17s\n"
 msgstr "   Ð´Ð°Ñ‚Ð° Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ�  : %.17s\n"
 
-#: vms-alpha.c:5694
+#: vms-alpha.c:5722
 #, c-format
 msgid "Language Processor Name\n"
 msgstr "Ð�Ð°Ð·Ð²Ð° Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° Ð¼Ð¾Ð²Ð¸\n"
 
-#: vms-alpha.c:5695
+#: vms-alpha.c:5723
 #, c-format
 msgid "   language name: %.*s\n"
 msgstr "   Ð½Ð°Ð·Ð²Ð° Ð¼Ð¾Ð²Ð¸   : %.*s\n"
 
-#: vms-alpha.c:5702
+#: vms-alpha.c:5730
 #, c-format
 msgid "Source Files Header\n"
 msgstr "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ„Ð°Ð¹Ð»Ñ–Ð² ÐºÐ¾Ð´Ñƒ\n"
 
-#: vms-alpha.c:5703
+#: vms-alpha.c:5731
 #, c-format
 msgid "   file: %.*s\n"
 msgstr "   Ñ„Ð°Ð¹Ð»: %.*s\n"
 
-#: vms-alpha.c:5710
+#: vms-alpha.c:5738
 #, c-format
 msgid "Title Text Header\n"
 msgstr "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ñ‚Ð¸Ñ‚ÑƒÐ»ÑŒÐ½Ð¾Ð³Ð¾ Ñ‚ÐµÐºÑ�Ñ‚Ñƒ\n"
 
-#: vms-alpha.c:5711
+#: vms-alpha.c:5739
 #, c-format
 msgid "   title: %.*s\n"
 msgstr "   Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº: %.*s\n"
 
-#: vms-alpha.c:5718
+#: vms-alpha.c:5746
 #, c-format
 msgid "Copyright Header\n"
 msgstr "Ð—Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ð°Ð²Ñ‚Ð¾Ñ€Ñ�ÑŒÐºÐ¸Ñ… Ð¿Ñ€Ð°Ð²\n"
 
-#: vms-alpha.c:5719
+#: vms-alpha.c:5747
 #, c-format
 msgid "   copyright: %.*s\n"
 msgstr "   Ð°Ð²Ñ‚Ð¾Ñ€Ñ�ÑŒÐºÑ– Ð¿Ñ€Ð°Ð²Ð°: %.*s\n"
 
-#: vms-alpha.c:5725
+#: vms-alpha.c:5753
 #, c-format
 msgid "unhandled emh subtype %u\n"
 msgstr "Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð¿Ñ–Ð´Ñ‚Ð¸Ð¿ emh, %u\n"
 
-#: vms-alpha.c:5735
+#: vms-alpha.c:5763
 #, c-format
 msgid "  EEOM (len=%u):\n"
 msgstr "  EEOM (Ð´Ð¾Ð²Ð¶=%u):\n"
 
-#: vms-alpha.c:5736
+#: vms-alpha.c:5768
+#, c-format
+msgid "   Error: The length is less than the length of an EEOM record\n"
+msgstr "   ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ” Ð¼ÐµÐ½ÑˆÐ¾ÑŽ Ð·Ð° Ð´Ð¾Ð²Ð¶Ð¸Ð½Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ EEOM\n"
+
+#: vms-alpha.c:5772
 #, c-format
 msgid "   number of cond linkage pairs: %u\n"
 msgstr "   ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð¿Ð°Ñ€ ÑƒÐ¼Ð¾Ð²Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ�: %u\n"
 
-#: vms-alpha.c:5738
+#: vms-alpha.c:5774
 #, c-format
 msgid "   completion code: %u\n"
 msgstr "   ÐºÐ¾Ð´ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ�: %u\n"
 
-#: vms-alpha.c:5742
+#: vms-alpha.c:5778
 #, c-format
 msgid "   transfer addr flags: 0x%02x\n"
 msgstr "   Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ� Ð°Ð´Ñ€ÐµÑ�Ð¸: 0x%02x\n"
 
-#: vms-alpha.c:5743
+#: vms-alpha.c:5779
 #, c-format
 msgid "   transfer addr psect: %u\n"
 msgstr "   psect Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ� Ð°Ð´Ñ€ÐµÑ�Ð¸: %u\n"
 
-#: vms-alpha.c:5745
+#: vms-alpha.c:5781
 #, c-format
 msgid "   transfer address   : 0x%08x\n"
 msgstr "   Ð°Ð´Ñ€ÐµÑ�Ð° Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ� : 0x%08x\n"
 
-#: vms-alpha.c:5754
+#: vms-alpha.c:5790
 msgid " WEAK"
 msgstr " WEAK"
 
-#: vms-alpha.c:5756
+#: vms-alpha.c:5792
 msgid " DEF"
 msgstr " DEF"
 
-#: vms-alpha.c:5758
+#: vms-alpha.c:5794
 msgid " UNI"
 msgstr " UNI"
 
-#: vms-alpha.c:5760 vms-alpha.c:5781
+#: vms-alpha.c:5796 vms-alpha.c:5817
 msgid " REL"
 msgstr " REL"
 
-#: vms-alpha.c:5762
+#: vms-alpha.c:5798
 msgid " COMM"
 msgstr " COMM"
 
-#: vms-alpha.c:5764
+#: vms-alpha.c:5800
 msgid " VECEP"
 msgstr " VECEP"
 
-#: vms-alpha.c:5766
+#: vms-alpha.c:5802
 msgid " NORM"
 msgstr " NORM"
 
-#: vms-alpha.c:5768
+#: vms-alpha.c:5804
 msgid " QVAL"
 msgstr " QVAL"
 
-#: vms-alpha.c:5775
+#: vms-alpha.c:5811
 msgid " PIC"
 msgstr " PIC"
 
-#: vms-alpha.c:5777
+#: vms-alpha.c:5813
 msgid " LIB"
 msgstr " LIB"
 
-#: vms-alpha.c:5779
+#: vms-alpha.c:5815
 msgid " OVR"
 msgstr " OVR"
 
-#: vms-alpha.c:5783
+#: vms-alpha.c:5819
 msgid " GBL"
 msgstr " GBL"
 
-#: vms-alpha.c:5785
+#: vms-alpha.c:5821
 msgid " SHR"
 msgstr " SHR"
 
-#: vms-alpha.c:5787
+#: vms-alpha.c:5823
 msgid " EXE"
 msgstr " EXE"
 
-#: vms-alpha.c:5789
+#: vms-alpha.c:5825
 msgid " RD"
 msgstr " RD"
 
-#: vms-alpha.c:5791
+#: vms-alpha.c:5827
 msgid " WRT"
 msgstr " WRT"
 
-#: vms-alpha.c:5793
+#: vms-alpha.c:5829
 msgid " VEC"
 msgstr " VEC"
 
-#: vms-alpha.c:5795
+#: vms-alpha.c:5831
 msgid " NOMOD"
 msgstr " NOMOD"
 
-#: vms-alpha.c:5797
+#: vms-alpha.c:5833
 msgid " COM"
 msgstr " COM"
 
-#: vms-alpha.c:5799
+#: vms-alpha.c:5835
 msgid " 64B"
 msgstr " 64B"
 
-#: vms-alpha.c:5808
+#: vms-alpha.c:5844
 #, c-format
 msgid "  EGSD (len=%u):\n"
 msgstr "  EGSD (Ð´Ð¾Ð²Ð¶=%u):\n"
 
-#: vms-alpha.c:5820
+#: vms-alpha.c:5857
 #, c-format
 msgid "  EGSD entry %2u (type: %u, len: %u): "
 msgstr "  Ð·Ð°Ð¿Ð¸Ñ� EGSD %2u (Ñ‚Ð¸Ð¿: %u, Ð´Ð¾Ð²Ð¶: %u): "
 
-#: vms-alpha.c:5832
+#: vms-alpha.c:5863 vms-alpha.c:6114
+#, c-format
+msgid "   Error: length larger than remaining space in record\n"
+msgstr "   ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ°: Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ð¼Ñ–Ñ�Ñ†Ðµ, Ñ�ÐºÐµ Ð»Ð¸ÑˆÐ¸Ð»Ð¾Ñ�Ñ� Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ–\n"
+
+#: vms-alpha.c:5875
 #, c-format
 msgid "PSC - Program section definition\n"
 msgstr "PSC â€” Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸\n"
 
-#: vms-alpha.c:5833 vms-alpha.c:5850
+#: vms-alpha.c:5876 vms-alpha.c:5893
 #, c-format
 msgid "   alignment  : 2**%u\n"
 msgstr "   Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ�: 2**%u\n"
 
-#: vms-alpha.c:5834 vms-alpha.c:5851
+#: vms-alpha.c:5877 vms-alpha.c:5894
 #, c-format
 msgid "   flags      : 0x%04x"
 msgstr "   Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–    : 0x%04x"
 
-#: vms-alpha.c:5838
+#: vms-alpha.c:5881
 #, c-format
 msgid "   alloc (len): %u (0x%08x)\n"
 msgstr "   alloc (Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°): %u (0x%08x)\n"
 
-#: vms-alpha.c:5839 vms-alpha.c:5896 vms-alpha.c:5945
+#: vms-alpha.c:5882 vms-alpha.c:5939 vms-alpha.c:5988
 #, c-format
 msgid "   name       : %.*s\n"
 msgstr "   Ð½Ð°Ð·Ð²Ð°      : %.*s\n"
 
-#: vms-alpha.c:5849
+#: vms-alpha.c:5892
 #, c-format
 msgid "SPSC - Shared Image Program section def\n"
 msgstr "SPSC â€” Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð¾Ð±Ñ€Ð°Ð·Ñƒ\n"
 
-#: vms-alpha.c:5855
+#: vms-alpha.c:5898
 #, c-format
 msgid "   alloc (len)   : %u (0x%08x)\n"
 msgstr "   alloc (Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°): %u (0x%08x)\n"
 
-#: vms-alpha.c:5856
+#: vms-alpha.c:5899
 #, c-format
 msgid "   image offset  : 0x%08x\n"
 msgstr "   Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð¾Ð±Ñ€Ð°Ð·Ñƒ: 0x%08x\n"
 
-#: vms-alpha.c:5858
+#: vms-alpha.c:5901
 #, c-format
 msgid "   symvec offset : 0x%08x\n"
 msgstr "   Ð·Ñ�ÑƒÐ² symvec   : 0x%08x\n"
 
-#: vms-alpha.c:5860
+#: vms-alpha.c:5903
 #, c-format
 msgid "   name          : %.*s\n"
 msgstr "   Ð½Ð°Ð·Ð²Ð°         : %.*s\n"
 
-#: vms-alpha.c:5873
+#: vms-alpha.c:5916
 #, c-format
 msgid "SYM - Global symbol definition\n"
 msgstr "SYM â€” Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²\n"
 
-#: vms-alpha.c:5874 vms-alpha.c:5934 vms-alpha.c:5955 vms-alpha.c:5974
+#: vms-alpha.c:5917 vms-alpha.c:5977 vms-alpha.c:5998 vms-alpha.c:6017
 #, c-format
 msgid "   flags: 0x%04x"
 msgstr "   Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–: 0x%04x"
 
-#: vms-alpha.c:5877
+#: vms-alpha.c:5920
 #, c-format
 msgid "   psect offset: 0x%08x\n"
 msgstr "   Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ psect: 0x%08x\n"
 
-#: vms-alpha.c:5881
+#: vms-alpha.c:5924
 #, c-format
 msgid "   code address: 0x%08x\n"
 msgstr "   Ð°Ð´Ñ€ÐµÑ�Ð° ÐºÐ¾Ð´Ñƒ: 0x%08x\n"
 
-#: vms-alpha.c:5883
+#: vms-alpha.c:5926
 #, c-format
 msgid "   psect index for entry point : %u\n"
 msgstr "   Ñ–Ð½Ð´ÐµÐºÑ� psect Ð´Ð»Ñ� Ñ‚Ð¾Ñ‡ÐºÐ¸ Ð²Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ�: %u\n"
 
-#: vms-alpha.c:5886 vms-alpha.c:5962 vms-alpha.c:5981
+#: vms-alpha.c:5929 vms-alpha.c:6005 vms-alpha.c:6024
 #, c-format
 msgid "   psect index : %u\n"
 msgstr "   Ñ–Ð½Ð´ÐµÐºÑ� psect: %u\n"
 
-#: vms-alpha.c:5888 vms-alpha.c:5964 vms-alpha.c:5983
+#: vms-alpha.c:5931 vms-alpha.c:6007 vms-alpha.c:6026
 #, c-format
 msgid "   name        : %.*s\n"
 msgstr "   Ð½Ð°Ð·Ð²Ð°       : %.*s\n"
 
-#: vms-alpha.c:5895
+#: vms-alpha.c:5938
 #, c-format
 msgid "SYM - Global symbol reference\n"
 msgstr "SYM â€” Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ñ– Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¸\n"
 
-#: vms-alpha.c:5907
+#: vms-alpha.c:5950
 #, c-format
 msgid "IDC - Ident Consistency check\n"
 msgstr "IDC â€” Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ° ÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¾Ñ�Ñ‚Ñ– Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ñ–Ð²\n"
 
-#: vms-alpha.c:5908
+#: vms-alpha.c:5951
 #, c-format
 msgid "   flags         : 0x%08x"
 msgstr "   Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–      : 0x%08x"
 
-#: vms-alpha.c:5912
+#: vms-alpha.c:5955
 #, c-format
 msgid "   id match      : %x\n"
 msgstr "   Ñ–Ð´. Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ñ�Ñ‚Ñ–: %x\n"
 
-#: vms-alpha.c:5914
+#: vms-alpha.c:5957
 #, c-format
 msgid "   error severity: %x\n"
 msgstr "   ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸: %x\n"
 
-#: vms-alpha.c:5917
+#: vms-alpha.c:5960
 #, c-format
 msgid "   entity name   : %.*s\n"
 msgstr "   Ð½Ð°Ð·Ð²Ð° ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°: %.*s\n"
 
-#: vms-alpha.c:5919
+#: vms-alpha.c:5962
 #, c-format
 msgid "   object name   : %.*s\n"
 msgstr "   Ð½Ð°Ð·Ð²Ð° Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° : %.*s\n"
 
-#: vms-alpha.c:5922
+#: vms-alpha.c:5965
 #, c-format
 msgid "   binary ident  : 0x%08x\n"
 msgstr "   Ð´Ð²Ñ–Ð¹Ðº. Ñ–Ð´ÐµÐ½Ñ‚. : 0x%08x\n"
 
-#: vms-alpha.c:5925
+#: vms-alpha.c:5968
 #, c-format
 msgid "   ascii ident   : %.*s\n"
 msgstr "   Ñ–Ð´ÐµÐ½Ñ‚. ascii  : %.*s\n"
 
-#: vms-alpha.c:5933
+#: vms-alpha.c:5976
 #, c-format
 msgid "SYMG - Universal symbol definition\n"
 msgstr "SYMG â€” Ð£Ð½Ñ–Ð²ÐµÑ€Ñ�Ð°Ð»ÑŒÐ½Ðµ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²\n"
 
-#: vms-alpha.c:5937
+#: vms-alpha.c:5980
 #, c-format
 msgid "   symbol vector offset: 0x%08x\n"
 msgstr "   Ð·Ñ�ÑƒÐ² Ð²ÐµÐºÑ‚Ð¾Ñ€Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²: 0x%08x\n"
 
-#: vms-alpha.c:5939
+#: vms-alpha.c:5982
 #, c-format
 msgid "   entry point: 0x%08x\n"
 msgstr "   Ñ‚Ð¾Ñ‡ÐºÐ° Ð²Ñ…Ð¾Ð´Ñƒ: 0x%08x\n"
 
-#: vms-alpha.c:5941
+#: vms-alpha.c:5984
 #, c-format
 msgid "   proc descr : 0x%08x\n"
 msgstr "   Ð´ÐµÑ�ÐºÑ€. Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ñƒ: 0x%08x\n"
 
-#: vms-alpha.c:5943
+#: vms-alpha.c:5986
 #, c-format
 msgid "   psect index: %u\n"
 msgstr "   Ñ–Ð½Ð´ÐµÐºÑ� psect: %u\n"
 
-#: vms-alpha.c:5954
+#: vms-alpha.c:5997
 #, c-format
 msgid "SYMV - Vectored symbol definition\n"
 msgstr "SYMV â€” Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð²ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð·Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ\n"
 
-#: vms-alpha.c:5958
+#: vms-alpha.c:6001
 #, c-format
 msgid "   vector      : 0x%08x\n"
 msgstr "   Ð²ÐµÐºÑ‚Ð¾Ñ€      : 0x%08x\n"
 
-#: vms-alpha.c:5960 vms-alpha.c:5979
+#: vms-alpha.c:6003 vms-alpha.c:6022
 #, c-format
 msgid "   psect offset: %u\n"
 msgstr "   Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ psect: %u\n"
 
-#: vms-alpha.c:5973
+#: vms-alpha.c:6016
 #, c-format
 msgid "SYMM - Global symbol definition with version\n"
 msgstr "SYMM â€” Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð· Ð²ÐµÑ€Ñ�Ñ–Ñ”ÑŽ\n"
 
-#: vms-alpha.c:5977
+#: vms-alpha.c:6020
 #, c-format
 msgid "   version mask: 0x%08x\n"
 msgstr "   Ð¼Ð°Ñ�ÐºÐ° Ð²ÐµÑ€Ñ�Ñ–Ñ—: 0x%08x\n"
 
-#: vms-alpha.c:5988
+#: vms-alpha.c:6031
 #, c-format
 msgid "unhandled egsd entry type %u\n"
 msgstr "Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ egsd, %u\n"
 
-#: vms-alpha.c:6022
+#: vms-alpha.c:6066
 #, c-format
 msgid "    linkage index: %u, replacement insn: 0x%08x\n"
 msgstr "    Ñ–Ð½Ð´ÐµÐºÑ� ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ�: %u, Ñ–Ð½Ñ�Ñ‚Ñ€ÑƒÐºÑ†Ñ–Ñ�-Ð·Ð°Ð¼Ñ–Ð½Ð½Ð¸Ðº: 0x%08x\n"
 
-#: vms-alpha.c:6025
+#: vms-alpha.c:6070
 #, c-format
 msgid "    psect idx 1: %u, offset 1: 0x%08x %08x\n"
 msgstr "    Ñ–Ð½Ð´. psect 1: %u, Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ 1: 0x%08x %08x\n"
 
-#: vms-alpha.c:6029
+#: vms-alpha.c:6075
 #, c-format
 msgid "    psect idx 2: %u, offset 2: 0x%08x %08x\n"
 msgstr "    Ñ–Ð½Ð´. psect 2: %u, Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ 2: 0x%08x %08x\n"
 
-#: vms-alpha.c:6034
+#: vms-alpha.c:6081
 #, c-format
 msgid "    psect idx 3: %u, offset 3: 0x%08x %08x\n"
 msgstr "    Ñ–Ð½Ð´. psect 3: %u, Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ 3: 0x%08x %08x\n"
 
-#: vms-alpha.c:6039
+#: vms-alpha.c:6086
 #, c-format
 msgid "    global name: %.*s\n"
 msgstr "    Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð° Ð½Ð°Ð·Ð²Ð°: %.*s\n"
 
-#: vms-alpha.c:6049
+#: vms-alpha.c:6097
 #, c-format
 msgid "  %s (len=%u+%u):\n"
 msgstr "  %s (Ð´Ð¾Ð²Ð¶=%u+%u):\n"
 
-#: vms-alpha.c:6064
+#: vms-alpha.c:6119
 #, c-format
 msgid "   (type: %3u, size: 4+%3u): "
 msgstr "   (Ñ‚Ð¸Ð¿: %3u, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: 4+%3u): "
 
-#: vms-alpha.c:6068
+#: vms-alpha.c:6123
 #, c-format
 msgid "STA_GBL (stack global) %.*s\n"
 msgstr "STA_GBL (Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¹ Ñ�Ñ‚ÐµÐº) %.*s\n"
 
-#: vms-alpha.c:6072
+#: vms-alpha.c:6127
 #, c-format
 msgid "STA_LW (stack longword) 0x%08x\n"
 msgstr "STA_LW (Ñ�Ñ‚ÐµÐº Ð´Ð¾Ð²Ð³Ð¸Ñ… Ñ�Ð»Ñ–Ð²) 0x%08x\n"
 
-#: vms-alpha.c:6076
+#: vms-alpha.c:6131
 #, c-format
 msgid "STA_QW (stack quadword) 0x%08x %08x\n"
 msgstr "STA_QW (Ñ�Ñ‚ÐµÐº Ñ‡ÐµÑ‚Ð²ÐµÑ€Ð½Ð¸Ñ… Ñ�Ð»Ñ–Ð²) 0x%08x %08x\n"
 
-#: vms-alpha.c:6081
+#: vms-alpha.c:6136
 #, c-format
 msgid "STA_PQ (stack psect base + offset)\n"
 msgstr "STA_PQ (Ñ�Ñ‚ÐµÐº Ð¾Ñ�Ð½Ð¾Ð²Ð¸ psect + Ð·Ñ�ÑƒÐ²)\n"
 
-#: vms-alpha.c:6082
+#: vms-alpha.c:6138
 #, c-format
 msgid "    psect: %u, offset: 0x%08x %08x\n"
 msgstr "    psect: %u, Ð·Ñ�ÑƒÐ²: 0x%08x %08x\n"
 
-#: vms-alpha.c:6088
+#: vms-alpha.c:6144
 #, c-format
 msgid "STA_LI (stack literal)\n"
 msgstr "STA_LI (Ñ�Ñ‚ÐµÐº Ð»Ñ–Ñ‚ÐµÑ€Ð°Ð»Ñ–Ð²)\n"
 
-#: vms-alpha.c:6091
+#: vms-alpha.c:6147
 #, c-format
 msgid "STA_MOD (stack module)\n"
 msgstr "STA_MOD (Ñ�Ñ‚ÐµÐº Ð¼Ð¾Ð´ÑƒÐ»Ñ–Ð²)\n"
 
-#: vms-alpha.c:6094
+#: vms-alpha.c:6150
 #, c-format
 msgid "STA_CKARG (compare procedure argument)\n"
 msgstr "STA_CKARG (Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð¸ Ð¿Ð¾Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6098
+#: vms-alpha.c:6154
 #, c-format
 msgid "STO_B (store byte)\n"
 msgstr "STO_B (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ð¹ Ð±Ð°Ð¹Ñ‚)\n"
 
-#: vms-alpha.c:6101
+#: vms-alpha.c:6157
 #, c-format
 msgid "STO_W (store word)\n"
 msgstr "STO_W (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ðµ Ñ�Ð»Ð¾Ð²Ð¾)\n"
 
-#: vms-alpha.c:6104
+#: vms-alpha.c:6160
 #, c-format
 msgid "STO_LW (store longword)\n"
 msgstr "STO_LW (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ðµ longword)\n"
 
-#: vms-alpha.c:6107
+#: vms-alpha.c:6163
 #, c-format
 msgid "STO_QW (store quadword)\n"
 msgstr "STO_QW (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ðµ quadword)\n"
 
-#: vms-alpha.c:6113
+#: vms-alpha.c:6169
 #, c-format
 msgid "STO_IMMR (store immediate repeat) %u bytes\n"
 msgstr "STO_IMMR (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ðµ Ð½ÐµÐ³Ð°Ð¹Ð½Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€ÐµÐ½Ð½Ñ�) %u Ð±Ð°Ð¹Ñ‚Ñ–Ð²\n"
 
-#: vms-alpha.c:6120
+#: vms-alpha.c:6176
 #, c-format
 msgid "STO_GBL (store global) %.*s\n"
 msgstr "STO_GBL (Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ðµ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ�) %.*s\n"
 
-#: vms-alpha.c:6124
+#: vms-alpha.c:6180
 #, c-format
 msgid "STO_CA (store code address) %.*s\n"
 msgstr "STO_CA (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð° Ð°Ð´Ñ€ÐµÑ�Ð° ÐºÐ¾Ð´Ñƒ) %.*s\n"
 
-#: vms-alpha.c:6128
+#: vms-alpha.c:6184
 #, c-format
 msgid "STO_RB (store relative branch)\n"
 msgstr "STO_RB (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ðµ Ð²Ñ–Ð´Ð½Ð¾Ñ�Ð½Ðµ Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6131
+#: vms-alpha.c:6187
 #, c-format
 msgid "STO_AB (store absolute branch)\n"
 msgstr "STO_AB (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ðµ Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ðµ Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6134
+#: vms-alpha.c:6190
 #, c-format
 msgid "STO_OFF (store offset to psect)\n"
 msgstr "STO_OFF (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ð¹ Ð·Ñ�ÑƒÐ² Ñ‰Ð¾Ð´Ð¾ psect)\n"
 
-#: vms-alpha.c:6140
+#: vms-alpha.c:6196
 #, c-format
 msgid "STO_IMM (store immediate) %u bytes\n"
 msgstr "STO_IMM (Ð½ÐµÐ³Ð°Ð¹Ð½Ðµ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ�) %u Ð±Ð°Ð¹Ñ‚\n"
 
-#: vms-alpha.c:6147
+#: vms-alpha.c:6203
 #, c-format
 msgid "STO_GBL_LW (store global longword) %.*s\n"
 msgstr "STO_GBL_LW (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ðµ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ðµ longword) %.*s\n"
 
-#: vms-alpha.c:6151
+#: vms-alpha.c:6207
 #, c-format
 msgid "STO_OFF (store LP with procedure signature)\n"
 msgstr "STO_OFF (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ� LP Ð· Ð¿Ñ–Ð´Ð¿Ð¸Ñ�Ð¾Ð¼ Ð¿Ñ–Ð´Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸)\n"
 
-#: vms-alpha.c:6154
+#: vms-alpha.c:6210
 #, c-format
 msgid "STO_BR_GBL (store branch global) *todo*\n"
 msgstr "STO_BR_GBL (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ðµ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ðµ Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ�) *Ñ‰Ðµ Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾*\n"
 
-#: vms-alpha.c:6157
+#: vms-alpha.c:6213
 #, c-format
 msgid "STO_BR_PS (store branch psect + offset) *todo*\n"
 msgstr "STO_BR_PS (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ð¹ psect Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� + Ð·Ñ�ÑƒÐ²) *Ñ‰Ðµ Ð½Ðµ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾*\n"
 
-#: vms-alpha.c:6161
+#: vms-alpha.c:6217
 #, c-format
 msgid "OPR_NOP (no-operation)\n"
 msgstr "OPR_NOP (Ð±ÐµÐ· Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ—)\n"
 
-#: vms-alpha.c:6164
+#: vms-alpha.c:6220
 #, c-format
 msgid "OPR_ADD (add)\n"
 msgstr "OPR_ADD (Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6167
+#: vms-alpha.c:6223
 #, c-format
 msgid "OPR_SUB (substract)\n"
 msgstr "OPR_SUB (Ð²Ñ–Ð´Ð½Ñ–Ð¼Ð°Ð½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6170
+#: vms-alpha.c:6226
 #, c-format
 msgid "OPR_MUL (multiply)\n"
 msgstr "OPR_MUL (Ð¼Ð½Ð¾Ð¶ÐµÐ½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6173
+#: vms-alpha.c:6229
 #, c-format
 msgid "OPR_DIV (divide)\n"
 msgstr "OPR_DIV (Ð´Ñ–Ð»ÐµÐ½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6176
+#: vms-alpha.c:6232
 #, c-format
 msgid "OPR_AND (logical and)\n"
 msgstr "OPR_AND (Ð»Ð¾Ð³Ñ–Ñ‡Ð½Ðµ Â«Ð†Â»)\n"
 
-#: vms-alpha.c:6179
+#: vms-alpha.c:6235
 #, c-format
 msgid "OPR_IOR (logical inclusive or)\n"
 msgstr "OPR_IOR (Ð»Ð¾Ð³Ñ–Ñ‡Ð½Ðµ Ð²ÐºÐ»ÑŽÑ‡Ð½Ðµ Â«Ð�Ð‘ÐžÂ»)\n"
 
-#: vms-alpha.c:6182
+#: vms-alpha.c:6238
 #, c-format
 msgid "OPR_EOR (logical exclusive or)\n"
 msgstr "OPR_EOR (Ð»Ð¾Ð³Ñ–Ñ‡Ð½Ðµ Ð²Ð¸ÐºÐ»ÑŽÑ‡Ð½Ðµ Â«Ð�Ð‘ÐžÂ»)\n"
 
-#: vms-alpha.c:6185
+#: vms-alpha.c:6241
 #, c-format
 msgid "OPR_NEG (negate)\n"
 msgstr "OPR_NEG (Ð·Ð°Ð¿ÐµÑ€ÐµÑ‡ÐµÐ½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6188
+#: vms-alpha.c:6244
 #, c-format
 msgid "OPR_COM (complement)\n"
 msgstr "OPR_COM (Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6191
+#: vms-alpha.c:6247
 #, c-format
 msgid "OPR_INSV (insert field)\n"
 msgstr "OPR_INSV (Ð²Ñ�Ñ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ� Ð¿Ð¾Ð»Ñ�)\n"
 
-#: vms-alpha.c:6194
+#: vms-alpha.c:6250
 #, c-format
 msgid "OPR_ASH (arithmetic shift)\n"
 msgstr "OPR_ASH (Ð°Ñ€Ð¸Ñ„Ð¼ÐµÑ‚Ð¸Ñ‡Ð½Ð¸Ð¹ Ð·Ñ�ÑƒÐ²)\n"
 
-#: vms-alpha.c:6197
+#: vms-alpha.c:6253
 #, c-format
 msgid "OPR_USH (unsigned shift)\n"
 msgstr "OPR_USH (Ð±ÐµÐ·Ð·Ð½Ð°ÐºÐ¾Ð²Ð¸Ð¹ Ð·Ñ�ÑƒÐ²)\n"
 
-#: vms-alpha.c:6200
+#: vms-alpha.c:6256
 #, c-format
 msgid "OPR_ROT (rotate)\n"
 msgstr "OPR_ROT (Ñ†Ð¸ÐºÐ»Ñ–Ñ‡Ð½Ð¸Ð¹ Ð·Ñ�ÑƒÐ²)\n"
 
-#: vms-alpha.c:6203
+#: vms-alpha.c:6259
 #, c-format
 msgid "OPR_SEL (select)\n"
 msgstr "OPR_SEL (Ð²Ð¸Ð±Ñ–Ñ€)\n"
 
-#: vms-alpha.c:6206
+#: vms-alpha.c:6262
 #, c-format
 msgid "OPR_REDEF (redefine symbol to curr location)\n"
 msgstr "OPR_REDEF (Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Ð´Ð¾ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ñ— Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ—)\n"
 
-#: vms-alpha.c:6209
+#: vms-alpha.c:6265
 #, c-format
 msgid "OPR_REDEF (define a literal)\n"
 msgstr "OPR_REDEF (Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� Ð»Ñ–Ñ‚ÐµÑ€Ð°Ð»Ð°)\n"
 
-#: vms-alpha.c:6213
+#: vms-alpha.c:6269
 #, c-format
 msgid "STC_LP (store cond linkage pair)\n"
 msgstr "STC_LP (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð° Ð¿Ð°Ñ€Ð° ÑƒÐ¼Ð¾Ð²Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6217
+#: vms-alpha.c:6273
 #, c-format
 msgid "STC_LP_PSB (store cond linkage pair + signature)\n"
 msgstr "STC_LP_PSB (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð° Ð¿Ð°Ñ€Ð° ÑƒÐ¼Ð¾Ð²Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� + Ð¿Ñ–Ð´Ð¿Ð¸Ñ�)\n"
 
-#: vms-alpha.c:6218
+#: vms-alpha.c:6275
 #, c-format
 msgid "   linkage index: %u, procedure: %.*s\n"
 msgstr "   Ñ–Ð½Ð´ÐµÐºÑ� ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ�: %u, Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð°: %.*s\n"
 
-#: vms-alpha.c:6221
+#: vms-alpha.c:6278
 #, c-format
 msgid "   signature: %.*s\n"
 msgstr "   Ð¿Ñ–Ð´Ð¿Ð¸Ñ�: %.*s\n"
 
-#: vms-alpha.c:6224
+#: vms-alpha.c:6281
 #, c-format
 msgid "STC_GBL (store cond global)\n"
 msgstr "STC_GBL (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð° Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð° ÑƒÐ¼Ð¾Ð²Ð°)\n"
 
-#: vms-alpha.c:6225
+#: vms-alpha.c:6283
 #, c-format
 msgid "   linkage index: %u, global: %.*s\n"
 msgstr "   Ñ–Ð½Ð´ÐµÐºÑ� ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ�: %u, Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ð¹: %.*s\n"
 
-#: vms-alpha.c:6229
+#: vms-alpha.c:6287
 #, c-format
 msgid "STC_GCA (store cond code address)\n"
 msgstr "STC_GCA (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð° Ð°Ð´Ñ€ÐµÑ�Ð° ÑƒÐ¼Ð¾Ð²Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ)\n"
 
-#: vms-alpha.c:6230
+#: vms-alpha.c:6289
 #, c-format
 msgid "   linkage index: %u, procedure name: %.*s\n"
 msgstr "   Ñ–Ð½Ð´ÐµÐºÑ� ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ�: %u, Ð½Ð°Ð·Ð²Ð° Ð¿Ñ–Ð´Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸: %.*s\n"
 
-#: vms-alpha.c:6234
+#: vms-alpha.c:6293
 #, c-format
 msgid "STC_PS (store cond psect + offset)\n"
 msgstr "STC_PS (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ð¹ ÑƒÐ¼Ð¾Ð²Ð½Ð¸Ð¹ psect + Ð·Ñ�ÑƒÐ²)\n"
 
-#: vms-alpha.c:6236
+#: vms-alpha.c:6296
 #, c-format
 msgid "   linkage index: %u, psect: %u, offset: 0x%08x %08x\n"
 msgstr "   Ñ–Ð½Ð´ÐµÐºÑ� ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ�: %u, psect: %u, Ð·Ñ�ÑƒÐ²: 0x%08x %08x\n"
 
-#: vms-alpha.c:6243
+#: vms-alpha.c:6303
 #, c-format
 msgid "STC_NOP_GBL (store cond NOP at global addr)\n"
 msgstr "STC_NOP_GBL (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ð¹ ÑƒÐ¼Ð¾Ð²Ð½Ð¸Ð¹ NOP Ð·Ð° Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ)\n"
 
-#: vms-alpha.c:6247
+#: vms-alpha.c:6307
 #, c-format
 msgid "STC_NOP_PS (store cond NOP at psect + offset)\n"
 msgstr "STC_NOP_PS (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ð¹ ÑƒÐ¼Ð¾Ð²Ð½Ð¸Ð¹ NOP Ð·Ð° psect + Ð·Ñ�ÑƒÐ²)\n"
 
-#: vms-alpha.c:6251
+#: vms-alpha.c:6311
 #, c-format
 msgid "STC_BSR_GBL (store cond BSR at global addr)\n"
 msgstr "STC_BSR_GBL (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ð¹ ÑƒÐ¼Ð¾Ð²Ð½Ð¸Ð¹ BSR Ð·Ð° Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ)\n"
 
-#: vms-alpha.c:6255
+#: vms-alpha.c:6315
 #, c-format
 msgid "STC_BSR_PS (store cond BSR at psect + offset)\n"
 msgstr "STC_BSR_PS (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ð¹ ÑƒÐ¼Ð¾Ð²Ð½Ð¸Ð¹ BSR Ð·Ð° psect + Ð·Ñ�ÑƒÐ²)\n"
 
-#: vms-alpha.c:6259
+#: vms-alpha.c:6319
 #, c-format
 msgid "STC_LDA_GBL (store cond LDA at global addr)\n"
 msgstr "STC_LDA_GBL (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ð¹ ÑƒÐ¼Ð¾Ð²Ð½Ð¸Ð¹ LDA Ð·Ð° Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ)\n"
 
-#: vms-alpha.c:6263
+#: vms-alpha.c:6323
 #, c-format
 msgid "STC_LDA_PS (store cond LDA at psect + offset)\n"
 msgstr "STC_LDA_PS (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð° ÑƒÐ¼Ð¾Ð²Ð½Ð° LDA Ð·Ð° psect + Ð·Ñ�ÑƒÐ²)\n"
 
-#: vms-alpha.c:6267
+#: vms-alpha.c:6327
 #, c-format
 msgid "STC_BOH_GBL (store cond BOH at global addr)\n"
 msgstr "STC_BOH_GBL (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ð¹ ÑƒÐ¼Ð¾Ð²Ð½Ð¸Ð¹ BOH Ð·Ð° Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ)\n"
 
-#: vms-alpha.c:6271
+#: vms-alpha.c:6331
 #, c-format
 msgid "STC_BOH_PS (store cond BOH at psect + offset)\n"
 msgstr "STC_BOH_PS (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¸Ð¹ ÑƒÐ¼Ð¾Ð²Ð½Ð¸Ð¹ BOH Ð·Ð° psect + Ð·Ñ�ÑƒÐ²)\n"
 
-#: vms-alpha.c:6276
+#: vms-alpha.c:6336
 #, c-format
 msgid "STC_NBH_GBL (store cond or hint at global addr)\n"
 msgstr "STC_NBH_GBL (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð° ÑƒÐ¼Ð¾Ð²Ð° Ð°Ð±Ð¾ Ð²ÐºÐ°Ð·Ñ–Ð²ÐºÐ° Ð·Ð° Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ)\n"
 
-#: vms-alpha.c:6280
+#: vms-alpha.c:6340
 #, c-format
 msgid "STC_NBH_PS (store cond or hint at psect + offset)\n"
 msgstr "STC_NBH_PS (Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð° ÑƒÐ¼Ð¾Ð²Ð° Ð°Ð±Ð¾ Ð²ÐºÐ°Ð·Ñ–Ð²ÐºÐ° Ð·Ð° psect + Ð·Ñ�ÑƒÐ²)\n"
 
-#: vms-alpha.c:6284
+#: vms-alpha.c:6344
 #, c-format
 msgid "CTL_SETRB (set relocation base)\n"
 msgstr "CTL_SETRB (Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ� Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6290
+#: vms-alpha.c:6350
 #, c-format
 msgid "CTL_AUGRB (augment relocation base) %u\n"
 msgstr "CTL_AUGRB (Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ� Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�) %u\n"
 
-#: vms-alpha.c:6294
+#: vms-alpha.c:6354
 #, c-format
 msgid "CTL_DFLOC (define location)\n"
 msgstr "CTL_DFLOC (Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6297
+#: vms-alpha.c:6357
 #, c-format
 msgid "CTL_STLOC (set location)\n"
 msgstr "CTL_STLOC (Ð²ÐºÐ°Ð·Ð°Ñ‚Ð¸ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6300
+#: vms-alpha.c:6360
 #, c-format
 msgid "CTL_STKDL (stack defined location)\n"
 msgstr "CTL_STKDL (Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ�, Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ñ�Ñ‚ÐµÐºÐ¾Ð¼)\n"
 
-#: vms-alpha.c:6303 vms-alpha.c:6717
+#: vms-alpha.c:6363 vms-alpha.c:6787 vms-alpha.c:6913
 #, c-format
 msgid "*unhandled*\n"
 msgstr "*Ð½Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¾*\n"
 
-#: vms-alpha.c:6333 vms-alpha.c:6372
+#: vms-alpha.c:6393 vms-alpha.c:6432
 #, c-format
 msgid "cannot read GST record length\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ GST\n"
 
 #. Ill-formed.
-#: vms-alpha.c:6354
+#: vms-alpha.c:6414
 #, c-format
 msgid "cannot find EMH in first GST record\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ EMH Ñƒ Ð¿ÐµÑ€ÑˆÐ¾Ð¼Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñ– GST\n"
 
-#: vms-alpha.c:6380
+#: vms-alpha.c:6440
 #, c-format
 msgid "cannot read GST record header\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Ð·Ð°Ð¿Ð¸Ñ�Ñƒ GST\n"
 
-#: vms-alpha.c:6393
+#: vms-alpha.c:6453
 #, c-format
 msgid " corrupted GST\n"
 msgstr " Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ GST\n"
 
-#: vms-alpha.c:6401
+#: vms-alpha.c:6461
 #, c-format
 msgid "cannot read GST record\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ� GST\n"
 
-#: vms-alpha.c:6430
+#: vms-alpha.c:6490
 #, c-format
 msgid " unhandled EOBJ record type %u\n"
 msgstr " Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹ Ð´Ð¾ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ‚Ð¸Ð¿ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ EOBJ, %u\n"
 
-#: vms-alpha.c:6453
+#: vms-alpha.c:6514
 #, c-format
 msgid "  bitcount: %u, base addr: 0x%08x\n"
 msgstr "  ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð±Ñ–Ñ‚Ñ–Ð²: %u, Ð±Ð°Ð·Ð¾Ð²Ð° Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x\n"
 
-#: vms-alpha.c:6466
+#: vms-alpha.c:6528
 #, c-format
 msgid "   bitmap: 0x%08x (count: %u):\n"
 msgstr "   Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ð¾Ð±Ñ€Ð°Ð·: 0x%08x (Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸Ðº: %u):\n"
 
-#: vms-alpha.c:6473
+#: vms-alpha.c:6535
 #, c-format
 msgid " %08x"
 msgstr " %08x"
 
-#: vms-alpha.c:6498
+#: vms-alpha.c:6561
 #, c-format
 msgid "  image %u (%u entries)\n"
 msgstr "  Ð¾Ð±Ñ€Ð°Ð· %u (%u Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð²)\n"
 
-#: vms-alpha.c:6503
+#: vms-alpha.c:6567
 #, c-format
 msgid "   offset: 0x%08x, val: 0x%08x\n"
 msgstr "   Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿: 0x%08x, Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�: 0x%08x\n"
 
-#: vms-alpha.c:6524
+#: vms-alpha.c:6589
 #, c-format
 msgid "  image %u (%u entries), offsets:\n"
 msgstr "  Ð¾Ð±Ñ€Ð°Ð· %u (%u Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð²), Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¸:\n"
 
-#: vms-alpha.c:6531
+#: vms-alpha.c:6596
 #, c-format
 msgid " 0x%08x"
 msgstr " 0x%08x"
 
 #. 64 bits.
-#: vms-alpha.c:6653
+#: vms-alpha.c:6718
 #, c-format
 msgid "64 bits *unhandled*\n"
 msgstr "64 Ð±Ñ–Ñ‚Ð¸ *Ð½Ðµ Ð¾Ð±Ñ€Ð¾Ð±Ð»Ñ�Ñ”Ñ‚ÑŒÑ�Ñ�*\n"
 
-#: vms-alpha.c:6657
+#: vms-alpha.c:6723
 #, c-format
 msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
 msgstr "ÐºÐ»Ð°Ñ�: %u, dtype: %u, Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %u, Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸Ðº: 0x%08x\n"
 
-#: vms-alpha.c:6668
+#: vms-alpha.c:6734
 #, c-format
 msgid "non-contiguous array of %s\n"
 msgstr "Ñ€Ð¾Ð·Ñ€Ð¸Ð²Ð½Ð¸Ð¹ Ð¼Ð°Ñ�Ð¸Ð² %s\n"
 
-#: vms-alpha.c:6672
+#: vms-alpha.c:6739
 #, c-format
 msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"
 msgstr "dimct: %u, aflags: 0x%02x, Ñ†Ð¸Ñ„Ñ€: %u, ÑˆÐºÐ°Ð»Ð°: %u\n"
 
-#: vms-alpha.c:6676
+#: vms-alpha.c:6744
 #, c-format
 msgid "arsize: %u, a0: 0x%08x\n"
 msgstr "arsize: %u, a0: 0x%08x\n"
 
-#: vms-alpha.c:6680
+#: vms-alpha.c:6748
 #, c-format
 msgid "Strides:\n"
 msgstr "ÐšÑ€Ð¾ÐºÐ¸:\n"
 
-#: vms-alpha.c:6685
-#, c-format
-msgid "[%u]: %u\n"
-msgstr "[%u]: %u\n"
-
-#: vms-alpha.c:6690
+#: vms-alpha.c:6758
 #, c-format
 msgid "Bounds:\n"
 msgstr "ÐœÐµÐ¶Ñ–:\n"
 
-#: vms-alpha.c:6695
+#: vms-alpha.c:6764
 #, c-format
 msgid "[%u]: Lower: %u, upper: %u\n"
 msgstr "[%u]: Ð½Ð¸Ð¶Ð½Ñ�: %u, Ð²ÐµÑ€Ñ…Ð½Ñ�: %u\n"
 
-#: vms-alpha.c:6707
+#: vms-alpha.c:6776
 #, c-format
 msgid "unaligned bit-string of %s\n"
 msgstr "Ð½ÐµÐ²Ð¸Ñ€Ñ–Ð²Ð½Ñ�Ð½Ð¸Ð¹ Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¹ Ñ€Ñ�Ð´Ð¾Ðº %s\n"
 
-#: vms-alpha.c:6711
+#: vms-alpha.c:6781
 #, c-format
 msgid "base: %u, pos: %u\n"
 msgstr "Ð¾Ñ�Ð½Ð¾Ð²Ð°: %u, Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ�: %u\n"
 
-#: vms-alpha.c:6731
+#: vms-alpha.c:6802
 #, c-format
 msgid "vflags: 0x%02x, value: 0x%08x "
 msgstr "vflags: 0x%02x, Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�: 0x%08x "
 
-#: vms-alpha.c:6737
+#: vms-alpha.c:6808
 #, c-format
 msgid "(no value)\n"
 msgstr "(Ð½ÐµÐ¼Ð° Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6740
+#: vms-alpha.c:6811
 #, c-format
 msgid "(not active)\n"
 msgstr "(Ð½ÐµÐ°ÐºÑ‚Ð¸Ð²Ð½Ðµ)\n"
 
-#: vms-alpha.c:6743
+#: vms-alpha.c:6814
 #, c-format
 msgid "(not allocated)\n"
 msgstr "(Ð½Ðµ Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð¾)\n"
 
-#: vms-alpha.c:6746
+#: vms-alpha.c:6817
 #, c-format
 msgid "(descriptor)\n"
 msgstr "(Ð´ÐµÑ�ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ñ€)\n"
 
-#: vms-alpha.c:6750
+#: vms-alpha.c:6821
 #, c-format
 msgid "(trailing value)\n"
 msgstr "(Ñ…Ð²Ð¾Ñ�Ñ‚Ð¾Ð²Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�)\n"
 
-#: vms-alpha.c:6753
+#: vms-alpha.c:6824
 #, c-format
 msgid "(value spec follows)\n"
 msgstr "(Ð´Ð°Ð»Ñ– Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ� Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ)\n"
 
-#: vms-alpha.c:6756
+#: vms-alpha.c:6827
 #, c-format
 msgid "(at bit offset %u)\n"
 msgstr "(Ð·Ð° Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿Ð¾Ð¼ Ñƒ Ð±Ñ–Ñ‚Ð°Ñ… %u)\n"
 
-#: vms-alpha.c:6759
+#: vms-alpha.c:6831
 #, c-format
 msgid "(reg: %u, disp: %u, indir: %u, kind: "
 msgstr "(Ñ€ÐµÐ³: %u, disp: %u, indir: %u, Ñ‚Ð¸Ð¿: "
 
-#: vms-alpha.c:6766
+#: vms-alpha.c:6838
 msgid "literal"
 msgstr "Ð»Ñ–Ñ‚ÐµÑ€Ð°Ð»"
 
-#: vms-alpha.c:6769
+#: vms-alpha.c:6841
 msgid "address"
 msgstr "Ð°Ð´Ñ€ÐµÑ�Ð°"
 
-#: vms-alpha.c:6772
+#: vms-alpha.c:6844
 msgid "desc"
 msgstr "Ð´ÐµÑ�Ðº"
 
-#: vms-alpha.c:6775
+#: vms-alpha.c:6847
 msgid "reg"
 msgstr "Ñ€ÐµÐ³"
 
-#: vms-alpha.c:6850
+#: vms-alpha.c:6864
+#, c-format
+msgid "len: %2u, kind: %2u "
+msgstr "Ð´Ð¾Ð²Ð¶.: %2u, Ñ‚Ð¸Ð¿: %2u "
+
+#: vms-alpha.c:6870
+#, c-format
+msgid "atomic, type=0x%02x %s\n"
+msgstr "Ð°Ñ‚Ð¾Ð¼Ð°Ñ€Ð½Ð¸Ð¹, Ñ‚Ð¸Ð¿=0x%02x %s\n"
+
+#: vms-alpha.c:6874
+#, c-format
+msgid "indirect, defined at 0x%08x\n"
+msgstr "Ð¾Ð¿Ð¾Ñ�ÐµÑ€ÐµÐ´ÐºÐ¾Ð²Ð°Ð½Ð¸Ð¹, Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñ‚ÑƒÑ‚: 0x%08x\n"
+
+#: vms-alpha.c:6878
+#, c-format
+msgid "typed pointer\n"
+msgstr "Ñ‚Ð¸Ð¿Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸Ðº\n"
+
+#: vms-alpha.c:6882
+#, c-format
+msgid "pointer\n"
+msgstr "Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸Ðº\n"
+
+#: vms-alpha.c:6890
+#, c-format
+msgid "array, dim: %u, bitmap: "
+msgstr "Ð¼Ð°Ñ�Ð¸Ð², Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð½Ñ–Ñ�Ñ‚ÑŒ: %u, Ð±Ñ–Ñ‚Ð¾Ð²Ð° ÐºÐ°Ñ€Ñ‚Ð°: "
+
+#: vms-alpha.c:6897
+#, c-format
+msgid "array descriptor:\n"
+msgstr "Ð´ÐµÑ�ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ñ€ Ð¼Ð°Ñ�Ð¸Ð²Ñƒ:\n"
+
+#: vms-alpha.c:6904
+#, c-format
+msgid "type spec for element:\n"
+msgstr "Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ� Ñ‚Ð¸Ð¿Ñƒ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°:\n"
+
+#: vms-alpha.c:6906
+#, c-format
+msgid "type spec for subscript %u:\n"
+msgstr "Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ� Ñ‚Ð¸Ð¿Ñƒ Ð´Ð»Ñ� Ñ�Ð¿Ð¸Ñ�ÐºÑƒ Ñ–Ð½Ð´ÐµÐºÑ�Ñ–Ð² %u:\n"
+
+#: vms-alpha.c:6924
 #, c-format
 msgid "Debug symbol table:\n"
 msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ�:\n"
 
-#: vms-alpha.c:6861
+#: vms-alpha.c:6935
 #, c-format
 msgid "cannot read DST header\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº DST\n"
 
-#: vms-alpha.c:6866
+#: vms-alpha.c:6941
 #, c-format
 msgid " type: %3u, len: %3u (at 0x%08x): "
 msgstr " Ñ‚Ð¸Ð¿: %3u, Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %3u (Ð·Ð° 0x%08x): "
 
-#: vms-alpha.c:6880
+#: vms-alpha.c:6955
 #, c-format
 msgid "cannot read DST symbol\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ñ�Ð¸Ð¼Ð²Ð¾Ð» DST\n"
 
-#: vms-alpha.c:6923
+#: vms-alpha.c:6998
 #, c-format
 msgid "standard data: %s\n"
 msgstr "Ñ�Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ñ– Ð´Ð°Ð½Ñ–: %s\n"
 
-#: vms-alpha.c:6926 vms-alpha.c:7010
+#: vms-alpha.c:7001 vms-alpha.c:7089
 #, c-format
 msgid "    name: %.*s\n"
 msgstr "    Ð½Ð°Ð·Ð²Ð°: %.*s\n"
 
-#: vms-alpha.c:6933
+#: vms-alpha.c:7008
 #, c-format
 msgid "modbeg\n"
 msgstr "modbeg\n"
 
-#: vms-alpha.c:6934
+#: vms-alpha.c:7010
 #, c-format
 msgid "   flags: %d, language: %u, major: %u, minor: %u\n"
 msgstr "   Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–: %d, Ð¼Ð¾Ð²Ð°: %u, Ñ�Ñ‚Ð°Ñ€ÑˆÐ¸Ð¹: %u, Ð¼Ð¾Ð»Ð¾Ð´ÑˆÐ¸Ð¹: %u\n"
 
-#: vms-alpha.c:6940 vms-alpha.c:7206
+#: vms-alpha.c:7016 vms-alpha.c:7290
 #, c-format
 msgid "   module name: %.*s\n"
 msgstr "   Ð½Ð°Ð·Ð²Ð° Ð¼Ð¾Ð´ÑƒÐ»Ñ�: %.*s\n"
 
-#: vms-alpha.c:6943
+#: vms-alpha.c:7019
 #, c-format
 msgid "   compiler   : %.*s\n"
 msgstr "   ÐºÐ¾Ð¼Ð¿Ñ–Ð»Ñ�Ñ‚Ð¾Ñ€ : %.*s\n"
 
-#: vms-alpha.c:6948
+#: vms-alpha.c:7024
 #, c-format
 msgid "modend\n"
 msgstr "modend\n"
 
-#: vms-alpha.c:6955
+#: vms-alpha.c:7031
 msgid "rtnbeg\n"
 msgstr "rtnbeg\n"
 
-#: vms-alpha.c:6956
+#: vms-alpha.c:7033
 #, c-format
 msgid "    flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
 msgstr "    Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–: %u, Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x, pd-Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x\n"
 
-#: vms-alpha.c:6961
+#: vms-alpha.c:7038
 #, c-format
 msgid "    routine name: %.*s\n"
 msgstr "    Ð½Ð°Ð·Ð²Ð° Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð¸: %.*s\n"
 
-#: vms-alpha.c:6969
+#: vms-alpha.c:7046
 #, c-format
 msgid "rtnend: size 0x%08x\n"
 msgstr "rtnend: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ 0x%08x\n"
 
-#: vms-alpha.c:6977
+#: vms-alpha.c:7054
 #, c-format
 msgid "prolog: bkpt address 0x%08x\n"
 msgstr "Ð¿Ñ€Ð¾Ð»Ð¾Ð³: Ð°Ð´Ñ€ÐµÑ�Ð° bkpt 0x%08x\n"
 
-#: vms-alpha.c:6985
+#: vms-alpha.c:7063
 #, c-format
 msgid "epilog: flags: %u, count: %u\n"
 msgstr "ÐµÐ¿Ñ–Ð»Ð¾Ð³: Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–: %u, Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸Ðº: %u\n"
 
-#: vms-alpha.c:6994
+#: vms-alpha.c:7073
 #, c-format
 msgid "blkbeg: address: 0x%08x, name: %.*s\n"
 msgstr "blkbeg: Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x, Ð½Ð°Ð·Ð²Ð°: %.*s\n"
 
-#: vms-alpha.c:7003
+#: vms-alpha.c:7082
 #, c-format
 msgid "blkend: size: 0x%08x\n"
 msgstr "blkend: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: 0x%08x\n"
 
-#: vms-alpha.c:7009
+#: vms-alpha.c:7088
 #, c-format
 msgid "typspec (len: %u)\n"
 msgstr "typspec (Ð´Ð¾Ð²Ð¶.: %u)\n"
 
-#: vms-alpha.c:7016
+#: vms-alpha.c:7095
 #, c-format
 msgid "septyp, name: %.*s\n"
 msgstr "septyp, Ð½Ð°Ð·Ð²Ð°: %.*s\n"
 
-#: vms-alpha.c:7025
+#: vms-alpha.c:7104
 #, c-format
 msgid "recbeg: name: %.*s\n"
 msgstr "recbeg: Ð½Ð°Ð·Ð²Ð°: %.*s\n"
 
-#: vms-alpha.c:7032
+#: vms-alpha.c:7106
+#, c-format
+msgid "    len: %u bits\n"
+msgstr "    Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %u Ð±Ñ–Ñ‚Ñ–Ð²\n"
+
+#: vms-alpha.c:7111
 #, c-format
 msgid "recend\n"
 msgstr "recend\n"
 
-#: vms-alpha.c:7035
+#: vms-alpha.c:7115
 #, c-format
 msgid "enumbeg, len: %u, name: %.*s\n"
 msgstr "enumbeg, Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %u, Ð½Ð°Ð·Ð²Ð°: %.*s\n"
 
-#: vms-alpha.c:7039
+#: vms-alpha.c:7119
 #, c-format
 msgid "enumelt, name: %.*s\n"
 msgstr "enumelt, Ð½Ð°Ð·Ð²Ð°: %.*s\n"
 
-#: vms-alpha.c:7043
+#: vms-alpha.c:7123
 #, c-format
 msgid "enumend\n"
 msgstr "enumend\n"
 
-#: vms-alpha.c:7060
+#: vms-alpha.c:7128
+#, c-format
+msgid "label, name: %.*s\n"
+msgstr "Ð¼Ñ–Ñ‚ÐºÐ°, Ð½Ð°Ð·Ð²Ð°: %.*s\n"
+
+#: vms-alpha.c:7130
+#, c-format
+msgid "    address: 0x%08x\n"
+msgstr "    Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x\n"
+
+#: vms-alpha.c:7140
 #, c-format
 msgid "discontiguous range (nbr: %u)\n"
 msgstr "Ñ€Ð¾Ð·Ñ€Ð¸Ð²Ð½Ð¸Ð¹ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½ (nbr: %u)\n"
 
-#: vms-alpha.c:7062
+#: vms-alpha.c:7143
 #, c-format
 msgid "    address: 0x%08x, size: %u\n"
 msgstr "    Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u\n"
 
-#: vms-alpha.c:7072
+#: vms-alpha.c:7153
 #, c-format
 msgid "line num  (len: %u)\n"
 msgstr "Ð½Ð¾Ð¼ÐµÑ€ Ñ€Ñ�Ð´ÐºÐ°  (Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %u)\n"
 
-#: vms-alpha.c:7089
+#: vms-alpha.c:7170
 #, c-format
 msgid "delta_pc_w %u\n"
 msgstr "delta_pc_w %u\n"
 
-#: vms-alpha.c:7096
+#: vms-alpha.c:7177
 #, c-format
 msgid "incr_linum(b): +%u\n"
 msgstr "incr_linum(b): +%u\n"
 
-#: vms-alpha.c:7102
+#: vms-alpha.c:7183
 #, c-format
 msgid "incr_linum_w: +%u\n"
 msgstr "incr_linum_w: +%u\n"
 
-#: vms-alpha.c:7108
+#: vms-alpha.c:7189
 #, c-format
 msgid "incr_linum_l: +%u\n"
 msgstr "incr_linum_l: +%u\n"
 
-#: vms-alpha.c:7114
+#: vms-alpha.c:7195
 #, c-format
 msgid "set_line_num(w) %u\n"
 msgstr "set_line_num(w) %u\n"
 
-#: vms-alpha.c:7119
+#: vms-alpha.c:7200
 #, c-format
 msgid "set_line_num_b %u\n"
 msgstr "set_line_num_b %u\n"
 
-#: vms-alpha.c:7124
+#: vms-alpha.c:7205
 #, c-format
 msgid "set_line_num_l %u\n"
 msgstr "set_line_num_l %u\n"
 
-#: vms-alpha.c:7129
+#: vms-alpha.c:7210
 #, c-format
 msgid "set_abs_pc: 0x%08x\n"
 msgstr "set_abs_pc: 0x%08x\n"
 
-#: vms-alpha.c:7133
+#: vms-alpha.c:7214
 #, c-format
 msgid "delta_pc_l: +0x%08x\n"
 msgstr "delta_pc_l: +0x%08x\n"
 
-#: vms-alpha.c:7138
+#: vms-alpha.c:7219
 #, c-format
 msgid "term(b): 0x%02x"
 msgstr "term(b): 0x%02x"
 
-#: vms-alpha.c:7140
+#: vms-alpha.c:7221
 #, c-format
 msgid "        pc: 0x%08x\n"
 msgstr "        pc: 0x%08x\n"
 
-#: vms-alpha.c:7145
+#: vms-alpha.c:7226
 #, c-format
 msgid "term_w: 0x%04x"
 msgstr "term_w: 0x%04x"
 
-#: vms-alpha.c:7147
+#: vms-alpha.c:7228
 #, c-format
 msgid "    pc: 0x%08x\n"
 msgstr "    pc: 0x%08x\n"
 
-#: vms-alpha.c:7153
+#: vms-alpha.c:7234
 #, c-format
 msgid "delta pc +%-4d"
 msgstr "Ð¿Ñ€Ð¸Ñ€Ñ–Ñ�Ñ‚ pc +%-4d"
 
-#: vms-alpha.c:7156
+#: vms-alpha.c:7238
 #, c-format
 msgid "    pc: 0x%08x line: %5u\n"
 msgstr "    pc: 0x%08x Ñ€Ñ�Ð´Ð¾Ðº: %5u\n"
 
-#: vms-alpha.c:7161
+#: vms-alpha.c:7243
 #, c-format
 msgid "    *unhandled* cmd %u\n"
 msgstr "    *Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð°* ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %u\n"
 
-#: vms-alpha.c:7176
+#: vms-alpha.c:7258
 #, c-format
 msgid "source (len: %u)\n"
 msgstr "Ð´Ð¶ÐµÑ€ÐµÐ»Ð¾ (Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %u)\n"
 
-#: vms-alpha.c:7190
+#: vms-alpha.c:7273
 #, c-format
 msgid "   declfile: len: %u, flags: %u, fileid: %u\n"
 msgstr "   declfile: Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %u, Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–: %u, Ñ–Ð´. Ñ„Ð°Ð¹Ð»Ð°: %u\n"
 
-#: vms-alpha.c:7194
+#: vms-alpha.c:7278
 #, c-format
 msgid "   rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
 msgstr "   rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
 
-#: vms-alpha.c:7203
+#: vms-alpha.c:7287
 #, c-format
 msgid "   filename   : %.*s\n"
 msgstr "   Ð½Ð°Ð·Ð²Ð° Ñ„Ð°Ð¹Ð»Ð°: %.*s\n"
 
-#: vms-alpha.c:7212
+#: vms-alpha.c:7296
 #, c-format
 msgid "   setfile %u\n"
 msgstr "   setfile %u\n"
 
-#: vms-alpha.c:7217 vms-alpha.c:7222
+#: vms-alpha.c:7301 vms-alpha.c:7306
 #, c-format
 msgid "   setrec %u\n"
 msgstr "   setrec %u\n"
 
-#: vms-alpha.c:7227 vms-alpha.c:7232
+#: vms-alpha.c:7311 vms-alpha.c:7316
 #, c-format
 msgid "   setlnum %u\n"
 msgstr "   setlnum %u\n"
 
-#: vms-alpha.c:7237 vms-alpha.c:7242
+#: vms-alpha.c:7321 vms-alpha.c:7326
 #, c-format
 msgid "   deflines %u\n"
 msgstr "   deflines %u\n"
 
-#: vms-alpha.c:7246
+#: vms-alpha.c:7330
 #, c-format
 msgid "   formfeed\n"
 msgstr "   formfeed\n"
 
-#: vms-alpha.c:7250
+#: vms-alpha.c:7334
 #, c-format
 msgid "   *unhandled* cmd %u\n"
 msgstr "   *Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð°* ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° %u\n"
 
-#: vms-alpha.c:7262
+#: vms-alpha.c:7346
 #, c-format
 msgid "*unhandled* dst type %u\n"
 msgstr "*Ð½ÐµÐ¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¸Ð¹* Ñ‚Ð¸Ð¿ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�, %u\n"
 
-#: vms-alpha.c:7294
+#: vms-alpha.c:7378
 #, c-format
 msgid "cannot read EIHD\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ EIHD\n"
 
-#: vms-alpha.c:7297
+#: vms-alpha.c:7382
 #, c-format
 msgid "EIHD: (size: %u, nbr blocks: %u)\n"
 msgstr "EIHD: (Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u, ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð±Ð»Ð¾ÐºÑ–Ð²: %u)\n"
 
-#: vms-alpha.c:7300
+#: vms-alpha.c:7386
 #, c-format
 msgid " majorid: %u, minorid: %u\n"
 msgstr " majorid: %u, minorid: %u\n"
 
-#: vms-alpha.c:7308
+#: vms-alpha.c:7394
 msgid "executable"
 msgstr "Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹"
 
-#: vms-alpha.c:7311
+#: vms-alpha.c:7397
 msgid "linkable image"
 msgstr "ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²Ð°Ð½Ð¸Ð¹ Ð¾Ð±Ñ€Ð°Ð·"
 
-#: vms-alpha.c:7317
+#: vms-alpha.c:7404
 #, c-format
 msgid " image type: %u (%s)"
 msgstr " Ñ‚Ð¸Ð¿ Ð¾Ð±Ñ€Ð°Ð·Ñƒ: %u (%s)"
 
-#: vms-alpha.c:7323
+#: vms-alpha.c:7410
 msgid "native"
 msgstr "Ñ�Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ð¹"
 
-#: vms-alpha.c:7326
+#: vms-alpha.c:7413
 msgid "CLI"
 msgstr "CLI"
 
-#: vms-alpha.c:7332
+#: vms-alpha.c:7420
 #, c-format
 msgid ", subtype: %u (%s)\n"
 msgstr ", Ð¿Ñ–Ð´Ñ‚Ð¸Ð¿: %u (%s)\n"
 
-#: vms-alpha.c:7338
+#: vms-alpha.c:7427
 #, c-format
 msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
 msgstr " Ð·Ñ�ÑƒÐ²Ð¸: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
 
-#: vms-alpha.c:7342
+#: vms-alpha.c:7431
 #, c-format
 msgid " fixup info rva: "
 msgstr " Ð´Ð°Ð½Ñ– Ñ‰Ð¾Ð´Ð¾ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ rva: "
 
-#: vms-alpha.c:7344
+#: vms-alpha.c:7433
 #, c-format
 msgid ", symbol vector rva: "
 msgstr ", Ð²ÐµÐºÑ‚Ð¾Ñ€ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² rva: "
 
-#: vms-alpha.c:7347
+#: vms-alpha.c:7436
 #, c-format
 msgid ""
 "\n"
@@ -5255,694 +7388,688 @@ msgstr ""
 "\n"
 " Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð¼Ð°Ñ�Ð¸Ð²Ñƒ Ð²ÐµÑ€Ñ�Ñ–Ñ—: %u\n"
 
-#: vms-alpha.c:7351
+#: vms-alpha.c:7441
 #, c-format
 msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
 msgstr " Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸Ðº Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ�-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ� Ð¾Ð±Ñ€Ð°Ð·Ñƒ: %u, Ðº-Ñ‚ÑŒ ÐºÐ°Ð½Ð°Ð»Ñ–Ð²: %u, Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ñ–Ñ�Ñ‚ÑŒ: %08x%08x\n"
 
-#: vms-alpha.c:7357
+#: vms-alpha.c:7447
 #, c-format
 msgid " linker flags: %08x:"
 msgstr " Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ°: %08x:"
 
-#: vms-alpha.c:7387
+#: vms-alpha.c:7478
 #, c-format
 msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
 msgstr " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
 
-#: vms-alpha.c:7393
+#: vms-alpha.c:7484
 #, c-format
 msgid " BPAGE: %u"
 msgstr " BPAGE: %u"
 
-#: vms-alpha.c:7399
+#: vms-alpha.c:7491
 #, c-format
 msgid ", ext fixup offset: %u, no_opt psect off: %u"
 msgstr ", Ð·Ñ�ÑƒÐ² Ñ€Ð¾Ð·ÑˆÐ¸Ñ€. Ð¿Ñ€Ð¸Ð²â€™Ð·Ñ�ÐºÐ¸: %u, Ð·Ñ�ÑƒÐ² psect no_opt: %u"
 
-#: vms-alpha.c:7402
+#: vms-alpha.c:7494
 #, c-format
 msgid ", alias: %u\n"
 msgstr ", Ð¿Ñ�ÐµÐ²Ð´Ð¾Ð½Ñ–Ð¼: %u\n"
 
-#: vms-alpha.c:7410
+#: vms-alpha.c:7502
 #, c-format
 msgid "system version array information:\n"
 msgstr "Ð¼Ð°Ñ�Ð¸Ð² Ð´Ð°Ð½Ð¸Ñ… Ñ‰Ð¾Ð´Ð¾ Ð²ÐµÑ€Ñ�Ñ–Ñ— Ñ�Ð¸Ñ�Ñ‚ÐµÐ¼Ð¸:\n"
 
-#: vms-alpha.c:7414
+#: vms-alpha.c:7506
 #, c-format
 msgid "cannot read EIHVN header\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº EIHVN\n"
 
-#: vms-alpha.c:7424
+#: vms-alpha.c:7516
 #, c-format
 msgid "cannot read EIHVN version\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð²ÐµÑ€Ñ�Ñ–ÑŽ EIHVN\n"
 
-#: vms-alpha.c:7427
+#: vms-alpha.c:7519
 #, c-format
 msgid "   %02u "
 msgstr "   %02u "
 
-#: vms-alpha.c:7431
+#: vms-alpha.c:7523
 msgid "BASE_IMAGE       "
 msgstr "BASE_IMAGE       "
 
-#: vms-alpha.c:7434
+#: vms-alpha.c:7526
 msgid "MEMORY_MANAGEMENT"
 msgstr "MEMORY_MANAGEMENT"
 
-#: vms-alpha.c:7437
+#: vms-alpha.c:7529
 msgid "IO               "
 msgstr "IO               "
 
-#: vms-alpha.c:7440
+#: vms-alpha.c:7532
 msgid "FILES_VOLUMES    "
 msgstr "FILES_VOLUMES    "
 
-#: vms-alpha.c:7443
+#: vms-alpha.c:7535
 msgid "PROCESS_SCHED    "
 msgstr "PROCESS_SCHED    "
 
-#: vms-alpha.c:7446
+#: vms-alpha.c:7538
 msgid "SYSGEN           "
 msgstr "SYSGEN           "
 
-#: vms-alpha.c:7449
+#: vms-alpha.c:7541
 msgid "CLUSTERS_LOCKMGR "
 msgstr "CLUSTERS_LOCKMGR "
 
-#: vms-alpha.c:7452
+#: vms-alpha.c:7544
 msgid "LOGICAL_NAMES    "
 msgstr "LOGICAL_NAMES    "
 
-#: vms-alpha.c:7455
+#: vms-alpha.c:7547
 msgid "SECURITY         "
 msgstr "SECURITY         "
 
-#: vms-alpha.c:7458
+#: vms-alpha.c:7550
 msgid "IMAGE_ACTIVATOR  "
 msgstr "IMAGE_ACTIVATOR  "
 
-#: vms-alpha.c:7461
+#: vms-alpha.c:7553
 msgid "NETWORKS         "
 msgstr "NETWORKS         "
 
-#: vms-alpha.c:7464
+#: vms-alpha.c:7556
 msgid "COUNTERS         "
 msgstr "COUNTERS         "
 
-#: vms-alpha.c:7467
+#: vms-alpha.c:7559
 msgid "STABLE           "
 msgstr "STABLE           "
 
-#: vms-alpha.c:7470
+#: vms-alpha.c:7562
 msgid "MISC             "
 msgstr "MISC             "
 
-#: vms-alpha.c:7473
+#: vms-alpha.c:7565
 msgid "CPU              "
 msgstr "CPU              "
 
-#: vms-alpha.c:7476
+#: vms-alpha.c:7568
 msgid "VOLATILE         "
 msgstr "VOLATILE         "
 
-#: vms-alpha.c:7479
+#: vms-alpha.c:7571
 msgid "SHELL            "
 msgstr "SHELL            "
 
-#: vms-alpha.c:7482
+#: vms-alpha.c:7574
 msgid "POSIX            "
 msgstr "POSIX            "
 
-#: vms-alpha.c:7485
+#: vms-alpha.c:7577
 msgid "MULTI_PROCESSING "
 msgstr "MULTI_PROCESSING "
 
-#: vms-alpha.c:7488
+#: vms-alpha.c:7580
 msgid "GALAXY           "
 msgstr "GALAXY           "
 
-#: vms-alpha.c:7491
+#: vms-alpha.c:7583
 msgid "*unknown*        "
 msgstr "*Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾*       "
 
-#: vms-alpha.c:7494
-#, c-format
-msgid ": %u.%u\n"
-msgstr ": %u.%u\n"
-
-#: vms-alpha.c:7507 vms-alpha.c:7766
+#: vms-alpha.c:7599 vms-alpha.c:7874
 #, c-format
 msgid "cannot read EIHA\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ EIHA\n"
 
-#: vms-alpha.c:7510
+#: vms-alpha.c:7602
 #, c-format
 msgid "Image activation:  (size=%u)\n"
 msgstr "Ð�ÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ� Ð¾Ð±Ñ€Ð°Ð·Ñƒ:  (Ñ€Ð¾Ð·Ð¼Ñ–Ñ€=%u)\n"
 
-#: vms-alpha.c:7512
+#: vms-alpha.c:7605
 #, c-format
 msgid " First address : 0x%08x 0x%08x\n"
 msgstr " ÐŸÐµÑ€ÑˆÐ° Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x 0x%08x\n"
 
-#: vms-alpha.c:7515
+#: vms-alpha.c:7609
 #, c-format
 msgid " Second address: 0x%08x 0x%08x\n"
 msgstr " Ð”Ñ€ÑƒÐ³Ð° Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x 0x%08x\n"
 
-#: vms-alpha.c:7518
+#: vms-alpha.c:7613
 #, c-format
 msgid " Third address : 0x%08x 0x%08x\n"
 msgstr " Ð¢Ñ€ÐµÑ‚Ñ� Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x 0x%08x\n"
 
-#: vms-alpha.c:7521
+#: vms-alpha.c:7617
 #, c-format
 msgid " Fourth address: 0x%08x 0x%08x\n"
 msgstr " Ð§ÐµÑ‚Ð²ÐµÑ€Ñ‚Ð° Ð°Ð´Ñ€ÐµÑ�Ð°: 0x%08x 0x%08x\n"
 
-#: vms-alpha.c:7524
+#: vms-alpha.c:7621
 #, c-format
 msgid " Shared image  : 0x%08x 0x%08x\n"
 msgstr " Ð¡Ð¿Ñ–Ð»ÑŒÐ½Ð¸Ð¹ Ð¾Ð±Ñ€Ð°Ð·: 0x%08x 0x%08x\n"
 
-#: vms-alpha.c:7535
+#: vms-alpha.c:7632
 #, c-format
 msgid "cannot read EIHI\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ EIHI\n"
 
-#: vms-alpha.c:7538
+#: vms-alpha.c:7636
 #, c-format
 msgid "Image identification: (major: %u, minor: %u)\n"
 msgstr "Ð†Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ� Ð¾Ð±Ñ€Ð°Ð·Ñƒ: (Ñ�Ñ‚Ð°Ñ€ÑˆÐ¸Ð¹: %u, Ð¼Ð¾Ð»Ð¾Ð´ÑˆÐ¸Ð¹: %u)\n"
 
-#: vms-alpha.c:7541
+#: vms-alpha.c:7639
 #, c-format
 msgid " image name       : %.*s\n"
 msgstr " Ð½Ð°Ð·Ð²Ð° Ð¾Ð±Ñ€Ð°Ð·Ñƒ     : %.*s\n"
 
-#: vms-alpha.c:7543
+#: vms-alpha.c:7641
 #, c-format
 msgid " link time        : %s\n"
 msgstr " Ñ‡Ð°Ñ� ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� : %s\n"
 
-#: vms-alpha.c:7545
+#: vms-alpha.c:7643
 #, c-format
 msgid " image ident      : %.*s\n"
 msgstr " Ñ–Ð´. Ð¾Ð±Ñ€Ð°Ð·Ñƒ         : %.*s\n"
 
-#: vms-alpha.c:7547
+#: vms-alpha.c:7645
 #, c-format
 msgid " linker ident     : %.*s\n"
 msgstr " Ñ–Ð´. ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ°: %.*s\n"
 
-#: vms-alpha.c:7549
+#: vms-alpha.c:7647
 #, c-format
 msgid " image build ident: %.*s\n"
 msgstr " Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð¾Ð±Ñ€Ð°Ð·Ñƒ: %.*s\n"
 
-#: vms-alpha.c:7559
+#: vms-alpha.c:7657
 #, c-format
 msgid "cannot read EIHS\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ EIHS\n"
 
-#: vms-alpha.c:7562
+#: vms-alpha.c:7661
 #, c-format
 msgid "Image symbol & debug table: (major: %u, minor: %u)\n"
 msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ñ– Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸ Ð¾Ð±Ñ€Ð°Ð·Ñƒ (Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð°: %u, Ð¼Ð¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ�: %u)\n"
 
-#: vms-alpha.c:7567
+#: vms-alpha.c:7667
 #, c-format
 msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n"
 msgstr " Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ð¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²: vbn: %u, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u (0x%x)\n"
 
-#: vms-alpha.c:7571
+#: vms-alpha.c:7672
 #, c-format
 msgid " global symbol table: vbn: %u, records: %u\n"
 msgstr " Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²: vbn: %u, Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð²: %u\n"
 
-#: vms-alpha.c:7575
+#: vms-alpha.c:7677
 #, c-format
 msgid " debug module table : vbn: %u, size: %u\n"
 msgstr " Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ–Ð²: vbn: %u, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u\n"
 
-#: vms-alpha.c:7588
+#: vms-alpha.c:7690
 #, c-format
 msgid "cannot read EISD\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ EISD\n"
 
-#: vms-alpha.c:7598
+#: vms-alpha.c:7701
 #, c-format
 msgid "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n"
 msgstr "Ð”ÐµÑ�ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Ð¾Ð±Ñ€Ð°Ð·Ñƒ: (Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð°: %u, Ð¼Ð¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ�: %u, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u, Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿: %u)\n"
 
-#: vms-alpha.c:7605
+#: vms-alpha.c:7709
 #, c-format
 msgid " section: base: 0x%08x%08x size: 0x%08x\n"
 msgstr " Ñ€Ð¾Ð·Ð´Ñ–Ð»: Ð¾Ñ�Ð½Ð¾Ð²Ð°: 0x%08x%08x Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: 0x%08x\n"
 
-#: vms-alpha.c:7610
+#: vms-alpha.c:7714
 #, c-format
 msgid " flags: 0x%04x"
 msgstr " Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–: 0x%04x"
 
-#: vms-alpha.c:7647
+#: vms-alpha.c:7752
 #, c-format
 msgid " vbn: %u, pfc: %u, matchctl: %u type: %u ("
 msgstr " vbn: %u, pfc: %u, matchctl: %u Ñ‚Ð¸Ð¿: %u ("
 
-#: vms-alpha.c:7653
+#: vms-alpha.c:7758
 msgid "NORMAL"
 msgstr "NORMAL"
 
-#: vms-alpha.c:7656
+#: vms-alpha.c:7761
 msgid "SHRFXD"
 msgstr "SHRFXD"
 
-#: vms-alpha.c:7659
+#: vms-alpha.c:7764
 msgid "PRVFXD"
 msgstr "PRVFXD"
 
-#: vms-alpha.c:7662
+#: vms-alpha.c:7767
 msgid "SHRPIC"
 msgstr "SHRPIC"
 
-#: vms-alpha.c:7665
+#: vms-alpha.c:7770
 msgid "PRVPIC"
 msgstr "PRVPIC"
 
-#: vms-alpha.c:7668
+#: vms-alpha.c:7773
 msgid "USRSTACK"
 msgstr "USRSTACK"
 
-#: vms-alpha.c:7676
+#: vms-alpha.c:7779
+msgid ")\n"
+msgstr ")\n"
+
+#: vms-alpha.c:7782
 #, c-format
 msgid " ident: 0x%08x, name: %.*s\n"
 msgstr " Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€: 0x%08x, Ð½Ð°Ð·Ð²Ð°: %.*s\n"
 
-#: vms-alpha.c:7686
+#: vms-alpha.c:7792
 #, c-format
 msgid "cannot read DMT\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ DMT\n"
 
-#: vms-alpha.c:7690
+#: vms-alpha.c:7796
 #, c-format
 msgid "Debug module table:\n"
 msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ð¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²:\n"
 
-#: vms-alpha.c:7699
+#: vms-alpha.c:7805
 #, c-format
 msgid "cannot read DMT header\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº DMT\n"
 
-#: vms-alpha.c:7704
+#: vms-alpha.c:7811
 #, c-format
 msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
 msgstr " Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð¼Ð¾Ð´ÑƒÐ»Ñ�: 0x%08x, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: 0x%08x, (%u psect)\n"
 
-#: vms-alpha.c:7714
+#: vms-alpha.c:7821
 #, c-format
 msgid "cannot read DMT psect\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ psect DMT\n"
 
-#: vms-alpha.c:7717
+#: vms-alpha.c:7825
 #, c-format
 msgid "  psect start: 0x%08x, length: %u\n"
 msgstr "  Ð¿Ð¾Ñ‡Ð°Ñ‚Ð¾Ðº psect: 0x%08x, Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð°: %u\n"
 
-#: vms-alpha.c:7730
+#: vms-alpha.c:7838
 #, c-format
 msgid "cannot read DST\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ DST\n"
 
-#: vms-alpha.c:7740
+#: vms-alpha.c:7848
 #, c-format
 msgid "cannot read GST\n"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ GST\n"
 
-#: vms-alpha.c:7744
+#: vms-alpha.c:7852
 #, c-format
 msgid "Global symbol table:\n"
 msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð²:\n"
 
-#: vms-alpha.c:7772
+#: vms-alpha.c:7881
 #, c-format
 msgid "Image activator fixup: (major: %u, minor: %u)\n"
 msgstr "ÐŸÑ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ° Ð°Ð´Ñ€ÐµÑ�Ð¸ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ‚Ð¾Ñ€Ð° Ð¾Ð±Ñ€Ð°Ð·Ñƒ: (Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð°: %u, Ð¼Ð¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ�: %u)\n"
 
-#: vms-alpha.c:7775
+#: vms-alpha.c:7885
 #, c-format
 msgid "  iaflink : 0x%08x %08x\n"
 msgstr "  iaflink : 0x%08x %08x\n"
 
-#: vms-alpha.c:7778
+#: vms-alpha.c:7889
 #, c-format
 msgid "  fixuplnk: 0x%08x %08x\n"
 msgstr "  fixuplnk: 0x%08x %08x\n"
 
-#: vms-alpha.c:7781
+#: vms-alpha.c:7892
 #, c-format
 msgid "  size : %u\n"
 msgstr "  Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u\n"
 
-#: vms-alpha.c:7783
+#: vms-alpha.c:7894
 #, c-format
 msgid "  flags: 0x%08x\n"
 msgstr "  Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–: 0x%08x\n"
 
-#: vms-alpha.c:7787
+#: vms-alpha.c:7899
 #, c-format
 msgid "  qrelfixoff: %5u, lrelfixoff: %5u\n"
 msgstr "  qrelfixoff: %5u, lrelfixoff: %5u\n"
 
-#: vms-alpha.c:7791
+#: vms-alpha.c:7904
 #, c-format
 msgid "  qdotadroff: %5u, ldotadroff: %5u\n"
 msgstr "  qdotadroff: %5u, ldotadroff: %5u\n"
 
-#: vms-alpha.c:7795
+#: vms-alpha.c:7909
 #, c-format
 msgid "  codeadroff: %5u, lpfixoff  : %5u\n"
 msgstr "  codeadroff: %5u, lpfixoff  : %5u\n"
 
-#: vms-alpha.c:7798
+#: vms-alpha.c:7912
 #, c-format
 msgid "  chgprtoff : %5u\n"
 msgstr "  chgprtoff : %5u\n"
 
-#: vms-alpha.c:7801
+#: vms-alpha.c:7916
 #, c-format
 msgid "  shlstoff  : %5u, shrimgcnt : %5u\n"
 msgstr "  shlstoff  : %5u, shrimgcnt : %5u\n"
 
-#: vms-alpha.c:7803
+#: vms-alpha.c:7919
 #, c-format
 msgid "  shlextra  : %5u, permctx   : %5u\n"
 msgstr "  shlextra  : %5u, permctx   : %5u\n"
 
-#: vms-alpha.c:7806
+#: vms-alpha.c:7922
 #, c-format
 msgid "  base_va : 0x%08x\n"
 msgstr "  base_va : 0x%08x\n"
 
-#: vms-alpha.c:7808
+#: vms-alpha.c:7924
 #, c-format
 msgid "  lppsbfixoff: %5u\n"
 msgstr "  lppsbfixoff: %5u\n"
 
-#: vms-alpha.c:7816
+#: vms-alpha.c:7932
 #, c-format
 msgid " Shareable images:\n"
 msgstr " ÐžÐ±Ñ€Ð°Ð·Ð¸ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�:\n"
 
-#: vms-alpha.c:7820
+#: vms-alpha.c:7937
 #, c-format
 msgid "  %u: size: %u, flags: 0x%02x, name: %.*s\n"
 msgstr "  %u: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %u, Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–: 0x%02x, Ð½Ð°Ð·Ð²Ð°: %.*s\n"
 
-#: vms-alpha.c:7827
+#: vms-alpha.c:7944
 #, c-format
 msgid " quad-word relocation fixups:\n"
 msgstr " Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ñƒ Ñ‡Ð¾Ñ‚Ð¸Ñ€Ð¸ Ñ�Ð»Ð¾Ð²Ð°:\n"
 
-#: vms-alpha.c:7832
+#: vms-alpha.c:7949
 #, c-format
 msgid " long-word relocation fixups:\n"
 msgstr " Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½ÑŒ Ñƒ Ð´Ð¾Ð²Ð³Ðµ Ñ�Ð»Ð¾Ð²Ð¾:\n"
 
-#: vms-alpha.c:7837
+#: vms-alpha.c:7954
 #, c-format
 msgid " quad-word .address reference fixups:\n"
 msgstr " Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½ÑŒ .address Ñƒ Ñ‡Ð¾Ñ‚Ð¸Ñ€Ð¸ Ñ�Ð»Ð¾Ð²Ð°:\n"
 
-#: vms-alpha.c:7842
+#: vms-alpha.c:7959
 #, c-format
 msgid " long-word .address reference fixups:\n"
 msgstr " Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½ÑŒ .address Ñƒ Ð´Ð¾Ð²Ð³Ðµ Ñ�Ð»Ð¾Ð²Ð¾:\n"
 
-#: vms-alpha.c:7847
+#: vms-alpha.c:7964
 #, c-format
 msgid " Code Address Reference Fixups:\n"
 msgstr " ÐŸÑ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð°Ð´Ñ€ÐµÑ� ÐºÐ¾Ð´Ñƒ:\n"
 
-#: vms-alpha.c:7852
+#: vms-alpha.c:7969
 #, c-format
-msgid " Linkage Pairs Referece Fixups:\n"
+msgid " Linkage Pairs Reference Fixups:\n"
 msgstr " ÐŸÑ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½ÑŒ Ð½Ð° Ð¿Ð°Ñ€Ð¸ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ�:\n"
 
-#: vms-alpha.c:7861
+#: vms-alpha.c:7978
 #, c-format
 msgid " Change Protection (%u entries):\n"
 msgstr " Ð—Ð¼Ñ–Ð½Ð° Ð·Ð°Ñ…Ð¸Ñ�Ñ‚Ñƒ (%u Ð·Ð°Ð¿Ð¸Ñ�Ð¸):\n"
 
-#: vms-alpha.c:7866
+#: vms-alpha.c:7984
 #, c-format
 msgid "  base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "
 msgstr "  Ð¾Ñ�Ð½.: 0x%08x %08x, Ñ€Ð¾Ð·Ð¼: 0x%08x,  Ð·Ð°Ñ….: 0x%08x "
 
 #. FIXME: we do not yet support relocatable link.  It is not obvious
 #. how to do it for debug infos.
-#: vms-alpha.c:8706
+#: vms-alpha.c:8824
 msgid "%P: relocatable link is not supported\n"
 msgstr "%P: Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð· Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ñ–Ñ�Ñ‚ÑŽ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½Ðµ Ð¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÐµÐ½Ð¾\n"
 
-#: vms-alpha.c:8776
+#: vms-alpha.c:8895
+#, c-format
 msgid "%P: multiple entry points: in modules %B and %B\n"
 msgstr "%P: Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ñ‚Ð¾Ñ‡Ð¾Ðº Ð²Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… %B Ñ– %B\n"
 
-#: vms-lib.c:1423
+#: vms-lib.c:1445
 #, c-format
 msgid "could not open shared image '%s' from '%s'"
 msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ Ð¾Ð±Ñ€Ð°Ð· Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Â«%sÂ» Ð· Â«%sÂ»"
 
-#: vms-misc.c:360
+#: vms-misc.c:361
 msgid "_bfd_vms_output_counted called with zero bytes"
 msgstr "_bfd_vms_output_counted Ð²Ð¸ÐºÐ»Ð¸ÐºÐ°Ð½Ð¾ Ð´Ð»Ñ� Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¾Ñ— ÐºÑ–Ð»ÑŒÐºÐ¾Ñ�Ñ‚Ñ– Ð±Ð°Ð¹Ñ‚Ñ–Ð²"
 
-#: vms-misc.c:365
+#: vms-misc.c:366
 msgid "_bfd_vms_output_counted called with too many bytes"
 msgstr "_bfd_vms_output_counted Ð²Ð¸ÐºÐ»Ð¸ÐºÐ°Ð½Ð¾ Ð´Ð»Ñ� Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¾Ñ— ÐºÑ–Ð»ÑŒÐºÐ¾Ñ�Ñ‚Ñ– Ð±Ð°Ð¹Ñ‚Ñ–Ð²"
 
-#: xcofflink.c:836
-#, c-format
-msgid "%s: XCOFF shared object when not producing XCOFF output"
-msgstr "%s: Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚ XCOFF, Ñ…Ð¾Ñ‡Ð° Ð´Ð°Ð½Ñ– XCOFF Ð½Ðµ Ñ�Ñ‚Ð²Ð¾Ñ€ÑŽÑŽÑ‚ÑŒÑ�Ñ�"
+#: xcofflink.c:832
+msgid "%B: XCOFF shared object when not producing XCOFF output"
+msgstr "%B: Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚ XCOFF, Ñ…Ð¾Ñ‡Ð° Ð´Ð°Ð½Ñ– XCOFF Ð½Ðµ Ñ�Ñ‚Ð²Ð¾Ñ€ÑŽÑŽÑ‚ÑŒÑ�Ñ�"
+
+#: xcofflink.c:853
+msgid "%B: dynamic object with no .loader section"
+msgstr "%B: Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚ Ð±ÐµÐ· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .loader"
 
-#: xcofflink.c:857
+#: xcofflink.c:1413
 #, c-format
-msgid "%s: dynamic object with no .loader section"
-msgstr "%s: Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ð¾Ð±â€™Ñ”ÐºÑ‚ Ð±ÐµÐ· Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .loader"
-
-#: xcofflink.c:1416
 msgid "%B: `%s' has line numbers but no enclosing section"
 msgstr "%B: Â«%sÂ» Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½Ð¾Ð¼ÐµÑ€Ð¸ Ñ€Ñ�Ð´ÐºÑ–Ð², Ð°Ð»Ðµ Ð½Ðµ Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð·Ð°Ð²ÐµÑ€ÑˆÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ"
 
-#: xcofflink.c:1468
+#: xcofflink.c:1466
+#, c-format
 msgid "%B: class %d symbol `%s' has no aux entries"
 msgstr "%B: ÐºÐ»Ð°Ñ� %d, Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ðµ Ð¼Ð°Ñ” Ð´Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¸Ñ… Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð²"
 
-#: xcofflink.c:1490
+#: xcofflink.c:1489
+#, c-format
 msgid "%B: symbol `%s' has unrecognized csect type %d"
 msgstr "B: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ Ð´Ð¾ Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¾Ð³Ð¾ Ñ‚Ð¸Ð¿Ñƒ csect %d"
 
 #: xcofflink.c:1502
+#, c-format
 msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d"
 msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» XTY_ER Â«%sÂ»: ÐºÐ»Ð°Ñ� %d, Ð½Ð¾Ð¼ÐµÑ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d, Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d"
 
-#: xcofflink.c:1531
+#: xcofflink.c:1532
+#, c-format
 msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %d"
 msgstr "%B: Ñ�Ð¸Ð¼Ð²Ð¾Ð» XMC_TC0 Â«%sÂ» Ñ” ÐºÐ»Ð°Ñ�Ð¾Ð¼ %d, Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %d"
 
-#: xcofflink.c:1677
+#: xcofflink.c:1679
+#, c-format
 msgid "%B: csect `%s' not in enclosing section"
 msgstr "%B: csect Â«%sÂ» Ð½Ðµ Ñƒ Ð·Ð°Ð²ÐµÑ€ÑˆÐ°Ð»ÑŒÐ½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–"
 
-#: xcofflink.c:1784
+#: xcofflink.c:1787
+#, c-format
 msgid "%B: misplaced XTY_LD `%s'"
 msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ðµ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ� XTY_LD Â«%sÂ»"
 
-#: xcofflink.c:2103
+#: xcofflink.c:2108
+#, c-format
 msgid "%B: reloc %s:%d not in csect"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s:%d Ð½Ðµ Ñƒ csect"
 
-#: xcofflink.c:3194
+#: xcofflink.c:3198
 #, c-format
 msgid "%s: no such symbol"
 msgstr "%s: Ð½ÐµÐ¼Ð°Ñ” Ñ‚Ð°ÐºÐ¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
 
-#: xcofflink.c:3299
+#: xcofflink.c:3303
 #, c-format
 msgid "warning: attempt to export undefined symbol `%s'"
 msgstr "Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�Ð¿Ñ€Ð¾Ð±Ð° ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»"
 
-#: xcofflink.c:3678
+#: xcofflink.c:3682
 msgid "error: undefined symbol __rtinit"
 msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ð¹ Ñ�Ð¸Ð¼Ð²Ð¾Ð» __rtinit"
 
-#: xcofflink.c:4057
+#: xcofflink.c:4062
+#, c-format
 msgid "%B: loader reloc in unrecognized section `%s'"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð° Ñƒ Ð½ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%sÂ»"
 
-#: xcofflink.c:4068
+#: xcofflink.c:4074
+#, c-format
 msgid "%B: `%s' in loader reloc but not loader sym"
 msgstr "%B: Â«%sÂ» Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ– Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð°, Ð°Ð»Ðµ Ð½Ðµ Ñƒ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð°Ñ… Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ�"
 
-#: xcofflink.c:4084
+#: xcofflink.c:4091
+#, c-format
 msgid "%B: loader reloc in read-only section %A"
 msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ñ‡Ð° Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–, Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð¼Ñƒ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ� Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ�, %A"
 
-#: xcofflink.c:5106
+#: xcofflink.c:5115
 #, c-format
 msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"
 msgstr "ÐŸÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� TOC: 0x%lx > 0x10000; Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÐ¹Ñ‚Ðµ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ -mminimal-toc Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ�"
 
-#: elf32-ia64.c:628 elf64-ia64.c:628
-msgid "%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch."
-msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ br Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ». Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ñ�ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð¹Ñ‚ÐµÑ�Ñ� brl Ð°Ð±Ð¾ Ð½ÐµÐ¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ�Ð¼."
-
-#: elf32-ia64.c:2284 elf64-ia64.c:2284
-msgid "@pltoff reloc against local symbol"
-msgstr "Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� @pltoff Ñ‰Ð¾Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
-
-#: elf32-ia64.c:3687 elf64-ia64.c:3687
-#, c-format
-msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
-msgstr "%s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð¾ ÐºÐ¾Ñ€Ð¾Ñ‚ÐºÐ¸Ð¹ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚ Ð´Ð°Ð½Ð¸Ñ… (0x%lx >= 0x400000)"
-
-#: elf32-ia64.c:3698 elf64-ia64.c:3698
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:1890
 #, c-format
-msgid "%s: __gp does not cover short data segment"
-msgstr "%s: __gp Ð½Ðµ Ð²ÐºÑ€Ð¸Ð²Ð°Ñ” ÐºÐ¾Ñ€Ð¾Ñ‚ÐºÐ¾Ð³Ð¾ Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð° Ð´Ð°Ð½Ð¸Ñ…"
-
-#: elf32-ia64.c:3965 elf64-ia64.c:3965
-msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'"
-msgstr "%B: Ð½Ðµ-pic ÐºÐ¾Ð´ Ð· Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ð¼ imm Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ»"
-
-#: elf32-ia64.c:4032 elf64-ia64.c:4032
-msgid "%B: @gprel relocation against dynamic symbol %s"
-msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� @gprel Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
+msgid "Invalid AArch64 reloc number: %d"
+msgstr "Ð�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ Ñ‡Ð¸Ñ�Ð»Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� AArch64: %d"
 
-#: elf32-ia64.c:4095 elf64-ia64.c:4095
-msgid "%B: linking non-pic code in a position independent executable"
-msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½Ðµ-pic ÐºÐ¾Ð´Ñƒ Ñƒ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð¼Ñƒ Ñ„Ð°Ð¹Ð»Ñ– Ð· Ð½ÐµÐ·Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¼ Ð¿Ð¾Ð·Ð¸Ñ†Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼"
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:4777
+msgid "%B: error: Erratum 835769 stub out of range (input file too large)"
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð·Ð°Ð¼Ñ–Ð½Ð½Ð¸Ðº Ð´Ð»Ñ� Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ 835769 Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¿Ð¾Ð·Ð° Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ð½Ð¸Ð¼ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼ (Ñ„Ð°Ð¹Ð» Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼)"
 
-#: elf32-ia64.c:4232 elf64-ia64.c:4232
-msgid "%B: @internal branch to dynamic symbol %s"
-msgstr "%B: Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ� @internal Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:4858
+msgid "%B: error: Erratum 843419 stub out of range (input file too large)"
+msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð·Ð°Ð¼Ñ–Ð½Ð½Ð¸Ðº Ð´Ð»Ñ� Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸ÐºÐ° Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ 843419 Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ð¿Ð¾Ð·Ð° Ð´Ð¾Ñ�Ñ‚ÑƒÐ¿Ð½Ð¸Ð¼ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼ (Ñ„Ð°Ð¹Ð» Ð²Ñ…Ñ–Ð´Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼)"
 
-#: elf32-ia64.c:4234 elf64-ia64.c:4234
-msgid "%B: speculation fixup to dynamic symbol %s"
-msgstr "%B: Ð·Ð´Ð¾Ð³Ð°Ð´ÐºÐ° Ñ‰Ð¾Ð´Ð¾ Ð°Ð´Ñ€ÐµÑ�Ð½Ð¾Ñ— Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÐºÐ¸ Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5340
+#, c-format
+msgid "%B: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC"
+msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ Â«%sÂ», Ñ�ÐºÐ¸Ð¹ Ð¼Ð¾Ð¶Ðµ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·ÑƒÐ²Ð°Ñ‚Ð¸Ñ�Ñ� Ð·Ð·Ð¾Ð²Ð½Ñ–, Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�; Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð· -fPIC"
 
-#: elf32-ia64.c:4236 elf64-ia64.c:4236
-msgid "%B: @pcrel relocation against dynamic symbol %s"
-msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� @pcrel Ñ‰Ð¾Ð´Ð¾ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %s"
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:5431
+#, c-format
+msgid "%B: Local symbol descriptor table be NULL when applying relocation %s against local symbol"
+msgstr "%B: Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð° Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð´ÐµÑ�ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ñ€Ñ–Ð² Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñ–Ð² Ñ” NULL Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ð·Ð°Ñ�Ñ‚Ð¾Ñ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ"
 
-#: elf32-ia64.c:4433 elf64-ia64.c:4433
-msgid "unsupported reloc"
-msgstr "Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6459
+msgid "Too many GOT entries for -fpic, please recompile with -fPIC"
+msgstr "Ð—Ð°Ð±Ð°Ð³Ð°Ñ‚Ð¾ Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² GOT Ð´Ð»Ñ� -fpic. Ð‘ÑƒÐ´ÑŒ Ð»Ð°Ñ�ÐºÐ°, Ð·Ð±ÐµÑ€Ñ–Ñ‚ÑŒ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ Ð· -fPIC"
 
-#: elf32-ia64.c:4471 elf64-ia64.c:4471
-msgid "%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'."
-msgstr "%B: Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ TLS Ð´Ð»Ñ� Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Â«%sÂ» Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ»."
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-aarch64.c:6487
+msgid "One possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined."
+msgstr "ÐžÐ´Ð½Ñ–Ñ”ÑŽ Ñ–Ð· Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¸Ñ… Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½ Ñ†Ñ–Ñ”Ñ— Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸ Ñ” Ñ‚Ðµ, Ñ‰Ð¾ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ� Ð½Ð° Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ñƒ ÐºÐ¾Ð´Ñ– Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ñ‚Ð°Ðº, Ð½Ð°Ñ‡Ðµ Ñ�Ð¸Ð¼Ð²Ð¾Ð» Ð¼Ð°Ñ” Ð±Ñ–Ð»ÑŒÑˆÐµ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ�, Ð½Ñ–Ð¶ Ð±ÑƒÐ»Ð¾ Ð¾Ð³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð¾ Ñ‚Ð°Ð¼, Ð´Ðµ Ð¹Ð¾Ð³Ð¾ Ð±ÑƒÐ»Ð¾ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾."
 
-#: elf32-ia64.c:4486 elf64-ia64.c:4486
-msgid "%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000)."
-msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ br (%s) Ð´Ð¾ Â«%sÂ» Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Â«%AÂ» Ð· Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¾Ð¼ 0x%lx (> 0x1000000)."
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2600
+msgid ""
+"%B: ABI is incompatible with that of the selected emulation:\n"
+"  target emulation `%s' does not match `%s'"
+msgstr ""
+"%B: ABI Ñ” Ð½ÐµÑ�ÑƒÐ¼Ñ–Ñ�Ð½Ð¸Ð¼ Ñ–Ð· Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾ÑŽ ÐµÐ¼ÑƒÐ»Ñ�Ñ†Ñ–Ñ”ÑŽ:\n"
+"  Ñ†Ñ–Ð»ÑŒ ÐµÐ¼ÑƒÐ»Ñ�Ñ†Ñ–Ñ—, Â«%sÂ», Ð½Ðµ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ” Â«%sÂ»"
 
-#: elf32-ia64.c:4748 elf64-ia64.c:4748
-msgid "%B: linking trap-on-NULL-dereference with non-trapping files"
-msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� trap-on-NULL-dereference Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· Ð·Ð°Ñ…Ð¾Ð¿Ð»ÐµÐ½Ð½Ñ� (trapping)"
+#: /Users/gingold/Repositories/fsf/binutils-gdb.git/bfd/elfnn-riscv.c:2620
+msgid "%B: can't link hard-float modules with soft-float modules"
+msgstr "%B: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¼Ð¾Ð´ÑƒÐ»Ñ– Ñ–Ð· Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¾ÑŽ Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ Ñ–Ð· Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ð¼Ð¸ Ñ–Ð· Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¾ÑŽ Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ"
 
-#: elf32-ia64.c:4757 elf64-ia64.c:4757
-msgid "%B: linking big-endian files with little-endian files"
-msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð·Ñ– Ð¿Ñ€Ñ�Ð¼Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð·Ñ– Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¸Ð¼ Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð¼ Ð±Ð°Ð¹Ñ‚Ñ–Ð²"
+#: peigen.c:157 pepigen.c:157 pex64igen.c:157
+msgid "%B: unable to find name for empty section"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ð½Ð°Ð·Ð²Ñƒ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½ÑŒÐ¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ"
 
-#: elf32-ia64.c:4766 elf64-ia64.c:4766
-msgid "%B: linking 64-bit files with 32-bit files"
-msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� 64-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð· 32-Ð±Ñ–Ñ‚Ð¾Ð²Ð¸Ð¼Ð¸ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸"
+#: peigen.c:183 pepigen.c:183 pex64igen.c:183
+msgid "%B: out of memory creating name for empty section"
+msgstr "%B: Ð²Ð¸Ñ…Ñ–Ð´ Ð·Ð° Ð¼ÐµÐ¶Ñ– Ð¾Ð±Ð»Ð°Ñ�Ñ‚Ñ– Ð¿Ð°Ð¼â€™Ñ�Ñ‚Ñ– Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ð¿Ñ€Ð¾Ð±Ð¸ Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð½Ð°Ð·Ð²Ñƒ Ð´Ð»Ñ� Ð¿Ð¾Ñ€Ð¾Ð¶Ð½ÑŒÐ¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ"
 
-#: elf32-ia64.c:4775 elf64-ia64.c:4775
-msgid "%B: linking constant-gp files with non-constant-gp files"
-msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð·Ñ– Ñ�Ñ‚Ð°Ð»Ð¸Ð¼ gp Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð·Ñ– Ð·Ð¼Ñ–Ð½Ð½Ð¸Ð¼ gp"
+#: peigen.c:194 pepigen.c:194 pex64igen.c:194
+msgid "%B: unable to create fake empty section"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ñ„Ñ–ÐºÑ‚Ð¸Ð²Ð½Ð¸Ð¹ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ–Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð»"
 
-#: elf32-ia64.c:4785 elf64-ia64.c:4785
-msgid "%B: linking auto-pic files with non-auto-pic files"
-msgstr "%B: ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ„Ð°Ð¹Ð»Ñ–Ð² Ð· Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¸Ð¼ pic Ð· Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ Ð±ÐµÐ· Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ pic"
+#: peigen.c:532 pepigen.c:532 pex64igen.c:532
+msgid "%B: aout header specifies an invalid number of data-directory entries: %d"
+msgstr "%B: Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº aout Ð²ÐºÐ°Ð·ÑƒÑ” Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ñƒ ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ Ð´Ð°Ð½Ð¸Ñ…: %d"
 
-#: peigen.c:1002 pepigen.c:1002 pex64igen.c:1002
+#: peigen.c:1089 pepigen.c:1089 pex64igen.c:1089
 #, c-format
-msgid "%s: line number overflow: 0x%lx > 0xffff"
-msgstr "%s: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð²; 0x%lx > 0xffff"
+msgid "%B: line number overflow: 0x%lx > 0xffff"
+msgstr "%B: Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ� Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² Ñ€Ñ�Ð´ÐºÑ–Ð²; 0x%lx > 0xffff"
 
-#: peigen.c:1029 pepigen.c:1029 pex64igen.c:1029
+#: peigen.c:1233 pepigen.c:1233 pex64igen.c:1233
 msgid "Export Directory [.edata (or where ever we found it)]"
 msgstr "ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� [.edata (Ð°Ð±Ð¾ Ñ–Ð½ÑˆÐµ Ð¼Ñ–Ñ�Ñ†Ðµ, Ð´Ðµ Ð¹Ð¾Ð³Ð¾ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾)]"
 
-#: peigen.c:1030 pepigen.c:1030 pex64igen.c:1030
+#: peigen.c:1234 pepigen.c:1234 pex64igen.c:1234
 msgid "Import Directory [parts of .idata]"
 msgstr "ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� [Ñ‡Ð°Ñ�Ñ‚Ð¸Ð½Ð¸ .idata]"
 
-#: peigen.c:1031 pepigen.c:1031 pex64igen.c:1031
+#: peigen.c:1235 pepigen.c:1235 pex64igen.c:1235
 msgid "Resource Directory [.rsrc]"
 msgstr "ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ñ€ÐµÑ�ÑƒÑ€Ñ�Ñ–Ð² [.rsrc]"
 
-#: peigen.c:1032 pepigen.c:1032 pex64igen.c:1032
+#: peigen.c:1236 pepigen.c:1236 pex64igen.c:1236
 msgid "Exception Directory [.pdata]"
 msgstr "ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½ÑŒ [.pdata]"
 
-#: peigen.c:1033 pepigen.c:1033 pex64igen.c:1033
+#: peigen.c:1237 pepigen.c:1237 pex64igen.c:1237
 msgid "Security Directory"
 msgstr "ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð·Ð°Ñ…Ð¸Ñ�Ñ‚Ñƒ"
 
-#: peigen.c:1034 pepigen.c:1034 pex64igen.c:1034
+#: peigen.c:1238 pepigen.c:1238 pex64igen.c:1238
 msgid "Base Relocation Directory [.reloc]"
 msgstr "ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� [.reloc]"
 
-#: peigen.c:1035 pepigen.c:1035 pex64igen.c:1035
+#: peigen.c:1239 pepigen.c:1239 pex64igen.c:1239
 msgid "Debug Directory"
 msgstr "ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸"
 
-#: peigen.c:1036 pepigen.c:1036 pex64igen.c:1036
+#: peigen.c:1240 pepigen.c:1240 pex64igen.c:1240
 msgid "Description Directory"
 msgstr "ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð¾Ð¿Ð¸Ñ�Ñ–Ð²"
 
-#: peigen.c:1037 pepigen.c:1037 pex64igen.c:1037
+#: peigen.c:1241 pepigen.c:1241 pex64igen.c:1241
 msgid "Special Directory"
 msgstr "ÐžÑ�Ð¾Ð±Ð»Ð¸Ð²Ð¸Ð¹ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³"
 
-#: peigen.c:1038 pepigen.c:1038 pex64igen.c:1038
+#: peigen.c:1242 pepigen.c:1242 pex64igen.c:1242
 msgid "Thread Storage Directory [.tls]"
 msgstr "ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ� Ð¿Ð¾Ñ‚Ð¾ÐºÑ–Ð² [.tls]"
 
-#: peigen.c:1039 pepigen.c:1039 pex64igen.c:1039
+#: peigen.c:1243 pepigen.c:1243 pex64igen.c:1243
 msgid "Load Configuration Directory"
 msgstr "ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ� Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ"
 
-#: peigen.c:1040 pepigen.c:1040 pex64igen.c:1040
+#: peigen.c:1244 pepigen.c:1244 pex64igen.c:1244
 msgid "Bound Import Directory"
 msgstr "ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð²Ð¸Ð¼ÑƒÑˆÐµÐ½Ð¾Ð³Ð¾ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�"
 
-#: peigen.c:1041 pepigen.c:1041 pex64igen.c:1041
+#: peigen.c:1245 pepigen.c:1245 pex64igen.c:1245
 msgid "Import Address Table Directory"
 msgstr "ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð°Ð´Ñ€ÐµÑ�"
 
-#: peigen.c:1042 pepigen.c:1042 pex64igen.c:1042
+#: peigen.c:1246 pepigen.c:1246 pex64igen.c:1246
 msgid "Delay Import Directory"
 msgstr "ÐšÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð²Ñ–Ð´ÐºÐ»Ð°Ð´ÐµÐ½Ð¾Ð³Ð¾ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�"
 
-#: peigen.c:1043 pepigen.c:1043 pex64igen.c:1043
+#: peigen.c:1247 pepigen.c:1247 pex64igen.c:1247
 msgid "CLR Runtime Header"
 msgstr "Ð”Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¸Ð¹ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº CLR"
 
-#: peigen.c:1044 pepigen.c:1044 pex64igen.c:1044
+#: peigen.c:1248 pepigen.c:1248 pex64igen.c:1248
 msgid "Reserved"
 msgstr "Ð—Ð°Ñ€ÐµÐ·ÐµÑ€Ð²Ð¾Ð²Ð°Ð½Ð¾"
 
-#: peigen.c:1104 pepigen.c:1104 pex64igen.c:1104
+#: peigen.c:1308 pepigen.c:1308 pex64igen.c:1308
 #, c-format
 msgid ""
 "\n"
@@ -5951,7 +8078,16 @@ msgstr ""
 "\n"
 "Ð†Ñ�Ð½ÑƒÑ” Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð°Ð»Ðµ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Ñ‰Ð¾ Ñ—Ñ— Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾\n"
 
-#: peigen.c:1109 pepigen.c:1109 pex64igen.c:1109
+#: peigen.c:1314 pepigen.c:1314 pex64igen.c:1314
+#, c-format
+msgid ""
+"\n"
+"There is an import table in %s, but that section has no contents\n"
+msgstr ""
+"\n"
+"Ð£ %s Ñ” Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð°Ð»Ðµ Ñƒ Ñ†ÑŒÐ¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð½ÐµÐ¼Ð°Ñ” Ð´Ð°Ð½Ð¸Ñ…\n"
+
+#: peigen.c:1321 pepigen.c:1321 pex64igen.c:1321
 #, c-format
 msgid ""
 "\n"
@@ -5960,7 +8096,7 @@ msgstr ""
 "\n"
 "Ð£ %s Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ 0x%lx\n"
 
-#: peigen.c:1151 pepigen.c:1151 pex64igen.c:1151
+#: peigen.c:1363 pepigen.c:1363 pex64igen.c:1363
 #, c-format
 msgid ""
 "\n"
@@ -5969,12 +8105,12 @@ msgstr ""
 "\n"
 "Ð”ÐµÑ�ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ñ€ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÐ¾Ð²Ð°Ð½Ð¾ Ð·Ð° Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾ÑŽ Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ %04lx\n"
 
-#: peigen.c:1154 pepigen.c:1154 pex64igen.c:1154
+#: peigen.c:1367 pepigen.c:1367 pex64igen.c:1367
 #, c-format
 msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
 msgstr "\ttoc Ð¾Ñ�Ð½Ð¾Ð²Ð¸ ÐºÐ¾Ð´Ñƒ %08lx (Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÑƒÐ²Ð°Ð½Ð¸Ð¹/Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ð¹) %08lx/%08lx\n"
 
-#: peigen.c:1162 pepigen.c:1162 pex64igen.c:1162
+#: peigen.c:1375 pepigen.c:1375 pex64igen.c:1375
 #, c-format
 msgid ""
 "\n"
@@ -5983,7 +8119,7 @@ msgstr ""
 "\n"
 "Ð�ÐµÐ¼Ð°Ñ” Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ reldata! Ð”ÐµÑ�ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ñ€ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Ð½Ðµ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¾.\n"
 
-#: peigen.c:1167 pepigen.c:1167 pex64igen.c:1167
+#: peigen.c:1380 pepigen.c:1380 pex64igen.c:1380
 #, c-format
 msgid ""
 "\n"
@@ -5992,7 +8128,7 @@ msgstr ""
 "\n"
 "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ– Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� (Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s)\n"
 
-#: peigen.c:1170 pepigen.c:1170 pex64igen.c:1170
+#: peigen.c:1383 pepigen.c:1383 pex64igen.c:1383
 #, c-format
 msgid ""
 " vma:            Hint    Time      Forward  DLL       First\n"
@@ -6001,21 +8137,21 @@ msgstr ""
 " vma:            Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð§Ð°Ñ�Ð¾Ð²Ð°    Ð›Ð°Ð½Ñ†ÑŽÐ¶Ð¾Ðº Ð�Ð°Ð·Ð²Ð°     ÐŸÐµÑ€ÑˆÐ¸Ð¹\n"
 "                 Ð²ÐºÐ°Ð·.   ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐºÐ°  Ñ�Ð¿Ñ€Ñ�Ð¼.   DLL       ÑˆÐ»ÑŽÐ·\n"
 
-#: peigen.c:1218 pepigen.c:1218 pex64igen.c:1218
+#: peigen.c:1433 pepigen.c:1433 pex64igen.c:1433
 #, c-format
 msgid ""
 "\n"
-"\tDLL Name: %s\n"
+"\tDLL Name: %.*s\n"
 msgstr ""
 "\n"
-"\tÐ�Ð°Ð·Ð²Ð° DLL: %s\n"
+"\tÐ�Ð°Ð·Ð²Ð° DLL: %.*s\n"
 
-#: peigen.c:1229 pepigen.c:1229 pex64igen.c:1229
+#: peigen.c:1449 pepigen.c:1449 pex64igen.c:1449
 #, c-format
 msgid "\tvma:  Hint/Ord Member-Name Bound-To\n"
 msgstr "\tvma:  Ð’ÐºÐ°Ð·/ÐŸÐ¾Ñ€ Ð�Ð°Ð·Ð²Ð°-ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð° ÐŸÑ€Ð¸Ð²â€™Ñ�Ð·Ð°Ð½Ð¾-Ð´Ð¾\n"
 
-#: peigen.c:1254 pepigen.c:1254 pex64igen.c:1254
+#: peigen.c:1474 pepigen.c:1474 pex64igen.c:1474
 #, c-format
 msgid ""
 "\n"
@@ -6024,7 +8160,13 @@ msgstr ""
 "\n"
 "Ð†Ñ�Ð½ÑƒÑ” Ð·Ð°Ð¿Ð¸Ñ� Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñƒ, Ð°Ð»Ðµ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Ñ‰Ð¾ Ð¹Ð¾Ð³Ð¾ Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾\n"
 
-#: peigen.c:1415 pepigen.c:1415 pex64igen.c:1415
+#: peigen.c:1518 peigen.c:1556 pepigen.c:1518 pepigen.c:1556 pex64igen.c:1518
+#: pex64igen.c:1556
+#, c-format
+msgid "\t<corrupt: 0x%04lx>"
+msgstr "\t<Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾: 0x%04lx>"
+
+#: peigen.c:1649 pepigen.c:1649 pex64igen.c:1649
 #, c-format
 msgid ""
 "\n"
@@ -6033,7 +8175,16 @@ msgstr ""
 "\n"
 "Ð†Ñ�Ð½ÑƒÑ” Ð·Ð°Ð¿Ð¸Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð°Ð»Ðµ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Ñ‰Ð¾ Ñ—Ñ— Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾\n"
 
-#: peigen.c:1424 pepigen.c:1424 pex64igen.c:1424
+#: peigen.c:1655 pepigen.c:1655 pex64igen.c:1655
+#, c-format
+msgid ""
+"\n"
+"There is an export table in %s, but that section has no contents\n"
+msgstr ""
+"\n"
+"Ð£ %s Ñ” Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð°Ð»Ðµ Ñƒ Ñ†ÑŒÐ¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð½ÐµÐ¼Ð°Ñ” Ð´Ð°Ð½Ð¸Ñ…\n"
+
+#: peigen.c:1665 pepigen.c:1665 pex64igen.c:1665
 #, c-format
 msgid ""
 "\n"
@@ -6042,7 +8193,16 @@ msgstr ""
 "\n"
 "Ð£ %s Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð°Ð»Ðµ Ñ—Ñ— Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚Ð¸ Ñƒ Ñ†ÑŒÐ¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–\n"
 
-#: peigen.c:1430 pepigen.c:1430 pex64igen.c:1430
+#: peigen.c:1676 pepigen.c:1676 pex64igen.c:1676
+#, c-format
+msgid ""
+"\n"
+"There is an export table in %s, but it is too small (%d)\n"
+msgstr ""
+"\n"
+"Ð£ %s Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�, Ð°Ð»Ðµ Ð²Ð¾Ð½Ð° Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð¼Ð°Ð»Ð¾ÑŽ (%d)\n"
+
+#: peigen.c:1682 pepigen.c:1682 pex64igen.c:1682
 #, c-format
 msgid ""
 "\n"
@@ -6051,7 +8211,7 @@ msgstr ""
 "\n"
 "Ð£ %s Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� Ñƒ 0x%lx\n"
 
-#: peigen.c:1458 pepigen.c:1458 pex64igen.c:1458
+#: peigen.c:1710 pepigen.c:1710 pex64igen.c:1710
 #, c-format
 msgid ""
 "\n"
@@ -6061,67 +8221,67 @@ msgstr ""
 "\n"
 "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ– ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ� (Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s)\n"
 
-#: peigen.c:1462 pepigen.c:1462 pex64igen.c:1462
+#: peigen.c:1714 pepigen.c:1714 pex64igen.c:1714
 #, c-format
 msgid "Export Flags \t\t\t%lx\n"
 msgstr "ÐŸÑ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�\t\t%lx\n"
 
-#: peigen.c:1465 pepigen.c:1465 pex64igen.c:1465
+#: peigen.c:1717 pepigen.c:1717 pex64igen.c:1717
 #, c-format
 msgid "Time/Date stamp \t\t%lx\n"
 msgstr "ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐºÐ° Ñ‡Ð°Ñ�Ñƒ/Ð´Ð°Ñ‚Ð¸\t\t%lx\n"
 
-#: peigen.c:1468 pepigen.c:1468 pex64igen.c:1468
+#: peigen.c:1721 pepigen.c:1721 pex64igen.c:1721
 #, c-format
 msgid "Major/Minor \t\t\t%d/%d\n"
 msgstr "ÐžÑ�Ð½Ð¾Ð²Ð½Ð°/ÐœÐ¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ� \t\t\t%d/%d\n"
 
-#: peigen.c:1471 pepigen.c:1471 pex64igen.c:1471
+#: peigen.c:1724 pepigen.c:1724 pex64igen.c:1724
 #, c-format
 msgid "Name \t\t\t\t"
 msgstr "Ð�Ð°Ð·Ð²Ð°\t\t\t\t"
 
-#: peigen.c:1477 pepigen.c:1477 pex64igen.c:1477
+#: peigen.c:1735 pepigen.c:1735 pex64igen.c:1735
 #, c-format
 msgid "Ordinal Base \t\t\t%ld\n"
 msgstr "ÐžÑ�Ð½Ð¾Ð²Ð° Ð²Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ�\t\t%ld\n"
 
-#: peigen.c:1480 pepigen.c:1480 pex64igen.c:1480
+#: peigen.c:1738 pepigen.c:1738 pex64igen.c:1738
 #, c-format
 msgid "Number in:\n"
 msgstr "Ð�Ð¾Ð¼ÐµÑ€ Ñƒ:\n"
 
-#: peigen.c:1483 pepigen.c:1483 pex64igen.c:1483
+#: peigen.c:1741 pepigen.c:1741 pex64igen.c:1741
 #, c-format
 msgid "\tExport Address Table \t\t%08lx\n"
 msgstr "\tÐ¢Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¸Ñ… Ð°Ð´Ñ€ÐµÑ� \t\t%08lx\n"
 
-#: peigen.c:1487 pepigen.c:1487 pex64igen.c:1487
+#: peigen.c:1745 pepigen.c:1745 pex64igen.c:1745
 #, c-format
 msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
 msgstr "\tÐ¢Ð°Ð±Ð»Ð¸Ñ†Ñ� [Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² Ð½Ð°Ð·Ð²/Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð¸Ñ… Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð²]\t%08lx\n"
 
-#: peigen.c:1490 pepigen.c:1490 pex64igen.c:1490
+#: peigen.c:1748 pepigen.c:1748 pex64igen.c:1748
 #, c-format
 msgid "Table Addresses\n"
 msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ‡Ð½Ñ– Ð°Ð´Ñ€ÐµÑ�Ð¸\n"
 
-#: peigen.c:1493 pepigen.c:1493 pex64igen.c:1493
+#: peigen.c:1751 pepigen.c:1751 pex64igen.c:1751
 #, c-format
 msgid "\tExport Address Table \t\t"
 msgstr "\tÐ¢Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¸Ñ… Ð°Ð´Ñ€ÐµÑ� \t\t"
 
-#: peigen.c:1498 pepigen.c:1498 pex64igen.c:1498
+#: peigen.c:1756 pepigen.c:1756 pex64igen.c:1756
 #, c-format
 msgid "\tName Pointer Table \t\t"
 msgstr "\tÐ¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² Ð½Ð° Ð½Ð°Ð·Ð²Ð¸ \t\t"
 
-#: peigen.c:1503 pepigen.c:1503 pex64igen.c:1503
+#: peigen.c:1761 pepigen.c:1761 pex64igen.c:1761
 #, c-format
 msgid "\tOrdinal Table \t\t\t"
 msgstr "\tÐ¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² \t\t\t"
 
-#: peigen.c:1517 pepigen.c:1517 pex64igen.c:1517
+#: peigen.c:1775 pepigen.c:1775 pex64igen.c:1775
 #, c-format
 msgid ""
 "\n"
@@ -6130,15 +8290,20 @@ msgstr ""
 "\n"
 "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¸Ñ… Ð°Ð´Ñ€ÐµÑ� â€” Ð¾Ñ�Ð½Ð¾Ð²Ð° Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð¸Ñ… Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð²: %ld\n"
 
-#: peigen.c:1536 pepigen.c:1536 pex64igen.c:1536
+#: peigen.c:1784 pepigen.c:1784 pex64igen.c:1784
+#, c-format
+msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"
+msgstr "\tÐ�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ rva (0x%lx) Ð°Ð±Ð¾ ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² (0x%lx) Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð°Ð´Ñ€ÐµÑ� ÐµÐºÑ�Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ�\n"
+
+#: peigen.c:1803 pepigen.c:1803 pex64igen.c:1803
 msgid "Forwarder RVA"
 msgstr "ÐŸÐµÑ€ÐµÑ�Ð¿Ñ€Ñ�Ð¼Ð¾Ð²Ð½Ð¸Ð¹ RVA"
 
-#: peigen.c:1547 pepigen.c:1547 pex64igen.c:1547
+#: peigen.c:1815 pepigen.c:1815 pex64igen.c:1815
 msgid "Export RVA"
 msgstr "Ð•ÐºÑ�Ð¿Ð¾Ñ€Ñ‚Ð¾Ð²Ð°Ð½Ð¸Ð¹ RVA"
 
-#: peigen.c:1554 pepigen.c:1554 pex64igen.c:1554
+#: peigen.c:1822 pepigen.c:1822 pex64igen.c:1822
 #, c-format
 msgid ""
 "\n"
@@ -6147,18 +8312,43 @@ msgstr ""
 "\n"
 "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� [Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð¸Ñ… Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð²/Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² Ð½Ð° Ð½Ð°Ð·Ð²Ð¸]\n"
 
-#: peigen.c:1614 peigen.c:1797 pepigen.c:1614 pepigen.c:1797 pex64igen.c:1614
-#: pex64igen.c:1797
+#: peigen.c:1830 pepigen.c:1830 pex64igen.c:1830
+#, c-format
+msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n"
+msgstr "\tÐ�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ rva (0x%lx) Ð°Ð±Ð¾ ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² (0x%lx) Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² Ð½Ð° Ð½Ð°Ð·Ð²Ð¸\n"
+
+#: peigen.c:1837 pepigen.c:1837 pex64igen.c:1837
+#, c-format
+msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n"
+msgstr "\tÐ�ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ðµ rva (0x%lx) Ð°Ð±Ð¾ ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð·Ð°Ð¿Ð¸Ñ�Ñ–Ð² (0x%lx) Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– Ð¿Ð¾Ñ€Ñ�Ð´ÐºÐ¾Ð²Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…\n"
+
+#: peigen.c:1851 pepigen.c:1851 pex64igen.c:1851
+#, c-format
+msgid "\t[%4ld] <corrupt offset: %lx>\n"
+msgstr "\t[%4ld] <Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ð·Ñ�ÑƒÐ²: %lx>\n"
+
+#: peigen.c:1905 peigen.c:2102 pepigen.c:1905 pepigen.c:2102 pex64igen.c:1905
+#: pex64igen.c:2102
 #, c-format
 msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n"
 msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .pdata (%ld) Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ %d\n"
 
-#: peigen.c:1621 pepigen.c:1621 pex64igen.c:1621
+#: peigen.c:1909 peigen.c:2106 pepigen.c:1909 pepigen.c:2106 pex64igen.c:1909
+#: pex64igen.c:2106
+#, c-format
+msgid ""
+"\n"
+"The Function Table (interpreted .pdata section contents)\n"
+msgstr ""
+"\n"
+"Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ (Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .pdata)\n"
+
+#: peigen.c:1912 pepigen.c:1912 pex64igen.c:1912
 #, c-format
 msgid " vma:\t\t\tBegin Address    End Address      Unwind Info\n"
 msgstr " vma:\t\t\tÐŸÐ¾Ñ‡Ð°Ñ‚. Ð°Ð´Ñ€ÐµÑ�Ð°    ÐšÑ–Ð½Ñ†. Ð°Ð´Ñ€ÐµÑ�Ð°      Ð”Ð°Ð½Ñ– unwind\n"
 
-#: peigen.c:1623 pepigen.c:1623 pex64igen.c:1623
+#: peigen.c:1914 pepigen.c:1914 pex64igen.c:1914
 #, c-format
 msgid ""
 " vma:\t\tBegin    End      EH       EH       PrologEnd  Exception\n"
@@ -6167,22 +8357,27 @@ msgstr ""
 " vma:\t\tÐŸÐ¾Ñ‡.     ÐšÑ–Ð½Ñ†.    ÐžÐ±Ñ€Ð¾Ð±Ð½Ð¸Ðº Ð”Ð°Ð½Ñ–     Ð�Ð´Ñ€ÐµÑ�Ð°     ÐœÐ°Ñ�ÐºÐ°\n"
 "     \t\tÐ°Ð´Ñ€ÐµÑ�Ð°   Ð°Ð´Ñ€ÐµÑ�Ð°   EH       EH       ÐºÑ–Ð½Ñ†. Ð¿Ñ€Ð¾Ð».Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ�\n"
 
-#: peigen.c:1697 pepigen.c:1697 pex64igen.c:1697
+#: peigen.c:1927 pepigen.c:1927 pex64igen.c:1927
+#, c-format
+msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n"
+msgstr "Ð’Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .pdata (%ld) Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ñ€ÐµÐ°Ð»ÑŒÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ (%ld)\n"
+
+#: peigen.c:1997 pepigen.c:1997 pex64igen.c:1997
 #, c-format
 msgid " Register save millicode"
 msgstr " ÐœÑ–Ð»Ñ–ÐºÐ¾Ð´ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð°"
 
-#: peigen.c:1700 pepigen.c:1700 pex64igen.c:1700
+#: peigen.c:2000 pepigen.c:2000 pex64igen.c:2000
 #, c-format
 msgid " Register restore millicode"
 msgstr " ÐœÑ–Ð»Ñ–ÐºÐ¾Ð´ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ� Ñ€ÐµÐ³Ñ–Ñ�Ñ‚Ñ€Ð°"
 
-#: peigen.c:1703 pepigen.c:1703 pex64igen.c:1703
+#: peigen.c:2003 pepigen.c:2003 pex64igen.c:2003
 #, c-format
 msgid " Glue code sequence"
 msgstr " ÐŸÐ¾Ñ�Ð»Ñ–Ð´Ð¾Ð²Ð½Ñ–Ñ�Ñ‚ÑŒ Ð·â€™Ñ”Ð´Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ ÐºÐ¾Ð´Ñƒ"
 
-#: peigen.c:1803 pepigen.c:1803 pex64igen.c:1803
+#: peigen.c:2108 pepigen.c:2108 pex64igen.c:2108
 #, c-format
 msgid ""
 " vma:\t\tBegin    Prolog   Function Flags    Exception EH\n"
@@ -6191,7 +8386,7 @@ msgstr ""
 " vma:\t\tÐŸÐ¾Ñ‡.     Ð”Ð¾Ð²Ð¶Ð¸Ð½Ð°  Ð”Ð¾Ð²Ð¶Ð¸Ð½Ð°  ÐŸÑ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ– ÐžÐ±Ñ€Ð¾Ð±Ð½Ð¸Ðº  Ð”Ð°Ð½Ñ–\n"
 "     \t\tÐ°Ð´Ñ€ÐµÑ�Ð°   Ð¿Ñ€Ð¾Ð»Ð¾Ð³Ñƒ  Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ—  32Ð± Ð²Ð¸Ðº. Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½ÑŒ EH\n"
 
-#: peigen.c:1929 pepigen.c:1929 pex64igen.c:1929
+#: peigen.c:2230 pepigen.c:2230 pex64igen.c:2230
 #, c-format
 msgid ""
 "\n"
@@ -6202,7 +8397,7 @@ msgstr ""
 "\n"
 "ÐŸÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� Ñ‰Ð¾Ð´Ð¾ Ð¾Ñ�Ð½Ð¾Ð²Ð¸ Ñ„Ð°Ð¹Ð»Ð° PE (Ð¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¸Ð¹ Ð²Ð¼Ñ–Ñ�Ñ‚ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ .reloc)\n"
 
-#: peigen.c:1958 pepigen.c:1958 pex64igen.c:1958
+#: peigen.c:2260 pepigen.c:2260 pex64igen.c:2260
 #, c-format
 msgid ""
 "\n"
@@ -6211,15 +8406,142 @@ msgstr ""
 "\n"
 "Ð’Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð° Ð°Ð´Ñ€ÐµÑ�Ð°: %08lx, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ñ„Ñ€Ð°Ð³Ð¼ÐµÐ½Ñ‚Ð°: %ld (0x%lx), ÐºÑ–Ð»ÑŒÐºÑ–Ñ�Ñ‚ÑŒ Ð¿Ñ€Ð¸Ð²â€™Ñ�Ð·Ð¾Ðº: %ld\n"
 
-#: peigen.c:1971 pepigen.c:1971 pex64igen.c:1971
+#: peigen.c:2278 pepigen.c:2278 pex64igen.c:2278
 #, c-format
 msgid "\treloc %4d offset %4x [%4lx] %s"
 msgstr "\tÐ¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %4d Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ %4x [%4lx] %s"
 
+#: peigen.c:2339 pepigen.c:2339 pex64igen.c:2339
+#, c-format
+msgid "%03x %*.s Entry: "
+msgstr "Ð’Ñ…Ñ–Ð´ Ð´Ð¾ %03x %*.s: "
+
+#: peigen.c:2363 pepigen.c:2363 pex64igen.c:2363
+#, c-format
+msgid "name: [val: %08lx len %d]: "
+msgstr "Ð½Ð°Ð·Ð²Ð°: [Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�: %08lx Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° %d]: "
+
+#: peigen.c:2383 pepigen.c:2383 pex64igen.c:2383
+#, c-format
+msgid "<corrupt string length: %#x>\n"
+msgstr "<Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð° Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾Ð³Ð¾ Ñ€Ñ�Ð´ÐºÐ°: %#x>\n"
+
+#: peigen.c:2393 pepigen.c:2393 pex64igen.c:2393
+#, c-format
+msgid "<corrupt string offset: %#lx>\n"
+msgstr "<Ð²Ñ–Ð´Ñ�Ñ‚ÑƒÐ¿ Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¾Ð³Ð¾ Ñ€Ñ�Ð´ÐºÐ°: %#lx>\n"
+
+#: peigen.c:2398 pepigen.c:2398 pex64igen.c:2398
+#, c-format
+msgid "ID: %#08lx"
+msgstr "Ð†Ð´.: %#08lx"
+
+#: peigen.c:2401 pepigen.c:2401 pex64igen.c:2401
+#, c-format
+msgid ", Value: %#08lx\n"
+msgstr ", Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�: %#08lx\n"
+
+#: peigen.c:2423 pepigen.c:2423 pex64igen.c:2423
+#, c-format
+msgid "%03x %*.s  Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
+msgstr "%03x Ð›Ð¸Ñ�Ñ‚Ð¾Ðº %*.s: Ð°Ð´Ñ€ÐµÑ�Ð°: %#08lx, Ñ€Ð¾Ð·Ð¼Ñ–Ñ€: %#08lx, ÐºÐ¾Ð´Ð¾Ð²Ð° Ñ�Ñ‚Ð¾Ñ€Ñ–Ð½ÐºÐ°: %d\n"
+
+#: peigen.c:2465 pepigen.c:2465 pex64igen.c:2465
+#, c-format
+msgid "<unknown directory type: %d>\n"
+msgstr "<Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ: %d>\n"
+
+#: peigen.c:2473 pepigen.c:2473 pex64igen.c:2473
+#, c-format
+msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n"
+msgstr " Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ�: Ñ…Ð°Ñ€.: %d, Ñ‡Ð°Ñ�: %08lx, Ð²ÐµÑ€Ñ�Ñ–Ñ�: %d/%d, Ñ‡Ð¸Ñ�Ð»Ð¾Ð²Ñ– Ð½Ð°Ð·Ð²Ð¸: %d, Ñ–Ð´.: %d\n"
+
+#: peigen.c:2562 pepigen.c:2562 pex64igen.c:2562
+#, c-format
+msgid "Corrupt .rsrc section detected!\n"
+msgstr "Ð’Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» .rsrc!\n"
+
+#: peigen.c:2586 pepigen.c:2586 pex64igen.c:2586
+#, c-format
+msgid ""
+"\n"
+"WARNING: Extra data in .rsrc section - it will be ignored by Windows:\n"
+msgstr ""
+"\n"
+"ÐŸÐžÐŸÐ•Ð Ð•Ð”Ð–Ð•Ð�Ð�Ð¯: Ð·Ð°Ð¹Ð²Ñ– Ð´Ð°Ð½Ñ– Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– .rsrc â€” Ñ—Ñ… Ð±ÑƒÐ´Ðµ Ð¿Ñ€Ð¾Ñ–Ð³Ð½Ð¾Ñ€Ð¾Ð²Ð°Ð½Ð¾ Windows:\n"
+
+#: peigen.c:2592 pepigen.c:2592 pex64igen.c:2592
+#, c-format
+msgid " String table starts at offset: %#03x\n"
+msgstr " Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ� Ñ€Ñ�Ð´ÐºÑ–Ð² Ð¿Ð¾Ñ‡Ð¸Ð½Ð°Ñ”Ñ‚ÑŒÑ�Ñ� Ð· Ñ‚Ð°ÐºÐ¸Ð¼ Ð·Ñ�ÑƒÐ²Ð¾Ð¼: %#03x\n"
+
+#: peigen.c:2595 pepigen.c:2595 pex64igen.c:2595
+#, c-format
+msgid " Resources start at offset: %#03x\n"
+msgstr " Ð ÐµÑ�ÑƒÑ€Ñ�Ð¸ Ð¿Ð¾Ñ‡Ð¸Ð½Ð°ÑŽÑ‚ÑŒÑ�Ñ� Ð· Ñ‚Ð°ÐºÐ¸Ð¼ Ð·Ñ�ÑƒÐ²Ð¾Ð¼: %#03x\n"
+
+#: peigen.c:2647 pepigen.c:2647 pex64igen.c:2647
+#, c-format
+msgid ""
+"\n"
+"There is a debug directory, but the section containing it could not be found\n"
+msgstr ""
+"\n"
+"Ð†Ñ�Ð½ÑƒÑ” ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸, Ð°Ð»Ðµ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ, Ñ‰Ð¾ Ð¹Ð¾Ð³Ð¾ Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒ Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾\n"
+
+#: peigen.c:2653 pepigen.c:2653 pex64igen.c:2653
+#, c-format
+msgid ""
+"\n"
+"There is a debug directory in %s, but that section has no contents\n"
+msgstr ""
+"\n"
+"Ð£ %s Ñ” ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸, Ð°Ð»Ðµ Ñƒ Ñ†ÑŒÐ¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– Ð½ÐµÐ¼Ð°Ñ” Ð´Ð°Ð½Ð¸Ñ…\n"
+
+#: peigen.c:2660 pepigen.c:2660 pex64igen.c:2660
+#, c-format
+msgid ""
+"\n"
+"Error: section %s contains the debug data starting address but it is too small\n"
+msgstr ""
+"\n"
+"ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– %s Ð¼Ñ–Ñ�Ñ‚Ð¸Ñ‚ÑŒÑ�Ñ� Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð° Ð°Ð´Ñ€ÐµÑ�Ð° Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…, Ð°Ð»Ðµ Ð²Ð¾Ð½Ð° Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð¼Ð°Ð»Ð¾ÑŽ\n"
+
+#: peigen.c:2665 pepigen.c:2665 pex64igen.c:2665
+#, c-format
+msgid ""
+"\n"
+"There is a debug directory in %s at 0x%lx\n"
+"\n"
+msgstr ""
+"\n"
+"Ð’Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸ Ñƒ %s Ð·Ð° Ð°Ð´Ñ€ÐµÑ�Ð¾ÑŽ 0x%lx\n"
+"\n"
+
+#: peigen.c:2672 pepigen.c:2672 pex64igen.c:2672
+#, c-format
+msgid "The debug data size field in the data directory is too big for the section"
+msgstr "ÐŸÐ¾Ð»Ðµ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ… Ñƒ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð·Ñ– Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸ Ñ” Ð½Ð°Ð´Ñ‚Ð¾ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼ Ð´Ð»Ñ� Ñ†ÑŒÐ¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ"
+
+#: peigen.c:2677 pepigen.c:2677 pex64igen.c:2677
+#, c-format
+msgid "Type                Size     Rva      Offset\n"
+msgstr "Ð¢Ð¸Ð¿                 Ð Ð¾Ð·Ð¼     Rva      Ð—Ñ�ÑƒÐ²\n"
+
+#: peigen.c:2725 pepigen.c:2725 pex64igen.c:2725
+#, c-format
+msgid "(format %c%c%c%c signature %s age %ld)\n"
+msgstr "(Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ %c%c%c%c Ð¿Ñ–Ð´Ð¿Ð¸Ñ� %s Ð²Ñ–Ðº %ld)\n"
+
+#: peigen.c:2733 pepigen.c:2733 pex64igen.c:2733
+#, c-format
+msgid "The debug directory size is not a multiple of the debug directory entry size\n"
+msgstr "Ð Ð¾Ð·Ð¼Ñ–Ñ€ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸ Ð½Ðµ Ñ” ÐºÑ€Ð°Ñ‚Ð½Ð¸Ð¼ Ð´Ð¾ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ð·Ð°Ð¿Ð¸Ñ�Ñƒ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸\n"
+
 #. The MS dumpbin program reportedly ands with 0xff0f before
 #. printing the characteristics field.  Not sure why.  No reason to
 #. emulate it here.
-#: peigen.c:2010 pepigen.c:2010 pex64igen.c:2010
+#: peigen.c:2753 pepigen.c:2753 pex64igen.c:2753
 #, c-format
 msgid ""
 "\n"
@@ -6228,29 +8550,231 @@ msgstr ""
 "\n"
 "Ð¥Ð°Ñ€Ð°ÐºÑ‚ÐµÑ€Ð¸Ñ�Ñ‚Ð¸ÐºÐ¸ 0x%x\n"
 
-#: peigen.c:2310 pepigen.c:2310 pex64igen.c:2310
+#: peigen.c:2988 pepigen.c:2988 pex64igen.c:2988
+#, c-format
+msgid "%B: Data Directory size (%lx) exceeds space left in section (%lx)"
+msgstr "%B: Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ Ð´Ð°Ð½Ð¸Ñ… (%lx) Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ Ð¼Ñ–Ñ�Ñ†Ñ�, Ñ�ÐºÐµ Ð»Ð¸ÑˆÐ¸Ð»Ð¾Ñ�Ñ� Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– (%lx)"
+
+#: peigen.c:3018 pepigen.c:3018 pex64igen.c:3018
+msgid "Failed to update file offsets in debug directory"
+msgstr "Ð�Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð·Ñ�ÑƒÐ²Ð¸ Ñ„Ð°Ð¹Ð»Ñ–Ð² Ñƒ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð·Ñ– Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸ÐºÐ¸"
+
+#: peigen.c:3024 pepigen.c:3024 pex64igen.c:3024
+msgid "%B: Failed to read debug data section"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» Ð´Ñ–Ð°Ð³Ð½Ð¾Ñ�Ñ‚Ð¸Ñ‡Ð½Ð¸Ñ… Ð´Ð°Ð½Ð¸Ñ…"
+
+#: peigen.c:3840 pepigen.c:3840 pex64igen.c:3840
+#, c-format
+msgid ".rsrc merge failure: duplicate string resource: %d"
+msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ñ€ÐµÑ�ÑƒÑ€Ñ� Ð· Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ�Ð¼ Ñ€Ñ�Ð´ÐºÑ–Ð²: %d"
+
+#: peigen.c:3975 pepigen.c:3975 pex64igen.c:3975
+msgid ".rsrc merge failure: multiple non-default manifests"
+msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° Ð½ÐµÑ‚Ð¸Ð¿Ð¾Ð²Ð¸Ñ… Ð¼Ð°Ð½Ñ–Ñ„ÐµÑ�Ñ‚Ñ–Ð²"
+
+#: peigen.c:3993 pepigen.c:3993 pex64igen.c:3993
+msgid ".rsrc merge failure: a directory matches a leaf"
+msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ” Ð»Ð¸Ñ�Ñ‚Ð¾Ðº"
+
+#: peigen.c:4035 pepigen.c:4035 pex64igen.c:4035
+msgid ".rsrc merge failure: duplicate leaf"
+msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� Ð»Ð¸Ñ�Ñ‚ÐºÑ–Ð²"
+
+#: peigen.c:4037 pepigen.c:4037 pex64igen.c:4037
+#, c-format
+msgid ".rsrc merge failure: duplicate leaf: %s"
+msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ� Ð»Ð¸Ñ�Ñ‚ÐºÑ–Ð²: %s"
+
+#: peigen.c:4103 pepigen.c:4103 pex64igen.c:4103
+msgid ".rsrc merge failure: dirs with differing characteristics\n"
+msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¸ Ð· Ñ€Ñ–Ð·Ð½Ð¸Ð¼Ð¸ Ñ…Ð°Ñ€Ð°ÐºÑ‚ÐµÑ€Ð¸Ñ�Ñ‚Ð¸ÐºÐ°Ð¼Ð¸\n"
+
+#: peigen.c:4110 pepigen.c:4110 pex64igen.c:4110
+msgid ".rsrc merge failure: differing directory versions\n"
+msgstr "Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ð²Ñ–Ð´Ð¼Ñ–Ð½Ð½Ð¾Ñ�Ñ‚Ñ– Ñƒ Ð²ÐµÑ€Ñ�Ñ–Ñ�Ñ… ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñ–Ð²\n"
+
+#. Corrupted .rsrc section - cannot merge.
+#: peigen.c:4227 pepigen.c:4227 pex64igen.c:4227
+msgid "%B: .rsrc merge failure: corrupt .rsrc section"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¹ Ñ€Ð¾Ð·Ð´Ñ–Ð» .rsrc"
+
+#: peigen.c:4235 pepigen.c:4235 pex64igen.c:4235
+msgid "%B: .rsrc merge failure: unexpected .rsrc size"
+msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¾Ð±â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ .rsrc: Ð½ÐµÐ¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ .rsrc"
+
+#: peigen.c:4374 pepigen.c:4374 pex64igen.c:4374
 msgid "%B: unable to fill in DataDictionary[1] because .idata$2 is missing"
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[1], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” .idata$2"
 
-#: peigen.c:2330 pepigen.c:2330 pex64igen.c:2330
+#: peigen.c:4394 pepigen.c:4394 pex64igen.c:4394
 msgid "%B: unable to fill in DataDictionary[1] because .idata$4 is missing"
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[1], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” .idata$4"
 
-#: peigen.c:2351 pepigen.c:2351 pex64igen.c:2351
+#: peigen.c:4415 pepigen.c:4415 pex64igen.c:4415
 msgid "%B: unable to fill in DataDictionary[12] because .idata$5 is missing"
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[12], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” .idata$5"
 
-#: peigen.c:2371 pepigen.c:2371 pex64igen.c:2371
+#: peigen.c:4435 pepigen.c:4435 pex64igen.c:4435
 msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing"
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” .idata$6"
 
-#: peigen.c:2413 pepigen.c:2413 pex64igen.c:2413
+#: peigen.c:4477 pepigen.c:4477 pex64igen.c:4477
 msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing"
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ .idata$6 Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ”"
 
-#: peigen.c:2438 pepigen.c:2438 pex64igen.c:2438
+#: peigen.c:4502 pepigen.c:4502 pex64igen.c:4502
 msgid "%B: unable to fill in DataDictionary[9] because __tls_used is missing"
 msgstr "%B: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð·Ð°Ð¿Ð¾Ð²Ð½Ð¸Ñ‚Ð¸ DataDictionary[9], Ð¾Ñ�ÐºÑ–Ð»ÑŒÐºÐ¸ Ð½Ðµ Ð²Ð¸Ñ�Ñ‚Ð°Ñ‡Ð°Ñ” __tls_used"
 
-#~ msgid "%B: error: taking the address of protected function '%s' cannot be done when making a shared library"
-#~ msgstr "%B: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ� Ð°Ð´Ñ€ÐµÑ�Ð¸ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾Ñ— Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— Â«%sÂ» Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�"
+#~ msgid "Unrecognized reloc"
+#~ msgstr "Ð�ÐµÑ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð½Ðµ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�"
+
+#~ msgid "%s: warning: illegal symbol index %ld in relocs"
+#~ msgstr "%s: Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð½ÐµÐºÐ¾Ñ€ÐµÐºÑ‚Ð½Ð¸Ð¹ Ñ–Ð½Ð´ÐµÐºÑ� Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ñƒ %ld Ñƒ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ�Ñ…"
+
+#~ msgid "Dwarf Error: Bad abbrev number: %u."
+#~ msgstr "ÐŸÐ¾Ð¼Ð¸Ð»ÐºÐ° dwarf: Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ð¹ Ñ�ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð¸Ð¹ Ð½Ð¾Ð¼ÐµÑ€: %u."
+
+#~ msgid "%B: don't know how to handle allocated, application specific section `%s' [0x%8x]"
+#~ msgstr "%B: Ñ�Ð¿Ð¾Ñ�Ñ–Ð± Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð¾Ð³Ð¾ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹, Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¸Ð¹ Ð´Ð»Ñ� Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ñ€Ð¾Ð·Ð´Ñ–Ð» Â«%sÂ» [0x%8x]"
+
+#~ msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]"
+#~ msgstr "%B: Ñ�Ð¿Ð¾Ñ�Ñ–Ð± Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ð´Ð»Ñ� Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ð¾Ñ€Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ `%s' [0x%8x] Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹"
+
+#~ msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]"
+#~ msgstr "%B: Ñ�Ð¿Ð¾Ñ�Ñ–Ð± Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ�Ð¿ÐµÑ†Ð¸Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ Ð´Ð»Ñ� ÐžÐ¡ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ» [0x%8x] Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹"
+
+#~ msgid "%B: don't know how to handle section `%s' [0x%8x]"
+#~ msgstr "%B: Ñ�Ð¿Ð¾Ñ�Ñ–Ð± Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ» [0x%8x] Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹"
+
+#~ msgid " [has entry point]"
+#~ msgstr " [Ð¼Ð°Ñ” Ð²Ñ…Ñ–Ð´Ð½Ñƒ Ñ‚Ð¾Ñ‡ÐºÑƒ]"
+
+#~ msgid "error: required section '%s' not found in the linker script"
+#~ msgstr "Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ñƒ Ñ�ÐºÑ€Ð¸Ð¿Ñ‚Ñ– ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ� Ð½Ðµ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Ð¾Ð±Ð¾Ð²â€™Ñ�Ð·ÐºÐ¾Ð²Ð¾Ð³Ð¾ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ Â«%sÂ»"
+
+#~ msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
+#~ msgstr "%s: Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑŽÑ‚ÑŒÑ�Ñ� Ñ–Ð½ÑˆÑ– Ð¿Ð¾Ð»Ñ� e_flags (0x%lx) Ð½Ñ–Ð¶ Ñƒ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ð¼Ð¾Ð´ÑƒÐ»Ñ�Ñ… (0x%lx)"
+
+#~ msgid "%s: unknown relocation type %d"
+#~ msgstr "%s: Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ñ‚Ð¸Ð¿ Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %d"
+
+#~ msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
+#~ msgstr ""
+#~ "%s: Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ� (%s) Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ñ” Ñƒ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾Ð¼Ñƒ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ– (%s)\n"
+#~ ")"
+
+#~ msgid "%B: %s\n"
+#~ msgstr "%B: %s\n"
+
+#~ msgid "%B(%A): warning: relax is suppressed for sections of alignment %d-bytes > 4-byte."
+#~ msgstr "%B(%A): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–ÑŽ Ð¿Ñ€Ð¸Ð´ÑƒÑˆÐµÐ½Ð¾ Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñ–Ð² Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� %d-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¹ > 4-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ð¸Ð¹."
+
+#~ msgid "Warning: %B uses soft float, %B uses single-precision hard float"
+#~ msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ”Ñ‚ÑŒÑ�Ñ� Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ», Ð° Ñƒ %B â€” Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð° Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° Ð´Ð»Ñ� Ð´Ñ–Ð¹Ñ�Ð½Ð¸Ñ… Ñ‡Ð¸Ñ�ÐµÐ» Ð· Ð¾Ð´Ð¸Ð½Ð°Ñ€Ð½Ð¾ÑŽ Ñ‚Ð¾Ñ‡Ð½Ñ–Ñ�Ñ‚ÑŽ"
+
+#~ msgid "Warning: %B uses unknown floating point ABI %d"
+#~ msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ ABI Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ð· Ñ‡Ð¸Ñ�Ð»Ð°Ð¼Ð¸ Ð· Ñ€ÑƒÑ…Ð¾Ð¼Ð¾ÑŽ ÐºÑ€Ð°Ð¿ÐºÐ¾ÑŽ, %d"
+
+#~ msgid "Warning: %B uses unknown vector ABI %d"
+#~ msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÑ” Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ð¹ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð½Ð¸Ð¹ ABI %d"
+
+#~ msgid "Warning: %B uses unknown small structure return convention %d"
+#~ msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ñƒ ÑƒÐ³Ð¾Ð´Ñƒ, %d, Ñ‰Ð¾Ð´Ð¾ Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ� Ð¼Ð°Ð»ÐµÐ½ÑŒÐºÐ¸Ñ… Ñ�Ñ‚Ñ€ÑƒÐºÑ‚ÑƒÑ€"
+
+#~ msgid " [G10]"
+#~ msgstr " [G10]"
+
+#~ msgid "%s: Malformed reloc detected for section %s"
+#~ msgstr "%s: Ð´Ð»Ñ� Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ %s Ð²Ð¸Ñ�Ð²Ð»ÐµÐ½Ð¾ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑƒ Ñƒ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ– Ð¿ÐµÑ€ÐµÐ½ÐµÑ�ÐµÐ½Ð½Ñ�"
+
+#~ msgid "  %s: 0x%v\n"
+#~ msgstr "  %s: 0x%v\n"
+
+#~ msgid "%s: 0x%v 0x%v\n"
+#~ msgstr "%s: 0x%v 0x%v\n"
+
+#~ msgid "   %s%s %s\n"
+#~ msgstr "   %s%s %s\n"
+
+#~ msgid ", 8-byte data alignment"
+#~ msgstr ", 8-Ð±Ð°Ð¹Ñ‚Ð¾Ð²Ðµ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ� Ð´Ð°Ð½Ð¸Ñ…"
+
+#~ msgid "%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s"
+#~ msgstr "%B: Ð¿ÐµÑ€ÐµÑ�ÑƒÐ²Ð°Ð½Ð½Ñ� %s Ñ‰Ð¾Ð´Ð¾ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ %s, Â«%sÂ», Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð¾Ð²ÑƒÐ²Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ� Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð¾Ð±â€™Ñ”ÐºÑ‚Ð° Ñ�Ð¿Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ�%s"
+
+#~ msgid "[%u]: %u\n"
+#~ msgstr "[%u]: %u\n"
+
+#~ msgid ": %u.%u\n"
+#~ msgstr ": %u.%u\n"
+
+#~ msgid ""
+#~ "%B(%s): warning: interworking not enabled.\n"
+#~ "  first occurrence: %B: thumb call to arm"
+#~ msgstr ""
+#~ "%B(%s): Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñ�ÑƒÐ¼Ñ–Ñ�Ð½Ñƒ Ñ€Ð¾Ð±Ð¾Ñ‚Ñƒ Ð½Ðµ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾.\n"
+#~ "  Ð¿ÐµÑ€ÑˆÐ° Ð·Ð³Ð°Ð´ÐºÐ°: %B: Ð²Ð¸ÐºÐ»Ð¸Ðº thumb Ð´Ð¾ arm"
+
+#~ msgid "DIV usage mismatch between %B and %B"
+#~ msgstr "Ñ€Ð¾Ð·Ð±Ñ–Ð¶Ð½Ð¾Ñ�Ñ‚Ñ– Ñƒ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ– DIV Ð¼Ñ–Ð¶ %B Ñ‚Ð° %B"
+
+#~ msgid "%P: dynamic variable `%s' is zero size\n"
+#~ msgstr "%P: Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð° Ð·Ð¼Ñ–Ð½Ð½Ð° Â«%sÂ» Ð¼Ð°Ñ” Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¹ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€\n"
+
+#~ msgid " [dsp]"
+#~ msgstr " [dsp]"
+
+#~ msgid "%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc\n"
+#~ msgstr "%P: %H: Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ðµ Ñ�Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ� Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… TOC Ð½Ðµ Ð¼Ð¾Ð¶Ð½Ð° Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð½Ð° Ð¾Ñ�Ð½Ð¾Ð²Ñ– Ð²Ð°ÑˆÐ¸Ñ… Ñ„Ð°Ð¹Ð»Ñ–Ð² crt; Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· -mminimal-toc Ð°Ð±Ð¾ Ð¾Ð½Ð¾Ð²Ñ–Ñ‚ÑŒ gcc\n"
+
+#~ msgid "%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern\n"
+#~ msgstr "%P: %H: Ñƒ Ñ€Ð°Ð·Ñ– Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð½Ñ� Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ— Ð²Ð¸ÐºÐ»Ð¸ÐºÑ–Ð² Ð¾Ð´Ð½Ð°ÐºÐ¾Ð²Ð¸Ñ… Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ Ð´Ð»Ñ� Â«%sÂ» Ð½Ðµ Ð´Ð°Ñ�Ñ‚ÑŒ Ð·Ð¼Ð¾Ð³Ð¸ Ñ�Ñ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° TOC; Ð²Ð¸ÐºÐ¾Ð½Ð°Ð¹Ñ‚Ðµ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ðµ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ� Ð· -mminimal-toc Ð°Ð±Ð¾ -fno-optimize-sibling-calls Ñ‡Ð¸ Ð·Ñ€Ð¾Ð±Ñ–Ñ‚ÑŒ Â«%sÂ» Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾ÑŽ (extern)\n"
+
+#~ msgid "note: '%s' is defined in DSO %B so try adding it to the linker command line"
+#~ msgstr "Ð·Ð°ÑƒÐ²Ð°Ð¶ÐµÐ½Ð½Ñ�: Â«%sÂ» Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ñƒ %B DSO, Ð¾Ñ‚Ð¶Ðµ Ñ�Ð¿Ñ€Ð¾Ð±ÑƒÑ”Ð¼Ð¾ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ Ð¹Ð¾Ð³Ð¾ Ð´Ð¾ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³Ð¾ Ñ€Ñ�Ð´ÐºÐ° ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ°"
+
+#~ msgid "Warning: %B uses -msingle-float, %B uses -mips32r2 -mfp64"
+#~ msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ -msingle-float, Ð° Ñƒ %B â€” -mips32r2 -mfp64"
+
+#~ msgid "Warning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64"
+#~ msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ�: Ñƒ %B Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñ�Ñ‚Ð°Ð½Ð¾ -mdouble-float, Ð° Ñƒ %B â€” -mips32r2 -mfp64"
+
+#~ msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" is unsupported 'indirect' reference: setting to undefined"
+#~ msgstr "bfd_mach_o_read_symtab_symbol: Ñ�Ð¸Ð¼Ð²Ð¾Ð» Â«%sÂ» Ñ” Ð½ÐµÐ¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð¸Ð¼ Ð¿Ð¾Ñ�Ð¸Ð»Ð°Ð½Ð½Ñ�Ð¼ Â«indirectÂ»: Ð²Ñ�Ñ‚Ð°Ð½Ð¾Ð²Ð»ÑŽÑ”Ð¼Ð¾ Ñƒ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ�"
+
+#~ msgid "bfd_mach_o_read_dysymtab_symbol: unable to read %lu bytes at %lu"
+#~ msgstr "bfd_mach_o_read_dysymtab_symbol: Ð½Ðµ Ð²Ð´Ð°Ð»Ð¾Ñ�Ñ� Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ %lu Ð±Ð°Ð¹Ñ‚Ñ–Ð² Ð· %lu"
+
+#~ msgid "Mach-O header:\n"
+#~ msgstr "Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº Mach-O:\n"
+
+#~ msgid " magic     : %08lx\n"
+#~ msgstr " magic     : %08lx\n"
+
+#~ msgid " cputype   : %08lx (%s)\n"
+#~ msgstr " Ñ‚Ð¸Ð¿ Ð¿Ñ€Ð¾Ñ†. : %08lx (%s)\n"
+
+#~ msgid " filetype  : %08lx (%s)\n"
+#~ msgstr " Ñ‚Ð¸Ð¿ Ñ„Ð°Ð¹Ð»Ð° : %08lx (%s)\n"
+
+#~ msgid " ncmds     : %08lx (%lu)\n"
+#~ msgstr " ÐºÑ‚ÑŒ_ÐºÐ¾Ð¼Ð°Ð½Ð´: %08lx (%lu)\n"
+
+#~ msgid " sizeofcmds: %08lx\n"
+#~ msgstr " Ñ€Ð¾Ð·Ð¼Ñ–Ñ€_ÐºÐ¼Ð´: %08lx\n"
+
+#~ msgid " flags     : %08lx ("
+#~ msgstr " Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ–  : %08lx ("
+
+#~ msgid " reserved  : %08x\n"
+#~ msgstr " Ð·Ð°Ñ€ÐµÐ·ÐµÑ€Ð². : %08x\n"
+
+#~ msgid "Segments and Sections:\n"
+#~ msgstr "Ð¡ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð¸ Ñ– Ñ€Ð¾Ð·Ð´Ñ–Ð»Ð¸:\n"
+
+#~ msgid " #: Segment name     Section name     Address\n"
+#~ msgstr " #: Ð�Ð°Ð·Ð²Ð° Ñ�ÐµÐ³Ð¼ÐµÐ½Ñ‚Ð°   Ð�Ð°Ð·Ð²Ð° Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ    Ð�Ð´Ñ€ÐµÑ�Ð°\n"
+
+#~ msgid "Symbol %s replaced by %s\n"
+#~ msgstr "Ð¡Ð¸Ð¼Ð²Ð¾Ð» %s Ð·Ð°Ð¼Ñ–Ð½ÐµÐ½Ð¾ Ð½Ð° %s\n"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/vi.gmo ./bfd/po/vi.gmo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/vi.gmo	2018-01-02 02:07:01.000000000 +0000
+++ ./bfd/po/vi.gmo	2018-01-09 02:08:39.000000000 +0000
@@ -22,28 +22,29 @@
 &)Pp‚‰(�¹'Ëó(H#`$„,©.Ö,
.2
a
"~
,¡
.Î
!ý
10Q2‚,µ.â#5U(i/’!Âä(#*+Nz,“ Àáú.N#m-‘"¿âô7Pew2’$Å&ê	1!;]DwD¼/1/C?s³ÄäûJ7bš*´ß÷%6L#i%�³ÆãJJ]J¨Ió:=;x:´Eï659l7¦9ÞQ/jBš@Ý.=M&‹.²/á-i?D©dî,SF€fÇC.r#‘@µ8ö7/g	‡‘­¿Ñ<æ2# .V … � ¤ ¼ dÔ 9!6L!@ƒ!=Ä!d"gg"bÏ"=2#Ep#1¶#(è#$$6$4L$'�$$©$7Î$%%/%F%W%o%‡%™%«%½%Ï%é%&&'&?&^&2}&°&-É&+÷&+#'*O'	z'	„'
 Ž'™'®'½'Ò'á'1æ'(7('V("~(¡(¿(Ô(Ý(]û(=Y)(—)ZÀ)Z*Ev*A¼*Gþ*WF+Wž+9ö+90,4j,9Ÿ,4Ù,2-7A-5y-7¯-.ç-2. I.[j.@Æ.:/#B/=f/<¤/Ná/-00O^0 ®0>Ï091
 H11S1&…1&¬1!Ó1õ1,27A2
y2‡2š2®2Á27Ô23$,3"Q3At3¶3,Ô32444¾D4»5¿5Ú5õ5B6DX6*�6LÈ67*7y97³70»7ì78888298Ol8¼8*Û8 9'9KE9‘9ž9 ¸9Ù9í9::,:B:Y:v:‡:›:N£:ò:#ö:6;Q; q;8’;Ë;Ý;í;õ;
-<<2<F<Y<Ll< ¹<DÚ<=1=D=3_=!“=µ="¼=ß=ï=þ=%>'7>$_>)„>*®>Ù>0õ>,&?S?q?‹?“?
«?%¹?ß?'÷?@9@P@b@y@7�@È@á@ó@AA.ADA-cA)‘A>»AgúAxbB-ÛB!	C7+CcC!|C;žC0ÚC5D<AD<~D2»D/îD.E=ME/‹E6»E,òE!FAH$`H…H H+·H=ãH)!I@KIŒIUœI,òIJ#<J!`J‚J$”J)¹J)ãJ%
K3KGK#YK9}KC·KLûK>HL ‡LT¨L9ýL67M9nMK¨M.ôMM#NFqN.¸NFçN.O%KORqO%ÄOêOP+P-CP<qP®P9ÊPQQ$Q1>Q1pQ1¢Q)ÔQþQR#R)/R*YR„R �R¾RÜRõR'S=SZSuS�S©S+ÀSìSüST3TQTeT�TŸT=µTóTUU -UNU2iU7œU2ÔUEV*MVxV”V ±VÒVëVW4WMW%mW“W«W+ÆWòWX!X<@X}XŒX
›X©X½X,×XY$Y-:Y$hY+�Y¹Y#ÔYøYZ3ZLZ_Z)rZœZ;±ZíZ+[-[>[#Q[u[Ž[£[¼[%Ó[ù[-
\#;\#_\ƒ\#�\#Á\å\2ü\/]5]=]-B]
-p]{]€]$†]-«]Ù]Þ]+ã]&^6^;^Q^,V^ƒ^Š^�^•^š^ ^¤^ ©^Ê^ã^&è^_*+_&V_}_‚_‡_Ž_”_™_¨_¯_Ë_ Ò_ó_`&`=`T`k`‚`	”`
ž`
¬`
-º`
-Å`
-Ð`Û`
-÷`a:	a Da6ea=œa
-Úaåa'ùa3!b.Ub'„b(¬b Õböbcc-c:c
-Uc`c&ic;�cÌc%ßc%d+d&=dddsdzdŒd¦d:ÀdEûdAeaeye�e7 eØeAôe6fQfkf…fBœf%ßfg#g>Bg6�g¸gÍgDìg1hBKh@Žh8Ïhi1iQi(ji4“i,ÈiIõi¦?j|æj}ckákalAbl9¤l-Þl2m*?m#jmQŽmWàmH8n#�n0¥n`Ön<7o8to1­o*ßoM
-p XpWypRÑp$q{-qA©qJëq76r=nrq¬rNs`msbÎsK1tX}t-ÖtXu~]uSÜuI0v<zvU·vD
w\RwY¯wN	x_XxP¸xa	yJky¶yy6z°zy0{Æª{Xq|½Ê|”ˆ}h~T†~_Û~‚;[¾«€>Æ€i�co�]Ó�­1‚Kß‚¦+ƒ;Òƒ8„fG„8®„Hç„60…]g…]Å…H#†Fl†k³†U‡8u‡2®‡"á‡XˆI]ˆE§ˆ>íˆ=,‰<j‰L§‰Qô‰NFŠ0•ŠEÆŠ4‹WA‹U™‹mï‹t]ŒhÒŒ²;�Fî�R5Ž4ˆŽG½ŽT�IZ�e¤�Z
-�Fe�?¬�Aì�m.‘Tœ‘zñ‘Il’/¶’aæ’eH“i®“R”Mk”$¹”[Þ”[:•0–•4Ç•,ü•=)–/g–4—–/Ì–aü–@^—YŸ—Iù—TC˜O˜˜3è˜i™[†™bâ™BEšeˆšEîš;4›%p›?–›lÖ›+Cœ9oœ%©œ"Ïœ,òœ"�;B�I~�aÈ�a*žpŒžpýžYnŸ-ÈŸ5öŸ3, K` h¬ T¡4j¡]Ÿ¡ý¡,¢,E¢br¢YÕ¢Y/£7‰£[Á£;¤5Y¤[�¤;ë¤6'¥&^¥=…¥=Ã¥_¦Ha¦2ª¦BÝ¦= §,^§W‹§2ã§C¨Z¨Av¨1¸¨=ê¨M(©Ev©S¼©Kª�\ª{êªpf«S×«+¬R«¬>þ¬X=­G–­#Þ­a®.d®O“®’ã®[v¯uÒ¯>H°E‡°6Í°T±qY±qË±n=²”¬²jA³„¬³€1´Y²´�µ‹œµ–(¶g¿¶?'·Jg·1²·2ä·B¸0Z¸K‹¸O×¸^'¹?†¹\Æ¹A#º0eº0–º Çº[èºJD»I�»IÙ»K#¼do¼jÔ¼1?½3q½2¥½5Ø½>¾EM¾<“¾UÐ¾K&¿@r¿k³¿HÀ0hÀC™À$ÝÀLÁ0OÁ+€ÁN¬ÁIûÁ;EÂ<�Â;¾ÂDúÂC?ÃiƒÃNíÃm<ÄEªÄRðÄ‚CÅHÆÅJÆRZÆJ­Æ;øÆJ4ÇTÇlÔÇ@AÈA‚È&ÄÈ;ëÈ2'ÉCZÉHžÉZçÉhBÊp«ÊfËeƒËXéËQBÌ”Ìå´ÌCšÍ:ÞÍYÎ_sÎCÓÎJÏFbÏG©ÏRñÏDDÐF‰ÐQÐÐF"ÑDiÑD®ÑOóÑFCÒDŠÒÏÒdéÒCNÓH’Ó.ÛÓ>
-Ô*IÔJtÔT¿ÔiÕ2~ÕA±ÕVóÕGJÖ&’Ö2¹ÖHìÖ85×Fn×²µ×8hØ@¡ØUâØé8ÙT"ÚMwÚ@ÅÚAÛOHÛ2˜Û)ËÛ/õÛ)%Ü9OÜ£‰Ü=-Ý;kÝK§ÝLóÝ&@Þ.gÞ9–ÞMÐÞIßUhßP¾ßGà:Wà=’àSÐàw$áHœáåáúáâN.â0}â®âk½â€)ã?ªã³êã?žä�ÞäElåU²å:ævCærºær-çh çW	è\aèM¾è4éKAéU�éRãé\6ê^“ê5òêl(ëF•ë,Üëu	ìoìDïìD4íMyí`Çí=(îCfîjªî4ïDJï[�ïëïJðaQð„³ðj8ñP£ñcôñqXòfÊòv1óp¨óbôh|ô�åôbsõMÖõq$ö@–ö/×öB÷$J÷ o÷�÷T¯÷Qø[VøT²ø9ù4AùGvù0¾ù+ïù2ú?NúvŽúNûXTûZ­û1üN:ü?‰ü@Éüq
-ýO|ýOÌý~þ›þ°þÁþÚþóþ%ÿ›7ÿ]Óÿ1Qn&q˜%¶Üï;Nd-€®U½%9HQdx"Œ>¯î9û:5>p0¯_à@'R:zCµZùUTª0¹#ê"&DVh'z%¢ È0é83N1‚1´'æ25A*w,¢,Ï/ü,	B	_	~	%–	@¼	ý	'
-*9
-5d
-Qš
-Dì
-S1C…ŒÉšVUñ5G
+}
)©
Ó
Kñ
%= cI„Î
-â+í!+)M*w¢·!ÓõK ClJ° û*G0YŠ(�B¶5ùc/E“%Ù,ÿ[,8ˆÁÞ6ú(1Z"l"�²Ï:á.@Wn)}§ÁÒéû	4&[;qF­ô0M\&l!“&µÜíü--Esƒ–§6Æý@F[¢´ÆÍ,Ô97;s?‘%Ñ*÷"T@Z•Kð9<Švg i%Š=°îû8T7f$žÃÕÜGã+-=!k�*¨Ó-í0 <L 7‰ :Á 7ü !4!&V!<}!7º!!ò!1"DF"?‹"<Ë"7#)@#j#Š#4�#<Ò#!$!1$9S$&�$+´$#à$1%)6%$`%…%¥%,¸%*å%-&F>&*…&°&Â&ß&ö&&'2'R'/k'L›'&è'L()\(†(=•(-Ó(b)bd)9Ç)*F*Ga*©*#¾*â* û*+\%+U‚+$Ø+Aý+0?,"p,“,²,*Æ,%ñ,+-/C-,s-/ -3Ð-.o.k†.kò.q^/@Ð/P0Mb0^°0I1HY1F¢1Hé1b22=•2VÓ2O*35z3L°36ý3;445p4A¦4•è4[~5�Ú5Mk6a¹6”7_°7682G8dz8Oß8H/93x9	¬9¶9Ô9ï9
-:F :>g:=¦:ä:$ñ:;.;±N;<B<G_<A§<…é<’o=…>Dˆ>WÍ>F%?=l?)ª?Ô?Jô?A?@>�@WÀ@A1AQApA‰A#©AÍAçABB!5B'WBB™B"²B0ÕB-C84CmC>ŒC<ËC<D9ED	D	‰D
-“DžD½DÌDáDðD1õD''E)OE3yE.­EÜEûEF$F†>FCÅF3	Gn=Gr¬GVHOvHTÆHfIf‚IBéIA,J:nJ?©J:éJI$KKnKLºKKL=SLB‘L+ÔLiMTjMW¿M&Nh>NE§NcíN@QOv’O-	PL7PG„PÌPCáP,%Q2RQ2…Q1¸QSêQ\>R›R%°RÖRêRýRFS#WS0{S-¬ScÚS">TEaTC§TëTUV1W.:W*iWT”WSéWO=Xk�XùXYŸ-Y
ÍYIÛY%ZBZJZRZ!^ZP€ZjÑZ7<[Bt[:·[;ò[~.\­\Ã\$Þ\]]4]O]f]]!™]»]Ö]ê]†ò]y^2}^_°^8_(I_Cr_¶_ Ï_ð_ø_`+`?`S`f`{y`/õ`b%aˆaœa#µaHÙa;"b
-^b<ib¦b¶bÅb-Ùb/c+7c<cc9 c1Úc?dRLd4Ÿd.Ôd
-ee-eB>e�e8¡e!Úe-üe-*f4Xf-�fp»f!,gNg`gsg‡g›g#±gHÕg<hL[h«¨h®TiEj/IjOyjÉj1çjPkEjkQ°kOlORlG¢l8êlD#mShmD¼mJn>Lnê:Š;–Îý#ë¾>ÏÅÏÊýˆ>ñ†)Œô-ÌšúüeÆFR KÔú>N<Ù•º;9/½ÞZ~24ÊlŠbuƒ÷P’‚»O�,æ´è-ÆM³4	‰.¥±Rÿ¡—«ì�”@�€°^Ð
ã÷ª=×äW@©D�
ÇÝL_ð¡ºàßÍœS5¦óà’Ê¿}ti›û(cÁs^8]ñPž]®*º™qûZ7Ë„¹PŸqÀóÛŽïa6Àç¨/TõË{Ev®‚xQÍ¸Ãƒ/œ7ô€ëž›Å¤Ò©cyM!A†¦
+<<2<F<Y<Ll< ¹<DÚ<=1=D=3_=!“=µ="¼=ß=ï=þ=%>'7>$_>)„>*®>Ù>0õ>,&?S?q?‹?“?
«?%¹?ß?'÷?@9@P@b@y@7�@È@á@ó@AA.ADA-cA)‘A>»AgúAxbB-ÛB!	C7+CcC!|C;žC0ÚC5D<AD<~D2»D/îD.E=ME/‹E6»E,òEF?H$^HƒHžH+µH=áH)I@IIŠIUšI,ðIJ#:J!^J€J"’J)µJ)ßJ%	K/KCK#UK9yKC³KL÷K>DL ƒLT¤L9ùL63M9jMK¤M.ðMMNFmN.´NFãN*O%GORmO%ÀOæOÿO+P-?P?mP­P9ÉPQQ#Q1=Q1oQ1¡Q)ÓQýQR#R)/R*YR„R žR¿RÝRöR'S<SYSwS�S©S+ÀSìSüST6TRTfTTœT=µTóTUU-UMU2iU7œU2ÔUEV*MVxV•V®VÍVçVÿV8WOW%oW•W­W+ÈWôWX#X<BXXŽX
�X«X¿X,ÙXY$Y-8Y'fY)ŽY¸Y#ÓY÷YZ/ZGZZZ)mZ—Z;¬ZèZ+üZ([9[#L[p[‰[ž[·[%Î[ô[-\#6\#Z\~\#˜\#¼\à\:÷\2]8]@]-E]
+s]~]ƒ]$‰]-®]Ü]á])æ]&^7^<^R^,W^„^‹^‘^–^›^¡^¥^ ª^Ë^ä^&é^_(,_&U_|_�_†_�_“_˜_§_®_Ê_ Ñ_ò_`%`<`S`j`�`	“`
�`
«`
+¹`
+Ä`
+Ï`Ú`
+ö`a:a Ca6da=›a
+Ùaäa'øa3 b.Tb'ƒb(«b Ôbõbcc,c9c
+Tc_c&hc;�cËc%Þc%d*d&<dcdrdyd‹d¥d:ÀdEûdAeaeye�e7 eØeAôe6fTfpf�fB¤fçfgg>=g6|g³gÉgDèg-hBGh@Šh8Ëhi1iMi(fi4�i,ÄiIñi¦;j|âj}_kÝkiükAfl9¨l-âl2m*Cm#nmQ’mWämH<n#…n0©n`Ún@;o8|o1µo*çoMp `pW�pVÙp0q{9qAµqN÷q7Fr=~rq¼rN.s`}sbÞsKAt\�t-êt\u~uuSôuIHv@’vUÓvD)w`nw]ÏwV-xc„xXèxeAyJ§yòyyrzìzyl{Êæ{\±|Á}˜Ð}hi~XÒ~c+†�_€¯v€>&�ie�gÏ�a7‚¹™‚KSƒ¦Ÿƒ;F„8‚„j»„8&…H_…:¨…]ã…]A†HŸ†Fè†k/‡U›‡8ñ‡2*ˆ"]ˆX€ˆIÙˆE#‰Bi‰=¬‰<ê‰L'ŠQtŠNÆŠ0‹EF‹4Œ‹WÁ‹UŒuoŒ|åŒlb�²Ï�F‚ŽRÉŽ4�GQ�T™�Iî�e8�Zž�Fù�?@‘A€‘qÂ‘T4’z‰’I“/N“a~“eà“qF”R¸”M•$Y•[~•[Ú•06–4g–,œ–=É–/—47—/l—aœ—Dþ—YC˜M�˜Xë˜SD™7˜™mÐ™_>šfžšF›iL›I¶›?œ%@œCfœpªœ/�9K�%…�"«�,Î�"û�?žI^ža¨ža
+ŸtlŸtáŸYV -° 9Þ 7¡OP¡l ¡X
¢8f¢]Ÿ¢ý¢0£0I£bz£YÝ£Y7¤7‘¤[É¤;%¥5a¥[—¥?ó¥:3¦*n¦=™¦=×¦_§Pu§2Æ§Fù§A@¨,‚¨W¯¨2©G:©‚©Až©1à©=ªMPªEžªSäªK8«�„«{¬pŽ¬Sÿ¬S­RÓ­>&®\e®KÂ®'¯i6¯. ¯SÏ¯–#°[º°u±BŒ±IÏ±6²TP²u¥²u³r‘³œ´n¡´ˆµ„™µY¶“x¶�·šœ·o7¸?§¸Nç¸16¹2h¹F›¹4â¹Wº[oº^Ëº?*»\j»EÇ»4
¼4B¼ w¼[˜¼Jô¼I?½I‰½KÓ½d¾j„¾Cï¾E3¿6y¿5°¿>æ¿E%À@kÀY¬ÀKÁ@RÁo“ÁHÂ0LÂC}Â$ÁÂLæÂ43Ã+hÃN”ÃMãÃ;1Ä<mÄ;ªÄDæÄC+ÅioÅNÙÅm(ÆE–ÆZÜÆ‚7ÇLºÇNÈRVÈJ©È;ôÈJ0ÉT{ÉlÐÉH=ÊA†Ê&ÈÊ;ïÊ2+ËG^ËH¦ËZïËhJÌp³Ìf$Íe‹ÍXñÍUJÎ ÎõÀÎC¶Ï:úÏY5Ð_�ÐCïÐJ3ÑF~ÑGÅÑR
ÒD`ÒF¥ÒQìÒF>ÓD…ÓDÊÓOÔF_ÔH¦ÔïÔd
ÕGrÕPºÕ.Ö>:Ö*yÖJ¤ÖTïÖiD×2®×Aá×Z#ØK~Ø*ÊØ2õØH(Ù8qÙFªÙ¶ñÙ8¨ÚDáÚU&Ûù|ÛXvÜMÏÜDÝAbÝO¤Ý6ôÝ)+Þ3UÞ-‰Þ9·Þ§ñÞA™ß;ÛßKàLcà*°à2Ûà9áMHáI–áUàáT6âG‹â:Óâ=ãSLãƒ ãH$ämä‚ä äN¶ä0å6åoEå„µå?:æ³zæ?.ç�nçEüçUBè:˜èvÓèrJér½éh0ê[™ê\õêMRë4 ëKÕëU!ìRwì\Êìb'í9ŠípÄíF5î,|îu©îoïD�ïDÔïMð`gð=ÈðCñjJñ4µñDêñ[/ò‹òJªòaõò„WójÜóPGôd˜ôqýôfoõvÖõpMöj¾öl)÷�–÷b$øQ‡øqÙøDKù/�ùBÀù$ú (úIúThúQ½ú[ûTkû9Àû4úûG/ü0wü+¨ü6Ôü?ýzKýNÆýXþZnþ1ÉþRûþ?Nÿ@ŽÿuÏÿSEO™‚él�’«Ä%â«e´:W&Z�%ŸÅØë;û7M-i
—U¥%û!09L`&t>›Ú9ç:!>\0›_Ì,'>:fC¡ZåU@–0¥#Öú		0	B	T	'f	%Ž	 ´	0Õ	
+$
+3:
+1n
+1 
+'Ò
+2ú
+5-*c,Ž,»/è.Kj%‚@¨é'ý*%
5P
Q†
DØ
SCq”µžJUé5?+u)¡ËKé%5 [I|Æ
+Ú+å!#)E*oš¯!ËíKCdJ¨ ó*?0Q‚(…B®5ñc'E‹%Ñ,÷[$<€½Ú6ö,-Z"l"�²Ï:á.@Wn)}§ÁÒéû	4&[;qF­ô0M\&l!“&µÜíü--Esƒ–§6ÆýDJ_ª¼ÎÕ,Ü9	7C!{?�%Ý*.TLZ¡Kü9HŽ‚g  y )š EÄ 
+!!87!p!7‚!$º!ß!ñ!ø!Gÿ!G"-Y"!‡"©"*Ä"ï"-	#07#<h#7¥#:Ý#7$!P$&r$<™$7Ö$!%10%Db%?§%<ç%7$&)\&†&¦&4¹&<î&!+'!M'9o'&©'+Ð'#ü'1 ()R($|(¡(Á(,Ô(*)-,)FZ)*¡)Ì)Þ)û)*&'*N*n*/‡*L·*&+L++)x+¢+=±+-ï+f,f„,9ë,%-F>-K…-Ñ-#æ-
+. #.D.dM.U².$/A-/0o/" /Ã/â/*ö/%!0+G03s0,§0/Ô03181sJ1o¾1o.2už2D3PY3Mª3^ø3IW4P¡4Nò4PA5b’5=õ5V36OŠ65Ú6L76]7C”75Ø7A8•P8[æ8�B9MÓ9e!:˜‡:c ;6„;2»;hî;SW<H«<3ô<	(=2=P=k=†=Jœ=>ç==&>d>$q>–>®>±Î>€?Bœ?Gß?A'@�i@–÷@‰ŽADBW]BFµB=üB*:CeCJ…CAÐC>DWQD©DÂDâDEE#:E^ExE’E¬E!ÆE'èEF*F"CF0fF-—F8ÅFþF>G<\G<™GAÖG	H	"H
+,H7HVHeHzH‰H1ŽH+ÀH)ìH3I4JIIŸIµI"¾I†áIChJ3¬JnàJrOKVÂKOLTiLf¾Lf%MBŒMAÏM:N?LN:ŒNIÇNKOL]OKªO=öOB4P+wPq£P\QWrQ&ÊQhñQEZRc R@SvES-¼SLêSG7TTC”T,ØT2U28U1kUS�U\ñUNV%cV‰V�V°VFÃV#
+W0.W-_Wc�W"ñWEXCZXžX´XÁY1ÇZ.ùZ*([TS[S¨[Oü[kL\¸\Ð\Ÿì\
Œ]Iš]ä]^	^^!^P?^j�^7û^B3_:v_;±_‚í_p`†`$¡`Æ`ß`÷`a)aBa!\a~a™a­a†µa<b6@b_wb8×b(cC9c}c –c·c¿cÞcòcdd-d@d/ÀdbðdSege#€eH¤e;íe
+)f<4fqf�f�f5¤f7Úf+g<>g9{g1µg?çgR'h4zh.¯h
+ÞhéhiBi\i<|i!¹i-Ûi-	j47j-ljpšj!k-k?kRkfkzk#�kH´k<ýkL:l«‡l®3mIâm/,nO\n¬n1ÊnPünIMoQ—oOéoO9pG‰p<ÑpHqWWqD¯qJôq>?rê:Š;–Îý#ë¾>ÏÅÏÊýˆ>ñ†)Œô-ÌšúüeÆFR KÔú>N<Ù•º;9/½ÞZ~24ÊlŠbuƒ÷P’‚»O�,æ´è-ÆM³4	‰.¥±Rÿ¡—«ì�”@�€°^Ð
ã÷ª=×äW@©D�
ÇÝL_ð¡ºàßÍœS5¦óà’Ê¿}ti›û(cÁs^8]ñPž]®*º™qûZ7Ë„¹PŸqÀóÛŽïa6Àç¨/TõË{Ev®‚xQÍ¸Ãƒ/œ7ô€ëž›Å¤Ò©cyM!A†¦
 ÿ�ÖÏþî—*Zïu�àXˆ! Èõ&$x.˜„
 .c�ÿ“%^îeÉý‰é00¹�¥#o¿2?“íßHx$úd':a­‚YJ‹íÜUso©˜"öF¯AÐLaT³ì’»t~Ì}ÕØP¸·w`´�øÙ¸õ£ïÂÅ¢EúIÃ°ƒ>$=N&'�j]h[ð¸.jòÓÿÄþFúò�{åãkö°q‚ÝXpkÈNŠòå5ˆ
ï§*…çÖÏÑÑ#ÁŸ';ÄšÞØÂjŽ„®¥a–rÃU¿~¾Û7”'ùÐ¤Ú_%­âévÑÁ­Mhj`ˆC¤né§Sül(•
	ã^|ÁoÇžäCÖ‹ùŠVX)†u=lRF¨nøRzÕYÄ¬b5fšÛN
 —<œðì½T^€|Â¤v¼½pW	—ûþçÐÅÞWã¬f\’T9×pzæþ…b„8[¡1è”K%)ÕCñMtG(,wdå ðwmñÒ:þ»ÿ7EÑ®Ã‘¸ž¾‘$HiêuÔcDŒæ<Æá3I¨›f9 6N@Ø"\#Ÿ·!]åªÏV(ÂÜšÇ�r§p¨ãY; ¼ä)ÛB°D �BÝ]�ŸïÜ
@@ -600,20 +601,19 @@ ppcboot header:
 warning: %B and %B differ in wchar_t sizewarning: %B and %B differ in whether code is compiled for DSBTwarning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may failwarning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may failwarning: %B: local symbol `%s' has no sectionwarning: %s exceeds section size
 warning: %s has a corrupt string table index - ignoringwarning: %s overlaps %s
 warning: %s section has zero sizewarning: .pdata section size (%ld) is not a multiple of %d
-warning: attempt to export undefined symbol `%s'warning: call to non-function symbol %s defined in %Bwarning: generating a shared library containing non-PIC codewarning: generating a shared library containing non-PID codewarning: relocation references a different segmentwarning: section '%s' is being made into a notewarning: section `%A' type changed to PROGBITSwarning: type and size of dynamic symbol `%s' are not definedwarning: unable to set size of %s section in %Bwarning: unable to update contents of %s section in %syou are not allowed to define %s in a scriptProject-Id-Version: bfd-2.22.90
+warning: attempt to export undefined symbol `%s'warning: call to non-function symbol %s defined in %Bwarning: generating a shared library containing non-PIC codewarning: generating a shared library containing non-PID codewarning: relocation references a different segmentwarning: section '%s' is being made into a notewarning: section `%A' type changed to PROGBITSwarning: type and size of dynamic symbol `%s' are not definedwarning: unable to set size of %s section in %Bwarning: unable to update contents of %s section in %syou are not allowed to define %s in a scriptProject-Id-Version: bfd-2.23.2
 Report-Msgid-Bugs-To: bug-binutils@gnu.org
 POT-Creation-Date: 2011-10-25 11:58+0100
-PO-Revision-Date: 2012-08-15 14:47+0700
+PO-Revision-Date: 2013-06-01 08:14+0700
 Last-Translator: Tráº§n Ngá»�c QuÃ¢n <vnwildman@gmail.com>
 Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>
 Language: vi
+X-Bugs: Report translation errors to the Language-Team address.
 MIME-Version: 1.0
 Content-Type: text/plain; charset=utf-8
 Content-Transfer-Encoding: 8bit
 Plural-Forms: nplurals=1; plural=0;
-X-Generator: LocFactoryEditor 1.8
-X-Poedit-Language: Vietnamese
-X-Poedit-Country: VIET NAM
+X-Generator: Poedit 1.5.5
 X-Poedit-SourceCharset: utf-8
 	Báº£ng Ä�á»‹a chá»‰ Xuáº¥t 			Báº£ng Ä�á»‹a chá»‰ Xuáº¥t 		%08lx
 	Báº£ng CÃ¡i Chá»‰ TÃªn 			Báº£ng Thá»© Tá»± 				[CÃ¡i_chá»‰_tÃªn/Thá»©_tá»±] Báº£ng	%08lx
@@ -630,7 +630,7 @@ Ä�á»‹nh vá»‹ láº¡i cÆ¡ báº£n táº­p tin P
       KÃ½ hiá»‡u Ä‘áº§u tiÃªn: %ld
       KÃ½ hiá»‡u cá»¥c bá»™: %ld
       Kiá»ƒu: %s
-      Ä‘áº¿m; kÃ½ hiá»‡u End+1: %ld
+      enum; kÃ½ hiá»‡u End+1: %ld
       cáº¥u trÃºc; kÃ½ hiá»‡u End+1: %ld
       káº¿t há»£p; kÃ½ hiá»‡u End+1: %ld
  máº£ng phiÃªn báº£n vá»‹ táº¯t: %u
@@ -685,7 +685,7 @@ Pháº§n Ä‘áº§u ppcboot:
         pc: 0x%08x
     cmd (lá»‡nh) *chÆ°a Ä‘Æ°á»£c cáº§m* %u
     Ä‘á»‹a chá»‰: 0x%08x, kÃ­ch thÆ°á»›c: %u
-    cá»�: %u, Ä‘á»‹a chá»‰: 0x%08x, Ä‘á»‹a chá»‰ pd: 0x%08x
+       cá»�: %u, Ä‘á»‹a chá»‰: 0x%08x, Ä‘á»‹a chá»‰ pd: 0x%08x
     tÃªn toÃ n cá»¥c: %.*s
     má»¥c lá»¥c liÃªn káº¿t: %u, thay tháº¿ insn: 0x%08x
     tÃªn: %.*s
@@ -695,44 +695,44 @@ Pháº§n Ä‘áº§u ppcboot:
     psect idx 2: %u, khoáº£ng bÃ¹ 2: 0x%08x %08x
     psect idx 3: %u, khoáº£ng bÃ¹ 3: 0x%08x %08x
     psect: %u, khoáº£ng bÃ¹: 0x%08x %08x
-    tÃªn thá»§ tá»¥c: %.*s
+     tÃªn thá»§ tá»¥c: %.*s
    %02u    %s%s %s
    (kiá»ƒu: %3u, kÃ­ch thÆ°á»›c: 4+%3u):    cmd (lá»‡nh) *chÆ°a Ä‘Æ°á»£c cáº§m* %u
-   sáº¯p hÃ ng  : 2**%u
+   sáº¯p hÃ ng   : 2**%u
    alloc (dÃ i)   : %u (0x%08x)
    alloc (dÃ i): %u (0x%08x)
    ascii ident   : %.*s
-   ident nhá»‹ phÃ¢n  : 0x%08x
+   ident nhá»‹ phÃ¢n: 0x%08x
    bitmap: 0x%08x (sá»‘ lÆ°á»£ng: %u):
    Ä‘á»‹a chá»‰ mÃ£: 0x%08x
-   ngÃ y dá»‹ch   : %.17s
-   trÃ¬nh dá»‹ch   : %.*s
+   ngÃ y dá»‹ch      : %.17s
+   trÃ¬nh dá»‹ch : %.*s
    mÃ£ Ä‘áº§y Ä‘á»§: %u
    tÃ¡c quyá»�n: %.*s
    declfile: len: %u, cá»�: %u, fileid: %u
    deflines %u
    tÃªn thá»±c thá»ƒ  : %.*s
-   Ä‘iá»ƒm vÃ o: 0x%08x
-   lá»—i nghiÃªm trá»�ng: %x
+      Ä‘iá»ƒm vÃ o: 0x%08x
+ lá»—i nghiÃªm trá»�ng: %x
    táº­p tin: %.*s
-   tÃªn táº­p tin   : %.*s
-   cÃ¡c cá»�         : 0x%08x   cá»�      : 0x%04x   cá»�: %d, ngÃ´n ngá»¯: %u, sá»‘ lá»›n: %u, sá»‘ nhá»�: %u
-   cÃ¡c cá»�: 0x%04x   formfeed
-   id khá»›p      : %x
-   khoáº£ng bÃ¹ áº£nh  : 0x%08x
-   tÃªn ngÃ´n ngá»¯: %.*s
+   tÃªn táº­p tin: %.*s
+   cÃ¡c cá»�        : 0x%08x      cá»�      : 0x%04x   cá»�: %d, ngÃ´n ngá»¯: %u, sá»‘ lá»›n: %u, sá»‘ nhá»�: %u
+  cÃ¡c cá»�: 0x%04x   formfeed
+   id khá»›p       : %x
+   khoáº£ng bÃ¹ áº£nh : 0x%08x
+    tÃªn ngÃ´n ngá»¯: %.*s
    má»¥c lá»¥c liÃªn káº¿t: %u, toÃ n cá»¥c: %.*s
    má»¥c lá»¥c liÃªn káº¿t: %u, tÃªn thá»§ tá»¥c: %.*s
    má»¥c lá»¥c liÃªn káº¿t: %u, thá»§ tá»¥c: %.*s
    má»¥c lá»¥c liÃªn káº¿t: %u, psect: %u, khoáº£ng bÃ¹: 0x%08x %08x
    kÃ­ch thÆ°á»›c báº£n ghi tá»‘i Ä‘a: %u
-   tÃªn mÃ´-Ä‘un    : %.*s
-    tÃªn mÃ´-Ä‘un    : %.*s
-    phiÃªn báº£n mÃ´Ä‘un : %.*s
-   tÃªn          : %.*s
-   tÃªn        : %.*s
-   tÃªn       : %.*s
-   sá»‘ lÆ°á»£ng cá»§a cáº·p liÃªn káº¿t "cond": %u
+   tÃªn mÃ´-Ä‘un     : %.*s
+    tÃªn mÃ´-Ä‘un: %.*s
+  phiÃªn báº£n mÃ´Ä‘un : %.*s
+    tÃªn          : %.*s
+   tÃªn         : %.*s
+    tÃªn       : %.*s
+   sá»‘ lÆ°á»£ng cá»§a cáº·p liÃªn káº¿t â€œcondâ€�: %u
    tÃªn Ä‘á»‘i tÆ°á»£ng : %.*s
    khoáº£ng bÃ¹: 0x%08x, val: 0x%08x
    proc descr : 0x%08x
@@ -748,16 +748,16 @@ Pháº§n Ä‘áº§u ppcboot:
    chá»¯ kÃ½: %.*s
    má»©c cáº¥u trÃºc: %u
    khoáº£ng bÃ¹ vÃ©c-tÆ¡ kÃ½ hiá»‡u: 0x%08x
-   khoáº£ng bÃ¹ symvec: 0x%08x
-   tiÃªu Ä‘á»�: %.*s
+ khoáº£ng bÃ¹ symvec: 0x%08x
+ tiÃªu Ä‘á»�: %.*s
    cá»� chuyá»ƒn Ä‘á»•i Ä‘á»‹a chá»‰: 0x%02x
-   chuyá»ƒn Ä‘á»•i "addr psect": %u
-   Ä‘á»‹a chá»‰ chuyá»ƒn Ä‘á»•i   : 0x%08x
+  chuyá»ƒn Ä‘á»•i â€œaddr psectâ€�: %u
+   Ä‘á»‹a chá»‰ chuyá»ƒn Ä‘á»•i : 0x%08x
    vÃ©c-tÆ¡      : 0x%08x
    máº·t náº¡ phiÃªn báº£n: 0x%08x
   %s (dÃ i=%u+%u):
   %s: 0x%v
-  %u: kÃ­ch thÆ°á»›c: %u, cá»�: 0x%02x, tÃªn: %.*s
+  %u:   cá»¡: %u,    cá»�: 0x%02x,  tÃªn: %.*s
   EEOM (dÃ i=%u):
   EGSD (dÃ i=%u):
   má»¥c EGSD %2u (kiá»ƒu: %u, dÃ i: %u):   EMH %u (dÃ i=%u):   ná»�n: 0x%08x %08x, kÃ­ch thÆ°á»›c: 0x%08x, prot: 0x%08x   base_va : 0x%08x
@@ -778,34 +778,34 @@ Pháº§n Ä‘áº§u ppcboot:
   shlextra  : %5u, permctx   : %5u
   shlstoff  : %5u, shrimgcnt : %5u
   kÃ­ch thÆ°á»›c : %u
- #: TÃªn Ä‘oáº¡n     TÃªn pháº§n     Ä�á»‹a chá»‰
+ #: TÃªn Ä‘oáº¡n         TÃªn pháº§n         Ä�á»‹a chá»‰
  %08x 0x%08x 64B<PhiÃªn báº£n EABI khÃ´ng Ä‘Æ°á»£c nháº­n ra> BPAGE: %u COM COMM Báº£o vá»‡ Thay Ä‘á»•i (%u má»¥c):
  Sá»­a chá»¯a tham chiáº¿u Ä‘á»‹a chá»‰ mÃ£:
- DEF EXE Ä�á»‹a chá»‰ Ä‘áº§u tiÃªn : 0x%08x 0x%08x
+ DEF EXEÄ�á»‹a chá»‰ Ä‘áº§u tiÃªn: 0x%08x 0x%08x
 Ä�á»‹a chá»‰ thá»© tÆ°: 0x%08x 0x%08x
  GBL DÃ£y mÃ£ ná»‘i láº¡i LIBSá»­a chá»¯ Tham chiáº¿u LiÃªn káº¿t cáº·p:
  NOMOD NORM OVR PIC QVAL RD REL Mili-mÃ£ phá»¥c há»“i thanh ghi Mili-mÃ£ lÆ°u thanh ghi SHRÄ�á»‹a chá»‰ thá»© hai: 0x%08x 0x%08x
 áº¢nh cÃ³ thá»ƒ chia sáº»:
-áº¢nh Ä‘Æ°á»£c chia sáº»  : 0x%08x 0x%08x
+áº¢nh Ä‘Æ°á»£c chia sáº»: 0x%08x 0x%08x
 Ä�á»‹a chá»‰ thá»© ba : 0x%08x 0x%08x
  UNI VEC VECEP WEAK WRT [64-bit kÃ©p] [BE8] [Ä�á»‹nh dáº¡ng trÃ´i FPA] [LE8] [Ä�á»‹nh dáº¡ng trÃ´i Maverick] [Ä�á»‹nh dáº¡ng trÃ´i VFP] [EABI phiÃªn báº£n 1] [EABI phiÃªn báº£n 2] [EABI phiÃªn báº£n 3] [EABI phiÃªn báº£n 4] [EABI phiÃªn báº£n 5] [abi khÃ´ng rÃµ] [abi=64] [abi=EABI32] [abi=EABI64] [abi=N32] [abi=O32] [abi=O64] [vá»‹ trÃ­ tuyá»‡t Ä‘á»‘i] [trÃ´i d] [dsp] [cÃ¡c kÃ½ hiá»‡u Ä‘á»™ng sá»­ dá»¥ng chá»‰ má»¥c Ä‘oáº¡n] [sá»­a quan há»‡ phá»¥ thuá»™c] [cÃ¡c trÃ´i Ä‘Æ°á»£c gá»­i qua trong thanh ghi trÃ´i] [cÃ¡c trÃ´i Ä‘Æ°á»£c gá»­i qua trong thanh ghi sá»‘ nguyÃªn] [trÃ´i g] [cÃ³ Ä‘iá»ƒm vÃ o] [áº£nh hÆ°á»Ÿng láº«n nhau Ä‘Ã£ báº­t] [chÆ°a sá»Ÿ khá»Ÿi cá»� áº£nh hÆ°á»Ÿng láº«n nhau] [khÃ´ng há»— trá»£ áº£nh hÆ°á»Ÿng láº«n nhau] [há»— trá»£ áº£nh hÆ°á»Ÿng láº«n nhau] [kÃ½ hiá»‡u Ã¡nh xáº¡ Ä‘á»©ng trÆ°á»›c] [bá»™ nhá»›=cháº¿ Ä‘á»™ khá»‘i] [bá»™ nhá»›=pháº³ng] [ABI má»›i] [chÆ°a Ä‘áº·t abi] [khÃ¡c pic] [khÃ´ng pháº£i 32bitmode] [ABI cÅ©] [áº£nh] [khÃ´ng phá»¥ thuá»™c vÃ o vá»‹ trÃ­] [táº­p tin cÃ³ thá»ƒ thá»±c hiá»‡n vÃ  Ä‘á»‹nh vá»‹ láº¡i] [FP pháº§n má»�m] [báº£ng kÃ½ hiá»‡u Ä‘Ã£ sáº¯p xáº¿p] [kÃ½ hiá»‡u cÃ³ má»™t tiá»�n tá»‘ _] [khÃ´ng rÃµ ISA] [báº£ng kÃ½ hiá»‡u chÆ°a sáº¯p xáº¿p] [v10 vÃ  v32] [v32] GST bá»‹ há»�ng
  kiá»ƒu phá»¥ CPU: %08lx
- kiá»ƒu CPU : %08lx (%s)
+ kiá»ƒu CPU  : %08lx (%s)
  gá»¡ lá»—i báº£ng mÃ´-Ä‘un : vbn: %u, kÃ­ch thÆ°á»›c: %u
   gá»¡ lá»—i báº£ng kÃ½ hiá»‡u  : vbn: %u, kÃ­ch thÆ°á»›c: %u (0x%x)
  kiá»ƒu táº­p tin : %08lx (%s)
  sá»­a thÃ´ng tin rva:  cá»�     : %08lx ( cÃ¡c cá»�: 0x%04x báº£ng kÃ½ hiá»‡u toÃ n cá»¥c: vbn: %u, báº£n ghi: %u
  ident: 0x%08x, tÃªn: %.*s
  ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u
- ident dá»±ng áº£nh: %.*s
- ident áº£nh      : %.*s
- tÃªn áº£nh       : %.*s
+ ident dá»±ng áº£nh   : %.*s
+ ident áº£nh        : %.*s
+ tÃªn áº£nh          : %.*s
  kiá»ƒu áº£nh: %u (%s) sá»‘ lÆ°á»£ng img V/R: %u, cÃ¡c kÃªnh nbr: %u, req pri: %08x%08x
- thá»�i gian liÃªn káº¿t        : %s
- cá»� liÃªn káº¿t: %08x: ident bá»™ liÃªn káº¿t     : %.*s
+ thá»�i gian liÃªn káº¿t: %s
+ cá»� liÃªn káº¿t: %08x: ident bá»™ liÃªn káº¿t: %.*s
  sá»­a chá»¯a tham chiáº¿u .Ä‘á»‹achá»‰ long-word (hai tá»«):
  sá»­a chá»¯a tÃ¡i Ä‘á»‹nh vá»‹ long-word (hai tá»«):
- ma thuáº­t : %08lx
+ ma thuáº­t  : %08lx
  sá»‘lá»›n: %u, sá»‘nhá»�: %u
  khoáº£ng bÃ¹ mÃ´-Ä‘un: 0x%08x, kÃ­ch thÆ°á»›c: 0x%08x, (%u psects)
  ncmds     : %08lx (%lu)
@@ -823,40 +823,40 @@ Pháº§n Ä‘áº§u ppcboot:
      		Ä�á»‹a chá»‰  DÃ i   DÃ i   32b exc  Quáº£n lÃ½   Dá»¯ liá»‡u
  vma:            Gá»£i Ã½    Giá»�      Tiáº¿p  DLL       Ä�áº§u
                  Báº£ng   NhÃ£n     DÃ¢y    TÃªn      Thunk
-#<mÃ£ lá»—i khÃ´ng há»£p lá»‡>%A cÃ³ pháº§n cáº£ hai Ä‘Æ°á»£c sáº¯p xáº¿p ["%A" trong %B] vÃ  chÆ°a sáº¯p xáº¿p ["%A" trong %B]%A cÃ³ pháº§n cáº£ hai Ä‘Æ°á»£c sáº¯p xáº¿p vÃ  chÆ°a sáº¯p xáº¿p%A:0x%v lrlive .brinfo (%u) khÃ¡c vá»›i phÃ¢n tÃ­ch (%u)
+#<mÃ£ lá»—i khÃ´ng há»£p lá»‡>%A cÃ³ pháº§n cáº£ hai Ä‘Æ°á»£c sáº¯p xáº¿p [â€�%Aâ€� trong %B] vÃ  chÆ°a sáº¯p xáº¿p [â€�%Aâ€� trong %B]%A cÃ³ pháº§n cáº£ hai Ä‘Æ°á»£c sáº¯p xáº¿p vÃ  chÆ°a sáº¯p xáº¿p%A:0x%v lrlive .brinfo (%u) khÃ¡c vá»›i phÃ¢n tÃ­ch (%u)
 %A:0x%v khÃ´ng tÃ¬m tháº¥y trong báº£ng hÃ m
-%B (%s): Ä�Ã£ lá»� Ä‘i cá»� cá»§a pháº§n %s (0x%x)%B vÃ  %B dÃ nh cho cáº¥u hÃ¬nh khÃ¡c nhau%B vÃ  %B dÃ nh cho lÃµi khÃ¡c nhau%B chá»©a mÃ£ CRIS v32, khÃ´ng tÆ°Æ¡ng thÃ­ch vá»›i cÃ¡c Ä‘á»‘i tÆ°á»£ng trÆ°á»›c%B chá»©a mÃ£ khÃ¡c CRIS v32, khÃ´ng tÆ°Æ¡ng thÃ­ch vá»›i cÃ¡c Ä‘á»‘i tÆ°á»£ng trÆ°á»›c%B cÃ³ cáº£ hai thuá»™c tÃ­nh hiá»‡n nay vÃ  cÅ© lÃ  Tag_MPextension_usekhÃ´ng cho phÃ©p %B xÃ¡c Ä‘á»‹nh %s%B pháº§n %A vÆ°á»£t quÃ¡ kÃ­ch cá»¡ nhÃ³m máº©u%B sá»‘ thá»© tá»± kÃ½ hiá»‡u %lu tham chiáº¿u Ä‘áº¿n pháº§n SHT_SYMTAB_SHNDX khÃ´ng tá»“n táº¡i%B(%A): lá»—i: gá»�i hÃ m chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a '%s'%B(%A): lá»—i ná»™i bá»™: Ä‘á»‹nh vá»‹ láº¡i nguy hiá»ƒm%B(%A): lá»—i ná»™i bá»™: lá»—i ngoáº¡i pháº¡m vi%B(%A): lá»—i ná»™i bá»™: lá»—i khÃ´ng rÃµ%B(%A): lá»—i ná»™i bá»™: lá»—i Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£%B(%A): báº£ng thuá»™c tÃ­nh sai%B(%A): tÃ¡i Ä‘á»‹nh vá»‹ PID khÃ´ng an toÃ n %s táº¡i 0x%08lx (dá»±a vÃ o %s trong %s)%B(%A): cáº£nh bÃ¡o: unaligned access to symbol '%s' trong vÃ¹ng dá»¯ liá»‡u nhá»�%B(%A+0x%B(%A+0x%lx): %s sá»± sá»­a chá»¯a cho chá»‰ dáº«n 0x%x khÃ´ng Ä‘Æ°á»£c há»— trá»£ trong má»™t liÃªn káº¿t khÃ´ng chia sáº»%B(%A+0x%lx): %s Ä‘á»‹nh vá»‹ láº¡i Ä‘á»‘i láº¡i pháº§n SEC_MERGE%B(%A+0x%lx): tÃ¡i Ä‘á»‹nh vá»‹ %s dá»±a trÃªn kÃ½ hiá»‡u bÃªn ngoÃ i "%s"%B(%A+0x%lx): %s Ä‘Æ°á»£c dÃ¹ng vá»›i kÃ½ hiá»‡u TLS %s%B(%A+0x%lx): %s Ä‘Æ°á»£c dÃ¹ng vá»›i kÃ½ hiá»‡u khÃ¡c TLS %s%B(%A+0x%lx): Chá»‰ cho phÃ©p chá»‰ dáº«n kiá»ƒu ADD (cá»™ng) hoáº·c SUB (trá»«) khi Ä‘á»‹nh vá»‹ láº¡i nhÃ³m ALU%B(%A+0x%lx): TrÃ n trong khi tÃ¡ch ra 0x%lx Ä‘á»ƒ Ä‘á»‹nh vá»‹ láº¡i nhÃ³m %s%B(%A+0x%lx): R_68K_TLS_LE32 khÃ´ng cho phÃ©p Ä‘á»‹nh vá»‹ láº¡i trong Ä‘á»‘i tÆ°á»£ng chia sáº»%B(%A+0x%lx): R_ARM_TLS_LE32 khÃ´ng cho phÃ©p Ä‘á»‹nh vá»‹ láº¡i trong Ä‘á»‘i tÆ°á»£ng dÃ¹ng chung%B(%A+0x%lx): Má»¥c nháº­p Stabs cÃ³ chá»‰ má»¥c chuá»—i khÃ´ng há»£p lá»‡.%B(%A+0x%lx): khÃ´ng thá»ƒ phÃ¡t ra sá»± sá»­a chá»¯a cho`%s'  trong pháº§n chá»‰ Ä‘á»�c%B(%A+0x%lx): khÃ´ng thá»ƒ xá»­ lÃ½ %s cho %s%B(%A+0x%lx): khÃ´ng thá»ƒ tá»›i %s, hÃ£y biÃªn dá»‹ch láº¡i vá»›i "-ffunction-sections"%B(%A+0x%lx): khÃ´ng thá»ƒ giáº£i mÃ£ chá»‰ dáº«n cho Ä‘á»‹nh vá»‹ láº¡i XTENSA_ASM_SIMPLIFY; cÃ³ thá»ƒ sai khá»›p cáº¥u hÃ¬nh%B(%A+0x%lx): khÃ´ng thá»ƒ giáº£i mÃ£ chá»‰ dáº«n; cÃ³ thá»ƒ sai khá»›p cáº¥u hÃ¬nh%B(%A+0x%lx): chá»‰ dáº«n khÃ´ng há»£p lá»‡ cho Ä‘á»‹nh vá»‹ láº¡i TLS %s%B(%A+0x%lx): Ä‘á»‹nh vá»‹ láº¡i Ä‘á»‘i vá»›i "%s": lá»—i %d%B(%A+0x%lx): khoáº£ng bÃ¹ Ä‘á»‹nh vá»‹ láº¡i á»Ÿ ngoáº¡i pháº¡m vi (kÃ­ch cá»¡=0x%x)%B(%A+0x%lx): sá»­a chá»¯a báº¥t thÆ°á»�ng cho Ä‘á»‹nh vá»‹ láº¡i %s%B(%A+0x%lx): Ä‘á»‹nh vá»‹ láº¡i khÃ´ng thá»ƒ giáº£i quyáº¿t %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u "%s"%B(%A+0x%lx): Ä‘á»‹nh vá»‹ láº¡i khÃ´ng thá»ƒ giáº£i quyáº¿t Ä‘á»‘i vá»›i kÃ½ hiá»‡u "%s"%B(%A+0x%lx):chá»‰ lá»‡nh ARM khÃ´ng mong Ä‘á»£i '0x%x' trong 'TLS trampoline'%B(%A+0x%lx):khÃ´ng mong Ä‘á»£i chá»‰ lá»‡nh ARM '0x%x' Ä‘Æ°á»£c tham chiáº¿u bá»Ÿi TLS_GOTDESC%B(%A+0x%lx):chá»‰ lá»‡nh Thumb khÃ´ng mong Ä‘á»£i '0x%x' trong 'TLS trampoline'%B(%A+0x%lx):khÃ´ng mong Ä‘á»£i chá»‰ lá»‡nh Thumb '0x%x' Ä‘Æ°á»£c tham chiáº¿u bá»Ÿi TLS_GOTDESC%B(%A+0x%v): gá»�i pháº§n khÃ¡c mÃ£ %B(%A), chÆ°a phÃ¢n tÃ­ch hoÃ n toÃ n
+%B (%s): Ä�Ã£ lá»� Ä‘i cá»� cá»§a pháº§n %s (0x%x)%B vÃ  %B dÃ nh cho cáº¥u hÃ¬nh khÃ¡c nhau%B vÃ  %B dÃ nh cho lÃµi khÃ¡c nhau%B chá»©a mÃ£ CRIS v32, khÃ´ng tÆ°Æ¡ng thÃ­ch vá»›i cÃ¡c Ä‘á»‘i tÆ°á»£ng trÆ°á»›c%B chá»©a mÃ£ khÃ¡c CRIS v32, khÃ´ng tÆ°Æ¡ng thÃ­ch vá»›i cÃ¡c Ä‘á»‘i tÆ°á»£ng trÆ°á»›c%B cÃ³ cáº£ hai thuá»™c tÃ­nh hiá»‡n nay vÃ  cÅ© lÃ  Tag_MPextension_usekhÃ´ng cho phÃ©p %B xÃ¡c Ä‘á»‹nh %s%B pháº§n %A vÆ°á»£t quÃ¡ kÃ­ch cá»¡ nhÃ³m máº©u%B sá»‘ thá»© tá»± kÃ½ hiá»‡u %lu tham chiáº¿u Ä‘áº¿n pháº§n SHT_SYMTAB_SHNDX khÃ´ng tá»“n táº¡i%B(%A): lá»—i: gá»�i hÃ m chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a â€œ%sâ€�%B(%A): lá»—i ná»™i bá»™: Ä‘á»‹nh vá»‹ láº¡i nguy hiá»ƒm%B(%A): lá»—i ná»™i bá»™: lá»—i ngoáº¡i pháº¡m vi%B(%A): lá»—i ná»™i bá»™: lá»—i khÃ´ng rÃµ%B(%A): lá»—i ná»™i bá»™: lá»—i Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£%B(%A): báº£ng thuá»™c tÃ­nh sai%B(%A): tÃ¡i Ä‘á»‹nh vá»‹ PID khÃ´ng an toÃ n %s táº¡i 0x%08lx (dá»±a vÃ o %s trong %s)%B(%A): cáº£nh bÃ¡o: unaligned access to symbol â€œ%sâ€� trong vÃ¹ng dá»¯ liá»‡u nhá»�%B(%A+0x%B(%A+0x%lx): %s sá»± sá»­a chá»¯a cho chá»‰ dáº«n 0x%x khÃ´ng Ä‘Æ°á»£c há»— trá»£ trong má»™t liÃªn káº¿t khÃ´ng chia sáº»%B(%A+0x%lx): %s Ä‘á»‹nh vá»‹ láº¡i Ä‘á»‘i láº¡i pháº§n SEC_MERGE%B(%A+0x%lx): tÃ¡i Ä‘á»‹nh vá»‹ %s dá»±a trÃªn kÃ½ hiá»‡u bÃªn ngoÃ i â€œ%sâ€�%B(%A+0x%lx): %s Ä‘Æ°á»£c dÃ¹ng vá»›i kÃ½ hiá»‡u TLS %s%B(%A+0x%lx): %s Ä‘Æ°á»£c dÃ¹ng vá»›i kÃ½ hiá»‡u khÃ¡c TLS %s%B(%A+0x%lx): Chá»‰ cho phÃ©p chá»‰ dáº«n kiá»ƒu ADD (cá»™ng) hoáº·c SUB (trá»«) khi Ä‘á»‹nh vá»‹ láº¡i nhÃ³m ALU%B(%A+0x%lx): TrÃ n trong khi tÃ¡ch ra 0x%lx Ä‘á»ƒ Ä‘á»‹nh vá»‹ láº¡i nhÃ³m %s%B(%A+0x%lx): R_68K_TLS_LE32 khÃ´ng cho phÃ©p Ä‘á»‹nh vá»‹ láº¡i trong Ä‘á»‘i tÆ°á»£ng chia sáº»%B(%A+0x%lx): R_ARM_TLS_LE32 khÃ´ng cho phÃ©p Ä‘á»‹nh vá»‹ láº¡i trong Ä‘á»‘i tÆ°á»£ng dÃ¹ng chung%B(%A+0x%lx): Má»¥c nháº­p Stabs cÃ³ chá»‰ má»¥c chuá»—i khÃ´ng há»£p lá»‡.%B(%A+0x%lx): khÃ´ng thá»ƒ phÃ¡t ra sá»± sá»­a chá»¯a choâ€œ%sâ€�  trong pháº§n chá»‰ Ä‘á»�c%B(%A+0x%lx): khÃ´ng thá»ƒ xá»­ lÃ½ %s cho %s%B(%A+0x%lx): khÃ´ng thá»ƒ tá»›i %s, hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-ffunction-sectionsâ€�%B(%A+0x%lx): khÃ´ng thá»ƒ giáº£i mÃ£ chá»‰ dáº«n cho Ä‘á»‹nh vá»‹ láº¡i XTENSA_ASM_SIMPLIFY; cÃ³ thá»ƒ sai khá»›p cáº¥u hÃ¬nh%B(%A+0x%lx): khÃ´ng thá»ƒ giáº£i mÃ£ chá»‰ dáº«n; cÃ³ thá»ƒ sai khá»›p cáº¥u hÃ¬nh%B(%A+0x%lx): chá»‰ dáº«n khÃ´ng há»£p lá»‡ cho Ä‘á»‹nh vá»‹ láº¡i TLS %s%B(%A+0x%lx): Ä‘á»‹nh vá»‹ láº¡i Ä‘á»‘i vá»›i â€œ%sâ€�: lá»—i %d%B(%A+0x%lx): khoáº£ng bÃ¹ Ä‘á»‹nh vá»‹ láº¡i á»Ÿ ngoáº¡i pháº¡m vi (kÃ­ch cá»¡=0x%x)%B(%A+0x%lx): sá»­a chá»¯a báº¥t thÆ°á»�ng cho Ä‘á»‹nh vá»‹ láº¡i %s%B(%A+0x%lx): Ä‘á»‹nh vá»‹ láº¡i khÃ´ng thá»ƒ giáº£i quyáº¿t %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u â€œ%sâ€�%B(%A+0x%lx): Ä‘á»‹nh vá»‹ láº¡i khÃ´ng thá»ƒ giáº£i quyáº¿t Ä‘á»‘i vá»›i kÃ½ hiá»‡u â€œ%sâ€�%B(%A+0x%lx):chá»‰ lá»‡nh ARM khÃ´ng mong Ä‘á»£i â€œ0x%xâ€� trong â€œTLS trampolineâ€�%B(%A+0x%lx):khÃ´ng mong Ä‘á»£i chá»‰ lá»‡nh ARM â€œ0x%xâ€� Ä‘Æ°á»£c tham chiáº¿u bá»Ÿi TLS_GOTDESC%B(%A+0x%lx):chá»‰ lá»‡nh Thumb khÃ´ng mong Ä‘á»£i â€œ0x%xâ€� trong â€œTLS trampolineâ€�%B(%A+0x%lx):khÃ´ng mong Ä‘á»£i chá»‰ lá»‡nh Thumb â€œ0x%xâ€� Ä‘Æ°á»£c tham chiáº¿u bá»Ÿi TLS_GOTDESC%B(%A+0x%v): gá»�i pháº§n khÃ¡c mÃ£ %B(%A), chÆ°a phÃ¢n tÃ­ch hoÃ n toÃ n
 %B(%s): cáº£nh bÃ¡o: chÆ°a báº­t dÃ¹ng áº£nh hÆ°á»Ÿng láº«n nhau.
   láº§n xuáº¥t hiá»‡n Ä‘áº§u tiÃªn: %B: gá»�i ARM tá»›i Thumb%B(%s): cáº£nh bÃ¡o: chÆ°a báº­t dÃ¹ng áº£nh hÆ°á»Ÿng láº«n nhau.
   láº§n xuáº¥t hiá»‡n Ä‘áº§u: %B: thumb gá»�i tá»›i ARM%B(%s): cáº£nh bÃ¡o: chÆ°a báº­t dÃ¹ng áº£nh hÆ°á»Ÿng láº«n nhau.
   láº§n xuáº¥t hiá»‡n Ä‘áº§u tiÃªn: %B: gá»�i arm tá»›i thumb%B(%s): cáº£nh bÃ¡o: chÆ°a báº­t dÃ¹ng áº£nh hÆ°á»Ÿng láº«n nhau.
   láº§n xuáº¥t hiá»‡n Ä‘áº§u: %B: thumb gá»�i tá»›i arm%B(%s): cáº£nh bÃ¡o: chÆ°a báº­t dÃ¹ng áº£nh hÆ°á»Ÿng láº«n nhau.
   láº§n xuáº¥t hiá»‡n Ä‘áº§u tiÃªn: %B: gá»�i thumb tá»›i arm
-  coi nhÆ° liÃªn káº¿t láº¡i vá»›i "--support-old-code" Ä‘Æ°á»£c báº­t%B(%s+0x%lx): khÃ´ng thá»ƒ giáº£i quyáº¿t Ä‘á»‹nh vá»‹ láº¡i %s so vá»›i kÃ½ hiá»‡u "%s"%B, pháº§n %A:
-  khÃ´ng Ä‘Æ°á»£c sá»­ dá»¥ng sá»± Ä‘á»‹nh vá»‹ láº¡i %s trong má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; bÃ¬nh thÆ°á»�ng do khai bÃ¡o khÃ´ng rÃµ, hÃ£y biÃªn dá»‹ch láº¡i vá»›i "-fPIC"%B, pháº§n %A:
-  khÃ´ng Ä‘Æ°á»£c sá»­ dá»¥ng sá»± Ä‘á»‹nh vá»‹ láº¡i %s trong má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; hÃ£y biÃªn dá»‹ch láº¡i vá»›i "-fPIC"%B, pháº§n %A:
-  Ä‘á»‘i tÆ°á»£ng tÆ°Æ¡ng thÃ­ch v10/v32 %s khÃ´ng Ä‘Æ°á»£c chá»©a Ä‘á»‹nh vá»‹ láº¡i PIC%B, pháº§n %A: KhÃ´ng cÃ³ PLT cho Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u "%s"%B, pháº§n %A: KhÃ´ng cÃ³ PLT hoáº·c GOT cho Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u "%s"%B: pháº§n %A: sá»± Ä‘á»‹nh vá»‹ láº¡i $s cÃ³ má»™t thÃ m chiáº¿u chÆ°a xÃ¡c Ä‘á»‹nh Ä‘áº¿n "%s", cÃ³ thá»ƒ khai bÃ¡o khÃ´ng rÃµ ?%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡i %s khÃ´ng Ä‘Æ°á»£c phÃ©p cho kÃ½ hiá»‡u toÃ n cá»¥c: "%s"%B, pháº§n %A: sá»± Ä‘á»‹nh vá»‹ láº¡i %s khÃ´ng Ä‘Æ°á»£c phÃ©p cho kÃ½ hiá»‡u "%s" mÃ  Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh bÃªn ngoÃ i chÆ°Æ¡ng trÃ¬nh, cÃ³ thá»ƒ khai bÃ¡o khÃ´ng rÃµ ?%B, pháº§n %A: Ä‘Ã£ táº¡o Ä‘á»‹nh vá»‹ láº¡i %s khÃ´ng cÃ³ GOT%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡i %s vá»›i sá»‘ háº¡ng khÃ¡c khÃ´ng %d Ä‘á»‘i vá»›i kÃ½ hiá»‡u cá»¥c bá»™%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡i %s vá»›i sá»‘ háº¡ng khÃ¡c khÃ´ng %d Ä‘á»‘i vá»›i kÃ½ hiá»‡u "%s"%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡i khÃ´ng thá»ƒ giáº£i quyáº¿t %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u "%s"%B, pháº§n "%A", tá»›i kÃ½ hiá»‡u "%s":
-  khÃ´ng Ä‘Æ°á»£c sá»­ dá»¥ng sá»± Ä‘á»‹nh vá»‹ láº¡i %s trong má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; hÃ£y biÃªn dá»‹ch láº¡i vá»›i "-fPIC"%B: Ä‘á»‹nh vá»‹ láº¡i !samegp so vá»›i kÃ½ hiá»‡u khÃ´ng cÃ³ .prologue: %s%B: %A+0x%lx: Nháº£y trá»±c tiáº¿p giá»¯a cÃ¡c cháº¿ Ä‘á»™ ISA lÃ  khÃ´ng Ä‘Æ°á»£c phÃ©p; cÃ¢n nháº¯c viá»‡c dá»‹ch láº¡i vá»›i liÃªn káº¿t mÃ³c ná»‘i Ä‘Æ°á»£c báº­t.%B: %s: phiÃªn báº£n cáº§n thiáº¿t mÃ  khÃ´ng há»£p lá»‡ %d%B: %s: phiÃªn báº£n khÃ´ng há»£p lá»‡ %u (tá»‘i Ä‘a %d)%B; "%s" Ä‘Æ°á»£c truy cáº­p nhÆ° lÃ  kÃ½ hiá»‡u cáº£ hai kiá»ƒu bÃ¬nh thÆ°á»�ng vÃ  máº¡ch cá»¥c bá»™%B: Ä‘oáº¡n phá»¥ .got vÆ°á»£t quÃ¡ 64 K (kÃ­ch cá»¡ %d)%B: .opd khÃ´ng pháº£i lÃ  má»™t máº£ng chÃ­nh quy cÃ¡c má»¥c nháº­p opd%B: khÃ´ng cho phÃ©p pháº§n ".preinit_array" trong DSO%B: 0x%lx: lá»—i náº·ng: R_SH_PSHA Ä‘á»‹nh vá»‹ láº¡i %d khÃ´ng náº±m trong pháº¡m vi -32..32%B: 0x%lx: lá»—i náº·ng: R_SH_PSHL Ä‘á»‹nh vá»‹ láº¡i %d khÃ´ng náº±m trong pháº¡m vi -32..32%B: 0x%lx: lá»—i náº·ng: trÃ n Ä‘á»‹nh vá»‹ láº¡i trong khi giáº£m nháº¹%B: 0x%lx: lá»—i náº·ng: Ä‘á»‹nh vá»‹ láº¡i %s chÆ°a sáº¯p hÃ ng 0x%lx%B: 0x%lx: lá»—i náº·ng: cÃ³ Ä‘Ã­ch nhÃ¡nh chÆ°a sáº¯p hÃ ng cho Ä‘á»‹nh vá»‹ láº¡i há»— trá»£ giáº£m nháº¹%B: 0x%lx: cáº£nh bÃ¡o: R_SH_USES chá»‰ tá»›i má»™t chá»‰ dáº«n khÃ´ng nháº­n ra 0x%x%B: 0x%lx: cáº£nh bÃ¡o: khoáº£ng bÃ¹ náº¡p R_SH_USES sai%B: 0x%lx: cáº£nh bÃ¡o: khoáº£ng bÃ¹ R_SH_USES sai%B: 0x%lx: cáº£nh bÃ¡o: Ä‘áº¿m sai%B: 0x%lx: cáº£nh bÃ¡o: khÃ´ng tÃ¬m tháº¥y Ä‘á»‹nh vá»‹ láº¡i COUNT (Ä‘áº¿m) mong Ä‘á»£i%B: 0x%lx: cáº£nh bÃ¡o: khÃ´ng tÃ¬m tháº¥y Ä‘á»‹nh vá»‹ láº¡i mong Ä‘á»£i%B: 0x%lx: cáº£nh bÃ¡o: kÃ½ hiá»‡u náº±m trong pháº§n báº¥t thÆ°á»�ng%B: Ä‘á»‹nh vá»‹ láº¡i @gprel so vá»›i kÃ½ hiá»‡u Ä‘á»™ng "%s"%B: nhÃ¡nh @internal (ná»™i bá»™) tá»›i kÃ½ hiá»‡u Ä‘á»™ng %s%B: Ä‘á»‹nh vá»‹ láº¡i @pcrel so vá»›i kÃ½ hiá»‡u Ä‘á»™ng %s%B: ABI khÃ´ng tÆ°Æ¡ng thÃ­ch vá»›i cÃ¡i cá»§a báº£n mÃ´ phá»�ng Ä‘Ã£ chá»�n%B: sai khá»›p ABI: Ä‘ang liÃªn káº¿t mÃ´-Ä‘un %s vá»›i cÃ¡c mÃ´-Ä‘un %s trÆ°á»›c%B: ASE khÃ´ng khá»›p: liÃªn káº¿t %s mÃ´-Ä‘un vá»›i mÃ´-Ä‘un %s trÆ°á»›c Ä‘Ã³%B: sai khá»›p kiáº¿n trÃºc vá»›i mÃ´-Ä‘un khÃ¡c%B: hÃ¬nh áº£nh BE8 chá»‰ Ä‘Ãºng trong cháº¿ Ä‘á»™ vá»� cuá»‘i lá»›n.%B: Ä�Ã£ nháº­p má»¥c ghi Ä‘á»‹nh vá»‹ láº¡i sai: %d%B: CALL15 Ä‘á»‹nh vá»‹ láº¡i táº¡i 0x%lx khÃ´ng pháº£i so vá»›i kÃ½ hiá»‡u toÃ n cá»¥c%B: Ä‘á»‹nh vá»‹ láº¡i CALL16 á»Ÿ 0x%lx khÃ´ng pháº£i so vá»›i kÃ½ hiá»‡u toÃ n cá»¥c%B: KhÃ´ng tÃ¬m tháº¥y Ä‘á»‹nh vá»‹ láº¡i LO16 tÆ°Æ¡ng á»©ng so vá»›i "%s" cho %s á»Ÿ 0x%lx trong pháº§n "%A"%B: KhÃ´ng thá»ƒ giáº£m nháº¹ br (%s) tá»›i "%s" táº¡i 0x%lx trong pháº§n "%A" vá»›i kÃ­ch cá»¡ 0x%lx (> 0x1000000).%B: KhÃ´ng thá»ƒ giáº£m nháº¹ br á»Ÿ 0x%lx trong pháº§n "%A". HÃ£y dÃ¹ng brl hoáº·c nhÃ¡nh giÃ¡n tiáº¿p.%B: KhÃ´ng thá»ƒ xá»­ lÃ½ táº­p tin nhá»‹ phÃ¢n Alpha chÆ°a Ä‘Æ°á»£c nÃ©n.
-	HÃ£y dÃ¹ng cÃ¡c cá»� biÃªn dá»‹ch, hoáº·c objZ, Ä‘á»ƒ táº¡o táº­p tin nhá»‹ phÃ¢n chÆ°a Ä‘Æ°á»£c nÃ©n.%B: KhÃ´ng thá»ƒ liÃªn káº¿t hai Ä‘á»‘i tÆ°á»£ng %s vÃ  %s vá»›i nhau.%B: TrÆ°á»�ng kÃ­ch cá»¡ bá»‹ há»�ng trong pháº§n Ä‘áº§u cá»§a pháº§n nhÃ³m: 0x%lx%B: Lá»—i thÃªm kÃ½ hiá»‡u Ä‘Ã£ Ä‘áº·t tÃªn láº¡i %s%B: TÃ¡i Ä‘á»‹nh vá»‹ bá»™ mÃ´ táº£ hÃ m vá»›i sá»‘ háº¡ng khÃ¡c-khÃ´ng%B: trÃ n GOT: sá»‘ cÃ¡c sá»± Ä‘á»‹nh vá»‹ láº¡i vá»›i hiá»‡u 8-bit hay 16-bit  > %d%B: trÃ n GOT: sá»‘ cÃ¡c sá»± Ä‘á»‹nh vá»‹ láº¡i vá»›i hiá»‡u 8-bit  > %d%B: Ä‘á»‹nh vá»‹ láº¡i GOT á»Ÿ 0x%lx khÃ´ng mong Ä‘á»£i trong táº­p tin cÃ³ kháº£ nÄƒng thá»±c hiá»‡n%B: chá»‰ thá»‹ IMPORT AS (nháº­p dáº¡ng) cho %s cÅ©ng áº©n chá»‰ thá»‹ IMPORT AS trÆ°á»›c%B: Bá»™ chá»‰ dáº«n khÃ´ng tÆ°Æ¡ng á»©ng vá»›i cÃ¡c mÃ´-Ä‘un trÆ°á»›c%B: Ä�Ã£ nháº­p kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng há»£p lá»‡: %d%B: PhÃ¡t hiá»‡n sá»± Ä‘á»‹nh vá»‹ láº¡i dáº¡ng sai cho pháº§n %s%B: KhÃ´ng Ä‘á»§ sá»©c chá»©a cho cÃ¡c pháº§n Ä‘áº§u cá»§a chÆ°Æ¡ng trÃ¬nh: hÃ£y thá»­ liÃªn káº¿t vá»›i "-N"%B: Chá»‰ cÃ¡c thanh ghi %%g[2367] cÃ³ thá»ƒ Ä‘Æ°á»£c tuyÃªn bá»‘ dÃ¹ng STT_REGISTER%B: Kiá»ƒu mÃ¡y Ä‘Æ°á»£c nháº­n ra cÃ²n khÃ´ng Ä‘Æ°á»£c quáº£n lÃ½ (0x%x) trong kho lÆ°u Ä�á»‹nh dáº¡ng ThÆ° viá»‡n Nháº­p%B: Ä�á»‹nh vá»‹ láº¡i %s (%d) hiá»‡n thá»�i khÃ´ng Ä‘Æ°á»£c há»— trá»£.
-%B: Ä�á»‹nh vá»‹ láº¡i trong ELF chung (EM: %d)%B: tÃ¡i Ä‘á»‹nh vá»‹ SB-liÃªn-quan nhÆ°ng __c6xabi_DSBT_BASE láº¡i chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a%B: mÃ£ thá»±c hiá»‡n cá»¥c bá»™ TLS khÃ´ng thá»ƒ Ä‘Æ°á»£c liÃªn káº¿t vÃ o Ä‘á»‘i tÆ°á»£ng chia sáº»%B: khÃ´ng thÃ nh cÃ´ng chuyá»ƒn tiáº¿p TLS tá»« %s sang %s Ä‘á»‘i vá»›i "%s" á»Ÿ 0x%lx trong pháº§n "%A"%B: Pháº§n thá»© nháº¥t trong Ä‘oáº¡n PT_DYNAMIC khÃ´ng pháº£i lÃ  pháº§n .dynamic%B: Ä�Ã­ch (%s) cá»§a má»™t Ä‘á»‹nh vá»‹ láº¡i %s náº±m trong pháº§n sai (%A)%B: QuÃ¡ nhiá»�u pháº§n: %d (â‰¥ %d)%B: KhÃ´ng thá»ƒ sáº¯p xáº¿p cÃ¡c sá»± Ä‘á»‹nh vá»‹ láº¡i: chÃºng cÃ³ kÃ­ch cá»¡ khÃ¡c nhau%B: KhÃ´ng thá»ƒ sáº¯p xáº¿p cÃ¡c sá»± Ä‘á»‹nh vá»‹ láº¡i: chÃºng cÃ³ kÃ­ch cá»¡ khÃ´ng rÃµ%B: Kiá»ƒu nháº­p khÃ´ng Ä‘Æ°á»£c quáº£n lÃ½; %x%B: KhÃ´ng rÃµ thuá»™c tÃ­nh Ä‘á»‘i tÆ°á»£ng EABI %d%B: Kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng rÃµ %d
+  coi nhÆ° liÃªn káº¿t láº¡i vá»›i â€œ--support-old-codeâ€� Ä‘Æ°á»£c báº­t%B(%s+0x%lx): khÃ´ng thá»ƒ giáº£i quyáº¿t Ä‘á»‹nh vá»‹ láº¡i %s so vá»›i kÃ½ hiá»‡u â€œ%sâ€�%B, pháº§n %A:
+  khÃ´ng Ä‘Æ°á»£c sá»­ dá»¥ng sá»± Ä‘á»‹nh vá»‹ láº¡i %s trong má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; bÃ¬nh thÆ°á»�ng do khai bÃ¡o khÃ´ng rÃµ, hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€�%B, pháº§n %A:
+  khÃ´ng Ä‘Æ°á»£c sá»­ dá»¥ng sá»± Ä‘á»‹nh vá»‹ láº¡i %s trong má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€�%B, pháº§n %A:
+  Ä‘á»‘i tÆ°á»£ng tÆ°Æ¡ng thÃ­ch v10/v32 %s khÃ´ng Ä‘Æ°á»£c chá»©a Ä‘á»‹nh vá»‹ láº¡i PIC%B, pháº§n %A: KhÃ´ng cÃ³ PLT cho Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u â€œ%sâ€�%B, pháº§n %A: KhÃ´ng cÃ³ PLT hoáº·c GOT cho Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u â€œ%sâ€�%B: pháº§n %A: sá»± Ä‘á»‹nh vá»‹ láº¡i $s cÃ³ má»™t thÃ m chiáº¿u chÆ°a xÃ¡c Ä‘á»‹nh Ä‘áº¿n â€œ%sâ€�, cÃ³ thá»ƒ khai bÃ¡o khÃ´ng rÃµ ?%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡i %s khÃ´ng Ä‘Æ°á»£c phÃ©p cho kÃ½ hiá»‡u toÃ n cá»¥c: â€œ%sâ€�%B, pháº§n %A: sá»± Ä‘á»‹nh vá»‹ láº¡i %s khÃ´ng Ä‘Æ°á»£c phÃ©p cho kÃ½ hiá»‡u â€œ%sâ€� mÃ  Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh bÃªn ngoÃ i chÆ°Æ¡ng trÃ¬nh, cÃ³ thá»ƒ khai bÃ¡o khÃ´ng rÃµ ?%B, pháº§n %A: Ä‘Ã£ táº¡o Ä‘á»‹nh vá»‹ láº¡i %s khÃ´ng cÃ³ GOT%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡i %s vá»›i sá»‘ háº¡ng khÃ¡c khÃ´ng %d Ä‘á»‘i vá»›i kÃ½ hiá»‡u cá»¥c bá»™%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡i %s vá»›i sá»‘ háº¡ng khÃ¡c khÃ´ng %d Ä‘á»‘i vá»›i kÃ½ hiá»‡u â€œ%sâ€�%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡i khÃ´ng thá»ƒ giáº£i quyáº¿t %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u â€œ%sâ€�%B, pháº§n â€œ%Aâ€�, tá»›i kÃ½ hiá»‡u â€œ%sâ€�:
+  khÃ´ng Ä‘Æ°á»£c sá»­ dá»¥ng sá»± Ä‘á»‹nh vá»‹ láº¡i %s trong má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€�%B: Ä‘á»‹nh vá»‹ láº¡i !samegp so vá»›i kÃ½ hiá»‡u khÃ´ng cÃ³ .prologue: %s%B: %A+0x%lx: Nháº£y trá»±c tiáº¿p giá»¯a cÃ¡c cháº¿ Ä‘á»™ ISA lÃ  khÃ´ng Ä‘Æ°á»£c phÃ©p; cÃ¢n nháº¯c viá»‡c dá»‹ch láº¡i vá»›i liÃªn káº¿t mÃ³c ná»‘i Ä‘Æ°á»£c báº­t.%B: %s: phiÃªn báº£n cáº§n thiáº¿t mÃ  khÃ´ng há»£p lá»‡ %d%B: %s: phiÃªn báº£n khÃ´ng há»£p lá»‡ %u (tá»‘i Ä‘a %d)%B; â€œ%sâ€� Ä‘Æ°á»£c truy cáº­p nhÆ° lÃ  kÃ½ hiá»‡u cáº£ hai kiá»ƒu bÃ¬nh thÆ°á»�ng vÃ  máº¡ch cá»¥c bá»™%B: Ä‘oáº¡n phá»¥ .got vÆ°á»£t quÃ¡ 64 K (kÃ­ch cá»¡ %d)%B: .opd khÃ´ng pháº£i lÃ  má»™t máº£ng chÃ­nh quy cÃ¡c má»¥c nháº­p opd%B: khÃ´ng cho phÃ©p pháº§n â€œ.preinit_arrayâ€� trong DSO%B: 0x%lx: lá»—i náº·ng: R_SH_PSHA Ä‘á»‹nh vá»‹ láº¡i %d khÃ´ng náº±m trong pháº¡m vi -32..32%B: 0x%lx: lá»—i náº·ng: R_SH_PSHL Ä‘á»‹nh vá»‹ láº¡i %d khÃ´ng náº±m trong pháº¡m vi -32..32%B: 0x%lx: lá»—i náº·ng: trÃ n Ä‘á»‹nh vá»‹ láº¡i trong khi giáº£m nháº¹%B: 0x%lx: lá»—i náº·ng: Ä‘á»‹nh vá»‹ láº¡i %s chÆ°a sáº¯p hÃ ng 0x%lx%B: 0x%lx: lá»—i náº·ng: cÃ³ Ä‘Ã­ch nhÃ¡nh chÆ°a sáº¯p hÃ ng cho Ä‘á»‹nh vá»‹ láº¡i há»— trá»£ giáº£m nháº¹%B: 0x%lx: cáº£nh bÃ¡o: R_SH_USES chá»‰ tá»›i má»™t chá»‰ dáº«n khÃ´ng nháº­n ra 0x%x%B: 0x%lx: cáº£nh bÃ¡o: khoáº£ng bÃ¹ náº¡p R_SH_USES sai%B: 0x%lx: cáº£nh bÃ¡o: khoáº£ng bÃ¹ R_SH_USES sai%B: 0x%lx: cáº£nh bÃ¡o: Ä‘áº¿m sai%B: 0x%lx: cáº£nh bÃ¡o: khÃ´ng tÃ¬m tháº¥y Ä‘á»‹nh vá»‹ láº¡i COUNT (Ä‘áº¿m) mong Ä‘á»£i%B: 0x%lx: cáº£nh bÃ¡o: khÃ´ng tÃ¬m tháº¥y Ä‘á»‹nh vá»‹ láº¡i mong Ä‘á»£i%B: 0x%lx: cáº£nh bÃ¡o: kÃ½ hiá»‡u náº±m trong pháº§n báº¥t thÆ°á»�ng%B: Ä‘á»‹nh vá»‹ láº¡i @gprel so vá»›i kÃ½ hiá»‡u Ä‘á»™ng â€œ%sâ€�%B: nhÃ¡nh @internal (ná»™i bá»™) tá»›i kÃ½ hiá»‡u Ä‘á»™ng %s%B: Ä‘á»‹nh vá»‹ láº¡i @pcrel so vá»›i kÃ½ hiá»‡u Ä‘á»™ng %s%B: ABI khÃ´ng tÆ°Æ¡ng thÃ­ch vá»›i cÃ¡i cá»§a báº£n mÃ´ phá»�ng Ä‘Ã£ chá»�n%B: sai khá»›p ABI: Ä‘ang liÃªn káº¿t mÃ´-Ä‘un %s vá»›i cÃ¡c mÃ´-Ä‘un %s trÆ°á»›c%B: ASE khÃ´ng khá»›p: liÃªn káº¿t %s mÃ´-Ä‘un vá»›i mÃ´-Ä‘un %s trÆ°á»›c Ä‘Ã³%B: sai khá»›p kiáº¿n trÃºc vá»›i mÃ´-Ä‘un khÃ¡c%B: hÃ¬nh áº£nh BE8 chá»‰ Ä‘Ãºng trong cháº¿ Ä‘á»™ vá»� cuá»‘i lá»›n.%B: Ä�Ã£ nháº­p má»¥c ghi Ä‘á»‹nh vá»‹ láº¡i sai: %d%B: CALL15 Ä‘á»‹nh vá»‹ láº¡i táº¡i 0x%lx khÃ´ng pháº£i so vá»›i kÃ½ hiá»‡u toÃ n cá»¥c%B: Ä‘á»‹nh vá»‹ láº¡i CALL16 á»Ÿ 0x%lx khÃ´ng pháº£i so vá»›i kÃ½ hiá»‡u toÃ n cá»¥c%B: KhÃ´ng tÃ¬m tháº¥y Ä‘á»‹nh vá»‹ láº¡i LO16 tÆ°Æ¡ng á»©ng so vá»›i â€œ%sâ€� cho %s á»Ÿ 0x%lx trong pháº§n â€œ%Aâ€�%B: KhÃ´ng thá»ƒ giáº£m nháº¹ br (%s) tá»›i â€œ%sâ€� táº¡i 0x%lx trong pháº§n â€œ%Aâ€� vá»›i kÃ­ch cá»¡ 0x%lx (> 0x1000000).%B: KhÃ´ng thá»ƒ giáº£m nháº¹ br á»Ÿ 0x%lx trong pháº§n â€œ%Aâ€�. HÃ£y dÃ¹ng brl hoáº·c nhÃ¡nh giÃ¡n tiáº¿p.%B: KhÃ´ng thá»ƒ xá»­ lÃ½ táº­p tin nhá»‹ phÃ¢n Alpha chÆ°a Ä‘Æ°á»£c nÃ©n.
+	HÃ£y dÃ¹ng cÃ¡c cá»� biÃªn dá»‹ch, hoáº·c objZ, Ä‘á»ƒ táº¡o táº­p tin nhá»‹ phÃ¢n chÆ°a Ä‘Æ°á»£c nÃ©n.%B: KhÃ´ng thá»ƒ liÃªn káº¿t hai Ä‘á»‘i tÆ°á»£ng %s vÃ  %s vá»›i nhau.%B: TrÆ°á»�ng kÃ­ch cá»¡ bá»‹ há»�ng trong pháº§n Ä‘áº§u cá»§a pháº§n nhÃ³m: 0x%lx%B: Lá»—i thÃªm kÃ½ hiá»‡u Ä‘Ã£ Ä‘áº·t tÃªn láº¡i %s%B: TÃ¡i Ä‘á»‹nh vá»‹ bá»™ mÃ´ táº£ hÃ m vá»›i sá»‘ háº¡ng khÃ¡c-khÃ´ng%B: trÃ n GOT: sá»‘ cÃ¡c sá»± Ä‘á»‹nh vá»‹ láº¡i vá»›i hiá»‡u 8-bit hay 16-bit  > %d%B: trÃ n GOT: sá»‘ cÃ¡c sá»± Ä‘á»‹nh vá»‹ láº¡i vá»›i hiá»‡u 8-bit  > %d%B: Ä‘á»‹nh vá»‹ láº¡i GOT á»Ÿ 0x%lx khÃ´ng mong Ä‘á»£i trong táº­p tin cÃ³ kháº£ nÄƒng thá»±c hiá»‡n%B: chá»‰ thá»‹ IMPORT AS (nháº­p dáº¡ng) cho %s cÅ©ng áº©n chá»‰ thá»‹ IMPORT AS trÆ°á»›c%B: Bá»™ chá»‰ dáº«n khÃ´ng tÆ°Æ¡ng á»©ng vá»›i cÃ¡c mÃ´-Ä‘un trÆ°á»›c%B: Ä�Ã£ nháº­p kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng há»£p lá»‡: %d%B: PhÃ¡t hiá»‡n sá»± Ä‘á»‹nh vá»‹ láº¡i dáº¡ng sai cho pháº§n %s%B: KhÃ´ng Ä‘á»§ sá»©c chá»©a cho cÃ¡c pháº§n Ä‘áº§u cá»§a chÆ°Æ¡ng trÃ¬nh: hÃ£y thá»­ liÃªn káº¿t vá»›i â€œ-Nâ€�%B: Chá»‰ cÃ¡c thanh ghi %%g[2367] cÃ³ thá»ƒ Ä‘Æ°á»£c tuyÃªn bá»‘ dÃ¹ng STT_REGISTER%B: Kiá»ƒu mÃ¡y Ä‘Æ°á»£c nháº­n ra cÃ²n khÃ´ng Ä‘Æ°á»£c quáº£n lÃ½ (0x%x) trong kho lÆ°u Ä�á»‹nh dáº¡ng ThÆ° viá»‡n Nháº­p%B: Ä�á»‹nh vá»‹ láº¡i %s (%d) hiá»‡n thá»�i khÃ´ng Ä‘Æ°á»£c há»— trá»£.
+%B: Ä�á»‹nh vá»‹ láº¡i trong ELF chung (EM: %d)%B: tÃ¡i Ä‘á»‹nh vá»‹ SB-liÃªn-quan nhÆ°ng __c6xabi_DSBT_BASE láº¡i chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a%B: mÃ£ thá»±c hiá»‡n cá»¥c bá»™ TLS khÃ´ng thá»ƒ Ä‘Æ°á»£c liÃªn káº¿t vÃ o Ä‘á»‘i tÆ°á»£ng chia sáº»%B: khÃ´ng thÃ nh cÃ´ng chuyá»ƒn tiáº¿p TLS tá»« %s sang %s Ä‘á»‘i vá»›i â€œ%sâ€� á»Ÿ 0x%lx trong pháº§n â€œ%Aâ€�%B: Pháº§n thá»© nháº¥t trong Ä‘oáº¡n PT_DYNAMIC khÃ´ng pháº£i lÃ  pháº§n .dynamic%B: Ä�Ã­ch (%s) cá»§a má»™t Ä‘á»‹nh vá»‹ láº¡i %s náº±m trong pháº§n sai (%A)%B: QuÃ¡ nhiá»�u pháº§n: %d (â‰¥ %d)%B: KhÃ´ng thá»ƒ sáº¯p xáº¿p cÃ¡c sá»± Ä‘á»‹nh vá»‹ láº¡i: chÃºng cÃ³ kÃ­ch cá»¡ khÃ¡c nhau%B: KhÃ´ng thá»ƒ sáº¯p xáº¿p cÃ¡c sá»± Ä‘á»‹nh vá»‹ láº¡i: chÃºng cÃ³ kÃ­ch cá»¡ khÃ´ng rÃµ%B: Kiá»ƒu nháº­p khÃ´ng Ä‘Æ°á»£c quáº£n lÃ½; %x%B: KhÃ´ng rÃµ thuá»™c tÃ­nh Ä‘á»‘i tÆ°á»£ng EABI %d%B: Kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng rÃµ %d
 %B: KhÃ´ng rÃµ kiá»ƒu pháº§n trong táº­p tin a.out.adobe: %x
-%B: KhÃ´ng nháº­n ra cÃ¢u lá»‡nh .directive: %s%B: Kiá»ƒu tÃªn nháº­p khÃ´ng Ä‘Æ°á»£c nháº­n ra; %x%B: Kiá»ƒu nháº­p khÃ´ng Ä‘Æ°á»£c nháº­n ra; %x%B: Kiá»ƒu mÃ¡y khÃ´ng Ä‘Æ°á»£c nháº­n ra (0x%x) trong kho lÆ°u Ä�á»‹nh dáº¡ng ThÆ° viá»‡n Nháº­p%B: KhÃ´ng nháº­n ra háº¡ng lÆ°u trá»¯ %d cho kÃ½ hiá»‡u %s "%s"%B: Cáº£nh bÃ¡o: Ä�ang lá»� Ä‘i cá»� cá»§a pháº§n IMAGE_SCN_MEM_NOT_PAGED trong pháº§n %s%B: Cáº£nh bÃ¡o: Chá»‰ dáº«n Thumb BLX Ä‘Äƒt má»¥c tiÃªu hÃ m thumb "%s".%B: Cáº£nh bÃ¡o: kÃ­ch cá»¡ tÃ¹y chá»�n "%s" sai: nhá»� hÆ¡n pháº§n Ä‘áº§u cá»§a nÃ³%B: cáº£nh bÃ¡o: khÃ´ng thá»ƒ quyáº¿t Ä‘á»‹nh hÃ m Ä‘Ã­ch cho pháº§n máº©u "%s"%B: kÃ½ hiá»‡u XMC_TC0 "%s" lÃ  háº¡ng %d scnlen %d%B: "%s" Ä‘Ã£ Ä‘Æ°á»£c truy cáº­p theo cáº£ hai kiá»ƒu kÃ½ hiá»‡u FDPIC vÃ  cá»¥c bá»™ cho tuyáº¿n trÃ¬nh%B: `%s' Ä‘Ã£ Ä‘Æ°á»£c truy cáº­p theo cáº£ hai kiá»ƒu bÃ¬nh thÆ°á»�ng vÃ  kÃ½ hiá»‡u FDPIC%B: Ä‘Ã£ truy cáº­p "%s" theo kÃ½ hiá»‡u cáº£ hai kiá»ƒu bÃ¬nh thÆ°á»�ng vÃ  cá»¥c bá»™ cho máº¡ch%B: "%s" cÃ³ sá»‘ thá»© tá»± dÃ²ng mÃ  khÃ´ng cÃ³ pháº§n bao bá»�c%B: "%s" trong Ä‘á»‹nh vá»‹ láº¡i bá»™ náº¡p nhÆ°ng khÃ´ng pháº£i liÃªn káº¿t má»�m Ä‘áº¿n bá»™ náº¡p%B: "ld -r" khÃ´ng Ä‘Æ°á»£c há»— trá»£ vá»›i Ä‘á»‘i tÆ°á»£ng MIPS PE
-%B: kÃ½ hiá»‡u XTY_ER sai "%s" háº¡ng %d scnum %d scnlen %d%B: pair/reflo sai Ä‘áº±ng sau refhi
-%B: Ä‘á»‹a chá»‰ Ä‘á»‹nh vá»‹ láº¡i sai 0x%lx trong pháº§n "%A"%B: chá»‰ má»¥c kÃ½ hiá»‡u Ä‘á»‹nh vá»‹ láº¡i sai (0x%lx â‰¥ 0x%lx) cho khoáº£ng bÃ¹ 0x%lx trong pháº§n "%A"%B: tÃªn pháº§n Ä‘á»‹nh vá»‹ láº¡i sai "%s"%B: gáº·p chiá»�u dÃ i pháº§n sai trong ihex_read_section%B: kÃ­ch cá»¡ báº£ng chuá»—i sai %lu%B: chá»‰ má»¥c kÃ½ hiá»‡u sai: %d%B: khÃ´ng thá»ƒ táº¡o má»¥c nháº­p máº©u %s%B: thay Ä‘á»•i trong gp: BRSGP %s%B: háº¡ng %d kÃ½ hiá»‡u "%s" khÃ´ng cÃ³ má»¥c nháº­p phá»¥%B: Ä‘Æ°á»£c biÃªn dá»‹ch cho há»‡ thá»‘ng 64-bit, cÃ²n Ä‘Ã­ch lÃ  32-bit%B: Ä‘Æ°á»£c biÃªn dá»‹ch cho má»™t há»‡ thá»‘ng vá»� cuá»‘i lá»›n, cÃ²n Ä‘Ã­ch vá»� cuá»‘i nhá»�%B: Ä‘Æ°á»£c biÃªn dá»‹ch cho má»™t há»‡ thá»‘ng vá»� cuá»‘i nhá»�, cÃ²n Ä‘Ã­ch vá»� cuá»‘i lá»›n%B: Ä‘Ã£ biÃªn dá»‹ch bÃ¬nh thÆ°á»�ng vÃ  Ä‘Ã£ liÃªn káº¿t vá»›i cÃ¡c mÃ´Ä‘un biÃªn dá»‹ch vá»›i "-mrelocatable"%B: Ä‘Ã£ biÃªn dá»‹ch vá»›i "-mrelocatable" vÃ  Ä‘Ã£ liÃªn káº¿t vá»›i cÃ¡c mÃ´Ä‘un biÃªn dá»‹ch bÃ¬nh thÆ°á»�ng%B: khÃ´ng thá»ƒ tÃ¬m tháº¥y pháº§n káº¿t xuáº¥t %A cho pháº§n dá»¯ liá»‡u nháº­p vÃ o %A%B: khÃ´ng tÃ¬m tháº¥y pháº§n káº¿t xuáº¥t %s%B: khÃ´ng thá»ƒ Ä‘á»�c ná»™i dung cá»§a pháº§n "%A"
-%B: csect "%s" khÃ´ng pháº£i trong pháº§n bao bá»�c%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n Ä‘áº·c trÆ°ng cho HÄ�H "%s" [0x%8x]%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n Ä‘Ã£ cáº¥p phÃ¡t mÃ  Ä‘áº·c trÆ°ng cho á»©ng dá»¥ng "%s" [0x%8x]%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n Ä‘áº·c trÆ°ng cho bá»™ xá»­ lÃ½ "%s" [0x%8x]%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n "%s" [0x%8x]%B: Ä‘á»‹nh vá»‹ láº¡i tÆ°Æ¡ng Ä‘á»‘i vá»›i dtp (dtp-relative) so vá»›i kÃ½ hiá»‡u Ä‘á»™ng %s%B: máº©u xuáº¥t trÃ¹ng %s%B: pháº§n trÃ¹ng `%A' cÃ³ ná»™i dung khÃ¡c
-%B: pháº§n trÃ¹ng "%A" cÃ³ kÃ­ch cá»¡ khÃ¡c
+%B: KhÃ´ng nháº­n ra cÃ¢u lá»‡nh .directive: %s%B: Kiá»ƒu tÃªn nháº­p khÃ´ng Ä‘Æ°á»£c nháº­n ra; %x%B: Kiá»ƒu nháº­p khÃ´ng Ä‘Æ°á»£c nháº­n ra; %x%B: Kiá»ƒu mÃ¡y khÃ´ng Ä‘Æ°á»£c nháº­n ra (0x%x) trong kho lÆ°u Ä�á»‹nh dáº¡ng ThÆ° viá»‡n Nháº­p%B: KhÃ´ng nháº­n ra háº¡ng lÆ°u trá»¯ %d cho kÃ½ hiá»‡u %s â€œ%sâ€�%B: Cáº£nh bÃ¡o: Ä�ang lá»� Ä‘i cá»� cá»§a pháº§n IMAGE_SCN_MEM_NOT_PAGED trong pháº§n %s%B: Cáº£nh bÃ¡o: Chá»‰ dáº«n Thumb BLX Ä‘Äƒt má»¥c tiÃªu hÃ m thumb â€œ%sâ€�.%B: Cáº£nh bÃ¡o: kÃ­ch cá»¡ tÃ¹y chá»�n â€œ%sâ€� sai: nhá»� hÆ¡n pháº§n Ä‘áº§u cá»§a nÃ³%B: cáº£nh bÃ¡o: khÃ´ng thá»ƒ quyáº¿t Ä‘á»‹nh hÃ m Ä‘Ã­ch cho pháº§n máº©u â€œ%sâ€�%B: kÃ½ hiá»‡u XMC_TC0 â€œ%sâ€� lÃ  háº¡ng %d scnlen %d%B: â€œ%sâ€� Ä‘Ã£ Ä‘Æ°á»£c truy cáº­p theo cáº£ hai kiá»ƒu kÃ½ hiá»‡u FDPIC vÃ  cá»¥c bá»™ cho tuyáº¿n trÃ¬nh%B: â€œ%sâ€� Ä‘Ã£ Ä‘Æ°á»£c truy cáº­p theo cáº£ hai kiá»ƒu bÃ¬nh thÆ°á»�ng vÃ  kÃ½ hiá»‡u FDPIC%B: Ä‘Ã£ truy cáº­p â€œ%sâ€� theo kÃ½ hiá»‡u cáº£ hai kiá»ƒu bÃ¬nh thÆ°á»�ng vÃ  cá»¥c bá»™ cho máº¡ch%B: â€œ%sâ€� cÃ³ sá»‘ thá»© tá»± dÃ²ng mÃ  khÃ´ng cÃ³ pháº§n bao bá»�c%B: â€œ%sâ€� trong Ä‘á»‹nh vá»‹ láº¡i bá»™ náº¡p nhÆ°ng khÃ´ng pháº£i liÃªn káº¿t má»�m Ä‘áº¿n bá»™ náº¡p%B: â€œld -râ€� khÃ´ng Ä‘Æ°á»£c há»— trá»£ vá»›i Ä‘á»‘i tÆ°á»£ng MIPS PE
+%B: kÃ½ hiá»‡u XTY_ER sai â€œ%sâ€� háº¡ng %d scnum %d scnlen %d%B: pair/reflo sai Ä‘áº±ng sau refhi
+%B: Ä‘á»‹a chá»‰ Ä‘á»‹nh vá»‹ láº¡i sai 0x%lx trong pháº§n â€œ%Aâ€�%B: chá»‰ má»¥c kÃ½ hiá»‡u Ä‘á»‹nh vá»‹ láº¡i sai (0x%lx â‰¥ 0x%lx) cho khoáº£ng bÃ¹ 0x%lx trong pháº§n â€œ%Aâ€�%B: tÃªn pháº§n Ä‘á»‹nh vá»‹ láº¡i sai â€œ%sâ€�%B: gáº·p chiá»�u dÃ i pháº§n sai trong ihex_read_section%B: kÃ­ch cá»¡ báº£ng chuá»—i sai %lu%B: chá»‰ má»¥c kÃ½ hiá»‡u sai: %d%B: khÃ´ng thá»ƒ táº¡o má»¥c nháº­p máº©u %s%B: thay Ä‘á»•i trong gp: BRSGP %s%B: háº¡ng %d kÃ½ hiá»‡u â€œ%sâ€� khÃ´ng cÃ³ má»¥c nháº­p phá»¥%B: Ä‘Æ°á»£c biÃªn dá»‹ch cho há»‡ thá»‘ng 64-bit, cÃ²n Ä‘Ã­ch lÃ  32-bit%B: Ä‘Æ°á»£c biÃªn dá»‹ch cho má»™t há»‡ thá»‘ng vá»� cuá»‘i lá»›n, cÃ²n Ä‘Ã­ch vá»� cuá»‘i nhá»�%B: Ä‘Æ°á»£c biÃªn dá»‹ch cho má»™t há»‡ thá»‘ng vá»� cuá»‘i nhá»�, cÃ²n Ä‘Ã­ch vá»� cuá»‘i lá»›n%B: Ä‘Ã£ biÃªn dá»‹ch bÃ¬nh thÆ°á»�ng vÃ  Ä‘Ã£ liÃªn káº¿t vá»›i cÃ¡c mÃ´Ä‘un biÃªn dá»‹ch vá»›i â€œ-mrelocatableâ€�%B: Ä‘Ã£ biÃªn dá»‹ch vá»›i â€œ-mrelocatableâ€� vÃ  Ä‘Ã£ liÃªn káº¿t vá»›i cÃ¡c mÃ´Ä‘un biÃªn dá»‹ch bÃ¬nh thÆ°á»�ng%B: khÃ´ng thá»ƒ tÃ¬m tháº¥y pháº§n káº¿t xuáº¥t %A cho pháº§n dá»¯ liá»‡u nháº­p vÃ o %A%B: khÃ´ng tÃ¬m tháº¥y pháº§n káº¿t xuáº¥t %s%B: khÃ´ng thá»ƒ Ä‘á»�c ná»™i dung cá»§a pháº§n â€œ%Aâ€�
+%B: csect â€œ%sâ€� khÃ´ng pháº£i trong pháº§n bao bá»�c%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n Ä‘áº·c trÆ°ng cho HÄ�H â€œ%sâ€� [0x%8x]%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n Ä‘Ã£ cáº¥p phÃ¡t mÃ  Ä‘áº·c trÆ°ng cho á»©ng dá»¥ng â€œ%sâ€� [0x%8x]%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n Ä‘áº·c trÆ°ng cho bá»™ xá»­ lÃ½ â€œ%sâ€� [0x%8x]%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n â€œ%sâ€� [0x%8x]%B: Ä‘á»‹nh vá»‹ láº¡i tÆ°Æ¡ng Ä‘á»‘i vá»›i dtp (dtp-relative) so vá»›i kÃ½ hiá»‡u Ä‘á»™ng %s%B: máº©u xuáº¥t trÃ¹ng %s%B: pháº§n trÃ¹ng â€œ%Aâ€� cÃ³ ná»™i dung khÃ¡c
+%B: pháº§n trÃ¹ng â€œ%Aâ€� cÃ³ kÃ­ch cá»¡ khÃ¡c
 %B: tÃ¬nh tráº¡ng vá»� cuá»‘i khÃ´ng tÆ°Æ¡ng thÃ­ch vá»›i cÃ¡i cá»§a báº£n mÃ´ phá»�ng Ä‘Ã£ chá»�n%B: lá»—i: máº©u má»¥c lá»—i Cortex-A8 Ä‘Æ°á»£c cáº¥p phÃ¡t á»Ÿ vá»‹ trÃ­ khÃ´ng an toÃ n%B: lá»—i: máº©u má»¥c lá»—i Cortex-A8 á»Ÿ ngoáº¡i pháº¡m vi (táº­p tin nháº­p quÃ¡ dÃ i)%B: lá»—i: lá»›p gá»— máº·t VFP11 á»Ÿ ngoáº¡i pháº¡m vi%B: lá»—i: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i chÆ°a sáº¯p hÃ ng %d táº¡i %08x Ä‘á»‹nh vá»‹ láº¡i %p
-%B: lá»—i: khÃ´ng rÃµ thuá»™c tÃ­nh Ä‘á»‘i tÆ°á»£ng EABI %d%B: lá»›p táº­p tin %s khÃ´ng tÆ°Æ¡ng thÃ­ch vá»›i %s%B: Ä‘á»‹nh vá»‹ láº¡i tÆ°Æ¡ng Ä‘á»‘i vá»›i gp (gp-relative) so vá»›i kÃ½ hiá»‡u Ä‘á»™ng %s%B: kÃ½ hiá»‡u áº©n `%s' trong %B Ä‘Æ°á»£c DSO tham chiáº¿u%B: kÃ½ hiá»‡u áº©n `%s' chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a%B: Ä‘ang bá»� qua pháº§n trÃ¹ng "%A"
-%B: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i cáº¥m %d á»Ÿ Ä‘á»‹a chá»‰ 0x%lx%B: chá»‰ má»¥c kÃ½ hiá»‡u cáº¥m trong Ä‘á»‹nh vá»‹ láº¡i: %d%B: kiá»ƒu mÃ¡y khÃ´ng tÆ°Æ¡ng thÃ­ch. Káº¿t xuáº¥t lÃ  0x%x. Dá»¯ liá»‡u nháº­p vÃ o lÃ  0x%x.%B: kÃ½ hiá»‡u giÃ¡n tiáº¿p "%s" tá»›i "%s" thÃ¬ táº¡o má»™t vÃ²ng láº·p%B: gáº·p lá»—i ná»™i bá»™ trong ihex_read_section%B: kÃ½ hiá»‡u ná»™i táº¡i "%s" trong %B Ä‘Æ°á»£c DSO tham chiáº¿u%B: kÃ½ hiá»‡u ná»™i táº¡i `%s' chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a%B: má»¥c nháº­p SHT_GROUP khÃ´ng há»£p lá»‡%B: liÃªn káº¿t khÃ´ng há»£p lá»‡ %lu cho pháº§n Ä‘á»‹nh vá»‹ láº¡i %s (chá»‰ má»¥c %u)%B: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng há»£p lá»‡ %d%B: khoáº£ng bÃ¹ chuá»—i khÃ´ng há»£p lá»‡ %uâ‰¥%lu cho pháº§n "%s"%B: bÆ°á»›c nháº£y quÃ¡ xa
-%B: Ä‘ang liÃªn káº¿t mÃ´-Ä‘un %s vá»›i cÃ¡c mÃ´-Ä‘un %s trÆ°á»›c%B: Ä‘ang liÃªn káº¿t mÃ£ 32-bit vá»›i mÃ£ 64-bit%B: Ä‘ang liÃªn káº¿t táº­p tin 64-bit vá»›i táº­p tin 32-bit%B: Ä‘ang liÃªn káº¿t UltraSPARC dá»©t khoÃ¡t vá»›i mÃ£ Ä‘áº·c trÆ°ng cho HAL%B: Ä‘ang liÃªn káº¿t táº­p tin auto-pic vá»›i táº­p tin non-auto-pic%B: Ä‘ang liÃªn káº¿t táº­p tin vá»� cuá»‘i lá»›n vá»›i táº­p tin vá»� cuá»‘i nhá»�%B: Ä‘ang liÃªn káº¿t táº­p tin constant-gp vá»›i táº­p tin non-constant-gp%B: Ä‘ang liÃªn káº¿t cÃ¡c táº­p tin Ä‘Æ°á»£c biÃªn dá»‹ch cho sá»‘ nguyÃªn 16 bit (-mshort) vÃ  cÃ¡c táº­p tin khÃ¡c cho sá»‘ nguyÃªn 32 bit%B: Ä‘ang liÃªn káº¿t cÃ¡c táº­p tin Ä‘Æ°á»£c biÃªn dá»‹ch 32 bit Ä‘Ã´i (-mshort) vÃ  cÃ¡c táº­p tin khÃ¡c cho 64 bit Ä‘Ã´i%B: Ä‘ang liÃªn káº¿t táº­p tin Ä‘Æ°á»£c biÃªn dá»‹ch cho HCS12 vá»›i cÃ¡c táº­p tin khÃ¡c biÃªn dá»‹ch cho HC12%B: Ä‘ang liÃªn káº¿t táº­p tin vá»� cuá»‘i nhá»� vá»›i táº­p tin vá»� cuá»‘i lá»›n%B: Ä‘ang liÃªn káº¿t mÃ£ khÃ¡c pin trong má»™t táº­p tin cÃ³ kháº£ nÄƒng thá»±c hiá»‡n mÃ  khÃ´ng phá»¥ thuá»™c vÃ o vá»‹ trÃ­%B: Ä‘ang liÃªn káº¿t trap-on-NULL-dereference vá»›i táº­p tin khÃ´ng Ä‘áº·t báº«y%B: Ä‘á»‹nh vá»‹ láº¡i bá»™ náº¡p trong pháº§n chá»‰ Ä‘á»�c %A%B: gáº·p sá»± Ä‘á»‹nh vá»‹ láº¡i bá»™ náº¡p trong pháº§n khÃ´ng Ä‘Æ°á»£c nháº­n ra "%s"%B: kÃ½ hiá»‡u ná»™i bá»™ `%s' trong %B Ä‘Æ°á»£c tham chiáº¿u bá»Ÿi DSO%B: khÃ´ng Ä‘Ãºng chá»— XTY_LD "%s"%B: thiáº¿u pháº§n TLS Ä‘á»ƒ Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i "%s" á»Ÿ 0x%lx trong pháº§n "%A".%B: khÃ´ng cÃ³ thÃ´ng tin nhÃ³m vá»� pháº§n %A%B: mÃ£ khÃ¡c pic vá»›i Ä‘á»‹nh vá»‹ láº¡i imm so vá»›i kÃ½ hiá»‡u Ä‘á»™ng "%s"%B: chá»‰ má»¥c kÃ½ hiá»‡u khÃ¡c sá»‘ khÃ´ng (0x%lx) cho hiá»‡u 0x%lx trong pháº§n "%A" mÃ  táº­p tin Ä‘á»‘i tÆ°á»£ng khÃ´ng cÃ³ báº£ng kÃ½ hiá»‡u%B: Ä‘á»‹nh vá»‹ láº¡i tÆ°Æ¡ng Ä‘á»‘i vá»›i pc (pc-relative) so vá»›i kÃ½ hiá»‡u Ä‘á»™ng %s%B: Ä‘á»‹nh vá»‹ láº¡i tÆ°Æ¡ng Ä‘á»‘i vá»›i pc (pc-relative) so vá»›i kÃ½ hiá»‡u yáº¿u chÆ°a Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh %s%B: ráº¥t cÃ³ thá»ƒ Ä‘Æ°á»£c biÃªn dá»‹ch khÃ´ng cÃ³ "-fPIC" ?%B: kÃ½ hiá»‡u Ä‘Æ°á»£c báº£o vá»‡ `%s' chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a%B: Ä‘á»‹nh vá»‹ láº¡i %s:%d khÃ´ng pháº£i trong csect%B: Ä‘á»‹nh vá»‹ láº¡i so vá»›i má»™t chá»‰ má»¥c kÃ½ hiá»‡u khÃ´ng tá»“n táº¡i: %ld%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i %s "%s" khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº» %s%B: sá»± Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u STT_GNU_IFUNC "%s" cÃ³ pháº§n cá»™ng khÃ¡c sá»‘ khÃ´ng: %d%B: sá»± Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u STT_GNU_IFUNC "%s" khÃ´ng pháº£i Ä‘Æ°á»£c %s quáº£n lÃ½%B: Ä‘á»‹nh vá»‹ láº¡i %s so vá»›i "%s" khÃ´ng thá»ƒ Ä‘Æ°á»£c dÃ¹ng khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; hÃ£y biÃªn dá»‹ch láº¡i vá»›i "-fPIC"%B: sá»± Ä‘á»‹nh vá»‹ láº¡i %s dá»±a vÃ o kÃ½ hiá»‡u "%s" khÃ´ng Ä‘Æ°á»£c há»— trá»£ trong cháº¿ Ä‘á»™ x32%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i %s chÆ°a xÃ¡c Ä‘á»‹nh "%s" khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº» %s%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i %s khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº½, hÃ£y biÃªn dá»‹ch láº¡i vá»›i "-fPIC"%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i %s khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i R_386_GOTOFF Ä‘á»‘i vá»›i hÃ m sá»‘ Ä‘Ã£ báº£o vá»‡ "%s" khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i R_386_GOTOFF Ä‘á»‘i vá»›i %s chÆ°a xÃ¡c Ä‘á»‹nh "%s" khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»%B: Ä‘á»‹nh vá»‹ láº¡i R_X86_64_GOTOFF64 so vá»›i hÃ m Ä‘Ã£ báº£o vá»‡ "%s" thÃ¬ khÃ´ng thá»ƒ Ä‘Æ°á»£c dÃ¹ng khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»%B: Ä‘á»‹nh vá»‹ láº¡i á»Ÿ "%A+0x%x" tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u "%s" vá»›i sá»‘ háº¡ng khÃ¡c khÃ´ng%B: sai khá»›p kÃ­ch cá»¡ Ä‘á»‹nh vá»‹ láº¡i trong %B pháº§n %A%B: Ä‘á»‹nh vá»‹ láº¡i trong pháº§n "%A", nhÆ°ng nÃ³ khÃ´ng cÃ³ ná»™i dung%B: pháº§n %A lma %#lx Ä‘Æ°á»£c sá»­a thÃ nh %#lx%B: pháº§n %s: trÃ n báº£ng chuá»—i á»Ÿ hiá»‡u %ld%B: pháº§n "%A" khÃ´ng thá»ƒ Ä‘Æ°á»£c cáº¥p phÃ¡t trong Ä‘oáº¡n %d%B: sh_link [%d] khÃ´ng Ä‘Ãºng trong pháº§n "%A"%B: sh_link cá»§a pháº§n "%A" chá»‰ tá»›i pháº§n bá»‹ há»§y "%A" cá»§a "%B"%B: sh_link cá»§a pháº§n "%A" chá»‰ tá»›i pháº§n bá»‹ gá»¡ bá»� "%A" cá»§a "%B"%B: trÆ°á»�ng kÃ­ch cá»¡ lÃ  sá»‘ khÃ´ng trong pháº§n Ä‘áº§u Ä�á»‹nh dáº¡ng ThÆ° viá»‡n Nháº­p%B: sá»± sá»­a chá»¯a suy Ä‘oÃ¡n so vá»›i kÃ½ hiá»‡u Ä‘á»™ng %s%B: chuá»—i khÃ´ng pháº£i káº¿t thÃºc vÃ´ hiá»‡u lá»±c trong táº­p tin Ä‘á»‘i tÆ°á»£ng ILF. %B: kÃ½ hiá»‡u "%s" cÃ³ kiá»ƒu csect khÃ´ng Ä‘Æ°á»£c nháº­n ra %d%B: kÃ½ tá»± "%s" cÃ³ smclas khÃ´ng nháº­n ra %d%B: kÃ½ hiá»‡u "%s" cáº§n thiáº¿t mÃ  khÃ´ng cÃ³%B: QuÃ¡ nhiá»�u pháº§n: %d (%d)%B: Ä‘á»‹nh vá»‹ láº¡i tÆ°Æ¡ng Ä‘á»‘i vá»›i tp (tp-relative) so vá»›i kÃ½ hiá»‡u Ä‘á»™ng %s%B: khÃ´ng thá»ƒ Ä‘iá»�n vÃ o DataDictionary[12] vÃ¬ .idata$5 cÃ²n thiáº¿u%B: khÃ´ng thá»ƒ Ä‘iá»�n vÃ o DataDictionary[1] vÃ¬ .idata$2 cÃ²n thiáº¿u%B: khÃ´ng thá»ƒ Ä‘iá»�n vÃ o DataDictionary[1] vÃ¬ .idata$4 cÃ²n thiáº¿u%B: khÃ´ng thá»ƒ Ä‘iá»�n vÃ o DataDictionary[9] vÃ¬ __tls_used cÃ²n thiáº¿u%B: khÃ´ng thá»ƒ Ä‘iá»�n vÃ o DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] vÃ¬ .idata$6 cÃ²n thiáº¿u%B: khÃ´ng thá»ƒ Ä‘iá»�n vÃ o DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] bá»Ÿi vÃ¬ .idata$6 cÃ²n thiáº¿u%B: khÃ´ng tÃ¬m tháº¥y keo há»“ ARM "%s" cho "%s"%B: khÃ´ng tÃ¬m tháº¥y keo há»“ THUMB "%s" cho "%s"%B: khÃ´ng tÃ¬m tháº¥y lá»›p gá»— máº·t VFP11 "%s"%B: khÃ´ng thá»ƒ láº¥y pháº§n Ä‘Æ°á»£c giáº£i nÃ©n %A%B: khÃ´ng thá»ƒ khá»Ÿi táº¡o tráº¡ng thÃ¡i nÃ©n cho pháº§n %s%B: khÃ´ng thá»ƒ khá»Ÿi táº¡o tráº¡ng thÃ¡i giáº£i nÃ©n cho pháº§n %s%B: chÆ°a Ä‘á»‹nh nghÄ©a tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u '%s'%B: gáº·p sym (liÃªn káº¿t má»�m?) chÆ°a Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh "%s" trong pháº§n .opd%B: kÃ½ hiá»‡u chÆ°a Ä‘á»‹nh nghÄ©a trong tÃ¡i Ä‘á»‹nh vá»‹ R_PPC64_TOCSAVE%B: gáº·p kiá»ƒu ATN báº¥t thÆ°á»�ng %d trong pháº§n bÃªn ngoÃ i%B: gáº·p lá»�i Ä‘á»‹nh nghÄ©a láº¡i báº¥t thÆ°á»�ng cá»§a kÃ½ hiá»‡u giÃ¡n tiáº¿p Ä‘áº·t phiÃªn báº£n "%s"%B: gáº·p kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i báº¥t thÆ°á»�ng %u trong pháº§n .opd%B: gáº·p kiá»ƒu báº¥t thÆ°á»�ng Ä‘áº±ng sau ATN%B: khÃ´ng xá»­ lÃ½ Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i Ä‘á»™ng so vá»›i %s%B: %s chÆ°a Ä‘Æ°á»£c thá»±c hiá»‡n
-%B: má»¥c ghi ATI %u chÆ°a Ä‘Æ°á»£c thá»±c hiá»‡n Ä‘á»‘i vá»›i kÃ½ hiá»‡u %u%B: khÃ´ng rÃµ [%d] pháº§n "%s" trong nhÃ³m [%s]%B: khÃ´ng rÃµ kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i %d%B: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng rÃµ hoáº·c khÃ´ng Ä‘Æ°á»£c há»— trá»£: %d%B: Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c nháº­n ra (0x%x) trong pháº§n "%A"%B: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£ %i%B: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£ %i
-%B: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£ %s%B: Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£: ALPHA_R_GPRELHIGH%B: Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£: ALPHA_R_GPRELLOW%B: dÃ¹ng kÃ½ hiá»‡u tiá»�n tá»‘ _, nhÆ°ng Ä‘ang ghi táº­p tin vá»›i kÃ½ hiá»‡u khÃ´ng pháº£i tiá»�n tá»‘%B: sá»­ dá»¥ng trÆ°á»�ng e_flags (0x%lx) khÃ¡c vá»›i mo-Ä‘un trÆ°á»›c (0x%lx)%B: dÃ¹ng kÃ½ hiá»‡u khÃ´ng pháº£i tiá»�n tá»‘, nhÆ°ng Ä‘ang ghi táº­p tin vá»›i kÃ½ hiá»‡u cÃ³ tiá»�n tá»‘ _%B: khÃ´ng tÃ¬m tháº¥y nÃºt thÃ´ng tin phiÃªn báº£n cho kÃ½ hiá»‡u %s%B: cáº£nh bÃ¡o: kÃ½ hiá»‡u COMDAT "%s" khÃ´ng tÆ°Æ¡ng á»©ng vÆ¡i tÃªn pháº§n "%s"%B: cáº£nh bÃ¡o: PhÃ¡t hiá»‡n má»™t Ä‘oáº¡n rá»—ng cÃ³ thá»ƒ náº¡p Ä‘Æ°á»£c: trÆ°á»�ng há»£p nÃ y cÃ³ Ã½ Ä‘á»‹nh trÆ°á»›c khÃ´ng?
-%B: cáº£nh bÃ¡o: pháº§n Ä‘Ã£ cáº¥p phÃ¡t "%s" khÃ´ng náº±m trong Ä‘oáº¡n%B: cáº£nh bÃ¡o: thÃ´ng tin sá»‘ thá»© tá»± dÃ²ng trÃ¹ng Ä‘á»‘i vá»›i "%s"%B: cáº£nh bÃ¡o: chá»‰ má»¥c kÃ½ hiá»‡u cáº¥m %ld trong cÃ¡c sá»‘ thá»© tá»± dÃ²ng%B: cáº£nh bÃ¡o: chá»‰ má»¥c kÃ½ hiá»‡u cáº¥m %ld trong Ä‘á»‹nh vá»‹ láº¡i%B: Cáº£nh báº£o: lá»—i Ä‘á»�c báº£ng sá»‘ thá»© tá»± dÃ²ng%B: cáº£nh bÃ¡o: Ä‘ang liÃªn káº¿t táº­p tin PIC vá»›i táº­p tin khÃ¡c PIC%B: cáº£nh bÃ¡o: Ä‘ang liÃªn káº¿t táº­p tin abicalls vá»›i táº­p tin khÃ¡c abicalls%B: cáº£nh bÃ¡o: sá»± kháº¯c phÃºc cÃ¡c lá»—i VFP11 Ä‘Ã£ chá»�n khÃ´ng cáº§n thiáº¿t cho kiáº¿n trÃºc Ä‘Ã­ch%B: cáº£nh bÃ¡o: "sh_link" chÆ°a Ä‘Æ°á»£c Ä‘áº·t cho pháº§n "%A"%B: cáº£nh bÃ¡o: khÃ´ng rÃµ thuá»™c tÃ­nh Ä‘á»‘i tÆ°á»£ng EABI %d%B:%A%s vÆ°á»£t quÃ¡ kÃ­ch cá»¡ phá»§
+%B: lá»—i: khÃ´ng rÃµ thuá»™c tÃ­nh Ä‘á»‘i tÆ°á»£ng EABI %d%B: lá»›p táº­p tin %s khÃ´ng tÆ°Æ¡ng thÃ­ch vá»›i %s%B: Ä‘á»‹nh vá»‹ láº¡i tÆ°Æ¡ng Ä‘á»‘i vá»›i gp (gp-relative) so vá»›i kÃ½ hiá»‡u Ä‘á»™ng %s%B: kÃ½ hiá»‡u áº©n â€œ%sâ€� trong %B Ä‘Æ°á»£c DSO tham chiáº¿u%B: kÃ½ hiá»‡u áº©n â€œ%sâ€� chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a%B: Ä‘ang bá»� qua pháº§n trÃ¹ng â€œ%Aâ€�
+%B: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i cáº¥m %d á»Ÿ Ä‘á»‹a chá»‰ 0x%lx%B: chá»‰ má»¥c kÃ½ hiá»‡u cáº¥m trong Ä‘á»‹nh vá»‹ láº¡i: %d%B: kiá»ƒu mÃ¡y khÃ´ng tÆ°Æ¡ng thÃ­ch. Káº¿t xuáº¥t lÃ  0x%x. Dá»¯ liá»‡u nháº­p vÃ o lÃ  0x%x.%B: kÃ½ hiá»‡u giÃ¡n tiáº¿p â€œ%sâ€� tá»›i â€œ%sâ€� thÃ¬ táº¡o má»™t vÃ²ng láº·p%B: gáº·p lá»—i ná»™i bá»™ trong ihex_read_section%B: kÃ½ hiá»‡u ná»™i táº¡i â€œ%sâ€� trong %B Ä‘Æ°á»£c DSO tham chiáº¿u%B: kÃ½ hiá»‡u ná»™i táº¡i â€œ%sâ€� chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a%B: má»¥c nháº­p SHT_GROUP khÃ´ng há»£p lá»‡%B: liÃªn káº¿t khÃ´ng há»£p lá»‡ %lu cho pháº§n Ä‘á»‹nh vá»‹ láº¡i %s (chá»‰ má»¥c %u)%B: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng há»£p lá»‡ %d%B: khoáº£ng bÃ¹ chuá»—i khÃ´ng há»£p lá»‡ %uâ‰¥%lu cho pháº§n â€œ%sâ€�%B: bÆ°á»›c nháº£y quÃ¡ xa
+%B: Ä‘ang liÃªn káº¿t mÃ´-Ä‘un %s vá»›i cÃ¡c mÃ´-Ä‘un %s trÆ°á»›c%B: Ä‘ang liÃªn káº¿t mÃ£ 32-bit vá»›i mÃ£ 64-bit%B: Ä‘ang liÃªn káº¿t táº­p tin 64-bit vá»›i táº­p tin 32-bit%B: Ä‘ang liÃªn káº¿t UltraSPARC dá»©t khoÃ¡t vá»›i mÃ£ Ä‘áº·c trÆ°ng cho HAL%B: Ä‘ang liÃªn káº¿t táº­p tin auto-pic vá»›i táº­p tin non-auto-pic%B: Ä‘ang liÃªn káº¿t táº­p tin vá»� cuá»‘i lá»›n vá»›i táº­p tin vá»� cuá»‘i nhá»�%B: Ä‘ang liÃªn káº¿t táº­p tin constant-gp vá»›i táº­p tin non-constant-gp%B: Ä‘ang liÃªn káº¿t cÃ¡c táº­p tin Ä‘Æ°á»£c biÃªn dá»‹ch cho sá»‘ nguyÃªn 16 bit (-mshort) vÃ  cÃ¡c táº­p tin khÃ¡c cho sá»‘ nguyÃªn 32 bit%B: Ä‘ang liÃªn káº¿t cÃ¡c táº­p tin Ä‘Æ°á»£c biÃªn dá»‹ch 32 bit Ä‘Ã´i (-mshort) vÃ  cÃ¡c táº­p tin khÃ¡c cho 64 bit Ä‘Ã´i%B: Ä‘ang liÃªn káº¿t táº­p tin Ä‘Æ°á»£c biÃªn dá»‹ch cho HCS12 vá»›i cÃ¡c táº­p tin khÃ¡c biÃªn dá»‹ch cho HC12%B: Ä‘ang liÃªn káº¿t táº­p tin vá»� cuá»‘i nhá»� vá»›i táº­p tin vá»� cuá»‘i lá»›n%B: Ä‘ang liÃªn káº¿t mÃ£ khÃ¡c pin trong má»™t táº­p tin cÃ³ kháº£ nÄƒng thá»±c hiá»‡n mÃ  khÃ´ng phá»¥ thuá»™c vÃ o vá»‹ trÃ­%B: Ä‘ang liÃªn káº¿t trap-on-NULL-dereference vá»›i táº­p tin khÃ´ng Ä‘áº·t báº«y%B: Ä‘á»‹nh vá»‹ láº¡i bá»™ náº¡p trong pháº§n chá»‰ Ä‘á»�c %A%B: gáº·p sá»± Ä‘á»‹nh vá»‹ láº¡i bá»™ náº¡p trong pháº§n khÃ´ng Ä‘Æ°á»£c nháº­n ra â€œ%sâ€�%B: kÃ½ hiá»‡u ná»™i bá»™ â€œ%sâ€� trong %B Ä‘Æ°á»£c tham chiáº¿u bá»Ÿi DSO%B: khÃ´ng Ä‘Ãºng chá»— XTY_LD â€œ%sâ€�%B: thiáº¿u pháº§n TLS Ä‘á»ƒ Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i â€œ%sâ€� á»Ÿ 0x%lx trong pháº§n â€œ%Aâ€�.%B: khÃ´ng cÃ³ thÃ´ng tin nhÃ³m vá»� pháº§n %A%B: mÃ£ khÃ¡c pic vá»›i Ä‘á»‹nh vá»‹ láº¡i imm so vá»›i kÃ½ hiá»‡u Ä‘á»™ng â€œ%sâ€�%B: chá»‰ má»¥c kÃ½ hiá»‡u khÃ¡c sá»‘ khÃ´ng (0x%lx) cho hiá»‡u 0x%lx trong pháº§n â€œ%Aâ€� mÃ  táº­p tin Ä‘á»‘i tÆ°á»£ng khÃ´ng cÃ³ báº£ng kÃ½ hiá»‡u%B: Ä‘á»‹nh vá»‹ láº¡i tÆ°Æ¡ng Ä‘á»‘i vá»›i pc (pc-relative) so vá»›i kÃ½ hiá»‡u Ä‘á»™ng %s%B: Ä‘á»‹nh vá»‹ láº¡i tÆ°Æ¡ng Ä‘á»‘i vá»›i pc (pc-relative) so vá»›i kÃ½ hiá»‡u yáº¿u chÆ°a Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh %s%B: ráº¥t cÃ³ thá»ƒ Ä‘Æ°á»£c biÃªn dá»‹ch khÃ´ng cÃ³ â€œ-fPICâ€� ?%B: kÃ½ hiá»‡u Ä‘Æ°á»£c báº£o vá»‡ â€œ%sâ€� chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a%B: Ä‘á»‹nh vá»‹ láº¡i %s:%d khÃ´ng pháº£i trong csect%B: Ä‘á»‹nh vá»‹ láº¡i so vá»›i má»™t chá»‰ má»¥c kÃ½ hiá»‡u khÃ´ng tá»“n táº¡i: %ld%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i %s â€œ%sâ€� khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº» %s%B: sá»± Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u STT_GNU_IFUNC â€œ%sâ€� cÃ³ pháº§n cá»™ng khÃ¡c sá»‘ khÃ´ng: %d%B: sá»± Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u STT_GNU_IFUNC â€œ%sâ€� khÃ´ng pháº£i Ä‘Æ°á»£c %s quáº£n lÃ½%B: Ä‘á»‹nh vá»‹ láº¡i %s so vá»›i â€œ%sâ€� khÃ´ng thá»ƒ Ä‘Æ°á»£c dÃ¹ng khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€�%B: sá»± Ä‘á»‹nh vá»‹ láº¡i %s dá»±a vÃ o kÃ½ hiá»‡u â€œ%sâ€� khÃ´ng Ä‘Æ°á»£c há»— trá»£ trong cháº¿ Ä‘á»™ x32%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i %s chÆ°a xÃ¡c Ä‘á»‹nh â€œ%sâ€� khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº» %s%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i %s khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº½, hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€�%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i %s khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i R_386_GOTOFF Ä‘á»‘i vá»›i hÃ m sá»‘ Ä‘Ã£ báº£o vá»‡ â€œ%sâ€� khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i R_386_GOTOFF Ä‘á»‘i vá»›i %s chÆ°a xÃ¡c Ä‘á»‹nh â€œ%sâ€� khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»%B: Ä‘á»‹nh vá»‹ láº¡i R_X86_64_GOTOFF64 so vá»›i hÃ m Ä‘Ã£ báº£o vá»‡ â€œ%sâ€� thÃ¬ khÃ´ng thá»ƒ Ä‘Æ°á»£c dÃ¹ng khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»%B: Ä‘á»‹nh vá»‹ láº¡i á»Ÿ â€œ%A+0x%xâ€� tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u â€œ%sâ€� vá»›i sá»‘ háº¡ng khÃ¡c khÃ´ng%B: sai khá»›p kÃ­ch cá»¡ Ä‘á»‹nh vá»‹ láº¡i trong %B pháº§n %A%B: Ä‘á»‹nh vá»‹ láº¡i trong pháº§n â€œ%Aâ€�, nhÆ°ng nÃ³ khÃ´ng cÃ³ ná»™i dung%B: pháº§n %A lma %#lx Ä‘Æ°á»£c sá»­a thÃ nh %#lx%B: pháº§n %s: trÃ n báº£ng chuá»—i á»Ÿ hiá»‡u %ld%B: pháº§n â€œ%Aâ€� khÃ´ng thá»ƒ Ä‘Æ°á»£c cáº¥p phÃ¡t trong Ä‘oáº¡n %d%B: sh_link [%d] khÃ´ng Ä‘Ãºng trong pháº§n â€œ%Aâ€�%B: sh_link cá»§a pháº§n â€œ%Aâ€� chá»‰ tá»›i pháº§n bá»‹ há»§y â€œ%Aâ€� cá»§a â€œ%Bâ€�%B: sh_link cá»§a pháº§n â€œ%Aâ€� chá»‰ tá»›i pháº§n bá»‹ gá»¡ bá»� â€œ%Aâ€� cá»§a â€œ%Bâ€�%B: trÆ°á»�ng kÃ­ch cá»¡ lÃ  sá»‘ khÃ´ng trong pháº§n Ä‘áº§u Ä�á»‹nh dáº¡ng ThÆ° viá»‡n Nháº­p%B: sá»± sá»­a chá»¯a suy Ä‘oÃ¡n so vá»›i kÃ½ hiá»‡u Ä‘á»™ng %s%B: chuá»—i khÃ´ng pháº£i káº¿t thÃºc vÃ´ hiá»‡u lá»±c trong táº­p tin Ä‘á»‘i tÆ°á»£ng ILF. %B: kÃ½ hiá»‡u â€œ%sâ€� cÃ³ kiá»ƒu csect khÃ´ng Ä‘Æ°á»£c nháº­n ra %d%B: kÃ½ tá»± â€œ%sâ€� cÃ³ smclas khÃ´ng nháº­n ra %d%B: kÃ½ hiá»‡u â€œ%sâ€� cáº§n thiáº¿t mÃ  khÃ´ng cÃ³%B: QuÃ¡ nhiá»�u pháº§n: %d (%d)%B: Ä‘á»‹nh vá»‹ láº¡i tÆ°Æ¡ng Ä‘á»‘i vá»›i tp (tp-relative) so vá»›i kÃ½ hiá»‡u Ä‘á»™ng %s%B: khÃ´ng thá»ƒ Ä‘iá»�n vÃ o DataDictionary[12] vÃ¬ .idata$5 cÃ²n thiáº¿u%B: khÃ´ng thá»ƒ Ä‘iá»�n vÃ o DataDictionary[1] vÃ¬ .idata$2 cÃ²n thiáº¿u%B: khÃ´ng thá»ƒ Ä‘iá»�n vÃ o DataDictionary[1] vÃ¬ .idata$4 cÃ²n thiáº¿u%B: khÃ´ng thá»ƒ Ä‘iá»�n vÃ o DataDictionary[9] vÃ¬ __tls_used cÃ²n thiáº¿u%B: khÃ´ng thá»ƒ Ä‘iá»�n vÃ o DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] vÃ¬ .idata$6 cÃ²n thiáº¿u%B: khÃ´ng thá»ƒ Ä‘iá»�n vÃ o DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] bá»Ÿi vÃ¬ .idata$6 cÃ²n thiáº¿u%B: khÃ´ng tÃ¬m tháº¥y cháº¥t káº¿t dÃ­nh ARM â€œ%sâ€� cho â€œ%sâ€�%B: khÃ´ng tÃ¬m tháº¥y cháº¥t káº¿t dÃ­nh THUMB â€œ%sâ€� cho â€œ%sâ€�%B: khÃ´ng tÃ¬m tháº¥y lá»›p gá»— máº·t VFP11 â€œ%sâ€�%B: khÃ´ng thá»ƒ láº¥y pháº§n Ä‘Æ°á»£c giáº£i nÃ©n %A%B: khÃ´ng thá»ƒ khá»Ÿi táº¡o tráº¡ng thÃ¡i nÃ©n cho pháº§n %s%B: khÃ´ng thá»ƒ khá»Ÿi táº¡o tráº¡ng thÃ¡i giáº£i nÃ©n cho pháº§n %s%B: chÆ°a Ä‘á»‹nh nghÄ©a tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u â€œ%sâ€�%B: gáº·p sym (liÃªn káº¿t má»�m?) chÆ°a Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh â€œ%sâ€� trong pháº§n .opd%B: kÃ½ hiá»‡u chÆ°a Ä‘á»‹nh nghÄ©a trong tÃ¡i Ä‘á»‹nh vá»‹ R_PPC64_TOCSAVE%B: gáº·p kiá»ƒu ATN báº¥t thÆ°á»�ng %d trong pháº§n bÃªn ngoÃ i%B: gáº·p lá»�i Ä‘á»‹nh nghÄ©a láº¡i báº¥t thÆ°á»�ng cá»§a kÃ½ hiá»‡u giÃ¡n tiáº¿p Ä‘áº·t phiÃªn báº£n â€œ%sâ€�%B: gáº·p kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i báº¥t thÆ°á»�ng %u trong pháº§n .opd%B: gáº·p kiá»ƒu báº¥t thÆ°á»�ng Ä‘áº±ng sau ATN%B: khÃ´ng xá»­ lÃ½ Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i Ä‘á»™ng so vá»›i %s%B: %s chÆ°a Ä‘Æ°á»£c thá»±c hiá»‡n
+%B: má»¥c ghi ATI %u chÆ°a Ä‘Æ°á»£c thá»±c hiá»‡n Ä‘á»‘i vá»›i kÃ½ hiá»‡u %u%B: khÃ´ng rÃµ [%d] pháº§n â€œ%sâ€� trong nhÃ³m [%s]%B: khÃ´ng rÃµ kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i %d%B: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng rÃµ hoáº·c khÃ´ng Ä‘Æ°á»£c há»— trá»£: %d%B: Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c nháº­n ra (0x%x) trong pháº§n â€œ%Aâ€�%B: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£ %i%B: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£ %i
+%B: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£ %s%B: Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£: ALPHA_R_GPRELHIGH%B: Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£: ALPHA_R_GPRELLOW%B: dÃ¹ng kÃ½ hiá»‡u tiá»�n tá»‘ _, nhÆ°ng Ä‘ang ghi táº­p tin vá»›i kÃ½ hiá»‡u khÃ´ng pháº£i tiá»�n tá»‘%B: sá»­ dá»¥ng trÆ°á»�ng e_flags (0x%lx) khÃ¡c vá»›i mo-Ä‘un trÆ°á»›c (0x%lx)%B: dÃ¹ng kÃ½ hiá»‡u khÃ´ng pháº£i tiá»�n tá»‘, nhÆ°ng Ä‘ang ghi táº­p tin vá»›i kÃ½ hiá»‡u cÃ³ tiá»�n tá»‘ _%B: khÃ´ng tÃ¬m tháº¥y nÃºt thÃ´ng tin phiÃªn báº£n cho kÃ½ hiá»‡u %s%B: cáº£nh bÃ¡o: kÃ½ hiá»‡u COMDAT â€œ%sâ€� khÃ´ng tÆ°Æ¡ng á»©ng vÆ¡i tÃªn pháº§n â€œ%sâ€�%B: cáº£nh bÃ¡o: PhÃ¡t hiá»‡n má»™t Ä‘oáº¡n rá»—ng cÃ³ thá»ƒ náº¡p Ä‘Æ°á»£c: trÆ°á»�ng há»£p nÃ y cÃ³ Ã½ Ä‘á»‹nh trÆ°á»›c khÃ´ng?
+%B: cáº£nh bÃ¡o: pháº§n Ä‘Ã£ cáº¥p phÃ¡t â€œ%sâ€� khÃ´ng náº±m trong Ä‘oáº¡n%B: cáº£nh bÃ¡o: thÃ´ng tin sá»‘ thá»© tá»± dÃ²ng trÃ¹ng Ä‘á»‘i vá»›i â€œ%sâ€�%B: cáº£nh bÃ¡o: chá»‰ má»¥c kÃ½ hiá»‡u cáº¥m %ld trong cÃ¡c sá»‘ thá»© tá»± dÃ²ng%B: cáº£nh bÃ¡o: chá»‰ má»¥c kÃ½ hiá»‡u cáº¥m %ld trong Ä‘á»‹nh vá»‹ láº¡i%B: Cáº£nh báº£o: lá»—i Ä‘á»�c báº£ng sá»‘ thá»© tá»± dÃ²ng%B: cáº£nh bÃ¡o: Ä‘ang liÃªn káº¿t táº­p tin PIC vá»›i táº­p tin khÃ¡c PIC%B: cáº£nh bÃ¡o: Ä‘ang liÃªn káº¿t táº­p tin abicalls vá»›i táº­p tin khÃ¡c abicalls%B: cáº£nh bÃ¡o: sá»± kháº¯c phÃºc cÃ¡c lá»—i VFP11 Ä‘Ã£ chá»�n khÃ´ng cáº§n thiáº¿t cho kiáº¿n trÃºc Ä‘Ã­ch%B: cáº£nh bÃ¡o: â€œsh_linkâ€� chÆ°a Ä‘Æ°á»£c Ä‘áº·t cho pháº§n â€œ%Aâ€�%B: cáº£nh bÃ¡o: khÃ´ng rÃµ thuá»™c tÃ­nh Ä‘á»‘i tÆ°á»£ng EABI %d%B:%A%s vÆ°á»£t quÃ¡ kÃ­ch cá»¡ phá»§
 %B:%A: Cáº£nh bÃ¡o: khÃ´ng tÃ¡n thÃ nh reloc kiá»ƒu Red Hat%B:%d: sai tá»•ng kiá»ƒm trong táº­p tin S-record
-%B:%d Gáº·p kÃ½ tá»± báº¥t thÆ°á»�ng "%s" trong táº­p tin S-record
-%B:%d: gáº·p kÃ½ tá»± báº¥t thÆ°á»�ng trong táº­p tin tháº­p lá»¥c Intel%B:%d: gáº·p tá»•ng kiá»ƒm sai trong táº­p tin tháº­p lá»¥c Intel (Ä‘á»£i %u cÃ²n tÃ¬m %u)%B:%d: gáº·p chiá»�u dÃ i má»¥c ghi Ä‘á»‹a chá»‰ Ä‘Ã£ má»Ÿ rá»™ng sai trong táº­p tin tháº­p lá»¥c Intel%B:%d: gáº·p chiá»�u dÃ i má»¥c ghi Ä‘á»‹a chá»‰ tuyáº¿n Ä‘Ã£ má»Ÿ rá»™ng sai trong táº­p tin tháº­p lá»¥c Intel%B:%d: gáº·p chiá»�u dÃ i Ä‘á»‹a chá»‰ tuyáº¿n Ä‘Ã£ má»Ÿ rá»™ng sai trong táº­p tin tháº­p lá»¥c Intel%B:%d: gáº·p chiá»�u dÃ i Ä‘á»‹a chá»‰ Ä‘áº§u Ä‘Ã£ má»Ÿ rá»™ng sai trong táº­p tin tháº­p lá»¥c Intel%B:%d: gáº·p kiá»ƒu ihex khÃ´ng Ä‘Æ°á»£c nháº­n ra %u trong táº­p tin tháº­p lá»¥c Intel%C: cáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i "%s" tham chiáº¿u Ä‘áº¿n má»™t Ä‘oáº¡n khÃ¡c
+%B:%d Gáº·p kÃ½ tá»± báº¥t thÆ°á»�ng â€œ%sâ€� trong táº­p tin S-record
+%B:%d: gáº·p kÃ½ tá»± báº¥t thÆ°á»�ng trong táº­p tin tháº­p lá»¥c Intel%B:%d: gáº·p tá»•ng kiá»ƒm sai trong táº­p tin tháº­p lá»¥c Intel (Ä‘á»£i %u cÃ²n tÃ¬m %u)%B:%d: gáº·p chiá»�u dÃ i má»¥c ghi Ä‘á»‹a chá»‰ Ä‘Ã£ má»Ÿ rá»™ng sai trong táº­p tin tháº­p lá»¥c Intel%B:%d: gáº·p chiá»�u dÃ i má»¥c ghi Ä‘á»‹a chá»‰ tuyáº¿n Ä‘Ã£ má»Ÿ rá»™ng sai trong táº­p tin tháº­p lá»¥c Intel%B:%d: gáº·p chiá»�u dÃ i Ä‘á»‹a chá»‰ tuyáº¿n Ä‘Ã£ má»Ÿ rá»™ng sai trong táº­p tin tháº­p lá»¥c Intel%B:%d: gáº·p chiá»�u dÃ i Ä‘á»‹a chá»‰ Ä‘áº§u Ä‘Ã£ má»Ÿ rá»™ng sai trong táº­p tin tháº­p lá»¥c Intel%B:%d: gáº·p kiá»ƒu ihex khÃ´ng Ä‘Æ°á»£c nháº­n ra %u trong táº­p tin tháº­p lá»¥c Intel%C: cáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i â€œ%sâ€� tham chiáº¿u Ä‘áº¿n má»™t Ä‘oáº¡n khÃ¡c
 %F%P: already_linked_table: %E
-%F%P: kÃ½ hiá»‡u STT_GNU_IFUNC Ä‘á»™ng "%s" vá»›i tÃ¬nh tráº¡ng cháº¥t lÆ°á»£ng con trá»� trong "%B" thÃ¬ khÃ´ng dÃ¹ng Ä‘Æ°á»£c khi táº¡o báº£n thá»±c thi; hÃ£y biÃªn dá»‹ch láº¡i vá»›i "-fPIE" vÃ  liÃªn káº¿t láº¡i vá»›i "-pie"
+%F%P: kÃ½ hiá»‡u STT_GNU_IFUNC Ä‘á»™ng â€œ%sâ€� vá»›i tÃ¬nh tráº¡ng cháº¥t lÆ°á»£ng con trá»� trong â€œ%Bâ€� thÃ¬ khÃ´ng dÃ¹ng Ä‘Æ°á»£c khi táº¡o báº£n thá»±c thi; hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPIEâ€� vÃ  liÃªn káº¿t láº¡i vá»›i â€œ-pieâ€�
 %H __tls_get_addr máº¥t Ä‘á»‘i sá»‘, tá»‘i Æ°u hÃ³a TLS bá»‹ táº¯t
 %H arg lost __tls_get_addr, tá»‘i Æ°u hÃ³a TLS bá»‹ táº¯t
 %H: R_FRV_FUNCDESC tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u Ä‘á»™ng vá»›i sá»‘ háº¡ng khÃ¡c khÃ´ng
@@ -874,11 +874,11 @@ Pháº§n Ä‘áº§u ppcboot:
 %H: R_FRV_TLSOFF_RELAX khÃ´ng Ã¡p dá»¥ng tá»›i má»™t chá»‰ dáº«n ld
 %H: khÃ´ng thá»ƒ phÃ¡t ra Ä‘á»‹nh vá»‹ láº¡i Ä‘á»™ng trong pháº§n chá»‰ Ä‘á»�c
 %H: khÃ´ng thá»ƒ phÃ¡t ra sá»± sá»­a chá»¯a trong pháº§n chá»‰ Ä‘á»�c
-%H: Ä‘á»‹nh vá»‹ láº¡i tham chiáº¿u `%s' Ä‘áº¿n má»™t Ä‘oáº¡n khÃ¡c
-%H: reloc láº¡i `%s': %s
+%H: Ä‘á»‹nh vá»‹ láº¡i tham chiáº¿u â€œ%sâ€� Ä‘áº¿n má»™t Ä‘oáº¡n khÃ¡c
+%H: reloc láº¡i â€œ%sâ€�: %s
 %H: Ä‘á»‹nh vá»‹ láº¡i tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u khÃ´ng Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a trong mÃ´-Ä‘un
-%H: Ä‘á»‹nh vá»‹ láº¡i tá»›i "%s+%x" cÃ³ thá»ƒ gÃ¢y ra lá»—i trÃªn
-%P%F: khÃ´ng thá»ƒ dÃ¹ng vá»›i nhau hai tuá»³ chá»�n "--relax" vÃ  "-r"
+%H: Ä‘á»‹nh vá»‹ láº¡i tá»›i â€œ%s+%xâ€� cÃ³ thá»ƒ gÃ¢y ra lá»—i trÃªn
+%P%F: khÃ´ng thá»ƒ dÃ¹ng vá»›i nhau hai tuá»³ chá»�n â€œ--relaxâ€� vÃ  â€œ-râ€�
 %P%X: khÃ´ng thá»ƒ Ä‘á»�c cÃ¡c kÃ½ hiá»‡u: %E
 %P%X: Ä‘oáº¡n chá»‰ cho Ä‘á»�c cÃ³ tÃ¡i Ä‘á»‹nh vá»‹ Ä‘á»™ng.
 %P: %B: khÃ´ng thá»ƒ táº¡o má»¥c gá»‘c %s
@@ -887,49 +887,49 @@ Pháº§n Ä‘áº§u ppcboot:
 %P: %B: Ä‘Ã­ch (%s) cá»§a má»™t Ä‘á»‹nh vá»‹ láº¡i %s náº±m trong pháº§n káº¿t xuáº¥t khÃ´ng Ä‘Ãºng (%s)
 %P: %B: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i báº¥t thÆ°á»�ng
 %P: %B: khÃ´ng rÃµ kiá»ƒu tÃ¡i Ä‘á»‹nh vá»‹ %d cho kÃ½ hiá»‡u %s
-%P: %B: cáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i dá»±a vÃ o %s trong pháº§n chá»‰ Ä‘á»�c `%A'.
-%P: %B: cáº£nh bÃ¡o: tÃ¡i Ä‘á»‹nh vá»‹ trong pháº§n chá»‰ Ä‘á»�c `%A'.
-%P: %H: %s reloc láº¡i `%s': lá»—i %d
+%P: %B: cáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i dá»±a vÃ o %s trong pháº§n chá»‰ Ä‘á»�c â€œ%Aâ€�.
+%P: %B: cáº£nh bÃ¡o: tÃ¡i Ä‘á»‹nh vá»‹ trong pháº§n chá»‰ Ä‘á»�c â€œ%Aâ€�.
+%P: %H: %s reloc láº¡i â€œ%sâ€�: lá»—i %d
 %P: %H: %s reloc dá»±a vÃ o kÃ½ hiá»‡u ná»™i bá»™
 %P: %H: %s tÃ¡i Ä‘á»‹nh vá»‹ tham chiáº¿u tá»‘i Æ°u hÃ³a theo má»¥c TOC
 %P: %H: %s Ä‘Æ°á»£c sá»­ dá»¥ng vá»›i kÃ½ hiá»‡u TLS %s
 %P: %H: %s Ä‘Æ°á»£c sá»­ dá»¥ng vá»›i kÃ½ hiá»‡u khÃ´ng-pháº£i-TLS %s
-%P: %H: tá»± Ä‘á»™ng táº¡o nhiá»�u TOC khÃ´ng Ä‘Æ°á»£c há»— trá»£ khi dÃ¹ng cÃ¡c táº­p tin CRT cá»§a báº¡n; hÃ£y biÃªn dá»‹ch láº¡i vá»›i "-mminimal-toc", hoáº·c nÃ¢ng cáº¥p GCC
+%P: %H: tá»± Ä‘á»™ng táº¡o nhiá»�u TOC khÃ´ng Ä‘Æ°á»£c há»— trá»£ khi dÃ¹ng cÃ¡c táº­p tin CRT cá»§a báº¡n; hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-mminimal-tocâ€�, hoáº·c nÃ¢ng cáº¥p GCC
 %P: %H: lá»—i: %s khÃ´ng pháº£i lÃ  bá»™i sá»‘ cá»§a %u
-%P: %H: sá»‘ háº¡ng khÃ¡c khÃ´ng trÃªn reloc %s dá»±a vÃ o `%s'
+%P: %H: sá»‘ háº¡ng khÃ¡c khÃ´ng trÃªn reloc %s dá»±a vÃ o â€œ%sâ€�
 %P: %H: tÃ¡i á»‹nh vá»‹ láº¡i %s cho hÃ m giÃ¡n tiáº¿p %s khÃ´ng Ä‘Æ°á»£c há»— trá»£
-%P: %H: tá»‘i Æ°u hoÃ¡ cuá»™c gá»�i cÃ¹ng chá»— (sibling) cho "%s" khÃ´ng cho phÃ©p tá»± Ä‘á»™ng táº¡o nhiá»�u TOC; hÃ£y biÃªn dá»‹ch láº¡i vá»›i "-mminimal-toc" hoáº·c "-fno-optimize-sibling-calls", hoáº·c lÃ m cho "%s" bÃªn ngoÃ i
-%P: %H: khÃ´ng Ä‘Ã¡p á»©ng Ä‘Æ°á»£c tÃ¡i Ä‘á»‹nh vá»‹ %s dá»±a vÃ o kÃ½ hiá»‡u `%s'
+%P: %H: tá»‘i Æ°u hoÃ¡ cuá»™c gá»�i cÃ¹ng chá»— (sibling) cho â€œ%sâ€� khÃ´ng cho phÃ©p tá»± Ä‘á»™ng táº¡o nhiá»�u TOC; hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-mminimal-tocâ€� hoáº·c â€œ-fno-optimize-sibling-callsâ€�, hoáº·c lÃ m cho â€œ%sâ€� bÃªn ngoÃ i
+%P: %H: khÃ´ng Ä‘Ã¡p á»©ng Ä‘Æ°á»£c tÃ¡i Ä‘á»‹nh vá»‹ %s dá»±a vÃ o kÃ½ hiá»‡u â€œ%sâ€�
 %P: %s chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a trong bá»™ liÃªn káº¿t Ä‘Ã£ táº¡o ra %s
-%P: %s giÃ¡ trá»‹ bÃ¹ quÃ¡ lá»›n cho mÃ£ hÃ³a '.eh_frame sdata4'%P: DW_EH_PE_datarel chÆ°a Ä‘á»‹nh nghÄ©a cho kiáº¿n trÃºc nÃ y.
+%P: %s giÃ¡ trá»‹ bÃ¹ quÃ¡ lá»›n cho mÃ£ hÃ³a â€œ.eh_frame sdata4â€�%P: DW_EH_PE_datarel chÆ°a Ä‘á»‹nh nghÄ©a cho kiáº¿n trÃºc nÃ y.
 %P: mÃ£ mÃ¡y ELF luÃ¢n phiÃªn Ä‘Æ°á»£c tÃ¬m (%d) trong %B, cÃ²n mong Ä‘á»£i %d
-%P: bss-plt Ä‘Æ°á»£c Ã©p buá»™c bá»Ÿi 'profiling'
+%P: bss-plt Ä‘Æ°á»£c Ã©p buá»™c bá»Ÿi â€œprofilingâ€�
 %P: bss-plt bá»‹ Ã©p buá»™c bá»Ÿi vÃ¬ %B
-%P: khÃ´ng thá»ƒ xÃ¢y dá»±ng nhÃ¡nh gá»‘c `%s'
-%P: khÃ´ng tÃ¬m tháº¥y nhÃ¡nh gá»‘c `%s'
+%P: khÃ´ng thá»ƒ xÃ¢y dá»±ng nhÃ¡nh gá»‘c â€œ%sâ€�
+%P: khÃ´ng tÃ¬m tháº¥y nhÃ¡nh gá»‘c â€œ%sâ€�
 %P: khÃ´ng tÃ¬m tháº¥y má»¥c opd toc(má»¥c lá»¥c) cho %s
-%P: sao chÃ©p reloc (Ä‘á»‹nh vá»‹ láº¡i) "%s" thÃ¬ cáº§n thiáº¿t chá»©c nÄƒng liÃªn káº¿t plt uá»ƒ oáº£i; hÃ£y trÃ¡nh Ä‘áº·t LD_BIND_NOW=1, hoáº·c nÃ¢ng cáº¥p GCC
-%P: biáº¿n kiá»ƒu Ä‘á»™ng `%s' cÃ³ kÃ­ch thÆ°á»›c lÃ  khÃ´ng
+%P: sao chÃ©p reloc (Ä‘á»‹nh vá»‹ láº¡i) â€œ%sâ€� thÃ¬ cáº§n thiáº¿t chá»©c nÄƒng liÃªn káº¿t plt uá»ƒ oáº£i; hÃ£y trÃ¡nh Ä‘áº·t LD_BIND_NOW=1, hoáº·c nÃ¢ng cáº¥p GCC
+%P: biáº¿n kiá»ƒu Ä‘á»™ng â€œ%sâ€� cÃ³ kÃ­ch thÆ°á»›c lÃ  khÃ´ng
 %P: dynreloc (cáº¥p phÃ¡t Ä‘á»™ng) tÃ­nh sai %B, pháº§n %A
 %P: gáº·p lá»—i trong %B(%A); sáº½ khÃ´ng táº¡o báº£ng .eh_frame_hdr nÃ o.
 %P: biÃªn mÃ£ fde trong %B(%A) thÃ¬ ngÄƒn cáº£n táº¡o báº£ng .eh_frame_hdr.
-%P: báº£ng liÃªn káº¿t láº¡i sai `%s'
-%P: máº©u nhÃ¡nh dÃ i "%s" trÃ n khoáº£ng bÃ¹
+%P: báº£ng liÃªn káº¿t láº¡i sai â€œ%sâ€�
+%P: máº©u nhÃ¡nh dÃ i â€œ%sâ€� trÃ n khoáº£ng bÃ¹
 %P: chá»‰ vÃ o nhiá»�u Ä‘iá»ƒm: trong mÃ´-Ä‘un %B vÃ  %B
 %P: liÃªn káº¿t cÃ³ kháº£ nÄƒng tÃ¡i Ä‘á»‹nh vá»‹ khÃ´ng Ä‘Æ°á»£c há»— trá»£
 %P: cÃ¡c máº©u (stubs)  khÃ´ng tÆ°Æ¡ng á»©ng vá»›i kÃ­ch cá»¡ Ä‘Ã£ tÃ­nh
 %P: cáº£nh bÃ¡o: Ä‘ang táº¡o má»™t DT_TEXTREL trong má»™t Ä‘á»‘i tÆ°á»£ng chia sáº».
-%X%C: Ä‘á»‹nh vá»‹ láº¡i "%s" tham chiáº¿u Ä‘áº¿n má»™t segment (Ä‘oáº¡n) khÃ¡c
+%X%C: Ä‘á»‹nh vá»‹ láº¡i â€œ%sâ€� tham chiáº¿u Ä‘áº¿n má»™t segment (Ä‘oáº¡n) khÃ¡c
 %X%P: pháº§n phá»§ %A khÃ´ng báº¯t Ä‘áº§u á»Ÿ má»™t dÃ²ng nhá»› táº¡m.
 %X%P: pháº§n phá»§ %A lá»›n hÆ¡n má»™t dÃ²ng nhá»› táº¡m.
 %X%P: pháº§n phá»§ %A khÃ´ng pháº£i trong vÃ¹ng nhá»› táº¡m.
 %X%P: hai pháº§n phá»§ %A vÃ  %A khÃ´ng báº¯t Ä‘áº§u á»Ÿ cÃ¹ng má»™t Ä‘á»‹a chá»‰.
-%X"%s" Ä‘Æ°á»£c tham chiáº¿u trong pháº§n "%A" cá»§a %B: Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a trong pháº§n bá»‹ há»§y "%A" cá»§a %B
+%Xâ€�%sâ€� Ä‘Æ°á»£c tham chiáº¿u trong pháº§n â€œ%Aâ€� cá»§a %B: Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a trong pháº§n bá»‹ há»§y â€œ%Aâ€� cá»§a %B
 %s Ä‘Ã£ Ä‘á»‹nh nghÄ©a trÃªn má»¥c cá»§a má»¥c lá»¥c Ä‘Ã£ bá»‹ gá»¡ bá»�%s bá»‹ nhÃ¢n Ä‘Ã´i
 %s bá»‹ nhÃ¢n Ä‘Ã´i trong %s
 %s trong pháº§n phá»§%s(%s): Ä‘á»‹nh vá»‹ láº¡i %d cÃ³ chá»‰ má»¥c kÃ½ hiá»‡u khÃ´ng há»£p lá»‡ %ld%s: %s: trÃ n Ä‘á»‹nh vá»‹ láº¡i: 0x%lx > 0xffff%s: 0x%v 0x%v
-%s: Sai xÃ¡c Ä‘á»‹nh kÃ½ hiá»‡u: "Main" (chÃ­nh) Ä‘Æ°á»£c Ä‘áº·t thÃ nh %s hÆ¡n lÃ  Ä‘á»‹a chá»‰ Ä‘áº§u %s
-%s: Lá»—i: Ä‘á»‹nh nghÄ©a nhiá»�u láº§n "%s"; Ä‘áº§u cá»§a %s Ä‘Æ°á»£c Ä‘áº·t
+%s: Sai xÃ¡c Ä‘á»‹nh kÃ½ hiá»‡u: â€œMainâ€� (chÃ­nh) Ä‘Æ°á»£c Ä‘áº·t thÃ nh %s hÆ¡n lÃ  Ä‘á»‹a chá»‰ Ä‘áº§u %s
+%s: Lá»—i: Ä‘á»‹nh nghÄ©a nhiá»�u láº§n â€œ%sâ€�; Ä‘áº§u cá»§a %s Ä‘Æ°á»£c Ä‘áº·t
 trong má»™t táº­p tin Ä‘Ã£ liÃªn káº¿t sá»›m hÆ¡n
 %s: Lá»—i GAS: chá»‰ dáº«n PTB báº¥t thÆ°á»�ng vá»›i R_SH_PT_16%s: Gáº·p lá»—i mÃ¢u thuáº«n ná»™i bá»™ cho giÃ¡ trá»‹ cá»§a thanh ghi toÃ n cá»¥c
 cáº¥p phÃ¡t cho bá»™ liÃªn káº¿t:
@@ -937,44 +937,44 @@ Ä‘Ã£ liÃªn káº¿t: 0x%lx%08lx != Ä‘Ã£ giá
 %s: Ä�Ã£ xuáº¥t kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng há»£p lá»‡: %d%s: chá»‰ thá»‹ LOCAL (cá»¥c bá»™): Thanh ghi $%ld khÃ´ng pháº£i lÃ  má»™t thanh ghi cá»¥c bá»™.
 Thanh ghi toÃ n cá»¥c thá»© nháº¥t lÃ  $%ld.%s: Ä‘á»‹nh vá»‹ láº¡i dáº¡ng sai Ä‘Æ°á»£c phÃ¡t hiá»‡n cho pháº§n %s%s: KhÃ´ng cÃ³ lÃµi nÃ o Ä‘á»ƒ cáº¥p phÃ¡t má»™t kÃ½ hiá»‡u cÃ³ chiá»�u dÃ i %d byte
 %s: KhÃ´ng cÃ³ lÃµi nÃ o Ä‘á»ƒ cáº¥p phÃ¡t tÃªn pháº§n %s
-%s: lá»�i Ä‘á»‹nh nghÄ©a TLS trong %B pháº§n %A khÃ´ng tÆ°Æ¡ng á»©ng vá»›i lá»�i Ä‘á»‹nh nghÄ©a TLS trong %B pháº§n %A%s: lá»�i Ä‘á»‹nh nghÄ©a TLS trong %B pháº§n %A khÃ´ng tÆ°Æ¡ng á»©ng vá»›i lá»�i Ä‘á»‹nh nghÄ©a khÃ¡c TLS trong %B%s: lá»�i Ä‘á»‹nh nghÄ©a TLS trong %B khÃ´ng tÆ°Æ¡ng á»©ng vá»›i lá»�i Ä‘á»‹nh nghÄ©a khÃ¡c TLS trong %B pháº§n %A%s: lá»�i Ä‘á»‹nh nghÄ©a TLS trong %B khÃ´ng tÆ°Æ¡ng á»©ng vá»›i lá»�i Ä‘á»‹nh nghÄ©a khÃ¡c TLS trong %B%s: Ä‘á»‹nh vá»‹ láº¡i TOC táº¡i 0x%x tá»›i kÃ½ hiá»‡u "%s" khÃ´ng cÃ³ má»¥c nháº­p TOC%s: Ä�Ã­ch (%s) cá»§a má»™t sá»± Ä‘á»‹nh vá»‹ láº¡i %s náº±m trong pháº§n khÃ´ng Ä‘Ãºng (%s)%s: cÃ³ Ä‘á»‘i tÆ°á»£ng dÃ¹ng chung XCOFF khi khÃ´ng xuáº¥t dá»¯ liá»‡u XCOFF%s: __gp khÃ´ng tráº£i ra Ä‘oáº¡n dá»¯ liá»‡u ngáº¯n%s: truy cáº­p vÆ°á»£t quÃ¡ káº¿t thÃºc cá»§a pháº§n Ä‘Ã£ gá»™p láº¡i (%ld)%s: Ä‘á»‹a chá»‰ 0x%s á»Ÿ ngoáº¡i pháº¡m vi Ä‘á»‘i vá»›i táº­p tin tháº­p lá»¥c Intel%s: Ä‘á»‹nh vá»‹ láº¡i base-plus-offset so vá»›i kÃ½ hiá»‡u thanh ghi: %s trong %s%s: Ä‘á»‹nh vá»‹ láº¡i base-plus-offset so vá»›i kÃ½ hiá»‡u thanh ghi: (khÃ´ng rÃµ) trong %s%s: khÃ´ng thá»ƒ Ä‘áº¡i diá»‡n phÃ¢n "%s" trong Ä‘á»‹nh dáº¡ng táº­p tin Ä‘á»‘i tÆ°á»£ng a.out%s: khÃ´ng thá»ƒ Ä‘áº¡i diá»‡n pháº§n "%s" theo oasys%s: khÃ´ng thá»ƒ Ä‘áº¡i diá»‡n phÃ¢n cho kÃ½ hiá»‡u "%s" trong Ä‘á»‹nh dáº¡ng táº­p tin Ä‘á»‘i tÆ°á»£ng a.ou%s: khÃ´ng thá»ƒ cáº¥p phÃ¡t tÃªn táº­p tin cho tÃªn sá»‘ %d, %d byte
+%s: lá»�i Ä‘á»‹nh nghÄ©a TLS trong %B pháº§n %A khÃ´ng tÆ°Æ¡ng á»©ng vá»›i lá»�i Ä‘á»‹nh nghÄ©a TLS trong %B pháº§n %A%s: lá»�i Ä‘á»‹nh nghÄ©a TLS trong %B pháº§n %A khÃ´ng tÆ°Æ¡ng á»©ng vá»›i lá»�i Ä‘á»‹nh nghÄ©a khÃ¡c TLS trong %B%s: lá»�i Ä‘á»‹nh nghÄ©a TLS trong %B khÃ´ng tÆ°Æ¡ng á»©ng vá»›i lá»�i Ä‘á»‹nh nghÄ©a khÃ¡c TLS trong %B pháº§n %A%s: lá»�i Ä‘á»‹nh nghÄ©a TLS trong %B khÃ´ng tÆ°Æ¡ng á»©ng vá»›i lá»�i Ä‘á»‹nh nghÄ©a khÃ¡c TLS trong %B%s: Ä‘á»‹nh vá»‹ láº¡i TOC táº¡i 0x%x tá»›i kÃ½ hiá»‡u â€œ%sâ€� khÃ´ng cÃ³ má»¥c nháº­p TOC%s: Ä�Ã­ch (%s) cá»§a má»™t sá»± Ä‘á»‹nh vá»‹ láº¡i %s náº±m trong pháº§n khÃ´ng Ä‘Ãºng (%s)%s: cÃ³ Ä‘á»‘i tÆ°á»£ng dÃ¹ng chung XCOFF khi khÃ´ng xuáº¥t dá»¯ liá»‡u XCOFF%s: __gp khÃ´ng tráº£i ra Ä‘oáº¡n dá»¯ liá»‡u ngáº¯n%s: truy cáº­p vÆ°á»£t quÃ¡ káº¿t thÃºc cá»§a pháº§n Ä‘Ã£ gá»™p láº¡i (%ld)%s: Ä‘á»‹a chá»‰ 0x%s á»Ÿ ngoáº¡i pháº¡m vi Ä‘á»‘i vá»›i táº­p tin tháº­p lá»¥c Intel%s: Ä‘á»‹nh vá»‹ láº¡i base-plus-offset so vá»›i kÃ½ hiá»‡u thanh ghi: %s trong %s%s: Ä‘á»‹nh vá»‹ láº¡i base-plus-offset so vá»›i kÃ½ hiá»‡u thanh ghi: (khÃ´ng rÃµ) trong %s%s: khÃ´ng thá»ƒ Ä‘áº¡i diá»‡n phÃ¢n â€œ%sâ€� trong Ä‘á»‹nh dáº¡ng táº­p tin Ä‘á»‘i tÆ°á»£ng a.out%s: khÃ´ng thá»ƒ Ä‘áº¡i diá»‡n pháº§n â€œ%sâ€� theo oasys%s: khÃ´ng thá»ƒ Ä‘áº¡i diá»‡n phÃ¢n cho kÃ½ hiá»‡u â€œ%sâ€� trong Ä‘á»‹nh dáº¡ng táº­p tin Ä‘á»‘i tÆ°á»£ng a.ou%s: khÃ´ng thá»ƒ cáº¥p phÃ¡t tÃªn táº­p tin cho tÃªn sá»‘ %d, %d byte
 %s: khÃ´ng thá»ƒ táº¡o má»¥c nháº­p máº©u %s%s: khÃ´ng thá»ƒ liÃªn káº¿t táº­p tin Ä‘á»‘i tÆ°á»£ng khÃ¡c fdpic vÃ o táº­p tin khÃ¡c fdpic cÃ³ thá»ƒ thá»±c hiá»‡n%s: khÃ´ng thá»ƒ liÃªn káº¿t táº­p tin Ä‘á»‘i tÆ°á»£ng khÃ¡c fdpic vÃ o táº­p tin fdpic cÃ³ thá»ƒ thá»±c hiá»‡n%s: biÃªn dá»‹ch nhÆ° má»™t Ä‘á»‘i tÆ°á»£ng 32-bit vÃ  %s lÃ  64-bit%s: biÃªn dá»‹ch nhÆ° má»™t Ä‘á»‘i tÆ°á»£ng 64-bit vÃ  %s lÃ  32-bit%s: biÃªn dá»‹ch vá»›i %s vÃ  liÃªn káº¿t vá»›i mÃ´Ä‘un biÃªn dá»‹ch vá»›i %s%s: biÃªn dá»‹ch vá»›i %s vÃ  liÃªn káº¿t vá»›i mÃ´Ä‘un sá»­ dá»¥ng Ä‘á»‹nh vá»‹ láº¡i khÃ¡c pic%s: khÃ´ng thá»ƒ ghi ra cÃ¡c má»¥c nháº­p .cranges Ä‘Ã£ thÃªm%s: khÃ´ng thá»ƒ ghi ra cÃ¡c má»¥c nháº­p .cranges Ä‘Ã£ sáº¯p xáº¿p%s: chá»‰ thá»‹ LOCAL (cá»¥c bá»™) há»£p lá»‡ chá»‰ vá»›i má»™t thanh ghi hoáº·c giÃ¡ trá»‹ tuyá»‡t Ä‘á»‘i%s Ä‘á»‘i tÆ°á»£ng Ä‘á»™ng khÃ´ng cÃ³ pháº§n .loader%s: gáº·p kÃ½ hiá»‡u nhÃ£n dá»¯ liá»‡u trong dá»¯ liá»‡u nháº­p vÃ o%s: lá»—i: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i chÆ°a sáº¯p hÃ ng %d á»Ÿ %08x Ä‘á»‹nh vá»‹ láº¡i %08x
-%s: tÃªn pháº§n cáº¥m "%s"%s: gáº·p lá»—i ná»™i bá»™: pháº§n thanh ghi ná»™i bá»™ %s cÃ³ ná»™i dung
+%s: tÃªn pháº§n cáº¥m â€œ%sâ€�%s: gáº·p lá»—i ná»™i bá»™: pháº§n thanh ghi ná»™i bá»™ %s cÃ³ ná»™i dung
 %s: gáº·p lá»—i ná»™i bá»™: báº£ng kÃ½ hiá»‡u Ä‘Ã£ thay Ä‘á»•i kÃ­ch cá»¡ tá»« %d thÃ nh %d tá»«
 %s: táº­p tin mmo khÃ´ng há»£p lá»‡: YZ cá»§a lop_end (%ld) khÃ´ng pháº£i báº±ng vá»›i sá»‘ tetra tá»›i lop_stab Ä‘i trÆ°á»›c (%ld)
 %s: táº­p tin mmo khÃ´ng há»£p lá»‡: Ä‘á»£i YZ=1, cÃ²n nháº­n YZ=%d Ä‘á»‘i vá»›i lop_quote (trÃ­ch dáº«n)
 %s: táº­p tin mmo khÃ´ng há»£p lá»‡: Ä‘á»£i y=0, cÃ²n nháº­n y=%d cho lop_fixrx
-%s: táº­p tin mmo khÃ´ng há»£p lá»‡: Ä‘á»£i z=1 hoáº·c z=2, cÃ²n nháº­n z=%d Ä‘á»‘i vá»›i lop_fixo
+%s: táº­p tin mmo khÃ´ng há»£p lá»‡: cáº§n z=1 hoáº·c z=2, nhÆ°ng nháº­n z=%d Ä‘á»‘i vá»›i lop_fixo
 %s: táº­p tin mmo khÃ´ng há»£p lá»‡: Ä‘á»£i z=1 hoáº·c z=2, cÃ²n nháº­n z=%d Ä‘á»‘i vá»›i lop_loc (Ä‘á»‹nh vá»‹)
 %s: táº­p tin mmo khÃ´ng há»£p lá»‡: Ä‘á»£i z=16 hoáº·c z=24, cÃ²n nháº­n z=%d Ä‘á»‘i vá»›i lop_fixrx
 %s: táº­p tin mmo khÃ´ng há»£p lá»‡: hai trÆ°á»�ng y vÃ  z cá»§a lop_stab khÃ´ng pháº£i lÃ  sá»‘ khÃ´ng, y: %d, z: %d
 %s: táº­p tin mmo khÃ´ng há»£p lá»‡: tÃªn táº­p tin cho sá»‘ %d Ä‘Ã£ khÃ´ng Ä‘Æ°á»£c ghi rÃµ trÆ°á»›c khi dÃ¹ng
-%s: táº­p tin mmo khÃ´ng há»£p lá»‡: táº­p tin sá»‘ %d "%s" Ä‘Ã£ Ä‘Æ°á»£c nháº­p vÃ o dáº¡ng "%s"
-%s: táº­p tin mmo khÃ´ng há»£p lá»‡: giÃ¡ trá»‹ khá»Ÿi táº¡o cho $255 khÃ´ng pháº£i lÃ  "Main" (chÃ­nh)
+%s: táº­p tin mmo khÃ´ng há»£p lá»‡: táº­p tin sá»‘ %d â€œ%sâ€� Ä‘Ã£ Ä‘Æ°á»£c nháº­p vÃ o dáº¡ng â€œ%sâ€�
+%s: táº­p tin mmo khÃ´ng há»£p lá»‡: giÃ¡ trá»‹ khá»Ÿi táº¡o cho $255 khÃ´ng pháº£i lÃ  â€œMainâ€� (chÃ­nh)
 %s: táº­p tin mmo khÃ´ng há»£p lá»‡: byte Ä‘á»©ng Ä‘áº§u cá»§a tÃªn sá»‘ háº¡ng pháº£i lÃ  0 hoáº·c 1, cÃ²n nháº­n %d Ä‘á»‘i vá»›i lop_fixrx
 %s: táº­p tin mmo khÃ´ng há»£p lá»‡: lop_end khÃ´ng pháº£i lÃ  má»¥c cuá»‘i cÃ¹ng trong táº­p tin
-%s: táº­p tin mmo khÃ´ng há»£p lá»‡: mÃ£ lop khÃ´ng Ä‘Æ°á»£c há»— trá»£ "%d"
+%s: táº­p tin mmo khÃ´ng há»£p lá»‡: mÃ£ lop khÃ´ng Ä‘Æ°á»£c há»— trá»£ â€œ%dâ€�
 %s: Ä‘á»‹a chá»‰ Ä‘áº§u khÃ´ng há»£p lá»‡ cho cÃ¡c thanh ghi Ä‘Ã£ khá»Ÿi táº¡o cÃ³ chiá»�u dÃ i %ld: 0x%lx% 08lx
-%s: báº£ng kÃ½ hiá»‡u khÃ´ng há»£p lá»‡: kÃ½ hiá»‡u trÃ¹ng "%s"
+%s: báº£ng kÃ½ hiá»‡u khÃ´ng há»£p lá»‡: kÃ½ hiá»‡u trÃ¹ng â€œ%sâ€�
 %s: trÃ n sá»‘ thá»© tá»± dÃ²ng: 0x%lx > 0xffff%s: khÃ´ng cÃ³ thanh ghi Ä‘Ã£ khá»Ÿi táº¡o, chiá»�u dÃ i pháº§n 0
 %s: khÃ´ng cÃ³ kÃ½ hiá»‡u nhÆ° váº­y%s: chÆ°a Ä‘Æ°á»£c thá»±c hiá»‡n%s: khÃ´ng Ä‘Æ°á»£c há»— trá»£%s: kÃ­ch cá»¡ Ä‘á»‘i tÆ°á»£ng khÃ´ng tÆ°Æ¡ng á»©ng vá»›i kÃ­ch cá»¡ cá»§a Ä‘Ã­ch %s%s: Ä‘á»‹nh vá»‹ láº¡i thanh ghi so vá»›i kÃ½ hiá»‡u khÃ¡c thanh ghi: %s trong %s%s: Ä‘á»‹nh vá»‹ láº¡i thanh ghi so vá»›i kÃ½ hiá»‡u khÃ¡c thanh ghi: (khÃ´ng rÃµ) trong %s%s: khÃ´ng há»— trá»£ liÃªn káº¿t cÃ³ kháº£ nÄƒng Ä‘á»‹nh vá»‹ láº¡i tá»« %s sang %s%s: trÃ n Ä‘oáº¡n dá»¯ liá»‡u ngáº¯n (0x%lx â‰¥ 0x400000)%s: chuá»—i quÃ¡ dÃ i (%d kÃ½ tá»±, tá»‘i Ä‘a 65535)%s: quÃ¡ nhiá»�u thanh ghi Ä‘Ã£ khá»Ÿi táº¡o ; chiá»�u dÃ i pháº§n %ld
-%s: phiÃªn báº£n chÆ°a Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh: %s%s: khÃ´ng rÃµ loáº¡i Ä‘á»‹nh vá»‹ láº¡i %d%s: khÃ´ng nháº­n ra kÃ½ hiÃªu "%s" cÃ¡c cá»� 0x%x%s: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£ 0x%02x%s: dÃ£y kÃ½ tá»± rá»™ng khÃ´ng Ä‘Æ°á»£c há»— trá»£ 0x%02X 0x%02X Ä‘áº±ng sau tÃªn kÃ½ hiá»‡u báº¯t Ä‘áº§u vá»›i "%s"
-%s: sá»­ dá»¥ng trÆ°á»�ng e_flags (0x%lx) khÃ¡c vá»›i mo-Ä‘un trÆ°á»›c (0x%lx)%s: sá»­ dá»¥ng trÆ°á»�ng e_flags khÃ´ng rÃµ (0x%lx) khÃ¡c vá»›i moÄ‘un trÆ°á»›c (0x%lx)%s: sá»‘ Ä‘áº¿m phiÃªn báº£n (%ld) khÃ´ng tÆ°Æ¡ng á»©ng vá»›i sá»‘ Ä‘áº¿m kÃ½ hiá»‡u (%ld)%s: cáº£nh báº£o lÃµi táº­p tin bá»‹ cáº¯t ngáº¯n%s: cáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i %s so vá»›i kÃ½ hiá»‡u "%s" tá»« pháº§n %s%s: cáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i %s sang 0x%x tá»« pháº§n %s%s: cáº£nh bÃ¡o: %s: trÃ n sá»‘ thá»© tá»± dÃ²ng: 0x%lx > 0xffff%s: cáº£nh bÃ¡o: sá»‘ háº¡ng GOT cá»§a %ld cho "%s" khÃ´ng tÆ°Æ¡ng á»©ng vá»›i sá»‘ háº¡ng GOT trÆ°á»›c cá»§a %ld%s: cáº£nh bÃ¡o: sá»‘ háº¡ng PLT cá»§a %d cho "%s" tá»« pháº§n %s bá»‹ bá»� qua%s: cáº£nh bÃ¡o: chá»‰ má»¥c kÃ½ hiá»‡u cáº¥m %ld trong cÃ¡c Ä‘á»‹nh vá»‹ láº¡i%s: cáº£nh bÃ¡o: báº£ng kÃ½ hiá»‡u quÃ¡ lá»›n cho mmo, lá»›n hÆ¡n 65535 tá»« 32-bit: %d, nÃªn chá»‰ phÃ¡t ra "Main" (chÃ­nh).
+%s: phiÃªn báº£n chÆ°a Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh: %s%s: khÃ´ng rÃµ loáº¡i Ä‘á»‹nh vá»‹ láº¡i %d%s: khÃ´ng nháº­n ra kÃ½ hiÃªu â€œ%sâ€� cÃ¡c cá»� 0x%x%s: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£ 0x%02x%s: dÃ£y kÃ½ tá»± rá»™ng khÃ´ng Ä‘Æ°á»£c há»— trá»£ 0x%02X 0x%02X Ä‘áº±ng sau tÃªn kÃ½ hiá»‡u báº¯t Ä‘áº§u vá»›i â€œ%sâ€�
+%s: sá»­ dá»¥ng trÆ°á»�ng e_flags (0x%lx) khÃ¡c vá»›i mo-Ä‘un trÆ°á»›c (0x%lx)%s: sá»­ dá»¥ng trÆ°á»�ng e_flags khÃ´ng rÃµ (0x%lx) khÃ¡c vá»›i moÄ‘un trÆ°á»›c (0x%lx)%s: sá»‘ Ä‘áº¿m phiÃªn báº£n (%ld) khÃ´ng tÆ°Æ¡ng á»©ng vá»›i sá»‘ Ä‘áº¿m kÃ½ hiá»‡u (%ld)%s: cáº£nh báº£o lÃµi táº­p tin bá»‹ cáº¯t ngáº¯n%s: cáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i %s so vá»›i kÃ½ hiá»‡u â€œ%sâ€� tá»« pháº§n %s%s: cáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i %s sang 0x%x tá»« pháº§n %s%s: cáº£nh bÃ¡o: %s: trÃ n sá»‘ thá»© tá»± dÃ²ng: 0x%lx > 0xffff%s: cáº£nh bÃ¡o: sá»‘ háº¡ng GOT cá»§a %ld cho â€œ%sâ€� khÃ´ng tÆ°Æ¡ng á»©ng vá»›i sá»‘ háº¡ng GOT trÆ°á»›c cá»§a %ld%s: cáº£nh bÃ¡o: sá»‘ háº¡ng PLT cá»§a %d cho â€œ%sâ€� tá»« pháº§n %s bá»‹ bá»� qua%s: cáº£nh bÃ¡o: chá»‰ má»¥c kÃ½ hiá»‡u cáº¥m %ld trong cÃ¡c Ä‘á»‹nh vá»‹ láº¡i%s: cáº£nh bÃ¡o: báº£ng kÃ½ hiá»‡u quÃ¡ lá»›n cho mmo, lá»›n hÆ¡n 65535 tá»« 32-bit: %d, nÃªn chá»‰ phÃ¡t ra â€œMainâ€� (chÃ­nh).
 (táº¡i bÃ­t bÃ¹ %u)
 (bá»™ mÃ´ táº£)
 (khÃ´ng cÃ³ giÃ¡ trá»‹)
 (khÃ´ng hoáº¡t Ä‘á»™ng)
 (chÆ°a Ä‘Æ°á»£c cáº¥p phÃ¡t)
-(reg: %u, disp: %u, indir: %u, kind: (dá»¯ liá»‡u cá»¥c bá»™ vá»›i máº¡ch cÅ©ng quÃ¡ lá»›n Ä‘á»‘i vá»›i "fpic" hoáº·c "-msmall-tls": hÃ£y biÃªn dá»‹ch láº¡i vá»›i "-fPIC" hay "-mno-small-tls")(quÃ¡ nhiá»�u biáº¿n toÃ n cá»¥c Ä‘á»‘i vá»›i "-fpic": hÃ£y biÃªn dá»‹ch láº¡i vá»›i "-fPIC")(giÃ¡ trá»‹ cá»§a dáº¥u váº¿t)
+(reg: %u, disp: %u, indir: %u, kind: (dá»¯ liá»‡u cá»¥c bá»™ vá»›i máº¡ch cÅ©ng quÃ¡ lá»›n Ä‘á»‘i vá»›i â€œfpicâ€� hoáº·c â€œ-msmall-tlsâ€�: hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€� hay â€œ-mno-small-tlsâ€�)(quÃ¡ nhiá»�u biáº¿n toÃ n cá»¥c Ä‘á»‘i vá»›i â€œ-fpicâ€�: hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€�)(giÃ¡ trá»‹ cá»§a dáº¥u váº¿t)
 (giÃ¡ trá»‹ spec sau Ä‘Ã¢y)
 )
 *** kiá»ƒm tra tÃ¡i phÃ¢n bá»• nÃ y %s*khÃ´ng Ä‘Æ°á»£c quáº£n lÃ½*
 kiá»ƒu dst *chÆ°a Ä‘Æ°á»£c cáº§m* %u
 â€¢ khÃ´ng rÃµ â€¢â€¢ khÃ´ng rÃµ â€¢, bÃ­ danh: %u
 , khoáº£ng bÃ¹ sá»­a chá»¯a ext: %u, no_opt psect táº¯t: %u, kiá»ƒucon: %u (%s)
-, vÃ©c-tÆ¡ kÃ½ hiá»‡u rva: Pháº§n .got khÃ´ng náº±m ngay sau pháº§n .pit32-bit Ä‘Ã´i, Ä‘á»‹nh vá»‹ láº¡i tÆ°Æ¡ng Ä‘á»‘i 32-bit gp xáº£y ra cho má»™t kÃ½ hiá»‡u bÃªn ngoÃ i64 bits *chÆ°a Ä‘Æ°á»£c náº¯m giá»¯*
+, vÃ©c-tÆ¡ kÃ½ hiá»‡u rva: Pháº§n .got khÃ´ng náº±m ngay sau pháº§n .pit32-bit kÃ©p, Ä‘á»‹nh vá»‹ láº¡i tÆ°Æ¡ng Ä‘á»‘i 32-bit gp xáº£y ra cho má»™t kÃ½ hiá»‡u bÃªn ngoÃ i64 bits *chÆ°a Ä‘Æ°á»£c náº¯m giá»¯*
 64-bit Ä‘Ã´i, : %u.%u
-: chá»‰ dáº«n m32r: chá»‰ dáº«n m32r2: chá»‰ dáº«n m32rx; biÃªn dá»‹ch láº¡i vá»›i "-fPIC"<CÃ¡c bit cá»� khÃ´ng Ä‘Æ°á»£c nháº­n ra Ä‘Ã£ Ä‘Æ°á»£c Ä‘áº·t><khÃ´ng rÃµ>Ä‘á»‹nh vá»‹ láº¡i @pltoff so vá»›i kÃ½ hiá»‡u cá»¥c bá»™Kho khÃ´ng cÃ³ chá»‰ má»¥c: hÃ£y cháº¡y ranlib Ä‘á»ƒ thÃªmTáº­p tin Ä‘á»‘i tÆ°á»£ng kho cÃ³ Ä‘á»‹nh dáº¡ng khÃ´ng Ä‘ÃºngLá»—i thá»­ chuyá»ƒn Ä‘á»•i L32R/CALLX sang CALLThá»­ lÃ m liÃªn káº¿t cÃ³ kháº£ nÄƒng Ä‘á»‹nh vá»‹ láº¡i vá»›i Ä‘áº§u vÃ o %s vÃ  Ä‘áº§u ra %sBASE_IMAGE       BFD %s kháº¯ng Ä‘á»‹nh bá»‹ lá»—i %s:%dBFD %s lá»—i ná»™i bá»™ nÃªn há»§y bá»� táº¡i %s dÃ²ng %d
+: chá»‰ dáº«n m32r: chá»‰ dáº«n m32r2: chá»‰ dáº«n m32rx; biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€�<CÃ¡c bit cá»� khÃ´ng Ä‘Æ°á»£c nháº­n ra Ä‘Ã£ Ä‘Æ°á»£c Ä‘áº·t><khÃ´ng rÃµ>Ä‘á»‹nh vá»‹ láº¡i @pltoff so vá»›i kÃ½ hiá»‡u cá»¥c bá»™Kho khÃ´ng cÃ³ chá»‰ má»¥c: hÃ£y cháº¡y ranlib Ä‘á»ƒ thÃªmTáº­p tin Ä‘á»‘i tÆ°á»£ng kho cÃ³ Ä‘á»‹nh dáº¡ng khÃ´ng Ä‘ÃºngLá»—i thá»­ chuyá»ƒn Ä‘á»•i L32R/CALLX sang CALLThá»­ lÃ m liÃªn káº¿t cÃ³ kháº£ nÄƒng Ä‘á»‹nh vá»‹ láº¡i vá»›i Ä‘áº§u vÃ o %s vÃ  Ä‘áº§u ra %sBASE_IMAGE       BFD %s kháº¯ng Ä‘á»‹nh bá»‹ lá»—i %s:%dBFD %s lá»—i ná»™i bá»™ nÃªn há»§y bá»� táº¡i %s dÃ²ng %d
 BFD %s lá»—i ná»™i bá»™ nÃªn há»§y bá»� táº¡i %s dÃ²ng %d trong %s
 BFD Lá»—i liÃªn káº¿t: ráº½ nhÃ¡nh (PC rel16) tá»›i pháº§n (%s) khÃ´ng Ä‘Æ°á»£c há»— trá»£BFD Lá»—i liÃªn káº¿t: nháº£y (PC rel16) tá»›i pháº§n (%s) khÃ´ng Ä‘Æ°á»£c há»— trá»£GiÃ¡ trá»‹ saiThÆ° má»¥c Ä�á»‹nh vá»‹ láº¡i CÆ¡ báº£n [.reloc]ThÆ° má»¥c Nháº­p Ä‘Ã£ Ä�Ã³ng káº¿tCÃ¡c giá»›i háº¡n:
 CLIPháº§n Ä‘áº§u LÃºc cháº¡y CLRCLUSTERS_LOCKMGR COUNTERS         CPU              CTL_AUGRB (augment relocation base) %u
@@ -987,7 +987,7 @@ Thanh ghi toÃ n cá»¥c thá»© nháº¥t lÃ  $
 Báº£ng kÃ½ hiá»‡u gá»¡ lá»—i:
 ThÆ° má»¥c Nháº­p HoÃ£n%s bá»‹ pháº£n Ä‘á»‘i Ä‘Æ°á»£c gá»�i
 %s bá»‹ pháº£n Ä‘á»‘i Ä‘Æ°á»£c gá»�i táº¡i dÃ²ng %s %d trong %s
-ThÆ° má»¥c MÃ´ táº£Lá»—i Dwarf: Sá»‘ viáº¿t táº¯t sai: %u.Lá»—i Dwarf: khÃ´ng tÃ¬m tháº¥y pháº§n %s.Lá»—i Dwarf: KhÃ´ng tÃ¬m tháº¥y sá»‘ viáº¿t táº¯t %u.Lá»—i Dwarf: Sá»‘ thao tÃ¡c trÃªn má»—i chá»‰ lá»‡nh tá»‘i Ä‘a khÃ´ng há»£p lá»‡.Lá»—i Dwarf: GiÃ¡ trá»‹ FORM sai hoáº·c chÆ°a Ä‘Æ°á»£c xá»­ lÃ½: %u.Lá»—i Dwarf: Khoáº£ng bÃ¹ dÃ²ng (%lu) lá»›n hÆ¡n hoáº·c báº±ng kÃ­ch cá»¡ %s (%lu).Lá»—i Dwarf: PhiÃªn báº£n .debug_line chÆ°a Ä‘Æ°á»£c quáº£n lÃ½ %d.Lá»—i Dwarf: tÃ¬m tháº¥y kÃ­ch cá»¡ Ä‘á»‹a chá»‰ "%u", nhÆ°ng trÃ¬nh Ä‘á»�c nÃ y khÃ´ng Ä‘iá»�u khiá»ƒn Ä‘Æ°á»£c kÃ­ch cá»¡ lá»›n hÆ¡n "%u".Lá»—i Dwarf: tÃ¬m tháº¥y dwarf phiÃªn báº£n "%u", nhÆ°ng trÃ¬nh Ä‘á»�c nÃ y chá»‰ cÃ³ thá»ƒ náº¯m báº¯t Ä‘Æ°á»£c thÃ´ng tin cá»§a phiÃªn báº£n 2, 3 vÃ  4.Lá»—i Dwarf: pháº§n sá»‘ thá»© tá»± dÃ²ng Ä‘Ã£ rá»‘i (sá»‘ thá»© tá»± táº­p tin sai).Lá»—i Dwarf: pháº§n sá»‘ thá»© tá»± dÃ²ng Ä‘Ã£ rá»‘i.EIHD: (kÃ­ch thÆ°á»›c: %u, khá»‘i nbr: %u)
+ThÆ° má»¥c MÃ´ táº£Lá»—i Dwarf: Sá»‘ viáº¿t táº¯t sai: %u.Lá»—i Dwarf: khÃ´ng tÃ¬m tháº¥y pháº§n %s.Lá»—i Dwarf: KhÃ´ng tÃ¬m tháº¥y sá»‘ viáº¿t táº¯t %u.Lá»—i Dwarf: Sá»‘ thao tÃ¡c trÃªn má»—i chá»‰ lá»‡nh tá»‘i Ä‘a khÃ´ng há»£p lá»‡.Lá»—i Dwarf: GiÃ¡ trá»‹ FORM sai hoáº·c chÆ°a Ä‘Æ°á»£c xá»­ lÃ½: %u.Lá»—i Dwarf: Khoáº£ng bÃ¹ dÃ²ng (%lu) lá»›n hÆ¡n hoáº·c báº±ng kÃ­ch cá»¡ %s (%lu).Lá»—i Dwarf: PhiÃªn báº£n .debug_line chÆ°a Ä‘Æ°á»£c quáº£n lÃ½ %d.Lá»—i Dwarf: tÃ¬m tháº¥y kÃ­ch cá»¡ Ä‘á»‹a chá»‰ â€œ%uâ€�, nhÆ°ng trÃ¬nh Ä‘á»�c nÃ y khÃ´ng Ä‘iá»�u khiá»ƒn Ä‘Æ°á»£c kÃ­ch cá»¡ lá»›n hÆ¡n â€œ%uâ€�.Lá»—i Dwarf: tÃ¬m tháº¥y dwarf phiÃªn báº£n â€œ%uâ€�, nhÆ°ng trÃ¬nh Ä‘á»�c nÃ y chá»‰ cÃ³ thá»ƒ náº¯m báº¯t Ä‘Æ°á»£c thÃ´ng tin cá»§a phiÃªn báº£n 2, 3 vÃ  4.Lá»—i Dwarf: pháº§n sá»‘ thá»© tá»± dÃ²ng Ä‘Ã£ rá»‘i (sá»‘ thá»© tá»± táº­p tin sai).Lá»—i Dwarf: pháº§n sá»‘ thá»© tá»± dÃ²ng Ä‘Ã£ rá»‘i.EIHD: (kÃ­ch thÆ°á»›c: %u, khá»‘i nbr: %u)
 Khoáº£ng bÃ¹ vÃ o        = 0x%.8lx (%ld)
 Gáº·p lá»—i khi Ä‘á»�c %s: %sLá»—i: %B cÃ³ cáº£ hai thuá»™c tÃ­nh Tag_MPextension_use hiá»‡n nay vÃ  cÅ©Gáº·p lá»—i khi xá»­ lÃ½ táº­p tin %sThÆ° má»¥c Ngoáº¡i lá»‡ [.pdata]ThÆ° má»¥c Xuáº¥t [.edata (hoáº·c á»Ÿ nÆ¡i nÃ o chÃºng ta Ä‘Ã£ tÃ¬m nÃ³)]Cá»� xuáº¥t 			%lx
 Xuáº¥t RVALá»–I tÃ¬m Ä‘á»‹nh vá»‹ láº¡i HI16 trÆ°á»›cFILES_VOLUMES    Ä�á»‹nh dáº¡ng táº­p tin mÆ¡ há»“KhÃ´ng nháº­n ra Ä‘á»‹nh dáº¡ng táº­p tinTáº­p tin cÃ³ Ä‘á»‹nh dáº¡ng khÃ´ng Ä‘ÃºngTáº­p tin quÃ¡ lá»›nTáº­p tin bá»‹ cáº¯t ngáº¯nTrÆ°á»�ng cá»�          = 0x%.2x
@@ -1000,7 +1000,7 @@ Thanh ghi toÃ n cá»¥c thá»© nháº¥t lÃ  $
 Bá»™ mÃ´ táº£ pháº§n áº£nh: (sá»‘ lá»›n: %u, sá»‘ nhá»�: %u, kÃ­ch thÆ°á»›c: %u, khoáº£ng bÃ¹: %u)
 KÃ½ hiá»‡u áº£nh & báº£ng gá»¡ lá»—i: (sá»‘lá»›n: %u, sá»‘nhá»�: %u)
 ThÆ° má»¥c Báº£ng Ä�á»‹a chá»‰ Nháº­pThÆ° má»¥c Nháº­p [cÃ¡c pháº§n cá»§a .idata]Sá»± mÃ¢u thuáº«n ná»™i bá»™: cÃ²n láº¡i %u != tá»‘i Ä‘a %u.
-  HÃ£y thÃ´ng bÃ¡o lá»—i nÃ y.Kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i TARGET2 khÃ´ng há»£p lá»‡ "%s"Ä�Ã­ch bfd khÃ´ng há»£p lá»‡Thao tÃ¡c khÃ´ng há»£p lá»‡Pháº§n báº£ng má»¥c lá»¥c khÃ´ng há»£p lá»‡ trong ETIRJALX cho Ä‘á»‹a chá»‰ 'non-word-aligned'LOGICAL_NAMES    TÃªn ngÃ´n ngá»¯ bá»™ vi xá»­ lÃ½
+  HÃ£y thÃ´ng bÃ¡o lá»—i nÃ y.Kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i TARGET2 khÃ´ng há»£p lá»‡ â€œ%sâ€�Ä�Ã­ch bfd khÃ´ng há»£p lá»‡Thao tÃ¡c khÃ´ng há»£p lá»‡Pháº§n báº£ng má»¥c lá»¥c khÃ´ng há»£p lá»‡ trong ETIRJALX cho Ä‘á»‹a chá»‰ â€œnon-word-alignedâ€�LOGICAL_NAMES    TÃªn ngÃ´n ngá»¯ bá»™ vi xá»­ lÃ½
 DÃ i              = 0x%.8lx (%ld)
 ThÆ° má»¥c Cáº¥u hÃ¬nh Náº¡pMEMORY_MANAGEMENThÃ m MIPS16 vÃ  microMIPS khÃ´ng Ä‘Æ°á»£c gá»£i láº«n nhauMISC             MULTI_PROCESSING Pháº§n Ä‘áº§u Mach-O:
 ChÃ­nh/Phá»¥ 			%d/%d
@@ -1026,17 +1026,17 @@ Thanh ghi toÃ n cá»¥c thá»© nháº¥t lÃ  $
 OPR_USH (dá»‹ch khÃ´ng dáº¥u)
 MÃ´-Ä‘un Ä‘á»‘i tÆ°á»£ng KHÃ”NG pháº£i miá»…n lá»—i !
 CÆ¡ báº£n thá»© tá»± 			%ld
-Táº­p tin káº¿t xuáº¥t cáº§n thiáº¿t thÆ° viá»‡n chia sáº» "%s"
-Táº­p tin káº¿t xuáº¥t cáº§n thiáº¿t thÆ° viá»‡n chia sáº» "%s.so.%s"
+Táº­p tin káº¿t xuáº¥t cáº§n thiáº¿t thÆ° viá»‡n chia sáº» â€œ%sâ€�
+Táº­p tin káº¿t xuáº¥t cáº§n thiáº¿t thÆ° viá»‡n chia sáº» â€œ%s.so.%sâ€�
 POSIX            PROCESS_SCHED    PRVFXDPRVPICPSC - Pháº§n Ä‘á»‹nh nghÄ©a chÆ°Æ¡ng trÃ¬nh
-Sai khá»›p PTA: má»™t Ä‘á»‹a chá»‰ SHcompact (bit 0 == 0)Sai khá»›p PTB: má»™t Ä‘á»‹a chá»‰ SHmedia (bit 0 == 1)TÃªn phÃ¢n vÃ¹ng      = "%s"
+Sai khá»›p PTA: má»™t Ä‘á»‹a chá»‰ SHcompact (bit 0 == 0)Sai khá»›p PTB: má»™t Ä‘á»‹a chá»‰ SHmedia (bit 0 == 1)TÃªn phÃ¢n vÃ¹ng      = â€œ%sâ€�
 PhÃ¢n vÃ¹ng[%d] cuá»‘i    = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }
 PhÃ¢n vÃ¹ng[%d] dÃ i = 0x%.8lx (%ld)
 PhÃ¢n vÃ¹ng[%d] rÃ£nh ghi = 0x%.8lx (%ld)
 HÃ£y thÃ´ng bÃ¡o lá»—i nÃ y.
 R_FRV_FUNCDESC tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u Ä‘á»™ng vá»›i sá»‘ háº¡ng khÃ¡c khÃ´ngR_FRV_FUNCDESC_VALUE tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u Ä‘á»™ng vá»›i sá»‘ háº¡ng khÃ¡c khÃ´ngR_FRV_TLSMOFFLO khÃ´ng Ã¡p dá»¥ng tá»›i má»™t chá»‰ dáº«n setlo hay setlos
-Ä�ang Ä‘á»�c nhÃ£n thá»�i gian sá»­a Ä‘á»•i táº­p tin khoTham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u á»Ÿ xa "%s" khi sá»­ dá»¥ng má»™t Ä‘á»‹nh vá»‹ láº¡i sai thÃ¬ cÃ³ thá»ƒ dáº«n Ä‘áº¿n sá»± thá»±c hiá»‡n saiThanh ghi %%g%d Ä‘Æ°á»£c dÃ¹ng má»™t cÃ¡ch khÃ´ng tÆ°Æ¡ng thÃ­ch: %s trong %B, trÆ°á»›c lÃ  %s trong %bPháº§n thanh ghi cÃ³ ná»™i dung
-TÃ¡i Ä‘á»‹nh vá»‹ cho 'non-REL psect'Ä�ang gá»¡ bá»� pháº§n khÃ´ng dÃ¹ng "%s" trong táº­p tin "%B"DÃ nh riÃªngThÆ° má»¥c TÃ i nguyÃªn [.rsrc]Ä‘á»‹nh vá»‹ láº¡i SDA khi chÆ°a xÃ¡c Ä‘á»‹nh _SDA_BASE_SECURITY         SEC_RELOC khÃ´ng cÃ³ Ä‘á»‹nh vá»‹ láº¡i trong pháº§n %sLá»—i SH: khÃ´ng rÃµ kiá»ƒu reloc %dSHELL            SHRFXDSHRPICSPSC - Pháº§n Ä‘á»‹nh nghÄ©a áº£nh chÆ°Æ¡ng trÃ¬nh Ä‘Æ°á»£c chia sáº» 
+Ä�ang Ä‘á»�c nhÃ£n thá»�i gian sá»­a Ä‘á»•i táº­p tin khoTham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u á»Ÿ xa â€œ%sâ€� khi sá»­ dá»¥ng má»™t Ä‘á»‹nh vá»‹ láº¡i sai thÃ¬ cÃ³ thá»ƒ dáº«n Ä‘áº¿n sá»± thá»±c hiá»‡n saiThanh ghi %%g%d Ä‘Æ°á»£c dÃ¹ng má»™t cÃ¡ch khÃ´ng tÆ°Æ¡ng thÃ­ch: %s trong %B, trÆ°á»›c lÃ  %s trong %bPháº§n thanh ghi cÃ³ ná»™i dung
+TÃ¡i Ä‘á»‹nh vá»‹ cho â€œnon-REL psectâ€�Ä�ang gá»¡ bá»� pháº§n khÃ´ng dÃ¹ng â€œ%sâ€� trong táº­p tin â€œ%Bâ€�DÃ nh riÃªngThÆ° má»¥c TÃ i nguyÃªn [.rsrc]Ä‘á»‹nh vá»‹ láº¡i SDA khi chÆ°a xÃ¡c Ä‘á»‹nh _SDA_BASE_SECURITY         SEC_RELOC khÃ´ng cÃ³ Ä‘á»‹nh vá»‹ láº¡i trong pháº§n %sLá»—i SH: khÃ´ng rÃµ kiá»ƒu reloc %dSHELL            SHRFXDSHRPICSPSC - Pháº§n Ä‘á»‹nh nghÄ©a áº£nh chÆ°Æ¡ng trÃ¬nh Ä‘Æ°á»£c chia sáº» 
 STABLE           STA_CKARG (so sÃ¡nh Ä‘á»‘i sá»‘ thá»§ tá»¥c)
 STA_GBL (stack toÃ n cá»¥c) %.*s
 STA_LI (stack vÄƒn báº£n)
@@ -1086,19 +1086,19 @@ Thanh ghi toÃ n cá»¥c thá»© nháº¥t lÃ  $
 TrÃ¡n ngÆ°á»£c Ä‘á»‘ng trong _bfd_vms_popBÆ°á»›c dÃ i:
 KÃ½ hiá»‡u %s chÆ°a Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh Ä‘á»ƒ sá»­a chá»¯a
 KÃ½ hiá»‡u %s Ä‘Ã£ bá»‹ thay tháº¿ báº±ng %s
-KÃ½ hiá»‡u "%s" cÃ³ cÃ¡c kiá»ƒu khÃ¡c hau: %s trong %b, trÆ°á»›c lÃ  REGISTER (thanh ghi) trong %BKÃ½ hiá»‡u "%s" cÃ³ cÃ¡c kiá»ƒu khÃ¡c hau: REGISTER (thanh ghi) trong %B, trÆ°á»›c lÃ  %s trong %BKÃ½ hiá»‡u cáº§n pháº§n gá»¡ lá»—i mÃ  khÃ´ng tá»“n táº¡iLá»—i gá»�i há»‡ thá»‘ngÄ�á»‹nh vá»‹ láº¡i TLS khÃ´ng há»£p lá»‡ mÃ  khÃ´ng cÃ³ pháº§n Ä‘á»™ngTrÃ n TOC: 0x%lx > 0x10000; hÃ£y thá»­ "-mminimal-toc" khi biÃªn dá»‹chÄ�á»‹a chá»‰ báº£ng
+KÃ½ hiá»‡u â€œ%sâ€� cÃ³ cÃ¡c kiá»ƒu khÃ¡c hau: %s trong %b, trÆ°á»›c lÃ  REGISTER (thanh ghi) trong %BKÃ½ hiá»‡u â€œ%sâ€� cÃ³ cÃ¡c kiá»ƒu khÃ¡c hau: REGISTER (thanh ghi) trong %B, trÆ°á»›c lÃ  %s trong %BKÃ½ hiá»‡u cáº§n pháº§n gá»¡ lá»—i mÃ  khÃ´ng tá»“n táº¡iLá»—i gá»�i há»‡ thá»‘ngÄ�á»‹nh vá»‹ láº¡i TLS khÃ´ng há»£p lá»‡ mÃ  khÃ´ng cÃ³ pháº§n Ä‘á»™ngTrÃ n TOC: 0x%lx > 0x10000; hÃ£y thá»­ â€œ-mminimal-tocâ€� khi biÃªn dá»‹chÄ�á»‹a chá»‰ báº£ng
 ThÆ° má»¥c LÆ°u trá»¯ Máº¡ch [.tls]NhÃ£n NgÃ y/Giá»� 		%lx
 Pháº§n Ä‘áº§u Chá»¯ TiÃªu Ä‘á»�
-USRSTACKKhÃ´ng tÃ¬m tháº¥y pháº§n káº¿t xuáº¥t tÆ°Æ¡ng Ä‘Æ°Æ¡ng cho kÃ½ hiá»‡u "%s" tá»« pháº§n "%s"KhÃ´ng xá»­ lÃ½ Ä‘Æ°á»£c STO_SH5_ISA32 khÃ´ng mong Ä‘á»£i trÃªn kÃ½ hiá»‡u cá»¥c bá»™Sá»‘ thá»© tá»± mÃ¡y báº¥t thÆ°á»�ngKiá»ƒu pháº§n táº­p tin lÃµi OSF/1 khÃ´ng Ä‘Æ°á»£c quáº£n lÃ½ %d
+USRSTACKKhÃ´ng tÃ¬m tháº¥y pháº§n káº¿t xuáº¥t tÆ°Æ¡ng Ä‘Æ°Æ¡ng cho kÃ½ hiá»‡u â€œ%sâ€� tá»« pháº§n â€œ%sâ€�KhÃ´ng xá»­ lÃ½ Ä‘Æ°á»£c STO_SH5_ISA32 khÃ´ng mong Ä‘á»£i trÃªn kÃ½ hiá»‡u cá»¥c bá»™Sá»‘ thá»© tá»± mÃ¡y báº¥t thÆ°á»�ngKiá»ƒu pháº§n táº­p tin lÃµi OSF/1 khÃ´ng Ä‘Æ°á»£c quáº£n lÃ½ %d
 Ä�á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c quáº£n lÃ½ %sKhÃ´ng hiá»ƒu kiá»ƒu phá»¥ EGSD %dKhÃ´ng rÃµ kiá»ƒu cÆ¡ báº£n %dKhÃ´ng rÃµ reloc %sKhÃ´ng rÃµ sá»± Ä‘á»‹nh vá»‹ láº¡i %s + %sKhÃ´ng rÃµ kÃ½ hiá»‡u trong lá»‡nh %sKhÃ´ng thá»«a nháº­n INPUT_SECTION_FLAG %s
-KhÃ´ng nháº­n ra mÃ£ sá»‘ Ä‘Ã­ch TI COFF "0x%x"Ä�á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c nháº­n raKhÃ´ng nháº­n ra kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i 0x%xÄ�á»‹nh vá»‹ láº¡i .stab khÃ´ng Ä‘Æ°á»£c há»— trá»£VOLATILE         Biáº¿n "%s" chá»‰ cÃ³ thá»ƒ náº±m trong má»™t cá»§a vÃ¹ng dá»¯ liá»‡u kiá»ƒu nhá»�, sá»‘ khÃ´ng vÃ  ráº¥t nhá»�Biáº¿n "%s" khÃ´ng thá»ƒ náº±m Ä‘á»“ng thá»�i trong cáº£ hai vÃ¹ng dá»¯ liá»‡u kiá»ƒu nhá»� vÃ  ráº¥t nhá»�Biáº¿n "%s" khÃ´ng thá»ƒ náº±m Ä‘á»“ng thá»�i trong cáº£ hai vÃ¹ng dá»¯ liá»‡u kiá»ƒu nhá»� vÃ  sá»‘ khÃ´ngBiáº¿n "%s" khÃ´ng thá»ƒ náº±m Ä‘á»“ng thá»�i trong cáº£ hai vÃ¹ng dá»¯ liá»‡u kiá»ƒu ráº¥t nhá»� vÃ  sá»‘ khÃ´ngBiáº¿n "%s" khÃ´ng thá»ƒ chiáº¿m nhiá»�u vÃ¹ng dá»¯ liá»‡u nhá»�Cáº£nh bÃ¡o: kÃ­ch cá»¡ pháº§n .pdata (%ld) khÃ´ng pháº£i lÃ  bá»™i sá»‘ cho %d
-Cáº£nh bÃ¡o: %B khÃ´ng há»— trá»£ áº£nh hÆ°á»Ÿng láº«n nhau, cÃ²n %B thÃ¬ cÃ³Cáº£nh bÃ¡o: %B bá»‹ cáº¯t ngáº¯n: kÃ­ch cá»¡ táº­p tin lÃµi mong Ä‘á»£i â‰¥%lu cÃ²n tÃ¬m %lu.Cáº£nh bÃ¡o: %B há»— trá»£ áº£nh hÆ°á»Ÿng láº«n nhau, cÃ²n %B thÃ¬ khÃ´ngCáº£nh bÃ¡o: %B dÃ¹ng "-mdouble-float", cÃ²n %B dÃ¹ng "-mips32r2 -mfp64"Cáº£nh bÃ¡o: %B dÃ¹ng "-msingle-float", cÃ²n %B dÃ¹ng "-mdouble-float"Cáº£nh bÃ¡o: %B dÃ¹ng "-msingle-float", cÃ²n %B dÃ¹ng "-mips32r2 -mfp64"Cáº£nh bÃ¡o: %B dÃ¹ng trÃ´i cá»©ng chÃ­nh xÃ¡c Ä‘Ã´i, cÃ²n %B dÃ¹ng trÃ´i cá»©ng chÃ­nh xÃ¡c Ä‘Æ¡nCáº£nh bÃ¡o: %B dÃ¹ng trÃ´i cá»©ng, cÃ²n %B dÃ¹ng trÃ´i má»�mCáº£nh bÃ¡o: %B dÃ¹ng r3/r4 Ä‘á»ƒ tráº£ láº¡i cáº¥u trÃºc nhá»�, %B dÃ¹ng pháº§n nhá»›Cáº£nh bÃ¡o: %B dÃ¹ng trÃ´i má»�m, cÃ²n %B dÃ¹ng trÃ´i cá»©ng chÃ­nh xÃ¡c Ä‘Æ¡nCáº£nh bÃ¡o: %B dÃ¹ng Ä‘iá»ƒm trÃ´i khÃ´ng rÃµ ABI %dCáº£nh bÃ¡o: %B dÃ¹ng quy Æ°á»›c tráº£ láº¡i cáº¥u trÃºc nhá»� khÃ´ng rÃµ %dCáº£nh bÃ¡o: %B dÃ¹ng vÃ©c-tÆ¡ khÃ´ng nháº­n ra ABI %dCáº£nh bÃ¡o: %B dÃ¹ng vÃ©c-tÆ¡ ABI "%s", cÃ²n %B dÃ¹ng "%s"Cáº£nh bÃ¡o: %B: cáº¥u trÃºc ná»�n táº£ng xung Ä‘á»™tCáº£nh bÃ¡o: %B: KhÃ´ng rÃµ thuá»™c tÃ­nh Ä‘á»‘i tÆ°á»£ng EABI %dCáº£nh bÃ¡o: Ä�ang xÃ³a cá»� áº£nh hÆ°á»Ÿng láº«n nhau cá»§a %B vÃ¬ mÃ£ khÃ´ng áº£nh hÆ°á»Ÿng láº«n nhau trong %B Ä‘Ã£ Ä‘Æ°á»£c liÃªn káº¿t vá»›i nÃ³Cáº£nh bÃ¡o: Ä�ang xoÃ¡ cá»� áº£nh hÆ°á»Ÿng láº«n nhau cá»§a %B theo yÃªu cáº§u bÃªn ngoÃ iCáº£nh bÃ¡o: khÃ´ng Ä‘ang Ä‘áº·t cá»� áº£nh hÆ°á»Ÿng láº«n nhau cá»§a %B vÃ¬ nÃ³ Ä‘Ã£ Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh lÃ  khÃ´ng áº£nh hÆ°á»Ÿng láº«n nhauCáº£nh bÃ¡o: RX_SYM reloc vá»›i má»™t kÃ½ hiá»‡u chÆ°a Ä‘Æ°á»£c biáº¿t Ä‘áº¿nCáº£nh bÃ¡o: Ä‘ang ghi pháº§n "%s" vÃ o khoáº£ng bÃ¹ táº­p tin ráº¥t lá»›n (tá»©c lÃ  Ã¢m) 0x%lx.Cáº£nh bÃ¡o: vá»‹ trÃ­ sáº¯p hÃ ng %u cá»§a kÃ½ hiá»‡u dÃ¹ng chung "%s" trong %B lÃ  lá»›n hÆ¡n vá»‹ trÃ­ sáº¯p hÃ ng (%u) cá»§a pháº§n %A cá»§a nÃ³Cáº£nh bÃ¡o: vá»‹ trÃ­ sáº¯p hÃ ng %u cá»§a kÃ½ hiá»‡u "%s" trong %B lÃ  nhá»� hÆ¡n %u trong %BCáº£nh bÃ¡o: sai khá»›p sá»‘ Ä‘áº¿m sá»± sá»­a chá»¯a
-Cáº£nh bÃ¡o: tÃ¹y chá»�n gc-sections bá»‹ bá»� quaCáº£nh bÃ¡o: kÃ­ch cá»¡ cá»§a kÃ½ hiá»‡u "%s" Ä‘Ã£ thay Ä‘á»•i tá»« %lu trong %B thÃ nh %lu trong %BCáº£nh bÃ¡o: kiá»ƒu kÃ½ hiá»‡u "%s" bá»‹ thay Ä‘á»•i tá»« %d thÃ nh %d trong %BCáº£nh bÃ¡o: ghi kho quÃ¡ cháº­m nÃªn Ä‘ang ghi láº¡i nhÃ£n thá»�i gian
+KhÃ´ng nháº­n ra mÃ£ sá»‘ Ä‘Ã­ch TI COFF â€œ0x%xâ€�Ä�á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c nháº­n raKhÃ´ng nháº­n ra kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i 0x%xÄ�á»‹nh vá»‹ láº¡i .stab khÃ´ng Ä‘Æ°á»£c há»— trá»£VOLATILE         Biáº¿n â€œ%sâ€� chá»‰ cÃ³ thá»ƒ náº±m trong má»™t cá»§a vÃ¹ng dá»¯ liá»‡u kiá»ƒu nhá»�, sá»‘ khÃ´ng vÃ  ráº¥t nhá»�Biáº¿n â€œ%sâ€� khÃ´ng thá»ƒ náº±m Ä‘á»“ng thá»�i trong cáº£ hai vÃ¹ng dá»¯ liá»‡u kiá»ƒu nhá»� vÃ  ráº¥t nhá»�Biáº¿n â€œ%sâ€� khÃ´ng thá»ƒ náº±m Ä‘á»“ng thá»�i trong cáº£ hai vÃ¹ng dá»¯ liá»‡u kiá»ƒu nhá»� vÃ  sá»‘ khÃ´ngBiáº¿n â€œ%sâ€� khÃ´ng thá»ƒ náº±m Ä‘á»“ng thá»�i trong cáº£ hai vÃ¹ng dá»¯ liá»‡u kiá»ƒu ráº¥t nhá»� vÃ  sá»‘ khÃ´ngBiáº¿n â€œ%sâ€� khÃ´ng thá»ƒ chiáº¿m nhiá»�u vÃ¹ng dá»¯ liá»‡u nhá»�Cáº£nh bÃ¡o: kÃ­ch cá»¡ pháº§n .pdata (%ld) khÃ´ng pháº£i lÃ  bá»™i sá»‘ cho %d
+Cáº£nh bÃ¡o: %B khÃ´ng há»— trá»£ áº£nh hÆ°á»Ÿng láº«n nhau, cÃ²n %B thÃ¬ cÃ³Cáº£nh bÃ¡o: %B bá»‹ cáº¯t ngáº¯n: kÃ­ch cá»¡ táº­p tin lÃµi mong Ä‘á»£i â‰¥%lu cÃ²n tÃ¬m %lu.Cáº£nh bÃ¡o: %B há»— trá»£ áº£nh hÆ°á»Ÿng láº«n nhau, cÃ²n %B thÃ¬ khÃ´ngCáº£nh bÃ¡o: %B dÃ¹ng â€œ-mdouble-floatâ€�, cÃ²n %B dÃ¹ng â€œ-mips32r2 -mfp64â€�Cáº£nh bÃ¡o: %B dÃ¹ng â€œ-msingle-floatâ€�, cÃ²n %B dÃ¹ng â€œ-mdouble-floatâ€�Cáº£nh bÃ¡o: %B dÃ¹ng â€œ-msingle-floatâ€�, cÃ²n %B dÃ¹ng â€œ-mips32r2 -mfp64â€�Cáº£nh bÃ¡o: %B dÃ¹ng trÃ´i cá»©ng chÃ­nh xÃ¡c Ä‘Ã´i, cÃ²n %B dÃ¹ng trÃ´i cá»©ng chÃ­nh xÃ¡c Ä‘Æ¡nCáº£nh bÃ¡o: %B dÃ¹ng trÃ´i cá»©ng, cÃ²n %B dÃ¹ng trÃ´i má»�mCáº£nh bÃ¡o: %B dÃ¹ng r3/r4 Ä‘á»ƒ tráº£ láº¡i cáº¥u trÃºc nhá»�, %B dÃ¹ng pháº§n nhá»›Cáº£nh bÃ¡o: %B dÃ¹ng trÃ´i má»�m, cÃ²n %B dÃ¹ng trÃ´i cá»©ng chÃ­nh xÃ¡c Ä‘Æ¡nCáº£nh bÃ¡o: %B dÃ¹ng Ä‘iá»ƒm trÃ´i khÃ´ng rÃµ ABI %dCáº£nh bÃ¡o: %B dÃ¹ng quy Æ°á»›c tráº£ láº¡i cáº¥u trÃºc nhá»� khÃ´ng rÃµ %dCáº£nh bÃ¡o: %B dÃ¹ng vÃ©c-tÆ¡ khÃ´ng nháº­n ra ABI %dCáº£nh bÃ¡o: %B dÃ¹ng vÃ©c-tÆ¡ ABI â€œ%sâ€�, cÃ²n %B dÃ¹ng â€œ%sâ€�Cáº£nh bÃ¡o: %B: cáº¥u trÃºc ná»�n táº£ng xung Ä‘á»™tCáº£nh bÃ¡o: %B: KhÃ´ng rÃµ thuá»™c tÃ­nh Ä‘á»‘i tÆ°á»£ng EABI %dCáº£nh bÃ¡o: Ä�ang xÃ³a cá»� áº£nh hÆ°á»Ÿng láº«n nhau cá»§a %B vÃ¬ mÃ£ khÃ´ng áº£nh hÆ°á»Ÿng láº«n nhau trong %B Ä‘Ã£ Ä‘Æ°á»£c liÃªn káº¿t vá»›i nÃ³Cáº£nh bÃ¡o: Ä�ang xoÃ¡ cá»� áº£nh hÆ°á»Ÿng láº«n nhau cá»§a %B theo yÃªu cáº§u bÃªn ngoÃ iCáº£nh bÃ¡o: khÃ´ng Ä‘ang Ä‘áº·t cá»� áº£nh hÆ°á»Ÿng láº«n nhau cá»§a %B vÃ¬ nÃ³ Ä‘Ã£ Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh lÃ  khÃ´ng áº£nh hÆ°á»Ÿng láº«n nhauCáº£nh bÃ¡o: RX_SYM reloc vá»›i má»™t kÃ½ hiá»‡u chÆ°a Ä‘Æ°á»£c biáº¿t Ä‘áº¿nCáº£nh bÃ¡o: Ä‘ang ghi pháº§n â€œ%sâ€� vÃ o khoáº£ng bÃ¹ táº­p tin ráº¥t lá»›n (tá»©c lÃ  Ã¢m) 0x%lx.Cáº£nh bÃ¡o: vá»‹ trÃ­ sáº¯p hÃ ng %u cá»§a kÃ½ hiá»‡u dÃ¹ng chung â€œ%sâ€� trong %B lÃ  lá»›n hÆ¡n vá»‹ trÃ­ sáº¯p hÃ ng (%u) cá»§a pháº§n %A cá»§a nÃ³Cáº£nh bÃ¡o: vá»‹ trÃ­ sáº¯p hÃ ng %u cá»§a kÃ½ hiá»‡u â€œ%sâ€� trong %B lÃ  nhá»� hÆ¡n %u trong %BCáº£nh bÃ¡o: sai khá»›p sá»‘ Ä‘áº¿m sá»± sá»­a chá»¯a
+Cáº£nh bÃ¡o: tÃ¹y chá»�n gc-sections bá»‹ bá»� quaCáº£nh bÃ¡o: kÃ­ch cá»¡ cá»§a kÃ½ hiá»‡u â€œ%sâ€� Ä‘Ã£ thay Ä‘á»•i tá»« %lu trong %B thÃ nh %lu trong %BCáº£nh bÃ¡o: kiá»ƒu kÃ½ hiá»‡u â€œ%sâ€� bá»‹ thay Ä‘á»•i tá»« %d thÃ nh %d trong %BCáº£nh bÃ¡o: ghi kho quÃ¡ cháº­m nÃªn Ä‘ang ghi láº¡i nhÃ£n thá»�i gian
 Ä�ang ghi nhÃ£n thá»�i gian armap Ä‘Ã£ cáº­p nháº­t[%u]: %u
 [%u]: thÆ°á»�ng: %u, hoa: %u
-[abi=sá»‘ nguyÃªn 16-bit, [abi=sá»‘ nguyÃªn 32-bit, [máº¥t tÃªn cá»§a ai]\%B: Cáº£nh bÃ¡o: Chá»‰ dáº«n Arm BLX Ä‘Äƒt má»¥c tiÃªu hÃ m Arm "%s"._bfd_vms_output_counted Ä‘Æ°á»£c gá»�i vá»›i quÃ¡ nhiá»�u byte_bfd_vms_output_counted Ä‘Æ°á»£c gá»�i vá»›i sá»‘ khÃ´ng byteÄ‘á»‹a chá»‰Ä‘á»‹a chá»‰ khÃ´ng sáº¯p hÃ ng tá»«arsize: %u, a0: 0x%08x
+[abi=sá»‘ nguyÃªn 16-bit, [abi=sá»‘ nguyÃªn 32-bit, [máº¥t tÃªn cá»§a ai]\%B: Cáº£nh bÃ¡o: Chá»‰ dáº«n Arm BLX Ä‘Äƒt má»¥c tiÃªu hÃ m Arm â€œ%sâ€�._bfd_vms_output_counted Ä‘Æ°á»£c gá»�i vá»›i quÃ¡ nhiá»�u byte_bfd_vms_output_counted Ä‘Æ°á»£c gá»�i vá»›i sá»‘ khÃ´ng byteÄ‘á»‹a chá»‰Ä‘á»‹a chá»‰ khÃ´ng sáº¯p hÃ ng tá»«arsize: %u, a0: 0x%08x
 chá»‰ má»¥c pháº§n sai trong %sÄ‘á»‹a chá»‰ Ä‘Ã£ Ä‘áº·t vÃ o khá»‘i nhá»› [%lx:%04lx] (%lx) khÃ´ng trong cÃ¹ng khá»‘i nhá»› vá»›i Ä‘á»‹a chá»‰ Ä‘Æ°á»£c Ä‘áº·t hiá»‡n thá»�i vÃ o khá»‘i nhá»› [%lx:%04lx] (%lx)cÆ¡ sá»Ÿ: %u, vá»‹trÃ­: %u
-bfd_mach_o_canonicalize_symtab: khÃ´ng thá»ƒ táº£i cÃ¡c kÃ½ hiá»‡ubfd_mach_o_read_dysymtab_symbol: khÃ´ng thá»ƒ Ä‘á»�c %lu byte táº¡i %lubfd_mach_o_read_symtab_symbol: tÃªn ngoÃ i pháº¡m vi (%lu >= %lu)bfd_mach_o_read_symtab_symbol: kÃ½ hiá»‡u "%s" khÃ´ng Ä‘Æ°á»£c há»— trá»£ tham chiáº¿u 'indirect': Ä‘áº·t thÃ nh chÆ°a Ä‘á»‹nh nghÄ©abfd_mach_o_read_symtab_symbol: kÃ½ hiá»‡u "%s" Ä‘Ã£ chá»‰ ra pháº§n khÃ´ng há»£p lá»‡ %d (tá»‘i Ä‘a %lu): Ä‘ang Ä‘áº·t thÃ nh chÆ°a Ä‘á»‹nh nghÄ©abfd_mach_o_read_symtab_symbol: kÃ½ hiá»‡u "%s" Ä‘Ã£ chá»‰ Ä‘á»‹nh sai kiá»ƒu táº¡i trÆ°á»�ng 0x%x: Ä‘áº·t thÃ nh chÆ°a Ä‘á»‹nh nghÄ©abfd_mach_o_read_symtab_symbol: khÃ´ng thá»ƒ Ä‘á»�c %d byte táº¡i %lubfd_mach_o_read_symtab_symbols: khÃ´ng thá»ƒ cáº¥p phÃ¡t bá»™ nhá»› cho cÃ¡c kÃ½ hiá»‡ubfd_mach_o_scan: kiáº¿n trÃºc chÆ°a Ä‘Æ°á»£c biáº¿t Ä‘áº¿n 0x%lx/0x%lxbfd_pef_scan: kiáº¿n trÃºc chÆ°a Ä‘Æ°á»£c biáº¿t Ä‘áº¿n 0x%lxblkbeg: Ä‘á»‹a chá»‰: 0x%08x, tÃªn: %.*s
+bfd_mach_o_canonicalize_symtab: khÃ´ng thá»ƒ táº£i cÃ¡c kÃ½ hiá»‡ubfd_mach_o_read_dysymtab_symbol: khÃ´ng thá»ƒ Ä‘á»�c %lu byte táº¡i %lubfd_mach_o_read_symtab_symbol: tÃªn ngoÃ i pháº¡m vi (%lu >= %lu)bfd_mach_o_read_symtab_symbol: kÃ½ hiá»‡u â€œ%sâ€� khÃ´ng Ä‘Æ°á»£c há»— trá»£ tham chiáº¿u â€œindirectâ€�: Ä‘áº·t thÃ nh chÆ°a Ä‘á»‹nh nghÄ©abfd_mach_o_read_symtab_symbol: kÃ½ hiá»‡u â€œ%sâ€� Ä‘Ã£ chá»‰ ra pháº§n khÃ´ng há»£p lá»‡ %d (tá»‘i Ä‘a %lu): Ä‘ang Ä‘áº·t thÃ nh chÆ°a Ä‘á»‹nh nghÄ©abfd_mach_o_read_symtab_symbol: kÃ½ hiá»‡u â€œ%sâ€� Ä‘Ã£ chá»‰ Ä‘á»‹nh sai kiá»ƒu táº¡i trÆ°á»�ng 0x%x: Ä‘áº·t thÃ nh chÆ°a Ä‘á»‹nh nghÄ©abfd_mach_o_read_symtab_symbol: khÃ´ng thá»ƒ Ä‘á»�c %d byte táº¡i %lubfd_mach_o_read_symtab_symbols: khÃ´ng thá»ƒ cáº¥p phÃ¡t bá»™ nhá»› cho cÃ¡c kÃ½ hiá»‡ubfd_mach_o_scan: kiáº¿n trÃºc chÆ°a Ä‘Æ°á»£c biáº¿t Ä‘áº¿n 0x%lx/0x%lxbfd_pef_scan: kiáº¿n trÃºc chÆ°a Ä‘Æ°á»£c biáº¿t Ä‘áº¿n 0x%lxblkbeg: Ä‘á»‹a chá»‰: 0x%08x,  tÃªn: %.*s
 blkend: kÃ­ch thÆ°á»›c: 0x%08x
 khÃ´ng thá»ƒ phÃ¡t ra Ä‘á»‹nh vá»‹ láº¡i Ä‘á»™ng trong pháº§n chá»‰ Ä‘á»�cKhÃ´ng thá»ƒ phÃ¡t ra sá»± sá»­a chá»¯a trong pháº§n chá»‰ Ä‘á»�ckhÃ´ng tÃ¬m tháº¥y EMH trong báº£n ghi Ä‘áº§u tiÃªn cá»§a GST
 khÃ´ng thá»ƒ xá»­ lÃ½ Ä‘á»‹nh vá»‹ láº¡i R_MEM_INDIRECT khi sá»­ dá»¥ng káº¿t xuáº¥t %skhÃ´ng thá»ƒ Ä‘á»�c DMT
@@ -1119,23 +1119,23 @@ Thanh ghi toÃ n cá»¥c thá»© nháº¥t lÃ  $
 khÃ´ng thá»ƒ Ä‘á»�c báº£n ghi pháº§n Ä‘áº§u GST
 khÃ´ng thá»ƒ Ä‘á»�c Ä‘á»™ dÃ i báº£n ghi GST
 lá»›p: %u, dtype: %u, Ä‘á»™ dÃ i: %u, con trá»�: 0x%08x
-pháº§n %s bá»‹ há»�ng trong %bkhÃ´ng tÃ¬m tháº¥y kÃ½ hiá»‡u liÃªn káº¿t Ä‘áº·c biá»‡t __ctbpkhÃ´ng tÃ¬m tháº¥y kÃ½ hiá»‡u liÃªn káº¿t Ä‘áº·c biá»‡t __epkhÃ´ng tÃ¬m tháº¥y kÃ½ hiá»‡u liÃªn káº¿t Ä‘áº·c biá»‡t __gpkhÃ´ng thá»ƒ má»Ÿ áº£nh Ä‘Æ°á»£c chia sáº» '%s' tá»« '%s'cpu=HC11]cpu=HC12]cpu=HCS12]Ä‘á»‹nh vá»‹ láº¡i nguy hiá»ƒmdelta pc +%-4ddelta_pc_l: +0x%08x
+pháº§n %s bá»‹ há»�ng trong %bkhÃ´ng tÃ¬m tháº¥y kÃ½ hiá»‡u liÃªn káº¿t Ä‘áº·c biá»‡t __ctbpkhÃ´ng tÃ¬m tháº¥y kÃ½ hiá»‡u liÃªn káº¿t Ä‘áº·c biá»‡t __epkhÃ´ng tÃ¬m tháº¥y kÃ½ hiá»‡u liÃªn káº¿t Ä‘áº·c biá»‡t __gpkhÃ´ng thá»ƒ má»Ÿ áº£nh Ä‘Æ°á»£c chia sáº» â€œ%sâ€� tá»« â€œ%sâ€�cpu=HC11]cpu=HC12]cpu=HCS12]Ä‘á»‹nh vá»‹ láº¡i nguy hiá»ƒmdelta pc +%-4ddelta_pc_l: +0x%08x
 delta_pc_w %u
 descdimct: %u, aflags: 0x%02x, digits: %u, scale: %u
-pháº§n káº¿t xuáº¥t bá»‹ bá»� qua: `%A'vÃ¹ng khÃ´ng tiáº¿p giÃ¡p nhau (nbr: %u)
-Ä‘á»‹nh vá»‹ láº¡i Ä‘á»™ng trong vÃ¹ng chá»‰ Ä‘á»�cbiáº¿n Ä‘á»™ng "%s" cÃ³ kÃ­ch cá»¡ sá»‘ khÃ´ngenumbeg, dÃ i: %u, tÃªn: %.*s
-enumelt, tÃªn: %.*s
+pháº§n káº¿t xuáº¥t bá»‹ bá»� qua: â€œ%Aâ€�vÃ¹ng khÃ´ng tiáº¿p giÃ¡p nhau (nbr: %u)
+Ä‘á»‹nh vá»‹ láº¡i Ä‘á»™ng trong vÃ¹ng chá»‰ Ä‘á»�cbiáº¿n Ä‘á»™ng â€œ%sâ€� cÃ³ kÃ­ch cá»¡ báº±ng khÃ´ngenumbeg, dÃ i: %u,  tÃªn: %.*s
+enumelt,  tÃªn: %.*s
 enumend
-epilog: cá»�: %u, sá»‘ lÆ°á»£ng: %u
-lá»—i: %B chá»©a má»™t Ä‘á»‹nh vá»‹ láº¡i (0x%s) cho pháº§n %A mÃ  tham chiáº¿u Ä‘áº¿n má»™t kÃ½ hiá»‡u toÃ n cá»¥c khÃ´ng tá»“n táº¡ilá»—i: %B khÃ´ng sá»­ dá»¥ng chá»‰ dáº«n Maverick, cÃ²n %B thÃ¬ cÃ³lá»—i: %B Ä‘Ã£ theo Ä‘á»‹nh dáº¡ng BE8 cuá»‘i cÃ¹nglá»—i: %B Ä‘Æ°á»£c biÃªn dá»‹ch nhÆ° mÃ£ vá»‹ trÃ­ tuyá»‡t Ä‘á»‘i, cÃ²n %B khÃ´ng phá»¥ thuá»™c vÃ o vá»‹ trÃ­lá»—i: %B Ä‘Æ°á»£c biÃªn dá»‹ch nhÆ° mÃ£ khÃ´ng phá»¥ thuá»™c vÃ o vá»‹ trÃ­, cÃ²n %B lÃ  vá»‹ trÃ­ tuyá»‡t Ä‘á»‘ilá»—i: %B Ä‘Æ°á»£c biÃªn dá»‹ch cho APCS-%d, cÃ²n %B Ä‘Æ°á»£c biÃªn dá»‹ch cho APCS-%dlá»—i: %B Ä‘Æ°á»£c biÃªn dá»‹ch cho APCS-%d, cÃ²n Ä‘Ã­ch %B sá»­ dá»¥ng APCS-%dlá»—i: %B Ä‘Æ°á»£c biÃªn dá»‹ch cho EP9312, cÃ²n %B Ä‘Æ°á»£c biÃªn dá»‹ch cho XScalelá»—i: %B gá»­i trÃ´i qua trong thanh ghi trÃ´i, cÃ²n %B gá»­i chÃºng qua trong thanh ghi sá»‘ nguyÃªnlá»—i: %B gá»­i trÃ´i qua trong thanh ghi sá»‘ nguyÃªn, cÃ²n %B gá»­i chÃºng qua trong thanh ghi trÃ´ilá»—i: %B yÃªu cáº§u máº£ng sáº¯p hÃ ng nhiá»�u hÆ¡n %B dá»± trá»¯lá»—i: %B yÃªu cáº§u stack sáº¯p hÃ ng nhiá»�u hÆ¡n %B dá»± trá»¯lá»—i: %B sá»­ dá»¥ng chá»‰ dáº«n FPA, cÃ²n %B thÃ¬ khÃ´nglá»—i: %B sá»­ dá»¥ng chá»‰ dáº«n Maverick, cÃ²n %B thÃ¬ khÃ´nglá»—i: %B sá»­ dá»¥ng chá»‰ dáº«n VFP, cÃ²n %B thÃ¬ khÃ´nglá»—i: %B sá»­ dá»¥ng cÃ¡c Ä‘á»‘i sá»‘ thanh ghi VFP, cÃ²n %B thÃ¬ khÃ´nglá»—i: %B sá»­ dá»¥ng FP pháº§n cá»©ng, cÃ²n %B sá»­ dá»¥ng FP pháº§n má»�mlá»—i: %B sá»­ dá»¥ng cÃ¡c Ä‘á»‘i sá»‘ thanh ghi iWMMXt, cÃ²n %B thÃ¬ khÃ´nglá»—i: %B sá»­ dá»¥ng FP pháº§n má»�m, cÃ²n %B sá»­ dá»¥ng FP pháº§n cá»©nglá»—i: %B: CÃ¡c kiáº¿n trÃºc CPU xung Ä‘á»™t vá»›i nhau %d/%dlá»—i: %B: CÃ¡c há»“ sÆ¡ kiáº¿n trÃºc xung Ä‘á»™t vá»›i nhau %c/%clá»—i; %B: DÃ¹ng R9 má»™t cÃ¡ch xung Ä‘á»™tlá»—i: %B: Ä�á»‘i tÆ°á»£ng cÃ³ ná»™i dung "vendor-specific" pháº£i Ä‘Æ°á»£c xá»­ lÃ½ bá»Ÿi toolchain '%s'lá»—i: %B: tháº» Ä‘á»‘i tÆ°á»£ng "%d, %s" khÃ´ng tÆ°Æ¡ng thÃ­ch vá»›i tháº» "%d, %s"lá»—i: %B: Ä‘áº¡t Ä‘á»‹a chá»‰ tÆ°Æ¡ng Ä‘á»‘i SB cÅ©ng xung Ä‘á»™t vá»›i cÃ¡ch dÃ¹ng R9lá»—i: %B: khÃ´ng rÃµ kiáº¿n trÃºc CPUlá»—i: %B: kÃ­ch thÆ°á»›c cá»§a pháº§n %A khÃ´ng pháº£i lÃ  bá»™i sá»‘ cá»§a kÃ­ch thÆ°á»›c Ä‘á»‹a chá»‰lá»—i: %B: khÃ´ng thá»ƒ hÃ²a trá»™ng thuá»™c tÃ­nh áº£o hÃ³a vá»›i %Blá»—i: Ä�á»‘i tÆ°á»£ng nguá»“n %B cÃ³ phiÃªn báº£n EABI %d, cÃ²n Ä‘Ã­ch %B cÃ³ phiÃªn báº£n EABI %dlá»—i: Ä‘á»‹nh dáº¡ng fp16 khÃ´ng tÆ°Æ¡ng á»©ng giá»¯a %B vÃ  %Blá»—i: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng thÃ­ch há»£p cho thÆ° viá»‡n chia sáº» (báº¡n Ä‘Ã£ quÃªn Ä‘áº·t -fpic khÃ´ng?)lá»—i: chÆ°a xÃ¡c Ä‘á»‹nh kÃ½ hiá»‡u __rtinitlá»—i: khÃ´ng hiá»ƒu giÃ¡ trá»‹ Tag_ABI_array_object_align_expected trong %Blá»—i: khÃ´ng hiá»ƒu giÃ¡ trá»‹ Tag_ABI_array_object_alignment trong %BcÃ³ thá»ƒ thá»±c thilá»—i cáº¥p phÃ¡t sá»©c chá»©a cho pháº§n thÃ´ng tin APUinfo má»›i.lá»—i tÃ­nh pháº§n thÃ´ng tin APUinfo má»›i.lá»—i cÃ i Ä‘áº·t pháº§n thÃ´ng tin APUinfo má»›i.gáº·p lá»—i nghiÃªm trá»�ng trong khi táº¡o .fixuptrÃ¬nh liÃªn káº¿t chung khÃ´ng thá»ƒ xá»­ lÃ½ %sÄ‘á»‹a chá»‰ tÆ°Æ¡ng Ä‘á»‘i vá»›i con trá»� toÃ n cá»¥c váº«n á»Ÿ ngoáº¡i pháº¡m vicÃ³ Ä‘á»‹nh vá»‹ láº¡i tÆ°Æ¡ng Ä‘á»‘i vá»›i con trá»� toÃ n cá»¥c khi chÆ°a xÃ¡c Ä‘á»‹nh _gpkÃ½ hiá»‡u bá»‹ áº©nÄ�ang lá»� Ä‘i Ä‘á»‹nh vá»‹ láº¡i %s
+epilog:    cá»�: %u,slÆ°á»£ng: %u
+lá»—i: %B chá»©a má»™t Ä‘á»‹nh vá»‹ láº¡i (0x%s) cho pháº§n %A mÃ  tham chiáº¿u Ä‘áº¿n má»™t kÃ½ hiá»‡u toÃ n cá»¥c khÃ´ng tá»“n táº¡ilá»—i: %B khÃ´ng sá»­ dá»¥ng chá»‰ dáº«n Maverick, cÃ²n %B thÃ¬ cÃ³lá»—i: %B Ä‘Ã£ theo Ä‘á»‹nh dáº¡ng BE8 cuá»‘i cÃ¹nglá»—i: %B Ä‘Æ°á»£c biÃªn dá»‹ch nhÆ° mÃ£ vá»‹ trÃ­ tuyá»‡t Ä‘á»‘i, cÃ²n %B khÃ´ng phá»¥ thuá»™c vÃ o vá»‹ trÃ­lá»—i: %B Ä‘Æ°á»£c biÃªn dá»‹ch nhÆ° mÃ£ khÃ´ng phá»¥ thuá»™c vÃ o vá»‹ trÃ­, cÃ²n %B lÃ  vá»‹ trÃ­ tuyá»‡t Ä‘á»‘ilá»—i: %B Ä‘Æ°á»£c biÃªn dá»‹ch cho APCS-%d, cÃ²n %B Ä‘Æ°á»£c biÃªn dá»‹ch cho APCS-%dlá»—i: %B Ä‘Æ°á»£c biÃªn dá»‹ch cho APCS-%d, cÃ²n Ä‘Ã­ch %B sá»­ dá»¥ng APCS-%dlá»—i: %B Ä‘Æ°á»£c biÃªn dá»‹ch cho EP9312, cÃ²n %B Ä‘Æ°á»£c biÃªn dá»‹ch cho XScalelá»—i: %B gá»­i trÃ´i qua trong thanh ghi trÃ´i, cÃ²n %B gá»­i chÃºng qua trong thanh ghi sá»‘ nguyÃªnlá»—i: %B gá»­i trÃ´i qua trong thanh ghi sá»‘ nguyÃªn, cÃ²n %B gá»­i chÃºng qua trong thanh ghi trÃ´ilá»—i: %B yÃªu cáº§u máº£ng sáº¯p hÃ ng nhiá»�u hÆ¡n %B dá»± trá»¯lá»—i: %B yÃªu cáº§u stack sáº¯p hÃ ng nhiá»�u hÆ¡n %B dá»± trá»¯lá»—i: %B sá»­ dá»¥ng chá»‰ dáº«n FPA, cÃ²n %B thÃ¬ khÃ´nglá»—i: %B sá»­ dá»¥ng chá»‰ dáº«n Maverick, cÃ²n %B thÃ¬ khÃ´nglá»—i: %B sá»­ dá»¥ng chá»‰ dáº«n VFP, cÃ²n %B thÃ¬ khÃ´nglá»—i: %B sá»­ dá»¥ng cÃ¡c Ä‘á»‘i sá»‘ thanh ghi VFP, cÃ²n %B thÃ¬ khÃ´nglá»—i: %B sá»­ dá»¥ng FP pháº§n cá»©ng, cÃ²n %B sá»­ dá»¥ng FP pháº§n má»�mlá»—i: %B sá»­ dá»¥ng cÃ¡c Ä‘á»‘i sá»‘ thanh ghi iWMMXt, cÃ²n %B thÃ¬ khÃ´nglá»—i: %B sá»­ dá»¥ng FP pháº§n má»�m, cÃ²n %B sá»­ dá»¥ng FP pháº§n cá»©nglá»—i: %B: CÃ¡c kiáº¿n trÃºc CPU xung Ä‘á»™t vá»›i nhau %d/%dlá»—i: %B: CÃ¡c há»“ sÆ¡ kiáº¿n trÃºc xung Ä‘á»™t vá»›i nhau %c/%clá»—i; %B: DÃ¹ng R9 má»™t cÃ¡ch xung Ä‘á»™tlá»—i: %B: Ä�á»‘i tÆ°á»£ng cÃ³ ná»™i dung â€œvendor-specificâ€� pháº£i Ä‘Æ°á»£c xá»­ lÃ½ bá»Ÿi toolchain â€œ%sâ€�lá»—i: %B: Tháº» Ä‘á»‘i tÆ°á»£ng â€œ%d, %sâ€� khÃ´ng tÆ°Æ¡ng thÃ­ch vá»›i tháº» â€œ%d, %sâ€�lá»—i: %B: Ä‘áº¡t Ä‘á»‹a chá»‰ tÆ°Æ¡ng Ä‘á»‘i SB cÅ©ng xung Ä‘á»™t vá»›i cÃ¡ch dÃ¹ng R9lá»—i: %B: khÃ´ng rÃµ kiáº¿n trÃºc CPUlá»—i: %B: kÃ­ch thÆ°á»›c cá»§a pháº§n %A khÃ´ng pháº£i lÃ  bá»™i sá»‘ cá»§a kÃ­ch thÆ°á»›c Ä‘á»‹a chá»‰lá»—i: %B: khÃ´ng thá»ƒ hÃ²a trá»™ng thuá»™c tÃ­nh áº£o hÃ³a vá»›i %Blá»—i: Ä�á»‘i tÆ°á»£ng nguá»“n %B cÃ³ phiÃªn báº£n EABI %d, cÃ²n Ä‘Ã­ch %B cÃ³ phiÃªn báº£n EABI %dlá»—i: Ä‘á»‹nh dáº¡ng fp16 khÃ´ng tÆ°Æ¡ng á»©ng giá»¯a %B vÃ  %Blá»—i: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng thÃ­ch há»£p cho thÆ° viá»‡n chia sáº» (báº¡n Ä‘Ã£ quÃªn Ä‘áº·t -fpic khÃ´ng?)lá»—i: chÆ°a xÃ¡c Ä‘á»‹nh kÃ½ hiá»‡u __rtinitlá»—i: khÃ´ng hiá»ƒu giÃ¡ trá»‹ Tag_ABI_array_object_align_expected trong %Blá»—i: khÃ´ng hiá»ƒu giÃ¡ trá»‹ Tag_ABI_array_object_alignment trong %BcÃ³ thá»ƒ thá»±c thilá»—i cáº¥p phÃ¡t sá»©c chá»©a cho pháº§n thÃ´ng tin APUinfo má»›i.lá»—i tÃ­nh pháº§n thÃ´ng tin APUinfo má»›i.lá»—i cÃ i Ä‘áº·t pháº§n thÃ´ng tin APUinfo má»›i.gáº·p lá»—i nghiÃªm trá»�ng trong khi táº¡o .fixuptrÃ¬nh liÃªn káº¿t chung khÃ´ng thá»ƒ xá»­ lÃ½ %sÄ‘á»‹a chá»‰ tÆ°Æ¡ng Ä‘á»‘i vá»›i con trá»� toÃ n cá»¥c váº«n á»Ÿ ngoáº¡i pháº¡m vicÃ³ Ä‘á»‹nh vá»‹ láº¡i tÆ°Æ¡ng Ä‘á»‘i vá»›i con trá»� toÃ n cá»¥c khi chÆ°a xÃ¡c Ä‘á»‹nh _gpkÃ½ hiá»‡u bá»‹ áº©nÄ�ang lá»� Ä‘i Ä‘á»‹nh vá»‹ láº¡i %s
 incr_linum(b): +%u
 incr_linum_l: +%u
 incr_linum_w: +%u
 lá»—i ná»™i bá»™: pháº§n cá»™ng nÃªn lÃ  sá»‘ khÃ´ng cho R_LM32_16_GOTlá»—i ná»™i bá»™: lá»—i nguy hiá»ƒmlá»—i ná»™i bá»™: Ä‘á»‹nh vá»‹ láº¡i nguy hiá»ƒmlá»—i ná»™i bá»™: lá»—i á»Ÿ ngoáº¡i pháº¡m vilá»—i ná»™i bá»™: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i Ä‘Ã¡ng ngá»� Ä‘Æ°á»£c dÃ¹ng trong thÆ° viá»‡n chia sáº»lá»—i ná»™i bá»™: lá»—i khÃ´ng rÃµlá»—i ná»™i bá»™: lá»—i Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£sá»± mÃ¢u thuáº«n ná»™i bá»™ trong kÃ­ch cá»¡ cá»§a pháº§n .got.lockÃ½ hiá»‡u ná»™i bá»™tÃ¡i Ä‘á»‹nh vá»‹ káº¿t xuáº¥t khÃ´ng há»£p lá»‡ khi sáº£n sinh káº¿t xuáº¥t Ä‘á»‹nh dáº¡ng non-ELF, non-mmo.
  Xin hÃ£y sá»­ dá»¥ng chÆ°Æ¡ng trÃ¬nh objcopy Ä‘á»ƒ chuyá»ƒn tá»« ELF hoáº·c mmo,
- hoáº·c sá»­ dá»¥ng assemble "-no-expand" (cho gcc, "-Wa,-no-expand"tÃ¡i Ä‘á»‹nh vá»‹ káº¿t xuáº¥t khÃ´ng há»£p lá»‡ khi sáº£n sinh káº¿t xuáº¥t Ä‘á»‹nh dáº¡ng non-ELF, non-mmo.
+ hoáº·c sá»­ dá»¥ng assemble â€œ-no-expandâ€� (cho gcc, â€œ-Wa,-no-expandâ€�tÃ¡i Ä‘á»‹nh vá»‹ káº¿t xuáº¥t khÃ´ng há»£p lá»‡ khi sáº£n sinh káº¿t xuáº¥t Ä‘á»‹nh dáº¡ng non-ELF, non-mmo.
  Xin hÃ£y sá»­ dá»¥ng chÆ°Æ¡ng trÃ¬nh objcopy Ä‘á»ƒ chuyá»ƒn tá»« ELF hoáº·c mmo,
- hoáº·c dá»‹ch sá»­ dá»¥ng tÃ¹y-chá»�n-gcc "-mno-base-addresses".Ä‘á»‹a chá»‰ Ä‘á»‹nh vá»‹ láº¡i khÃ´ng há»£p lá»‡kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng há»£p lá»‡ %dsá»­ dá»¥ng sai %s vá»›i cÃ¡c ngá»¯ cáº£nhtrÃ¬nh liÃªn káº¿t ip2k: thiáº¿u chá»‰ dáº«n trang táº¡i 0x%08lx (Ä‘Ã­ch = 0x%08lx).trÃ¬nh liÃªn káº¿t ip2k: thá»«a chá»§ dáº«n trang táº¡i 0x%08lx (Ä‘Ã­ch = 0x%08lx).trÃ¬nh giáº£m nháº¹ ip2k: báº£ng chuyá»ƒn Ä‘á»•i cÃ³ pháº§n Ä‘áº§u bá»‹ há»�ng.trÃ¬nh giáº£m nháº¹ ip2k: chuyá»ƒn Ä‘á»•i báº£ng mÃ  khÃ´ng cÃ³ thÃ´ng tin Ä‘á»‹nh vá»‹ láº¡i hoÃ n thÃ nh.sá»‘ dÃ²ng  (dÃ i: %u)
+ hoáº·c dá»‹ch sá»­ dá»¥ng tÃ¹y-chá»�n-gcc â€œ-mno-base-addressesâ€�.Ä‘á»‹a chá»‰ Ä‘á»‹nh vá»‹ láº¡i khÃ´ng há»£p lá»‡kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng há»£p lá»‡ %dsá»­ dá»¥ng sai %s vá»›i cÃ¡c ngá»¯ cáº£nhtrÃ¬nh liÃªn káº¿t ip2k: thiáº¿u chá»‰ dáº«n trang táº¡i 0x%08lx (Ä‘Ã­ch = 0x%08lx).trÃ¬nh liÃªn káº¿t ip2k: thá»«a chá»§ dáº«n trang táº¡i 0x%08lx (Ä‘Ã­ch = 0x%08lx).trÃ¬nh giáº£m nháº¹ ip2k: báº£ng chuyá»ƒn Ä‘á»•i cÃ³ pháº§n Ä‘áº§u bá»‹ há»�ng.trÃ¬nh giáº£m nháº¹ ip2k: chuyá»ƒn Ä‘á»•i báº£ng mÃ  khÃ´ng cÃ³ thÃ´ng tin Ä‘á»‹nh vá»‹ láº¡i hoÃ n thÃ nh.sá»‘ dÃ²ng  (dÃ i: %u)
 áº£nh cÃ³ thá»ƒ liÃªn káº¿tcÃ¡c máº©u liÃªn káº¿t trong nhÃ³m %u%s
   nhÃ¡nh				%lu
   Ä‘iá»�u chá»‰nh toc		%lu
@@ -1147,10 +1147,10 @@ Thanh ghi toÃ n cá»¥c thá»© nháº¥t lÃ  $
 Ä‘á»‹nh vá»‹ láº¡i khÃ¡c Ä‘á»™ng cÅ©ng tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u Ä‘á»™ng %skÃ­ch cá»¡ khÃ¡c phá»§ 0x%v cá»™ng vá»›i kÃ­ch cá»¡ phá»§ tá»‘i Ä‘a 0x%v thÃ¬ vÆ°á»£t quÃ¡ kho cá»¥c bá»™
 sá»‘ háº¡ng khÃ¡c khÃ´ng trong Ä‘á»‹nh vá»‹ láº¡i @fptrkhÃ´ng Ä‘á»§ sá»©c chá»©a GOT cho cÃ¡c má»¥c nháº­p GOT cá»¥c bá»™khÃ´ng Ä‘ang Ã¡nh xáº¡: dá»¯ liá»‡u=%lx Ä‘Ã£ Ã¡nh xáº¡=%d
 khÃ´ng Ä‘ang Ã¡nh xáº¡: chÆ°a Ä‘áº·t biáº¿n mÃ´i trÆ°á»�ng
-chÃº Ã½: '%s' Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a trong DSO %B do Ä‘Ã³ hÃ£y thá»­ thÃªm nÃ³ vÃ o trong dÃ²ng lá»‡nh cá»§a bá»™ liÃªn káº¿tá»Ÿ ngoáº¡i pháº¡m vitrÃ n sau khi giáº£m nháº¹trÃ n Ä‘á»‹nh vá»‹ láº¡i máº©u phá»§cÃ¡c cá»� riÃªng â€” %lxcÃ¡c cá»� riÃªng = %lx:cÃ¡c cá»� riÃªng â€” %lx: cÃ¡c cá»� riÃªng = %x:cÃ¡c cá»� riÃªng = 0x%lxcÃ¡c cá»� riÃªng = 0x%lx:prolog: Ä‘á»‹a chá»‰ bkpt 0x%08x
+chÃº Ã½: â€œ%sâ€� Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a trong DSO %B do Ä‘Ã³ hÃ£y thá»­ thÃªm nÃ³ vÃ o trong dÃ²ng lá»‡nh cá»§a bá»™ liÃªn káº¿tá»Ÿ ngoáº¡i pháº¡m vitrÃ n sau khi giáº£m nháº¹trÃ n Ä‘á»‹nh vá»‹ láº¡i máº©u phá»§cÃ¡c cá»� riÃªng â€” %lxcÃ¡c cá»� riÃªng = %lx:cÃ¡c cá»� riÃªng â€” %lx: cÃ¡c cá»� riÃªng = %x:cÃ¡c cá»� riÃªng = 0x%lxcÃ¡c cá»� riÃªng = 0x%lx:prolog: Ä‘á»‹a chá»‰ bkpt 0x%08x
 kÃ½ hiá»‡u bá»‹ báº£o vá»‡recbeg: tÃªn: %.*s
 recend
-tham chiáº¿u Ä‘áº¿n má»™t Ä‘á»‹a chá»‰ Ä‘Ã£ Ä‘áº·t vÃ o khá»‘i nhá»› [%lx:%04lx] trong vÃ¹ng Ä‘á»‹a chá»‰ thÃ´ng thÆ°á»�ng táº¡i %04lxregtÃ¡i Ä‘á»‹nh vá»‹ `%s' váº«n chÆ°a Ä‘Æ°á»£c viáº¿tÄ‘á»‹nh vá»‹ láº¡i tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u khÃ´ng Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a trong mÃ´-Ä‘unÄ‘á»‹nh vá»‹ láº¡i cáº§n thiáº¿t sá»‘ háº¡ng sá»‘ khÃ´ngtÃ¡i Ä‘á»‹nh vá»‹ pháº£i lÃ  sá»‘ cháºµnkhÃ´ng há»— trá»£ Ä‘á»‹nh vá»‹ láº¡i giá»¯a cÃ¡c Ä‘oáº¡n khÃ¡c nhauÄ‘ang má»Ÿ láº¡i %B: %s
+tham chiáº¿u Ä‘áº¿n má»™t Ä‘á»‹a chá»‰ Ä‘Ã£ Ä‘áº·t vÃ o khá»‘i nhá»› [%lx:%04lx] trong vÃ¹ng Ä‘á»‹a chá»‰ thÃ´ng thÆ°á»�ng táº¡i %04lxregtÃ¡i Ä‘á»‹nh vá»‹ â€œ%sâ€� váº«n chÆ°a Ä‘Æ°á»£c viáº¿tÄ‘á»‹nh vá»‹ láº¡i tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u khÃ´ng Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a trong mÃ´-Ä‘unÄ‘á»‹nh vá»‹ láº¡i cáº§n thiáº¿t sá»‘ háº¡ng sá»‘ khÃ´ngtÃ¡i Ä‘á»‹nh vá»‹ pháº£i lÃ  sá»‘ cháºµnkhÃ´ng há»— trá»£ Ä‘á»‹nh vá»‹ láº¡i giá»¯a cÃ¡c Ä‘oáº¡n khÃ¡c nhauÄ‘ang má»Ÿ láº¡i %B: %s
 cmd (lá»‡nh)  Ä‘áº£o ngÆ°á»£c %drtnbeg
 rtnend: kÃ­ch thÆ°á»›c 0x%08x
 septyp, tÃªn: %.*s
@@ -1158,16 +1158,16 @@ Thanh ghi toÃ n cá»¥c thá»© nháº¥t lÃ  $
 set_line_num(w) %u
 set_line_num_b %u
 set_line_num_l %u
-Pháº§n small-data (dá»¯ liá»‡u nhá»�) vÆ°á»£t quÃ¡ 64 KB; hÃ£y giáº£m giá»›i háº¡n dá»¯ liá»‡u nhá»� (xem tÃ¹y chá»�n "-G")som_sizeof_headers chÆ°a Ä‘Æ°á»£c thá»±c hiá»‡ntiáº¿c lÃ  vÄƒn lá»‡nh tá»± Ä‘á»™ng phá»§ khÃ´ng há»— trá»£ táº­p tin Ä‘á»‘i tÆ°á»£ng tÄƒng Ä‘Ã´i
+Pháº§n small-data (dá»¯ liá»‡u nhá»�) vÆ°á»£t quÃ¡ 64 KB; hÃ£y giáº£m giá»›i háº¡n dá»¯ liá»‡u nhá»� (xem tÃ¹y chá»�n â€œ-Gâ€�)som_sizeof_headers chÆ°a Ä‘Æ°á»£c thá»±c hiá»‡ntiáº¿c lÃ  vÄƒn lá»‡nh tá»± Ä‘á»™ng phá»§ khÃ´ng há»— trá»£ táº­p tin Ä‘á»‘i tÆ°á»£ng tÄƒng Ä‘Ã´i
 nguá»“n (dÃ i: %u)
 dá»¯ liá»‡u chuáº©n: %s
 thá»§ tá»¥c tÄ©nh (khÃ´ng cÃ³ tÃªn)má»¥c nháº­p máº©u cho %s khÃ´ng thá»ƒ náº¡p .plt, khoáº£ng bÃ¹ dp = %ldcÃ¡c máº©u khÃ´ng tÆ°Æ¡ng á»©ng vá»›i kÃ­ch cá»¡ Ä‘Ã£ tÃ­nhkÃ½ hiá»‡uthÃ´ng tin vá»� phiÃªn báº£n cá»§a máº£ng tá»« há»‡ thá»‘ng
 term(b): 0x%02xterm_w: 0x%04xtypspec (dÃ i: %u)
-khÃ´ng tÃ¬m tháº¥y keo há»“ ARM "%s" cho "%s"khÃ´ng tÃ¬m tháº¥y keo há»“ THUMB "%s" cho "%s"khÃ´ng thá»ƒ Ä‘á»�c trong pháº§n %s tá»« %BkhÃ´ng thá»ƒ Ä‘á»�c lá»‡nh táº£i chÆ°a Ä‘Æ°á»£c biáº¿t 0x%lxkhÃ´ng thá»ƒ ghi lá»‡nh táº£i chÆ°a Ä‘Æ°á»£c biáº¿t 0x%lxchuá»—i-bit chÆ°a Ä‘Æ°á»£c cÄƒn chá»‰nh cá»§a %s
+khÃ´ng tÃ¬m tháº¥y keo há»“ ARM â€œ%sâ€� cho â€œ%sâ€�khÃ´ng tÃ¬m tháº¥y keo há»“ THUMB â€œ%sâ€� cho â€œ%sâ€�khÃ´ng thá»ƒ Ä‘á»�c trong pháº§n %s tá»« %BkhÃ´ng thá»ƒ Ä‘á»�c lá»‡nh táº£i chÆ°a Ä‘Æ°á»£c biáº¿t 0x%lxkhÃ´ng thá»ƒ ghi lá»‡nh táº£i chÆ°a Ä‘Æ°á»£c biáº¿t 0x%lxchuá»—i-bit chÆ°a Ä‘Æ°á»£c cÄƒn chá»‰nh cá»§a %s
 quy Æ°á»›c gá»�i khÃ´ng cháº¯c cháº¯n cho kÃ½ hiá»‡u khÃ¡c COFFgáº·p tham chiáº¿u %s chÆ°a Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh trong kÃ½ hiá»‡u phá»©c táº¡p %segsd kiá»ƒu má»¥c vÃ o chÆ°a Ä‘Æ°á»£c quáº£n lÃ½ %u
 kiá»ƒu phá»¥ emh chÆ°a Ä‘Æ°á»£c quáº£n lÃ½ %u
-khÃ´ng rÃµkhÃ´ng rÃµ cÃ¢u lá»‡nh ETIR %dlá»—i khÃ´ng rÃµkhÃ´ng hiá»ƒu giÃ¡ trá»‹ thá»©-tá»±-byte trong pháº§n Ä‘áº§u 0x%lxkhÃ´ng rÃµ cÃ¢u lá»‡nh dÃ²ng %dkhÃ´ng rÃµ toÃ¡n tá»­ "%c" trong kÃ½ hiá»‡u phá»©c táº¡pkhÃ´ng rÃµ cÃ¢u lá»‡nh nguá»“n %dcÃ¢u lá»‡nh STA khÃ´ng Ä‘Æ°á»£c há»— trá»£ %sÄ‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£gáº·p Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£ giá»¯a vÃ¹ng Ä‘á»‹a chá»‰ kiá»ƒu dá»¯ liá»‡u vÃ  chá»‰ dáº«nÄ‘ang dÃ¹ng nhiá»�u giÃ¡ trá»‹ GPKiáº¿n trÃºc v850Kiáº¿n trÃºc v850eKiáº¿n trÃºc v850e1Kiáº¿n trÃºc v850e2Kiáº¿n trÃºc v850e2v3vflags: 0x%02x, giÃ¡ trá»‹: 0x%08x vma:			Ä�á»‹a chi Ä‘áº§u    Ä�á»‹a chá»‰ cuá»‘i     ThÃ´ng tin thÃ¡o ra
-cáº£nh bÃ¡o: %B vÃ  %B cÃ³ kÃ­ch thÆ°á»›c wchar_t khÃ¡c nhaucáº£nh bÃ¡o: %B vÃ  %B khÃ¡c nhau á»Ÿ chá»— mÃ  mÃ£ Ä‘Æ°á»£c dá»‹ch cho DSBTcáº£nh bÃ¡o: %B dÃ¹ng sá»± Ä‘áº¿m %s, cÃ²n káº¿t xuáº¥t nÃªn dÃ¹ng sá»± Ä‘áº¿m %s; vÃ¬ váº­y cÃ³ thá»ƒ khÃ´ng thÃ nh cÃ´ng dÃ¹ng giÃ¡ trá»‹ Ä‘áº¿m qua cÃ¡c Ä‘á»‘i tÆ°á»£ngcáº£nh bÃ¡o: %B dÃ¹ng wchar_t %u-byte, cÃ²n káº¿t xuáº¥t nÃªn dÃ¹ng wchar_t %u-byte; vÃ¬ váº­y cÃ³ thá»ƒ khÃ´ng thÃ nh cÃ´ng dÃ¹ng giÃ¡ trá»‹ wchar_t qua cÃ¡c Ä‘á»‘i tÆ°á»£ngcáº£nh bÃ¡o: %B: kÃ½ hiá»‡u cá»¥c bá»™ "%s" khÃ´ng cÃ³ pháº§n Ä‘oáº¡ncáº£nh bÃ¡o: %s vÆ°á»£t quÃ¡ kÃ­ch cá»¡ pháº§n
+khÃ´ng rÃµkhÃ´ng rÃµ cÃ¢u lá»‡nh ETIR %dlá»—i khÃ´ng rÃµkhÃ´ng hiá»ƒu giÃ¡ trá»‹ thá»©-tá»±-byte trong pháº§n Ä‘áº§u 0x%lxkhÃ´ng rÃµ cÃ¢u lá»‡nh dÃ²ng %dkhÃ´ng rÃµ toÃ¡n tá»­ â€œ%câ€� trong kÃ½ hiá»‡u phá»©c táº¡pkhÃ´ng rÃµ cÃ¢u lá»‡nh nguá»“n %dcÃ¢u lá»‡nh STA khÃ´ng Ä‘Æ°á»£c há»— trá»£ %sÄ‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£gáº·p Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c há»— trá»£ giá»¯a vÃ¹ng Ä‘á»‹a chá»‰ kiá»ƒu dá»¯ liá»‡u vÃ  chá»‰ dáº«nÄ‘ang dÃ¹ng nhiá»�u giÃ¡ trá»‹ GPKiáº¿n trÃºc v850Kiáº¿n trÃºc v850eKiáº¿n trÃºc v850e1Kiáº¿n trÃºc v850e2Kiáº¿n trÃºc v850e2v3vflags: 0x%02x, giÃ¡ trá»‹: 0x%08x vma:			Ä�á»‹a chi Ä‘áº§u    Ä�á»‹a chá»‰ cuá»‘i     ThÃ´ng tin thÃ¡o ra
+cáº£nh bÃ¡o: %B vÃ  %B cÃ³ kÃ­ch thÆ°á»›c wchar_t khÃ¡c nhaucáº£nh bÃ¡o: %B vÃ  %B khÃ¡c nhau á»Ÿ chá»— mÃ  mÃ£ Ä‘Æ°á»£c dá»‹ch cho DSBTcáº£nh bÃ¡o: %B dÃ¹ng sá»± Ä‘áº¿m %s, cÃ²n káº¿t xuáº¥t nÃªn dÃ¹ng sá»± Ä‘áº¿m %s; vÃ¬ váº­y cÃ³ thá»ƒ khÃ´ng thÃ nh cÃ´ng dÃ¹ng giÃ¡ trá»‹ Ä‘áº¿m qua cÃ¡c Ä‘á»‘i tÆ°á»£ngcáº£nh bÃ¡o: %B dÃ¹ng wchar_t %u-byte, cÃ²n káº¿t xuáº¥t nÃªn dÃ¹ng wchar_t %u-byte; vÃ¬ váº­y cÃ³ thá»ƒ khÃ´ng thÃ nh cÃ´ng dÃ¹ng giÃ¡ trá»‹ wchar_t qua cÃ¡c Ä‘á»‘i tÆ°á»£ngcáº£nh bÃ¡o: %B: kÃ½ hiá»‡u cá»¥c bá»™ â€œ%sâ€� khÃ´ng cÃ³ pháº§n Ä‘oáº¡ncáº£nh bÃ¡o: %s vÆ°á»£t quÃ¡ kÃ­ch cá»¡ pháº§n
 cáº£nh bÃ¡o: %s cÃ³ má»™t chá»‰ má»¥c báº£ng chuá»—i bá»‹ há»�ng: nÃªn bá»� quacáº£nh bÃ¡o: %s Ä‘Ã¨ lÃªn %s
 cáº£nh bÃ¡o: pháº§n %s cÃ³ kÃ­ch cá»¡ sá»‘ khÃ´ngcáº£nh bÃ¡o: kÃ­ch cá»¡ pháº§n .pdata (%ld) khÃ´ng pháº£i lÃ  bá»™i sá»‘ cho %d
-cáº£nh bÃ¡o: thá»­ xuáº¥t kÃ½ hiá»‡u chÆ°a Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh "%s"cáº£nh bÃ¡o: cuá»™c gá»�i kÃ½ hiá»‡u khÃ¡c hÃ m %s Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh trong %Bcáº£nh bÃ¡o: Ä‘ang táº¡o thÆ° viá»‡n liÃªn káº¿t Ä‘á»™ng cÃ³ chá»©a mÃ£ non-PICcáº£nh bÃ¡o: Ä‘ang táº¡o thÆ° viá»‡n liÃªn káº¿t Ä‘á»™ng cÃ³ chá»©a mÃ£ non-PIDcáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i tham chiáº¿u Ä‘áº¿n má»™t Ä‘oáº¡n khÃ¡ccáº£nh bÃ¡o: pháº§n "%s" bá»‹ lÃ m thÃ nh má»™t ghi chÃºcáº£nh bÃ¡o: pháº§n "%A" cÃ³ kiá»ƒu bá»‹ thay Ä‘á»•i thÃ nh PROGBITScáº£nh bÃ¡o: chÆ°a xÃ¡c Ä‘á»‹nh kiá»ƒu vÃ  kÃ­ch cá»¡ cá»§a kÃ½ hiá»‡u Ä‘á»™ng "%s"cáº£nh bÃ¡o: khÃ´ng thá»ƒ Ä‘áº·t kÃ­ch cá»¡ cá»§a pháº§n %s trong %Bcáº£nh bÃ¡o: khÃ´ng thá»ƒ cáº­p nháº­t ná»™i dung cá»§a pháº§n %s trong %skhÃ´ng cho phÃ©p báº¡n xÃ¡c Ä‘á»‹nh %s trong má»™t vÄƒn lá»‡nh
\ No newline at end of file
+cáº£nh bÃ¡o: thá»­ xuáº¥t kÃ½ hiá»‡u chÆ°a Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh â€œ%sâ€�cáº£nh bÃ¡o: cuá»™c gá»�i kÃ½ hiá»‡u khÃ¡c hÃ m %s Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh trong %Bcáº£nh bÃ¡o: Ä‘ang táº¡o thÆ° viá»‡n liÃªn káº¿t Ä‘á»™ng cÃ³ chá»©a mÃ£ non-PICcáº£nh bÃ¡o: Ä‘ang táº¡o thÆ° viá»‡n liÃªn káº¿t Ä‘á»™ng cÃ³ chá»©a mÃ£ non-PIDcáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i tham chiáº¿u Ä‘áº¿n má»™t Ä‘oáº¡n khÃ¡ccáº£nh bÃ¡o: pháº§n â€œ%sâ€� bá»‹ lÃ m thÃ nh má»™t ghi chÃºcáº£nh bÃ¡o: pháº§n â€œ%Aâ€� cÃ³ kiá»ƒu bá»‹ thay Ä‘á»•i thÃ nh PROGBITScáº£nh bÃ¡o: chÆ°a xÃ¡c Ä‘á»‹nh kiá»ƒu vÃ  kÃ­ch cá»¡ cá»§a kÃ½ hiá»‡u Ä‘á»™ng â€œ%sâ€�cáº£nh bÃ¡o: khÃ´ng thá»ƒ Ä‘áº·t kÃ­ch cá»¡ cá»§a pháº§n %s trong %Bcáº£nh bÃ¡o: khÃ´ng thá»ƒ cáº­p nháº­t ná»™i dung cá»§a pháº§n %s trong %skhÃ´ng cho phÃ©p báº¡n xÃ¡c Ä‘á»‹nh %s trong má»™t vÄƒn lá»‡nh
\ No newline at end of file
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/vi.po ./bfd/po/vi.po
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/vi.po	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/vi.po	2018-01-09 02:04:54.000000000 +0000
@@ -1,26 +1,25 @@
 # Vietnamese translation for BFD.
-# Copyright Â© 2012 Free Software Foundation, Inc.
+# Copyright Â© 2013 Free Software Foundation, Inc.
 # This file is distributed under the same license as the binutils package.
 # Phan VÄ©nh Thá»‹nh <teppi@gmail.com>, 2005.
 # Clytie Siddall <clytie@riverland.net.au>, 2008-2010.
-# Tráº§n Ngá»�c QuÃ¢n <vnwildman@gmail.com>, 2012.
+# Tráº§n Ngá»�c QuÃ¢n <vnwildman@gmail.com>, 2012-2013.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: bfd-2.22.90\n"
+"Project-Id-Version: bfd-2.23.2\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
 "POT-Creation-Date: 2011-10-25 11:58+0100\n"
-"PO-Revision-Date: 2012-08-15 14:47+0700\n"
+"PO-Revision-Date: 2013-06-01 08:14+0700\n"
 "Last-Translator: Tráº§n Ngá»�c QuÃ¢n <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
 "Language: vi\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: LocFactoryEditor 1.8\n"
-"X-Poedit-Language: Vietnamese\n"
-"X-Poedit-Country: VIET NAM\n"
+"X-Generator: Poedit 1.5.5\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
 #: aout-adobe.c:127
@@ -43,12 +42,12 @@ msgstr "%B: Ä�Ã£ nháº­p má»¥c ghi Ä‘á»‹n
 #: aoutx.h:1273 aoutx.h:1611
 #, c-format
 msgid "%s: can not represent section `%s' in a.out object file format"
-msgstr "%s: khÃ´ng thá»ƒ Ä‘áº¡i diá»‡n phÃ¢n \"%s\" trong Ä‘á»‹nh dáº¡ng táº­p tin Ä‘á»‘i tÆ°á»£ng a.out"
+msgstr "%s: khÃ´ng thá»ƒ Ä‘áº¡i diá»‡n phÃ¢n â€œ%sâ€� trong Ä‘á»‹nh dáº¡ng táº­p tin Ä‘á»‘i tÆ°á»£ng a.out"
 
 #: aoutx.h:1577
 #, c-format
 msgid "%s: can not represent section for symbol `%s' in a.out object file format"
-msgstr "%s: khÃ´ng thá»ƒ Ä‘áº¡i diá»‡n phÃ¢n cho kÃ½ hiá»‡u \"%s\" trong Ä‘á»‹nh dáº¡ng táº­p tin Ä‘á»‘i tÆ°á»£ng a.ou"
+msgstr "%s: khÃ´ng thá»ƒ Ä‘áº¡i diá»‡n phÃ¢n cho kÃ½ hiá»‡u â€œ%sâ€� trong Ä‘á»‹nh dáº¡ng táº­p tin Ä‘á»‘i tÆ°á»£ng a.ou"
 
 #: aoutx.h:1579 vms-alpha.c:7671
 msgid "*unknown*"
@@ -192,13 +191,13 @@ msgstr "khÃ´ng Ä‘ang Ã¡nh xáº¡: chÆ°a Ä‘
 #: binary.c:271
 #, c-format
 msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx."
-msgstr "Cáº£nh bÃ¡o: Ä‘ang ghi pháº§n \"%s\" vÃ o khoáº£ng bÃ¹ táº­p tin ráº¥t lá»›n (tá»©c lÃ  Ã¢m) 0x%lx."
+msgstr "Cáº£nh bÃ¡o: Ä‘ang ghi pháº§n â€œ%sâ€� vÃ o khoáº£ng bÃ¹ táº­p tin ráº¥t lá»›n (tá»©c lÃ  Ã¢m) 0x%lx."
 
 #: bout.c:1146 elf-m10300.c:2063 elf32-avr.c:1654 elf32-frv.c:5734
 #: elfxx-sparc.c:2802 reloc.c:6115 reloc16.c:162 elf32-ia64.c:360
 #: elf64-ia64.c:360
 msgid "%P%F: --relax and -r may not be used together\n"
-msgstr "%P%F: khÃ´ng thá»ƒ dÃ¹ng vá»›i nhau hai tuá»³ chá»�n \"--relax\" vÃ  \"-r\"\n"
+msgstr "%P%F: khÃ´ng thá»ƒ dÃ¹ng vá»›i nhau hai tuá»³ chá»�n â€œ--relaxâ€� vÃ  â€œ-râ€�\n"
 
 #: cache.c:227
 msgid "reopening %B: %s\n"
@@ -240,12 +239,12 @@ msgstr "%B: khÃ´ng rÃµ kiá»ƒu Ä‘á»‹nh vá
 #: coff-arm.c:1038
 #, c-format
 msgid "%B: unable to find THUMB glue '%s' for `%s'"
-msgstr "%B: khÃ´ng tÃ¬m tháº¥y keo há»“ THUMB \"%s\" cho \"%s\""
+msgstr "%B: khÃ´ng tÃ¬m tháº¥y cháº¥t káº¿t dÃ­nh THUMB â€œ%sâ€� cho â€œ%sâ€�"
 
 #: coff-arm.c:1067
 #, c-format
 msgid "%B: unable to find ARM glue '%s' for `%s'"
-msgstr "%B: khÃ´ng tÃ¬m tháº¥y keo há»“ ARM \"%s\" cho \"%s\""
+msgstr "%B: khÃ´ng tÃ¬m tháº¥y cháº¥t káº¿t dÃ­nh ARM â€œ%sâ€� cho â€œ%sâ€�"
 
 #: coff-arm.c:1369 elf32-arm.c:7023
 #, c-format
@@ -265,11 +264,11 @@ msgid ""
 msgstr ""
 "%B(%s): cáº£nh bÃ¡o: chÆ°a báº­t dÃ¹ng áº£nh hÆ°á»Ÿng láº«n nhau.\n"
 "  láº§n xuáº¥t hiá»‡n Ä‘áº§u tiÃªn: %B: gá»�i thumb tá»›i arm\n"
-"  coi nhÆ° liÃªn káº¿t láº¡i vá»›i \"--support-old-code\" Ä‘Æ°á»£c báº­t"
+"  coi nhÆ° liÃªn káº¿t láº¡i vá»›i â€œ--support-old-codeâ€� Ä‘Æ°á»£c báº­t"
 
 #: coff-arm.c:1754 coff-tic80.c:695 cofflink.c:3081
 msgid "%B: bad reloc address 0x%lx in section `%A'"
-msgstr "%B: Ä‘á»‹a chá»‰ Ä‘á»‹nh vá»‹ láº¡i sai 0x%lx trong pháº§n \"%A\""
+msgstr "%B: Ä‘á»‹a chá»‰ Ä‘á»‹nh vá»‹ láº¡i sai 0x%lx trong pháº§n â€œ%Aâ€�"
 
 #: coff-arm.c:2079
 msgid "%B: illegal symbol index in reloc: %d"
@@ -368,7 +367,7 @@ msgstr "khÃ´ng thá»ƒ xá»­ lÃ½ Ä‘á»‹nh vá
 #: coff-i860.c:147
 #, c-format
 msgid "relocation `%s' not yet implemented"
-msgstr "tÃ¡i Ä‘á»‹nh vá»‹ `%s' váº«n chÆ°a Ä‘Æ°á»£c viáº¿t"
+msgstr "tÃ¡i Ä‘á»‹nh vá»‹ â€œ%sâ€� váº«n chÆ°a Ä‘Æ°á»£c viáº¿t"
 
 #: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5198
 msgid "%B: warning: illegal symbol index %ld in relocs"
@@ -399,11 +398,11 @@ msgstr "%s: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i kh
 #: coff-rs6000.c:2805
 #, c-format
 msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
-msgstr "%s: Ä‘á»‹nh vá»‹ láº¡i TOC táº¡i 0x%x tá»›i kÃ½ hiá»‡u \"%s\" khÃ´ng cÃ³ má»¥c nháº­p TOC"
+msgstr "%s: Ä‘á»‹nh vá»‹ láº¡i TOC táº¡i 0x%x tá»›i kÃ½ hiá»‡u â€œ%sâ€� khÃ´ng cÃ³ má»¥c nháº­p TOC"
 
 #: coff-rs6000.c:3556 coff64-rs6000.c:2111
 msgid "%B: symbol `%s' has unrecognized smclas %d"
-msgstr "%B: kÃ½ tá»± \"%s\" cÃ³ smclas khÃ´ng nháº­n ra %d"
+msgstr "%B: kÃ½ tá»± â€œ%sâ€� cÃ³ smclas khÃ´ng nháº­n ra %d"
 
 #: coff-sh.c:521
 #, c-format
@@ -427,7 +426,7 @@ msgstr "Ä�ang lá»� Ä‘i Ä‘á»‹nh vá»‹ láº¡
 
 #: coffcode.h:997
 msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'"
-msgstr "%B: cáº£nh bÃ¡o: kÃ½ hiá»‡u COMDAT \"%s\" khÃ´ng tÆ°Æ¡ng á»©ng vÆ¡i tÃªn pháº§n \"%s\""
+msgstr "%B: cáº£nh bÃ¡o: kÃ½ hiá»‡u COMDAT â€œ%sâ€� khÃ´ng tÆ°Æ¡ng á»©ng vÆ¡i tÃªn pháº§n â€œ%sâ€�"
 
 #. Generate a warning message rather using the 'unhandled'
 #. variable as this will allow some .sys files generate by
@@ -443,7 +442,7 @@ msgstr "%B (%s): Ä�Ã£ lá»� Ä‘i cá»� cá»§
 #: coffcode.h:2430
 #, c-format
 msgid "Unrecognized TI COFF target id '0x%x'"
-msgstr "KhÃ´ng nháº­n ra mÃ£ sá»‘ Ä‘Ã­ch TI COFF \"0x%x\""
+msgstr "KhÃ´ng nháº­n ra mÃ£ sá»‘ Ä‘Ã­ch TI COFF â€œ0x%xâ€�"
 
 #: coffcode.h:2744
 msgid "%B: reloc against a non-existant symbol index: %ld"
@@ -467,15 +466,15 @@ msgstr "%B: cáº£nh bÃ¡o: chá»‰ má»¥c kÃ½
 
 #: coffcode.h:4567
 msgid "%B: warning: duplicate line number information for `%s'"
-msgstr "%B: cáº£nh bÃ¡o: thÃ´ng tin sá»‘ thá»© tá»± dÃ²ng trÃ¹ng Ä‘á»‘i vá»›i \"%s\""
+msgstr "%B: cáº£nh bÃ¡o: thÃ´ng tin sá»‘ thá»© tá»± dÃ²ng trÃ¹ng Ä‘á»‘i vá»›i â€œ%sâ€�"
 
 #: coffcode.h:4967
 msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
-msgstr "%B: KhÃ´ng nháº­n ra háº¡ng lÆ°u trá»¯ %d cho kÃ½ hiá»‡u %s \"%s\""
+msgstr "%B: KhÃ´ng nháº­n ra háº¡ng lÆ°u trá»¯ %d cho kÃ½ hiá»‡u %s â€œ%sâ€�"
 
 #: coffcode.h:5093
 msgid "warning: %B: local symbol `%s' has no section"
-msgstr "cáº£nh bÃ¡o: %B: kÃ½ hiá»‡u cá»¥c bá»™ \"%s\" khÃ´ng cÃ³ pháº§n Ä‘oáº¡n"
+msgstr "cáº£nh bÃ¡o: %B: kÃ½ hiá»‡u cá»¥c bá»™ â€œ%sâ€� khÃ´ng cÃ³ pháº§n Ä‘oáº¡n"
 
 #: coffcode.h:5237
 msgid "%B: illegal relocation type %d at address 0x%lx"
@@ -491,15 +490,15 @@ msgstr "%F%P: already_linked_table: %E\n
 
 #: cofflink.c:533 elflink.c:4323
 msgid "Warning: type of symbol `%s' changed from %d to %d in %B"
-msgstr "Cáº£nh bÃ¡o: kiá»ƒu kÃ½ hiá»‡u \"%s\" bá»‹ thay Ä‘á»•i tá»« %d thÃ nh %d trong %B"
+msgstr "Cáº£nh bÃ¡o: kiá»ƒu kÃ½ hiá»‡u â€œ%sâ€� bá»‹ thay Ä‘á»•i tá»« %d thÃ nh %d trong %B"
 
 #: cofflink.c:2329
 msgid "%B: relocs in section `%A', but it has no contents"
-msgstr "%B: Ä‘á»‹nh vá»‹ láº¡i trong pháº§n \"%A\", nhÆ°ng nÃ³ khÃ´ng cÃ³ ná»™i dung"
+msgstr "%B: Ä‘á»‹nh vá»‹ láº¡i trong pháº§n â€œ%Aâ€�, nhÆ°ng nÃ³ khÃ´ng cÃ³ ná»™i dung"
 
 #: cofflink.c:2391 elflink.c:9545
 msgid "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B\n"
-msgstr "%X\"%s\" Ä‘Æ°á»£c tham chiáº¿u trong pháº§n \"%A\" cá»§a %B: Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a trong pháº§n bá»‹ há»§y \"%A\" cá»§a %B\n"
+msgstr "%Xâ€�%sâ€� Ä‘Æ°á»£c tham chiáº¿u trong pháº§n â€œ%Aâ€� cá»§a %B: Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a trong pháº§n bá»‹ há»§y â€œ%Aâ€� cá»§a %B\n"
 
 #: cofflink.c:2690 coffswap.h:826
 #, c-format
@@ -560,12 +559,12 @@ msgstr "Lá»—i Dwarf: KhÃ´ng tÃ¬m tháº¥y 
 #: dwarf2.c:2355
 #, c-format
 msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information."
-msgstr "Lá»—i Dwarf: tÃ¬m tháº¥y dwarf phiÃªn báº£n \"%u\", nhÆ°ng trÃ¬nh Ä‘á»�c nÃ y chá»‰ cÃ³ thá»ƒ náº¯m báº¯t Ä‘Æ°á»£c thÃ´ng tin cá»§a phiÃªn báº£n 2, 3 vÃ  4."
+msgstr "Lá»—i Dwarf: tÃ¬m tháº¥y dwarf phiÃªn báº£n â€œ%uâ€�, nhÆ°ng trÃ¬nh Ä‘á»�c nÃ y chá»‰ cÃ³ thá»ƒ náº¯m báº¯t Ä‘Æ°á»£c thÃ´ng tin cá»§a phiÃªn báº£n 2, 3 vÃ  4."
 
 #: dwarf2.c:2362
 #, c-format
 msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'."
-msgstr "Lá»—i Dwarf: tÃ¬m tháº¥y kÃ­ch cá»¡ Ä‘á»‹a chá»‰ \"%u\", nhÆ°ng trÃ¬nh Ä‘á»�c nÃ y khÃ´ng Ä‘iá»�u khiá»ƒn Ä‘Æ°á»£c kÃ­ch cá»¡ lá»›n hÆ¡n \"%u\"."
+msgstr "Lá»—i Dwarf: tÃ¬m tháº¥y kÃ­ch cá»¡ Ä‘á»‹a chá»‰ â€œ%uâ€�, nhÆ°ng trÃ¬nh Ä‘á»�c nÃ y khÃ´ng Ä‘iá»�u khiá»ƒn Ä‘Æ°á»£c kÃ­ch cá»¡ lá»›n hÆ¡n â€œ%uâ€�."
 
 #: dwarf2.c:2385
 #, c-format
@@ -638,7 +637,7 @@ msgid ""
 "      enum; End+1 symbol: %ld"
 msgstr ""
 "\n"
-"      Ä‘áº¿m; kÃ½ hiá»‡u End+1: %ld"
+"      enum; kÃ½ hiá»‡u End+1: %ld"
 
 #: ecoff.c:1549
 #, c-format
@@ -651,11 +650,11 @@ msgstr ""
 
 #: elf-attrs.c:569
 msgid "error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchain"
-msgstr "lá»—i: %B: Ä�á»‘i tÆ°á»£ng cÃ³ ná»™i dung \"vendor-specific\" pháº£i Ä‘Æ°á»£c xá»­ lÃ½ bá»Ÿi toolchain '%s'"
+msgstr "lá»—i: %B: Ä�á»‘i tÆ°á»£ng cÃ³ ná»™i dung â€œvendor-specificâ€� pháº£i Ä‘Æ°á»£c xá»­ lÃ½ bá»Ÿi toolchain â€œ%sâ€�"
 
 #: elf-attrs.c:578
 msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'"
-msgstr "lá»—i: %B: tháº» Ä‘á»‘i tÆ°á»£ng \"%d, %s\" khÃ´ng tÆ°Æ¡ng thÃ­ch vá»›i tháº» \"%d, %s\""
+msgstr "lá»—i: %B: Tháº» Ä‘á»‘i tÆ°á»£ng â€œ%d, %sâ€� khÃ´ng tÆ°Æ¡ng thÃ­ch vá»›i tháº» â€œ%d, %sâ€�"
 
 #: elf-eh-frame.c:917
 msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n"
@@ -671,7 +670,7 @@ msgstr "%P: DW_EH_PE_datarel chÆ°a Ä‘á»‹
 
 #: elf-ifunc.c:179
 msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can not be used when making an executable; recompile with -fPIE and relink with -pie\n"
-msgstr "%F%P: kÃ½ hiá»‡u STT_GNU_IFUNC Ä‘á»™ng \"%s\" vá»›i tÃ¬nh tráº¡ng cháº¥t lÆ°á»£ng con trá»� trong \"%B\" thÃ¬ khÃ´ng dÃ¹ng Ä‘Æ°á»£c khi táº¡o báº£n thá»±c thi; hÃ£y biÃªn dá»‹ch láº¡i vá»›i \"-fPIE\" vÃ  liÃªn káº¿t láº¡i vá»›i \"-pie\"\n"
+msgstr "%F%P: kÃ½ hiá»‡u STT_GNU_IFUNC Ä‘á»™ng â€œ%sâ€� vá»›i tÃ¬nh tráº¡ng cháº¥t lÆ°á»£ng con trá»� trong â€œ%Bâ€� thÃ¬ khÃ´ng dÃ¹ng Ä‘Æ°á»£c khi táº¡o báº£n thá»±c thi; hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPIEâ€� vÃ  liÃªn káº¿t láº¡i vá»›i â€œ-pieâ€�\n"
 
 #: elf-m10200.c:450 elf-m10300.c:1563 elf32-avr.c:1221 elf32-bfin.c:3213
 #: elf32-cr16.c:1482 elf32-cr16c.c:780 elf32-cris.c:2081 elf32-crx.c:922
@@ -722,7 +721,7 @@ msgstr "lá»—i ná»™i bá»™: lá»—i khÃ´ng r
 #: elf32-xtensa.c:3066 elf64-s390.c:2978 elf64-sh64.c:1640 elf64-x86-64.c:4110
 #: elfxx-sparc.c:3835 elfxx-tilegx.c:3500
 msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"
-msgstr "%B(%A+0x%lx): Ä‘á»‹nh vá»‹ láº¡i khÃ´ng thá»ƒ giáº£i quyáº¿t %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u \"%s\""
+msgstr "%B(%A+0x%lx): Ä‘á»‹nh vá»‹ láº¡i khÃ´ng thá»ƒ giáº£i quyáº¿t %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u â€œ%sâ€�"
 
 #: elf-m10300.c:1572
 msgid "error: inappropriate relocation type for shared library (did you forget -fpic?)"
@@ -740,11 +739,11 @@ msgstr "lá»—i ná»™i bá»™: kiá»ƒu Ä‘á»‹nh
 #: elfxx-tilegx.c:2261
 #, c-format
 msgid "dynamic variable `%s' is zero size"
-msgstr "biáº¿n Ä‘á»™ng \"%s\" cÃ³ kÃ­ch cá»¡ sá»‘ khÃ´ng"
+msgstr "biáº¿n Ä‘á»™ng â€œ%sâ€� cÃ³ kÃ­ch cá»¡ báº±ng khÃ´ng"
 
 #: elf.c:334
 msgid "%B: invalid string offset %u >= %lu for section `%s'"
-msgstr "%B: khoáº£ng bÃ¹ chuá»—i khÃ´ng há»£p lá»‡ %uâ‰¥%lu cho pháº§n \"%s\""
+msgstr "%B: khoáº£ng bÃ¹ chuá»—i khÃ´ng há»£p lá»‡ %uâ‰¥%lu cho pháº§n â€œ%sâ€�"
 
 #: elf.c:446
 msgid "%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
@@ -764,15 +763,15 @@ msgstr "%B: khÃ´ng cÃ³ thÃ´ng tin nhÃ³m 
 
 #: elf.c:737 elf.c:3121 elflink.c:10135
 msgid "%B: warning: sh_link not set for section `%A'"
-msgstr "%B: cáº£nh bÃ¡o: \"sh_link\" chÆ°a Ä‘Æ°á»£c Ä‘áº·t cho pháº§n \"%A\""
+msgstr "%B: cáº£nh bÃ¡o: â€œsh_linkâ€� chÆ°a Ä‘Æ°á»£c Ä‘áº·t cho pháº§n â€œ%Aâ€�"
 
 #: elf.c:756
 msgid "%B: sh_link [%d] in section `%A' is incorrect"
-msgstr "%B: sh_link [%d] khÃ´ng Ä‘Ãºng trong pháº§n \"%A\""
+msgstr "%B: sh_link [%d] khÃ´ng Ä‘Ãºng trong pháº§n â€œ%Aâ€�"
 
 #: elf.c:791
 msgid "%B: unknown [%d] section `%s' in group [%s]"
-msgstr "%B: khÃ´ng rÃµ [%d] pháº§n \"%s\" trong nhÃ³m [%s]"
+msgstr "%B: khÃ´ng rÃµ [%d] pháº§n â€œ%sâ€� trong nhÃ³m [%s]"
 
 #: elf.c:1041
 msgid "%B: unable to initialize commpress status for section %s"
@@ -829,32 +828,32 @@ msgstr "%B: liÃªn káº¿t khÃ´ng há»£p lá»
 
 #: elf.c:1966
 msgid "%B: don't know how to handle allocated, application specific section `%s' [0x%8x]"
-msgstr "%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n Ä‘Ã£ cáº¥p phÃ¡t mÃ  Ä‘áº·c trÆ°ng cho á»©ng dá»¥ng \"%s\" [0x%8x]"
+msgstr "%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n Ä‘Ã£ cáº¥p phÃ¡t mÃ  Ä‘áº·c trÆ°ng cho á»©ng dá»¥ng â€œ%sâ€� [0x%8x]"
 
 #: elf.c:1978
 msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]"
-msgstr "%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n Ä‘áº·c trÆ°ng cho bá»™ xá»­ lÃ½ \"%s\" [0x%8x]"
+msgstr "%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n Ä‘áº·c trÆ°ng cho bá»™ xá»­ lÃ½ â€œ%sâ€� [0x%8x]"
 
 #: elf.c:1989
 msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]"
-msgstr "%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n Ä‘áº·c trÆ°ng cho HÄ�H \"%s\" [0x%8x]"
+msgstr "%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n Ä‘áº·c trÆ°ng cho HÄ�H â€œ%sâ€� [0x%8x]"
 
 #: elf.c:1999
 msgid "%B: don't know how to handle section `%s' [0x%8x]"
-msgstr "%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n \"%s\" [0x%8x]"
+msgstr "%B: khÃ´ng biáº¿t cÃ¡ch xá»­ lÃ½ pháº§n â€œ%sâ€� [0x%8x]"
 
 #: elf.c:2634
 #, c-format
 msgid "warning: section `%A' type changed to PROGBITS"
-msgstr "cáº£nh bÃ¡o: pháº§n \"%A\" cÃ³ kiá»ƒu bá»‹ thay Ä‘á»•i thÃ nh PROGBITS"
+msgstr "cáº£nh bÃ¡o: pháº§n â€œ%Aâ€� cÃ³ kiá»ƒu bá»‹ thay Ä‘á»•i thÃ nh PROGBITS"
 
 #: elf.c:3078
 msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'"
-msgstr "%B: sh_link cá»§a pháº§n \"%A\" chá»‰ tá»›i pháº§n bá»‹ há»§y \"%A\" cá»§a \"%B\""
+msgstr "%B: sh_link cá»§a pháº§n â€œ%Aâ€� chá»‰ tá»›i pháº§n bá»‹ há»§y â€œ%Aâ€� cá»§a â€œ%Bâ€�"
 
 #: elf.c:3101
 msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'"
-msgstr "%B: sh_link cá»§a pháº§n \"%A\" chá»‰ tá»›i pháº§n bá»‹ gá»¡ bá»� \"%A\" cá»§a \"%B\""
+msgstr "%B: sh_link cá»§a pháº§n â€œ%Aâ€� chá»‰ tá»›i pháº§n bá»‹ gá»¡ bá»� â€œ%Aâ€� cá»§a â€œ%Bâ€�"
 
 #: elf.c:4527
 msgid "%B: The first section in the PT_DYNAMIC segment is not the .dynamic section"
@@ -862,7 +861,7 @@ msgstr "%B: Pháº§n thá»© nháº¥t trong Ä‘
 
 #: elf.c:4554
 msgid "%B: Not enough room for program headers, try linking with -N"
-msgstr "%B: KhÃ´ng Ä‘á»§ sá»©c chá»©a cho cÃ¡c pháº§n Ä‘áº§u cá»§a chÆ°Æ¡ng trÃ¬nh: hÃ£y thá»­ liÃªn káº¿t vá»›i \"-N\""
+msgstr "%B: KhÃ´ng Ä‘á»§ sá»©c chá»©a cho cÃ¡c pháº§n Ä‘áº§u cá»§a chÆ°Æ¡ng trÃ¬nh: hÃ£y thá»­ liÃªn káº¿t vá»›i â€œ-Nâ€�"
 
 #: elf.c:4641
 msgid "%B: section %A lma %#lx adjusted to %#lx"
@@ -870,15 +869,15 @@ msgstr "%B: pháº§n %A lma %#lx Ä‘Æ°á»£c 
 
 #: elf.c:4776
 msgid "%B: section `%A' can't be allocated in segment %d"
-msgstr "%B: pháº§n \"%A\" khÃ´ng thá»ƒ Ä‘Æ°á»£c cáº¥p phÃ¡t trong Ä‘oáº¡n %d"
+msgstr "%B: pháº§n â€œ%Aâ€� khÃ´ng thá»ƒ Ä‘Æ°á»£c cáº¥p phÃ¡t trong Ä‘oáº¡n %d"
 
 #: elf.c:4824
 msgid "%B: warning: allocated section `%s' not in segment"
-msgstr "%B: cáº£nh bÃ¡o: pháº§n Ä‘Ã£ cáº¥p phÃ¡t \"%s\" khÃ´ng náº±m trong Ä‘oáº¡n"
+msgstr "%B: cáº£nh bÃ¡o: pháº§n Ä‘Ã£ cáº¥p phÃ¡t â€œ%sâ€� khÃ´ng náº±m trong Ä‘oáº¡n"
 
 #: elf.c:5324
 msgid "%B: symbol `%s' required but not present"
-msgstr "%B: kÃ½ hiá»‡u \"%s\" cáº§n thiáº¿t mÃ  khÃ´ng cÃ³"
+msgstr "%B: kÃ½ hiá»‡u â€œ%sâ€� cáº§n thiáº¿t mÃ  khÃ´ng cÃ³"
 
 #: elf.c:5662
 msgid "%B: warning: Empty loadable segment detected, is this intentional ?\n"
@@ -887,7 +886,7 @@ msgstr "%B: cáº£nh bÃ¡o: PhÃ¡t hiá»‡n má
 #: elf.c:6692
 #, c-format
 msgid "Unable to find equivalent output section for symbol '%s' from section '%s'"
-msgstr "KhÃ´ng tÃ¬m tháº¥y pháº§n káº¿t xuáº¥t tÆ°Æ¡ng Ä‘Æ°Æ¡ng cho kÃ½ hiá»‡u \"%s\" tá»« pháº§n \"%s\""
+msgstr "KhÃ´ng tÃ¬m tháº¥y pháº§n káº¿t xuáº¥t tÆ°Æ¡ng Ä‘Æ°Æ¡ng cho kÃ½ hiá»‡u â€œ%sâ€� tá»« pháº§n â€œ%sâ€�"
 
 #: elf.c:7692
 msgid "%B: unsupported relocation type %s"
@@ -917,12 +916,12 @@ msgstr "%s: khÃ´ng thá»ƒ táº¡o má»¥c nhá
 #: elf32-arm.c:5431
 #, c-format
 msgid "unable to find THUMB glue '%s' for '%s'"
-msgstr "khÃ´ng tÃ¬m tháº¥y keo há»“ THUMB \"%s\" cho \"%s\""
+msgstr "khÃ´ng tÃ¬m tháº¥y keo há»“ THUMB â€œ%sâ€� cho â€œ%sâ€�"
 
 #: elf32-arm.c:5467
 #, c-format
 msgid "unable to find ARM glue '%s' for '%s'"
-msgstr "khÃ´ng tÃ¬m tháº¥y keo há»“ ARM \"%s\" cho \"%s\""
+msgstr "khÃ´ng tÃ¬m tháº¥y keo há»“ ARM â€œ%sâ€� cho â€œ%sâ€�"
 
 #: elf32-arm.c:6005
 msgid "%B: BE8 images only valid in big-endian mode."
@@ -935,12 +934,12 @@ msgstr "%B: cáº£nh bÃ¡o: sá»± kháº¯c phÃ
 
 #: elf32-arm.c:6779 elf32-arm.c:6799
 msgid "%B: unable to find VFP11 veneer `%s'"
-msgstr "%B: khÃ´ng tÃ¬m tháº¥y lá»›p gá»— máº·t VFP11 \"%s\""
+msgstr "%B: khÃ´ng tÃ¬m tháº¥y lá»›p gá»— máº·t VFP11 â€œ%sâ€�"
 
 #: elf32-arm.c:6848
 #, c-format
 msgid "Invalid TARGET2 relocation type '%s'."
-msgstr "Kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i TARGET2 khÃ´ng há»£p lá»‡ \"%s\""
+msgstr "Kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i TARGET2 khÃ´ng há»£p lá»‡ â€œ%sâ€�"
 
 #: elf32-arm.c:6933
 msgid ""
@@ -952,27 +951,27 @@ msgstr ""
 
 #: elf32-arm.c:7717
 msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' in TLS trampoline"
-msgstr "%B(%A+0x%lx):chá»‰ lá»‡nh Thumb khÃ´ng mong Ä‘á»£i '0x%x' trong 'TLS trampoline'"
+msgstr "%B(%A+0x%lx):chá»‰ lá»‡nh Thumb khÃ´ng mong Ä‘á»£i â€œ0x%xâ€� trong â€œTLS trampolineâ€�"
 
 #: elf32-arm.c:7756
 msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' in TLS trampoline"
-msgstr "%B(%A+0x%lx):chá»‰ lá»‡nh ARM khÃ´ng mong Ä‘á»£i '0x%x' trong 'TLS trampoline'"
+msgstr "%B(%A+0x%lx):chá»‰ lá»‡nh ARM khÃ´ng mong Ä‘á»£i â€œ0x%xâ€� trong â€œTLS trampolineâ€�"
 
 #: elf32-arm.c:8209
 msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'."
-msgstr "\\%B: Cáº£nh bÃ¡o: Chá»‰ dáº«n Arm BLX Ä‘Äƒt má»¥c tiÃªu hÃ m Arm \"%s\"."
+msgstr "\\%B: Cáº£nh bÃ¡o: Chá»‰ dáº«n Arm BLX Ä‘Äƒt má»¥c tiÃªu hÃ m Arm â€œ%sâ€�."
 
 #: elf32-arm.c:8622
 msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'."
-msgstr "%B: Cáº£nh bÃ¡o: Chá»‰ dáº«n Thumb BLX Ä‘Äƒt má»¥c tiÃªu hÃ m thumb \"%s\"."
+msgstr "%B: Cáº£nh bÃ¡o: Chá»‰ dáº«n Thumb BLX Ä‘Äƒt má»¥c tiÃªu hÃ m thumb â€œ%sâ€�."
 
 #: elf32-arm.c:9460
 msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC"
-msgstr "%B(%A+0x%lx):khÃ´ng mong Ä‘á»£i chá»‰ lá»‡nh Thumb '0x%x' Ä‘Æ°á»£c tham chiáº¿u bá»Ÿi TLS_GOTDESC"
+msgstr "%B(%A+0x%lx):khÃ´ng mong Ä‘á»£i chá»‰ lá»‡nh Thumb â€œ0x%xâ€� Ä‘Æ°á»£c tham chiáº¿u bá»Ÿi TLS_GOTDESC"
 
 #: elf32-arm.c:9483
 msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC"
-msgstr "%B(%A+0x%lx):khÃ´ng mong Ä‘á»£i chá»‰ lá»‡nh ARM '0x%x' Ä‘Æ°á»£c tham chiáº¿u bá»Ÿi TLS_GOTDESC"
+msgstr "%B(%A+0x%lx):khÃ´ng mong Ä‘á»£i chá»‰ lá»‡nh ARM â€œ0x%xâ€� Ä‘Æ°á»£c tham chiáº¿u bá»Ÿi TLS_GOTDESC"
 
 #: elf32-arm.c:9512
 msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object"
@@ -1210,7 +1209,7 @@ msgstr "%B: chá»‰ má»¥c kÃ½ hiá»‡u sai: 
 
 #: elf32-arm.c:12337 elf64-x86-64.c:1561 elf64-x86-64.c:1732 elfxx-mips.c:8223
 msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"
-msgstr "%B: Ä‘á»‹nh vá»‹ láº¡i %s so vá»›i \"%s\" khÃ´ng thá»ƒ Ä‘Æ°á»£c dÃ¹ng khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; hÃ£y biÃªn dá»‹ch láº¡i vá»›i \"-fPIC\""
+msgstr "%B: Ä‘á»‹nh vá»‹ láº¡i %s so vá»›i â€œ%sâ€� khÃ´ng thá»ƒ Ä‘Æ°á»£c dÃ¹ng khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€�"
 
 #: elf32-arm.c:13460
 #, c-format
@@ -1286,16 +1285,16 @@ msgstr "tÃ¡i Ä‘á»‹nh vá»‹ pháº£i lÃ  sá»
 
 #: elf32-bfin.c:1593
 msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'"
-msgstr "%B(%A+0x%lx): Ä‘á»‹nh vá»‹ láº¡i khÃ´ng thá»ƒ giáº£i quyáº¿t Ä‘á»‘i vá»›i kÃ½ hiá»‡u \"%s\""
+msgstr "%B(%A+0x%lx): Ä‘á»‹nh vá»‹ láº¡i khÃ´ng thá»ƒ giáº£i quyáº¿t Ä‘á»‘i vá»›i kÃ½ hiá»‡u â€œ%sâ€�"
 
 #: elf32-bfin.c:1626 elf32-i386.c:4307 elf32-m68k.c:4233 elf32-s390.c:3055
 #: elf64-s390.c:3030 elf64-x86-64.c:4151
 msgid "%B(%A+0x%lx): reloc against `%s': error %d"
-msgstr "%B(%A+0x%lx): Ä‘á»‹nh vá»‹ láº¡i Ä‘á»‘i vá»›i \"%s\": lá»—i %d"
+msgstr "%B(%A+0x%lx): Ä‘á»‹nh vá»‹ láº¡i Ä‘á»‘i vá»›i â€œ%sâ€�: lá»—i %d"
 
 #: elf32-bfin.c:2725
 msgid "%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend"
-msgstr "%B: Ä‘á»‹nh vá»‹ láº¡i á»Ÿ \"%A+0x%x\" tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u \"%s\" vá»›i sá»‘ háº¡ng khÃ¡c khÃ´ng"
+msgstr "%B: Ä‘á»‹nh vá»‹ láº¡i á»Ÿ â€œ%A+0x%xâ€� tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u â€œ%sâ€� vá»›i sá»‘ háº¡ng khÃ¡c khÃ´ng"
 
 #: elf32-bfin.c:2741
 msgid "relocation references symbol not defined in the module"
@@ -1346,15 +1345,15 @@ msgstr "*** kiá»ƒm tra tÃ¡i phÃ¢n bá»• n
 
 #: elf32-cris.c:1176
 msgid "%B, section %A: unresolvable relocation %s against symbol `%s'"
-msgstr "%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡i khÃ´ng thá»ƒ giáº£i quyáº¿t %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u \"%s\""
+msgstr "%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡i khÃ´ng thá»ƒ giáº£i quyáº¿t %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u â€œ%sâ€�"
 
 #: elf32-cris.c:1238
 msgid "%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'"
-msgstr "%B, pháº§n %A: KhÃ´ng cÃ³ PLT hoáº·c GOT cho Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u \"%s\""
+msgstr "%B, pháº§n %A: KhÃ´ng cÃ³ PLT hoáº·c GOT cho Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u â€œ%sâ€�"
 
 #: elf32-cris.c:1240
 msgid "%B, section %A: No PLT for relocation %s against symbol `%s'"
-msgstr "%B, pháº§n %A: KhÃ´ng cÃ³ PLT cho Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u \"%s\""
+msgstr "%B, pháº§n %A: KhÃ´ng cÃ³ PLT cho Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u â€œ%sâ€�"
 
 #: elf32-cris.c:1246 elf32-cris.c:1379 elf32-cris.c:1639 elf32-cris.c:1722
 #: elf32-cris.c:1875 elf32-tic6x.c:2662
@@ -1367,11 +1366,11 @@ msgstr "%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡
 
 #: elf32-cris.c:1373 elf32-cris.c:1716 elf32-cris.c:1869 elf32-tic6x.c:2655
 msgid "%B, section %A: relocation %s with non-zero addend %d against symbol `%s'"
-msgstr "%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡i %s vá»›i sá»‘ háº¡ng khÃ¡c khÃ´ng %d Ä‘á»‘i vá»›i kÃ½ hiá»‡u \"%s\""
+msgstr "%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡i %s vá»›i sá»‘ háº¡ng khÃ¡c khÃ´ng %d Ä‘á»‘i vá»›i kÃ½ hiá»‡u â€œ%sâ€�"
 
 #: elf32-cris.c:1399
 msgid "%B, section %A: relocation %s is not allowed for global symbol: `%s'"
-msgstr "%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡i %s khÃ´ng Ä‘Æ°á»£c phÃ©p cho kÃ½ hiá»‡u toÃ n cá»¥c: \"%s\""
+msgstr "%B, pháº§n %A: Ä‘á»‹nh vá»‹ láº¡i %s khÃ´ng Ä‘Æ°á»£c phÃ©p cho kÃ½ hiá»‡u toÃ n cá»¥c: â€œ%sâ€�"
 
 #: elf32-cris.c:1415
 msgid "%B, section %A: relocation %s with no GOT created"
@@ -1380,19 +1379,19 @@ msgstr "%B, pháº§n %A: Ä‘Ã£ táº¡o Ä‘á»‹n
 #. We shouldn't get here for GCC-emitted code.
 #: elf32-cris.c:1630
 msgid "%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?"
-msgstr "%B: pháº§n %A: sá»± Ä‘á»‹nh vá»‹ láº¡i $s cÃ³ má»™t thÃ m chiáº¿u chÆ°a xÃ¡c Ä‘á»‹nh Ä‘áº¿n \"%s\", cÃ³ thá»ƒ khai bÃ¡o khÃ´ng rÃµ ?"
+msgstr "%B: pháº§n %A: sá»± Ä‘á»‹nh vá»‹ láº¡i $s cÃ³ má»™t thÃ m chiáº¿u chÆ°a xÃ¡c Ä‘á»‹nh Ä‘áº¿n â€œ%sâ€�, cÃ³ thá»ƒ khai bÃ¡o khÃ´ng rÃµ ?"
 
 #: elf32-cris.c:2002
 msgid "%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?"
-msgstr "%B, pháº§n %A: sá»± Ä‘á»‹nh vá»‹ láº¡i %s khÃ´ng Ä‘Æ°á»£c phÃ©p cho kÃ½ hiá»‡u \"%s\" mÃ  Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh bÃªn ngoÃ i chÆ°Æ¡ng trÃ¬nh, cÃ³ thá»ƒ khai bÃ¡o khÃ´ng rÃµ ?"
+msgstr "%B, pháº§n %A: sá»± Ä‘á»‹nh vá»‹ láº¡i %s khÃ´ng Ä‘Æ°á»£c phÃ©p cho kÃ½ hiá»‡u â€œ%sâ€� mÃ  Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh bÃªn ngoÃ i chÆ°Æ¡ng trÃ¬nh, cÃ³ thá»ƒ khai bÃ¡o khÃ´ng rÃµ ?"
 
 #: elf32-cris.c:2055
 msgid "(too many global variables for -fpic: recompile with -fPIC)"
-msgstr "(quÃ¡ nhiá»�u biáº¿n toÃ n cá»¥c Ä‘á»‘i vá»›i \"-fpic\": hÃ£y biÃªn dá»‹ch láº¡i vá»›i \"-fPIC\")"
+msgstr "(quÃ¡ nhiá»�u biáº¿n toÃ n cá»¥c Ä‘á»‘i vá»›i â€œ-fpicâ€�: hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€�)"
 
 #: elf32-cris.c:2062
 msgid "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)"
-msgstr "(dá»¯ liá»‡u cá»¥c bá»™ vá»›i máº¡ch cÅ©ng quÃ¡ lá»›n Ä‘á»‘i vá»›i \"fpic\" hoáº·c \"-msmall-tls\": hÃ£y biÃªn dá»‹ch láº¡i vá»›i \"-fPIC\" hay \"-mno-small-tls\")"
+msgstr "(dá»¯ liá»‡u cá»¥c bá»™ vá»›i máº¡ch cÅ©ng quÃ¡ lá»›n Ä‘á»‘i vá»›i â€œfpicâ€� hoáº·c â€œ-msmall-tlsâ€�: hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€� hay â€œ-mno-small-tlsâ€�)"
 
 #: elf32-cris.c:3261
 msgid ""
@@ -1408,7 +1407,7 @@ msgid ""
 "  relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC"
 msgstr ""
 "%B, pháº§n %A:\n"
-"  khÃ´ng Ä‘Æ°á»£c sá»­ dá»¥ng sá»± Ä‘á»‹nh vá»‹ láº¡i %s trong má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; bÃ¬nh thÆ°á»�ng do khai bÃ¡o khÃ´ng rÃµ, hÃ£y biÃªn dá»‹ch láº¡i vá»›i \"-fPIC\""
+"  khÃ´ng Ä‘Æ°á»£c sá»­ dá»¥ng sá»± Ä‘á»‹nh vá»‹ láº¡i %s trong má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; bÃ¬nh thÆ°á»�ng do khai bÃ¡o khÃ´ng rÃµ, hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€�"
 
 #: elf32-cris.c:3580
 msgid ""
@@ -1416,15 +1415,15 @@ msgid ""
 "  relocation %s should not be used in a shared object; recompile with -fPIC"
 msgstr ""
 "%B, pháº§n %A:\n"
-"  khÃ´ng Ä‘Æ°á»£c sá»­ dá»¥ng sá»± Ä‘á»‹nh vá»‹ láº¡i %s trong má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; hÃ£y biÃªn dá»‹ch láº¡i vá»›i \"-fPIC\""
+"  khÃ´ng Ä‘Æ°á»£c sá»­ dá»¥ng sá»± Ä‘á»‹nh vá»‹ láº¡i %s trong má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€�"
 
 #: elf32-cris.c:4002
 msgid ""
 "%B, section `%A', to symbol `%s':\n"
 "  relocation %s should not be used in a shared object; recompile with -fPIC"
 msgstr ""
-"%B, pháº§n \"%A\", tá»›i kÃ½ hiá»‡u \"%s\":\n"
-"  khÃ´ng Ä‘Æ°á»£c sá»­ dá»¥ng sá»± Ä‘á»‹nh vá»‹ láº¡i %s trong má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; hÃ£y biÃªn dá»‹ch láº¡i vá»›i \"-fPIC\""
+"%B, pháº§n â€œ%Aâ€�, tá»›i kÃ½ hiá»‡u â€œ%sâ€�:\n"
+"  khÃ´ng Ä‘Æ°á»£c sá»­ dá»¥ng sá»± Ä‘á»‹nh vá»‹ láº¡i %s trong má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»; hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€�"
 
 #: elf32-cris.c:4118
 msgid "Unexpected machine number"
@@ -1482,7 +1481,7 @@ msgstr "Ä‘á»‹nh vá»‹ láº¡i cáº§n thiáº¿t
 
 #: elf32-frv.c:2888
 msgid "%H: relocation to `%s+%v' may have caused the error above\n"
-msgstr "%H: Ä‘á»‹nh vá»‹ láº¡i tá»›i \"%s+%x\" cÃ³ thá»ƒ gÃ¢y ra lá»—i trÃªn\n"
+msgstr "%H: Ä‘á»‹nh vá»‹ láº¡i tá»›i â€œ%s+%xâ€� cÃ³ thá»ƒ gÃ¢y ra lá»—i trÃªn\n"
 
 #: elf32-frv.c:2905
 msgid "%H: relocation references symbol not defined in the module\n"
@@ -1554,11 +1553,11 @@ msgstr "%H: R_FRV_FUNCDESC_VALUE tham ch
 
 #: elf32-frv.c:3974
 msgid "%H: reloc against `%s' references a different segment\n"
-msgstr "%H: Ä‘á»‹nh vá»‹ láº¡i tham chiáº¿u `%s' Ä‘áº¿n má»™t Ä‘oáº¡n khÃ¡c\n"
+msgstr "%H: Ä‘á»‹nh vá»‹ láº¡i tham chiáº¿u â€œ%sâ€� Ä‘áº¿n má»™t Ä‘oáº¡n khÃ¡c\n"
 
 #: elf32-frv.c:4124
 msgid "%H: reloc against `%s': %s\n"
-msgstr "%H: reloc láº¡i `%s': %s\n"
+msgstr "%H: reloc láº¡i â€œ%sâ€�: %s\n"
 
 #: elf32-frv.c:6400
 msgid "%B: unsupported relocation type %i\n"
@@ -1591,11 +1590,11 @@ msgstr "%B: Ä�á»‹nh vá»‹ láº¡i trong ELF
 
 #: elf32-hppa.c:850 elf32-hppa.c:3598
 msgid "%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections"
-msgstr "%B(%A+0x%lx): khÃ´ng thá»ƒ tá»›i %s, hÃ£y biÃªn dá»‹ch láº¡i vá»›i \"-ffunction-sections\""
+msgstr "%B(%A+0x%lx): khÃ´ng thá»ƒ tá»›i %s, hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-ffunction-sectionsâ€�"
 
 #: elf32-hppa.c:1284
 msgid "%B: relocation %s can not be used when making a shared object; recompile with -fPIC"
-msgstr "%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i %s khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº½, hÃ£y biÃªn dá»‹ch láº¡i vá»›i \"-fPIC\""
+msgstr "%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i %s khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº½, hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€�"
 
 #: elf32-hppa.c:2791
 msgid "%B: duplicate export stub %s"
@@ -1621,30 +1620,30 @@ msgstr "%B: kiá»ƒu Ä‘á»‹nh vá»‹ láº¡i kh
 
 #: elf32-i386.c:1404 elf64-x86-64.c:1308
 msgid "%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed"
-msgstr "%B: khÃ´ng thÃ nh cÃ´ng chuyá»ƒn tiáº¿p TLS tá»« %s sang %s Ä‘á»‘i vá»›i \"%s\" á»Ÿ 0x%lx trong pháº§n \"%A\""
+msgstr "%B: khÃ´ng thÃ nh cÃ´ng chuyá»ƒn tiáº¿p TLS tá»« %s sang %s Ä‘á»‘i vá»›i â€œ%sâ€� á»Ÿ 0x%lx trong pháº§n â€œ%Aâ€�"
 
 #: elf32-i386.c:1549 elf32-i386.c:3244 elf64-x86-64.c:1487 elf64-x86-64.c:3125
 #: elfxx-sparc.c:3083
 msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
-msgstr "%B: sá»± Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u STT_GNU_IFUNC \"%s\" khÃ´ng pháº£i Ä‘Æ°á»£c %s quáº£n lÃ½"
+msgstr "%B: sá»± Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u STT_GNU_IFUNC â€œ%sâ€� khÃ´ng pháº£i Ä‘Æ°á»£c %s quáº£n lÃ½"
 
 #: elf32-i386.c:1711 elf32-s390.c:1182 elf32-sh.c:6362 elf32-tilepro.c:1434
 #: elf32-xtensa.c:1182 elf64-s390.c:1151 elfxx-sparc.c:1548
 #: elfxx-tilegx.c:1701
 msgid "%B: `%s' accessed both as normal and thread local symbol"
-msgstr "%B: Ä‘Ã£ truy cáº­p \"%s\" theo kÃ½ hiá»‡u cáº£ hai kiá»ƒu bÃ¬nh thÆ°á»�ng vÃ  cá»¥c bá»™ cho máº¡ch"
+msgstr "%B: Ä‘Ã£ truy cáº­p â€œ%sâ€� theo kÃ½ hiá»‡u cáº£ hai kiá»ƒu bÃ¬nh thÆ°á»�ng vÃ  cá»¥c bá»™ cho máº¡ch"
 
 #: elf32-i386.c:2539 elf64-x86-64.c:2506
 msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'.\n"
-msgstr "%P: %B: cáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i dá»±a vÃ o %s trong pháº§n chá»‰ Ä‘á»�c `%A'.\n"
+msgstr "%P: %B: cáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i dá»±a vÃ o %s trong pháº§n chá»‰ Ä‘á»�c â€œ%Aâ€�.\n"
 
 #: elf32-i386.c:2629 elf64-x86-64.c:2593
 msgid "%P: %B: warning: relocation in readonly section `%A'.\n"
-msgstr "%P: %B: cáº£nh bÃ¡o: tÃ¡i Ä‘á»‹nh vá»‹ trong pháº§n chá»‰ Ä‘á»�c `%A'.\n"
+msgstr "%P: %B: cáº£nh bÃ¡o: tÃ¡i Ä‘á»‹nh vá»‹ trong pháº§n chá»‰ Ä‘á»�c â€œ%Aâ€�.\n"
 
 #: elf32-i386.c:3086 elf32-tilepro.c:2557 elfxx-tilegx.c:2871
 msgid "%B: unrecognized relocation (0x%x) in section `%A'"
-msgstr "%B: Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c nháº­n ra (0x%x) trong pháº§n \"%A\""
+msgstr "%B: Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»£c nháº­n ra (0x%x) trong pháº§n â€œ%Aâ€�"
 
 #: elf32-i386.c:3494 elf64-x86-64.c:3513
 msgid "hidden symbol"
@@ -1664,17 +1663,17 @@ msgstr "kÃ½ hiá»‡u"
 
 #: elf32-i386.c:3508
 msgid "%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object"
-msgstr "%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i R_386_GOTOFF Ä‘á»‘i vá»›i %s chÆ°a xÃ¡c Ä‘á»‹nh \"%s\" khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»"
+msgstr "%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i R_386_GOTOFF Ä‘á»‘i vá»›i %s chÆ°a xÃ¡c Ä‘á»‹nh â€œ%sâ€� khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»"
 
 #: elf32-i386.c:3518
 msgid "%B: relocation R_386_GOTOFF against protected function `%s' can not be used when making a shared object"
-msgstr "%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i R_386_GOTOFF Ä‘á»‘i vá»›i hÃ m sá»‘ Ä‘Ã£ báº£o vá»‡ \"%s\" khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»"
+msgstr "%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i R_386_GOTOFF Ä‘á»‘i vá»›i hÃ m sá»‘ Ä‘Ã£ báº£o vá»‡ â€œ%sâ€� khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»"
 
 #: elf32-i386.c:4839 elf32-tilepro.c:3467 elf64-x86-64.c:4609
 #: elfxx-tilegx.c:3847
 #, c-format
 msgid "discarded output section: `%A'"
-msgstr "pháº§n káº¿t xuáº¥t bá»‹ bá»� qua: `%A'"
+msgstr "pháº§n káº¿t xuáº¥t bá»‹ bá»� qua: â€œ%Aâ€�"
 
 #: elf32-ip2k.c:857 elf32-ip2k.c:863 elf32-ip2k.c:930 elf32-ip2k.c:936
 msgid "ip2k relaxer: switch table without complete matching relocation information."
@@ -1746,7 +1745,7 @@ msgstr ": chá»‰ dáº«n m32r2"
 #: elf32-m68hc1x.c:1050
 #, c-format
 msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution"
-msgstr "Tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u á»Ÿ xa \"%s\" khi sá»­ dá»¥ng má»™t Ä‘á»‹nh vá»‹ láº¡i sai thÃ¬ cÃ³ thá»ƒ dáº«n Ä‘áº¿n sá»± thá»±c hiá»‡n sai"
+msgstr "Tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u á»Ÿ xa â€œ%sâ€� khi sá»­ dá»¥ng má»™t Ä‘á»‹nh vá»‹ láº¡i sai thÃ¬ cÃ³ thá»ƒ dáº«n Ä‘áº¿n sá»± thá»±c hiá»‡n sai"
 
 #: elf32-m68hc1x.c:1073
 #, c-format
@@ -1792,7 +1791,7 @@ msgstr "64-bit Ä‘Ã´i, "
 #: elf32-m68hc1x.c:1292
 #, c-format
 msgid "32-bit double, "
-msgstr "32-bit Ä‘Ã´i, "
+msgstr "32-bit kÃ©p, "
 
 #: elf32-m68hc1x.c:1295
 #, c-format
@@ -1880,11 +1879,11 @@ msgstr "%s: Ä�Ã­ch (%s) cá»§a má»™t sá»±
 #: elf32-microblaze.c:1155 elf32-tilepro.c:2891 elfxx-sparc.c:3457
 #: elfxx-tilegx.c:3230
 msgid "%B: probably compiled without -fPIC?"
-msgstr "%B: ráº¥t cÃ³ thá»ƒ Ä‘Æ°á»£c biÃªn dá»‹ch khÃ´ng cÃ³ \"-fPIC\" ?"
+msgstr "%B: ráº¥t cÃ³ thá»ƒ Ä‘Æ°á»£c biÃªn dá»‹ch khÃ´ng cÃ³ â€œ-fPICâ€� ?"
 
 #: elf32-microblaze.c:2074
 msgid "%B: bad relocation section name `%s'"
-msgstr "%B: tÃªn pháº§n Ä‘á»‹nh vá»‹ láº¡i sai \"%s\""
+msgstr "%B: tÃªn pháº§n Ä‘á»‹nh vá»‹ láº¡i sai â€œ%sâ€�"
 
 #: elf32-mips.c:1549 elf64-mips.c:2683 elfn32-mips.c:2487
 msgid "literal relocation occurs for an external symbol"
@@ -1957,7 +1956,7 @@ msgstr "Cáº£nh bÃ¡o: %B dÃ¹ng vÃ©c-tÆ¡ k
 
 #: elf32-ppc.c:4111
 msgid "Warning: %B uses vector ABI \"%s\", %B uses \"%s\""
-msgstr "Cáº£nh bÃ¡o: %B dÃ¹ng vÃ©c-tÆ¡ ABI \"%s\", cÃ²n %B dÃ¹ng \"%s\""
+msgstr "Cáº£nh bÃ¡o: %B dÃ¹ng vÃ©c-tÆ¡ ABI â€œ%sâ€�, cÃ²n %B dÃ¹ng â€œ%sâ€�"
 
 #: elf32-ppc.c:4128 elf32-ppc.c:4131
 msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory"
@@ -1969,11 +1968,11 @@ msgstr "Cáº£nh bÃ¡o: %B dÃ¹ng quy Æ°á»›c
 
 #: elf32-ppc.c:4192
 msgid "%B: compiled with -mrelocatable and linked with modules compiled normally"
-msgstr "%B: Ä‘Ã£ biÃªn dá»‹ch vá»›i \"-mrelocatable\" vÃ  Ä‘Ã£ liÃªn káº¿t vá»›i cÃ¡c mÃ´Ä‘un biÃªn dá»‹ch bÃ¬nh thÆ°á»�ng"
+msgstr "%B: Ä‘Ã£ biÃªn dá»‹ch vá»›i â€œ-mrelocatableâ€� vÃ  Ä‘Ã£ liÃªn káº¿t vá»›i cÃ¡c mÃ´Ä‘un biÃªn dá»‹ch bÃ¬nh thÆ°á»�ng"
 
 #: elf32-ppc.c:4200
 msgid "%B: compiled normally and linked with modules compiled with -mrelocatable"
-msgstr "%B: Ä‘Ã£ biÃªn dá»‹ch bÃ¬nh thÆ°á»�ng vÃ  Ä‘Ã£ liÃªn káº¿t vá»›i cÃ¡c mÃ´Ä‘un biÃªn dá»‹ch vá»›i \"-mrelocatable\""
+msgstr "%B: Ä‘Ã£ biÃªn dá»‹ch bÃ¬nh thÆ°á»�ng vÃ  Ä‘Ã£ liÃªn káº¿t vá»›i cÃ¡c mÃ´Ä‘un biÃªn dá»‹ch vá»›i â€œ-mrelocatableâ€�"
 
 #: elf32-ppc.c:4309
 msgid "%P: bss-plt forced due to %B\n"
@@ -1981,7 +1980,7 @@ msgstr "%P: bss-plt bá»‹ Ã©p buá»™c bá»Ÿ
 
 #: elf32-ppc.c:4312
 msgid "%P: bss-plt forced by profiling\n"
-msgstr "%P: bss-plt Ä‘Æ°á»£c Ã©p buá»™c bá»Ÿi 'profiling'\n"
+msgstr "%P: bss-plt Ä‘Æ°á»£c Ã©p buá»™c bá»Ÿi â€œprofilingâ€�\n"
 
 #. Uh oh, we didn't find the expected call.  We
 #. could just mark this symbol to exclude it
@@ -1993,7 +1992,7 @@ msgstr "%H arg lost __tls_get_addr, tá»‘
 
 #: elf32-ppc.c:5044 elf64-ppc.c:6528
 msgid "%P: dynamic variable `%s' is zero size\n"
-msgstr "%P: biáº¿n kiá»ƒu Ä‘á»™ng `%s' cÃ³ kÃ­ch thÆ°á»›c lÃ  khÃ´ng\n"
+msgstr "%P: biáº¿n kiá»ƒu Ä‘á»™ng â€œ%sâ€� cÃ³ kÃ­ch thÆ°á»›c lÃ  khÃ´ng\n"
 
 #: elf32-ppc.c:7263 elf64-ppc.c:12675
 msgid "%P: %B: unknown relocation type %d for symbol %s\n"
@@ -2001,7 +2000,7 @@ msgstr "%P: %B: khÃ´ng rÃµ kiá»ƒu tÃ¡i Ä
 
 #: elf32-ppc.c:7524
 msgid "%P: %H: non-zero addend on %s reloc against `%s'\n"
-msgstr "%P: %H: sá»‘ háº¡ng khÃ¡c khÃ´ng trÃªn reloc %s dá»±a vÃ o `%s'\n"
+msgstr "%P: %H: sá»‘ háº¡ng khÃ¡c khÃ´ng trÃªn reloc %s dá»±a vÃ o â€œ%sâ€�\n"
 
 #: elf32-ppc.c:7720 elf64-ppc.c:13181
 msgid "%P: %H: relocation %s for indirect function %s unsupported\n"
@@ -2017,11 +2016,11 @@ msgstr "%P: %B: tÃ¡i Ä‘á»‹nh vá»‹ %s thÃ
 
 #: elf32-ppc.c:8158 elf64-ppc.c:13467
 msgid "%P: %H: unresolvable %s relocation against symbol `%s'\n"
-msgstr "%P: %H: khÃ´ng Ä‘Ã¡p á»©ng Ä‘Æ°á»£c tÃ¡i Ä‘á»‹nh vá»‹ %s dá»±a vÃ o kÃ½ hiá»‡u `%s'\n"
+msgstr "%P: %H: khÃ´ng Ä‘Ã¡p á»©ng Ä‘Æ°á»£c tÃ¡i Ä‘á»‹nh vá»‹ %s dá»±a vÃ o kÃ½ hiá»‡u â€œ%sâ€�\n"
 
 #: elf32-ppc.c:8205 elf64-ppc.c:13512
 msgid "%P: %H: %s reloc against `%s': error %d\n"
-msgstr "%P: %H: %s reloc láº¡i `%s': lá»—i %d\n"
+msgstr "%P: %H: %s reloc láº¡i â€œ%sâ€�: lá»—i %d\n"
 
 #: elf32-ppc.c:8696
 msgid "%P: %s not defined in linker created %s\n"
@@ -2045,11 +2044,11 @@ msgstr "Cáº£nh bÃ¡o: RX_SYM reloc vá»›i 
 
 #: elf32-rx.c:1324
 msgid "%B(%A): error: call to undefined function '%s'"
-msgstr "%B(%A): lá»—i: gá»�i hÃ m chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a '%s'"
+msgstr "%B(%A): lá»—i: gá»�i hÃ m chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a â€œ%sâ€�"
 
 #: elf32-rx.c:1338
 msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area"
-msgstr "%B(%A): cáº£nh bÃ¡o: unaligned access to symbol '%s' trong vÃ¹ng dá»¯ liá»‡u nhá»�"
+msgstr "%B(%A): cáº£nh bÃ¡o: unaligned access to symbol â€œ%sâ€� trong vÃ¹ng dá»¯ liá»‡u nhá»�"
 
 #: elf32-rx.c:1342
 msgid "%B(%A): internal error: out of range error"
@@ -2178,29 +2177,29 @@ msgstr "%B: 0x%lx: lá»—i náº·ng: R_SH_PS
 
 #: elf32-sh.c:4519 elf32-sh.c:4989
 msgid "%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section"
-msgstr "%B(%A+0x%lx): khÃ´ng thá»ƒ phÃ¡t ra sá»± sá»­a chá»¯a cho`%s'  trong pháº§n chá»‰ Ä‘á»�c"
+msgstr "%B(%A+0x%lx): khÃ´ng thá»ƒ phÃ¡t ra sá»± sá»­a chá»¯a choâ€œ%sâ€�  trong pháº§n chá»‰ Ä‘á»�c"
 
 #: elf32-sh.c:5096
 msgid "%B(%A+0x%lx): %s relocation against external symbol \"%s\""
-msgstr "%B(%A+0x%lx): tÃ¡i Ä‘á»‹nh vá»‹ %s dá»±a trÃªn kÃ½ hiá»‡u bÃªn ngoÃ i \"%s\""
+msgstr "%B(%A+0x%lx): tÃ¡i Ä‘á»‹nh vá»‹ %s dá»±a trÃªn kÃ½ hiá»‡u bÃªn ngoÃ i â€œ%sâ€�"
 
 #: elf32-sh.c:5569
 #, c-format
 msgid "%X%C: relocation to \"%s\" references a different segment\n"
-msgstr "%X%C: Ä‘á»‹nh vá»‹ láº¡i \"%s\" tham chiáº¿u Ä‘áº¿n má»™t segment (Ä‘oáº¡n) khÃ¡c\n"
+msgstr "%X%C: Ä‘á»‹nh vá»‹ láº¡i â€œ%sâ€� tham chiáº¿u Ä‘áº¿n má»™t segment (Ä‘oáº¡n) khÃ¡c\n"
 
 #: elf32-sh.c:5575
 #, c-format
 msgid "%C: warning: relocation to \"%s\" references a different segment\n"
-msgstr "%C: cáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i \"%s\" tham chiáº¿u Ä‘áº¿n má»™t Ä‘oáº¡n khÃ¡c\n"
+msgstr "%C: cáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i â€œ%sâ€� tham chiáº¿u Ä‘áº¿n má»™t Ä‘oáº¡n khÃ¡c\n"
 
 #: elf32-sh.c:6353 elf32-sh.c:6436
 msgid "%B: `%s' accessed both as normal and FDPIC symbol"
-msgstr "%B: `%s' Ä‘Ã£ Ä‘Æ°á»£c truy cáº­p theo cáº£ hai kiá»ƒu bÃ¬nh thÆ°á»�ng vÃ  kÃ½ hiá»‡u FDPIC"
+msgstr "%B: â€œ%sâ€� Ä‘Ã£ Ä‘Æ°á»£c truy cáº­p theo cáº£ hai kiá»ƒu bÃ¬nh thÆ°á»�ng vÃ  kÃ½ hiá»‡u FDPIC"
 
 #: elf32-sh.c:6358 elf32-sh.c:6440
 msgid "%B: `%s' accessed both as FDPIC and thread local symbol"
-msgstr "%B: \"%s\" Ä‘Ã£ Ä‘Æ°á»£c truy cáº­p theo cáº£ hai kiá»ƒu kÃ½ hiá»‡u FDPIC vÃ  cá»¥c bá»™ cho tuyáº¿n trÃ¬nh"
+msgstr "%B: â€œ%sâ€� Ä‘Ã£ Ä‘Æ°á»£c truy cáº­p theo cáº£ hai kiá»ƒu kÃ½ hiá»‡u FDPIC vÃ  cá»¥c bá»™ cho tuyáº¿n trÃ¬nh"
 
 #: elf32-sh.c:6388
 msgid "%B: Function descriptor relocation with non-zero addend"
@@ -2397,7 +2396,7 @@ msgstr "gáº·p lá»—i nghiÃªm trá»�ng tron
 
 #: elf32-spu.c:5008
 msgid "%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'"
-msgstr "%B(%s+0x%lx): khÃ´ng thá»ƒ giáº£i quyáº¿t Ä‘á»‹nh vá»‹ láº¡i %s so vá»›i kÃ½ hiá»‡u \"%s\""
+msgstr "%B(%s+0x%lx): khÃ´ng thá»ƒ giáº£i quyáº¿t Ä‘á»‹nh vá»‹ láº¡i %s so vá»›i kÃ½ hiá»‡u â€œ%sâ€�"
 
 #: elf32-tic6x.c:1602
 msgid "warning: generating a shared library containing non-PIC code"
@@ -2450,27 +2449,27 @@ msgstr "cáº£nh bÃ¡o: %B vÃ  %B khÃ¡c nha
 #: elf32-v850.c:173
 #, c-format
 msgid "Variable `%s' cannot occupy in multiple small data regions"
-msgstr "Biáº¿n \"%s\" khÃ´ng thá»ƒ chiáº¿m nhiá»�u vÃ¹ng dá»¯ liá»‡u nhá»�"
+msgstr "Biáº¿n â€œ%sâ€� khÃ´ng thá»ƒ chiáº¿m nhiá»�u vÃ¹ng dá»¯ liá»‡u nhá»�"
 
 #: elf32-v850.c:176
 #, c-format
 msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions"
-msgstr "Biáº¿n \"%s\" chá»‰ cÃ³ thá»ƒ náº±m trong má»™t cá»§a vÃ¹ng dá»¯ liá»‡u kiá»ƒu nhá»�, sá»‘ khÃ´ng vÃ  ráº¥t nhá»�"
+msgstr "Biáº¿n â€œ%sâ€� chá»‰ cÃ³ thá»ƒ náº±m trong má»™t cá»§a vÃ¹ng dá»¯ liá»‡u kiá»ƒu nhá»�, sá»‘ khÃ´ng vÃ  ráº¥t nhá»�"
 
 #: elf32-v850.c:179
 #, c-format
 msgid "Variable `%s' cannot be in both small and zero data regions simultaneously"
-msgstr "Biáº¿n \"%s\" khÃ´ng thá»ƒ náº±m Ä‘á»“ng thá»�i trong cáº£ hai vÃ¹ng dá»¯ liá»‡u kiá»ƒu nhá»� vÃ  sá»‘ khÃ´ng"
+msgstr "Biáº¿n â€œ%sâ€� khÃ´ng thá»ƒ náº±m Ä‘á»“ng thá»�i trong cáº£ hai vÃ¹ng dá»¯ liá»‡u kiá»ƒu nhá»� vÃ  sá»‘ khÃ´ng"
 
 #: elf32-v850.c:182
 #, c-format
 msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously"
-msgstr "Biáº¿n \"%s\" khÃ´ng thá»ƒ náº±m Ä‘á»“ng thá»�i trong cáº£ hai vÃ¹ng dá»¯ liá»‡u kiá»ƒu nhá»� vÃ  ráº¥t nhá»�"
+msgstr "Biáº¿n â€œ%sâ€� khÃ´ng thá»ƒ náº±m Ä‘á»“ng thá»�i trong cáº£ hai vÃ¹ng dá»¯ liá»‡u kiá»ƒu nhá»� vÃ  ráº¥t nhá»�"
 
 #: elf32-v850.c:185
 #, c-format
 msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously"
-msgstr "Biáº¿n \"%s\" khÃ´ng thá»ƒ náº±m Ä‘á»“ng thá»�i trong cáº£ hai vÃ¹ng dá»¯ liá»‡u kiá»ƒu ráº¥t nhá»� vÃ  sá»‘ khÃ´ng"
+msgstr "Biáº¿n â€œ%sâ€� khÃ´ng thá»ƒ náº±m Ä‘á»“ng thá»�i trong cáº£ hai vÃ¹ng dá»¯ liá»‡u kiá»ƒu ráº¥t nhá»� vÃ  sá»‘ khÃ´ng"
 
 #: elf32-v850.c:483
 msgid "FAILED to find previous HI16 reloc"
@@ -2541,17 +2540,17 @@ msgstr " [trÃ´i g]"
 #: elf32-vax.c:655
 #, c-format
 msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld"
-msgstr "%s: cáº£nh bÃ¡o: sá»‘ háº¡ng GOT cá»§a %ld cho \"%s\" khÃ´ng tÆ°Æ¡ng á»©ng vá»›i sá»‘ háº¡ng GOT trÆ°á»›c cá»§a %ld"
+msgstr "%s: cáº£nh bÃ¡o: sá»‘ háº¡ng GOT cá»§a %ld cho â€œ%sâ€� khÃ´ng tÆ°Æ¡ng á»©ng vá»›i sá»‘ háº¡ng GOT trÆ°á»›c cá»§a %ld"
 
 #: elf32-vax.c:1585
 #, c-format
 msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored"
-msgstr "%s: cáº£nh bÃ¡o: sá»‘ háº¡ng PLT cá»§a %d cho \"%s\" tá»« pháº§n %s bá»‹ bá»� qua"
+msgstr "%s: cáº£nh bÃ¡o: sá»‘ háº¡ng PLT cá»§a %d cho â€œ%sâ€� tá»« pháº§n %s bá»‹ bá»� qua"
 
 #: elf32-vax.c:1712
 #, c-format
 msgid "%s: warning: %s relocation against symbol `%s' from %s section"
-msgstr "%s: cáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i %s so vá»›i kÃ½ hiá»‡u \"%s\" tá»« pháº§n %s"
+msgstr "%s: cáº£nh bÃ¡o: Ä‘á»‹nh vá»‹ láº¡i %s so vá»›i kÃ½ hiá»‡u â€œ%sâ€� tá»« pháº§n %s"
 
 #: elf32-vax.c:1718
 #, c-format
@@ -2671,7 +2670,7 @@ msgid ""
 msgstr ""
 "tÃ¡i Ä‘á»‹nh vá»‹ káº¿t xuáº¥t khÃ´ng há»£p lá»‡ khi sáº£n sinh káº¿t xuáº¥t Ä‘á»‹nh dáº¡ng non-ELF, non-mmo.\n"
 " Xin hÃ£y sá»­ dá»¥ng chÆ°Æ¡ng trÃ¬nh objcopy Ä‘á»ƒ chuyá»ƒn tá»« ELF hoáº·c mmo,\n"
-" hoáº·c sá»­ dá»¥ng assemble \"-no-expand\" (cho gcc, \"-Wa,-no-expand\""
+" hoáº·c sá»­ dá»¥ng assemble â€œ-no-expandâ€� (cho gcc, â€œ-Wa,-no-expandâ€�"
 
 #: elf64-mmix.c:1218
 msgid ""
@@ -2681,7 +2680,7 @@ msgid ""
 msgstr ""
 "tÃ¡i Ä‘á»‹nh vá»‹ káº¿t xuáº¥t khÃ´ng há»£p lá»‡ khi sáº£n sinh káº¿t xuáº¥t Ä‘á»‹nh dáº¡ng non-ELF, non-mmo.\n"
 " Xin hÃ£y sá»­ dá»¥ng chÆ°Æ¡ng trÃ¬nh objcopy Ä‘á»ƒ chuyá»ƒn tá»« ELF hoáº·c mmo,\n"
-" hoáº·c dá»‹ch sá»­ dá»¥ng tÃ¹y-chá»�n-gcc \"-mno-base-addresses\"."
+" hoáº·c dá»‹ch sá»­ dá»¥ng tÃ¹y-chá»�n-gcc â€œ-mno-base-addressesâ€�."
 
 #: elf64-mmix.c:1244
 #, c-format
@@ -2729,7 +2728,7 @@ msgstr ""
 #, c-format
 msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n"
 msgstr ""
-"%s: Lá»—i: Ä‘á»‹nh nghÄ©a nhiá»�u láº§n \"%s\"; Ä‘áº§u cá»§a %s Ä‘Æ°á»£c Ä‘áº·t\n"
+"%s: Lá»—i: Ä‘á»‹nh nghÄ©a nhiá»�u láº§n â€œ%sâ€�; Ä‘áº§u cá»§a %s Ä‘Æ°á»£c Ä‘áº·t\n"
 "trong má»™t táº­p tin Ä‘Ã£ liÃªn káº¿t sá»›m hÆ¡n\n"
 
 #: elf64-mmix.c:2311
@@ -2751,7 +2750,7 @@ msgstr "%P: %B: khÃ´ng thá»ƒ táº¡o má»¥c
 
 #: elf64-ppc.c:6518
 msgid "%P: copy reloc against `%s' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n"
-msgstr "%P: sao chÃ©p reloc (Ä‘á»‹nh vá»‹ láº¡i) \"%s\" thÃ¬ cáº§n thiáº¿t chá»©c nÄƒng liÃªn káº¿t plt uá»ƒ oáº£i; hÃ£y trÃ¡nh Ä‘áº·t LD_BIND_NOW=1, hoáº·c nÃ¢ng cáº¥p GCC\n"
+msgstr "%P: sao chÃ©p reloc (Ä‘á»‹nh vá»‹ láº¡i) â€œ%sâ€� thÃ¬ cáº§n thiáº¿t chá»©c nÄƒng liÃªn káº¿t plt uá»ƒ oáº£i; hÃ£y trÃ¡nh Ä‘áº·t LD_BIND_NOW=1, hoáº·c nÃ¢ng cáº¥p GCC\n"
 
 #: elf64-ppc.c:6788
 msgid "%B: undefined symbol on R_PPC64_TOCSAVE relocation"
@@ -2771,7 +2770,7 @@ msgstr "%B: gáº·p kiá»ƒu Ä‘á»‹nh vá»‹ lá
 
 #: elf64-ppc.c:7106
 msgid "%B: undefined sym `%s' in .opd section"
-msgstr "%B: gáº·p sym (liÃªn káº¿t má»�m?) chÆ°a Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh \"%s\" trong pháº§n .opd"
+msgstr "%B: gáº·p sym (liÃªn káº¿t má»�m?) chÆ°a Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh â€œ%sâ€� trong pháº§n .opd"
 
 #: elf64-ppc.c:7664
 msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
@@ -2792,19 +2791,19 @@ msgstr "%P: khÃ´ng tÃ¬m tháº¥y má»¥c opd
 
 #: elf64-ppc.c:9680
 msgid "%P: long branch stub `%s' offset overflow\n"
-msgstr "%P: máº©u nhÃ¡nh dÃ i \"%s\" trÃ n khoáº£ng bÃ¹\n"
+msgstr "%P: máº©u nhÃ¡nh dÃ i â€œ%sâ€� trÃ n khoáº£ng bÃ¹\n"
 
 #: elf64-ppc.c:9739
 msgid "%P: can't find branch stub `%s'\n"
-msgstr "%P: khÃ´ng tÃ¬m tháº¥y nhÃ¡nh gá»‘c `%s'\n"
+msgstr "%P: khÃ´ng tÃ¬m tháº¥y nhÃ¡nh gá»‘c â€œ%sâ€�\n"
 
 #: elf64-ppc.c:9801 elf64-ppc.c:9943
 msgid "%P: linkage table error against `%s'\n"
-msgstr "%P: báº£ng liÃªn káº¿t láº¡i sai `%s'\n"
+msgstr "%P: báº£ng liÃªn káº¿t láº¡i sai â€œ%sâ€�\n"
 
 #: elf64-ppc.c:10126
 msgid "%P: can't build branch stub `%s'\n"
-msgstr "%P: khÃ´ng thá»ƒ xÃ¢y dá»±ng nhÃ¡nh gá»‘c `%s'\n"
+msgstr "%P: khÃ´ng thá»ƒ xÃ¢y dá»±ng nhÃ¡nh gá»‘c â€œ%sâ€�\n"
 
 #: elf64-ppc.c:10941
 msgid "%B section %A exceeds stub group size"
@@ -2812,7 +2811,7 @@ msgstr "%B pháº§n %A vÆ°á»£t quÃ¡ kÃ­ch 
 
 #: elf64-ppc.c:11666 elf64-ppc.c:11699
 msgid "%P: %s offset too large for .eh_frame sdata4 encoding"
-msgstr "%P: %s giÃ¡ trá»‹ bÃ¹ quÃ¡ lá»›n cho mÃ£ hÃ³a '.eh_frame sdata4'"
+msgstr "%P: %s giÃ¡ trá»‹ bÃ¹ quÃ¡ lá»›n cho mÃ£ hÃ³a â€œ.eh_frame sdata4â€�"
 
 #: elf64-ppc.c:11744
 msgid "%P: stubs don't match calculated size\n"
@@ -2845,11 +2844,11 @@ msgstr "%P: %H: %s Ä‘Æ°á»£c sá»­ dá»¥ng 
 
 #: elf64-ppc.c:12556
 msgid "%P: %H: automatic multiple TOCs not supported using your crt files; recompile with -mminimal-toc or upgrade gcc\n"
-msgstr "%P: %H: tá»± Ä‘á»™ng táº¡o nhiá»�u TOC khÃ´ng Ä‘Æ°á»£c há»— trá»£ khi dÃ¹ng cÃ¡c táº­p tin CRT cá»§a báº¡n; hÃ£y biÃªn dá»‹ch láº¡i vá»›i \"-mminimal-toc\", hoáº·c nÃ¢ng cáº¥p GCC\n"
+msgstr "%P: %H: tá»± Ä‘á»™ng táº¡o nhiá»�u TOC khÃ´ng Ä‘Æ°á»£c há»— trá»£ khi dÃ¹ng cÃ¡c táº­p tin CRT cá»§a báº¡n; hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-mminimal-tocâ€�, hoáº·c nÃ¢ng cáº¥p GCC\n"
 
 #: elf64-ppc.c:12562
 msgid "%P: %H: sibling call optimization to `%s' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `%s' extern\n"
-msgstr "%P: %H: tá»‘i Æ°u hoÃ¡ cuá»™c gá»�i cÃ¹ng chá»— (sibling) cho \"%s\" khÃ´ng cho phÃ©p tá»± Ä‘á»™ng táº¡o nhiá»�u TOC; hÃ£y biÃªn dá»‹ch láº¡i vá»›i \"-mminimal-toc\" hoáº·c \"-fno-optimize-sibling-calls\", hoáº·c lÃ m cho \"%s\" bÃªn ngoÃ i\n"
+msgstr "%P: %H: tá»‘i Æ°u hoÃ¡ cuá»™c gá»�i cÃ¹ng chá»— (sibling) cho â€œ%sâ€� khÃ´ng cho phÃ©p tá»± Ä‘á»™ng táº¡o nhiá»�u TOC; hÃ£y biÃªn dá»‹ch láº¡i vá»›i â€œ-mminimal-tocâ€� hoáº·c â€œ-fno-optimize-sibling-callsâ€�, hoáº·c lÃ m cho â€œ%sâ€� bÃªn ngoÃ i\n"
 
 #: elf64-ppc.c:13286
 msgid "%P: %B: relocation %s is not supported for symbol %s\n"
@@ -2874,11 +2873,11 @@ msgstr "Thanh ghi %%g%d Ä‘Æ°á»£c dÃ¹ng m
 
 #: elf64-sparc.c:489
 msgid "Symbol `%s' has differing types: REGISTER in %B, previously %s in %B"
-msgstr "KÃ½ hiá»‡u \"%s\" cÃ³ cÃ¡c kiá»ƒu khÃ¡c hau: REGISTER (thanh ghi) trong %B, trÆ°á»›c lÃ  %s trong %B"
+msgstr "KÃ½ hiá»‡u â€œ%sâ€� cÃ³ cÃ¡c kiá»ƒu khÃ¡c hau: REGISTER (thanh ghi) trong %B, trÆ°á»›c lÃ  %s trong %B"
 
 #: elf64-sparc.c:534
 msgid "Symbol `%s' has differing types: %s in %B, previously REGISTER in %B"
-msgstr "KÃ½ hiá»‡u \"%s\" cÃ³ cÃ¡c kiá»ƒu khÃ¡c hau: %s trong %b, trÆ°á»›c lÃ  REGISTER (thanh ghi) trong %B"
+msgstr "KÃ½ hiá»‡u â€œ%sâ€� cÃ³ cÃ¡c kiá»ƒu khÃ¡c hau: %s trong %b, trÆ°á»›c lÃ  REGISTER (thanh ghi) trong %B"
 
 #: elf64-sparc.c:687
 msgid "%B: linking UltraSPARC specific with HAL specific code"
@@ -2886,31 +2885,31 @@ msgstr "%B: Ä‘ang liÃªn káº¿t UltraSPARC
 
 #: elf64-x86-64.c:1427
 msgid "%B: relocation %s against symbol `%s' isn't supported in x32 mode"
-msgstr "%B: sá»± Ä‘á»‹nh vá»‹ láº¡i %s dá»±a vÃ o kÃ½ hiá»‡u \"%s\" khÃ´ng Ä‘Æ°á»£c há»— trá»£ trong cháº¿ Ä‘á»™ x32"
+msgstr "%B: sá»± Ä‘á»‹nh vá»‹ láº¡i %s dá»±a vÃ o kÃ½ hiá»‡u â€œ%sâ€� khÃ´ng Ä‘Æ°á»£c há»— trá»£ trong cháº¿ Ä‘á»™ x32"
 
 #: elf64-x86-64.c:1656
 msgid "%B: '%s' accessed both as normal and thread local symbol"
-msgstr "%B; \"%s\" Ä‘Æ°á»£c truy cáº­p nhÆ° lÃ  kÃ½ hiá»‡u cáº£ hai kiá»ƒu bÃ¬nh thÆ°á»�ng vÃ  máº¡ch cá»¥c bá»™"
+msgstr "%B; â€œ%sâ€� Ä‘Æ°á»£c truy cáº­p nhÆ° lÃ  kÃ½ hiá»‡u cáº£ hai kiá»ƒu bÃ¬nh thÆ°á»�ng vÃ  máº¡ch cá»¥c bá»™"
 
 #: elf64-x86-64.c:3150
 msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d"
-msgstr "%B: sá»± Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u STT_GNU_IFUNC \"%s\" cÃ³ pháº§n cá»™ng khÃ¡c sá»‘ khÃ´ng: %d"
+msgstr "%B: sá»± Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i kÃ½ hiá»‡u STT_GNU_IFUNC â€œ%sâ€� cÃ³ pháº§n cá»™ng khÃ¡c sá»‘ khÃ´ng: %d"
 
 #: elf64-x86-64.c:3411
 msgid "%B: relocation R_X86_64_GOTOFF64 against protected function `%s' can not be used when making a shared object"
-msgstr "%B: Ä‘á»‹nh vá»‹ láº¡i R_X86_64_GOTOFF64 so vá»›i hÃ m Ä‘Ã£ báº£o vá»‡ \"%s\" thÃ¬ khÃ´ng thá»ƒ Ä‘Æ°á»£c dÃ¹ng khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»"
+msgstr "%B: Ä‘á»‹nh vá»‹ láº¡i R_X86_64_GOTOFF64 so vá»›i hÃ m Ä‘Ã£ báº£o vá»‡ â€œ%sâ€� thÃ¬ khÃ´ng thá»ƒ Ä‘Æ°á»£c dÃ¹ng khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº»"
 
 #: elf64-x86-64.c:3523
 msgid "; recompile with -fPIC"
-msgstr "; biÃªn dá»‹ch láº¡i vá»›i \"-fPIC\""
+msgstr "; biÃªn dá»‹ch láº¡i vá»›i â€œ-fPICâ€�"
 
 #: elf64-x86-64.c:3528
 msgid "%B: relocation %s against %s `%s' can not be used when making a shared object%s"
-msgstr "%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i %s \"%s\" khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº» %s"
+msgstr "%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i %s â€œ%sâ€� khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº» %s"
 
 #: elf64-x86-64.c:3530
 msgid "%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s"
-msgstr "%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i %s chÆ°a xÃ¡c Ä‘á»‹nh \"%s\" khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº» %s"
+msgstr "%B: khÃ´ng dÃ¹ng Ä‘Æ°á»£c Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i %s chÆ°a xÃ¡c Ä‘á»‹nh â€œ%sâ€� khi táº¡o má»™t Ä‘á»‘i tÆ°á»£ng chia sáº» %s"
 
 #: elfcode.h:767
 #, c-format
@@ -2949,7 +2948,7 @@ msgstr "%s: lá»�i Ä‘á»‹nh nghÄ©a TLS tro
 
 #: elflink.c:1762
 msgid "%B: unexpected redefinition of indirect versioned symbol `%s'"
-msgstr "%B: gáº·p lá»�i Ä‘á»‹nh nghÄ©a láº¡i báº¥t thÆ°á»�ng cá»§a kÃ½ hiá»‡u giÃ¡n tiáº¿p Ä‘áº·t phiÃªn báº£n \"%s\""
+msgstr "%B: gáº·p lá»�i Ä‘á»‹nh nghÄ©a láº¡i báº¥t thÆ°á»�ng cá»§a kÃ½ hiá»‡u giÃ¡n tiáº¿p Ä‘áº·t phiÃªn báº£n â€œ%sâ€�"
 
 #: elflink.c:2063
 msgid "%B: version node not found for symbol %s"
@@ -2957,11 +2956,11 @@ msgstr "%B: khÃ´ng tÃ¬m tháº¥y nÃºt thÃ´
 
 #: elflink.c:2154
 msgid "%B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A'"
-msgstr "%B: chá»‰ má»¥c kÃ½ hiá»‡u Ä‘á»‹nh vá»‹ láº¡i sai (0x%lx â‰¥ 0x%lx) cho khoáº£ng bÃ¹ 0x%lx trong pháº§n \"%A\""
+msgstr "%B: chá»‰ má»¥c kÃ½ hiá»‡u Ä‘á»‹nh vá»‹ láº¡i sai (0x%lx â‰¥ 0x%lx) cho khoáº£ng bÃ¹ 0x%lx trong pháº§n â€œ%Aâ€�"
 
 #: elflink.c:2165
 msgid "%B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the object file has no symbol table"
-msgstr "%B: chá»‰ má»¥c kÃ½ hiá»‡u khÃ¡c sá»‘ khÃ´ng (0x%lx) cho hiá»‡u 0x%lx trong pháº§n \"%A\" mÃ  táº­p tin Ä‘á»‘i tÆ°á»£ng khÃ´ng cÃ³ báº£ng kÃ½ hiá»‡u"
+msgstr "%B: chá»‰ má»¥c kÃ½ hiá»‡u khÃ¡c sá»‘ khÃ´ng (0x%lx) cho hiá»‡u 0x%lx trong pháº§n â€œ%Aâ€� mÃ  táº­p tin Ä‘á»‘i tÆ°á»£ng khÃ´ng cÃ³ báº£ng kÃ½ hiá»‡u"
 
 #: elflink.c:2355
 msgid "%B: relocation size mismatch in %B section %A"
@@ -2970,7 +2969,7 @@ msgstr "%B: sai khá»›p kÃ­ch cá»¡ Ä‘á»‹n
 #: elflink.c:2639
 #, c-format
 msgid "warning: type and size of dynamic symbol `%s' are not defined"
-msgstr "cáº£nh bÃ¡o: chÆ°a xÃ¡c Ä‘á»‹nh kiá»ƒu vÃ  kÃ­ch cá»¡ cá»§a kÃ½ hiá»‡u Ä‘á»™ng \"%s\""
+msgstr "cáº£nh bÃ¡o: chÆ°a xÃ¡c Ä‘á»‹nh kiá»ƒu vÃ  kÃ­ch cá»¡ cá»§a kÃ½ hiá»‡u Ä‘á»™ng â€œ%sâ€�"
 
 #: elflink.c:3391
 msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n"
@@ -2986,23 +2985,23 @@ msgstr "%B: %s: phiÃªn báº£n cáº§n thiáº
 
 #: elflink.c:4269
 msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A"
-msgstr "Cáº£nh bÃ¡o: vá»‹ trÃ­ sáº¯p hÃ ng %u cá»§a kÃ½ hiá»‡u dÃ¹ng chung \"%s\" trong %B lÃ  lá»›n hÆ¡n vá»‹ trÃ­ sáº¯p hÃ ng (%u) cá»§a pháº§n %A cá»§a nÃ³"
+msgstr "Cáº£nh bÃ¡o: vá»‹ trÃ­ sáº¯p hÃ ng %u cá»§a kÃ½ hiá»‡u dÃ¹ng chung â€œ%sâ€� trong %B lÃ  lá»›n hÆ¡n vá»‹ trÃ­ sáº¯p hÃ ng (%u) cá»§a pháº§n %A cá»§a nÃ³"
 
 #: elflink.c:4275
 msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B"
-msgstr "Cáº£nh bÃ¡o: vá»‹ trÃ­ sáº¯p hÃ ng %u cá»§a kÃ½ hiá»‡u \"%s\" trong %B lÃ  nhá»� hÆ¡n %u trong %B"
+msgstr "Cáº£nh bÃ¡o: vá»‹ trÃ­ sáº¯p hÃ ng %u cá»§a kÃ½ hiá»‡u â€œ%sâ€� trong %B lÃ  nhá»� hÆ¡n %u trong %B"
 
 #: elflink.c:4290
 msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B"
-msgstr "Cáº£nh bÃ¡o: kÃ­ch cá»¡ cá»§a kÃ½ hiá»‡u \"%s\" Ä‘Ã£ thay Ä‘á»•i tá»« %lu trong %B thÃ nh %lu trong %B"
+msgstr "Cáº£nh bÃ¡o: kÃ­ch cá»¡ cá»§a kÃ½ hiá»‡u â€œ%sâ€� Ä‘Ã£ thay Ä‘á»•i tá»« %lu trong %B thÃ nh %lu trong %B"
 
 #: elflink.c:4463
 msgid "%B: undefined reference to symbol '%s'"
-msgstr "%B: chÆ°a Ä‘á»‹nh nghÄ©a tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u '%s'"
+msgstr "%B: chÆ°a Ä‘á»‹nh nghÄ©a tham chiáº¿u Ä‘áº¿n kÃ½ hiá»‡u â€œ%sâ€�"
 
 #: elflink.c:4466
 msgid "note: '%s' is defined in DSO %B so try adding it to the linker command line"
-msgstr "chÃº Ã½: '%s' Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a trong DSO %B do Ä‘Ã³ hÃ£y thá»­ thÃªm nÃ³ vÃ o trong dÃ²ng lá»‡nh cá»§a bá»™ liÃªn káº¿t"
+msgstr "chÃº Ã½: â€œ%sâ€� Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a trong DSO %B do Ä‘Ã³ hÃ£y thá»­ thÃªm nÃ³ vÃ o trong dÃ²ng lá»‡nh cá»§a bá»™ liÃªn káº¿t"
 
 #: elflink.c:5781
 #, c-format
@@ -3011,7 +3010,7 @@ msgstr "%s: phiÃªn báº£n chÆ°a Ä‘Æ°á»£c 
 
 #: elflink.c:5849
 msgid "%B: .preinit_array section is not allowed in DSO"
-msgstr "%B: khÃ´ng cho phÃ©p pháº§n \".preinit_array\" trong DSO"
+msgstr "%B: khÃ´ng cho phÃ©p pháº§n â€œ.preinit_arrayâ€� trong DSO"
 
 #: elflink.c:7604
 #, c-format
@@ -3021,7 +3020,7 @@ msgstr "gáº·p tham chiáº¿u %s chÆ°a Ä‘Æ°
 #: elflink.c:7758
 #, c-format
 msgid "unknown operator '%c' in complex symbol"
-msgstr "khÃ´ng rÃµ toÃ¡n tá»­ \"%c\" trong kÃ½ hiá»‡u phá»©c táº¡p"
+msgstr "khÃ´ng rÃµ toÃ¡n tá»­ â€œ%câ€� trong kÃ½ hiá»‡u phá»©c táº¡p"
 
 #: elflink.c:8097 elflink.c:8114 elflink.c:8151 elflink.c:8168
 msgid "%B: Unable to sort relocs - they are in more than one size"
@@ -3041,15 +3040,15 @@ msgstr "%B: QuÃ¡ nhiá»�u pháº§n: %d (â‰¥
 
 #: elflink.c:8675
 msgid "%B: internal symbol `%s' in %B is referenced by DSO"
-msgstr "%B: kÃ½ hiá»‡u ná»™i táº¡i \"%s\" trong %B Ä‘Æ°á»£c DSO tham chiáº¿u"
+msgstr "%B: kÃ½ hiá»‡u ná»™i táº¡i â€œ%sâ€� trong %B Ä‘Æ°á»£c DSO tham chiáº¿u"
 
 #: elflink.c:8677
 msgid "%B: hidden symbol `%s' in %B is referenced by DSO"
-msgstr "%B: kÃ½ hiá»‡u áº©n `%s' trong %B Ä‘Æ°á»£c DSO tham chiáº¿u"
+msgstr "%B: kÃ½ hiá»‡u áº©n â€œ%sâ€� trong %B Ä‘Æ°á»£c DSO tham chiáº¿u"
 
 #: elflink.c:8679
 msgid "%B: local symbol `%s' in %B is referenced by DSO"
-msgstr "%B: kÃ½ hiá»‡u ná»™i bá»™ `%s' trong %B Ä‘Æ°á»£c tham chiáº¿u bá»Ÿi DSO"
+msgstr "%B: kÃ½ hiá»‡u ná»™i bá»™ â€œ%sâ€� trong %B Ä‘Æ°á»£c tham chiáº¿u bá»Ÿi DSO"
 
 #: elflink.c:8776
 msgid "%B: could not find output section %A for input section %A"
@@ -3057,15 +3056,15 @@ msgstr "%B: khÃ´ng thá»ƒ tÃ¬m tháº¥y phá
 
 #: elflink.c:8899
 msgid "%B: protected symbol `%s' isn't defined"
-msgstr "%B: kÃ½ hiá»‡u Ä‘Æ°á»£c báº£o vá»‡ `%s' chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a"
+msgstr "%B: kÃ½ hiá»‡u Ä‘Æ°á»£c báº£o vá»‡ â€œ%sâ€� chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a"
 
 #: elflink.c:8901
 msgid "%B: internal symbol `%s' isn't defined"
-msgstr "%B: kÃ½ hiá»‡u ná»™i táº¡i `%s' chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a"
+msgstr "%B: kÃ½ hiá»‡u ná»™i táº¡i â€œ%sâ€� chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a"
 
 #: elflink.c:8903
 msgid "%B: hidden symbol `%s' isn't defined"
-msgstr "%B: kÃ½ hiá»‡u áº©n `%s' chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a"
+msgstr "%B: kÃ½ hiá»‡u áº©n â€œ%sâ€� chÆ°a Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a"
 
 #: elflink.c:9432
 msgid "error: %B: size of section %A is not multiple of address size"
@@ -3077,7 +3076,7 @@ msgstr "lá»—i: %B chá»©a má»™t Ä‘á»‹nh v
 
 #: elflink.c:10214
 msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections"
-msgstr "%A cÃ³ pháº§n cáº£ hai Ä‘Æ°á»£c sáº¯p xáº¿p [\"%A\" trong %B] vÃ  chÆ°a sáº¯p xáº¿p [\"%A\" trong %B]"
+msgstr "%A cÃ³ pháº§n cáº£ hai Ä‘Æ°á»£c sáº¯p xáº¿p [â€�%Aâ€� trong %B] vÃ  chÆ°a sáº¯p xáº¿p [â€�%Aâ€� trong %B]"
 
 #: elflink.c:10219
 #, c-format
@@ -3100,7 +3099,7 @@ msgstr "cáº£nh bÃ¡o: pháº§n %s cÃ³ kÃ­ch
 #: elflink.c:11143
 #, c-format
 msgid "warning: section '%s' is being made into a note"
-msgstr "cáº£nh bÃ¡o: pháº§n \"%s\" bá»‹ lÃ m thÃ nh má»™t ghi chÃº"
+msgstr "cáº£nh bÃ¡o: pháº§n â€œ%sâ€� bá»‹ lÃ m thÃ nh má»™t ghi chÃº"
 
 #: elflink.c:11212
 msgid "%P%X: read-only segment has dynamic relocations.\n"
@@ -3116,7 +3115,7 @@ msgstr "%P%X: khÃ´ng thá»ƒ Ä‘á»�c cÃ¡c k
 
 #: elflink.c:11792
 msgid "Removing unused section '%s' in file '%B'"
-msgstr "Ä�ang gá»¡ bá»� pháº§n khÃ´ng dÃ¹ng \"%s\" trong táº­p tin \"%B\""
+msgstr "Ä�ang gá»¡ bá»� pháº§n khÃ´ng dÃ¹ng â€œ%sâ€� trong táº­p tin â€œ%Bâ€�"
 
 #: elflink.c:11998
 msgid "Warning: gc-sections option ignored"
@@ -3141,11 +3140,11 @@ msgstr "%B: %A+0x%lx: Nháº£y trá»±c tiáº
 
 #: elfxx-mips.c:6519 elfxx-mips.c:6742
 msgid "%B: Warning: bad `%s' option size %u smaller than its header"
-msgstr "%B: Cáº£nh bÃ¡o: kÃ­ch cá»¡ tÃ¹y chá»�n \"%s\" sai: nhá»� hÆ¡n pháº§n Ä‘áº§u cá»§a nÃ³"
+msgstr "%B: Cáº£nh bÃ¡o: kÃ­ch cá»¡ tÃ¹y chá»�n â€œ%sâ€� sai: nhá»� hÆ¡n pháº§n Ä‘áº§u cá»§a nÃ³"
 
 #: elfxx-mips.c:7495 elfxx-mips.c:7620
 msgid "%B: Warning: cannot determine the target function for stub section `%s'"
-msgstr "%B: cáº£nh bÃ¡o: khÃ´ng thá»ƒ quyáº¿t Ä‘á»‹nh hÃ m Ä‘Ã­ch cho pháº§n máº©u \"%s\""
+msgstr "%B: cáº£nh bÃ¡o: khÃ´ng thá»ƒ quyáº¿t Ä‘á»‹nh hÃ m Ä‘Ã­ch cho pháº§n máº©u â€œ%sâ€�"
 
 #: elfxx-mips.c:7749
 msgid "%B: Malformed reloc detected for section %s"
@@ -3166,32 +3165,32 @@ msgstr "Ä‘á»‹nh vá»‹ láº¡i khÃ¡c Ä‘á»™ng
 
 #: elfxx-mips.c:9347
 msgid "%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'"
-msgstr "%B: KhÃ´ng tÃ¬m tháº¥y Ä‘á»‹nh vá»‹ láº¡i LO16 tÆ°Æ¡ng á»©ng so vá»›i \"%s\" cho %s á»Ÿ 0x%lx trong pháº§n \"%A\""
+msgstr "%B: KhÃ´ng tÃ¬m tháº¥y Ä‘á»‹nh vá»‹ láº¡i LO16 tÆ°Æ¡ng á»©ng so vá»›i â€œ%sâ€� cho %s á»Ÿ 0x%lx trong pháº§n â€œ%Aâ€�"
 
 #: elfxx-mips.c:9486
 msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)"
-msgstr "Pháº§n small-data (dá»¯ liá»‡u nhá»�) vÆ°á»£t quÃ¡ 64 KB; hÃ£y giáº£m giá»›i háº¡n dá»¯ liá»‡u nhá»� (xem tÃ¹y chá»�n \"-G\")"
+msgstr "Pháº§n small-data (dá»¯ liá»‡u nhá»�) vÆ°á»£t quÃ¡ 64 KB; hÃ£y giáº£m giá»›i háº¡n dá»¯ liá»‡u nhá»� (xem tÃ¹y chá»�n â€œ-Gâ€�)"
 
 #: elfxx-mips.c:9505
 msgid "JALX to a non-word-aligned address"
-msgstr "JALX cho Ä‘á»‹a chá»‰ 'non-word-aligned'"
+msgstr "JALX cho Ä‘á»‹a chá»‰ â€œnon-word-alignedâ€�"
 
 #: elfxx-mips.c:13266
 #, c-format
 msgid "%s: illegal section name `%s'"
-msgstr "%s: tÃªn pháº§n cáº¥m \"%s\""
+msgstr "%s: tÃªn pháº§n cáº¥m â€œ%sâ€�"
 
 #: elfxx-mips.c:13645 elfxx-mips.c:13671
 msgid "Warning: %B uses -msingle-float, %B uses -mdouble-float"
-msgstr "Cáº£nh bÃ¡o: %B dÃ¹ng \"-msingle-float\", cÃ²n %B dÃ¹ng \"-mdouble-float\""
+msgstr "Cáº£nh bÃ¡o: %B dÃ¹ng â€œ-msingle-floatâ€�, cÃ²n %B dÃ¹ng â€œ-mdouble-floatâ€�"
 
 #: elfxx-mips.c:13657 elfxx-mips.c:13713
 msgid "Warning: %B uses -msingle-float, %B uses -mips32r2 -mfp64"
-msgstr "Cáº£nh bÃ¡o: %B dÃ¹ng \"-msingle-float\", cÃ²n %B dÃ¹ng \"-mips32r2 -mfp64\""
+msgstr "Cáº£nh bÃ¡o: %B dÃ¹ng â€œ-msingle-floatâ€�, cÃ²n %B dÃ¹ng â€œ-mips32r2 -mfp64â€�"
 
 #: elfxx-mips.c:13683 elfxx-mips.c:13719
 msgid "Warning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64"
-msgstr "Cáº£nh bÃ¡o: %B dÃ¹ng \"-mdouble-float\", cÃ²n %B dÃ¹ng \"-mips32r2 -mfp64\""
+msgstr "Cáº£nh bÃ¡o: %B dÃ¹ng â€œ-mdouble-floatâ€�, cÃ²n %B dÃ¹ng â€œ-mips32r2 -mfp64â€�"
 
 #: elfxx-mips.c:13761
 msgid "%B: endianness incompatible with that of the selected emulation"
@@ -3283,12 +3282,12 @@ msgstr "%B: KhÃ´ng thá»ƒ liÃªn káº¿t hai
 #: i386linux.c:451 m68klinux.c:456 sparclinux.c:450
 #, c-format
 msgid "Output file requires shared library `%s'\n"
-msgstr "Táº­p tin káº¿t xuáº¥t cáº§n thiáº¿t thÆ° viá»‡n chia sáº» \"%s\"\n"
+msgstr "Táº­p tin káº¿t xuáº¥t cáº§n thiáº¿t thÆ° viá»‡n chia sáº» â€œ%sâ€�\n"
 
 #: i386linux.c:459 m68klinux.c:464 sparclinux.c:458
 #, c-format
 msgid "Output file requires shared library `%s.so.%s'\n"
-msgstr "Táº­p tin káº¿t xuáº¥t cáº§n thiáº¿t thÆ° viá»‡n chia sáº» \"%s.so.%s\"\n"
+msgstr "Táº­p tin káº¿t xuáº¥t cáº§n thiáº¿t thÆ° viá»‡n chia sáº» â€œ%s.so.%sâ€�\n"
 
 #: i386linux.c:648 i386linux.c:698 m68klinux.c:656 m68klinux.c:704
 #: sparclinux.c:648 sparclinux.c:698
@@ -3308,7 +3307,7 @@ msgstr "%s: chuá»—i quÃ¡ dÃ i (%d kÃ½ tá
 #: ieee.c:286
 #, c-format
 msgid "%s: unrecognized symbol `%s' flags 0x%x"
-msgstr "%s: khÃ´ng nháº­n ra kÃ½ hiÃªu \"%s\" cÃ¡c cá»� 0x%x"
+msgstr "%s: khÃ´ng nháº­n ra kÃ½ hiÃªu â€œ%sâ€� cÃ¡c cá»� 0x%x"
 
 #: ieee.c:792
 msgid "%B: unimplemented ATI record %u for symbol %u"
@@ -3387,7 +3386,7 @@ msgstr "%s bá»‹ pháº£n Ä‘á»‘i Ä‘Æ°á»£c g
 
 #: linker.c:1872
 msgid "%B: indirect symbol `%s' to `%s' is a loop"
-msgstr "%B: kÃ½ hiá»‡u giÃ¡n tiáº¿p \"%s\" tá»›i \"%s\" thÃ¬ táº¡o má»™t vÃ²ng láº·p"
+msgstr "%B: kÃ½ hiá»‡u giÃ¡n tiáº¿p â€œ%sâ€� tá»›i â€œ%sâ€� thÃ¬ táº¡o má»™t vÃ²ng láº·p"
 
 #: linker.c:2736
 #, c-format
@@ -3396,19 +3395,19 @@ msgstr "Thá»­ lÃ m liÃªn káº¿t cÃ³ kháº£
 
 #: linker.c:3021
 msgid "%B: ignoring duplicate section `%A'\n"
-msgstr "%B: Ä‘ang bá»� qua pháº§n trÃ¹ng \"%A\"\n"
+msgstr "%B: Ä‘ang bá»� qua pháº§n trÃ¹ng â€œ%Aâ€�\n"
 
 #: linker.c:3030 linker.c:3039
 msgid "%B: duplicate section `%A' has different size\n"
-msgstr "%B: pháº§n trÃ¹ng \"%A\" cÃ³ kÃ­ch cá»¡ khÃ¡c\n"
+msgstr "%B: pháº§n trÃ¹ng â€œ%Aâ€� cÃ³ kÃ­ch cá»¡ khÃ¡c\n"
 
 #: linker.c:3047 linker.c:3052
 msgid "%B: could not read contents of section `%A'\n"
-msgstr "%B: khÃ´ng thá»ƒ Ä‘á»�c ná»™i dung cá»§a pháº§n \"%A\"\n"
+msgstr "%B: khÃ´ng thá»ƒ Ä‘á»�c ná»™i dung cá»§a pháº§n â€œ%Aâ€�\n"
 
 #: linker.c:3056
 msgid "%B: duplicate section `%A' has different contents\n"
-msgstr "%B: pháº§n trÃ¹ng `%A' cÃ³ ná»™i dung khÃ¡c\n"
+msgstr "%B: pháº§n trÃ¹ng â€œ%Aâ€� cÃ³ ná»™i dung khÃ¡c\n"
 
 #: mach-o.c:407
 msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols"
@@ -3432,17 +3431,17 @@ msgstr "bfd_mach_o_read_symtab_symbol: t
 #: mach-o.c:1892
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined"
-msgstr "bfd_mach_o_read_symtab_symbol: kÃ½ hiá»‡u \"%s\" Ä‘Ã£ chá»‰ ra pháº§n khÃ´ng há»£p lá»‡ %d (tá»‘i Ä‘a %lu): Ä‘ang Ä‘áº·t thÃ nh chÆ°a Ä‘á»‹nh nghÄ©a"
+msgstr "bfd_mach_o_read_symtab_symbol: kÃ½ hiá»‡u â€œ%sâ€� Ä‘Ã£ chá»‰ ra pháº§n khÃ´ng há»£p lá»‡ %d (tá»‘i Ä‘a %lu): Ä‘ang Ä‘áº·t thÃ nh chÆ°a Ä‘á»‹nh nghÄ©a"
 
 #: mach-o.c:1900
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" is unsupported 'indirect' reference: setting to undefined"
-msgstr "bfd_mach_o_read_symtab_symbol: kÃ½ hiá»‡u \"%s\" khÃ´ng Ä‘Æ°á»£c há»— trá»£ tham chiáº¿u 'indirect': Ä‘áº·t thÃ nh chÆ°a Ä‘á»‹nh nghÄ©a"
+msgstr "bfd_mach_o_read_symtab_symbol: kÃ½ hiá»‡u â€œ%sâ€� khÃ´ng Ä‘Æ°á»£c há»— trá»£ tham chiáº¿u â€œindirectâ€�: Ä‘áº·t thÃ nh chÆ°a Ä‘á»‹nh nghÄ©a"
 
 #: mach-o.c:1906
 #, c-format
 msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined"
-msgstr "bfd_mach_o_read_symtab_symbol: kÃ½ hiá»‡u \"%s\" Ä‘Ã£ chá»‰ Ä‘á»‹nh sai kiá»ƒu táº¡i trÆ°á»�ng 0x%x: Ä‘áº·t thÃ nh chÆ°a Ä‘á»‹nh nghÄ©a"
+msgstr "bfd_mach_o_read_symtab_symbol: kÃ½ hiá»‡u â€œ%sâ€� Ä‘Ã£ chá»‰ Ä‘á»‹nh sai kiá»ƒu táº¡i trÆ°á»�ng 0x%x: Ä‘áº·t thÃ nh chÆ°a Ä‘á»‹nh nghÄ©a"
 
 #: mach-o.c:1979
 msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols"
@@ -3475,12 +3474,12 @@ msgstr "Pháº§n Ä‘áº§u Mach-O:\n"
 #: mach-o.c:3578
 #, c-format
 msgid " magic     : %08lx\n"
-msgstr " ma thuáº­t : %08lx\n"
+msgstr " ma thuáº­t  : %08lx\n"
 
 #: mach-o.c:3579
 #, c-format
 msgid " cputype   : %08lx (%s)\n"
-msgstr " kiá»ƒu CPU : %08lx (%s)\n"
+msgstr " kiá»ƒu CPU  : %08lx (%s)\n"
 
 #: mach-o.c:3581
 #, c-format
@@ -3522,7 +3521,7 @@ msgstr "Ä�oáº¡n vÃ  Pháº§n:\n"
 
 #: mach-o.c:3601
 msgid " #: Segment name     Section name     Address\n"
-msgstr " #: TÃªn Ä‘oáº¡n     TÃªn pháº§n     Ä�á»‹a chá»‰\n"
+msgstr " #: TÃªn Ä‘oáº¡n         TÃªn pháº§n         Ä�á»‹a chá»‰\n"
 
 #: merge.c:832
 #, c-format
@@ -3542,17 +3541,17 @@ msgstr "%s: KhÃ´ng cÃ³ lÃµi nÃ o Ä‘á»ƒ c
 #: mmo.c:1187
 #, c-format
 msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n"
-msgstr "%s: táº­p tin mmo khÃ´ng há»£p lá»‡: giÃ¡ trá»‹ khá»Ÿi táº¡o cho $255 khÃ´ng pháº£i lÃ  \"Main\" (chÃ­nh)\n"
+msgstr "%s: táº­p tin mmo khÃ´ng há»£p lá»‡: giÃ¡ trá»‹ khá»Ÿi táº¡o cho $255 khÃ´ng pháº£i lÃ  â€œMainâ€� (chÃ­nh)\n"
 
 #: mmo.c:1332
 #, c-format
 msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
-msgstr "%s: dÃ£y kÃ½ tá»± rá»™ng khÃ´ng Ä‘Æ°á»£c há»— trá»£ 0x%02X 0x%02X Ä‘áº±ng sau tÃªn kÃ½ hiá»‡u báº¯t Ä‘áº§u vá»›i \"%s\"\n"
+msgstr "%s: dÃ£y kÃ½ tá»± rá»™ng khÃ´ng Ä‘Æ°á»£c há»— trá»£ 0x%02X 0x%02X Ä‘áº±ng sau tÃªn kÃ½ hiá»‡u báº¯t Ä‘áº§u vá»›i â€œ%sâ€�\n"
 
 #: mmo.c:1565
 #, c-format
 msgid "%s: invalid mmo file: unsupported lopcode `%d'\n"
-msgstr "%s: táº­p tin mmo khÃ´ng há»£p lá»‡: mÃ£ lop khÃ´ng Ä‘Æ°á»£c há»— trá»£ \"%d\"\n"
+msgstr "%s: táº­p tin mmo khÃ´ng há»£p lá»‡: mÃ£ lop khÃ´ng Ä‘Æ°á»£c há»— trá»£ â€œ%dâ€�\n"
 
 #: mmo.c:1575
 #, c-format
@@ -3567,7 +3566,7 @@ msgstr "%s: táº­p tin mmo khÃ´ng há»£p l
 #: mmo.c:1657
 #, c-format
 msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
-msgstr "%s: táº­p tin mmo khÃ´ng há»£p lá»‡: Ä‘á»£i z=1 hoáº·c z=2, cÃ²n nháº­n z=%d Ä‘á»‘i vá»›i lop_fixo\n"
+msgstr "%s: táº­p tin mmo khÃ´ng há»£p lá»‡: cáº§n z=1 hoáº·c z=2, nhÆ°ng nháº­n z=%d Ä‘á»‘i vá»›i lop_fixo\n"
 
 #: mmo.c:1696
 #, c-format
@@ -3592,7 +3591,7 @@ msgstr "%s: khÃ´ng thá»ƒ cáº¥p phÃ¡t tÃª
 #: mmo.c:1771
 #, c-format
 msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
-msgstr "%s: táº­p tin mmo khÃ´ng há»£p lá»‡: táº­p tin sá»‘ %d \"%s\" Ä‘Ã£ Ä‘Æ°á»£c nháº­p vÃ o dáº¡ng \"%s\"\n"
+msgstr "%s: táº­p tin mmo khÃ´ng há»£p lá»‡: táº­p tin sá»‘ %d â€œ%sâ€� Ä‘Ã£ Ä‘Æ°á»£c nháº­p vÃ o dáº¡ng â€œ%sâ€�\n"
 
 #: mmo.c:1784
 #, c-format
@@ -3617,17 +3616,17 @@ msgstr "%s: táº­p tin mmo khÃ´ng há»£p l
 #: mmo.c:2649
 #, c-format
 msgid "%s: invalid symbol table: duplicate symbol `%s'\n"
-msgstr "%s: báº£ng kÃ½ hiá»‡u khÃ´ng há»£p lá»‡: kÃ½ hiá»‡u trÃ¹ng \"%s\"\n"
+msgstr "%s: báº£ng kÃ½ hiá»‡u khÃ´ng há»£p lá»‡: kÃ½ hiá»‡u trÃ¹ng â€œ%sâ€�\n"
 
 #: mmo.c:2889
 #, c-format
 msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n"
-msgstr "%s: Sai xÃ¡c Ä‘á»‹nh kÃ½ hiá»‡u: \"Main\" (chÃ­nh) Ä‘Æ°á»£c Ä‘áº·t thÃ nh %s hÆ¡n lÃ  Ä‘á»‹a chá»‰ Ä‘áº§u %s\n"
+msgstr "%s: Sai xÃ¡c Ä‘á»‹nh kÃ½ hiá»‡u: â€œMainâ€� (chÃ­nh) Ä‘Æ°á»£c Ä‘áº·t thÃ nh %s hÆ¡n lÃ  Ä‘á»‹a chá»‰ Ä‘áº§u %s\n"
 
 #: mmo.c:2981
 #, c-format
 msgid "%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d.  Only `Main' will be emitted.\n"
-msgstr "%s: cáº£nh bÃ¡o: báº£ng kÃ½ hiá»‡u quÃ¡ lá»›n cho mmo, lá»›n hÆ¡n 65535 tá»« 32-bit: %d, nÃªn chá»‰ phÃ¡t ra \"Main\" (chÃ­nh).\n"
+msgstr "%s: cáº£nh bÃ¡o: báº£ng kÃ½ hiá»‡u quÃ¡ lá»›n cho mmo, lá»›n hÆ¡n 65535 tá»« 32-bit: %d, nÃªn chá»‰ phÃ¡t ra â€œMainâ€� (chÃ­nh).\n"
 
 #: mmo.c:3026
 #, c-format
@@ -3657,7 +3656,7 @@ msgstr "%s: Ä‘á»‹a chá»‰ Ä‘áº§u khÃ´ng h
 #: oasys.c:882
 #, c-format
 msgid "%s: can not represent section `%s' in oasys"
-msgstr "%s: khÃ´ng thá»ƒ Ä‘áº¡i diá»‡n pháº§n \"%s\" theo oasys"
+msgstr "%s: khÃ´ng thá»ƒ Ä‘áº¡i diá»‡n pháº§n â€œ%sâ€� theo oasys"
 
 #: osf-core.c:140
 #, c-format
@@ -3666,7 +3665,7 @@ msgstr "Kiá»ƒu pháº§n táº­p tin lÃµi OSF
 
 #: pe-mips.c:607
 msgid "%B: `ld -r' not supported with PE MIPS objects\n"
-msgstr "%B: \"ld -r\" khÃ´ng Ä‘Æ°á»£c há»— trá»£ vá»›i Ä‘á»‘i tÆ°á»£ng MIPS PE\n"
+msgstr "%B: â€œld -râ€� khÃ´ng Ä‘Æ°á»£c há»— trá»£ vá»›i Ä‘á»‘i tÆ°á»£ng MIPS PE\n"
 
 #. OK, at this point the following variables are set up:
 #. src = VMA of the memory we're fixing up
@@ -3765,7 +3764,7 @@ msgstr "TrÆ°á»�ng cá»�          = 0x%.2x
 #: ppcboot.c:427
 #, c-format
 msgid "Partition name      = \"%s\"\n"
-msgstr "TÃªn phÃ¢n vÃ¹ng      = \"%s\"\n"
+msgstr "TÃªn phÃ¢n vÃ¹ng      = â€œ%sâ€�\n"
 
 #: ppcboot.c:446
 #, c-format
@@ -3815,7 +3814,7 @@ msgstr "som_sizeof_headers chÆ°a Ä‘Æ°á»£
 
 #: srec.c:261
 msgid "%B:%d: Unexpected character `%s' in S-record file\n"
-msgstr "%B:%d Gáº·p kÃ½ tá»± báº¥t thÆ°á»�ng \"%s\" trong táº­p tin S-record\n"
+msgstr "%B:%d Gáº·p kÃ½ tá»± báº¥t thÆ°á»�ng â€œ%sâ€� trong táº­p tin S-record\n"
 
 #: srec.c:567 srec.c:600
 msgid "%B:%d: Bad checksum in S-record file\n"
@@ -3975,7 +3974,7 @@ msgstr "Pháº§n báº£ng má»¥c lá»¥c khÃ´ng
 
 #: vms-alpha.c:5109
 msgid "Relocation for non-REL psect"
-msgstr "TÃ¡i Ä‘á»‹nh vá»‹ cho 'non-REL psect'"
+msgstr "TÃ¡i Ä‘á»‹nh vá»‹ cho â€œnon-REL psectâ€�"
 
 #: vms-alpha.c:5156
 #, c-format
@@ -4005,17 +4004,17 @@ msgstr "   kÃ­ch thÆ°á»›c báº£n ghi tá»‘
 #: vms-alpha.c:5685
 #, c-format
 msgid "   module name    : %.*s\n"
-msgstr "   tÃªn mÃ´-Ä‘un    : %.*s\n"
+msgstr "   tÃªn mÃ´-Ä‘un     : %.*s\n"
 
 #: vms-alpha.c:5687
 #, c-format
 msgid "   module version : %.*s\n"
-msgstr "    phiÃªn báº£n mÃ´Ä‘un : %.*s\n"
+msgstr "  phiÃªn báº£n mÃ´Ä‘un : %.*s\n"
 
 #: vms-alpha.c:5689
 #, c-format
 msgid "   compile date   : %.17s\n"
-msgstr "   ngÃ y dá»‹ch   : %.17s\n"
+msgstr "   ngÃ y dá»‹ch      : %.17s\n"
 
 #: vms-alpha.c:5694
 #, c-format
@@ -4025,7 +4024,7 @@ msgstr "TÃªn ngÃ´n ngá»¯ bá»™ vi xá»­ lÃ
 #: vms-alpha.c:5695
 #, c-format
 msgid "   language name: %.*s\n"
-msgstr "   tÃªn ngÃ´n ngá»¯: %.*s\n"
+msgstr "    tÃªn ngÃ´n ngá»¯: %.*s\n"
 
 #: vms-alpha.c:5702
 #, c-format
@@ -4045,7 +4044,7 @@ msgstr "Pháº§n Ä‘áº§u Chá»¯ TiÃªu Ä‘á»�\
 #: vms-alpha.c:5711
 #, c-format
 msgid "   title: %.*s\n"
-msgstr "   tiÃªu Ä‘á»�: %.*s\n"
+msgstr " tiÃªu Ä‘á»�: %.*s\n"
 
 #: vms-alpha.c:5718
 #, c-format
@@ -4070,7 +4069,7 @@ msgstr "  EEOM (dÃ i=%u):\n"
 #: vms-alpha.c:5736
 #, c-format
 msgid "   number of cond linkage pairs: %u\n"
-msgstr "   sá»‘ lÆ°á»£ng cá»§a cáº·p liÃªn káº¿t \"cond\": %u\n"
+msgstr "   sá»‘ lÆ°á»£ng cá»§a cáº·p liÃªn káº¿t â€œcondâ€�: %u\n"
 
 #: vms-alpha.c:5738
 #, c-format
@@ -4085,12 +4084,12 @@ msgstr "   cá»� chuyá»ƒn Ä‘á»•i Ä‘á»‹a c
 #: vms-alpha.c:5743
 #, c-format
 msgid "   transfer addr psect: %u\n"
-msgstr "   chuyá»ƒn Ä‘á»•i \"addr psect\": %u\n"
+msgstr "  chuyá»ƒn Ä‘á»•i â€œaddr psectâ€�: %u\n"
 
 #: vms-alpha.c:5745
 #, c-format
 msgid "   transfer address   : 0x%08x\n"
-msgstr "   Ä‘á»‹a chá»‰ chuyá»ƒn Ä‘á»•i   : 0x%08x\n"
+msgstr "   Ä‘á»‹a chá»‰ chuyá»ƒn Ä‘á»•i : 0x%08x\n"
 
 #: vms-alpha.c:5754
 msgid " WEAK"
@@ -4190,12 +4189,12 @@ msgstr "PSC - Pháº§n Ä‘á»‹nh nghÄ©a chÆ°
 #: vms-alpha.c:5833 vms-alpha.c:5850
 #, c-format
 msgid "   alignment  : 2**%u\n"
-msgstr "   sáº¯p hÃ ng  : 2**%u\n"
+msgstr "   sáº¯p hÃ ng   : 2**%u\n"
 
 #: vms-alpha.c:5834 vms-alpha.c:5851
 #, c-format
 msgid "   flags      : 0x%04x"
-msgstr "   cá»�      : 0x%04x"
+msgstr "      cá»�      : 0x%04x"
 
 #: vms-alpha.c:5838
 #, c-format
@@ -4205,7 +4204,7 @@ msgstr "   alloc (dÃ i): %u (0x%08x)\n"
 #: vms-alpha.c:5839 vms-alpha.c:5896 vms-alpha.c:5945
 #, c-format
 msgid "   name       : %.*s\n"
-msgstr "   tÃªn       : %.*s\n"
+msgstr "    tÃªn       : %.*s\n"
 
 #: vms-alpha.c:5849
 #, c-format
@@ -4220,17 +4219,17 @@ msgstr "   alloc (dÃ i)   : %u (0x%08x)\
 #: vms-alpha.c:5856
 #, c-format
 msgid "   image offset  : 0x%08x\n"
-msgstr "   khoáº£ng bÃ¹ áº£nh  : 0x%08x\n"
+msgstr "   khoáº£ng bÃ¹ áº£nh : 0x%08x\n"
 
 #: vms-alpha.c:5858
 #, c-format
 msgid "   symvec offset : 0x%08x\n"
-msgstr "   khoáº£ng bÃ¹ symvec: 0x%08x\n"
+msgstr " khoáº£ng bÃ¹ symvec: 0x%08x\n"
 
 #: vms-alpha.c:5860
 #, c-format
 msgid "   name          : %.*s\n"
-msgstr "   tÃªn          : %.*s\n"
+msgstr "    tÃªn          : %.*s\n"
 
 #: vms-alpha.c:5873
 #, c-format
@@ -4240,7 +4239,7 @@ msgstr "SYM - Ä�á»‹nh nghÄ©a kÃ½ hiá»‡u 
 #: vms-alpha.c:5874 vms-alpha.c:5934 vms-alpha.c:5955 vms-alpha.c:5974
 #, c-format
 msgid "   flags: 0x%04x"
-msgstr "   cÃ¡c cá»�: 0x%04x"
+msgstr "  cÃ¡c cá»�: 0x%04x"
 
 #: vms-alpha.c:5877
 #, c-format
@@ -4265,7 +4264,7 @@ msgstr "   chá»‰ má»¥c psect : %u\n"
 #: vms-alpha.c:5888 vms-alpha.c:5964 vms-alpha.c:5983
 #, c-format
 msgid "   name        : %.*s\n"
-msgstr "   tÃªn        : %.*s\n"
+msgstr "   tÃªn         : %.*s\n"
 
 #: vms-alpha.c:5895
 #, c-format
@@ -4280,17 +4279,17 @@ msgstr "IDC - Kiá»ƒm tra tÃ­nh nháº¥t qu
 #: vms-alpha.c:5908
 #, c-format
 msgid "   flags         : 0x%08x"
-msgstr "   cÃ¡c cá»�         : 0x%08x"
+msgstr "   cÃ¡c cá»�        : 0x%08x"
 
 #: vms-alpha.c:5912
 #, c-format
 msgid "   id match      : %x\n"
-msgstr "   id khá»›p      : %x\n"
+msgstr "   id khá»›p       : %x\n"
 
 #: vms-alpha.c:5914
 #, c-format
 msgid "   error severity: %x\n"
-msgstr "   lá»—i nghiÃªm trá»�ng: %x\n"
+msgstr " lá»—i nghiÃªm trá»�ng: %x\n"
 
 #: vms-alpha.c:5917
 #, c-format
@@ -4305,7 +4304,7 @@ msgstr "   tÃªn Ä‘á»‘i tÆ°á»£ng : %.*s\n
 #: vms-alpha.c:5922
 #, c-format
 msgid "   binary ident  : 0x%08x\n"
-msgstr "   ident nhá»‹ phÃ¢n  : 0x%08x\n"
+msgstr "   ident nhá»‹ phÃ¢n: 0x%08x\n"
 
 #: vms-alpha.c:5925
 #, c-format
@@ -4325,7 +4324,7 @@ msgstr "   khoáº£ng bÃ¹ vÃ©c-tÆ¡ kÃ½ hiá
 #: vms-alpha.c:5939
 #, c-format
 msgid "   entry point: 0x%08x\n"
-msgstr "   Ä‘iá»ƒm vÃ o: 0x%08x\n"
+msgstr "      Ä‘iá»ƒm vÃ o: 0x%08x\n"
 
 #: vms-alpha.c:5941
 #, c-format
@@ -4958,12 +4957,12 @@ msgstr "   cá»�: %d, ngÃ´n ngá»¯: %u, sá
 #: vms-alpha.c:6940 vms-alpha.c:7206
 #, c-format
 msgid "   module name: %.*s\n"
-msgstr "    tÃªn mÃ´-Ä‘un    : %.*s\n"
+msgstr "    tÃªn mÃ´-Ä‘un: %.*s\n"
 
 #: vms-alpha.c:6943
 #, c-format
 msgid "   compiler   : %.*s\n"
-msgstr "   trÃ¬nh dá»‹ch   : %.*s\n"
+msgstr "   trÃ¬nh dá»‹ch : %.*s\n"
 
 #: vms-alpha.c:6948
 #, c-format
@@ -4977,12 +4976,12 @@ msgstr "rtnbeg\n"
 #: vms-alpha.c:6956
 #, c-format
 msgid "    flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
-msgstr "    cá»�: %u, Ä‘á»‹a chá»‰: 0x%08x, Ä‘á»‹a chá»‰ pd: 0x%08x\n"
+msgstr "       cá»�: %u, Ä‘á»‹a chá»‰: 0x%08x, Ä‘á»‹a chá»‰ pd: 0x%08x\n"
 
 #: vms-alpha.c:6961
 #, c-format
 msgid "    routine name: %.*s\n"
-msgstr "    tÃªn thá»§ tá»¥c: %.*s\n"
+msgstr "     tÃªn thá»§ tá»¥c: %.*s\n"
 
 #: vms-alpha.c:6969
 #, c-format
@@ -4997,12 +4996,12 @@ msgstr "prolog: Ä‘á»‹a chá»‰ bkpt 0x%08x
 #: vms-alpha.c:6985
 #, c-format
 msgid "epilog: flags: %u, count: %u\n"
-msgstr "epilog: cá»�: %u, sá»‘ lÆ°á»£ng: %u\n"
+msgstr "epilog:    cá»�: %u,slÆ°á»£ng: %u\n"
 
 #: vms-alpha.c:6994
 #, c-format
 msgid "blkbeg: address: 0x%08x, name: %.*s\n"
-msgstr "blkbeg: Ä‘á»‹a chá»‰: 0x%08x, tÃªn: %.*s\n"
+msgstr "blkbeg: Ä‘á»‹a chá»‰: 0x%08x,  tÃªn: %.*s\n"
 
 #: vms-alpha.c:7003
 #, c-format
@@ -5032,12 +5031,12 @@ msgstr "recend\n"
 #: vms-alpha.c:7035
 #, c-format
 msgid "enumbeg, len: %u, name: %.*s\n"
-msgstr "enumbeg, dÃ i: %u, tÃªn: %.*s\n"
+msgstr "enumbeg, dÃ i: %u,  tÃªn: %.*s\n"
 
 #: vms-alpha.c:7039
 #, c-format
 msgid "enumelt, name: %.*s\n"
-msgstr "enumelt, tÃªn: %.*s\n"
+msgstr "enumelt,  tÃªn: %.*s\n"
 
 #: vms-alpha.c:7043
 #, c-format
@@ -5157,7 +5156,7 @@ msgstr "   rms: cdt: 0x%08x %08x, ebk: 0
 #: vms-alpha.c:7203
 #, c-format
 msgid "   filename   : %.*s\n"
-msgstr "   tÃªn táº­p tin   : %.*s\n"
+msgstr "   tÃªn táº­p tin: %.*s\n"
 
 #: vms-alpha.c:7212
 #, c-format
@@ -5411,7 +5410,7 @@ msgstr "Hoáº¡t hÃ³a áº£nh:  (kÃ­ch thÆ°á
 #: vms-alpha.c:7512
 #, c-format
 msgid " First address : 0x%08x 0x%08x\n"
-msgstr " Ä�á»‹a chá»‰ Ä‘áº§u tiÃªn : 0x%08x 0x%08x\n"
+msgstr "Ä�á»‹a chá»‰ Ä‘áº§u tiÃªn: 0x%08x 0x%08x\n"
 
 #: vms-alpha.c:7515
 #, c-format
@@ -5431,7 +5430,7 @@ msgstr "Ä�á»‹a chá»‰ thá»© tÆ°: 0x%08x 0
 #: vms-alpha.c:7524
 #, c-format
 msgid " Shared image  : 0x%08x 0x%08x\n"
-msgstr "áº¢nh Ä‘Æ°á»£c chia sáº»  : 0x%08x 0x%08x\n"
+msgstr "áº¢nh Ä‘Æ°á»£c chia sáº»: 0x%08x 0x%08x\n"
 
 #: vms-alpha.c:7535
 #, c-format
@@ -5446,27 +5445,27 @@ msgstr "Ä�á»‹nh danh áº£nh: (sá»‘ lá»›n:
 #: vms-alpha.c:7541
 #, c-format
 msgid " image name       : %.*s\n"
-msgstr " tÃªn áº£nh       : %.*s\n"
+msgstr " tÃªn áº£nh          : %.*s\n"
 
 #: vms-alpha.c:7543
 #, c-format
 msgid " link time        : %s\n"
-msgstr " thá»�i gian liÃªn káº¿t        : %s\n"
+msgstr " thá»�i gian liÃªn káº¿t: %s\n"
 
 #: vms-alpha.c:7545
 #, c-format
 msgid " image ident      : %.*s\n"
-msgstr " ident áº£nh      : %.*s\n"
+msgstr " ident áº£nh        : %.*s\n"
 
 #: vms-alpha.c:7547
 #, c-format
 msgid " linker ident     : %.*s\n"
-msgstr " ident bá»™ liÃªn káº¿t     : %.*s\n"
+msgstr " ident bá»™ liÃªn káº¿t: %.*s\n"
 
 #: vms-alpha.c:7549
 #, c-format
 msgid " image build ident: %.*s\n"
-msgstr " ident dá»±ng áº£nh: %.*s\n"
+msgstr " ident dá»±ng áº£nh   : %.*s\n"
 
 #: vms-alpha.c:7559
 #, c-format
@@ -5665,7 +5664,7 @@ msgstr "áº¢nh cÃ³ thá»ƒ chia sáº»:\n"
 #: vms-alpha.c:7820
 #, c-format
 msgid "  %u: size: %u, flags: 0x%02x, name: %.*s\n"
-msgstr "  %u: kÃ­ch thÆ°á»›c: %u, cá»�: 0x%02x, tÃªn: %.*s\n"
+msgstr "  %u:   cá»¡: %u,    cá»�: 0x%02x,  tÃªn: %.*s\n"
 
 #: vms-alpha.c:7827
 #, c-format
@@ -5720,7 +5719,7 @@ msgstr "%P: chá»‰ vÃ o nhiá»�u Ä‘iá»ƒm: 
 #: vms-lib.c:1423
 #, c-format
 msgid "could not open shared image '%s' from '%s'"
-msgstr "khÃ´ng thá»ƒ má»Ÿ áº£nh Ä‘Æ°á»£c chia sáº» '%s' tá»« '%s'"
+msgstr "khÃ´ng thá»ƒ má»Ÿ áº£nh Ä‘Æ°á»£c chia sáº» â€œ%sâ€� tá»« â€œ%sâ€�"
 
 #: vms-misc.c:360
 msgid "_bfd_vms_output_counted called with zero bytes"
@@ -5742,31 +5741,31 @@ msgstr "%s Ä‘á»‘i tÆ°á»£ng Ä‘á»™ng khÃ´n
 
 #: xcofflink.c:1416
 msgid "%B: `%s' has line numbers but no enclosing section"
-msgstr "%B: \"%s\" cÃ³ sá»‘ thá»© tá»± dÃ²ng mÃ  khÃ´ng cÃ³ pháº§n bao bá»�c"
+msgstr "%B: â€œ%sâ€� cÃ³ sá»‘ thá»© tá»± dÃ²ng mÃ  khÃ´ng cÃ³ pháº§n bao bá»�c"
 
 #: xcofflink.c:1468
 msgid "%B: class %d symbol `%s' has no aux entries"
-msgstr "%B: háº¡ng %d kÃ½ hiá»‡u \"%s\" khÃ´ng cÃ³ má»¥c nháº­p phá»¥"
+msgstr "%B: háº¡ng %d kÃ½ hiá»‡u â€œ%sâ€� khÃ´ng cÃ³ má»¥c nháº­p phá»¥"
 
 #: xcofflink.c:1490
 msgid "%B: symbol `%s' has unrecognized csect type %d"
-msgstr "%B: kÃ½ hiá»‡u \"%s\" cÃ³ kiá»ƒu csect khÃ´ng Ä‘Æ°á»£c nháº­n ra %d"
+msgstr "%B: kÃ½ hiá»‡u â€œ%sâ€� cÃ³ kiá»ƒu csect khÃ´ng Ä‘Æ°á»£c nháº­n ra %d"
 
 #: xcofflink.c:1502
 msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d"
-msgstr "%B: kÃ½ hiá»‡u XTY_ER sai \"%s\" háº¡ng %d scnum %d scnlen %d"
+msgstr "%B: kÃ½ hiá»‡u XTY_ER sai â€œ%sâ€� háº¡ng %d scnum %d scnlen %d"
 
 #: xcofflink.c:1531
 msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %d"
-msgstr "%B: kÃ½ hiá»‡u XMC_TC0 \"%s\" lÃ  háº¡ng %d scnlen %d"
+msgstr "%B: kÃ½ hiá»‡u XMC_TC0 â€œ%sâ€� lÃ  háº¡ng %d scnlen %d"
 
 #: xcofflink.c:1677
 msgid "%B: csect `%s' not in enclosing section"
-msgstr "%B: csect \"%s\" khÃ´ng pháº£i trong pháº§n bao bá»�c"
+msgstr "%B: csect â€œ%sâ€� khÃ´ng pháº£i trong pháº§n bao bá»�c"
 
 #: xcofflink.c:1784
 msgid "%B: misplaced XTY_LD `%s'"
-msgstr "%B: khÃ´ng Ä‘Ãºng chá»— XTY_LD \"%s\""
+msgstr "%B: khÃ´ng Ä‘Ãºng chá»— XTY_LD â€œ%sâ€�"
 
 #: xcofflink.c:2103
 msgid "%B: reloc %s:%d not in csect"
@@ -5780,7 +5779,7 @@ msgstr "%s: khÃ´ng cÃ³ kÃ½ hiá»‡u nhÆ° v
 #: xcofflink.c:3299
 #, c-format
 msgid "warning: attempt to export undefined symbol `%s'"
-msgstr "cáº£nh bÃ¡o: thá»­ xuáº¥t kÃ½ hiá»‡u chÆ°a Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh \"%s\""
+msgstr "cáº£nh bÃ¡o: thá»­ xuáº¥t kÃ½ hiá»‡u chÆ°a Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh â€œ%sâ€�"
 
 #: xcofflink.c:3678
 msgid "error: undefined symbol __rtinit"
@@ -5788,11 +5787,11 @@ msgstr "lá»—i: chÆ°a xÃ¡c Ä‘á»‹nh kÃ½ hi
 
 #: xcofflink.c:4057
 msgid "%B: loader reloc in unrecognized section `%s'"
-msgstr "%B: gáº·p sá»± Ä‘á»‹nh vá»‹ láº¡i bá»™ náº¡p trong pháº§n khÃ´ng Ä‘Æ°á»£c nháº­n ra \"%s\""
+msgstr "%B: gáº·p sá»± Ä‘á»‹nh vá»‹ láº¡i bá»™ náº¡p trong pháº§n khÃ´ng Ä‘Æ°á»£c nháº­n ra â€œ%sâ€�"
 
 #: xcofflink.c:4068
 msgid "%B: `%s' in loader reloc but not loader sym"
-msgstr "%B: \"%s\" trong Ä‘á»‹nh vá»‹ láº¡i bá»™ náº¡p nhÆ°ng khÃ´ng pháº£i liÃªn káº¿t má»�m Ä‘áº¿n bá»™ náº¡p"
+msgstr "%B: â€œ%sâ€� trong Ä‘á»‹nh vá»‹ láº¡i bá»™ náº¡p nhÆ°ng khÃ´ng pháº£i liÃªn káº¿t má»�m Ä‘áº¿n bá»™ náº¡p"
 
 #: xcofflink.c:4084
 msgid "%B: loader reloc in read-only section %A"
@@ -5801,11 +5800,11 @@ msgstr "%B: Ä‘á»‹nh vá»‹ láº¡i bá»™ náº¡
 #: xcofflink.c:5106
 #, c-format
 msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"
-msgstr "TrÃ n TOC: 0x%lx > 0x10000; hÃ£y thá»­ \"-mminimal-toc\" khi biÃªn dá»‹ch"
+msgstr "TrÃ n TOC: 0x%lx > 0x10000; hÃ£y thá»­ â€œ-mminimal-tocâ€� khi biÃªn dá»‹ch"
 
 #: elf32-ia64.c:628 elf64-ia64.c:628
 msgid "%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch."
-msgstr "%B: KhÃ´ng thá»ƒ giáº£m nháº¹ br á»Ÿ 0x%lx trong pháº§n \"%A\". HÃ£y dÃ¹ng brl hoáº·c nhÃ¡nh giÃ¡n tiáº¿p."
+msgstr "%B: KhÃ´ng thá»ƒ giáº£m nháº¹ br á»Ÿ 0x%lx trong pháº§n â€œ%Aâ€�. HÃ£y dÃ¹ng brl hoáº·c nhÃ¡nh giÃ¡n tiáº¿p."
 
 #: elf32-ia64.c:2284 elf64-ia64.c:2284
 msgid "@pltoff reloc against local symbol"
@@ -5823,11 +5822,11 @@ msgstr "%s: __gp khÃ´ng tráº£i ra Ä‘oáº¡
 
 #: elf32-ia64.c:3965 elf64-ia64.c:3965
 msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'"
-msgstr "%B: mÃ£ khÃ¡c pic vá»›i Ä‘á»‹nh vá»‹ láº¡i imm so vá»›i kÃ½ hiá»‡u Ä‘á»™ng \"%s\""
+msgstr "%B: mÃ£ khÃ¡c pic vá»›i Ä‘á»‹nh vá»‹ láº¡i imm so vá»›i kÃ½ hiá»‡u Ä‘á»™ng â€œ%sâ€�"
 
 #: elf32-ia64.c:4032 elf64-ia64.c:4032
 msgid "%B: @gprel relocation against dynamic symbol %s"
-msgstr "%B: Ä‘á»‹nh vá»‹ láº¡i @gprel so vá»›i kÃ½ hiá»‡u Ä‘á»™ng \"%s\""
+msgstr "%B: Ä‘á»‹nh vá»‹ láº¡i @gprel so vá»›i kÃ½ hiá»‡u Ä‘á»™ng â€œ%sâ€�"
 
 #: elf32-ia64.c:4095 elf64-ia64.c:4095
 msgid "%B: linking non-pic code in a position independent executable"
@@ -5851,11 +5850,11 @@ msgstr "Ä‘á»‹nh vá»‹ láº¡i khÃ´ng Ä‘Æ°á»
 
 #: elf32-ia64.c:4471 elf64-ia64.c:4471
 msgid "%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'."
-msgstr "%B: thiáº¿u pháº§n TLS Ä‘á»ƒ Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i \"%s\" á»Ÿ 0x%lx trong pháº§n \"%A\"."
+msgstr "%B: thiáº¿u pháº§n TLS Ä‘á»ƒ Ä‘á»‹nh vá»‹ láº¡i %s Ä‘á»‘i vá»›i â€œ%sâ€� á»Ÿ 0x%lx trong pháº§n â€œ%Aâ€�."
 
 #: elf32-ia64.c:4486 elf64-ia64.c:4486
 msgid "%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000)."
-msgstr "%B: KhÃ´ng thá»ƒ giáº£m nháº¹ br (%s) tá»›i \"%s\" táº¡i 0x%lx trong pháº§n \"%A\" vá»›i kÃ­ch cá»¡ 0x%lx (> 0x1000000)."
+msgstr "%B: KhÃ´ng thá»ƒ giáº£m nháº¹ br (%s) tá»›i â€œ%sâ€� táº¡i 0x%lx trong pháº§n â€œ%Aâ€� vá»›i kÃ­ch cá»¡ 0x%lx (> 0x1000000)."
 
 #: elf32-ia64.c:4748 elf64-ia64.c:4748
 msgid "%B: linking trap-on-NULL-dereference with non-trapping files"
@@ -6278,16 +6277,16 @@ msgstr "%B: khÃ´ng thá»ƒ Ä‘iá»�n vÃ o Da
 #~ msgstr "%B(%A+0x%lx): khÃ´ng thá»ƒ tá»›i %s"
 
 #~ msgid "%s: invalid DSO for symbol `%s' definition"
-#~ msgstr "%s: DSO khÃ´ng há»£p lá»‡ cho lá»�i Ä‘á»‹nh nghÄ©a kÃ½ hiá»‡u \"%s\""
+#~ msgstr "%s: DSO khÃ´ng há»£p lá»‡ cho lá»�i Ä‘á»‹nh nghÄ©a kÃ½ hiá»‡u â€œ%sâ€�"
 
 #~ msgid "%B: %A+0x%lx: jump to stub routine which is not jal"
 #~ msgstr "%B: %A+0x%lx: nháº£y tá»›i hÃ m máº©u mÃ  khÃ´ng pháº£i jal"
 
 #~ msgid "%B: warning: ignoring duplicate section `%A'\n"
-#~ msgstr "%B: cáº£nh bÃ¡o: Ä‘ang bá»� qua pháº§n trÃ¹ng \"%A\"\n"
+#~ msgstr "%B: cáº£nh bÃ¡o: Ä‘ang bá»� qua pháº§n trÃ¹ng â€œ%Aâ€�\n"
 
 #~ msgid "%B: warning: duplicate section `%A' has different size\n"
-#~ msgstr "%B: cáº£nh bÃ¡o: pháº§n trÃ¹ng \"%A\" cÃ³ kÃ­ch cá»¡ khÃ¡c\n"
+#~ msgstr "%B: cáº£nh bÃ¡o: pháº§n trÃ¹ng â€œ%Aâ€� cÃ³ kÃ­ch cá»¡ khÃ¡c\n"
 
 #~ msgid "bfd_make_section (%s) failed"
 #~ msgstr "bfd_make_section (%s) bá»‹ lá»—i"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/zh_CN.gmo ./bfd/po/zh_CN.gmo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/zh_CN.gmo	2018-01-02 02:07:01.000000000 +0000
+++ ./bfd/po/zh_CN.gmo	2018-01-09 02:08:39.000000000 +0000
@@ -6,15 +6,18 @@
 'APg‚‘ª&ÀTç2<(o[˜>ôI3.}.¬=Û./H@x)¹ã(*>0P)�«'Ê&ò95S/‰	¹Ã/Õ%9Nc	€+Š#¶Ú.ö4%	Zdw‰™°#Æ$ê%55k
 €‹¤¿Ôáð/8>w"–I¹  $( M j | Ž Ÿ 	¦ ° ¹ 
 Ð "Û %þ )$!/N!~!.�!,¿!ì!:"%C"%i"�""¨"Ë"ê"ó"*#9#K#c#v#/ˆ#¸#Ê#Û#û#$*$%@$f$y$–$J³$Jþ$JI%I”%:Þ%F&7`&˜&¸&Ê&Ü&ô&-'+4'+`'	Œ'	–'
- ' «'
Ì'Ú'í'$
("2(U(,s( (*°(Û(ï()).)E)V)q)0x)©)
±)¿)Ù)ð)**0*I*^*p*ƒ*—*«*Á*!×*0ù*=*+Åh+.-B-V-)i-“-­-Ê-ä-"÷-"."=.`.9o.©. ¸.Ù.ë.ý./0/D/T/
d/	r/
|/
Š/
-˜/
-£/
-®/¹/É/'è/'080K0^0}0“0¦0»0
-Ê0Õ0
-è0ó0$1(151N1g1x1‘1*¤1VÏ1;&2+b2_Ž2;î2D*35o35¥34Û3!4-243`4)”4¾4"Û4þ4
5-5/J5 z5'›5'Ã56ë50"63S6‡6�6&¤6Ë6Û6ë6ú6	7 7:72C7v7•79±7Bë7.8;8O8a8n8�8)Ž8'¸8à8?9@9
-U9`9|9˜9«9¸9È98å90:O:"e:Aˆ:Ê:ß:$ï:;';;;K;X;_;	k;u;	‘;›;*´;$ß;*</<-A<+o<›<:²<"í<"=3=!H=j=�=ˆ=/�=Í=ß=ï=ü=!	>+>
->>I>c>{>”>,­>Ú>#ó>?M4?>‚?>Á?>@,?@Rl@4¿@ô@A#A5ANA(aA&ŠA&±A	ØA	âA
-ìA$÷AB)BCB!bB!„B¦B*ÅBðB+ýB)C<CRChC}C•C¥C¾C-ÅCóCúCD#D>DTDpD†D�D²DÄD×DëDÿDE+E/JE8zEˆ‚L±OŒ¤S‰KIR˜Ž©ÇÒÎ_6]4Ï¨šE¼w0:9
­uva'º=eË½J� ²5Áq)Cž°— Ä¡¯«�^1´n&Æ�*’¹¶“t$\®VrD•ÅA‘i[GBÖ/8MŸx.bX¢@†sQ`g™Ô#Uyœ{HpY–W�|7×ƒ�N(	Â<§hÕ3l€‡o¬ÓÉc»,µ¾+·d"„ÃP
+ ' «'
Ì'Ú'í'$
("2(U(,s( (*°(Û(ï()).)E)V)q)0x)©)
±)¿)Ù)ð)**0*I*^*p*ƒ*—*«*Á*!×*0ù*=*+h+n-‚-–-)©-Ó-í-
+.$."7."Z."}. .9¯.é. ø./+/=/\/p/„/”/
¤/	²/
¼/
Ê/
+Ø/
+ã/
+î/ù/	0'(0'P0x0‹0ž0½0Ó0æ0û0
+
+11
+(131$C1h1u1Ž1§1¸1Ñ1*ä1V2;f2+¢2_Î2;.3Dj35¯35å344!P4-r43 4)Ô4þ4"5>5M5-\5/Š5 º5'Û5'66+60b63“6Ç6Ð6&ä677+7:7I7 Y7z72ƒ7¶7Õ79ñ7B+8n8{8�8¡8®8Á8)Î8'ø8 9?@9€9
+•9 9¼9Ø9ë9ø9:8%:0^:�:"¥:AÈ:
+;;$/;T;g;{;‹;˜;Ÿ;	«;µ;	Ñ;Û;*ô;$<*D<o<-�<+¯<Û<:ò<"-="P=s=!ˆ=ª=Á=È=/Ý=
>>/><>!I>k>
+~>‰>£>»>Ô>,í>?#3?W?Mt?>Â?>@>@@,@R¬@4ÿ@4AQAcAuAŽA(¡A&ÊA&ñA	B	"B
+,B$7B\BiBƒB!¢B!ÄBæB*C0C+=CiC|C’C¨C½CÕCåCþC-D3D:DGDcD~D”D°DÆDÝDòDEE+E?EUEkE/ŠE8ºEˆ‚L±OŒ¤S‰KIR˜Ž©ÇÒÎ_6]4Ï¨šE¼w0:9
­uva'º=eË½J� ²5Áq)Cž°— Ä¡¯«�^1´n&Æ�*’¹¶“t$\®VrD•ÅA‘i[GBÖ/8MŸx.bX¢@†sQ`g™Ô#Uyœ{HpY–W�|7×ƒ�N(	Â<§hÕ3l€‡o¬ÓÉc»,µ¾+·d"„ÃP
 fÍmT£Ê>‹-¥Šª¿}¦?Ñ%;ÀkZFz!…”2Ì~¸³›jÐÈ	Export Address Table 			Name Pointer Table 		
 	DLL Name: %s
 
@@ -65,6 +68,7 @@ PO-Revision-Date: 2015-11-21 03:22-0500
 Last-Translator: Mingye Wang (Arthur2e5) <arthur200126@gmail.com>
 Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>
 Language: zh_CN
+X-Bugs: Report translation errors to the Language-Team address.
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/zh_CN.po ./bfd/po/zh_CN.po
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/po/zh_CN.po	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/po/zh_CN.po	2018-01-09 02:04:54.000000000 +0000
@@ -14,6 +14,7 @@ msgstr ""
 "Last-Translator: Mingye Wang (Arthur2e5) <arthur200126@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
 "Language: zh_CN\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/PORTING ./bfd/PORTING
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/PORTING	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/PORTING	2018-01-09 02:04:54.000000000 +0000
@@ -82,7 +82,7 @@ TARGETNAME
 	The name of the target, for run-time lookups.
 	Usually "a.out-<target>"
 
-Copyright (C) 2012-2017 Free Software Foundation, Inc.
+Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ppcboot.c ./bfd/ppcboot.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ppcboot.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/ppcboot.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for PPCbug boot records.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Written by Michael Meissner, Cygnus Support, <meissner@cygnus.com>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -354,8 +354,8 @@ ppcboot_set_section_contents (bfd *abfd,
       asection *s;
 
       /* The lowest section VMA sets the virtual address of the start
-         of the file.  We use the set the file position of all the
-         sections.  */
+	 of the file.  We use the set the file position of all the
+	 sections.  */
       low = abfd->sections->vma;
       for (s = abfd->sections->next; s != NULL; s = s->next)
 	if (s->vma < low)
@@ -461,6 +461,7 @@ ppcboot_bfd_print_private_bfd_data (bfd 
 #define ppcboot_section_already_linked \
   _bfd_generic_section_already_linked
 #define ppcboot_bfd_define_common_symbol bfd_generic_define_common_symbol
+#define ppcboot_bfd_define_start_stop bfd_generic_define_start_stop
 #define ppcboot_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #define ppcboot_bfd_link_add_symbols _bfd_generic_link_add_symbols
 #define ppcboot_bfd_link_just_syms _bfd_generic_link_just_syms
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ptrace-core.c ./bfd/ptrace-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/ptrace-core.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/ptrace-core.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD backend for core files which use the ptrace_user structure
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    The structure of this file is based on trad-core.c written by John Gilmore
    of Cygnus Support.
    Modified to work with the ptrace_user structure by Kevin A. Buettner.
@@ -174,7 +174,7 @@ const bfd_target core_ptrace_vec =
      HAS_LINENO | HAS_DEBUG |
      HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED),
     (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
-    0,			                                   /* symbol prefix */
+    0,							   /* symbol prefix */
     ' ',						   /* ar_pad_char */
     16,							   /* ar_max_namelen */
     NO_GET64, NO_GETS64, NO_PUT64,	/* 64 bit data */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/README ./bfd/README
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/README	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/README	2018-01-09 02:04:54.000000000 +0000
@@ -48,7 +48,7 @@ gcc manual.
 Bug reports without patches will be remembered, but they may never get
 fixed until somebody volunteers to fix them.
 
-Copyright (C) 2012-2017 Free Software Foundation, Inc.
+Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/reloc16.c ./bfd/reloc16.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/reloc16.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/reloc16.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* 8 and 16 bit COFF relocation functions, for BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/reloc.c ./bfd/reloc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/reloc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/reloc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for handling relocation entries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -50,6 +50,7 @@ SECTION
 #include "bfd.h"
 #include "bfdlink.h"
 #include "libbfd.h"
+#include "bfdver.h"
 /*
 DOCDD
 INODE
@@ -64,8 +65,9 @@ CODE_FRAGMENT
 .
 .typedef enum bfd_reloc_status
 .{
-.  {* No errors detected.  *}
-.  bfd_reloc_ok,
+.  {* No errors detected.  Note - the value 2 is used so that it
+.     will not be mistaken for the boolean TRUE or FALSE values.  *}
+.  bfd_reloc_ok = 2,
 .
 .  {* The relocation was performed, but there was an overflow.  *}
 .  bfd_reloc_overflow,
@@ -116,31 +118,31 @@ CODE_FRAGMENT
 /*
 DESCRIPTION
 
-        Here is a description of each of the fields within an <<arelent>>:
+	Here is a description of each of the fields within an <<arelent>>:
 
-        o <<sym_ptr_ptr>>
+	o <<sym_ptr_ptr>>
 
-        The symbol table pointer points to a pointer to the symbol
-        associated with the relocation request.  It is the pointer
-        into the table returned by the back end's
-        <<canonicalize_symtab>> action. @xref{Symbols}. The symbol is
-        referenced through a pointer to a pointer so that tools like
-        the linker can fix up all the symbols of the same name by
-        modifying only one pointer. The relocation routine looks in
-        the symbol and uses the base of the section the symbol is
-        attached to and the value of the symbol as the initial
-        relocation offset. If the symbol pointer is zero, then the
-        section provided is looked up.
-
-        o <<address>>
-
-        The <<address>> field gives the offset in bytes from the base of
-        the section data which owns the relocation record to the first
-        byte of relocatable information. The actual data relocated
-        will be relative to this point; for example, a relocation
-        type which modifies the bottom two bytes of a four byte word
-        would not touch the first byte pointed to in a big endian
-        world.
+	The symbol table pointer points to a pointer to the symbol
+	associated with the relocation request.  It is the pointer
+	into the table returned by the back end's
+	<<canonicalize_symtab>> action. @xref{Symbols}. The symbol is
+	referenced through a pointer to a pointer so that tools like
+	the linker can fix up all the symbols of the same name by
+	modifying only one pointer. The relocation routine looks in
+	the symbol and uses the base of the section the symbol is
+	attached to and the value of the symbol as the initial
+	relocation offset. If the symbol pointer is zero, then the
+	section provided is looked up.
+
+	o <<address>>
+
+	The <<address>> field gives the offset in bytes from the base of
+	the section data which owns the relocation record to the first
+	byte of relocatable information. The actual data relocated
+	will be relative to this point; for example, a relocation
+	type which modifies the bottom two bytes of a four byte word
+	would not touch the first byte pointed to in a big endian
+	world.
 
 	o <<addend>>
 
@@ -154,7 +156,7 @@ DESCRIPTION
 |                return foo[0x12345678];
 |                }
 
-        Could be compiled into:
+	Could be compiled into:
 
 |        linkw fp,#-4
 |        moveb @@#12345678,d0
@@ -162,8 +164,8 @@ DESCRIPTION
 |        unlk fp
 |        rts
 
-        This could create a reloc pointing to <<foo>>, but leave the
-        offset in the data, something like:
+	This could create a reloc pointing to <<foo>>, but leave the
+	offset in the data, something like:
 
 |RELOCATION RECORDS FOR [.text]:
 |offset   type      value
@@ -175,16 +177,16 @@ DESCRIPTION
 |0000000c 4e5e               ; unlk fp
 |0000000e 4e75               ; rts
 
-        Using coff and an 88k, some instructions don't have enough
-        space in them to represent the full address range, and
-        pointers have to be loaded in two parts. So you'd get something like:
+	Using coff and an 88k, some instructions don't have enough
+	space in them to represent the full address range, and
+	pointers have to be loaded in two parts. So you'd get something like:
 
 |        or.u     r13,r0,hi16(_foo+0x12345678)
 |        ld.b     r2,r13,lo16(_foo+0x12345678)
 |        jmp      r1
 
-        This should create two relocs, both pointing to <<_foo>>, and with
-        0x12340000 in their addend field. The data would consist of:
+	This should create two relocs, both pointing to <<_foo>>, and with
+	0x12340000 in their addend field. The data would consist of:
 
 |RELOCATION RECORDS FOR [.text]:
 |offset   type      value
@@ -195,18 +197,18 @@ DESCRIPTION
 |00000004 1c4d5678           ; ld.b r2,r13,0x5678
 |00000008 f400c001           ; jmp r1
 
-        The relocation routine digs out the value from the data, adds
-        it to the addend to get the original offset, and then adds the
-        value of <<_foo>>. Note that all 32 bits have to be kept around
-        somewhere, to cope with carry from bit 15 to bit 16.
-
-        One further example is the sparc and the a.out format. The
-        sparc has a similar problem to the 88k, in that some
-        instructions don't have room for an entire offset, but on the
-        sparc the parts are created in odd sized lumps. The designers of
-        the a.out format chose to not use the data within the section
-        for storing part of the offset; all the offset is kept within
-        the reloc. Anything in the data should be ignored.
+	The relocation routine digs out the value from the data, adds
+	it to the addend to get the original offset, and then adds the
+	value of <<_foo>>. Note that all 32 bits have to be kept around
+	somewhere, to cope with carry from bit 15 to bit 16.
+
+	One further example is the sparc and the a.out format. The
+	sparc has a similar problem to the 88k, in that some
+	instructions don't have room for an entire offset, but on the
+	sparc the parts are created in odd sized lumps. The designers of
+	the a.out format chose to not use the data within the section
+	for storing part of the offset; all the offset is kept within
+	the reloc. Anything in the data should be ignored.
 
 |        save %sp,-112,%sp
 |        sethi %hi(_foo+0x12345678),%g2
@@ -214,8 +216,8 @@ DESCRIPTION
 |        ret
 |        restore
 
-        Both relocs contain a pointer to <<foo>>, and the offsets
-        contain junk.
+	Both relocs contain a pointer to <<foo>>, and the offsets
+	contain junk.
 
 |RELOCATION RECORDS FOR [.text]:
 |offset   type      value
@@ -228,15 +230,15 @@ DESCRIPTION
 |0000000c 81c7e008     ; ret
 |00000010 81e80000     ; restore
 
-        o <<howto>>
+	o <<howto>>
 
-        The <<howto>> field can be imagined as a
-        relocation instruction. It is a pointer to a structure which
-        contains information on what to do with all of the other
-        information in the reloc record and data section. A back end
-        would normally have a relocation instruction set and turn
-        relocations into pointers to the correct structure on input -
-        but it would be possible to create each howto field on demand.
+	The <<howto>> field can be imagined as a
+	relocation instruction. It is a pointer to a structure which
+	contains information on what to do with all of the other
+	information in the reloc record and data section. A back end
+	would normally have a relocation instruction set and turn
+	relocations into pointers to the correct structure on input -
+	but it would be possible to create each howto field on demand.
 
 */
 
@@ -272,10 +274,10 @@ CODE_FRAGMENT
 
 /*
 SUBSUBSECTION
-        <<reloc_howto_type>>
+	<<reloc_howto_type>>
 
-        The <<reloc_howto_type>> is a structure which contains all the
-        information that libbfd needs to know to tie up a back end's data.
+	The <<reloc_howto_type>> is a structure which contains all the
+	information that libbfd needs to know to tie up a back end's data.
 
 CODE_FRAGMENT
 .struct bfd_symbol;		{* Forward declaration.  *}
@@ -383,7 +385,7 @@ DESCRIPTION
 
 .#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
 .  HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
-.         NAME, FALSE, 0, 0, IN)
+.	  NAME, FALSE, 0, 0, IN)
 .
 
 DESCRIPTION
@@ -391,25 +393,25 @@ DESCRIPTION
 
 .#define EMPTY_HOWTO(C) \
 .  HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
-.         NULL, FALSE, 0, 0, FALSE)
+.	  NULL, FALSE, 0, 0, FALSE)
 .
 
 DESCRIPTION
 	Helper routine to turn a symbol into a relocation value.
 
-.#define HOWTO_PREPARE(relocation, symbol)               \
-.  {                                                     \
-.    if (symbol != NULL)                                 \
-.      {                                                 \
-.        if (bfd_is_com_section (symbol->section))       \
-.          {                                             \
-.            relocation = 0;                             \
-.          }                                             \
-.        else                                            \
-.          {                                             \
-.            relocation = symbol->value;                 \
-.          }                                             \
-.      }                                                 \
+.#define HOWTO_PREPARE(relocation, symbol)		\
+.  {							\
+.    if (symbol != NULL)				\
+.      {						\
+.	 if (bfd_is_com_section (symbol->section))	\
+.	   {						\
+.	     relocation = 0;				\
+.	   }						\
+.	 else						\
+.	   {						\
+.	     relocation = symbol->value;		\
+.	   }						\
+.      }						\
 .  }
 .
 */
@@ -510,7 +512,7 @@ bfd_check_overflow (enum complain_overfl
 
     case complain_overflow_signed:
       /* If any sign bits are set, all sign bits must be set.  That
-         is, A must be a valid negative address after shifting.  */
+	 is, A must be a valid negative address after shifting.  */
       signmask = ~ (fieldmask >> 1);
       /* Fall thru */
 
@@ -540,15 +542,50 @@ bfd_check_overflow (enum complain_overfl
 
 /*
 FUNCTION
+	bfd_reloc_offset_in_range
+
+SYNOPSIS
+	bfd_boolean bfd_reloc_offset_in_range
+	  (reloc_howto_type *howto,
+	   bfd *abfd,
+	   asection *section,
+	   bfd_size_type offset);
+
+DESCRIPTION
+	Returns TRUE if the reloc described by @var{HOWTO} can be
+	applied at @var{OFFSET} octets in @var{SECTION}.
+
+*/
+
+/* HOWTO describes a relocation, at offset OCTET.  Return whether the
+   relocation field is within SECTION of ABFD.  */
+
+bfd_boolean
+bfd_reloc_offset_in_range (reloc_howto_type *howto,
+			   bfd *abfd,
+			   asection *section,
+			   bfd_size_type octet)
+{
+  bfd_size_type octet_end = bfd_get_section_limit_octets (abfd, section);
+  bfd_size_type reloc_size = bfd_get_reloc_size (howto);
+
+  /* The reloc field must be contained entirely within the section.
+     Allow zero length fields (marker relocs or NONE relocs where no
+     relocation will be performed) at the end of the section.  */
+  return octet <= octet_end && octet + reloc_size <= octet_end;
+}
+
+/*
+FUNCTION
 	bfd_perform_relocation
 
 SYNOPSIS
 	bfd_reloc_status_type bfd_perform_relocation
-          (bfd *abfd,
-           arelent *reloc_entry,
-           void *data,
-           asection *input_section,
-           bfd *output_bfd,
+	  (bfd *abfd,
+	   arelent *reloc_entry,
+	   void *data,
+	   asection *input_section,
+	   bfd *output_bfd,
 	   char **error_message);
 
 DESCRIPTION
@@ -601,6 +638,11 @@ bfd_perform_relocation (bfd *abfd,
   if (howto && howto->special_function)
     {
       bfd_reloc_status_type cont;
+
+      /* Note - we do not call bfd_reloc_offset_in_range here as the
+	 reloc_entry->address field might actually be valid for the
+	 backend concerned.  It is up to the special_function itself
+	 to call bfd_reloc_offset_in_range if needed.  */
       cont = howto->special_function (abfd, reloc_entry, symbol, data,
 				      input_section, output_bfd,
 				      error_message);
@@ -619,12 +661,9 @@ bfd_perform_relocation (bfd *abfd,
   if (howto == NULL)
     return bfd_reloc_undefined;
 
-  /* 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.  */
+  /* Is the address of the relocation really within the 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))
+  if (!bfd_reloc_offset_in_range (howto, abfd, input_section, octets))
     return bfd_reloc_outofrange;
 
   /* Work out which section the relocation is targeted at and the
@@ -856,23 +895,23 @@ space consuming.  For each target:
      R result
 
      Do this:
-     ((  i i i i i o o o o o  from bfd_get<size>
-     and           S S S S S) to get the size offset we want
-     +   r r r r r r r r r r) to get the final value to place
-     and           D D D D D  to chop to right size
+     ((	 i i i i i o o o o o  from bfd_get<size>
+     and	   S S S S S) to get the size offset we want
+     +	 r r r r r r r r r r) to get the final value to place
+     and	   D D D D D  to chop to right size
      -----------------------
-     =             A A A A A
+     =		   A A A A A
      And this:
-     (   i i i i i o o o o o  from bfd_get<size>
-     and N N N N N          ) get instruction
+     (	 i i i i i o o o o o  from bfd_get<size>
+     and N N N N N	    ) get instruction
      -----------------------
-     =   B B B B B
+     =	 B B B B B
 
      And then:
-     (   B B B B B
-     or            A A A A A)
+     (	 B B B B B
+     or		   A A A A A)
      -----------------------
-     =   R R R R R R R R R R  put into bfd_put<size>
+     =	 R R R R R R R R R R  put into bfd_put<size>
      */
 
 #define DOIT(x) \
@@ -948,10 +987,10 @@ FUNCTION
 
 SYNOPSIS
 	bfd_reloc_status_type bfd_install_relocation
-          (bfd *abfd,
-           arelent *reloc_entry,
-           void *data, bfd_vma data_start,
-           asection *input_section,
+	  (bfd *abfd,
+	   arelent *reloc_entry,
+	   void *data, bfd_vma data_start,
+	   asection *input_section,
 	   char **error_message);
 
 DESCRIPTION
@@ -990,6 +1029,10 @@ bfd_install_relocation (bfd *abfd,
     {
       bfd_reloc_status_type cont;
 
+      /* Note - we do not call bfd_reloc_offset_in_range here as the
+	 reloc_entry->address field might actually be valid for the
+	 backend concerned.  It is up to the special_function itself
+	 to call bfd_reloc_offset_in_range if needed.  */
       /* XXX - The special_function calls haven't been fixed up to deal
 	 with creating new relocations and section contents.  */
       cont = howto->special_function (abfd, reloc_entry, symbol,
@@ -1012,8 +1055,7 @@ bfd_install_relocation (bfd *abfd,
 
   /* Is the address of the relocation really within the 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))
+  if (!bfd_reloc_offset_in_range (howto, abfd, input_section, octets))
     return bfd_reloc_outofrange;
 
   /* Work out which section the relocation is targeted at and the
@@ -1241,23 +1283,23 @@ space consuming.  For each target:
      R result
 
      Do this:
-     ((  i i i i i o o o o o  from bfd_get<size>
-     and           S S S S S) to get the size offset we want
-     +   r r r r r r r r r r) to get the final value to place
-     and           D D D D D  to chop to right size
+     ((	 i i i i i o o o o o  from bfd_get<size>
+     and	   S S S S S) to get the size offset we want
+     +	 r r r r r r r r r r) to get the final value to place
+     and	   D D D D D  to chop to right size
      -----------------------
-     =             A A A A A
+     =		   A A A A A
      And this:
-     (   i i i i i o o o o o  from bfd_get<size>
-     and N N N N N          ) get instruction
+     (	 i i i i i o o o o o  from bfd_get<size>
+     and N N N N N	    ) get instruction
      -----------------------
-     =   B B B B B
+     =	 B B B B B
 
      And then:
-     (   B B B B B
-     or            A A A A A)
+     (	 B B B B B
+     or		   A A A A A)
      -----------------------
-     =   R R R R R R R R R R  put into bfd_put<size>
+     =	 R R R R R R R R R R  put into bfd_put<size>
      */
 
 #define DOIT(x) \
@@ -1351,8 +1393,7 @@ _bfd_final_link_relocate (reloc_howto_ty
   bfd_size_type octets = address * bfd_octets_per_byte (input_bfd);
 
   /* Sanity check the address.  */
-  if (octets + bfd_get_reloc_size (howto)
-      > bfd_get_section_limit_octets (input_bfd, input_section))
+  if (!bfd_reloc_offset_in_range (howto, input_bfd, input_section, octets))
     return bfd_reloc_outofrange;
 
   /* This function assumes that we are dealing with a basic relocation
@@ -1440,9 +1481,9 @@ _bfd_relocate_contents (reloc_howto_type
       bfd_vma a, b, sum;
 
       /* Get the values to be added together.  For signed and unsigned
-         relocations, we assume that all values should be truncated to
-         the size of an address.  For bitfields, all the bits matter.
-         See also bfd_check_overflow.  */
+	 relocations, we assume that all values should be truncated to
+	 the size of an address.  For bitfields, all the bits matter.
+	 See also bfd_check_overflow.  */
       fieldmask = N_ONES (howto->bitsize);
       signmask = ~fieldmask;
       addrmask = (N_ONES (bfd_arch_bits_per_address (input_bfd))
@@ -1471,11 +1512,11 @@ _bfd_relocate_contents (reloc_howto_type
 	    flag = bfd_reloc_overflow;
 
 	  /* We only need this next bit of code if the sign bit of B
-             is below the sign bit of A.  This would only happen if
-             SRC_MASK had fewer bits than BITSIZE.  Note that if
-             SRC_MASK has more bits than BITSIZE, we can get into
-             trouble; we would need to verify that B is in range, as
-             we do for A above.  */
+	     is below the sign bit of A.  This would only happen if
+	     SRC_MASK had fewer bits than BITSIZE.  Note that if
+	     SRC_MASK has more bits than BITSIZE, we can get into
+	     trouble; we would need to verify that B is in range, as
+	     we do for A above.  */
 	  ss = ((~howto->src_mask) >> 1) & howto->src_mask;
 	  ss >>= bitpos;
 
@@ -1486,12 +1527,12 @@ _bfd_relocate_contents (reloc_howto_type
 	  sum = a + b;
 
 	  /* See if the result has the correct sign.  Bits above the
-             sign bit are junk now; ignore them.  If the sum is
-             positive, make sure we did not have all negative inputs;
-             if the sum is negative, make sure we did not have all
-             positive inputs.  The test below looks only at the sign
-             bits, and it really just
-	         SIGN (A) == SIGN (B) && SIGN (A) != SIGN (SUM)
+	     sign bit are junk now; ignore them.  If the sum is
+	     positive, make sure we did not have all negative inputs;
+	     if the sum is negative, make sure we did not have all
+	     positive inputs.  The test below looks only at the sign
+	     bits, and it really just
+		 SIGN (A) == SIGN (B) && SIGN (A) != SIGN (SUM)
 
 	     We mask with addrmask here to explicitly allow an address
 	     wrap-around.  The Linux kernel relies on it, and it is
@@ -1504,16 +1545,16 @@ _bfd_relocate_contents (reloc_howto_type
 
 	case complain_overflow_unsigned:
 	  /* Checking for an unsigned overflow is relatively easy:
-             trim the addresses and add, and trim the result as well.
-             Overflow is normally indicated when the result does not
-             fit in the field.  However, we also need to consider the
-             case when, e.g., fieldmask is 0x7fffffff or smaller, an
-             input is 0x80000000, and bfd_vma is only 32 bits; then we
-             will get sum == 0, but there is an overflow, since the
-             inputs did not fit in the field.  Instead of doing a
-             separate test, we can check for this by or-ing in the
-             operands when testing for the sum overflowing its final
-             field.  */
+	     trim the addresses and add, and trim the result as well.
+	     Overflow is normally indicated when the result does not
+	     fit in the field.  However, we also need to consider the
+	     case when, e.g., fieldmask is 0x7fffffff or smaller, an
+	     input is 0x80000000, and bfd_vma is only 32 bits; then we
+	     will get sum == 0, but there is an overflow, since the
+	     inputs did not fit in the field.  Instead of doing a
+	     separate test, we can check for this by or-ing in the
+	     operands when testing for the sum overflowing its final
+	     field.  */
 	  sum = (a + b) & addrmask;
 	  if ((a | b | sum) & signmask)
 	    flag = bfd_reloc_overflow;
@@ -2114,9 +2155,9 @@ ENUMDOC
      away some literal section references.  The symbol is ignored (read
      as the absolute section symbol), and the "addend" indicates the type
      of instruction using the register:
-              1 - "memory" fmt insn
-              2 - byte-manipulation (byte offset reg)
-              3 - jsr (target of branch)
+	      1 - "memory" fmt insn
+	      2 - byte-manipulation (byte offset reg)
+	      3 - jsr (target of branch)
 
 ENUM
   BFD_RELOC_ALPHA_HINT
@@ -2474,6 +2515,16 @@ ENUMX
   BFD_RELOC_FT32_17
 ENUMX
   BFD_RELOC_FT32_18
+ENUMX
+  BFD_RELOC_FT32_RELAX
+ENUMX
+  BFD_RELOC_FT32_SC0
+ENUMX
+  BFD_RELOC_FT32_SC1
+ENUMX
+  BFD_RELOC_FT32_15
+ENUMX
+  BFD_RELOC_FT32_DIFF32
 ENUMDOC
   FT32 ELF relocations.
 COMMENT
@@ -3684,6 +3735,8 @@ ENUMX
   BFD_RELOC_ARC_S21H_PCREL_PLT
 ENUMX
   BFD_RELOC_ARC_NPS_CMEM16
+ENUMX
+  BFD_RELOC_ARC_JLI_SECTOFF
 ENUMDOC
   ARC relocs.
 
@@ -5144,6 +5197,8 @@ ENUMX
   BFD_RELOC_RISCV_SET16
 ENUMX
   BFD_RELOC_RISCV_SET32
+ENUMX
+  BFD_RELOC_RISCV_32_PCREL
 ENUMDOC
   RISC-V relocations.
 
@@ -7109,13 +7164,13 @@ ENUM
 ENUMDOC
   Unsigned 12 bit byte offset for 64 bit load/store from the page of
   the GOT entry for this symbol.  Used in conjunction with
-  BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in LP64 ABI only.
+  BFD_RELOC_AARCH64_ADR_GOT_PAGE.  Valid in LP64 ABI only.
 ENUM
   BFD_RELOC_AARCH64_LD32_GOT_LO12_NC
 ENUMDOC
   Unsigned 12 bit byte offset for 32 bit load/store from the page of
   the GOT entry for this symbol.  Used in conjunction with
-  BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in ILP32 ABI only.
+  BFD_RELOC_AARCH64_ADR_GOT_PAGE.  Valid in ILP32 ABI only.
  ENUM
   BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC
 ENUMDOC
@@ -8115,6 +8170,9 @@ bfd_generic_get_relocated_section_conten
   if (!bfd_get_full_section_contents (input_bfd, input_section, &data))
     return NULL;
 
+  if (data == NULL)
+    return NULL;
+
   if (reloc_size == 0)
     return data;
 
@@ -8247,3 +8305,59 @@ error_return:
   free (reloc_vector);
   return NULL;
 }
+
+/*
+INTERNAL_FUNCTION
+	_bfd_generic_set_reloc
+
+SYNOPSIS
+	void _bfd_generic_set_reloc
+	  (bfd *abfd,
+	   sec_ptr section,
+	   arelent **relptr,
+	   unsigned int count);
+
+DESCRIPTION
+	Installs a new set of internal relocations in SECTION.
+*/
+
+void
+_bfd_generic_set_reloc (bfd *abfd ATTRIBUTE_UNUSED,
+			sec_ptr section,
+			arelent **relptr,
+			unsigned int count)
+{
+  section->orelocation = relptr;
+  section->reloc_count = count;
+}
+
+/*
+INTERNAL_FUNCTION
+	_bfd_unrecognized_reloc
+
+SYNOPSIS
+	bfd_boolean _bfd_unrecognized_reloc
+	  (bfd * abfd,
+	   sec_ptr section,
+	   unsigned int r_type);
+
+DESCRIPTION
+	Reports an unrecognized reloc.
+	Written as a function in order to reduce code duplication.
+	Returns FALSE so that it can be called from a return statement.
+*/
+
+bfd_boolean
+_bfd_unrecognized_reloc (bfd * abfd, sec_ptr section, unsigned int r_type)
+{
+   /* xgettext:c-format */
+  _bfd_error_handler (_("%B: unrecognized relocation (%#x) in section `%A'"),
+		      abfd, r_type, section);
+
+  /* PR 21803: Suggest the most likely cause of this error.  */
+  _bfd_error_handler (_("Is this version of the linker - %s - out of date ?"),
+		      BFD_VERSION_STRING);
+
+  bfd_set_error (bfd_error_bad_value);
+  return FALSE;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/riscix.c ./bfd/riscix.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/riscix.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/riscix.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for RISC iX (Acorn, arm) binaries.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -27,41 +27,41 @@
 /* The following come from the man page.  */
 #define SHLIBLEN 60
 
-#define MF_IMPURE       00200
-#define MF_SQUEEZED     01000
-#define MF_USES_SL      02000
-#define MF_IS_SL        04000
+#define MF_IMPURE	00200
+#define MF_SQUEEZED	01000
+#define MF_USES_SL	02000
+#define MF_IS_SL	04000
 
 /* Common combinations.  */
 
 /* Demand load (impure text).  */
-#define IMAGIC          (MF_IMPURE | ZMAGIC)
+#define IMAGIC		(MF_IMPURE | ZMAGIC)
 
 /* OMAGIC with large header.
    May contain a ref to a shared lib required by the object.  */
-#define SPOMAGIC        (MF_USES_SL | OMAGIC)
+#define SPOMAGIC	(MF_USES_SL | OMAGIC)
 
 /* A reference to a shared library.
    The text portion of the object contains "overflow text" from
    the shared library to be linked in with an object.  */
-#define SLOMAGIC        (MF_IS_SL | OMAGIC)
+#define SLOMAGIC	(MF_IS_SL | OMAGIC)
 
 /* Sqeezed demand paged.
    NOTE: This interpretation of QMAGIC seems to be at variance
    with that used on other architectures.  */
-#define QMAGIC          (MF_SQUEEZED | ZMAGIC)
+#define QMAGIC		(MF_SQUEEZED | ZMAGIC)
 
 /* Program which uses sl.  */
-#define SPZMAGIC        (MF_USES_SL | ZMAGIC)
+#define SPZMAGIC	(MF_USES_SL | ZMAGIC)
 
 /* Sqeezed ditto.  */
-#define SPQMAGIC        (MF_USES_SL | QMAGIC)
+#define SPQMAGIC	(MF_USES_SL | QMAGIC)
 
 /* Shared lib part of prog.  */
-#define SLZMAGIC        (MF_IS_SL | ZMAGIC)
+#define SLZMAGIC	(MF_IS_SL | ZMAGIC)
 
 /* Sl which uses another.  */
-#define SLPZMAGIC       (MF_USES_SL | SLZMAGIC)
+#define SLPZMAGIC	(MF_USES_SL | SLZMAGIC)
 
 #define N_SHARED_LIB(x) ((x)->a_info & MF_USES_SL)
 
@@ -100,8 +100,8 @@
 #define MY(OP) CONCAT2 (arm_aout_riscix_,OP)
 #define TARGETNAME "a.out-riscix"
 #define N_BADMAG(x) ((((x)->a_info & ~007200) != ZMAGIC) \
-                  && (((x)->a_info & ~006000) != OMAGIC) \
-                  && ((x)->a_info != NMAGIC))
+		  && (((x)->a_info & ~006000) != OMAGIC) \
+		  && ((x)->a_info != NMAGIC))
 #define N_MAGIC(x) ((x)->a_info & ~07200)
 
 #include "sysdep.h"
@@ -112,30 +112,30 @@
   {									    \
     if (adata (abfd).magic == undecided_magic)				    \
       NAME (aout, adjust_sizes_and_vmas) (abfd);			    \
-    									    \
+									    \
     execp->a_syms = bfd_get_symcount (abfd) * EXTERNAL_NLIST_SIZE;	    \
     execp->a_entry = bfd_get_start_address (abfd);			    \
-    									    \
+									    \
     execp->a_trsize = ((obj_textsec (abfd)->reloc_count) *		    \
 		       obj_reloc_entry_size (abfd));			    \
     execp->a_drsize = ((obj_datasec (abfd)->reloc_count) *		    \
 		       obj_reloc_entry_size (abfd));			    \
     NAME (aout, swap_exec_header_out) (abfd, execp, & exec_bytes);	    \
-    									    \
+									    \
     if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0			    \
 	|| bfd_bwrite ((void *) & exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE,  \
 		      abfd) != EXEC_BYTES_SIZE)				    \
       return FALSE;							    \
     /* Now write out reloc info, followed by syms and strings.  */	    \
 									    \
-    if (bfd_get_outsymbols (abfd) != NULL			    	    \
+    if (bfd_get_outsymbols (abfd) != NULL				    \
 	&& bfd_get_symcount (abfd) != 0)				    \
       {									    \
 	if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (execp)), SEEK_SET) != 0)  \
 	  return FALSE;							    \
 									    \
 	if (! NAME (aout, write_syms) (abfd))				    \
-          return FALSE;							    \
+	  return FALSE;							    \
 									    \
 	if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (execp)), SEEK_SET) != 0) \
 	  return FALSE;							    \
@@ -171,18 +171,18 @@ static const bfd_target *arm_aout_riscix
 
 static reloc_howto_type riscix_std_reloc_howto[] =
 {
-  /* Type              rs size bsz  pcrel bitpos ovrf                     sf name     part_inpl readmask  setmask    pcdone */
-  HOWTO( 0,              0,  0,   8,  FALSE, 0, complain_overflow_bitfield,0,"8",         TRUE, 0x000000ff,0x000000ff, FALSE),
-  HOWTO( 1,              0,  1,   16, FALSE, 0, complain_overflow_bitfield,0,"16",        TRUE, 0x0000ffff,0x0000ffff, FALSE),
-  HOWTO( 2,              0,  2,   32, FALSE, 0, complain_overflow_bitfield,0,"32",        TRUE, 0xffffffff,0xffffffff, FALSE),
-  HOWTO( 3,              2,  3,   26, TRUE,  0, complain_overflow_signed,  riscix_fix_pcrel_26 , "ARM26",      TRUE, 0x00ffffff,0x00ffffff, FALSE),
-  HOWTO( 4,              0,  0,   8,  TRUE,  0, complain_overflow_signed,  0,"DISP8",     TRUE, 0x000000ff,0x000000ff, TRUE),
-  HOWTO( 5,              0,  1,   16, TRUE,  0, complain_overflow_signed,  0,"DISP16",    TRUE, 0x0000ffff,0x0000ffff, TRUE),
-  HOWTO( 6,              0,  2,   32, TRUE,  0, complain_overflow_signed,  0,"DISP32",    TRUE, 0xffffffff,0xffffffff, TRUE),
-  HOWTO( 7,              2,  3,   26, FALSE, 0, complain_overflow_signed,  riscix_fix_pcrel_26_done, "ARM26D",TRUE,0x00ffffff,0x00ffffff, FALSE),
+  /* Type	       rs size bsz  pcrel bitpos ovrf			  sf name     part_inpl readmask  setmask    pcdone */
+  HOWTO( 0,		 0,  0,	  8,  FALSE, 0, complain_overflow_bitfield,0,"8",	  TRUE, 0x000000ff,0x000000ff, FALSE),
+  HOWTO( 1,		 0,  1,	  16, FALSE, 0, complain_overflow_bitfield,0,"16",	  TRUE, 0x0000ffff,0x0000ffff, FALSE),
+  HOWTO( 2,		 0,  2,	  32, FALSE, 0, complain_overflow_bitfield,0,"32",	  TRUE, 0xffffffff,0xffffffff, FALSE),
+  HOWTO( 3,		 2,  3,	  26, TRUE,  0, complain_overflow_signed,  riscix_fix_pcrel_26 , "ARM26",      TRUE, 0x00ffffff,0x00ffffff, FALSE),
+  HOWTO( 4,		 0,  0,	  8,  TRUE,  0, complain_overflow_signed,  0,"DISP8",	  TRUE, 0x000000ff,0x000000ff, TRUE),
+  HOWTO( 5,		 0,  1,	  16, TRUE,  0, complain_overflow_signed,  0,"DISP16",	  TRUE, 0x0000ffff,0x0000ffff, TRUE),
+  HOWTO( 6,		 0,  2,	  32, TRUE,  0, complain_overflow_signed,  0,"DISP32",	  TRUE, 0xffffffff,0xffffffff, TRUE),
+  HOWTO( 7,		 2,  3,	  26, FALSE, 0, complain_overflow_signed,  riscix_fix_pcrel_26_done, "ARM26D",TRUE,0x00ffffff,0x00ffffff, FALSE),
   EMPTY_HOWTO (-1),
-  HOWTO( 9,              0, -1,   16, FALSE, 0, complain_overflow_bitfield,0,"NEG16",     TRUE, 0x0000ffff,0x0000ffff, FALSE),
-  HOWTO( 10,              0, -2,  32, FALSE, 0, complain_overflow_bitfield,0,"NEG32",     TRUE, 0xffffffff,0xffffffff, FALSE)
+  HOWTO( 9,		 0, -1,	  16, FALSE, 0, complain_overflow_bitfield,0,"NEG16",	  TRUE, 0x0000ffff,0x0000ffff, FALSE),
+  HOWTO( 10,		  0, -2,  32, FALSE, 0, complain_overflow_bitfield,0,"NEG32",	  TRUE, 0xffffffff,0xffffffff, FALSE)
 };
 
 #define RISCIX_TABLE_SIZE \
@@ -253,8 +253,8 @@ riscix_reloc_type_lookup (bfd *abfd, bfd
     switch (bfd_arch_bits_per_address (abfd))
       {
       case 32:
-        code = BFD_RELOC_32;
-        break;
+	code = BFD_RELOC_32;
+	break;
       default:
 	return NULL;
       }
@@ -289,14 +289,14 @@ riscix_reloc_name_lookup (bfd *abfd ATTR
 }
 
 #define MY_bfd_link_hash_table_create  _bfd_generic_link_hash_table_create
-#define MY_bfd_link_add_symbols        _bfd_generic_link_add_symbols
-#define MY_final_link_callback         should_not_be_used
-#define MY_bfd_final_link              _bfd_generic_final_link
+#define MY_bfd_link_add_symbols	       _bfd_generic_link_add_symbols
+#define MY_final_link_callback	       should_not_be_used
+#define MY_bfd_final_link	       _bfd_generic_final_link
 
 #define MY_bfd_reloc_type_lookup       riscix_reloc_type_lookup
 #define MY_bfd_reloc_name_lookup       riscix_reloc_name_lookup
-#define MY_canonicalize_reloc          arm_aout_riscix_canonicalize_reloc
-#define MY_object_p                    arm_aout_riscix_object_p
+#define MY_canonicalize_reloc	       arm_aout_riscix_canonicalize_reloc
+#define MY_object_p		       arm_aout_riscix_object_p
 
 static void
 riscix_swap_std_reloc_out (bfd *abfd,
@@ -592,8 +592,8 @@ riscix_some_aout_object_p (bfd *abfd,
 
     if (abfd->iostream != NULL
 	&& (abfd->flags & BFD_IN_MEMORY) == 0
-        && (fstat(fileno((FILE *) (abfd->iostream)), &stat_buf) == 0)
-        && ((stat_buf.st_mode & 0111) != 0))
+	&& (fstat(fileno((FILE *) (abfd->iostream)), &stat_buf) == 0)
+	&& ((stat_buf.st_mode & 0111) != 0))
       abfd->flags |= EXEC_P;
   }
 #else /* ! MACH */
@@ -620,8 +620,8 @@ riscix_some_aout_object_p (bfd *abfd,
 static const bfd_target *
 MY (object_p) (bfd *abfd)
 {
-  struct external_exec exec_bytes;      /* Raw exec header from file.  */
-  struct internal_exec exec;            /* Cleaned-up exec header.  */
+  struct external_exec exec_bytes;	/* Raw exec header from file.  */
+  struct internal_exec exec;		/* Cleaned-up exec header.  */
   const bfd_target *target;
 
   if (bfd_bread ((void *) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, abfd)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/rs6000-core.c ./bfd/rs6000-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/rs6000-core.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/rs6000-core.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* IBM RS/6000 "XCOFF" back-end for BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Metin G. Ozisik, Mimi Phuong-Thao Vo, and John Gilmore.
    Archive support from Damon A. Permezel.
    Contributed by IBM Corporation and Cygnus Support.
@@ -109,7 +109,7 @@ typedef union
 #else
   struct core_dump new_dump;	/* For simpler coding.  */
 #endif
-#ifndef BFD64                   /* Use old only if gdb is 32-bit.  */
+#ifndef BFD64			/* Use old only if gdb is 32-bit.  */
   struct core_dump old;		/* Old AIX 4.2- core dump, still used on
 				   4.3+ with appropriate SMIT config.  */
 #endif
@@ -150,7 +150,7 @@ typedef union
    but that may not be the only such format version number.  */
 
 #ifdef AIX_5_CORE
-# define CORE_DUMPXX_VERSION  	267312562
+# define CORE_DUMPXX_VERSION	267312562
 # define CNEW_IS_CORE_DUMPXX(c) ((c).new_dump.c_version == CORE_DUMPXX_VERSION)
 #else
 # define CNEW_IS_CORE_DUMPXX(c) 0
@@ -269,17 +269,17 @@ typedef union
    common.  */
 #ifdef AIX_CORE_DUMPX_CORE
 #define CORE_COMMONSZ  ((long) &((struct core_dumpx *) 0)->c_entries \
-                        + sizeof (((struct core_dumpx *) 0)->c_entries))
+			+ sizeof (((struct core_dumpx *) 0)->c_entries))
 #else
 #define CORE_COMMONSZ   ((int) &((struct core_dump *) 0)->c_entries \
-                       + sizeof (((struct core_dump *) 0)->c_entries)
+		       + sizeof (((struct core_dump *) 0)->c_entries)
 #endif
 /* Define prototypes for certain functions, to avoid a compiler warning
    saying that they are missing.  */
 
 const bfd_target * rs6000coff_core_p (bfd *abfd);
 bfd_boolean rs6000coff_core_file_matches_executable_p (bfd *core_bfd,
-                                                       bfd *exec_bfd);
+						       bfd *exec_bfd);
 char * rs6000coff_core_file_failing_command (bfd *abfd);
 int rs6000coff_core_file_failing_signal (bfd *abfd);
 
@@ -585,10 +585,10 @@ rs6000coff_core_p (bfd *abfd)
 	/* If Large Memory Model is used, then the .data segment should start from
 	   BDATAORG which has been defined in the system header files. */
 
-        if (c_flag & CORE_BIGDATA)
-          core_dataorg = BDATAORG;
-        else
-          core_dataorg = CDATA_ADDR (c_datasize);
+	if (c_flag & CORE_BIGDATA)
+	  core_dataorg = BDATAORG;
+	else
+	  core_dataorg = CDATA_ADDR (c_datasize);
 
 	if (!make_bfd_asection (abfd, ".data",
 				SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS,
@@ -655,7 +655,7 @@ rs6000coff_core_p (bfd *abfd)
 #ifndef BFD64
 	    size = CORE_NEW (core) ? sizeof (vminfo.new_dump) : sizeof (vminfo.old);
 #else
-            size = sizeof (vminfo.new_dump);
+	    size = sizeof (vminfo.new_dump);
 #endif
 	    if (bfd_bread (&vminfo, size, abfd) != size)
 	      goto fail;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/sco5-core.c ./bfd/sco5-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/sco5-core.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/sco5-core.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back end for SCO5 core files (U-area and raw sections)
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
    Written by Jouke Numan <jnuman@hiscom.nl>
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/section.c ./bfd/section.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/section.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/section.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Object file "section" support for the BFD library.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -171,31 +171,31 @@ CODE_FRAGMENT
 .     synthesized from other information.  *}
 .  flagword flags;
 .
-.#define SEC_NO_FLAGS   0x000
+.#define SEC_NO_FLAGS                      0x0
 .
 .  {* Tells the OS to allocate space for this section when loading.
 .     This is clear for a section containing debug information only.  *}
-.#define SEC_ALLOC      0x001
+.#define SEC_ALLOC                         0x1
 .
 .  {* Tells the OS to load the section from the file when loading.
 .     This is clear for a .bss section.  *}
-.#define SEC_LOAD       0x002
+.#define SEC_LOAD                          0x2
 .
 .  {* The section contains data still to be relocated, so there is
 .     some relocation information too.  *}
-.#define SEC_RELOC      0x004
+.#define SEC_RELOC                         0x4
 .
 .  {* A signal to the OS that the section contains read only data.  *}
-.#define SEC_READONLY   0x008
+.#define SEC_READONLY                      0x8
 .
 .  {* The section contains code only.  *}
-.#define SEC_CODE       0x010
+.#define SEC_CODE                         0x10
 .
 .  {* The section contains data only.  *}
-.#define SEC_DATA       0x020
+.#define SEC_DATA                         0x20
 .
 .  {* The section will reside in ROM.  *}
-.#define SEC_ROM        0x040
+.#define SEC_ROM                          0x40
 .
 .  {* The section contains constructor information. This section
 .     type is used by the linker to create lists of constructors and
@@ -207,19 +207,19 @@ CODE_FRAGMENT
 .     sections called <<__CTOR_LIST__>> and relocate the data
 .     contained within - exactly the operations it would peform on
 .     standard data.  *}
-.#define SEC_CONSTRUCTOR 0x080
+.#define SEC_CONSTRUCTOR                  0x80
 .
 .  {* The section has contents - a data section could be
 .     <<SEC_ALLOC>> | <<SEC_HAS_CONTENTS>>; a debug section could be
 .     <<SEC_HAS_CONTENTS>>  *}
-.#define SEC_HAS_CONTENTS 0x100
+.#define SEC_HAS_CONTENTS                0x100
 .
 .  {* An instruction to the linker to not output the section
 .     even if it has information which would normally be written.  *}
-.#define SEC_NEVER_LOAD 0x200
+.#define SEC_NEVER_LOAD                  0x200
 .
 .  {* The section contains thread local data.  *}
-.#define SEC_THREAD_LOCAL 0x400
+.#define SEC_THREAD_LOCAL                0x400
 .
 .  {* The section has GOT references.  This flag is only for the
 .     linker, and is currently only used by the elf32-hppa back end.
@@ -227,55 +227,55 @@ CODE_FRAGMENT
 .     in this section, which indicate to the linker that the section
 .     contains PIC code, and must be handled specially when doing a
 .     static link.  *}
-.#define SEC_HAS_GOT_REF 0x800
+.#define SEC_HAS_GOT_REF                 0x800
 .
 .  {* The section contains common symbols (symbols may be defined
 .     multiple times, the value of a symbol is the amount of
 .     space it requires, and the largest symbol value is the one
 .     used).  Most targets have exactly one of these (which we
 .     translate to bfd_com_section_ptr), but ECOFF has two.  *}
-.#define SEC_IS_COMMON 0x1000
+.#define SEC_IS_COMMON                  0x1000
 .
 .  {* The section contains only debugging information.  For
 .     example, this is set for ELF .debug and .stab sections.
 .     strip tests this flag to see if a section can be
 .     discarded.  *}
-.#define SEC_DEBUGGING 0x2000
+.#define SEC_DEBUGGING                  0x2000
 .
 .  {* The contents of this section are held in memory pointed to
 .     by the contents field.  This is checked by bfd_get_section_contents,
 .     and the data is retrieved from memory if appropriate.  *}
-.#define SEC_IN_MEMORY 0x4000
+.#define SEC_IN_MEMORY                  0x4000
 .
 .  {* The contents of this section are to be excluded by the
 .     linker for executable and shared objects unless those
 .     objects are to be further relocated.  *}
-.#define SEC_EXCLUDE 0x8000
+.#define SEC_EXCLUDE                    0x8000
 .
 .  {* The contents of this section are to be sorted based on the sum of
 .     the symbol and addend values specified by the associated relocation
 .     entries.  Entries without associated relocation entries will be
 .     appended to the end of the section in an unspecified order.  *}
-.#define SEC_SORT_ENTRIES 0x10000
+.#define SEC_SORT_ENTRIES              0x10000
 .
 .  {* When linking, duplicate sections of the same name should be
 .     discarded, rather than being combined into a single section as
 .     is usually done.  This is similar to how common symbols are
 .     handled.  See SEC_LINK_DUPLICATES below.  *}
-.#define SEC_LINK_ONCE 0x20000
+.#define SEC_LINK_ONCE                 0x20000
 .
 .  {* If SEC_LINK_ONCE is set, this bitfield describes how the linker
 .     should handle duplicate sections.  *}
-.#define SEC_LINK_DUPLICATES 0xc0000
+.#define SEC_LINK_DUPLICATES           0xc0000
 .
 .  {* This value for SEC_LINK_DUPLICATES means that duplicate
 .     sections with the same name should simply be discarded.  *}
-.#define SEC_LINK_DUPLICATES_DISCARD 0x0
+.#define SEC_LINK_DUPLICATES_DISCARD       0x0
 .
 .  {* This value for SEC_LINK_DUPLICATES means that the linker
 .     should warn if there are any duplicate sections, although
 .     it should still only link one copy.  *}
-.#define SEC_LINK_DUPLICATES_ONE_ONLY 0x40000
+.#define SEC_LINK_DUPLICATES_ONE_ONLY  0x40000
 .
 .  {* This value for SEC_LINK_DUPLICATES means that the linker
 .     should warn if any duplicate sections are a different size.  *}
@@ -291,28 +291,28 @@ CODE_FRAGMENT
 .     relocation or other arcane processing.  It is skipped when
 .     going through the first-pass output, trusting that someone
 .     else up the line will take care of it later.  *}
-.#define SEC_LINKER_CREATED 0x100000
+.#define SEC_LINKER_CREATED           0x100000
 .
 .  {* This section should not be subject to garbage collection.
 .     Also set to inform the linker that this section should not be
 .     listed in the link map as discarded.  *}
-.#define SEC_KEEP 0x200000
+.#define SEC_KEEP                     0x200000
 .
 .  {* This section contains "short" data, and should be placed
 .     "near" the GP.  *}
-.#define SEC_SMALL_DATA 0x400000
+.#define SEC_SMALL_DATA               0x400000
 .
 .  {* Attempt to merge identical entities in the section.
 .     Entity size is given in the entsize field.  *}
-.#define SEC_MERGE 0x800000
+.#define SEC_MERGE                    0x800000
 .
 .  {* If given with SEC_MERGE, entities to merge are zero terminated
 .     strings where entsize specifies character size instead of fixed
 .     size entries.  *}
-.#define SEC_STRINGS 0x1000000
+.#define SEC_STRINGS                 0x1000000
 .
 .  {* This section contains data about section groups.  *}
-.#define SEC_GROUP 0x2000000
+.#define SEC_GROUP                   0x2000000
 .
 .  {* The section is a COFF shared library section.  This flag is
 .     only for the linker.  If this type of section appears in
@@ -323,46 +323,46 @@ CODE_FRAGMENT
 .     might be cleaner to have some more general mechanism to
 .     allow the back end to control what the linker does with
 .     sections.  *}
-.#define SEC_COFF_SHARED_LIBRARY 0x4000000
+.#define SEC_COFF_SHARED_LIBRARY     0x4000000
 .
 .  {* This input section should be copied to output in reverse order
 .     as an array of pointers.  This is for ELF linker internal use
 .     only.  *}
-.#define SEC_ELF_REVERSE_COPY 0x4000000
+.#define SEC_ELF_REVERSE_COPY        0x4000000
 .
 .  {* This section contains data which may be shared with other
 .     executables or shared objects. This is for COFF only.  *}
-.#define SEC_COFF_SHARED 0x8000000
+.#define SEC_COFF_SHARED             0x8000000
 .
 .  {* This section should be compressed.  This is for ELF linker
 .     internal use only.  *}
-.#define SEC_ELF_COMPRESS 0x8000000
+.#define SEC_ELF_COMPRESS            0x8000000
 .
 .  {* When a section with this flag is being linked, then if the size of
 .     the input section is less than a page, it should not cross a page
 .     boundary.  If the size of the input section is one page or more,
 .     it should be aligned on a page boundary.  This is for TI
 .     TMS320C54X only.  *}
-.#define SEC_TIC54X_BLOCK 0x10000000
+.#define SEC_TIC54X_BLOCK           0x10000000
 .
 .  {* This section should be renamed.  This is for ELF linker
 .     internal use only.  *}
-.#define SEC_ELF_RENAME 0x10000000
+.#define SEC_ELF_RENAME             0x10000000
 .
 .  {* Conditionally link this section; do not link if there are no
 .     references found to any symbol in the section.  This is for TI
 .     TMS320C54X only.  *}
-.#define SEC_TIC54X_CLINK 0x20000000
+.#define SEC_TIC54X_CLINK           0x20000000
 .
 .  {* This section contains vliw code.  This is for Toshiba MeP only.  *}
-.#define SEC_MEP_VLIW 0x20000000
+.#define SEC_MEP_VLIW               0x20000000
 .
 .  {* Indicate that section has the no read flag set. This happens
 .     when memory read flag isn't set. *}
-.#define SEC_COFF_NOREAD 0x40000000
+.#define SEC_COFF_NOREAD            0x40000000
 .
 .  {* Indicate that section has the purecode flag set.  *}
-.#define SEC_ELF_PURECODE 0x80000000
+.#define SEC_ELF_PURECODE           0x80000000
 .
 .  {*  End of section flags.  *}
 .
@@ -560,7 +560,8 @@ CODE_FRAGMENT
 .   would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
 .   compilers will complain about comma expressions that have no effect.  *}
 .static inline bfd_boolean
-.bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val)
+.bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
+.			   void * val)
 .{
 .  ptr->userdata = val;
 .  return TRUE;
@@ -575,7 +576,8 @@ CODE_FRAGMENT
 .}
 .
 .static inline bfd_boolean
-.bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val)
+.bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr,
+.			    unsigned int val)
 .{
 .  ptr->alignment_power = val;
 .  return TRUE;
@@ -738,20 +740,20 @@ CODE_FRAGMENT
 .     { NULL }, { NULL }						\
 .    }
 .
+.{* We use a macro to initialize the static asymbol structures because
+.   traditional C does not permit us to initialize a union member while
+.   gcc warns if we don't initialize it.
+.   the_bfd, name, value, attr, section [, udata]  *}
+.#ifdef __STDC__
+.#define GLOBAL_SYM_INIT(NAME, SECTION) \
+.  { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }}
+.#else
+.#define GLOBAL_SYM_INIT(NAME, SECTION) \
+.  { 0, NAME, 0, BSF_SECTION_SYM, SECTION }
+.#endif
+.
 */
 
-/* We use a macro to initialize the static asymbol structures because
-   traditional C does not permit us to initialize a union member while
-   gcc warns if we don't initialize it.  */
- /* the_bfd, name, value, attr, section [, udata] */
-#ifdef __STDC__
-#define GLOBAL_SYM_INIT(NAME, SECTION) \
-  { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }}
-#else
-#define GLOBAL_SYM_INIT(NAME, SECTION) \
-  { 0, NAME, 0, BSF_SECTION_SYM, SECTION }
-#endif
-
 /* These symbols are global, not specific to any BFD.  Therefore, anything
    that tries to change them is broken, and should be repaired.  */
 
@@ -1240,7 +1242,7 @@ bfd_make_section_with_flags (bfd *abfd, 
   struct section_hash_entry *sh;
   asection *newsect;
 
-  if (abfd->output_has_begun)
+  if (abfd == NULL || name == NULL || abfd->output_has_begun)
     {
       bfd_set_error (bfd_error_invalid_operation);
       return NULL;
@@ -1657,8 +1659,8 @@ DESCRIPTION
 	Not enough memory exists to create private data for @var{osec}.
 
 .#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
-.     BFD_SEND (obfd, _bfd_copy_private_section_data, \
-.		(ibfd, isection, obfd, osection))
+.	BFD_SEND (obfd, _bfd_copy_private_section_data, \
+.		  (ibfd, isection, obfd, osection))
 */
 
 /*
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/simple.c ./bfd/simple.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/simple.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/simple.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* simple.c -- BFD simple client routines
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by MontaVista Software, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/som.c ./bfd/som.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/som.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/som.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* bfd back-end for HP PA-RISC SOM objects.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Contributed by the Center for Software Science at the
    University of Utah.
@@ -1601,7 +1601,7 @@ som_bfd_reloc_name_lookup (bfd *abfd ATT
 
 static void
 som_swap_clock_in (struct som_external_clock *src,
-                   struct som_clock *dst)
+		   struct som_clock *dst)
 {
   dst->secs = bfd_getb32 (src->secs);
   dst->nanosecs = bfd_getb32 (src->nanosecs);
@@ -1609,7 +1609,7 @@ som_swap_clock_in (struct som_external_c
 
 static void
 som_swap_clock_out (struct som_clock *src,
-                    struct som_external_clock *dst)
+		    struct som_external_clock *dst)
 {
   bfd_putb32 (src->secs, dst->secs);
   bfd_putb32 (src->nanosecs, dst->nanosecs);
@@ -1617,7 +1617,7 @@ som_swap_clock_out (struct som_clock *sr
 
 static void
 som_swap_header_in (struct som_external_header *src,
-                    struct som_header *dst)
+		    struct som_header *dst)
 {
   dst->system_id = bfd_getb16 (src->system_id);
   dst->a_magic = bfd_getb16 (src->a_magic);
@@ -1655,7 +1655,7 @@ som_swap_header_in (struct som_external_
 
 static void
 som_swap_header_out (struct som_header *src,
-                    struct som_external_header *dst)
+		    struct som_external_header *dst)
 {
   bfd_putb16 (src->system_id, dst->system_id);
   bfd_putb16 (src->a_magic, dst->a_magic);
@@ -1693,7 +1693,7 @@ som_swap_header_out (struct som_header *
 
 static void
 som_swap_space_dictionary_in (struct som_external_space_dictionary_record *src,
-                              struct som_space_dictionary_record *dst)
+			      struct som_space_dictionary_record *dst)
 {
   unsigned int flags;
 
@@ -1718,7 +1718,7 @@ som_swap_space_dictionary_in (struct som
 
 static void
 som_swap_space_dictionary_out (struct som_space_dictionary_record *src,
-                               struct som_external_space_dictionary_record *dst)
+			       struct som_external_space_dictionary_record *dst)
 {
   unsigned int flags;
 
@@ -1831,7 +1831,7 @@ som_swap_subspace_dictionary_record_out
 
 static void
 som_swap_aux_id_in (struct som_external_aux_id *src,
-                    struct som_aux_id *dst)
+		    struct som_aux_id *dst)
 {
   unsigned int flags = bfd_getb32 (src->flags);
 
@@ -1845,7 +1845,7 @@ som_swap_aux_id_in (struct som_external_
 
 static void
 som_swap_aux_id_out (struct som_aux_id *src,
-                    struct som_external_aux_id *dst)
+		    struct som_external_aux_id *dst)
 {
   unsigned int flags = 0;
 
@@ -1864,7 +1864,7 @@ som_swap_aux_id_out (struct som_aux_id *
 
 static void
 som_swap_string_auxhdr_out (struct som_string_auxhdr *src,
-                            struct som_external_string_auxhdr *dst)
+			    struct som_external_string_auxhdr *dst)
 {
   som_swap_aux_id_out (&src->header_id, &dst->header_id);
   bfd_putb32 (src->string_length, dst->string_length);
@@ -1872,7 +1872,7 @@ som_swap_string_auxhdr_out (struct som_s
 
 static void
 som_swap_compilation_unit_out (struct som_compilation_unit *src,
-                               struct som_external_compilation_unit *dst)
+			       struct som_external_compilation_unit *dst)
 {
   bfd_putb32 (src->name.strx, dst->name);
   bfd_putb32 (src->language_name.strx, dst->language_name);
@@ -1885,7 +1885,7 @@ som_swap_compilation_unit_out (struct so
 
 static void
 som_swap_exec_auxhdr_in (struct som_external_exec_auxhdr *src,
-                         struct som_exec_auxhdr *dst)
+			 struct som_exec_auxhdr *dst)
 {
   som_swap_aux_id_in (&src->som_auxhdr, &dst->som_auxhdr);
   dst->exec_tsize = bfd_getb32 (src->exec_tsize);
@@ -1902,7 +1902,7 @@ som_swap_exec_auxhdr_in (struct som_exte
 
 static void
 som_swap_exec_auxhdr_out (struct som_exec_auxhdr *src,
-                         struct som_external_exec_auxhdr *dst)
+			 struct som_external_exec_auxhdr *dst)
 {
   som_swap_aux_id_out (&src->som_auxhdr, &dst->som_auxhdr);
   bfd_putb32 (src->exec_tsize, dst->exec_tsize);
@@ -1919,7 +1919,7 @@ som_swap_exec_auxhdr_out (struct som_exe
 
 static void
 som_swap_lst_header_in (struct som_external_lst_header *src,
-                        struct som_lst_header *dst)
+			struct som_lst_header *dst)
 {
   dst->system_id = bfd_getb16 (src->system_id);
   dst->a_magic = bfd_getb16 (src->a_magic);
@@ -2083,8 +2083,8 @@ setup_sections (bfd *abfd,
 
   /* First, read in space names.  */
   amt = file_hdr->space_strings_size;
-  space_strings = bfd_malloc (amt);
-  if (!space_strings && amt != 0)
+  space_strings = bfd_malloc (amt + 1);
+  if (space_strings == NULL && amt != 0)
     goto error_return;
 
   if (bfd_seek (abfd, current_offset + file_hdr->space_strings_location,
@@ -2092,6 +2092,8 @@ setup_sections (bfd *abfd,
     goto error_return;
   if (bfd_bread (space_strings, amt, abfd) != amt)
     goto error_return;
+  /* Make sure that the string table is NUL terminated.  */
+  space_strings[amt] = 0;
 
   /* Loop over all of the space dictionaries, building up sections.  */
   for (space_index = 0; space_index < file_hdr->space_total; space_index++)
@@ -2119,6 +2121,9 @@ setup_sections (bfd *abfd,
       som_swap_space_dictionary_in (&ext_space, &space);
 
       /* Setup the space name string.  */
+      if (space.name >= file_hdr->space_strings_size)
+	goto error_return;
+
       space_name = space.name + space_strings;
 
       /* Make a section out of it.  */
@@ -2180,14 +2185,14 @@ setup_sections (bfd *abfd,
 	   subspace_index++)
 	{
 	  asection *subspace_asect;
-          char *subspace_name;
+	  char *subspace_name;
 
 	  /* Read in the next subspace.  */
 	  amt = sizeof ext_subspace;
 	  if (bfd_bread (&ext_subspace, amt, abfd) != amt)
 	    goto error_return;
 
-          som_swap_subspace_dictionary_in (&ext_subspace, &subspace);
+	  som_swap_subspace_dictionary_in (&ext_subspace, &subspace);
 
 	  /* Setup the subspace name string.  */
 	  subspace_name = subspace.name + space_strings;
@@ -2324,7 +2329,7 @@ setup_sections (bfd *abfd,
 	  else
 	    {
 	      /* The subspace_start field is not initialised in relocatable
-	         only objects, so it cannot be used for length calculations.
+		 only objects, so it cannot be used for length calculations.
 		 Instead we use the space_size value which we have been
 		 accumulating.  This isn't an accurate estimate since it
 		 ignores alignment and ordering issues.  */
@@ -3352,10 +3357,10 @@ som_write_space_strings (bfd *abfd,
 		 returning from this function.)  The same technique is
 		 used a few more times below when a buffer is
 		 reallocated.  */
-              if (2 * tmp_space_size < length + 5)
-                tmp_space_size = length + 5;
-              else
-                tmp_space_size = 2 * tmp_space_size;
+	      if (2 * tmp_space_size < length + 5)
+		tmp_space_size = length + 5;
+	      else
+		tmp_space_size = 2 * tmp_space_size;
 	      tmp_space = xrealloc (tmp_space, tmp_space_size);
 	    }
 
@@ -3436,8 +3441,8 @@ som_write_symbol_strings (bfd *abfd,
     {
       for (i = 0; i < 4; i++)
 	{
-          struct som_name_pt *name;
-          size_t length;
+	  struct som_name_pt *name;
+	  size_t length;
 
 	  switch (i)
 	    {
@@ -3453,8 +3458,8 @@ som_write_symbol_strings (bfd *abfd,
 	    case 3:
 	      name = &compilation_unit->version_id;
 	      break;
-            default:
-              abort ();
+	    default:
+	      abort ();
 	    }
 
 	  length = strlen (name->name);
@@ -3473,10 +3478,10 @@ som_write_symbol_strings (bfd *abfd,
 	      if (5 + length > tmp_space_size)
 		{
 		  /* See alloca above for discussion of new size.  */
-                  if (2 * tmp_space_size < 5 + length)
-                    tmp_space_size = 5 + length;
-                  else
-                    tmp_space_size = 2 * tmp_space_size;
+		  if (2 * tmp_space_size < 5 + length)
+		    tmp_space_size = 5 + length;
+		  else
+		    tmp_space_size = 2 * tmp_space_size;
 		  tmp_space = xrealloc (tmp_space, tmp_space_size);
 		}
 
@@ -3496,7 +3501,7 @@ som_write_symbol_strings (bfd *abfd,
 	  /* Next comes the string itself + a null terminator.  */
 	  strcpy (p, name->name);
 
-          name->strx = strings_size;
+	  name->strx = strings_size;
 
 	  p += length + 1;
 	  strings_size += length + 1;
@@ -3528,10 +3533,10 @@ som_write_symbol_strings (bfd *abfd,
 	  if (5 + length > tmp_space_size)
 	    {
 	      /* See alloca above for discussion of new size.  */
-              if (2 * tmp_space_size < 5 + length)
-                tmp_space_size = 5 + length;
-              else
-                tmp_space_size = 2 * tmp_space_size;
+	      if (2 * tmp_space_size < 5 + length)
+		tmp_space_size = 5 + length;
+	      else
+		tmp_space_size = 2 * tmp_space_size;
 	      tmp_space = xrealloc (tmp_space, tmp_space_size);
 	    }
 
@@ -3631,7 +3636,7 @@ som_begin_writing (bfd *abfd)
       obj_som_file_hdr (abfd)->aux_header_size += len;
       current_offset += len;
       som_swap_string_auxhdr_out
-        (obj_som_version_hdr (abfd), &ext_string_auxhdr);
+	(obj_som_version_hdr (abfd), &ext_string_auxhdr);
       if (bfd_bwrite (&ext_string_auxhdr, len, abfd) != len)
 	return FALSE;
 
@@ -3657,7 +3662,7 @@ som_begin_writing (bfd *abfd)
       obj_som_file_hdr (abfd)->aux_header_size += len;
       current_offset += len;
       som_swap_string_auxhdr_out
-        (obj_som_copyright_hdr (abfd), &ext_string_auxhdr);
+	(obj_som_copyright_hdr (abfd), &ext_string_auxhdr);
       if (bfd_bwrite (&ext_string_auxhdr, len, abfd) != len)
 	return FALSE;
 
@@ -4047,7 +4052,7 @@ som_finish_writing (bfd *abfd)
 	   subsection != NULL;
 	   subsection = subsection->next)
 	{
-          struct som_external_subspace_dictionary_record ext_subspace_dict;
+	  struct som_external_subspace_dictionary_record ext_subspace_dict;
 
 	  /* Skip any section which does not correspond to a space
 	     or subspace.  Or does not have SEC_ALLOC set (and therefore
@@ -4078,8 +4083,8 @@ som_finish_writing (bfd *abfd)
 	  som_section_data (subsection)->subspace_dict->space_index = i;
 
 	  /* Dump the current subspace header.  */
-          som_swap_subspace_dictionary_record_out
-            (som_section_data (subsection)->subspace_dict, &ext_subspace_dict);
+	  som_swap_subspace_dictionary_record_out
+	    (som_section_data (subsection)->subspace_dict, &ext_subspace_dict);
 	  amt = sizeof (struct som_subspace_dictionary_record);
 	  if (bfd_bwrite (&ext_subspace_dict, amt, abfd) != amt)
 	    return FALSE;
@@ -4104,7 +4109,7 @@ som_finish_writing (bfd *abfd)
 	   subsection != NULL;
 	   subsection = subsection->next)
 	{
-          struct som_external_subspace_dictionary_record ext_subspace_dict;
+	  struct som_external_subspace_dictionary_record ext_subspace_dict;
 
 	  /* Skip any section which does not correspond to a space or
 	     subspace, or which SEC_ALLOC set (and therefore handled
@@ -4136,8 +4141,8 @@ som_finish_writing (bfd *abfd)
 	  som_section_data (subsection)->subspace_dict->space_index = i;
 
 	  /* Dump this subspace header.  */
-          som_swap_subspace_dictionary_record_out
-            (som_section_data (subsection)->subspace_dict, &ext_subspace_dict);
+	  som_swap_subspace_dictionary_record_out
+	    (som_section_data (subsection)->subspace_dict, &ext_subspace_dict);
 	  amt = sizeof (struct som_subspace_dictionary_record);
 	  if (bfd_bwrite (&ext_subspace_dict, amt, abfd) != amt)
 	    return FALSE;
@@ -4166,7 +4171,7 @@ som_finish_writing (bfd *abfd)
 
       /* Dump its header.  */
       som_swap_space_dictionary_out (som_section_data (section)->space_dict,
-                                     &ext_space_dict);
+				     &ext_space_dict);
       amt = sizeof (struct som_external_space_dictionary_record);
       if (bfd_bwrite (&ext_space_dict, amt, abfd) != amt)
 	return FALSE;
@@ -4185,7 +4190,7 @@ som_finish_writing (bfd *abfd)
 	return FALSE;
 
       som_swap_compilation_unit_out
-        (obj_som_compilation_unit (abfd), &ext_comp_unit);
+	(obj_som_compilation_unit (abfd), &ext_comp_unit);
 
       amt = sizeof (struct som_external_compilation_unit);
       if (bfd_bwrite (&ext_comp_unit, amt, abfd) != amt)
@@ -4464,26 +4469,26 @@ som_build_and_write_symbol_table (bfd *a
 	 By the time we get here, the index has already been
 	 computed and stored into the name field in the BFD symbol.  */
       bfd_putb32 (som_symbol_data (bfd_syms[i])->stringtab_offset,
-                  som_symtab[i].name);
+		  som_symtab[i].name);
 
       /* Derive SOM information from the BFD symbol.  */
       som_bfd_derive_misc_symbol_info (abfd, bfd_syms[i], &info);
 
       /* Now use it.  */
       flags = (info.symbol_type << SOM_SYMBOL_TYPE_SH)
-        | (info.symbol_scope << SOM_SYMBOL_SCOPE_SH)
-        | (info.arg_reloc << SOM_SYMBOL_ARG_RELOC_SH)
-        | (3 << SOM_SYMBOL_XLEAST_SH)
-        | (info.secondary_def ? SOM_SYMBOL_SECONDARY_DEF : 0)
-        | (info.is_common ? SOM_SYMBOL_IS_COMMON : 0)
-        | (info.dup_common ? SOM_SYMBOL_DUP_COMMON : 0);
+	| (info.symbol_scope << SOM_SYMBOL_SCOPE_SH)
+	| (info.arg_reloc << SOM_SYMBOL_ARG_RELOC_SH)
+	| (3 << SOM_SYMBOL_XLEAST_SH)
+	| (info.secondary_def ? SOM_SYMBOL_SECONDARY_DEF : 0)
+	| (info.is_common ? SOM_SYMBOL_IS_COMMON : 0)
+	| (info.dup_common ? SOM_SYMBOL_DUP_COMMON : 0);
       bfd_putb32 (flags, som_symtab[i].flags);
 
       flags = (info.symbol_info << SOM_SYMBOL_SYMBOL_INFO_SH)
-        | (info.is_comdat ? SOM_SYMBOL_IS_COMDAT : 0);
+	| (info.is_comdat ? SOM_SYMBOL_IS_COMDAT : 0);
       bfd_putb32 (flags, som_symtab[i].info);
       bfd_putb32 (info.symbol_value | info.priv_level,
-                  som_symtab[i].symbol_value);
+		  som_symtab[i].symbol_value);
     }
 
   /* Everything is ready, seek to the right location and
@@ -4592,7 +4597,7 @@ bfd_section_from_som_symbol
 	  && symbol_type != ST_MILLICODE))
     {
       int idx = (bfd_getb32 (symbol->info) >> SOM_SYMBOL_SYMBOL_INFO_SH)
-        & SOM_SYMBOL_SYMBOL_INFO_MASK;
+	& SOM_SYMBOL_SYMBOL_INFO_MASK;
 
       for (section = abfd->sections; section != NULL; section = section->next)
 	if (section->target_index == idx && som_is_subspace (section))
@@ -4664,9 +4669,9 @@ som_slurp_symbol_table (bfd *abfd)
     {
       unsigned int flags = bfd_getb32 (bufp->flags);
       unsigned int symbol_type =
-        (flags >> SOM_SYMBOL_TYPE_SH) & SOM_SYMBOL_TYPE_MASK;
+	(flags >> SOM_SYMBOL_TYPE_SH) & SOM_SYMBOL_TYPE_MASK;
       unsigned int symbol_scope =
-        (flags >> SOM_SYMBOL_SCOPE_SH) & SOM_SYMBOL_SCOPE_MASK;
+	(flags >> SOM_SYMBOL_SCOPE_SH) & SOM_SYMBOL_SCOPE_MASK;
 
       /* I don't think we care about these.  */
       if (symbol_type == ST_SYM_EXT || symbol_type == ST_ARG_EXT)
@@ -4694,7 +4699,7 @@ som_slurp_symbol_table (bfd *abfd)
       else
 	som_symbol_data (sym)->som_type = SYMBOL_TYPE_UNKNOWN;
       som_symbol_data (sym)->tc_data.ap.hppa_arg_reloc =
-        (flags >> SOM_SYMBOL_ARG_RELOC_SH) & SOM_SYMBOL_ARG_RELOC_MASK;
+	(flags >> SOM_SYMBOL_ARG_RELOC_SH) & SOM_SYMBOL_ARG_RELOC_MASK;
 
       /* Some reasonable defaults.  */
       sym->symbol.the_bfd = abfd;
@@ -5007,7 +5012,7 @@ som_set_reloc_info (unsigned char *fixup
 		  push (v);
 		}
 	      else
-		/* An operator.  Pop two two values from the stack and
+		/* An operator.  Pop two values from the stack and
 		   use them as operands to the given operation.  Push
 		   the result of the operation back on the stack.  */
 		switch (c)
@@ -5486,7 +5491,7 @@ som_bfd_print_private_bfd_data (bfd *abf
       fprintf (f, "  length             %#x\n", auxhdr->length);
 
       /* Note that, depending on the HP-UX version, the following fields can be
-         either ints, or longs.  */
+	 either ints, or longs.  */
 
       fprintf (f, "  text size          %#lx\n", (long) exec_header->exec_tsize);
       fprintf (f, "  text memory offset %#lx\n", (long) exec_header->exec_tmem);
@@ -5736,9 +5741,9 @@ som_find_nearest_line (bfd *abfd,
     *discriminator_ptr = 0;
 
   if (! _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset,
-                                             & found, filename_ptr,
-                                             functionname_ptr, line_ptr,
-                                             & somdata (abfd).line_info))
+					     & found, filename_ptr,
+					     functionname_ptr, line_ptr,
+					     & somdata (abfd).line_info))
     return FALSE;
 
   if (found)
@@ -5914,10 +5919,10 @@ som_bfd_count_ar_symbols (bfd *abfd,
       /* Now iterate through the rest of the symbols on this chain.  */
       while (1)
 	{
-          unsigned int next_entry = bfd_getb32 (ext_lst_symbol.next_entry);
+	  unsigned int next_entry = bfd_getb32 (ext_lst_symbol.next_entry);
 
-          if (next_entry == 0)
-            break;
+	  if (next_entry == 0)
+	    break;
 
 	  /* Seek to the next symbol.  */
 	  if (bfd_seek (abfd, lst_filepos + next_entry, SEEK_SET) != 0)
@@ -6012,7 +6017,7 @@ som_bfd_fill_in_ar_symbols (bfd *abfd,
 	 index can point *anywhere* in the archive to save space, so just
 	 using the string table would not be safe.  */
       if (bfd_seek (abfd, (lst_filepos + string_loc
-                           + bfd_getb32 (lst_symbol.name) - 4), SEEK_SET) != 0)
+			   + bfd_getb32 (lst_symbol.name) - 4), SEEK_SET) != 0)
 	goto error_return;
 
       if (bfd_bread (&ext_len, (bfd_size_type) 4, abfd) != 4)
@@ -6031,8 +6036,8 @@ som_bfd_fill_in_ar_symbols (bfd *abfd,
       /* Fill in the file offset.  Note that the "location" field points
 	 to the SOM itself, not the ar_hdr in front of it.  */
       set->file_offset =
-        bfd_getb32 (som_dict[bfd_getb32 (lst_symbol.som_index)].location)
-        - sizeof (struct ar_hdr);
+	bfd_getb32 (som_dict[bfd_getb32 (lst_symbol.som_index)].location)
+	- sizeof (struct ar_hdr);
 
       /* Go to the next symbol.  */
       set++;
@@ -6040,10 +6045,10 @@ som_bfd_fill_in_ar_symbols (bfd *abfd,
       /* Iterate through the rest of the chain.  */
       while (1)
 	{
-          unsigned int next_entry = bfd_getb32 (lst_symbol.next_entry);
+	  unsigned int next_entry = bfd_getb32 (lst_symbol.next_entry);
 
-          if (next_entry == 0)
-            break;
+	  if (next_entry == 0)
+	    break;
 
 	  /* Seek to the next symbol and read it in.  */
 	  if (bfd_seek (abfd, lst_filepos + next_entry, SEEK_SET) != 0)
@@ -6055,12 +6060,12 @@ som_bfd_fill_in_ar_symbols (bfd *abfd,
 
 	  /* Seek to the name length & string and read them in.  */
 	  if (bfd_seek (abfd, lst_filepos + string_loc
-                        + bfd_getb32 (lst_symbol.name) - 4, SEEK_SET) != 0)
+			+ bfd_getb32 (lst_symbol.name) - 4, SEEK_SET) != 0)
 	    goto error_return;
 
 	  if (bfd_bread (&ext_len, (bfd_size_type) 4, abfd) != 4)
 	    goto error_return;
-          len = bfd_getb32 (ext_len);
+	  len = bfd_getb32 (ext_len);
 
 	  /* Allocate space for the name and null terminate it too.  */
 	  set->name = bfd_zalloc (abfd, (bfd_size_type) len + 1);
@@ -6074,8 +6079,8 @@ som_bfd_fill_in_ar_symbols (bfd *abfd,
 	  /* Fill in the file offset.  Note that the "location" field points
 	     to the SOM itself, not the ar_hdr in front of it.  */
 	  set->file_offset =
-            bfd_getb32 (som_dict[bfd_getb32 (lst_symbol.som_index)].location)
-            - sizeof (struct ar_hdr);
+	    bfd_getb32 (som_dict[bfd_getb32 (lst_symbol.som_index)].location)
+	    - sizeof (struct ar_hdr);
 
 	  /* Go on to the next symbol.  */
 	  set++;
@@ -6172,7 +6177,7 @@ som_slurp_armap (bfd *abfd)
   /* Get back to the start of the library symbol table.  */
   if (bfd_seek (abfd, (ardata->first_file_filepos - parsed_size
 		       + sizeof (struct som_external_lst_header)),
-                SEEK_SET) != 0)
+		SEEK_SET) != 0)
     return FALSE;
 
   /* Initialize the cache and allocate space for the library symbols.  */
@@ -6389,11 +6394,11 @@ som_bfd_ar_write_symbol_stuff (bfd *abfd
       for (i = 0; i < curr_count; i++, sym++)
 	{
 	  struct som_misc_symbol_info info;
-          struct som_external_lst_symbol_record *last;
-          unsigned int symbol_pos;
-          unsigned int slen;
-          unsigned int symbol_key;
-          unsigned int flags;
+	  struct som_external_lst_symbol_record *last;
+	  unsigned int symbol_pos;
+	  unsigned int slen;
+	  unsigned int symbol_key;
+	  unsigned int flags;
 
 	  /* Derive SOM information from the BFD symbol.  */
 	  som_bfd_derive_misc_symbol_info (curr_bfd, &sym->symbol, &info);
@@ -6421,40 +6426,40 @@ som_bfd_ar_write_symbol_stuff (bfd *abfd
 	      bfd_putb32 (arelt_size (curr_bfd), som_dict[som_index].length);
 	    }
 
-          symbol_key = som_bfd_ar_symbol_hash (&sym->symbol);
+	  symbol_key = som_bfd_ar_symbol_hash (&sym->symbol);
 
 	  /* Fill in the lst symbol record.  */
-          flags = 0;
-          if (info.secondary_def)
-            flags |= LST_SYMBOL_SECONDARY_DEF;
-          flags |= info.symbol_type << LST_SYMBOL_SYMBOL_TYPE_SH;
-          flags |= info.symbol_scope << LST_SYMBOL_SYMBOL_SCOPE_SH;
-          if (bfd_is_com_section (sym->symbol.section))
-            flags |= LST_SYMBOL_IS_COMMON;
-          if (info.dup_common)
-            flags |= LST_SYMBOL_DUP_COMMON;
-          flags |= 3 << LST_SYMBOL_XLEAST_SH;
-          flags |= info.arg_reloc << LST_SYMBOL_ARG_RELOC_SH;
-          bfd_putb32 (flags, curr_lst_sym->flags);
-          bfd_putb32 (p - strings + 4, curr_lst_sym->name);
-          bfd_putb32 (0, curr_lst_sym->qualifier_name);
-          bfd_putb32 (info.symbol_info, curr_lst_sym->symbol_info);
-          bfd_putb32 (info.symbol_value | info.priv_level,
-                      curr_lst_sym->symbol_value);
-          bfd_putb32 (0, curr_lst_sym->symbol_descriptor);
-          curr_lst_sym->reserved = 0;
-          bfd_putb32 (som_index, curr_lst_sym->som_index);
-          bfd_putb32 (symbol_key, curr_lst_sym->symbol_key);
-          bfd_putb32 (0, curr_lst_sym->next_entry);
+	  flags = 0;
+	  if (info.secondary_def)
+	    flags |= LST_SYMBOL_SECONDARY_DEF;
+	  flags |= info.symbol_type << LST_SYMBOL_SYMBOL_TYPE_SH;
+	  flags |= info.symbol_scope << LST_SYMBOL_SYMBOL_SCOPE_SH;
+	  if (bfd_is_com_section (sym->symbol.section))
+	    flags |= LST_SYMBOL_IS_COMMON;
+	  if (info.dup_common)
+	    flags |= LST_SYMBOL_DUP_COMMON;
+	  flags |= 3 << LST_SYMBOL_XLEAST_SH;
+	  flags |= info.arg_reloc << LST_SYMBOL_ARG_RELOC_SH;
+	  bfd_putb32 (flags, curr_lst_sym->flags);
+	  bfd_putb32 (p - strings + 4, curr_lst_sym->name);
+	  bfd_putb32 (0, curr_lst_sym->qualifier_name);
+	  bfd_putb32 (info.symbol_info, curr_lst_sym->symbol_info);
+	  bfd_putb32 (info.symbol_value | info.priv_level,
+		      curr_lst_sym->symbol_value);
+	  bfd_putb32 (0, curr_lst_sym->symbol_descriptor);
+	  curr_lst_sym->reserved = 0;
+	  bfd_putb32 (som_index, curr_lst_sym->som_index);
+	  bfd_putb32 (symbol_key, curr_lst_sym->symbol_key);
+	  bfd_putb32 (0, curr_lst_sym->next_entry);
 
 	  /* Insert into the hash table.  */
-          symbol_pos =
-            (curr_lst_sym - lst_syms)
-            * sizeof (struct som_external_lst_symbol_record)
-            + hash_size * 4
-            + module_count * sizeof (struct som_external_som_entry)
-            + sizeof (struct som_external_lst_header);
-          last = last_hash_entry[symbol_key % hash_size];
+	  symbol_pos =
+	    (curr_lst_sym - lst_syms)
+	    * sizeof (struct som_external_lst_symbol_record)
+	    + hash_size * 4
+	    + module_count * sizeof (struct som_external_som_entry)
+	    + sizeof (struct som_external_lst_header);
+	  last = last_hash_entry[symbol_key % hash_size];
 	  if (last != NULL)
 	    {
 	      /* There is already something at the head of this hash chain,
@@ -6463,26 +6468,26 @@ som_bfd_ar_write_symbol_stuff (bfd *abfd
 	    }
 	  else
 	    /* First entry in this hash chain.  */
-            bfd_putb32 (symbol_pos, hash_table + 4 * (symbol_key % hash_size));
+	    bfd_putb32 (symbol_pos, hash_table + 4 * (symbol_key % hash_size));
 
 	  /* Keep track of the last symbol we added to this chain so we can
 	     easily update its next_entry pointer.  */
-          last_hash_entry[symbol_key % hash_size] = curr_lst_sym;
+	  last_hash_entry[symbol_key % hash_size] = curr_lst_sym;
 
 	  /* Update the string table.  */
-          slen = strlen (sym->symbol.name);
+	  slen = strlen (sym->symbol.name);
 	  bfd_put_32 (abfd, slen, p);
 	  p += 4;
-          slen++; /* Nul terminator.  */
+	  slen++; /* Nul terminator.  */
 	  memcpy (p, sym->symbol.name, slen);
 	  p += slen;
 	  while (slen % 4)
 	    {
 	      bfd_put_8 (abfd, 0, p);
 	      p++;
-              slen++;
+	      slen++;
 	    }
-          BFD_ASSERT (p <= strings + string_size);
+	  BFD_ASSERT (p <= strings + string_size);
 
 	  /* Head to the next symbol.  */
 	  curr_lst_sym++;
@@ -6649,15 +6654,15 @@ som_write_armap (bfd *abfd,
 
   sprintf (hdr.ar_name, "/              ");
   _bfd_ar_spacepad (hdr.ar_date, sizeof (hdr.ar_date), "%-12ld",
-                    bfd_ardata (abfd)->armap_timestamp);
+		    bfd_ardata (abfd)->armap_timestamp);
   _bfd_ar_spacepad (hdr.ar_uid, sizeof (hdr.ar_uid), "%ld",
-                    statbuf.st_uid);
+		    statbuf.st_uid);
   _bfd_ar_spacepad (hdr.ar_gid, sizeof (hdr.ar_gid), "%ld",
-                    statbuf.st_gid);
+		    statbuf.st_gid);
   _bfd_ar_spacepad (hdr.ar_mode, sizeof (hdr.ar_mode), "%-8o",
-                    (unsigned int)statbuf.st_mode);
+		    (unsigned int)statbuf.st_mode);
   _bfd_ar_spacepad (hdr.ar_size, sizeof (hdr.ar_size), "%-10d",
-                    (int) lst_size);
+		    (int) lst_size);
   hdr.ar_fmag[0] = '`';
   hdr.ar_fmag[1] = '\012';
 
@@ -6721,44 +6726,46 @@ som_bfd_link_split_section (bfd *abfd AT
   return som_is_subspace (sec) && sec->size > 240000;
 }
 
-#define som_find_line			        _bfd_nosymbols_find_line
+#define som_find_line				_bfd_nosymbols_find_line
 #define som_get_symbol_version_string		_bfd_nosymbols_get_symbol_version_string
-#define	som_close_and_cleanup		        som_bfd_free_cached_info
-#define som_read_ar_hdr			        _bfd_generic_read_ar_hdr
-#define som_write_ar_hdr		        _bfd_generic_write_ar_hdr
-#define som_openr_next_archived_file	        bfd_generic_openr_next_archived_file
-#define som_get_elt_at_index		        _bfd_generic_get_elt_at_index
-#define som_generic_stat_arch_elt	        bfd_generic_stat_arch_elt
-#define som_truncate_arname		        bfd_bsd_truncate_arname
-#define som_slurp_extended_name_table	        _bfd_slurp_extended_name_table
-#define som_construct_extended_name_table       _bfd_archive_coff_construct_extended_name_table
-#define som_update_armap_timestamp	        bfd_true
+#define	som_close_and_cleanup			som_bfd_free_cached_info
+#define som_read_ar_hdr				_bfd_generic_read_ar_hdr
+#define som_write_ar_hdr			_bfd_generic_write_ar_hdr
+#define som_openr_next_archived_file		bfd_generic_openr_next_archived_file
+#define som_get_elt_at_index			_bfd_generic_get_elt_at_index
+#define som_generic_stat_arch_elt		bfd_generic_stat_arch_elt
+#define som_truncate_arname			bfd_bsd_truncate_arname
+#define som_slurp_extended_name_table		_bfd_slurp_extended_name_table
+#define som_construct_extended_name_table	_bfd_archive_coff_construct_extended_name_table
+#define som_update_armap_timestamp		bfd_true
 #define som_bfd_is_target_special_symbol   ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define som_get_lineno			        _bfd_nosymbols_get_lineno
-#define som_bfd_make_debug_symbol	        _bfd_nosymbols_bfd_make_debug_symbol
-#define som_read_minisymbols		        _bfd_generic_read_minisymbols
-#define som_minisymbol_to_symbol	        _bfd_generic_minisymbol_to_symbol
-#define som_get_section_contents_in_window      _bfd_generic_get_section_contents_in_window
-#define som_bfd_get_relocated_section_contents  bfd_generic_get_relocated_section_contents
-#define som_bfd_relax_section                   bfd_generic_relax_section
-#define som_bfd_link_hash_table_create          _bfd_generic_link_hash_table_create
-#define som_bfd_link_add_symbols                _bfd_generic_link_add_symbols
-#define som_bfd_link_just_syms                  _bfd_generic_link_just_syms
+#define som_get_lineno				_bfd_nosymbols_get_lineno
+#define som_bfd_make_debug_symbol		_bfd_nosymbols_bfd_make_debug_symbol
+#define som_read_minisymbols			_bfd_generic_read_minisymbols
+#define som_minisymbol_to_symbol		_bfd_generic_minisymbol_to_symbol
+#define som_get_section_contents_in_window	_bfd_generic_get_section_contents_in_window
+#define som_bfd_get_relocated_section_contents	bfd_generic_get_relocated_section_contents
+#define som_bfd_relax_section			bfd_generic_relax_section
+#define som_bfd_link_hash_table_create		_bfd_generic_link_hash_table_create
+#define som_bfd_link_add_symbols		_bfd_generic_link_add_symbols
+#define som_bfd_link_just_syms			_bfd_generic_link_just_syms
 #define som_bfd_copy_link_hash_symbol_type \
   _bfd_generic_copy_link_hash_symbol_type
-#define som_bfd_final_link                      _bfd_generic_final_link
-#define som_bfd_gc_sections		        bfd_generic_gc_sections
-#define som_bfd_lookup_section_flags            bfd_generic_lookup_section_flags
-#define som_bfd_merge_sections		        bfd_generic_merge_sections
-#define som_bfd_is_group_section	        bfd_generic_is_group_section
-#define som_bfd_discard_group		        bfd_generic_discard_group
-#define som_section_already_linked              _bfd_generic_section_already_linked
-#define som_bfd_define_common_symbol            bfd_generic_define_common_symbol
+#define som_bfd_final_link			_bfd_generic_final_link
+#define som_bfd_gc_sections			bfd_generic_gc_sections
+#define som_bfd_lookup_section_flags		bfd_generic_lookup_section_flags
+#define som_bfd_merge_sections			bfd_generic_merge_sections
+#define som_bfd_is_group_section		bfd_generic_is_group_section
+#define som_bfd_discard_group			bfd_generic_discard_group
+#define som_section_already_linked		_bfd_generic_section_already_linked
+#define som_bfd_define_common_symbol		bfd_generic_define_common_symbol
+#define som_bfd_define_start_stop		bfd_generic_define_start_stop
 #define som_bfd_merge_private_bfd_data		_bfd_generic_bfd_merge_private_bfd_data
 #define som_bfd_copy_private_header_data	_bfd_generic_bfd_copy_private_header_data
 #define som_bfd_set_private_flags		_bfd_generic_bfd_set_private_flags
 #define som_find_inliner_info			_bfd_nosymbols_find_inliner_info
-#define som_bfd_link_check_relocs               _bfd_generic_link_check_relocs
+#define som_bfd_link_check_relocs		_bfd_generic_link_check_relocs
+#define som_set_reloc				_bfd_generic_set_reloc
 
 const bfd_target hppa_som_vec =
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/som.h ./bfd/som.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/som.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/som.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* HP PA-RISC SOM object file format:  definitions internal to BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Contributed by the Center for Software Science at the
    University of Utah (pa-gdb-bugs@cs.utah.edu).
@@ -205,7 +205,7 @@ struct som_section_data_struct
 #define obj_som_stringtab_size(bfd)	(somdata (bfd).stringtab_size)
 #define obj_som_reloc_filepos(bfd)	(somdata (bfd).reloc_filepos)
 #define obj_som_sorted_syms(bfd)	(somdata (bfd).sorted_syms)
-#define som_section_data(sec)      ((struct som_section_data_struct *) sec->used_by_bfd)
+#define som_section_data(sec)		((struct som_section_data_struct *) sec->used_by_bfd)
 #define som_symbol_data(symbol)		((som_symbol_type *) symbol)
 
 /* Defines groups of basic relocations.  FIXME:  These should
@@ -233,9 +233,9 @@ struct som_section_data_struct
 /* Exported functions, mostly for use by GAS.  */
 bfd_boolean  bfd_som_set_section_attributes    (asection *, int, int, unsigned int, int);
 bfd_boolean  bfd_som_set_subsection_attributes (asection *, asection *, int, unsigned int, int, int, int, int);
-void         bfd_som_set_symbol_type           (asymbol *, unsigned int);
-bfd_boolean  bfd_som_attach_aux_hdr            (bfd *, int, char *);
-int **       hppa_som_gen_reloc_type           (bfd *, int, int, enum hppa_reloc_field_selector_type_alt, int, asymbol *);
+void	     bfd_som_set_symbol_type	       (asymbol *, unsigned int);
+bfd_boolean  bfd_som_attach_aux_hdr	       (bfd *, int, char *);
+int **	     hppa_som_gen_reloc_type	       (bfd *, int, int, enum hppa_reloc_field_selector_type_alt, int, asymbol *);
 bfd_boolean  bfd_som_attach_compilation_unit   (bfd *, const char *, const char *, const char *, const char *);
 asection *   bfd_section_from_som_symbol       (bfd *abfd, struct som_external_symbol_dictionary_record *symbol);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/sparclinux.c ./bfd/sparclinux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/sparclinux.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/sparclinux.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for linux flavored sparc a.out binaries.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -31,7 +31,7 @@
 #include "aout/aout64.h"
 #include "aout/stab_gnu.h"
 #include "aout/ar.h"
-#include "libaout.h"           /* BFD a.out internal data structures */
+#include "libaout.h"	       /* BFD a.out internal data structures */
 
 #define DEFAULT_ARCH bfd_arch_sparc
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/sparclynx.c ./bfd/sparclynx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/sparclynx.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/sparclynx.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD support for Sparc binaries under LynxOS.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/sparcnetbsd.c ./bfd/sparcnetbsd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/sparcnetbsd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/sparcnetbsd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for NetBSD/sparc a.out-ish binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -26,7 +26,7 @@
 #define TARGET_PAGE_SIZE 0x2000
 
 #define DEFAULT_ARCH	bfd_arch_sparc
-#define DEFAULT_MID 	M_SPARC_NETBSD
+#define DEFAULT_MID	M_SPARC_NETBSD
 
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
    remove whitespace added here, and thus will fail to concatenate
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/srec.c ./bfd/srec.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/srec.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/srec.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for s-record objects.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -94,7 +94,7 @@
 	  _start $14
 	  _etext $8036
 	  _edata $8036
- 	  _end $8036
+	  _end $8036
 	$$
 
    DESCRIPTION
@@ -854,7 +854,7 @@ srec_get_section_contents (bfd *abfd,
 	return FALSE;
 
       if (! srec_read_section (abfd, section,
-                               (bfd_byte *) section->used_by_bfd))
+			       (bfd_byte *) section->used_by_bfd))
 	return FALSE;
     }
 
@@ -1254,37 +1254,38 @@ srec_print_symbol (bfd *abfd,
     }
 }
 
-#define	srec_close_and_cleanup                    _bfd_generic_close_and_cleanup
-#define srec_bfd_free_cached_info                 _bfd_generic_bfd_free_cached_info
-#define srec_new_section_hook                     _bfd_generic_new_section_hook
-#define srec_bfd_is_target_special_symbol         ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define srec_bfd_is_local_label_name              bfd_generic_is_local_label_name
-#define srec_get_lineno                           _bfd_nosymbols_get_lineno
-#define srec_find_nearest_line                    _bfd_nosymbols_find_nearest_line
-#define srec_find_line                            _bfd_nosymbols_find_line
-#define srec_find_inliner_info                    _bfd_nosymbols_find_inliner_info
-#define srec_make_empty_symbol                    _bfd_generic_make_empty_symbol
+#define	srec_close_and_cleanup			  _bfd_generic_close_and_cleanup
+#define srec_bfd_free_cached_info		  _bfd_generic_bfd_free_cached_info
+#define srec_new_section_hook			  _bfd_generic_new_section_hook
+#define srec_bfd_is_target_special_symbol	  ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
+#define srec_bfd_is_local_label_name		  bfd_generic_is_local_label_name
+#define srec_get_lineno				  _bfd_nosymbols_get_lineno
+#define srec_find_nearest_line			  _bfd_nosymbols_find_nearest_line
+#define srec_find_line				  _bfd_nosymbols_find_line
+#define srec_find_inliner_info			  _bfd_nosymbols_find_inliner_info
+#define srec_make_empty_symbol			  _bfd_generic_make_empty_symbol
 #define srec_get_symbol_version_string		  _bfd_nosymbols_get_symbol_version_string
-#define srec_bfd_make_debug_symbol                _bfd_nosymbols_bfd_make_debug_symbol
-#define srec_read_minisymbols                     _bfd_generic_read_minisymbols
-#define srec_minisymbol_to_symbol                 _bfd_generic_minisymbol_to_symbol
-#define srec_get_section_contents_in_window       _bfd_generic_get_section_contents_in_window
-#define srec_bfd_get_relocated_section_contents   bfd_generic_get_relocated_section_contents
-#define srec_bfd_relax_section                    bfd_generic_relax_section
-#define srec_bfd_gc_sections                      bfd_generic_gc_sections
-#define srec_bfd_lookup_section_flags             bfd_generic_lookup_section_flags
-#define srec_bfd_merge_sections                   bfd_generic_merge_sections
-#define srec_bfd_is_group_section                 bfd_generic_is_group_section
-#define srec_bfd_discard_group                    bfd_generic_discard_group
-#define srec_section_already_linked               _bfd_generic_section_already_linked
-#define srec_bfd_define_common_symbol             bfd_generic_define_common_symbol
-#define srec_bfd_link_hash_table_create           _bfd_generic_link_hash_table_create
-#define srec_bfd_link_add_symbols                 _bfd_generic_link_add_symbols
-#define srec_bfd_link_just_syms                   _bfd_generic_link_just_syms
-#define srec_bfd_copy_link_hash_symbol_type       _bfd_generic_copy_link_hash_symbol_type
-#define srec_bfd_final_link                       _bfd_generic_final_link
-#define srec_bfd_link_split_section               _bfd_generic_link_split_section
-#define srec_bfd_link_check_relocs                _bfd_generic_link_check_relocs
+#define srec_bfd_make_debug_symbol		  _bfd_nosymbols_bfd_make_debug_symbol
+#define srec_read_minisymbols			  _bfd_generic_read_minisymbols
+#define srec_minisymbol_to_symbol		  _bfd_generic_minisymbol_to_symbol
+#define srec_get_section_contents_in_window	  _bfd_generic_get_section_contents_in_window
+#define srec_bfd_get_relocated_section_contents	  bfd_generic_get_relocated_section_contents
+#define srec_bfd_relax_section			  bfd_generic_relax_section
+#define srec_bfd_gc_sections			  bfd_generic_gc_sections
+#define srec_bfd_lookup_section_flags		  bfd_generic_lookup_section_flags
+#define srec_bfd_merge_sections			  bfd_generic_merge_sections
+#define srec_bfd_is_group_section		  bfd_generic_is_group_section
+#define srec_bfd_discard_group			  bfd_generic_discard_group
+#define srec_section_already_linked		  _bfd_generic_section_already_linked
+#define srec_bfd_define_common_symbol		  bfd_generic_define_common_symbol
+#define srec_bfd_define_start_stop		  bfd_generic_define_start_stop
+#define srec_bfd_link_hash_table_create		  _bfd_generic_link_hash_table_create
+#define srec_bfd_link_add_symbols		  _bfd_generic_link_add_symbols
+#define srec_bfd_link_just_syms			  _bfd_generic_link_just_syms
+#define srec_bfd_copy_link_hash_symbol_type	  _bfd_generic_copy_link_hash_symbol_type
+#define srec_bfd_final_link			  _bfd_generic_final_link
+#define srec_bfd_link_split_section		  _bfd_generic_link_split_section
+#define srec_bfd_link_check_relocs		  _bfd_generic_link_check_relocs
 
 const bfd_target srec_vec =
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/stabs.c ./bfd/stabs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/stabs.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/stabs.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Stabs in sections linking support.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -127,7 +127,7 @@ stab_link_includes_newfunc (struct bfd_h
      subclass.  */
   if (ret == NULL)
     ret = (struct stab_link_includes_entry *)
-        bfd_hash_allocate (table, sizeof (struct stab_link_includes_entry));
+	bfd_hash_allocate (table, sizeof (struct stab_link_includes_entry));
   if (ret == NULL)
     return NULL;
 
@@ -276,7 +276,7 @@ _bfd_link_section_stabs (bfd *abfd,
 	{
 	  _bfd_error_handler
 	    /* xgettext:c-format */
-	    (_("%B(%A+0x%lx): Stabs entry has invalid string index."),
+	    (_("%B(%A+%#lx): Stabs entry has invalid string index."),
 	     abfd, stabsec, (long) (sym - stabbuf));
 	  bfd_set_error (bfd_error_bad_value);
 	  goto error_return;
@@ -389,12 +389,12 @@ _bfd_link_section_stabs (bfd *abfd,
 	      /* This is the first time we have seen this header file
 		 with this set of stabs strings.  */
 	      t = (struct stab_link_includes_totals *)
-                  bfd_hash_allocate (&sinfo->includes, sizeof *t);
+		  bfd_hash_allocate (&sinfo->includes, sizeof *t);
 	      if (t == NULL)
 		goto error_return;
 	      t->sum_chars = sum_chars;
 	      t->num_chars = num_chars;
-              /* Trim data down.  */
+	      /* Trim data down.  */
 	      t->symb = symb = (char *) bfd_realloc_or_free (symb, num_chars);
 	      t->next = incl_entry->totals;
 	      incl_entry->totals = t;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/stab-syms.c ./bfd/stab-syms.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/stab-syms.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/stab-syms.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Table of stab names for the BFD library.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/sunos.c ./bfd/sunos.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/sunos.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/sunos.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD backend for SunOS binaries.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -42,29 +42,29 @@
        && bfd_lookup_arch (bfd_arch_m68k, 0) != NULL))
 
 #define MY_get_dynamic_symtab_upper_bound  sunos_get_dynamic_symtab_upper_bound
-#define MY_canonicalize_dynamic_symtab     sunos_canonicalize_dynamic_symtab
-#define MY_get_synthetic_symtab            _bfd_nodynamic_get_synthetic_symtab
+#define MY_canonicalize_dynamic_symtab	   sunos_canonicalize_dynamic_symtab
+#define MY_get_synthetic_symtab		   _bfd_nodynamic_get_synthetic_symtab
 #define MY_get_dynamic_reloc_upper_bound   sunos_get_dynamic_reloc_upper_bound
-#define MY_canonicalize_dynamic_reloc      sunos_canonicalize_dynamic_reloc
-#define MY_bfd_link_hash_table_create      sunos_link_hash_table_create
-#define MY_add_dynamic_symbols             sunos_add_dynamic_symbols
-#define MY_add_one_symbol                  sunos_add_one_symbol
-#define MY_link_dynamic_object             sunos_link_dynamic_object
-#define MY_write_dynamic_symbol            sunos_write_dynamic_symbol
-#define MY_check_dynamic_reloc             sunos_check_dynamic_reloc
-#define MY_finish_dynamic_link             sunos_finish_dynamic_link
-
-static bfd_boolean sunos_add_dynamic_symbols            (bfd *, struct bfd_link_info *, struct external_nlist **, bfd_size_type *, char **);
-static bfd_boolean sunos_add_one_symbol                 (struct bfd_link_info *, bfd *, const char *, flagword, asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, struct bfd_link_hash_entry **);
-static bfd_boolean sunos_link_dynamic_object            (struct bfd_link_info *, bfd *);
-static bfd_boolean sunos_write_dynamic_symbol           (bfd *, struct bfd_link_info *, struct aout_link_hash_entry *);
-static bfd_boolean sunos_check_dynamic_reloc            (struct bfd_link_info *, bfd *, asection *, struct aout_link_hash_entry *, void *, bfd_byte *, bfd_boolean *, bfd_vma *);
-static bfd_boolean sunos_finish_dynamic_link            (bfd *, struct bfd_link_info *);
-static struct bfd_link_hash_table *sunos_link_hash_table_create  (bfd *);
-static long        sunos_get_dynamic_symtab_upper_bound (bfd *);
-static long        sunos_canonicalize_dynamic_symtab    (bfd *, asymbol **);
-static long        sunos_get_dynamic_reloc_upper_bound  (bfd *);
-static long        sunos_canonicalize_dynamic_reloc     (bfd *, arelent **, asymbol **);
+#define MY_canonicalize_dynamic_reloc	   sunos_canonicalize_dynamic_reloc
+#define MY_bfd_link_hash_table_create	   sunos_link_hash_table_create
+#define MY_add_dynamic_symbols		   sunos_add_dynamic_symbols
+#define MY_add_one_symbol		   sunos_add_one_symbol
+#define MY_link_dynamic_object		   sunos_link_dynamic_object
+#define MY_write_dynamic_symbol		   sunos_write_dynamic_symbol
+#define MY_check_dynamic_reloc		   sunos_check_dynamic_reloc
+#define MY_finish_dynamic_link		   sunos_finish_dynamic_link
+
+static bfd_boolean sunos_add_dynamic_symbols		(bfd *, struct bfd_link_info *, struct external_nlist **, bfd_size_type *, char **);
+static bfd_boolean sunos_add_one_symbol			(struct bfd_link_info *, bfd *, const char *, flagword, asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, struct bfd_link_hash_entry **);
+static bfd_boolean sunos_link_dynamic_object		(struct bfd_link_info *, bfd *);
+static bfd_boolean sunos_write_dynamic_symbol		(bfd *, struct bfd_link_info *, struct aout_link_hash_entry *);
+static bfd_boolean sunos_check_dynamic_reloc		(struct bfd_link_info *, bfd *, asection *, struct aout_link_hash_entry *, void *, bfd_byte *, bfd_boolean *, bfd_vma *);
+static bfd_boolean sunos_finish_dynamic_link		(bfd *, struct bfd_link_info *);
+static struct bfd_link_hash_table *sunos_link_hash_table_create	 (bfd *);
+static long	   sunos_get_dynamic_symtab_upper_bound (bfd *);
+static long	   sunos_canonicalize_dynamic_symtab	(bfd *, asymbol **);
+static long	   sunos_get_dynamic_reloc_upper_bound	(bfd *);
+static long	   sunos_canonicalize_dynamic_reloc	(bfd *, arelent **, asymbol **);
 
 /* Include the usual a.out support.  */
 #include "aoutf1.h"
@@ -2314,7 +2314,7 @@ sunos_write_dynamic_symbol (bfd *output_
 }
 
 /* This is called for each reloc against an external symbol.  If this
-   is a reloc which are are going to copy as a dynamic reloc, then
+   is a reloc which are going to copy as a dynamic reloc, then
    copy it over, and tell the caller to not bother processing this
    reloc.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/syms.c ./bfd/syms.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/syms.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/syms.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Generic symbol-table support for the BFD library.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -63,29 +63,29 @@ SUBSECTION
 	allocating storage, and the actual reading process. This is an
 	excerpt from an application which reads the symbol table:
 
-|	  long storage_needed;
-|	  asymbol **symbol_table;
-|	  long number_of_symbols;
-|	  long i;
+|         long storage_needed;
+|         asymbol **symbol_table;
+|         long number_of_symbols;
+|         long i;
 |
-|	  storage_needed = bfd_get_symtab_upper_bound (abfd);
+|         storage_needed = bfd_get_symtab_upper_bound (abfd);
 |
 |         if (storage_needed < 0)
 |           FAIL
 |
-|	  if (storage_needed == 0)
-|	    return;
+|         if (storage_needed == 0)
+|           return;
 |
-|	  symbol_table = xmalloc (storage_needed);
-|	    ...
-|	  number_of_symbols =
-|	     bfd_canonicalize_symtab (abfd, symbol_table);
+|         symbol_table = xmalloc (storage_needed);
+|           ...
+|         number_of_symbols =
+|            bfd_canonicalize_symtab (abfd, symbol_table);
 |
 |         if (number_of_symbols < 0)
 |           FAIL
 |
-|	  for (i = 0; i < number_of_symbols; i++)
-|	    process_symbol (symbol_table[i]);
+|         for (i = 0; i < number_of_symbols; i++)
+|           process_symbol (symbol_table[i]);
 
 	All storage for the symbols themselves is in an objalloc
 	connected to the BFD; it is freed when the BFD is closed.
@@ -105,36 +105,36 @@ SUBSECTION
 	which has been created using <<bfd_make_empty_symbol>>.  Here is an
 	example showing the creation of a symbol table with only one element:
 
-|	#include "sysdep.h"
-|	#include "bfd.h"
-|	int main (void)
-|	{
-|	  bfd *abfd;
-|	  asymbol *ptrs[2];
-|	  asymbol *new;
+|       #include "sysdep.h"
+|       #include "bfd.h"
+|       int main (void)
+|       {
+|         bfd *abfd;
+|         asymbol *ptrs[2];
+|         asymbol *new;
 |
-|	  abfd = bfd_openw ("foo","a.out-sunos-big");
-|	  bfd_set_format (abfd, bfd_object);
-|	  new = bfd_make_empty_symbol (abfd);
-|	  new->name = "dummy_symbol";
-|	  new->section = bfd_make_section_old_way (abfd, ".text");
-|	  new->flags = BSF_GLOBAL;
-|	  new->value = 0x12345;
+|         abfd = bfd_openw ("foo","a.out-sunos-big");
+|         bfd_set_format (abfd, bfd_object);
+|         new = bfd_make_empty_symbol (abfd);
+|         new->name = "dummy_symbol";
+|         new->section = bfd_make_section_old_way (abfd, ".text");
+|         new->flags = BSF_GLOBAL;
+|         new->value = 0x12345;
 |
-|	  ptrs[0] = new;
-|	  ptrs[1] = 0;
+|         ptrs[0] = new;
+|         ptrs[1] = 0;
 |
-|	  bfd_set_symtab (abfd, ptrs, 1);
-|	  bfd_close (abfd);
-|	  return 0;
-|	}
+|         bfd_set_symtab (abfd, ptrs, 1);
+|         bfd_close (abfd);
+|         return 0;
+|       }
 |
-|	./makesym
-|	nm foo
-|	00012345 A dummy_symbol
+|       ./makesym
+|       nm foo
+|       00012345 A dummy_symbol
 
 	Many formats cannot represent arbitrary symbol information; for
- 	instance, the <<a.out>> object format does not allow an
+	instance, the <<a.out>> object format does not allow an
 	arbitrary number of sections. A symbol pointing to a section
 	which is not one  of <<.text>>, <<.data>> or <<.bss>> cannot
 	be described.
@@ -204,98 +204,98 @@ CODE_FRAGMENT
 .  symvalue value;
 .
 .  {* Attributes of a symbol.  *}
-.#define BSF_NO_FLAGS    	0x00
+.#define BSF_NO_FLAGS            0
 .
 .  {* The symbol has local scope; <<static>> in <<C>>. The value
 .     is the offset into the section of the data.  *}
-.#define BSF_LOCAL		(1 << 0)
+.#define BSF_LOCAL               (1 << 0)
 .
 .  {* The symbol has global scope; initialized data in <<C>>. The
 .     value is the offset into the section of the data.  *}
-.#define BSF_GLOBAL		(1 << 1)
+.#define BSF_GLOBAL              (1 << 1)
 .
 .  {* The symbol has global scope and is exported. The value is
 .     the offset into the section of the data.  *}
-.#define BSF_EXPORT	BSF_GLOBAL {* No real difference.  *}
+.#define BSF_EXPORT              BSF_GLOBAL {* No real difference.  *}
 .
 .  {* A normal C symbol would be one of:
 .     <<BSF_LOCAL>>, <<BSF_UNDEFINED>> or <<BSF_GLOBAL>>.  *}
 .
 .  {* The symbol is a debugging record. The value has an arbitrary
 .     meaning, unless BSF_DEBUGGING_RELOC is also set.  *}
-.#define BSF_DEBUGGING		(1 << 2)
+.#define BSF_DEBUGGING           (1 << 2)
 .
 .  {* The symbol denotes a function entry point.  Used in ELF,
 .     perhaps others someday.  *}
-.#define BSF_FUNCTION		(1 << 3)
+.#define BSF_FUNCTION            (1 << 3)
 .
 .  {* Used by the linker.  *}
-.#define BSF_KEEP		(1 << 5)
+.#define BSF_KEEP                (1 << 5)
 .
 .  {* An ELF common symbol.  *}
-.#define BSF_ELF_COMMON		(1 << 6)
+.#define BSF_ELF_COMMON          (1 << 6)
 .
 .  {* A weak global symbol, overridable without warnings by
 .     a regular global symbol of the same name.  *}
-.#define BSF_WEAK		(1 << 7)
+.#define BSF_WEAK                (1 << 7)
 .
 .  {* This symbol was created to point to a section, e.g. ELF's
 .     STT_SECTION symbols.  *}
-.#define BSF_SECTION_SYM	(1 << 8)
+.#define BSF_SECTION_SYM         (1 << 8)
 .
 .  {* The symbol used to be a common symbol, but now it is
 .     allocated.  *}
-.#define BSF_OLD_COMMON		(1 << 9)
+.#define BSF_OLD_COMMON          (1 << 9)
 .
 .  {* In some files the type of a symbol sometimes alters its
 .     location in an output file - ie in coff a <<ISFCN>> symbol
 .     which is also <<C_EXT>> symbol appears where it was
 .     declared and not at the end of a section.  This bit is set
 .     by the target BFD part to convey this information.  *}
-.#define BSF_NOT_AT_END		(1 << 10)
+.#define BSF_NOT_AT_END          (1 << 10)
 .
 .  {* Signal that the symbol is the label of constructor section.  *}
-.#define BSF_CONSTRUCTOR	(1 << 11)
+.#define BSF_CONSTRUCTOR         (1 << 11)
 .
 .  {* Signal that the symbol is a warning symbol.  The name is a
 .     warning.  The name of the next symbol is the one to warn about;
 .     if a reference is made to a symbol with the same name as the next
 .     symbol, a warning is issued by the linker.  *}
-.#define BSF_WARNING		(1 << 12)
+.#define BSF_WARNING             (1 << 12)
 .
 .  {* Signal that the symbol is indirect.  This symbol is an indirect
 .     pointer to the symbol with the same name as the next symbol.  *}
-.#define BSF_INDIRECT		(1 << 13)
+.#define BSF_INDIRECT            (1 << 13)
 .
 .  {* BSF_FILE marks symbols that contain a file name.  This is used
 .     for ELF STT_FILE symbols.  *}
-.#define BSF_FILE		(1 << 14)
+.#define BSF_FILE                (1 << 14)
 .
 .  {* Symbol is from dynamic linking information.  *}
-.#define BSF_DYNAMIC		(1 << 15)
+.#define BSF_DYNAMIC             (1 << 15)
 .
 .  {* The symbol denotes a data object.  Used in ELF, and perhaps
 .     others someday.  *}
-.#define BSF_OBJECT		(1 << 16)
+.#define BSF_OBJECT              (1 << 16)
 .
 .  {* This symbol is a debugging symbol.  The value is the offset
 .     into the section of the data.  BSF_DEBUGGING should be set
 .     as well.  *}
-.#define BSF_DEBUGGING_RELOC	(1 << 17)
+.#define BSF_DEBUGGING_RELOC     (1 << 17)
 .
 .  {* This symbol is thread local.  Used in ELF.  *}
-.#define BSF_THREAD_LOCAL	(1 << 18)
+.#define BSF_THREAD_LOCAL        (1 << 18)
 .
 .  {* This symbol represents a complex relocation expression,
 .     with the expression tree serialized in the symbol name.  *}
-.#define BSF_RELC		(1 << 19)
+.#define BSF_RELC                (1 << 19)
 .
 .  {* This symbol represents a signed complex relocation expression,
 .     with the expression tree serialized in the symbol name.  *}
-.#define BSF_SRELC		(1 << 20)
+.#define BSF_SRELC               (1 << 20)
 .
 .  {* This symbol was created by bfd_get_synthetic_symtab.  *}
-.#define BSF_SYNTHETIC		(1 << 21)
+.#define BSF_SYNTHETIC           (1 << 21)
 .
 .  {* This symbol is an indirect code object.  Unrelated to BSF_INDIRECT.
 .     The dynamic linker will compute the value of this symbol by
@@ -305,7 +305,7 @@ CODE_FRAGMENT
 .  {* This symbol is a globally unique data object.  The dynamic linker
 .     will make sure that in the entire process there is just one symbol
 .     with this name and type in use.  BSF_OBJECT must also be set.  *}
-.#define BSF_GNU_UNIQUE		(1 << 23)
+.#define BSF_GNU_UNIQUE          (1 << 23)
 .
 .  flagword flags;
 .
@@ -352,7 +352,7 @@ DESCRIPTION
 	the BFD, then return 0.  If an error occurs, return -1.
 
 .#define bfd_get_symtab_upper_bound(abfd) \
-.     BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
+.	BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
 .
 */
 
@@ -361,7 +361,7 @@ FUNCTION
 	bfd_is_local_label
 
 SYNOPSIS
-        bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
+	bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
 
 DESCRIPTION
 	Return TRUE if the given symbol @var{sym} in the BFD @var{abfd} is
@@ -386,7 +386,7 @@ FUNCTION
 	bfd_is_local_label_name
 
 SYNOPSIS
-        bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
+	bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
 
 DESCRIPTION
 	Return TRUE if a symbol with the name @var{name} in the BFD
@@ -395,7 +395,7 @@ DESCRIPTION
 	local label.
 
 .#define bfd_is_local_label_name(abfd, name) \
-.  BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
+.	BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
 .
 */
 
@@ -404,7 +404,7 @@ FUNCTION
 	bfd_is_target_special_symbol
 
 SYNOPSIS
-        bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
+	bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
 
 DESCRIPTION
 	Return TRUE iff a symbol @var{sym} in the BFD @var{abfd} is something
@@ -412,7 +412,7 @@ DESCRIPTION
 	should normally not be mentioned to the user.
 
 .#define bfd_is_target_special_symbol(abfd, sym) \
-.  BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
+.	BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
 .
 */
 
@@ -428,7 +428,7 @@ DESCRIPTION
 	including the NULL.
 
 .#define bfd_canonicalize_symtab(abfd, location) \
-.  BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
+.	BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
 .
 */
 
@@ -517,7 +517,7 @@ DESCRIPTION
 	information, and will cause problems later on.
 
 .#define bfd_make_empty_symbol(abfd) \
-.  BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
+.	BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
 .
 */
 
@@ -555,7 +555,7 @@ DESCRIPTION
 	yet to be worked out.
 
 .#define bfd_make_debug_symbol(abfd,ptr,size) \
-.  BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
+.	BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
 .
 */
 
@@ -574,13 +574,13 @@ static const struct section_to_type stt[
   {"code", 't'},		/* MRI .text */
   {".data", 'd'},
   {"*DEBUG*", 'N'},
-  {".debug", 'N'},              /* MSVC's .debug (non-standard debug syms) */
-  {".drectve", 'i'},            /* MSVC's .drective section */
-  {".edata", 'e'},              /* MSVC's .edata (export) section */
+  {".debug", 'N'},		/* MSVC's .debug (non-standard debug syms) */
+  {".drectve", 'i'},		/* MSVC's .drective section */
+  {".edata", 'e'},		/* MSVC's .edata (export) section */
   {".fini", 't'},		/* ELF fini section */
-  {".idata", 'i'},              /* MSVC's .idata (import) section */
+  {".idata", 'i'},		/* MSVC's .idata (import) section */
   {".init", 't'},		/* ELF init section */
-  {".pdata", 'p'},              /* MSVC's .pdata (stack unwind) section */
+  {".pdata", 'p'},		/* MSVC's .pdata (stack unwind) section */
   {".rdata", 'r'},		/* Read only data.  */
   {".rodata", 'r'},		/* Read only data.  */
   {".sbss", 's'},		/* Small BSS (uninitialized data).  */
@@ -783,8 +783,8 @@ DESCRIPTION
 	Not enough memory exists to create private data for @var{osec}.
 
 .#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
-.  BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
-.            (ibfd, isymbol, obfd, osymbol))
+.	BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
+.		  (ibfd, isymbol, obfd, osymbol))
 .
 */
 
@@ -1169,10 +1169,10 @@ _bfd_stab_section_find_nearest_line (bfd
 	      /* The main file name.  */
 
 	      /* The following code creates a new indextable entry with
-	         a NULL function name if there were no N_FUNs in a file.
-	         Note that a N_SO without a file name is an EOF and
-	         there could be 2 N_SO following it with the new filename
-	         and directory.  */
+		 a NULL function name if there were no N_FUNs in a file.
+		 Note that a N_SO without a file name is an EOF and
+		 there could be 2 N_SO following it with the new filename
+		 and directory.  */
 	      if (nul_fun != NULL)
 		{
 		  info->indextable[i].val = bfd_get_32 (abfd, nul_fun + VALOFF);
@@ -1287,7 +1287,7 @@ _bfd_stab_section_find_nearest_line (bfd
       long mid = -1;
 
       /* Cache non-existent or invalid.  Do binary search on
-         indextable.  */
+	 indextable.  */
       indexentry = NULL;
 
       low = 0;
@@ -1416,8 +1416,8 @@ _bfd_stab_section_find_nearest_line (bfd
       char *s;
 
       /* This will typically be something like main:F(0,1), so we want
-         to clobber the colon.  It's OK to change the name, since the
-         string is in our own local storage anyhow.  */
+	 to clobber the colon.  It's OK to change the name, since the
+	 string is in our own local storage anyhow.  */
       s = strchr (indexentry->function_name, ':');
       if (s != NULL)
 	*s = '\0';
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/sysdep.h ./bfd/sysdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/sysdep.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/sysdep.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* sysdep.h -- handle host dependencies for the BFD library
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -181,31 +181,43 @@ size_t strnlen (const char *, size_t);
 #endif
 
 #ifdef ENABLE_NLS
-#include <libintl.h>
-/* Note the use of dgetext() and PACKAGE here, rather than gettext().
+# include <libintl.h>
+/* Note the redefinition of gettext and ngettext here to use PACKAGE.
 
-   This is because the code in this directory is used to build a library which
-   will be linked with code in other directories to form programs.  We want to
-   maintain a seperate translation file for this directory however, rather
-   than being forced to merge it with that of any program linked to libbfd.
-   This is a library, so it cannot depend on the catalog currently loaded.
-
-   In order to do this, we have to make sure that when we extract messages we
-   use the OPCODES domain rather than the domain of the program that included
-   the bfd library, (eg OBJDUMP).  Hence we use dgettext (PACKAGE, String)
-   and define PACKAGE to be 'bfd'.  (See the code in configure).  */
-#define _(String) dgettext (PACKAGE, String)
-#ifdef gettext_noop
-#define N_(String) gettext_noop (String)
-#else
-#define N_(String) (String)
-#endif
+   This is because the code in this directory is used to build a
+   library which will be linked with code in other directories to form
+   programs.  We want to maintain a seperate translation file for this
+   directory however, rather than being forced to merge it with that
+   of any program linked to libbfd.  This is a library, so it cannot
+   depend on the catalog currently loaded.
+
+   In order to do this, we have to make sure that when we extract
+   messages we use the BFD domain rather than the domain of the
+   program that included the bfd library, (eg OBJDUMP).  Hence we use
+   dgettext (PACKAGE, String) and define PACKAGE to be 'bfd'.
+   (See the code in configure).  */
+# undef gettext
+# define gettext(Msgid) dgettext (PACKAGE, Msgid)
+# undef ngettext
+# define ngettext(Msgid1, Msgid2, n) dngettext (PACKAGE, Msgid1, Msgid2, n)
+# define _(String) gettext (String)
+# ifdef gettext_noop
+#  define N_(String) gettext_noop (String)
+# else
+#  define N_(String) (String)
+# endif
 #else
 # define gettext(Msgid) (Msgid)
 # define dgettext(Domainname, Msgid) (Msgid)
 # define dcgettext(Domainname, Msgid, Category) (Msgid)
-# define textdomain(Domainname) while (0) /* nothing */
-# define bindtextdomain(Domainname, Dirname) while (0) /* nothing */
+# define ngettext(Msgid1, Msgid2, n) \
+  (n == 1 ? Msgid1 : Msgid2)
+# define dngettext(Domainname, Msgid1, Msgid2, n) \
+  (n == 1 ? Msgid1 : Msgid2)
+# define dcngettext(Domainname, Msgid1, Msgid2, n, Category) \
+  (n == 1 ? Msgid1 : Msgid2)
+# define textdomain(Domainname) do {} while (0)
+# define bindtextdomain(Domainname, Dirname) do {} while (0)
 # define _(String) (String)
 # define N_(String) (String)
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/targets.c ./bfd/targets.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/targets.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/targets.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Generic target-file-type support for the BFD library.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -219,32 +219,33 @@ DESCRIPTION
 .  {* Entries for byte swapping for data. These are different from the
 .     other entry points, since they don't take a BFD as the first argument.
 .     Certain other handlers could do the same.  *}
-.  bfd_uint64_t   (*bfd_getx64) (const void *);
-.  bfd_int64_t    (*bfd_getx_signed_64) (const void *);
-.  void           (*bfd_putx64) (bfd_uint64_t, void *);
-.  bfd_vma        (*bfd_getx32) (const void *);
+.  bfd_uint64_t	  (*bfd_getx64) (const void *);
+.  bfd_int64_t	  (*bfd_getx_signed_64) (const void *);
+.  void		  (*bfd_putx64) (bfd_uint64_t, void *);
+.  bfd_vma	  (*bfd_getx32) (const void *);
 .  bfd_signed_vma (*bfd_getx_signed_32) (const void *);
-.  void           (*bfd_putx32) (bfd_vma, void *);
-.  bfd_vma        (*bfd_getx16) (const void *);
+.  void		  (*bfd_putx32) (bfd_vma, void *);
+.  bfd_vma	  (*bfd_getx16) (const void *);
 .  bfd_signed_vma (*bfd_getx_signed_16) (const void *);
-.  void           (*bfd_putx16) (bfd_vma, void *);
+.  void		  (*bfd_putx16) (bfd_vma, void *);
 .
 .  {* Byte swapping for the headers.  *}
-.  bfd_uint64_t   (*bfd_h_getx64) (const void *);
-.  bfd_int64_t    (*bfd_h_getx_signed_64) (const void *);
-.  void           (*bfd_h_putx64) (bfd_uint64_t, void *);
-.  bfd_vma        (*bfd_h_getx32) (const void *);
+.  bfd_uint64_t	  (*bfd_h_getx64) (const void *);
+.  bfd_int64_t	  (*bfd_h_getx_signed_64) (const void *);
+.  void		  (*bfd_h_putx64) (bfd_uint64_t, void *);
+.  bfd_vma	  (*bfd_h_getx32) (const void *);
 .  bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
-.  void           (*bfd_h_putx32) (bfd_vma, void *);
-.  bfd_vma        (*bfd_h_getx16) (const void *);
+.  void		  (*bfd_h_putx32) (bfd_vma, void *);
+.  bfd_vma	  (*bfd_h_getx16) (const void *);
 .  bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
-.  void           (*bfd_h_putx16) (bfd_vma, void *);
+.  void		  (*bfd_h_putx16) (bfd_vma, void *);
 .
 .  {* Format dependent routines: these are vectors of entry points
 .     within the target vector structure, one for each format to check.  *}
 .
 .  {* Check the format of a file being read.  Return a <<bfd_target *>> or zero.  *}
-.  const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
+.  const struct bfd_target *
+.	       (*_bfd_check_format[bfd_type_end]) (bfd *);
 .
 .  {* Set the format of a file being written.  *}
 .  bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
@@ -270,10 +271,11 @@ BFD_JUMP_TABLE macros.
 .  {* Called when a new section is created.  *}
 .  bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
 .  {* Read the contents of a section.  *}
-.  bfd_boolean (*_bfd_get_section_contents)
-.    (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
-.  bfd_boolean (*_bfd_get_section_contents_in_window)
-.    (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
+.  bfd_boolean (*_bfd_get_section_contents) (bfd *, sec_ptr, void *, file_ptr,
+.					     bfd_size_type);
+.  bfd_boolean (*_bfd_get_section_contents_in_window) (bfd *, sec_ptr,
+.						       bfd_window *, file_ptr,
+.						       bfd_size_type);
 .
 .  {* Entry points to copy private data.  *}
 .#define BFD_JUMP_TABLE_COPY(NAME) \
@@ -295,21 +297,22 @@ BFD_JUMP_TABLE macros.
 .  {* Called to initialize BFD private section data from one object file
 .     to another.  *}
 .#define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
-.  BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
-.  bfd_boolean (*_bfd_init_private_section_data)
-.    (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
+.	BFD_SEND (obfd, _bfd_init_private_section_data, \
+.		  (ibfd, isec, obfd, osec, link_info))
+.  bfd_boolean (*_bfd_init_private_section_data) (bfd *, sec_ptr, bfd *,
+.						  sec_ptr,
+.						  struct bfd_link_info *);
 .  {* Called to copy BFD private section data from one object file
 .     to another.  *}
-.  bfd_boolean (*_bfd_copy_private_section_data)
-.    (bfd *, sec_ptr, bfd *, sec_ptr);
+.  bfd_boolean (*_bfd_copy_private_section_data) (bfd *, sec_ptr, bfd *,
+.						  sec_ptr);
 .  {* Called to copy BFD private symbol data from one symbol
 .     to another.  *}
-.  bfd_boolean (*_bfd_copy_private_symbol_data)
-.    (bfd *, asymbol *, bfd *, asymbol *);
+.  bfd_boolean (*_bfd_copy_private_symbol_data) (bfd *, asymbol *, bfd *,
+.						 asymbol *);
 .  {* Called to copy BFD private header data from one object file
 .     to another.  *}
-.  bfd_boolean (*_bfd_copy_private_header_data)
-.    (bfd *, bfd *);
+.  bfd_boolean (*_bfd_copy_private_header_data) (bfd *, bfd *);
 .  {* Called to set private backend flags.  *}
 .  bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
 .
@@ -324,9 +327,9 @@ BFD_JUMP_TABLE macros.
 .  NAME##_core_file_pid
 .
 .  char *      (*_core_file_failing_command) (bfd *);
-.  int         (*_core_file_failing_signal) (bfd *);
+.  int	       (*_core_file_failing_signal) (bfd *);
 .  bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
-.  int         (*_core_file_pid) (bfd *);
+.  int	       (*_core_file_pid) (bfd *);
 .
 .  {* Archive entry points.  *}
 .#define BFD_JUMP_TABLE_ARCHIVE(NAME) \
@@ -344,17 +347,19 @@ BFD_JUMP_TABLE macros.
 .
 .  bfd_boolean (*_bfd_slurp_armap) (bfd *);
 .  bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
-.  bfd_boolean (*_bfd_construct_extended_name_table)
-.    (bfd *, char **, bfd_size_type *, const char **);
-.  void        (*_bfd_truncate_arname) (bfd *, const char *, char *);
-.  bfd_boolean (*write_armap)
-.    (bfd *, unsigned int, struct orl *, unsigned int, int);
+.  bfd_boolean (*_bfd_construct_extended_name_table) (bfd *, char **,
+.						      bfd_size_type *,
+.						      const char **);
+.  void	       (*_bfd_truncate_arname) (bfd *, const char *, char *);
+.  bfd_boolean (*write_armap) (bfd *, unsigned int, struct orl *,
+.			       unsigned int, int);
 .  void *      (*_bfd_read_ar_hdr_fn) (bfd *);
 .  bfd_boolean (*_bfd_write_ar_hdr_fn) (bfd *, bfd *);
 .  bfd *       (*openr_next_archived_file) (bfd *, bfd *);
-.#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
+.#define bfd_get_elt_at_index(b,i) \
+.	BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
 .  bfd *       (*_bfd_get_elt_at_index) (bfd *, symindex);
-.  int         (*_bfd_stat_arch_elt) (bfd *, struct stat *);
+.  int	       (*_bfd_stat_arch_elt) (bfd *, struct stat *);
 .  bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
 .
 .  {* Entry points used for symbols.  *}
@@ -375,71 +380,74 @@ BFD_JUMP_TABLE macros.
 .  NAME##_read_minisymbols, \
 .  NAME##_minisymbol_to_symbol
 .
-.  long        (*_bfd_get_symtab_upper_bound) (bfd *);
-.  long        (*_bfd_canonicalize_symtab)
-.    (bfd *, struct bfd_symbol **);
+.  long	       (*_bfd_get_symtab_upper_bound) (bfd *);
+.  long	       (*_bfd_canonicalize_symtab) (bfd *, struct bfd_symbol **);
 .  struct bfd_symbol *
-.              (*_bfd_make_empty_symbol) (bfd *);
-.  void        (*_bfd_print_symbol)
-.    (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
-.#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
-.  void        (*_bfd_get_symbol_info)
-.    (bfd *, struct bfd_symbol *, symbol_info *);
-.#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
-.  const char *(*_bfd_get_symbol_version_string)
-.    (bfd *, struct bfd_symbol *, bfd_boolean *);
-.#define bfd_get_symbol_version_string(b,s,h) BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h))
+.	       (*_bfd_make_empty_symbol) (bfd *);
+.  void	       (*_bfd_print_symbol) (bfd *, void *, struct bfd_symbol *,
+.				     bfd_print_symbol_type);
+.#define bfd_print_symbol(b,p,s,e) \
+.	BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
+.  void	       (*_bfd_get_symbol_info) (bfd *, struct bfd_symbol *,
+.					symbol_info *);
+.#define bfd_get_symbol_info(b,p,e) \
+.	BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
+.  const char *(*_bfd_get_symbol_version_string) (bfd *, struct bfd_symbol *,
+.						  bfd_boolean *);
+.#define bfd_get_symbol_version_string(b,s,h) \
+.	BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h))
 .  bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
 .  bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
 .  alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
-.  bfd_boolean (*_bfd_find_nearest_line)
-.    (bfd *, struct bfd_symbol **, struct bfd_section *, bfd_vma,
-.     const char **, const char **, unsigned int *, unsigned int *);
-.  bfd_boolean (*_bfd_find_line)
-.    (bfd *, struct bfd_symbol **, struct bfd_symbol *,
-.     const char **, unsigned int *);
+.  bfd_boolean (*_bfd_find_nearest_line) (bfd *, struct bfd_symbol **,
+.					  struct bfd_section *, bfd_vma,
+.					  const char **, const char **,
+.					  unsigned int *, unsigned int *);
+.  bfd_boolean (*_bfd_find_line) (bfd *, struct bfd_symbol **,
+.				  struct bfd_symbol *, const char **,
+.				  unsigned int *);
 .  bfd_boolean (*_bfd_find_inliner_info)
 .    (bfd *, const char **, const char **, unsigned int *);
 . {* Back-door to allow format-aware applications to create debug symbols
 .    while using BFD for everything else.  Currently used by the assembler
 .    when creating COFF files.  *}
-.  asymbol *   (*_bfd_make_debug_symbol)
-.    (bfd *, void *, unsigned long size);
+.  asymbol *   (*_bfd_make_debug_symbol) (bfd *, void *, unsigned long size);
 .#define bfd_read_minisymbols(b, d, m, s) \
-.  BFD_SEND (b, _read_minisymbols, (b, d, m, s))
-.  long        (*_read_minisymbols)
-.    (bfd *, bfd_boolean, void **, unsigned int *);
+.	BFD_SEND (b, _read_minisymbols, (b, d, m, s))
+.  long	       (*_read_minisymbols) (bfd *, bfd_boolean, void **,
+.				     unsigned int *);
 .#define bfd_minisymbol_to_symbol(b, d, m, f) \
-.  BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
-.  asymbol *   (*_minisymbol_to_symbol)
-.    (bfd *, bfd_boolean, const void *, asymbol *);
+.	BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
+.  asymbol *   (*_minisymbol_to_symbol) (bfd *, bfd_boolean, const void *,
+.					 asymbol *);
 .
 .  {* Routines for relocs.  *}
 .#define BFD_JUMP_TABLE_RELOCS(NAME) \
 .  NAME##_get_reloc_upper_bound, \
 .  NAME##_canonicalize_reloc, \
+.  NAME##_set_reloc, \
 .  NAME##_bfd_reloc_type_lookup, \
 .  NAME##_bfd_reloc_name_lookup
 .
-.  long        (*_get_reloc_upper_bound) (bfd *, sec_ptr);
-.  long        (*_bfd_canonicalize_reloc)
-.    (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
+.  long	       (*_get_reloc_upper_bound) (bfd *, sec_ptr);
+.  long	       (*_bfd_canonicalize_reloc) (bfd *, sec_ptr, arelent **,
+.					   struct bfd_symbol **);
+.  void	       (*_bfd_set_reloc) (bfd *, sec_ptr, arelent **, unsigned int);
 .  {* See documentation on reloc types.  *}
 .  reloc_howto_type *
-.              (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
+.	       (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
 .  reloc_howto_type *
-.              (*reloc_name_lookup) (bfd *, const char *);
-.
+.	       (*reloc_name_lookup) (bfd *, const char *);
 .
 .  {* Routines used when writing an object file.  *}
 .#define BFD_JUMP_TABLE_WRITE(NAME) \
 .  NAME##_set_arch_mach, \
 .  NAME##_set_section_contents
 .
-.  bfd_boolean (*_bfd_set_arch_mach)
-.    (bfd *, enum bfd_architecture, unsigned long);
-.  bfd_boolean (*_bfd_set_section_contents)
-.    (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
+.  bfd_boolean (*_bfd_set_arch_mach) (bfd *, enum bfd_architecture,
+.				      unsigned long);
+.  bfd_boolean (*_bfd_set_section_contents) (bfd *, sec_ptr, const void *,
+.					     file_ptr, bfd_size_type);
 .
 .  {* Routines used by the linker.  *}
 .#define BFD_JUMP_TABLE_LINK(NAME) \
@@ -459,33 +467,37 @@ BFD_JUMP_TABLE macros.
 .  NAME##_bfd_is_group_section, \
 .  NAME##_bfd_discard_group, \
 .  NAME##_section_already_linked, \
-.  NAME##_bfd_define_common_symbol
+.  NAME##_bfd_define_common_symbol, \
+.  NAME##_bfd_define_start_stop
 .
-.  int         (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
-.  bfd_byte *  (*_bfd_get_relocated_section_contents)
-.    (bfd *, struct bfd_link_info *, struct bfd_link_order *,
-.     bfd_byte *, bfd_boolean, struct bfd_symbol **);
+.  int	       (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
+.  bfd_byte *  (*_bfd_get_relocated_section_contents) (bfd *,
+.						       struct bfd_link_info *,
+.						       struct bfd_link_order *,
+.						       bfd_byte *, bfd_boolean,
+.						       struct bfd_symbol **);
 .
-.  bfd_boolean (*_bfd_relax_section)
-.    (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
+.  bfd_boolean (*_bfd_relax_section) (bfd *, struct bfd_section *,
+.				      struct bfd_link_info *, bfd_boolean *);
 .
 .  {* Create a hash table for the linker.  Different backends store
 .     different information in this table.  *}
 .  struct bfd_link_hash_table *
-.              (*_bfd_link_hash_table_create) (bfd *);
+.	       (*_bfd_link_hash_table_create) (bfd *);
 .
 .  {* Add symbols from this object file into the hash table.  *}
 .  bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
 .
 .  {* Indicate that we are only retrieving symbol values from this section.  *}
-.  void        (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
+.  void	       (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
 .
 .  {* Copy the symbol type and other attributes for a linker script
 .     assignment of one symbol to another.  *}
 .#define bfd_copy_link_hash_symbol_type(b, t, f) \
-.  BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
-.  void (*_bfd_copy_link_hash_symbol_type)
-.    (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *);
+.	BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
+.  void	       (*_bfd_copy_link_hash_symbol_type) (bfd *,
+.						   struct bfd_link_hash_entry *,
+.						   struct bfd_link_hash_entry *);
 .
 .  {* Do a link based on the link_order structures attached to each
 .     section of the BFD.  *}
@@ -502,8 +514,7 @@ BFD_JUMP_TABLE macros.
 .
 .  {* Sets the bitmask of allowed and disallowed section flags.  *}
 .  bfd_boolean (*_bfd_lookup_section_flags) (struct bfd_link_info *,
-.					     struct flag_info *,
-.					     asection *);
+.					     struct flag_info *, asection *);
 .
 .  {* Attempt to merge SEC_MERGE sections.  *}
 .  bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
@@ -523,6 +534,11 @@ BFD_JUMP_TABLE macros.
 .  bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *,
 .					     struct bfd_link_hash_entry *);
 .
+.  {* Define a __start, __stop, .startof. or .sizeof. symbol.  *}
+.  struct bfd_link_hash_entry *
+.	       (*_bfd_define_start_stop) (struct bfd_link_info *, const char *,
+.					  asection *);
+.
 .  {* Routines to handle dynamic symbols and relocs.  *}
 .#define BFD_JUMP_TABLE_DYNAMIC(NAME) \
 .  NAME##_get_dynamic_symtab_upper_bound, \
@@ -532,19 +548,18 @@ BFD_JUMP_TABLE macros.
 .  NAME##_canonicalize_dynamic_reloc
 .
 .  {* Get the amount of memory required to hold the dynamic symbols.  *}
-.  long        (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
+.  long	       (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
 .  {* Read in the dynamic symbols.  *}
-.  long        (*_bfd_canonicalize_dynamic_symtab)
-.    (bfd *, struct bfd_symbol **);
+.  long	       (*_bfd_canonicalize_dynamic_symtab) (bfd *, struct bfd_symbol **);
 .  {* Create synthetized symbols.  *}
-.  long        (*_bfd_get_synthetic_symtab)
-.    (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
-.     struct bfd_symbol **);
+.  long	       (*_bfd_get_synthetic_symtab) (bfd *, long, struct bfd_symbol **,
+.					     long, struct bfd_symbol **,
+.					     struct bfd_symbol **);
 .  {* Get the amount of memory required to hold the dynamic relocs.  *}
-.  long        (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
+.  long	       (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
 .  {* Read in the dynamic relocs.  *}
-.  long        (*_bfd_canonicalize_dynamic_reloc)
-.    (bfd *, arelent **, struct bfd_symbol **);
+.  long	       (*_bfd_canonicalize_dynamic_reloc) (bfd *, arelent **,
+.						   struct bfd_symbol **);
 .
 
 A pointer to an alternative bfd_target in case the current one is not
@@ -554,7 +569,7 @@ endianness.  The function open_output() 
 to find an alternative output format that is suitable.
 
 .  {* Opposite endian version of this target.  *}
-.  const struct bfd_target * alternative_target;
+.  const struct bfd_target *alternative_target;
 .
 
 .  {* Data for use by back-end routines, which isn't
@@ -1423,8 +1438,8 @@ static const bfd_target * const _bfd_tar
 
 	&w65_coff_vec,
 
-        &wasm_vec,
-        &wasm32_elf32_vec,
+	&wasm_vec,
+	&wasm32_elf32_vec,
 
 	&we32k_coff_vec,
 
@@ -1687,11 +1702,11 @@ _bfd_find_arch_match (const char *tname,
       char end_ch = (in_a ? in_a[strlen (tname)] : 0);
 
       if (in_a && (in_a == *arch || in_a[-1] == ':')
-          && end_ch == 0)
-        {
-          *def_target_arch = *arch;
-          return TRUE;
-        }
+	  && end_ch == 0)
+	{
+	  *def_target_arch = *arch;
+	  return TRUE;
+	}
       arch++;
     }
   return FALSE;
@@ -1707,16 +1722,16 @@ SYNOPSIS
 					       int *underscoring,
 					       const char **def_target_arch);
 DESCRIPTION
-        Return a pointer to the transfer vector for the object target
-        named @var{target_name}.  If @var{target_name} is <<NULL>>,
-        choose the one in the environment variable <<GNUTARGET>>; if
-        that is null or not defined, then choose the first entry in the
-        target list.  Passing in the string "default" or setting the
-        environment variable to "default" will cause the first entry in
-        the target list to be returned, and "target_defaulted" will be
-        set in the BFD if @var{abfd} isn't <<NULL>>.  This causes
-        <<bfd_check_format>> to loop over all the targets to find the
-        one that matches the file being read.
+	Return a pointer to the transfer vector for the object target
+	named @var{target_name}.  If @var{target_name} is <<NULL>>,
+	choose the one in the environment variable <<GNUTARGET>>; if
+	that is null or not defined, then choose the first entry in the
+	target list.  Passing in the string "default" or setting the
+	environment variable to "default" will cause the first entry in
+	the target list to be returned, and "target_defaulted" will be
+	set in the BFD if @var{abfd} isn't <<NULL>>.  This causes
+	<<bfd_check_format>> to loop over all the targets to find the
+	one that matches the file being read.
 	If @var{is_bigendian} is not <<NULL>>, then set this value to target's
 	endian mode. True for big-endian, FALSE for little-endian or for
 	invalid target.
@@ -1754,12 +1769,12 @@ bfd_get_target_info (const char *target_
       const char **arches = bfd_arch_list ();
 
       if (arches && tname)
-        {
-          char *hyp = strchr (tname, '-');
+	{
+	  char *hyp = strchr (tname, '-');
 
-          if (hyp != NULL)
-            {
-              tname = ++hyp;
+	  if (hyp != NULL)
+	    {
+	      tname = ++hyp;
 
 	      /* Make sure we detect architecture names
 		 for triplets like "pe-arm-wince-little".  */
@@ -1782,7 +1797,7 @@ bfd_get_target_info (const char *target_
 	}
 
       if (arches)
-        free (arches);
+	free (arches);
     }
   return target_vec;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/tekhex.c ./bfd/tekhex.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/tekhex.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/tekhex.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD backend for Extended Tektronix Hex Format  objects.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -30,7 +30,7 @@
 	devices like PROM programmers and ICE equipment.
 
 	It seems that the sections are described as being really big,
-        the example I have says that the text section is 0..ffffffff.
+	the example I have says that the text section is 0..ffffffff.
 	BFD would barf with this, many apps would try to alloc 4GB to
 	read in the file.
 
@@ -39,7 +39,7 @@
 	one section for each block of data, called "blknnnn" which we
 	stick all the data into.
 
-	TekHex may come out of 	order and there is no header, so an
+	TekHex may come out of order and there is no header, so an
 	initial scan is required  to discover the minimum and maximum
 	addresses used to create the vma and size of the sections we
 	create.
@@ -121,10 +121,10 @@ static char sum_block[256];
    <---------------------- 3a (58 chars) ------------------->
 
    %1B3709T_SEGMENT1108FFFFFFFF
-         ^         ^^ ^- 8 character integer 0xffffffff
-         |         |+-   1 character integer 0
-         |         +--   type 1 symbol (section definition)
-         +------------   9 char symbol T_SEGMENT
+	 ^         ^^ ^- 8 character integer 0xffffffff
+	 |         |+-   1 character integer 0
+	 |         +--   type 1 symbol (section definition)
+	 +------------   9 char symbol T_SEGMENT
 
    %2B3AB9T_SEGMENT7Dgcc_compiled$1087hello$c10
    %373829T_SEGMENT80int$t1$r1$$214741080char$t2$r2$0$12710
@@ -273,6 +273,9 @@ getvalue (char **srcp, bfd_vma *valuep, 
   bfd_vma value = 0;
   unsigned int len;
 
+  if (src >= endp)
+    return FALSE;
+
   if (!ISHEX (*src))
     return FALSE;
 
@@ -304,7 +307,7 @@ getsym (char *dstp, char **srcp, unsigne
   len = hex_value (*src++);
   if (len == 0)
     len = 16;
-  for (i = 0; i < len && src < endp; i++)
+  for (i = 0; i < len && (src + i) < endp; i++)
     dstp[i] = src[i];
   dstp[i] = 0;
   *srcp = src + i;
@@ -325,7 +328,7 @@ find_chunk (bfd *abfd, bfd_vma vma, bfd_
     {
       /* No chunk for this address, so make one up.  */
       d = (struct data_struct *)
-          bfd_zalloc (abfd, (bfd_size_type) sizeof (struct data_struct));
+	  bfd_zalloc (abfd, (bfd_size_type) sizeof (struct data_struct));
 
       if (!d)
 	return NULL;
@@ -411,7 +414,7 @@ first_phase (bfd *abfd, int type, char *
 		val = section->vma;
 	      section->size = val - section->vma;
 	      /* PR 17512: file: objdump-s-endless-loop.tekhex.
-	         Check for overlarge section sizes.  */
+		 Check for overlarge section sizes.  */
 	      if (section->size & 0x80000000)
 		return FALSE;
 	      section->flags = SEC_HAS_CONTENTS | SEC_LOAD | SEC_ALLOC;
@@ -427,7 +430,7 @@ first_phase (bfd *abfd, int type, char *
 	      {
 		bfd_size_type amt = sizeof (tekhex_symbol_type);
 		tekhex_symbol_type *new_symbol = (tekhex_symbol_type *)
-                    bfd_alloc (abfd, amt);
+		    bfd_alloc (abfd, amt);
 		char stype = (*src);
 
 		if (!new_symbol)
@@ -441,7 +444,7 @@ first_phase (bfd *abfd, int type, char *
 		if (!getsym (sym, &src, &len, src_end))
 		  return FALSE;
 		new_symbol->symbol.name = (const char *)
-                    bfd_alloc (abfd, (bfd_size_type) len + 1);
+		    bfd_alloc (abfd, (bfd_size_type) len + 1);
 		if (!new_symbol->symbol.name)
 		  return FALSE;
 		memcpy ((char *) (new_symbol->symbol.name), sym, len + 1);
@@ -514,6 +517,7 @@ pass_over (bfd *abfd, bfd_boolean (*func
   /* To the front of the file.  */
   if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
     return FALSE;
+
   while (! is_eof)
     {
       char src[MAXCHUNK];
@@ -910,7 +914,7 @@ tekhex_make_empty_symbol (bfd *abfd)
 {
   bfd_size_type amt = sizeof (struct tekhex_symbol_struct);
   tekhex_symbol_type *new_symbol = (tekhex_symbol_type *) bfd_zalloc (abfd,
-                                                                      amt);
+								      amt);
 
   if (!new_symbol)
     return NULL;
@@ -955,36 +959,37 @@ tekhex_print_symbol (bfd *abfd,
     }
 }
 
-#define	tekhex_close_and_cleanup                    _bfd_generic_close_and_cleanup
-#define tekhex_bfd_free_cached_info                 _bfd_generic_bfd_free_cached_info
-#define tekhex_new_section_hook                     _bfd_generic_new_section_hook
+#define	tekhex_close_and_cleanup		    _bfd_generic_close_and_cleanup
+#define tekhex_bfd_free_cached_info		    _bfd_generic_bfd_free_cached_info
+#define tekhex_new_section_hook			    _bfd_generic_new_section_hook
 #define tekhex_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define tekhex_bfd_is_local_label_name               bfd_generic_is_local_label_name
-#define tekhex_get_lineno                           _bfd_nosymbols_get_lineno
-#define tekhex_find_nearest_line                    _bfd_nosymbols_find_nearest_line
-#define tekhex_find_line                            _bfd_nosymbols_find_line
-#define tekhex_find_inliner_info                    _bfd_nosymbols_find_inliner_info
+#define tekhex_bfd_is_local_label_name		     bfd_generic_is_local_label_name
+#define tekhex_get_lineno			    _bfd_nosymbols_get_lineno
+#define tekhex_find_nearest_line		    _bfd_nosymbols_find_nearest_line
+#define tekhex_find_line			    _bfd_nosymbols_find_line
+#define tekhex_find_inliner_info		    _bfd_nosymbols_find_inliner_info
 #define tekhex_get_symbol_version_string	    _bfd_nosymbols_get_symbol_version_string
-#define tekhex_bfd_make_debug_symbol                _bfd_nosymbols_bfd_make_debug_symbol
-#define tekhex_read_minisymbols                     _bfd_generic_read_minisymbols
-#define tekhex_minisymbol_to_symbol                 _bfd_generic_minisymbol_to_symbol
+#define tekhex_bfd_make_debug_symbol		    _bfd_nosymbols_bfd_make_debug_symbol
+#define tekhex_read_minisymbols			    _bfd_generic_read_minisymbols
+#define tekhex_minisymbol_to_symbol		    _bfd_generic_minisymbol_to_symbol
 #define tekhex_bfd_get_relocated_section_contents   bfd_generic_get_relocated_section_contents
-#define tekhex_bfd_relax_section                    bfd_generic_relax_section
-#define tekhex_bfd_gc_sections                      bfd_generic_gc_sections
+#define tekhex_bfd_relax_section		    bfd_generic_relax_section
+#define tekhex_bfd_gc_sections			    bfd_generic_gc_sections
 #define tekhex_bfd_lookup_section_flags		    bfd_generic_lookup_section_flags
-#define tekhex_bfd_merge_sections                   bfd_generic_merge_sections
-#define tekhex_bfd_is_group_section                 bfd_generic_is_group_section
-#define tekhex_bfd_discard_group                    bfd_generic_discard_group
-#define tekhex_section_already_linked               _bfd_generic_section_already_linked
-#define tekhex_bfd_define_common_symbol             bfd_generic_define_common_symbol
-#define tekhex_bfd_link_hash_table_create           _bfd_generic_link_hash_table_create
-#define tekhex_bfd_link_add_symbols                 _bfd_generic_link_add_symbols
-#define tekhex_bfd_link_just_syms                   _bfd_generic_link_just_syms
-#define tekhex_bfd_copy_link_hash_symbol_type       _bfd_generic_copy_link_hash_symbol_type
-#define tekhex_bfd_final_link                       _bfd_generic_final_link
-#define tekhex_bfd_link_split_section               _bfd_generic_link_split_section
-#define tekhex_get_section_contents_in_window       _bfd_generic_get_section_contents_in_window
-#define tekhex_bfd_link_check_relocs                _bfd_generic_link_check_relocs
+#define tekhex_bfd_merge_sections		    bfd_generic_merge_sections
+#define tekhex_bfd_is_group_section		    bfd_generic_is_group_section
+#define tekhex_bfd_discard_group		    bfd_generic_discard_group
+#define tekhex_section_already_linked		    _bfd_generic_section_already_linked
+#define tekhex_bfd_define_common_symbol		    bfd_generic_define_common_symbol
+#define tekhex_bfd_define_start_stop		    bfd_generic_define_start_stop
+#define tekhex_bfd_link_hash_table_create	    _bfd_generic_link_hash_table_create
+#define tekhex_bfd_link_add_symbols		    _bfd_generic_link_add_symbols
+#define tekhex_bfd_link_just_syms		    _bfd_generic_link_just_syms
+#define tekhex_bfd_copy_link_hash_symbol_type	    _bfd_generic_copy_link_hash_symbol_type
+#define tekhex_bfd_final_link			    _bfd_generic_final_link
+#define tekhex_bfd_link_split_section		    _bfd_generic_link_split_section
+#define tekhex_get_section_contents_in_window	    _bfd_generic_get_section_contents_in_window
+#define tekhex_bfd_link_check_relocs		    _bfd_generic_link_check_relocs
 
 const bfd_target tekhex_vec =
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/TODO ./bfd/TODO
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/TODO	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/TODO	2018-01-09 02:04:54.000000000 +0000
@@ -20,7 +20,7 @@ Things that still need to be done: -*- T
 
  o - upgrade the reloc handling as per Steve's suggestion.
 
-Copyright (C) 2012-2017 Free Software Foundation, Inc.
+Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/trad-core.c ./bfd/trad-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/trad-core.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/trad-core.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back end for traditional Unix core files (U-area and raw sections)
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
    Written by John Gilmore of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -22,7 +22,7 @@
 #include "sysdep.h"
 #include "bfd.h"
 #include "libbfd.h"
-#include "libaout.h"           /* BFD a.out internal data structures */
+#include "libaout.h"	       /* BFD a.out internal data structures */
 
 #include <sys/param.h>
 #ifdef HAVE_DIRENT_H
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/vax1knetbsd.c ./bfd/vax1knetbsd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/vax1knetbsd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/vax1knetbsd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for NetBSD/VAX (1K page size) a.out-ish binaries.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -25,7 +25,7 @@
 #define	SEGMENT_SIZE	TARGET_PAGE_SIZE
 
 #define	DEFAULT_ARCH	bfd_arch_vax
-#define	DEFAULT_MID 	M_VAX_NETBSD
+#define	DEFAULT_MID	M_VAX_NETBSD
 
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
    remove whitespace added here, and thus will fail to concatenate
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/vaxbsd.c ./bfd/vaxbsd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/vaxbsd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/vaxbsd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for BSD and Ultrix/VAX (1K page size) a.out-ish binaries.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/vaxnetbsd.c ./bfd/vaxnetbsd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/vaxnetbsd.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/vaxnetbsd.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for NetBSD/VAX (4K page size) a.out-ish binaries.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -25,7 +25,7 @@
 #define	SEGMENT_SIZE	TARGET_PAGE_SIZE
 
 #define	DEFAULT_ARCH	bfd_arch_vax
-#define	DEFAULT_MID 	M_VAX4K_NETBSD
+#define	DEFAULT_MID	M_VAX4K_NETBSD
 
 /* Do not "beautify" the CONCAT* macro args.  Traditional C will not
    remove whitespace added here, and thus will fail to concatenate
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/verilog.c ./bfd/verilog.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/verilog.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/verilog.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for verilog hex memory dump files.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Written by Anthony Green <green@moxielogic.com>
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -45,7 +45,7 @@
 
    EXAMPLE
 	@1000
-        01 ae 3f 45 12
+	01 ae 3f 45 12
 
    DESCRIPTION
 	@1000 specifies the starting address for the memory data.
@@ -290,31 +290,31 @@ verilog_mkobject (bfd *abfd)
   return TRUE;
 }
 
-#define	verilog_close_and_cleanup                    _bfd_generic_close_and_cleanup
-#define verilog_bfd_free_cached_info                 _bfd_generic_bfd_free_cached_info
-#define verilog_new_section_hook                     _bfd_generic_new_section_hook
-#define verilog_bfd_is_target_special_symbol         ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define verilog_bfd_is_local_label_name              bfd_generic_is_local_label_name
-#define verilog_get_lineno                           _bfd_nosymbols_get_lineno
-#define verilog_find_nearest_line                    _bfd_nosymbols_find_nearest_line
-#define verilog_find_inliner_info                    _bfd_nosymbols_find_inliner_info
-#define verilog_make_empty_symbol                    _bfd_generic_make_empty_symbol
-#define verilog_bfd_make_debug_symbol                _bfd_nosymbols_bfd_make_debug_symbol
-#define verilog_read_minisymbols                     _bfd_generic_read_minisymbols
-#define verilog_minisymbol_to_symbol                 _bfd_generic_minisymbol_to_symbol
-#define verilog_get_section_contents_in_window       _bfd_generic_get_section_contents_in_window
+#define verilog_close_and_cleanup		     _bfd_generic_close_and_cleanup
+#define verilog_bfd_free_cached_info		     _bfd_generic_bfd_free_cached_info
+#define verilog_new_section_hook		     _bfd_generic_new_section_hook
+#define verilog_bfd_is_target_special_symbol	     ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
+#define verilog_bfd_is_local_label_name		     bfd_generic_is_local_label_name
+#define verilog_get_lineno			     _bfd_nosymbols_get_lineno
+#define verilog_find_nearest_line		     _bfd_nosymbols_find_nearest_line
+#define verilog_find_inliner_info		     _bfd_nosymbols_find_inliner_info
+#define verilog_make_empty_symbol		     _bfd_generic_make_empty_symbol
+#define verilog_bfd_make_debug_symbol		     _bfd_nosymbols_bfd_make_debug_symbol
+#define verilog_read_minisymbols		     _bfd_generic_read_minisymbols
+#define verilog_minisymbol_to_symbol		     _bfd_generic_minisymbol_to_symbol
+#define verilog_get_section_contents_in_window	     _bfd_generic_get_section_contents_in_window
 #define verilog_bfd_get_relocated_section_contents   bfd_generic_get_relocated_section_contents
-#define verilog_bfd_relax_section                    bfd_generic_relax_section
-#define verilog_bfd_gc_sections                      bfd_generic_gc_sections
-#define verilog_bfd_merge_sections                   bfd_generic_merge_sections
-#define verilog_bfd_is_group_section                 bfd_generic_is_group_section
-#define verilog_bfd_discard_group                    bfd_generic_discard_group
-#define verilog_section_already_linked               _bfd_generic_section_already_linked
-#define verilog_bfd_link_hash_table_create           _bfd_generic_link_hash_table_create
-#define verilog_bfd_link_add_symbols                 _bfd_generic_link_add_symbols
-#define verilog_bfd_link_just_syms                   _bfd_generic_link_just_syms
-#define verilog_bfd_final_link                       _bfd_generic_final_link
-#define verilog_bfd_link_split_section               _bfd_generic_link_split_section
+#define verilog_bfd_relax_section		     bfd_generic_relax_section
+#define verilog_bfd_gc_sections			     bfd_generic_gc_sections
+#define verilog_bfd_merge_sections		     bfd_generic_merge_sections
+#define verilog_bfd_is_group_section		     bfd_generic_is_group_section
+#define verilog_bfd_discard_group		     bfd_generic_discard_group
+#define verilog_section_already_linked		     _bfd_generic_section_already_linked
+#define verilog_bfd_link_hash_table_create	     _bfd_generic_link_hash_table_create
+#define verilog_bfd_link_add_symbols		     _bfd_generic_link_add_symbols
+#define verilog_bfd_link_just_syms		     _bfd_generic_link_just_syms
+#define verilog_bfd_final_link			     _bfd_generic_final_link
+#define verilog_bfd_link_split_section		     _bfd_generic_link_split_section
 
 const bfd_target verilog_vec =
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/versados.c ./bfd/versados.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/versados.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/versados.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for VERSAdos-E objects.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
    Written by Steve Chamberlain of Cygnus Support <sac@cygnus.com>.
 
    Versados is a Motorola trademark.
@@ -122,8 +122,8 @@ struct ext_esd
   unsigned char esd_entries[1];
 };
 
-#define ESD_ABS 	  0
-#define ESD_COMMON 	  1
+#define ESD_ABS		  0
+#define ESD_COMMON	  1
 #define ESD_STD_REL_SEC   2
 #define ESD_SHRT_REL_SEC  3
 #define ESD_XDEF_IN_SEC   4
@@ -149,7 +149,7 @@ versados_mkobject (bfd *abfd)
   if (abfd->tdata.versados_data == NULL)
     {
       bfd_size_type amt = sizeof (tdata_type);
-      tdata_type *tdata = bfd_alloc (abfd, amt);
+      tdata_type *tdata = bfd_zalloc (abfd, amt);
 
       if (tdata == NULL)
 	return FALSE;
@@ -345,13 +345,13 @@ reloc_howto_type versados_howto_table[] 
 };
 
 static int
-get_offset (int len, unsigned char *ptr)
+get_offset (unsigned int len, unsigned char *ptr)
 {
   int val = 0;
 
   if (len)
     {
-      int i;
+      unsigned int i;
 
       val = *ptr++;
       if (val & 0x80)
@@ -394,9 +394,13 @@ process_otr (bfd *abfd, struct ext_otr *
 	  int flag = *srcp++;
 	  int esdids = (flag >> 5) & 0x7;
 	  int sizeinwords = ((flag >> 3) & 1) ? 2 : 1;
-	  int offsetlen = flag & 0x7;
+	  unsigned int offsetlen = flag & 0x7;
 	  int j;
 
+	  /* PR 21591: Check for invalid lengths.  */
+	  if (srcp + esdids + offsetlen >= endp)
+	    return;
+
 	  if (esdids == 0)
 	    {
 	      /* A zero esdid means the new pc is the offset given.  */
@@ -841,40 +845,42 @@ versados_canonicalize_reloc (bfd *abfd,
   return section->reloc_count;
 }
 
-#define	versados_close_and_cleanup                    _bfd_generic_close_and_cleanup
-#define versados_bfd_free_cached_info                 _bfd_generic_bfd_free_cached_info
-#define versados_new_section_hook                     _bfd_generic_new_section_hook
-#define versados_bfd_is_target_special_symbol   ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define versados_bfd_is_local_label_name              bfd_generic_is_local_label_name
-#define versados_get_lineno                           _bfd_nosymbols_get_lineno
-#define versados_find_nearest_line                    _bfd_nosymbols_find_nearest_line
-#define versados_find_line                            _bfd_nosymbols_find_line
-#define versados_find_inliner_info                    _bfd_nosymbols_find_inliner_info
+#define	versados_close_and_cleanup		      _bfd_generic_close_and_cleanup
+#define versados_bfd_free_cached_info		      _bfd_generic_bfd_free_cached_info
+#define versados_new_section_hook		      _bfd_generic_new_section_hook
+#define versados_bfd_is_target_special_symbol	((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
+#define versados_bfd_is_local_label_name	      bfd_generic_is_local_label_name
+#define versados_get_lineno			      _bfd_nosymbols_get_lineno
+#define versados_find_nearest_line		      _bfd_nosymbols_find_nearest_line
+#define versados_find_line			      _bfd_nosymbols_find_line
+#define versados_find_inliner_info		      _bfd_nosymbols_find_inliner_info
 #define versados_get_symbol_version_string	      _bfd_nosymbols_get_symbol_version_string
-#define versados_make_empty_symbol                    _bfd_generic_make_empty_symbol
-#define versados_bfd_make_debug_symbol                _bfd_nosymbols_bfd_make_debug_symbol
-#define versados_read_minisymbols                     _bfd_generic_read_minisymbols
-#define versados_minisymbol_to_symbol                 _bfd_generic_minisymbol_to_symbol
-#define versados_bfd_reloc_type_lookup                _bfd_norelocs_bfd_reloc_type_lookup
-#define versados_bfd_reloc_name_lookup          _bfd_norelocs_bfd_reloc_name_lookup
-#define versados_set_arch_mach                        bfd_default_set_arch_mach
+#define versados_make_empty_symbol		      _bfd_generic_make_empty_symbol
+#define versados_bfd_make_debug_symbol		      _bfd_nosymbols_bfd_make_debug_symbol
+#define versados_read_minisymbols		      _bfd_generic_read_minisymbols
+#define versados_minisymbol_to_symbol		      _bfd_generic_minisymbol_to_symbol
+#define versados_bfd_reloc_type_lookup		      _bfd_norelocs_bfd_reloc_type_lookup
+#define versados_bfd_reloc_name_lookup		_bfd_norelocs_bfd_reloc_name_lookup
+#define versados_set_arch_mach			      bfd_default_set_arch_mach
 #define versados_bfd_get_relocated_section_contents   bfd_generic_get_relocated_section_contents
-#define versados_bfd_relax_section                    bfd_generic_relax_section
-#define versados_bfd_gc_sections                      bfd_generic_gc_sections
-#define versados_bfd_lookup_section_flags             bfd_generic_lookup_section_flags
-#define versados_bfd_merge_sections                   bfd_generic_merge_sections
-#define versados_bfd_is_group_section                 bfd_generic_is_group_section
-#define versados_bfd_discard_group                    bfd_generic_discard_group
-#define versados_section_already_linked               _bfd_generic_section_already_linked
-#define versados_bfd_define_common_symbol             bfd_generic_define_common_symbol
-#define versados_bfd_link_hash_table_create           _bfd_generic_link_hash_table_create
-#define versados_bfd_link_add_symbols                 _bfd_generic_link_add_symbols
-#define versados_bfd_link_just_syms                   _bfd_generic_link_just_syms
+#define versados_bfd_relax_section		      bfd_generic_relax_section
+#define versados_bfd_gc_sections		      bfd_generic_gc_sections
+#define versados_bfd_lookup_section_flags	      bfd_generic_lookup_section_flags
+#define versados_bfd_merge_sections		      bfd_generic_merge_sections
+#define versados_bfd_is_group_section		      bfd_generic_is_group_section
+#define versados_bfd_discard_group		      bfd_generic_discard_group
+#define versados_section_already_linked		      _bfd_generic_section_already_linked
+#define versados_bfd_define_common_symbol	      bfd_generic_define_common_symbol
+#define versados_bfd_define_start_stop		      bfd_generic_define_start_stop
+#define versados_bfd_link_hash_table_create	      _bfd_generic_link_hash_table_create
+#define versados_bfd_link_add_symbols		      _bfd_generic_link_add_symbols
+#define versados_bfd_link_just_syms		      _bfd_generic_link_just_syms
 #define versados_bfd_copy_link_hash_symbol_type \
   _bfd_generic_copy_link_hash_symbol_type
-#define versados_bfd_final_link                       _bfd_generic_final_link
-#define versados_bfd_link_split_section               _bfd_generic_link_split_section
-#define versados_bfd_link_check_relocs                _bfd_generic_link_check_relocs
+#define versados_bfd_final_link			      _bfd_generic_final_link
+#define versados_bfd_link_split_section		      _bfd_generic_link_split_section
+#define versados_bfd_link_check_relocs		      _bfd_generic_link_check_relocs
+#define versados_set_reloc			      _bfd_generic_set_reloc
 
 const bfd_target m68k_versados_vec =
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/version.h ./bfd/version.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/version.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/version.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,4 +1,22 @@
-#define BFD_VERSION_DATE 20180102
+/* The date below is automatically updated every day by a bot.  During
+   development, we include the date in the tools' version strings
+   (visible in 'ld -v' etc.) because people build binutils from a
+   variety of sources - git, tarballs, distro sources - and we want
+   something that can easily identify the source they used when they
+   report bugs.  The bfd version plus date is usually good enough for
+   that purpose.
+
+   During development, this date ends up in libbfd and libopcodes
+   sonames because people naturally expect shared libraries with the
+   same soname to have compatible ABIs.  We could bump the bfd version
+   on every ABI change, but that's just another thing contributors and
+   maintainers would need to remember.  Instead, it's much easier for
+   all if the soname contains the date.  This is not perfect but is
+   good enough.
+
+   In releases, the date is not included in either version strings or
+   sonames.  */
+#define BFD_VERSION_DATE 20180109
 #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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/version.m4 ./bfd/version.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/version.m4	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/version.m4	2018-01-09 02:04:54.000000000 +0000
@@ -1 +1 @@
-m4_define([BFD_VERSION], [2.28.51])
+m4_define([BFD_VERSION], [2.29.51])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/vms-alpha.c ./bfd/vms-alpha.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/vms-alpha.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/vms-alpha.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* vms.c -- BFD back-end for EVAX (openVMS/Alpha) files.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    Initial version written by Klaus Kaempf (kkaempf@rmi.de)
    Major rewrite by Adacore.
@@ -118,14 +118,14 @@
 
 /* Debugger symbol definitions.  */
 
-#define DBG_S_L_DMT_MODBEG       0
-#define DBG_S_L_DST_SIZE         4
-#define DBG_S_W_DMT_PSECT_COUNT  8
+#define DBG_S_L_DMT_MODBEG	 0
+#define DBG_S_L_DST_SIZE	 4
+#define DBG_S_W_DMT_PSECT_COUNT	 8
 #define DBG_S_C_DMT_HEADER_SIZE 12
 
-#define DBG_S_L_DMT_PSECT_START  0
+#define DBG_S_L_DMT_PSECT_START	 0
 #define DBG_S_L_DMT_PSECT_LENGTH 4
-#define DBG_S_C_DMT_PSECT_SIZE   8
+#define DBG_S_C_DMT_PSECT_SIZE	 8
 
 /* VMS module header.  */
 
@@ -276,7 +276,7 @@ struct vms_private_data_struct
   bfd_vma transfer_address[4];
 
   /* Array of GSD sections to get the correspond BFD one.  */
-  unsigned int section_max; 		/* Size of the sections array.  */
+  unsigned int section_max;		/* Size of the sections array.  */
   unsigned int section_count;		/* Number of GSD sections.  */
   asection **sections;
 
@@ -371,9 +371,9 @@ static bfd_boolean _bfd_vms_slurp_object
 static void alpha_vms_add_fixup_lp (struct bfd_link_info *, bfd *, bfd *);
 static void alpha_vms_add_fixup_ca (struct bfd_link_info *, bfd *, bfd *);
 static void alpha_vms_add_fixup_qr (struct bfd_link_info *, bfd *, bfd *,
-                                    bfd_vma);
+				    bfd_vma);
 static void alpha_vms_add_fixup_lr (struct bfd_link_info *, unsigned int,
-                                    bfd_vma);
+				    bfd_vma);
 static void alpha_vms_add_lw_reloc (struct bfd_link_info *);
 static void alpha_vms_add_qw_reloc (struct bfd_link_info *);
 
@@ -392,11 +392,11 @@ struct vector_type
 
 #define VEC_EL(VEC, TYPE, N) (((TYPE *)((VEC).els))[N])
 
-#define VEC_INIT(VEC)                           \
-  do {                                          \
-    (VEC).max_el = 0;                           \
-    (VEC).nbr_el = 0;                           \
-    (VEC).els = NULL;                           \
+#define VEC_INIT(VEC)				\
+  do {						\
+    (VEC).max_el = 0;				\
+    (VEC).nbr_el = 0;				\
+    (VEC).els = NULL;				\
   } while (0)
 
 /* Be sure there is room for a new element.  */
@@ -405,12 +405,12 @@ static void vector_grow1 (struct vector_
 
 /* Allocate room for a new element and return its address.  */
 
-#define VEC_APPEND(VEC, TYPE)                                   \
+#define VEC_APPEND(VEC, TYPE)					\
   (vector_grow1 (&VEC, sizeof (TYPE)), &VEC_EL(VEC, TYPE, (VEC).nbr_el++))
 
 /* Append an element.  */
 
-#define VEC_APPEND_EL(VEC, TYPE, EL)            \
+#define VEC_APPEND_EL(VEC, TYPE, EL)		\
   (*(VEC_APPEND (VEC, TYPE)) = EL)
 
 struct alpha_vms_vma_ref
@@ -465,7 +465,7 @@ struct alpha_vms_link_hash_entry
 
 static bfd_boolean
 _bfd_vms_slurp_eihd (bfd *abfd, unsigned int *eisd_offset,
-                     unsigned int *eihs_offset)
+		     unsigned int *eihs_offset)
 {
   unsigned int imgtype, size;
   bfd_vma symvva;
@@ -473,6 +473,14 @@ _bfd_vms_slurp_eihd (bfd *abfd, unsigned
 
   vms_debug2 ((8, "_bfd_vms_slurp_eihd\n"));
 
+  /* PR 21813: Check for an undersized record.  */
+  if (PRIV (recrd.buf_size) < sizeof (* eihd))
+    {
+      _bfd_error_handler (_("Corrupt EIHD record - size is too small"));
+      bfd_set_error (bfd_error_bad_value);
+      return FALSE;
+    }
+
   size = bfd_getl32 (eihd->size);
   imgtype = bfd_getl32 (eihd->imgtype);
 
@@ -493,8 +501,8 @@ _bfd_vms_slurp_eihd (bfd *abfd, unsigned
   *eihs_offset = bfd_getl32 (eihd->symdbgoff);
 
   vms_debug2 ((4, "EIHD size %d imgtype %d symvva 0x%lx eisd %d eihs %d\n",
-               size, imgtype, (unsigned long)symvva,
-               *eisd_offset, *eihs_offset));
+	       size, imgtype, (unsigned long)symvva,
+	       *eisd_offset, *eihs_offset));
 
   return TRUE;
 }
@@ -514,29 +522,39 @@ _bfd_vms_slurp_eisd (bfd *abfd, unsigned
       struct vms_eisd *eisd;
       unsigned int rec_size;
       unsigned int size;
-      unsigned long long vaddr;
+      bfd_uint64_t vaddr;
       unsigned int flags;
       unsigned int vbn;
       char *name = NULL;
       asection *section;
       flagword bfd_flags;
 
-      /* PR 17512: file: 3d9e9fe9.  */
-      if (offset >= PRIV (recrd.rec_size))
+      /* PR 17512: file: 3d9e9fe9.
+	 12 is the offset of the eisdsize field from the start of the record (8)
+	 plus the size of the eisdsize field (4).  */
+      if (offset >= PRIV (recrd.rec_size) - 12)
 	return FALSE;
       eisd = (struct vms_eisd *)(PRIV (recrd.rec) + offset);
       rec_size = bfd_getl32 (eisd->eisdsize);
       if (rec_size == 0)
-        break;
+	break;
 
       /* Skip to next block if pad.  */
       if (rec_size == 0xffffffff)
-        {
-          offset = (offset + VMS_BLOCK_SIZE) & ~(VMS_BLOCK_SIZE - 1);
-          continue;
-        }
-      else
-        offset += rec_size;
+	{
+	  offset = (offset + VMS_BLOCK_SIZE) & ~(VMS_BLOCK_SIZE - 1);
+	  continue;
+	}
+
+      /* Make sure that there is enough data present in the record.  */
+      /* FIXME: Should we use sizeof (struct vms_eisd) rather than just 32 here ?  */
+      if (rec_size < 32)
+	return FALSE;
+      /* Make sure that the record is not too big either.  */
+      if (offset + rec_size >= PRIV (recrd.rec_size))
+	return FALSE;
+
+      offset += rec_size;
 
       size = bfd_getl32 (eisd->secsize);
       vaddr = bfd_getl64 (eisd->virt_addr);
@@ -544,7 +562,7 @@ _bfd_vms_slurp_eisd (bfd *abfd, unsigned
       vbn = bfd_getl32 (eisd->vbn);
 
       vms_debug2 ((4, "EISD at 0x%x size 0x%x addr 0x%lx flags 0x%x blk %d\n",
-                   offset, size, (unsigned long)vaddr, flags, vbn));
+		   offset, size, (unsigned long)vaddr, flags, vbn));
 
       /* VMS combines psects from .obj files into isects in the .exe.  This
 	 process doesn't preserve enough information to reliably determine
@@ -552,7 +570,7 @@ _bfd_vms_slurp_eisd (bfd *abfd, unsigned
 	 especially true of DWARF debug sections.  */
       bfd_flags = SEC_ALLOC;
       if (vbn != 0)
-        bfd_flags |= SEC_HAS_CONTENTS | SEC_LOAD;
+	bfd_flags |= SEC_HAS_CONTENTS | SEC_LOAD;
 
       if (flags & EISD__M_EXE)
 	bfd_flags |= SEC_CODE;
@@ -574,28 +592,34 @@ _bfd_vms_slurp_eisd (bfd *abfd, unsigned
 
       if (flags & EISD__M_GBL)
 	{
-	  name = _bfd_vms_save_counted_string (eisd->gblnam);
+	  if (rec_size < offsetof (struct vms_eisd, gblnam))
+	    return FALSE;
+	  else if (rec_size < sizeof (struct vms_eisd))
+	    name = _bfd_vms_save_counted_string (eisd->gblnam,
+						 rec_size - offsetof (struct vms_eisd, gblnam));
+	  else
+	    name = _bfd_vms_save_counted_string (eisd->gblnam, EISD__K_GBLNAMLEN);
 	  bfd_flags |= SEC_COFF_SHARED_LIBRARY;
 	  bfd_flags &= ~(SEC_ALLOC | SEC_LOAD);
 	}
       else if (flags & EISD__M_FIXUPVEC)
-        name = "$FIXUPVEC$";
+	name = "$FIXUPVEC$";
       else if (eisd->type == EISD__K_USRSTACK)
-        name = "$STACK$";
+	name = "$STACK$";
       else
 	{
-          const char *pfx;
+	  const char *pfx;
 
 	  name = (char*) bfd_alloc (abfd, 32);
-          if (flags & EISD__M_DZRO)
-            pfx = "BSS";
-          else if (flags & EISD__M_EXE)
-            pfx = "CODE";
-          else if (!(flags & EISD__M_WRT))
-            pfx = "RO";
-          else
-            pfx = "LOCAL";
-          BFD_ASSERT (section_count < 999);
+	  if (flags & EISD__M_DZRO)
+	    pfx = "BSS";
+	  else if (flags & EISD__M_EXE)
+	    pfx = "CODE";
+	  else if (!(flags & EISD__M_WRT))
+	    pfx = "RO";
+	  else
+	    pfx = "LOCAL";
+	  BFD_ASSERT (section_count < 999);
 	  sprintf (name, "$%s_%03d$", pfx, section_count++);
 	}
 
@@ -622,14 +646,29 @@ static bfd_boolean
 _bfd_vms_slurp_eihs (bfd *abfd, unsigned int offset)
 {
   unsigned char *p = PRIV (recrd.rec) + offset;
-  unsigned int gstvbn = bfd_getl32 (p + EIHS__L_GSTVBN);
-  unsigned int gstsize ATTRIBUTE_UNUSED = bfd_getl32 (p + EIHS__L_GSTSIZE);
-  unsigned int dstvbn = bfd_getl32 (p + EIHS__L_DSTVBN);
-  unsigned int dstsize = bfd_getl32 (p + EIHS__L_DSTSIZE);
-  unsigned int dmtvbn = bfd_getl32 (p + EIHS__L_DMTVBN);
-  unsigned int dmtbytes = bfd_getl32 (p + EIHS__L_DMTBYTES);
+  unsigned int gstvbn;
+  unsigned int gstsize ATTRIBUTE_UNUSED;
+  unsigned int dstvbn;
+  unsigned int dstsize;
+  unsigned int dmtvbn;
+  unsigned int dmtbytes;
   asection *section;
 
+  /* PR 21611: Check that offset is valid.  */
+  if (offset > PRIV (recrd.rec_size) - (EIHS__L_DMTBYTES + 4))
+    {
+      _bfd_error_handler (_("Unable to read EIHS record at offset %#x"), offset);
+      bfd_set_error (bfd_error_file_truncated);
+      return FALSE;
+    }
+
+  gstvbn   = bfd_getl32 (p + EIHS__L_GSTVBN);
+  gstsize  = bfd_getl32 (p + EIHS__L_GSTSIZE);
+  dstvbn   = bfd_getl32 (p + EIHS__L_DSTVBN);
+  dstsize  = bfd_getl32 (p + EIHS__L_DSTSIZE);
+  dmtvbn   = bfd_getl32 (p + EIHS__L_DMTVBN);
+  dmtbytes = bfd_getl32 (p + EIHS__L_DMTBYTES);
+
 #if VMS_DEBUG
   vms_debug (8, "_bfd_vms_slurp_ihs\n");
   vms_debug (4, "EIHS record gstvbn %d gstsize %d dstvbn %d dstsize %d dmtvbn %d dmtbytes %d\n",
@@ -677,7 +716,7 @@ _bfd_vms_slurp_eihs (bfd *abfd, unsigned
 	  return FALSE;
 	}
 
-      if (_bfd_vms_slurp_object_records (abfd) != TRUE)
+      if (!_bfd_vms_slurp_object_records (abfd))
 	return FALSE;
 
       abfd->flags |= HAS_SYMS;
@@ -758,10 +797,10 @@ _bfd_vms_get_object_record (bfd *abfd)
   if (PRIV (recrd.file_format) == FF_FOREIGN && (bfd_tell (abfd) & 1))
     {
       if (bfd_bread (PRIV (recrd.buf), 1, abfd) != 1)
-        {
-          bfd_set_error (bfd_error_file_truncated);
-          return -1;
-        }
+	{
+	  bfd_set_error (bfd_error_file_truncated);
+	  return -1;
+	}
     }
 
   /* Read the record header  */
@@ -781,7 +820,7 @@ _bfd_vms_get_object_record (bfd *abfd)
   type = bfd_getl16 (PRIV (recrd.rec));
 
   vms_debug2 ((8, "_bfd_vms_get_obj_record: rec %p, size %d, type %d\n",
-               PRIV (recrd.rec), PRIV (recrd.rec_size), type));
+	       PRIV (recrd.rec), PRIV (recrd.rec_size), type));
 
   return type;
 }
@@ -821,9 +860,9 @@ vms_get_remaining_object_record (bfd *ab
   if (to_read > PRIV (recrd.buf_size))
     {
       PRIV (recrd.buf)
-        = (unsigned char *) bfd_realloc (PRIV (recrd.buf), to_read);
+	= (unsigned char *) bfd_realloc (PRIV (recrd.buf), to_read);
       if (PRIV (recrd.buf) == NULL)
-        return 0;
+	return 0;
       PRIV (recrd.buf_size) = to_read;
     }
   /* PR 17512: file: 025-1974-0.004.  */
@@ -846,7 +885,7 @@ vms_get_remaining_object_record (bfd *ab
   maybe_adjust_record_pointer_for_object (abfd);
 
   vms_debug2 ((8, "vms_get_remaining_obj_record: size %d\n",
-               PRIV (recrd.rec_size)));
+	       PRIV (recrd.rec_size)));
 
   return PRIV (recrd.rec_size);
 }
@@ -884,11 +923,11 @@ _bfd_vms_slurp_ehdr (bfd *abfd)
       PRIV (hdr_data).hdr_l_recsiz = bfd_getl32 (vms_rec + 16);
       if ((vms_rec + 20 + vms_rec[20] + 1) >= end)
 	goto fail;
-      PRIV (hdr_data).hdr_t_name   = _bfd_vms_save_counted_string (vms_rec + 20);
+      PRIV (hdr_data).hdr_t_name   = _bfd_vms_save_counted_string (vms_rec + 20, vms_rec[20]);
       ptr = vms_rec + 20 + vms_rec[20] + 1;
       if ((ptr + *ptr + 1) >= end)
 	goto fail;
-      PRIV (hdr_data).hdr_t_version =_bfd_vms_save_counted_string (ptr);
+      PRIV (hdr_data).hdr_t_version =_bfd_vms_save_counted_string (ptr, *ptr);
       ptr += *ptr + 1;
       if (ptr + 17 >= end)
 	goto fail;
@@ -899,21 +938,21 @@ _bfd_vms_slurp_ehdr (bfd *abfd)
       if (vms_rec + PRIV (recrd.rec_size - 6) > end)
 	goto fail;
       PRIV (hdr_data).hdr_c_lnm =
-        _bfd_vms_save_sized_string (vms_rec, PRIV (recrd.rec_size - 6));
+	_bfd_vms_save_sized_string (vms_rec, PRIV (recrd.rec_size - 6));
       break;
 
     case EMH__C_SRC:
       if (vms_rec + PRIV (recrd.rec_size - 6) > end)
 	goto fail;
       PRIV (hdr_data).hdr_c_src =
-        _bfd_vms_save_sized_string (vms_rec, PRIV (recrd.rec_size - 6));
+	_bfd_vms_save_sized_string (vms_rec, PRIV (recrd.rec_size - 6));
       break;
 
     case EMH__C_TTL:
       if (vms_rec + PRIV (recrd.rec_size - 6) > end)
 	goto fail;
       PRIV (hdr_data).hdr_c_ttl =
-        _bfd_vms_save_sized_string (vms_rec, PRIV (recrd.rec_size - 6));
+	_bfd_vms_save_sized_string (vms_rec, PRIV (recrd.rec_size - 6));
       break;
 
     case EMH__C_CPR:
@@ -1026,7 +1065,7 @@ vms_secflag_by_name (const struct sec_fl
   while (section_flags[i].name != NULL)
     {
       if (strcmp (name, section_flags[i].name) == 0)
-        {
+	{
 	  if (hassize)
 	    return section_flags[i].flags_hassize;
 	  else
@@ -1044,7 +1083,7 @@ vms_secflag_by_name (const struct sec_fl
 static flagword
 vms_esecflag_by_name (const struct sec_flags_struct *section_flags,
 		      const char *name,
-                      int hassize)
+		      int hassize)
 {
   int i = 0;
 
@@ -1073,20 +1112,20 @@ add_symbol_entry (bfd *abfd, struct vms_
   if (PRIV (gsd_sym_count) >= PRIV (max_sym_count))
     {
       if (PRIV (max_sym_count) == 0)
-        {
-          PRIV (max_sym_count) = 128;
-          PRIV (syms) = bfd_malloc
-            (PRIV (max_sym_count) * sizeof (struct vms_symbol_entry *));
-        }
+	{
+	  PRIV (max_sym_count) = 128;
+	  PRIV (syms) = bfd_malloc
+	    (PRIV (max_sym_count) * sizeof (struct vms_symbol_entry *));
+	}
       else
-        {
-          PRIV (max_sym_count) *= 2;
-          PRIV (syms) = bfd_realloc
-            (PRIV (syms),
-             (PRIV (max_sym_count) * sizeof (struct vms_symbol_entry *)));
-        }
+	{
+	  PRIV (max_sym_count) *= 2;
+	  PRIV (syms) = bfd_realloc
+	    (PRIV (syms),
+	     (PRIV (max_sym_count) * sizeof (struct vms_symbol_entry *)));
+	}
       if (PRIV (syms) == NULL)
-        return FALSE;
+	return FALSE;
     }
 
   PRIV (syms)[PRIV (gsd_sym_count)++] = sym;
@@ -1121,19 +1160,28 @@ add_symbol (bfd *abfd, const unsigned ch
 static bfd_boolean
 _bfd_vms_slurp_egsd (bfd *abfd)
 {
-  int gsd_type, gsd_size;
+  int gsd_type;
+  unsigned int gsd_size;
   unsigned char *vms_rec;
   unsigned long base_addr;
 
   vms_debug2 ((2, "EGSD\n"));
 
+  if (PRIV (recrd.rec_size) < 8)
+    {
+      _bfd_error_handler (_("Corrupt EGSD record: its size (%#x) is too small"),
+			  PRIV (recrd.rec_size));
+      bfd_set_error (bfd_error_bad_value);
+      return FALSE;
+    }
+
   PRIV (recrd.rec) += 8;	/* Skip type, size, align pad.  */
   PRIV (recrd.rec_size) -= 8;
 
   /* Calculate base address for each section.  */
   base_addr = 0L;
 
-  while (PRIV (recrd.rec_size) > 0)
+  while (PRIV (recrd.rec_size) > 4)
     {
       vms_rec = PRIV (recrd.rec);
 
@@ -1142,175 +1190,228 @@ _bfd_vms_slurp_egsd (bfd *abfd)
 
       vms_debug2 ((3, "egsd_type %d\n", gsd_type));
 
+      /* PR 21615: Check for size overflow.  */
+      if (PRIV (recrd.rec_size) < gsd_size)
+	{
+	  _bfd_error_handler (_("Corrupt EGSD record: size (%#x) is larger than remaining space (%#x)"),
+			      gsd_size, PRIV (recrd.rec_size));
+	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
+	}
+
+      if (gsd_size < 4)
+	{
+	  _bfd_error_handler (_("Corrupt EGSD record: size (%#x) is too small"),
+			      gsd_size);
+	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
+	}
+
       switch (gsd_type)
 	{
 	case EGSD__C_PSC:
-          /* Program section definition.  */
+	  /* Program section definition.  */
 	  {
-            struct vms_egps *egps = (struct vms_egps *)vms_rec;
-            flagword new_flags, vms_flags;
-            asection *section;
+	    struct vms_egps *egps = (struct vms_egps *)vms_rec;
+	    flagword new_flags, vms_flags;
+	    asection *section;
 
 	    vms_flags = bfd_getl16 (egps->flags);
 
-            if ((vms_flags & EGPS__V_REL) == 0)
-              {
-                /* Use the global absolute section for all
-                   absolute sections.  */
-                section = bfd_abs_section_ptr;
-              }
-            else
-              {
-                char *name;
-                unsigned long align_addr;
-
-                name = _bfd_vms_save_counted_string (&egps->namlng);
-
-                section = bfd_make_section (abfd, name);
-                if (!section)
-                  return FALSE;
-
-                section->filepos = 0;
-                section->size = bfd_getl32 (egps->alloc);
-                section->alignment_power = egps->align;
-
-                vms_section_data (section)->flags = vms_flags;
-                vms_section_data (section)->no_flags = 0;
-
-                new_flags = vms_secflag_by_name (evax_section_flags, name,
-                                                 section->size > 0);
-                if (section->size > 0)
-                  new_flags |= SEC_LOAD;
-                if (!(vms_flags & EGPS__V_NOMOD) && section->size > 0)
-                  {
-                    /* Set RELOC and HAS_CONTENTS if the section is not
-                       demand-zero and not empty.  */
-                    new_flags |= SEC_HAS_CONTENTS;
-                    if (vms_flags & EGPS__V_REL)
-                      new_flags |= SEC_RELOC;
-                  }
-                if (vms_flags & EGPS__V_EXE)
-                  {
-                    /* Set CODE if section is executable.  */
-                    new_flags |= SEC_CODE;
-                    new_flags &= ~SEC_DATA;
-                  }
-                if (!bfd_set_section_flags (abfd, section, new_flags))
-                  return FALSE;
-
-                /* Give a non-overlapping vma to non absolute sections.  */
-                align_addr = (1 << section->alignment_power);
-                if ((base_addr % align_addr) != 0)
-                  base_addr += (align_addr - (base_addr % align_addr));
-                section->vma = (bfd_vma)base_addr;
-                base_addr += section->size;
-              }
-
-            /* Append it to the section array.  */
-            if (PRIV (section_count) >= PRIV (section_max))
-              {
-                if (PRIV (section_max) == 0)
-                  PRIV (section_max) = 16;
-                else
-                  PRIV (section_max) *= 2;
-                PRIV (sections) = bfd_realloc_or_free
-                  (PRIV (sections), PRIV (section_max) * sizeof (asection *));
-                if (PRIV (sections) == NULL)
-                  return FALSE;
-              }
+	    if ((vms_flags & EGPS__V_REL) == 0)
+	      {
+		/* Use the global absolute section for all
+		   absolute sections.  */
+		section = bfd_abs_section_ptr;
+	      }
+	    else
+	      {
+		char *name;
+		unsigned long align_addr;
+
+		name = _bfd_vms_save_counted_string (&egps->namlng, gsd_size - 4);
+
+		section = bfd_make_section (abfd, name);
+		if (!section)
+		  return FALSE;
+
+		section->filepos = 0;
+		section->size = bfd_getl32 (egps->alloc);
+		section->alignment_power = egps->align;
+
+		vms_section_data (section)->flags = vms_flags;
+		vms_section_data (section)->no_flags = 0;
+
+		new_flags = vms_secflag_by_name (evax_section_flags, name,
+						 section->size > 0);
+		if (section->size > 0)
+		  new_flags |= SEC_LOAD;
+		if (!(vms_flags & EGPS__V_NOMOD) && section->size > 0)
+		  {
+		    /* Set RELOC and HAS_CONTENTS if the section is not
+		       demand-zero and not empty.  */
+		    new_flags |= SEC_HAS_CONTENTS;
+		    if (vms_flags & EGPS__V_REL)
+		      new_flags |= SEC_RELOC;
+		  }
+		if (vms_flags & EGPS__V_EXE)
+		  {
+		    /* Set CODE if section is executable.  */
+		    new_flags |= SEC_CODE;
+		    new_flags &= ~SEC_DATA;
+		  }
+		if (!bfd_set_section_flags (abfd, section, new_flags))
+		  return FALSE;
+
+		/* Give a non-overlapping vma to non absolute sections.  */
+		align_addr = (1 << section->alignment_power);
+		if ((base_addr % align_addr) != 0)
+		  base_addr += (align_addr - (base_addr % align_addr));
+		section->vma = (bfd_vma)base_addr;
+		base_addr += section->size;
+	      }
+
+	    /* Append it to the section array.  */
+	    if (PRIV (section_count) >= PRIV (section_max))
+	      {
+		if (PRIV (section_max) == 0)
+		  PRIV (section_max) = 16;
+		else
+		  PRIV (section_max) *= 2;
+		PRIV (sections) = bfd_realloc_or_free
+		  (PRIV (sections), PRIV (section_max) * sizeof (asection *));
+		if (PRIV (sections) == NULL)
+		  return FALSE;
+	      }
 
-            PRIV (sections)[PRIV (section_count)] = section;
-            PRIV (section_count)++;
+	    PRIV (sections)[PRIV (section_count)] = section;
+	    PRIV (section_count)++;
 	  }
 	  break;
 
 	case EGSD__C_SYM:
 	  {
-            int nameoff;
-            struct vms_symbol_entry *entry;
-            struct vms_egsy *egsy = (struct vms_egsy *) vms_rec;
-            flagword old_flags;
+	    int nameoff;
+	    struct vms_symbol_entry *entry;
+	    struct vms_egsy *egsy = (struct vms_egsy *) vms_rec;
+	    flagword old_flags;
 
 	    old_flags = bfd_getl16 (egsy->flags);
 	    if (old_flags & EGSY__V_DEF)
-              nameoff = ESDF__B_NAMLNG;
-            else
-              nameoff = ESRF__B_NAMLNG;
-
-            entry = add_symbol (abfd, vms_rec + nameoff);
-            if (entry == NULL)
-              return FALSE;
-
-            /* Allow only duplicate reference.  */
-            if ((entry->flags & EGSY__V_DEF) && (old_flags & EGSY__V_DEF))
-              abort ();
-
-            if (entry->typ == 0)
-              {
-                entry->typ = gsd_type;
-                entry->data_type = egsy->datyp;
-                entry->flags = old_flags;
-              }
+	      nameoff = ESDF__B_NAMLNG;
+	    else
+	      nameoff = ESRF__B_NAMLNG;
+
+	    entry = add_symbol (abfd, vms_rec + nameoff);
+	    if (entry == NULL)
+	      return FALSE;
+
+	    /* Allow only duplicate reference.  */
+	    if ((entry->flags & EGSY__V_DEF) && (old_flags & EGSY__V_DEF))
+	      abort ();
+
+	    if (entry->typ == 0)
+	      {
+		entry->typ = gsd_type;
+		entry->data_type = egsy->datyp;
+		entry->flags = old_flags;
+	      }
 
 	    if (old_flags & EGSY__V_DEF)
-              {
-                struct vms_esdf *esdf = (struct vms_esdf *)vms_rec;
+	      {
+		struct vms_esdf *esdf = (struct vms_esdf *)vms_rec;
+		long psindx;
 
 		entry->value = bfd_getl64 (esdf->value);
-		entry->section = PRIV (sections)[bfd_getl32 (esdf->psindx)];
+		if (PRIV (sections) == NULL)
+		  return FALSE;
+
+		psindx = bfd_getl32 (esdf->psindx);
+		/* PR 21813: Check for an out of range index.  */
+		if (psindx < 0 || psindx >= (int) PRIV (section_count))
+		  {
+		    _bfd_error_handler (_("Corrupt EGSD record: its psindx field is too big (%#lx)"),
+					psindx);
+		    bfd_set_error (bfd_error_bad_value);
+		    return FALSE;
+		  }
+		entry->section = PRIV (sections)[psindx];
+
+		if (old_flags & EGSY__V_NORM)
+		  {
+		    PRIV (norm_sym_count)++;
 
-                if (old_flags & EGSY__V_NORM)
-                  {
-                    PRIV (norm_sym_count)++;
-
-                    entry->code_value = bfd_getl64 (esdf->code_address);
-                    entry->code_section =
-                      PRIV (sections)[bfd_getl32 (esdf->ca_psindx)];
-                  }
-              }
+		    entry->code_value = bfd_getl64 (esdf->code_address);
+		    psindx = bfd_getl32 (esdf->ca_psindx);
+		/* PR 21813: Check for an out of range index.  */
+		    if (psindx < 0 || psindx >= (int) PRIV (section_count))
+		      {
+			_bfd_error_handler (_("Corrupt EGSD record: its psindx field is too big (%#lx)"),
+					    psindx);
+			bfd_set_error (bfd_error_bad_value);
+			return FALSE;
+		      }
+		    entry->code_section = PRIV (sections)[psindx];
+		  }
+	      }
 	  }
 	  break;
 
 	case EGSD__C_SYMG:
 	  {
-            struct vms_symbol_entry *entry;
-            struct vms_egst *egst = (struct vms_egst *)vms_rec;
-            flagword old_flags;
+	    struct vms_symbol_entry *entry;
+	    struct vms_egst *egst = (struct vms_egst *)vms_rec;
+	    flagword old_flags;
 
 	    old_flags = bfd_getl16 (egst->header.flags);
 
-            entry = add_symbol (abfd, &egst->namlng);
-
-            if (entry == NULL)
-              return FALSE;
-
-            entry->typ = gsd_type;
-            entry->data_type = egst->header.datyp;
-            entry->flags = old_flags;
-
-            entry->symbol_vector = bfd_getl32 (egst->value);
-
-            if (old_flags & EGSY__V_REL)
-              entry->section = PRIV (sections)[bfd_getl32 (egst->psindx)];
-            else
-              entry->section = bfd_abs_section_ptr;
-
-            entry->value = bfd_getl64 (egst->lp_2);
+	    entry = add_symbol (abfd, &egst->namlng);
 
-            if (old_flags & EGSY__V_NORM)
-              {
-                PRIV (norm_sym_count)++;
+	    if (entry == NULL)
+	      return FALSE;
 
-                entry->code_value = bfd_getl64 (egst->lp_1);
-                entry->code_section = bfd_abs_section_ptr;
-              }
-          }
+	    entry->typ = gsd_type;
+	    entry->data_type = egst->header.datyp;
+	    entry->flags = old_flags;
+
+	    entry->symbol_vector = bfd_getl32 (egst->value);
+
+	    if (old_flags & EGSY__V_REL)
+	      {
+		long psindx;
+
+		if (PRIV (sections) == NULL)
+		  return FALSE;
+		psindx = bfd_getl32 (egst->psindx);
+		/* PR 21813: Check for an out of range index.  */
+		if (psindx < 0 || psindx >= (int) PRIV (section_count))
+		  {
+		    _bfd_error_handler (_("Corrupt EGSD record: its psindx field is too big (%#lx)"),
+					psindx);
+		    bfd_set_error (bfd_error_bad_value);
+		    return FALSE;
+		  }
+		entry->section = PRIV (sections)[psindx];
+	      }
+	    else
+	      entry->section = bfd_abs_section_ptr;
+
+	    entry->value = bfd_getl64 (egst->lp_2);
+
+	    if (old_flags & EGSY__V_NORM)
+	      {
+		PRIV (norm_sym_count)++;
+
+		entry->code_value = bfd_getl64 (egst->lp_1);
+		entry->code_section = bfd_abs_section_ptr;
+	      }
+	  }
 	  break;
 
-        case EGSD__C_SPSC:
-        case EGSD__C_IDC:
-          /* Currently ignored.  */
-          break;
+	case EGSD__C_SPSC:
+	case EGSD__C_IDC:
+	  /* Currently ignored.  */
+	  break;
 	case EGSD__C_SYMM:
 	case EGSD__C_SYMV:
 	default:
@@ -1323,6 +1424,8 @@ _bfd_vms_slurp_egsd (bfd *abfd)
       PRIV (recrd.rec) += gsd_size;
     }
 
+  /* FIXME: Should we complain if PRIV (recrd.rec_size) is not zero ?  */
+
   if (PRIV (gsd_sym_count) > 0)
     abfd->flags |= HAS_SYMS;
 
@@ -1337,7 +1440,7 @@ static void
 _bfd_vms_push (bfd *abfd, bfd_vma val, unsigned int reloc)
 {
   vms_debug2 ((4, "<push %08lx (0x%08x) at %d>\n",
-               (unsigned long)val, reloc, PRIV (stackptr)));
+	       (unsigned long)val, reloc, PRIV (stackptr)));
 
   PRIV (stack[PRIV (stackptr)]).value = val;
   PRIV (stack[PRIV (stackptr)]).reloc = reloc;
@@ -1379,6 +1482,11 @@ image_set_ptr (bfd *abfd, bfd_vma vma, i
 
   vms_debug2 ((4, "image_set_ptr (0x%08x, sect=%d)\n", (unsigned)vma, sect));
 
+  if (PRIV (sections) == NULL)
+    return;
+  if (sect < 0 || sect >= (int) PRIV (section_count))
+    return;
+
   sec = PRIV (sections)[sect];
 
   if (info)
@@ -1386,15 +1494,15 @@ image_set_ptr (bfd *abfd, bfd_vma vma, i
       /* Reading contents to an output bfd.  */
 
       if (sec->output_section == NULL)
-        {
-          /* Section discarded.  */
-          vms_debug2 ((5, " section %s discarded\n", sec->name));
-
-          /* This is not used.  */
-          PRIV (image_section) = NULL;
-          PRIV (image_offset) = 0;
-          return;
-        }
+	{
+	  /* Section discarded.  */
+	  vms_debug2 ((5, " section %s discarded\n", sec->name));
+
+	  /* This is not used.  */
+	  PRIV (image_section) = NULL;
+	  PRIV (image_offset) = 0;
+	  return;
+	}
       PRIV (image_offset) = sec->output_offset + vma;
       PRIV (image_section) = sec->output_section;
     }
@@ -1456,11 +1564,11 @@ dst_retrieve_location (bfd *abfd, unsign
 /* Write multiple bytes to section image.  */
 
 static bfd_boolean
-image_write (bfd *abfd, unsigned char *ptr, int size)
+image_write (bfd *abfd, unsigned char *ptr, unsigned int size)
 {
 #if VMS_DEBUG
   _bfd_vms_debug (8, "image_write from (%p, %d) to (%ld)\n", ptr, size,
-                  (long)PRIV (image_offset));
+		  (long)PRIV (image_offset));
   _bfd_hexdump (9, ptr, size, 0);
 #endif
 
@@ -1471,12 +1579,12 @@ image_write (bfd *abfd, unsigned char *p
 
       /* Check bounds.  */
       if (off > (file_ptr)sec->size
-          || size > (file_ptr)sec->size
-          || off + size > (file_ptr)sec->size)
-        {
-          bfd_set_error (bfd_error_bad_value);
-          return FALSE;
-        }
+	  || size > (file_ptr)sec->size
+	  || off + size > (file_ptr)sec->size)
+	{
+	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
+	}
 
       memcpy (sec->contents + off, ptr, size);
     }
@@ -1603,14 +1711,16 @@ _bfd_vms_etir_name (int cmd)
 #define HIGHBIT(op) ((op & 0x80000000L) == 0x80000000L)
 
 static void
-_bfd_vms_get_value (bfd *abfd, const unsigned char *ascic,
-                    struct bfd_link_info *info,
-                    bfd_vma *vma,
-                    struct alpha_vms_link_hash_entry **hp)
+_bfd_vms_get_value (bfd *abfd,
+		    const unsigned char *ascic,
+		    const unsigned char *max_ascic,
+		    struct bfd_link_info *info,
+		    bfd_vma *vma,
+		    struct alpha_vms_link_hash_entry **hp)
 {
   char name[257];
-  int len;
-  int i;
+  unsigned int len;
+  unsigned int i;
   struct alpha_vms_link_hash_entry *h;
 
   /* Not linking.  Do not try to resolve the symbol.  */
@@ -1622,6 +1732,14 @@ _bfd_vms_get_value (bfd *abfd, const uns
     }
 
   len = *ascic;
+  if (ascic + len >= max_ascic)
+    {
+      _bfd_error_handler (_("Corrupt vms value"));
+      *vma = 0;
+      *hp = NULL;
+      return;
+    }
+
   for (i = 0; i < len; i++)
     name[i] = ascic[i + 1];
   name[i] = 0;
@@ -1633,7 +1751,7 @@ _bfd_vms_get_value (bfd *abfd, const uns
 
   if (h != NULL
       && (h->root.type == bfd_link_hash_defined
-          || h->root.type == bfd_link_hash_defweak))
+	  || h->root.type == bfd_link_hash_defweak))
     *vma = h->root.u.def.value
       + h->root.u.def.section->output_offset
       + h->root.u.def.section->output_section->vma;
@@ -1663,20 +1781,20 @@ alpha_vms_sym_to_ctxt (struct alpha_vms_
   if (h->sym->typ == EGSD__C_SYMG)
     {
       if (h->sym->flags & EGSY__V_REL)
-        return RELC_SHR_BASE + PRIV2 (h->sym->owner, shr_index);
+	return RELC_SHR_BASE + PRIV2 (h->sym->owner, shr_index);
       else
-        {
-          /* Can this happen (non-relocatable symg) ?  I'd like to see
-             an example.  */
-          abort ();
-        }
+	{
+	  /* Can this happen (non-relocatable symg) ?  I'd like to see
+	     an example.  */
+	  abort ();
+	}
     }
   if (h->sym->typ == EGSD__C_SYM)
     {
       if (h->sym->flags & EGSY__V_REL)
-        return RELC_REL;
+	return RELC_REL;
       else
-        return RELC_NONE;
+	return RELC_NONE;
     }
   abort ();
 }
@@ -1689,14 +1807,19 @@ alpha_vms_get_sym_value (asection *sect,
 
 static bfd_vma
 alpha_vms_fix_sec_rel (bfd *abfd, struct bfd_link_info *info,
-                       unsigned int rel, bfd_vma vma)
+		       unsigned int rel, bfd_vma vma)
 {
-  asection *sec = PRIV (sections)[rel & RELC_MASK];
+  asection *sec;
+
+  if (PRIV (sections) == NULL)
+    return 0;
+
+  sec = PRIV (sections)[rel & RELC_MASK];
 
   if (info)
     {
       if (sec->output_section == NULL)
-        abort ();
+	abort ();
       return vma + sec->output_section->vma + sec->output_offset;
     }
   else
@@ -1735,541 +1858,562 @@ _bfd_vms_slurp_etir (bfd *abfd, struct b
 
       ptr += 4;
 
+      /* PR 21589 and 21579: Check for a corrupt ETIR record.  */
+      if (cmd_length < 4 || (ptr + cmd_length > maxptr + 4))
+	{
+	corrupt_etir:
+	  _bfd_error_handler (_("Corrupt ETIR record encountered"));
+	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
+	}
+
 #if VMS_DEBUG
       _bfd_vms_debug (4, "etir: %s(%d)\n",
-                      _bfd_vms_etir_name (cmd), cmd);
+		      _bfd_vms_etir_name (cmd), cmd);
       _bfd_hexdump (8, ptr, cmd_length - 4, 0);
 #endif
 
       switch (cmd)
-        {
-          /* Stack global
-             arg: cs	symbol name
-
-             stack 32 bit value of symbol (high bits set to 0).  */
-        case ETIR__C_STA_GBL:
-          _bfd_vms_get_value (abfd, ptr, info, &op1, &h);
-          _bfd_vms_push (abfd, op1, alpha_vms_sym_to_ctxt (h));
-          break;
-
-          /* Stack longword
-             arg: lw	value
-
-             stack 32 bit value, sign extend to 64 bit.  */
-        case ETIR__C_STA_LW:
-          _bfd_vms_push (abfd, bfd_getl32 (ptr), RELC_NONE);
-          break;
-
-          /* Stack quadword
-             arg: qw	value
-
-             stack 64 bit value of symbol.  */
-        case ETIR__C_STA_QW:
-          _bfd_vms_push (abfd, bfd_getl64 (ptr), RELC_NONE);
-          break;
-
-          /* Stack psect base plus quadword offset
-             arg: lw	section index
-             qw	signed quadword offset (low 32 bits)
-
-             Stack qw argument and section index
-             (see ETIR__C_STO_OFF, ETIR__C_CTL_SETRB).  */
-        case ETIR__C_STA_PQ:
-          {
-            int psect;
-
-            psect = bfd_getl32 (ptr);
-            if ((unsigned int) psect >= PRIV (section_count))
-              {
+	{
+	  /* Stack global
+	     arg: cs	symbol name
+
+	     stack 32 bit value of symbol (high bits set to 0).  */
+	case ETIR__C_STA_GBL:
+	  _bfd_vms_get_value (abfd, ptr, maxptr, info, &op1, &h);
+	  _bfd_vms_push (abfd, op1, alpha_vms_sym_to_ctxt (h));
+	  break;
+
+	  /* Stack longword
+	     arg: lw	value
+
+	     stack 32 bit value, sign extend to 64 bit.  */
+	case ETIR__C_STA_LW:
+	  if (ptr + 4 >= maxptr)
+	    goto corrupt_etir;
+	  _bfd_vms_push (abfd, bfd_getl32 (ptr), RELC_NONE);
+	  break;
+
+	  /* Stack quadword
+	     arg: qw	value
+
+	     stack 64 bit value of symbol.  */
+	case ETIR__C_STA_QW:
+	  if (ptr + 8 >= maxptr)
+	    goto corrupt_etir;
+	  _bfd_vms_push (abfd, bfd_getl64 (ptr), RELC_NONE);
+	  break;
+
+	  /* Stack psect base plus quadword offset
+	     arg: lw	section index
+	     qw	signed quadword offset (low 32 bits)
+
+	     Stack qw argument and section index
+	     (see ETIR__C_STO_OFF, ETIR__C_CTL_SETRB).  */
+	case ETIR__C_STA_PQ:
+	  {
+	    int psect;
+
+	    if (ptr + 12 >= maxptr)
+	      goto corrupt_etir;
+	    psect = bfd_getl32 (ptr);
+	    if ((unsigned int) psect >= PRIV (section_count))
+	      {
 		_bfd_error_handler (_("bad section index in %s"),
 				    _bfd_vms_etir_name (cmd));
-                bfd_set_error (bfd_error_bad_value);
-                return FALSE;
-              }
-            op1 = bfd_getl64 (ptr + 4);
-            _bfd_vms_push (abfd, op1, psect | RELC_SEC_BASE);
-          }
-          break;
-
-        case ETIR__C_STA_LI:
-        case ETIR__C_STA_MOD:
-        case ETIR__C_STA_CKARG:
+		bfd_set_error (bfd_error_bad_value);
+		return FALSE;
+	      }
+	    op1 = bfd_getl64 (ptr + 4);
+	    _bfd_vms_push (abfd, op1, psect | RELC_SEC_BASE);
+	  }
+	  break;
+
+	case ETIR__C_STA_LI:
+	case ETIR__C_STA_MOD:
+	case ETIR__C_STA_CKARG:
 	  _bfd_error_handler (_("unsupported STA cmd %s"),
 			      _bfd_vms_etir_name (cmd));
-          return FALSE;
-          break;
+	  return FALSE;
+	  break;
+
+	  /* Store byte: pop stack, write byte
+	     arg: -.  */
+	case ETIR__C_STO_B:
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  if (rel1 != RELC_NONE)
+	    goto bad_context;
+	  image_write_b (abfd, (unsigned int) op1 & 0xff);
+	  break;
+
+	  /* Store word: pop stack, write word
+	     arg: -.  */
+	case ETIR__C_STO_W:
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  if (rel1 != RELC_NONE)
+	    goto bad_context;
+	  image_write_w (abfd, (unsigned int) op1 & 0xffff);
+	  break;
+
+	  /* Store longword: pop stack, write longword
+	     arg: -.  */
+	case ETIR__C_STO_LW:
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  if (rel1 & RELC_SEC_BASE)
+	    {
+	      op1 = alpha_vms_fix_sec_rel (abfd, info, rel1, op1);
+	      rel1 = RELC_REL;
+	    }
+	  else if (rel1 & RELC_SHR_BASE)
+	    {
+	      alpha_vms_add_fixup_lr (info, rel1 & RELC_MASK, op1);
+	      rel1 = RELC_NONE;
+	    }
+	  if (rel1 != RELC_NONE)
+	    {
+	      if (rel1 != RELC_REL)
+		abort ();
+	      alpha_vms_add_lw_reloc (info);
+	    }
+	  image_write_l (abfd, op1);
+	  break;
 
-          /* Store byte: pop stack, write byte
-             arg: -.  */
-        case ETIR__C_STO_B:
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          if (rel1 != RELC_NONE)
-            goto bad_context;
-          image_write_b (abfd, (unsigned int) op1 & 0xff);
-          break;
-
-          /* Store word: pop stack, write word
-             arg: -.  */
-        case ETIR__C_STO_W:
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          if (rel1 != RELC_NONE)
-            goto bad_context;
-          image_write_w (abfd, (unsigned int) op1 & 0xffff);
-          break;
-
-          /* Store longword: pop stack, write longword
-             arg: -.  */
-        case ETIR__C_STO_LW:
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          if (rel1 & RELC_SEC_BASE)
-            {
-              op1 = alpha_vms_fix_sec_rel (abfd, info, rel1, op1);
-              rel1 = RELC_REL;
-            }
-          else if (rel1 & RELC_SHR_BASE)
-            {
-              alpha_vms_add_fixup_lr (info, rel1 & RELC_MASK, op1);
-              rel1 = RELC_NONE;
-            }
-          if (rel1 != RELC_NONE)
-            {
-              if (rel1 != RELC_REL)
-                abort ();
-              alpha_vms_add_lw_reloc (info);
-            }
-          image_write_l (abfd, op1);
-          break;
-
-          /* Store quadword: pop stack, write quadword
-             arg: -.  */
-        case ETIR__C_STO_QW:
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          if (rel1 & RELC_SEC_BASE)
-            {
-              op1 = alpha_vms_fix_sec_rel (abfd, info, rel1, op1);
-              rel1 = RELC_REL;
-            }
-          else if (rel1 & RELC_SHR_BASE)
-            abort ();
-          if (rel1 != RELC_NONE)
-            {
-              if (rel1 != RELC_REL)
-                abort ();
-              alpha_vms_add_qw_reloc (info);
-            }
-          image_write_q (abfd, op1);
-          break;
-
-          /* Store immediate repeated: pop stack for repeat count
-             arg: lw	byte count
-             da	data.  */
-        case ETIR__C_STO_IMMR:
-          {
-            int size;
-
-            size = bfd_getl32 (ptr);
-            _bfd_vms_pop (abfd, &op1, &rel1);
-            if (rel1 != RELC_NONE)
-              goto bad_context;
-            while (op1-- > 0)
-              image_write (abfd, ptr + 4, size);
-          }
-          break;
-
-          /* Store global: write symbol value
-             arg: cs	global symbol name.  */
-        case ETIR__C_STO_GBL:
-          _bfd_vms_get_value (abfd, ptr, info, &op1, &h);
-          if (h && h->sym)
-            {
-              if (h->sym->typ == EGSD__C_SYMG)
-                {
-                  alpha_vms_add_fixup_qr
-                    (info, abfd, h->sym->owner, h->sym->symbol_vector);
-                  op1 = 0;
-                }
-              else
-                {
-                  op1 = alpha_vms_get_sym_value (h->sym->section,
-                                                 h->sym->value);
-                  alpha_vms_add_qw_reloc (info);
-                }
-            }
-          image_write_q (abfd, op1);
-          break;
-
-          /* Store code address: write address of entry point
-             arg: cs	global symbol name (procedure).  */
-        case ETIR__C_STO_CA:
-          _bfd_vms_get_value (abfd, ptr, info, &op1, &h);
-          if (h && h->sym)
-            {
-              if (h->sym->flags & EGSY__V_NORM)
-                {
-                  /* That's really a procedure.  */
-                  if (h->sym->typ == EGSD__C_SYMG)
-                    {
-                      alpha_vms_add_fixup_ca (info, abfd, h->sym->owner);
-                      op1 = h->sym->symbol_vector;
-                    }
-                  else
-                    {
-                      op1 = alpha_vms_get_sym_value (h->sym->code_section,
-                                                     h->sym->code_value);
-                      alpha_vms_add_qw_reloc (info);
-                    }
-                }
-              else
-                {
-                  /* Symbol is not a procedure.  */
-                  abort ();
-                }
-            }
-          image_write_q (abfd, op1);
-          break;
-
-          /* Store offset to psect: pop stack, add low 32 bits to base of psect
-             arg: none.  */
-        case ETIR__C_STO_OFF:
-          _bfd_vms_pop (abfd, &op1, &rel1);
-
-          if (!(rel1 & RELC_SEC_BASE))
-            abort ();
-
-          op1 = alpha_vms_fix_sec_rel (abfd, info, rel1, op1);
-          rel1 = RELC_REL;
-          image_write_q (abfd, op1);
-          break;
-
-          /* Store immediate
-             arg: lw	count of bytes
-             da	data.  */
-        case ETIR__C_STO_IMM:
-          {
-            int size;
-
-            size = bfd_getl32 (ptr);
-            image_write (abfd, ptr + 4, size);
-          }
-          break;
-
-          /* This code is 'reserved to digital' according to the openVMS
-             linker manual, however it is generated by the DEC C compiler
-             and defined in the include file.
-             FIXME, since the following is just a guess
-             store global longword: store 32bit value of symbol
-             arg: cs	symbol name.  */
-        case ETIR__C_STO_GBL_LW:
-          _bfd_vms_get_value (abfd, ptr, info, &op1, &h);
+	  /* Store quadword: pop stack, write quadword
+	     arg: -.  */
+	case ETIR__C_STO_QW:
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  if (rel1 & RELC_SEC_BASE)
+	    {
+	      op1 = alpha_vms_fix_sec_rel (abfd, info, rel1, op1);
+	      rel1 = RELC_REL;
+	    }
+	  else if (rel1 & RELC_SHR_BASE)
+	    abort ();
+	  if (rel1 != RELC_NONE)
+	    {
+	      if (rel1 != RELC_REL)
+		abort ();
+	      alpha_vms_add_qw_reloc (info);
+	    }
+	  image_write_q (abfd, op1);
+	  break;
+
+	  /* Store immediate repeated: pop stack for repeat count
+	     arg: lw	byte count
+	     da	data.  */
+	case ETIR__C_STO_IMMR:
+	  {
+	    int size;
+
+	    if (ptr + 4 >= maxptr)
+	      goto corrupt_etir;
+	    size = bfd_getl32 (ptr);
+	    _bfd_vms_pop (abfd, &op1, &rel1);
+	    if (rel1 != RELC_NONE)
+	      goto bad_context;
+	    while (op1-- > 0)
+	      image_write (abfd, ptr + 4, size);
+	  }
+	  break;
+
+	  /* Store global: write symbol value
+	     arg: cs	global symbol name.  */
+	case ETIR__C_STO_GBL:
+	  _bfd_vms_get_value (abfd, ptr, maxptr, info, &op1, &h);
+	  if (h && h->sym)
+	    {
+	      if (h->sym->typ == EGSD__C_SYMG)
+		{
+		  alpha_vms_add_fixup_qr
+		    (info, abfd, h->sym->owner, h->sym->symbol_vector);
+		  op1 = 0;
+		}
+	      else
+		{
+		  op1 = alpha_vms_get_sym_value (h->sym->section,
+						 h->sym->value);
+		  alpha_vms_add_qw_reloc (info);
+		}
+	    }
+	  image_write_q (abfd, op1);
+	  break;
+
+	  /* Store code address: write address of entry point
+	     arg: cs	global symbol name (procedure).  */
+	case ETIR__C_STO_CA:
+	  _bfd_vms_get_value (abfd, ptr, maxptr, info, &op1, &h);
+	  if (h && h->sym)
+	    {
+	      if (h->sym->flags & EGSY__V_NORM)
+		{
+		  /* That's really a procedure.  */
+		  if (h->sym->typ == EGSD__C_SYMG)
+		    {
+		      alpha_vms_add_fixup_ca (info, abfd, h->sym->owner);
+		      op1 = h->sym->symbol_vector;
+		    }
+		  else
+		    {
+		      op1 = alpha_vms_get_sym_value (h->sym->code_section,
+						     h->sym->code_value);
+		      alpha_vms_add_qw_reloc (info);
+		    }
+		}
+	      else
+		{
+		  /* Symbol is not a procedure.  */
+		  abort ();
+		}
+	    }
+	  image_write_q (abfd, op1);
+	  break;
+
+	  /* Store offset to psect: pop stack, add low 32 bits to base of psect
+	     arg: none.  */
+	case ETIR__C_STO_OFF:
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+
+	  if (!(rel1 & RELC_SEC_BASE))
+	    abort ();
+
+	  op1 = alpha_vms_fix_sec_rel (abfd, info, rel1, op1);
+	  rel1 = RELC_REL;
+	  image_write_q (abfd, op1);
+	  break;
+
+	  /* Store immediate
+	     arg: lw	count of bytes
+	     da	data.  */
+	case ETIR__C_STO_IMM:
+	  {
+	    unsigned int size;
+
+	    if (ptr + 4 >= maxptr)
+	      goto corrupt_etir;
+	    size = bfd_getl32 (ptr);
+	    image_write (abfd, ptr + 4, size);
+	  }
+	  break;
+
+	  /* This code is 'reserved to digital' according to the openVMS
+	     linker manual, however it is generated by the DEC C compiler
+	     and defined in the include file.
+	     FIXME, since the following is just a guess
+	     store global longword: store 32bit value of symbol
+	     arg: cs	symbol name.  */
+	case ETIR__C_STO_GBL_LW:
+	  _bfd_vms_get_value (abfd, ptr, maxptr, info, &op1, &h);
 #if 0
-          abort ();
+	  abort ();
 #endif
-          image_write_l (abfd, op1);
-          break;
+	  image_write_l (abfd, op1);
+	  break;
 
-        case ETIR__C_STO_RB:
-        case ETIR__C_STO_AB:
-        case ETIR__C_STO_LP_PSB:
+	case ETIR__C_STO_RB:
+	case ETIR__C_STO_AB:
+	case ETIR__C_STO_LP_PSB:
 	  _bfd_error_handler (_("%s: not supported"),
 			      _bfd_vms_etir_name (cmd));
-          return FALSE;
-          break;
-        case ETIR__C_STO_HINT_GBL:
-        case ETIR__C_STO_HINT_PS:
+	  return FALSE;
+	  break;
+	case ETIR__C_STO_HINT_GBL:
+	case ETIR__C_STO_HINT_PS:
 	  _bfd_error_handler (_("%s: not implemented"),
 			      _bfd_vms_etir_name (cmd));
-          return FALSE;
-          break;
+	  return FALSE;
+	  break;
 
-          /* 200 Store-conditional Linkage Pair
-             arg: none.  */
-        case ETIR__C_STC_LP:
-
-          /* 202 Store-conditional Address at global address
-             lw	linkage index
-             cs	global name.  */
-
-        case ETIR__C_STC_GBL:
-
-          /* 203 Store-conditional Code Address at global address
-             lw	linkage index
-             cs	procedure name.  */
-        case ETIR__C_STC_GCA:
-
-          /* 204 Store-conditional Address at psect + offset
-             lw	linkage index
-             lw	psect index
-             qw	offset.  */
-        case ETIR__C_STC_PS:
+	  /* 200 Store-conditional Linkage Pair
+	     arg: none.  */
+	case ETIR__C_STC_LP:
+
+	  /* 202 Store-conditional Address at global address
+	     lw	linkage index
+	     cs	global name.  */
+
+	case ETIR__C_STC_GBL:
+
+	  /* 203 Store-conditional Code Address at global address
+	     lw	linkage index
+	     cs	procedure name.  */
+	case ETIR__C_STC_GCA:
+
+	  /* 204 Store-conditional Address at psect + offset
+	     lw	linkage index
+	     lw	psect index
+	     qw	offset.  */
+	case ETIR__C_STC_PS:
 	  _bfd_error_handler (_("%s: not supported"),
 			      _bfd_vms_etir_name (cmd));
-          return FALSE;
-          break;
+	  return FALSE;
+	  break;
+
+	  /* 201 Store-conditional Linkage Pair with Procedure Signature
+	     lw	linkage index
+	     cs	procedure name
+	     by	signature length
+	     da	signature.  */
+
+	case ETIR__C_STC_LP_PSB:
+	  _bfd_vms_get_value (abfd, ptr + 4, maxptr, info, &op1, &h);
+	  if (h && h->sym)
+	    {
+	      if (h->sym->typ == EGSD__C_SYMG)
+		{
+		  alpha_vms_add_fixup_lp (info, abfd, h->sym->owner);
+		  op1 = h->sym->symbol_vector;
+		  op2 = 0;
+		}
+	      else
+		{
+		  op1 = alpha_vms_get_sym_value (h->sym->code_section,
+						 h->sym->code_value);
+		  op2 = alpha_vms_get_sym_value (h->sym->section,
+						h->sym->value);
+		}
+	    }
+	  else
+	    {
+	      /* Undefined symbol.  */
+	      op1 = 0;
+	      op2 = 0;
+	    }
+	  image_write_q (abfd, op1);
+	  image_write_q (abfd, op2);
+	  break;
+
+	  /* 205 Store-conditional NOP at address of global
+	     arg: none.  */
+	case ETIR__C_STC_NOP_GBL:
+	  /* ALPHA_R_NOP */
+
+	  /* 207 Store-conditional BSR at global address
+	     arg: none.  */
+
+	case ETIR__C_STC_BSR_GBL:
+	  /* ALPHA_R_BSR */
+
+	  /* 209 Store-conditional LDA at global address
+	     arg: none.  */
 
-          /* 201 Store-conditional Linkage Pair with Procedure Signature
-             lw	linkage index
-             cs	procedure name
-             by	signature length
-             da	signature.  */
-
-        case ETIR__C_STC_LP_PSB:
-          _bfd_vms_get_value (abfd, ptr + 4, info, &op1, &h);
-          if (h && h->sym)
-            {
-              if (h->sym->typ == EGSD__C_SYMG)
-                {
-                  alpha_vms_add_fixup_lp (info, abfd, h->sym->owner);
-                  op1 = h->sym->symbol_vector;
-                  op2 = 0;
-                }
-              else
-                {
-                  op1 = alpha_vms_get_sym_value (h->sym->code_section,
-                                                 h->sym->code_value);
-                  op2 = alpha_vms_get_sym_value (h->sym->section,
-                                                h->sym->value);
-                }
-            }
-          else
-            {
-              /* Undefined symbol.  */
-              op1 = 0;
-              op2 = 0;
-            }
-          image_write_q (abfd, op1);
-          image_write_q (abfd, op2);
-          break;
-
-          /* 205 Store-conditional NOP at address of global
-             arg: none.  */
-        case ETIR__C_STC_NOP_GBL:
-          /* ALPHA_R_NOP */
-
-          /* 207 Store-conditional BSR at global address
-             arg: none.  */
-
-        case ETIR__C_STC_BSR_GBL:
-          /* ALPHA_R_BSR */
-
-          /* 209 Store-conditional LDA at global address
-             arg: none.  */
-
-        case ETIR__C_STC_LDA_GBL:
-          /* ALPHA_R_LDA */
-
-          /* 211 Store-conditional BSR or Hint at global address
-             arg: none.  */
-
-        case ETIR__C_STC_BOH_GBL:
-          /* Currentl ignored.  */
-          break;
-
-          /* 213 Store-conditional NOP,BSR or HINT at global address
-             arg: none.  */
-
-        case ETIR__C_STC_NBH_GBL:
-
-          /* 206 Store-conditional NOP at pect + offset
-             arg: none.  */
-
-        case ETIR__C_STC_NOP_PS:
-
-          /* 208 Store-conditional BSR at pect + offset
-             arg: none.  */
-
-        case ETIR__C_STC_BSR_PS:
-
-          /* 210 Store-conditional LDA at psect + offset
-             arg: none.  */
-
-        case ETIR__C_STC_LDA_PS:
-
-          /* 212 Store-conditional BSR or Hint at pect + offset
-             arg: none.  */
-
-        case ETIR__C_STC_BOH_PS:
-
-          /* 214 Store-conditional NOP, BSR or HINT at psect + offset
-             arg: none.  */
-        case ETIR__C_STC_NBH_PS:
+	case ETIR__C_STC_LDA_GBL:
+	  /* ALPHA_R_LDA */
+
+	  /* 211 Store-conditional BSR or Hint at global address
+	     arg: none.  */
+
+	case ETIR__C_STC_BOH_GBL:
+	  /* Currentl ignored.  */
+	  break;
+
+	  /* 213 Store-conditional NOP,BSR or HINT at global address
+	     arg: none.  */
+
+	case ETIR__C_STC_NBH_GBL:
+
+	  /* 206 Store-conditional NOP at pect + offset
+	     arg: none.  */
+
+	case ETIR__C_STC_NOP_PS:
+
+	  /* 208 Store-conditional BSR at pect + offset
+	     arg: none.  */
+
+	case ETIR__C_STC_BSR_PS:
+
+	  /* 210 Store-conditional LDA at psect + offset
+	     arg: none.  */
+
+	case ETIR__C_STC_LDA_PS:
+
+	  /* 212 Store-conditional BSR or Hint at pect + offset
+	     arg: none.  */
+
+	case ETIR__C_STC_BOH_PS:
+
+	  /* 214 Store-conditional NOP, BSR or HINT at psect + offset
+	     arg: none.  */
+	case ETIR__C_STC_NBH_PS:
 	  _bfd_error_handler (_("%s: not supported"),
 			      _bfd_vms_etir_name (cmd));
-          return FALSE;
-          break;
+	  return FALSE;
+	  break;
+
+	  /* Det relocation base: pop stack, set image location counter
+	     arg: none.  */
+	case ETIR__C_CTL_SETRB:
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  if (!(rel1 & RELC_SEC_BASE))
+	    abort ();
+	  image_set_ptr (abfd, op1, rel1 & RELC_MASK, info);
+	  break;
+
+	  /* Augment relocation base: increment image location counter by offset
+	     arg: lw	offset value.  */
+	case ETIR__C_CTL_AUGRB:
+	  if (ptr + 4 >= maxptr)
+	    goto corrupt_etir;
+	  op1 = bfd_getl32 (ptr);
+	  image_inc_ptr (abfd, op1);
+	  break;
+
+	  /* Define location: pop index, save location counter under index
+	     arg: none.  */
+	case ETIR__C_CTL_DFLOC:
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  if (rel1 != RELC_NONE)
+	    goto bad_context;
+	  dst_define_location (abfd, op1);
+	  break;
+
+	  /* Set location: pop index, restore location counter from index
+	     arg: none.  */
+	case ETIR__C_CTL_STLOC:
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  if (rel1 != RELC_NONE)
+	    goto bad_context;
+	  dst_restore_location (abfd, op1);
+	  break;
+
+	  /* Stack defined location: pop index, push location counter from index
+	     arg: none.  */
+	case ETIR__C_CTL_STKDL:
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  if (rel1 != RELC_NONE)
+	    goto bad_context;
+	  _bfd_vms_push (abfd, dst_retrieve_location (abfd, op1), RELC_NONE);
+	  break;
+
+	case ETIR__C_OPR_NOP:      /* No-op.  */
+	  break;
+
+	case ETIR__C_OPR_ADD:      /* Add.  */
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  _bfd_vms_pop (abfd, &op2, &rel2);
+	  if (rel1 == RELC_NONE && rel2 != RELC_NONE)
+	    rel1 = rel2;
+	  else if (rel1 != RELC_NONE && rel2 != RELC_NONE)
+	    goto bad_context;
+	  _bfd_vms_push (abfd, op1 + op2, rel1);
+	  break;
+
+	case ETIR__C_OPR_SUB:      /* Subtract.  */
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  _bfd_vms_pop (abfd, &op2, &rel2);
+	  if (rel1 == RELC_NONE && rel2 != RELC_NONE)
+	    rel1 = rel2;
+	  else if ((rel1 & RELC_SEC_BASE) && (rel2 & RELC_SEC_BASE))
+	    {
+	      op1 = alpha_vms_fix_sec_rel (abfd, info, rel1, op1);
+	      op2 = alpha_vms_fix_sec_rel (abfd, info, rel2, op2);
+	      rel1 = RELC_NONE;
+	    }
+	  else if (rel1 != RELC_NONE && rel2 != RELC_NONE)
+	    goto bad_context;
+	  _bfd_vms_push (abfd, op2 - op1, rel1);
+	  break;
+
+	case ETIR__C_OPR_MUL:      /* Multiply.  */
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  _bfd_vms_pop (abfd, &op2, &rel2);
+	  if (rel1 != RELC_NONE || rel2 != RELC_NONE)
+	    goto bad_context;
+	  _bfd_vms_push (abfd, op1 * op2, RELC_NONE);
+	  break;
+
+	case ETIR__C_OPR_DIV:      /* Divide.  */
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  _bfd_vms_pop (abfd, &op2, &rel2);
+	  if (rel1 != RELC_NONE || rel2 != RELC_NONE)
+	    goto bad_context;
+	  if (op2 == 0)
+	    _bfd_vms_push (abfd, 0, RELC_NONE);
+	  else
+	    _bfd_vms_push (abfd, op2 / op1, RELC_NONE);
+	  break;
+
+	case ETIR__C_OPR_AND:      /* Logical AND.  */
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  _bfd_vms_pop (abfd, &op2, &rel2);
+	  if (rel1 != RELC_NONE || rel2 != RELC_NONE)
+	    goto bad_context;
+	  _bfd_vms_push (abfd, op1 & op2, RELC_NONE);
+	  break;
+
+	case ETIR__C_OPR_IOR:      /* Logical inclusive OR.  */
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  _bfd_vms_pop (abfd, &op2, &rel2);
+	  if (rel1 != RELC_NONE || rel2 != RELC_NONE)
+	    goto bad_context;
+	  _bfd_vms_push (abfd, op1 | op2, RELC_NONE);
+	  break;
+
+	case ETIR__C_OPR_EOR:      /* Logical exclusive OR.  */
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  _bfd_vms_pop (abfd, &op2, &rel2);
+	  if (rel1 != RELC_NONE || rel2 != RELC_NONE)
+	    goto bad_context;
+	  _bfd_vms_push (abfd, op1 ^ op2, RELC_NONE);
+	  break;
+
+	case ETIR__C_OPR_NEG:      /* Negate.  */
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  if (rel1 != RELC_NONE)
+	    goto bad_context;
+	  _bfd_vms_push (abfd, -op1, RELC_NONE);
+	  break;
+
+	case ETIR__C_OPR_COM:      /* Complement.  */
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  if (rel1 != RELC_NONE)
+	    goto bad_context;
+	  _bfd_vms_push (abfd, ~op1, RELC_NONE);
+	  break;
 
-          /* Det relocation base: pop stack, set image location counter
-             arg: none.  */
-        case ETIR__C_CTL_SETRB:
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          if (!(rel1 & RELC_SEC_BASE))
-            abort ();
-          image_set_ptr (abfd, op1, rel1 & RELC_MASK, info);
-          break;
-
-          /* Augment relocation base: increment image location counter by offset
-             arg: lw	offset value.  */
-        case ETIR__C_CTL_AUGRB:
-          op1 = bfd_getl32 (ptr);
-          image_inc_ptr (abfd, op1);
-          break;
-
-          /* Define location: pop index, save location counter under index
-             arg: none.  */
-        case ETIR__C_CTL_DFLOC:
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          if (rel1 != RELC_NONE)
-            goto bad_context;
-          dst_define_location (abfd, op1);
-          break;
-
-          /* Set location: pop index, restore location counter from index
-             arg: none.  */
-        case ETIR__C_CTL_STLOC:
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          if (rel1 != RELC_NONE)
-            goto bad_context;
-          dst_restore_location (abfd, op1);
-          break;
-
-          /* Stack defined location: pop index, push location counter from index
-             arg: none.  */
-        case ETIR__C_CTL_STKDL:
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          if (rel1 != RELC_NONE)
-            goto bad_context;
-          _bfd_vms_push (abfd, dst_retrieve_location (abfd, op1), RELC_NONE);
-          break;
-
-        case ETIR__C_OPR_NOP:      /* No-op.  */
-          break;
-
-        case ETIR__C_OPR_ADD:      /* Add.  */
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          _bfd_vms_pop (abfd, &op2, &rel2);
-          if (rel1 == RELC_NONE && rel2 != RELC_NONE)
-            rel1 = rel2;
-          else if (rel1 != RELC_NONE && rel2 != RELC_NONE)
-            goto bad_context;
-          _bfd_vms_push (abfd, op1 + op2, rel1);
-          break;
-
-        case ETIR__C_OPR_SUB:      /* Subtract.  */
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          _bfd_vms_pop (abfd, &op2, &rel2);
-          if (rel1 == RELC_NONE && rel2 != RELC_NONE)
-            rel1 = rel2;
-          else if ((rel1 & RELC_SEC_BASE) && (rel2 & RELC_SEC_BASE))
-            {
-              op1 = alpha_vms_fix_sec_rel (abfd, info, rel1, op1);
-              op2 = alpha_vms_fix_sec_rel (abfd, info, rel2, op2);
-              rel1 = RELC_NONE;
-            }
-          else if (rel1 != RELC_NONE && rel2 != RELC_NONE)
-            goto bad_context;
-          _bfd_vms_push (abfd, op2 - op1, rel1);
-          break;
-
-        case ETIR__C_OPR_MUL:      /* Multiply.  */
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          _bfd_vms_pop (abfd, &op2, &rel2);
-          if (rel1 != RELC_NONE || rel2 != RELC_NONE)
-            goto bad_context;
-          _bfd_vms_push (abfd, op1 * op2, RELC_NONE);
-          break;
-
-        case ETIR__C_OPR_DIV:      /* Divide.  */
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          _bfd_vms_pop (abfd, &op2, &rel2);
-          if (rel1 != RELC_NONE || rel2 != RELC_NONE)
-            goto bad_context;
-          if (op2 == 0)
-            _bfd_vms_push (abfd, 0, RELC_NONE);
-          else
-            _bfd_vms_push (abfd, op2 / op1, RELC_NONE);
-          break;
-
-        case ETIR__C_OPR_AND:      /* Logical AND.  */
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          _bfd_vms_pop (abfd, &op2, &rel2);
-          if (rel1 != RELC_NONE || rel2 != RELC_NONE)
-            goto bad_context;
-          _bfd_vms_push (abfd, op1 & op2, RELC_NONE);
-          break;
-
-        case ETIR__C_OPR_IOR:      /* Logical inclusive OR.  */
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          _bfd_vms_pop (abfd, &op2, &rel2);
-          if (rel1 != RELC_NONE || rel2 != RELC_NONE)
-            goto bad_context;
-          _bfd_vms_push (abfd, op1 | op2, RELC_NONE);
-          break;
-
-        case ETIR__C_OPR_EOR:      /* Logical exclusive OR.  */
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          _bfd_vms_pop (abfd, &op2, &rel2);
-          if (rel1 != RELC_NONE || rel2 != RELC_NONE)
-            goto bad_context;
-          _bfd_vms_push (abfd, op1 ^ op2, RELC_NONE);
-          break;
-
-        case ETIR__C_OPR_NEG:      /* Negate.  */
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          if (rel1 != RELC_NONE)
-            goto bad_context;
-          _bfd_vms_push (abfd, -op1, RELC_NONE);
-          break;
-
-        case ETIR__C_OPR_COM:      /* Complement.  */
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          if (rel1 != RELC_NONE)
-            goto bad_context;
-          _bfd_vms_push (abfd, ~op1, RELC_NONE);
-          break;
-
-        case ETIR__C_OPR_ASH:      /* Arithmetic shift.  */
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          _bfd_vms_pop (abfd, &op2, &rel2);
-          if (rel1 != RELC_NONE || rel2 != RELC_NONE)
-            {
-            bad_context:
+	case ETIR__C_OPR_ASH:      /* Arithmetic shift.  */
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  _bfd_vms_pop (abfd, &op2, &rel2);
+	  if (rel1 != RELC_NONE || rel2 != RELC_NONE)
+	    {
+	    bad_context:
 	      _bfd_error_handler (_("invalid use of %s with contexts"),
 				  _bfd_vms_etir_name (cmd));
-              return FALSE;
-            }
-          if ((int)op2 < 0)		/* Shift right.  */
-            op1 >>= -(int)op2;
-          else			/* Shift left.  */
-            op1 <<= (int)op2;
-          _bfd_vms_push (abfd, op1, RELC_NONE); /* FIXME: sym.  */
-          break;
-
-        case ETIR__C_OPR_INSV:      /* Insert field.   */
-        case ETIR__C_OPR_USH:       /* Unsigned shift.   */
-        case ETIR__C_OPR_ROT:       /* Rotate.  */
-        case ETIR__C_OPR_REDEF:     /* Redefine symbol to current location.  */
-        case ETIR__C_OPR_DFLIT:     /* Define a literal.  */
+	      return FALSE;
+	    }
+	  if ((int)op2 < 0)		/* Shift right.  */
+	    op1 >>= -(int)op2;
+	  else			/* Shift left.  */
+	    op1 <<= (int)op2;
+	  _bfd_vms_push (abfd, op1, RELC_NONE); /* FIXME: sym.  */
+	  break;
+
+	case ETIR__C_OPR_INSV:      /* Insert field.   */
+	case ETIR__C_OPR_USH:       /* Unsigned shift.   */
+	case ETIR__C_OPR_ROT:       /* Rotate.  */
+	case ETIR__C_OPR_REDEF:     /* Redefine symbol to current location.  */
+	case ETIR__C_OPR_DFLIT:     /* Define a literal.  */
 	  _bfd_error_handler (_("%s: not supported"),
 			      _bfd_vms_etir_name (cmd));
-          return FALSE;
-          break;
+	  return FALSE;
+	  break;
 
-        case ETIR__C_OPR_SEL:      /* Select.  */
-          _bfd_vms_pop (abfd, &op1, &rel1);
-          if (op1 & 0x01L)
-            _bfd_vms_pop (abfd, &op1, &rel1);
-          else
-            {
-              _bfd_vms_pop (abfd, &op1, &rel1);
-              _bfd_vms_pop (abfd, &op2, &rel2);
-              _bfd_vms_push (abfd, op1, rel1);
-            }
-          break;
+	case ETIR__C_OPR_SEL:      /* Select.  */
+	  _bfd_vms_pop (abfd, &op1, &rel1);
+	  if (op1 & 0x01L)
+	    _bfd_vms_pop (abfd, &op1, &rel1);
+	  else
+	    {
+	      _bfd_vms_pop (abfd, &op1, &rel1);
+	      _bfd_vms_pop (abfd, &op2, &rel2);
+	      _bfd_vms_push (abfd, op1, rel1);
+	    }
+	  break;
 
-        default:
+	default:
 	  _bfd_error_handler (_("reserved cmd %d"), cmd);
-          return FALSE;
-          break;
-        }
+	  return FALSE;
+	  break;
+	}
 
       ptr += cmd_length - 4;
     }
@@ -2291,7 +2435,7 @@ vms_slurp_debug (bfd *abfd)
 	 is in an object file, so pick an initial amount and grow it as
 	 needed later.  */
       flagword flags = SEC_HAS_CONTENTS | SEC_DEBUGGING | SEC_RELOC
-        | SEC_IN_MEMORY;
+	| SEC_IN_MEMORY;
 
       section = bfd_make_section (abfd, "$DST$");
       if (!section)
@@ -2347,7 +2491,15 @@ _bfd_vms_slurp_eeom (bfd *abfd)
 
   vms_debug2 ((2, "EEOM\n"));
 
-  PRIV (eom_data).eom_l_total_lps = bfd_getl32 (eeom->total_lps);
+  /* PR 21813: Check for an undersized record.  */
+  if (PRIV (recrd.buf_size) < sizeof (* eeom))
+    {
+      _bfd_error_handler (_("Corrupt EEOM record - size is too small"));
+      bfd_set_error (bfd_error_bad_value);
+      return FALSE;
+    }
+
+  PRIV (eom_data).eom_l_total_lps = bfd_getl32 (eeom->total_lps);
   PRIV (eom_data).eom_w_comcod = bfd_getl16 (eeom->comcod);
   if (PRIV (eom_data).eom_w_comcod > 1)
     {
@@ -2390,28 +2542,28 @@ _bfd_vms_slurp_object_records (bfd * abf
 
       switch (type)
 	{
-        case EOBJ__C_EMH:
-          err = _bfd_vms_slurp_ehdr (abfd);
-          break;
-        case EOBJ__C_EEOM:
-          err = _bfd_vms_slurp_eeom (abfd);
-          break;
-        case EOBJ__C_EGSD:
-          err = _bfd_vms_slurp_egsd (abfd);
-          break;
-        case EOBJ__C_ETIR:
-          err = TRUE; /* _bfd_vms_slurp_etir (abfd); */
-          break;
-        case EOBJ__C_EDBG:
-          err = _bfd_vms_slurp_edbg (abfd);
-          break;
-        case EOBJ__C_ETBT:
-          err = _bfd_vms_slurp_etbt (abfd);
-          break;
-        default:
-          err = FALSE;
+	case EOBJ__C_EMH:
+	  err = _bfd_vms_slurp_ehdr (abfd);
+	  break;
+	case EOBJ__C_EEOM:
+	  err = _bfd_vms_slurp_eeom (abfd);
+	  break;
+	case EOBJ__C_EGSD:
+	  err = _bfd_vms_slurp_egsd (abfd);
+	  break;
+	case EOBJ__C_ETIR:
+	  err = TRUE; /* _bfd_vms_slurp_etir (abfd); */
+	  break;
+	case EOBJ__C_EDBG:
+	  err = _bfd_vms_slurp_edbg (abfd);
+	  break;
+	case EOBJ__C_ETBT:
+	  err = _bfd_vms_slurp_etbt (abfd);
+	  break;
+	default:
+	  err = FALSE;
 	}
-      if (err != TRUE)
+      if (!err)
 	{
 	  vms_debug2 ((2, "slurp type %d failed\n", type));
 	  return FALSE;
@@ -2512,36 +2664,39 @@ alpha_vms_object_p (bfd *abfd)
 
       /* The header size is 0 for DSF files.  */
       if (PRIV (recrd.rec_size) == 0)
-        PRIV (recrd.rec_size) = sizeof (struct vms_eihd);
+	PRIV (recrd.rec_size) = sizeof (struct vms_eihd);
 
       if (PRIV (recrd.rec_size) > PRIV (recrd.buf_size))
-        {
-          buf = bfd_realloc_or_free (buf, PRIV (recrd.rec_size));
+	{
+	  buf = bfd_realloc_or_free (buf, PRIV (recrd.rec_size));
 
-          if (buf == NULL)
-            {
-              PRIV (recrd.buf) = NULL;
-              goto error_ret;
-            }
-          PRIV (recrd.buf) = buf;
-          PRIV (recrd.buf_size) = PRIV (recrd.rec_size);
-        }
+	  if (buf == NULL)
+	    {
+	      PRIV (recrd.buf) = NULL;
+	      goto error_ret;
+	    }
+	  PRIV (recrd.buf) = buf;
+	  PRIV (recrd.buf_size) = PRIV (recrd.rec_size);
+	}
 
+      /* PR 21813: Check for a truncated record.  */
+      if (PRIV (recrd.rec_size < test_len))
+	goto error_ret;
       /* Read the remaining record.  */
       remaining = PRIV (recrd.rec_size) - test_len;
       to_read = MIN (VMS_BLOCK_SIZE - test_len, remaining);
       read_so_far = test_len;
 
       while (remaining > 0)
-        {
-          if (bfd_bread (buf + read_so_far, to_read, abfd) != to_read)
+	{
+	  if (bfd_bread (buf + read_so_far, to_read, abfd) != to_read)
 	    goto err_wrong_format;
 
-          read_so_far += to_read;
-          remaining -= to_read;
+	  read_so_far += to_read;
+	  remaining -= to_read;
 
-          to_read = MIN (VMS_BLOCK_SIZE, remaining);
-        }
+	  to_read = MIN (VMS_BLOCK_SIZE, remaining);
+	}
 
       /* Reset the record pointer.  */
       PRIV (recrd.rec) = buf;
@@ -2551,15 +2706,15 @@ alpha_vms_object_p (bfd *abfd)
 	goto error_ret;
       vms_debug2 ((2, "file type is image\n"));
 
-      if (_bfd_vms_slurp_eihd (abfd, &eisd_offset, &eihs_offset) != TRUE)
-        goto err_wrong_format;
+      if (!_bfd_vms_slurp_eihd (abfd, &eisd_offset, &eihs_offset))
+	goto err_wrong_format;
 
-      if (_bfd_vms_slurp_eisd (abfd, eisd_offset) != TRUE)
-        goto err_wrong_format;
+      if (!_bfd_vms_slurp_eisd (abfd, eisd_offset))
+	goto err_wrong_format;
 
       /* EIHS is optional.  */
-      if (eihs_offset != 0 && _bfd_vms_slurp_eihs (abfd, eihs_offset) != TRUE)
-        goto err_wrong_format;
+      if (eihs_offset != 0 && !_bfd_vms_slurp_eihs (abfd, eihs_offset))
+	goto err_wrong_format;
     }
   else
     {
@@ -2570,22 +2725,22 @@ alpha_vms_object_p (bfd *abfd)
 
       /* But is it really a module?  */
       if (bfd_getl16 (PRIV (recrd.rec)) <= EOBJ__C_MAXRECTYP
-          && bfd_getl16 (PRIV (recrd.rec) + 2) <= EOBJ__C_MAXRECSIZ)
-        {
-          if (vms_get_remaining_object_record (abfd, test_len) <= 0)
-            goto err_wrong_format;
-
-          vms_debug2 ((2, "file type is module\n"));
-
-          type = bfd_getl16 (PRIV (recrd.rec));
-          if (type != EOBJ__C_EMH || _bfd_vms_slurp_ehdr (abfd) != TRUE)
-            goto err_wrong_format;
-
-          if (_bfd_vms_slurp_object_records (abfd) != TRUE)
-            goto err_wrong_format;
-        }
+	  && bfd_getl16 (PRIV (recrd.rec) + 2) <= EOBJ__C_MAXRECSIZ)
+	{
+	  if (vms_get_remaining_object_record (abfd, test_len) <= 0)
+	    goto err_wrong_format;
+
+	  vms_debug2 ((2, "file type is module\n"));
+
+	  type = bfd_getl16 (PRIV (recrd.rec));
+	  if (type != EOBJ__C_EMH || !_bfd_vms_slurp_ehdr (abfd))
+	    goto err_wrong_format;
+
+	  if (!_bfd_vms_slurp_object_records (abfd))
+	    goto err_wrong_format;
+	}
       else
-        goto err_wrong_format;
+	goto err_wrong_format;
     }
 
   /* Set arch_info to alpha.   */
@@ -2655,7 +2810,7 @@ _bfd_vms_write_lmn (bfd *abfd, const cha
   _bfd_vms_output_begin (recwr, EOBJ__C_EMH);
   _bfd_vms_output_short (recwr, EMH__C_LNM);
   snprintf (version, sizeof (version), "%s %d.%d.%d", name,
-            ver / 10000, (ver / 100) % 100, ver % 100);
+	    ver / 10000, (ver / 100) % 100, ver % 100);
   _bfd_vms_output_dump (recwr, (unsigned char *)version, strlen (version));
   _bfd_vms_output_end (abfd, recwr);
 }
@@ -2731,7 +2886,7 @@ alpha_vms_file_position_block (bfd *abfd
 
 static void
 alpha_vms_swap_eisd_out (struct vms_internal_eisd_map *src,
-                         struct vms_eisd *dst)
+			 struct vms_eisd *dst)
 {
   bfd_putl32 (src->u.eisd.majorid, dst->majorid);
   bfd_putl32 (src->u.eisd.minorid, dst->minorid);
@@ -2750,7 +2905,7 @@ alpha_vms_swap_eisd_out (struct vms_inte
     {
       bfd_putl32 (src->u.gbl_eisd.ident, dst->ident);
       memcpy (dst->gblnam, src->u.gbl_eisd.gblnam,
-              src->u.gbl_eisd.gblnam[0] + 1);
+	      src->u.gbl_eisd.gblnam[0] + 1);
     }
 }
 
@@ -2802,7 +2957,7 @@ alpha_vms_create_eisd_for_shared (bfd *a
   eisd->u.gbl_eisd.ident = PRIV2 (shrimg, ident);
   eisd->u.gbl_eisd.gblnam[0] = namlen + 4;
   memcpy (eisd->u.gbl_eisd.gblnam + 1, PRIV2 (shrimg, hdr_data.hdr_t_name),
-          namlen);
+	  namlen);
   memcpy (eisd->u.gbl_eisd.gblnam + 1 + namlen, "_001", 4);
 
   /* Append it to the list.  */
@@ -2859,7 +3014,7 @@ alpha_vms_create_eisd_for_section (bfd *
   if (sec->flags & SEC_LINKER_CREATED)
     {
       if (strcmp (sec->name, "$FIXUP$") == 0)
-        eisd->u.eisd.flags |= EISD__M_FIXUPVEC;
+	eisd->u.eisd.flags |= EISD__M_FIXUPVEC;
     }
 
   /* Append it to the list.  */
@@ -2917,7 +3072,7 @@ alpha_vms_write_exec (bfd *abfd)
   bfd_putl32 (-1, eihd.privreqs + 4);
 
   bfd_putl32 ((sizeof (eihd) + VMS_BLOCK_SIZE - 1) / VMS_BLOCK_SIZE,
-              eihd.hdrblkcnt);
+	      eihd.hdrblkcnt);
   bfd_putl32 (0, eihd.ident);
   bfd_putl32 (0, eihd.sysver);
 
@@ -2997,7 +3152,7 @@ alpha_vms_write_exec (bfd *abfd)
   for (sec = abfd->sections; sec; sec = sec->next)
     {
       if (!alpha_vms_create_eisd_for_section (abfd, sec))
-        return FALSE;
+	return FALSE;
     }
 
   /* Merge section EIDS which extra ones.  */
@@ -3015,7 +3170,7 @@ alpha_vms_write_exec (bfd *abfd)
     {
       eisd = bfd_zalloc (abfd, sizeof (*eisd));
       if (eisd == NULL)
-        return FALSE;
+	return FALSE;
       eisd->u.eisd.majorid = 0;
       eisd->u.eisd.minorid = 0;
       eisd->u.eisd.eisdsize = 0;
@@ -3029,15 +3184,15 @@ alpha_vms_write_exec (bfd *abfd)
 
       /* First block is a little bit special: there is a word at the end.  */
       if (PRIV (file_pos) < VMS_BLOCK_SIZE && room > 2)
-        room -= 2;
+	room -= 2;
       if (room < eisd->u.eisd.eisdsize + EISD__K_LENEND)
-        alpha_vms_file_position_block (abfd);
+	alpha_vms_file_position_block (abfd);
 
       eisd->file_pos = PRIV (file_pos);
       PRIV (file_pos) += eisd->u.eisd.eisdsize;
 
       if (eisd->u.eisd.flags & EISD__M_FIXUPVEC)
-        bfd_putl64 (eisd->u.eisd.virt_addr, eihd.iafva);
+	bfd_putl64 (eisd->u.eisd.virt_addr, eihd.iafva);
     }
 
   if (first_eisd != NULL)
@@ -3049,13 +3204,13 @@ alpha_vms_write_exec (bfd *abfd)
 
   bfd_putl32 (PRIV (file_pos), eihd.size);
   bfd_putl32 ((PRIV (file_pos) + VMS_BLOCK_SIZE - 1) / VMS_BLOCK_SIZE,
-              eihd.hdrblkcnt);
+	      eihd.hdrblkcnt);
 
   /* Place sections.  */
   for (sec = abfd->sections; sec; sec = sec->next)
     {
       if (!(sec->flags & SEC_HAS_CONTENTS))
-        continue;
+	continue;
 
       eisd = vms_section_data (sec)->eisd;
 
@@ -3064,7 +3219,7 @@ alpha_vms_write_exec (bfd *abfd)
       sec->filepos = PRIV (file_pos);
 
       if (eisd != NULL)
-        eisd->u.eisd.vbn = (sec->filepos / VMS_BLOCK_SIZE) + 1;
+	eisd->u.eisd.vbn = (sec->filepos / VMS_BLOCK_SIZE) + 1;
 
       PRIV (file_pos) += sec->size;
     }
@@ -3076,18 +3231,18 @@ alpha_vms_write_exec (bfd *abfd)
       bfd_putl32 (dst->size, eihs->dstsize);
 
       if (dmt != NULL)
-        {
-          lnkflags |= EIHD__M_DBGDMT;
-          bfd_putl32 ((dmt->filepos / VMS_BLOCK_SIZE) + 1, eihs->dmtvbn);
-          bfd_putl32 (dmt->size, eihs->dmtsize);
-        }
+	{
+	  lnkflags |= EIHD__M_DBGDMT;
+	  bfd_putl32 ((dmt->filepos / VMS_BLOCK_SIZE) + 1, eihs->dmtvbn);
+	  bfd_putl32 (dmt->size, eihs->dmtsize);
+	}
       if (PRIV (gsd_sym_count) != 0)
-        {
-          alpha_vms_file_position_block (abfd);
-          gst_filepos = PRIV (file_pos);
-          bfd_putl32 ((gst_filepos / VMS_BLOCK_SIZE) + 1, eihs->gstvbn);
-          bfd_putl32 ((PRIV (gsd_sym_count) + 4) / 5 + 4, eihs->gstsize);
-        }
+	{
+	  alpha_vms_file_position_block (abfd);
+	  gst_filepos = PRIV (file_pos);
+	  bfd_putl32 ((gst_filepos / VMS_BLOCK_SIZE) + 1, eihs->gstvbn);
+	  bfd_putl32 ((PRIV (gsd_sym_count) + 4) / 5 + 4, eihs->gstsize);
+	}
     }
 
   /* Write EISD in hdr.  */
@@ -3109,23 +3264,23 @@ alpha_vms_write_exec (bfd *abfd)
 
       memset (blk, 0xff, sizeof (blk));
       while (eisd != NULL)
-        {
-          alpha_vms_swap_eisd_out
-            (eisd,
-             (struct vms_eisd *)(blk + (eisd->file_pos % VMS_BLOCK_SIZE)));
-
-          next_eisd = eisd->next;
-          if (next_eisd == NULL
-              || (next_eisd->file_pos / VMS_BLOCK_SIZE
-                  != eisd->file_pos / VMS_BLOCK_SIZE))
-            {
-              if (bfd_bwrite (blk, sizeof (blk), abfd) != sizeof (blk))
-                return FALSE;
-
-              memset (blk, 0xff, sizeof (blk));
-            }
-          eisd = next_eisd;
-        }
+	{
+	  alpha_vms_swap_eisd_out
+	    (eisd,
+	     (struct vms_eisd *)(blk + (eisd->file_pos % VMS_BLOCK_SIZE)));
+
+	  next_eisd = eisd->next;
+	  if (next_eisd == NULL
+	      || (next_eisd->file_pos / VMS_BLOCK_SIZE
+		  != eisd->file_pos / VMS_BLOCK_SIZE))
+	    {
+	      if (bfd_bwrite (blk, sizeof (blk), abfd) != sizeof (blk))
+		return FALSE;
+
+	      memset (blk, 0xff, sizeof (blk));
+	    }
+	  eisd = next_eisd;
+	}
     }
 
   /* Write sections.  */
@@ -3135,18 +3290,18 @@ alpha_vms_write_exec (bfd *abfd)
       bfd_size_type len;
 
       if (sec->size == 0 || !(sec->flags & SEC_HAS_CONTENTS))
-        continue;
+	continue;
       if (bfd_bwrite (sec->contents, sec->size, abfd) != sec->size)
-        return FALSE;
+	return FALSE;
 
       /* Pad.  */
       len = VMS_BLOCK_SIZE - sec->size % VMS_BLOCK_SIZE;
       if (len != VMS_BLOCK_SIZE)
-        {
-          memset (blk, 0, len);
-          if (bfd_bwrite (blk, len, abfd) != len)
-            return FALSE;
-        }
+	{
+	  memset (blk, 0, len);
+	  if (bfd_bwrite (blk, len, abfd) != len)
+	    return FALSE;
+	}
     }
 
   /* Write GST.  */
@@ -3170,44 +3325,44 @@ alpha_vms_write_exec (bfd *abfd)
       _bfd_vms_output_end (abfd, recwr);
 
       for (i = 0; i < PRIV (gsd_sym_count); i++)
-        {
-          struct vms_symbol_entry *sym = PRIV (syms)[i];
-          bfd_vma val;
-          bfd_vma ep;
-
-          if ((i % 5) == 0)
-            {
-              _bfd_vms_output_alignment (recwr, 8);
-              _bfd_vms_output_begin (recwr, EOBJ__C_EGSD);
-              _bfd_vms_output_long (recwr, 0);
-            }
-          _bfd_vms_output_begin_subrec (recwr, EGSD__C_SYMG);
-          _bfd_vms_output_short (recwr, 0); /* Data type, alignment.  */
-          _bfd_vms_output_short (recwr, sym->flags);
-
-          if (sym->code_section)
-            ep = alpha_vms_get_sym_value (sym->code_section, sym->code_value);
-          else
-            {
-              BFD_ASSERT (sym->code_value == 0);
-              ep = 0;
-            }
-          val = alpha_vms_get_sym_value (sym->section, sym->value);
-          _bfd_vms_output_quad
-            (recwr, sym->typ == EGSD__C_SYMG ? sym->symbol_vector : val);
+	{
+	  struct vms_symbol_entry *sym = PRIV (syms)[i];
+	  bfd_vma val;
+	  bfd_vma ep;
+
+	  if ((i % 5) == 0)
+	    {
+	      _bfd_vms_output_alignment (recwr, 8);
+	      _bfd_vms_output_begin (recwr, EOBJ__C_EGSD);
+	      _bfd_vms_output_long (recwr, 0);
+	    }
+	  _bfd_vms_output_begin_subrec (recwr, EGSD__C_SYMG);
+	  _bfd_vms_output_short (recwr, 0); /* Data type, alignment.  */
+	  _bfd_vms_output_short (recwr, sym->flags);
+
+	  if (sym->code_section)
+	    ep = alpha_vms_get_sym_value (sym->code_section, sym->code_value);
+	  else
+	    {
+	      BFD_ASSERT (sym->code_value == 0);
+	      ep = 0;
+	    }
+	  val = alpha_vms_get_sym_value (sym->section, sym->value);
+	  _bfd_vms_output_quad
+	    (recwr, sym->typ == EGSD__C_SYMG ? sym->symbol_vector : val);
 	  _bfd_vms_output_quad (recwr, ep);
 	  _bfd_vms_output_quad (recwr, val);
 	  _bfd_vms_output_long (recwr, 0);
-          _bfd_vms_output_counted (recwr, sym->name);
-          _bfd_vms_output_end_subrec (recwr);
-          if ((i % 5) == 4)
-            _bfd_vms_output_end (abfd, recwr);
-        }
+	  _bfd_vms_output_counted (recwr, sym->name);
+	  _bfd_vms_output_end_subrec (recwr);
+	  if ((i % 5) == 4)
+	    _bfd_vms_output_end (abfd, recwr);
+	}
       if ((i % 5) != 0)
-        _bfd_vms_output_end (abfd, recwr);
+	_bfd_vms_output_end (abfd, recwr);
 
       if (!_bfd_vms_write_eeom (abfd))
-        return FALSE;
+	return FALSE;
     }
   return TRUE;
 }
@@ -3240,24 +3395,24 @@ _bfd_vms_write_egsd (bfd *abfd)
   for (section = abfd->sections; section != NULL; section = section->next)
     {
       if (section->flags & SEC_DEBUGGING)
-        continue;
+	continue;
       if (!strcmp (section->name, ".vmsdebug"))
-        {
-          section->flags |= SEC_DEBUGGING;
-          continue;
-        }
+	{
+	  section->flags |= SEC_DEBUGGING;
+	  continue;
+	}
       section->target_index = target_index++;
     }
 
   for (section = abfd->sections; section != NULL; section = section->next)
     {
       vms_debug2 ((3, "Section #%d %s, %d bytes\n",
-                   section->target_index, section->name, (int)section->size));
+		   section->target_index, section->name, (int)section->size));
 
       /* Don't write out the VMS debug info section since it is in the
-         ETBT and EDBG sections in etir. */
+	 ETBT and EDBG sections in etir. */
       if (section->flags & SEC_DEBUGGING)
-        continue;
+	continue;
 
       /* 13 bytes egsd, max 31 chars name -> should be 44 bytes.  */
       if (_bfd_vms_output_check (recwr, 64) < 0)
@@ -3272,7 +3427,7 @@ _bfd_vms_write_egsd (bfd *abfd)
       sname = section->name;
       if (*sname == '.')
 	{
-          /* Remove leading dot.  */
+	  /* Remove leading dot.  */
 	  sname++;
 	  if ((*sname == 't') && (strcmp (sname, "text") == 0))
 	    sname = EVAX_CODE_NAME;
@@ -3287,7 +3442,7 @@ _bfd_vms_write_egsd (bfd *abfd)
 	  else if ((*sname == 'l') && (strcmp (sname, "literal") == 0))
 	    sname = EVAX_LITERAL_NAME;
 	  else if ((*sname == 'l') && (strcmp (sname, "literals") == 0))
-            sname = EVAX_LITERALS_NAME;
+	    sname = EVAX_LITERALS_NAME;
 	  else if ((*sname == 'c') && (strcmp (sname, "comm") == 0))
 	    sname = EVAX_COMMON_NAME;
 	  else if ((*sname == 'l') && (strcmp (sname, "lcomm") == 0))
@@ -3310,7 +3465,7 @@ _bfd_vms_write_egsd (bfd *abfd)
 
       vms_debug2 ((3, "sec flags %x\n", section->flags));
       vms_debug2 ((3, "new_flags %x, _raw_size %lu\n",
-                   new_flags, (unsigned long)section->size));
+		   new_flags, (unsigned long)section->size));
 
       _bfd_vms_output_begin_subrec (recwr, EGSD__C_PSC);
       _bfd_vms_output_short (recwr, section->alignment_power & 0xff);
@@ -3320,9 +3475,9 @@ _bfd_vms_write_egsd (bfd *abfd)
       _bfd_vms_output_end_subrec (recwr);
 
       /* If the section is an obsolute one, remind its index as it will be
-         used later for absolute symbols.  */
+	 used later for absolute symbols.  */
       if ((new_flags & EGPS__V_REL) == 0 && abs_section_index < 0)
-        abs_section_index = section->target_index;
+	abs_section_index = section->target_index;
     }
 
   /* Output symbols.  */
@@ -3336,7 +3491,7 @@ _bfd_vms_write_egsd (bfd *abfd)
       old_flags = symbol->flags;
 
       /* Work-around a missing feature:  consider __main as the main entry
-         point.  */
+	 point.  */
       if (symbol->name[0] == '_' && strcmp (symbol->name, "__main") == 0)
 	bfd_set_start_address (abfd, (bfd_vma)symbol->value);
 
@@ -3345,17 +3500,17 @@ _bfd_vms_write_egsd (bfd *abfd)
 	continue;
 
       if ((old_flags & BSF_GLOBAL) == 0 && !bfd_is_und_section (symbol->section))
-        {
-          /* If the LIB$INITIIALIZE section is present, add a reference to
-             LIB$INITIALIZE symbol.  FIXME: this should be done explicitely
-             in the assembly file.  */
-          if (!((old_flags & BSF_SECTION_SYM) != 0
-                && strcmp (symbol->section->name, "LIB$INITIALIZE") == 0))
-            continue;
-        }
+	{
+	  /* If the LIB$INITIIALIZE section is present, add a reference to
+	     LIB$INITIALIZE symbol.  FIXME: this should be done explicitely
+	     in the assembly file.  */
+	  if (!((old_flags & BSF_SECTION_SYM) != 0
+		&& strcmp (symbol->section->name, "LIB$INITIALIZE") == 0))
+	    continue;
+	}
 
       /* 13 bytes egsd, max 64 chars name -> should be 77 bytes.  Add 16 more
-         bytes for a possible ABS section.  */
+	 bytes for a possible ABS section.  */
       if (_bfd_vms_output_check (recwr, 80 + 16) < 0)
 	{
 	  _bfd_vms_output_end (abfd, recwr);
@@ -3364,21 +3519,21 @@ _bfd_vms_write_egsd (bfd *abfd)
 	}
 
       if ((old_flags & BSF_GLOBAL) != 0
-          && bfd_is_abs_section (symbol->section)
-          && abs_section_index <= 0)
-        {
-          /* Create an absolute section if none was defined.  It is highly
-             unlikely that the name $ABS$ clashes with a user defined
-             non-absolute section name.  */
-          _bfd_vms_output_begin_subrec (recwr, EGSD__C_PSC);
-          _bfd_vms_output_short (recwr, 4);
-          _bfd_vms_output_short (recwr, EGPS__V_SHR);
-          _bfd_vms_output_long (recwr, 0);
-          _bfd_vms_output_counted (recwr, "$ABS$");
-          _bfd_vms_output_end_subrec (recwr);
+	  && bfd_is_abs_section (symbol->section)
+	  && abs_section_index <= 0)
+	{
+	  /* Create an absolute section if none was defined.  It is highly
+	     unlikely that the name $ABS$ clashes with a user defined
+	     non-absolute section name.  */
+	  _bfd_vms_output_begin_subrec (recwr, EGSD__C_PSC);
+	  _bfd_vms_output_short (recwr, 4);
+	  _bfd_vms_output_short (recwr, EGPS__V_SHR);
+	  _bfd_vms_output_long (recwr, 0);
+	  _bfd_vms_output_counted (recwr, "$ABS$");
+	  _bfd_vms_output_end_subrec (recwr);
 
-          abs_section_index = target_index++;
-        }
+	  abs_section_index = target_index++;
+	}
 
       _bfd_vms_output_begin_subrec (recwr, EGSD__C_SYM);
 
@@ -3416,8 +3571,8 @@ _bfd_vms_write_egsd (bfd *abfd)
 	    {
 	      asymbol *sym;
 
-              sym =
-                ((struct evax_private_udata_struct *)symbol->udata.p)->enbsym;
+	      sym =
+		((struct evax_private_udata_struct *)symbol->udata.p)->enbsym;
 	      code_address = sym->value;
 	      ca_psindx = sym->section->target_index;
 	    }
@@ -3489,7 +3644,7 @@ _bfd_vms_write_ehdr (bfd *abfd)
   _bfd_vms_output_begin (recwr, EOBJ__C_EMH);
   _bfd_vms_output_short (recwr, EMH__C_CPR);
   _bfd_vms_output_dump (recwr,
-                        (unsigned char *)"GNU BFD ported by Klaus KÃ¤mpf 1994-1996",
+			(unsigned char *)"GNU BFD ported by Klaus KÃ¤mpf 1994-1996",
 			 39);
   _bfd_vms_output_end (abfd, recwr);
 
@@ -3523,33 +3678,33 @@ start_etir_or_etbt_record (bfd *abfd, as
       _bfd_vms_output_begin (recwr, EOBJ__C_ETBT);
 
       if (offset == 0)
-        {
-          /* Push start offset.  */
-          _bfd_vms_output_begin_subrec (recwr, ETIR__C_STA_LW);
-          _bfd_vms_output_long (recwr, (unsigned long) 0);
-          _bfd_vms_output_end_subrec (recwr);
-
-          /* Set location.  */
-          _bfd_vms_output_begin_subrec (recwr, ETIR__C_CTL_DFLOC);
-          _bfd_vms_output_end_subrec (recwr);
-        }
+	{
+	  /* Push start offset.  */
+	  _bfd_vms_output_begin_subrec (recwr, ETIR__C_STA_LW);
+	  _bfd_vms_output_long (recwr, (unsigned long) 0);
+	  _bfd_vms_output_end_subrec (recwr);
+
+	  /* Set location.  */
+	  _bfd_vms_output_begin_subrec (recwr, ETIR__C_CTL_DFLOC);
+	  _bfd_vms_output_end_subrec (recwr);
+	}
     }
   else
     {
       _bfd_vms_output_begin (recwr, EOBJ__C_ETIR);
 
       if (offset == 0)
-        {
-          /* Push start offset.  */
-          _bfd_vms_output_begin_subrec (recwr, ETIR__C_STA_PQ);
-          _bfd_vms_output_long (recwr, (unsigned long) section->target_index);
-          _bfd_vms_output_quad (recwr, offset);
-          _bfd_vms_output_end_subrec (recwr);
-
-          /* Start = pop ().  */
-          _bfd_vms_output_begin_subrec (recwr, ETIR__C_CTL_SETRB);
-          _bfd_vms_output_end_subrec (recwr);
-        }
+	{
+	  /* Push start offset.  */
+	  _bfd_vms_output_begin_subrec (recwr, ETIR__C_STA_PQ);
+	  _bfd_vms_output_long (recwr, (unsigned long) section->target_index);
+	  _bfd_vms_output_quad (recwr, offset);
+	  _bfd_vms_output_end_subrec (recwr);
+
+	  /* Start = pop ().  */
+	  _bfd_vms_output_begin_subrec (recwr, ETIR__C_CTL_SETRB);
+	  _bfd_vms_output_end_subrec (recwr);
+	}
     }
 }
 
@@ -3558,7 +3713,7 @@ start_etir_or_etbt_record (bfd *abfd, as
 
 static void
 sto_imm (bfd *abfd, asection *section,
-         bfd_size_type ssize, unsigned char *cptr, bfd_vma vaddr)
+	 bfd_size_type ssize, unsigned char *cptr, bfd_vma vaddr)
 {
   bfd_size_type size;
   struct vms_rec_wr *recwr = &PRIV (recwr);
@@ -3578,7 +3733,7 @@ sto_imm (bfd *abfd, asection *section,
 	  /* Doesn't fit, split !  */
 	  end_etir_record (abfd);
 
-          start_etir_or_etbt_record (abfd, section, vaddr);
+	  start_etir_or_etbt_record (abfd, section, vaddr);
 
 	  size = _bfd_vms_output_check (recwr, 0);	/* get max size */
 	  if (size > ssize)			/* more than what's left ? */
@@ -3647,7 +3802,7 @@ _bfd_vms_write_etir (bfd * abfd, int obj
   for (section = abfd->sections; section; section = section->next)
     {
       vms_debug2 ((4, "writing %d. section '%s' (%d bytes)\n",
-                   section->target_index, section->name, (int) (section->size)));
+		   section->target_index, section->name, (int) (section->size)));
 
       if (!(section->flags & SEC_HAS_CONTENTS)
 	  || bfd_is_com_section (section))
@@ -3688,9 +3843,9 @@ _bfd_vms_write_etir (bfd * abfd, int obj
 				  (*(*rptr)->sym_ptr_ptr)->section->name,
 				  (long) (*(*rptr)->sym_ptr_ptr)->value,
 				  (unsigned long)(*rptr)->address,
-                                  (unsigned long)(*rptr)->addend,
+				  (unsigned long)(*rptr)->addend,
 				  bfd_get_reloc_size ((*rptr)->howto),
-                                  ( *rptr)->howto->name);
+				  ( *rptr)->howto->name);
 		  rptr++;
 		}
 	    }
@@ -3723,7 +3878,7 @@ _bfd_vms_write_etir (bfd * abfd, int obj
 		    }
 
 		  /* Regular relocs are intertwined with binary data.  */
-	          if (curr_addr > addr)
+		  if (curr_addr > addr)
 		    _bfd_error_handler (_("Size error in section %A"),
 					section);
 		  size = addr - curr_addr;
@@ -3735,7 +3890,7 @@ _bfd_vms_write_etir (bfd * abfd, int obj
 	      size = bfd_get_reloc_size (rptr->howto);
 
 	      switch (rptr->howto->type)
-	        {
+		{
 		case ALPHA_R_IGNORE:
 		  break;
 
@@ -3761,7 +3916,7 @@ _bfd_vms_write_etir (bfd * abfd, int obj
 		      else
 			{
 			  _bfd_vms_output_begin_subrec
-                            (recwr, ETIR__C_STO_GBL_LW);
+			    (recwr, ETIR__C_STO_GBL_LW);
 			  _bfd_vms_output_counted (recwr, sym->name);
 			  _bfd_vms_output_end_subrec (recwr);
 			}
@@ -3780,7 +3935,7 @@ _bfd_vms_write_etir (bfd * abfd, int obj
 		      etir_output_check (abfd, section, curr_addr, 32);
 		      _bfd_vms_output_begin_subrec (recwr, ETIR__C_STA_PQ);
 		      _bfd_vms_output_long (recwr,
-                                            (unsigned long) sec->target_index);
+					    (unsigned long) sec->target_index);
 		      _bfd_vms_output_quad (recwr, rptr->addend + sym->value);
 		      _bfd_vms_output_end_subrec (recwr);
 		      /* ??? Table B-8 of the OpenVMS Linker Utilily Manual
@@ -3832,7 +3987,7 @@ _bfd_vms_write_etir (bfd * abfd, int obj
 		      etir_output_check (abfd, section, curr_addr, 32);
 		      _bfd_vms_output_begin_subrec (recwr, ETIR__C_STA_PQ);
 		      _bfd_vms_output_long (recwr,
-                                            (unsigned long) sec->target_index);
+					    (unsigned long) sec->target_index);
 		      _bfd_vms_output_quad (recwr, rptr->addend + sym->value);
 		      _bfd_vms_output_end_subrec (recwr);
 		      _bfd_vms_output_begin_subrec (recwr, ETIR__C_STO_OFF);
@@ -3849,8 +4004,8 @@ _bfd_vms_write_etir (bfd * abfd, int obj
 		  _bfd_vms_output_begin_subrec (recwr, ETIR__C_STC_LP_PSB);
 		  _bfd_vms_output_long
 		    (recwr, (unsigned long) rptr->addend);
-                  if (rptr->addend > PRIV (vms_linkage_index))
-                    PRIV (vms_linkage_index) = rptr->addend;
+		  if (rptr->addend > PRIV (vms_linkage_index))
+		    PRIV (vms_linkage_index) = rptr->addend;
 		  _bfd_vms_output_counted (recwr, sym->name);
 		  _bfd_vms_output_byte (recwr, 0);
 		  _bfd_vms_output_end_subrec (recwr);
@@ -3975,16 +4130,16 @@ alpha_vms_write_object_contents (bfd *ab
   else
     {
       if (abfd->section_count > 0)			/* we have sections */
-        {
-          if (_bfd_vms_write_ehdr (abfd) != TRUE)
-            return FALSE;
-          if (_bfd_vms_write_egsd (abfd) != TRUE)
-            return FALSE;
-          if (_bfd_vms_write_etir (abfd, EOBJ__C_ETIR) != TRUE)
-            return FALSE;
-          if (_bfd_vms_write_eeom (abfd) != TRUE)
-            return FALSE;
-        }
+	{
+	  if (!_bfd_vms_write_ehdr (abfd))
+	    return FALSE;
+	  if (!_bfd_vms_write_egsd (abfd))
+	    return FALSE;
+	  if (!_bfd_vms_write_etir (abfd, EOBJ__C_ETIR))
+	    return FALSE;
+	  if (!_bfd_vms_write_eeom (abfd))
+	    return FALSE;
+	}
     }
   return TRUE;
 }
@@ -4038,20 +4193,21 @@ parse_module (bfd *abfd, struct module *
       vms_debug2 ((2, "DST record: leng %d, type %d\n", rec_length, rec_type));
 
       if (length == -1 && rec_type == DST__K_MODEND)
-        break;
+	break;
 
       switch (rec_type)
 	{
 	case DST__K_MODBEG:
 	  module->name
-	    = _bfd_vms_save_counted_string (ptr + DST_S_B_MODBEG_NAME);
+	    = _bfd_vms_save_counted_string (ptr + DST_S_B_MODBEG_NAME,
+					    maxptr - (ptr + DST_S_B_MODBEG_NAME));
 
 	  curr_pc = 0;
 	  prev_pc = 0;
 	  curr_linenum = 0;
 	  prev_linum = 0;
 
-          vms_debug2 ((3, "module: %s\n", module->name));
+	  vms_debug2 ((3, "module: %s\n", module->name));
 	  break;
 
 	case DST__K_MODEND:
@@ -4060,14 +4216,15 @@ parse_module (bfd *abfd, struct module *
 	case DST__K_RTNBEG:
 	  funcinfo = (struct funcinfo *)
 	    bfd_zalloc (abfd, sizeof (struct funcinfo));
-          funcinfo->name
-	    = _bfd_vms_save_counted_string (ptr + DST_S_B_RTNBEG_NAME);
+	  funcinfo->name
+	    = _bfd_vms_save_counted_string (ptr + DST_S_B_RTNBEG_NAME,
+					    maxptr - (ptr + DST_S_B_RTNBEG_NAME));
 	  funcinfo->low = bfd_getl32 (ptr + DST_S_L_RTNBEG_ADDRESS);
 	  funcinfo->next = module->func_table;
 	  module->func_table = funcinfo;
 
-          vms_debug2 ((3, "routine: %s at 0x%lx\n",
-                       funcinfo->name, (unsigned long) funcinfo->low));
+	  vms_debug2 ((3, "routine: %s at 0x%lx\n",
+		       funcinfo->name, (unsigned long) funcinfo->low));
 	  break;
 
 	case DST__K_RTNEND:
@@ -4077,23 +4234,23 @@ parse_module (bfd *abfd, struct module *
 	  if (module->func_table->high > module->high)
 	    module->high = module->func_table->high;
 
-          vms_debug2 ((3, "end routine\n"));
+	  vms_debug2 ((3, "end routine\n"));
 	  break;
 
 	case DST__K_PROLOG:
-          vms_debug2 ((3, "prologue\n"));
+	  vms_debug2 ((3, "prologue\n"));
 	  break;
 
 	case DST__K_EPILOG:
-          vms_debug2 ((3, "epilog\n"));
+	  vms_debug2 ((3, "epilog\n"));
 	  break;
 
 	case DST__K_BLKBEG:
-          vms_debug2 ((3, "block\n"));
+	  vms_debug2 ((3, "block\n"));
 	  break;
 
 	case DST__K_BLKEND:
-          vms_debug2 ((3, "end block\n"));
+	  vms_debug2 ((3, "end block\n"));
 	  break;
 
 	case DST__K_SOURCE:
@@ -4112,8 +4269,10 @@ parse_module (bfd *abfd, struct module *
 		    unsigned int fileid
 		      = bfd_getl16 (src_ptr + DST_S_W_SRC_DF_FILEID);
 		    char *filename
-		      = _bfd_vms_save_counted_string (src_ptr
-			  + DST_S_B_SRC_DF_FILENAME);
+		      = _bfd_vms_save_counted_string (src_ptr + DST_S_B_SRC_DF_FILENAME,
+						      (ptr + rec_length) -
+						      (src_ptr + DST_S_B_SRC_DF_FILENAME)
+						      );
 
 		    while (fileid >= module->file_table_count)
 		      {
@@ -4128,7 +4287,7 @@ parse_module (bfd *abfd, struct module *
 		    module->file_table [fileid].srec = 1;
 		    cmd_length = src_ptr[DST_S_B_SRC_DF_LENGTH] + 2;
 		    vms_debug2 ((4, "DST_S_C_SRC_DECLFILE: %d, %s\n",
-                                 fileid, module->file_table [fileid].name));
+				 fileid, module->file_table [fileid].name));
 		  }
 		  break;
 
@@ -4382,7 +4541,7 @@ parse_module (bfd *abfd, struct module *
 		      curr_linenum += 1;
 		      cmd_length = 1;
 		      vms_debug2 ((4, "bump pc to 0x%lx and line to %d\n",
-                                   (unsigned long)curr_pc, curr_linenum));
+				   (unsigned long)curr_pc, curr_linenum));
 		    }
 		  else
 		    {
@@ -4408,7 +4567,7 @@ parse_module (bfd *abfd, struct module *
 		  prev_linum = curr_linenum;
 		  prev_pc = curr_pc;
 		  vms_debug2 ((4, "-> correlate pc 0x%lx with line %d\n",
-                               (unsigned long)curr_pc, curr_linenum));
+			       (unsigned long)curr_pc, curr_linenum));
 		}
 
 	      pcl_ptr += cmd_length;
@@ -4484,7 +4643,7 @@ build_module_list (bfd *abfd)
 	  ptr += DBG_S_C_DMT_HEADER_SIZE;
 
 	  vms_debug2 ((3, "module: modbeg = %d, size = %d, count = %d\n",
-                       modbeg, msize, count));
+		       modbeg, msize, count));
 
 	  /* We create a 'module' structure for each program section since
 	     we only support contiguous addresses in a 'module' structure.
@@ -4505,7 +4664,7 @@ build_module_list (bfd *abfd)
 	      ptr += DBG_S_C_DMT_PSECT_SIZE;
 
 	      vms_debug2 ((4, "section: start = 0x%x, length = %d\n",
-                           start, length));
+			   start, length));
 	    }
 	}
     }
@@ -4517,7 +4676,7 @@ build_module_list (bfd *abfd)
       void *dst = PRIV (dst_section)->contents;
 
       if (dst == NULL)
-        return NULL;
+	return NULL;
 
       module = new_module (abfd);
       parse_module (abfd, module, PRIV (dst_section)->contents, -1);
@@ -4562,7 +4721,7 @@ module_find_nearest_line (bfd *abfd, str
   for (funcinfo = module->func_table; funcinfo; funcinfo = funcinfo->next)
     if (addr >= funcinfo->low && addr <= funcinfo->high)
       {
-        *func = funcinfo->name;
+	*func = funcinfo->name;
 	ret = TRUE;
 	break;
       }
@@ -4627,7 +4786,7 @@ _bfd_vms_find_nearest_line (bfd *abfd,
     {
       PRIV (modules) = build_module_list (abfd);
       if (PRIV (modules) == NULL)
-        return FALSE;
+	return FALSE;
     }
 
   for (module = PRIV (modules); module; module = module->next)
@@ -4657,22 +4816,22 @@ alpha_vms_convert_symbol (bfd *abfd, str
     {
     case EGSD__C_SYM:
       if (e->flags & EGSY__V_WEAK)
-        flags |= BSF_WEAK;
+	flags |= BSF_WEAK;
 
       if (e->flags & EGSY__V_DEF)
-        {
-          /* Symbol definition.  */
-          flags |= BSF_GLOBAL;
-          if (e->flags & EGSY__V_NORM)
-            flags |= BSF_FUNCTION;
-          value = e->value;
-          sec = e->section;
-        }
+	{
+	  /* Symbol definition.  */
+	  flags |= BSF_GLOBAL;
+	  if (e->flags & EGSY__V_NORM)
+	    flags |= BSF_FUNCTION;
+	  value = e->value;
+	  sec = e->section;
+	}
       else
-        {
-          /* Symbol reference.  */
-          sec = bfd_und_section_ptr;
-        }
+	{
+	  /* Symbol reference.  */
+	  sec = bfd_und_section_ptr;
+	}
       break;
 
     case EGSD__C_SYMG:
@@ -4681,16 +4840,16 @@ alpha_vms_convert_symbol (bfd *abfd, str
 
       /* ...and dynamic in shared libraries.  */
       if (abfd->flags & DYNAMIC)
-        flags |= BSF_DYNAMIC;
+	flags |= BSF_DYNAMIC;
 
       if (e->flags & EGSY__V_WEAK)
-        flags |= BSF_WEAK;
+	flags |= BSF_WEAK;
 
       if (!(e->flags & EGSY__V_DEF))
-        abort ();
+	abort ();
 
       if (e->flags & EGSY__V_NORM)
-        flags |= BSF_FUNCTION;
+	flags |= BSF_FUNCTION;
 
       value = e->value;
       /* sec = e->section; */
@@ -4718,7 +4877,7 @@ static long
 alpha_vms_get_symtab_upper_bound (bfd *abfd)
 {
   vms_debug2 ((1, "alpha_vms_get_symtab_upper_bound (%p), %d symbols\n",
-               abfd, PRIV (gsd_sym_count)));
+	       abfd, PRIV (gsd_sym_count)));
 
   return (PRIV (gsd_sym_count) + 1) * sizeof (asymbol *);
 }
@@ -4738,30 +4897,30 @@ alpha_vms_canonicalize_symtab (bfd *abfd
   if (PRIV (csymbols) == NULL)
     {
       PRIV (csymbols) = (asymbol **) bfd_alloc
-        (abfd, PRIV (gsd_sym_count) * sizeof (asymbol *));
+	(abfd, PRIV (gsd_sym_count) * sizeof (asymbol *));
 
       /* Traverse table and fill symbols vector.  */
       for (i = 0; i < PRIV (gsd_sym_count); i++)
-        {
-          struct vms_symbol_entry *e = PRIV (syms)[i];
-          asymbol *sym;
-
-          sym = bfd_make_empty_symbol (abfd);
-          if (sym == NULL || !alpha_vms_convert_symbol (abfd, e, sym))
-            {
-              bfd_release (abfd, PRIV (csymbols));
-              PRIV (csymbols) = NULL;
-              return -1;
-            }
+	{
+	  struct vms_symbol_entry *e = PRIV (syms)[i];
+	  asymbol *sym;
+
+	  sym = bfd_make_empty_symbol (abfd);
+	  if (sym == NULL || !alpha_vms_convert_symbol (abfd, e, sym))
+	    {
+	      bfd_release (abfd, PRIV (csymbols));
+	      PRIV (csymbols) = NULL;
+	      return -1;
+	    }
 
-          PRIV (csymbols)[i] = sym;
-        }
+	  PRIV (csymbols)[i] = sym;
+	}
     }
 
   if (symbols != NULL)
     {
       for (i = 0; i < PRIV (gsd_sym_count); i++)
-        symbols[i] = PRIV (csymbols)[i];
+	symbols[i] = PRIV (csymbols)[i];
       symbols[i] = NULL;
     }
 
@@ -4808,277 +4967,283 @@ alpha_vms_slurp_relocs (bfd *abfd)
       /* Skip non-ETIR records.  */
       type = _bfd_vms_get_object_record (abfd);
       if (type == EOBJ__C_EEOM)
-        break;
+	break;
       if (type != EOBJ__C_ETIR)
-        continue;
+	continue;
 
       begin = PRIV (recrd.rec) + 4;
       end = PRIV (recrd.rec) + PRIV (recrd.rec_size);
 
       for (ptr = begin; ptr < end; ptr += length)
-        {
-          int cmd;
+	{
+	  int cmd;
+
+	  cmd = bfd_getl16 (ptr);
+	  length = bfd_getl16 (ptr + 2);
 
-          cmd = bfd_getl16 (ptr);
-          length = bfd_getl16 (ptr + 2);
+	  cur_address = vaddr;
 
-          cur_address = vaddr;
+	  vms_debug2 ((4, "alpha_vms_slurp_relocs: etir %s\n",
+		       _bfd_vms_etir_name (cmd)));
+
+	  switch (cmd)
+	    {
+	    case ETIR__C_STA_GBL: /* ALPHA_R_REFLONG und_section, step 1 */
+				  /* ALPHA_R_REFQUAD und_section, step 1 */
+	      cur_sym = ptr + 4;
+	      prev_cmd = cmd;
+	      continue;
+
+	    case ETIR__C_STA_PQ: /* ALPHA_R_REF{LONG|QUAD}, others part 1 */
+	      cur_psidx = bfd_getl32 (ptr + 4);
+	      cur_addend = bfd_getl64 (ptr + 8);
+	      prev_cmd = cmd;
+	      continue;
 
-          vms_debug2 ((4, "alpha_vms_slurp_relocs: etir %s\n",
-                       _bfd_vms_etir_name (cmd)));
-
-          switch (cmd)
-            {
-            case ETIR__C_STA_GBL: /* ALPHA_R_REFLONG und_section, step 1 */
-                                  /* ALPHA_R_REFQUAD und_section, step 1 */
-              cur_sym = ptr + 4;
-              prev_cmd = cmd;
-              continue;
-
-            case ETIR__C_STA_PQ: /* ALPHA_R_REF{LONG|QUAD}, others part 1 */
-              cur_psidx = bfd_getl32 (ptr + 4);
-              cur_addend = bfd_getl64 (ptr + 8);
-              prev_cmd = cmd;
-              continue;
-
-            case ETIR__C_CTL_SETRB:
-              if (prev_cmd != ETIR__C_STA_PQ)
-                {
+	    case ETIR__C_CTL_SETRB:
+	      if (prev_cmd != ETIR__C_STA_PQ)
+		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-                    (_("Unknown reloc %s + %s"), _bfd_vms_etir_name (prev_cmd),
-                     _bfd_vms_etir_name (cmd));
-                  return FALSE;
-                }
-              cur_psect = cur_psidx;
-              vaddr = cur_addend;
-              cur_psidx = -1;
-              cur_addend = 0;
-              continue;
-
-            case ETIR__C_STA_LW: /* ALPHA_R_REFLONG abs_section, step 1 */
-                                 /* ALPHA_R_REFLONG und_section, step 2 */
-              if (prev_cmd != -1)
-                {
-                  if (prev_cmd != ETIR__C_STA_GBL)
-                    {
+		    (_("Unknown reloc %s + %s"), _bfd_vms_etir_name (prev_cmd),
+		     _bfd_vms_etir_name (cmd));
+		  return FALSE;
+		}
+	      cur_psect = cur_psidx;
+	      vaddr = cur_addend;
+	      cur_psidx = -1;
+	      cur_addend = 0;
+	      continue;
+
+	    case ETIR__C_STA_LW: /* ALPHA_R_REFLONG abs_section, step 1 */
+				 /* ALPHA_R_REFLONG und_section, step 2 */
+	      if (prev_cmd != -1)
+		{
+		  if (prev_cmd != ETIR__C_STA_GBL)
+		    {
 		      _bfd_error_handler
 			/* xgettext:c-format */
-                        (_("Unknown reloc %s + %s"), _bfd_vms_etir_name (cmd),
-                         _bfd_vms_etir_name (ETIR__C_STA_LW));
-                      return FALSE;
-                    }
-                }
-              cur_addend = bfd_getl32 (ptr + 4);
-              prev_cmd = cmd;
-              continue;
-
-            case ETIR__C_STA_QW: /* ALPHA_R_REFQUAD abs_section, step 1 */
-			         /* ALPHA_R_REFQUAD und_section, step 2 */
-              if (prev_cmd != -1 && prev_cmd != ETIR__C_STA_GBL)
-                {
+			(_("Unknown reloc %s + %s"), _bfd_vms_etir_name (cmd),
+			 _bfd_vms_etir_name (ETIR__C_STA_LW));
+		      return FALSE;
+		    }
+		}
+	      cur_addend = bfd_getl32 (ptr + 4);
+	      prev_cmd = cmd;
+	      continue;
+
+	    case ETIR__C_STA_QW: /* ALPHA_R_REFQUAD abs_section, step 1 */
+				 /* ALPHA_R_REFQUAD und_section, step 2 */
+	      if (prev_cmd != -1 && prev_cmd != ETIR__C_STA_GBL)
+		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-                    (_("Unknown reloc %s + %s"), _bfd_vms_etir_name (cmd),
-                     _bfd_vms_etir_name (ETIR__C_STA_QW));
-                  return FALSE;
-                }
-              cur_addend = bfd_getl64 (ptr + 4);
-              prev_cmd = cmd;
-              continue;
-
-            case ETIR__C_STO_LW: /* ALPHA_R_REFLONG und_section, step 4 */
-			         /* ALPHA_R_REFLONG abs_section, step 2 */
-                                 /* ALPHA_R_REFLONG others, step 2 */
-              if (prev_cmd != ETIR__C_OPR_ADD
-                  && prev_cmd != ETIR__C_STA_LW
-                  && prev_cmd != ETIR__C_STA_PQ)
-                {
+		    (_("Unknown reloc %s + %s"), _bfd_vms_etir_name (cmd),
+		     _bfd_vms_etir_name (ETIR__C_STA_QW));
+		  return FALSE;
+		}
+	      cur_addend = bfd_getl64 (ptr + 4);
+	      prev_cmd = cmd;
+	      continue;
+
+	    case ETIR__C_STO_LW: /* ALPHA_R_REFLONG und_section, step 4 */
+				 /* ALPHA_R_REFLONG abs_section, step 2 */
+				 /* ALPHA_R_REFLONG others, step 2 */
+	      if (prev_cmd != ETIR__C_OPR_ADD
+		  && prev_cmd != ETIR__C_STA_LW
+		  && prev_cmd != ETIR__C_STA_PQ)
+		{
 		  /* xgettext:c-format */
 		  _bfd_error_handler (_("Unknown reloc %s + %s"),
 				      _bfd_vms_etir_name (prev_cmd),
 				      _bfd_vms_etir_name (ETIR__C_STO_LW));
-                  return FALSE;
-                }
-              reloc_code = BFD_RELOC_32;
-              break;
-
-            case ETIR__C_STO_QW: /* ALPHA_R_REFQUAD und_section, step 4 */
-			         /* ALPHA_R_REFQUAD abs_section, step 2 */
-              if (prev_cmd != ETIR__C_OPR_ADD && prev_cmd != ETIR__C_STA_QW)
-                {
+		  return FALSE;
+		}
+	      reloc_code = BFD_RELOC_32;
+	      break;
+
+	    case ETIR__C_STO_QW: /* ALPHA_R_REFQUAD und_section, step 4 */
+				 /* ALPHA_R_REFQUAD abs_section, step 2 */
+	      if (prev_cmd != ETIR__C_OPR_ADD && prev_cmd != ETIR__C_STA_QW)
+		{
 		  /* xgettext:c-format */
 		  _bfd_error_handler (_("Unknown reloc %s + %s"),
 				      _bfd_vms_etir_name (prev_cmd),
 				      _bfd_vms_etir_name (ETIR__C_STO_QW));
-                  return FALSE;
-                }
-              reloc_code = BFD_RELOC_64;
-              break;
-
-            case ETIR__C_STO_OFF: /* ALPHA_R_REFQUAD others, step 2 */
-              if (prev_cmd != ETIR__C_STA_PQ)
-                {
+		  return FALSE;
+		}
+	      reloc_code = BFD_RELOC_64;
+	      break;
+
+	    case ETIR__C_STO_OFF: /* ALPHA_R_REFQUAD others, step 2 */
+	      if (prev_cmd != ETIR__C_STA_PQ)
+		{
 		  /* xgettext:c-format */
 		  _bfd_error_handler (_("Unknown reloc %s + %s"),
 				      _bfd_vms_etir_name (prev_cmd),
 				      _bfd_vms_etir_name (ETIR__C_STO_OFF));
-                  return FALSE;
-                }
-              reloc_code = BFD_RELOC_64;
-              break;
-
-            case ETIR__C_OPR_ADD: /* ALPHA_R_REFLONG und_section, step 3 */
-                                  /* ALPHA_R_REFQUAD und_section, step 3 */
-              if (prev_cmd != ETIR__C_STA_LW && prev_cmd != ETIR__C_STA_QW)
-                {
+		  return FALSE;
+		}
+	      reloc_code = BFD_RELOC_64;
+	      break;
+
+	    case ETIR__C_OPR_ADD: /* ALPHA_R_REFLONG und_section, step 3 */
+				  /* ALPHA_R_REFQUAD und_section, step 3 */
+	      if (prev_cmd != ETIR__C_STA_LW && prev_cmd != ETIR__C_STA_QW)
+		{
 		  /* xgettext:c-format */
 		  _bfd_error_handler (_("Unknown reloc %s + %s"),
 				      _bfd_vms_etir_name (prev_cmd),
 				      _bfd_vms_etir_name (ETIR__C_OPR_ADD));
-                  return FALSE;
-                }
-              prev_cmd = ETIR__C_OPR_ADD;
-              continue;
-
-            case ETIR__C_STO_CA: /* ALPHA_R_CODEADDR */
-              reloc_code = BFD_RELOC_ALPHA_CODEADDR;
-              cur_sym = ptr + 4;
-              break;
-
-            case ETIR__C_STO_GBL: /* ALPHA_R_REFQUAD und_section */
-              reloc_code = BFD_RELOC_64;
-              cur_sym = ptr + 4;
-              break;
-
-            case ETIR__C_STO_GBL_LW: /* ALPHA_R_REFLONG und_section */
-              reloc_code = BFD_RELOC_32;
-              cur_sym = ptr + 4;
-              break;
-
-            case ETIR__C_STC_LP_PSB: /* ALPHA_R_LINKAGE */
-              reloc_code = BFD_RELOC_ALPHA_LINKAGE;
-              cur_sym = ptr + 8;
-              break;
-
-            case ETIR__C_STC_NOP_GBL: /* ALPHA_R_NOP */
-              reloc_code = BFD_RELOC_ALPHA_NOP;
-              goto call_reloc;
-
-            case ETIR__C_STC_BSR_GBL: /* ALPHA_R_BSR */
-              reloc_code = BFD_RELOC_ALPHA_BSR;
-              goto call_reloc;
-
-            case ETIR__C_STC_LDA_GBL: /* ALPHA_R_LDA */
-              reloc_code = BFD_RELOC_ALPHA_LDA;
-              goto call_reloc;
-
-            case ETIR__C_STC_BOH_GBL: /* ALPHA_R_BOH */
-              reloc_code = BFD_RELOC_ALPHA_BOH;
-              goto call_reloc;
-
-            call_reloc:
-              cur_sym = ptr + 4 + 32;
-              cur_address = bfd_getl64 (ptr + 4 + 8);
-              cur_addend = bfd_getl64 (ptr + 4 + 24);
-              break;
-
-            case ETIR__C_STO_IMM:
-              vaddr += bfd_getl32 (ptr + 4);
-              continue;
+		  return FALSE;
+		}
+	      prev_cmd = ETIR__C_OPR_ADD;
+	      continue;
+
+	    case ETIR__C_STO_CA: /* ALPHA_R_CODEADDR */
+	      reloc_code = BFD_RELOC_ALPHA_CODEADDR;
+	      cur_sym = ptr + 4;
+	      break;
 
-            default:
+	    case ETIR__C_STO_GBL: /* ALPHA_R_REFQUAD und_section */
+	      reloc_code = BFD_RELOC_64;
+	      cur_sym = ptr + 4;
+	      break;
+
+	    case ETIR__C_STO_GBL_LW: /* ALPHA_R_REFLONG und_section */
+	      reloc_code = BFD_RELOC_32;
+	      cur_sym = ptr + 4;
+	      break;
+
+	    case ETIR__C_STC_LP_PSB: /* ALPHA_R_LINKAGE */
+	      reloc_code = BFD_RELOC_ALPHA_LINKAGE;
+	      cur_sym = ptr + 8;
+	      break;
+
+	    case ETIR__C_STC_NOP_GBL: /* ALPHA_R_NOP */
+	      reloc_code = BFD_RELOC_ALPHA_NOP;
+	      goto call_reloc;
+
+	    case ETIR__C_STC_BSR_GBL: /* ALPHA_R_BSR */
+	      reloc_code = BFD_RELOC_ALPHA_BSR;
+	      goto call_reloc;
+
+	    case ETIR__C_STC_LDA_GBL: /* ALPHA_R_LDA */
+	      reloc_code = BFD_RELOC_ALPHA_LDA;
+	      goto call_reloc;
+
+	    case ETIR__C_STC_BOH_GBL: /* ALPHA_R_BOH */
+	      reloc_code = BFD_RELOC_ALPHA_BOH;
+	      goto call_reloc;
+
+	    call_reloc:
+	      cur_sym = ptr + 4 + 32;
+	      cur_address = bfd_getl64 (ptr + 4 + 8);
+	      cur_addend = bfd_getl64 (ptr + 4 + 24);
+	      break;
+
+	    case ETIR__C_STO_IMM:
+	      vaddr += bfd_getl32 (ptr + 4);
+	      continue;
+
+	    default:
 	      _bfd_error_handler (_("Unknown reloc %s"),
 				  _bfd_vms_etir_name (cmd));
-              return FALSE;
-            }
+	      return FALSE;
+	    }
 
-          {
-            asection *sec;
-            struct vms_section_data_struct *vms_sec;
-            arelent *reloc;
-
-            /* Get section to which the relocation applies.  */
-            if (cur_psect < 0 || cur_psect > (int)PRIV (section_count))
-              {
+	  {
+	    asection *sec;
+	    struct vms_section_data_struct *vms_sec;
+	    arelent *reloc;
+
+	    /* Get section to which the relocation applies.  */
+	    if (cur_psect < 0 || cur_psect > (int)PRIV (section_count))
+	      {
 		_bfd_error_handler (_("Invalid section index in ETIR"));
-                return FALSE;
-              }
+		return FALSE;
+	      }
 
-            sec = PRIV (sections)[cur_psect];
-            if (sec == bfd_abs_section_ptr)
-              {
+	    if (PRIV (sections) == NULL)
+	      return FALSE;
+	    sec = PRIV (sections)[cur_psect];
+	    if (sec == bfd_abs_section_ptr)
+	      {
 		_bfd_error_handler (_("Relocation for non-REL psect"));
-                return FALSE;
-              }
+		return FALSE;
+	      }
 
-            vms_sec = vms_section_data (sec);
+	    vms_sec = vms_section_data (sec);
 
-            /* Allocate a reloc entry.  */
-            if (sec->reloc_count >= vms_sec->reloc_max)
-              {
-                if (vms_sec->reloc_max == 0)
-                  {
-                    vms_sec->reloc_max = 64;
-                    sec->relocation = bfd_zmalloc
-                      (vms_sec->reloc_max * sizeof (arelent));
-                  }
-                else
-                  {
-                    vms_sec->reloc_max *= 2;
-                    sec->relocation = bfd_realloc
-                      (sec->relocation, vms_sec->reloc_max * sizeof (arelent));
-                  }
-              }
-            reloc = &sec->relocation[sec->reloc_count];
-            sec->reloc_count++;
-
-            reloc->howto = bfd_reloc_type_lookup (abfd, reloc_code);
-
-            if (cur_sym != NULL)
-              {
-                unsigned int j;
-                unsigned int symlen = *cur_sym;
-                asymbol **sym;
-
-                /* Linear search.  */
-                symlen = *cur_sym;
-                cur_sym++;
-                sym = NULL;
-
-                for (j = 0; j < PRIV (gsd_sym_count); j++)
-                  if (PRIV (syms)[j]->namelen == symlen
-                      && memcmp (PRIV (syms)[j]->name, cur_sym, symlen) == 0)
-                    {
-                      sym = &PRIV (csymbols)[j];
-                      break;
-                    }
-                if (sym == NULL)
-                  {
+	    /* Allocate a reloc entry.  */
+	    if (sec->reloc_count >= vms_sec->reloc_max)
+	      {
+		if (vms_sec->reloc_max == 0)
+		  {
+		    vms_sec->reloc_max = 64;
+		    sec->relocation = bfd_zmalloc
+		      (vms_sec->reloc_max * sizeof (arelent));
+		  }
+		else
+		  {
+		    vms_sec->reloc_max *= 2;
+		    sec->relocation = bfd_realloc
+		      (sec->relocation, vms_sec->reloc_max * sizeof (arelent));
+		  }
+	      }
+	    reloc = &sec->relocation[sec->reloc_count];
+	    sec->reloc_count++;
+
+	    reloc->howto = bfd_reloc_type_lookup (abfd, reloc_code);
+
+	    if (cur_sym != NULL)
+	      {
+		unsigned int j;
+		unsigned int symlen = *cur_sym;
+		asymbol **sym;
+
+		/* Linear search.  */
+		symlen = *cur_sym;
+		cur_sym++;
+		sym = NULL;
+
+		for (j = 0; j < PRIV (gsd_sym_count); j++)
+		  if (PRIV (syms)[j]->namelen == symlen
+		      && memcmp (PRIV (syms)[j]->name, cur_sym, symlen) == 0)
+		    {
+		      sym = &PRIV (csymbols)[j];
+		      break;
+		    }
+		if (sym == NULL)
+		  {
 		    _bfd_error_handler (_("Unknown symbol in command %s"),
 					_bfd_vms_etir_name (cmd));
-                    reloc->sym_ptr_ptr = NULL;
-                  }
-                else
-                  reloc->sym_ptr_ptr = sym;
-              }
-            else if (cur_psidx >= 0)
-              reloc->sym_ptr_ptr =
-                PRIV (sections)[cur_psidx]->symbol_ptr_ptr;
-            else
-              reloc->sym_ptr_ptr = NULL;
-
-            reloc->address = cur_address;
-            reloc->addend = cur_addend;
-
-            vaddr += bfd_get_reloc_size (reloc->howto);
-          }
-
-          cur_addend = 0;
-          prev_cmd = -1;
-          cur_sym = NULL;
-          cur_psidx = -1;
-        }
+		    reloc->sym_ptr_ptr = NULL;
+		  }
+		else
+		  reloc->sym_ptr_ptr = sym;
+	      }
+	    else if (cur_psidx >= 0)
+	      {
+		if (PRIV (sections) == NULL || cur_psidx >= (int) PRIV (section_count))
+		  return FALSE;
+		reloc->sym_ptr_ptr =
+		  PRIV (sections)[cur_psidx]->symbol_ptr_ptr;
+	      }
+	    else
+	      reloc->sym_ptr_ptr = NULL;
+
+	    reloc->address = cur_address;
+	    reloc->addend = cur_addend;
+
+	    vaddr += bfd_get_reloc_size (reloc->howto);
+	  }
+
+	  cur_addend = 0;
+	  prev_cmd = -1;
+	  cur_sym = NULL;
+	  cur_psidx = -1;
+	}
     }
   vms_debug2 ((3, "alpha_vms_slurp_relocs: result = TRUE\n"));
 
@@ -5101,7 +5266,7 @@ alpha_vms_get_reloc_upper_bound (bfd *ab
 
 static long
 alpha_vms_canonicalize_reloc (bfd *abfd, asection *section, arelent **relptr,
-                              asymbol **symbols ATTRIBUTE_UNUSED)
+			      asymbol **symbols ATTRIBUTE_UNUSED)
 {
   arelent *tblptr;
   int count;
@@ -5118,6 +5283,11 @@ alpha_vms_canonicalize_reloc (bfd *abfd,
   *relptr = (arelent *) NULL;
   return section->reloc_count;
 }
+
+/* Install a new set of internal relocs.  */
+
+#define alpha_vms_set_reloc _bfd_generic_set_reloc
+
 
 /* This is just copied from ecoff-alpha, needs to be fixed probably.  */
 
@@ -5432,7 +5602,7 @@ static reloc_howto_type alpha_howto_tabl
 
 static const struct reloc_howto_struct *
 alpha_vms_bfd_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED,
-                                 bfd_reloc_code_real_type code)
+				 bfd_reloc_code_real_type code)
 {
   int alpha_type;
 
@@ -5465,7 +5635,7 @@ alpha_vms_bfd_reloc_type_lookup (bfd * a
 
 static reloc_howto_type *
 alpha_vms_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
-                                 const char *r_name)
+				 const char *r_name)
 {
   unsigned int i;
 
@@ -5481,11 +5651,11 @@ alpha_vms_bfd_reloc_name_lookup (bfd *ab
 
 static long
 alpha_vms_get_synthetic_symtab (bfd *abfd,
-                                long symcount ATTRIBUTE_UNUSED,
-                                asymbol **usyms ATTRIBUTE_UNUSED,
-                                long dynsymcount ATTRIBUTE_UNUSED,
-                                asymbol **dynsyms ATTRIBUTE_UNUSED,
-                                asymbol **ret)
+				long symcount ATTRIBUTE_UNUSED,
+				asymbol **usyms ATTRIBUTE_UNUSED,
+				long dynsymcount ATTRIBUTE_UNUSED,
+				asymbol **dynsyms ATTRIBUTE_UNUSED,
+				asymbol **ret)
 {
   asymbol *syms;
   unsigned int i;
@@ -5513,26 +5683,26 @@ alpha_vms_get_synthetic_symtab (bfd *abf
       sec = NULL;
 
       switch (e->typ)
-        {
-        case EGSD__C_SYM:
-        case EGSD__C_SYMG:
-          if ((e->flags & EGSY__V_DEF) && (e->flags & EGSY__V_NORM))
-            {
-              value = e->code_value;
-              sec = e->code_section;
-            }
-          else
-            continue;
-          break;
-
-        default:
-          continue;
-        }
+	{
+	case EGSD__C_SYM:
+	case EGSD__C_SYMG:
+	  if ((e->flags & EGSY__V_DEF) && (e->flags & EGSY__V_NORM))
+	    {
+	      value = e->code_value;
+	      sec = e->code_section;
+	    }
+	  else
+	    continue;
+	  break;
+
+	default:
+	  continue;
+	}
 
       l = strlen (name);
       sname = bfd_alloc (abfd, l + 5);
       if (sname == NULL)
-        return FALSE;
+	return FALSE;
       memcpy (sname, name, l);
       memcpy (sname + l, "..en", 5);
 
@@ -5567,63 +5737,95 @@ evax_bfd_print_emh (FILE *file, unsigned
 {
   struct vms_emh_common *emh = (struct vms_emh_common *)rec;
   unsigned int subtype;
+  int extra;
 
-  subtype = (unsigned)bfd_getl16 (emh->subtyp);
+  subtype = (unsigned) bfd_getl16 (emh->subtyp);
 
   /* xgettext:c-format */
   fprintf (file, _("  EMH %u (len=%u): "), subtype, rec_len);
 
+  /* PR 21618: Check for invalid lengths.  */
+  if (rec_len < sizeof (* emh))
+    {
+      fprintf (file, _("   Error: The length is less than the length of an EMH record\n"));
+      return;
+    }
+  extra = rec_len - sizeof (struct vms_emh_common);
+
   switch (subtype)
     {
     case EMH__C_MHD:
       {
-        struct vms_emh_mhd *mhd = (struct vms_emh_mhd *)rec;
-        const char *name;
+	struct vms_emh_mhd *mhd = (struct vms_emh_mhd *) rec;
+	const char * name;
+	const char * nextname;
+	const char * maxname;
 
-        fprintf (file, _("Module header\n"));
-        fprintf (file, _("   structure level: %u\n"), mhd->strlvl);
-        fprintf (file, _("   max record size: %u\n"),
-                 (unsigned)bfd_getl32 (mhd->recsiz));
-        name = (char *)(mhd + 1);
-        fprintf (file, _("   module name    : %.*s\n"), name[0], name + 1);
-        name += name[0] + 1;
-        fprintf (file, _("   module version : %.*s\n"), name[0], name + 1);
-        name += name[0] + 1;
-        fprintf (file, _("   compile date   : %.17s\n"), name);
+	/* PR 21840: Check for invalid lengths.  */
+	if (rec_len < sizeof (* mhd))
+	  {
+	    fprintf (file, _("   Error: The record length is less than the size of an EMH_MHD record\n"));
+	    return;
+	  }
+	fprintf (file, _("Module header\n"));
+	fprintf (file, _("   structure level: %u\n"), mhd->strlvl);
+	fprintf (file, _("   max record size: %u\n"),
+		 (unsigned) bfd_getl32 (mhd->recsiz));
+	name = (char *)(mhd + 1);
+	maxname = (char *) rec + rec_len;
+	if (name > maxname - 2)
+	  {
+	    fprintf (file, _("   Error: The module name is missing\n"));
+	    return;
+	  }
+	nextname = name + name[0] + 1;
+	if (nextname >= maxname)
+	  {
+	    fprintf (file, _("   Error: The module name is too long\n"));
+	    return;
+	  }
+	fprintf (file, _("   module name    : %.*s\n"), name[0], name + 1);
+	name = nextname;
+	if (name > maxname - 2)
+	  {
+	    fprintf (file, _("   Error: The module version is missing\n"));
+	    return;
+	  }
+	nextname = name + name[0] + 1;
+	if (nextname >= maxname)
+	  {
+	    fprintf (file, _("   Error: The module version is too long\n"));
+	    return;
+	  }
+	fprintf (file, _("   module version : %.*s\n"), name[0], name + 1);
+	name = nextname;
+	if ((maxname - name) < 17 && maxname[-1] != 0)
+	  fprintf (file, _("   Error: The compile date is truncated\n"));
+	else
+	  fprintf (file, _("   compile date   : %.17s\n"), name);
       }
       break;
+
     case EMH__C_LNM:
-      {
-        fprintf (file, _("Language Processor Name\n"));
-        fprintf (file, _("   language name: %.*s\n"),
-                 (int)(rec_len - sizeof (struct vms_emh_common)),
-                 (char *)rec + sizeof (struct vms_emh_common));
-      }
+      fprintf (file, _("Language Processor Name\n"));
+      fprintf (file, _("   language name: %.*s\n"), extra, (char *)(emh + 1));
       break;
+
     case EMH__C_SRC:
-      {
-        fprintf (file, _("Source Files Header\n"));
-        fprintf (file, _("   file: %.*s\n"),
-                 (int)(rec_len - sizeof (struct vms_emh_common)),
-                 (char *)rec + sizeof (struct vms_emh_common));
-      }
+      fprintf (file, _("Source Files Header\n"));
+      fprintf (file, _("   file: %.*s\n"), extra, (char *)(emh + 1));
       break;
+
     case EMH__C_TTL:
-      {
-        fprintf (file, _("Title Text Header\n"));
-        fprintf (file, _("   title: %.*s\n"),
-                 (int)(rec_len - sizeof (struct vms_emh_common)),
-                 (char *)rec + sizeof (struct vms_emh_common));
-      }
+      fprintf (file, _("Title Text Header\n"));
+      fprintf (file, _("   title: %.*s\n"), extra, (char *)(emh + 1));
       break;
+
     case EMH__C_CPR:
-      {
-        fprintf (file, _("Copyright Header\n"));
-        fprintf (file, _("   copyright: %.*s\n"),
-                 (int)(rec_len - sizeof (struct vms_emh_common)),
-                 (char *)rec + sizeof (struct vms_emh_common));
-      }
+      fprintf (file, _("Copyright Header\n"));
+      fprintf (file, _("   copyright: %.*s\n"), extra, (char *)(emh + 1));
       break;
+
     default:
       fprintf (file, _("unhandled emh subtype %u\n"), subtype);
       break;
@@ -5636,17 +5838,25 @@ evax_bfd_print_eeom (FILE *file, unsigne
   struct vms_eeom *eeom = (struct vms_eeom *)rec;
 
   fprintf (file, _("  EEOM (len=%u):\n"), rec_len);
+
+  /* PR 21618: Check for invalid lengths.  */
+  if (rec_len < sizeof (* eeom))
+    {
+      fprintf (file, _("   Error: The length is less than the length of an EEOM record\n"));
+      return;
+    }
+
   fprintf (file, _("   number of cond linkage pairs: %u\n"),
-           (unsigned)bfd_getl32 (eeom->total_lps));
+	   (unsigned)bfd_getl32 (eeom->total_lps));
   fprintf (file, _("   completion code: %u\n"),
-           (unsigned)bfd_getl16 (eeom->comcod));
+	   (unsigned)bfd_getl16 (eeom->comcod));
   if (rec_len > 10)
     {
       fprintf (file, _("   transfer addr flags: 0x%02x\n"), eeom->tfrflg);
       fprintf (file, _("   transfer addr psect: %u\n"),
-               (unsigned)bfd_getl32 (eeom->psindx));
+	       (unsigned)bfd_getl32 (eeom->psindx));
       fprintf (file, _("   transfer address   : 0x%08x\n"),
-               (unsigned)bfd_getl32 (eeom->tfradr));
+	       (unsigned)bfd_getl32 (eeom->tfradr));
     }
 }
 
@@ -5722,183 +5932,189 @@ evax_bfd_print_egsd (FILE *file, unsigne
 
       /* xgettext:c-format */
       fprintf (file, _("  EGSD entry %2u (type: %u, len: %u): "),
-               n, type, len);
+	       n, type, len);
       n++;
 
+      if (off + len > rec_len || off + len < off)
+	{
+	  fprintf (file, _("   Error: length larger than remaining space in record\n"));
+	  return;
+	}
+
       switch (type)
-        {
-        case EGSD__C_PSC:
-          {
-            struct vms_egps *egps = (struct vms_egps *)e;
-            unsigned int flags = bfd_getl16 (egps->flags);
-            unsigned int l;
-
-            fprintf (file, _("PSC - Program section definition\n"));
-            fprintf (file, _("   alignment  : 2**%u\n"), egps->align);
-            fprintf (file, _("   flags      : 0x%04x"), flags);
-            evax_bfd_print_egsd_flags (file, flags);
-            fputc ('\n', file);
-            l = bfd_getl32 (egps->alloc);
-            fprintf (file, _("   alloc (len): %u (0x%08x)\n"), l, l);
-            fprintf (file, _("   name       : %.*s\n"),
-                     egps->namlng, egps->name);
-          }
-          break;
-        case EGSD__C_SPSC:
-          {
-            struct vms_esgps *esgps = (struct vms_esgps *)e;
-            unsigned int flags = bfd_getl16 (esgps->flags);
-            unsigned int l;
-
-            fprintf (file, _("SPSC - Shared Image Program section def\n"));
-            fprintf (file, _("   alignment  : 2**%u\n"), esgps->align);
-            fprintf (file, _("   flags      : 0x%04x"), flags);
-            evax_bfd_print_egsd_flags (file, flags);
-            fputc ('\n', file);
-            l = bfd_getl32 (esgps->alloc);
-            fprintf (file, _("   alloc (len)   : %u (0x%08x)\n"), l, l);
-            fprintf (file, _("   image offset  : 0x%08x\n"),
-                     (unsigned int)bfd_getl32 (esgps->base));
-            fprintf (file, _("   symvec offset : 0x%08x\n"),
-                     (unsigned int)bfd_getl32 (esgps->value));
-            fprintf (file, _("   name          : %.*s\n"),
-                     esgps->namlng, esgps->name);
-          }
-          break;
-        case EGSD__C_SYM:
-          {
-            struct vms_egsy *egsy = (struct vms_egsy *)e;
-            unsigned int flags = bfd_getl16 (egsy->flags);
-
-            if (flags & EGSY__V_DEF)
-              {
-                struct vms_esdf *esdf = (struct vms_esdf *)e;
-
-                fprintf (file, _("SYM - Global symbol definition\n"));
-                fprintf (file, _("   flags: 0x%04x"), flags);
-                exav_bfd_print_egsy_flags (flags, file);
-                fputc ('\n', file);
-                fprintf (file, _("   psect offset: 0x%08x\n"),
-                         (unsigned)bfd_getl32 (esdf->value));
-                if (flags & EGSY__V_NORM)
-                  {
-                    fprintf (file, _("   code address: 0x%08x\n"),
-                             (unsigned)bfd_getl32 (esdf->code_address));
-                    fprintf (file, _("   psect index for entry point : %u\n"),
-                             (unsigned)bfd_getl32 (esdf->ca_psindx));
-                  }
-                fprintf (file, _("   psect index : %u\n"),
-                         (unsigned)bfd_getl32 (esdf->psindx));
-                fprintf (file, _("   name        : %.*s\n"),
-                         esdf->namlng, esdf->name);
-              }
-            else
-              {
-                struct vms_esrf *esrf = (struct vms_esrf *)e;
-
-                fprintf (file, _("SYM - Global symbol reference\n"));
-                fprintf (file, _("   name       : %.*s\n"),
-                         esrf->namlng, esrf->name);
-              }
-          }
-          break;
-        case EGSD__C_IDC:
-          {
-            struct vms_eidc *eidc = (struct vms_eidc *)e;
-            unsigned int flags = bfd_getl32 (eidc->flags);
-            unsigned char *p;
-
-            fprintf (file, _("IDC - Ident Consistency check\n"));
-            fprintf (file, _("   flags         : 0x%08x"), flags);
-            if (flags & EIDC__V_BINIDENT)
-              fputs (" BINDENT", file);
-            fputc ('\n', file);
-            fprintf (file, _("   id match      : %x\n"),
-                     (flags >> EIDC__V_IDMATCH_SH) & EIDC__V_IDMATCH_MASK);
-            fprintf (file, _("   error severity: %x\n"),
-                     (flags >> EIDC__V_ERRSEV_SH) & EIDC__V_ERRSEV_MASK);
-            p = eidc->name;
-            fprintf (file, _("   entity name   : %.*s\n"), p[0], p + 1);
-            p += 1 + p[0];
-            fprintf (file, _("   object name   : %.*s\n"), p[0], p + 1);
-            p += 1 + p[0];
-            if (flags & EIDC__V_BINIDENT)
-              fprintf (file, _("   binary ident  : 0x%08x\n"),
-                       (unsigned)bfd_getl32 (p + 1));
-            else
-              fprintf (file, _("   ascii ident   : %.*s\n"), p[0], p + 1);
-          }
-          break;
-        case EGSD__C_SYMG:
-          {
-            struct vms_egst *egst = (struct vms_egst *)e;
-            unsigned int flags = bfd_getl16 (egst->header.flags);
-
-            fprintf (file, _("SYMG - Universal symbol definition\n"));
-            fprintf (file, _("   flags: 0x%04x"), flags);
-            exav_bfd_print_egsy_flags (flags, file);
-            fputc ('\n', file);
-            fprintf (file, _("   symbol vector offset: 0x%08x\n"),
-                     (unsigned)bfd_getl32 (egst->value));
-            fprintf (file, _("   entry point: 0x%08x\n"),
-                     (unsigned)bfd_getl32 (egst->lp_1));
-            fprintf (file, _("   proc descr : 0x%08x\n"),
-                     (unsigned)bfd_getl32 (egst->lp_2));
-            fprintf (file, _("   psect index: %u\n"),
-                     (unsigned)bfd_getl32 (egst->psindx));
-            fprintf (file, _("   name       : %.*s\n"),
-                     egst->namlng, egst->name);
-          }
-          break;
-        case EGSD__C_SYMV:
-          {
-            struct vms_esdfv *esdfv = (struct vms_esdfv *)e;
-            unsigned int flags = bfd_getl16 (esdfv->flags);
-
-            fprintf (file, _("SYMV - Vectored symbol definition\n"));
-            fprintf (file, _("   flags: 0x%04x"), flags);
-            exav_bfd_print_egsy_flags (flags, file);
-            fputc ('\n', file);
-            fprintf (file, _("   vector      : 0x%08x\n"),
-                     (unsigned)bfd_getl32 (esdfv->vector));
-            fprintf (file, _("   psect offset: %u\n"),
-                     (unsigned)bfd_getl32 (esdfv->value));
-            fprintf (file, _("   psect index : %u\n"),
-                     (unsigned)bfd_getl32 (esdfv->psindx));
-            fprintf (file, _("   name        : %.*s\n"),
-                     esdfv->namlng, esdfv->name);
-          }
-          break;
-        case EGSD__C_SYMM:
-          {
-            struct vms_esdfm *esdfm = (struct vms_esdfm *)e;
-            unsigned int flags = bfd_getl16 (esdfm->flags);
-
-            fprintf (file, _("SYMM - Global symbol definition with version\n"));
-            fprintf (file, _("   flags: 0x%04x"), flags);
-            exav_bfd_print_egsy_flags (flags, file);
-            fputc ('\n', file);
-            fprintf (file, _("   version mask: 0x%08x\n"),
-                     (unsigned)bfd_getl32 (esdfm->version_mask));
-            fprintf (file, _("   psect offset: %u\n"),
-                     (unsigned)bfd_getl32 (esdfm->value));
-            fprintf (file, _("   psect index : %u\n"),
-                     (unsigned)bfd_getl32 (esdfm->psindx));
-            fprintf (file, _("   name        : %.*s\n"),
-                     esdfm->namlng, esdfm->name);
-          }
-          break;
-        default:
-          fprintf (file, _("unhandled egsd entry type %u\n"), type);
-          break;
-        }
+	{
+	case EGSD__C_PSC:
+	  {
+	    struct vms_egps *egps = (struct vms_egps *)e;
+	    unsigned int flags = bfd_getl16 (egps->flags);
+	    unsigned int l;
+
+	    fprintf (file, _("PSC - Program section definition\n"));
+	    fprintf (file, _("   alignment  : 2**%u\n"), egps->align);
+	    fprintf (file, _("   flags      : 0x%04x"), flags);
+	    evax_bfd_print_egsd_flags (file, flags);
+	    fputc ('\n', file);
+	    l = bfd_getl32 (egps->alloc);
+	    fprintf (file, _("   alloc (len): %u (0x%08x)\n"), l, l);
+	    fprintf (file, _("   name       : %.*s\n"),
+		     egps->namlng, egps->name);
+	  }
+	  break;
+	case EGSD__C_SPSC:
+	  {
+	    struct vms_esgps *esgps = (struct vms_esgps *)e;
+	    unsigned int flags = bfd_getl16 (esgps->flags);
+	    unsigned int l;
+
+	    fprintf (file, _("SPSC - Shared Image Program section def\n"));
+	    fprintf (file, _("   alignment  : 2**%u\n"), esgps->align);
+	    fprintf (file, _("   flags      : 0x%04x"), flags);
+	    evax_bfd_print_egsd_flags (file, flags);
+	    fputc ('\n', file);
+	    l = bfd_getl32 (esgps->alloc);
+	    fprintf (file, _("   alloc (len)   : %u (0x%08x)\n"), l, l);
+	    fprintf (file, _("   image offset  : 0x%08x\n"),
+		     (unsigned int)bfd_getl32 (esgps->base));
+	    fprintf (file, _("   symvec offset : 0x%08x\n"),
+		     (unsigned int)bfd_getl32 (esgps->value));
+	    fprintf (file, _("   name          : %.*s\n"),
+		     esgps->namlng, esgps->name);
+	  }
+	  break;
+	case EGSD__C_SYM:
+	  {
+	    struct vms_egsy *egsy = (struct vms_egsy *)e;
+	    unsigned int flags = bfd_getl16 (egsy->flags);
+
+	    if (flags & EGSY__V_DEF)
+	      {
+		struct vms_esdf *esdf = (struct vms_esdf *)e;
+
+		fprintf (file, _("SYM - Global symbol definition\n"));
+		fprintf (file, _("   flags: 0x%04x"), flags);
+		exav_bfd_print_egsy_flags (flags, file);
+		fputc ('\n', file);
+		fprintf (file, _("   psect offset: 0x%08x\n"),
+			 (unsigned)bfd_getl32 (esdf->value));
+		if (flags & EGSY__V_NORM)
+		  {
+		    fprintf (file, _("   code address: 0x%08x\n"),
+			     (unsigned)bfd_getl32 (esdf->code_address));
+		    fprintf (file, _("   psect index for entry point : %u\n"),
+			     (unsigned)bfd_getl32 (esdf->ca_psindx));
+		  }
+		fprintf (file, _("   psect index : %u\n"),
+			 (unsigned)bfd_getl32 (esdf->psindx));
+		fprintf (file, _("   name        : %.*s\n"),
+			 esdf->namlng, esdf->name);
+	      }
+	    else
+	      {
+		struct vms_esrf *esrf = (struct vms_esrf *)e;
+
+		fprintf (file, _("SYM - Global symbol reference\n"));
+		fprintf (file, _("   name       : %.*s\n"),
+			 esrf->namlng, esrf->name);
+	      }
+	  }
+	  break;
+	case EGSD__C_IDC:
+	  {
+	    struct vms_eidc *eidc = (struct vms_eidc *)e;
+	    unsigned int flags = bfd_getl32 (eidc->flags);
+	    unsigned char *p;
+
+	    fprintf (file, _("IDC - Ident Consistency check\n"));
+	    fprintf (file, _("   flags         : 0x%08x"), flags);
+	    if (flags & EIDC__V_BINIDENT)
+	      fputs (" BINDENT", file);
+	    fputc ('\n', file);
+	    fprintf (file, _("   id match      : %x\n"),
+		     (flags >> EIDC__V_IDMATCH_SH) & EIDC__V_IDMATCH_MASK);
+	    fprintf (file, _("   error severity: %x\n"),
+		     (flags >> EIDC__V_ERRSEV_SH) & EIDC__V_ERRSEV_MASK);
+	    p = eidc->name;
+	    fprintf (file, _("   entity name   : %.*s\n"), p[0], p + 1);
+	    p += 1 + p[0];
+	    fprintf (file, _("   object name   : %.*s\n"), p[0], p + 1);
+	    p += 1 + p[0];
+	    if (flags & EIDC__V_BINIDENT)
+	      fprintf (file, _("   binary ident  : 0x%08x\n"),
+		       (unsigned)bfd_getl32 (p + 1));
+	    else
+	      fprintf (file, _("   ascii ident   : %.*s\n"), p[0], p + 1);
+	  }
+	  break;
+	case EGSD__C_SYMG:
+	  {
+	    struct vms_egst *egst = (struct vms_egst *)e;
+	    unsigned int flags = bfd_getl16 (egst->header.flags);
+
+	    fprintf (file, _("SYMG - Universal symbol definition\n"));
+	    fprintf (file, _("   flags: 0x%04x"), flags);
+	    exav_bfd_print_egsy_flags (flags, file);
+	    fputc ('\n', file);
+	    fprintf (file, _("   symbol vector offset: 0x%08x\n"),
+		     (unsigned)bfd_getl32 (egst->value));
+	    fprintf (file, _("   entry point: 0x%08x\n"),
+		     (unsigned)bfd_getl32 (egst->lp_1));
+	    fprintf (file, _("   proc descr : 0x%08x\n"),
+		     (unsigned)bfd_getl32 (egst->lp_2));
+	    fprintf (file, _("   psect index: %u\n"),
+		     (unsigned)bfd_getl32 (egst->psindx));
+	    fprintf (file, _("   name       : %.*s\n"),
+		     egst->namlng, egst->name);
+	  }
+	  break;
+	case EGSD__C_SYMV:
+	  {
+	    struct vms_esdfv *esdfv = (struct vms_esdfv *)e;
+	    unsigned int flags = bfd_getl16 (esdfv->flags);
+
+	    fprintf (file, _("SYMV - Vectored symbol definition\n"));
+	    fprintf (file, _("   flags: 0x%04x"), flags);
+	    exav_bfd_print_egsy_flags (flags, file);
+	    fputc ('\n', file);
+	    fprintf (file, _("   vector      : 0x%08x\n"),
+		     (unsigned)bfd_getl32 (esdfv->vector));
+	    fprintf (file, _("   psect offset: %u\n"),
+		     (unsigned)bfd_getl32 (esdfv->value));
+	    fprintf (file, _("   psect index : %u\n"),
+		     (unsigned)bfd_getl32 (esdfv->psindx));
+	    fprintf (file, _("   name        : %.*s\n"),
+		     esdfv->namlng, esdfv->name);
+	  }
+	  break;
+	case EGSD__C_SYMM:
+	  {
+	    struct vms_esdfm *esdfm = (struct vms_esdfm *)e;
+	    unsigned int flags = bfd_getl16 (esdfm->flags);
+
+	    fprintf (file, _("SYMM - Global symbol definition with version\n"));
+	    fprintf (file, _("   flags: 0x%04x"), flags);
+	    exav_bfd_print_egsy_flags (flags, file);
+	    fputc ('\n', file);
+	    fprintf (file, _("   version mask: 0x%08x\n"),
+		     (unsigned)bfd_getl32 (esdfm->version_mask));
+	    fprintf (file, _("   psect offset: %u\n"),
+		     (unsigned)bfd_getl32 (esdfm->value));
+	    fprintf (file, _("   psect index : %u\n"),
+		     (unsigned)bfd_getl32 (esdfm->psindx));
+	    fprintf (file, _("   name        : %.*s\n"),
+		     esdfm->namlng, esdfm->name);
+	  }
+	  break;
+	default:
+	  fprintf (file, _("unhandled egsd entry type %u\n"), type);
+	  break;
+	}
       off += len;
     }
 }
 
 static void
 evax_bfd_print_hex (FILE *file, const char *pfx,
-                    const unsigned char *buf, unsigned int len)
+		    const unsigned char *buf, unsigned int len)
 {
   unsigned int i;
   unsigned int n;
@@ -5907,14 +6123,14 @@ evax_bfd_print_hex (FILE *file, const ch
   for (i = 0; i < len; i++)
     {
       if (n == 0)
-        fputs (pfx, file);
+	fputs (pfx, file);
       fprintf (file, " %02x", buf[i]);
       n++;
       if (n == 16)
-        {
-          n = 0;
-          fputc ('\n', file);
-        }
+	{
+	  n = 0;
+	  fputc ('\n', file);
+	}
     }
   if (n != 0)
     fputc ('\n', file);
@@ -5925,39 +6141,39 @@ evax_bfd_print_etir_stc_ir (FILE *file, 
 {
   /* xgettext:c-format */
   fprintf (file, _("    linkage index: %u, replacement insn: 0x%08x\n"),
-           (unsigned)bfd_getl32 (buf),
-           (unsigned)bfd_getl32 (buf + 16));
+	   (unsigned)bfd_getl32 (buf),
+	   (unsigned)bfd_getl32 (buf + 16));
   /* xgettext:c-format */
   fprintf (file, _("    psect idx 1: %u, offset 1: 0x%08x %08x\n"),
-           (unsigned)bfd_getl32 (buf + 4),
-           (unsigned)bfd_getl32 (buf + 12),
-           (unsigned)bfd_getl32 (buf + 8));
+	   (unsigned)bfd_getl32 (buf + 4),
+	   (unsigned)bfd_getl32 (buf + 12),
+	   (unsigned)bfd_getl32 (buf + 8));
   /* xgettext:c-format */
   fprintf (file, _("    psect idx 2: %u, offset 2: 0x%08x %08x\n"),
-           (unsigned)bfd_getl32 (buf + 20),
-           (unsigned)bfd_getl32 (buf + 28),
-           (unsigned)bfd_getl32 (buf + 24));
+	   (unsigned)bfd_getl32 (buf + 20),
+	   (unsigned)bfd_getl32 (buf + 28),
+	   (unsigned)bfd_getl32 (buf + 24));
   if (is_ps)
     /* xgettext:c-format */
     fprintf (file, _("    psect idx 3: %u, offset 3: 0x%08x %08x\n"),
-             (unsigned)bfd_getl32 (buf + 32),
-             (unsigned)bfd_getl32 (buf + 40),
-             (unsigned)bfd_getl32 (buf + 36));
+	     (unsigned)bfd_getl32 (buf + 32),
+	     (unsigned)bfd_getl32 (buf + 40),
+	     (unsigned)bfd_getl32 (buf + 36));
   else
     fprintf (file, _("    global name: %.*s\n"), buf[32], buf + 33);
 }
 
 static void
 evax_bfd_print_etir (FILE *file, const char *name,
-                     unsigned char *rec, unsigned int rec_len)
+		     unsigned char *rec, unsigned int rec_len)
 {
   unsigned int off = sizeof (struct vms_egsd);
   unsigned int sec_len = 0;
 
   /* xgettext:c-format */
   fprintf (file, _("  %s (len=%u+%u):\n"), name,
-           (unsigned)(rec_len - sizeof (struct vms_eobjrec)),
-           (unsigned)sizeof (struct vms_eobjrec));
+	   (unsigned)(rec_len - sizeof (struct vms_eobjrec)),
+	   (unsigned)sizeof (struct vms_eobjrec));
 
   for (off = sizeof (struct vms_eobjrec); off < rec_len; )
     {
@@ -5970,254 +6186,260 @@ evax_bfd_print_etir (FILE *file, const c
       size = bfd_getl16 (etir->size);
       buf = rec + off + sizeof (struct vms_etir);
 
+      if (off + size > rec_len || off + size < off)
+	{
+	  fprintf (file, _("   Error: length larger than remaining space in record\n"));
+	  return;
+	}
+
       /* xgettext:c-format */
       fprintf (file, _("   (type: %3u, size: 4+%3u): "), type, size - 4);
       switch (type)
-        {
-        case ETIR__C_STA_GBL:
-          fprintf (file, _("STA_GBL (stack global) %.*s\n"),
-                   buf[0], buf + 1);
-          break;
-        case ETIR__C_STA_LW:
-          fprintf (file, _("STA_LW (stack longword) 0x%08x\n"),
-                   (unsigned)bfd_getl32 (buf));
-          break;
-        case ETIR__C_STA_QW:
-          fprintf (file, _("STA_QW (stack quadword) 0x%08x %08x\n"),
-                   (unsigned)bfd_getl32 (buf + 4),
-                   (unsigned)bfd_getl32 (buf + 0));
-          break;
-        case ETIR__C_STA_PQ:
-          fprintf (file, _("STA_PQ (stack psect base + offset)\n"));
+	{
+	case ETIR__C_STA_GBL:
+	  fprintf (file, _("STA_GBL (stack global) %.*s\n"),
+		   buf[0], buf + 1);
+	  break;
+	case ETIR__C_STA_LW:
+	  fprintf (file, _("STA_LW (stack longword) 0x%08x\n"),
+		   (unsigned)bfd_getl32 (buf));
+	  break;
+	case ETIR__C_STA_QW:
+	  fprintf (file, _("STA_QW (stack quadword) 0x%08x %08x\n"),
+		   (unsigned)bfd_getl32 (buf + 4),
+		   (unsigned)bfd_getl32 (buf + 0));
+	  break;
+	case ETIR__C_STA_PQ:
+	  fprintf (file, _("STA_PQ (stack psect base + offset)\n"));
 	  /* xgettext:c-format */
-          fprintf (file, _("    psect: %u, offset: 0x%08x %08x\n"),
-                   (unsigned)bfd_getl32 (buf + 0),
-                   (unsigned)bfd_getl32 (buf + 8),
-                   (unsigned)bfd_getl32 (buf + 4));
-          break;
-        case ETIR__C_STA_LI:
-          fprintf (file, _("STA_LI (stack literal)\n"));
-          break;
-        case ETIR__C_STA_MOD:
-          fprintf (file, _("STA_MOD (stack module)\n"));
-          break;
-        case ETIR__C_STA_CKARG:
-          fprintf (file, _("STA_CKARG (compare procedure argument)\n"));
-          break;
-
-        case ETIR__C_STO_B:
-          fprintf (file, _("STO_B (store byte)\n"));
-          break;
-        case ETIR__C_STO_W:
-          fprintf (file, _("STO_W (store word)\n"));
-          break;
-        case ETIR__C_STO_LW:
-          fprintf (file, _("STO_LW (store longword)\n"));
-          break;
-        case ETIR__C_STO_QW:
-          fprintf (file, _("STO_QW (store quadword)\n"));
-          break;
-        case ETIR__C_STO_IMMR:
-          {
-            unsigned int len = bfd_getl32 (buf);
-            fprintf (file,
-                     _("STO_IMMR (store immediate repeat) %u bytes\n"),
-                     len);
-            evax_bfd_print_hex (file, "   ", buf + 4, len);
-            sec_len += len;
-          }
-          break;
-        case ETIR__C_STO_GBL:
-          fprintf (file, _("STO_GBL (store global) %.*s\n"),
-                   buf[0], buf + 1);
-          break;
-        case ETIR__C_STO_CA:
-          fprintf (file, _("STO_CA (store code address) %.*s\n"),
-                   buf[0], buf + 1);
-          break;
-        case ETIR__C_STO_RB:
-          fprintf (file, _("STO_RB (store relative branch)\n"));
-          break;
-        case ETIR__C_STO_AB:
-          fprintf (file, _("STO_AB (store absolute branch)\n"));
-          break;
-        case ETIR__C_STO_OFF:
-          fprintf (file, _("STO_OFF (store offset to psect)\n"));
-          break;
-        case ETIR__C_STO_IMM:
-          {
-            unsigned int len = bfd_getl32 (buf);
-            fprintf (file,
-                     _("STO_IMM (store immediate) %u bytes\n"),
-                     len);
-            evax_bfd_print_hex (file, "   ", buf + 4, len);
-            sec_len += len;
-          }
-          break;
-        case ETIR__C_STO_GBL_LW:
-          fprintf (file, _("STO_GBL_LW (store global longword) %.*s\n"),
-                   buf[0], buf + 1);
-          break;
-        case ETIR__C_STO_LP_PSB:
-          fprintf (file, _("STO_OFF (store LP with procedure signature)\n"));
-          break;
-        case ETIR__C_STO_HINT_GBL:
-          fprintf (file, _("STO_BR_GBL (store branch global) *todo*\n"));
-          break;
-        case ETIR__C_STO_HINT_PS:
-          fprintf (file, _("STO_BR_PS (store branch psect + offset) *todo*\n"));
-          break;
-
-        case ETIR__C_OPR_NOP:
-          fprintf (file, _("OPR_NOP (no-operation)\n"));
-          break;
-        case ETIR__C_OPR_ADD:
-          fprintf (file, _("OPR_ADD (add)\n"));
-          break;
-        case ETIR__C_OPR_SUB:
-          fprintf (file, _("OPR_SUB (substract)\n"));
-          break;
-        case ETIR__C_OPR_MUL:
-          fprintf (file, _("OPR_MUL (multiply)\n"));
-          break;
-        case ETIR__C_OPR_DIV:
-          fprintf (file, _("OPR_DIV (divide)\n"));
-          break;
-        case ETIR__C_OPR_AND:
-          fprintf (file, _("OPR_AND (logical and)\n"));
-          break;
-        case ETIR__C_OPR_IOR:
-          fprintf (file, _("OPR_IOR (logical inclusive or)\n"));
-          break;
-        case ETIR__C_OPR_EOR:
-          fprintf (file, _("OPR_EOR (logical exclusive or)\n"));
-          break;
-        case ETIR__C_OPR_NEG:
-          fprintf (file, _("OPR_NEG (negate)\n"));
-          break;
-        case ETIR__C_OPR_COM:
-          fprintf (file, _("OPR_COM (complement)\n"));
-          break;
-        case ETIR__C_OPR_INSV:
-          fprintf (file, _("OPR_INSV (insert field)\n"));
-          break;
-        case ETIR__C_OPR_ASH:
-          fprintf (file, _("OPR_ASH (arithmetic shift)\n"));
-          break;
-        case ETIR__C_OPR_USH:
-          fprintf (file, _("OPR_USH (unsigned shift)\n"));
-          break;
-        case ETIR__C_OPR_ROT:
-          fprintf (file, _("OPR_ROT (rotate)\n"));
-          break;
-        case ETIR__C_OPR_SEL:
-          fprintf (file, _("OPR_SEL (select)\n"));
-          break;
-        case ETIR__C_OPR_REDEF:
-          fprintf (file, _("OPR_REDEF (redefine symbol to curr location)\n"));
-          break;
-        case ETIR__C_OPR_DFLIT:
-          fprintf (file, _("OPR_REDEF (define a literal)\n"));
-          break;
-
-        case ETIR__C_STC_LP:
-          fprintf (file, _("STC_LP (store cond linkage pair)\n"));
-          break;
-        case ETIR__C_STC_LP_PSB:
-          fprintf (file,
-                   _("STC_LP_PSB (store cond linkage pair + signature)\n"));
+	  fprintf (file, _("    psect: %u, offset: 0x%08x %08x\n"),
+		   (unsigned)bfd_getl32 (buf + 0),
+		   (unsigned)bfd_getl32 (buf + 8),
+		   (unsigned)bfd_getl32 (buf + 4));
+	  break;
+	case ETIR__C_STA_LI:
+	  fprintf (file, _("STA_LI (stack literal)\n"));
+	  break;
+	case ETIR__C_STA_MOD:
+	  fprintf (file, _("STA_MOD (stack module)\n"));
+	  break;
+	case ETIR__C_STA_CKARG:
+	  fprintf (file, _("STA_CKARG (compare procedure argument)\n"));
+	  break;
+
+	case ETIR__C_STO_B:
+	  fprintf (file, _("STO_B (store byte)\n"));
+	  break;
+	case ETIR__C_STO_W:
+	  fprintf (file, _("STO_W (store word)\n"));
+	  break;
+	case ETIR__C_STO_LW:
+	  fprintf (file, _("STO_LW (store longword)\n"));
+	  break;
+	case ETIR__C_STO_QW:
+	  fprintf (file, _("STO_QW (store quadword)\n"));
+	  break;
+	case ETIR__C_STO_IMMR:
+	  {
+	    unsigned int len = bfd_getl32 (buf);
+	    fprintf (file,
+		     _("STO_IMMR (store immediate repeat) %u bytes\n"),
+		     len);
+	    evax_bfd_print_hex (file, "   ", buf + 4, len);
+	    sec_len += len;
+	  }
+	  break;
+	case ETIR__C_STO_GBL:
+	  fprintf (file, _("STO_GBL (store global) %.*s\n"),
+		   buf[0], buf + 1);
+	  break;
+	case ETIR__C_STO_CA:
+	  fprintf (file, _("STO_CA (store code address) %.*s\n"),
+		   buf[0], buf + 1);
+	  break;
+	case ETIR__C_STO_RB:
+	  fprintf (file, _("STO_RB (store relative branch)\n"));
+	  break;
+	case ETIR__C_STO_AB:
+	  fprintf (file, _("STO_AB (store absolute branch)\n"));
+	  break;
+	case ETIR__C_STO_OFF:
+	  fprintf (file, _("STO_OFF (store offset to psect)\n"));
+	  break;
+	case ETIR__C_STO_IMM:
+	  {
+	    unsigned int len = bfd_getl32 (buf);
+	    fprintf (file,
+		     _("STO_IMM (store immediate) %u bytes\n"),
+		     len);
+	    evax_bfd_print_hex (file, "   ", buf + 4, len);
+	    sec_len += len;
+	  }
+	  break;
+	case ETIR__C_STO_GBL_LW:
+	  fprintf (file, _("STO_GBL_LW (store global longword) %.*s\n"),
+		   buf[0], buf + 1);
+	  break;
+	case ETIR__C_STO_LP_PSB:
+	  fprintf (file, _("STO_OFF (store LP with procedure signature)\n"));
+	  break;
+	case ETIR__C_STO_HINT_GBL:
+	  fprintf (file, _("STO_BR_GBL (store branch global) *todo*\n"));
+	  break;
+	case ETIR__C_STO_HINT_PS:
+	  fprintf (file, _("STO_BR_PS (store branch psect + offset) *todo*\n"));
+	  break;
+
+	case ETIR__C_OPR_NOP:
+	  fprintf (file, _("OPR_NOP (no-operation)\n"));
+	  break;
+	case ETIR__C_OPR_ADD:
+	  fprintf (file, _("OPR_ADD (add)\n"));
+	  break;
+	case ETIR__C_OPR_SUB:
+	  fprintf (file, _("OPR_SUB (subtract)\n"));
+	  break;
+	case ETIR__C_OPR_MUL:
+	  fprintf (file, _("OPR_MUL (multiply)\n"));
+	  break;
+	case ETIR__C_OPR_DIV:
+	  fprintf (file, _("OPR_DIV (divide)\n"));
+	  break;
+	case ETIR__C_OPR_AND:
+	  fprintf (file, _("OPR_AND (logical and)\n"));
+	  break;
+	case ETIR__C_OPR_IOR:
+	  fprintf (file, _("OPR_IOR (logical inclusive or)\n"));
+	  break;
+	case ETIR__C_OPR_EOR:
+	  fprintf (file, _("OPR_EOR (logical exclusive or)\n"));
+	  break;
+	case ETIR__C_OPR_NEG:
+	  fprintf (file, _("OPR_NEG (negate)\n"));
+	  break;
+	case ETIR__C_OPR_COM:
+	  fprintf (file, _("OPR_COM (complement)\n"));
+	  break;
+	case ETIR__C_OPR_INSV:
+	  fprintf (file, _("OPR_INSV (insert field)\n"));
+	  break;
+	case ETIR__C_OPR_ASH:
+	  fprintf (file, _("OPR_ASH (arithmetic shift)\n"));
+	  break;
+	case ETIR__C_OPR_USH:
+	  fprintf (file, _("OPR_USH (unsigned shift)\n"));
+	  break;
+	case ETIR__C_OPR_ROT:
+	  fprintf (file, _("OPR_ROT (rotate)\n"));
+	  break;
+	case ETIR__C_OPR_SEL:
+	  fprintf (file, _("OPR_SEL (select)\n"));
+	  break;
+	case ETIR__C_OPR_REDEF:
+	  fprintf (file, _("OPR_REDEF (redefine symbol to curr location)\n"));
+	  break;
+	case ETIR__C_OPR_DFLIT:
+	  fprintf (file, _("OPR_REDEF (define a literal)\n"));
+	  break;
+
+	case ETIR__C_STC_LP:
+	  fprintf (file, _("STC_LP (store cond linkage pair)\n"));
+	  break;
+	case ETIR__C_STC_LP_PSB:
+	  fprintf (file,
+		   _("STC_LP_PSB (store cond linkage pair + signature)\n"));
 	  /* xgettext:c-format */
-          fprintf (file, _("   linkage index: %u, procedure: %.*s\n"),
-                   (unsigned)bfd_getl32 (buf), buf[4], buf + 5);
-          buf += 4 + 1 + buf[4];
-          fprintf (file, _("   signature: %.*s\n"), buf[0], buf + 1);
-          break;
-        case ETIR__C_STC_GBL:
-          fprintf (file, _("STC_GBL (store cond global)\n"));
+	  fprintf (file, _("   linkage index: %u, procedure: %.*s\n"),
+		   (unsigned)bfd_getl32 (buf), buf[4], buf + 5);
+	  buf += 4 + 1 + buf[4];
+	  fprintf (file, _("   signature: %.*s\n"), buf[0], buf + 1);
+	  break;
+	case ETIR__C_STC_GBL:
+	  fprintf (file, _("STC_GBL (store cond global)\n"));
 	  /* xgettext:c-format */
-          fprintf (file, _("   linkage index: %u, global: %.*s\n"),
-                   (unsigned)bfd_getl32 (buf), buf[4], buf + 5);
-          break;
-        case ETIR__C_STC_GCA:
-          fprintf (file, _("STC_GCA (store cond code address)\n"));
+	  fprintf (file, _("   linkage index: %u, global: %.*s\n"),
+		   (unsigned)bfd_getl32 (buf), buf[4], buf + 5);
+	  break;
+	case ETIR__C_STC_GCA:
+	  fprintf (file, _("STC_GCA (store cond code address)\n"));
 	  /* xgettext:c-format */
-          fprintf (file, _("   linkage index: %u, procedure name: %.*s\n"),
-                   (unsigned)bfd_getl32 (buf), buf[4], buf + 5);
-          break;
-        case ETIR__C_STC_PS:
-          fprintf (file, _("STC_PS (store cond psect + offset)\n"));
-          fprintf (file,
+	  fprintf (file, _("   linkage index: %u, procedure name: %.*s\n"),
+		   (unsigned)bfd_getl32 (buf), buf[4], buf + 5);
+	  break;
+	case ETIR__C_STC_PS:
+	  fprintf (file, _("STC_PS (store cond psect + offset)\n"));
+	  fprintf (file,
 		   /* xgettext:c-format */
-                   _("   linkage index: %u, psect: %u, offset: 0x%08x %08x\n"),
-                   (unsigned)bfd_getl32 (buf),
-                   (unsigned)bfd_getl32 (buf + 4),
-                   (unsigned)bfd_getl32 (buf + 12),
-                   (unsigned)bfd_getl32 (buf + 8));
-          break;
-        case ETIR__C_STC_NOP_GBL:
-          fprintf (file, _("STC_NOP_GBL (store cond NOP at global addr)\n"));
-          evax_bfd_print_etir_stc_ir (file, buf, 0);
-          break;
-        case ETIR__C_STC_NOP_PS:
-          fprintf (file, _("STC_NOP_PS (store cond NOP at psect + offset)\n"));
-          evax_bfd_print_etir_stc_ir (file, buf, 1);
-          break;
-        case ETIR__C_STC_BSR_GBL:
-          fprintf (file, _("STC_BSR_GBL (store cond BSR at global addr)\n"));
-          evax_bfd_print_etir_stc_ir (file, buf, 0);
-          break;
-        case ETIR__C_STC_BSR_PS:
-          fprintf (file, _("STC_BSR_PS (store cond BSR at psect + offset)\n"));
-          evax_bfd_print_etir_stc_ir (file, buf, 1);
-          break;
-        case ETIR__C_STC_LDA_GBL:
-          fprintf (file, _("STC_LDA_GBL (store cond LDA at global addr)\n"));
-          evax_bfd_print_etir_stc_ir (file, buf, 0);
-          break;
-        case ETIR__C_STC_LDA_PS:
-          fprintf (file, _("STC_LDA_PS (store cond LDA at psect + offset)\n"));
-          evax_bfd_print_etir_stc_ir (file, buf, 1);
-          break;
-        case ETIR__C_STC_BOH_GBL:
-          fprintf (file, _("STC_BOH_GBL (store cond BOH at global addr)\n"));
-          evax_bfd_print_etir_stc_ir (file, buf, 0);
-          break;
-        case ETIR__C_STC_BOH_PS:
-          fprintf (file, _("STC_BOH_PS (store cond BOH at psect + offset)\n"));
-          evax_bfd_print_etir_stc_ir (file, buf, 1);
-          break;
-        case ETIR__C_STC_NBH_GBL:
-          fprintf (file,
-                   _("STC_NBH_GBL (store cond or hint at global addr)\n"));
-          break;
-        case ETIR__C_STC_NBH_PS:
-          fprintf (file,
-                   _("STC_NBH_PS (store cond or hint at psect + offset)\n"));
-          break;
-
-        case ETIR__C_CTL_SETRB:
-          fprintf (file, _("CTL_SETRB (set relocation base)\n"));
-          sec_len += 4;
-          break;
-        case ETIR__C_CTL_AUGRB:
-          {
-            unsigned int val = bfd_getl32 (buf);
-            fprintf (file, _("CTL_AUGRB (augment relocation base) %u\n"), val);
-          }
-          break;
-        case ETIR__C_CTL_DFLOC:
-          fprintf (file, _("CTL_DFLOC (define location)\n"));
-          break;
-        case ETIR__C_CTL_STLOC:
-          fprintf (file, _("CTL_STLOC (set location)\n"));
-          break;
-        case ETIR__C_CTL_STKDL:
-          fprintf (file, _("CTL_STKDL (stack defined location)\n"));
-          break;
-        default:
-          fprintf (file, _("*unhandled*\n"));
-          break;
-        }
+		   _("   linkage index: %u, psect: %u, offset: 0x%08x %08x\n"),
+		   (unsigned)bfd_getl32 (buf),
+		   (unsigned)bfd_getl32 (buf + 4),
+		   (unsigned)bfd_getl32 (buf + 12),
+		   (unsigned)bfd_getl32 (buf + 8));
+	  break;
+	case ETIR__C_STC_NOP_GBL:
+	  fprintf (file, _("STC_NOP_GBL (store cond NOP at global addr)\n"));
+	  evax_bfd_print_etir_stc_ir (file, buf, 0);
+	  break;
+	case ETIR__C_STC_NOP_PS:
+	  fprintf (file, _("STC_NOP_PS (store cond NOP at psect + offset)\n"));
+	  evax_bfd_print_etir_stc_ir (file, buf, 1);
+	  break;
+	case ETIR__C_STC_BSR_GBL:
+	  fprintf (file, _("STC_BSR_GBL (store cond BSR at global addr)\n"));
+	  evax_bfd_print_etir_stc_ir (file, buf, 0);
+	  break;
+	case ETIR__C_STC_BSR_PS:
+	  fprintf (file, _("STC_BSR_PS (store cond BSR at psect + offset)\n"));
+	  evax_bfd_print_etir_stc_ir (file, buf, 1);
+	  break;
+	case ETIR__C_STC_LDA_GBL:
+	  fprintf (file, _("STC_LDA_GBL (store cond LDA at global addr)\n"));
+	  evax_bfd_print_etir_stc_ir (file, buf, 0);
+	  break;
+	case ETIR__C_STC_LDA_PS:
+	  fprintf (file, _("STC_LDA_PS (store cond LDA at psect + offset)\n"));
+	  evax_bfd_print_etir_stc_ir (file, buf, 1);
+	  break;
+	case ETIR__C_STC_BOH_GBL:
+	  fprintf (file, _("STC_BOH_GBL (store cond BOH at global addr)\n"));
+	  evax_bfd_print_etir_stc_ir (file, buf, 0);
+	  break;
+	case ETIR__C_STC_BOH_PS:
+	  fprintf (file, _("STC_BOH_PS (store cond BOH at psect + offset)\n"));
+	  evax_bfd_print_etir_stc_ir (file, buf, 1);
+	  break;
+	case ETIR__C_STC_NBH_GBL:
+	  fprintf (file,
+		   _("STC_NBH_GBL (store cond or hint at global addr)\n"));
+	  break;
+	case ETIR__C_STC_NBH_PS:
+	  fprintf (file,
+		   _("STC_NBH_PS (store cond or hint at psect + offset)\n"));
+	  break;
+
+	case ETIR__C_CTL_SETRB:
+	  fprintf (file, _("CTL_SETRB (set relocation base)\n"));
+	  sec_len += 4;
+	  break;
+	case ETIR__C_CTL_AUGRB:
+	  {
+	    unsigned int val = bfd_getl32 (buf);
+	    fprintf (file, _("CTL_AUGRB (augment relocation base) %u\n"), val);
+	  }
+	  break;
+	case ETIR__C_CTL_DFLOC:
+	  fprintf (file, _("CTL_DFLOC (define location)\n"));
+	  break;
+	case ETIR__C_CTL_STLOC:
+	  fprintf (file, _("CTL_STLOC (set location)\n"));
+	  break;
+	case ETIR__C_CTL_STKDL:
+	  fprintf (file, _("CTL_STKDL (stack defined location)\n"));
+	  break;
+	default:
+	  fprintf (file, _("*unhandled*\n"));
+	  break;
+	}
       off += size;
     }
 }
@@ -6237,121 +6459,121 @@ evax_bfd_print_eobj (struct bfd *abfd, F
       unsigned int type;
 
       if (is_first)
-        {
-          unsigned char buf[6];
+	{
+	  unsigned char buf[6];
 
-          is_first = FALSE;
+	  is_first = FALSE;
 
-          /* Read 6 bytes.  */
-          if (bfd_bread (buf, sizeof (buf), abfd) != sizeof (buf))
-            {
-              fprintf (file, _("cannot read GST record length\n"));
-              return;
-            }
-          rec_len = bfd_getl16 (buf + 0);
-          if (rec_len == bfd_getl16 (buf + 4)
-              && bfd_getl16 (buf + 2) == EOBJ__C_EMH)
-            {
-              /* The format is raw: record-size, type, record-size.  */
-              has_records = TRUE;
-              pad_len = (rec_len + 1) & ~1U;
-              hdr_size = 4;
-            }
-          else if (rec_len == EOBJ__C_EMH)
-            {
-              has_records = FALSE;
-              pad_len = bfd_getl16 (buf + 2);
-              hdr_size = 6;
-            }
-          else
-            {
-              /* Ill-formed.  */
-              fprintf (file, _("cannot find EMH in first GST record\n"));
-              return;
-            }
-          rec = bfd_malloc (pad_len);
-          memcpy (rec, buf + sizeof (buf) - hdr_size, hdr_size);
-        }
+	  /* Read 6 bytes.  */
+	  if (bfd_bread (buf, sizeof (buf), abfd) != sizeof (buf))
+	    {
+	      fprintf (file, _("cannot read GST record length\n"));
+	      return;
+	    }
+	  rec_len = bfd_getl16 (buf + 0);
+	  if (rec_len == bfd_getl16 (buf + 4)
+	      && bfd_getl16 (buf + 2) == EOBJ__C_EMH)
+	    {
+	      /* The format is raw: record-size, type, record-size.  */
+	      has_records = TRUE;
+	      pad_len = (rec_len + 1) & ~1U;
+	      hdr_size = 4;
+	    }
+	  else if (rec_len == EOBJ__C_EMH)
+	    {
+	      has_records = FALSE;
+	      pad_len = bfd_getl16 (buf + 2);
+	      hdr_size = 6;
+	    }
+	  else
+	    {
+	      /* Ill-formed.  */
+	      fprintf (file, _("cannot find EMH in first GST record\n"));
+	      return;
+	    }
+	  rec = bfd_malloc (pad_len);
+	  memcpy (rec, buf + sizeof (buf) - hdr_size, hdr_size);
+	}
       else
-        {
-          unsigned int rec_len2 = 0;
-          unsigned char hdr[4];
-
-          if (has_records)
-            {
-              unsigned char buf_len[2];
-
-              if (bfd_bread (buf_len, sizeof (buf_len), abfd)
-                  != sizeof (buf_len))
-                {
-                  fprintf (file, _("cannot read GST record length\n"));
-                  return;
-                }
-              rec_len2 = (unsigned)bfd_getl16 (buf_len);
-            }
-
-          if (bfd_bread (hdr, sizeof (hdr), abfd) != sizeof (hdr))
-            {
-              fprintf (file, _("cannot read GST record header\n"));
-              return;
-            }
-          rec_len = (unsigned)bfd_getl16 (hdr + 2);
-          if (has_records)
-            pad_len = (rec_len + 1) & ~1U;
-          else
-            pad_len = rec_len;
-          rec = bfd_malloc (pad_len);
-          memcpy (rec, hdr, sizeof (hdr));
-          hdr_size = sizeof (hdr);
-          if (has_records && rec_len2 != rec_len)
-            {
-              fprintf (file, _(" corrupted GST\n"));
-              break;
-            }
-        }
+	{
+	  unsigned int rec_len2 = 0;
+	  unsigned char hdr[4];
+
+	  if (has_records)
+	    {
+	      unsigned char buf_len[2];
+
+	      if (bfd_bread (buf_len, sizeof (buf_len), abfd)
+		  != sizeof (buf_len))
+		{
+		  fprintf (file, _("cannot read GST record length\n"));
+		  return;
+		}
+	      rec_len2 = (unsigned)bfd_getl16 (buf_len);
+	    }
+
+	  if (bfd_bread (hdr, sizeof (hdr), abfd) != sizeof (hdr))
+	    {
+	      fprintf (file, _("cannot read GST record header\n"));
+	      return;
+	    }
+	  rec_len = (unsigned)bfd_getl16 (hdr + 2);
+	  if (has_records)
+	    pad_len = (rec_len + 1) & ~1U;
+	  else
+	    pad_len = rec_len;
+	  rec = bfd_malloc (pad_len);
+	  memcpy (rec, hdr, sizeof (hdr));
+	  hdr_size = sizeof (hdr);
+	  if (has_records && rec_len2 != rec_len)
+	    {
+	      fprintf (file, _(" corrupted GST\n"));
+	      break;
+	    }
+	}
 
       if (bfd_bread (rec + hdr_size, pad_len - hdr_size, abfd)
-          != pad_len - hdr_size)
-        {
-          fprintf (file, _("cannot read GST record\n"));
-          return;
-        }
+	  != pad_len - hdr_size)
+	{
+	  fprintf (file, _("cannot read GST record\n"));
+	  return;
+	}
 
       type = (unsigned)bfd_getl16 (rec);
 
       switch (type)
-        {
-        case EOBJ__C_EMH:
-          evax_bfd_print_emh (file, rec, rec_len);
-          break;
-        case EOBJ__C_EGSD:
-          evax_bfd_print_egsd (file, rec, rec_len);
-          break;
-        case EOBJ__C_EEOM:
-          evax_bfd_print_eeom (file, rec, rec_len);
-          free (rec);
-          return;
-          break;
-        case EOBJ__C_ETIR:
-          evax_bfd_print_etir (file, "ETIR", rec, rec_len);
-          break;
-        case EOBJ__C_EDBG:
-          evax_bfd_print_etir (file, "EDBG", rec, rec_len);
-          break;
-        case EOBJ__C_ETBT:
-          evax_bfd_print_etir (file, "ETBT", rec, rec_len);
-          break;
-        default:
-          fprintf (file, _(" unhandled EOBJ record type %u\n"), type);
-          break;
-        }
+	{
+	case EOBJ__C_EMH:
+	  evax_bfd_print_emh (file, rec, rec_len);
+	  break;
+	case EOBJ__C_EGSD:
+	  evax_bfd_print_egsd (file, rec, rec_len);
+	  break;
+	case EOBJ__C_EEOM:
+	  evax_bfd_print_eeom (file, rec, rec_len);
+	  free (rec);
+	  return;
+	  break;
+	case EOBJ__C_ETIR:
+	  evax_bfd_print_etir (file, "ETIR", rec, rec_len);
+	  break;
+	case EOBJ__C_EDBG:
+	  evax_bfd_print_etir (file, "EDBG", rec, rec_len);
+	  break;
+	case EOBJ__C_ETBT:
+	  evax_bfd_print_etir (file, "ETBT", rec, rec_len);
+	  break;
+	default:
+	  fprintf (file, _(" unhandled EOBJ record type %u\n"), type);
+	  break;
+	}
       free (rec);
     }
 }
 
 static void
 evax_bfd_print_relocation_records (FILE *file, const unsigned char *rel,
-                                   unsigned int stride)
+				   unsigned int stride)
 {
   while (1)
     {
@@ -6362,42 +6584,42 @@ evax_bfd_print_relocation_records (FILE 
       count = bfd_getl32 (rel + 0);
 
       if (count == 0)
-        break;
+	break;
       base = bfd_getl32 (rel + 4);
 
       /* xgettext:c-format */
       fprintf (file, _("  bitcount: %u, base addr: 0x%08x\n"),
-               count, base);
+	       count, base);
 
       rel += 8;
       for (j = 0; count > 0; j += 4, count -= 32)
-        {
-          unsigned int k;
-          unsigned int n = 0;
-          unsigned int val;
+	{
+	  unsigned int k;
+	  unsigned int n = 0;
+	  unsigned int val;
 
-          val = bfd_getl32 (rel);
-          rel += 4;
+	  val = bfd_getl32 (rel);
+	  rel += 4;
 
 	  /* xgettext:c-format */
-          fprintf (file, _("   bitmap: 0x%08x (count: %u):\n"), val, count);
+	  fprintf (file, _("   bitmap: 0x%08x (count: %u):\n"), val, count);
 
-          for (k = 0; k < 32; k++)
-            if (val & (1 << k))
-              {
-                if (n == 0)
-                  fputs ("   ", file);
-                fprintf (file, _(" %08x"), base + (j * 8 + k) * stride);
-                n++;
-                if (n == 8)
-                  {
-                    fputs ("\n", file);
-                    n = 0;
-                  }
-              }
-          if (n)
-            fputs ("\n", file);
-        }
+	  for (k = 0; k < 32; k++)
+	    if (val & (1 << k))
+	      {
+		if (n == 0)
+		  fputs ("   ", file);
+		fprintf (file, _(" %08x"), base + (j * 8 + k) * stride);
+		n++;
+		if (n == 8)
+		  {
+		    fputs ("\n", file);
+		    n = 0;
+		  }
+	      }
+	  if (n)
+	    fputs ("\n", file);
+	}
     }
 }
 
@@ -6411,19 +6633,19 @@ evax_bfd_print_address_fixups (FILE *fil
 
       count = bfd_getl32 (rel + 0);
       if (count == 0)
-        return;
+	return;
       /* xgettext:c-format */
       fprintf (file, _("  image %u (%u entries)\n"),
-               (unsigned)bfd_getl32 (rel + 4), count);
+	       (unsigned)bfd_getl32 (rel + 4), count);
       rel += 8;
       for (j = 0; j < count; j++)
-        {
+	{
 	  /* xgettext:c-format */
-          fprintf (file, _("   offset: 0x%08x, val: 0x%08x\n"),
-                   (unsigned)bfd_getl32 (rel + 0),
-                   (unsigned)bfd_getl32 (rel + 4));
-          rel += 8;
-        }
+	  fprintf (file, _("   offset: 0x%08x, val: 0x%08x\n"),
+		   (unsigned)bfd_getl32 (rel + 0),
+		   (unsigned)bfd_getl32 (rel + 4));
+	  rel += 8;
+	}
     }
 }
 
@@ -6439,26 +6661,26 @@ evax_bfd_print_reference_fixups (FILE *f
 
       count = bfd_getl32 (rel + 0);
       if (count == 0)
-        break;
+	break;
       /* xgettext:c-format */
       fprintf (file, _("  image %u (%u entries), offsets:\n"),
-               (unsigned)bfd_getl32 (rel + 4), count);
+	       (unsigned)bfd_getl32 (rel + 4), count);
       rel += 8;
       for (j = 0; j < count; j++)
-        {
-          if (n == 0)
-            fputs ("   ", file);
-          fprintf (file, _(" 0x%08x"), (unsigned)bfd_getl32 (rel));
-          n++;
-          if (n == 7)
-            {
-              fputs ("\n", file);
-              n = 0;
-            }
-          rel += 4;
-        }
+	{
+	  if (n == 0)
+	    fputs ("   ", file);
+	  fprintf (file, _(" 0x%08x"), (unsigned)bfd_getl32 (rel));
+	  n++;
+	  if (n == 7)
+	    {
+	      fputs ("\n", file);
+	      n = 0;
+	    }
+	  rel += 4;
+	}
       if (n)
-        fputs ("\n", file);
+	fputs ("\n", file);
     }
 }
 
@@ -6576,72 +6798,72 @@ evax_bfd_print_desc (const unsigned char
     {
       /* xgettext:c-format */
       fprintf (file, _("class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"),
-               bclass, dtype, len, pointer);
+	       bclass, dtype, len, pointer);
       switch (bclass)
-        {
-        case DSC__K_CLASS_NCA:
-          {
-            const struct vms_dsc_nca *dsc = (const void *)buf;
-            unsigned int i;
-            const unsigned char *b;
-
-            evax_bfd_print_indent (indent, file);
-            fprintf (file, _("non-contiguous array of %s\n"),
-                     evax_bfd_get_dsc_name (dsc->dtype));
-            evax_bfd_print_indent (indent + 1, file);
-            fprintf (file,
+	{
+	case DSC__K_CLASS_NCA:
+	  {
+	    const struct vms_dsc_nca *dsc = (const void *)buf;
+	    unsigned int i;
+	    const unsigned char *b;
+
+	    evax_bfd_print_indent (indent, file);
+	    fprintf (file, _("non-contiguous array of %s\n"),
+		     evax_bfd_get_dsc_name (dsc->dtype));
+	    evax_bfd_print_indent (indent + 1, file);
+	    fprintf (file,
 		     /* xgettext:c-format */
-                     _("dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"),
-                     dsc->dimct, dsc->aflags, dsc->digits, dsc->scale);
-            evax_bfd_print_indent (indent + 1, file);
-            fprintf (file,
+		     _("dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"),
+		     dsc->dimct, dsc->aflags, dsc->digits, dsc->scale);
+	    evax_bfd_print_indent (indent + 1, file);
+	    fprintf (file,
 		     /* xgettext:c-format */
-                     _("arsize: %u, a0: 0x%08x\n"),
-                     (unsigned)bfd_getl32 (dsc->arsize),
-                     (unsigned)bfd_getl32 (dsc->a0));
-            evax_bfd_print_indent (indent + 1, file);
-            fprintf (file, _("Strides:\n"));
-            b = buf + sizeof (*dsc);
-            for (i = 0; i < dsc->dimct; i++)
-              {
-                evax_bfd_print_indent (indent + 2, file);
-                fprintf (file, "[%u]: %u\n", i + 1,
-                         (unsigned)bfd_getl32 (b));
-                b += 4;
-              }
-            evax_bfd_print_indent (indent + 1, file);
-            fprintf (file, _("Bounds:\n"));
-            b = buf + sizeof (*dsc);
-            for (i = 0; i < dsc->dimct; i++)
-              {
-                evax_bfd_print_indent (indent + 2, file);
+		     _("arsize: %u, a0: 0x%08x\n"),
+		     (unsigned)bfd_getl32 (dsc->arsize),
+		     (unsigned)bfd_getl32 (dsc->a0));
+	    evax_bfd_print_indent (indent + 1, file);
+	    fprintf (file, _("Strides:\n"));
+	    b = buf + sizeof (*dsc);
+	    for (i = 0; i < dsc->dimct; i++)
+	      {
+		evax_bfd_print_indent (indent + 2, file);
+		fprintf (file, "[%u]: %u\n", i + 1,
+			 (unsigned)bfd_getl32 (b));
+		b += 4;
+	      }
+	    evax_bfd_print_indent (indent + 1, file);
+	    fprintf (file, _("Bounds:\n"));
+	    b = buf + sizeof (*dsc);
+	    for (i = 0; i < dsc->dimct; i++)
+	      {
+		evax_bfd_print_indent (indent + 2, file);
 		/* xgettext:c-format */
-                fprintf (file, _("[%u]: Lower: %u, upper: %u\n"), i + 1,
-                         (unsigned)bfd_getl32 (b + 0),
-                         (unsigned)bfd_getl32 (b + 4));
-                b += 8;
-              }
-          }
-          break;
-        case DSC__K_CLASS_UBS:
-          {
-            const struct vms_dsc_ubs *ubs = (const void *)buf;
-
-            evax_bfd_print_indent (indent, file);
-            fprintf (file, _("unaligned bit-string of %s\n"),
-                     evax_bfd_get_dsc_name (ubs->dtype));
-            evax_bfd_print_indent (indent + 1, file);
-            fprintf (file,
+		fprintf (file, _("[%u]: Lower: %u, upper: %u\n"), i + 1,
+			 (unsigned)bfd_getl32 (b + 0),
+			 (unsigned)bfd_getl32 (b + 4));
+		b += 8;
+	      }
+	  }
+	  break;
+	case DSC__K_CLASS_UBS:
+	  {
+	    const struct vms_dsc_ubs *ubs = (const void *)buf;
+
+	    evax_bfd_print_indent (indent, file);
+	    fprintf (file, _("unaligned bit-string of %s\n"),
+		     evax_bfd_get_dsc_name (ubs->dtype));
+	    evax_bfd_print_indent (indent + 1, file);
+	    fprintf (file,
 		     /* xgettext:c-format */
-                     _("base: %u, pos: %u\n"),
-                     (unsigned)bfd_getl32 (ubs->base),
-                     (unsigned)bfd_getl32 (ubs->pos));
-          }
-          break;
-        default:
-          fprintf (file, _("*unhandled*\n"));
-          break;
-        }
+		     _("base: %u, pos: %u\n"),
+		     (unsigned)bfd_getl32 (ubs->base),
+		     (unsigned)bfd_getl32 (ubs->pos));
+	  }
+	  break;
+	default:
+	  fprintf (file, _("*unhandled*\n"));
+	  break;
+	}
     }
 }
 
@@ -6684,24 +6906,24 @@ evax_bfd_print_valspec (const unsigned c
     default:
       /* xgettext:c-format */
       fprintf (file, _("(reg: %u, disp: %u, indir: %u, kind: "),
-               (vflags & DST__K_REGNUM_MASK) >> DST__K_REGNUM_SHIFT,
-               vflags & DST__K_DISP ? 1 : 0,
-               vflags & DST__K_INDIR ? 1 : 0);
+	       (vflags & DST__K_REGNUM_MASK) >> DST__K_REGNUM_SHIFT,
+	       vflags & DST__K_DISP ? 1 : 0,
+	       vflags & DST__K_INDIR ? 1 : 0);
       switch (vflags & DST__K_VALKIND_MASK)
-        {
-        case DST__K_VALKIND_LITERAL:
-          fputs (_("literal"), file);
-          break;
-        case DST__K_VALKIND_ADDR:
-          fputs (_("address"), file);
-          break;
-        case DST__K_VALKIND_DESC:
-          fputs (_("desc"), file);
-          break;
-        case DST__K_VALKIND_REG:
-          fputs (_("reg"), file);
-          break;
-        }
+	{
+	case DST__K_VALKIND_LITERAL:
+	  fputs (_("literal"), file);
+	  break;
+	case DST__K_VALKIND_ADDR:
+	  fputs (_("address"), file);
+	  break;
+	case DST__K_VALKIND_DESC:
+	  fputs (_("desc"), file);
+	  break;
+	case DST__K_VALKIND_REG:
+	  fputs (_("reg"), file);
+	  break;
+	}
       fputs (")\n", file);
       break;
     }
@@ -6723,11 +6945,11 @@ evax_bfd_print_typspec (const unsigned c
     case DST__K_TS_ATOM:
     /* xgettext:c-format */
       fprintf (file, _("atomic, type=0x%02x %s\n"),
-               buf[0], evax_bfd_get_dsc_name (buf[0]));
+	       buf[0], evax_bfd_get_dsc_name (buf[0]));
       break;
     case DST__K_TS_IND:
       fprintf (file, _("indirect, defined at 0x%08x\n"),
-               (unsigned)bfd_getl32 (buf));
+	       (unsigned)bfd_getl32 (buf));
       break;
     case DST__K_TS_TPTR:
       fprintf (file, _("typed pointer\n"));
@@ -6738,30 +6960,30 @@ evax_bfd_print_typspec (const unsigned c
       break;
     case DST__K_TS_ARRAY:
       {
-        const unsigned char *vs;
-        unsigned int vec_len;
-        unsigned int i;
-
-        fprintf (file, _("array, dim: %u, bitmap: "), buf[0]);
-        vec_len = (buf[0] + 1 + 7) / 8;
-        for (i = 0; i < vec_len; i++)
-          fprintf (file, " %02x", buf[i + 1]);
-        fputc ('\n', file);
-        vs = buf + 1 + vec_len;
-        evax_bfd_print_indent (indent, file);
-        fprintf (file, _("array descriptor:\n"));
-        vs += evax_bfd_print_valspec (vs, indent + 1, file);
-        for (i = 0; i < buf[0] + 1U; i++)
-          if (buf[1 + i / 8] & (1 << (i % 8)))
-            {
-              evax_bfd_print_indent (indent, file);
-              if (i == 0)
-                fprintf (file, _("type spec for element:\n"));
-              else
-                fprintf (file, _("type spec for subscript %u:\n"), i);
-              evax_bfd_print_typspec (vs, indent + 1, file);
-              vs += bfd_getl16 (vs);
-            }
+	const unsigned char *vs;
+	unsigned int vec_len;
+	unsigned int i;
+
+	fprintf (file, _("array, dim: %u, bitmap: "), buf[0]);
+	vec_len = (buf[0] + 1 + 7) / 8;
+	for (i = 0; i < vec_len; i++)
+	  fprintf (file, " %02x", buf[i + 1]);
+	fputc ('\n', file);
+	vs = buf + 1 + vec_len;
+	evax_bfd_print_indent (indent, file);
+	fprintf (file, _("array descriptor:\n"));
+	vs += evax_bfd_print_valspec (vs, indent + 1, file);
+	for (i = 0; i < buf[0] + 1U; i++)
+	  if (buf[1 + i / 8] & (1 << (i % 8)))
+	    {
+	      evax_bfd_print_indent (indent, file);
+	      if (i == 0)
+		fprintf (file, _("type spec for element:\n"));
+	      else
+		fprintf (file, _("type spec for subscript %u:\n"), i);
+	      evax_bfd_print_typspec (vs, indent + 1, file);
+	      vs += bfd_getl16 (vs);
+	    }
       }
       break;
     default:
@@ -6785,422 +7007,422 @@ evax_bfd_print_dst (struct bfd *abfd, un
       unsigned int type;
       unsigned char *buf;
 
-      if (bfd_bread (&dsth, sizeof (dsth), abfd) != sizeof (dsth))
-        {
-          fprintf (file, _("cannot read DST header\n"));
-          return;
-        }
-      len = bfd_getl16 (dsth.length);
-      type = bfd_getl16 (dsth.type);
-      /* xgettext:c-format */
-      fprintf (file, _(" type: %3u, len: %3u (at 0x%08x): "),
-               type, len, off);
-      if (len == 0)
-        {
-          fputc ('\n', file);
-          break;
-        }
-      len++;
-      dst_size -= len;
-      off += len;
-      len -= sizeof (dsth);
-      buf = bfd_malloc (len);
-      if (bfd_bread (buf, len, abfd) != len)
-        {
-          fprintf (file, _("cannot read DST symbol\n"));
-          return;
-        }
-      switch (type)
-        {
-        case DSC__K_DTYPE_V:
-        case DSC__K_DTYPE_BU:
-        case DSC__K_DTYPE_WU:
-        case DSC__K_DTYPE_LU:
-        case DSC__K_DTYPE_QU:
-        case DSC__K_DTYPE_B:
-        case DSC__K_DTYPE_W:
-        case DSC__K_DTYPE_L:
-        case DSC__K_DTYPE_Q:
-        case DSC__K_DTYPE_F:
-        case DSC__K_DTYPE_D:
-        case DSC__K_DTYPE_FC:
-        case DSC__K_DTYPE_DC:
-        case DSC__K_DTYPE_T:
-        case DSC__K_DTYPE_NU:
-        case DSC__K_DTYPE_NL:
-        case DSC__K_DTYPE_NLO:
-        case DSC__K_DTYPE_NR:
-        case DSC__K_DTYPE_NRO:
-        case DSC__K_DTYPE_NZ:
-        case DSC__K_DTYPE_P:
-        case DSC__K_DTYPE_ZI:
-        case DSC__K_DTYPE_ZEM:
-        case DSC__K_DTYPE_DSC:
-        case DSC__K_DTYPE_OU:
-        case DSC__K_DTYPE_O:
-        case DSC__K_DTYPE_G:
-        case DSC__K_DTYPE_H:
-        case DSC__K_DTYPE_GC:
-        case DSC__K_DTYPE_HC:
-        case DSC__K_DTYPE_CIT:
-        case DSC__K_DTYPE_BPV:
-        case DSC__K_DTYPE_BLV:
-        case DSC__K_DTYPE_VU:
-        case DSC__K_DTYPE_ADT:
-        case DSC__K_DTYPE_VT:
-        case DSC__K_DTYPE_T2:
-        case DSC__K_DTYPE_VT2:
-          fprintf (file, _("standard data: %s\n"),
-                   evax_bfd_get_dsc_name (type));
-          evax_bfd_print_valspec (buf, 4, file);
-          fprintf (file, _("    name: %.*s\n"), buf[5], buf + 6);
-          break;
-        case DST__K_MODBEG:
-          {
-            struct vms_dst_modbeg *dst = (void *)buf;
-            const char *name = (const char *)buf + sizeof (*dst);
+      if (bfd_bread (&dsth, sizeof (dsth), abfd) != sizeof (dsth))
+	{
+	  fprintf (file, _("cannot read DST header\n"));
+	  return;
+	}
+      len = bfd_getl16 (dsth.length);
+      type = bfd_getl16 (dsth.type);
+      /* xgettext:c-format */
+      fprintf (file, _(" type: %3u, len: %3u (at 0x%08x): "),
+	       type, len, off);
+      if (len == 0)
+	{
+	  fputc ('\n', file);
+	  break;
+	}
+      len++;
+      dst_size -= len;
+      off += len;
+      len -= sizeof (dsth);
+      buf = bfd_malloc (len);
+      if (bfd_bread (buf, len, abfd) != len)
+	{
+	  fprintf (file, _("cannot read DST symbol\n"));
+	  return;
+	}
+      switch (type)
+	{
+	case DSC__K_DTYPE_V:
+	case DSC__K_DTYPE_BU:
+	case DSC__K_DTYPE_WU:
+	case DSC__K_DTYPE_LU:
+	case DSC__K_DTYPE_QU:
+	case DSC__K_DTYPE_B:
+	case DSC__K_DTYPE_W:
+	case DSC__K_DTYPE_L:
+	case DSC__K_DTYPE_Q:
+	case DSC__K_DTYPE_F:
+	case DSC__K_DTYPE_D:
+	case DSC__K_DTYPE_FC:
+	case DSC__K_DTYPE_DC:
+	case DSC__K_DTYPE_T:
+	case DSC__K_DTYPE_NU:
+	case DSC__K_DTYPE_NL:
+	case DSC__K_DTYPE_NLO:
+	case DSC__K_DTYPE_NR:
+	case DSC__K_DTYPE_NRO:
+	case DSC__K_DTYPE_NZ:
+	case DSC__K_DTYPE_P:
+	case DSC__K_DTYPE_ZI:
+	case DSC__K_DTYPE_ZEM:
+	case DSC__K_DTYPE_DSC:
+	case DSC__K_DTYPE_OU:
+	case DSC__K_DTYPE_O:
+	case DSC__K_DTYPE_G:
+	case DSC__K_DTYPE_H:
+	case DSC__K_DTYPE_GC:
+	case DSC__K_DTYPE_HC:
+	case DSC__K_DTYPE_CIT:
+	case DSC__K_DTYPE_BPV:
+	case DSC__K_DTYPE_BLV:
+	case DSC__K_DTYPE_VU:
+	case DSC__K_DTYPE_ADT:
+	case DSC__K_DTYPE_VT:
+	case DSC__K_DTYPE_T2:
+	case DSC__K_DTYPE_VT2:
+	  fprintf (file, _("standard data: %s\n"),
+		   evax_bfd_get_dsc_name (type));
+	  evax_bfd_print_valspec (buf, 4, file);
+	  fprintf (file, _("    name: %.*s\n"), buf[5], buf + 6);
+	  break;
+	case DST__K_MODBEG:
+	  {
+	    struct vms_dst_modbeg *dst = (void *)buf;
+	    const char *name = (const char *)buf + sizeof (*dst);
+
+	    fprintf (file, _("modbeg\n"));
+	    /* xgettext:c-format */
+	    fprintf (file, _("   flags: %d, language: %u, "
+			     "major: %u, minor: %u\n"),
+		     dst->flags,
+		     (unsigned)bfd_getl32 (dst->language),
+		     (unsigned)bfd_getl16 (dst->major),
+		     (unsigned)bfd_getl16 (dst->minor));
+	    fprintf (file, _("   module name: %.*s\n"),
+		     name[0], name + 1);
+	    name += name[0] + 1;
+	    fprintf (file, _("   compiler   : %.*s\n"),
+		     name[0], name + 1);
+	  }
+	  break;
+	case DST__K_MODEND:
+	  fprintf (file, _("modend\n"));
+	  break;
+	case DST__K_RTNBEG:
+	  {
+	    struct vms_dst_rtnbeg *dst = (void *)buf;
+	    const char *name = (const char *)buf + sizeof (*dst);
+
+	    fputs (_("rtnbeg\n"), file);
+	    /* xgettext:c-format */
+	    fprintf (file, _("    flags: %u, address: 0x%08x, "
+			     "pd-address: 0x%08x\n"),
+		     dst->flags,
+		     (unsigned)bfd_getl32 (dst->address),
+		     (unsigned)bfd_getl32 (dst->pd_address));
+	    fprintf (file, _("    routine name: %.*s\n"),
+		     name[0], name + 1);
+	  }
+	  break;
+	case DST__K_RTNEND:
+	  {
+	    struct vms_dst_rtnend *dst = (void *)buf;
+
+	    fprintf (file, _("rtnend: size 0x%08x\n"),
+		     (unsigned)bfd_getl32 (dst->size));
+	  }
+	  break;
+	case DST__K_PROLOG:
+	  {
+	    struct vms_dst_prolog *dst = (void *)buf;
+
+	    fprintf (file, _("prolog: bkpt address 0x%08x\n"),
+		     (unsigned)bfd_getl32 (dst->bkpt_addr));
+	  }
+	  break;
+	case DST__K_EPILOG:
+	  {
+	    struct vms_dst_epilog *dst = (void *)buf;
+
+	    /* xgettext:c-format */
+	    fprintf (file, _("epilog: flags: %u, count: %u\n"),
+		     dst->flags, (unsigned)bfd_getl32 (dst->count));
+	  }
+	  break;
+	case DST__K_BLKBEG:
+	  {
+	    struct vms_dst_blkbeg *dst = (void *)buf;
+	    const char *name = (const char *)buf + sizeof (*dst);
+
+	    /* xgettext:c-format */
+	    fprintf (file, _("blkbeg: address: 0x%08x, name: %.*s\n"),
+		     (unsigned)bfd_getl32 (dst->address),
+		     name[0], name + 1);
+	  }
+	  break;
+	case DST__K_BLKEND:
+	  {
+	    struct vms_dst_blkend *dst = (void *)buf;
+
+	    fprintf (file, _("blkend: size: 0x%08x\n"),
+		     (unsigned)bfd_getl32 (dst->size));
+	  }
+	  break;
+	case DST__K_TYPSPEC:
+	  {
+	    fprintf (file, _("typspec (len: %u)\n"), len);
+	    fprintf (file, _("    name: %.*s\n"), buf[0], buf + 1);
+	    evax_bfd_print_typspec (buf + 1 + buf[0], 5, file);
+	  }
+	  break;
+	case DST__K_SEPTYP:
+	  {
+	    fprintf (file, _("septyp, name: %.*s\n"), buf[5], buf + 6);
+	    evax_bfd_print_valspec (buf, 4, file);
+	  }
+	  break;
+	case DST__K_RECBEG:
+	  {
+	    struct vms_dst_recbeg *recbeg = (void *)buf;
+	    const char *name = (const char *)buf + sizeof (*recbeg);
+
+	    fprintf (file, _("recbeg: name: %.*s\n"), name[0], name + 1);
+	    evax_bfd_print_valspec (buf, 4, file);
+	    fprintf (file, _("    len: %u bits\n"),
+		     (unsigned)bfd_getl32 (name + 1 + name[0]));
+	  }
+	  break;
+	case DST__K_RECEND:
+	  fprintf (file, _("recend\n"));
+	  break;
+	case DST__K_ENUMBEG:
+	  /* xgettext:c-format */
+	  fprintf (file, _("enumbeg, len: %u, name: %.*s\n"),
+		   buf[0], buf[1], buf + 2);
+	  break;
+	case DST__K_ENUMELT:
+	  fprintf (file, _("enumelt, name: %.*s\n"), buf[5], buf + 6);
+	  evax_bfd_print_valspec (buf, 4, file);
+	  break;
+	case DST__K_ENUMEND:
+	  fprintf (file, _("enumend\n"));
+	  break;
+	case DST__K_LABEL:
+	  {
+	    struct vms_dst_label *lab = (void *)buf;
+	    fprintf (file, _("label, name: %.*s\n"),
+		     lab->name[0], lab->name + 1);
+	    fprintf (file, _("    address: 0x%08x\n"),
+		     (unsigned)bfd_getl32 (lab->value));
+	  }
+	  break;
+	case DST__K_DIS_RANGE:
+	  {
+	    unsigned int cnt = bfd_getl32 (buf);
+	    unsigned char *rng = buf + 4;
+	    unsigned int i;
+
+	    fprintf (file, _("discontiguous range (nbr: %u)\n"), cnt);
+	    for (i = 0; i < cnt; i++, rng += 8)
+	      /* xgettext:c-format */
+	      fprintf (file, _("    address: 0x%08x, size: %u\n"),
+		       (unsigned)bfd_getl32 (rng),
+		       (unsigned)bfd_getl32 (rng + 4));
+
+	  }
+	  break;
+	case DST__K_LINE_NUM:
+	  {
+	    unsigned char *buf_orig = buf;
 
-            fprintf (file, _("modbeg\n"));
-	    /* xgettext:c-format */
-            fprintf (file, _("   flags: %d, language: %u, "
-                             "major: %u, minor: %u\n"),
-                     dst->flags,
-                     (unsigned)bfd_getl32 (dst->language),
-                     (unsigned)bfd_getl16 (dst->major),
-                     (unsigned)bfd_getl16 (dst->minor));
-            fprintf (file, _("   module name: %.*s\n"),
-                     name[0], name + 1);
-            name += name[0] + 1;
-            fprintf (file, _("   compiler   : %.*s\n"),
-                     name[0], name + 1);
-          }
-          break;
-        case DST__K_MODEND:
-          fprintf (file, _("modend\n"));
-          break;
-        case DST__K_RTNBEG:
-          {
-            struct vms_dst_rtnbeg *dst = (void *)buf;
-            const char *name = (const char *)buf + sizeof (*dst);
+	    fprintf (file, _("line num  (len: %u)\n"), len);
 
-            fputs (_("rtnbeg\n"), file);
-	    /* xgettext:c-format */
-            fprintf (file, _("    flags: %u, address: 0x%08x, "
-                             "pd-address: 0x%08x\n"),
-                     dst->flags,
-                     (unsigned)bfd_getl32 (dst->address),
-                     (unsigned)bfd_getl32 (dst->pd_address));
-            fprintf (file, _("    routine name: %.*s\n"),
-                     name[0], name + 1);
-          }
-          break;
-        case DST__K_RTNEND:
-          {
-            struct vms_dst_rtnend *dst = (void *)buf;
-
-            fprintf (file, _("rtnend: size 0x%08x\n"),
-                     (unsigned)bfd_getl32 (dst->size));
-          }
-          break;
-        case DST__K_PROLOG:
-          {
-            struct vms_dst_prolog *dst = (void *)buf;
-
-            fprintf (file, _("prolog: bkpt address 0x%08x\n"),
-                     (unsigned)bfd_getl32 (dst->bkpt_addr));
-          }
-          break;
-        case DST__K_EPILOG:
-          {
-            struct vms_dst_epilog *dst = (void *)buf;
+	    while (len > 0)
+	      {
+		signed char cmd;
+		unsigned char cmdlen;
+		unsigned int val;
 
-	    /* xgettext:c-format */
-            fprintf (file, _("epilog: flags: %u, count: %u\n"),
-                     dst->flags, (unsigned)bfd_getl32 (dst->count));
-          }
-          break;
-        case DST__K_BLKBEG:
-          {
-            struct vms_dst_blkbeg *dst = (void *)buf;
-            const char *name = (const char *)buf + sizeof (*dst);
+		cmd = buf[0];
+		cmdlen = 0;
 
-	    /* xgettext:c-format */
-            fprintf (file, _("blkbeg: address: 0x%08x, name: %.*s\n"),
-                     (unsigned)bfd_getl32 (dst->address),
-                     name[0], name + 1);
-          }
-          break;
-        case DST__K_BLKEND:
-          {
-            struct vms_dst_blkend *dst = (void *)buf;
-
-            fprintf (file, _("blkend: size: 0x%08x\n"),
-                     (unsigned)bfd_getl32 (dst->size));
-          }
-          break;
-        case DST__K_TYPSPEC:
-          {
-            fprintf (file, _("typspec (len: %u)\n"), len);
-            fprintf (file, _("    name: %.*s\n"), buf[0], buf + 1);
-            evax_bfd_print_typspec (buf + 1 + buf[0], 5, file);
-          }
-          break;
-        case DST__K_SEPTYP:
-          {
-            fprintf (file, _("septyp, name: %.*s\n"), buf[5], buf + 6);
-            evax_bfd_print_valspec (buf, 4, file);
-          }
-          break;
-        case DST__K_RECBEG:
-          {
-            struct vms_dst_recbeg *recbeg = (void *)buf;
-            const char *name = (const char *)buf + sizeof (*recbeg);
-
-            fprintf (file, _("recbeg: name: %.*s\n"), name[0], name + 1);
-            evax_bfd_print_valspec (buf, 4, file);
-            fprintf (file, _("    len: %u bits\n"),
-                     (unsigned)bfd_getl32 (name + 1 + name[0]));
-          }
-          break;
-        case DST__K_RECEND:
-          fprintf (file, _("recend\n"));
-          break;
-        case DST__K_ENUMBEG:
-	  /* xgettext:c-format */
-          fprintf (file, _("enumbeg, len: %u, name: %.*s\n"),
-                   buf[0], buf[1], buf + 2);
-          break;
-        case DST__K_ENUMELT:
-          fprintf (file, _("enumelt, name: %.*s\n"), buf[5], buf + 6);
-          evax_bfd_print_valspec (buf, 4, file);
-          break;
-        case DST__K_ENUMEND:
-          fprintf (file, _("enumend\n"));
-          break;
-        case DST__K_LABEL:
-          {
-            struct vms_dst_label *lab = (void *)buf;
-            fprintf (file, _("label, name: %.*s\n"),
-                     lab->name[0], lab->name + 1);
-            fprintf (file, _("    address: 0x%08x\n"),
-                     (unsigned)bfd_getl32 (lab->value));
-          }
-          break;
-        case DST__K_DIS_RANGE:
-          {
-            unsigned int cnt = bfd_getl32 (buf);
-            unsigned char *rng = buf + 4;
-            unsigned int i;
+		fputs ("    ", file);
 
-            fprintf (file, _("discontiguous range (nbr: %u)\n"), cnt);
-            for (i = 0; i < cnt; i++, rng += 8)
-	      /* xgettext:c-format */
-              fprintf (file, _("    address: 0x%08x, size: %u\n"),
-                       (unsigned)bfd_getl32 (rng),
-                       (unsigned)bfd_getl32 (rng + 4));
-
-          }
-          break;
-        case DST__K_LINE_NUM:
-          {
-            unsigned char *buf_orig = buf;
-
-            fprintf (file, _("line num  (len: %u)\n"), len);
-
-            while (len > 0)
-              {
-                signed char cmd;
-                unsigned char cmdlen;
-                unsigned int val;
-
-                cmd = buf[0];
-                cmdlen = 0;
-
-                fputs ("    ", file);
-
-                switch (cmd)
-                  {
-                  case DST__K_DELTA_PC_W:
-                    val = bfd_getl16 (buf + 1);
-                    fprintf (file, _("delta_pc_w %u\n"), val);
-                    pc += val;
-                    line++;
-                    cmdlen = 3;
-                    break;
-                  case DST__K_INCR_LINUM:
-                    val = buf[1];
-                    fprintf (file, _("incr_linum(b): +%u\n"), val);
-                    line += val;
-                    cmdlen = 2;
-                    break;
-                  case DST__K_INCR_LINUM_W:
-                    val = bfd_getl16 (buf + 1);
-                    fprintf (file, _("incr_linum_w: +%u\n"), val);
-                    line += val;
-                    cmdlen = 3;
-                    break;
-                  case DST__K_INCR_LINUM_L:
-                    val = bfd_getl32 (buf + 1);
-                    fprintf (file, _("incr_linum_l: +%u\n"), val);
-                    line += val;
-                    cmdlen = 5;
-                    break;
-                  case DST__K_SET_LINUM:
-                    line = bfd_getl16 (buf + 1);
-                    fprintf (file, _("set_line_num(w) %u\n"), line);
-                    cmdlen = 3;
-                    break;
-                  case DST__K_SET_LINUM_B:
-                    line = buf[1];
-                    fprintf (file, _("set_line_num_b %u\n"), line);
-                    cmdlen = 2;
-                    break;
-                  case DST__K_SET_LINUM_L:
-                    line = bfd_getl32 (buf + 1);
-                    fprintf (file, _("set_line_num_l %u\n"), line);
-                    cmdlen = 5;
-                    break;
-                  case DST__K_SET_ABS_PC:
-                    pc = bfd_getl32 (buf + 1);
-                    fprintf (file, _("set_abs_pc: 0x%08x\n"), pc);
-                    cmdlen = 5;
-                    break;
-                  case DST__K_DELTA_PC_L:
-                    fprintf (file, _("delta_pc_l: +0x%08x\n"),
-                             (unsigned)bfd_getl32 (buf + 1));
-                    cmdlen = 5;
-                    break;
-                  case DST__K_TERM:
-                    fprintf (file, _("term(b): 0x%02x"), buf[1]);
-                    pc += buf[1];
-                    fprintf (file, _("        pc: 0x%08x\n"), pc);
-                    cmdlen = 2;
-                    break;
-                  case DST__K_TERM_W:
-                    val = bfd_getl16 (buf + 1);
-                    fprintf (file, _("term_w: 0x%04x"), val);
-                    pc += val;
-                    fprintf (file, _("    pc: 0x%08x\n"), pc);
-                    cmdlen = 3;
-                    break;
-                  default:
-                    if (cmd <= 0)
-                      {
-                        fprintf (file, _("delta pc +%-4d"), -cmd);
-                        line++;  /* FIXME: curr increment.  */
-                        pc += -cmd;
+		switch (cmd)
+		  {
+		  case DST__K_DELTA_PC_W:
+		    val = bfd_getl16 (buf + 1);
+		    fprintf (file, _("delta_pc_w %u\n"), val);
+		    pc += val;
+		    line++;
+		    cmdlen = 3;
+		    break;
+		  case DST__K_INCR_LINUM:
+		    val = buf[1];
+		    fprintf (file, _("incr_linum(b): +%u\n"), val);
+		    line += val;
+		    cmdlen = 2;
+		    break;
+		  case DST__K_INCR_LINUM_W:
+		    val = bfd_getl16 (buf + 1);
+		    fprintf (file, _("incr_linum_w: +%u\n"), val);
+		    line += val;
+		    cmdlen = 3;
+		    break;
+		  case DST__K_INCR_LINUM_L:
+		    val = bfd_getl32 (buf + 1);
+		    fprintf (file, _("incr_linum_l: +%u\n"), val);
+		    line += val;
+		    cmdlen = 5;
+		    break;
+		  case DST__K_SET_LINUM:
+		    line = bfd_getl16 (buf + 1);
+		    fprintf (file, _("set_line_num(w) %u\n"), line);
+		    cmdlen = 3;
+		    break;
+		  case DST__K_SET_LINUM_B:
+		    line = buf[1];
+		    fprintf (file, _("set_line_num_b %u\n"), line);
+		    cmdlen = 2;
+		    break;
+		  case DST__K_SET_LINUM_L:
+		    line = bfd_getl32 (buf + 1);
+		    fprintf (file, _("set_line_num_l %u\n"), line);
+		    cmdlen = 5;
+		    break;
+		  case DST__K_SET_ABS_PC:
+		    pc = bfd_getl32 (buf + 1);
+		    fprintf (file, _("set_abs_pc: 0x%08x\n"), pc);
+		    cmdlen = 5;
+		    break;
+		  case DST__K_DELTA_PC_L:
+		    fprintf (file, _("delta_pc_l: +0x%08x\n"),
+			     (unsigned)bfd_getl32 (buf + 1));
+		    cmdlen = 5;
+		    break;
+		  case DST__K_TERM:
+		    fprintf (file, _("term(b): 0x%02x"), buf[1]);
+		    pc += buf[1];
+		    fprintf (file, _("        pc: 0x%08x\n"), pc);
+		    cmdlen = 2;
+		    break;
+		  case DST__K_TERM_W:
+		    val = bfd_getl16 (buf + 1);
+		    fprintf (file, _("term_w: 0x%04x"), val);
+		    pc += val;
+		    fprintf (file, _("    pc: 0x%08x\n"), pc);
+		    cmdlen = 3;
+		    break;
+		  default:
+		    if (cmd <= 0)
+		      {
+			fprintf (file, _("delta pc +%-4d"), -cmd);
+			line++;  /* FIXME: curr increment.  */
+			pc += -cmd;
 			/* xgettext:c-format */
-                        fprintf (file, _("    pc: 0x%08x line: %5u\n"),
-                                 pc, line);
-                        cmdlen = 1;
-                      }
-                    else
-                      fprintf (file, _("    *unhandled* cmd %u\n"), cmd);
-                    break;
-                  }
-                if (cmdlen == 0)
-                  break;
-                len -= cmdlen;
-                buf += cmdlen;
-              }
-            buf = buf_orig;
-          }
-          break;
-        case DST__K_SOURCE:
-          {
-            unsigned char *buf_orig = buf;
-
-            fprintf (file, _("source (len: %u)\n"), len);
-
-            while (len > 0)
-              {
-                signed char cmd = buf[0];
-                unsigned char cmdlen = 0;
-
-                switch (cmd)
-                  {
-                  case DST__K_SRC_DECLFILE:
-                    {
-                      struct vms_dst_src_decl_src *src = (void *)(buf + 1);
-                      const char *name;
+			fprintf (file, _("    pc: 0x%08x line: %5u\n"),
+				 pc, line);
+			cmdlen = 1;
+		      }
+		    else
+		      fprintf (file, _("    *unhandled* cmd %u\n"), cmd);
+		    break;
+		  }
+		if (cmdlen == 0)
+		  break;
+		len -= cmdlen;
+		buf += cmdlen;
+	      }
+	    buf = buf_orig;
+	  }
+	  break;
+	case DST__K_SOURCE:
+	  {
+	    unsigned char *buf_orig = buf;
+
+	    fprintf (file, _("source (len: %u)\n"), len);
+
+	    while (len > 0)
+	      {
+		signed char cmd = buf[0];
+		unsigned char cmdlen = 0;
+
+		switch (cmd)
+		  {
+		  case DST__K_SRC_DECLFILE:
+		    {
+		      struct vms_dst_src_decl_src *src = (void *)(buf + 1);
+		      const char *name;
 
 		      /* xgettext:c-format */
-                      fprintf (file, _("   declfile: len: %u, flags: %u, "
-                                       "fileid: %u\n"),
-                               src->length, src->flags,
-                               (unsigned)bfd_getl16 (src->fileid));
+		      fprintf (file, _("   declfile: len: %u, flags: %u, "
+				       "fileid: %u\n"),
+			       src->length, src->flags,
+			       (unsigned)bfd_getl16 (src->fileid));
 		      /* xgettext:c-format */
-                      fprintf (file, _("   rms: cdt: 0x%08x %08x, "
-                                       "ebk: 0x%08x, ffb: 0x%04x, "
-                                       "rfo: %u\n"),
-                               (unsigned)bfd_getl32 (src->rms_cdt + 4),
-                               (unsigned)bfd_getl32 (src->rms_cdt + 0),
-                               (unsigned)bfd_getl32 (src->rms_ebk),
-                               (unsigned)bfd_getl16 (src->rms_ffb),
-                               src->rms_rfo);
-                      name = (const char *)buf + 1 + sizeof (*src);
-                      fprintf (file, _("   filename   : %.*s\n"),
-                               name[0], name + 1);
-                      name += name[0] + 1;
-                      fprintf (file, _("   module name: %.*s\n"),
-                               name[0], name + 1);
-                      cmdlen = 2 + src->length;
-                    }
-                    break;
-                  case DST__K_SRC_SETFILE:
-                    fprintf (file, _("   setfile %u\n"),
-                             (unsigned)bfd_getl16 (buf + 1));
-                    cmdlen = 3;
-                    break;
-                  case DST__K_SRC_SETREC_W:
-                    fprintf (file, _("   setrec %u\n"),
-                             (unsigned)bfd_getl16 (buf + 1));
-                    cmdlen = 3;
-                    break;
-                  case DST__K_SRC_SETREC_L:
-                    fprintf (file, _("   setrec %u\n"),
-                             (unsigned)bfd_getl32 (buf + 1));
-                    cmdlen = 5;
-                    break;
-                  case DST__K_SRC_SETLNUM_W:
-                    fprintf (file, _("   setlnum %u\n"),
-                             (unsigned)bfd_getl16 (buf + 1));
-                    cmdlen = 3;
-                    break;
-                  case DST__K_SRC_SETLNUM_L:
-                    fprintf (file, _("   setlnum %u\n"),
-                             (unsigned)bfd_getl32 (buf + 1));
-                    cmdlen = 5;
-                    break;
-                  case DST__K_SRC_DEFLINES_W:
-                    fprintf (file, _("   deflines %u\n"),
-                             (unsigned)bfd_getl16 (buf + 1));
-                    cmdlen = 3;
-                    break;
-                  case DST__K_SRC_DEFLINES_B:
-                    fprintf (file, _("   deflines %u\n"), buf[1]);
-                    cmdlen = 2;
-                    break;
-                  case DST__K_SRC_FORMFEED:
-                    fprintf (file, _("   formfeed\n"));
-                    cmdlen = 1;
-                    break;
-                  default:
-                    fprintf (file, _("   *unhandled* cmd %u\n"), cmd);
-                    break;
-                  }
-                if (cmdlen == 0)
-                  break;
-                len -= cmdlen;
-                buf += cmdlen;
-              }
-            buf = buf_orig;
-          }
-          break;
-        default:
-          fprintf (file, _("*unhandled* dst type %u\n"), type);
-          break;
-        }
+		      fprintf (file, _("   rms: cdt: 0x%08x %08x, "
+				       "ebk: 0x%08x, ffb: 0x%04x, "
+				       "rfo: %u\n"),
+			       (unsigned)bfd_getl32 (src->rms_cdt + 4),
+			       (unsigned)bfd_getl32 (src->rms_cdt + 0),
+			       (unsigned)bfd_getl32 (src->rms_ebk),
+			       (unsigned)bfd_getl16 (src->rms_ffb),
+			       src->rms_rfo);
+		      name = (const char *)buf + 1 + sizeof (*src);
+		      fprintf (file, _("   filename   : %.*s\n"),
+			       name[0], name + 1);
+		      name += name[0] + 1;
+		      fprintf (file, _("   module name: %.*s\n"),
+			       name[0], name + 1);
+		      cmdlen = 2 + src->length;
+		    }
+		    break;
+		  case DST__K_SRC_SETFILE:
+		    fprintf (file, _("   setfile %u\n"),
+			     (unsigned)bfd_getl16 (buf + 1));
+		    cmdlen = 3;
+		    break;
+		  case DST__K_SRC_SETREC_W:
+		    fprintf (file, _("   setrec %u\n"),
+			     (unsigned)bfd_getl16 (buf + 1));
+		    cmdlen = 3;
+		    break;
+		  case DST__K_SRC_SETREC_L:
+		    fprintf (file, _("   setrec %u\n"),
+			     (unsigned)bfd_getl32 (buf + 1));
+		    cmdlen = 5;
+		    break;
+		  case DST__K_SRC_SETLNUM_W:
+		    fprintf (file, _("   setlnum %u\n"),
+			     (unsigned)bfd_getl16 (buf + 1));
+		    cmdlen = 3;
+		    break;
+		  case DST__K_SRC_SETLNUM_L:
+		    fprintf (file, _("   setlnum %u\n"),
+			     (unsigned)bfd_getl32 (buf + 1));
+		    cmdlen = 5;
+		    break;
+		  case DST__K_SRC_DEFLINES_W:
+		    fprintf (file, _("   deflines %u\n"),
+			     (unsigned)bfd_getl16 (buf + 1));
+		    cmdlen = 3;
+		    break;
+		  case DST__K_SRC_DEFLINES_B:
+		    fprintf (file, _("   deflines %u\n"), buf[1]);
+		    cmdlen = 2;
+		    break;
+		  case DST__K_SRC_FORMFEED:
+		    fprintf (file, _("   formfeed\n"));
+		    cmdlen = 1;
+		    break;
+		  default:
+		    fprintf (file, _("   *unhandled* cmd %u\n"), cmd);
+		    break;
+		  }
+		if (cmdlen == 0)
+		  break;
+		len -= cmdlen;
+		buf += cmdlen;
+	      }
+	    buf = buf_orig;
+	  }
+	  break;
+	default:
+	  fprintf (file, _("*unhandled* dst type %u\n"), type);
+	  break;
+	}
       free (buf);
     }
 }
@@ -7235,12 +7457,12 @@ evax_bfd_print_image (bfd *abfd, FILE *f
     }
   /* xgettext:c-format */
   fprintf (file, _("EIHD: (size: %u, nbr blocks: %u)\n"),
-           (unsigned)bfd_getl32 (eihd.size),
-           (unsigned)bfd_getl32 (eihd.hdrblkcnt));
+	   (unsigned)bfd_getl32 (eihd.size),
+	   (unsigned)bfd_getl32 (eihd.hdrblkcnt));
   /* xgettext:c-format */
   fprintf (file, _(" majorid: %u, minorid: %u\n"),
-           (unsigned)bfd_getl32 (eihd.majorid),
-           (unsigned)bfd_getl32 (eihd.minorid));
+	   (unsigned)bfd_getl32 (eihd.majorid),
+	   (unsigned)bfd_getl32 (eihd.minorid));
 
   val = (unsigned)bfd_getl32 (eihd.imgtype);
   switch (val)
@@ -7280,24 +7502,24 @@ evax_bfd_print_image (bfd *abfd, FILE *f
   eihs_off = bfd_getl32 (eihd.symdbgoff);
   /* xgettext:c-format */
   fprintf (file, _(" offsets: isd: %u, activ: %u, symdbg: %u, "
-                   "imgid: %u, patch: %u\n"),
-           eisd_off, eiha_off, eihs_off, eihi_off,
-           (unsigned)bfd_getl32 (eihd.patchoff));
+		   "imgid: %u, patch: %u\n"),
+	   eisd_off, eiha_off, eihs_off, eihi_off,
+	   (unsigned)bfd_getl32 (eihd.patchoff));
   fprintf (file, _(" fixup info rva: "));
   bfd_fprintf_vma (abfd, file, bfd_getl64 (eihd.iafva));
   fprintf (file, _(", symbol vector rva: "));
   bfd_fprintf_vma (abfd, file, bfd_getl64 (eihd.symvva));
   eihvn_off = bfd_getl32 (eihd.version_array_off);
   fprintf (file, _("\n"
-                   " version array off: %u\n"),
-           eihvn_off);
+		   " version array off: %u\n"),
+	   eihvn_off);
   fprintf (file,
 	   /* xgettext:c-format */
-           _(" img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"),
-           (unsigned)bfd_getl32 (eihd.imgiocnt),
-           (unsigned)bfd_getl32 (eihd.iochancnt),
-           (unsigned)bfd_getl32 (eihd.privreqs + 4),
-           (unsigned)bfd_getl32 (eihd.privreqs + 0));
+	   _(" img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"),
+	   (unsigned)bfd_getl32 (eihd.imgiocnt),
+	   (unsigned)bfd_getl32 (eihd.iochancnt),
+	   (unsigned)bfd_getl32 (eihd.privreqs + 4),
+	   (unsigned)bfd_getl32 (eihd.privreqs + 0));
   val = (unsigned)bfd_getl32 (eihd.lnkflags);
   fprintf (file, _(" linker flags: %08x:"), val);
   if (val & EIHD__M_LNKDEBUG)
@@ -7331,20 +7553,20 @@ evax_bfd_print_image (bfd *abfd, FILE *f
   fprintf (file, "\n");
   /* xgettext:c-format */
   fprintf (file, _(" ident: 0x%08x, sysver: 0x%08x, "
-                   "match ctrl: %u, symvect_size: %u\n"),
-           (unsigned)bfd_getl32 (eihd.ident),
-           (unsigned)bfd_getl32 (eihd.sysver),
-           eihd.matchctl,
-           (unsigned)bfd_getl32 (eihd.symvect_size));
+		   "match ctrl: %u, symvect_size: %u\n"),
+	   (unsigned)bfd_getl32 (eihd.ident),
+	   (unsigned)bfd_getl32 (eihd.sysver),
+	   eihd.matchctl,
+	   (unsigned)bfd_getl32 (eihd.symvect_size));
   fprintf (file, _(" BPAGE: %u"),
-           (unsigned)bfd_getl32 (eihd.virt_mem_block_size));
+	   (unsigned)bfd_getl32 (eihd.virt_mem_block_size));
   if (val & (EIHD__M_OMV_READY | EIHD__M_EXT_BIND_SECT))
     {
       eihef_off = bfd_getl32 (eihd.ext_fixup_off);
       eihnp_off = bfd_getl32 (eihd.noopt_psect_off);
       /* xgettext:c-format */
       fprintf (file, _(", ext fixup offset: %u, no_opt psect off: %u"),
-               eihef_off, eihnp_off);
+	       eihef_off, eihnp_off);
     }
   fprintf (file, _(", alias: %u\n"), (unsigned)bfd_getl16 (eihd.alias));
 
@@ -7356,92 +7578,92 @@ evax_bfd_print_image (bfd *abfd, FILE *f
 
       fprintf (file, _("system version array information:\n"));
       if (bfd_seek (abfd, (file_ptr) eihvn_off, SEEK_SET)
-          || bfd_bread (&eihvn, sizeof (eihvn), abfd) != sizeof (eihvn))
-        {
-          fprintf (file, _("cannot read EIHVN header\n"));
-          return;
-        }
+	  || bfd_bread (&eihvn, sizeof (eihvn), abfd) != sizeof (eihvn))
+	{
+	  fprintf (file, _("cannot read EIHVN header\n"));
+	  return;
+	}
       mask = bfd_getl32 (eihvn.subsystem_mask);
       for (j = 0; j < 32; j++)
-        if (mask & (1 << j))
-          {
-            struct vms_eihvn_subversion ver;
-            if (bfd_bread (&ver, sizeof (ver), abfd) != sizeof (ver))
-              {
-                fprintf (file, _("cannot read EIHVN version\n"));
-                return;
-              }
-            fprintf (file, _("   %02u "), j);
-            switch (j)
-              {
-              case EIHVN__BASE_IMAGE_BIT:
+	if (mask & (1 << j))
+	  {
+	    struct vms_eihvn_subversion ver;
+	    if (bfd_bread (&ver, sizeof (ver), abfd) != sizeof (ver))
+	      {
+		fprintf (file, _("cannot read EIHVN version\n"));
+		return;
+	      }
+	    fprintf (file, _("   %02u "), j);
+	    switch (j)
+	      {
+	      case EIHVN__BASE_IMAGE_BIT:
 		fputs (_("BASE_IMAGE       "), file);
-                break;
-              case EIHVN__MEMORY_MANAGEMENT_BIT:
-                fputs (_("MEMORY_MANAGEMENT"), file);
-                break;
-              case EIHVN__IO_BIT:
-                fputs (_("IO               "), file);
-                break;
-              case EIHVN__FILES_VOLUMES_BIT:
-                fputs (_("FILES_VOLUMES    "), file);
-                break;
-              case EIHVN__PROCESS_SCHED_BIT:
-                fputs (_("PROCESS_SCHED    "), file);
-                break;
-              case EIHVN__SYSGEN_BIT:
+		break;
+	      case EIHVN__MEMORY_MANAGEMENT_BIT:
+		fputs (_("MEMORY_MANAGEMENT"), file);
+		break;
+	      case EIHVN__IO_BIT:
+		fputs (_("IO               "), file);
+		break;
+	      case EIHVN__FILES_VOLUMES_BIT:
+		fputs (_("FILES_VOLUMES    "), file);
+		break;
+	      case EIHVN__PROCESS_SCHED_BIT:
+		fputs (_("PROCESS_SCHED    "), file);
+		break;
+	      case EIHVN__SYSGEN_BIT:
 		fputs (_("SYSGEN           "), file);
-                break;
-              case EIHVN__CLUSTERS_LOCKMGR_BIT:
-                fputs (_("CLUSTERS_LOCKMGR "), file);
-                break;
-              case EIHVN__LOGICAL_NAMES_BIT:
-                fputs (_("LOGICAL_NAMES    "), file);
-                break;
-              case EIHVN__SECURITY_BIT:
+		break;
+	      case EIHVN__CLUSTERS_LOCKMGR_BIT:
+		fputs (_("CLUSTERS_LOCKMGR "), file);
+		break;
+	      case EIHVN__LOGICAL_NAMES_BIT:
+		fputs (_("LOGICAL_NAMES    "), file);
+		break;
+	      case EIHVN__SECURITY_BIT:
 		fputs (_("SECURITY         "), file);
-                break;
-              case EIHVN__IMAGE_ACTIVATOR_BIT:
-                fputs (_("IMAGE_ACTIVATOR  "), file);
-                break;
-              case EIHVN__NETWORKS_BIT:
+		break;
+	      case EIHVN__IMAGE_ACTIVATOR_BIT:
+		fputs (_("IMAGE_ACTIVATOR  "), file);
+		break;
+	      case EIHVN__NETWORKS_BIT:
 		fputs (_("NETWORKS         "), file);
-                break;
-              case EIHVN__COUNTERS_BIT:
+		break;
+	      case EIHVN__COUNTERS_BIT:
 		fputs (_("COUNTERS         "), file);
-                break;
-              case EIHVN__STABLE_BIT:
+		break;
+	      case EIHVN__STABLE_BIT:
 		fputs (_("STABLE           "), file);
-                break;
-              case EIHVN__MISC_BIT:
-                fputs (_("MISC             "), file);
-                break;
-              case EIHVN__CPU_BIT:
-                fputs (_("CPU              "), file);
-                break;
-              case EIHVN__VOLATILE_BIT:
+		break;
+	      case EIHVN__MISC_BIT:
+		fputs (_("MISC             "), file);
+		break;
+	      case EIHVN__CPU_BIT:
+		fputs (_("CPU              "), file);
+		break;
+	      case EIHVN__VOLATILE_BIT:
 		fputs (_("VOLATILE         "), file);
-                break;
-              case EIHVN__SHELL_BIT:
+		break;
+	      case EIHVN__SHELL_BIT:
 		fputs (_("SHELL            "), file);
-                break;
-              case EIHVN__POSIX_BIT:
+		break;
+	      case EIHVN__POSIX_BIT:
 		fputs (_("POSIX            "), file);
-                break;
-              case EIHVN__MULTI_PROCESSING_BIT:
-                fputs (_("MULTI_PROCESSING "), file);
-                break;
-              case EIHVN__GALAXY_BIT:
+		break;
+	      case EIHVN__MULTI_PROCESSING_BIT:
+		fputs (_("MULTI_PROCESSING "), file);
+		break;
+	      case EIHVN__GALAXY_BIT:
 		fputs (_("GALAXY           "), file);
-                break;
-              default:
-                fputs (_("*unknown*        "), file);
-                break;
-              }
-            fprintf (file, ": %u.%u\n",
-                     (unsigned)bfd_getl16 (ver.major),
-                     (unsigned)bfd_getl16 (ver.minor));
-          }
+		break;
+	      default:
+		fputs (_("*unknown*        "), file);
+		break;
+	      }
+	    fprintf (file, ": %u.%u\n",
+		     (unsigned)bfd_getl16 (ver.major),
+		     (unsigned)bfd_getl16 (ver.minor));
+	  }
     }
 
   if (eiha_off != 0)
@@ -7449,88 +7671,88 @@ evax_bfd_print_image (bfd *abfd, FILE *f
       struct vms_eiha eiha;
 
       if (bfd_seek (abfd, (file_ptr) eiha_off, SEEK_SET)
-          || bfd_bread (&eiha, sizeof (eiha), abfd) != sizeof (eiha))
-        {
-          fprintf (file, _("cannot read EIHA\n"));
-          return;
-        }
+	  || bfd_bread (&eiha, sizeof (eiha), abfd) != sizeof (eiha))
+	{
+	  fprintf (file, _("cannot read EIHA\n"));
+	  return;
+	}
       fprintf (file, _("Image activation:  (size=%u)\n"),
-               (unsigned)bfd_getl32 (eiha.size));
+	       (unsigned)bfd_getl32 (eiha.size));
       /* xgettext:c-format */
       fprintf (file, _(" First address : 0x%08x 0x%08x\n"),
-               (unsigned)bfd_getl32 (eiha.tfradr1_h),
-               (unsigned)bfd_getl32 (eiha.tfradr1));
+	       (unsigned)bfd_getl32 (eiha.tfradr1_h),
+	       (unsigned)bfd_getl32 (eiha.tfradr1));
       /* xgettext:c-format */
       fprintf (file, _(" Second address: 0x%08x 0x%08x\n"),
-               (unsigned)bfd_getl32 (eiha.tfradr2_h),
-               (unsigned)bfd_getl32 (eiha.tfradr2));
+	       (unsigned)bfd_getl32 (eiha.tfradr2_h),
+	       (unsigned)bfd_getl32 (eiha.tfradr2));
       /* xgettext:c-format */
       fprintf (file, _(" Third address : 0x%08x 0x%08x\n"),
-               (unsigned)bfd_getl32 (eiha.tfradr3_h),
-               (unsigned)bfd_getl32 (eiha.tfradr3));
+	       (unsigned)bfd_getl32 (eiha.tfradr3_h),
+	       (unsigned)bfd_getl32 (eiha.tfradr3));
       /* xgettext:c-format */
       fprintf (file, _(" Fourth address: 0x%08x 0x%08x\n"),
-               (unsigned)bfd_getl32 (eiha.tfradr4_h),
-               (unsigned)bfd_getl32 (eiha.tfradr4));
+	       (unsigned)bfd_getl32 (eiha.tfradr4_h),
+	       (unsigned)bfd_getl32 (eiha.tfradr4));
       /* xgettext:c-format */
       fprintf (file, _(" Shared image  : 0x%08x 0x%08x\n"),
-               (unsigned)bfd_getl32 (eiha.inishr_h),
-               (unsigned)bfd_getl32 (eiha.inishr));
+	       (unsigned)bfd_getl32 (eiha.inishr_h),
+	       (unsigned)bfd_getl32 (eiha.inishr));
     }
   if (eihi_off != 0)
     {
       struct vms_eihi eihi;
 
       if (bfd_seek (abfd, (file_ptr) eihi_off, SEEK_SET)
-          || bfd_bread (&eihi, sizeof (eihi), abfd) != sizeof (eihi))
-        {
-          fprintf (file, _("cannot read EIHI\n"));
-          return;
-        }
+	  || bfd_bread (&eihi, sizeof (eihi), abfd) != sizeof (eihi))
+	{
+	  fprintf (file, _("cannot read EIHI\n"));
+	  return;
+	}
       /* xgettext:c-format */
       fprintf (file, _("Image identification: (major: %u, minor: %u)\n"),
-               (unsigned)bfd_getl32 (eihi.majorid),
-               (unsigned)bfd_getl32 (eihi.minorid));
+	       (unsigned)bfd_getl32 (eihi.majorid),
+	       (unsigned)bfd_getl32 (eihi.minorid));
       fprintf (file, _(" image name       : %.*s\n"),
-               eihi.imgnam[0], eihi.imgnam + 1);
+	       eihi.imgnam[0], eihi.imgnam + 1);
       fprintf (file, _(" link time        : %s\n"),
-               vms_time_to_str (eihi.linktime));
+	       vms_time_to_str (eihi.linktime));
       fprintf (file, _(" image ident      : %.*s\n"),
-               eihi.imgid[0], eihi.imgid + 1);
+	       eihi.imgid[0], eihi.imgid + 1);
       fprintf (file, _(" linker ident     : %.*s\n"),
-               eihi.linkid[0], eihi.linkid + 1);
+	       eihi.linkid[0], eihi.linkid + 1);
       fprintf (file, _(" image build ident: %.*s\n"),
-               eihi.imgbid[0], eihi.imgbid + 1);
+	       eihi.imgbid[0], eihi.imgbid + 1);
     }
   if (eihs_off != 0)
     {
       struct vms_eihs eihs;
 
       if (bfd_seek (abfd, (file_ptr) eihs_off, SEEK_SET)
-          || bfd_bread (&eihs, sizeof (eihs), abfd) != sizeof (eihs))
-        {
-          fprintf (file, _("cannot read EIHS\n"));
-          return;
-        }
+	  || bfd_bread (&eihs, sizeof (eihs), abfd) != sizeof (eihs))
+	{
+	  fprintf (file, _("cannot read EIHS\n"));
+	  return;
+	}
       /* xgettext:c-format */
       fprintf (file, _("Image symbol & debug table: (major: %u, minor: %u)\n"),
-               (unsigned)bfd_getl32 (eihs.majorid),
-               (unsigned)bfd_getl32 (eihs.minorid));
+	       (unsigned)bfd_getl32 (eihs.majorid),
+	       (unsigned)bfd_getl32 (eihs.minorid));
       dst_vbn = bfd_getl32 (eihs.dstvbn);
       dst_size = bfd_getl32 (eihs.dstsize);
       /* xgettext:c-format */
       fprintf (file, _(" debug symbol table : vbn: %u, size: %u (0x%x)\n"),
-               dst_vbn, dst_size, dst_size);
+	       dst_vbn, dst_size, dst_size);
       gst_vbn = bfd_getl32 (eihs.gstvbn);
       gst_size = bfd_getl32 (eihs.gstsize);
       /* xgettext:c-format */
       fprintf (file, _(" global symbol table: vbn: %u, records: %u\n"),
-               gst_vbn, gst_size);
+	       gst_vbn, gst_size);
       dmt_vbn = bfd_getl32 (eihs.dmtvbn);
       dmt_size = bfd_getl32 (eihs.dmtsize);
       /* xgettext:c-format */
       fprintf (file, _(" debug module table : vbn: %u, size: %u\n"),
-               dmt_vbn, dmt_size);
+	       dmt_vbn, dmt_size);
     }
   while (eisd_off != 0)
     {
@@ -7538,59 +7760,59 @@ evax_bfd_print_image (bfd *abfd, FILE *f
       unsigned int len;
 
       while (1)
-        {
-          if (bfd_seek (abfd, (file_ptr) eisd_off, SEEK_SET)
-              || bfd_bread (&eisd, sizeof (eisd), abfd) != sizeof (eisd))
-            {
-              fprintf (file, _("cannot read EISD\n"));
-              return;
-            }
-          len = (unsigned)bfd_getl32 (eisd.eisdsize);
-          if (len != (unsigned)-1)
-            break;
-
-          /* Next block.  */
-          eisd_off = (eisd_off + VMS_BLOCK_SIZE) & ~(VMS_BLOCK_SIZE - 1);
-        }
+	{
+	  if (bfd_seek (abfd, (file_ptr) eisd_off, SEEK_SET)
+	      || bfd_bread (&eisd, sizeof (eisd), abfd) != sizeof (eisd))
+	    {
+	      fprintf (file, _("cannot read EISD\n"));
+	      return;
+	    }
+	  len = (unsigned)bfd_getl32 (eisd.eisdsize);
+	  if (len != (unsigned)-1)
+	    break;
+
+	  /* Next block.  */
+	  eisd_off = (eisd_off + VMS_BLOCK_SIZE) & ~(VMS_BLOCK_SIZE - 1);
+	}
       /* xgettext:c-format */
       fprintf (file, _("Image section descriptor: (major: %u, minor: %u, "
-                       "size: %u, offset: %u)\n"),
-               (unsigned)bfd_getl32 (eisd.majorid),
-               (unsigned)bfd_getl32 (eisd.minorid),
-               len, eisd_off);
+		       "size: %u, offset: %u)\n"),
+	       (unsigned)bfd_getl32 (eisd.majorid),
+	       (unsigned)bfd_getl32 (eisd.minorid),
+	       len, eisd_off);
       if (len == 0)
-        break;
+	break;
       /* xgettext:c-format */
       fprintf (file, _(" section: base: 0x%08x%08x size: 0x%08x\n"),
-               (unsigned)bfd_getl32 (eisd.virt_addr + 4),
-               (unsigned)bfd_getl32 (eisd.virt_addr + 0),
-               (unsigned)bfd_getl32 (eisd.secsize));
+	       (unsigned)bfd_getl32 (eisd.virt_addr + 4),
+	       (unsigned)bfd_getl32 (eisd.virt_addr + 0),
+	       (unsigned)bfd_getl32 (eisd.secsize));
       val = (unsigned)bfd_getl32 (eisd.flags);
       fprintf (file, _(" flags: 0x%04x"), val);
       if (val & EISD__M_GBL)
-        fprintf (file, " GBL");
+	fprintf (file, " GBL");
       if (val & EISD__M_CRF)
-        fprintf (file, " CRF");
+	fprintf (file, " CRF");
       if (val & EISD__M_DZRO)
-        fprintf (file, " DZRO");
+	fprintf (file, " DZRO");
       if (val & EISD__M_WRT)
-        fprintf (file, " WRT");
+	fprintf (file, " WRT");
       if (val & EISD__M_INITALCODE)
 	fprintf (file, " INITALCODE");
       if (val & EISD__M_BASED)
-        fprintf (file, " BASED");
+	fprintf (file, " BASED");
       if (val & EISD__M_FIXUPVEC)
 	fprintf (file, " FIXUPVEC");
       if (val & EISD__M_RESIDENT)
 	fprintf (file, " RESIDENT");
       if (val & EISD__M_VECTOR)
-        fprintf (file, " VECTOR");
+	fprintf (file, " VECTOR");
       if (val & EISD__M_PROTECT)
 	fprintf (file, " PROTECT");
       if (val & EISD__M_LASTCLU)
 	fprintf (file, " LASTCLU");
       if (val & EISD__M_EXE)
-        fprintf (file, " EXE");
+	fprintf (file, " EXE");
       if (val & EISD__M_NONSHRADR)
 	fprintf (file, " NONSHRADR");
       if (val & EISD__M_QUAD_LENGTH)
@@ -7599,110 +7821,110 @@ evax_bfd_print_image (bfd *abfd, FILE *f
 	fprintf (file, " ALLOC_64BIT");
       fprintf (file, "\n");
       if (val & EISD__M_FIXUPVEC)
-        {
-          eiaf_vbn = bfd_getl32 (eisd.vbn);
-          eiaf_size = bfd_getl32 (eisd.secsize);
-        }
+	{
+	  eiaf_vbn = bfd_getl32 (eisd.vbn);
+	  eiaf_size = bfd_getl32 (eisd.secsize);
+	}
       /* xgettext:c-format */
       fprintf (file, _(" vbn: %u, pfc: %u, matchctl: %u type: %u ("),
-               (unsigned)bfd_getl32 (eisd.vbn),
-               eisd.pfc, eisd.matchctl, eisd.type);
+	       (unsigned)bfd_getl32 (eisd.vbn),
+	       eisd.pfc, eisd.matchctl, eisd.type);
       switch (eisd.type)
-        {
-        case EISD__K_NORMAL:
-          fputs (_("NORMAL"), file);
-          break;
-        case EISD__K_SHRFXD:
-          fputs (_("SHRFXD"), file);
-          break;
-        case EISD__K_PRVFXD:
-          fputs (_("PRVFXD"), file);
-          break;
-        case EISD__K_SHRPIC:
-          fputs (_("SHRPIC"), file);
-          break;
-        case EISD__K_PRVPIC:
-          fputs (_("PRVPIC"), file);
-          break;
-        case EISD__K_USRSTACK:
-          fputs (_("USRSTACK"), file);
-          break;
-        default:
-          fputs (_("*unknown*"), file);
-          break;
-        }
+	{
+	case EISD__K_NORMAL:
+	  fputs (_("NORMAL"), file);
+	  break;
+	case EISD__K_SHRFXD:
+	  fputs (_("SHRFXD"), file);
+	  break;
+	case EISD__K_PRVFXD:
+	  fputs (_("PRVFXD"), file);
+	  break;
+	case EISD__K_SHRPIC:
+	  fputs (_("SHRPIC"), file);
+	  break;
+	case EISD__K_PRVPIC:
+	  fputs (_("PRVPIC"), file);
+	  break;
+	case EISD__K_USRSTACK:
+	  fputs (_("USRSTACK"), file);
+	  break;
+	default:
+	  fputs (_("*unknown*"), file);
+	  break;
+	}
       fputs (_(")\n"), file);
       if (val & EISD__M_GBL)
 	/* xgettext:c-format */
-        fprintf (file, _(" ident: 0x%08x, name: %.*s\n"),
-                 (unsigned)bfd_getl32 (eisd.ident),
-                 eisd.gblnam[0], eisd.gblnam + 1);
+	fprintf (file, _(" ident: 0x%08x, name: %.*s\n"),
+		 (unsigned)bfd_getl32 (eisd.ident),
+		 eisd.gblnam[0], eisd.gblnam + 1);
       eisd_off += len;
     }
 
   if (dmt_vbn != 0)
     {
       if (bfd_seek (abfd, (file_ptr) (dmt_vbn - 1) * VMS_BLOCK_SIZE, SEEK_SET))
-        {
-          fprintf (file, _("cannot read DMT\n"));
-          return;
-        }
+	{
+	  fprintf (file, _("cannot read DMT\n"));
+	  return;
+	}
 
       fprintf (file, _("Debug module table:\n"));
 
       while (dmt_size > 0)
-        {
-          struct vms_dmt_header dmth;
-          unsigned int count;
-
-          if (bfd_bread (&dmth, sizeof (dmth), abfd) != sizeof (dmth))
-            {
-              fprintf (file, _("cannot read DMT header\n"));
-              return;
-            }
-          count = bfd_getl16 (dmth.psect_count);
-          fprintf (file,
+	{
+	  struct vms_dmt_header dmth;
+	  unsigned int count;
+
+	  if (bfd_bread (&dmth, sizeof (dmth), abfd) != sizeof (dmth))
+	    {
+	      fprintf (file, _("cannot read DMT header\n"));
+	      return;
+	    }
+	  count = bfd_getl16 (dmth.psect_count);
+	  fprintf (file,
 		   /* xgettext:c-format */
-                   _(" module offset: 0x%08x, size: 0x%08x, (%u psects)\n"),
-                   (unsigned)bfd_getl32 (dmth.modbeg),
-                   (unsigned)bfd_getl32 (dmth.size), count);
-          dmt_size -= sizeof (dmth);
-          while (count > 0)
-            {
-              struct vms_dmt_psect dmtp;
-
-              if (bfd_bread (&dmtp, sizeof (dmtp), abfd) != sizeof (dmtp))
-                {
-                  fprintf (file, _("cannot read DMT psect\n"));
-                  return;
-                }
+		   _(" module offset: 0x%08x, size: 0x%08x, (%u psects)\n"),
+		   (unsigned)bfd_getl32 (dmth.modbeg),
+		   (unsigned)bfd_getl32 (dmth.size), count);
+	  dmt_size -= sizeof (dmth);
+	  while (count > 0)
+	    {
+	      struct vms_dmt_psect dmtp;
+
+	      if (bfd_bread (&dmtp, sizeof (dmtp), abfd) != sizeof (dmtp))
+		{
+		  fprintf (file, _("cannot read DMT psect\n"));
+		  return;
+		}
 	      /* xgettext:c-format */
-              fprintf (file, _("  psect start: 0x%08x, length: %u\n"),
-                       (unsigned)bfd_getl32 (dmtp.start),
-                       (unsigned)bfd_getl32 (dmtp.length));
-              count--;
-              dmt_size -= sizeof (dmtp);
-            }
-        }
+	      fprintf (file, _("  psect start: 0x%08x, length: %u\n"),
+		       (unsigned)bfd_getl32 (dmtp.start),
+		       (unsigned)bfd_getl32 (dmtp.length));
+	      count--;
+	      dmt_size -= sizeof (dmtp);
+	    }
+	}
     }
 
   if (dst_vbn != 0)
     {
       if (bfd_seek (abfd, (file_ptr) (dst_vbn - 1) * VMS_BLOCK_SIZE, SEEK_SET))
-        {
-          fprintf (file, _("cannot read DST\n"));
-          return;
-        }
+	{
+	  fprintf (file, _("cannot read DST\n"));
+	  return;
+	}
 
       evax_bfd_print_dst (abfd, dst_size, file);
     }
   if (gst_vbn != 0)
     {
       if (bfd_seek (abfd, (file_ptr) (gst_vbn - 1) * VMS_BLOCK_SIZE, SEEK_SET))
-        {
-          fprintf (file, _("cannot read GST\n"));
-          return;
-        }
+	{
+	  fprintf (file, _("cannot read GST\n"));
+	  return;
+	}
 
       fprintf (file, _("Global symbol table:\n"));
       evax_bfd_print_eobj (abfd, file);
@@ -7724,180 +7946,180 @@ evax_bfd_print_image (bfd *abfd, FILE *f
       buf = bfd_malloc (eiaf_size);
 
       if (bfd_seek (abfd, (file_ptr) (eiaf_vbn - 1) * VMS_BLOCK_SIZE, SEEK_SET)
-          || bfd_bread (buf, eiaf_size, abfd) != eiaf_size)
-        {
-          fprintf (file, _("cannot read EIHA\n"));
-          free (buf);
-          return;
-        }
+	  || bfd_bread (buf, eiaf_size, abfd) != eiaf_size)
+	{
+	  fprintf (file, _("cannot read EIHA\n"));
+	  free (buf);
+	  return;
+	}
       eiaf = (struct vms_eiaf *)buf;
       fprintf (file,
 	       /* xgettext:c-format */
-               _("Image activator fixup: (major: %u, minor: %u)\n"),
-               (unsigned)bfd_getl32 (eiaf->majorid),
-               (unsigned)bfd_getl32 (eiaf->minorid));
+	       _("Image activator fixup: (major: %u, minor: %u)\n"),
+	       (unsigned)bfd_getl32 (eiaf->majorid),
+	       (unsigned)bfd_getl32 (eiaf->minorid));
       /* xgettext:c-format */
       fprintf (file, _("  iaflink : 0x%08x %08x\n"),
-               (unsigned)bfd_getl32 (eiaf->iaflink + 0),
-               (unsigned)bfd_getl32 (eiaf->iaflink + 4));
+	       (unsigned)bfd_getl32 (eiaf->iaflink + 0),
+	       (unsigned)bfd_getl32 (eiaf->iaflink + 4));
       /* xgettext:c-format */
       fprintf (file, _("  fixuplnk: 0x%08x %08x\n"),
-               (unsigned)bfd_getl32 (eiaf->fixuplnk + 0),
-               (unsigned)bfd_getl32 (eiaf->fixuplnk + 4));
+	       (unsigned)bfd_getl32 (eiaf->fixuplnk + 0),
+	       (unsigned)bfd_getl32 (eiaf->fixuplnk + 4));
       fprintf (file, _("  size : %u\n"),
-               (unsigned)bfd_getl32 (eiaf->size));
+	       (unsigned)bfd_getl32 (eiaf->size));
       fprintf (file, _("  flags: 0x%08x\n"),
-               (unsigned)bfd_getl32 (eiaf->flags));
+	       (unsigned)bfd_getl32 (eiaf->flags));
       qrelfixoff = bfd_getl32 (eiaf->qrelfixoff);
       lrelfixoff = bfd_getl32 (eiaf->lrelfixoff);
       /* xgettext:c-format */
       fprintf (file, _("  qrelfixoff: %5u, lrelfixoff: %5u\n"),
-               qrelfixoff, lrelfixoff);
+	       qrelfixoff, lrelfixoff);
       qdotadroff = bfd_getl32 (eiaf->qdotadroff);
       ldotadroff = bfd_getl32 (eiaf->ldotadroff);
       /* xgettext:c-format */
       fprintf (file, _("  qdotadroff: %5u, ldotadroff: %5u\n"),
-               qdotadroff, ldotadroff);
+	       qdotadroff, ldotadroff);
       codeadroff = bfd_getl32 (eiaf->codeadroff);
       lpfixoff = bfd_getl32 (eiaf->lpfixoff);
       /* xgettext:c-format */
       fprintf (file, _("  codeadroff: %5u, lpfixoff  : %5u\n"),
-               codeadroff, lpfixoff);
+	       codeadroff, lpfixoff);
       chgprtoff = bfd_getl32 (eiaf->chgprtoff);
       fprintf (file, _("  chgprtoff : %5u\n"), chgprtoff);
       shrimgcnt = bfd_getl32 (eiaf->shrimgcnt);
       shlstoff = bfd_getl32 (eiaf->shlstoff);
       /* xgettext:c-format */
       fprintf (file, _("  shlstoff  : %5u, shrimgcnt : %5u\n"),
-               shlstoff, shrimgcnt);
+	       shlstoff, shrimgcnt);
       /* xgettext:c-format */
       fprintf (file, _("  shlextra  : %5u, permctx   : %5u\n"),
-               (unsigned)bfd_getl32 (eiaf->shlextra),
-               (unsigned)bfd_getl32 (eiaf->permctx));
+	       (unsigned)bfd_getl32 (eiaf->shlextra),
+	       (unsigned)bfd_getl32 (eiaf->permctx));
       fprintf (file, _("  base_va : 0x%08x\n"),
-               (unsigned)bfd_getl32 (eiaf->base_va));
+	       (unsigned)bfd_getl32 (eiaf->base_va));
       fprintf (file, _("  lppsbfixoff: %5u\n"),
-               (unsigned)bfd_getl32 (eiaf->lppsbfixoff));
+	       (unsigned)bfd_getl32 (eiaf->lppsbfixoff));
 
       if (shlstoff)
-        {
-          struct vms_shl *shl = (struct vms_shl *)(buf + shlstoff);
-          unsigned int j;
-
-          fprintf (file, _(" Shareable images:\n"));
-          for (j = 0; j < shrimgcnt; j++, shl++)
-            {
-              fprintf (file,
+	{
+	  struct vms_shl *shl = (struct vms_shl *)(buf + shlstoff);
+	  unsigned int j;
+
+	  fprintf (file, _(" Shareable images:\n"));
+	  for (j = 0; j < shrimgcnt; j++, shl++)
+	    {
+	      fprintf (file,
 		       /* xgettext:c-format */
-                       _("  %u: size: %u, flags: 0x%02x, name: %.*s\n"),
-                       j, shl->size, shl->flags,
-                       shl->imgnam[0], shl->imgnam + 1);
-            }
-        }
+		       _("  %u: size: %u, flags: 0x%02x, name: %.*s\n"),
+		       j, shl->size, shl->flags,
+		       shl->imgnam[0], shl->imgnam + 1);
+	    }
+	}
       if (qrelfixoff != 0)
-        {
-          fprintf (file, _(" quad-word relocation fixups:\n"));
-          evax_bfd_print_relocation_records (file, buf + qrelfixoff, 8);
-        }
+	{
+	  fprintf (file, _(" quad-word relocation fixups:\n"));
+	  evax_bfd_print_relocation_records (file, buf + qrelfixoff, 8);
+	}
       if (lrelfixoff != 0)
-        {
-          fprintf (file, _(" long-word relocation fixups:\n"));
-          evax_bfd_print_relocation_records (file, buf + lrelfixoff, 4);
-        }
+	{
+	  fprintf (file, _(" long-word relocation fixups:\n"));
+	  evax_bfd_print_relocation_records (file, buf + lrelfixoff, 4);
+	}
       if (qdotadroff != 0)
-        {
-          fprintf (file, _(" quad-word .address reference fixups:\n"));
-          evax_bfd_print_address_fixups (file, buf + qdotadroff);
-        }
+	{
+	  fprintf (file, _(" quad-word .address reference fixups:\n"));
+	  evax_bfd_print_address_fixups (file, buf + qdotadroff);
+	}
       if (ldotadroff != 0)
-        {
-          fprintf (file, _(" long-word .address reference fixups:\n"));
-          evax_bfd_print_address_fixups (file, buf + ldotadroff);
-        }
+	{
+	  fprintf (file, _(" long-word .address reference fixups:\n"));
+	  evax_bfd_print_address_fixups (file, buf + ldotadroff);
+	}
       if (codeadroff != 0)
-        {
-          fprintf (file, _(" Code Address Reference Fixups:\n"));
-          evax_bfd_print_reference_fixups (file, buf + codeadroff);
-        }
+	{
+	  fprintf (file, _(" Code Address Reference Fixups:\n"));
+	  evax_bfd_print_reference_fixups (file, buf + codeadroff);
+	}
       if (lpfixoff != 0)
-        {
-          fprintf (file, _(" Linkage Pairs Reference Fixups:\n"));
-          evax_bfd_print_reference_fixups (file, buf + lpfixoff);
-        }
+	{
+	  fprintf (file, _(" Linkage Pairs Reference Fixups:\n"));
+	  evax_bfd_print_reference_fixups (file, buf + lpfixoff);
+	}
       if (chgprtoff)
-        {
-          unsigned int count = (unsigned)bfd_getl32 (buf + chgprtoff);
-          struct vms_eicp *eicp = (struct vms_eicp *)(buf + chgprtoff + 4);
-          unsigned int j;
-
-          fprintf (file, _(" Change Protection (%u entries):\n"), count);
-          for (j = 0; j < count; j++, eicp++)
-            {
-              unsigned int prot = bfd_getl32 (eicp->newprt);
-              fprintf (file,
+	{
+	  unsigned int count = (unsigned)bfd_getl32 (buf + chgprtoff);
+	  struct vms_eicp *eicp = (struct vms_eicp *)(buf + chgprtoff + 4);
+	  unsigned int j;
+
+	  fprintf (file, _(" Change Protection (%u entries):\n"), count);
+	  for (j = 0; j < count; j++, eicp++)
+	    {
+	      unsigned int prot = bfd_getl32 (eicp->newprt);
+	      fprintf (file,
 		       /* xgettext:c-format */
-                       _("  base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "),
-                       (unsigned)bfd_getl32 (eicp->baseva + 4),
-                       (unsigned)bfd_getl32 (eicp->baseva + 0),
-                       (unsigned)bfd_getl32 (eicp->size),
-                       (unsigned)bfd_getl32 (eicp->newprt));
-              switch (prot)
-                {
-                case PRT__C_NA:
-                  fprintf (file, "NA");
-                  break;
-                case PRT__C_RESERVED:
-                  fprintf (file, "RES");
-                  break;
-                case PRT__C_KW:
-                  fprintf (file, "KW");
-                  break;
-                case PRT__C_KR:
-                  fprintf (file, "KR");
-                  break;
-                case PRT__C_UW:
-                  fprintf (file, "UW");
-                  break;
-                case PRT__C_EW:
-                  fprintf (file, "EW");
-                  break;
-                case PRT__C_ERKW:
-                  fprintf (file, "ERKW");
-                  break;
-                case PRT__C_ER:
-                  fprintf (file, "ER");
-                  break;
-                case PRT__C_SW:
-                  fprintf (file, "SW");
-                  break;
-                case PRT__C_SREW:
-                  fprintf (file, "SREW");
-                  break;
-                case PRT__C_SRKW:
-                  fprintf (file, "SRKW");
-                  break;
-                case PRT__C_SR:
-                  fprintf (file, "SR");
-                  break;
-                case PRT__C_URSW:
-                  fprintf (file, "URSW");
-                  break;
-                case PRT__C_UREW:
-                  fprintf (file, "UREW");
-                  break;
-                case PRT__C_URKW:
-                  fprintf (file, "URKW");
-                  break;
-                case PRT__C_UR:
-                  fprintf (file, "UR");
-                  break;
-                default:
-                  fputs ("??", file);
-                  break;
-                }
-              fputc ('\n', file);
-            }
-        }
+		       _("  base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "),
+		       (unsigned)bfd_getl32 (eicp->baseva + 4),
+		       (unsigned)bfd_getl32 (eicp->baseva + 0),
+		       (unsigned)bfd_getl32 (eicp->size),
+		       (unsigned)bfd_getl32 (eicp->newprt));
+	      switch (prot)
+		{
+		case PRT__C_NA:
+		  fprintf (file, "NA");
+		  break;
+		case PRT__C_RESERVED:
+		  fprintf (file, "RES");
+		  break;
+		case PRT__C_KW:
+		  fprintf (file, "KW");
+		  break;
+		case PRT__C_KR:
+		  fprintf (file, "KR");
+		  break;
+		case PRT__C_UW:
+		  fprintf (file, "UW");
+		  break;
+		case PRT__C_EW:
+		  fprintf (file, "EW");
+		  break;
+		case PRT__C_ERKW:
+		  fprintf (file, "ERKW");
+		  break;
+		case PRT__C_ER:
+		  fprintf (file, "ER");
+		  break;
+		case PRT__C_SW:
+		  fprintf (file, "SW");
+		  break;
+		case PRT__C_SREW:
+		  fprintf (file, "SREW");
+		  break;
+		case PRT__C_SRKW:
+		  fprintf (file, "SRKW");
+		  break;
+		case PRT__C_SR:
+		  fprintf (file, "SR");
+		  break;
+		case PRT__C_URSW:
+		  fprintf (file, "URSW");
+		  break;
+		case PRT__C_UREW:
+		  fprintf (file, "UREW");
+		  break;
+		case PRT__C_URKW:
+		  fprintf (file, "URKW");
+		  break;
+		case PRT__C_UR:
+		  fprintf (file, "UR");
+		  break;
+		default:
+		  fputs ("??", file);
+		  break;
+		}
+	      fputc ('\n', file);
+	    }
+	}
       free (buf);
     }
 }
@@ -7912,7 +8134,7 @@ vms_bfd_print_private_bfd_data (bfd *abf
   else
     {
       if (bfd_seek (abfd, 0, SEEK_SET))
-        return FALSE;
+	return FALSE;
       evax_bfd_print_eobj (abfd, file);
     }
   return TRUE;
@@ -7941,16 +8163,16 @@ alpha_vms_read_sections_content (bfd *ab
   if (info)
     {
       if (info->strip == strip_all || info->strip == strip_debugger)
-        {
-          /* Discard the DST section.  */
-          dst_offset = 0;
-          dst_section = NULL;
-        }
+	{
+	  /* Discard the DST section.  */
+	  dst_offset = 0;
+	  dst_section = NULL;
+	}
       else if (dst_section)
-        {
-          dst_offset = dst_section->output_offset;
-          dst_section = dst_section->output_section;
-        }
+	{
+	  dst_offset = dst_section->output_offset;
+	  dst_section = dst_section->output_section;
+	}
     }
 
   while (1)
@@ -7965,39 +8187,39 @@ alpha_vms_read_sections_content (bfd *ab
 	  return FALSE;
 	}
       switch (type)
-        {
-        case EOBJ__C_ETIR:
-          PRIV (image_section) = cur_section;
-          PRIV (image_offset) = cur_offset;
-          res = _bfd_vms_slurp_etir (abfd, info);
-          cur_section = PRIV (image_section);
-          cur_offset = PRIV (image_offset);
-          break;
-        case EOBJ__C_EDBG:
-        case EOBJ__C_ETBT:
-          if (dst_section == NULL)
-            continue;
-          PRIV (image_section) = dst_section;
-          PRIV (image_offset) = dst_offset;
-          res = _bfd_vms_slurp_etir (abfd, info);
-          dst_offset = PRIV (image_offset);
-          break;
-        case EOBJ__C_EEOM:
-          return TRUE;
-        default:
-          continue;
-        }
+	{
+	case EOBJ__C_ETIR:
+	  PRIV (image_section) = cur_section;
+	  PRIV (image_offset) = cur_offset;
+	  res = _bfd_vms_slurp_etir (abfd, info);
+	  cur_section = PRIV (image_section);
+	  cur_offset = PRIV (image_offset);
+	  break;
+	case EOBJ__C_EDBG:
+	case EOBJ__C_ETBT:
+	  if (dst_section == NULL)
+	    continue;
+	  PRIV (image_section) = dst_section;
+	  PRIV (image_offset) = dst_offset;
+	  res = _bfd_vms_slurp_etir (abfd, info);
+	  dst_offset = PRIV (image_offset);
+	  break;
+	case EOBJ__C_EEOM:
+	  return TRUE;
+	default:
+	  continue;
+	}
       if (!res)
-        {
-          vms_debug2 ((2, "slurp eobj type %d failed\n", type));
-          return FALSE;
-        }
+	{
+	  vms_debug2 ((2, "slurp eobj type %d failed\n", type));
+	  return FALSE;
+	}
     }
 }
 
 static int
 alpha_vms_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED,
-                          struct bfd_link_info *info ATTRIBUTE_UNUSED)
+			  struct bfd_link_info *info ATTRIBUTE_UNUSED)
 {
   return 0;
 }
@@ -8012,10 +8234,10 @@ alpha_vms_add_fixup_lp (struct bfd_link_
   file_ptr offset = PRIV2 (src, image_offset);
 
   sl = &VEC_EL (alpha_vms_link_hash (info)->shrlibs,
-                struct alpha_vms_shlib_el, PRIV2 (shlib, shr_index));
+		struct alpha_vms_shlib_el, PRIV2 (shlib, shr_index));
   sl->has_fixups = TRUE;
   VEC_APPEND_EL (sl->lp, bfd_vma,
-                 sect->output_section->vma + sect->output_offset + offset);
+		 sect->output_section->vma + sect->output_offset + offset);
   sect->output_section->flags |= SEC_RELOC;
 }
 
@@ -8029,10 +8251,10 @@ alpha_vms_add_fixup_ca (struct bfd_link_
   file_ptr offset = PRIV2 (src, image_offset);
 
   sl = &VEC_EL (alpha_vms_link_hash (info)->shrlibs,
-                struct alpha_vms_shlib_el, PRIV2 (shlib, shr_index));
+		struct alpha_vms_shlib_el, PRIV2 (shlib, shr_index));
   sl->has_fixups = TRUE;
   VEC_APPEND_EL (sl->ca, bfd_vma,
-                 sect->output_section->vma + sect->output_offset + offset);
+		 sect->output_section->vma + sect->output_offset + offset);
   sect->output_section->flags |= SEC_RELOC;
 }
 
@@ -8040,7 +8262,7 @@ alpha_vms_add_fixup_ca (struct bfd_link_
 
 static void
 alpha_vms_add_fixup_qr (struct bfd_link_info *info, bfd *src,
-                        bfd *shlib, bfd_vma vec)
+			bfd *shlib, bfd_vma vec)
 {
   struct alpha_vms_shlib_el *sl;
   struct alpha_vms_vma_ref *r;
@@ -8048,7 +8270,7 @@ alpha_vms_add_fixup_qr (struct bfd_link_
   file_ptr offset = PRIV2 (src, image_offset);
 
   sl = &VEC_EL (alpha_vms_link_hash (info)->shrlibs,
-                struct alpha_vms_shlib_el, PRIV2 (shlib, shr_index));
+		struct alpha_vms_shlib_el, PRIV2 (shlib, shr_index));
   sl->has_fixups = TRUE;
   r = VEC_APPEND (sl->qr, struct alpha_vms_vma_ref);
   r->vma = sect->output_section->vma + sect->output_offset + offset;
@@ -8058,8 +8280,8 @@ alpha_vms_add_fixup_qr (struct bfd_link_
 
 static void
 alpha_vms_add_fixup_lr (struct bfd_link_info *info ATTRIBUTE_UNUSED,
-                        unsigned int shr ATTRIBUTE_UNUSED,
-                        bfd_vma vec ATTRIBUTE_UNUSED)
+			unsigned int shr ATTRIBUTE_UNUSED,
+			bfd_vma vec ATTRIBUTE_UNUSED)
 {
   /* Not yet supported.  */
   abort ();
@@ -8079,8 +8301,8 @@ alpha_vms_add_qw_reloc (struct bfd_link_
 
 static struct bfd_hash_entry *
 alpha_vms_link_hash_newfunc (struct bfd_hash_entry *entry,
-                             struct bfd_hash_table *table,
-                             const char *string)
+			     struct bfd_hash_table *table,
+			     const char *string)
 {
   struct alpha_vms_link_hash_entry *ret =
     (struct alpha_vms_link_hash_entry *) entry;
@@ -8090,7 +8312,7 @@ alpha_vms_link_hash_newfunc (struct bfd_
   if (ret == NULL)
     ret = ((struct alpha_vms_link_hash_entry *)
 	   bfd_hash_allocate (table,
-                              sizeof (struct alpha_vms_link_hash_entry)));
+			      sizeof (struct alpha_vms_link_hash_entry)));
   if (ret == NULL)
     return NULL;
 
@@ -8142,31 +8364,31 @@ alpha_vms_link_add_object_symbols (bfd *
       asymbol sym;
 
       if (!alpha_vms_convert_symbol (abfd, e, &sym))
-        return FALSE;
+	return FALSE;
 
       if ((e->flags & EGSY__V_DEF) && abfd->selective_search)
-        {
-          /* In selective_search mode, only add definition that are
-             required.  */
-          h = (struct alpha_vms_link_hash_entry *)bfd_link_hash_lookup
-            (info->hash, sym.name, FALSE, FALSE, FALSE);
-          if (h == NULL || h->root.type != bfd_link_hash_undefined)
-            continue;
-        }
+	{
+	  /* In selective_search mode, only add definition that are
+	     required.  */
+	  h = (struct alpha_vms_link_hash_entry *)bfd_link_hash_lookup
+	    (info->hash, sym.name, FALSE, FALSE, FALSE);
+	  if (h == NULL || h->root.type != bfd_link_hash_undefined)
+	    continue;
+	}
       else
-        h = NULL;
+	h = NULL;
 
       h_root = (struct bfd_link_hash_entry *) h;
-      if (_bfd_generic_link_add_one_symbol
-          (info, abfd, sym.name, sym.flags, sym.section, sym.value,
-           NULL, FALSE, FALSE, &h_root) == FALSE)
-        return FALSE;
+      if (!_bfd_generic_link_add_one_symbol (info, abfd, sym.name, sym.flags,
+					     sym.section, sym.value, NULL,
+					     FALSE, FALSE, &h_root))
+	return FALSE;
       h = (struct alpha_vms_link_hash_entry *) h_root;
 
       if ((e->flags & EGSY__V_DEF)
-          && h->sym == NULL
-          && abfd->xvec == info->output_bfd->xvec)
-        h->sym = e;
+	  && h->sym == NULL
+	  && abfd->xvec == info->output_bfd->xvec)
+	h->sym = e;
     }
 
   if (abfd->flags & DYNAMIC)
@@ -8174,11 +8396,11 @@ alpha_vms_link_add_object_symbols (bfd *
       struct alpha_vms_shlib_el *shlib;
 
       /* We do not want to include any of the sections in a dynamic
-         object in the output file.  See comment in elflink.c.  */
+	 object in the output file.  See comment in elflink.c.  */
       bfd_section_list_clear (abfd);
 
       shlib = VEC_APPEND (alpha_vms_link_hash (info)->shrlibs,
-                          struct alpha_vms_shlib_el);
+			  struct alpha_vms_shlib_el);
       shlib->abfd = abfd;
       VEC_INIT (shlib->ca);
       VEC_INIT (shlib->lp);
@@ -8230,10 +8452,10 @@ alpha_vms_link_add_archive_symbols (bfd 
 	     entry if it is the tail, because that would lose any
 	     entries we add to the list later on.  */
 	  if (*pundef != info->hash->undefs_tail)
-            {
-              *pundef = *next_pundef;
-              next_pundef = pundef;
-            }
+	    {
+	      *pundef = *next_pundef;
+	      next_pundef = pundef;
+	    }
 	  continue;
 	}
 
@@ -8250,27 +8472,27 @@ alpha_vms_link_add_archive_symbols (bfd 
 	return FALSE;
 
       if (element->archive_pass == -1 || element->archive_pass == pass)
-        {
-          /* Next symbol if this archive is wrong or already handled.  */
-          continue;
-        }
+	{
+	  /* Next symbol if this archive is wrong or already handled.  */
+	  continue;
+	}
 
       if (! bfd_check_format (element, bfd_object))
-        {
-          element->archive_pass = -1;
-          return FALSE;
-        }
+	{
+	  element->archive_pass = -1;
+	  return FALSE;
+	}
 
       orig_element = element;
       if (bfd_is_thin_archive (abfd))
-        {
-          element = _bfd_vms_lib_get_imagelib_file (element);
-          if (element == NULL || !bfd_check_format (element, bfd_object))
-            {
-              orig_element->archive_pass = -1;
-              return FALSE;
-            }
-        }
+	{
+	  element = _bfd_vms_lib_get_imagelib_file (element);
+	  if (element == NULL || !bfd_check_format (element, bfd_object))
+	    {
+	      orig_element->archive_pass = -1;
+	      return FALSE;
+	    }
+	}
 
       /* Unlike the generic linker, we know that this element provides
 	 a definition for an undefined symbol and we know that we want
@@ -8294,12 +8516,12 @@ alpha_vms_bfd_link_add_symbols (bfd *abf
     {
     case bfd_object:
       vms_debug2 ((2, "vms_link_add_symbols for object %s\n",
-                   abfd->filename));
+		   abfd->filename));
       return alpha_vms_link_add_object_symbols (abfd, info);
       break;
     case bfd_archive:
       vms_debug2 ((2, "vms_link_add_symbols for archive %s\n",
-                   abfd->filename));
+		   abfd->filename));
       return alpha_vms_link_add_archive_symbols (abfd, info);
       break;
     default:
@@ -8333,28 +8555,28 @@ alpha_vms_build_fixups (struct bfd_link_
       shlib = &VEC_EL (t->shrlibs, struct alpha_vms_shlib_el, i);
 
       if (!shlib->has_fixups)
-        continue;
+	continue;
 
       shrimg_cnt++;
 
       if (VEC_COUNT (shlib->ca) > 0)
-        {
-          /* Header + entries.  */
-          ca_sz += 8;
-          ca_sz += VEC_COUNT (shlib->ca) * 4;
-        }
+	{
+	  /* Header + entries.  */
+	  ca_sz += 8;
+	  ca_sz += VEC_COUNT (shlib->ca) * 4;
+	}
       if (VEC_COUNT (shlib->lp) > 0)
-        {
-          /* Header + entries.  */
-          lp_sz += 8;
-          lp_sz += VEC_COUNT (shlib->lp) * 4;
-        }
+	{
+	  /* Header + entries.  */
+	  lp_sz += 8;
+	  lp_sz += VEC_COUNT (shlib->lp) * 4;
+	}
       if (VEC_COUNT (shlib->qr) > 0)
-        {
-          /* Header + entries.  */
-          qr_sz += 8;
-          qr_sz += VEC_COUNT (shlib->qr) * 8;
-        }
+	{
+	  /* Header + entries.  */
+	  qr_sz += 8;
+	  qr_sz += VEC_COUNT (shlib->qr) * 8;
+	}
     }
   /* Add markers.  */
   if (ca_sz > 0)
@@ -8374,8 +8596,8 @@ alpha_vms_build_fixups (struct bfd_link_
     {
       /* This isect could be made RO or EXE after relocations are applied.  */
       if ((sec->flags & SEC_RELOC) != 0
-          && (sec->flags & (SEC_CODE | SEC_READONLY)) != 0)
-        chgprt_num++;
+	  && (sec->flags & (SEC_CODE | SEC_READONLY)) != 0)
+	chgprt_num++;
     }
   chgprt_sz = 4 + chgprt_num * sizeof (struct vms_eicp);
 
@@ -8419,131 +8641,131 @@ alpha_vms_build_fixups (struct bfd_link_
 
       /* Write shl.  */
       for (i = 0; i < VEC_COUNT (t->shrlibs); i++)
-        {
-          struct alpha_vms_shlib_el *shlib;
-          struct vms_shl *shl;
-
-          shlib = &VEC_EL (t->shrlibs, struct alpha_vms_shlib_el, i);
-
-          if (!shlib->has_fixups)
-            continue;
-
-          /* Renumber shared images.  */
-          PRIV2 (shlib->abfd, shr_index) = shrimg_cnt++;
-
-          shl = (struct vms_shl *)(content + off);
-          bfd_putl32 (0, shl->baseva);
-          bfd_putl32 (0, shl->shlptr);
-          bfd_putl32 (0, shl->ident);
-          bfd_putl32 (0, shl->permctx);
-          shl->size = sizeof (struct vms_shl);
-          bfd_putl16 (0, shl->fill_1);
-          shl->flags = 0;
-          bfd_putl32 (0, shl->icb);
-          shl->imgnam[0] = strlen (PRIV2 (shlib->abfd, hdr_data.hdr_t_name));
-          memcpy (shl->imgnam + 1, PRIV2 (shlib->abfd, hdr_data.hdr_t_name),
-                  shl->imgnam[0]);
+	{
+	  struct alpha_vms_shlib_el *shlib;
+	  struct vms_shl *shl;
 
-          off += sizeof (struct vms_shl);
-        }
+	  shlib = &VEC_EL (t->shrlibs, struct alpha_vms_shlib_el, i);
+
+	  if (!shlib->has_fixups)
+	    continue;
+
+	  /* Renumber shared images.  */
+	  PRIV2 (shlib->abfd, shr_index) = shrimg_cnt++;
+
+	  shl = (struct vms_shl *)(content + off);
+	  bfd_putl32 (0, shl->baseva);
+	  bfd_putl32 (0, shl->shlptr);
+	  bfd_putl32 (0, shl->ident);
+	  bfd_putl32 (0, shl->permctx);
+	  shl->size = sizeof (struct vms_shl);
+	  bfd_putl16 (0, shl->fill_1);
+	  shl->flags = 0;
+	  bfd_putl32 (0, shl->icb);
+	  shl->imgnam[0] = strlen (PRIV2 (shlib->abfd, hdr_data.hdr_t_name));
+	  memcpy (shl->imgnam + 1, PRIV2 (shlib->abfd, hdr_data.hdr_t_name),
+		  shl->imgnam[0]);
+
+	  off += sizeof (struct vms_shl);
+	}
 
       /* CA fixups.  */
       if (ca_sz != 0)
-        {
-          bfd_putl32 (off, eiaf->codeadroff);
+	{
+	  bfd_putl32 (off, eiaf->codeadroff);
+
+	  for (i = 0; i < VEC_COUNT (t->shrlibs); i++)
+	    {
+	      struct alpha_vms_shlib_el *shlib;
+	      unsigned int j;
+
+	      shlib = &VEC_EL (t->shrlibs, struct alpha_vms_shlib_el, i);
+
+	      if (VEC_COUNT (shlib->ca) == 0)
+		continue;
+
+	      bfd_putl32 (VEC_COUNT (shlib->ca), content + off);
+	      bfd_putl32 (PRIV2 (shlib->abfd, shr_index), content + off + 4);
+	      off += 8;
+
+	      for (j = 0; j < VEC_COUNT (shlib->ca); j++)
+		{
+		  bfd_putl32 (VEC_EL (shlib->ca, bfd_vma, j) - t->base_addr,
+			      content + off);
+		  off += 4;
+		}
+	    }
 
-          for (i = 0; i < VEC_COUNT (t->shrlibs); i++)
-            {
-              struct alpha_vms_shlib_el *shlib;
-              unsigned int j;
-
-              shlib = &VEC_EL (t->shrlibs, struct alpha_vms_shlib_el, i);
-
-              if (VEC_COUNT (shlib->ca) == 0)
-                continue;
-
-              bfd_putl32 (VEC_COUNT (shlib->ca), content + off);
-              bfd_putl32 (PRIV2 (shlib->abfd, shr_index), content + off + 4);
-              off += 8;
-
-              for (j = 0; j < VEC_COUNT (shlib->ca); j++)
-                {
-                  bfd_putl32 (VEC_EL (shlib->ca, bfd_vma, j) - t->base_addr,
-                              content + off);
-                  off += 4;
-                }
-            }
-
-          bfd_putl32 (0, content + off);
-          bfd_putl32 (0, content + off + 4);
-          off += 8;
-        }
+	  bfd_putl32 (0, content + off);
+	  bfd_putl32 (0, content + off + 4);
+	  off += 8;
+	}
 
       /* LP fixups.  */
       if (lp_sz != 0)
-        {
-          bfd_putl32 (off, eiaf->lpfixoff);
+	{
+	  bfd_putl32 (off, eiaf->lpfixoff);
+
+	  for (i = 0; i < VEC_COUNT (t->shrlibs); i++)
+	    {
+	      struct alpha_vms_shlib_el *shlib;
+	      unsigned int j;
+
+	      shlib = &VEC_EL (t->shrlibs, struct alpha_vms_shlib_el, i);
+
+	      if (VEC_COUNT (shlib->lp) == 0)
+		continue;
 
-          for (i = 0; i < VEC_COUNT (t->shrlibs); i++)
-            {
-              struct alpha_vms_shlib_el *shlib;
-              unsigned int j;
-
-              shlib = &VEC_EL (t->shrlibs, struct alpha_vms_shlib_el, i);
-
-              if (VEC_COUNT (shlib->lp) == 0)
-                continue;
-
-              bfd_putl32 (VEC_COUNT (shlib->lp), content + off);
-              bfd_putl32 (PRIV2 (shlib->abfd, shr_index), content + off + 4);
-              off += 8;
-
-              for (j = 0; j < VEC_COUNT (shlib->lp); j++)
-                {
-                  bfd_putl32 (VEC_EL (shlib->lp, bfd_vma, j) - t->base_addr,
-                              content + off);
-                  off += 4;
-                }
-            }
-
-          bfd_putl32 (0, content + off);
-          bfd_putl32 (0, content + off + 4);
-          off += 8;
-        }
+	      bfd_putl32 (VEC_COUNT (shlib->lp), content + off);
+	      bfd_putl32 (PRIV2 (shlib->abfd, shr_index), content + off + 4);
+	      off += 8;
+
+	      for (j = 0; j < VEC_COUNT (shlib->lp); j++)
+		{
+		  bfd_putl32 (VEC_EL (shlib->lp, bfd_vma, j) - t->base_addr,
+			      content + off);
+		  off += 4;
+		}
+	    }
+
+	  bfd_putl32 (0, content + off);
+	  bfd_putl32 (0, content + off + 4);
+	  off += 8;
+	}
 
       /* QR fixups.  */
       if (qr_sz != 0)
-        {
-          bfd_putl32 (off, eiaf->qdotadroff);
+	{
+	  bfd_putl32 (off, eiaf->qdotadroff);
+
+	  for (i = 0; i < VEC_COUNT (t->shrlibs); i++)
+	    {
+	      struct alpha_vms_shlib_el *shlib;
+	      unsigned int j;
+
+	      shlib = &VEC_EL (t->shrlibs, struct alpha_vms_shlib_el, i);
+
+	      if (VEC_COUNT (shlib->qr) == 0)
+		continue;
+
+	      bfd_putl32 (VEC_COUNT (shlib->qr), content + off);
+	      bfd_putl32 (PRIV2 (shlib->abfd, shr_index), content + off + 4);
+	      off += 8;
+
+	      for (j = 0; j < VEC_COUNT (shlib->qr); j++)
+		{
+		  struct alpha_vms_vma_ref *r;
+		  r = &VEC_EL (shlib->qr, struct alpha_vms_vma_ref, j);
+		  bfd_putl32 (r->vma - t->base_addr, content + off);
+		  bfd_putl32 (r->ref, content + off + 4);
+		  off += 8;
+		}
+	    }
 
-          for (i = 0; i < VEC_COUNT (t->shrlibs); i++)
-            {
-              struct alpha_vms_shlib_el *shlib;
-              unsigned int j;
-
-              shlib = &VEC_EL (t->shrlibs, struct alpha_vms_shlib_el, i);
-
-              if (VEC_COUNT (shlib->qr) == 0)
-                continue;
-
-              bfd_putl32 (VEC_COUNT (shlib->qr), content + off);
-              bfd_putl32 (PRIV2 (shlib->abfd, shr_index), content + off + 4);
-              off += 8;
-
-              for (j = 0; j < VEC_COUNT (shlib->qr); j++)
-                {
-                  struct alpha_vms_vma_ref *r;
-                  r = &VEC_EL (shlib->qr, struct alpha_vms_vma_ref, j);
-                  bfd_putl32 (r->vma - t->base_addr, content + off);
-                  bfd_putl32 (r->ref, content + off + 4);
-                  off += 8;
-                }
-            }
-
-          bfd_putl32 (0, content + off);
-          bfd_putl32 (0, content + off + 4);
-          off += 8;
-        }
+	  bfd_putl32 (0, content + off);
+	  bfd_putl32 (0, content + off + 4);
+	  off += 8;
+	}
     }
 
   /* Write the change protection table.  */
@@ -8557,18 +8779,18 @@ alpha_vms_build_fixups (struct bfd_link_
       unsigned int prot;
 
       if ((sec->flags & SEC_LINKER_CREATED) != 0 &&
-          strcmp (sec->name, "$FIXUP$") == 0)
-        prot = PRT__C_UREW;
+	  strcmp (sec->name, "$FIXUP$") == 0)
+	prot = PRT__C_UREW;
       else if ((sec->flags & SEC_RELOC) != 0
-               && (sec->flags & (SEC_CODE | SEC_READONLY)) != 0)
-        prot = PRT__C_UR;
+	       && (sec->flags & (SEC_CODE | SEC_READONLY)) != 0)
+	prot = PRT__C_UR;
       else
-        continue;
+	continue;
 
       eicp = (struct vms_eicp *)(content + off);
       bfd_putl64 (sec->vma - t->base_addr, eicp->baseva);
       bfd_putl32 ((sec->size + VMS_BLOCK_SIZE - 1) & ~(VMS_BLOCK_SIZE - 1),
-                  eicp->size);
+		  eicp->size);
       bfd_putl32 (prot, eicp->newprt);
       off += sizeof (struct vms_eicp);
     }
@@ -8607,14 +8829,14 @@ alpha_vms_link_output_symbol (struct bfd
     case bfd_link_hash_defined:
     case bfd_link_hash_defweak:
       {
-        asection *sec = h->root.u.def.section;
+	asection *sec = h->root.u.def.section;
 
-        /* FIXME: this is certainly a symbol from a dynamic library.  */
-        if (bfd_is_abs_section (sec))
-          return TRUE;
+	/* FIXME: this is certainly a symbol from a dynamic library.  */
+	if (bfd_is_abs_section (sec))
+	  return TRUE;
 
-        if (sec->owner->flags & DYNAMIC)
-          return TRUE;
+	if (sec->owner->flags & DYNAMIC)
+	  return TRUE;
       }
       break;
     case bfd_link_hash_common:
@@ -8626,19 +8848,19 @@ alpha_vms_link_output_symbol (struct bfd
   /* Do not write not kept symbols.  */
   if (info->strip == strip_some
       && bfd_hash_lookup (info->keep_hash, h->root.root.string,
-                          FALSE, FALSE) != NULL)
+			  FALSE, FALSE) != NULL)
     return TRUE;
 
   if (h->sym == NULL)
     {
       /* This symbol doesn't come from a VMS object.  So we suppose it is
-         a data.  */
+	 a data.  */
       int len = strlen (h->root.root.string);
 
       sym = (struct vms_symbol_entry *)bfd_zalloc (info->output_bfd,
-                                                   sizeof (*sym) + len);
+						   sizeof (*sym) + len);
       if (sym == NULL)
-        abort ();
+	abort ();
       sym->namelen = len;
       memcpy (sym->name, h->root.root.string, len);
       sym->name[len] = 0;
@@ -8675,7 +8897,7 @@ alpha_vms_bfd_final_link (bfd *abfd, str
   if (bfd_link_relocatable (info))
     {
       /* FIXME: we do not yet support relocatable link.  It is not obvious
-         how to do it for debug infos.  */
+	 how to do it for debug infos.  */
       (*info->callbacks->einfo)(_("%P: relocatable link is not supported\n"));
       return FALSE;
     }
@@ -8694,28 +8916,28 @@ alpha_vms_bfd_final_link (bfd *abfd, str
   for (o = abfd->sections; o != NULL; o = o->next)
     {
       printf ("For section %s (at 0x%08x, flags=0x%08x):\n",
-              o->name, (unsigned)o->vma, (unsigned)o->flags);
+	      o->name, (unsigned)o->vma, (unsigned)o->flags);
 
       for (p = o->map_head.link_order; p != NULL; p = p->next)
 	{
-          printf (" at 0x%08x - 0x%08x: ",
-                  (unsigned)p->offset, (unsigned)(p->offset + p->size - 1));
+	  printf (" at 0x%08x - 0x%08x: ",
+		  (unsigned)p->offset, (unsigned)(p->offset + p->size - 1));
 	  switch (p->type)
 	    {
 	    case bfd_section_reloc_link_order:
 	    case bfd_symbol_reloc_link_order:
-              printf ("  section/symbol reloc\n");
+	      printf ("  section/symbol reloc\n");
 	      break;
 	    case bfd_indirect_link_order:
-              printf ("  section %s of %s\n",
-                      p->u.indirect.section->name,
-                      p->u.indirect.section->owner->filename);
+	      printf ("  section %s of %s\n",
+		      p->u.indirect.section->name,
+		      p->u.indirect.section->owner->filename);
+	      break;
+	    case bfd_data_link_order:
+	      printf ("  explicit data\n");
 	      break;
-            case bfd_data_link_order:
-              printf ("  explicit data\n");
-              break;
 	    default:
-              printf ("  *unknown* type %u\n", p->type);
+	      printf ("  *unknown* type %u\n", p->type);
 	      break;
 	    }
 	}
@@ -8733,38 +8955,38 @@ alpha_vms_bfd_final_link (bfd *abfd, str
       bfd *startbfd = NULL;
 
       for (sub = info->input_bfds; sub != NULL; sub = sub->link.next)
-        {
-          /* Consider only VMS object files.  */
-          if (sub->xvec != abfd->xvec)
-            continue;
-
-          if (!PRIV2 (sub, eom_data).eom_has_transfer)
-            continue;
-          if ((PRIV2 (sub, eom_data).eom_b_tfrflg & EEOM__M_WKTFR) && startbfd)
-            continue;
-          if (startbfd != NULL
-              && !(PRIV2 (sub, eom_data).eom_b_tfrflg & EEOM__M_WKTFR))
-            {
-              (*info->callbacks->einfo)
+	{
+	  /* Consider only VMS object files.  */
+	  if (sub->xvec != abfd->xvec)
+	    continue;
+
+	  if (!PRIV2 (sub, eom_data).eom_has_transfer)
+	    continue;
+	  if ((PRIV2 (sub, eom_data).eom_b_tfrflg & EEOM__M_WKTFR) && startbfd)
+	    continue;
+	  if (startbfd != NULL
+	      && !(PRIV2 (sub, eom_data).eom_b_tfrflg & EEOM__M_WKTFR))
+	    {
+	      (*info->callbacks->einfo)
 		/* xgettext:c-format */
-                (_("%P: multiple entry points: in modules %B and %B\n"),
-                 startbfd, sub);
-              continue;
-            }
-          startbfd = sub;
-        }
+		(_("%P: multiple entry points: in modules %B and %B\n"),
+		 startbfd, sub);
+	      continue;
+	    }
+	  startbfd = sub;
+	}
 
       if (startbfd)
-        {
-          unsigned int ps_idx = PRIV2 (startbfd, eom_data).eom_l_psindx;
-          bfd_vma tfradr = PRIV2 (startbfd, eom_data).eom_l_tfradr;
-          asection *sec;
-
-          sec = PRIV2 (startbfd, sections)[ps_idx];
-
-          bfd_set_start_address
-            (abfd, sec->output_section->vma + sec->output_offset + tfradr);
-        }
+	{
+	  unsigned int ps_idx = PRIV2 (startbfd, eom_data).eom_l_psindx;
+	  bfd_vma tfradr = PRIV2 (startbfd, eom_data).eom_l_tfradr;
+	  asection *sec;
+
+	  sec = PRIV2 (startbfd, sections)[ps_idx];
+
+	  bfd_set_start_address
+	    (abfd, sec->output_section->vma + sec->output_offset + tfradr);
+	}
     }
 
   /* Set transfer addresses.  */
@@ -8777,7 +8999,7 @@ alpha_vms_bfd_final_link (bfd *abfd, str
     h = bfd_link_hash_lookup (info->hash, "LIB$INITIALIZE", FALSE, FALSE, TRUE);
     if (h != NULL && h->type == bfd_link_hash_defined)
       PRIV (transfer_address[i++]) =
-        alpha_vms_get_sym_value (h->u.def.section, h->u.def.value);
+	alpha_vms_get_sym_value (h->u.def.section, h->u.def.value);
     PRIV (transfer_address[i++]) = bfd_get_start_address (abfd);
     while (i < 4)
       PRIV (transfer_address[i++]) = 0;
@@ -8790,20 +9012,20 @@ alpha_vms_bfd_final_link (bfd *abfd, str
   for (o = abfd->sections; o != NULL; o = o->next)
     {
       if (o->flags & SEC_HAS_CONTENTS)
-        {
-          o->contents = bfd_alloc (abfd, o->size);
-          if (o->contents == NULL)
-            return FALSE;
-        }
+	{
+	  o->contents = bfd_alloc (abfd, o->size);
+	  if (o->contents == NULL)
+	    return FALSE;
+	}
       if (o->flags & SEC_LOAD)
-        {
-          if (o->vma < base_addr)
-            base_addr = o->vma;
-          if (o->vma + o->size > last_addr)
-            last_addr = o->vma + o->size;
-        }
+	{
+	  if (o->vma < base_addr)
+	    base_addr = o->vma;
+	  if (o->vma + o->size > last_addr)
+	    last_addr = o->vma + o->size;
+	}
       /* Clear the RELOC flags.  Currently we don't support incremental
-         linking.  We use the RELOC flag for computing the eicp entries.  */
+	 linking.  We use the RELOC flag for computing the eicp entries.  */
       o->flags &= ~SEC_RELOC;
     }
 
@@ -8828,10 +9050,10 @@ alpha_vms_bfd_final_link (bfd *abfd, str
     {
       PRIV (dst_section) = dst;
       dmt = bfd_make_section_anyway_with_flags
-        (info->output_bfd, "$DMT$",
-         SEC_DEBUGGING | SEC_HAS_CONTENTS | SEC_LINKER_CREATED);
+	(info->output_bfd, "$DMT$",
+	 SEC_DEBUGGING | SEC_HAS_CONTENTS | SEC_LINKER_CREATED);
       if (dmt == NULL)
-        return FALSE;
+	return FALSE;
     }
   else
     dmt = NULL;
@@ -8840,13 +9062,13 @@ alpha_vms_bfd_final_link (bfd *abfd, str
   for (sub = info->input_bfds; sub != NULL; sub = sub->link.next)
     {
       if (sub->flags & DYNAMIC)
-        {
-          alpha_vms_create_eisd_for_shared (abfd, sub);
-          continue;
-        }
+	{
+	  alpha_vms_create_eisd_for_shared (abfd, sub);
+	  continue;
+	}
 
       if (!alpha_vms_read_sections_content (sub, info))
-        return FALSE;
+	return FALSE;
     }
 
   /* Handle all the link order information for the sections.
@@ -8859,10 +9081,10 @@ alpha_vms_bfd_final_link (bfd *abfd, str
 	    {
 	    case bfd_section_reloc_link_order:
 	    case bfd_symbol_reloc_link_order:
-              abort ();
-              return FALSE;
+	      abort ();
+	      return FALSE;
 	    case bfd_indirect_link_order:
-              /* Already done.  */
+	      /* Already done.  */
 	      break;
 	    default:
 	      if (! _bfd_default_link_order (abfd, info, o, p))
@@ -8884,71 +9106,71 @@ alpha_vms_bfd_final_link (bfd *abfd, str
 
       /* In pass 1, compute the size.  In pass 2, write the DMT contents.  */
       for (pass = 0; pass < 2; pass++)
-        {
-          unsigned int off = 0;
+	{
+	  unsigned int off = 0;
+
+	  /* For each object file (ie for each module).  */
+	  for (sub = info->input_bfds; sub != NULL; sub = sub->link.next)
+	    {
+	      asection *sub_dst;
+	      struct vms_dmt_header *dmth = NULL;
+	      unsigned int psect_count;
+
+	      /* Skip this module if it has no DST.  */
+	      sub_dst = PRIV2 (sub, dst_section);
+	      if (sub_dst == NULL || sub_dst->size == 0)
+		continue;
+
+	      if (pass == 1)
+		{
+		  /* Write the header.  */
+		  dmth = (struct vms_dmt_header *)(contents + off);
+		  bfd_putl32 (sub_dst->output_offset, dmth->modbeg);
+		  bfd_putl32 (sub_dst->size, dmth->size);
+		}
+
+	      off += sizeof (struct vms_dmt_header);
+	      psect_count = 0;
+
+	      /* For each section (ie for each psect).  */
+	      for (o = sub->sections; o != NULL; o = o->next)
+		{
+		  /* Only consider interesting sections.  */
+		  if (!(o->flags & SEC_ALLOC))
+		    continue;
+		  if (o->flags & SEC_LINKER_CREATED)
+		    continue;
+
+		  if (pass == 1)
+		    {
+		      /* Write an entry.  */
+		      struct vms_dmt_psect *dmtp;
+
+		      dmtp = (struct vms_dmt_psect *)(contents + off);
+		      bfd_putl32 (o->output_offset + o->output_section->vma,
+				  dmtp->start);
+		      bfd_putl32 (o->size, dmtp->length);
+		      psect_count++;
+		    }
+		  off += sizeof (struct vms_dmt_psect);
+		}
+	      if (pass == 1)
+		bfd_putl32 (psect_count, dmth->psect_count);
+	    }
 
-          /* For each object file (ie for each module).  */
-          for (sub = info->input_bfds; sub != NULL; sub = sub->link.next)
-            {
-              asection *sub_dst;
-              struct vms_dmt_header *dmth = NULL;
-              unsigned int psect_count;
-
-              /* Skip this module if it has no DST.  */
-              sub_dst = PRIV2 (sub, dst_section);
-              if (sub_dst == NULL || sub_dst->size == 0)
-                continue;
-
-              if (pass == 1)
-                {
-                  /* Write the header.  */
-                  dmth = (struct vms_dmt_header *)(contents + off);
-                  bfd_putl32 (sub_dst->output_offset, dmth->modbeg);
-                  bfd_putl32 (sub_dst->size, dmth->size);
-                }
-
-              off += sizeof (struct vms_dmt_header);
-              psect_count = 0;
-
-              /* For each section (ie for each psect).  */
-              for (o = sub->sections; o != NULL; o = o->next)
-                {
-                  /* Only consider interesting sections.  */
-                  if (!(o->flags & SEC_ALLOC))
-                    continue;
-                  if (o->flags & SEC_LINKER_CREATED)
-                    continue;
-
-                  if (pass == 1)
-                    {
-                      /* Write an entry.  */
-                      struct vms_dmt_psect *dmtp;
-
-                      dmtp = (struct vms_dmt_psect *)(contents + off);
-                      bfd_putl32 (o->output_offset + o->output_section->vma,
-                                  dmtp->start);
-                      bfd_putl32 (o->size, dmtp->length);
-                      psect_count++;
-                    }
-                  off += sizeof (struct vms_dmt_psect);
-                }
-              if (pass == 1)
-                bfd_putl32 (psect_count, dmth->psect_count);
-            }
-
-          if (pass == 0)
-            {
-              contents = bfd_zalloc (info->output_bfd, off);
-              if (contents == NULL)
-                return FALSE;
-              dmt->contents = contents;
-              dmt->size = off;
-            }
-          else
-            {
-              BFD_ASSERT (off == dmt->size);
-            }
-        }
+	  if (pass == 0)
+	    {
+	      contents = bfd_zalloc (info->output_bfd, off);
+	      if (contents == NULL)
+		return FALSE;
+	      dmt->contents = contents;
+	      dmt->size = off;
+	    }
+	  else
+	    {
+	      BFD_ASSERT (off == dmt->size);
+	    }
+	}
     }
 
   return TRUE;
@@ -8960,15 +9182,15 @@ alpha_vms_bfd_final_link (bfd *abfd, str
 
 static bfd_boolean
 alpha_vms_get_section_contents (bfd *abfd, asection *section,
-                                void *buf, file_ptr offset,
-                                bfd_size_type count)
+				void *buf, file_ptr offset,
+				bfd_size_type count)
 {
   asection *sec;
 
   /* Image are easy.  */
   if (bfd_get_file_flags (abfd) & (EXEC_P | DYNAMIC))
     return _bfd_generic_get_section_contents (abfd, section,
-                                              buf, offset, count);
+					      buf, offset, count);
 
   /* Safety check.  */
   if (offset + count < count
@@ -8994,11 +9216,11 @@ alpha_vms_get_section_contents (bfd *abf
       BFD_ASSERT (sec->contents == NULL);
 
       if (sec->size != 0 && (sec->flags & SEC_HAS_CONTENTS))
-        {
-          sec->contents = bfd_alloc (abfd, sec->size);
-          if (sec->contents == NULL)
-            return FALSE;
-        }
+	{
+	  sec->contents = bfd_alloc (abfd, sec->size);
+	  if (sec->contents == NULL)
+	    return FALSE;
+	}
     }
   if (!alpha_vms_read_sections_content (abfd, NULL))
     return FALSE;
@@ -9072,9 +9294,9 @@ vms_close_and_cleanup (bfd * abfd)
     {
       /* Last step on VMS is to convert the file to variable record length
 	 format.  */
-      if (bfd_cache_close (abfd) != TRUE)
+      if (!bfd_cache_close (abfd))
 	return FALSE;
-      if (_bfd_vms_convert_to_var_unix_filename (abfd->filename) != TRUE)
+      if (!_bfd_vms_convert_to_var_unix_filename (abfd->filename))
 	return FALSE;
     }
 #endif
@@ -9090,7 +9312,7 @@ vms_new_section_hook (bfd * abfd, asecti
   bfd_size_type amt;
 
   vms_debug2 ((1, "vms_new_section_hook (%p, [%u]%s)\n",
-               abfd, section->index, section->name));
+	       abfd, section->index, section->name));
 
   if (! bfd_set_section_alignment (abfd, section, 0))
     return FALSE;
@@ -9120,7 +9342,7 @@ vms_print_symbol (bfd * abfd,
 		  bfd_print_symbol_type how)
 {
   vms_debug2 ((1, "vms_print_symbol (%p, %p, %p, %d)\n",
-               abfd, file, symbol, how));
+	       abfd, file, symbol, how));
 
   switch (how)
     {
@@ -9136,7 +9358,7 @@ vms_print_symbol (bfd * abfd,
 	  bfd_print_symbol_vandf (abfd, file, symbol);
 
 	  fprintf ((FILE *) file," %-8s %s", section_name, symbol->name);
-        }
+	}
       break;
     }
 }
@@ -9180,7 +9402,7 @@ vms_get_symbol_info (bfd * abfd ATTRIBUT
   else if (bfd_is_ind_section (sec))
     ret->type = 'I';
   else if ((symbol->flags & BSF_FUNCTION)
-           || (bfd_get_section_flags (abfd, sec) & SEC_CODE))
+	   || (bfd_get_section_flags (abfd, sec) & SEC_CODE))
     ret->type = 'T';
   else if (bfd_get_section_flags (abfd, sec) & SEC_DATA)
     ret->type = 'D';
@@ -9219,16 +9441,16 @@ vms_bfd_is_local_label_name (bfd * abfd 
 
 static bfd_boolean
 _bfd_vms_set_section_contents (bfd * abfd,
-                               asection *section,
-                               const void * location,
-                               file_ptr offset,
-                               bfd_size_type count)
+			       asection *section,
+			       const void * location,
+			       file_ptr offset,
+			       bfd_size_type count)
 {
   if (section->contents == NULL)
     {
       section->contents = bfd_alloc (abfd, section->size);
       if (section->contents == NULL)
-        return FALSE;
+	return FALSE;
 
       memcpy (section->contents + offset, location, (size_t) count);
     }
@@ -9242,7 +9464,7 @@ _bfd_vms_set_section_contents (bfd * abf
 
 static bfd_boolean
 alpha_vms_set_arch_mach (bfd *abfd,
-                         enum bfd_architecture arch, unsigned long mach)
+			 enum bfd_architecture arch, unsigned long mach)
 {
   if (arch != bfd_arch_alpha
       && arch != bfd_arch_unknown)
@@ -9268,38 +9490,39 @@ bfd_vms_get_data (bfd *abfd)
 }
 
 #define vms_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define vms_bfd_link_just_syms            _bfd_generic_link_just_syms
+#define vms_bfd_link_just_syms		  _bfd_generic_link_just_syms
 #define vms_bfd_copy_link_hash_symbol_type \
   _bfd_generic_copy_link_hash_symbol_type
-#define vms_bfd_is_group_section          bfd_generic_is_group_section
-#define vms_bfd_discard_group             bfd_generic_discard_group
-#define vms_section_already_linked        _bfd_generic_section_already_linked
-#define vms_bfd_define_common_symbol      bfd_generic_define_common_symbol
+#define vms_bfd_is_group_section	  bfd_generic_is_group_section
+#define vms_bfd_discard_group		  bfd_generic_discard_group
+#define vms_section_already_linked	  _bfd_generic_section_already_linked
+#define vms_bfd_define_common_symbol	  bfd_generic_define_common_symbol
+#define vms_bfd_define_start_stop      bfd_generic_define_start_stop
 #define vms_bfd_copy_private_header_data  _bfd_generic_bfd_copy_private_header_data
 
 #define vms_bfd_copy_private_bfd_data	  _bfd_generic_bfd_copy_private_bfd_data
 #define vms_bfd_free_cached_info	  _bfd_generic_bfd_free_cached_info
 #define vms_bfd_copy_private_section_data _bfd_generic_bfd_copy_private_section_data
 #define vms_bfd_copy_private_symbol_data  _bfd_generic_bfd_copy_private_symbol_data
-#define vms_bfd_set_private_flags         _bfd_generic_bfd_set_private_flags
-#define vms_bfd_merge_private_bfd_data    _bfd_generic_bfd_merge_private_bfd_data
+#define vms_bfd_set_private_flags	  _bfd_generic_bfd_set_private_flags
+#define vms_bfd_merge_private_bfd_data	  _bfd_generic_bfd_merge_private_bfd_data
 
 /* Symbols table.  */
-#define alpha_vms_make_empty_symbol        _bfd_generic_make_empty_symbol
+#define alpha_vms_make_empty_symbol	   _bfd_generic_make_empty_symbol
 #define alpha_vms_bfd_is_target_special_symbol \
    ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define alpha_vms_print_symbol             vms_print_symbol
-#define alpha_vms_get_symbol_info          vms_get_symbol_info
+#define alpha_vms_print_symbol		   vms_print_symbol
+#define alpha_vms_get_symbol_info	   vms_get_symbol_info
 #define alpha_vms_get_symbol_version_string \
   _bfd_nosymbols_get_symbol_version_string
 
-#define alpha_vms_read_minisymbols         _bfd_generic_read_minisymbols
-#define alpha_vms_minisymbol_to_symbol     _bfd_generic_minisymbol_to_symbol
-#define alpha_vms_get_lineno               _bfd_nosymbols_get_lineno
-#define alpha_vms_find_inliner_info        _bfd_nosymbols_find_inliner_info
-#define alpha_vms_bfd_make_debug_symbol    _bfd_nosymbols_bfd_make_debug_symbol
-#define alpha_vms_find_nearest_line        _bfd_vms_find_nearest_line
-#define alpha_vms_find_line                _bfd_nosymbols_find_line
+#define alpha_vms_read_minisymbols	   _bfd_generic_read_minisymbols
+#define alpha_vms_minisymbol_to_symbol	   _bfd_generic_minisymbol_to_symbol
+#define alpha_vms_get_lineno		   _bfd_nosymbols_get_lineno
+#define alpha_vms_find_inliner_info	   _bfd_nosymbols_find_inliner_info
+#define alpha_vms_bfd_make_debug_symbol	   _bfd_nosymbols_bfd_make_debug_symbol
+#define alpha_vms_find_nearest_line	   _bfd_vms_find_nearest_line
+#define alpha_vms_find_line		   _bfd_nosymbols_find_line
 #define alpha_vms_bfd_is_local_label_name  vms_bfd_is_local_label_name
 
 /* Generic table.  */
@@ -9322,6 +9545,7 @@ bfd_vms_get_data (bfd *abfd)
   _bfd_generic_section_already_linked
 
 #define alpha_vms_bfd_define_common_symbol bfd_generic_define_common_symbol
+#define alpha_vms_bfd_define_start_stop bfd_generic_define_start_stop
 #define alpha_vms_bfd_link_just_syms _bfd_generic_link_just_syms
 #define alpha_vms_bfd_copy_link_hash_symbol_type \
   _bfd_generic_copy_link_hash_symbol_type
@@ -9336,7 +9560,7 @@ bfd_vms_get_data (bfd *abfd)
   _bfd_nodynamic_get_dynamic_reloc_upper_bound
 #define alpha_vms_canonicalize_dynamic_reloc \
   _bfd_nodynamic_canonicalize_dynamic_reloc
-#define alpha_vms_bfd_link_check_relocs              _bfd_generic_link_check_relocs
+#define alpha_vms_bfd_link_check_relocs		     _bfd_generic_link_check_relocs
 
 const bfd_target alpha_vms_vec =
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/vms.h ./bfd/vms.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/vms.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/vms.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* vms.h -- Header file for VMS (Alpha and Vax) support.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    Main header file.
 
@@ -118,8 +118,8 @@ extern void vms_time_t_to_vms_time (time
 extern void vms_get_time (unsigned int *hi, unsigned int *lo);
 extern void vms_raw_get_time (unsigned char *buf);
 
-extern char * _bfd_vms_save_sized_string (unsigned char *, int);
-extern char * _bfd_vms_save_counted_string (unsigned char *);
+extern char * _bfd_vms_save_sized_string (unsigned char *, unsigned);
+extern char * _bfd_vms_save_counted_string (unsigned char *, unsigned);
 extern void   _bfd_vms_output_begin (struct vms_rec_wr *, int);
 extern void   _bfd_vms_output_alignment (struct vms_rec_wr *, int);
 extern void   _bfd_vms_output_begin_subrec (struct vms_rec_wr *, int);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/vms-lib.c ./bfd/vms-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/vms-lib.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/vms-lib.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* BFD back-end for VMS archive files.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -129,7 +129,7 @@ struct carsym_mem
 
 static bfd_boolean
 vms_add_index (struct carsym_mem *cs, char *name,
-               unsigned int idx_vbn, unsigned int idx_off)
+	       unsigned int idx_vbn, unsigned int idx_off)
 {
   if (cs->nbr == cs->max)
     {
@@ -138,19 +138,19 @@ vms_add_index (struct carsym_mem *cs, ch
       cs->max = 2 * cs->max + 32;
 
       if (!cs->realloced)
-        {
-          n = bfd_malloc2 (cs->max, sizeof (struct carsym));
-          if (n == NULL)
-            return FALSE;
-          memcpy (n, cs->idx, cs->nbr * sizeof (struct carsym));
-          /* And unfortunately we can't free cs->idx.  */
-        }
+	{
+	  n = bfd_malloc2 (cs->max, sizeof (struct carsym));
+	  if (n == NULL)
+	    return FALSE;
+	  memcpy (n, cs->idx, cs->nbr * sizeof (struct carsym));
+	  /* And unfortunately we can't free cs->idx.  */
+	}
       else
-        {
-          n = bfd_realloc_or_free (cs->idx, cs->nbr * sizeof (struct carsym));
-          if (n == NULL)
-            return FALSE;
-        }
+	{
+	  n = bfd_realloc_or_free (cs->idx, cs->nbr * sizeof (struct carsym));
+	  if (n == NULL)
+	    return FALSE;
+	}
       cs->idx = n;
       cs->realloced = TRUE;
     }
@@ -165,7 +165,7 @@ vms_add_index (struct carsym_mem *cs, ch
 
 static bfd_boolean
 vms_add_indexes_from_list (bfd *abfd, struct carsym_mem *cs, char *name,
-                           struct vms_rfa *rfa)
+			   struct vms_rfa *rfa)
 {
   struct vms_lns lns;
   unsigned int vbn;
@@ -175,18 +175,18 @@ vms_add_indexes_from_list (bfd *abfd, st
     {
       vbn = bfd_getl32 (rfa->vbn);
       if (vbn == 0)
-        return TRUE;
+	return TRUE;
 
       /* Read the LHS.  */
       off = (vbn - 1) * VMS_BLOCK_SIZE + bfd_getl16 (rfa->offset);
       if (bfd_seek (abfd, off, SEEK_SET) != 0
-          || bfd_bread (&lns, sizeof (lns), abfd) != sizeof (lns))
-        return FALSE;
+	  || bfd_bread (&lns, sizeof (lns), abfd) != sizeof (lns))
+	return FALSE;
 
       if (!vms_add_index (cs, name,
-                          bfd_getl32 (lns.modrfa.vbn),
-                          bfd_getl16 (lns.modrfa.offset)))
-        return FALSE;
+			  bfd_getl32 (lns.modrfa.vbn),
+			  bfd_getl16 (lns.modrfa.offset)))
+	return FALSE;
 
       rfa = &lns.nxtrfa;
     }
@@ -251,128 +251,128 @@ vms_traverse_index (bfd *abfd, unsigned 
 
       /* Extract key length.  */
       if (bfd_libdata (abfd)->ver == LBR_MAJORID)
-        {
-          struct vms_idx *ridx = (struct vms_idx *)p;
+	{
+	  struct vms_idx *ridx = (struct vms_idx *)p;
 
-          idx_vbn = bfd_getl32 (ridx->rfa.vbn);
-          idx_off = bfd_getl16 (ridx->rfa.offset);
+	  idx_vbn = bfd_getl32 (ridx->rfa.vbn);
+	  idx_off = bfd_getl16 (ridx->rfa.offset);
 
-          keylen = ridx->keylen;
-          flags = 0;
-          keyname = ridx->keyname;
-        }
+	  keylen = ridx->keylen;
+	  flags = 0;
+	  keyname = ridx->keyname;
+	}
       else if (bfd_libdata (abfd)->ver == LBR_ELFMAJORID)
-        {
-          struct vms_elfidx *ridx = (struct vms_elfidx *)p;
+	{
+	  struct vms_elfidx *ridx = (struct vms_elfidx *)p;
 
-          idx_vbn = bfd_getl32 (ridx->rfa.vbn);
-          idx_off = bfd_getl16 (ridx->rfa.offset);
+	  idx_vbn = bfd_getl32 (ridx->rfa.vbn);
+	  idx_off = bfd_getl16 (ridx->rfa.offset);
 
-          keylen = bfd_getl16 (ridx->keylen);
-          flags = ridx->flags;
-          keyname = ridx->keyname;
-        }
+	  keylen = bfd_getl16 (ridx->keylen);
+	  flags = ridx->flags;
+	  keyname = ridx->keyname;
+	}
       else
-        return FALSE;
+	return FALSE;
 
       /* Illegal value.  */
       if (idx_vbn == 0)
-        return FALSE;
+	return FALSE;
 
       /* Point to the next index entry.  */
       p = keyname + keylen;
 
       if (idx_off == RFADEF__C_INDEX)
-        {
-          /* Indirect entry.  Recurse.  */
-          if (!vms_traverse_index (abfd, idx_vbn, cs))
-            return FALSE;
-        }
+	{
+	  /* Indirect entry.  Recurse.  */
+	  if (!vms_traverse_index (abfd, idx_vbn, cs))
+	    return FALSE;
+	}
       else
-        {
-          /* Add a new entry.  */
-          char *name;
-
-          if (flags & ELFIDX__SYMESC)
-            {
-              /* Extended key name.  */
-              unsigned int noff = 0;
-              unsigned int koff;
-              unsigned int kvbn;
-              struct vms_kbn *kbn;
-              unsigned char kblk[VMS_BLOCK_SIZE];
-
-              /* Sanity check.  */
-              if (keylen != sizeof (struct vms_kbn))
-                return FALSE;
-
-              kbn = (struct vms_kbn *)keyname;
-              keylen = bfd_getl16 (kbn->keylen);
-
-              name = bfd_alloc (abfd, keylen + 1);
-              if (name == NULL)
-                return FALSE;
-              kvbn = bfd_getl32 (kbn->rfa.vbn);
-              koff = bfd_getl16 (kbn->rfa.offset);
-
-              /* Read the key, chunk by chunk.  */
-              do
-                {
-                  unsigned int klen;
-
-                  if (!vms_read_block (abfd, kvbn, kblk))
-                    return FALSE;
-                  kbn = (struct vms_kbn *)(kblk + koff);
-                  klen = bfd_getl16 (kbn->keylen);
-                  kvbn = bfd_getl32 (kbn->rfa.vbn);
-                  koff = bfd_getl16 (kbn->rfa.offset);
-
-                  memcpy (name + noff, kbn + 1, klen);
-                  noff += klen;
-                }
-              while (kvbn != 0);
-
-              /* Sanity check.  */
-              if (noff != keylen)
-                return FALSE;
-            }
-          else
-            {
-              /* Usual key name.  */
-              name = bfd_alloc (abfd, keylen + 1);
-              if (name == NULL)
-                return FALSE;
-
-              memcpy (name, keyname, keylen);
-            }
-          name[keylen] = 0;
-
-          if (flags & ELFIDX__LISTRFA)
-            {
-              struct vms_lhs lhs;
-
-              /* Read the LHS.  */
-              off = (idx_vbn - 1) * VMS_BLOCK_SIZE + idx_off;
-              if (bfd_seek (abfd, off, SEEK_SET) != 0
-                  || bfd_bread (&lhs, sizeof (lhs), abfd) != sizeof (lhs))
-                return FALSE;
-
-              /* FIXME: this adds extra entries that were not accounted.  */
-              if (!vms_add_indexes_from_list (abfd, cs, name, &lhs.ng_g_rfa))
-                return FALSE;
-              if (!vms_add_indexes_from_list (abfd, cs, name, &lhs.ng_wk_rfa))
-                return FALSE;
-              if (!vms_add_indexes_from_list (abfd, cs, name, &lhs.g_g_rfa))
-                return FALSE;
-              if (!vms_add_indexes_from_list (abfd, cs, name, &lhs.g_wk_rfa))
-                return FALSE;
-            }
-          else
-            {
-              if (!vms_add_index (cs, name, idx_vbn, idx_off))
-                return FALSE;
-            }
-        }
+	{
+	  /* Add a new entry.  */
+	  char *name;
+
+	  if (flags & ELFIDX__SYMESC)
+	    {
+	      /* Extended key name.  */
+	      unsigned int noff = 0;
+	      unsigned int koff;
+	      unsigned int kvbn;
+	      struct vms_kbn *kbn;
+	      unsigned char kblk[VMS_BLOCK_SIZE];
+
+	      /* Sanity check.  */
+	      if (keylen != sizeof (struct vms_kbn))
+		return FALSE;
+
+	      kbn = (struct vms_kbn *)keyname;
+	      keylen = bfd_getl16 (kbn->keylen);
+
+	      name = bfd_alloc (abfd, keylen + 1);
+	      if (name == NULL)
+		return FALSE;
+	      kvbn = bfd_getl32 (kbn->rfa.vbn);
+	      koff = bfd_getl16 (kbn->rfa.offset);
+
+	      /* Read the key, chunk by chunk.  */
+	      do
+		{
+		  unsigned int klen;
+
+		  if (!vms_read_block (abfd, kvbn, kblk))
+		    return FALSE;
+		  kbn = (struct vms_kbn *)(kblk + koff);
+		  klen = bfd_getl16 (kbn->keylen);
+		  kvbn = bfd_getl32 (kbn->rfa.vbn);
+		  koff = bfd_getl16 (kbn->rfa.offset);
+
+		  memcpy (name + noff, kbn + 1, klen);
+		  noff += klen;
+		}
+	      while (kvbn != 0);
+
+	      /* Sanity check.  */
+	      if (noff != keylen)
+		return FALSE;
+	    }
+	  else
+	    {
+	      /* Usual key name.  */
+	      name = bfd_alloc (abfd, keylen + 1);
+	      if (name == NULL)
+		return FALSE;
+
+	      memcpy (name, keyname, keylen);
+	    }
+	  name[keylen] = 0;
+
+	  if (flags & ELFIDX__LISTRFA)
+	    {
+	      struct vms_lhs lhs;
+
+	      /* Read the LHS.  */
+	      off = (idx_vbn - 1) * VMS_BLOCK_SIZE + idx_off;
+	      if (bfd_seek (abfd, off, SEEK_SET) != 0
+		  || bfd_bread (&lhs, sizeof (lhs), abfd) != sizeof (lhs))
+		return FALSE;
+
+	      /* FIXME: this adds extra entries that were not accounted.  */
+	      if (!vms_add_indexes_from_list (abfd, cs, name, &lhs.ng_g_rfa))
+		return FALSE;
+	      if (!vms_add_indexes_from_list (abfd, cs, name, &lhs.ng_wk_rfa))
+		return FALSE;
+	      if (!vms_add_indexes_from_list (abfd, cs, name, &lhs.g_g_rfa))
+		return FALSE;
+	      if (!vms_add_indexes_from_list (abfd, cs, name, &lhs.g_wk_rfa))
+		return FALSE;
+	    }
+	  else
+	    {
+	      if (!vms_add_index (cs, name, idx_vbn, idx_off))
+		return FALSE;
+	    }
+	}
     }
 
   return TRUE;
@@ -414,10 +414,10 @@ vms_lib_read_index (bfd *abfd, int idx, 
   if (vbn != 0 && !vms_traverse_index (abfd, vbn, &csm))
     {
       if (csm.realloced && csm.idx != NULL)
-        free (csm.idx);
+	free (csm.idx);
 
       /* Note: in case of error, we can free what was allocated on the
-         BFD's objalloc.  */
+	 BFD's objalloc.  */
       bfd_release (abfd, csbuf);
       return NULL;
     }
@@ -425,10 +425,10 @@ vms_lib_read_index (bfd *abfd, int idx, 
   if (csm.realloced)
     {
       /* There are more entries than the first estimate.  Allocate on
-         the BFD's objalloc.  */
+	 the BFD's objalloc.  */
       csbuf = bfd_alloc (abfd, csm.nbr * sizeof (struct carsym));
       if (csbuf == NULL)
-        return NULL;
+	return NULL;
       memcpy (csbuf, csm.idx, csm.nbr * sizeof (struct carsym));
       free (csm.idx);
       *nbrel = csm.nbr;
@@ -460,8 +460,8 @@ _bfd_vms_lib_archive_p (bfd *abfd, enum 
   /* Check sanity (= magic) number.  */
   sanity = bfd_getl32 (lhd.sanity);
   if (!(sanity == LHD_SANEID3
-        || sanity == LHD_SANEID6
-        || sanity == LHD_SANEID_DCX))
+	|| sanity == LHD_SANEID6
+	|| sanity == LHD_SANEID_DCX))
     {
       bfd_set_error (bfd_error_wrong_format);
       return NULL;
@@ -473,32 +473,32 @@ _bfd_vms_lib_archive_p (bfd *abfd, enum 
     {
     case vms_lib_alpha:
       if ((lhd.type != LBR__C_TYP_EOBJ && lhd.type != LBR__C_TYP_ESHSTB)
-          || majorid != LBR_MAJORID
-          || lhd.nindex != 2)
-        {
-          bfd_set_error (bfd_error_wrong_format);
-          return NULL;
-        }
+	  || majorid != LBR_MAJORID
+	  || lhd.nindex != 2)
+	{
+	  bfd_set_error (bfd_error_wrong_format);
+	  return NULL;
+	}
       break;
     case vms_lib_ia64:
       if ((lhd.type != LBR__C_TYP_IOBJ && lhd.type != LBR__C_TYP_ISHSTB)
-          || majorid != LBR_ELFMAJORID
-          || lhd.nindex != 2)
-        {
-          bfd_set_error (bfd_error_wrong_format);
-          return NULL;
-        }
+	  || majorid != LBR_ELFMAJORID
+	  || lhd.nindex != 2)
+	{
+	  bfd_set_error (bfd_error_wrong_format);
+	  return NULL;
+	}
       break;
     case vms_lib_txt:
       if ((lhd.type != LBR__C_TYP_TXT
-           && lhd.type != LBR__C_TYP_MLB
-           && lhd.type != LBR__C_TYP_HLP)
-          || majorid != LBR_MAJORID
-          || lhd.nindex != 1)
-        {
-          bfd_set_error (bfd_error_wrong_format);
-          return NULL;
-        }
+	   && lhd.type != LBR__C_TYP_MLB
+	   && lhd.type != LBR__C_TYP_HLP)
+	  || majorid != LBR_MAJORID
+	  || lhd.nindex != 1)
+	{
+	  bfd_set_error (bfd_error_wrong_format);
+	  return NULL;
+	}
       break;
     default:
       abort ();
@@ -529,12 +529,12 @@ _bfd_vms_lib_archive_p (bfd *abfd, enum 
       nbr_ent = tdata->artdata.symdef_count;
       tdata->artdata.symdefs = vms_lib_read_index (abfd, 1, &nbr_ent);
       if (tdata->artdata.symdefs == NULL)
-        goto err;
+	goto err;
       /* Only IA64 archives may have more entries in the index that what
-         was declared.  */
+	 was declared.  */
       if (nbr_ent != tdata->artdata.symdef_count
-          && kind != vms_lib_ia64)
-        goto err;
+	  && kind != vms_lib_ia64)
+	goto err;
       tdata->artdata.symdef_count = nbr_ent;
     }
   tdata->cache = bfd_zalloc (abfd, sizeof (bfd *) * tdata->nbr_modules);
@@ -553,68 +553,68 @@ _bfd_vms_lib_archive_p (bfd *abfd, enum 
       unsigned int i;
 
       if (bfd_seek (abfd, (dcxvbn - 1) * VMS_BLOCK_SIZE, SEEK_SET) != 0
-          || bfd_bread (buf_reclen, sizeof (buf_reclen), abfd)
-          != sizeof (buf_reclen))
-        goto err;
+	  || bfd_bread (buf_reclen, sizeof (buf_reclen), abfd)
+	  != sizeof (buf_reclen))
+	goto err;
       reclen = bfd_getl32 (buf_reclen);
       buf = bfd_malloc (reclen);
       if (buf == NULL)
-        goto err;
+	goto err;
       if (bfd_bread (buf, reclen, abfd) != reclen)
-        {
-          free (buf);
-          goto err;
-        }
+	{
+	  free (buf);
+	  goto err;
+	}
       map = (struct vms_dcxmap *)buf;
       tdata->nbr_dcxsbm = bfd_getl16 (map->nsubs);
       sbm_off = bfd_getl16 (map->sub0);
       tdata->dcxsbm = (struct dcxsbm_desc *)bfd_alloc
-        (abfd, tdata->nbr_dcxsbm * sizeof (struct dcxsbm_desc));
+	(abfd, tdata->nbr_dcxsbm * sizeof (struct dcxsbm_desc));
       for (i = 0; i < tdata->nbr_dcxsbm; i++)
-        {
-          struct vms_dcxsbm *sbm = (struct vms_dcxsbm *) (buf + sbm_off);
-          struct dcxsbm_desc *sbmdesc = &tdata->dcxsbm[i];
-          unsigned int sbm_len;
-          unsigned int sbm_sz;
-          unsigned int off;
-          unsigned char *data = (unsigned char *)sbm;
-          unsigned char *buf1;
-          unsigned int l, j;
-
-          sbm_sz = bfd_getl16 (sbm->size);
-          sbm_off += sbm_sz;
-          BFD_ASSERT (sbm_off <= reclen);
-
-          sbmdesc->min_char = sbm->min_char;
-          BFD_ASSERT (sbmdesc->min_char == 0);
-          sbmdesc->max_char = sbm->max_char;
-          sbm_len = sbmdesc->max_char - sbmdesc->min_char + 1;
-          l = (2 * sbm_len + 7) / 8;
-          BFD_ASSERT
-            (sbm_sz >= sizeof (struct vms_dcxsbm) + l + 3 * sbm_len
-             || (tdata->nbr_dcxsbm == 1
-                 && sbm_sz >= sizeof (struct vms_dcxsbm) + l + sbm_len));
-          sbmdesc->flags = (unsigned char *)bfd_alloc (abfd, l);
-          memcpy (sbmdesc->flags, data + bfd_getl16 (sbm->flags), l);
-          sbmdesc->nodes = (unsigned char *)bfd_alloc (abfd, 2 * sbm_len);
-          memcpy (sbmdesc->nodes, data + bfd_getl16 (sbm->nodes), 2 * sbm_len);
-          off = bfd_getl16 (sbm->next);
-          if (off != 0)
-            {
-              /* Read the 'next' array.  */
-              sbmdesc->next = (unsigned short *)bfd_alloc
-                (abfd, sbm_len * sizeof (unsigned short));
-              buf1 = data + off;
-              for (j = 0; j < sbm_len; j++)
-                sbmdesc->next[j] = bfd_getl16 (buf1 + j * 2);
-            }
-          else
-            {
-              /* There is no next array if there is only one submap.  */
-              BFD_ASSERT (tdata->nbr_dcxsbm == 1);
-              sbmdesc->next = NULL;
-            }
-        }
+	{
+	  struct vms_dcxsbm *sbm = (struct vms_dcxsbm *) (buf + sbm_off);
+	  struct dcxsbm_desc *sbmdesc = &tdata->dcxsbm[i];
+	  unsigned int sbm_len;
+	  unsigned int sbm_sz;
+	  unsigned int off;
+	  unsigned char *data = (unsigned char *)sbm;
+	  unsigned char *buf1;
+	  unsigned int l, j;
+
+	  sbm_sz = bfd_getl16 (sbm->size);
+	  sbm_off += sbm_sz;
+	  BFD_ASSERT (sbm_off <= reclen);
+
+	  sbmdesc->min_char = sbm->min_char;
+	  BFD_ASSERT (sbmdesc->min_char == 0);
+	  sbmdesc->max_char = sbm->max_char;
+	  sbm_len = sbmdesc->max_char - sbmdesc->min_char + 1;
+	  l = (2 * sbm_len + 7) / 8;
+	  BFD_ASSERT
+	    (sbm_sz >= sizeof (struct vms_dcxsbm) + l + 3 * sbm_len
+	     || (tdata->nbr_dcxsbm == 1
+		 && sbm_sz >= sizeof (struct vms_dcxsbm) + l + sbm_len));
+	  sbmdesc->flags = (unsigned char *)bfd_alloc (abfd, l);
+	  memcpy (sbmdesc->flags, data + bfd_getl16 (sbm->flags), l);
+	  sbmdesc->nodes = (unsigned char *)bfd_alloc (abfd, 2 * sbm_len);
+	  memcpy (sbmdesc->nodes, data + bfd_getl16 (sbm->nodes), 2 * sbm_len);
+	  off = bfd_getl16 (sbm->next);
+	  if (off != 0)
+	    {
+	      /* Read the 'next' array.  */
+	      sbmdesc->next = (unsigned short *)bfd_alloc
+		(abfd, sbm_len * sizeof (unsigned short));
+	      buf1 = data + off;
+	      for (j = 0; j < sbm_len; j++)
+		sbmdesc->next[j] = bfd_getl16 (buf1 + j * 2);
+	    }
+	  else
+	    {
+	      /* There is no next array if there is only one submap.  */
+	      BFD_ASSERT (tdata->nbr_dcxsbm == 1);
+	      sbmdesc->next = NULL;
+	    }
+	}
       free (buf);
     }
   else
@@ -731,13 +731,13 @@ _bfd_vms_lib_find_symbol (bfd *abfd, con
 
       diff = (char)(name[0] - syms[mid].name[0]);
       if (diff == 0)
-        diff = strcmp (name, syms[mid].name);
+	diff = strcmp (name, syms[mid].name);
       if (diff == 0)
-        return mid;
+	return mid;
       else if (diff < 0)
-        hi = mid - 1;
+	hi = mid - 1;
       else
-        lo = mid + 1;
+	lo = mid + 1;
     }
   return BFD_NO_MORE_SYMBOLS;
 }
@@ -821,9 +821,9 @@ vms_lib_read_block (struct bfd *abfd)
 
       /* Read next block.  */
       if (bfd_seek (abfd->my_archive, vec->next_block, SEEK_SET) != 0)
-        return FALSE;
+	return FALSE;
       if (bfd_bread (hdr, sizeof (hdr), abfd->my_archive) != sizeof (hdr))
-        return FALSE;
+	return FALSE;
       vec->next_block = (bfd_getl32 (hdr + 2) - 1) * VMS_BLOCK_SIZE;
       vec->blk_off = sizeof (hdr);
     }
@@ -847,29 +847,29 @@ vms_lib_bread_raw (struct bfd *abfd, uns
 
       /* Be sure the current data block is read.  */
       if (!vms_lib_read_block (abfd))
-        return -1;
+	return -1;
 
       /* Do not read past the data block, do not read more than requested.  */
       l = DATA__LENGTH - vec->blk_off;
       if (l > nbytes)
-        l = nbytes;
+	l = nbytes;
       if (l == 0)
-        return 0;
+	return 0;
       if (buf != NULL)
-        {
-          /* Really read into BUF.  */
-          if (bfd_bread (buf, l, abfd->my_archive) != l)
-            return -1;
-        }
+	{
+	  /* Really read into BUF.  */
+	  if (bfd_bread (buf, l, abfd->my_archive) != l)
+	    return -1;
+	}
       else
-        {
-          /* Make as if we are reading.  */
-          if (bfd_seek (abfd->my_archive, l, SEEK_CUR) != 0)
-            return -1;
-        }
+	{
+	  /* Make as if we are reading.  */
+	  if (bfd_seek (abfd->my_archive, l, SEEK_CUR) != 0)
+	    return -1;
+	}
 
       if (buf != NULL)
-        buf += l;
+	buf += l;
       vec->blk_off += l;
       nbytes -= l;
       res += l;
@@ -902,49 +902,49 @@ vms_lib_dcx (struct vms_lib_iovec *vec, 
       unsigned char b = vec->dcx_buf[i];
 
       for (; j < 8; j++)
-        {
-          if (b & (1 << j))
-            offset++;
-          if (!(sbm->flags[offset >> 3] & (1 << (offset & 7))))
-            {
-              unsigned int n_offset = sbm->nodes[offset];
-              if (n_offset == 0)
-                {
-                  /* End of buffer.  Stay where we are.  */
-                  vec->dcx_pos = (i << 3) + j;
-                  if (b & (1 << j))
-                    offset--;
-                  vec->dcx_offset = offset;
-                  vec->dcx_sbm = sbm;
-                  return res;
-                }
-              offset = 2 * n_offset;
-            }
-          else
-            {
-              unsigned char v = sbm->nodes[offset];
-
-              if (sbm->next != NULL)
-                sbm = vec->dcxsbms + sbm->next[v];
-              offset = 0;
-              res++;
-
-              if (buf)
-                {
-                  *buf++ = v;
-                  nbytes--;
-
-                  if (nbytes == 0)
-                    {
-                      vec->dcx_pos = (i << 3) + j + 1;
-                      vec->dcx_offset = offset;
-                      vec->dcx_sbm = sbm;
-
-                      return res;
-                    }
-                }
-            }
-        }
+	{
+	  if (b & (1 << j))
+	    offset++;
+	  if (!(sbm->flags[offset >> 3] & (1 << (offset & 7))))
+	    {
+	      unsigned int n_offset = sbm->nodes[offset];
+	      if (n_offset == 0)
+		{
+		  /* End of buffer.  Stay where we are.  */
+		  vec->dcx_pos = (i << 3) + j;
+		  if (b & (1 << j))
+		    offset--;
+		  vec->dcx_offset = offset;
+		  vec->dcx_sbm = sbm;
+		  return res;
+		}
+	      offset = 2 * n_offset;
+	    }
+	  else
+	    {
+	      unsigned char v = sbm->nodes[offset];
+
+	      if (sbm->next != NULL)
+		sbm = vec->dcxsbms + sbm->next[v];
+	      offset = 0;
+	      res++;
+
+	      if (buf)
+		{
+		  *buf++ = v;
+		  nbytes--;
+
+		  if (nbytes == 0)
+		    {
+		      vec->dcx_pos = (i << 3) + j + 1;
+		      vec->dcx_offset = offset;
+		      vec->dcx_sbm = sbm;
+
+		      return res;
+		    }
+		}
+	    }
+	}
       j = 0;
     }
   return -1;
@@ -968,177 +968,177 @@ vms_lib_bread (struct bfd *abfd, void *v
   while (nbytes > 0)
     {
       if (vec->rec_rem == 0)
-        {
-          unsigned char blen[2];
+	{
+	  unsigned char blen[2];
+
+	  /* Read record length.  */
+	  if (vms_lib_bread_raw (abfd, blen, sizeof (blen)) != sizeof (blen))
+	    return -1;
+	  vec->rec_len = bfd_getl16 (blen);
+	  if (bfd_libdata (abfd->my_archive)->kind == vms_lib_txt)
+	    {
+	      /* Discard record size and align byte.  */
+	      vec->rec_pos = 0;
+	      vec->rec_rem = vec->rec_len;
+	    }
+	  else
+	    {
+	      /* Prepend record size.  */
+	      vec->rec_pos = REC_POS_LEN0;
+	      vec->rec_rem = (vec->rec_len + 1) & ~1;	/* With align byte.  */
+	    }
+	  if (vec->rec_len == 3)
+	    {
+	      /* Possibly end of file.  Check the pattern.  */
+	      if (vms_lib_bread_raw (abfd, vec->pattern, 4) != 4)
+		return -1;
+	      if (!memcmp (vec->pattern, eotdesc + 2, 3))
+		{
+		  /* This is really an EOF.  */
+		  vec->where += res;
+		  vec->file_len = vec->where;
+		  return res;
+		}
+	    }
 
-          /* Read record length.  */
-          if (vms_lib_bread_raw (abfd, blen, sizeof (blen)) != sizeof (blen))
-            return -1;
-          vec->rec_len = bfd_getl16 (blen);
-          if (bfd_libdata (abfd->my_archive)->kind == vms_lib_txt)
-            {
-              /* Discard record size and align byte.  */
-              vec->rec_pos = 0;
-              vec->rec_rem = vec->rec_len;
-            }
-          else
-            {
-              /* Prepend record size.  */
-              vec->rec_pos = REC_POS_LEN0;
-              vec->rec_rem = (vec->rec_len + 1) & ~1;	/* With align byte.  */
-            }
-          if (vec->rec_len == 3)
-            {
-              /* Possibly end of file.  Check the pattern.  */
-              if (vms_lib_bread_raw (abfd, vec->pattern, 4) != 4)
-                return -1;
-              if (!memcmp (vec->pattern, eotdesc + 2, 3))
-                {
-                  /* This is really an EOF.  */
-                  vec->where += res;
-                  vec->file_len = vec->where;
-                  return res;
-                }
-            }
-
-          if (vec->dcxsbms != NULL)
-            {
-              /* This is a compressed member.  */
-              unsigned int len;
-              file_ptr elen;
-
-              /* Be sure there is enough room for the expansion.  */
-              len = (vec->rec_len + 1) & ~1;
-              if (len > vec->dcx_max)
-                {
-                  while (len > vec->dcx_max)
-                    vec->dcx_max *= 2;
-                  vec->dcx_buf = bfd_alloc (abfd, vec->dcx_max);
-                  if (vec->dcx_buf == NULL)
-                    return -1;
-                }
-
-              /* Read the compressed record.  */
-              vec->dcx_rlen = len;
-              if (vec->rec_len == 3)
-                {
-                  /* Already read.  */
-                  memcpy (vec->dcx_buf, vec->pattern, 3);
-                }
-              else
-                {
-                  elen = vms_lib_bread_raw (abfd, vec->dcx_buf, len);
-                  if (elen != len)
-                    return -1;
-                }
-
-              /* Dummy expansion to get the expanded length.  */
-              vec->dcx_offset = 0;
-              vec->dcx_sbm = vec->dcxsbms;
-              vec->dcx_pos = 0;
-              elen = vms_lib_dcx (vec, NULL, 0x10000);
-              if (elen < 0)
-                return -1;
-              vec->rec_len = elen;
-              vec->rec_rem = elen;
-
-              /* Reset the state.  */
-              vec->dcx_offset = 0;
-              vec->dcx_sbm = vec->dcxsbms;
-              vec->dcx_pos = 0;
-            }
-        }
+	  if (vec->dcxsbms != NULL)
+	    {
+	      /* This is a compressed member.  */
+	      unsigned int len;
+	      file_ptr elen;
+
+	      /* Be sure there is enough room for the expansion.  */
+	      len = (vec->rec_len + 1) & ~1;
+	      if (len > vec->dcx_max)
+		{
+		  while (len > vec->dcx_max)
+		    vec->dcx_max *= 2;
+		  vec->dcx_buf = bfd_alloc (abfd, vec->dcx_max);
+		  if (vec->dcx_buf == NULL)
+		    return -1;
+		}
+
+	      /* Read the compressed record.  */
+	      vec->dcx_rlen = len;
+	      if (vec->rec_len == 3)
+		{
+		  /* Already read.  */
+		  memcpy (vec->dcx_buf, vec->pattern, 3);
+		}
+	      else
+		{
+		  elen = vms_lib_bread_raw (abfd, vec->dcx_buf, len);
+		  if (elen != len)
+		    return -1;
+		}
+
+	      /* Dummy expansion to get the expanded length.  */
+	      vec->dcx_offset = 0;
+	      vec->dcx_sbm = vec->dcxsbms;
+	      vec->dcx_pos = 0;
+	      elen = vms_lib_dcx (vec, NULL, 0x10000);
+	      if (elen < 0)
+		return -1;
+	      vec->rec_len = elen;
+	      vec->rec_rem = elen;
+
+	      /* Reset the state.  */
+	      vec->dcx_offset = 0;
+	      vec->dcx_sbm = vec->dcxsbms;
+	      vec->dcx_pos = 0;
+	    }
+	}
       if (vec->rec_pos < 0)
-        {
-          unsigned char c;
-          switch (vec->rec_pos)
-            {
-            case REC_POS_LEN0:
-              c = vec->rec_len & 0xff;
-              vec->rec_pos = REC_POS_LEN1;
-              break;
-            case REC_POS_LEN1:
-              c = (vec->rec_len >> 8) & 0xff;
-              vec->rec_pos = 0;
-              break;
-            case REC_POS_PAD:
-              c = 0;
-              vec->rec_rem = 0;
-              break;
-            case REC_POS_NL:
-              c = '\n';
-              vec->rec_rem = 0;
-              break;
-            default:
-              abort ();
-            }
-          if (buf != NULL)
-            {
-              *buf = c;
-              buf++;
-            }
-          nbytes--;
-          res++;
-          continue;
-        }
+	{
+	  unsigned char c;
+	  switch (vec->rec_pos)
+	    {
+	    case REC_POS_LEN0:
+	      c = vec->rec_len & 0xff;
+	      vec->rec_pos = REC_POS_LEN1;
+	      break;
+	    case REC_POS_LEN1:
+	      c = (vec->rec_len >> 8) & 0xff;
+	      vec->rec_pos = 0;
+	      break;
+	    case REC_POS_PAD:
+	      c = 0;
+	      vec->rec_rem = 0;
+	      break;
+	    case REC_POS_NL:
+	      c = '\n';
+	      vec->rec_rem = 0;
+	      break;
+	    default:
+	      abort ();
+	    }
+	  if (buf != NULL)
+	    {
+	      *buf = c;
+	      buf++;
+	    }
+	  nbytes--;
+	  res++;
+	  continue;
+	}
 
       if (nbytes > vec->rec_rem)
-        chunk = vec->rec_rem;
+	chunk = vec->rec_rem;
       else
-        chunk = nbytes;
+	chunk = nbytes;
 
       if (vec->dcxsbms != NULL)
-        {
-          /* Optimize the stat() case: no need to decompress again as we
-             know the length.  */
-          if (!(buf == NULL && chunk == vec->rec_rem))
-            chunk = vms_lib_dcx (vec, buf, chunk);
-        }
+	{
+	  /* Optimize the stat() case: no need to decompress again as we
+	     know the length.  */
+	  if (!(buf == NULL && chunk == vec->rec_rem))
+	    chunk = vms_lib_dcx (vec, buf, chunk);
+	}
       else
-        {
-          if (vec->rec_len == 3)
-            {
-              if (buf != NULL)
-                memcpy (buf, vec->pattern + vec->rec_pos, chunk);
-            }
-          else
-            chunk = vms_lib_bread_raw (abfd, buf, chunk);
-        }
+	{
+	  if (vec->rec_len == 3)
+	    {
+	      if (buf != NULL)
+		memcpy (buf, vec->pattern + vec->rec_pos, chunk);
+	    }
+	  else
+	    chunk = vms_lib_bread_raw (abfd, buf, chunk);
+	}
       if (chunk < 0)
-        return -1;
+	return -1;
       res += chunk;
       if (buf != NULL)
-        buf += chunk;
+	buf += chunk;
       nbytes -= chunk;
       vec->rec_pos += chunk;
       vec->rec_rem -= chunk;
 
       if (vec->rec_rem == 0)
-        {
-          /* End of record reached.  */
-          if (bfd_libdata (abfd->my_archive)->kind == vms_lib_txt)
-            {
-              if ((vec->rec_len & 1) == 1
-                  && vec->rec_len != 3
-                  && vec->dcxsbms == NULL)
-                {
-                  /* Eat the pad byte.  */
-                  unsigned char pad;
-                  if (vms_lib_bread_raw (abfd, &pad, 1) != 1)
-                    return -1;
-                }
-              vec->rec_pos = REC_POS_NL;
-              vec->rec_rem = 1;
-            }
-          else
-            {
-              if ((vec->rec_len & 1) == 1 && vec->dcxsbms != NULL)
-                {
-                  vec->rec_pos = REC_POS_PAD;
-                  vec->rec_rem = 1;
-                }
-            }
-        }
+	{
+	  /* End of record reached.  */
+	  if (bfd_libdata (abfd->my_archive)->kind == vms_lib_txt)
+	    {
+	      if ((vec->rec_len & 1) == 1
+		  && vec->rec_len != 3
+		  && vec->dcxsbms == NULL)
+		{
+		  /* Eat the pad byte.  */
+		  unsigned char pad;
+		  if (vms_lib_bread_raw (abfd, &pad, 1) != 1)
+		    return -1;
+		}
+	      vec->rec_pos = REC_POS_NL;
+	      vec->rec_rem = 1;
+	    }
+	  else
+	    {
+	      if ((vec->rec_len & 1) == 1 && vec->dcxsbms != NULL)
+		{
+		  vec->rec_pos = REC_POS_PAD;
+		  vec->rec_rem = 1;
+		}
+	    }
+	}
     }
   vec->where += res;
   return res;
@@ -1160,7 +1160,7 @@ vms_lib_bseek (struct bfd *abfd, file_pt
       vec->next_block = vec->init_next_block;
 
       if (bfd_seek (abfd->my_archive, vec->first_block, SEEK_SET) != 0)
-        return -1;
+	return -1;
     }
   else
     abort ();
@@ -1190,7 +1190,7 @@ vms_lib_bflush (struct bfd *abfd ATTRIBU
 
 static int
 vms_lib_bstat (struct bfd *abfd ATTRIBUTE_UNUSED,
-               struct stat *sb ATTRIBUTE_UNUSED)
+	       struct stat *sb ATTRIBUTE_UNUSED)
 {
   /* Not supported.  */
   return 0;
@@ -1198,13 +1198,13 @@ vms_lib_bstat (struct bfd *abfd ATTRIBUT
 
 static void *
 vms_lib_bmmap (struct bfd *abfd ATTRIBUTE_UNUSED,
-               void *addr ATTRIBUTE_UNUSED,
-               bfd_size_type len ATTRIBUTE_UNUSED,
-               int prot ATTRIBUTE_UNUSED,
-               int flags ATTRIBUTE_UNUSED,
-               file_ptr offset ATTRIBUTE_UNUSED,
-               void **map_addr ATTRIBUTE_UNUSED,
-               bfd_size_type *map_len ATTRIBUTE_UNUSED)
+	       void *addr ATTRIBUTE_UNUSED,
+	       bfd_size_type len ATTRIBUTE_UNUSED,
+	       int prot ATTRIBUTE_UNUSED,
+	       int flags ATTRIBUTE_UNUSED,
+	       file_ptr offset ATTRIBUTE_UNUSED,
+	       void **map_addr ATTRIBUTE_UNUSED,
+	       bfd_size_type *map_len ATTRIBUTE_UNUSED)
 {
   return (void *) -1;
 }
@@ -1284,7 +1284,7 @@ vms_lib_bopen (bfd *el, file_ptr filepos
       vec->dcx_buf = bfd_alloc (el, vec->dcx_max);
       vec->dcx_pos = -1;
       if (vec->dcx_buf == NULL)
-        return -1;
+	return -1;
     }
   return TRUE;
 }
@@ -1313,11 +1313,11 @@ _bfd_vms_lib_get_module (bfd *abfd, unsi
     {
       res = _bfd_create_empty_archive_element_shell (abfd);
       if (res == NULL)
-        return NULL;
+	return NULL;
 
       /* Special reader to deal with data blocks.  */
       if (!vms_lib_bopen (res, file_off))
-        return NULL;
+	return NULL;
     }
   else
     {
@@ -1327,35 +1327,35 @@ _bfd_vms_lib_get_module (bfd *abfd, unsi
 
       /* Sanity check.  The MHD must be big enough to contain module size.  */
       if (tdata->mhd_size < offsetof (struct vms_mhd, modsize) + 4)
-        return NULL;
+	return NULL;
 
       /* Read the MHD now.  */
       if (bfd_seek (abfd, file_off, SEEK_SET) != 0)
-        return NULL;
+	return NULL;
       if (bfd_bread (buf, tdata->mhd_size, abfd) != tdata->mhd_size)
-        return NULL;
+	return NULL;
 
       res = _bfd_create_empty_archive_element_shell (abfd);
       if (res == NULL)
-        return NULL;
+	return NULL;
       arelt = bfd_zmalloc (sizeof (*arelt));
       if (arelt == NULL)
-        return NULL;
+	return NULL;
       res->arelt_data = arelt;
 
       /* Get info from mhd.  */
       mhd = (struct vms_mhd *)buf;
       if (mhd->id != MHD__C_MHDID)
-        return NULL;
+	return NULL;
       if (tdata->mhd_size >= offsetof (struct vms_mhd, objstat) + 1)
-        res->selective_search = (mhd->objstat & MHD__M_SELSRC) ? 1 : 0;
+	res->selective_search = (mhd->objstat & MHD__M_SELSRC) ? 1 : 0;
       res->mtime = vms_rawtime_to_time_t (mhd->datim);
       res->mtime_set = TRUE;
 
       arelt->parsed_size = bfd_getl32 (mhd->modsize);
 
       /* No need for a special reader as members are stored linearly.
-         Just skip the MHD.  */
+	 Just skip the MHD.  */
       res->origin = file_off + tdata->mhd_size;
     }
 
@@ -1402,7 +1402,7 @@ _bfd_vms_lib_get_elt_at_index (bfd *abfd
   for (modidx = 0; modidx < tdata->nbr_modules; modidx++)
     {
       if (tdata->modules[modidx].file_offset == file_off)
-        break;
+	break;
     }
   if (modidx >= tdata->nbr_modules)
     return NULL;
@@ -1456,7 +1456,7 @@ _bfd_vms_lib_get_imagelib_file (bfd *el)
 
 bfd *
 _bfd_vms_lib_openr_next_archived_file (bfd *archive,
-                                       bfd *last_file)
+				       bfd *last_file)
 {
   unsigned int idx;
   bfd *res;
@@ -1499,14 +1499,14 @@ _bfd_vms_lib_generic_stat_arch_elt (bfd 
       struct vms_lib_iovec *vec = (struct vms_lib_iovec *) abfd->iostream;
 
       if (vec->file_len == (ufile_ptr)-1)
-        {
-          if (vms_lib_bseek (abfd, 0, SEEK_SET) != 0)
-            return -1;
-
-          /* Compute length.  */
-          while (vms_lib_bread (abfd, NULL, 1 << 20) > 0)
-            ;
-        }
+	{
+	  if (vms_lib_bseek (abfd, 0, SEEK_SET) != 0)
+	    return -1;
+
+	  /* Compute length.  */
+	  while (vms_lib_bread (abfd, NULL, 1 << 20) > 0)
+	    ;
+	}
       st->st_size = vec->file_len;
     }
   else
@@ -1566,9 +1566,9 @@ get_idxlen (struct lib_index *idx, bfd_b
     {
       /* 9 is the size of struct vms_elfidx without keyname.  */
       if (idx->namlen > MAX_KEYLEN)
-        return 9 + sizeof (struct vms_kbn);
+	return 9 + sizeof (struct vms_kbn);
       else
-        return 9 + idx->namlen;
+	return 9 + idx->namlen;
     }
   else
     {
@@ -1586,8 +1586,8 @@ get_idxlen (struct lib_index *idx, bfd_b
 
 static bfd_boolean
 vms_write_index (bfd *abfd,
-                 struct lib_index *idx, unsigned int nbr, unsigned int *vbn,
-                 unsigned int *topvbn, bfd_boolean is_elfidx)
+		 struct lib_index *idx, unsigned int nbr, unsigned int *vbn,
+		 unsigned int *topvbn, bfd_boolean is_elfidx)
 {
   /* The index is organized as a tree.  This function implements a naive
      algorithm to balance the tree: it fills the leaves, and create a new
@@ -1617,7 +1617,7 @@ vms_write_index (bfd *abfd,
     {
       /* No entries.  Very easy to handle.  */
       if (topvbn != NULL)
-        *topvbn = 0;
+	*topvbn = 0;
       return TRUE;
     }
 
@@ -1645,204 +1645,204 @@ vms_write_index (bfd *abfd,
       idxlen = get_idxlen (idx, is_elfidx);
 
       if (is_elfidx && idx->namlen > MAX_KEYLEN)
-        {
-          /* If the key (ie name) is too long, write it in the kbn block.  */
-          unsigned int kl = idx->namlen;
-          unsigned int kl_chunk;
-          const char *key = idx->name;
-
-          /* Write the key in the kbn, chunk after chunk.  */
-          do
-            {
-              if (kbn_sz < sizeof (struct vms_kbn))
-                {
-                  /* Not enough room in the kbn block.  */
-                  if (abfd != NULL)
-                    {
-                      /* Write it to the disk (if there is one).  */
-                      if (kbn_vbn != 0)
-                        {
-                          if (vms_write_block (abfd, kbn_vbn, kbn_blk) != TRUE)
-                            return FALSE;
-                        }
-                      else
-                        {
-                          kbn_blk = bfd_malloc (VMS_BLOCK_SIZE);
-                          if (kbn_blk == NULL)
-                            return FALSE;
-                        }
-                      *(unsigned short *)kbn_blk = 0;
-                    }
-                  /* Allocate a new block for the keys.  */
-                  kbn_vbn = (*vbn)++;
-                  kbn_sz = VMS_BLOCK_SIZE - 2;
-                }
-              /* Size of the chunk written to the current key block.  */
-              if (kl + sizeof (struct vms_kbn) > kbn_sz)
-                kl_chunk = kbn_sz - sizeof (struct vms_kbn);
-              else
-                kl_chunk = kl;
-
-              if (kbn_blk != NULL)
-                {
-                  struct vms_kbn *kbn;
-
-                  kbn = (struct vms_kbn *)(kbn_blk + VMS_BLOCK_SIZE - kbn_sz);
-
-                  if (key_vbn == 0)
-                    {
-                      /* Save the rfa of the first chunk.  */
-                      key_vbn = kbn_vbn;
-                      key_off = VMS_BLOCK_SIZE - kbn_sz;
-                    }
-
-                  bfd_putl16 (kl_chunk, kbn->keylen);
-                  if (kl_chunk == kl)
-                    {
-                      /* No next chunk.  */
-                      bfd_putl32 (0, kbn->rfa.vbn);
-                      bfd_putl16 (0, kbn->rfa.offset);
-                    }
-                  else
-                    {
-                      /* Next chunk will be at the start of the next block.  */
-                      bfd_putl32 (*vbn, kbn->rfa.vbn);
-                      bfd_putl16 (2, kbn->rfa.offset);
-                    }
-                  memcpy ((char *)(kbn + 1), key, kl_chunk);
-                  key += kl_chunk;
-                }
-              kl -= kl_chunk;
-              kl_chunk = (kl_chunk + 1) & ~1;	  /* Always align.  */
-              kbn_sz -= kl_chunk + sizeof (struct vms_kbn);
-            }
-          while (kl > 0);
-        }
+	{
+	  /* If the key (ie name) is too long, write it in the kbn block.  */
+	  unsigned int kl = idx->namlen;
+	  unsigned int kl_chunk;
+	  const char *key = idx->name;
+
+	  /* Write the key in the kbn, chunk after chunk.  */
+	  do
+	    {
+	      if (kbn_sz < sizeof (struct vms_kbn))
+		{
+		  /* Not enough room in the kbn block.  */
+		  if (abfd != NULL)
+		    {
+		      /* Write it to the disk (if there is one).  */
+		      if (kbn_vbn != 0)
+			{
+			  if (!vms_write_block (abfd, kbn_vbn, kbn_blk))
+			    return FALSE;
+			}
+		      else
+			{
+			  kbn_blk = bfd_malloc (VMS_BLOCK_SIZE);
+			  if (kbn_blk == NULL)
+			    return FALSE;
+			}
+		      *(unsigned short *)kbn_blk = 0;
+		    }
+		  /* Allocate a new block for the keys.  */
+		  kbn_vbn = (*vbn)++;
+		  kbn_sz = VMS_BLOCK_SIZE - 2;
+		}
+	      /* Size of the chunk written to the current key block.  */
+	      if (kl + sizeof (struct vms_kbn) > kbn_sz)
+		kl_chunk = kbn_sz - sizeof (struct vms_kbn);
+	      else
+		kl_chunk = kl;
+
+	      if (kbn_blk != NULL)
+		{
+		  struct vms_kbn *kbn;
+
+		  kbn = (struct vms_kbn *)(kbn_blk + VMS_BLOCK_SIZE - kbn_sz);
+
+		  if (key_vbn == 0)
+		    {
+		      /* Save the rfa of the first chunk.  */
+		      key_vbn = kbn_vbn;
+		      key_off = VMS_BLOCK_SIZE - kbn_sz;
+		    }
+
+		  bfd_putl16 (kl_chunk, kbn->keylen);
+		  if (kl_chunk == kl)
+		    {
+		      /* No next chunk.  */
+		      bfd_putl32 (0, kbn->rfa.vbn);
+		      bfd_putl16 (0, kbn->rfa.offset);
+		    }
+		  else
+		    {
+		      /* Next chunk will be at the start of the next block.  */
+		      bfd_putl32 (*vbn, kbn->rfa.vbn);
+		      bfd_putl16 (2, kbn->rfa.offset);
+		    }
+		  memcpy ((char *)(kbn + 1), key, kl_chunk);
+		  key += kl_chunk;
+		}
+	      kl -= kl_chunk;
+	      kl_chunk = (kl_chunk + 1) & ~1;	  /* Always align.  */
+	      kbn_sz -= kl_chunk + sizeof (struct vms_kbn);
+	    }
+	  while (kl > 0);
+	}
 
       /* Check if a block might overflow.  In this case we will flush this
-         block and all the blocks below it.  */
+	 block and all the blocks below it.  */
       for (j = 0; j < level; j++)
-        if (blk[j].len + blk[j].lastlen + idxlen > INDEXDEF__BLKSIZ)
+	if (blk[j].len + blk[j].lastlen + idxlen > INDEXDEF__BLKSIZ)
 	  flush = j + 1;
 
       for (j = 0; j < level; j++)
-        {
-          if (j < flush)
-            {
-              /* There is not enough room to write the new entry in this
-                 block or in a parent block.  */
-
-              if (j + 1 == level)
-                {
-                  BFD_ASSERT (level < MAX_LEVEL);
-
-                  /* Need to create a parent.  */
-                  if (abfd != NULL)
-                    {
-                      rblk[level] = bfd_zmalloc (sizeof (struct vms_indexdef));
-                      bfd_putl32 (*vbn, rblk[j]->parent);
-                    }
-                  blk[level].vbn = (*vbn)++;
-                  blk[level].len = 0;
-                  blk[level].lastlen = blk[j].lastlen;
+	{
+	  if (j < flush)
+	    {
+	      /* There is not enough room to write the new entry in this
+		 block or in a parent block.  */
+
+	      if (j + 1 == level)
+		{
+		  BFD_ASSERT (level < MAX_LEVEL);
+
+		  /* Need to create a parent.  */
+		  if (abfd != NULL)
+		    {
+		      rblk[level] = bfd_zmalloc (sizeof (struct vms_indexdef));
+		      bfd_putl32 (*vbn, rblk[j]->parent);
+		    }
+		  blk[level].vbn = (*vbn)++;
+		  blk[level].len = 0;
+		  blk[level].lastlen = blk[j].lastlen;
 
-                  level++;
-                }
+		  level++;
+		}
 
-              /* Update parent block: write the last entry from the current
+	      /* Update parent block: write the last entry from the current
 		 block.  */
-              if (abfd != NULL)
-                {
-                  struct vms_rfa *rfa;
+	      if (abfd != NULL)
+		{
+		  struct vms_rfa *rfa;
 
 		  /* Pointer to the last entry in parent block.  */
 		  rfa = (struct vms_rfa *)(rblk[j + 1]->keys + blk[j + 1].len);
 
-                  /* Copy the whole entry.  */
+		  /* Copy the whole entry.  */
 		  BFD_ASSERT (blk[j + 1].lastlen == blk[j].lastlen);
-                  memcpy (rfa, rblk[j]->keys + blk[j].len, blk[j].lastlen);
-                  /* Fix the entry (which in always the first field of an
+		  memcpy (rfa, rblk[j]->keys + blk[j].len, blk[j].lastlen);
+		  /* Fix the entry (which in always the first field of an
 		     entry.  */
-                  bfd_putl32 (blk[j].vbn, rfa->vbn);
-                  bfd_putl16 (RFADEF__C_INDEX, rfa->offset);
-                }
-
-              if (j + 1 == flush)
-                {
-                  /* And allocate it.  Do it only on the block that won't be
-                     flushed (so that the parent of the parent can be
-                     updated too).  */
-                  blk[j + 1].len += blk[j + 1].lastlen;
-                  blk[j + 1].lastlen = 0;
-                }
-
-              /* Write this block on the disk.  */
-              if (abfd != NULL)
-                {
-                  bfd_putl16 (blk[j].len + blk[j].lastlen, rblk[j]->used);
-                  if (vms_write_block (abfd, blk[j].vbn, rblk[j]) != TRUE)
-                    return FALSE;
-                }
-
-              /* Reset this block.  */
-              blk[j].len = 0;
-              blk[j].lastlen = 0;
-              blk[j].vbn = (*vbn)++;
-            }
-
-          /* Append it to the block.  */
-          if (j == 0)
-            {
+		  bfd_putl32 (blk[j].vbn, rfa->vbn);
+		  bfd_putl16 (RFADEF__C_INDEX, rfa->offset);
+		}
+
+	      if (j + 1 == flush)
+		{
+		  /* And allocate it.  Do it only on the block that won't be
+		     flushed (so that the parent of the parent can be
+		     updated too).  */
+		  blk[j + 1].len += blk[j + 1].lastlen;
+		  blk[j + 1].lastlen = 0;
+		}
+
+	      /* Write this block on the disk.  */
+	      if (abfd != NULL)
+		{
+		  bfd_putl16 (blk[j].len + blk[j].lastlen, rblk[j]->used);
+		  if (!vms_write_block (abfd, blk[j].vbn, rblk[j]))
+		    return FALSE;
+		}
+
+	      /* Reset this block.  */
+	      blk[j].len = 0;
+	      blk[j].lastlen = 0;
+	      blk[j].vbn = (*vbn)++;
+	    }
+
+	  /* Append it to the block.  */
+	  if (j == 0)
+	    {
 	      /* Keep the previous last entry.  */
-              blk[j].len += blk[j].lastlen;
+	      blk[j].len += blk[j].lastlen;
 
-              if (abfd != NULL)
-                {
-                  struct vms_rfa *rfa;
-
-                  rfa = (struct vms_rfa *)(rblk[j]->keys + blk[j].len);
-                  bfd_putl32 ((idx->abfd->proxy_origin / VMS_BLOCK_SIZE) + 1,
-                              rfa->vbn);
-                  bfd_putl16
-                    ((idx->abfd->proxy_origin % VMS_BLOCK_SIZE)
-                     + (is_elfidx ? 0 : DATA__DATA),
-                     rfa->offset);
-
-                  if (is_elfidx)
-                    {
-                      /* Use elfidx format.  */
-                      struct vms_elfidx *en = (struct vms_elfidx *)rfa;
-
-                      en->flags = 0;
-                      if (key_vbn != 0)
-                        {
-                          /* Long symbol name.  */
-                          struct vms_kbn *k = (struct vms_kbn *)(en->keyname);
-                          bfd_putl16 (sizeof (struct vms_kbn), en->keylen);
-                          bfd_putl16 (idx->namlen, k->keylen);
-                          bfd_putl32 (key_vbn, k->rfa.vbn);
-                          bfd_putl16 (key_off, k->rfa.offset);
-                          en->flags |= ELFIDX__SYMESC;
-                        }
-                      else
-                        {
-                          bfd_putl16 (idx->namlen, en->keylen);
-                          memcpy (en->keyname, idx->name, idx->namlen);
-                        }
-                    }
-                  else
-                    {
-                      /* Use idx format.  */
-                      struct vms_idx *en = (struct vms_idx *)rfa;
-                      en->keylen = idx->namlen;
-                      memcpy (en->keyname, idx->name, idx->namlen);
-                    }
-                }
+	      if (abfd != NULL)
+		{
+		  struct vms_rfa *rfa;
+
+		  rfa = (struct vms_rfa *)(rblk[j]->keys + blk[j].len);
+		  bfd_putl32 ((idx->abfd->proxy_origin / VMS_BLOCK_SIZE) + 1,
+			      rfa->vbn);
+		  bfd_putl16
+		    ((idx->abfd->proxy_origin % VMS_BLOCK_SIZE)
+		     + (is_elfidx ? 0 : DATA__DATA),
+		     rfa->offset);
+
+		  if (is_elfidx)
+		    {
+		      /* Use elfidx format.  */
+		      struct vms_elfidx *en = (struct vms_elfidx *)rfa;
+
+		      en->flags = 0;
+		      if (key_vbn != 0)
+			{
+			  /* Long symbol name.  */
+			  struct vms_kbn *k = (struct vms_kbn *)(en->keyname);
+			  bfd_putl16 (sizeof (struct vms_kbn), en->keylen);
+			  bfd_putl16 (idx->namlen, k->keylen);
+			  bfd_putl32 (key_vbn, k->rfa.vbn);
+			  bfd_putl16 (key_off, k->rfa.offset);
+			  en->flags |= ELFIDX__SYMESC;
+			}
+		      else
+			{
+			  bfd_putl16 (idx->namlen, en->keylen);
+			  memcpy (en->keyname, idx->name, idx->namlen);
+			}
+		    }
+		  else
+		    {
+		      /* Use idx format.  */
+		      struct vms_idx *en = (struct vms_idx *)rfa;
+		      en->keylen = idx->namlen;
+		      memcpy (en->keyname, idx->name, idx->namlen);
+		    }
+		}
 	    }
 	  /* The last added key can now be the last one all blocks in the
 	     path.  */
 	  blk[j].lastlen = idxlen;
-        }
+	}
     }
 
   /* Save VBN of the root.  */
@@ -1873,8 +1873,8 @@ vms_write_index (bfd *abfd,
     {
       /* Write this block on the disk.  */
       bfd_putl16 (blk[j].len + blk[j].lastlen, rblk[j]->used);
-      if (vms_write_block (abfd, blk[j].vbn, rblk[j]) != TRUE)
-        return FALSE;
+      if (!vms_write_block (abfd, blk[j].vbn, rblk[j]))
+	return FALSE;
 
       free (rblk[j]);
     }
@@ -1882,8 +1882,8 @@ vms_write_index (bfd *abfd,
   /* Write the last kbn (if any).  */
   if (kbn_vbn != 0)
     {
-      if (vms_write_block (abfd, kbn_vbn, kbn_blk) != TRUE)
-        return FALSE;
+      if (!vms_write_block (abfd, kbn_vbn, kbn_blk))
+	return FALSE;
       free (kbn_blk);
     }
 
@@ -1894,7 +1894,7 @@ vms_write_index (bfd *abfd,
 
 static bfd_boolean
 vms_write_data_block (bfd *arch, struct vms_datadef *data, file_ptr *off,
-                      const unsigned char *buf, unsigned int len, int pad)
+		      const unsigned char *buf, unsigned int len, int pad)
 {
   while (len > 0 || pad)
     {
@@ -1910,19 +1910,19 @@ vms_write_data_block (bfd *arch, struct 
       *off += l;
 
       if (doff == (DATA__LENGTH - DATA__DATA) || (len == 0 && pad))
-        {
-          data->recs = 0;
-          data->fill_1 = 0;
-          bfd_putl32 ((*off / VMS_BLOCK_SIZE) + 2, data->link);
-
-          if (bfd_bwrite (data, sizeof (*data), arch) != sizeof (*data))
-            return FALSE;
-
-          *off += DATA__LENGTH - doff;
-
-          if (len == 0)
-            break;
-        }
+	{
+	  data->recs = 0;
+	  data->fill_1 = 0;
+	  bfd_putl32 ((*off / VMS_BLOCK_SIZE) + 2, data->link);
+
+	  if (bfd_bwrite (data, sizeof (*data), arch) != sizeof (*data))
+	    return FALSE;
+
+	  *off += DATA__LENGTH - doff;
+
+	  if (len == 0)
+	    break;
+	}
     }
   return TRUE;
 }
@@ -1931,9 +1931,9 @@ vms_write_data_block (bfd *arch, struct 
 
 static bfd_boolean
 _bfd_vms_lib_build_map (unsigned int nbr_modules,
-                        struct lib_index *modules,
-                        unsigned int *res_cnt,
-                        struct lib_index **res)
+			struct lib_index *modules,
+			unsigned int *res_cnt,
+			struct lib_index **res)
 {
   unsigned int i;
   asymbol **syms = NULL;
@@ -1955,60 +1955,60 @@ _bfd_vms_lib_build_map (unsigned int nbr
       bfd *current = modules[i].abfd;
 
       if ((bfd_get_file_flags (current) & HAS_SYMS) == 0)
-        continue;
+	continue;
 
       storage = bfd_get_symtab_upper_bound (current);
       if (storage < 0)
-        goto error_return;
+	goto error_return;
 
       if (storage != 0)
-        {
-          if (storage > syms_max)
-            {
-              if (syms_max > 0)
-                free (syms);
-              syms_max = storage;
-              syms = (asymbol **) bfd_malloc (syms_max);
-              if (syms == NULL)
-                goto error_return;
-            }
-          symcount = bfd_canonicalize_symtab (current, syms);
-          if (symcount < 0)
-            goto error_return;
-
-          /* Now map over all the symbols, picking out the ones we
-             want.  */
-          for (src_count = 0; src_count < symcount; src_count++)
-            {
-              flagword flags = (syms[src_count])->flags;
-              asection *sec = syms[src_count]->section;
-
-              if ((flags & BSF_GLOBAL
-                   || flags & BSF_WEAK
-                   || flags & BSF_INDIRECT
-                   || bfd_is_com_section (sec))
-                  && ! bfd_is_und_section (sec))
-                {
-                  struct lib_index *new_map;
-
-                  /* This symbol will go into the archive header.  */
-                  if (map_count == map_max)
-                    {
-                      map_max *= 2;
-                      new_map = (struct lib_index *)
-                        bfd_realloc (map, map_max * sizeof (struct lib_index));
-                      if (new_map == NULL)
-                        goto error_return;
-                      map = new_map;
-                    }
-
-                  map[map_count].abfd = current;
-                  map[map_count].namlen = strlen (syms[src_count]->name);
-                  map[map_count].name = syms[src_count]->name;
-                  map_count++;
-                  modules[i].ref++;
-                }
-            }
+	{
+	  if (storage > syms_max)
+	    {
+	      if (syms_max > 0)
+		free (syms);
+	      syms_max = storage;
+	      syms = (asymbol **) bfd_malloc (syms_max);
+	      if (syms == NULL)
+		goto error_return;
+	    }
+	  symcount = bfd_canonicalize_symtab (current, syms);
+	  if (symcount < 0)
+	    goto error_return;
+
+	  /* Now map over all the symbols, picking out the ones we
+	     want.  */
+	  for (src_count = 0; src_count < symcount; src_count++)
+	    {
+	      flagword flags = (syms[src_count])->flags;
+	      asection *sec = syms[src_count]->section;
+
+	      if ((flags & BSF_GLOBAL
+		   || flags & BSF_WEAK
+		   || flags & BSF_INDIRECT
+		   || bfd_is_com_section (sec))
+		  && ! bfd_is_und_section (sec))
+		{
+		  struct lib_index *new_map;
+
+		  /* This symbol will go into the archive header.  */
+		  if (map_count == map_max)
+		    {
+		      map_max *= 2;
+		      new_map = (struct lib_index *)
+			bfd_realloc (map, map_max * sizeof (struct lib_index));
+		      if (new_map == NULL)
+			goto error_return;
+		      map = new_map;
+		    }
+
+		  map[map_count].abfd = current;
+		  map[map_count].namlen = strlen (syms[src_count]->name);
+		  map[map_count].name = syms[src_count]->name;
+		  map_count++;
+		  modules[i].ref++;
+		}
+	    }
 	}
     }
 
@@ -2118,13 +2118,13 @@ _bfd_vms_lib_write_archive_contents (bfd
       current->proxy_origin = off;
 
       if (is_elfidx)
-        sz = 0;
+	sz = 0;
       else
-        {
-          /* Write the MHD as a record (ie, size first).  */
-          sz = 2;
-          bfd_putl16 (tdata->mhd_size, blk);
-        }
+	{
+	  /* Write the MHD as a record (ie, size first).  */
+	  sz = 2;
+	  bfd_putl16 (tdata->mhd_size, blk);
+	}
       mhd = (struct vms_mhd *)(blk + sz);
       memset (mhd, 0, sizeof (struct vms_mhd));
       mhd->lbrflag = 0;
@@ -2139,95 +2139,95 @@ _bfd_vms_lib_write_archive_contents (bfd
 
       /* Rewind the member to be put into the archive.  */
       if (bfd_seek (current, 0, SEEK_SET) != 0)
-        goto input_err;
+	goto input_err;
 
       /* Copy the member into the archive.  */
       if (is_elfidx)
-        {
-          unsigned int modsize = 0;
-          bfd_size_type amt;
-          file_ptr off_hdr = off;
-
-          /* Read to complete the first block.  */
-          amt = bfd_bread (blk + sz, VMS_BLOCK_SIZE - sz, current);
-          if (amt == (bfd_size_type)-1)
-            goto input_err;
-          modsize = amt;
-          if (amt < VMS_BLOCK_SIZE - sz)
-            {
-              /* The member size is less than a block.  Pad the block.  */
-              memset (blk + sz + amt, 0, VMS_BLOCK_SIZE - sz - amt);
-            }
-          bfd_putl32 (modsize, mhd->modsize);
-
-          /* Write the first block (which contains an mhd).  */
-          if (bfd_bwrite (blk, VMS_BLOCK_SIZE, arch) != VMS_BLOCK_SIZE)
-            goto input_err;
-          off += VMS_BLOCK_SIZE;
-
-          if (amt == VMS_BLOCK_SIZE - sz)
-            {
-              /* Copy the remaining.  */
-              char buffer[DEFAULT_BUFFERSIZE];
-
-              while (1)
-                {
-                  amt = bfd_bread (buffer, sizeof (buffer), current);
-                  if (amt == (bfd_size_type)-1)
-                    goto input_err;
-                  if (amt == 0)
-                    break;
-                  modsize += amt;
-                  if (amt != sizeof (buffer))
-                    {
-                      /* Clear the padding.  */
-                      memset (buffer + amt, 0, sizeof (buffer) - amt);
-                      amt = (amt + VMS_BLOCK_SIZE) & ~(VMS_BLOCK_SIZE - 1);
-                    }
-                  if (bfd_bwrite (buffer, amt, arch) != amt)
-                    goto input_err;
-                  off += amt;
-                }
-
-              /* Now that the size is known, write the first block (again).  */
-              bfd_putl32 (modsize, mhd->modsize);
-              if (bfd_seek (arch, off_hdr, SEEK_SET) != 0
-                  || bfd_bwrite (blk, VMS_BLOCK_SIZE, arch) != VMS_BLOCK_SIZE)
-                goto input_err;
-              if (bfd_seek (arch, off, SEEK_SET) != 0)
-                goto input_err;
-            }
-        }
+	{
+	  unsigned int modsize = 0;
+	  bfd_size_type amt;
+	  file_ptr off_hdr = off;
+
+	  /* Read to complete the first block.  */
+	  amt = bfd_bread (blk + sz, VMS_BLOCK_SIZE - sz, current);
+	  if (amt == (bfd_size_type)-1)
+	    goto input_err;
+	  modsize = amt;
+	  if (amt < VMS_BLOCK_SIZE - sz)
+	    {
+	      /* The member size is less than a block.  Pad the block.  */
+	      memset (blk + sz + amt, 0, VMS_BLOCK_SIZE - sz - amt);
+	    }
+	  bfd_putl32 (modsize, mhd->modsize);
+
+	  /* Write the first block (which contains an mhd).  */
+	  if (bfd_bwrite (blk, VMS_BLOCK_SIZE, arch) != VMS_BLOCK_SIZE)
+	    goto input_err;
+	  off += VMS_BLOCK_SIZE;
+
+	  if (amt == VMS_BLOCK_SIZE - sz)
+	    {
+	      /* Copy the remaining.  */
+	      char buffer[DEFAULT_BUFFERSIZE];
+
+	      while (1)
+		{
+		  amt = bfd_bread (buffer, sizeof (buffer), current);
+		  if (amt == (bfd_size_type)-1)
+		    goto input_err;
+		  if (amt == 0)
+		    break;
+		  modsize += amt;
+		  if (amt != sizeof (buffer))
+		    {
+		      /* Clear the padding.  */
+		      memset (buffer + amt, 0, sizeof (buffer) - amt);
+		      amt = (amt + VMS_BLOCK_SIZE) & ~(VMS_BLOCK_SIZE - 1);
+		    }
+		  if (bfd_bwrite (buffer, amt, arch) != amt)
+		    goto input_err;
+		  off += amt;
+		}
+
+	      /* Now that the size is known, write the first block (again).  */
+	      bfd_putl32 (modsize, mhd->modsize);
+	      if (bfd_seek (arch, off_hdr, SEEK_SET) != 0
+		  || bfd_bwrite (blk, VMS_BLOCK_SIZE, arch) != VMS_BLOCK_SIZE)
+		goto input_err;
+	      if (bfd_seek (arch, off, SEEK_SET) != 0)
+		goto input_err;
+	    }
+	}
       else
-        {
-          /* Write the MHD.  */
-          if (vms_write_data_block (arch, &data, &off, blk, sz, 0) < 0)
-            goto input_err;
-
-          /* Write the member.  */
-          while (1)
-            {
-              sz = bfd_bread (blk, sizeof (blk), current);
-              if (sz == 0)
-                break;
-              if (vms_write_data_block (arch, &data, &off, blk, sz, 0) < 0)
-                goto input_err;
-            }
-
-          /* Write the end of module marker.  */
-          if (vms_write_data_block (arch, &data, &off,
-                                    eotdesc, sizeof (eotdesc), 1) < 0)
-            goto input_err;
-        }
+	{
+	  /* Write the MHD.  */
+	  if (vms_write_data_block (arch, &data, &off, blk, sz, 0) < 0)
+	    goto input_err;
+
+	  /* Write the member.  */
+	  while (1)
+	    {
+	      sz = bfd_bread (blk, sizeof (blk), current);
+	      if (sz == 0)
+		break;
+	      if (vms_write_data_block (arch, &data, &off, blk, sz, 0) < 0)
+		goto input_err;
+	    }
+
+	  /* Write the end of module marker.  */
+	  if (vms_write_data_block (arch, &data, &off,
+				    eotdesc, sizeof (eotdesc), 1) < 0)
+	    goto input_err;
+	}
     }
 
   /* Write the indexes.  */
   vbn = 2;
-  if (vms_write_index (arch, modules, nbr_modules, &vbn, &mod_idx_vbn,
-                       is_elfidx) != TRUE)
+  if (!vms_write_index (arch, modules, nbr_modules, &vbn, &mod_idx_vbn,
+			is_elfidx))
     return FALSE;
-  if (vms_write_index (arch, symbols, nbr_symbols, &vbn, &sym_idx_vbn,
-                       is_elfidx) != TRUE)
+  if (!vms_write_index (arch, symbols, nbr_symbols, &vbn, &sym_idx_vbn,
+			is_elfidx))
     return FALSE;
 
   /* Write libary header.  */
@@ -2245,22 +2245,22 @@ _bfd_vms_lib_write_archive_contents (bfd
     switch (tdata->kind)
       {
       case vms_lib_alpha:
-        saneid = LHD_SANEID3;
-        break;
+	saneid = LHD_SANEID3;
+	break;
       case vms_lib_ia64:
-        saneid = LHD_SANEID6;
-        break;
+	saneid = LHD_SANEID6;
+	break;
       default:
-        abort ();
+	abort ();
       }
     bfd_putl32 (saneid, lhd->sanity);
     bfd_putl16 (tdata->ver, lhd->majorid);
     bfd_putl16 (0, lhd->minorid);
     snprintf ((char *)lhd->lbrver + 1, sizeof (lhd->lbrver) - 1,
-              "GNU ar %u.%u.%u",
-              (unsigned)(BFD_VERSION / 100000000UL),
-              (unsigned)(BFD_VERSION / 1000000UL) % 100,
-              (unsigned)(BFD_VERSION / 10000UL) % 100);
+	      "GNU ar %u.%u.%u",
+	      (unsigned)(BFD_VERSION / 100000000UL),
+	      (unsigned)(BFD_VERSION / 1000000UL) % 100,
+	      (unsigned)(BFD_VERSION / 10000UL) % 100);
     lhd->lbrver[sizeof (lhd->lbrver) - 1] = 0;
     lhd->lbrver[0] = strlen ((char *)lhd->lbrver + 1);
 
@@ -2298,14 +2298,14 @@ _bfd_vms_lib_write_archive_contents (bfd
     bfd_putl16 (sym_idx_vbn, idd->vbn);
     idd++;
 
-    if (vms_write_block (arch, 1, blk) != TRUE)
+    if (!vms_write_block (arch, 1, blk))
       return FALSE;
   }
 
   return TRUE;
 
  input_err:
-  bfd_set_error (bfd_error_on_input, current, bfd_get_error ());
+  bfd_set_input_error (current, bfd_get_error ());
   return FALSE;
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/vms-misc.c ./bfd/vms-misc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/vms-misc.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/vms-misc.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 /* vms-misc.c -- BFD back-end for VMS/VAX (openVMS/VAX) and
    EVAX (openVMS/Alpha) files.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    Miscellaneous functions.
 
@@ -135,11 +135,11 @@ _bfd_hexdump (int level, unsigned char *
 #endif
 
 
-/* Copy sized string (string with fixed size) to new allocated area
-   size is string size (size of record)  */
+/* Copy sized string (string with fixed size) to new allocated area.
+   Size is string size (size of record).  */
 
 char *
-_bfd_vms_save_sized_string (unsigned char *str, int size)
+_bfd_vms_save_sized_string (unsigned char *str, unsigned int size)
 {
   char *newstr = bfd_malloc ((bfd_size_type) size + 1);
 
@@ -151,14 +151,16 @@ _bfd_vms_save_sized_string (unsigned cha
   return newstr;
 }
 
-/* Copy counted string (string with size at first byte) to new allocated area
-   ptr points to size byte on entry  */
+/* Copy counted string (string with size at first byte) to new allocated area.
+   PTR points to size byte on entry.  */
 
 char *
-_bfd_vms_save_counted_string (unsigned char *ptr)
+_bfd_vms_save_counted_string (unsigned char *ptr, unsigned int maxlen)
 {
-  int len = *ptr++;
+  unsigned int len = *ptr++;
 
+  if (len > maxlen)
+    return NULL;
   return _bfd_vms_save_sized_string (ptr, len);
 }
 
@@ -250,7 +252,7 @@ _bfd_vms_output_end_subrec (struct vms_r
 
   /* Put length to buffer.  */
   bfd_putl16 ((bfd_vma) (recwr->size - recwr->subrec_offset),
-              recwr->buf + recwr->subrec_offset + 2);
+	      recwr->buf + recwr->subrec_offset + 2);
 
   /* Close the subrecord.  */
   recwr->subrec_offset = 0;
@@ -514,12 +516,12 @@ vms_get_module_name (const char *filenam
   for (fptr = fname; *fptr != 0; fptr++)
     {
       if (*fptr == ';' || (fptr - fname) >= 31)
-        {
-          *fptr = 0;
-          break;
-        }
+	{
+	  *fptr = 0;
+	  break;
+	}
       if (upcase)
-        *fptr = TOUPPER (*fptr);
+	*fptr = TOUPPER (*fptr);
     }
   return fname;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/warning.m4 ./bfd/warning.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/warning.m4	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/warning.m4	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 dnl Common configure.ac fragment
 dnl
-dnl   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+dnl   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 dnl
 dnl This file is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/wasm-module.c ./bfd/wasm-module.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/wasm-module.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/wasm-module.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for WebAssembly modules.
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    Based on srec.c, mmo.c, and binary.c
 
@@ -104,10 +104,10 @@ wasm_section_name_to_code (const char *n
    incomplete numbers).  SIGN means interpret the number as SLEB128. */
 
 static bfd_vma
-wasm_read_leb128 (bfd *           abfd,
-                  bfd_boolean *   error_return,
-                  unsigned int *  length_return,
-                  bfd_boolean     sign)
+wasm_read_leb128 (bfd *		  abfd,
+		  bfd_boolean *	  error_return,
+		  unsigned int *  length_return,
+		  bfd_boolean	  sign)
 {
   bfd_vma result = 0;
   unsigned int num_read = 0;
@@ -123,10 +123,10 @@ wasm_read_leb128 (bfd *           abfd,
 
       shift += 7;
       if ((byte & 0x80) == 0)
-        {
-          success = TRUE;
-          break;
-        }
+	{
+	  success = TRUE;
+	  break;
+	}
     }
 
   if (length_return != NULL)
@@ -152,10 +152,10 @@ wasm_write_uleb128 (bfd *abfd, bfd_vma v
       v >>= 7;
 
       if (v)
-        c |= 0x80;
+	c |= 0x80;
 
       if (bfd_bwrite (&c, 1, abfd) != 1)
-        return FALSE;
+	return FALSE;
     }
   while (v);
 
@@ -164,16 +164,16 @@ wasm_write_uleb128 (bfd *abfd, bfd_vma v
 
 /* Read the LEB128 integer at P, saving it to X; at end of buffer,
    jump to error_return.  */
-#define READ_LEB128(x, p, end)                                          \
-  do                                                                    \
-    {                                                                   \
-      unsigned int length_read;                                         \
-      (x) = _bfd_safe_read_leb128 (abfd, (p), &length_read,             \
-                                   FALSE, (end));                       \
-      (p) += length_read;                                               \
-      if (length_read == 0)                                             \
-        goto error_return;                                              \
-    }                                                                   \
+#define READ_LEB128(x, p, end)						\
+  do									\
+    {									\
+      unsigned int length_read;						\
+      (x) = _bfd_safe_read_leb128 (abfd, (p), &length_read,		\
+				   FALSE, (end));			\
+      (p) += length_read;						\
+      if (length_read == 0)						\
+	goto error_return;						\
+    }									\
   while (0)
 
 /* Verify the magic number at the beginning of a WebAssembly module
@@ -257,18 +257,18 @@ wasm_scan_name_function_section (bfd *ab
     {
       bfd_byte subsection_code = *p++;
       if (subsection_code == WASM_FUNCTION_SUBSECTION)
-        break;
+	break;
 
       /* subsection_code is documented to be a varuint7, meaning that
-         it has to be a single byte in the 0 - 127 range.  If it isn't,
-         the spec must have changed underneath us, so give up.  */
+	 it has to be a single byte in the 0 - 127 range.  If it isn't,
+	 the spec must have changed underneath us, so give up.  */
       if (subsection_code & 0x80)
-        return FALSE;
+	return FALSE;
 
       READ_LEB128 (payload_size, p, end);
 
       if (p > p + payload_size)
-        return FALSE;
+	return FALSE;
 
       p += payload_size;
     }
@@ -318,11 +318,11 @@ wasm_scan_name_function_section (bfd *ab
       READ_LEB128 (len, p, end);
 
       if (p + len < p || p + len > end)
-        goto error_return;
+	goto error_return;
 
       name = bfd_zalloc (abfd, len + 1);
       if (! name)
-        goto error_return;
+	goto error_return;
 
       memcpy (name, p, len);
       p += len;
@@ -362,7 +362,7 @@ wasm_read_byte (bfd *abfd, bfd_boolean *
   if (bfd_bread (&byte, (bfd_size_type) 1, abfd) != 1)
     {
       if (bfd_get_error () != bfd_error_file_truncated)
-        *errorptr = TRUE;
+	*errorptr = TRUE;
       return EOF;
     }
 
@@ -393,74 +393,74 @@ wasm_scan (bfd *abfd)
   while ((section_code = wasm_read_byte (abfd, &error)) != EOF)
     {
       if (section_code != 0)
-        {
-          const char *sname = wasm_section_code_to_name (section_code);
+	{
+	  const char *sname = wasm_section_code_to_name (section_code);
 
-          if (! sname)
-            goto error_return;
+	  if (! sname)
+	    goto error_return;
+
+	  name = strdup (sname);
+	  bfdsec = bfd_make_section_anyway_with_flags (abfd, name, SEC_HAS_CONTENTS);
+	  if (bfdsec == NULL)
+	    goto error_return;
+	  name = NULL;
 
-          name = strdup (sname);
-          bfdsec = bfd_make_section_anyway_with_flags (abfd, name, SEC_HAS_CONTENTS);
-          if (bfdsec == NULL)
-            goto error_return;
-          name = NULL;
-
-          bfdsec->vma = vma;
-          bfdsec->lma = vma;
-          bfdsec->size = wasm_read_leb128 (abfd, &error, &bytes_read, FALSE);
-          if (error)
-            goto error_return;
-          bfdsec->filepos = bfd_tell (abfd);
-          bfdsec->alignment_power = 0;
-        }
+	  bfdsec->vma = vma;
+	  bfdsec->lma = vma;
+	  bfdsec->size = wasm_read_leb128 (abfd, &error, &bytes_read, FALSE);
+	  if (error)
+	    goto error_return;
+	  bfdsec->filepos = bfd_tell (abfd);
+	  bfdsec->alignment_power = 0;
+	}
       else
-        {
-          bfd_vma payload_len;
-          file_ptr section_start;
-          bfd_vma namelen;
-          char *prefix = WASM_SECTION_PREFIX;
-          char *p;
-          int ret;
-
-          payload_len = wasm_read_leb128 (abfd, &error, &bytes_read, FALSE);
-          if (error)
-            goto error_return;
-          section_start = bfd_tell (abfd);
-          namelen = wasm_read_leb128 (abfd, &error, &bytes_read, FALSE);
-          if (error || namelen > payload_len)
-            goto error_return;
-          name = bfd_zmalloc (namelen + strlen (prefix) + 1);
-          if (! name)
-            goto error_return;
-          p = name;
-          ret = sprintf (p, "%s", prefix);
-          if (ret < 0 || (bfd_vma) ret != strlen (prefix))
-            goto error_return;
-          p += ret;
-          if (bfd_bread (p, namelen, abfd) != namelen)
-	    goto error_return;
-
-          bfdsec = bfd_make_section_anyway_with_flags (abfd, name, SEC_HAS_CONTENTS);
-          if (bfdsec == NULL)
-            goto error_return;
-          name = NULL;
-
-          bfdsec->vma = vma;
-          bfdsec->lma = vma;
-          bfdsec->filepos = bfd_tell (abfd);
-          bfdsec->size = section_start + payload_len - bfdsec->filepos;
-          bfdsec->alignment_power = 0;
-        }
+	{
+	  bfd_vma payload_len;
+	  file_ptr section_start;
+	  bfd_vma namelen;
+	  char *prefix = WASM_SECTION_PREFIX;
+	  char *p;
+	  int ret;
+
+	  payload_len = wasm_read_leb128 (abfd, &error, &bytes_read, FALSE);
+	  if (error)
+	    goto error_return;
+	  section_start = bfd_tell (abfd);
+	  namelen = wasm_read_leb128 (abfd, &error, &bytes_read, FALSE);
+	  if (error || namelen > payload_len)
+	    goto error_return;
+	  name = bfd_zmalloc (namelen + strlen (prefix) + 1);
+	  if (! name)
+	    goto error_return;
+	  p = name;
+	  ret = sprintf (p, "%s", prefix);
+	  if (ret < 0 || (bfd_vma) ret != strlen (prefix))
+	    goto error_return;
+	  p += ret;
+	  if (bfd_bread (p, namelen, abfd) != namelen)
+	    goto error_return;
+
+	  bfdsec = bfd_make_section_anyway_with_flags (abfd, name, SEC_HAS_CONTENTS);
+	  if (bfdsec == NULL)
+	    goto error_return;
+	  name = NULL;
+
+	  bfdsec->vma = vma;
+	  bfdsec->lma = vma;
+	  bfdsec->filepos = bfd_tell (abfd);
+	  bfdsec->size = section_start + payload_len - bfdsec->filepos;
+	  bfdsec->alignment_power = 0;
+	}
 
       if (bfdsec->size != 0)
-        {
-          bfdsec->contents = bfd_zalloc (abfd, bfdsec->size);
-          if (! bfdsec->contents)
-            goto error_return;
+	{
+	  bfdsec->contents = bfd_zalloc (abfd, bfdsec->size);
+	  if (! bfdsec->contents)
+	    goto error_return;
 
-          if (bfd_bread (bfdsec->contents, bfdsec->size, abfd) != bfdsec->size)
+	  if (bfd_bread (bfdsec->contents, bfdsec->size, abfd) != bfdsec->size)
 	    goto error_return;
-        }
+	}
 
       vma += bfdsec->size;
     }
@@ -487,7 +487,7 @@ wasm_scan (bfd *abfd)
 
 static void
 wasm_register_section (bfd *abfd ATTRIBUTE_UNUSED,
-                       asection *asect,
+		       asection *asect,
 		       void *fsarg)
 {
   sec_ptr *numbered_sections = fsarg;
@@ -517,7 +517,7 @@ struct compute_section_arg
 static void
 wasm_compute_custom_section_file_position (bfd *abfd,
 					   sec_ptr asect,
-                                           void *fsarg)
+					   void *fsarg)
 {
   struct compute_section_arg *fs = fsarg;
   int index;
@@ -540,18 +540,18 @@ wasm_compute_custom_section_file_positio
       payload_len += name_len;
 
       do
-        {
-          payload_len++;
-          nl >>= 7;
-        }
+	{
+	  payload_len++;
+	  nl >>= 7;
+	}
       while (nl);
 
       bfd_seek (abfd, fs->pos, SEEK_SET);
       if (! wasm_write_uleb128 (abfd, 0)
-          || ! wasm_write_uleb128 (abfd, payload_len)
-          || ! wasm_write_uleb128 (abfd, name_len)
-          || bfd_bwrite (name, name_len, abfd) != name_len)
-        goto error_return;
+	  || ! wasm_write_uleb128 (abfd, payload_len)
+	  || ! wasm_write_uleb128 (abfd, name_len)
+	  || bfd_bwrite (name, name_len, abfd) != name_len)
+	goto error_return;
       fs->pos = asect->filepos = bfd_tell (abfd);
     }
   else
@@ -602,13 +602,13 @@ wasm_compute_section_file_positions (bfd
       bfd_size_type size;
 
       if (! sec)
-        continue;
+	continue;
       size = sec->size;
       if (bfd_seek (abfd, fs.pos, SEEK_SET) != 0)
-        return FALSE;
+	return FALSE;
       if (! wasm_write_uleb128 (abfd, i)
-          || ! wasm_write_uleb128 (abfd, size))
-        return FALSE;
+	  || ! wasm_write_uleb128 (abfd, size))
+	return FALSE;
       fs.pos = sec->filepos = bfd_tell (abfd);
       fs.pos += size;
     }
@@ -627,10 +627,10 @@ wasm_compute_section_file_positions (bfd
 
 static bfd_boolean
 wasm_set_section_contents (bfd *abfd,
-                           sec_ptr section,
-                           const void *location,
-                           file_ptr offset,
-                           bfd_size_type count)
+			   sec_ptr section,
+			   const void *location,
+			   file_ptr offset,
+			   bfd_size_type count)
 {
   if (count == 0)
     return TRUE;
@@ -713,9 +713,9 @@ wasm_make_empty_symbol (bfd *abfd)
 
 static void
 wasm_print_symbol (bfd *abfd,
-                   void * filep,
-                   asymbol *symbol,
-                   bfd_print_symbol_type how)
+		   void * filep,
+		   asymbol *symbol,
+		   bfd_print_symbol_type how)
 {
   FILE *file = (FILE *) filep;
 
@@ -733,8 +733,8 @@ wasm_print_symbol (bfd *abfd,
 
 static void
 wasm_get_symbol_info (bfd *abfd ATTRIBUTE_UNUSED,
-                      asymbol *symbol,
-                      symbol_info *ret)
+		      asymbol *symbol,
+		      symbol_info *ret)
 {
   bfd_symbol_info (symbol, ret);
 }
@@ -768,31 +768,31 @@ wasm_object_p (bfd *abfd)
 }
 
 /* BFD_JUMP_TABLE_WRITE */
-#define wasm_set_arch_mach                _bfd_generic_set_arch_mach
+#define wasm_set_arch_mach		  _bfd_generic_set_arch_mach
 
 /* BFD_JUMP_TABLE_SYMBOLS */
-#define wasm_get_symbol_version_string    _bfd_nosymbols_get_symbol_version_string
-#define wasm_bfd_is_local_label_name       bfd_generic_is_local_label_name
+#define wasm_get_symbol_version_string	  _bfd_nosymbols_get_symbol_version_string
+#define wasm_bfd_is_local_label_name	   bfd_generic_is_local_label_name
 #define wasm_bfd_is_target_special_symbol ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define wasm_get_lineno                   _bfd_nosymbols_get_lineno
-#define wasm_find_nearest_line            _bfd_nosymbols_find_nearest_line
-#define wasm_find_line                    _bfd_nosymbols_find_line
-#define wasm_find_inliner_info            _bfd_nosymbols_find_inliner_info
-#define wasm_bfd_make_debug_symbol        _bfd_nosymbols_bfd_make_debug_symbol
-#define wasm_read_minisymbols             _bfd_generic_read_minisymbols
-#define wasm_minisymbol_to_symbol         _bfd_generic_minisymbol_to_symbol
+#define wasm_get_lineno			  _bfd_nosymbols_get_lineno
+#define wasm_find_nearest_line		  _bfd_nosymbols_find_nearest_line
+#define wasm_find_line			  _bfd_nosymbols_find_line
+#define wasm_find_inliner_info		  _bfd_nosymbols_find_inliner_info
+#define wasm_bfd_make_debug_symbol	  _bfd_nosymbols_bfd_make_debug_symbol
+#define wasm_read_minisymbols		  _bfd_generic_read_minisymbols
+#define wasm_minisymbol_to_symbol	  _bfd_generic_minisymbol_to_symbol
 
 const bfd_target wasm_vec =
 {
-  "wasm",               	/* Name.  */
+  "wasm",			/* Name.  */
   bfd_target_unknown_flavour,
   BFD_ENDIAN_LITTLE,
   BFD_ENDIAN_LITTLE,
   (HAS_SYMS | WP_TEXT),		/* Object flags.  */
   (SEC_CODE | SEC_DATA | SEC_HAS_CONTENTS), /* Section flags.  */
-  0,                    	/* Leading underscore.  */
-  ' ',                  	/* AR_pad_char.  */
-  255,                  	/* AR_max_namelen.  */
+  0,				/* Leading underscore.  */
+  ' ',				/* AR_pad_char.  */
+  255,				/* AR_max_namelen.  */
   0,				/* Match priority.  */
   /* Routines to byte-swap various sized integers from the data sections.  */
   bfd_getl64, bfd_getl_signed_64, bfd_putl64,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/wasm-module.h ./bfd/wasm-module.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/wasm-module.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/wasm-module.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* BFD back-end for WebAssembly modules.
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -24,9 +24,9 @@
 /* WebAssembly module file header.  Note that WASM_VERSION is a 32-bit
    little-endian integer, not an LEB128-encoded integer.  */
 #define SIZEOF_WASM_MAGIC    4
-#define WASM_MAGIC           { 0x00, 'a', 's', 'm' }
+#define WASM_MAGIC	     { 0x00, 'a', 's', 'm' }
 #define SIZEOF_WASM_VERSION  4
-#define WASM_VERSION         { 0x01, 0x00, 0x00, 0x00 }
+#define WASM_VERSION	     { 0x01, 0x00, 0x00, 0x00 }
 
 /* Prefix to use to form section names.  */
 #define WASM_SECTION_PREFIX ".wasm."
@@ -36,10 +36,10 @@
 
 /* Section names.  WASM_NAME_SECTION is the name of the named section
    named "name".  */
-#define WASM_NAME_SECTION          WASM_SECTION (0, "name")
+#define WASM_NAME_SECTION	   WASM_SECTION (0, "name")
 #define WASM_RELOC_SECTION_PREFIX  WASM_SECTION (0, "reloc.")
-#define WASM_LINKING_SECTION       WASM_SECTION (0, "linking")
-#define WASM_DYLINK_SECTION        WASM_SECTION (0, "dylink")
+#define WASM_LINKING_SECTION	   WASM_SECTION (0, "linking")
+#define WASM_DYLINK_SECTION	   WASM_SECTION (0, "dylink")
 
 /* Subsection indices.  Right now, that's subsections of the "name"
    section only.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/xcofflink.c ./bfd/xcofflink.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/xcofflink.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/xcofflink.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* POWER/PowerPC XCOFF linker support.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor <ian@cygnus.com>, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -1366,7 +1366,7 @@ xcoff_link_add_symbols (bfd *abfd, struc
 	  if (csect != NULL)
 	    *csect_cache = csect;
 	  else if (first_csect == NULL
-                   || sym.n_sclass == C_FILE || sym.n_sclass == C_DWARF)
+		   || sym.n_sclass == C_FILE || sym.n_sclass == C_DWARF)
 	    *csect_cache = coff_section_from_bfd_index (abfd, sym.n_scnum);
 	  else
 	    *csect_cache = NULL;
@@ -1499,7 +1499,7 @@ xcoff_link_add_symbols (bfd *abfd, struc
 	    {
 	      _bfd_error_handler
 		/* xgettext:c-format */
-		(_("%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d"),
+		(_("%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %Ld"),
 		 abfd, name, sym.n_sclass, sym.n_scnum,
 		 aux.x_csect.x_scnlen.l);
 	      bfd_set_error (bfd_error_bad_value);
@@ -1529,7 +1529,7 @@ xcoff_link_add_symbols (bfd *abfd, struc
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B: XMC_TC0 symbol `%s' is class %d scnlen %d"),
+		    (_("%B: XMC_TC0 symbol `%s' is class %d scnlen %Ld"),
 		     abfd, name, sym.n_sclass, aux.x_csect.x_scnlen.l);
 		  bfd_set_error (bfd_error_bad_value);
 		  goto error_return;
@@ -1789,7 +1789,7 @@ xcoff_link_add_symbols (bfd *abfd, struc
 		bfd_set_error (bfd_error_bad_value);
 		goto error_return;
 	      }
- 	    csect = section;
+	    csect = section;
 	    value = sym.n_value - csect->vma;
 	  }
 	  break;
@@ -1926,7 +1926,7 @@ xcoff_link_add_symbols (bfd *abfd, struc
 	     We also have to handle the case of statically linking a
 	     shared object, which will cause symbol redefinitions,
 	     although this is an easier case to detect.  */
- 	  else if (info->output_bfd->xvec == abfd->xvec)
+	  else if (info->output_bfd->xvec == abfd->xvec)
 	    {
 	      if (! bfd_is_und_section (section))
 		*sym_hash = xcoff_link_hash_lookup (xcoff_hash_table (info),
@@ -2039,7 +2039,7 @@ xcoff_link_add_symbols (bfd *abfd, struc
 		  = csect->alignment_power;
 	    }
 
- 	  if (info->output_bfd->xvec == abfd->xvec)
+	  if (info->output_bfd->xvec == abfd->xvec)
 	    {
 	      int flag;
 
@@ -2080,7 +2080,7 @@ xcoff_link_add_symbols (bfd *abfd, struc
     {
       /* Debugging sections have no csects.  */
       if (bfd_get_section_flags (abfd, o) & SEC_DEBUGGING)
-        continue;
+	continue;
 
       /* Reset the section size and the line number count, since the
 	 data is now attached to the csects.  Don't reset the size of
@@ -2105,7 +2105,7 @@ xcoff_link_add_symbols (bfd *abfd, struc
 		{
 		  _bfd_error_handler
 		    /* xgettext:c-format */
-		    (_("%B: reloc %s:%d not in csect"),
+		    (_("%B: reloc %s:%Ld not in csect"),
 		     abfd, o->name, i);
 		  bfd_set_error (bfd_error_bad_value);
 		  goto error_return;
@@ -2114,7 +2114,7 @@ xcoff_link_add_symbols (bfd *abfd, struc
 	      /* We identify all function symbols that are the target
 		 of a relocation, so that we can create glue code for
 		 functions imported from dynamic objects.  */
- 	      if (info->output_bfd->xvec == abfd->xvec
+	      if (info->output_bfd->xvec == abfd->xvec
 		  && *rel_csect != bfd_und_section_ptr
 		  && obj_xcoff_sym_hashes (abfd)[rel->r_symndx] != NULL)
 		{
@@ -2366,7 +2366,7 @@ xcoff_link_check_ar_symbols (bfd *abfd,
 	     undefined references in shared objects.  */
 	  if (h != NULL
 	      && h->type == bfd_link_hash_undefined
- 	      && (info->output_bfd->xvec != abfd->xvec
+	      && (info->output_bfd->xvec != abfd->xvec
 		  || (((struct xcoff_link_hash_entry *) h)->flags
 		      & XCOFF_DEF_DYNAMIC) == 0))
 	    {
@@ -3021,7 +3021,7 @@ xcoff_sweep (struct bfd_link_info *info)
 		  || o == xcoff_hash_table (info)->loader_section
 		  || o == xcoff_hash_table (info)->linkage_section
 		  || o == xcoff_hash_table (info)->descriptor_section
-                  || (bfd_get_section_flags (sub, o) & SEC_DEBUGGING)
+		  || (bfd_get_section_flags (sub, o) & SEC_DEBUGGING)
 		  || strcmp (o->name, ".debug") == 0)
 		o->flags |= SEC_MARK;
 	      else
@@ -4736,8 +4736,8 @@ xcoff_link_input_bfd (struct xcoff_final
       flinfo->last_file.n_value = output_index;
       bfd_coff_swap_sym_out (output_bfd, (void *) &flinfo->last_file,
 			     (void *) (flinfo->outsyms
- 				    + ((flinfo->last_file_index - syment_base)
- 				       * osymesz)));
+				    + ((flinfo->last_file_index - syment_base)
+				       * osymesz)));
     }
 
   /* Write the modified symbols to the output file.  */
@@ -4943,24 +4943,24 @@ xcoff_link_input_bfd (struct xcoff_final
 			     this case, but I don't think it's worth it.  */
 			  is = flinfo->internal_syms + r_symndx;
 
-                          if (is->n_sclass != C_DWARF)
-                            {
-                              name = (_bfd_coff_internal_syment_name
-                                      (input_bfd, is, buf));
+			  if (is->n_sclass != C_DWARF)
+			    {
+			      name = (_bfd_coff_internal_syment_name
+				      (input_bfd, is, buf));
 
-                              if (name == NULL)
-                                return FALSE;
+			      if (name == NULL)
+				return FALSE;
 
 			      (*flinfo->info->callbacks->unattached_reloc)
 				(flinfo->info, name,
 				 input_bfd, o, irel->r_vaddr);
-                            }
+			    }
 			}
 		    }
 		}
 
 	      if ((o->flags & SEC_DEBUGGING) == 0
-                  && xcoff_need_ldrel_p (flinfo->info, irel, h))
+		  && xcoff_need_ldrel_p (flinfo->info, irel, h))
 		{
 		  asection *sec;
 
@@ -5112,9 +5112,9 @@ xcoff_find_tc0 (bfd *output_bfd, struct 
       if (best_address > toc_start + 0x8000)
 	{
 	  _bfd_error_handler
-	    (_("TOC overflow: 0x%lx > 0x10000; try -mminimal-toc "
+	    (_("TOC overflow: %#Lx > 0x10000; try -mminimal-toc "
 	       "when compiling"),
-	     (unsigned long) (toc_end - toc_start));
+	     toc_end - toc_start);
 	  bfd_set_error (bfd_error_file_too_big);
 	  return FALSE;
 	}
@@ -5310,7 +5310,7 @@ xcoff_write_global_symbol (struct bfd_ha
 	tocoff += h->descriptor->u.toc_offset;
 
       /* The first instruction in the glink code needs to be
-	 cooked to to hold the correct offset in the toc.  The
+	 cooked to hold the correct offset in the toc.  The
 	 rest are just output raw.  */
       bfd_put_32 (output_bfd,
 		  bfd_xcoff_glink_code(output_bfd, 0) | (tocoff & 0xffff), p);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/xsym.c ./bfd/xsym.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/xsym.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/xsym.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* xSYM symbol-file support for BFD.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -26,40 +26,41 @@
 #include "bfd.h"
 #include "libbfd.h"
 
-#define bfd_sym_close_and_cleanup                   _bfd_generic_close_and_cleanup
-#define bfd_sym_bfd_free_cached_info                _bfd_generic_bfd_free_cached_info
-#define bfd_sym_new_section_hook                    _bfd_generic_new_section_hook
-#define bfd_sym_bfd_is_local_label_name             bfd_generic_is_local_label_name
-#define bfd_sym_bfd_is_target_special_symbol       ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
-#define bfd_sym_get_lineno                          _bfd_nosymbols_get_lineno
-#define bfd_sym_find_nearest_line                   _bfd_nosymbols_find_nearest_line
-#define bfd_sym_find_line                           _bfd_nosymbols_find_line
-#define bfd_sym_find_inliner_info                   _bfd_nosymbols_find_inliner_info
+#define bfd_sym_close_and_cleanup		    _bfd_generic_close_and_cleanup
+#define bfd_sym_bfd_free_cached_info		    _bfd_generic_bfd_free_cached_info
+#define bfd_sym_new_section_hook		    _bfd_generic_new_section_hook
+#define bfd_sym_bfd_is_local_label_name		    bfd_generic_is_local_label_name
+#define bfd_sym_bfd_is_target_special_symbol	   ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
+#define bfd_sym_get_lineno			    _bfd_nosymbols_get_lineno
+#define bfd_sym_find_nearest_line		    _bfd_nosymbols_find_nearest_line
+#define bfd_sym_find_line			    _bfd_nosymbols_find_line
+#define bfd_sym_find_inliner_info		    _bfd_nosymbols_find_inliner_info
 #define bfd_sym_get_symbol_version_string	    _bfd_nosymbols_get_symbol_version_string
-#define bfd_sym_bfd_make_debug_symbol               _bfd_nosymbols_bfd_make_debug_symbol
-#define bfd_sym_read_minisymbols                    _bfd_generic_read_minisymbols
-#define bfd_sym_minisymbol_to_symbol                _bfd_generic_minisymbol_to_symbol
-#define bfd_sym_set_arch_mach                       _bfd_generic_set_arch_mach
-#define bfd_sym_get_section_contents                _bfd_generic_get_section_contents
-#define bfd_sym_set_section_contents                _bfd_generic_set_section_contents
+#define bfd_sym_bfd_make_debug_symbol		    _bfd_nosymbols_bfd_make_debug_symbol
+#define bfd_sym_read_minisymbols		    _bfd_generic_read_minisymbols
+#define bfd_sym_minisymbol_to_symbol		    _bfd_generic_minisymbol_to_symbol
+#define bfd_sym_set_arch_mach			    _bfd_generic_set_arch_mach
+#define bfd_sym_get_section_contents		    _bfd_generic_get_section_contents
+#define bfd_sym_set_section_contents		    _bfd_generic_set_section_contents
 #define bfd_sym_bfd_get_relocated_section_contents  bfd_generic_get_relocated_section_contents
-#define bfd_sym_bfd_relax_section                   bfd_generic_relax_section
-#define bfd_sym_bfd_gc_sections                     bfd_generic_gc_sections
-#define bfd_sym_bfd_lookup_section_flags            bfd_generic_lookup_section_flags
-#define bfd_sym_bfd_merge_sections                  bfd_generic_merge_sections
-#define bfd_sym_bfd_is_group_section                bfd_generic_is_group_section
-#define bfd_sym_bfd_discard_group                   bfd_generic_discard_group
-#define bfd_sym_section_already_linked              _bfd_generic_section_already_linked
-#define bfd_sym_bfd_define_common_symbol            bfd_generic_define_common_symbol
-#define bfd_sym_bfd_link_hash_table_create          _bfd_generic_link_hash_table_create
-#define bfd_sym_bfd_link_add_symbols                _bfd_generic_link_add_symbols
-#define bfd_sym_bfd_link_just_syms                  _bfd_generic_link_just_syms
+#define bfd_sym_bfd_relax_section		    bfd_generic_relax_section
+#define bfd_sym_bfd_gc_sections			    bfd_generic_gc_sections
+#define bfd_sym_bfd_lookup_section_flags	    bfd_generic_lookup_section_flags
+#define bfd_sym_bfd_merge_sections		    bfd_generic_merge_sections
+#define bfd_sym_bfd_is_group_section		    bfd_generic_is_group_section
+#define bfd_sym_bfd_discard_group		    bfd_generic_discard_group
+#define bfd_sym_section_already_linked		    _bfd_generic_section_already_linked
+#define bfd_sym_bfd_define_common_symbol	    bfd_generic_define_common_symbol
+#define bfd_sym_bfd_define_start_stop		    bfd_generic_define_start_stop
+#define bfd_sym_bfd_link_hash_table_create	    _bfd_generic_link_hash_table_create
+#define bfd_sym_bfd_link_add_symbols		    _bfd_generic_link_add_symbols
+#define bfd_sym_bfd_link_just_syms		    _bfd_generic_link_just_syms
 #define bfd_sym_bfd_copy_link_hash_symbol_type \
   _bfd_generic_copy_link_hash_symbol_type
-#define bfd_sym_bfd_final_link                      _bfd_generic_final_link
-#define bfd_sym_bfd_link_split_section              _bfd_generic_link_split_section
-#define bfd_sym_get_section_contents_in_window      _bfd_generic_get_section_contents_in_window
-#define bfd_sym_bfd_link_check_relocs               _bfd_generic_link_check_relocs
+#define bfd_sym_bfd_final_link			    _bfd_generic_final_link
+#define bfd_sym_bfd_link_split_section		    _bfd_generic_link_split_section
+#define bfd_sym_get_section_contents_in_window	    _bfd_generic_get_section_contents_in_window
+#define bfd_sym_bfd_link_check_relocs		    _bfd_generic_link_check_relocs
 
 extern const bfd_target sym_vec;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/xsym.h ./bfd/xsym.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/xsym.h	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/xsym.h	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* xSYM symbol-file support for BFD.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -25,14 +25,14 @@
 #ifndef __xSYM_H__
 #define __xSYM_H__
 
-#define BFD_SYM_VERSION_STR_3_1 	"\013Version 3.1"
-#define BFD_SYM_VERSION_STR_3_2 	"\013Version 3.2"
-#define BFD_SYM_VERSION_STR_3_3 	"\013Version 3.3"
-#define BFD_SYM_VERSION_STR_3_4 	"\013Version 3.4"
-#define BFD_SYM_VERSION_STR_3_5 	"\013Version 3.5"
+#define BFD_SYM_VERSION_STR_3_1		"\013Version 3.1"
+#define BFD_SYM_VERSION_STR_3_2		"\013Version 3.2"
+#define BFD_SYM_VERSION_STR_3_3		"\013Version 3.3"
+#define BFD_SYM_VERSION_STR_3_4		"\013Version 3.4"
+#define BFD_SYM_VERSION_STR_3_5		"\013Version 3.5"
 #define BFD_SYM_END_OF_LIST_3_2		0xffff
 #define BFD_SYM_END_OF_LIST_3_4		0xffffffff
-#define BFD_SYM_END_OF_LIST 		BFD_SYM_END_OF_LIST_3_4
+#define BFD_SYM_END_OF_LIST		BFD_SYM_END_OF_LIST_3_4
 #define BFD_SYM_FILE_NAME_INDEX_3_2	0xfffe
 #define BFD_SYM_FILE_NAME_INDEX_3_4	0xfffffffe
 #define BFD_SYM_FILE_NAME_INDEX		BFD_SYM_FILE_NAME_INDEX_3_4
@@ -123,8 +123,8 @@ struct bfd_sym_resources_table_entry
   unsigned short rte_res_number;  /* Resource Number.  */
   unsigned long rte_nte_index;    /* Name of the resource.  */
   unsigned long rte_mte_first;    /* Index of first module in the resource.  */
-  unsigned long rte_mte_last;     /* Index of the last module in the resource.	*/
-  unsigned long	rte_res_size;     /* Size of the resource.  */
+  unsigned long rte_mte_last;     /* Index of the last module in the resource.  */
+  unsigned long rte_res_size;     /* Size of the resource.  */
 };
 typedef struct bfd_sym_resources_table_entry bfd_sym_resources_table_entry;
 
@@ -145,21 +145,21 @@ typedef struct bfd_sym_resources_table_e
 
 struct bfd_sym_modules_table_entry
 {
-  unsigned long mte_rte_index;         /* Which resource it is in.  */
-  unsigned long mte_res_offset;        /* Offset into the resource.  */
-  unsigned long mte_size;              /* Size of module.  */
-  char mte_kind;                       /* What kind of module this is.  */
-  char mte_scope;                      /* How visible is it?  */
-  unsigned long mte_parent;            /* Containing module.  */
-  bfd_sym_file_reference mte_imp_fref; /* Implementation source.  */
-  unsigned long mte_imp_end;           /* End of implementation source.  */
-  unsigned long mte_nte_index;         /* The name of the module.  */
-  unsigned long mte_cmte_index;        /* Modules contained in this.  */
-  unsigned long mte_cvte_index;        /* Variables contained in this.  */
-  unsigned long mte_clte_index;        /* Local labels defined here.  */
-  unsigned long mte_ctte_index;        /* Types contained in this.  */
-  unsigned long mte_csnte_idx_1;       /* CSNTE index of mte_snbr_first.  */
-  unsigned long mte_csnte_idx_2;       /* CSNTE index of mte_snbr_last.  */
+  unsigned long mte_rte_index;		/* Which resource it is in.  */
+  unsigned long mte_res_offset;		/* Offset into the resource.  */
+  unsigned long mte_size;		/* Size of module.  */
+  char mte_kind;			/* What kind of module this is.  */
+  char mte_scope;			/* How visible is it?  */
+  unsigned long mte_parent;		/* Containing module.  */
+  bfd_sym_file_reference mte_imp_fref;	/* Implementation source.  */
+  unsigned long mte_imp_end;		/* End of implementation source.  */
+  unsigned long mte_nte_index;		/* The name of the module.  */
+  unsigned long mte_cmte_index;		/* Modules contained in this.  */
+  unsigned long mte_cvte_index;		/* Variables contained in this.  */
+  unsigned long mte_clte_index;		/* Local labels defined here.  */
+  unsigned long mte_ctte_index;		/* Types contained in this.  */
+  unsigned long mte_csnte_idx_1;	/* CSNTE index of mte_snbr_first.  */
+  unsigned long mte_csnte_idx_2;	/* CSNTE index of mte_snbr_last.  */
 };
 typedef struct bfd_sym_modules_table_entry bfd_sym_modules_table_entry;
 
@@ -169,13 +169,13 @@ typedef struct bfd_sym_modules_table_ent
    The table is ordered by increasing file offset.  Each new offset
    references a module.
 
- 				FRT	= FILE_SOURCE_START
- 							FILE_SOURCE_INCREMENT*
- 							END_OF_LIST.
+			FRT	= FILE_SOURCE_START
+						FILE_SOURCE_INCREMENT*
+						END_OF_LIST.
 
 	*** THIS MECHANISM IS VERY SLOW FOR FILE+STATEMENT_NUMBER TO
- 	*** MODULE/CODE ADDRESS OPERATIONS.  ANOTHER MECHANISM IS
- 	***	REQUIRED!!  */
+	*** MODULE/CODE ADDRESS OPERATIONS.  ANOTHER MECHANISM IS
+	***	REQUIRED!!  */
 
 union bfd_sym_file_references_table_entry
 {
@@ -260,7 +260,7 @@ typedef union bfd_sym_contained_modules_
      == BFD_SYM_CVTE_BIG_LA
      Logical address bytes in constant pool, at offset 'big_la'.  */
 
-#define	BFD_SYM_CVTE_SCA 0          /* Indicate SCA variant of CVTE.  */
+#define	BFD_SYM_CVTE_SCA 0	    /* Indicate SCA variant of CVTE.  */
 #define	BFD_SYM_CVTE_LA_MAX_SIZE 13 /* Max# of logical address bytes in a CVTE.  */
 #define	BFD_SYM_CVTE_BIG_LA 127     /* Indicates LA redirection to constant pool.  */
 
@@ -286,17 +286,17 @@ union bfd_sym_contained_variables_table_
     /* < SOURCE_FILE_CHANGE.  */
     unsigned long tte_index;
     unsigned long nte_index;
-    unsigned long file_delta;                       /* Increment from previous source.  */
+    unsigned long file_delta;			    /* Increment from previous source.  */
     unsigned char scope;
-    unsigned char la_size;                          /* #bytes of LAs below.  */
+    unsigned char la_size;			    /* #bytes of LAs below.  */
 
     union
     {
       /* la_size == BFD_SYM_CVTE_SCA.  */
       struct
       {
-	unsigned char sca_kind;	                    /* Distinguish local from value/var formal.  */
-	unsigned char sca_class;                    /* The storage class itself.  */
+	unsigned char sca_kind;			    /* Distinguish local from value/var formal.  */
+	unsigned char sca_class;		    /* The storage class itself.  */
 	unsigned long sca_offset;
       }
       scstruct;
@@ -304,15 +304,15 @@ union bfd_sym_contained_variables_table_
       /* la_size <= BFD_SYM_CVTE_LA_MAX_SIZE.  */
       struct {
 	unsigned char la[BFD_SYM_CVTE_LA_MAX_SIZE]; /* Logical address bytes.  */
-	unsigned char la_kind;                      /* Eqv. cvte_location.sca_kind.  */
+	unsigned char la_kind;			    /* Eqv. cvte_location.sca_kind.  */
       }
       lastruct;
 
       /* la_size == BFD_SYM_CVTE_BIG_LA 127.  */
       struct
       {
-	unsigned long big_la;                       /* Logical address bytes in constant pool.  */
-	unsigned char big_la_kind;                  /* Eqv. cvte_location.sca_kind.  */
+	unsigned long big_la;			    /* Logical address bytes in constant pool.  */
+	unsigned char big_la_kind;		    /* Eqv. cvte_location.sca_kind.  */
       }
       biglastruct;
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/xtensa-isa.c ./bfd/xtensa-isa.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/xtensa-isa.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/xtensa-isa.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Configurable Xtensa ISA support.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -292,7 +292,8 @@ xtensa_isa_init (xtensa_isa_status *errn
       xtensa_sysreg_internal *sreg = &isa->sysregs[n];
       is_user = sreg->is_user;
 
-      isa->sysreg_table[is_user][sreg->number] = n;
+      if (sreg->number >= 0)
+	isa->sysreg_table[is_user][sreg->number] = n;
     }
 
   /* Set up the interface lookup table.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/xtensa-modules.c ./bfd/xtensa-modules.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/bfd/xtensa-modules.c	2018-01-02 02:02:57.000000000 +0000
+++ ./bfd/xtensa-modules.c	2018-01-09 02:04:54.000000000 +0000
@@ -1,5 +1,5 @@
 /* Xtensa configuration-specific ISA information.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/ChangeLog ./ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/ChangeLog	2018-01-02 02:02:57.000000000 +0000
+++ ./ChangeLog	2018-01-09 02:04:54.000000000 +0000
@@ -1,3 +1,32 @@
+2017-12-14  Nick Clifton  <nickc@redhat.com>
+
+	* COPYING.LIBGLOSS: Update address of FSF in copyright notice.
+
+2017-12-12  Stafford Horne  <shorne@gmail.com>
+
+	* configure.ac: Remove logic adding gdb to noconfigsdirs for or1k.
+	* configure: Regenerate.
+
+2017-09-15  Nick Clifton  <nickc@redhat.com>
+
+	* src-release.sh (LZIPPROG): New define.  Provides the name of the
+	lzip program.
+	(do_lz): New function.  Compresses a tarball using the lzip
+	program.
+	(do_compress): Add support for lzip compression.
+	(usage): Mention -l option.
+	(build_release): Support -l option to invoke lzip compression.
+
+2017-09-15  Alan Modra  <amodra@gmail.com>
+
+	* src-release.sh (do_proto_toplev): Revert last patch.  Enable or
+	disable binutils, gas, gdb, gold, gprof, ld, libdecnumber, readline,
+	and sim depending on $tool and $support_files.  Echo configure line.
+
+2017-09-14  Matt Rice <ratmice@gmail.com>
+
+	* src-release.sh (do_proto_toplev): Enable gold during release process.
+
 2017-04-13  Andrew Jenner  <andrew@codesourcery.com>
 
 	* config.sub: Sync with master version in config project.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/configure ./configure
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/configure	2018-01-02 02:02:57.000000000 +0000
+++ ./configure	2018-01-09 02:04:54.000000000 +0000
@@ -3632,10 +3632,6 @@ case "${target}" in
     ;;
   *-*-rtems*)
     noconfigdirs="$noconfigdirs target-libgloss"
-    # this is not caught below because this stanza matches earlier
-    case $target in
-      or1k*-*-*) noconfigdirs="$noconfigdirs gdb" ;;
-    esac
     ;;
     # The tpf target doesn't support gdb yet.
   *-*-tpf*)
@@ -3841,9 +3837,6 @@ case "${target}" in
   nvptx*-*-*)
     noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
     ;;
-  or1k*-*-*)
-    noconfigdirs="$noconfigdirs gdb"
-    ;;
   sh-*-*)
     case "${target}" in
       sh*-*-elf)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/configure.ac ./configure.ac
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/configure.ac	2018-01-02 02:06:59.000000000 +0000
+++ ./configure.ac	2018-01-09 02:08:36.000000000 +0000
@@ -966,10 +966,6 @@ case "${target}" in
     ;;
   *-*-rtems*)
     noconfigdirs="$noconfigdirs target-libgloss"
-    # this is not caught below because this stanza matches earlier
-    case $target in
-      or1k*-*-*) noconfigdirs="$noconfigdirs gdb" ;;
-    esac
     ;;
     # The tpf target doesn't support gdb yet.
   *-*-tpf*)
@@ -1175,9 +1171,6 @@ case "${target}" in
   nvptx*-*-*)
     noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
     ;;
-  or1k*-*-*)
-    noconfigdirs="$noconfigdirs gdb"
-    ;;
   sh-*-*)
     case "${target}" in
       sh*-*-elf)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/djunpack.bat ./djunpack.bat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/djunpack.bat	2018-01-02 02:07:02.000000000 +0000
+++ ./djunpack.bat	2018-01-09 02:08:40.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-8.0.1.20180102
-if "%GDBVER%"=="$package-8.0.1.20180102" GoTo EnvOk
+set GDBVER=$package-8.0.90.20180109
+if "%GDBVER%"=="$package-8.0.90.20180109" 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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/etc/ChangeLog ./etc/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/etc/ChangeLog	2018-01-02 02:02:57.000000000 +0000
+++ ./etc/ChangeLog	2018-01-09 02:04:54.000000000 +0000
@@ -1,3 +1,13 @@
+2018-01-03  Alan Modra  <amodra@gmail.com>
+
+	* add-log.el: Update copyright year range.
+	* texi2pod.pl: Likewise.
+	* update-copyright.py: Likewise.
+
+2017-12-14  Nick Clifton  <nickc@redhat.com>
+
+	* add-log.el: Update address of FSF in copyright notice.
+
 2017-01-04  Alan Modra  <amodra@gmail.com>
 
 	* update-copyright.py: New file.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/etc/texi2pod.pl ./etc/texi2pod.pl
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/etc/texi2pod.pl	2018-01-02 02:02:57.000000000 +0000
+++ ./etc/texi2pod.pl	2018-01-09 02:04:54.000000000 +0000
@@ -1,6 +1,6 @@
 #! /usr/bin/perl -w
 
-#   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+#   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
 # This file is part of GCC.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch32-linux-nat.c ./gdb/aarch32-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch32-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/aarch32-linux-nat.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -46,7 +46,7 @@ aarch32_gp_regcache_supply (struct regca
     regcache_raw_supply (regcache, ARM_PS_REGNUM, &regs[ARM_PC_REGNUM]);
 
   regs[ARM_PC_REGNUM] = gdbarch_addr_bits_remove
-			  (get_regcache_arch (regcache), regs[ARM_PC_REGNUM]);
+			  (regcache->arch (), regs[ARM_PC_REGNUM]);
   regcache_raw_supply (regcache, ARM_PC_REGNUM, &regs[ARM_PC_REGNUM]);
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch32-linux-nat.h ./gdb/aarch32-linux-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch32-linux-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/aarch32-linux-nat.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-fbsd-nat.c ./gdb/aarch64-fbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-fbsd-nat.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/aarch64-fbsd-nat.c	2018-01-09 02:04:56.000000000 +0000
@@ -0,0 +1,129 @@
+/* Native-dependent code for FreeBSD/aarch64.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+#include "target.h"
+
+#include <sys/types.h>
+#include <sys/ptrace.h>
+#include <machine/reg.h>
+
+#include "fbsd-nat.h"
+#include "aarch64-tdep.h"
+#include "aarch64-fbsd-tdep.h"
+#include "inf-ptrace.h"
+
+/* Determine if PT_GETREGS fetches REGNUM.  */
+
+static bool
+getregs_supplies (struct gdbarch *gdbarch, int regnum)
+{
+  return (regnum >= AARCH64_X0_REGNUM && regnum <= AARCH64_CPSR_REGNUM);
+}
+
+/* Determine if PT_GETFPREGS fetches REGNUM.  */
+
+static bool
+getfpregs_supplies (struct gdbarch *gdbarch, int regnum)
+{
+  return (regnum >= AARCH64_V0_REGNUM && regnum <= AARCH64_FPCR_REGNUM);
+}
+
+/* Fetch register REGNUM from the inferior.  If REGNUM is -1, do this
+   for all registers.  */
+
+static void
+aarch64_fbsd_fetch_inferior_registers (struct target_ops *ops,
+				    struct regcache *regcache, int regnum)
+{
+  pid_t pid = get_ptrace_pid (regcache_get_ptid (regcache));
+
+  struct gdbarch *gdbarch = regcache->arch ();
+  if (regnum == -1 || getregs_supplies (gdbarch, regnum))
+    {
+      struct reg regs;
+
+      if (ptrace (PT_GETREGS, pid, (PTRACE_TYPE_ARG3) &regs, 0) == -1)
+	perror_with_name (_("Couldn't get registers"));
+
+      regcache->supply_regset (&aarch64_fbsd_gregset, regnum, &regs,
+			       sizeof (regs));
+    }
+
+  if (regnum == -1 || getfpregs_supplies (gdbarch, regnum))
+    {
+      struct fpreg fpregs;
+
+      if (ptrace (PT_GETFPREGS, pid, (PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
+	perror_with_name (_("Couldn't get floating point status"));
+
+      regcache->supply_regset (&aarch64_fbsd_fpregset, regnum, &fpregs,
+			       sizeof (fpregs));
+    }
+}
+
+/* Store register REGNUM back into the inferior.  If REGNUM is -1, do
+   this for all registers.  */
+
+static void
+aarch64_fbsd_store_inferior_registers (struct target_ops *ops,
+				    struct regcache *regcache, int regnum)
+{
+  pid_t pid = get_ptrace_pid (regcache_get_ptid (regcache));
+
+  struct gdbarch *gdbarch = regcache->arch ();
+  if (regnum == -1 || getregs_supplies (gdbarch, regnum))
+    {
+      struct reg regs;
+
+      if (ptrace (PT_GETREGS, pid, (PTRACE_TYPE_ARG3) &regs, 0) == -1)
+	perror_with_name (_("Couldn't get registers"));
+
+      regcache->collect_regset (&aarch64_fbsd_gregset, regnum, &regs,
+			       sizeof (regs));
+
+      if (ptrace (PT_SETREGS, pid, (PTRACE_TYPE_ARG3) &regs, 0) == -1)
+	perror_with_name (_("Couldn't write registers"));
+    }
+
+  if (regnum == -1 || getfpregs_supplies (gdbarch, regnum))
+    {
+      struct fpreg fpregs;
+
+      if (ptrace (PT_GETFPREGS, pid, (PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
+	perror_with_name (_("Couldn't get floating point status"));
+
+      regcache->collect_regset (&aarch64_fbsd_fpregset, regnum, &fpregs,
+				sizeof (fpregs));
+
+      if (ptrace (PT_SETFPREGS, pid, (PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
+	perror_with_name (_("Couldn't write floating point status"));
+    }
+}
+
+void
+_initialize_aarch64_fbsd_nat (void)
+{
+  struct target_ops *t;
+
+  t = inf_ptrace_target ();
+  t->to_fetch_registers = aarch64_fbsd_fetch_inferior_registers;
+  t->to_store_registers = aarch64_fbsd_store_inferior_registers;
+  fbsd_nat_add_target (t);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-fbsd-tdep.c ./gdb/aarch64-fbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-fbsd-tdep.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/aarch64-fbsd-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -0,0 +1,205 @@
+/* Target-dependent code for FreeBSD/aarch64.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+
+#include "gdbarch.h"
+#include "fbsd-tdep.h"
+#include "aarch64-tdep.h"
+#include "aarch64-fbsd-tdep.h"
+#include "osabi.h"
+#include "solib-svr4.h"
+#include "target.h"
+#include "tramp-frame.h"
+#include "trad-frame.h"
+
+/* In a signal frame, sp points to a 'struct sigframe' which is
+   defined as:
+
+   struct sigframe {
+	   siginfo_t	sf_si;
+	   ucontext_t	sf_uc;
+   };
+
+   ucontext_t is defined as:
+
+   struct __ucontext {
+	   sigset_t	uc_sigmask;
+	   mcontext_t	uc_mcontext;
+	   ...
+   };
+
+   The mcontext_t contains the general purpose register set followed
+   by the floating point register set.  The floating point register
+   set is only valid if the _MC_FP_VALID flag is set in mc_flags.  */
+
+#define AARCH64_MCONTEXT_REG_SIZE               8
+#define AARCH64_MCONTEXT_FPREG_SIZE             16
+#define AARCH64_SIGFRAME_UCONTEXT_OFFSET	80
+#define AARCH64_UCONTEXT_MCONTEXT_OFFSET	16
+#define	AARCH64_MCONTEXT_FPREGS_OFFSET		272
+#define	AARCH64_MCONTEXT_FLAGS_OFFSET		800
+#define AARCH64_MCONTEXT_FLAG_FP_VALID		0x1
+
+/* Implement the "init" method of struct tramp_frame.  */
+
+static void
+aarch64_fbsd_sigframe_init (const struct tramp_frame *self,
+			     struct frame_info *this_frame,
+			     struct trad_frame_cache *this_cache,
+			     CORE_ADDR func)
+{
+  struct gdbarch *gdbarch = get_frame_arch (this_frame);
+  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+  CORE_ADDR sp = get_frame_register_unsigned (this_frame, AARCH64_SP_REGNUM);
+  CORE_ADDR mcontext_addr =
+    sp
+    + AARCH64_SIGFRAME_UCONTEXT_OFFSET
+    + AARCH64_UCONTEXT_MCONTEXT_OFFSET;
+  gdb_byte buf[4];
+  int i;
+
+  for (i = 0; i < 30; i++)
+    {
+      trad_frame_set_reg_addr (this_cache,
+			       AARCH64_X0_REGNUM + i,
+			       mcontext_addr + i * AARCH64_MCONTEXT_REG_SIZE);
+    }
+  trad_frame_set_reg_addr (this_cache, AARCH64_LR_REGNUM,
+			   mcontext_addr + 30 * AARCH64_MCONTEXT_REG_SIZE);
+  trad_frame_set_reg_addr (this_cache, AARCH64_SP_REGNUM,
+			   mcontext_addr + 31 * AARCH64_MCONTEXT_REG_SIZE);
+  trad_frame_set_reg_addr (this_cache, AARCH64_PC_REGNUM,
+			   mcontext_addr + 32 * AARCH64_MCONTEXT_REG_SIZE);
+  trad_frame_set_reg_addr (this_cache, AARCH64_CPSR_REGNUM,
+			   mcontext_addr + 33 * AARCH64_MCONTEXT_REG_SIZE);
+
+  if (target_read_memory (mcontext_addr + AARCH64_MCONTEXT_FLAGS_OFFSET, buf,
+			  4) == 0
+      && (extract_unsigned_integer (buf, 4, byte_order)
+	  & AARCH64_MCONTEXT_FLAG_FP_VALID))
+    {
+      for (i = 0; i < 32; i++)
+	{
+	  trad_frame_set_reg_addr (this_cache, AARCH64_V0_REGNUM + i,
+				   mcontext_addr
+				   + AARCH64_MCONTEXT_FPREGS_OFFSET
+				   + i * AARCH64_MCONTEXT_FPREG_SIZE);
+	}
+      trad_frame_set_reg_addr (this_cache, AARCH64_FPSR_REGNUM,
+			       mcontext_addr + AARCH64_MCONTEXT_FPREGS_OFFSET
+			       + 32 * AARCH64_MCONTEXT_FPREG_SIZE);
+      trad_frame_set_reg_addr (this_cache, AARCH64_FPCR_REGNUM,
+			       mcontext_addr + AARCH64_MCONTEXT_FPREGS_OFFSET
+			       + 32 * AARCH64_MCONTEXT_FPREG_SIZE + 4);
+    }
+
+  trad_frame_set_id (this_cache, frame_id_build (sp, func));
+}
+
+static const struct tramp_frame aarch64_fbsd_sigframe =
+{
+  SIGTRAMP_FRAME,
+  4,
+  {
+    {0x910003e0, -1},		/* mov  x0, sp  */
+    {0x91014000, -1},		/* add  x0, x0, #SF_UC  */
+    {0xd2803428, -1},		/* mov  x8, #SYS_sigreturn  */
+    {0xd4000001, -1},		/* svc  0x0  */
+    {TRAMP_SENTINEL_INSN, -1}
+  },
+  aarch64_fbsd_sigframe_init
+};
+
+/* Register maps.  */
+
+static const struct regcache_map_entry aarch64_fbsd_gregmap[] =
+  {
+    { 30, AARCH64_X0_REGNUM, 8 }, /* x0 ... x29 */
+    { 1, AARCH64_LR_REGNUM, 8 },
+    { 1, AARCH64_SP_REGNUM, 8 },
+    { 1, AARCH64_PC_REGNUM, 8 },
+    { 1, AARCH64_CPSR_REGNUM, 4 },
+    { 0 }
+  };
+
+static const struct regcache_map_entry aarch64_fbsd_fpregmap[] =
+  {
+    { 32, AARCH64_V0_REGNUM, 16 }, /* v0 ... v31 */
+    { 1, AARCH64_FPSR_REGNUM, 4 },
+    { 1, AARCH64_FPCR_REGNUM, 4 },
+    { 0 }
+  };
+
+/* Register set definitions.  */
+
+const struct regset aarch64_fbsd_gregset =
+  {
+    aarch64_fbsd_gregmap,
+    regcache_supply_regset, regcache_collect_regset
+  };
+
+const struct regset aarch64_fbsd_fpregset =
+  {
+    aarch64_fbsd_fpregmap,
+    regcache_supply_regset, regcache_collect_regset
+  };
+
+/* Implement the "regset_from_core_section" gdbarch method.  */
+
+static void
+aarch64_fbsd_iterate_over_regset_sections (struct gdbarch *gdbarch,
+					   iterate_over_regset_sections_cb *cb,
+					   void *cb_data,
+					   const struct regcache *regcache)
+{
+  cb (".reg", AARCH64_FBSD_SIZEOF_GREGSET, &aarch64_fbsd_gregset,
+      NULL, cb_data);
+  cb (".reg2", AARCH64_FBSD_SIZEOF_FPREGSET, &aarch64_fbsd_fpregset,
+      NULL, cb_data);
+}
+
+/* Implement the 'init_osabi' method of struct gdb_osabi_handler.  */
+
+static void
+aarch64_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+  /* Generic FreeBSD support.  */
+  fbsd_init_abi (info, gdbarch);
+
+  set_solib_svr4_fetch_link_map_offsets (gdbarch,
+					 svr4_lp64_fetch_link_map_offsets);
+
+  tramp_frame_prepend_unwinder (gdbarch, &aarch64_fbsd_sigframe);
+
+  /* Enable longjmp.  */
+  tdep->jb_pc = 13;
+
+  set_gdbarch_iterate_over_regset_sections
+    (gdbarch, aarch64_fbsd_iterate_over_regset_sections);
+}
+
+void
+_initialize_aarch64_fbsd_tdep (void)
+{
+  gdbarch_register_osabi (bfd_arch_aarch64, 0, GDB_OSABI_FREEBSD,
+			  aarch64_fbsd_init_abi);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-fbsd-tdep.h ./gdb/aarch64-fbsd-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-fbsd-tdep.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/aarch64-fbsd-tdep.h	2018-01-09 02:04:56.000000000 +0000
@@ -0,0 +1,33 @@
+/* FreeBSD/aarch64 target support, prototypes.
+
+   Copyright (C) 2017-2018 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 "regset.h"
+
+/* The general-purpose regset consists of 30 X registers, plus LR, SP,
+   ELR, and SPSR registers.  SPSR is 32 bits but the structure is
+   passed to 64 bit alignment.  */
+#define AARCH64_FBSD_SIZEOF_GREGSET  (34 * X_REGISTER_SIZE)
+
+/* The fp regset consists of 32 V registers, plus FPSR and FPCR which
+   are 4 bytes wide each, and the whole structure is padded to 128 bit
+   alignment.  */
+#define AARCH64_FBSD_SIZEOF_FPREGSET (33 * V_REGISTER_SIZE)
+
+extern const struct regset aarch64_fbsd_gregset;
+extern const struct regset aarch64_fbsd_fpregset;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-linux-nat.c ./gdb/aarch64-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/aarch64-linux-nat.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for GNU/Linux AArch64.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GDB.
@@ -155,7 +155,7 @@ static void
 fetch_gregs_from_thread (struct regcache *regcache)
 {
   int ret, tid;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   elf_gregset_t regs;
   struct iovec iovec;
 
@@ -195,7 +195,7 @@ store_gregs_to_thread (const struct regc
   int ret, tid;
   elf_gregset_t regs;
   struct iovec iovec;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   /* Make sure REGS can hold all registers contents on both aarch64
      and arm.  */
@@ -238,7 +238,7 @@ fetch_fpregs_from_thread (struct regcach
   int ret, tid;
   elf_fpregset_t regs;
   struct iovec iovec;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   /* Make sure REGS can hold all VFP registers contents on both aarch64
      and arm.  */
@@ -286,7 +286,7 @@ store_fpregs_to_thread (const struct reg
   int ret, tid;
   elf_fpregset_t regs;
   struct iovec iovec;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   /* Make sure REGS can hold all VFP registers contents on both aarch64
      and arm.  */
@@ -501,7 +501,7 @@ aarch64_linux_read_description (struct t
   if (ret == 0)
     return tdesc_arm_with_neon;
   else
-    return tdesc_aarch64;
+    return aarch64_read_description ();
 }
 
 /* Convert a native/host siginfo object, into/from the siginfo in the
@@ -801,9 +801,6 @@ triggers a breakpoint or watchpoint."),
 			   &maintenance_show_cmdlist);
 }
 
-/* -Wmissing-prototypes.  */
-void _initialize_aarch64_linux_nat (void);
-
 void
 _initialize_aarch64_linux_nat (void)
 {
@@ -840,6 +837,7 @@ _initialize_aarch64_linux_nat (void)
   /* Register the target.  */
   linux_nat_add_target (t);
   linux_nat_set_new_thread (t, aarch64_linux_new_thread);
+  linux_nat_set_delete_thread (t, aarch64_linux_delete_thread);
   linux_nat_set_new_fork (t, aarch64_linux_new_fork);
   linux_nat_set_forget_process (t, aarch64_forget_process);
   linux_nat_set_prepare_to_resume (t, aarch64_linux_prepare_to_resume);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-linux-tdep.c ./gdb/aarch64-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/aarch64-linux-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux AArch64.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GDB.
@@ -45,6 +45,8 @@
 
 #include "record-full.h"
 #include "linux-record.h"
+#include "auxv.h"
+#include "elf/common.h"
 
 /* Signal frame handling.
 
@@ -231,6 +233,20 @@ aarch64_linux_iterate_over_regset_sectio
       NULL, cb_data);
 }
 
+/* Implement the "core_read_description" gdbarch method.  */
+
+static const struct target_desc *
+aarch64_linux_core_read_description (struct gdbarch *gdbarch,
+				     struct target_ops *target, bfd *abfd)
+{
+  CORE_ADDR aarch64_hwcap = 0;
+
+  if (target_auxv_search (target, AT_HWCAP, &aarch64_hwcap) != 1)
+    return NULL;
+
+  return aarch64_read_description ();
+}
+
 /* Implementation of `gdbarch_stap_is_single_operand', as defined in
    gdbarch.h.  */
 
@@ -289,7 +305,7 @@ aarch64_stap_parse_special_token (struct
 	       regname, p->saved_arg);
 
       ++tmp;
-      tmp = skip_spaces_const (tmp);
+      tmp = skip_spaces (tmp);
       /* Now we expect a number.  It can begin with '#' or simply
 	 a digit.  */
       if (*tmp == '#')
@@ -1018,6 +1034,8 @@ aarch64_linux_init_abi (struct gdbarch_i
 
   set_gdbarch_iterate_over_regset_sections
     (gdbarch, aarch64_linux_iterate_over_regset_sections);
+  set_gdbarch_core_read_description
+    (gdbarch, aarch64_linux_core_read_description);
 
   /* SystemTap related.  */
   set_gdbarch_stap_integer_prefixes (gdbarch, stap_integer_prefixes);
@@ -1204,16 +1222,11 @@ aarch64_linux_init_abi (struct gdbarch_i
   set_gdbarch_displaced_step_copy_insn (gdbarch,
 					aarch64_displaced_step_copy_insn);
   set_gdbarch_displaced_step_fixup (gdbarch, aarch64_displaced_step_fixup);
-  set_gdbarch_displaced_step_free_closure (gdbarch,
-					   simple_displaced_step_free_closure);
   set_gdbarch_displaced_step_location (gdbarch, linux_displaced_step_location);
   set_gdbarch_displaced_step_hw_singlestep (gdbarch,
 					    aarch64_displaced_step_hw_singlestep);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_aarch64_linux_tdep;
-
 void
 _initialize_aarch64_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-linux-tdep.h ./gdb/aarch64-linux-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-linux-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/aarch64-linux-tdep.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* GNU/Linux on AArch64 target support, prototypes.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-newlib-tdep.c ./gdb/aarch64-newlib-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-newlib-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/aarch64-newlib-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Newlib AArch64.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GDB.
@@ -36,9 +36,6 @@ aarch64_newlib_init_abi (struct gdbarch_
   tdep->jb_pc = 11;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_aarch64_newlib_tdep;
-
 void
 _initialize_aarch64_newlib_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-tdep.c ./gdb/aarch64-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/aarch64-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common target dependent code for GDB on AArch64 systems.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GDB.
@@ -27,7 +27,6 @@
 #include "dis-asm.h"
 #include "regcache.h"
 #include "reggroups.h"
-#include "doublest.h"
 #include "value.h"
 #include "arch-utils.h"
 #include "osabi.h"
@@ -55,9 +54,6 @@
 
 #include "record.h"
 #include "record-full.h"
-
-#include "features/aarch64.c"
-
 #include "arch/aarch64-insn.h"
 
 #include "opcode/aarch64.h"
@@ -235,13 +231,10 @@ aarch64_analyze_prologue (struct gdbarch
   int i;
   /* Track X registers and D registers in prologue.  */
   pv_t regs[AARCH64_X_REGISTER_COUNT + AARCH64_D_REGISTER_COUNT];
-  struct pv_area *stack;
-  struct cleanup *back_to;
 
   for (i = 0; i < AARCH64_X_REGISTER_COUNT + AARCH64_D_REGISTER_COUNT; i++)
     regs[i] = pv_register (i, 0);
-  stack = make_pv_area (AARCH64_SP_REGNUM, gdbarch_addr_bit (gdbarch));
-  back_to = make_cleanup_free_pv_area (stack);
+  pv_area stack (AARCH64_SP_REGNUM, gdbarch_addr_bit (gdbarch));
 
   for (; start < limit; start += 4)
     {
@@ -346,9 +339,9 @@ aarch64_analyze_prologue (struct gdbarch
 	  gdb_assert (inst.operands[1].type == AARCH64_OPND_ADDR_SIMM9);
 	  gdb_assert (!inst.operands[1].addr.offset.is_reg);
 
-	  pv_area_store (stack, pv_add_constant (regs[rn],
-						 inst.operands[1].addr.offset.imm),
-			 is64 ? 8 : 4, regs[rt]);
+	  stack.store (pv_add_constant (regs[rn],
+					inst.operands[1].addr.offset.imm),
+		       is64 ? 8 : 4, regs[rt]);
 	}
       else if ((inst.opcode->iclass == ldstpair_off
 		|| (inst.opcode->iclass == ldstpair_indexed
@@ -371,12 +364,10 @@ aarch64_analyze_prologue (struct gdbarch
 	  /* If recording this store would invalidate the store area
 	     (perhaps because rn is not known) then we should abandon
 	     further prologue analysis.  */
-	  if (pv_area_store_would_trash (stack,
-					 pv_add_constant (regs[rn], imm)))
+	  if (stack.store_would_trash (pv_add_constant (regs[rn], imm)))
 	    break;
 
-	  if (pv_area_store_would_trash (stack,
-					 pv_add_constant (regs[rn], imm + 8)))
+	  if (stack.store_would_trash (pv_add_constant (regs[rn], imm + 8)))
 	    break;
 
 	  rt1 = inst.operands[0].reg.regno;
@@ -390,10 +381,10 @@ aarch64_analyze_prologue (struct gdbarch
 	      rt2 += AARCH64_X_REGISTER_COUNT;
 	    }
 
-	  pv_area_store (stack, pv_add_constant (regs[rn], imm), 8,
-			 regs[rt1]);
-	  pv_area_store (stack, pv_add_constant (regs[rn], imm + 8), 8,
-			 regs[rt2]);
+	  stack.store (pv_add_constant (regs[rn], imm), 8,
+		       regs[rt1]);
+	  stack.store (pv_add_constant (regs[rn], imm + 8), 8,
+		       regs[rt2]);
 
 	  if (inst.operands[2].addr.writeback)
 	    regs[rn] = pv_add_constant (regs[rn], imm);
@@ -423,8 +414,8 @@ aarch64_analyze_prologue (struct gdbarch
 	      rt += AARCH64_X_REGISTER_COUNT;
 	    }
 
-	  pv_area_store (stack, pv_add_constant (regs[rn], imm),
-			 is64 ? 8 : 4, regs[rt]);
+	  stack.store (pv_add_constant (regs[rn], imm),
+		       is64 ? 8 : 4, regs[rt]);
 	  if (inst.operands[1].addr.writeback)
 	    regs[rn] = pv_add_constant (regs[rn], imm);
 	}
@@ -446,10 +437,7 @@ aarch64_analyze_prologue (struct gdbarch
     }
 
   if (cache == NULL)
-    {
-      do_cleanups (back_to);
-      return start;
-    }
+    return start;
 
   if (pv_is_register (regs[AARCH64_FP_REGNUM], AARCH64_SP_REGNUM))
     {
@@ -474,7 +462,7 @@ aarch64_analyze_prologue (struct gdbarch
     {
       CORE_ADDR offset;
 
-      if (pv_area_find_reg (stack, gdbarch, i, &offset))
+      if (stack.find_reg (gdbarch, i, &offset))
 	cache->saved_regs[i].addr = offset;
     }
 
@@ -483,12 +471,11 @@ aarch64_analyze_prologue (struct gdbarch
       int regnum = gdbarch_num_regs (gdbarch);
       CORE_ADDR offset;
 
-      if (pv_area_find_reg (stack, gdbarch, i + AARCH64_X_REGISTER_COUNT,
-			    &offset))
+      if (stack.find_reg (gdbarch, i + AARCH64_X_REGISTER_COUNT,
+			  &offset))
 	cache->saved_regs[i + regnum + AARCH64_D0_REGNUM].addr = offset;
     }
 
-  do_cleanups (back_to);
   return start;
 }
 
@@ -1777,7 +1764,7 @@ static int
 aarch64_gdb_print_insn (bfd_vma memaddr, disassemble_info *info)
 {
   info->symbols = NULL;
-  return print_insn_aarch64 (memaddr, info);
+  return default_print_insn (memaddr, info);
 }
 
 /* AArch64 BRK software debug mode instruction.
@@ -1795,7 +1782,7 @@ static void
 aarch64_extract_return_value (struct type *type, struct regcache *regs,
 			      gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regs);
+  struct gdbarch *gdbarch = regs->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
   if (TYPE_CODE (type) == TYPE_CODE_FLT)
@@ -1933,7 +1920,7 @@ static void
 aarch64_store_return_value (struct type *type, struct regcache *regs,
 			    const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regs);
+  struct gdbarch *gdbarch = regs->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
   if (TYPE_CODE (type) == TYPE_CODE_FLT)
@@ -1987,7 +1974,7 @@ aarch64_store_return_value (struct type 
       for (i = 0; i < elements; i++)
 	{
 	  int regno = AARCH64_V0_REGNUM + i;
-	  bfd_byte tmpbuf[MAX_REGISTER_SIZE];
+	  bfd_byte tmpbuf[V_REGISTER_SIZE];
 
 	  if (aarch64_debug)
 	    {
@@ -2241,7 +2228,7 @@ aarch64_pseudo_read_value (struct gdbarc
 			   struct regcache *regcache,
 			   int regnum)
 {
-  gdb_byte reg_buf[MAX_REGISTER_SIZE];
+  gdb_byte reg_buf[V_REGISTER_SIZE];
   struct value *result_value;
   gdb_byte *buf;
 
@@ -2336,7 +2323,7 @@ static void
 aarch64_pseudo_write (struct gdbarch *gdbarch, struct regcache *regcache,
 		      int regnum, const gdb_byte *buf)
 {
-  gdb_byte reg_buf[MAX_REGISTER_SIZE];
+  gdb_byte reg_buf[V_REGISTER_SIZE];
 
   /* Ensure the register buffer is zero, we want gdb writes of the
      various 'scalar' pseudo registers to behavior like architectural
@@ -2417,10 +2404,10 @@ value_of_aarch64_user_reg (struct frame_
 /* Implement the "software_single_step" gdbarch method, needed to
    single step through atomic sequences on AArch64.  */
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 aarch64_software_single_step (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order_for_code = gdbarch_byte_order_for_code (gdbarch);
   const int insn_size = 4;
   const int atomic_sequence_length = 16; /* Instruction sequence length.  */
@@ -2435,14 +2422,13 @@ aarch64_software_single_step (struct reg
   int bc_insn_count = 0; /* Conditional branch instruction count.  */
   int last_breakpoint = 0; /* Defaults to 0 (no breakpoints placed).  */
   aarch64_inst inst;
-  VEC (CORE_ADDR) *next_pcs = NULL;
 
   if (aarch64_decode_insn (insn, &inst, 1) != 0)
-    return NULL;
+    return {};
 
   /* Look for a Load Exclusive instruction which begins the sequence.  */
   if (inst.opcode->iclass != ldstexcl || bit (insn, 22) == 0)
-    return NULL;
+    return {};
 
   for (insn_count = 0; insn_count < atomic_sequence_length; ++insn_count)
     {
@@ -2451,14 +2437,14 @@ aarch64_software_single_step (struct reg
 					   byte_order_for_code);
 
       if (aarch64_decode_insn (insn, &inst, 1) != 0)
-	return NULL;
+	return {};
       /* Check if the instruction is a conditional branch.  */
       if (inst.opcode->iclass == condbranch)
 	{
 	  gdb_assert (inst.operands[0].type == AARCH64_OPND_ADDR_PCREL19);
 
 	  if (bc_insn_count >= 1)
-	    return NULL;
+	    return {};
 
 	  /* It is, so we'll try to set a breakpoint at the destination.  */
 	  breaks[1] = loc + inst.operands[0].imm.value;
@@ -2477,7 +2463,7 @@ aarch64_software_single_step (struct reg
 
   /* We didn't find a closing Store Exclusive instruction, fall back.  */
   if (!closing_insn)
-    return NULL;
+    return {};
 
   /* Insert breakpoint after the end of the atomic sequence.  */
   breaks[0] = loc + insn_size;
@@ -2489,22 +2475,24 @@ aarch64_software_single_step (struct reg
 	  || (breaks[1] >= pc && breaks[1] <= closing_insn)))
     last_breakpoint = 0;
 
+  std::vector<CORE_ADDR> next_pcs;
+
   /* Insert the breakpoint at the end of the sequence, and one at the
      destination of the conditional branch, if it exists.  */
   for (index = 0; index <= last_breakpoint; index++)
-    VEC_safe_push (CORE_ADDR, next_pcs, breaks[index]);
+    next_pcs.push_back (breaks[index]);
 
   return next_pcs;
 }
 
-struct displaced_step_closure
+struct aarch64_displaced_step_closure : public displaced_step_closure
 {
   /* It is true when condition instruction, such as B.CON, TBZ, etc,
      is being displaced stepping.  */
-  int cond;
+  int cond = 0;
 
   /* PC adjustment offset after displaced stepping.  */
-  int32_t pc_adjust;
+  int32_t pc_adjust = 0;
 };
 
 /* Data when visiting instructions for displaced stepping.  */
@@ -2522,7 +2510,7 @@ struct aarch64_displaced_step_data
   /* Registers when doing displaced stepping.  */
   struct regcache *regs;
 
-  struct displaced_step_closure *dsc;
+  aarch64_displaced_step_closure *dsc;
 };
 
 /* Implementation of aarch64_insn_visitor method "b".  */
@@ -2736,7 +2724,6 @@ aarch64_displaced_step_copy_insn (struct
 				  CORE_ADDR from, CORE_ADDR to,
 				  struct regcache *regs)
 {
-  struct displaced_step_closure *dsc = NULL;
   enum bfd_endian byte_order_for_code = gdbarch_byte_order_for_code (gdbarch);
   uint32_t insn = read_memory_unsigned_integer (from, 4, byte_order_for_code);
   struct aarch64_displaced_step_data dsd;
@@ -2752,11 +2739,12 @@ aarch64_displaced_step_copy_insn (struct
       return NULL;
     }
 
-  dsc = XCNEW (struct displaced_step_closure);
+  std::unique_ptr<aarch64_displaced_step_closure> dsc
+    (new aarch64_displaced_step_closure);
   dsd.base.insn_addr = from;
   dsd.new_addr = to;
   dsd.regs = regs;
-  dsd.dsc = dsc;
+  dsd.dsc = dsc.get ();
   dsd.insn_count = 0;
   aarch64_relocate_instruction (insn, &visitor,
 				(struct aarch64_insn_data *) &dsd);
@@ -2782,21 +2770,22 @@ aarch64_displaced_step_copy_insn (struct
     }
   else
     {
-      xfree (dsc);
       dsc = NULL;
     }
 
-  return dsc;
+  return dsc.release ();
 }
 
 /* Implement the "displaced_step_fixup" gdbarch method.  */
 
 void
 aarch64_displaced_step_fixup (struct gdbarch *gdbarch,
-			      struct displaced_step_closure *dsc,
+			      struct displaced_step_closure *dsc_,
 			      CORE_ADDR from, CORE_ADDR to,
 			      struct regcache *regs)
 {
+  aarch64_displaced_step_closure *dsc = (aarch64_displaced_step_closure *) dsc_;
+
   if (dsc->cond)
     {
       ULONGEST pc;
@@ -2836,6 +2825,20 @@ aarch64_displaced_step_hw_singlestep (st
   return 1;
 }
 
+/* Get the correct target description.  */
+
+const target_desc *
+aarch64_read_description ()
+{
+  static target_desc *aarch64_tdesc = NULL;
+  target_desc **tdesc = &aarch64_tdesc;
+
+  if (*tdesc == NULL)
+    *tdesc = aarch64_create_target_description ();
+
+  return *tdesc;
+}
+
 /* 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.
@@ -2859,7 +2862,7 @@ aarch64_gdbarch_init (struct gdbarch_inf
 
   /* Ensure we always have a target descriptor.  */
   if (!tdesc_has_registers (tdesc))
-    tdesc = tdesc_aarch64;
+    tdesc = aarch64_read_description ();
 
   gdb_assert (tdesc);
 
@@ -2967,6 +2970,11 @@ aarch64_gdbarch_init (struct gdbarch_inf
   set_tdesc_pseudo_register_reggroup_p (gdbarch,
 					aarch64_pseudo_register_reggroup_p);
 
+  /* The top byte of an address is known as the "tag" and is
+     ignored by the kernel, the hardware, etc. and can be regarded
+     as additional data associated with the address.  */
+  set_gdbarch_significant_addr_bit (gdbarch, 56);
+
   /* ABI */
   set_gdbarch_short_bit (gdbarch, 16);
   set_gdbarch_int_bit (gdbarch, 32);
@@ -2996,7 +3004,7 @@ aarch64_gdbarch_init (struct gdbarch_inf
 
   /* Hook in the ABI-specific overrides, if they have been registered.  */
   info.target_desc = tdesc;
-  info.tdep_info = (void *) tdesc_data;
+  info.tdesc_data = tdesc_data;
   gdbarch_init_osabi (info, gdbarch);
 
   dwarf2_frame_set_init_reg (gdbarch, aarch64_dwarf2_frame_init_reg);
@@ -3046,17 +3054,12 @@ static void aarch64_process_record_test 
 }
 #endif
 
-/* Suppress warning from -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_aarch64_tdep;
-
 void
 _initialize_aarch64_tdep (void)
 {
   gdbarch_register (bfd_arch_aarch64, aarch64_gdbarch_init,
 		    aarch64_dump_tdep);
 
-  initialize_tdesc_aarch64 ();
-
   /* Debug this file's internals.  */
   add_setshow_boolean_cmd ("aarch64", class_maintenance, &aarch64_debug, _("\
 Set AArch64 debugging."), _("\
@@ -3067,8 +3070,12 @@ When on, AArch64 specific debugging is e
 			    &setdebuglist, &showdebuglist);
 
 #if GDB_SELF_TEST
-  register_self_test (selftests::aarch64_analyze_prologue_test);
-  register_self_test (selftests::aarch64_process_record_test);
+  selftests::register_test ("aarch64-analyze-prologue",
+			    selftests::aarch64_analyze_prologue_test);
+  selftests::register_test ("aarch64-process-record",
+			    selftests::aarch64_process_record_test);
+  selftests::record_xml_tdesc ("aarch64.xml",
+			       aarch64_create_target_description ());
 #endif
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-tdep.h ./gdb/aarch64-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aarch64-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/aarch64-tdep.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common target dependent code for GDB on AArch64 systems.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GDB.
@@ -22,6 +22,8 @@
 #ifndef AARCH64_TDEP_H
 #define AARCH64_TDEP_H
 
+#include "arch/aarch64.h"
+
 /* Forward declarations.  */
 struct gdbarch;
 struct regset;
@@ -31,32 +33,6 @@ struct regset;
 #define AARCH64_DWARF_SP  31
 #define AARCH64_DWARF_V0  64
 
-/* Register numbers of various important registers.  */
-enum aarch64_regnum
-{
-  AARCH64_X0_REGNUM,		/* First integer register */
-
-  /* Frame register in AArch64 code, if used.  */
-  AARCH64_FP_REGNUM = AARCH64_X0_REGNUM + 29,
-  AARCH64_LR_REGNUM = AARCH64_X0_REGNUM + 30,	/* Return address */
-  AARCH64_SP_REGNUM,		/* Stack pointer */
-  AARCH64_PC_REGNUM,		/* Program counter */
-  AARCH64_CPSR_REGNUM,		/* Contains status register */
-  AARCH64_V0_REGNUM,		/* First floating point / vector register */
-
-  /* Last floating point / vector register */
-  AARCH64_V31_REGNUM = AARCH64_V0_REGNUM + 31,
-  AARCH64_FPSR_REGNUM,		/* Floating point status register */
-  AARCH64_FPCR_REGNUM,		/* Floating point control register */
-
-  /* Other useful registers.  */
-
-  /* Last integer-like argument */
-  AARCH64_LAST_X_ARG_REGNUM = AARCH64_X0_REGNUM + 7,
-  AARCH64_STRUCT_RETURN_REGNUM = AARCH64_X0_REGNUM + 8,
-  AARCH64_LAST_V_ARG_REGNUM = AARCH64_V0_REGNUM + 7
-};
-
 /* Size of integer registers.  */
 #define X_REGISTER_SIZE  8
 #define B_REGISTER_SIZE  1
@@ -99,7 +75,7 @@ struct gdbarch_tdep
   int (*aarch64_syscall_record) (struct regcache *regcache, unsigned long svc_number);
 };
 
-extern struct target_desc *tdesc_aarch64;
+const target_desc *aarch64_read_description ();
 
 extern int aarch64_process_record (struct gdbarch *gdbarch,
                                struct regcache *regcache, CORE_ADDR addr);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/acinclude.m4 ./gdb/acinclude.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/acinclude.m4	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/acinclude.m4	2018-01-09 02:04:56.000000000 +0000
@@ -75,7 +75,7 @@ m4_include(ax_cxx_compile_stdcxx.m4)
 ## From Franc,ois Pinard                     ##
 ## ----------------------------------------- ##
 
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aclocal.m4 ./gdb/aclocal.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aclocal.m4	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/aclocal.m4	2018-01-09 02:04:56.000000000 +0000
@@ -1,7 +1,8 @@
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
+# Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -13,12 +14,14 @@
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
 # $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
 # `$srcdir', `$srcdir/..', or `$srcdir/../..'.
@@ -100,12 +103,15 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 2001, 2003, 2005, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
+# Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
@@ -124,8 +130,8 @@ AC_SUBST(install_sh)])
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
+# 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -145,7 +151,7 @@ AC_DEFUN([AM_MAINTAINER_MODE],
        [disable], [m4_define([am_maintainer_other], [enable])],
        [m4_define([am_maintainer_other], [enable])
         m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
   dnl maintainer-mode's default is 'disable' unless 'enable' is passed
   AC_ARG_ENABLE([maintainer-mode],
 [  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
@@ -161,12 +167,14 @@ AC_MSG_CHECKING([whether to am_maintaine
 
 AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_PROG_INSTALL_STRIP
 # ---------------------
 # One issue with vendor `install' (even GNU) is that you can't
@@ -189,13 +197,13 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
+# serial 3
 
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
@@ -204,7 +212,7 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
 AC_DEFUN([_AM_SUBST_NOTMAKE])
 
 # AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
+# --------------------------
 # Public sister of _AM_SUBST_NOTMAKE.
 AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/acx_configure_dir.m4 ./gdb/acx_configure_dir.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/acx_configure_dir.m4	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/acx_configure_dir.m4	2018-01-09 02:04:56.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2017 Free Software Foundation, Inc.
+# Copyright (C) 1992-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-exp.c ./gdb/ada-exp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-exp.c	2018-01-02 02:06:28.000000000 +0000
+++ ./gdb/ada-exp.c	2018-01-09 02:08:06.000000000 +0000
@@ -142,10 +142,6 @@ static struct type *type_long (struct pa
 
 static struct type *type_long_long (struct parser_state *);
 
-static struct type *type_float (struct parser_state *);
-
-static struct type *type_double (struct parser_state *);
-
 static struct type *type_long_double (struct parser_state *);
 
 static struct type *type_char (struct parser_state *);
@@ -157,7 +153,7 @@ static struct type *type_system_address 
 
 
 /* Line 189 of yacc.c  */
-#line 161 "ada-exp.c"
+#line 157 "ada-exp.c"
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
@@ -288,7 +284,7 @@ typedef union YYSTYPE
 {
 
 /* Line 214 of yacc.c  */
-#line 124 "ada-exp.y"
+#line 120 "ada-exp.y"
 
     LONGEST lval;
     struct {
@@ -296,7 +292,7 @@ typedef union YYSTYPE
       struct type *type;
     } typed_val;
     struct {
-      DOUBLEST dval;
+      gdb_byte val[16];
       struct type *type;
     } typed_val_float;
     struct type *tval;
@@ -307,7 +303,7 @@ typedef union YYSTYPE
 
 
 /* Line 214 of yacc.c  */
-#line 311 "ada-exp.c"
+#line 307 "ada-exp.c"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -319,7 +315,7 @@ typedef union YYSTYPE
 
 
 /* Line 264 of yacc.c  */
-#line 323 "ada-exp.c"
+#line 319 "ada-exp.c"
 
 #ifdef short
 # undef short
@@ -659,19 +655,19 @@ static const yytype_int8 yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   189,   189,   193,   194,   196,   201,   205,   210,   216,
-     235,   235,   247,   251,   253,   261,   272,   282,   286,   289,
-     292,   296,   300,   304,   308,   311,   313,   315,   317,   321,
-     334,   338,   342,   346,   350,   354,   358,   362,   366,   370,
-     373,   377,   381,   385,   387,   392,   400,   404,   410,   421,
-     425,   429,   433,   434,   435,   436,   437,   438,   442,   444,
-     449,   451,   456,   458,   463,   465,   469,   471,   483,   485,
-     492,   495,   498,   501,   503,   505,   507,   509,   511,   513,
-     517,   519,   524,   534,   536,   543,   547,   555,   563,   567,
-     573,   575,   579,   583,   585,   587,   595,   606,   608,   613,
-     622,   623,   629,   634,   640,   649,   650,   651,   655,   660,
-     675,   674,   677,   680,   679,   686,   685,   688,   691,   690,
-     698,   700,   702
+       0,   185,   185,   189,   190,   192,   197,   201,   206,   212,
+     231,   231,   243,   247,   249,   257,   268,   278,   282,   285,
+     288,   292,   296,   300,   304,   307,   309,   311,   313,   317,
+     330,   334,   338,   342,   346,   350,   354,   358,   362,   366,
+     369,   373,   377,   381,   383,   388,   396,   400,   406,   417,
+     421,   425,   429,   430,   431,   432,   433,   434,   438,   440,
+     445,   447,   452,   454,   459,   461,   465,   467,   479,   481,
+     488,   491,   494,   497,   499,   501,   503,   505,   507,   509,
+     513,   515,   520,   530,   532,   539,   543,   551,   559,   563,
+     569,   571,   575,   579,   581,   583,   591,   602,   604,   609,
+     618,   619,   625,   630,   636,   645,   646,   647,   651,   656,
+     671,   670,   673,   676,   675,   682,   681,   684,   687,   686,
+     694,   696,   698
 };
 #endif
 
@@ -1840,28 +1836,28 @@ yyreduce:
         case 4:
 
 /* Line 1455 of yacc.c  */
-#line 195 "ada-exp.y"
+#line 191 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_COMMA); }
     break;
 
   case 5:
 
 /* Line 1455 of yacc.c  */
-#line 197 "ada-exp.y"
+#line 193 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_ASSIGN); }
     break;
 
   case 6:
 
 /* Line 1455 of yacc.c  */
-#line 202 "ada-exp.y"
+#line 198 "ada-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_IND); }
     break;
 
   case 7:
 
 /* Line 1455 of yacc.c  */
-#line 206 "ada-exp.y"
+#line 202 "ada-exp.y"
     { write_exp_op_with_string (pstate, STRUCTOP_STRUCT,
 						    (yyvsp[(2) - (2)].sval)); }
     break;
@@ -1869,7 +1865,7 @@ yyreduce:
   case 8:
 
 /* Line 1455 of yacc.c  */
-#line 211 "ada-exp.y"
+#line 207 "ada-exp.y"
     {
 			  write_exp_elt_opcode (pstate, OP_FUNCALL);
 			  write_exp_elt_longcst (pstate, (yyvsp[(3) - (4)].lval));
@@ -1880,7 +1876,7 @@ yyreduce:
   case 9:
 
 /* Line 1455 of yacc.c  */
-#line 217 "ada-exp.y"
+#line 213 "ada-exp.y"
     {
 			  if ((yyvsp[(1) - (4)].tval) != NULL)
 			    {
@@ -1902,14 +1898,14 @@ yyreduce:
   case 10:
 
 /* Line 1455 of yacc.c  */
-#line 235 "ada-exp.y"
+#line 231 "ada-exp.y"
     { type_qualifier = (yyvsp[(1) - (3)].tval); }
     break;
 
   case 11:
 
 /* Line 1455 of yacc.c  */
-#line 237 "ada-exp.y"
+#line 233 "ada-exp.y"
     {
 			  if ((yyvsp[(1) - (7)].tval) == NULL)
 			    error (_("Type required for qualification"));
@@ -1923,21 +1919,21 @@ yyreduce:
   case 12:
 
 /* Line 1455 of yacc.c  */
-#line 247 "ada-exp.y"
+#line 243 "ada-exp.y"
     { (yyval.tval) = type_qualifier; }
     break;
 
   case 13:
 
 /* Line 1455 of yacc.c  */
-#line 252 "ada-exp.y"
+#line 248 "ada-exp.y"
     { write_exp_elt_opcode (pstate, TERNOP_SLICE); }
     break;
 
   case 14:
 
 /* Line 1455 of yacc.c  */
-#line 254 "ada-exp.y"
+#line 250 "ada-exp.y"
     { if ((yyvsp[(1) - (6)].tval) == NULL) 
                             write_exp_elt_opcode (pstate, TERNOP_SLICE);
 			  else
@@ -1948,14 +1944,14 @@ yyreduce:
   case 15:
 
 /* Line 1455 of yacc.c  */
-#line 261 "ada-exp.y"
+#line 257 "ada-exp.y"
     { }
     break;
 
   case 16:
 
 /* Line 1455 of yacc.c  */
-#line 273 "ada-exp.y"
+#line 269 "ada-exp.y"
     { if ((yyvsp[(1) - (1)].tval) != NULL)
 			    {
 			      write_exp_elt_opcode (pstate, OP_TYPE);
@@ -1968,77 +1964,77 @@ yyreduce:
   case 17:
 
 /* Line 1455 of yacc.c  */
-#line 283 "ada-exp.y"
+#line 279 "ada-exp.y"
     { write_dollar_variable (pstate, (yyvsp[(1) - (1)].sval)); }
     break;
 
   case 20:
 
 /* Line 1455 of yacc.c  */
-#line 293 "ada-exp.y"
+#line 289 "ada-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_NEG); }
     break;
 
   case 21:
 
 /* Line 1455 of yacc.c  */
-#line 297 "ada-exp.y"
+#line 293 "ada-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_PLUS); }
     break;
 
   case 22:
 
 /* Line 1455 of yacc.c  */
-#line 301 "ada-exp.y"
+#line 297 "ada-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT); }
     break;
 
   case 23:
 
 /* Line 1455 of yacc.c  */
-#line 305 "ada-exp.y"
+#line 301 "ada-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_ABS); }
     break;
 
   case 24:
 
 /* Line 1455 of yacc.c  */
-#line 308 "ada-exp.y"
+#line 304 "ada-exp.y"
     { (yyval.lval) = 0; }
     break;
 
   case 25:
 
 /* Line 1455 of yacc.c  */
-#line 312 "ada-exp.y"
+#line 308 "ada-exp.y"
     { (yyval.lval) = 1; }
     break;
 
   case 26:
 
 /* Line 1455 of yacc.c  */
-#line 314 "ada-exp.y"
+#line 310 "ada-exp.y"
     { (yyval.lval) = 1; }
     break;
 
   case 27:
 
 /* Line 1455 of yacc.c  */
-#line 316 "ada-exp.y"
+#line 312 "ada-exp.y"
     { (yyval.lval) = (yyvsp[(1) - (3)].lval) + 1; }
     break;
 
   case 28:
 
 /* Line 1455 of yacc.c  */
-#line 318 "ada-exp.y"
+#line 314 "ada-exp.y"
     { (yyval.lval) = (yyvsp[(1) - (5)].lval) + 1; }
     break;
 
   case 29:
 
 /* Line 1455 of yacc.c  */
-#line 323 "ada-exp.y"
+#line 319 "ada-exp.y"
     { 
 			  if ((yyvsp[(2) - (4)].tval) == NULL)
 			    error (_("Type required within braces in coercion"));
@@ -2051,98 +2047,98 @@ yyreduce:
   case 30:
 
 /* Line 1455 of yacc.c  */
-#line 335 "ada-exp.y"
+#line 331 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_EXP); }
     break;
 
   case 31:
 
 /* Line 1455 of yacc.c  */
-#line 339 "ada-exp.y"
+#line 335 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_MUL); }
     break;
 
   case 32:
 
 /* Line 1455 of yacc.c  */
-#line 343 "ada-exp.y"
+#line 339 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_DIV); }
     break;
 
   case 33:
 
 /* Line 1455 of yacc.c  */
-#line 347 "ada-exp.y"
+#line 343 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_REM); }
     break;
 
   case 34:
 
 /* Line 1455 of yacc.c  */
-#line 351 "ada-exp.y"
+#line 347 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_MOD); }
     break;
 
   case 35:
 
 /* Line 1455 of yacc.c  */
-#line 355 "ada-exp.y"
+#line 351 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_REPEAT); }
     break;
 
   case 36:
 
 /* Line 1455 of yacc.c  */
-#line 359 "ada-exp.y"
+#line 355 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_ADD); }
     break;
 
   case 37:
 
 /* Line 1455 of yacc.c  */
-#line 363 "ada-exp.y"
+#line 359 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_CONCAT); }
     break;
 
   case 38:
 
 /* Line 1455 of yacc.c  */
-#line 367 "ada-exp.y"
+#line 363 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_SUB); }
     break;
 
   case 40:
 
 /* Line 1455 of yacc.c  */
-#line 374 "ada-exp.y"
+#line 370 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_EQUAL); }
     break;
 
   case 41:
 
 /* Line 1455 of yacc.c  */
-#line 378 "ada-exp.y"
+#line 374 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_NOTEQUAL); }
     break;
 
   case 42:
 
 /* Line 1455 of yacc.c  */
-#line 382 "ada-exp.y"
+#line 378 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LEQ); }
     break;
 
   case 43:
 
 /* Line 1455 of yacc.c  */
-#line 386 "ada-exp.y"
+#line 382 "ada-exp.y"
     { write_exp_elt_opcode (pstate, TERNOP_IN_RANGE); }
     break;
 
   case 44:
 
 /* Line 1455 of yacc.c  */
-#line 388 "ada-exp.y"
+#line 384 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_IN_BOUNDS);
 			  write_exp_elt_longcst (pstate, (LONGEST) (yyvsp[(5) - (5)].lval));
 			  write_exp_elt_opcode (pstate, BINOP_IN_BOUNDS);
@@ -2152,7 +2148,7 @@ yyreduce:
   case 45:
 
 /* Line 1455 of yacc.c  */
-#line 393 "ada-exp.y"
+#line 389 "ada-exp.y"
     { 
 			  if ((yyvsp[(3) - (3)].tval) == NULL)
 			    error (_("Right operand of 'in' must be type"));
@@ -2165,7 +2161,7 @@ yyreduce:
   case 46:
 
 /* Line 1455 of yacc.c  */
-#line 401 "ada-exp.y"
+#line 397 "ada-exp.y"
     { write_exp_elt_opcode (pstate, TERNOP_IN_RANGE);
 		          write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT);
 			}
@@ -2174,7 +2170,7 @@ yyreduce:
   case 47:
 
 /* Line 1455 of yacc.c  */
-#line 405 "ada-exp.y"
+#line 401 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_IN_BOUNDS);
 			  write_exp_elt_longcst (pstate, (LONGEST) (yyvsp[(6) - (6)].lval));
 			  write_exp_elt_opcode (pstate, BINOP_IN_BOUNDS);
@@ -2185,7 +2181,7 @@ yyreduce:
   case 48:
 
 /* Line 1455 of yacc.c  */
-#line 411 "ada-exp.y"
+#line 407 "ada-exp.y"
     { 
 			  if ((yyvsp[(4) - (4)].tval) == NULL)
 			    error (_("Right operand of 'in' must be type"));
@@ -2199,105 +2195,105 @@ yyreduce:
   case 49:
 
 /* Line 1455 of yacc.c  */
-#line 422 "ada-exp.y"
+#line 418 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_GEQ); }
     break;
 
   case 50:
 
 /* Line 1455 of yacc.c  */
-#line 426 "ada-exp.y"
+#line 422 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LESS); }
     break;
 
   case 51:
 
 /* Line 1455 of yacc.c  */
-#line 430 "ada-exp.y"
+#line 426 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_GTR); }
     break;
 
   case 58:
 
 /* Line 1455 of yacc.c  */
-#line 443 "ada-exp.y"
+#line 439 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_AND); }
     break;
 
   case 59:
 
 /* Line 1455 of yacc.c  */
-#line 445 "ada-exp.y"
+#line 441 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_AND); }
     break;
 
   case 60:
 
 /* Line 1455 of yacc.c  */
-#line 450 "ada-exp.y"
+#line 446 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LOGICAL_AND); }
     break;
 
   case 61:
 
 /* Line 1455 of yacc.c  */
-#line 452 "ada-exp.y"
+#line 448 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LOGICAL_AND); }
     break;
 
   case 62:
 
 /* Line 1455 of yacc.c  */
-#line 457 "ada-exp.y"
+#line 453 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_IOR); }
     break;
 
   case 63:
 
 /* Line 1455 of yacc.c  */
-#line 459 "ada-exp.y"
+#line 455 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_IOR); }
     break;
 
   case 64:
 
 /* Line 1455 of yacc.c  */
-#line 464 "ada-exp.y"
+#line 460 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LOGICAL_OR); }
     break;
 
   case 65:
 
 /* Line 1455 of yacc.c  */
-#line 466 "ada-exp.y"
+#line 462 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LOGICAL_OR); }
     break;
 
   case 66:
 
 /* Line 1455 of yacc.c  */
-#line 470 "ada-exp.y"
+#line 466 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_XOR); }
     break;
 
   case 67:
 
 /* Line 1455 of yacc.c  */
-#line 472 "ada-exp.y"
+#line 468 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_XOR); }
     break;
 
   case 68:
 
 /* Line 1455 of yacc.c  */
-#line 484 "ada-exp.y"
+#line 480 "ada-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_ADDR); }
     break;
 
   case 69:
 
 /* Line 1455 of yacc.c  */
-#line 486 "ada-exp.y"
+#line 482 "ada-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_ADDR);
 			  write_exp_elt_opcode (pstate, UNOP_CAST);
 			  write_exp_elt_type (pstate,
@@ -2309,7 +2305,7 @@ yyreduce:
   case 70:
 
 /* Line 1455 of yacc.c  */
-#line 493 "ada-exp.y"
+#line 489 "ada-exp.y"
     { write_int (pstate, (yyvsp[(3) - (3)].lval), type_int (pstate));
 			  write_exp_elt_opcode (pstate, OP_ATR_FIRST); }
     break;
@@ -2317,7 +2313,7 @@ yyreduce:
   case 71:
 
 /* Line 1455 of yacc.c  */
-#line 496 "ada-exp.y"
+#line 492 "ada-exp.y"
     { write_int (pstate, (yyvsp[(3) - (3)].lval), type_int (pstate));
 			  write_exp_elt_opcode (pstate, OP_ATR_LAST); }
     break;
@@ -2325,7 +2321,7 @@ yyreduce:
   case 72:
 
 /* Line 1455 of yacc.c  */
-#line 499 "ada-exp.y"
+#line 495 "ada-exp.y"
     { write_int (pstate, (yyvsp[(3) - (3)].lval), type_int (pstate));
 			  write_exp_elt_opcode (pstate, OP_ATR_LENGTH); }
     break;
@@ -2333,70 +2329,70 @@ yyreduce:
   case 73:
 
 /* Line 1455 of yacc.c  */
-#line 502 "ada-exp.y"
+#line 498 "ada-exp.y"
     { write_exp_elt_opcode (pstate, OP_ATR_SIZE); }
     break;
 
   case 74:
 
 /* Line 1455 of yacc.c  */
-#line 504 "ada-exp.y"
+#line 500 "ada-exp.y"
     { write_exp_elt_opcode (pstate, OP_ATR_TAG); }
     break;
 
   case 75:
 
 /* Line 1455 of yacc.c  */
-#line 506 "ada-exp.y"
+#line 502 "ada-exp.y"
     { write_exp_elt_opcode (pstate, OP_ATR_MIN); }
     break;
 
   case 76:
 
 /* Line 1455 of yacc.c  */
-#line 508 "ada-exp.y"
+#line 504 "ada-exp.y"
     { write_exp_elt_opcode (pstate, OP_ATR_MAX); }
     break;
 
   case 77:
 
 /* Line 1455 of yacc.c  */
-#line 510 "ada-exp.y"
+#line 506 "ada-exp.y"
     { write_exp_elt_opcode (pstate, OP_ATR_POS); }
     break;
 
   case 78:
 
 /* Line 1455 of yacc.c  */
-#line 512 "ada-exp.y"
+#line 508 "ada-exp.y"
     { write_exp_elt_opcode (pstate, OP_ATR_VAL); }
     break;
 
   case 79:
 
 /* Line 1455 of yacc.c  */
-#line 514 "ada-exp.y"
+#line 510 "ada-exp.y"
     { write_exp_elt_opcode (pstate, OP_ATR_MODULUS); }
     break;
 
   case 80:
 
 /* Line 1455 of yacc.c  */
-#line 518 "ada-exp.y"
+#line 514 "ada-exp.y"
     { (yyval.lval) = 1; }
     break;
 
   case 81:
 
 /* Line 1455 of yacc.c  */
-#line 520 "ada-exp.y"
+#line 516 "ada-exp.y"
     { (yyval.lval) = (yyvsp[(2) - (3)].typed_val).val; }
     break;
 
   case 82:
 
 /* Line 1455 of yacc.c  */
-#line 525 "ada-exp.y"
+#line 521 "ada-exp.y"
     { 
 			  if ((yyvsp[(1) - (1)].tval) == NULL)
 			    error (_("Prefix must be type"));
@@ -2408,7 +2404,7 @@ yyreduce:
   case 84:
 
 /* Line 1455 of yacc.c  */
-#line 536 "ada-exp.y"
+#line 532 "ada-exp.y"
     { write_exp_elt_opcode (pstate, OP_TYPE);
 			  write_exp_elt_type (pstate,
 					  parse_type (pstate)->builtin_void);
@@ -2418,14 +2414,14 @@ yyreduce:
   case 85:
 
 /* Line 1455 of yacc.c  */
-#line 544 "ada-exp.y"
+#line 540 "ada-exp.y"
     { write_int (pstate, (LONGEST) (yyvsp[(1) - (1)].typed_val).val, (yyvsp[(1) - (1)].typed_val).type); }
     break;
 
   case 86:
 
 /* Line 1455 of yacc.c  */
-#line 548 "ada-exp.y"
+#line 544 "ada-exp.y"
     { write_int (pstate,
 			       convert_char_literal (type_qualifier, (yyvsp[(1) - (1)].typed_val).val),
 			       (type_qualifier == NULL) 
@@ -2436,25 +2432,25 @@ yyreduce:
   case 87:
 
 /* Line 1455 of yacc.c  */
-#line 556 "ada-exp.y"
-    { write_exp_elt_opcode (pstate, OP_DOUBLE);
+#line 552 "ada-exp.y"
+    { write_exp_elt_opcode (pstate, OP_FLOAT);
 			  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].typed_val_float).type);
-			  write_exp_elt_dblcst (pstate, (yyvsp[(1) - (1)].typed_val_float).dval);
-			  write_exp_elt_opcode (pstate, OP_DOUBLE);
+			  write_exp_elt_floatcst (pstate, (yyvsp[(1) - (1)].typed_val_float).val);
+			  write_exp_elt_opcode (pstate, OP_FLOAT);
 			}
     break;
 
   case 88:
 
 /* Line 1455 of yacc.c  */
-#line 564 "ada-exp.y"
+#line 560 "ada-exp.y"
     { write_int (pstate, 0, type_int (pstate)); }
     break;
 
   case 89:
 
 /* Line 1455 of yacc.c  */
-#line 568 "ada-exp.y"
+#line 564 "ada-exp.y"
     { 
 			  write_exp_op_with_string (pstate, OP_STRING, (yyvsp[(1) - (1)].sval));
 			}
@@ -2463,42 +2459,42 @@ yyreduce:
   case 90:
 
 /* Line 1455 of yacc.c  */
-#line 574 "ada-exp.y"
+#line 570 "ada-exp.y"
     { write_int (pstate, 1, type_boolean (pstate)); }
     break;
 
   case 91:
 
 /* Line 1455 of yacc.c  */
-#line 576 "ada-exp.y"
+#line 572 "ada-exp.y"
     { write_int (pstate, 0, type_boolean (pstate)); }
     break;
 
   case 92:
 
 /* Line 1455 of yacc.c  */
-#line 580 "ada-exp.y"
+#line 576 "ada-exp.y"
     { error (_("NEW not implemented.")); }
     break;
 
   case 93:
 
 /* Line 1455 of yacc.c  */
-#line 584 "ada-exp.y"
+#line 580 "ada-exp.y"
     { (yyval.tval) = write_var_or_type (pstate, NULL, (yyvsp[(1) - (1)].sval)); }
     break;
 
   case 94:
 
 /* Line 1455 of yacc.c  */
-#line 586 "ada-exp.y"
+#line 582 "ada-exp.y"
     { (yyval.tval) = write_var_or_type (pstate, (yyvsp[(1) - (2)].bval), (yyvsp[(2) - (2)].sval)); }
     break;
 
   case 95:
 
 /* Line 1455 of yacc.c  */
-#line 588 "ada-exp.y"
+#line 584 "ada-exp.y"
     { 
 			  (yyval.tval) = write_var_or_type (pstate, NULL, (yyvsp[(1) - (2)].sval));
 			  if ((yyval.tval) == NULL)
@@ -2511,7 +2507,7 @@ yyreduce:
   case 96:
 
 /* Line 1455 of yacc.c  */
-#line 596 "ada-exp.y"
+#line 592 "ada-exp.y"
     { 
 			  (yyval.tval) = write_var_or_type (pstate, (yyvsp[(1) - (3)].bval), (yyvsp[(2) - (3)].sval));
 			  if ((yyval.tval) == NULL)
@@ -2524,21 +2520,21 @@ yyreduce:
   case 97:
 
 /* Line 1455 of yacc.c  */
-#line 607 "ada-exp.y"
+#line 603 "ada-exp.y"
     { (yyval.bval) = block_lookup (NULL, (yyvsp[(1) - (2)].sval).ptr); }
     break;
 
   case 98:
 
 /* Line 1455 of yacc.c  */
-#line 609 "ada-exp.y"
+#line 605 "ada-exp.y"
     { (yyval.bval) = block_lookup ((yyvsp[(1) - (3)].bval), (yyvsp[(2) - (3)].sval).ptr); }
     break;
 
   case 99:
 
 /* Line 1455 of yacc.c  */
-#line 614 "ada-exp.y"
+#line 610 "ada-exp.y"
     {
 			  write_exp_elt_opcode (pstate, OP_AGGREGATE);
 			  write_exp_elt_longcst (pstate, (yyvsp[(2) - (3)].lval));
@@ -2549,14 +2545,14 @@ yyreduce:
   case 100:
 
 /* Line 1455 of yacc.c  */
-#line 622 "ada-exp.y"
+#line 618 "ada-exp.y"
     { (yyval.lval) = (yyvsp[(1) - (1)].lval); }
     break;
 
   case 101:
 
 /* Line 1455 of yacc.c  */
-#line 624 "ada-exp.y"
+#line 620 "ada-exp.y"
     { write_exp_elt_opcode (pstate, OP_POSITIONAL);
 			  write_exp_elt_longcst (pstate, (yyvsp[(1) - (2)].lval));
 			  write_exp_elt_opcode (pstate, OP_POSITIONAL);
@@ -2567,14 +2563,14 @@ yyreduce:
   case 102:
 
 /* Line 1455 of yacc.c  */
-#line 630 "ada-exp.y"
+#line 626 "ada-exp.y"
     { (yyval.lval) = (yyvsp[(1) - (2)].lval) + (yyvsp[(2) - (2)].lval); }
     break;
 
   case 103:
 
 /* Line 1455 of yacc.c  */
-#line 635 "ada-exp.y"
+#line 631 "ada-exp.y"
     { write_exp_elt_opcode (pstate, OP_POSITIONAL);
 			  write_exp_elt_longcst (pstate, 0);
 			  write_exp_elt_opcode (pstate, OP_POSITIONAL);
@@ -2585,7 +2581,7 @@ yyreduce:
   case 104:
 
 /* Line 1455 of yacc.c  */
-#line 641 "ada-exp.y"
+#line 637 "ada-exp.y"
     { write_exp_elt_opcode (pstate, OP_POSITIONAL);
 			  write_exp_elt_longcst (pstate, (yyvsp[(1) - (3)].lval));
 			  write_exp_elt_opcode (pstate, OP_POSITIONAL);
@@ -2596,35 +2592,35 @@ yyreduce:
   case 105:
 
 /* Line 1455 of yacc.c  */
-#line 649 "ada-exp.y"
+#line 645 "ada-exp.y"
     { (yyval.lval) = 1; }
     break;
 
   case 106:
 
 /* Line 1455 of yacc.c  */
-#line 650 "ada-exp.y"
+#line 646 "ada-exp.y"
     { (yyval.lval) = 1; }
     break;
 
   case 107:
 
 /* Line 1455 of yacc.c  */
-#line 652 "ada-exp.y"
+#line 648 "ada-exp.y"
     { (yyval.lval) = (yyvsp[(3) - (3)].lval) + 1; }
     break;
 
   case 108:
 
 /* Line 1455 of yacc.c  */
-#line 656 "ada-exp.y"
+#line 652 "ada-exp.y"
     { write_exp_elt_opcode (pstate, OP_OTHERS); }
     break;
 
   case 109:
 
 /* Line 1455 of yacc.c  */
-#line 661 "ada-exp.y"
+#line 657 "ada-exp.y"
     {
 			  write_exp_elt_opcode (pstate, OP_CHOICES);
 			  write_exp_elt_longcst (pstate, (yyvsp[(1) - (1)].lval));
@@ -2635,28 +2631,28 @@ yyreduce:
   case 110:
 
 /* Line 1455 of yacc.c  */
-#line 675 "ada-exp.y"
+#line 671 "ada-exp.y"
     { write_name_assoc (pstate, (yyvsp[(1) - (2)].sval)); }
     break;
 
   case 111:
 
 /* Line 1455 of yacc.c  */
-#line 676 "ada-exp.y"
+#line 672 "ada-exp.y"
     { (yyval.lval) = 1; }
     break;
 
   case 112:
 
 /* Line 1455 of yacc.c  */
-#line 678 "ada-exp.y"
+#line 674 "ada-exp.y"
     { (yyval.lval) = 1; }
     break;
 
   case 113:
 
 /* Line 1455 of yacc.c  */
-#line 680 "ada-exp.y"
+#line 676 "ada-exp.y"
     { write_exp_elt_opcode (pstate, OP_DISCRETE_RANGE);
 			  write_exp_op_with_string (pstate, OP_NAME,
 						    empty_stoken);
@@ -2666,70 +2662,70 @@ yyreduce:
   case 114:
 
 /* Line 1455 of yacc.c  */
-#line 684 "ada-exp.y"
+#line 680 "ada-exp.y"
     { (yyval.lval) = 1; }
     break;
 
   case 115:
 
 /* Line 1455 of yacc.c  */
-#line 686 "ada-exp.y"
+#line 682 "ada-exp.y"
     { write_name_assoc (pstate, (yyvsp[(1) - (2)].sval)); }
     break;
 
   case 116:
 
 /* Line 1455 of yacc.c  */
-#line 687 "ada-exp.y"
+#line 683 "ada-exp.y"
     { (yyval.lval) = (yyvsp[(4) - (4)].lval) + 1; }
     break;
 
   case 117:
 
 /* Line 1455 of yacc.c  */
-#line 689 "ada-exp.y"
+#line 685 "ada-exp.y"
     { (yyval.lval) = (yyvsp[(3) - (3)].lval) + 1; }
     break;
 
   case 118:
 
 /* Line 1455 of yacc.c  */
-#line 691 "ada-exp.y"
+#line 687 "ada-exp.y"
     { write_exp_elt_opcode (pstate, OP_DISCRETE_RANGE); }
     break;
 
   case 119:
 
 /* Line 1455 of yacc.c  */
-#line 692 "ada-exp.y"
+#line 688 "ada-exp.y"
     { (yyval.lval) = (yyvsp[(6) - (6)].lval) + 1; }
     break;
 
   case 120:
 
 /* Line 1455 of yacc.c  */
-#line 699 "ada-exp.y"
+#line 695 "ada-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_IND); }
     break;
 
   case 121:
 
 /* Line 1455 of yacc.c  */
-#line 701 "ada-exp.y"
+#line 697 "ada-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_ADDR); }
     break;
 
   case 122:
 
 /* Line 1455 of yacc.c  */
-#line 703 "ada-exp.y"
+#line 699 "ada-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_SUBSCRIPT); }
     break;
 
 
 
 /* Line 1455 of yacc.c  */
-#line 2734 "ada-exp.c"
+#line 2730 "ada-exp.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2941,7 +2937,7 @@ yyreturn:
 
 
 /* Line 1675 of yacc.c  */
-#line 706 "ada-exp.y"
+#line 702 "ada-exp.y"
 
 
 /* yylex defined in ada-lex.c: Reads one token, getting characters */
@@ -2972,10 +2968,8 @@ static struct obstack temp_parse_space;
 int
 ada_parse (struct parser_state *par_state)
 {
-  int result;
-  struct cleanup *c = make_cleanup_clear_parser_state (&pstate);
-
   /* Setting up the parser state.  */
+  scoped_restore pstate_restore = make_scoped_restore (&pstate);
   gdb_assert (par_state != NULL);
   pstate = par_state;
 
@@ -2984,9 +2978,7 @@ ada_parse (struct parser_state *par_stat
   obstack_free (&temp_parse_space, NULL);
   obstack_init (&temp_parse_space);
 
-  result = yyparse ();
-  do_cleanups (c);
-  return result;
+  return yyparse ();
 }
 
 void
@@ -2996,14 +2988,14 @@ yyerror (const char *msg)
 }
 
 /* Emit expression to access an instance of SYM, in block BLOCK (if
- * non-NULL), and with :: qualification ORIG_LEFT_CONTEXT.  */
+   non-NULL).  */
+
 static void
 write_var_from_sym (struct parser_state *par_state,
-		    const struct block *orig_left_context,
 		    const struct block *block,
 		    struct symbol *sym)
 {
-  if (orig_left_context == NULL && symbol_read_needs_frame (sym))
+  if (symbol_read_needs_frame (sym))
     {
       if (innermost_block == 0
 	  || contained_in (block, innermost_block))
@@ -3084,8 +3076,7 @@ write_object_renaming (struct parser_sta
 				&inner_renaming_expr))
       {
       case ADA_NOT_RENAMING:
-	write_var_from_sym (par_state, orig_left_context, sym_info.block,
-			    sym_info.symbol);
+	write_var_from_sym (par_state, sym_info.block, sym_info.symbol);
 	break;
       case ADA_OBJECT_RENAMING:
 	write_object_renaming (par_state, sym_info.block,
@@ -3146,7 +3137,7 @@ write_object_renaming (struct parser_sta
 	    else if (SYMBOL_CLASS (index_sym_info.symbol) == LOC_TYPEDEF)
 	      /* Index is an old-style renaming symbol.  */
 	      index_sym_info.block = orig_left_context;
-	    write_var_from_sym (par_state, NULL, index_sym_info.block,
+	    write_var_from_sym (par_state, index_sym_info.block,
 				index_sym_info.symbol);
 	  }
 	if (slice_state == SIMPLE_INDEX)
@@ -3205,6 +3196,8 @@ block_lookup (const struct block *contex
   struct block_symbol *syms;
   int nsyms;
   struct symtab *symtab;
+  struct cleanup *old_chain;
+  const struct block *result = NULL;
 
   if (raw_name[0] == '\'')
     {
@@ -3215,6 +3208,8 @@ block_lookup (const struct block *contex
     name = ada_encode (raw_name);
 
   nsyms = ada_lookup_symbol_list (name, context, VAR_DOMAIN, &syms);
+  old_chain = make_cleanup (xfree, syms);
+
   if (context == NULL
       && (nsyms == 0 || SYMBOL_CLASS (syms[0].symbol) != LOC_BLOCK))
     symtab = lookup_symtab (name);
@@ -3222,7 +3217,7 @@ block_lookup (const struct block *contex
     symtab = NULL;
 
   if (symtab != NULL)
-    return BLOCKVECTOR_BLOCK (SYMTAB_BLOCKVECTOR (symtab), STATIC_BLOCK);
+    result = BLOCKVECTOR_BLOCK (SYMTAB_BLOCKVECTOR (symtab), STATIC_BLOCK);
   else if (nsyms == 0 || SYMBOL_CLASS (syms[0].symbol) != LOC_BLOCK)
     {
       if (context == NULL)
@@ -3234,8 +3229,11 @@ block_lookup (const struct block *contex
     {
       if (nsyms > 1)
 	warning (_("Function name \"%s\" ambiguous here"), raw_name);
-      return SYMBOL_BLOCK_VALUE (syms[0].symbol);
+      result = SYMBOL_BLOCK_VALUE (syms[0].symbol);
     }
+
+  do_cleanups (old_chain);
+  return result;
 }
 
 static struct symbol*
@@ -3449,6 +3447,7 @@ write_var_or_type (struct parser_state *
   int depth;
   char *encoded_name;
   int name_len;
+  struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
 
   if (block == NULL)
     block = expression_context_block;
@@ -3476,6 +3475,7 @@ write_var_or_type (struct parser_state *
 	  encoded_name[tail_index] = '\0';
 	  nsyms = ada_lookup_symbol_list (encoded_name, block,
 					  VAR_DOMAIN, &syms);
+          make_cleanup (xfree, syms);
 	  encoded_name[tail_index] = terminator;
 
 	  /* A single symbol may rename a package or object. */
@@ -3522,6 +3522,7 @@ write_var_or_type (struct parser_state *
 	      write_object_renaming (par_state, block, renaming, renaming_len,
 				     renaming_expr, MAX_RENAMING_CHAIN_LENGTH);
 	      write_selectors (par_state, encoded_name + tail_index);
+              do_cleanups (old_chain);
 	      return NULL;
 	    default:
 	      internal_error (__FILE__, __LINE__,
@@ -3533,7 +3534,10 @@ write_var_or_type (struct parser_state *
               struct type *field_type;
               
               if (tail_index == name_len)
-                return SYMBOL_TYPE (type_sym);
+                {
+                  do_cleanups (old_chain);
+		  return SYMBOL_TYPE (type_sym);
+                }
 
               /* We have some extraneous characters after the type name.
                  If this is an expression "TYPE_NAME.FIELD0.[...].FIELDN",
@@ -3541,7 +3545,10 @@ write_var_or_type (struct parser_state *
               field_type
                 = get_symbol_field_type (type_sym, encoded_name + tail_index);
               if (field_type != NULL)
-                return field_type;
+		{
+		  do_cleanups (old_chain);
+		  return field_type;
+		}
 	      else 
 		error (_("Invalid attempt to select from type: \"%s\"."),
                        name0.ptr);
@@ -3552,14 +3559,17 @@ write_var_or_type (struct parser_state *
 						       encoded_name);
 
 	      if (type != NULL)
-		return type;
+		{
+		  do_cleanups (old_chain);
+		  return type;
+		}
 	    }
 
 	  if (nsyms == 1)
 	    {
-	      write_var_from_sym (par_state, block, syms[0].block,
-				  syms[0].symbol);
+	      write_var_from_sym (par_state, syms[0].block, syms[0].symbol);
 	      write_selectors (par_state, encoded_name + tail_index);
+	      do_cleanups (old_chain);
 	      return NULL;
 	    }
 	  else if (nsyms == 0) 
@@ -3571,6 +3581,7 @@ write_var_or_type (struct parser_state *
 		  write_exp_msymbol (par_state, msym);
 		  /* Maybe cause error here rather than later? FIXME? */
 		  write_selectors (par_state, encoded_name + tail_index);
+		  do_cleanups (old_chain);
 		  return NULL;
 		}
 
@@ -3586,6 +3597,7 @@ write_var_or_type (struct parser_state *
 	      write_ambiguous_var (par_state, block, encoded_name,
 				   tail_index);
 	      write_selectors (par_state, encoded_name + tail_index);
+	      do_cleanups (old_chain);
 	      return NULL;
 	    }
 	}
@@ -3627,11 +3639,14 @@ write_name_assoc (struct parser_state *p
       struct block_symbol *syms;
       int nsyms = ada_lookup_symbol_list (name.ptr, expression_context_block,
 					  VAR_DOMAIN, &syms);
+      struct cleanup *old_chain = make_cleanup (xfree, syms);
 
       if (nsyms != 1 || SYMBOL_CLASS (syms[0].symbol) == LOC_TYPEDEF)
 	write_exp_op_with_string (par_state, OP_NAME, name);
       else
-	write_var_from_sym (par_state, NULL, syms[0].block, syms[0].symbol);
+	write_var_from_sym (par_state, syms[0].block, syms[0].symbol);
+
+      do_cleanups (old_chain);
     }
   else
     if (write_var_or_type (par_state, NULL, name) != NULL)
@@ -3683,18 +3698,6 @@ type_long_long (struct parser_state *par
 }
 
 static struct type *
-type_float (struct parser_state *par_state)
-{
-  return parse_type (par_state)->builtin_float;
-}
-
-static struct type *
-type_double (struct parser_state *par_state)
-{
-  return parse_type (par_state)->builtin_double;
-}
-
-static struct type *
 type_long_double (struct parser_state *par_state)
 {
   return parse_type (par_state)->builtin_long_double;
@@ -3723,9 +3726,6 @@ type_system_address (struct parser_state
   return  type != NULL ? type : parse_type (par_state)->builtin_data_ptr;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_ada_exp;
-
 void
 _initialize_ada_exp (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-exp.y ./gdb/ada-exp.y
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-exp.y	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ada-exp.y	2018-01-09 02:04:56.000000000 +0000
@@ -1,5 +1,5 @@
 /* YACC parser for Ada expressions, for GDB.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -106,10 +106,6 @@ static struct type *type_long (struct pa
 
 static struct type *type_long_long (struct parser_state *);
 
-static struct type *type_float (struct parser_state *);
-
-static struct type *type_double (struct parser_state *);
-
 static struct type *type_long_double (struct parser_state *);
 
 static struct type *type_char (struct parser_state *);
@@ -128,7 +124,7 @@ static struct type *type_system_address 
       struct type *type;
     } typed_val;
     struct {
-      DOUBLEST dval;
+      gdb_byte val[16];
       struct type *type;
     } typed_val_float;
     struct type *tval;
@@ -553,10 +549,10 @@ primary	:	CHARLIT
 	;
 
 primary	:	FLOAT
-			{ write_exp_elt_opcode (pstate, OP_DOUBLE);
+			{ write_exp_elt_opcode (pstate, OP_FLOAT);
 			  write_exp_elt_type (pstate, $1.type);
-			  write_exp_elt_dblcst (pstate, $1.dval);
-			  write_exp_elt_opcode (pstate, OP_DOUBLE);
+			  write_exp_elt_floatcst (pstate, $1.val);
+			  write_exp_elt_opcode (pstate, OP_FLOAT);
 			}
 	;
 
@@ -733,10 +729,8 @@ static struct obstack temp_parse_space;
 int
 ada_parse (struct parser_state *par_state)
 {
-  int result;
-  struct cleanup *c = make_cleanup_clear_parser_state (&pstate);
-
   /* Setting up the parser state.  */
+  scoped_restore pstate_restore = make_scoped_restore (&pstate);
   gdb_assert (par_state != NULL);
   pstate = par_state;
 
@@ -745,9 +739,7 @@ ada_parse (struct parser_state *par_stat
   obstack_free (&temp_parse_space, NULL);
   obstack_init (&temp_parse_space);
 
-  result = yyparse ();
-  do_cleanups (c);
-  return result;
+  return yyparse ();
 }
 
 void
@@ -757,14 +749,14 @@ yyerror (const char *msg)
 }
 
 /* Emit expression to access an instance of SYM, in block BLOCK (if
- * non-NULL), and with :: qualification ORIG_LEFT_CONTEXT.  */
+   non-NULL).  */
+
 static void
 write_var_from_sym (struct parser_state *par_state,
-		    const struct block *orig_left_context,
 		    const struct block *block,
 		    struct symbol *sym)
 {
-  if (orig_left_context == NULL && symbol_read_needs_frame (sym))
+  if (symbol_read_needs_frame (sym))
     {
       if (innermost_block == 0
 	  || contained_in (block, innermost_block))
@@ -845,8 +837,7 @@ write_object_renaming (struct parser_sta
 				&inner_renaming_expr))
       {
       case ADA_NOT_RENAMING:
-	write_var_from_sym (par_state, orig_left_context, sym_info.block,
-			    sym_info.symbol);
+	write_var_from_sym (par_state, sym_info.block, sym_info.symbol);
 	break;
       case ADA_OBJECT_RENAMING:
 	write_object_renaming (par_state, sym_info.block,
@@ -907,7 +898,7 @@ write_object_renaming (struct parser_sta
 	    else if (SYMBOL_CLASS (index_sym_info.symbol) == LOC_TYPEDEF)
 	      /* Index is an old-style renaming symbol.  */
 	      index_sym_info.block = orig_left_context;
-	    write_var_from_sym (par_state, NULL, index_sym_info.block,
+	    write_var_from_sym (par_state, index_sym_info.block,
 				index_sym_info.symbol);
 	  }
 	if (slice_state == SIMPLE_INDEX)
@@ -966,6 +957,8 @@ block_lookup (const struct block *contex
   struct block_symbol *syms;
   int nsyms;
   struct symtab *symtab;
+  struct cleanup *old_chain;
+  const struct block *result = NULL;
 
   if (raw_name[0] == '\'')
     {
@@ -976,6 +969,8 @@ block_lookup (const struct block *contex
     name = ada_encode (raw_name);
 
   nsyms = ada_lookup_symbol_list (name, context, VAR_DOMAIN, &syms);
+  old_chain = make_cleanup (xfree, syms);
+
   if (context == NULL
       && (nsyms == 0 || SYMBOL_CLASS (syms[0].symbol) != LOC_BLOCK))
     symtab = lookup_symtab (name);
@@ -983,7 +978,7 @@ block_lookup (const struct block *contex
     symtab = NULL;
 
   if (symtab != NULL)
-    return BLOCKVECTOR_BLOCK (SYMTAB_BLOCKVECTOR (symtab), STATIC_BLOCK);
+    result = BLOCKVECTOR_BLOCK (SYMTAB_BLOCKVECTOR (symtab), STATIC_BLOCK);
   else if (nsyms == 0 || SYMBOL_CLASS (syms[0].symbol) != LOC_BLOCK)
     {
       if (context == NULL)
@@ -995,8 +990,11 @@ block_lookup (const struct block *contex
     {
       if (nsyms > 1)
 	warning (_("Function name \"%s\" ambiguous here"), raw_name);
-      return SYMBOL_BLOCK_VALUE (syms[0].symbol);
+      result = SYMBOL_BLOCK_VALUE (syms[0].symbol);
     }
+
+  do_cleanups (old_chain);
+  return result;
 }
 
 static struct symbol*
@@ -1210,6 +1208,7 @@ write_var_or_type (struct parser_state *
   int depth;
   char *encoded_name;
   int name_len;
+  struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
 
   if (block == NULL)
     block = expression_context_block;
@@ -1237,6 +1236,7 @@ write_var_or_type (struct parser_state *
 	  encoded_name[tail_index] = '\0';
 	  nsyms = ada_lookup_symbol_list (encoded_name, block,
 					  VAR_DOMAIN, &syms);
+          make_cleanup (xfree, syms);
 	  encoded_name[tail_index] = terminator;
 
 	  /* A single symbol may rename a package or object. */
@@ -1283,6 +1283,7 @@ write_var_or_type (struct parser_state *
 	      write_object_renaming (par_state, block, renaming, renaming_len,
 				     renaming_expr, MAX_RENAMING_CHAIN_LENGTH);
 	      write_selectors (par_state, encoded_name + tail_index);
+              do_cleanups (old_chain);
 	      return NULL;
 	    default:
 	      internal_error (__FILE__, __LINE__,
@@ -1294,7 +1295,10 @@ write_var_or_type (struct parser_state *
               struct type *field_type;
               
               if (tail_index == name_len)
-                return SYMBOL_TYPE (type_sym);
+                {
+                  do_cleanups (old_chain);
+		  return SYMBOL_TYPE (type_sym);
+                }
 
               /* We have some extraneous characters after the type name.
                  If this is an expression "TYPE_NAME.FIELD0.[...].FIELDN",
@@ -1302,7 +1306,10 @@ write_var_or_type (struct parser_state *
               field_type
                 = get_symbol_field_type (type_sym, encoded_name + tail_index);
               if (field_type != NULL)
-                return field_type;
+		{
+		  do_cleanups (old_chain);
+		  return field_type;
+		}
 	      else 
 		error (_("Invalid attempt to select from type: \"%s\"."),
                        name0.ptr);
@@ -1313,14 +1320,17 @@ write_var_or_type (struct parser_state *
 						       encoded_name);
 
 	      if (type != NULL)
-		return type;
+		{
+		  do_cleanups (old_chain);
+		  return type;
+		}
 	    }
 
 	  if (nsyms == 1)
 	    {
-	      write_var_from_sym (par_state, block, syms[0].block,
-				  syms[0].symbol);
+	      write_var_from_sym (par_state, syms[0].block, syms[0].symbol);
 	      write_selectors (par_state, encoded_name + tail_index);
+	      do_cleanups (old_chain);
 	      return NULL;
 	    }
 	  else if (nsyms == 0) 
@@ -1332,6 +1342,7 @@ write_var_or_type (struct parser_state *
 		  write_exp_msymbol (par_state, msym);
 		  /* Maybe cause error here rather than later? FIXME? */
 		  write_selectors (par_state, encoded_name + tail_index);
+		  do_cleanups (old_chain);
 		  return NULL;
 		}
 
@@ -1347,6 +1358,7 @@ write_var_or_type (struct parser_state *
 	      write_ambiguous_var (par_state, block, encoded_name,
 				   tail_index);
 	      write_selectors (par_state, encoded_name + tail_index);
+	      do_cleanups (old_chain);
 	      return NULL;
 	    }
 	}
@@ -1388,11 +1400,14 @@ write_name_assoc (struct parser_state *p
       struct block_symbol *syms;
       int nsyms = ada_lookup_symbol_list (name.ptr, expression_context_block,
 					  VAR_DOMAIN, &syms);
+      struct cleanup *old_chain = make_cleanup (xfree, syms);
 
       if (nsyms != 1 || SYMBOL_CLASS (syms[0].symbol) == LOC_TYPEDEF)
 	write_exp_op_with_string (par_state, OP_NAME, name);
       else
-	write_var_from_sym (par_state, NULL, syms[0].block, syms[0].symbol);
+	write_var_from_sym (par_state, syms[0].block, syms[0].symbol);
+
+      do_cleanups (old_chain);
     }
   else
     if (write_var_or_type (par_state, NULL, name) != NULL)
@@ -1444,18 +1459,6 @@ type_long_long (struct parser_state *par
 }
 
 static struct type *
-type_float (struct parser_state *par_state)
-{
-  return parse_type (par_state)->builtin_float;
-}
-
-static struct type *
-type_double (struct parser_state *par_state)
-{
-  return parse_type (par_state)->builtin_double;
-}
-
-static struct type *
 type_long_double (struct parser_state *par_state)
 {
   return parse_type (par_state)->builtin_long_double;
@@ -1484,9 +1487,6 @@ type_system_address (struct parser_state
   return  type != NULL ? type : parse_type (par_state)->builtin_data_ptr;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_ada_exp;
-
 void
 _initialize_ada_exp (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-lang.c ./gdb/ada-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-lang.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ada-lang.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Ada language support routines for GDB, the GNU debugger.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -61,6 +61,8 @@
 #include "arch-utils.h"
 #include "cli/cli-utils.h"
 #include "common/function-view.h"
+#include "common/byte-vector.h"
+#include <algorithm>
 
 /* Define whether or not the C operator '/' truncates towards zero for
    differently signed operands (truncation direction is undefined in C).
@@ -102,16 +104,16 @@ static int ada_type_match (struct type *
 
 static int ada_args_match (struct symbol *, struct value **, int);
 
-static int full_match (const char *, const char *);
-
 static struct value *make_array_descriptor (struct type *, struct value *);
 
 static void ada_add_block_symbols (struct obstack *,
-                                   const struct block *, const char *,
-                                   domain_enum, struct objfile *, int);
+				   const struct block *,
+				   const lookup_name_info &lookup_name,
+				   domain_enum, struct objfile *);
 
 static void ada_add_all_symbols (struct obstack *, const struct block *,
-				 const char *, domain_enum, int, int *);
+				 const lookup_name_info &lookup_name,
+				 domain_enum, int, int *);
 
 static int is_nonfunction (struct block_symbol *, int);
 
@@ -122,10 +124,10 @@ static int num_defns_collected (struct o
 
 static struct block_symbol *defns_collected (struct obstack *, int);
 
-static struct value *resolve_subexp (struct expression **, int *, int,
+static struct value *resolve_subexp (expression_up *, int *, int,
                                      struct type *);
 
-static void replace_operator_with_call (struct expression **, int, int, int,
+static void replace_operator_with_call (expression_up *, int, int, int,
                                         struct symbol *, const struct block *);
 
 static int possible_user_operator_p (enum exp_opcode, struct value **);
@@ -151,7 +153,7 @@ static struct symbol *find_old_style_ren
 						      const struct block *);
 
 static struct type *ada_lookup_struct_elt_type (struct type *, const char *,
-                                                int, int, int *);
+                                                int, int);
 
 static struct value *evaluate_subexp_type (struct expression *, int *);
 
@@ -193,8 +195,6 @@ static void move_bits (gdb_byte *, int, 
 static struct value *coerce_unspec_val_to_type (struct value *,
                                                 struct type *);
 
-static struct value *get_var_value (char *, char *);
-
 static int lesseq_defined_than (struct symbol *, struct symbol *);
 
 static int equiv_types (struct type *, struct type *);
@@ -203,7 +203,7 @@ static int is_name_suffix (const char *)
 
 static int advance_wild_match (const char **, const char *, int);
 
-static int wild_match (const char *, const char *);
+static bool wild_match (const char *name, const char *patn);
 
 static struct value *ada_coerce_ref (struct value *);
 
@@ -270,6 +270,10 @@ static void ada_forward_operator_length 
 					 int *);
 
 static struct type *ada_find_any_type (const char *name);
+
+static symbol_name_matcher_ftype *ada_get_symbol_name_matcher
+  (const lookup_name_info &lookup_name);
+
 
 
 /* The result of a symbol lookup to be stored in our symbol cache.  */
@@ -341,9 +345,6 @@ static const char *known_auxiliary_funct
   ADA_KNOWN_AUXILIARY_FUNCTION_NAME_PATTERNS NULL
 };
 
-/* Space for allocating results of ada_lookup_symbol_list.  */
-static struct obstack symbol_list_obstack;
-
 /* Maintenance-related settings for this module.  */
 
 static struct cmd_list_element *maint_set_ada_cmdlist;
@@ -352,7 +353,7 @@ static struct cmd_list_element *maint_sh
 /* Implement the "maintenance set ada" (prefix) command.  */
 
 static void
-maint_set_ada_cmd (char *args, int from_tty)
+maint_set_ada_cmd (const char *args, int from_tty)
 {
   help_list (maint_set_ada_cmdlist, "maintenance set ada ", all_commands,
 	     gdb_stdout);
@@ -361,7 +362,7 @@ maint_set_ada_cmd (char *args, int from_
 /* Implement the "maintenance show ada" (prefix) command.  */
 
 static void
-maint_show_ada_cmd (char *args, int from_tty)
+maint_show_ada_cmd (const char *args, int from_tty)
 {
   cmd_show_list (maint_show_ada_cmdlist, from_tty, "");
 }
@@ -976,11 +977,13 @@ const struct ada_opname_map ada_opname_t
   {NULL, NULL}
 };
 
-/* The "encoded" form of DECODED, according to GNAT conventions.
-   The result is valid until the next call to ada_encode.  */
+/* The "encoded" form of DECODED, according to GNAT conventions.  The
+   result is valid until the next call to ada_encode.  If
+   THROW_ERRORS, throw an error if invalid operator name is found.
+   Otherwise, return NULL in that case.  */
 
-char *
-ada_encode (const char *decoded)
+static char *
+ada_encode_1 (const char *decoded, bool throw_errors)
 {
   static char *encoding_buffer = NULL;
   static size_t encoding_buffer_size = 0;
@@ -1010,7 +1013,12 @@ ada_encode (const char *decoded)
                && !startswith (p, mapping->decoded); mapping += 1)
             ;
           if (mapping->encoded == NULL)
-            error (_("invalid Ada operator name: %s"), p);
+	    {
+	      if (throw_errors)
+		error (_("invalid Ada operator name: %s"), p);
+	      else
+		return NULL;
+	    }
           strcpy (encoding_buffer + k, mapping->encoded);
           k += strlen (mapping->encoded);
           break;
@@ -1026,6 +1034,15 @@ ada_encode (const char *decoded)
   return encoding_buffer;
 }
 
+/* The "encoded" form of DECODED, according to GNAT conventions.
+   The result is valid until the next call to ada_encode.  */
+
+char *
+ada_encode (const char *decoded)
+{
+  return ada_encode_1 (decoded, true);
+}
+
 /* Return NAME folded to lower case, or, if surrounded by single
    quotes, unfolded, but with the quotes stripped away.  Result good
    to next call.  */
@@ -1490,31 +1507,6 @@ ada_sniff_from_mangled_name (const char 
   return 0;
 }
 
-/* Returns non-zero iff SYM_NAME matches NAME, ignoring any trailing
-   suffixes that encode debugging information or leading _ada_ on
-   SYM_NAME (see is_name_suffix commentary for the debugging
-   information that is ignored).  If WILD, then NAME need only match a
-   suffix of SYM_NAME minus the same suffixes.  Also returns 0 if
-   either argument is NULL.  */
-
-static int
-match_name (const char *sym_name, const char *name, int wild)
-{
-  if (sym_name == NULL || name == NULL)
-    return 0;
-  else if (wild)
-    return wild_match (sym_name, name) == 0;
-  else
-    {
-      int len_name = strlen (name);
-
-      return (strncmp (sym_name, name, len_name) == 0
-              && is_name_suffix (sym_name + len_name))
-        || (startswith (sym_name, "_ada_")
-            && strncmp (sym_name + 5, name, len_name) == 0
-            && is_name_suffix (sym_name + len_name + 5));
-    }
-}
 
 
                                 /* Arrays */
@@ -2567,8 +2559,7 @@ ada_value_primitive_packed_val (struct v
   gdb_byte *unpacked;
   const int is_scalar = is_scalar_type (type);
   const int is_big_endian = gdbarch_bits_big_endian (get_type_arch (type));
-  std::unique_ptr<gdb_byte[]> staging;
-  int staging_len = 0;
+  gdb::byte_vector staging;
 
   type = ada_check_typedef (type);
 
@@ -2586,14 +2577,14 @@ ada_value_primitive_packed_val (struct v
 	 packed, and therefore maybe not at a byte boundary.  So, what
 	 we do, is unpack the data into a byte-aligned buffer, and then
 	 use that buffer as our object's value for resolving the type.  */
-      staging_len = (bit_size + HOST_CHAR_BIT - 1) / HOST_CHAR_BIT;
-      staging.reset (new gdb_byte[staging_len]);
+      int staging_len = (bit_size + HOST_CHAR_BIT - 1) / HOST_CHAR_BIT;
+      staging.resize (staging_len);
 
       ada_unpack_from_contents (src, bit_offset, bit_size,
-			        staging.get (), staging_len,
+			        staging.data (), staging.size (),
 				is_big_endian, has_negatives (type),
 				is_scalar);
-      type = resolve_dynamic_type (type, staging.get (), 0);
+      type = resolve_dynamic_type (type, staging.data (), 0);
       if (TYPE_LENGTH (type) < (bit_size + HOST_CHAR_BIT - 1) / HOST_CHAR_BIT)
 	{
 	  /* This happens when the length of the object is dynamic,
@@ -2656,12 +2647,12 @@ ada_value_primitive_packed_val (struct v
       return v;
     }
 
-  if (staging != NULL && staging_len == TYPE_LENGTH (type))
+  if (staging.size () == TYPE_LENGTH (type))
     {
       /* Small short-cut: If we've unpacked the data into a buffer
 	 of the same size as TYPE's length, then we can reuse that,
 	 instead of doing the unpacking again.  */
-      memcpy (unpacked, staging.get (), staging_len);
+      memcpy (unpacked, staging.data (), staging.size ());
     }
   else
     ada_unpack_from_contents (src, bit_offset, bit_size,
@@ -2919,8 +2910,10 @@ ada_value_slice_from_ptr (struct value *
   struct type *base_index_type = TYPE_TARGET_TYPE (TYPE_INDEX_TYPE (type0));
   struct type *index_type
     = create_static_range_type (NULL, base_index_type, low, high);
-  struct type *slice_type =
-    create_array_type (NULL, TYPE_TARGET_TYPE (type0), index_type);
+  struct type *slice_type = create_array_type_with_stride
+			      (NULL, TYPE_TARGET_TYPE (type0), index_type,
+			       get_dyn_prop (DYN_PROP_BYTE_STRIDE, type0),
+			       TYPE_FIELD_BITSIZE (type0, 0));
   int base_low =  ada_discrete_type_low_bound (TYPE_INDEX_TYPE (type0));
   LONGEST base_low_pos, low_pos;
   CORE_ADDR base;
@@ -2947,8 +2940,10 @@ ada_value_slice (struct value *array, in
   struct type *base_index_type = TYPE_TARGET_TYPE (TYPE_INDEX_TYPE (type));
   struct type *index_type
     = create_static_range_type (NULL, TYPE_INDEX_TYPE (type), low, high);
-  struct type *slice_type =
-    create_array_type (NULL, TYPE_TARGET_TYPE (type), index_type);
+  struct type *slice_type = create_array_type_with_stride
+			      (NULL, TYPE_TARGET_TYPE (type), index_type,
+			       get_dyn_prop (DYN_PROP_BYTE_STRIDE, type),
+			       TYPE_FIELD_BITSIZE (type, 0));
   LONGEST low_pos, high_pos;
 
   if (!discrete_position (base_index_type, low, &low_pos)
@@ -3244,7 +3239,7 @@ ada_decoded_op_name (enum exp_opcode op)
    return type is preferred.  May change (expand) *EXP.  */
 
 static void
-resolve (struct expression **expp, int void_context_p)
+resolve (expression_up *expp, int void_context_p)
 {
   struct type *context_type = NULL;
   int pc = 0;
@@ -3265,7 +3260,7 @@ resolve (struct expression **expp, int v
    are as in ada_resolve, above.  */
 
 static struct value *
-resolve_subexp (struct expression **expp, int *pos, int deprocedure_p,
+resolve_subexp (expression_up *expp, int *pos, int deprocedure_p,
                 struct type *context_type)
 {
   int pc = *pos;
@@ -3275,10 +3270,11 @@ resolve_subexp (struct expression **expp
   struct value **argvec;        /* Vector of operand types (alloca'ed).  */
   int nargs;                    /* Number of operands.  */
   int oplen;
+  struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
 
   argvec = NULL;
   nargs = 0;
-  exp = *expp;
+  exp = expp->get ();
 
   /* Pass one: resolve operands, saving their types and updating *pos,
      if needed.  */
@@ -3385,8 +3381,9 @@ resolve_subexp (struct expression **expp
       break;
 
     case OP_LONG:
-    case OP_DOUBLE:
+    case OP_FLOAT:
     case OP_VAR_VALUE:
+    case OP_VAR_MSYM_VALUE:
       *pos += 4;
       break;
 
@@ -3427,7 +3424,7 @@ resolve_subexp (struct expression **expp
   for (i = 0; i < nargs; i += 1)
     argvec[i] = resolve_subexp (expp, pos, 1, NULL);
   argvec[i] = NULL;
-  exp = *expp;
+  exp = expp->get ();
 
   /* Pass two: perform any resolution on principal operator.  */
   switch (op)
@@ -3446,6 +3443,7 @@ resolve_subexp (struct expression **expp
                                     (exp->elts[pc + 2].symbol),
                                     exp->elts[pc + 1].block, VAR_DOMAIN,
                                     &candidates);
+	  make_cleanup (xfree, candidates);
 
           if (n_candidates > 1)
             {
@@ -3521,7 +3519,7 @@ resolve_subexp (struct expression **expp
           replace_operator_with_call (expp, pc, 0, 0,
                                       exp->elts[pc + 2].symbol,
                                       exp->elts[pc + 1].block);
-          exp = *expp;
+          exp = expp->get ();
         }
       break;
 
@@ -3538,6 +3536,8 @@ resolve_subexp (struct expression **expp
                                       (exp->elts[pc + 5].symbol),
                                       exp->elts[pc + 4].block, VAR_DOMAIN,
                                       &candidates);
+	    make_cleanup (xfree, candidates);
+
             if (n_candidates == 1)
               i = 0;
             else
@@ -3587,9 +3587,11 @@ resolve_subexp (struct expression **expp
           int n_candidates;
 
           n_candidates =
-            ada_lookup_symbol_list (ada_encode (ada_decoded_op_name (op)),
+            ada_lookup_symbol_list (ada_decoded_op_name (op),
                                     (struct block *) NULL, VAR_DOMAIN,
                                     &candidates);
+	  make_cleanup (xfree, candidates);
+
           i = ada_resolve_function (candidates, n_candidates, argvec, nargs,
                                     ada_decoded_op_name (op), NULL);
           if (i < 0)
@@ -3598,17 +3600,24 @@ resolve_subexp (struct expression **expp
 	  replace_operator_with_call (expp, pc, nargs, 1,
 				      candidates[i].symbol,
 				      candidates[i].block);
-          exp = *expp;
+          exp = expp->get ();
         }
       break;
 
     case OP_TYPE:
     case OP_REGISTER:
+      do_cleanups (old_chain);
       return NULL;
     }
 
   *pos = pc;
-  return evaluate_subexp_type (exp, pos);
+  do_cleanups (old_chain);
+  if (exp->elts[pc].opcode == OP_VAR_MSYM_VALUE)
+    return evaluate_var_msym_value (EVAL_AVOID_SIDE_EFFECTS,
+				    exp->elts[pc + 1].objfile,
+				    exp->elts[pc + 2].msymbol);
+  else
+    return evaluate_subexp_type (exp, pos);
 }
 
 /* Return non-zero if formal type FTYPE matches actual type ATYPE.  If
@@ -4110,7 +4119,7 @@ get_selections (int *choices, int n_choi
    arguments.  Update *EXPP as needed to hold more space.  */
 
 static void
-replace_operator_with_call (struct expression **expp, int pc, int nargs,
+replace_operator_with_call (expression_up *expp, int pc, int nargs,
                             int oplen, struct symbol *sym,
                             const struct block *block)
 {
@@ -4119,7 +4128,7 @@ replace_operator_with_call (struct expre
   struct expression *newexp = (struct expression *)
     xzalloc (sizeof (struct expression)
              + EXP_ELEM_TO_BYTES ((*expp)->nelts + 7 - oplen));
-  struct expression *exp = *expp;
+  struct expression *exp = expp->get ();
 
   newexp->nelts = exp->nelts + 7 - oplen;
   newexp->language_defn = exp->language_defn;
@@ -4135,8 +4144,7 @@ replace_operator_with_call (struct expre
   newexp->elts[pc + 4].block = block;
   newexp->elts[pc + 5].symbol = sym;
 
-  *expp = newexp;
-  xfree (exp);
+  expp->reset (newexp);
 }
 
 /* Type-class predicates */
@@ -4508,7 +4516,7 @@ ada_convert_actual (struct value *actual
       if (TYPE_CODE (formal_target) == TYPE_CODE_ARRAY
           && ada_is_array_descriptor_type (actual_target))
 	result = desc_data (actual);
-      else if (TYPE_CODE (actual_type) != TYPE_CODE_PTR)
+      else if (TYPE_CODE (formal_type) != TYPE_CODE_PTR)
         {
           if (VALUE_LVAL (actual) != lval_memory)
             {
@@ -4758,16 +4766,18 @@ cache_symbol (const char *name, domain_e
 
                                 /* Symbol Lookup */
 
-/* Return nonzero if wild matching should be used when searching for
-   all symbols matching LOOKUP_NAME.
+/* Return the symbol name match type that should be used used when
+   searching for all symbols matching LOOKUP_NAME.
 
    LOOKUP_NAME is expected to be a symbol name after transformation
    for Ada lookups (see ada_name_for_lookup).  */
 
-static int
-should_use_wild_match (const char *lookup_name)
+static symbol_name_match_type
+name_match_type_from_name (const char *lookup_name)
 {
-  return (strstr (lookup_name, "__") == NULL);
+  return (strstr (lookup_name, "__") == NULL
+	  ? symbol_name_match_type::WILD
+	  : symbol_name_match_type::FULL);
 }
 
 /* Return the result of a standard (literal, C-like) lookup of NAME in
@@ -4937,23 +4947,18 @@ ada_lookup_simple_minsym (const char *na
   struct bound_minimal_symbol result;
   struct objfile *objfile;
   struct minimal_symbol *msymbol;
-  const int wild_match_p = should_use_wild_match (name);
 
   memset (&result, 0, sizeof (result));
 
-  /* Special case: If the user specifies a symbol name inside package
-     Standard, do a non-wild matching of the symbol name without
-     the "standard__" prefix.  This was primarily introduced in order
-     to allow the user to specifically access the standard exceptions
-     using, for instance, Standard.Constraint_Error when Constraint_Error
-     is ambiguous (due to the user defining its own Constraint_Error
-     entity inside its program).  */
-  if (startswith (name, "standard__"))
-    name += sizeof ("standard__") - 1;
+  symbol_name_match_type match_type = name_match_type_from_name (name);
+  lookup_name_info lookup_name (name, match_type);
+
+  symbol_name_matcher_ftype *match_name
+    = ada_get_symbol_name_matcher (lookup_name);
 
   ALL_MSYMBOLS (objfile, msymbol)
   {
-    if (match_name (MSYMBOL_LINKAGE_NAME (msymbol), name, wild_match_p)
+    if (match_name (MSYMBOL_LINKAGE_NAME (msymbol), lookup_name, NULL)
         && MSYMBOL_TYPE (msymbol) != mst_solib_trampoline)
       {
 	result.minsym = msymbol;
@@ -4973,8 +4978,8 @@ ada_lookup_simple_minsym (const char *na
 
 static void
 add_symbols_from_enclosing_procs (struct obstack *obstackp,
-                                  const char *name, domain_enum domain,
-                                  int wild_match_p)
+				  const lookup_name_info &lookup_name,
+				  domain_enum domain)
 {
 }
 
@@ -5426,17 +5431,16 @@ remove_irrelevant_renamings (struct bloc
    Note: This function assumes that OBSTACKP has 0 (zero) element in it.  */
 
 static void
-ada_add_local_symbols (struct obstack *obstackp, const char *name,
-                       const struct block *block, domain_enum domain,
-                       int wild_match_p)
+ada_add_local_symbols (struct obstack *obstackp,
+		       const lookup_name_info &lookup_name,
+		       const struct block *block, domain_enum domain)
 {
   int block_depth = 0;
 
   while (block != NULL)
     {
       block_depth += 1;
-      ada_add_block_symbols (obstackp, block, name, domain, NULL,
-			     wild_match_p);
+      ada_add_block_symbols (obstackp, block, lookup_name, domain, NULL);
 
       /* If we found a non-function match, assume that's the one.  */
       if (is_nonfunction (defns_collected (obstackp, 0),
@@ -5449,7 +5453,7 @@ ada_add_local_symbols (struct obstack *o
   /* If no luck so far, try to find NAME as a local symbol in some lexically
      enclosing subprogram.  */
   if (num_defns_collected (obstackp) == 0 && block_depth > 2)
-    add_symbols_from_enclosing_procs (obstackp, name, domain, wild_match_p);
+    add_symbols_from_enclosing_procs (obstackp, lookup_name, domain);
 }
 
 /* An object of this type is used as the user_data argument when
@@ -5503,28 +5507,27 @@ aux_add_nonlocal_symbols (struct block *
   return 0;
 }
 
-/* Helper for add_nonlocal_symbols.  Find symbols in DOMAIN which are targetted
-   by renamings matching NAME in BLOCK.  Add these symbols to OBSTACKP.  If
-   WILD_MATCH_P is nonzero, perform the naming matching in "wild" mode (see
-   function "wild_match" for more information).  Return whether we found such
-   symbols.  */
+/* Helper for add_nonlocal_symbols.  Find symbols in DOMAIN which are
+   targeted by renamings matching LOOKUP_NAME in BLOCK.  Add these
+   symbols to OBSTACKP.  Return whether we found such symbols.  */
 
 static int
 ada_add_block_renamings (struct obstack *obstackp,
 			 const struct block *block,
-			 const char *name,
-			 domain_enum domain,
-			 int wild_match_p)
+			 const lookup_name_info &lookup_name,
+			 domain_enum domain)
 {
   struct using_direct *renaming;
   int defns_mark = num_defns_collected (obstackp);
 
+  symbol_name_matcher_ftype *name_match
+    = ada_get_symbol_name_matcher (lookup_name);
+
   for (renaming = block_using (block);
        renaming != NULL;
        renaming = renaming->next)
     {
       const char *r_name;
-      int name_match;
 
       /* Avoid infinite recursions: skip this renaming if we are actually
 	 already traversing it.
@@ -5549,11 +5552,13 @@ ada_add_block_renamings (struct obstack 
       r_name = (renaming->alias != NULL
 		? renaming->alias
 		: renaming->declaration);
-      name_match
-	= wild_match_p ? wild_match (r_name, name) : strcmp (r_name, name);
-      if (name_match == 0)
-	ada_add_all_symbols (obstackp, block, renaming->declaration, domain,
-			     1, NULL);
+      if (name_match (r_name, lookup_name, NULL))
+	{
+	  lookup_name_info decl_lookup_name (renaming->declaration,
+					     lookup_name.match_type ());
+	  ada_add_all_symbols (obstackp, block, decl_lookup_name, domain,
+			       1, NULL);
+	}
       renaming->searched = 0;
     }
   return num_defns_collected (obstackp) != defns_mark;
@@ -5644,14 +5649,24 @@ compare_names (const char *string1, cons
   return result;
 }
 
+/* Convenience function to get at the Ada encoded lookup name for
+   LOOKUP_NAME, as a C string.  */
+
+static const char *
+ada_lookup_name (const lookup_name_info &lookup_name)
+{
+  return lookup_name.ada ().lookup_name ().c_str ();
+}
+
 /* Add to OBSTACKP all non-local symbols whose name and domain match
-   NAME and DOMAIN respectively.  The search is performed on GLOBAL_BLOCK
-   symbols if GLOBAL is non-zero, or on STATIC_BLOCK symbols otherwise.  */
+   LOOKUP_NAME and DOMAIN respectively.  The search is performed on
+   GLOBAL_BLOCK symbols if GLOBAL is non-zero, or on STATIC_BLOCK
+   symbols otherwise.  */
 
 static void
-add_nonlocal_symbols (struct obstack *obstackp, const char *name,
-		      domain_enum domain, int global,
-		      int is_wild_match)
+add_nonlocal_symbols (struct obstack *obstackp,
+		      const lookup_name_info &lookup_name,
+		      domain_enum domain, int global)
 {
   struct objfile *objfile;
   struct compunit_symtab *cu;
@@ -5660,50 +5675,57 @@ add_nonlocal_symbols (struct obstack *ob
   memset (&data, 0, sizeof data);
   data.obstackp = obstackp;
 
+  bool is_wild_match = lookup_name.ada ().wild_match_p ();
+
   ALL_OBJFILES (objfile)
     {
       data.objfile = objfile;
 
       if (is_wild_match)
-	objfile->sf->qf->map_matching_symbols (objfile, name, domain, global,
+	objfile->sf->qf->map_matching_symbols (objfile, lookup_name.name ().c_str (),
+					       domain, global,
 					       aux_add_nonlocal_symbols, &data,
-					       wild_match, NULL);
+					       symbol_name_match_type::WILD,
+					       NULL);
       else
-	objfile->sf->qf->map_matching_symbols (objfile, name, domain, global,
+	objfile->sf->qf->map_matching_symbols (objfile, lookup_name.name ().c_str (),
+					       domain, global,
 					       aux_add_nonlocal_symbols, &data,
-					       full_match, compare_names);
+					       symbol_name_match_type::FULL,
+					       compare_names);
 
       ALL_OBJFILE_COMPUNITS (objfile, cu)
 	{
 	  const struct block *global_block
 	    = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (cu), GLOBAL_BLOCK);
 
-	  if (ada_add_block_renamings (obstackp, global_block , name, domain,
-				       is_wild_match))
+	  if (ada_add_block_renamings (obstackp, global_block, lookup_name,
+				       domain))
 	    data.found_sym = 1;
 	}
     }
 
   if (num_defns_collected (obstackp) == 0 && global && !is_wild_match)
     {
+      const char *name = ada_lookup_name (lookup_name);
+      std::string name1 = std::string ("<_ada_") + name + '>';
+
       ALL_OBJFILES (objfile)
         {
-	  char *name1 = (char *) alloca (strlen (name) + sizeof ("_ada_"));
-	  strcpy (name1, "_ada_");
-	  strcpy (name1 + sizeof ("_ada_") - 1, name);
 	  data.objfile = objfile;
-	  objfile->sf->qf->map_matching_symbols (objfile, name1, domain,
-						 global,
+	  objfile->sf->qf->map_matching_symbols (objfile, name1.c_str (),
+						 domain, global,
 						 aux_add_nonlocal_symbols,
 						 &data,
-						 full_match, compare_names);
+						 symbol_name_match_type::FULL,
+						 compare_names);
 	}
     }      	
 }
 
-/* Find symbols in DOMAIN matching NAME, in BLOCK and, if FULL_SEARCH is
-   non-zero, enclosing scope and in global scopes, returning the number of
-   matches.  Add these to OBSTACKP.
+/* Find symbols in DOMAIN matching LOOKUP_NAME, in BLOCK and, if
+   FULL_SEARCH is non-zero, enclosing scope and in global scopes,
+   returning the number of matches.  Add these to OBSTACKP.
 
    When FULL_SEARCH is non-zero, any non-function/non-enumeral
    symbol match within the nest of blocks whose innermost member is BLOCK,
@@ -5711,8 +5733,9 @@ add_nonlocal_symbols (struct obstack *ob
    enclosing blocks is returned).  If there are any matches in or
    surrounding BLOCK, then these alone are returned.
 
-   Names prefixed with "standard__" are handled specially: "standard__"
-   is first stripped off, and only static and global symbols are searched.
+   Names prefixed with "standard__" are handled specially:
+   "standard__" is first stripped off (by the lookup_name
+   constructor), and only static and global symbols are searched.
 
    If MADE_GLOBAL_LOOKUP_P is non-null, set it before return to whether we had
    to lookup global symbols.  */
@@ -5720,13 +5743,12 @@ add_nonlocal_symbols (struct obstack *ob
 static void
 ada_add_all_symbols (struct obstack *obstackp,
 		     const struct block *block,
-		     const char *name,
+		     const lookup_name_info &lookup_name,
 		     domain_enum domain,
 		     int full_search,
 		     int *made_global_lookup_p)
 {
   struct symbol *sym;
-  const int wild_match_p = should_use_wild_match (name);
 
   if (made_global_lookup_p)
     *made_global_lookup_p = 0;
@@ -5738,25 +5760,21 @@ ada_add_all_symbols (struct obstack *obs
      using, for instance, Standard.Constraint_Error when Constraint_Error
      is ambiguous (due to the user defining its own Constraint_Error
      entity inside its program).  */
-  if (startswith (name, "standard__"))
-    {
-      block = NULL;
-      name = name + sizeof ("standard__") - 1;
-    }
+  if (lookup_name.ada ().standard_p ())
+    block = NULL;
 
   /* Check the non-global symbols.  If we have ANY match, then we're done.  */
 
   if (block != NULL)
     {
       if (full_search)
-	ada_add_local_symbols (obstackp, name, block, domain, wild_match_p);
+	ada_add_local_symbols (obstackp, lookup_name, block, domain);
       else
 	{
 	  /* In the !full_search case we're are being called by
 	     ada_iterate_over_symbols, and we don't want to search
 	     superblocks.  */
-	  ada_add_block_symbols (obstackp, block, name, domain, NULL,
-				 wild_match_p);
+	  ada_add_block_symbols (obstackp, block, lookup_name, domain, NULL);
 	}
       if (num_defns_collected (obstackp) > 0 || !full_search)
 	return;
@@ -5766,10 +5784,11 @@ ada_add_all_symbols (struct obstack *obs
      already performed this search before.  If we have, then return
      the same result.  */
 
-  if (lookup_cached_symbol (name, domain, &sym, &block))
+  if (lookup_cached_symbol (ada_lookup_name (lookup_name),
+			    domain, &sym, &block))
     {
       if (sym != NULL)
-        add_defn_to_vec (obstackp, sym, block);
+	add_defn_to_vec (obstackp, sym, block);
       return;
     }
 
@@ -5778,22 +5797,22 @@ ada_add_all_symbols (struct obstack *obs
 
   /* Search symbols from all global blocks.  */
  
-  add_nonlocal_symbols (obstackp, name, domain, 1, wild_match_p);
+  add_nonlocal_symbols (obstackp, lookup_name, domain, 1);
 
   /* Now add symbols from all per-file blocks if we've gotten no hits
      (not strictly correct, but perhaps better than an error).  */
 
   if (num_defns_collected (obstackp) == 0)
-    add_nonlocal_symbols (obstackp, name, domain, 0, wild_match_p);
+    add_nonlocal_symbols (obstackp, lookup_name, domain, 0);
 }
 
-/* Find symbols in DOMAIN matching NAME, in BLOCK and, if full_search is
-   non-zero, enclosing scope and in global scopes, returning the number of
+/* Find symbols in DOMAIN matching LOOKUP_NAME, in BLOCK and, if FULL_SEARCH
+   is non-zero, enclosing scope and in global scopes, returning the number of
    matches.
-   Sets *RESULTS to point to a vector of (SYM,BLOCK) tuples,
+   Sets *RESULTS to point to a newly allocated vector of (SYM,BLOCK) tuples,
    indicating the symbols found and the blocks and symbol tables (if
-   any) in which they were found.  This vector is transient---good only to
-   the next call of ada_lookup_symbol_list.
+   any) in which they were found.  This vector should be freed when
+   no longer useful.
 
    When full_search is non-zero, any non-function/non-enumeral
    symbol match within the nest of blocks whose innermost member is BLOCK,
@@ -5805,81 +5824,79 @@ ada_add_all_symbols (struct obstack *obs
    is first stripped off, and only static and global symbols are searched.  */
 
 static int
-ada_lookup_symbol_list_worker (const char *name, const struct block *block,
+ada_lookup_symbol_list_worker (const lookup_name_info &lookup_name,
+			       const struct block *block,
 			       domain_enum domain,
 			       struct block_symbol **results,
 			       int full_search)
 {
-  const int wild_match_p = should_use_wild_match (name);
   int syms_from_global_search;
   int ndefns;
+  int results_size;
+  auto_obstack obstack;
 
-  obstack_free (&symbol_list_obstack, NULL);
-  obstack_init (&symbol_list_obstack);
-  ada_add_all_symbols (&symbol_list_obstack, block, name, domain,
-		       full_search, &syms_from_global_search);
+  ada_add_all_symbols (&obstack, block, lookup_name,
+		       domain, full_search, &syms_from_global_search);
 
-  ndefns = num_defns_collected (&symbol_list_obstack);
-  *results = defns_collected (&symbol_list_obstack, 1);
+  ndefns = num_defns_collected (&obstack);
+
+  results_size = obstack_object_size (&obstack);
+  *results = (struct block_symbol *) malloc (results_size);
+  memcpy (*results, defns_collected (&obstack, 1), results_size);
 
   ndefns = remove_extra_symbols (*results, ndefns);
 
   if (ndefns == 0 && full_search && syms_from_global_search)
-    cache_symbol (name, domain, NULL, NULL);
+    cache_symbol (ada_lookup_name (lookup_name), domain, NULL, NULL);
 
   if (ndefns == 1 && full_search && syms_from_global_search)
-    cache_symbol (name, domain, (*results)[0].symbol, (*results)[0].block);
+    cache_symbol (ada_lookup_name (lookup_name), domain,
+		  (*results)[0].symbol, (*results)[0].block);
 
   ndefns = remove_irrelevant_renamings (*results, ndefns, block);
+
   return ndefns;
 }
 
-/* Find symbols in DOMAIN matching NAME0, in BLOCK0 and enclosing scope and
+/* Find symbols in DOMAIN matching NAME, in BLOCK and enclosing scope and
    in global scopes, returning the number of matches, and setting *RESULTS
-   to a vector of (SYM,BLOCK) tuples.
+   to a newly-allocated vector of (SYM,BLOCK) tuples.  This newly-allocated
+   vector should be freed when no longer useful.
+
    See ada_lookup_symbol_list_worker for further details.  */
 
 int
-ada_lookup_symbol_list (const char *name0, const struct block *block0,
+ada_lookup_symbol_list (const char *name, const struct block *block,
 			domain_enum domain, struct block_symbol **results)
 {
-  return ada_lookup_symbol_list_worker (name0, block0, domain, results, 1);
+  symbol_name_match_type name_match_type = name_match_type_from_name (name);
+  lookup_name_info lookup_name (name, name_match_type);
+
+  return ada_lookup_symbol_list_worker (lookup_name, block, domain, results, 1);
 }
 
 /* Implementation of the la_iterate_over_symbols method.  */
 
 static void
 ada_iterate_over_symbols
-  (const struct block *block, const char *name, domain_enum domain,
+  (const struct block *block, const lookup_name_info &name,
+   domain_enum domain,
    gdb::function_view<symbol_found_callback_ftype> callback)
 {
   int ndefs, i;
   struct block_symbol *results;
+  struct cleanup *old_chain;
 
   ndefs = ada_lookup_symbol_list_worker (name, block, domain, &results, 0);
+  old_chain = make_cleanup (xfree, results);
+
   for (i = 0; i < ndefs; ++i)
     {
       if (!callback (results[i].symbol))
 	break;
     }
-}
-
-/* If NAME is the name of an entity, return a string that should
-   be used to look that entity up in Ada units.
-
-   NAME can have any form that the "break" or "print" commands might
-   recognize.  In other words, it does not have to be the "natural"
-   name, or the "encoded" name.  */
-
-std::string
-ada_name_for_lookup (const char *name)
-{
-  int nlen = strlen (name);
 
-  if (name[0] == '<' && name[nlen - 1] == '>')
-    return std::string (name + 1, nlen - 2);
-  else
-    return ada_encode (ada_fold_name (name));
+  do_cleanups (old_chain);
 }
 
 /* The result is as for ada_lookup_symbol_list with FULL_SEARCH set
@@ -5894,18 +5911,16 @@ ada_lookup_encoded_symbol (const char *n
 			   domain_enum domain,
 			   struct block_symbol *info)
 {
-  struct block_symbol *candidates;
-  int n_candidates;
+  /* Since we already have an encoded name, wrap it in '<>' to force a
+     verbatim match.  Otherwise, if the name happens to not look like
+     an encoded name (because it doesn't include a "__"),
+     ada_lookup_name_info would re-encode/fold it again, and that
+     would e.g., incorrectly lowercase object renaming names like
+     "R28b" -> "r28b".  */
+  std::string verbatim = std::string ("<") + name + '>';
 
   gdb_assert (info != NULL);
-  memset (info, 0, sizeof (struct block_symbol));
-
-  n_candidates = ada_lookup_symbol_list (name, block, domain, &candidates);
-  if (n_candidates == 0)
-    return;
-
-  *info = candidates[0];
-  info->symbol = fixup_symbol_section (info->symbol, NULL);
+  *info = ada_lookup_symbol (verbatim.c_str (), block, domain, NULL);
 }
 
 /* Return a symbol in DOMAIN matching NAME, in BLOCK0 and enclosing
@@ -5918,13 +5933,27 @@ struct block_symbol
 ada_lookup_symbol (const char *name, const struct block *block0,
                    domain_enum domain, int *is_a_field_of_this)
 {
-  struct block_symbol info;
-
   if (is_a_field_of_this != NULL)
     *is_a_field_of_this = 0;
 
-  ada_lookup_encoded_symbol (ada_encode (ada_fold_name (name)),
-			     block0, domain, &info);
+  struct block_symbol *candidates;
+  int n_candidates;
+  struct cleanup *old_chain;
+
+  n_candidates = ada_lookup_symbol_list (name, block0, domain, &candidates);
+  old_chain = make_cleanup (xfree, candidates);
+
+  if (n_candidates == 0)
+    {
+      do_cleanups (old_chain);
+      return {};
+    }
+
+  block_symbol info = candidates[0];
+  info.symbol = fixup_symbol_section (info.symbol, NULL);
+
+  do_cleanups (old_chain);
+
   return info;
 }
 
@@ -6181,11 +6210,12 @@ advance_wild_match (const char **namep, 
   return 1;
 }
 
-/* Return 0 iff NAME encodes a name of the form prefix.PATN.  Ignores any
-   informational suffixes of NAME (i.e., for which is_name_suffix is
-   true).  Assumes that PATN is a lower-cased Ada simple name.  */
+/* Return true iff NAME encodes a name of the form prefix.PATN.
+   Ignores any informational suffixes of NAME (i.e., for which
+   is_name_suffix is true).  Assumes that PATN is a lower-cased Ada
+   simple name.  */
 
-static int
+static bool
 wild_match (const char *name, const char *patn)
 {
   const char *p;
@@ -6201,39 +6231,49 @@ wild_match (const char *name, const char
 	    if (*p != *name)
 	      break;
 	  if (*p == '\0' && is_name_suffix (name))
-	    return match != name0 && !is_valid_name_for_wild_match (name0);
+	    return match == name0 || is_valid_name_for_wild_match (name0);
 
 	  if (name[-1] == '_')
 	    name -= 1;
 	}
       if (!advance_wild_match (&name, name0, *patn))
-	return 1;
+	return false;
     }
 }
 
-/* Returns 0 iff symbol name SYM_NAME matches SEARCH_NAME, apart from
-   informational suffix.  */
+/* Returns true iff symbol name SYM_NAME matches SEARCH_NAME, ignoring
+   any trailing suffixes that encode debugging information or leading
+   _ada_ on SYM_NAME (see is_name_suffix commentary for the debugging
+   information that is ignored).  */
 
-static int
+static bool
 full_match (const char *sym_name, const char *search_name)
 {
-  return !match_name (sym_name, search_name, 0);
-}
+  size_t search_name_len = strlen (search_name);
+
+  if (strncmp (sym_name, search_name, search_name_len) == 0
+      && is_name_suffix (sym_name + search_name_len))
+    return true;
 
+  if (startswith (sym_name, "_ada_")
+      && strncmp (sym_name + 5, search_name, search_name_len) == 0
+      && is_name_suffix (sym_name + search_name_len + 5))
+    return true;
+
+  return false;
+}
 
-/* Add symbols from BLOCK matching identifier NAME in DOMAIN to
-   vector *defn_symbols, updating the list of symbols in OBSTACKP 
-   (if necessary).  If WILD, treat as NAME with a wildcard prefix.
-   OBJFILE is the section containing BLOCK.  */
+/* Add symbols from BLOCK matching LOOKUP_NAME in DOMAIN to vector
+   *defn_symbols, updating the list of symbols in OBSTACKP (if
+   necessary).  OBJFILE is the section containing BLOCK.  */
 
 static void
 ada_add_block_symbols (struct obstack *obstackp,
-                       const struct block *block, const char *name,
-                       domain_enum domain, struct objfile *objfile,
-                       int wild)
+		       const struct block *block,
+		       const lookup_name_info &lookup_name,
+		       domain_enum domain, struct objfile *objfile)
 {
   struct block_iterator iter;
-  int name_len = strlen (name);
   /* A matching argument symbol, if any.  */
   struct symbol *arg_sym;
   /* Set true when we find a matching non-argument symbol.  */
@@ -6242,56 +6282,31 @@ ada_add_block_symbols (struct obstack *o
 
   arg_sym = NULL;
   found_sym = 0;
-  if (wild)
-    {
-      for (sym = block_iter_match_first (block, name, wild_match, &iter);
-	   sym != NULL; sym = block_iter_match_next (name, wild_match, &iter))
-      {
-        if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
-                                   SYMBOL_DOMAIN (sym), domain)
-            && wild_match (SYMBOL_LINKAGE_NAME (sym), name) == 0)
-          {
-	    if (SYMBOL_CLASS (sym) == LOC_UNRESOLVED)
-	      continue;
-	    else if (SYMBOL_IS_ARGUMENT (sym))
-	      arg_sym = sym;
-	    else
-	      {
-                found_sym = 1;
-                add_defn_to_vec (obstackp,
-                                 fixup_symbol_section (sym, objfile),
-                                 block);
-              }
-          }
-      }
-    }
-  else
+  for (sym = block_iter_match_first (block, lookup_name, &iter);
+       sym != NULL;
+       sym = block_iter_match_next (lookup_name, &iter))
     {
-     for (sym = block_iter_match_first (block, name, full_match, &iter);
-	  sym != NULL; sym = block_iter_match_next (name, full_match, &iter))
-      {
-        if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
-                                   SYMBOL_DOMAIN (sym), domain))
-          {
-	    if (SYMBOL_CLASS (sym) != LOC_UNRESOLVED)
-	      {
-		if (SYMBOL_IS_ARGUMENT (sym))
-		  arg_sym = sym;
-		else
-		  {
-		    found_sym = 1;
-		    add_defn_to_vec (obstackp,
-				     fixup_symbol_section (sym, objfile),
-				     block);
-		  }
-	      }
-          }
-      }
+      if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
+				 SYMBOL_DOMAIN (sym), domain))
+	{
+	  if (SYMBOL_CLASS (sym) != LOC_UNRESOLVED)
+	    {
+	      if (SYMBOL_IS_ARGUMENT (sym))
+		arg_sym = sym;
+	      else
+		{
+		  found_sym = 1;
+		  add_defn_to_vec (obstackp,
+				   fixup_symbol_section (sym, objfile),
+				   block);
+		}
+	    }
+	}
     }
 
   /* Handle renamings.  */
 
-  if (ada_add_block_renamings (obstackp, block, name, domain, wild))
+  if (ada_add_block_renamings (obstackp, block, lookup_name, domain))
     found_sym = 1;
 
   if (!found_sym && arg_sym != NULL)
@@ -6301,10 +6316,13 @@ ada_add_block_symbols (struct obstack *o
                        block);
     }
 
-  if (!wild)
+  if (!lookup_name.ada ().wild_match_p ())
     {
       arg_sym = NULL;
       found_sym = 0;
+      const std::string &ada_lookup_name = lookup_name.ada ().lookup_name ();
+      const char *name = ada_lookup_name.c_str ();
+      size_t name_len = ada_lookup_name.size ();
 
       ALL_BLOCK_SYMBOLS (block, iter, sym)
       {
@@ -6355,51 +6373,39 @@ ada_add_block_symbols (struct obstack *o
 
                                 /* Symbol Completion */
 
-/* If SYM_NAME is a completion candidate for TEXT, return this symbol
-   name in a form that's appropriate for the completion.  The result
-   does not need to be deallocated, but is only good until the next call.
-
-   TEXT_LEN is equal to the length of TEXT.
-   Perform a wild match if WILD_MATCH_P is set.
-   ENCODED_P should be set if TEXT represents the start of a symbol name
-   in its encoded form.  */
+/* See symtab.h.  */
 
-static const char *
-symbol_completion_match (const char *sym_name,
-                         const char *text, int text_len,
-                         int wild_match_p, int encoded_p)
-{
-  const int verbatim_match = (text[0] == '<');
-  int match = 0;
-
-  if (verbatim_match)
-    {
-      /* Strip the leading angle bracket.  */
-      text = text + 1;
-      text_len--;
-    }
+bool
+ada_lookup_name_info::matches
+  (const char *sym_name,
+   symbol_name_match_type match_type,
+   completion_match_result *comp_match_res) const
+{
+  bool match = false;
+  const char *text = m_encoded_name.c_str ();
+  size_t text_len = m_encoded_name.size ();
 
   /* First, test against the fully qualified name of the symbol.  */
 
   if (strncmp (sym_name, text, text_len) == 0)
-    match = 1;
+    match = true;
 
-  if (match && !encoded_p)
+  if (match && !m_encoded_p)
     {
       /* One needed check before declaring a positive match is to verify
          that iff we are doing a verbatim match, the decoded version
          of the symbol name starts with '<'.  Otherwise, this symbol name
          is not a suitable completion.  */
       const char *sym_name_copy = sym_name;
-      int has_angle_bracket;
+      bool has_angle_bracket;
 
       sym_name = ada_decode (sym_name);
       has_angle_bracket = (sym_name[0] == '<');
-      match = (has_angle_bracket == verbatim_match);
+      match = (has_angle_bracket == m_verbatim_p);
       sym_name = sym_name_copy;
     }
 
-  if (match && !verbatim_match)
+  if (match && !m_verbatim_p)
     {
       /* When doing non-verbatim match, another check that needs to
          be done is to verify that the potentially matching symbol name
@@ -6410,12 +6416,12 @@ symbol_completion_match (const char *sym
 
       for (tmp = sym_name; *tmp != '\0' && !isupper (*tmp); tmp++);
       if (*tmp != '\0')
-        match = 0;
+	match = false;
     }
 
   /* Second: Try wild matching...  */
 
-  if (!match && wild_match_p)
+  if (!match && m_wild_match_p)
     {
       /* Since we are doing wild matching, this means that TEXT
          may represent an unqualified symbol name.  We therefore must
@@ -6423,134 +6429,61 @@ symbol_completion_match (const char *sym
       sym_name = ada_unqualified_name (ada_decode (sym_name));
 
       if (strncmp (sym_name, text, text_len) == 0)
-        match = 1;
+	match = true;
     }
 
-  /* Finally: If we found a mach, prepare the result to return.  */
+  /* Finally: If we found a match, prepare the result to return.  */
 
   if (!match)
-    return NULL;
-
-  if (verbatim_match)
-    sym_name = add_angle_brackets (sym_name);
+    return false;
 
-  if (!encoded_p)
-    sym_name = ada_decode (sym_name);
-
-  return sym_name;
-}
-
-/* A companion function to ada_make_symbol_completion_list().
-   Check if SYM_NAME represents a symbol which name would be suitable
-   to complete TEXT (TEXT_LEN is the length of TEXT), in which case
-   it is appended at the end of the given string vector SV.
-
-   ORIG_TEXT is the string original string from the user command
-   that needs to be completed.  WORD is the entire command on which
-   completion should be performed.  These two parameters are used to
-   determine which part of the symbol name should be added to the
-   completion vector.
-   if WILD_MATCH_P is set, then wild matching is performed.
-   ENCODED_P should be set if TEXT represents a symbol name in its
-   encoded formed (in which case the completion should also be
-   encoded).  */
-
-static void
-symbol_completion_add (VEC(char_ptr) **sv,
-                       const char *sym_name,
-                       const char *text, int text_len,
-                       const char *orig_text, const char *word,
-                       int wild_match_p, int encoded_p)
-{
-  const char *match = symbol_completion_match (sym_name, text, text_len,
-                                               wild_match_p, encoded_p);
-  char *completion;
+  if (comp_match_res != NULL)
+    {
+      std::string &match_str = comp_match_res->match.storage ();
 
-  if (match == NULL)
-    return;
+      if (!m_encoded_p)
+	match_str = ada_decode (sym_name);
+      else
+	{
+	  if (m_verbatim_p)
+	    match_str = add_angle_brackets (sym_name);
+	  else
+	    match_str = sym_name;
 
-  /* We found a match, so add the appropriate completion to the given
-     string vector.  */
+	}
 
-  if (word == orig_text)
-    {
-      completion = (char *) xmalloc (strlen (match) + 5);
-      strcpy (completion, match);
-    }
-  else if (word > orig_text)
-    {
-      /* Return some portion of sym_name.  */
-      completion = (char *) xmalloc (strlen (match) + 5);
-      strcpy (completion, match + (word - orig_text));
-    }
-  else
-    {
-      /* Return some of ORIG_TEXT plus sym_name.  */
-      completion = (char *) xmalloc (strlen (match) + (orig_text - word) + 5);
-      strncpy (completion, word, orig_text - word);
-      completion[orig_text - word] = '\0';
-      strcat (completion, match);
+      comp_match_res->set_match (match_str.c_str ());
     }
 
-  VEC_safe_push (char_ptr, *sv, completion);
+  return true;
 }
 
-/* Return a list of possible symbol names completing TEXT0.  WORD is
-   the entire command on which completion is made.  */
+/* Add the list of possible symbol names completing TEXT to TRACKER.
+   WORD is the entire command on which completion is made.  */
 
-static VEC (char_ptr) *
-ada_make_symbol_completion_list (const char *text0, const char *word,
-				 enum type_code code)
+static void
+ada_collect_symbol_completion_matches (completion_tracker &tracker,
+				       complete_symbol_mode mode,
+				       symbol_name_match_type name_match_type,
+				       const char *text, const char *word,
+				       enum type_code code)
 {
-  char *text;
-  int text_len;
-  int wild_match_p;
-  int encoded_p;
-  VEC(char_ptr) *completions = VEC_alloc (char_ptr, 128);
   struct symbol *sym;
   struct compunit_symtab *s;
   struct minimal_symbol *msymbol;
   struct objfile *objfile;
   const struct block *b, *surrounding_static_block = 0;
-  int i;
   struct block_iterator iter;
   struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
 
   gdb_assert (code == TYPE_CODE_UNDEF);
 
-  if (text0[0] == '<')
-    {
-      text = xstrdup (text0);
-      make_cleanup (xfree, text);
-      text_len = strlen (text);
-      wild_match_p = 0;
-      encoded_p = 1;
-    }
-  else
-    {
-      text = xstrdup (ada_encode (text0));
-      make_cleanup (xfree, text);
-      text_len = strlen (text);
-      for (i = 0; i < text_len; i++)
-        text[i] = tolower (text[i]);
-
-      encoded_p = (strstr (text0, "__") != NULL);
-      /* If the name contains a ".", then the user is entering a fully
-         qualified entity name, and the match must not be done in wild
-         mode.  Similarly, if the user wants to complete what looks like
-         an encoded name, the match must not be done in wild mode.  */
-      wild_match_p = (strchr (text0, '.') == NULL && !encoded_p);
-    }
+  lookup_name_info lookup_name (text, name_match_type, true);
 
   /* First, look at the partial symtab symbols.  */
   expand_symtabs_matching (NULL,
-			   [&] (const char *symname)
-			   {
-			     return symbol_completion_match (symname,
-							     text, text_len,
-							     wild_match_p,
-							     encoded_p);
-			   },
+			   lookup_name,
+			   NULL,
 			   NULL,
 			   ALL_DOMAIN);
 
@@ -6562,9 +6495,14 @@ ada_make_symbol_completion_list (const c
   ALL_MSYMBOLS (objfile, msymbol)
   {
     QUIT;
-    symbol_completion_add (&completions, MSYMBOL_LINKAGE_NAME (msymbol),
-			   text, text_len, text0, word, wild_match_p,
-			   encoded_p);
+
+    if (completion_skip_symbol (mode, msymbol))
+      continue;
+
+    completion_list_add_name (tracker,
+			      MSYMBOL_LANGUAGE (msymbol),
+			      MSYMBOL_LINKAGE_NAME (msymbol),
+			      lookup_name, text, word);
   }
 
   /* Search upwards from currently selected frame (so that we can
@@ -6577,9 +6515,13 @@ ada_make_symbol_completion_list (const c
 
       ALL_BLOCK_SYMBOLS (b, iter, sym)
       {
-        symbol_completion_add (&completions, SYMBOL_LINKAGE_NAME (sym),
-                               text, text_len, text0, word,
-                               wild_match_p, encoded_p);
+	if (completion_skip_symbol (mode, sym))
+	  continue;
+
+	completion_list_add_name (tracker,
+				  SYMBOL_LANGUAGE (sym),
+				  SYMBOL_LINKAGE_NAME (sym),
+				  lookup_name, text, word);
       }
     }
 
@@ -6592,9 +6534,13 @@ ada_make_symbol_completion_list (const c
     b = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (s), GLOBAL_BLOCK);
     ALL_BLOCK_SYMBOLS (b, iter, sym)
     {
-      symbol_completion_add (&completions, SYMBOL_LINKAGE_NAME (sym),
-                             text, text_len, text0, word,
-                             wild_match_p, encoded_p);
+      if (completion_skip_symbol (mode, sym))
+	continue;
+
+      completion_list_add_name (tracker,
+				SYMBOL_LANGUAGE (sym),
+				SYMBOL_LINKAGE_NAME (sym),
+				lookup_name, text, word);
     }
   }
 
@@ -6607,14 +6553,17 @@ ada_make_symbol_completion_list (const c
       continue;
     ALL_BLOCK_SYMBOLS (b, iter, sym)
     {
-      symbol_completion_add (&completions, SYMBOL_LINKAGE_NAME (sym),
-                             text, text_len, text0, word,
-                             wild_match_p, encoded_p);
+      if (completion_skip_symbol (mode, sym))
+	continue;
+
+      completion_list_add_name (tracker,
+				SYMBOL_LANGUAGE (sym),
+				SYMBOL_LINKAGE_NAME (sym),
+				lookup_name, text, word);
     }
   }
 
   do_cleanups (old_chain);
-  return completions;
 }
 
                                 /* Field Access */
@@ -6697,7 +6646,7 @@ ada_is_ignored_field (struct type *type,
 int
 ada_is_tagged_type (struct type *type, int refok)
 {
-  return (ada_lookup_struct_elt_type (type, "_tag", refok, 1, NULL) != NULL);
+  return (ada_lookup_struct_elt_type (type, "_tag", refok, 1) != NULL);
 }
 
 /* True iff TYPE represents the type of X'Tag */
@@ -6723,7 +6672,7 @@ ada_is_tag_type (struct type *type)
 struct type *
 ada_tag_type (struct value *val)
 {
-  return ada_lookup_struct_elt_type (value_type (val), "_tag", 1, 0, NULL);
+  return ada_lookup_struct_elt_type (value_type (val), "_tag", 1, 0);
 }
 
 /* Return 1 if TAG follows the old scheme for Ada tags (used for Ada 95,
@@ -6810,7 +6759,8 @@ ada_tag_value_at_base_address (struct va
   if (is_ada95_tag (tag))
     return obj;
 
-  ptr_type = builtin_type (target_gdbarch ())->builtin_data_ptr;
+  ptr_type = language_lookup_primitive_type
+    (language_def (language_ada), target_gdbarch(), "storage_offset");
   ptr_type = lookup_pointer_type (ptr_type);
   val = value_cast (ptr_type, tag);
   if (!val)
@@ -6844,7 +6794,18 @@ ada_tag_value_at_base_address (struct va
   if (offset_to_top == -1)
     return obj;
 
-  base_address = value_address (obj) - offset_to_top;
+  /* OFFSET_TO_TOP used to be a positive value to be subtracted
+     from the base address.  This was however incompatible with
+     C++ dispatch table: C++ uses a *negative* value to *add*
+     to the base address.  Ada's convention has therefore been
+     changed in GNAT 19.0w 20171023: since then, C++ and Ada
+     use the same convention.  Here, we support both cases by
+     checking the sign of OFFSET_TO_TOP.  */
+
+  if (offset_to_top > 0)
+    offset_to_top = -offset_to_top;
+
+  base_address = value_address (obj) + offset_to_top;
   tag = value_tag_from_contents_and_address (obj_type, NULL, base_address);
 
   /* Make sure that we have a proper tag at the new address.
@@ -7068,7 +7029,7 @@ ada_variant_discrim_type (struct type *v
 {
   const char *name = ada_variant_discrim_name (var_type);
 
-  return ada_lookup_struct_elt_type (outer_type, name, 1, 1, NULL);
+  return ada_lookup_struct_elt_type (outer_type, name, 1, 1);
 }
 
 /* Assuming that TYPE is the type of a variant wrapper, and FIELD_NUM is a
@@ -7269,6 +7230,56 @@ ada_value_primitive_field (struct value 
    number of fields if not found.   A NULL value of NAME never
    matches; the function just counts visible fields in this case.
    
+   Notice that we need to handle when a tagged record hierarchy
+   has some components with the same name, like in this scenario:
+
+      type Top_T is tagged record
+         N : Integer := 1;
+         U : Integer := 974;
+         A : Integer := 48;
+      end record;
+
+      type Middle_T is new Top.Top_T with record
+         N : Character := 'a';
+         C : Integer := 3;
+      end record;
+
+     type Bottom_T is new Middle.Middle_T with record
+        N : Float := 4.0;
+        C : Character := '5';
+        X : Integer := 6;
+        A : Character := 'J';
+     end record;
+
+   Let's say we now have a variable declared and initialized as follow:
+
+     TC : Top_A := new Bottom_T;
+
+   And then we use this variable to call this function
+
+     procedure Assign (Obj: in out Top_T; TV : Integer);
+
+   as follow:
+
+      Assign (Top_T (B), 12);
+
+   Now, we're in the debugger, and we're inside that procedure
+   then and we want to print the value of obj.c:
+
+   Usually, the tagged record or one of the parent type owns the
+   component to print and there's no issue but in this particular
+   case, what does it mean to ask for Obj.C? Since the actual
+   type for object is type Bottom_T, it could mean two things: type
+   component C from the Middle_T view, but also component C from
+   Bottom_T.  So in that "undefined" case, when the component is
+   not found in the non-resolved type (which includes all the
+   components of the parent type), then resolve it and see if we
+   get better luck once expanded.
+
+   In the case of homonyms in the derived tagged type, we don't
+   guaranty anything, and pick the one that's easiest for us
+   to program.
+
    Returns 1 if found, 0 otherwise.  */
 
 static int
@@ -7278,6 +7289,7 @@ find_struct_field (const char *name, str
 		   int *index_p)
 {
   int i;
+  int parent_offset = -1;
 
   type = ada_check_typedef (type);
 
@@ -7299,6 +7311,20 @@ find_struct_field (const char *name, str
       if (t_field_name == NULL)
         continue;
 
+      else if (ada_is_parent_field (type, i))
+        {
+	  /* This is a field pointing us to the parent type of a tagged
+	     type.  As hinted in this function's documentation, we give
+	     preference to fields in the current record first, so what
+	     we do here is just record the index of this field before
+	     we skip it.  If it turns out we couldn't find our field
+	     in the current record, then we'll get back to it and search
+	     inside it whether the field might exist in the parent.  */
+
+          parent_offset = i;
+          continue;
+        }
+
       else if (name != NULL && field_name_match (t_field_name, name))
         {
           int bit_size = TYPE_FIELD_BITSIZE (type, i);
@@ -7341,6 +7367,21 @@ find_struct_field (const char *name, str
       else if (index_p != NULL)
 	*index_p += 1;
     }
+
+  /* Field not found so far.  If this is a tagged type which
+     has a parent, try finding that field in the parent now.  */
+
+  if (parent_offset != -1)
+    {
+      int bit_pos = TYPE_FIELD_BITPOS (type, parent_offset);
+      int fld_offset = offset + bit_pos / 8;
+
+      if (find_struct_field (name, TYPE_FIELD_TYPE (type, parent_offset),
+                             fld_offset, field_type_p, byte_offset_p,
+                             bit_offset_p, bit_size_p, index_p))
+        return 1;
+    }
+
   return 0;
 }
 
@@ -7360,13 +7401,17 @@ num_visible_fields (struct type *type)
    and search in it assuming it has (class) type TYPE.
    If found, return value, else return NULL.
 
-   Searches recursively through wrapper fields (e.g., '_parent').  */
+   Searches recursively through wrapper fields (e.g., '_parent').
+
+   In the case of homonyms in the tagged types, please refer to the
+   long explanation in find_struct_field's function documentation.  */
 
 static struct value *
 ada_search_struct_field (const char *name, struct value *arg, int offset,
                          struct type *type)
 {
   int i;
+  int parent_offset = -1;
 
   type = ada_check_typedef (type);
   for (i = 0; i < TYPE_NFIELDS (type); i += 1)
@@ -7376,6 +7421,20 @@ ada_search_struct_field (const char *nam
       if (t_field_name == NULL)
         continue;
 
+      else if (ada_is_parent_field (type, i))
+        {
+	  /* This is a field pointing us to the parent type of a tagged
+	     type.  As hinted in this function's documentation, we give
+	     preference to fields in the current record first, so what
+	     we do here is just record the index of this field before
+	     we skip it.  If it turns out we couldn't find our field
+	     in the current record, then we'll get back to it and search
+	     inside it whether the field might exist in the parent.  */
+
+          parent_offset = i;
+          continue;
+        }
+
       else if (field_name_match (t_field_name, name))
         return ada_value_primitive_field (arg, offset, i, type);
 
@@ -7411,6 +7470,20 @@ ada_search_struct_field (const char *nam
             }
         }
     }
+
+  /* Field not found so far.  If this is a tagged type which
+     has a parent, try finding that field in the parent now.  */
+
+  if (parent_offset != -1)
+    {
+      struct value *v = ada_search_struct_field (
+	name, arg, offset + TYPE_FIELD_BITPOS (type, parent_offset) / 8,
+	TYPE_FIELD_TYPE (type, parent_offset));
+
+      if (v != NULL)
+        return v;
+    }
+
   return NULL;
 }
 
@@ -7535,7 +7608,29 @@ ada_value_struct_elt (struct value *arg,
       else
 	address = value_address (ada_coerce_ref (arg));
 
-      t1 = ada_to_fixed_type (ada_get_base_type (t1), NULL, address, NULL, 1);
+      /* Check to see if this is a tagged type.  We also need to handle
+         the case where the type is a reference to a tagged type, but
+         we have to be careful to exclude pointers to tagged types.
+         The latter should be shown as usual (as a pointer), whereas
+         a reference should mostly be transparent to the user.  */
+
+      if (ada_is_tagged_type (t1, 0)
+          || (TYPE_CODE (t1) == TYPE_CODE_REF
+              && ada_is_tagged_type (TYPE_TARGET_TYPE (t1), 0)))
+        {
+          /* We first try to find the searched field in the current type.
+	     If not found then let's look in the fixed type.  */
+
+          if (!find_struct_field (name, t1, 0,
+                                  &field_type, &byte_offset, &bit_offset,
+                                  &bit_size, NULL))
+	    t1 = ada_to_fixed_type (ada_get_base_type (t1), NULL,
+                                    address, NULL, 1);
+        }
+      else
+        t1 = ada_to_fixed_type (ada_get_base_type (t1), NULL,
+                                address, NULL, 1);
+
       if (find_struct_field (name, t1, 0,
                              &field_type, &byte_offset, &bit_offset,
                              &bit_size, NULL))
@@ -7594,14 +7689,18 @@ type_as_string (struct type *type)
 
    Looks recursively into variant clauses and parent types.
 
+   In the case of homonyms in the tagged types, please refer to the
+   long explanation in find_struct_field's function documentation.
+
    If NOERR is nonzero, return NULL if NAME is not suitably defined or
    TYPE is not a type of the right kind.  */
 
 static struct type *
 ada_lookup_struct_elt_type (struct type *type, const char *name, int refok,
-                            int noerr, int *dispp)
+                            int noerr)
 {
   int i;
+  int parent_offset = -1;
 
   if (name == NULL)
     goto BadName;
@@ -7633,29 +7732,33 @@ ada_lookup_struct_elt_type (struct type 
     {
       const char *t_field_name = TYPE_FIELD_NAME (type, i);
       struct type *t;
-      int disp;
 
       if (t_field_name == NULL)
         continue;
 
-      else if (field_name_match (t_field_name, name))
+      else if (ada_is_parent_field (type, i))
         {
-          if (dispp != NULL)
-            *dispp += TYPE_FIELD_BITPOS (type, i) / 8;
-          return TYPE_FIELD_TYPE (type, i);
+	  /* This is a field pointing us to the parent type of a tagged
+	     type.  As hinted in this function's documentation, we give
+	     preference to fields in the current record first, so what
+	     we do here is just record the index of this field before
+	     we skip it.  If it turns out we couldn't find our field
+	     in the current record, then we'll get back to it and search
+	     inside it whether the field might exist in the parent.  */
+
+          parent_offset = i;
+          continue;
         }
 
+      else if (field_name_match (t_field_name, name))
+	return TYPE_FIELD_TYPE (type, i);
+
       else if (ada_is_wrapper_field (type, i))
         {
-          disp = 0;
           t = ada_lookup_struct_elt_type (TYPE_FIELD_TYPE (type, i), name,
-                                          0, 1, &disp);
+                                          0, 1);
           if (t != NULL)
-            {
-              if (dispp != NULL)
-                *dispp += disp + TYPE_FIELD_BITPOS (type, i) / 8;
-              return t;
-            }
+	    return t;
         }
 
       else if (ada_is_variant_part (type, i))
@@ -7671,26 +7774,35 @@ ada_lookup_struct_elt_type (struct type 
 		 generates these for unchecked variant types.  Revisit
 	         if the compiler changes this practice.  */
 	      const char *v_field_name = TYPE_FIELD_NAME (field_type, j);
-              disp = 0;
+
 	      if (v_field_name != NULL 
 		  && field_name_match (v_field_name, name))
 		t = TYPE_FIELD_TYPE (field_type, j);
 	      else
 		t = ada_lookup_struct_elt_type (TYPE_FIELD_TYPE (field_type,
 								 j),
-						name, 0, 1, &disp);
+						name, 0, 1);
 
               if (t != NULL)
-                {
-                  if (dispp != NULL)
-                    *dispp += disp + TYPE_FIELD_BITPOS (type, i) / 8;
-                  return t;
-                }
+		return t;
             }
         }
 
     }
 
+    /* Field not found so far.  If this is a tagged type which
+       has a parent, try finding that field in the parent now.  */
+
+    if (parent_offset != -1)
+      {
+        struct type *t;
+
+        t = ada_lookup_struct_elt_type (TYPE_FIELD_TYPE (type, parent_offset),
+                                        name, 0, 1);
+        if (t != NULL)
+	  return t;
+      }
+
 BadName:
   if (!noerr)
     {
@@ -7713,8 +7825,7 @@ is_unchecked_variant (struct type *var_t
 {
   const char *discrim_name = ada_variant_discrim_name (var_type);
 
-  return (ada_lookup_struct_elt_type (outer_type, discrim_name, 0, 1, NULL) 
-	  == NULL);
+  return (ada_lookup_struct_elt_type (outer_type, discrim_name, 0, 1) == NULL);
 }
 
 
@@ -8715,7 +8826,6 @@ static int
 ada_is_redundant_range_encoding (struct type *range_type,
 				 struct type *encoding_type)
 {
-  struct type *fixed_range_type;
   const char *bounds_str;
   int n;
   LONGEST lo, hi;
@@ -8989,11 +9099,27 @@ ada_to_fixed_type_1 (struct type *type, 
             const char *name = ada_type_name (fixed_record_type);
             char *xvz_name
 	      = (char *) alloca (strlen (name) + 7 /* "___XVZ\0" */);
-            int xvz_found = 0;
+	    bool xvz_found = false;
             LONGEST size;
 
             xsnprintf (xvz_name, strlen (name) + 7, "%s___XVZ", name);
-            size = get_int_var_value (xvz_name, &xvz_found);
+	    TRY
+	      {
+		xvz_found = get_int_var_value (xvz_name, size);
+	      }
+	    CATCH (except, RETURN_MASK_ERROR)
+	      {
+		/* We found the variable, but somehow failed to read
+		   its value.  Rethrow the same error, but with a little
+		   bit more information, to help the user understand
+		   what went wrong (Eg: the variable might have been
+		   optimized out).  */
+		throw_error (except.error,
+			     _("unable to read value of %s (%s)"),
+			     xvz_name, except.message);
+	      }
+	    END_CATCH
+
             if (xvz_found && TYPE_LENGTH (fixed_record_type) != size)
               {
                 fixed_record_type = copy_type (fixed_record_type);
@@ -9583,33 +9709,29 @@ unwrap_value (struct value *val)
 }
 
 static struct value *
-cast_to_fixed (struct type *type, struct value *arg)
+cast_from_fixed (struct type *type, struct value *arg)
 {
-  LONGEST val;
-
-  if (type == value_type (arg))
-    return arg;
-  else if (ada_is_fixed_point_type (value_type (arg)))
-    val = ada_float_to_fixed (type,
-                              ada_fixed_to_float (value_type (arg),
-                                                  value_as_long (arg)));
-  else
-    {
-      DOUBLEST argd = value_as_double (arg);
-
-      val = ada_float_to_fixed (type, argd);
-    }
+  struct value *scale = ada_scaling_factor (value_type (arg));
+  arg = value_cast (value_type (scale), arg);
 
-  return value_from_longest (type, val);
+  arg = value_binop (arg, scale, BINOP_MUL);
+  return value_cast (type, arg);
 }
 
 static struct value *
-cast_from_fixed (struct type *type, struct value *arg)
+cast_to_fixed (struct type *type, struct value *arg)
 {
-  DOUBLEST val = ada_fixed_to_float (value_type (arg),
-                                     value_as_long (arg));
+  if (type == value_type (arg))
+    return arg;
+
+  struct value *scale = ada_scaling_factor (type);
+  if (ada_is_fixed_point_type (value_type (arg)))
+    arg = cast_from_fixed (value_type (scale), arg);
+  else
+    arg = value_cast (value_type (scale), arg);
 
-  return value_from_double (type, val);
+  arg = value_binop (arg, scale, BINOP_DIV);
+  return value_cast (type, arg);
 }
 
 /* Given two array types T1 and T2, return nonzero iff both arrays
@@ -9787,23 +9909,28 @@ ada_value_equal (struct value *arg1, str
   if (ada_is_direct_array_type (value_type (arg1))
       || ada_is_direct_array_type (value_type (arg2)))
     {
+      struct type *arg1_type, *arg2_type;
+
       /* Automatically dereference any array reference before
          we attempt to perform the comparison.  */
       arg1 = ada_coerce_ref (arg1);
       arg2 = ada_coerce_ref (arg2);
-      
+
       arg1 = ada_coerce_to_simple_array (arg1);
       arg2 = ada_coerce_to_simple_array (arg2);
-      if (TYPE_CODE (value_type (arg1)) != TYPE_CODE_ARRAY
-          || TYPE_CODE (value_type (arg2)) != TYPE_CODE_ARRAY)
+
+      arg1_type = ada_check_typedef (value_type (arg1));
+      arg2_type = ada_check_typedef (value_type (arg2));
+
+      if (TYPE_CODE (arg1_type) != TYPE_CODE_ARRAY
+          || TYPE_CODE (arg2_type) != TYPE_CODE_ARRAY)
         error (_("Attempt to compare array with non-array"));
       /* FIXME: The following works only for types whose
          representations use all bits (no padding or undefined bits)
          and do not have user-defined equality.  */
-      return
-        TYPE_LENGTH (value_type (arg1)) == TYPE_LENGTH (value_type (arg2))
-        && memcmp (value_contents (arg1), value_contents (arg2),
-                   TYPE_LENGTH (value_type (arg1))) == 0;
+      return (TYPE_LENGTH (arg1_type) == TYPE_LENGTH (arg2_type)
+	      && memcmp (value_contents (arg1), value_contents (arg2),
+			 TYPE_LENGTH (arg1_type)) == 0);
     }
   return value_equal (arg1, arg2);
 }
@@ -9848,8 +9975,9 @@ assign_component (struct value *containe
 {
   struct value *mark = value_mark ();
   struct value *elt;
+  struct type *lhs_type = check_typedef (value_type (lhs));
 
-  if (TYPE_CODE (value_type (lhs)) == TYPE_CODE_ARRAY)
+  if (TYPE_CODE (lhs_type) == TYPE_CODE_ARRAY)
     {
       struct type *index_type = builtin_type (exp->gdbarch)->builtin_int;
       struct value *index_val = value_from_longest (index_type, index);
@@ -9908,11 +10036,11 @@ assign_aggregate (struct value *containe
   if (!deprecated_value_modifiable (lhs))
     error (_("Left operand of assignment is not a modifiable lvalue."));
 
-  lhs_type = value_type (lhs);
+  lhs_type = check_typedef (value_type (lhs));
   if (ada_is_direct_array_type (lhs_type))
     {
       lhs = ada_coerce_to_simple_array (lhs);
-      lhs_type = value_type (lhs);
+      lhs_type = check_typedef (value_type (lhs));
       low_index = TYPE_ARRAY_LOWER_BOUND_VALUE (lhs_type);
       high_index = TYPE_ARRAY_UPPER_BOUND_VALUE (lhs_type);
     }
@@ -10140,7 +10268,7 @@ add_component_interval (LONGEST low, LON
    is different.  */
 
 static struct value *
-ada_value_cast (struct type *type, struct value *arg2, enum noside noside)
+ada_value_cast (struct type *type, struct value *arg2)
 {
   if (type == ada_check_typedef (value_type (arg2)))
     return arg2;
@@ -10398,31 +10526,83 @@ ada_value_cast (struct type *type, struc
     one element out of that array.  On the other hand, fixing should
     not be performed on the elements when taking a slice of an array!
 
-    Note that one of the side-effects of miscomputing the offset and
+    Note that one of the side effects of miscomputing the offset and
     size of each field is that we end up also miscomputing the size
     of the containing type.  This can have adverse results when computing
     the value of an entity.  GDB fetches the value of an entity based
     on the size of its type, and thus a wrong size causes GDB to fetch
     the wrong amount of memory.  In the case where the computed size is
     too small, GDB fetches too little data to print the value of our
-    entiry.  Results in this case as unpredicatble, as we usually read
+    entity.  Results in this case are unpredictable, as we usually read
     past the buffer containing the data =:-o.  */
 
-/* Implement the evaluate_exp routine in the exp_descriptor structure
-   for the Ada language.  */
-
-static struct value *
-ada_evaluate_subexp (struct type *expect_type, struct expression *exp,
-                     int *pos, enum noside noside)
+/* Evaluate a subexpression of EXP, at index *POS, and return a value
+   for that subexpression cast to TO_TYPE.  Advance *POS over the
+   subexpression.  */
+
+static value *
+ada_evaluate_subexp_for_cast (expression *exp, int *pos,
+			      enum noside noside, struct type *to_type)
 {
-  enum exp_opcode op;
-  int tem;
-  int pc;
-  int preeval_pos;
-  struct value *arg1 = NULL, *arg2 = NULL, *arg3;
-  struct type *type;
-  int nargs, oplen;
-  struct value **argvec;
+  int pc = *pos;
+
+  if (exp->elts[pc].opcode == OP_VAR_MSYM_VALUE
+      || exp->elts[pc].opcode == OP_VAR_VALUE)
+    {
+      (*pos) += 4;
+
+      value *val;
+      if (exp->elts[pc].opcode == OP_VAR_MSYM_VALUE)
+        {
+          if (noside == EVAL_AVOID_SIDE_EFFECTS)
+            return value_zero (to_type, not_lval);
+
+          val = evaluate_var_msym_value (noside,
+                                         exp->elts[pc + 1].objfile,
+                                         exp->elts[pc + 2].msymbol);
+        }
+      else
+        val = evaluate_var_value (noside,
+                                  exp->elts[pc + 1].block,
+                                  exp->elts[pc + 2].symbol);
+
+      if (noside == EVAL_SKIP)
+        return eval_skip_value (exp);
+
+      val = ada_value_cast (to_type, val);
+
+      /* Follow the Ada language semantics that do not allow taking
+	 an address of the result of a cast (view conversion in Ada).  */
+      if (VALUE_LVAL (val) == lval_memory)
+        {
+          if (value_lazy (val))
+            value_fetch_lazy (val);
+          VALUE_LVAL (val) = not_lval;
+        }
+      return val;
+    }
+
+  value *val = evaluate_subexp (to_type, exp, pos, noside);
+  if (noside == EVAL_SKIP)
+    return eval_skip_value (exp);
+  return ada_value_cast (to_type, val);
+}
+
+/* Implement the evaluate_exp routine in the exp_descriptor structure
+   for the Ada language.  */
+
+static struct value *
+ada_evaluate_subexp (struct type *expect_type, struct expression *exp,
+                     int *pos, enum noside noside)
+{
+  enum exp_opcode op;
+  int tem;
+  int pc;
+  int preeval_pos;
+  struct value *arg1 = NULL, *arg2 = NULL, *arg3;
+  struct type *type;
+  int nargs, oplen;
+  struct value **argvec;
 
   pc = *pos;
   *pos += 1;
@@ -10437,7 +10617,7 @@ ada_evaluate_subexp (struct type *expect
       if (noside == EVAL_NORMAL)
 	arg1 = unwrap_value (arg1);
 
-      /* If evaluating an OP_DOUBLE and an EXPECT_TYPE was provided,
+      /* If evaluating an OP_FLOAT and an EXPECT_TYPE was provided,
          then we need to perform the conversion manually, because
          evaluate_subexp_standard doesn't do it.  This conversion is
          necessary in Ada because the different kinds of float/fixed
@@ -10445,8 +10625,8 @@ ada_evaluate_subexp (struct type *expect
 
          Similarly, we need to perform the conversion from OP_LONG
          ourselves.  */
-      if ((op == OP_DOUBLE || op == OP_LONG) && expect_type != NULL)
-        arg1 = ada_value_cast (expect_type, arg1, noside);
+      if ((op == OP_FLOAT || op == OP_LONG) && expect_type != NULL)
+        arg1 = ada_value_cast (expect_type, arg1);
 
       return arg1;
 
@@ -10466,11 +10646,7 @@ ada_evaluate_subexp (struct type *expect
     case UNOP_CAST:
       (*pos) += 2;
       type = exp->elts[pc + 1].type;
-      arg1 = evaluate_subexp (type, exp, pos, noside);
-      if (noside == EVAL_SKIP)
-        goto nosideret;
-      arg1 = ada_value_cast (type, arg1, noside);
-      return arg1;
+      return ada_evaluate_subexp_for_cast (exp, pos, noside, type);
 
     case UNOP_QUAL:
       (*pos) += 2;
@@ -10807,13 +10983,11 @@ ada_evaluate_subexp (struct type *expect
         case TYPE_CODE_FUNC:
           if (noside == EVAL_AVOID_SIDE_EFFECTS)
 	    {
-	      struct type *rtype = TYPE_TARGET_TYPE (type);
-
-	      if (TYPE_GNU_IFUNC (type))
-		return allocate_value (TYPE_TARGET_TYPE (rtype));
-	      return allocate_value (rtype);
+	      if (TYPE_TARGET_TYPE (type) == NULL)
+		error_call_unknown_return_type (NULL);
+	      return allocate_value (TYPE_TARGET_TYPE (type));
 	    }
-          return call_function_by_hand (argvec[0], nargs, argvec + 1);
+	  return call_function_by_hand (argvec[0], NULL, nargs, argvec + 1);
 	case TYPE_CODE_INTERNAL_FUNCTION:
 	  if (noside == EVAL_AVOID_SIDE_EFFECTS)
 	    /* We don't know anything about what the internal
@@ -11375,7 +11549,7 @@ ada_evaluate_subexp (struct type *expect
             {
               type = ada_lookup_struct_elt_type (type1,
                                                  &exp->elts[pc + 2].string,
-                                                 1, 1, NULL);
+                                                 1, 1);
 
 	      /* If the field is not found, check if it exists in the
 		 extension of this object's type. This means that we
@@ -11395,7 +11569,7 @@ ada_evaluate_subexp (struct type *expect
           else
             type =
               ada_lookup_struct_elt_type (type1, &exp->elts[pc + 2].string, 1,
-                                          0, NULL);
+                                          0);
 
           return value_zero (ada_aligned_type (type), lval_memory);
         }
@@ -11444,7 +11618,7 @@ ada_evaluate_subexp (struct type *expect
     }
 
 nosideret:
-  return value_from_longest (builtin_type (exp->gdbarch)->builtin_int, 1);
+  return eval_skip_value (exp);
 }
 
 
@@ -11493,68 +11667,57 @@ ada_is_system_address_type (struct type 
 }
 
 /* Assuming that TYPE is the representation of an Ada fixed-point
-   type, return its delta, or -1 if the type is malformed and the
+   type, return the target floating-point type to be used to represent
+   of this type during internal computation.  */
+
+static struct type *
+ada_scaling_type (struct type *type)
+{
+  return builtin_type (get_type_arch (type))->builtin_long_double;
+}
+
+/* Assuming that TYPE is the representation of an Ada fixed-point
+   type, return its delta, or NULL if the type is malformed and the
    delta cannot be determined.  */
 
-DOUBLEST
+struct value *
 ada_delta (struct type *type)
 {
   const char *encoding = fixed_type_info (type);
-  DOUBLEST num, den;
+  struct type *scale_type = ada_scaling_type (type);
+
+  long long num, den;
 
-  /* Strictly speaking, num and den are encoded as integer.  However,
-     they may not fit into a long, and they will have to be converted
-     to DOUBLEST anyway.  So scan them as DOUBLEST.  */
-  if (sscanf (encoding, "_%" DOUBLEST_SCAN_FORMAT "_%" DOUBLEST_SCAN_FORMAT,
-	      &num, &den) < 2)
-    return -1.0;
+  if (sscanf (encoding, "_%lld_%lld", &num, &den) < 2)
+    return nullptr;
   else
-    return num / den;
+    return value_binop (value_from_longest (scale_type, num),
+			value_from_longest (scale_type, den), BINOP_DIV);
 }
 
 /* Assuming that ada_is_fixed_point_type (TYPE), return the scaling
    factor ('SMALL value) associated with the type.  */
 
-static DOUBLEST
-scaling_factor (struct type *type)
+struct value *
+ada_scaling_factor (struct type *type)
 {
   const char *encoding = fixed_type_info (type);
-  DOUBLEST num0, den0, num1, den1;
+  struct type *scale_type = ada_scaling_type (type);
+
+  long long num0, den0, num1, den1;
   int n;
 
-  /* Strictly speaking, num's and den's are encoded as integer.  However,
-     they may not fit into a long, and they will have to be converted
-     to DOUBLEST anyway.  So scan them as DOUBLEST.  */
-  n = sscanf (encoding,
-	      "_%" DOUBLEST_SCAN_FORMAT "_%" DOUBLEST_SCAN_FORMAT
-	      "_%" DOUBLEST_SCAN_FORMAT "_%" DOUBLEST_SCAN_FORMAT,
+  n = sscanf (encoding, "_%lld_%lld_%lld_%lld",
 	      &num0, &den0, &num1, &den1);
 
   if (n < 2)
-    return 1.0;
+    return value_from_longest (scale_type, 1);
   else if (n == 4)
-    return num1 / den1;
+    return value_binop (value_from_longest (scale_type, num1),
+			value_from_longest (scale_type, den1), BINOP_DIV);
   else
-    return num0 / den0;
-}
-
-
-/* Assuming that X is the representation of a value of fixed-point
-   type TYPE, return its floating-point equivalent.  */
-
-DOUBLEST
-ada_fixed_to_float (struct type *type, LONGEST x)
-{
-  return (DOUBLEST) x *scaling_factor (type);
-}
-
-/* The representation of a fixed-point value of type TYPE
-   corresponding to the value X.  */
-
-LONGEST
-ada_float_to_fixed (struct type *type, DOUBLEST x)
-{
-  return (LONGEST) (x / scaling_factor (type) + 0.5);
+    return value_binop (value_from_longest (scale_type, num0),
+			value_from_longest (scale_type, den0), BINOP_DIV);
 }
 
 
@@ -11614,46 +11777,44 @@ scan_discrim_bound (const char *str, int
    otherwise causes an error with message ERR_MSG.  */
 
 static struct value *
-get_var_value (char *name, char *err_msg)
+get_var_value (const char *name, const char *err_msg)
 {
-  struct block_symbol *syms;
-  int nsyms;
+  lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
 
-  nsyms = ada_lookup_symbol_list (name, get_selected_block (0), VAR_DOMAIN,
-                                  &syms);
+  struct block_symbol *syms;
+  int nsyms = ada_lookup_symbol_list_worker (lookup_name,
+					     get_selected_block (0),
+					     VAR_DOMAIN, &syms, 1);
+  struct cleanup *old_chain = make_cleanup (xfree, syms);
 
   if (nsyms != 1)
     {
+      do_cleanups (old_chain);
       if (err_msg == NULL)
         return 0;
       else
         error (("%s"), err_msg);
     }
 
-  return value_of_variable (syms[0].symbol, syms[0].block);
+  struct value *result = value_of_variable (syms[0].symbol, syms[0].block);
+  do_cleanups (old_chain);
+  return result;
 }
 
-/* Value of integer variable named NAME in the current environment.  If
-   no such variable found, returns 0, and sets *FLAG to 0.  If
-   successful, sets *FLAG to 1.  */
+/* Value of integer variable named NAME in the current environment.
+   If no such variable is found, returns false.  Otherwise, sets VALUE
+   to the variable's value and returns true.  */
 
-LONGEST
-get_int_var_value (char *name, int *flag)
+bool
+get_int_var_value (const char *name, LONGEST &value)
 {
   struct value *var_val = get_var_value (name, 0);
 
   if (var_val == 0)
-    {
-      if (flag != NULL)
-        *flag = 0;
-      return 0;
-    }
-  else
-    {
-      if (flag != NULL)
-        *flag = 1;
-      return value_as_long (var_val);
-    }
+    return false;
+
+  value = value_as_long (var_val);
+  return true;
 }
 
 
@@ -11725,11 +11886,8 @@ to_fixed_range_type (struct type *raw_ty
         }
       else
         {
-          int ok;
-
           strcpy (name_buf + prefix_len, "___L");
-          L = get_int_var_value (name_buf, &ok);
-          if (!ok)
+          if (!get_int_var_value (name_buf, L))
             {
               lim_warning (_("Unknown lower bound, using 1."));
               L = 1;
@@ -11744,11 +11902,8 @@ to_fixed_range_type (struct type *raw_ty
         }
       else
         {
-          int ok;
-
           strcpy (name_buf + prefix_len, "___U");
-          U = get_int_var_value (name_buf, &ok);
-          if (!ok)
+          if (!get_int_var_value (name_buf, U))
             {
               lim_warning (_("Unknown upper bound, using %ld."), (long) L);
               U = L;
@@ -11757,6 +11912,10 @@ to_fixed_range_type (struct type *raw_ty
 
       type = create_static_range_type (alloc_type_copy (raw_type),
 				       base_type, L, U);
+      /* create_static_range_type alters the resulting type's length
+         to match the size of the base_type, which is not what we want.
+         Set it back to the original range type's length.  */
+      TYPE_LENGTH (type) = TYPE_LENGTH (raw_type);
       TYPE_NAME (type) = name;
       return type;
     }
@@ -11860,6 +12019,10 @@ struct exception_support_info
       a catchpoint on failed assertions.  */
    const char *catch_assert_sym;
 
+   /* The name of the symbol to break on in order to insert
+      a catchpoint on exception handling.  */
+   const char *catch_handlers_sym;
+
    /* Assuming that the inferior just triggered an unhandled exception
       catchpoint, this function is responsible for returning the address
       in inferior memory where the name of that exception is stored.
@@ -11879,6 +12042,7 @@ static const struct exception_support_in
   "__gnat_debug_raise_exception", /* catch_exception_sym */
   "__gnat_unhandled_exception", /* catch_exception_unhandled_sym */
   "__gnat_debug_raise_assert_failure", /* catch_assert_sym */
+  "__gnat_begin_handler", /* catch_handlers_sym */
   ada_unhandled_exception_name_addr
 };
 
@@ -11891,6 +12055,7 @@ static const struct exception_support_in
   "__gnat_raise_nodefer_with_msg", /* catch_exception_sym */
   "__gnat_unhandled_exception", /* catch_exception_unhandled_sym */
   "system__assertions__raise_assert_failure",  /* catch_assert_sym */
+  "__gnat_begin_handler", /* catch_handlers_sym */
   ada_unhandled_exception_name_addr_from_raise
 };
 
@@ -12011,8 +12176,6 @@ ada_exception_support_info_sniffer (void
 static int
 is_known_support_routine (struct frame_info *frame)
 {
-  struct symtab_and_line sal;
-  char *func_name;
   enum language func_lang;
   int i;
   const char *fullname;
@@ -12020,7 +12183,7 @@ is_known_support_routine (struct frame_i
   /* If this code does not have any debugging information (no symtab),
      This cannot be any user code.  */
 
-  find_frame_sal (frame, &sal);
+  symtab_and_line sal = find_frame_sal (frame);
   if (sal.symtab == NULL)
     return 1;
 
@@ -12051,21 +12214,18 @@ is_known_support_routine (struct frame_i
 
   /* Check whether the function is a GNAT-generated entity.  */
 
-  find_frame_funname (frame, &func_name, &func_lang, NULL);
+  gdb::unique_xmalloc_ptr<char> func_name
+    = find_frame_funname (frame, &func_lang, NULL);
   if (func_name == NULL)
     return 1;
 
   for (i = 0; known_auxiliary_function_name_patterns[i] != NULL; i += 1)
     {
       re_comp (known_auxiliary_function_name_patterns[i]);
-      if (re_exec (func_name))
-	{
-	  xfree (func_name);
-	  return 1;
-	}
+      if (re_exec (func_name.get ()))
+	return 1;
     }
 
-  xfree (func_name);
   return 0;
 }
 
@@ -12109,7 +12269,6 @@ ada_unhandled_exception_name_addr_from_r
   int frame_level;
   struct frame_info *fi;
   struct ada_inferior_data *data = get_ada_inferior_data (current_inferior ());
-  struct cleanup *old_chain;
 
   /* To determine the name of this exception, we need to select
      the frame corresponding to RAISE_SYM_NAME.  This frame is
@@ -12120,24 +12279,20 @@ ada_unhandled_exception_name_addr_from_r
     if (fi != NULL)
       fi = get_prev_frame (fi); 
 
-  old_chain = make_cleanup (null_cleanup, NULL);
   while (fi != NULL)
     {
-      char *func_name;
       enum language func_lang;
 
-      find_frame_funname (fi, &func_name, &func_lang, NULL);
+      gdb::unique_xmalloc_ptr<char> func_name
+	= find_frame_funname (fi, &func_lang, NULL);
       if (func_name != NULL)
 	{
-	  make_cleanup (xfree, func_name);
-
-          if (strcmp (func_name,
+          if (strcmp (func_name.get (),
 		      data->exception_info->catch_exception_sym) == 0)
 	    break; /* We found the frame we were looking for...  */
 	  fi = get_prev_frame (fi);
 	}
     }
-  do_cleanups (old_chain);
 
   if (fi == NULL)
     return 0;
@@ -12169,7 +12324,12 @@ ada_exception_name_addr_1 (enum ada_exce
       case ada_catch_exception_unhandled:
         return data->exception_info->unhandled_exception_name_addr ();
         break;
-      
+
+      case ada_catch_handlers:
+        return 0;  /* The runtimes does not provide access to the exception
+		      name.  */
+        break;
+
       case ada_catch_assert:
         return 0;  /* Exception name is not relevant in this case.  */
         break;
@@ -12182,6 +12342,73 @@ ada_exception_name_addr_1 (enum ada_exce
   return 0; /* Should never be reached.  */
 }
 
+/* Assuming the inferior is stopped at an exception catchpoint,
+   return the message which was associated to the exception, if
+   available.  Return NULL if the message could not be retrieved.
+
+   The caller must xfree the string after use.
+
+   Note: The exception message can be associated to an exception
+   either through the use of the Raise_Exception function, or
+   more simply (Ada 2005 and later), via:
+
+       raise Exception_Name with "exception message";
+
+   */
+
+static char *
+ada_exception_message_1 (void)
+{
+  struct value *e_msg_val;
+  char *e_msg = NULL;
+  int e_msg_len;
+  struct cleanup *cleanups;
+
+  /* For runtimes that support this feature, the exception message
+     is passed as an unbounded string argument called "message".  */
+  e_msg_val = parse_and_eval ("message");
+  if (e_msg_val == NULL)
+    return NULL; /* Exception message not supported.  */
+
+  e_msg_val = ada_coerce_to_simple_array (e_msg_val);
+  gdb_assert (e_msg_val != NULL);
+  e_msg_len = TYPE_LENGTH (value_type (e_msg_val));
+
+  /* If the message string is empty, then treat it as if there was
+     no exception message.  */
+  if (e_msg_len <= 0)
+    return NULL;
+
+  e_msg = (char *) xmalloc (e_msg_len + 1);
+  cleanups = make_cleanup (xfree, e_msg);
+  read_memory_string (value_address (e_msg_val), e_msg, e_msg_len + 1);
+  e_msg[e_msg_len] = '\0';
+
+  discard_cleanups (cleanups);
+  return e_msg;
+}
+
+/* Same as ada_exception_message_1, except that all exceptions are
+   contained here (returning NULL instead).  */
+
+static char *
+ada_exception_message (void)
+{
+  char *e_msg = NULL;  /* Avoid a spurious uninitialized warning.  */
+
+  TRY
+    {
+      e_msg = ada_exception_message_1 ();
+    }
+  CATCH (e, RETURN_MASK_ERROR)
+    {
+      e_msg = NULL;
+    }
+  END_CATCH
+
+  return e_msg;
+}
+
 /* Same as ada_exception_name_addr_1, except that it intercepts and contains
    any error that ada_exception_name_addr_1 might cause to be thrown.
    When an error is intercepted, a warning with the error message is printed,
@@ -12208,7 +12435,9 @@ ada_exception_name_addr (enum ada_except
   return result;
 }
 
-static char *ada_exception_catchpoint_cond_string (const char *excep_string);
+static char *ada_exception_catchpoint_cond_string
+  (const char *excep_string,
+   enum ada_exception_catchpoint_kind ex);
 
 /* Ada catchpoints.
 
@@ -12224,14 +12453,14 @@ static char *ada_exception_catchpoint_co
    when symbols change.  */
 
 /* An instance of this type is used to represent an Ada catchpoint
-   breakpoint location.  It includes a "struct bp_location" as a kind
-   of base class; users downcast to "struct bp_location *" when
-   needed.  */
+   breakpoint location.  */
 
-struct ada_catchpoint_location
+class ada_catchpoint_location : public bp_location
 {
-  /* The base class.  */
-  struct bp_location base;
+public:
+  ada_catchpoint_location (const bp_location_ops *ops, breakpoint *owner)
+    : bp_location (ops, owner)
+  {}
 
   /* The condition that checks whether the exception that was raised
      is the specific exception the user specified on catchpoint
@@ -12257,14 +12486,11 @@ static const struct bp_location_ops ada_
   ada_catchpoint_location_dtor
 };
 
-/* An instance of this type is used to represent an Ada catchpoint.
-   It includes a "struct breakpoint" as a kind of base class; users
-   downcast to "struct breakpoint *" when needed.  */
+/* An instance of this type is used to represent an Ada catchpoint.  */
 
-struct ada_catchpoint
+struct ada_catchpoint : public breakpoint
 {
-  /* The base class.  */
-  struct breakpoint base;
+  ~ada_catchpoint () override;
 
   /* The name of the specific exception the user specified.  */
   char *excep_string;
@@ -12274,7 +12500,8 @@ struct ada_catchpoint
    catchpoint's locations, and store them for later evaluation.  */
 
 static void
-create_excep_cond_exprs (struct ada_catchpoint *c)
+create_excep_cond_exprs (struct ada_catchpoint *c,
+                         enum ada_exception_catchpoint_kind ex)
 {
   struct cleanup *old_chain;
   struct bp_location *bl;
@@ -12285,17 +12512,17 @@ create_excep_cond_exprs (struct ada_catc
     return;
 
   /* Same if there are no locations... */
-  if (c->base.loc == NULL)
+  if (c->loc == NULL)
     return;
 
   /* Compute the condition expression in text form, from the specific
      expection we want to catch.  */
-  cond_string = ada_exception_catchpoint_cond_string (c->excep_string);
+  cond_string = ada_exception_catchpoint_cond_string (c->excep_string, ex);
   old_chain = make_cleanup (xfree, cond_string);
 
   /* Iterate over all the catchpoint's locations, and parse an
      expression for each.  */
-  for (bl = c->base.loc; bl != NULL; bl = bl->next)
+  for (bl = c->loc; bl != NULL; bl = bl->next)
     {
       struct ada_catchpoint_location *ada_loc
 	= (struct ada_catchpoint_location *) bl;
@@ -12316,7 +12543,7 @@ create_excep_cond_exprs (struct ada_catc
 	    {
 	      warning (_("failed to reevaluate internal exception condition "
 			 "for catchpoint %d: %s"),
-		       c->base.number, e.message);
+		       c->number, e.message);
 	    }
 	  END_CATCH
 	}
@@ -12327,17 +12554,11 @@ create_excep_cond_exprs (struct ada_catc
   do_cleanups (old_chain);
 }
 
-/* Implement the DTOR method in the breakpoint_ops structure for all
-   exception catchpoint kinds.  */
+/* ada_catchpoint destructor.  */
 
-static void
-dtor_exception (enum ada_exception_catchpoint_kind ex, struct breakpoint *b)
+ada_catchpoint::~ada_catchpoint ()
 {
-  struct ada_catchpoint *c = (struct ada_catchpoint *) b;
-
-  xfree (c->excep_string);
-
-  bkpt_breakpoint_ops.dtor (b);
+  xfree (this->excep_string);
 }
 
 /* Implement the ALLOCATE_LOCATION method in the breakpoint_ops
@@ -12347,12 +12568,7 @@ static struct bp_location *
 allocate_location_exception (enum ada_exception_catchpoint_kind ex,
 			     struct breakpoint *self)
 {
-  struct ada_catchpoint_location *loc;
-
-  loc = new ada_catchpoint_location ();
-  init_bp_location (&loc->base, &ada_catchpoint_location_ops, self);
-  loc->excep_cond_expr = NULL;
-  return &loc->base;
+  return new ada_catchpoint_location (&ada_catchpoint_location_ops, self);
 }
 
 /* Implement the RE_SET method in the breakpoint_ops structure for all
@@ -12369,7 +12585,7 @@ re_set_exception (enum ada_exception_cat
 
   /* Reparse the exception conditional expressions.  One for each
      location.  */
-  create_excep_cond_exprs (c);
+  create_excep_cond_exprs (c, ex);
 }
 
 /* Returns true if we should stop for this breakpoint hit.  If the
@@ -12431,6 +12647,7 @@ print_it_exception (enum ada_exception_c
 {
   struct ui_out *uiout = current_uiout;
   struct breakpoint *b = bs->breakpoint_at;
+  char *exception_message;
 
   annotate_catchpoint (b->number);
 
@@ -12457,6 +12674,7 @@ print_it_exception (enum ada_exception_c
     {
       case ada_catch_exception:
       case ada_catch_exception_unhandled:
+      case ada_catch_handlers:
 	{
 	  const CORE_ADDR addr = ada_exception_name_addr (ex, b);
 	  char exception_name[256];
@@ -12496,6 +12714,19 @@ print_it_exception (enum ada_exception_c
 	uiout->text ("failed assertion");
 	break;
     }
+
+  exception_message = ada_exception_message ();
+  if (exception_message != NULL)
+    {
+      struct cleanup *cleanups = make_cleanup (xfree, exception_message);
+
+      uiout->text (" (");
+      uiout->field_string ("exception-message", exception_message);
+      uiout->text (")");
+
+      do_cleanups (cleanups);
+    }
+
   uiout->text (" at ");
   ada_find_printable_frame (get_current_frame ());
 
@@ -12541,6 +12772,17 @@ print_one_exception (enum ada_exception_
         uiout->field_string ("what", "unhandled Ada exceptions");
         break;
       
+      case ada_catch_handlers:
+        if (c->excep_string != NULL)
+          {
+	    uiout->field_fmt ("what",
+			      _("`%s' Ada exception handlers"),
+			      c->excep_string);
+          }
+        else
+	  uiout->field_string ("what", "all Ada exceptions handlers");
+        break;
+
       case ada_catch_assert:
         uiout->field_string ("what", "failed Ada assertions");
         break;
@@ -12584,7 +12826,19 @@ print_mention_exception (enum ada_except
       case ada_catch_exception_unhandled:
         uiout->text (_("unhandled Ada exceptions"));
         break;
-      
+
+      case ada_catch_handlers:
+        if (c->excep_string != NULL)
+	  {
+	    std::string info
+	      = string_printf (_("`%s' Ada exception handlers"),
+			       c->excep_string);
+	    uiout->text (info.c_str ());
+	  }
+        else
+          uiout->text (_("all Ada exceptions handlers"));
+        break;
+
       case ada_catch_assert:
         uiout->text (_("failed Ada assertions"));
         break;
@@ -12616,6 +12870,10 @@ print_recreate_exception (enum ada_excep
 	fprintf_filtered (fp, "catch exception unhandled");
 	break;
 
+      case ada_catch_handlers:
+	fprintf_filtered (fp, "catch handlers");
+	break;
+
       case ada_catch_assert:
 	fprintf_filtered (fp, "catch assert");
 	break;
@@ -12628,12 +12886,6 @@ print_recreate_exception (enum ada_excep
 
 /* Virtual table for "catch exception" breakpoints.  */
 
-static void
-dtor_catch_exception (struct breakpoint *b)
-{
-  dtor_exception (ada_catch_exception, b);
-}
-
 static struct bp_location *
 allocate_location_catch_exception (struct breakpoint *self)
 {
@@ -12680,12 +12932,6 @@ static struct breakpoint_ops catch_excep
 
 /* Virtual table for "catch exception unhandled" breakpoints.  */
 
-static void
-dtor_catch_exception_unhandled (struct breakpoint *b)
-{
-  dtor_exception (ada_catch_exception_unhandled, b);
-}
-
 static struct bp_location *
 allocate_location_catch_exception_unhandled (struct breakpoint *self)
 {
@@ -12734,12 +12980,6 @@ static struct breakpoint_ops catch_excep
 
 /* Virtual table for "catch assert" breakpoints.  */
 
-static void
-dtor_catch_assert (struct breakpoint *b)
-{
-  dtor_exception (ada_catch_assert, b);
-}
-
 static struct bp_location *
 allocate_location_catch_assert (struct breakpoint *self)
 {
@@ -12784,6 +13024,54 @@ print_recreate_catch_assert (struct brea
 
 static struct breakpoint_ops catch_assert_breakpoint_ops;
 
+/* Virtual table for "catch handlers" breakpoints.  */
+
+static struct bp_location *
+allocate_location_catch_handlers (struct breakpoint *self)
+{
+  return allocate_location_exception (ada_catch_handlers, self);
+}
+
+static void
+re_set_catch_handlers (struct breakpoint *b)
+{
+  re_set_exception (ada_catch_handlers, b);
+}
+
+static void
+check_status_catch_handlers (bpstat bs)
+{
+  check_status_exception (ada_catch_handlers, bs);
+}
+
+static enum print_stop_action
+print_it_catch_handlers (bpstat bs)
+{
+  return print_it_exception (ada_catch_handlers, bs);
+}
+
+static void
+print_one_catch_handlers (struct breakpoint *b,
+			  struct bp_location **last_loc)
+{
+  print_one_exception (ada_catch_handlers, b, last_loc);
+}
+
+static void
+print_mention_catch_handlers (struct breakpoint *b)
+{
+  print_mention_exception (ada_catch_handlers, b);
+}
+
+static void
+print_recreate_catch_handlers (struct breakpoint *b,
+			       struct ui_file *fp)
+{
+  print_recreate_exception (ada_catch_handlers, b, fp);
+}
+
+static struct breakpoint_ops catch_handlers_breakpoint_ops;
+
 /* Return a newly allocated copy of the first space-separated token
    in ARGSP, and then adjust ARGSP to point immediately after that
    token.
@@ -12797,13 +13085,13 @@ ada_get_next_arg (const char **argsp)
   const char *end;
   char *result;
 
-  args = skip_spaces_const (args);
+  args = skip_spaces (args);
   if (args[0] == '\0')
     return NULL; /* No more arguments.  */
   
   /* Find the end of the current argument.  */
 
-  end = skip_to_space_const (args);
+  end = skip_to_space (args);
 
   /* Adjust ARGSP to point to the start of the next argument.  */
 
@@ -12822,12 +13110,15 @@ ada_get_next_arg (const char **argsp)
    Set EX to the appropriate catchpoint type.
    Set EXCEP_STRING to the name of the specific exception if
    specified by the user.
+   IS_CATCH_HANDLERS_CMD: True if the arguments are for a
+   "catch handlers" command.  False otherwise.
    If a condition is found at the end of the arguments, the condition
    expression is stored in COND_STRING (memory must be deallocated
    after use).  Otherwise COND_STRING is set to NULL.  */
 
 static void
 catch_ada_exception_command_split (const char *args,
+				   bool is_catch_handlers_cmd,
                                    enum ada_exception_catchpoint_kind *ex,
 				   char **excep_string,
 				   char **cond_string)
@@ -12850,12 +13141,12 @@ catch_ada_exception_command_split (const
 
   /* Check to see if we have a condition.  */
 
-  args = skip_spaces_const (args);
+  args = skip_spaces (args);
   if (startswith (args, "if")
       && (isspace (args[2]) || args[2] == '\0'))
     {
       args += 2;
-      args = skip_spaces_const (args);
+      args = skip_spaces (args);
 
       if (args[0] == '\0')
         error (_("Condition missing after `if' keyword"));
@@ -12873,7 +13164,13 @@ catch_ada_exception_command_split (const
 
   discard_cleanups (old_chain);
 
-  if (exception_name == NULL)
+  if (is_catch_handlers_cmd)
+    {
+      /* Catch handling of exceptions.  */
+      *ex = ada_catch_handlers;
+      *excep_string = exception_name;
+    }
+  else if (exception_name == NULL)
     {
       /* Catch all exceptions.  */
       *ex = ada_catch_exception;
@@ -12915,6 +13212,9 @@ ada_exception_sym_name (enum ada_excepti
       case ada_catch_assert:
         return (data->exception_info->catch_assert_sym);
         break;
+      case ada_catch_handlers:
+        return (data->exception_info->catch_handlers_sym);
+        break;
       default:
         internal_error (__FILE__, __LINE__,
                         _("unexpected catchpoint kind (%d)"), ex);
@@ -12938,6 +13238,9 @@ ada_exception_breakpoint_ops (enum ada_e
       case ada_catch_assert:
         return (&catch_assert_breakpoint_ops);
         break;
+      case ada_catch_handlers:
+        return (&catch_handlers_breakpoint_ops);
+        break;
       default:
         internal_error (__FILE__, __LINE__,
                         _("unexpected catchpoint kind (%d)"), ex);
@@ -12948,14 +13251,29 @@ ada_exception_breakpoint_ops (enum ada_e
    being raised with the exception that the user wants to catch.  This
    assumes that this condition is used when the inferior just triggered
    an exception catchpoint.
+   EX: the type of catchpoints used for catching Ada exceptions.
    
    The string returned is a newly allocated string that needs to be
    deallocated later.  */
 
 static char *
-ada_exception_catchpoint_cond_string (const char *excep_string)
+ada_exception_catchpoint_cond_string (const char *excep_string,
+                                      enum ada_exception_catchpoint_kind ex)
 {
   int i;
+  bool is_standard_exc = false;
+  const char *actual_exc_expr;
+  char *ref_exc_expr;
+
+  if (ex == ada_catch_handlers)
+    {
+      /* For exception handlers catchpoints, the condition string does
+         not use the same parameter as for the other exceptions.  */
+      actual_exc_expr = ("long_integer (GNAT_GCC_exception_Access"
+			 "(gcc_exception).all.occurrence.id)");
+    }
+  else
+    actual_exc_expr = "long_integer (e)";
 
   /* The standard exceptions are a special case.  They are defined in
      runtime units that have been compiled without debugging info; if
@@ -12980,11 +13298,19 @@ ada_exception_catchpoint_cond_string (co
     {
       if (strcmp (standard_exc [i], excep_string) == 0)
 	{
-          return xstrprintf ("long_integer (e) = long_integer (&standard.%s)",
-                             excep_string);
+	  is_standard_exc = true;
+	  break;
 	}
     }
-  return xstrprintf ("long_integer (e) = long_integer (&%s)", excep_string);
+
+  if (is_standard_exc)
+    ref_exc_expr = xstrprintf ("long_integer (&standard.%s)", excep_string);
+  else
+    ref_exc_expr = xstrprintf ("long_integer (&%s)", excep_string);
+
+  char *result =  xstrprintf ("%s = %s", actual_exc_expr, ref_exc_expr);
+  xfree (ref_exc_expr);
+  return result;
 }
 
 /* Return the symtab_and_line that should be used to insert an exception
@@ -12999,7 +13325,7 @@ ada_exception_catchpoint_cond_string (co
 
 static struct symtab_and_line
 ada_exception_sal (enum ada_exception_catchpoint_kind ex, char *excep_string,
-		   char **addr_string, const struct breakpoint_ops **ops)
+		   const char **addr_string, const struct breakpoint_ops **ops)
 {
   const char *sym_name;
   struct symbol *sym;
@@ -13058,26 +13384,25 @@ create_ada_exception_catchpoint (struct 
 				 int disabled,
 				 int from_tty)
 {
-  struct ada_catchpoint *c;
-  char *addr_string = NULL;
+  const char *addr_string = NULL;
   const struct breakpoint_ops *ops = NULL;
   struct symtab_and_line sal
     = ada_exception_sal (ex_kind, excep_string, &addr_string, &ops);
 
-  c = new ada_catchpoint ();
-  init_ada_exception_breakpoint (&c->base, gdbarch, sal, addr_string,
+  std::unique_ptr<ada_catchpoint> c (new ada_catchpoint ());
+  init_ada_exception_breakpoint (c.get (), gdbarch, sal, addr_string,
 				 ops, tempflag, disabled, from_tty);
   c->excep_string = excep_string;
-  create_excep_cond_exprs (c);
+  create_excep_cond_exprs (c.get (), ex_kind);
   if (cond_string != NULL)
-    set_breakpoint_condition (&c->base, cond_string, from_tty);
-  install_breakpoint (0, &c->base, 1);
+    set_breakpoint_condition (c.get (), cond_string, from_tty);
+  install_breakpoint (0, std::move (c), 1);
 }
 
 /* Implement the "catch exception" command.  */
 
 static void
-catch_ada_exception_command (char *arg_entry, int from_tty,
+catch_ada_exception_command (const char *arg_entry, int from_tty,
 			     struct cmd_list_element *command)
 {
   const char *arg = arg_entry;
@@ -13091,7 +13416,32 @@ catch_ada_exception_command (char *arg_e
 
   if (!arg)
     arg = "";
-  catch_ada_exception_command_split (arg, &ex_kind, &excep_string,
+  catch_ada_exception_command_split (arg, false, &ex_kind, &excep_string,
+				     &cond_string);
+  create_ada_exception_catchpoint (gdbarch, ex_kind,
+				   excep_string, cond_string,
+				   tempflag, 1 /* enabled */,
+				   from_tty);
+}
+
+/* Implement the "catch handlers" command.  */
+
+static void
+catch_ada_handlers_command (const char *arg_entry, int from_tty,
+			    struct cmd_list_element *command)
+{
+  const char *arg = arg_entry;
+  struct gdbarch *gdbarch = get_current_arch ();
+  int tempflag;
+  enum ada_exception_catchpoint_kind ex_kind;
+  char *excep_string = NULL;
+  char *cond_string = NULL;
+
+  tempflag = get_cmd_context (command) == CATCH_TEMPORARY;
+
+  if (!arg)
+    arg = "";
+  catch_ada_exception_command_split (arg, true, &ex_kind, &excep_string,
 				     &cond_string);
   create_ada_exception_catchpoint (gdbarch, ex_kind,
 				   excep_string, cond_string,
@@ -13110,14 +13460,14 @@ catch_ada_exception_command (char *arg_e
 static void
 catch_ada_assert_command_split (const char *args, char **cond_string)
 {
-  args = skip_spaces_const (args);
+  args = skip_spaces (args);
 
   /* Check whether a condition was provided.  */
   if (startswith (args, "if")
       && (isspace (args[2]) || args[2] == '\0'))
     {
       args += 2;
-      args = skip_spaces_const (args);
+      args = skip_spaces (args);
       if (args[0] == '\0')
         error (_("condition missing after `if' keyword"));
       *cond_string = xstrdup (args);
@@ -13132,7 +13482,7 @@ catch_ada_assert_command_split (const ch
 /* Implement the "catch assert" command.  */
 
 static void
-catch_assert_command (char *arg_entry, int from_tty,
+catch_assert_command (const char *arg_entry, int from_tty,
 		      struct cmd_list_element *command)
 {
   const char *arg = arg_entry;
@@ -13190,29 +13540,29 @@ ada_is_non_standard_exception_sym (struc
   return 1;
 }
 
-/* A helper function for qsort, comparing two struct ada_exc_info
+/* A helper function for std::sort, comparing two struct ada_exc_info
    objects.
 
    The comparison is determined first by exception name, and then
    by exception address.  */
 
-static int
-compare_ada_exception_info (const void *a, const void *b)
+bool
+ada_exc_info::operator< (const ada_exc_info &other) const
 {
-  const struct ada_exc_info *exc_a = (struct ada_exc_info *) a;
-  const struct ada_exc_info *exc_b = (struct ada_exc_info *) b;
   int result;
 
-  result = strcmp (exc_a->name, exc_b->name);
-  if (result != 0)
-    return result;
-
-  if (exc_a->addr < exc_b->addr)
-    return -1;
-  if (exc_a->addr > exc_b->addr)
-    return 1;
+  result = strcmp (name, other.name);
+  if (result < 0)
+    return true;
+  if (result == 0 && addr < other.addr)
+    return true;
+  return false;
+}
 
-  return 0;
+bool
+ada_exc_info::operator== (const ada_exc_info &other) const
+{
+  return addr == other.addr && strcmp (name, other.name) == 0;
 }
 
 /* Sort EXCEPTIONS using compare_ada_exception_info as the comparison
@@ -13221,23 +13571,12 @@ compare_ada_exception_info (const void *
    All duplicates are also removed.  */
 
 static void
-sort_remove_dups_ada_exceptions_list (VEC(ada_exc_info) **exceptions,
+sort_remove_dups_ada_exceptions_list (std::vector<ada_exc_info> *exceptions,
 				      int skip)
 {
-  struct ada_exc_info *to_sort
-    = VEC_address (ada_exc_info, *exceptions) + skip;
-  int to_sort_len
-    = VEC_length (ada_exc_info, *exceptions) - skip;
-  int i, j;
-
-  qsort (to_sort, to_sort_len, sizeof (struct ada_exc_info),
-	 compare_ada_exception_info);
-
-  for (i = 1, j = 1; i < to_sort_len; i++)
-    if (compare_ada_exception_info (&to_sort[i], &to_sort[j - 1]) != 0)
-      to_sort[j++] = to_sort[i];
-  to_sort_len = j;
-  VEC_truncate(ada_exc_info, *exceptions, skip + to_sort_len);
+  std::sort (exceptions->begin () + skip, exceptions->end ());
+  exceptions->erase (std::unique (exceptions->begin () + skip, exceptions->end ()),
+		     exceptions->end ());
 }
 
 /* Add all exceptions defined by the Ada standard whose name match
@@ -13251,14 +13590,15 @@ sort_remove_dups_ada_exceptions_list (VE
    gets pushed.  */
 
 static void
-ada_add_standard_exceptions (regex_t *preg, VEC(ada_exc_info) **exceptions)
+ada_add_standard_exceptions (compiled_regex *preg,
+			     std::vector<ada_exc_info> *exceptions)
 {
   int i;
 
   for (i = 0; i < ARRAY_SIZE (standard_exc); i++)
     {
       if (preg == NULL
-	  || regexec (preg, standard_exc[i], 0, NULL, 0) == 0)
+	  || preg->exec (standard_exc[i], 0, NULL, 0) == 0)
 	{
 	  struct bound_minimal_symbol msymbol
 	    = ada_lookup_simple_minsym (standard_exc[i]);
@@ -13268,7 +13608,7 @@ ada_add_standard_exceptions (regex_t *pr
 	      struct ada_exc_info info
 		= {standard_exc[i], BMSYMBOL_VALUE_ADDRESS (msymbol)};
 
-	      VEC_safe_push (ada_exc_info, *exceptions, &info);
+	      exceptions->push_back (info);
 	    }
 	}
     }
@@ -13285,8 +13625,9 @@ ada_add_standard_exceptions (regex_t *pr
    gets pushed.  */
 
 static void
-ada_add_exceptions_from_frame (regex_t *preg, struct frame_info *frame,
-			       VEC(ada_exc_info) **exceptions)
+ada_add_exceptions_from_frame (compiled_regex *preg,
+			       struct frame_info *frame,
+			       std::vector<ada_exc_info> *exceptions)
 {
   const struct block *block = get_frame_block (frame, 0);
 
@@ -13309,7 +13650,7 @@ ada_add_exceptions_from_frame (regex_t *
 		  struct ada_exc_info info = {SYMBOL_PRINT_NAME (sym),
 					      SYMBOL_VALUE_ADDRESS (sym)};
 
-		  VEC_safe_push (ada_exc_info, *exceptions, &info);
+		  exceptions->push_back (info);
 		}
 	    }
 	}
@@ -13322,10 +13663,10 @@ ada_add_exceptions_from_frame (regex_t *
 /* Return true if NAME matches PREG or if PREG is NULL.  */
 
 static bool
-name_matches_regex (const char *name, regex_t *preg)
+name_matches_regex (const char *name, compiled_regex *preg)
 {
   return (preg == NULL
-	  || regexec (preg, ada_decode (name), 0, NULL, 0) == 0);
+	  || preg->exec (ada_decode (name), 0, NULL, 0) == 0);
 }
 
 /* Add all exceptions defined globally whose name name match
@@ -13348,7 +13689,8 @@ name_matches_regex (const char *name, re
    gets pushed.  */
 
 static void
-ada_add_global_exceptions (regex_t *preg, VEC(ada_exc_info) **exceptions)
+ada_add_global_exceptions (compiled_regex *preg,
+			   std::vector<ada_exc_info> *exceptions)
 {
   struct objfile *objfile;
   struct compunit_symtab *s;
@@ -13357,6 +13699,7 @@ ada_add_global_exceptions (regex_t *preg
      regular expression used to do the matching refers to the natural
      name.  So match against the decoded name.  */
   expand_symtabs_matching (NULL,
+			   lookup_name_info::match_any (),
 			   [&] (const char *search_name)
 			   {
 			     const char *decoded = ada_decode (search_name);
@@ -13383,7 +13726,7 @@ ada_add_global_exceptions (regex_t *preg
 		struct ada_exc_info info
 		  = {SYMBOL_PRINT_NAME (sym), SYMBOL_VALUE_ADDRESS (sym)};
 
-		VEC_safe_push (ada_exc_info, *exceptions, &info);
+		exceptions->push_back (info);
 	      }
 	}
     }
@@ -13395,12 +13738,10 @@ ada_add_global_exceptions (regex_t *preg
    If not NULL, PREG is used to filter out exceptions whose names
    do not match.  Otherwise, all exceptions are listed.  */
 
-static VEC(ada_exc_info) *
-ada_exceptions_list_1 (regex_t *preg)
+static std::vector<ada_exc_info>
+ada_exceptions_list_1 (compiled_regex *preg)
 {
-  VEC(ada_exc_info) *result = NULL;
-  struct cleanup *old_chain
-    = make_cleanup (VEC_cleanup (ada_exc_info), &result);
+  std::vector<ada_exc_info> result;
   int prev_len;
 
   /* First, list the known standard exceptions.  These exceptions
@@ -13414,21 +13755,20 @@ ada_exceptions_list_1 (regex_t *preg)
 
   if (has_stack_frames ())
     {
-      prev_len = VEC_length (ada_exc_info, result);
+      prev_len = result.size ();
       ada_add_exceptions_from_frame (preg, get_selected_frame (NULL),
 				     &result);
-      if (VEC_length (ada_exc_info, result) > prev_len)
+      if (result.size () > prev_len)
 	sort_remove_dups_ada_exceptions_list (&result, prev_len);
     }
 
   /* Add all exceptions whose scope is global.  */
 
-  prev_len = VEC_length (ada_exc_info, result);
+  prev_len = result.size ();
   ada_add_global_exceptions (preg, &result);
-  if (VEC_length (ada_exc_info, result) > prev_len)
+  if (result.size () > prev_len)
     sort_remove_dups_ada_exceptions_list (&result, prev_len);
 
-  discard_cleanups (old_chain);
   return result;
 }
 
@@ -13446,37 +13786,24 @@ ada_exceptions_list_1 (regex_t *preg)
        alphabetical order;
      - Exceptions whose scope is global, in alphabetical order.  */
 
-VEC(ada_exc_info) *
+std::vector<ada_exc_info>
 ada_exceptions_list (const char *regexp)
 {
-  VEC(ada_exc_info) *result = NULL;
-  struct cleanup *old_chain = NULL;
-  regex_t reg;
-
-  if (regexp != NULL)
-    old_chain = compile_rx_or_error (&reg, regexp,
-				     _("invalid regular expression"));
-
-  result = ada_exceptions_list_1 (regexp != NULL ? &reg : NULL);
+  if (regexp == NULL)
+    return ada_exceptions_list_1 (NULL);
 
-  if (old_chain != NULL)
-    do_cleanups (old_chain);
-  return result;
+  compiled_regex reg (regexp, REG_NOSUB, _("invalid regular expression"));
+  return ada_exceptions_list_1 (&reg);
 }
 
 /* Implement the "info exceptions" command.  */
 
 static void
-info_exceptions_command (char *regexp, int from_tty)
+info_exceptions_command (const char *regexp, int from_tty)
 {
-  VEC(ada_exc_info) *exceptions;
-  struct cleanup *cleanup;
   struct gdbarch *gdbarch = get_current_arch ();
-  int ix;
-  struct ada_exc_info *info;
 
-  exceptions = ada_exceptions_list (regexp);
-  cleanup = make_cleanup (VEC_cleanup (ada_exc_info), &exceptions);
+  std::vector<ada_exc_info> exceptions = ada_exceptions_list (regexp);
 
   if (regexp != NULL)
     printf_filtered
@@ -13484,10 +13811,8 @@ info_exceptions_command (char *regexp, i
   else
     printf_filtered (_("All defined Ada exceptions:\n"));
 
-  for (ix = 0; VEC_iterate(ada_exc_info, exceptions, ix, info); ix++)
-    printf_filtered ("%s: %s\n", info->name, paddress (gdbarch, info->addr));
-
-  do_cleanups (cleanup);
+  for (const ada_exc_info &info : exceptions)
+    printf_filtered ("%s: %s\n", info.name, paddress (gdbarch, info.addr));
 }
 
                                 /* Operators */
@@ -13892,6 +14217,7 @@ enum ada_primitive_types {
   ada_primitive_type_natural,
   ada_primitive_type_positive,
   ada_primitive_type_system_address,
+  ada_primitive_type_storage_offset,
   nr_ada_primitive_types
 };
 
@@ -13939,10 +14265,23 @@ ada_language_arch_info (struct gdbarch *
     = builtin->builtin_void;
 
   lai->primitive_type_vector [ada_primitive_type_system_address]
-    = lookup_pointer_type (arch_type (gdbarch, TYPE_CODE_VOID, 1, "void"));
+    = lookup_pointer_type (arch_type (gdbarch, TYPE_CODE_VOID, TARGET_CHAR_BIT,
+				      "void"));
   TYPE_NAME (lai->primitive_type_vector [ada_primitive_type_system_address])
     = "system__address";
 
+  /* Create the equivalent of the System.Storage_Elements.Storage_Offset
+     type.  This is a signed integral type whose size is the same as
+     the size of addresses.  */
+  {
+    unsigned int addr_length = TYPE_LENGTH
+      (lai->primitive_type_vector [ada_primitive_type_system_address]);
+
+    lai->primitive_type_vector [ada_primitive_type_storage_offset]
+      = arch_integer_type (gdbarch, addr_length * HOST_CHAR_BIT, 0,
+			   "storage_offset");
+  }
+
   lai->bool_type_symbol = NULL;
   lai->bool_type_default = builtin->builtin_bool;
 }
@@ -13973,16 +14312,139 @@ static const struct exp_descriptor ada_e
   ada_evaluate_subexp
 };
 
-/* Implement the "la_get_symbol_name_cmp" language_defn method
-   for Ada.  */
+/* symbol_name_matcher_ftype adapter for wild_match.  */
+
+static bool
+do_wild_match (const char *symbol_search_name,
+	       const lookup_name_info &lookup_name,
+	       completion_match_result *comp_match_res)
+{
+  return wild_match (symbol_search_name, ada_lookup_name (lookup_name));
+}
+
+/* symbol_name_matcher_ftype adapter for full_match.  */
 
-static symbol_name_cmp_ftype
-ada_get_symbol_name_cmp (const char *lookup_name)
+static bool
+do_full_match (const char *symbol_search_name,
+	       const lookup_name_info &lookup_name,
+	       completion_match_result *comp_match_res)
+{
+  return full_match (symbol_search_name, ada_lookup_name (lookup_name));
+}
+
+/* Build the Ada lookup name for LOOKUP_NAME.  */
+
+ada_lookup_name_info::ada_lookup_name_info (const lookup_name_info &lookup_name)
 {
-  if (should_use_wild_match (lookup_name))
-    return wild_match;
+  const std::string &user_name = lookup_name.name ();
+
+  if (user_name[0] == '<')
+    {
+      if (user_name.back () == '>')
+	m_encoded_name = user_name.substr (1, user_name.size () - 2);
+      else
+	m_encoded_name = user_name.substr (1, user_name.size () - 1);
+      m_encoded_p = true;
+      m_verbatim_p = true;
+      m_wild_match_p = false;
+      m_standard_p = false;
+    }
   else
-    return compare_names;
+    {
+      m_verbatim_p = false;
+
+      m_encoded_p = user_name.find ("__") != std::string::npos;
+
+      if (!m_encoded_p)
+	{
+	  const char *folded = ada_fold_name (user_name.c_str ());
+	  const char *encoded = ada_encode_1 (folded, false);
+	  if (encoded != NULL)
+	    m_encoded_name = encoded;
+	  else
+	    m_encoded_name = user_name;
+	}
+      else
+	m_encoded_name = user_name;
+
+      /* Handle the 'package Standard' special case.  See description
+	 of m_standard_p.  */
+      if (startswith (m_encoded_name.c_str (), "standard__"))
+	{
+	  m_encoded_name = m_encoded_name.substr (sizeof ("standard__") - 1);
+	  m_standard_p = true;
+	}
+      else
+	m_standard_p = false;
+
+      /* If the name contains a ".", then the user is entering a fully
+	 qualified entity name, and the match must not be done in wild
+	 mode.  Similarly, if the user wants to complete what looks
+	 like an encoded name, the match must not be done in wild
+	 mode.  Also, in the standard__ special case always do
+	 non-wild matching.  */
+      m_wild_match_p
+	= (lookup_name.match_type () != symbol_name_match_type::FULL
+	   && !m_encoded_p
+	   && !m_standard_p
+	   && user_name.find ('.') == std::string::npos);
+    }
+}
+
+/* symbol_name_matcher_ftype method for Ada.  This only handles
+   completion mode.  */
+
+static bool
+ada_symbol_name_matches (const char *symbol_search_name,
+			 const lookup_name_info &lookup_name,
+			 completion_match_result *comp_match_res)
+{
+  return lookup_name.ada ().matches (symbol_search_name,
+				     lookup_name.match_type (),
+				     comp_match_res);
+}
+
+/* A name matcher that matches the symbol name exactly, with
+   strcmp.  */
+
+static bool
+literal_symbol_name_matcher (const char *symbol_search_name,
+			     const lookup_name_info &lookup_name,
+			     completion_match_result *comp_match_res)
+{
+  const std::string &name = lookup_name.name ();
+
+  int cmp = (lookup_name.completion_mode ()
+	     ? strncmp (symbol_search_name, name.c_str (), name.size ())
+	     : strcmp (symbol_search_name, name.c_str ()));
+  if (cmp == 0)
+    {
+      if (comp_match_res != NULL)
+	comp_match_res->set_match (symbol_search_name);
+      return true;
+    }
+  else
+    return false;
+}
+
+/* Implement the "la_get_symbol_name_matcher" language_defn method for
+   Ada.  */
+
+static symbol_name_matcher_ftype *
+ada_get_symbol_name_matcher (const lookup_name_info &lookup_name)
+{
+  if (lookup_name.match_type () == symbol_name_match_type::SEARCH_NAME)
+    return literal_symbol_name_matcher;
+
+  if (lookup_name.completion_mode ())
+    return ada_symbol_name_matches;
+  else
+    {
+      if (lookup_name.ada ().wild_match_p ())
+	return do_wild_match;
+      else
+	return do_full_match;
+    }
 }
 
 /* Implement the "la_read_var_value" language_defn method for Ada.  */
@@ -14013,7 +14475,7 @@ static const char *ada_extensions[] =
   ".adb", ".ads", ".a", ".ada", ".dg", NULL
 };
 
-const struct language_defn ada_language_defn = {
+extern const struct language_defn ada_language_defn = {
   "ada",                        /* Language name */
   "Ada",
   language_ada,
@@ -14047,22 +14509,21 @@ const struct language_defn ada_language_
   0,                            /* c-style arrays */
   1,                            /* String lower bound */
   ada_get_gdb_completer_word_break_characters,
-  ada_make_symbol_completion_list,
+  ada_collect_symbol_completion_matches,
   ada_language_arch_info,
   ada_print_array_index,
   default_pass_by_reference,
   c_get_string,
-  ada_get_symbol_name_cmp,	/* la_get_symbol_name_cmp */
+  c_watch_location_expression,
+  ada_get_symbol_name_matcher,	/* la_get_symbol_name_matcher */
   ada_iterate_over_symbols,
+  default_search_name_hash,
   &ada_varobj_ops,
   NULL,
   NULL,
   LANG_MAGIC
 };
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_ada_language;
-
 /* Command-list for the "set/show ada" prefix command.  */
 static struct cmd_list_element *set_ada_list;
 static struct cmd_list_element *show_ada_list;
@@ -14070,7 +14531,7 @@ static struct cmd_list_element *show_ada
 /* Implement the "set ada" prefix command.  */
 
 static void
-set_ada_command (char *arg, int from_tty)
+set_ada_command (const char *arg, int from_tty)
 {
   printf_unfiltered (_(\
 "\"set ada\" must be followed by the name of a setting.\n"));
@@ -14080,7 +14541,7 @@ set_ada_command (char *arg, int from_tty
 /* Implement the "show ada" prefix command.  */
 
 static void
-show_ada_command (char *args, int from_tty)
+show_ada_command (const char *args, int from_tty)
 {
   cmd_show_list (show_ada_list, from_tty, "");
 }
@@ -14094,7 +14555,6 @@ initialize_ada_catchpoint_ops (void)
 
   ops = &catch_exception_breakpoint_ops;
   *ops = bkpt_breakpoint_ops;
-  ops->dtor = dtor_catch_exception;
   ops->allocate_location = allocate_location_catch_exception;
   ops->re_set = re_set_catch_exception;
   ops->check_status = check_status_catch_exception;
@@ -14105,7 +14565,6 @@ initialize_ada_catchpoint_ops (void)
 
   ops = &catch_exception_unhandled_breakpoint_ops;
   *ops = bkpt_breakpoint_ops;
-  ops->dtor = dtor_catch_exception_unhandled;
   ops->allocate_location = allocate_location_catch_exception_unhandled;
   ops->re_set = re_set_catch_exception_unhandled;
   ops->check_status = check_status_catch_exception_unhandled;
@@ -14116,7 +14575,6 @@ initialize_ada_catchpoint_ops (void)
 
   ops = &catch_assert_breakpoint_ops;
   *ops = bkpt_breakpoint_ops;
-  ops->dtor = dtor_catch_assert;
   ops->allocate_location = allocate_location_catch_assert;
   ops->re_set = re_set_catch_assert;
   ops->check_status = check_status_catch_assert;
@@ -14124,6 +14582,16 @@ initialize_ada_catchpoint_ops (void)
   ops->print_one = print_one_catch_assert;
   ops->print_mention = print_mention_catch_assert;
   ops->print_recreate = print_recreate_catch_assert;
+
+  ops = &catch_handlers_breakpoint_ops;
+  *ops = bkpt_breakpoint_ops;
+  ops->allocate_location = allocate_location_catch_handlers;
+  ops->re_set = re_set_catch_handlers;
+  ops->check_status = check_status_catch_handlers;
+  ops->print_it = print_it_catch_handlers;
+  ops->print_one = print_one_catch_handlers;
+  ops->print_mention = print_mention_catch_handlers;
+  ops->print_recreate = print_recreate_catch_handlers;
 }
 
 /* This module's 'new_objfile' observer.  */
@@ -14145,8 +14613,6 @@ ada_free_objfile_observer (struct objfil
 void
 _initialize_ada_language (void)
 {
-  add_language (&ada_language_defn);
-
   initialize_ada_catchpoint_ops ();
 
   add_prefix_cmd ("ada", no_class, set_ada_command,
@@ -14186,6 +14652,14 @@ With an argument, catch only exceptions 
                      NULL,
 		     CATCH_PERMANENT,
 		     CATCH_TEMPORARY);
+
+  add_catch_command ("handlers", _("\
+Catch Ada exceptions, when handled.\n\
+With an argument, catch only exceptions with the given name."),
+		     catch_ada_handlers_command,
+                     NULL,
+		     CATCH_PERMANENT,
+		     CATCH_TEMPORARY);
   add_catch_command ("assert", _("\
 Catch failed Ada assertions, when raised.\n\
 With an argument, catch only exceptions with the given name."),
@@ -14222,8 +14696,6 @@ When enabled, the debugger will stop usi
 DWARF attribute."),
      NULL, NULL, &maint_set_ada_cmdlist, &maint_show_ada_cmdlist);
 
-  obstack_init (&symbol_list_obstack);
-
   decoded_names_store = htab_create_alloc
     (256, htab_hash_string, (int (*)(const void *, const void *)) streq,
      NULL, xcalloc, xfree);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-lang.h ./gdb/ada-lang.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-lang.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ada-lang.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Ada language support definitions for GDB, the GNU debugger.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -108,7 +108,8 @@ enum ada_exception_catchpoint_kind
 {
   ada_catch_exception,
   ada_catch_exception_unhandled,
-  ada_catch_assert
+  ada_catch_assert,
+  ada_catch_handlers
 };
 
 /* Ada task structures.  */
@@ -141,6 +142,12 @@ struct ada_task_info
   /* If the task is accepting a rendezvous with another task, this field
      contains the ID of the calling task.  Zero otherwise.  */
   CORE_ADDR caller_task;
+
+  /* The CPU on which the task is running.  This is dependent on
+     the runtime actually providing that info, which is not always
+     the case.  Normally, we should be able to count on it on
+     bare-metal targets.  */
+  int base_cpu;
 };
 
 /* Assuming V points to an array of S objects,  make sure that it contains at
@@ -305,11 +312,9 @@ extern int ada_is_fixed_point_type (stru
 
 extern int ada_is_system_address_type (struct type *);
 
-extern DOUBLEST ada_delta (struct type *);
-
-extern DOUBLEST ada_fixed_to_float (struct type *, LONGEST);
+extern struct value *ada_delta (struct type *);
 
-extern LONGEST ada_float_to_fixed (struct type *, DOUBLEST);
+extern struct value *ada_scaling_factor (struct type *);
 
 extern struct type *ada_system_address_type (void);
 
@@ -335,7 +340,7 @@ extern const char *ada_type_name (struct
 extern struct type *ada_find_parallel_type (struct type *,
                                             const char *suffix);
 
-extern LONGEST get_int_var_value (char *, int *);
+extern bool get_int_var_value (const char *, LONGEST &value);
 
 extern struct symbol *ada_find_renaming_symbol (struct symbol *name_sym,
                                                 const struct block *block);
@@ -379,29 +384,34 @@ extern void create_ada_exception_catchpo
 
 /* Some information about a given Ada exception.  */
 
-typedef struct ada_exc_info
+struct ada_exc_info
 {
   /* The name of the exception.  */
   const char *name;
 
   /* The address of the symbol corresponding to that exception.  */
   CORE_ADDR addr;
-} ada_exc_info;
 
-DEF_VEC_O(ada_exc_info);
+  bool operator< (const ada_exc_info &) const;
+  bool operator== (const ada_exc_info &) const;
+};
 
-extern VEC(ada_exc_info) *ada_exceptions_list (const char *regexp);
+extern std::vector<ada_exc_info> ada_exceptions_list (const char *regexp);
 
 /* Tasking-related: ada-tasks.c */
 
 extern int valid_task_id (int);
 
+extern struct ada_task_info *ada_get_task_info_from_ptid (ptid_t ptid);
+
 extern int ada_get_task_number (ptid_t);
 
 typedef void (ada_task_list_iterator_ftype) (struct ada_task_info *task);
 extern void iterate_over_live_ada_tasks
   (ada_task_list_iterator_ftype *iterator);
 
+extern const char *ada_get_tcb_types_info (void);
+
 extern int ada_build_task_list (void);
 
 extern void print_ada_task_info (struct ui_out *uiout,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-lex.c ./gdb/ada-lex.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-lex.c	2018-01-02 02:06:28.000000000 +0000
+++ ./gdb/ada-lex.c	2018-01-09 02:08:06.000000000 +0000
@@ -811,7 +811,7 @@ int yy_flex_debug = 0;
 char *yytext;
 #line 1 "ada-lex.l"
 /* FLEX lexer for Ada expressions, for GDB.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -835,6 +835,14 @@ char *yytext;
 /* (ada-lval), defined by the parser.   */
 #line 43 "ada-lex.l"
 
+#include "common/diagnostics.h"
+
+/* Some old versions of flex generate code that uses the "register" keyword,
+   which clang warns about.  This was observed for example with flex 2.5.35,
+   as shipped with macOS 10.12.  */
+DIAGNOSTIC_PUSH
+DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER
+
 #define NUMERAL_WIDTH 256
 #define LONGEST_SIGN ((ULONGEST) 1 << (sizeof(LONGEST) * HOST_CHAR_BIT - 1))
 
@@ -871,7 +879,7 @@ static void rewind_to_char (int);
 static int find_dot_all (const char *);
 
 
-#line 875 "ada-lex.c"
+#line 883 "ada-lex.c"
 
 #define INITIAL 0
 #define BEFORE_QUAL_QUOTE 1
@@ -1054,10 +1062,10 @@ YY_DECL
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 85 "ada-lex.l"
+#line 93 "ada-lex.l"
 
 
-#line 1061 "ada-lex.c"
+#line 1069 "ada-lex.c"
 
 	if ( !(yy_init) )
 		{
@@ -1143,17 +1151,17 @@ do_action:	/* This label is used only to
 case 1:
 /* rule 1 can match eol */
 YY_RULE_SETUP
-#line 87 "ada-lex.l"
+#line 95 "ada-lex.l"
 { }
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 89 "ada-lex.l"
+#line 97 "ada-lex.l"
 { yyterminate(); }
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 91 "ada-lex.l"
+#line 99 "ada-lex.l"
 {
 		   canonicalizeNumeral (numbuf, yytext);
 		   return processInt (pstate, NULL, numbuf,
@@ -1162,7 +1170,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 97 "ada-lex.l"
+#line 105 "ada-lex.l"
 {
 		   canonicalizeNumeral (numbuf, yytext);
 		   return processInt (pstate, NULL, numbuf, NULL);
@@ -1170,7 +1178,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 102 "ada-lex.l"
+#line 110 "ada-lex.l"
 {
 		   canonicalizeNumeral (numbuf, yytext);
 		   return processInt (pstate, numbuf,
@@ -1180,7 +1188,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 109 "ada-lex.l"
+#line 117 "ada-lex.l"
 {
 		   canonicalizeNumeral (numbuf, yytext);
 		   return processInt (pstate, numbuf, strchr (numbuf, '#') + 1,
@@ -1189,7 +1197,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 115 "ada-lex.l"
+#line 123 "ada-lex.l"
 {
 		  canonicalizeNumeral (numbuf, yytext+2);
 		  return processInt (pstate, "16#", numbuf, NULL);
@@ -1197,7 +1205,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 121 "ada-lex.l"
+#line 129 "ada-lex.l"
 {
 		   canonicalizeNumeral (numbuf, yytext);
 		   return processReal (pstate, numbuf);
@@ -1205,7 +1213,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 126 "ada-lex.l"
+#line 134 "ada-lex.l"
 {
 		   canonicalizeNumeral (numbuf, yytext);
 		   return processReal (pstate, numbuf);
@@ -1213,21 +1221,21 @@ YY_RULE_SETUP
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 131 "ada-lex.l"
+#line 139 "ada-lex.l"
 {
                    error (_("Based real literals not implemented yet."));
 		}
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 135 "ada-lex.l"
+#line 143 "ada-lex.l"
 {
                    error (_("Based real literals not implemented yet."));
 		}
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 139 "ada-lex.l"
+#line 147 "ada-lex.l"
 {
 		   yylval.typed_val.type = type_char (pstate);
 		   yylval.typed_val.val = yytext[1];
@@ -1236,7 +1244,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 145 "ada-lex.l"
+#line 153 "ada-lex.l"
 {
                    int v;
                    yylval.typed_val.type = type_char (pstate);
@@ -1247,7 +1255,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 153 "ada-lex.l"
+#line 161 "ada-lex.l"
 {
 	           yylval.sval = processString (yytext+1, yyleng-2);
 		   return STRING;
@@ -1255,14 +1263,14 @@ YY_RULE_SETUP
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 158 "ada-lex.l"
+#line 166 "ada-lex.l"
 {
                    error (_("ill-formed or non-terminated string literal"));
 		}
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 163 "ada-lex.l"
+#line 171 "ada-lex.l"
 {
                   rewind_to_char ('i');
 		  return 0;
@@ -1270,7 +1278,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 168 "ada-lex.l"
+#line 176 "ada-lex.l"
 {
                   rewind_to_char ('t');
 		  return 0;
@@ -1279,7 +1287,7 @@ YY_RULE_SETUP
 case 18:
 /* rule 18 can match eol */
 YY_RULE_SETUP
-#line 173 "ada-lex.l"
+#line 181 "ada-lex.l"
 {
                   /* This keyword signals the end of the expression and
                      will be processed separately.  */
@@ -1290,67 +1298,67 @@ YY_RULE_SETUP
 /* ADA KEYWORDS */
 case 19:
 YY_RULE_SETUP
-#line 182 "ada-lex.l"
+#line 190 "ada-lex.l"
 { return ABS; }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 183 "ada-lex.l"
+#line 191 "ada-lex.l"
 { return _AND_; }
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 184 "ada-lex.l"
+#line 192 "ada-lex.l"
 { return ELSE; }
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 185 "ada-lex.l"
+#line 193 "ada-lex.l"
 { return IN; }
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 186 "ada-lex.l"
+#line 194 "ada-lex.l"
 { return MOD; }
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 187 "ada-lex.l"
+#line 195 "ada-lex.l"
 { return NEW; }
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 188 "ada-lex.l"
+#line 196 "ada-lex.l"
 { return NOT; }
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 189 "ada-lex.l"
+#line 197 "ada-lex.l"
 { return NULL_PTR; }
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 190 "ada-lex.l"
+#line 198 "ada-lex.l"
 { return OR; }
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 191 "ada-lex.l"
+#line 199 "ada-lex.l"
 { return OTHERS; }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 192 "ada-lex.l"
+#line 200 "ada-lex.l"
 { return REM; }
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 193 "ada-lex.l"
+#line 201 "ada-lex.l"
 { return THEN; }
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 194 "ada-lex.l"
+#line 202 "ada-lex.l"
 { return XOR; }
 	YY_BREAK
 /* BOOLEAN "KEYWORDS" */
@@ -1360,70 +1368,70 @@ YY_RULE_SETUP
     making them keywords (when bare). */
 case 32:
 YY_RULE_SETUP
-#line 203 "ada-lex.l"
+#line 211 "ada-lex.l"
 { return TRUEKEYWORD; }
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 204 "ada-lex.l"
+#line 212 "ada-lex.l"
 { return FALSEKEYWORD; }
 	YY_BREAK
 /* ATTRIBUTES */
 case 34:
 /* rule 34 can match eol */
 YY_RULE_SETUP
-#line 208 "ada-lex.l"
+#line 216 "ada-lex.l"
 { BEGIN INITIAL; return processAttribute (yytext+1); }
 	YY_BREAK
 /* PUNCTUATION */
 case 35:
 YY_RULE_SETUP
-#line 212 "ada-lex.l"
+#line 220 "ada-lex.l"
 { return ARROW; }
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 213 "ada-lex.l"
+#line 221 "ada-lex.l"
 { return DOTDOT; }
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 214 "ada-lex.l"
+#line 222 "ada-lex.l"
 { return STARSTAR; }
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 215 "ada-lex.l"
+#line 223 "ada-lex.l"
 { return ASSIGN; }
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 216 "ada-lex.l"
+#line 224 "ada-lex.l"
 { return NOTEQUAL; }
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 217 "ada-lex.l"
+#line 225 "ada-lex.l"
 { return LEQ; }
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 218 "ada-lex.l"
+#line 226 "ada-lex.l"
 { return GEQ; }
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 220 "ada-lex.l"
+#line 228 "ada-lex.l"
 { BEGIN INITIAL; return '\''; }
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 222 "ada-lex.l"
+#line 230 "ada-lex.l"
 { return yytext[0]; }
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 224 "ada-lex.l"
+#line 232 "ada-lex.l"
 { if (paren_depth == 0 && comma_terminates)
 		    {
 		      rewind_to_char (',');
@@ -1435,12 +1443,12 @@ YY_RULE_SETUP
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 233 "ada-lex.l"
+#line 241 "ada-lex.l"
 { paren_depth += 1; return '('; }
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 234 "ada-lex.l"
+#line 242 "ada-lex.l"
 { if (paren_depth == 0)
 		    {
 		      rewind_to_char (')');
@@ -1456,13 +1464,13 @@ YY_RULE_SETUP
 case 47:
 /* rule 47 can match eol */
 YY_RULE_SETUP
-#line 246 "ada-lex.l"
+#line 254 "ada-lex.l"
 { return DOT_ALL; }
 	YY_BREAK
 case 48:
 /* rule 48 can match eol */
 YY_RULE_SETUP
-#line 248 "ada-lex.l"
+#line 256 "ada-lex.l"
 {
 	 	  yylval.sval = processId (yytext+1, yyleng-1);
 	          return DOT_ID;
@@ -1471,7 +1479,7 @@ YY_RULE_SETUP
 case 49:
 /* rule 49 can match eol */
 YY_RULE_SETUP
-#line 253 "ada-lex.l"
+#line 261 "ada-lex.l"
 {
                   int all_posn = find_dot_all (yytext);
 
@@ -1490,7 +1498,7 @@ YY_RULE_SETUP
 case 50:
 /* rule 50 can match eol */
 YY_RULE_SETUP
-#line 270 "ada-lex.l"
+#line 278 "ada-lex.l"
 {
                   yyless (yyleng - 2);
 		  yylval.sval = processId (yytext, yyleng);
@@ -1499,18 +1507,18 @@ YY_RULE_SETUP
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 276 "ada-lex.l"
+#line 284 "ada-lex.l"
 { return COLONCOLON; }
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 278 "ada-lex.l"
+#line 286 "ada-lex.l"
 { return yytext[0]; }
 	YY_BREAK
 /* REGISTERS AND GDB CONVENIENCE VARIABLES */
 case 53:
 YY_RULE_SETUP
-#line 282 "ada-lex.l"
+#line 290 "ada-lex.l"
 {
 		  yylval.sval.ptr = yytext;
 		  yylval.sval.length = yyleng;
@@ -1520,15 +1528,15 @@ YY_RULE_SETUP
 /* CATCH-ALL ERROR CASE */
 case 54:
 YY_RULE_SETUP
-#line 290 "ada-lex.l"
+#line 298 "ada-lex.l"
 { error (_("Invalid character '%s' in expression."), yytext); }
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 291 "ada-lex.l"
+#line 299 "ada-lex.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
 	YY_BREAK
-#line 1532 "ada-lex.c"
+#line 1540 "ada-lex.c"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(BEFORE_QUAL_QUOTE):
 	yyterminate();
@@ -2527,7 +2535,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 291 "ada-lex.l"
+#line 299 "ada-lex.l"
 
 
 
@@ -2636,16 +2644,12 @@ processInt (struct parser_state *par_sta
 static int
 processReal (struct parser_state *par_state, const char *num0)
 {
-  sscanf (num0, "%" DOUBLEST_SCAN_FORMAT, &yylval.typed_val_float.dval);
-
-  yylval.typed_val_float.type = type_float (par_state);
-  if (sizeof(DOUBLEST) >= gdbarch_double_bit (parse_gdbarch (par_state))
-			    / TARGET_CHAR_BIT)
-    yylval.typed_val_float.type = type_double (par_state);
-  if (sizeof(DOUBLEST) >= gdbarch_long_double_bit (parse_gdbarch (par_state))
-			    / TARGET_CHAR_BIT)
-    yylval.typed_val_float.type = type_long_double (par_state);
+  yylval.typed_val_float.type = type_long_double (par_state);
 
+  bool parsed = parse_float (num0, strlen (num0),
+			     yylval.typed_val_float.type,
+			     yylval.typed_val_float.val);
+  gdb_assert (parsed);
   return FLOAT;
 }
 
@@ -2653,13 +2657,12 @@ processReal (struct parser_state *par_st
 /* Store a canonicalized version of NAME0[0..LEN-1] in yylval.ssym.  The
    resulting string is valid until the next call to ada_parse.  If
    NAME0 contains the substring "___", it is assumed to be already
-   encoded and the resulting name is equal to it.  Otherwise, it differs
+   encoded and the resulting name is equal to it.  Similarly, if the name
+   starts with '<', it is copied verbatim.  Otherwise, it differs
    from NAME0 in that:
-    + Characters between '...' or <...> are transfered verbatim to 
-      yylval.ssym.
-    + <, >, and trailing "'" characters in quoted sequences are removed
-      (a leading quote is preserved to indicate that the name is not to be
-      GNAT-encoded).
+    + Characters between '...' are transfered verbatim to yylval.ssym.
+    + Trailing "'" characters in quoted sequences are removed (a leading quote is
+      preserved to indicate that the name is not to be GNAT-encoded).
     + Unquoted whitespace is removed.
     + Unquoted alphabetic characters are mapped to lower case.
    Result is returned as a struct stoken, but for convenience, the string
@@ -2677,7 +2680,7 @@ processId (const char *name0, int len)
   while (len > 0 && isspace (name0[len-1]))
     len -= 1;
 
-  if (strstr (name0, "___") != NULL)
+  if (name0[0] == '<' || strstr (name0, "___") != NULL)
     {
       strncpy (name, name0, len);
       name[len] = '\000';
@@ -2711,15 +2714,6 @@ processId (const char *name0, int len)
 	  while (i0 < len && name0[i0] != '\'');
 	  i0 += 1;
 	  break;
-	case '<':
-	  i0 += 1;
-	  while (i0 < len && name0[i0] != '>')
-	    {
-	      name[i] = name0[i0];
-	      i += 1; i0 += 1;
-	    }
-	  i0 += 1;
-	  break;
 	}
     }
   name[i] = '\000';
@@ -2890,3 +2884,5 @@ dummy_function ada_flex_use[] = 
   (dummy_function) yyunput
 };
 
+DIAGNOSTIC_POP
+
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-lex.l ./gdb/ada-lex.l
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-lex.l	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ada-lex.l	2018-01-09 02:04:56.000000000 +0000
@@ -1,5 +1,5 @@
 /* FLEX lexer for Ada expressions, for GDB.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -41,6 +41,14 @@ POSEXP  (e"+"?{NUM10})
 
 %{
 
+#include "common/diagnostics.h"
+
+/* Some old versions of flex generate code that uses the "register" keyword,
+   which clang warns about.  This was observed for example with flex 2.5.35,
+   as shipped with macOS 10.12.  */
+DIAGNOSTIC_PUSH
+DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER
+
 #define NUMERAL_WIDTH 256
 #define LONGEST_SIGN ((ULONGEST) 1 << (sizeof(LONGEST) * HOST_CHAR_BIT - 1))
 
@@ -395,16 +403,12 @@ processInt (struct parser_state *par_sta
 static int
 processReal (struct parser_state *par_state, const char *num0)
 {
-  sscanf (num0, "%" DOUBLEST_SCAN_FORMAT, &yylval.typed_val_float.dval);
-
-  yylval.typed_val_float.type = type_float (par_state);
-  if (sizeof(DOUBLEST) >= gdbarch_double_bit (parse_gdbarch (par_state))
-			    / TARGET_CHAR_BIT)
-    yylval.typed_val_float.type = type_double (par_state);
-  if (sizeof(DOUBLEST) >= gdbarch_long_double_bit (parse_gdbarch (par_state))
-			    / TARGET_CHAR_BIT)
-    yylval.typed_val_float.type = type_long_double (par_state);
+  yylval.typed_val_float.type = type_long_double (par_state);
 
+  bool parsed = parse_float (num0, strlen (num0),
+			     yylval.typed_val_float.type,
+			     yylval.typed_val_float.val);
+  gdb_assert (parsed);
   return FLOAT;
 }
 
@@ -412,13 +416,12 @@ processReal (struct parser_state *par_st
 /* Store a canonicalized version of NAME0[0..LEN-1] in yylval.ssym.  The
    resulting string is valid until the next call to ada_parse.  If
    NAME0 contains the substring "___", it is assumed to be already
-   encoded and the resulting name is equal to it.  Otherwise, it differs
+   encoded and the resulting name is equal to it.  Similarly, if the name
+   starts with '<', it is copied verbatim.  Otherwise, it differs
    from NAME0 in that:
-    + Characters between '...' or <...> are transfered verbatim to 
-      yylval.ssym.
-    + <, >, and trailing "'" characters in quoted sequences are removed
-      (a leading quote is preserved to indicate that the name is not to be
-      GNAT-encoded).
+    + Characters between '...' are transfered verbatim to yylval.ssym.
+    + Trailing "'" characters in quoted sequences are removed (a leading quote is
+      preserved to indicate that the name is not to be GNAT-encoded).
     + Unquoted whitespace is removed.
     + Unquoted alphabetic characters are mapped to lower case.
    Result is returned as a struct stoken, but for convenience, the string
@@ -436,7 +439,7 @@ processId (const char *name0, int len)
   while (len > 0 && isspace (name0[len-1]))
     len -= 1;
 
-  if (strstr (name0, "___") != NULL)
+  if (name0[0] == '<' || strstr (name0, "___") != NULL)
     {
       strncpy (name, name0, len);
       name[len] = '\000';
@@ -470,15 +473,6 @@ processId (const char *name0, int len)
 	  while (i0 < len && name0[i0] != '\'');
 	  i0 += 1;
 	  break;
-	case '<':
-	  i0 += 1;
-	  while (i0 < len && name0[i0] != '>')
-	    {
-	      name[i] = name0[i0];
-	      i += 1; i0 += 1;
-	    }
-	  i0 += 1;
-	  break;
 	}
     }
   name[i] = '\000';
@@ -648,3 +642,5 @@ dummy_function ada_flex_use[] = 
 { 
   (dummy_function) yyunput
 };
+
+DIAGNOSTIC_POP
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-operator.def ./gdb/ada-operator.def
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-operator.def	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ada-operator.def	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Ada language operator definitions for GDB, the GNU debugger.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-tasks.c ./gdb/ada-tasks.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-tasks.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ada-tasks.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -123,6 +123,7 @@ struct atcb_fieldnos
   int activation_link;
   int call;
   int ll;
+  int base_cpu;
 
   /* Fields in Task_Primitives.Private_Data.  */
   int ll_thread;
@@ -352,6 +353,30 @@ ada_task_is_alive (struct ada_task_info 
   return (task_info->state != Terminated);
 }
 
+/* Search through the list of known tasks for the one whose ptid is
+   PTID, and return it.  Return NULL if the task was not found.  */
+
+struct ada_task_info *
+ada_get_task_info_from_ptid (ptid_t ptid)
+{
+  int i, nb_tasks;
+  struct ada_task_info *task;
+  struct ada_tasks_inferior_data *data;
+
+  ada_build_task_list ();
+  data = get_ada_tasks_inferior_data (current_inferior ());
+  nb_tasks = VEC_length (ada_task_info_s, data->task_list);
+
+  for (i = 0; i < nb_tasks; i++)
+    {
+      task = VEC_index (ada_task_info_s, data->task_list, i);
+      if (ptid_equal (task->ptid, ptid))
+	return task;
+    }
+
+  return NULL;
+}
+
 /* Call the ITERATOR function once for each Ada task that hasn't been
    terminated yet.  */
 
@@ -441,18 +466,17 @@ read_fat_string_value (char *dest, struc
   dest[len] = '\0';
 }
 
-/* Get from the debugging information the type description of all types
-   related to the Ada Task Control Block that will be needed in order to
-   read the list of known tasks in the Ada runtime.  Also return the
-   associated ATCB_FIELDNOS.
-
-   Error handling:  Any data missing from the debugging info will cause
-   an error to be raised, and none of the return values to be set.
-   Users of this function can depend on the fact that all or none of the
-   return values will be set.  */
+/* Get, from the debugging information, the type description of all types
+   related to the Ada Task Control Block that are needed in order to
+   read the list of known tasks in the Ada runtime.  If all of the info
+   needed to do so is found, then save that info in the module's per-
+   program-space data, and return NULL.  Otherwise, if any information
+   cannot be found, leave the per-program-space data untouched, and
+   return an error message explaining what was missing (that error
+   message does NOT need to be deallocated).  */
 
-static void
-get_tcb_types_info (void)
+const char *
+ada_get_tcb_types_info (void)
 {
   struct type *type;
   struct type *common_type;
@@ -493,7 +517,7 @@ get_tcb_types_info (void)
 					    NULL).symbol;
 
       if (atcb_sym == NULL || atcb_sym->type == NULL)
-        error (_("Cannot find Ada_Task_Control_Block type. Aborting"));
+        return _("Cannot find Ada_Task_Control_Block type");
 
       type = atcb_sym->type;
     }
@@ -506,11 +530,11 @@ get_tcb_types_info (void)
     }
 
   if (common_atcb_sym == NULL || common_atcb_sym->type == NULL)
-    error (_("Cannot find Common_ATCB type. Aborting"));
+    return _("Cannot find Common_ATCB type");
   if (private_data_sym == NULL || private_data_sym->type == NULL)
-    error (_("Cannot find Private_Data type. Aborting"));
+    return _("Cannot find Private_Data type");
   if (entry_call_record_sym == NULL || entry_call_record_sym->type == NULL)
-    error (_("Cannot find Entry_Call_Record type. Aborting"));
+    return _("Cannot find Entry_Call_Record type");
 
   /* Get the type for Ada_Task_Control_Block.Common.  */
   common_type = common_atcb_sym->type;
@@ -535,6 +559,7 @@ get_tcb_types_info (void)
                                                   "activation_link", 1);
   fieldnos.call = ada_get_field_index (common_type, "call", 1);
   fieldnos.ll = ada_get_field_index (common_type, "ll", 0);
+  fieldnos.base_cpu = ada_get_field_index (common_type, "base_cpu", 0);
   fieldnos.ll_thread = ada_get_field_index (ll_type, "thread", 0);
   fieldnos.ll_lwp = ada_get_field_index (ll_type, "lwp", 1);
   fieldnos.call_self = ada_get_field_index (call_type, "self", 0);
@@ -557,6 +582,7 @@ get_tcb_types_info (void)
   pspace_data->atcb_ll_type = ll_type;
   pspace_data->atcb_call_type = call_type;
   pspace_data->atcb_fieldno = fieldnos;
+  return NULL;
 }
 
 /* Build the PTID of the task from its COMMON_VALUE, which is the "Common"
@@ -604,7 +630,12 @@ read_atcb (CORE_ADDR task_id, struct ada
     = get_ada_tasks_pspace_data (current_program_space);
 
   if (!pspace_data->initialized_p)
-    get_tcb_types_info ();
+    {
+      const char *err_msg = ada_get_tcb_types_info ();
+
+      if (err_msg != NULL)
+	error (_("%s. Aborting"), err_msg);
+    }
 
   tcb_value = value_from_contents_and_address (pspace_data->atcb_type,
 					       NULL, task_id);
@@ -748,18 +779,14 @@ read_atcb (CORE_ADDR task_id, struct ada
         }
     }
 
-  /* And finally, compute the task ptid.  Note that there are situations
-     where this cannot be determined:
-       - The task is no longer alive - the ptid is irrelevant;
-       - We are debugging a core file - the thread is not always
-         completely preserved for us to link back a task to its
-         underlying thread.  Since we do not support task switching
-         when debugging core files anyway, we don't need to compute
-         that task ptid.
-     In either case, we don't need that ptid, and it is just good enough
-     to set it to null_ptid.  */
-
-  if (target_has_execution && ada_task_is_alive (task_info))
+  task_info->base_cpu
+    = value_as_long (value_field (common_value,
+				  pspace_data->atcb_fieldno.base_cpu));
+
+  /* And finally, compute the task ptid.  Note that there is not point
+     in computing it if the task is no longer alive, in which case
+     it is good enough to set its ptid to the null_ptid.  */
+  if (ada_task_is_alive (task_info))
     task_info->ptid = ptid_from_atcb_common (common_value);
   else
     task_info->ptid = null_ptid;
@@ -1008,7 +1035,6 @@ print_ada_task_info (struct ui_out *uiou
   struct ada_tasks_inferior_data *data;
   int taskno, nb_tasks;
   int taskno_arg = 0;
-  struct cleanup *old_chain;
   int nb_columns;
 
   if (ada_build_task_list () == 0)
@@ -1047,8 +1073,7 @@ print_ada_task_info (struct ui_out *uiou
     nb_tasks = VEC_length (ada_task_info_s, data->task_list);
 
   nb_columns = uiout->is_mi_like_p () ? 8 : 7;
-  old_chain = make_cleanup_ui_out_table_begin_end (uiout, nb_columns,
-						   nb_tasks, "tasks");
+  ui_out_emit_table table_emitter (uiout, nb_columns, nb_tasks, "tasks");
   uiout->table_header (1, ui_left, "current", "");
   uiout->table_header (3, ui_right, "id", "ID");
   uiout->table_header (9, ui_right, "task-id", "TID");
@@ -1073,7 +1098,6 @@ print_ada_task_info (struct ui_out *uiou
       const struct ada_task_info *const task_info =
 	VEC_index (ada_task_info_s, data->task_list, taskno - 1);
       int parent_id;
-      struct cleanup *chain2;
 
       gdb_assert (task_info != NULL);
 
@@ -1083,7 +1107,7 @@ print_ada_task_info (struct ui_out *uiou
       if (taskno_arg && taskno != taskno_arg)
         continue;
 
-      chain2 = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+      ui_out_emit_tuple tuple_emitter (uiout, NULL);
 
       /* Print a star if this task is the current task (or the task
          currently selected).  */
@@ -1143,17 +1167,14 @@ print_ada_task_info (struct ui_out *uiou
 						   : _("<no name>"));
 
       uiout->text ("\n");
-      do_cleanups (chain2);
     }
-
-  do_cleanups (old_chain);
 }
 
 /* Print a detailed description of the Ada task whose ID is TASKNO_STR
    for the given inferior (INF).  */
 
 static void
-info_task (struct ui_out *uiout, char *taskno_str, struct inferior *inf)
+info_task (struct ui_out *uiout, const char *taskno_str, struct inferior *inf)
 {
   const int taskno = value_as_long (parse_and_eval (taskno_str));
   struct ada_task_info *task_info;
@@ -1185,6 +1206,10 @@ info_task (struct ui_out *uiout, char *t
   printf_filtered (_("Thread: %#lx\n"), ptid_get_tid (task_info->ptid));
   printf_filtered (_("LWP: %#lx\n"), ptid_get_lwp (task_info->ptid));
 
+  /* If set, print the base CPU.  */
+  if (task_info->base_cpu != 0)
+    printf_filtered (_("Base CPU: %d\n"), task_info->base_cpu);
+
   /* Print who is the parent (if any).  */
   if (task_info->parent != 0)
     parent_taskno = get_task_number_from_id (task_info->parent, inf);
@@ -1243,7 +1268,7 @@ info_task (struct ui_out *uiout, char *t
    Does nothing if the program doesn't use Ada tasking.  */
 
 static void
-info_tasks_command (char *arg, int from_tty)
+info_tasks_command (const char *arg, int from_tty)
 {
   struct ui_out *uiout = current_uiout;
 
@@ -1271,7 +1296,7 @@ display_current_task_id (void)
    that task.  Print an error message if the task switch failed.  */
 
 static void
-task_command_1 (char *taskno_str, int from_tty, struct inferior *inf)
+task_command_1 (const char *taskno_str, int from_tty, struct inferior *inf)
 {
   const int taskno = value_as_long (parse_and_eval (taskno_str));
   struct ada_task_info *task_info;
@@ -1320,7 +1345,7 @@ task_command_1 (char *taskno_str, int fr
    Otherwise, switch to the task indicated by TASKNO_STR.  */
 
 static void
-task_command (char *taskno_str, int from_tty)
+task_command (const char *taskno_str, int from_tty)
 {
   struct ui_out *uiout = current_uiout;
 
@@ -1333,23 +1358,7 @@ task_command (char *taskno_str, int from
   if (taskno_str == NULL || taskno_str[0] == '\0')
     display_current_task_id ();
   else
-    {
-      /* Task switching in core files doesn't work, either because:
-           1. Thread support is not implemented with core files
-           2. Thread support is implemented, but the thread IDs created
-              after having read the core file are not the same as the ones
-              that were used during the program life, before the crash.
-              As a consequence, there is no longer a way for the debugger
-              to find the associated thead ID of any given Ada task.
-         So, instead of attempting a task switch without giving the user
-         any clue as to what might have happened, just error-out with
-         a message explaining that this feature is not supported.  */
-      if (!target_has_execution)
-        error (_("\
-Task switching not supported when debugging from core files\n\
-(use thread support instead)"));
-      task_command_1 (taskno_str, from_tty, current_inferior ());
-    }
+    task_command_1 (taskno_str, from_tty, current_inferior ());
 }
 
 /* Indicate that the given inferior's task list may have changed,
@@ -1428,9 +1437,6 @@ ada_tasks_new_objfile_observer (struct o
       ada_tasks_invalidate_inferior_data (inf);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_tasks;
-
 void
 _initialize_tasks (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-typeprint.c ./gdb/ada-typeprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-typeprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ada-typeprint.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for printing Ada types for GDB, the GNU debugger.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -31,6 +31,7 @@
 #include "demangle.h"
 #include "c-lang.h"
 #include "typeprint.h"
+#include "target-float.h"
 #include "ada-lang.h"
 #include <ctype.h>
 
@@ -253,17 +254,11 @@ static void
 print_dynamic_range_bound (struct type *type, const char *name, int name_len,
 			   const char *suffix, struct ui_file *stream)
 {
-  static char *name_buf = NULL;
-  static size_t name_buf_len = 0;
   LONGEST B;
-  int OK;
+  std::string name_buf (name, name_len);
+  name_buf += suffix;
 
-  GROW_VECT (name_buf, name_buf_len, name_len + strlen (suffix) + 1);
-  strncpy (name_buf, name, name_len);
-  strcpy (name_buf + name_len, suffix);
-
-  B = get_int_var_value (name_buf, &OK);
-  if (OK)
+  if (get_int_var_value (name_buf.c_str (), B))
     ada_print_scalar (type, B, stream);
   else
     fprintf_filtered (stream, "?");
@@ -362,16 +357,23 @@ print_enum_type (struct type *type, stru
 static void
 print_fixed_point_type (struct type *type, struct ui_file *stream)
 {
-  DOUBLEST delta = ada_delta (type);
-  DOUBLEST small = ada_fixed_to_float (type, 1);
+  struct value *delta = ada_delta (type);
+  struct value *small = ada_scaling_factor (type);
 
-  if (delta < 0.0)
+  if (delta == nullptr)
     fprintf_filtered (stream, "delta ??");
   else
     {
-      fprintf_filtered (stream, "delta %g", (double) delta);
-      if (delta != small)
-	fprintf_filtered (stream, " <'small = %g>", (double) small);
+      std::string str;
+      str = target_float_to_string (value_contents (delta),
+				    value_type (delta), "%g");
+      fprintf_filtered (stream, "delta %s", str.c_str());
+      if (!value_equal (delta, small))
+	{
+	  str = target_float_to_string (value_contents (small),
+					value_type (small), "%g");
+	  fprintf_filtered (stream, " <'small = %s>", str.c_str());
+	}
     }
 }
 
@@ -775,7 +777,8 @@ print_func_type (struct type *type, stru
 {
   int i, len = TYPE_NFIELDS (type);
 
-  if (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_VOID)
+  if (TYPE_TARGET_TYPE (type) != NULL
+      && TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_VOID)
     fprintf_filtered (stream, "procedure");
   else
     fprintf_filtered (stream, "function");
@@ -800,7 +803,9 @@ print_func_type (struct type *type, stru
       fprintf_filtered (stream, ")");
     }
 
-  if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_VOID)
+  if (TYPE_TARGET_TYPE (type) == NULL)
+    fprintf_filtered (stream, " return <unknown return type>");
+  else if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_VOID)
     {
       fprintf_filtered (stream, " return ");
       ada_print_type (TYPE_TARGET_TYPE (type), "", stream, 0, 0, flags);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-valprint.c ./gdb/ada-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-valprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ada-valprint.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support for printing Ada values for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -31,6 +31,7 @@
 #include "c-lang.h"
 #include "infcall.h"
 #include "objfiles.h"
+#include "target-float.h"
 
 static int print_field_values (struct type *, const gdb_byte *,
 			       int,
@@ -796,10 +797,15 @@ ada_val_print_num (struct type *type, co
 {
   if (ada_is_fixed_point_type (type))
     {
-      LONGEST v = unpack_long (type, valaddr + offset_aligned);
-
-      fprintf_filtered (stream, TYPE_LENGTH (type) < 4 ? "%.11g" : "%.17g",
-			(double) ada_fixed_to_float (type, v));
+      struct value *scale = ada_scaling_factor (type);
+      struct value *v = value_from_contents (type, valaddr + offset_aligned);
+      v = value_cast (value_type (scale), v);
+      v = value_binop (v, scale, BINOP_MUL);
+
+      const char *fmt = TYPE_LENGTH (type) < 4 ? "%.11g" : "%.17g";
+      std::string str
+	= target_float_to_string (value_contents (v), value_type (v), fmt);
+      fputs_filtered (str.c_str (), stream);
       return;
     }
   else if (TYPE_CODE (type) == TYPE_CODE_RANGE)
@@ -859,7 +865,8 @@ ada_val_print_num (struct type *type, co
 	}
       else
 	{
-	  val_print_type_code_int (type, valaddr + offset_aligned, stream);
+	  val_print_scalar_formatted (type, offset_aligned,
+				      original_value, options, 0, stream);
 	  if (ada_is_character_type (type))
 	    {
 	      LONGEST c;
@@ -1161,16 +1168,16 @@ ada_val_print (struct type *type,
 	       struct value *val,
 	       const struct value_print_options *options)
 {
-
-  /* XXX: this catches QUIT/ctrl-c as well.  Isn't that busted?  */
   TRY
     {
       ada_val_print_1 (type, embedded_offset, address,
 		       stream, recurse, val, options,
 		       current_language);
     }
-  CATCH (except, RETURN_MASK_ALL)
+  CATCH (except, RETURN_MASK_ERROR)
     {
+      fprintf_filtered (stream, _("<error reading variable: %s>"),
+			except.message);
     }
   END_CATCH
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-varobj.c ./gdb/ada-varobj.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ada-varobj.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ada-varobj.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* varobj support for Ada.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -825,7 +825,6 @@ ada_varobj_get_value_of_array_variable (
 					struct type *type,
 					struct value_print_options *opts)
 {
-  char *result;
   const int numchild = ada_varobj_get_array_number_of_children (value, type);
 
   /* If we have a string, provide its contents in the "value" field.
@@ -929,7 +928,7 @@ ada_value_of_variable (const struct varo
 
 /* Implement the "value_is_changeable_p" routine for Ada.  */
 
-static int
+static bool
 ada_value_is_changeable_p (const struct varobj *var)
 {
   struct type *type = var->value ? value_type (var->value) : var->type;
@@ -939,7 +938,7 @@ ada_value_is_changeable_p (const struct 
     {
       /* This is in reality a pointer to an unconstrained array.
 	 its value is changeable.  */
-      return 1;
+      return true;
     }
 
   if (ada_is_string_type (type))
@@ -947,7 +946,7 @@ ada_value_is_changeable_p (const struct 
       /* We display the contents of the string in the array's
 	 "value" field.  The contents can change, so consider
 	 that the array is changeable.  */
-      return 1;
+      return true;
     }
 
   return varobj_default_value_is_changeable_p (var);
@@ -955,11 +954,10 @@ ada_value_is_changeable_p (const struct 
 
 /* Implement the "value_has_mutated" routine for Ada.  */
 
-static int
+static bool
 ada_value_has_mutated (const struct varobj *var, struct value *new_val,
 		       struct type *new_type)
 {
-  int i;
   int from = -1;
   int to = -1;
 
@@ -967,7 +965,7 @@ ada_value_has_mutated (const struct varo
      has mutated.  */
   if (ada_varobj_get_number_of_children (new_val, new_type)
       != var->num_children)
-    return 1;
+    return true;
 
   /* If the number of fields have remained the same, then we need
      to check the name of each field.  If they remain the same,
@@ -983,13 +981,13 @@ ada_value_has_mutated (const struct varo
      has mutated or not. So just assume it hasn't.  */
 
   varobj_restrict_range (var->children, &from, &to);
-  for (i = from; i < to; i++)
+  for (int i = from; i < to; i++)
     if (ada_varobj_get_name_of_child (new_val, new_type,
 				      var->name.c_str (), i)
-	!= VEC_index (varobj_p, var->children, i)->name)
-      return 1;
+	!= var->children[i]->name)
+      return true;
 
-  return 0;
+  return false;
 }
 
 /* varobj operations for ada.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/addrmap.c ./gdb/addrmap.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/addrmap.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/addrmap.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* addrmap.c --- implementation of address map data structure.
 
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -588,13 +588,8 @@ addrmap_create_mutable (struct obstack *
   return (struct addrmap *) map;
 }
 
-
-
 /* Initialization.  */
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_addrmap;
-
 void
 _initialize_addrmap (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/addrmap.h ./gdb/addrmap.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/addrmap.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/addrmap.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* addrmap.h --- interface to address map data structure.
 
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/agent.c ./gdb/agent.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/agent.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/agent.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -44,16 +44,13 @@ show_can_use_agent (struct ui_file *file
 }
 
 static void
-set_can_use_agent (char *args, int from_tty, struct cmd_list_element *c)
+set_can_use_agent (const char *args, int from_tty, struct cmd_list_element *c)
 {
   if (target_use_agent (can_use_agent == can_use_agent_on) == 0)
     /* Something wrong during setting, set flag to default value.  */
     can_use_agent = can_use_agent_off;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_agent;
-
 #include "observer.h"
 #include "objfiles.h"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aix-thread.c ./gdb/aix-thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/aix-thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/aix-thread.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low level interface for debugging AIX 4.3+ pthreads.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Written by Nick Duffek <nsd@redhat.com>.
 
    This file is part of GDB.
@@ -84,11 +84,20 @@ static int debug_aix_thread;
 
 /* Private data attached to each element in GDB's thread list.  */
 
-struct private_thread_info {
+struct aix_thread_info : public private_thread_info
+{
   pthdb_pthread_t pdtid;	 /* thread's libpthdebug id */
   pthdb_tid_t tid;			/* kernel thread id */
 };
 
+/* Return the aix_thread_info attached to THREAD.  */
+
+static aix_thread_info *
+get_aix_thread_info (thread_info *thread)
+{
+  return static_cast<aix_thread_info *> (thread->priv.get ());
+}
+
 /* Information about a thread of which libpthdebug is aware.  */
 
 struct pd_thread {
@@ -756,10 +765,12 @@ sync_threadlists (void)
 	}
       else if (gi == gcount)
 	{
-	  thread = add_thread (ptid_build (infpid, 0, pbuf[pi].pthid));
-	  thread->priv = XNEW (struct private_thread_info);
-	  thread->priv->pdtid = pbuf[pi].pdtid;
-	  thread->priv->tid = pbuf[pi].tid;
+	  aix_thread_info *priv = new aix_thread_info;
+	  priv->pdtid = pbuf[pi].pdtid;
+	  priv->tid = pbuf[pi].tid;
+
+	  thread = add_thread_with_info (ptid_t (infpid, 0, pbuf[pi].pthid), priv);
+
 	  pi++;
 	}
       else
@@ -776,8 +787,10 @@ sync_threadlists (void)
 
 	  if (cmp_result == 0)
 	    {
-	      gbuf[gi]->priv->pdtid = pdtid;
-	      gbuf[gi]->priv->tid = tid;
+	      aix_thread_info *priv = get_aix_thread_info (gbuf[gi]);
+
+	      priv->pdtid = pdtid;
+	      priv->tid = tid;
 	      pi++;
 	      gi++;
 	    }
@@ -789,9 +802,11 @@ sync_threadlists (void)
 	  else
 	    {
 	      thread = add_thread (pptid);
-	      thread->priv = XNEW (struct private_thread_info);
-	      thread->priv->pdtid = pdtid;
-	      thread->priv->tid = tid;
+
+	      aix_thread_info *priv = new aix_thread_info;
+	      thread->priv.reset (priv);
+	      priv->pdtid = pdtid;
+	      priv->tid = tid;
 	      pi++;
 	    }
 	}
@@ -808,8 +823,9 @@ static int
 iter_tid (struct thread_info *thread, void *tidp)
 {
   const pthdb_tid_t tid = *(pthdb_tid_t *)tidp;
+  aix_thread_info *priv = get_aix_thread_info (thread);
 
-  return (thread->priv->tid == tid);
+  return priv->tid == tid;
 }
 
 /* Synchronize libpthdebug's state with the inferior and with GDB,
@@ -985,12 +1001,11 @@ aix_thread_resume (struct target_ops *op
 
   if (!PD_TID (ptid))
     {
-      struct cleanup *cleanup = save_inferior_ptid ();
+      scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
       struct target_ops *beneath = find_target_beneath (ops);
       
       inferior_ptid = pid_to_ptid (ptid_get_pid (inferior_ptid));
       beneath->to_resume (beneath, ptid, step, sig);
-      do_cleanups (cleanup);
     }
   else
     {
@@ -999,7 +1014,9 @@ aix_thread_resume (struct target_ops *op
 	error (_("aix-thread resume: unknown pthread %ld"),
 	       ptid_get_lwp (ptid));
 
-      tid[0] = thread->priv->tid;
+      aix_thread_info *priv = get_aix_thread_info (thread);
+
+      tid[0] = priv->tid;
       if (tid[0] == PTHDB_INVALID_TID)
 	error (_("aix-thread resume: no tid for pthread %ld"),
 	       ptid_get_lwp (ptid));
@@ -1022,14 +1039,16 @@ static ptid_t
 aix_thread_wait (struct target_ops *ops,
 		 ptid_t ptid, struct target_waitstatus *status, int options)
 {
-  struct cleanup *cleanup = save_inferior_ptid ();
   struct target_ops *beneath = find_target_beneath (ops);
 
-  pid_to_prc (&ptid);
+  {
+    scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
 
-  inferior_ptid = pid_to_ptid (ptid_get_pid (inferior_ptid));
-  ptid = beneath->to_wait (beneath, ptid, status, options);
-  do_cleanups (cleanup);
+    pid_to_prc (&ptid);
+
+    inferior_ptid = pid_to_ptid (ptid_get_pid (inferior_ptid));
+    ptid = beneath->to_wait (beneath, ptid, status, options);
+  }
 
   if (ptid_get_pid (ptid) == -1)
     return pid_to_ptid (-1);
@@ -1039,7 +1058,7 @@ aix_thread_wait (struct target_ops *ops,
       && status->value.sig == GDB_SIGNAL_TRAP)
     {
       struct regcache *regcache = get_thread_regcache (ptid);
-      struct gdbarch *gdbarch = get_regcache_arch (regcache);
+      struct gdbarch *gdbarch = regcache->arch ();
 
       if (regcache_read_pc (regcache)
 	  - gdbarch_decr_pc_after_break (gdbarch) == pd_brk_addr)
@@ -1054,7 +1073,7 @@ aix_thread_wait (struct target_ops *ops,
 static void
 supply_gprs64 (struct regcache *regcache, uint64_t *vals)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
+  struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ());
   int regno;
 
   for (regno = 0; regno < ppc_num_gprs; regno++)
@@ -1075,7 +1094,7 @@ supply_reg32 (struct regcache *regcache,
 static void
 supply_fprs (struct regcache *regcache, double *vals)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int regno;
 
@@ -1116,7 +1135,7 @@ supply_sprs64 (struct regcache *regcache
 	       uint64_t lr, uint64_t ctr, uint32_t xer,
 	       uint32_t fpscr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   regcache_raw_supply (regcache, gdbarch_pc_regnum (gdbarch),
@@ -1140,7 +1159,7 @@ supply_sprs32 (struct regcache *regcache
 	       uint32_t lr, uint32_t ctr, uint32_t xer,
 	       uint32_t fpscr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   regcache_raw_supply (regcache, gdbarch_pc_regnum (gdbarch),
@@ -1165,7 +1184,7 @@ supply_sprs32 (struct regcache *regcache
 static void
 fetch_regs_user_thread (struct regcache *regcache, pthdb_pthread_t pdtid)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int status, i;
   pthdb_context_t ctx;
@@ -1220,7 +1239,7 @@ static void
 fetch_regs_kernel_thread (struct regcache *regcache, int regno,
 			  pthdb_tid_t tid)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   uint64_t gprs64[ppc_num_gprs];
   uint32_t gprs32[ppc_num_gprs];
@@ -1313,10 +1332,11 @@ aix_thread_fetch_registers (struct targe
   else
     {
       thread = find_thread_ptid (regcache_get_ptid (regcache));
-      tid = thread->priv->tid;
+      aix_thread_info *priv = get_aix_thread_info (thread);
+      tid = priv->tid;
 
       if (tid == PTHDB_INVALID_TID)
-	fetch_regs_user_thread (regcache, thread->priv->pdtid);
+	fetch_regs_user_thread (regcache, priv->pdtid);
       else
 	fetch_regs_kernel_thread (regcache, regno, tid);
     }
@@ -1327,7 +1347,7 @@ aix_thread_fetch_registers (struct targe
 static void
 fill_gprs64 (const struct regcache *regcache, uint64_t *vals)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
+  struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ());
   int regno;
 
   for (regno = 0; regno < ppc_num_gprs; regno++)
@@ -1340,7 +1360,7 @@ fill_gprs64 (const struct regcache *regc
 static void 
 fill_gprs32 (const struct regcache *regcache, uint32_t *vals)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
+  struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ());
   int regno;
 
   for (regno = 0; regno < ppc_num_gprs; regno++)
@@ -1354,7 +1374,7 @@ fill_gprs32 (const struct regcache *regc
 static void
 fill_fprs (const struct regcache *regcache, double *vals)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int regno;
 
@@ -1379,7 +1399,7 @@ fill_sprs64 (const struct regcache *regc
 	     uint64_t *lr, uint64_t *ctr, uint32_t *xer,
 	     uint32_t *fpscr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   /* Verify that the size of the size of the IAR buffer is the
@@ -1415,7 +1435,7 @@ fill_sprs32 (const struct regcache *regc
 	     uint32_t *lr, uint32_t *ctr, uint32_t *xer,
 	     uint32_t *fpscr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   /* Verify that the size of the size of the IAR buffer is the
@@ -1453,7 +1473,7 @@ fill_sprs32 (const struct regcache *regc
 static void
 store_regs_user_thread (const struct regcache *regcache, pthdb_pthread_t pdtid)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int status, i;
   pthdb_context_t ctx;
@@ -1550,7 +1570,7 @@ static void
 store_regs_kernel_thread (const struct regcache *regcache, int regno,
 			  pthdb_tid_t tid)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   uint64_t gprs64[ppc_num_gprs];
   uint32_t gprs32[ppc_num_gprs];
@@ -1667,10 +1687,11 @@ aix_thread_store_registers (struct targe
   else
     {
       thread = find_thread_ptid (regcache_get_ptid (regcache));
-      tid = thread->priv->tid;
+      aix_thread_info *priv = get_aix_thread_info (thread);
+      tid = priv->tid;
 
       if (tid == PTHDB_INVALID_TID)
-	store_regs_user_thread (regcache, thread->priv->pdtid);
+	store_regs_user_thread (regcache, priv->pdtid);
       else
 	store_regs_kernel_thread (regcache, regno, tid);
     }
@@ -1684,16 +1705,12 @@ aix_thread_xfer_partial (struct target_o
 			 const gdb_byte *writebuf,
 			 ULONGEST offset, ULONGEST len, ULONGEST *xfered_len)
 {
-  struct cleanup *old_chain = save_inferior_ptid ();
-  enum target_xfer_status xfer;
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
   struct target_ops *beneath = find_target_beneath (ops);
 
   inferior_ptid = pid_to_ptid (ptid_get_pid (inferior_ptid));
-  xfer = beneath->to_xfer_partial (beneath, object, annex, readbuf,
+  return beneath->to_xfer_partial (beneath, object, annex, readbuf,
 				   writebuf, offset, len, xfered_len);
-
-  do_cleanups (old_chain);
-  return xfer;
 }
 
 /* Clean up after the inferior exits.  */
@@ -1762,9 +1779,10 @@ aix_thread_extra_thread_info (struct tar
     return NULL;
 
   string_file buf;
+  aix_thread_info *priv = get_aix_thread_info (thread);
 
-  pdtid = thread->priv->pdtid;
-  tid = thread->priv->tid;
+  pdtid = priv->pdtid;
+  tid = priv->tid;
 
   if (tid != PTHDB_INVALID_TID)
     /* i18n: Like "thread-identifier %d, [state] running, suspended" */
@@ -1834,8 +1852,6 @@ init_aix_thread_ops (void)
 /* Module startup initialization function, automagically called by
    init.c.  */
 
-void _initialize_aix_thread (void);
-
 void
 _initialize_aix_thread (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-bsd-nat.c ./gdb/alpha-bsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-bsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/alpha-bsd-nat.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for Alpha BSD's.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -101,7 +101,7 @@ alphabsd_fetch_inferior_registers (struc
     }
 
   if (regno == -1
-      || regno >= gdbarch_fp0_regnum (get_regcache_arch (regcache)))
+      || regno >= gdbarch_fp0_regnum (regcache->arch ()))
     {
       struct fpreg fpregs;
 
@@ -138,7 +138,7 @@ alphabsd_store_inferior_registers (struc
     }
 
   if (regno == -1
-      || regno >= gdbarch_fp0_regnum (get_regcache_arch (regcache)))
+      || regno >= gdbarch_fp0_regnum (regcache->arch ()))
     {
       struct fpreg fpregs;
 
@@ -187,9 +187,6 @@ alphabsd_supply_pcb (struct regcache *re
 }
 
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_alphabsd_nat (void);
-
 void
 _initialize_alphabsd_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-bsd-tdep.c ./gdb/alpha-bsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-bsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/alpha-bsd-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common target dependent code Alpha BSD's.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-bsd-tdep.h ./gdb/alpha-bsd-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-bsd-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/alpha-bsd-tdep.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common target dependent code for Alpha BSD's.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-linux-nat.c ./gdb/alpha-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/alpha-linux-nat.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,5 +1,5 @@
 /* Low level Alpha GNU/Linux interface, for GDB when running native.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -91,8 +91,6 @@ alpha_linux_register_u_offset (struct gd
     return FPR_BASE + regno - gdbarch_fp0_regnum (gdbarch);
 }
 
-void _initialize_alpha_linux_nat (void);
-
 void
 _initialize_alpha_linux_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-linux-tdep.c ./gdb/alpha-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/alpha-linux-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target-dependent code for GNU/Linux on Alpha.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -388,9 +388,6 @@ alpha_linux_init_abi (struct gdbarch_inf
 				    alpha_linux_gdb_signal_to_target);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_alpha_linux_tdep;
-
 void
 _initialize_alpha_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-mdebug-tdep.c ./gdb/alpha-mdebug-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-mdebug-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/alpha-mdebug-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target-dependent mdebug code for the ALPHA architecture.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-nbsd-tdep.c ./gdb/alpha-nbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-nbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/alpha-nbsd-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for NetBSD/alpha.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Wasabi Systems, Inc.
 
@@ -276,9 +276,6 @@ alphanbsd_init_abi (struct gdbarch_info 
 }
 
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_alphanbsd_tdep (void);
-
 void
 _initialize_alphanbsd_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-obsd-tdep.c ./gdb/alpha-obsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-obsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/alpha-obsd-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for OpenBSD/alpha.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -126,9 +126,6 @@ alphaobsd_init_abi(struct gdbarch_info i
 }
 
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_alphaobsd_tdep (void);
-
 void
 _initialize_alphaobsd_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-tdep.c ./gdb/alpha-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/alpha-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the ALPHA architecture, for GDB, the GNU Debugger.
 
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -18,7 +18,6 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "defs.h"
-#include "doublest.h"
 #include "frame.h"
 #include "frame-unwind.h"
 #include "frame-base.h"
@@ -227,7 +226,7 @@ alpha_sts (struct gdbarch *gdbarch, void
 /* The alpha needs a conversion between register and memory format if the
    register is a floating point register and memory format is float, as the
    register format must be double or memory format is an integer with 4
-   bytes or less, as the representation of integers in floating point
+   bytes, as the representation of integers in floating point
    registers is different.  */
 
 static int
@@ -235,7 +234,7 @@ alpha_convert_register_p (struct gdbarch
 			  struct type *type)
 {
   return (regno >= ALPHA_FP0_REGNUM && regno < ALPHA_FP0_REGNUM + 31
-	  && TYPE_LENGTH (type) != 8);
+	  && TYPE_LENGTH (type) == 4);
 }
 
 static int
@@ -244,38 +243,40 @@ alpha_register_to_value (struct frame_in
 			int *optimizedp, int *unavailablep)
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
-  gdb_byte in[MAX_REGISTER_SIZE];
+  struct value *value = get_frame_register_value (frame, regnum);
 
-  /* Convert to TYPE.  */
-  if (!get_frame_register_bytes (frame, regnum, 0,
-				 register_size (gdbarch, regnum),
-				 in, optimizedp, unavailablep))
-    return 0;
+  gdb_assert (value != NULL);
+  *optimizedp = value_optimized_out (value);
+  *unavailablep = !value_entirely_available (value);
 
-  if (TYPE_LENGTH (valtype) == 4)
+  if (*optimizedp || *unavailablep)
     {
-      alpha_sts (gdbarch, out, in);
-      *optimizedp = *unavailablep = 0;
-      return 1;
+      release_value (value);
+      value_free (value);
+      return 0;
     }
 
-  error (_("Cannot retrieve value from floating point register"));
+  /* Convert to VALTYPE.  */
+
+  gdb_assert (TYPE_LENGTH (valtype) == 4);
+  alpha_sts (gdbarch, out, value_contents_all (value));
+
+  release_value (value);
+  value_free (value);
+  return 1;
 }
 
 static void
 alpha_value_to_register (struct frame_info *frame, int regnum,
 			 struct type *valtype, const gdb_byte *in)
 {
-  gdb_byte out[MAX_REGISTER_SIZE];
+  gdb_byte out[ALPHA_REGISTER_SIZE];
+
+  gdb_assert (TYPE_LENGTH (valtype) == 4);
+  gdb_assert (register_size (get_frame_arch (frame), regnum)
+	      <= ALPHA_REGISTER_SIZE);
+  alpha_lds (get_frame_arch (frame), out, in);
 
-  switch (TYPE_LENGTH (valtype))
-    {
-    case 4:
-      alpha_lds (get_frame_arch (frame), out, in);
-      break;
-    default:
-      error (_("Cannot store value in floating point register"));
-    }
   put_frame_register (frame, regnum, out);
 }
 
@@ -473,7 +474,7 @@ static void
 alpha_extract_return_value (struct type *valtype, struct regcache *regcache,
 			    gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   gdb_byte raw_buffer[ALPHA_REGISTER_SIZE];
   ULONGEST l;
@@ -542,7 +543,7 @@ static void
 alpha_store_return_value (struct type *valtype, struct regcache *regcache,
 			  const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   gdb_byte raw_buffer[ALPHA_REGISTER_SIZE];
   ULONGEST l;
 
@@ -765,11 +766,9 @@ static const int stq_c_opcode = 0x2f;
    is found, attempt to step through it.  A breakpoint is placed at the end of 
    the sequence.  */
 
-static VEC (CORE_ADDR) *
-alpha_deal_with_atomic_sequence (struct regcache *regcache)
+static std::vector<CORE_ADDR>
+alpha_deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
-  CORE_ADDR pc = regcache_read_pc (regcache);
   CORE_ADDR breaks[2] = {-1, -1};
   CORE_ADDR loc = pc;
   CORE_ADDR closing_insn; /* Instruction that closes the atomic sequence.  */
@@ -779,12 +778,11 @@ alpha_deal_with_atomic_sequence (struct 
   int last_breakpoint = 0; /* Defaults to 0 (no breakpoints placed).  */  
   const int atomic_sequence_length = 16; /* Instruction sequence length.  */
   int bc_insn_count = 0; /* Conditional branch instruction count.  */
-  VEC (CORE_ADDR) *next_pcs = NULL;
 
   /* Assume all atomic sequences start with a LDL_L/LDQ_L instruction.  */
   if (INSN_OPCODE (insn) != ldl_l_opcode
       && INSN_OPCODE (insn) != ldq_l_opcode)
-    return NULL;
+    return {};
 
   /* Assume that no atomic sequence is longer than "atomic_sequence_length" 
      instructions.  */
@@ -803,8 +801,8 @@ alpha_deal_with_atomic_sequence (struct 
 	  immediate = (immediate ^ 0x400000) - 0x400000;
 
 	  if (bc_insn_count >= 1)
-	    return NULL; /* More than one branch found, fallback 
-			    to the standard single-step code.  */
+	    return {}; /* More than one branch found, fallback
+			  to the standard single-step code.  */
 
 	  breaks[1] = loc + ALPHA_INSN_SIZE + immediate;
 
@@ -820,7 +818,7 @@ alpha_deal_with_atomic_sequence (struct 
   /* Assume that the atomic sequence ends with a STL_C/STQ_C instruction.  */
   if (INSN_OPCODE (insn) != stl_c_opcode
       && INSN_OPCODE (insn) != stq_c_opcode)
-    return NULL;
+    return {};
 
   closing_insn = loc;
   loc += ALPHA_INSN_SIZE;
@@ -835,8 +833,10 @@ alpha_deal_with_atomic_sequence (struct 
 	  || (breaks[1] >= pc && breaks[1] <= closing_insn)))
     last_breakpoint = 0;
 
+  std::vector<CORE_ADDR> next_pcs;
+
   for (index = 0; index <= last_breakpoint; index++)
-    VEC_safe_push (CORE_ADDR, next_pcs, breaks[index]);
+    next_pcs.push_back (breaks[index]);
 
   return next_pcs;
 }
@@ -1459,7 +1459,8 @@ static const struct frame_base alpha_heu
    callable as an sfunc.  Used by the "set heuristic-fence-post" command.  */
 
 static void
-reinit_frame_cache_sfunc (char *args, int from_tty, struct cmd_list_element *c)
+reinit_frame_cache_sfunc (const char *args,
+			  int from_tty, struct cmd_list_element *c)
 {
   reinit_frame_cache ();
 }
@@ -1599,7 +1600,7 @@ fp_register_sign_bit (LONGEST reg)
 static CORE_ADDR
 alpha_next_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   unsigned int insn;
   unsigned int op;
   int regno;
@@ -1717,17 +1718,20 @@ alpha_next_pc (struct regcache *regcache
   return (pc + ALPHA_INSN_SIZE);
 }
 
-VEC (CORE_ADDR) *
+std::vector<CORE_ADDR>
 alpha_software_single_step (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
-  CORE_ADDR pc;
-  VEC (CORE_ADDR) *next_pcs = NULL;
+  struct gdbarch *gdbarch = regcache->arch ();
 
-  pc = regcache_read_pc (regcache);
+  CORE_ADDR pc = regcache_read_pc (regcache);
 
-  VEC_safe_push (CORE_ADDR, next_pcs, alpha_next_pc (regcache, pc));
-  return next_pcs;
+  std::vector<CORE_ADDR> next_pcs
+    = alpha_deal_with_atomic_sequence (gdbarch, pc);
+  if (!next_pcs.empty ())
+    return next_pcs;
+
+  CORE_ADDR next_pc = alpha_next_pc (regcache, pc);
+  return {next_pc};
 }
 
 
@@ -1749,7 +1753,7 @@ alpha_gdbarch_init (struct gdbarch_info 
   if (arches != NULL)
     return arches->gdbarch;
 
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
 
   /* Lowest text address.  This is used by heuristic_proc_start()
@@ -1799,9 +1803,6 @@ alpha_gdbarch_init (struct gdbarch_info 
   /* Prologue heuristics.  */
   set_gdbarch_skip_prologue (gdbarch, alpha_skip_prologue);
 
-  /* Disassembler.  */
-  set_gdbarch_print_insn (gdbarch, print_insn_alpha);
-
   /* Call info.  */
 
   set_gdbarch_return_value (gdbarch, alpha_return_value);
@@ -1826,7 +1827,7 @@ alpha_gdbarch_init (struct gdbarch_info 
   set_gdbarch_cannot_step_breakpoint (gdbarch, 1);
 
   /* Handles single stepping of atomic sequences.  */
-  set_gdbarch_software_single_step (gdbarch, alpha_deal_with_atomic_sequence);
+  set_gdbarch_software_single_step (gdbarch, alpha_software_single_step);
 
   /* Hook in ABI-specific overrides, if they have been registered.  */
   gdbarch_init_osabi (info, gdbarch);
@@ -1852,8 +1853,6 @@ alpha_dwarf2_init_abi (struct gdbarch_in
   frame_base_append_sniffer (gdbarch, dwarf2_frame_base_sniffer);
 }
 
-extern initialize_file_ftype _initialize_alpha_tdep; /* -Wmissing-prototypes */
-
 void
 _initialize_alpha_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-tdep.h ./gdb/alpha-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/alpha-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/alpha-tdep.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,5 +1,5 @@
 /* Common target dependent code for GDB on Alpha systems.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -103,7 +103,8 @@ struct gdbarch_tdep
 };
 
 extern unsigned int alpha_read_insn (struct gdbarch *gdbarch, CORE_ADDR pc);
-extern VEC (CORE_ADDR) *alpha_software_single_step (struct regcache *regcache);
+extern std::vector<CORE_ADDR> alpha_software_single_step
+  (struct regcache *regcache);
 extern CORE_ADDR alpha_after_prologue (CORE_ADDR pc);
 
 extern void alpha_mdebug_init_abi (struct gdbarch_info, struct gdbarch *);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-bsd-nat.c ./gdb/amd64-bsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-bsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-bsd-nat.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for AMD64 BSD's.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -42,7 +42,7 @@ static void
 amd64bsd_fetch_inferior_registers (struct target_ops *ops,
 				   struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   pid_t pid = get_ptrace_pid (regcache_get_ptid (regcache));
 
   if (regnum == -1 || amd64_native_gregset_supplies_p (gdbarch, regnum))
@@ -57,6 +57,33 @@ amd64bsd_fetch_inferior_registers (struc
 	return;
     }
 
+#ifdef PT_GETFSBASE
+  if (regnum == -1 || regnum == AMD64_FSBASE_REGNUM)
+    {
+      register_t base;
+
+      if (ptrace (PT_GETFSBASE, pid, (PTRACE_TYPE_ARG3) &base, 0) == -1)
+	perror_with_name (_("Couldn't get segment register fs_base"));
+
+      regcache_raw_supply (regcache, AMD64_FSBASE_REGNUM, &base);
+      if (regnum != -1)
+	return;
+    }
+#endif
+#ifdef PT_GETGSBASE
+  if (regnum == -1 || regnum == AMD64_GSBASE_REGNUM)
+    {
+      register_t base;
+
+      if (ptrace (PT_GETGSBASE, pid, (PTRACE_TYPE_ARG3) &base, 0) == -1)
+	perror_with_name (_("Couldn't get segment register gs_base"));
+
+      regcache_raw_supply (regcache, AMD64_GSBASE_REGNUM, &base);
+      if (regnum != -1)
+	return;
+    }
+#endif
+
   if (regnum == -1 || !amd64_native_gregset_supplies_p (gdbarch, regnum))
     {
       struct fpreg fpregs;
@@ -89,7 +116,7 @@ static void
 amd64bsd_store_inferior_registers (struct target_ops *ops,
 				   struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   pid_t pid = get_ptrace_pid (regcache_get_ptid (regcache));
 
   if (regnum == -1 || amd64_native_gregset_supplies_p (gdbarch, regnum))
@@ -108,6 +135,33 @@ amd64bsd_store_inferior_registers (struc
 	return;
     }
 
+#ifdef PT_SETFSBASE
+  if (regnum == -1 || regnum == AMD64_FSBASE_REGNUM)
+    {
+      register_t base;
+
+      regcache_raw_collect (regcache, AMD64_FSBASE_REGNUM, &base);
+
+      if (ptrace (PT_SETFSBASE, pid, (PTRACE_TYPE_ARG3) &base, 0) == -1)
+	perror_with_name (_("Couldn't write segment register fs_base"));
+      if (regnum != -1)
+	return;
+    }
+#endif
+#ifdef PT_SETGSBASE
+  if (regnum == -1 || regnum == AMD64_GSBASE_REGNUM)
+    {
+      register_t base;
+
+      regcache_raw_collect (regcache, AMD64_GSBASE_REGNUM, &base);
+
+      if (ptrace (PT_SETGSBASE, pid, (PTRACE_TYPE_ARG3) &base, 0) == -1)
+	perror_with_name (_("Couldn't write segment register gs_base"));
+      if (regnum != -1)
+	return;
+    }
+#endif
+
   if (regnum == -1 || !amd64_native_gregset_supplies_p (gdbarch, regnum))
     {
       struct fpreg fpregs;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-darwin-tdep.c ./gdb/amd64-darwin-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-darwin-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-darwin-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,5 +1,5 @@
 /* Darwin support for GDB, the GNU debugger.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
 
    Contributed by Apple Computer, Inc.
 
@@ -23,12 +23,12 @@
 #include "inferior.h"
 #include "gdbcore.h"
 #include "target.h"
-#include "floatformat.h"
 #include "symtab.h"
 #include "regcache.h"
 #include "objfiles.h"
 
 #include "i387-tdep.h"
+#include "x86-xstate.h"
 #include "amd64-tdep.h"
 #include "osabi.h"
 #include "ui-out.h"
@@ -99,7 +99,8 @@ x86_darwin_init_abi_64 (struct gdbarch_i
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
-  amd64_init_abi (info, gdbarch);
+  amd64_init_abi (info, gdbarch,
+		  amd64_target_description (X86_XSTATE_SSE_MASK));
 
   tdep->struct_return = reg_struct_return;
 
@@ -115,9 +116,6 @@ x86_darwin_init_abi_64 (struct gdbarch_i
   set_solib_ops (gdbarch, &darwin_so_ops);
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_amd64_darwin_tdep;
-
 void
 _initialize_amd64_darwin_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-darwin-tdep.h ./gdb/amd64-darwin-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-darwin-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-darwin-tdep.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Darwin x86-64.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-dicos-tdep.c ./gdb/amd64-dicos-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-dicos-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-dicos-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for DICOS running on x86-64's, for GDB.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,12 +20,14 @@
 #include "defs.h"
 #include "osabi.h"
 #include "amd64-tdep.h"
+#include "x86-xstate.h"
 #include "dicos-tdep.h"
 
 static void
 amd64_dicos_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
-  amd64_init_abi (info, gdbarch);
+  amd64_init_abi (info, gdbarch,
+		  amd64_target_description (X86_XSTATE_SSE_MASK));
 
   dicos_init_abi (gdbarch);
 }
@@ -44,9 +46,6 @@ amd64_dicos_osabi_sniffer (bfd *abfd)
   return GDB_OSABI_UNKNOWN;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_amd64_dicos_tdep (void);
-
 void
 _initialize_amd64_dicos_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-fbsd-nat.c ./gdb/amd64-fbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-fbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-fbsd-nat.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for FreeBSD/amd64.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -34,6 +34,7 @@
 #include "amd64-nat.h"
 #include "x86-bsd-nat.h"
 #include "x86-nat.h"
+#include "x86-xstate.h"
 
 
 /* Offset in `struct reg' where MEMBER is stored.  */
@@ -179,14 +180,11 @@ amd64fbsd_read_description (struct targe
     }
 #endif
   if (is64)
-    return tdesc_amd64;
+    return amd64_target_description (X86_XSTATE_SSE_MASK);
   else
-    return tdesc_i386;
+    return i386_target_description (X86_XSTATE_SSE_MASK);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_amd64fbsd_nat (void);
-
 void
 _initialize_amd64fbsd_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-fbsd-tdep.c ./gdb/amd64-fbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-fbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-fbsd-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for FreeBSD/amd64.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -217,7 +217,8 @@ amd64fbsd_init_abi (struct gdbarch_info 
   tdep->gregset_num_regs = ARRAY_SIZE (amd64fbsd_r_reg_offset);
   tdep->sizeof_gregset = 22 * 8;
 
-  amd64_init_abi (info, gdbarch);
+  amd64_init_abi (info, gdbarch,
+		  amd64_target_description (X86_XSTATE_SSE_MASK));
 
   tdep->sigtramp_p = amd64fbsd_sigtramp_p;
   tdep->sigtramp_start = amd64fbsd_sigtramp_start_addr;
@@ -239,10 +240,6 @@ amd64fbsd_init_abi (struct gdbarch_info 
   set_solib_svr4_fetch_link_map_offsets
     (gdbarch, svr4_lp64_fetch_link_map_offsets);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_amd64fbsd_tdep (void);
 
 void
 _initialize_amd64fbsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-linux-nat.c ./gdb/amd64-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-linux-nat.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for GNU/Linux x86-64.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    Contributed by Jiri Smid, SuSE Labs.
 
    This file is part of GDB.
@@ -134,7 +134,7 @@ static void
 amd64_linux_fetch_inferior_registers (struct target_ops *ops,
 				      struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int tid;
 
   /* GNU/Linux LWP ID's are process ID's.  */
@@ -213,7 +213,7 @@ static void
 amd64_linux_store_inferior_registers (struct target_ops *ops,
 				      struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int tid;
 
   /* GNU/Linux LWP ID's are process ID's.  */
@@ -396,9 +396,6 @@ amd64_linux_siginfo_fixup (siginfo_t *pt
     return 0;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_amd64_linux_nat (void);
-
 void
 _initialize_amd64_linux_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-linux-tdep.c ./gdb/amd64-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-linux-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux x86-64.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    Contributed by Jiri Smid, SuSE Labs.
 
    This file is part of GDB.
@@ -39,17 +39,8 @@
 #include "solib-svr4.h"
 #include "xml-syscall.h"
 #include "glibc-tdep.h"
-
-#include "features/i386/amd64-linux.c"
-#include "features/i386/amd64-avx-linux.c"
-#include "features/i386/amd64-mpx-linux.c"
-#include "features/i386/amd64-avx-mpx-linux.c"
-#include "features/i386/amd64-avx-avx512-linux.c"
-#include "features/i386/amd64-avx-mpx-avx512-pku-linux.c"
-
-#include "features/i386/x32-linux.c"
-#include "features/i386/x32-avx-linux.c"
-#include "features/i386/x32-avx-avx512-linux.c"
+#include "arch/amd64.h"
+#include "target-descriptions.h"
 
 /* The syscall's XML filename for i386.  */
 #define XML_SYSCALL_FILENAME_AMD64 "syscalls/amd64-linux.xml"
@@ -372,6 +363,9 @@ amd64_all_but_ip_registers_record (struc
 static enum gdb_syscall
 amd64_canonicalize_syscall (enum amd64_syscall syscall_number)
 {
+  DIAGNOSTIC_PUSH
+  DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES
+
   switch (syscall_number) {
   case amd64_sys_read:
   case amd64_x32_sys_read:
@@ -1439,6 +1433,8 @@ amd64_canonicalize_syscall (enum amd64_s
   default:
     return gdb_sys_no_syscall;
   }
+
+  DIAGNOSTIC_POP
 }
 
 /* Parse the arguments of current system call instruction and record
@@ -1575,6 +1571,34 @@ amd64_linux_record_signal (struct gdbarc
   return 0;
 }
 
+const target_desc *
+amd64_linux_read_description (uint64_t xcr0_features_bit, bool is_x32)
+{
+  static target_desc *amd64_linux_tdescs \
+    [2/*AVX*/][2/*MPX*/][2/*AVX512*/][2/*PKRU*/] = {};
+  static target_desc *x32_linux_tdescs[2/*AVX*/][2/*AVX512*/] = {};
+
+  target_desc **tdesc;
+
+  if (is_x32)
+    {
+      tdesc = &x32_linux_tdescs[(xcr0_features_bit & X86_XSTATE_AVX) ? 1 : 0 ]
+	[(xcr0_features_bit & X86_XSTATE_AVX512) ? 1 : 0];
+    }
+  else
+    {
+      tdesc = &amd64_linux_tdescs[(xcr0_features_bit & X86_XSTATE_AVX) ? 1 : 0]
+	[(xcr0_features_bit & X86_XSTATE_MPX) ? 1 : 0]
+	[(xcr0_features_bit & X86_XSTATE_AVX512) ? 1 : 0]
+	[(xcr0_features_bit & X86_XSTATE_PKRU) ? 1 : 0];
+    }
+
+  if (*tdesc == NULL)
+    *tdesc = amd64_create_target_description (xcr0_features_bit, is_x32, true);
+
+  return *tdesc;
+}
+
 /* Get Linux/x86 target description from core dump.  */
 
 static const struct target_desc *
@@ -1585,42 +1609,8 @@ amd64_linux_core_read_description (struc
   /* Linux/x86-64.  */
   uint64_t xcr0 = i386_linux_core_read_xcr0 (abfd);
 
-  switch (xcr0 & X86_XSTATE_ALL_MASK)
-    {
-    case X86_XSTATE_AVX_MPX_AVX512_PKU_MASK:
-      if (gdbarch_ptr_bit (gdbarch) == 32)
-	  /* No MPX on x32, fallback to AVX-AVX512.  */
-	return tdesc_x32_avx_avx512_linux;
-      else
-	return tdesc_amd64_avx_mpx_avx512_pku_linux;
-    case X86_XSTATE_AVX_AVX512_MASK:
-      if (gdbarch_ptr_bit (gdbarch) == 32)
-	return tdesc_x32_avx_avx512_linux;
-      else
-	return tdesc_amd64_avx_avx512_linux;
-    case X86_XSTATE_MPX_MASK:
-      if (gdbarch_ptr_bit (gdbarch) == 32)
-	  /* No MPX on x32, fallback to AVX-AVX512.  */
-	return tdesc_x32_avx_linux;
-      else
-	return tdesc_amd64_mpx_linux;
-    case X86_XSTATE_AVX_MPX_MASK:
-      if (gdbarch_ptr_bit (gdbarch) == 32)
-	  /* No MPX on x32, fallback to AVX-AVX512.  */
-	return tdesc_x32_avx_linux;
-      else
-	return tdesc_amd64_avx_mpx_linux;
-    case X86_XSTATE_AVX_MASK:
-      if (gdbarch_ptr_bit (gdbarch) == 32)
-	return tdesc_x32_avx_linux;
-      else
-	return tdesc_amd64_avx_linux;
-    default:
-      if (gdbarch_ptr_bit (gdbarch) == 32)
-	return tdesc_x32_linux;
-      else
-	return tdesc_amd64_linux;
-    }
+  return amd64_linux_read_description (xcr0 & X86_XSTATE_ALL_MASK,
+				       gdbarch_ptr_bit (gdbarch) == 32);
 }
 
 /* Similar to amd64_supply_fpregset, but use XSAVE extended state.  */
@@ -1848,8 +1838,6 @@ amd64_linux_init_abi_common(struct gdbar
   set_gdbarch_displaced_step_copy_insn (gdbarch,
                                         amd64_displaced_step_copy_insn);
   set_gdbarch_displaced_step_fixup (gdbarch, amd64_displaced_step_fixup);
-  set_gdbarch_displaced_step_free_closure (gdbarch,
-                                           simple_displaced_step_free_closure);
   set_gdbarch_displaced_step_location (gdbarch,
                                        linux_displaced_step_location);
 
@@ -1865,9 +1853,7 @@ static void
 amd64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-  const struct target_desc *tdesc = info.target_desc;
-  struct tdesc_arch_data *tdesc_data
-    = (struct tdesc_arch_data *) info.tdep_info;
+  struct tdesc_arch_data *tdesc_data = info.tdesc_data;
   const struct tdesc_feature *feature;
   int valid_p;
 
@@ -1877,15 +1863,14 @@ amd64_linux_init_abi (struct gdbarch_inf
   tdep->gregset_num_regs = ARRAY_SIZE (amd64_linux_gregset_reg_offset);
   tdep->sizeof_gregset = 27 * 8;
 
-  amd64_init_abi (info, gdbarch);
+  amd64_init_abi (info, gdbarch,
+		  amd64_linux_read_description (X86_XSTATE_SSE_MASK, false));
+
+  const target_desc *tdesc = tdep->tdesc;
 
   /* Reserve a number for orig_rax.  */
   set_gdbarch_num_regs (gdbarch, AMD64_LINUX_NUM_REGS);
 
-  if (! tdesc_has_registers (tdesc))
-    tdesc = tdesc_amd64_linux;
-  tdep->tdesc = tdesc;
-
   feature = tdesc_find_feature (tdesc, "org.gnu.gdb.i386.linux");
   if (feature == NULL)
     return;
@@ -2082,9 +2067,7 @@ static void
 amd64_x32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-  const struct target_desc *tdesc = info.target_desc;
-  struct tdesc_arch_data *tdesc_data
-    = (struct tdesc_arch_data *) info.tdep_info;
+  struct tdesc_arch_data *tdesc_data = info.tdesc_data;
   const struct tdesc_feature *feature;
   int valid_p;
 
@@ -2094,14 +2077,14 @@ amd64_x32_linux_init_abi (struct gdbarch
   tdep->gregset_num_regs = ARRAY_SIZE (amd64_linux_gregset_reg_offset);
   tdep->sizeof_gregset = 27 * 8;
 
-  amd64_x32_init_abi (info, gdbarch);
+  amd64_x32_init_abi (info, gdbarch,
+		      amd64_linux_read_description (X86_XSTATE_SSE_MASK,
+						    true));
 
   /* Reserve a number for orig_rax.  */
   set_gdbarch_num_regs (gdbarch, AMD64_LINUX_NUM_REGS);
 
-  if (! tdesc_has_registers (tdesc))
-    tdesc = tdesc_x32_linux;
-  tdep->tdesc = tdesc;
+  const target_desc *tdesc = tdep->tdesc;
 
   feature = tdesc_find_feature (tdesc, "org.gnu.gdb.i386.linux");
   if (feature == NULL)
@@ -2287,10 +2270,6 @@ amd64_x32_linux_init_abi (struct gdbarch
   set_solib_svr4_fetch_link_map_offsets
     (gdbarch, svr4_ilp32_fetch_link_map_offsets);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern void _initialize_amd64_linux_tdep (void);
 
 void
 _initialize_amd64_linux_tdep (void)
@@ -2300,15 +2279,31 @@ _initialize_amd64_linux_tdep (void)
   gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x64_32,
 			  GDB_OSABI_LINUX, amd64_x32_linux_init_abi);
 
-  /* Initialize the Linux target description.  */
-  initialize_tdesc_amd64_linux ();
-  initialize_tdesc_amd64_avx_linux ();
-  initialize_tdesc_amd64_mpx_linux ();
-  initialize_tdesc_amd64_avx_mpx_linux ();
-  initialize_tdesc_amd64_avx_avx512_linux ();
-  initialize_tdesc_amd64_avx_mpx_avx512_pku_linux ();
-
-  initialize_tdesc_x32_linux ();
-  initialize_tdesc_x32_avx_linux ();
-  initialize_tdesc_x32_avx_avx512_linux ();
+#if GDB_SELF_TEST
+  struct
+  {
+    const char *xml;
+    uint64_t mask;
+  } xml_masks[] = {
+    { "i386/amd64-linux.xml", X86_XSTATE_SSE_MASK },
+    { "i386/amd64-avx-linux.xml", X86_XSTATE_AVX_MASK },
+    { "i386/amd64-mpx-linux.xml", X86_XSTATE_MPX_MASK },
+    { "i386/amd64-avx-mpx-linux.xml", X86_XSTATE_AVX_MPX_MASK },
+    { "i386/amd64-avx-avx512-linux.xml", X86_XSTATE_AVX_AVX512_MASK },
+    { "i386/amd64-avx-mpx-avx512-pku-linux.xml",
+      X86_XSTATE_AVX_MPX_AVX512_PKU_MASK },
+    { "i386/x32-linux.xml", X86_XSTATE_SSE_MASK },
+    { "i386/x32-avx-linux.xml", X86_XSTATE_AVX_MASK },
+    { "i386/x32-avx-avx512-linux.xml", X86_XSTATE_AVX_AVX512_MASK },
+  };
+
+  for (auto &a : xml_masks)
+    {
+      auto tdesc = amd64_linux_read_description (a.mask,
+						 startswith (a.xml,
+							     "i386/x32"));
+
+      selftests::record_xml_tdesc (a.xml, tdesc);
+    }
+#endif /* GDB_SELF_TEST */
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-linux-tdep.h ./gdb/amd64-linux-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-linux-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-linux-tdep.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux AMD64.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -43,6 +43,12 @@ extern struct target_desc *tdesc_x32_lin
 extern struct target_desc *tdesc_x32_avx_linux;
 extern struct target_desc *tdesc_x32_avx_avx512_linux;
 
+/* Return the right amd64-linux target descriptions according to
+   XCR0_FEATURES_BIT and IS_X32.  */
+
+const target_desc *amd64_linux_read_description (uint64_t xcr0_features_bit,
+						 bool is_x32);
+
 /* Enum that defines the syscall identifiers for amd64 linux.
    Used for process record/replay, these will be translated into
    a gdb-canonical set of syscall ids in linux-record.c.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-nat.c ./gdb/amd64-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-nat.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for AMD64.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -96,7 +96,7 @@ amd64_supply_native_gregset (struct regc
 			     const void *gregs, int regnum)
 {
   const char *regs = (const char *) gregs;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int num_regs = amd64_native_gregset64_num_regs;
   int i;
 
@@ -127,7 +127,7 @@ amd64_collect_native_gregset (const stru
 			      void *gregs, int regnum)
 {
   char *regs = (char *) gregs;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int num_regs = amd64_native_gregset64_num_regs;
   int i;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-nat.h ./gdb/amd64-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-nat.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for AMD64.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-nbsd-nat.c ./gdb/amd64-nbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-nbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-nbsd-nat.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for NetBSD/amd64.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -52,10 +52,6 @@ static int amd64nbsd32_r_reg_offset[] =
   16 * 8,			/* %fs */
   15 * 8			/* %gs */
 };
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_amd64nbsd_nat (void);
 
 void
 _initialize_amd64nbsd_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-nbsd-tdep.c ./gdb/amd64-nbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-nbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-nbsd-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for NetBSD/amd64.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -25,6 +25,7 @@
 #include "symtab.h"
 
 #include "amd64-tdep.h"
+#include "x86-xstate.h"
 #include "nbsd-tdep.h"
 #include "solib-svr4.h"
 
@@ -103,7 +104,8 @@ amd64nbsd_init_abi (struct gdbarch_info 
   tdep->gregset_num_regs = ARRAY_SIZE (amd64nbsd_r_reg_offset);
   tdep->sizeof_gregset = 26 * 8;
 
-  amd64_init_abi (info, gdbarch);
+  amd64_init_abi (info, gdbarch,
+		  amd64_target_description (X86_XSTATE_SSE_MASK));
 
   tdep->jb_pc_offset = 7 * 8;
 
@@ -117,10 +119,6 @@ amd64nbsd_init_abi (struct gdbarch_info 
   set_solib_svr4_fetch_link_map_offsets
     (gdbarch, svr4_lp64_fetch_link_map_offsets);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_amd64nbsd_tdep (void);
 
 void
 _initialize_amd64nbsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-obsd-nat.c ./gdb/amd64-obsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-obsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-obsd-nat.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for OpenBSD/amd64.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -124,10 +124,6 @@ amd64obsd_supply_pcb (struct regcache *r
 
   return 1;
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_amd64obsd_nat (void);
 
 void
 _initialize_amd64obsd_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-obsd-tdep.c ./gdb/amd64-obsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-obsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-obsd-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for OpenBSD/amd64.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -32,6 +32,7 @@
 #include "obsd-tdep.h"
 #include "amd64-tdep.h"
 #include "i387-tdep.h"
+#include "x86-xstate.h"
 #include "solib-svr4.h"
 #include "bsd-uthread.h"
 
@@ -220,7 +221,7 @@ static void
 amd64obsd_supply_uthread (struct regcache *regcache,
 			  int regnum, CORE_ADDR addr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR sp_addr = addr + AMD64OBSD_UTHREAD_RSP_OFFSET;
   CORE_ADDR sp = 0;
@@ -264,7 +265,7 @@ static void
 amd64obsd_collect_uthread (const struct regcache *regcache,
 			   int regnum, CORE_ADDR addr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR sp_addr = addr + AMD64OBSD_UTHREAD_RSP_OFFSET;
   CORE_ADDR sp = 0;
@@ -419,7 +420,8 @@ amd64obsd_init_abi (struct gdbarch_info 
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
-  amd64_init_abi (info, gdbarch);
+  amd64_init_abi (info, gdbarch,
+		  amd64_target_description (X86_XSTATE_SSE_MASK));
   obsd_init_abi (info, gdbarch);
 
   /* Initialize general-purpose register set details.  */
@@ -445,10 +447,6 @@ amd64obsd_init_abi (struct gdbarch_info 
   /* Unwind kernel trap frames correctly.  */
   frame_unwind_prepend_unwinder (gdbarch, &amd64obsd_trapframe_unwind);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_amd64obsd_tdep (void);
 
 void
 _initialize_amd64obsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-sol2-tdep.c ./gdb/amd64-sol2-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-sol2-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-sol2-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for AMD64 Solaris.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    Contributed by Joseph Myers, CodeSourcery, LLC.
 
@@ -28,6 +28,7 @@
 
 #include "sol2-tdep.h"
 #include "amd64-tdep.h"
+#include "x86-xstate.h"
 #include "solib-svr4.h"
 
 /* Mapping between the general-purpose registers in gregset_t format
@@ -99,7 +100,8 @@ amd64_sol2_init_abi (struct gdbarch_info
   tdep->gregset_num_regs = ARRAY_SIZE (amd64_sol2_gregset_reg_offset);
   tdep->sizeof_gregset = 28 * 8;
 
-  amd64_init_abi (info, gdbarch);
+  amd64_init_abi (info, gdbarch,
+		  amd64_target_description (X86_XSTATE_SSE_MASK));
 
   tdep->sigtramp_p = amd64_sol2_sigtramp_p;
   tdep->sigcontext_addr = amd64_sol2_mcontext_addr;
@@ -114,10 +116,6 @@ amd64_sol2_init_abi (struct gdbarch_info
   /* How to print LWP PTIDs from core files.  */
   set_gdbarch_core_pid_to_str (gdbarch, sol2_core_pid_to_str);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern void _initialize_amd64_sol2_tdep (void);
 
 void
 _initialize_amd64_sol2_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-tdep.c ./gdb/amd64-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for AMD64.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    Contributed by Jiri Smid, SuSE Labs.
 
@@ -41,20 +41,12 @@
 #include "i387-tdep.h"
 #include "x86-xstate.h"
 #include <algorithm>
-
-#include "features/i386/amd64.c"
-#include "features/i386/amd64-avx.c"
-#include "features/i386/amd64-mpx.c"
-#include "features/i386/amd64-avx-mpx.c"
-#include "features/i386/amd64-avx-avx512.c"
-#include "features/i386/amd64-avx-mpx-avx512-pku.c"
-
-#include "features/i386/x32.c"
-#include "features/i386/x32-avx.c"
-#include "features/i386/x32-avx-avx512.c"
-
+#include "target-descriptions.h"
+#include "arch/amd64.h"
+#include "producer.h"
 #include "ax.h"
 #include "ax-gdb.h"
+#include "common/byte-vector.h"
 
 /* Note that the AMD64 architecture was previously known as x86-64.
    The latter is (forever) engraved into the canonical system name as
@@ -1045,8 +1037,9 @@ struct amd64_insn
 {
   /* The number of opcode bytes.  */
   int opcode_len;
-  /* The offset of the rex prefix or -1 if not present.  */
-  int rex_offset;
+  /* The offset of the REX/VEX instruction encoding prefix or -1 if
+     not present.  */
+  int enc_prefix_offset;
   /* The offset to the first opcode byte.  */
   int opcode_offset;
   /* The offset to the modrm byte or -1 if not present.  */
@@ -1056,22 +1049,22 @@ struct amd64_insn
   gdb_byte *raw_insn;
 };
 
-struct displaced_step_closure
+struct amd64_displaced_step_closure : public displaced_step_closure
 {
+  amd64_displaced_step_closure (int insn_buf_len)
+  : insn_buf (insn_buf_len, 0)
+  {}
+
   /* For rip-relative insns, saved copy of the reg we use instead of %rip.  */
-  int tmp_used;
+  int tmp_used = 0;
   int tmp_regno;
   ULONGEST tmp_save;
 
   /* Details of the instruction.  */
   struct amd64_insn insn_details;
 
-  /* Amount of space allocated to insn_buf.  */
-  int max_len;
-
-  /* The possibly modified insn.
-     This is a variable-length field.  */
-  gdb_byte insn_buf[1];
+  /* The possibly modified insn.  */
+  gdb::byte_vector insn_buf;
 };
 
 /* WARNING: Keep onebyte_has_modrm, twobyte_has_modrm in sync with
@@ -1132,6 +1125,22 @@ rex_prefix_p (gdb_byte pfx)
   return REX_PREFIX_P (pfx);
 }
 
+/* True if PFX is the start of the 2-byte VEX prefix.  */
+
+static bool
+vex2_prefix_p (gdb_byte pfx)
+{
+  return pfx == 0xc5;
+}
+
+/* True if PFX is the start of the 3-byte VEX prefix.  */
+
+static bool
+vex3_prefix_p (gdb_byte pfx)
+{
+  return pfx == 0xc4;
+}
+
 /* Skip the legacy instruction prefixes in INSN.
    We assume INSN is properly sentineled so we don't have to worry
    about falling off the end of the buffer.  */
@@ -1250,19 +1259,30 @@ amd64_get_insn_details (gdb_byte *insn, 
   details->raw_insn = insn;
 
   details->opcode_len = -1;
-  details->rex_offset = -1;
+  details->enc_prefix_offset = -1;
   details->opcode_offset = -1;
   details->modrm_offset = -1;
 
   /* Skip legacy instruction prefixes.  */
   insn = amd64_skip_prefixes (insn);
 
-  /* Skip REX instruction prefix.  */
+  /* Skip REX/VEX instruction encoding prefixes.  */
   if (rex_prefix_p (*insn))
     {
-      details->rex_offset = insn - start;
+      details->enc_prefix_offset = insn - start;
       ++insn;
     }
+  else if (vex2_prefix_p (*insn))
+    {
+      /* Don't record the offset in this case because this prefix has
+	 no REX.B equivalent.  */
+      insn += 2;
+    }
+  else if (vex3_prefix_p (*insn))
+    {
+      details->enc_prefix_offset = insn - start;
+      insn += 3;
+    }
 
   details->opcode_offset = insn - start;
 
@@ -1312,7 +1332,7 @@ amd64_get_insn_details (gdb_byte *insn, 
    We set base = pc + insn_length so we can leave disp unchanged.  */
 
 static void
-fixup_riprel (struct gdbarch *gdbarch, struct displaced_step_closure *dsc,
+fixup_riprel (struct gdbarch *gdbarch, amd64_displaced_step_closure *dsc,
 	      CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
 {
   const struct amd64_insn *insn_details = &dsc->insn_details;
@@ -1327,8 +1347,8 @@ fixup_riprel (struct gdbarch *gdbarch, s
   ++insn;
 
   /* Compute the rip-relative address.	*/
-  insn_length = gdb_buffered_insn_length (gdbarch, dsc->insn_buf,
-					  dsc->max_len, from);
+  insn_length = gdb_buffered_insn_length (gdbarch, dsc->insn_buf.data (),
+					  dsc->insn_buf.size (), from);
   rip_base = from + insn_length;
 
   /* We need a register to hold the address.
@@ -1337,10 +1357,22 @@ fixup_riprel (struct gdbarch *gdbarch, s
   arch_tmp_regno = amd64_get_unused_input_int_reg (insn_details);
   tmp_regno = amd64_arch_reg_to_regnum (arch_tmp_regno);
 
-  /* REX.B should be unset as we were using rip-relative addressing,
-     but ensure it's unset anyway, tmp_regno is not r8-r15.  */
-  if (insn_details->rex_offset != -1)
-    dsc->insn_buf[insn_details->rex_offset] &= ~REX_B;
+  /* Position of the not-B bit in the 3-byte VEX prefix (in byte 1).  */
+  static constexpr gdb_byte VEX3_NOT_B = 0x20;
+
+  /* REX.B should be unset (VEX.!B set) as we were using rip-relative
+     addressing, but ensure it's unset (set for VEX) anyway, tmp_regno
+     is not r8-r15.  */
+  if (insn_details->enc_prefix_offset != -1)
+    {
+      gdb_byte *pfx = &dsc->insn_buf[insn_details->enc_prefix_offset];
+      if (rex_prefix_p (pfx[0]))
+	pfx[0] &= ~REX_B;
+      else if (vex3_prefix_p (pfx[0]))
+	pfx[1] |= VEX3_NOT_B;
+      else
+	gdb_assert_not_reached ("unhandled prefix");
+    }
 
   regcache_cooked_read_unsigned (regs, tmp_regno, &orig_value);
   dsc->tmp_regno = tmp_regno;
@@ -1362,7 +1394,7 @@ fixup_riprel (struct gdbarch *gdbarch, s
 
 static void
 fixup_displaced_copy (struct gdbarch *gdbarch,
-		      struct displaced_step_closure *dsc,
+		      amd64_displaced_step_closure *dsc,
 		      CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
 {
   const struct amd64_insn *details = &dsc->insn_details;
@@ -1389,15 +1421,11 @@ amd64_displaced_step_copy_insn (struct g
   /* Extra space for sentinels so fixup_{riprel,displaced_copy} don't have to
      continually watch for running off the end of the buffer.  */
   int fixup_sentinel_space = len;
-  struct displaced_step_closure *dsc
-    = ((struct displaced_step_closure *)
-       xmalloc (sizeof (*dsc) + len + fixup_sentinel_space));
+  amd64_displaced_step_closure *dsc
+    = new amd64_displaced_step_closure (len + fixup_sentinel_space);
   gdb_byte *buf = &dsc->insn_buf[0];
   struct amd64_insn *details = &dsc->insn_details;
 
-  dsc->tmp_used = 0;
-  dsc->max_len = len + fixup_sentinel_space;
-
   read_memory (from, buf, len);
 
   /* Set up the sentinel space so we don't have to worry about running
@@ -1592,14 +1620,15 @@ amd64_insn_is_jump (struct gdbarch *gdba
 
 void
 amd64_displaced_step_fixup (struct gdbarch *gdbarch,
-			    struct displaced_step_closure *dsc,
+			    struct displaced_step_closure *dsc_,
 			    CORE_ADDR from, CORE_ADDR to,
 			    struct regcache *regs)
 {
+  amd64_displaced_step_closure *dsc = (amd64_displaced_step_closure *) dsc_;
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   /* The offset we applied to the instruction's address.  */
   ULONGEST insn_offset = to - from;
-  gdb_byte *insn = dsc->insn_buf;
+  gdb_byte *insn = dsc->insn_buf.data ();
   const struct amd64_insn *insn_details = &dsc->insn_details;
 
   if (debug_displaced)
@@ -2933,7 +2962,7 @@ static void
 amd64_supply_fpregset (const struct regset *regset, struct regcache *regcache,
 		       int regnum, const void *fpregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   gdb_assert (len >= tdep->sizeof_fpregset);
@@ -2950,7 +2979,7 @@ amd64_collect_fpregset (const struct reg
 			const struct regcache *regcache,
 			int regnum, void *fpregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   gdb_assert (len >= tdep->sizeof_fpregset);
@@ -3005,7 +3034,8 @@ static const int amd64_record_regmap[] =
 };
 
 void
-amd64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+amd64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch,
+		const target_desc *default_tdesc)
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   const struct target_desc *tdesc = info.target_desc;
@@ -3022,7 +3052,7 @@ amd64_init_abi (struct gdbarch_info info
   tdep->fpregset = &amd64_fpregset;
 
   if (! tdesc_has_registers (tdesc))
-    tdesc = tdesc_amd64;
+    tdesc = default_tdesc;
   tdep->tdesc = tdesc;
 
   tdep->num_core_regs = AMD64_NUM_GREGS + I387_NUM_REGS;
@@ -3196,16 +3226,12 @@ amd64_x32_pseudo_register_type (struct g
 }
 
 void
-amd64_x32_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+amd64_x32_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch,
+		    const target_desc *default_tdesc)
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-  const struct target_desc *tdesc = info.target_desc;
 
-  amd64_init_abi (info, gdbarch);
-
-  if (! tdesc_has_registers (tdesc))
-    tdesc = tdesc_x32;
-  tdep->tdesc = tdesc;
+  amd64_init_abi (info, gdbarch, default_tdesc);
 
   tdep->num_dword_regs = 17;
   set_tdesc_pseudo_register_type (gdbarch, amd64_x32_pseudo_register_type);
@@ -3219,39 +3245,46 @@ amd64_x32_init_abi (struct gdbarch_info 
 const struct target_desc *
 amd64_target_description (uint64_t xcr0)
 {
-  switch (xcr0 & X86_XSTATE_ALL_MASK)
-    {
-    case X86_XSTATE_AVX_MPX_AVX512_PKU_MASK:
-      return tdesc_amd64_avx_mpx_avx512_pku;
-    case X86_XSTATE_AVX_AVX512_MASK:
-      return tdesc_amd64_avx_avx512;
-    case X86_XSTATE_MPX_MASK:
-      return tdesc_amd64_mpx;
-    case X86_XSTATE_AVX_MPX_MASK:
-      return tdesc_amd64_avx_mpx;
-    case X86_XSTATE_AVX_MASK:
-      return tdesc_amd64_avx;
-    default:
-      return tdesc_amd64;
-    }
-}
+  static target_desc *amd64_tdescs \
+    [2/*AVX*/][2/*MPX*/][2/*AVX512*/][2/*PKRU*/] = {};
+  target_desc **tdesc;
+
+  tdesc = &amd64_tdescs[(xcr0 & X86_XSTATE_AVX) ? 1 : 0]
+    [(xcr0 & X86_XSTATE_MPX) ? 1 : 0]
+    [(xcr0 & X86_XSTATE_AVX512) ? 1 : 0]
+    [(xcr0 & X86_XSTATE_PKRU) ? 1 : 0];
+
+  if (*tdesc == NULL)
+    *tdesc = amd64_create_target_description (xcr0, false, false);
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_amd64_tdep (void);
+  return *tdesc;
+}
 
 void
 _initialize_amd64_tdep (void)
 {
-  initialize_tdesc_amd64 ();
-  initialize_tdesc_amd64_avx ();
-  initialize_tdesc_amd64_mpx ();
-  initialize_tdesc_amd64_avx_mpx ();
-  initialize_tdesc_amd64_avx_avx512 ();
-  initialize_tdesc_amd64_avx_mpx_avx512_pku ();
-
-  initialize_tdesc_x32 ();
-  initialize_tdesc_x32_avx ();
-  initialize_tdesc_x32_avx_avx512 ();
+#if GDB_SELF_TEST
+  struct
+  {
+    const char *xml;
+    uint64_t mask;
+  } xml_masks[] = {
+    { "i386/amd64.xml", X86_XSTATE_SSE_MASK },
+    { "i386/amd64-avx.xml", X86_XSTATE_AVX_MASK },
+    { "i386/amd64-mpx.xml", X86_XSTATE_MPX_MASK },
+    { "i386/amd64-avx-mpx.xml", X86_XSTATE_AVX_MPX_MASK },
+    { "i386/amd64-avx-avx512.xml", X86_XSTATE_AVX_AVX512_MASK },
+    { "i386/amd64-avx-mpx-avx512-pku.xml",
+      X86_XSTATE_AVX_MPX_AVX512_PKU_MASK },
+  };
+
+  for (auto &a : xml_masks)
+    {
+      auto tdesc = amd64_target_description (a.mask);
+
+      selftests::record_xml_tdesc (a.xml, tdesc);
+    }
+#endif /* GDB_SELF_TEST */
 }
 
 
@@ -3271,7 +3304,7 @@ void
 amd64_supply_fxsave (struct regcache *regcache, int regnum,
 		     const void *fxsave)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   i387_supply_fxsave (regcache, regnum, fxsave);
@@ -3294,7 +3327,7 @@ void
 amd64_supply_xsave (struct regcache *regcache, int regnum,
 		    const void *xsave)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   i387_supply_xsave (regcache, regnum, xsave);
@@ -3322,7 +3355,7 @@ void
 amd64_collect_fxsave (const struct regcache *regcache, int regnum,
 		      void *fxsave)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   gdb_byte *regs = (gdb_byte *) fxsave;
 
@@ -3343,7 +3376,7 @@ void
 amd64_collect_xsave (const struct regcache *regcache, int regnum,
 		     void *xsave, int gcore)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   gdb_byte *regs = (gdb_byte *) xsave;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-tdep.h ./gdb/amd64-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-tdep.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent definitions for AMD64.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    Contributed by Jiri Smid, SuSE Labs.
 
    This file is part of GDB.
@@ -87,8 +87,6 @@ enum amd64_regnum
 
 #define AMD64_NUM_REGS		(AMD64_GSBASE_REGNUM + 1)
 
-extern struct target_desc *tdesc_amd64;
-
 extern struct displaced_step_closure *amd64_displaced_step_copy_insn
   (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to,
    struct regcache *regs);
@@ -97,9 +95,17 @@ extern void amd64_displaced_step_fixup (
 					CORE_ADDR from, CORE_ADDR to,
 					struct regcache *regs);
 
-extern void amd64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch);
+/* Initialize the ABI for amd64.  Uses DEFAULT_TDESC as fallback
+   tdesc, if INFO does not specify one.  */
+extern void amd64_init_abi (struct gdbarch_info info,
+			    struct gdbarch *gdbarch,
+			    const target_desc *default_tdesc);
+
+/* Initialize the ABI for x32.  Uses DEFAULT_TDESC as fallback tdesc,
+   if INFO does not specify one.  */
 extern void amd64_x32_init_abi (struct gdbarch_info info,
-				struct gdbarch *gdbarch);
+				struct gdbarch *gdbarch,
+				const target_desc *default_tdesc);
 extern const struct target_desc *amd64_target_description (uint64_t xcr0);
 
 /* Fill register REGNUM in REGCACHE with the appropriate
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-windows-nat.c ./gdb/amd64-windows-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-windows-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-windows-nat.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -95,9 +95,6 @@ amd64_windows_segment_register_p (int re
   return regnum >= AMD64_CS_REGNUM && regnum <= AMD64_GS_REGNUM;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_amd64_windows_nat;
-
 void
 _initialize_amd64_windows_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-windows-tdep.c ./gdb/amd64-windows-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/amd64-windows-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/amd64-windows-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -18,6 +18,7 @@
 #include "defs.h"
 #include "osabi.h"
 #include "amd64-tdep.h"
+#include "x86-xstate.h"
 #include "gdbtypes.h"
 #include "gdbcore.h"
 #include "regcache.h"
@@ -1224,7 +1225,8 @@ amd64_windows_init_abi (struct gdbarch_i
   */
   frame_unwind_append_unwinder (gdbarch, &amd64_windows_frame_unwind);
 
-  amd64_init_abi (info, gdbarch);
+  amd64_init_abi (info, gdbarch,
+		  amd64_target_description (X86_XSTATE_SSE_MASK));
 
   windows_init_abi (info, gdbarch);
 
@@ -1243,9 +1245,6 @@ amd64_windows_init_abi (struct gdbarch_i
   set_gdbarch_auto_wide_charset (gdbarch, amd64_windows_auto_wide_charset);
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_amd64_windows_tdep;
-
 void
 _initialize_amd64_windows_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/annotate.c ./gdb/annotate.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/annotate.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/annotate.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,5 +1,5 @@
 /* Annotation routines for GDB.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -30,8 +30,6 @@
 
 /* Prototypes for local functions.  */
 
-extern void _initialize_annotate (void);
-
 static void print_value_flags (struct type *);
 
 static void breakpoint_changed (struct breakpoint *b);
@@ -65,14 +63,14 @@ annotate_breakpoints_invalid (void)
     {
       /* If the inferior owns the terminal (e.g., we're resuming),
 	 make sure to leave with the inferior still owning it.  */
-      int was_inferior = target_terminal_is_inferior ();
+      int was_inferior = target_terminal::is_inferior ();
 
-      target_terminal_ours_for_output ();
+      target_terminal::ours_for_output ();
 
       printf_unfiltered (("\n\032\032breakpoints-invalid\n"));
 
       if (was_inferior)
-	target_terminal_inferior ();
+	target_terminal::inferior ();
 
       breakpoints_invalid_emitted = 1;
     }
@@ -212,14 +210,14 @@ annotate_frames_invalid (void)
     {
       /* If the inferior owns the terminal (e.g., we're resuming),
 	 make sure to leave with the inferior still owning it.  */
-      int was_inferior = target_terminal_is_inferior ();
+      int was_inferior = target_terminal::is_inferior ();
 
-      target_terminal_ours_for_output ();
+      target_terminal::ours_for_output ();
 
       printf_unfiltered (("\n\032\032frames-invalid\n"));
 
       if (was_inferior)
-	target_terminal_inferior ();
+	target_terminal::inferior ();
 
       frames_invalid_emitted = 1;
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/annotate.h ./gdb/annotate.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/annotate.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/annotate.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,5 +1,5 @@
 /* Annotation routines for GDB.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -74,6 +74,16 @@ extern void annotate_arg_name_end (void)
 extern void annotate_arg_value (struct type *);
 extern void annotate_arg_end (void);
 
+/* Wrap calls to annotate_arg_begin and annotate_arg_end in an RAII
+   class. */
+struct annotate_arg_emitter
+{
+  annotate_arg_emitter () { annotate_arg_begin (); }
+  ~annotate_arg_emitter () { annotate_arg_end (); }
+
+  DISABLE_COPY_AND_ASSIGN (annotate_arg_emitter);
+};
+
 extern void annotate_source (char *, int, int, int,
 			     struct gdbarch *, CORE_ADDR);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/aarch64.c ./gdb/arch/aarch64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/aarch64.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/arch/aarch64.c	2018-01-09 02:04:56.000000000 +0000
@@ -0,0 +1,42 @@
+/* Copyright (C) 2017-2018 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 "aarch64.h"
+#include <stdlib.h>
+
+#include "../features/aarch64-core.c"
+#include "../features/aarch64-fpu.c"
+
+/* Create the aarch64 target description.  */
+
+target_desc *
+aarch64_create_target_description ()
+{
+  target_desc *tdesc = allocate_target_description ();
+
+#ifndef IN_PROCESS_AGENT
+  set_tdesc_architecture (tdesc, "aarch64");
+#endif
+
+  long regnum = 0;
+
+  regnum = create_feature_aarch64_core (tdesc, regnum);
+  regnum = create_feature_aarch64_fpu (tdesc, regnum);
+
+  return tdesc;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/aarch64.h ./gdb/arch/aarch64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/aarch64.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/arch/aarch64.h	2018-01-09 02:04:56.000000000 +0000
@@ -0,0 +1,51 @@
+/* Common target-dependent functionality for AArch64.
+
+   Copyright (C) 2017-2018 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 ARCH_AARCH64_H
+#define ARCH_AARCH64_H
+
+#include "tdesc.h"
+
+target_desc *aarch64_create_target_description ();
+
+/* Register numbers of various important registers.  */
+enum aarch64_regnum
+{
+  AARCH64_X0_REGNUM,		/* First integer register.  */
+  AARCH64_FP_REGNUM = AARCH64_X0_REGNUM + 29,	/* Frame register, if used.  */
+  AARCH64_LR_REGNUM = AARCH64_X0_REGNUM + 30,	/* Return address.  */
+  AARCH64_SP_REGNUM,		/* Stack pointer.  */
+  AARCH64_PC_REGNUM,		/* Program counter.  */
+  AARCH64_CPSR_REGNUM,		/* Current Program Status Register.  */
+  AARCH64_V0_REGNUM,		/* First fp/vec register.  */
+  AARCH64_V31_REGNUM = AARCH64_V0_REGNUM + 31,	/* Last fp/vec register.  */
+  AARCH64_FPSR_REGNUM,		/* Floating Point Status Register.  */
+  AARCH64_FPCR_REGNUM,		/* Floating Point Control Register.  */
+
+  /* Other useful registers.  */
+  AARCH64_LAST_X_ARG_REGNUM = AARCH64_X0_REGNUM + 7,
+  AARCH64_STRUCT_RETURN_REGNUM = AARCH64_X0_REGNUM + 8,
+  AARCH64_LAST_V_ARG_REGNUM = AARCH64_V0_REGNUM + 7
+};
+
+#define AARCH64_X_REGS_NUM 31
+#define AARCH64_V_REGS_NUM 32
+#define AARCH64_NUM_REGS AARCH64_FPCR_REGNUM + 1
+
+#endif /* ARCH_AARCH64_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/aarch64-insn.c ./gdb/arch/aarch64-insn.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/aarch64-insn.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arch/aarch64-insn.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/aarch64-insn.h ./gdb/arch/aarch64-insn.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/aarch64-insn.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arch/aarch64-insn.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/amd64.c ./gdb/arch/amd64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/amd64.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/arch/amd64.c	2018-01-09 02:04:56.000000000 +0000
@@ -0,0 +1,74 @@
+/* Copyright (C) 2017-2018 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 "amd64.h"
+#include "x86-xstate.h"
+#include <stdlib.h>
+
+#include "../features/i386/64bit-avx.c"
+#include "../features/i386/64bit-avx512.c"
+#include "../features/i386/64bit-core.c"
+#include "../features/i386/64bit-linux.c"
+#include "../features/i386/64bit-mpx.c"
+#include "../features/i386/64bit-pkeys.c"
+#include "../features/i386/64bit-segments.c"
+#include "../features/i386/64bit-sse.c"
+
+#include "../features/i386/x32-core.c"
+
+/* Create amd64 target descriptions according to XCR0.  If IS_X32 is
+   true, create the x32 ones.  If IS_LINUX is true, create target
+   descriptions for Linux.  */
+
+target_desc *
+amd64_create_target_description (uint64_t xcr0, bool is_x32, bool is_linux)
+{
+  target_desc *tdesc = allocate_target_description ();
+
+#ifndef IN_PROCESS_AGENT
+  set_tdesc_architecture (tdesc, is_x32 ? "i386:x64-32" : "i386:x86-64");
+
+  if (is_linux)
+    set_tdesc_osabi (tdesc, "GNU/Linux");
+#endif
+
+  long regnum = 0;
+
+  if (is_x32)
+    regnum = create_feature_i386_x32_core (tdesc, regnum);
+  else
+    regnum = create_feature_i386_64bit_core (tdesc, regnum);
+
+  regnum = create_feature_i386_64bit_sse (tdesc, regnum);
+  if (is_linux)
+    regnum = create_feature_i386_64bit_linux (tdesc, regnum);
+  regnum = create_feature_i386_64bit_segments (tdesc, regnum);
+
+  if (xcr0 & X86_XSTATE_AVX)
+    regnum = create_feature_i386_64bit_avx (tdesc, regnum);
+
+  if ((xcr0 & X86_XSTATE_MPX) && !is_x32)
+    regnum = create_feature_i386_64bit_mpx (tdesc, regnum);
+
+  if (xcr0 & X86_XSTATE_AVX512)
+    regnum = create_feature_i386_64bit_avx512 (tdesc, regnum);
+
+  if ((xcr0 & X86_XSTATE_PKRU) && !is_x32)
+    regnum = create_feature_i386_64bit_pkeys (tdesc, regnum);
+
+  return tdesc;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/amd64.h ./gdb/arch/amd64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/amd64.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/arch/amd64.h	2018-01-09 02:04:56.000000000 +0000
@@ -0,0 +1,22 @@
+/* Copyright (C) 2017-2018 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 "tdesc.h"
+#include <stdint.h>
+
+target_desc *amd64_create_target_description (uint64_t xcr0, bool is_x32,
+					      bool is_linux);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/arm.c ./gdb/arch/arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/arm.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arch/arm.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common target dependent code for GDB on ARM systems.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/arm-get-next-pcs.c ./gdb/arch/arm-get-next-pcs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/arm-get-next-pcs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arch/arm-get-next-pcs.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common code for ARM software single stepping support.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -45,7 +45,7 @@ arm_get_next_pcs_ctor (struct arm_get_ne
    is found, attempt to step through it.  The end of the sequence address is
    added to the next_pcs list.  */
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 thumb_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self)
 {
   int byte_order_for_code = self->byte_order_for_code;
@@ -58,27 +58,26 @@ thumb_deal_with_atomic_sequence_raw (str
   int last_breakpoint = 0; /* Defaults to 0 (no breakpoints placed).  */
   const int atomic_sequence_length = 16; /* Instruction sequence length.  */
   ULONGEST status, itstate;
-  VEC (CORE_ADDR) *next_pcs = NULL;
 
   /* We currently do not support atomic sequences within an IT block.  */
   status = regcache_raw_get_unsigned (self->regcache, ARM_PS_REGNUM);
   itstate = ((status >> 8) & 0xfc) | ((status >> 25) & 0x3);
   if (itstate & 0x0f)
-    return NULL;
+    return {};
 
   /* Assume all atomic sequences start with a ldrex{,b,h,d} instruction.  */
   insn1 = self->ops->read_mem_uint (loc, 2, byte_order_for_code);
 
   loc += 2;
   if (thumb_insn_size (insn1) != 4)
-    return NULL;
+    return {};
 
   insn2 = self->ops->read_mem_uint (loc, 2, byte_order_for_code);
 
   loc += 2;
   if (!((insn1 & 0xfff0) == 0xe850
         || ((insn1 & 0xfff0) == 0xe8d0 && (insn2 & 0x00c0) == 0x0040)))
-    return NULL;
+    return {};
 
   /* Assume that no atomic sequence is longer than "atomic_sequence_length"
      instructions.  */
@@ -95,8 +94,8 @@ thumb_deal_with_atomic_sequence_raw (str
 	  if ((insn1 & 0xf000) == 0xd000 && bits (insn1, 8, 11) != 0x0f)
 	    {
 	      if (last_breakpoint > 0)
-		return NULL; /* More than one conditional branch found,
-			     fallback to the standard code.  */
+		return {}; /* More than one conditional branch found,
+			      fallback to the standard code.  */
 
 	      breaks[1] = loc + 2 + (sbits (insn1, 0, 7) << 1);
 	      last_breakpoint++;
@@ -107,7 +106,7 @@ thumb_deal_with_atomic_sequence_raw (str
 	     Fall back to standard code to avoid losing control of
 	     execution.  */
 	  else if (thumb_instruction_changes_pc (insn1))
-	    return NULL;
+	    return {};
 	}
       else
 	{
@@ -135,8 +134,8 @@ thumb_deal_with_atomic_sequence_raw (str
 	      offset += (imm1 << 12) + (imm2 << 1);
 
 	      if (last_breakpoint > 0)
-		return 0; /* More than one conditional branch found,
-			     fallback to the standard code.  */
+		return {}; /* More than one conditional branch found,
+			      fallback to the standard code.  */
 
 	      breaks[1] = loc + offset;
 	      last_breakpoint++;
@@ -147,7 +146,7 @@ thumb_deal_with_atomic_sequence_raw (str
 	     Fall back to standard code to avoid losing control of
 	     execution.  */
 	  else if (thumb2_instruction_changes_pc (insn1, insn2))
-	    return NULL;
+	    return {};
 
 	  /* If we find a strex{,b,h,d}, we're done.  */
 	  if ((insn1 & 0xfff0) == 0xe840
@@ -158,7 +157,7 @@ thumb_deal_with_atomic_sequence_raw (str
 
   /* If we didn't find the strex{,b,h,d}, we cannot handle the sequence.  */
   if (insn_count == atomic_sequence_length)
-    return NULL;
+    return {};
 
   /* Insert a breakpoint right after the end of the atomic sequence.  */
   breaks[0] = loc;
@@ -170,9 +169,11 @@ thumb_deal_with_atomic_sequence_raw (str
 	  || (breaks[1] >= pc && breaks[1] < loc)))
     last_breakpoint = 0;
 
+  std::vector<CORE_ADDR> next_pcs;
+
   /* Adds the breakpoints to the list to be inserted.  */
   for (index = 0; index <= last_breakpoint; index++)
-    VEC_safe_push (CORE_ADDR, next_pcs, MAKE_THUMB_ADDR (breaks[index]));
+    next_pcs.push_back (MAKE_THUMB_ADDR (breaks[index]));
 
   return next_pcs;
 }
@@ -182,7 +183,7 @@ thumb_deal_with_atomic_sequence_raw (str
    is found, attempt to step through it.  The end of the sequence address is
    added to the next_pcs list.  */
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 arm_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self)
 {
   int byte_order_for_code = self->byte_order_for_code;
@@ -194,7 +195,6 @@ arm_deal_with_atomic_sequence_raw (struc
   int index;
   int last_breakpoint = 0; /* Defaults to 0 (no breakpoints placed).  */
   const int atomic_sequence_length = 16; /* Instruction sequence length.  */
-  VEC (CORE_ADDR) *next_pcs = NULL;
 
   /* Assume all atomic sequences start with a ldrex{,b,h,d} instruction.
      Note that we do not currently support conditionally executed atomic
@@ -203,7 +203,7 @@ arm_deal_with_atomic_sequence_raw (struc
 
   loc += 4;
   if ((insn & 0xff9000f0) != 0xe1900090)
-    return NULL;
+    return {};
 
   /* Assume that no atomic sequence is longer than "atomic_sequence_length"
      instructions.  */
@@ -219,8 +219,8 @@ arm_deal_with_atomic_sequence_raw (struc
       if (bits (insn, 24, 27) == 0xa)
 	{
           if (last_breakpoint > 0)
-            return NULL; /* More than one conditional branch found, fallback
-                         to the standard single-step code.  */
+            return {}; /* More than one conditional branch found, fallback
+			  to the standard single-step code.  */
 
 	  breaks[1] = BranchDest (loc - 4, insn);
 	  last_breakpoint++;
@@ -230,7 +230,7 @@ arm_deal_with_atomic_sequence_raw (struc
          but conditional branches to change the PC.  Fall back to standard
 	 code to avoid losing control of execution.  */
       else if (arm_instruction_changes_pc (insn))
-	return NULL;
+	return {};
 
       /* If we find a strex{,b,h,d}, we're done.  */
       if ((insn & 0xff9000f0) == 0xe1800090)
@@ -239,7 +239,7 @@ arm_deal_with_atomic_sequence_raw (struc
 
   /* If we didn't find the strex{,b,h,d}, we cannot handle the sequence.  */
   if (insn_count == atomic_sequence_length)
-    return NULL;
+    return {};
 
   /* Insert a breakpoint right after the end of the atomic sequence.  */
   breaks[0] = loc;
@@ -251,16 +251,18 @@ arm_deal_with_atomic_sequence_raw (struc
 	  || (breaks[1] >= pc && breaks[1] < loc)))
     last_breakpoint = 0;
 
+  std::vector<CORE_ADDR> next_pcs;
+
   /* Adds the breakpoints to the list to be inserted.  */
   for (index = 0; index <= last_breakpoint; index++)
-    VEC_safe_push (CORE_ADDR, next_pcs, breaks[index]);
+    next_pcs.push_back (breaks[index]);
 
   return next_pcs;
 }
 
 /* Find the next possible PCs for thumb mode.  */
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 thumb_get_next_pcs_raw (struct arm_get_next_pcs *self)
 {
   int byte_order = self->byte_order;
@@ -272,7 +274,7 @@ thumb_get_next_pcs_raw (struct arm_get_n
   unsigned long offset;
   ULONGEST status, itstate;
   struct regcache *regcache = self->regcache;
-  VEC (CORE_ADDR) * next_pcs = NULL;
+  std::vector<CORE_ADDR> next_pcs;
 
   nextpc = MAKE_THUMB_ADDR (nextpc);
   pc_val = MAKE_THUMB_ADDR (pc_val);
@@ -315,7 +317,7 @@ thumb_get_next_pcs_raw (struct arm_get_n
 	      itstate = thumb_advance_itstate (itstate);
 	    }
 
-	  VEC_safe_push (CORE_ADDR, next_pcs, MAKE_THUMB_ADDR (pc));
+	  next_pcs.push_back (MAKE_THUMB_ADDR (pc));
 	  return next_pcs;
 	}
       else if (itstate != 0)
@@ -335,7 +337,7 @@ thumb_get_next_pcs_raw (struct arm_get_n
 		  itstate = thumb_advance_itstate (itstate);
 		}
 
-	      VEC_safe_push (CORE_ADDR, next_pcs, MAKE_THUMB_ADDR (pc));
+	      next_pcs.push_back (MAKE_THUMB_ADDR (pc));
 	      return next_pcs;
 	    }
 	  else if ((itstate & 0x0f) == 0x08)
@@ -361,7 +363,7 @@ thumb_get_next_pcs_raw (struct arm_get_n
 
 	      /* Set a breakpoint on the following instruction.  */
 	      gdb_assert ((itstate & 0x0f) != 0);
-	      VEC_safe_push (CORE_ADDR, next_pcs, MAKE_THUMB_ADDR (pc));
+	      next_pcs.push_back (MAKE_THUMB_ADDR (pc));
 
 	      cond_negated = (itstate >> 4) & 1;
 
@@ -378,7 +380,7 @@ thumb_get_next_pcs_raw (struct arm_get_n
 		}
 	      while (itstate != 0 && ((itstate >> 4) & 1) == cond_negated);
 
-	      VEC_safe_push (CORE_ADDR, next_pcs, MAKE_THUMB_ADDR (pc));
+	      next_pcs.push_back (MAKE_THUMB_ADDR (pc));
 
 	      return next_pcs;
 	    }
@@ -393,8 +395,7 @@ thumb_get_next_pcs_raw (struct arm_get_n
 	{
 	  /* Advance to the next instruction.  All the 32-bit
 	     instructions share a common prefix.  */
-	  VEC_safe_push (CORE_ADDR, next_pcs,
-			 MAKE_THUMB_ADDR (pc + thumb_insn_size (inst1)));
+	  next_pcs.push_back (MAKE_THUMB_ADDR (pc + thumb_insn_size (inst1)));
 	}
 
       return next_pcs;
@@ -628,7 +629,7 @@ thumb_get_next_pcs_raw (struct arm_get_n
 	nextpc = pc_val + imm;
     }
 
-  VEC_safe_push (CORE_ADDR, next_pcs, nextpc);
+  next_pcs.push_back (nextpc);
 
   return next_pcs;
 }
@@ -641,7 +642,7 @@ thumb_get_next_pcs_raw (struct arm_get_n
    in Thumb-State, and gdbarch_addr_bits_remove () to get the plain memory
    address in GDB and arm_addr_bits_remove in GDBServer.  */
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 arm_get_next_pcs_raw (struct arm_get_next_pcs *self)
 {
   int byte_order = self->byte_order;
@@ -652,7 +653,7 @@ arm_get_next_pcs_raw (struct arm_get_nex
   CORE_ADDR nextpc;
   struct regcache *regcache = self->regcache;
   CORE_ADDR pc = regcache_read_pc (self->regcache);
-  VEC (CORE_ADDR) *next_pcs = NULL;
+  std::vector<CORE_ADDR> next_pcs;
 
   pc_val = (unsigned long) pc;
   this_instr = self->ops->read_mem_uint (pc, 4, byte_order_for_code);
@@ -709,7 +710,7 @@ arm_get_next_pcs_raw (struct arm_get_nex
 			  ? (pc_val + 8)
 			  : regcache_raw_get_unsigned (regcache, rn));
 
-		VEC_safe_push (CORE_ADDR, next_pcs, nextpc);
+		next_pcs.push_back (nextpc);
 		return next_pcs;
 	      }
 
@@ -899,40 +900,36 @@ arm_get_next_pcs_raw (struct arm_get_nex
 	}
     }
 
-  VEC_safe_push (CORE_ADDR, next_pcs, nextpc);
+  next_pcs.push_back (nextpc);
+
   return next_pcs;
 }
 
 /* See arm-get-next-pcs.h.  */
 
-VEC (CORE_ADDR) *
+std::vector<CORE_ADDR>
 arm_get_next_pcs (struct arm_get_next_pcs *self)
 {
-  VEC (CORE_ADDR) *next_pcs = NULL;
+  std::vector<CORE_ADDR> next_pcs;
 
   if (self->ops->is_thumb (self))
     {
       next_pcs = thumb_deal_with_atomic_sequence_raw (self);
-      if (next_pcs == NULL)
+      if (next_pcs.empty ())
 	next_pcs = thumb_get_next_pcs_raw (self);
     }
   else
     {
       next_pcs = arm_deal_with_atomic_sequence_raw (self);
-      if (next_pcs == NULL)
+      if (next_pcs.empty ())
 	next_pcs = arm_get_next_pcs_raw (self);
     }
 
   if (self->ops->fixup != NULL)
     {
-      CORE_ADDR nextpc;
-      int i;
-
-      for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, nextpc); i++)
-	{
-	  nextpc = self->ops->fixup (self, nextpc);
-	  VEC_replace (CORE_ADDR, next_pcs, i, nextpc);
-	}
+      for (CORE_ADDR &pc_ref : next_pcs)
+	pc_ref = self->ops->fixup (self, pc_ref);
     }
+
   return next_pcs;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/arm-get-next-pcs.h ./gdb/arch/arm-get-next-pcs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/arm-get-next-pcs.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arch/arm-get-next-pcs.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common code for ARM software single stepping support.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -19,7 +19,8 @@
 
 #ifndef ARM_GET_NEXT_PCS_H
 #define ARM_GET_NEXT_PCS_H 1
-#include "gdb_vecs.h"
+
+#include <vector>
 
 /* Forward declaration.  */
 struct arm_get_next_pcs;
@@ -61,6 +62,6 @@ void arm_get_next_pcs_ctor (struct arm_g
 			    struct regcache *regcache);
 
 /* Find the next possible PCs after the current instruction executes.  */
-VEC (CORE_ADDR) *arm_get_next_pcs (struct arm_get_next_pcs *self);
+std::vector<CORE_ADDR> arm_get_next_pcs (struct arm_get_next_pcs *self);
 
 #endif /* ARM_GET_NEXT_PCS_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/arm.h ./gdb/arch/arm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/arm.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arch/arm.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,5 +1,5 @@
 /* Common target dependent code for GDB on ARM systems.
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/arm-linux.c ./gdb/arch/arm-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/arm-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arch/arm-linux.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common target dependent code for GNU/Linux on ARM systems.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/arm-linux.h ./gdb/arch/arm-linux.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/arm-linux.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arch/arm-linux.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common target dependent code for GNU/Linux on ARM systems.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/i386.c ./gdb/arch/i386.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/i386.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/arch/i386.c	2018-01-09 02:04:56.000000000 +0000
@@ -0,0 +1,68 @@
+/* Copyright (C) 2017-2018 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 "i386.h"
+#include "tdesc.h"
+#include "x86-xstate.h"
+#include <stdlib.h>
+
+#include "../features/i386/32bit-core.c"
+#include "../features/i386/32bit-linux.c"
+#include "../features/i386/32bit-sse.c"
+#include "../features/i386/32bit-avx.c"
+#include "../features/i386/32bit-avx512.c"
+#include "../features/i386/32bit-mpx.c"
+#include "../features/i386/32bit-pkeys.c"
+
+/* Create i386 target descriptions according to XCR0.  */
+
+target_desc *
+i386_create_target_description (uint64_t xcr0, bool is_linux)
+{
+  target_desc *tdesc = allocate_target_description ();
+
+#ifndef IN_PROCESS_AGENT
+  set_tdesc_architecture (tdesc, "i386");
+  if (is_linux)
+    set_tdesc_osabi (tdesc, "GNU/Linux");
+#endif
+
+  long regnum = 0;
+
+  if (xcr0 & X86_XSTATE_X87)
+    regnum = create_feature_i386_32bit_core (tdesc, regnum);
+
+  if (xcr0 & X86_XSTATE_SSE)
+    regnum = create_feature_i386_32bit_sse (tdesc, regnum);
+
+  if (is_linux)
+    regnum = create_feature_i386_32bit_linux (tdesc, regnum);
+
+  if (xcr0 & X86_XSTATE_AVX)
+    regnum = create_feature_i386_32bit_avx (tdesc, regnum);
+
+  if (xcr0 & X86_XSTATE_MPX)
+    regnum = create_feature_i386_32bit_mpx (tdesc, regnum);
+
+  if (xcr0 & X86_XSTATE_AVX512)
+    regnum = create_feature_i386_32bit_avx512 (tdesc, regnum);
+
+  if (xcr0 & X86_XSTATE_PKRU)
+    regnum = create_feature_i386_32bit_pkeys (tdesc, regnum);
+
+  return tdesc;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/i386.h ./gdb/arch/i386.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/i386.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/arch/i386.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,21 @@
+/* Copyright (C) 2017-2018 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 "tdesc.h"
+#include <stdint.h>
+
+target_desc *i386_create_target_description (uint64_t xcr0, bool is_linux);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/tdesc.h ./gdb/arch/tdesc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/tdesc.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/arch/tdesc.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,95 @@
+/* Copyright (C) 2006-2018 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 ARCH_TDESC_H
+#define ARCH_TDESC_H 1
+
+struct tdesc_feature;
+struct tdesc_type;
+struct tdesc_type_builtin;
+struct tdesc_type_vector;
+struct tdesc_type_with_fields;
+struct tdesc_reg;
+struct target_desc;
+
+/* Allocate a new target_desc.  */
+target_desc *allocate_target_description (void);
+
+/* Set TARGET_DESC's architecture by NAME.  */
+void set_tdesc_architecture (target_desc *target_desc,
+			     const char *name);
+
+/* Set TARGET_DESC's osabi by NAME.  */
+void set_tdesc_osabi (target_desc *target_desc, const char *name);
+
+/* Return the type associated with ID in the context of FEATURE, or
+   NULL if none.  */
+struct tdesc_type *tdesc_named_type (const struct tdesc_feature *feature,
+				     const char *id);
+
+/* Return the created feature named NAME in target description TDESC.  */
+struct tdesc_feature *tdesc_create_feature (struct target_desc *tdesc,
+					    const char *name,
+					    const char *xml = nullptr);
+
+
+/* Return the created vector tdesc_type named NAME in FEATURE.  */
+struct tdesc_type *tdesc_create_vector (struct tdesc_feature *feature,
+					const char *name,
+					struct tdesc_type *field_type,
+					int count);
+
+/* Return the created struct tdesc_type named NAME in FEATURE.  */
+tdesc_type_with_fields *tdesc_create_struct (struct tdesc_feature *feature,
+					     const char *name);
+
+/* Return the created union tdesc_type named NAME in FEATURE.  */
+tdesc_type_with_fields *tdesc_create_union (struct tdesc_feature *feature,
+					    const char *name);
+
+/* Return the created flags tdesc_type named NAME in FEATURE.  */
+tdesc_type_with_fields *tdesc_create_flags (struct tdesc_feature *feature,
+					    const char *name,
+					    int size);
+
+/* Add a new field to TYPE.  FIELD_NAME is its name, and FIELD_TYPE is
+   its type.  */
+void tdesc_add_field (tdesc_type_with_fields *type, const char *field_name,
+		      struct tdesc_type *field_type);
+
+/* Set the total length of TYPE.  Structs which contain bitfields may
+   omit the reserved bits, so the end of the last field may not
+   suffice.  */
+void tdesc_set_struct_size (tdesc_type_with_fields *type, int size);
+
+/* Add a new untyped bitfield to TYPE.
+   Untyped bitfields become either uint32 or uint64 depending on the size
+   of the underlying type.  */
+void tdesc_add_bitfield (tdesc_type_with_fields *type, const char *field_name,
+			 int start, int end);
+
+/* A flag is just a typed(bool) single-bit bitfield.
+   This function is kept to minimize changes in generated files.  */
+void tdesc_add_flag (tdesc_type_with_fields *type, int start,
+		     const char *flag_name);
+
+/* Create a register in feature FEATURE.  */
+void tdesc_create_reg (struct tdesc_feature *feature, const char *name,
+		       int regnum, int save_restore, const char *group,
+		       int bitsize, const char *type);
+
+#endif /* ARCH_TDESC_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/tic6x.c ./gdb/arch/tic6x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/tic6x.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/arch/tic6x.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,47 @@
+/* Copyright (C) 2017-2018 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 "tdesc.h"
+#include "tic6x.h"
+#include "common/common-defs.h"
+
+#include "../features/tic6x-core.c"
+#include "../features/tic6x-gp.c"
+#include "../features/tic6x-c6xp.c"
+
+/* Create tic6x target descriptions according to FEATURE.  */
+
+target_desc *
+tic6x_create_target_description (enum c6x_feature feature)
+{
+  target_desc *tdesc = allocate_target_description ();
+
+  set_tdesc_architecture (tdesc, "tic6x");
+  set_tdesc_osabi (tdesc, "GNU/Linux");
+
+  long regnum = 0;
+
+  regnum = create_feature_tic6x_core (tdesc, regnum);
+
+  if (feature == C6X_GP || feature == C6X_C6XP)
+    regnum = create_feature_tic6x_gp (tdesc, regnum);
+
+  if (feature == C6X_C6XP)
+    regnum = create_feature_tic6x_c6xp (tdesc, regnum);
+
+  return tdesc;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/tic6x.h ./gdb/arch/tic6x.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/tic6x.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/arch/tic6x.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,26 @@
+/* Copyright (C) 2017-2018 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/>.  */
+
+enum c6x_feature
+{
+  C6X_CORE,
+  C6X_GP,
+  C6X_C6XP,
+  C6X_LAST,
+};
+
+target_desc *tic6x_create_target_description (enum c6x_feature feature);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/xtensa.h ./gdb/arch/xtensa.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch/xtensa.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arch/xtensa.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common Target-dependent code for the Xtensa port of GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch-utils.c ./gdb/arch-utils.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch-utils.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arch-utils.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Dynamic architecture support for GDB, the GNU debugger.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -37,35 +37,7 @@
 
 #include "floatformat.h"
 
-
-struct displaced_step_closure *
-simple_displaced_step_copy_insn (struct gdbarch *gdbarch,
-                                 CORE_ADDR from, CORE_ADDR to,
-                                 struct regcache *regs)
-{
-  size_t len = gdbarch_max_insn_length (gdbarch);
-  gdb_byte *buf = (gdb_byte *) xmalloc (len);
-
-  read_memory (from, buf, len);
-  write_memory (to, buf, len);
-
-  if (debug_displaced)
-    {
-      fprintf_unfiltered (gdb_stdlog, "displaced: copy %s->%s: ",
-                          paddress (gdbarch, from), paddress (gdbarch, to));
-      displaced_step_dump_bytes (gdb_stdlog, buf, len);
-    }
-
-  return (struct displaced_step_closure *) buf;
-}
-
-
-void
-simple_displaced_step_free_closure (struct gdbarch *gdbarch,
-                                    struct displaced_step_closure *closure)
-{
-  xfree (closure);
-}
+#include "dis-asm.h"
 
 int
 default_displaced_step_hw_singlestep (struct gdbarch *gdbarch,
@@ -204,6 +176,15 @@ default_adjust_dwarf2_line (CORE_ADDR ad
   return addr;
 }
 
+/* See arch-utils.h.  */
+
+bool
+default_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, gdb_byte op,
+				     struct dwarf2_frame_state *fs)
+{
+  return false;
+}
+
 int
 cannot_register_not (struct gdbarch *gdbarch, int regnum)
 {
@@ -351,7 +332,7 @@ show_endian (struct ui_file *file, int f
 }
 
 static void
-set_endian (char *ignore_args, int from_tty, struct cmd_list_element *c)
+set_endian (const char *ignore_args, int from_tty, struct cmd_list_element *c)
 {
   struct gdbarch_info info;
 
@@ -509,7 +490,8 @@ show_architecture (struct ui_file *file,
    argument.  */
 
 static void
-set_architecture (char *ignore_args, int from_tty, struct cmd_list_element *c)
+set_architecture (const char *ignore_args,
+		  int from_tty, struct cmd_list_element *c)
 {
   struct gdbarch_info info;
 
@@ -893,7 +875,7 @@ int default_insn_is_jump (struct gdbarch
 void
 default_skip_permanent_breakpoint (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   CORE_ADDR current_pc = regcache_read_pc (regcache);
   int bp_len;
 
@@ -964,6 +946,18 @@ default_guess_tracepoint_registers (stru
   regcache_raw_supply (regcache, pc_regno, regs);
 }
 
+int
+default_print_insn (bfd_vma memaddr, disassemble_info *info)
+{
+  disassembler_ftype disassemble_fn;
+
+  disassemble_fn = disassembler (info->arch, info->endian == BFD_ENDIAN_BIG,
+				 info->mach, exec_bfd);
+
+  gdb_assert (disassemble_fn != NULL);
+  return (*disassemble_fn) (memaddr, info);
+}
+
 /* See arch-utils.h.  */
 
 CORE_ADDR
@@ -982,9 +976,6 @@ gdbarch_skip_prologue_noexcept (gdbarch 
   return new_pc;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_gdbarch_utils;
-
 void
 _initialize_gdbarch_utils (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch-utils.h ./gdb/arch-utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arch-utils.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arch-utils.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Dynamic architecture support for GDB, the GNU debugger.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -25,6 +25,7 @@ struct frame_info;
 struct minimal_symbol;
 struct type;
 struct gdbarch_info;
+struct dwarf2_frame_state;
 
 template <size_t bp_size, const gdb_byte *break_insn>
 struct bp_manipulation
@@ -72,25 +73,6 @@ struct bp_manipulation_endian
   bp_manipulation_endian<sizeof (BREAK_INSN_LITTLE),		  \
   BREAK_INSN_LITTLE, BREAK_INSN_BIG>
 
-/* An implementation of gdbarch_displaced_step_copy_insn for
-   processors that don't need to modify the instruction before
-   single-stepping the displaced copy.
-
-   Simply copy gdbarch_max_insn_length (ARCH) bytes from FROM to TO.
-   The closure is an array of that many bytes containing the
-   instruction's bytes, allocated with xmalloc.  */
-extern struct displaced_step_closure *
-  simple_displaced_step_copy_insn (struct gdbarch *gdbarch,
-                                   CORE_ADDR from, CORE_ADDR to,
-                                   struct regcache *regs);
-
-/* Simple implementation of gdbarch_displaced_step_free_closure: Call
-   xfree.
-   This is appropriate for use with simple_displaced_step_copy_insn.  */
-extern void
-  simple_displaced_step_free_closure (struct gdbarch *gdbarch,
-                                      struct displaced_step_closure *closure);
-
 /* Default implementation of gdbarch_displaced_hw_singlestep.  */
 extern int
   default_displaced_step_hw_singlestep (struct gdbarch *,
@@ -130,6 +112,11 @@ CORE_ADDR default_adjust_dwarf2_addr (CO
 
 CORE_ADDR default_adjust_dwarf2_line (CORE_ADDR addr, int rel);
 
+/* Default DWARF vendor CFI handler.  */
+
+bool default_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, gdb_byte op,
+					  struct dwarf2_frame_state *fs);
+
 /* Version of cannot_fetch_register() / cannot_store_register() that
    always fails.  */
 
@@ -267,6 +254,8 @@ extern void default_guess_tracepoint_reg
 						struct regcache *regcache,
 						CORE_ADDR addr);
 
+extern int default_print_insn (bfd_vma memaddr, disassemble_info *info);
+
 /* Wrapper to gdbarch_skip_prologue, but doesn't throw exception.  Catch
    exception thrown from gdbarch_skip_prologue, and return PC.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arc-newlib-tdep.c ./gdb/arc-newlib-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arc-newlib-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arc-newlib-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Newlib ARC.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
    Contributed by Synopsys Inc.
 
    This file is part of GDB.
@@ -56,9 +56,6 @@ arc_newlib_osabi_sniffer (bfd *abfd)
     return GDB_OSABI_UNKNOWN;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_arc_newlib_tdep;
-
 void
 _initialize_arc_newlib_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arc-tdep.c ./gdb/arc-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arc-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arc-tdep.c	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target dependent code for ARC arhitecture, for GDB.
 
-   Copyright 2005-2017 Free Software Foundation, Inc.
+   Copyright 2005-2018 Free Software Foundation, Inc.
    Contributed by Synopsys Inc.
 
    This file is part of GDB.
@@ -145,6 +145,8 @@ static const char *const core_arcompact_
   "lp_count", "reserved", "limm", "pcl",
 };
 
+static char *arc_disassembler_options = NULL;
+
 /* Functions are sorted in the order as they are used in the
    _initialize_arc_tdep (), which uses the same order as gdbarch.h.  Static
    functions are defined before the first invocation.  */
@@ -445,7 +447,7 @@ arc_insn_get_linear_next_pc (const struc
 static void
 arc_write_pc (struct regcache *regcache, CORE_ADDR new_pc)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   if (arc_debug)
     debug_printf ("arc: Writing PC, new value=%s\n",
@@ -1012,7 +1014,7 @@ arc_is_in_prologue (struct gdbarch *gdba
 	addr = pv_add_constant (regs[base_reg],
 				arc_insn_get_memory_offset (insn));
 
-      if (pv_area_store_would_trash (stack, addr))
+      if (stack->store_would_trash (addr))
 	return false;
 
       if (insn.data_size_mode != ARC_SCALING_D)
@@ -1029,7 +1031,7 @@ arc_is_in_prologue (struct gdbarch *gdba
 	  else
 	    size = ARC_REGISTER_SIZE;
 
-	  pv_area_store (stack, addr, size, store_value);
+	  stack->store (addr, size, store_value);
 	}
       else
 	{
@@ -1038,16 +1040,15 @@ arc_is_in_prologue (struct gdbarch *gdba
 	      /* If this is a double store, than write N+1 register as well.  */
 	      pv_t store_value1 = regs[insn.operands[0].value];
 	      pv_t store_value2 = regs[insn.operands[0].value + 1];
-	      pv_area_store (stack, addr, ARC_REGISTER_SIZE, store_value1);
-	      pv_area_store (stack,
-			     pv_add_constant (addr, ARC_REGISTER_SIZE),
-			     ARC_REGISTER_SIZE, store_value2);
+	      stack->store (addr, ARC_REGISTER_SIZE, store_value1);
+	      stack->store (pv_add_constant (addr, ARC_REGISTER_SIZE),
+			    ARC_REGISTER_SIZE, store_value2);
 	    }
 	  else
 	    {
 	      pv_t store_value
 		= pv_constant (arc_insn_get_operand_value (insn, 0));
-	      pv_area_store (stack, addr, ARC_REGISTER_SIZE * 2, store_value);
+	      stack->store (addr, ARC_REGISTER_SIZE * 2, store_value);
 	    }
 	}
 
@@ -1134,7 +1135,7 @@ arc_is_in_prologue (struct gdbarch *gdba
 
       /* Assume that if the last register (closest to new SP) can be written,
 	 then it is possible to write all of them.  */
-      if (pv_area_store_would_trash (stack, new_sp))
+      if (stack->store_would_trash (new_sp))
 	return false;
 
       /* Current store address.  */
@@ -1143,21 +1144,21 @@ arc_is_in_prologue (struct gdbarch *gdba
       if (is_fp_saved)
 	{
 	  addr = pv_add_constant (addr, -ARC_REGISTER_SIZE);
-	  pv_area_store (stack, addr, ARC_REGISTER_SIZE, regs[ARC_FP_REGNUM]);
+	  stack->store (addr, ARC_REGISTER_SIZE, regs[ARC_FP_REGNUM]);
 	}
 
       /* Registers are stored in backward order: from GP (R26) to R13.  */
       for (int i = ARC_R13_REGNUM + regs_saved - 1; i >= ARC_R13_REGNUM; i--)
 	{
 	  addr = pv_add_constant (addr, -ARC_REGISTER_SIZE);
-	  pv_area_store (stack, addr, ARC_REGISTER_SIZE, regs[i]);
+	  stack->store (addr, ARC_REGISTER_SIZE, regs[i]);
 	}
 
       if (is_blink_saved)
 	{
 	  addr = pv_add_constant (addr, -ARC_REGISTER_SIZE);
-	  pv_area_store (stack, addr, ARC_REGISTER_SIZE,
-			 regs[ARC_BLINK_REGNUM]);
+	  stack->store (addr, ARC_REGISTER_SIZE,
+			regs[ARC_BLINK_REGNUM]);
 	}
 
       gdb_assert (pv_is_identical (addr, new_sp));
@@ -1269,9 +1270,7 @@ arc_analyze_prologue (struct gdbarch *gd
   pv_t regs[ARC_LAST_CORE_REGNUM + 1];
   for (int i = 0; i <= ARC_LAST_CORE_REGNUM; i++)
     regs[i] = pv_register (i, 0);
-  struct pv_area *stack = make_pv_area (ARC_SP_REGNUM,
-					gdbarch_addr_bit (gdbarch));
-  struct cleanup *back_to = make_cleanup_free_pv_area (stack);
+  pv_area stack (ARC_SP_REGNUM, gdbarch_addr_bit (gdbarch));
 
   CORE_ADDR current_prologue_end = entrypoint;
 
@@ -1288,7 +1287,7 @@ arc_analyze_prologue (struct gdbarch *gd
 
       /* If this instruction is in the prologue, fields in the cache will be
 	 updated, and the saved registers mask may be updated.  */
-      if (!arc_is_in_prologue (gdbarch, insn, regs, stack))
+      if (!arc_is_in_prologue (gdbarch, insn, regs, &stack))
 	{
 	  /* Found an instruction that is not in the prologue.  */
 	  if (arc_debug)
@@ -1318,12 +1317,11 @@ arc_analyze_prologue (struct gdbarch *gd
       for (int i = 0; i <= ARC_LAST_CORE_REGNUM; i++)
 	{
 	  CORE_ADDR offset;
-	  if (pv_area_find_reg (stack, gdbarch, i, &offset))
+	  if (stack.find_reg (gdbarch, i, &offset))
 	    cache->saved_regs[i].addr = offset;
 	}
     }
 
-  do_cleanups (back_to);
   return current_prologue_end;
 }
 
@@ -1405,12 +1403,34 @@ arc_skip_prologue (struct gdbarch *gdbar
 int
 arc_delayed_print_insn (bfd_vma addr, struct disassemble_info *info)
 {
-  int (*print_insn) (bfd_vma, struct disassemble_info *);
-  /* exec_bfd may be null, if GDB is run without a target BFD file.  Opcodes
-     will handle NULL value gracefully.  */
-  print_insn = arc_get_disassembler (exec_bfd);
-  gdb_assert (print_insn != NULL);
-  return print_insn (addr, info);
+  /* Standard BFD "machine number" field allows libocodes disassembler to
+     distinguish ARC 600, 700 and v2 cores, however v2 encompasses both ARC EM
+     and HS, which have some difference between.  There are two ways to specify
+     what is the target core:
+     1) via the disassemble_info->disassembler_options;
+     2) otherwise libopcodes will use private (architecture-specific) ELF
+     header.
+
+     Using disassembler_options is preferable, because it comes directly from
+     GDBserver which scanned an actual ARC core identification info.  However,
+     not all GDBservers report core architecture, so as a fallback GDB still
+     should support analysis of ELF header.  The libopcodes disassembly code
+     uses the section to find the BFD and the BFD to find the ELF header,
+     therefore this function should set disassemble_info->section properly.
+
+     disassembler_options was already set by non-target specific code with
+     proper options obtained via gdbarch_disassembler_options ().
+
+     This function might be called multiple times in a sequence, reusing same
+     disassemble_info.  */
+  if ((info->disassembler_options == NULL) && (info->section == NULL))
+    {
+      struct obj_section *s = find_pc_section (addr);
+      if (s != NULL)
+	info->section = s->the_bfd_section;
+    }
+
+  return default_print_insn (addr, info);
 }
 
 /* Baremetal breakpoint instructions.
@@ -2043,6 +2063,61 @@ arc_gdbarch_init (struct gdbarch_info in
   if (tdep->jb_pc >= 0)
     set_gdbarch_get_longjmp_target (gdbarch, arc_get_longjmp_target);
 
+  /* Disassembler options.  Enforce CPU if it was specified in XML target
+     description, otherwise use default method of determining CPU (ELF private
+     header).  */
+  if (info.target_desc != NULL)
+    {
+      const struct bfd_arch_info *tdesc_arch
+	= tdesc_architecture (info.target_desc);
+      if (tdesc_arch != NULL)
+	{
+	  xfree (arc_disassembler_options);
+	  /* FIXME: It is not really good to change disassembler options
+	     behind the scene, because that might override options
+	     specified by the user.  However as of now ARC doesn't support
+	     `set disassembler-options' hence this code is the only place
+	     where options are changed.  It also changes options for all
+	     existing gdbarches, which also can be problematic, if
+	     arc_gdbarch_init will start reusing existing gdbarch
+	     instances.  */
+	  /* Target description specifies a BFD architecture, which is
+	     different from ARC cpu, as accepted by disassembler (and most
+	     other ARC tools), because cpu values are much more fine grained -
+	     there can be multiple cpu values per single BFD architecture.  As
+	     a result this code should translate architecture to some cpu
+	     value.  Since there is no info on exact cpu configuration, it is
+	     best to use the most feature-rich CPU, so that disassembler will
+	     recognize all instructions available to the specified
+	     architecture.  */
+	  switch (tdesc_arch->mach)
+	    {
+	    case bfd_mach_arc_arc601:
+	      arc_disassembler_options = xstrdup ("cpu=arc601");
+	      break;
+	    case bfd_mach_arc_arc600:
+	      arc_disassembler_options = xstrdup ("cpu=arc600");
+	      break;
+	    case bfd_mach_arc_arc700:
+	      arc_disassembler_options = xstrdup ("cpu=arc700");
+	      break;
+	    case bfd_mach_arc_arcv2:
+	      /* Machine arcv2 has three arches: ARCv2, EM and HS; where ARCv2
+		 is treated as EM.  */
+	      if (arc_arch_is_hs (tdesc_arch))
+		arc_disassembler_options = xstrdup ("cpu=hs38_linux");
+	      else
+		arc_disassembler_options = xstrdup ("cpu=em4_fpuda");
+	      break;
+	    default:
+	      arc_disassembler_options = NULL;
+	      break;
+	    }
+	  set_gdbarch_disassembler_options (gdbarch,
+					    &arc_disassembler_options);
+	}
+    }
+
   tdesc_use_registers (gdbarch, tdesc, tdesc_data);
 
   return gdbarch;
@@ -2061,7 +2136,7 @@ arc_dump_tdep (struct gdbarch *gdbarch, 
 /* Wrapper for "maintenance print arc" list of commands.  */
 
 static void
-maintenance_print_arc_command (char *args, int from_tty)
+maintenance_print_arc_command (const char *args, int from_tty)
 {
   cmd_show_list (maintenance_print_arc_list, from_tty, "");
 }
@@ -2070,7 +2145,7 @@ maintenance_print_arc_command (char *arg
    disassemble.  */
 
 static void
-dump_arc_instruction_command (char *args, int from_tty)
+dump_arc_instruction_command (const char *args, int from_tty)
 {
   struct value *val;
   if (args != NULL && strlen (args) > 0)
@@ -2086,9 +2161,6 @@ dump_arc_instruction_command (char *args
   arc_insn_dump (insn);
 }
 
-/* Suppress warning from -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_arc_tdep;
-
 void
 _initialize_arc_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arc-tdep.h ./gdb/arc-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arc-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arc-tdep.h	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target dependent code for ARC arhitecture, for GDB.
 
-   Copyright 2005-2017 Free Software Foundation, Inc.
+   Copyright 2005-2018 Free Software Foundation, Inc.
    Contributed by Synopsys Inc.
 
    This file is part of GDB.
@@ -123,6 +123,21 @@ arc_mach_is_arcv2 (struct gdbarch *gdbar
   return gdbarch_bfd_arch_info (gdbarch)->mach == bfd_mach_arc_arcv2;
 }
 
+/* ARC EM and ARC HS are unique BFD arches, however they share the same machine
+   number as "ARCv2".  */
+
+static inline bool
+arc_arch_is_hs (const struct bfd_arch_info* arch)
+{
+  return startswith (arch->printable_name, "HS");
+}
+
+static inline bool
+arc_arch_is_em (const struct bfd_arch_info* arch)
+{
+  return startswith (arch->printable_name, "EM");
+}
+
 /* Function to access ARC disassembler.  Underlying opcodes disassembler will
    print an instruction into stream specified in the INFO, so if it is
    undesired, then this stream should be set to some invisible stream, but it
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-bsd-tdep.c ./gdb/arm-bsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-bsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arm-bsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for ARM BSD's.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-fbsd-nat.c ./gdb/arm-fbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-fbsd-nat.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/arm-fbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,151 @@
+/* Native-dependent code for FreeBSD/arm.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+#include "target.h"
+
+#include <sys/types.h>
+#include <sys/ptrace.h>
+#include <machine/reg.h>
+
+#include "fbsd-nat.h"
+#include "arm-tdep.h"
+#include "arm-fbsd-tdep.h"
+#include "inf-ptrace.h"
+
+/* Determine if PT_GETREGS fetches REGNUM.  */
+
+static bool
+getregs_supplies (struct gdbarch *gdbarch, int regnum)
+{
+  return ((regnum >= ARM_A1_REGNUM && regnum <= ARM_PC_REGNUM)
+	  || regnum == ARM_PS_REGNUM);
+}
+
+#ifdef PT_GETVFPREGS
+/* Determine if PT_GETVFPREGS fetches REGNUM.  */
+
+static bool
+getvfpregs_supplies (struct gdbarch *gdbarch, int regnum)
+{
+  return ((regnum >= ARM_D0_REGNUM && regnum <= ARM_D31_REGNUM)
+	  || regnum == ARM_FPSCR_REGNUM);
+}
+#endif
+
+/* Fetch register REGNUM from the inferior.  If REGNUM is -1, do this
+   for all registers.  */
+
+static void
+arm_fbsd_fetch_inferior_registers (struct target_ops *ops,
+				    struct regcache *regcache, int regnum)
+{
+  pid_t pid = get_ptrace_pid (regcache_get_ptid (regcache));
+
+  struct gdbarch *gdbarch = regcache->arch ();
+  if (regnum == -1 || getregs_supplies (gdbarch, regnum))
+    {
+      struct reg regs;
+
+      if (ptrace (PT_GETREGS, pid, (PTRACE_TYPE_ARG3) &regs, 0) == -1)
+	perror_with_name (_("Couldn't get registers"));
+
+      regcache->supply_regset (&arm_fbsd_gregset, regnum, &regs,
+			       sizeof (regs));
+    }
+
+#ifdef PT_GETVFPREGS
+  if (regnum == -1 || getvfpregs_supplies (gdbarch, regnum))
+    {
+      struct vfpreg vfpregs;
+
+      if (ptrace (PT_GETVFPREGS, pid, (PTRACE_TYPE_ARG3) &vfpregs, 0) == -1)
+	perror_with_name (_("Couldn't get floating point status"));
+
+      regcache->supply_regset (&arm_fbsd_vfpregset, regnum, &vfpregs,
+			       sizeof (vfpregs));
+    }
+#endif
+}
+
+/* Store register REGNUM back into the inferior.  If REGNUM is -1, do
+   this for all registers.  */
+
+static void
+arm_fbsd_store_inferior_registers (struct target_ops *ops,
+				    struct regcache *regcache, int regnum)
+{
+  pid_t pid = get_ptrace_pid (regcache_get_ptid (regcache));
+
+  struct gdbarch *gdbarch = regcache->arch ();
+  if (regnum == -1 || getregs_supplies (gdbarch, regnum))
+    {
+      struct reg regs;
+
+      if (ptrace (PT_GETREGS, pid, (PTRACE_TYPE_ARG3) &regs, 0) == -1)
+	perror_with_name (_("Couldn't get registers"));
+
+      regcache->collect_regset (&arm_fbsd_gregset, regnum, &regs,
+			       sizeof (regs));
+
+      if (ptrace (PT_SETREGS, pid, (PTRACE_TYPE_ARG3) &regs, 0) == -1)
+	perror_with_name (_("Couldn't write registers"));
+    }
+
+#ifdef PT_GETVFPREGS
+  if (regnum == -1 || getvfpregs_supplies (gdbarch, regnum))
+    {
+      struct vfpreg vfpregs;
+
+      if (ptrace (PT_GETVFPREGS, pid, (PTRACE_TYPE_ARG3) &vfpregs, 0) == -1)
+	perror_with_name (_("Couldn't get floating point status"));
+
+      regcache->collect_regset (&arm_fbsd_vfpregset, regnum, &vfpregs,
+				sizeof (vfpregs));
+
+      if (ptrace (PT_SETVFPREGS, pid, (PTRACE_TYPE_ARG3) &vfpregs, 0) == -1)
+	perror_with_name (_("Couldn't write floating point status"));
+    }
+#endif
+}
+
+/* Implement the to_read_description method.  */
+
+static const struct target_desc *
+arm_fbsd_read_description (struct target_ops *ops)
+{
+  const struct target_desc *desc;
+
+  desc = arm_fbsd_read_description_auxv (ops);
+  if (desc == NULL)
+    desc = ops->beneath->to_read_description (ops->beneath);
+  return desc;
+}
+
+void
+_initialize_arm_fbsd_nat (void)
+{
+  struct target_ops *t;
+
+  t = inf_ptrace_target ();
+  t->to_fetch_registers = arm_fbsd_fetch_inferior_registers;
+  t->to_store_registers = arm_fbsd_store_inferior_registers;
+  t->to_read_description = arm_fbsd_read_description;
+  fbsd_nat_add_target (t);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-fbsd-tdep.c ./gdb/arm-fbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-fbsd-tdep.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/arm-fbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,257 @@
+/* Target-dependent code for FreeBSD/arm.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+
+#include "elf/common.h"
+#include "arm-tdep.h"
+#include "arm-fbsd-tdep.h"
+#include "auxv.h"
+#include "fbsd-tdep.h"
+#include "gdbcore.h"
+#include "osabi.h"
+#include "solib-svr4.h"
+#include "trad-frame.h"
+#include "tramp-frame.h"
+
+/* In a signal frame, sp points to a 'struct sigframe' which is
+   defined as:
+
+   struct sigframe {
+	   siginfo_t	sf_si;
+	   ucontext_t	sf_uc;
+	   mcontext_vfp_t sf_vfp;
+   };
+
+   ucontext_t is defined as:
+
+   struct __ucontext {
+	   sigset_t	uc_sigmask;
+	   mcontext_t	uc_mcontext;
+	   ...
+   };
+
+   mcontext_t is defined as:
+
+   struct {
+	   unsigned int __gregs[17];
+	   size_t       mc_vfp_size;
+	   void         *mc_vfp_ptr;
+	   ...
+   };
+
+   mcontext_vfp_t is defined as:
+
+   struct {
+	  uint64_t      mcv_reg[32];
+	  uint32_t      mcv_fpscr;
+   };
+
+   If the VFP state is valid, then mc_vfp_ptr will point to sf_vfp in
+   the sigframe, otherwise it is NULL.  There is no non-VFP floating
+   point register state saved in the signal frame.  */
+
+#define ARM_MCONTEXT_REG_SIZE		4
+#define ARM_MCONTEXT_VFP_REG_SIZE	8
+#define ARM_SIGFRAME_UCONTEXT_OFFSET	64
+#define ARM_UCONTEXT_MCONTEXT_OFFSET	16
+#define ARM_MCONTEXT_VFP_PTR_OFFSET	72
+
+/* Implement the "init" method of struct tramp_frame.  */
+
+static void
+arm_fbsd_sigframe_init (const struct tramp_frame *self,
+			struct frame_info *this_frame,
+			struct trad_frame_cache *this_cache,
+			CORE_ADDR func)
+{
+  struct gdbarch *gdbarch = get_frame_arch (this_frame);
+  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+  CORE_ADDR sp = get_frame_register_unsigned (this_frame, ARM_SP_REGNUM);
+  CORE_ADDR mcontext_addr = (sp
+			     + ARM_SIGFRAME_UCONTEXT_OFFSET
+			     + ARM_UCONTEXT_MCONTEXT_OFFSET);
+  ULONGEST mcontext_vfp_addr;
+
+  for (int i = 0; i < 16; i++)
+    {
+      trad_frame_set_reg_addr (this_cache,
+			       ARM_A1_REGNUM + i,
+			       mcontext_addr + i * ARM_MCONTEXT_REG_SIZE);
+    }
+  trad_frame_set_reg_addr (this_cache, ARM_PS_REGNUM,
+			   mcontext_addr + 16 * ARM_MCONTEXT_REG_SIZE);
+
+  if (safe_read_memory_unsigned_integer (mcontext_addr
+					 + ARM_MCONTEXT_VFP_PTR_OFFSET, 4,
+					 byte_order,
+					 &mcontext_vfp_addr)
+      && mcontext_vfp_addr != 0)
+    {
+      for (int i = 0; i < 32; i++)
+	{
+	  trad_frame_set_reg_addr (this_cache, ARM_D0_REGNUM + i,
+				   mcontext_vfp_addr
+				   + i * ARM_MCONTEXT_VFP_REG_SIZE);
+	}
+      trad_frame_set_reg_addr (this_cache, ARM_FPSCR_REGNUM,
+			       mcontext_vfp_addr
+			       + 32 * ARM_MCONTEXT_VFP_REG_SIZE);
+    }
+
+  trad_frame_set_id (this_cache, frame_id_build (sp, func));
+}
+
+static const struct tramp_frame arm_fbsd_sigframe =
+{
+  SIGTRAMP_FRAME,
+  4,
+  {
+    {0xe1a0000d, -1},		/* mov  r0, sp  */
+    {0xe2800040, -1},		/* add  r0, r0, #SIGF_UC  */
+    {0xe59f700c, -1},		/* ldr  r7, [pc, #12]  */
+    {0xef0001a1, -1},		/* swi  SYS_sigreturn  */
+    {TRAMP_SENTINEL_INSN, -1}
+  },
+  arm_fbsd_sigframe_init
+};
+
+/* Register maps.  */
+
+static const struct regcache_map_entry arm_fbsd_gregmap[] =
+  {
+    { 13, ARM_A1_REGNUM, 4 }, /* r0 ... r12 */
+    { 1, ARM_SP_REGNUM, 4 },
+    { 1, ARM_LR_REGNUM, 4 },
+    { 1, ARM_PC_REGNUM, 4 },
+    { 1, ARM_PS_REGNUM, 4 },
+    { 0 }
+  };
+
+static const struct regcache_map_entry arm_fbsd_vfpregmap[] =
+  {
+    { 32, ARM_D0_REGNUM, 8 }, /* d0 ... d31 */
+    { 1, ARM_FPSCR_REGNUM, 4 },
+    { 0 }
+  };
+
+/* Register set definitions.  */
+
+const struct regset arm_fbsd_gregset =
+  {
+    arm_fbsd_gregmap,
+    regcache_supply_regset, regcache_collect_regset
+  };
+
+const struct regset arm_fbsd_vfpregset =
+  {
+    arm_fbsd_vfpregmap,
+    regcache_supply_regset, regcache_collect_regset
+  };
+
+/* Implement the "regset_from_core_section" gdbarch method.  */
+
+static void
+arm_fbsd_iterate_over_regset_sections (struct gdbarch *gdbarch,
+				       iterate_over_regset_sections_cb *cb,
+				       void *cb_data,
+				       const struct regcache *regcache)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+  cb (".reg", ARM_FBSD_SIZEOF_GREGSET, &arm_fbsd_gregset, NULL, cb_data);
+
+  /* While FreeBSD/arm cores do contain a NT_FPREGSET / ".reg2"
+     register set, it is not populated with register values by the
+     kernel but just contains all zeroes.  */
+  if (tdep->vfp_register_count > 0)
+    cb (".reg-arm-vfp", ARM_FBSD_SIZEOF_VFPREGSET, &arm_fbsd_vfpregset,
+	"VFP floating-point", cb_data);
+}
+
+/* Lookup a target description from a target's AT_HWCAP auxiliary
+   vector.  */
+
+const struct target_desc *
+arm_fbsd_read_description_auxv (struct target_ops *target)
+{
+  CORE_ADDR arm_hwcap = 0;
+
+  if (target_auxv_search (target, AT_FREEBSD_HWCAP, &arm_hwcap) != 1)
+    return NULL;
+
+  if (arm_hwcap & HWCAP_VFP)
+    {
+      if (arm_hwcap & HWCAP_NEON)
+	return tdesc_arm_with_neon;
+      else if ((arm_hwcap & (HWCAP_VFPv3 | HWCAP_VFPD32))
+	  == (HWCAP_VFPv3 | HWCAP_VFPD32))
+	return tdesc_arm_with_vfpv3;
+      else
+	return tdesc_arm_with_vfpv2;
+    }
+
+  return NULL;
+}
+
+/* Implement the "core_read_description" gdbarch method.  */
+
+static const struct target_desc *
+arm_fbsd_core_read_description (struct gdbarch *gdbarch,
+				struct target_ops *target,
+				bfd *abfd)
+{
+  return arm_fbsd_read_description_auxv (target);
+}
+
+/* Implement the 'init_osabi' method of struct gdb_osabi_handler.  */
+
+static void
+arm_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+  /* Generic FreeBSD support.  */
+  fbsd_init_abi (info, gdbarch);
+
+  if (tdep->fp_model == ARM_FLOAT_AUTO)
+    tdep->fp_model = ARM_FLOAT_SOFT_VFP;
+
+  tramp_frame_prepend_unwinder (gdbarch, &arm_fbsd_sigframe);
+
+  set_solib_svr4_fetch_link_map_offsets
+    (gdbarch, svr4_ilp32_fetch_link_map_offsets);
+
+  tdep->jb_pc = 24;
+  tdep->jb_elt_size = 4;
+
+  set_gdbarch_iterate_over_regset_sections
+    (gdbarch, arm_fbsd_iterate_over_regset_sections);
+  set_gdbarch_core_read_description (gdbarch, arm_fbsd_core_read_description);
+
+  /* Single stepping.  */
+  set_gdbarch_software_single_step (gdbarch, arm_software_single_step);
+}
+
+void
+_initialize_arm_fbsd_tdep (void)
+{
+  gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_FREEBSD,
+			  arm_fbsd_init_abi);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-fbsd-tdep.h ./gdb/arm-fbsd-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-fbsd-tdep.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/arm-fbsd-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,40 @@
+/* FreeBSD/arm target support, prototypes.
+
+   Copyright (C) 2017-2018 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 "regset.h"
+
+/* The general-purpose regset consists of 13 R registers, plus SP, LR,
+   PC, and CPSR registers.  */
+#define ARM_FBSD_SIZEOF_GREGSET  (17 * 4)
+
+/* The VFP regset consists of 32 D registers plus FPSCR, and the whole
+   structure is padded to 64-bit alignment.  */
+#define	ARM_FBSD_SIZEOF_VFPREGSET	(33 * 8)
+
+extern const struct regset arm_fbsd_gregset;
+extern const struct regset arm_fbsd_vfpregset;
+
+/* Flags passed in AT_HWCAP. */
+#define	HWCAP_VFP		0x00000040
+#define	HWCAP_NEON		0x00001000
+#define	HWCAP_VFPv3		0x00002000
+#define	HWCAP_VFPD32		0x00080000
+
+extern const struct target_desc *
+arm_fbsd_read_description_auxv (struct target_ops *target);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-linux-nat.c ./gdb/arm-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arm-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GNU/Linux on ARM native support.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -303,7 +303,7 @@ fetch_vfp_regs (struct regcache *regcach
 {
   gdb_byte regbuf[VFP_REGS_SIZE];
   int ret, regno, tid;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   /* Get the thread id for the ptrace call.  */
@@ -332,7 +332,7 @@ store_vfp_regs (const struct regcache *r
 {
   gdb_byte regbuf[VFP_REGS_SIZE];
   int ret, regno, tid;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   /* Get the thread id for the ptrace call.  */
@@ -378,7 +378,7 @@ static void
 arm_linux_fetch_inferior_registers (struct target_ops *ops,
 				    struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   if (-1 == regno)
@@ -416,7 +416,7 @@ static void
 arm_linux_store_inferior_registers (struct target_ops *ops,
 				    struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   if (-1 == regno)
@@ -1202,6 +1202,14 @@ arm_linux_new_thread (struct lwp_info *l
   lp->arch_private = info;
 }
 
+/* Function to call when a thread is being deleted.  */
+
+static void
+arm_linux_delete_thread (struct arch_lwp_info *arch_lwp)
+{
+  xfree (arch_lwp);
+}
+
 /* Called when resuming a thread.
    The hardware debug registers are updated when there is any change.  */
 
@@ -1283,8 +1291,6 @@ arm_linux_new_fork (struct lwp_info *par
   *child_state = *parent_state;
 }
 
-void _initialize_arm_linux_nat (void);
-
 void
 _initialize_arm_linux_nat (void)
 {
@@ -1315,6 +1321,7 @@ _initialize_arm_linux_nat (void)
 
   /* Handle thread creation and exit.  */
   linux_nat_set_new_thread (t, arm_linux_new_thread);
+  linux_nat_set_delete_thread (t, arm_linux_delete_thread);
   linux_nat_set_prepare_to_resume (t, arm_linux_prepare_to_resume);
 
   /* Handle process creation and exit.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-linux-tdep.c ./gdb/arm-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arm-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GNU/Linux on ARM target support.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -21,11 +21,9 @@
 #include "target.h"
 #include "value.h"
 #include "gdbtypes.h"
-#include "floatformat.h"
 #include "gdbcore.h"
 #include "frame.h"
 #include "regcache.h"
-#include "doublest.h"
 #include "solib-svr4.h"
 #include "osabi.h"
 #include "regset.h"
@@ -480,7 +478,7 @@ arm_linux_supply_gregset (const struct r
 			  struct regcache *regcache,
 			  int regnum, const void *gregs_buf, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   const gdb_byte *gregs = (const gdb_byte *) gregs_buf;
   int regno;
@@ -792,7 +790,7 @@ arm_linux_sigreturn_next_pc (struct regc
   ULONGEST sp;
   unsigned long sp_data;
   CORE_ADDR next_pc = 0;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int pc_offset = 0;
   int is_sigreturn = 0;
@@ -884,7 +882,7 @@ arm_linux_get_next_pcs_syscall_next_pc (
     }
   else
     {
-      struct gdbarch *gdbarch = get_regcache_arch (self->regcache);
+      struct gdbarch *gdbarch = self->regcache->arch ();
       enum bfd_endian byte_order_for_code = 
 	gdbarch_byte_order_for_code (gdbarch);
       unsigned long this_instr = 
@@ -921,22 +919,16 @@ arm_linux_get_next_pcs_syscall_next_pc (
 
 /* Insert a single step breakpoint at the next executed instruction.  */
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 arm_linux_software_single_step (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct arm_get_next_pcs next_pcs_ctx;
-  CORE_ADDR pc;
-  int i;
-  VEC (CORE_ADDR) *next_pcs = NULL;
-  struct cleanup *old_chain;
 
   /* If the target does have hardware single step, GDB doesn't have
      to bother software single step.  */
   if (target_can_do_single_step () == 1)
-    return NULL;
-
-  old_chain = make_cleanup (VEC_cleanup (CORE_ADDR), &next_pcs);
+    return {};
 
   arm_get_next_pcs_ctor (&next_pcs_ctx,
 			 &arm_linux_get_next_pcs_ops,
@@ -945,15 +937,10 @@ arm_linux_software_single_step (struct r
 			 1,
 			 regcache);
 
-  next_pcs = arm_get_next_pcs (&next_pcs_ctx);
+  std::vector<CORE_ADDR> next_pcs = arm_get_next_pcs (&next_pcs_ctx);
 
-  for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, pc); i++)
-    {
-      pc = gdbarch_addr_bits_remove (gdbarch, pc);
-      VEC_replace (CORE_ADDR, next_pcs, i, pc);
-    }
-
-  discard_cleanups (old_chain);
+  for (CORE_ADDR &pc_ref : next_pcs)
+    pc_ref = gdbarch_addr_bits_remove (gdbarch, pc_ref);
 
   return next_pcs;
 }
@@ -963,7 +950,7 @@ arm_linux_software_single_step (struct r
 static void
 arm_linux_cleanup_svc (struct gdbarch *gdbarch,
 		       struct regcache *regs,
-		       struct displaced_step_closure *dsc)
+		       arm_displaced_step_closure *dsc)
 {
   ULONGEST apparent_pc;
   int within_scratch;
@@ -991,7 +978,7 @@ arm_linux_cleanup_svc (struct gdbarch *g
 
 static int
 arm_linux_copy_svc (struct gdbarch *gdbarch, struct regcache *regs,
-		    struct displaced_step_closure *dsc)
+		    arm_displaced_step_closure *dsc)
 {
   CORE_ADDR return_to = 0;
 
@@ -1033,7 +1020,7 @@ arm_linux_copy_svc (struct gdbarch *gdba
 	{
 	  inferior_thread ()->control.step_resume_breakpoint
 	    = set_momentary_breakpoint (gdbarch, sal, get_frame_id (frame),
-					bp_step_resume);
+					bp_step_resume).release ();
 
 	  /* set_momentary_breakpoint invalidates FRAME.  */
 	  frame = NULL;
@@ -1082,7 +1069,7 @@ arm_linux_copy_svc (struct gdbarch *gdba
 static void
 cleanup_kernel_helper_return (struct gdbarch *gdbarch,
 			      struct regcache *regs,
-			      struct displaced_step_closure *dsc)
+			      arm_displaced_step_closure *dsc)
 {
   displaced_write_reg (regs, dsc, ARM_LR_REGNUM, dsc->tmp[0], CANNOT_WRITE_PC);
   displaced_write_reg (regs, dsc, ARM_PC_REGNUM, dsc->tmp[0], BRANCH_WRITE_PC);
@@ -1091,7 +1078,7 @@ cleanup_kernel_helper_return (struct gdb
 static void
 arm_catch_kernel_helper_return (struct gdbarch *gdbarch, CORE_ADDR from,
 				CORE_ADDR to, struct regcache *regs,
-				struct displaced_step_closure *dsc)
+				arm_displaced_step_closure *dsc)
 {
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
@@ -1125,7 +1112,7 @@ arm_linux_displaced_step_copy_insn (stru
 				    CORE_ADDR from, CORE_ADDR to,
 				    struct regcache *regs)
 {
-  struct displaced_step_closure *dsc = XNEW (struct displaced_step_closure);
+  arm_displaced_step_closure *dsc = new arm_displaced_step_closure;
 
   /* Detect when we enter an (inaccessible by GDB) Linux kernel helper, and
      stop at the return location.  */
@@ -1222,7 +1209,7 @@ arm_stap_parse_special_token (struct gdb
 	       regname, p->saved_arg);
 
       ++tmp;
-      tmp = skip_spaces_const (tmp);
+      tmp = skip_spaces (tmp);
       if (*tmp == '#' || *tmp == '$')
 	++tmp;
 
@@ -1823,8 +1810,6 @@ arm_linux_init_abi (struct gdbarch_info 
   set_gdbarch_displaced_step_copy_insn (gdbarch,
 					arm_linux_displaced_step_copy_insn);
   set_gdbarch_displaced_step_fixup (gdbarch, arm_displaced_step_fixup);
-  set_gdbarch_displaced_step_free_closure (gdbarch,
-					   simple_displaced_step_free_closure);
   set_gdbarch_displaced_step_location (gdbarch, linux_displaced_step_location);
 
   /* Reversible debugging, process record.  */
@@ -2009,9 +1994,6 @@ arm_linux_init_abi (struct gdbarch_info 
   arm_linux_record_tdep.arg7 = ARM_A1_REGNUM + 6;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_arm_linux_tdep;
-
 void
 _initialize_arm_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-linux-tdep.h ./gdb/arm-linux-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-linux-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arm-linux-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GNU/Linux on ARM target support, prototypes.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-nbsd-nat.c ./gdb/arm-nbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-nbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arm-nbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for BSD Unix running on ARM's, for GDB.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -47,7 +47,7 @@ arm_supply_gregset (struct regcache *reg
   regcache_raw_supply (regcache, ARM_LR_REGNUM,
 		       (char *) &gregset->r_lr);
   /* This is ok: we're running native...  */
-  r_pc = gdbarch_addr_bits_remove (get_regcache_arch (regcache), gregset->r_pc);
+  r_pc = gdbarch_addr_bits_remove (regcache->arch (), gregset->r_pc);
   regcache_raw_supply (regcache, ARM_PC_REGNUM, (char *) &r_pc);
 
   if (arm_apcs_32)
@@ -101,7 +101,7 @@ fetch_register (struct regcache *regcach
     case ARM_PC_REGNUM:
       /* This is ok: we're running native...  */
       inferior_registers.r_pc = gdbarch_addr_bits_remove
-				  (get_regcache_arch (regcache),
+				  (regcache->arch (),
 				   inferior_registers.r_pc);
       regcache_raw_supply (regcache, ARM_PC_REGNUM,
 			   (char *) &inferior_registers.r_pc);
@@ -212,7 +212,7 @@ armnbsd_fetch_registers (struct target_o
 static void
 store_register (const struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct reg inferior_registers;
   int ret;
 
@@ -289,7 +289,7 @@ store_register (const struct regcache *r
 static void
 store_regs (const struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct reg inferior_registers;
   int ret;
   int regno;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-nbsd-tdep.c ./gdb/arm-nbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-nbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arm-nbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for NetBSD/arm.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -85,9 +85,6 @@ arm_netbsd_elf_init_abi (struct gdbarch_
     (gdbarch, svr4_ilp32_fetch_link_map_offsets);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_arm_netbsd_tdep;
-
 void
 _initialize_arm_netbsd_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-obsd-tdep.c ./gdb/arm-obsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-obsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arm-obsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for OpenBSD/arm.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -114,10 +114,6 @@ armobsd_init_abi (struct gdbarch_info in
       break;
     }
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_armobsd_tdep;
 
 void
 _initialize_armobsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-symbian-tdep.c ./gdb/arm-symbian-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-symbian-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arm-symbian-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* ARM Symbian OS target support.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -119,9 +119,6 @@ arm_symbian_osabi_sniffer (bfd *abfd)
   return GDB_OSABI_SYMBIAN;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_arm_symbian_tdep;
-
 void
 _initialize_arm_symbian_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-tdep.c ./gdb/arm-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arm-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common target dependent code for GDB on ARM systems.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -30,7 +30,7 @@
 #include "disasm.h"
 #include "regcache.h"
 #include "reggroups.h"
-#include "doublest.h"
+#include "target-float.h"
 #include "value.h"
 #include "arch-utils.h"
 #include "osabi.h"
@@ -220,17 +220,12 @@ static const char *disassembly_style;
 
 /* This is used to keep the bfd arch_info in sync with the disassembly
    style.  */
-static void set_disassembly_style_sfunc(char *, int,
+static void set_disassembly_style_sfunc (const char *, int,
 					 struct cmd_list_element *);
 static void show_disassembly_style_sfunc (struct ui_file *, int,
 					  struct cmd_list_element *,
 					  const char *);
 
-static void convert_from_extended (const struct floatformat *, const void *,
-				   void *, int);
-static void convert_to_extended (const struct floatformat *, void *,
-				 const void *, int);
-
 static enum register_status arm_neon_quad_read (struct gdbarch *gdbarch,
 						struct regcache *regcache,
 						int regnum, gdb_byte *buf);
@@ -302,7 +297,7 @@ int
 arm_is_thumb (struct regcache *regcache)
 {
   ULONGEST cpsr;
-  ULONGEST t_bit = arm_psr_thumb_bit (get_regcache_arch (regcache));
+  ULONGEST t_bit = arm_psr_thumb_bit (regcache->arch ());
 
   cpsr = regcache_raw_get_unsigned (regcache, ARM_PS_REGNUM);
 
@@ -404,8 +399,9 @@ arm_pc_is_thumb (struct gdbarch *gdbarch
 {
   struct bound_minimal_symbol sym;
   char type;
-  struct displaced_step_closure* dsc
-    = get_displaced_step_closure_by_addr(memaddr);
+  arm_displaced_step_closure *dsc
+    = ((arm_displaced_step_closure * )
+	get_displaced_step_closure_by_addr (memaddr));
 
   /* If checking the mode of displaced instruction in copy area, the mode
      should be determined by instruction on the original address.  */
@@ -652,15 +648,12 @@ thumb_analyze_prologue (struct gdbarch *
   enum bfd_endian byte_order_for_code = gdbarch_byte_order_for_code (gdbarch);
   int i;
   pv_t regs[16];
-  struct pv_area *stack;
-  struct cleanup *back_to;
   CORE_ADDR offset;
   CORE_ADDR unrecognized_pc = 0;
 
   for (i = 0; i < 16; i++)
     regs[i] = pv_register (i, 0);
-  stack = make_pv_area (ARM_SP_REGNUM, gdbarch_addr_bit (gdbarch));
-  back_to = make_cleanup_free_pv_area (stack);
+  pv_area stack (ARM_SP_REGNUM, gdbarch_addr_bit (gdbarch));
 
   while (start < limit)
     {
@@ -673,7 +666,7 @@ thumb_analyze_prologue (struct gdbarch *
 	  int regno;
 	  int mask;
 
-	  if (pv_area_store_would_trash (stack, regs[ARM_SP_REGNUM]))
+	  if (stack.store_would_trash (regs[ARM_SP_REGNUM]))
 	    break;
 
 	  /* Bits 0-7 contain a mask for registers R0-R7.  Bit 8 says
@@ -686,7 +679,7 @@ thumb_analyze_prologue (struct gdbarch *
 	      {
 		regs[ARM_SP_REGNUM] = pv_add_constant (regs[ARM_SP_REGNUM],
 						       -4);
-		pv_area_store (stack, regs[ARM_SP_REGNUM], 4, regs[regno]);
+		stack.store (regs[ARM_SP_REGNUM], 4, regs[regno]);
 	      }
 	}
       else if ((insn & 0xff80) == 0xb080)	/* sub sp, #imm */
@@ -740,10 +733,10 @@ thumb_analyze_prologue (struct gdbarch *
 	  offset = (insn & 0xff) << 2;
 	  addr = pv_add_constant (regs[ARM_SP_REGNUM], offset);
 
-	  if (pv_area_store_would_trash (stack, addr))
+	  if (stack.store_would_trash (addr))
 	    break;
 
-	  pv_area_store (stack, addr, 4, regs[regno]);
+	  stack.store (addr, 4, regs[regno]);
 	}
       else if ((insn & 0xf800) == 0x6000)	/* str rd, [rn, #off] */
 	{
@@ -754,10 +747,10 @@ thumb_analyze_prologue (struct gdbarch *
 	  offset = bits (insn, 6, 10) << 2;
 	  addr = pv_add_constant (regs[rn], offset);
 
-	  if (pv_area_store_would_trash (stack, addr))
+	  if (stack.store_would_trash (addr))
 	    break;
 
-	  pv_area_store (stack, addr, 4, regs[rd]);
+	  stack.store (addr, 4, regs[rd]);
 	}
       else if (((insn & 0xf800) == 0x7000	/* strb Rd, [Rn, #off] */
 		|| (insn & 0xf800) == 0x8000)	/* strh Rd, [Rn, #off] */
@@ -833,7 +826,7 @@ thumb_analyze_prologue (struct gdbarch *
 	      pv_t addr = regs[bits (insn, 0, 3)];
 	      int regno;
 
-	      if (pv_area_store_would_trash (stack, addr))
+	      if (stack.store_would_trash (addr))
 		break;
 
 	      /* Calculate offsets of saved registers.  */
@@ -841,7 +834,7 @@ thumb_analyze_prologue (struct gdbarch *
 		if (inst2 & (1 << regno))
 		  {
 		    addr = pv_add_constant (addr, -4);
-		    pv_area_store (stack, addr, 4, regs[regno]);
+		    stack.store (addr, 4, regs[regno]);
 		  }
 
 	      if (insn & 0x0020)
@@ -862,12 +855,12 @@ thumb_analyze_prologue (struct gdbarch *
 	      else
 		addr = pv_add_constant (addr, -offset);
 
-	      if (pv_area_store_would_trash (stack, addr))
+	      if (stack.store_would_trash (addr))
 		break;
 
-	      pv_area_store (stack, addr, 4, regs[regno1]);
-	      pv_area_store (stack, pv_add_constant (addr, 4),
-			     4, regs[regno2]);
+	      stack.store (addr, 4, regs[regno1]);
+	      stack.store (pv_add_constant (addr, 4),
+			   4, regs[regno2]);
 
 	      if (insn & 0x0020)
 		regs[bits (insn, 0, 3)] = addr;
@@ -886,10 +879,10 @@ thumb_analyze_prologue (struct gdbarch *
 	      else
 		addr = pv_add_constant (addr, -offset);
 
-	      if (pv_area_store_would_trash (stack, addr))
+	      if (stack.store_would_trash (addr))
 		break;
 
-	      pv_area_store (stack, addr, 4, regs[regno]);
+	      stack.store (addr, 4, regs[regno]);
 
 	      if (inst2 & 0x0100)
 		regs[bits (insn, 0, 3)] = addr;
@@ -904,10 +897,10 @@ thumb_analyze_prologue (struct gdbarch *
 	      offset = inst2 & 0xfff;
 	      addr = pv_add_constant (regs[bits (insn, 0, 3)], offset);
 
-	      if (pv_area_store_would_trash (stack, addr))
+	      if (stack.store_would_trash (addr))
 		break;
 
-	      pv_area_store (stack, addr, 4, regs[regno]);
+	      stack.store (addr, 4, regs[regno]);
 	    }
 
 	  else if ((insn & 0xffd0) == 0xf880	/* str{bh}.w Rt,[Rn,#imm] */
@@ -1090,10 +1083,7 @@ thumb_analyze_prologue (struct gdbarch *
     unrecognized_pc = start;
 
   if (cache == NULL)
-    {
-      do_cleanups (back_to);
-      return unrecognized_pc;
-    }
+    return unrecognized_pc;
 
   if (pv_is_register (regs[ARM_FP_REGNUM], ARM_SP_REGNUM))
     {
@@ -1115,10 +1105,9 @@ thumb_analyze_prologue (struct gdbarch *
     }
 
   for (i = 0; i < 16; i++)
-    if (pv_area_find_reg (stack, gdbarch, i, &offset))
+    if (stack.find_reg (gdbarch, i, &offset))
       cache->saved_regs[i].addr = offset;
 
-  do_cleanups (back_to);
   return unrecognized_pc;
 }
 
@@ -1494,8 +1483,6 @@ arm_analyze_prologue (struct gdbarch *gd
   int regno;
   CORE_ADDR offset, current_pc;
   pv_t regs[ARM_FPS_REGNUM];
-  struct pv_area *stack;
-  struct cleanup *back_to;
   CORE_ADDR unrecognized_pc = 0;
 
   /* Search the prologue looking for instructions that set up the
@@ -1510,8 +1497,7 @@ arm_analyze_prologue (struct gdbarch *gd
 
   for (regno = 0; regno < ARM_FPS_REGNUM; regno++)
     regs[regno] = pv_register (regno, 0);
-  stack = make_pv_area (ARM_SP_REGNUM, gdbarch_addr_bit (gdbarch));
-  back_to = make_cleanup_free_pv_area (stack);
+  pv_area stack (ARM_SP_REGNUM, gdbarch_addr_bit (gdbarch));
 
   for (current_pc = prologue_start;
        current_pc < prologue_end;
@@ -1548,11 +1534,11 @@ arm_analyze_prologue (struct gdbarch *gd
       else if ((insn & 0xffff0fff) == 0xe52d0004)	/* str Rd,
 							   [sp, #-4]! */
 	{
-	  if (pv_area_store_would_trash (stack, regs[ARM_SP_REGNUM]))
+	  if (stack.store_would_trash (regs[ARM_SP_REGNUM]))
 	    break;
 	  regs[ARM_SP_REGNUM] = pv_add_constant (regs[ARM_SP_REGNUM], -4);
-	  pv_area_store (stack, regs[ARM_SP_REGNUM], 4,
-			 regs[bits (insn, 12, 15)]);
+	  stack.store (regs[ARM_SP_REGNUM], 4,
+		       regs[bits (insn, 12, 15)]);
 	  continue;
 	}
       else if ((insn & 0xffff0000) == 0xe92d0000)
@@ -1562,7 +1548,7 @@ arm_analyze_prologue (struct gdbarch *gd
 	{
 	  int mask = insn & 0xffff;
 
-	  if (pv_area_store_would_trash (stack, regs[ARM_SP_REGNUM]))
+	  if (stack.store_would_trash (regs[ARM_SP_REGNUM]))
 	    break;
 
 	  /* Calculate offsets of saved registers.  */
@@ -1571,7 +1557,7 @@ arm_analyze_prologue (struct gdbarch *gd
 	      {
 		regs[ARM_SP_REGNUM]
 		  = pv_add_constant (regs[ARM_SP_REGNUM], -4);
-		pv_area_store (stack, regs[ARM_SP_REGNUM], 4, regs[regno]);
+		stack.store (regs[ARM_SP_REGNUM], 4, regs[regno]);
 	      }
 	}
       else if ((insn & 0xffff0000) == 0xe54b0000	/* strb rx,[r11,#-n] */
@@ -1613,12 +1599,12 @@ arm_analyze_prologue (struct gdbarch *gd
 							   [sp, -#c]! */
 	       && gdbarch_tdep (gdbarch)->have_fpa_registers)
 	{
-	  if (pv_area_store_would_trash (stack, regs[ARM_SP_REGNUM]))
+	  if (stack.store_would_trash (regs[ARM_SP_REGNUM]))
 	    break;
 
 	  regs[ARM_SP_REGNUM] = pv_add_constant (regs[ARM_SP_REGNUM], -12);
 	  regno = ARM_F0_REGNUM + ((insn >> 12) & 0x07);
-	  pv_area_store (stack, regs[ARM_SP_REGNUM], 12, regs[regno]);
+	  stack.store (regs[ARM_SP_REGNUM], 12, regs[regno]);
 	}
       else if ((insn & 0xffbf0fff) == 0xec2d0200	/* sfmfd f0, 4,
 							   [sp!] */
@@ -1627,7 +1613,7 @@ arm_analyze_prologue (struct gdbarch *gd
 	  int n_saved_fp_regs;
 	  unsigned int fp_start_reg, fp_bound_reg;
 
-	  if (pv_area_store_would_trash (stack, regs[ARM_SP_REGNUM]))
+	  if (stack.store_would_trash (regs[ARM_SP_REGNUM]))
 	    break;
 
 	  if ((insn & 0x800) == 0x800)		/* N0 is set */
@@ -1650,8 +1636,8 @@ arm_analyze_prologue (struct gdbarch *gd
 	  for (; fp_start_reg < fp_bound_reg; fp_start_reg++)
 	    {
 	      regs[ARM_SP_REGNUM] = pv_add_constant (regs[ARM_SP_REGNUM], -12);
-	      pv_area_store (stack, regs[ARM_SP_REGNUM], 12,
-			     regs[fp_start_reg++]);
+	      stack.store (regs[ARM_SP_REGNUM], 12,
+			   regs[fp_start_reg++]);
 	    }
 	}
       else if ((insn & 0xff000000) == 0xeb000000 && cache == NULL) /* bl */
@@ -1731,7 +1717,7 @@ arm_analyze_prologue (struct gdbarch *gd
       cache->framesize = framesize;
 
       for (regno = 0; regno < ARM_FPS_REGNUM; regno++)
-	if (pv_area_find_reg (stack, gdbarch, regno, &offset))
+	if (stack.find_reg (gdbarch, regno, &offset))
 	  cache->saved_regs[regno].addr = offset;
     }
 
@@ -1739,7 +1725,6 @@ arm_analyze_prologue (struct gdbarch *gd
     fprintf_unfiltered (gdb_stdlog, "Prologue scan stopped at %s\n",
 			paddress (gdbarch, unrecognized_pc));
 
-  do_cleanups (back_to);
   return unrecognized_pc;
 }
 
@@ -4211,39 +4196,6 @@ arm_register_sim_regno (struct gdbarch *
   internal_error (__FILE__, __LINE__, _("Bad REGNUM %d"), regnum);
 }
 
-/* NOTE: cagney/2001-08-20: Both convert_from_extended() and
-   convert_to_extended() use floatformat_arm_ext_littlebyte_bigword.
-   It is thought that this is is the floating-point register format on
-   little-endian systems.  */
-
-static void
-convert_from_extended (const struct floatformat *fmt, const void *ptr,
-		       void *dbl, int endianess)
-{
-  DOUBLEST d;
-
-  if (endianess == BFD_ENDIAN_BIG)
-    floatformat_to_doublest (&floatformat_arm_ext_big, ptr, &d);
-  else
-    floatformat_to_doublest (&floatformat_arm_ext_littlebyte_bigword,
-			     ptr, &d);
-  floatformat_from_doublest (fmt, &d, dbl);
-}
-
-static void
-convert_to_extended (const struct floatformat *fmt, void *dbl, const void *ptr,
-		     int endianess)
-{
-  DOUBLEST d;
-
-  floatformat_to_doublest (fmt, ptr, &d);
-  if (endianess == BFD_ENDIAN_BIG)
-    floatformat_from_doublest (&floatformat_arm_ext_big, &d, dbl);
-  else
-    floatformat_from_doublest (&floatformat_arm_ext_littlebyte_bigword,
-			       &d, dbl);
-}
-
 /* Given BUF, which is OLD_LEN bytes ending at ENDADDR, expand
    the buffer to be NEW_LEN bytes ending at ENDADDR.  Return
    NULL if an error occurs.  BUF is freed.  */
@@ -4462,7 +4414,7 @@ arm_adjust_breakpoint_address (struct gd
    location.  */
 
 ULONGEST
-displaced_read_reg (struct regcache *regs, struct displaced_step_closure *dsc,
+displaced_read_reg (struct regcache *regs, arm_displaced_step_closure *dsc,
 		    int regno)
 {
   ULONGEST ret;
@@ -4500,7 +4452,7 @@ static int
 displaced_in_arm_mode (struct regcache *regs)
 {
   ULONGEST ps;
-  ULONGEST t_bit = arm_psr_thumb_bit (get_regcache_arch (regs));
+  ULONGEST t_bit = arm_psr_thumb_bit (regs->arch ());
 
   regcache_cooked_read_unsigned (regs, ARM_PS_REGNUM, &ps);
 
@@ -4510,7 +4462,7 @@ displaced_in_arm_mode (struct regcache *
 /* Write to the PC as from a branch instruction.  */
 
 static void
-branch_write_pc (struct regcache *regs, struct displaced_step_closure *dsc,
+branch_write_pc (struct regcache *regs, arm_displaced_step_closure *dsc,
 		 ULONGEST val)
 {
   if (!dsc->is_thumb)
@@ -4529,7 +4481,7 @@ static void
 bx_write_pc (struct regcache *regs, ULONGEST val)
 {
   ULONGEST ps;
-  ULONGEST t_bit = arm_psr_thumb_bit (get_regcache_arch (regs));
+  ULONGEST t_bit = arm_psr_thumb_bit (regs->arch ());
 
   regcache_cooked_read_unsigned (regs, ARM_PS_REGNUM, &ps);
 
@@ -4556,7 +4508,7 @@ bx_write_pc (struct regcache *regs, ULON
 /* Write to the PC as if from a load instruction.  */
 
 static void
-load_write_pc (struct regcache *regs, struct displaced_step_closure *dsc,
+load_write_pc (struct regcache *regs, arm_displaced_step_closure *dsc,
 	       ULONGEST val)
 {
   if (DISPLACED_STEPPING_ARCH_VERSION >= 5)
@@ -4568,7 +4520,7 @@ load_write_pc (struct regcache *regs, st
 /* Write to the PC as if from an ALU instruction.  */
 
 static void
-alu_write_pc (struct regcache *regs, struct displaced_step_closure *dsc,
+alu_write_pc (struct regcache *regs, arm_displaced_step_closure *dsc,
 	      ULONGEST val)
 {
   if (DISPLACED_STEPPING_ARCH_VERSION >= 7 && !dsc->is_thumb)
@@ -4582,7 +4534,7 @@ alu_write_pc (struct regcache *regs, str
    this is controlled by the WRITE_PC argument.  */
 
 void
-displaced_write_reg (struct regcache *regs, struct displaced_step_closure *dsc,
+displaced_write_reg (struct regcache *regs, arm_displaced_step_closure *dsc,
 		     int regno, ULONGEST val, enum pc_write_style write_pc)
 {
   if (regno == ARM_PC_REGNUM)
@@ -4666,7 +4618,7 @@ insn_references_pc (uint32_t insn, uint3
 
 static int
 arm_copy_unmodified (struct gdbarch *gdbarch, uint32_t insn,
-		     const char *iname, struct displaced_step_closure *dsc)
+		     const char *iname, arm_displaced_step_closure *dsc)
 {
   if (debug_displaced)
     fprintf_unfiltered (gdb_stdlog, "displaced: copying insn %.8lx, "
@@ -4681,7 +4633,7 @@ arm_copy_unmodified (struct gdbarch *gdb
 static int
 thumb_copy_unmodified_32bit (struct gdbarch *gdbarch, uint16_t insn1,
 			     uint16_t insn2, const char *iname,
-			     struct displaced_step_closure *dsc)
+			     arm_displaced_step_closure *dsc)
 {
   if (debug_displaced)
     fprintf_unfiltered (gdb_stdlog, "displaced: copying insn %.4x %.4x, "
@@ -4700,7 +4652,7 @@ thumb_copy_unmodified_32bit (struct gdba
 static int
 thumb_copy_unmodified_16bit (struct gdbarch *gdbarch, uint16_t insn,
 			     const char *iname,
-			     struct displaced_step_closure *dsc)
+			     arm_displaced_step_closure *dsc)
 {
   if (debug_displaced)
     fprintf_unfiltered (gdb_stdlog, "displaced: copying insn %.4x, "
@@ -4716,7 +4668,7 @@ thumb_copy_unmodified_16bit (struct gdba
 
 static void
 cleanup_preload (struct gdbarch *gdbarch,
-		 struct regcache *regs, struct displaced_step_closure *dsc)
+		 struct regcache *regs, arm_displaced_step_closure *dsc)
 {
   displaced_write_reg (regs, dsc, 0, dsc->tmp[0], CANNOT_WRITE_PC);
   if (!dsc->u.preload.immed)
@@ -4725,7 +4677,7 @@ cleanup_preload (struct gdbarch *gdbarch
 
 static void
 install_preload (struct gdbarch *gdbarch, struct regcache *regs,
-		 struct displaced_step_closure *dsc, unsigned int rn)
+		 arm_displaced_step_closure *dsc, unsigned int rn)
 {
   ULONGEST rn_val;
   /* Preload instructions:
@@ -4744,7 +4696,7 @@ install_preload (struct gdbarch *gdbarch
 
 static int
 arm_copy_preload (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs,
-		  struct displaced_step_closure *dsc)
+		  arm_displaced_step_closure *dsc)
 {
   unsigned int rn = bits (insn, 16, 19);
 
@@ -4764,7 +4716,7 @@ arm_copy_preload (struct gdbarch *gdbarc
 
 static int
 thumb2_copy_preload (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2,
-		     struct regcache *regs, struct displaced_step_closure *dsc)
+		     struct regcache *regs, arm_displaced_step_closure *dsc)
 {
   unsigned int rn = bits (insn1, 0, 3);
   unsigned int u_bit = bit (insn1, 7);
@@ -4814,7 +4766,7 @@ thumb2_copy_preload (struct gdbarch *gdb
 
 static void
 install_preload_reg(struct gdbarch *gdbarch, struct regcache *regs,
-		    struct displaced_step_closure *dsc, unsigned int rn,
+		    arm_displaced_step_closure *dsc, unsigned int rn,
 		    unsigned int rm)
 {
   ULONGEST rn_val, rm_val;
@@ -4839,7 +4791,7 @@ install_preload_reg(struct gdbarch *gdba
 static int
 arm_copy_preload_reg (struct gdbarch *gdbarch, uint32_t insn,
 		      struct regcache *regs,
-		      struct displaced_step_closure *dsc)
+		      arm_displaced_step_closure *dsc)
 {
   unsigned int rn = bits (insn, 16, 19);
   unsigned int rm = bits (insn, 0, 3);
@@ -4863,7 +4815,7 @@ arm_copy_preload_reg (struct gdbarch *gd
 static void
 cleanup_copro_load_store (struct gdbarch *gdbarch,
 			  struct regcache *regs,
-			  struct displaced_step_closure *dsc)
+			  arm_displaced_step_closure *dsc)
 {
   ULONGEST rn_val = displaced_read_reg (regs, dsc, 0);
 
@@ -4875,7 +4827,7 @@ cleanup_copro_load_store (struct gdbarch
 
 static void
 install_copro_load_store (struct gdbarch *gdbarch, struct regcache *regs,
-			  struct displaced_step_closure *dsc,
+			  arm_displaced_step_closure *dsc,
 			  int writeback, unsigned int rn)
 {
   ULONGEST rn_val;
@@ -4903,7 +4855,7 @@ install_copro_load_store (struct gdbarch
 static int
 arm_copy_copro_load_store (struct gdbarch *gdbarch, uint32_t insn,
 			   struct regcache *regs,
-			   struct displaced_step_closure *dsc)
+			   arm_displaced_step_closure *dsc)
 {
   unsigned int rn = bits (insn, 16, 19);
 
@@ -4924,7 +4876,7 @@ arm_copy_copro_load_store (struct gdbarc
 static int
 thumb2_copy_copro_load_store (struct gdbarch *gdbarch, uint16_t insn1,
 			      uint16_t insn2, struct regcache *regs,
-			      struct displaced_step_closure *dsc)
+			      arm_displaced_step_closure *dsc)
 {
   unsigned int rn = bits (insn1, 0, 3);
 
@@ -4952,7 +4904,7 @@ thumb2_copy_copro_load_store (struct gdb
 
 static void
 cleanup_branch (struct gdbarch *gdbarch, struct regcache *regs,
-		struct displaced_step_closure *dsc)
+		arm_displaced_step_closure *dsc)
 {
   uint32_t status = displaced_read_reg (regs, dsc, ARM_PS_REGNUM);
   int branch_taken = condition_true (dsc->u.branch.cond, status);
@@ -4983,7 +4935,7 @@ cleanup_branch (struct gdbarch *gdbarch,
 
 static void
 install_b_bl_blx (struct gdbarch *gdbarch, struct regcache *regs,
-		  struct displaced_step_closure *dsc,
+		  arm_displaced_step_closure *dsc,
 		  unsigned int cond, int exchange, int link, long offset)
 {
   /* Implement "BL<cond> <label>" as:
@@ -5012,7 +4964,7 @@ install_b_bl_blx (struct gdbarch *gdbarc
 }
 static int
 arm_copy_b_bl_blx (struct gdbarch *gdbarch, uint32_t insn,
-		   struct regcache *regs, struct displaced_step_closure *dsc)
+		   struct regcache *regs, arm_displaced_step_closure *dsc)
 {
   unsigned int cond = bits (insn, 28, 31);
   int exchange = (cond == 0xf);
@@ -5042,7 +4994,7 @@ arm_copy_b_bl_blx (struct gdbarch *gdbar
 static int
 thumb2_copy_b_bl_blx (struct gdbarch *gdbarch, uint16_t insn1,
 		      uint16_t insn2, struct regcache *regs,
-		      struct displaced_step_closure *dsc)
+		      arm_displaced_step_closure *dsc)
 {
   int link = bit (insn2, 14);
   int exchange = link && !bit (insn2, 12);
@@ -5097,7 +5049,7 @@ thumb2_copy_b_bl_blx (struct gdbarch *gd
 /* Copy B Thumb instructions.  */
 static int
 thumb_copy_b (struct gdbarch *gdbarch, uint16_t insn,
-	      struct displaced_step_closure *dsc)
+	      arm_displaced_step_closure *dsc)
 {
   unsigned int cond = 0;
   int offset = 0;
@@ -5137,7 +5089,7 @@ thumb_copy_b (struct gdbarch *gdbarch, u
 
 static void
 install_bx_blx_reg (struct gdbarch *gdbarch, struct regcache *regs,
-		    struct displaced_step_closure *dsc, int link,
+		    arm_displaced_step_closure *dsc, int link,
 		    unsigned int cond, unsigned int rm)
 {
   /* Implement {BX,BLX}<cond> <reg>" as:
@@ -5160,7 +5112,7 @@ install_bx_blx_reg (struct gdbarch *gdba
 
 static int
 arm_copy_bx_blx_reg (struct gdbarch *gdbarch, uint32_t insn,
-		     struct regcache *regs, struct displaced_step_closure *dsc)
+		     struct regcache *regs, arm_displaced_step_closure *dsc)
 {
   unsigned int cond = bits (insn, 28, 31);
   /* BX:  x12xxx1x
@@ -5181,7 +5133,7 @@ arm_copy_bx_blx_reg (struct gdbarch *gdb
 static int
 thumb_copy_bx_blx_reg (struct gdbarch *gdbarch, uint16_t insn,
 		       struct regcache *regs,
-		       struct displaced_step_closure *dsc)
+		       arm_displaced_step_closure *dsc)
 {
   int link = bit (insn, 7);
   unsigned int rm = bits (insn, 3, 6);
@@ -5202,7 +5154,7 @@ thumb_copy_bx_blx_reg (struct gdbarch *g
 
 static void
 cleanup_alu_imm (struct gdbarch *gdbarch,
-		 struct regcache *regs, struct displaced_step_closure *dsc)
+		 struct regcache *regs, arm_displaced_step_closure *dsc)
 {
   ULONGEST rd_val = displaced_read_reg (regs, dsc, 0);
   displaced_write_reg (regs, dsc, 0, dsc->tmp[0], CANNOT_WRITE_PC);
@@ -5212,7 +5164,7 @@ cleanup_alu_imm (struct gdbarch *gdbarch
 
 static int
 arm_copy_alu_imm (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs,
-		  struct displaced_step_closure *dsc)
+		  arm_displaced_step_closure *dsc)
 {
   unsigned int rn = bits (insn, 16, 19);
   unsigned int rd = bits (insn, 12, 15);
@@ -5261,7 +5213,7 @@ arm_copy_alu_imm (struct gdbarch *gdbarc
 static int
 thumb2_copy_alu_imm (struct gdbarch *gdbarch, uint16_t insn1,
 		     uint16_t insn2, struct regcache *regs,
-		     struct displaced_step_closure *dsc)
+		     arm_displaced_step_closure *dsc)
 {
   unsigned int op = bits (insn1, 5, 8);
   unsigned int rn, rm, rd;
@@ -5314,7 +5266,7 @@ thumb2_copy_alu_imm (struct gdbarch *gdb
 
 static void
 cleanup_alu_reg (struct gdbarch *gdbarch,
-		 struct regcache *regs, struct displaced_step_closure *dsc)
+		 struct regcache *regs, arm_displaced_step_closure *dsc)
 {
   ULONGEST rd_val;
   int i;
@@ -5329,7 +5281,7 @@ cleanup_alu_reg (struct gdbarch *gdbarch
 
 static void
 install_alu_reg (struct gdbarch *gdbarch, struct regcache *regs,
-		 struct displaced_step_closure *dsc,
+		 arm_displaced_step_closure *dsc,
 		 unsigned int rd, unsigned int rn, unsigned int rm)
 {
   ULONGEST rd_val, rn_val, rm_val;
@@ -5362,7 +5314,7 @@ install_alu_reg (struct gdbarch *gdbarch
 
 static int
 arm_copy_alu_reg (struct gdbarch *gdbarch, uint32_t insn, struct regcache *regs,
-		  struct displaced_step_closure *dsc)
+		  arm_displaced_step_closure *dsc)
 {
   unsigned int op = bits (insn, 21, 24);
   int is_mov = (op == 0xd);
@@ -5387,7 +5339,7 @@ arm_copy_alu_reg (struct gdbarch *gdbarc
 static int
 thumb_copy_alu_reg (struct gdbarch *gdbarch, uint16_t insn,
 		    struct regcache *regs,
-		    struct displaced_step_closure *dsc)
+		    arm_displaced_step_closure *dsc)
 {
   unsigned rm, rd;
 
@@ -5413,7 +5365,7 @@ thumb_copy_alu_reg (struct gdbarch *gdba
 static void
 cleanup_alu_shifted_reg (struct gdbarch *gdbarch,
 			 struct regcache *regs,
-			 struct displaced_step_closure *dsc)
+			 arm_displaced_step_closure *dsc)
 {
   ULONGEST rd_val = displaced_read_reg (regs, dsc, 0);
   int i;
@@ -5426,7 +5378,7 @@ cleanup_alu_shifted_reg (struct gdbarch 
 
 static void
 install_alu_shifted_reg (struct gdbarch *gdbarch, struct regcache *regs,
-			 struct displaced_step_closure *dsc,
+			 arm_displaced_step_closure *dsc,
 			 unsigned int rd, unsigned int rn, unsigned int rm,
 			 unsigned rs)
 {
@@ -5465,7 +5417,7 @@ install_alu_shifted_reg (struct gdbarch 
 static int
 arm_copy_alu_shifted_reg (struct gdbarch *gdbarch, uint32_t insn,
 			  struct regcache *regs,
-			  struct displaced_step_closure *dsc)
+			  arm_displaced_step_closure *dsc)
 {
   unsigned int op = bits (insn, 21, 24);
   int is_mov = (op == 0xd);
@@ -5498,7 +5450,7 @@ arm_copy_alu_shifted_reg (struct gdbarch
 
 static void
 cleanup_load (struct gdbarch *gdbarch, struct regcache *regs,
-	      struct displaced_step_closure *dsc)
+	      arm_displaced_step_closure *dsc)
 {
   ULONGEST rt_val, rt_val2 = 0, rn_val;
 
@@ -5527,7 +5479,7 @@ cleanup_load (struct gdbarch *gdbarch, s
 
 static void
 cleanup_store (struct gdbarch *gdbarch, struct regcache *regs,
-	       struct displaced_step_closure *dsc)
+	       arm_displaced_step_closure *dsc)
 {
   ULONGEST rn_val = displaced_read_reg (regs, dsc, 2);
 
@@ -5550,7 +5502,7 @@ cleanup_store (struct gdbarch *gdbarch, 
 
 static int
 arm_copy_extra_ld_st (struct gdbarch *gdbarch, uint32_t insn, int unprivileged,
-		      struct regcache *regs, struct displaced_step_closure *dsc)
+		      struct regcache *regs, arm_displaced_step_closure *dsc)
 {
   unsigned int op1 = bits (insn, 20, 24);
   unsigned int op2 = bits (insn, 5, 6);
@@ -5624,7 +5576,7 @@ arm_copy_extra_ld_st (struct gdbarch *gd
 
 static void
 install_load_store (struct gdbarch *gdbarch, struct regcache *regs,
-		    struct displaced_step_closure *dsc, int load,
+		    arm_displaced_step_closure *dsc, int load,
 		    int immed, int writeback, int size, int usermode,
 		    int rt, int rm, int rn)
 {
@@ -5680,7 +5632,7 @@ install_load_store (struct gdbarch *gdba
 static int
 thumb2_copy_load_literal (struct gdbarch *gdbarch, uint16_t insn1,
 			  uint16_t insn2, struct regcache *regs,
-			  struct displaced_step_closure *dsc, int size)
+			  arm_displaced_step_closure *dsc, int size)
 {
   unsigned int u_bit = bit (insn1, 7);
   unsigned int rt = bits (insn2, 12, 15);
@@ -5736,7 +5688,7 @@ thumb2_copy_load_literal (struct gdbarch
 static int
 thumb2_copy_load_reg_imm (struct gdbarch *gdbarch, uint16_t insn1,
 			  uint16_t insn2, struct regcache *regs,
-			  struct displaced_step_closure *dsc,
+			  arm_displaced_step_closure *dsc,
 			  int writeback, int immed)
 {
   unsigned int rt = bits (insn2, 12, 15);
@@ -5785,7 +5737,7 @@ thumb2_copy_load_reg_imm (struct gdbarch
 static int
 arm_copy_ldr_str_ldrb_strb (struct gdbarch *gdbarch, uint32_t insn,
 			    struct regcache *regs,
-			    struct displaced_step_closure *dsc,
+			    arm_displaced_step_closure *dsc,
 			    int load, int size, int usermode)
 {
   int immed = !bit (insn, 25);
@@ -5869,7 +5821,7 @@ arm_copy_ldr_str_ldrb_strb (struct gdbar
 
 static void
 cleanup_block_load_all (struct gdbarch *gdbarch, struct regcache *regs,
-			struct displaced_step_closure *dsc)
+			arm_displaced_step_closure *dsc)
 {
   int inc = dsc->u.block.increment;
   int bump_before = dsc->u.block.before ? (inc ? 4 : -4) : 0;
@@ -5930,7 +5882,7 @@ cleanup_block_load_all (struct gdbarch *
 
 static void
 cleanup_block_store_pc (struct gdbarch *gdbarch, struct regcache *regs,
-			struct displaced_step_closure *dsc)
+			arm_displaced_step_closure *dsc)
 {
   uint32_t status = displaced_read_reg (regs, dsc, ARM_PS_REGNUM);
   int store_executed = condition_true (dsc->u.block.cond, status);
@@ -5981,7 +5933,7 @@ cleanup_block_store_pc (struct gdbarch *
 static void
 cleanup_block_load_pc (struct gdbarch *gdbarch,
 		       struct regcache *regs,
-		       struct displaced_step_closure *dsc)
+		       arm_displaced_step_closure *dsc)
 {
   uint32_t status = displaced_read_reg (regs, dsc, ARM_PS_REGNUM);
   int load_executed = condition_true (dsc->u.block.cond, status);
@@ -6061,7 +6013,7 @@ cleanup_block_load_pc (struct gdbarch *g
 static int
 arm_copy_block_xfer (struct gdbarch *gdbarch, uint32_t insn,
 		     struct regcache *regs,
-		     struct displaced_step_closure *dsc)
+		     arm_displaced_step_closure *dsc)
 {
   int load = bit (insn, 20);
   int user = bit (insn, 22);
@@ -6175,7 +6127,7 @@ arm_copy_block_xfer (struct gdbarch *gdb
 static int
 thumb2_copy_block_xfer (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2,
 			struct regcache *regs,
-			struct displaced_step_closure *dsc)
+			arm_displaced_step_closure *dsc)
 {
   int rn = bits (insn1, 0, 3);
   int load = bit (insn1, 4);
@@ -6271,7 +6223,7 @@ CORE_ADDR
 arm_get_next_pcs_addr_bits_remove (struct arm_get_next_pcs *self,
 				   CORE_ADDR val)
 {
-  return gdbarch_addr_bits_remove (get_regcache_arch (self->regcache), val);
+  return gdbarch_addr_bits_remove (self->regcache->arch (), val);
 }
 
 /* Wrapper over syscall_next_pc for use in get_next_pcs.  */
@@ -6295,15 +6247,11 @@ arm_get_next_pcs_is_thumb (struct arm_ge
    single-step support.  We find the target of the coming instructions
    and breakpoint them.  */
 
-VEC (CORE_ADDR) *
+std::vector<CORE_ADDR>
 arm_software_single_step (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct arm_get_next_pcs next_pcs_ctx;
-  CORE_ADDR pc;
-  int i;
-  VEC (CORE_ADDR) *next_pcs = NULL;
-  struct cleanup *old_chain = make_cleanup (VEC_cleanup (CORE_ADDR), &next_pcs);
 
   arm_get_next_pcs_ctor (&next_pcs_ctx,
 			 &arm_get_next_pcs_ops,
@@ -6312,15 +6260,10 @@ arm_software_single_step (struct regcach
 			 0,
 			 regcache);
 
-  next_pcs = arm_get_next_pcs (&next_pcs_ctx);
-
-  for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, pc); i++)
-    {
-      pc = gdbarch_addr_bits_remove (gdbarch, pc);
-      VEC_replace (CORE_ADDR, next_pcs, i, pc);
-    }
+  std::vector<CORE_ADDR> next_pcs = arm_get_next_pcs (&next_pcs_ctx);
 
-  discard_cleanups (old_chain);
+  for (CORE_ADDR &pc_ref : next_pcs)
+    pc_ref = gdbarch_addr_bits_remove (gdbarch, pc_ref);
 
   return next_pcs;
 }
@@ -6330,7 +6273,7 @@ arm_software_single_step (struct regcach
 
 static void
 cleanup_svc (struct gdbarch *gdbarch, struct regcache *regs,
-	     struct displaced_step_closure *dsc)
+	     arm_displaced_step_closure *dsc)
 {
   CORE_ADDR resume_addr = dsc->insn_addr + dsc->insn_size;
 
@@ -6346,7 +6289,7 @@ cleanup_svc (struct gdbarch *gdbarch, st
 
 static int
 install_svc (struct gdbarch *gdbarch, struct regcache *regs,
-	     struct displaced_step_closure *dsc)
+	     arm_displaced_step_closure *dsc)
 {
   /* Preparation: none.
      Insn: unmodified svc.
@@ -6368,7 +6311,7 @@ install_svc (struct gdbarch *gdbarch, st
 
 static int
 arm_copy_svc (struct gdbarch *gdbarch, uint32_t insn,
-	      struct regcache *regs, struct displaced_step_closure *dsc)
+	      struct regcache *regs, arm_displaced_step_closure *dsc)
 {
 
   if (debug_displaced)
@@ -6382,7 +6325,7 @@ arm_copy_svc (struct gdbarch *gdbarch, u
 
 static int
 thumb_copy_svc (struct gdbarch *gdbarch, uint16_t insn,
-		struct regcache *regs, struct displaced_step_closure *dsc)
+		struct regcache *regs, arm_displaced_step_closure *dsc)
 {
 
   if (debug_displaced)
@@ -6398,7 +6341,7 @@ thumb_copy_svc (struct gdbarch *gdbarch,
 
 static int
 arm_copy_undef (struct gdbarch *gdbarch, uint32_t insn,
-		struct displaced_step_closure *dsc)
+		arm_displaced_step_closure *dsc)
 {
   if (debug_displaced)
     fprintf_unfiltered (gdb_stdlog,
@@ -6412,7 +6355,7 @@ arm_copy_undef (struct gdbarch *gdbarch,
 
 static int
 thumb_32bit_copy_undef (struct gdbarch *gdbarch, uint16_t insn1, uint16_t insn2,
-                       struct displaced_step_closure *dsc)
+                       arm_displaced_step_closure *dsc)
 {
 
   if (debug_displaced)
@@ -6431,7 +6374,7 @@ thumb_32bit_copy_undef (struct gdbarch *
 
 static int
 arm_copy_unpred (struct gdbarch *gdbarch, uint32_t insn,
-		 struct displaced_step_closure *dsc)
+		 arm_displaced_step_closure *dsc)
 {
   if (debug_displaced)
     fprintf_unfiltered (gdb_stdlog, "displaced: copying unpredictable insn "
@@ -6448,14 +6391,14 @@ arm_copy_unpred (struct gdbarch *gdbarch
 static int
 arm_decode_misc_memhint_neon (struct gdbarch *gdbarch, uint32_t insn,
 			      struct regcache *regs,
-			      struct displaced_step_closure *dsc)
+			      arm_displaced_step_closure *dsc)
 {
   unsigned int op1 = bits (insn, 20, 26), op2 = bits (insn, 4, 7);
   unsigned int rn = bits (insn, 16, 19);
 
-  if (op1 == 0x10 && (op2 & 0x2) == 0x0 && (rn & 0xe) == 0x0)
+  if (op1 == 0x10 && (op2 & 0x2) == 0x0 && (rn & 0x1) == 0x0)
     return arm_copy_unmodified (gdbarch, insn, "cps", dsc);
-  else if (op1 == 0x10 && op2 == 0x0 && (rn & 0xe) == 0x1)
+  else if (op1 == 0x10 && op2 == 0x0 && (rn & 0x1) == 0x1)
     return arm_copy_unmodified (gdbarch, insn, "setend", dsc);
   else if ((op1 & 0x60) == 0x20)
     return arm_copy_unmodified (gdbarch, insn, "neon dataproc", dsc);
@@ -6508,7 +6451,7 @@ arm_decode_misc_memhint_neon (struct gdb
 static int
 arm_decode_unconditional (struct gdbarch *gdbarch, uint32_t insn,
 			  struct regcache *regs,
-			  struct displaced_step_closure *dsc)
+			  arm_displaced_step_closure *dsc)
 {
   if (bit (insn, 27) == 0)
     return arm_decode_misc_memhint_neon (gdbarch, insn, regs, dsc);
@@ -6593,7 +6536,7 @@ arm_decode_unconditional (struct gdbarch
 static int
 arm_decode_miscellaneous (struct gdbarch *gdbarch, uint32_t insn,
 			  struct regcache *regs,
-			  struct displaced_step_closure *dsc)
+			  arm_displaced_step_closure *dsc)
 {
   unsigned int op2 = bits (insn, 4, 6);
   unsigned int op = bits (insn, 21, 22);
@@ -6643,7 +6586,7 @@ arm_decode_miscellaneous (struct gdbarch
 static int
 arm_decode_dp_misc (struct gdbarch *gdbarch, uint32_t insn,
 		    struct regcache *regs,
-		    struct displaced_step_closure *dsc)
+		    arm_displaced_step_closure *dsc)
 {
   if (bit (insn, 25))
     switch (bits (insn, 20, 24))
@@ -6689,7 +6632,7 @@ arm_decode_dp_misc (struct gdbarch *gdba
 static int
 arm_decode_ld_st_word_ubyte (struct gdbarch *gdbarch, uint32_t insn,
 			     struct regcache *regs,
-			     struct displaced_step_closure *dsc)
+			     arm_displaced_step_closure *dsc)
 {
   int a = bit (insn, 25), b = bit (insn, 4);
   uint32_t op1 = bits (insn, 20, 24);
@@ -6725,7 +6668,7 @@ arm_decode_ld_st_word_ubyte (struct gdba
 
 static int
 arm_decode_media (struct gdbarch *gdbarch, uint32_t insn,
-		  struct displaced_step_closure *dsc)
+		  arm_displaced_step_closure *dsc)
 {
   switch (bits (insn, 20, 24))
     {
@@ -6782,7 +6725,7 @@ arm_decode_media (struct gdbarch *gdbarc
 static int
 arm_decode_b_bl_ldmstm (struct gdbarch *gdbarch, uint32_t insn,
 			struct regcache *regs,
-			struct displaced_step_closure *dsc)
+			arm_displaced_step_closure *dsc)
 {
   if (bit (insn, 25))
     return arm_copy_b_bl_blx (gdbarch, insn, regs, dsc);
@@ -6793,7 +6736,7 @@ arm_decode_b_bl_ldmstm (struct gdbarch *
 static int
 arm_decode_ext_reg_ld_st (struct gdbarch *gdbarch, uint32_t insn,
 			  struct regcache *regs,
-			  struct displaced_step_closure *dsc)
+			  arm_displaced_step_closure *dsc)
 {
   unsigned int opcode = bits (insn, 20, 24);
 
@@ -6826,7 +6769,7 @@ arm_decode_ext_reg_ld_st (struct gdbarch
 static int
 thumb2_decode_dp_shift_reg (struct gdbarch *gdbarch, uint16_t insn1,
 			    uint16_t insn2,  struct regcache *regs,
-			    struct displaced_step_closure *dsc)
+			    arm_displaced_step_closure *dsc)
 {
   /* PC is only allowed to be used in instruction MOV.  */
 
@@ -6847,7 +6790,7 @@ thumb2_decode_dp_shift_reg (struct gdbar
 static int
 thumb2_decode_ext_reg_ld_st (struct gdbarch *gdbarch, uint16_t insn1,
 			     uint16_t insn2,  struct regcache *regs,
-			     struct displaced_step_closure *dsc)
+			     arm_displaced_step_closure *dsc)
 {
   unsigned int opcode = bits (insn1, 4, 8);
 
@@ -6882,7 +6825,7 @@ thumb2_decode_ext_reg_ld_st (struct gdba
 
 static int
 arm_decode_svc_copro (struct gdbarch *gdbarch, uint32_t insn,
-		      struct regcache *regs, struct displaced_step_closure *dsc)
+		      struct regcache *regs, arm_displaced_step_closure *dsc)
 {
   unsigned int op1 = bits (insn, 20, 25);
   int op = bit (insn, 4);
@@ -6928,7 +6871,7 @@ arm_decode_svc_copro (struct gdbarch *gd
 static int
 thumb2_decode_svc_copro (struct gdbarch *gdbarch, uint16_t insn1,
 			 uint16_t insn2, struct regcache *regs,
-			 struct displaced_step_closure *dsc)
+			 arm_displaced_step_closure *dsc)
 {
   unsigned int coproc = bits (insn2, 8, 11);
   unsigned int bit_5_8 = bits (insn1, 5, 8);
@@ -6968,7 +6911,7 @@ thumb2_decode_svc_copro (struct gdbarch 
 
 static void
 install_pc_relative (struct gdbarch *gdbarch, struct regcache *regs,
-		     struct displaced_step_closure *dsc, int rd)
+		     arm_displaced_step_closure *dsc, int rd)
 {
   /* ADR Rd, #imm
 
@@ -6986,7 +6929,7 @@ install_pc_relative (struct gdbarch *gdb
 
 static int
 thumb_copy_pc_relative_16bit (struct gdbarch *gdbarch, struct regcache *regs,
-			      struct displaced_step_closure *dsc,
+			      arm_displaced_step_closure *dsc,
 			      int rd, unsigned int imm)
 {
 
@@ -7001,7 +6944,7 @@ thumb_copy_pc_relative_16bit (struct gdb
 static int
 thumb_decode_pc_relative_16bit (struct gdbarch *gdbarch, uint16_t insn,
 				struct regcache *regs,
-				struct displaced_step_closure *dsc)
+				arm_displaced_step_closure *dsc)
 {
   unsigned int rd = bits (insn, 8, 10);
   unsigned int imm8 = bits (insn, 0, 7);
@@ -7017,7 +6960,7 @@ thumb_decode_pc_relative_16bit (struct g
 static int
 thumb_copy_pc_relative_32bit (struct gdbarch *gdbarch, uint16_t insn1,
 			      uint16_t insn2, struct regcache *regs,
-			      struct displaced_step_closure *dsc)
+			      arm_displaced_step_closure *dsc)
 {
   unsigned int rd = bits (insn2, 8, 11);
   /* Since immediate has the same encoding in ADR ADD and SUB, so we simply
@@ -7054,7 +6997,7 @@ thumb_copy_pc_relative_32bit (struct gdb
 static int
 thumb_copy_16bit_ldr_literal (struct gdbarch *gdbarch, uint16_t insn1,
 			      struct regcache *regs,
-			      struct displaced_step_closure *dsc)
+			      arm_displaced_step_closure *dsc)
 {
   unsigned int rt = bits (insn1, 8, 10);
   unsigned int pc;
@@ -7104,7 +7047,7 @@ thumb_copy_16bit_ldr_literal (struct gdb
 static int
 thumb_copy_cbnz_cbz (struct gdbarch *gdbarch, uint16_t insn1,
 		     struct regcache *regs,
-		     struct displaced_step_closure *dsc)
+		     arm_displaced_step_closure *dsc)
 {
   int non_zero = bit (insn1, 11);
   unsigned int imm5 = (bit (insn1, 9) << 6) | (bits (insn1, 3, 7) << 1);
@@ -7142,7 +7085,7 @@ thumb_copy_cbnz_cbz (struct gdbarch *gdb
 static int
 thumb2_copy_table_branch (struct gdbarch *gdbarch, uint16_t insn1,
 			  uint16_t insn2, struct regcache *regs,
-			  struct displaced_step_closure *dsc)
+			  arm_displaced_step_closure *dsc)
 {
   ULONGEST rn_val, rm_val;
   int is_tbh = bit (insn2, 4);
@@ -7185,7 +7128,7 @@ thumb2_copy_table_branch (struct gdbarch
 
 static void
 cleanup_pop_pc_16bit_all (struct gdbarch *gdbarch, struct regcache *regs,
-			  struct displaced_step_closure *dsc)
+			  arm_displaced_step_closure *dsc)
 {
   /* PC <- r7 */
   int val = displaced_read_reg (regs, dsc, 7);
@@ -7203,7 +7146,7 @@ cleanup_pop_pc_16bit_all (struct gdbarch
 static int
 thumb_copy_pop_pc_16bit (struct gdbarch *gdbarch, uint16_t insn1,
 			 struct regcache *regs,
-			 struct displaced_step_closure *dsc)
+			 arm_displaced_step_closure *dsc)
 {
   dsc->u.block.regmask = insn1 & 0x00ff;
 
@@ -7276,7 +7219,7 @@ thumb_copy_pop_pc_16bit (struct gdbarch 
 static void
 thumb_process_displaced_16bit_insn (struct gdbarch *gdbarch, uint16_t insn1,
 				    struct regcache *regs,
-				    struct displaced_step_closure *dsc)
+				    arm_displaced_step_closure *dsc)
 {
   unsigned short op_bit_12_15 = bits (insn1, 12, 15);
   unsigned short op_bit_10_11 = bits (insn1, 10, 11);
@@ -7380,7 +7323,7 @@ static int
 decode_thumb_32bit_ld_mem_hints (struct gdbarch *gdbarch,
 				 uint16_t insn1, uint16_t insn2,
 				 struct regcache *regs,
-				 struct displaced_step_closure *dsc)
+				 arm_displaced_step_closure *dsc)
 {
   int rt = bits (insn2, 12, 15);
   int rn = bits (insn1, 0, 3);
@@ -7459,7 +7402,7 @@ decode_thumb_32bit_ld_mem_hints (struct 
 static void
 thumb_process_displaced_32bit_insn (struct gdbarch *gdbarch, uint16_t insn1,
 				    uint16_t insn2, struct regcache *regs,
-				    struct displaced_step_closure *dsc)
+				    arm_displaced_step_closure *dsc)
 {
   int err = 0;
   unsigned short op = bit (insn2, 15);
@@ -7587,7 +7530,7 @@ thumb_process_displaced_32bit_insn (stru
 static void
 thumb_process_displaced_insn (struct gdbarch *gdbarch, CORE_ADDR from,
 			      struct regcache *regs,
-			      struct displaced_step_closure *dsc)
+			      arm_displaced_step_closure *dsc)
 {
   enum bfd_endian byte_order_for_code = gdbarch_byte_order_for_code (gdbarch);
   uint16_t insn1
@@ -7612,7 +7555,7 @@ thumb_process_displaced_insn (struct gdb
 void
 arm_process_displaced_insn (struct gdbarch *gdbarch, CORE_ADDR from,
 			    CORE_ADDR to, struct regcache *regs,
-			    struct displaced_step_closure *dsc)
+			    arm_displaced_step_closure *dsc)
 {
   int err = 0;
   enum bfd_endian byte_order_for_code = gdbarch_byte_order_for_code (gdbarch);
@@ -7671,7 +7614,7 @@ arm_process_displaced_insn (struct gdbar
 
 void
 arm_displaced_init_closure (struct gdbarch *gdbarch, CORE_ADDR from,
-			    CORE_ADDR to, struct displaced_step_closure *dsc)
+			    CORE_ADDR to, arm_displaced_step_closure *dsc)
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   unsigned int i, len, offset;
@@ -7728,10 +7671,12 @@ arm_displaced_init_closure (struct gdbar
 
 void
 arm_displaced_step_fixup (struct gdbarch *gdbarch,
-			  struct displaced_step_closure *dsc,
+			  struct displaced_step_closure *dsc_,
 			  CORE_ADDR from, CORE_ADDR to,
 			  struct regcache *regs)
 {
+  arm_displaced_step_closure *dsc = (arm_displaced_step_closure *) dsc_;
+
   if (dsc->cleanup)
     dsc->cleanup (gdbarch, regs, dsc);
 
@@ -7782,10 +7727,15 @@ gdb_print_insn_arm (bfd_vma memaddr, dis
   else
     info->symbols = NULL;
 
-  if (info->endian == BFD_ENDIAN_BIG)
-    return print_insn_big_arm (memaddr, info);
-  else
-    return print_insn_little_arm (memaddr, info);
+  /* GDB is able to get bfd_mach from the exe_bfd, info->mach is
+     accurate, so mark USER_SPECIFIED_MACHINE_TYPE bit.  Otherwise,
+     opcodes/arm-dis.c:print_insn reset info->mach, and it will trigger
+     the assert on the mismatch of info->mach and bfd_get_mach (exec_bfd)
+     in default_print_insn.  */
+  if (exec_bfd != NULL)
+    info->flags |= USER_SPECIFIED_MACHINE_TYPE;
+
+  return default_print_insn (memaddr, info);
 }
 
 /* The following define instruction sequences that will cause ARM
@@ -7898,11 +7848,6 @@ arm_breakpoint_kind_from_current_state (
   if (target_read_memory (regcache_read_pc (regcache), buf, 4) == 0)
     {
       struct arm_get_next_pcs next_pcs_ctx;
-      CORE_ADDR pc;
-      int i;
-      VEC (CORE_ADDR) *next_pcs = NULL;
-      struct cleanup *old_chain
-	= make_cleanup (VEC_cleanup (CORE_ADDR), &next_pcs);
 
       arm_get_next_pcs_ctor (&next_pcs_ctx,
 			     &arm_get_next_pcs_ops,
@@ -7911,17 +7856,15 @@ arm_breakpoint_kind_from_current_state (
 			     0,
 			     regcache);
 
-      next_pcs = arm_get_next_pcs (&next_pcs_ctx);
+      std::vector<CORE_ADDR> next_pcs = arm_get_next_pcs (&next_pcs_ctx);
 
       /* If MEMADDR is the next instruction of current pc, do the
 	 software single step computation, and get the thumb mode by
 	 the destination address.  */
-      for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, pc); i++)
+      for (CORE_ADDR pc : next_pcs)
 	{
 	  if (UNMAKE_THUMB_ADDR (pc) == *pcptr)
 	    {
-	      do_cleanups (old_chain);
-
 	      if (IS_THUMB_ADDR (pc))
 		{
 		  *pcptr = MAKE_THUMB_ADDR (*pcptr);
@@ -7931,8 +7874,6 @@ arm_breakpoint_kind_from_current_state (
 		return ARM_BP_KIND_ARM;
 	    }
 	}
-
-      do_cleanups (old_chain);
     }
 
   return arm_breakpoint_kind_from_pc (gdbarch, pcptr);
@@ -7946,7 +7887,7 @@ static void
 arm_extract_return_value (struct type *type, struct regcache *regs,
 			  gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regs);
+  struct gdbarch *gdbarch = regs->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
   if (TYPE_CODE_FLT == TYPE_CODE (type))
@@ -7961,8 +7902,8 @@ arm_extract_return_value (struct type *t
 	    bfd_byte tmpbuf[FP_REGISTER_SIZE];
 
 	    regcache_cooked_read (regs, ARM_F0_REGNUM, tmpbuf);
-	    convert_from_extended (floatformat_from_type (type), tmpbuf,
-				   valbuf, gdbarch_byte_order (gdbarch));
+	    target_float_convert (tmpbuf, arm_ext_type (gdbarch),
+				  valbuf, type);
 	  }
 	  break;
 
@@ -8155,7 +8096,7 @@ static void
 arm_store_return_value (struct type *type, struct regcache *regs,
 			const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regs);
+  struct gdbarch *gdbarch = regs->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
   if (TYPE_CODE (type) == TYPE_CODE_FLT)
@@ -8166,8 +8107,7 @@ arm_store_return_value (struct type *typ
 	{
 	case ARM_FLOAT_FPA:
 
-	  convert_to_extended (floatformat_from_type (type), buf, valbuf,
-			       gdbarch_byte_order (gdbarch));
+	  target_float_convert (valbuf, type, buf, arm_ext_type (gdbarch));
 	  regcache_cooked_write (regs, ARM_F0_REGNUM, buf);
 	  break;
 
@@ -8417,7 +8357,7 @@ arm_skip_stub (struct frame_info *frame,
 }
 
 static void
-set_arm_command (char *args, int from_tty)
+set_arm_command (const char *args, int from_tty)
 {
   printf_unfiltered (_("\
 \"set arm\" must be followed by an apporpriate subcommand.\n"));
@@ -8425,7 +8365,7 @@ set_arm_command (char *args, int from_tt
 }
 
 static void
-show_arm_command (char *args, int from_tty)
+show_arm_command (const char *args, int from_tty)
 {
   cmd_show_list (showarmcmdlist, from_tty, "");
 }
@@ -8447,7 +8387,7 @@ arm_update_current_architecture (void)
 }
 
 static void
-set_fp_model_sfunc (char *args, int from_tty,
+set_fp_model_sfunc (const char *args, int from_tty,
 		    struct cmd_list_element *c)
 {
   int fp_model;
@@ -8484,7 +8424,7 @@ The current ARM floating point model is 
 }
 
 static void
-arm_set_abi (char *args, int from_tty,
+arm_set_abi (const char *args, int from_tty,
 	     struct cmd_list_element *c)
 {
   int arm_abi;
@@ -8545,7 +8485,7 @@ arm_show_force_mode (struct ui_file *fil
    arm disassembly" command, and does that.  */
 
 static void
-set_disassembly_style_sfunc (char *args, int from_tty,
+set_disassembly_style_sfunc (const char *args, int from_tty,
 			     struct cmd_list_element *c)
 {
   /* Convert the short style name into the long style name (eg, reg-names-*)
@@ -8712,7 +8652,7 @@ arm_record_special_symbol (struct gdbarc
 static void
 arm_write_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   regcache_cooked_write_unsigned (regcache, ARM_PC_REGNUM, pc);
 
   /* If necessary, set the T bit.  */
@@ -9602,14 +9542,10 @@ static void arm_record_test (void);
 }
 #endif
 
-extern initialize_file_ftype _initialize_arm_tdep; /* -Wmissing-prototypes */
-
 void
 _initialize_arm_tdep (void)
 {
   long length;
-  const char *setname;
-  const char *setdesc;
   int i, j;
   char regdesc[1024], *rdptr = regdesc;
   size_t rest = sizeof (regdesc);
@@ -9740,7 +9676,7 @@ vfp - VFP co-processor."),
 			   &setdebuglist, &showdebuglist);
 
 #if GDB_SELF_TEST
-  register_self_test (selftests::arm_record_test);
+  selftests::register_test ("arm-record", selftests::arm_record_test);
 #endif
 
 }
@@ -10072,13 +10008,13 @@ arm_record_extension_space (insn_decode_
       && !INSN_RECORDED(arm_insn_r))
     {
       /* Handle MLA(S) and MUL(S).  */
-      if (0 <= insn_op1 && 3 >= insn_op1)
+      if (in_inclusive_range (insn_op1, 0U, 3U))
       {
         record_buf[0] = bits (arm_insn_r->arm_insn, 12, 15);
         record_buf[1] = ARM_PS_REGNUM;
         arm_insn_r->reg_rec_count = 2;
       }
-      else if (4 <= insn_op1 && 15 >= insn_op1)
+      else if (in_inclusive_range (insn_op1, 4U, 15U))
       {
         /* Handle SMLAL(S), SMULL(S), UMLAL(S), UMULL(S).  */
         record_buf[0] = bits (arm_insn_r->arm_insn, 16, 19);
@@ -11774,14 +11710,14 @@ thumb_record_ld_st_reg_offset (insn_deco
       /* Handle load/store register offset.  */
       uint32_t opB = bits (thumb_insn_r->arm_insn, 9, 11);
 
-      if (opB >= 4 && opB <= 7)
+      if (in_inclusive_range (opB, 4U, 7U))
         {
           /* LDR(2), LDRB(2) , LDRH(2), LDRSB, LDRSH.  */
           reg_src1 = bits (thumb_insn_r->arm_insn,0, 2);
           record_buf[0] = reg_src1;
           thumb_insn_r->reg_rec_count = 1;
         }
-      else if (opB >= 0 && opB <= 2)
+      else if (in_inclusive_range (opB, 0U, 2U))
         {
           /* STR(2), STRB(2), STRH(2) .  */
           reg_src1 = bits (thumb_insn_r->arm_insn, 3, 5);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-tdep.h ./gdb/arm-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arm-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Common target dependent code for GDB on ARM systems.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,6 +28,9 @@ struct arm_get_next_pcs;
 struct gdb_get_next_pcs;
 
 #include "arch/arm.h"
+#include "infrun.h"
+
+#include <vector>
 
 /* Say how long FP registers are.  Used for documentation purposes and
    code readability in this header.  IEEE extended doubles are 80
@@ -151,7 +154,7 @@ struct gdbarch_tdep
    sequence) and any scratch words, etc.  */
 #define DISPLACED_MODIFIED_INSNS	8
 
-struct displaced_step_closure
+struct arm_displaced_step_closure : public displaced_step_closure
 {
   ULONGEST tmp[DISPLACED_TEMPS];
   int rd;
@@ -198,7 +201,7 @@ struct displaced_step_closure
       /* If non-NULL, override generic SVC handling (e.g. for a particular
          OS).  */
       int (*copy_svc_os) (struct gdbarch *gdbarch, struct regcache *regs,
-			  struct displaced_step_closure *dsc);
+			  arm_displaced_step_closure *dsc);
     } svc;
   } u;
 
@@ -217,7 +220,7 @@ struct displaced_step_closure
   CORE_ADDR insn_addr;
   CORE_ADDR scratch_base;
   void (*cleanup) (struct gdbarch *, struct regcache *,
-		   struct displaced_step_closure *);
+		   arm_displaced_step_closure *);
 };
 
 /* Values for the WRITE_PC argument to displaced_write_reg.  If the register
@@ -236,16 +239,16 @@ enum pc_write_style
 extern void
   arm_process_displaced_insn (struct gdbarch *gdbarch, CORE_ADDR from,
 			      CORE_ADDR to, struct regcache *regs,
-			      struct displaced_step_closure *dsc);
+			      arm_displaced_step_closure *dsc);
 extern void
   arm_displaced_init_closure (struct gdbarch *gdbarch, CORE_ADDR from,
-			      CORE_ADDR to, struct displaced_step_closure *dsc);
+			      CORE_ADDR to, arm_displaced_step_closure *dsc);
 extern ULONGEST
-  displaced_read_reg (struct regcache *regs, struct displaced_step_closure *dsc,
+  displaced_read_reg (struct regcache *regs, arm_displaced_step_closure *dsc,
 		      int regno);
 extern void
   displaced_write_reg (struct regcache *regs,
-		       struct displaced_step_closure *dsc, int regno,
+		       arm_displaced_step_closure *dsc, int regno,
 		       ULONGEST val, enum pc_write_style write_pc);
 
 CORE_ADDR arm_skip_stub (struct frame_info *, CORE_ADDR);
@@ -259,7 +262,7 @@ CORE_ADDR arm_get_next_pcs_addr_bits_rem
 
 int arm_get_next_pcs_is_thumb (struct arm_get_next_pcs *self);
 
-VEC (CORE_ADDR) *arm_software_single_step (struct regcache *);
+std::vector<CORE_ADDR> arm_software_single_step (struct regcache *);
 int arm_is_thumb (struct regcache *regcache);
 int arm_frame_is_thumb (struct frame_info *frame);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-wince-tdep.c ./gdb/arm-wince-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/arm-wince-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/arm-wince-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Target-dependent code for Windows CE running on ARM processors,
    for GDB.
 
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -154,9 +154,6 @@ arm_wince_osabi_sniffer (bfd *abfd)
   return GDB_OSABI_UNKNOWN;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_arm_wince_tdep (void);
-
 void
 _initialize_arm_wince_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/auto-load.c ./gdb/auto-load.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/auto-load.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/auto-load.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB routines for supporting auto-loaded scripts.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -32,7 +32,6 @@
 #include "cli/cli-cmds.h"
 #include "cli/cli-decode.h"
 #include "cli/cli-setshow.h"
-#include "gdb_vecs.h"
 #include "readline/tilde.h"
 #include "completer.h"
 #include "fnmatch.h"
@@ -40,6 +39,7 @@
 #include "filestuff.h"
 #include "extension.h"
 #include "gdb/section-scripts.h"
+#include <algorithm>
 
 /* The section to look in for auto-loaded scripts (in file formats that
    support sections).
@@ -139,7 +139,7 @@ static char *auto_load_dir;
 /* "set" command for the auto_load_dir configuration variable.  */
 
 static void
-set_auto_load_dir (char *args, int from_tty, struct cmd_list_element *c)
+set_auto_load_dir (const char *args, int from_tty, struct cmd_list_element *c)
 {
   /* Setting the variable to "" resets it to the compile time defaults.  */
   if (auto_load_dir[0] == '\0')
@@ -218,7 +218,7 @@ auto_load_safe_path_vec_update (void)
     {
       char *dir = VEC_index (char_ptr, auto_load_safe_path_vec, ix);
       char *expanded = tilde_expand (dir);
-      char *real_path = gdb_realpath (expanded);
+      gdb::unique_xmalloc_ptr<char> real_path = gdb_realpath (expanded);
 
       /* Ensure the current entry is at least tilde_expand-ed.  */
       VEC_replace (char_ptr, auto_load_safe_path_vec, ix, expanded);
@@ -238,16 +238,15 @@ auto_load_safe_path_vec_update (void)
       xfree (dir);
 
       /* If gdb_realpath returns a different content, append it.  */
-      if (strcmp (real_path, expanded) == 0)
-	xfree (real_path);
-      else
+      if (strcmp (real_path.get (), expanded) != 0)
 	{
-	  VEC_safe_push (char_ptr, auto_load_safe_path_vec, real_path);
-
 	  if (debug_auto_load)
 	    fprintf_unfiltered (gdb_stdlog,
 				_("auto-load: And canonicalized as \"%s\".\n"),
-				real_path);
+				real_path.get ());
+
+	  VEC_safe_push (char_ptr, auto_load_safe_path_vec,
+			 real_path.release ());
 	}
     }
 }
@@ -263,7 +262,8 @@ auto_load_gdb_datadir_changed (void)
 /* "set" command for the auto_load_safe_path configuration variable.  */
 
 static void
-set_auto_load_safe_path (char *args, int from_tty, struct cmd_list_element *c)
+set_auto_load_safe_path (const char *args,
+			 int from_tty, struct cmd_list_element *c)
 {
   /* Setting the variable to "" resets it to the compile time defaults.  */
   if (auto_load_safe_path[0] == '\0')
@@ -302,7 +302,7 @@ show_auto_load_safe_path (struct ui_file
    variable.  */
 
 static void
-add_auto_load_safe_path (char *args, int from_tty)
+add_auto_load_safe_path (const char *args, int from_tty)
 {
   char *s;
 
@@ -323,7 +323,7 @@ Use 'set auto-load safe-path /' for disa
    variable.  */
 
 static void
-add_auto_load_dir (char *args, int from_tty)
+add_auto_load_dir (const char *args, int from_tty)
 {
   char *s;
 
@@ -419,12 +419,11 @@ filename_is_in_pattern (const char *file
 /* Return 1 if FILENAME belongs to one of directory components of
    AUTO_LOAD_SAFE_PATH_VEC.  Return 0 otherwise.
    auto_load_safe_path_vec_update is never called.
-   *FILENAME_REALP may be updated by gdb_realpath of FILENAME - it has to be
-   freed by the caller.  */
+   *FILENAME_REALP may be updated by gdb_realpath of FILENAME.  */
 
 static int
 filename_is_in_auto_load_safe_path_vec (const char *filename,
-					char **filename_realp)
+					gdb::unique_xmalloc_ptr<char> *filename_realp)
 {
   char *pattern;
   int ix;
@@ -439,17 +438,17 @@ filename_is_in_auto_load_safe_path_vec (
       if (*filename_realp == NULL)
 	{
 	  *filename_realp = gdb_realpath (filename);
-	  if (debug_auto_load && strcmp (*filename_realp, filename) != 0)
+	  if (debug_auto_load && strcmp (filename_realp->get (), filename) != 0)
 	    fprintf_unfiltered (gdb_stdlog,
 				_("auto-load: Resolved "
 				  "file \"%s\" as \"%s\".\n"),
-				filename, *filename_realp);
+				filename, filename_realp->get ());
 	}
 
-      if (strcmp (*filename_realp, filename) != 0)
+      if (strcmp (filename_realp->get (), filename) != 0)
 	for (ix = 0;
 	     VEC_iterate (char_ptr, auto_load_safe_path_vec, ix, pattern); ++ix)
-	  if (filename_is_in_pattern (*filename_realp, pattern))
+	  if (filename_is_in_pattern (filename_realp->get (), pattern))
 	    break;
     }
 
@@ -476,8 +475,7 @@ filename_is_in_auto_load_safe_path_vec (
 int
 file_is_auto_load_safe (const char *filename, const char *debug_fmt, ...)
 {
-  char *filename_real = NULL;
-  struct cleanup *back_to;
+  gdb::unique_xmalloc_ptr<char> filename_real;
   static int advice_printed = 0;
 
   if (debug_auto_load)
@@ -489,34 +487,24 @@ file_is_auto_load_safe (const char *file
       va_end (debug_args);
     }
 
-  back_to = make_cleanup (free_current_contents, &filename_real);
-
   if (filename_is_in_auto_load_safe_path_vec (filename, &filename_real))
-    {
-      do_cleanups (back_to);
-      return 1;
-    }
+    return 1;
 
   auto_load_safe_path_vec_update ();
   if (filename_is_in_auto_load_safe_path_vec (filename, &filename_real))
-    {
-      do_cleanups (back_to);
-      return 1;
-    }
+    return 1;
 
   warning (_("File \"%s\" auto-loading has been declined by your "
 	     "`auto-load safe-path' set to \"%s\"."),
-	   filename_real, auto_load_safe_path);
+	   filename_real.get (), auto_load_safe_path);
 
   if (!advice_printed)
     {
       const char *homedir = getenv ("HOME");
-      char *homeinit;
 
       if (homedir == NULL)
 	homedir = "$HOME";
-      homeinit = xstrprintf ("%s/%s", homedir, gdbinit);
-      make_cleanup (xfree, homeinit);
+      std::string homeinit = string_printf ("%s/%s", homedir, gdbinit);
 
       printf_filtered (_("\
 To enable execution of this file add\n\
@@ -528,11 +516,11 @@ line to your configuration file \"%s\".\
 For more information about this security protection see the\n\
 \"Auto-loading safe path\" section in the GDB manual.  E.g., run from the shell:\n\
 \tinfo \"(gdb)Auto-loading safe path\"\n"),
-		       filename_real, homeinit, homeinit);
+		       filename_real.get (),
+		       homeinit.c_str (), homeinit.c_str ());
       advice_printed = 1;
     }
 
-  do_cleanups (back_to);
   return 0;
 }
 
@@ -786,7 +774,6 @@ auto_load_objfile_script_1 (struct objfi
 {
   char *filename, *debugfile;
   int len, retval;
-  FILE *input;
   struct cleanup *cleanups;
   const char *suffix = ext_lang_auto_load_suffix (language);
 
@@ -797,7 +784,7 @@ auto_load_objfile_script_1 (struct objfi
 
   cleanups = make_cleanup (xfree, filename);
 
-  input = gdb_fopen_cloexec (filename, "r");
+  gdb_file_up input = gdb_fopen_cloexec (filename, "r");
   debugfile = filename;
   if (debug_auto_load)
     fprintf_unfiltered (gdb_stdlog, _("auto-load: Attempted file \"%s\" %s.\n"),
@@ -845,8 +832,6 @@ auto_load_objfile_script_1 (struct objfi
       int is_safe;
       struct auto_load_pspace_info *pspace_info;
 
-      make_cleanup_fclose (input);
-
       is_safe
 	= file_is_auto_load_safe (debugfile,
 				  _("auto-load: Loading %s script \"%s\""
@@ -875,7 +860,7 @@ auto_load_objfile_script_1 (struct objfi
 	     compiled in.  And the extension language is required to implement
 	     this function.  */
 	  gdb_assert (sourcer != NULL);
-	  sourcer (language, objfile, input, debugfile);
+	  sourcer (language, objfile, input.get (), debugfile);
 	}
 
       retval = 1;
@@ -894,30 +879,28 @@ void
 auto_load_objfile_script (struct objfile *objfile,
 			  const struct extension_language_defn *language)
 {
-  char *realname = gdb_realpath (objfile_name (objfile));
-  struct cleanup *cleanups = make_cleanup (xfree, realname);
+  gdb::unique_xmalloc_ptr<char> realname
+    = gdb_realpath (objfile_name (objfile));
 
-  if (!auto_load_objfile_script_1 (objfile, realname, language))
+  if (!auto_load_objfile_script_1 (objfile, realname.get (), language))
     {
       /* For Windows/DOS .exe executables, strip the .exe suffix, so that
 	 FOO-gdb.gdb could be used for FOO.exe, and try again.  */
 
-      size_t len = strlen (realname);
+      size_t len = strlen (realname.get ());
       const size_t lexe = sizeof (".exe") - 1;
 
-      if (len > lexe && strcasecmp (realname + len - lexe, ".exe") == 0)
+      if (len > lexe && strcasecmp (realname.get () + len - lexe, ".exe") == 0)
 	{
 	  len -= lexe;
-	  realname[len] = '\0';
+	  realname.get ()[len] = '\0';
 	  if (debug_auto_load)
 	    fprintf_unfiltered (gdb_stdlog, _("auto-load: Stripped .exe suffix, "
 					      "retrying with \"%s\".\n"),
-				realname);
-	  auto_load_objfile_script_1 (objfile, realname, language);
+				realname.get ());
+	  auto_load_objfile_script_1 (objfile, realname.get (), language);
 	}
     }
-
-  do_cleanups (cleanups);
 }
 
 /* Subroutine of source_section_scripts to simplify it.
@@ -931,10 +914,7 @@ source_script_file (struct auto_load_psp
 		    const char *section_name, unsigned int offset,
 		    const char *file)
 {
-  FILE *stream;
-  char *full_path;
-  int opened, in_hash_table;
-  struct cleanup *cleanups;
+  int in_hash_table;
   objfile_script_sourcer_func *sourcer;
 
   /* Skip this script if support is not compiled in.  */
@@ -956,27 +936,22 @@ source_script_file (struct auto_load_psp
       return;
     }
 
-  opened = find_and_open_script (file, 1 /*search_path*/,
-				 &stream, &full_path);
+  gdb::optional<open_script> opened = find_and_open_script (file,
+							    1 /*search_path*/);
 
-  cleanups = make_cleanup (null_cleanup, NULL);
   if (opened)
     {
-      make_cleanup_fclose (stream);
-      make_cleanup (xfree, full_path);
-
-      if (!file_is_auto_load_safe (full_path,
+      if (!file_is_auto_load_safe (opened->full_path.get (),
 				   _("auto-load: Loading %s script "
 				     "\"%s\" from section \"%s\" of "
 				     "objfile \"%s\".\n"),
-				   ext_lang_name (language), full_path,
+				   ext_lang_name (language),
+				   opened->full_path.get (),
 				   section_name, objfile_name (objfile)))
-	opened = 0;
+	opened.reset ();
     }
   else
     {
-      full_path = NULL;
-
       /* If one script isn't found it's not uncommon for more to not be
 	 found either.  We don't want to print a message for each script,
 	 too much noise.  Instead, we print the warning once and tell the
@@ -989,14 +964,16 @@ source_script_file (struct auto_load_psp
 					    section_name, offset);
     }
 
-  in_hash_table = maybe_add_script_file (pspace_info, opened, file, full_path,
+  in_hash_table = maybe_add_script_file (pspace_info, bool (opened), file,
+					 (opened
+					  ? opened->full_path.get ()
+					  : NULL),
 					 language);
 
   /* If this file is not currently loaded, load it.  */
   if (opened && !in_hash_table)
-    sourcer (language, objfile, stream, full_path);
-
-  do_cleanups (cleanups);
+    sourcer (language, objfile, opened->stream.get (),
+	     opened->full_path.get ());
 }
 
 /* Subroutine of source_section_scripts to simplify it.
@@ -1236,13 +1213,14 @@ auto_load_new_objfile (struct objfile *o
 
 /* Collect scripts to be printed in a vec.  */
 
-typedef struct loaded_script *loaded_script_ptr;
-DEF_VEC_P (loaded_script_ptr);
-
 struct collect_matching_scripts_data
 {
-  VEC (loaded_script_ptr) **scripts_p;
+  collect_matching_scripts_data (std::vector<loaded_script *> *scripts_p_,
+				 const extension_language_defn *language_)
+  : scripts_p (scripts_p_), language (language_)
+  {}
 
+  std::vector<loaded_script *> *scripts_p;
   const struct extension_language_defn *language;
 };
 
@@ -1257,7 +1235,7 @@ collect_matching_scripts (void **slot, v
     = (struct collect_matching_scripts_data *) info;
 
   if (script->language == data->language && re_exec (script->name))
-    VEC_safe_push (loaded_script_ptr, *data->scripts_p, script);
+    data->scripts_p->push_back (script);
 
   return 1;
 }
@@ -1268,9 +1246,8 @@ static void
 print_script (struct loaded_script *script)
 {
   struct ui_out *uiout = current_uiout;
-  struct cleanup *chain;
 
-  chain = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+  ui_out_emit_tuple tuple_emitter (uiout, NULL);
 
   uiout->field_string ("loaded", script->loaded ? "Yes" : "No");
   uiout->field_string ("script", script->name);
@@ -1284,19 +1261,14 @@ print_script (struct loaded_script *scri
       uiout->field_string ("full_path", script->full_path);
       uiout->text ("\n");
     }
-
-  do_cleanups (chain);
 }
 
 /* Helper for info_auto_load_scripts to sort the scripts by name.  */
 
-static int
-sort_scripts_by_name (const void *ap, const void *bp)
+static bool
+sort_scripts_by_name (loaded_script *a, loaded_script *b)
 {
-  const struct loaded_script *a = *(const struct loaded_script **) ap;
-  const struct loaded_script *b = *(const struct loaded_script **) bp;
-
-  return FILENAME_CMP (a->name, b->name);
+  return FILENAME_CMP (a->name, b->name) < 0;
 }
 
 /* Special internal GDB value of auto_load_info_scripts's PATTERN identify
@@ -1308,15 +1280,9 @@ char auto_load_info_scripts_pattern_nl[]
    Print SCRIPTS.  */
 
 static void
-print_scripts (VEC (loaded_script_ptr) *scripts)
+print_scripts (const std::vector<loaded_script *> &scripts)
 {
-  int i;
-  loaded_script_ptr script;
-
-  qsort (VEC_address (loaded_script_ptr, scripts),
-	 VEC_length (loaded_script_ptr, scripts),
-	 sizeof (loaded_script_ptr), sort_scripts_by_name);
-  for (i = 0; VEC_iterate (loaded_script_ptr, scripts, i, script); ++i)
+  for (loaded_script *script : scripts)
     print_script (script);
 }
 
@@ -1325,14 +1291,11 @@ print_scripts (VEC (loaded_script_ptr) *
    PATTERN.  FROM_TTY is the usual GDB boolean for user interactivity.  */
 
 void
-auto_load_info_scripts (char *pattern, int from_tty,
+auto_load_info_scripts (const char *pattern, int from_tty,
 			const struct extension_language_defn *language)
 {
   struct ui_out *uiout = current_uiout;
   struct auto_load_pspace_info *pspace_info;
-  struct cleanup *script_chain;
-  VEC (loaded_script_ptr) *script_files, *script_texts;
-  int nr_scripts;
 
   dont_repeat ();
 
@@ -1354,50 +1317,50 @@ auto_load_info_scripts (char *pattern, i
      Plus we want to sort the scripts by name.
      So first traverse the hash table collecting the matching scripts.  */
 
-  script_files = VEC_alloc (loaded_script_ptr, 10);
-  script_texts = VEC_alloc (loaded_script_ptr, 10);
-  script_chain = make_cleanup (VEC_cleanup (loaded_script_ptr), &script_files);
-  make_cleanup (VEC_cleanup (loaded_script_ptr), &script_texts);
+  std::vector<loaded_script *> script_files, script_texts;
 
   if (pspace_info != NULL && pspace_info->loaded_script_files != NULL)
     {
-      struct collect_matching_scripts_data data = { &script_files, language };
+      collect_matching_scripts_data data (&script_files, language);
 
       /* Pass a pointer to scripts as VEC_safe_push can realloc space.  */
       htab_traverse_noresize (pspace_info->loaded_script_files,
 			      collect_matching_scripts, &data);
+
+      std::sort (script_files.begin (), script_files.end (),
+		 sort_scripts_by_name);
     }
 
   if (pspace_info != NULL && pspace_info->loaded_script_texts != NULL)
     {
-      struct collect_matching_scripts_data data = { &script_texts, language };
+      collect_matching_scripts_data data (&script_texts, language);
 
       /* Pass a pointer to scripts as VEC_safe_push can realloc space.  */
       htab_traverse_noresize (pspace_info->loaded_script_texts,
 			      collect_matching_scripts, &data);
+
+      std::sort (script_texts.begin (), script_texts.end (),
+		 sort_scripts_by_name);
     }
 
-  nr_scripts = (VEC_length (loaded_script_ptr, script_files)
-		+ VEC_length (loaded_script_ptr, script_texts));
+  int nr_scripts = script_files.size () + script_texts.size ();
 
   /* Table header shifted right by preceding "gdb-scripts:  " would not match
      its columns.  */
   if (nr_scripts > 0 && pattern == auto_load_info_scripts_pattern_nl)
     uiout->text ("\n");
 
-  /* Note: This creates a cleanup to output the table end marker.  */
-  make_cleanup_ui_out_table_begin_end (uiout, 2, nr_scripts,
-				       "AutoLoadedScriptsTable");
-
-  uiout->table_header (7, ui_left, "loaded", "Loaded");
-  uiout->table_header (70, ui_left, "script", "Script");
-  uiout->table_body ();
-
-  print_scripts (script_files);
-  print_scripts (script_texts);
-
-  /* Finish up the table before checking for no matching scripts.  */
-  do_cleanups (script_chain);
+  {
+    ui_out_emit_table table_emitter (uiout, 2, nr_scripts,
+				     "AutoLoadedScriptsTable");
+
+    uiout->table_header (7, ui_left, "loaded", "Loaded");
+    uiout->table_header (70, ui_left, "script", "Script");
+    uiout->table_body ();
+
+    print_scripts (script_files);
+    print_scripts (script_texts);
+  }
 
   if (nr_scripts == 0)
     {
@@ -1411,7 +1374,7 @@ auto_load_info_scripts (char *pattern, i
 /* Wrapper for "info auto-load gdb-scripts".  */
 
 static void
-info_auto_load_gdb_scripts (char *pattern, int from_tty)
+info_auto_load_gdb_scripts (const char *pattern, int from_tty)
 {
   auto_load_info_scripts (pattern, from_tty, &extension_language_gdb);
 }
@@ -1419,7 +1382,7 @@ info_auto_load_gdb_scripts (char *patter
 /* Implement 'info auto-load local-gdbinit'.  */
 
 static void
-info_auto_load_local_gdbinit (char *args, int from_tty)
+info_auto_load_local_gdbinit (const char *args, int from_tty)
 {
   if (auto_load_local_gdbinit_pathname == NULL)
     printf_filtered (_("Local .gdbinit file was not found.\n"));
@@ -1478,7 +1441,7 @@ Use `info auto-load %s-scripts [REGEXP]'
 /* The only valid "set auto-load" argument is off|0|no|disable.  */
 
 static void
-set_auto_load_cmd (char *args, int from_tty)
+set_auto_load_cmd (const char *args, int from_tty)
 {
   struct cmd_list_element *list;
   size_t length;
@@ -1527,7 +1490,7 @@ automatic loading of Python scripts."),
    "show auto-load " settings.  */
 
 static void
-show_auto_load_cmd (char *args, int from_tty)
+show_auto_load_cmd (const char *args, int from_tty)
 {
   cmd_show_list (*auto_load_show_cmdlist_get (), from_tty, "");
 }
@@ -1555,18 +1518,16 @@ automatic loading of Python scripts."),
    newlines at proper places.  */
 
 static void
-info_auto_load_cmd (char *args, int from_tty)
+info_auto_load_cmd (const char *args, int from_tty)
 {
   struct cmd_list_element *list;
-  struct cleanup *infolist_chain;
   struct ui_out *uiout = current_uiout;
 
-  infolist_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "infolist");
+  ui_out_emit_tuple tuple_emitter (uiout, "infolist");
 
   for (list = *auto_load_info_cmdlist_get (); list != NULL; list = list->next)
     {
-      struct cleanup *option_chain
-	= make_cleanup_ui_out_tuple_begin_end (uiout, "option");
+      ui_out_emit_tuple option_emitter (uiout, "option");
 
       gdb_assert (!list->prefixlist);
       gdb_assert (list->type == not_set_cmd);
@@ -1574,13 +1535,7 @@ info_auto_load_cmd (char *args, int from
       uiout->field_string ("name", list->name);
       uiout->text (":  ");
       cmd_func (list, auto_load_info_scripts_pattern_nl, from_tty);
-
-      /* Close the tuple.  */
-      do_cleanups (option_chain);
     }
-
-  /* Close the tuple.  */
-  do_cleanups (infolist_chain);
 }
 
 /* Initialize "info auto-load " commands prefix and return it.  */
@@ -1601,8 +1556,6 @@ found and/or loaded."),
   return &retval;
 }
 
-void _initialize_auto_load (void);
-
 void
 _initialize_auto_load (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/auto-load.h ./gdb/auto-load.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/auto-load.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/auto-load.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB routines for supporting auto-loaded scripts.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -37,7 +37,7 @@ extern void auto_load_objfile_script (st
 				      const struct extension_language_defn *);
 extern void load_auto_scripts_for_objfile (struct objfile *objfile);
 extern char auto_load_info_scripts_pattern_nl[];
-extern void auto_load_info_scripts (char *pattern, int from_tty,
+extern void auto_load_info_scripts (const char *pattern, int from_tty,
 				    const struct extension_language_defn *);
 
 extern struct cmd_list_element **auto_load_set_cmdlist_get (void);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/auxv.c ./gdb/auxv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/auxv.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/auxv.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Auxiliary vector support for GDB, the GNU debugger.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -552,7 +552,7 @@ fprint_target_auxv (struct ui_file *file
 }
 
 static void
-info_auxv_command (char *cmd, int from_tty)
+info_auxv_command (const char *cmd, int from_tty)
 {
   if (! target_has_stack)
     error (_("The program has no auxiliary information now."));
@@ -567,9 +567,6 @@ info_auxv_command (char *cmd, int from_t
     }
 }
 
-
-extern initialize_file_ftype _initialize_auxv; /* -Wmissing-prototypes; */
-
 void
 _initialize_auxv (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/auxv.h ./gdb/auxv.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/auxv.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/auxv.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Auxiliary vector support for GDB, the GNU debugger.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/avr-tdep.c ./gdb/avr-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/avr-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/avr-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Atmel AVR, for GDB.
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -1453,14 +1453,15 @@ avr_gdbarch_init (struct gdbarch_info in
     }
 
   /* None found, create a new architecture from the information provided.  */
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
   
   tdep->call_length = call_length;
 
   /* Create a type for PC.  We can't use builtin types here, as they may not
      be defined.  */
-  tdep->void_type = arch_type (gdbarch, TYPE_CODE_VOID, 1, "void");
+  tdep->void_type = arch_type (gdbarch, TYPE_CODE_VOID, TARGET_CHAR_BIT,
+			       "void");
   tdep->func_void_type = make_function_type (tdep->void_type, NULL);
   tdep->pc_type = arch_pointer_type (gdbarch, 4 * TARGET_CHAR_BIT, NULL,
 				     tdep->func_void_type);
@@ -1499,7 +1500,6 @@ avr_gdbarch_init (struct gdbarch_info in
   set_gdbarch_pseudo_register_write (gdbarch, avr_pseudo_register_write);
 
   set_gdbarch_return_value (gdbarch, avr_return_value);
-  set_gdbarch_print_insn (gdbarch, print_insn_avr);
 
   set_gdbarch_push_dummy_call (gdbarch, avr_push_dummy_call);
 
@@ -1546,7 +1546,7 @@ avr_gdbarch_init (struct gdbarch_info in
    All io registers are 8-bit.  */
 
 static void
-avr_io_reg_read_command (char *args, int from_tty)
+avr_io_reg_read_command (const char *args, int from_tty)
 {
   LONGEST bufsiz = 0;
   gdb_byte *buf;
@@ -1616,8 +1616,6 @@ avr_io_reg_read_command (char *args, int
     }
 }
 
-extern initialize_file_ftype _initialize_avr_tdep; /* -Wmissing-prototypes */
-
 void
 _initialize_avr_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ax_cxx_compile_stdcxx.m4 ./gdb/ax_cxx_compile_stdcxx.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ax_cxx_compile_stdcxx.m4	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ax_cxx_compile_stdcxx.m4	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Free Software Foundation, Inc.
+# Copyright (c) 2016-2018 Free Software Foundation, Inc.
 #
 # Originally based on the AX_CXX_COMPILE_STDCXX macro found at the url
 # below.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ax-gdb.c ./gdb/ax-gdb.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ax-gdb.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ax-gdb.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB-specific functions for operating on agent expressions.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -42,7 +42,7 @@
 #include "linespec.h"
 #include "location.h"
 #include "objfiles.h"
-
+#include "typeprint.h"
 #include "valprint.h"
 #include "c-lang.h"
 
@@ -77,8 +77,7 @@ static struct value *const_var_ref (stru
 static struct value *const_expr (union exp_element **pc);
 static struct value *maybe_const_expr (union exp_element **pc);
 
-static void gen_traced_pop (struct gdbarch *, struct agent_expr *,
-			    struct axs_value *);
+static void gen_traced_pop (struct agent_expr *, struct axs_value *);
 
 static void gen_sign_extend (struct agent_expr *, struct type *);
 static void gen_extend (struct agent_expr *, struct type *);
@@ -86,31 +85,28 @@ static void gen_fetch (struct agent_expr
 static void gen_left_shift (struct agent_expr *, int);
 
 
-static void gen_frame_args_address (struct gdbarch *, struct agent_expr *);
-static void gen_frame_locals_address (struct gdbarch *, struct agent_expr *);
+static void gen_frame_args_address (struct agent_expr *);
+static void gen_frame_locals_address (struct agent_expr *);
 static void gen_offset (struct agent_expr *ax, int offset);
 static void gen_sym_offset (struct agent_expr *, struct symbol *);
-static void gen_var_ref (struct gdbarch *, struct agent_expr *ax,
-			 struct axs_value *value, struct symbol *var);
+static void gen_var_ref (struct agent_expr *ax, struct axs_value *value,
+			 struct symbol *var);
 
 
 static void gen_int_literal (struct agent_expr *ax,
 			     struct axs_value *value,
 			     LONGEST k, struct type *type);
 
-static void gen_usual_unary (struct expression *exp, struct agent_expr *ax,
-			     struct axs_value *value);
+static void gen_usual_unary (struct agent_expr *ax, struct axs_value *value);
 static int type_wider_than (struct type *type1, struct type *type2);
 static struct type *max_type (struct type *type1, struct type *type2);
 static void gen_conversion (struct agent_expr *ax,
 			    struct type *from, struct type *to);
 static int is_nontrivial_conversion (struct type *from, struct type *to);
-static void gen_usual_arithmetic (struct expression *exp,
-				  struct agent_expr *ax,
+static void gen_usual_arithmetic (struct agent_expr *ax,
 				  struct axs_value *value1,
 				  struct axs_value *value2);
-static void gen_integral_promotions (struct expression *exp,
-				     struct agent_expr *ax,
+static void gen_integral_promotions (struct agent_expr *ax,
 				     struct axs_value *value);
 static void gen_cast (struct agent_expr *ax,
 		      struct axs_value *value, struct type *type);
@@ -133,27 +129,23 @@ static void gen_binop (struct agent_expr
 static void gen_logical_not (struct agent_expr *ax, struct axs_value *value,
 			     struct type *result_type);
 static void gen_complement (struct agent_expr *ax, struct axs_value *value);
-static void gen_deref (struct agent_expr *, struct axs_value *);
-static void gen_address_of (struct agent_expr *, struct axs_value *);
-static void gen_bitfield_ref (struct expression *exp, struct agent_expr *ax,
-			      struct axs_value *value,
+static void gen_deref (struct axs_value *);
+static void gen_address_of (struct axs_value *);
+static void gen_bitfield_ref (struct agent_expr *ax, struct axs_value *value,
 			      struct type *type, int start, int end);
-static void gen_primitive_field (struct expression *exp,
-				 struct agent_expr *ax,
+static void gen_primitive_field (struct agent_expr *ax,
 				 struct axs_value *value,
 				 int offset, int fieldno, struct type *type);
-static int gen_struct_ref_recursive (struct expression *exp,
-				     struct agent_expr *ax,
+static int gen_struct_ref_recursive (struct agent_expr *ax,
 				     struct axs_value *value,
 				     const char *field, int offset,
 				     struct type *type);
-static void gen_struct_ref (struct expression *exp, struct agent_expr *ax,
+static void gen_struct_ref (struct agent_expr *ax,
 			    struct axs_value *value,
 			    const char *field,
 			    const char *operator_name,
 			    const char *operand_name);
-static void gen_static_field (struct gdbarch *gdbarch,
-			      struct agent_expr *ax, struct axs_value *value,
+static void gen_static_field (struct agent_expr *ax, struct axs_value *value,
 			      struct type *type, int fieldno);
 static void gen_repeat (struct expression *exp, union exp_element **pc,
 			struct agent_expr *ax, struct axs_value *value);
@@ -166,8 +158,6 @@ static void gen_expr_binop_rest (struct 
 				 struct axs_value *value,
 				 struct axs_value *value1,
 				 struct axs_value *value2);
-
-static void agent_command (char *exp, int from_tty);
 
 
 /* Detecting constant expressions.  */
@@ -318,8 +308,7 @@ maybe_const_expr (union exp_element **pc
    classes, and generate tracing bytecodes for each.  */
 
 static void
-gen_trace_static_fields (struct gdbarch *gdbarch,
-			 struct agent_expr *ax,
+gen_trace_static_fields (struct agent_expr *ax,
 			 struct type *type)
 {
   int i, nbases = TYPE_N_BASECLASSES (type);
@@ -331,7 +320,7 @@ gen_trace_static_fields (struct gdbarch 
     {
       if (field_is_static (&TYPE_FIELD (type, i)))
 	{
-	  gen_static_field (gdbarch, ax, &value, type, i);
+	  gen_static_field (ax, &value, type, i);
 	  if (value.optimized_out)
 	    continue;
 	  switch (value.kind)
@@ -361,7 +350,7 @@ gen_trace_static_fields (struct gdbarch 
     {
       struct type *basetype = check_typedef (TYPE_BASECLASS (type, i));
 
-      gen_trace_static_fields (gdbarch, ax, basetype);
+      gen_trace_static_fields (ax, basetype);
     }
 }
 
@@ -369,8 +358,7 @@ gen_trace_static_fields (struct gdbarch 
    the value.  Useful on the left side of a comma, and at the end of
    an expression being used for tracing.  */
 static void
-gen_traced_pop (struct gdbarch *gdbarch,
-		struct agent_expr *ax, struct axs_value *value)
+gen_traced_pop (struct agent_expr *ax, struct axs_value *value)
 {
   int string_trace = 0;
   if (ax->trace_string
@@ -443,7 +431,7 @@ gen_traced_pop (struct gdbarch *gdbarch,
   if (ax->tracing
       && (TYPE_CODE (value->type) == TYPE_CODE_STRUCT
 	  || TYPE_CODE (value->type) == TYPE_CODE_UNION))
-    gen_trace_static_fields (gdbarch, ax, value->type);
+    gen_trace_static_fields (ax, value->type);
 }
 
 
@@ -562,12 +550,12 @@ gen_left_shift (struct agent_expr *ax, i
 /* Generate code to push the base address of the argument portion of
    the top stack frame.  */
 static void
-gen_frame_args_address (struct gdbarch *gdbarch, struct agent_expr *ax)
+gen_frame_args_address (struct agent_expr *ax)
 {
   int frame_reg;
   LONGEST frame_offset;
 
-  gdbarch_virtual_frame_pointer (gdbarch,
+  gdbarch_virtual_frame_pointer (ax->gdbarch,
 				 ax->scope, &frame_reg, &frame_offset);
   ax_reg (ax, frame_reg);
   gen_offset (ax, frame_offset);
@@ -577,12 +565,12 @@ gen_frame_args_address (struct gdbarch *
 /* Generate code to push the base address of the locals portion of the
    top stack frame.  */
 static void
-gen_frame_locals_address (struct gdbarch *gdbarch, struct agent_expr *ax)
+gen_frame_locals_address (struct agent_expr *ax)
 {
   int frame_reg;
   LONGEST frame_offset;
 
-  gdbarch_virtual_frame_pointer (gdbarch,
+  gdbarch_virtual_frame_pointer (ax->gdbarch,
 				 ax->scope, &frame_reg, &frame_offset);
   ax_reg (ax, frame_reg);
   gen_offset (ax, frame_offset);
@@ -627,8 +615,7 @@ gen_sym_offset (struct agent_expr *ax, s
    symbol VAR.  Set VALUE to describe the result.  */
 
 static void
-gen_var_ref (struct gdbarch *gdbarch, struct agent_expr *ax,
-	     struct axs_value *value, struct symbol *var)
+gen_var_ref (struct agent_expr *ax, struct axs_value *value, struct symbol *var)
 {
   /* Dereference any typedefs.  */
   value->type = check_typedef (SYMBOL_TYPE (var));
@@ -636,7 +623,7 @@ gen_var_ref (struct gdbarch *gdbarch, st
 
   if (SYMBOL_COMPUTED_OPS (var) != NULL)
     {
-      SYMBOL_COMPUTED_OPS (var)->tracepoint_var_ref (var, gdbarch, ax, value);
+      SYMBOL_COMPUTED_OPS (var)->tracepoint_var_ref (var, ax, value);
       return;
     }
 
@@ -666,22 +653,22 @@ gen_var_ref (struct gdbarch *gdbarch, st
       break;
 
     case LOC_ARG:		/* var lives in argument area of frame */
-      gen_frame_args_address (gdbarch, ax);
+      gen_frame_args_address (ax);
       gen_sym_offset (ax, var);
       value->kind = axs_lvalue_memory;
       break;
 
     case LOC_REF_ARG:		/* As above, but the frame slot really
 				   holds the address of the variable.  */
-      gen_frame_args_address (gdbarch, ax);
+      gen_frame_args_address (ax);
       gen_sym_offset (ax, var);
       /* Don't assume any particular pointer size.  */
-      gen_fetch (ax, builtin_type (gdbarch)->builtin_data_ptr);
+      gen_fetch (ax, builtin_type (ax->gdbarch)->builtin_data_ptr);
       value->kind = axs_lvalue_memory;
       break;
 
     case LOC_LOCAL:		/* var lives in locals area of frame */
-      gen_frame_locals_address (gdbarch, ax);
+      gen_frame_locals_address (ax);
       gen_sym_offset (ax, var);
       value->kind = axs_lvalue_memory;
       break;
@@ -701,7 +688,8 @@ gen_var_ref (struct gdbarch *gdbarch, st
          this as an lvalue or rvalue, the caller will generate the
          right code.  */
       value->kind = axs_lvalue_register;
-      value->u.reg = SYMBOL_REGISTER_OPS (var)->register_number (var, gdbarch);
+      value->u.reg
+	= SYMBOL_REGISTER_OPS (var)->register_number (var, ax->gdbarch);
       break;
 
       /* A lot like LOC_REF_ARG, but the pointer lives directly in a
@@ -709,7 +697,8 @@ gen_var_ref (struct gdbarch *gdbarch, st
          because it's just like any other case where the thing
 	 has a real address.  */
     case LOC_REGPARM_ADDR:
-      ax_reg (ax, SYMBOL_REGISTER_OPS (var)->register_number (var, gdbarch));
+      ax_reg (ax,
+	      SYMBOL_REGISTER_OPS (var)->register_number (var, ax->gdbarch));
       value->kind = axs_lvalue_memory;
       break;
 
@@ -742,6 +731,23 @@ gen_var_ref (struct gdbarch *gdbarch, st
       break;
     }
 }
+
+/* Generate code for a minimal symbol variable reference to AX.  The
+   variable is the symbol MINSYM, of OBJFILE.  Set VALUE to describe
+   the result.  */
+
+static void
+gen_msym_var_ref (agent_expr *ax, axs_value *value,
+		  minimal_symbol *msymbol, objfile *objf)
+{
+  CORE_ADDR address;
+  type *t = find_minsym_type_and_address (msymbol, objf, &address);
+  value->type = t;
+  value->optimized_out = false;
+  ax_const_l (ax, address);
+  value->kind = axs_lvalue_memory;
+}
+
 
 
 
@@ -818,8 +824,7 @@ require_rvalue (struct agent_expr *ax, s
    lvalue through unchanged, and let `+' raise an error.  */
 
 static void
-gen_usual_unary (struct expression *exp, struct agent_expr *ax,
-		 struct axs_value *value)
+gen_usual_unary (struct agent_expr *ax, struct axs_value *value)
 {
   /* We don't have to generate any code for the usual integral
      conversions, since values are always represented as full-width on
@@ -934,8 +939,8 @@ is_nontrivial_conversion (struct type *f
    and promotes each argument to that type.  *VALUE1 and *VALUE2
    describe the values as they are passed in, and as they are left.  */
 static void
-gen_usual_arithmetic (struct expression *exp, struct agent_expr *ax,
-		      struct axs_value *value1, struct axs_value *value2)
+gen_usual_arithmetic (struct agent_expr *ax, struct axs_value *value1,
+		      struct axs_value *value2)
 {
   /* Do the usual binary conversions.  */
   if (TYPE_CODE (value1->type) == TYPE_CODE_INT
@@ -946,7 +951,7 @@ gen_usual_arithmetic (struct expression 
          unsigned type is considered "wider" than an n-bit signed
          type.  Promote to the "wider" of the two types, and always
          promote at least to int.  */
-      struct type *target = max_type (builtin_type (exp->gdbarch)->builtin_int,
+      struct type *target = max_type (builtin_type (ax->gdbarch)->builtin_int,
 				      max_type (value1->type, value2->type));
 
       /* Deal with value2, on the top of the stack.  */
@@ -971,10 +976,9 @@ gen_usual_arithmetic (struct expression 
    the value on the top of the stack, as described by VALUE.  Assume
    the value has integral type.  */
 static void
-gen_integral_promotions (struct expression *exp, struct agent_expr *ax,
-			 struct axs_value *value)
+gen_integral_promotions (struct agent_expr *ax, struct axs_value *value)
 {
-  const struct builtin_type *builtin = builtin_type (exp->gdbarch);
+  const struct builtin_type *builtin = builtin_type (ax->gdbarch);
 
   if (!type_wider_than (value->type, builtin->builtin_int))
     {
@@ -1196,7 +1200,7 @@ gen_complement (struct agent_expr *ax, s
 
 /* Dereference the value on the top of the stack.  */
 static void
-gen_deref (struct agent_expr *ax, struct axs_value *value)
+gen_deref (struct axs_value *value)
 {
   /* The caller should check the type, because several operators use
      this, and we don't know what error message to generate.  */
@@ -1219,7 +1223,7 @@ gen_deref (struct agent_expr *ax, struct
 
 /* Produce the address of the lvalue on the top of the stack.  */
 static void
-gen_address_of (struct agent_expr *ax, struct axs_value *value)
+gen_address_of (struct axs_value *value)
 {
   /* Special case for taking the address of a function.  The ANSI
      standard describes this as a special case, too, so this
@@ -1249,9 +1253,8 @@ gen_address_of (struct agent_expr *ax, s
    starting and one-past-ending *bit* numbers of the field within the
    structure.  */
 static void
-gen_bitfield_ref (struct expression *exp, struct agent_expr *ax,
-		  struct axs_value *value, struct type *type,
-		  int start, int end)
+gen_bitfield_ref (struct agent_expr *ax, struct axs_value *value,
+		  struct type *type, int start, int end)
 {
   /* Note that ops[i] fetches 8 << i bits.  */
   static enum agent_op ops[]
@@ -1376,7 +1379,7 @@ gen_bitfield_ref (struct expression *exp
 	     the sign/zero extension will wipe them out.
 	     - If we're in the interior of the word, then there is no garbage
 	     on either end, because the ref operators zero-extend.  */
-	  if (gdbarch_byte_order (exp->gdbarch) == BFD_ENDIAN_BIG)
+	  if (gdbarch_byte_order (ax->gdbarch) == BFD_ENDIAN_BIG)
 	    gen_left_shift (ax, end - (offset + op_size));
 	  else
 	    gen_left_shift (ax, offset - start);
@@ -1409,13 +1412,12 @@ gen_bitfield_ref (struct expression *exp
    generally follow value_primitive_field.  */
 
 static void
-gen_primitive_field (struct expression *exp,
-		     struct agent_expr *ax, struct axs_value *value,
+gen_primitive_field (struct agent_expr *ax, struct axs_value *value,
 		     int offset, int fieldno, struct type *type)
 {
   /* Is this a bitfield?  */
   if (TYPE_FIELD_PACKED (type, fieldno))
-    gen_bitfield_ref (exp, ax, value, TYPE_FIELD_TYPE (type, fieldno),
+    gen_bitfield_ref (ax, value, TYPE_FIELD_TYPE (type, fieldno),
 		      (offset * TARGET_CHAR_BIT
 		       + TYPE_FIELD_BITPOS (type, fieldno)),
 		      (offset * TARGET_CHAR_BIT
@@ -1434,8 +1436,7 @@ gen_primitive_field (struct expression *
    base classes.  Return 1 if found, 0 if not.  */
 
 static int
-gen_struct_ref_recursive (struct expression *exp, struct agent_expr *ax,
-			  struct axs_value *value,
+gen_struct_ref_recursive (struct agent_expr *ax, struct axs_value *value,
 			  const char *field, int offset, struct type *type)
 {
   int i, rslt;
@@ -1457,7 +1458,7 @@ gen_struct_ref_recursive (struct express
 		 being handled as a global.  */
 	      if (field_is_static (&TYPE_FIELD (type, i)))
 		{
-		  gen_static_field (exp->gdbarch, ax, value, type, i);
+		  gen_static_field (ax, value, type, i);
 		  if (value->optimized_out)
 		    error (_("static field `%s' has been "
 			     "optimized out, cannot use"),
@@ -1465,7 +1466,7 @@ gen_struct_ref_recursive (struct express
 		  return 1;
 		}
 
-	      gen_primitive_field (exp, ax, value, offset, i, type);
+	      gen_primitive_field (ax, value, offset, i, type);
 	      return 1;
 	    }
 #if 0 /* is this right? */
@@ -1481,7 +1482,7 @@ gen_struct_ref_recursive (struct express
     {
       struct type *basetype = check_typedef (TYPE_BASECLASS (type, i));
 
-      rslt = gen_struct_ref_recursive (exp, ax, value, field,
+      rslt = gen_struct_ref_recursive (ax, value, field,
 				       offset + TYPE_BASECLASS_BITPOS (type, i)
 				       / TARGET_CHAR_BIT,
 				       basetype);
@@ -1499,9 +1500,9 @@ gen_struct_ref_recursive (struct express
    the operator being compiled, and OPERAND_NAME is the kind of thing
    it operates on; we use them in error messages.  */
 static void
-gen_struct_ref (struct expression *exp, struct agent_expr *ax,
-		struct axs_value *value, const char *field,
-		const char *operator_name, const char *operand_name)
+gen_struct_ref (struct agent_expr *ax, struct axs_value *value,
+		const char *field, const char *operator_name,
+		const char *operand_name)
 {
   struct type *type;
   int found;
@@ -1512,7 +1513,7 @@ gen_struct_ref (struct expression *exp, 
   while (pointer_type (value->type))
     {
       require_rvalue (ax, value);
-      gen_deref (ax, value);
+      gen_deref (value);
     }
   type = check_typedef (value->type);
 
@@ -1528,7 +1529,7 @@ gen_struct_ref (struct expression *exp, 
     error (_("Structure does not live in memory."));
 
   /* Search through fields and base classes recursively.  */
-  found = gen_struct_ref_recursive (exp, ax, value, field, 0, type);
+  found = gen_struct_ref_recursive (ax, value, field, 0, type);
   
   if (!found)
     error (_("Couldn't find member named `%s' in struct/union/class `%s'"),
@@ -1536,17 +1537,14 @@ gen_struct_ref (struct expression *exp, 
 }
 
 static int
-gen_namespace_elt (struct expression *exp,
-		   struct agent_expr *ax, struct axs_value *value,
+gen_namespace_elt (struct agent_expr *ax, struct axs_value *value,
 		   const struct type *curtype, char *name);
 static int
-gen_maybe_namespace_elt (struct expression *exp,
-			 struct agent_expr *ax, struct axs_value *value,
+gen_maybe_namespace_elt (struct agent_expr *ax, struct axs_value *value,
 			 const struct type *curtype, char *name);
 
 static void
-gen_static_field (struct gdbarch *gdbarch,
-		  struct agent_expr *ax, struct axs_value *value,
+gen_static_field (struct agent_expr *ax, struct axs_value *value,
 		  struct type *type, int fieldno)
 {
   if (TYPE_FIELD_LOC_KIND (type, fieldno) == FIELD_LOC_KIND_PHYSADDR)
@@ -1563,7 +1561,7 @@ gen_static_field (struct gdbarch *gdbarc
 
       if (sym)
 	{
-	  gen_var_ref (gdbarch, ax, value, sym);
+	  gen_var_ref (ax, value, sym);
   
 	  /* Don't error if the value was optimized out, we may be
 	     scanning all static fields and just want to pass over this
@@ -1579,8 +1577,7 @@ gen_static_field (struct gdbarch *gdbarc
 }
 
 static int
-gen_struct_elt_for_reference (struct expression *exp,
-			      struct agent_expr *ax, struct axs_value *value,
+gen_struct_elt_for_reference (struct agent_expr *ax, struct axs_value *value,
 			      struct type *type, char *fieldname)
 {
   struct type *t = type;
@@ -1599,7 +1596,7 @@ gen_struct_elt_for_reference (struct exp
 	{
 	  if (field_is_static (&TYPE_FIELD (t, i)))
 	    {
-	      gen_static_field (exp->gdbarch, ax, value, t, i);
+	      gen_static_field (ax, value, t, i);
 	      if (value->optimized_out)
 		error (_("static field `%s' has been "
 			 "optimized out, cannot use"),
@@ -1618,18 +1615,17 @@ gen_struct_elt_for_reference (struct exp
   /* FIXME add other scoped-reference cases here */
 
   /* Do a last-ditch lookup.  */
-  return gen_maybe_namespace_elt (exp, ax, value, type, fieldname);
+  return gen_maybe_namespace_elt (ax, value, type, fieldname);
 }
 
 /* C++: Return the member NAME of the namespace given by the type
    CURTYPE.  */
 
 static int
-gen_namespace_elt (struct expression *exp,
-		   struct agent_expr *ax, struct axs_value *value,
+gen_namespace_elt (struct agent_expr *ax, struct axs_value *value,
 		   const struct type *curtype, char *name)
 {
-  int found = gen_maybe_namespace_elt (exp, ax, value, curtype, name);
+  int found = gen_maybe_namespace_elt (ax, value, curtype, name);
 
   if (!found)
     error (_("No symbol \"%s\" in namespace \"%s\"."), 
@@ -1645,8 +1641,7 @@ gen_namespace_elt (struct expression *ex
    to, say, some base class of CURTYPE).  */
 
 static int
-gen_maybe_namespace_elt (struct expression *exp,
-			 struct agent_expr *ax, struct axs_value *value,
+gen_maybe_namespace_elt (struct agent_expr *ax, struct axs_value *value,
 			 const struct type *curtype, char *name)
 {
   const char *namespace_name = TYPE_TAG_NAME (curtype);
@@ -1659,7 +1654,7 @@ gen_maybe_namespace_elt (struct expressi
   if (sym.symbol == NULL)
     return 0;
 
-  gen_var_ref (exp->gdbarch, ax, value, sym.symbol);
+  gen_var_ref (ax, value, sym.symbol);
 
   if (value->optimized_out)
     error (_("`%s' has been optimized out, cannot use"),
@@ -1670,20 +1665,17 @@ gen_maybe_namespace_elt (struct expressi
 
 
 static int
-gen_aggregate_elt_ref (struct expression *exp,
-		       struct agent_expr *ax, struct axs_value *value,
-		       struct type *type, char *field,
-		       const char *operator_name,
-		       const char *operand_name)
+gen_aggregate_elt_ref (struct agent_expr *ax, struct axs_value *value,
+		       struct type *type, char *field)
 {
   switch (TYPE_CODE (type))
     {
     case TYPE_CODE_STRUCT:
     case TYPE_CODE_UNION:
-      return gen_struct_elt_for_reference (exp, ax, value, type, field);
+      return gen_struct_elt_for_reference (ax, value, type, field);
       break;
     case TYPE_CODE_NAMESPACE:
-      return gen_namespace_elt (exp, ax, value, type, field);
+      return gen_namespace_elt (ax, value, type, field);
       break;
     default:
       internal_error (__FILE__, __LINE__,
@@ -1771,6 +1763,40 @@ gen_sizeof (struct expression *exp, unio
 }
 
 
+/* Generate bytecode for a cast to TO_TYPE.  Advance *PC over the
+   subexpression.  */
+
+static void
+gen_expr_for_cast (struct expression *exp, union exp_element **pc,
+		   struct agent_expr *ax, struct axs_value *value,
+		   struct type *to_type)
+{
+  enum exp_opcode op = (*pc)[0].opcode;
+
+  /* Don't let symbols be handled with gen_expr because that throws an
+     "unknown type" error for no-debug data symbols.  Instead, we want
+     the cast to reinterpret such symbols.  */
+  if (op == OP_VAR_MSYM_VALUE || op == OP_VAR_VALUE)
+    {
+      if (op == OP_VAR_VALUE)
+	{
+	  gen_var_ref (ax, value, (*pc)[2].symbol);
+
+	  if (value->optimized_out)
+	    error (_("`%s' has been optimized out, cannot use"),
+		   SYMBOL_PRINT_NAME ((*pc)[2].symbol));
+	}
+      else
+	gen_msym_var_ref (ax, value, (*pc)[2].msymbol, (*pc)[1].objfile);
+      if (TYPE_CODE (value->type) == TYPE_CODE_ERROR)
+	value->type = to_type;
+      (*pc) += 4;
+    }
+  else
+    gen_expr (exp, pc, ax, value);
+  gen_cast (ax, value, to_type);
+}
+
 /* Generating bytecode from GDB expressions: general recursive thingy  */
 
 /* XXX: i18n */
@@ -1784,7 +1810,7 @@ gen_expr (struct expression *exp, union 
   struct axs_value value1, value2, value3;
   enum exp_opcode op = (*pc)[0].opcode, op2;
   int if1, go1, if2, go2, end;
-  struct type *int_type = builtin_type (exp->gdbarch)->builtin_int;
+  struct type *int_type = builtin_type (ax->gdbarch)->builtin_int;
 
   /* If we're looking at a constant expression, just push its value.  */
   {
@@ -1822,7 +1848,7 @@ gen_expr (struct expression *exp, union 
     case BINOP_GEQ:
       (*pc)++;
       gen_expr (exp, pc, ax, &value1);
-      gen_usual_unary (exp, ax, &value1);
+      gen_usual_unary (ax, &value1);
       gen_expr_binop_rest (exp, op, pc, ax, value, &value1, &value2);
       break;
 
@@ -1830,12 +1856,12 @@ gen_expr (struct expression *exp, union 
       (*pc)++;
       /* Generate the obvious sequence of tests and jumps.  */
       gen_expr (exp, pc, ax, &value1);
-      gen_usual_unary (exp, ax, &value1);
+      gen_usual_unary (ax, &value1);
       if1 = ax_goto (ax, aop_if_goto);
       go1 = ax_goto (ax, aop_goto);
       ax_label (ax, if1, ax->len);
       gen_expr (exp, pc, ax, &value2);
-      gen_usual_unary (exp, ax, &value2);
+      gen_usual_unary (ax, &value2);
       if2 = ax_goto (ax, aop_if_goto);
       go2 = ax_goto (ax, aop_goto);
       ax_label (ax, if2, ax->len);
@@ -1853,10 +1879,10 @@ gen_expr (struct expression *exp, union 
       (*pc)++;
       /* Generate the obvious sequence of tests and jumps.  */
       gen_expr (exp, pc, ax, &value1);
-      gen_usual_unary (exp, ax, &value1);
+      gen_usual_unary (ax, &value1);
       if1 = ax_goto (ax, aop_if_goto);
       gen_expr (exp, pc, ax, &value2);
-      gen_usual_unary (exp, ax, &value2);
+      gen_usual_unary (ax, &value2);
       if2 = ax_goto (ax, aop_if_goto);
       ax_const_l (ax, 0);
       end = ax_goto (ax, aop_goto);
@@ -1871,7 +1897,7 @@ gen_expr (struct expression *exp, union 
     case TERNOP_COND:
       (*pc)++;
       gen_expr (exp, pc, ax, &value1);
-      gen_usual_unary (exp, ax, &value1);
+      gen_usual_unary (ax, &value1);
       /* For (A ? B : C), it's easiest to generate subexpression
 	 bytecodes in order, but if_goto jumps on true, so we invert
 	 the sense of A.  Then we can do B by dropping through, and
@@ -1879,11 +1905,11 @@ gen_expr (struct expression *exp, union 
       gen_logical_not (ax, &value1, int_type);
       if1 = ax_goto (ax, aop_if_goto);
       gen_expr (exp, pc, ax, &value2);
-      gen_usual_unary (exp, ax, &value2);
+      gen_usual_unary (ax, &value2);
       end = ax_goto (ax, aop_goto);
       ax_label (ax, if1, ax->len);
       gen_expr (exp, pc, ax, &value3);
-      gen_usual_unary (exp, ax, &value3);
+      gen_usual_unary (ax, &value3);
       ax_label (ax, end, ax->len);
       /* This is arbitary - what if B and C are incompatible types? */
       value->type = value2.type;
@@ -1934,7 +1960,7 @@ gen_expr (struct expression *exp, union 
 		ax_tsv (ax, aop_tracev, tsv->number);
 	      /* Trace state variables are always 64-bit integers.  */
 	      value1.kind = axs_rvalue;
-	      value1.type = builtin_type (exp->gdbarch)->builtin_long_long;
+	      value1.type = builtin_type (ax->gdbarch)->builtin_long_long;
 	      /* Now do right half of expression.  */
 	      gen_expr_binop_rest (exp, op2, pc, ax, value, &value1, &value2);
 	      /* We have a result of the binary op, set the tsv.  */
@@ -1962,7 +1988,7 @@ gen_expr (struct expression *exp, union 
       /* Don't just dispose of the left operand.  We might be tracing,
          in which case we want to emit code to trace it if it's an
          lvalue.  */
-      gen_traced_pop (exp->gdbarch, ax, &value1);
+      gen_traced_pop (ax, &value1);
       gen_expr (exp, pc, ax, value);
       /* It's the consumer's responsibility to trace the right operand.  */
       break;
@@ -1978,12 +2004,24 @@ gen_expr (struct expression *exp, union 
       break;
 
     case OP_VAR_VALUE:
-      gen_var_ref (exp->gdbarch, ax, value, (*pc)[2].symbol);
+      gen_var_ref (ax, value, (*pc)[2].symbol);
 
       if (value->optimized_out)
 	error (_("`%s' has been optimized out, cannot use"),
 	       SYMBOL_PRINT_NAME ((*pc)[2].symbol));
 
+      if (TYPE_CODE (value->type) == TYPE_CODE_ERROR)
+	error_unknown_type (SYMBOL_PRINT_NAME ((*pc)[2].symbol));
+
+      (*pc) += 4;
+      break;
+
+    case OP_VAR_MSYM_VALUE:
+      gen_msym_var_ref (ax, value, (*pc)[2].msymbol, (*pc)[1].objfile);
+
+      if (TYPE_CODE (value->type) == TYPE_CODE_ERROR)
+	error_unknown_type (MSYMBOL_PRINT_NAME ((*pc)[2].msymbol));
+
       (*pc) += 4;
       break;
 
@@ -1993,19 +2031,19 @@ gen_expr (struct expression *exp, union 
 	int reg;
 
 	(*pc) += 4 + BYTES_TO_EXP_ELEM ((*pc)[1].longconst + 1);
-	reg = user_reg_map_name_to_regnum (exp->gdbarch, name, strlen (name));
+	reg = user_reg_map_name_to_regnum (ax->gdbarch, name, strlen (name));
 	if (reg == -1)
 	  internal_error (__FILE__, __LINE__,
 			  _("Register $%s not available"), name);
 	/* No support for tracing user registers yet.  */
-	if (reg >= gdbarch_num_regs (exp->gdbarch)
-	    + gdbarch_num_pseudo_regs (exp->gdbarch))
+	if (reg >= gdbarch_num_regs (ax->gdbarch)
+	    + gdbarch_num_pseudo_regs (ax->gdbarch))
 	  error (_("'%s' is a user-register; "
 		   "GDB cannot yet trace user-register contents."),
 		 name);
 	value->kind = axs_lvalue_register;
 	value->u.reg = reg;
-	value->type = register_type (exp->gdbarch, reg);
+	value->type = register_type (ax->gdbarch, reg);
       }
       break;
 
@@ -2024,7 +2062,7 @@ gen_expr (struct expression *exp, union 
 	      ax_tsv (ax, aop_tracev, tsv->number);
 	    /* Trace state variables are always 64-bit integers.  */
 	    value->kind = axs_rvalue;
-	    value->type = builtin_type (exp->gdbarch)->builtin_long_long;
+	    value->type = builtin_type (ax->gdbarch)->builtin_long_long;
 	  }
 	else if (! compile_internalvar_to_ax (var, ax, value))
 	  error (_("$%s is not a trace state variable; GDB agent "
@@ -2044,8 +2082,7 @@ gen_expr (struct expression *exp, union 
 	struct type *type = (*pc)[1].type;
 
 	(*pc) += 3;
-	gen_expr (exp, pc, ax, value);
-	gen_cast (ax, value, type);
+	gen_expr_for_cast (exp, pc, ax, value, type);
       }
       break;
 
@@ -2060,9 +2097,7 @@ gen_expr (struct expression *exp, union 
 	val = evaluate_subexp (NULL, exp, &offset, EVAL_AVOID_SIDE_EFFECTS);
 	type = value_type (val);
 	*pc = &exp->elts[offset];
-
-	gen_expr (exp, pc, ax, value);
-	gen_cast (ax, value, type);
+	gen_expr_for_cast (exp, pc, ax, value, type);
       }
       break;
 
@@ -2113,49 +2148,49 @@ gen_expr (struct expression *exp, union 
       (*pc)++;
       /* + FOO is equivalent to 0 + FOO, which can be optimized.  */
       gen_expr (exp, pc, ax, value);
-      gen_usual_unary (exp, ax, value);
+      gen_usual_unary (ax, value);
       break;
       
     case UNOP_NEG:
       (*pc)++;
       /* -FOO is equivalent to 0 - FOO.  */
       gen_int_literal (ax, &value1, 0,
-		       builtin_type (exp->gdbarch)->builtin_int);
-      gen_usual_unary (exp, ax, &value1);	/* shouldn't do much */
+		       builtin_type (ax->gdbarch)->builtin_int);
+      gen_usual_unary (ax, &value1);	/* shouldn't do much */
       gen_expr (exp, pc, ax, &value2);
-      gen_usual_unary (exp, ax, &value2);
-      gen_usual_arithmetic (exp, ax, &value1, &value2);
+      gen_usual_unary (ax, &value2);
+      gen_usual_arithmetic (ax, &value1, &value2);
       gen_binop (ax, value, &value1, &value2, aop_sub, aop_sub, 1, "negation");
       break;
 
     case UNOP_LOGICAL_NOT:
       (*pc)++;
       gen_expr (exp, pc, ax, value);
-      gen_usual_unary (exp, ax, value);
+      gen_usual_unary (ax, value);
       gen_logical_not (ax, value, int_type);
       break;
 
     case UNOP_COMPLEMENT:
       (*pc)++;
       gen_expr (exp, pc, ax, value);
-      gen_usual_unary (exp, ax, value);
-      gen_integral_promotions (exp, ax, value);
+      gen_usual_unary (ax, value);
+      gen_integral_promotions (ax, value);
       gen_complement (ax, value);
       break;
 
     case UNOP_IND:
       (*pc)++;
       gen_expr (exp, pc, ax, value);
-      gen_usual_unary (exp, ax, value);
+      gen_usual_unary (ax, value);
       if (!pointer_type (value->type))
 	error (_("Argument of unary `*' is not a pointer."));
-      gen_deref (ax, value);
+      gen_deref (value);
       break;
 
     case UNOP_ADDR:
       (*pc)++;
       gen_expr (exp, pc, ax, value);
-      gen_address_of (ax, value);
+      gen_address_of (value);
       break;
 
     case UNOP_SIZEOF:
@@ -2164,7 +2199,7 @@ gen_expr (struct expression *exp, union 
          of the other unary operator functions.  This is because we
          have to throw away the code we generate.  */
       gen_sizeof (exp, pc, ax, value,
-		  builtin_type (exp->gdbarch)->builtin_int);
+		  builtin_type (ax->gdbarch)->builtin_int);
       break;
 
     case STRUCTOP_STRUCT:
@@ -2176,9 +2211,9 @@ gen_expr (struct expression *exp, union 
 	(*pc) += 4 + BYTES_TO_EXP_ELEM (length + 1);
 	gen_expr (exp, pc, ax, value);
 	if (op == STRUCTOP_STRUCT)
-	  gen_struct_ref (exp, ax, value, name, ".", "structure or union");
+	  gen_struct_ref (ax, value, name, ".", "structure or union");
 	else if (op == STRUCTOP_PTR)
-	  gen_struct_ref (exp, ax, value, name, "->",
+	  gen_struct_ref (ax, value, name, "->",
 			  "pointer to a structure or union");
 	else
 	  /* If this `if' chain doesn't handle it, then the case list
@@ -2202,7 +2237,7 @@ gen_expr (struct expression *exp, union 
 	if (!sym)
 	  error (_("no `%s' found"), lang->la_name_of_this);
 
-	gen_var_ref (exp->gdbarch, ax, value, sym);
+	gen_var_ref (ax, value, sym);
 
 	if (value->optimized_out)
 	  error (_("`%s' has been optimized out, cannot use"),
@@ -2219,8 +2254,7 @@ gen_expr (struct expression *exp, union 
 	char *name = &(*pc)[3].string;
 	int found;
 
-	found = gen_aggregate_elt_ref (exp, ax, value, type, name,
-				       "?", "??");
+	found = gen_aggregate_elt_ref (ax, value, type, name);
 	if (!found)
 	  error (_("There is no field named %s"), name);
 	(*pc) += 5 + BYTES_TO_EXP_ELEM (length + 1);
@@ -2248,11 +2282,11 @@ gen_expr_binop_rest (struct expression *
 		     struct agent_expr *ax, struct axs_value *value,
 		     struct axs_value *value1, struct axs_value *value2)
 {
-  struct type *int_type = builtin_type (exp->gdbarch)->builtin_int;
+  struct type *int_type = builtin_type (ax->gdbarch)->builtin_int;
 
   gen_expr (exp, pc, ax, value2);
-  gen_usual_unary (exp, ax, value2);
-  gen_usual_arithmetic (exp, ax, value1, value2);
+  gen_usual_unary (ax, value2);
+  gen_usual_arithmetic (ax, value1, value2);
   switch (op)
     {
     case BINOP_ADD:
@@ -2278,7 +2312,7 @@ gen_expr_binop_rest (struct expression *
 	       && pointer_type (value2->type))
 	/* FIXME --- result type should be ptrdiff_t */
 	gen_ptrdiff (ax, value, value1, value2,
-		     builtin_type (exp->gdbarch)->builtin_long);
+		     builtin_type (ax->gdbarch)->builtin_long);
       else
 	gen_binop (ax, value, value1, value2,
 		   aop_sub, aop_sub, 1, "subtraction");
@@ -2334,7 +2368,7 @@ gen_expr_binop_rest (struct expression *
 		   "not a number or boolean."));
 
 	gen_ptradd (ax, value, value1, value2);
-	gen_deref (ax, value);
+	gen_deref (value);
 	break;
       }
     case BINOP_BITWISE_AND:
@@ -2404,7 +2438,7 @@ gen_trace_for_var (CORE_ADDR scope, stru
 
   ax->tracing = 1;
   ax->trace_string = trace_string;
-  gen_var_ref (gdbarch, ax.get (), &value, var);
+  gen_var_ref (ax.get (), &value, var);
 
   /* If there is no actual variable to trace, flag it by returning
      an empty agent expression.  */
@@ -2412,7 +2446,7 @@ gen_trace_for_var (CORE_ADDR scope, stru
     return agent_expr_up ();
 
   /* Make sure we record the final object, and get rid of it.  */
-  gen_traced_pop (gdbarch, ax.get (), &value);
+  gen_traced_pop (ax.get (), &value);
 
   /* Oh, and terminate.  */
   ax_simple (ax.get (), aop_end);
@@ -2443,7 +2477,7 @@ gen_trace_for_expr (CORE_ADDR scope, str
   gen_expr (expr, &pc, ax.get (), &value);
 
   /* Make sure we record the final object, and get rid of it.  */
-  gen_traced_pop (expr->gdbarch, ax.get (), &value);
+  gen_traced_pop (ax.get (), &value);
 
   /* Oh, and terminate.  */
   ax_simple (ax.get (), aop_end);
@@ -2491,7 +2525,7 @@ gen_trace_for_return_address (CORE_ADDR 
   gdbarch_gen_return_address (gdbarch, ax.get (), &value, scope);
 
   /* Make sure we record the final object, and get rid of it.  */
-  gen_traced_pop (gdbarch, ax.get (), &value);
+  gen_traced_pop (ax.get (), &value);
 
   /* Oh, and terminate.  */
   ax_simple (ax.get (), aop_end);
@@ -2507,7 +2541,6 @@ agent_expr_up
 gen_printf (CORE_ADDR scope, struct gdbarch *gdbarch,
 	    CORE_ADDR function, LONGEST channel,
 	    const char *format, int fmtlen,
-	    struct format_piece *frags,
 	    int nargs, struct expression **exprs)
 {
   agent_expr_up ax (new agent_expr (gdbarch, scope));
@@ -2586,7 +2619,7 @@ agent_eval_command_one (const char *exp,
 }
 
 static void
-agent_command_1 (char *exp, int eval)
+agent_command_1 (const char *exp, int eval)
 {
   /* We don't deal with overlay debugging at the moment.  We need to
      think more carefully about this.  If you copy this code into
@@ -2601,12 +2634,11 @@ agent_command_1 (char *exp, int eval)
   if (check_for_argument (&exp, "-at", sizeof ("-at") - 1))
     {
       struct linespec_result canonical;
-      int ix;
-      struct linespec_sals *iter;
 
       exp = skip_spaces (exp);
 
-      event_location_up location = new_linespec_location (&exp);
+      event_location_up location
+	= new_linespec_location (&exp, symbol_name_match_type::WILD);
       decode_line_full (location.get (), DECODE_LINE_FUNFIRSTLINE, NULL,
 			(struct symtab *) NULL, 0, &canonical,
 			NULL, NULL);
@@ -2616,13 +2648,9 @@ agent_command_1 (char *exp, int eval)
 	  exp++;
 	  exp = skip_spaces (exp);
 	}
-      for (ix = 0; VEC_iterate (linespec_sals, canonical.sals, ix, iter); ++ix)
-        {
-	  int i;
-
-	  for (i = 0; i < iter->sals.nelts; i++)
-	    agent_eval_command_one (exp, eval, iter->sals.sals[i].pc);
-        }
+      for (const auto &lsal : canonical.lsals)
+	for (const auto &sal : lsal.sals)
+	  agent_eval_command_one (exp, eval, sal.pc);
     }
   else
     agent_eval_command_one (exp, eval, get_frame_pc (get_current_frame ()));
@@ -2631,7 +2659,7 @@ agent_command_1 (char *exp, int eval)
 }
 
 static void
-agent_command (char *exp, int from_tty)
+agent_command (const char *exp, int from_tty)
 {
   agent_command_1 (exp, 0);
 }
@@ -2641,7 +2669,7 @@ agent_command (char *exp, int from_tty)
    expression.  */
 
 static void
-agent_eval_command (char *exp, int from_tty)
+agent_eval_command (const char *exp, int from_tty)
 {
   agent_command_1 (exp, 1);
 }
@@ -2650,15 +2678,10 @@ agent_eval_command (char *exp, int from_
    that does a printf, and display the resulting expression.  */
 
 static void
-maint_agent_printf_command (char *exp, int from_tty)
+maint_agent_printf_command (const char *cmdrest, int from_tty)
 {
-  struct cleanup *old_chain = 0;
-  struct expression *argvec[100];
   struct frame_info *fi = get_current_frame ();	/* need current scope */
-  const char *cmdrest;
   const char *format_start, *format_end;
-  struct format_piece *fpieces;
-  int nargs;
 
   /* We don't deal with overlay debugging at the moment.  We need to
      think more carefully about this.  If you copy this code into
@@ -2667,45 +2690,40 @@ maint_agent_printf_command (char *exp, i
   if (overlay_debugging)
     error (_("GDB can't do agent expression translation with overlays."));
 
-  if (exp == 0)
+  if (cmdrest == 0)
     error_no_arg (_("expression to translate"));
 
-  cmdrest = exp;
-
-  cmdrest = skip_spaces_const (cmdrest);
+  cmdrest = skip_spaces (cmdrest);
 
   if (*cmdrest++ != '"')
     error (_("Must start with a format string."));
 
   format_start = cmdrest;
 
-  fpieces = parse_format_string (&cmdrest);
-
-  old_chain = make_cleanup (free_format_pieces_cleanup, &fpieces);
+  format_pieces fpieces (&cmdrest);
 
   format_end = cmdrest;
 
   if (*cmdrest++ != '"')
     error (_("Bad format string, non-terminated '\"'."));
   
-  cmdrest = skip_spaces_const (cmdrest);
+  cmdrest = skip_spaces (cmdrest);
 
   if (*cmdrest != ',' && *cmdrest != 0)
     error (_("Invalid argument syntax"));
 
   if (*cmdrest == ',')
     cmdrest++;
-  cmdrest = skip_spaces_const (cmdrest);
+  cmdrest = skip_spaces (cmdrest);
 
-  nargs = 0;
+  std::vector<struct expression *> argvec;
   while (*cmdrest != '\0')
     {
       const char *cmd1;
 
       cmd1 = cmdrest;
       expression_up expr = parse_exp_1 (&cmd1, 0, (struct block *) 0, 1);
-      argvec[nargs] = expr.release ();
-      ++nargs;
+      argvec.push_back (expr.release ());
       cmdrest = cmd1;
       if (*cmdrest == ',')
 	++cmdrest;
@@ -2716,21 +2734,18 @@ maint_agent_printf_command (char *exp, i
   agent_expr_up agent = gen_printf (get_frame_pc (fi), get_current_arch (),
 				    0, 0,
 				    format_start, format_end - format_start,
-				    fpieces, nargs, argvec);
+				    argvec.size (), argvec.data ());
   ax_reqs (agent.get ());
   ax_print (gdb_stdout, agent.get ());
 
   /* It would be nice to call ax_reqs here to gather some general info
      about the expression, and then print out the result.  */
 
-  do_cleanups (old_chain);
   dont_repeat ();
 }
-
 
 /* Initialization code.  */
 
-void _initialize_ax_gdb (void);
 void
 _initialize_ax_gdb (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ax-gdb.h ./gdb/ax-gdb.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ax-gdb.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ax-gdb.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GDB-specific functions for operating on agent expressions
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -120,10 +120,8 @@ extern void gen_expr (struct expression 
 
 extern void require_rvalue (struct agent_expr *ax, struct axs_value *value);
 
-struct format_piece;
 extern agent_expr_up gen_printf (CORE_ADDR, struct gdbarch *,
 				 CORE_ADDR, LONGEST, const char *, int,
-				 struct format_piece *,
 				 int, struct expression **);
 
 #endif /* AX_GDB_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ax-general.c ./gdb/ax-general.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ax-general.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ax-general.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Functions for manipulating expressions designed to be executed on the agent
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ax.h ./gdb/ax.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ax.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ax.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Definitions for expressions designed to be executed on the agent
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -19,7 +19,6 @@
 #ifndef AGENTEXPR_H
 #define AGENTEXPR_H
 
-#include "doublest.h"		/* For DOUBLEST.  */
 #include "vec.h"
 
 /* It's sometimes useful to be able to debug programs that you can't
@@ -80,17 +79,6 @@ enum agent_flaws
 
 /* Agent expression data structures.  */
 
-/* The type of an element of the agent expression stack.
-   The bytecode operation indicates which element we should access;
-   the value itself has no typing information.  GDB generates all
-   bytecode streams, so we don't have to worry about type errors.  */
-
-union agent_val
-  {
-    LONGEST l;
-    DOUBLEST d;
-  };
-
 /* A buffer containing a agent expression.  */
 struct agent_expr
   {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bcache.c ./gdb/bcache.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bcache.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/bcache.c	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
    Written by Fred Fish <fnf@cygnus.com>
    Rewritten by Jim Blandy <jimb@cygnus.com>
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bcache.h ./gdb/bcache.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bcache.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/bcache.h	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
    Written by Fred Fish <fnf@cygnus.com>
    Rewritten by Jim Blandy <jimb@cygnus.com>
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bfd-target.c ./gdb/bfd-target.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bfd-target.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/bfd-target.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Very simple "bfd" target, for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bfd-target.h ./gdb/bfd-target.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bfd-target.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/bfd-target.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Very simple "bfd" target, for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bfin-linux-tdep.c ./gdb/bfin-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bfin-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/bfin-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Analog Devices Blackfin processor, for GDB.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    Contributed by Analog Devices, Inc.
 
@@ -161,9 +161,6 @@ bfin_linux_init_abi (struct gdbarch_info
                                   bfin_linux_get_syscall_number);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_bfin_linux_tdep;
-
 void
 _initialize_bfin_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bfin-tdep.c ./gdb/bfin-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bfin-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/bfin-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Analog Devices Blackfin processor, for GDB.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    Contributed by Analog Devices, Inc.
 
@@ -608,7 +608,7 @@ bfin_extract_return_value (struct type *
 			   struct regcache *regs,
 			   gdb_byte *dst)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regs);
+  struct gdbarch *gdbarch = regs->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   bfd_byte *valbuf = dst;
   int len = TYPE_LENGTH (type);
@@ -811,7 +811,7 @@ bfin_gdbarch_init (struct gdbarch_info i
       return arches->gdbarch;
     }
 
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
 
   tdep->bfin_abi = abi;
@@ -838,7 +838,6 @@ bfin_gdbarch_init (struct gdbarch_info i
   set_gdbarch_frame_args_skip (gdbarch, 8);
   set_gdbarch_unwind_pc (gdbarch, bfin_unwind_pc);
   set_gdbarch_frame_align (gdbarch, bfin_frame_align);
-  set_gdbarch_print_insn (gdbarch, print_insn_bfin);
 
   /* Hook in ABI-specific overrides, if they have been registered.  */
   gdbarch_init_osabi (info, gdbarch);
@@ -852,9 +851,6 @@ bfin_gdbarch_init (struct gdbarch_info i
   return gdbarch;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_bfin_tdep;
-
 void
 _initialize_bfin_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bfin-tdep.h ./gdb/bfin-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bfin-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/bfin-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Analog Devices Blackfin processor, for GDB.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    Contributed by Analog Devices, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/block.c ./gdb/block.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/block.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/block.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Block-related functions for the GNU debugger, GDB.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -589,83 +589,13 @@ block_iterator_next (struct block_iterat
   return block_iterator_step (iterator, 0);
 }
 
-/* Perform a single step for a "name" block iterator, iterating across
-   symbol tables as needed.  Returns the next symbol, or NULL when
-   iteration is complete.  */
-
-static struct symbol *
-block_iter_name_step (struct block_iterator *iterator, const char *name,
-		      int first)
-{
-  struct symbol *sym;
-
-  gdb_assert (iterator->which != FIRST_LOCAL_BLOCK);
-
-  while (1)
-    {
-      if (first)
-	{
-	  struct compunit_symtab *cust
-	    = find_iterator_compunit_symtab (iterator);
-	  const struct block *block;
-
-	  /* Iteration is complete.  */
-	  if (cust == NULL)
-	    return  NULL;
-
-	  block = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (cust),
-				     iterator->which);
-	  sym = dict_iter_name_first (BLOCK_DICT (block), name,
-				      &iterator->dict_iter);
-	}
-      else
-	sym = dict_iter_name_next (name, &iterator->dict_iter);
-
-      if (sym != NULL)
-	return sym;
-
-      /* We have finished iterating the appropriate block of one
-	 symtab.  Now advance to the next symtab and begin iteration
-	 there.  */
-      ++iterator->idx;
-      first = 1;
-    }
-}
-
-/* See block.h.  */
-
-struct symbol *
-block_iter_name_first (const struct block *block,
-		       const char *name,
-		       struct block_iterator *iterator)
-{
-  initialize_block_iterator (block, iterator);
-
-  if (iterator->which == FIRST_LOCAL_BLOCK)
-    return dict_iter_name_first (block->dict, name, &iterator->dict_iter);
-
-  return block_iter_name_step (iterator, name, 1);
-}
-
-/* See block.h.  */
-
-struct symbol *
-block_iter_name_next (const char *name, struct block_iterator *iterator)
-{
-  if (iterator->which == FIRST_LOCAL_BLOCK)
-    return dict_iter_name_next (name, &iterator->dict_iter);
-
-  return block_iter_name_step (iterator, name, 0);
-}
-
 /* Perform a single step for a "match" block iterator, iterating
    across symbol tables as needed.  Returns the next symbol, or NULL
    when iteration is complete.  */
 
 static struct symbol *
 block_iter_match_step (struct block_iterator *iterator,
-		       const char *name,
-		       symbol_compare_ftype *compare,
+		       const lookup_name_info &name,
 		       int first)
 {
   struct symbol *sym;
@@ -687,10 +617,10 @@ block_iter_match_step (struct block_iter
 	  block = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (cust),
 				     iterator->which);
 	  sym = dict_iter_match_first (BLOCK_DICT (block), name,
-				       compare, &iterator->dict_iter);
+				       &iterator->dict_iter);
 	}
       else
-	sym = dict_iter_match_next (name, compare, &iterator->dict_iter);
+	sym = dict_iter_match_next (name, &iterator->dict_iter);
 
       if (sym != NULL)
 	return sym;
@@ -707,30 +637,27 @@ block_iter_match_step (struct block_iter
 
 struct symbol *
 block_iter_match_first (const struct block *block,
-			const char *name,
-			symbol_compare_ftype *compare,
+			const lookup_name_info &name,
 			struct block_iterator *iterator)
 {
   initialize_block_iterator (block, iterator);
 
   if (iterator->which == FIRST_LOCAL_BLOCK)
-    return dict_iter_match_first (block->dict, name, compare,
-				  &iterator->dict_iter);
+    return dict_iter_match_first (block->dict, name, &iterator->dict_iter);
 
-  return block_iter_match_step (iterator, name, compare, 1);
+  return block_iter_match_step (iterator, name, 1);
 }
 
 /* See block.h.  */
 
 struct symbol *
-block_iter_match_next (const char *name,
-		       symbol_compare_ftype *compare,
+block_iter_match_next (const lookup_name_info &name,
 		       struct block_iterator *iterator)
 {
   if (iterator->which == FIRST_LOCAL_BLOCK)
-    return dict_iter_match_next (name, compare, &iterator->dict_iter);
+    return dict_iter_match_next (name, &iterator->dict_iter);
 
-  return block_iter_match_step (iterator, name, compare, 0);
+  return block_iter_match_step (iterator, name, 0);
 }
 
 /* See block.h.
@@ -746,16 +673,19 @@ block_iter_match_next (const char *name,
 
 struct symbol *
 block_lookup_symbol (const struct block *block, const char *name,
+		     symbol_name_match_type match_type,
 		     const domain_enum domain)
 {
   struct block_iterator iter;
   struct symbol *sym;
 
+  lookup_name_info lookup_name (name, match_type);
+
   if (!BLOCK_FUNCTION (block))
     {
       struct symbol *other = NULL;
 
-      ALL_BLOCK_SYMBOLS_WITH_NAME (block, name, iter, sym)
+      ALL_BLOCK_SYMBOLS_WITH_NAME (block, lookup_name, iter, sym)
 	{
 	  if (SYMBOL_DOMAIN (sym) == domain)
 	    return sym;
@@ -782,7 +712,7 @@ block_lookup_symbol (const struct block 
 
       struct symbol *sym_found = NULL;
 
-      ALL_BLOCK_SYMBOLS_WITH_NAME (block, name, iter, sym)
+      ALL_BLOCK_SYMBOLS_WITH_NAME (block, lookup_name, iter, sym)
 	{
 	  if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
 				     SYMBOL_DOMAIN (sym), domain))
@@ -807,14 +737,16 @@ block_lookup_symbol_primary (const struc
   struct symbol *sym, *other;
   struct dict_iterator dict_iter;
 
+  lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
+
   /* Verify BLOCK is STATIC_BLOCK or GLOBAL_BLOCK.  */
   gdb_assert (BLOCK_SUPERBLOCK (block) == NULL
 	      || BLOCK_SUPERBLOCK (BLOCK_SUPERBLOCK (block)) == NULL);
 
   other = NULL;
-  for (sym = dict_iter_name_first (block->dict, name, &dict_iter);
+  for (sym = dict_iter_match_first (block->dict, lookup_name, &dict_iter);
        sym != NULL;
-       sym = dict_iter_name_next (name, &dict_iter))
+       sym = dict_iter_match_next (lookup_name, &dict_iter))
     {
       if (SYMBOL_DOMAIN (sym) == domain)
 	return sym;
@@ -841,11 +773,13 @@ block_find_symbol (const struct block *b
   struct block_iterator iter;
   struct symbol *sym;
 
+  lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
+
   /* Verify BLOCK is STATIC_BLOCK or GLOBAL_BLOCK.  */
   gdb_assert (BLOCK_SUPERBLOCK (block) == NULL
 	      || BLOCK_SUPERBLOCK (BLOCK_SUPERBLOCK (block)) == NULL);
 
-  ALL_BLOCK_SYMBOLS_WITH_NAME (block, name, iter, sym)
+  ALL_BLOCK_SYMBOLS_WITH_NAME (block, lookup_name, iter, sym)
     {
       /* MATCHER is deliberately called second here so that it never sees
 	 a non-domain-matching symbol.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/blockframe.c ./gdb/blockframe.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/blockframe.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/blockframe.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Get info from stack frames; convert between frames, blocks,
    functions and pc values.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/block.h ./gdb/block.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/block.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/block.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Code dealing with blocks for GDB.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -237,51 +237,28 @@ extern struct symbol *block_iterator_fir
 extern struct symbol *block_iterator_next (struct block_iterator *iterator);
 
 /* Initialize ITERATOR to point at the first symbol in BLOCK whose
-   SYMBOL_SEARCH_NAME is NAME (as tested using strcmp_iw), and return
-   that first symbol, or NULL if there are no such symbols.  */
-
-extern struct symbol *block_iter_name_first (const struct block *block,
-					     const char *name,
-					     struct block_iterator *iterator);
-
-/* Advance ITERATOR to point at the next symbol in BLOCK whose
-   SYMBOL_SEARCH_NAME is NAME (as tested using strcmp_iw), or NULL if
-   there are no more such symbols.  Don't call this if you've
-   previously received NULL from block_iterator_first or
-   block_iterator_next on this iteration.  And don't call it unless
-   ITERATOR was created by a previous call to block_iter_name_first
-   with the same NAME.  */
-
-extern struct symbol *block_iter_name_next (const char *name,
-					    struct block_iterator *iterator);
-
-/* Initialize ITERATOR to point at the first symbol in BLOCK whose
-   SYMBOL_SEARCH_NAME is NAME, as tested using COMPARE (which must use
-   the same conventions as strcmp_iw and be compatible with any
-   block hashing function), and return that first symbol, or NULL
-   if there are no such symbols.  */
+   SYMBOL_SEARCH_NAME matches NAME, and return that first symbol, or
+   NULL if there are no such symbols.  */
 
 extern struct symbol *block_iter_match_first (const struct block *block,
-					      const char *name,
-					      symbol_compare_ftype *compare,
+					      const lookup_name_info &name,
 					      struct block_iterator *iterator);
 
 /* Advance ITERATOR to point at the next symbol in BLOCK whose
-   SYMBOL_SEARCH_NAME is NAME, as tested using COMPARE (see
-   block_iter_match_first), or NULL if there are no more such symbols.
-   Don't call this if you've previously received NULL from 
+   SYMBOL_SEARCH_NAME matches NAME, or NULL if there are no more such
+   symbols.  Don't call this if you've previously received NULL from
    block_iterator_match_first or block_iterator_match_next on this
    iteration.  And don't call it unless ITERATOR was created by a
-   previous call to block_iter_match_first with the same NAME and COMPARE.  */
+   previous call to block_iter_match_first with the same NAME.  */
 
-extern struct symbol *block_iter_match_next (const char *name,
-					     symbol_compare_ftype *compare,
-					     struct block_iterator *iterator);
+extern struct symbol *block_iter_match_next
+  (const lookup_name_info &name, struct block_iterator *iterator);
 
 /* Search BLOCK for symbol NAME in DOMAIN.  */
 
 extern struct symbol *block_lookup_symbol (const struct block *block,
 					   const char *name,
+					   symbol_name_match_type match_type,
 					   const domain_enum domain);
 
 /* Search BLOCK for symbol NAME in DOMAIN but only in primary symbol table of
@@ -335,13 +312,14 @@ extern int block_find_non_opaque_type_pr
        (sym);						\
        (sym) = block_iterator_next (&(iter)))
 
-/* Macro to loop through all symbols with name NAME in BLOCK,
-   in no particular order.  ITER helps keep track of the iteration, and
-   must be a struct block_iterator.  SYM points to the current symbol.  */
+/* Macro to loop through all symbols in BLOCK with a name that matches
+   NAME, in no particular order.  ITER helps keep track of the
+   iteration, and must be a struct block_iterator.  SYM points to the
+   current symbol.  */
 
 #define ALL_BLOCK_SYMBOLS_WITH_NAME(block, name, iter, sym)		\
-  for ((sym) = block_iter_name_first ((block), (name), &(iter));	\
+  for ((sym) = block_iter_match_first ((block), (name), &(iter));	\
        (sym) != NULL;							\
-       (sym) = block_iter_name_next ((name), &(iter)))
+       (sym) = block_iter_match_next ((name), &(iter)))
 
 #endif /* BLOCK_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/break-catch-sig.c ./gdb/break-catch-sig.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/break-catch-sig.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/break-catch-sig.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Everything about signal catchpoints, for GDB.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -33,34 +33,24 @@
 
 #define INTERNAL_SIGNAL(x) ((x) == GDB_SIGNAL_TRAP || (x) == GDB_SIGNAL_INT)
 
-typedef enum gdb_signal gdb_signal_type;
-
-DEF_VEC_I (gdb_signal_type);
-
 /* An instance of this type is used to represent a signal catchpoint.
-   It includes a "struct breakpoint" as a kind of base class; users
-   downcast to "struct breakpoint *" when needed.  A breakpoint is
-   really of this type iff its ops pointer points to
+   A breakpoint is really of this type iff its ops pointer points to
    SIGNAL_CATCHPOINT_OPS.  */
 
-struct signal_catchpoint
+struct signal_catchpoint : public breakpoint
 {
-  /* The base class.  */
-
-  struct breakpoint base;
-
   /* Signal numbers used for the 'catch signal' feature.  If no signal
-     has been specified for filtering, its value is NULL.  Otherwise,
+     has been specified for filtering, it is empty.  Otherwise,
      it holds a list of all signals to be caught.  */
 
-  VEC (gdb_signal_type) *signals_to_be_caught;
+  std::vector<gdb_signal> signals_to_be_caught;
 
-  /* If SIGNALS_TO_BE_CAUGHT is NULL, then all "ordinary" signals are
-     caught.  If CATCH_ALL is non-zero, then internal signals are
-     caught as well.  If SIGNALS_TO_BE_CAUGHT is non-NULL, then this
-     field is ignored.  */
+  /* If SIGNALS_TO_BE_CAUGHT is empty, then all "ordinary" signals are
+     caught.  If CATCH_ALL is true, then internal signals are caught
+     as well.  If SIGNALS_TO_BE_CAUGHT is not empty, then this field
+     is ignored.  */
 
-  int catch_all;
+  bool catch_all;
 };
 
 /* The breakpoint_ops structure to be used in signal catchpoints.  */
@@ -89,19 +79,6 @@ signal_to_name_or_int (enum gdb_signal s
 
 
 
-/* Implement the "dtor" breakpoint_ops method for signal
-   catchpoints.  */
-
-static void
-signal_catchpoint_dtor (struct breakpoint *b)
-{
-  struct signal_catchpoint *c = (struct signal_catchpoint *) b;
-
-  VEC_free (gdb_signal_type, c->signals_to_be_caught);
-
-  base_breakpoint_ops.dtor (b);
-}
-
 /* Implement the "insert_location" breakpoint_ops method for signal
    catchpoints.  */
 
@@ -109,20 +86,15 @@ static int
 signal_catchpoint_insert_location (struct bp_location *bl)
 {
   struct signal_catchpoint *c = (struct signal_catchpoint *) bl->owner;
-  int i;
 
-  if (c->signals_to_be_caught != NULL)
+  if (!c->signals_to_be_caught.empty ())
     {
-      gdb_signal_type iter;
-
-      for (i = 0;
-	   VEC_iterate (gdb_signal_type, c->signals_to_be_caught, i, iter);
-	   i++)
+      for (gdb_signal iter : c->signals_to_be_caught)
 	++signal_catch_counts[iter];
     }
   else
     {
-      for (i = 0; i < GDB_SIGNAL_LAST; ++i)
+      for (int i = 0; i < GDB_SIGNAL_LAST; ++i)
 	{
 	  if (c->catch_all || !INTERNAL_SIGNAL (i))
 	    ++signal_catch_counts[i];
@@ -142,15 +114,10 @@ signal_catchpoint_remove_location (struc
 				   enum remove_bp_reason reason)
 {
   struct signal_catchpoint *c = (struct signal_catchpoint *) bl->owner;
-  int i;
 
-  if (c->signals_to_be_caught != NULL)
+  if (!c->signals_to_be_caught.empty ())
     {
-      gdb_signal_type iter;
-
-      for (i = 0;
-	   VEC_iterate (gdb_signal_type, c->signals_to_be_caught, i, iter);
-	   i++)
+      for (gdb_signal iter : c->signals_to_be_caught)
 	{
 	  gdb_assert (signal_catch_counts[iter] > 0);
 	  --signal_catch_counts[iter];
@@ -158,7 +125,7 @@ signal_catchpoint_remove_location (struc
     }
   else
     {
-      for (i = 0; i < GDB_SIGNAL_LAST; ++i)
+      for (int i = 0; i < GDB_SIGNAL_LAST; ++i)
 	{
 	  if (c->catch_all || !INTERNAL_SIGNAL (i))
 	    {
@@ -178,13 +145,13 @@ signal_catchpoint_remove_location (struc
 
 static int
 signal_catchpoint_breakpoint_hit (const struct bp_location *bl,
-				  struct address_space *aspace,
+				  const address_space *aspace,
 				  CORE_ADDR bp_addr,
 				  const struct target_waitstatus *ws)
 {
   const struct signal_catchpoint *c
     = (const struct signal_catchpoint *) bl->owner;
-  gdb_signal_type signal_number;
+  gdb_signal signal_number;
 
   if (ws->kind != TARGET_WAITKIND_STOPPED)
     return 0;
@@ -194,18 +161,12 @@ signal_catchpoint_breakpoint_hit (const 
   /* If we are catching specific signals in this breakpoint, then we
      must guarantee that the called signal is the same signal we are
      catching.  */
-  if (c->signals_to_be_caught)
+  if (!c->signals_to_be_caught.empty ())
     {
-      int i;
-      gdb_signal_type iter;
-
-      for (i = 0;
-           VEC_iterate (gdb_signal_type, c->signals_to_be_caught, i, iter);
-           i++)
+      for (gdb_signal iter : c->signals_to_be_caught)
 	if (signal_number == iter)
 	  return 1;
       /* Not the same.  */
-      gdb_assert (!iter);
       return 0;
     }
   else
@@ -256,26 +217,24 @@ signal_catchpoint_print_one (struct brea
     uiout->field_skip ("addr");
   annotate_field (5);
 
-  if (c->signals_to_be_caught
-      && VEC_length (gdb_signal_type, c->signals_to_be_caught) > 1)
+  if (c->signals_to_be_caught.size () > 1)
     uiout->text ("signals \"");
   else
     uiout->text ("signal \"");
 
-  if (c->signals_to_be_caught)
+  if (!c->signals_to_be_caught.empty ())
     {
-      int i;
-      gdb_signal_type iter;
       std::string text;
 
-      for (i = 0;
-           VEC_iterate (gdb_signal_type, c->signals_to_be_caught, i, iter);
-           i++)
+      bool first = true;
+      for (gdb_signal iter : c->signals_to_be_caught)
         {
 	  const char *name = signal_to_name_or_int (iter);
 
-	  if (i > 0)
+	  if (!first)
 	    text += " ";
+	  first = false;
+
 	  text += name;
         }
       uiout->field_string ("what", text.c_str ());
@@ -297,19 +256,14 @@ signal_catchpoint_print_mention (struct 
 {
   struct signal_catchpoint *c = (struct signal_catchpoint *) b;
 
-  if (c->signals_to_be_caught)
+  if (!c->signals_to_be_caught.empty ())
     {
-      int i;
-      gdb_signal_type iter;
-
-      if (VEC_length (gdb_signal_type, c->signals_to_be_caught) > 1)
+      if (c->signals_to_be_caught.size () > 1)
         printf_filtered (_("Catchpoint %d (signals"), b->number);
       else
         printf_filtered (_("Catchpoint %d (signal"), b->number);
 
-      for (i = 0;
-           VEC_iterate (gdb_signal_type, c->signals_to_be_caught, i, iter);
-           i++)
+      for (gdb_signal iter : c->signals_to_be_caught)
         {
 	  const char *name = signal_to_name_or_int (iter);
 
@@ -333,14 +287,9 @@ signal_catchpoint_print_recreate (struct
 
   fprintf_unfiltered (fp, "catch signal");
 
-  if (c->signals_to_be_caught)
+  if (!c->signals_to_be_caught.empty ())
     {
-      int i;
-      gdb_signal_type iter;
-
-      for (i = 0;
-           VEC_iterate (gdb_signal_type, c->signals_to_be_caught, i, iter);
-           i++)
+      for (gdb_signal iter : c->signals_to_be_caught)
 	fprintf_unfiltered (fp, " %s", signal_to_name_or_int (iter));
     }
   else if (c->catch_all)
@@ -359,92 +308,85 @@ signal_catchpoint_explains_signal (struc
 
 /* Create a new signal catchpoint.  TEMPFLAG is true if this should be
    a temporary catchpoint.  FILTER is the list of signals to catch; it
-   can be NULL, meaning all signals.  CATCH_ALL is a flag indicating
+   can be empty, meaning all signals.  CATCH_ALL is a flag indicating
    whether signals used internally by gdb should be caught; it is only
-   valid if FILTER is NULL.  If FILTER is NULL and CATCH_ALL is zero,
+   valid if FILTER is NULL.  If FILTER is empty and CATCH_ALL is zero,
    then internal signals like SIGTRAP are not caught.  */
 
 static void
-create_signal_catchpoint (int tempflag, VEC (gdb_signal_type) *filter,
-			  int catch_all)
+create_signal_catchpoint (int tempflag, std::vector<gdb_signal> &&filter,
+			  bool catch_all)
 {
-  struct signal_catchpoint *c;
   struct gdbarch *gdbarch = get_current_arch ();
 
-  c = new signal_catchpoint ();
-  init_catchpoint (&c->base, gdbarch, tempflag, NULL, &signal_catchpoint_ops);
-  c->signals_to_be_caught = filter;
+  std::unique_ptr<signal_catchpoint> c (new signal_catchpoint ());
+  init_catchpoint (c.get (), gdbarch, tempflag, NULL, &signal_catchpoint_ops);
+  c->signals_to_be_caught = std::move (filter);
   c->catch_all = catch_all;
 
-  install_breakpoint (0, &c->base, 1);
+  install_breakpoint (0, std::move (c), 1);
 }
 
 
-/* Splits the argument using space as delimiter.  Returns an xmalloc'd
-   filter list, or NULL if no filtering is required.  */
+/* Splits the argument using space as delimiter.  Returns a filter
+   list, which is empty if no filtering is required.  */
 
-static VEC (gdb_signal_type) *
-catch_signal_split_args (char *arg, int *catch_all)
+static std::vector<gdb_signal>
+catch_signal_split_args (const char *arg, bool *catch_all)
 {
-  VEC (gdb_signal_type) *result = NULL;
-  struct cleanup *cleanup = make_cleanup (VEC_cleanup (gdb_signal_type),
-					  &result);
-  int first = 1;
+  std::vector<gdb_signal> result;
+  bool first = true;
 
   while (*arg != '\0')
     {
       int num;
-      gdb_signal_type signal_number;
-      char *one_arg, *endptr;
-      struct cleanup *inner_cleanup;
+      gdb_signal signal_number;
+      char *endptr;
 
-      one_arg = extract_arg (&arg);
-      if (one_arg == NULL)
+      std::string one_arg = extract_arg (&arg);
+      if (one_arg.empty ())
 	break;
-      inner_cleanup = make_cleanup (xfree, one_arg);
 
       /* Check for the special flag "all".  */
-      if (strcmp (one_arg, "all") == 0)
+      if (one_arg == "all")
 	{
 	  arg = skip_spaces (arg);
 	  if (*arg != '\0' || !first)
 	    error (_("'all' cannot be caught with other signals"));
-	  *catch_all = 1;
-	  gdb_assert (result == NULL);
-	  do_cleanups (inner_cleanup);
-	  discard_cleanups (cleanup);
-	  return NULL;
+	  *catch_all = true;
+	  gdb_assert (result.empty ());
+	  return result;
 	}
 
-      first = 0;
+      first = false;
 
       /* Check if the user provided a signal name or a number.  */
-      num = (int) strtol (one_arg, &endptr, 0);
+      num = (int) strtol (one_arg.c_str (), &endptr, 0);
       if (*endptr == '\0')
 	signal_number = gdb_signal_from_command (num);
       else
 	{
-	  signal_number = gdb_signal_from_name (one_arg);
+	  signal_number = gdb_signal_from_name (one_arg.c_str ());
 	  if (signal_number == GDB_SIGNAL_UNKNOWN)
-	    error (_("Unknown signal name '%s'."), one_arg);
+	    error (_("Unknown signal name '%s'."), one_arg.c_str ());
 	}
 
-      VEC_safe_push (gdb_signal_type, result, signal_number);
-      do_cleanups (inner_cleanup);
+      result.push_back (signal_number);
     }
 
-  discard_cleanups (cleanup);
+  result.shrink_to_fit ();
   return result;
 }
 
 /* Implement the "catch signal" command.  */
 
 static void
-catch_signal_command (char *arg, int from_tty,
+catch_signal_command (const char *arg, int from_tty,
 		      struct cmd_list_element *command)
 {
-  int tempflag, catch_all = 0;
-  VEC (gdb_signal_type) *filter;
+  int tempflag;
+  bool catch_all = false;
+  std::vector<gdb_signal> filter;
 
   tempflag = get_cmd_context (command) == CATCH_TEMPORARY;
 
@@ -458,10 +400,8 @@ catch_signal_command (char *arg, int fro
 
   if (arg != NULL)
     filter = catch_signal_split_args (arg, &catch_all);
-  else
-    filter = NULL;
 
-  create_signal_catchpoint (tempflag, filter, catch_all);
+  create_signal_catchpoint (tempflag, std::move (filter), catch_all);
 }
 
 static void
@@ -473,7 +413,6 @@ initialize_signal_catchpoint_ops (void)
 
   ops = &signal_catchpoint_ops;
   *ops = base_breakpoint_ops;
-  ops->dtor = signal_catchpoint_dtor;
   ops->insert_location = signal_catchpoint_insert_location;
   ops->remove_location = signal_catchpoint_remove_location;
   ops->breakpoint_hit = signal_catchpoint_breakpoint_hit;
@@ -484,8 +423,6 @@ initialize_signal_catchpoint_ops (void)
   ops->explains_signal = signal_catchpoint_explains_signal;
 }
 
-initialize_file_ftype _initialize_break_catch_sig;
-
 void
 _initialize_break_catch_sig (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/break-catch-syscall.c ./gdb/break-catch-syscall.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/break-catch-syscall.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/break-catch-syscall.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Everything about syscall catchpoints, for GDB.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -31,36 +31,17 @@
 #include "xml-syscall.h"
 
 /* An instance of this type is used to represent a syscall catchpoint.
-   It includes a "struct breakpoint" as a kind of base class; users
-   downcast to "struct breakpoint *" when needed.  A breakpoint is
-   really of this type iff its ops pointer points to
+   A breakpoint is really of this type iff its ops pointer points to
    CATCH_SYSCALL_BREAKPOINT_OPS.  */
 
-struct syscall_catchpoint
+struct syscall_catchpoint : public breakpoint
 {
-  /* The base class.  */
-  struct breakpoint base;
-
   /* Syscall numbers used for the 'catch syscall' feature.  If no
-     syscall has been specified for filtering, its value is NULL.
-     Otherwise, it holds a list of all syscalls to be caught.  The
-     list elements are allocated with xmalloc.  */
-  VEC(int) *syscalls_to_be_caught;
+     syscall has been specified for filtering, it is empty.
+     Otherwise, it holds a list of all syscalls to be caught.  */
+  std::vector<int> syscalls_to_be_caught;
 };
 
-/* Implement the "dtor" breakpoint_ops method for syscall
-   catchpoints.  */
-
-static void
-dtor_catch_syscall (struct breakpoint *b)
-{
-  struct syscall_catchpoint *c = (struct syscall_catchpoint *) b;
-
-  VEC_free (int, c->syscalls_to_be_caught);
-
-  base_breakpoint_ops.dtor (b);
-}
-
 static const struct inferior_data *catch_syscall_inferior_data = NULL;
 
 struct catch_syscall_inferior_data
@@ -73,14 +54,14 @@ struct catch_syscall_inferior_data
   int any_syscall_count;
 
   /* Count of each system call.  */
-  VEC(int) *syscalls_counts;
+  std::vector<int> syscalls_counts;
 
   /* This counts all syscall catch requests, so we can readily determine
      if any catching is necessary.  */
   int total_syscalls_count;
 };
 
-static struct catch_syscall_inferior_data*
+static struct catch_syscall_inferior_data *
 get_catch_syscall_inferior_data (struct inferior *inf)
 {
   struct catch_syscall_inferior_data *inf_data;
@@ -89,7 +70,7 @@ get_catch_syscall_inferior_data (struct 
 	      inferior_data (inf, catch_syscall_inferior_data));
   if (inf_data == NULL)
     {
-      inf_data = XCNEW (struct catch_syscall_inferior_data);
+      inf_data = new struct catch_syscall_inferior_data ();
       set_inferior_data (inf, catch_syscall_inferior_data, inf_data);
     }
 
@@ -99,7 +80,9 @@ get_catch_syscall_inferior_data (struct 
 static void
 catch_syscall_inferior_data_cleanup (struct inferior *inf, void *arg)
 {
-  xfree (arg);
+  struct catch_syscall_inferior_data *inf_data
+    = (struct catch_syscall_inferior_data *) arg;
+  delete inf_data;
 }
 
 
@@ -115,43 +98,22 @@ insert_catch_syscall (struct bp_location
     = get_catch_syscall_inferior_data (inf);
 
   ++inf_data->total_syscalls_count;
-  if (!c->syscalls_to_be_caught)
+  if (c->syscalls_to_be_caught.empty ())
     ++inf_data->any_syscall_count;
   else
     {
-      int i, iter;
-
-      for (i = 0;
-           VEC_iterate (int, c->syscalls_to_be_caught, i, iter);
-           i++)
+      for (int iter : c->syscalls_to_be_caught)
 	{
-          int elem;
-
-	  if (iter >= VEC_length (int, inf_data->syscalls_counts))
-	    {
-              int old_size = VEC_length (int, inf_data->syscalls_counts);
-              uintptr_t vec_addr_offset
-		= old_size * ((uintptr_t) sizeof (int));
-              uintptr_t vec_addr;
-              VEC_safe_grow (int, inf_data->syscalls_counts, iter + 1);
-              vec_addr = ((uintptr_t) VEC_address (int,
-						  inf_data->syscalls_counts)
-			  + vec_addr_offset);
-              memset ((void *) vec_addr, 0,
-                      (iter + 1 - old_size) * sizeof (int));
-	    }
-          elem = VEC_index (int, inf_data->syscalls_counts, iter);
-          VEC_replace (int, inf_data->syscalls_counts, iter, ++elem);
+	  if (iter >= inf_data->syscalls_counts.size ())
+	    inf_data->syscalls_counts.resize (iter + 1);
+	  ++inf_data->syscalls_counts[iter];
 	}
     }
 
   return target_set_syscall_catchpoint (ptid_get_pid (inferior_ptid),
 					inf_data->total_syscalls_count != 0,
 					inf_data->any_syscall_count,
-					VEC_length (int,
-						    inf_data->syscalls_counts),
-					VEC_address (int,
-						     inf_data->syscalls_counts));
+					inf_data->syscalls_counts);
 }
 
 /* Implement the "remove" breakpoint_ops method for syscall
@@ -166,32 +128,23 @@ remove_catch_syscall (struct bp_location
     = get_catch_syscall_inferior_data (inf);
 
   --inf_data->total_syscalls_count;
-  if (!c->syscalls_to_be_caught)
+  if (c->syscalls_to_be_caught.empty ())
     --inf_data->any_syscall_count;
   else
     {
-      int i, iter;
-
-      for (i = 0;
-           VEC_iterate (int, c->syscalls_to_be_caught, i, iter);
-           i++)
+      for (int iter : c->syscalls_to_be_caught)
 	{
-          int elem;
-	  if (iter >= VEC_length (int, inf_data->syscalls_counts))
+	  if (iter >= inf_data->syscalls_counts.size ())
 	    /* Shouldn't happen.  */
 	    continue;
-          elem = VEC_index (int, inf_data->syscalls_counts, iter);
-          VEC_replace (int, inf_data->syscalls_counts, iter, --elem);
+          --inf_data->syscalls_counts[iter];
         }
     }
 
   return target_set_syscall_catchpoint (ptid_get_pid (inferior_ptid),
 					inf_data->total_syscalls_count != 0,
 					inf_data->any_syscall_count,
-					VEC_length (int,
-						    inf_data->syscalls_counts),
-					VEC_address (int,
-						     inf_data->syscalls_counts));
+					inf_data->syscalls_counts);
 }
 
 /* Implement the "breakpoint_hit" breakpoint_ops method for syscall
@@ -199,7 +152,7 @@ remove_catch_syscall (struct bp_location
 
 static int
 breakpoint_hit_catch_syscall (const struct bp_location *bl,
-			      struct address_space *aspace, CORE_ADDR bp_addr,
+			      const address_space *aspace, CORE_ADDR bp_addr,
 			      const struct target_waitstatus *ws)
 {
   /* We must check if we are catching specific syscalls in this
@@ -216,13 +169,9 @@ breakpoint_hit_catch_syscall (const stru
   syscall_number = ws->value.syscall_number;
 
   /* Now, checking if the syscall is the same.  */
-  if (c->syscalls_to_be_caught)
+  if (!c->syscalls_to_be_caught.empty ())
     {
-      int i, iter;
-
-      for (i = 0;
-           VEC_iterate (int, c->syscalls_to_be_caught, i, iter);
-           i++)
+      for (int iter : c->syscalls_to_be_caught)
 	if (syscall_number == iter)
 	  return 1;
 
@@ -305,20 +254,16 @@ print_one_catch_syscall (struct breakpoi
     uiout->field_skip ("addr");
   annotate_field (5);
 
-  if (c->syscalls_to_be_caught
-      && VEC_length (int, c->syscalls_to_be_caught) > 1)
+  if (c->syscalls_to_be_caught.size () > 1)
     uiout->text ("syscalls \"");
   else
     uiout->text ("syscall \"");
 
-  if (c->syscalls_to_be_caught)
+  if (!c->syscalls_to_be_caught.empty ())
     {
-      int i, iter;
       char *text = xstrprintf ("%s", "");
 
-      for (i = 0;
-           VEC_iterate (int, c->syscalls_to_be_caught, i, iter);
-           i++)
+      for (int iter : c->syscalls_to_be_caught)
         {
           char *x = text;
           struct syscall s;
@@ -355,23 +300,19 @@ print_mention_catch_syscall (struct brea
   struct syscall_catchpoint *c = (struct syscall_catchpoint *) b;
   struct gdbarch *gdbarch = b->loc->gdbarch;
 
-  if (c->syscalls_to_be_caught)
+  if (!c->syscalls_to_be_caught.empty ())
     {
-      int i, iter;
-
-      if (VEC_length (int, c->syscalls_to_be_caught) > 1)
+      if (c->syscalls_to_be_caught.size () > 1)
         printf_filtered (_("Catchpoint %d (syscalls"), b->number);
       else
         printf_filtered (_("Catchpoint %d (syscall"), b->number);
 
-      for (i = 0;
-           VEC_iterate (int, c->syscalls_to_be_caught, i, iter);
-           i++)
+      for (int iter : c->syscalls_to_be_caught)
         {
           struct syscall s;
           get_syscall_by_number (gdbarch, iter, &s);
 
-          if (s.name)
+          if (s.name != NULL)
             printf_filtered (" '%s' [%d]", s.name, s.number);
           else
             printf_filtered (" %d", s.number);
@@ -394,23 +335,17 @@ print_recreate_catch_syscall (struct bre
 
   fprintf_unfiltered (fp, "catch syscall");
 
-  if (c->syscalls_to_be_caught)
+  for (int iter : c->syscalls_to_be_caught)
     {
-      int i, iter;
-
-      for (i = 0;
-           VEC_iterate (int, c->syscalls_to_be_caught, i, iter);
-           i++)
-        {
-          struct syscall s;
+      struct syscall s;
 
-          get_syscall_by_number (gdbarch, iter, &s);
-          if (s.name)
-            fprintf_unfiltered (fp, " %s", s.name);
-          else
-            fprintf_unfiltered (fp, " %d", s.number);
-        }
+      get_syscall_by_number (gdbarch, iter, &s);
+      if (s.name != NULL)
+	fprintf_unfiltered (fp, " %s", s.name);
+      else
+	fprintf_unfiltered (fp, " %d", s.number);
     }
+
   print_recreate_thread (b, fp);
 }
 
@@ -427,26 +362,24 @@ syscall_catchpoint_p (struct breakpoint 
 }
 
 static void
-create_syscall_event_catchpoint (int tempflag, VEC(int) *filter,
+create_syscall_event_catchpoint (int tempflag, std::vector<int> &&filter,
                                  const struct breakpoint_ops *ops)
 {
-  struct syscall_catchpoint *c;
   struct gdbarch *gdbarch = get_current_arch ();
 
-  c = new syscall_catchpoint ();
-  init_catchpoint (&c->base, gdbarch, tempflag, NULL, ops);
-  c->syscalls_to_be_caught = filter;
+  std::unique_ptr<syscall_catchpoint> c (new syscall_catchpoint ());
+  init_catchpoint (c.get (), gdbarch, tempflag, NULL, ops);
+  c->syscalls_to_be_caught = std::move (filter);
 
-  install_breakpoint (0, &c->base, 1);
+  install_breakpoint (0, std::move (c), 1);
 }
 
-/* Splits the argument using space as delimiter.  Returns an xmalloc'd
-   filter list, or NULL if no filtering is required.  */
-static VEC(int) *
-catch_syscall_split_args (char *arg)
+/* Splits the argument using space as delimiter.  */
+
+static std::vector<int>
+catch_syscall_split_args (const char *arg)
 {
-  VEC(int) *result = NULL;
-  struct cleanup *cleanup = make_cleanup (VEC_cleanup (int), &result);
+  std::vector<int> result;
   struct gdbarch *gdbarch = target_gdbarch ();
 
   while (*arg != '\0')
@@ -469,7 +402,7 @@ catch_syscall_split_args (char *arg)
       if (*endptr == '\0')
 	{
 	  get_syscall_by_number (gdbarch, syscall_number, &s);
-	  VEC_safe_push (int, result, s.number);
+	  result.push_back (s.number);
 	}
       else if (startswith (cur_name, "g:")
 	       || startswith (cur_name, "group:"))
@@ -491,7 +424,7 @@ catch_syscall_split_args (char *arg)
 	    {
 	      /* Insert each syscall that are part of the group.  No
 		 need to check if it is valid.  */
-	      VEC_safe_push (int, result, syscall_list[i].number);
+	      result.push_back (syscall_list[i].number);
 	    }
 
 	  xfree (syscall_list);
@@ -509,22 +442,21 @@ catch_syscall_split_args (char *arg)
 	    error (_("Unknown syscall name '%s'."), cur_name);
 
 	  /* Ok, it's valid.  */
-	  VEC_safe_push (int, result, s.number);
+	  result.push_back (s.number);
 	}
     }
 
-  discard_cleanups (cleanup);
   return result;
 }
 
 /* Implement the "catch syscall" command.  */
 
 static void
-catch_syscall_command_1 (char *arg, int from_tty, 
+catch_syscall_command_1 (const char *arg, int from_tty, 
 			 struct cmd_list_element *command)
 {
   int tempflag;
-  VEC(int) *filter;
+  std::vector<int> filter;
   struct syscall s;
   struct gdbarch *gdbarch = get_current_arch ();
 
@@ -551,10 +483,8 @@ this architecture yet."));
 
   if (arg != NULL)
     filter = catch_syscall_split_args (arg);
-  else
-    filter = NULL;
 
-  create_syscall_event_catchpoint (tempflag, filter,
+  create_syscall_event_catchpoint (tempflag, std::move (filter),
 				   &catch_syscall_breakpoint_ops);
 }
 
@@ -595,12 +525,9 @@ catching_syscall_number_1 (struct breakp
     {
       struct syscall_catchpoint *c = (struct syscall_catchpoint *) b;
 
-      if (c->syscalls_to_be_caught)
+      if (!c->syscalls_to_be_caught.empty ())
 	{
-	  int i, iter;
-	  for (i = 0;
-	       VEC_iterate (int, c->syscalls_to_be_caught, i, iter);
-	       i++)
+	  for (int iter : c->syscalls_to_be_caught)
 	    if (syscall_number == iter)
 	      return 1;
 	}
@@ -621,19 +548,15 @@ catching_syscall_number (int syscall_num
 }
 
 /* Complete syscall names.  Used by "catch syscall".  */
-static VEC (char_ptr) *
+
+static void
 catch_syscall_completer (struct cmd_list_element *cmd,
+			 completion_tracker &tracker,
                          const char *text, const char *word)
 {
   struct gdbarch *gdbarch = get_current_arch ();
-  struct cleanup *cleanups = make_cleanup (null_cleanup, NULL);
-  VEC (char_ptr) *group_retlist = NULL;
-  VEC (char_ptr) *syscall_retlist = NULL;
-  VEC (char_ptr) *retlist = NULL;
-  const char **group_list = NULL;
-  const char **syscall_list = NULL;
+  gdb::unique_xmalloc_ptr<const char *> group_list;
   const char *prefix;
-  int i;
 
   /* Completion considers ':' to be a word separator, so we use this to
      verify whether the previous word was a group prefix.  If so, we
@@ -644,40 +567,34 @@ catch_syscall_completer (struct cmd_list
   if (startswith (prefix, "g:") || startswith (prefix, "group:"))
     {
       /* Perform completion inside 'group:' namespace only.  */
-      group_list = get_syscall_group_names (gdbarch);
-      retlist = (group_list == NULL
-		 ? NULL : complete_on_enum (group_list, word, word));
+      group_list.reset (get_syscall_group_names (gdbarch));
+      if (group_list != NULL)
+	complete_on_enum (tracker, group_list.get (), word, word);
     }
   else
     {
       /* Complete with both, syscall names and groups.  */
-      syscall_list = get_syscall_names (gdbarch);
-      group_list = get_syscall_group_names (gdbarch);
-
-      /* Append "group:" prefix to syscall groups.  */
-      for (i = 0; group_list[i] != NULL; i++)
-	{
-	  char *prefixed_group = xstrprintf ("group:%s", group_list[i]);
+      gdb::unique_xmalloc_ptr<const char *> syscall_list
+	(get_syscall_names (gdbarch));
+      group_list.reset (get_syscall_group_names (gdbarch));
 
-	  group_list[i] = prefixed_group;
-	  make_cleanup (xfree, prefixed_group);
-	}
+      const char **group_ptr = group_list.get ();
 
-      syscall_retlist = ((syscall_list == NULL)
-			 ? NULL : complete_on_enum (syscall_list, word, word));
-      group_retlist = ((group_list == NULL)
-		       ? NULL : complete_on_enum (group_list, word, word));
+      /* Hold on to strings while we're using them.  */
+      std::vector<std::string> holders;
 
-      retlist = VEC_merge (char_ptr, syscall_retlist, group_retlist);
-    }
+      /* Append "group:" prefix to syscall groups.  */
+      for (int i = 0; group_ptr[i] != NULL; i++)
+	holders.push_back (string_printf ("group:%s", group_ptr[i]));
 
-  VEC_free (char_ptr, syscall_retlist);
-  VEC_free (char_ptr, group_retlist);
-  xfree (syscall_list);
-  xfree (group_list);
-  do_cleanups (cleanups);
+      for (int i = 0; group_ptr[i] != NULL; i++)
+	group_ptr[i] = holders[i].c_str ();
 
-  return retlist;
+      if (syscall_list != NULL)
+	complete_on_enum (tracker, syscall_list.get (), word, word);
+      if (group_list != NULL)
+	complete_on_enum (tracker, group_ptr, word, word);
+    }
 }
 
 static void
@@ -688,7 +605,7 @@ clear_syscall_counts (struct inferior *i
 
   inf_data->total_syscalls_count = 0;
   inf_data->any_syscall_count = 0;
-  VEC_free (int, inf_data->syscalls_counts);
+  inf_data->syscalls_counts.clear ();
 }
 
 static void
@@ -701,7 +618,6 @@ initialize_syscall_catchpoint_ops (void)
   /* Syscall catchpoints.  */
   ops = &catch_syscall_breakpoint_ops;
   *ops = base_breakpoint_ops;
-  ops->dtor = dtor_catch_syscall;
   ops->insert_location = insert_catch_syscall;
   ops->remove_location = remove_catch_syscall;
   ops->breakpoint_hit = breakpoint_hit_catch_syscall;
@@ -711,8 +627,6 @@ initialize_syscall_catchpoint_ops (void)
   ops->print_recreate = print_recreate_catch_syscall;
 }
 
-initialize_file_ftype _initialize_break_catch_syscall;
-
 void
 _initialize_break_catch_syscall (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/break-catch-throw.c ./gdb/break-catch-throw.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/break-catch-throw.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/break-catch-throw.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Everything about catch/throw catchpoints, for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -74,25 +74,21 @@ static struct breakpoint_ops gnu_v3_exce
 
 /* The type of an exception catchpoint.  */
 
-struct exception_catchpoint
+struct exception_catchpoint : public breakpoint
 {
-  /* The base class.  */
-
-  struct breakpoint base;
-
   /* The kind of exception catchpoint.  */
 
   enum exception_event_kind kind;
 
-  /* If non-NULL, an xmalloc'd string holding the source form of the
-     regular expression to match against.  */
+  /* If not empty, a string holding the source form of the regular
+     expression to match against.  */
 
-  char *exception_rx;
+  std::string exception_rx;
 
-  /* If non-NULL, an xmalloc'd, compiled regular expression which is
-     used to determine which exceptions to stop on.  */
+  /* If non-NULL, a compiled regular expression which is used to
+     determine which exceptions to stop on.  */
 
-  regex_t *pattern;
+  std::unique_ptr<compiled_regex> pattern;
 };
 
 
@@ -110,20 +106,20 @@ fetch_probe_arguments (struct value **ar
   unsigned n_args;
 
   pc_probe = find_probe_by_pc (pc);
-  if (pc_probe.probe == NULL
-      || strcmp (pc_probe.probe->provider, "libstdcxx") != 0
-      || (strcmp (pc_probe.probe->name, "catch") != 0
-	  && strcmp (pc_probe.probe->name, "throw") != 0
-	  && strcmp (pc_probe.probe->name, "rethrow") != 0))
+  if (pc_probe.prob == NULL
+      || pc_probe.prob->get_provider () != "libstdcxx"
+      || (pc_probe.prob->get_name () != "catch"
+	  && pc_probe.prob->get_name () != "throw"
+	  && pc_probe.prob->get_name () != "rethrow"))
     error (_("not stopped at a C++ exception catchpoint"));
 
-  n_args = get_probe_argument_count (pc_probe.probe, frame);
+  n_args = pc_probe.prob->get_argument_count (frame);
   if (n_args < 2)
     error (_("C++ exception catchpoint has too few arguments"));
 
   if (arg0 != NULL)
-    *arg0 = evaluate_probe_argument (pc_probe.probe, 0, frame);
-  *arg1 = evaluate_probe_argument (pc_probe.probe, 1, frame);
+    *arg0 = pc_probe.prob->evaluate_argument (0, frame);
+  *arg1 = pc_probe.prob->evaluate_argument (1, frame);
 
   if ((arg0 != NULL && *arg0 == NULL) || *arg1 == NULL)
     error (_("error computing probe argument at c++ exception catchpoint"));
@@ -142,19 +138,6 @@ classify_exception_breakpoint (struct br
   return cp->kind;
 }
 
-/* Implement the 'dtor' method.  */
-
-static void
-dtor_exception_catchpoint (struct breakpoint *self)
-{
-  struct exception_catchpoint *cp = (struct exception_catchpoint *) self;
-
-  xfree (cp->exception_rx);
-  if (cp->pattern != NULL)
-    regfree (cp->pattern);
-  bkpt_breakpoint_ops.dtor (self);
-}
-
 /* Implement the 'check_status' method.  */
 
 static void
@@ -191,7 +174,7 @@ check_status_exception_catchpoint (struc
 
   if (!type_name.empty ())
     {
-      if (regexec (self->pattern, type_name.c_str (), 0, NULL, 0) != 0)
+      if (self->pattern->exec (type_name.c_str (), 0, NULL, 0) != 0)
 	bs->stop = 0;
     }
 }
@@ -201,9 +184,7 @@ check_status_exception_catchpoint (struc
 static void
 re_set_exception_catchpoint (struct breakpoint *self)
 {
-  struct symtabs_and_lines sals = {0};
-  struct symtabs_and_lines sals_end = {0};
-  struct cleanup *cleanup;
+  std::vector<symtab_and_line> sals;
   enum exception_event_kind kind = classify_exception_breakpoint (self);
   struct program_space *filter_pspace = current_program_space;
 
@@ -226,8 +207,8 @@ re_set_exception_catchpoint (struct brea
 	  explicit_loc.function_name
 	    = ASTRDUP (exception_functions[kind].function);
 	  event_location_up location = new_explicit_location (&explicit_loc);
-	  self->ops->decode_location (self, location.get (), filter_pspace,
-				      &sals);
+	  sals = self->ops->decode_location (self, location.get (),
+					     filter_pspace);
 	}
       CATCH (ex, RETURN_MASK_ERROR)
 	{
@@ -240,9 +221,7 @@ re_set_exception_catchpoint (struct brea
     }
   END_CATCH
 
-  cleanup = make_cleanup (xfree, sals.sals);
-  update_breakpoint_locations (self, filter_pspace, sals, sals_end);
-  do_cleanups (cleanup);
+  update_breakpoint_locations (self, filter_pspace, sals, {});
 }
 
 static enum print_stop_action
@@ -327,10 +306,10 @@ print_one_detail_exception_catchpoint (c
   const struct exception_catchpoint *cp
     = (const struct exception_catchpoint *) b;
 
-  if (cp->exception_rx != NULL)
+  if (!cp->exception_rx.empty ())
     {
       uiout->text (_("\tmatching: "));
-      uiout->field_string ("regexp", cp->exception_rx);
+      uiout->field_string ("regexp", cp->exception_rx.c_str ());
       uiout->text ("\n");
     }
 }
@@ -379,36 +358,32 @@ print_recreate_exception_catchpoint (str
 }
 
 static void
-handle_gnu_v3_exceptions (int tempflag, char *except_rx,
+handle_gnu_v3_exceptions (int tempflag, std::string &&except_rx,
 			  const char *cond_string,
 			  enum exception_event_kind ex_event, int from_tty)
 {
-  regex_t *pattern = NULL;
+  std::unique_ptr<compiled_regex> pattern;
 
-  if (except_rx != NULL)
+  if (!except_rx.empty ())
     {
-      pattern = XNEW (regex_t);
-      make_cleanup (xfree, pattern);
-
-      compile_rx_or_error (pattern, except_rx,
-			   _("invalid type-matching regexp"));
+      pattern.reset (new compiled_regex (except_rx.c_str (), REG_NOSUB,
+					 _("invalid type-matching regexp")));
     }
 
   std::unique_ptr<exception_catchpoint> cp (new exception_catchpoint ());
 
-  init_catchpoint (&cp->base, get_current_arch (), tempflag, cond_string,
+  init_catchpoint (cp.get (), get_current_arch (), tempflag, cond_string,
 		   &gnu_v3_exception_catchpoint_ops);
   /* We need to reset 'type' in order for code in breakpoint.c to do
      the right thing.  */
-  cp->base.type = bp_breakpoint;
+  cp->type = bp_breakpoint;
   cp->kind = ex_event;
-  cp->exception_rx = except_rx;
-  cp->pattern = pattern;
+  cp->exception_rx = std::move (except_rx);
+  cp->pattern = std::move (pattern);
 
-  re_set_exception_catchpoint (&cp->base);
+  re_set_exception_catchpoint (cp.get ());
 
-  install_breakpoint (0, &cp->base, 1);
-  cp.release ();
+  install_breakpoint (0, std::move (cp), 1);
 }
 
 /* Look for an "if" token in *STRING.  The "if" token must be preceded
@@ -421,13 +396,13 @@ handle_gnu_v3_exceptions (int tempflag, 
    STRING is updated to point to the "if" token, if it exists, or to
    the end of the string.  */
 
-static char *
+static std::string
 extract_exception_regexp (const char **string)
 {
   const char *start;
   const char *last, *last_space;
 
-  start = skip_spaces_const (*string);
+  start = skip_spaces (*string);
 
   last = start;
   last_space = start;
@@ -441,13 +416,13 @@ extract_exception_regexp (const char **s
 
       /* No "if" token here.  Skip to the next word start.  */
       last_space = skip_to_space (last);
-      last = skip_spaces_const (last_space);
+      last = skip_spaces (last_space);
     }
 
   *string = last;
   if (last_space > start)
-    return savestring (start, last_space - start);
-  return NULL;
+    return std::string (start, last_space - start);
+  return std::string ();
 }
 
 /* Deal with "catch catch", "catch throw", and "catch rethrow"
@@ -455,20 +430,16 @@ extract_exception_regexp (const char **s
 
 static void
 catch_exception_command_1 (enum exception_event_kind ex_event,
-			   char *arg_entry,
+			   const char *arg,
 			   int tempflag, int from_tty)
 {
-  char *except_rx;
   const char *cond_string = NULL;
-  struct cleanup *cleanup;
-  const char *arg = arg_entry;
 
   if (!arg)
     arg = "";
-  arg = skip_spaces_const (arg);
+  arg = skip_spaces (arg);
 
-  except_rx = extract_exception_regexp (&arg);
-  cleanup = make_cleanup (xfree, except_rx);
+  std::string except_rx = extract_exception_regexp (&arg);
 
   cond_string = ep_parse_optional_if_clause (&arg);
 
@@ -480,16 +451,15 @@ catch_exception_command_1 (enum exceptio
       && ex_event != EX_EVENT_RETHROW)
     error (_("Unsupported or unknown exception event; cannot catch it"));
 
-  handle_gnu_v3_exceptions (tempflag, except_rx, cond_string,
+  handle_gnu_v3_exceptions (tempflag, std::move (except_rx), cond_string,
 			    ex_event, from_tty);
-
-  discard_cleanups (cleanup);
 }
 
 /* Implementation of "catch catch" command.  */
 
 static void
-catch_catch_command (char *arg, int from_tty, struct cmd_list_element *command)
+catch_catch_command (const char *arg, int from_tty,
+		     struct cmd_list_element *command)
 {
   int tempflag = get_cmd_context (command) == CATCH_TEMPORARY;
 
@@ -499,7 +469,8 @@ catch_catch_command (char *arg, int from
 /* Implementation of "catch throw" command.  */
 
 static void
-catch_throw_command (char *arg, int from_tty, struct cmd_list_element *command)
+catch_throw_command (const char *arg, int from_tty,
+		     struct cmd_list_element *command)
 {
   int tempflag = get_cmd_context (command) == CATCH_TEMPORARY;
 
@@ -509,7 +480,7 @@ catch_throw_command (char *arg, int from
 /* Implementation of "catch rethrow" command.  */
 
 static void
-catch_rethrow_command (char *arg, int from_tty,
+catch_rethrow_command (const char *arg, int from_tty,
 		       struct cmd_list_element *command)
 {
   int tempflag = get_cmd_context (command) == CATCH_TEMPORARY;
@@ -558,7 +529,6 @@ initialize_throw_catchpoint_ops (void)
   /* GNU v3 exception catchpoints.  */
   ops = &gnu_v3_exception_catchpoint_ops;
   *ops = bkpt_breakpoint_ops;
-  ops->dtor = dtor_exception_catchpoint;
   ops->re_set = re_set_exception_catchpoint;
   ops->print_it = print_it_exception_catchpoint;
   ops->print_one = print_one_exception_catchpoint;
@@ -568,8 +538,6 @@ initialize_throw_catchpoint_ops (void)
   ops->check_status = check_status_exception_catchpoint;
 }
 
-initialize_file_ftype _initialize_break_catch_throw;
-
 void
 _initialize_break_catch_throw (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/breakpoint.c ./gdb/breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/breakpoint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/breakpoint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Everything about breakpoints, for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -44,7 +44,6 @@
 #include "source.h"
 #include "linespec.h"
 #include "completer.h"
-#include "gdb.h"
 #include "ui-out.h"
 #include "cli/cli-script.h"
 #include "block.h"
@@ -80,6 +79,9 @@
 #include "mi/mi-common.h"
 #include "extension.h"
 #include <algorithm>
+#include "progspace-and-thread.h"
+#include "common/array-view.h"
+#include "common/gdb_optional.h"
 
 /* Enums for exception-handling support.  */
 enum exception_event_kind
@@ -91,24 +93,8 @@ enum exception_event_kind
 
 /* Prototypes for local functions.  */
 
-static void enable_delete_command (char *, int);
-
-static void enable_once_command (char *, int);
-
-static void enable_count_command (char *, int);
-
-static void disable_command (char *, int);
-
-static void enable_command (char *, int);
-
 static void map_breakpoint_numbers (const char *,
-				    void (*) (struct breakpoint *,
-					      void *),
-				    void *);
-
-static void ignore_command (char *, int);
-
-static int breakpoint_re_set_one (void *);
+				    gdb::function_view<void (breakpoint *)>);
 
 static void breakpoint_re_set_default (struct breakpoint *);
 
@@ -119,25 +105,20 @@ static void
 
 static void create_breakpoints_sal_default (struct gdbarch *,
 					    struct linespec_result *,
-					    char *, char *, enum bptype,
+					    gdb::unique_xmalloc_ptr<char>,
+					    gdb::unique_xmalloc_ptr<char>,
+					    enum bptype,
 					    enum bpdisp, int, int,
 					    int,
 					    const struct breakpoint_ops *,
 					    int, int, int, unsigned);
 
-static void decode_location_default (struct breakpoint *b,
-				     const struct event_location *location,
-				     struct program_space *search_pspace,
-				     struct symtabs_and_lines *sals);
-
-static void clear_command (char *, int);
-
-static void catch_command (char *, int);
+static std::vector<symtab_and_line> decode_location_default
+  (struct breakpoint *b, const struct event_location *location,
+   struct program_space *search_pspace);
 
 static int can_use_hardware_watchpoint (struct value *);
 
-static void break_command_1 (char *, int, int);
-
 static void mention (struct breakpoint *);
 
 static struct breakpoint *set_raw_breakpoint_without_location (struct gdbarch *,
@@ -173,37 +154,18 @@ static int watchpoint_locations_match (s
 				       struct bp_location *loc2);
 
 static int breakpoint_location_address_match (struct bp_location *bl,
-					      struct address_space *aspace,
+					      const struct address_space *aspace,
 					      CORE_ADDR addr);
 
 static int breakpoint_location_address_range_overlap (struct bp_location *,
-						      struct address_space *,
+						      const address_space *,
 						      CORE_ADDR, int);
 
-static void breakpoints_info (char *, int);
-
-static void watchpoints_info (char *, int);
-
-static int breakpoint_1 (char *, int, 
-			 int (*) (const struct breakpoint *));
-
-static int breakpoint_cond_eval (void *);
-
-static void cleanup_executing_breakpoints (void *);
-
-static void commands_command (char *, int);
-
-static void condition_command (char *, int);
-
 static int remove_breakpoint (struct bp_location *);
 static int remove_breakpoint_1 (struct bp_location *, enum remove_bp_reason);
 
 static enum print_stop_action print_bp_stop_message (bpstat bs);
 
-static int watchpoint_check (void *);
-
-static void maintenance_info_breakpoints (char *, int);
-
 static int hw_breakpoint_used_count (void);
 
 static int hw_watchpoint_use_count (struct breakpoint *);
@@ -212,21 +174,9 @@ static int hw_watchpoint_used_count_othe
 					    enum bptype type,
 					    int *other_type_used);
 
-static void hbreak_command (char *, int);
-
-static void thbreak_command (char *, int);
-
 static void enable_breakpoint_disp (struct breakpoint *, enum bpdisp,
 				    int count);
 
-static void stop_command (char *arg, int from_tty);
-
-static void stopin_command (char *arg, int from_tty);
-
-static void stopat_command (char *arg, int from_tty);
-
-static void tcatch_command (char *arg, int from_tty);
-
 static void free_bp_location (struct bp_location *loc);
 static void incref_bp_location (struct bp_location *loc);
 static void decref_bp_location (struct bp_location **loc);
@@ -276,15 +226,7 @@ static int is_hardware_watchpoint (const
 
 static void insert_breakpoint_locations (void);
 
-static void tracepoints_info (char *, int);
-
-static void delete_trace_command (char *, int);
-
-static void enable_trace_command (char *, int);
-
-static void disable_trace_command (char *, int);
-
-static void trace_pass_command (char *, int);
+static void trace_pass_command (const char *, int);
 
 static void set_tracepoint_count (int num);
 
@@ -308,9 +250,6 @@ static struct breakpoint_ops internal_br
 /* Momentary breakpoints class type.  */
 static struct breakpoint_ops momentary_breakpoint_ops;
 
-/* Momentary breakpoints for bp_longjmp and bp_exception class type.  */
-static struct breakpoint_ops longjmp_breakpoint_ops;
-
 /* The breakpoint_ops structure to be used in regular user created
    breakpoints.  */
 struct breakpoint_ops bkpt_breakpoint_ops;
@@ -360,21 +299,10 @@ static char *dprintf_channel;
    has disconnected.  */
 static int disconnected_dprintf = 1;
 
-/* A reference-counted struct command_line.  This lets multiple
-   breakpoints share a single command list.  */
-struct counted_command_line
-{
-  /* The reference count.  */
-  int refc;
-
-  /* The command list.  */
-  struct command_line *commands;
-};
-
 struct command_line *
 breakpoint_commands (struct breakpoint *b)
 {
-  return b->commands ? b->commands->commands : NULL;
+  return b->commands ? b->commands.get () : NULL;
 }
 
 /* Flag indicating that a command has proceeded the inferior past the
@@ -551,8 +479,6 @@ gdb_evaluates_breakpoint_condition_p (vo
   return (mode == condition_evaluation_host);
 }
 
-void _initialize_breakpoint (void);
-
 /* Are we executing breakpoint commands?  */
 static int executing_breakpoint_commands;
 
@@ -694,8 +620,7 @@ static int rbreak_start_breakpoint_count
 /* Called at the start an "rbreak" command to record the first
    breakpoint made.  */
 
-void
-start_rbreak_breakpoints (void)
+scoped_rbreak_breakpoints::scoped_rbreak_breakpoints ()
 {
   rbreak_start_breakpoint_count = breakpoint_count;
 }
@@ -703,8 +628,7 @@ start_rbreak_breakpoints (void)
 /* Called at the end of an "rbreak" command to record the last
    breakpoint made.  */
 
-void
-end_rbreak_breakpoints (void)
+scoped_rbreak_breakpoints::~scoped_rbreak_breakpoints ()
 {
   prev_breakpoint_count = rbreak_start_breakpoint_count;
 }
@@ -720,64 +644,6 @@ clear_breakpoint_hit_counts (void)
     b->hit_count = 0;
 }
 
-/* Allocate a new counted_command_line with reference count of 1.
-   The new structure owns COMMANDS.  */
-
-static struct counted_command_line *
-alloc_counted_command_line (struct command_line *commands)
-{
-  struct counted_command_line *result = XNEW (struct counted_command_line);
-
-  result->refc = 1;
-  result->commands = commands;
-
-  return result;
-}
-
-/* Increment reference count.  This does nothing if CMD is NULL.  */
-
-static void
-incref_counted_command_line (struct counted_command_line *cmd)
-{
-  if (cmd)
-    ++cmd->refc;
-}
-
-/* Decrement reference count.  If the reference count reaches 0,
-   destroy the counted_command_line.  Sets *CMDP to NULL.  This does
-   nothing if *CMDP is NULL.  */
-
-static void
-decref_counted_command_line (struct counted_command_line **cmdp)
-{
-  if (*cmdp)
-    {
-      if (--(*cmdp)->refc == 0)
-	{
-	  free_command_lines (&(*cmdp)->commands);
-	  xfree (*cmdp);
-	}
-      *cmdp = NULL;
-    }
-}
-
-/* A cleanup function that calls decref_counted_command_line.  */
-
-static void
-do_cleanup_counted_command_line (void *arg)
-{
-  decref_counted_command_line ((struct counted_command_line **) arg);
-}
-
-/* Create a cleanup that calls decref_counted_command_line on the
-   argument.  */
-
-static struct cleanup *
-make_cleanup_decref_counted_command_line (struct counted_command_line **cmdp)
-{
-  return make_cleanup (do_cleanup_counted_command_line, cmdp);
-}
-
 
 /* Return the breakpoint with the specified number, or NULL
    if the number does not refer to an existing breakpoint.  */
@@ -844,7 +710,7 @@ mark_breakpoint_location_modified (struc
    condition_evaluation_mode.  */
 
 static void
-set_condition_evaluation_mode (char *args, int from_tty,
+set_condition_evaluation_mode (const char *args, int from_tty,
 			       struct cmd_list_element *c)
 {
   const char *old_mode, *new_mode;
@@ -947,7 +813,6 @@ get_first_locp_gte_addr (CORE_ADDR addre
   struct bp_location **locp_found = NULL;
 
   /* Initialize the dummy location's address field.  */
-  memset (&dummy_loc, 0, sizeof (struct bp_location));
   dummy_loc.address = address;
 
   /* Find a close match to the first location at ADDRESS.  */
@@ -1043,26 +908,26 @@ set_breakpoint_condition (struct breakpo
 
 /* Completion for the "condition" command.  */
 
-static VEC (char_ptr) *
+static void
 condition_completer (struct cmd_list_element *cmd,
+		     completion_tracker &tracker,
 		     const char *text, const char *word)
 {
   const char *space;
 
-  text = skip_spaces_const (text);
-  space = skip_to_space_const (text);
+  text = skip_spaces (text);
+  space = skip_to_space (text);
   if (*space == '\0')
     {
       int len;
       struct breakpoint *b;
-      VEC (char_ptr) *result = NULL;
 
       if (text[0] == '$')
 	{
 	  /* We don't support completion of history indices.  */
-	  if (isdigit (text[1]))
-	    return NULL;
-	  return complete_internalvar (&text[1]);
+	  if (!isdigit (text[1]))
+	    complete_internalvar (tracker, &text[1]);
+	  return;
 	}
 
       /* We're completing the breakpoint number.  */
@@ -1075,24 +940,27 @@ condition_completer (struct cmd_list_ele
 	  xsnprintf (number, sizeof (number), "%d", b->number);
 
 	  if (strncmp (number, text, len) == 0)
-	    VEC_safe_push (char_ptr, result, xstrdup (number));
+	    {
+	      gdb::unique_xmalloc_ptr<char> copy (xstrdup (number));
+	      tracker.add_completion (std::move (copy));
+	    }
 	}
 
-      return result;
+      return;
     }
 
   /* We're completing the expression part.  */
-  text = skip_spaces_const (space);
-  return expression_completer (cmd, text, word);
+  text = skip_spaces (space);
+  expression_completer (cmd, tracker, text, word);
 }
 
 /* condition N EXP -- set break condition of breakpoint N to EXP.  */
 
 static void
-condition_command (char *arg, int from_tty)
+condition_command (const char *arg, int from_tty)
 {
   struct breakpoint *b;
-  char *p;
+  const char *p;
   int bnum;
 
   if (arg == 0)
@@ -1160,22 +1028,51 @@ check_no_tracepoint_commands (struct com
     }
 }
 
+struct longjmp_breakpoint : public breakpoint
+{
+  ~longjmp_breakpoint () override;
+};
+
 /* Encapsulate tests for different types of tracepoints.  */
 
-static int
-is_tracepoint_type (enum bptype type)
+static bool
+is_tracepoint_type (bptype type)
 {
   return (type == bp_tracepoint
 	  || type == bp_fast_tracepoint
 	  || type == bp_static_tracepoint);
 }
 
+static bool
+is_longjmp_type (bptype type)
+{
+  return type == bp_longjmp || type == bp_exception;
+}
+
 int
 is_tracepoint (const struct breakpoint *b)
 {
   return is_tracepoint_type (b->type);
 }
 
+/* Factory function to create an appropriate instance of breakpoint given
+   TYPE.  */
+
+static std::unique_ptr<breakpoint>
+new_breakpoint_from_type (bptype type)
+{
+  breakpoint *b;
+
+  if (is_tracepoint_type (type))
+    b = new tracepoint ();
+  else if (is_longjmp_type (type))
+    b = new longjmp_breakpoint ();
+  else
+    b = new breakpoint ();
+
+  return std::unique_ptr<breakpoint> (b);
+}
+
 /* A helper function that validates that COMMANDS are valid for a
    breakpoint.  This function will throw an exception if a problem is
    found.  */
@@ -1274,8 +1171,7 @@ breakpoint_set_commands (struct breakpoi
 {
   validate_commands_for_breakpoint (b, commands.get ());
 
-  decref_counted_command_line (&b->commands);
-  b->commands = alloc_counted_command_line (commands.release ());
+  b->commands = std::move (commands);
   observer_notify_breakpoint_modified (b);
 }
 
@@ -1327,88 +1223,11 @@ check_tracepoint_command (char *line, vo
   validate_actionline (line, b);
 }
 
-/* A structure used to pass information through
-   map_breakpoint_numbers.  */
-
-struct commands_info
-{
-  /* True if the command was typed at a tty.  */
-  int from_tty;
-
-  /* The breakpoint range spec.  */
-  const char *arg;
-
-  /* Non-NULL if the body of the commands are being read from this
-     already-parsed command.  */
-  struct command_line *control;
-
-  /* The command lines read from the user, or NULL if they have not
-     yet been read.  */
-  struct counted_command_line *cmd;
-};
-
-/* A callback for map_breakpoint_numbers that sets the commands for
-   commands_command.  */
-
-static void
-do_map_commands_command (struct breakpoint *b, void *data)
-{
-  struct commands_info *info = (struct commands_info *) data;
-
-  if (info->cmd == NULL)
-    {
-      command_line_up l;
-
-      if (info->control != NULL)
-	l = copy_command_lines (info->control->body_list[0]);
-      else
-	{
-	  struct cleanup *old_chain;
-	  char *str;
-
-	  str = xstrprintf (_("Type commands for breakpoint(s) "
-			      "%s, one per line."),
-			    info->arg);
-
-	  old_chain = make_cleanup (xfree, str);
-
-	  l = read_command_lines (str,
-				  info->from_tty, 1,
-				  (is_tracepoint (b)
-				   ? check_tracepoint_command : 0),
-				  b);
-
-	  do_cleanups (old_chain);
-	}
-
-      info->cmd = alloc_counted_command_line (l.release ());
-    }
-
-  /* If a breakpoint was on the list more than once, we don't need to
-     do anything.  */
-  if (b->commands != info->cmd)
-    {
-      validate_commands_for_breakpoint (b, info->cmd->commands);
-      incref_counted_command_line (info->cmd);
-      decref_counted_command_line (&b->commands);
-      b->commands = info->cmd;
-      observer_notify_breakpoint_modified (b);
-    }
-}
-
 static void
 commands_command_1 (const char *arg, int from_tty,
 		    struct command_line *control)
 {
-  struct cleanup *cleanups;
-  struct commands_info info;
-
-  info.from_tty = from_tty;
-  info.control = control;
-  info.cmd = NULL;
-  /* If we read command lines from the user, then `info' will hold an
-     extra reference to the commands that we must clean up.  */
-  cleanups = make_cleanup_decref_counted_command_line (&info.cmd);
+  counted_command_line cmd;
 
   std::string new_arg;
 
@@ -1419,22 +1238,44 @@ commands_command_1 (const char *arg, int
 				 breakpoint_count);
       else if (breakpoint_count > 0)
 	new_arg = string_printf ("%d", breakpoint_count);
+      arg = new_arg.c_str ();
     }
-  else
-    new_arg = arg;
-
-  info.arg = new_arg.c_str ();
 
-  map_breakpoint_numbers (info.arg, do_map_commands_command, &info);
-
-  if (info.cmd == NULL)
-    error (_("No breakpoints specified."));
-
-  do_cleanups (cleanups);
+  map_breakpoint_numbers
+    (arg, [&] (breakpoint *b)
+     {
+       if (cmd == NULL)
+	 {
+	   if (control != NULL)
+	     cmd = copy_command_lines (control->body_list[0]);
+	   else
+	     {
+	       std::string str
+		 = string_printf (_("Type commands for breakpoint(s) "
+				    "%s, one per line."),
+				  arg);
+
+	       cmd = read_command_lines (&str[0],
+					 from_tty, 1,
+					 (is_tracepoint (b)
+					  ? check_tracepoint_command : 0),
+					 b);
+	     }
+	 }
+
+       /* If a breakpoint was on the list more than once, we don't need to
+	  do anything.  */
+       if (b->commands != cmd)
+	 {
+	   validate_commands_for_breakpoint (b, cmd.get ());
+	   b->commands = cmd;
+	   observer_notify_breakpoint_modified (b);
+	 }
+     });
 }
 
 static void
-commands_command (char *arg, int from_tty)
+commands_command (const char *arg, int from_tty)
 {
   commands_command_1 (arg, from_tty, NULL);
 }
@@ -1707,7 +1548,7 @@ is_watchpoint (const struct breakpoint *
 static int
 watchpoint_in_thread_scope (struct watchpoint *b)
 {
-  return (b->base.pspace == current_program_space
+  return (b->pspace == current_program_space
 	  && (ptid_equal (b->watchpoint_thread, null_ptid)
 	      || (ptid_equal (inferior_ptid, b->watchpoint_thread)
 		  && !is_executing (inferior_ptid))));
@@ -1719,17 +1560,15 @@ watchpoint_in_thread_scope (struct watch
 static void
 watchpoint_del_at_next_stop (struct watchpoint *w)
 {
-  struct breakpoint *b = &w->base;
-
-  if (b->related_breakpoint != b)
+  if (w->related_breakpoint != w)
     {
-      gdb_assert (b->related_breakpoint->type == bp_watchpoint_scope);
-      gdb_assert (b->related_breakpoint->related_breakpoint == b);
-      b->related_breakpoint->disposition = disp_del_at_next_stop;
-      b->related_breakpoint->related_breakpoint = b->related_breakpoint;
-      b->related_breakpoint = b;
+      gdb_assert (w->related_breakpoint->type == bp_watchpoint_scope);
+      gdb_assert (w->related_breakpoint->related_breakpoint == w);
+      w->related_breakpoint->disposition = disp_del_at_next_stop;
+      w->related_breakpoint->related_breakpoint = w->related_breakpoint;
+      w->related_breakpoint = w;
     }
-  b->disposition = disp_del_at_next_stop;
+  w->disposition = disp_del_at_next_stop;
 }
 
 /* Extract a bitfield value from value VAL using the bit parameters contained in
@@ -1850,7 +1689,7 @@ update_watchpoint (struct watchpoint *b,
   if (!watchpoint_in_thread_scope (b))
     return;
 
-  if (b->base.disposition == disp_del_at_next_stop)
+  if (b->disposition == disp_del_at_next_stop)
     return;
  
   frame_saved = 0;
@@ -1888,7 +1727,7 @@ update_watchpoint (struct watchpoint *b,
   /* We don't free locations.  They are stored in the bp_location array
      and update_global_location_list will eventually delete them and
      remove breakpoints if needed.  */
-  b->base.loc = NULL;
+  b->loc = NULL;
 
   if (within_current_scope && reparse)
     {
@@ -1908,11 +1747,11 @@ update_watchpoint (struct watchpoint *b,
       /* Note that unlike with breakpoints, the watchpoint's condition
 	 expression is stored in the breakpoint object, not in the
 	 locations (re)created below.  */
-      if (b->base.cond_string != NULL)
+      if (b->cond_string != NULL)
 	{
 	  b->cond_exp.reset ();
 
-	  s = b->base.cond_string;
+	  s = b->cond_string;
 	  b->cond_exp = parse_exp_1 (&s, 0, b->cond_exp_valid_block, 0);
 	}
     }
@@ -1929,8 +1768,8 @@ update_watchpoint (struct watchpoint *b,
 	 the target gains execution, through breakpoint_re_set.  */
       if (!can_use_hw_watchpoints)
 	{
-	  if (b->base.ops->works_in_software_mode (&b->base))
-	    b->base.type = bp_watchpoint;
+	  if (b->ops->works_in_software_mode (b))
+	    b->type = bp_watchpoint;
 	  else
 	    error (_("Can't set read/access watchpoint when "
 		     "hardware watchpoints are disabled."));
@@ -1950,7 +1789,7 @@ update_watchpoint (struct watchpoint *b,
 	 happens, the code that reports it updates b->val directly.
 	 We don't keep track of the memory value for masked
 	 watchpoints.  */
-      if (!b->val_valid && !is_masked_watchpoint (&b->base))
+      if (!b->val_valid && !is_masked_watchpoint (b))
 	{
 	  if (b->val_bitsize != 0)
 	    {
@@ -2013,19 +1852,19 @@ update_watchpoint (struct watchpoint *b,
 		    }
 
 		  type = hw_write;
-		  if (b->base.type == bp_read_watchpoint)
+		  if (b->type == bp_read_watchpoint)
 		    type = hw_read;
-		  else if (b->base.type == bp_access_watchpoint)
+		  else if (b->type == bp_access_watchpoint)
 		    type = hw_access;
 
-		  loc = allocate_bp_location (&b->base);
-		  for (tmp = &(b->base.loc); *tmp != NULL; tmp = &((*tmp)->next))
+		  loc = allocate_bp_location (b);
+		  for (tmp = &(b->loc); *tmp != NULL; tmp = &((*tmp)->next))
 		    ;
 		  *tmp = loc;
 		  loc->gdbarch = get_type_arch (value_type (v));
 
 		  loc->pspace = frame_pspace;
-		  loc->address = addr;
+		  loc->address = address_significant (loc->gdbarch, addr);
 
 		  if (bitsize != 0)
 		    {
@@ -2069,7 +1908,7 @@ update_watchpoint (struct watchpoint *b,
 	      /* If this is a software watchpoint, we try to turn it
 		 to a hardware one -- count resources as if B was of
 		 hardware watchpoint type.  */
-	      type = b->base.type;
+	      type = b->type;
 	      if (type == bp_watchpoint)
 		type = bp_hardware_watchpoint;
 
@@ -2080,16 +1919,16 @@ update_watchpoint (struct watchpoint *b,
 		 manually.  */
 
 	      /* Count resources used by all watchpoints except B.  */
-	      i = hw_watchpoint_used_count_others (&b->base, type, &other_type_used);
+	      i = hw_watchpoint_used_count_others (b, type, &other_type_used);
 
 	      /* Add in the resources needed for B.  */
-	      i += hw_watchpoint_use_count (&b->base);
+	      i += hw_watchpoint_use_count (b);
 
 	      target_resources_ok
 		= target_can_use_hardware_watchpoint (type, i, other_type_used);
 	      if (target_resources_ok <= 0)
 		{
-		  int sw_mode = b->base.ops->works_in_software_mode (&b->base);
+		  int sw_mode = b->ops->works_in_software_mode (b);
 
 		  if (target_resources_ok == 0 && !sw_mode)
 		    error (_("Target does not support this type of "
@@ -2099,7 +1938,7 @@ update_watchpoint (struct watchpoint *b,
 			     "resources for this watchpoint."));
 
 		  /* Downgrade to software watchpoint.  */
-		  b->base.type = bp_watchpoint;
+		  b->type = bp_watchpoint;
 		}
 	      else
 		{
@@ -2107,10 +1946,10 @@ update_watchpoint (struct watchpoint *b,
 		     found we have enough resources to turn it to a
 		     hardware watchpoint.  Otherwise, this is a
 		     nop.  */
-		  b->base.type = type;
+		  b->type = type;
 		}
 	    }
-	  else if (!b->base.ops->works_in_software_mode (&b->base))
+	  else if (!b->ops->works_in_software_mode (b))
 	    {
 	      if (!can_use_hw_watchpoints)
 		error (_("Can't set read/access watchpoint when "
@@ -2120,11 +1959,11 @@ update_watchpoint (struct watchpoint *b,
 			 "read/access watchpoint."));
 	    }
 	  else
-	    b->base.type = bp_watchpoint;
+	    b->type = bp_watchpoint;
 
-	  loc_type = (b->base.type == bp_watchpoint? bp_loc_other
+	  loc_type = (b->type == bp_watchpoint? bp_loc_other
 		      : bp_loc_hardware_watchpoint);
-	  for (bl = b->base.loc; bl; bl = bl->next)
+	  for (bl = b->loc; bl; bl = bl->next)
 	    bl->loc_type = loc_type;
 	}
 
@@ -2139,15 +1978,15 @@ update_watchpoint (struct watchpoint *b,
 	 above left it without any location set up.  But,
 	 bpstat_stop_status requires a location to be able to report
 	 stops, so make sure there's at least a dummy one.  */
-      if (b->base.type == bp_watchpoint && b->base.loc == NULL)
-	software_watchpoint_add_no_memory_location (&b->base, frame_pspace);
+      if (b->type == bp_watchpoint && b->loc == NULL)
+	software_watchpoint_add_no_memory_location (b, frame_pspace);
     }
   else if (!within_current_scope)
     {
       printf_filtered (_("\
 Watchpoint %d deleted because the program has left the block\n\
 in which its expression is valid.\n"),
-		       b->base.number);
+		       b->number);
       watchpoint_del_at_next_stop (b);
     }
 
@@ -2387,12 +2226,8 @@ build_target_condition_list (struct bp_l
 static agent_expr_up
 parse_cmd_to_aexpr (CORE_ADDR scope, char *cmd)
 {
-  struct cleanup *old_cleanups = 0;
-  struct expression **argvec;
   const char *cmdrest;
   const char *format_start, *format_end;
-  struct format_piece *fpieces;
-  int nargs;
   struct gdbarch *gdbarch = get_current_arch ();
 
   if (cmd == NULL)
@@ -2402,44 +2237,39 @@ parse_cmd_to_aexpr (CORE_ADDR scope, cha
 
   if (*cmdrest == ',')
     ++cmdrest;
-  cmdrest = skip_spaces_const (cmdrest);
+  cmdrest = skip_spaces (cmdrest);
 
   if (*cmdrest++ != '"')
     error (_("No format string following the location"));
 
   format_start = cmdrest;
 
-  fpieces = parse_format_string (&cmdrest);
-
-  old_cleanups = make_cleanup (free_format_pieces_cleanup, &fpieces);
+  format_pieces fpieces (&cmdrest);
 
   format_end = cmdrest;
 
   if (*cmdrest++ != '"')
     error (_("Bad format string, non-terminated '\"'."));
   
-  cmdrest = skip_spaces_const (cmdrest);
+  cmdrest = skip_spaces (cmdrest);
 
   if (!(*cmdrest == ',' || *cmdrest == '\0'))
     error (_("Invalid argument syntax"));
 
   if (*cmdrest == ',')
     cmdrest++;
-  cmdrest = skip_spaces_const (cmdrest);
+  cmdrest = skip_spaces (cmdrest);
 
   /* For each argument, make an expression.  */
 
-  argvec = (struct expression **) alloca (strlen (cmd)
-					 * sizeof (struct expression *));
-
-  nargs = 0;
+  std::vector<struct expression *> argvec;
   while (*cmdrest != '\0')
     {
       const char *cmd1;
 
       cmd1 = cmdrest;
       expression_up expr = parse_exp_1 (&cmd1, scope, block_for_pc (scope), 1);
-      argvec[nargs++] = expr.release ();
+      argvec.push_back (expr.release ());
       cmdrest = cmd1;
       if (*cmdrest == ',')
 	++cmdrest;
@@ -2453,7 +2283,7 @@ parse_cmd_to_aexpr (CORE_ADDR scope, cha
     {
       aexpr = gen_printf (scope, gdbarch, 0, 0,
 			  format_start, format_end - format_start,
-			  fpieces, nargs, argvec);
+			  argvec.size (), argvec.data ());
     }
   CATCH (ex, RETURN_MASK_ERROR)
     {
@@ -2463,8 +2293,6 @@ parse_cmd_to_aexpr (CORE_ADDR scope, cha
     }
   END_CATCH
 
-  do_cleanups (old_cleanups);
-
   /* We have a valid agent expression, return it.  */
   return aexpr;
 }
@@ -2615,8 +2443,7 @@ insert_bp_location (struct bp_location *
 		    int *hw_breakpoint_error,
 		    int *hw_bp_error_explained_already)
 {
-  enum errors bp_err = GDB_NO_ERROR;
-  const char *bp_err_message = NULL;
+  gdb_exception bp_excpt = exception_none;
 
   if (!should_be_inserted (bl) || (bl->inserted && !bl->needs_update))
     return 0;
@@ -2725,12 +2552,11 @@ insert_bp_location (struct bp_location *
 
 	      val = bl->owner->ops->insert_location (bl);
 	      if (val)
-		bp_err = GENERIC_ERROR;
+		bp_excpt = gdb_exception {RETURN_ERROR, GENERIC_ERROR};
 	    }
 	  CATCH (e, RETURN_MASK_ALL)
 	    {
-	      bp_err = e.error;
-	      bp_err_message = e.message;
+	      bp_excpt = e;
 	    }
 	  END_CATCH
 	}
@@ -2765,16 +2591,16 @@ insert_bp_location (struct bp_location *
 		      val = target_insert_breakpoint (bl->gdbarch,
 						      &bl->overlay_target_info);
 		      if (val)
-			bp_err = GENERIC_ERROR;
+			bp_excpt
+			  = gdb_exception {RETURN_ERROR, GENERIC_ERROR};
 		    }
 		  CATCH (e, RETURN_MASK_ALL)
 		    {
-		      bp_err = e.error;
-		      bp_err_message = e.message;
+		      bp_excpt = e;
 		    }
 		  END_CATCH
 
-		  if (bp_err != GDB_NO_ERROR)
+		  if (bp_excpt.reason != 0)
 		    fprintf_unfiltered (tmp_error_stream,
 					"Overlay breakpoint %d "
 					"failed: in ROM?\n",
@@ -2791,12 +2617,11 @@ insert_bp_location (struct bp_location *
 
 	          val = bl->owner->ops->insert_location (bl);
 		  if (val)
-		    bp_err = GENERIC_ERROR;
+		    bp_excpt = gdb_exception {RETURN_ERROR, GENERIC_ERROR};
 	        }
 	      CATCH (e, RETURN_MASK_ALL)
 	        {
-		  bp_err = e.error;
-		  bp_err_message = e.message;
+		  bp_excpt = e;
 	        }
 	      END_CATCH
 	    }
@@ -2808,7 +2633,7 @@ insert_bp_location (struct bp_location *
 	    }
 	}
 
-      if (bp_err != GDB_NO_ERROR)
+      if (bp_excpt.reason != 0)
 	{
 	  /* Can't set the breakpoint.  */
 
@@ -2820,7 +2645,9 @@ insert_bp_location (struct bp_location *
 	     breakpoint insertion failed (e.g., the remote target
 	     doesn't define error codes), so we must treat generic
 	     errors as memory errors.  */
-	  if ((bp_err == GENERIC_ERROR || bp_err == MEMORY_ERROR)
+	  if (bp_excpt.reason == RETURN_ERROR
+	      && (bp_excpt.error == GENERIC_ERROR
+		  || bp_excpt.error == MEMORY_ERROR)
 	      && bl->loc_type == bp_loc_software_breakpoint
 	      && (solib_name_from_address (bl->pspace, bl->address)
 		  || shared_objfile_contains_address_p (bl->pspace,
@@ -2848,34 +2675,34 @@ insert_bp_location (struct bp_location *
 	      if (bl->loc_type == bp_loc_hardware_breakpoint)
 		{
 		  *hw_breakpoint_error = 1;
-		  *hw_bp_error_explained_already = bp_err_message != NULL;
+		  *hw_bp_error_explained_already = bp_excpt.message != NULL;
                   fprintf_unfiltered (tmp_error_stream,
                                       "Cannot insert hardware breakpoint %d%s",
-                                      bl->owner->number, bp_err_message ? ":" : ".\n");
-                  if (bp_err_message != NULL)
-                    fprintf_unfiltered (tmp_error_stream, "%s.\n", bp_err_message);
+                                      bl->owner->number,
+				      bp_excpt.message ? ":" : ".\n");
+                  if (bp_excpt.message != NULL)
+                    fprintf_unfiltered (tmp_error_stream, "%s.\n",
+					bp_excpt.message);
 		}
 	      else
 		{
-		  if (bp_err_message == NULL)
+		  if (bp_excpt.message == NULL)
 		    {
-		      char *message
+		      std::string message
 			= memory_error_message (TARGET_XFER_E_IO,
 						bl->gdbarch, bl->address);
-		      struct cleanup *old_chain = make_cleanup (xfree, message);
 
 		      fprintf_unfiltered (tmp_error_stream,
 					  "Cannot insert breakpoint %d.\n"
 					  "%s\n",
-					  bl->owner->number, message);
-		      do_cleanups (old_chain);
+					  bl->owner->number, message.c_str ());
 		    }
 		  else
 		    {
 		      fprintf_unfiltered (tmp_error_stream,
 					  "Cannot insert breakpoint %d: %s\n",
 					  bl->owner->number,
-					  bp_err_message);
+					  bp_excpt.message);
 		    }
 		}
 	      return 1;
@@ -3066,7 +2893,7 @@ update_inserted_breakpoint_locations (vo
      there was an error.  */
   tmp_error_stream.puts ("Warning:\n");
 
-  struct cleanup *cleanups = save_current_space_and_thread ();
+  scoped_restore_current_pspace_and_thread restore_pspace_thread;
 
   ALL_BP_LOCATIONS (bl, blp_tmp)
     {
@@ -3099,11 +2926,9 @@ update_inserted_breakpoint_locations (vo
 
   if (error_flag)
     {
-      target_terminal_ours_for_output ();
+      target_terminal::ours_for_output ();
       error_stream (tmp_error_stream);
     }
-
-  do_cleanups (cleanups);
 }
 
 /* Used when starting or continuing the program.  */
@@ -3125,7 +2950,7 @@ insert_breakpoint_locations (void)
      there was an error.  */
   tmp_error_stream.puts ("Warning:\n");
 
-  struct cleanup *cleanups = save_current_space_and_thread ();
+  scoped_restore_current_pspace_and_thread restore_pspace_thread;
 
   ALL_BP_LOCATIONS (bl, blp_tmp)
     {
@@ -3200,11 +3025,9 @@ insert_breakpoint_locations (void)
 	  tmp_error_stream.printf ("Could not insert hardware breakpoints:\n\
 You may have requested too many hardware breakpoints/watchpoints.\n");
 	}
-      target_terminal_ours_for_output ();
+      target_terminal::ours_for_output ();
       error_stream (tmp_error_stream);
     }
-
-  do_cleanups (cleanups);
 }
 
 /* Used when the program stops.
@@ -3273,47 +3096,6 @@ remove_breakpoints_pid (int pid)
   return 0;
 }
 
-int
-reattach_breakpoints (int pid)
-{
-  struct cleanup *old_chain;
-  struct bp_location *bl, **blp_tmp;
-  int val;
-  int dummy1 = 0, dummy2 = 0, dummy3 = 0;
-  struct inferior *inf;
-  struct thread_info *tp;
-
-  tp = any_live_thread_of_process (pid);
-  if (tp == NULL)
-    return 1;
-
-  inf = find_inferior_pid (pid);
-  old_chain = save_inferior_ptid ();
-
-  inferior_ptid = tp->ptid;
-
-  string_file tmp_error_stream;
-
-  ALL_BP_LOCATIONS (bl, blp_tmp)
-  {
-    if (bl->pspace != inf->pspace)
-      continue;
-
-    if (bl->inserted)
-      {
-	bl->inserted = 0;
-	val = insert_bp_location (bl, &tmp_error_stream, &dummy1, &dummy2, &dummy3);
-	if (val != 0)
-	  {
-	    do_cleanups (old_chain);
-	    return val;
-	  }
-      }
-  }
-  do_cleanups (old_chain);
-  return 0;
-}
-
 static int internal_breakpoint_number = -1;
 
 /* Set the breakpoint number of B, depending on the value of INTERNAL.
@@ -3339,16 +3121,12 @@ create_internal_breakpoint (struct gdbar
 			    CORE_ADDR address, enum bptype type,
 			    const struct breakpoint_ops *ops)
 {
-  struct symtab_and_line sal;
-  struct breakpoint *b;
-
-  init_sal (&sal);		/* Initialize to zeroes.  */
-
+  symtab_and_line sal;
   sal.pc = address;
   sal.section = find_pc_overlay (sal.pc);
   sal.pspace = current_program_space;
 
-  b = set_raw_breakpoint (gdbarch, sal, type, ops);
+  breakpoint *b = set_raw_breakpoint (gdbarch, sal, type, ops);
   b->number = internal_breakpoint_number--;
   b->disposition = disp_donttouch;
 
@@ -3365,28 +3143,30 @@ static const char *const longjmp_names[]
 struct breakpoint_objfile_data
 {
   /* Minimal symbol for "_ovly_debug_event" (if any).  */
-  struct bound_minimal_symbol overlay_msym;
+  struct bound_minimal_symbol overlay_msym {};
 
   /* Minimal symbol(s) for "longjmp", "siglongjmp", etc. (if any).  */
-  struct bound_minimal_symbol longjmp_msym[NUM_LONGJMP_NAMES];
+  struct bound_minimal_symbol longjmp_msym[NUM_LONGJMP_NAMES] {};
 
   /* True if we have looked for longjmp probes.  */
-  int longjmp_searched;
+  int longjmp_searched = 0;
 
-  /* SystemTap probe points for longjmp (if any).  */
-  VEC (probe_p) *longjmp_probes;
+  /* SystemTap probe points for longjmp (if any).  These are non-owning
+     references.  */
+  std::vector<probe *> longjmp_probes;
 
   /* Minimal symbol for "std::terminate()" (if any).  */
-  struct bound_minimal_symbol terminate_msym;
+  struct bound_minimal_symbol terminate_msym {};
 
   /* Minimal symbol for "_Unwind_DebugHook" (if any).  */
-  struct bound_minimal_symbol exception_msym;
+  struct bound_minimal_symbol exception_msym {};
 
   /* True if we have looked for exception probes.  */
-  int exception_searched;
+  int exception_searched = 0;
 
-  /* SystemTap probe points for unwinding (if any).  */
-  VEC (probe_p) *exception_probes;
+  /* SystemTap probe points for unwinding (if any).  These are non-owning
+     references.  */
+  std::vector<probe *> exception_probes;
 };
 
 static const struct objfile_data *breakpoint_objfile_key;
@@ -3414,23 +3194,19 @@ get_breakpoint_objfile_data (struct objf
 		     objfile_data (objfile, breakpoint_objfile_key));
   if (bp_objfile_data == NULL)
     {
-      bp_objfile_data =
-	XOBNEW (&objfile->objfile_obstack, struct breakpoint_objfile_data);
-
-      memset (bp_objfile_data, 0, sizeof (*bp_objfile_data));
+      bp_objfile_data = new breakpoint_objfile_data ();
       set_objfile_data (objfile, breakpoint_objfile_key, bp_objfile_data);
     }
   return bp_objfile_data;
 }
 
 static void
-free_breakpoint_probes (struct objfile *obj, void *data)
+free_breakpoint_objfile_data (struct objfile *obj, void *data)
 {
   struct breakpoint_objfile_data *bp_objfile_data
     = (struct breakpoint_objfile_data *) data;
 
-  VEC_free (probe_p, bp_objfile_data->longjmp_probes);
-  VEC_free (probe_p, bp_objfile_data->exception_probes);
+  delete bp_objfile_data;
 }
 
 static void
@@ -3490,9 +3266,8 @@ static void
 create_longjmp_master_breakpoint (void)
 {
   struct program_space *pspace;
-  struct cleanup *old_chain;
 
-  old_chain = save_current_program_space ();
+  scoped_restore_current_program_space restore_pspace;
 
   ALL_PSPACES (pspace)
   {
@@ -3512,43 +3287,35 @@ create_longjmp_master_breakpoint (void)
 
       if (!bp_objfile_data->longjmp_searched)
 	{
-	  VEC (probe_p) *ret;
+	  std::vector<probe *> ret
+	    = find_probes_in_objfile (objfile, "libc", "longjmp");
 
-	  ret = find_probes_in_objfile (objfile, "libc", "longjmp");
-	  if (ret != NULL)
+	  if (!ret.empty ())
 	    {
 	      /* We are only interested in checking one element.  */
-	      struct probe *p = VEC_index (probe_p, ret, 0);
+	      probe *p = ret[0];
 
-	      if (!can_evaluate_probe_arguments (p))
+	      if (!p->can_evaluate_arguments ())
 		{
 		  /* We cannot use the probe interface here, because it does
 		     not know how to evaluate arguments.  */
-		  VEC_free (probe_p, ret);
-		  ret = NULL;
+		  ret.clear ();
 		}
 	    }
 	  bp_objfile_data->longjmp_probes = ret;
 	  bp_objfile_data->longjmp_searched = 1;
 	}
 
-      if (bp_objfile_data->longjmp_probes != NULL)
+      if (!bp_objfile_data->longjmp_probes.empty ())
 	{
-	  int i;
-	  struct probe *probe;
 	  struct gdbarch *gdbarch = get_objfile_arch (objfile);
 
-	  for (i = 0;
-	       VEC_iterate (probe_p,
-			    bp_objfile_data->longjmp_probes,
-			    i, probe);
-	       ++i)
+	  for (probe *p : bp_objfile_data->longjmp_probes)
 	    {
 	      struct breakpoint *b;
 
 	      b = create_internal_breakpoint (gdbarch,
-					      get_probe_address (probe,
-								 objfile),
+					      p->get_relocated_address (objfile),
 					      bp_longjmp_master,
 					      &internal_breakpoint_ops);
 	      b->location = new_probe_location ("-probe-stap libc:longjmp");
@@ -3596,8 +3363,6 @@ create_longjmp_master_breakpoint (void)
 	}
     }
   }
-
-  do_cleanups (old_chain);
 }
 
 /* Create a master std::terminate breakpoint.  */
@@ -3605,10 +3370,9 @@ static void
 create_std_terminate_master_breakpoint (void)
 {
   struct program_space *pspace;
-  struct cleanup *old_chain;
   const char *const func_name = "std::terminate()";
 
-  old_chain = save_current_program_space ();
+  scoped_restore_current_program_space restore_pspace;
 
   ALL_PSPACES (pspace)
   {
@@ -3653,8 +3417,6 @@ create_std_terminate_master_breakpoint (
       b->enable_state = bp_disabled;
     }
   }
-
-  do_cleanups (old_chain);
 }
 
 /* Install a master breakpoint on the unwinder's debug hook.  */
@@ -3678,44 +3440,35 @@ create_exception_master_breakpoint (void
       /* We prefer the SystemTap probe point if it exists.  */
       if (!bp_objfile_data->exception_searched)
 	{
-	  VEC (probe_p) *ret;
+	  std::vector<probe *> ret
+	    = find_probes_in_objfile (objfile, "libgcc", "unwind");
 
-	  ret = find_probes_in_objfile (objfile, "libgcc", "unwind");
-
-	  if (ret != NULL)
+	  if (!ret.empty ())
 	    {
 	      /* We are only interested in checking one element.  */
-	      struct probe *p = VEC_index (probe_p, ret, 0);
+	      probe *p = ret[0];
 
-	      if (!can_evaluate_probe_arguments (p))
+	      if (!p->can_evaluate_arguments ())
 		{
 		  /* We cannot use the probe interface here, because it does
 		     not know how to evaluate arguments.  */
-		  VEC_free (probe_p, ret);
-		  ret = NULL;
+		  ret.clear ();
 		}
 	    }
 	  bp_objfile_data->exception_probes = ret;
 	  bp_objfile_data->exception_searched = 1;
 	}
 
-      if (bp_objfile_data->exception_probes != NULL)
+      if (!bp_objfile_data->exception_probes.empty ())
 	{
 	  struct gdbarch *gdbarch = get_objfile_arch (objfile);
-	  int i;
-	  struct probe *probe;
 
-	  for (i = 0;
-	       VEC_iterate (probe_p,
-			    bp_objfile_data->exception_probes,
-			    i, probe);
-	       ++i)
+	  for (probe *p : bp_objfile_data->exception_probes)
 	    {
 	      struct breakpoint *b;
 
 	      b = create_internal_breakpoint (gdbarch,
-					      get_probe_address (probe,
-								 objfile),
+					      p->get_relocated_address (objfile),
 					      bp_exception_master,
 					      &internal_breakpoint_ops);
 	      b->location = new_probe_location ("-probe-stap libgcc:unwind");
@@ -3893,7 +3646,7 @@ detach_breakpoints (ptid_t ptid)
 {
   struct bp_location *bl, **blp_tmp;
   int val = 0;
-  struct cleanup *old_chain = save_inferior_ptid ();
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
   struct inferior *inf = current_inferior ();
 
   if (ptid_get_pid (ptid) == ptid_get_pid (inferior_ptid))
@@ -3919,7 +3672,6 @@ detach_breakpoints (ptid_t ptid)
       val |= remove_breakpoint_1 (bl, DETACH_BREAKPOINT);
   }
 
-  do_cleanups (old_chain);
   return val;
 }
 
@@ -4078,9 +3830,6 @@ remove_breakpoint_1 (struct bp_location 
 static int
 remove_breakpoint (struct bp_location *bl)
 {
-  int ret;
-  struct cleanup *old_chain;
-
   /* BL is never in moribund_locations by our callers.  */
   gdb_assert (bl->owner != NULL);
 
@@ -4088,14 +3837,11 @@ remove_breakpoint (struct bp_location *b
      This should not ever happen.  */
   gdb_assert (bl->owner->type != bp_none);
 
-  old_chain = save_current_space_and_thread ();
+  scoped_restore_current_pspace_and_thread restore_pspace_thread;
 
   switch_to_program_space_and_thread (bl->pspace);
 
-  ret = remove_breakpoint_1 (bl, REMOVE_BREAKPOINT);
-
-  do_cleanups (old_chain);
-  return ret;
+  return remove_breakpoint_1 (bl, REMOVE_BREAKPOINT);
 }
 
 /* Clear the "inserted" flag in all breakpoints.  */
@@ -4240,7 +3986,7 @@ breakpoint_init_inferior (enum inf_conte
      the target, to advance the PC past the breakpoint.  */
 
 enum breakpoint_here
-breakpoint_here_p (struct address_space *aspace, CORE_ADDR pc)
+breakpoint_here_p (const address_space *aspace, CORE_ADDR pc)
 {
   struct bp_location *bl, **blp_tmp;
   int any_breakpoint_here = 0;
@@ -4273,7 +4019,7 @@ breakpoint_here_p (struct address_space 
 /* See breakpoint.h.  */
 
 int
-breakpoint_in_range_p (struct address_space *aspace,
+breakpoint_in_range_p (const address_space *aspace,
 		       CORE_ADDR addr, ULONGEST len)
 {
   struct bp_location *bl, **blp_tmp;
@@ -4307,7 +4053,7 @@ breakpoint_in_range_p (struct address_sp
 /* Return true if there's a moribund breakpoint at PC.  */
 
 int
-moribund_breakpoint_here_p (struct address_space *aspace, CORE_ADDR pc)
+moribund_breakpoint_here_p (const address_space *aspace, CORE_ADDR pc)
 {
   struct bp_location *loc;
   int ix;
@@ -4324,7 +4070,7 @@ moribund_breakpoint_here_p (struct addre
 
 static int
 bp_location_inserted_here_p (struct bp_location *bl,
-			     struct address_space *aspace, CORE_ADDR pc)
+			     const address_space *aspace, CORE_ADDR pc)
 {
   if (bl->inserted
       && breakpoint_address_match (bl->pspace->aspace, bl->address,
@@ -4343,7 +4089,7 @@ bp_location_inserted_here_p (struct bp_l
 /* Returns non-zero iff there's a breakpoint inserted at PC.  */
 
 int
-breakpoint_inserted_here_p (struct address_space *aspace, CORE_ADDR pc)
+breakpoint_inserted_here_p (const address_space *aspace, CORE_ADDR pc)
 {
   struct bp_location **blp, **blp_tmp = NULL;
 
@@ -4365,7 +4111,7 @@ breakpoint_inserted_here_p (struct addre
    inserted at PC.  */
 
 int
-software_breakpoint_inserted_here_p (struct address_space *aspace,
+software_breakpoint_inserted_here_p (const address_space *aspace,
 				     CORE_ADDR pc)
 {
   struct bp_location **blp, **blp_tmp = NULL;
@@ -4387,7 +4133,7 @@ software_breakpoint_inserted_here_p (str
 /* See breakpoint.h.  */
 
 int
-hardware_breakpoint_inserted_here_p (struct address_space *aspace,
+hardware_breakpoint_inserted_here_p (const address_space *aspace,
 				     CORE_ADDR pc)
 {
   struct bp_location **blp, **blp_tmp = NULL;
@@ -4407,7 +4153,7 @@ hardware_breakpoint_inserted_here_p (str
 }
 
 int
-hardware_watchpoint_inserted_in_range (struct address_space *aspace,
+hardware_watchpoint_inserted_in_range (const address_space *aspace,
 				       CORE_ADDR addr, ULONGEST len)
 {
   struct breakpoint *bpt;
@@ -4451,14 +4197,12 @@ is_catchpoint (struct breakpoint *ep)
 /* Frees any storage that is part of a bpstat.  Does not walk the
    'next' chain.  */
 
-static void
-bpstat_free (bpstat bs)
+bpstats::~bpstats ()
 {
-  if (bs->old_val != NULL)
-    value_free (bs->old_val);
-  decref_counted_command_line (&bs->commands);
-  decref_bp_location (&bs->bp_location_at);
-  xfree (bs);
+  if (old_val != NULL)
+    value_free (old_val);
+  if (bp_location_at != NULL)
+    decref_bp_location (&bp_location_at);
 }
 
 /* Clear a bpstat so that it says we are not at any breakpoint.
@@ -4476,12 +4220,30 @@ bpstat_clear (bpstat *bsp)
   while (p != NULL)
     {
       q = p->next;
-      bpstat_free (p);
+      delete p;
       p = q;
     }
   *bsp = NULL;
 }
 
+bpstats::bpstats (const bpstats &other)
+  : next (NULL),
+    bp_location_at (other.bp_location_at),
+    breakpoint_at (other.breakpoint_at),
+    commands (other.commands),
+    old_val (other.old_val),
+    print (other.print),
+    stop (other.stop),
+    print_it (other.print_it)
+{
+  if (old_val != NULL)
+    {
+      old_val = value_copy (old_val);
+      release_value (old_val);
+    }
+  incref_bp_location (bp_location_at);
+}
+
 /* Return a copy of a bpstat.  Like "bs1 = bs2" but all storage that
    is part of the bpstat is copied as well.  */
 
@@ -4497,15 +4259,7 @@ bpstat_copy (bpstat bs)
 
   for (; bs != NULL; bs = bs->next)
     {
-      tmp = (bpstat) xmalloc (sizeof (*tmp));
-      memcpy (tmp, bs, sizeof (*tmp));
-      incref_counted_command_line (tmp->commands);
-      incref_bp_location (tmp->bp_location_at);
-      if (bs->old_val != NULL)
-	{
-	  tmp->old_val = value_copy (bs->old_val);
-	  release_value (tmp->old_val);
-	}
+      tmp = new bpstats (*bs);
 
       if (p == NULL)
 	/* This is the first thing in the chain.  */
@@ -4606,7 +4360,7 @@ bpstat_clear_actions (void)
 
   for (bs = tp->control.stop_bpstat; bs != NULL; bs = bs->next)
     {
-      decref_counted_command_line (&bs->commands);
+      bs->commands = NULL;
 
       if (bs->old_val != NULL)
 	{
@@ -4636,14 +4390,6 @@ breakpoint_about_to_proceed (void)
   breakpoint_proceeded = 1;
 }
 
-/* Stub for cleaning up our state if we error-out of a breakpoint
-   command.  */
-static void
-cleanup_executing_breakpoints (void *ignore)
-{
-  executing_breakpoint_commands = 0;
-}
-
 /* Return non-zero iff CMD as the first line of a command sequence is `silent'
    or its equivalent.  */
 
@@ -4666,7 +4412,6 @@ static int
 bpstat_do_actions_1 (bpstat *bsp)
 {
   bpstat bs;
-  struct cleanup *old_chain;
   int again = 0;
 
   /* Avoid endless recursion if a `source' command is contained
@@ -4674,8 +4419,8 @@ bpstat_do_actions_1 (bpstat *bsp)
   if (executing_breakpoint_commands)
     return 0;
 
-  executing_breakpoint_commands = 1;
-  old_chain = make_cleanup (cleanup_executing_breakpoints, 0);
+  scoped_restore save_executing
+    = make_scoped_restore (&executing_breakpoint_commands, 1);
 
   scoped_restore preventer = prevent_dont_repeat ();
 
@@ -4685,9 +4430,7 @@ bpstat_do_actions_1 (bpstat *bsp)
   breakpoint_proceeded = 0;
   for (; bs != NULL; bs = bs->next)
     {
-      struct counted_command_line *ccmd;
-      struct command_line *cmd;
-      struct cleanup *this_cmd_tree_chain;
+      struct command_line *cmd = NULL;
 
       /* Take ownership of the BSP's command tree, if it has one.
 
@@ -4699,10 +4442,10 @@ bpstat_do_actions_1 (bpstat *bsp)
          commands are only executed once, we don't need to copy it; we
          can clear the pointer in the bpstat, and make sure we free
          the tree when we're done.  */
-      ccmd = bs->commands;
+      counted_command_line ccmd = bs->commands;
       bs->commands = NULL;
-      this_cmd_tree_chain = make_cleanup_decref_counted_command_line (&ccmd);
-      cmd = ccmd ? ccmd->commands : NULL;
+      if (ccmd != NULL)
+	cmd = ccmd.get ();
       if (command_line_is_silent (cmd))
 	{
 	  /* The action has been already done by bpstat_stop_status.  */
@@ -4719,9 +4462,6 @@ bpstat_do_actions_1 (bpstat *bsp)
 	    cmd = cmd->next;
 	}
 
-      /* We can free this command tree now.  */
-      do_cleanups (this_cmd_tree_chain);
-
       if (breakpoint_proceeded)
 	{
 	  if (current_ui->async)
@@ -4747,7 +4487,6 @@ bpstat_do_actions_1 (bpstat *bsp)
 	  break;
 	}
     }
-  do_cleanups (old_chain);
   return again;
 }
 
@@ -4885,13 +4624,11 @@ print_solib_event (int is_catchpoint)
 
   if (any_deleted)
     {
-      struct cleanup *cleanup;
       char *name;
       int ix;
 
       current_uiout->text (_("  Inferior unloaded "));
-      cleanup = make_cleanup_ui_out_list_begin_end (current_uiout,
-						    "removed");
+      ui_out_emit_list list_emitter (current_uiout, "removed");
       for (ix = 0;
 	   VEC_iterate (char_ptr, current_program_space->deleted_solibs,
 			ix, name);
@@ -4902,19 +4639,15 @@ print_solib_event (int is_catchpoint)
 	  current_uiout->field_string ("library", name);
 	  current_uiout->text ("\n");
 	}
-
-      do_cleanups (cleanup);
     }
 
   if (any_added)
     {
       struct so_list *iter;
       int ix;
-      struct cleanup *cleanup;
 
       current_uiout->text (_("  Inferior loaded "));
-      cleanup = make_cleanup_ui_out_list_begin_end (current_uiout,
-						    "added");
+      ui_out_emit_list list_emitter (current_uiout, "added");
       for (ix = 0;
 	   VEC_iterate (so_list_ptr, current_program_space->added_solibs,
 			ix, iter);
@@ -4925,8 +4658,6 @@ print_solib_event (int is_catchpoint)
 	  current_uiout->field_string ("library", iter->so_name);
 	  current_uiout->text ("\n");
 	}
-
-      do_cleanups (cleanup);
     }
 }
 
@@ -4983,42 +4714,45 @@ bpstat_print (bpstat bs, int kind)
   return PRINT_UNKNOWN;
 }
 
-/* Evaluate the expression EXP and return 1 if value is zero.
-   This returns the inverse of the condition because it is called
-   from catch_errors which returns 0 if an exception happened, and if an
-   exception happens we want execution to stop.
-   The argument is a "struct expression *" that has been cast to a
-   "void *" to make it pass through catch_errors.  */
+/* Evaluate the boolean expression EXP and return the result.  */
 
-static int
-breakpoint_cond_eval (void *exp)
+static bool
+breakpoint_cond_eval (expression *exp)
 {
   struct value *mark = value_mark ();
-  int i = !value_true (evaluate_expression ((struct expression *) exp));
+  bool res = value_true (evaluate_expression (exp));
 
   value_free_to_mark (mark);
-  return i;
+  return res;
 }
 
 /* Allocate a new bpstat.  Link it to the FIFO list by BS_LINK_POINTER.  */
 
-static bpstat
-bpstat_alloc (struct bp_location *bl, bpstat **bs_link_pointer)
+bpstats::bpstats (struct bp_location *bl, bpstat **bs_link_pointer)
+  : next (NULL),
+    bp_location_at (bl),
+    breakpoint_at (bl->owner),
+    commands (NULL),
+    old_val (NULL),
+    print (0),
+    stop (0),
+    print_it (print_it_normal)
 {
-  bpstat bs;
-
-  bs = (bpstat) xmalloc (sizeof (*bs));
-  bs->next = NULL;
-  **bs_link_pointer = bs;
-  *bs_link_pointer = &bs->next;
-  bs->breakpoint_at = bl->owner;
-  bs->bp_location_at = bl;
   incref_bp_location (bl);
-  /* If the condition is false, etc., don't do the commands.  */
-  bs->commands = NULL;
-  bs->old_val = NULL;
-  bs->print_it = print_it_normal;
-  return bs;
+  **bs_link_pointer = this;
+  *bs_link_pointer = &next;
+}
+
+bpstats::bpstats ()
+  : next (NULL),
+    bp_location_at (NULL),
+    breakpoint_at (NULL),
+    commands (NULL),
+    old_val (NULL),
+    print (0),
+    stop (0),
+    print_it (print_it_normal)
+{
 }
 
 /* The target has stopped with waitstatus WS.  Check if any hardware
@@ -5099,30 +4833,31 @@ watchpoints_triggered (struct target_wai
   return 1;
 }
 
-/* Possible return values for watchpoint_check (this can't be an enum
-   because of check_errors).  */
-/* The watchpoint has been deleted.  */
-#define WP_DELETED 1
-/* The value has changed.  */
-#define WP_VALUE_CHANGED 2
-/* The value has not changed.  */
-#define WP_VALUE_NOT_CHANGED 3
-/* Ignore this watchpoint, no matter if the value changed or not.  */
-#define WP_IGNORE 4
+/* Possible return values for watchpoint_check.  */
+enum wp_check_result
+  {
+    /* The watchpoint has been deleted.  */
+    WP_DELETED = 1,
+
+    /* The value has changed.  */
+    WP_VALUE_CHANGED = 2,
+
+    /* The value has not changed.  */
+    WP_VALUE_NOT_CHANGED = 3,
+
+    /* Ignore this watchpoint, no matter if the value changed or not.  */
+    WP_IGNORE = 4,
+  };
 
 #define BP_TEMPFLAG 1
 #define BP_HARDWAREFLAG 2
 
 /* Evaluate watchpoint condition expression and check if its value
-   changed.
+   changed.  */
 
-   P should be a pointer to struct bpstat, but is defined as a void *
-   in order for this function to be usable with catch_errors.  */
-
-static int
-watchpoint_check (void *p)
+static wp_check_result
+watchpoint_check (bpstat bs)
 {
-  bpstat bs = (bpstat) p;
   struct watchpoint *b;
   struct frame_info *fr;
   int within_current_scope;
@@ -5191,7 +4926,7 @@ watchpoint_check (void *p)
       struct value *mark;
       struct value *new_val;
 
-      if (is_masked_watchpoint (&b->base))
+      if (is_masked_watchpoint (b))
 	/* Since we don't know the exact trigger address (from
 	   stopped_data_address), just tell the user we've triggered
 	   a mask watchpoint.  */
@@ -5251,13 +4986,13 @@ watchpoint_check (void *p)
 	    uiout->field_string
 	      ("reason", async_reason_lookup (EXEC_ASYNC_WATCHPOINT_SCOPE));
 	  uiout->text ("\nWatchpoint ");
-	  uiout->field_int ("wpnum", b->base.number);
+	  uiout->field_int ("wpnum", b->number);
 	  uiout->text (" deleted because the program has left the block in\n"
 		       "which its expression is valid.\n");
 	}
 
       /* Make sure the watchpoint's commands aren't executed.  */
-      decref_counted_command_line (&b->base.commands);
+      b->commands = NULL;
       watchpoint_del_at_next_stop (b);
 
       return WP_DELETED;
@@ -5270,7 +5005,7 @@ watchpoint_check (void *p)
 
 static int
 bpstat_check_location (const struct bp_location *bl,
-		       struct address_space *aspace, CORE_ADDR bp_addr,
+		       const address_space *aspace, CORE_ADDR bp_addr,
 		       const struct target_waitstatus *ws)
 {
   struct breakpoint *b = bl->owner;
@@ -5299,7 +5034,7 @@ bpstat_check_watchpoint (bpstat bs)
     {
       int must_check_value = 0;
       
-      if (b->base.type == bp_watchpoint)
+      if (b->type == bp_watchpoint)
 	/* For a software watchpoint, we must always check the
 	   watched value.  */
 	must_check_value = 1;
@@ -5309,7 +5044,7 @@ bpstat_check_watchpoint (bpstat bs)
 	   this watchpoint.  */
 	must_check_value = 1;
       else if (b->watchpoint_triggered == watch_triggered_unknown
-	       && b->base.type == bp_hardware_watchpoint)
+	       && b->type == bp_hardware_watchpoint)
 	/* We were stopped by a hardware watchpoint, but the target could
 	   not report the data address.  We must check the watchpoint's
 	   value.  Access and read watchpoints are out of luck; without
@@ -5318,13 +5053,29 @@ bpstat_check_watchpoint (bpstat bs)
 
       if (must_check_value)
 	{
-	  char *message
-	    = xstrprintf ("Error evaluating expression for watchpoint %d\n",
-			  b->base.number);
-	  struct cleanup *cleanups = make_cleanup (xfree, message);
-	  int e = catch_errors (watchpoint_check, bs, message,
-				RETURN_MASK_ALL);
-	  do_cleanups (cleanups);
+	  wp_check_result e;
+
+	  TRY
+	    {
+	      e = watchpoint_check (bs);
+	    }
+	  CATCH (ex, RETURN_MASK_ALL)
+	    {
+	      exception_fprintf (gdb_stderr, ex,
+				 "Error evaluating expression "
+				 "for watchpoint %d\n",
+				 b->number);
+
+	      SWITCH_THRU_ALL_UIS ()
+		{
+		  printf_filtered (_("Watchpoint %d deleted.\n"),
+				   b->number);
+		}
+	      watchpoint_del_at_next_stop (b);
+	      e = WP_DELETED;
+	    }
+	  END_CATCH
+
 	  switch (e)
 	    {
 	    case WP_DELETED:
@@ -5337,7 +5088,7 @@ bpstat_check_watchpoint (bpstat bs)
 	      bs->stop = 0;
 	      break;
 	    case WP_VALUE_CHANGED:
-	      if (b->base.type == bp_read_watchpoint)
+	      if (b->type == bp_read_watchpoint)
 		{
 		  /* There are two cases to consider here:
 
@@ -5408,8 +5159,8 @@ bpstat_check_watchpoint (bpstat bs)
 		}
 	      break;
 	    case WP_VALUE_NOT_CHANGED:
-	      if (b->base.type == bp_hardware_watchpoint
-		  || b->base.type == bp_watchpoint)
+	      if (b->type == bp_hardware_watchpoint
+		  || b->type == bp_watchpoint)
 		{
 		  /* Don't stop: write watchpoints shouldn't fire if
 		     the value hasn't changed.  */
@@ -5420,18 +5171,6 @@ bpstat_check_watchpoint (bpstat bs)
 	      break;
 	    default:
 	      /* Can't happen.  */
-	    case 0:
-	      /* Error from catch_errors.  */
-	      {
-		SWITCH_THRU_ALL_UIS ()
-	          {
-		    printf_filtered (_("Watchpoint %d deleted.\n"),
-				     b->base.number);
-		  }
-		watchpoint_del_at_next_stop (b);
-		/* We've already printed what needs to be printed.  */
-		bs->print_it = print_it_done;
-	      }
 	      break;
 	    }
 	}
@@ -5457,7 +5196,8 @@ bpstat_check_breakpoint_conditions (bpst
 {
   const struct bp_location *bl;
   struct breakpoint *b;
-  int value_is_zero = 0;
+  /* Assume stop.  */
+  bool condition_result = true;
   struct expression *cond;
 
   gdb_assert (bs->stop);
@@ -5553,23 +5293,30 @@ bpstat_check_breakpoint_conditions (bpst
 	    within_current_scope = 0;
 	}
       if (within_current_scope)
-	value_is_zero
-	  = catch_errors (breakpoint_cond_eval, cond,
-			  "Error in testing breakpoint condition:\n",
-			  RETURN_MASK_ALL);
+	{
+	  TRY
+	    {
+	      condition_result = breakpoint_cond_eval (cond);
+	    }
+	  CATCH (ex, RETURN_MASK_ALL)
+	    {
+	      exception_fprintf (gdb_stderr, ex,
+				 "Error in testing breakpoint condition:\n");
+	    }
+	  END_CATCH
+	}
       else
 	{
 	  warning (_("Watchpoint condition cannot be tested "
 		     "in the current scope"));
 	  /* If we failed to set the right context for this
 	     watchpoint, unconditionally report it.  */
-	  value_is_zero = 0;
 	}
       /* FIXME-someday, should give breakpoint #.  */
       value_free_to_mark (mark);
     }
 
-  if (cond && value_is_zero)
+  if (cond && !condition_result)
     {
       bs->stop = 0;
     }
@@ -5615,7 +5362,7 @@ need_moribund_for_location_type (struct 
    commands, FIXME??? fields.  */
 
 bpstat
-bpstat_stop_status (struct address_space *aspace,
+bpstat_stop_status (const address_space *aspace,
 		    CORE_ADDR bp_addr, ptid_t ptid,
 		    const struct target_waitstatus *ws)
 {
@@ -5661,7 +5408,7 @@ bpstat_stop_status (struct address_space
 	  /* Come here if it's a watchpoint, or if the break address
 	     matches.  */
 
-	  bs = bpstat_alloc (bl, &bs_link);	/* Alloc a bpstat to
+	  bs = new bpstats (bl, &bs_link);	/* Alloc a bpstat to
 						   explain stop.  */
 
 	  /* Assume we stop.  Should we find a watchpoint that is not
@@ -5692,7 +5439,7 @@ bpstat_stop_status (struct address_space
 	  if (breakpoint_location_address_match (loc, aspace, bp_addr)
 	      && need_moribund_for_location_type (loc))
 	    {
-	      bs = bpstat_alloc (loc, &bs_link);
+	      bs = new bpstats (loc, &bs_link);
 	      /* For hits of moribund locations, we should just proceed.  */
 	      bs->stop = 0;
 	      bs->print = 0;
@@ -5747,9 +5494,8 @@ bpstat_stop_status (struct address_space
 	      if (b->silent)
 		bs->print = 0;
 	      bs->commands = b->commands;
-	      incref_counted_command_line (bs->commands);
 	      if (command_line_is_silent (bs->commands
-					  ? bs->commands->commands : NULL))
+					  ? bs->commands.get () : NULL))
 		bs->print = 0;
 
 	      b->ops->after_condition_true (bs);
@@ -5799,14 +5545,14 @@ handle_jit_event (void)
 
   /* Switch terminal for any messages produced by
      breakpoint_re_set.  */
-  target_terminal_ours_for_output ();
+  target_terminal::ours_for_output ();
 
   frame = get_current_frame ();
   gdbarch = get_frame_arch (frame);
 
   jit_event_handler (gdbarch);
 
-  target_terminal_inferior ();
+  target_terminal::inferior ();
 }
 
 /* Prepare WHAT final decision for infrun.  */
@@ -6138,7 +5884,8 @@ print_breakpoint_location (struct breakp
 			   struct bp_location *loc)
 {
   struct ui_out *uiout = current_uiout;
-  struct cleanup *old_chain = save_current_program_space ();
+
+  scoped_restore_current_program_space restore_pspace;
 
   if (loc != NULL && loc->shlib_disabled)
     loc = NULL;
@@ -6150,8 +5897,11 @@ print_breakpoint_location (struct breakp
     uiout->field_string ("what", event_location_to_string (b->location.get ()));
   else if (loc && loc->symtab)
     {
-      struct symbol *sym 
-	= find_pc_sect_function (loc->address, loc->section);
+      const struct symbol *sym = loc->symbol;
+
+      if (sym == NULL)
+	sym = find_pc_sect_function (loc->address, loc->section);
+
       if (sym)
 	{
 	  uiout->text ("in ");
@@ -6203,8 +5953,6 @@ print_breakpoint_location (struct breakp
 			   bp_location_condition_evaluator (loc));
       uiout->text (")");
     }
-
-  do_cleanups (old_chain);
 }
 
 static const char *
@@ -6268,28 +6016,25 @@ bptype_string (enum bptype type)
 static void
 output_thread_groups (struct ui_out *uiout,
 		      const char *field_name,
-		      VEC(int) *inf_num,
+		      const std::vector<int> &inf_nums,
 		      int mi_only)
 {
-  struct cleanup *back_to;
   int is_mi = uiout->is_mi_like_p ();
-  int inf;
-  int i;
 
   /* For backward compatibility, don't display inferiors in CLI unless
      there are several.  Always display them for MI. */
   if (!is_mi && mi_only)
     return;
 
-  back_to = make_cleanup_ui_out_list_begin_end (uiout, field_name);
+  ui_out_emit_list list_emitter (uiout, field_name);
 
-  for (i = 0; VEC_iterate (int, inf_num, i, inf); ++i)
+  for (size_t i = 0; i < inf_nums.size (); i++)
     {
       if (is_mi)
 	{
 	  char mi_group[10];
 
-	  xsnprintf (mi_group, sizeof (mi_group), "i%d", inf);
+	  xsnprintf (mi_group, sizeof (mi_group), "i%d", inf_nums[i]);
 	  uiout->field_string (NULL, mi_group);
 	}
       else
@@ -6299,11 +6044,9 @@ output_thread_groups (struct ui_out *uio
 	  else
 	    uiout->text (", ");
 	
-	  uiout->text (plongest (inf));
+	  uiout->text (plongest (inf_nums[i]));
 	}
     }
-
-  do_cleanups (back_to);
 }
 
 /* Print B to gdb_stdout.  */
@@ -6460,13 +6203,13 @@ print_one_breakpoint_location (struct br
   if (loc != NULL && !header_of_multiple)
     {
       struct inferior *inf;
-      VEC(int) *inf_num = NULL;
+      std::vector<int> inf_nums;
       int mi_only = 1;
 
       ALL_INFERIORS (inf)
 	{
 	  if (inf->pspace == loc->pspace)
-	    VEC_safe_push (int, inf_num, inf->num);
+	    inf_nums.push_back (inf->num);
 	}
 
         /* For backward compatibility, don't display inferiors in CLI unless
@@ -6479,8 +6222,7 @@ print_one_breakpoint_location (struct br
 		   moribund_locations and thus having NULL OWNER.  */
 		&& loc->owner->type != bp_catchpoint))
 	mi_only = 0;
-      output_thread_groups (uiout, "thread-groups", inf_num, mi_only);
-      VEC_free (int, inf_num);
+      output_thread_groups (uiout, "thread-groups", inf_nums, mi_only);
     }
 
   if (!part_of_multiple)
@@ -6616,15 +6358,12 @@ print_one_breakpoint_location (struct br
 	}
     }
 
-  l = b->commands ? b->commands->commands : NULL;
+  l = b->commands ? b->commands.get () : NULL;
   if (!part_of_multiple && l)
     {
-      struct cleanup *script_chain;
-
       annotate_field (9);
-      script_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "script");
+      ui_out_emit_tuple tuple_emitter (uiout, "script");
       print_command_lines (uiout, l, 4);
-      do_cleanups (script_chain);
     }
 
   if (is_tracepoint (b))
@@ -6679,13 +6418,13 @@ print_one_breakpoint (struct breakpoint 
 		      struct bp_location **last_loc, 
 		      int allflag)
 {
-  struct cleanup *bkpt_chain;
   struct ui_out *uiout = current_uiout;
 
-  bkpt_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "bkpt");
+  {
+    ui_out_emit_tuple tuple_emitter (uiout, "bkpt");
 
-  print_one_breakpoint_location (b, NULL, 0, last_loc, allflag);
-  do_cleanups (bkpt_chain);
+    print_one_breakpoint_location (b, NULL, 0, last_loc, allflag);
+  }
 
   /* If this breakpoint has custom print function,
      it's already printed.  Otherwise, print individual
@@ -6708,10 +6447,8 @@ print_one_breakpoint (struct breakpoint 
 
 	  for (loc = b->loc; loc; loc = loc->next, ++n)
 	    {
-	      struct cleanup *inner2 =
-		make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+	      ui_out_emit_tuple tuple_emitter (uiout, NULL);
 	      print_one_breakpoint_location (b, loc, n, last_loc, allflag);
-	      do_cleanups (inner2);
 	    }
 	}
     }
@@ -6740,44 +6477,13 @@ breakpoint_address_bits (struct breakpoi
   return print_address_bits;
 }
 
-struct captured_breakpoint_query_args
-  {
-    int bnum;
-  };
+/* See breakpoint.h.  */
 
-static int
-do_captured_breakpoint_query (struct ui_out *uiout, void *data)
+void
+print_breakpoint (breakpoint *b)
 {
-  struct captured_breakpoint_query_args *args
-    = (struct captured_breakpoint_query_args *) data;
-  struct breakpoint *b;
   struct bp_location *dummy_loc = NULL;
-
-  ALL_BREAKPOINTS (b)
-    {
-      if (args->bnum == b->number)
-	{
-	  print_one_breakpoint (b, &dummy_loc, 0);
-	  return GDB_RC_OK;
-	}
-    }
-  return GDB_RC_NONE;
-}
-
-enum gdb_rc
-gdb_breakpoint_query (struct ui_out *uiout, int bnum, 
-		      char **error_message)
-{
-  struct captured_breakpoint_query_args args;
-
-  args.bnum = bnum;
-  /* For the moment we don't trust print_one_breakpoint() to not throw
-     an error.  */
-  if (catch_exceptions_with_msg (uiout, do_captured_breakpoint_query, &args,
-				 error_message, RETURN_MASK_ALL) < 0)
-    return GDB_RC_FAIL;
-  else
-    return GDB_RC_OK;
+  print_one_breakpoint (b, &dummy_loc, 0);
 }
 
 /* Return true if this breakpoint was set by the user, false if it is
@@ -6805,13 +6511,12 @@ pending_breakpoint_p (struct breakpoint 
    breakpoints listed.  */
 
 static int
-breakpoint_1 (char *args, int allflag, 
+breakpoint_1 (const char *args, int allflag, 
 	      int (*filter) (const struct breakpoint *))
 {
   struct breakpoint *b;
   struct bp_location *last_loc = NULL;
   int nr_printable_breakpoints;
-  struct cleanup *bkpttbl_chain;
   struct value_print_options opts;
   int print_address_bits = 0;
   int print_type_col_width = 14;
@@ -6854,77 +6559,71 @@ breakpoint_1 (char *args, int allflag, 
 	}
     }
 
-  if (opts.addressprint)
-    bkpttbl_chain 
-      = make_cleanup_ui_out_table_begin_end (uiout, 6,
-					     nr_printable_breakpoints,
-                                             "BreakpointTable");
-  else
-    bkpttbl_chain 
-      = make_cleanup_ui_out_table_begin_end (uiout, 5,
-					     nr_printable_breakpoints,
-                                             "BreakpointTable");
-
-  if (nr_printable_breakpoints > 0)
-    annotate_breakpoints_headers ();
-  if (nr_printable_breakpoints > 0)
-    annotate_field (0);
-  uiout->table_header (7, ui_left, "number", "Num"); /* 1 */
-  if (nr_printable_breakpoints > 0)
-    annotate_field (1);
-  uiout->table_header (print_type_col_width, ui_left, "type", "Type"); /* 2 */
-  if (nr_printable_breakpoints > 0)
-    annotate_field (2);
-  uiout->table_header (4, ui_left, "disp", "Disp"); /* 3 */
-  if (nr_printable_breakpoints > 0)
-    annotate_field (3);
-  uiout->table_header (3, ui_left, "enabled", "Enb"); /* 4 */
-  if (opts.addressprint)
-    {
-      if (nr_printable_breakpoints > 0)
-	annotate_field (4);
-      if (print_address_bits <= 32)
-	uiout->table_header (10, ui_left, "addr", "Address"); /* 5 */
-      else
-	uiout->table_header (18, ui_left, "addr", "Address"); /* 5 */
-    }
-  if (nr_printable_breakpoints > 0)
-    annotate_field (5);
-  uiout->table_header (40, ui_noalign, "what", "What"); /* 6 */
-  uiout->table_body ();
-  if (nr_printable_breakpoints > 0)
-    annotate_breakpoints_table ();
-
-  ALL_BREAKPOINTS (b)
-    {
-      QUIT;
-      /* If we have a filter, only list the breakpoints it accepts.  */
-      if (filter && !filter (b))
-	continue;
+  {
+    ui_out_emit_table table_emitter (uiout,
+				     opts.addressprint ? 6 : 5,
+				     nr_printable_breakpoints,
+				     "BreakpointTable");
+
+    if (nr_printable_breakpoints > 0)
+      annotate_breakpoints_headers ();
+    if (nr_printable_breakpoints > 0)
+      annotate_field (0);
+    uiout->table_header (7, ui_left, "number", "Num"); /* 1 */
+    if (nr_printable_breakpoints > 0)
+      annotate_field (1);
+    uiout->table_header (print_type_col_width, ui_left, "type", "Type"); /* 2 */
+    if (nr_printable_breakpoints > 0)
+      annotate_field (2);
+    uiout->table_header (4, ui_left, "disp", "Disp"); /* 3 */
+    if (nr_printable_breakpoints > 0)
+      annotate_field (3);
+    uiout->table_header (3, ui_left, "enabled", "Enb"); /* 4 */
+    if (opts.addressprint)
+      {
+	if (nr_printable_breakpoints > 0)
+	  annotate_field (4);
+	if (print_address_bits <= 32)
+	  uiout->table_header (10, ui_left, "addr", "Address"); /* 5 */
+	else
+	  uiout->table_header (18, ui_left, "addr", "Address"); /* 5 */
+      }
+    if (nr_printable_breakpoints > 0)
+      annotate_field (5);
+    uiout->table_header (40, ui_noalign, "what", "What"); /* 6 */
+    uiout->table_body ();
+    if (nr_printable_breakpoints > 0)
+      annotate_breakpoints_table ();
 
-      /* If we have an "args" string, it is a list of breakpoints to 
-	 accept.  Skip the others.  */
+    ALL_BREAKPOINTS (b)
+      {
+	QUIT;
+	/* If we have a filter, only list the breakpoints it accepts.  */
+	if (filter && !filter (b))
+	  continue;
 
-      if (args != NULL && *args != '\0')
-	{
-	  if (allflag)	/* maintenance info breakpoint */
-	    {
-	      if (parse_and_eval_long (args) != b->number)
-		continue;
-	    }
-	  else		/* all others */
-	    {
-	      if (!number_is_in_list (args, b->number))
-		continue;
-	    }
-	}
-      /* We only print out user settable breakpoints unless the
-	 allflag is set.  */
-      if (allflag || user_breakpoint_p (b))
-	print_one_breakpoint (b, &last_loc, allflag);
-    }
+	/* If we have an "args" string, it is a list of breakpoints to 
+	   accept.  Skip the others.  */
 
-  do_cleanups (bkpttbl_chain);
+	if (args != NULL && *args != '\0')
+	  {
+	    if (allflag)	/* maintenance info breakpoint */
+	      {
+		if (parse_and_eval_long (args) != b->number)
+		  continue;
+	      }
+	    else		/* all others */
+	      {
+		if (!number_is_in_list (args, b->number))
+		  continue;
+	      }
+	  }
+	/* We only print out user settable breakpoints unless the
+	   allflag is set.  */
+	if (allflag || user_breakpoint_p (b))
+	  print_one_breakpoint (b, &last_loc, allflag);
+      }
+  }
 
   if (nr_printable_breakpoints == 0)
     {
@@ -6974,7 +6673,7 @@ default_collect_info (void)
 }
   
 static void
-breakpoints_info (char *args, int from_tty)
+info_breakpoints_command (const char *args, int from_tty)
 {
   breakpoint_1 (args, 0, NULL);
 
@@ -6982,7 +6681,7 @@ breakpoints_info (char *args, int from_t
 }
 
 static void
-watchpoints_info (char *args, int from_tty)
+info_watchpoints_command (const char *args, int from_tty)
 {
   int num_printed = breakpoint_1 (args, 0, is_watchpoint);
   struct ui_out *uiout = current_uiout;
@@ -6997,7 +6696,7 @@ watchpoints_info (char *args, int from_t
 }
 
 static void
-maintenance_info_breakpoints (char *args, int from_tty)
+maintenance_info_breakpoints (const char *args, int from_tty)
 {
   breakpoint_1 (args, 1, NULL);
 
@@ -7136,8 +6835,8 @@ watchpoint_locations_match (struct bp_lo
 /* See breakpoint.h.  */
 
 int
-breakpoint_address_match (struct address_space *aspace1, CORE_ADDR addr1,
-			  struct address_space *aspace2, CORE_ADDR addr2)
+breakpoint_address_match (const address_space *aspace1, CORE_ADDR addr1,
+			  const address_space *aspace2, CORE_ADDR addr2)
 {
   return ((gdbarch_has_global_breakpoints (target_gdbarch ())
 	   || aspace1 == aspace2)
@@ -7150,8 +6849,9 @@ breakpoint_address_match (struct address
    space doesn't really matter.  */
 
 static int
-breakpoint_address_match_range (struct address_space *aspace1, CORE_ADDR addr1,
-				int len1, struct address_space *aspace2,
+breakpoint_address_match_range (const address_space *aspace1,
+				CORE_ADDR addr1,
+				int len1, const address_space *aspace2,
 				CORE_ADDR addr2)
 {
   return ((gdbarch_has_global_breakpoints (target_gdbarch ())
@@ -7166,7 +6866,7 @@ breakpoint_address_match_range (struct a
 
 static int
 breakpoint_location_address_match (struct bp_location *bl,
-				   struct address_space *aspace,
+				   const address_space *aspace,
 				   CORE_ADDR addr)
 {
   return (breakpoint_address_match (bl->pspace->aspace, bl->address,
@@ -7185,7 +6885,7 @@ breakpoint_location_address_match (struc
 
 static int
 breakpoint_location_address_range_overlap (struct bp_location *bl,
-					   struct address_space *aspace,
+					   const address_space *aspace,
 					   CORE_ADDR addr, int len)
 {
   if (gdbarch_has_global_breakpoints (target_gdbarch ())
@@ -7273,16 +6973,11 @@ static CORE_ADDR
 adjust_breakpoint_address (struct gdbarch *gdbarch,
 			   CORE_ADDR bpaddr, enum bptype bptype)
 {
-  if (!gdbarch_adjust_breakpoint_address_p (gdbarch))
-    {
-      /* Very few targets need any kind of breakpoint adjustment.  */
-      return bpaddr;
-    }
-  else if (bptype == bp_watchpoint
-           || bptype == bp_hardware_watchpoint
-           || bptype == bp_read_watchpoint
-           || bptype == bp_access_watchpoint
-           || bptype == bp_catchpoint)
+  if (bptype == bp_watchpoint
+      || bptype == bp_hardware_watchpoint
+      || bptype == bp_read_watchpoint
+      || bptype == bp_access_watchpoint
+      || bptype == bp_catchpoint)
     {
       /* Watchpoints and the various bp_catch_* eventpoints should not
          have their addresses modified.  */
@@ -7300,11 +6995,16 @@ adjust_breakpoint_address (struct gdbarc
     }
   else
     {
-      CORE_ADDR adjusted_bpaddr;
+      CORE_ADDR adjusted_bpaddr = bpaddr;
 
-      /* Some targets have architectural constraints on the placement
-         of breakpoint instructions.  Obtain the adjusted address.  */
-      adjusted_bpaddr = gdbarch_adjust_breakpoint_address (gdbarch, bpaddr);
+      if (gdbarch_adjust_breakpoint_address_p (gdbarch))
+	{
+	  /* Some targets have architectural constraints on the placement
+	     of breakpoint instructions.  Obtain the adjusted address.  */
+	  adjusted_bpaddr = gdbarch_adjust_breakpoint_address (gdbarch, bpaddr);
+	}
+
+      adjusted_bpaddr = address_significant (gdbarch, adjusted_bpaddr);
 
       /* An adjusted breakpoint address can significantly alter
          a user's expectations.  Print a warning if an adjustment
@@ -7316,11 +7016,9 @@ adjust_breakpoint_address (struct gdbarc
     }
 }
 
-void
-init_bp_location (struct bp_location *loc, const struct bp_location_ops *ops,
-		  struct breakpoint *owner)
+bp_location::bp_location (const bp_location_ops *ops, breakpoint *owner)
 {
-  memset (loc, 0, sizeof (*loc));
+  bp_location *loc = this;
 
   gdb_assert (ops != NULL);
 
@@ -7420,23 +7118,26 @@ decref_bp_location (struct bp_location *
 
 /* Add breakpoint B at the end of the global breakpoint chain.  */
 
-static void
-add_to_breakpoint_chain (struct breakpoint *b)
+static breakpoint *
+add_to_breakpoint_chain (std::unique_ptr<breakpoint> &&b)
 {
   struct breakpoint *b1;
+  struct breakpoint *result = b.get ();
 
   /* Add this breakpoint to the end of the chain so that a list of
      breakpoints will come out in order of increasing numbers.  */
 
   b1 = breakpoint_chain;
   if (b1 == 0)
-    breakpoint_chain = b;
+    breakpoint_chain = b.release ();
   else
     {
       while (b1->next)
 	b1 = b1->next;
-      b1->next = b;
+      b1->next = b.release ();
     }
+
+  return result;
 }
 
 /* Initializes breakpoint B with type BPTYPE and no locations yet.  */
@@ -7447,8 +7148,6 @@ init_raw_breakpoint_without_location (st
 				      enum bptype bptype,
 				      const struct breakpoint_ops *ops)
 {
-  memset (b, 0, sizeof (*b));
-
   gdb_assert (ops != NULL);
 
   b->ops = ops;
@@ -7456,17 +7155,7 @@ init_raw_breakpoint_without_location (st
   b->gdbarch = gdbarch;
   b->language = current_language->la_language;
   b->input_radix = input_radix;
-  b->thread = -1;
-  b->enable_state = bp_enabled;
-  b->next = 0;
-  b->silent = 0;
-  b->ignore_count = 0;
-  b->commands = NULL;
-  b->frame_id = null_frame_id;
-  b->condition_not_parsed = 0;
-  b->py_bp_object = NULL;
   b->related_breakpoint = b;
-  b->location = NULL;
 }
 
 /* Helper to set_raw_breakpoint below.  Creates a breakpoint
@@ -7477,11 +7166,10 @@ set_raw_breakpoint_without_location (str
 				     enum bptype bptype,
 				     const struct breakpoint_ops *ops)
 {
-  struct breakpoint *b = new breakpoint ();
+  std::unique_ptr<breakpoint> b = new_breakpoint_from_type (bptype);
 
-  init_raw_breakpoint_without_location (b, gdbarch, bptype, ops);
-  add_to_breakpoint_chain (b);
-  return b;
+  init_raw_breakpoint_without_location (b.get (), gdbarch, bptype, ops);
+  return add_to_breakpoint_chain (std::move (b));
 }
 
 /* Initialize loc->function_name.  EXPLICIT_LOC says no indirect function
@@ -7593,11 +7281,10 @@ set_raw_breakpoint (struct gdbarch *gdba
 		    struct symtab_and_line sal, enum bptype bptype,
 		    const struct breakpoint_ops *ops)
 {
-  struct breakpoint *b = new breakpoint ();
+  std::unique_ptr<breakpoint> b = new_breakpoint_from_type (bptype);
 
-  init_raw_breakpoint (b, gdbarch, sal, bptype, ops);
-  add_to_breakpoint_chain (b);
-  return b;
+  init_raw_breakpoint (b.get (), gdbarch, sal, bptype, ops);
+  return add_to_breakpoint_chain (std::move (b));
 }
 
 /* Call this routine when stepping and nexting to enable a breakpoint
@@ -7625,7 +7312,7 @@ set_longjmp_breakpoint (struct thread_in
 	/* longjmp_breakpoint_ops ensures INITIATING_FRAME is cleared again
 	   after their removal.  */
 	clone = momentary_breakpoint_from_master (b, type,
-						  &longjmp_breakpoint_ops, 1);
+						  &momentary_breakpoint_ops, 1);
 	clone->thread = thread;
       }
 
@@ -7961,7 +7648,7 @@ disable_breakpoints_in_unloaded_shlib (s
 
 	if (!disabled_shlib_breaks)
 	  {
-	    target_terminal_ours_for_output ();
+	    target_terminal::ours_for_output ();
 	    warning (_("Temporarily disabling breakpoints "
 		       "for unloaded shared library \"%s\""),
 		     solib->so_name);
@@ -8047,16 +7734,11 @@ disable_breakpoints_in_freed_objfile (st
 /* FORK & VFORK catchpoints.  */
 
 /* An instance of this type is used to represent a fork or vfork
-   catchpoint.  It includes a "struct breakpoint" as a kind of base
-   class; users downcast to "struct breakpoint *" when needed.  A
-   breakpoint is really of this type iff its ops pointer points to
-   CATCH_FORK_BREAKPOINT_OPS.  */
+   catchpoint.  A breakpoint is really of this type iff its ops pointer points
+   to CATCH_FORK_BREAKPOINT_OPS.  */
 
-struct fork_catchpoint
+struct fork_catchpoint : public breakpoint
 {
-  /* The base class.  */
-  struct breakpoint base;
-
   /* Process id of a child process whose forking triggered this
      catchpoint.  This field is only valid immediately after this
      catchpoint has triggered.  */
@@ -8086,7 +7768,7 @@ remove_catch_fork (struct bp_location *b
 
 static int
 breakpoint_hit_catch_fork (const struct bp_location *bl,
-			   struct address_space *aspace, CORE_ADDR bp_addr,
+			   const address_space *aspace, CORE_ADDR bp_addr,
 			   const struct target_waitstatus *ws)
 {
   struct fork_catchpoint *c = (struct fork_catchpoint *) bl->owner;
@@ -8202,7 +7884,7 @@ remove_catch_vfork (struct bp_location *
 
 static int
 breakpoint_hit_catch_vfork (const struct bp_location *bl,
-			    struct address_space *aspace, CORE_ADDR bp_addr,
+			    const address_space *aspace, CORE_ADDR bp_addr,
 			    const struct target_waitstatus *ws)
 {
   struct fork_catchpoint *c = (struct fork_catchpoint *) bl->owner;
@@ -8295,15 +7977,12 @@ print_recreate_catch_vfork (struct break
 static struct breakpoint_ops catch_vfork_breakpoint_ops;
 
 /* An instance of this type is used to represent an solib catchpoint.
-   It includes a "struct breakpoint" as a kind of base class; users
-   downcast to "struct breakpoint *" when needed.  A breakpoint is
-   really of this type iff its ops pointer points to
+   A breakpoint is really of this type iff its ops pointer points to
    CATCH_SOLIB_BREAKPOINT_OPS.  */
 
-struct solib_catchpoint
+struct solib_catchpoint : public breakpoint
 {
-  /* The base class.  */
-  struct breakpoint base;
+  ~solib_catchpoint () override;
 
   /* True for "catch load", false for "catch unload".  */
   unsigned char is_load;
@@ -8311,19 +7990,12 @@ struct solib_catchpoint
   /* Regular expression to match, if any.  COMPILED is only valid when
      REGEX is non-NULL.  */
   char *regex;
-  regex_t compiled;
+  std::unique_ptr<compiled_regex> compiled;
 };
 
-static void
-dtor_catch_solib (struct breakpoint *b)
+solib_catchpoint::~solib_catchpoint ()
 {
-  struct solib_catchpoint *self = (struct solib_catchpoint *) b;
-
-  if (self->regex)
-    regfree (&self->compiled);
-  xfree (self->regex);
-
-  base_breakpoint_ops.dtor (b);
+  xfree (this->regex);
 }
 
 static int
@@ -8340,7 +8012,7 @@ remove_catch_solib (struct bp_location *
 
 static int
 breakpoint_hit_catch_solib (const struct bp_location *bl,
-			    struct address_space *aspace,
+			    const address_space *aspace,
 			    CORE_ADDR bp_addr,
 			    const struct target_waitstatus *ws)
 {
@@ -8360,7 +8032,7 @@ breakpoint_hit_catch_solib (const struct
     if (other->type != bp_shlib_event)
       continue;
 
-    if (self->base.pspace != NULL && other->pspace != self->base.pspace)
+    if (self->pspace != NULL && other->pspace != self->pspace)
       continue;
 
     for (other_bl = other->loc; other_bl != NULL; other_bl = other_bl->next)
@@ -8390,7 +8062,7 @@ check_status_catch_solib (struct bpstats
 	   ++ix)
 	{
 	  if (!self->regex
-	      || regexec (&self->compiled, iter->so_name, 0, NULL, 0) == 0)
+	      || self->compiled->exec (iter->so_name, 0, NULL, 0) == 0)
 	    return;
 	}
     }
@@ -8404,7 +8076,7 @@ check_status_catch_solib (struct bpstats
 	   ++ix)
 	{
 	  if (!self->regex
-	      || regexec (&self->compiled, iter, 0, NULL, 0) == 0)
+	      || self->compiled->exec (iter, 0, NULL, 0) == 0)
 	    return;
 	}
     }
@@ -8507,47 +8179,35 @@ static struct breakpoint_ops catch_solib
 void
 add_solib_catchpoint (const char *arg, int is_load, int is_temp, int enabled)
 {
-  struct solib_catchpoint *c;
   struct gdbarch *gdbarch = get_current_arch ();
-  struct cleanup *cleanup;
 
   if (!arg)
     arg = "";
-  arg = skip_spaces_const (arg);
+  arg = skip_spaces (arg);
 
-  c = new solib_catchpoint ();
-  cleanup = make_cleanup (xfree, c);
+  std::unique_ptr<solib_catchpoint> c (new solib_catchpoint ());
 
   if (*arg != '\0')
     {
-      int errcode;
-
-      errcode = regcomp (&c->compiled, arg, REG_NOSUB);
-      if (errcode != 0)
-	{
-	  char *err = get_regcomp_error (errcode, &c->compiled);
-
-	  make_cleanup (xfree, err);
-	  error (_("Invalid regexp (%s): %s"), err, arg);
-	}
+      c->compiled.reset (new compiled_regex (arg, REG_NOSUB,
+					     _("Invalid regexp")));
       c->regex = xstrdup (arg);
     }
 
   c->is_load = is_load;
-  init_catchpoint (&c->base, gdbarch, is_temp, NULL,
+  init_catchpoint (c.get (), gdbarch, is_temp, NULL,
 		   &catch_solib_breakpoint_ops);
 
-  c->base.enable_state = enabled ? bp_enabled : bp_disabled;
+  c->enable_state = enabled ? bp_enabled : bp_disabled;
 
-  discard_cleanups (cleanup);
-  install_breakpoint (0, &c->base, 1);
+  install_breakpoint (0, std::move (c), 1);
 }
 
 /* A helper function that does all the work for "catch load" and
    "catch unload".  */
 
 static void
-catch_load_or_unload (char *arg, int from_tty, int is_load,
+catch_load_or_unload (const char *arg, int from_tty, int is_load,
 		      struct cmd_list_element *command)
 {
   int tempflag;
@@ -8559,14 +8219,14 @@ catch_load_or_unload (char *arg, int fro
 }
 
 static void
-catch_load_command_1 (char *arg, int from_tty,
+catch_load_command_1 (const char *arg, int from_tty,
 		      struct cmd_list_element *command)
 {
   catch_load_or_unload (arg, from_tty, 1, command);
 }
 
 static void
-catch_unload_command_1 (char *arg, int from_tty,
+catch_unload_command_1 (const char *arg, int from_tty,
 			struct cmd_list_element *command)
 {
   catch_load_or_unload (arg, from_tty, 0, command);
@@ -8583,9 +8243,7 @@ init_catchpoint (struct breakpoint *b,
 		 const char *cond_string,
 		 const struct breakpoint_ops *ops)
 {
-  struct symtab_and_line sal;
-
-  init_sal (&sal);
+  symtab_and_line sal;
   sal.pspace = current_program_space;
 
   init_raw_breakpoint (b, gdbarch, sal, bp_catchpoint, ops);
@@ -8595,9 +8253,9 @@ init_catchpoint (struct breakpoint *b,
 }
 
 void
-install_breakpoint (int internal, struct breakpoint *b, int update_gll)
+install_breakpoint (int internal, std::unique_ptr<breakpoint> &&arg, int update_gll)
 {
-  add_to_breakpoint_chain (b);
+  breakpoint *b = add_to_breakpoint_chain (std::move (arg));
   set_breakpoint_number (internal, b);
   if (is_tracepoint (b))
     set_tracepoint_count (breakpoint_count);
@@ -8614,27 +8272,24 @@ create_fork_vfork_event_catchpoint (stru
 				    int tempflag, const char *cond_string,
                                     const struct breakpoint_ops *ops)
 {
-  struct fork_catchpoint *c = new fork_catchpoint ();
+  std::unique_ptr<fork_catchpoint> c (new fork_catchpoint ());
 
-  init_catchpoint (&c->base, gdbarch, tempflag, cond_string, ops);
+  init_catchpoint (c.get (), gdbarch, tempflag, cond_string, ops);
 
   c->forked_inferior_pid = null_ptid;
 
-  install_breakpoint (0, &c->base, 1);
+  install_breakpoint (0, std::move (c), 1);
 }
 
 /* Exec catchpoints.  */
 
 /* An instance of this type is used to represent an exec catchpoint.
-   It includes a "struct breakpoint" as a kind of base class; users
-   downcast to "struct breakpoint *" when needed.  A breakpoint is
-   really of this type iff its ops pointer points to
+   A breakpoint is really of this type iff its ops pointer points to
    CATCH_EXEC_BREAKPOINT_OPS.  */
 
-struct exec_catchpoint
+struct exec_catchpoint : public breakpoint
 {
-  /* The base class.  */
-  struct breakpoint base;
+  ~exec_catchpoint () override;
 
   /* Filename of a program whose exec triggered this catchpoint.
      This field is only valid immediately after this catchpoint has
@@ -8642,17 +8297,11 @@ struct exec_catchpoint
   char *exec_pathname;
 };
 
-/* Implement the "dtor" breakpoint_ops method for exec
-   catchpoints.  */
+/* Exec catchpoint destructor.  */
 
-static void
-dtor_catch_exec (struct breakpoint *b)
+exec_catchpoint::~exec_catchpoint ()
 {
-  struct exec_catchpoint *c = (struct exec_catchpoint *) b;
-
-  xfree (c->exec_pathname);
-
-  base_breakpoint_ops.dtor (b);
+  xfree (this->exec_pathname);
 }
 
 static int
@@ -8669,7 +8318,7 @@ remove_catch_exec (struct bp_location *b
 
 static int
 breakpoint_hit_catch_exec (const struct bp_location *bl,
-			   struct address_space *aspace, CORE_ADDR bp_addr,
+			   const address_space *aspace, CORE_ADDR bp_addr,
 			   const struct target_waitstatus *ws)
 {
   struct exec_catchpoint *c = (struct exec_catchpoint *) bl->owner;
@@ -8874,9 +8523,9 @@ enable_breakpoints_after_startup (void)
 static struct breakpoint *
 new_single_step_breakpoint (int thread, struct gdbarch *gdbarch)
 {
-  struct breakpoint *b = new breakpoint ();
+  std::unique_ptr<breakpoint> b (new breakpoint ());
 
-  init_raw_breakpoint_without_location (b, gdbarch, bp_single_step,
+  init_raw_breakpoint_without_location (b.get (), gdbarch, bp_single_step,
 					&momentary_breakpoint_ops);
 
   b->disposition = disp_donttouch;
@@ -8885,16 +8534,14 @@ new_single_step_breakpoint (int thread, 
   b->thread = thread;
   gdb_assert (b->thread != 0);
 
-  add_to_breakpoint_chain (b);
-
-  return b;
+  return add_to_breakpoint_chain (std::move (b));
 }
 
 /* Set a momentary breakpoint of type TYPE at address specified by
    SAL.  If FRAME_ID is valid, the breakpoint is restricted to that
    frame.  */
 
-struct breakpoint *
+breakpoint_up
 set_momentary_breakpoint (struct gdbarch *gdbarch, struct symtab_and_line sal,
 			  struct frame_id frame_id, enum bptype type)
 {
@@ -8917,7 +8564,7 @@ set_momentary_breakpoint (struct gdbarch
 
   update_global_location_list_nothrow (UGLL_MAY_INSERT);
 
-  return b;
+  return breakpoint_up (b);
 }
 
 /* Make a momentary breakpoint based on the master breakpoint ORIG.
@@ -8970,7 +8617,7 @@ clone_momentary_breakpoint (struct break
   return momentary_breakpoint_from_master (orig, orig->type, orig->ops, 0);
 }
 
-struct breakpoint *
+breakpoint_up
 set_momentary_breakpoint_at_pc (struct gdbarch *gdbarch, CORE_ADDR pc,
 				enum bptype type)
 {
@@ -9030,13 +8677,14 @@ add_location_to_breakpoint (struct break
   loc->requested_address = sal->pc;
   loc->address = adjusted_address;
   loc->pspace = sal->pspace;
-  loc->probe.probe = sal->probe;
+  loc->probe.prob = sal->prob;
   loc->probe.objfile = sal->objfile;
   gdb_assert (loc->pspace != NULL);
   loc->section = sal->section;
   loc->gdbarch = loc_gdbarch;
   loc->line_number = sal->line;
   loc->symtab = sal->symtab;
+  loc->symbol = sal->symbol;
 
   set_breakpoint_location_function (loc,
 				    sal->explicit_pc || sal->explicit_line);
@@ -9070,8 +8718,6 @@ program_breakpoint_here_p (struct gdbarc
   CORE_ADDR addr;
   const gdb_byte *bpoint;
   gdb_byte *target_mem;
-  struct cleanup *cleanup;
-  int retval = 0;
 
   addr = address;
   bpoint = gdbarch_breakpoint_from_pc (gdbarch, &addr, &len);
@@ -9085,15 +8731,14 @@ program_breakpoint_here_p (struct gdbarc
   /* Enable the automatic memory restoration from breakpoints while
      we read the memory.  Otherwise we could say about our temporary
      breakpoints they are permanent.  */
-  cleanup = make_show_memory_breakpoints_cleanup (0);
+  scoped_restore restore_memory
+    = make_scoped_restore_show_memory_breakpoints (0);
 
   if (target_read_memory (address, target_mem, len) == 0
       && memcmp (target_mem, bpoint, len) == 0)
-    retval = 1;
-
-  do_cleanups (cleanup);
+    return 1;
 
-  return retval;
+  return 0;
 }
 
 /* Return 1 if LOC is pointing to a permanent breakpoint,
@@ -9102,9 +8747,6 @@ program_breakpoint_here_p (struct gdbarc
 static int
 bp_loc_is_permanent (struct bp_location *loc)
 {
-  struct cleanup *cleanup;
-  int retval;
-
   gdb_assert (loc != NULL);
 
   /* If we have a catchpoint or a watchpoint, just return 0.  We should not
@@ -9114,14 +8756,9 @@ bp_loc_is_permanent (struct bp_location 
   if (!breakpoint_address_is_meaningful (loc->owner))
     return 0;
 
-  cleanup = save_current_space_and_thread ();
+  scoped_restore_current_pspace_and_thread restore_pspace_thread;
   switch_to_program_space_and_thread (loc->pspace);
-
-  retval = program_breakpoint_here_p (loc->gdbarch, loc->address);
-
-  do_cleanups (cleanup);
-
-  return retval;
+  return program_breakpoint_here_p (loc->gdbarch, loc->address);
 }
 
 /* Build a command list for the dprintf corresponding to the current
@@ -9197,7 +8834,7 @@ update_dprintf_command_list (struct brea
    current style settings.  */
 
 static void
-update_dprintf_commands (char *args, int from_tty,
+update_dprintf_commands (const char *args, int from_tty,
 			 struct cmd_list_element *c)
 {
   struct breakpoint *b;
@@ -9216,10 +8853,11 @@ update_dprintf_commands (char *args, int
 
 static void
 init_breakpoint_sal (struct breakpoint *b, struct gdbarch *gdbarch,
-		     struct symtabs_and_lines sals,
+		     gdb::array_view<const symtab_and_line> sals,
 		     event_location_up &&location,
-		     char *filter, char *cond_string,
-		     char *extra_string,
+		     gdb::unique_xmalloc_ptr<char> filter,
+		     gdb::unique_xmalloc_ptr<char> cond_string,
+		     gdb::unique_xmalloc_ptr<char> extra_string,
 		     enum bptype type, enum bpdisp disposition,
 		     int thread, int task, int ignore_count,
 		     const struct breakpoint_ops *ops, int from_tty,
@@ -9242,11 +8880,10 @@ init_breakpoint_sal (struct breakpoint *
 	error (_("Hardware breakpoints used exceeds limit."));
     }
 
-  gdb_assert (sals.nelts > 0);
+  gdb_assert (!sals.empty ());
 
-  for (i = 0; i < sals.nelts; ++i)
+  for (const auto &sal : sals)
     {
-      struct symtab_and_line sal = sals.sals[i];
       struct bp_location *loc;
 
       if (from_tty)
@@ -9259,14 +8896,14 @@ init_breakpoint_sal (struct breakpoint *
 				      sal.pspace, sal.pc, sal.section, thread);
 	}
 
-      if (i == 0)
+      if (&sal == &sals[0])
 	{
 	  init_raw_breakpoint (b, gdbarch, sal, type, ops);
 	  b->thread = thread;
 	  b->task = task;
 
-	  b->cond_string = cond_string;
-	  b->extra_string = extra_string;
+	  b->cond_string = cond_string.release ();
+	  b->extra_string = extra_string.release ();
 	  b->ignore_count = ignore_count;
 	  b->enable_state = enabled ? bp_enabled : bp_disabled;
 	  b->disposition = disposition;
@@ -9288,9 +8925,9 @@ init_breakpoint_sal (struct breakpoint *
 		  const char *endp;
 		  char *marker_str;
 
-		  p = skip_spaces_const (p);
+		  p = skip_spaces (p);
 
-		  endp = skip_to_space_const (p);
+		  endp = skip_to_space (p);
 
 		  marker_str = savestring (p, endp - p);
 		  t->static_trace_marker_id = marker_str;
@@ -9350,47 +8987,36 @@ init_breakpoint_sal (struct breakpoint *
     b->location = std::move (location);
   else
     b->location = new_address_location (b->loc->address, NULL, 0);
-  b->filter = filter;
+  b->filter = filter.release ();
 }
 
 static void
 create_breakpoint_sal (struct gdbarch *gdbarch,
-		       struct symtabs_and_lines sals,
+		       gdb::array_view<const symtab_and_line> sals,
 		       event_location_up &&location,
-		       char *filter, char *cond_string,
-		       char *extra_string,
+		       gdb::unique_xmalloc_ptr<char> filter,
+		       gdb::unique_xmalloc_ptr<char> cond_string,
+		       gdb::unique_xmalloc_ptr<char> extra_string,
 		       enum bptype type, enum bpdisp disposition,
 		       int thread, int task, int ignore_count,
 		       const struct breakpoint_ops *ops, int from_tty,
 		       int enabled, int internal, unsigned flags,
 		       int display_canonical)
 {
-  struct breakpoint *b;
-  struct cleanup *old_chain;
-
-  if (is_tracepoint_type (type))
-    {
-      struct tracepoint *t;
-
-      t = new tracepoint ();
-      b = &t->base;
-    }
-  else
-    b = new breakpoint ();
-
-  old_chain = make_cleanup (xfree, b);
+  std::unique_ptr<breakpoint> b = new_breakpoint_from_type (type);
 
-  init_breakpoint_sal (b, gdbarch,
+  init_breakpoint_sal (b.get (), gdbarch,
 		       sals, std::move (location),
-		       filter, cond_string, extra_string,
+		       std::move (filter),
+		       std::move (cond_string),
+		       std::move (extra_string),
 		       type, disposition,
 		       thread, task, ignore_count,
 		       ops, from_tty,
 		       enabled, internal, flags,
 		       display_canonical);
-  discard_cleanups (old_chain);
 
-  install_breakpoint (internal, b, 0);
+  install_breakpoint (internal, std::move (b), 0);
 }
 
 /* Add SALS.nelts breakpoints to the breakpoint table.  For each
@@ -9411,32 +9037,31 @@ create_breakpoint_sal (struct gdbarch *g
 static void
 create_breakpoints_sal (struct gdbarch *gdbarch,
 			struct linespec_result *canonical,
-			char *cond_string, char *extra_string,
+			gdb::unique_xmalloc_ptr<char> cond_string,
+			gdb::unique_xmalloc_ptr<char> extra_string,
 			enum bptype type, enum bpdisp disposition,
 			int thread, int task, int ignore_count,
 			const struct breakpoint_ops *ops, int from_tty,
 			int enabled, int internal, unsigned flags)
 {
-  int i;
-  struct linespec_sals *lsal;
-
   if (canonical->pre_expanded)
-    gdb_assert (VEC_length (linespec_sals, canonical->sals) == 1);
+    gdb_assert (canonical->lsals.size () == 1);
 
-  for (i = 0; VEC_iterate (linespec_sals, canonical->sals, i, lsal); ++i)
+  for (const auto &lsal : canonical->lsals)
     {
       /* Note that 'location' can be NULL in the case of a plain
 	 'break', without arguments.  */
       event_location_up location
 	= (canonical->location != NULL
 	   ? copy_event_location (canonical->location.get ()) : NULL);
-      char *filter_string = lsal->canonical ? xstrdup (lsal->canonical) : NULL;
+      gdb::unique_xmalloc_ptr<char> filter_string
+	(lsal.canonical != NULL ? xstrdup (lsal.canonical) : NULL);
 
-      make_cleanup (xfree, filter_string);
-      create_breakpoint_sal (gdbarch, lsal->sals,
+      create_breakpoint_sal (gdbarch, lsal.sals,
 			     std::move (location),
-			     filter_string,
-			     cond_string, extra_string,
+			     std::move (filter_string),
+			     std::move (cond_string),
+			     std::move (extra_string),
 			     type, disposition,
 			     thread, task, ignore_count, ops,
 			     from_tty, enabled, internal, flags,
@@ -9460,28 +9085,22 @@ parse_breakpoint_sals (const struct even
 
   if (event_location_type (location) == LINESPEC_LOCATION)
     {
-      const char *address = get_linespec_location (location);
+      const char *spec = get_linespec_location (location)->spec_string;
 
-      if (address == NULL)
+      if (spec == NULL)
 	{
 	  /* The last displayed codepoint, if it's valid, is our default
 	     breakpoint address.  */
 	  if (last_displayed_sal_is_valid ())
 	    {
-	      struct linespec_sals lsal;
-	      struct symtab_and_line sal;
-	      CORE_ADDR pc;
-
-	      init_sal (&sal);		/* Initialize to zeroes.  */
-	      lsal.sals.sals = XNEW (struct symtab_and_line);
-
 	      /* Set sal's pspace, pc, symtab, and line to the values
 		 corresponding to the last call to print_frame_info.
 		 Be sure to reinitialize LINE with NOTCURRENT == 0
 		 as the breakpoint line number is inappropriate otherwise.
 		 find_pc_line would adjust PC, re-set it back.  */
-	      get_last_displayed_sal (&sal);
-	      pc = sal.pc;
+	      symtab_and_line sal = get_last_displayed_sal ();
+	      CORE_ADDR pc = sal.pc;
+
 	      sal = find_pc_line (pc, 0);
 
 	      /* "break" without arguments is equivalent to "break *PC"
@@ -9492,11 +9111,11 @@ parse_breakpoint_sals (const struct even
 	      sal.pc = pc;
 	      sal.explicit_pc = 1;
 
-	      lsal.sals.sals[0] = sal;
-	      lsal.sals.nelts = 1;
+	      struct linespec_sals lsal;
+	      lsal.sals = {sal};
 	      lsal.canonical = NULL;
 
-	      VEC_safe_push (linespec_sals, canonical->sals, &lsal);
+	      canonical->lsals.push_back (std::move (lsal));
 	      return;
 	    }
 	  else
@@ -9514,15 +9133,15 @@ parse_breakpoint_sals (const struct even
   cursal = get_current_source_symtab_and_line ();
   if (last_displayed_sal_is_valid ())
     {
-      const char *address = NULL;
+      const char *spec = NULL;
 
       if (event_location_type (location) == LINESPEC_LOCATION)
-	address = get_linespec_location (location);
+	spec = get_linespec_location (location)->spec_string;
 
       if (!cursal.symtab
-	  || (address != NULL
-	      && strchr ("+-", address[0]) != NULL
-	      && address[1] != '['))
+	  || (spec != NULL
+	      && strchr ("+-", spec[0]) != NULL
+	      && spec[1] != '['))
 	{
 	  decode_line_full (location, DECODE_LINE_FUNFIRSTLINE, NULL,
 			    get_last_displayed_symtab (),
@@ -9541,12 +9160,10 @@ parse_breakpoint_sals (const struct even
    inserted as a breakpoint.  If it can't throw an error.  */
 
 static void
-breakpoint_sals_to_pc (struct symtabs_and_lines *sals)
+breakpoint_sals_to_pc (std::vector<symtab_and_line> &sals)
 {    
-  int i;
-
-  for (i = 0; i < sals->nelts; i++)
-    resolve_sal_pc (&sals->sals[i]);
+  for (auto &sal : sals)
+    resolve_sal_pc (&sal);
 }
 
 /* Fast tracepoints may have restrictions on valid locations.  For
@@ -9558,30 +9175,27 @@ breakpoint_sals_to_pc (struct symtabs_an
 
 static void
 check_fast_tracepoint_sals (struct gdbarch *gdbarch,
-			    struct symtabs_and_lines *sals)
+			    gdb::array_view<const symtab_and_line> sals)
 {
-  int i, rslt;
-  struct symtab_and_line *sal;
+  int rslt;
   char *msg;
   struct cleanup *old_chain;
 
-  for (i = 0; i < sals->nelts; i++)
+  for (const auto &sal : sals)
     {
       struct gdbarch *sarch;
 
-      sal = &sals->sals[i];
-
-      sarch = get_sal_arch (*sal);
+      sarch = get_sal_arch (sal);
       /* We fall back to GDBARCH if there is no architecture
 	 associated with SAL.  */
       if (sarch == NULL)
 	sarch = gdbarch;
-      rslt = gdbarch_fast_tracepoint_valid_at (sarch, sal->pc, &msg);
+      rslt = gdbarch_fast_tracepoint_valid_at (sarch, sal.pc, &msg);
       old_chain = make_cleanup (xfree, msg);
 
       if (!rslt)
 	error (_("May not have a fast tracepoint at %s%s"),
-	       paddress (sarch, sal->pc), (msg ? msg : ""));
+	       paddress (sarch, sal.pc), (msg ? msg : ""));
 
       do_cleanups (old_chain);
     }
@@ -9611,7 +9225,7 @@ find_condition_and_thread (const char *t
       const char *cond_start = NULL;
       const char *cond_end = NULL;
 
-      tok = skip_spaces_const (tok);
+      tok = skip_spaces (tok);
 
       if ((*tok == '"' || *tok == ',') && rest)
 	{
@@ -9619,7 +9233,7 @@ find_condition_and_thread (const char *t
 	  return;
 	}
 
-      end_tok = skip_to_space_const (tok);
+      end_tok = skip_to_space (tok);
 
       toklen = end_tok - tok;
 
@@ -9666,47 +9280,41 @@ find_condition_and_thread (const char *t
 
 /* Decode a static tracepoint marker spec.  */
 
-static struct symtabs_and_lines
+static std::vector<symtab_and_line>
 decode_static_tracepoint_spec (const char **arg_p)
 {
   VEC(static_tracepoint_marker_p) *markers = NULL;
-  struct symtabs_and_lines sals;
-  struct cleanup *old_chain;
   const char *p = &(*arg_p)[3];
   const char *endp;
-  char *marker_str;
   int i;
 
-  p = skip_spaces_const (p);
+  p = skip_spaces (p);
 
-  endp = skip_to_space_const (p);
+  endp = skip_to_space (p);
 
-  marker_str = savestring (p, endp - p);
-  old_chain = make_cleanup (xfree, marker_str);
+  std::string marker_str (p, endp - p);
 
-  markers = target_static_tracepoint_markers_by_strid (marker_str);
+  markers = target_static_tracepoint_markers_by_strid (marker_str.c_str ());
   if (VEC_empty(static_tracepoint_marker_p, markers))
-    error (_("No known static tracepoint marker named %s"), marker_str);
+    error (_("No known static tracepoint marker named %s"),
+	   marker_str.c_str ());
 
-  sals.nelts = VEC_length(static_tracepoint_marker_p, markers);
-  sals.sals = XNEWVEC (struct symtab_and_line, sals.nelts);
+  std::vector<symtab_and_line> sals;
+  sals.reserve (VEC_length(static_tracepoint_marker_p, markers));
 
-  for (i = 0; i < sals.nelts; i++)
+  for (i = 0; i < VEC_length(static_tracepoint_marker_p, markers); i++)
     {
       struct static_tracepoint_marker *marker;
 
       marker = VEC_index (static_tracepoint_marker_p, markers, i);
 
-      init_sal (&sals.sals[i]);
-
-      sals.sals[i] = find_pc_line (marker->address, 0);
-      sals.sals[i].pc = marker->address;
+      symtab_and_line sal = find_pc_line (marker->address, 0);
+      sal.pc = marker->address;
+      sals.push_back (sal);
 
       release_static_tracepoint_marker (marker);
     }
 
-  do_cleanups (old_chain);
-
   *arg_p = endp;
   return sals;
 }
@@ -9715,8 +9323,9 @@ decode_static_tracepoint_spec (const cha
 
 int
 create_breakpoint (struct gdbarch *gdbarch,
-		   const struct event_location *location, char *cond_string,
-		   int thread, char *extra_string,
+		   const struct event_location *location,
+		   const char *cond_string,
+		   int thread, const char *extra_string,
 		   int parse_extra,
 		   int tempflag, enum bptype type_wanted,
 		   int ignore_count,
@@ -9773,7 +9382,7 @@ create_breakpoint (struct gdbarch *gdbar
     }
   END_CATCH
 
-  if (!pending && VEC_empty (linespec_sals, canonical.sals))
+  if (!pending && canonical.lsals.empty ())
     return 0;
 
   /* ----------------------------- SNIP -----------------------------
@@ -9786,21 +9395,15 @@ create_breakpoint (struct gdbarch *gdbar
      are ok for the target.  */
   if (!pending)
     {
-      int ix;
-      struct linespec_sals *iter;
-
-      for (ix = 0; VEC_iterate (linespec_sals, canonical.sals, ix, iter); ++ix)
-	breakpoint_sals_to_pc (&iter->sals);
+      for (auto &lsal : canonical.lsals)
+	breakpoint_sals_to_pc (lsal.sals);
     }
 
   /* Fast tracepoints may have additional restrictions on location.  */
   if (!pending && type_wanted == bp_fast_tracepoint)
     {
-      int ix;
-      struct linespec_sals *iter;
-
-      for (ix = 0; VEC_iterate (linespec_sals, canonical.sals, ix, iter); ++ix)
-	check_fast_tracepoint_sals (gdbarch, &iter->sals);
+      for (const auto &lsal : canonical.lsals)
+	check_fast_tracepoint_sals (gdbarch, lsal.sals);
     }
 
   /* Verify that condition can be parsed, before setting any
@@ -9808,28 +9411,25 @@ create_breakpoint (struct gdbarch *gdbar
      breakpoint.  */
   if (!pending)
     {
+      gdb::unique_xmalloc_ptr<char> cond_string_copy;
+      gdb::unique_xmalloc_ptr<char> extra_string_copy;
+
       if (parse_extra)
         {
 	  char *rest;
-	  struct linespec_sals *lsal;
+	  char *cond;
 
-	  lsal = VEC_index (linespec_sals, canonical.sals, 0);
+	  const linespec_sals &lsal = canonical.lsals[0];
 
 	  /* Here we only parse 'arg' to separate condition
 	     from thread number, so parsing in context of first
 	     sal is OK.  When setting the breakpoint we'll
 	     re-parse it in context of each sal.  */
 
-	  find_condition_and_thread (extra_string, lsal->sals.sals[0].pc,
-				     &cond_string, &thread, &task, &rest);
-	  if (cond_string)
-	    make_cleanup (xfree, cond_string);
-	  if (rest)
-	    make_cleanup (xfree, rest);
-	  if (rest)
-	    extra_string = rest;
-	  else
-	    extra_string = NULL;
+	  find_condition_and_thread (extra_string, lsal.sals[0].pc,
+				     &cond, &thread, &task, &rest);
+	  cond_string_copy.reset (cond);
+	  extra_string_copy.reset (rest);
         }
       else
         {
@@ -9839,39 +9439,25 @@ create_breakpoint (struct gdbarch *gdbar
 
 	  /* Create a private copy of condition string.  */
 	  if (cond_string)
-	    {
-	      cond_string = xstrdup (cond_string);
-	      make_cleanup (xfree, cond_string);
-	    }
+	    cond_string_copy.reset (xstrdup (cond_string));
 	  /* Create a private copy of any extra string.  */
 	  if (extra_string)
-	    {
-	      extra_string = xstrdup (extra_string);
-	      make_cleanup (xfree, extra_string);
-	    }
+	    extra_string_copy.reset (xstrdup (extra_string));
         }
 
       ops->create_breakpoints_sal (gdbarch, &canonical,
-				   cond_string, extra_string, type_wanted,
+				   std::move (cond_string_copy),
+				   std::move (extra_string_copy),
+				   type_wanted,
 				   tempflag ? disp_del : disp_donttouch,
 				   thread, task, ignore_count, ops,
 				   from_tty, enabled, internal, flags);
     }
   else
     {
-      struct breakpoint *b;
+      std::unique_ptr <breakpoint> b = new_breakpoint_from_type (type_wanted);
 
-      if (is_tracepoint_type (type_wanted))
-	{
-	  struct tracepoint *t;
-
-	  t = new tracepoint ();
-	  b = &t->base;
-	}
-      else
-	b = new breakpoint ();
-
-      init_raw_breakpoint_without_location (b, gdbarch, type_wanted, ops);
+      init_raw_breakpoint_without_location (b.get (), gdbarch, type_wanted, ops);
       b->location = copy_event_location (location);
 
       if (parse_extra)
@@ -9879,22 +9465,12 @@ create_breakpoint (struct gdbarch *gdbar
       else
 	{
 	  /* Create a private copy of condition string.  */
-	  if (cond_string)
-	    {
-	      cond_string = xstrdup (cond_string);
-	      make_cleanup (xfree, cond_string);
-	    }
-	  b->cond_string = cond_string;
+	  b->cond_string = cond_string != NULL ? xstrdup (cond_string) : NULL;
 	  b->thread = thread;
 	}
 
       /* Create a private copy of any extra string.  */
-      if (extra_string != NULL)
-	{
-	  extra_string = xstrdup (extra_string);
-	  make_cleanup (xfree, extra_string);
-	}
-      b->extra_string = extra_string;
+      b->extra_string = extra_string != NULL ? xstrdup (extra_string) : NULL;
       b->ignore_count = ignore_count;
       b->disposition = tempflag ? disp_del : disp_donttouch;
       b->condition_not_parsed = 1;
@@ -9903,10 +9479,10 @@ create_breakpoint (struct gdbarch *gdbar
            && type_wanted != bp_hardware_breakpoint) || thread != -1)
 	b->pspace = current_program_space;
 
-      install_breakpoint (internal, b, 0);
+      install_breakpoint (internal, std::move (b), 0);
     }
   
-  if (VEC_length (linespec_sals, canonical.sals) > 1)
+  if (canonical.lsals.size () > 1)
     {
       warning (_("Multiple breakpoints were set.\nUse the "
 		 "\"delete\" command to delete unwanted breakpoints."));
@@ -9931,7 +9507,7 @@ create_breakpoint (struct gdbarch *gdbar
    and BP_TEMPFLAG.  */
 
 static void
-break_command_1 (char *arg, int flag, int from_tty)
+break_command_1 (const char *arg, int flag, int from_tty)
 {
   int tempflag = flag & BP_TEMPFLAG;
   enum bptype type_wanted = (flag & BP_HARDWAREFLAG
@@ -10005,47 +9581,43 @@ resolve_sal_pc (struct symtab_and_line *
 	         if we have line numbers but no functions (as can
 	         happen in assembly source).  */
 
-	      struct bound_minimal_symbol msym;
-	      struct cleanup *old_chain = save_current_space_and_thread ();
-
+	      scoped_restore_current_pspace_and_thread restore_pspace_thread;
 	      switch_to_program_space_and_thread (sal->pspace);
 
-	      msym = lookup_minimal_symbol_by_pc (sal->pc);
+	      bound_minimal_symbol msym = lookup_minimal_symbol_by_pc (sal->pc);
 	      if (msym.minsym)
 		sal->section = MSYMBOL_OBJ_SECTION (msym.objfile, msym.minsym);
-
-	      do_cleanups (old_chain);
 	    }
 	}
     }
 }
 
 void
-break_command (char *arg, int from_tty)
+break_command (const char *arg, int from_tty)
 {
   break_command_1 (arg, 0, from_tty);
 }
 
 void
-tbreak_command (char *arg, int from_tty)
+tbreak_command (const char *arg, int from_tty)
 {
   break_command_1 (arg, BP_TEMPFLAG, from_tty);
 }
 
 static void
-hbreak_command (char *arg, int from_tty)
+hbreak_command (const char *arg, int from_tty)
 {
   break_command_1 (arg, BP_HARDWAREFLAG, from_tty);
 }
 
 static void
-thbreak_command (char *arg, int from_tty)
+thbreak_command (const char *arg, int from_tty)
 {
   break_command_1 (arg, (BP_TEMPFLAG | BP_HARDWAREFLAG), from_tty);
 }
 
 static void
-stop_command (char *arg, int from_tty)
+stop_command (const char *arg, int from_tty)
 {
   printf_filtered (_("Specify the type of breakpoint to set.\n\
 Usage: stop in <function | address>\n\
@@ -10053,7 +9625,7 @@ Usage: stop in <function | address>\n\
 }
 
 static void
-stopin_command (char *arg, int from_tty)
+stopin_command (const char *arg, int from_tty)
 {
   int badInput = 0;
 
@@ -10061,7 +9633,7 @@ stopin_command (char *arg, int from_tty)
     badInput = 1;
   else if (*arg != '*')
     {
-      char *argptr = arg;
+      const char *argptr = arg;
       int hasColon = 0;
 
       /* Look for a ':'.  If this is a line number specification, then
@@ -10086,7 +9658,7 @@ stopin_command (char *arg, int from_tty)
 }
 
 static void
-stopat_command (char *arg, int from_tty)
+stopat_command (const char *arg, int from_tty)
 {
   int badInput = 0;
 
@@ -10094,7 +9666,7 @@ stopat_command (char *arg, int from_tty)
     badInput = 1;
   else
     {
-      char *argptr = arg;
+      const char *argptr = arg;
       int hasColon = 0;
 
       /* Look for a ':'.  If there is a '::' then get out, otherwise
@@ -10123,7 +9695,7 @@ stopat_command (char *arg, int from_tty)
    line.  */
 
 static void
-dprintf_command (char *arg, int from_tty)
+dprintf_command (const char *arg, int from_tty)
 {
   event_location_up location = string_to_event_location (&arg, current_language);
 
@@ -10154,7 +9726,7 @@ dprintf_command (char *arg, int from_tty
 }
 
 static void
-agent_printf_command (char *arg, int from_tty)
+agent_printf_command (const char *arg, int from_tty)
 {
   error (_("May only run agent-printf on the target"));
 }
@@ -10164,7 +9736,7 @@ agent_printf_command (char *arg, int fro
 
 static int
 breakpoint_hit_ranged_breakpoint (const struct bp_location *bl,
-				  struct address_space *aspace,
+				  const address_space *aspace,
 				  CORE_ADDR bp_addr,
 				  const struct target_waitstatus *ws)
 {
@@ -10338,16 +9910,13 @@ find_breakpoint_range_end (struct symtab
 /* Implement the "break-range" CLI command.  */
 
 static void
-break_range_command (char *arg, int from_tty)
+break_range_command (const char *arg, int from_tty)
 {
-  char *arg_start, *addr_string_start;
+  const char *arg_start;
   struct linespec_result canonical_start, canonical_end;
   int bp_count, can_use_bp, length;
   CORE_ADDR end;
   struct breakpoint *b;
-  struct symtab_and_line sal_start, sal_end;
-  struct cleanup *cleanup_bkpt;
-  struct linespec_sals *lsal_start, *lsal_end;
 
   /* We don't support software ranged breakpoints.  */
   if (target_ranged_break_num_registers () < 0)
@@ -10371,18 +9940,17 @@ break_range_command (char *arg, int from
 
   if (arg[0] != ',')
     error (_("Too few arguments."));
-  else if (VEC_empty (linespec_sals, canonical_start.sals))
+  else if (canonical_start.lsals.empty ())
     error (_("Could not find location of the beginning of the range."));
 
-  lsal_start = VEC_index (linespec_sals, canonical_start.sals, 0);
+  const linespec_sals &lsal_start = canonical_start.lsals[0];
 
-  if (VEC_length (linespec_sals, canonical_start.sals) > 1
-      || lsal_start->sals.nelts != 1)
+  if (canonical_start.lsals.size () > 1
+      || lsal_start.sals.size () != 1)
     error (_("Cannot create a ranged breakpoint with multiple locations."));
 
-  sal_start = lsal_start->sals.sals[0];
-  addr_string_start = savestring (arg_start, arg - arg_start);
-  cleanup_bkpt = make_cleanup (xfree, addr_string_start);
+  const symtab_and_line &sal_start = lsal_start.sals[0];
+  std::string addr_string_start (arg_start, arg - arg_start);
 
   arg++;	/* Skip the comma.  */
   arg = skip_spaces (arg);
@@ -10402,15 +9970,15 @@ break_range_command (char *arg, int from
 		    sal_start.symtab, sal_start.line,
 		    &canonical_end, NULL, NULL);
 
-  if (VEC_empty (linespec_sals, canonical_end.sals))
+  if (canonical_end.lsals.empty ())
     error (_("Could not find location of the end of the range."));
 
-  lsal_end = VEC_index (linespec_sals, canonical_end.sals, 0);
-  if (VEC_length (linespec_sals, canonical_end.sals) > 1
-      || lsal_end->sals.nelts != 1)
+  const linespec_sals &lsal_end = canonical_end.lsals[0];
+  if (canonical_end.lsals.size () > 1
+      || lsal_end.sals.size () != 1)
     error (_("Cannot create a ranged breakpoint with multiple locations."));
 
-  sal_end = lsal_end->sals.sals[0];
+  const symtab_and_line &sal_end = lsal_end.sals[0];
 
   end = find_breakpoint_range_end (sal_end);
   if (sal_start.pc > end)
@@ -10424,9 +9992,7 @@ break_range_command (char *arg, int from
     {
       /* This range is simple enough to be handled by
 	 the `hbreak' command.  */
-      hbreak_command (addr_string_start, 1);
-
-      do_cleanups (cleanup_bkpt);
+      hbreak_command (&addr_string_start[0], 1);
 
       return;
     }
@@ -10441,8 +10007,6 @@ break_range_command (char *arg, int from
   b->location_range_end = std::move (end_location);
   b->loc->length = length;
 
-  do_cleanups (cleanup_bkpt);
-
   mention (b);
   observer_notify_breakpoint_created (b);
   update_global_location_list (UGLL_MAY_INSERT);
@@ -10498,8 +10062,7 @@ watchpoint_exp_is_const (const struct ex
 	case TERNOP_SLICE:
 
 	case OP_LONG:
-	case OP_DOUBLE:
-	case OP_DECFLOAT:
+	case OP_FLOAT:
 	case OP_LAST:
 	case OP_COMPLEX:
 	case OP_STRING:
@@ -10562,18 +10125,13 @@ watchpoint_exp_is_const (const struct ex
   return 1;
 }
 
-/* Implement the "dtor" breakpoint_ops method for watchpoints.  */
+/* Watchpoint destructor.  */
 
-static void
-dtor_watchpoint (struct breakpoint *self)
+watchpoint::~watchpoint ()
 {
-  struct watchpoint *w = (struct watchpoint *) self;
-
-  xfree (w->exp_string);
-  xfree (w->exp_string_reparse);
-  value_free (w->val);
-
-  base_breakpoint_ops.dtor (self);
+  xfree (this->exp_string);
+  xfree (this->exp_string_reparse);
+  value_free (this->val);
 }
 
 /* Implement the "re_set" breakpoint_ops method for watchpoints.  */
@@ -10637,7 +10195,7 @@ remove_watchpoint (struct bp_location *b
 
 static int
 breakpoint_hit_watchpoint (const struct bp_location *bl,
-			   struct address_space *aspace, CORE_ADDR bp_addr,
+			   const address_space *aspace, CORE_ADDR bp_addr,
 			   const struct target_waitstatus *ws)
 {
   struct breakpoint *b = bl->owner;
@@ -10689,7 +10247,6 @@ works_in_software_mode_watchpoint (const
 static enum print_stop_action
 print_it_watchpoint (bpstat bs)
 {
-  struct cleanup *old_chain;
   struct breakpoint *b;
   enum print_stop_action result;
   struct watchpoint *w;
@@ -10700,13 +10257,12 @@ print_it_watchpoint (bpstat bs)
   b = bs->breakpoint_at;
   w = (struct watchpoint *) b;
 
-  old_chain = make_cleanup (null_cleanup, NULL);
-
   annotate_watchpoint (b->number);
   maybe_print_thread_hit_breakpoint (uiout);
 
   string_file stb;
 
+  gdb::optional<ui_out_emit_tuple> tuple_emitter;
   switch (b->type)
     {
     case bp_watchpoint:
@@ -10715,7 +10271,7 @@ print_it_watchpoint (bpstat bs)
 	uiout->field_string
 	  ("reason", async_reason_lookup (EXEC_ASYNC_WATCHPOINT_TRIGGER));
       mention (b);
-      make_cleanup_ui_out_tuple_begin_end (uiout, "value");
+      tuple_emitter.emplace (uiout, "value");
       uiout->text ("\nOld value = ");
       watchpoint_value_print (bs->old_val, &stb);
       uiout->field_stream ("old", stb);
@@ -10732,7 +10288,7 @@ print_it_watchpoint (bpstat bs)
 	uiout->field_string
 	  ("reason", async_reason_lookup (EXEC_ASYNC_READ_WATCHPOINT_TRIGGER));
       mention (b);
-      make_cleanup_ui_out_tuple_begin_end (uiout, "value");
+      tuple_emitter.emplace (uiout, "value");
       uiout->text ("\nValue = ");
       watchpoint_value_print (w->val, &stb);
       uiout->field_stream ("value", stb);
@@ -10748,7 +10304,7 @@ print_it_watchpoint (bpstat bs)
 	      ("reason",
 	       async_reason_lookup (EXEC_ASYNC_ACCESS_WATCHPOINT_TRIGGER));
 	  mention (b);
-	  make_cleanup_ui_out_tuple_begin_end (uiout, "value");
+	  tuple_emitter.emplace (uiout, "value");
 	  uiout->text ("\nOld value = ");
 	  watchpoint_value_print (bs->old_val, &stb);
 	  uiout->field_stream ("old", stb);
@@ -10761,7 +10317,7 @@ print_it_watchpoint (bpstat bs)
 	    uiout->field_string
 	      ("reason",
 	       async_reason_lookup (EXEC_ASYNC_ACCESS_WATCHPOINT_TRIGGER));
-	  make_cleanup_ui_out_tuple_begin_end (uiout, "value");
+	  tuple_emitter.emplace (uiout, "value");
 	  uiout->text ("\nValue = ");
 	}
       watchpoint_value_print (w->val, &stb);
@@ -10773,7 +10329,6 @@ print_it_watchpoint (bpstat bs)
       result = PRINT_UNKNOWN;
     }
 
-  do_cleanups (old_chain);
   return result;
 }
 
@@ -10783,37 +10338,37 @@ print_it_watchpoint (bpstat bs)
 static void
 print_mention_watchpoint (struct breakpoint *b)
 {
-  struct cleanup *ui_out_chain;
   struct watchpoint *w = (struct watchpoint *) b;
   struct ui_out *uiout = current_uiout;
+  const char *tuple_name;
 
   switch (b->type)
     {
     case bp_watchpoint:
       uiout->text ("Watchpoint ");
-      ui_out_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "wpt");
+      tuple_name = "wpt";
       break;
     case bp_hardware_watchpoint:
       uiout->text ("Hardware watchpoint ");
-      ui_out_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "wpt");
+      tuple_name = "wpt";
       break;
     case bp_read_watchpoint:
       uiout->text ("Hardware read watchpoint ");
-      ui_out_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "hw-rwpt");
+      tuple_name = "hw-rwpt";
       break;
     case bp_access_watchpoint:
       uiout->text ("Hardware access (read/write) watchpoint ");
-      ui_out_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "hw-awpt");
+      tuple_name = "hw-awpt";
       break;
     default:
       internal_error (__FILE__, __LINE__,
 		      _("Invalid hardware watchpoint type."));
     }
 
+  ui_out_emit_tuple tuple_emitter (uiout, tuple_name);
   uiout->field_int ("number", b->number);
   uiout->text (": ");
   uiout->field_string ("exp", w->exp_string);
-  do_cleanups (ui_out_chain);
 }
 
 /* Implement the "print_recreate" breakpoint_ops method for
@@ -10982,31 +10537,31 @@ print_mention_masked_watchpoint (struct 
 {
   struct watchpoint *w = (struct watchpoint *) b;
   struct ui_out *uiout = current_uiout;
-  struct cleanup *ui_out_chain;
+  const char *tuple_name;
 
   switch (b->type)
     {
     case bp_hardware_watchpoint:
       uiout->text ("Masked hardware watchpoint ");
-      ui_out_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "wpt");
+      tuple_name = "wpt";
       break;
     case bp_read_watchpoint:
       uiout->text ("Masked hardware read watchpoint ");
-      ui_out_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "hw-rwpt");
+      tuple_name = "hw-rwpt";
       break;
     case bp_access_watchpoint:
       uiout->text ("Masked hardware access (read/write) watchpoint ");
-      ui_out_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "hw-awpt");
+      tuple_name = "hw-awpt";
       break;
     default:
       internal_error (__FILE__, __LINE__,
 		      _("Invalid hardware watchpoint type."));
     }
 
+  ui_out_emit_tuple tuple_emitter (uiout, tuple_name);
   uiout->field_int ("number", b->number);
   uiout->text (": ");
   uiout->field_string ("exp", w->exp_string);
-  do_cleanups (ui_out_chain);
 }
 
 /* Implement the "print_recreate" breakpoint_ops method for
@@ -11058,7 +10613,7 @@ static void
 watch_command_1 (const char *arg, int accessflag, int from_tty,
 		 int just_location, int internal)
 {
-  struct breakpoint *b, *scope_breakpoint = NULL;
+  struct breakpoint *scope_breakpoint = NULL;
   const struct block *exp_valid_block = NULL, *cond_exp_valid_block = NULL;
   struct value *val, *mark, *result;
   int saved_bitpos = 0, saved_bitsize = 0;
@@ -11075,9 +10630,6 @@ watch_command_1 (const char *arg, int ac
      the hardware watchpoint.  */
   int use_mask = 0;
   CORE_ADDR mask = 0;
-  struct watchpoint *w;
-  char *expression;
-  struct cleanup *back_to;
 
   /* Make sure that we actually have parameters to parse.  */
   if (arg != NULL && arg[0] != '\0')
@@ -11166,9 +10718,8 @@ watch_command_1 (const char *arg, int ac
      is in terms of a newly allocated string instead of the original
      ARG.  */
   innermost_block = NULL;
-  expression = savestring (arg, exp_end - arg);
-  back_to = make_cleanup (xfree, expression);
-  exp_start = arg = expression;
+  std::string expression (arg, exp_end - arg);
+  exp_start = arg = expression.c_str ();
   expression_up exp = parse_exp_1 (&arg, 0, 0, 0);
   exp_end = arg;
   /* Remove trailing whitespace from the expression before saving it.
@@ -11220,8 +10771,8 @@ watch_command_1 (const char *arg, int ac
   else if (val != NULL)
     release_value (val);
 
-  tok = skip_spaces_const (arg);
-  end_tok = skip_to_space_const (tok);
+  tok = skip_spaces (arg);
+  end_tok = skip_to_space (tok);
 
   toklen = end_tok - tok;
   if (toklen >= 1 && strncmp (tok, "if", toklen) == 0)
@@ -11296,17 +10847,17 @@ watch_command_1 (const char *arg, int ac
   else
     bp_type = bp_hardware_watchpoint;
 
-  w = new watchpoint ();
-  b = &w->base;
+  std::unique_ptr<watchpoint> w (new watchpoint ());
+
   if (use_mask)
-    init_raw_breakpoint_without_location (b, NULL, bp_type,
+    init_raw_breakpoint_without_location (w.get (), NULL, bp_type,
 					  &masked_watchpoint_breakpoint_ops);
   else
-    init_raw_breakpoint_without_location (b, NULL, bp_type,
+    init_raw_breakpoint_without_location (w.get (), NULL, bp_type,
 					  &watchpoint_breakpoint_ops);
-  b->thread = thread;
-  b->disposition = disp_donttouch;
-  b->pspace = current_program_space;
+  w->thread = thread;
+  w->disposition = disp_donttouch;
+  w->pspace = current_program_space;
   w->exp = std::move (exp);
   w->exp_valid_block = exp_valid_block;
   w->cond_exp_valid_block = cond_exp_valid_block;
@@ -11315,18 +10866,11 @@ watch_command_1 (const char *arg, int ac
       struct type *t = value_type (val);
       CORE_ADDR addr = value_as_address (val);
 
-      t = check_typedef (TYPE_TARGET_TYPE (check_typedef (t)));
-
-      std::string name = type_to_string (t);
-
-      w->exp_string_reparse = xstrprintf ("* (%s *) %s", name.c_str (),
-					  core_addr_to_string (addr));
+      w->exp_string_reparse
+	= current_language->la_watch_location_expression (t, addr).release ();
 
       w->exp_string = xstrprintf ("-location %.*s",
 				  (int) (exp_end - exp_start), exp_start);
-
-      /* The above expression is in C.  */
-      b->language = language_c;
     }
   else
     w->exp_string = savestring (exp_start, exp_end - exp_start);
@@ -11344,9 +10888,9 @@ watch_command_1 (const char *arg, int ac
     }
 
   if (cond_start)
-    b->cond_string = savestring (cond_start, cond_end - cond_start);
+    w->cond_string = savestring (cond_start, cond_end - cond_start);
   else
-    b->cond_string = 0;
+    w->cond_string = 0;
 
   if (frame_id_p (watchpoint_frame))
     {
@@ -11363,28 +10907,18 @@ watch_command_1 (const char *arg, int ac
     {
       /* The scope breakpoint is related to the watchpoint.  We will
 	 need to act on them together.  */
-      b->related_breakpoint = scope_breakpoint;
-      scope_breakpoint->related_breakpoint = b;
+      w->related_breakpoint = scope_breakpoint;
+      scope_breakpoint->related_breakpoint = w.get ();
     }
 
   if (!just_location)
     value_free_to_mark (mark);
 
-  TRY
-    {
-      /* Finally update the new watchpoint.  This creates the locations
-	 that should be inserted.  */
-      update_watchpoint (w, 1);
-    }
-  CATCH (e, RETURN_MASK_ALL)
-    {
-      delete_breakpoint (b);
-      throw_exception (e);
-    }
-  END_CATCH
+  /* Finally update the new watchpoint.  This creates the locations
+     that should be inserted.  */
+  update_watchpoint (w.get (), 1);
 
-  install_breakpoint (internal, b, 1);
-  do_cleanups (back_to);
+  install_breakpoint (internal, std::move (w), 1);
 }
 
 /* Return count of debug registers needed to watch the given expression.
@@ -11472,7 +11006,7 @@ can_use_hardware_watchpoint (struct valu
 }
 
 void
-watch_command_wrapper (char *arg, int from_tty, int internal)
+watch_command_wrapper (const char *arg, int from_tty, int internal)
 {
   watch_command_1 (arg, hw_write, from_tty, 0, internal);
 }
@@ -11481,7 +11015,7 @@ watch_command_wrapper (char *arg, int fr
    calls watch_command_1.  */
 
 static void
-watch_maybe_just_location (char *arg, int accessflag, int from_tty)
+watch_maybe_just_location (const char *arg, int accessflag, int from_tty)
 {
   int just_location = 0;
 
@@ -11497,31 +11031,31 @@ watch_maybe_just_location (char *arg, in
 }
 
 static void
-watch_command (char *arg, int from_tty)
+watch_command (const char *arg, int from_tty)
 {
   watch_maybe_just_location (arg, hw_write, from_tty);
 }
 
 void
-rwatch_command_wrapper (char *arg, int from_tty, int internal)
+rwatch_command_wrapper (const char *arg, int from_tty, int internal)
 {
   watch_command_1 (arg, hw_read, from_tty, 0, internal);
 }
 
 static void
-rwatch_command (char *arg, int from_tty)
+rwatch_command (const char *arg, int from_tty)
 {
   watch_maybe_just_location (arg, hw_read, from_tty);
 }
 
 void
-awatch_command_wrapper (char *arg, int from_tty, int internal)
+awatch_command_wrapper (const char *arg, int from_tty, int internal)
 {
   watch_command_1 (arg, hw_access, from_tty, 0, internal);
 }
 
 static void
-awatch_command (char *arg, int from_tty)
+awatch_command (const char *arg, int from_tty)
 {
   watch_maybe_just_location (arg, hw_access, from_tty);
 }
@@ -11569,8 +11103,8 @@ static struct thread_fsm_ops until_break
 
 static struct until_break_fsm *
 new_until_break_fsm (struct interp *cmd_interp, int thread,
-		     struct breakpoint *location_breakpoint,
-		     struct breakpoint *caller_breakpoint)
+		     breakpoint_up &&location_breakpoint,
+		     breakpoint_up &&caller_breakpoint)
 {
   struct until_break_fsm *sm;
 
@@ -11578,8 +11112,8 @@ new_until_break_fsm (struct interp *cmd_
   thread_fsm_ctor (&sm->thread_fsm, &until_break_fsm_ops, cmd_interp);
 
   sm->thread = thread;
-  sm->location_breakpoint = location_breakpoint;
-  sm->caller_breakpoint = caller_breakpoint;
+  sm->location_breakpoint = location_breakpoint.release ();
+  sm->caller_breakpoint = caller_breakpoint.release ();
 
   return sm;
 }
@@ -11636,16 +11170,12 @@ until_break_fsm_async_reply_reason (stru
 }
 
 void
-until_break_command (char *arg, int from_tty, int anywhere)
+until_break_command (const char *arg, int from_tty, int anywhere)
 {
-  struct symtabs_and_lines sals;
-  struct symtab_and_line sal;
   struct frame_info *frame;
   struct gdbarch *frame_gdbarch;
   struct frame_id stack_frame_id;
   struct frame_id caller_frame_id;
-  struct breakpoint *location_breakpoint;
-  struct breakpoint *caller_breakpoint = NULL;
   struct cleanup *old_chain;
   int thread;
   struct thread_info *tp;
@@ -11658,19 +11188,18 @@ until_break_command (char *arg, int from
 
   event_location_up location = string_to_event_location (&arg, current_language);
 
-  if (last_displayed_sal_is_valid ())
-    sals = decode_line_1 (location.get (), DECODE_LINE_FUNFIRSTLINE, NULL,
-			  get_last_displayed_symtab (),
-			  get_last_displayed_line ());
-  else
-    sals = decode_line_1 (location.get (), DECODE_LINE_FUNFIRSTLINE,
-			  NULL, (struct symtab *) NULL, 0);
+  std::vector<symtab_and_line> sals
+    = (last_displayed_sal_is_valid ()
+       ? decode_line_1 (location.get (), DECODE_LINE_FUNFIRSTLINE, NULL,
+			get_last_displayed_symtab (),
+			get_last_displayed_line ())
+       : decode_line_1 (location.get (), DECODE_LINE_FUNFIRSTLINE,
+			NULL, (struct symtab *) NULL, 0));
 
-  if (sals.nelts != 1)
+  if (sals.size () != 1)
     error (_("Couldn't get information on specified line."));
 
-  sal = sals.sals[0];
-  xfree (sals.sals);	/* malloc'd, so freed.  */
+  symtab_and_line &sal = sals[0];
 
   if (*arg)
     error (_("Junk at end of arguments."));
@@ -11695,6 +11224,7 @@ until_break_command (char *arg, int from
   /* Keep within the current frame, or in frames called by the current
      one.  */
 
+  breakpoint_up caller_breakpoint;
   if (frame_id_p (caller_frame_id))
     {
       struct symtab_and_line sal2;
@@ -11707,7 +11237,6 @@ until_break_command (char *arg, int from
 						    sal2,
 						    caller_frame_id,
 						    bp_until);
-      make_cleanup_delete_breakpoint (caller_breakpoint);
 
       set_longjmp_breakpoint (tp, caller_frame_id);
       make_cleanup (delete_longjmp_breakpoint_cleanup, &thread);
@@ -11716,6 +11245,7 @@ until_break_command (char *arg, int from
   /* set_momentary_breakpoint could invalidate FRAME.  */
   frame = NULL;
 
+  breakpoint_up location_breakpoint;
   if (anywhere)
     /* If the user told us to continue until a specified location,
        we don't specify a frame at which we need to stop.  */
@@ -11726,10 +11256,10 @@ until_break_command (char *arg, int from
        only at the very same frame.  */
     location_breakpoint = set_momentary_breakpoint (frame_gdbarch, sal,
 						    stack_frame_id, bp_until);
-  make_cleanup_delete_breakpoint (location_breakpoint);
 
   sm = new_until_break_fsm (command_interp (), tp->global_num,
-			    location_breakpoint, caller_breakpoint);
+			    std::move (location_breakpoint),
+			    std::move (caller_breakpoint));
   tp->thread_fsm = &sm->thread_fsm;
 
   discard_cleanups (old_chain);
@@ -11758,7 +11288,7 @@ ep_parse_optional_if_clause (const char 
 
   /* Skip any extra leading whitespace, and record the start of the
      condition string.  */
-  *arg = skip_spaces_const (*arg);
+  *arg = skip_spaces (*arg);
   cond_string = *arg;
 
   /* Assume that the condition occupies the remainder of the arg
@@ -11779,10 +11309,9 @@ typedef enum
 catch_fork_kind;
 
 static void
-catch_fork_command_1 (char *arg_entry, int from_tty,
+catch_fork_command_1 (const char *arg, int from_tty,
 		      struct cmd_list_element *command)
 {
-  const char *arg = arg_entry;
   struct gdbarch *gdbarch = get_current_arch ();
   const char *cond_string = NULL;
   catch_fork_kind fork_kind;
@@ -11794,7 +11323,7 @@ catch_fork_command_1 (char *arg_entry, i
 
   if (!arg)
     arg = "";
-  arg = skip_spaces_const (arg);
+  arg = skip_spaces (arg);
 
   /* The allowed syntax is:
      catch [v]fork
@@ -11827,11 +11356,9 @@ catch_fork_command_1 (char *arg_entry, i
 }
 
 static void
-catch_exec_command_1 (char *arg_entry, int from_tty,
+catch_exec_command_1 (const char *arg, int from_tty,
 		      struct cmd_list_element *command)
 {
-  const char *arg = arg_entry;
-  struct exec_catchpoint *c;
   struct gdbarch *gdbarch = get_current_arch ();
   int tempflag;
   const char *cond_string = NULL;
@@ -11840,7 +11367,7 @@ catch_exec_command_1 (char *arg_entry, i
 
   if (!arg)
     arg = "";
-  arg = skip_spaces_const (arg);
+  arg = skip_spaces (arg);
 
   /* The allowed syntax is:
      catch exec
@@ -11852,19 +11379,19 @@ catch_exec_command_1 (char *arg_entry, i
   if ((*arg != '\0') && !isspace (*arg))
     error (_("Junk at end of arguments."));
 
-  c = new exec_catchpoint ();
-  init_catchpoint (&c->base, gdbarch, tempflag, cond_string,
+  std::unique_ptr<exec_catchpoint> c (new exec_catchpoint ());
+  init_catchpoint (c.get (), gdbarch, tempflag, cond_string,
 		   &catch_exec_breakpoint_ops);
   c->exec_pathname = NULL;
 
-  install_breakpoint (0, &c->base, 1);
+  install_breakpoint (0, std::move (c), 1);
 }
 
 void
 init_ada_exception_breakpoint (struct breakpoint *b,
 			       struct gdbarch *gdbarch,
 			       struct symtab_and_line sal,
-			       char *addr_string,
+			       const char *addr_string,
 			       const struct breakpoint_ops *ops,
 			       int tempflag,
 			       int enabled,
@@ -11898,31 +11425,29 @@ init_ada_exception_breakpoint (struct br
 }
 
 static void
-catch_command (char *arg, int from_tty)
+catch_command (const char *arg, int from_tty)
 {
   error (_("Catch requires an event name."));
 }
 
 
 static void
-tcatch_command (char *arg, int from_tty)
+tcatch_command (const char *arg, int from_tty)
 {
   error (_("Catch requires an event name."));
 }
 
-/* A qsort comparison function that sorts breakpoints in order.  */
+/* Compare two breakpoints and return a strcmp-like result.  */
 
 static int
-compare_breakpoints (const void *a, const void *b)
+compare_breakpoints (const breakpoint *a, const breakpoint *b)
 {
-  const breakpoint_p *ba = (const breakpoint_p *) a;
-  uintptr_t ua = (uintptr_t) *ba;
-  const breakpoint_p *bb = (const breakpoint_p *) b;
-  uintptr_t ub = (uintptr_t) *bb;
+  uintptr_t ua = (uintptr_t) a;
+  uintptr_t ub = (uintptr_t) b;
 
-  if ((*ba)->number < (*bb)->number)
+  if (a->number < b->number)
     return -1;
-  else if ((*ba)->number > (*bb)->number)
+  else if (a->number > b->number)
     return 1;
 
   /* Now sort by address, in case we see, e..g, two breakpoints with
@@ -11935,42 +11460,34 @@ compare_breakpoints (const void *a, cons
 /* Delete breakpoints by address or line.  */
 
 static void
-clear_command (char *arg, int from_tty)
+clear_command (const char *arg, int from_tty)
 {
-  struct breakpoint *b, *prev;
-  VEC(breakpoint_p) *found = 0;
-  int ix;
+  struct breakpoint *b;
   int default_match;
-  struct symtabs_and_lines sals;
-  struct symtab_and_line sal;
-  int i;
-  struct cleanup *cleanups = make_cleanup (null_cleanup, NULL);
 
+  std::vector<symtab_and_line> decoded_sals;
+  symtab_and_line last_sal;
+  gdb::array_view<symtab_and_line> sals;
   if (arg)
     {
-      sals = decode_line_with_current_source (arg,
-					      (DECODE_LINE_FUNFIRSTLINE
-					       | DECODE_LINE_LIST_MODE));
-      make_cleanup (xfree, sals.sals);
+      decoded_sals
+	= decode_line_with_current_source (arg,
+					   (DECODE_LINE_FUNFIRSTLINE
+					    | DECODE_LINE_LIST_MODE));
       default_match = 0;
+      sals = decoded_sals;
     }
   else
     {
-      sals.sals = XNEW (struct symtab_and_line);
-      make_cleanup (xfree, sals.sals);
-      init_sal (&sal);		/* Initialize to zeroes.  */
-
       /* Set sal's line, symtab, pc, and pspace to the values
 	 corresponding to the last call to print_frame_info.  If the
 	 codepoint is not valid, this will set all the fields to 0.  */
-      get_last_displayed_sal (&sal);
-      if (sal.symtab == 0)
+      last_sal = get_last_displayed_sal ();
+      if (last_sal.symtab == 0)
 	error (_("No source file specified."));
 
-      sals.sals[0] = sal;
-      sals.nelts = 1;
-
       default_match = 1;
+      sals = last_sal;
     }
 
   /* We don't call resolve_sal_pc here.  That's not as bad as it
@@ -11995,9 +11512,8 @@ clear_command (char *arg, int from_tty)
      from_tty is forced true if we delete more than one
      breakpoint.  */
 
-  found = NULL;
-  make_cleanup (VEC_cleanup (breakpoint_p), &found);
-  for (i = 0; i < sals.nelts; i++)
+  std::vector<struct breakpoint *> found;
+  for (const auto &sal : sals)
     {
       const char *sal_fullname;
 
@@ -12013,7 +11529,6 @@ clear_command (char *arg, int from_tty)
          0              0             line
          1              0             <can't happen> */
 
-      sal = sals.sals[i];
       sal_fullname = (sal.symtab == NULL
 		      ? NULL : symtab_to_fullname (sal.symtab));
 
@@ -12055,12 +11570,12 @@ clear_command (char *arg, int from_tty)
 	    }
 
 	  if (match)
-	    VEC_safe_push(breakpoint_p, found, b);
+	    found.push_back (b);
 	}
     }
 
   /* Now go thru the 'found' chain and delete them.  */
-  if (VEC_empty(breakpoint_p, found))
+  if (found.empty ())
     {
       if (arg)
 	error (_("No breakpoint at %s."), arg);
@@ -12069,40 +11584,36 @@ clear_command (char *arg, int from_tty)
     }
 
   /* Remove duplicates from the vec.  */
-  qsort (VEC_address (breakpoint_p, found),
-	 VEC_length (breakpoint_p, found),
-	 sizeof (breakpoint_p),
-	 compare_breakpoints);
-  prev = VEC_index (breakpoint_p, found, 0);
-  for (ix = 1; VEC_iterate (breakpoint_p, found, ix, b); ++ix)
-    {
-      if (b == prev)
-	{
-	  VEC_ordered_remove (breakpoint_p, found, ix);
-	  --ix;
-	}
-    }
+  std::sort (found.begin (), found.end (),
+	     [] (const breakpoint *a, const breakpoint *b)
+	     {
+	       return compare_breakpoints (a, b) < 0;
+	     });
+  found.erase (std::unique (found.begin (), found.end (),
+			    [] (const breakpoint *a, const breakpoint *b)
+			    {
+			      return compare_breakpoints (a, b) == 0;
+			    }),
+	       found.end ());
 
-  if (VEC_length(breakpoint_p, found) > 1)
+  if (found.size () > 1)
     from_tty = 1;	/* Always report if deleted more than one.  */
   if (from_tty)
     {
-      if (VEC_length(breakpoint_p, found) == 1)
+      if (found.size () == 1)
 	printf_unfiltered (_("Deleted breakpoint "));
       else
 	printf_unfiltered (_("Deleted breakpoints "));
     }
 
-  for (ix = 0; VEC_iterate(breakpoint_p, found, ix, b); ix++)
+  for (breakpoint *iter : found)
     {
       if (from_tty)
-	printf_unfiltered ("%d ", b->number);
-      delete_breakpoint (b);
+	printf_unfiltered ("%d ", iter->number);
+      delete_breakpoint (iter);
     }
   if (from_tty)
     putchar_unfiltered ('\n');
-
-  do_cleanups (cleanups);
 }
 
 /* Delete breakpoint in BS if they are `delete' breakpoints and
@@ -12208,10 +11719,9 @@ static void
 download_tracepoint_locations (void)
 {
   struct breakpoint *b;
-  struct cleanup *old_chain;
   enum tribool can_download_tracepoint = TRIBOOL_UNKNOWN;
 
-  old_chain = save_current_space_and_thread ();
+  scoped_restore_current_pspace_and_thread restore_pspace_thread;
 
   ALL_TRACEPOINTS (b)
     {
@@ -12255,8 +11765,6 @@ download_tracepoint_locations (void)
       if (bp_location_downloaded)
 	observer_notify_breakpoint_modified (b);
     }
-
-  do_cleanups (old_chain);
 }
 
 /* Swap the insertion/duplication state between two locations.  */
@@ -12346,7 +11854,6 @@ update_global_location_list (enum ugll_i
 {
   struct breakpoint *b;
   struct bp_location **locp, *loc;
-  struct cleanup *cleanups;
   /* Last breakpoint location address that was marked for update.  */
   CORE_ADDR last_addr = 0;
   /* Last breakpoint location program space that was marked for update.  */
@@ -12365,14 +11872,13 @@ update_global_location_list (enum ugll_i
 
   /* Saved former bp_locations array which we compare against the newly
      built bp_locations from the current state of ALL_BREAKPOINTS.  */
-  struct bp_location **old_locations, **old_locp;
+  struct bp_location **old_locp;
   unsigned old_locations_count;
+  gdb::unique_xmalloc_ptr<struct bp_location *> old_locations (bp_locations);
 
-  old_locations = bp_locations;
   old_locations_count = bp_locations_count;
   bp_locations = NULL;
   bp_locations_count = 0;
-  cleanups = make_cleanup (xfree, old_locations);
 
   ALL_BREAKPOINTS (b)
     for (loc = b->loc; loc; loc = loc->next)
@@ -12399,8 +11905,8 @@ update_global_location_list (enum ugll_i
      and former bp_location array state respectively.  */
 
   locp = bp_locations;
-  for (old_locp = old_locations;
-       old_locp < old_locations + old_locations_count;
+  for (old_locp = old_locations.get ();
+       old_locp < old_locations.get () + old_locations_count;
        old_locp++)
     {
       struct bp_location *old_loc = *old_locp;
@@ -12683,8 +12189,6 @@ update_global_location_list (enum ugll_i
 
   if (insert_mode != UGLL_DONT_INSERT)
     download_tracepoint_locations ();
-
-  do_cleanups (cleanups);
 }
 
 void
@@ -12825,26 +12329,19 @@ static const struct bp_location_ops bp_l
   bp_location_dtor
 };
 
-/* Default breakpoint_ops methods all breakpoint_ops ultimately
-   inherit from.  */
+/* Destructor for the breakpoint base class.  */
 
-static void
-base_breakpoint_dtor (struct breakpoint *self)
+breakpoint::~breakpoint ()
 {
-  decref_counted_command_line (&self->commands);
-  xfree (self->cond_string);
-  xfree (self->extra_string);
-  xfree (self->filter);
+  xfree (this->cond_string);
+  xfree (this->extra_string);
+  xfree (this->filter);
 }
 
 static struct bp_location *
 base_breakpoint_allocate_location (struct breakpoint *self)
 {
-  struct bp_location *loc;
-
-  loc = new struct bp_location ();
-  init_bp_location (loc, &bp_location_ops, self);
-  return loc;
+  return new bp_location (&bp_location_ops, self);
 }
 
 static void
@@ -12871,7 +12368,7 @@ base_breakpoint_remove_location (struct 
 
 static int
 base_breakpoint_breakpoint_hit (const struct bp_location *bl,
-				struct address_space *aspace,
+				const address_space *aspace,
 				CORE_ADDR bp_addr,
 				const struct target_waitstatus *ws)
 {
@@ -12939,8 +12436,8 @@ base_breakpoint_create_sals_from_locatio
 static void
 base_breakpoint_create_breakpoints_sal (struct gdbarch *gdbarch,
 					struct linespec_result *c,
-					char *cond_string,
-					char *extra_string,
+					gdb::unique_xmalloc_ptr<char> cond_string,
+					gdb::unique_xmalloc_ptr<char> extra_string,
 					enum bptype type_wanted,
 					enum bpdisp disposition,
 					int thread,
@@ -12952,11 +12449,10 @@ base_breakpoint_create_breakpoints_sal (
   internal_error_pure_virtual_called ();
 }
 
-static void
+static std::vector<symtab_and_line>
 base_breakpoint_decode_location (struct breakpoint *b,
 				 const struct event_location *location,
-				 struct program_space *search_pspace,
-				 struct symtabs_and_lines *sals)
+				 struct program_space *search_pspace)
 {
   internal_error_pure_virtual_called ();
 }
@@ -12979,7 +12475,6 @@ base_breakpoint_after_condition_true (st
 
 struct breakpoint_ops base_breakpoint_ops =
 {
-  base_breakpoint_dtor,
   base_breakpoint_allocate_location,
   base_breakpoint_re_set,
   base_breakpoint_insert_location,
@@ -13041,7 +12536,7 @@ bkpt_remove_location (struct bp_location
 
 static int
 bkpt_breakpoint_hit (const struct bp_location *bl,
-		     struct address_space *aspace, CORE_ADDR bp_addr,
+		     const address_space *aspace, CORE_ADDR bp_addr,
 		     const struct target_waitstatus *ws)
 {
   if (ws->kind != TARGET_WAITKIND_STOPPED
@@ -13062,7 +12557,7 @@ bkpt_breakpoint_hit (const struct bp_loc
 
 static int
 dprintf_breakpoint_hit (const struct bp_location *bl,
-			struct address_space *aspace, CORE_ADDR bp_addr,
+			const address_space *aspace, CORE_ADDR bp_addr,
 			const struct target_waitstatus *ws)
 {
   if (dprintf_style == dprintf_style_agent
@@ -13189,8 +12684,8 @@ bkpt_create_sals_from_location (const st
 static void
 bkpt_create_breakpoints_sal (struct gdbarch *gdbarch,
 			     struct linespec_result *canonical,
-			     char *cond_string,
-			     char *extra_string,
+			     gdb::unique_xmalloc_ptr<char> cond_string,
+			     gdb::unique_xmalloc_ptr<char> extra_string,
 			     enum bptype type_wanted,
 			     enum bpdisp disposition,
 			     int thread,
@@ -13200,20 +12695,20 @@ bkpt_create_breakpoints_sal (struct gdba
 			     int internal, unsigned flags)
 {
   create_breakpoints_sal_default (gdbarch, canonical,
-				  cond_string, extra_string,
+				  std::move (cond_string),
+				  std::move (extra_string),
 				  type_wanted,
 				  disposition, thread, task,
 				  ignore_count, ops, from_tty,
 				  enabled, internal, flags);
 }
 
-static void
+static std::vector<symtab_and_line>
 bkpt_decode_location (struct breakpoint *b,
 		      const struct event_location *location,
-		      struct program_space *search_pspace,
-		      struct symtabs_and_lines *sals)
+		      struct program_space *search_pspace)
 {
-  decode_location_default (b, location, search_pspace, sals);
+  return decode_location_default (b, location, search_pspace);
 }
 
 /* Virtual table for internal breakpoints.  */
@@ -13347,15 +12842,12 @@ momentary_bkpt_print_mention (struct bre
    It gets cleared already on the removal of the first one of such placed
    breakpoints.  This is OK as they get all removed altogether.  */
 
-static void
-longjmp_bkpt_dtor (struct breakpoint *self)
+longjmp_breakpoint::~longjmp_breakpoint ()
 {
-  struct thread_info *tp = find_thread_global_id (self->thread);
+  thread_info *tp = find_thread_global_id (this->thread);
 
-  if (tp)
+  if (tp != NULL)
     tp->initiating_frame = null_frame_id;
-
-  momentary_breakpoint_ops.dtor (self);
 }
 
 /* Specific methods for probe breakpoints.  */
@@ -13369,10 +12861,7 @@ bkpt_probe_insert_location (struct bp_lo
     {
       /* The insertion was successful, now let's set the probe's semaphore
 	 if needed.  */
-      if (bl->probe.probe->pops->set_semaphore != NULL)
-	bl->probe.probe->pops->set_semaphore (bl->probe.probe,
-					      bl->probe.objfile,
-					      bl->gdbarch);
+      bl->probe.prob->set_semaphore (bl->probe.objfile, bl->gdbarch);
     }
 
   return v;
@@ -13383,10 +12872,7 @@ bkpt_probe_remove_location (struct bp_lo
 			    enum remove_bp_reason reason)
 {
   /* Let's clear the semaphore before removing the location.  */
-  if (bl->probe.probe->pops->clear_semaphore != NULL)
-    bl->probe.probe->pops->clear_semaphore (bl->probe.probe,
-					    bl->probe.objfile,
-					    bl->gdbarch);
+  bl->probe.prob->clear_semaphore (bl->probe.objfile, bl->gdbarch);
 
   return bkpt_remove_location (bl, reason);
 }
@@ -13401,18 +12887,18 @@ bkpt_probe_create_sals_from_location (co
   lsal.sals = parse_probes (location, NULL, canonical);
   lsal.canonical
     = xstrdup (event_location_to_string (canonical->location.get ()));
-  VEC_safe_push (linespec_sals, canonical->sals, &lsal);
+  canonical->lsals.push_back (std::move (lsal));
 }
 
-static void
+static std::vector<symtab_and_line>
 bkpt_probe_decode_location (struct breakpoint *b,
 			    const struct event_location *location,
-			    struct program_space *search_pspace,
-			    struct symtabs_and_lines *sals)
+			    struct program_space *search_pspace)
 {
-  *sals = parse_probes (location, search_pspace, NULL);
-  if (!sals->sals)
+  std::vector<symtab_and_line> sals = parse_probes (location, search_pspace, NULL);
+  if (sals.empty ())
     error (_("probe not found"));
+  return sals;
 }
 
 /* The breakpoint_ops structure to be used in tracepoints.  */
@@ -13425,7 +12911,7 @@ tracepoint_re_set (struct breakpoint *b)
 
 static int
 tracepoint_breakpoint_hit (const struct bp_location *bl,
-			   struct address_space *aspace, CORE_ADDR bp_addr,
+			   const address_space *aspace, CORE_ADDR bp_addr,
 			   const struct target_waitstatus *ws)
 {
   /* By definition, the inferior does not report stops at
@@ -13511,8 +12997,8 @@ tracepoint_create_sals_from_location (co
 static void
 tracepoint_create_breakpoints_sal (struct gdbarch *gdbarch,
 				   struct linespec_result *canonical,
-				   char *cond_string,
-				   char *extra_string,
+				   gdb::unique_xmalloc_ptr<char> cond_string,
+				   gdb::unique_xmalloc_ptr<char> extra_string,
 				   enum bptype type_wanted,
 				   enum bpdisp disposition,
 				   int thread,
@@ -13522,20 +13008,20 @@ tracepoint_create_breakpoints_sal (struc
 				   int internal, unsigned flags)
 {
   create_breakpoints_sal_default (gdbarch, canonical,
-				  cond_string, extra_string,
+				  std::move (cond_string),
+				  std::move (extra_string),
 				  type_wanted,
 				  disposition, thread, task,
 				  ignore_count, ops, from_tty,
 				  enabled, internal, flags);
 }
 
-static void
+static std::vector<symtab_and_line>
 tracepoint_decode_location (struct breakpoint *b,
 			    const struct event_location *location,
-			    struct program_space *search_pspace,
-			    struct symtabs_and_lines *sals)
+			    struct program_space *search_pspace)
 {
-  decode_location_default (b, location, search_pspace, sals);
+  return decode_location_default (b, location, search_pspace);
 }
 
 struct breakpoint_ops tracepoint_breakpoint_ops;
@@ -13553,14 +13039,13 @@ tracepoint_probe_create_sals_from_locati
   bkpt_probe_create_sals_from_location (location, canonical, type_wanted);
 }
 
-static void
+static std::vector<symtab_and_line>
 tracepoint_probe_decode_location (struct breakpoint *b,
 				  const struct event_location *location,
-				  struct program_space *search_pspace,
-				  struct symtabs_and_lines *sals)
+				  struct program_space *search_pspace)
 {
   /* We use the same method for breakpoint on probes.  */
-  bkpt_probe_decode_location (b, location, search_pspace, sals);
+  return bkpt_probe_decode_location (b, location, search_pspace);
 }
 
 static struct breakpoint_ops tracepoint_probe_breakpoint_ops;
@@ -13612,8 +13097,7 @@ dprintf_print_recreate (struct breakpoin
 static void
 dprintf_after_condition_true (struct bpstats *bs)
 {
-  struct cleanup *old_chain;
-  struct bpstats tmp_bs = { NULL };
+  struct bpstats tmp_bs;
   struct bpstats *tmp_bs_p = &tmp_bs;
 
   /* dprintf's never cause a stop.  This wasn't set in the
@@ -13628,14 +13112,12 @@ dprintf_after_condition_true (struct bps
      commands here throws.  */
   tmp_bs.commands = bs->commands;
   bs->commands = NULL;
-  old_chain = make_cleanup_decref_counted_command_line (&tmp_bs.commands);
 
   bpstat_do_actions_1 (&tmp_bs_p);
 
   /* 'tmp_bs.commands' will usually be NULL by now, but
      bpstat_do_actions_1 may return early without processing the whole
      list.  */
-  do_cleanups (old_chain);
 }
 
 /* The breakpoint_ops structure to be used on static tracepoints with
@@ -13648,27 +13130,25 @@ strace_marker_create_sals_from_location 
 {
   struct linespec_sals lsal;
   const char *arg_start, *arg;
-  char *str;
-  struct cleanup *cleanup;
 
-  arg = arg_start = get_linespec_location (location);
+  arg = arg_start = get_linespec_location (location)->spec_string;
   lsal.sals = decode_static_tracepoint_spec (&arg);
 
-  str = savestring (arg_start, arg - arg_start);
-  cleanup = make_cleanup (xfree, str);
-  canonical->location = new_linespec_location (&str);
-  do_cleanups (cleanup);
+  std::string str (arg_start, arg - arg_start);
+  const char *ptr = str.c_str ();
+  canonical->location
+    = new_linespec_location (&ptr, symbol_name_match_type::FULL);
 
   lsal.canonical
     = xstrdup (event_location_to_string (canonical->location.get ()));
-  VEC_safe_push (linespec_sals, canonical->sals, &lsal);
+  canonical->lsals.push_back (std::move (lsal));
 }
 
 static void
 strace_marker_create_breakpoints_sal (struct gdbarch *gdbarch,
 				      struct linespec_result *canonical,
-				      char *cond_string,
-				      char *extra_string,
+				      gdb::unique_xmalloc_ptr<char> cond_string,
+				      gdb::unique_xmalloc_ptr<char> extra_string,
 				      enum bptype type_wanted,
 				      enum bpdisp disposition,
 				      int thread,
@@ -13677,9 +13157,7 @@ strace_marker_create_breakpoints_sal (st
 				      int from_tty, int enabled,
 				      int internal, unsigned flags)
 {
-  int i;
-  struct linespec_sals *lsal = VEC_index (linespec_sals,
-					  canonical->sals, 0);
+  const linespec_sals &lsal = canonical->lsals[0];
 
   /* If the user is creating a static tracepoint by marker id
      (strace -m MARKER_ID), then store the sals index, so that
@@ -13688,21 +13166,16 @@ strace_marker_create_breakpoints_sal (st
      expand multiple locations for each sal, given than SALS
      already should contain all sals for MARKER_ID.  */
 
-  for (i = 0; i < lsal->sals.nelts; ++i)
+  for (size_t i = 0; i < lsal.sals.size (); i++)
     {
-      struct symtabs_and_lines expanded;
-      struct tracepoint *tp;
-      event_location_up location;
-
-      expanded.nelts = 1;
-      expanded.sals = &lsal->sals.sals[i];
-
-      location = copy_event_location (canonical->location.get ());
+      event_location_up location
+	= copy_event_location (canonical->location.get ());
 
-      tp = new tracepoint ();
-      init_breakpoint_sal (&tp->base, gdbarch, expanded,
+      std::unique_ptr<tracepoint> tp (new tracepoint ());
+      init_breakpoint_sal (tp.get (), gdbarch, lsal.sals[i],
 			   std::move (location), NULL,
-			   cond_string, extra_string,
+			   std::move (cond_string),
+			   std::move (extra_string),
 			   type_wanted, disposition,
 			   thread, task, ignore_count, ops,
 			   from_tty, enabled, internal, flags,
@@ -13715,24 +13188,24 @@ strace_marker_create_breakpoints_sal (st
 	 corresponds to this one  */
       tp->static_trace_marker_id_idx = i;
 
-      install_breakpoint (internal, &tp->base, 0);
+      install_breakpoint (internal, std::move (tp), 0);
     }
 }
 
-static void
+static std::vector<symtab_and_line>
 strace_marker_decode_location (struct breakpoint *b,
 			       const struct event_location *location,
-			       struct program_space *search_pspace,
-			       struct symtabs_and_lines *sals)
+			       struct program_space *search_pspace)
 {
   struct tracepoint *tp = (struct tracepoint *) b;
-  const char *s = get_linespec_location (location);
+  const char *s = get_linespec_location (location)->spec_string;
 
-  *sals = decode_static_tracepoint_spec (&s);
-  if (sals->nelts > tp->static_trace_marker_id_idx)
+  std::vector<symtab_and_line> sals = decode_static_tracepoint_spec (&s);
+  if (sals.size () > tp->static_trace_marker_id_idx)
     {
-      sals->sals[0] = sals->sals[tp->static_trace_marker_id_idx];
-      sals->nelts = 1;
+      sals[0] = sals[tp->static_trace_marker_id_idx];
+      sals.resize (1);
+      return sals;
     }
   else
     error (_("marker %s not found"), tp->static_trace_marker_id);
@@ -13835,33 +13308,18 @@ delete_breakpoint (struct breakpoint *bp
      self-contained, but it's not the case now.  */
   update_global_location_list (UGLL_DONT_INSERT);
 
-  bpt->ops->dtor (bpt);
   /* On the chance that someone will soon try again to delete this
      same bp, we mark it as deleted before freeing its storage.  */
   bpt->type = bp_none;
   delete bpt;
 }
 
-static void
-do_delete_breakpoint_cleanup (void *b)
-{
-  delete_breakpoint ((struct breakpoint *) b);
-}
-
-struct cleanup *
-make_cleanup_delete_breakpoint (struct breakpoint *b)
-{
-  return make_cleanup (do_delete_breakpoint_cleanup, b);
-}
-
 /* Iterator function to call a user-provided callback function once
    for each of B and its related breakpoints.  */
 
 static void
 iterate_over_related_breakpoints (struct breakpoint *b,
-				  void (*function) (struct breakpoint *,
-						    void *),
-				  void *data)
+				  gdb::function_view<void (breakpoint *)> function)
 {
   struct breakpoint *related;
 
@@ -13876,7 +13334,7 @@ iterate_over_related_breakpoints (struct
       if (next == related)
 	{
 	  /* RELATED is the last ring entry.  */
-	  function (related, data);
+	  function (related);
 
 	  /* FUNCTION may have deleted it, so we'd never reach back to
 	     B.  There's nothing left to do anyway, so just break
@@ -13884,7 +13342,7 @@ iterate_over_related_breakpoints (struct
 	  break;
 	}
       else
-	function (related, data);
+	function (related);
 
       related = next;
     }
@@ -13892,22 +13350,7 @@ iterate_over_related_breakpoints (struct
 }
 
 static void
-do_delete_breakpoint (struct breakpoint *b, void *ignore)
-{
-  delete_breakpoint (b);
-}
-
-/* A callback for map_breakpoint_numbers that calls
-   delete_breakpoint.  */
-
-static void
-do_map_delete_breakpoint (struct breakpoint *b, void *ignore)
-{
-  iterate_over_related_breakpoints (b, do_delete_breakpoint, NULL);
-}
-
-void
-delete_command (char *arg, int from_tty)
+delete_command (const char *arg, int from_tty)
 {
   struct breakpoint *b, *b_tmp;
 
@@ -13937,7 +13380,11 @@ delete_command (char *arg, int from_tty)
 	}
     }
   else
-    map_breakpoint_numbers (arg, do_map_delete_breakpoint, NULL);
+    map_breakpoint_numbers
+      (arg, [&] (breakpoint *b)
+       {
+	 iterate_over_related_breakpoints (b, delete_breakpoint);
+       });
 }
 
 /* Return true if all locations of B bound to PSPACE are pending.  If
@@ -14068,7 +13515,6 @@ update_static_tracepoint (struct breakpo
 
       if (!VEC_empty(static_tracepoint_marker_p, markers))
 	{
-	  struct symtab_and_line sal2;
 	  struct symbol *sym;
 	  struct static_tracepoint_marker *tpmarker;
 	  struct ui_out *uiout = current_uiout;
@@ -14083,11 +13529,7 @@ update_static_tracepoint (struct breakpo
 		     "found at previous line number"),
 		   b->number, tp->static_trace_marker_id);
 
-	  init_sal (&sal2);
-
-	  sal2.pc = tpmarker->address;
-
-	  sal2 = find_pc_line (tpmarker->address, 0);
+	  symtab_and_line sal2 = find_pc_line (tpmarker->address, 0);
 	  sym = find_pc_sect_function (tpmarker->address, NULL);
 	  uiout->text ("Now in ");
 	  if (sym)
@@ -14203,13 +13645,12 @@ hoist_existing_locations (struct breakpo
 void
 update_breakpoint_locations (struct breakpoint *b,
 			     struct program_space *filter_pspace,
-			     struct symtabs_and_lines sals,
-			     struct symtabs_and_lines sals_end)
+			     gdb::array_view<const symtab_and_line> sals,
+			     gdb::array_view<const symtab_and_line> sals_end)
 {
-  int i;
   struct bp_location *existing_locations;
 
-  if (sals_end.nelts != 0 && (sals.nelts != 1 || sals_end.nelts != 1))
+  if (!sals_end.empty () && (sals.size () != 1 || sals_end.size () != 1))
     {
       /* Ranged breakpoints have only one start location and one end
 	 location.  */
@@ -14226,18 +13667,18 @@ update_breakpoint_locations (struct brea
      We'd like to retain the location, so that when the library is
      loaded again, we don't loose the enabled/disabled status of the
      individual locations.  */
-  if (all_locations_are_pending (b, filter_pspace) && sals.nelts == 0)
+  if (all_locations_are_pending (b, filter_pspace) && sals.empty ())
     return;
 
   existing_locations = hoist_existing_locations (b, filter_pspace);
 
-  for (i = 0; i < sals.nelts; ++i)
+  for (const auto &sal : sals)
     {
       struct bp_location *new_loc;
 
-      switch_to_program_space_and_thread (sals.sals[i].pspace);
+      switch_to_program_space_and_thread (sal.pspace);
 
-      new_loc = add_location_to_breakpoint (b, &(sals.sals[i]));
+      new_loc = add_location_to_breakpoint (b, &sal);
 
       /* Reparse conditions, they might contain references to the
 	 old symtab.  */
@@ -14248,8 +13689,8 @@ update_breakpoint_locations (struct brea
 	  s = b->cond_string;
 	  TRY
 	    {
-	      new_loc->cond = parse_exp_1 (&s, sals.sals[i].pc,
-					   block_for_pc (sals.sals[i].pc), 
+	      new_loc->cond = parse_exp_1 (&s, sal.pc,
+					   block_for_pc (sal.pc),
 					   0);
 	    }
 	  CATCH (e, RETURN_MASK_ERROR)
@@ -14262,11 +13703,11 @@ update_breakpoint_locations (struct brea
 	  END_CATCH
 	}
 
-      if (sals_end.nelts)
+      if (!sals_end.empty ())
 	{
-	  CORE_ADDR end = find_breakpoint_range_end (sals_end.sals[0]);
+	  CORE_ADDR end = find_breakpoint_range_end (sals_end[0]);
 
-	  new_loc->length = end - sals.sals[0].pc + 1;
+	  new_loc->length = end - sals[0].pc + 1;
 	}
     }
 
@@ -14316,18 +13757,19 @@ update_breakpoint_locations (struct brea
 /* Find the SaL locations corresponding to the given LOCATION.
    On return, FOUND will be 1 if any SaL was found, zero otherwise.  */
 
-static struct symtabs_and_lines
+static std::vector<symtab_and_line>
 location_to_sals (struct breakpoint *b, struct event_location *location,
 		  struct program_space *search_pspace, int *found)
 {
-  struct symtabs_and_lines sals = {0};
   struct gdb_exception exception = exception_none;
 
   gdb_assert (b->ops != NULL);
 
+  std::vector<symtab_and_line> sals;
+
   TRY
     {
-      b->ops->decode_location (b, location, search_pspace, &sals);
+      sals = b->ops->decode_location (b, location, search_pspace);
     }
   CATCH (e, RETURN_MASK_ERROR)
     {
@@ -14368,16 +13810,14 @@ location_to_sals (struct breakpoint *b, 
 
   if (exception.reason == 0 || exception.error != NOT_FOUND_ERROR)
     {
-      int i;
-
-      for (i = 0; i < sals.nelts; ++i)
-	resolve_sal_pc (&sals.sals[i]);
+      for (auto &sal : sals)
+	resolve_sal_pc (&sal);
       if (b->condition_not_parsed && b->extra_string != NULL)
 	{
 	  char *cond_string, *extra_string;
 	  int thread, task;
 
-	  find_condition_and_thread (b->extra_string, sals.sals[0].pc,
+	  find_condition_and_thread (b->extra_string, sals[0].pc,
 				     &cond_string, &thread, &task,
 				     &extra_string);
 	  gdb_assert (b->cond_string == NULL);
@@ -14394,7 +13834,7 @@ location_to_sals (struct breakpoint *b, 
 	}
 
       if (b->type == bp_static_tracepoint && !strace_marker_p (b))
-	sals.sals[0] = update_static_tracepoint (b, sals.sals[0]);
+	sals[0] = update_static_tracepoint (b, sals[0]);
 
       *found = 1;
     }
@@ -14411,28 +13851,22 @@ location_to_sals (struct breakpoint *b, 
 static void
 breakpoint_re_set_default (struct breakpoint *b)
 {
-  int found;
-  struct symtabs_and_lines sals, sals_end;
-  struct symtabs_and_lines expanded = {0};
-  struct symtabs_and_lines expanded_end = {0};
   struct program_space *filter_pspace = current_program_space;
+  std::vector<symtab_and_line> expanded, expanded_end;
 
-  sals = location_to_sals (b, b->location.get (), filter_pspace, &found);
+  int found;
+  std::vector<symtab_and_line> sals = location_to_sals (b, b->location.get (),
+							filter_pspace, &found);
   if (found)
-    {
-      make_cleanup (xfree, sals.sals);
-      expanded = sals;
-    }
+    expanded = std::move (sals);
 
   if (b->location_range_end != NULL)
     {
-      sals_end = location_to_sals (b, b->location_range_end.get (),
-				   filter_pspace, &found);
+      std::vector<symtab_and_line> sals_end
+	= location_to_sals (b, b->location_range_end.get (),
+			    filter_pspace, &found);
       if (found)
-	{
-	  make_cleanup (xfree, sals_end.sals);
-	  expanded_end = sals_end;
-	}
+	expanded_end = std::move (sals_end);
     }
 
   update_breakpoint_locations (b, filter_pspace, expanded, expanded_end);
@@ -14456,8 +13890,8 @@ create_sals_from_location_default (const
 static void
 create_breakpoints_sal_default (struct gdbarch *gdbarch,
 				struct linespec_result *canonical,
-				char *cond_string,
-				char *extra_string,
+				gdb::unique_xmalloc_ptr<char> cond_string,
+				gdb::unique_xmalloc_ptr<char> extra_string,
 				enum bptype type_wanted,
 				enum bpdisp disposition,
 				int thread,
@@ -14466,8 +13900,9 @@ create_breakpoints_sal_default (struct g
 				int from_tty, int enabled,
 				int internal, unsigned flags)
 {
-  create_breakpoints_sal (gdbarch, canonical, cond_string,
-			  extra_string,
+  create_breakpoints_sal (gdbarch, canonical,
+			  std::move (cond_string),
+			  std::move (extra_string),
 			  type_wanted, disposition,
 			  thread, task, ignore_count, ops, from_tty,
 			  enabled, internal, flags);
@@ -14476,11 +13911,10 @@ create_breakpoints_sal_default (struct g
 /* Decode the line represented by S by calling decode_line_full.  This is the
    default function for the `decode_location' method of breakpoint_ops.  */
 
-static void
+static std::vector<symtab_and_line>
 decode_location_default (struct breakpoint *b,
 			 const struct event_location *location,
-			 struct program_space *search_pspace,
-			 struct symtabs_and_lines *sals)
+			 struct program_space *search_pspace)
 {
   struct linespec_result canonical;
 
@@ -14490,46 +13924,25 @@ decode_location_default (struct breakpoi
 		    b->filter);
 
   /* We should get 0 or 1 resulting SALs.  */
-  gdb_assert (VEC_length (linespec_sals, canonical.sals) < 2);
+  gdb_assert (canonical.lsals.size () < 2);
 
-  if (VEC_length (linespec_sals, canonical.sals) > 0)
+  if (!canonical.lsals.empty ())
     {
-      struct linespec_sals *lsal;
-
-      lsal = VEC_index (linespec_sals, canonical.sals, 0);
-      *sals = lsal->sals;
-      /* Arrange it so the destructor does not free the
-	 contents.  */
-      lsal->sals.sals = NULL;
+      const linespec_sals &lsal = canonical.lsals[0];
+      return std::move (lsal.sals);
     }
+  return {};
 }
 
-/* Prepare the global context for a re-set of breakpoint B.  */
+/* Reset a breakpoint.  */
 
-static struct cleanup *
-prepare_re_set_context (struct breakpoint *b)
+static void
+breakpoint_re_set_one (breakpoint *b)
 {
   input_radix = b->input_radix;
   set_language (b->language);
 
-  return make_cleanup (null_cleanup, NULL);
-}
-
-/* Reset a breakpoint given it's struct breakpoint * BINT.
-   The value we return ends up being the return value from catch_errors.
-   Unused in this case.  */
-
-static int
-breakpoint_re_set_one (void *bint)
-{
-  /* Get past catch_errs.  */
-  struct breakpoint *b = (struct breakpoint *) bint;
-  struct cleanup *cleanups;
-
-  cleanups = prepare_re_set_context (b);
   b->ops->re_set (b);
-  do_cleanups (cleanups);
-  return 0;
 }
 
 /* Re-set breakpoint locations for the current program space.
@@ -14539,34 +13952,34 @@ void
 breakpoint_re_set (void)
 {
   struct breakpoint *b, *b_tmp;
-  enum language save_language;
-  int save_input_radix;
-  struct cleanup *old_chain;
 
-  save_language = current_language->la_language;
-  save_input_radix = input_radix;
-  old_chain = save_current_space_and_thread ();
-
-  /* Note: we must not try to insert locations until after all
-     breakpoints have been re-set.  Otherwise, e.g., when re-setting
-     breakpoint 1, we'd insert the locations of breakpoint 2, which
-     hadn't been re-set yet, and thus may have stale locations.  */
-
-  ALL_BREAKPOINTS_SAFE (b, b_tmp)
   {
-    /* Format possible error msg.  */
-    char *message = xstrprintf ("Error in re-setting breakpoint %d: ",
-				b->number);
-    struct cleanup *cleanups = make_cleanup (xfree, message);
-    catch_errors (breakpoint_re_set_one, b, message, RETURN_MASK_ALL);
-    do_cleanups (cleanups);
-  }
-  set_language (save_language);
-  input_radix = save_input_radix;
+    scoped_restore_current_language save_language;
+    scoped_restore save_input_radix = make_scoped_restore (&input_radix);
+    scoped_restore_current_pspace_and_thread restore_pspace_thread;
+
+    /* Note: we must not try to insert locations until after all
+       breakpoints have been re-set.  Otherwise, e.g., when re-setting
+       breakpoint 1, we'd insert the locations of breakpoint 2, which
+       hadn't been re-set yet, and thus may have stale locations.  */
 
-  jit_breakpoint_re_set ();
+    ALL_BREAKPOINTS_SAFE (b, b_tmp)
+      {
+	TRY
+	  {
+	    breakpoint_re_set_one (b);
+	  }
+	CATCH (ex, RETURN_MASK_ALL)
+	  {
+	    exception_fprintf (gdb_stderr, ex,
+			       "Error in re-setting breakpoint %d: ",
+			       b->number);
+	  }
+	END_CATCH
+      }
 
-  do_cleanups (old_chain);
+    jit_breakpoint_re_set ();
+  }
 
   create_overlay_event_breakpoint ();
   create_longjmp_master_breakpoint ();
@@ -14645,9 +14058,9 @@ set_ignore_count (int bptnum, int count,
 /* Command to set ignore-count of breakpoint N to COUNT.  */
 
 static void
-ignore_command (char *args, int from_tty)
+ignore_command (const char *args, int from_tty)
 {
-  char *p = args;
+  const char *p = args;
   int num;
 
   if (p == 0)
@@ -14666,64 +14079,66 @@ ignore_command (char *args, int from_tty
     printf_filtered ("\n");
 }
 
-/* Call FUNCTION on each of the breakpoints
-   whose numbers are given in ARGS.  */
+
+/* Call FUNCTION on each of the breakpoints with numbers in the range
+   defined by BP_NUM_RANGE (an inclusive range).  */
 
 static void
-map_breakpoint_numbers (const char *args,
-			void (*function) (struct breakpoint *,
-					  void *),
-			void *data)
+map_breakpoint_number_range (std::pair<int, int> bp_num_range,
+			     gdb::function_view<void (breakpoint *)> function)
 {
-  int num;
-  struct breakpoint *b, *tmp;
-
-  if (args == 0 || *args == '\0')
-    error_no_arg (_("one or more breakpoint numbers"));
-
-  number_or_range_parser parser (args);
-
-  while (!parser.finished ())
+  if (bp_num_range.first == 0)
     {
-      const char *p = parser.cur_tok ();
-      bool match = false;
+      warning (_("bad breakpoint number at or near '%d'"),
+	       bp_num_range.first);
+    }
+  else
+    {
+      struct breakpoint *b, *tmp;
 
-      num = parser.get_number ();
-      if (num == 0)
-	{
-	  warning (_("bad breakpoint number at or near '%s'"), p);
-	}
-      else
+      for (int i = bp_num_range.first; i <= bp_num_range.second; i++)
 	{
+	  bool match = false;
+
 	  ALL_BREAKPOINTS_SAFE (b, tmp)
-	    if (b->number == num)
+	    if (b->number == i)
 	      {
 		match = true;
-		function (b, data);
+		function (b);
 		break;
 	      }
 	  if (!match)
-	    printf_unfiltered (_("No breakpoint number %d.\n"), num);
+	    printf_unfiltered (_("No breakpoint number %d.\n"), i);
 	}
     }
 }
 
-static struct bp_location *
-find_location_by_number (char *number)
+/* Call FUNCTION on each of the breakpoints whose numbers are given in
+   ARGS.  */
+
+static void
+map_breakpoint_numbers (const char *args,
+			gdb::function_view<void (breakpoint *)> function)
 {
-  char *dot = strchr (number, '.');
-  char *p1;
-  int bp_num;
-  int loc_num;
-  struct breakpoint *b;
-  struct bp_location *loc;  
+  if (args == NULL || *args == '\0')
+    error_no_arg (_("one or more breakpoint numbers"));
 
-  *dot = '\0';
+  number_or_range_parser parser (args);
 
-  p1 = number;
-  bp_num = get_number (&p1);
-  if (bp_num == 0)
-    error (_("Bad breakpoint number '%s'"), number);
+  while (!parser.finished ())
+    {
+      int num = parser.get_number ();
+      map_breakpoint_number_range (std::make_pair (num, num), function);
+    }
+}
+
+/* Return the breakpoint location structure corresponding to the
+   BP_NUM and LOC_NUM values.  */
+
+static struct bp_location *
+find_location_by_number (int bp_num, int loc_num)
+{
+  struct breakpoint *b;
 
   ALL_BREAKPOINTS (b)
     if (b->number == bp_num)
@@ -14732,23 +14147,180 @@ find_location_by_number (char *number)
       }
 
   if (!b || b->number != bp_num)
-    error (_("Bad breakpoint number '%s'"), number);
+    error (_("Bad breakpoint number '%d'"), bp_num);
   
-  p1 = dot+1;
-  loc_num = get_number (&p1);
   if (loc_num == 0)
-    error (_("Bad breakpoint location number '%s'"), number);
+    error (_("Bad breakpoint location number '%d'"), loc_num);
 
-  --loc_num;
-  loc = b->loc;
-  for (;loc_num && loc; --loc_num, loc = loc->next)
-    ;
-  if (!loc)
-    error (_("Bad breakpoint location number '%s'"), dot+1);
-    
-  return loc;  
+  int n = 0;
+  for (bp_location *loc = b->loc; loc != NULL; loc = loc->next)
+    if (++n == loc_num)
+      return loc;
+
+  error (_("Bad breakpoint location number '%d'"), loc_num);
+}
+
+/* Modes of operation for extract_bp_num.  */
+enum class extract_bp_kind
+{
+  /* Extracting a breakpoint number.  */
+  bp,
+
+  /* Extracting a location number.  */
+  loc,
+};
+
+/* Extract a breakpoint or location number (as determined by KIND)
+   from the string starting at START.  TRAILER is a character which
+   can be found after the number.  If you don't want a trailer, use
+   '\0'.  If END_OUT is not NULL, it is set to point after the parsed
+   string.  This always returns a positive integer.  */
+
+static int
+extract_bp_num (extract_bp_kind kind, const char *start,
+		int trailer, const char **end_out = NULL)
+{
+  const char *end = start;
+  int num = get_number_trailer (&end, trailer);
+  if (num < 0)
+    error (kind == extract_bp_kind::bp
+	   ? _("Negative breakpoint number '%.*s'")
+	   : _("Negative breakpoint location number '%.*s'"),
+	   int (end - start), start);
+  if (num == 0)
+    error (kind == extract_bp_kind::bp
+	   ? _("Bad breakpoint number '%.*s'")
+	   : _("Bad breakpoint location number '%.*s'"),
+	   int (end - start), start);
+
+  if (end_out != NULL)
+    *end_out = end;
+  return num;
+}
+
+/* Extract a breakpoint or location range (as determined by KIND) in
+   the form NUM1-NUM2 stored at &ARG[arg_offset].  Returns a std::pair
+   representing the (inclusive) range.  The returned pair's elements
+   are always positive integers.  */
+
+static std::pair<int, int>
+extract_bp_or_bp_range (extract_bp_kind kind,
+			const std::string &arg,
+			std::string::size_type arg_offset)
+{
+  std::pair<int, int> range;
+  const char *bp_loc = &arg[arg_offset];
+  std::string::size_type dash = arg.find ('-', arg_offset);
+  if (dash != std::string::npos)
+    {
+      /* bp_loc is a range (x-z).  */
+      if (arg.length () == dash + 1)
+	error (kind == extract_bp_kind::bp
+	       ? _("Bad breakpoint number at or near: '%s'")
+	       : _("Bad breakpoint location number at or near: '%s'"),
+	       bp_loc);
+
+      const char *end;
+      const char *start_first = bp_loc;
+      const char *start_second = &arg[dash + 1];
+      range.first = extract_bp_num (kind, start_first, '-');
+      range.second = extract_bp_num (kind, start_second, '\0', &end);
+
+      if (range.first > range.second)
+	error (kind == extract_bp_kind::bp
+	       ? _("Inverted breakpoint range at '%.*s'")
+	       : _("Inverted breakpoint location range at '%.*s'"),
+	       int (end - start_first), start_first);
+    }
+  else
+    {
+      /* bp_loc is a single value.  */
+      range.first = extract_bp_num (kind, bp_loc, '\0');
+      range.second = range.first;
+    }
+  return range;
+}
+
+/* Extract the breakpoint/location range specified by ARG.  Returns
+   the breakpoint range in BP_NUM_RANGE, and the location range in
+   BP_LOC_RANGE.
+
+   ARG may be in any of the following forms:
+
+   x     where 'x' is a breakpoint number.
+   x-y   where 'x' and 'y' specify a breakpoint numbers range.
+   x.y   where 'x' is a breakpoint number and 'y' a location number.
+   x.y-z where 'x' is a breakpoint number and 'y' and 'z' specify a
+	 location number range.
+*/
+
+static void
+extract_bp_number_and_location (const std::string &arg,
+				std::pair<int, int> &bp_num_range,
+				std::pair<int, int> &bp_loc_range)
+{
+  std::string::size_type dot = arg.find ('.');
+
+  if (dot != std::string::npos)
+    {
+      /* Handle 'x.y' and 'x.y-z' cases.  */
+
+      if (arg.length () == dot + 1 || dot == 0)
+	error (_("Bad breakpoint number at or near: '%s'"), arg.c_str ());
+
+      bp_num_range.first
+	= extract_bp_num (extract_bp_kind::bp, arg.c_str (), '.');
+      bp_num_range.second = bp_num_range.first;
+
+      bp_loc_range = extract_bp_or_bp_range (extract_bp_kind::loc,
+					     arg, dot + 1);
+    }
+  else
+    {
+      /* Handle x and x-y cases.  */
+
+      bp_num_range = extract_bp_or_bp_range (extract_bp_kind::bp, arg, 0);
+      bp_loc_range.first = 0;
+      bp_loc_range.second = 0;
+    }
 }
 
+/* Enable or disable a breakpoint location BP_NUM.LOC_NUM.  ENABLE
+   specifies whether to enable or disable.  */
+
+static void
+enable_disable_bp_num_loc (int bp_num, int loc_num, bool enable)
+{
+  struct bp_location *loc = find_location_by_number (bp_num, loc_num);
+  if (loc != NULL)
+    {
+      if (loc->enabled != enable)
+	{
+	  loc->enabled = enable;
+	  mark_breakpoint_location_modified (loc);
+	}
+      if (target_supports_enable_disable_tracepoint ()
+	  && current_trace_status ()->running && loc->owner
+	  && is_tracepoint (loc->owner))
+	target_disable_tracepoint (loc);
+    }
+  update_global_location_list (UGLL_DONT_INSERT);
+}
+
+/* Enable or disable a range of breakpoint locations.  BP_NUM is the
+   number of the breakpoint, and BP_LOC_RANGE specifies the
+   (inclusive) range of location numbers of that breakpoint to
+   enable/disable.  ENABLE specifies whether to enable or disable the
+   location.  */
+
+static void
+enable_disable_breakpoint_location_range (int bp_num,
+					  std::pair<int, int> &bp_loc_range,
+					  bool enable)
+{
+  for (int i = bp_loc_range.first; i <= bp_loc_range.second; i++)
+    enable_disable_bp_num_loc (bp_num, i, enable);
+}
 
 /* Set ignore-count of breakpoint number BPTNUM to COUNT.
    If from_tty is nonzero, it prints a message to that effect,
@@ -14782,25 +14354,13 @@ disable_breakpoint (struct breakpoint *b
   observer_notify_breakpoint_modified (bpt);
 }
 
-/* A callback for iterate_over_related_breakpoints.  */
-
-static void
-do_disable_breakpoint (struct breakpoint *b, void *ignore)
-{
-  disable_breakpoint (b);
-}
-
-/* A callback for map_breakpoint_numbers that calls
-   disable_breakpoint.  */
+/* Enable or disable the breakpoint(s) or breakpoint location(s)
+   specified in ARGS.  ARGS may be in any of the formats handled by
+   extract_bp_number_and_location.  ENABLE specifies whether to enable
+   or disable the breakpoints/locations.  */
 
 static void
-do_map_disable_breakpoint (struct breakpoint *b, void *ignore)
-{
-  iterate_over_related_breakpoints (b, do_disable_breakpoint, NULL);
-}
-
-static void
-disable_command (char *args, int from_tty)
+enable_disable_command (const char *args, int from_tty, bool enable)
 {
   if (args == 0)
     {
@@ -14808,39 +14368,55 @@ disable_command (char *args, int from_tt
 
       ALL_BREAKPOINTS (bpt)
 	if (user_breakpoint_p (bpt))
-	  disable_breakpoint (bpt);
+	  {
+	    if (enable)
+	      enable_breakpoint (bpt);
+	    else
+	      disable_breakpoint (bpt);
+	  }
     }
   else
     {
-      char *num = extract_arg (&args);
+      std::string num = extract_arg (&args);
 
-      while (num)
+      while (!num.empty ())
 	{
-	  if (strchr (num, '.'))
-	    {
-	      struct bp_location *loc = find_location_by_number (num);
+	  std::pair<int, int> bp_num_range, bp_loc_range;
 
-	      if (loc)
-		{
-		  if (loc->enabled)
-		    {
-		      loc->enabled = 0;
-		      mark_breakpoint_location_modified (loc);
-		    }
-		  if (target_supports_enable_disable_tracepoint ()
-		      && current_trace_status ()->running && loc->owner
-		      && is_tracepoint (loc->owner))
-		    target_disable_tracepoint (loc);
-		}
-	      update_global_location_list (UGLL_DONT_INSERT);
+	  extract_bp_number_and_location (num, bp_num_range, bp_loc_range);
+
+	  if (bp_loc_range.first == bp_loc_range.second
+	      && bp_loc_range.first == 0)
+	    {
+	      /* Handle breakpoint ids with formats 'x' or 'x-z'.  */
+	      map_breakpoint_number_range (bp_num_range,
+					   enable
+					   ? enable_breakpoint
+					   : disable_breakpoint);
 	    }
 	  else
-	    map_breakpoint_numbers (num, do_map_disable_breakpoint, NULL);
+	    {
+	      /* Handle breakpoint ids with formats 'x.y' or
+		 'x.y-z'.  */
+	      enable_disable_breakpoint_location_range
+		(bp_num_range.first, bp_loc_range, enable);
+	    }
 	  num = extract_arg (&args);
 	}
     }
 }
 
+/* The disable command disables the specified breakpoints/locations
+   (or all defined breakpoints) so they're no longer effective in
+   stopping the inferior.  ARGS may be in any of the forms defined in
+   extract_bp_number_and_location.  */
+
+static void
+disable_command (const char *args, int from_tty)
+{
+  enable_disable_command (args, from_tty, false);
+}
+
 static void
 enable_breakpoint_disp (struct breakpoint *bpt, enum bpdisp disposition,
 			int count)
@@ -14911,108 +14487,33 @@ enable_breakpoint (struct breakpoint *bp
   enable_breakpoint_disp (bpt, bpt->disposition, 0);
 }
 
-static void
-do_enable_breakpoint (struct breakpoint *bpt, void *arg)
-{
-  enable_breakpoint (bpt);
-}
-
-/* A callback for map_breakpoint_numbers that calls
-   enable_breakpoint.  */
+/* The enable command enables the specified breakpoints/locations (or
+   all defined breakpoints) so they once again become (or continue to
+   be) effective in stopping the inferior.  ARGS may be in any of the
+   forms defined in extract_bp_number_and_location.  */
 
 static void
-do_map_enable_breakpoint (struct breakpoint *b, void *ignore)
+enable_command (const char *args, int from_tty)
 {
-  iterate_over_related_breakpoints (b, do_enable_breakpoint, NULL);
+  enable_disable_command (args, from_tty, true);
 }
 
-/* The enable command enables the specified breakpoints (or all defined
-   breakpoints) so they once again become (or continue to be) effective
-   in stopping the inferior.  */
-
 static void
-enable_command (char *args, int from_tty)
+enable_once_command (const char *args, int from_tty)
 {
-  if (args == 0)
-    {
-      struct breakpoint *bpt;
-
-      ALL_BREAKPOINTS (bpt)
-	if (user_breakpoint_p (bpt))
-	  enable_breakpoint (bpt);
-    }
-  else
-    {
-      char *num = extract_arg (&args);
-
-      while (num)
-	{
-	  if (strchr (num, '.'))
-	    {
-	      struct bp_location *loc = find_location_by_number (num);
-
-	      if (loc)
-		{
-		  if (!loc->enabled)
-		    {
-		      loc->enabled = 1;
-		      mark_breakpoint_location_modified (loc);
-		    }
-		  if (target_supports_enable_disable_tracepoint ()
-		      && current_trace_status ()->running && loc->owner
-		      && is_tracepoint (loc->owner))
-		    target_enable_tracepoint (loc);
-		}
-	      update_global_location_list (UGLL_MAY_INSERT);
-	    }
-	  else
-	    map_breakpoint_numbers (num, do_map_enable_breakpoint, NULL);
-	  num = extract_arg (&args);
-	}
-    }
-}
-
-/* This struct packages up disposition data for application to multiple
-   breakpoints.  */
-
-struct disp_data
-{
-  enum bpdisp disp;
-  int count;
-};
-
-static void
-do_enable_breakpoint_disp (struct breakpoint *bpt, void *arg)
-{
-  struct disp_data disp_data = *(struct disp_data *) arg;
-
-  enable_breakpoint_disp (bpt, disp_data.disp, disp_data.count);
-}
-
-static void
-do_map_enable_once_breakpoint (struct breakpoint *bpt, void *ignore)
-{
-  struct disp_data disp = { disp_disable, 1 };
-
-  iterate_over_related_breakpoints (bpt, do_enable_breakpoint_disp, &disp);
-}
-
-static void
-enable_once_command (char *args, int from_tty)
-{
-  map_breakpoint_numbers (args, do_map_enable_once_breakpoint, NULL);
-}
-
-static void
-do_map_enable_count_breakpoint (struct breakpoint *bpt, void *countptr)
-{
-  struct disp_data disp = { disp_disable, *(int *) countptr };
-
-  iterate_over_related_breakpoints (bpt, do_enable_breakpoint_disp, &disp);
+  map_breakpoint_numbers
+    (args, [&] (breakpoint *b)
+     {
+       iterate_over_related_breakpoints
+	 (b, [&] (breakpoint *bpt)
+	  {
+	    enable_breakpoint_disp (bpt, disp_disable, 1);
+	  });
+     });
 }
 
 static void
-enable_count_command (char *args, int from_tty)
+enable_count_command (const char *args, int from_tty)
 {
   int count;
 
@@ -15021,30 +14522,38 @@ enable_count_command (char *args, int fr
 
   count = get_number (&args);
 
-  map_breakpoint_numbers (args, do_map_enable_count_breakpoint, &count);
-}
-
-static void
-do_map_enable_delete_breakpoint (struct breakpoint *bpt, void *ignore)
-{
-  struct disp_data disp = { disp_del, 1 };
-
-  iterate_over_related_breakpoints (bpt, do_enable_breakpoint_disp, &disp);
+  map_breakpoint_numbers
+    (args, [&] (breakpoint *b)
+     {
+       iterate_over_related_breakpoints
+	 (b, [&] (breakpoint *bpt)
+	  {
+	    enable_breakpoint_disp (bpt, disp_disable, count);
+	  });
+     });
 }
 
 static void
-enable_delete_command (char *args, int from_tty)
+enable_delete_command (const char *args, int from_tty)
 {
-  map_breakpoint_numbers (args, do_map_enable_delete_breakpoint, NULL);
+  map_breakpoint_numbers
+    (args, [&] (breakpoint *b)
+     {
+       iterate_over_related_breakpoints
+	 (b, [&] (breakpoint *bpt)
+	  {
+	    enable_breakpoint_disp (bpt, disp_del, 1);
+	  });
+     });
 }
 
 static void
-set_breakpoint_cmd (char *args, int from_tty)
+set_breakpoint_cmd (const char *args, int from_tty)
 {
 }
 
 static void
-show_breakpoint_cmd (char *args, int from_tty)
+show_breakpoint_cmd (const char *args, int from_tty)
 {
 }
 
@@ -15086,7 +14595,7 @@ invalidate_bp_value_on_memory_change (st
 
 void
 insert_single_step_breakpoint (struct gdbarch *gdbarch,
-			       struct address_space *aspace, 
+			       const address_space *aspace,
 			       CORE_ADDR next_pc)
 {
   struct thread_info *tp = inferior_thread ();
@@ -15114,22 +14623,18 @@ int
 insert_single_step_breakpoints (struct gdbarch *gdbarch)
 {
   struct regcache *regcache = get_current_regcache ();
-  VEC (CORE_ADDR) * next_pcs;
+  std::vector<CORE_ADDR> next_pcs;
 
   next_pcs = gdbarch_software_single_step (gdbarch, regcache);
 
-  if (next_pcs != NULL)
+  if (!next_pcs.empty ())
     {
-      int i;
-      CORE_ADDR pc;
       struct frame_info *frame = get_current_frame ();
-      struct address_space *aspace = get_frame_address_space (frame);
+      const address_space *aspace = get_frame_address_space (frame);
 
-      for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, pc); i++)
+      for (CORE_ADDR pc : next_pcs)
 	insert_single_step_breakpoint (gdbarch, aspace, pc);
 
-      VEC_free (CORE_ADDR, next_pcs);
-
       return 1;
     }
   else
@@ -15140,7 +14645,7 @@ insert_single_step_breakpoints (struct g
 
 int
 breakpoint_has_location_inserted_here (struct breakpoint *bp,
-				       struct address_space *aspace,
+				       const address_space *aspace,
 				       CORE_ADDR pc)
 {
   struct bp_location *loc;
@@ -15157,7 +14662,7 @@ breakpoint_has_location_inserted_here (s
    PC.  */
 
 int
-single_step_breakpoint_inserted_here_p (struct address_space *aspace,
+single_step_breakpoint_inserted_here_p (const address_space *aspace,
 					CORE_ADDR pc)
 {
   struct breakpoint *bpt;
@@ -15182,7 +14687,7 @@ set_tracepoint_count (int num)
 }
 
 static void
-trace_command (char *arg, int from_tty)
+trace_command (const char *arg, int from_tty)
 {
   struct breakpoint_ops *ops;
 
@@ -15208,7 +14713,7 @@ trace_command (char *arg, int from_tty)
 }
 
 static void
-ftrace_command (char *arg, int from_tty)
+ftrace_command (const char *arg, int from_tty)
 {
   event_location_up location = string_to_event_location (&arg,
 							 current_language);
@@ -15228,18 +14733,17 @@ ftrace_command (char *arg, int from_tty)
 /* strace command implementation.  Creates a static tracepoint.  */
 
 static void
-strace_command (char *arg, int from_tty)
+strace_command (const char *arg, int from_tty)
 {
   struct breakpoint_ops *ops;
   event_location_up location;
-  struct cleanup *back_to;
 
   /* Decide if we are dealing with a static tracepoint marker (`-m'),
      or with a normal static tracepoint.  */
   if (arg && startswith (arg, "-m") && isspace (arg[2]))
     {
       ops = &strace_marker_breakpoint_ops;
-      location = new_linespec_location (&arg);
+      location = new_linespec_location (&arg, symbol_name_match_type::FULL);
     }
   else
     {
@@ -15287,7 +14791,8 @@ read_uploaded_action (void)
 struct tracepoint *
 create_tracepoint_from_upload (struct uploaded_tp *utp)
 {
-  char *addr_str, small_buf[100];
+  const char *addr_str;
+  char small_buf[100];
   struct tracepoint *tp;
 
   if (utp->at_string)
@@ -15335,7 +14840,7 @@ create_tracepoint_from_upload (struct up
   if (utp->pass > 0)
     {
       xsnprintf (small_buf, sizeof (small_buf), "%d %d", utp->pass,
-		 tp->base.number);
+		 tp->number);
 
       trace_pass_command (small_buf, 0);
     }
@@ -15353,7 +14858,7 @@ create_tracepoint_from_upload (struct up
 
       cmd_list = read_command_lines_1 (read_uploaded_action, 1, NULL, NULL);
 
-      breakpoint_set_commands (&tp->base, std::move (cmd_list));
+      breakpoint_set_commands (tp, std::move (cmd_list));
     }
   else if (!VEC_empty (char_ptr, utp->actions)
 	   || !VEC_empty (char_ptr, utp->step_actions))
@@ -15362,7 +14867,7 @@ create_tracepoint_from_upload (struct up
 	     utp->number);
 
   /* Copy any status information that might be available.  */
-  tp->base.hit_count = utp->hit_count;
+  tp->hit_count = utp->hit_count;
   tp->traceframe_usage = utp->traceframe_usage;
 
   return tp;
@@ -15372,7 +14877,7 @@ create_tracepoint_from_upload (struct up
    omitted.  */
 
 static void
-tracepoints_info (char *args, int from_tty)
+info_tracepoints_command (const char *args, int from_tty)
 {
   struct ui_out *uiout = current_uiout;
   int num_printed;
@@ -15393,7 +14898,7 @@ tracepoints_info (char *args, int from_t
 /* The 'enable trace' command enables tracepoints.
    Not supported by all targets.  */
 static void
-enable_trace_command (char *args, int from_tty)
+enable_trace_command (const char *args, int from_tty)
 {
   enable_command (args, from_tty);
 }
@@ -15401,14 +14906,14 @@ enable_trace_command (char *args, int fr
 /* The 'disable trace' command disables tracepoints.
    Not supported by all targets.  */
 static void
-disable_trace_command (char *args, int from_tty)
+disable_trace_command (const char *args, int from_tty)
 {
   disable_command (args, from_tty);
 }
 
 /* Remove a tracepoint (or all if no argument).  */
 static void
-delete_trace_command (char *arg, int from_tty)
+delete_trace_command (const char *arg, int from_tty)
 {
   struct breakpoint *b, *b_tmp;
 
@@ -15439,7 +14944,11 @@ delete_trace_command (char *arg, int fro
 	}
     }
   else
-    map_breakpoint_numbers (arg, do_map_delete_breakpoint, NULL);
+    map_breakpoint_numbers
+      (arg, [&] (breakpoint *b)
+       {
+	 iterate_over_related_breakpoints (b, delete_breakpoint);
+       });
 }
 
 /* Helper function for trace_pass_command.  */
@@ -15448,10 +14957,10 @@ static void
 trace_pass_set_count (struct tracepoint *tp, int count, int from_tty)
 {
   tp->pass_count = count;
-  observer_notify_breakpoint_modified (&tp->base);
+  observer_notify_breakpoint_modified (tp);
   if (from_tty)
     printf_filtered (_("Setting tracepoint %d's passcount to %d\n"),
-		     tp->base.number, count);
+		     tp->number, count);
 }
 
 /* Set passcount for tracepoint.
@@ -15461,16 +14970,16 @@ trace_pass_set_count (struct tracepoint 
    Also accepts special argument "all".  */
 
 static void
-trace_pass_command (char *args, int from_tty)
+trace_pass_command (const char *args, int from_tty)
 {
   struct tracepoint *t1;
-  unsigned int count;
+  ULONGEST count;
 
   if (args == 0 || *args == 0)
     error (_("passcount command requires an "
 	     "argument (count + optional TP num)"));
 
-  count = strtoul (args, &args, 10);	/* Count comes first, then TP num.  */
+  count = strtoulst (args, &args, 10);	/* Count comes first, then TP num.  */
 
   args = skip_spaces (args);
   if (*args && strncasecmp (args, "all", 3) == 0)
@@ -15543,12 +15052,12 @@ get_tracepoint_by_number_on_target (int 
    (tracepoint_count) is returned.  */
 
 struct tracepoint *
-get_tracepoint_by_number (char **arg,
+get_tracepoint_by_number (const char **arg,
 			  number_or_range_parser *parser)
 {
   struct breakpoint *t;
   int tpnum;
-  char *instring = arg == NULL ? NULL : *arg;
+  const char *instring = arg == NULL ? NULL : *arg;
 
   if (parser != NULL)
     {
@@ -15598,12 +15107,11 @@ print_recreate_thread (struct breakpoint
    non-zero.  */
 
 static void
-save_breakpoints (char *filename, int from_tty,
+save_breakpoints (const char *filename, int from_tty,
 		  int (*filter) (const struct breakpoint *))
 {
   struct breakpoint *tp;
   int any = 0;
-  struct cleanup *cleanup;
   int extra_trace_bits = 0;
 
   if (filename == 0 || *filename == 0)
@@ -15637,14 +15145,13 @@ save_breakpoints (char *filename, int fr
       return;
     }
 
-  filename = tilde_expand (filename);
-  cleanup = make_cleanup (xfree, filename);
+  gdb::unique_xmalloc_ptr<char> expanded_filename (tilde_expand (filename));
 
   stdio_file fp;
 
-  if (!fp.open (filename, "w"))
+  if (!fp.open (expanded_filename.get (), "w"))
     error (_("Unable to open file '%s' for saving (%s)"),
-	   filename, safe_strerror (errno));
+	   expanded_filename.get (), safe_strerror (errno));
 
   if (extra_trace_bits)
     save_trace_state_variables (&fp);
@@ -15678,7 +15185,7 @@ save_breakpoints (char *filename, int fr
 	current_uiout->redirect (&fp);
 	TRY
 	  {
-	    print_command_lines (current_uiout, tp->commands->commands, 2);
+	    print_command_lines (current_uiout, tp->commands.get (), 2);
 	  }
 	CATCH (ex, RETURN_MASK_ALL)
 	  {
@@ -15712,14 +15219,13 @@ save_breakpoints (char *filename, int fr
     fp.printf ("set default-collect %s\n", default_collect);
 
   if (from_tty)
-    printf_filtered (_("Saved to file '%s'.\n"), filename);
-  do_cleanups (cleanup);
+    printf_filtered (_("Saved to file '%s'.\n"), expanded_filename.get ());
 }
 
 /* The `save breakpoints' command.  */
 
 static void
-save_breakpoints_command (char *args, int from_tty)
+save_breakpoints_command (const char *args, int from_tty)
 {
   save_breakpoints (args, from_tty, NULL);
 }
@@ -15727,7 +15233,7 @@ save_breakpoints_command (char *args, in
 /* The `save tracepoints' command.  */
 
 static void
-save_tracepoints_command (char *args, int from_tty)
+save_tracepoints_command (const char *args, int from_tty)
 {
   save_breakpoints (args, from_tty, is_tracepoint);
 }
@@ -15767,7 +15273,14 @@ Explicit locations are similar to linesp
 syntax to specify location parameters.\n\
 Example: To specify the start of the label named \"the_top\" in the\n\
 function \"fact\" in the file \"factorial.c\", use \"-source factorial.c\n\
--function fact -label the_top\".\n"
+-function fact -label the_top\".\n\
+\n\
+By default, a specified function is matched against the program's\n\
+functions in all scopes.  For C++, this means in all namespaces and\n\
+classes.  For Ada, this means in all packages.  E.g., in C++,\n\
+\"func()\" matches \"A::func()\", \"A::B::func()\", etc.  The\n\
+\"-qualified\" flag overrides this behavior, making GDB interpret the\n\
+specified name as a complete fully-qualified name instead.\n"
 
 /* This help string is used for the break, hbreak, tbreak and thbreak
    commands.  It is defined as a macro to prevent duplication.
@@ -15802,20 +15315,20 @@ static struct cmd_list_element *tcatch_c
 
 void
 add_catch_command (const char *name, const char *docstring,
-		   cmd_sfunc_ftype *sfunc,
+		   cmd_const_sfunc_ftype *sfunc,
 		   completer_ftype *completer,
 		   void *user_data_catch,
 		   void *user_data_tcatch)
 {
   struct cmd_list_element *command;
 
-  command = add_cmd (name, class_breakpoint, NULL, docstring,
+  command = add_cmd (name, class_breakpoint, docstring,
 		     &catch_cmdlist);
   set_cmd_sfunc (command, sfunc);
   set_cmd_context (command, user_data_catch);
   set_cmd_completer (command, completer);
 
-  command = add_cmd (name, class_breakpoint, NULL, docstring,
+  command = add_cmd (name, class_breakpoint, docstring,
 		     &tcatch_cmdlist);
   set_cmd_sfunc (command, sfunc);
   set_cmd_context (command, user_data_tcatch);
@@ -15823,7 +15336,7 @@ add_catch_command (const char *name, con
 }
 
 static void
-save_command (char *arg, int from_tty)
+save_command (const char *arg, int from_tty)
 {
   printf_unfiltered (_("\"save\" must be followed by "
 		       "the name of a save subcommand.\n"));
@@ -15863,7 +15376,7 @@ is_non_inline_function (struct breakpoin
    have been inlined.  */
 
 int
-pc_at_non_inline_function (struct address_space *aspace, CORE_ADDR pc,
+pc_at_non_inline_function (const address_space *aspace, CORE_ADDR pc,
 			   const struct target_waitstatus *ws)
 {
   struct breakpoint *b;
@@ -15957,11 +15470,6 @@ initialize_breakpoint_ops (void)
   ops->print_it = momentary_bkpt_print_it;
   ops->print_mention = momentary_bkpt_print_mention;
 
-  /* Momentary breakpoints for bp_longjmp and bp_exception.  */
-  ops = &longjmp_breakpoint_ops;
-  *ops = momentary_breakpoint_ops;
-  ops->dtor = longjmp_bkpt_dtor;
-
   /* Probe breakpoints.  */
   ops = &bkpt_probe_breakpoint_ops;
   *ops = bkpt_breakpoint_ops;
@@ -15973,7 +15481,6 @@ initialize_breakpoint_ops (void)
   /* Watchpoints.  */
   ops = &watchpoint_breakpoint_ops;
   *ops = base_breakpoint_ops;
-  ops->dtor = dtor_watchpoint;
   ops->re_set = re_set_watchpoint;
   ops->insert_location = insert_watchpoint;
   ops->remove_location = remove_watchpoint;
@@ -16048,7 +15555,6 @@ initialize_breakpoint_ops (void)
   /* Exec catchpoints.  */
   ops = &catch_exec_breakpoint_ops;
   *ops = base_breakpoint_ops;
-  ops->dtor = dtor_catch_exec;
   ops->insert_location = insert_catch_exec;
   ops->remove_location = remove_catch_exec;
   ops->breakpoint_hit = breakpoint_hit_catch_exec;
@@ -16060,7 +15566,6 @@ initialize_breakpoint_ops (void)
   /* Solib-related catchpoints.  */
   ops = &catch_solib_breakpoint_ops;
   *ops = base_breakpoint_ops;
-  ops->dtor = dtor_catch_solib;
   ops->insert_location = insert_catch_solib;
   ops->remove_location = remove_catch_solib;
   ops->breakpoint_hit = breakpoint_hit_catch_solib;
@@ -16097,7 +15602,7 @@ _initialize_breakpoint (void)
   observer_attach_memory_changed (invalidate_bp_value_on_memory_change);
 
   breakpoint_objfile_key
-    = register_objfile_data_with_cleanup (NULL, free_breakpoint_probes);
+    = register_objfile_data_with_cleanup (NULL, free_breakpoint_objfile_data);
 
   breakpoint_chain = 0;
   /* Don't bother to call set_breakpoint_count.  $bpnum isn't useful
@@ -16265,7 +15770,7 @@ Break in function/address or break at a 
 	       _("Break in function or address."), &stoplist);
       add_cmd ("at", class_breakpoint, stopat_command,
 	       _("Break at a line in the current file."), &stoplist);
-      add_com ("status", class_info, breakpoints_info, _("\
+      add_com ("status", class_info, info_breakpoints_command, _("\
 Status of user-settable breakpoints, or breakpoint number NUMBER.\n\
 The \"Type\" column indicates one of:\n\
 \tbreakpoint     - normal breakpoint\n\
@@ -16282,7 +15787,7 @@ Convenience variable \"$bpnum\" contains
 breakpoint set."));
     }
 
-  add_info ("breakpoints", breakpoints_info, _("\
+  add_info ("breakpoints", info_breakpoints_command, _("\
 Status of specified breakpoints (all user-settable breakpoints if no argument).\n\
 The \"Type\" column indicates one of:\n\
 \tbreakpoint     - normal breakpoint\n\
@@ -16388,7 +15893,7 @@ If -l or -location is given, this evalua
 the memory to which it refers."));
   set_cmd_completer (c, expression_completer);
 
-  add_info ("watchpoints", watchpoints_info, _("\
+  add_info ("watchpoints", info_watchpoints_command, _("\
 Status of specified watchpoints (all watchpoints if no argument)."));
 
   /* XXX: cagney/2005-02-23: This should be a boolean, and should
@@ -16450,7 +15955,7 @@ Do \"help breakpoints\" for info on othe
 Do \"help tracepoints\" for info on other tracepoint commands."));
   set_cmd_completer (c, location_completer);
 
-  add_info ("tracepoints", tracepoints_info, _("\
+  add_info ("tracepoints", info_tracepoints_command, _("\
 Status of specified tracepoints (all tracepoints if no argument).\n\
 Convenience variable \"$tpnum\" contains the number of the\n\
 last tracepoint set."));
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/breakpoint.h ./gdb/breakpoint.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/breakpoint.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/breakpoint.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Data structures associated with breakpoints in GDB.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,6 +28,8 @@
 #include "probe.h"
 #include "location.h"
 #include <vector>
+#include "common/array-view.h"
+#include "cli/cli-script.h"
 
 struct value;
 struct block;
@@ -310,20 +312,25 @@ struct bp_location_ops
   void (*dtor) (struct bp_location *self);
 };
 
-struct bp_location
+class bp_location
 {
+public:
+  bp_location () = default;
+
+  bp_location (const bp_location_ops *ops, breakpoint *owner);
+
   /* Chain pointer to the next breakpoint location for
      the same parent breakpoint.  */
-  struct bp_location *next;
+  bp_location *next = NULL;
 
   /* Methods associated with this location.  */
-  const struct bp_location_ops *ops;
+  const bp_location_ops *ops = NULL;
 
   /* The reference count.  */
-  int refc;
+  int refc = 0;
 
   /* Type of this breakpoint location.  */
-  enum bp_loc_type loc_type;
+  bp_loc_type loc_type {};
 
   /* Each breakpoint location must belong to exactly one higher-level
      breakpoint.  This pointer is NULL iff this bp_location is no
@@ -331,7 +338,7 @@ struct bp_location
      is deleted, its locations may still be found in the
      moribund_locations list, or if we had stopped for it, in
      bpstats.  */
-  struct breakpoint *owner;
+  breakpoint *owner = NULL;
 
   /* Conditional.  Break only if this expression's value is nonzero.
      Unlike string form of condition, which is associated with
@@ -360,32 +367,32 @@ struct bp_location
      duplicates of this location and thus we don't need to call
      force_breakpoint_reinsertion (...) for this location.  */
 
-  enum condition_status condition_changed;
+  condition_status condition_changed {};
 
   agent_expr_up cmd_bytecode;
 
   /* Signals that breakpoint conditions and/or commands need to be
      re-synched with the target.  This has no use other than
      target-side breakpoints.  */
-  char needs_update;
+  bool needs_update = false;
 
   /* This location's address is in an unloaded solib, and so this
      location should not be inserted.  It will be automatically
      enabled when that solib is loaded.  */
-  char shlib_disabled; 
+  bool shlib_disabled = false;
 
   /* Is this particular location enabled.  */
-  char enabled;
+  bool enabled = false;
   
   /* Nonzero if this breakpoint is now inserted.  */
-  char inserted;
+  bool inserted = false;
 
   /* Nonzero if this is a permanent breakpoint.  There is a breakpoint
      instruction hard-wired into the target's code.  Don't try to
      write another breakpoint instruction on top of it, or restore its
      value.  Step over it using the architecture's
      gdbarch_skip_permanent_breakpoint method.  */
-  char permanent;
+  bool permanent = false;
 
   /* Nonzero if this is not the first breakpoint in the list
      for the given address.  location of tracepoint can _never_
@@ -393,7 +400,7 @@ struct bp_location
      kinds of breakpoints, because two locations at the same
      address may have different actions, so both of these locations
      should be downloaded and so that `tfind N' always works.  */
-  char duplicate;
+  bool duplicate = false;
 
   /* If we someday support real thread-specific breakpoints, then
      the breakpoint location will need a thread identifier.  */
@@ -403,7 +410,7 @@ struct bp_location
 
   /* Architecture associated with this location's address.  May be
      different from the breakpoint architecture.  */
-  struct gdbarch *gdbarch;
+  struct gdbarch *gdbarch = NULL;
 
   /* The program space associated with this breakpoint location
      address.  Note that an address space may be represented in more
@@ -411,26 +418,26 @@ struct bp_location
      its own program space, but there will only be one address space
      for all of them), but we must not insert more than one location
      at the same address in the same address space.  */
-  struct program_space *pspace;
+  program_space *pspace = NULL;
 
   /* Note that zero is a perfectly valid code address on some platforms
      (for example, the mn10200 (OBSOLETE) and mn10300 simulators).  NULL
      is not a special value for this field.  Valid for all types except
      bp_loc_other.  */
-  CORE_ADDR address;
+  CORE_ADDR address = 0;
 
   /* For hardware watchpoints, the size of the memory region being
      watched.  For hardware ranged breakpoints, the size of the
      breakpoint range.  */
-  int length;
+  int length = 0;
 
   /* Type of hardware watchpoint.  */
-  enum target_hw_bp_type watchpoint_type;
+  target_hw_bp_type watchpoint_type {};
 
   /* For any breakpoint type with an address, this is the section
      associated with the address.  Used primarily for overlay
      debugging.  */
-  struct obj_section *section;
+  obj_section *section = NULL;
 
   /* Address at which breakpoint was requested, either by the user or
      by GDB for internal breakpoints.  This will usually be the same
@@ -438,24 +445,24 @@ struct bp_location
      ADJUST_BREAKPOINT_ADDRESS has computed a different address at
      which to place the breakpoint in order to comply with a
      processor's architectual constraints.  */
-  CORE_ADDR requested_address;
+  CORE_ADDR requested_address = 0;
 
   /* An additional address assigned with this location.  This is currently
      only used by STT_GNU_IFUNC resolver breakpoints to hold the address
      of the resolver function.  */
-  CORE_ADDR related_address;
+  CORE_ADDR related_address = 0;
 
   /* If the location comes from a probe point, this is the probe associated
      with it.  */
-  struct bound_probe probe;
+  bound_probe probe {};
 
-  char *function_name;
+  char *function_name = NULL;
 
   /* Details of the placed breakpoint, when inserted.  */
-  struct bp_target_info target_info;
+  bp_target_info target_info {};
 
   /* Similarly, for the breakpoint at an overlay's LMA, if necessary.  */
-  struct bp_target_info overlay_target_info;
+  bp_target_info overlay_target_info {};
 
   /* In a non-stop mode, it's possible that we delete a breakpoint,
      but as we do that, some still running thread hits that breakpoint.
@@ -466,19 +473,24 @@ struct bp_location
      breakpoint was deleted, we retire all locations of that breakpoint.
      This variable keeps a number of events still to go, when
      it becomes 0 this location is retired.  */
-  int events_till_retirement;
+  int events_till_retirement = 0;
 
   /* Line number which was used to place this location.
 
      Breakpoint placed into a comment keeps it's user specified line number
      despite ADDRESS resolves into a different line number.  */
 
-  int line_number;
+  int line_number = 0;
 
   /* Symtab which was used to place this location.  This is used
      to find the corresponding source file name.  */
 
-  struct symtab *symtab;
+  struct symtab *symtab = NULL;
+
+  /* The symbol found by the location parser, if any.  This may be used to
+     ascertain when an event location was set at a different location than
+     the one originally selected by parsing, e.g., inlined symbols.  */
+  const struct symbol *symbol = NULL;
 };
 
 /* The possible return values for print_bpstat, print_it_normal,
@@ -507,10 +519,6 @@ enum print_stop_action
 
 struct breakpoint_ops
 {
-  /* Destructor.  Releases everything from SELF (but not SELF
-     itself).  */
-  void (*dtor) (struct breakpoint *self);
-
   /* Allocate a location for this breakpoint.  */
   struct bp_location * (*allocate_location) (struct breakpoint *);
 
@@ -537,7 +545,7 @@ struct breakpoint_ops
      which the inferior stopped, and WS is the target_waitstatus
      describing the event.  */
   int (*breakpoint_hit) (const struct bp_location *bl,
-			 struct address_space *aspace,
+			 const address_space *aspace,
 			 CORE_ADDR bp_addr,
 			 const struct target_waitstatus *ws);
 
@@ -603,21 +611,22 @@ struct breakpoint_ops
      This function is called inside `create_breakpoint'.  */
   void (*create_breakpoints_sal) (struct gdbarch *,
 				  struct linespec_result *,
-				  char *, char *,
+				  gdb::unique_xmalloc_ptr<char>,
+				  gdb::unique_xmalloc_ptr<char>,
 				  enum bptype, enum bpdisp, int, int,
 				  int, const struct breakpoint_ops *,
 				  int, int, int, unsigned);
 
   /* Given the location (second parameter), this method decodes it and
-     provides the SAL locations related to it.  For ordinary
+     returns the SAL locations related to it.  For ordinary
      breakpoints, it calls `decode_line_full'.  If SEARCH_PSPACE is
      not NULL, symbol search is restricted to just that program space.
 
      This function is called inside `location_to_sals'.  */
-  void (*decode_location) (struct breakpoint *b,
-			   const struct event_location *location,
-			   struct program_space *search_pspace,
-			   struct symtabs_and_lines *sals);
+  std::vector<symtab_and_line> (*decode_location)
+    (struct breakpoint *b,
+     const struct event_location *location,
+     struct program_space *search_pspace);
 
   /* Return true if this breakpoint explains a signal.  See
      bpstat_explains_signal.  */
@@ -653,10 +662,9 @@ enum watchpoint_triggered
 typedef struct bp_location *bp_location_p;
 DEF_VEC_P(bp_location_p);
 
-/* A reference-counted struct command_line.  This lets multiple
-   breakpoints share a single command list.  This is an implementation
+/* A reference-counted struct command_line. This is an implementation
    detail to the breakpoints module.  */
-struct counted_command_line;
+typedef std::shared_ptr<command_line> counted_command_line;
 
 /* Some targets (e.g., embedded PowerPC) need two debug registers to set
    a watchpoint over a memory region.  If this flag is true, GDB will use
@@ -675,46 +683,48 @@ extern int target_exact_watchpoints;
 
 struct breakpoint
 {
+  virtual ~breakpoint ();
+
   /* Methods associated with this breakpoint.  */
-  const struct breakpoint_ops *ops;
+  const breakpoint_ops *ops = NULL;
 
-  struct breakpoint *next;
+  breakpoint *next = NULL;
   /* Type of breakpoint.  */
-  enum bptype type;
+  bptype type = bp_none;
   /* Zero means disabled; remember the info but don't break here.  */
-  enum enable_state enable_state;
+  enum enable_state enable_state = bp_enabled;
   /* What to do with this breakpoint after we hit it.  */
-  enum bpdisp disposition;
+  bpdisp disposition = disp_del;
   /* Number assigned to distinguish breakpoints.  */
-  int number;
+  int number = 0;
 
   /* Location(s) associated with this high-level breakpoint.  */
-  struct bp_location *loc;
+  bp_location *loc = NULL;
 
-  /* Non-zero means a silent breakpoint (don't print frame info if we
-     stop here).  */
-  unsigned char silent;
-  /* Non-zero means display ADDR_STRING to the user verbatim.  */
-  unsigned char display_canonical;
+  /* True means a silent breakpoint (don't print frame info if we stop
+     here).  */
+  bool silent = false;
+  /* True means display ADDR_STRING to the user verbatim.  */
+  bool display_canonical = false;
   /* Number of stops at this breakpoint that should be continued
      automatically before really stopping.  */
-  int ignore_count;
+  int ignore_count = 0;
 
   /* Number of stops at this breakpoint before it will be
      disabled.  */
-  int enable_count;
+  int enable_count = 0;
 
   /* Chain of command lines to execute when this breakpoint is
      hit.  */
-  struct counted_command_line *commands;
+  counted_command_line commands;
   /* Stack depth (address of frame).  If nonzero, break only if fp
      equals this.  */
-  struct frame_id frame_id;
+  struct frame_id frame_id = null_frame_id;
 
   /* The program space used to set the breakpoint.  This is only set
      for breakpoints which are specific to a program space; for
      non-thread-specific ordinary breakpoints this is NULL.  */
-  struct program_space *pspace;
+  program_space *pspace = NULL;
 
   /* Location we used to set the breakpoint.  */
   event_location_up location;
@@ -722,70 +732,67 @@ struct breakpoint
   /* The filter that should be passed to decode_line_full when
      re-setting this breakpoint.  This may be NULL, but otherwise is
      allocated with xmalloc.  */
-  char *filter;
+  char *filter = NULL;
 
   /* For a ranged breakpoint, the location we used to find the end of
      the range.  */
   event_location_up location_range_end;
 
   /* Architecture we used to set the breakpoint.  */
-  struct gdbarch *gdbarch;
+  struct gdbarch *gdbarch = NULL;
   /* Language we used to set the breakpoint.  */
-  enum language language;
+  enum language language = language_unknown;
   /* Input radix we used to set the breakpoint.  */
-  int input_radix;
+  int input_radix = 0;
   /* String form of the breakpoint condition (malloc'd), or NULL if
      there is no condition.  */
-  char *cond_string;
+  char *cond_string = NULL;
 
   /* String form of extra parameters, or NULL if there are none.
      Malloc'd.  */
-  char *extra_string;
+  char *extra_string = NULL;
 
   /* Holds the address of the related watchpoint_scope breakpoint when
      using watchpoints on local variables (might the concept of a
      related breakpoint be useful elsewhere, if not just call it the
      watchpoint_scope breakpoint or something like that.  FIXME).  */
-  struct breakpoint *related_breakpoint;
+  breakpoint *related_breakpoint = NULL;
 
   /* Thread number for thread-specific breakpoint, or -1 if don't
      care.  */
-  int thread;
+  int thread = -1;
 
   /* Ada task number for task-specific breakpoint, or 0 if don't
      care.  */
-  int task;
+  int task = 0;
 
   /* Count of the number of times this breakpoint was taken, dumped
      with the info, but not used for anything else.  Useful for seeing
      how many times you hit a break prior to the program aborting, so
      you can back up to just before the abort.  */
-  int hit_count;
+  int hit_count = 0;
 
   /* Is breakpoint's condition not yet parsed because we found no
      location initially so had no context to parse the condition
      in.  */
-  int condition_not_parsed;
+  int condition_not_parsed = 0;
 
   /* With a Python scripting enabled GDB, store a reference to the
      Python object that has been associated with this breakpoint.
      This is always NULL for a GDB that is not script enabled.  It can
      sometimes be NULL for enabled GDBs as not all breakpoint types
      are tracked by the scripting language API.  */
-  struct gdbpy_breakpoint_object *py_bp_object;
+  gdbpy_breakpoint_object *py_bp_object = NULL;
 
   /* Same as py_bp_object, but for Scheme.  */
-  struct gdbscm_breakpoint_object *scm_bp_object;
+  gdbscm_breakpoint_object *scm_bp_object = NULL;
 };
 
-/* An instance of this type is used to represent a watchpoint.  It
-   includes a "struct breakpoint" as a kind of base class; users
-   downcast to "struct breakpoint *" when needed.  */
+/* An instance of this type is used to represent a watchpoint.  */
 
-struct watchpoint
+struct watchpoint : public breakpoint
 {
-  /* The base class.  */
-  struct breakpoint base;
+  ~watchpoint () override;
 
   /* String form of exp to use for displaying to the user (malloc'd),
      or NULL if none.  */
@@ -862,14 +869,10 @@ extern int is_breakpoint (const struct b
 extern int is_watchpoint (const struct breakpoint *bpt);
 
 /* An instance of this type is used to represent all kinds of
-   tracepoints.  It includes a "struct breakpoint" as a kind of base
-   class; users downcast to "struct breakpoint *" when needed.  */
+   tracepoints.  */
 
-struct tracepoint
+struct tracepoint : public breakpoint
 {
-  /* The base class.  */
-  struct breakpoint base;
-
   /* Number of times this tracepoint should single-step and collect
      additional data.  */
   long step_count;
@@ -914,7 +917,7 @@ extern void bpstat_clear (bpstat *);
    is part of the bpstat is copied as well.  */
 extern bpstat bpstat_copy (bpstat);
 
-extern bpstat bpstat_stop_status (struct address_space *aspace,
+extern bpstat bpstat_stop_status (const address_space *aspace,
 				  CORE_ADDR pc, ptid_t ptid,
 				  const struct target_waitstatus *ws);
 
@@ -1083,6 +1086,13 @@ enum bp_print_how
 
 struct bpstats
   {
+    bpstats ();
+    bpstats (struct bp_location *bl, bpstat **bs_link_pointer);
+    ~bpstats ();
+
+    bpstats (const bpstats &);
+    bpstats &operator= (const bpstats &) = delete;
+
     /* Linked list because there can be more than one breakpoint at
        the same place, and a bpstat reflects the fact that all have
        been hit.  */
@@ -1112,7 +1122,7 @@ struct bpstats
     struct breakpoint *breakpoint_at;
 
     /* The associated command list.  */
-    struct counted_command_line *commands;
+    counted_command_line commands;
 
     /* Old value associated with a watchpoint.  */
     struct value *old_val;
@@ -1153,41 +1163,39 @@ enum breakpoint_here
 
 extern int program_breakpoint_here_p (struct gdbarch *gdbarch, CORE_ADDR address);
 
-extern enum breakpoint_here breakpoint_here_p (struct address_space *, 
+extern enum breakpoint_here breakpoint_here_p (const address_space *,
 					       CORE_ADDR);
 
 /* Return true if an enabled breakpoint exists in the range defined by
    ADDR and LEN, in ASPACE.  */
-extern int breakpoint_in_range_p (struct address_space *aspace,
+extern int breakpoint_in_range_p (const address_space *aspace,
 				  CORE_ADDR addr, ULONGEST len);
 
-extern int moribund_breakpoint_here_p (struct address_space *, CORE_ADDR);
-
-extern int breakpoint_inserted_here_p (struct address_space *, CORE_ADDR);
+extern int moribund_breakpoint_here_p (const address_space *, CORE_ADDR);
 
-extern int regular_breakpoint_inserted_here_p (struct address_space *, 
-					       CORE_ADDR);
+extern int breakpoint_inserted_here_p (const address_space *,
+				       CORE_ADDR);
 
-extern int software_breakpoint_inserted_here_p (struct address_space *, 
+extern int software_breakpoint_inserted_here_p (const address_space *,
 						CORE_ADDR);
 
 /* Return non-zero iff there is a hardware breakpoint inserted at
    PC.  */
-extern int hardware_breakpoint_inserted_here_p (struct address_space *,
+extern int hardware_breakpoint_inserted_here_p (const address_space *,
 						CORE_ADDR);
 
 /* Check whether any location of BP is inserted at PC.  */
 
 extern int breakpoint_has_location_inserted_here (struct breakpoint *bp,
-						  struct address_space *aspace,
+						  const address_space *aspace,
 						  CORE_ADDR pc);
 
-extern int single_step_breakpoint_inserted_here_p (struct address_space *,
+extern int single_step_breakpoint_inserted_here_p (const address_space *,
 						   CORE_ADDR);
 
 /* Returns true if there's a hardware watchpoint or access watchpoint
    inserted in the range defined by ADDR and LEN.  */
-extern int hardware_watchpoint_inserted_in_range (struct address_space *,
+extern int hardware_watchpoint_inserted_in_range (const address_space *,
 						  CORE_ADDR addr,
 						  ULONGEST len);
 
@@ -1196,32 +1204,41 @@ extern int hardware_watchpoint_inserted_
    if ASPACE1 matches ASPACE2.  On targets that have global
    breakpoints, the address space doesn't really matter.  */
 
-extern int breakpoint_address_match (struct address_space *aspace1,
+extern int breakpoint_address_match (const address_space *aspace1,
 				     CORE_ADDR addr1,
-				     struct address_space *aspace2,
+				     const address_space *aspace2,
 				     CORE_ADDR addr2);
 
-extern void until_break_command (char *, int, int);
+extern void until_break_command (const char *, int, int);
 
 /* Initialize a struct bp_location.  */
 
-extern void init_bp_location (struct bp_location *loc,
-			      const struct bp_location_ops *ops,
-			      struct breakpoint *owner);
-
-extern void update_breakpoint_locations (struct breakpoint *b,
-					 struct program_space *filter_pspace,
-					 struct symtabs_and_lines sals,
-					 struct symtabs_and_lines sals_end);
+extern void update_breakpoint_locations
+  (struct breakpoint *b,
+   struct program_space *filter_pspace,
+   gdb::array_view<const symtab_and_line> sals,
+   gdb::array_view<const symtab_and_line> sals_end);
 
 extern void breakpoint_re_set (void);
 
 extern void breakpoint_re_set_thread (struct breakpoint *);
 
-extern struct breakpoint *set_momentary_breakpoint
+extern void delete_breakpoint (struct breakpoint *);
+
+struct breakpoint_deleter
+{
+  void operator() (struct breakpoint *b) const
+  {
+    delete_breakpoint (b);
+  }
+};
+
+typedef std::unique_ptr<struct breakpoint, breakpoint_deleter> breakpoint_up;
+
+extern breakpoint_up set_momentary_breakpoint
   (struct gdbarch *, struct symtab_and_line, struct frame_id, enum bptype);
 
-extern struct breakpoint *set_momentary_breakpoint_at_pc
+extern breakpoint_up set_momentary_breakpoint_at_pc
   (struct gdbarch *, CORE_ADDR pc, enum bptype type);
 
 extern struct breakpoint *clone_momentary_breakpoint (struct breakpoint *bpkt);
@@ -1230,10 +1247,6 @@ extern void set_ignore_count (int, int, 
 
 extern void breakpoint_init_inferior (enum inf_context);
 
-extern struct cleanup *make_cleanup_delete_breakpoint (struct breakpoint *);
-
-extern void delete_breakpoint (struct breakpoint *);
-
 extern void breakpoint_auto_delete (bpstat);
 
 typedef void (*walk_bp_location_callback) (struct bp_location *, void *);
@@ -1248,15 +1261,15 @@ extern struct command_line *breakpoint_c
    NOT be deallocated after use.  */
 const char *bpdisp_text (enum bpdisp disp);
 
-extern void break_command (char *, int);
+extern void break_command (const char *, int);
 
-extern void hbreak_command_wrapper (char *, int);
-extern void thbreak_command_wrapper (char *, int);
-extern void rbreak_command_wrapper (char *, int);
-extern void watch_command_wrapper (char *, int, int);
-extern void awatch_command_wrapper (char *, int, int);
-extern void rwatch_command_wrapper (char *, int, int);
-extern void tbreak_command (char *, int);
+extern void hbreak_command_wrapper (const char *, int);
+extern void thbreak_command_wrapper (const char *, int);
+extern void rbreak_command_wrapper (const char *, int);
+extern void watch_command_wrapper (const char *, int, int);
+extern void awatch_command_wrapper (const char *, int, int);
+extern void rwatch_command_wrapper (const char *, int, int);
+extern void tbreak_command (const char *, int);
 
 extern struct breakpoint_ops base_breakpoint_ops;
 extern struct breakpoint_ops bkpt_breakpoint_ops;
@@ -1275,7 +1288,7 @@ extern void initialize_breakpoint_ops (v
 
 extern void
   add_catch_command (const char *name, const char *docstring,
-		     cmd_sfunc_ftype *sfunc,
+		     cmd_const_sfunc_ftype *sfunc,
 		     completer_ftype *completer,
 		     void *user_data_catch,
 		     void *user_data_tcatch);
@@ -1286,7 +1299,7 @@ extern void
   init_ada_exception_breakpoint (struct breakpoint *b,
 				 struct gdbarch *gdbarch,
 				 struct symtab_and_line sal,
-				 char *addr_string,
+				 const char *addr_string,
 				 const struct breakpoint_ops *ops,
 				 int tempflag,
 				 int enabled,
@@ -1303,7 +1316,7 @@ extern void init_catchpoint (struct brea
    the internal breakpoint count.  If UPDATE_GLL is non-zero,
    update_global_location_list will be called.  */
 
-extern void install_breakpoint (int internal, struct breakpoint *b,
+extern void install_breakpoint (int internal, std::unique_ptr<breakpoint> &&b,
 				int update_gll);
 
 /* Flags that can be passed down to create_breakpoint, etc., to affect
@@ -1337,8 +1350,8 @@ enum breakpoint_create_flags
 
 extern int create_breakpoint (struct gdbarch *gdbarch,
 			      const struct event_location *location,
-			      char *cond_string, int thread,
-			      char *extra_string,
+			      const char *cond_string, int thread,
+			      const char *extra_string,
 			      int parse_extra,
 			      int tempflag, enum bptype wanted_type,
 			      int ignore_count,
@@ -1354,13 +1367,6 @@ extern int remove_breakpoints (void);
 
 extern int remove_breakpoints_pid (int pid);
 
-/* This function can be used to physically insert eventpoints from the
-   specified traced inferior process, without modifying the breakpoint
-   package's state.  This can be useful for those targets which
-   support following the processes of a fork() or vfork() system call,
-   when both of the resulting two processes are to be followed.  */
-extern int reattach_breakpoints (int);
-
 /* This function can be used to update the breakpoint package's state
    after an exec() system call has been executed.
 
@@ -1519,16 +1525,12 @@ extern int is_catchpoint (struct breakpo
 extern void add_solib_catchpoint (const char *arg, int is_load, int is_temp,
                                   int enabled);
 
-/* Enable breakpoints and delete when hit.  Called with ARG == NULL
-   deletes all breakpoints.  */
-extern void delete_command (char *arg, int from_tty);
-
 /* Create and insert a new software single step breakpoint for the
    current thread.  May be called multiple times; each time will add a
    new location to the set of potential addresses the next instruction
    is at.  */
 extern void insert_single_step_breakpoint (struct gdbarch *,
-					   struct address_space *, 
+					   const address_space *,
 					   CORE_ADDR);
 
 /* Insert all software single step breakpoints for the current frame.
@@ -1589,7 +1591,7 @@ extern struct tracepoint *get_tracepoint
 
 /* Find a tracepoint by parsing a number in the supplied string.  */
 extern struct tracepoint *
-  get_tracepoint_by_number (char **arg,
+  get_tracepoint_by_number (const char **arg,
 			    number_or_range_parser *parser);
 
 /* Return a vector of all tracepoints currently defined.  The vector
@@ -1607,10 +1609,18 @@ extern VEC(breakpoint_p) *static_tracepo
    that each command is suitable for tracepoint command list.  */
 extern void check_tracepoint_command (char *line, void *closure);
 
-/* Call at the start and end of an "rbreak" command to register
-   breakpoint numbers for a later "commands" command.  */
-extern void start_rbreak_breakpoints (void);
-extern void end_rbreak_breakpoints (void);
+/* Create an instance of this to start registering breakpoint numbers
+   for a later "commands" command.  */
+
+class scoped_rbreak_breakpoints
+{
+public:
+
+  scoped_rbreak_breakpoints ();
+  ~scoped_rbreak_breakpoints ();
+
+  DISABLE_COPY_AND_ASSIGN (scoped_rbreak_breakpoints);
+};
 
 /* Breakpoint iterator function.
 
@@ -1626,7 +1636,7 @@ extern struct breakpoint *iterate_over_b
 /* Nonzero if the specified PC cannot be a location where functions
    have been inlined.  */
 
-extern int pc_at_non_inline_function (struct address_space *aspace,
+extern int pc_at_non_inline_function (const address_space *aspace,
 				      CORE_ADDR pc,
 				      const struct target_waitstatus *ws);
 
@@ -1646,4 +1656,7 @@ extern const char *ep_parse_optional_if_
    UIOUT iff debugging multiple threads.  */
 extern void maybe_print_thread_hit_breakpoint (struct ui_out *uiout);
 
+/* Print the specified breakpoint.  */
+extern void print_breakpoint (breakpoint *bp);
+
 #endif /* !defined (BREAKPOINT_H) */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bsd-kvm.c ./gdb/bsd-kvm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bsd-kvm.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/bsd-kvm.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* BSD Kernel Data Access Library (libkvm) interface.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -17,6 +17,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/>.  */
 
+#define _KMEMUSER
 #include "defs.h"
 #include "cli/cli-cmds.h"
 #include "command.h"
@@ -36,7 +37,9 @@
 #include "readline/readline.h"
 #include <sys/param.h>
 #include <sys/proc.h>
+#ifdef HAVE_SYS_USER_H
 #include <sys/user.h>
+#endif
 
 #include "bsd-kvm.h"
 
@@ -268,7 +271,7 @@ bsd_kvm_fetch_registers (struct target_o
 struct cmd_list_element *bsd_kvm_cmdlist;
 
 static void
-bsd_kvm_cmd (char *arg, int fromtty)
+bsd_kvm_cmd (const char *arg, int fromtty)
 {
   /* ??? Should this become an alias for "target kvm"?  */
 }
@@ -276,7 +279,7 @@ bsd_kvm_cmd (char *arg, int fromtty)
 #ifndef HAVE_STRUCT_THREAD_TD_PCB
 
 static void
-bsd_kvm_proc_cmd (char *arg, int fromtty)
+bsd_kvm_proc_cmd (const char *arg, int fromtty)
 {
   CORE_ADDR addr;
 
@@ -305,7 +308,7 @@ bsd_kvm_proc_cmd (char *arg, int fromtty
 #endif
 
 static void
-bsd_kvm_pcb_cmd (char *arg, int fromtty)
+bsd_kvm_pcb_cmd (const char *arg, int fromtty)
 {
   if (arg == NULL)
     /* i18n: PCB == "Process Control Block".  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bsd-kvm.h ./gdb/bsd-kvm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bsd-kvm.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/bsd-kvm.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* BSD Kernel Data Access Library (libkvm) interface.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bsd-uthread.c ./gdb/bsd-uthread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bsd-uthread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/bsd-uthread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* BSD user-level threads support.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -287,14 +287,14 @@ static void
 bsd_uthread_fetch_registers (struct target_ops *ops,
 			     struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct bsd_uthread_ops *uthread_ops
     = (struct bsd_uthread_ops *) gdbarch_data (gdbarch, bsd_uthread_data);
   ptid_t ptid = regcache_get_ptid (regcache);
   CORE_ADDR addr = ptid_get_tid (ptid);
   struct target_ops *beneath = find_target_beneath (ops);
   CORE_ADDR active_addr;
-  struct cleanup *cleanup = save_inferior_ptid ();
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
 
   /* We are doing operations (e.g. reading memory) that rely on
      inferior_ptid.  */
@@ -315,22 +315,20 @@ bsd_uthread_fetch_registers (struct targ
       uthread_ops->supply_uthread (regcache, regnum,
 				   addr + bsd_uthread_thread_ctx_offset);
     }
-
-  do_cleanups (cleanup);
 }
 
 static void
 bsd_uthread_store_registers (struct target_ops *ops,
 			     struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct bsd_uthread_ops *uthread_ops
     = (struct bsd_uthread_ops *) gdbarch_data (gdbarch, bsd_uthread_data);
   struct target_ops *beneath = find_target_beneath (ops);
   ptid_t ptid = regcache_get_ptid (regcache);
   CORE_ADDR addr = ptid_get_tid (ptid);
   CORE_ADDR active_addr;
-  struct cleanup *cleanup = save_inferior_ptid ();
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
 
   /* We are doing operations (e.g. reading memory) that rely on
      inferior_ptid.  */
@@ -349,8 +347,6 @@ bsd_uthread_store_registers (struct targ
          request to the layer beneath.  */
       beneath->to_store_registers (beneath, regcache, regnum);
     }
-
-  do_cleanups (cleanup);
 }
 
 static ptid_t
@@ -551,9 +547,6 @@ bsd_uthread_target (void)
   return t;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_bsd_uthread;
-
 void
 _initialize_bsd_uthread (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bsd-uthread.h ./gdb/bsd-uthread.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/bsd-uthread.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/bsd-uthread.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* BSD user-level threads support.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/btrace.c ./gdb/btrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/btrace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/btrace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Branch trace support for GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
@@ -49,10 +49,6 @@ static struct cmd_list_element *maint_bt
 /* Control whether to skip PAD packets when computing the packet history.  */
 static int maint_btrace_pt_skip_pad = 1;
 
-/* A vector of function segments.  */
-typedef struct btrace_function * bfun_s;
-DEF_VEC_P (bfun_s);
-
 static void btrace_add_pc (struct thread_info *tp);
 
 /* Print a record debug message.  Use do ... while (0) to avoid ambiguities
@@ -135,7 +131,7 @@ ftrace_debug (const struct btrace_functi
   level = bfun->level;
 
   ibegin = bfun->insn_offset;
-  iend = ibegin + VEC_length (btrace_insn_s, bfun->insn);
+  iend = ibegin + bfun->insn.size ();
 
   DEBUG_FTRACE ("%s: fun = %s, file = %s, level = %d, insn = [%u; %u)",
 		prefix, fun, file, level, ibegin, iend);
@@ -153,7 +149,32 @@ ftrace_call_num_insn (const struct btrac
   if (bfun->errcode != 0)
     return 1;
 
-  return VEC_length (btrace_insn_s, bfun->insn);
+  return bfun->insn.size ();
+}
+
+/* Return the function segment with the given NUMBER or NULL if no such segment
+   exists.  BTINFO is the branch trace information for the current thread.  */
+
+static struct btrace_function *
+ftrace_find_call_by_number (struct btrace_thread_info *btinfo,
+			    unsigned int number)
+{
+  if (number == 0 || number > btinfo->functions.size ())
+    return NULL;
+
+  return &btinfo->functions[number - 1];
+}
+
+/* A const version of the function above.  */
+
+static const struct btrace_function *
+ftrace_find_call_by_number (const struct btrace_thread_info *btinfo,
+			    unsigned int number)
+{
+  if (number == 0 || number > btinfo->functions.size ())
+    return NULL;
+
+  return &btinfo->functions[number - 1];
 }
 
 /* Return non-zero if BFUN does not match MFUN and FUN,
@@ -202,40 +223,37 @@ ftrace_function_switched (const struct b
   return 0;
 }
 
-/* Allocate and initialize a new branch trace function segment.
-   PREV is the chronologically preceding function segment.
-   MFUN and FUN are the symbol information we have for this function.  */
+/* Allocate and initialize a new branch trace function segment at the end of
+   the trace.
+   BTINFO is the branch trace information for the current thread.
+   MFUN and FUN are the symbol information we have for this function.
+   This invalidates all struct btrace_function pointer currently held.  */
 
 static struct btrace_function *
-ftrace_new_function (struct btrace_function *prev,
+ftrace_new_function (struct btrace_thread_info *btinfo,
 		     struct minimal_symbol *mfun,
 		     struct symbol *fun)
 {
-  struct btrace_function *bfun;
-
-  bfun = XCNEW (struct btrace_function);
-
-  bfun->msym = mfun;
-  bfun->sym = fun;
-  bfun->flow.prev = prev;
+  int level;
+  unsigned int number, insn_offset;
 
-  if (prev == NULL)
+  if (btinfo->functions.empty ())
     {
-      /* Start counting at one.  */
-      bfun->number = 1;
-      bfun->insn_offset = 1;
+      /* Start counting NUMBER and INSN_OFFSET at one.  */
+      level = 0;
+      number = 1;
+      insn_offset = 1;
     }
   else
     {
-      gdb_assert (prev->flow.next == NULL);
-      prev->flow.next = bfun;
-
-      bfun->number = prev->number + 1;
-      bfun->insn_offset = prev->insn_offset + ftrace_call_num_insn (prev);
-      bfun->level = prev->level;
+      const struct btrace_function *prev = &btinfo->functions.back ();
+      level = prev->level;
+      number = prev->number + 1;
+      insn_offset = prev->insn_offset + ftrace_call_num_insn (prev);
     }
 
-  return bfun;
+  btinfo->functions.emplace_back (mfun, fun, number, insn_offset, level);
+  return &btinfo->functions.back ();
 }
 
 /* Update the UP field of a function segment.  */
@@ -245,10 +263,10 @@ ftrace_update_caller (struct btrace_func
 		      struct btrace_function *caller,
 		      enum btrace_function_flag flags)
 {
-  if (bfun->up != NULL)
+  if (bfun->up != 0)
     ftrace_debug (bfun, "updating caller");
 
-  bfun->up = caller;
+  bfun->up = caller->number;
   bfun->flags = flags;
 
   ftrace_debug (bfun, "set caller");
@@ -258,35 +276,44 @@ ftrace_update_caller (struct btrace_func
 /* Fix up the caller for all segments of a function.  */
 
 static void
-ftrace_fixup_caller (struct btrace_function *bfun,
+ftrace_fixup_caller (struct btrace_thread_info *btinfo,
+		     struct btrace_function *bfun,
 		     struct btrace_function *caller,
 		     enum btrace_function_flag flags)
 {
-  struct btrace_function *prev, *next;
+  unsigned int prev, next;
 
+  prev = bfun->prev;
+  next = bfun->next;
   ftrace_update_caller (bfun, caller, flags);
 
   /* Update all function segments belonging to the same function.  */
-  for (prev = bfun->segment.prev; prev != NULL; prev = prev->segment.prev)
-    ftrace_update_caller (prev, caller, flags);
+  for (; prev != 0; prev = bfun->prev)
+    {
+      bfun = ftrace_find_call_by_number (btinfo, prev);
+      ftrace_update_caller (bfun, caller, flags);
+    }
 
-  for (next = bfun->segment.next; next != NULL; next = next->segment.next)
-    ftrace_update_caller (next, caller, flags);
+  for (; next != 0; next = bfun->next)
+    {
+      bfun = ftrace_find_call_by_number (btinfo, next);
+      ftrace_update_caller (bfun, caller, flags);
+    }
 }
 
-/* Add a new function segment for a call.
-   CALLER is the chronologically preceding function segment.
+/* Add a new function segment for a call at the end of the trace.
+   BTINFO is the branch trace information for the current thread.
    MFUN and FUN are the symbol information we have for this function.  */
 
 static struct btrace_function *
-ftrace_new_call (struct btrace_function *caller,
+ftrace_new_call (struct btrace_thread_info *btinfo,
 		 struct minimal_symbol *mfun,
 		 struct symbol *fun)
 {
-  struct btrace_function *bfun;
+  const unsigned int length = btinfo->functions.size ();
+  struct btrace_function *bfun = ftrace_new_function (btinfo, mfun, fun);
 
-  bfun = ftrace_new_function (caller, mfun, fun);
-  bfun->up = caller;
+  bfun->up = length;
   bfun->level += 1;
 
   ftrace_debug (bfun, "new call");
@@ -294,19 +321,19 @@ ftrace_new_call (struct btrace_function 
   return bfun;
 }
 
-/* Add a new function segment for a tail call.
-   CALLER is the chronologically preceding function segment.
+/* Add a new function segment for a tail call at the end of the trace.
+   BTINFO is the branch trace information for the current thread.
    MFUN and FUN are the symbol information we have for this function.  */
 
 static struct btrace_function *
-ftrace_new_tailcall (struct btrace_function *caller,
+ftrace_new_tailcall (struct btrace_thread_info *btinfo,
 		     struct minimal_symbol *mfun,
 		     struct symbol *fun)
 {
-  struct btrace_function *bfun;
+  const unsigned int length = btinfo->functions.size ();
+  struct btrace_function *bfun = ftrace_new_function (btinfo, mfun, fun);
 
-  bfun = ftrace_new_function (caller, mfun, fun);
-  bfun->up = caller;
+  bfun->up = length;
   bfun->level += 1;
   bfun->flags |= BFUN_UP_LINKS_TO_TAILCALL;
 
@@ -316,26 +343,30 @@ ftrace_new_tailcall (struct btrace_funct
 }
 
 /* Return the caller of BFUN or NULL if there is none.  This function skips
-   tail calls in the call chain.  */
+   tail calls in the call chain.  BTINFO is the branch trace information for
+   the current thread.  */
 static struct btrace_function *
-ftrace_get_caller (struct btrace_function *bfun)
+ftrace_get_caller (struct btrace_thread_info *btinfo,
+		   struct btrace_function *bfun)
 {
-  for (; bfun != NULL; bfun = bfun->up)
+  for (; bfun != NULL; bfun = ftrace_find_call_by_number (btinfo, bfun->up))
     if ((bfun->flags & BFUN_UP_LINKS_TO_TAILCALL) == 0)
-      return bfun->up;
+      return ftrace_find_call_by_number (btinfo, bfun->up);
 
   return NULL;
 }
 
 /* Find the innermost caller in the back trace of BFUN with MFUN/FUN
-   symbol information.  */
+   symbol information.  BTINFO is the branch trace information for the current
+   thread.  */
 
 static struct btrace_function *
-ftrace_find_caller (struct btrace_function *bfun,
+ftrace_find_caller (struct btrace_thread_info *btinfo,
+		    struct btrace_function *bfun,
 		    struct minimal_symbol *mfun,
 		    struct symbol *fun)
 {
-  for (; bfun != NULL; bfun = bfun->up)
+  for (; bfun != NULL; bfun = ftrace_find_call_by_number (btinfo, bfun->up))
     {
       /* Skip functions with incompatible symbol information.  */
       if (ftrace_function_switched (bfun, mfun, fun))
@@ -350,52 +381,55 @@ ftrace_find_caller (struct btrace_functi
 
 /* Find the innermost caller in the back trace of BFUN, skipping all
    function segments that do not end with a call instruction (e.g.
-   tail calls ending with a jump).  */
+   tail calls ending with a jump).  BTINFO is the branch trace information for
+   the current thread.  */
 
 static struct btrace_function *
-ftrace_find_call (struct btrace_function *bfun)
+ftrace_find_call (struct btrace_thread_info *btinfo,
+		  struct btrace_function *bfun)
 {
-  for (; bfun != NULL; bfun = bfun->up)
+  for (; bfun != NULL; bfun = ftrace_find_call_by_number (btinfo, bfun->up))
     {
-      struct btrace_insn *last;
-
       /* Skip gaps.  */
       if (bfun->errcode != 0)
 	continue;
 
-      last = VEC_last (btrace_insn_s, bfun->insn);
+      btrace_insn &last = bfun->insn.back ();
 
-      if (last->iclass == BTRACE_INSN_CALL)
+      if (last.iclass == BTRACE_INSN_CALL)
 	break;
     }
 
   return bfun;
 }
 
-/* Add a continuation segment for a function into which we return.
-   PREV is the chronologically preceding function segment.
+/* Add a continuation segment for a function into which we return at the end of
+   the trace.
+   BTINFO is the branch trace information for the current thread.
    MFUN and FUN are the symbol information we have for this function.  */
 
 static struct btrace_function *
-ftrace_new_return (struct btrace_function *prev,
+ftrace_new_return (struct btrace_thread_info *btinfo,
 		   struct minimal_symbol *mfun,
 		   struct symbol *fun)
 {
-  struct btrace_function *bfun, *caller;
+  struct btrace_function *prev, *bfun, *caller;
 
-  bfun = ftrace_new_function (prev, mfun, fun);
+  bfun = ftrace_new_function (btinfo, mfun, fun);
+  prev = ftrace_find_call_by_number (btinfo, bfun->number - 1);
 
   /* It is important to start at PREV's caller.  Otherwise, we might find
      PREV itself, if PREV is a recursive function.  */
-  caller = ftrace_find_caller (prev->up, mfun, fun);
+  caller = ftrace_find_call_by_number (btinfo, prev->up);
+  caller = ftrace_find_caller (btinfo, caller, mfun, fun);
   if (caller != NULL)
     {
       /* The caller of PREV is the preceding btrace function segment in this
 	 function instance.  */
-      gdb_assert (caller->segment.next == NULL);
+      gdb_assert (caller->next == 0);
 
-      caller->segment.next = bfun;
-      bfun->segment.prev = caller;
+      caller->next = bfun->number;
+      bfun->prev = caller->number;
 
       /* Maintain the function level.  */
       bfun->level = caller->level;
@@ -412,7 +446,8 @@ ftrace_new_return (struct btrace_functio
 	 wrong or that the call is simply not included in the trace.  */
 
       /* Let's search for some actual call.  */
-      caller = ftrace_find_call (prev->up);
+      caller = ftrace_find_call_by_number (btinfo, prev->up);
+      caller = ftrace_find_call (btinfo, caller);
       if (caller == NULL)
 	{
 	  /* There is no call in PREV's back trace.  We assume that the
@@ -420,13 +455,13 @@ ftrace_new_return (struct btrace_functio
 
 	  /* Let's find the topmost function and add a new caller for it.
 	     This should handle a series of initial tail calls.  */
-	  while (prev->up != NULL)
-	    prev = prev->up;
+	  while (prev->up != 0)
+	    prev = ftrace_find_call_by_number (btinfo, prev->up);
 
 	  bfun->level = prev->level - 1;
 
 	  /* Fix up the call stack for PREV.  */
-	  ftrace_fixup_caller (prev, bfun, BFUN_UP_LINKS_TO_RET);
+	  ftrace_fixup_caller (btinfo, prev, bfun, BFUN_UP_LINKS_TO_RET);
 
 	  ftrace_debug (bfun, "new return - no caller");
 	}
@@ -441,7 +476,7 @@ ftrace_new_return (struct btrace_functio
 	     on the same level as they are.
 	     This should handle things like schedule () correctly where we're
 	     switching contexts.  */
-	  prev->up = bfun;
+	  prev->up = bfun->number;
 	  prev->flags = BFUN_UP_LINKS_TO_RET;
 
 	  ftrace_debug (bfun, "new return - unknown caller");
@@ -451,20 +486,21 @@ ftrace_new_return (struct btrace_functio
   return bfun;
 }
 
-/* Add a new function segment for a function switch.
-   PREV is the chronologically preceding function segment.
+/* Add a new function segment for a function switch at the end of the trace.
+   BTINFO is the branch trace information for the current thread.
    MFUN and FUN are the symbol information we have for this function.  */
 
 static struct btrace_function *
-ftrace_new_switch (struct btrace_function *prev,
+ftrace_new_switch (struct btrace_thread_info *btinfo,
 		   struct minimal_symbol *mfun,
 		   struct symbol *fun)
 {
-  struct btrace_function *bfun;
+  struct btrace_function *prev, *bfun;
 
   /* This is an unexplained function switch.  We can't really be sure about the
      call stack, yet the best I can think of right now is to preserve it.  */
-  bfun = ftrace_new_function (prev, mfun, fun);
+  bfun = ftrace_new_function (btinfo, mfun, fun);
+  prev = ftrace_find_call_by_number (btinfo, bfun->number - 1);
   bfun->up = prev->up;
   bfun->flags = prev->flags;
 
@@ -473,40 +509,46 @@ ftrace_new_switch (struct btrace_functio
   return bfun;
 }
 
-/* Add a new function segment for a gap in the trace due to a decode error.
-   PREV is the chronologically preceding function segment.
+/* Add a new function segment for a gap in the trace due to a decode error at
+   the end of the trace.
+   BTINFO is the branch trace information for the current thread.
    ERRCODE is the format-specific error code.  */
 
 static struct btrace_function *
-ftrace_new_gap (struct btrace_function *prev, int errcode)
+ftrace_new_gap (struct btrace_thread_info *btinfo, int errcode,
+		std::vector<unsigned int> &gaps)
 {
   struct btrace_function *bfun;
 
-  /* We hijack prev if it was empty.  */
-  if (prev != NULL && prev->errcode == 0
-      && VEC_empty (btrace_insn_s, prev->insn))
-    bfun = prev;
+  if (btinfo->functions.empty ())
+    bfun = ftrace_new_function (btinfo, NULL, NULL);
   else
-    bfun = ftrace_new_function (prev, NULL, NULL);
+    {
+      /* We hijack the previous function segment if it was empty.  */
+      bfun = &btinfo->functions.back ();
+      if (bfun->errcode != 0 || !bfun->insn.empty ())
+	bfun = ftrace_new_function (btinfo, NULL, NULL);
+    }
 
   bfun->errcode = errcode;
+  gaps.push_back (bfun->number);
 
   ftrace_debug (bfun, "new gap");
 
   return bfun;
 }
 
-/* Update BFUN with respect to the instruction at PC.  This may create new
-   function segments.
+/* Update the current function segment at the end of the trace in BTINFO with
+   respect to the instruction at PC.  This may create new function segments.
    Return the chronologically latest function segment, never NULL.  */
 
 static struct btrace_function *
-ftrace_update_function (struct btrace_function *bfun, CORE_ADDR pc)
+ftrace_update_function (struct btrace_thread_info *btinfo, CORE_ADDR pc)
 {
   struct bound_minimal_symbol bmfun;
   struct minimal_symbol *mfun;
   struct symbol *fun;
-  struct btrace_insn *last;
+  struct btrace_function *bfun;
 
   /* Try to determine the function we're in.  We use both types of symbols
      to avoid surprises when we sometimes get a full symbol and sometimes
@@ -518,16 +560,21 @@ ftrace_update_function (struct btrace_fu
   if (fun == NULL && mfun == NULL)
     DEBUG_FTRACE ("no symbol at %s", core_addr_to_string_nz (pc));
 
-  /* If we didn't have a function or if we had a gap before, we create one.  */
-  if (bfun == NULL || bfun->errcode != 0)
-    return ftrace_new_function (bfun, mfun, fun);
+  /* If we didn't have a function, we create one.  */
+  if (btinfo->functions.empty ())
+    return ftrace_new_function (btinfo, mfun, fun);
+
+  /* If we had a gap before, we create a function.  */
+  bfun = &btinfo->functions.back ();
+  if (bfun->errcode != 0)
+    return ftrace_new_function (btinfo, mfun, fun);
 
   /* Check the last instruction, if we have one.
      We do this check first, since it allows us to fill in the call stack
      links in addition to the normal flow links.  */
-  last = NULL;
-  if (!VEC_empty (btrace_insn_s, bfun->insn))
-    last = VEC_last (btrace_insn_s, bfun->insn);
+  btrace_insn *last = NULL;
+  if (!bfun->insn.empty ())
+    last = &bfun->insn.back ();
 
   if (last != NULL)
     {
@@ -548,9 +595,9 @@ ftrace_update_function (struct btrace_fu
 	       different frame id's.  This will confuse stepping.  */
 	    fname = ftrace_print_function_name (bfun);
 	    if (strcmp (fname, "_dl_runtime_resolve") == 0)
-	      return ftrace_new_tailcall (bfun, mfun, fun);
+	      return ftrace_new_tailcall (btinfo, mfun, fun);
 
-	    return ftrace_new_return (bfun, mfun, fun);
+	    return ftrace_new_return (btinfo, mfun, fun);
 	  }
 
 	case BTRACE_INSN_CALL:
@@ -558,7 +605,7 @@ ftrace_update_function (struct btrace_fu
 	  if (last->pc + last->size == pc)
 	    break;
 
-	  return ftrace_new_call (bfun, mfun, fun);
+	  return ftrace_new_call (btinfo, mfun, fun);
 
 	case BTRACE_INSN_JUMP:
 	  {
@@ -568,13 +615,13 @@ ftrace_update_function (struct btrace_fu
 
 	    /* A jump to the start of a function is (typically) a tail call.  */
 	    if (start == pc)
-	      return ftrace_new_tailcall (bfun, mfun, fun);
+	      return ftrace_new_tailcall (btinfo, mfun, fun);
 
 	    /* If we can't determine the function for PC, we treat a jump at
 	       the end of the block as tail call if we're switching functions
 	       and as an intra-function branch if we don't.  */
 	    if (start == 0 && ftrace_function_switched (bfun, mfun, fun))
-	      return ftrace_new_tailcall (bfun, mfun, fun);
+	      return ftrace_new_tailcall (btinfo, mfun, fun);
 
 	    break;
 	  }
@@ -589,7 +636,7 @@ ftrace_update_function (struct btrace_fu
 		    ftrace_print_function_name (bfun),
 		    ftrace_print_filename (bfun));
 
-      return ftrace_new_switch (bfun, mfun, fun);
+      return ftrace_new_switch (btinfo, mfun, fun);
     }
 
   return bfun;
@@ -598,10 +645,9 @@ ftrace_update_function (struct btrace_fu
 /* Add the instruction at PC to BFUN's instructions.  */
 
 static void
-ftrace_update_insns (struct btrace_function *bfun,
-		     const struct btrace_insn *insn)
+ftrace_update_insns (struct btrace_function *bfun, const btrace_insn &insn)
 {
-  VEC_safe_push (btrace_insn_s, bfun->insn, insn);
+  bfun->insn.push_back (insn);
 
   if (record_debug > 1)
     ftrace_debug (bfun, "update insn");
@@ -634,10 +680,11 @@ ftrace_classify_insn (struct gdbarch *gd
 
 /* Try to match the back trace at LHS to the back trace at RHS.  Returns the
    number of matching function segments or zero if the back traces do not
-   match.  */
+   match.  BTINFO is the branch trace information for the current thread.  */
 
 static int
-ftrace_match_backtrace (struct btrace_function *lhs,
+ftrace_match_backtrace (struct btrace_thread_info *btinfo,
+			struct btrace_function *lhs,
 			struct btrace_function *rhs)
 {
   int matches;
@@ -647,17 +694,19 @@ ftrace_match_backtrace (struct btrace_fu
       if (ftrace_function_switched (lhs, rhs->msym, rhs->sym))
 	return 0;
 
-      lhs = ftrace_get_caller (lhs);
-      rhs = ftrace_get_caller (rhs);
+      lhs = ftrace_get_caller (btinfo, lhs);
+      rhs = ftrace_get_caller (btinfo, rhs);
     }
 
   return matches;
 }
 
-/* Add ADJUSTMENT to the level of BFUN and succeeding function segments.  */
+/* Add ADJUSTMENT to the level of BFUN and succeeding function segments.
+   BTINFO is the branch trace information for the current thread.  */
 
 static void
-ftrace_fixup_level (struct btrace_function *bfun, int adjustment)
+ftrace_fixup_level (struct btrace_thread_info *btinfo,
+		    struct btrace_function *bfun, int adjustment)
 {
   if (adjustment == 0)
     return;
@@ -665,8 +714,11 @@ ftrace_fixup_level (struct btrace_functi
   DEBUG_FTRACE ("fixup level (%+d)", adjustment);
   ftrace_debug (bfun, "..bfun");
 
-  for (; bfun != NULL; bfun = bfun->flow.next)
-    bfun->level += adjustment;
+  while (bfun != NULL)
+    {
+      bfun->level += adjustment;
+      bfun = ftrace_find_call_by_number (btinfo, bfun->number + 1);
+    }
 }
 
 /* Recompute the global level offset.  Traverse the function trace and compute
@@ -675,36 +727,36 @@ ftrace_fixup_level (struct btrace_functi
 static void
 ftrace_compute_global_level_offset (struct btrace_thread_info *btinfo)
 {
-  struct btrace_function *bfun, *end;
-  int level;
+  int level = INT_MAX;
 
   if (btinfo == NULL)
     return;
 
-  bfun = btinfo->begin;
-  if (bfun == NULL)
+  if (btinfo->functions.empty ())
     return;
 
+  unsigned int length = btinfo->functions.size() - 1;
+  for (unsigned int i = 0; i < length; ++i)
+    level = std::min (level, btinfo->functions[i].level);
+
   /* The last function segment contains the current instruction, which is not
      really part of the trace.  If it contains just this one instruction, we
-     stop when we reach it; otherwise, we let the below loop run to the end.  */
-  end = btinfo->end;
-  if (VEC_length (btrace_insn_s, end->insn) > 1)
-    end = NULL;
-
-  level = INT_MAX;
-  for (; bfun != end; bfun = bfun->flow.next)
-    level = std::min (level, bfun->level);
+     ignore the segment.  */
+  struct btrace_function *last = &btinfo->functions.back();
+  if (last->insn.size () != 1)
+    level = std::min (level, last->level);
 
   DEBUG_FTRACE ("setting global level offset: %d", -level);
   btinfo->level = -level;
 }
 
 /* Connect the function segments PREV and NEXT in a bottom-to-top walk as in
-   ftrace_connect_backtrace.  */
+   ftrace_connect_backtrace.  BTINFO is the branch trace information for the
+   current thread.  */
 
 static void
-ftrace_connect_bfun (struct btrace_function *prev,
+ftrace_connect_bfun (struct btrace_thread_info *btinfo,
+		     struct btrace_function *prev,
 		     struct btrace_function *next)
 {
   DEBUG_FTRACE ("connecting...");
@@ -712,30 +764,36 @@ ftrace_connect_bfun (struct btrace_funct
   ftrace_debug (next, "..next");
 
   /* The function segments are not yet connected.  */
-  gdb_assert (prev->segment.next == NULL);
-  gdb_assert (next->segment.prev == NULL);
+  gdb_assert (prev->next == 0);
+  gdb_assert (next->prev == 0);
 
-  prev->segment.next = next;
-  next->segment.prev = prev;
+  prev->next = next->number;
+  next->prev = prev->number;
 
   /* We may have moved NEXT to a different function level.  */
-  ftrace_fixup_level (next, prev->level - next->level);
+  ftrace_fixup_level (btinfo, next, prev->level - next->level);
 
   /* If we run out of back trace for one, let's use the other's.  */
-  if (prev->up == NULL)
+  if (prev->up == 0)
     {
-      if (next->up != NULL)
+      const btrace_function_flags flags = next->flags;
+
+      next = ftrace_find_call_by_number (btinfo, next->up);
+      if (next != NULL)
 	{
 	  DEBUG_FTRACE ("using next's callers");
-	  ftrace_fixup_caller (prev, next->up, next->flags);
+	  ftrace_fixup_caller (btinfo, prev, next, flags);
 	}
     }
-  else if (next->up == NULL)
+  else if (next->up == 0)
     {
-      if (prev->up != NULL)
+      const btrace_function_flags flags = prev->flags;
+
+      prev = ftrace_find_call_by_number (btinfo, prev->up);
+      if (prev != NULL)
 	{
 	  DEBUG_FTRACE ("using prev's callers");
-	  ftrace_fixup_caller (next, prev->up, prev->flags);
+	  ftrace_fixup_caller (btinfo, next, prev, flags);
 	}
     }
   else
@@ -753,26 +811,29 @@ ftrace_connect_bfun (struct btrace_funct
       if ((prev->flags & BFUN_UP_LINKS_TO_TAILCALL) != 0)
 	{
 	  struct btrace_function *caller;
-	  btrace_function_flags flags;
+	  btrace_function_flags next_flags, prev_flags;
 
 	  /* We checked NEXT->UP above so CALLER can't be NULL.  */
-	  caller = next->up;
-	  flags = next->flags;
+	  caller = ftrace_find_call_by_number (btinfo, next->up);
+	  next_flags = next->flags;
+	  prev_flags = prev->flags;
 
 	  DEBUG_FTRACE ("adding prev's tail calls to next");
 
-	  ftrace_fixup_caller (next, prev->up, prev->flags);
+	  prev = ftrace_find_call_by_number (btinfo, prev->up);
+	  ftrace_fixup_caller (btinfo, next, prev, prev_flags);
 
-	  for (prev = prev->up; prev != NULL; prev = prev->up)
+	  for (; prev != NULL; prev = ftrace_find_call_by_number (btinfo,
+								  prev->up))
 	    {
 	      /* At the end of PREV's back trace, continue with CALLER.  */
-	      if (prev->up == NULL)
+	      if (prev->up == 0)
 		{
 		  DEBUG_FTRACE ("fixing up link for tailcall chain");
 		  ftrace_debug (prev, "..top");
 		  ftrace_debug (caller, "..up");
 
-		  ftrace_fixup_caller (prev, caller, flags);
+		  ftrace_fixup_caller (btinfo, prev, caller, next_flags);
 
 		  /* If we skipped any tail calls, this may move CALLER to a
 		     different function level.
@@ -783,7 +844,8 @@ ftrace_connect_bfun (struct btrace_funct
 
 		     Otherwise we will fix up CALLER's level when we connect it
 		     to PREV's caller in the next iteration.  */
-		  ftrace_fixup_level (caller, prev->level - caller->level - 1);
+		  ftrace_fixup_level (btinfo, caller,
+				      prev->level - caller->level - 1);
 		  break;
 		}
 
@@ -800,10 +862,12 @@ ftrace_connect_bfun (struct btrace_funct
 
 /* Connect function segments on the same level in the back trace at LHS and RHS.
    The back traces at LHS and RHS are expected to match according to
-   ftrace_match_backtrace.  */
+   ftrace_match_backtrace.  BTINFO is the branch trace information for the
+   current thread.  */
 
 static void
-ftrace_connect_backtrace (struct btrace_function *lhs,
+ftrace_connect_backtrace (struct btrace_thread_info *btinfo,
+			  struct btrace_function *lhs,
 			  struct btrace_function *rhs)
 {
   while (lhs != NULL && rhs != NULL)
@@ -816,20 +880,22 @@ ftrace_connect_backtrace (struct btrace_
       prev = lhs;
       next = rhs;
 
-      lhs = ftrace_get_caller (lhs);
-      rhs = ftrace_get_caller (rhs);
+      lhs = ftrace_get_caller (btinfo, lhs);
+      rhs = ftrace_get_caller (btinfo, rhs);
 
-      ftrace_connect_bfun (prev, next);
+      ftrace_connect_bfun (btinfo, prev, next);
     }
 }
 
 /* Bridge the gap between two function segments left and right of a gap if their
-   respective back traces match in at least MIN_MATCHES functions.
+   respective back traces match in at least MIN_MATCHES functions.  BTINFO is
+   the branch trace information for the current thread.
 
    Returns non-zero if the gap could be bridged, zero otherwise.  */
 
 static int
-ftrace_bridge_gap (struct btrace_function *lhs, struct btrace_function *rhs,
+ftrace_bridge_gap (struct btrace_thread_info *btinfo,
+		   struct btrace_function *lhs, struct btrace_function *rhs,
 		   int min_matches)
 {
   struct btrace_function *best_l, *best_r, *cand_l, *cand_r;
@@ -845,12 +911,14 @@ ftrace_bridge_gap (struct btrace_functio
   /* We search the back traces of LHS and RHS for valid connections and connect
      the two functon segments that give the longest combined back trace.  */
 
-  for (cand_l = lhs; cand_l != NULL; cand_l = ftrace_get_caller (cand_l))
-    for (cand_r = rhs; cand_r != NULL; cand_r = ftrace_get_caller (cand_r))
+  for (cand_l = lhs; cand_l != NULL;
+       cand_l = ftrace_get_caller (btinfo, cand_l))
+    for (cand_r = rhs; cand_r != NULL;
+	 cand_r = ftrace_get_caller (btinfo, cand_r))
       {
 	int matches;
 
-	matches = ftrace_match_backtrace (cand_l, cand_r);
+	matches = ftrace_match_backtrace (btinfo, cand_l, cand_r);
 	if (best_matches < matches)
 	  {
 	    best_matches = matches;
@@ -875,9 +943,9 @@ ftrace_bridge_gap (struct btrace_functio
      To catch this, we already fix up the level here where we can start at RHS
      instead of at BEST_R.  We will ignore the level fixup when connecting
      BEST_L to BEST_R as they will already be on the same level.  */
-  ftrace_fixup_level (rhs, best_l->level - best_r->level);
+  ftrace_fixup_level (btinfo, rhs, best_l->level - best_r->level);
 
-  ftrace_connect_backtrace (best_l, best_r);
+  ftrace_connect_backtrace (btinfo, best_l, best_r);
 
   return best_matches;
 }
@@ -886,17 +954,14 @@ ftrace_bridge_gap (struct btrace_functio
    function segments that are separated by the gap.  */
 
 static void
-btrace_bridge_gaps (struct thread_info *tp, VEC (bfun_s) **gaps)
+btrace_bridge_gaps (struct thread_info *tp, std::vector<unsigned int> &gaps)
 {
-  VEC (bfun_s) *remaining;
-  struct cleanup *old_chain;
+  struct btrace_thread_info *btinfo = &tp->btrace;
+  std::vector<unsigned int> remaining;
   int min_matches;
 
   DEBUG ("bridge gaps");
 
-  remaining = NULL;
-  old_chain = make_cleanup (VEC_cleanup (bfun_s), &remaining);
-
   /* We require a minimum amount of matches for bridging a gap.  The number of
      required matches will be lowered with each iteration.
 
@@ -907,65 +972,60 @@ btrace_bridge_gaps (struct thread_info *
     {
       /* Let's try to bridge as many gaps as we can.  In some cases, we need to
 	 skip a gap and revisit it again after we closed later gaps.  */
-      while (!VEC_empty (bfun_s, *gaps))
+      while (!gaps.empty ())
 	{
-	  struct btrace_function *gap;
-	  unsigned int idx;
-
-	  for (idx = 0; VEC_iterate (bfun_s, *gaps, idx, gap); ++idx)
+	  for (const unsigned int number : gaps)
 	    {
-	      struct btrace_function *lhs, *rhs;
+	      struct btrace_function *gap, *lhs, *rhs;
 	      int bridged;
 
+	      gap = ftrace_find_call_by_number (btinfo, number);
+
 	      /* We may have a sequence of gaps if we run from one error into
 		 the next as we try to re-sync onto the trace stream.  Ignore
 		 all but the leftmost gap in such a sequence.
 
 		 Also ignore gaps at the beginning of the trace.  */
-	      lhs = gap->flow.prev;
+	      lhs = ftrace_find_call_by_number (btinfo, gap->number - 1);
 	      if (lhs == NULL || lhs->errcode != 0)
 		continue;
 
 	      /* Skip gaps to the right.  */
-	      for (rhs = gap->flow.next; rhs != NULL; rhs = rhs->flow.next)
-		if (rhs->errcode == 0)
-		  break;
+	      rhs = ftrace_find_call_by_number (btinfo, gap->number + 1);
+	      while (rhs != NULL && rhs->errcode != 0)
+		rhs = ftrace_find_call_by_number (btinfo, rhs->number + 1);
 
 	      /* Ignore gaps at the end of the trace.  */
 	      if (rhs == NULL)
 		continue;
 
-	      bridged = ftrace_bridge_gap (lhs, rhs, min_matches);
+	      bridged = ftrace_bridge_gap (btinfo, lhs, rhs, min_matches);
 
 	      /* Keep track of gaps we were not able to bridge and try again.
 		 If we just pushed them to the end of GAPS we would risk an
 		 infinite loop in case we simply cannot bridge a gap.  */
 	      if (bridged == 0)
-		VEC_safe_push (bfun_s, remaining, gap);
+		remaining.push_back (number);
 	    }
 
 	  /* Let's see if we made any progress.  */
-	  if (VEC_length (bfun_s, remaining) == VEC_length (bfun_s, *gaps))
+	  if (remaining.size () == gaps.size ())
 	    break;
 
-	  VEC_free (bfun_s, *gaps);
-
-	  *gaps = remaining;
-	  remaining = NULL;
+	  gaps.clear ();
+	  gaps.swap (remaining);
 	}
 
       /* We get here if either GAPS is empty or if GAPS equals REMAINING.  */
-      if (VEC_empty (bfun_s, *gaps))
+      if (gaps.empty ())
 	break;
 
-      VEC_free (bfun_s, remaining);
+      remaining.clear ();
     }
 
-  do_cleanups (old_chain);
-
   /* We may omit this in some cases.  Not sure it is worth the extra
      complication, though.  */
-  ftrace_compute_global_level_offset (&tp->btrace);
+  ftrace_compute_global_level_offset (btinfo);
 }
 
 /* Compute the function branch trace from BTS trace.  */
@@ -973,21 +1033,22 @@ btrace_bridge_gaps (struct thread_info *
 static void
 btrace_compute_ftrace_bts (struct thread_info *tp,
 			   const struct btrace_data_bts *btrace,
-			   VEC (bfun_s) **gaps)
+			   std::vector<unsigned int> &gaps)
 {
   struct btrace_thread_info *btinfo;
-  struct btrace_function *begin, *end;
   struct gdbarch *gdbarch;
   unsigned int blk;
   int level;
 
   gdbarch = target_gdbarch ();
   btinfo = &tp->btrace;
-  begin = btinfo->begin;
-  end = btinfo->end;
-  level = begin != NULL ? -btinfo->level : INT_MAX;
   blk = VEC_length (btrace_block_s, btrace->blocks);
 
+  if (btinfo->functions.empty ())
+    level = INT_MAX;
+  else
+    level = -btinfo->level;
+
   while (blk != 0)
     {
       btrace_block_s *block;
@@ -1000,6 +1061,7 @@ btrace_compute_ftrace_bts (struct thread
 
       for (;;)
 	{
+	  struct btrace_function *bfun;
 	  struct btrace_insn insn;
 	  int size;
 
@@ -1007,27 +1069,21 @@ btrace_compute_ftrace_bts (struct thread
 	  if (block->end < pc)
 	    {
 	      /* Indicate the gap in the trace.  */
-	      end = ftrace_new_gap (end, BDE_BTS_OVERFLOW);
-	      if (begin == NULL)
-		begin = end;
-
-	      VEC_safe_push (bfun_s, *gaps, end);
+	      bfun = ftrace_new_gap (btinfo, BDE_BTS_OVERFLOW, gaps);
 
 	      warning (_("Recorded trace may be corrupted at instruction "
-			 "%u (pc = %s)."), end->insn_offset - 1,
+			 "%u (pc = %s)."), bfun->insn_offset - 1,
 		       core_addr_to_string_nz (pc));
 
 	      break;
 	    }
 
-	  end = ftrace_update_function (end, pc);
-	  if (begin == NULL)
-	    begin = end;
+	  bfun = ftrace_update_function (btinfo, pc);
 
 	  /* Maintain the function level offset.
 	     For all but the last block, we do it here.  */
 	  if (blk != 0)
-	    level = std::min (level, end->level);
+	    level = std::min (level, bfun->level);
 
 	  size = 0;
 	  TRY
@@ -1044,7 +1100,7 @@ btrace_compute_ftrace_bts (struct thread
 	  insn.iclass = ftrace_classify_insn (gdbarch, pc);
 	  insn.flags = 0;
 
-	  ftrace_update_insns (end, &insn);
+	  ftrace_update_insns (bfun, insn);
 
 	  /* We're done once we pushed the instruction at the end.  */
 	  if (block->end == pc)
@@ -1055,12 +1111,10 @@ btrace_compute_ftrace_bts (struct thread
 	    {
 	      /* Indicate the gap in the trace.  We just added INSN so we're
 		 not at the beginning.  */
-	      end = ftrace_new_gap (end, BDE_BTS_INSN_SIZE);
-
-	      VEC_safe_push (bfun_s, *gaps, end);
+	      bfun = ftrace_new_gap (btinfo, BDE_BTS_INSN_SIZE, gaps);
 
 	      warning (_("Recorded trace may be incomplete at instruction %u "
-			 "(pc = %s)."), end->insn_offset - 1,
+			 "(pc = %s)."), bfun->insn_offset - 1,
 		       core_addr_to_string_nz (pc));
 
 	      break;
@@ -1075,13 +1129,10 @@ btrace_compute_ftrace_bts (struct thread
 	     and is not really part of the execution history, it shouldn't
 	     affect the level.  */
 	  if (blk == 0)
-	    level = std::min (level, end->level);
+	    level = std::min (level, bfun->level);
 	}
     }
 
-  btinfo->begin = begin;
-  btinfo->end = end;
-
   /* LEVEL is the minimal function level of all btrace function segments.
      Define the global level offset to -LEVEL so all function levels are
      normalized to start at zero.  */
@@ -1112,124 +1163,182 @@ pt_reclassify_insn (enum pt_insn_class i
 /* Return the btrace instruction flags for INSN.  */
 
 static btrace_insn_flags
-pt_btrace_insn_flags (const struct pt_insn *insn)
+pt_btrace_insn_flags (const struct pt_insn &insn)
 {
   btrace_insn_flags flags = 0;
 
-  if (insn->speculative)
+  if (insn.speculative)
     flags |= BTRACE_INSN_FLAG_SPECULATIVE;
 
   return flags;
 }
 
-/* Add function branch trace using DECODER.  */
+/* Return the btrace instruction for INSN.  */
+
+static btrace_insn
+pt_btrace_insn (const struct pt_insn &insn)
+{
+  return {(CORE_ADDR) insn.ip, (gdb_byte) insn.size,
+	  pt_reclassify_insn (insn.iclass),
+	  pt_btrace_insn_flags (insn)};
+}
+
+/* Handle instruction decode events (libipt-v2).  */
+
+static int
+handle_pt_insn_events (struct btrace_thread_info *btinfo,
+		       struct pt_insn_decoder *decoder,
+		       std::vector<unsigned int> &gaps, int status)
+{
+#if defined (HAVE_PT_INSN_EVENT)
+  while (status & pts_event_pending)
+    {
+      struct btrace_function *bfun;
+      struct pt_event event;
+      uint64_t offset;
+
+      status = pt_insn_event (decoder, &event, sizeof (event));
+      if (status < 0)
+	break;
+
+      switch (event.type)
+	{
+	default:
+	  break;
+
+	case ptev_enabled:
+	  if (event.variant.enabled.resumed == 0 && !btinfo->functions.empty ())
+	    {
+	      bfun = ftrace_new_gap (btinfo, BDE_PT_DISABLED, gaps);
+
+	      pt_insn_get_offset (decoder, &offset);
+
+	      warning (_("Non-contiguous trace at instruction %u (offset = 0x%"
+			 PRIx64 ")."), bfun->insn_offset - 1, offset);
+	    }
+
+	  break;
+
+	case ptev_overflow:
+	  bfun = ftrace_new_gap (btinfo, BDE_PT_OVERFLOW, gaps);
+
+	  pt_insn_get_offset (decoder, &offset);
+
+	  warning (_("Overflow at instruction %u (offset = 0x%" PRIx64 ")."),
+		   bfun->insn_offset - 1, offset);
+
+	  break;
+	}
+    }
+#endif /* defined (HAVE_PT_INSN_EVENT) */
+
+  return status;
+}
+
+/* Handle events indicated by flags in INSN (libipt-v1).  */
 
 static void
-ftrace_add_pt (struct pt_insn_decoder *decoder,
-	       struct btrace_function **pbegin,
-	       struct btrace_function **pend, int *plevel,
-	       VEC (bfun_s) **gaps)
+handle_pt_insn_event_flags (struct btrace_thread_info *btinfo,
+			    struct pt_insn_decoder *decoder,
+			    const struct pt_insn &insn,
+			    std::vector<unsigned int> &gaps)
 {
-  struct btrace_function *begin, *end, *upd;
+#if defined (HAVE_STRUCT_PT_INSN_ENABLED)
+  /* Tracing is disabled and re-enabled each time we enter the kernel.  Most
+     times, we continue from the same instruction we stopped before.  This is
+     indicated via the RESUMED instruction flag.  The ENABLED instruction flag
+     means that we continued from some other instruction.  Indicate this as a
+     trace gap except when tracing just started.  */
+  if (insn.enabled && !btinfo->functions.empty ())
+    {
+      struct btrace_function *bfun;
+      uint64_t offset;
+
+      bfun = ftrace_new_gap (btinfo, BDE_PT_DISABLED, gaps);
+
+      pt_insn_get_offset (decoder, &offset);
+
+      warning (_("Non-contiguous trace at instruction %u (offset = 0x%" PRIx64
+		 ", pc = 0x%" PRIx64 ")."), bfun->insn_offset - 1, offset,
+	       insn.ip);
+    }
+#endif /* defined (HAVE_STRUCT_PT_INSN_ENABLED) */
+
+#if defined (HAVE_STRUCT_PT_INSN_RESYNCED)
+  /* Indicate trace overflows.  */
+  if (insn.resynced)
+    {
+      struct btrace_function *bfun;
+      uint64_t offset;
+
+      bfun = ftrace_new_gap (btinfo, BDE_PT_OVERFLOW, gaps);
+
+      pt_insn_get_offset (decoder, &offset);
+
+      warning (_("Overflow at instruction %u (offset = 0x%" PRIx64 ", pc = 0x%"
+		 PRIx64 ")."), bfun->insn_offset - 1, offset, insn.ip);
+    }
+#endif /* defined (HAVE_STRUCT_PT_INSN_RESYNCED) */
+}
+
+/* Add function branch trace to BTINFO using DECODER.  */
+
+static void
+ftrace_add_pt (struct btrace_thread_info *btinfo,
+	       struct pt_insn_decoder *decoder,
+	       int *plevel,
+	       std::vector<unsigned int> &gaps)
+{
+  struct btrace_function *bfun;
   uint64_t offset;
-  int errcode;
+  int status;
 
-  begin = *pbegin;
-  end = *pend;
   for (;;)
     {
-      struct btrace_insn btinsn;
       struct pt_insn insn;
 
-      errcode = pt_insn_sync_forward (decoder);
-      if (errcode < 0)
+      status = pt_insn_sync_forward (decoder);
+      if (status < 0)
 	{
-	  if (errcode != -pte_eos)
+	  if (status != -pte_eos)
 	    warning (_("Failed to synchronize onto the Intel Processor "
-		       "Trace stream: %s."), pt_errstr (pt_errcode (errcode)));
+		       "Trace stream: %s."), pt_errstr (pt_errcode (status)));
 	  break;
 	}
 
-      memset (&btinsn, 0, sizeof (btinsn));
       for (;;)
 	{
-	  errcode = pt_insn_next (decoder, &insn, sizeof(insn));
-	  if (errcode < 0)
+	  /* Handle events from the previous iteration or synchronization.  */
+	  status = handle_pt_insn_events (btinfo, decoder, gaps, status);
+	  if (status < 0)
 	    break;
 
-	  /* Look for gaps in the trace - unless we're at the beginning.  */
-	  if (begin != NULL)
-	    {
-	      /* Tracing is disabled and re-enabled each time we enter the
-		 kernel.  Most times, we continue from the same instruction we
-		 stopped before.  This is indicated via the RESUMED instruction
-		 flag.  The ENABLED instruction flag means that we continued
-		 from some other instruction.  Indicate this as a trace gap.  */
-	      if (insn.enabled)
-		{
-		  *pend = end = ftrace_new_gap (end, BDE_PT_DISABLED);
-
-		  VEC_safe_push (bfun_s, *gaps, end);
-
-		  pt_insn_get_offset (decoder, &offset);
-
-		  warning (_("Non-contiguous trace at instruction %u (offset "
-			     "= 0x%" PRIx64 ", pc = 0x%" PRIx64 ")."),
-			   end->insn_offset - 1, offset, insn.ip);
-		}
-	    }
-
-	  /* Indicate trace overflows.  */
-	  if (insn.resynced)
-	    {
-	      *pend = end = ftrace_new_gap (end, BDE_PT_OVERFLOW);
-	      if (begin == NULL)
-		*pbegin = begin = end;
-
-	      VEC_safe_push (bfun_s, *gaps, end);
-
-	      pt_insn_get_offset (decoder, &offset);
-
-	      warning (_("Overflow at instruction %u (offset = 0x%" PRIx64
-			 ", pc = 0x%" PRIx64 ")."), end->insn_offset - 1,
-		       offset, insn.ip);
-	    }
+	  status = pt_insn_next (decoder, &insn, sizeof(insn));
+	  if (status < 0)
+	    break;
 
-	  upd = ftrace_update_function (end, insn.ip);
-	  if (upd != end)
-	    {
-	      *pend = end = upd;
+	  /* Handle events indicated by flags in INSN.  */
+	  handle_pt_insn_event_flags (btinfo, decoder, insn, gaps);
 
-	      if (begin == NULL)
-		*pbegin = begin = upd;
-	    }
+	  bfun = ftrace_update_function (btinfo, insn.ip);
 
 	  /* Maintain the function level offset.  */
-	  *plevel = std::min (*plevel, end->level);
+	  *plevel = std::min (*plevel, bfun->level);
 
-	  btinsn.pc = (CORE_ADDR) insn.ip;
-	  btinsn.size = (gdb_byte) insn.size;
-	  btinsn.iclass = pt_reclassify_insn (insn.iclass);
-	  btinsn.flags = pt_btrace_insn_flags (&insn);
-
-	  ftrace_update_insns (end, &btinsn);
+	  ftrace_update_insns (bfun, pt_btrace_insn (insn));
 	}
 
-      if (errcode == -pte_eos)
+      if (status == -pte_eos)
 	break;
 
       /* Indicate the gap in the trace.  */
-      *pend = end = ftrace_new_gap (end, errcode);
-      if (begin == NULL)
-	*pbegin = begin = end;
-
-      VEC_safe_push (bfun_s, *gaps, end);
+      bfun = ftrace_new_gap (btinfo, status, gaps);
 
       pt_insn_get_offset (decoder, &offset);
 
       warning (_("Decode error (%d) at instruction %u (offset = 0x%" PRIx64
-		 ", pc = 0x%" PRIx64 "): %s."), errcode, end->insn_offset - 1,
-	       offset, insn.ip, pt_errstr (pt_errcode (errcode)));
+		 ", pc = 0x%" PRIx64 "): %s."), status, bfun->insn_offset - 1,
+	       offset, insn.ip, pt_errstr (pt_errcode (status)));
     }
 }
 
@@ -1299,7 +1408,7 @@ static void btrace_finalize_ftrace_pt (s
 static void
 btrace_compute_ftrace_pt (struct thread_info *tp,
 			  const struct btrace_data_pt *btrace,
-			  VEC (bfun_s) **gaps)
+			  std::vector<unsigned int> &gaps)
 {
   struct btrace_thread_info *btinfo;
   struct pt_insn_decoder *decoder;
@@ -1310,7 +1419,10 @@ btrace_compute_ftrace_pt (struct thread_
     return;
 
   btinfo = &tp->btrace;
-  level = btinfo->begin != NULL ? -btinfo->level : INT_MAX;
+  if (btinfo->functions.empty ())
+    level = INT_MAX;
+  else
+    level = -btinfo->level;
 
   pt_config_init(&config);
   config.begin = btrace->data;
@@ -1343,17 +1455,13 @@ btrace_compute_ftrace_pt (struct thread_
 	error (_("Failed to configure the Intel Processor Trace decoder: "
 		 "%s."), pt_errstr (pt_errcode (errcode)));
 
-      ftrace_add_pt (decoder, &btinfo->begin, &btinfo->end, &level, gaps);
+      ftrace_add_pt (btinfo, decoder, &level, gaps);
     }
   CATCH (error, RETURN_MASK_ALL)
     {
       /* Indicate a gap in the trace if we quit trace processing.  */
-      if (error.reason == RETURN_QUIT && btinfo->end != NULL)
-	{
-	  btinfo->end = ftrace_new_gap (btinfo->end, BDE_PT_USER_QUIT);
-
-	  VEC_safe_push (bfun_s, *gaps, btinfo->end);
-	}
+      if (error.reason == RETURN_QUIT && !btinfo->functions.empty ())
+	ftrace_new_gap (btinfo, BDE_PT_USER_QUIT, gaps);
 
       btrace_finalize_ftrace_pt (decoder, tp, level);
 
@@ -1369,7 +1477,7 @@ btrace_compute_ftrace_pt (struct thread_
 static void
 btrace_compute_ftrace_pt (struct thread_info *tp,
 			  const struct btrace_data_pt *btrace,
-			  VEC (bfun_s) **gaps)
+			  std::vector<unsigned int> &gaps)
 {
   internal_error (__FILE__, __LINE__, _("Unexpected branch trace format."));
 }
@@ -1381,7 +1489,7 @@ btrace_compute_ftrace_pt (struct thread_
 
 static void
 btrace_compute_ftrace_1 (struct thread_info *tp, struct btrace_data *btrace,
-			 VEC (bfun_s) **gaps)
+			 std::vector<unsigned int> &gaps)
 {
   DEBUG ("compute ftrace");
 
@@ -1403,11 +1511,11 @@ btrace_compute_ftrace_1 (struct thread_i
 }
 
 static void
-btrace_finalize_ftrace (struct thread_info *tp, VEC (bfun_s) **gaps)
+btrace_finalize_ftrace (struct thread_info *tp, std::vector<unsigned int> &gaps)
 {
-  if (!VEC_empty (bfun_s, *gaps))
+  if (!gaps.empty ())
     {
-      tp->btrace.ngaps += VEC_length (bfun_s, *gaps);
+      tp->btrace.ngaps += gaps.size ();
       btrace_bridge_gaps (tp, gaps);
     }
 }
@@ -1415,27 +1523,21 @@ btrace_finalize_ftrace (struct thread_in
 static void
 btrace_compute_ftrace (struct thread_info *tp, struct btrace_data *btrace)
 {
-  VEC (bfun_s) *gaps;
-  struct cleanup *old_chain;
-
-  gaps = NULL;
-  old_chain = make_cleanup (VEC_cleanup (bfun_s), &gaps);
+  std::vector<unsigned int> gaps;
 
   TRY
     {
-      btrace_compute_ftrace_1 (tp, btrace, &gaps);
+      btrace_compute_ftrace_1 (tp, btrace, gaps);
     }
   CATCH (error, RETURN_MASK_ALL)
     {
-      btrace_finalize_ftrace (tp, &gaps);
+      btrace_finalize_ftrace (tp, gaps);
 
       throw_exception (error);
     }
   END_CATCH
 
-  btrace_finalize_ftrace (tp, &gaps);
-
-  do_cleanups (old_chain);
+  btrace_finalize_ftrace (tp, gaps);
 }
 
 /* Add an entry for the current PC.  */
@@ -1534,7 +1636,6 @@ void
 btrace_disable (struct thread_info *tp)
 {
   struct btrace_thread_info *btp = &tp->btrace;
-  int errcode = 0;
 
   if (btp->target == NULL)
     return;
@@ -1554,7 +1655,6 @@ void
 btrace_teardown (struct thread_info *tp)
 {
   struct btrace_thread_info *btp = &tp->btrace;
-  int errcode = 0;
 
   if (btp->target == NULL)
     return;
@@ -1575,18 +1675,18 @@ btrace_stitch_bts (struct btrace_data_bt
 {
   struct btrace_thread_info *btinfo;
   struct btrace_function *last_bfun;
-  struct btrace_insn *last_insn;
   btrace_block_s *first_new_block;
 
   btinfo = &tp->btrace;
-  last_bfun = btinfo->end;
-  gdb_assert (last_bfun != NULL);
+  gdb_assert (!btinfo->functions.empty ());
   gdb_assert (!VEC_empty (btrace_block_s, btrace->blocks));
 
+  last_bfun = &btinfo->functions.back ();
+
   /* If the existing trace ends with a gap, we just glue the traces
      together.  We need to drop the last (i.e. chronologically first) block
      of the new trace,  though, since we can't fill in the start address.*/
-  if (VEC_empty (btrace_insn_s, last_bfun->insn))
+  if (last_bfun->insn.empty ())
     {
       VEC_pop (btrace_block_s, btrace->blocks);
       return 0;
@@ -1596,7 +1696,7 @@ btrace_stitch_bts (struct btrace_data_bt
      chronologically first block in the new trace is the last block in
      the new trace's block vector.  */
   first_new_block = VEC_last (btrace_block_s, btrace->blocks);
-  last_insn = VEC_last (btrace_insn_s, last_bfun->insn);
+  const btrace_insn &last_insn = last_bfun->insn.back ();
 
   /* If the current PC at the end of the block is the same as in our current
      trace, there are two explanations:
@@ -1606,19 +1706,19 @@ btrace_stitch_bts (struct btrace_data_bt
      entries.
      In the second case, the delta trace vector should contain exactly one
      entry for the partial block containing the current PC.  Remove it.  */
-  if (first_new_block->end == last_insn->pc
+  if (first_new_block->end == last_insn.pc
       && VEC_length (btrace_block_s, btrace->blocks) == 1)
     {
       VEC_pop (btrace_block_s, btrace->blocks);
       return 0;
     }
 
-  DEBUG ("stitching %s to %s", ftrace_print_insn_addr (last_insn),
+  DEBUG ("stitching %s to %s", ftrace_print_insn_addr (&last_insn),
 	 core_addr_to_string_nz (first_new_block->end));
 
   /* Do a simple sanity check to make sure we don't accidentally end up
      with a bad block.  This should not occur in practice.  */
-  if (first_new_block->end < last_insn->pc)
+  if (first_new_block->end < last_insn.pc)
     {
       warning (_("Error while trying to read delta trace.  Falling back to "
 		 "a full read."));
@@ -1627,16 +1727,16 @@ btrace_stitch_bts (struct btrace_data_bt
 
   /* We adjust the last block to start at the end of our current trace.  */
   gdb_assert (first_new_block->begin == 0);
-  first_new_block->begin = last_insn->pc;
+  first_new_block->begin = last_insn.pc;
 
   /* We simply pop the last insn so we can insert it again as part of
      the normal branch trace computation.
      Since instruction iterators are based on indices in the instructions
      vector, we don't leave any pointers dangling.  */
   DEBUG ("pruning insn at %s for stitching",
-	 ftrace_print_insn_addr (last_insn));
+	 ftrace_print_insn_addr (&last_insn));
 
-  VEC_pop (btrace_insn_s, last_bfun->insn);
+  last_bfun->insn.pop_back ();
 
   /* The instructions vector may become empty temporarily if this has
      been the only instruction in this function segment.
@@ -1647,7 +1747,7 @@ btrace_stitch_bts (struct btrace_data_bt
      of just that one instruction.  If we remove it, we might turn the now
      empty btrace function segment into a gap.  But we don't want gaps at
      the beginning.  To avoid this, we remove the entire old trace.  */
-  if (last_bfun == btinfo->begin && VEC_empty (btrace_insn_s, last_bfun->insn))
+  if (last_bfun->number == 1 && last_bfun->insn.empty ())
     btrace_clear (tp);
 
   return 0;
@@ -1800,17 +1900,17 @@ btrace_fetch (struct thread_info *tp)
   /* With CLI usage, TP->PTID always equals INFERIOR_PTID here.  Now that we
      can store a gdb.Record object in Python referring to a different thread
      than the current one, temporarily set INFERIOR_PTID.  */
-  cleanup = save_inferior_ptid ();
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
   inferior_ptid = tp->ptid;
 
   /* We should not be called on running or exited threads.  */
   gdb_assert (can_access_registers_ptid (tp->ptid));
 
   btrace_data_init (&btrace);
-  make_cleanup_btrace_data (&btrace);
+  cleanup = make_cleanup_btrace_data (&btrace);
 
   /* Let's first try to extend the trace we already have.  */
-  if (btinfo->end != NULL)
+  if (!btinfo->functions.empty ())
     {
       errcode = target_read_btrace (&btrace, tinfo, BTRACE_READ_DELTA);
       if (errcode == 0)
@@ -1845,19 +1945,13 @@ btrace_fetch (struct thread_info *tp)
   /* Compute the trace, provided we have any.  */
   if (!btrace_data_empty (&btrace))
     {
-      struct btrace_function *bfun;
-
       /* Store the raw trace data.  The stored data will be cleared in
 	 btrace_clear, so we always append the new trace.  */
       btrace_data_append (&btinfo->data, &btrace);
       btrace_maint_clear (btinfo);
 
-      VEC_truncate (btrace_fun_p, btinfo->functions, 0);
       btrace_clear_history (btinfo);
       btrace_compute_ftrace (tp, &btrace);
-
-      for (bfun = btinfo->begin; bfun != NULL; bfun = bfun->flow.next)
-	VEC_safe_push (btrace_fun_p, btinfo->functions, bfun);
     }
 
   do_cleanups (cleanup);
@@ -1869,7 +1963,6 @@ void
 btrace_clear (struct thread_info *tp)
 {
   struct btrace_thread_info *btinfo;
-  struct btrace_function *it, *trash;
 
   DEBUG ("clear thread %s (%s)", print_thread_id (tp),
 	 target_pid_to_str (tp->ptid));
@@ -1880,19 +1973,7 @@ btrace_clear (struct thread_info *tp)
 
   btinfo = &tp->btrace;
 
-  VEC_free (btrace_fun_p, btinfo->functions);
-
-  it = btinfo->begin;
-  while (it != NULL)
-    {
-      trash = it;
-      it = it->flow.next;
-
-      xfree (trash);
-    }
-
-  btinfo->begin = NULL;
-  btinfo->end = NULL;
+  btinfo->functions.clear ();
   btinfo->ngaps = 0;
 
   /* Must clear the maint data before - it depends on BTINFO->DATA.  */
@@ -2238,19 +2319,19 @@ btrace_insn_get (const struct btrace_ins
   const struct btrace_function *bfun;
   unsigned int index, end;
 
-  index = it->index;
-  bfun = it->function;
+  index = it->insn_index;
+  bfun = &it->btinfo->functions[it->call_index];
 
   /* Check if the iterator points to a gap in the trace.  */
   if (bfun->errcode != 0)
     return NULL;
 
   /* The index is within the bounds of this function's instruction vector.  */
-  end = VEC_length (btrace_insn_s, bfun->insn);
+  end = bfun->insn.size ();
   gdb_assert (0 < end);
   gdb_assert (index < end);
 
-  return VEC_index (btrace_insn_s, bfun->insn, index);
+  return &bfun->insn[index];
 }
 
 /* See btrace.h.  */
@@ -2258,7 +2339,7 @@ btrace_insn_get (const struct btrace_ins
 int
 btrace_insn_get_error (const struct btrace_insn_iterator *it)
 {
-  return it->function->errcode;
+  return it->btinfo->functions[it->call_index].errcode;
 }
 
 /* See btrace.h.  */
@@ -2266,7 +2347,7 @@ btrace_insn_get_error (const struct btra
 unsigned int
 btrace_insn_number (const struct btrace_insn_iterator *it)
 {
-  return it->function->insn_offset + it->index;
+  return it->btinfo->functions[it->call_index].insn_offset + it->insn_index;
 }
 
 /* See btrace.h.  */
@@ -2275,14 +2356,12 @@ void
 btrace_insn_begin (struct btrace_insn_iterator *it,
 		   const struct btrace_thread_info *btinfo)
 {
-  const struct btrace_function *bfun;
-
-  bfun = btinfo->begin;
-  if (bfun == NULL)
+  if (btinfo->functions.empty ())
     error (_("No trace."));
 
-  it->function = bfun;
-  it->index = 0;
+  it->btinfo = btinfo;
+  it->call_index = 0;
+  it->insn_index = 0;
 }
 
 /* See btrace.h.  */
@@ -2294,11 +2373,11 @@ btrace_insn_end (struct btrace_insn_iter
   const struct btrace_function *bfun;
   unsigned int length;
 
-  bfun = btinfo->end;
-  if (bfun == NULL)
+  if (btinfo->functions.empty ())
     error (_("No trace."));
 
-  length = VEC_length (btrace_insn_s, bfun->insn);
+  bfun = &btinfo->functions.back ();
+  length = bfun->insn.size ();
 
   /* The last function may either be a gap or it contains the current
      instruction, which is one past the end of the execution trace; ignore
@@ -2306,8 +2385,9 @@ btrace_insn_end (struct btrace_insn_iter
   if (length > 0)
     length -= 1;
 
-  it->function = bfun;
-  it->index = length;
+  it->btinfo = btinfo;
+  it->call_index = bfun->number - 1;
+  it->insn_index = length;
 }
 
 /* See btrace.h.  */
@@ -2318,15 +2398,15 @@ btrace_insn_next (struct btrace_insn_ite
   const struct btrace_function *bfun;
   unsigned int index, steps;
 
-  bfun = it->function;
+  bfun = &it->btinfo->functions[it->call_index];
   steps = 0;
-  index = it->index;
+  index = it->insn_index;
 
   while (stride != 0)
     {
       unsigned int end, space, adv;
 
-      end = VEC_length (btrace_insn_s, bfun->insn);
+      end = bfun->insn.size ();
 
       /* An empty function segment represents a gap in the trace.  We count
 	 it as one instruction.  */
@@ -2334,7 +2414,7 @@ btrace_insn_next (struct btrace_insn_ite
 	{
 	  const struct btrace_function *next;
 
-	  next = bfun->flow.next;
+	  next = ftrace_find_call_by_number (it->btinfo, bfun->number + 1);
 	  if (next == NULL)
 	    break;
 
@@ -2364,7 +2444,7 @@ btrace_insn_next (struct btrace_insn_ite
 	{
 	  const struct btrace_function *next;
 
-	  next = bfun->flow.next;
+	  next = ftrace_find_call_by_number (it->btinfo, bfun->number + 1);
 	  if (next == NULL)
 	    {
 	      /* We stepped past the last function.
@@ -2386,8 +2466,8 @@ btrace_insn_next (struct btrace_insn_ite
     }
 
   /* Update the iterator.  */
-  it->function = bfun;
-  it->index = index;
+  it->call_index = bfun->number - 1;
+  it->insn_index = index;
 
   return steps;
 }
@@ -2400,9 +2480,9 @@ btrace_insn_prev (struct btrace_insn_ite
   const struct btrace_function *bfun;
   unsigned int index, steps;
 
-  bfun = it->function;
+  bfun = &it->btinfo->functions[it->call_index];
   steps = 0;
-  index = it->index;
+  index = it->insn_index;
 
   while (stride != 0)
     {
@@ -2413,13 +2493,13 @@ btrace_insn_prev (struct btrace_insn_ite
 	{
 	  const struct btrace_function *prev;
 
-	  prev = bfun->flow.prev;
+	  prev = ftrace_find_call_by_number (it->btinfo, bfun->number - 1);
 	  if (prev == NULL)
 	    break;
 
 	  /* We point to one after the last instruction in the new function.  */
 	  bfun = prev;
-	  index = VEC_length (btrace_insn_s, bfun->insn);
+	  index = bfun->insn.size ();
 
 	  /* An empty function segment represents a gap in the trace.  We count
 	     it as one instruction.  */
@@ -2444,8 +2524,8 @@ btrace_insn_prev (struct btrace_insn_ite
     }
 
   /* Update the iterator.  */
-  it->function = bfun;
-  it->index = index;
+  it->call_index = bfun->number - 1;
+  it->insn_index = index;
 
   return steps;
 }
@@ -2456,12 +2536,12 @@ int
 btrace_insn_cmp (const struct btrace_insn_iterator *lhs,
 		 const struct btrace_insn_iterator *rhs)
 {
-  unsigned int lnum, rnum;
+  gdb_assert (lhs->btinfo == rhs->btinfo);
 
-  lnum = btrace_insn_number (lhs);
-  rnum = btrace_insn_number (rhs);
+  if (lhs->call_index != rhs->call_index)
+    return lhs->call_index - rhs->call_index;
 
-  return (int) (lnum - rnum);
+  return lhs->insn_index - rhs->insn_index;
 }
 
 /* See btrace.h.  */
@@ -2474,16 +2554,16 @@ btrace_find_insn_by_number (struct btrac
   const struct btrace_function *bfun;
   unsigned int upper, lower;
 
-  if (VEC_empty (btrace_fun_p, btinfo->functions))
+  if (btinfo->functions.empty ())
       return 0;
 
   lower = 0;
-  bfun = VEC_index (btrace_fun_p, btinfo->functions, lower);
+  bfun = &btinfo->functions[lower];
   if (number < bfun->insn_offset)
     return 0;
 
-  upper = VEC_length (btrace_fun_p, btinfo->functions) - 1;
-  bfun = VEC_index (btrace_fun_p, btinfo->functions, upper);
+  upper = btinfo->functions.size () - 1;
+  bfun = &btinfo->functions[upper];
   if (number >= bfun->insn_offset + ftrace_call_num_insn (bfun))
     return 0;
 
@@ -2492,7 +2572,7 @@ btrace_find_insn_by_number (struct btrac
     {
       const unsigned int average = lower + (upper - lower) / 2;
 
-      bfun = VEC_index (btrace_fun_p, btinfo->functions, average);
+      bfun = &btinfo->functions[average];
 
       if (number < bfun->insn_offset)
 	{
@@ -2509,17 +2589,39 @@ btrace_find_insn_by_number (struct btrac
       break;
     }
 
-  it->function = bfun;
-  it->index = number - bfun->insn_offset;
+  it->btinfo = btinfo;
+  it->call_index = bfun->number - 1;
+  it->insn_index = number - bfun->insn_offset;
   return 1;
 }
 
+/* Returns true if the recording ends with a function segment that
+   contains only a single (i.e. the current) instruction.  */
+
+static bool
+btrace_ends_with_single_insn (const struct btrace_thread_info *btinfo)
+{
+  const btrace_function *bfun;
+
+  if (btinfo->functions.empty ())
+    return false;
+
+  bfun = &btinfo->functions.back ();
+  if (bfun->errcode != 0)
+    return false;
+
+  return ftrace_call_num_insn (bfun) == 1;
+}
+
 /* See btrace.h.  */
 
 const struct btrace_function *
 btrace_call_get (const struct btrace_call_iterator *it)
 {
-  return it->function;
+  if (it->index >= it->btinfo->functions.size ())
+    return NULL;
+
+  return &it->btinfo->functions[it->index];
 }
 
 /* See btrace.h.  */
@@ -2527,28 +2629,14 @@ btrace_call_get (const struct btrace_cal
 unsigned int
 btrace_call_number (const struct btrace_call_iterator *it)
 {
-  const struct btrace_thread_info *btinfo;
-  const struct btrace_function *bfun;
-  unsigned int insns;
+  const unsigned int length = it->btinfo->functions.size ();
 
-  btinfo = it->btinfo;
-  bfun = it->function;
-  if (bfun != NULL)
-    return bfun->number;
-
-  /* For the end iterator, i.e. bfun == NULL, we return one more than the
-     number of the last function.  */
-  bfun = btinfo->end;
-  insns = VEC_length (btrace_insn_s, bfun->insn);
-
-  /* If the function contains only a single instruction (i.e. the current
-     instruction), it will be skipped and its number is already the number
-     we seek.  */
-  if (insns == 1)
-    return bfun->number;
+  /* If the last function segment contains only a single instruction (i.e. the
+     current instruction), skip it.  */
+  if ((it->index == length) && btrace_ends_with_single_insn (it->btinfo))
+    return length;
 
-  /* Otherwise, return one more than the number of the last function.  */
-  return bfun->number + 1;
+  return it->index + 1;
 }
 
 /* See btrace.h.  */
@@ -2557,14 +2645,11 @@ void
 btrace_call_begin (struct btrace_call_iterator *it,
 		   const struct btrace_thread_info *btinfo)
 {
-  const struct btrace_function *bfun;
-
-  bfun = btinfo->begin;
-  if (bfun == NULL)
+  if (btinfo->functions.empty ())
     error (_("No trace."));
 
   it->btinfo = btinfo;
-  it->function = bfun;
+  it->index = 0;
 }
 
 /* See btrace.h.  */
@@ -2573,14 +2658,11 @@ void
 btrace_call_end (struct btrace_call_iterator *it,
 		 const struct btrace_thread_info *btinfo)
 {
-  const struct btrace_function *bfun;
-
-  bfun = btinfo->end;
-  if (bfun == NULL)
+  if (btinfo->functions.empty ())
     error (_("No trace."));
 
   it->btinfo = btinfo;
-  it->function = NULL;
+  it->index = btinfo->functions.size ();
 }
 
 /* See btrace.h.  */
@@ -2588,35 +2670,35 @@ btrace_call_end (struct btrace_call_iter
 unsigned int
 btrace_call_next (struct btrace_call_iterator *it, unsigned int stride)
 {
-  const struct btrace_function *bfun;
-  unsigned int steps;
+  const unsigned int length = it->btinfo->functions.size ();
 
-  bfun = it->function;
-  steps = 0;
-  while (bfun != NULL)
+  if (it->index + stride < length - 1)
+    /* Default case: Simply advance the iterator.  */
+    it->index += stride;
+  else if (it->index + stride == length - 1)
+    {
+      /* We land exactly at the last function segment.  If it contains only one
+	 instruction (i.e. the current instruction) it is not actually part of
+	 the trace.  */
+      if (btrace_ends_with_single_insn (it->btinfo))
+	it->index = length;
+      else
+	it->index = length - 1;
+    }
+  else
     {
-      const struct btrace_function *next;
-      unsigned int insns;
-
-      next = bfun->flow.next;
-      if (next == NULL)
-	{
-	  /* Ignore the last function if it only contains a single
-	     (i.e. the current) instruction.  */
-	  insns = VEC_length (btrace_insn_s, bfun->insn);
-	  if (insns == 1)
-	    steps -= 1;
-	}
-
-      if (stride == steps)
-	break;
+      /* We land past the last function segment and have to adjust the stride.
+	 If the last function segment contains only one instruction (i.e. the
+	 current instruction) it is not actually part of the trace.  */
+      if (btrace_ends_with_single_insn (it->btinfo))
+	stride = length - it->index - 1;
+      else
+	stride = length - it->index;
 
-      bfun = next;
-      steps += 1;
+      it->index = length;
     }
 
-  it->function = bfun;
-  return steps;
+  return stride;
 }
 
 /* See btrace.h.  */
@@ -2624,48 +2706,33 @@ btrace_call_next (struct btrace_call_ite
 unsigned int
 btrace_call_prev (struct btrace_call_iterator *it, unsigned int stride)
 {
-  const struct btrace_thread_info *btinfo;
-  const struct btrace_function *bfun;
-  unsigned int steps;
-
-  bfun = it->function;
-  steps = 0;
-
-  if (bfun == NULL)
-    {
-      unsigned int insns;
-
-      btinfo = it->btinfo;
-      bfun = btinfo->end;
-      if (bfun == NULL)
-	return 0;
+  const unsigned int length = it->btinfo->functions.size ();
+  int steps = 0;
 
-      /* Ignore the last function if it only contains a single
-	 (i.e. the current) instruction.  */
-      insns = VEC_length (btrace_insn_s, bfun->insn);
-      if (insns == 1)
-	bfun = bfun->flow.prev;
+  gdb_assert (it->index <= length);
 
-      if (bfun == NULL)
-	return 0;
-
-      steps += 1;
-    }
+  if (stride == 0 || it->index == 0)
+    return 0;
 
-  while (steps < stride)
+  /* If we are at the end, the first step is a special case.  If the last
+     function segment contains only one instruction (i.e. the current
+     instruction) it is not actually part of the trace.  To be able to step
+     over this instruction, we need at least one more function segment.  */
+  if ((it->index == length)  && (length > 1))
     {
-      const struct btrace_function *prev;
-
-      prev = bfun->flow.prev;
-      if (prev == NULL)
-	break;
+      if (btrace_ends_with_single_insn (it->btinfo))
+	it->index = length - 2;
+      else
+	it->index = length - 1;
 
-      bfun = prev;
-      steps += 1;
+      steps = 1;
+      stride -= 1;
     }
 
-  it->function = bfun;
-  return steps;
+  stride = std::min (stride, it->index);
+
+  it->index -= stride;
+  return steps + stride;
 }
 
 /* See btrace.h.  */
@@ -2674,12 +2741,8 @@ int
 btrace_call_cmp (const struct btrace_call_iterator *lhs,
 		 const struct btrace_call_iterator *rhs)
 {
-  unsigned int lnum, rnum;
-
-  lnum = btrace_call_number (lhs);
-  rnum = btrace_call_number (rhs);
-
-  return (int) (lnum - rnum);
+  gdb_assert (lhs->btinfo == rhs->btinfo);
+  return (int) (lhs->index - rhs->index);
 }
 
 /* See btrace.h.  */
@@ -2689,26 +2752,14 @@ btrace_find_call_by_number (struct btrac
 			    const struct btrace_thread_info *btinfo,
 			    unsigned int number)
 {
-  const struct btrace_function *bfun;
-
-  for (bfun = btinfo->end; bfun != NULL; bfun = bfun->flow.prev)
-    {
-      unsigned int bnum;
+  const unsigned int length = btinfo->functions.size ();
 
-      bnum = bfun->number;
-      if (number == bnum)
-	{
-	  it->btinfo = btinfo;
-	  it->function = bfun;
-	  return 1;
-	}
-
-      /* Functions are ordered and numbered consecutively.  We could bail out
-	 earlier.  On the other hand, it is very unlikely that we search for
-	 a nonexistent function.  */
-  }
+  if ((number == 0) || (number > length))
+    return 0;
 
-  return 0;
+  it->btinfo = btinfo;
+  it->index = number - 1;
+  return 1;
 }
 
 /* See btrace.h.  */
@@ -2759,7 +2810,7 @@ btrace_is_empty (struct thread_info *tp)
 
   btinfo = &tp->btrace;
 
-  if (btinfo->begin == NULL)
+  if (btinfo->functions.empty ())
     return 1;
 
   btrace_insn_begin (&begin, btinfo);
@@ -2968,7 +3019,6 @@ btrace_maint_decode_pt (struct btrace_ma
 static void
 btrace_maint_update_pt_packets (struct btrace_thread_info *btinfo)
 {
-  volatile struct gdb_exception except;
   struct pt_packet_decoder *decoder;
   struct btrace_data_pt *pt;
   struct pt_config config;
@@ -3127,9 +3177,10 @@ btrace_maint_print_packets (struct btrac
 /* Read a number from an argument string.  */
 
 static unsigned int
-get_uint (char **arg)
+get_uint (const char **arg)
 {
-  char *begin, *end, *pos;
+  const char *begin, *pos;
+  char *end;
   unsigned long number;
 
   begin = *arg;
@@ -3150,23 +3201,23 @@ get_uint (char **arg)
 /* Read a context size from an argument string.  */
 
 static int
-get_context_size (char **arg)
+get_context_size (const char **arg)
 {
-  char *pos;
-  int number;
-
-  pos = skip_spaces (*arg);
+  const char *pos = skip_spaces (*arg);
 
   if (!isdigit (*pos))
     error (_("Expected positive number, got: %s."), pos);
 
-  return strtol (pos, arg, 10);
+  char *end;
+  long result = strtol (pos, &end, 10);
+  *arg = end;
+  return result;
 }
 
 /* Complain about junk at the end of an argument string.  */
 
 static void
-no_chunk (char *arg)
+no_chunk (const char *arg)
 {
   if (*arg != 0)
     error (_("Junk after argument: %s."), arg);
@@ -3175,7 +3226,7 @@ no_chunk (char *arg)
 /* The "maintenance btrace packet-history" command.  */
 
 static void
-maint_btrace_packet_history_cmd (char *arg, int from_tty)
+maint_btrace_packet_history_cmd (const char *arg, int from_tty)
 {
   struct btrace_thread_info *btinfo;
   struct thread_info *tp;
@@ -3280,7 +3331,7 @@ maint_btrace_packet_history_cmd (char *a
 /* The "maintenance btrace clear-packet-history" command.  */
 
 static void
-maint_btrace_clear_packet_history_cmd (char *args, int from_tty)
+maint_btrace_clear_packet_history_cmd (const char *args, int from_tty)
 {
   struct btrace_thread_info *btinfo;
   struct thread_info *tp;
@@ -3302,9 +3353,8 @@ maint_btrace_clear_packet_history_cmd (c
 /* The "maintenance btrace clear" command.  */
 
 static void
-maint_btrace_clear_cmd (char *args, int from_tty)
+maint_btrace_clear_cmd (const char *args, int from_tty)
 {
-  struct btrace_thread_info *btinfo;
   struct thread_info *tp;
 
   if (args != NULL && *args != 0)
@@ -3320,7 +3370,7 @@ maint_btrace_clear_cmd (char *args, int 
 /* The "maintenance btrace" command.  */
 
 static void
-maint_btrace_cmd (char *args, int from_tty)
+maint_btrace_cmd (const char *args, int from_tty)
 {
   help_list (maint_btrace_cmdlist, "maintenance btrace ", all_commands,
 	     gdb_stdout);
@@ -3329,7 +3379,7 @@ maint_btrace_cmd (char *args, int from_t
 /* The "maintenance set btrace" command.  */
 
 static void
-maint_btrace_set_cmd (char *args, int from_tty)
+maint_btrace_set_cmd (const char *args, int from_tty)
 {
   help_list (maint_btrace_set_cmdlist, "maintenance set btrace ", all_commands,
 	     gdb_stdout);
@@ -3338,7 +3388,7 @@ maint_btrace_set_cmd (char *args, int fr
 /* The "maintenance show btrace" command.  */
 
 static void
-maint_btrace_show_cmd (char *args, int from_tty)
+maint_btrace_show_cmd (const char *args, int from_tty)
 {
   help_list (maint_btrace_show_cmdlist, "maintenance show btrace ",
 	     all_commands, gdb_stdout);
@@ -3347,7 +3397,7 @@ maint_btrace_show_cmd (char *args, int f
 /* The "maintenance set btrace pt" command.  */
 
 static void
-maint_btrace_pt_set_cmd (char *args, int from_tty)
+maint_btrace_pt_set_cmd (const char *args, int from_tty)
 {
   help_list (maint_btrace_pt_set_cmdlist, "maintenance set btrace pt ",
 	     all_commands, gdb_stdout);
@@ -3356,7 +3406,7 @@ maint_btrace_pt_set_cmd (char *args, int
 /* The "maintenance show btrace pt" command.  */
 
 static void
-maint_btrace_pt_show_cmd (char *args, int from_tty)
+maint_btrace_pt_show_cmd (const char *args, int from_tty)
 {
   help_list (maint_btrace_pt_show_cmdlist, "maintenance show btrace pt ",
 	     all_commands, gdb_stdout);
@@ -3365,7 +3415,7 @@ maint_btrace_pt_show_cmd (char *args, in
 /* The "maintenance info btrace" command.  */
 
 static void
-maint_info_btrace_cmd (char *args, int from_tty)
+maint_info_btrace_cmd (const char *args, int from_tty)
 {
   struct btrace_thread_info *btinfo;
   struct thread_info *tp;
@@ -3431,7 +3481,6 @@ show_maint_btrace_pt_skip_pad  (struct u
 
 /* Initialize btrace maintenance commands.  */
 
-void _initialize_btrace (void);
 void
 _initialize_btrace (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/btrace.h ./gdb/btrace.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/btrace.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/btrace.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Branch trace support for GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>.
 
@@ -34,6 +34,8 @@
 #  include <intel-pt.h>
 #endif
 
+#include <vector>
+
 struct thread_info;
 struct btrace_function;
 
@@ -79,17 +81,6 @@ struct btrace_insn
   btrace_insn_flags flags;
 };
 
-/* A vector of branch trace instructions.  */
-typedef struct btrace_insn btrace_insn_s;
-DEF_VEC_O (btrace_insn_s);
-
-/* A doubly-linked list of branch trace function segments.  */
-struct btrace_func_link
-{
-  struct btrace_function *prev;
-  struct btrace_function *next;
-};
-
 /* Flags for btrace function segments.  */
 enum btrace_function_flag
 {
@@ -140,29 +131,37 @@ enum btrace_pt_error
    We do not allow function segments without instructions otherwise.  */
 struct btrace_function
 {
+  btrace_function (struct minimal_symbol *msym_, struct symbol *sym_,
+		   unsigned int number_, unsigned int insn_offset_, int level_)
+    : msym (msym_), sym (sym_), insn_offset (insn_offset_), number (number_),
+      level (level_)
+  {
+  }
+
   /* The full and minimal symbol for the function.  Both may be NULL.  */
   struct minimal_symbol *msym;
   struct symbol *sym;
 
-  /* The previous and next segment belonging to the same function.
-     If a function calls another function, the former will have at least
-     two segments: one before the call and another after the return.  */
-  struct btrace_func_link segment;
-
-  /* The previous and next function in control flow order.  */
-  struct btrace_func_link flow;
-
-  /* The directly preceding function segment in a (fake) call stack.  */
-  struct btrace_function *up;
+  /* The function segment numbers of the previous and next segment belonging to
+     the same function.  If a function calls another function, the former will
+     have at least two segments: one before the call and another after the
+     return.  Will be zero if there is no such function segment.  */
+  unsigned int prev = 0;
+  unsigned int next = 0;
+
+  /* The function segment number of the directly preceding function segment in
+     a (fake) call stack.  Will be zero if there is no such function segment in
+     the record.  */
+  unsigned int up = 0;
 
   /* The instructions in this function segment.
      The instruction vector will be empty if the function segment
      represents a decode error.  */
-  VEC (btrace_insn_s) *insn;
+  std::vector<btrace_insn> insn;
 
   /* The error code of a decode error that led to a gap.
      Must be zero unless INSN is empty; non-zero otherwise.  */
-  int errcode;
+  int errcode = 0;
 
   /* The instruction number offset for the first instruction in this
      function segment.
@@ -170,7 +169,7 @@ struct btrace_function
      segment in control-flow order.  */
   unsigned int insn_offset;
 
-  /* The function number in control-flow order.
+  /* The 1-based function number in control-flow order.
      If INSN is empty indicating a gap in the trace due to a decode error,
      we still count the gap as a function.  */
   unsigned int number;
@@ -184,21 +183,20 @@ struct btrace_function
   int level;
 
   /* A bit-vector of btrace_function_flag.  */
-  btrace_function_flags flags;
+  btrace_function_flags flags = 0;
 };
 
-typedef struct btrace_function *btrace_fun_p;
-DEF_VEC_P (btrace_fun_p);
-
 /* A branch trace instruction iterator.  */
 struct btrace_insn_iterator
 {
-  /* The branch trace function segment containing the instruction.
-     Will never be NULL.  */
-  const struct btrace_function *function;
+  /* The branch trace information for this thread.  Will never be NULL.  */
+  const struct btrace_thread_info *btinfo;
+
+  /* The index of the function segment in BTINFO->FUNCTIONS.  */
+  unsigned int call_index;
 
   /* The index into the function segment's instruction vector.  */
-  unsigned int index;
+  unsigned int insn_index;
 };
 
 /* A branch trace function call iterator.  */
@@ -207,9 +205,8 @@ struct btrace_call_iterator
   /* The branch trace information for this thread.  Will never be NULL.  */
   const struct btrace_thread_info *btinfo;
 
-  /* The branch trace function segment.
-     This will be NULL for the iterator pointing to the end of the trace.  */
-  const struct btrace_function *function;
+  /* The index of the function segment in BTINFO->FUNCTIONS.  */
+  unsigned int index;
 };
 
 /* Branch trace iteration state for "record instruction-history".  */
@@ -331,18 +328,10 @@ struct btrace_thread_info
   /* The raw branch trace data for the below branch trace.  */
   struct btrace_data data;
 
-  /* The current branch trace for this thread (both inclusive).
-
-     The last instruction of END is the current instruction, which is not
-     part of the execution history.
-     Both will be NULL if there is no branch trace available.  If there is
-     branch trace available, both will be non-NULL.  */
-  struct btrace_function *begin;
-  struct btrace_function *end;
-
-  /* Vector of pointer to decoded function segments.  These are in execution
-     order with the first element == BEGIN and the last element == END.  */
-  VEC (btrace_fun_p) *functions;
+  /* Vector of decoded function segments in execution flow order.
+     Note that the numbering for btrace function segments starts with 1, so
+     function segment i will be at index (i - 1).  */
+  std::vector<btrace_function> functions;
 
   /* The function level offset.  When added to each function's LEVEL,
      this normalizes the function levels such that the smallest level
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/build-id.c ./gdb/build-id.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/build-id.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/build-id.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* build-id-related functions.
 
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -112,6 +112,9 @@ build_id_to_debug_bfd (size_t build_id_l
 	s += sprintf (s, "%02x", (unsigned) *data++);
       strcpy (s, ".debug");
 
+      if (separate_debug_file_debug)
+	printf_unfiltered (_("  Trying %s\n"), link);
+
       /* lrealpath() is expensive even for the usually non-existent files.  */
       if (access (link, F_OK) == 0)
 	filename = lrealpath (link);
@@ -147,6 +150,10 @@ find_separate_debug_file_by_buildid (str
   build_id = build_id_bfd_get (objfile->obfd);
   if (build_id != NULL)
     {
+      if (separate_debug_file_debug)
+	printf_unfiltered (_("\nLooking for separate debug info (build-id) for "
+			     "%s\n"), objfile_name (objfile));
+
       gdb_bfd_ref_ptr abfd (build_id_to_debug_bfd (build_id->size,
 						   build_id->data));
       /* Prevent looping on a stripped .debug file.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/build-id.h ./gdb/build-id.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/build-id.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/build-id.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* build-id-related functions.
 
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/buildsym.c ./gdb/buildsym.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/buildsym.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/buildsym.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support routines for building symbol tables in GDB's internal format.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -26,11 +26,10 @@
    The basic way this module is used is as follows:
 
    buildsym_init ();
-   cleanups = make_cleanup (really_free_pendings, NULL);
+   scoped_free_pendings free_pending;
    cust = start_symtab (...);
    ... read debug info ...
    cust = end_symtab (...);
-   do_cleanups (cleanups);
 
    The compunit symtab pointer ("cust") is returned from both start_symtab
    and end_symtab to simplify the debug info readers.
@@ -42,31 +41,28 @@
    Reading DWARF Type Units is another variation:
 
    buildsym_init ();
-   cleanups = make_cleanup (really_free_pendings, NULL);
+   scoped_free_pendings free_pending;
    cust = start_symtab (...);
    ... read debug info ...
    cust = end_expandable_symtab (...);
-   do_cleanups (cleanups);
 
    And then reading subsequent Type Units within the containing "Comp Unit"
    will use a second flow:
 
    buildsym_init ();
-   cleanups = make_cleanup (really_free_pendings, NULL);
+   scoped_free_pendings free_pending;
    cust = restart_symtab (...);
    ... read debug info ...
    cust = augment_type_symtab (...);
-   do_cleanups (cleanups);
 
    dbxread.c and xcoffread.c use another variation:
 
    buildsym_init ();
-   cleanups = make_cleanup (really_free_pendings, NULL);
+   scoped_free_pendings free_pending;
    cust = start_symtab (...);
    ... read debug info ...
    cust = end_symtab (...);
    ... start_symtab + read + end_symtab repeated ...
-   do_cleanups (cleanups);
 */
 
 #include "defs.h"
@@ -86,6 +82,7 @@
 #include "cp-support.h"
 #include "dictionary.h"
 #include "addrmap.h"
+#include <algorithm>
 
 /* Ask buildsym.h to define the vars it normally declares `extern'.  */
 #define	EXTERN
@@ -128,6 +125,9 @@ struct buildsym_compunit
 
   /* The compunit we are building.  */
   struct compunit_symtab *compunit_symtab;
+
+  /* Language of this compunit_symtab.  */
+  enum language language;
 };
 
 /* The work-in-progress of the compunit we are building.
@@ -268,15 +268,13 @@ find_symbol_in_list (struct pending *lis
   return (NULL);
 }
 
-/* At end of reading syms, or in case of quit, ensure everything associated
-   with building symtabs is freed.  This is intended to be registered as a
-   cleanup before doing psymtab->symtab expansion.
+/* At end of reading syms, or in case of quit, ensure everything
+   associated with building symtabs is freed.
 
    N.B. This is *not* intended to be used when building psymtabs.  Some debug
    info readers call this anyway, which is harmless if confusing.  */
 
-void
-really_free_pendings (void *dummy)
+scoped_free_pendings::~scoped_free_pendings ()
 {
   struct pending *next, *next1;
 
@@ -351,20 +349,23 @@ finish_block_internal (struct symbol *sy
 
   if (symbol)
     {
-      BLOCK_DICT (block) = dict_create_linear (&objfile->objfile_obstack,
-					       *listhead);
+      BLOCK_DICT (block)
+	= dict_create_linear (&objfile->objfile_obstack,
+			      buildsym_compunit->language, *listhead);
     }
   else
     {
       if (expandable)
 	{
-	  BLOCK_DICT (block) = dict_create_hashed_expandable ();
+	  BLOCK_DICT (block)
+	    = dict_create_hashed_expandable (buildsym_compunit->language);
 	  dict_add_pending (BLOCK_DICT (block), *listhead);
 	}
       else
 	{
 	  BLOCK_DICT (block) =
-	    dict_create_hashed (&objfile->objfile_obstack, *listhead);
+	    dict_create_hashed (&objfile->objfile_obstack,
+				buildsym_compunit->language, *listhead);
 	}
     }
 
@@ -768,7 +769,8 @@ start_subfile (const char *name)
    (or NULL if not known).  */
 
 static struct buildsym_compunit *
-start_buildsym_compunit (struct objfile *objfile, const char *comp_dir)
+start_buildsym_compunit (struct objfile *objfile, const char *comp_dir,
+			 enum language language)
 {
   struct buildsym_compunit *bscu;
 
@@ -777,6 +779,7 @@ start_buildsym_compunit (struct objfile 
 
   bscu->objfile = objfile;
   bscu->comp_dir = (comp_dir == NULL) ? NULL : xstrdup (comp_dir);
+  bscu->language = language;
 
   /* Initialize the debug format string to NULL.  We may supply it
      later via a call to record_debugformat.  */
@@ -1027,7 +1030,7 @@ prepare_for_building (const char *name, 
   context_stack_depth = 0;
 
   /* These should have been reset either by successful completion of building
-     a symtab, or by the really_free_pendings cleanup.  */
+     a symtab, or by the scoped_free_pendings destructor.  */
   gdb_assert (file_symbols == NULL);
   gdb_assert (global_symbols == NULL);
   gdb_assert (global_using_directives == NULL);
@@ -1041,17 +1044,20 @@ prepare_for_building (const char *name, 
    TAG_compile_unit DIE is seen.  It indicates the start of data for
    one original source file.
 
-   NAME is the name of the file (cannot be NULL).  COMP_DIR is the directory in
-   which the file was compiled (or NULL if not known).  START_ADDR is the
-   lowest address of objects in the file (or 0 if not known).  */
+   NAME is the name of the file (cannot be NULL).  COMP_DIR is the
+   directory in which the file was compiled (or NULL if not known).
+   START_ADDR is the lowest address of objects in the file (or 0 if
+   not known).  LANGUAGE is the language of the source file, or
+   language_unknown if not known, in which case it'll be deduced from
+   the filename.  */
 
 struct compunit_symtab *
 start_symtab (struct objfile *objfile, const char *name, const char *comp_dir,
-	      CORE_ADDR start_addr)
+	      CORE_ADDR start_addr, enum language language)
 {
   prepare_for_building (name, start_addr);
 
-  buildsym_compunit = start_buildsym_compunit (objfile, comp_dir);
+  buildsym_compunit = start_buildsym_compunit (objfile, comp_dir, language);
 
   /* Allocate the compunit symtab now.  The caller needs it to allocate
      non-primary symtabs.  It is also needed by get_macro_table.  */
@@ -1088,7 +1094,8 @@ restart_symtab (struct compunit_symtab *
   prepare_for_building (name, start_addr);
 
   buildsym_compunit = start_buildsym_compunit (COMPUNIT_OBJFILE (cust),
-					       COMPUNIT_DIRNAME (cust));
+					       COMPUNIT_DIRNAME (cust),
+					       compunit_language (cust));
   buildsym_compunit->compunit_symtab = cust;
 }
 
@@ -1165,23 +1172,10 @@ watch_main_source_file_lossage (void)
     }
 }
 
-/* Helper function for qsort.  Parameters are `struct block *' pointers,
-   function sorts them in descending order by their BLOCK_START.  */
-
-static int
-block_compar (const void *ap, const void *bp)
-{
-  const struct block *a = *(const struct block **) ap;
-  const struct block *b = *(const struct block **) bp;
-
-  return ((BLOCK_START (b) > BLOCK_START (a))
-	  - (BLOCK_START (b) < BLOCK_START (a)));
-}
-
 /* Reset state after a successful building of a symtab.
    This exists because dbxread.c and xcoffread.c can call
    start_symtab+end_symtab multiple times after one call to buildsym_init,
-   and before the really_free_pendings cleanup is called.
+   and before the scoped_free_pendings destructor is called.
    We keep the free_pendings list around for dbx/xcoff sake.  */
 
 static void
@@ -1254,28 +1248,25 @@ end_symtab_get_static_block (CORE_ADDR e
 
   if ((objfile->flags & OBJF_REORDERED) && pending_blocks)
     {
-      unsigned count = 0;
       struct pending_block *pb;
-      struct block **barray, **bp;
-      struct cleanup *back_to;
 
-      for (pb = pending_blocks; pb != NULL; pb = pb->next)
-	count++;
+      std::vector<block *> barray;
 
-      barray = XNEWVEC (struct block *, count);
-      back_to = make_cleanup (xfree, barray);
-
-      bp = barray;
       for (pb = pending_blocks; pb != NULL; pb = pb->next)
-	*bp++ = pb->block;
+	barray.push_back (pb->block);
 
-      qsort (barray, count, sizeof (*barray), block_compar);
+      /* Sort blocks by start address in descending order.  Blocks with the
+	 same start address must remain in the original order to preserve
+	 inline function caller/callee relationships.  */
+      std::stable_sort (barray.begin (), barray.end (),
+			[] (const block *a, const block *b)
+			{
+			  return BLOCK_START (a) > BLOCK_START (b);
+			});
 
-      bp = barray;
+      int i = 0;
       for (pb = pending_blocks; pb != NULL; pb = pb->next)
-	pb->block = *bp++;
-
-      do_cleanups (back_to);
+	pb->block = barray[i++];
     }
 
   /* Cleanup any undefined types that have been left hanging around
@@ -1768,7 +1759,7 @@ buildsym_init (void)
       context_stack = XNEWVEC (struct context_stack, context_stack_size);
     }
 
-  /* Ensure the really_free_pendings cleanup was called after
+  /* Ensure the scoped_free_pendings destructor was called after
      the last time.  */
   gdb_assert (free_pendings == NULL);
   gdb_assert (pending_blocks == NULL);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/buildsym.h ./gdb/buildsym.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/buildsym.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/buildsym.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Build symbol tables in GDB's internal format.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -23,6 +23,7 @@ struct objfile;
 struct symbol;
 struct addrmap;
 struct compunit_symtab;
+enum language;
 
 /* This module provides definitions used for creating and adding to
    the symbol table.  These routines are called from various symbol-
@@ -212,7 +213,15 @@ extern struct block *finish_block (struc
 extern void record_block_range (struct block *,
                                 CORE_ADDR start, CORE_ADDR end_inclusive);
 
-extern void really_free_pendings (void *dummy);
+class scoped_free_pendings
+{
+public:
+
+  scoped_free_pendings () = default;
+  ~scoped_free_pendings ();
+
+  DISABLE_COPY_AND_ASSIGN (scoped_free_pendings);
+};
 
 extern void start_subfile (const char *name);
 
@@ -254,7 +263,8 @@ extern record_line_ftype record_line;
 extern struct compunit_symtab *start_symtab (struct objfile *objfile,
 					     const char *name,
 					     const char *comp_dir,
-					     CORE_ADDR start_addr);
+					     CORE_ADDR start_addr,
+					     enum language language);
 
 extern void restart_symtab (struct compunit_symtab *cust,
 			    const char *name, CORE_ADDR start_addr);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/c-exp.c ./gdb/c-exp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/c-exp.c	2018-01-02 02:06:29.000000000 +0000
+++ ./gdb/c-exp.c	2018-01-09 02:08:06.000000000 +0000
@@ -84,7 +84,6 @@
 #include "charset.h"
 #include "block.h"
 #include "cp-support.h"
-#include "dfp.h"
 #include "macroscope.h"
 #include "objc-lang.h"
 #include "typeprint.h"
@@ -113,7 +112,7 @@ static int type_aggregate_p (struct type
 
 
 /* Line 189 of yacc.c  */
-#line 117 "c-exp.c"
+#line 116 "c-exp.c"
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
@@ -142,133 +141,131 @@ static int type_aggregate_p (struct type
    enum yytokentype {
      INT = 258,
      FLOAT = 259,
-     DECFLOAT = 260,
-     STRING = 261,
-     NSSTRING = 262,
-     SELECTOR = 263,
-     CHAR = 264,
-     NAME = 265,
-     UNKNOWN_CPP_NAME = 266,
-     COMPLETE = 267,
-     TYPENAME = 268,
-     CLASSNAME = 269,
-     OBJC_LBRAC = 270,
-     NAME_OR_INT = 271,
-     OPERATOR = 272,
-     STRUCT = 273,
-     CLASS = 274,
-     UNION = 275,
-     ENUM = 276,
-     SIZEOF = 277,
-     UNSIGNED = 278,
-     COLONCOLON = 279,
-     TEMPLATE = 280,
-     ERROR = 281,
-     NEW = 282,
-     DELETE = 283,
-     REINTERPRET_CAST = 284,
-     DYNAMIC_CAST = 285,
-     STATIC_CAST = 286,
-     CONST_CAST = 287,
-     ENTRY = 288,
-     TYPEOF = 289,
-     DECLTYPE = 290,
-     TYPEID = 291,
-     SIGNED_KEYWORD = 292,
-     LONG = 293,
-     SHORT = 294,
-     INT_KEYWORD = 295,
-     CONST_KEYWORD = 296,
-     VOLATILE_KEYWORD = 297,
-     DOUBLE_KEYWORD = 298,
-     VARIABLE = 299,
-     ASSIGN_MODIFY = 300,
-     TRUEKEYWORD = 301,
-     FALSEKEYWORD = 302,
-     ABOVE_COMMA = 303,
-     OROR = 304,
-     ANDAND = 305,
-     NOTEQUAL = 306,
-     EQUAL = 307,
-     GEQ = 308,
-     LEQ = 309,
-     RSH = 310,
-     LSH = 311,
-     DECREMENT = 312,
-     INCREMENT = 313,
-     UNARY = 314,
-     DOT_STAR = 315,
-     ARROW_STAR = 316,
-     ARROW = 317,
-     BLOCKNAME = 318,
-     FILENAME = 319,
-     DOTDOTDOT = 320
+     STRING = 260,
+     NSSTRING = 261,
+     SELECTOR = 262,
+     CHAR = 263,
+     NAME = 264,
+     UNKNOWN_CPP_NAME = 265,
+     COMPLETE = 266,
+     TYPENAME = 267,
+     CLASSNAME = 268,
+     OBJC_LBRAC = 269,
+     NAME_OR_INT = 270,
+     OPERATOR = 271,
+     STRUCT = 272,
+     CLASS = 273,
+     UNION = 274,
+     ENUM = 275,
+     SIZEOF = 276,
+     UNSIGNED = 277,
+     COLONCOLON = 278,
+     TEMPLATE = 279,
+     ERROR = 280,
+     NEW = 281,
+     DELETE = 282,
+     REINTERPRET_CAST = 283,
+     DYNAMIC_CAST = 284,
+     STATIC_CAST = 285,
+     CONST_CAST = 286,
+     ENTRY = 287,
+     TYPEOF = 288,
+     DECLTYPE = 289,
+     TYPEID = 290,
+     SIGNED_KEYWORD = 291,
+     LONG = 292,
+     SHORT = 293,
+     INT_KEYWORD = 294,
+     CONST_KEYWORD = 295,
+     VOLATILE_KEYWORD = 296,
+     DOUBLE_KEYWORD = 297,
+     VARIABLE = 298,
+     ASSIGN_MODIFY = 299,
+     TRUEKEYWORD = 300,
+     FALSEKEYWORD = 301,
+     ABOVE_COMMA = 302,
+     OROR = 303,
+     ANDAND = 304,
+     NOTEQUAL = 305,
+     EQUAL = 306,
+     GEQ = 307,
+     LEQ = 308,
+     RSH = 309,
+     LSH = 310,
+     DECREMENT = 311,
+     INCREMENT = 312,
+     UNARY = 313,
+     DOT_STAR = 314,
+     ARROW_STAR = 315,
+     ARROW = 316,
+     BLOCKNAME = 317,
+     FILENAME = 318,
+     DOTDOTDOT = 319
    };
 #endif
 /* Tokens.  */
 #define INT 258
 #define FLOAT 259
-#define DECFLOAT 260
-#define STRING 261
-#define NSSTRING 262
-#define SELECTOR 263
-#define CHAR 264
-#define NAME 265
-#define UNKNOWN_CPP_NAME 266
-#define COMPLETE 267
-#define TYPENAME 268
-#define CLASSNAME 269
-#define OBJC_LBRAC 270
-#define NAME_OR_INT 271
-#define OPERATOR 272
-#define STRUCT 273
-#define CLASS 274
-#define UNION 275
-#define ENUM 276
-#define SIZEOF 277
-#define UNSIGNED 278
-#define COLONCOLON 279
-#define TEMPLATE 280
-#define ERROR 281
-#define NEW 282
-#define DELETE 283
-#define REINTERPRET_CAST 284
-#define DYNAMIC_CAST 285
-#define STATIC_CAST 286
-#define CONST_CAST 287
-#define ENTRY 288
-#define TYPEOF 289
-#define DECLTYPE 290
-#define TYPEID 291
-#define SIGNED_KEYWORD 292
-#define LONG 293
-#define SHORT 294
-#define INT_KEYWORD 295
-#define CONST_KEYWORD 296
-#define VOLATILE_KEYWORD 297
-#define DOUBLE_KEYWORD 298
-#define VARIABLE 299
-#define ASSIGN_MODIFY 300
-#define TRUEKEYWORD 301
-#define FALSEKEYWORD 302
-#define ABOVE_COMMA 303
-#define OROR 304
-#define ANDAND 305
-#define NOTEQUAL 306
-#define EQUAL 307
-#define GEQ 308
-#define LEQ 309
-#define RSH 310
-#define LSH 311
-#define DECREMENT 312
-#define INCREMENT 313
-#define UNARY 314
-#define DOT_STAR 315
-#define ARROW_STAR 316
-#define ARROW 317
-#define BLOCKNAME 318
-#define FILENAME 319
-#define DOTDOTDOT 320
+#define STRING 260
+#define NSSTRING 261
+#define SELECTOR 262
+#define CHAR 263
+#define NAME 264
+#define UNKNOWN_CPP_NAME 265
+#define COMPLETE 266
+#define TYPENAME 267
+#define CLASSNAME 268
+#define OBJC_LBRAC 269
+#define NAME_OR_INT 270
+#define OPERATOR 271
+#define STRUCT 272
+#define CLASS 273
+#define UNION 274
+#define ENUM 275
+#define SIZEOF 276
+#define UNSIGNED 277
+#define COLONCOLON 278
+#define TEMPLATE 279
+#define ERROR 280
+#define NEW 281
+#define DELETE 282
+#define REINTERPRET_CAST 283
+#define DYNAMIC_CAST 284
+#define STATIC_CAST 285
+#define CONST_CAST 286
+#define ENTRY 287
+#define TYPEOF 288
+#define DECLTYPE 289
+#define TYPEID 290
+#define SIGNED_KEYWORD 291
+#define LONG 292
+#define SHORT 293
+#define INT_KEYWORD 294
+#define CONST_KEYWORD 295
+#define VOLATILE_KEYWORD 296
+#define DOUBLE_KEYWORD 297
+#define VARIABLE 298
+#define ASSIGN_MODIFY 299
+#define TRUEKEYWORD 300
+#define FALSEKEYWORD 301
+#define ABOVE_COMMA 302
+#define OROR 303
+#define ANDAND 304
+#define NOTEQUAL 305
+#define EQUAL 306
+#define GEQ 307
+#define LEQ 308
+#define RSH 309
+#define LSH 310
+#define DECREMENT 311
+#define INCREMENT 312
+#define UNARY 313
+#define DOT_STAR 314
+#define ARROW_STAR 315
+#define ARROW 316
+#define BLOCKNAME 317
+#define FILENAME 318
+#define DOTDOTDOT 319
 
 
 
@@ -278,7 +275,7 @@ typedef union YYSTYPE
 {
 
 /* Line 214 of yacc.c  */
-#line 84 "c-exp.y"
+#line 83 "c-exp.y"
 
     LONGEST lval;
     struct {
@@ -286,13 +283,9 @@ typedef union YYSTYPE
       struct type *type;
     } typed_val_int;
     struct {
-      DOUBLEST dval;
-      struct type *type;
-    } typed_val_float;
-    struct {
       gdb_byte val[16];
       struct type *type;
-    } typed_val_decfloat;
+    } typed_val_float;
     struct type *tval;
     struct stoken sval;
     struct typed_stoken tsval;
@@ -312,7 +305,7 @@ typedef union YYSTYPE
 
 
 /* Line 214 of yacc.c  */
-#line 316 "c-exp.c"
+#line 309 "c-exp.c"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -323,7 +316,7 @@ typedef union YYSTYPE
 /* Copy the second part of user declarations.  */
 
 /* Line 264 of yacc.c  */
-#line 115 "c-exp.y"
+#line 110 "c-exp.y"
 
 /* YYSTYPE gets defined by %union */
 static int parse_number (struct parser_state *par_state,
@@ -340,7 +333,7 @@ static void c_print_token (FILE *file, i
 
 
 /* Line 264 of yacc.c  */
-#line 344 "c-exp.c"
+#line 337 "c-exp.c"
 
 #ifdef short
 # undef short
@@ -552,22 +545,22 @@ union yyalloc
 #endif
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  167
+#define YYFINAL  169
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1736
+#define YYLAST   1725
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  90
+#define YYNTOKENS  89
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  46
+#define YYNNTS  49
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  262
+#define YYNRULES  267
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  415
+#define YYNSTATES  421
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   320
+#define YYMAXUTOK   319
 
 #define YYTRANSLATE(YYX)						\
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -578,16 +571,16 @@ static const yytype_uint8 yytranslate[] 
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,    84,     2,     2,     2,    70,    56,     2,
-      76,    83,    68,    66,    48,    67,    74,    69,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,    87,     2,
-      59,    50,    60,    51,    65,     2,     2,     2,     2,     2,
+       2,     2,     2,    83,     2,     2,     2,    69,    55,     2,
+      75,    82,    67,    65,    47,    66,    73,    68,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,    86,     2,
+      58,    49,    59,    50,    64,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,    75,     2,    86,    55,     2,     2,     2,     2,     2,
+       2,    74,     2,    85,    54,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,    88,    54,    89,    85,     2,     2,     2,
+       2,     2,     2,    87,    53,    88,    84,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -605,9 +598,8 @@ static const yytype_uint8 yytranslate[] 
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    49,    52,    53,    57,    58,    61,    62,
-      63,    64,    71,    72,    73,    77,    78,    79,    80,    81,
-      82
+      45,    46,    48,    51,    52,    56,    57,    60,    61,    62,
+      63,    70,    71,    72,    76,    77,    78,    79,    80,    81
 };
 
 #if YYDEBUG
@@ -620,152 +612,154 @@ static const yytype_uint16 yyprhs[] =
       60,    65,    70,    73,    77,    82,    86,    91,    97,   101,
      105,   109,   114,   118,   123,   129,   133,   137,   142,   147,
      148,   154,   155,   161,   162,   168,   170,   172,   174,   177,
-     181,   184,   187,   188,   194,   195,   201,   203,   204,   206,
-     210,   216,   218,   222,   227,   232,   236,   240,   244,   248,
-     252,   256,   260,   264,   268,   272,   276,   280,   284,   288,
-     292,   296,   300,   304,   308,   312,   318,   322,   326,   328,
-     330,   332,   334,   336,   338,   340,   345,   350,   358,   366,
-     374,   382,   384,   387,   389,   391,   393,   395,   397,   399,
-     403,   406,   410,   414,   419,   425,   427,   430,   432,   435,
-     437,   438,   442,   444,   446,   448,   449,   450,   455,   456,
-     460,   462,   465,   467,   470,   472,   475,   477,   479,   483,
-     486,   488,   491,   493,   496,   499,   503,   507,   510,   514,
-     516,   518,   520,   522,   524,   527,   531,   534,   538,   542,
-     546,   549,   552,   556,   561,   565,   569,   574,   578,   583,
-     587,   592,   595,   599,   602,   606,   609,   613,   615,   618,
-     621,   624,   628,   631,   634,   638,   641,   644,   648,   651,
-     654,   658,   661,   663,   666,   668,   674,   677,   680,   682,
-     684,   686,   688,   690,   694,   696,   700,   702,   705,   708,
-     709,   712,   715,   718,   720,   722,   724,   727,   730,   735,
-     740,   745,   750,   753,   756,   759,   762,   765,   768,   771,
-     774,   777,   780,   783,   786,   789,   792,   795,   798,   801,
-     804,   807,   810,   813,   816,   819,   822,   825,   828,   831,
-     835,   839,   843,   846,   848,   850,   852,   854,   856,   858,
-     860,   862,   864
+     181,   184,   187,   188,   194,   198,   199,   205,   207,   208,
+     210,   214,   220,   225,   227,   229,   231,   235,   237,   241,
+     246,   251,   255,   259,   263,   267,   271,   275,   279,   283,
+     287,   291,   295,   299,   303,   307,   311,   315,   319,   323,
+     327,   331,   337,   341,   345,   347,   349,   351,   353,   355,
+     357,   362,   367,   375,   383,   391,   399,   401,   404,   406,
+     408,   410,   412,   414,   416,   420,   423,   427,   431,   436,
+     442,   444,   447,   449,   452,   454,   455,   459,   461,   463,
+     465,   466,   467,   472,   473,   477,   479,   482,   484,   487,
+     489,   492,   494,   496,   500,   503,   505,   508,   510,   513,
+     516,   520,   524,   527,   531,   533,   535,   537,   539,   541,
+     544,   548,   551,   555,   559,   563,   566,   569,   573,   578,
+     582,   586,   591,   595,   600,   604,   609,   612,   616,   619,
+     623,   626,   630,   632,   635,   638,   641,   645,   648,   651,
+     655,   658,   661,   665,   668,   671,   675,   678,   680,   683,
+     685,   691,   694,   697,   699,   701,   703,   705,   707,   711,
+     713,   717,   719,   722,   725,   726,   729,   732,   735,   737,
+     739,   741,   744,   747,   752,   757,   762,   767,   770,   773,
+     776,   779,   782,   785,   788,   791,   794,   797,   800,   803,
+     806,   809,   812,   815,   818,   821,   824,   827,   830,   833,
+     836,   839,   842,   845,   848,   852,   856,   860,   863,   865,
+     867,   869,   871,   873,   875,   877,   879,   881
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-      91,     0,    -1,    93,    -1,    92,    -1,   123,    -1,    34,
-      76,    94,    83,    -1,    34,    76,   123,    83,    -1,    35,
-      76,    94,    83,    -1,    94,    -1,    93,    48,    94,    -1,
-      68,    94,    -1,    56,    94,    -1,    67,    94,    -1,    66,
-      94,    -1,    84,    94,    -1,    85,    94,    -1,    72,    94,
-      -1,    71,    94,    -1,    94,    72,    -1,    94,    71,    -1,
-      36,    76,    94,    83,    -1,    36,    76,    92,    83,    -1,
-      22,    94,    -1,    94,    79,   134,    -1,    94,    79,   134,
-      12,    -1,    94,    79,    12,    -1,    94,    79,    85,   134,
-      -1,    94,    79,    85,   134,    12,    -1,    94,    79,   109,
-      -1,    94,    78,    94,    -1,    94,    74,   134,    -1,    94,
-      74,   134,    12,    -1,    94,    74,    12,    -1,    94,    74,
-      85,   134,    -1,    94,    74,    85,   134,    12,    -1,    94,
-      74,   109,    -1,    94,    77,    94,    -1,    94,    75,    93,
-      86,    -1,    94,    15,    93,    86,    -1,    -1,    15,    13,
-      95,    98,    86,    -1,    -1,    15,    14,    96,    98,    86,
-      -1,    -1,    15,    94,    97,    98,    86,    -1,   134,    -1,
-      99,    -1,   100,    -1,    99,   100,    -1,   134,    87,    94,
-      -1,    87,    94,    -1,    48,    94,    -1,    -1,    94,    76,
-     101,   104,    83,    -1,    -1,    11,    76,   102,   104,    83,
-      -1,    88,    -1,    -1,    94,    -1,   104,    48,    94,    -1,
-      94,    76,   126,    83,   111,    -1,    89,    -1,   103,   104,
-     105,    -1,   103,    92,   105,    94,    -1,    76,    92,    83,
-      94,    -1,    76,    93,    83,    -1,    94,    65,    94,    -1,
-      94,    68,    94,    -1,    94,    69,    94,    -1,    94,    70,
-      94,    -1,    94,    66,    94,    -1,    94,    67,    94,    -1,
-      94,    64,    94,    -1,    94,    63,    94,    -1,    94,    58,
-      94,    -1,    94,    57,    94,    -1,    94,    62,    94,    -1,
-      94,    61,    94,    -1,    94,    59,    94,    -1,    94,    60,
-      94,    -1,    94,    56,    94,    -1,    94,    55,    94,    -1,
-      94,    54,    94,    -1,    94,    53,    94,    -1,    94,    52,
-      94,    -1,    94,    51,    94,    87,    94,    -1,    94,    50,
-      94,    -1,    94,    45,    94,    -1,     3,    -1,     9,    -1,
-      16,    -1,     4,    -1,     5,    -1,   108,    -1,    44,    -1,
-       8,    76,   134,    83,    -1,    22,    76,   123,    83,    -1,
-      29,    59,    92,    60,    76,    94,    83,    -1,    31,    59,
-      92,    60,    76,    94,    83,    -1,    30,    59,    92,    60,
-      76,    94,    83,    -1,    32,    59,    92,    60,    76,    94,
-      83,    -1,     6,    -1,   106,     6,    -1,   106,    -1,     7,
-      -1,    46,    -1,    47,    -1,    80,    -1,    81,    -1,   107,
-      24,   134,    -1,   135,    33,    -1,   107,    24,   134,    -1,
-      13,    24,   134,    -1,    13,    24,    85,   134,    -1,    13,
-      24,   134,    24,   134,    -1,   109,    -1,    24,   135,    -1,
-     135,    -1,    65,    10,    -1,   132,    -1,    -1,   111,   110,
-     111,    -1,   112,    -1,   132,    -1,   113,    -1,    -1,    -1,
-     115,    68,   116,   114,    -1,    -1,    68,   117,   114,    -1,
-      56,    -1,    56,   115,    -1,    53,    -1,    53,   115,    -1,
-     115,    -1,   118,   120,    -1,   118,    -1,   120,    -1,    76,
-     119,    83,    -1,   120,   121,    -1,   121,    -1,   120,   122,
-      -1,   122,    -1,    75,    86,    -1,    15,    86,    -1,    75,
-       3,    86,    -1,    15,     3,    86,    -1,    76,    83,    -1,
-      76,   126,    83,    -1,   128,    -1,    13,    -1,    40,    -1,
-      38,    -1,    39,    -1,    38,    40,    -1,    38,    37,    40,
-      -1,    38,    37,    -1,    37,    38,    40,    -1,    23,    38,
-      40,    -1,    38,    23,    40,    -1,    38,    23,    -1,    38,
-      38,    -1,    38,    38,    40,    -1,    38,    38,    37,    40,
-      -1,    38,    38,    37,    -1,    37,    38,    38,    -1,    37,
-      38,    38,    40,    -1,    23,    38,    38,    -1,    23,    38,
-      38,    40,    -1,    38,    38,    23,    -1,    38,    38,    23,
-      40,    -1,    39,    40,    -1,    39,    37,    40,    -1,    39,
-      37,    -1,    23,    39,    40,    -1,    39,    23,    -1,    39,
-      23,    40,    -1,    43,    -1,    38,    43,    -1,    18,   134,
-      -1,    18,    12,    -1,    18,   134,    12,    -1,    19,   134,
-      -1,    19,    12,    -1,    19,   134,    12,    -1,    20,   134,
-      -1,    20,    12,    -1,    20,   134,    12,    -1,    21,   134,
-      -1,    21,    12,    -1,    21,   134,    12,    -1,    23,   125,
-      -1,    23,    -1,    37,   125,    -1,    37,    -1,    25,   134,
-      59,   123,    60,    -1,   113,   124,    -1,   124,   113,    -1,
-      13,    -1,    40,    -1,    38,    -1,    39,    -1,   127,    -1,
-     127,    48,    82,    -1,   123,    -1,   127,    48,   123,    -1,
-     124,    -1,   128,   119,    -1,   124,   130,    -1,    -1,   115,
-     130,    -1,    41,    42,    -1,    42,    41,    -1,   131,    -1,
-      41,    -1,    42,    -1,    17,    27,    -1,    17,    28,    -1,
-      17,    27,    75,    86,    -1,    17,    28,    75,    86,    -1,
-      17,    27,    15,    86,    -1,    17,    28,    15,    86,    -1,
-      17,    66,    -1,    17,    67,    -1,    17,    68,    -1,    17,
-      69,    -1,    17,    70,    -1,    17,    55,    -1,    17,    56,
-      -1,    17,    54,    -1,    17,    85,    -1,    17,    84,    -1,
-      17,    50,    -1,    17,    59,    -1,    17,    60,    -1,    17,
-      45,    -1,    17,    64,    -1,    17,    63,    -1,    17,    58,
-      -1,    17,    57,    -1,    17,    62,    -1,    17,    61,    -1,
-      17,    53,    -1,    17,    52,    -1,    17,    72,    -1,    17,
-      71,    -1,    17,    48,    -1,    17,    78,    -1,    17,    79,
-      -1,    17,    76,    83,    -1,    17,    75,    86,    -1,    17,
-      15,    86,    -1,    17,   129,    -1,    10,    -1,    80,    -1,
-      13,    -1,    16,    -1,    11,    -1,   133,    -1,    10,    -1,
-      80,    -1,   133,    -1,    11,    -1
+      90,     0,    -1,    92,    -1,    91,    -1,   125,    -1,    33,
+      75,    93,    82,    -1,    33,    75,   125,    82,    -1,    34,
+      75,    93,    82,    -1,    93,    -1,    92,    47,    93,    -1,
+      67,    93,    -1,    55,    93,    -1,    66,    93,    -1,    65,
+      93,    -1,    83,    93,    -1,    84,    93,    -1,    71,    93,
+      -1,    70,    93,    -1,    93,    71,    -1,    93,    70,    -1,
+      35,    75,    93,    82,    -1,    35,    75,    91,    82,    -1,
+      21,    93,    -1,    93,    78,   136,    -1,    93,    78,   136,
+      11,    -1,    93,    78,    11,    -1,    93,    78,    84,   136,
+      -1,    93,    78,    84,   136,    11,    -1,    93,    78,   111,
+      -1,    93,    77,    93,    -1,    93,    73,   136,    -1,    93,
+      73,   136,    11,    -1,    93,    73,    11,    -1,    93,    73,
+      84,   136,    -1,    93,    73,    84,   136,    11,    -1,    93,
+      73,   111,    -1,    93,    76,    93,    -1,    93,    74,    92,
+      85,    -1,    93,    14,    92,    85,    -1,    -1,    14,    12,
+      94,    97,    85,    -1,    -1,    14,    13,    95,    97,    85,
+      -1,    -1,    14,    93,    96,    97,    85,    -1,   136,    -1,
+      98,    -1,    99,    -1,    98,    99,    -1,   136,    86,    93,
+      -1,    86,    93,    -1,    47,    93,    -1,    -1,    93,    75,
+     100,   103,    82,    -1,    93,    75,    82,    -1,    -1,    10,
+      75,   101,   103,    82,    -1,    87,    -1,    -1,    93,    -1,
+     103,    47,    93,    -1,    93,    75,   128,    82,   113,    -1,
+      93,    75,    82,   113,    -1,   104,    -1,   104,    -1,   105,
+      -1,   106,    23,   136,    -1,    88,    -1,   102,   103,   107,
+      -1,   102,    91,   107,    93,    -1,    75,    91,    82,    93,
+      -1,    75,    92,    82,    -1,    93,    64,    93,    -1,    93,
+      67,    93,    -1,    93,    68,    93,    -1,    93,    69,    93,
+      -1,    93,    65,    93,    -1,    93,    66,    93,    -1,    93,
+      63,    93,    -1,    93,    62,    93,    -1,    93,    57,    93,
+      -1,    93,    56,    93,    -1,    93,    61,    93,    -1,    93,
+      60,    93,    -1,    93,    58,    93,    -1,    93,    59,    93,
+      -1,    93,    55,    93,    -1,    93,    54,    93,    -1,    93,
+      53,    93,    -1,    93,    52,    93,    -1,    93,    51,    93,
+      -1,    93,    50,    93,    86,    93,    -1,    93,    49,    93,
+      -1,    93,    44,    93,    -1,     3,    -1,     8,    -1,    15,
+      -1,     4,    -1,   110,    -1,    43,    -1,     7,    75,   136,
+      82,    -1,    21,    75,   125,    82,    -1,    28,    58,    91,
+      59,    75,    93,    82,    -1,    30,    58,    91,    59,    75,
+      93,    82,    -1,    29,    58,    91,    59,    75,    93,    82,
+      -1,    31,    58,    91,    59,    75,    93,    82,    -1,     5,
+      -1,   108,     5,    -1,   108,    -1,     6,    -1,    45,    -1,
+      46,    -1,    79,    -1,    80,    -1,   109,    23,   136,    -1,
+     137,    32,    -1,   109,    23,   136,    -1,    12,    23,   136,
+      -1,    12,    23,    84,   136,    -1,    12,    23,   136,    23,
+     136,    -1,   111,    -1,    23,   137,    -1,   137,    -1,    64,
+       9,    -1,   134,    -1,    -1,   113,   112,   113,    -1,   114,
+      -1,   134,    -1,   115,    -1,    -1,    -1,   117,    67,   118,
+     116,    -1,    -1,    67,   119,   116,    -1,    55,    -1,    55,
+     117,    -1,    52,    -1,    52,   117,    -1,   117,    -1,   120,
+     122,    -1,   120,    -1,   122,    -1,    75,   121,    82,    -1,
+     122,   123,    -1,   123,    -1,   122,   124,    -1,   124,    -1,
+      74,    85,    -1,    14,    85,    -1,    74,     3,    85,    -1,
+      14,     3,    85,    -1,    75,    82,    -1,    75,   128,    82,
+      -1,   130,    -1,    12,    -1,    39,    -1,    37,    -1,    38,
+      -1,    37,    39,    -1,    37,    36,    39,    -1,    37,    36,
+      -1,    36,    37,    39,    -1,    22,    37,    39,    -1,    37,
+      22,    39,    -1,    37,    22,    -1,    37,    37,    -1,    37,
+      37,    39,    -1,    37,    37,    36,    39,    -1,    37,    37,
+      36,    -1,    36,    37,    37,    -1,    36,    37,    37,    39,
+      -1,    22,    37,    37,    -1,    22,    37,    37,    39,    -1,
+      37,    37,    22,    -1,    37,    37,    22,    39,    -1,    38,
+      39,    -1,    38,    36,    39,    -1,    38,    36,    -1,    22,
+      38,    39,    -1,    38,    22,    -1,    38,    22,    39,    -1,
+      42,    -1,    37,    42,    -1,    17,   136,    -1,    17,    11,
+      -1,    17,   136,    11,    -1,    18,   136,    -1,    18,    11,
+      -1,    18,   136,    11,    -1,    19,   136,    -1,    19,    11,
+      -1,    19,   136,    11,    -1,    20,   136,    -1,    20,    11,
+      -1,    20,   136,    11,    -1,    22,   127,    -1,    22,    -1,
+      36,   127,    -1,    36,    -1,    24,   136,    58,   125,    59,
+      -1,   115,   126,    -1,   126,   115,    -1,    12,    -1,    39,
+      -1,    37,    -1,    38,    -1,   129,    -1,   129,    47,    81,
+      -1,   125,    -1,   129,    47,   125,    -1,   126,    -1,   130,
+     121,    -1,   126,   132,    -1,    -1,   117,   132,    -1,    40,
+      41,    -1,    41,    40,    -1,   133,    -1,    40,    -1,    41,
+      -1,    16,    26,    -1,    16,    27,    -1,    16,    26,    74,
+      85,    -1,    16,    27,    74,    85,    -1,    16,    26,    14,
+      85,    -1,    16,    27,    14,    85,    -1,    16,    65,    -1,
+      16,    66,    -1,    16,    67,    -1,    16,    68,    -1,    16,
+      69,    -1,    16,    54,    -1,    16,    55,    -1,    16,    53,
+      -1,    16,    84,    -1,    16,    83,    -1,    16,    49,    -1,
+      16,    58,    -1,    16,    59,    -1,    16,    44,    -1,    16,
+      63,    -1,    16,    62,    -1,    16,    57,    -1,    16,    56,
+      -1,    16,    61,    -1,    16,    60,    -1,    16,    52,    -1,
+      16,    51,    -1,    16,    71,    -1,    16,    70,    -1,    16,
+      47,    -1,    16,    77,    -1,    16,    78,    -1,    16,    75,
+      82,    -1,    16,    74,    85,    -1,    16,    14,    85,    -1,
+      16,   131,    -1,     9,    -1,    79,    -1,    12,    -1,    15,
+      -1,    10,    -1,   135,    -1,     9,    -1,    79,    -1,   135,
+      -1,    10,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   233,   233,   234,   237,   241,   245,   251,   258,   259,
-     264,   268,   272,   276,   280,   284,   288,   292,   296,   300,
-     304,   308,   312,   316,   322,   329,   339,   345,   352,   360,
-     364,   370,   377,   387,   393,   400,   408,   412,   416,   426,
-     425,   449,   448,   465,   464,   473,   475,   478,   479,   482,
-     484,   486,   493,   490,   502,   501,   527,   531,   534,   538,
-     542,   560,   563,   570,   574,   578,   584,   588,   592,   596,
-     600,   604,   608,   612,   616,   620,   624,   628,   632,   636,
-     640,   644,   648,   652,   656,   660,   664,   668,   675,   682,
-     691,   704,   711,   718,   721,   727,   734,   754,   759,   763,
-     767,   774,   791,   809,   842,   851,   859,   869,   877,   883,
-     894,   909,   931,   944,   968,   977,   978,  1006,  1057,  1061,
-    1062,  1065,  1068,  1069,  1073,  1074,  1079,  1078,  1082,  1081,
-    1084,  1086,  1088,  1090,  1094,  1103,  1105,  1106,  1109,  1111,
-    1118,  1125,  1131,  1138,  1140,  1142,  1144,  1148,  1150,  1162,
-    1166,  1168,  1172,  1176,  1180,  1184,  1188,  1192,  1196,  1200,
-    1204,  1208,  1212,  1216,  1220,  1224,  1228,  1232,  1236,  1240,
-    1244,  1248,  1252,  1256,  1260,  1264,  1268,  1272,  1278,  1284,
-    1287,  1292,  1298,  1301,  1306,  1312,  1315,  1320,  1326,  1329,
-    1334,  1340,  1344,  1348,  1352,  1359,  1363,  1365,  1369,  1370,
-    1378,  1386,  1397,  1399,  1408,  1414,  1421,  1422,  1429,  1433,
-    1434,  1437,  1438,  1441,  1445,  1447,  1451,  1453,  1455,  1457,
-    1459,  1461,  1463,  1465,  1467,  1469,  1471,  1473,  1475,  1477,
-    1479,  1481,  1483,  1485,  1487,  1489,  1529,  1531,  1533,  1535,
-    1537,  1539,  1541,  1543,  1545,  1547,  1549,  1551,  1553,  1555,
-    1557,  1559,  1561,  1572,  1573,  1574,  1575,  1576,  1577,  1580,
-    1581,  1589,  1601
+       0,   227,   227,   228,   231,   235,   239,   245,   252,   253,
+     258,   262,   266,   270,   274,   278,   282,   286,   290,   294,
+     298,   302,   306,   310,   316,   323,   333,   339,   346,   354,
+     358,   364,   371,   381,   387,   394,   402,   406,   410,   420,
+     419,   443,   442,   459,   458,   467,   469,   472,   473,   476,
+     478,   480,   487,   484,   498,   508,   507,   533,   537,   540,
+     544,   548,   571,   582,   589,   590,   593,   601,   604,   611,
+     615,   619,   625,   629,   633,   637,   641,   645,   649,   653,
+     657,   661,   665,   669,   673,   677,   681,   685,   689,   693,
+     697,   701,   705,   709,   716,   723,   732,   745,   752,   755,
+     761,   768,   788,   793,   797,   801,   808,   825,   843,   876,
+     885,   893,   903,   911,   917,   928,   943,   965,   978,  1002,
+    1011,  1012,  1040,  1111,  1115,  1116,  1119,  1122,  1123,  1127,
+    1128,  1133,  1132,  1136,  1135,  1138,  1140,  1142,  1144,  1148,
+    1157,  1159,  1160,  1163,  1165,  1172,  1179,  1185,  1192,  1194,
+    1196,  1198,  1202,  1204,  1216,  1220,  1222,  1226,  1230,  1234,
+    1238,  1242,  1246,  1250,  1254,  1258,  1262,  1266,  1270,  1274,
+    1278,  1282,  1286,  1290,  1294,  1298,  1302,  1306,  1310,  1314,
+    1318,  1322,  1326,  1332,  1338,  1341,  1346,  1352,  1355,  1360,
+    1366,  1369,  1374,  1380,  1383,  1388,  1394,  1398,  1402,  1406,
+    1413,  1417,  1419,  1423,  1424,  1432,  1440,  1451,  1453,  1462,
+    1468,  1475,  1476,  1483,  1487,  1488,  1491,  1492,  1495,  1499,
+    1501,  1505,  1507,  1509,  1511,  1513,  1515,  1517,  1519,  1521,
+    1523,  1525,  1527,  1529,  1531,  1533,  1535,  1537,  1539,  1541,
+    1543,  1583,  1585,  1587,  1589,  1591,  1593,  1595,  1597,  1599,
+    1601,  1603,  1605,  1607,  1609,  1611,  1613,  1615,  1632,  1633,
+    1634,  1635,  1636,  1637,  1640,  1641,  1649,  1661
 };
 #endif
 
@@ -774,22 +768,23 @@ static const yytype_uint16 yyrline[] =
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
 {
-  "$end", "error", "$undefined", "INT", "FLOAT", "DECFLOAT", "STRING",
-  "NSSTRING", "SELECTOR", "CHAR", "NAME", "UNKNOWN_CPP_NAME", "COMPLETE",
-  "TYPENAME", "CLASSNAME", "OBJC_LBRAC", "NAME_OR_INT", "OPERATOR",
-  "STRUCT", "CLASS", "UNION", "ENUM", "SIZEOF", "UNSIGNED", "COLONCOLON",
-  "TEMPLATE", "ERROR", "NEW", "DELETE", "REINTERPRET_CAST", "DYNAMIC_CAST",
-  "STATIC_CAST", "CONST_CAST", "ENTRY", "TYPEOF", "DECLTYPE", "TYPEID",
-  "SIGNED_KEYWORD", "LONG", "SHORT", "INT_KEYWORD", "CONST_KEYWORD",
-  "VOLATILE_KEYWORD", "DOUBLE_KEYWORD", "VARIABLE", "ASSIGN_MODIFY",
-  "TRUEKEYWORD", "FALSEKEYWORD", "','", "ABOVE_COMMA", "'='", "'?'",
-  "OROR", "ANDAND", "'|'", "'^'", "'&'", "NOTEQUAL", "EQUAL", "'<'", "'>'",
-  "GEQ", "LEQ", "RSH", "LSH", "'@'", "'+'", "'-'", "'*'", "'/'", "'%'",
-  "DECREMENT", "INCREMENT", "UNARY", "'.'", "'['", "'('", "DOT_STAR",
-  "ARROW_STAR", "ARROW", "BLOCKNAME", "FILENAME", "DOTDOTDOT", "')'",
-  "'!'", "'~'", "']'", "':'", "'{'", "'}'", "$accept", "start", "type_exp",
-  "exp1", "exp", "$@1", "$@2", "$@3", "msglist", "msgarglist", "msgarg",
-  "$@4", "$@5", "lcurly", "arglist", "rcurly", "string_exp", "block",
+  "$end", "error", "$undefined", "INT", "FLOAT", "STRING", "NSSTRING",
+  "SELECTOR", "CHAR", "NAME", "UNKNOWN_CPP_NAME", "COMPLETE", "TYPENAME",
+  "CLASSNAME", "OBJC_LBRAC", "NAME_OR_INT", "OPERATOR", "STRUCT", "CLASS",
+  "UNION", "ENUM", "SIZEOF", "UNSIGNED", "COLONCOLON", "TEMPLATE", "ERROR",
+  "NEW", "DELETE", "REINTERPRET_CAST", "DYNAMIC_CAST", "STATIC_CAST",
+  "CONST_CAST", "ENTRY", "TYPEOF", "DECLTYPE", "TYPEID", "SIGNED_KEYWORD",
+  "LONG", "SHORT", "INT_KEYWORD", "CONST_KEYWORD", "VOLATILE_KEYWORD",
+  "DOUBLE_KEYWORD", "VARIABLE", "ASSIGN_MODIFY", "TRUEKEYWORD",
+  "FALSEKEYWORD", "','", "ABOVE_COMMA", "'='", "'?'", "OROR", "ANDAND",
+  "'|'", "'^'", "'&'", "NOTEQUAL", "EQUAL", "'<'", "'>'", "GEQ", "LEQ",
+  "RSH", "LSH", "'@'", "'+'", "'-'", "'*'", "'/'", "'%'", "DECREMENT",
+  "INCREMENT", "UNARY", "'.'", "'['", "'('", "DOT_STAR", "ARROW_STAR",
+  "ARROW", "BLOCKNAME", "FILENAME", "DOTDOTDOT", "')'", "'!'", "'~'",
+  "']'", "':'", "'{'", "'}'", "$accept", "start", "type_exp", "exp1",
+  "exp", "$@1", "$@2", "$@3", "msglist", "msgarglist", "msgarg", "$@4",
+  "$@5", "lcurly", "arglist", "function_method", "function_method_void",
+  "function_method_void_or_typelist", "rcurly", "string_exp", "block",
   "variable", "qualified_name", "space_identifier", "const_or_volatile",
   "cv_with_space_id", "const_or_volatile_or_space_identifier_noopt",
   "const_or_volatile_or_space_identifier", "ptr_operator", "$@6", "$@7",
@@ -810,44 +805,44 @@ static const yytype_uint16 yytoknum[] =
      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,   300,   301,   302,    44,   303,
-      61,    63,   304,   305,   124,    94,    38,   306,   307,    60,
-      62,   308,   309,   310,   311,    64,    43,    45,    42,    47,
-      37,   312,   313,   314,    46,    91,    40,   315,   316,   317,
-     318,   319,   320,    41,    33,   126,    93,    58,   123,   125
+     295,   296,   297,   298,   299,   300,   301,    44,   302,    61,
+      63,   303,   304,   124,    94,    38,   305,   306,    60,    62,
+     307,   308,   309,   310,    64,    43,    45,    42,    47,    37,
+     311,   312,   313,    46,    91,    40,   314,   315,   316,   317,
+     318,   319,    41,    33,   126,    93,    58,   123,   125
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,    90,    91,    91,    92,    92,    92,    92,    93,    93,
-      94,    94,    94,    94,    94,    94,    94,    94,    94,    94,
-      94,    94,    94,    94,    94,    94,    94,    94,    94,    94,
-      94,    94,    94,    94,    94,    94,    94,    94,    94,    95,
-      94,    96,    94,    97,    94,    98,    98,    99,    99,   100,
-     100,   100,   101,    94,   102,    94,   103,   104,   104,   104,
-      94,   105,    94,    94,    94,    94,    94,    94,    94,    94,
-      94,    94,    94,    94,    94,    94,    94,    94,    94,    94,
-      94,    94,    94,    94,    94,    94,    94,    94,    94,    94,
-      94,    94,    94,    94,    94,    94,    94,    94,    94,    94,
-      94,   106,   106,    94,    94,    94,    94,   107,   107,   107,
-     108,   108,   109,   109,   109,   108,   108,   108,   110,   111,
-     111,   112,   113,   113,   114,   114,   116,   115,   117,   115,
-     115,   115,   115,   115,   118,   119,   119,   119,   120,   120,
-     120,   120,   120,   121,   121,   121,   121,   122,   122,   123,
-     124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
-     124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
-     124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
-     124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
-     124,   124,   124,   124,   124,   124,   124,   124,   125,   125,
-     125,   125,   126,   126,   127,   127,   128,   128,   129,   130,
-     130,   131,   131,   132,   132,   132,   133,   133,   133,   133,
-     133,   133,   133,   133,   133,   133,   133,   133,   133,   133,
-     133,   133,   133,   133,   133,   133,   133,   133,   133,   133,
-     133,   133,   133,   133,   133,   133,   133,   133,   133,   133,
-     133,   133,   133,   134,   134,   134,   134,   134,   134,   135,
-     135,   135,   135
+       0,    89,    90,    90,    91,    91,    91,    91,    92,    92,
+      93,    93,    93,    93,    93,    93,    93,    93,    93,    93,
+      93,    93,    93,    93,    93,    93,    93,    93,    93,    93,
+      93,    93,    93,    93,    93,    93,    93,    93,    93,    94,
+      93,    95,    93,    96,    93,    97,    97,    98,    98,    99,
+      99,    99,   100,    93,    93,   101,    93,   102,   103,   103,
+     103,   104,   105,    93,   106,   106,    93,   107,    93,    93,
+      93,    93,    93,    93,    93,    93,    93,    93,    93,    93,
+      93,    93,    93,    93,    93,    93,    93,    93,    93,    93,
+      93,    93,    93,    93,    93,    93,    93,    93,    93,    93,
+      93,    93,    93,    93,    93,    93,   108,   108,    93,    93,
+      93,    93,   109,   109,   109,   110,   110,   111,   111,   111,
+     110,   110,   110,   112,   113,   113,   114,   115,   115,   116,
+     116,   118,   117,   119,   117,   117,   117,   117,   117,   120,
+     121,   121,   121,   122,   122,   122,   122,   122,   123,   123,
+     123,   123,   124,   124,   125,   126,   126,   126,   126,   126,
+     126,   126,   126,   126,   126,   126,   126,   126,   126,   126,
+     126,   126,   126,   126,   126,   126,   126,   126,   126,   126,
+     126,   126,   126,   126,   126,   126,   126,   126,   126,   126,
+     126,   126,   126,   126,   126,   126,   126,   126,   126,   126,
+     126,   126,   126,   127,   127,   127,   127,   128,   128,   129,
+     129,   130,   130,   131,   132,   132,   133,   133,   134,   134,
+     134,   135,   135,   135,   135,   135,   135,   135,   135,   135,
+     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
+     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
+     135,   135,   135,   135,   135,   135,   135,   135,   136,   136,
+     136,   136,   136,   136,   137,   137,   137,   137
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -858,28 +853,28 @@ static const yytype_uint8 yyr2[] =
        4,     4,     2,     3,     4,     3,     4,     5,     3,     3,
        3,     4,     3,     4,     5,     3,     3,     4,     4,     0,
        5,     0,     5,     0,     5,     1,     1,     1,     2,     3,
-       2,     2,     0,     5,     0,     5,     1,     0,     1,     3,
-       5,     1,     3,     4,     4,     3,     3,     3,     3,     3,
+       2,     2,     0,     5,     3,     0,     5,     1,     0,     1,
+       3,     5,     4,     1,     1,     1,     3,     1,     3,     4,
+       4,     3,     3,     3,     3,     3,     3,     3,     3,     3,
        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     5,     3,     3,     1,     1,
-       1,     1,     1,     1,     1,     4,     4,     7,     7,     7,
-       7,     1,     2,     1,     1,     1,     1,     1,     1,     3,
-       2,     3,     3,     4,     5,     1,     2,     1,     2,     1,
-       0,     3,     1,     1,     1,     0,     0,     4,     0,     3,
-       1,     2,     1,     2,     1,     2,     1,     1,     3,     2,
-       1,     2,     1,     2,     2,     3,     3,     2,     3,     1,
-       1,     1,     1,     1,     2,     3,     2,     3,     3,     3,
-       2,     2,     3,     4,     3,     3,     4,     3,     4,     3,
-       4,     2,     3,     2,     3,     2,     3,     1,     2,     2,
-       2,     3,     2,     2,     3,     2,     2,     3,     2,     2,
-       3,     2,     1,     2,     1,     5,     2,     2,     1,     1,
-       1,     1,     1,     3,     1,     3,     1,     2,     2,     0,
-       2,     2,     2,     1,     1,     1,     2,     2,     4,     4,
-       4,     4,     2,     2,     2,     2,     2,     2,     2,     2,
+       3,     5,     3,     3,     1,     1,     1,     1,     1,     1,
+       4,     4,     7,     7,     7,     7,     1,     2,     1,     1,
+       1,     1,     1,     1,     3,     2,     3,     3,     4,     5,
+       1,     2,     1,     2,     1,     0,     3,     1,     1,     1,
+       0,     0,     4,     0,     3,     1,     2,     1,     2,     1,
+       2,     1,     1,     3,     2,     1,     2,     1,     2,     2,
+       3,     3,     2,     3,     1,     1,     1,     1,     1,     2,
+       3,     2,     3,     3,     3,     2,     2,     3,     4,     3,
+       3,     4,     3,     4,     3,     4,     2,     3,     2,     3,
+       2,     3,     1,     2,     2,     2,     3,     2,     2,     3,
+       2,     2,     3,     2,     2,     3,     2,     1,     2,     1,
+       5,     2,     2,     1,     1,     1,     1,     1,     3,     1,
+       3,     1,     2,     2,     0,     2,     2,     2,     1,     1,
+       1,     2,     2,     4,     4,     4,     4,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     3,
-       3,     3,     2,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1
+       2,     2,     2,     2,     3,     3,     3,     2,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -887,526 +882,527 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-     120,    88,    91,    92,   101,   104,     0,    89,   259,   262,
-     150,     0,    90,   120,     0,     0,     0,     0,     0,   192,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   194,
-     152,   153,   151,   214,   215,   177,    94,   105,   106,     0,
-       0,     0,     0,     0,     0,   120,   260,   108,     0,     0,
-      56,     0,     3,     2,     8,    57,   103,     0,    93,   115,
-       0,   122,   120,     4,   206,   149,   213,   123,   261,   117,
-       0,    54,     0,    39,    41,    43,   150,     0,   216,   217,
-     235,   246,   232,   243,   242,   229,   227,   228,   239,   238,
-     233,   234,   241,   240,   237,   236,   222,   223,   224,   225,
-     226,   245,   244,     0,     0,   247,   248,   231,   230,   209,
-     252,   253,   257,   180,   255,   256,   254,   258,   179,   183,
-     182,   186,   185,   189,   188,     0,   120,    22,   198,   200,
-     201,   199,   191,   262,   260,   116,     0,   120,   120,   120,
-     120,   120,     0,   120,   200,   201,   193,   160,   156,   161,
-     154,   178,   175,   173,   171,   211,   212,    11,    13,    12,
-      10,    17,    16,     0,     0,    14,    15,     1,     0,     0,
+     125,    94,    97,   106,   109,     0,    95,   264,   267,   155,
+       0,    96,   125,     0,     0,     0,     0,     0,   197,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   199,   157,
+     158,   156,   219,   220,   182,    99,   110,   111,     0,     0,
+       0,     0,     0,     0,   125,   265,   113,     0,     0,    57,
+       0,     3,     2,     8,    58,    63,    65,     0,   108,     0,
+      98,   120,     0,   127,   125,     4,   211,   154,   218,   128,
+     266,   122,     0,    55,     0,    39,    41,    43,   155,     0,
+     221,   222,   240,   251,   237,   248,   247,   234,   232,   233,
+     244,   243,   238,   239,   246,   245,   242,   241,   227,   228,
+     229,   230,   231,   250,   249,     0,     0,   252,   253,   236,
+     235,   214,   257,   258,   262,   185,   260,   261,   259,   263,
+     184,   188,   187,   191,   190,   194,   193,     0,   125,    22,
+     203,   205,   206,   204,   196,   267,   265,   121,     0,   125,
+     125,   125,   125,   125,     0,   125,   205,   206,   198,   165,
+     161,   166,   159,   183,   180,   178,   176,   216,   217,    11,
+      13,    12,    10,    17,    16,     0,     0,    14,    15,     1,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    19,    18,     0,     0,    52,     0,     0,     0,
-       0,    58,     0,   102,     0,     0,   120,   196,   197,     0,
-     132,   130,   128,     0,   120,   134,   136,   207,   137,   140,
-     142,   110,     0,    57,     0,   112,     0,     0,     0,   251,
-       0,     0,     0,     0,   250,   249,   209,   208,   181,   184,
-     187,   190,     0,   167,   158,   174,   120,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   165,   157,   159,   155,
-     169,   164,   162,   176,   172,     0,    65,     9,     0,    87,
-      86,     0,    84,    83,    82,    81,    80,    75,    74,    78,
-      79,    77,    76,    73,    72,    66,    70,    71,    67,    68,
-      69,    32,   255,     0,    35,    30,     0,    57,   204,     0,
-     202,    36,    29,    25,     0,    28,    23,    61,     0,     0,
-      62,   111,   118,   121,   119,     0,   144,   133,   131,   125,
-       0,   143,   147,     0,     0,   126,   135,   120,   139,   141,
-      95,     0,   113,     0,     0,     0,     0,    46,    47,    45,
-       0,     0,   220,   218,   221,   219,   126,   210,    96,   168,
-       0,     0,     0,     0,     0,     5,     6,     7,    21,    20,
-     166,   170,   163,    64,    38,     0,    33,    31,    37,     0,
-     120,   120,    26,    24,    63,    59,   146,   124,   129,   145,
-     138,   148,   125,    55,   114,    51,    50,    40,    48,     0,
-       0,    42,    44,   195,     0,     0,     0,     0,    85,    34,
-      53,    60,   203,   205,    27,   127,    49,     0,     0,     0,
-       0,    97,    99,    98,   100
+       0,     0,     0,     0,    19,    18,     0,     0,    52,     0,
+       0,     0,     0,    59,     0,     0,   107,     0,     0,   125,
+     201,   202,     0,   137,   135,   133,     0,   125,   139,   141,
+     212,   142,   145,   147,   115,     0,    58,     0,   117,     0,
+       0,     0,   256,     0,     0,     0,     0,   255,   254,   214,
+     213,   186,   189,   192,   195,     0,   172,   163,   179,   125,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   170,
+     162,   164,   160,   174,   169,   167,   181,   177,     0,    71,
+       9,     0,    93,    92,     0,    90,    89,    88,    87,    86,
+      81,    80,    84,    85,    83,    82,    79,    78,    72,    76,
+      77,    73,    74,    75,    32,   260,     0,    35,    30,     0,
+      54,    58,   209,     0,   207,    36,    29,    25,     0,    28,
+      23,    67,     0,     0,    68,    66,   116,   123,   126,   124,
+       0,   149,   138,   136,   130,     0,   148,   152,     0,     0,
+     131,   140,   125,   144,   146,   100,     0,   118,     0,     0,
+       0,     0,    46,    47,    45,     0,     0,   225,   223,   226,
+     224,   131,   215,   101,   173,     0,     0,     0,     0,     0,
+       5,     6,     7,    21,    20,   171,   175,   168,    70,    38,
+       0,    33,    31,    37,    62,     0,   125,   125,    26,    24,
+      69,    60,   151,   129,   134,   150,   143,   153,   130,    56,
+     119,    51,    50,    40,    48,     0,     0,    42,    44,   200,
+       0,     0,     0,     0,    91,    34,    53,    61,   208,   210,
+      27,   132,    49,     0,     0,     0,     0,   102,   104,   103,
+     105
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    51,   163,   164,    54,   226,   227,   228,   336,   337,
-     338,   297,   223,    55,   202,   308,    56,    57,    58,    59,
-     206,    60,    61,    62,   378,   215,   382,   319,   216,   217,
-     218,   219,   220,    63,    64,   132,   324,   300,    65,   110,
-     237,    66,    67,    68,   339,    69
+      -1,    50,   165,   166,    53,   229,   230,   231,   341,   342,
+     343,   301,   226,    54,   204,    55,    56,    57,   312,    58,
+      59,    60,    61,   209,    62,    63,    64,   384,   218,   388,
+     324,   219,   220,   221,   222,   223,    65,    66,   134,   329,
+     304,    67,   112,   240,    68,    69,    70,   344,    71
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -219
+#define YYPACT_NINF -217
 static const yytype_int16 yypact[] =
 {
-     470,  -219,  -219,  -219,  -219,  -219,   -49,  -219,  -219,   -33,
-      28,   642,  -219,   888,   259,   293,   301,   331,   728,    97,
-      24,    45,     0,     7,    40,    59,    19,    53,    62,   114,
-     191,   195,  -219,   106,   154,  -219,  -219,  -219,  -219,   814,
-     814,   814,   814,   814,   814,   470,   177,  -219,   814,   814,
-    -219,   206,  -219,   172,  1401,   384,   218,   209,  -219,  -219,
-     161,  -219,   748,  -219,   150,   128,  -219,   165,  -219,   208,
-      45,  -219,   200,    28,  -219,  1401,  -219,   163,    30,    34,
-    -219,  -219,  -219,  -219,  -219,  -219,  -219,  -219,  -219,  -219,
-    -219,  -219,  -219,  -219,  -219,  -219,  -219,  -219,  -219,  -219,
-    -219,  -219,  -219,   169,   164,  -219,  -219,  -219,  -219,   548,
-    -219,  -219,  -219,  -219,  -219,  -219,  -219,  -219,   245,  -219,
-     246,  -219,   247,  -219,   248,    28,   470,   456,  -219,   109,
-     221,  -219,  -219,  -219,  -219,  -219,   214,   662,   662,   662,
-     662,   556,   814,   470,   160,  -219,  -219,   234,   237,   202,
-    -219,  -219,   239,   242,  -219,  -219,  -219,   456,   456,   456,
-     456,   456,   456,   201,   -23,   456,   456,  -219,   814,   814,
-     814,   814,   814,   814,   814,   814,   814,   814,   814,   814,
-     814,   814,   814,   814,   814,   814,   814,   814,   814,   814,
-     814,   814,  -219,  -219,    70,   814,  1671,   814,   814,   103,
-     194,  1401,   -26,  -219,    45,   277,   210,   150,  -219,    11,
-     137,   222,  -219,    12,   225,   223,    25,  -219,    27,  -219,
-    -219,  -219,   211,   814,    45,   265,    37,    37,    37,  -219,
-     229,   230,   235,   236,  -219,  -219,   -17,  -219,  -219,  -219,
-    -219,  -219,   212,   252,  -219,  -219,   748,   260,   266,   267,
-     269,   995,   250,  1053,   251,  1111,   285,  -219,  -219,  -219,
-     290,   291,  -219,  -219,  -219,   814,  -219,  1401,    20,  1401,
-    1401,   924,  1459,  1488,  1517,  1546,  1575,  1604,  1604,  1074,
-    1074,  1074,  1074,   367,   367,  1132,   287,   287,   456,   456,
-     456,  -219,    28,    45,  -219,   323,    36,   814,  -219,   254,
-     297,   444,   444,  -219,    45,  -219,   326,  -219,   814,   814,
-    -219,   322,  -219,  -219,  -219,   263,  -219,   223,   223,   150,
-     264,  -219,  -219,   268,   270,  -219,    27,    51,  -219,  -219,
-    -219,    73,  -219,    45,   814,   814,   274,    37,  -219,   280,
-     282,   283,  -219,  -219,  -219,  -219,  -219,  -219,  -219,  -219,
-     292,   294,   295,   296,   298,  -219,  -219,  -219,  -219,  -219,
-    -219,  -219,  -219,   456,  -219,   814,   363,  -219,  -219,    75,
-     210,   994,   364,  -219,   456,  1401,  -219,  -219,  -219,  -219,
-    -219,  -219,   150,  -219,  -219,  1401,  1401,  -219,  -219,   280,
-     814,  -219,  -219,  -219,   814,   814,   814,   814,  1430,  -219,
-    -219,  -219,  -219,  -219,  -219,  -219,  1401,  1169,  1227,  1285,
-    1343,  -219,  -219,  -219,  -219
+     476,  -217,  -217,  -217,  -217,   -48,  -217,  -217,   -25,    56,
+     646,  -217,   890,    50,   143,   269,   305,   731,   101,    25,
+     373,    27,    35,    53,    60,    55,    57,    62,   195,   327,
+     208,  -217,   109,   117,  -217,  -217,  -217,  -217,   816,   816,
+     816,   816,   816,   816,   476,   138,  -217,   816,   816,  -217,
+     187,  -217,   148,  1444,   391,   173,  -217,   175,   194,   181,
+    -217,  -217,   144,  -217,   836,  -217,     8,   276,  -217,   153,
+    -217,   189,   373,  -217,   226,    56,  -217,  1444,  -217,   135,
+      22,    33,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,
+    -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,
+    -217,  -217,  -217,  -217,  -217,   152,   142,  -217,  -217,  -217,
+    -217,  1077,  -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,
+     217,  -217,   228,  -217,   234,  -217,   235,    56,   476,    49,
+    -217,    32,   213,  -217,  -217,  -217,  -217,  -217,   198,   751,
+     751,   751,   751,   561,   816,   476,    61,  -217,  -217,   221,
+     236,   218,  -217,  -217,   237,   238,  -217,  -217,  -217,    49,
+      49,    49,    49,    49,    49,   201,    -2,    49,    49,  -217,
+     816,   816,   816,   816,   816,   816,   816,   816,   816,   816,
+     816,   816,   816,   816,   816,   816,   816,   816,   816,   816,
+     816,   816,   816,   816,  -217,  -217,    72,   816,   231,   816,
+     816,   203,   200,  1444,   -24,   373,  -217,   373,   277,   108,
+       8,  -217,     1,   -12,   222,  -217,     5,   996,   227,     0,
+    -217,    28,  -217,  -217,  -217,   211,   816,   373,   273,    42,
+      42,    42,  -217,   212,   214,   216,   223,  -217,  -217,   139,
+    -217,  -217,  -217,  -217,  -217,   224,   259,  -217,  -217,   836,
+     248,   250,   252,   260,  1038,   240,  1096,   242,  1154,   279,
+    -217,  -217,  -217,   286,   287,  -217,  -217,  -217,   816,  -217,
+    1444,    -8,  1444,  1444,   926,  1502,  1531,  1560,  1589,  1618,
+    1647,  1647,   991,   991,   991,   991,   459,   459,   544,   629,
+     629,    49,    49,    49,  -217,    56,   373,  -217,   316,     6,
+      69,   816,  -217,   251,   285,   188,   188,  -217,   373,  -217,
+     324,  -217,   816,   816,  -217,  -217,   313,  -217,  -217,  -217,
+     254,  -217,   227,   227,     8,   255,  -217,  -217,   262,   263,
+    -217,    28,   335,  -217,  -217,  -217,    26,  -217,   373,   816,
+     816,   256,    42,  -217,   270,   280,   282,  -217,  -217,  -217,
+    -217,  -217,  -217,  -217,  -217,   278,   283,   293,   295,   303,
+    -217,  -217,  -217,  -217,  -217,  -217,  -217,  -217,    49,  -217,
+     816,   350,  -217,  -217,  -217,    54,   108,  1005,   351,  -217,
+      49,  1444,  -217,  -217,  -217,  -217,  -217,  -217,     8,  -217,
+    -217,  1444,  1444,  -217,  -217,   270,   816,  -217,  -217,  -217,
+     816,   816,   816,   816,  1473,  -217,  -217,  -217,  -217,  -217,
+    -217,  -217,  1444,  1212,  1270,  1328,  1386,  -217,  -217,  -217,
+    -217
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -219,  -219,     2,    13,   -11,  -219,  -219,  -219,     9,  -219,
-      41,  -219,  -219,  -219,  -218,   175,  -219,  -219,  -219,   -48,
-    -219,  -185,  -219,   -63,    -2,  -103,  -219,  -219,  -219,   182,
-     196,  -215,  -214,  -118,    64,   369,   233,  -219,  -219,  -219,
-     174,  -219,  -180,    -5,     3,   397
+    -217,  -217,     2,    13,   -10,  -217,  -217,  -217,   -45,  -217,
+      37,  -217,  -217,  -217,  -204,  -217,  -217,  -217,   176,  -217,
+    -217,  -217,  -102,  -217,  -188,  -217,   -65,    -7,  -108,  -217,
+    -217,  -217,   170,   183,  -216,  -215,  -103,     3,   376,   220,
+    -217,  -217,  -217,   177,  -217,  -183,    -4,     4,   404
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -121
+#define YYTABLE_NINF -126
 static const yytype_int16 yytable[] =
 {
-      75,   208,    52,   328,   329,   331,   236,   127,   242,   117,
-     117,   117,   117,    53,   315,   320,   117,   118,   120,   122,
-     124,   313,   309,   252,   136,   168,   314,    70,   157,   158,
-     159,   160,   161,   162,     8,   133,   210,   165,   166,   211,
-     209,    13,   209,    71,   201,   230,   208,   111,   112,   232,
-     114,   346,    72,   115,    13,   111,   112,   200,   114,   137,
-     266,   115,    13,   307,    76,   117,   138,   117,   168,    14,
-      15,    16,    17,   222,    19,   225,    21,   109,   298,   369,
-     111,   112,   291,   292,   168,   334,   115,    13,    29,    30,
-      31,    32,    33,    34,    35,   141,   298,   316,   321,   139,
-     213,   214,   213,   327,   134,   231,   364,   317,   318,   233,
-     128,   328,   329,   111,   112,   303,   292,   116,   140,   115,
-      13,   309,   368,   309,   335,   116,   207,   128,   350,   142,
-     251,   253,   255,   236,   322,   129,   130,   131,   143,   247,
-     248,   249,   250,   209,   208,   254,   294,   243,   155,   244,
-     116,   305,   144,   145,   131,   293,   383,   267,   400,   269,
-     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
+      77,   211,    51,   239,   320,   333,   334,   129,   325,   119,
+     119,   119,   119,    52,   212,   111,   119,   120,   122,   124,
+     126,   318,   336,   313,   138,   245,   319,    72,   159,   160,
+     161,   162,   163,   164,     7,   135,   233,   167,   168,   170,
+     255,    12,   212,   214,   203,   170,   211,   235,    32,    33,
+      73,   113,   114,   170,   116,   215,   202,   117,    12,   113,
+     114,   115,   116,   171,   311,   117,    12,   210,   119,   246,
+     119,   247,  -125,   313,   216,   217,   225,   369,   228,    74,
+     269,   113,   114,   294,   295,   139,   321,   117,    12,   339,
+     326,   373,  -125,   140,   297,   302,   234,   375,   259,   309,
+     260,   313,   216,   332,   136,   322,   323,   236,   389,    32,
+      33,   141,   374,   130,   302,   333,   334,   319,   142,   194,
+     195,   118,   196,   197,   198,   199,   200,   201,   340,   118,
+     143,   239,   144,   254,   256,   258,   406,   145,   131,   132,
+     133,   250,   251,   252,   253,   211,   355,   257,    32,    33,
+     157,   118,   113,   114,   121,   116,   296,   158,   117,    12,
+     270,  -112,   272,   273,   274,   275,   276,   277,   278,   279,
      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
-     290,   210,   268,   116,   211,   401,   301,   302,   304,   117,
-     314,    33,    34,   211,   117,   156,   212,   295,   256,   117,
-     257,  -107,   306,   213,   214,   212,   167,   311,   296,   298,
-     111,   112,   201,   114,   147,  -120,   115,    13,   152,   117,
-     168,   117,   117,   117,   203,   260,   205,   332,   148,   149,
-    -119,   150,   153,   204,   151,   154,   340,   341,    76,   261,
-     209,   221,   262,    14,    15,    16,    17,   235,    19,   229,
-      21,    33,    34,   403,   363,   234,   377,   238,   239,   240,
-     241,   245,    29,    30,    31,    32,    33,    34,    35,   111,
-     112,   113,   114,   246,   258,   115,    13,   259,   210,   263,
-     116,   211,   264,   307,   265,   224,   201,   312,   117,   333,
-     212,   325,   349,   212,   330,   348,   366,   374,   375,   117,
-     213,   214,   169,   111,   112,   119,   114,   372,   322,   115,
-      13,   111,   112,   121,   114,   342,   343,   115,    13,   377,
-     351,   344,   345,   385,   386,   360,   352,   353,   117,   354,
-     361,   362,   117,   356,   358,   367,   384,   370,   373,   116,
-     389,   111,   112,   123,   114,   371,  -109,   115,    13,   376,
-     379,   380,   393,   381,   398,   189,   190,   191,   192,   193,
-     387,   194,   195,   196,   197,   198,   199,   390,   391,   392,
-     394,   395,   396,   116,   397,   399,   404,   310,   388,   406,
-     405,   116,   169,   407,   408,   409,   410,     1,     2,     3,
-       4,     5,     6,     7,     8,     9,   323,    10,   146,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-     347,   116,   326,    22,    23,    24,    25,   135,    26,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    36,   299,
-      37,    38,   186,   187,   188,   189,   190,   191,   192,   193,
-      39,   194,   195,   196,   197,   198,   199,     0,     0,  -120,
-      40,    41,    42,     0,     0,    43,    44,     0,     0,   169,
-      45,     0,     0,     0,    46,    47,     0,     0,    48,    49,
-       0,   169,    50,     1,     2,     3,     4,     5,     6,     7,
-       8,     9,     0,    10,     0,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,     0,     0,     0,    22,
-      23,    24,    25,     0,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,     0,    37,    38,   194,   195,
-     196,   197,   198,   199,     0,     0,    39,   192,   193,     0,
-     194,   195,   196,   197,   198,   199,    40,    41,    42,     0,
-       0,    43,    44,     0,     0,     0,    45,     0,     0,     0,
-      46,    47,     0,     0,    48,    49,     0,     0,    50,     1,
-       2,     3,     4,     5,     6,     7,     8,     9,     0,    10,
-       0,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,     0,     0,     0,    22,    23,    24,    25,    33,
-      34,     0,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,   210,    37,    38,   211,     0,     0,     0,     0,     0,
-       0,     0,    39,  -120,     0,     0,   212,     0,     0,     0,
-       0,     0,    40,    41,    42,     0,     0,    43,    44,     0,
-       0,     0,    45,     0,     0,     0,    46,    47,     0,     0,
-      48,    49,     0,     0,    50,     1,     2,     3,     4,     5,
-       6,     7,     8,     9,     0,    73,    74,    11,    12,    13,
-       0,     0,     0,     0,    18,     0,    20,     0,     0,     0,
-       0,    22,    23,    24,    25,    76,     0,     0,    28,     0,
-      14,    15,    16,    17,     0,    19,    36,    21,    37,    38,
-       0,     0,     0,     0,     0,     0,    26,    27,    39,    29,
-      30,    31,    32,    33,    34,    35,     0,     0,    40,    41,
-      42,     0,     0,    43,    44,     0,     0,     0,    45,     0,
-       0,     0,    46,    47,     0,     0,    48,    49,     0,     0,
-      50,     1,     2,     3,     4,     5,     6,     7,     8,     9,
-       0,   125,     0,    11,    12,    13,     0,     0,     0,     0,
-      18,     0,    20,     0,     0,     0,     0,    22,    23,    24,
-      25,    76,     0,     0,    28,     0,    14,    15,    16,    17,
-       0,    19,    36,    21,    37,    38,     0,     0,     0,     0,
-       0,     0,     0,     0,    39,    29,    30,    31,    32,    33,
-      34,    35,     0,     0,    40,    41,    42,     0,     0,    43,
-      44,     0,     0,     0,   126,     0,     0,     0,    46,    47,
-       0,     0,    48,    49,     0,     0,    50,     1,     2,     3,
-       4,     5,     6,     7,     8,     9,     0,   125,     0,    11,
-      12,    13,     0,     0,     0,     0,    18,     0,    20,     0,
-       0,     0,     0,    22,    23,    24,    25,     0,     0,     0,
-      28,     0,     0,     0,     0,     0,     0,     0,    36,     0,
-      37,    38,     0,     0,     0,     0,     0,     0,     0,     0,
-      39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      40,    41,    42,     0,     0,    43,    44,     0,     0,     0,
-      45,     0,     0,     0,    46,    47,     0,     0,    48,    49,
-       0,    76,    50,    77,     0,     0,    14,    15,    16,    17,
-       0,    19,     0,    21,     0,    78,    79,     0,     0,     0,
-       0,     0,     0,     0,     0,    29,    30,    31,    32,    33,
-      34,    35,     0,    80,     0,     0,    81,     0,    82,   169,
-      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,    94,    95,     0,    96,    97,    98,    99,   100,   101,
-     102,     0,     0,   103,   104,     0,   105,   106,     0,   170,
-       0,     0,   107,   108,   171,   172,   173,   174,   175,   176,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,   188,   189,   190,   191,   192,   193,     0,   194,   195,
-     196,   197,   198,   199,     0,     0,     0,    76,     0,     0,
-     169,   365,    14,    15,    16,    17,     0,    19,     0,    21,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    29,    30,    31,    32,    33,    34,    35,     0,     0,
-     170,     0,     0,     0,     0,   171,   172,   173,   174,   175,
+     290,   291,   292,   293,   271,   345,   346,   169,   407,   305,
+     306,   213,   119,   319,   214,   170,   -64,   119,   205,   206,
+     298,   119,   171,   119,   207,   310,   351,   130,   208,   315,
+     299,   316,   113,   114,   307,   295,   203,  -124,   117,    12,
+     232,   224,   118,   119,   238,   119,   119,   119,   241,   302,
+     154,   337,   146,   147,   133,   113,   114,   237,   116,   242,
+     263,   117,    12,    78,   155,   243,   244,   156,    13,    14,
+      15,    16,   248,    18,   264,    20,   249,   265,   368,   383,
+     261,   196,   197,   198,   199,   200,   201,    28,    29,    30,
+      31,    32,    33,    34,   409,   262,   266,   267,   113,   114,
+     123,   116,   118,   268,   117,    12,   317,   308,   311,   215,
+     212,   203,   119,   335,   330,  -125,   338,   347,   354,   348,
+     371,   349,   380,   381,   119,   118,   353,   356,   350,   357,
+     227,   358,   378,   300,   113,   114,   125,   116,   365,   359,
+     117,    12,   361,   383,   363,   366,   367,   372,   213,   391,
+     392,   214,   377,   376,   119,   379,  -114,   399,   119,   382,
+     385,   393,   390,   215,   386,   387,   395,    78,   118,   149,
+     216,   217,    13,    14,    15,    16,   396,    18,   400,    20,
+     404,   405,   410,   150,   151,   397,   152,   398,   401,   153,
+     402,    28,    29,    30,    31,    32,    33,    34,   403,   394,
+     314,   411,   113,   114,   118,   116,   412,   328,   117,    12,
+     413,   414,   415,   416,     1,     2,     3,     4,     5,     6,
+       7,     8,   331,     9,   148,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,   352,   327,   303,    21,
+      22,    23,    24,   137,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    35,     0,    36,    37,     0,     0,
+       0,     0,     0,     0,     0,     0,    38,     0,     0,     0,
+       0,     0,   118,     0,     0,  -125,    39,    40,    41,     0,
+       0,    42,    43,     0,     0,     0,    44,     0,     0,     0,
+      45,    46,     0,   171,    47,    48,     0,     0,    49,     1,
+       2,     3,     4,     5,     6,     7,     8,     0,     9,     0,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,     0,     0,     0,    21,    22,    23,    24,     0,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+       0,    36,    37,   188,   189,   190,   191,   192,   193,   194,
+     195,    38,   196,   197,   198,   199,   200,   201,     0,     0,
+       0,    39,    40,    41,     0,     0,    42,    43,     0,     0,
+       0,    44,     0,     0,     0,    45,    46,     0,   171,    47,
+      48,     0,     0,    49,     1,     2,     3,     4,     5,     6,
+       7,     8,     0,     9,     0,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,     0,     0,     0,    21,
+      22,    23,    24,     0,     0,     0,    27,    28,    29,    30,
+      31,    32,    33,    34,    35,     0,    36,    37,     0,   189,
+     190,   191,   192,   193,   194,   195,    38,   196,   197,   198,
+     199,   200,   201,     0,     0,     0,    39,    40,    41,     0,
+       0,    42,    43,     0,     0,     0,    44,     0,     0,     0,
+      45,    46,     0,   171,    47,    48,     0,     0,    49,     1,
+       2,     3,     4,     5,     6,     7,     8,     0,    75,    76,
+      10,    11,    12,     0,     0,     0,     0,    17,     0,    19,
+       0,     0,     0,     0,    21,    22,    23,    24,     0,     0,
+       0,    27,     0,     0,     0,     0,     0,     0,     0,    35,
+       0,    36,    37,     0,     0,     0,   191,   192,   193,   194,
+     195,    38,   196,   197,   198,   199,   200,   201,     0,     0,
+       0,    39,    40,    41,     0,     0,    42,    43,     0,     0,
+       0,    44,     0,     0,     0,    45,    46,     0,     0,    47,
+      48,     0,     0,    49,     1,     2,     3,     4,     5,     6,
+       7,     8,     0,   127,     0,    10,    11,    12,     0,     0,
+       0,     0,    17,     0,    19,     0,     0,     0,     0,    21,
+      22,    23,    24,    78,     0,     0,    27,     0,    13,    14,
+      15,    16,     0,    18,    35,    20,    36,    37,     0,     0,
+       0,     0,     0,     0,    25,    26,    38,    28,    29,    30,
+      31,    32,    33,    34,     0,     0,    39,    40,    41,     0,
+       0,    42,    43,     0,     0,     0,   128,     0,     0,     0,
+      45,    46,     0,     0,    47,    48,     0,     0,    49,     1,
+       2,     3,     4,     5,     6,     7,     8,     0,   127,     0,
+      10,    11,    12,     0,     0,     0,     0,    17,     0,    19,
+       0,     0,     0,     0,    21,    22,    23,    24,    78,     0,
+       0,    27,     0,    13,    14,    15,    16,     0,    18,    35,
+      20,    36,    37,     0,     0,     0,     0,     0,     0,     0,
+       0,    38,    28,    29,    30,    31,    32,    33,    34,     0,
+       0,    39,    40,    41,     0,     0,    42,    43,     0,     0,
+       0,    44,     0,     0,     0,    45,    46,     0,     0,    47,
+      48,     0,    78,    49,    79,     0,     0,    13,    14,    15,
+      16,     0,    18,     0,    20,     0,    80,    81,     0,     0,
+       0,     0,     0,     0,     0,     0,    28,    29,    30,    31,
+      32,    33,    34,     0,    82,     0,     0,    83,     0,    84,
+     171,    85,    86,    87,    88,    89,    90,    91,    92,    93,
+      94,    95,    96,    97,     0,    98,    99,   100,   101,   102,
+     103,   104,     0,     0,   105,   106,     0,   107,   108,     0,
+     172,     0,     0,   109,   110,   173,   174,   175,   176,   177,
+     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+     188,   189,   190,   191,   192,   193,   194,   195,     0,   196,
+     197,   198,   199,   200,   201,   171,     0,     0,    78,     0,
+     212,     0,   370,    13,    14,    15,    16,    78,    18,     0,
+      20,     0,    13,    14,    15,    16,     0,    18,     0,    20,
+       0,     0,    28,    29,    30,    31,    32,    33,    34,     0,
+       0,    28,    29,    30,    31,    32,    33,    34,   213,     0,
+       0,   214,   171,   186,   187,   188,   189,   190,   191,   192,
+     193,   194,   195,   215,   196,   197,   198,   199,   200,   201,
+     216,   217,     0,     0,     0,     0,     0,     0,   327,     0,
+       0,     0,   172,     0,     0,     0,   408,   173,   174,   175,
      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,   188,   189,   190,   191,   192,   193,   169,   194,
-     195,   196,   197,   198,   199,     0,   402,     0,   355,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   169,
-       0,     0,     0,     0,     0,     0,     0,     0,   170,     0,
-       0,     0,     0,   171,   172,   173,   174,   175,   176,   177,
+     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
+     171,   196,   197,   198,   199,   200,   201,    32,    33,     0,
+     360,     0,     0,     0,     0,     0,     0,     0,     0,   213,
+       0,     0,   214,     0,     0,     0,     0,     0,     0,     0,
+     172,  -125,     0,     0,   215,   173,   174,   175,   176,   177,
      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-     188,   189,   190,   191,   192,   193,   169,   194,   195,   196,
-     197,   198,   199,     0,     0,     0,   357,   184,   185,   186,
-     187,   188,   189,   190,   191,   192,   193,   169,   194,   195,
-     196,   197,   198,   199,     0,     0,   170,     0,     0,     0,
-       0,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     188,   189,   190,   191,   192,   193,   194,   195,   171,   196,
+     197,   198,   199,   200,   201,     0,     0,     0,   362,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   172,     0,
+       0,     0,     0,   173,   174,   175,   176,   177,   178,   179,
      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
-     190,   191,   192,   193,   169,   194,   195,   196,   197,   198,
-     199,     0,     0,     0,   359,     0,     0,     0,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,   196,   197,
-     198,   199,     0,     0,   170,     0,     0,     0,     0,   171,
-     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
+     190,   191,   192,   193,   194,   195,   171,   196,   197,   198,
+     199,   200,   201,     0,     0,     0,   364,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   172,     0,     0,     0,
+       0,   173,   174,   175,   176,   177,   178,   179,   180,   181,
      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
-     192,   193,   169,   194,   195,   196,   197,   198,   199,     0,
-       0,     0,   411,     0,     0,     0,     0,     0,     0,     0,
+     192,   193,   194,   195,   171,   196,   197,   198,   199,   200,
+     201,     0,     0,     0,   417,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   170,     0,     0,     0,     0,   171,   172,   173,
+       0,     0,     0,     0,   172,     0,     0,     0,     0,   173,
      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
-     169,   194,   195,   196,   197,   198,   199,     0,     0,     0,
-     412,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     194,   195,   171,   196,   197,   198,   199,   200,   201,     0,
+       0,     0,   418,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     170,     0,     0,     0,     0,   171,   172,   173,   174,   175,
+       0,     0,   172,     0,     0,     0,     0,   173,   174,   175,
      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,   188,   189,   190,   191,   192,   193,   169,   194,
-     195,   196,   197,   198,   199,     0,     0,     0,   413,     0,
+     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
+     171,   196,   197,   198,   199,   200,   201,     0,     0,     0,
+     419,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   170,     0,
-       0,     0,     0,   171,   172,   173,   174,   175,   176,   177,
+     172,     0,     0,     0,     0,   173,   174,   175,   176,   177,
      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-     188,   189,   190,   191,   192,   193,   169,   194,   195,   196,
-     197,   198,   199,     0,     0,     0,   414,     0,     0,     0,
+     188,   189,   190,   191,   192,   193,   194,   195,   171,   196,
+     197,   198,   199,   200,   201,     0,     0,     0,   420,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   169,   170,     0,     0,     0,
-       0,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+       0,     0,     0,     0,     0,     0,     0,   171,   172,     0,
+       0,     0,     0,   173,   174,   175,   176,   177,   178,   179,
      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
-     190,   191,   192,   193,   169,   194,   195,   196,   197,   198,
-     199,   172,   173,   174,   175,   176,   177,   178,   179,   180,
+     190,   191,   192,   193,   194,   195,   171,   196,   197,   198,
+     199,   200,   201,   174,   175,   176,   177,   178,   179,   180,
      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
-     191,   192,   193,   169,   194,   195,   196,   197,   198,   199,
-       0,     0,   174,   175,   176,   177,   178,   179,   180,   181,
+     191,   192,   193,   194,   195,   171,   196,   197,   198,   199,
+     200,   201,     0,     0,   176,   177,   178,   179,   180,   181,
      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
-     192,   193,   169,   194,   195,   196,   197,   198,   199,     0,
-       0,     0,   175,   176,   177,   178,   179,   180,   181,   182,
+     192,   193,   194,   195,   171,   196,   197,   198,   199,   200,
+     201,     0,     0,     0,   177,   178,   179,   180,   181,   182,
      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
-     193,   169,   194,   195,   196,   197,   198,   199,     0,     0,
-       0,     0,   176,   177,   178,   179,   180,   181,   182,   183,
+     193,   194,   195,   171,   196,   197,   198,   199,   200,   201,
+       0,     0,     0,     0,   178,   179,   180,   181,   182,   183,
      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
-     169,   194,   195,   196,   197,   198,   199,     0,     0,     0,
-       0,     0,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   192,   193,   169,
-     194,   195,   196,   197,   198,   199,     0,     0,     0,     0,
-       0,     0,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,   188,   189,   190,   191,   192,   193,     0,   194,
-     195,   196,   197,   198,   199,     0,     0,     0,     0,     0,
-       0,     0,     0,   180,   181,   182,   183,   184,   185,   186,
-     187,   188,   189,   190,   191,   192,   193,     0,   194,   195,
-     196,   197,   198,   199,    76,     0,     0,     0,     0,    14,
-      15,    16,    17,     0,    19,     0,    21,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    29,    30,
-      31,    32,    33,    34,    35,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  -120
+     194,   195,   171,   196,   197,   198,   199,   200,   201,     0,
+       0,     0,     0,     0,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
+     195,   171,   196,   197,   198,   199,   200,   201,     0,     0,
+       0,     0,     0,     0,   180,   181,   182,   183,   184,   185,
+     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
+       0,   196,   197,   198,   199,   200,   201,     0,     0,     0,
+       0,     0,     0,     0,     0,   182,   183,   184,   185,   186,
+     187,   188,   189,   190,   191,   192,   193,   194,   195,     0,
+     196,   197,   198,   199,   200,   201
 };
 
 static const yytype_int16 yycheck[] =
 {
-      11,    64,     0,   218,   218,   223,   109,    18,   126,    14,
-      15,    16,    17,     0,     3,     3,    21,    14,    15,    16,
-      17,   206,    48,   141,    21,    48,   206,    76,    39,    40,
-      41,    42,    43,    44,    10,    11,    53,    48,    49,    56,
-      15,    17,    15,    76,    55,    15,   109,    10,    11,    15,
-      13,    68,    24,    16,    17,    10,    11,    55,    13,    59,
-      83,    16,    17,    89,    13,    70,    59,    72,    48,    18,
-      19,    20,    21,    70,    23,    72,    25,    13,   196,   297,
-      10,    11,    12,    13,    48,    48,    16,    17,    37,    38,
-      39,    40,    41,    42,    43,    76,   214,    86,    86,    59,
-      75,    76,    75,    76,    80,    75,    86,   210,   211,    75,
-      13,   326,   326,    10,    11,    12,    13,    80,    59,    16,
-      17,    48,    86,    48,    87,    80,    62,    13,   246,    76,
-     141,   142,   143,   236,    83,    38,    39,    40,    76,   137,
-     138,   139,   140,    15,   207,   143,   194,    38,    42,    40,
-      80,   199,    38,    39,    40,    85,    83,   168,    83,   170,
-     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
-     191,    53,   169,    80,    56,   370,   197,   198,    85,   194,
-     370,    41,    42,    56,   199,    41,    68,   194,    38,   204,
-      40,    24,   199,    75,    76,    68,     0,   204,   195,   327,
-      10,    11,   223,    13,    23,    65,    16,    17,    23,   224,
-      48,   226,   227,   228,     6,    23,    65,   224,    37,    38,
-      65,    40,    37,    24,    43,    40,   227,   228,    13,    37,
-      15,    33,    40,    18,    19,    20,    21,    83,    23,    86,
-      25,    41,    42,   371,   265,    86,   319,    12,    12,    12,
-      12,    40,    37,    38,    39,    40,    41,    42,    43,    10,
-      11,    12,    13,    59,    40,    16,    17,    40,    53,    40,
-      80,    56,    40,    89,    83,    85,   297,    10,   293,    24,
-      68,    68,    40,    68,    83,    83,   293,   308,   309,   304,
-      75,    76,    15,    10,    11,    12,    13,   304,    83,    16,
-      17,    10,    11,    12,    13,    86,    86,    16,    17,   382,
-      60,    86,    86,   334,   335,    40,    60,    60,   333,    60,
-      40,    40,   337,    83,    83,    12,   333,    83,    12,    80,
-     337,    10,    11,    12,    13,    48,    24,    16,    17,    86,
-      86,    83,    60,    83,   365,    68,    69,    70,    71,    72,
-      86,    74,    75,    76,    77,    78,    79,    87,    86,    86,
-      76,    76,    76,    80,    76,    12,    12,   202,   337,   390,
-     382,    80,    15,   394,   395,   396,   397,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,   214,    13,    29,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-     236,    80,   216,    29,    30,    31,    32,    20,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,   196,
-      46,    47,    65,    66,    67,    68,    69,    70,    71,    72,
-      56,    74,    75,    76,    77,    78,    79,    -1,    -1,    65,
-      66,    67,    68,    -1,    -1,    71,    72,    -1,    -1,    15,
-      76,    -1,    -1,    -1,    80,    81,    -1,    -1,    84,    85,
-      -1,    15,    88,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    -1,    13,    -1,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    -1,    -1,    -1,    29,
-      30,    31,    32,    -1,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    -1,    46,    47,    74,    75,
-      76,    77,    78,    79,    -1,    -1,    56,    71,    72,    -1,
-      74,    75,    76,    77,    78,    79,    66,    67,    68,    -1,
-      -1,    71,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,
-      80,    81,    -1,    -1,    84,    85,    -1,    -1,    88,     3,
-       4,     5,     6,     7,     8,     9,    10,    11,    -1,    13,
-      -1,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    -1,    -1,    -1,    29,    30,    31,    32,    41,
-      42,    -1,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    53,    46,    47,    56,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    56,    65,    -1,    -1,    68,    -1,    -1,    -1,
-      -1,    -1,    66,    67,    68,    -1,    -1,    71,    72,    -1,
-      -1,    -1,    76,    -1,    -1,    -1,    80,    81,    -1,    -1,
-      84,    85,    -1,    -1,    88,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    -1,    13,    14,    15,    16,    17,
-      -1,    -1,    -1,    -1,    22,    -1,    24,    -1,    -1,    -1,
-      -1,    29,    30,    31,    32,    13,    -1,    -1,    36,    -1,
-      18,    19,    20,    21,    -1,    23,    44,    25,    46,    47,
-      -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    56,    37,
-      38,    39,    40,    41,    42,    43,    -1,    -1,    66,    67,
-      68,    -1,    -1,    71,    72,    -1,    -1,    -1,    76,    -1,
-      -1,    -1,    80,    81,    -1,    -1,    84,    85,    -1,    -1,
-      88,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      -1,    13,    -1,    15,    16,    17,    -1,    -1,    -1,    -1,
-      22,    -1,    24,    -1,    -1,    -1,    -1,    29,    30,    31,
-      32,    13,    -1,    -1,    36,    -1,    18,    19,    20,    21,
-      -1,    23,    44,    25,    46,    47,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    56,    37,    38,    39,    40,    41,
-      42,    43,    -1,    -1,    66,    67,    68,    -1,    -1,    71,
-      72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    80,    81,
-      -1,    -1,    84,    85,    -1,    -1,    88,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    -1,    13,    -1,    15,
-      16,    17,    -1,    -1,    -1,    -1,    22,    -1,    24,    -1,
-      -1,    -1,    -1,    29,    30,    31,    32,    -1,    -1,    -1,
-      36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,
-      46,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      56,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      66,    67,    68,    -1,    -1,    71,    72,    -1,    -1,    -1,
-      76,    -1,    -1,    -1,    80,    81,    -1,    -1,    84,    85,
-      -1,    13,    88,    15,    -1,    -1,    18,    19,    20,    21,
-      -1,    23,    -1,    25,    -1,    27,    28,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    41,
-      42,    43,    -1,    45,    -1,    -1,    48,    -1,    50,    15,
+      10,    66,     0,   111,     3,   221,   221,    17,     3,    13,
+      14,    15,    16,     0,    14,    12,    20,    13,    14,    15,
+      16,   209,   226,    47,    20,   128,   209,    75,    38,    39,
+      40,    41,    42,    43,     9,    10,    14,    47,    48,    47,
+     143,    16,    14,    55,    54,    47,   111,    14,    40,    41,
+      75,     9,    10,    47,    12,    67,    54,    15,    16,     9,
+      10,    11,    12,    14,    88,    15,    16,    64,    72,    37,
+      74,    39,    64,    47,    74,    75,    72,    85,    74,    23,
+      82,     9,    10,    11,    12,    58,    85,    15,    16,    47,
+      85,    85,    23,    58,   196,   198,    74,   301,    37,   201,
+      39,    47,    74,    75,    79,   213,   214,    74,    82,    40,
+      41,    58,   300,    12,   217,   331,   331,   300,    58,    70,
+      71,    79,    73,    74,    75,    76,    77,    78,    86,    79,
+      75,   239,    75,   143,   144,   145,    82,    75,    37,    38,
+      39,   139,   140,   141,   142,   210,   249,   145,    40,    41,
+      41,    79,     9,    10,    11,    12,    84,    40,    15,    16,
+     170,    23,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
+     190,   191,   192,   193,   171,   230,   231,     0,   376,   199,
+     200,    52,   196,   376,    55,    47,    23,   201,    23,     5,
+     196,   205,    14,   207,    23,   201,    67,    12,    64,   205,
+     197,   207,     9,    10,    11,    12,   226,    64,    15,    16,
+      85,    32,    79,   227,    82,   229,   230,   231,    11,   332,
+      22,   227,    37,    38,    39,     9,    10,    85,    12,    11,
+      22,    15,    16,    12,    36,    11,    11,    39,    17,    18,
+      19,    20,    39,    22,    36,    24,    58,    39,   268,   324,
+      39,    73,    74,    75,    76,    77,    78,    36,    37,    38,
+      39,    40,    41,    42,   377,    39,    39,    39,     9,    10,
+      11,    12,    79,    82,    15,    16,     9,    84,    88,    67,
+      14,   301,   296,    82,    67,    64,    23,    85,    39,    85,
+     296,    85,   312,   313,   308,    79,    82,    59,    85,    59,
+      84,    59,   308,    82,     9,    10,    11,    12,    39,    59,
+      15,    16,    82,   388,    82,    39,    39,    11,    52,   339,
+     340,    55,    47,    82,   338,    11,    23,    59,   342,    85,
+      85,    85,   338,    67,    82,    82,   342,    12,    79,    22,
+      74,    75,    17,    18,    19,    20,    86,    22,    75,    24,
+     370,    11,    11,    36,    37,    85,    39,    85,    75,    42,
+      75,    36,    37,    38,    39,    40,    41,    42,    75,   342,
+     204,   388,     9,    10,    79,    12,   396,   217,    15,    16,
+     400,   401,   402,   403,     3,     4,     5,     6,     7,     8,
+       9,    10,   219,    12,    28,    14,    15,    16,    17,    18,
+      19,    20,    21,    22,    23,    24,   239,    82,   198,    28,
+      29,    30,    31,    19,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,
+      -1,    -1,    79,    -1,    -1,    64,    65,    66,    67,    -1,
+      -1,    70,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,
+      79,    80,    -1,    14,    83,    84,    -1,    -1,    87,     3,
+       4,     5,     6,     7,     8,     9,    10,    -1,    12,    -1,
+      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+      24,    -1,    -1,    -1,    28,    29,    30,    31,    -1,    33,
+      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
+      -1,    45,    46,    64,    65,    66,    67,    68,    69,    70,
+      71,    55,    73,    74,    75,    76,    77,    78,    -1,    -1,
+      -1,    65,    66,    67,    -1,    -1,    70,    71,    -1,    -1,
+      -1,    75,    -1,    -1,    -1,    79,    80,    -1,    14,    83,
+      84,    -1,    -1,    87,     3,     4,     5,     6,     7,     8,
+       9,    10,    -1,    12,    -1,    14,    15,    16,    17,    18,
+      19,    20,    21,    22,    23,    24,    -1,    -1,    -1,    28,
+      29,    30,    31,    -1,    -1,    -1,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    -1,    45,    46,    -1,    65,
+      66,    67,    68,    69,    70,    71,    55,    73,    74,    75,
+      76,    77,    78,    -1,    -1,    -1,    65,    66,    67,    -1,
+      -1,    70,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,
+      79,    80,    -1,    14,    83,    84,    -1,    -1,    87,     3,
+       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
+      14,    15,    16,    -1,    -1,    -1,    -1,    21,    -1,    23,
+      -1,    -1,    -1,    -1,    28,    29,    30,    31,    -1,    -1,
+      -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,
+      -1,    45,    46,    -1,    -1,    -1,    67,    68,    69,    70,
+      71,    55,    73,    74,    75,    76,    77,    78,    -1,    -1,
+      -1,    65,    66,    67,    -1,    -1,    70,    71,    -1,    -1,
+      -1,    75,    -1,    -1,    -1,    79,    80,    -1,    -1,    83,
+      84,    -1,    -1,    87,     3,     4,     5,     6,     7,     8,
+       9,    10,    -1,    12,    -1,    14,    15,    16,    -1,    -1,
+      -1,    -1,    21,    -1,    23,    -1,    -1,    -1,    -1,    28,
+      29,    30,    31,    12,    -1,    -1,    35,    -1,    17,    18,
+      19,    20,    -1,    22,    43,    24,    45,    46,    -1,    -1,
+      -1,    -1,    -1,    -1,    33,    34,    55,    36,    37,    38,
+      39,    40,    41,    42,    -1,    -1,    65,    66,    67,    -1,
+      -1,    70,    71,    -1,    -1,    -1,    75,    -1,    -1,    -1,
+      79,    80,    -1,    -1,    83,    84,    -1,    -1,    87,     3,
+       4,     5,     6,     7,     8,     9,    10,    -1,    12,    -1,
+      14,    15,    16,    -1,    -1,    -1,    -1,    21,    -1,    23,
+      -1,    -1,    -1,    -1,    28,    29,    30,    31,    12,    -1,
+      -1,    35,    -1,    17,    18,    19,    20,    -1,    22,    43,
+      24,    45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    55,    36,    37,    38,    39,    40,    41,    42,    -1,
+      -1,    65,    66,    67,    -1,    -1,    70,    71,    -1,    -1,
+      -1,    75,    -1,    -1,    -1,    79,    80,    -1,    -1,    83,
+      84,    -1,    12,    87,    14,    -1,    -1,    17,    18,    19,
+      20,    -1,    22,    -1,    24,    -1,    26,    27,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    36,    37,    38,    39,
+      40,    41,    42,    -1,    44,    -1,    -1,    47,    -1,    49,
+      14,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    -1,    65,    66,    67,    68,    69,
+      70,    71,    -1,    -1,    74,    75,    -1,    77,    78,    -1,
+      44,    -1,    -1,    83,    84,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,    70,    71,    -1,    73,
+      74,    75,    76,    77,    78,    14,    -1,    -1,    12,    -1,
+      14,    -1,    86,    17,    18,    19,    20,    12,    22,    -1,
+      24,    -1,    17,    18,    19,    20,    -1,    22,    -1,    24,
+      -1,    -1,    36,    37,    38,    39,    40,    41,    42,    -1,
+      -1,    36,    37,    38,    39,    40,    41,    42,    52,    -1,
+      -1,    55,    14,    62,    63,    64,    65,    66,    67,    68,
+      69,    70,    71,    67,    73,    74,    75,    76,    77,    78,
+      74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,
+      -1,    -1,    44,    -1,    -1,    -1,    81,    49,    50,    51,
       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    -1,    66,    67,    68,    69,    70,    71,
-      72,    -1,    -1,    75,    76,    -1,    78,    79,    -1,    45,
-      -1,    -1,    84,    85,    50,    51,    52,    53,    54,    55,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+      14,    73,    74,    75,    76,    77,    78,    40,    41,    -1,
+      82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    52,
+      -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      44,    64,    -1,    -1,    67,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,    70,    71,    14,    73,
+      74,    75,    76,    77,    78,    -1,    -1,    -1,    82,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,
+      -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    55,
       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    -1,    74,    75,
-      76,    77,    78,    79,    -1,    -1,    -1,    13,    -1,    -1,
-      15,    87,    18,    19,    20,    21,    -1,    23,    -1,    25,
+      66,    67,    68,    69,    70,    71,    14,    73,    74,    75,
+      76,    77,    78,    -1,    -1,    -1,    82,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    37,    38,    39,    40,    41,    42,    43,    -1,    -1,
-      45,    -1,    -1,    -1,    -1,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    15,    74,
-      75,    76,    77,    78,    79,    -1,    82,    -1,    83,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    15,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    -1,
-      -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    15,    74,    75,    76,
-      77,    78,    79,    -1,    -1,    -1,    83,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    15,    74,    75,
-      76,    77,    78,    79,    -1,    -1,    45,    -1,    -1,    -1,
-      -1,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    15,    74,    75,    76,    77,    78,
-      79,    -1,    -1,    -1,    83,    -1,    -1,    -1,    66,    67,
-      68,    69,    70,    71,    72,    -1,    74,    75,    76,    77,
-      78,    79,    -1,    -1,    45,    -1,    -1,    -1,    -1,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    15,    74,    75,    76,    77,    78,    79,    -1,
-      -1,    -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,
+      -1,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    14,    73,    74,    75,    76,    77,
+      78,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    45,    -1,    -1,    -1,    -1,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      15,    74,    75,    76,    77,    78,    79,    -1,    -1,    -1,
-      83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    14,    73,    74,    75,    76,    77,    78,    -1,
+      -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      45,    -1,    -1,    -1,    -1,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    15,    74,
-      75,    76,    77,    78,    79,    -1,    -1,    -1,    83,    -1,
+      -1,    -1,    44,    -1,    -1,    -1,    -1,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+      14,    73,    74,    75,    76,    77,    78,    -1,    -1,    -1,
+      82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    -1,
-      -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    15,    74,    75,    76,
-      77,    78,    79,    -1,    -1,    -1,    83,    -1,    -1,    -1,
+      44,    -1,    -1,    -1,    -1,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,    70,    71,    14,    73,
+      74,    75,    76,    77,    78,    -1,    -1,    -1,    82,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    15,    45,    -1,    -1,    -1,
-      -1,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    44,    -1,
+      -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    14,    73,    74,    75,
+      76,    77,    78,    50,    51,    52,    53,    54,    55,    56,
+      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
+      67,    68,    69,    70,    71,    14,    73,    74,    75,    76,
+      77,    78,    -1,    -1,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    14,    73,    74,    75,    76,    77,
+      78,    -1,    -1,    -1,    53,    54,    55,    56,    57,    58,
       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    15,    74,    75,    76,    77,    78,
-      79,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      69,    70,    71,    14,    73,    74,    75,    76,    77,    78,
+      -1,    -1,    -1,    -1,    54,    55,    56,    57,    58,    59,
       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    15,    74,    75,    76,    77,    78,    79,
-      -1,    -1,    53,    54,    55,    56,    57,    58,    59,    60,
+      70,    71,    14,    73,    74,    75,    76,    77,    78,    -1,
+      -1,    -1,    -1,    -1,    55,    56,    57,    58,    59,    60,
       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    15,    74,    75,    76,    77,    78,    79,    -1,
-      -1,    -1,    54,    55,    56,    57,    58,    59,    60,    61,
+      71,    14,    73,    74,    75,    76,    77,    78,    -1,    -1,
+      -1,    -1,    -1,    -1,    56,    57,    58,    59,    60,    61,
       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    15,    74,    75,    76,    77,    78,    79,    -1,    -1,
-      -1,    -1,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      15,    74,    75,    76,    77,    78,    79,    -1,    -1,    -1,
-      -1,    -1,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,    71,    72,    15,
-      74,    75,    76,    77,    78,    79,    -1,    -1,    -1,    -1,
-      -1,    -1,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    -1,    74,
-      75,    76,    77,    78,    79,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    -1,    74,    75,
-      76,    77,    78,    79,    13,    -1,    -1,    -1,    -1,    18,
-      19,    20,    21,    -1,    23,    -1,    25,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
-      39,    40,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    65
+      -1,    73,    74,    75,    76,    77,    78,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    -1,
+      73,    74,    75,    76,    77,    78
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
-       0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      13,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    29,    30,    31,    32,    34,    35,    36,    37,
-      38,    39,    40,    41,    42,    43,    44,    46,    47,    56,
-      66,    67,    68,    71,    72,    76,    80,    81,    84,    85,
-      88,    91,    92,    93,    94,   103,   106,   107,   108,   109,
-     111,   112,   113,   123,   124,   128,   131,   132,   133,   135,
-      76,    76,    24,    13,    14,    94,    13,    15,    27,    28,
-      45,    48,    50,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    66,    67,    68,    69,
-      70,    71,    72,    75,    76,    78,    79,    84,    85,   124,
-     129,    10,    11,    12,    13,    16,    80,   133,   134,    12,
-     134,    12,   134,    12,   134,    13,    76,    94,    13,    38,
-      39,    40,   125,    11,    80,   135,   134,    59,    59,    59,
-      59,    76,    76,    76,    38,    39,   125,    23,    37,    38,
-      40,    43,    23,    37,    40,    42,    41,    94,    94,    94,
-      94,    94,    94,    92,    93,    94,    94,     0,    48,    15,
-      45,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    74,    75,    76,    77,    78,    79,
-      92,    94,   104,     6,    24,    65,   110,   124,   113,    15,
-      53,    56,    68,    75,    76,   115,   118,   119,   120,   121,
-     122,    33,   134,   102,    85,   134,    95,    96,    97,    86,
-      15,    75,    15,    75,    86,    83,   115,   130,    12,    12,
-      12,    12,   123,    38,    40,    40,    59,    92,    92,    92,
-      92,    94,   123,    94,    92,    94,    38,    40,    40,    40,
-      23,    37,    40,    40,    40,    83,    83,    94,    93,    94,
-      94,    94,    94,    94,    94,    94,    94,    94,    94,    94,
-      94,    94,    94,    94,    94,    94,    94,    94,    94,    94,
-      94,    12,    13,    85,   109,   134,    93,   101,   123,   126,
-     127,    94,    94,    12,    85,   109,   134,    89,   105,    48,
-     105,   134,    10,   111,   132,     3,    86,   115,   115,   117,
-       3,    86,    83,   119,   126,    68,   120,    76,   121,   122,
-      83,   104,   134,    24,    48,    87,    98,    99,   100,   134,
-      98,    98,    86,    86,    86,    86,    68,   130,    83,    40,
-     123,    60,    60,    60,    60,    83,    83,    83,    83,    83,
-      40,    40,    40,    94,    86,    87,   134,    12,    86,   104,
-      83,    48,   134,    12,    94,    94,    86,   113,   114,    86,
-      83,    83,   116,    83,   134,    94,    94,    86,   100,   134,
-      87,    86,    86,    60,    76,    76,    76,    76,    94,    12,
-      83,   111,    82,   123,    12,   114,    94,    94,    94,    94,
-      94,    83,    83,    83,    83
+       0,     3,     4,     5,     6,     7,     8,     9,    10,    12,
+      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+      24,    28,    29,    30,    31,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    45,    46,    55,    65,
+      66,    67,    70,    71,    75,    79,    80,    83,    84,    87,
+      90,    91,    92,    93,   102,   104,   105,   106,   108,   109,
+     110,   111,   113,   114,   115,   125,   126,   130,   133,   134,
+     135,   137,    75,    75,    23,    12,    13,    93,    12,    14,
+      26,    27,    44,    47,    49,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    65,    66,
+      67,    68,    69,    70,    71,    74,    75,    77,    78,    83,
+      84,   126,   131,     9,    10,    11,    12,    15,    79,   135,
+     136,    11,   136,    11,   136,    11,   136,    12,    75,    93,
+      12,    37,    38,    39,   127,    10,    79,   137,   136,    58,
+      58,    58,    58,    75,    75,    75,    37,    38,   127,    22,
+      36,    37,    39,    42,    22,    36,    39,    41,    40,    93,
+      93,    93,    93,    93,    93,    91,    92,    93,    93,     0,
+      47,    14,    44,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    73,    74,    75,    76,
+      77,    78,    91,    93,   103,    23,     5,    23,    64,   112,
+     126,   115,    14,    52,    55,    67,    74,    75,   117,   120,
+     121,   122,   123,   124,    32,   136,   101,    84,   136,    94,
+      95,    96,    85,    14,    74,    14,    74,    85,    82,   117,
+     132,    11,    11,    11,    11,   125,    37,    39,    39,    58,
+      91,    91,    91,    91,    93,   125,    93,    91,    93,    37,
+      39,    39,    39,    22,    36,    39,    39,    39,    82,    82,
+      93,    92,    93,    93,    93,    93,    93,    93,    93,    93,
+      93,    93,    93,    93,    93,    93,    93,    93,    93,    93,
+      93,    93,    93,    93,    11,    12,    84,   111,   136,    92,
+      82,   100,   125,   128,   129,    93,    93,    11,    84,   111,
+     136,    88,   107,    47,   107,   136,   136,     9,   113,   134,
+       3,    85,   117,   117,   119,     3,    85,    82,   121,   128,
+      67,   122,    75,   123,   124,    82,   103,   136,    23,    47,
+      86,    97,    98,    99,   136,    97,    97,    85,    85,    85,
+      85,    67,   132,    82,    39,   125,    59,    59,    59,    59,
+      82,    82,    82,    82,    82,    39,    39,    39,    93,    85,
+      86,   136,    11,    85,   113,   103,    82,    47,   136,    11,
+      93,    93,    85,   115,   116,    85,    82,    82,   118,    82,
+     136,    93,    93,    85,    99,   136,    86,    85,    85,    59,
+      75,    75,    75,    75,    93,    11,    82,   113,    81,   125,
+      11,   116,    93,    93,    93,    93,    93,    82,    82,    82,
+      82
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -2220,7 +2216,7 @@ yyreduce:
         case 4:
 
 /* Line 1455 of yacc.c  */
-#line 238 "c-exp.y"
+#line 232 "c-exp.y"
     { write_exp_elt_opcode(pstate, OP_TYPE);
 			  write_exp_elt_type(pstate, (yyvsp[(1) - (1)].tval));
 			  write_exp_elt_opcode(pstate, OP_TYPE);}
@@ -2229,7 +2225,7 @@ yyreduce:
   case 5:
 
 /* Line 1455 of yacc.c  */
-#line 242 "c-exp.y"
+#line 236 "c-exp.y"
     {
 			  write_exp_elt_opcode (pstate, OP_TYPEOF);
 			}
@@ -2238,7 +2234,7 @@ yyreduce:
   case 6:
 
 /* Line 1455 of yacc.c  */
-#line 246 "c-exp.y"
+#line 240 "c-exp.y"
     {
 			  write_exp_elt_opcode (pstate, OP_TYPE);
 			  write_exp_elt_type (pstate, (yyvsp[(3) - (4)].tval));
@@ -2249,7 +2245,7 @@ yyreduce:
   case 7:
 
 /* Line 1455 of yacc.c  */
-#line 252 "c-exp.y"
+#line 246 "c-exp.y"
     {
 			  write_exp_elt_opcode (pstate, OP_DECLTYPE);
 			}
@@ -2258,105 +2254,105 @@ yyreduce:
   case 9:
 
 /* Line 1455 of yacc.c  */
-#line 260 "c-exp.y"
+#line 254 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_COMMA); }
     break;
 
   case 10:
 
 /* Line 1455 of yacc.c  */
-#line 265 "c-exp.y"
+#line 259 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_IND); }
     break;
 
   case 11:
 
 /* Line 1455 of yacc.c  */
-#line 269 "c-exp.y"
+#line 263 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_ADDR); }
     break;
 
   case 12:
 
 /* Line 1455 of yacc.c  */
-#line 273 "c-exp.y"
+#line 267 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_NEG); }
     break;
 
   case 13:
 
 /* Line 1455 of yacc.c  */
-#line 277 "c-exp.y"
+#line 271 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_PLUS); }
     break;
 
   case 14:
 
 /* Line 1455 of yacc.c  */
-#line 281 "c-exp.y"
+#line 275 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT); }
     break;
 
   case 15:
 
 /* Line 1455 of yacc.c  */
-#line 285 "c-exp.y"
+#line 279 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_COMPLEMENT); }
     break;
 
   case 16:
 
 /* Line 1455 of yacc.c  */
-#line 289 "c-exp.y"
+#line 283 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_PREINCREMENT); }
     break;
 
   case 17:
 
 /* Line 1455 of yacc.c  */
-#line 293 "c-exp.y"
+#line 287 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_PREDECREMENT); }
     break;
 
   case 18:
 
 /* Line 1455 of yacc.c  */
-#line 297 "c-exp.y"
+#line 291 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_POSTINCREMENT); }
     break;
 
   case 19:
 
 /* Line 1455 of yacc.c  */
-#line 301 "c-exp.y"
+#line 295 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_POSTDECREMENT); }
     break;
 
   case 20:
 
 /* Line 1455 of yacc.c  */
-#line 305 "c-exp.y"
+#line 299 "c-exp.y"
     { write_exp_elt_opcode (pstate, OP_TYPEID); }
     break;
 
   case 21:
 
 /* Line 1455 of yacc.c  */
-#line 309 "c-exp.y"
+#line 303 "c-exp.y"
     { write_exp_elt_opcode (pstate, OP_TYPEID); }
     break;
 
   case 22:
 
 /* Line 1455 of yacc.c  */
-#line 313 "c-exp.y"
+#line 307 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_SIZEOF); }
     break;
 
   case 23:
 
 /* Line 1455 of yacc.c  */
-#line 317 "c-exp.y"
+#line 311 "c-exp.y"
     { write_exp_elt_opcode (pstate, STRUCTOP_PTR);
 			  write_exp_string (pstate, (yyvsp[(3) - (3)].sval));
 			  write_exp_elt_opcode (pstate, STRUCTOP_PTR); }
@@ -2365,7 +2361,7 @@ yyreduce:
   case 24:
 
 /* Line 1455 of yacc.c  */
-#line 323 "c-exp.y"
+#line 317 "c-exp.y"
     { mark_struct_expression (pstate);
 			  write_exp_elt_opcode (pstate, STRUCTOP_PTR);
 			  write_exp_string (pstate, (yyvsp[(3) - (4)].sval));
@@ -2375,7 +2371,7 @@ yyreduce:
   case 25:
 
 /* Line 1455 of yacc.c  */
-#line 330 "c-exp.y"
+#line 324 "c-exp.y"
     { struct stoken s;
 			  mark_struct_expression (pstate);
 			  write_exp_elt_opcode (pstate, STRUCTOP_PTR);
@@ -2388,7 +2384,7 @@ yyreduce:
   case 26:
 
 /* Line 1455 of yacc.c  */
-#line 340 "c-exp.y"
+#line 334 "c-exp.y"
     { write_exp_elt_opcode (pstate, STRUCTOP_PTR);
 			  write_destructor_name (pstate, (yyvsp[(4) - (4)].sval));
 			  write_exp_elt_opcode (pstate, STRUCTOP_PTR); }
@@ -2397,7 +2393,7 @@ yyreduce:
   case 27:
 
 /* Line 1455 of yacc.c  */
-#line 346 "c-exp.y"
+#line 340 "c-exp.y"
     { mark_struct_expression (pstate);
 			  write_exp_elt_opcode (pstate, STRUCTOP_PTR);
 			  write_destructor_name (pstate, (yyvsp[(4) - (5)].sval));
@@ -2407,7 +2403,7 @@ yyreduce:
   case 28:
 
 /* Line 1455 of yacc.c  */
-#line 353 "c-exp.y"
+#line 347 "c-exp.y"
     { /* exp->type::name becomes exp->*(&type::name) */
 			  /* Note: this doesn't work if name is a
 			     static member!  FIXME */
@@ -2418,14 +2414,14 @@ yyreduce:
   case 29:
 
 /* Line 1455 of yacc.c  */
-#line 361 "c-exp.y"
+#line 355 "c-exp.y"
     { write_exp_elt_opcode (pstate, STRUCTOP_MPTR); }
     break;
 
   case 30:
 
 /* Line 1455 of yacc.c  */
-#line 365 "c-exp.y"
+#line 359 "c-exp.y"
     { write_exp_elt_opcode (pstate, STRUCTOP_STRUCT);
 			  write_exp_string (pstate, (yyvsp[(3) - (3)].sval));
 			  write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); }
@@ -2434,7 +2430,7 @@ yyreduce:
   case 31:
 
 /* Line 1455 of yacc.c  */
-#line 371 "c-exp.y"
+#line 365 "c-exp.y"
     { mark_struct_expression (pstate);
 			  write_exp_elt_opcode (pstate, STRUCTOP_STRUCT);
 			  write_exp_string (pstate, (yyvsp[(3) - (4)].sval));
@@ -2444,7 +2440,7 @@ yyreduce:
   case 32:
 
 /* Line 1455 of yacc.c  */
-#line 378 "c-exp.y"
+#line 372 "c-exp.y"
     { struct stoken s;
 			  mark_struct_expression (pstate);
 			  write_exp_elt_opcode (pstate, STRUCTOP_STRUCT);
@@ -2457,7 +2453,7 @@ yyreduce:
   case 33:
 
 /* Line 1455 of yacc.c  */
-#line 388 "c-exp.y"
+#line 382 "c-exp.y"
     { write_exp_elt_opcode (pstate, STRUCTOP_STRUCT);
 			  write_destructor_name (pstate, (yyvsp[(4) - (4)].sval));
 			  write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); }
@@ -2466,7 +2462,7 @@ yyreduce:
   case 34:
 
 /* Line 1455 of yacc.c  */
-#line 394 "c-exp.y"
+#line 388 "c-exp.y"
     { mark_struct_expression (pstate);
 			  write_exp_elt_opcode (pstate, STRUCTOP_STRUCT);
 			  write_destructor_name (pstate, (yyvsp[(4) - (5)].sval));
@@ -2476,7 +2472,7 @@ yyreduce:
   case 35:
 
 /* Line 1455 of yacc.c  */
-#line 401 "c-exp.y"
+#line 395 "c-exp.y"
     { /* exp.type::name becomes exp.*(&type::name) */
 			  /* Note: this doesn't work if name is a
 			     static member!  FIXME */
@@ -2487,28 +2483,28 @@ yyreduce:
   case 36:
 
 /* Line 1455 of yacc.c  */
-#line 409 "c-exp.y"
+#line 403 "c-exp.y"
     { write_exp_elt_opcode (pstate, STRUCTOP_MEMBER); }
     break;
 
   case 37:
 
 /* Line 1455 of yacc.c  */
-#line 413 "c-exp.y"
+#line 407 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_SUBSCRIPT); }
     break;
 
   case 38:
 
 /* Line 1455 of yacc.c  */
-#line 417 "c-exp.y"
+#line 411 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_SUBSCRIPT); }
     break;
 
   case 39:
 
 /* Line 1455 of yacc.c  */
-#line 426 "c-exp.y"
+#line 420 "c-exp.y"
     {
 			  CORE_ADDR theclass;
 
@@ -2529,7 +2525,7 @@ yyreduce:
   case 40:
 
 /* Line 1455 of yacc.c  */
-#line 442 "c-exp.y"
+#line 436 "c-exp.y"
     { write_exp_elt_opcode (pstate, OP_OBJC_MSGCALL);
 			  end_msglist (pstate);
 			  write_exp_elt_opcode (pstate, OP_OBJC_MSGCALL);
@@ -2539,7 +2535,7 @@ yyreduce:
   case 41:
 
 /* Line 1455 of yacc.c  */
-#line 449 "c-exp.y"
+#line 443 "c-exp.y"
     {
 			  write_exp_elt_opcode (pstate, OP_LONG);
 			  write_exp_elt_type (pstate,
@@ -2553,7 +2549,7 @@ yyreduce:
   case 42:
 
 /* Line 1455 of yacc.c  */
-#line 458 "c-exp.y"
+#line 452 "c-exp.y"
     { write_exp_elt_opcode (pstate, OP_OBJC_MSGCALL);
 			  end_msglist (pstate);
 			  write_exp_elt_opcode (pstate, OP_OBJC_MSGCALL);
@@ -2563,14 +2559,14 @@ yyreduce:
   case 43:
 
 /* Line 1455 of yacc.c  */
-#line 465 "c-exp.y"
+#line 459 "c-exp.y"
     { start_msglist(); }
     break;
 
   case 44:
 
 /* Line 1455 of yacc.c  */
-#line 467 "c-exp.y"
+#line 461 "c-exp.y"
     { write_exp_elt_opcode (pstate, OP_OBJC_MSGCALL);
 			  end_msglist (pstate);
 			  write_exp_elt_opcode (pstate, OP_OBJC_MSGCALL);
@@ -2580,42 +2576,42 @@ yyreduce:
   case 45:
 
 /* Line 1455 of yacc.c  */
-#line 474 "c-exp.y"
+#line 468 "c-exp.y"
     { add_msglist(&(yyvsp[(1) - (1)].sval), 0); }
     break;
 
   case 49:
 
 /* Line 1455 of yacc.c  */
-#line 483 "c-exp.y"
+#line 477 "c-exp.y"
     { add_msglist(&(yyvsp[(1) - (3)].sval), 1); }
     break;
 
   case 50:
 
 /* Line 1455 of yacc.c  */
-#line 485 "c-exp.y"
+#line 479 "c-exp.y"
     { add_msglist(0, 1);   }
     break;
 
   case 51:
 
 /* Line 1455 of yacc.c  */
-#line 487 "c-exp.y"
+#line 481 "c-exp.y"
     { add_msglist(0, 0);   }
     break;
 
   case 52:
 
 /* Line 1455 of yacc.c  */
-#line 493 "c-exp.y"
+#line 487 "c-exp.y"
     { start_arglist (); }
     break;
 
   case 53:
 
 /* Line 1455 of yacc.c  */
-#line 495 "c-exp.y"
+#line 489 "c-exp.y"
     { write_exp_elt_opcode (pstate, OP_FUNCALL);
 			  write_exp_elt_longcst (pstate,
 						 (LONGEST) end_arglist ());
@@ -2625,7 +2621,18 @@ yyreduce:
   case 54:
 
 /* Line 1455 of yacc.c  */
-#line 502 "c-exp.y"
+#line 499 "c-exp.y"
+    { start_arglist ();
+			  write_exp_elt_opcode (pstate, OP_FUNCALL);
+			  write_exp_elt_longcst (pstate,
+						 (LONGEST) end_arglist ());
+			  write_exp_elt_opcode (pstate, OP_FUNCALL); }
+    break;
+
+  case 55:
+
+/* Line 1455 of yacc.c  */
+#line 508 "c-exp.y"
     {
 			  /* This could potentially be a an argument defined
 			     lookup function (Koenig).  */
@@ -2644,10 +2651,10 @@ yyreduce:
 			}
     break;
 
-  case 55:
+  case 56:
 
 /* Line 1455 of yacc.c  */
-#line 519 "c-exp.y"
+#line 525 "c-exp.y"
     {
 			  write_exp_elt_opcode (pstate, OP_FUNCALL);
 			  write_exp_elt_longcst (pstate,
@@ -2656,37 +2663,42 @@ yyreduce:
 			}
     break;
 
-  case 56:
+  case 57:
 
 /* Line 1455 of yacc.c  */
-#line 528 "c-exp.y"
+#line 534 "c-exp.y"
     { start_arglist (); }
     break;
 
-  case 58:
+  case 59:
 
 /* Line 1455 of yacc.c  */
-#line 535 "c-exp.y"
+#line 541 "c-exp.y"
     { arglist_len = 1; }
     break;
 
-  case 59:
+  case 60:
 
 /* Line 1455 of yacc.c  */
-#line 539 "c-exp.y"
+#line 545 "c-exp.y"
     { arglist_len++; }
     break;
 
-  case 60:
+  case 61:
 
 /* Line 1455 of yacc.c  */
-#line 543 "c-exp.y"
+#line 549 "c-exp.y"
     { int i;
 			  VEC (type_ptr) *type_list = (yyvsp[(3) - (5)].tvec);
 			  struct type *type_elt;
 			  LONGEST len = VEC_length (type_ptr, type_list);
 
 			  write_exp_elt_opcode (pstate, TYPE_INSTANCE);
+			  /* Save the const/volatile qualifiers as
+			     recorded by the const_or_volatile
+			     production's actions.  */
+			  write_exp_elt_longcst (pstate,
+						 follow_type_instance_flags ());
 			  write_exp_elt_longcst (pstate, len);
 			  for (i = 0;
 			       VEC_iterate (type_ptr, type_list, i, type_elt);
@@ -2698,215 +2710,240 @@ yyreduce:
 			}
     break;
 
-  case 61:
+  case 62:
 
 /* Line 1455 of yacc.c  */
-#line 561 "c-exp.y"
+#line 572 "c-exp.y"
+    { write_exp_elt_opcode (pstate, TYPE_INSTANCE);
+			 /* See above.  */
+			 write_exp_elt_longcst (pstate,
+						follow_type_instance_flags ());
+			 write_exp_elt_longcst (pstate, 0);
+			 write_exp_elt_longcst (pstate, 0);
+			 write_exp_elt_opcode (pstate, TYPE_INSTANCE);
+		       }
+    break;
+
+  case 66:
+
+/* Line 1455 of yacc.c  */
+#line 594 "c-exp.y"
+    {
+			  write_exp_elt_opcode (pstate, OP_FUNC_STATIC_VAR);
+			  write_exp_string (pstate, (yyvsp[(3) - (3)].sval));
+			  write_exp_elt_opcode (pstate, OP_FUNC_STATIC_VAR);
+			}
+    break;
+
+  case 67:
+
+/* Line 1455 of yacc.c  */
+#line 602 "c-exp.y"
     { (yyval.lval) = end_arglist () - 1; }
     break;
 
-  case 62:
+  case 68:
 
 /* Line 1455 of yacc.c  */
-#line 564 "c-exp.y"
+#line 605 "c-exp.y"
     { write_exp_elt_opcode (pstate, OP_ARRAY);
 			  write_exp_elt_longcst (pstate, (LONGEST) 0);
 			  write_exp_elt_longcst (pstate, (LONGEST) (yyvsp[(3) - (3)].lval));
 			  write_exp_elt_opcode (pstate, OP_ARRAY); }
     break;
 
-  case 63:
+  case 69:
 
 /* Line 1455 of yacc.c  */
-#line 571 "c-exp.y"
+#line 612 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_MEMVAL_TYPE); }
     break;
 
-  case 64:
+  case 70:
 
 /* Line 1455 of yacc.c  */
-#line 575 "c-exp.y"
+#line 616 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_CAST_TYPE); }
     break;
 
-  case 65:
+  case 71:
 
 /* Line 1455 of yacc.c  */
-#line 579 "c-exp.y"
+#line 620 "c-exp.y"
     { }
     break;
 
-  case 66:
+  case 72:
 
 /* Line 1455 of yacc.c  */
-#line 585 "c-exp.y"
+#line 626 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_REPEAT); }
     break;
 
-  case 67:
+  case 73:
 
 /* Line 1455 of yacc.c  */
-#line 589 "c-exp.y"
+#line 630 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_MUL); }
     break;
 
-  case 68:
+  case 74:
 
 /* Line 1455 of yacc.c  */
-#line 593 "c-exp.y"
+#line 634 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_DIV); }
     break;
 
-  case 69:
+  case 75:
 
 /* Line 1455 of yacc.c  */
-#line 597 "c-exp.y"
+#line 638 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_REM); }
     break;
 
-  case 70:
+  case 76:
 
 /* Line 1455 of yacc.c  */
-#line 601 "c-exp.y"
+#line 642 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_ADD); }
     break;
 
-  case 71:
+  case 77:
 
 /* Line 1455 of yacc.c  */
-#line 605 "c-exp.y"
+#line 646 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_SUB); }
     break;
 
-  case 72:
+  case 78:
 
 /* Line 1455 of yacc.c  */
-#line 609 "c-exp.y"
+#line 650 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LSH); }
     break;
 
-  case 73:
+  case 79:
 
 /* Line 1455 of yacc.c  */
-#line 613 "c-exp.y"
+#line 654 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_RSH); }
     break;
 
-  case 74:
+  case 80:
 
 /* Line 1455 of yacc.c  */
-#line 617 "c-exp.y"
+#line 658 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_EQUAL); }
     break;
 
-  case 75:
+  case 81:
 
 /* Line 1455 of yacc.c  */
-#line 621 "c-exp.y"
+#line 662 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_NOTEQUAL); }
     break;
 
-  case 76:
+  case 82:
 
 /* Line 1455 of yacc.c  */
-#line 625 "c-exp.y"
+#line 666 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LEQ); }
     break;
 
-  case 77:
+  case 83:
 
 /* Line 1455 of yacc.c  */
-#line 629 "c-exp.y"
+#line 670 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_GEQ); }
     break;
 
-  case 78:
+  case 84:
 
 /* Line 1455 of yacc.c  */
-#line 633 "c-exp.y"
+#line 674 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LESS); }
     break;
 
-  case 79:
+  case 85:
 
 /* Line 1455 of yacc.c  */
-#line 637 "c-exp.y"
+#line 678 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_GTR); }
     break;
 
-  case 80:
+  case 86:
 
 /* Line 1455 of yacc.c  */
-#line 641 "c-exp.y"
+#line 682 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_AND); }
     break;
 
-  case 81:
+  case 87:
 
 /* Line 1455 of yacc.c  */
-#line 645 "c-exp.y"
+#line 686 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_XOR); }
     break;
 
-  case 82:
+  case 88:
 
 /* Line 1455 of yacc.c  */
-#line 649 "c-exp.y"
+#line 690 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_IOR); }
     break;
 
-  case 83:
+  case 89:
 
 /* Line 1455 of yacc.c  */
-#line 653 "c-exp.y"
+#line 694 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LOGICAL_AND); }
     break;
 
-  case 84:
+  case 90:
 
 /* Line 1455 of yacc.c  */
-#line 657 "c-exp.y"
+#line 698 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LOGICAL_OR); }
     break;
 
-  case 85:
+  case 91:
 
 /* Line 1455 of yacc.c  */
-#line 661 "c-exp.y"
+#line 702 "c-exp.y"
     { write_exp_elt_opcode (pstate, TERNOP_COND); }
     break;
 
-  case 86:
+  case 92:
 
 /* Line 1455 of yacc.c  */
-#line 665 "c-exp.y"
+#line 706 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_ASSIGN); }
     break;
 
-  case 87:
+  case 93:
 
 /* Line 1455 of yacc.c  */
-#line 669 "c-exp.y"
+#line 710 "c-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_ASSIGN_MODIFY);
 			  write_exp_elt_opcode (pstate, (yyvsp[(2) - (3)].opcode));
 			  write_exp_elt_opcode (pstate,
 						BINOP_ASSIGN_MODIFY); }
     break;
 
-  case 88:
+  case 94:
 
 /* Line 1455 of yacc.c  */
-#line 676 "c-exp.y"
+#line 717 "c-exp.y"
     { write_exp_elt_opcode (pstate, OP_LONG);
 			  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].typed_val_int).type);
 			  write_exp_elt_longcst (pstate, (LONGEST) ((yyvsp[(1) - (1)].typed_val_int).val));
 			  write_exp_elt_opcode (pstate, OP_LONG); }
     break;
 
-  case 89:
+  case 95:
 
 /* Line 1455 of yacc.c  */
-#line 683 "c-exp.y"
+#line 724 "c-exp.y"
     {
 			  struct stoken_vector vec;
 			  vec.len = 1;
@@ -2915,10 +2952,10 @@ yyreduce:
 			}
     break;
 
-  case 90:
+  case 96:
 
 /* Line 1455 of yacc.c  */
-#line 692 "c-exp.y"
+#line 733 "c-exp.y"
     { YYSTYPE val;
 			  parse_number (pstate, (yyvsp[(1) - (1)].ssym).stoken.ptr,
 					(yyvsp[(1) - (1)].ssym).stoken.length, 0, &val);
@@ -2930,49 +2967,39 @@ yyreduce:
 			}
     break;
 
-  case 91:
+  case 97:
 
 /* Line 1455 of yacc.c  */
-#line 705 "c-exp.y"
-    { write_exp_elt_opcode (pstate, OP_DOUBLE);
+#line 746 "c-exp.y"
+    { write_exp_elt_opcode (pstate, OP_FLOAT);
 			  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].typed_val_float).type);
-			  write_exp_elt_dblcst (pstate, (yyvsp[(1) - (1)].typed_val_float).dval);
-			  write_exp_elt_opcode (pstate, OP_DOUBLE); }
-    break;
-
-  case 92:
-
-/* Line 1455 of yacc.c  */
-#line 712 "c-exp.y"
-    { write_exp_elt_opcode (pstate, OP_DECFLOAT);
-			  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].typed_val_decfloat).type);
-			  write_exp_elt_decfloatcst (pstate, (yyvsp[(1) - (1)].typed_val_decfloat).val);
-			  write_exp_elt_opcode (pstate, OP_DECFLOAT); }
+			  write_exp_elt_floatcst (pstate, (yyvsp[(1) - (1)].typed_val_float).val);
+			  write_exp_elt_opcode (pstate, OP_FLOAT); }
     break;
 
-  case 94:
+  case 99:
 
 /* Line 1455 of yacc.c  */
-#line 722 "c-exp.y"
+#line 756 "c-exp.y"
     {
 			  write_dollar_variable (pstate, (yyvsp[(1) - (1)].sval));
 			}
     break;
 
-  case 95:
+  case 100:
 
 /* Line 1455 of yacc.c  */
-#line 728 "c-exp.y"
+#line 762 "c-exp.y"
     {
 			  write_exp_elt_opcode (pstate, OP_OBJC_SELECTOR);
 			  write_exp_string (pstate, (yyvsp[(3) - (4)].sval));
 			  write_exp_elt_opcode (pstate, OP_OBJC_SELECTOR); }
     break;
 
-  case 96:
+  case 101:
 
 /* Line 1455 of yacc.c  */
-#line 735 "c-exp.y"
+#line 769 "c-exp.y"
     { struct type *type = (yyvsp[(3) - (4)].tval);
 			  write_exp_elt_opcode (pstate, OP_LONG);
 			  write_exp_elt_type (pstate, lookup_signed_typename
@@ -2992,41 +3019,41 @@ yyreduce:
 			  write_exp_elt_opcode (pstate, OP_LONG); }
     break;
 
-  case 97:
+  case 102:
 
 /* Line 1455 of yacc.c  */
-#line 755 "c-exp.y"
+#line 789 "c-exp.y"
     { write_exp_elt_opcode (pstate,
 						UNOP_REINTERPRET_CAST); }
     break;
 
-  case 98:
+  case 103:
 
 /* Line 1455 of yacc.c  */
-#line 760 "c-exp.y"
+#line 794 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_CAST_TYPE); }
     break;
 
-  case 99:
+  case 104:
 
 /* Line 1455 of yacc.c  */
-#line 764 "c-exp.y"
+#line 798 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_DYNAMIC_CAST); }
     break;
 
-  case 100:
+  case 105:
 
 /* Line 1455 of yacc.c  */
-#line 768 "c-exp.y"
+#line 802 "c-exp.y"
     { /* We could do more error checking here, but
 			     it doesn't seem worthwhile.  */
 			  write_exp_elt_opcode (pstate, UNOP_CAST_TYPE); }
     break;
 
-  case 101:
+  case 106:
 
 /* Line 1455 of yacc.c  */
-#line 775 "c-exp.y"
+#line 809 "c-exp.y"
     {
 			  /* We copy the string here, and not in the
 			     lexer, to guarantee that we do not leak a
@@ -3044,10 +3071,10 @@ yyreduce:
 			}
     break;
 
-  case 102:
+  case 107:
 
 /* Line 1455 of yacc.c  */
-#line 792 "c-exp.y"
+#line 826 "c-exp.y"
     {
 			  /* Note that we NUL-terminate here, but just
 			     for convenience.  */
@@ -3065,10 +3092,10 @@ yyreduce:
 			}
     break;
 
-  case 103:
+  case 108:
 
 /* Line 1455 of yacc.c  */
-#line 810 "c-exp.y"
+#line 844 "c-exp.y"
     {
 			  int i;
 			  c_string_type type = C_STRING;
@@ -3101,19 +3128,19 @@ yyreduce:
 			}
     break;
 
-  case 104:
+  case 109:
 
 /* Line 1455 of yacc.c  */
-#line 845 "c-exp.y"
+#line 879 "c-exp.y"
     { write_exp_elt_opcode (pstate, OP_OBJC_NSSTRING);
 			  write_exp_string (pstate, (yyvsp[(1) - (1)].sval));
 			  write_exp_elt_opcode (pstate, OP_OBJC_NSSTRING); }
     break;
 
-  case 105:
+  case 110:
 
 /* Line 1455 of yacc.c  */
-#line 852 "c-exp.y"
+#line 886 "c-exp.y"
     { write_exp_elt_opcode (pstate, OP_LONG);
                           write_exp_elt_type (pstate,
 					  parse_type (pstate)->builtin_bool);
@@ -3121,10 +3148,10 @@ yyreduce:
                           write_exp_elt_opcode (pstate, OP_LONG); }
     break;
 
-  case 106:
+  case 111:
 
 /* Line 1455 of yacc.c  */
-#line 860 "c-exp.y"
+#line 894 "c-exp.y"
     { write_exp_elt_opcode (pstate, OP_LONG);
                           write_exp_elt_type (pstate,
 					  parse_type (pstate)->builtin_bool);
@@ -3132,10 +3159,10 @@ yyreduce:
                           write_exp_elt_opcode (pstate, OP_LONG); }
     break;
 
-  case 107:
+  case 112:
 
 /* Line 1455 of yacc.c  */
-#line 870 "c-exp.y"
+#line 904 "c-exp.y"
     {
 			  if ((yyvsp[(1) - (1)].ssym).sym.symbol)
 			    (yyval.bval) = SYMBOL_BLOCK_VALUE ((yyvsp[(1) - (1)].ssym).sym.symbol);
@@ -3145,19 +3172,19 @@ yyreduce:
 			}
     break;
 
-  case 108:
+  case 113:
 
 /* Line 1455 of yacc.c  */
-#line 878 "c-exp.y"
+#line 912 "c-exp.y"
     {
 			  (yyval.bval) = (yyvsp[(1) - (1)].bval);
 			}
     break;
 
-  case 109:
+  case 114:
 
 /* Line 1455 of yacc.c  */
-#line 884 "c-exp.y"
+#line 918 "c-exp.y"
     { struct symbol *tem
 			    = lookup_symbol (copy_name ((yyvsp[(3) - (3)].sval)), (yyvsp[(1) - (3)].bval),
 					     VAR_DOMAIN, NULL).symbol;
@@ -3168,10 +3195,10 @@ yyreduce:
 			  (yyval.bval) = SYMBOL_BLOCK_VALUE (tem); }
     break;
 
-  case 110:
+  case 115:
 
 /* Line 1455 of yacc.c  */
-#line 895 "c-exp.y"
+#line 929 "c-exp.y"
     { struct symbol *sym = (yyvsp[(1) - (2)].ssym).sym.symbol;
 
 			  if (sym == NULL || !SYMBOL_IS_ARGUMENT (sym)
@@ -3186,10 +3213,10 @@ yyreduce:
 			}
     break;
 
-  case 111:
+  case 116:
 
 /* Line 1455 of yacc.c  */
-#line 910 "c-exp.y"
+#line 944 "c-exp.y"
     { struct block_symbol sym
 			    = lookup_symbol (copy_name ((yyvsp[(3) - (3)].sval)), (yyvsp[(1) - (3)].bval),
 					     VAR_DOMAIN, NULL);
@@ -3211,10 +3238,10 @@ yyreduce:
 			  write_exp_elt_opcode (pstate, OP_VAR_VALUE); }
     break;
 
-  case 112:
+  case 117:
 
 /* Line 1455 of yacc.c  */
-#line 932 "c-exp.y"
+#line 966 "c-exp.y"
     {
 			  struct type *type = (yyvsp[(1) - (3)].tsym).type;
 			  type = check_typedef (type);
@@ -3229,10 +3256,10 @@ yyreduce:
 			}
     break;
 
-  case 113:
+  case 118:
 
 /* Line 1455 of yacc.c  */
-#line 945 "c-exp.y"
+#line 979 "c-exp.y"
     {
 			  struct type *type = (yyvsp[(1) - (4)].tsym).type;
 			  struct stoken tmp_token;
@@ -3258,10 +3285,10 @@ yyreduce:
 			}
     break;
 
-  case 114:
+  case 119:
 
 /* Line 1455 of yacc.c  */
-#line 969 "c-exp.y"
+#line 1003 "c-exp.y"
     {
 			  char *copy = copy_name ((yyvsp[(3) - (5)].sval));
 			  error (_("No type \"%s\" within class "
@@ -3270,10 +3297,10 @@ yyreduce:
 			}
     break;
 
-  case 116:
+  case 121:
 
 /* Line 1455 of yacc.c  */
-#line 979 "c-exp.y"
+#line 1013 "c-exp.y"
     {
 			  char *name = copy_name ((yyvsp[(2) - (2)].ssym).stoken);
 			  struct symbol *sym;
@@ -3301,10 +3328,10 @@ yyreduce:
 			}
     break;
 
-  case 117:
+  case 122:
 
 /* Line 1455 of yacc.c  */
-#line 1007 "c-exp.y"
+#line 1041 "c-exp.y"
     { struct block_symbol sym = (yyvsp[(1) - (1)].ssym).sym;
 
 			  if (sym.symbol)
@@ -3339,75 +3366,95 @@ yyreduce:
 			    }
 			  else
 			    {
-			      struct bound_minimal_symbol msymbol;
 			      char *arg = copy_name ((yyvsp[(1) - (1)].ssym).stoken);
 
-			      msymbol =
-				lookup_bound_minimal_symbol (arg);
-			      if (msymbol.minsym != NULL)
-				write_exp_msymbol (pstate, msymbol);
-			      else if (!have_full_symbols () && !have_partial_symbols ())
-				error (_("No symbol table is loaded.  Use the \"file\" command."));
+			      bound_minimal_symbol msymbol
+				= lookup_bound_minimal_symbol (arg);
+			      if (msymbol.minsym == NULL)
+				{
+				  if (!have_full_symbols () && !have_partial_symbols ())
+				    error (_("No symbol table is loaded.  Use the \"file\" command."));
+				  else
+				    error (_("No symbol \"%s\" in current context."),
+					   copy_name ((yyvsp[(1) - (1)].ssym).stoken));
+				}
+
+			      /* This minsym might be an alias for
+				 another function.  See if we can find
+				 the debug symbol for the target, and
+				 if so, use it instead, since it has
+				 return type / prototype info.  This
+				 is important for example for "p
+				 *__errno_location()".  */
+			      symbol *alias_target
+				= find_function_alias_target (msymbol);
+			      if (alias_target != NULL)
+				{
+				  write_exp_elt_opcode (pstate, OP_VAR_VALUE);
+				  write_exp_elt_block
+				    (pstate, SYMBOL_BLOCK_VALUE (alias_target));
+				  write_exp_elt_sym (pstate, alias_target);
+				  write_exp_elt_opcode (pstate, OP_VAR_VALUE);
+				}
 			      else
-				error (_("No symbol \"%s\" in current context."),
-				       copy_name ((yyvsp[(1) - (1)].ssym).stoken));
+				write_exp_msymbol (pstate, msymbol);
 			    }
 			}
     break;
 
-  case 118:
+  case 123:
 
 /* Line 1455 of yacc.c  */
-#line 1058 "c-exp.y"
+#line 1112 "c-exp.y"
     { insert_type_address_space (pstate, copy_name ((yyvsp[(2) - (2)].ssym).stoken)); }
     break;
 
-  case 126:
+  case 131:
 
 /* Line 1455 of yacc.c  */
-#line 1079 "c-exp.y"
+#line 1133 "c-exp.y"
     { insert_type (tp_pointer); }
     break;
 
-  case 128:
+  case 133:
 
 /* Line 1455 of yacc.c  */
-#line 1082 "c-exp.y"
+#line 1136 "c-exp.y"
     { insert_type (tp_pointer); }
     break;
 
-  case 130:
+  case 135:
 
 /* Line 1455 of yacc.c  */
-#line 1085 "c-exp.y"
+#line 1139 "c-exp.y"
     { insert_type (tp_reference); }
     break;
 
-  case 131:
+  case 136:
 
 /* Line 1455 of yacc.c  */
-#line 1087 "c-exp.y"
+#line 1141 "c-exp.y"
     { insert_type (tp_reference); }
     break;
 
-  case 132:
+  case 137:
 
 /* Line 1455 of yacc.c  */
-#line 1089 "c-exp.y"
+#line 1143 "c-exp.y"
     { insert_type (tp_rvalue_reference); }
     break;
 
-  case 133:
+  case 138:
 
 /* Line 1455 of yacc.c  */
-#line 1091 "c-exp.y"
+#line 1145 "c-exp.y"
     { insert_type (tp_rvalue_reference); }
     break;
 
-  case 134:
+  case 139:
 
 /* Line 1455 of yacc.c  */
-#line 1095 "c-exp.y"
+#line 1149 "c-exp.y"
     {
 			  (yyval.type_stack) = get_type_stack ();
 			  /* This cleanup is eventually run by
@@ -3416,24 +3463,24 @@ yyreduce:
 			}
     break;
 
-  case 135:
+  case 140:
 
 /* Line 1455 of yacc.c  */
-#line 1104 "c-exp.y"
+#line 1158 "c-exp.y"
     { (yyval.type_stack) = append_type_stack ((yyvsp[(2) - (2)].type_stack), (yyvsp[(1) - (2)].type_stack)); }
     break;
 
-  case 138:
+  case 143:
 
 /* Line 1455 of yacc.c  */
-#line 1110 "c-exp.y"
+#line 1164 "c-exp.y"
     { (yyval.type_stack) = (yyvsp[(2) - (3)].type_stack); }
     break;
 
-  case 139:
+  case 144:
 
 /* Line 1455 of yacc.c  */
-#line 1112 "c-exp.y"
+#line 1166 "c-exp.y"
     {
 			  push_type_stack ((yyvsp[(1) - (2)].type_stack));
 			  push_type_int ((yyvsp[(2) - (2)].lval));
@@ -3442,10 +3489,10 @@ yyreduce:
 			}
     break;
 
-  case 140:
+  case 145:
 
 /* Line 1455 of yacc.c  */
-#line 1119 "c-exp.y"
+#line 1173 "c-exp.y"
     {
 			  push_type_int ((yyvsp[(1) - (1)].lval));
 			  push_type (tp_array);
@@ -3453,10 +3500,10 @@ yyreduce:
 			}
     break;
 
-  case 141:
+  case 146:
 
 /* Line 1455 of yacc.c  */
-#line 1126 "c-exp.y"
+#line 1180 "c-exp.y"
     {
 			  push_type_stack ((yyvsp[(1) - (2)].type_stack));
 			  push_typelist ((yyvsp[(2) - (2)].tvec));
@@ -3464,303 +3511,303 @@ yyreduce:
 			}
     break;
 
-  case 142:
+  case 147:
 
 /* Line 1455 of yacc.c  */
-#line 1132 "c-exp.y"
+#line 1186 "c-exp.y"
     {
 			  push_typelist ((yyvsp[(1) - (1)].tvec));
 			  (yyval.type_stack) = get_type_stack ();
 			}
     break;
 
-  case 143:
+  case 148:
 
 /* Line 1455 of yacc.c  */
-#line 1139 "c-exp.y"
+#line 1193 "c-exp.y"
     { (yyval.lval) = -1; }
     break;
 
-  case 144:
+  case 149:
 
 /* Line 1455 of yacc.c  */
-#line 1141 "c-exp.y"
+#line 1195 "c-exp.y"
     { (yyval.lval) = -1; }
     break;
 
-  case 145:
+  case 150:
 
 /* Line 1455 of yacc.c  */
-#line 1143 "c-exp.y"
+#line 1197 "c-exp.y"
     { (yyval.lval) = (yyvsp[(2) - (3)].typed_val_int).val; }
     break;
 
-  case 146:
+  case 151:
 
 /* Line 1455 of yacc.c  */
-#line 1145 "c-exp.y"
+#line 1199 "c-exp.y"
     { (yyval.lval) = (yyvsp[(2) - (3)].typed_val_int).val; }
     break;
 
-  case 147:
+  case 152:
 
 /* Line 1455 of yacc.c  */
-#line 1149 "c-exp.y"
+#line 1203 "c-exp.y"
     { (yyval.tvec) = NULL; }
     break;
 
-  case 148:
+  case 153:
 
 /* Line 1455 of yacc.c  */
-#line 1151 "c-exp.y"
+#line 1205 "c-exp.y"
     { (yyval.tvec) = (yyvsp[(2) - (3)].tvec); }
     break;
 
-  case 150:
+  case 155:
 
 /* Line 1455 of yacc.c  */
-#line 1167 "c-exp.y"
+#line 1221 "c-exp.y"
     { (yyval.tval) = (yyvsp[(1) - (1)].tsym).type; }
     break;
 
-  case 151:
+  case 156:
 
 /* Line 1455 of yacc.c  */
-#line 1169 "c-exp.y"
+#line 1223 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "int"); }
     break;
 
-  case 152:
+  case 157:
 
 /* Line 1455 of yacc.c  */
-#line 1173 "c-exp.y"
+#line 1227 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "long"); }
     break;
 
-  case 153:
+  case 158:
 
 /* Line 1455 of yacc.c  */
-#line 1177 "c-exp.y"
+#line 1231 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "short"); }
     break;
 
-  case 154:
+  case 159:
 
 /* Line 1455 of yacc.c  */
-#line 1181 "c-exp.y"
+#line 1235 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "long"); }
     break;
 
-  case 155:
+  case 160:
 
 /* Line 1455 of yacc.c  */
-#line 1185 "c-exp.y"
+#line 1239 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "long"); }
     break;
 
-  case 156:
+  case 161:
 
 /* Line 1455 of yacc.c  */
-#line 1189 "c-exp.y"
+#line 1243 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "long"); }
     break;
 
-  case 157:
+  case 162:
 
 /* Line 1455 of yacc.c  */
-#line 1193 "c-exp.y"
+#line 1247 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "long"); }
     break;
 
-  case 158:
+  case 163:
 
 /* Line 1455 of yacc.c  */
-#line 1197 "c-exp.y"
+#line 1251 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate),
 							 parse_gdbarch (pstate),
 							 "long"); }
     break;
 
-  case 159:
+  case 164:
 
 /* Line 1455 of yacc.c  */
-#line 1201 "c-exp.y"
+#line 1255 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate),
 							 parse_gdbarch (pstate),
 							 "long"); }
     break;
 
-  case 160:
+  case 165:
 
 /* Line 1455 of yacc.c  */
-#line 1205 "c-exp.y"
+#line 1259 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate),
 							 parse_gdbarch (pstate),
 							 "long"); }
     break;
 
-  case 161:
+  case 166:
 
 /* Line 1455 of yacc.c  */
-#line 1209 "c-exp.y"
+#line 1263 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "long long"); }
     break;
 
-  case 162:
+  case 167:
 
 /* Line 1455 of yacc.c  */
-#line 1213 "c-exp.y"
+#line 1267 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "long long"); }
     break;
 
-  case 163:
+  case 168:
 
 /* Line 1455 of yacc.c  */
-#line 1217 "c-exp.y"
+#line 1271 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "long long"); }
     break;
 
-  case 164:
+  case 169:
 
 /* Line 1455 of yacc.c  */
-#line 1221 "c-exp.y"
+#line 1275 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "long long"); }
     break;
 
-  case 165:
+  case 170:
 
 /* Line 1455 of yacc.c  */
-#line 1225 "c-exp.y"
+#line 1279 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "long long"); }
     break;
 
-  case 166:
+  case 171:
 
 /* Line 1455 of yacc.c  */
-#line 1229 "c-exp.y"
+#line 1283 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "long long"); }
     break;
 
-  case 167:
+  case 172:
 
 /* Line 1455 of yacc.c  */
-#line 1233 "c-exp.y"
+#line 1287 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate),
 							 parse_gdbarch (pstate),
 							 "long long"); }
     break;
 
-  case 168:
+  case 173:
 
 /* Line 1455 of yacc.c  */
-#line 1237 "c-exp.y"
+#line 1291 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate),
 							 parse_gdbarch (pstate),
 							 "long long"); }
     break;
 
-  case 169:
+  case 174:
 
 /* Line 1455 of yacc.c  */
-#line 1241 "c-exp.y"
+#line 1295 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate),
 							 parse_gdbarch (pstate),
 							 "long long"); }
     break;
 
-  case 170:
+  case 175:
 
 /* Line 1455 of yacc.c  */
-#line 1245 "c-exp.y"
+#line 1299 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate),
 							 parse_gdbarch (pstate),
 							 "long long"); }
     break;
 
-  case 171:
+  case 176:
 
 /* Line 1455 of yacc.c  */
-#line 1249 "c-exp.y"
+#line 1303 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "short"); }
     break;
 
-  case 172:
+  case 177:
 
 /* Line 1455 of yacc.c  */
-#line 1253 "c-exp.y"
+#line 1307 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "short"); }
     break;
 
-  case 173:
+  case 178:
 
 /* Line 1455 of yacc.c  */
-#line 1257 "c-exp.y"
+#line 1311 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "short"); }
     break;
 
-  case 174:
+  case 179:
 
 /* Line 1455 of yacc.c  */
-#line 1261 "c-exp.y"
+#line 1315 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate),
 							 parse_gdbarch (pstate),
 							 "short"); }
     break;
 
-  case 175:
+  case 180:
 
 /* Line 1455 of yacc.c  */
-#line 1265 "c-exp.y"
+#line 1319 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate),
 							 parse_gdbarch (pstate),
 							 "short"); }
     break;
 
-  case 176:
+  case 181:
 
 /* Line 1455 of yacc.c  */
-#line 1269 "c-exp.y"
+#line 1323 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate),
 							 parse_gdbarch (pstate),
 							 "short"); }
     break;
 
-  case 177:
+  case 182:
 
 /* Line 1455 of yacc.c  */
-#line 1273 "c-exp.y"
+#line 1327 "c-exp.y"
     { (yyval.tval) = lookup_typename (parse_language (pstate),
 						parse_gdbarch (pstate),
 						"double",
@@ -3768,10 +3815,10 @@ yyreduce:
 						0); }
     break;
 
-  case 178:
+  case 183:
 
 /* Line 1455 of yacc.c  */
-#line 1279 "c-exp.y"
+#line 1333 "c-exp.y"
     { (yyval.tval) = lookup_typename (parse_language (pstate),
 						parse_gdbarch (pstate),
 						"long double",
@@ -3779,28 +3826,28 @@ yyreduce:
 						0); }
     break;
 
-  case 179:
+  case 184:
 
 /* Line 1455 of yacc.c  */
-#line 1285 "c-exp.y"
+#line 1339 "c-exp.y"
     { (yyval.tval) = lookup_struct (copy_name ((yyvsp[(2) - (2)].sval)),
 					      expression_context_block); }
     break;
 
-  case 180:
+  case 185:
 
 /* Line 1455 of yacc.c  */
-#line 1288 "c-exp.y"
+#line 1342 "c-exp.y"
     {
 			  mark_completion_tag (TYPE_CODE_STRUCT, "", 0);
 			  (yyval.tval) = NULL;
 			}
     break;
 
-  case 181:
+  case 186:
 
 /* Line 1455 of yacc.c  */
-#line 1293 "c-exp.y"
+#line 1347 "c-exp.y"
     {
 			  mark_completion_tag (TYPE_CODE_STRUCT, (yyvsp[(2) - (3)].sval).ptr,
 					       (yyvsp[(2) - (3)].sval).length);
@@ -3808,28 +3855,28 @@ yyreduce:
 			}
     break;
 
-  case 182:
+  case 187:
 
 /* Line 1455 of yacc.c  */
-#line 1299 "c-exp.y"
+#line 1353 "c-exp.y"
     { (yyval.tval) = lookup_struct (copy_name ((yyvsp[(2) - (2)].sval)),
 					      expression_context_block); }
     break;
 
-  case 183:
+  case 188:
 
 /* Line 1455 of yacc.c  */
-#line 1302 "c-exp.y"
+#line 1356 "c-exp.y"
     {
 			  mark_completion_tag (TYPE_CODE_STRUCT, "", 0);
 			  (yyval.tval) = NULL;
 			}
     break;
 
-  case 184:
+  case 189:
 
 /* Line 1455 of yacc.c  */
-#line 1307 "c-exp.y"
+#line 1361 "c-exp.y"
     {
 			  mark_completion_tag (TYPE_CODE_STRUCT, (yyvsp[(2) - (3)].sval).ptr,
 					       (yyvsp[(2) - (3)].sval).length);
@@ -3837,28 +3884,28 @@ yyreduce:
 			}
     break;
 
-  case 185:
+  case 190:
 
 /* Line 1455 of yacc.c  */
-#line 1313 "c-exp.y"
+#line 1367 "c-exp.y"
     { (yyval.tval) = lookup_union (copy_name ((yyvsp[(2) - (2)].sval)),
 					     expression_context_block); }
     break;
 
-  case 186:
+  case 191:
 
 /* Line 1455 of yacc.c  */
-#line 1316 "c-exp.y"
+#line 1370 "c-exp.y"
     {
 			  mark_completion_tag (TYPE_CODE_UNION, "", 0);
 			  (yyval.tval) = NULL;
 			}
     break;
 
-  case 187:
+  case 192:
 
 /* Line 1455 of yacc.c  */
-#line 1321 "c-exp.y"
+#line 1375 "c-exp.y"
     {
 			  mark_completion_tag (TYPE_CODE_UNION, (yyvsp[(2) - (3)].sval).ptr,
 					       (yyvsp[(2) - (3)].sval).length);
@@ -3866,28 +3913,28 @@ yyreduce:
 			}
     break;
 
-  case 188:
+  case 193:
 
 /* Line 1455 of yacc.c  */
-#line 1327 "c-exp.y"
+#line 1381 "c-exp.y"
     { (yyval.tval) = lookup_enum (copy_name ((yyvsp[(2) - (2)].sval)),
 					    expression_context_block); }
     break;
 
-  case 189:
+  case 194:
 
 /* Line 1455 of yacc.c  */
-#line 1330 "c-exp.y"
+#line 1384 "c-exp.y"
     {
 			  mark_completion_tag (TYPE_CODE_ENUM, "", 0);
 			  (yyval.tval) = NULL;
 			}
     break;
 
-  case 190:
+  case 195:
 
 /* Line 1455 of yacc.c  */
-#line 1335 "c-exp.y"
+#line 1389 "c-exp.y"
     {
 			  mark_completion_tag (TYPE_CODE_ENUM, (yyvsp[(2) - (3)].sval).ptr,
 					       (yyvsp[(2) - (3)].sval).length);
@@ -3895,69 +3942,69 @@ yyreduce:
 			}
     break;
 
-  case 191:
+  case 196:
 
 /* Line 1455 of yacc.c  */
-#line 1341 "c-exp.y"
+#line 1395 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate),
 							 parse_gdbarch (pstate),
 							 TYPE_NAME((yyvsp[(2) - (2)].tsym).type)); }
     break;
 
-  case 192:
+  case 197:
 
 /* Line 1455 of yacc.c  */
-#line 1345 "c-exp.y"
+#line 1399 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (parse_language (pstate),
 							 parse_gdbarch (pstate),
 							 "int"); }
     break;
 
-  case 193:
+  case 198:
 
 /* Line 1455 of yacc.c  */
-#line 1349 "c-exp.y"
+#line 1403 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       TYPE_NAME((yyvsp[(2) - (2)].tsym).type)); }
     break;
 
-  case 194:
+  case 199:
 
 /* Line 1455 of yacc.c  */
-#line 1353 "c-exp.y"
+#line 1407 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (parse_language (pstate),
 						       parse_gdbarch (pstate),
 						       "int"); }
     break;
 
-  case 195:
+  case 200:
 
 /* Line 1455 of yacc.c  */
-#line 1360 "c-exp.y"
+#line 1414 "c-exp.y"
     { (yyval.tval) = lookup_template_type(copy_name((yyvsp[(2) - (5)].sval)), (yyvsp[(4) - (5)].tval),
 						    expression_context_block);
 			}
     break;
 
-  case 196:
+  case 201:
 
 /* Line 1455 of yacc.c  */
-#line 1364 "c-exp.y"
+#line 1418 "c-exp.y"
     { (yyval.tval) = follow_types ((yyvsp[(2) - (2)].tval)); }
     break;
 
-  case 197:
+  case 202:
 
 /* Line 1455 of yacc.c  */
-#line 1366 "c-exp.y"
+#line 1420 "c-exp.y"
     { (yyval.tval) = follow_types ((yyvsp[(1) - (2)].tval)); }
     break;
 
-  case 199:
+  case 204:
 
 /* Line 1455 of yacc.c  */
-#line 1371 "c-exp.y"
+#line 1425 "c-exp.y"
     {
 		  (yyval.tsym).stoken.ptr = "int";
 		  (yyval.tsym).stoken.length = 3;
@@ -3967,10 +4014,10 @@ yyreduce:
 		}
     break;
 
-  case 200:
+  case 205:
 
 /* Line 1455 of yacc.c  */
-#line 1379 "c-exp.y"
+#line 1433 "c-exp.y"
     {
 		  (yyval.tsym).stoken.ptr = "long";
 		  (yyval.tsym).stoken.length = 4;
@@ -3980,10 +4027,10 @@ yyreduce:
 		}
     break;
 
-  case 201:
+  case 206:
 
 /* Line 1455 of yacc.c  */
-#line 1387 "c-exp.y"
+#line 1441 "c-exp.y"
     {
 		  (yyval.tsym).stoken.ptr = "short";
 		  (yyval.tsym).stoken.length = 5;
@@ -3993,17 +4040,17 @@ yyreduce:
 		}
     break;
 
-  case 202:
+  case 207:
 
 /* Line 1455 of yacc.c  */
-#line 1398 "c-exp.y"
+#line 1452 "c-exp.y"
     { check_parameter_typelist ((yyvsp[(1) - (1)].tvec)); }
     break;
 
-  case 203:
+  case 208:
 
 /* Line 1455 of yacc.c  */
-#line 1400 "c-exp.y"
+#line 1454 "c-exp.y"
     {
 			  VEC_safe_push (type_ptr, (yyvsp[(1) - (3)].tvec), NULL);
 			  check_parameter_typelist ((yyvsp[(1) - (3)].tvec));
@@ -4011,10 +4058,10 @@ yyreduce:
 			}
     break;
 
-  case 204:
+  case 209:
 
 /* Line 1455 of yacc.c  */
-#line 1409 "c-exp.y"
+#line 1463 "c-exp.y"
     {
 		  VEC (type_ptr) *typelist = NULL;
 		  VEC_safe_push (type_ptr, typelist, (yyvsp[(1) - (1)].tval));
@@ -4022,194 +4069,194 @@ yyreduce:
 		}
     break;
 
-  case 205:
+  case 210:
 
 /* Line 1455 of yacc.c  */
-#line 1415 "c-exp.y"
+#line 1469 "c-exp.y"
     {
 		  VEC_safe_push (type_ptr, (yyvsp[(1) - (3)].tvec), (yyvsp[(3) - (3)].tval));
 		  (yyval.tvec) = (yyvsp[(1) - (3)].tvec);
 		}
     break;
 
-  case 207:
+  case 212:
 
 /* Line 1455 of yacc.c  */
-#line 1423 "c-exp.y"
+#line 1477 "c-exp.y"
     {
 		  push_type_stack ((yyvsp[(2) - (2)].type_stack));
 		  (yyval.tval) = follow_types ((yyvsp[(1) - (2)].tval));
 		}
     break;
 
-  case 208:
+  case 213:
 
 /* Line 1455 of yacc.c  */
-#line 1430 "c-exp.y"
+#line 1484 "c-exp.y"
     { (yyval.tval) = follow_types ((yyvsp[(1) - (2)].tval)); }
     break;
 
-  case 213:
+  case 218:
 
 /* Line 1455 of yacc.c  */
-#line 1442 "c-exp.y"
+#line 1496 "c-exp.y"
     { insert_type (tp_const);
 			  insert_type (tp_volatile);
 			}
     break;
 
-  case 214:
+  case 219:
 
 /* Line 1455 of yacc.c  */
-#line 1446 "c-exp.y"
+#line 1500 "c-exp.y"
     { insert_type (tp_const); }
     break;
 
-  case 215:
+  case 220:
 
 /* Line 1455 of yacc.c  */
-#line 1448 "c-exp.y"
+#line 1502 "c-exp.y"
     { insert_type (tp_volatile); }
     break;
 
-  case 216:
+  case 221:
 
 /* Line 1455 of yacc.c  */
-#line 1452 "c-exp.y"
+#line 1506 "c-exp.y"
     { (yyval.sval) = operator_stoken (" new"); }
     break;
 
-  case 217:
+  case 222:
 
 /* Line 1455 of yacc.c  */
-#line 1454 "c-exp.y"
+#line 1508 "c-exp.y"
     { (yyval.sval) = operator_stoken (" delete"); }
     break;
 
-  case 218:
+  case 223:
 
 /* Line 1455 of yacc.c  */
-#line 1456 "c-exp.y"
+#line 1510 "c-exp.y"
     { (yyval.sval) = operator_stoken (" new[]"); }
     break;
 
-  case 219:
+  case 224:
 
 /* Line 1455 of yacc.c  */
-#line 1458 "c-exp.y"
+#line 1512 "c-exp.y"
     { (yyval.sval) = operator_stoken (" delete[]"); }
     break;
 
-  case 220:
+  case 225:
 
 /* Line 1455 of yacc.c  */
-#line 1460 "c-exp.y"
+#line 1514 "c-exp.y"
     { (yyval.sval) = operator_stoken (" new[]"); }
     break;
 
-  case 221:
+  case 226:
 
 /* Line 1455 of yacc.c  */
-#line 1462 "c-exp.y"
+#line 1516 "c-exp.y"
     { (yyval.sval) = operator_stoken (" delete[]"); }
     break;
 
-  case 222:
+  case 227:
 
 /* Line 1455 of yacc.c  */
-#line 1464 "c-exp.y"
+#line 1518 "c-exp.y"
     { (yyval.sval) = operator_stoken ("+"); }
     break;
 
-  case 223:
+  case 228:
 
 /* Line 1455 of yacc.c  */
-#line 1466 "c-exp.y"
+#line 1520 "c-exp.y"
     { (yyval.sval) = operator_stoken ("-"); }
     break;
 
-  case 224:
+  case 229:
 
 /* Line 1455 of yacc.c  */
-#line 1468 "c-exp.y"
+#line 1522 "c-exp.y"
     { (yyval.sval) = operator_stoken ("*"); }
     break;
 
-  case 225:
+  case 230:
 
 /* Line 1455 of yacc.c  */
-#line 1470 "c-exp.y"
+#line 1524 "c-exp.y"
     { (yyval.sval) = operator_stoken ("/"); }
     break;
 
-  case 226:
+  case 231:
 
 /* Line 1455 of yacc.c  */
-#line 1472 "c-exp.y"
+#line 1526 "c-exp.y"
     { (yyval.sval) = operator_stoken ("%"); }
     break;
 
-  case 227:
+  case 232:
 
 /* Line 1455 of yacc.c  */
-#line 1474 "c-exp.y"
+#line 1528 "c-exp.y"
     { (yyval.sval) = operator_stoken ("^"); }
     break;
 
-  case 228:
+  case 233:
 
 /* Line 1455 of yacc.c  */
-#line 1476 "c-exp.y"
+#line 1530 "c-exp.y"
     { (yyval.sval) = operator_stoken ("&"); }
     break;
 
-  case 229:
+  case 234:
 
 /* Line 1455 of yacc.c  */
-#line 1478 "c-exp.y"
+#line 1532 "c-exp.y"
     { (yyval.sval) = operator_stoken ("|"); }
     break;
 
-  case 230:
+  case 235:
 
 /* Line 1455 of yacc.c  */
-#line 1480 "c-exp.y"
+#line 1534 "c-exp.y"
     { (yyval.sval) = operator_stoken ("~"); }
     break;
 
-  case 231:
+  case 236:
 
 /* Line 1455 of yacc.c  */
-#line 1482 "c-exp.y"
+#line 1536 "c-exp.y"
     { (yyval.sval) = operator_stoken ("!"); }
     break;
 
-  case 232:
+  case 237:
 
 /* Line 1455 of yacc.c  */
-#line 1484 "c-exp.y"
+#line 1538 "c-exp.y"
     { (yyval.sval) = operator_stoken ("="); }
     break;
 
-  case 233:
+  case 238:
 
 /* Line 1455 of yacc.c  */
-#line 1486 "c-exp.y"
+#line 1540 "c-exp.y"
     { (yyval.sval) = operator_stoken ("<"); }
     break;
 
-  case 234:
+  case 239:
 
 /* Line 1455 of yacc.c  */
-#line 1488 "c-exp.y"
+#line 1542 "c-exp.y"
     { (yyval.sval) = operator_stoken (">"); }
     break;
 
-  case 235:
+  case 240:
 
 /* Line 1455 of yacc.c  */
-#line 1490 "c-exp.y"
-    { const char *op = "unknown";
+#line 1544 "c-exp.y"
+    { const char *op = " unknown";
 			  switch ((yyvsp[(2) - (2)].opcode))
 			    {
 			    case BINOP_RSH:
@@ -4250,176 +4297,182 @@ yyreduce:
 			}
     break;
 
-  case 236:
+  case 241:
 
 /* Line 1455 of yacc.c  */
-#line 1530 "c-exp.y"
+#line 1584 "c-exp.y"
     { (yyval.sval) = operator_stoken ("<<"); }
     break;
 
-  case 237:
+  case 242:
 
 /* Line 1455 of yacc.c  */
-#line 1532 "c-exp.y"
+#line 1586 "c-exp.y"
     { (yyval.sval) = operator_stoken (">>"); }
     break;
 
-  case 238:
+  case 243:
 
 /* Line 1455 of yacc.c  */
-#line 1534 "c-exp.y"
+#line 1588 "c-exp.y"
     { (yyval.sval) = operator_stoken ("=="); }
     break;
 
-  case 239:
+  case 244:
 
 /* Line 1455 of yacc.c  */
-#line 1536 "c-exp.y"
+#line 1590 "c-exp.y"
     { (yyval.sval) = operator_stoken ("!="); }
     break;
 
-  case 240:
+  case 245:
 
 /* Line 1455 of yacc.c  */
-#line 1538 "c-exp.y"
+#line 1592 "c-exp.y"
     { (yyval.sval) = operator_stoken ("<="); }
     break;
 
-  case 241:
+  case 246:
 
 /* Line 1455 of yacc.c  */
-#line 1540 "c-exp.y"
+#line 1594 "c-exp.y"
     { (yyval.sval) = operator_stoken (">="); }
     break;
 
-  case 242:
+  case 247:
 
 /* Line 1455 of yacc.c  */
-#line 1542 "c-exp.y"
+#line 1596 "c-exp.y"
     { (yyval.sval) = operator_stoken ("&&"); }
     break;
 
-  case 243:
+  case 248:
 
 /* Line 1455 of yacc.c  */
-#line 1544 "c-exp.y"
+#line 1598 "c-exp.y"
     { (yyval.sval) = operator_stoken ("||"); }
     break;
 
-  case 244:
+  case 249:
 
 /* Line 1455 of yacc.c  */
-#line 1546 "c-exp.y"
+#line 1600 "c-exp.y"
     { (yyval.sval) = operator_stoken ("++"); }
     break;
 
-  case 245:
+  case 250:
 
 /* Line 1455 of yacc.c  */
-#line 1548 "c-exp.y"
+#line 1602 "c-exp.y"
     { (yyval.sval) = operator_stoken ("--"); }
     break;
 
-  case 246:
+  case 251:
 
 /* Line 1455 of yacc.c  */
-#line 1550 "c-exp.y"
+#line 1604 "c-exp.y"
     { (yyval.sval) = operator_stoken (","); }
     break;
 
-  case 247:
+  case 252:
 
 /* Line 1455 of yacc.c  */
-#line 1552 "c-exp.y"
+#line 1606 "c-exp.y"
     { (yyval.sval) = operator_stoken ("->*"); }
     break;
 
-  case 248:
+  case 253:
 
 /* Line 1455 of yacc.c  */
-#line 1554 "c-exp.y"
+#line 1608 "c-exp.y"
     { (yyval.sval) = operator_stoken ("->"); }
     break;
 
-  case 249:
+  case 254:
 
 /* Line 1455 of yacc.c  */
-#line 1556 "c-exp.y"
+#line 1610 "c-exp.y"
     { (yyval.sval) = operator_stoken ("()"); }
     break;
 
-  case 250:
+  case 255:
 
 /* Line 1455 of yacc.c  */
-#line 1558 "c-exp.y"
+#line 1612 "c-exp.y"
     { (yyval.sval) = operator_stoken ("[]"); }
     break;
 
-  case 251:
+  case 256:
 
 /* Line 1455 of yacc.c  */
-#line 1560 "c-exp.y"
+#line 1614 "c-exp.y"
     { (yyval.sval) = operator_stoken ("[]"); }
     break;
 
-  case 252:
+  case 257:
 
 /* Line 1455 of yacc.c  */
-#line 1562 "c-exp.y"
+#line 1616 "c-exp.y"
     { string_file buf;
 
 			  c_print_type ((yyvsp[(2) - (2)].tval), NULL, &buf, -1, 0,
 					&type_print_raw_options);
-			  (yyval.sval) = operator_stoken (buf.c_str ());
+
+			  /* This also needs canonicalization.  */
+			  std::string canon
+			    = cp_canonicalize_string (buf.c_str ());
+			  if (canon.empty ())
+			    canon = std::move (buf.string ());
+			  (yyval.sval) = operator_stoken ((" " + canon).c_str ());
 			}
     break;
 
-  case 253:
+  case 258:
 
 /* Line 1455 of yacc.c  */
-#line 1572 "c-exp.y"
+#line 1632 "c-exp.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].ssym).stoken; }
     break;
 
-  case 254:
+  case 259:
 
 /* Line 1455 of yacc.c  */
-#line 1573 "c-exp.y"
+#line 1633 "c-exp.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].ssym).stoken; }
     break;
 
-  case 255:
+  case 260:
 
 /* Line 1455 of yacc.c  */
-#line 1574 "c-exp.y"
+#line 1634 "c-exp.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].tsym).stoken; }
     break;
 
-  case 256:
+  case 261:
 
 /* Line 1455 of yacc.c  */
-#line 1575 "c-exp.y"
+#line 1635 "c-exp.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].ssym).stoken; }
     break;
 
-  case 257:
+  case 262:
 
 /* Line 1455 of yacc.c  */
-#line 1576 "c-exp.y"
+#line 1636 "c-exp.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].ssym).stoken; }
     break;
 
-  case 258:
+  case 263:
 
 /* Line 1455 of yacc.c  */
-#line 1577 "c-exp.y"
+#line 1637 "c-exp.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].sval); }
     break;
 
-  case 261:
+  case 266:
 
 /* Line 1455 of yacc.c  */
-#line 1590 "c-exp.y"
+#line 1650 "c-exp.y"
     {
 			  struct field_of_this_result is_a_field_of_this;
 
@@ -4436,7 +4489,7 @@ yyreduce:
 
 
 /* Line 1455 of yacc.c  */
-#line 4441 "c-exp.c"
+#line 4494 "c-exp.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -4648,7 +4701,7 @@ yyreturn:
 
 
 /* Line 1675 of yacc.c  */
-#line 1604 "c-exp.y"
+#line 1664 "c-exp.y"
 
 
 /* Like write_exp_string, but prepends a '~'.  */
@@ -4673,13 +4726,12 @@ write_destructor_name (struct parser_sta
 static struct stoken
 operator_stoken (const char *op)
 {
-  static const char *operator_string = "operator";
   struct stoken st = { NULL, 0 };
   char *buf;
 
-  st.length = strlen (operator_string) + strlen (op);
+  st.length = CP_OPERATOR_LEN + strlen (op);
   buf = (char *) xmalloc (st.length + 1);
-  strcpy (buf, operator_string);
+  strcpy (buf, CP_OPERATOR_STR);
   strcat (buf, op);
   st.ptr = buf;
 
@@ -4768,49 +4820,49 @@ parse_number (struct parser_state *par_s
 
   if (parsed_float)
     {
-      /* If it ends at "df", "dd" or "dl", take it as type of decimal floating
-         point.  Return DECFLOAT.  */
-
+      /* Handle suffixes for decimal floating-point: "df", "dd" or "dl".  */
       if (len >= 2 && p[len - 2] == 'd' && p[len - 1] == 'f')
 	{
-	  p[len - 2] = '\0';
-	  putithere->typed_val_decfloat.type
+	  putithere->typed_val_float.type
 	    = parse_type (par_state)->builtin_decfloat;
-	  decimal_from_string (putithere->typed_val_decfloat.val, 4,
-			       gdbarch_byte_order (parse_gdbarch (par_state)),
-			       p);
-	  p[len - 2] = 'd';
-	  return DECFLOAT;
+	  len -= 2;
 	}
-
-      if (len >= 2 && p[len - 2] == 'd' && p[len - 1] == 'd')
+      else if (len >= 2 && p[len - 2] == 'd' && p[len - 1] == 'd')
 	{
-	  p[len - 2] = '\0';
-	  putithere->typed_val_decfloat.type
+	  putithere->typed_val_float.type
 	    = parse_type (par_state)->builtin_decdouble;
-	  decimal_from_string (putithere->typed_val_decfloat.val, 8,
-			       gdbarch_byte_order (parse_gdbarch (par_state)),
-			       p);
-	  p[len - 2] = 'd';
-	  return DECFLOAT;
+	  len -= 2;
 	}
-
-      if (len >= 2 && p[len - 2] == 'd' && p[len - 1] == 'l')
+      else if (len >= 2 && p[len - 2] == 'd' && p[len - 1] == 'l')
 	{
-	  p[len - 2] = '\0';
-	  putithere->typed_val_decfloat.type
+	  putithere->typed_val_float.type
 	    = parse_type (par_state)->builtin_declong;
-	  decimal_from_string (putithere->typed_val_decfloat.val, 16,
-			       gdbarch_byte_order (parse_gdbarch (par_state)),
-			       p);
-	  p[len - 2] = 'd';
-	  return DECFLOAT;
+	  len -= 2;
+	}
+      /* Handle suffixes: 'f' for float, 'l' for long double.  */
+      else if (len >= 1 && tolower (p[len - 1]) == 'f')
+	{
+	  putithere->typed_val_float.type
+	    = parse_type (par_state)->builtin_float;
+	  len -= 1;
+	}
+      else if (len >= 1 && tolower (p[len - 1]) == 'l')
+	{
+	  putithere->typed_val_float.type
+	    = parse_type (par_state)->builtin_long_double;
+	  len -= 1;
+	}
+      /* Default type for floating-point literals is double.  */
+      else
+	{
+	  putithere->typed_val_float.type
+	    = parse_type (par_state)->builtin_double;
 	}
 
-      if (! parse_c_float (parse_gdbarch (par_state), p, len,
-			   &putithere->typed_val_float.dval,
-			   &putithere->typed_val_float.type))
-	return ERROR;
+      if (!parse_float (p, len,
+			putithere->typed_val_float.type,
+			putithere->typed_val_float.val))
+        return ERROR;
       return FLOAT;
     }
 
@@ -5854,7 +5906,7 @@ static int popping;
 
 /* Temporary storage for c_lex; this holds symbol names as they are
    built up.  */
-static struct obstack name_obstack;
+auto_obstack name_obstack;
 
 /* Classify a NAME token.  The contents of the token are in `yylval'.
    Updates yylval and returns the new token type.  BLOCK is the block
@@ -6115,7 +6167,7 @@ yylex (void)
   current = *VEC_index (token_and_value, token_fifo, next_to_examine);
   ++next_to_examine;
 
-  obstack_free (&name_obstack, obstack_base (&name_obstack));
+  name_obstack.clear ();
   checkpoint = 0;
   if (current.token == FILENAME)
     search_block = current.value.bval;
@@ -6214,11 +6266,14 @@ c_parse (struct parser_state *par_state)
   struct cleanup *back_to;
 
   /* Setting up the parser state.  */
+  scoped_restore pstate_restore = make_scoped_restore (&pstate);
   gdb_assert (par_state != NULL);
   pstate = par_state;
 
+  /* Note that parsing (within yyparse) freely installs cleanups
+     assuming they'll be run here (below).  */
+
   back_to = make_cleanup (free_current_contents, &expression_macro_scope);
-  make_cleanup_clear_parser_state (&pstate);
 
   /* Set up the scope for macro expansion.  */
   expression_macro_scope = NULL;
@@ -6245,8 +6300,7 @@ c_parse (struct parser_state *par_state)
 
   VEC_free (token_and_value, token_fifo);
   popping = 0;
-  obstack_init (&name_obstack);
-  make_cleanup_obstack_free (&name_obstack);
+  name_obstack.clear ();
 
   result = yyparse ();
   do_cleanups (back_to);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/c-exp.y ./gdb/c-exp.y
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/c-exp.y	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/c-exp.y	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* YACC parser for C expressions, for GDB.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -48,7 +48,6 @@
 #include "charset.h"
 #include "block.h"
 #include "cp-support.h"
-#include "dfp.h"
 #include "macroscope.h"
 #include "objc-lang.h"
 #include "typeprint.h"
@@ -88,13 +87,9 @@ static int type_aggregate_p (struct type
       struct type *type;
     } typed_val_int;
     struct {
-      DOUBLEST dval;
-      struct type *type;
-    } typed_val_float;
-    struct {
       gdb_byte val[16];
       struct type *type;
-    } typed_val_decfloat;
+    } typed_val_float;
     struct type *tval;
     struct stoken sval;
     struct typed_stoken tsval;
@@ -127,7 +122,7 @@ static void c_print_token (FILE *file, i
 #endif
 %}
 
-%type <voidval> exp exp1 type_exp start variable qualified_name lcurly
+%type <voidval> exp exp1 type_exp start variable qualified_name lcurly function_method
 %type <lval> rcurly
 %type <tval> type typebase
 %type <tvec> nonempty_typelist func_mod parameter_typelist
@@ -142,7 +137,6 @@ static void c_print_token (FILE *file, i
 
 %token <typed_val_int> INT
 %token <typed_val_float> FLOAT
-%token <typed_val_decfloat> DECFLOAT
 
 /* Both NAME and TYPENAME tokens represent symbols in the input,
    and both convey their data as strings.
@@ -498,6 +492,18 @@ exp	:	exp '('
 			  write_exp_elt_opcode (pstate, OP_FUNCALL); }
 	;
 
+/* This is here to disambiguate with the production for
+   "func()::static_var" further below, which uses
+   function_method_void.  */
+exp	:	exp '(' ')' %prec ARROW
+			{ start_arglist ();
+			  write_exp_elt_opcode (pstate, OP_FUNCALL);
+			  write_exp_elt_longcst (pstate,
+						 (LONGEST) end_arglist ());
+			  write_exp_elt_opcode (pstate, OP_FUNCALL); }
+	;
+
+
 exp	:	UNKNOWN_CPP_NAME '('
 			{
 			  /* This could potentially be a an argument defined
@@ -539,13 +545,18 @@ arglist	:	arglist ',' exp   %prec ABOVE_
 			{ arglist_len++; }
 	;
 
-exp     :       exp '(' parameter_typelist ')' const_or_volatile
+function_method:       exp '(' parameter_typelist ')' const_or_volatile
 			{ int i;
 			  VEC (type_ptr) *type_list = $3;
 			  struct type *type_elt;
 			  LONGEST len = VEC_length (type_ptr, type_list);
 
 			  write_exp_elt_opcode (pstate, TYPE_INSTANCE);
+			  /* Save the const/volatile qualifiers as
+			     recorded by the const_or_volatile
+			     production's actions.  */
+			  write_exp_elt_longcst (pstate,
+						 follow_type_instance_flags ());
 			  write_exp_elt_longcst (pstate, len);
 			  for (i = 0;
 			       VEC_iterate (type_ptr, type_list, i, type_elt);
@@ -557,6 +568,36 @@ exp     :       exp '(' parameter_typeli
 			}
 	;
 
+function_method_void:	    exp '(' ')' const_or_volatile
+		       { write_exp_elt_opcode (pstate, TYPE_INSTANCE);
+			 /* See above.  */
+			 write_exp_elt_longcst (pstate,
+						follow_type_instance_flags ());
+			 write_exp_elt_longcst (pstate, 0);
+			 write_exp_elt_longcst (pstate, 0);
+			 write_exp_elt_opcode (pstate, TYPE_INSTANCE);
+		       }
+       ;
+
+exp     :       function_method
+	;
+
+/* Normally we must interpret "func()" as a function call, instead of
+   a type.  The user needs to write func(void) to disambiguate.
+   However, in the "func()::static_var" case, there's no
+   ambiguity.  */
+function_method_void_or_typelist: function_method
+	|               function_method_void
+	;
+
+exp     :       function_method_void_or_typelist COLONCOLON name
+			{
+			  write_exp_elt_opcode (pstate, OP_FUNC_STATIC_VAR);
+			  write_exp_string (pstate, $3);
+			  write_exp_elt_opcode (pstate, OP_FUNC_STATIC_VAR);
+			}
+	;
+
 rcurly	:	'}'
 			{ $$ = end_arglist () - 1; }
 	;
@@ -702,17 +743,10 @@ exp	:	NAME_OR_INT
 
 
 exp	:	FLOAT
-			{ write_exp_elt_opcode (pstate, OP_DOUBLE);
+			{ write_exp_elt_opcode (pstate, OP_FLOAT);
 			  write_exp_elt_type (pstate, $1.type);
-			  write_exp_elt_dblcst (pstate, $1.dval);
-			  write_exp_elt_opcode (pstate, OP_DOUBLE); }
-	;
-
-exp	:	DECFLOAT
-			{ write_exp_elt_opcode (pstate, OP_DECFLOAT);
-			  write_exp_elt_type (pstate, $1.type);
-			  write_exp_elt_decfloatcst (pstate, $1.val);
-			  write_exp_elt_opcode (pstate, OP_DECFLOAT); }
+			  write_exp_elt_floatcst (pstate, $1.val);
+			  write_exp_elt_opcode (pstate, OP_FLOAT); }
 	;
 
 exp	:	variable
@@ -1038,18 +1072,38 @@ variable:	name_not_typename
 			    }
 			  else
 			    {
-			      struct bound_minimal_symbol msymbol;
 			      char *arg = copy_name ($1.stoken);
 
-			      msymbol =
-				lookup_bound_minimal_symbol (arg);
-			      if (msymbol.minsym != NULL)
-				write_exp_msymbol (pstate, msymbol);
-			      else if (!have_full_symbols () && !have_partial_symbols ())
-				error (_("No symbol table is loaded.  Use the \"file\" command."));
+			      bound_minimal_symbol msymbol
+				= lookup_bound_minimal_symbol (arg);
+			      if (msymbol.minsym == NULL)
+				{
+				  if (!have_full_symbols () && !have_partial_symbols ())
+				    error (_("No symbol table is loaded.  Use the \"file\" command."));
+				  else
+				    error (_("No symbol \"%s\" in current context."),
+					   copy_name ($1.stoken));
+				}
+
+			      /* This minsym might be an alias for
+				 another function.  See if we can find
+				 the debug symbol for the target, and
+				 if so, use it instead, since it has
+				 return type / prototype info.  This
+				 is important for example for "p
+				 *__errno_location()".  */
+			      symbol *alias_target
+				= find_function_alias_target (msymbol);
+			      if (alias_target != NULL)
+				{
+				  write_exp_elt_opcode (pstate, OP_VAR_VALUE);
+				  write_exp_elt_block
+				    (pstate, SYMBOL_BLOCK_VALUE (alias_target));
+				  write_exp_elt_sym (pstate, alias_target);
+				  write_exp_elt_opcode (pstate, OP_VAR_VALUE);
+				}
 			      else
-				error (_("No symbol \"%s\" in current context."),
-				       copy_name ($1.stoken));
+				write_exp_msymbol (pstate, msymbol);
 			    }
 			}
 	;
@@ -1487,7 +1541,7 @@ oper:	OPERATOR NEW
 	|	OPERATOR '>'
 			{ $$ = operator_stoken (">"); }
 	|	OPERATOR ASSIGN_MODIFY
-			{ const char *op = "unknown";
+			{ const char *op = " unknown";
 			  switch ($2)
 			    {
 			    case BINOP_RSH:
@@ -1563,7 +1617,13 @@ oper:	OPERATOR NEW
 
 			  c_print_type ($2, NULL, &buf, -1, 0,
 					&type_print_raw_options);
-			  $$ = operator_stoken (buf.c_str ());
+
+			  /* This also needs canonicalization.  */
+			  std::string canon
+			    = cp_canonicalize_string (buf.c_str ());
+			  if (canon.empty ())
+			    canon = std::move (buf.string ());
+			  $$ = operator_stoken ((" " + canon).c_str ());
 			}
 	;
 
@@ -1625,13 +1685,12 @@ write_destructor_name (struct parser_sta
 static struct stoken
 operator_stoken (const char *op)
 {
-  static const char *operator_string = "operator";
   struct stoken st = { NULL, 0 };
   char *buf;
 
-  st.length = strlen (operator_string) + strlen (op);
+  st.length = CP_OPERATOR_LEN + strlen (op);
   buf = (char *) malloc (st.length + 1);
-  strcpy (buf, operator_string);
+  strcpy (buf, CP_OPERATOR_STR);
   strcat (buf, op);
   st.ptr = buf;
 
@@ -1720,49 +1779,49 @@ parse_number (struct parser_state *par_s
 
   if (parsed_float)
     {
-      /* If it ends at "df", "dd" or "dl", take it as type of decimal floating
-         point.  Return DECFLOAT.  */
-
+      /* Handle suffixes for decimal floating-point: "df", "dd" or "dl".  */
       if (len >= 2 && p[len - 2] == 'd' && p[len - 1] == 'f')
 	{
-	  p[len - 2] = '\0';
-	  putithere->typed_val_decfloat.type
+	  putithere->typed_val_float.type
 	    = parse_type (par_state)->builtin_decfloat;
-	  decimal_from_string (putithere->typed_val_decfloat.val, 4,
-			       gdbarch_byte_order (parse_gdbarch (par_state)),
-			       p);
-	  p[len - 2] = 'd';
-	  return DECFLOAT;
+	  len -= 2;
 	}
-
-      if (len >= 2 && p[len - 2] == 'd' && p[len - 1] == 'd')
+      else if (len >= 2 && p[len - 2] == 'd' && p[len - 1] == 'd')
 	{
-	  p[len - 2] = '\0';
-	  putithere->typed_val_decfloat.type
+	  putithere->typed_val_float.type
 	    = parse_type (par_state)->builtin_decdouble;
-	  decimal_from_string (putithere->typed_val_decfloat.val, 8,
-			       gdbarch_byte_order (parse_gdbarch (par_state)),
-			       p);
-	  p[len - 2] = 'd';
-	  return DECFLOAT;
+	  len -= 2;
 	}
-
-      if (len >= 2 && p[len - 2] == 'd' && p[len - 1] == 'l')
+      else if (len >= 2 && p[len - 2] == 'd' && p[len - 1] == 'l')
 	{
-	  p[len - 2] = '\0';
-	  putithere->typed_val_decfloat.type
+	  putithere->typed_val_float.type
 	    = parse_type (par_state)->builtin_declong;
-	  decimal_from_string (putithere->typed_val_decfloat.val, 16,
-			       gdbarch_byte_order (parse_gdbarch (par_state)),
-			       p);
-	  p[len - 2] = 'd';
-	  return DECFLOAT;
+	  len -= 2;
+	}
+      /* Handle suffixes: 'f' for float, 'l' for long double.  */
+      else if (len >= 1 && tolower (p[len - 1]) == 'f')
+	{
+	  putithere->typed_val_float.type
+	    = parse_type (par_state)->builtin_float;
+	  len -= 1;
+	}
+      else if (len >= 1 && tolower (p[len - 1]) == 'l')
+	{
+	  putithere->typed_val_float.type
+	    = parse_type (par_state)->builtin_long_double;
+	  len -= 1;
+	}
+      /* Default type for floating-point literals is double.  */
+      else
+	{
+	  putithere->typed_val_float.type
+	    = parse_type (par_state)->builtin_double;
 	}
 
-      if (! parse_c_float (parse_gdbarch (par_state), p, len,
-			   &putithere->typed_val_float.dval,
-			   &putithere->typed_val_float.type))
-	return ERROR;
+      if (!parse_float (p, len,
+			putithere->typed_val_float.type,
+			putithere->typed_val_float.val))
+        return ERROR;
       return FLOAT;
     }
 
@@ -2806,7 +2865,7 @@ static int popping;
 
 /* Temporary storage for c_lex; this holds symbol names as they are
    built up.  */
-static struct obstack name_obstack;
+auto_obstack name_obstack;
 
 /* Classify a NAME token.  The contents of the token are in `yylval'.
    Updates yylval and returns the new token type.  BLOCK is the block
@@ -3067,7 +3126,7 @@ yylex (void)
   current = *VEC_index (token_and_value, token_fifo, next_to_examine);
   ++next_to_examine;
 
-  obstack_free (&name_obstack, obstack_base (&name_obstack));
+  name_obstack.clear ();
   checkpoint = 0;
   if (current.token == FILENAME)
     search_block = current.value.bval;
@@ -3166,11 +3225,14 @@ c_parse (struct parser_state *par_state)
   struct cleanup *back_to;
 
   /* Setting up the parser state.  */
+  scoped_restore pstate_restore = make_scoped_restore (&pstate);
   gdb_assert (par_state != NULL);
   pstate = par_state;
 
+  /* Note that parsing (within yyparse) freely installs cleanups
+     assuming they'll be run here (below).  */
+
   back_to = make_cleanup (free_current_contents, &expression_macro_scope);
-  make_cleanup_clear_parser_state (&pstate);
 
   /* Set up the scope for macro expansion.  */
   expression_macro_scope = NULL;
@@ -3197,8 +3259,7 @@ c_parse (struct parser_state *par_state)
 
   VEC_free (token_and_value, token_fifo);
   popping = 0;
-  obstack_init (&name_obstack);
-  make_cleanup_obstack_free (&name_obstack);
+  name_obstack.clear ();
 
   result = yyparse ();
   do_cleanups (back_to);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ChangeLog ./gdb/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ChangeLog	2018-01-02 02:02:58.000000000 +0000
+++ ./gdb/ChangeLog	2018-01-09 02:04:56.000000000 +0000
@@ -1,4619 +1,174 @@
-2017-10-25  Leszek Swirski  <leszeks@google.com>
+2018-01-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
 
-	* dwarf2read.c (dwarf2_string_attr): Allow DW_FORM_GNU_str_index.
-
-2017-10-16  Walfred Tedeschi  <walfred.tedeschi@intel.com>
-
-	* features/Makefile (i386-avx-mpx-avx512-pku.dat): Add backslash 
-	at the end of the line.
-	* regformats/i386/amd64-avx-mpx-avx512-pku-linux.dat: Regenerate.
-	* regformats/i386/amd64-avx-mpx-avx512-pku.dat: Regenerate.
-
-2017-09-07  Joel Brobecker  <brobecker@adacore.com>
-
-	* version.in: Set GDB version number to 8.0.1.DATE-git.
-	* PROBLEMS: Likewise.
-
-2017-09-07  Joel Brobecker  <brobecker@adacore.com>
-
-	GDB 8.0.1 released.
-
-2017-09-07  Joel Brobecker  <brobecker@adacore.com>
-
-	* version.in: Set GDB version number to 8.0.1.
-	* PROBLEMS: Likewise.
-
-2017-09-05  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* infrun.c (follow_exec): Call add_thread after
-	target_find_description.
-
-2017-09-05  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* infrun.c (handle_inferior_event_1): When exec'ing, read
-	stop_pc after follow_exec.
-
-2017-09-05  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* remote.c (process_g_packet): Update error message.
-
-2017-09-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	PR gdb/22046
-	* nat/linux-procfs.c (parse_proc_status_state): Fix PROC_STATE_STOPPED
-	detection.
-
-2017-08-28  Simon Marchi  <simon.marchi@ericsson.com>
-
-	PR gdb/21827
-	* cli/cli-script.c (define_command): Don't convert command name
-	to lower case.
-
-2017-08-24  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	PR symtab/22003
-	* dwarf2read.c (dwarf2_const_value_attr, dump_die_shallow)
-	(dwarf2_get_attr_constant_value, dwarf2_fetch_constant_bytes)
-	(skip_form_bytes, attr_form_is_constant): Handle DW_FORM_implicit_const.
-
-2017-08-24  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* dwarf2read.c (build_type_psymtabs_reader): New prototype.
-	(process_psymtab_comp_unit): Accept IS_DEBUG_TYPES.
-	(read_comp_units_from_section): New parameter abbrev_section, use
-	read_and_check_comp_unit_head, allocate signatured_type if needed.
-	(create_all_comp_units): Update read_comp_units_from_section caller.
-
-2017-08-11  Maciej W. Rozycki  <macro@imgtec.com>
-
-	PR breakpoints/21886
-	* mem-break.c (default_memory_insert_breakpoint): Use
-	`->placed_address' rather than `->reqstd_address' for the
-	breakpoint location.
-
-2017-07-25  Yao Qi  <yao.qi@linaro.org>
-
-	PR gdb/21555
-	* arch-utils.c (gdbarch_skip_prologue_noexcept): New function.
-	* arch-utils.h (gdbarch_skip_prologue_noexcept): Declare.
-	* infrun.c: Include arch-utils.h
-	(handle_step_into_function): Call gdbarch_skip_prologue_noexcept.
-	(handle_step_into_function_backward): Likewise.
-	* symtab.c (skip_prologue_sal): Likewise.
-
-2017-07-25  Yao Qi  <yao.qi@linaro.org>
-
-	PR tdep/21717
-	* arm-linux-nat.c (arm_linux_fetch_inferior_registers): Update
-	condition for FPSCR.
-	(arm_linux_store_inferior_registers): Likewise.
-
-2017-06-04  Joel Brobecker  <brobecker@adacore.com>
-
-	* version.in: Set GDB version number to 8.0.0.DATE-git.
-	* PROBLEMS: Likewise.
-
-2017-06-04  Joel Brobecker  <brobecker@adacore.com>
-
-	GDB 8.0 released.
-
-2017-06-04  Joel Brobecker  <brobecker@adacore.com>
-
-	* version.in: Set GDB version number to 8.0.
-	* PROBLEMS: Likewise.
-
-2017-05-30  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* NEWS (Changes in GDB 8.0): Remove extra empty line.  Move
-	"Removed targets and native configurations" up.  Merge duplicate
-	"New commands" sub-sections.  Add "New options" sub-sections.
-
-2017-05-26  Eli Zaretskii  <eliz@gnu.org>
-
-	* cli/cli-script.c (user_args::insert_args): Call gdb::to_string.
-
-	* common/common-utils.h (REPLACE_TO_STRING) [__MINGW32__]: Define
-	to 1 if std::to_string is not available.
-	(gdb::to_string) [REPLACE_TO_STRING]: Provide a replacement
-	implementation for std::string.
-
-2017-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-	PR tui/21482
-	* gdb_curses.h (NOMACROS): Define.
-	(NCURSES_NOMACROS): Define.
-
-2017-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-	PR tui/21482
-	* tui/tui-windata.c (tui_erase_data_content): Cast last mvwaddstr
-	arg to char *.
-	* tui/tui-wingeneral.c (box_win): Likewise.
-	* tui/tui-winsource.c (tui_erase_source_content): Likewise.
-	(tui_show_source_line): Likewise.
-	(tui_show_exec_info_content): Likewise.
-
-2017-05-13  Eli Zaretskii  <eliz@gnu.org>
-
-	* tui/tui.c (tui_enable): Cast "unknown" to 'char *' to avoid a
-	C++ compiler warning.
-
-2017-05-17  Yao Qi  <yao.qi@linaro.org>
-
-	* cli/cli-decode.c (add_alias_cmd): New function.
-	* command.h (add_alias_cmd): Declare.
-	* infcmd.c (_initialize_infcmd): Don't call add_com_alias,
-	instead call add_alias_cmd.
-
-2017-05-12  Tom Tromey  <tom@tromey.com>
-
-	PR rust/21483:
-	* rust-lang.c (rust_evaluate_subexp) <STRUCTOP_STRUCT>: Don't
-	recurse, just call value_struct_elt directly.
-
-2017-05-12  Tom Tromey  <tom@tromey.com>
-
-	* rust-lang.c (rust_dump_subexp_body) <STRUCTOP_ANONYMOUS,
-	OP_RUST_ARRAY>: Fix.
-
-2017-05-12  Tom Tromey  <tom@tromey.com>
-
-	* rust-lang.c (rust_print_subexp): Replace "return" with "break".
-
-2017-05-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
-
-	* procfs.c (procfs_create_inferior): Change prototype to match
-	definition.
-
-2017-05-04  Joel Brobecker  <brobecker@adacore.com>
-
-	* version.in: Set GDB version number to 7.99.91.DATE-git.
-	* PROBLEMS: Likewise.
-
-2017-05-04  Joel Brobecker  <brobecker@adacore.com>
-
-	GDB 7.99.91 released.
-
-2017-05-04  Joel Brobecker  <brobecker@adacore.com>
-
-	* version.in: Set GDB version number to 7.99.91.
-	* PROBLEMS: Likewise.
-
-2017-05-04  Joel Brobecker  <brobecker@adacore.com>
-
-	* NEWS: Rename the "Changes since GDB 7.12" section into
-	"Changes in GDB 8.0".
-
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* Makefile.in (SUBDIR_PYTHON_OBS): Add py-instruction.o.
-	(SUBDIR_PYTHON_SRCS): Add py-instruction.c.
-	* python/py-instruction.c, python/py-instruction.h: New file.
-	* python/py-record.c: Add py-instruction.h include.
-	(gdbpy_initialize_record): Make gdb.Instruction a super class of
-	gdb.RecordInstruction.
-	* python/python-internal.h: Add gdbpy_initialize_instruction
-	declaration.
-	* python/python.c (do_start_initialization): Add
-	gdbpy_initialize_instruction.
-
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* python/py-record-btrace.c (BTPY_REQUIRE_VALID_CALL, btpy_call_type):
-	Remove.
-	(btrace_func_from_recpy_func): New function.
-	(btpy_call_new, btpy_number, btpy_hash, btpy_richcompare): Remove.
-	(btpy_call_level, btpy_call_symbol, btpy_call_instructions,
-	btpy_call_up, btpy_call_prev_sibling, btpy_call_next_sibling): Rename to ...
-	(recpy_bt_func_level, recpy_bt_func_symbol, recpy_bt_func_instructions,
-	recpy_bt_func_up, recpy_bt_func_prev, recpy_bt_func_next): This.
-	Also, use new helper functions.
-	(btpy_list_item): Use new helper functions.
-	(recpy_bt_function_call_history): Use new type name.
-	(btpy_call_getset): Remove.
-	(gdbpy_initialize_btrace): Remove code to initialize
-	gdb.BtraceFunctionCall.
-	* python/py-record-btrace.h (recpy_bt_func_number, recpy_btb_func_level,
-	recpy_btb_func_symbol, recpy_bt_func_instructions, recpy_bt_func_up,
-	recpy_bt_func_prev, recpy_bt_func_next): New export.
-	* python/py-record.c (recpy_func_type): New static object.
-	(recpy_func_new, recpy_func_level, recpy_func_symbol,
-	recpy_func_instructions, recpy_func_up, recpy_func_prev,
-	recpy_func_next): New function.
-	(recpy_element_hash, recpy_element_richcompare): Updated comment.
-	(recpy_func_getset): New static object.
-	(gdbpy_initialize_record): Add code to initialize gdb.RecordInstruction.
-	* python/py-record.h (recpy_func_type, recpy_func_new): New export.
-
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* python/py-record-btrace.c (BTPY_REQUIRE_VALID_INSN): Remove.
-	(btpy_object, btpy_insn_type, btpy_new): Remove.
-	(btpy_list_object): Use gdb.RecordInstruction type instead of
-	gdb.BtraceInstruction type.
-	(btrace_insn_from_recpy_insn): New function.
-	(btpy_insn_or_gap_new): Adjust comment. Use recpy_insn_new instead of
-	btpy_new.
-	(btpy_call_new, btpy_list_item): Do not use btpy_new anymore.
-	(btpy_number, btpy_hash, btpy_call_level, btpy_call_symbol,
-	btpy_call_instructions, btpy_call_up, btpy_call_prev_sibling,
-	btpy_call_next_sibling, btpy_richcompare): Use recpy_element_object
-	instead of btpy_object.
-	(btpy_insn_sal, btpy_insn_pc, btpy_insn_size, btpy_insn_is_speculative,
-	btpy_insn_data, btpy_insn_decode): Rename to ...
-	(recpy_bt_insn_sal, recpy_bt_insn_pc, recpy_bt_insn_size,
-	recpy_bt_insn_is_speculative, recpy_bt_insn_data,
-	recpy_bt_insn_decode): This.  Also, use new helper functions.
-	(btpy_list_position, recpy_bt_goto): Use recpy_element_object and
-	recpy_insn_type.
-	(btpy_insn_getset): Remove.
-	(gdbpy_initialize_btrace): Remove code to initialize
-	gdb.BtraceInstruction.  Use recpy_element_object.
-	* python/py-record-btrace.h (recpy_bt_insn_number, recpy_bt_insn_sal,
-	recpy_bt_insn_pc, recpy_bt_insn_data, recpy_bt_insn_decoded,
-	recpy_bt_insn_size, recpy_bt_insn_is_speculative): New export.
-	* python/py-record.c (recpy_insn_type): New static object.
-	(recpy_insn_new, recpy_insn_sal, recpy_insn_pc, recpy_insn_data,
-	recpy_insn_decoded, recpy_insn_size, recpy_insn_is_speculative,
-	recpy_element_number, recpy_element_hash, recpy_element_richcompare):
-	New function.
-	(recpy_insn_getset): New static object.
-	(gdbpy_initialize_record): Initialize gdb.RecordInstruction.
-	* python/py-record.h (recpy_element_object): New typedef.
-	(recpy_insn_type, recpy_insn_new): New export.
-
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* py-record-btrace.c (btpy_insn_new): Removed.
-	(btpy_insn_or_gap_new): New function.
-	(btpy_insn_error): Removed.
-	(btpy_insn_sal, btpy_insn_pc, btpy_insn_size, btpy_insn_is_speculative,
-	btpy_insn_data, btpy_insn_decode): Remove code path for gaps.
-	(recpy_bt_replay_position, recpy_bt_begin, recpy_bt_end): Call
-	btpy_insn_or_gap_new instead of btpy_insn_new.
-	(btpy_insn_getset): Remove btpy_insn_error.
-	* py-record.c (recpy_gap_type): New static object.
-	(recpy_gap_object): New typedef.
-	(recpy_gap_new, recpy_gap_number, recpy_gap_reason_code,
-	recpy_gap_reason_string): New function.
-	(recpy_gap_getset): New static object.
-	(gdbpy_initialize_record): Initialize gdb.RecordGap type.
-	* py-record.h (recpy_gap_new): New export.
-
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* python/py-record.c (recpy_ptid): Remove.
-	(recpy_record_getset): Remove recpy_ptid.
-
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* btrace.c (btrace_fetch): Set inferior_ptid.
-	* python/py-record-btrace.c: Add "py-record.h" include.
-	(recpy_bt_format, recpy_bt_replay_position, recpy_bt_begin,
-	recpy_bt_end, recpy_bt_instruction_history,
-	recpy_bt_function_call_history, recpy_bt_goto): Use ptid stored
-	in gdb.Record object instead of current ptid.
-	* python/py-record.c: Include new "py-record.h" file.
-	(recpy_record_object): Moved to py-record.h.
-	* python/py-record.h: New file.
-
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* python/py-record-btrace.c (BTPY_REQUIRE_VALID_INSN,
-	BTPY_REQUIRE_VALID_CALL, recpy_bt_function_call_history): Fix
-	indentation.
-
-2017-04-28  Yao Qi  <yao.qi@linaro.org>
-
-	* mips-linux-nat.c (mips_linux_new_thread): Use ptid method
-	lwp instead of ptid_get_lwp.
-
-2017-04-28  Yao Qi  <yao.qi@linaro.org>
-
-	* mips-linux-nat.c (mips_linux_new_thread): Get lwpid from
-	lwp_info instead of getting from inferior_ptid.
-
-2017-04-27  Keith Seitz  <keiths@redhat.com>
-
-	* gdbtypes.c (LVALUE_REFERENCE_TO_RVALUE_BINDING_BADNESS)
-	DIFFERENT_REFERENCE_TYPE_BADNESS): Remove.
-	(CV_CONVERSION_BADNESS): Define.
-	(rank_one_type): Remove overly restrictive rvalue reference
-	rank checks.
-	Add cv-qualifier checks and subranks for type equality.
-	* gdbtypes.h (REFERENCE_CONVERSION_RVALUE,
-	REFERENCE_CONVERSION_CONST_LVALUE, CV_CONVERSION_BADNESS,
-	CV_CONVERSION_CONST, CV_CONVERSION_VOLATILE): Declare.
-
-2017-04-27  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* python/py-inferior.c (inferior_to_inferior_object): Increment reference
-	count when creating the object.
-
-2017-04-25  Yao Qi  <yao.qi@linaro.org>
-
-	* aarch64-tdep.c (aarch64_gdbarch_init): Don't call
-	set_gdbarch_wchar_bit.
-	* arm-tdep.c (arm_gdbarch_init): Likewise.
-
-2017-04-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* aarch64-tdep.c (selftests::aarch64_process_record_test): Make it #if
+	* gdb/gnu-nat.c: Include <elf.h> and <link.h>.
+	(gnu_xfer_auxv): New function.
+	(gnu_xfer_partial): Call gnu_xfer_auxv when `object' is
+	TARGET_OBJECT_AUXV.
+
+2018-01-08  Yao Qi  <yao.qi@linaro.org>
+	    Simon Marchi  <simon.marchi@ericsson.com>
+
+	* Makefile.in (COMMON_SFILES): Remove selftest-arch.c and
+	common/selftest.c.
+	(COMMON_OBS): Remove selftest.o.
+	* configure.ac: Append selftest-arch.c and common/selftest.c to
+	CONFIG_SRCS.  Append selftest-arch.o and selftest.o to COMMON_OBS.
+	* configure: Re-generated.
+	* maint.c (maintenance_selftest): Wrap selftests::run_tests with
 	GDB_SELF_TEST.
-	* arm-tdep.c (selftests::arm_record_test): Likewise.
-
-2017-04-18  John Baldwin  <jhb@FreeBSD.org>
-
-	PR threads/20743
-	* fbsd-nat.c (resume_one_thread_cb): Remove.
-	(resume_all_threads_cb): Remove.
-	(fbsd_resume): Use ALL_NON_EXITED_THREADS instead of
-	iterate_over_threads.
-
-2017-04-17  Joel Brobecker  <brobecker@adacore.com>
-
-	GDB 8.0 branch created (725bf5cf125783c2a7ca4ab63d3768e220bab2db):
-	* version.in: Bump version to 7.99.90.DATE-git.
-
-2017-04-13  Sergio Durigan Junior  <sergiodj@redhat.com>
-
-	PR gdb/21385
-	* windows-nat.c (windows_create_inferior): Declare 'allargs'
-	independently of the host, and fix build breakage on Cygwin.
-
-2017-04-13  Pedro Alves  <palves@redhat.com>
-
-	* inferior.c (free_inferior): Convert to ...
-	(inferior::~inferior): ... this dtor.
-	(inferior::inferior): New ctor, factored out from ...
-	(add_inferior_silent): ... here.  Allocate the inferior with a new
-	expression.
-	(delete_inferior): Call delete instead of free_inferior.
-	* inferior.h (gdb_environ, continuation): Forward declare.
-	(inferior): Now a class.  Add in-class initialization to all
-	members.  Make boolean fields bool, except 'detaching'.
-	(inferior::inferior): New explicit ctor.
-	(inferior::~inferior): New.
-
-2017-04-13  Pedro Alves  <palves@redhat.com>
-
-	* inferior.c (init_inferior_list): Delete.
-	* inferior.h (init_inferior_list): Delete.
-
-2017-04-13  Pedro Alves  <palves@redhat.com>
-
-	PR threads/13217
-	* gdb.threads/threadapply.exp (thr_apply_detach): New procedure.
-	(top level): Call it twice, with different thread sets.
-
-2017-04-13  Pedro Alves  <palves@redhat.com>
-
-	* thread.c: Include <algorithm>.
-	(thread_array_cleanup): Delete.
-	(scoped_inc_dec_ref): New class.
-	(live_threads_count): New function.
-	(set_thread_refcount): Delete.
-	(tp_array_compar_ascending): Now a bool.
-	(tp_array_compar): Convert to a std::sort comparison function.
-	(thread_apply_all_command): Use std::vector and scoped_inc_dec_ref
-	and live_threads_count.
-
-2017-04-13  Pedro Alves  <palves@redhat.com>
-
-	* infrun.c (follow_fork_inferior): Also switch the current
-	inferior.
-
-2017-04-13  Pedro Alves  <palves@redhat.com>
-
-	* breakpoint.c (watch_command_1): Save watchpoint-frame info
-	before calling create_internal_breakpoint.
-
-2017-04-13  Pedro Alves  <palves@redhat.com>
-
-	* fork-child.c (execv_argv): New class.
-	(breakup_args): Refactored as ...
-	(execv_argv::init_for_no_shell): .. this method of execv_argv.
-	Copy arguments to storage and replace separators with NULL
-	terminators in place.
-	(escape_bang_in_quoted_argument): Adjust to return bool.
-	(execv_argv::execv_argv): New ctor.
-	(execv_argv::init_for_shell): New method, factored out from
-	fork_inferior.  Don't strdup strings into the vector.
-	(fork_inferior): Eliminate "shell" local and use execv_argv.  Use
-	Remove free_vector_argv call.
-
-2017-04-13  Yao Qi  <yao.qi@linaro.org>
-
-	* rx-tdep.c (rx_fpsw_type): Check tdep->rx_fpsw_type instead of
-	tdep->rx_psw_type.
-
-2017-04-13  Yao Qi  <yao.qi@linaro.org>
-
-	* rl78-tdep.c (rl78_gdbarch_init): Use XCNEW instead of XNEW.
-	* rx-tdep.c (rx_gdbarch_init): Likewise.
-
-2017-04-13  Pedro Alves  <palves@redhat.com>
-
-	* breakpoint.h (struct breakpoint): Reindent.
-
-2017-04-13  Pedro Alves  <palves@redhat.com>
-
-	* breakpoint.c (bp_location): Rename to ...
-	(bp_locations): ... this.  All references updated.
-	(bp_location_count): Rename to ...
-	(bp_locations_count): ... this.  All references updated.
-	(bp_location_placed_address_before_address_max): Rename to ...
-	(bp_locations_placed_address_before_address_max): ... this.  All
-	references updated.
-	(bp_location_shadow_len_after_address_max): Rename to ...
-	(bp_locations_shadow_len_after_address_max): ... this.  All
-	references updated.
-	(bp_location_compare_addrs): Rename to ...
-	(bp_locations_compare_addrs): ... this.  All references updated.
-	(bp_location_compare):Rename to ...
-	(bp_locations_compare): ... this.  All references updated.
-	(bp_location_target_extensions_update): Rename to ...
-	(bp_locations_target_extensions_update): ... this.  All references
-	updated.
-
-2017-04-12  Sergio Durigan Junior  <sergiodj@redhat.com>
-
-	* Makefile.in (HFILES_NO_SRCDIR): Add "common/gdb_termios.h".
-	* common/common.m4: Check headers 'termios.h', 'termio.h' and
-	'sgtty.h'.
-	* common/gdb_termios.h: New file, with parts of "terminal.h".
-	* inflow.c: Include "gdb_termios.h".
-	* ser-unix.c: Include "gdb_termios.h".
-	* terminal.h: Move terminal-related defines to
-	"common/gdb_termios.h".
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* probe.c (parse_probes): Update.
-	* location.h (delete_event_location): Don't declare.
-	(event_location_deleter::operator()): Update.
-	* location.c (event_location_deleter::operator()): Rename from
-	delete_event_location.
-	* linespec.h (linespec_result) <location>: Change type to
-	event_location_up.
-	* linespec.c (canonicalize_linespec, event_location_to_sals)
-	(decode_objc): Update.
-	(linespec_result): Don't call delete_event_location.
-	* breakpoint.c (create_breakpoints_sal)
-	(bkpt_probe_create_sals_from_location)
-	(strace_marker_create_sals_from_location): Update.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* linespec.h (struct linespec_result): Add constructor and
-	destructor.
-	(init_linespec_result, destroy_linespec_result)
-	(make_cleanup_destroy_linespec_result): Don't declare.
-	* linespec.c (init_linespec_result): Remove.
-	(linespec_result::~linespec_result): Rename from
-	destroy_linespec_result.  Update.
-	(cleanup_linespec_result, make_cleanup_destroy_linespec_result):
-	Remove.
-	* breakpoint.c (create_breakpoint, break_range_command)
-	(decode_location_default): Update.
-	* ax-gdb.c (agent_command_1): Update.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* remote.c (remote_download_tracepoint): Update.
-	* python/py-breakpoint.c (bppy_get_location): Update.
-	* guile/scm-breakpoint.c (bpscm_print_breakpoint_smob)
-	(gdbscm_breakpoint_location): Update.
-	* elfread.c (elf_gnu_ifunc_resolver_return_stop): Update.
-	* breakpoint.h (struct breakpoint) <location, location_range_end>:
-	Change type to event_location_up.
-	* breakpoint.c (create_overlay_event_breakpoint)
-	(create_longjmp_master_breakpoint)
-	(create_std_terminate_master_breakpoint)
-	(create_exception_master_breakpoint)
-	(breakpoint_event_location_empty_p, print_breakpoint_location)
-	(print_one_breakpoint_location, create_thread_event_breakpoint)
-	(init_breakpoint_sal, create_breakpoint)
-	(print_recreate_ranged_breakpoint, break_range_command)
-	(init_ada_exception_breakpoint, say_where): Update.
-	(base_breakpoint_dtor): Don't call delete_event_location.
-	(bkpt_print_recreate, tracepoint_print_recreate)
-	(dprintf_print_recreate, update_static_tracepoint)
-	(breakpoint_re_set_default): Update.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* compile/compile-loc2c.c (compute_stack_depth_worker): Change
-	type of "to_do".  Update.
-	(compute_stack_depth): Use std::vector.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
+	(maintenance_info_selftests): Likewise.
 
-	* printcmd.c (find_instruction_backward): Use std::vector.
+2018-01-05  Pedro Alves  <palves@redhat.com>
 
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* symfile.c (objfilep): Remove typedef.
-	(reread_symbols): Use a std::vector.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* mi/mi-main.c (exec_direction_forward): Remove.
-	(exec_reverse_continue, mi_execute_command): Use scoped_restore.
-	* guile/scm-ports.c (ioscm_with_output_to_port_worker): Use
-	scoped_restore.
-	* guile/guile.c (guile_repl_command, guile_command)
-	(gdbscm_execute_gdb_command): Use scoped_restore.
-	* go-exp.y (go_parse): Use scoped_restore.
-	* d-exp.y (d_parse): Use scoped_restore.
-	* cli/cli-decode.c (cmd_func): Use scoped_restore.
-	* c-exp.y (c_parse): Use scoped_restore.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* mi/mi-parse.h (struct mi_parse): Add constructor, destructor.
-	(mi_parse): Update return type.
-	(mi_parse_free): Remove.
-	* mi/mi-parse.c (mi_parse::mi_parse): New constructor.
-	(mi_parse::~mi_parse): Rename from mi_parse_free.
-	(mi_parse_cleanup): Remove.
-	(mi_parse): Return a unique_ptr.  Use new.
-	* mi/mi-main.c (mi_execute_command): Update.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* location.c (explicit_location_lex_one): Return a
-	unique_xmalloc_ptr.
-	(string_to_explicit_location): Update.  Remove cleanups.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* gnu-v3-abi.c (value_and_voffset_p): Remove typedef.
-	(compare_value_and_voffset): Change type.  Update.
-	(compute_vtable_size): Change type of "offset_vec".
-	(gnuv3_print_vtable): Use std::vector.  Remove cleanups.
-	(gnuv3_get_typeid): Remove extraneous declaration.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* charset.h (wchar_iterator): Fix comment.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* charset.c (iconv_wrapper): New class.
-	(cleanup_iconv): Remove.
-	(convert_between_encodings): Use it.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* symfile.h (increment_reading_symtab): Update type.
-	* symfile.c (decrement_reading_symtab): Remove.
-	(increment_reading_symtab): Return a scoped_restore_tmpl<int>.
-	* psymtab.c (psymtab_to_symtab): Update.
-	* dwarf2read.c (dw2_instantiate_symtab): Update.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* jit.c (struct jit_reader): Declare separately.  Add constructor
-	and destructor.  Change type of "handle".
-	(loaded_jit_reader): Define separately.
-	(jit_reader_load): Update.  New "new".
-	(jit_reader_unload_command): Use "delete".
-	* gdb-dlfcn.h (struct dlclose_deleter): New.
-	(gdb_dlhandle_up): New typedef.
-	(gdb_dlopen, gdb_dlsym): Update types.
-	(gdb_dlclose): Remove.
-	* gdb-dlfcn.c (gdb_dlopen): Return a gdb_dlhandle_up.
-	(gdb_dlsym): Change type of "handle".
-	(make_cleanup_dlclose): Remove.
-	(dlclose_deleter::operator()): Rename from gdb_dlclose.
-	* compile/compile-c-support.c (load_libcc): Update.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* symtab.h (find_pcs_for_symtab_line): Change return type.
-	* symtab.c (find_pcs_for_symtab_line): Change return type.
-	* python/py-linetable.c (build_line_table_tuple_from_pcs): Change
-	type of "vec".  Update.
-	(ltpy_get_pcs_for_line): Update.
-	* linespec.c (decode_digits_ordinary): Update.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* tracepoint.c (actions_command): Update.
-	* python/python.c (python_command, python_interactive_command):
-	Update.
-	* mi/mi-cmd-break.c (mi_cmd_break_commands): Update.
-	* guile/guile.c (guile_command): Update.
-	* defs.h (read_command_lines, read_command_lines_1): Return
-	command_line_up.
-	(command_lines_deleter): New struct.
-	(command_line_up): New typedef.
-	* compile/compile.c (compile_code_command)
-	(compile_print_command): Update.
-	* cli/cli-script.h (get_command_line, copy_command_lines): Return
-	command_line_up.
-	(make_cleanup_free_command_lines): Remove.
-	* cli/cli-script.c (get_command_line, read_command_lines_1)
-	(copy_command_lines): Return command_line_up.
-	(while_command, if_command, read_command_lines, define_command)
-	(document_command): Update.
-	(do_free_command_lines_cleanup, make_cleanup_free_command_lines):
-	Remove.
-	* breakpoint.h (breakpoint_set_commands): Change type of
-	"commands".
-	* breakpoint.c (breakpoint_set_commands): Change type of
-	"commands".  Update.
-	(do_map_commands_command, update_dprintf_command_list)
-	(create_tracepoint_from_upload): Update.
-
-2017-04-12  Tom Tromey  <tom@tromey.com>
-
-	* tracepoint.c (scope_info): Update.
-	* spu-tdep.c (spu_catch_start): Update.
-	* python/python.c (gdbpy_decode_line): Update.
-	* python/py-finishbreakpoint.c (bpfinishpy_init): Update.
-	* python/py-breakpoint.c (bppy_init): Update.
-	* probe.c (parse_probes): Update.
-	* mi/mi-cmd-break.c (mi_cmd_break_insert_1): Update.
-	* location.h (event_location_deleter): New struct.
-	(event_location_up): New typedef.
-	(new_linespec_location, new_address_location, new_probe_location)
-	(new_explicit_location, copy_event_location)
-	(string_to_event_location, string_to_event_location_basic)
-	(string_to_explicit_location): Update return type.
-	(make_cleanup_delete_event_location): Remove.
-	* location.c (new_linespec_location, new_address_location)
-	(new_probe_location, new_explicit_location, copy_event_location):
-	Return event_location_up.
-	(delete_event_location_cleanup)
-	(make_cleanup_delete_event_location): Remove.
-	(string_to_explicit_location, string_to_event_location_basic)
-	(string_to_event_location): Return event_location_up.
-	* linespec.c (canonicalize_linespec, event_location_to_sals)
-	(decode_line_with_current_source)
-	(decode_line_with_last_displayed, decode_objc): Update.
-	* guile/scm-breakpoint.c (gdbscm_register_breakpoint_x): Update.
-	* completer.c (location_completer): Update.
-	* cli/cli-cmds.c (edit_command, list_command): Update.
-	* breakpoint.c (create_overlay_event_breakpoint)
-	(create_longjmp_master_breakpoint)
-	(create_std_terminate_master_breakpoint)
-	(create_exception_master_breakpoint)
-	(create_thread_event_breakpoint): Update.
-	(init_breakpoint_sal): Update.  Remove some dead code.
-	(create_breakpoint_sal): Change type of "location".  Update.
-	(create_breakpoints_sal, create_breakpoint, break_command_1)
-	(dprintf_command, break_range_command, until_break_command)
-	(init_ada_exception_breakpoint)
-	(strace_marker_create_sals_from_location)
-	(update_static_tracepoint, trace_command, ftrace_command)
-	(strace_command, create_tracepoint_from_upload): Update.
-	* break-catch-throw.c (re_set_exception_catchpoint): Update.
-	* ax-gdb.c (agent_command_1): Update.
-
-2017-04-12  Pedro Alves  <palves@redhat.com>
-
-	* Makefile.in (ALL_TARGET_OBS): Add i386-go32-tdep.o.
-	* configure.tgt: Handle i[34567]86-*-go32* and
-	i[34567]86-*-msdosdjgpp*.
-	* i386-tdep.c (i386_svr4_reg_to_regnum):
-	Make extern.
-	(i386_go32_init_abi, i386_coff_osabi_sniffer): Moved to
-	i386-go32-tdep.c.
-	(_initialize_i386_tdep): DJGPP bits moved to i386-go32-tdep.c.
-	* i386-go32-tdep.c: New file.
-	* i386-tdep.h (tdesc_i386_mmx, i386_svr4_reg_to_regnum): New
-	declarations.
-
-2017-04-12  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* aix-thread.c (pd_status2str): Change return type to const char *.
-
-2017-04-12  Pedro Alves  <palves@redhat.com>
-
-	* i386-tdep.c (i386_elf_init_abi, i386_go32_init_abi): Remove
-	calls to set_gdbarch_gnu_triplet_regexp.
-
-2017-04-12  Pedro Alves  <palves@redhat.com>
-
-	PR gdb/21323
-	* c-lang.c (cplus_primitive_types) <cplus_primitive_type_wchar_t>:
-	New enum value.
-	(cplus_language_arch_info): Register cplus_primitive_type_wchar_t.
-	* gdbtypes.h (struct builtin_type) <builtin_wchar>: New field.
-	* gdbtypes.c (gdbtypes_post_init): Create the "wchar_t" type.
-	* gdbarch.sh (wchar_bit, wchar_signed): New per-arch values.
-	* gdbarch.h, gdbarch.c: Regenerate.
-	* aarch64-tdep.c (aarch64_gdbarch_init): Override
-	gdbarch_wchar_bit and gdbarch_wchar_signed.
-	* alpha-tdep.c (alpha_gdbarch_init): Likewise.
-	* arm-tdep.c (arm_gdbarch_init): Likewise.
-	* avr-tdep.c (avr_gdbarch_init): Likewise.
-	* h8300-tdep.c (h8300_gdbarch_init): Likewise.
-	* i386-nto-tdep.c (i386nto_init_abi): Likewise.
-	* i386-tdep.c (i386_go32_init_abi): Likewise.
-	* m32r-tdep.c (m32r_gdbarch_init): Likewise.
-	* moxie-tdep.c (moxie_gdbarch_init): Likewise.
-	* nds32-tdep.c (nds32_gdbarch_init): Likewise.
-	* rs6000-aix-tdep.c (rs6000_aix_init_osabi): Likewise.
-	* sh-tdep.c (sh_gdbarch_init): Likewise.
-	* sparc-tdep.c (sparc32_gdbarch_init): Likewise.
-	* sparc64-tdep.c (sparc64_init_abi): Likewise.
-	* windows-tdep.c (windows_init_abi): Likewise.
-	* xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise.
-
-2017-04-12  Pedro Alves  <palves@redhat.com>
-
-	PR c++/21323
-	* c-lang.c (cplus_primitive_types) <cplus_primitive_type_char16_t,
-	cplus_primitive_type_char32_t>: New enum values.
-	(cplus_language_arch_info): Register cplus_primitive_type_char16_t
-	and cplus_primitive_type_char32_t.
-	* dwarf2read.c (read_base_type) <DW_ATE_UTF>: If bit size is 16 or
-	32, use the archtecture's built-in type for char16_t and char32_t,
-	respectively.  Otherwise, fallback to init_integer_type as before,
-	but make the type unsigned, and issue a complaint.
-	* gdbtypes.c (gdbtypes_post_init): Make char16_t and char32_t unsigned.
-
-2017-04-12  Alan Hayward  <alan.hayward@arm.com>
-
-	* m32r-tdep.c (M32R_ARG_REGISTER_SIZE): Added.
-	(m32r_push_dummy_call): Use M32R_ARG_REGISTER_SIZE.
-
-2017-04-12  Sergio Durigan Junior  <sergiodj@redhat.com>
-
-	* windows-nat.c (windows_create_inferior): Declare 'toexec' as
-	'const char *'.
-
-2017-04-12  Sergio Durigan Junior  <sergiodj@redhat.com>
-
-	* common/common-utils.c (free_vector_argv): New function.
-	* common/common-utils.h: Include <vector>.
-	(free_vector_argv): New prototype.
-	* darwin-nat.c (darwin_create_inferior): Rewrite function
-	prototype in order to constify "exec_file" and accept a
-	"std::string" for "allargs".
-	* fork-child.c: Include <vector>.
-	(breakup_args): Rewrite function, using C++.
-	(fork_inferior): Rewrite function header, constify "exec_file_arg"
-	and accept "std::string" for "allargs".  Update the code to
-	calculate "argv" based on "allargs".  Update calls to "exec_fun"
-	and "execvp".
-	* gnu-nat.c (gnu_create_inferior): Rewrite function prototype in
-	order to constify "exec_file" and accept a "std::string" for
-	"allargs".
-	* go32-nat.c (go32_create_inferior): Likewise.
-	* inf-ptrace.c (inf_ptrace_create_inferior): Likewise.
-	* infcmd.c (run_command_1): Constify "exec_file".  Use
-	"std::string" for inferior arguments.
-	* inferior.h (fork_inferior): Update prototype.
-	* linux-nat.c (linux_nat_create_inferior): Rewrite function
-	prototype in order to constify "exec_file" and accept a
-	"std::string" for "allargs".
-	* nto-procfs.c (procfs_create_inferior): Likewise.
-	* procfs.c (procfs_create_inferior): Likewise.
-	* remote-sim.c (gdbsim_create_inferior): Likewise.
-	* remote.c (extended_remote_run): Update code to accept
-	"std::string" as argument.
-	(extended_remote_create_inferior): Rewrite function prototype in
-	order to constify "exec_file" and accept a "std::string" for
-	"allargs".
-	* rs6000-nat.c (super_create_inferior): Likewise.
-	(rs6000_create_inferior): Likewise.
-	* target.h (struct target_ops) <to_create_inferior>: Likewise.
-	* windows-nat.c (windows_create_inferior): Likewise.
-
-2017-04-11  Pedro Alves  <palves@redhat.com>
-
-	* thread.c: Fix whitespace throughout.
-
-2017-04-11  Philipp Rudo  <prudo@linux.vnet.ibm.com>
-
-	* linux-nat.c (linux_nat_detach): Remove delete_lwp call.
-
-2017-04-11  Alan Hayward  <alan.hayward@arm.com>
-
-	* arm-tdep.c (arm_store_return_value): Use FP_REGISTER_SIZE
-
-2017-04-10  Sergio Durigan Junior  <sergiodj@redhat.com>
-
-	PR gdb/21364
-	* osdata.c (info_osdata): Check if 'type' is an empty string
-	instead of NULL.
-
-2017-04-10  Pedro Alves  <palves@redhat.com>
-
-	* thread.c (add_thread_silent, delete_thread_1, find_thread_ptid)
-	(ptid_to_global_thread_id, in_thread_list)
-	(do_captured_list_thread_ids, set_resumed, set_running)
-	(set_executing, set_stop_requested, finish_thread_state)
-	(validate_registers_access, can_access_registers_ptid)
-	(print_thread_info_1, switch_to_thread)
-	(do_restore_current_thread_cleanup)
-	(make_cleanup_restore_current_thread, thread_command)
-	(thread_name_command): Use operator== instead of ptid_equal.
-
-2017-04-10  Pedro Alves  <palves@redhat.com>
-
-	* thread.c (struct current_thread_cleanup) <next>: Delete field.
-	(current_thread_cleanup_chain): Delete.
-	(restore_current_thread_cleanup_dtor)
-	(make_cleanup_restore_current_thread): Remove references to
-	current_thread_cleanup_chain.
-
-2017-04-10  Alan Hayward  <alan.hayward@arm.com>
-
-	* msp430-tdep.c (msp430_pseudo_register_read): Never return
-	REG_UNKNOWN.
-
-2017-04-10  Yao Qi  <yao.qi@linaro.org>
-
-	PR gdb/19942
-	* gdbthread.h (thread_info::deletable): New method.
-	(thread_info::incref): New method.
-	(thread_info::decref): New method.
-	(thread_info::refcount): Move it to private.
-	* infrun.c (save_stop_context): Call inc_refcount.
-	(release_stop_context_cleanup): Likewise.
-	* thread.c (set_thread_exited): New function.
-	(init_thread_list): Delete "tp" only it is deletable, otherwise
-	call set_thread_exited.
-	(delete_thread_1): Call set_thread_exited.
-	(current_thread_cleanup) <inferior_pid>: Remove.
-	<thread>: New field.
-	(restore_current_thread_ptid_changed): Removed.
-	(do_restore_current_thread_cleanup): Adjust.
-	(restore_current_thread_cleanup_dtor): Don't call
-	find_thread_ptid.
-	(set_thread_refcount): Use dec_refcount.
-	(make_cleanup_restore_current_thread): Adjust.
-	(thread_apply_all_command): Call inc_refcount.
-	(_initialize_thread): Don't call
-	observer_attach_thread_ptid_changed.
-
-2017-04-10  Yao Qi  <yao.qi@linaro.org>
-
-	* thread.c (delete_thread_1): Hoist code on marking thread as
-	exited.
-
-2017-04-09  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* windows-nat.c (windows_detach): Initialize ptid with
-	minus_one_ptid.
-
-2017-04-07  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* unittests/ptid-selftests.c: Fix erroneous assert messages.
-
-2017-04-07  Alan Hayward  <alan.hayward@arm.com>
-
-	* bfin-tdep.c (BFIN_MAX_REGISTER_SIZE): Add.
-	(bfin_pseudo_register_read): Use BFIN_MAX_REGISTER_SIZE.
-	(bfin_pseudo_register_write): Likewise
-
-2017-04-06  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* common/ptid.h (struct ptid): Change to...
-	(class ptid_t): ... this.
-	<ptid_t>: New constructors.
-	<pid, lwp_p, lwp, tid_p, tid, is_pid, operator==, operator!=,
-	matches>: New methods.
-	<make_null, make_minus_one>: New static methods.
-	<pid>: Rename to...
-	<m_pid>: ...this.
-	<lwp>: Rename to...
-	<m_lwp>: ...this.
-	<tid>: Rename to...
-	<m_tid>: ...this.
-	(ptid_build, ptid_get_pid, ptid_get_lwp, ptid_get_tid, ptid_equal,
-	ptid_is_pid, ptid_lwp_p, ptid_tid_p, ptid_match): Take ptid arguments
-	as references, move comment to class ptid_t.
-	* common/ptid.c (null_ptid, minus_one_ptid): Initialize with
-	ptid_t static methods.
-	(ptid_build, pid_to_ptid, ptid_get_pid, ptid_get_tid,
-	ptid_equal, ptid_is_pid, ptid_lwp_p, ptid_tid_p, ptid_match):
-	Take ptid arguments as references, implement using ptid_t methods.
-	* unittests/ptid-selftests.c: New file.
-	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
-	unittests/ptid-selftests.c.
-	(SUBDIR_UNITTESTS_OBS): Add unittests/ptid-selftests.o.
-
-2017-04-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
-
-	* python/python.c (python_run_simple_file): Cast mode literal to
-	non-const char pointer as expected by PyFile_FromString.
-
-2017-04-05  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* common/ptid.c (ptid_lwp_p, ptid_tid_p): Remove comparison with
-	minus_one_ptid and null_ptid.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* warning.m4 (build_warnings): Remove -Wno-write-strings.
-	* configure: Regenerate.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* ada-exp.y (yyerror): Constify.
-	* ada-lang.c (bound_name, get_selections)
-	(ada_variant_discrim_type)
-	(ada_variant_discrim_name, ada_value_struct_elt)
-	(ada_lookup_struct_elt_type, is_unchecked_variant)
-	(ada_which_variant_applies, standard_exc, ada_get_next_arg)
-	(catch_ada_exception_command_split)
-	(catch_ada_assert_command_split, catch_assert_command)
-	(ada_op_name): Constify.
-	* ada-lang.h (ada_yyerror, get_selections)
-	(ada_variant_discrim_name, ada_value_struct_elt): Constify.
-	* arc-tdep.c (arc_print_frame_cache): Constify.
-	* arm-tdep.c (arm_skip_stub): Constify.
-	* ax-gdb.c (gen_binop, gen_struct_ref_recursive, gen_struct_ref)
-	(gen_aggregate_elt_ref): Constify.
-	* bcache.c (print_bcache_statistics): Constify.
-	* bcache.h (print_bcache_statistics): Constify.
-	* break-catch-throw.c (catch_exception_command_1):
-	* breakpoint.c (struct ep_type_description::description):
-	Constify.
-	(add_solib_catchpoint): Constify.
-	(catch_fork_command_1): Add cast.
-	(add_catch_command): Constify.
-	* breakpoint.h (add_catch_command, add_solib_catchpoint):
-	Constify.
-	* bsd-uthread.c (bsd_uthread_state): Constify.
-	* buildsym.c (patch_subfile_names): Constify.
-	* buildsym.h (next_symbol_text_func, patch_subfile_names):
-	Constify.
-	* c-exp.y (yyerror): Constify.
-	(token::oper): Constify.
-	* c-lang.h (c_yyerror, cp_print_class_member): Constify.
-	* c-varobj.c (cplus_describe_child): Constify.
-	* charset.c (find_charset_names): Add cast.
-	(find_charset_names): Constify array and add const_cast.
-	* cli/cli-cmds.c (complete_command, cd_command): Constify.
-	(edit_command): Constify.
-	* cli/cli-decode.c (lookup_cmd): Constify.
-	* cli/cli-dump.c (dump_memory_command, dump_value_command):
-	Constify.
-	(struct dump_context): Constify.
-	(add_dump_command, restore_command): Constify.
-	* cli/cli-script.c (get_command_line): Constify.
-	* cli/cli-script.h (get_command_line): Constify.
-	* cli/cli-utils.c (check_for_argument): Constify.
-	* cli/cli-utils.h (check_for_argument): Constify.
-	* coff-pe-read.c (struct read_pe_section_data): Constify.
-	* command.h (lookup_cmd): Constify.
-	* common/print-utils.c (decimal2str): Constify.
-	* completer.c (gdb_print_filename): Constify.
-	* corefile.c (set_gnutarget): Constify.
-	* cp-name-parser.y (yyerror): Constify.
-	* cp-valprint.c (cp_print_class_member): Constify.
-	* cris-tdep.c (cris_register_name, crisv32_register_name):
-	Constify.
-	* d-exp.y (yyerror): Constify.
-	(struct token::oper): Constify.
-	* d-lang.h (d_yyerror): Constify.
-	* dbxread.c (struct header_file_location::name): Constify.
-	(add_old_header_file, add_new_header_file, last_function_name)
-	(dbx_next_symbol_text, add_bincl_to_list)
-	(find_corresponding_bincl_psymtab, set_namestring)
-	(find_stab_function_addr, read_dbx_symtab, start_psymtab)
-	(dbx_end_psymtab, read_ofile_symtab, process_one_symbol):
-	* defs.h (command_line_input, print_address_symbolic)
-	(deprecated_readline_begin_hook): Constify.
-	* dwarf2read.c (anonymous_struct_prefix, dwarf_bool_name):
-	Constify.
-	* event-top.c (handle_line_of_input): Constify and add cast.
-	* exceptions.c (catch_errors): Constify.
-	* exceptions.h (catch_errors): Constify.
-	* expprint.c (print_subexp_standard, op_string, op_name)
-	(op_name_standard, dump_raw_expression, dump_raw_expression):
-	* expression.h (op_name, op_string, dump_raw_expression):
-	Constify.
-	* f-exp.y (yyerror): Constify.
-	(struct token::oper): Constify.
-	(struct f77_boolean_val::name): Constify.
-	* f-lang.c (f_word_break_characters): Constify.
-	* f-lang.h (f_yyerror): Constify.
-	* fork-child.c (fork_inferior): Add cast.
-	* frv-tdep.c (struct gdbarch_tdep::register_names): Constify.
-	(new_variant): Constify.
-	* gdbarch.sh (pstring_ptr, pstring_list): Constify.
-	* gdbarch.c: Regenerate.
-	* gdbcore.h (set_gnutarget): Constify.
-	* go-exp.y (yyerror): Constify.
-	(token::oper): Constify.
-	* go-lang.h (go_yyerror): Constify.
-	* go32-nat.c (go32_sysinfo): Constify.
-	* guile/scm-breakpoint.c (gdbscm_breakpoint_expression): Constify.
-	* guile/scm-cmd.c (cmdscm_function): Constify.
-	* guile/scm-param.c (pascm_param_value): Constify.
-	* h8300-tdep.c (h8300_register_name, h8300s_register_name)
-	(h8300sx_register_name): Constify.
-	* hppa-tdep.c (hppa32_register_name, hppa64_register_name):
-	Constify.
-	* ia64-tdep.c (ia64_register_names): Constify.
-	* infcmd.c (construct_inferior_arguments): Constify.
-	(path_command, attach_post_wait): Constify.
-	* language.c (show_range_command, show_case_command)
-	(unk_lang_error): Constify.
-	* language.h (language_defn::la_error)
-	(language_defn::la_name_of_this): Constify.
-	* linespec.c (decode_line_2): Constify.
-	* linux-thread-db.c (thread_db_err_str): Constify.
-	* lm32-tdep.c (lm32_register_name): Constify.
-	* m2-exp.y (yyerror): Constify.
-	* m2-lang.h (m2_yyerror): Constify.
-	* m32r-tdep.c (m32r_register_names): Constify and make static.
-	* m68hc11-tdep.c (m68hc11_register_names): Constify.
-	* m88k-tdep.c (m88k_register_name): Constify.
-	* macroexp.c (appendmem): Constify.
-	* mdebugread.c (fdr_name, add_data_symbol, parse_type)
-	(upgrade_type, parse_external, parse_partial_symbols)
-	(mdebug_next_symbol_text, cross_ref, mylookup_symbol, new_psymtab)
-	(new_symbol): Constify.
-	* memattr.c (mem_info_command): Constify.
-	* mep-tdep.c (register_name_from_keyword): Constify.
-	* mi/mi-cmd-env.c (mi_cmd_env_path, _initialize_mi_cmd_env):
-	Constify.
-	* mi/mi-cmd-stack.c (list_args_or_locals): Constify.
-	* mi/mi-cmd-var.c (mi_cmd_var_show_attributes): Constify.
-	* mi/mi-main.c (captured_mi_execute_command): Constify and add
-	cast.
-	(mi_execute_async_cli_command): Constify.
-	* mips-tdep.c (mips_register_name): Constify.
-	* mn10300-tdep.c (register_name, mn10300_generic_register_name)
-	(am33_register_name, am33_2_register_name)
-	* moxie-tdep.c (moxie_register_names): Constify.
-	* nat/linux-osdata.c (osdata_type): Constify fields.
-	* nto-tdep.c (nto_parse_redirection): Constify.
-	* objc-lang.c (lookup_struct_typedef, lookup_objc_class)
-	(lookup_child_selector): Constify.
-	(objc_methcall::name): Constify.
-	* objc-lang.h (lookup_objc_class, lookup_child_selector)
-	(lookup_struct_typedef): Constify.
-	* objfiles.c (pc_in_section): Constify.
-	* objfiles.h (pc_in_section): Constify.
-	* p-exp.y (struct token::oper): Constify.
-	(yyerror): Constify.
-	* p-lang.h (pascal_yyerror): Constify.
-	* parser-defs.h (op_name_standard): Constify.
-	(op_print::string): Constify.
-	(exp_descriptor::op_name): Constify.
-	* printcmd.c (print_address_symbolic): Constify.
-	* psymtab.c (print_partial_symbols): Constify.
-	* python/py-breakpoint.c (stop_func): Constify.
-	(bppy_get_expression): Constify.
-	* python/py-cmd.c (cmdpy_completer::name): Constify.
-	(cmdpy_function): Constify.
-	* python/py-event.c (evpy_add_attribute)
-	(gdbpy_initialize_event_generic): Constify.
-	* python/py-event.h (evpy_add_attribute)
-	(gdbpy_initialize_event_generic): Constify.
-	* python/py-evts.c (add_new_registry): Constify.
-	* python/py-finishbreakpoint.c (outofscope_func): Constify.
-	* python/py-framefilter.c (get_py_iter_from_func): Constify.
-	* python/py-inferior.c (get_buffer): Add cast.
-	* python/py-param.c (parm_constant::name): Constify.
-	* python/py-unwind.c (fprint_frame_id): Constify.
-	* python/python.c (gdbpy_parameter_value): Constify.
-	* remote-fileio.c (remote_fio_func_map): Make 'name' const.
-	* remote.c (memory_packet_config::name): Constify.
-	(show_packet_config_cmd, remote_write_bytes)
-	(remote_buffer_add_string):
-	* reverse.c (exec_reverse_once): Constify.
-	* rs6000-tdep.c (variant::name, variant::description): Constify.
-	* rust-exp.y (rustyyerror): Constify.
-	* rust-lang.c (rust_op_name): Constify.
-	* rust-lang.h (rustyyerror): Constify.
-	* serial.h (serial_ops::name): Constify.
-	* sh-tdep.c (sh_sh_register_name, sh_sh3_register_name)
-	(sh_sh3e_register_name, sh_sh2e_register_name)
-	(sh_sh2a_register_name, sh_sh2a_nofpu_register_name)
-	(sh_sh_dsp_register_name, sh_sh3_dsp_register_name)
-	(sh_sh4_register_name, sh_sh4_nofpu_register_name)
-	(sh_sh4al_dsp_register_name): Constify.
-	* sh64-tdep.c (sh64_register_name): Constify.
-	* solib-darwin.c (lookup_symbol_from_bfd): Constify.
-	* spu-tdep.c (spu_register_name, info_spu_dma_cmdlist): Constify.
-	* stabsread.c (patch_block_stabs, read_type_number)
-	(ref_map::stabs, ref_add, process_reference)
-	(symbol_reference_defined, define_symbol, define_symbol)
-	(error_type, read_type, read_member_functions, read_cpp_abbrev)
-	(read_one_struct_field, read_struct_fields, read_baseclasses)
-	(read_tilde_fields, read_struct_type, read_array_type)
-	(read_enum_type, read_sun_builtin_type, read_sun_floating_type)
-	(read_huge_number, read_range_type, read_args, common_block_start)
-	(find_name_end): Constify.
-	* stabsread.h (common_block_start, define_symbol)
-	(process_one_symbol, symbol_reference_defined, ref_add):
-	* symfile.c (get_section_index, add_symbol_file_command):
-	* symfile.h (get_section_index): Constify.
-	* target-descriptions.c (tdesc_type::name): Constify.
-	(tdesc_free_type): Add cast.
-	* target.c (find_default_run_target):
-	(add_deprecated_target_alias, find_default_run_target)
-	(target_announce_detach): Constify.
-	(do_option): Constify.
-	* target.h (add_deprecated_target_alias): Constify.
-	* thread.c (print_thread_info_1): Constify.
-	* top.c (deprecated_readline_begin_hook, command_line_input):
-	Constify.
-	(init_main): Add casts.
-	* top.h (handle_line_of_input): Constify.
-	* tracefile-tfile.c (tfile_write_uploaded_tsv): Constify.
-	* tracepoint.c (tvariables_info_1, trace_status_mi): Constify.
-	(tfind_command): Rename to ...
-	(tfind_command_1): ... this and constify.
-	(tfind_command): New function.
-	(tfind_end_command, tfind_start_command): Adjust.
-	(encode_source_string): Constify.
-	* tracepoint.h (encode_source_string): Constify.
-	* tui/tui-data.c (tui_partial_win_by_name): Constify.
-	* tui/tui-data.h (tui_partial_win_by_name): Constify.
-	* tui/tui-source.c (tui_set_source_content_nil): Constify.
-	* tui/tui-source.h (tui_set_source_content_nil): Constify.
-	* tui/tui-win.c (parse_scrolling_args): Constify.
-	* tui/tui-windata.c (tui_erase_data_content): Constify.
-	* tui/tui-windata.h (tui_erase_data_content): Constify.
-	* tui/tui-winsource.c (tui_erase_source_content): Constify.
-	* tui/tui.c (tui_enable): Add cast.
-	* utils.c (defaulted_query): Constify.
-	(init_page_info): Add cast.
-	(puts_debug, subset_compare): Constify.
-	* utils.h (subset_compare): Constify.
-	* varobj.c (varobj_format_string): Constify.
-	* varobj.h (varobj_format_string): Constify.
-	* vax-tdep.c (vax_register_name): Constify.
-	* windows-nat.c (windows_detach): Constify.
-	* xcoffread.c (process_linenos, xcoff_next_symbol_text): Constify.
-	* xml-support.c (gdb_xml_end_element): Constify.
-	* xml-tdesc.c (tdesc_start_reg): Constify.
-	* xstormy16-tdep.c (xstormy16_register_name): Constify.
-	* xtensa-tdep.c (xtensa_find_register_by_name): Constify.
-	* xtensa-tdep.h (xtensa_register_t::name): Constify.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* proc-api.c (struct trans): Constify.
-	(procfs_note): Constify.
-	* proc-events.c (struct trans, syscall_table):
-	* proc-flags.c (struct trans): Constify.
-	* proc-utils.h (procfs_note): Constify.
-	* proc-why.c (struct trans): Constify.
-	* procfs.c (dead_procinfo, find_syscall, proc_warn, proc_error)
-	(procfs_detach): Constify.
-	* sol-thread.c (struct string_map): Constify.
-	(td_err_string, td_state_string): Constify.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* proc-api.c (procfs_filename): Don't initialize
-        procfs_filename.
-	(prepare_to_trace): Assume procfs_filename is non-NULL.
-	(_initialize_proc_api): Give procfs_filename a default value here.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* break-catch-throw.c (handle_gnu_v3_exceptions): Constify
-	'cond_string' parameter.
-	(extract_exception_regexp): Constify 'string' parameter.
-	(catch_exception_command_1): Constify.
-	* breakpoint.c (init_catchpoint)
-	(create_fork_vfork_event_catchpoint): Constify 'cond_string'
-	parameter.
-	(ep_parse_optional_if_clause, catch_fork_command_1)
-	(catch_exec_command_1): Constify.
-	* breakpoint.h (init_catchpoint): Constify 'cond_string'
-	parameter.
-	(ep_parse_optional_if_clause): Constify.
-	* cli/cli-utils.c (remove_trailing_whitespace)
-	(check_for_argument): Constify.
-	* cli/cli-utils.h (remove_trailing_whitespace): Constify and add
-	non-const overload.
-	(check_for_argument): Likewise.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* event-top.c (command_line_handler): Add cast to execute_command
+	PR gdb/18653
+	* common/signals-state-save-restore.c
+	(save_original_signals_state): New parameter 'quiet'.  Warn if we
+	find a custom handler preinstalled, instead of internal erroring.
+	But only warn if !quiet.
+	* common/signals-state-save-restore.h
+	(save_original_signals_state): New parameter 'quiet'.
+	* main.c (captured_main_1): Move save_original_signals_state call
+	after option handling, and pass QUIET.
+
+2018-01-05  Pedro Alves  <palves@redhat.com>
+
+	* spu-tdep.c (spu_catch_start): Pass
+	symbol_name_match_type::SEARCH_NAME to block_lookup_symbol.
+
+2018-01-05  Pedro Alves  <palves@redhat.com>
+
+	PR gdb/22670
+	* ada-lang.c (literal_symbol_name_matcher): New function.
+	(ada_get_symbol_name_matcher): Use it for
+	symbol_name_match_type::SEARCH_NAME.
+	* block.c (block_lookup_symbol): New parameter 'match_type'.  Pass
+	it down instead of assuming symbol_name_match_type::FULL.
+	* block.h (block_lookup_symbol): New parameter 'match_type'.
+	* c-valprint.c (print_unpacked_pointer): Use
+	lookup_symbol_search_name instead of lookup_symbol.
+	* compile/compile-object-load.c (get_out_value_type): Pass down
+	symbol_name_match_type::SEARCH_NAME.
+	* cp-namespace.c (cp_basic_lookup_symbol): Pass down
+	symbol_name_match_type::FULL.
+	* cp-support.c (cp_get_symbol_name_matcher): Handle
+	symbol_name_match_type::SEARCH_NAME.
+	* infrun.c (insert_exception_resume_breakpoint): Use
+	lookup_symbol_search_name.
+	* p-valprint.c (pascal_val_print): Use lookup_symbol_search_name.
+	* psymtab.c (maintenance_check_psymtabs): Use
+	symbol_name_match_type::SEARCH_NAME and SYMBOL_SEARCH_NAME.
+	* stack.c (print_frame_args): Use lookup_symbol_search_name and
+	SYMBOL_SEARCH_NAME.
+	* symtab.c (lookup_local_symbol): Don't demangle the lookup name
+	if symbol_name_match_type::SEARCH_NAME.
+	(lookup_symbol_in_language): Pass down
+	symbol_name_match_type::FULL.
+	(lookup_symbol_search_name): New.
+	(lookup_language_this): Pass down
+	symbol_name_match_type::SEARCH_NAME.
+	(lookup_symbol_aux, lookup_local_symbol): New parameter
+	'match_type'.  Pass it down.
+	* symtab.h (symbol_name_match_type::SEARCH_NAME): New enumerator.
+	(lookup_symbol_search_name): New declaration.
+	(lookup_symbol_in_block): New 'match_type' parameter.
+
+2018-01-05  Pedro Alves  <palves@redhat.com>
+
+	PR gdb/22670
+	* ada-lang.c (ada_lookup_encoded_symbol): Reimplement in terms of
+	ada_lookup_symbol.
+	(ada_lookup_symbol): Reimplement in terms of
+	ada_lookup_symbol_list, bits factored out from
+	ada_lookup_encoded_symbol.
+
+2018-01-05  Joel Brobecker  <brobecker@adacore.com>
+
+	GDB 8.1 branch created (5219ac6237c272b938c28517bf371429260c71e7):
+	* version.in: Bump version to 8.0.90.DATE-git.
+
+2018-01-03  Xavier Roirand  <roirand@adacore.com>
+
+	* ada-lang.h (ada_exception_catchpoint_kind) <ada_catch_handlers>:
+	Add field.
+	* ada-lang.c (struct exception_support_info) <catch_handlers_sym>:
+	Add field.
+	(default_exception_support_info) <catch_handlers_sym>: Add field.
+	(exception_support_info_fallback) <catch_handlers_sym>: Add field.
+	(ada_exception_name_addr_1): Add "catch handlers" handling.
+	(ada_exception_catchpoint_cond_string) <ex>: New parameter.
+	Update all callers.
+	(create_excep_cond_exprs) <ex>: Add parameter.
+	(re_set_exception): Update create_excep_cond_exprs call.
+	(print_it_exception, print_one_exception, print_mention_exception)
+	(print_recreate_exception): Add "catch handler" handling.
+	(allocate_location_catch_handlers, re_set_catch_handlers)
+	(check_status_catch_handlers, print_it_catch_handlers)
+	(print_one_catch_handlers, print_mention_catch_handlers)
+	(print_recreate_catch_handlers): New function.
+	(catch_handlers_breakpoint_ops): New variable.
+	(catch_ada_exception_command_split) <is_catch_handlers_cmd>:
+	Add parameter.  Add "catch handler" handling.
+	(ada_exception_sym_name, ada_exception_breakpoint_ops):
+	Add "catch handler" handling.
+	(ada_exception_catchpoint_cond_string): Add "catch handler"
+	handling.
+	(create_ada_exception_catchpoint): Update create_excep_cond_exprs
 	call.
-	* record-btrace.c (cmd_record_btrace_bts_start)
-	(cmd_record_btrace_pt_start, cmd_record_btrace_start)
-	(cmd_record_btrace_start): Add cast to execute_command call.
-	* record-full.c (record_full_goto_insn):
-	* record.c (record_start, record_stop): Add cast to
-	execute_command_to_string calls.
-	(cmd_record_start): Add cast to execute_command calls.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* python/python-internal.h (gdb_PyArg_ParseTupleAndKeywords): New
-	static inline function.
-	* python/py-arch.c (archpy_disassemble): Constify 'keywords'
-	array and use gdb_PyArg_ParseTupleAndKeywords.
-	* python/py-cmd.c (cmdpy_init): Likewise.
-	* python/py-finishbreakpoint.c (bpfinishpy_init): Likewise.
-	* python/py-inferior.c (infpy_read_memory, infpy_write_memory)
-	(infpy_search_memory): Likewise.
-	* python/py-objfile.c (objfpy_add_separate_debug_file)
-	(gdbpy_lookup_objfile): Likewise.
-	* python/py-symbol.c (gdbpy_lookup_symbol)
-	(gdbpy_lookup_global_symbol): Likewise.
-	* python/py-type.c (gdbpy_lookup_type): Likewise.
-	* python/py-value.c (valpy_lazy_string, valpy_string): Likewise.
-	* python/python.c (execute_gdb_command, gdbpy_write, gdbpy_flush):
-	Likewise.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* python/python-internal.h (gdb_PyGetSetDef): New type.
-	* python/py-block.c (block_object_getset)
-	(breakpoint_object_getset): Now a gdb_PyGetSetDef array.
-	* python/py-event.c (event_object_getset)
-	(finish_breakpoint_object_getset): Likewise.
-	* python/py-inferior.c (inferior_object_getset): Likewise.
-	* python/py-infthread.c (thread_object_getset): Likewise.
-	* python/py-lazy-string.c (lazy_string_object_getset): Likewise.
-	* python/py-linetable.c (linetable_entry_object_getset): Likewise.
-	* python/py-objfile.c (objfile_getset): Likewise.
-	* python/py-progspace.c (pspace_getset): Likewise.
-	* python/py-record-btrace.c (btpy_insn_getset, btpy_call_getset):
-	Likewise.
-	* python/py-record.c (recpy_record_getset): Likewise.
-	* python/py-symbol.c (symbol_object_getset): Likewise.
-	* python/py-symtab.c (symtab_object_getset, sal_object_getset):
-	Likewise.
-	* python/py-type.c (type_object_getset, field_object_getset):
-	Likewise.
-	* python/py-value.c (value_object_getset): Likewise.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* python/python-internal.h (gdb_PyObject_CallMethod)
-	(gdb_PyErr_NewException, gdb_PySys_GetObject, gdb_PySys_SetPath):
-	New functions.
-	(GDB_PYSYS_SETPATH_CHAR, PyObject_CallMethod, PyErr_NewException)
-	(PySys_GetObject, PySys_SetPath): New macros.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* mi/mi-cmd-info.c (mi_cmd_info_os): Call info_osdata instead of
-	info_osdata_command.
-	* osdata.c (info_osdata_command): Rename to ...
-	(info_osdata): ... this.  Constify 'type' parameter, and remove
-	the 'from_tty' parameter.  Accept NULL TYPE.
-	(info_osdata_command): New function.
-	* osdata.h (info_osdata_command): Remove declaration.
-	(info_osdata): New declaration.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* mi/mi-cmd-break.c (mi_cmd_break_insert_1, mi_cmd_break_insert)
-	(mi_cmd_dprintf_insert, mi_cmd_break_passcount)
-	(mi_cmd_break_watch, mi_cmd_break_commands): Constify 'command'
-	parameter.
-	* mi/mi-cmd-catch.c (mi_cmd_catch_assert, mi_cmd_catch_exception)
-	(mi_cmd_catch_load, mi_cmd_catch_unload): Constify cmd' parameter.
-	* mi/mi-cmd-disas.c (mi_cmd_disassemble): Constify 'command'
-	parameter.
-	* mi/mi-cmd-env.c (mi_cmd_env_pwd, mi_cmd_env_cd, mi_cmd_env_path)
-	(mi_cmd_env_dir, mi_cmd_inferior_tty_set, _cmd_inferior_tty_show)
-	* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_file)
-	(mi_cmd_file_list_exec_source_files)
-	(mi_cmd_file_list_shared_libraries): Constify 'command' parameter.
-	* mi/mi-cmd-info.c (mi_cmd_info_ada_exceptions)
-	(mi_cmd_info_gdb_mi_command, mi_cmd_info_os): Constify 'command'
-	parameter.
-	* mi/mi-cmd-stack.c (mi_cmd_enable_frame_filters)
-	(mi_cmd_stack_list_frames, mi_cmd_stack_info_depth)
-	(mi_cmd_stack_list_locals, mi_cmd_stack_list_args)
-	(mi_cmd_stack_list_variables, mi_cmd_stack_select_frame)
-	(mi_cmd_stack_info_frame): Constify 'command' parameter.
-	* mi/mi-cmd-target.c (mi_cmd_target_file_get)
-	(mi_cmd_target_file_put, mi_cmd_target_file_delete): Constify
-	'command' parameter.
-	* mi/mi-cmd-var.c (mi_cmd_var_create, mi_cmd_var_delete)
-	(mi_cmd_var_set_format, mi_cmd_var_set_visualizer)
-	(mi_cmd_var_set_frozen, mi_cmd_var_show_format)
-	(mi_cmd_var_info_num_children, mi_cmd_var_list_children)
-	(mi_cmd_var_info_type, mi_cmd_var_info_path_expression)
-	(mi_cmd_var_info_expression, mi_cmd_var_show_attributes)
-	(mi_cmd_var_evaluate_expression, mi_cmd_var_assign)
-	(mi_cmd_var_update, mi_cmd_enable_pretty_printing)
-	(mi_cmd_var_set_update_range): Constify 'command' parameter.
-	* mi/mi-cmds.h (mi_cmd_argv_ftype): Constify 'command' parameter.
-	* mi/mi-interp.c (mi_cmd_interpreter_exec): Constify 'command'
-	parameter.
-	* mi/mi-main.c (mi_cmd_gdb_exit, mi_cmd_exec_next)
-	(mi_cmd_exec_next_instruction, mi_cmd_exec_step)
-	(mi_cmd_exec_step_instruction, mi_cmd_exec_finish)
-	(mi_cmd_exec_return ,mi_cmd_exec_jump, mi_cmd_exec_continue)
-	(mi_cmd_exec_interrupt, mi_cmd_exec_run, mi_cmd_target_detach)
-	(mi_cmd_target_flash_erase, mi_cmd_thread_select)
-	(mi_cmd_thread_list_ids, mi_cmd_thread_info)
-	(mi_cmd_list_thread_groups, mi_cmd_data_list_register_names)
-	(mi_cmd_data_list_changed_registers)
-	(mi_cmd_data_write_register_values)
-	(mi_cmd_data_evaluate_expression, mi_cmd_data_read_memory)
-	(mi_cmd_data_read_memory_bytes, mi_cmd_data_write_memory)
-	(mi_cmd_data_write_memory_bytes, mi_cmd_enable_timings)
-	(mi_cmd_list_features, mi_cmd_list_target_features)
-	(mi_cmd_add_inferior, mi_cmd_remove_inferior)
-	(mi_cmd_trace_define_variable, mi_cmd_trace_list_variables)
-	(mi_cmd_trace_find, mi_cmd_trace_save, mi_cmd_trace_start)
-	(mi_cmd_trace_status, mi_cmd_trace_stop, mi_cmd_ada_task_info)
-	(mi_cmd_trace_frame_collected): Constify 'command'
-	parameter.
-	* mi/mi-symbol-cmds.c (mi_cmd_symbol_list_lines): Constify
-	'command' parameter.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* ada-lang.c (ada_completer_word_break_characters): Now a const
-	array.
-	(ada_get_gdb_completer_word_break_characters): Constify.
-	* completer.c (gdb_completer_command_word_break_characters)
-	(gdb_completer_file_name_break_characters)
-	(gdb_completer_quote_characters): Now const arrays.
-	(get_gdb_completer_quote_characters): Constify.
-	(set_rl_completer_word_break_characters): New function.
-	(set_gdb_completion_word_break_characters)
-	(complete_line_internal): Use it.
-	* completer.h (get_gdb_completer_quote_characters): Constify.
-	(set_rl_completer_word_break_characters): Declare.
-	* f-lang.c (f_word_break_characters): Constify.
-	* language.c (default_word_break_characters): Constify.
-	* language.h (language_defn::la_word_break_characters): Constify.
-	(default_word_break_characters): Constify.
-	* top.c (init_main): Use set_rl_completer_word_break_characters.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* aix-thread.c (aix_thread_pid_to_str)
-	(aix_thread_extra_thread_info): Constify.
-	* bsd-kvm.c (bsd_kvm_pid_to_str): Constify.
-	* bsd-uthread.c (bsd_uthread_extra_thread_info)
-	(bsd_uthread_pid_to_str): Constify.
-	* corelow.c (core_pid_to_str): Constify.
-	* darwin-nat.c (darwin_pid_to_str): Constify.
-	* fbsd-nat.c (fbsd_pid_to_str): Constify.
-	* fbsd-tdep.c (fbsd_core_pid_to_str, gdbarch_core_pid_to_str):
-	Constify.
-	* gnu-nat.c (gnu_pid_to_str): Constify.
-	* go32-nat.c (go32_pid_to_str): Constify.
-	* i386-cygwin-tdep.c (i386_windows_core_pid_to_str): Constify.
-	* inf-ptrace.c (inf_ptrace_pid_to_str): Constify.
-	* inferior.c (inferior_pid_to_str): Constify.
-	* linux-nat.c (linux_nat_pid_to_str): Constify.
-	* linux-tdep.c (linux_core_pid_to_str): Constify.
-	* linux-thread-db.c (thread_db_pid_to_str)
-	(thread_db_extra_thread_info): Constify.
-	* nto-tdep.c (nto_extra_thread_info): Constify.
-	* nto-tdep.h (nto_extra_thread_info): Constify.
-	* obsd-nat.c (obsd_pid_to_str): Constify.
-	* procfs.c (procfs_pid_to_str): Constify.
-	* ravenscar-thread.c (ravenscar_extra_thread_info)
-	(ravenscar_pid_to_str): Constify.
-	* remote-sim.c (gdbsim_pid_to_str): Constify.
-	* remote.c (remote_threads_extra_info, remote_pid_to_str):
-	Constify.
-	* sol-thread.c (solaris_pid_to_str): Constify.
-	* sol2-tdep.c (sol2_core_pid_to_str): Constify.
-	* sol2-tdep.h (sol2_core_pid_to_str): Constify.
-	* target.c (default_pid_to_str, target_pid_to_str)
-	(normal_pid_to_str, default_pid_to_str): Constify.
-	* target.h (target_ops::to_pid_to_str)
-	(target_ops::to_extra_thread_info): Constify.
-	(target_pid_to_str, normal_pid_to_str): Constify.
-	* windows-nat.c (windows_pid_to_str): Constify.
-	* gdbarch.sh (core_pid_to_str): Constify.
-	* target-delegates.c: Regenerate.
-	* gdbarch.h, gdbarch.c: Regenerate.
+	(catch_ada_handlers_command): New function.
+	(initialize_ada_catchpoint_ops): Initialize "catch handlers"
+	operations structure.
+	(_initialize_ada_language): Add "catch handlers" command entry.
+	* NEWS: Document "catch handlers" feature.
 
-2017-04-05  Pedro Alves	 <palves@redhat.com>
+2018-01-02  Joel Brobecker  <brobecker@adacore.com>
 
-	* main.c (captured_main_1): Use gdb::unique_xmalloc_ptr to manage
-	the memory of the temporary warning_pre_print override.
-	* utils.c (warning_pre_print): Constify.
-	* utils.h (warning_pre_print): Constify.
+	* ada-lang.c (ada_value_slice_from_ptr): Take array stride into
+	account when creating the array type of the slice.
+	(ada_value_slice): Likewise.
 
-2017-04-05  Pedro Alves	 <palves@redhat.com>
+2018-01-02  Joel Brobecker  <brobecker@adacore.com>
 
-	* cli/cli-cmds.c (shell_escape): Constify 'arg' parameter.
-	(shell_command): New function.
-	(make_command): Use std::string.
-	(init_cli_cmds): Register shell_command instead of shell_escape.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* breakpoint.c (dprintf_function, dprintf_channel): Don't initialize.
-	* tracepoint.c (default_collect): Don't initialize.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* macroexp.c (macro_buffer::shared): Now a bool.
-	(init_buffer): Update.
-	(init_shared_buffer): Constify 'addr' parameter.
-	(substitute_args, expand, macro_expand, macro_expand_next): Remove
-	casts.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* arm-tdep.c (show_disassembly_style_sfunc): Constify local.
-	* disasm.c (set_disassembler_options): Constify local.
-	* i386-tdep.c (i386_print_insn): Remove cast and FIXME comment.
-
-2017-04-05  Sergio Durigan Junior  <sergiodj@redhat.com>
-
-	PR gdb/21352
-	* tracefile.c (tsave_command): Fix argument parsing for '-r'
-	option.
-
-2017-04-05  Yao Qi  <yao.qi@linaro.org>
-
-	* frame.c (frame_unwind_register_unsigned): Call
-	frame_unwind_register_value.
-
-2017-04-05  Yao Qi  <yao.qi@linaro.org>
-
-	* gdb.threads/thread-specific-bp.exp (check_thread_specific_breakpoint):
-	Use gdb_test_multiple, and don't match anchor.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* MAINTAINERS (Global Maintainers): Add Simon Marchi.
-	(Write After Approval): Remove Simon Marchi.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* common/gdb_optional.h (optional::optional): Make constexpr and
-	initialize m_dummy.
-
-2017-04-04  John Baldwin  <jhb@FreeBSD.org>
-
-	* amd64-fbsd-tdep.c: Remove "bsd-uthread.h" include.
-	(amd64fbsd_jmp_buf_reg_offset): Remove.
-	(amd64fbsd_supply_uthread): Remove function.
-	(amd64fbsd_collect_uthread): Remove function.
-	(amd64fbsd_init_abi): Don't set bsd-uthread callbacks.
-	* configure.tgt (i[34567]86-*-freebsd*): Remove bsd-uthread.o.
-	(x86_64-*-freebsd*): Remove bsd-uthread.o.
-	(fbsd-nat.c): Update comment.
-	* i386-fbsd-tdep.c: Remove "bsd-uthread.h" include.
-	(i386fbsd_jmp_buf_reg_offset): Remove.
-	(i386fbsd_supply_uthread): Remove function.
-	(i386fbsd_collect_uthread): Remove function.
-	(i386fbsd_init_abi): Don't set bsd-uthread callbacks.
-
-2017-04-04  John Baldwin  <jhb@FreeBSD.org>
-
-	* Makefile.in (ALL_64_TARGET_OBS): Remove alpha-fbsd-tdep.o.
-	(ALLDEPFILES): Remove alpha-fbsd-tdep.c
-	* NEWS: Mention that support for FreeBSD/alpha was removed.
-	* alpha-fbsd-tdep.c: Delete file.
-	* config/alpha/fbsd.mh: Delete file.
-	* configure.host: Delete alpha*-*-freebsd* and
-	alpha*-*-kfreebsd*-gnu.
-	* configure.tgt: Delete alpha*-*-freebsd* and
-	alpha*-*-kfreebsd*-gnu.
-
-2017-04-04  John Baldwin  <jhb@FreeBSD.org>
-
-	* amd64-bsd-nat.c (amd64bsd_fetch_inferior_registers,
-	amd64bsd_store_inferior_registers): Use ptid from regcache.
-
-2017-04-04  Pedro Alves  <palves@redhat.com>
-
-	* dwarf2read.c (lnp_state_machine): Now a class.  Initialize all
-	data fields, make them private and add "m_" prefixes.
-	(lnp_state_machine::lnp_state_machine): New ctor.
-	(record_line, check_line_address, handle_set_discriminator)
-	(handle_set_address, handle_advance_pc, handle_special_opcode)
-	(handle_advance_line, handle_set_file, handle_negate_stmt)
-	(handle_const_add_pc, handle_fixed_advance_pc, handle_copy)
-	(end_sequence, advance_line): New methods.
-	(m_gdbarch, m_record_lines_p): New fields.
-	(lnp_reader_state): Delete.
-	(dwarf_record_line): Rename to ...
-	(lnp_state_machine::record_line): ... adjust.
-	(init_lnp_state_machine): Delete.
-	(lnp_state_machine::lnp_state_machine): New.
-	(check_line_address): Rename to ...
-	(lnp_state_machine::check_line_address): This.
-	(dwarf_decode_lines_1): Remove reference to "reader_state".
-	Adjust lnp_state_machine having a non-default ctor.  Use bool.
-	State machine internal state manipulation moved to
-	lnp_state_machine methods.
-
-2017-04-04  Pedro Alves  <palves@redhat.com>
-
-	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
-	unittests/offset-type-selftests.c.
-	(SUBDIR_UNITTESTS_OBS): Add offset-type-selftests.o.
-	* common/offset-type.h: New file.
-	* common/preprocessor.h: New file.
-	* common/traits.h: New file.
-	* common/valid-expr.h: New file.
-	* dwarf2expr.c: Include "common/underlying.h".  Adjust to use
-	sect_offset and cu_offset strong typedefs throughout.
-	* dwarf2expr.h: Adjust to use sect_offset and cu_offset strong
-	typedefs throughout.
-	* dwarf2loc.c: Include "common/underlying.h".  Adjust to use
-	sect_offset and cu_offset strong typedefs throughout.
-	* dwarf2read.c: Adjust to use sect_offset and cu_offset strong
-	typedefs throughout.
-	* gdbtypes.h: Include "common/offset-type.h".
-	(cu_offset): Now an offset type (strong typedef) instead of a
-	struct.
-	(sect_offset): Likewise.
-	(union call_site_parameter_u): Rename "param_offset" field to
-	"param_cu_off".
-	* unittests/offset-type-selftests.c: New file.
-
-2017-04-04  Pedro Alves  <palves@redhat.com>
-
-	* common/underlying.h: New file.
-	* dwarf2read.c: Include "common/gdb_optional.h" and
-	"common/underlying.h".
-	(dir_index, file_name_index): New types.
-	(file_entry): Use them.
-	(file_entry::include): Use to_underlying.
-	(line_header::add_file_name): Use dir_index.
-	(read_formatted_entries): Use gdb::optional.  Read form before
-	writting to file_entry.
-	(dwarf_decode_line_header): Use dir_index.
-	(lnp_state_machine::current_file): Use to_underlying.
-	(lnp_state_machine::file): Change type to file_name_index.
-	(dwarf_record_line): Use to_underlying.
-	(init_lnp_state_machine): Use file_name_index.
-	(dwarf_decode_lines_1): Use dir_index and file_name_index.
-
-2017-04-04  Pedro Alves  <palves@redhat.com>
-
-	* common/gdb_optional.h (gdb::optiona): Add operator->, operator*,
-	operator bool, has_value and get methods.
+	* gdbtypes.h (enum dynamic_prop_node_kind) <DYN_PROP_BYTE_STRIDE>:
+	New enum value.
+	(create_array_type_with_stride): Add byte_stride_prop parameter.
+	* gdbtypes.c (create_array_type_with_stride) <byte_stride_prop>:
+	New parameter.  Update all callers in this file.
+	(array_type_has_dynamic_stride): New function.
+	(is_dynamic_type_internal, resolve_dynamic_array): Add handling
+	of arrays with dynamic byte strides.
+	* dwarf2read.c (read_array_type): Add support for dynamic
+	DW_AT_byte_stride attributes.
 
-2017-04-04  Pedro Alves  <palves@redhat.com>
+2018-01-02  Joel Brobecker  <brobecker@adacore.com>
 
-	* dwarf2read.c (struct file_entry): Add ctors, and initialize all
-	fields.
-	(line_header): Initialize all data fields.  Change type of
-	standard_opcode_lengths to std::unique_ptr<unsigned char[]>.
-	Change type of include_dirs to std::vector<const char *>.  Remove
-	num_include_dirs, include_dirs_size.  Change type of file_names to
-	std::vector<file_entry>.  Remove num_file_names, file_names_size.
-	(line_header::line_header): New.
-	(line_header::add_include_dir, line_header::add_file_name): New
-	methods.
-	(line_header::include_dir_at): Remove NULL check.
-	(line_header::file_name_at): Add const overload.
-	(line_header_up): New unique_ptr typedef.
-	(dw2_get_file_names_reader): Use line_header_up.  Adjust to use
-	std::vector.  Remove free_line_header call.
-	(dwarf2_build_include_psymtabs): Use line_header_up.  Remove
-	free_line_header call.
-	(free_cu_line_header): Delete.
-	(handle_DW_AT_stmt_list, handle_DW_AT_stmt_list)
-	(setup_type_unit_groups): Use line_header_up instead of cleanups.
-	Adjust to use std::vector.
-	(free_line_header): Delete.
-	(free_line_header_voidp): Use delete.
-	(add_include_dir): Replace with ...
-	(line_header::add_include_dir): ... this method.  Use std::vector.
-	(add_file_name): Replace with ...
-	(line_header::add_file_name): ... this method.  Use std::vector.
-	(add_include_dir_stub): Delete.
-	(read_formatted_entries): Remove memset.
-	(dwarf_decode_line_header): Return a line_header_up instead of a
-	raw pointer.  Remove cleanup handling.  Pass lambdas to
-	read_formatted_entries.  Adjust to use line_header methods.
-	(dwarf_decode_lines_1): Adjust to use line_header methods.
-	(dwarf_decode_lines, file_file_name, file_full_name): Adjust to
-	use std::vector.
+	* dwarf2read.c (read_unspecified_type): Treat
+	DW_TAG_enumeration_type DIEs from Ada units as stubs.
 
-2017-04-04  Simon Marchi  <simon.marchi@polymtl.ca>
+2018-01-01  Joel Brobecker  <brobecker@adacore.com>
 
-	* remote.c (set_general_thread, set_continue_thread): Use ptid_t
-	instead of struct ptid.
+	Update copyright year range in all GDB files.
 
-2017-05-04  Alan Hayward  <alan.hayward@arm.com>
+2018-01-01  Joel Brobecker  <brobecker@adacore.com>
 
-	* frame.c (get_frame_register_bytes): Unwind using value.
-	(put_frame_register_bytes): Likewise.
+	* copyright.py (BY_HAND): Remove gdb/testsuite/gdb.base/step-line.inp
+	and gdb/testsuite/gdb.base/step-line.c.
 
-2017-03-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+2018-01-01  Joel Brobecker  <brobecker@adacore.com>
 
-	* d-exp.y (type_aggregate_p): Treat TYPE_CODE_MODULE as being
-	aggregate-like.
+	* copyright.py (main): Dump the contents of
+	MULTIPLE_COPYRIGHT_HEADERS (separately) from BY_HAND,
+	even if BY_HAND is empty.
 
-2017-03-29  Jan Kratochvil  <jan.kratochvil@redhat.com>
+2018-01-01  Joel Brobecker  <brobecker@adacore.com>
 
-	* auto-load.c (auto_load_section_scripts): Check SEC_HAS_CONTENTS.
-
-2017-03-29  Yao Qi  <yao.qi@linaro.org>
-
-	* gdbthread.h (struct thread_info): Declare constructor and
-	destructor.  Add some in-class member initializers.
-	* thread.c (free_thread): Remove.
-	(init_thread_list): Call delete instead of free_thread.
-	(new_thread): Call thread_info constructor.
-	(thread_info::thread_info): New function.
-	(thread_info::~thread_info): New function.
-	(delete_thread_1): Call delete instead of free_thread.
-	(make_cleanup_restore_current_thread): Move tp and frame to
-	inner block.
-
-2017-03-28  Anton Kolesov  <anton.kolesov@synopsys.com>
-
-	* arc-tdep.c (arc_frame_cache): Add support for prologue analysis.
-	(arc_skip_prologue): Likewise.
-	(arc_make_frame_cache): Likewise.
-	(arc_pv_get_operand): New function.
-	(arc_is_in_prologue): Likewise.
-	(arc_analyze_prologue): Likewise.
-	(arc_print_frame_cache): Likewise.
-	(MAX_PROLOGUE_LENGTH): New constant.
-
-2017-03-28  Anton Kolesov  <anton.kolesov@synopsys.com>
-
-	* configure.tgt: Add arc-insn.o.
-	* arc-tdep.c (arc_delayed_print_insn): Make non-static.
-	(dump_arc_instruction_command): New function.
-	(arc_fprintf_disasm): Likewise.
-	(arc_disassemble_info): Likewise.
-	(arc_insn_get_operand_value): Likewise.
-	(arc_insn_get_operand_value_signed): Likewise.
-	(arc_insn_get_memory_base_reg): Likewise.
-	(arc_insn_get_memory_offset): Likewise.
-	(arc_insn_get_branch_target): Likewise.
-	(arc_insn_dump): Likewise.
-	(arc_insn_get_linear_next_pc): Likewise.
-	* arc-tdep.h (arc_delayed_print_insn): Add function declaration.
-	(arc_disassemble_info): Likewise.
-	(arc_insn_get_branch_target): Likewise.
-	(arc_insn_get_linear_next_pc): Likewise.
-	* NEWS: Mention new "maint print arc arc-instruction".
-
-2017-03-28  Anton Kolesov  <anton.kolesov@synopsys.com>
-
-	* arc-tdep (maintenance_print_arc_list): New variable.
-	(maintenance_print_arc_command): New function.
-
-2017-03-28  Anton Kolesov  <anton.kolesov@synopsys.com>
-
-	* arc-tdep.c (core_v2_register_names, core_arcompact_register_names)
-	Add "limm" and "reserved".
-	(arc_cannot_fetch_register, arc_cannot_store_register): Add
-	ARC_RESERVED_REGNUM and ARC_LIMM_REGNUM.
-	* arc-tdep.h (arc_regnum): Likewise.
-
-2017-03-27  Max Filippov  <jcmvbkbc@gmail.com>
-
-	* xtensa-linux-nat.c (fill_gregset): Call regcache_raw_collect
-	for THREADPTR register.
-	(supply_gregset_reg): Call regcache_raw_supply for THREADPTR
-	register.
-	* xtensa-tdep.c (XTENSA_DBREGN_UREG): New definition.
-	(xtensa_derive_tdep): Initialize tdep->threadptr_regnum.
-	* xtensa-tdep.h (gdbarch_tdep::threadptr_regnum): New field.
-
-2017-03-27  Max Filippov  <jcmvbkbc@gmail.com>
-
-	* xtensa-tdep.c (xtensa_pseudo_register_read): Treat all
-	registers above gdbarch_num_regs (gdbarch) as privileged in
-	call0 ABI.
-
-2017-03-27  Max Filippov  <jcmvbkbc@gmail.com>
-
-	* xtensa-linux-nat.c (fill_gregset): Call regcache_raw_collect
-	for a single specified register or for all registers in
-	a0_base..a0_base + C0_NREGS range.
-	(supply_gregset_reg): Call regcache_raw_supply for a single
-	specified register or for all registers in a0_base..a0_base +
-	C0_NREGS range.
-
-2017-03-27  Max Filippov  <jcmvbkbc@gmail.com>
-
-	* arch/xtensa.h (C0_NREGS): Add definition.
-	* xtensa-tdep.c (C0_NREGS): Remove definition.
-
-2017-03-27  Max Filippov  <jcmvbkbc@gmail.com>
-
-	* xtensa-tdep.c (xtensa_scan_prologue, call0_analyze_prologue):
-	Drop xtensa_default_isa initialization.
-	(xtensa_gdbarch_init): Initialize xtensa_default_isa.
-
-2017-03-27  Pedro Alves  <palves@redhat.com>
-
-	* dwarf2read.c (file_entry) <dir_index>: Add comment.
-	(file_entry::include_dir): New method.
-	(line_header::include_dir_at, line_header::file_name_at): New
-	methods.
-	(setup_type_unit_groups, setup_type_unit_groups)
-	(psymtab_include_file_name): Simplify using the new methods.
-	(lnp_state_machine) <the_line_header>: New field.
-	<file>: Add comment.
-	(lnp_state_machine::current_file): New method.
-	(dwarf_record_line): Simplify using the new methods.
-	(init_lnp_state_machine): Initialize the "the_line_header" field.
-	(dwarf_decode_lines_1, dwarf_decode_lines, file_file_name):
-	Simplify using the new methods.
-
-2017-03-27  Pedro Alves  <palves@redhat.com>
-
-	* cp-name-parser.y (make_empty): Delete.
-	(demangler_special, nested_name, ptr_operator, array_indicator)
-	(direct_declarator, declarator_1): Use fill_comp instead of
-	make_empty.
-
-2017-03-27  Pedro Alves  <palves@redhat.com>
-
-	* xml-support.h (gdb_xml_debug): Pass a "first-to-check" argument
-	to ATTRIBUTE_PRINTF.
-	* solib-target.c (library_list_start_list): Print "string" not
-	"version".
-	* xml-tdesc.c (tdesc_start_field): Pass "field_name" to
-	gdb_xml_error call.
-
-2017-03-27  Pedro Alves  <palves@redhat.com>
-
-	* dwarf2read.c (struct file_and_directory): New.
-	(dwarf2_get_dwz_file): Adjust to use std::string.
-	(dw2_get_file_names_reader): Adjust to use file_and_directory.
-	(find_file_and_directory): Adjust to return a file_and_directory
-	object.
-	(read_file_scope): Adjust to use file_and_directory.  Remove
-	make_cleanup/do_cleanups calls.
-	(open_and_init_dwp_file): Adjust to use std::string.  Remove
-	make_cleanup/do_cleanups calls.
-	* python/python.c (do_start_initialization): Adjust to ldirname
-	returning a std::string.
-	* utils.c (ldirname): Now returns a std::string.
-	* utils.h (ldirname): Change return type to std::string.
-	* xml-syscall.c (xml_init_syscalls_info): Adjust to ldirname
-	returning a std::string.
-	* xml-tdesc.c (file_read_description_xml): Likewise.
-
-2017-03-24  Alan Hayward  <alan.hayward@arm.com>
-
-	* regcache.c (regcache_debug_print_register): New function.
-	* regcache.h (regcache_debug_print_register): New declaration.
-	* target.c (debug_print_register): Remove.
-	(target_fetch_registers): Call regcache_debug_print_register.
-	(target_store_registers): Likewise.
-
-2017-03-24  PÃ¡draig Brady  <pbrady@fb.com>
-
-	* dwarf2read.c (setup_type_unit_groups): Ensure dir_index doesn't
-	reference beyond the 'lh->include_dirs' array before accessing to
-	it.
-	(psymtab_include_file_name): Likewise.
-	(dwarf_decode_lines_1): Likewise.
-	(dwarf_decode_lines): Likewise.
-	(file_file_name): Likewise.
-
-2017-03-23  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* fbsd-tdep.c (fbsd_corefile_thread): Don't set/restore
-	inferior_ptid.
-	* proc-service.c (ps_lgetregs, ps_lsetregs, ps_lgetfpregs,
-	ps_lsetfpregs): Likewise.
-	* regcache.c (regcache_raw_update, regcache_raw_write): Likewise.
-	* sol-thread.c (ps_lgetregs, ps_lsetregs, ps_lgetfpregs,
-	ps_lsetfpregs): Likewise.
-	* target.c (target_fetch_registers, target_store_registers):
-	Remove asserts.
-
-2017-03-23  Alan Hayward  <alan.hayward@arm.com>
-
-	* sol-thread.c (sol_thread_store_registers): Remove regcache calls.
-
-2017-03-23  Yao Qi  <yao.qi@linaro.org>
-
-	* aarch64-tdep.c (aarch64_process_record_test): Declare.
-	(_initialize_aarch64_tdep): Register it.
-	(aarch64_record_load_store): Handle PRFM instruction.
-	(aarch64_process_record_test): New function.
-
-2017-03-23  Yao Qi  <yao.qi@linaro.org>
-
-	* aarch64-tdep.c (aarch64_record_load_store): Fix code
-	indentation.
-
-2017-03-23  Yao Qi  <yao.qi@linaro.org>
-
-	* aarch64-tdep.c: Remove AARCH64_RECORD_FAILURE.
-
-2017-03-23  Philipp Rudo  <prudo@linux.vnet.ibm.com>
-
-	python/python.c (do_start_initialization): Fix memory leak.
-
-2017-03-22  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* inf-ptrace.c (inf_ptrace_xfer_partial): Get pid from ptid
-	using get_ptrace_pid.
-	* linux-nat.c (linux_nat_xfer_partial): Don't set/restore
-	inferior_ptid.
-	(linux_proc_xfer_partial, linux_proc_xfer_spu): Use lwp of
-	inferior_ptid instead of pid.
-
-2017-03-22  Yao Qi  <yao.qi@linaro.org>
-
-	* aarch64-tdep.c: Wrap locally used classes in anonymous
-	namespace.
-	* arm-tdep.c: Likewise.
-	* linespec.c: Likewise.
-	* ui-out.c: Likewise.
-
-2017-03-22  Jonah Graham  <jonah@kichwacoders.com>
-
-	PR gdb/19637
-	* python/lib/gdb/printer/bound_registers.py: Import sys.
-
-2017-03-21  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* windows-nat.c (do_windows_fetch_inferior_registers): Add
-	windows_thread_info parameter and use it instead of
-	current_thread.
-	(windows_fetch_inferior_registers): Don't set current_thread,
-	pass the thread to do_windows_fetch_inferior_registers.  Use
-	ptid from regcache instead of inferior_ptid.
-	(do_windows_store_inferior_registers): Add windows_thread_info
-	parameter and use it instead of current_thread.
-	(windows_store_inferior_registers): Don't set current_thread,
-	pass the thread to do_windows_store_inferior_registers.  Use
-	ptid from regcache instead of inferior_ptid.
-
-2017-03-21  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* ser-mingw.c (ser_windows_raw): Remove reference to
-	struct serial::current_timeout.
-
-2017-03-21  Ivo Raisr  <ivo.raisr@oracle.com>
-
-	PR tdep/20928
-	* gdb/sparc-tdep.h (gdbarch_tdep) <sparc64_ccr_type>: New field.
-	* gdb/sparc64-tdep.c (sparc64_ccr_type): New function.
-	(sparc64_fsr_type): Fix %fsr decoding.
-
-2017-03-21  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* python/py-record-btrace.c (btpy_insn_data): Change return type
-	for Python 2.
-
-2017-03-20  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* spu-linux-nat.c (spu_fetch_inferior_registers,
-	spu_store_inferior_registers): Use ptid from regcache, set and
-	restore inferior_ptid.
-	* spu-multiarch.c (spu_fetch_registers, spu_store_registers):
-	Likewise.
-
-2017-03-20  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* i386-linux-nat.c (fetch_register, store_register,
-	i386_linux_fetch_inferior_registers,
-	i386_linux_store_inferior_registers): Use ptid from regcache.
-	* ia64-linux-nat.c (ia64_linux_fetch_register,
-	ia64_linux_store_register): Likewise.
-	* inf-ptrace.c (inf_ptrace_fetch_register,
-	inf_ptrace_store_register): Likewise.
-	* m32r-linux-nat.c (m32r_linux_fetch_inferior_registers,
-	m32r_linux_store_inferior_registers): Likewise.
-	* m68k-bsd-nat.c (m68kbsd_fetch_inferior_registers,
-	m68kbsd_store_inferior_registers): Likewise.
-	* m68k-linux-nat.c (fetch_register, store_register,
-	m68k_linux_fetch_inferior_registers,
-	m68k_linux_store_inferior_registers): Likewise.
-	* m88k-bsd-nat.c (m88kbsd_fetch_inferior_registers,
-	m88kbsd_store_inferior_registers): Likewise.
-	* mips-fbsd-nat.c (mips_fbsd_fetch_inferior_registers,
-	mips_fbsd_store_inferior_registers): Likewise.
-	* mips-linux-nat.c (mips64_linux_regsets_fetch_registers,
-	mips64_linux_regsets_store_registers): Likewise.
-	* mips-nbsd-nat.c (mipsnbsd_fetch_inferior_registers,
-	mipsnbsd_store_inferior_registers): Likewise.
-	* mips-obsd-nat.c (mips64obsd_fetch_inferior_registers,
-	mips64obsd_store_inferior_registers): Likewise.
-	* nto-procfs.c (procfs_fetch_registers, procfs_store_registers):
-	Likewise.
-	* ppc-fbsd-nat.c (ppcfbsd_fetch_inferior_registers,
-	ppcfbsd_store_inferior_registers): Likewise.
-	* ppc-linux-nat.c (ppc_linux_fetch_inferior_registers,
-	ppc_linux_store_inferior_registers): Likewise.
-	* ppc-nbsd-nat.c (ppcnbsd_fetch_inferior_registers,
-	ppcnbsd_store_inferior_registers): Likewise.
-	* ppc-obsd-nat.c (ppcobsd_fetch_registers,
-	ppcobsd_store_registers): Likewise.
-	* procfs.c (procfs_fetch_registers, procfs_store_registers):
-	Likewise.
-	* ravenscar-thread.c (ravenscar_fetch_registers,
-	ravenscar_store_registers, ravenscar_prepare_to_store):
-	Likewise.
-	* record-btrace.c (record_btrace_fetch_registers,
-	record_btrace_store_registers, record_btrace_prepare_to_store):
-	Likewise.
-	* remote-sim.c (gdbsim_fetch_register, gdbsim_store_register):
-	Lookup inferior using ptid from regcache, instead of
-	current_inferior.
-	* remote.c (remote_fetch_registers, remote_store_registers): Use
-	ptid from regcache.
-	* rs6000-nat.c (fetch_register, store_register): Likewise.
-	* s390-linux-nat.c (s390_linux_fetch_inferior_registers,
-	s390_linux_store_inferior_registers): Likewise.
-	* sh-nbsd-nat.c (shnbsd_fetch_inferior_registers,
-	shnbsd_store_inferior_registers): Likewise.
-	* sol-thread.c (sol_thread_fetch_registers,
-	sol_thread_store_registers): Likewise.
-	* sparc-nat.c (sparc_fetch_inferior_registers,
-	sparc_store_inferior_registers): Likewise.
-	* tilegx-linux-nat.c (fetch_inferior_registers,
-	store_inferior_registers): Likewise.
-	* vax-bsd-nat.c (vaxbsd_fetch_inferior_registers,
-	vaxbsd_store_inferior_registers): Likewise.
-	* xtensa-linux-nat.c (fetch_gregs, store_gregs, fetch_xtregs,
-	store_xtregs): Likewise.
-
-2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
-
-	PR gdb/14441
-	* NEWS: Mention support for rvalue references in GDB and python.
-	* doc/gdb.texinfo (C Plus Plus Expressions): Mention that GDB
-	supports both lvalue and rvalue references.
-
-2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
-
-	PR gdb/14441
-	* gdbtypes.c (rank_one_type): Implement overloading
-	resolution rules regarding rvalue references.
-
-2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
-
-	PR gdb/14441
-	* aarch64-tdep.c (aarch64_type_align)
-	(aarch64_extract_return_value, aarch64_store_return_value): Change
-	lvalue reference type checks to general reference type checks.
-	* amd64-tdep.c (amd64_classify): Likewise.
-	* amd64-windows-tdep.c (amd64_windows_passed_by_integer_register):
-	Likewise.
-	* arm-tdep.c (arm_type_align, arm_extract_return_value)
-	(arm_store_return_value): Likewise.
-	* ax-gdb.c (gen_fetch, gen_cast): Likewise.
-	* c-typeprint.c (c_print_type): Likewise.
-	* c-varobj.c (adjust_value_for_child_access, c_value_of_variable)
-	(cplus_number_of_children, cplus_describe_child): Likewise.
-	* compile/compile-c-symbols.c (generate_vla_size): Likewise.
-	* completer.c (expression_completer): Likewise.
-	* cp-support.c (make_symbol_overload_list_adl_namespace):
-	Likewise.
-	* darwin-nat-info.c (info_mach_region_command): Likewise.
-	* dwarf2loc.c (entry_data_value_coerce_ref)
-	(value_of_dwarf_reg_entry): Likewise.
-	* eval.c (ptrmath_type_p, evaluate_subexp_standard)
-	(evaluate_subexp_for_address, evaluate_subexp_for_sizeof):
-	Likewise.
-	* findvar.c (extract_typed_address, store_typed_address):
-	Likewise.
-	* gdbtypes.c (rank_one_type): Likewise.
-	* hppa-tdep.c (hppa64_integral_or_pointer_p): Likewise.
-	* infcall.c (value_arg_coerce): Likewise.
-	* language.c (pointer_type): Likewise.
-	* m32c-tdep.c (m32c_reg_arg_type, m32c_m16c_address_to_pointer):
-	Likewise.
-	* m88k-tdep.c (m88k_integral_or_pointer_p): Likewise.
-	* mn10300-tdep.c (mn10300_type_align): Likewise.
-	* msp430-tdep.c (msp430_push_dummy_call): Likewise.
-	* ppc-sysv-tdep.c (do_ppc_sysv_return_value)
-	(ppc64_sysv_abi_push_param, ppc64_sysv_abi_return_value):
-	Likewise.
-	* printcmd.c (print_formatted, x_command): Likewise.
-	* python/py-type.c (typy_get_composite, typy_template_argument):
-	Likewise.
-	* python/py-value.c (valpy_referenced_value)
-	(valpy_get_dynamic_type, value_has_field): Likewise.
-	* s390-linux-tdep.c (s390_function_arg_integer): Likewise.
-	* sparc-tdep.c (sparc_integral_or_pointer_p): Likewise.
-	* sparc64-tdep.c (sparc64_integral_or_pointer_p): Likewise.
-	* spu-tdep.c (spu_scalar_value_p): Likewise.
-	* symtab.c (lookup_symbol_aux): Likewise.
-	* typeprint.c (whatis_exp, print_type_scalar): Likewise.
-	* valarith.c (binop_types_user_defined_p, unop_user_defined_p):
-	Likewise.
-	* valops.c (value_cast_pointers, value_cast)
-	(value_reinterpret_cast, value_dynamic_cast, value_addr, typecmp)
-	(value_struct_elt, value_struct_elt_bitpos)
-	(value_find_oload_method_list, find_overload_match)
-	(value_rtti_indirect_type): Likewise.
-	* valprint.c (val_print_scalar_type_p, generic_val_print):
-	Likewise.
-	* value.c (value_actual_type, value_as_address, unpack_long)
-	(pack_long, pack_unsigned_long, coerce_ref_if_computed)
-	(coerce_ref): Likewise.
-	* varobj.c (varobj_get_value_type): Likewise.
-
-2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
-
-	PR gdb/14441
-	* doc/python.texi (Types in Python): Add TYPE_CODE_RVALUE_REF to
-	table of constants.
-	* python/lib/gdb/command/explore.py: Support exploring values
-	of rvalue reference types.
-	* python/lib/gdb/types.py: Implement get_basic_type() for
-	rvalue reference types.
-	* python/py-type.c (pyty_codes) <TYPE_CODE_RVALUE_REF>: New
-	constant.
-	* python/py-value.c (valpy_getitem): Add an rvalue reference
-	check.
-	(valpy_reference_value): Add new parameter "refcode".
-	(valpy_lvalue_reference_value, valpy_rvalue_reference_value):
-	New wrappers for valpy_reference_value().
-	* python/py-xmethods.c (gdbpy_get_xmethod_result_type)
-	(gdbpy_invoke_xmethod): Likewise.
-
-2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
-
-	PR gdb/14441
-	* dwarf2read.c (process_die, read_type_die_1): Handle the
-	DW_TAG_rvalue_reference_type DIE.
-	(read_tag_reference_type): Add new parameter "refcode".
-
-2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
-
-	PR gdb/14441
-	* c-typeprint.c (c_print_type, c_type_print_varspec_prefix)
-	(c_type_print_modifier, c_type_print_varspec_suffix)
-	(c_type_print_base): Support printing rvalue reference types.
-	* c-valprint.c (c_val_print, c_value_print): Support printing
-	rvalue reference values.
-
-2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
-
-	PR gdb/14441
-	* cp-name-parser.y (ptr_operator): Handle the '&&' token in
-	typename.
-	* cp-support.c (replace_typedefs): Handle
-	DEMANGLE_COMPONENT_RVALUE_REFERENCE.
-	* python/py-type.c (typy_lookup_type): Likewise.
-
-2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
-
-	PR gdb/14441
-	* c-exp.y (ptr_operator): Handle the '&&' token in the typename.
-	* parse.c (insert_type): Change assert statement.
-	(follow_types): Handle rvalue reference types.
-	* parser-defs.h (enum type_pieces) <tp_rvalue_reference>: New
-	constant.
-
-2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
-
-	PR gdb/14441
-	* ada-lang.c (ada_evaluate_subexp): Adhere to the new
-	value_ref() interface.
-	* c-valprint.c (c_value_print): Likewise.
-	* infcall.c (value_arg_coerce): Likewise.
-	* python/py-value.c (valpy_reference_value): Likewise.
-	* valops.c (value_cast, value_reinterpret_cast)
-	(value_dynamic_cast, typecmp): Likewise.
-	(value_ref): Parameterize by kind of return value reference type.
-	* value.h (value_ref): Add new parameter "refcode".
-
-2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
-
-	PR gdb/14441
-	* dwarf2read.c (read_tag_reference_type): Use
-	lookup_lvalue_reference_type() instead of lookup_reference_type().
-	* eval.c (evaluate_subexp_standard): Likewise.
-	* f-exp.y: Likewise.
-	* gdbtypes.c (make_reference_type, lookup_reference_type):
-	Generalize with rvalue reference types.
-	(lookup_lvalue_reference_type, lookup_rvalue_reference_type): New
-	convenience wrappers for lookup_reference_type().
-	* gdbtypes.h (make_reference_type, lookup_reference_type): Add a
-	reference kind parameter.
-	(lookup_lvalue_reference_type, lookup_rvalue_reference_type): Add
-	wrappers for lookup_reference_type().
-	* guile/scm-type.c (gdbscm_type_reference): Use
-	lookup_lvalue_reference_type() instead of lookup_reference_type().
-	* guile/scm-value.c (gdbscm_value_dynamic_type): Likewise.
-	* parse.c (follow_types): Likewise.
-	* python/py-type.c (typy_reference, typy_lookup_type): Likewise.
-	* python/py-value.c (valpy_get_dynamic_type, valpy_getitem):
-	Likewise.
-	* python/py-xmethods.c (gdbpy_get_xmethod_result_type)
-	(gdbpy_invoke_xmethod): Likewise.
-	* stabsread.c: Provide extra argument to make_reference_type()
-	call.
-	* valops.c (value_ref, value_rtti_indirect_type): Use
-	lookup_lvalue_reference_type() instead of lookup_reference_type().
-
-2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
-
-	PR gdb/14441
-	* gdbtypes.h (enum type_code) <TYPE_CODE_RVALUE_REF>: New constant.
-	(TYPE_IS_REFERENCE): New macro.
-	(struct type): Add rvalue_reference_type field.
-	(TYPE_RVALUE_REFERENCE_TYPE): New macro.
-
-2017-03-20  Marc-Andre Laperle  <marc-andre.laperle@ericsson.com>
-
-	* NEWS: Add an entry about new '-file-list-shared-libraries' command.
-	* mi/mi-cmd-file.c (mi_cmd_file_list_shared_libraries):
-	New function definition.
-	* mi/mi-cmds.c (mi_cmds): Add -file-list-shared-libraries command.
-	* mi/mi-cmds.h (mi_cmd_file_list_shared_libraries):
-	New function declaration.
-	* mi/mi-interp.c (mi_output_solib_attribs): New Function.
-	* mi/mi-interp.h: New file.
-	* solib.c (info_sharedlibrary_command): Replace for loop with
-	ALL_SO_LIBS macro
-	* solib.h (update_solib_list): New function declaration.
-	(so_list_head): Move macro.
-	* solist.h (ALL_SO_LIBS): New macro.
-
-2017-03-20  Marc-Andre Laperle  <marc-andre.laperle@ericsson.com>
-
-	* infcmd.c (post_create_inferior): Remove unused argument in
-	call to solib_add.
-	* remote.c (remote_start_remote): Likewise.
-	* solib-frv.c (frv_fetch_objfile_link_map): Likewise.
-	* solib-svr4.c: (svr4_fetch_objfile_link_map): Likewise.
-	(enable_break): Likewise.
-	* solib.c (update_solib_list): Remove unused target argument
-	and its documentation.
-	(solib_add): Remove unused target argument.  Remove unused
-	argument in call to update_solib_list.
-	(info_sharedlibrary_command): Remove unused argument in call
-	to update_solib_list.
-	(sharedlibrary_command): Remove unused argument in call to
-	solib_add.
-	(handle_solib_event): Likewise.
-	(reload_shared_libraries): Likewise.
-	* solib.h (solib_add): Remove unused target argument.
-
-2017-03-20  Andreas Arnez  <arnez@linux.vnet.ibm.com>
-
-	* s390-linux-tdep.c (is_rsi, is_rie): Remove functions.
-	(s390_displaced_step_fixup): Cover relative branches with the
-	default fixup handling.  This fixes lack of support for some
-	relative branch instructions.
-
-2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* i386-gnu-nat.c (gnu_fetch_registers, gnu_store_registers): Use
-	ptid from regcache.
-
-2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* i386-darwin-nat.c (i386_darwin_fetch_inferior_registers,
-	i386_darwin_store_inferior_registers): Use ptid from regcache.
-
-2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* i386-bsd-nat.c (i386bsd_fetch_inferior_registers,
-	i386bsd_store_inferior_registers): Use ptid from regcache.
-
-2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* hppa-obsd-nat.c (hppaobsd_fetch_registers,
-	hppaobsd_store_registers): Use ptid from regcache.
-
-2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* hppa-nbsd-nat.c (hppanbsd_fetch_registers,
-	hppanbsd_store_registers): Use ptid from regcache.
-
-2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* hppa-linux-nat.c (fetch_register, store_register): Use ptid
-	from regcache.  Use get_ptrace_pid.
-
-2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* corelow.c (get_core_register_section): Use ptid from regcache,
-	update doc.
-
-2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* bsd-uthread.c (bsd_uthread_fetch_registers,
-	bsd_uthread_store_registers): Use ptid from regcache, set and
-	restore inferior_ptid.
-
-2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* arm-nbsd-nat.c (fetch_register, fetch_regs, fetch_fp_register,
-	fetch_fp_regs, store_register, store_regs, store_fp_register,
-	store_fp_regs): Use ptid from regcache.
-
-2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* arm-linux-nat.c (fetch_fpregs, store_fpregs, fetch_regs,
-	store_regs, fetch_wmmx_regs, store_wmmx_regs, fetch_vfp_regs,
-	store_vfp_regs): Use ptid from regcache.
-
-2017-03-17  Pedro Alves  <palves@redhat.com>
-
-	PR remote/21188
-	* ser-base.c (ser_base_wait_for): Add comment.
-	(do_ser_base_readchar): Improve comment based on the ser-unix.c's
-	version.
-	* ser-unix.c (hardwire_raw): Remove reference to
-	scb->current_timeout.
-	(wait_for, do_hardwire_readchar, hardwire_readchar): Delete.
-	(hardwire_ops): Install ser_base_readchar instead of
-	hardwire_readchar.
-	* serial.h (struct serial) <current_timeout, timeout_remaining>:
-	Remove fields.
-
-2017-03-17  Jonah Graham  <jonah@kichwacoders.com>
-
-	PR gdb/19637
-	* python/lib/gdb/printer/bound_registers.py: Add support for
-	Python 3.
-
-2017-03-16  Andreas Arnez  <arnez@linux.vnet.ibm.com>
-
-	* dwarf2loc.c (indirect_synthetic_pointer): Get data type of
-	pointed-to DIE and pass it to dwarf2_evaluate_loc_desc_full.
-	(dwarf2_evaluate_loc_desc_full): New parameter subobj_type; rename
-	byte_offset to subobj_byte_offset.  Fix the handling of
-	DWARF_VALUE_STACK on big-endian targets when coming via an
-	implicit pointer.
-	(dwarf2_evaluate_loc_desc): Adjust call to
-	dwarf2_evaluate_loc_desc_full.
-	* dwarf2loc.h (dwarf2_fetch_die_type_sect_off): New declaration.
-	* dwarf2read.c (dwarf2_fetch_die_type_sect_off): New function.
-
-2017-03-16  Yao Qi  <yao.qi@linaro.org>
-
-	* arm-tdep.c (thumb_record_misc): Decode CBNZ, CBZ, REV16,
-	and REVSH instructions.
-
-2017-03-16  Yao Qi  <yao.qi@linaro.org>
-
-	* arm-tdep.c [GDB_SELF_TEST]: include "selftests.h".
-	(arm_record_test): Declare.
-	(_initialize_arm_tdep) [GDB_SELF_TEST]: call register_self_test.
-	(thumb_record_ld_st_reg_offset): Rewrite the opcode matching to
-	align with the manual.
-	(thumb_record_misc): Adjust the code order to align with the
-	manual.
-	(thumb2_record_decode_insn_handler): Fix instruction matching.
-	(instruction_reader_thumb): New class.
-	(arm_record_test): New function.
-
-2017-03-16  Yao Qi  <yao.qi@linaro.org>
-
-	* arm-tdep.c (abstract_memory_reader): New class.
-	(instruction_reader): New class.
-	(extract_arm_insn): Add argument 'reader'.  Callers updated.
-	(decode_insn): Likewise.
-
-2017-03-16  Doug Evans  <dje@google.com>
-
-	* guile/scm-lazy-string.c (lazy_string_smob): Clarify use of LENGTH
-	member.  Change type of TYPE member to SCM.  All uses updated.
-	(lsscm_make_lazy_string_smob): Add assert.
-	(lsscm_make_lazy_string): Flag bad length values.
-	(lsscm_elt_type): New function.
-	(gdbscm_lazy_string_to_value): Rewrite to use
-	lsscm_safe_lazy_string_to_value.
-	(lsscm_safe_lazy_string_to_value): Fix handling of TYPE_CODE_PTR.
-	* guile/scm-value.c (gdbscm_value_to_lazy_string): Flag bad length
-	values.  Fix TYPE_CODE_PTR.  Handle TYPE_CODE_ARRAY.  Handle typedefs
-	in incoming type.
-	* guile/guile-internal.h (tyscm_scm_to_type): Declare.
-	* guile/scm-type.c (tyscm_scm_to_type): New function.
-
-2017-03-15  Doug Evans  <dje@google.com>
-
-	PR python/17728, python/18439, python/18779
-	* python/py-lazy-string.c (lazy_string_object): Clarify use of LENGTH
-	member.  Change type of TYPE member to PyObject *.  All uses updated.
-	(stpy_convert_to_value): Fix handling of TYPE_CODE_PTR.
-	(gdbpy_create_lazy_string_object): Flag bad length values.
-	Handle TYPE_CODE_ARRAY with possibly different user-provided length.
-	Handle typedefs in incoming type.
-	(stpy_lazy_string_elt_type): New function.
-	(gdbpy_extract_lazy_string): Call it.
-	* python/py-value.c (valpy_lazy_string): Flag bad length values.
-	Fix handling of TYPE_CODE_PTR.  Handle TYPE_CODE_ARRAY.  Handle
-	typedefs in incoming type.
-
-2017-03-16  Doug Evans  <dje@google.com>
-
-	* guile/guile-internal.h (tyscm_scm_to_type): Declare.
-	* guile/scm-type.c (tyscm_scm_to_type): New function.
-
-2017-03-16  Jiong Wang  <jiong.wang@arm.com>
-
-	* inf-ptrace.c (inf_ptrace_peek_poke): Change the type to
-	"ULONGEST" for "skip".
-
-2017-03-14  Andreas Arnez  <arnez@linux.vnet.ibm.com>
-
-	PR gdb/21220
-	* inf-ptrace.c (inf_ptrace_xfer_partial): In "case
-	TARGET_OBJECT_MEMORY", extract the logic for ptrace peek/poke...
-	(inf_ptrace_peek_poke): ...here.  New function.  Now also loop
-	over ptrace peek/poke until end of buffer or error.
-
-2017-03-14  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* parse.c (length_of_subexp): Make static.
-	* parser-defs.h (length_of_subexp): Remove.
-
-2017-03-14  Andreas Arnez  <arnez@linux.vnet.ibm.com>
-
-	* linux-nat.c (linux_proc_xfer_partial): Handle write operations
-	as well.
-
-2017-03-14  Pedro Alves  <palves@redhat.com>
-
-	* cp-name-parser.y (cp_demangled_name_to_comp): Update comment.
-	(main): Use std::unique_ptr.  Remove calls to
-	cp_demangled_name_parse_free.
-
-2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* alpha-bsd-nat.c (alphabsd_fetch_inferior_registers,
-	alphabsd_store_inferior_registers): Use regcache->ptid instead
-	of inferior_ptid.
-
-2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* aix-thread.c (aix_thread_fetch_registers,
-	aix_thread_store_registers): Use regcache->ptid instead of
-	inferior_ptid.
-
-2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* aarch64-linux-nat.c (fetch_gregs_from_thread,
-	store_gregs_to_thread, fetch_fpregs_from_thread,
-	store_fpregs_to_thread): Use regcache->ptid instead of
-	inferior_ptid.
-
-2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* amd64-linux-nat.c (amd64_linux_fetch_inferior_registers,
-	amd64_linux_fetch_inferior_registers): Use regcache->ptid
-	instead of inferior_ptid.
-
-2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* target.c (target_fetch_registers, target_store_registers): Add
-	assert.
-
-2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* regcache.h (regcache_get_ptid): New function.
-	* regcache.c (regcache_get_ptid): New function.
-
-2017-03-13  Mark Wielaard  <mark@klomp.org>
-
-	* cp-name-parser.y (make_empty): Initialize d_printing to zero.
-
-2017-03-10  Keith Seitz  <keiths@redhat.com>
-
-	PR c++/8218
-	* c-typeprint.c (cp_type_print_method_args): Skip artificial arguments.
-
-2017-03-08  Pedro Alves  <palves@redhat.com>
-
-	PR gdb/18360
-	* infrun.c (start_step_over, do_target_resume, resume)
-	(restart_threads): Assert we're not resuming a thread that is
-	meant to be stopped.
-	(infrun_thread_stop_requested_callback): Delete.
-	(infrun_thread_stop_requested): If the thread is internally
-	stopped, queue a pending stop event and clear the thread's
-	inline-frame state.
-	(handle_stop_requested): New function.
-	(handle_syscall_event, handle_inferior_event_1): Use
-	handle_stop_requested.
-	(handle_stop_requested): New function.
-	(handle_signal_stop): Set the thread's stop_signal here instead of
-	at caller.
-	(finish_step_over): Clear step over info unconditionally.
-	(handle_signal_stop): If the user had interrupted the event
-	thread, consider the stop a random signal.
-	(handle_signal_stop) <signal arrived while stepping over
-	breakpoint>: Don't restart threads here.
-	(stop_waiting): Don't clear step-over info here.
-
-2017-03-08  Pedro Alves  <palves@redhat.com>
-
-	PR 21206
-	* common/gdb_unlinker.h (unlinker::unlinker): Attribute nonnull
-	goes to argument 2, not 1.
-
-2017-03-08  Pedro Alves  <palves@redhat.com>
-
-	PR cli/21218
-	* top.c (gdb_readline_wrapper): Avoid passing NULL to
-	display_gdb_prompt.
-	(command_line_input): Add comment.
-
-2017-03-08  Pedro Alves  <palves@redhat.com>
-
-	PR tui/21216
-	* tui/tui-file.c (tui_file::write): New.
-	* tui/tui-file.h (tui_file): Override "write".
-	* tui/tui-io.c (do_tui_putc, update_start_line): New functions,
-	factored out from ...
-	(tui_puts): ... here.
-	(tui_putc): Use them.
-	(tui_write): New function.
-	* tui/tui-io.h (tui_write): Declare.
-
-2017-03-07  Sergio Durigan Junior  <sergiodj@redhat.com>
-
-	* Makefile.in (SFILES): Replace "environ.c" with
-	"common/environ.c".
-	(HFILES_NO_SRCDIR): Likewise, for "environ.h".
-	* environ.c: Include "common-defs.h" instead of "defs.h.  Moved
-	to...
-	* common/environ.c: ... here.
-	* environ.h: Moved to...
-	* common/environ.h: ... here.
-
-2017-03-07  Peter Bergner  <bergner@vnet.ibm.com>
-
-	* gdbarch.sh (pstring_ptr): New static function.
-	(gdbarch_disassembler_options): Use it.
-	(gdbarch_verify_disassembler_options): Print valid_disassembler_options,
-	not valid_disassembler_option->name.
-	* gdbarch.c: Regenerate.
-
-2017-03-07  Peter Bergner  <bergner@vnet.ibm.com>
-
-	* config/powerpc/ppc64-linux.mh (MH_CFLAGS): Delete.
-
-2017-03-07  Pedro Alves  <palves@redhat.com>
-
-	* tui/tui-regs.c (tui_restore_gdbout): Don't delete gdb_stdout.
-
-2017-03-07  Walfred Tedeschi  <walfred.tedeschi@intel.com>
-
-	* i387-tdep.h (i387_reset_bnd_regs): Add function definition.
-	* i387-tdep.c (i387_reset_bnd_regs): Add function implementation.
-	* i386-tdep.c (i386_push_dummy_call): Call i387_reset_bnd_regs.
-	* amd64-tdep.c (amd64_push_dummy_call): Call i387_reset_bnd_regs.
-
-2017-03-06  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* xtensa-linux-nat.c (fetch_gregs): Remove const.
-
-2017-03-03  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* remote.c (remote_add_target_side_commands): Use range-based
-	for loop.
-
-2017-03-03  Yao Qi  <yao.qi@linaro.org>
-
-	PR gdb/21165
-	* ada-valprint.c (ada_val_print_ref): Call value_fetch_lazy if
-	value is lazy.
-	* valprint.c (common_val_print): Likewise.
-
-2017-02-28  Peter Bergner  <bergner@vnet.ibm.com>
-
-	* NEWS: Mention new set/show disassembler-options commands.
-	* doc/gdb.texinfo: Document new set/show disassembler-options commands.
-	* disasm.c: Include "arch-utils.h", "gdbcmd.h" and "safe-ctype.h".
-	(prospective_options): New static variable.
-	(gdb_disassembler::gdb_disassembler): Initialize
-	m_di.disassembler_options.
-	(gdb_buffered_insn_length_init_dis): Initilize di->disassembler_options.
-	(get_disassembler_options): New function.
-	(set_disassembler_options): Likewise.
-	(set_disassembler_options_sfunc): Likewise.
-	(show_disassembler_options_sfunc): Likewise.
-	(disassembler_options_completer): Likewise.
-	(_initialize_disasm): Likewise.
-	* disasm.h (get_disassembler_options): New prototype.
-	(set_disassembler_options): Likewise.
-	* gdbarch.sh (gdbarch_disassembler_options): New variable.
-	(gdbarch_verify_disassembler_options): Likewise.
-	* gdbarch.c: Regenerate.
-	* gdbarch.h: Likewise.
-	* arm-tdep.c (num_disassembly_options): Delete.
-	(set_disassembly_style): Likewise.
-	(arm_disassembler_options): New static variable.
-	(set_disassembly_style_sfunc): Convert short style name into long
-	option name.  Call set_disassembler_options.
-	(show_disassembly_style_sfunc): New function.
-	(arm_gdbarch_init): Call set_gdbarch_disassembler_options and
-	set_gdbarch_verify_disassembler_options.
-	(_initialize_arm_tdep): Delete regnames variable and update callers.
-	(arm_disassembler_options): Initialize.
-	(disasm_options): New variable.
-	(num_disassembly_options): Rename from this...
-	(num_disassembly_styles): ...to this.  Compute by scanning through
-	disasm_options.
-	(valid_disassembly_styles): Initialize using disasm_options.
-	Remove calls to parse_arm_disassembler_option, get_arm_regnames and
-	set_arm_regname_option.
-	Pass show_disassembly_style_sfunc to the "disassembler" setshow command.
-	* rs6000-tdep.c (powerpc_disassembler_options): New static variable.
-	(rs6000_gdbarch_init): Call set_gdbarch_disassembler_options and
-	set_gdbarch_verify_disassembler_options.
-	* s390-tdep.c (s390_disassembler_options): New static variable.
-	(s390_gdbarch_init):all set_gdbarch_disassembler_options and
-	set_gdbarch_verify_disassembler_options.
-
-2017-02-27  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* remote.c (remote_add_target_side_condition): Remove "struct"
-	keyword from range-based for loop.
-
-2017-02-27  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* remote.c (remote_add_target_side_condition): Use range-based
-	for loop.  Update comment.
-
-2017-02-27  Yao Qi  <yao.qi@linaro.org>
-
-	* f-typeprint.c (f_print_type): Check "varstring" is empty first.
-
-2017-02-26  Alan Hayward  <alan.hayward@arm.com>
-
-	* regcache.c (regcache_raw_update): New function.
-	(regcache_raw_read): Move code to regcache_raw_update.
-	* regcache.h (regcache_raw_update): New declaration.
-	* remote.c (remote_prepare_to_store): Call regcache_raw_update.
-
-2017-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* dwarf2read.c (create_debug_type_hash_table): Initialize
-	header.signature and header.type_offset_in_tu.
-
-2017-02-24  Pedro Alves  <palves@redhat.com>
-
-	* symtab.c (make_file_symbol_completion_list_1): Use
-	add_symtab_completions.
-
-2017-02-24  Alan Hayward  <alan.hayward@arm.com>
-
-	* stack.c (frame_info): Use frame_unwind_register_value to avoid buf.
-
-2017-02-24  Alan Hayward  <alan.hayward@arm.com>
-
-	* i386-tdep.c (i386_pseudo_register_read_into_value): Use
-	I386_MAX_REGISTER_SIZE.
-	(i386_pseudo_register_write): Likewise.
-	(i386_process_record): Likewise.
-	* i387-tdep.c (i387_supply_xsave): Likewise.
-	* m68k-linux-nat.c (fetch_register): Use M68K_MAX_REGISTER_SIZE.
-	(store_register): Likewise.
-
-2017-02-23  Pedro Alves  <palves@redhat.com>
-
-	* ada-lang.c: Include "common/function-view.h".
-	(ada_iterate_over_symbols): Adjust to use function_view as
-	callback type.
-	(struct add_partial_datum, ada_complete_symbol_matcher): Delete.
-	(ada_make_symbol_completion_list): Use a lambda.
-	(ada_exc_search_name_matches): Delete.
-	(name_matches_regex): New.
-	(ada_add_global_exceptions): Use a lambda and name_matches_regex.
-	* compile/compile-c-support.c: Include "common/function-view.h".
-	(print_one_macro): Change prototype to accept a ui_file pointer.
-	(write_macro_definitions): Use a lambda.
-	* dwarf2read.c: Include "common/function-view.h".
-	(dw2_map_expand_apply, dw2_map_symtabs_matching_filename)
-	(dw2_expand_symtabs_matching): Adjust to use function_view as
-	callback type.
-	* language.h: Include "common/function-view.h".
-	(struct language_defn) <la_iterate_over_symbols>: Adjust to use
-	function_view as callback type.
-	(LA_ITERATE_OVER_SYMBOLS): Remove DATA parameter.
-	* linespec.c: Include "common/function-view.h".
-	(collect_info::add_symbol): New method.
-	(struct symbol_and_data_callback, iterate_inline_only, struct
-	symbol_matcher_data, iterate_name_matcher): Delete.
-	(iterate_over_all_matching_symtabs): Adjust to use function_view
-	as callback type and lambdas.
-	(iterate_over_file_blocks): Adjust to use function_view as
-	callback type.
-	(decode_compound_collector): Now a class with private fields.
-	(decode_compound_collector::release_symbols): New method.
-	(collect_one_symbol): Rename to...
-	(decode_compound_collector::operator()): ... this and adjust.
-	(lookup_prefix_sym): decode_compound_collector construction bits
-	move to decode_compound_collector ctor.  Pass the
-	decode_compound_collector object directly as callback.  Remove
-	cleanups and use decode_compound_collector::release_symbols
-	instead.
-	(symtab_collector): Now a class with private fields.
-	(symtab_collector::release_symtabs): New method.
-	(add_symtabs_to_list): Rename to...
-	(symtab_collector::operator()): ... this and adjust.
-	(collect_symtabs_from_filename): symtab_collector construction
-	bits move to symtab_collector ctor.  Pass the symtab_collector
-	object directly as callback.  Remove cleanups and use
-	symtab_collector::release_symtabs instead.
-	(collect_symbols): Delete.
-	(add_matching_symbols_to_info): Use lambdas.
-	* macrocmd.c (print_macro_callback): Delete.
-	(info_macro_command): Use a lambda.
-	(info_macros_command): Pass print_macro_definition as callable
-	directly.
-	(print_one_macro): Remove 'ignore' parameter.
-	(macro_list_command): Adjust.
-	* macrotab.c (macro_for_each_data::fn): Now a function_view.
-	(macro_for_each_data::user_data): Delete field.
-	(foreach_macro): Adjust to call the function_view.
-	(macro_for_each): Adjust to use function_view as callback type.
-	(foreach_macro_in_scope): Adjust to call the function_view.
-	(macro_for_each_in_scope): Adjust to use function_view as callback
-	type.
-	* macrotab.h: Include "common/function-view.h".
-	(macro_callback_fn): Declare a prototype instead of a pointer.
-	Remove "user_data" parameter.
-	(macro_for_each, macro_for_each_in_scope): Adjust to use
-	function_view as callback type.
-	* psymtab.c (partial_map_expand_apply)
-	(psym_map_symtabs_matching_filename, recursively_search_psymtabs):
-	Adjust to use function_view as callback type and to return bool.
-	(psym_expand_symtabs_matching): Adjust to use function_view as
-	callback types.
-	* symfile-debug.c (debug_qf_map_symtabs_matching_filename): Adjust
-	to use function_view as callback type and to return bool.
-	(debug_qf_expand_symtabs_matching): Adjust to use function_view as
-	callback types.
-	* symfile.c (expand_symtabs_matching): Adjust to use function_view
-	as callback types.
-	* symfile.h: Include "common/function-view.h".
-	(expand_symtabs_file_matcher_ftype)
-	(expand_symtabs_symbol_matcher_ftype)
-	(expand_symtabs_exp_notify_ftype): Remove "data" parameter and
-	return bool.
-	(quick_symbol_functions::map_symtabs_matching_filename)
-	(quick_symbol_functions::expand_symtabs_matching): Adjust to use
-	function_view as callback type and return bool.
-	(expand_symtabs_matching): Adjust to use function_view as callback
-	type.
-	(maintenance_expand_name_matcher)
-	(maintenance_expand_file_matcher): Delete.
-	(maintenance_expand_symtabs): Use lambdas.
-	* symtab.c (iterate_over_some_symtabs): Adjust to use
-	function_view as callback types and return bool.
-	(iterate_over_symtabs): Likewise.  Use unique_xmalloc_ptr instead
-	of a cleanup.
-	(lookup_symtab_callback): Delete.
-	(lookup_symtab): Use a lambda.
-	(iterate_over_symbols): Adjust to use function_view as callback
-	type.
-	(struct search_symbols_data, search_symbols_file_matches)
-	(search_symbols_name_matches): Delete.
-	(search_symbols): Use a pair of lambdas.
-	(struct add_name_data, add_macro_name, symbol_completion_matcher)
-	(symtab_expansion_callback): Delete.
-	(default_make_symbol_completion_list_break_on_1): Use lambdas.
-	* symtab.h: Include "common/function-view.h".
-	(iterate_over_some_symtabs): Adjust to use function_view as
-	callback type and return bool.
-	(iterate_over_symtabs): Adjust to use function_view as callback
-	type.
-	(symbol_found_callback_ftype): Remove 'data' parameter and return
-	bool.
-	(iterate_over_symbols): Adjust to use function_view as callback
-	type.
-
-2017-02-23  Pedro Alves  <palves@redhat.com>
-
-	* Makefile.in (SUBDIR_UNITTESTS_SRCS, SUBDIR_UNITTESTS_OBS): New.
-	(%.o) <unittests/%.c>: New pattern.
-	* configure.ac ($development): Add $(SUBDIR_UNITTESTS_OBS) to
-	CONFIG_OBS, and $(SUBDIR_UNITTESTS_SRCS) to CONFIG_SRCS.
-	* common/function-view.h: New file.
-	* unittests/function-view-selftests.c: New file.
-	* configure: Regenerate.
-
-2017-02-23  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* bsd-uthread.c (bsd_uthread_thread_alive): Use ptid instead of
-	inferior_ptid.
-	* go32-nat.c (go32_thread_alive): Likewise.
-
-2017-02-23  Yao Qi  <yao.qi@linaro.org>
-
-	* varobj-iter.h (varobj_iter_delete): Call xfree instead of
-	delete.
-
-2017-02-23  Yao Qi  <yao.qi@linaro.org>
-
-	* varobj.c (varobj_clear_saved_item): Use delete instead of
-	xfree.
-	(update_dynamic_varobj_children): Likewise.
-
-2017-02-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* dwarf2read.c (dwarf2_record_block_ranges): Add forgotten BASEADDR.
-
-2017-02-21  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* common/enum-flags.h (enum_flags::enum_flags): Initialize
-	m_enum_value to 0 in default constructor.
-
-2017-02-21  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>
-
-	* rs6000-tdep.c (LOAD_AND_RESERVE_MASK): Rename from LWARX_MASK.
-	(STORE_CONDITIONAL_MASK): Rename from STWCX_MASK.
-	(LBARX_INSTRUCTION, LHARX_INSTRUCTION, LQARX_INSTRUCTION,
-	STBCX_INSTRUCTION, STHCX_INSTRUCTION, STQCX_INSTRUCTION): New defines.
-	(IS_LOAD_AND_RESERVE_INSN, IS_STORE_CONDITIONAL_INSN): New macros.
-	(ppc_displaced_step_copy_insn): Use IS_LOAD_AND_RESERVE_INSN.
-	(ppc_deal_with_atomic_sequence): Use IS_LOAD_AND_RESERVE_INSN and
-	IS_STORE_CONDITIONAL_INSN.
-
-2017-02-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* dwarf2_rnglists_process: Initialize range_beginning and range_end.
-
-2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* NEWS (Changes since GDB 7.12): Add DWARF-5.
-
-2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* dwarf2read.c (skip_one_die, read_attribute_value)
-	(dwarf2_const_value_attr, dump_die_shallow)
-	(dwarf2_get_attr_constant_value, dwarf2_fetch_constant_bytes)
-	(skip_form_bytes, attr_form_is_constant): Handle DW_FORM_data16.
-
-2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* dwarf2read.c (read_file_scope): Rename DW_MACRO_GNU_*.
-	(dwarf_parse_macro_header): Accept DWARF version 5.
-	(dwarf_decode_macro_bytes, dwarf_decode_macros): Rename DW_MACRO_GNU_*.
-
-2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* block.c (call_site_for_pc): Rename DW_OP_GNU_*, DW_TAG_GNU_* and
-	DW_AT_GNU_*.
-	* common/common-exceptions.h (enum errors): Likewise.
-	* dwarf2-frame.c (class dwarf_expr_executor): Likewise.
-	* dwarf2expr.c (dwarf_block_to_dwarf_reg)
-	(dwarf_expr_context::execute_stack_op): Likewise.
-	* dwarf2expr.h (struct dwarf_expr_context, struct dwarf_expr_piece):
-	Likewise.
-	* dwarf2loc.c (dwarf_evaluate_loc_desc::get_base_type)
-	(dwarf_evaluate_loc_desc::push_dwarf_reg_entry_value)
-	(show_entry_values_debug, call_site_to_target_addr)
-	(func_addr_to_tail_call_list, func_verify_no_selftailcall)
-	(dwarf_expr_reg_to_entry_parameter, dwarf_entry_parameter_to_value)
-	(entry_data_value_free_closure, value_of_dwarf_reg_entry)
-	(value_of_dwarf_block_entry, indirect_pieced_value)
-	(symbol_needs_eval_context::push_dwarf_reg_entry_value):
-	(disassemble_dwarf_expression): Likewise.
-	* dwarf2read.c (process_die, inherit_abstract_dies)
-	(read_call_site_scope): Likewise.
-	* gdbtypes.h (struct func_type, struct call_site_parameter)
-	(struct call_site): Likewise.
-	* stack.c (read_frame_arg): Likewise.
-	* std-operator.def (OP_VAR_ENTRY_VALUE): Likewise.
-
-2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* defs.h (read_unsigned_leb128): New declaration.
-	* dwarf2loc.c (decode_debug_loclists_addresses): New function.
-	(decode_debug_loc_dwo_addresses): Update DEBUG_LOC_* to DW_LLE_*.
-	(dwarf2_find_location_expression): Call also
-	decode_debug_loclists_addresses.  Handle DWARF-5 ULEB128 length.
-	* dwarf2loc.h (dwarf2_version): New declaration.
-	* dwarf2read.c (struct dwarf2_per_objfile): Add loclists, line_str,
-	rnglists.
-	(dwarf2_elf_names): Add .debug_loclists, .debug_line_str,
-	.debug_rnglists.
-	(struct dwop_section_names): Add loclists_dwo.
-	(dwop_section_names): Add .debug_loclists.dwo.
-	(struct comp_unit_head): Add unit_type, signature, type_offset_in_tu.
-	(struct dwarf2_per_cu_data): Add dwarf_version.
-	(struct dwo_sections): Add loclists.
-	(struct attr_abbrev): Add implicit_const.
-	(read_indirect_line_string): New declaration.
-	(read_unsigned_leb128): Delete declaration.
-	(rcuh_kind): New definition.
-	(read_and_check_comp_unit_head): Change parameter
-	is_debug_types_section to section_kind.
-	(dwarf2_locate_sections): Handle loclists, line_str and rnglists.
-	(read_comp_unit_head): Change parameter abfd to section, add parameter
-	section_kind.  Handle DWARF-5.
-	(error_check_comp_unit_head): Accept also DWARF version 5.
-	(read_and_check_comp_unit_head): Change parameter
-	is_debug_types_section to section_kind.
-	(read_and_check_type_unit_head): Delete function.
-	(read_abbrev_offset): Handle DWARF-5.
-	(create_debug_type_hash_table): Add parameter section_kind.  Process
-	only DW_UT_type.  Use signature and type_offset_in_tu from struct
-	comp_unit_head.
-	(create_debug_types_hash_table): Update create_debug_type_hash_table
-	caller.
-	(create_all_type_units): Call create_debug_type_hash_table.
-	(read_cutu_die_from_dwo, init_cutu_and_read_dies): Change
-	read_and_check_type_unit_head caller to read_and_check_comp_unit_head
-	caller.
-	(skip_one_die): Handle DW_FORM_implicit_const.
-	(dwarf2_rnglists_process): New function.
-	(dwarf2_ranges_process): Call dwarf2_rnglists_process for DWARF-5.
-	(abbrev_table_read_table): Handle DW_FORM_implicit_const.
-	(read_attribute_value): Handle DW_FORM_implicit_const,
-	DW_FORM_line_strp.
-	(read_attribute): Handle DW_FORM_implicit_const.
-	(read_indirect_string_at_offset_from): New function from
-	read_indirect_string_at_offset.
-	(read_indirect_string_at_offset): Call
-	read_indirect_string_at_offset_from.
-	(read_indirect_line_string_at_offset): New function.
-	(read_indirect_string): New function comment.
-	(read_indirect_line_string): New function.
-	(read_unsigned_leb128): Make it global.
-	(dwarf2_string_attr): Handle DWARF-5.
-	(add_include_dir_stub, read_formatted_entries): New functions.
-	(dwarf_decode_line_header, dump_die_shallow, cu_debug_loc_section):
-	Handle DWARF-5.
-	(per_cu_header_read_in): Update read_comp_unit_head caller.
-	(dwarf2_version): New function.
-	* symfile.h (struct dwarf2_debug_sections): Add loclists, line_str and
-	rnglists.
-	* xcoffread.c (dwarf2_xcoff_names): Update struct dwarf2_debug_sections
-	fields.
-
-2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* dwarf2read.c (abbrev_table_read_table): Read the data only once.
-
-2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* dwarf2read.c (dwarf2_ranges_process): New function from
-	dwarf2_ranges_read.
-	(dwarf2_ranges_read, dwarf2_record_block_ranges): Use
-	dwarf2_ranges_process.
-
-2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* dwarf2read.c (create_debug_type_hash_table): New function from
-	create_debug_types_hash_table.
-	(create_debug_types_hash_table): Call create_debug_type_hash_table.
-	(create_all_type_units, open_and_init_dwo_file): Update
-	create_debug_types_hash_table callers.
-
-2017-02-20  Sergio Durigan Junior  <sergiodj@redhat.com>
-
-	PR gdb/16188
-	* fork-child.c (trace_start_error): Fix thinko.  va_end should
-	refer to 'ap', not 'args'.
-
-2017-02-20  Sergio Durigan Junior  <sergiodj@redhat.com>
-	    Pedro Alves  <palves@redhat.com>
-
-	PR gdb/16188
-	* darwin-nat.c (darwin_ptrace_me): Check if calls to system
-	calls succeeded.
-	* fork-child.c (trace_start_error): New function.
-	(trace_start_error_with_name): Likewise.
-	* gnu-nat.c (gnu_ptrace_me): Check if call to PTRACE succeeded.
-	* inf-ptrace.c (inf_ptrace_me): Likewise.
-	* inferior.h (trace_start_error): New prototype.
-	(trace_start_error_with_name): Likewise.
-
-2017-02-15  Sergio Durigan Junior  <sergiodj@redhat.com>
-
-	PR gdb/21164
-	* psymtab.c (maintenance_print_psymbols): Verify if 'argv' is not
-	NULL before using it.
-	* symmisc.c (maintenance_print_symbols): Likewise.
-	(maintenance_print_msymbols): Likewise.
-
-2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* NEWS: Add record Python bindings entry.
-
-2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* Makefile.in (SUBDIR_PYTHON_OBS): Add py-record-btrace.o,
-	py-record-full.o.
-	(SUBDIR_PYTHON_SRCS): Add py-record-btrace.c, py-record-full.c.
-	* python/py-record-btrace.c, python/py-record-btrace.h,
-	python/py-record-full.c, python/py-record-full.h: New file.
-	* python/py-record.c: Add include for py-record-btrace.h and
-	py-record-full.h.
-	(recpy_method, recpy_format, recpy_goto, recpy_replay_position,
-	recpy_instruction_history, recpy_function_call_history, recpy_begin,
-	recpy_end): Use functions from py-record-btrace.c and py-record-full.c.
-	* python/python-internal.h (PyInt_FromSsize_t, PyInt_AsSsize_t):
-	New definition.
-	(gdbpy_initialize_btrace): New export.
-	* python/python.c (_initialize_python): Add gdbpy_initialize_btrace.
-
-2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* Makefile.in (SUBDIR_PYTHON_OBS): Add python/py-record.o.
-	(SUBDIR_PYTHON_SRCS): Add python/py-record.c.
-	* python/py-record.c: New file.
-	* python/python-internal.h (gdbpy_start_recording,
-	gdbpy_current_recording, gdpy_stop_recording,
-	gdbpy_initialize_record): New export.
-	* python/python.c (_initialize_python): Add gdbpy_initialize_record.
-	(python_GdbMethods): Add gdbpy_start_recording,
-	gdbpy_current_recording and gdbpy_stop_recording.
-
-2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* record-btrace.c (record_btrace_record_method): New function.
-	(init_record_btrace_ops): Initialize to_record_method.
-	* record-full.c (record_full_record_method): New function.
-	(init_record_full_ops, init_record_full_core_ops): Add
-	record_full_record_method.
-	* record.h (enum record_method): New enum.
-	* target-debug.h (target_debug_print_enum_record_method: New define.
-	* target-delegates.c: Regenerate.
-	* target.c (target_record_method): New function.
-	* target.h: Include record.h.
-	(struct target_ops) <to_record_method>: New field.
-	(target_record_method): New export.
-
-2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* record.h (record_start, record_stop): New export.
-	* record.c (record_start, record_stop): New function.
-
-2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* btrace.c (btrace_fetch): Copy function call segments pointer
-	into a vector.
-	(btrace_clear): Clear the vector.
-	(btrace_find_insn_by_number): Use binary search to find the correct
-	function call segment.
-	* btrace.h (brace_fun_p): New typedef.
-	(struct btrace_thread_info) <functions>: New field.
-
-2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* record-btrace.c (btrace_ui_out_decode_error): Move most of it ...
-	* btrace.c (btrace_decode_error): ... here.  New function.
-	* btrace.h (btrace_decode_error): New export.
-
-2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
-
-	* btrace.c (ftrace_call_num_insn, btrace_insn_get_error): New function.
-	(ftrace_new_function, btrace_insn_number, btrace_insn_cmp,
-	btrace_find_insn_by_number): Remove special case for gaps.
-	* btrace.h (btrace_insn_get_error): New export.
-	(btrace_insn_number, btrace_find_insn_by_number): Adjust comment.
-	* record-btrace.c (btrace_insn_history): Print number for gaps.
-	(record_btrace_info, record_btrace_goto): Handle gaps.
-
-2017-02-14  Tom Tromey  <tom@tromey.com>
-
-	PR python/13598:
-	* python/python.c (gdbpy_before_prompt_hook): Emit before_prompt
-	event.
-	* python/py-evts.c (gdbpy_initialize_py_events): Add
-	before_prompt registry.
-	* python/py-events.h (events_object) <before_prompt>: New field.
-
-2017-02-14  Markus Metzger  <markus.t.metzger@intel.com>
-
-	* btrace.c (ftrace_new_switch): Preserve up link and flags.
-
-2017-02-13  Luis Machado  <lgustavo@codesourcery.com>
-
-	* symfile (_initialize_symfile): Add usage text to the load command's
-	help text.
-
-2017-02-10  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* utils.c (defaulted_query): Don't query on secondary UIs.
-
-2017-02-10  Tom Tromey  <tom@tromey.com>
-
-	* rust-lang.c (rust_get_disr_info): Remove unused variable.
-
-2017-02-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-value.c (valpy_richcompare_throw): Remove unnecessary
-	"cleanup" local.
-	* python/py-type.c (typy_legacy_template_argument): Remove
-	unnecessary "cleanup" local.
-
-2017-02-10  Tom Tromey  <tom@tromey.com>
-
-	* python/python.c (do_start_initialization): New function, from
-	_initialize_python.
-	(_initialize_python): Call do_start_initialization.
-	* python/py-linetable.c (ltpy_iternext): Use explicit returns, not
-	goto.
-
-2017-02-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-prettyprint.c (pretty_print_one_value): Use
-	gdbpy_ref.
-
-2017-02-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-cmd.c (cmdpy_destroyer): Use gdbpy_ref.
-	* python/py-breakpoint.c (gdbpy_breakpoint_deleted): Use
-	gdbpy_ref.
-	* python/py-type.c (field_new): Use gdbpy_ref.
-	* python/py-symtab.c (symtab_and_line_to_sal_object): Use
-	gdbpy_ref.
-	* python/py-progspace.c (pspy_new): Use gdbpy_ref.
-	(py_free_pspace): Likewise.
-	(pspace_to_pspace_object): Likewise.
-	* python/py-objfile.c (objfpy_new): Use gdbpy_ref.
-	(py_free_objfile): Likewise.
-	(objfile_to_objfile_object): Likewise.
-	* python/py-inferior.c (delete_thread_object): Use
-	gdbpy_ref.
-	(infpy_read_memory): Likewise.
-	(py_free_inferior): Likewise.
-	* python/py-evtregistry.c (create_eventregistry_object): Use
-	gdbpy_ref.
-	* python/py-event.c (create_event_object): Use gdbpy_ref.
-
-2017-02-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-ref.h (gdbpy_ref_policy): Now a template.
-	(gdbpy_ref): Now a template; allow subclasses of PyObject to be
-	used.
-	* python/py-arch.c, python/py-bpevent.c, python/py-breakpoint.c,
-	python/py-cmd.c, python/py-continueevent.c, python/py-event.c,
-	python/py-exitedevent.c, python/py-finishbreakpoint.c,
-	python/py-framefilter.c, python/py-function.c,
-	python/py-inferior.c, python/py-infevents.c,
-	python/py-linetable.c, python/py-newobjfileevent.c,
-	python/py-param.c, python/py-prettyprint.c, python/py-ref.h,
-	python/py-signalevent.c, python/py-stopevent.c,
-	python/py-symbol.c, python/py-threadevent.c, python/py-type.c,
-	python/py-unwind.c, python/py-utils.c, python/py-value.c,
-	python/py-varobj.c, python/py-xmethods.c, python/python.c,
-	varobj.c: Change gdbpy_ref to gdbpy_ref<>.
-
-2017-02-10  Tom Tromey  <tom@tromey.com>
-
-	* ui-out.h (ui_out_emit_type): New class.
-	(ui_out_emit_tuple, ui_out_emit_list): New typedefs.
-	* python/py-framefilter.c (py_print_single_arg): Use gdb::optional
-	and ui_out_emit_tuple.
-	(enumerate_locals): Likewise.
-	(py_mi_print_variables, py_print_locals, py_print_args): Use
-	ui_out_emit_list.
-	(py_print_frame): Use gdb::optional, ui_out_emit_tuple,
-	ui_out_emit_list.
-	* common/gdb_optional.h: New file.
-
-2017-02-10  Martin Galvan  <martingalvan@sourceware.org>
-
-	* MAINTAINERS (Write After Approval): Update my e-mail address.
-
-2017-02-10  Martin Galvan  <martingalvan@sourceware.org>
-
-	PR gdb/21122
-	* breakpoint.c (_initialize_breakpoint): Update the help description
-	of the 'commands' command to indicate that it takes a list argument.
-
-2017-02-09  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* interps.c (current_interp_set_logging): Remove "return".
-
-2017-02-09  Gary Benson  <gbenson@redhat.com>
-
-	* symtab.c (add_symtab_completions): Prevent NULL pointer
-	dereference.
-
-2017-02-08  Pedro Alves  <palves@redhat.com>
-
-	* interps.c (interp::interp): Remove reference to quiet_p.
-	(interp_set): Make static.  Remove dead "Switching to" output
-	code.
-	(interp_quiet_p, interp_set_quiet): Delete.
-	(interpreter_exec_cmd): Don't set the interpreter quiet.
-	* interps.h (interp_quiet_p): Make static.
-	(class interp) <quiet_p>: Remove field
-
-2017-02-08  Jerome Guitton  <guitton@adacore.com>
-
-	* cli/cli-decode.c (find_command_name_length): Make it extern.
-	* cli/cli-decode.h (find_command_name_length): Declare.
-	* cli/cli-script.c (command_name_equals, line_first_arg):
-	New functions.
-	(process_next_line): Use cli-decode to parse command names.
-	(build_command_line): Make args a constant pointer.
-
-2017-02-08  Jerome Guitton  <guitton@adacore.com>
-
-	* cli-decode.c (lookup_cmd_1, lookup_cmd_composition):
-	Remove case-insensitive search.
-
-2017-02-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
-
-	* sparc-tdep.c (sparc32_gdbarch_init): Do not place a + operator
-	at the end of the line.  Avoids an ARI warning.
-
-2017-02-06  Luis Machado  <lgustavo@codesourcery.com>
-
-	* NEWS: Mention support for record/replay of Intel 64 rdrand and
-	rdseed instructions.
-	i386-tdep.c (i386_process_record): Handle Intel 64 rdrand and rseed.
-
-2017-02-06  Ivo Raisr  <ivo.raisr@oracle.com>
-
-	PR tdep/20936
-	Provide and use sparc32 and sparc64 target description XML files.
-	* features/sparc/sparc32-cp0.xml, features/sparc/sparc32-cpu.xml,
-	features/sparc/sparc32-fpu.xml: New files for sparc 32-bit.
-	* features/sparc/sparc64-cp0.xml, features/sparc/sparc64-cpu.xml,
-	features/sparc/sparc64-fpu.xml: New files for sparc 64-bit.
-	* features/sparc/sparc32-solaris.xml: New file.
-	* features/sparc/sparc64-solaris.xml: New file.
-	* features/sparc/sparc32-solaris.c: Generated.
-	* features/sparc/sparc64-solaris.c: Generated.
-	* sparc-tdep.h: Account for differences in target descriptions.
-	* sparc-tdep.c (sparc32_register_name): Use target provided registers.
-	(sparc32_register_type): Use target provided registers.
-	(validate_tdesc_registers): New function.
-	(sparc32_gdbarch_init): Use tdesc_has_registers.
-	Set pseudoregister functions.
-	* sparc64-tdep.c (sparc64_register_name): Use target provided registers.
-	(sparc64_register_type): Use target provided registers.
-	(sparc64_init_abi): Set pseudoregister functions.
-
-2017-02-03  Tom Tromey  <tom@tromey.com>
-
-	PR rust/21097:
-	* rust-lang.c (rust_print_type) <TYPE_CODE_UNION>: Handle enums
-	with a single member.
-
-2017-02-03  Pedro Alves  <palves@redhat.com>
-
-	* cli/cli-interp.c (cli_interp_base::cli_interp_base)
-	(cli_interp_base::~cli_interp_base): New.
-	(cli_interp): New struct.
-	(as_cli_interp): Cast the interp itself to cli_interp.
-	(cli_interpreter_pre_command_loop): Rename to ...
-	(cli_interp_base::pre_command_loop): ... this.  Remove 'self'
-	parameter.
-	(cli_interpreter_init): Rename to ...
-	(cli_interp::init): ... this.  Remove 'self' parameter.  Use
-	boolean.  Make extern.
-	(cli_interpreter_resume): Rename to ...
-	(cli_interp::resume): ... this.  Remove 'data' parameter.  Make
-	extern.
-	(cli_interpreter_suspend): Rename to ...
-	(cli_interp::suspend): ... this.  Remove 'data' parameter.  Make
-	extern.
-	(cli_interpreter_exec): Rename to ...
-	(cli_interp::exec): ... this.  Remove 'data' parameter.  Make
-	extern.
-	(cli_interpreter_supports_command_editing): Rename to ...
-	(cli_interp_base::supports_command_editing): ... this.  Remove
-	'interp' parameter.  Make extern.
-	(cli_ui_out): Rename to ...
-	(cli_interp::interp_ui_out): ... this.  Remove 'interp' parameter.
-	Make extern.
-	(cli_set_logging): Rename to ...
-	(cli_interp_base::set_logging): ... this.  Remove 'interp'
-	parameter.  Make extern.
-	(cli_interp_procs): Delete.
-	(cli_interp_factory): Adjust to use "new".
-	* cli/cli-interp.h: Include "interps.h".
-	(struct cli_interp_base): New struct.
-	* interps.c (struct interp): Delete.  Fields moved to interps.h.
-	(interp_new): Delete.
-	(interp::interp, interp::~interp): New.
-	(interp_set): Use bool, and return void.  Assume the interpreter
-	has suspend, init and resume methods, and that the all return
-	void.
-	(set_top_level_interpreter): interp_set returns void.
-	(interp_ui_out): Adapt.
-	(current_interp_set_logging): Adapt.
-	(interp_data): Delete.
-	(interp_pre_command_loop, interp_supports_command_editing): Adapt.
-	(interp_exec): Adapt.
-	(top_level_interpreter_data): Delete.
-	* interps.h (interp_init_ftype, interp_resume_ftype)
-	(interp_suspend_ftype, interp_exec_ftype)
-	(interp_pre_command_loop_ftype, interp_ui_out_ftype): Delete.
-	(class interp): New.
-	(interp_new): Delete.
-	(interp_set): Now returns void.  Use bool.
-	(interp_data, top_level_interpreter_data): Delete.
-	* mi/mi-common.h: Include interps.h.
-	(class mi_interp): Inherit from interp.  Define a ctor.  Declare
-	init, resume, suspect, exec, interp_ui_out, set_logging and
-	pre_command_loop methods.
-	* mi/mi-interp.c (as_mi_interp): Cast the interp itself.
-	(mi_interpreter_init): Rename to ...
-	(mi_interp::init): ... this.  Remove the 'interp' parameter, use
-	bool, return void and make extern.  Adjust.
-	(mi_interpreter_resume): ... Rename to ...
-	(mi_interp::resume): ... this.  Remove the 'data' parameter,
-	return void and make extern.  Adjust.
-	(mi_interpreter_suspend): ... Rename to ...
-	(mi_interp::suspend): ... this.  Remove the 'data' parameter,
-	return void and make extern.  Adjust.
-	(mi_interpreter_exec): ... Rename to ...
-	(mi_interp::exec): ... this.  Remove the 'data' parameter and make
-	extern.  Adjust.
-	(mi_interpreter_pre_command_loop): ... Rename to ...
-	(mi_interp::pre_command_loop): ... this.  Remove the 'self'
-	parameter and make extern.
-	(mi_on_normal_stop_1): Adjust.
-	(mi_ui_out): Rename to ...
-	(mi_interp::interp_ui_out): ... this.  Remove the 'interp'
-	parameter and make extern.  Adjust.
-	(mi_set_logging): Rename to ...
-	(mi_interp::set_logging): ... this.  Remove the 'interp'
-	parameter and make extern.  Adjust.
-	(mi_interp_procs): Delete.
-	(mi_interp_factory): Adjust to use 'new'.
-	* mi/mi-main.c (mi_cmd_gdb_exit, captured_mi_execute_command)
-	(mi_print_exception, mi_execute_command, mi_load_progress):
-	Adjust.
-	* tui/tui-interp.c (tui_interp): New class.
-	(as_tui_interp): Return a tui_interp pointer.
-	(tui_on_normal_stop, tui_on_signal_received)
-	(tui_on_end_stepping_range, tui_on_signal_exited, tui_on_exited)
-	(tui_on_no_history, tui_on_user_selected_context_changed): Adjust
-	to use interp::interp_ui_out.
-	(tui_init): Rename to ...
-	(tui_interp::init): ... this.  Remove the 'self' parameter, use
-	bool, return void and make extern.  Adjust.
-	(tui_resume): Rename to ...
-	(tui_interp::resume): ... this.  Remove the 'data' parameter,
-	return void and make extern.  Adjust.
-	(tui_suspend): Rename to ...
-	(tui_interp::suspend): ... this.  Remove the 'data' parameter,
-	return void and make extern.  Adjust.
-	(tui_ui_out): Rename to ...
-	(tui_interp::interp_ui_out): ... this.  Remove the 'self'
-	parameter, and make extern.  Adjust.
-	(tui_exec): Rename to ...
-	(tui_interp::exec): ... this.  Remove the 'data' parameter and
-	make extern.
-	(tui_interp_procs): Delete.
-	(tui_interp_factory): Use "new".
-
-2017-02-02  Tom Tromey  <tom@tromey.com>
-
-	* rust-exp.y (ends_raw_string, space_then_number)
-	(rust_identifier_start_p): Return bool.
-	* rust-lang.c (rust_tuple_type_p, rust_underscore_fields)
-	(rust_tuple_struct_type_p, rust_tuple_variant_type_p)
-	(rust_slice_type_p, rust_range_type_p, rust_u8_type_p)
-	(rust_chartype_p): Return bool.
-	(val_print_struct, rust_print_struct_def, rust_print_type):
-	Update.
-	* rust-lang.h (rust_tuple_type_p, rust_tuple_struct_type_p):
-	Return bool.
-
-2017-02-02  Tom Tromey  <tom@tromey.com>
-
-	* rust-lang.c: Reindent.
-
-2017-02-02  Tom Tromey  <tom@tromey.com>
-
-	* rust-lang.h (rust_crate_for_block): Update.
-	* rust-lang.c (rust_crate_for_block): Return std::string.
-	(rust_get_disr_info): Use std:;string, not
-	gdb::unique_xmalloc_ptr.
-	* rust-exp.y (crate_name): Update.
-
-2017-02-02  Pedro Alves  <palves@redhat.com>
-
-	* disasm-selftests.c (print_one_insn_test): Move the "verbose"
-	field out of gdb_disassembler_test and make it static.
-
-2017-02-02  Pedro Alves  <palves@redhat.com>
-
-	* mi/mi-common.h (struct mi_interp): Delete the mi2_interp,
-	mi1_interp and mi_interp fields.
-
-2017-02-02  Pedro Alves  <palves@redhat.com>
-
-	* cli/cli-interp.c (struct saved_output_files, saved_output):
-	Moved from cli/cli-logging.c.
-	(cli_set_logging): New function.
-	(cli_interp_procs): Install cli_set_logging.
-	* cli/cli-interp.h (make_logging_output, cli_set_logging):
-	Declare.
-	* cli/cli-logging.c (struct saved_output_files, saved_output):
-	Moved to cli/cli-interp.c.
-	(pop_output_files): Don't save outputs here.
-	(make_logging_output): New function.
-	(handle_redirections): Don't build tee nor save previous outputs
-	here.
-	* interps.c (current_interp_set_logging): Change prototype.
-	Assume there's always a set_logging_proc method installed.
-	* interps.h (interp_set_logging_ftype): Change prototype.
-	(current_interp_set_logging): Change prototype and adjust comment.
-	* mi/mi-interp.c (mi_set_logging): Change protototype.  Adjust to
-	use make_logging_output.
-	* tui/tui-interp.c (tui_interp_procs): Install cli_set_logging.
-2017-02-02  Pedro Alves  <palves@redhat.com>
-
-	* cli/cli-logging.c (maybe_warn_already_logging): New factored out
-	from ...
-	(set_logging_overwrite): ... here.
-	(logging_no_redirect_file): Delete.
-	(set_logging_redirect): Don't handle redirection on the fly.
-	Instead warn that "logging off" / "logging on" is necessary.
-	(pop_output_files): Delete references to logging_no_redirect_file.
-	(show_logging_command): Always speak in terms of what will happen
-	once logging is reenabled.
-
-2017-02-02  Pedro Alves  <palves@redhat.com>
-
-	* disasm.h (gdb_pretty_print_disassembler): Tweak intro comment.
-
-2017-02-02  Pedro Alves  <palves@redhat.com>
-
-	* disasm.c (gdb_pretty_print_insn): Rename to ...
-	(gdb_pretty_print_disassembler::pretty_print_insn): ... this.
-	Remove gdbarch parameter.  Adapt to clear the object's buffers
-	instead of allocating new buffers, and to print using the object's
-	gdb_disassembler instead of calling gdb_print_insn.
-	(dump_insns): Use gdb_pretty_print_disassembler.
-	* disasm.h (gdb_pretty_print_insn): Delete declaration.
-	(gdb_pretty_print_disassembler): New class.
-	* record-btrace.c (btrace_insn_history): Use
-	gdb_pretty_print_disassembler.
-
-2017-02-02  Pedro Alves  <palves@redhat.com>
-
-	* ada-lang.c (type_as_string): Use string_file.
-	* ada-valprint.c (ada_print_floating): Use string_file.
-	* ada-varobj.c (ada_varobj_scalar_image)
-	(ada_varobj_get_value_image): Use string_file.
-	* aix-thread.c (aix_thread_extra_thread_info): Use string_file.
-	* arm-tdep.c (_initialize_arm_tdep): Use string_printf.
-	* breakpoint.c (update_inserted_breakpoint_locations)
-	(insert_breakpoint_locations, reattach_breakpoints)
-	(print_breakpoint_location, print_one_detail_ranged_breakpoint)
-	(print_it_watchpoint): Use string_file.
-	(save_breakpoints): Use stdio_file.
-	* c-exp.y (oper): Use string_file.
-	* cli/cli-logging.c (set_logging_redirect): Use ui_file_up and
-	tee_file.
-	(pop_output_files): Use delete.
-	(handle_redirections): Use stdio_file and tee_file.
-	* cli/cli-setshow.c (do_show_command): Use string_file.
-	* compile/compile-c-support.c (c_compute_program): Use
-	string_file.
-	* compile/compile-c-symbols.c (generate_vla_size): Take a
-	'string_file &' instead of a 'ui_file *'.
-	(generate_c_for_for_one_variable): Take a 'string_file &' instead
-	of a 'ui_file *'.  Use string_file.
-	(generate_c_for_variable_locations): Take a 'string_file &'
-	instead of a 'ui_file *'.
-	* compile/compile-internal.h (generate_c_for_for_one_variable):
-	Take a 'string_file &' instead of a 'ui_file *'.
-	* compile/compile-loc2c.c (push, pushf, unary, binary)
-	(print_label, pushf_register_address, pushf_register)
-	(do_compile_dwarf_expr_to_c): Take a 'string_file &' instead of a
-	'ui_file *'.  Adjust.
-	* compile/compile.c (compile_to_object): Use string_file.
-	* compile/compile.h (compile_dwarf_expr_to_c)
-	(compile_dwarf_bounds_to_c): Take a 'string_file &' instead of a
-	'ui_file *'.
-	* cp-support.c (inspect_type): Use string_file and obstack_copy0.
-	(replace_typedefs_qualified_name): Use string_file and
-	obstack_copy0.
-	* disasm.c (gdb_pretty_print_insn): Use string_file.
-	(gdb_disassembly): Adjust reference the null_stream global.
-	(do_ui_file_delete): Delete.
-	(gdb_insn_length): Use null_stream.
-	* dummy-frame.c (maintenance_print_dummy_frames): Use stdio_file.
-	* dwarf2loc.c (dwarf2_compile_property_to_c)
-	(locexpr_generate_c_location, loclist_generate_c_location): Take a
-	'string_file &' instead of a 'ui_file *'.
-	* dwarf2loc.h (dwarf2_compile_property_to_c): Likewise.
-	* dwarf2read.c (do_ui_file_peek_last): Delete.
-	(dwarf2_compute_name): Use string_file.
-	* event-top.c (gdb_setup_readline): Use stdio_file.
-	* gdbarch.sh (verify_gdbarch): Use string_file.
-	* gdbtypes.c (safe_parse_type): Use null_stream.
-	* guile/scm-breakpoint.c (gdbscm_breakpoint_commands): Use
-	string_file.
-	* guile/scm-disasm.c (gdbscm_print_insn_from_port): Take a
-	'string_file *' instead of a 'ui_file *'.
-	(gdbscm_arch_disassemble): Use string_file.
-	* guile/scm-frame.c (frscm_print_frame_smob): Use string_file.
-	* guile/scm-ports.c (class ioscm_file_port): Now a class that
-	inherits from ui_file.
-	(ioscm_file_port_delete, ioscm_file_port_rewind)
-	(ioscm_file_port_put): Delete.
-	(ioscm_file_port_write): Rename to ...
-	(ioscm_file_port::write): ... this.  Remove file_port_magic
-	checks.
-	(ioscm_file_port_new): Delete.
-	(ioscm_with_output_to_port_worker): Use ioscm_file_port and
-	ui_file_up.
-	* guile/scm-type.c (tyscm_type_name): Use string_file.
-	* guile/scm-value.c (vlscm_print_value_smob, gdbscm_value_print):
-	Use string_file.
-	* infcmd.c (print_return_value_1): Use string_file.
-	* infrun.c (print_target_wait_results): Use string_file.
-	* language.c (add_language): Use string_file.
-	* location.c (explicit_to_string_internal): Use string_file.
-	* main.c (captured_main_1): Use null_file.
-	* maint.c (maintenance_print_architecture): Use stdio_file.
-	* mi/mi-cmd-stack.c (list_arg_or_local): Use string_file.
-	* mi/mi-common.h (struct mi_interp) <out, err, log, targ,
-	event_channel>: Change type to mi_console_file pointer.
-	* mi/mi-console.c (mi_console_file_fputs, mi_console_file_flush)
-	(mi_console_file_delete): Delete.
-	(struct mi_console_file): Delete.
-	(mi_console_file_magic): Delete.
-	(mi_console_file_new): Delete.
-	(mi_console_file::mi_console_file): New.
-	(mi_console_file_delete): Delete.
-	(mi_console_file_fputs): Delete.
-	(mi_console_file::write): New.
-	(mi_console_raw_packet): Delete.
-	(mi_console_file::flush): New.
-	(mi_console_file_flush): Delete.
-	(mi_console_set_raw): Rename to ...
-	(mi_console_file::set_raw): ... this.
-	* mi/mi-console.h (class mi_console_file): New class.
-	(mi_console_file_new, mi_console_set_raw): Delete.
-	* mi/mi-interp.c (mi_interpreter_init): Use mi_console_file.
-	(mi_set_logging): Use delete and tee_file.  Adjust.
-	* mi/mi-main.c (output_register): Use string_file.
-	(mi_cmd_data_evaluate_expression): Use string_file.
-	(mi_cmd_data_read_memory): Use string_file.
-	(mi_cmd_execute, print_variable_or_computed): Use string_file.
-	* mi/mi-out.c (mi_ui_out::main_stream): New.
-	(mi_ui_out::rewind): Use main_stream and
-	string_file.
-	(mi_ui_out::put): Use main_stream and string_file.
-	(mi_ui_out::mi_ui_out): Remove 'stream' parameter.
-	Allocate a 'string_file' instead.
-	(mi_out_new): Don't allocate a mem_fileopen stream here.
-	* mi/mi-out.h (mi_ui_out::mi_ui_out): Remove 'stream' parameter.
-	(mi_ui_out::main_stream): Declare method.
-	* printcmd.c (eval_command): Use string_file.
-	* psymtab.c (maintenance_print_psymbols): Use stdio_file.
-	* python/py-arch.c (archpy_disassemble): Use string_file.
-	* python/py-breakpoint.c (bppy_get_commands): Use string_file.
-	* python/py-frame.c (frapy_str): Use string_file.
-	* python/py-framefilter.c (py_print_type, py_print_single_arg):
-	Use string_file.
-	* python/py-type.c (typy_str): Use string_file.
-	* python/py-unwind.c (unwind_infopy_str): Use string_file.
-	* python/py-value.c (valpy_str): Use string_file.
-	* record-btrace.c (btrace_insn_history): Use string_file.
-	* regcache.c (regcache_print): Use stdio_file.
-	* reggroups.c (maintenance_print_reggroups): Use stdio_file.
-	* remote.c (escape_buffer): Use string_file.
-	* rust-lang.c (rust_get_disr_info): Use string_file.
-	* serial.c (serial_open_ops_1): Use stdio_file.
-	(do_serial_close): Use delete.
-	* stack.c (print_frame_arg): Use string_file.
-	(print_frame_args): Remove local mem_fileopen stream, not used.
-	(print_frame): Use string_file.
-	* symmisc.c (maintenance_print_symbols): Use stdio_file.
-	* symtab.h (struct symbol_computed_ops) <generate_c_location>:
-	Take a 'string_file *' instead of a 'ui_file *'.
-	* top.c (new_ui): Use stdio_file and stderr_file.
-	(free_ui): Use delete.
-	(execute_command_to_string): Use string_file.
-	(quit_confirm): Use string_file.
-	* tracepoint.c (collection_list::append_exp): Use string_file.
-	* tui/tui-disasm.c (tui_disassemble): Use string_file.
-	* tui/tui-file.c: Don't include "ui-file.h".
-	(enum streamtype, struct tui_stream): Delete.
-	(tui_file_new, tui_file_delete, tui_fileopen, tui_sfileopen)
-	(tui_file_isatty, tui_file_rewind, tui_file_put): Delete.
-	(tui_file::tui_file): New method.
-	(tui_file_fputs): Delete.
-	(tui_file_get_strbuf): Delete.
-	(tui_file::puts): New method.
-	(tui_file_adjust_strbuf): Delete.
-	(tui_file_flush): Delete.
-	(tui_file::flush): New method.
-	* tui/tui-file.h: Tweak intro comment.
-	Include ui-file.h.
-	(tui_fileopen, tui_sfileopen, tui_file_get_strbuf)
-	(tui_file_adjust_strbuf): Delete declarations.
-	(class tui_file): New class.
-	* tui/tui-io.c (tui_initialize_io): Use tui_file.
-	* tui/tui-regs.c (tui_restore_gdbout): Use delete.
-	(tui_register_format): Use string_stream.
-	* tui/tui-stack.c (tui_make_status_line): Use string_file.
-	(tui_get_function_from_frame): Use string_file.
-	* typeprint.c (type_to_string): Use string_file.
-	* ui-file.c (struct ui_file, ui_file_magic, ui_file_new): Delete.
-	(null_stream): New global.
-	(ui_file_delete): Delete.
-	(ui_file::ui_file): New.
-	(null_file_isatty): Delete.
-	(ui_file::~ui_file): New.
-	(null_file_rewind): Delete.
-	(ui_file::printf): New.
-	(null_file_put): Delete.
-	(null_file_flush): Delete.
-	(ui_file::putstr): New.
-	(null_file_write): Delete.
-	(ui_file::putstrn): New.
-	(null_file_read): Delete.
-	(ui_file::putc): New.
-	(null_file_fputs): Delete.
-	(null_file_write_async_safe): Delete.
-	(ui_file::vprintf): New.
-	(null_file_delete): Delete.
-	(null_file::write): New.
-	(null_file_fseek): Delete.
-	(null_file::puts): New.
-	(ui_file_data): Delete.
-	(null_file::write_async_safe): New.
-	(gdb_flush, ui_file_isatty): Adjust.
-	(ui_file_put, ui_file_rewind): Delete.
-	(ui_file_write): Adjust.
-	(ui_file_write_for_put): Delete.
-	(ui_file_write_async_safe, ui_file_read): Adjust.
-	(ui_file_fseek): Delete.
-	(fputs_unfiltered): Adjust.
-	(set_ui_file_flush, set_ui_file_isatty, set_ui_file_rewind)
-	(set_ui_file_put, set_ui_file_write, set_ui_file_write_async_safe)
-	(set_ui_file_read, set_ui_file_fputs, set_ui_file_fseek)
-	(set_ui_file_data): Delete.
-	(string_file::~string_file, string_file::write)
-	(struct accumulated_ui_file, do_ui_file_xstrdup, ui_file_xstrdup)
-	(do_ui_file_as_string, ui_file_as_string): Delete.
-	(do_ui_file_obsavestring, ui_file_obsavestring): Delete.
-	(struct mem_file): Delete.
-	(mem_file_new): Delete.
-	(stdio_file::stdio_file): New.
-	(mem_file_delete): Delete.
-	(stdio_file::stdio_file): New.
-	(mem_fileopen): Delete.
-	(stdio_file::~stdio_file): New.
-	(mem_file_rewind): Delete.
-	(stdio_file::set_stream): New.
-	(mem_file_put): Delete.
-	(stdio_file::open): New.
-	(mem_file_write): Delete.
-	(stdio_file_magic, struct stdio_file): Delete.
-	(stdio_file_new, stdio_file_delete, stdio_file_flush): Delete.
-	(stdio_file::flush): New.
-	(stdio_file_read): Rename to ...
-	(stdio_file::read): ... this.  Adjust.
-	(stdio_file_write): Rename to ...
-	(stdio_file::write): ... this.  Adjust.
-	(stdio_file_write_async_safe): Rename to ...
-	(stdio_file::write_async_safe) ... this.  Adjust.
-	(stdio_file_fputs): Rename to ...
-	(stdio_file::puts) ... this.  Adjust.
-	(stdio_file_isatty): Delete.
-	(stdio_file_fseek): Delete.
-	(stdio_file::isatty): New.
-	(stderr_file_write): Rename to ...
-	(stderr_file::write) ... this.  Adjust.
-	(stderr_file_fputs): Rename to ...
-	(stderr_file::puts) ... this.  Adjust.
-	(stderr_fileopen, stdio_fileopen, gdb_fopen): Delete.
-	(stderr_file::stderr_file): New.
-	(tee_file_magic): Delete.
-	(struct tee_file): Delete.
-	(tee_file::tee_file): New.
-	(tee_file_new): Delete.
-	(tee_file::~tee_file): New.
-	(tee_file_delete): Delete.
-	(tee_file_flush): Rename to ...
-	(tee_file::flush): ... this.  Adjust.
-	(tee_file_write): Rename to ...
-	(tee_file::write): ... this.  Adjust.
-	(tee_file::write_async_safe): New.
-	(tee_file_fputs): Rename to ...
-	(tee_file::puts): ... this.  Adjust.
-	(tee_file_isatty): Rename to ...
-	(tee_file::isatty): ... this.  Adjust.
-	* ui-file.h (struct obstack, struct ui_file): Don't
-	forward-declare.
-	(ui_file_new, ui_file_flush_ftype, set_ui_file_flush)
-	(ui_file_write_ftype)
-	(set_ui_file_write, ui_file_fputs_ftype, set_ui_file_fputs)
-	(ui_file_write_async_safe_ftype, set_ui_file_write_async_safe)
-	(ui_file_read_ftype, set_ui_file_read, ui_file_isatty_ftype)
-	(set_ui_file_isatty, ui_file_rewind_ftype, set_ui_file_rewind)
-	(ui_file_put_method_ftype, ui_file_put_ftype, set_ui_file_put)
-	(ui_file_delete_ftype, set_ui_file_data, ui_file_fseek_ftype)
-	(set_ui_file_fseek): Delete.
-	(ui_file_data, ui_file_delete, ui_file_rewind)
-	(struct ui_file): New.
-	(ui_file_up): New.
-	(class null_file): New.
-	(null_stream): Declare.
-	(ui_file_write_for_put, ui_file_put): Delete.
-	(ui_file_xstrdup, ui_file_as_string, ui_file_obsavestring):
-	Delete.
-	(ui_file_fseek, mem_fileopen, stdio_fileopen, stderr_fileopen)
-	(gdb_fopen, tee_file_new): Delete.
-	(struct string_file): New.
-	(struct stdio_file): New.
-	(stdio_file_up): New.
-	(struct stderr_file): New.
-	(class tee_file): New.
-	* ui-out.c (ui_out::field_stream): Take a 'string_file &' instead
-	of a 'ui_file *'.  Adjust.
-	* ui-out.h (class ui_out) <field_stream>: Likewise.
-	* utils.c (do_ui_file_delete, make_cleanup_ui_file_delete)
-	(null_stream): Delete.
-	(error_stream): Take a 'string_file &' instead of a 'ui_file *'.
-	Adjust.
-	* utils.h (struct ui_file): Delete forward declaration..
-	(make_cleanup_ui_file_delete, null_stream): Delete declarations.
-	(error_stream): Take a 'string_file &' instead of a
-	'ui_file *'.
-	* varobj.c (varobj_value_get_print_value): Use string_file.
-	* xtensa-tdep.c (xtensa_verify_config): Use string_file.
-	* gdbarch.c: Regenerate.
-
-2017-02-02  Pedro Alves  <palves@redhat.com>
-
-	* disasm.c (gdb_disassembler::pretty_print_insn): Rename to...
-	(gdb_pretty_print_insn): ... this.  Now a free function.  Add back
-	a 'gdbarch' parameter.  Allocate a mem_fileopen stream here.
-	Adjust to call gdb_print_insn instead of
-	gdb_disassembler::print_insn.
-	(dump_insns, do_mixed_source_and_assembly_deprecated)
-	(do_mixed_source_and_assembly, do_assembly_only): Add back a
-	'gdbarch' parameter.  Remove gdb_disassembler parameter.
-	(gdb_disassembly): Don't allocate a gdb_disassembler here.
-	* disasm.h (gdb_disassembler::pretty_print_insn): Delete
-	declaration.
-	(gdb_pretty_print_insn): Re-add declaration.
-	* record-btrace.c (btrace_insn_history): Don't allocate a
-	gdb_disassembler here.  Adjust to call gdb_pretty_print_insn.
-
-2017-02-01  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* disasm.h (gdb_disassembly): Remove file_string parameter.
-	* disasm.c (gdb_disassembly): Likewise.
-	* cli/cli-cmds.c (print_disassembly): Adapt.
-	* mi/mi-cmd-disas.c (mi_cmd_disassemble): Likewise.
-	* stack.c (do_gdb_disassembly): Likewise.
-
-2017-02-01  Andreas Arnez  <arnez@linux.vnet.ibm.com>
-
-	* dwarf2loc.c (dwarf2_evaluate_loc_desc_full): For
-	DWARF_VALUE_LITERAL, no longer ignore the offset on big-endian
-	targets.  And if the implicit value is longer than needed, extract
-	the first bytes instead of the "least significant" ones.
-
-2017-02-01  Markus Metzger  <markus.t.metzger@intel.com>
-
-	* btrace.c (btrace_enable): Do not call btrace_add_pc for
-	BTRACE_FORMAT_PT or if can_access_registers_ptid returns false.
-	(btrace_fetch): Assert can_access_registers_ptid.
-	* record-btrace.c (require_btrace_thread, record_btrace_info): Call
-	validate_registers_access.
-
-2017-02-01  Markus Metzger  <markus.t.metzger@intel.com>
-
-	* gdbthread.h (can_access_registers_ptid): New.
-	* thread.c (can_access_registers_ptid): New.
-
-2017-02-01  Pedro Alves  <palves@redhat.com>
-
-	* i386-tdep.c (i386_fast_tracepoint_valid_at): Use gdb_insn_length.
-
-2017-01-31  Pedro Alves  <palves@redhat.com>
-
-	* mi/mi-interp.c (mi_breakpoint_created, mi_breakpoint_modified):
-	Fix typos.
-
-2017-01-31  Pedro Alves  <palves@redhat.com>
-
-	* stack.c (print_frame_args): Remove local mem_fileopen stream,
-	not used.
-
-2017-01-31  Pedro Alves  <palves@redhat.com>
-
-	* varobj.c (varobj_value_get_print_value): Remove xstrdup call.
-
-2017-01-31  Pedro Alves  <palves@redhat.com>
-
-	* common/scoped_restore.h
-	(scoped_restore_tmpl::scoped_restore_tmpl): Template on T2, and
-	change the value's parameter type to T2.
-	(make_scoped_restore): Likewise.
-
-2017-01-27  Walfred Tedeschi  <walfred.tedeschi@intel.com>
-	    Richard Henderson  <rth@redhat.com>
-
-	* amd64-linux-nat.c (PTRACE_ARCH_PRCTL): New define.
-	(amd64_linux_fetch_inferior_registers): Add case to fetch FS_BASE
-	GS_BASE for older kernels.
-	(amd64_linux_store_inferior_registers): Add case to store FS_BASE
-	GS_BASE for older kernels.
-	* amd64-linux-tdep.c (amd64_linux_gregset_reg_offset): Add FS_BASE
-	and GS_BASE to the offset table.
-	(amd64_linux_register_reggroup_p): Add FS_BASE and GS_BASE to the
-	system register group.
-	* amd64-nat.c (amd64_native_gregset_reg_offset): Implements case
-	for older kernels.
-	* amd64-tdep.c (amd64_init_abi): Add segment registers for the
-	amd64 ABI.
-	* amd64-tdep.h (amd64_regnum): Add AMD64_FSBASE_REGNUM and
-	AMD64_GSBASE_REGNUM.
-	(AMD64_NUM_REGS): Set to AMD64_GSBASE_REGNUM + 1.
-	* features/Makefile (amd64-linux.dat, amd64-avx-linux.dat)
-	(amd64-mpx-linux.dat, amd64-avx512-linux.dat, x32-linux.dat)
-	(x32-avx-linux.dat, x32-avx512-linux.dat): Add
-	i386/64bit-segments.xml in those rules.
-	* features/i386/64bit-segments.xml: New file.
-	* features/i386/amd64-avx-mpx-linux.xml: Add 64bit-segments.xml.
-	* features/i386/amd64-avx-linux.xml: Add 64bit-segments.xml.
-	* features/i386/amd64-avx512-linux.xml: Add 64bit-segments.xml.
-	* features/i386/amd64-mpx-linux.xml: Add 64bit-segments.xml.
-	* features/i386/x32-avx512-linux.xml: Add 64bit-segments.xml.
-	* features/i386/x32-avx-linux.xml: Add 64bit-segments.xml.
-	* features/i386/amd64-linux.xml: Add 64bit-segments.xml.
-	* features/i386/amd64-avx-linux.c: Regenerated.
-	* features/i386/amd64-avx-mpx-linux.c: Regenerated.
-	* features/i386/amd64-avx-mpx.c: Regenerated.
-	* features/i386/amd64-avx512-linux.c: Regenerated.
-	* features/i386/amd64-linux.c: Regenerated.
-	* features/i386/amd64-mpx-linux.c: Regenerated.
-	* features/i386/i386-avx-mpx-linux.c: Regenerated.
-	* features/i386/i386-avx-mpx.c: Regenerated.
-	* features/i386/x32-avx-linux.c: Regenerated.
-	* features/i386/x32-avx512-linux.c: Regenerated.
-	* regformats/i386/amd64-avx-linux.dat: Regenerated.
-	* regformats/i386/amd64-avx-mpx-linux.dat: Regenerated.
-	* regformats/i386/amd64-avx512-linux.dat: Regenerated.
-	* regformats/i386/amd64-linux.dat: Regenerated.
-	* regformats/i386/amd64-mpx-linux.dat: Regenerated.
-	* regformats/i386/x32-avx-linux.dat: Regenerated.
-	* regformats/i386/x32-avx512-linux.dat: Regenerated.
-	* regformats/i386/x32-linux.dat: Regenerated.
-
-2017-01-27  Walfred Tedeschi  <walfred.tedeschi@intel.com>
-
-	* amd64-linux-tdep.h (AMD64_LINUX_ORIG_RAX_REGNUM):
-	Set to AMD64_NUM_REGS.
-
-2017-01-27  Walfred Tedeschi  <walfred.tedeschi@intel.com>
-
-	* amd64-nat.c (amd64_native_gregset_reg_offset): Simplify logic
-	that checks validity of a register number.
-
-2017-01-27  Kees Cook  <keescook@google.com>
-
-	* gdb/arm-linux-nat.c (arm_linux_fetch_inferior_registers): Call
-	fetch_fpregs if target has fpa registers.
-	(arm_linux_store_inferior_registers): Call store_fpregs if target
-	has fpa registers.
-
-2017-01-26  Andreas Arnez  <arnez@linux.vnet.ibm.com>
-
-	* cris-tdep.c (cris_gdbarch_init): Remove check for
-	info.byte_order and force it to BFD_ENDIAN_LITTLE.
-
-2017-01-26  Antoine Tremblay  <antoine.tremblay@ericsson.com>
-
-	* corelow.c (get_core_register_section): Check for regset
-	existence before checking for REGSET_VARIABLE_SIZE.
-
-2017-01-26  Yao Qi  <yao.qi@linaro.org>
-	    Pedro Alves  <palves@redhat.com>
-
-	PR gdb/20939
-	* disasm.c (gdb_disassembler::dis_asm_memory_error): Don't
-	call memory_error, save memaddr instead.
-	(gdb_disassembler::print_insn): If gdbarch_print_insn returns
-	negative, cal memory_error.
-	* disasm.h (gdb_disassembler) <m_err_memaddr>: New field.
-
-2017-01-26  Yao Qi  <yao.qi@linaro.org>
-
-	* disasm-selftests.c (memory_error_test): New function.
-	(_initialize_disasm_selftests): Register memory_error_test.
-
-2017-01-26  Yao Qi  <yao.qi@linaro.org>
-
-	* Makefile.in (SFILES): Add disasm-selftests.c and
-	selftest-arch.c.
-	(COMMON_OBS): Add disasm-selftests.o and selftest-arch.o.
-	* disasm-selftests.c: New file.
-	* selftest-arch.c: New file.
-	* selftest-arch.h: New file.
-
-2017-01-26  Yao Qi  <yao.qi@linaro.org>
-
-	* mep-tdep.c (mep_gdb_print_insn): Set info->arch
-	to bfd_arch_mep.  Don't return 0 if section is not
-	found.  Call print_insn_mep.
-
-2017-01-26  Pedro Alves  <palves@redhat.com>
-	    Yao Qi  <yao.qi@linaro.org>
-
-	* arm-tdep.c: Include "disasm.h".
-	(gdb_print_insn_arm): Update code to get gdbarch.
-	* disasm.c (dis_asm_read_memory): Change it to
-	gdb_disassembler::dis_asm_read_memory.
-	(dis_asm_memory_error): Likewise.
-	(dis_asm_print_address): Likewise.
-	(gdb_pretty_print_insn): Change it to
-	gdb_disassembler::pretty_print_insn.
-	(dump_insns): Add one argument gdb_disassemlber.  All
-	callers updated.
-	(do_mixed_source_and_assembly_deprecated): Likewise.
-	(do_mixed_source_and_assembly): Likewise.
-	(do_assembly_only): Likewise.
-	(gdb_disassembler::gdb_disassembler): New.
-	(gdb_disassembler::print_insn): New.
-	* disasm.h (class gdb_disassembler): New.
-	(gdb_pretty_print_insn): Remove declaration.
-	(gdb_disassemble_info): Likewise.
-	* guile/scm-disasm.c (class gdbscm_disassembler): New.
-	(gdbscm_disasm_read_memory_worker): Update.
-	(gdbscm_disasm_read_memory): Update.
-	(gdbscm_disasm_memory_error): Remove.
-	(gdbscm_disasm_print_address): Remove.
-	(gdbscm_disassembler::gdbscm_disassembler): New.
-	(gdbscm_print_insn_from_port): Update.
-	* mips-tdep.c: Include disasm.h.
-	(gdb_print_insn_mips): Update code to get gdbarch.
-	* record-btrace.c (btrace_insn_history): Update.
-	* spu-tdep.c: Include disasm.h.
-	(struct spu_dis_asm_data): Remove.
-	(struct spu_dis_asm_info): New.
-	(spu_dis_asm_print_address): Use spu_dis_asm_info to get
-	SPU id.
-	(gdb_print_insn_spu): Cast disassemble_info to
-	spu_dis_asm_info.
-
-2017-01-26  Yao Qi  <yao.qi@linaro.org>
-
-	* disasm.c (do_ui_file_delete): Delete.
-	(gdb_insn_length): Move code creating stream to ...
-	* utils.c (null_stream): ... here.  New function.
-	* utils.h (null_stream): Declare.
-
-2017-01-23  Simon Marchi  <simon.marchi@polymtl.ca>
-
-	* python/py-inferior.c (find_thread_object): Return directly
-	from the loop.  Remove "found" variable.
-
-2017-01-21  Joel Brobecker  <brobecker@adacore.com>
-
-	GDB 7.12.1 released.
-
-2017-01-20  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* python/py-function.c (fnpy_call): Reorder declarations to have
-	the gdbpy_enter object declared first.
-	* python/py-xmethods.c (gdbpy_get_xmethod_arg_types): Likewise.
-
-2017-01-20  Simon Marchi  <simon.marchi@ericsson.com>
-
-	PR python/21068
-	* python/python-internal.h (PyMem_RawMalloc): Define for
-	Python < 3.4.
-	* python/py-gdb-readline.c (gdbpy_readline_wrapper): Use
-	PyMem_RawMalloc instead of PyMem_Malloc.
-
-2017-01-20  Mike Wrighton  <mike_wrighton@codesourcery.com>
-	    Luis Machado  <lgustavo@codesourcery.com>
-
-	* NEWS (New commands): Mention flash-erase.
-	(New MI commands): Mention target-flash-erase.
-	* mi/mi-cmds.c (mi_cmd_target_flash_erase): Add target-flash-erase MI
-	command.
-	* mi/mi-cmds.h (mi_cmd_target_flash_erase): New declaration.
-	* mi/mi-main.c (mi_cmd_target_flash_erase): New function.
-	* target.c (flash_erase_command): New function.
-	(initialize_targets): Add new flash-erase command.
-	* target.h (flash_erase_command): New declaration.
-
-2017-01-20  Joel Brobecker  <brobecker@adacore.com>
-
-	* nat/linux-ptrace.c: Only include <sys/procfs.h> if
-	HAVE_SYS_PROCFS_H is defined.
-
-2017-01-18  Alan Hayward  <alan.hayward@arm.com>
-
-	* remote.c (struct cached_reg): Change data into a pointer.
-	* (stop_reply_dtr): Free data pointers before deleting vector.
-	(process_stop_reply): Likewise.
-	(remote_parse_stop_reply): Allocate space for data
-
-2017-01-18  Alan Hayward  <alan.hayward@arm.com>
-
-	* amd64-tdep.c (amd64_pseudo_register_read_value): remove
-	MAX_REGISTER_SIZE.
-	(amd64_pseudo_register_read_value): Likewise.
-	* remote.c (fetch_register_using_p): Remove MAX_REGISTER_SIZE.
-	(store_register_using_P): Likewise.
-	* regcache.c (regcache_xfer_part): Likewise.
-
-2017-01-16  Ivo Raisr  <ivo.raisr@oracle.com>
-
-	Split real and pseudo registers.
-	* sparc-tdep.h (SPARC_CORE_REGISTERS): New macro.
-	(sparc32_pseudo_regnum): New enum.
-	* sparc64-tdep.h (sparc64_pseudo_regnum): New enum.
-	* sparc-tdep.c (SPARC32_FPU_REGISTERS): New macro.
-	(SPARC32_CP0_REGISTERS): New macro.
-	(sparc32_pseudo_register_name): New function.
-	(sparc32_register_name): Use sparc32_pseudo_register_name.
-	(sparc32_pseudo_register_type): New function.
-	(sparc32_register_type): Use sparc32_pseudo_register_type.
-	(sparc32_pseudo_register_read, sparc32_pseudo_register_write): Handle
-	pseudo register numbers.
-	* sparc64-tdep.c SPARC64_FPU_REGISTERS): New macro.
-	(SPARC64_CP0_REGISTERS): New macro.
-	(sparc64_pseudo_register_name): New function.
-	(sparc64_register_name): Use sparc64_pseudo_register_name.
-	(sparc64_pseudo_register_type): New function.
-	(sparc64_register_type): Use sparc64_pseudo_register_type.
-	(sparc64_pseudo_register_read, sparc64_pseudo_register_write): Handle
-	pseudo register numbers.
-	(sparc64_store_floating_fields, sparc64_extract_floating_fields,
-	sparc64_store_arguments): Handle pseudo register numbers.
-
-2017-01-13  Yao Qi  <yao.qi@linaro.org>
-
-	* remote.c (REMOTE_DEBUG_MAX_CHAR): New macro.
-	(putpkt_binary): Print only REMOTE_DEBUG_MAX_CHAR chars in debug
-	output.
-	(getpkt_or_notif_sane_1): Likewise.
-
-2017-01-13  Yao Qi  <yao.qi@linaro.org>
-
-	* Makefile.in (checker-headers): Use CXX and CXX_DIALET instead
-	of CC.  Pass "-x c++-header" instead of "-x c".
-
-2017-01-12  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* remote.c (remote_can_async_p): Update comment.
-
-2017-01-12  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* linux-nat.c (linux_nat_can_async_p): Update comment.
-
-2017-01-12  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* serial.c (serial_open): Forget about "pc" and "lpt" serial interface.
-
-2017-01-11  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* cli/cli-decode.c (lookup_cmd_1): Fix typo in comment.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-type.c (typy_legacy_template_argument): Update.
-	* cp-support.h (struct demangle_parse_info) (demangle_parse_info,
-	~demangle_parse_info): Declare new members.
-	(cp_demangled_name_to_comp): Return unique_ptr.
-	(cp_demangled_name_parse_free)
-	(make_cleanup_cp_demangled_name_parse_free)
-	(cp_new_demangle_parse_info): Remove.
-	* cp-support.c (do_demangled_name_parse_free_cleanup)
-	(make_cleanup_cp_demangled_name_parse_free): Remove.
-	(inspect_type, cp_canonicalize_string_full)
-	(cp_canonicalize_string): Update.
-	(mangled_name_to_comp): Change return type.
-	(cp_class_name_from_physname, method_name_from_physname)
-	(cp_func_name, cp_remove_params): Update.
-	* cp-name-parser.y (demangle_parse_info): New constructor, from
-	cp_new_demangle_parse_info.
-	(~demangle_parse_info): New destructor, from
-	cp_demangled_name_parse_free.
-	(cp_merge_demangle_parse_infos): Update.
-	(cp_demangled_name_to_comp): Change return type.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* top.c (prevent_dont_repeat): Change return type.
-	* python/python.c (execute_gdb_command): Use std::string.
-	Update.
-	* guile/guile.c (gdbscm_execute_gdb_command): Update.
-	* command.h (prevent_dont_repeat): Change return type.
-	* breakpoint.c (bpstat_do_actions_1): Update.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* value.h (scoped_value_mark::~scoped_value_mark): Call
-	free_to_mark.
-	(scoped_value_mark::free_to_mark): New method.
-	* dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Use
-	scoped_value_mark.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-value.c (valpy_dereference, valpy_referenced_value)
-	(valpy_reference_value, valpy_const_value, valpy_get_address)
-	(valpy_get_dynamic_type, valpy_lazy_string, valpy_do_cast)
-	(valpy_getitem, valpy_call, valpy_binop_throw, valpy_negative)
-	(valpy_absolute, valpy_richcompare_throw): Use scoped_value_mark.
-	* dwarf2loc.c (dwarf2_loc_desc_get_symbol_read_needs): Use
-	scoped_value_mark.
-	* dwarf2-frame.c (execute_stack_op): Use scoped_value_mark.
-	* value.h (scoped_value_mark): New class.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* dwarf2read.c (dwarf2_build_psymtabs): Use psymtab_discarder.
-	* psympriv.h (make_cleanup_discard_psymtabs): Don't declare.
-	* psymtab.c (discard_psymtabs_upto): Remove.
-	(make_cleanup_discard_psymtabs): Remove.
-	(struct psymtab_state): Remove.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* record-full.c (record_full_save_cleanups): Remove.
-	(record_full_save): Use gdb::unlinker.
-	* gcore.c (do_bfd_delete_cleanup): Remove.
-	(gcore_command): Use gdb::unlinker, unique_xmalloc_ptr.  Remove
-	cleanups.
-	* dwarf2read.c (unlink_if_set): Remove.
-	(write_psymtabs_to_index): Use gdb::unlinker.
-	* common/gdb_unlinker.h: New file.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* windows-tdep.c (windows_xfer_shared_library): Update.
-	* windows-nat.c (windows_make_so): Update.
-	* utils.h (make_cleanup_bfd_unref): Remove.
-	* utils.c (do_bfd_close_cleanup, make_cleanup_bfd_unref): Remove.
-	* symfile.h (symfile_bfd_open)
-	(find_separate_debug_file_in_section): Return gdb_bfd_ref_ptr.
-	* symfile.c (read_symbols, symbol_file_add)
-	(separate_debug_file_exists): Update.
-	(symfile_bfd_open): Return gdb_bfd_ref_ptr.
-	(generic_load, reread_symbols): Update.
-	* symfile-mem.c (symbol_file_add_from_memory): Update.
-	* spu-linux-nat.c (spu_bfd_open): Return gdb_bfd_ref_ptr.
-	(spu_symbol_file_add_from_memory): Update.
-	* solist.h (struct target_so_ops) <bfd_open>: Return
-	gdb_bfd_ref_ptr.
-	(solib_bfd_fopen, solib_bfd_open): Return gdb_bfd_ref_ptr.
-	* solib.c (solib_bfd_fopen, solib_bfd_open): Return
-	gdb_bfd_ref_ptr.
-	(solib_map_sections, reload_shared_libraries_1): Update.
-	* solib-svr4.c (enable_break): Update.
-	* solib-spu.c (spu_bfd_fopen): Return gdb_bfd_ref_ptr.
-	* solib-frv.c (enable_break2): Update.
-	* solib-dsbt.c (enable_break): Update.
-	* solib-darwin.c (gdb_bfd_mach_o_fat_extract): Return
-	gdb_bfd_ref_ptr.
-	(darwin_solib_get_all_image_info_addr_at_init): Update.
-	(darwin_bfd_open): Return gdb_bfd_ref_ptr.
-	* solib-aix.c (solib_aix_bfd_open): Return gdb_bfd_ref_ptr.
-	* record-full.c (record_full_save): Update.
-	* python/py-objfile.c (objfpy_add_separate_debug_file): Update.
-	* procfs.c (insert_dbx_link_bpt_in_file): Update.
-	* minidebug.c (find_separate_debug_file_in_section): Return
-	gdb_bfd_ref_ptr.
-	* machoread.c (macho_add_oso_symfile): Change abfd to
-	gdb_bfd_ref_ptr.
-	(macho_symfile_read_all_oso): Update.
-	(macho_check_dsym): Return gdb_bfd_ref_ptr.
-	(macho_symfile_read): Update.
-	* jit.c (bfd_open_from_target_memory): Return gdb_bfd_ref_ptr.
-	(jit_bfd_try_read_symtab): Update.
-	* gdb_bfd.h (gdb_bfd_open, gdb_bfd_fopen, gdb_bfd_openr)
-	(gdb_bfd_openw, gdb_bfd_openr_iovec)
-	(gdb_bfd_openr_next_archived_file, gdb_bfd_fdopenr): Return
-	gdb_bfd_ref_ptr.
-	(gdb_bfd_ref_policy): New struct.
-	(gdb_bfd_ref_ptr): New typedef.
-	* gdb_bfd.c (gdb_bfd_open, gdb_bfd_fopen, gdb_bfd_openr)
-	(gdb_bfd_openw, gdb_bfd_openr_iovec)
-	(gdb_bfd_openr_next_archived_file, gdb_bfd_fdopenr): Return
-	gdb_bfd_ref_ptr.
-	* gcore.h (create_gcore_bfd): Return gdb_bfd_ref_ptr.
-	* gcore.c (create_gcore_bfd): Return gdb_bfd_ref_ptr.
-	(gcore_command): Update.
-	* exec.c (exec_file_attach): Update.
-	* elfread.c (elf_symfile_read): Update.
-	* dwarf2read.c (dwarf2_get_dwz_file): Update.
-	(try_open_dwop_file, open_dwo_file): Return gdb_bfd_ref_ptr.
-	(open_and_init_dwo_file): Update.
-	(open_dwp_file): Return gdb_bfd_ref_ptr.
-	(open_and_init_dwp_file): Update.
-	* corelow.c (core_open): Update.
-	* compile/compile-object-load.c (compile_object_load): Update.
-	* common/gdb_ref_ptr.h (ref_ptr::operator->): New operator.
-	* coffread.c (coff_symfile_read): Update.
-	* cli/cli-dump.c (bfd_openr_or_error, bfd_openw_or_error): Return
-	gdb_bfd_ref_ptr.  Rename.
-	(dump_bfd_file, restore_command): Update.
-	* build-id.h (build_id_to_debug_bfd): Return gdb_bfd_ref_ptr.
-	* build-id.c (build_id_to_debug_bfd): Return gdb_bfd_ref_ptr.
-	(find_separate_debug_file_by_buildid): Update.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* common/gdb_ref_ptr.h: New file.
-	* python/py-ref.h (struct gdbpy_ref_policy): New.
-	(gdbpy_ref): Now a typedef.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* utils.h (make_cleanup_htab_delete): Don't declare.
-	* utils.c (do_htab_delete_cleanup, make_cleanup_htab_delete):
-	Remove.
-	* linespec.c (decode_compound_collector): Add constructor,
-	destructor.
-	(lookup_prefix_sym): Remove cleanup.
-	(symtab_collector): Add constructor, destructor.
-	(collect_symtabs_from_filename): Remove cleanup.
-	* disasm.c (do_mixed_source_and_assembly): Use htab_up.
-	* compile/compile-c-symbols.c (generate_c_for_variable_locations):
-	Use htab_up.
-	* gnu-v3-abi.c (gnuv3_print_vtable): Use htab_up.
-	* dwarf2read.c (dw2_expand_symtabs_matching)
-	(dw2_map_symbol_filenames, dwarf_decode_macros)
-	(write_psymtabs_to_index): Use htab_up.
-	* dwarf2loc.c (func_verify_no_selftailcall)
-	(call_site_find_chain_1, func_verify_no_selftailcall)
-	(chain_candidate, call_site_find_chain_1): Use std::unordered_set,
-	std::vector, gdb::unique_xmalloc_ptr.
-	(call_sitep): Remove typedef.
-	(dwarf2_locexpr_baton_eval): Remove unused variable.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/python-internal.h (make_cleanup_py_decref)
-	(make_cleanup_py_xdecref): Don't declare.
-	* python/py-utils.c (py_decref, make_cleanup_py_decref)
-	(py_xdecref, make_cleanup_py_xdecref): Remove.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-framefilter.c (py_mi_print_variables): Use gdbpy_ref.
-	(py_print_locals, enumerate_locals, py_print_args): Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-framefilter.c (enumerate_args): Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-utils.c (unicode_to_encoded_string)
-	(python_string_to_target_string)
-	(python_string_to_target_python_string)
-	(python_string_to_host_string, gdbpy_obj_to_string)
-	(get_addr_from_python): Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-unwind.c (pyuw_object_attribute_to_pointer): Use
-	gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/python.c (eval_python_command, gdbpy_decode_line)
-	(gdbpy_run_events, gdbpy_start_type_printers)
-	(gdbpy_apply_type_printers): Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-param.c (get_doc_string, compute_enum_values): Use
-	gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-inferior.c (find_thread_object, build_inferior_list):
-	Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-framefilter.c (py_print_frame): Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-finishbreakpoint.c (bpfinishpy_out_of_scope): Use
-	gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-cmd.c (cmdpy_completer_helper): Use gdbpy_ref.  Remove
-	extra incref.
-	(cmdpy_completer_handle_brkchars, cmdpy_completer, cmdpy_init):
-	Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-breakpoint.c (gdbpy_breakpoint_cond_says_stop): Use
-	gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-arch.c (archpy_disassemble): Use gdbpy_ref.  Don't
-	decref results of PyArg_ParseTupleAndKeywords.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/python.c (python_run_simple_file): Use
-	unique_xmalloc_ptr, gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-prettyprint.c (print_stack_unless_memory_error)
-	(print_string_repr, print_children): Use gdbpy_ref.
-	(dummy_python_frame): New class.
-	(dummy_python_frame::dummy_python_frame): Rename from
-	push_dummy_python_frame.
-	(py_restore_tstate): Remove.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-framefilter.c (py_print_frame): Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/python.c (ensure_python_env, restore_python_env):
-	Remove.
-	* python/python-internal.h (ensure_python_env): Don't declare.
-	* varobj.h (varobj_ensure_python_env): Don't declare.
-	* varobj.c (varobj_ensure_python_env): Remove.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* varobj.c (varobj_value_get_print_value): Use
-	gdbpy_enter_varobj.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-prettyprint.c (print_string_repr, print_children):
-	Update.
-	* python/py-lazy-string.c (gdbpy_extract_lazy_string): Change type
-	of "encoding".
-	* varobj.c (varobj_value_get_print_value): Update.
-	* python/python-internal.h (gdbpy_extract_lazy_string): Update.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* varobj.c (varobj_get_display_hint)
-	(dynamic_varobj_has_child_method, install_new_value_visualizer)
-	(varobj_set_visualizer, free_variable): Use
-	gdbpy_enter_varobj.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/python.c (python_command): Use gdbpy_enter, gdbpy_ref.
-	(do_finish_initialization): New function.  Use gdbpy_ref.
-	(gdbpy_finish_initialization): Use gdbpy_enter.  Call
-	do_finish_initialization.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-param.c (get_set_value, get_show_value): Use
-	gdbpy_enter, gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-function.c (fnpy_call): Use gdbpy_enter, gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-cmd.c (cmdpy_function): Use gdbpy_enter, gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-varobj.c (py_varobj_iter_dtor, py_varobj_iter_next):
-	Use gdbpy_enter_varobj.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* varobj.c (gdbpy_enter_varobj): New constructor.
-	* python/python-internal.h (gdbpy_enter_varobj): New class.
-	* python/py-varobj.c (py_varobj_get_iterator): Use
-	gdbpy_enter_varobj.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-xmethods.c (gdbpy_get_xmethod_result_type): Use
-	gdbpy_enter, gdbpy_ref, unique_xmalloc_ptr.
-	(gdbpy_invoke_xmethod): Use gdbpy_ref, gdbpy_enter.
-	(gdbpy_get_xmethod_arg_types): Use gdbpy_ref,
-	unique_xmalloc_ptr.
-	(gdbpy_get_xmethod_arg_types): Use gdbpy_ref, gdbpy_enter.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-xmethods.c (invoke_match_method): Use
-	gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-xmethods.c (gdbpy_get_matching_xmethod_workers): use
-	gdbpy_enter, gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/python.c (python_interactive_command): Use gdbpy_enter.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/python.c (gdbpy_before_prompt_hook): Use gdbpy_enter,
-	gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-prettyprint.c (gdbpy_apply_val_pretty_printer): Use
-	gdbpy_enter, gdbpy_ref, unique_xmalloc_ptr.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* utils.h (htab_deleter): New struct.
-	(htab_up): New typedef.
-	* python/py-framefilter.c (gdbpy_apply_frame_filter): Use
-	gdbpy_enter, gdbpy_ref, htab_up.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-unwind.c (pending_frame_invalidate): Remove.
-	(pyuw_sniffer): Use gdbpy_enter and gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-xmethods.c (gdbpy_free_xmethod_worker_data)
-	(gdbpy_clone_xmethod_worker_data): Use gdbpy_enter.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-type.c (save_objfile_types): Use gdbpy_enter.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/python.c (gdbpy_eval_from_control_command)
-	(gdbpy_source_script, gdbpy_run_events)
-	(gdbpy_source_objfile_script, gdbpy_execute_objfile_script)
-	(gdbpy_free_type_printers, gdbpy_finish_initialization): Use
-	gdbpy_enter.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-progspace.c (py_free_pspace): Use gdbpy_enter.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-objfile.c (py_free_objfile): Use gdbpy_enter.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-inferior.c (python_on_normal_stop, python_on_resume)
-	(python_on_inferior_call_pre, python_on_inferior_call_post)
-	(python_on_memory_change, python_on_register_change)
-	(python_inferior_exit, python_new_objfile, add_thread_object)
-	(delete_thread_object, py_free_inferior): Use gdbpy_enter.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-finishbreakpoint.c (bpfinishpy_handle_stop)
-	(bpfinishpy_handle_exit): Use gdbpy_enter.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-cmd.c (cmdpy_destroyer)
-	(cmdpy_completer_handle_brkchars, cmdpy_completer): Use
-	gdbpy_enter.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-breakpoint.c (gdbpy_breakpoint_cond_says_stop): Use
-	gdbpy_enter.
-	(gdbpy_breakpoint_has_cond): Likewise.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/python.c (gdbpy_enter): New constructor.
-	(~gdbpy_enter): New destructor.
-	(restore_python_env, ensure_python_env): Rewrite.
-	* python/python-internal.h (gdbpy_enter): New class.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-symbol.c (gdbpy_lookup_symbol): Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-value.c (value_has_field, get_field_flag)
-	(get_field_type, valpy_getitem, convert_value_from_python): Use
-	gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/python.c (gdbpy_progspaces, gdbpy_objfiles): Use
-	gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-prettyprint.c (search_pp_list)
-	(find_pretty_printer_from_objfiles)
-	(find_pretty_printer_from_progspace)
-	(find_pretty_printer_from_gdb, find_pretty_printer)
-	(gdbpy_get_display_hint, gdbpy_get_varobj_pretty_printer): Use
-	gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-param.c (call_doc_function): Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-linetable.c (build_line_table_tuple_from_pcs)
-	(ltpy_get_all_source_lines): Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-framefilter.c (extract_sym, extract_value)
-	(get_py_iter_from_func, bootstrap_python_frame_filters): Use
-	gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-breakpoint.c (gdbpy_breakpoints): Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-inferior.c (gdbpy_inferiors): Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-function.c (convert_values_to_python, fnpy_init): Use
-	gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-cmd.c (gdbpy_string_to_argv): Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-type.c (convert_field, make_fielditem, typy_fields)
-	(typy_range): Use gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-threadevent.c (create_thread_event_object): Use
-	gdbpy_ref.
-	* python/py-stopevent.c (create_stop_event_object): Simplify.
-	(emit_stop_event): Use gdbpy_ref.
-	* python/py-signalevent.c (create_signal_event_object): Use
-	gdbpy_ref.
-	* python/py-newobjfileevent.c (create_new_objfile_event_object)
-	(emit_new_objfile_event, create_clear_objfiles_event_object)
-	(emit_clear_objfiles_event): Use gdbpy_ref.
-	* python/py-infevents.c (create_inferior_call_event_object)
-	(create_register_changed_event_object)
-	(create_memory_changed_event_object, emit_inferior_call_event)
-	(emit_memory_changed_event, emit_register_changed_event): Use
-	gdbpy_ref.
-	* python/py-exitedevent.c (create_exited_event_object)
-	(emit_exited_event): Use gdbpy_ref.
-	* python/py-event.h (evpy_emit_event): Remove
-	CPYCHECKER_STEALS_REFERENCE_TO_ARG annotation.
-	* python/py-event.c (evpy_emit_event): Use gdbpy_ref.
-	* python/py-continueevent.c (emit_continue_event): Use
-	gdbpy_ref.
-	* python/py-breakpoint.c (gdbpy_breakpoint_created)
-	(gdbpy_breakpoint_deleted, gdbpy_breakpoint_modified): Use
-	gdbpy_ref.
-	* python/py-bpevent.c (create_breakpoint_event_object): Use
-	gdbpy_ref.
-
-2017-01-10  Tom Tromey  <tom@tromey.com>
-
-	* python/py-ref.h: New file.
-
-2017-01-10  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* cli-out.c (cli_ui_out::do_redirect): Change return type to
-	void.
-	* cli-out.h (cli_ui_out::do_redirect): Likewise.
-	* mi/mi-out.c (mi_ui_out::do_redirect): Likewise.
-	* mi/mi-out.h (mi_ui_out::do_redirect): Likewise.
-	* ui-out.c (ui_out::redirect): Likewise.
-	* ui-out.h (ui_out::redirect, ui_out::do_redirect): Likewise.
-	* cli/cli-logging.c (set_logging_redirect): Update call site of
-	ui_out::redirect.
-	(handle_redirections): Likewise.
-	* scm-ports.c (ioscm_with_output_to_port_worker): Likewise.
-	* top.c (execute_command_to_string): Likewise.
-	* utils.c (do_ui_out_redirect_pop): Likewise.
-
-2017-01-10  Simon Marchi  <simon.marchi@ericsson.com>
-
-	* stack.c (_initialize_stack): Update "frame" command help message.
-
-2017-01-08  Iain Buclaw  <ibuclaw@gdcproject.org>
-
-	* d-exp.y (CastExpression): Emit UNOP_CAST_TYPE.
-
-2017-01-06  Yao Qi  <yao.qi@linaro.org>
-
-	* x86-linux-nat.h: Include gdb_proc_service.h.
-
-2017-01-06  Yao Qi  <yao.qi@linaro.org>
-
-	* ser-base.h: Include serial.h.
-
-2017-01-06  Yao Qi  <yao.qi@linaro.org>
-
-	* ppc-linux-tdep.h: Include ppc-tdep.h.
-
-2017-01-06  Yao Qi  <yao.qi@linaro.org>
-
-	* nat/amd64-linux-siginfo.h: Include signal.h.
-
-2017-01-06  Yao Qi  <yao.qi@linaro.org>
-
-	* nat/aarch64-linux-hw-point.h: Include break-common.h.
-
-2017-01-06  Yao Qi  <yao.qi@linaro.org>
-
-	* mi/mi-parse.h: Include mi-cmds.h.
-
-2017-01-06  Yao Qi  <yao.qi@linaro.org>
-
-	* inf-loop.c: Don't include "target.h".
-	* inf-loop.h: Include it here.
-
-2017-01-06  Yao Qi  <yao.qi@linaro.org>
-
-	* dfp.h: Include "dboulest.h" and "expression.h".
-
-2017-01-06  Yao Qi  <yao.qi@linaro.org>
-
-	* ax-gdb.h: Include "ax.h".
-
-2017-01-06  Yao Qi  <yao.qi@linaro.org>
-
-	* Makefile.in (HFILES_NO_SRCDIR): Replace gdb_ptrace.h
-	with nat/gdb_ptrace.h.
-
-2017-01-05  Yao Qi  <yao.qi@linaro.org>
-
-	* mips-fbsd-tdep.c (mips_fbsd_sigframe_init): Move && to
-	new line.
-	(mips64_fbsd_sigframe_init): Likewise.
-
-2017-01-04  John Baldwin  <jhb@FreeBSD.org>
-
-	* mips-fbsd-tdep.c (_initialize_mips_fbsd_tdep): Use
-	GDB_OSABI_FREEBSD instead of GDB_OSABI_FREEBSD_ELF.
-
-2017-01-04  John Baldwin  <jhb@FreeBSD.org>
-
-	* Makefile.in (ALLDEPFILES): Add mips-fbsd-nat.c.
-	* NEWS: Mention new FreeBSD/mips native configuration.
-	* config/mips/fbsd.mh: New file.
-	* configure.host: Add mips*-*-freebsd*.
-	* mips-fbsd-nat.c: New file.
-
-2017-01-04  John Baldwin  <jhb@FreeBSD.org>
-
-	* Makefile.in (ALL_TARGET_OBS): Add mips-fbsd-tdep.o.
-	(ALLDEPFILES): Add mips-fbsd-tdep.c.
-	* NEWS: Mention new FreeBSD/mips target.
-	* configure.tgt: Add mips*-*-freebsd*.
-	* mips-fbsd-tdep.c: New file.
-	* mips-fbsd-tdep.h: New file.
-
-2017-01-04  Yao Qi  <yao.qi@linaro.org>
-
-	* dwarf2loc.c (write_pieced_value): Don't use VALUE_FRAME_ID (to),
-	use c->frame_id when the piece location is DWARF_VALUE_REGISTER.
-
-2017-01-01  Joel Brobecker  <brobecker@adacore.com>
-
-	Update copyright year range in all GDB files.
+	* top.c (print_gdb_version): Update Copyright year in version
+	message.
 
-2017-01-01  Joel Brobecker  <brobecker@adacore.com>
+2018-01-01  Joel Brobecker  <brobecker@adacore.com>
 
-	* config/djgpp/fnchange.lst: Add entry for gdb/ChangeLog-2016.
+	* config/djgpp/fnchange.lst: Add entry for gdb/ChangeLog-2017.
 
-For older changes see ChangeLog-2016.
+For older changes see ChangeLog-2017.
 
 Local Variables:
 mode: change-log
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ChangeLog-2017 ./gdb/ChangeLog-2017
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ChangeLog-2017	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/ChangeLog-2017	2018-01-09 02:04:56.000000000 +0000
@@ -0,0 +1,18463 @@
+2017-12-31  Ruslan Kabatsayev  <b7.10110111@gmail.com>
+
+	* psymtab.c (recursively_search_psymtabs): Use pointer arithmetic
+	instead of dereferencing std::vector past the end.
+
+2017-12-30  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* common/diagnostics.h
+	(DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES): Only
+	define if the compiler knows about -Wenum-compare-switch.
+
+2017-12-30  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* dwarf2read.c (dwarf_decode_macro_bytes): Ignore
+	-Wenum-compare-switch warning.
+	(dwarf_decode_macros): Likewise.
+
+2017-12-30  Tom Tromey  <tom@tromey.com>
+	    Simon Marchi  <simon.marchi@ericsson.com>
+
+	* stap-probe.h (struct stap_parse_info): Add constructor,
+	destructor.
+	* stap-probe.c (stap_parse_argument): Update.
+	* rust-exp.y (rust_lex_tests): Update.
+	* parser-defs.h (struct parser_state): Add constructor,
+	destructor, release method.
+	<expout>: Change type to expression_up.
+	(null_post_parser): Change type.
+	(initialize_expout, reallocate_expout): Remove.
+	* parse.c (parser_state::parser_state): Rename from
+	initialize_expout.
+	(parser_state::release): Rename from reallocate_expout.
+	(write_exp_elt, parse_exp_in_context_1, increase_expout_size):
+	Update.
+	(null_post_parser): Change type of "exp".
+	* dtrace-probe.c (dtrace_probe::build_arg_exprs): Update.
+	* ada-lang.c (resolve, resolve_subexp)
+	(replace_operator_with_call): Change type of "expp".
+	* language.h (struct language_defn) <la_post_parser>: Change type
+	of "expp".
+
+2017-12-30  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* dwarf2read.c (struct mapped_debug_names): Make final.
+	(struct mapped_index): Make final.
+
+2017-12-29  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* common/diagnostics.h
+	(DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES): New macro.
+	* amd64-linux-tdep.c (amd64_canonicalize_syscall): Use it.
+
+2017-12-29  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-thread-db.c (thread_db_detach): Remove call to
+	delete_thread_db_info.
+
+2017-12-28  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* target.h (enum target_object) <TARGET_OBJECT_HPUX_UREGS,
+	TARGET_OBJECT_HPUX_SOLIB_GOT>: Remove.
+
+2017-12-27  Franck Jullien  <franck.jullien@gmail.com>
+	    Stafford Horne  <shorne@gmail.com>
+
+	* target-descriptions.c (tdesc_register_in_reggroup_p): Support
+	arbitrary strings.
+	(tdesc_use_registers): Add logic to register new reggroups.
+	(tdesc_reg::group): Update comment to indicate we allow
+	arbitrary strings.
+	* NEWS (Changes since GDB 8.0): Announce that GDB supports
+	arbitrary reggroups.
+
+2017-12-27  Stafford Horne  <shorne@gmail.com>
+
+	* reggroups.c (reggroup_gdbarch_new): New function.
+	(reggroup_find): New function.
+	* reggroups.h (reggroup_gdbarch_new): New function.
+	(reggroup_find): New function.
+
+2017-12-27  Stafford Horne  <shorne@gmail.com>
+
+	* reggroups.c (reggroups_init): Change to depend only on
+	obstack rather than gdbarch.
+	(reggroup_add): Remove logic for forcing premature init.
+	(_initialize_reggroup): Set `reggroups_data` with
+	gdbarch_data_register_pre_init() rather than
+	gdbarch_data_register_post_init().
+
+2017-12-27  Stafford Horne  <shorne@gmail.com>
+
+	* infcmd.c (_initialize_infcmd): Add help for info reg $reggroup
+	and info all-registers $reggroup feature.
+
+2017-12-23  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* target-descriptions.c (print_c_tdesc)
+	<printf_field_type_assignment>: Add ATTRIBUTE_PRINTF.
+
+2017-12-21  Simon Marchi  <simon.marchi@ericsson.com>
+	    Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* target-descriptions.c (print_c_tdesc) <visit>: Don't output
+	field_type declaration, use printf_field_type_assignment
+	instead.
+	<printf_field_type_assignment>: New method.
+	* features/aarch64-core.c, features/aarch64-fpu.c
+	features/arc-arcompact.c, features/arc-v2.c,
+	features/arm/arm-with-iwmmxt.c, features/i386/32bit-core.c,
+	features/i386/32bit-mpx.c, features/i386/32bit-sse.c,
+	features/i386/64bit-avx512.c, features/i386/64bit-core.c,
+	features/i386/64bit-mpx.c, features/i386/64bit-sse.c,
+	features/i386/x32-core.c, features/or1k.c,
+	features/rs6000/powerpc-7400.c,
+	features/rs6000/powerpc-altivec32.c,
+	features/rs6000/powerpc-altivec32l.c,
+	features/rs6000/powerpc-altivec64.c,
+	features/rs6000/powerpc-altivec64l.c,
+	features/rs6000/powerpc-cell32l.c,
+	features/rs6000/powerpc-cell64l.c,
+	features/rs6000/powerpc-isa205-altivec32l.c,
+	features/rs6000/powerpc-isa205-altivec64l.c,
+	features/rs6000/powerpc-isa205-vsx32l.c,
+	features/rs6000/powerpc-isa205-vsx64l.c,
+	features/rs6000/powerpc-vsx32.c,
+	features/rs6000/powerpc-vsx32l.c,
+	features/rs6000/powerpc-vsx64.c,
+	features/rs6000/powerpc-vsx64l.c, features/s390-gs-linux64.c,
+	features/s390-tevx-linux64.c, features/s390-vx-linux64.c,
+	features/s390x-gs-linux64.c, features/s390x-tevx-linux64.c,
+	features/s390x-vx-linux64.c: Re-generate.
+
+2017-12-20  Uros Bizjak  <ubizjak@gmail.com>
+
+	* rs6000-tdep.c (ppc_deal_with_atomic_sequence): Remove
+	write-only assignment to "insn" variable.
+
+2017-12-20  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* spu-tdep.c (spu_gdbarch_init): Set set_gdbarch_significant_addr_bit
+	to 64 bits.
+	(ppc_linux_init_abi): Likewise, if Cell/B.E. is supported.
+
+2017-12-18  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.c (ada_to_fixed_type_1): Rethrow errors with
+	a more detailed exception message when getting an exception
+	while trying to read the value of an XVZ variable.
+	* ada-valprint.c (ada_val_print): Only catch RETURN_MASK_ERROR
+	exceptions.  Print an error message when an exception is caught.
+
+2017-12-18  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.c (assign_component): Strip any TYPE_CODE_TYPEDEF
+	layer from lhs' type.
+	(assign_aggregate): Likewise.
+
+2017-12-18  Xavier Roirand  <roirand@adacore.com>
+
+	* ada-lang.c (ada_convert_actual): Change the way actual value
+	are passed to the inferior when the inferior expects a pointer type.
+
+2017-12-17  Stafford Horne  <shorne@gmail.com>
+
+	* gdb/or1k-tdep.c (show_or1k_debug): Fix function parameter alignment.
+	(or1k_analyse_inst): Likewise.
+	(or1k_single_step_through_delay): Likewise.
+	(or1k_frame_cache): Fix parameter alignment and use paddress()
+	instead of %x.
+
+2017-12-17  Stafford Horne  <shorne@gmail.com>
+
+	* NEWS (Changes since GDB 8.0): Mention new or1k target and new
+	commands to set/show or1k debug.
+
+2017-12-15  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* typeprint.c (whatis_exp): Fix ARI warning and reindent "if"
+	condition.
+
+2017-12-15  Sergio Durigan Junior  <sergiodj@redhat.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	PR cli/16224
+	* NEWS (Changes since GDB 8.0): Mention new '/o' flag.
+	* c-typeprint.c (OFFSET_SPC_LEN): New define.
+	(c_type_print_varspec_prefix): New argument 'struct
+	print_offset_data *'.
+	(c_type_print_base_1): New function and prototype.
+	(c_print_type_1): New function, with code from 'c_print_type'.
+	(c_print_type): Use 'c_print_type_1'.
+	(c_type_print_varspec_prefix): New argument 'struct
+	print_offset_data *'.  Use it.  Call 'c_type_print_base_1'
+	instead of 'c_print_type_base'.
+	(print_spaces_filtered_with_print_options): New function.
+	(output_access_specifier): Take new argument FLAGS.  Modify
+	function to call 'print_spaces_filtered_with_print_options'.
+	(c_print_type_vtable_offset_marker): New function.
+	(c_print_type_union_field_offset): New function.
+	(c_print_type_struct_field_offset): New function.
+	(c_print_type_no_offsets): New function.
+	(c_type_print_base_struct_union): New argument 'struct
+	print_offset_data *'.  Print offsets and sizes for
+	struct/union/class fields.
+	* typeprint.c (const struct type_print_options
+	type_print_raw_options): Initialize 'print_offsets'.
+	(static struct type_print_options default_ptype_flags):
+	Likewise.
+	(struct print_offset_data print_offset_default_data): New
+	variable.
+	(whatis_exp): Handle '/o' option.
+	(_initialize_typeprint): Add '/o' flag to ptype's help.
+	* typeprint.h (struct print_offset_data): New struct.
+	(struct type_print_options) <print_offsets>: New field.
+
+2017-12-15  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* c-typeprint.c (need_access_label_p): New function.
+	(c_type_print_base_struct_union): New function.
+	(c_type_print_base): Move code to handle
+	TYPE_CODE_{STRUCT,UNION} to the functions mentioned above.
+
+2017-12-15  Richard Henderson  <rth@redhat.com>
+	    Uros Bizjak  <ubizjak@gmail.com>
+
+	PR gdb/19061
+	* alpha-tdep.c (alpha_software_single_step): Call
+	alpha_deal_with_atomic_sequence here.
+	(set_gdbarch_software_single_step): Set to
+	alpha_software_single_step.
+	* nat/linux-ptrace.h [__alpha__]: Define GDB_ARCH_IS_TRAP_BRKPT
+	and GDB_ARCH_IS_TRAP_HWBKPT.
+
+2017-12-15  Yao Qi  <yao.qi@linaro.org>
+
+	* unittests/memory-map-selftests.c: Wrap test with HAVE_LIBEXPAT.
+
+2017-12-15  Xavier Roirand  <roirand@adacore.com>
+
+	* ada-lang.c (ada_value_primitive_field): Handle field search
+	in case of homonyms.
+	(find_struct_field): Ditto.
+	(ada_search_struct_field): Ditto.
+	(ada_value_struct_elt): Ditto.
+	(ada_lookup_struct_elt_type): Ditto.
+
+2017-12-14  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* python/py-breakpoint.c (bppy_init): Use 'O' format specifier
+	for "qualified" and use PyObject_IsTrue.
+
+2017-12-14  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* dwarf2read.c (dw2_debug_names_iterator::next): Support
+	DW_IDX_type_unit.
+	(debug_names::dwarf5_offset_size, unit_kind): New.
+	(debug_names::insert): Add parameter kind.
+	(debug_names::build): Support DW_IDX_type_unit.
+	(debug_names::recursively_write_psymbols): Update
+	(debug_names::write_psymbols caller.
+	(debug_names::write_one_signatured_type_data)
+	(debug_names::write_one_signatured_type): New.
+	(debug_names::index_key, debug_names::symbol_value)
+	(debug_names::write_psymbols): Add kind.
+	(debug_names::write_one_signatured_type): New.
+	(write_debug_names): Move dwarf5_offset_size to debug_names.
+	Use debug_names::write_one_signatured_type for type units.
+
+2017-12-14  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.c (ada_value_equal): Add handling of typedef types
+	when comparing array objects.
+
+2017-12-14  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-tasks.c (read_atcb): Properly set task_info->ptid
+	when !target_has_execution as well.
+	(task_command): Remove error when !target_has_execution.
+
+2017-12-13  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* location.h (string_to_event_location): Add match_type
+	parameter.
+	* location.c (string_to_event_location): Likewise.
+	* python/py-breakpoint.c (bppy_init): Handle qualified
+	parameter.
+
+2017-12-13  Pedro Alves  <palves@redhat.com>
+
+	* completer.c (completion_tracker::maybe_add_completion): New
+	'text' and 'word' parameters.  Use make_completion_match_str.
+	(completion_tracker::add_completion): New 'text' and 'word'
+	parameters.  Pass down.
+	(completion_tracker::recompute_lowest_common_denominator): Change
+	parameter type to gdb::unique_xmalloc_ptr rval ref.  Adjust.
+	* completer.h (completion_tracker::add_completion): New 'text' and
+	'word' parameters.
+	(completion_tracker::recompute_lowest_common_denominator): Change
+	parameter type to gdb::unique_xmalloc_ptr rval ref.
+	(completion_tracker::recompute_lowest_common_denominator): Change
+	parameter type to gdb::unique_xmalloc_ptr rval ref.
+	* symtab.c (completion_list_add_name): Pass down 'text' and 'word'
+	as well.
+
+2017-12-13  Pedro Alves  <palves@redhat.com>
+
+	* cli/cli-decode.c (complete_on_cmdlist, complete_on_enum): Use
+	make_completion_match_str.
+	* completer.c: Use gdb::unique_xmalloc_ptr and
+	make_completion_match_str.
+	(make_completion_match_str_1): New.
+	(make_completion_match_str(const char *, const char *,
+	const char *)): New.
+	(make_completion_match_str(gdb::unique_xmalloc_ptr<char> &&,
+	const char *, const char *)): New.
+	* completer.h (make_completion_match_str(const char *,
+	const char *, const char *)): New.
+	(make_completion_match_str(gdb::unique_xmalloc_ptr<char> &&,
+	const char *, const char *)): New.
+	* interps.c (interpreter_completer): Use make_completion_match_str.
+	* symtab.c (completion_list_add_name, add_filename_to_list): Use
+	make_completion_match_str.
+
+2017-12-13  Stafford Horne  <shorne@gmail.com>
+
+	* or1k-tdep.c (or1k_analyse_inst): Use _() wrapper for message
+	strings.
+	(or1k_unwind_pc): Use paddress() instead of %p.
+	(or1k_unwind_sp): Likewise.
+	(or1k_frame_cache): Use host_address_to_string()/paddress()
+	instead of %p and use _() wrapper for message strings.
+
+2017-12-13  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* contrib/ari/gdb_ari.sh: Fix typo in help.
+
+2017-12-13  Joel Brobecker  <brobecker@adacore.com>
+
+	* event-top.c (handle_line_of_input): Set server_command.
+
+2017-12-12  Stafford Horne  <shorne@gmail.com>
+	    Stefan Wallentowitz  <stefan@wallentowitz.de>
+	    Stefan Kristiansson  <stefan.kristiansson@saunalahti.fi>
+	    Franck Jullien  <franck.jullien@gmail.com>
+	    Jeremy Bennett  <jeremy.bennett@embecosm.com>
+
+	* configure.tgt: Add targets for or1k and or1knd.
+	* or1k-tdep.c: New file.
+	* or1k-tdep.h: New file.
+	* features/Makefile: Add or1k.xml to build.
+	* features/or1k.xml: New file.
+	* features/or1k-core.xml: New file.
+	* features/or1k.c: Generated.
+
+2017-12-12  Alan Modra  <amodra@gmail.com>
+
+	PR tdep/22576
+	* ppc64-tdep.c (ppc64_plt_entry_point): Rewrite to take TOC-relative
+	PLT offset, and retrieve r2 from stack when executing in reverse.
+	(ppc64_standard_linkage1_target): Drop pc param.  Calculate offset
+	rather than PLT address.
+	(ppc64_standard_linkage2_target): Likewise.
+	(ppc64_standard_linkage3_target): Likewise.
+	(ppc64_standard_linkage4_target): Likewise.
+	(ppc64_skip_trampoline_code_1): Adjust to suit.
+
+2017-12-11  Simon Marchi  <simon.marchi@ericsson.com>
+
+	PR gdb/22556
+	* remote.c (remote_thread_name): Return NULL if name is empty.
+	(remote_threads_extra_info): Return NULL if extra info is empty.
+
+2017-12-11  Pedro Alves  <palves@redhat.com>
+
+	* defs.h (elf_sym_fns_lazy_psyms, elf_sym_fns_gdb_index)
+	(elf_sym_fns_debug_names): Move to elfread.c.
+	* dwarf2read.c (dwarf2_initialize_objfile): Return a boolean
+	instead of a sym_fns and add 'index_kind' output parameter.  Fill
+	the latter in with the index variant kind if using an index.
+	(enum dw_index_kind): Moved to symfile.h.
+	* elfread.c (elf_sym_fns_gdb_index, elf_sym_fns_debug_names)
+	(elf_sym_fns_lazy_psyms): Move from defs.h.
+	(elf_symfile_read): Adjust to new dwarf2_initialize_objfile
+	interface.
+	* symfile.h (enum class dw_index_kind): New, moved from
+	dwarf2read.c.
+	(dwarf2_initialize_objfile): Change prototype.
+
+2017-12-11  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* target-float.c (mpfr_float_ops::from_target): Use mpfr_set_ui
+	instead of mpfr_set_si to convert mantissa bits.
+
+2017-12-11  Xavier Roirand <roirand@adacore.com>
+	    Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.c (ada_tag_value_at_base_address): Change the way
+	tagged type base address is computed.
+	(enum ada_primitive_types) <ada_primitive_type_storage_offset>:
+	New enumerate.
+	(ada_language_arch_info): Set the ada_primitive_type_storage_offset
+	element of lai->primitive_type_vector.
+
+2017-12-08  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (mock_mapped_index): Reimplement as an extension of
+	mapped_index_base.
+	(check_match): Adjust to use mock_index directly.
+	(check_find_bounds_finds)
+	(test_mapped_index_find_name_component_bounds): Adjust to work
+	with a mapped_index_base.
+
+2017-12-08  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (struct mapped_index_base): New, partially factored
+	out from ...
+	(struct mapped_index): ... this.  Inherit mapped_index_base.
+	(mapped_index::symbol_name_slot_invalid):
+	(mapped_index::symbol_name_at): Add override marker.
+	(mapped_index::symbol_name_count): New.
+	(struct mapped_debug_names): Inherit mapped_index_base.
+	(mapped_debug_names::symbol_name_at): New.
+	(mapped_debug_names::symbol_name_count): New.
+	(mapped_index::find_name_components_bounds): Rename to ...
+	(mapped_index_base::find_name_components_bounds): ... this.
+	(mapped_index::build_name_components): Rename to ...
+	(mapped_index_base::build_name_components): ... this.  Adjust to
+	use mapped_index_base::symbol_name_count and
+	mapped_index_base::symbol_name_slot_invalid.
+	(dw2_expand_symtabs_matching_symbol): Take a mapped_index_base
+	instead of a mapped_index.  Use
+	dw2_expand_symtabs_matching_symbol.
+
+2017-12-08  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (mapped_index::symbol_table_slot): New.
+	(mapped_index::address_table): Now a gdb::array_view of const
+	gdb_byte.
+	(mapped_index::symbol_table): Now a gdb::array_view of
+	symbol_table_slot.
+	(mapped_index::address_table_size)
+	(mapped_index::symbol_table_slots): Delete.
+	(create_addrmap_from_index): Adjust.
+	(find_slot_in_mapped_hash): Adjust.
+	(read_index_from_section): Adjust.
+	(dwarf2_read_index): Adjust.
+
+2017-12-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* defs.h (elf_sym_fns_debug_names): New declaration.
+	* dwarf2read.c: Include "hash_enum.h".
+	(mapped_debug_names): New.
+	(struct dwarf2_per_objfile): Add debug_names, debug_aranges and
+	debug_names_table.
+	(dwarf2_elf_names): Add ".debug_names" and ".debug_aranges".
+	(struct dwz_file): Add debug_names.
+	(dwarf2_per_objfile::locate_sections): Handle debug_names and
+	debug_aranges.
+	(locate_dwz_sections): Handle debug_names.
+	(create_signatured_type_table_from_debug_names)
+	(create_addrmap_from_aranges): New.
+	(dwarf2_read_index): Update function comment.
+	(dwarf5_augmentation): Moved up.
+	(read_debug_names_from_section, create_cus_from_debug_names_list)
+	(create_cus_from_debug_names, dwarf2_read_debug_names): New.
+	(dwarf5_djb_hash): Moved up.
+	(dw2_debug_names_iterator): New.
+	(read_indirect_string_at_offset): New declaration.
+	(mapped_debug_names::namei_to_name)
+	(dw2_debug_names_iterator::find_vec_in_debug_names)
+	(dw2_debug_names_iterator::next, dw2_debug_names_lookup_symbol)
+	(dw2_debug_names_dump, dw2_debug_names_expand_symtabs_for_function)
+	(dw2_debug_names_expand_symtabs_matching, dwarf2_debug_names_functions):
+	New.
+	(dwarf2_initialize_objfile): Return also elf_sym_fns_debug_names.
+	(debug_names::djb_hash): Rename it to dwarf5_djb_hash.
+	(debug_names::build): Update djb_hash caller.
+	(write_debug_names): Move out and rename augmentation to
+	dwarf5_augmentation.
+	* elfread.c (elf_sym_fns_debug_names): New.
+	* psymtab.h (dwarf2_debug_names_functions): New declaration.
+	* symfile.h (struct dwarf2_debug_sections): Add debug_names and
+	debug_aranges.
+	* xcoffread.c (dwarf2_xcoff_names): Add debug_names and debug_aranges.
+
+2017-12-08  Pedro Alves  <palves@redhat.com>
+
+	* common/hash_enum.h: New file.
+
+2017-12-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* dwarf2read.c (create_cu_from_index_list): New from ...
+	(create_cus_from_index_list): ... this function, use it.
+	(dw_expand_symtabs_matching_file_matcher)
+	(dw2_expand_symtabs_matching_one): New from ...
+	(dw2_expand_symtabs_matching): ... this function, use them.
+
+2017-12-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* defs.h (elf_sym_fns_lazy_psyms, elf_sym_fns_gdb_index): Move here
+	declarations from elfread.c.
+	(dwarf2_initialize_objfile): Change return value.
+	* elfread.c (elf_sym_fns_lazy_psyms, elf_sym_fns_gdb_index): Move these
+	declarations to defs.h.
+	(elf_symfile_read): Adjust dwarf2_initialize_objfile caller.
+	* symfile.h (dwarf2_initialize_objfile): Change return type.
+
+2017-12-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* contrib/gdb-add-index.sh (index): Rename to ...
+	(index4): ... here.
+	(index5, debugstr, debugstrmerge, debugstrerr): New variables.
+	Support also .debug_names and .debug_str.
+	* dwarf2read.c: Include cmath, set, list.
+	(INDEX_SUFFIX): Rename to ...
+	(INDEX4_SUFFIX): ... here.
+	(INDEX5_SUFFIX, DEBUG_STR_SUFFIX): New.
+	(file_write(FILE *, const void *, size_t)): New.
+	(file_write(FILE *, const std::vector<Elem, Alloc> &)): New.
+	(data_buf::append_unsigned_leb128, data_buf::empty): New.
+	(data_buf::file_write): Use ::file_write.
+	(data_buf::c_str, dwarf5_djb_hash, debug_names)
+	(check_dwarf64_offsets): New.
+	(psyms_seen_size, write_gdbindex): New from
+	write_psymtabs_to_index code.
+	(dwarf5_gdb_augmentation, write_debug_names, assert_file_size)
+	(enum dw_index_kind): New.
+	(write_psymtabs_to_index): New parameter index_kind.  Support
+	filename_str and out_file_str.  Move code to write_gdbindex,
+	possibly call write_debug_names.
+	(save_gdb_index_command): New parameter -dwarf-5.
+	(_initialize_dwarf2_read): Document the new parameter -dwarf-5.
+
+2017-12-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* contrib/cc-with-tweaks.sh: Change interpreter to bash, incl. initial
+	comment.
+	(GDB_ADD_INDEX): New variable.
+	<$want_index>: Call $GDB_ADD_INDEX.
+
+2017-12-08  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* dtrace-probe.c (dtrace_process_dof_probe): Do not declare a new
+	"expression_up" inside the TRY block.
+
+2017-12-08  Yao Qi  <yao.qi@linaro.org>
+
+	* breakpoint.c (update_watchpoint): Call
+	address_significant.
+
+2017-12-08  Yao Qi  <yao.qi@linaro.org>
+
+	* breakpoint.c (adjust_breakpoint_address): Call
+	address_significant.
+
+2017-12-08  Yao Qi  <yao.qi@linaro.org>
+
+	* aarch64-tdep.c (aarch64_gdbarch_init): Install gdbarch
+	significant_addr_bit.
+	* gdbarch.sh (significant_addr_bit): New.
+	* gdbarch.c, gdbarch.h: Re-generated.
+	* target.c (memory_xfer_partial): Call address_significant.
+	* utils.c (address_significant): New function.
+	* utils.h (address_significant): Declare.
+
+2017-12-08  Tom Tromey  <tom@tromey.com>
+
+	* printcmd.c (ui_printf): Update.  Use std::vector.
+	* common/format.h (struct format_piece): Add constructor.
+	<string>: Now const.
+	(class format_pieces): New class.
+	(parse_format_string, free_format_pieces)
+	(free_format_pieces_cleanup): Remove.
+	* common/format.c (format_pieces::format_pieces): Rename from
+	parse_format_string.  Update.
+	(free_format_pieces, free_format_pieces_cleanup): Remove.
+	* breakpoint.c (parse_cmd_to_aexpr): Update.  Use std::vector.
+	* ax-gdb.h (gen_printf): Remove argument.
+	* ax-gdb.c (gen_printf): Remove "frags" argument.
+	(maint_agent_printf_command): Update.  Use std::vector.
+
+2017-12-08  Yao Qi  <yao.qi@linaro.org>
+
+	PR breakpionts/22567
+	* linespec.c (minsym_found): Set sal.section.
+
+2017-12-08  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* configure.tgt (s390*-*-linux*): Add symfile-mem.o.
+
+2017-12-07  Keith Seitz  <keiths@redhat.com>
+
+	PR breakpoints/22569
+	* location.c (string_to_explicit_location): When terminating
+	parsing early, break out of enclosing loop instead of returning.
+
+2017-12-07  Keith Seitz  <keiths@redhat.com>
+
+	* NEWS (New commands): Mention set/show print type nested-type-limit.
+	* c-typeprint.c (c_type_print_base): Print out nested types.
+	* dwarf2read.c (struct typedef_field_list): Rename to ...
+	(struct decl_field_list): ... this.  Change all uses.
+	(struct field_info) <nested_types_list, nested_types_list_count>:
+	New fields.
+	(add_partial_symbol): Look for nested type definitions in C++, too.
+	(dwarf2_add_typedef): Rename to ...
+	(dwarf2_add_type_defn): ... this.
+	(type_can_define_types): New function.
+	Update assertion to use type_can_define_types.
+	Permit NULL for a field's name.
+	(process_structure_scope): Handle child DIEs of types that can
+	define types.
+	Copy the list of nested types into the type struct.
+	* gdbtypes.h (struct typedef_field): Rename to ...
+	(struct decl_field): ... this.  Change all uses.
+	[is_protected, is_private]: New fields.
+	(struct cplus_struct_type) <nested_types, nested_types_count>: New
+	fields.
+	(TYPE_NESTED_TYPES_ARRAY, TYPE_NESTED_TYPES_FIELD)
+	(TYPE_NESTED_TYPES_FIELD_NAME, TYPE_NESTED_TYPES_FIELD_TYPE)
+	(TYPE_NESTED_TYPES_COUNT, TYPE_NESTED_TYPES_FIELD_PROTECTED)
+	(TYPE_NESTED_TYPES_FIELD_PRIVATE): New macros.
+	* typeprint.c (type_print_raw_options, default_ptype_flags): Add
+	default value for print_nested_type_limit.
+	(print_nested_type_limit): New static variable.
+	(set_print_type_nested_types, show_print_type_nested_types): New
+	functions.
+	(_initialize_typeprint): Register new commands for set/show
+	`print-nested-type-limit'.
+	* typeprint.h (struct type_print_options) [print_nested_type_limit]:
+	New field.
+
+2017-12-07  Tom Tromey  <tom@tromey.com>
+
+	PR breakpoints/22511:
+	* breakpoint.c (commands_command_1): Don't throw an exception when
+	no commands have been read.
+
+2017-12-07  Adam Stylinski  <adam.stylinski@etegent.com>
+
+	PR c++/21222
+	* target-descriptions.c (print_c_tdesc::visit_pre): Change type of
+	range-for variable.
+
+2017-12-07  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* common/selftest.h (struct selftest): Add virtual destructor.
+
+2017-12-07  Phil Muldoon  <pmuldoon@redhat.com>
+
+	* python/py-breakpoint.c (bppy_init): Use string_to_event_location
+	over basic location code. Implement explicit location keywords.
+	(bppy_init_validate_args): New function.
+	* NEWS: Document Python explicit breakpoint locations.
+
+2017-12-07  Joel Brobecker  <brobecker@adacore.com>
+
+	* MAINTAINERS: Restore target entries for m68hc11-elf,
+	score-elf and xstormy16-elf, incorrectly removed in a previous
+	patch meant to only update the list of active maintainers.
+
+2017-12-06  Pedro Alves  <palves@redhat.com>
+
+	* break-catch-syscall.c (insert_catch_syscall)
+	(remove_catch_syscall): Adjust to pass reference to
+	inf_data->syscalls_counts directly via gdb::array_view.
+	* fbsd-nat.c (fbsd_set_syscall_catchpoint): Adjust to use bool
+	and gdb::array_view.
+	* linux-nat.c (linux_child_set_syscall_catchpoint): Likewise.
+	* remote.c (remote_set_syscall_catchpoint): Likewise.
+	* target-debug.h (target_debug_print_bool): New.
+	(define target_debug_print_gdb_array_view_const_int): New.
+	* target-delegates.c: Regenerate.
+	* target.h (target_ops) <to_set_syscall_catchpoint>: Use
+	gdb::array_view and bool.
+	(target_set_syscall_catchpoint): Likewise.
+
+2017-12-06  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* break-catch-syscall.c (catch_syscall_completer): Get pointers
+	to syscall group strings after building the string vector.
+
+2017-12-06  Pedro Alves  <palves@redhat.com>
+
+	* remote.c (remote_query_supported): Don't send "xmlRegisters=" if
+	"qXfer:features:read"" is disabled.
+	(remote_write_qxfer, remote_read_qxfer, remote_search_memory):
+	Check packet_config_support instead of packet->support directly.
+
+2017-12-05  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* target-descriptions.c (struct tdesc_feature) <registers>: Use
+	tdesc_reg_up typedef.
+	(struct target_desc) <features>: Use tdesc_feature_up typedef.
+
+2017-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* target-descriptions.c (struct tdesc_type): Use default
+	destructor.
+	<u>: Remove.
+	<accept>: Remove.
+	(struct tdesc_type_builtin): New.
+	(struct tdesc_type_vector): New.
+	(struct tdesc_type_with_fields): New.
+	(tdesc_predefined_types): Change type to tdesc_type_builtin[].
+	(tdesc_gdb_type): Remove.
+	(tdesc_register_type): Adjust.
+	(tdesc_create_vector): Create tdesc_type_vector.
+	(tdesc_create_struct): Create tdesc_type_with_fields.
+	(tdesc_set_struct_size): Change parameter type.
+	(tdesc_create_union): Create tdesc_type_with_fields.
+	(tdesc_create_flags): Likewise.
+	(tdesc_create_enum): Likewise.
+	(tdesc_add_field): Change parameter type.
+	(tdesc_add_typed_bitfield): Likewise.
+	(tdesc_add_bitfield): Likewise.
+	(tdesc_add_flag): Likewise.
+	(tdesc_add_enum_value): Likewise.
+	(print_c_tdesc) <visit>: Remove overload with tdesc_type
+	parameter, add overloads for tdesc_type_builtin,
+	tdesc_type_with_fields and tdesc_type_vector.
+	<m_printed_type>: Remove.
+	<m_printed_element_type, m_printed_type_with_fields>: Add.
+	* target-descriptions.h (tdesc_create_enum): Change return type.
+	(tdesc_add_typed_bitfield): Change parameter type.
+	(tdesc_add_enum_value): Change parameter type.
+	* xml-tdesc.c (struct tdesc_parsing_data) <current_type>: Change
+	type to tdesc_type_with_fields.
+	(tdesc_start_struct): Adjust.
+	(tdesc_start_flags): Adjust.
+	(tdesc_start_enum): Adjust.
+	(tdesc_start_field): Adjust.
+	* arch/tdesc.h (struct tdesc_type_builtin): Forward-declare.
+	(struct tdesc_type_vector): Forward-declare.
+	(struct tdesc_type_with_fields): Forward-declare.
+	(tdesc_create_struct): Change return type.
+	(tdesc_create_union): Likewise.
+	(tdesc_create_flags): Likewise.
+	(tdesc_add_field): Change parameter type.
+	(tdesc_set_struct_size): Likewise.
+	(tdesc_add_bitfield): Likewise.
+	(tdesc_add_flag): Likewise.
+	* features: Re-generate C files.
+
+2017-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* target-descriptions.c (tdesc_arch_reg): Remove typedef.
+	(struct tdesc_arch_reg): Add constructor.
+	(DEF_VEC_O (tdesc_arch_reg)): Remove.
+	(struct tdesc_arch_data): Initialize fields.
+	<arch_regs>: Change type to std::vector.
+	(target_find_description): Adjust.
+	(tdesc_find_type): Adjust.
+	(tdesc_data_init): Call tdesc_arch_data constructor.
+	(tdesc_data_alloc): Allocate tdesc_arch_data with new.
+	(tdesc_data_cleanup): Free data with delete.
+	(tdesc_numbered_register): Adjust.
+	(tdesc_find_arch_register): Adjust.
+	(tdesc_use_registers): Adjust.
+
+2017-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* target-descriptions.c (tdesc_type_field): Remove typedef.
+	(DEF_VEC_O (tdesc_type_field)): Remove.
+	(struct tdesc_type_field): Add constructor.
+	<name>: Change type to std::string.
+	(struct tdesc_type) <tdesc_type>: Instantiate vector if the type
+	kind uses it.
+	<~tdesc_type>: Destroy vector if the type kind uses it.
+	<u::u::fields>: Change type to std::vector.
+	(tdesc_gdb_type): Adjust.
+	(tdesc_add_field): Adjust.
+	(tdesc_add_typed_bitfield): Adjust.
+	(tdesc_add_field): Adjust.
+	(tdesc_add_enum_value): Adjust.
+	(class print_c_tdesc) <visit>: Adjust.
+
+2017-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* target-descriptions.c (struct tdesc_type) <name>: Change type
+	to std::string.
+	<~tdesc_type>: Don't manually free name.
+	<operator==>: Adjust.
+	(tdesc_named_type): Adjust.
+	(tdesc_find_type): Adjust.
+	(tdesc_gdb_type): Adjust.
+	(class print_c_tdesc) <visit>: Adjust.
+
+2017-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* target-descriptions.c (tdesc_type_p): Remove typedef.
+	(DEF_VEC_P (tdesc_type_p)): Remove.
+	(struct tdesc_feature) <types>: Change type to std::vector.
+	<~tdesc_feature>: Replace with default implementation.
+	<accept>: Adjust.
+	(tdesc_named_type): Adjust.
+	(tdesc_create_vector): Adjust.
+	(tdesc_create_struct): Adjust.
+	(tdesc_create_union): Adjust.
+	(tdesc_create_flags): Adjust.
+	(tdesc_create_enum): Adjust.
+
+2017-12-05  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* target-descriptions.c (struct tdesc_reg) <tdesc_reg>: Change
+	type of name_ parameter, adjust to std::string change.
+	<name, group, type>: Change type to std::string.
+	<~tdesc_reg>: Replace with default implementation.
+	<operator==>: Adjust.
+	(tdesc_find_register_early): Adjust.
+	(tdesc_register_name): Adjust.
+	(tdesc_register_type): Adjust.
+	(tdesc_register_in_reggroup_p): Adjust.
+	(class print_c_tdesc) <visit>: Adjust.
+	(class print_c_feature) <visit>: Adjust.
+	* features/arc-arcompact.c: Re-generate.
+	* features/arc-v2.c: Re-generate.
+
+2017-12-05  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* target-descriptions.c (tdesc_reg_p): Remove typedef.
+	(DEF_VEC_P (tdesc_reg_p)): Remove.
+	(struct tdesc_feature) <registers>: Change type to std::vector.
+	<~tdesc_feature>: Don't manually free registers.
+	<accept>: Adjust.
+	<operator==>: Adjust.
+	(tdesc_has_registers): Adjust.
+	(tdesc_find_register_early): Adjust.
+	(tdesc_use_registers): Adjust.
+	(tdesc_create_reg): Adjust.
+
+2017-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* target-descriptions.c (tdesc_feature) <name>: Change type to
+	std::string.
+	<~tdesc_feature>: Don't manually free name.
+	<operator==>: Adjust.
+	(tdesc_find_feature): Adjust.
+	(tdesc_feature_name): Adjust.
+	(class print_c_tdesc) <visit_pre>: Adjust.
+	(class print_c_feature) <visit_pre>: Adjust.
+
+2017-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* target-descriptions.c (tdesc_feature_p): Remove typedef.
+	(DEF_VEC_P (tdesc_feature_p)): Remove.
+	(struct target_desc) <features>: Change type to std::vector.
+	<~target_desc>: Replace with default implementation.
+	<accept>: Adjust.
+	<operator==>: Adjust.
+	(tdesc_has_registers): Adjust.
+	(tdesc_find_feature): Adjust.
+	(tdesc_use_registers): Adjust.
+	(tdesc_create_feature): Adjust.
+
+2017-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* target-descriptions.c (arch_p): Remove typedef.
+	(DEF_VEC_P (arch_p)): Remove.
+	(struct target_desc) <compatible>: Change type to std::vector.
+	<~target_desc>: Don't manually free compatible.
+	(tdesc_compatible_p): Adjust.
+	(tdesc_add_compatible): Adjust.
+	(class print_c_tdesc) <visit_pre>: Adjust.
+
+2017-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* target-descriptions.c (property_s): Remove typedef.
+	(DEF_VEC_O (property_s)): Remove.
+	(struct target_desc) <properties>: Make an std::vector.
+	<~target_desc>: Don't manually free properties.
+	(tdesc_property): Adjust.
+	(set_tdesc_property): Adjust.
+	(class print_c_tdesc) <visit_pre>: Adjust.
+
+2017-12-05  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* common/gdb_assert.h (gdb_static_assert): Redefine using
+	static_assert.
+
+2017-12-05  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* ada-lang.c (ada_collect_symbol_completion_matches): Remove
+	unused variables.
+	(ada_is_redundant_range_encoding): Likewise.
+	* ada-varobj.c (ada_varobj_get_value_of_array_variable):
+	Likewise.
+	* alpha-tdep.c (alpha_software_single_step): Likewise.
+	* arm-tdep.c (_initialize_arm_tdep): Likewise.
+	* auto-load.c (info_auto_load_cmd): Likewise.
+	* break-catch-syscall.c (insert_catch_syscall): Likewise.
+	(remove_catch_syscall): Likewise.
+	* breakpoint.c (condition_completer): Likewise.
+	(clear_command): Likewise.
+	(update_breakpoint_locations): Likewise.
+	* btrace.c (btrace_disable): Likewise.
+	(btrace_teardown): Likewise.
+	(btrace_maint_update_pt_packets): Likewise.
+	(maint_btrace_clear_cmd): Likewise.
+	* cli/cli-decode.c (lookup_cmd_1): Likewise.
+	(lookup_cmd_composition): Likewise.
+	* cli/cli-dump.c (scan_filename): Likewise.
+	(restore_command): Likewise.
+	* compile/compile-loc2c.c (compute_stack_depth): Likewise.
+	* compile/compile-object-load.c (compile_object_load): Likewise.
+	* compile/compile-object-run.c (compile_object_run): Likewise.
+	* compile/compile.c (compile_to_object): Likewise.
+	* completer.c (filename_completer): Likewise.
+	(complete_files_symbols): Likewise.
+	(complete_expression): Likewise.
+	* corelow.c (core_open): Likewise.
+	* ctf.c (ctf_start): Likewise.
+	(ctf_write_status): Likewise.
+	(ctf_write_uploaded_tsv): Likewise.
+	(ctf_write_definition_end): Likewise.
+	(ctf_open_dir): Likewise.
+	(ctf_xfer_partial): Likewise.
+	(ctf_trace_find): Likewise.
+	* disasm.c (gdb_pretty_print_disassembler::pretty_print_insn):
+	Likewise.
+	* dwarf2loc.c (allocate_piece_closure): Likewise.
+	(indirect_pieced_value): Likewise.
+	(dwarf2_evaluate_loc_desc_full): Likewise.
+	* dwarf2read.c (dw2_expand_marked_cus): Likewise.
+	(dw2_expand_symtabs_matching): Likewise.
+	(dw2_map_symbol_filenames): Likewise.
+	(read_and_check_comp_unit_head): Likewise.
+	(read_cutu_die_from_dwo): Likewise.
+	(lookup_dwo_unit): Likewise.
+	(read_comp_units_from_section): Likewise.
+	(dwarf2_compute_name): Likewise.
+	(handle_DW_AT_stmt_list): Likewise.
+	(create_cus_hash_table): Likewise.
+	(create_dwp_v2_section): Likewise.
+	(dwarf2_rnglists_process): Likewise.
+	(dwarf2_ranges_process): Likewise.
+	(dwarf2_record_block_ranges): Likewise.
+	(is_vtable_name): Likewise.
+	(read_formatted_entries): Likewise.
+	(skip_form_bytes): Likewise.
+	* elfread.c (elf_symtab_read): Likewise.
+	* exec.c (exec_file_command): Likewise.
+	* f-valprint.c (f_val_print): Likewise.
+	(info_common_command_for_block): Likewise.
+	* guile/guile.c (initialize_scheme_side): Likewise.
+	* guile/scm-breakpoint.c (gdbscm_breakpoint_commands): Likewise.
+	* guile/scm-cmd.c (cmdscm_completer): Likewise.
+	(gdbscm_register_command_x): Likewise.
+	* guile/scm-frame.c (gdbscm_frame_read_var): Likewise.
+	* guile/scm-param.c (gdbscm_parameter_value): Likewise.
+	* guile/scm-ports.c (file_port_magic): Likewise.
+	* guile/scm-pretty-print.c (ppscm_search_pp_list): Likewise.
+	(ppscm_pretty_print_one_value): Likewise.
+	(ppscm_print_children): Likewise.
+	* guile/scm-string.c (gdbscm_string_to_argv): Likewise.
+	* guile/scm-symtab.c (gdbscm_sal_symtab): Likewise.
+	* guile/scm-type.c (gdbscm_type_next_field_x): Likewise.
+	* guile/scm-utils.c (gdbscm_parse_function_args): Likewise.
+	* i386-tdep.c (i386_register_reggroup_p): Likewise.
+	* infcmd.c (run_command_1): Likewise.
+	(until_next_fsm_clean_up): Likewise.
+	* linespec.c (linespec_complete): Likewise.
+	(find_label_symbols): Likewise.
+	* m2-valprint.c (m2_val_print): Likewise.
+	* memattr.c (require_user_regions): Likewise.
+	(lookup_mem_region): Likewise.
+	(disable_mem_command): Likewise.
+	(mem_delete): Likewise.
+	* mep-tdep.c (mep_register_name): Likewise.
+	(mep_analyze_prologue): Likewise.
+	* mi/mi-cmd-file.c (mi_cmd_file_list_shared_libraries): Likewise.
+	* mi/mi-interp.c (mi_on_sync_execution_done): Likewise.
+	* mi/mi-main.c (mi_cmd_trace_frame_collected): Likewise.
+	* microblaze-linux-tdep.c (microblaze_linux_init_abi): Likewise.
+	* minidebug.c (lzma_open): Likewise.
+	* minsyms.c (lookup_minimal_symbol): Likewise.
+	* mips-linux-tdep.c (mips64_fill_fpregset): Likewise.
+	* mips-tdep.c (mips_stub_frame_sniffer): Likewise.
+	(mips_o64_return_value): Likewise.
+	(mips_single_step_through_delay): Likewise.
+	(_initialize_mips_tdep): Likewise.
+	* nios2-tdep.c (nios2_push_dummy_call): Likewise.
+	(nios2_software_single_step): Likewise.
+	* parse.c (find_minsym_type_and_address): Likewise.
+	* psymtab.c (psym_relocate): Likewise.
+	* python/py-breakpoint.c (bppy_get_commands): Likewise.
+	(gdbpy_breakpoint_modified): Likewise.
+	* python/py-infevents.c (create_inferior_call_event_object):
+	Likewise.
+	* python/py-record-btrace.c (btpy_list_item): Likewise.
+	* python/py-type.c (typy_str): Likewise.
+	* python/py-value.c (valpy_call): Likewise.
+	* python/python.c (do_start_initialization): Likewise.
+	* record-btrace.c (record_btrace_insn_history_range): Likewise.
+	(record_btrace_call_history_range): Likewise.
+	(record_btrace_record_method): Likewise.
+	(record_btrace_xfer_partial): Likewise.
+	(btrace_get_frame_function): Likewise.
+	* record-full.c (record_full_open): Likewise.
+	* record.c (get_context_size): Likewise.
+	* registry.h (DEFINE_REGISTRY): Likewise.
+	* remote-fileio.c (remote_fileio_request): Likewise.
+	* remote.c (remote_update_thread_list): Likewise.
+	(remote_check_symbols): Likewise.
+	(remote_commit_resume): Likewise.
+	(remote_interrupt): Likewise.
+	(remote_insert_breakpoint): Likewise.
+	(compare_sections_command): Likewise.
+	* rust-exp.y (super_name): Likewise.
+	(lex_string): Likewise.
+	(convert_ast_to_type): Likewise.
+	(convert_ast_to_expression): Likewise.
+	* rust-lang.c (rust_print_struct_def): Likewise.
+	(rust_print_type): Likewise.
+	(rust_evaluate_subexp): Likewise.
+	* rx-tdep.c (rx_register_type): Likewise.
+	* ser-event.c (serial_event_clear): Likewise.
+	* serial.c (serial_open): Likewise.
+	* spu-tdep.c (spu_overlay_new_objfile): Likewise.
+	* symfile.c (section_is_overlay): Likewise.
+	(overlay_unmapped_address): Likewise.
+	(overlay_mapped_address): Likewise.
+	(simple_overlay_update_1): Likewise.
+	(simple_overlay_update): Likewise.
+	* symtab.c (symbol_find_demangled_name): Likewise.
+	(search_symbols): Likewise.
+	* target-descriptions.c (tdesc_predefined_type): Likewise.
+	* target.c (target_commit_resume): Likewise.
+	* thread.c (print_selected_thread_frame): Likewise.
+	* top.c (new_ui_command): Likewise.
+	(gdb_readline_no_editing): Likewise.
+	* tracefile-tfile.c (tfile_open): Likewise.
+	* tracepoint.c (create_tsv_from_upload): Likewise.
+	* utils.c (quit): Likewise.
+	(defaulted_query): Likewise.
+	* valarith.c (value_concat): Likewise.
+	* xml-syscall.c (xml_list_syscalls_by_group): Likewise.
+	* xml-tdesc.c (target_fetch_description_xml): Likewise.
+	* xtensa-tdep.c (xtensa_pseudo_register_read): Likewise.
+	(xtensa_pseudo_register_write): Likewise.
+
+2017-12-04  Tom Tromey  <tom@tromey.com>
+
+	* NEWS: Mention Rust trait object inspection.
+
+2017-12-04  Pedro Alves  <palves@redhat.com>
+
+	PR gdb/22499
+	* amd64-tdep.c (amd64_insn::rex_offset): Rename to...
+	(amd64_insn::enc_prefix_offset): ... this, and tweak comment.
+	(vex2_prefix_p, vex3_prefix_p): New functions.
+	(amd64_get_insn_details): Adjust to rename.  Also skip VEX2 and
+	VEX3 prefixes.
+	(fixup_riprel): Set VEX3.!B.
+
+2017-12-03  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* target.h (mem_region_vector): Remove.
+	(struct target_ops) <to_memory_map>: Change return type to
+	std::vector<mem_region>.
+	* target-debug.h (target_debug_print_mem_region_vector): Rename
+	to ...
+	(target_debug_print_std_vector_mem_region): ... this.
+	* target-delegates.c: Re-generate.
+
+2017-12-03  Pedro Alves  <palves@redhat.com>
+
+	* make-target-delegates (munge_type): Also munge '<', '>', and
+	':'.  Avoid double underscores in identifiers, and trailing
+	underscores.
+	* target-debug.h
+	(target_debug_print_VEC_static_tracepoint_marker_p__p): Rename to
+	...
+	(target_debug_print_VEC_static_tracepoint_marker_p_p): ... this.
+	* target-delegates.c: Regenerate.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* common/poison.h (XDELETE): Fix typo.
+
+2017-12-01  Andrew Cagney  <cagney@redhat.com>
+	    Joel Brobecker  <brobecker@adacore.com>
+	    Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* NEWS (Changes since GDB 8.0: Mention new '--readnever'
+	feature.
+	* coffread.c (coff_symfile_read): Do not map over sections with
+	'coff_locate_sections' if readnever is on.
+	* dwarf2read.c (dwarf2_has_info): Return 0 if
+	readnever is on.
+	* elfread.c (elf_symfile_read): Do not map over sections with
+	'elf_locate_sections' if readnever is on.
+	* main.c (validate_readnow_readnever): New function.
+	(captured_main_1): Add support for --readnever.
+	(print_gdb_help): Document --readnever.
+	* objfile-flags.h (enum objfile_flag) <OBJF_READNEVER>: New
+	flag.
+	* symfile.c (readnever_symbol_files): New global.
+	(symbol_file_add_with_addrs): Set 'OBJF_READNEVER' when
+	'READNEVER_SYMBOL_FILES' is set.
+	(validate_readnow_readnever): New function.
+	(symbol_file_command): Handle '-readnever' option.
+	Call 'validate_readnow_readnever'.
+	(add_symbol_file_command): Handle '-readnever' option.
+	Call 'validate_readnow_readnever'.
+	(_initialize_symfile): Document new '-readnever' option for
+	both 'symbol-file' and 'add-symbol-file' commands.
+	* top.h (readnever_symbol_files): New extern global.
+	* xcoffread.c (xcoff_initial_scan): Do not read debug
+	information if readnever is on.
+
+2017-12-01  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* symfile.c (symbol_file_command): Call
+	'symbol_file_add_main_1' only after processing all command
+	line options.
+	(add_symbol_file_command): Modify logic to make arguments
+	position-independent.
+
+2017-12-01  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.c (symbol_list_obstack): Delete.
+	(resolve_subexp): Make sure "candidates" gets xfree'ed.
+	(ada_lookup_symbol_list_worker): Remove the limitation that
+	the result is only good until the next call, now making it
+	the responsibility of the caller to free the result when no
+	longer needed.  Adjust the function's intro comment accordingly.
+	(ada_lookup_symbol_list): Adjust the function's intro comment.
+	(ada_iterate_over_symbols): Make sure "results" gets xfree'ed.
+	(ada_lookup_encoded_symbol, get_var_value): Likewise.
+	(_initialize_ada_language): Remove symbol_list_obstack
+	initialization.
+	* ada-exp.y (block_lookup): Make sure "syms" gets xfree'ed.
+	(write_var_or_type, write_name_assoc): Likewise.
+
+2017-12-01  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (all_deps_files): New variable.
+	Include .Po files using all_deps_files.
+
+2017-12-01  Joel Brobecker  <brobecker@adacore.com>
+
+	* MAINTAINERS: Update list of maintainers, moving those who
+	stepped down or became inactive to the "Past Maintainers"
+	section.
+
+2017-11-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* configure.ac Don't check for sys/fault.h, sys/syscall.h,
+	sys/proc.h.
+	(NEW_PROC_API): Remove.
+	(prsysent_t, pr_sigset_t, pr_sigaction64_t, pr_siginfo64_t):
+	Likewise.
+	* common/common.m4 (GDB_AC_COMMON): Don't check for sys/syscall.h.
+	* configure: Regenerate.
+	* config.in: Regenerate.
+	* gdbserver/configure: Regenerate.
+	* gdbserver/config.in: Regenerate.
+
+	* i386-sol2-nat.c (_initialize_amd64_sol2_nat): Remove
+	NEW_PROC_API test.
+	* sparc-sol2-nat.c (_initialize_sparc_sol2_nat): Likewise.
+
+	* linux-btrace.c: Remove HAVE_SYS_SYSCALL_H test.
+
+	* proc-api.c: Remove !NEW_PROC_API support.
+	Remove HAVE_SYS_PROC_H and HAVE_SYS_USER_H tests.
+	Remove tests for macros always defined on Solaris.
+	* proc-events.c: Remove !NEW_PROC_API support.
+	Remove Remove HAVE_SYS_SYSCALL_H, HAVE_SYS_PROC_H and
+	HAVE_SYS_USER_H tests.
+	(init_syscall_table): Remove non-Solaris syscalls.
+	Remove tests for syscalls present on all Solaris versions.
+	Add missing Solaris 10+ syscalls.
+	(signal_table): Remove non-Solaris signals.
+	Remove tests for signals present on all Solaris versions.
+	(fault_table): Remove non-Solaris faults.
+	Remove tests for faults present on all Solaris versions.
+	* proc-flags.c: Remove !NEW_PROC_API support.
+	(pr_flag_table): Remove non-Solaris and pre-Solaris 7 comments.
+	Remove non-Solaris flags.
+	* proc-why.c: Remove !NEW_PROC_API support.
+	(pr_why_table): Remove meaningless comments.
+	Remove tests for reasons present on all Solaris versions.
+	Remove OSF/1 cases.
+	(proc_prettyfprint_why): Likewise.
+
+	* procfs.c: Remove !NEW_PROC_API and DYNAMIC_SYSCALLS support.
+	Remove HAVE_SYS_FAULT_H and HAVE_SYS_SYSCALL_H tests.
+	Remove WA_READ test, IRIX watchpoint support.
+	(gdb_sigset_t, gdb_sigaction_t, gdb_siginfo_t): Replace by base
+	types.  Change users.
+	(gdb_praddset, gdb_prdelset, gdb_premptysysset, gdb_praddsysset)
+	(gdb_prdelset, gdb_pr_issyssetmember): Replace by base macros.
+	Change callers.
+	Remove CTL_PROC_NAME_FMT tests.
+	(gdb_prstatus_t, gdb_lwpstatus_t): Replace by base types.  Change
+	users.
+	(sysset_t_size): Remove.  Use sizeof (sysset_t) in callers.
+	Remove PROCFS_DONT_PIOCSSIG_CURSIG support.
+	(proc_modify_flag): Replace GDBRESET by PCUNSET.
+	Remove PR_ASYNC, PR_KLC tests.
+	(proc_unset_inherit_on_fork): Remove PR_ASYNC test.
+	(proc_parent_pid): Remove PCWATCH etc. tests.
+	(proc_set_watchpoint): Remove !PCWATCH && !PIOCSWATCH support.
+	Remove PCAGENT test.
+	(proc_get_nthreads) [PIOCNTHR && PIOCTLIST]: Remove.
+	Remove SYS_lwpcreate || SYS_lwp_create test.
+	(proc_get_current_thread): Likewise.
+	[PIOCNTHR && PIOCTLIST]: Remove.
+	[PIOCLSTATUS]: Remove.
+	(procfs_debug_inferior): Remove non-Solaris cases, conditionals.
+	[PRFS_STOPEXEC]: Remove.
+	(syscall_is_lwp_exit): Remove non-Solaris cases, conditionals.
+	(syscall_is_exit): Likewise.
+	(syscall_is_exec): Likewise.
+	(syscall_is_lwp_create): Likewise.
+	Remove SYS_syssgi support.
+	(procfs_wait): Remove PR_ASYNC, !PIOCSSPCACT tests.
+	[SYS_syssgi]: Remove.
+	Remove non-Solaris cases, conditionals.
+	(unconditionally_kill_inferior) [PROCFS_NEED_PIOCSSIG_FOR_KILL]:
+	Remove.
+	(procfs_init_inferior) [SYS_syssgi]: Remove.
+	(procfs_set_exec_trap) [PRFS_STOPEXEC]: Remove.
+	(procfs_inferior_created) [SYS_syssgi]: Remove.
+	(procfs_set_watchpoint): Remove !AIX5 test.
+	(procfs_stopped_by_watchpoint): Remove FLTWATCH test, FLTKWATCH
+	case.
+	(mappingflags) [MA_PHYS]: Remove.
+	(info_mappings_callback): Remove PCAGENT test.
+	Remove PIOCOPENLWP || PCAGENT test.
+
+2017-11-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* sol-thread.c (info_solthreads): Constify args.
+	Cast args to void *.
+
+2017-11-29  John Baldwin  <jhb@FreeBSD.org>
+
+	* target-float.c [HAVE_LIBMPFR]: Define MPFR_USE_INTMAX_T.
+
+2017-11-29  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.c (to_fixed_range_type): Make sure that the size
+	of the range type being returned is the same as the size
+	of the range type being fixed.
+
+2017-11-29  Pedro Alves  <palves@redhat.com>
+
+	PR c++/19436
+	* NEWS: Mention setting breakpoints on functions with C++ ABI
+	tags.
+	* completer.h (completion_match_for_lcd) <match,
+	mark_ignored_range>: New methods.
+	<finish>: Consider ignored ranges.
+	<clear>: Clear ignored ranges.
+	<m_ignored_ranges, m_finished_storage>: New fields.
+	* cp-support.c (cp_search_name_hash): Ignore ABI tags.
+	(cp_symbol_name_matches_1, cp_fq_symbol_name_matches): Pass the
+	completion_match_for_lcd pointer to strncmp_iw_with_mode.
+	(test_cp_symbol_name_cmp): Add [abi:...] tags unit tests.
+	* language.c (default_symbol_name_matcher): Pass the
+	completion_match_for_lcd pointer to strncmp_iw_with_mode.
+	* linespec.c (linespec_lexer_lex_string): Don't tokenize ABI tags.
+	* utils.c (skip_abi_tag): New function.
+	(strncmp_iw_with_mode): Add completion_match_for_lcd parameter.
+	Handle ABI tags.
+	* utils.h (strncmp_iw_with_mode): Add completion_match_for_lcd
+	parameter.
+
+2017-11-29  Pedro Alves  <palves@redhat.com>
+
+	PR c++/19436
+	* NEWS: Mention setting breakpoints on functions with C++ ABI
+	tags.
+	* completer.h (completion_match_for_lcd) <match,
+	mark_ignored_range>: New methods.
+	<finish>: Consider ignored ranges.
+	<clear>: Clear ignored ranges.
+	<m_ignored_ranges, m_finished_storage>: New fields.
+	* cp-support.c (cp_search_name_hash): Ignore ABI tags.
+	(cp_symbol_name_matches_1, cp_fq_symbol_name_matches): Pass the
+	completion_match_for_lcd pointer to strncmp_iw_with_mode.
+	(test_cp_symbol_name_cmp): Add [abi:...] tags unit tests.
+	* language.c (default_symbol_name_matcher): Pass the
+	completion_match_for_lcd pointer to strncmp_iw_with_mode.
+	* linespec.c (linespec_lexer_lex_string): Don't tokenize ABI tags.
+	* utils.c (skip_abi_tag): New function.
+	(strncmp_iw_with_mode): Add completion_match_for_lcd parameter.
+	Handle ABI tags.
+	* utils.h (strncmp_iw_with_mode): Add completion_match_for_lcd
+	parameter.
+
+2017-11-29  Pedro Alves  <palves@redhat.com>
+
+	* NEWS: Mention that breakpoints on C++ functions are now set on
+	on all namespaces/classes by default, and mention "break
+	-qualified".
+	* ax-gdb.c (agent_command_1): Adjust to pass a
+	symbol_name_match_type to new_linespec_location.
+	* breakpoint.c (parse_breakpoint_sals): Adjust to
+	get_linespec_location's return type change.
+	(strace_marker_create_sals_from_location): Adjust to pass a
+	symbol_name_match_type to new_linespec_location.
+	(strace_marker_decode_location): Adjust to get_linespec_location's
+	return type change.
+	(strace_command): Adjust to pass a symbol_name_match_type to
+	new_linespec_location.
+	(LOCATION_HELP_STRING): Add paragraph about wildmatching, and
+	mention "-qualified".
+	* c-lang.c (cplus_language_defn): Install cp_search_name_hash.
+	* completer.c (explicit_location_match_type::MATCH_QUALIFIED): New
+	enumerator.
+	(complete_address_and_linespec_locations): New parameter
+	'match_type'.  Pass it down.
+	(explicit_options): Add "-qualified".
+	(collect_explicit_location_matches): Pass the requested match type
+	to the linespec completers.  Handle MATCH_QUALIFIED.
+	(location_completer): Handle "-qualified" combined with linespecs.
+	* cp-support.c (cp_search_name_hash): New.
+	(cp_symbol_name_matches_1): Implement wild matching for C++.
+	(cp_fq_symbol_name_matches): Reimplement.
+	(cp_get_symbol_name_matcher): Return different matchers depending
+	on the lookup name's match type.
+	(selftests::test_cp_symbol_name_matches): Add wild matching tests.
+	* cp-support.h (cp_search_name_hash): New declaration.
+	* dwarf2read.c
+	(selftests::dw2_expand_symtabs_matching::test_symbols): Add
+	symbols.
+	(test_dw2_expand_symtabs_matching_symbol): Add wild matching
+	tests.
+	* guile/scm-breakpoint.c (gdbscm_register_breakpoint_x): Adjust to
+	pass a symbol_name_match_type to new_linespec_location.
+	* linespec.c (linespec_parse_basic): Lookup function symbols using
+	the parser's symbol name match type.
+	(convert_explicit_location_to_linespec): New
+	symbol_name_match_type parameter.  Pass it down to
+	find_linespec_symbols.
+	(convert_explicit_location_to_sals): Pass the location's name
+	match type to convert_explicit_location_to_linespec.
+	(parse_linespec): New match_type parameter.  Save it in the
+	parser.
+	(linespec_parser_new): Default to symbol_name_match_type::WILD.
+	(linespec_complete_function): New symbol_name_match_type
+	parameter.  Use it.
+	(complete_linespec_component): Pass down the parser's recorded
+	name match type.
+	(linespec_complete_label): New symbol_name_match_type parameter.
+	Use it.
+	(linespec_complete): New symbol_name_match_type parameter.  Save
+	it in the parser and pass it down.  Adjust to
+	get_linespec_location's prototype change.
+	(find_function_symbols, find_linespec_symbols): New
+	symbol_name_match_type parameter.  Pass it down instead of
+	assuming symbol_name_match_type::WILD.
+	* linespec.h (linespec_complete, linespec_complete_function)
+	(linespec_complete_label): New symbol_name_match_type parameter.
+	* location.c (event_location::linespec_location): Now a struct
+	linespec_location.
+	(EL_LINESPEC): Adjust.
+	(initialize_explicit_location): Default to
+	symbol_name_match_type::WILD.
+	(new_linespec_location): New symbol_name_match_type parameter.
+	Record it in the location.
+	(get_linespec_location): Now returns a struct linespec_location.
+	(new_explicit_location): Also copy func_name_match_type.
+	(explicit_to_string_internal)
+	(string_to_explicit_location): Handle "-qualified".
+	(copy_event_location): Adjust to LINESPEC_LOCATION type change.
+	Copy symbol_name_match_type fields.
+	(event_location_deleter::operator()): Adjust to LINESPEC_LOCATION
+	type change.
+	(event_location_to_string): Adjust to LINESPEC_LOCATION type
+	change.  Handle "-qualfied".
+	(string_to_explicit_location): Handle "-qualified".
+	(string_to_event_location_basic): New symbol_name_match_type
+	parameter.  Pass it down.
+	(string_to_event_location): Handle "-qualified".
+	* location.h (struct linespec_location): New.
+	(explicit_location::func_name_match_type): New field.
+	(new_linespec_location): Now returns a const linespec_location *.
+	(string_to_event_location_basic): New symbol_name_match_type
+	parameter.
+	(explicit_completion_info::saw_explicit_location_option): New
+	field.
+	* mi/mi-cmd-break.c (mi_cmd_break_insert_1): Adjust to pass a
+	symbol_name_match_type to new_linespec_location.
+	* python/py-breakpoint.c (bppy_init): Likewise.
+	* python/python.c (gdbpy_decode_line): Likewise.
+
+2017-11-29  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (ada_lookup_name_info::matches): Change type of
+	parameter from completion_match to completion_match_result.
+	Adjust.
+	(do_wild_match, do_full_match, ada_symbol_name_matches): Likewise.
+	* completer.c (completion_tracker::maybe_add_completion): Add
+	match_for_lcd parameter and use it.
+	(completion_tracker::add_completion): Likewise.
+	* completer.h (class completion_match_for_lcd): New class.
+	(completion_match_result::match_for_lcd): New field.
+	(completion_match_result::set_match): New method.
+	(completion_tracker): Add comments.
+	(completion_tracker::add_completion): Add match_for_lcd parameter.
+	(completion_tracker::reset_completion_match_result): Reset
+	match_for_lcd too.
+	(completion_tracker::maybe_add_completion): Add match_for_lcd
+	parameter.
+	(completion_tracker::m_lowest_common_denominator_unique): Extend
+	comments.
+	* cp-support.c (cp_symbol_name_matches_1)
+	(cp_fq_symbol_name_matches): Change type of parameter from
+	completion_match to completion_match_result.  Adjust.
+	* language.c (default_symbol_name_matcher): Change type of
+	parameter from completion_match to completion_match_result.
+	Adjust.
+	* language.h (completion_match_for_lcd): Forward declare.
+	(default_symbol_name_matcher): Change type of parameter from
+	completion_match to completion_match_result.
+	* symtab.c (compare_symbol_name): Adjust.
+	(completion_list_add_name): Pass the match_for_lcd to the tracker.
+	* symtab.h (ada_lookup_name_info::matches): Change type of
+	parameter from completion_match to completion_match_result.
+	(symbol_name_matcher_ftype): Likewise, and update comments.
+
+2017-11-29  Pedro Alves  <palves@redhat.com>
+
+	* linespec.c (minsym_found, add_minsym): Use msymbol_is_function.
+	* minsyms.c (msymbol_is_text): Delete.
+	(msymbol_is_function): New function.
+	* minsyms.h (msymbol_is_text): Delete.
+	(msymbol_is_function): New declaration.
+	* symtab.c (find_function_alias_target): Use msymbol_is_function.
+
+2017-11-29  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (distclean): Handle the case where rmdir fails.
+
+2017-11-29  Tom Tromey  <tom@tromey.com>
+
+	* symfile.c (_initialize_symfile): Update usage text for
+	add-symbol-file, symbol-file, load.
+
+2017-11-29  Tom Tromey  <tom@tromey.com>
+
+	* symfile.c (add_symbol_file_command): Error if some arguments to
+	-s are missing.  Change unrecognized-argument error message.
+	(_initialize_symfile): Fix usage text for add-symbol-file.
+
+2017-11-27  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (REMOTE_OBS): Remove.
+	(SFILES): Remove remote sources.
+	(COMMON_SFILES): Add remote sources.
+	(ALLDEPFILES): Remove dcache.c.
+
+2017-11-27  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (SUBDIR_TARGET_SRCS, SUBDIR_TARGET_OBS): New
+	variables.
+	(SFILES): Use SUBDIR_TARGET_SRCS.
+	(COMMON_OBS): Use SUBDIR_TARGET_OBS.  Remove waitstatus.o.
+	(CONFIG_SRC_SUBDIR): Add target.
+	(%.o): Remove target rule.
+
+2017-11-27  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (COMMON_OBS): Remove filename-seen-cache.o,
+	registry.o, thread-fsm.o, debug.o.
+	(COMMON_SFILES): Add filename-seen-cache.c, registry.c,
+	thread-fsm.c, debug.c.
+
+2017-11-27  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (COMMON_SFILES): New.
+	(SFILES): Move some entries to COMMON_SFILES.
+	(COMMON_OBS): Use COMMON_SFILES.
+
+2017-11-27  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (YYFILES): Update comment.
+	(YYOBJ): Redefine.
+
+2017-11-27  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (SUBDIR_PYTHON_OBS): Redefine.
+	(CONFIG_SRC_SUBDIR): Add python.
+	(%.o): Remove python rule.
+	(python/%.o): New rule.
+	* configure: Rebuild.
+	* configure.ac (CONFIG_OBS): Refer to python/python.o
+
+2017-11-27  Tom Tromey  <tom@tromey.com>
+
+	* configure: Rebuild.
+	* configure.ac (CONFIG_OBS): Refer to guile/guile.o.
+	* Makefile.in (SUBDIR_GUILE_OBS): Redefine.
+	(CONFIG_SRC_SUBDIR): Add guile.
+	(%.o): Remove guile rule.
+
+2017-11-27  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (SUBDIR_UNITTESTS_OBS): Redefine.
+	(%.o): Remove unittests rule.
+	(CONFIG_SRC_SUBDIR): Add unittests.
+
+2017-11-27  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (SUBDIR_TUI_OBS): Redefine.
+	(CONFIG_SRC_SUBDIR): Add tui.
+	(%.o): Remove tui rule.
+
+2017-11-27  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (SUBDIR_GCC_COMPILE_OBS): Redefine.
+	(%.o): Remove compile rule.
+	(CONFIG_SRC_SUBDIR): Add compile.
+
+2017-11-27  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (SUBDIR_MI_OBS): Redefine.
+	(%.o): Remove mi rule.
+	(CONFIG_SRC_SUBDIR): Add mi.
+	(COMMON_OBS): Use mi/mi-common.o
+
+2017-11-27  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (SUBDIR_CLI_OBS): Redefine.
+	(%.o): Remove cli rule.
+	(CONFIG_SRC_SUBDIR): Add cli.
+
+2017-11-27  Tom Tromey  <tom@tromey.com>
+
+	* configure.ac (CONFIG_SRC_SUBDIR): Don't subst.
+	* configure: Rebuild.
+	* Makefile.in (CONFIG_SRC_SUBDIR): Redefine.
+	(CONFIG_DEP_SUBDIR): New variable.
+	(%.o): Add order-only dependency.
+	($(CONFIG_DEP_SUBDIR)): New target.
+
+2017-11-26  Dominik Czarnota  <dominik.b.czarnota@gmail.com>
+
+	PR gdb/21945
+	* findcmd.c (_initialize_mem_search): Update find command help
+	text.
+
+2017-11-26  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* python/python.c (do_start_initialization): Change progname
+	type to gdb::unique_xmalloc_ptr.  Release the pointer when using
+	Python 2.
+
+2017-11-26  Tom Tromey  <tom@tromey.com>
+
+	* common/format.h: Add include guards.
+
+2017-11-26  Tom Tromey  <tom@tromey.com>
+
+	* nat/linux-personality.h (class
+	maybe_disable_address_space_randomization): New class.
+	(maybe_disable_address_space_randomization): Don't declare
+	function.
+	* nat/linux-personality.c (restore_personality)
+	(make_disable_asr_cleanup): Remove.
+	(maybe_disable_address_space_randomization): Now a constructor.
+	(~maybe_disable_address_space_randomization): New destructor.
+	* linux-nat.c (linux_nat_create_inferior): Update.
+
+2017-11-26  Tom Tromey  <tom@tromey.com>
+
+	* gcore.c (write_gcore_file_1): Use gdb::unique_xmalloc_ptr.
+
+2017-11-26  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* spu-tdep.c (spu_software_single_step): Access SPU_LSLR_REGNUM as
+	"cooked" register.  Access only first four bytes of branch target
+	registers.
+
+2017-11-25  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR gdb/22491
+	* stap-probe.c (relocate_address): New function.
+	(stap_probe::get_relocated_address): Use 'relocate_address'.
+	(stap_probe::set_semaphore): Use 'relocate_address' and pass
+	'm_sem_addr'.
+	(stap_probe::clear_semaphore): Likewise.
+
+2017-11-25  Pedro Alves  <palves@redhat.com>
+
+	* dictionary.c: Include "safe-ctype.h".
+	* minsyms.c: Include "safe-ctype.h".
+	* minsyms.c (SYMBOL_HASH_NEXT): Use TOLOWER instead of tolower.
+
+2017-11-25   Pedro Alves  <palves@redhat.com>
+
+	* completer.c (complete_line_internal_1): Skip spaces until the
+	start of the command.
+
+2017-11-24  Pedro Alves  <palves@redhat.com>
+
+	* cp-support.c (cp_symbol_name_matches_1): New, factored out from
+	cp_fq_symbol_name_matches.  Pass language_cplus to
+	strncmp_with_mode.
+	(cp_fq_symbol_name_matches): Call cp_symbol_name_matches_1.
+	(selftests::test_cp_symbol_name_cmp): New.
+	(_initialize_cp_support): Register "cp_symbol_name_matches"
+	selftests.
+	* language.c (default_symbol_name_matcher): Pass language_minimal
+	to strncmp_iw_with_mode.
+	* utils.c: Include "cp-support.h" and <algorithm>.
+	(valid_identifier_name_char, cp_skip_operator_token, skip_ws)
+	(cp_is_operator): New functions.
+	(strncmp_iw_with_mode): Use them.  Add language parameter.  Don't
+	skip whitespace in the symbol name when the lookup name doesn't
+	have spaces, and vice versa.
+	(strncmp_iw, strcmp_iw): Pass language to strncmp_iw_with_mode.
+	* utils.h (strncmp_iw_with_mode): Add language parameter.
+
+2017-11-24  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.c (ada_exception_message_1, ada_exception_message):
+	New functions.
+	(print_it_exception): If available, display the exception
+	message as well.
+	* NEWS: Document new feature.
+
+2017-11-24  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* configure.nat <spu-linux>: Add fork-inferior.o to NATDEPFILES.
+
+2017-11-24  Philipp Rudo  <prudo@linux.vnet.ibm.com>
+
+	* dtrace-probe.c (dtrace_probe::build_arg_exprs)
+	(dtrace_probe::is_enabled, dtrace_probe::enable)
+	(dtrace_probe::disable): Remove keyword 'struct' at for-range
+	variable
+	* probe.c (gen_ui_out_table_header_info)
+	(print_ui_out_not_applicables):  Remove keyword 'struct' at
+	for-range variable
+
+2017-11-24  Alan Hayward  <alan.hayward@arm.com>
+
+	* configure.tgt: Add arch/aarch64.o
+
+2017-11-24  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* common/common-utils.h: Include poison.h.
+	(xfree): Remove declaration, add definition with static_assert.
+	* common/common-utils.c (xfree): Remove.
+	* common/poison.h (IsMallocatable): Define.
+	(IsFreeable): Define.
+	(free): Delete for non-freeable types.
+	(xnew): New.
+	(XNEW): Undef and redefine.
+	(xcnew): New.
+	(XCNEW): Undef and redefine.
+	(xdelete): New.
+	(XDELETE): Undef and redefine.
+	(xnewvec): New.
+	(XNEWVEC): Undef and redefine.
+	(xcnewvec): New.
+	(XCNEWVEC): Undef and redefine.
+	(xresizevec): New.
+	(XRESIZEVEC): Undef and redefine.
+	(xdeletevec): New.
+	(XDELETEVEC): Undef and redefine.
+	(xnewvar): New.
+	(XNEWVAR): Undef and redefine.
+	(xcnewvar): New.
+	(XCNEWVAR): Undef and redefine.
+	(xresizevar): New.
+	(XRESIZEVAR): Undef and redefine.
+
+2017-11-24  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* gdbthread.h (private_thread_info): Define structure type, add
+	virtual pure destructor.
+	(thread_info) <priv>: Change type to unique_ptr.
+	<private_dtor>: Remove.
+	* thread.c (add_thread_with_info): Adjust to use of unique_ptr.
+	(private_thread_info::~private_thread_info): Provide default
+	implementation.
+	(thread_info::~thread_info): Don't call private_dtor nor
+	manually free priv.
+	* aix-thread.c (private_thread_info): Rename to ...
+	(aix_thread_info): ... this.
+	(get_aix_thread_info): New.
+	(sync_threadlists): Adjust.
+	(iter_tid): Adjust.
+	(aix_thread_resume): Adjust.
+	(aix_thread_fetch_registers): Adjust.
+	(aix_thread_store_registers): Adjust.
+	(aix_thread_extra_thread_info): Adjust.
+	* darwin-nat.h (private_thread_info): Rename to ...
+	(darwin_thread_info): ... this.
+	(get_darwin_thread_info): New.
+	* darwin-nat.c (darwin_init_thread_list): Adjust.
+	(darwin_check_new_threads): Adjust.
+	(thread_info_from_private_thread_info): Adjust.
+	* linux-thread-db.c (private_thread_info): Rename to ...
+	(thread_db_thread_info): ... this, initialize fields.
+	(get_thread_db_thread_info): New.
+	<dying>: Change type to bool.
+	(update_thread_state): Adjust to type rename.
+	(record_thread): Adjust to type rename an use of unique_ptr.
+	(thread_db_pid_to_str): Likewise.
+	(thread_db_extra_thread_info): Likewise.
+	(thread_db_thread_handle_to_thread_info): Likewise.
+	(thread_db_get_thread_local_address): Likewise.
+	* nto-tdep.h (private_thread_info): Rename to ...
+	(nto_thread_info): ... this, initialize fields.
+	(get_nto_thread_info): New.
+	<name>: Change type to std::string.
+	* nto-tdep.c (nto_extra_thread_info): Adjust to type rename and
+	use of unique_ptr.
+	* nto-procfs.c (update_thread_private_data_name): Adjust to
+	std::string change, allocate nto_private_thread_info with new.
+	(update_thread_private_data): Adjust to unique_ptr.
+	* remote.c (private_thread_info): Rename to ...
+	(remote_thread_info): ... this, initialize data members with
+	default values.
+	<extra, name>: Change type to std::string.
+	<thread_handle>: Change type to non-pointer.
+	(free_private_thread_info): Remove.
+	(get_private_info_thread): Rename to...
+	(get_remote_thread_info): ... this, change return type, adjust to
+	use of unique_ptr, use remote_thread_info constructor.
+	(remote_add_thread): Adjust.
+	(get_private_info_ptid): Rename to...
+	(get_remote_thread_info): ...this, change return type.
+	(remote_thread_name): Use get_remote_thread_info, adjust to
+	change to std::string.
+	(struct thread_item) <~thread_item>: Remove.
+	<thread_handle>: Make non pointer.
+	(start_thread): Adjust to thread_item::thread_handle type
+	change.
+	(remote_update_thread_list): Adjust to type name change, move
+	strings from temporary to long-lived object instead of
+	duplicating.
+	(remote_threads_extra_info): Use get_remote_thread_info.
+	(process_initial_stop_replies): Likewise.
+	(resume_clear_thread_private_info): Likewise.
+	(remote_resume): Adjust to type name change.
+	(remote_commit_resume): Use get_remote_thread_info.
+	(process_stop_reply): Adjust to type name change.
+	(remote_stopped_by_sw_breakpoint): Use get_remote_thread_info.
+	(remote_stopped_by_hw_breakpoint): Likewise.
+	(remote_stopped_by_watchpoint): Likewise.
+	(remote_stopped_data_address): Likewise.
+	(remote_core_of_thread): Likewise.
+	(remote_thread_handle_to_thread_info): Use
+	get_private_info_thread, adjust to thread_handle field type
+	change.
+
+2017-11-24  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* remote.c (struct thread_item): Add constructor, disable copy
+	construction and copy assignment, define default move
+	construction and move assignment.
+	<extra, name>: Change type to std::string.
+	<core>: Initialize.
+	<thread_handle>: Make non-pointer.
+	(thread_item_t): Remove typedef.
+	(DEF_VEC_O(thread_item_t)): Remove.
+	(threads_listing_context) <contains_thread>: New method.
+	<remove_thread>: New method.
+	<items>: Change type to std::vector.
+	(clear_threads_listing_context): Remove.
+	(threads_listing_context_remove): Remove.
+	(remote_newthread_step): Use thread_item constructor, adjust to
+	change to std::vector.
+	(start_thread): Use thread_item constructor, adjust to change to
+	std::vector.
+	(end_thread): Adjust to change to std::vector and std::string.
+	(remote_get_threads_with_qthreadinfo): Use thread_item
+	constructor, adjust to std::vector.
+	(remote_update_thread_list): Adjust to change to std::vector and
+	std::string, use threads_listing_context methods.
+	(remove_child_of_pending_fork): Adjust.
+	(remove_new_fork_children): Adjust.
+	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add rsp-low-selftests.c.
+	(SUBDIR_UNITTESTS_OBS): Add rsp-low-selftests.o.
+	* unittests/rsp-low-selftests.c: New file.
+	* common/rsp-low.h: Include common/byte-vector.h.
+	(hex2bin): New overload.
+	* common/rsp-low.c (hex2bin): New overload.
+
+2017-11-24  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* inferior.h (private_inferior): Define structure type, add
+	virtual pure destructor.
+	(inferior) <priv>: Change type to unique_ptr.
+	* inferior.c (private_inferior::~private_inferior): Provide
+	default implementation.
+	(inferior::~inferior): Don't free priv field.
+	(exit_inferior_1): Likewise.
+	* darwin-nat.h (struct darwin_exception_info): Initialize fields.
+	(darwin_exception_info): Remove typedef.
+	(DEF_VEC_O (darwin_thread_t)); Remove.
+	(private_inferior): Rename to ...
+	(darwin_private_inferior): ... this, extend private_inferior.
+	(get_darwin_inferior): New.
+	<threads>: Change type to std::vector of darwin_thread_t pointers.
+	* darwin-nat.c (darwin_check_new_threads): Adjust.
+	(find_inferior_task_it): Adjust.
+	(darwin_find_thread); Adjust.
+	(darwin_suspend_inferior): Adjust.
+	(darwin_resume_inferior): Adjust.
+	(darwin_find_new_inferior): Adjust.
+	(darwin_decode_notify_message): Adjust.
+	(darwin_send_reply): Adjust.
+	(darwin_resume_inferior_threads): Adjust.
+	(darwin_suspend_inferior_threads): Adjust.
+	(darwin_decode_message): Adjust.
+	(darwin_wait): Adjust.
+	(darwin_interrupt): Adjust.
+	(darwin_deallocate_threads): Adjust.
+	(darwin_mourn_inferior): Adjust, don't free private data.
+	(darwin_reply_to_all_pending_messages): Adjust.
+	(darwin_stop_inferior): Adjust.
+	(darwin_setup_exceptions): Adjust.
+	(darwin_kill_inferior): Adjust.
+	(darwin_setup_request_notification): Adjust.
+	(darwin_attach_pid): Adjust.
+	(darwin_init_thread_list): Adjust.
+	(darwin_setup_fake_stop_event): Adjust.
+	(darwin_attach): Adjust.
+	(darwin_detach): Adjust.
+	(darwin_xfer_partial): Adjust.
+	(set_enable_mach_exceptions): Adjust.
+	(darwin_pid_to_exec_file): Adjust.
+	(darwin_get_ada_task_ptid): Adjust.
+	* darwin-nat-info.c (get_task_from_args): Adjust.
+	(info_mach_ports_command): Adjust.
+	(info_mach_region_command): Adjust.
+	(info_mach_exceptions_command): Adjust.
+	* remote.c (private_inferior): Rename to ...
+	(remote_private_inferior): ... this, initialize fields.
+	(get_remote_inferior); New.
+	(remote_commit_resume): Use get_remote_inferior.
+	(check_pending_event_prevents_wildcard_vcont_callback): Likewise.
+
+2017-11-24  Pedro Alves  <palves@redhat.com>
+
+	* NEWS: Mention linespecs and explicit locations, and completion
+	improvements.
+
+2017-11-24  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c (regcache::dump): Remove footnote_register_size.
+
+2017-11-24  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c (cooked_read_test): Add more test for readonly
+	regcache.
+
+2017-11-24  Yao Qi  <yao.qi@linaro.org>
+
+	* gdbarch-selftests.c (test_target_has_registers): Move it to
+	target.c.
+	(test_target_has_stack): Likewise.
+	(test_target_has_memory): Likewise.
+	(test_target_prepare_to_store): Likewise.
+	(test_target_store_registers): Likewise.
+	(test_target_ops): Likewise.
+	* regcache.c: Include selftest-arch.h and gdbthread.h.
+	(target_ops_no_register): New class.
+	(test_target_fetch_registers): New.
+	(test_target_store_registers): New.
+	(test_target_xfer_partial): New.
+	(readwrite_regcache): New.
+	(cooked_read_test): New.
+	(_initialize_regcache): Register the test.
+	* target.c: (test_target_has_registers): Moved from
+	gdbarch-selftests.c.
+	(test_target_has_stack): Likewise.
+	(test_target_has_memory): Likewise.
+	(test_target_prepare_to_store): Likewise.
+	(test_target_store_registers): Likewise.
+	* target.h (test_target_ops): New class.
+
+2017-11-24  Alan Hayward  <alan.hayward@arm.com>
+
+	* aarch64-tdep.c (_initialize_aarch64_tdep): Add target desc
+	selftest.
+
+2017-11-24  Alan Hayward  <alan.hayward@arm.com>
+
+	* aarch64-tdep.c (_initialize_aarch64_tdep): Remove init.
+	* arch/aarch64.c (aarch64_create_target_description): Create
+	new target description.
+	* features/Makefile: Add new files.
+	* features/aarch64.c: Remove file.
+	* features/aarch64-core.c: New autogenerated file.
+	* features/aarch64-fpu.c: New autogenerated file.
+	* target-descriptions.c (maint_print_c_tdesc_cmd): Check for aarch64.
+
+2017-11-24  Alan Hayward  <alan.hayward@arm.com>
+
+	* Makefile.in: Add new files.
+	* aarch64-linux-nat.c (aarch64_linux_read_description): Call
+	aarch64_read_description.
+	* aarch64-linux-tdep.c (aarch64_linux_core_read_description):
+	Call aarch64_read_description.
+	* aarch64-tdep.c (aarch64_read_description): New function.
+	(aarch64_gdbarch_init): Call aarch64_read_description.
+	* aarch64-tdep.h (aarch64_read_description): New function.
+	* arch/aarch64.c: New file.
+	* configure.tgt: Add new files.
+
+2017-11-24  Yao Qi  <yao.qi@linaro.org>
+
+	* mi/mi-main.c (register_changed_p): Update.
+	* value.c (value_contents_bits_eq): Change return type.
+	(value_contents_eq): Likewise.
+	* value.h: Update comments.
+
+2017-11-24  Yao Qi  <yao.qi@linaro.org>
+
+	* mi/mi-main.c (mi_cmd_data_list_changed_registers): Remove
+	local 'changed'.  Remove error.
+	(register_changed_p): Change return type to bool.
+
+2017-11-24  Yao Qi  <yao.qi@linaro.org>
+
+	* arch/tic6x.c: New file.
+	* arch/tic6x.h: New file.
+	* features/Makefile (FEATURE_XMLFILES): Add tic6x-c6xp.xml,
+	tic6x-core.xml and tic6x-gp.xml.
+	* features/tic6x-c6xp.c: Generated.
+	* features/tic6x-core.c: Generated.
+	* features/tic6x-gp.c: Generated.
+	* target-descriptions.c (maint_print_c_tdesc_cmd): Match
+	"tic6x-".
+
+2017-11-23  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* mi/mi-main.c (list_available_thread_groups): Change map value
+	type to std::vector.
+
+2017-11-23  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* osdata.c (osdata_end_column, get_osdata): Remove std::move.
+
+2017-11-23  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* varobj.c (struct varobj_dynamic) <children_requested_>: Rename
+	back to...
+	<children_requested>: ... this.
+	(varobj_get_num_children, varobj_update): Adjust.
+
+2017-11-23  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* ada-varobj.c (ada_value_is_changeable_p): Change int to bool where applicable.
+	(ada_value_has_mutated): Likewise.
+	* c-varobj.c (varobj_is_anonymous_child): Likewise.
+	(c_is_path_expr_parent): Likewise.
+	* mi/mi-cmd-var.c (varobj_update_one): Likewise.
+	(mi_cmd_var_set_frozen): Likewise.
+	(mi_cmd_var_update_iter): Likewise.
+	(mi_cmd_var_update): Likewise.
+	* varobj.c (pretty_printing): Likewise.
+	(varobj_enable_pretty_printing): Likewise.
+	(struct varobj_root) <floating, is_valid>: Likewise.
+	(struct varobj_dynamic) <children_requested>: Likewise.
+	(delete_variable): Likewise.
+	(delete_variable_1): Likewise.
+	(install_variable): Likewise.
+	(update_type_if_necessary): Likewise.
+	(install_new_value): Likewise.
+	(value_of_root): Likewise.
+	(is_root_p): Likewise.
+	(varobj_create): Likewise.
+	(varobj_delete): Likewise.
+	(varobj_has_more): Likewise.
+	(varobj_set_frozen): Likewise.
+	(varobj_get_frozen): Likewise.
+	(install_dynamic_child): Likewise.
+	(dynamic_varobj_has_child_method): Likewise.
+	(update_dynamic_varobj_children): Likewise.
+	(varobj_get_num_children): Likewise.
+	(varobj_list_children): Likewise.
+	(is_path_expr_parent): Likewise.
+	(varobj_default_is_path_expr_parent): Likewise.
+	(varobj_is_dynamic_p): Likewise.
+	(varobj_set_value): Likewise.
+	(varobj_value_has_mutated): Likewise.
+	(varobj_update): Likewise.
+	(check_scope): Likewise.
+	(value_of_root_1): Likewise.
+	(varobj_value_get_print_value): Likewise.
+	(varobj_editable_p): Likewise.
+	(varobj_value_is_changeable_p): Likewise.
+	(varobj_floating_p): Likewise.
+	(varobj_default_value_is_changeable_p): Likewise.
+	(varobj_invalidate_iter): Likewise.
+	* varobj.h (struct varobj_update_result) <type_changed,
+	children_changed, changed, value_installed>: Likewise.
+	(struct varobj) <updated, frozen, not_fetched>: Likewise.
+	(struct lang_varobj_ops) <value_is_changeable_p,
+	value_has_mutated, is_path_expr_parent>: Likewise.
+	(varobj_delete): Likewise.
+	(varobj_set_frozen): Likewise.
+	(varobj_get_frozen): Likewise.
+	(varobj_set_value): Likewise.
+	(varobj_update): Likewise.
+	(varobj_editable_p): Likewise.
+	(varobj_floating_p): Likewise.
+	(varobj_has_more): Likewise.
+	(varobj_is_dynamic_p): Likewise.
+	(varobj_default_value_is_changeable_p): Likewise.
+	(varobj_value_is_changeable_p): Likewise.
+	(varobj_is_anonymous_child): Likewise.
+	(varobj_default_is_path_expr_parent): Likewise.
+
+2017-11-22  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* dtrace-probe.c (struct probe_ops dtrace_probe_ops): Delete.
+	(struct dtrace_probe_arg) <dtrace_probe_arg>: New constructor.
+	<type_str>: Convert to 'std::string'.
+	<expr>: Convert to 'expression_up'.
+	(dtrace_probe_arg_s): Delete type and VEC.
+	(dtrace_probe_enabler_s): Likewise.
+	(struct dtrace_probe): Replace by...
+	(class dtrace_static_probe_ops): ...this and...
+	(class dtrace_probe): ...this.
+	(dtrace_probe_is_linespec): Rename to...
+	(dtrace_static_probe_ops::is_linespec): ...this.  Adjust code
+	to reflect change.
+	(dtrace_process_dof_probe): Use 'std::vector' instead of VEC.
+	Adjust code.  Create new instance of 'dtrace_probe'.
+	(dtrace_build_arg_exprs): Rename to...
+	(dtrace_probe::build_arg_exprs): ...this.  Adjust code to
+	reflect change.
+	(dtrace_get_probes): Rename to...
+	(dtrace_static_probe_ops::get_probes): ...this.  Adjust code
+	to reflect change.
+	(dtrace_get_arg): Rename to...
+	(dtrace_probe::get_arg_by_number): ...this.  Adjust code to
+	reflect change.
+	(dtrace_probe_is_enabled): Rename to...
+	(dtrace_probe::is_enabled): ...this.  Adjust code to reflect
+	change.
+	(dtrace_get_probe_address): Rename to...
+	(dtrace_probe::get_relocated_address): ...this.  Adjust code
+	to reflect change.
+	(dtrace_get_probe_argument_count): Rename to...
+	(dtrace_probe::get_argument_count): ...this.  Adjust code to
+	reflect change.
+	(dtrace_can_evaluate_probe_arguments): Rename to...
+	(dtrace_probe::can_evaluate_arguments): ...this.  Adjust code
+	to reflect change.
+	(dtrace_evaluate_probe_argument): Rename to...
+	(dtrace_probe::evaluate_argument): ...this.  Adjust code to
+	reflect change.
+	(dtrace_compile_to_ax): Rename to...
+	(dtrace_probe::compile_to_ax): ...this.  Adjust code to
+	reflect change.
+	(dtrace_probe_destroy): Delete.
+	(dtrace_type_name): Rename to...
+	(dtrace_static_probe_ops::type_name): ...this.  Adjust code to
+	reflect change.
+	(dtrace_probe::get_static_ops): New method.
+	(dtrace_gen_info_probes_table_header): Rename to...
+	(dtrace_static_probe_ops::gen_info_probes_table_header):
+	...this.  Adjust code to reflect change.
+	(dtrace_gen_info_probes_table_values): Rename to...
+	(dtrace_probe::gen_info_probes_table_values): ...this.  Adjust
+	code to reflect change.
+	(dtrace_enable_probe): Rename to...
+	(dtrace_probe::enable_probe): ...this.  Adjust code to reflect
+	change.
+	(dtrace_disable_probe): Rename to...
+	(dtrace_probe::disable_probe): ...this.  Adjust code to reflect
+	change.
+	(struct probe_ops dtrace_probe_ops): Delete.
+	(info_probes_dtrace_command): Call 'info_probes_for_spops'
+	instead of 'info_probes_for_ops'.
+	(_initialize_dtrace_probe): Use 'all_static_probe_ops' instead
+	of 'all_probe_ops'.
+
+2017-11-22  Sergio Durigan Junior  <sergiodj@redhat.com>
+	    Simon Marchi  <simark@simark.ca>
+
+	* stap-probe.c (struct probe_ops stap_probe_ops): Delete
+	variable.
+	(struct stap_probe_arg) <stap_probe_arg>: New constructor.
+	<aexpr>: Change type to 'expression_up'.
+	(stap_probe_arg_s): Delete type and VEC.
+	(struct stap_probe): Delete.  Replace by...
+	(class stap_static_probe_ops): ...this and...
+	(class stap_probe): ...this.  Rename variables to add 'm_'
+	prefix.  Do not use 'union' for arguments anymore.
+	(stap_get_expected_argument_type): Receive probe name instead
+	of 'struct stap_probe'.  Adjust code.
+	(stap_parse_probe_arguments): Rename to...
+	(stap_probe::parse_arguments): ...this.  Adjust code to
+	reflect change.
+	(stap_get_probe_address): Rename to...
+	(stap_probe::get_relocated_address): ...this.  Adjust code
+	to reflect change.
+	(stap_get_probe_argument_count): Rename to...
+	(stap_probe::get_argument_count): ...this.  Adjust code
+	to reflect change.
+	(stap_get_arg): Rename to...
+	(stap_probe::get_arg_by_number'): ...this. Adjust code to
+	reflect change.
+	(can_evaluate_probe_arguments): Rename to...
+	(stap_probe::can_evaluate_arguments): ...this.  Adjust code
+	to reflect change.
+	(stap_evaluate_probe_argument): Rename to...
+	(stap_probe::evaluate_argument): ...this.  Adjust code
+	to reflect change.
+	(stap_compile_to_ax): Rename to...
+	(stap_probe::compile_to_ax): ...this.  Adjust code to
+	reflect change.
+	(stap_probe_destroy): Delete.
+	(stap_modify_semaphore): Adjust comment.
+	(stap_set_semaphore): Rename to...
+	(stap_probe::set_semaphore): ...this.  Adjust code to reflect
+	change.
+	(stap_clear_semaphore): Rename to...
+	(stap_probe::clear_semaphore): ...this.  Adjust code to
+	reflect	change.
+	(stap_probe::get_static_ops): New method.
+	(handle_stap_probe): Adjust code to create instance of
+	'stap_probe'.
+	(stap_get_probes): Rename to...
+	(stap_static_probe_ops::get_probes): ...this.  Adjust code to
+	reflect change.
+	(stap_probe_is_linespec): Rename to...
+	(stap_static_probe_ops::is_linespec): ...this.  Adjust code to
+	reflect change.
+	(stap_type_name): Rename to...
+	(stap_static_probe_ops::type_name): ...this.  Adjust code to
+	reflect change.
+	(stap_gen_info_probes_table_header): Rename to...
+	(stap_static_probe_ops::gen_info_probes_table_header):
+	...this.  Adjust code to reflect change.
+	(stap_gen_info_probes_table_values): Rename to...
+	(stap_probe::gen_info_probes_table_values): ...this.  Adjust
+	code to reflect change.
+	(struct probe_ops stap_probe_ops): Delete.
+	(info_probes_stap_command): Use 'info_probes_for_spops'
+	instead of 'info_probes_for_ops'.
+	(_initialize_stap_probe): Use 'all_static_probe_ops' instead
+	of 'all_probe_ops'.
+
+2017-11-22  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* break-catch-throw.c (fetch_probe_arguments): Use
+	'probe.prob' instead of 'probe.probe'.
+	* breakpoint.c (create_longjmp_master_breakpoint): Call
+	'can_evaluate_arguments' and 'get_relocated_address' methods
+	from probe.
+	(create_exception_master_breakpoint): Likewise.
+	(add_location_to_breakpoint): Use 'sal->prob' instead of
+	'sal->probe'.
+	(bkpt_probe_insert_location): Call 'set_semaphore' method from
+	probe.
+	(bkpt_probe_remove_location): Likewise, for 'clear_semaphore'.
+	* elfread.c (elf_get_probes): Use 'static_probe_ops' instead
+	of 'probe_ops'.
+	(probe_key_free): Call 'delete' on probe.
+	(check_exception_resume): Use 'probe.prob' instead of
+	'probe.probe'.
+	* location.c (string_to_event_location_basic): Call
+	'probe_linespec_to_static_ops'.
+	* probe.c (class any_static_probe_ops): New class.
+	(any_static_probe_ops any_static_probe_ops): New variable.
+	(parse_probes_in_pspace): Receive 'static_probe_ops' as
+	argument.  Adjust code to reflect change.
+	(parse_probes): Use 'static_probe_ops' instead of
+	'probe_ops'.  Adjust code to reflect change.
+	(find_probes_in_objfile): Call methods to get name and
+	provider from probe.
+	(find_probe_by_pc): Use 'result.prob' instead of
+	'result.probe'.  Call 'get_relocated_address' method from
+	probe.
+	(collect_probes): Adjust comment and argument list to receive
+	'static_probe_ops' instead of 'probe_ops'.  Adjust code to
+	reflect change.  Call necessary methods from probe.
+	(compare_probes): Call methods to get name and provider from
+	probes.
+	(gen_ui_out_table_header_info): Receive 'static_probe_ops'
+	instead of 'probe_ops'.  Use 'std::vector' instead of VEC,
+	adjust code accordingly.
+	(print_ui_out_not_applicables): Likewise.
+	(info_probes_for_ops): Rename to...
+	(info_probes_for_spops): ...this.  Receive 'static_probe_ops'
+	as argument instead of 'probe_ops'.  Adjust code.  Call
+	necessary methods from probe.
+	(info_probes_command): Use 'info_probes_for_spops'.
+	(enable_probes_command): Pass correct argument to
+	'collect_probes'.  Call methods from probe.
+	(disable_probes_command): Likewise.
+	(get_probe_address): Move to 'any_static_probe_ops::get_address'.
+	(get_probe_argument_count): Move to
+	'any_static_probe_ops::get_argument_count'.
+	(can_evaluate_probe_arguments): Move to
+	'any_static_probe_ops::can_evaluate_arguments'.
+	(evaluate_probe_argument): Move to
+	'any_static_probe_ops::evaluate_argument'.
+	(probe_safe_evaluate_at_pc): Use 'probe.prob' instead of
+	'probe.probe'.
+	(probe_linespec_to_ops): Rename to...
+	(probe_linespec_to_static_ops): ...this.  Adjust code.
+	(probe_any_is_linespec): Rename to...
+	(any_static_probe_ops::is_linespec): ...this.
+	(probe_any_get_probes): Rename to...
+	(any_static_probe_ops::get_probes): ...this.
+	(any_static_probe_ops::type_name): New method.
+	(any_static_probe_ops::gen_info_probes_table_header): New
+	method.
+	(compute_probe_arg): Use 'pc_probe.prob' instead of
+	'pc_probe.probe'.  Call methods from probe.
+	(compile_probe_arg): Likewise.
+	(std::vector<const probe_ops *> all_probe_ops): Delete.
+	(std::vector<const static_probe_ops *> all_static_probe_ops):
+	New variable.
+	(_initialize_probe): Use 'all_static_probe_ops' instead of
+	'all_probe_ops'.
+	* probe.h (struct info_probe_column) <field_name>: Delete
+	extraneous newline
+	(info_probe_column_s): Delete type and VEC.
+	(struct probe_ops): Delete.  Replace with...
+	(class static_probe_ops): ...this and...
+	(clas probe): ...this.
+	(struct bound_probe) <bound_probe>: Delete extraneous
+	newline.  Adjust constructor to receive 'probe' instead of
+	'struct probe'.
+	<probe>: Rename to...
+	<prob>: ...this.  Delete extraneous newline.
+	<objfile>: Delete extraneous newline.
+	(register_probe_ops): Delete unused prototype.
+	(info_probes_for_ops): Rename to...
+	(info_probes_for_spops): ...this.  Adjust comment.
+	(get_probe_address): Move to 'probe::get_address'.
+	(get_probe_argument_count): Move to
+	'probe::get_argument_count'.
+	(can_evaluate_probe_arguments): Move to
+	'probe::can_evaluate_arguments'.
+	(evaluate_probe_argument): Move to 'probe::evaluate_argument'.
+	* solib-svr4.c (struct svr4_info): Adjust comment.
+	(struct probe_and_action) <probe>: Rename to...
+	<prob>: ...this.
+	(register_solib_event_probe): Receive 'probe' instead of
+	'struct probe' as argument.  Use 'prob' instead of 'probe'
+	when applicable.
+	(solib_event_probe_action): Call 'get_argument_count' method
+	from probe.  Adjust comment.
+	(svr4_handle_solib_event): Adjust comment.  Call
+	'evaluate_argument' method from probe.
+	(svr4_create_probe_breakpoints): Call 'get_relocated_address'
+	from probe.
+	(svr4_create_solib_event_breakpoints): Use 'probe' instead of
+	'struct probe'.  Call 'can_evaluate_arguments' from probe.
+	* symfile.h: Forward declare 'class probe' instead of 'struct
+	probe'.
+	* symtab.h: Likewise.
+	(struct symtab_and_line) <probe>: Rename to...
+	<prob>: ...this.
+	* tracepoint.c (start_tracing): Use 'prob' when applicable.
+	Call probe methods.
+	(stop_tracing): Likewise.
+
+2017-11-22  Joel Brobecker  <brobecker@adacore.com>
+
+	* ravenscar-thread.c (ravenscar_inferior_created): Remove
+	trailing newline at end of string in call to warning.
+
+2017-11-22  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* osdata.h: Include vector isntead of vec.h.
+	(osdata_column_s): Remove typedef.
+	(struct osdata_column): Add constructor.
+	<name, value>: Change type to std::string.
+	(DEF_VEC_O (osdata_column_s)): Remove.
+	(osdata_item_s): Remove typedef.
+	(struct osdata_item) <columns>: Change type to std::vector.
+	(DEF_VEC_O (osdata_item_s)): Remove.
+	(struct osdata): Add constructor.
+	<type>: Change type to std::string.
+	<items>: Change type to std::vector.
+	(osdata_p): Remove typedef.
+	(DEF_VEC_P (osdata_p)): Remove.
+	(osdata_parse): Return a unique_ptr.
+	(osdata_free): Remove.
+	(make_cleanup_osdata_free): Remove.
+	(get_osdata): Return a unique_ptr.
+	(get_osdata_column): Return pointer to std::string, take a
+	reference to osdata_item as parameter.
+	* osdata.c (struct osdata_parsing_data) <osdata>: Change type to
+	unique_ptr.
+	<property_name>: Change type to std::string.
+	(osdata_start_osdata): Allocate osdata with new and adjust.
+	(osdata_start_item): Adjust.
+	(osdata_start_column): Adjust.
+	(osdata_end_column): Adjust.
+	(clear_parsing_data): Remove.
+	(osdata_parse): Return a unique_ptr and adjust, remove cleanup.
+	(osdata_item_clear): Remove.
+	(get_osdata): return a unique_ptr and adjust.
+	(get_osdata_column): Return a pointer to std::string and adjust.
+	(info_osdata): Adjust.
+	* mi/mi-main.c: Include <map>.
+	(free_vector_of_osdata_items): Remove.
+	(list_available_thread_groups): Adjust, use std::map instead of
+	splay tree.
+
+2017-11-22  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* stack.c (iterate_over_block_locals): Add LOC_OPTIMIZED_OUT
+	case in switch.
+
+2017-11-22  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* varobj.h (DEF_VEC_P (varobj_p)): Remove.
+
+2017-11-22  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* varobj.h (struct varobj_update_result): Add constructor, add
+	move constructor, disable copy and assign, initialize fields.
+	<newobj>: Change type to std::vector.
+	(varobj_update): Return std::vector.
+	* varobj.c (install_dynamic_child): Change VEC parameters to
+	std::vector and adjust.
+	(update_dynamic_varobj_children): Likewise.
+	(varobj_update): Return std::vector and adjust.
+	* mi/mi-cmd-var.c (varobj_update_one): Adjust to vector changes.
+
+2017-11-22  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* varobj.h (struct varobj) <parent>: Remove const.
+	<children>: Change type to std::vector.
+	(varobj_list_children): Return std::vector const reference.
+	(varobj_restrict_range): Change parameter type to std::vector
+	const reference.
+	* varobj.c (varobj_has_more): Adjust.
+	(varobj_restrict_range): Change parameter type to std::vector
+	const reference and adjust.
+	(install_dynamic_child): Adjust.
+	(update_dynamic_varobj_children): Adjust.
+	(varobj_list_children): Return std::vector const reference and
+	adjust.
+	(varobj_add_child): Adjust.
+	(update_type_if_necessary): Adjust.
+	(varobj_update): Adjust.
+	(delete_variable_1): Adjust.
+	* ada-varobj.c (ada_value_has_mutated): Adjust.
+	* mi/mi-cmd-var.c (mi_cmd_var_list_children): Adjust.
+
+2017-11-22  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* varobj.h (struct varobj): Add constructor and destructor,
+	initialize fields.
+	* varobj.c (struct varobj_root): Initialize fields.
+	(struct varobj_dynamic): Initialize fields.
+	(varobj_create): Use unique_ptr instead of cleanup.  Create
+	varobj with new instead of new_root_variable.
+	(delete_variable_1): Free variable with delete instead of
+	free_variable.
+	(create_child_with_value): Create variable with new instead of
+	new_variable.
+	(varobj::varobj): New.
+	(varobj::~varobj): New (body mostly coming from free_variable).
+	(new_variable): Remove.
+	(free_variable): Remove.
+	(do_free_variable_cleanup): Remove.
+	(make_cleanup_free_variable): Remove.
+
+2017-11-22  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* core-regset.c: Remove file.
+	* Makefile.in (ALLDEPFILES): Remove core-regset.c.
+
+2017-11-22  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* NEWS: Document use of GNU MPFR.
+	* README: Likewise.
+
+	* Makefile.in (LIBMPFR): Add define.
+	(CLIBS): Add $(LIBMPFR).
+	* configure.ac: Add --with-mpfr configure option.
+	* configure: Regenerate.
+	* config.in: Regenerate.
+
+	* target-float.c [HAVE_LIBMPFR]: Include <mpfr.h>.
+	(class mpfr_float_ops): New type.
+	(mpfr_float_ops::from_target): Two new overloaded functions.
+	(mpfr_float_ops::to_target): Likewise.
+	(mpfr_float_ops::to_string): New function.
+	(mpfr_float_ops::from_string): Likewise.
+	(mpfr_float_ops::to_longest): Likewise.
+	(mpfr_float_ops::from_longest): Likewise.
+	(mpfr_float_ops::from_ulongest): Likewise.
+	(mpfr_float_ops::to_host_double): Likewise.
+	(mpfr_float_ops::from_host_double): Likewise.
+	(mpfr_float_ops::convert): Likewise.
+	(mpfr_float_ops::binop): Likewise.
+	(mpfr_float_ops::compare): Likewise.
+	(get_target_float_ops): Use mpfr_float_ops if available.
+
+2017-11-22  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* target-float.c: Do not include <math.h>.
+	Include <cmath> and <limits>.
+	(DOUBLEST): Do not define.
+	(class target_float_ops): New type.
+	(class host_float_ops): New templated type.
+	(class decimal_float_ops): New type.
+
+	(floatformat_to_doublest): Rename to ...
+	(host_float_ops<T>::from_target): ... this.  Use template type T
+	instead of DOUBLEST.  Use C++ math routines.  Update recursive calls.
+	(host_float_ops<T>::from_target): New overload using a type argument.
+	(floatformat_from_doublest): Rename to ...
+	(host_float_ops<T>::to_target): ... this.  Use template type T
+	instead of DOUBLEST.  Use C++ math routines.  Update recursive calls.
+	(host_float_ops<T>::to_target): New overload using a type argument.
+	(floatformat_printf_format): New function.
+	(struct printf_length_modifier): New templated type.
+	(floatformat_to_string): Rename to ...
+	(host_float_ops<T>::to_string): ... this.  Use type instead of
+	floatformat argument.  Use floatformat_printf_format and
+	printf_length_modifier.  Remove special handling of invalid numbers,
+	infinities and NaN (moved to target_float_to_string).
+	(struct scanf_length_modifier): New templated type.
+	(floatformat_from_string): Rename to ...
+	(host_float_ops<T>::from_string): ... this.  Use type instead of
+	floatformat argument.  Use scanf_length_modifier.
+	(floatformat_to_longest): Rename to ...
+	(host_float_ops<T>::to_longest): ... this.  Use type instead of
+	floatformat argument.  Handle out-of-range values deterministically.
+	(floatformat_from_longest): Rename to ...
+	(host_float_ops<T>::from_longest): ... this.  Use type instead of
+	floatformat argument.
+	(floatformat_from_ulongest): Rename to ...
+	(host_float_ops<T>::from_ulongest): ... this.  Use type instead of
+	floatformat argument.
+	(floatformat_to_host_double): Rename to ...
+	(host_float_ops<T>::to_host_double): ... this.  Use type instead of
+	floatformat argument.
+	(floatformat_from_host_double): Rename to ...
+	(host_float_ops<T>::from_host_double): ... this.  Use type instead of
+	floatformat argument.
+	(floatformat_convert): Rename to ...
+	(host_float_ops<T>::convert): ... this.  Use type instead of
+	floatformat arguments.  Remove handling of no-op conversions.
+	(floatformat_binop): Rename to ...
+	(host_float_ops<T>::binop): ... this.  Use type instead of
+	floatformat arguments.
+	(floatformat_compare): Rename to ...
+	(host_float_ops<T>::compare): ... this.  Use type instead of
+	floatformat arguments.
+
+	(match_endianness): Use type instead of length/byte_order arguments.
+	(set_decnumber_context): Likewise.
+	(decimal_from_number): Likewise.  Update calls.
+	(decimal_to_number): Likewise.
+	(decimal_is_zero): Likewise.  Update calls.  Move to earlier in file.
+	(decimal_float_ops::to_host_double): New dummy function.
+	(decimal_float_ops::from_host_double): Likewise.
+	(decimal_to_string): Rename to ...
+	(decimal_float_ops::to_string): ... this.  Use type instead of
+	length/byte_order arguments.  Update calls.
+	(decimal_from_string): Rename to ...
+	(decimal_float_ops::from_string): ... this.  Use type instead of
+	length/byte_order arguments.  Update calls.
+	(decimal_from_longest): Rename to ...
+	(decimal_float_ops::from_longest): ... this.  Use type instead of
+	length/byte_order arguments.  Update calls.
+	(decimal_from_ulongest): Rename to ...
+	(decimal_float_ops::from_ulongest): ... this.  Use type instead of
+	length/byte_order arguments.  Update calls.
+	(decimal_to_longest): Rename to ...
+	(decimal_float_ops::to_longest): ... this.  Use type instead of
+	length/byte_order arguments.  Update calls.
+	(decimal_binop): Rename to ...
+	(decimal_float_ops::binop): ... this.  Use type instead of
+	length/byte_order arguments.  Update calls.
+	(decimal_compare): Rename to ...
+	(decimal_float_ops::compare): ... this.  Use type instead of
+	length/byte_order arguments.  Update calls.
+	(decimal_convert): Rename to ...
+	(decimal_float_ops::convert): ... this.  Use type instead of
+	length/byte_order arguments.  Update calls.
+
+	(target_float_same_category_p): New function.
+	(target_float_same_format_p): Likewise.
+	(target_float_format_length): Likewise.
+	(enum target_float_ops_kind): New type.
+	(get_target_float_ops_kind): New function.
+	(get_target_float_ops): Three new overloaded functions.
+
+	(target_float_is_zero): Update call.
+	(target_float_to_string): Add special handling of invalid numbers,
+	infinities and NaN (moved from floatformat_to_string).  Use
+	target_float_ops callback.
+	(target_float_from_string): Use target_float_ops callback.
+	(target_float_to_longest): Likewise.
+	(target_float_from_longest): Likewise.
+	(target_float_from_ulongest): Likewise.
+	(target_float_to_host_double): Likewise.
+	(target_float_from_host_double): Likewise.
+	(target_float_convert): Add special case for no-op conversions.
+	Use target_float_ops callback.
+	(target_float_binop): Use target_float_ops callback.
+	(target_float_compare): Likewise.
+
+2017-11-22  Yao Qi  <yao.qi@linaro.org>
+
+	* python/py-gdb-readline.c (gdbpy_readline_wrapper): Use strcpy.
+
+2017-11-22  Yao Qi  <yao.qi@linaro.org>
+
+	* cli/cli-decode.c (help_list): Use memcpy instead of strncpy.
+	* cp-namespace.c (cp_lookup_transparent_type_loop): Likewise.
+
+2017-11-21  Jerome Guitton  <guitton@adacore.com>
+
+	* ravenscar-thread.c (ravenscar_wait): Update inferior ptid
+	with event ptid from the lower layer before doing the
+	ravenscar-specific update.
+
+2017-11-21  Joel Brobecker  <brobecker@adacore.com>
+
+	* ravenscar-thread.c (is_ravenscar_task): Also verify that
+	the ptid's TID is nonzero.
+
+2017-11-21  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.h (ada_get_tcb_types_info): Add declaration.
+	* ada-tasks.c (ada_get_tcb_types_info): Renames get_tcb_types_info.
+	Make non-static.  Change return type to char *.  Adjust code
+	accordingly.  Rewrite the function's documentation.
+	(read_atcb): Adjust call to get_tcb_types_info accordingly.
+	* ravenscar-thread.c (ravenscar_inferior_created): Check that
+	we have enough debugging information in the runtime to support
+	Ada task debugging before we enable the ravenscar-thread layer.
+
+2017-11-21  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.h (ada_get_task_info_from_ptid): Add declaration.
+	* ada-tasks.c (ada_get_task_info_from_ptid): New function.
+	* ravenscar-thread.c: Add into comment.
+	(base_magic_null_ptid): Delete.
+	(base_ptid): Change documentation.
+	(ravenscar_active_task): Renames ravenscar_running_thread.
+	All callers updated throughout.
+	(is_ravenscar_task, ravenscar_get_thread_base_cpu): New function.
+	(ravenscar_task_is_currently_active): Likewise.
+	(get_base_thread_from_ravenscar_task): Ditto.
+	(ravenscar_update_inferior_ptid): Adjust to handle multiple CPUs.
+	(ravenscar_runtime_initialized): Likewise.
+	(get_running_thread_id): Add new parameter "cpu".  Adjust
+	implementation to handle this new parameter.
+	(ravenscar_fetch_registers): Small adjustment to use
+	is_ravenscar_task and ravenscar_task_is_currently_active in
+	order to decide whether to use the target beneath or this
+	module's arch_ops.
+	(ravenscar_store_registers, ravenscar_prepare_to_store): Likewise.
+	(ravenscar_stopped_by_sw_breakpoint): Use
+	get_base_thread_from_ravenscar_task to get the underlying
+	thread, rather than using base_ptid.
+	(ravenscar_stopped_by_hw_breakpoint, ravenscar_stopped_by_watchpoint)
+	(ravenscar_stopped_data_address, ravenscar_core_of_thread):
+	Likewise.
+	(ravenscar_inferior_created): Do not set base_magic_null_ptid.
+
+2017-11-21  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.h (struct ada_task_info) <base_cpu>: New field.
+	* ada-lang.c (struct atcb_fieldno) <base_cpu>: New field.
+	(get_tcb_types_info): Set fieldnos.base_cpu.
+	(read_atcb): Set task_info->base_cpu.
+	(info_task): Print "Base CPU" info if set by runtime.
+
+2017-11-21  Joel Brobecker  <brobecker@adacore.com>
+
+	* ravenscar-thread.c (ravenscar_stopped_by_sw_breakpoint)
+	(ravenscar_stopped_by_hw_breakpoint, ravenscar_stopped_by_watchpoint)
+	(ravenscar_stopped_data_address, ravenscar_core_of_thread):
+	New functions.
+	(init_ravenscar_thread_ops): Set the to_stopped_by_sw_breakpoint,
+	to_stopped_by_hw_breakpoint, to_stopped_by_watchpoint,
+	to_stopped_data_address and to_core_of_thread fields of
+	ravenscar_ops.
+
+2017-11-21  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* ppc-tdep.h (enum powerpc_long_double_abi): New data type.
+	(struct gdbarch_tdep): New member long_double_abi.
+	* rs6000-tdep.c (rs6000_gdbarch_init): Initialize long_double_abi
+	member of tdep struct based on Tag_GNU_Power_ABI_FP attribute.
+	* ppc-linux-tdep.c (ppc_linux_init_abi): Install long double data
+	format depending on long_double_abi tdep member.
+	(ppc_floatformat_for_type): Handle __ibm128 type.
+
+2017-11-20  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* darwin-nat.c (set_enable_mach_exceptions): Constify parameter.
+
+2017-11-21  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (mapped_index::find_name_components_bounds)
+	<completion mode, upper bound>: Use std::lower_bound instead of
+	std::upper_bound.
+	(test_mapped_index_find_name_component_bounds): Remove incorrect
+	"t1_fund" from expected symbols.
+
+2017-11-21  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (mapped_index::name_components_casing): New field.
+	(mapped_index) <build_name_components,
+	find_name_components_bounds): Declare new methods.
+	(mapped_index::find_name_components_bounds)
+	(mapped_index::build_name_components): New methods, factored out
+	from dw2_expand_symtabs_matching_symbol.
+	(check_find_bounds_finds)
+	(test_mapped_index_find_name_component_bounds): New.
+	(run_test): Rename to ...
+	(test_dw2_expand_symtabs_matching_symbol): ... this.
+	(run_test): Reimplement.
+
+2017-11-21  Pedro Alves  <palves@redhat.com>
+
+	* cp-name-parser.y (cp_ident_is_alpha, cp_ident_is_alnum): New.
+	(symbol_end): Use cp_ident_is_alnum.
+	(yylex): Use cp_ident_is_alpha and cp_ident_is_alnum.
+	* dwarf2read.c (make_sort_after_prefix_name): New function.
+	(dw2_expand_symtabs_matching_symbol): Use it.
+	(test_symbols): Add more symbols.
+	(run_test): Add tests.
+
+2017-11-17  Tom Tromey  <tom@tromey.com>
+
+	* symtab.h (enum symbol_subclass_kind): New.
+	(struct symbol) <is_cplus_template_function, is_rust_vtable>:
+	Remove.
+	<subclass>: New member.
+	(SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION): Update.
+	* rust-lang.c (rust_get_trait_object_pointer): Update.
+	* dwarf2read.c (read_func_scope): Update.
+	(read_variable): Update.
+
+2017-11-17  Tom Tromey  <tom@tromey.com>
+
+	* dwarf2read.c (read_func_scope): Update.
+	* symtab.h (struct template_symbol): Derive from symbol.
+	<base>: Remove.
+
+2017-11-17  Tom Tromey  <tom@tromey.com>
+
+	* symtab.h (struct symbol) <is_rust_vtable>: New member.
+	(struct rust_vtable_symbol): New.
+	(find_symbol_at_address): Declare.
+	* symtab.c (find_symbol_at_address): New function.
+	* symfile.h (struct quick_symbol_functions)
+	<find_compunit_symtab_by_address>: New member.
+	* symfile-debug.c (debug_qf_find_compunit_symtab_by_address): New
+	function.
+	(debug_sym_quick_functions): Link to
+	debug_qf_find_compunit_symtab_by_address.
+	* rust-lang.c (rust_get_trait_object_pointer): New function.
+	(rust_evaluate_subexp) <case UNOP_IND>: New case.  Call
+	rust_get_trait_object_pointer.
+	* psymtab.c (psym_relocate): Clear psymbol_map.
+	(psym_fill_psymbol_map, psym_find_compunit_symtab_by_address): New
+	functions.
+	(psym_functions): Link to psym_find_compunit_symtab_by_address.
+	* objfiles.h (struct objfile) <psymbol_map>: New member.
+	* dwarf2read.c (dwarf2_gdb_index_functions): Update.
+	(process_die) <DW_TAG_variable>: New case.  Call read_variable.
+	(rust_containing_type, read_variable): New functions.
+
+2017-11-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* common/gdb_vecs.h (DEF_VEC_I (int)): Remove.
+
+2017-11-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* common/filestuff.c: Include <algorithm>.
+	(open_fds): Change type to std::vector<int>.
+	(do_mark_open_fd): Adjust.
+	(unmark_fd_no_cloexec): Adjust.
+	(do_close): Adjust.
+
+2017-11-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* breakpoint.c (output_thread_groups): Take an std::vector.
+	(print_one_breakpoint_location): Adjust.
+
+2017-11-17  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.c (resolve_subexp): Add handling of OP_VAR_MSYM_VALUE.
+	(ada_evaluate_subexp_for_cast): New function.
+	(ada_evaluate_subexp) <UNOP_CAST>: Replace code by call to
+	ada_evaluate_subexp_for_cast.
+	(ada_evaluate_subexp) <nosideret>: Replace code by call to
+	eval_skip_value.
+	* eval.c (evaluate_var_value): Make non-static.
+	(evaluate_var_msym_value, eval_skip_value): Likewise.
+	* value.h (evaluate_var_value, evaluate_var_msym_value)
+	(eval_skip_value): Declare.
+
+2017-11-16  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.c (ada_value_cast): Remove parameter "noside".
+	Update all callers.
+
+2017-11-16  Pedro Alves  <palves@redhat.com>
+
+	* python/py-unwind.c (pyuw_sniffer): Translate
+	PyExc_KeyboardInterrupt to a GDB Quit exception.
+
+2017-11-16  Pedro Alves  <palves@redhat.com>
+
+	* infrun.c (resume_cleanups): Delete.
+	(resume): No longer install a resume_cleanups cleanup nor call
+	QUIT.
+	(proceed): Pass the terminal to the inferior.
+	(keep_going_pass_signal): No longer install a resume_cleanups
+	cleanup.
+
+2017-11-16  Pedro Alves  <palves@redhat.com>
+
+	* inf-loop.c (inferior_event_handler): Don't swallow the exception
+	if the prompt is blocked.
+
+2017-11-16  Pedro Alves  <palves@redhat.com>
+
+	* breakpoint.c (insert_bp_location): Replace bp_err and
+	bp_err_message locals by a gdb_exception local.
+
+2017-11-16  Pedro Alves  <palves@redhat.com>
+
+	* inflow.c (scoped_ignore_sigttou): New class.
+	(child_terminal_ours_1, new_tty): Use it.
+
+2017-11-16  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* target-float.c (decimal_from_number): Add byte_order argument and
+	call match_endianness.  Error if unknown floating-point type.
+	(decimal_to_number): Add byte_order argument and call match_endianness.
+	(decimal_from_longest): Update call.  Do not call match_endianness.
+	(decimal_from_ulongest): Likewise.
+	(decimal_binop): Likewise.
+	(decimal_is_zero): Likewise.
+	(decimal_compare): Likewise.
+	(decimal_convert): Likewise.
+
+2017-11-16  Phil Muldoon  <pmuldoon@redhat.com>
+
+	* python/python.c (gdbpy_rbreak): New function.
+	* NEWS: Document Python rbreak feature.
+
+2017-11-16  Yao Qi  <yao.qi@linaro.org>
+
+	* features/tic6x-c62x.xml: Remove.
+	* features/tic6x-c64x.xml: Remove.
+	* features/tic6x-c64xp.xml: Remove.
+
+2017-11-15  John Baldwin  <jhb@FreeBSD.org>
+
+	* symtab.h: Include <array>.
+
+2017-11-15  John Baldwin  <jhb@FreeBSD.org>
+
+	* bsd-kvm.c (bsd_kvm_cmd): Constify 'arg'.
+	(bsd_kvm_proc_cmd): Likewise.
+
+2017-11-15  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* tui/tui-win.c (window_name_completer): Replace VEC with
+	std::vector.
+
+2017-11-15  Andrew Cagney  <cagney@gnu.org>
+
+	* MAINTAINERS: Remove no-longer applicable entries.
+
+2017-11-15  Andrew Cagney  <cagney@gnu.org>
+
+	* MAINTAINERS: Move self to Past Maintainers.
+
+2017-11-15  Yao Qi  <yao.qi@linaro.org>
+
+	* features/Makefile (XMLTOC): Remove nios2-linux.xml.
+	* features/nios2-linux.c: Remove.
+	* nios2-linux-tdep.c (_initialize_nios2_linux_tdep): Don't call
+	initialize_tdesc_nios2_linux.
+
+2017-11-15  Yao Qi  <yao.qi@linaro.org>
+
+	* m68hc11-tdep.c (M68HC11_NUM_REGS): Change it to
+	M68HC11_LAST_HARD_REG + 1.
+
+2017-11-14  Paul Carroll  <pcarroll@codesourcery.com>
+
+	PR gdb/22388
+	* remote.c (remote_write_bytes_aux, remote_read_bytes_1,
+	remote_read_bytes, remote_write_qxfer, remote_xfer_partial):
+	Return TARGET_XFER_EOF if size of returned data is 0.
+
+2017-11-14  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
+	memory-map-selftests.c.
+	(SUBDIR_UNITTESTS_OBS): Add memory-map-selftests.o.
+	* memory-map.c (memory_map_start_memory): Fix computation of hi
+	address.
+	* unittests/memory-map-selftests.c: New file.
+
+2017-11-09  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.c: Fix some typos in the general command documenting
+	how Ada expressions are being evaluated and how their result
+	is printed.
+
+2017-11-09  Tom Tromey  <tom@tromey.com>
+
+	* psymtab.c (psymbol_hash): Do not hash string contents.
+	(psymbol_compare): Add comment.
+
+2017-11-09  Tom Tromey  <tom@tromey.com>
+
+	* dictionary.c (dict_hash): Move "TKB" check into the "switch".
+
+2017-11-08  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-exp.y (write_var_from_sym): Remove parameter
+	"orig_left_context".  Update all callers.
+
+2017-11-08  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* tracepoint.h (class collection_list) <stringify>: Return
+	std::vector<std::string>.
+	(encode_actions_rsp): Change parameters to
+	std::vector<std::string> *.
+	* tracepoint.c (collection_list::stringify): Return
+	std::vector<std::string> and adjust accordingly.
+	(encode_actions_rsp): Changee parameters to
+	std::vector<std::string> and adjust accordingly.
+	* remote.c (free_actions_list),
+	free_actions_list_cleanup_wrapper): Remove.
+	(remote_download_tracepoint): Adjust to std::vector.
+
+2017-11-08  Tom Tromey  <tom@tromey.com>
+
+	* dwarf2read.c (symbolp): Remove typedef.
+	(read_func_scope): Use std::vector.
+	(process_structure_scope): Use std::vector.
+
+2017-11-08  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (ada_make_symbol_completion_list): Use
+	completion_skip_symbol.
+	* symtab.c (symbol_is_function_or_method(minimal_symbol*)): New.
+	(symbol_is_function_or_method(symbol*)): New.
+	(add_symtab_completions): Add complete_symbol_mode parameter.  Use
+	completion_skip_symbol.
+	(default_collect_symbol_completion_matches_break_on): Use
+	completion_skip_symbol.  Pass down mode.
+	(collect_file_symbol_completion_matches): Pass down mode.
+	* symtab.h (symbol_is_function_or_method): New declarations.
+	(completion_skip_symbol): New template function.
+
+2017-11-08  Pedro Alves  <palves@redhat.com>
+
+	* linespec.c (iterate_over_all_matching_symtabs): Add
+	search_domain parameter.  Pass it down to expand_symtabs_matching.
+	(decode_objc): Request FUNCTIONS_DOMAIN symbols only.
+	(lookup_prefix_sym): Adjust by passing ALL_DOMAIN as
+	search_domain.
+	(add_all_symbol_names_from_pspace): Add search_domain parameter.
+	Pass it down.
+	(find_method, find_function_symbols): Request FUNCTIONS_DOMAIN
+	symbols.
+	(add_matching_symbols_to_info): Add search_domain parameter.  Pass
+	it down.
+
+2017-11-08  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (ada_make_symbol_completion_list): Remove text and
+	text_len locals and don't pass them down.
+	* symtab.c (completion_list_add_name): Remove
+	sym_text/sym_text_len parameters and adjust.
+	(completion_list_add_symbol, completion_list_add_msymbol)
+	(completion_list_objc_symbol, completion_list_add_fields)
+	(add_symtab_completions): Likewise.
+	(default_collect_symbol_completion_matches_break_on)
+	(collect_file_symbol_completion_matches): Remove sym_text_len
+	local and don't pass it down.
+	* symtab.h (completion_list_add_name): Remove
+	sym_text/sym_text_len parameters.
+
+2017-11-08  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
+	unittests/lookup_name_info-selftests.c.
+	(SUBDIR_UNITTESTS_OBS): Add lookup_name_info-selftests.o.
+	* cp-support.c: Include "selftest.h".
+	(cp_remove_params_1): Rename from cp_remove_params.  Add
+	'require_param' parameter, and handle it.
+	(cp_remove_params): Reimplement.
+	(cp_remove_params_if_any): New.
+	(selftests::quote): New.
+	(selftests::check_remove_params): New.
+	(selftests::test_cp_remove_params): New.
+	(_initialize_cp_support): Install
+	selftests::test_cp_remove_params.
+	* cp-support.h (cp_remove_params_if_any): Declare.
+	* dwarf2read.c :Include "selftest.h".
+	(dw2_expand_symtabs_matching_symbol): Use
+	lookup_name_info::make_ignore_params.
+	(selftests::dw2_expand_symtabs_matching::mock_mapped_index)
+	(selftests::dw2_expand_symtabs_matching::string_or_null)
+	(selftests::dw2_expand_symtabs_matching::check_match)
+	(selftests::dw2_expand_symtabs_matching::test_symbols)
+	(selftests::dw2_expand_symtabs_matching::run_test): New.
+	(_initialize_dwarf2_read): Register
+	selftests::dw2_expand_symtabs_matching::run_test.
+	* psymtab.c (psym_expand_symtabs_matching): Use
+	lookup_name_info::make_ignore_params.
+	* symtab.c (demangle_for_lookup_info::demangle_for_lookup_info):
+	If the lookup name wants to ignore parameters, strip them.
+	(compare_symbol_name): Remove sym_text/sym_text_len parameters and
+	code handling '('.
+	(completion_list_add_name): Don't pass down sym_text/sym_text_len.
+	(default_collect_symbol_completion_matches_break_on): Don't try to
+	strip parameters.
+	* symtab.h (lookup_name_info::lookup_name_info): Add
+	'ignore_parameters' parameter.
+	(lookup_name_info::ignore_parameters)
+	(lookup_name_info::make_ignore_params): New methods.
+	(lookup_name_info::m_ignore_parameters): New field.
+	* unittests/lookup_name_info-selftests.c: New file.
+
+2017-11-08  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (dw2_expand_marked_cus)
+	(dw2_expand_symtabs_matching_symbol): Remove forward declarations.
+	(dw2_expand_symtabs_matching): Move further below.
+	(dw2_expand_marked_cus): Reindent.
+
+2017-11-08  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (byte_swap, MAYBE_SWAP): Move higher up in file.
+	(struct name_component): New.
+	(mapped_index::name_components): New field.
+	(mapped_index::symbol_name_at): New method.
+	(dwarf2_read_index): Call mapped_index ctor.
+	(dw2_map_matching_symbols): Add comment about name_components
+	table.
+	(dw2_expand_symtabs_matching): Factor part to...
+	(dw2_expand_symtabs_matching_symbol): ... this new function.
+	Build name components table, and lookup symbols in it before
+	calling the name matcher.
+	(dw2_expand_marked_cus): New, factored out from
+	dw2_expand_symtabs_matching.
+	(dwarf2_per_objfile_free): Call the mapped_index's dtor.
+
+2017-11-08   Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (ada_encode): Rename to ..
+	(ada_encode_1): ... this.  Add throw_errors parameter and handle
+	it.
+	(ada_encode): Reimplement.
+	(match_name): Delete, folded into full_name.
+	(resolve_subexp): No longer pass the encoded name to
+	ada_lookup_symbol_list.
+	(should_use_wild_match): Delete.
+	(name_match_type_from_name): New.
+	(ada_lookup_simple_minsym): Use lookup_name_info and the
+	language's symbol_name_matcher_ftype.
+	(add_symbols_from_enclosing_procs, ada_add_local_symbols)
+	(ada_add_block_renamings): Adjust to use lookup_name_info.
+	(ada_lookup_name): New.
+	(add_nonlocal_symbols, ada_add_all_symbols)
+	(ada_lookup_symbol_list_worker, ada_lookup_symbol_list)
+	(ada_iterate_over_symbols): Adjust to use lookup_name_info.
+	(ada_name_for_lookup): Delete.
+	(ada_lookup_encoded_symbol): Construct a verbatim name.
+	(wild_match): Reverse sense of return type.  Use bool.
+	(full_match): Reverse sense of return type.  Inline bits of old
+	match_name here.
+	(ada_add_block_symbols): Adjust to use lookup_name_info.
+	(symbol_completion_match): Delete, folded into...
+	(ada_lookup_name_info::matches): ... .this new method.
+	(symbol_completion_add): Delete.
+	(ada_collect_symbol_completion_matches): Add name_match_type
+	parameter.  Adjust to use lookup_name_info and
+	completion_list_add_name.
+	(get_var_value, ada_add_global_exceptions): Adjust to use
+	lookup_name_info.
+	(ada_get_symbol_name_cmp): Delete.
+	(do_wild_match, do_full_match): New functions.
+	(ada_lookup_name_info::ada_lookup_name_info): New method.
+	(ada_symbol_name_matches, ada_get_symbol_name_matcher): New
+	functions.
+	(ada_language_defn): Install ada_get_symbol_name_matcher.
+	* ada-lex.l (processId): If name starts with '<', copy it
+	verbatim.
+	* block.c (block_iter_match_step, block_iter_match_first)
+	(block_iter_match_next, block_lookup_symbol)
+	(block_lookup_symbol_primary, block_find_symbol): Adjust to use
+	lookup_name_info.
+	* block.h (block_iter_match_first, block_iter_match_next)
+	(ALL_BLOCK_SYMBOLS_WITH_NAME): Adjust to use lookup_name_info.
+	* c-lang.c (c_language_defn, cplus_language_defn)
+	(asm_language_defn, minimal_language_defn): Adjust comments to
+	refer to la_get_symbol_name_matcher.
+	* completer.c (complete_files_symbols)
+	(collect_explicit_location_matches, symbol_completer): Pass a
+	symbol_name_match_type down.
+	* completer.h (class completion_match, completion_match_result):
+	New classes.
+	(completion_tracker::reset_completion_match_result): New method.
+	(completion_tracker::m_completion_match_result): New field.
+	* cp-support.c (make_symbol_overload_list_block): Adjust to use
+	lookup_name_info.
+	(cp_fq_symbol_name_matches, cp_get_symbol_name_matcher): New
+	functions.
+	* cp-support.h (cp_get_symbol_name_matcher): New declaration.
+	* d-lang.c: Adjust comments to refer to
+	la_get_symbol_name_matcher.
+	* dictionary.c (dict_vector) <iter_match_first, iter_match_next>:
+	Adjust to use lookup_name_info.
+	(dict_iter_match_first, dict_iter_match_next)
+	(iter_match_first_hashed, iter_match_next_hashed)
+	(iter_match_first_linear, iter_match_next_linear): Adjust to work
+	with a lookup_name_info.
+	* dictionary.h (dict_iter_match_first, dict_iter_match_next):
+	Likewise.
+	* dwarf2read.c (dw2_lookup_symbol): Adjust to use lookup_name_info.
+	(dw2_map_matching_symbols): Adjust to use symbol_name_match_type.
+	(gdb_index_symbol_name_matcher): New class.
+	(dw2_expand_symtabs_matching) Adjust to use lookup_name_info and
+	gdb_index_symbol_name_matcher.  Accept a NULL symbol_matcher.
+	* f-lang.c (f_collect_symbol_completion_matches): Adjust to work
+	with a symbol_name_match_type.
+	(f_language_defn): Adjust comments to refer to
+	la_get_symbol_name_matcher.
+	* go-lang.c (go_language_defn): Adjust comments to refer to
+	la_get_symbol_name_matcher.
+	* language.c (default_symbol_name_matcher)
+	(language_get_symbol_name_matcher): New functions.
+	(unknown_language_defn, auto_language_defn): Adjust comments to
+	refer to la_get_symbol_name_matcher.
+	* language.h (symbol_name_cmp_ftype): Delete.
+	(language_defn) <la_collect_symbol_completion_matches>: Add match
+	type parameter.
+	<la_get_symbol_name_cmp>: Delete field.
+	<la_get_symbol_name_matcher>: New field.
+	<la_iterate_over_symbols>: Adjust to use lookup_name_info.
+	(default_symbol_name_matcher, language_get_symbol_name_matcher):
+	Declare.
+	* linespec.c (iterate_over_all_matching_symtabs)
+	(iterate_over_file_blocks): Adjust to use lookup_name_info.
+	(find_methods): Add language parameter, and use lookup_name_info
+	and the language's symbol_name_matcher_ftype.
+	(linespec_complete_function): Adjust.
+	(lookup_prefix_sym): Use lookup_name_info.
+	(add_all_symbol_names_from_pspace): Adjust.
+	(find_superclass_methods): Add language parameter and pass it
+	down.
+	(find_method): Pass symbol language down.
+	(find_linespec_symbols): Don't demangle or Ada encode here.
+	(search_minsyms_for_name): Add lookup_name_info parameter.
+	(add_matching_symbols_to_info): Add name_match_type parameter.
+	Use lookup_name_info.
+	* m2-lang.c (m2_language_defn): Adjust comments to refer to
+	la_get_symbol_name_matcher.
+	* minsyms.c: Include <algorithm>.
+	(add_minsym_to_demangled_hash_table): Remove table parameter and
+	add objfile parameter.  Use search_name_hash, and add language to
+	demangled languages vector.
+	(struct found_minimal_symbols): New struct.
+	(lookup_minimal_symbol_mangled, lookup_minimal_symbol_demangled):
+	New functions.
+	(lookup_minimal_symbol): Adjust to use them.  Don't canonicalize
+	input names here.  Use lookup_name_info instead.  Lookup up
+	demangled names once for each language in the demangled names
+	vector.
+	(iterate_over_minimal_symbols): Use lookup_name_info.  Lookup up
+	demangled names once for each language in the demangled names
+	vector.
+	(build_minimal_symbol_hash_tables): Adjust.
+	* minsyms.h (iterate_over_minimal_symbols): Adjust to pass down a
+	lookup_name_info.
+	* objc-lang.c (objc_language_defn): Adjust comment to refer to
+	la_get_symbol_name_matcher.
+	* objfiles.h: Include <vector>.
+	(objfile_per_bfd_storage) <demangled_hash_languages>: New field.
+	* opencl-lang.c (opencl_language_defn): Adjust comment to refer to
+	la_get_symbol_name_matcher.
+	* p-lang.c (pascal_language_defn): Adjust comment to refer to
+	la_get_symbol_name_matcher.
+	* psymtab.c (psym_lookup_symbol): Use lookup_name_info.
+	(match_partial_symbol): Use symbol_name_match_type,
+	lookup_name_info and psymbol_name_matches.
+	(lookup_partial_symbol): Use lookup_name_info.
+	(map_block): Use symbol_name_match_type and lookup_name_info.
+	(psym_map_matching_symbols): Use symbol_name_match_type.
+	(psymbol_name_matches): New.
+	(recursively_search_psymtabs): Use lookup_name_info and
+	psymbol_name_matches.  Rename 'kind' parameter to 'domain'.
+	(psym_expand_symtabs_matching): Use lookup_name_info.  Rename
+	'kind' parameter to 'domain'.
+	* rust-lang.c (rust_language_defn): Adjust comment to refer to
+	la_get_symbol_name_matcher.
+	* symfile-debug.c (debug_qf_map_matching_symbols)
+	(debug_qf_map_matching_symbols): Use symbol_name_match_type.
+	(debug_qf_expand_symtabs_matching): Use lookup_name_info.
+	* symfile.c (expand_symtabs_matching): Use lookup_name_info.
+	* symfile.h (quick_symbol_functions) <map_matching_symbols>:
+	Adjust to use symbol_name_match_type.
+	<expand_symtabs_matching>: Adjust to use lookup_name_info.
+	(expand_symtabs_matching): Adjust to use lookup_name_info.
+	* symmisc.c (maintenance_expand_symtabs): Use
+	lookup_name_info::match_any ().
+	* symtab.c (symbol_matches_search_name): New.
+	(eq_symbol_entry): Adjust to use lookup_name_info and the
+	language's matcher.
+	(demangle_for_lookup_info::demangle_for_lookup_info): New.
+	(lookup_name_info::match_any): New.
+	(iterate_over_symbols, search_symbols): Use lookup_name_info.
+	(compare_symbol_name): Add language, lookup_name_info and
+	completion_match_result parameters, and use them.
+	(completion_list_add_name): Make extern.  Add language and
+	lookup_name_info parameters.  Use them.
+	(completion_list_add_symbol, completion_list_add_msymbol)
+	(completion_list_objc_symbol): Add lookup_name_info parameters and
+	adjust.  Pass down language.
+	(completion_list_add_fields): Add lookup_name_info parameters and
+	adjust.  Pass down language.
+	(add_symtab_completions): Add lookup_name_info parameters and
+	adjust.
+	(default_collect_symbol_completion_matches_break_on): Add
+	name_match_type parameter, and use it.  Use lookup_name_info.
+	(default_collect_symbol_completion_matches)
+	(collect_symbol_completion_matches): Add name_match_type
+	parameter, and pass it down.
+	(collect_symbol_completion_matches_type): Adjust.
+	(collect_file_symbol_completion_matches): Add name_match_type
+	parameter, and use lookup_name_info.
+	* symtab.h: Include <string> and "common/gdb_optional.h".
+	(enum class symbol_name_match_type): New.
+	(class ada_lookup_name_info): New.
+	(struct demangle_for_lookup_info): New.
+	(class lookup_name_info): New.
+	(symbol_name_matcher_ftype): New.
+	(SYMBOL_MATCHES_SEARCH_NAME): Use symbol_matches_search_name.
+	(symbol_matches_search_name): Declare.
+	(MSYMBOL_MATCHES_SEARCH_NAME): Delete.
+	(default_collect_symbol_completion_matches)
+	(collect_symbol_completion_matches)
+	(collect_file_symbol_completion_matches): Add name_match_type
+	parameter.
+	(iterate_over_symbols): Use lookup_name_info.
+	(completion_list_add_name): Declare.
+	* utils.c (enum class strncmp_iw_mode): Moved to utils.h.
+	(strncmp_iw_with_mode): Now extern.
+	* utils.h (enum class strncmp_iw_mode): Moved from utils.c.
+	(strncmp_iw_with_mode): Declare.
+
+2017-11-08  Keith Seitz  <keiths@redhat.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (ada_language_defn): Install
+	default_search_name_hash.
+	* buildsym.c (struct buildsym_compunit): <language>: New field.
+	(finish_block_internal): Pass language when creating dictionaries.
+	(start_buildsym_compunit, start_symtab): New language parameters.
+	Use them.
+	(restart_symtab): Pass down compilation unit's language.
+	* buildsym.h (enum language): Forward declare.
+	(start_symtab): New 'language' parameter.
+	* c-lang.c (c_language_defn, cplus_language_defn)
+	(asm_language_defn, minimal_language_defn): Install
+	default_search_name_hash.
+	* coffread.c (coff_start_symtab): Adjust.
+	* d-lang.c (d_language_defn): Install default_search_name_hash.
+	* dbxread.c (struct symloc): Add 'pst_language' field.
+	(PST_LANGUAGE): Define.
+	(start_psymtab, read_ofile_symtab): Use it.
+	(process_one_symbol): New 'language' parameter.  Pass it down.
+	* dictionary.c (struct dictionary) <language>: New field.
+	(DICT_LANGUAGE): Define.
+	(dict_create_hashed, dict_create_hashed_expandable)
+	(dict_create_linear, dict_create_linear_expandable): New parameter
+	'language'.  Set the dictionary's language.
+	(iter_match_first_hashed): Adjust to rename.
+	(insert_symbol_hashed): Assert we don't see mismatching
+	languages.  Adjust to rename.
+	(dict_hash): Rename to ...
+	(default_search_name_hash): ... this and make extern.
+	* dictionary.h (struct language_defn): Forward declare.
+	(dict_create_hashed): New parameter 'language'.
+	* dwarf2read.c (dwarf2_start_symtab): Pass down language.
+	* f-lang.c (f_language_defn): Install default_search_name_hash.
+	* go-lang.c (go_language_defn): Install default_search_name_hash.
+	* jit.c (finalize_symtab): Pass compunit's language to dictionary
+	creation.
+	* language.c (unknown_language_defn, auto_language_defn):
+	* language.h (language_defn::la_search_name_hash): New field.
+	(default_search_name_hash): Declare.
+	* m2-lang.c (m2_language_defn): Install default_search_name_hash.
+	* mdebugread.c (new_block): New parameter 'language'.
+	* mdebugread.c (parse_symbol): Pass symbol language to block
+	allocation.
+	(psymtab_to_symtab_1): Pass down language.
+	(new_symtab): Pass compunit's language to block allocation.
+	* objc-lang.c (objc_language_defn): Install
+	default_search_name_hash.
+	* opencl-lang.c (opencl_language_defn):
+	* p-lang.c (pascal_language_defn): Install
+	default_search_name_hash.
+	* rust-lang.c (rust_language_defn): Install
+	default_search_name_hash.
+	* stabsread.h (enum language): Forward declare.
+	(process_one_symbol): Add 'language' parameter.
+	* symtab.c (search_name_hash): New function.
+	* symtab.h (search_name_hash): Declare.
+	* xcoffread.c (read_xcoff_symtab): Pass language to start_symtab.
+
+2017-11-08  Pedro Alves  <palves@redhat.com>
+
+	* cp-name-parser.y (main): Don't initialize extra_chars.
+
+2017-11-07  Tom Tromey  <tom@tromey.com>
+
+	* event-top.h (command_handler): Constify.
+	* record-full.c (cmd_record_full_start): Update.
+	* thread.c (thread_apply_all_command): Update.
+	* printcmd.c (eval_command): Update.
+	* mi/mi-main.c (mi_execute_cli_command): Update.
+	(mi_execute_async_cli_command): Update.
+	* tui/tui-stack.c (tui_update_command): Update.
+	* cli/cli-interp.c (safe_execute_command): Constify.
+	* record.c (record_start): Update.
+	(record_start, record_stop, cmd_record_start): Update.
+	* record-btrace.c (cmd_record_btrace_bts_start): Update.
+	(cmd_record_btrace_pt_start): Update.
+	(cmd_record_btrace_start): Update.
+	(cmd_record_btrace_start): Update.
+	* reverse.c (exec_reverse_once): Update.
+	* python/python.c (execute_gdb_command): Don't copy the command.
+	* event-top.c (command_line_handler): Update.
+	(command_handler): Constify.
+	* defs.h (deprecated_call_command_hook): Constify.
+	* cli/cli-script.h (execute_user_command): Constify.
+	* cli/cli-script.c (execute_user_command): Constify.
+	(execute_cmd_pre_hook, execute_cmd_post_hook): Constify.
+	(enum command_control_type): Update.
+	* main.c (catch_command_errors): Remove non-const overload.
+	(catch_command_errors_ftype): Remove.
+	* python/py-cmd.c (cmdpy_function): Constify.
+	* guile/scm-cmd.c (cmdscm_function): Constify.
+	* cli/cli-dump.c (call_dump_func): Constify.
+	* cli/cli-decode.c (do_const_cfunc): Constify.
+	(do_sfunc): Constify.
+	(cmd_func): Constify.
+	* gdbcmd.h (execute_command, execute_command_to_string): Constify.
+	* top.h (execute_command): Constify.
+	* top.c (execute_command): Constify.
+	(execute_command_to_string): Constify.
+	(deprecated_call_command_hook): Constify.
+	* command.h (cmd_func): Constify.
+	* cli/cli-decode.h (struct cmd_list_element) <func>: Constify.
+
+2017-11-07  Tom Tromey  <tom@tromey.com>
+
+	* ada-lang.c (catch_ada_exception_command): Constify.
+	(catch_assert_command): Constify.
+	* break-catch-throw.c (catch_catch_command, catch_throw_command)
+	(catch_rethrow_command): Constify.
+	(catch_exception_command_1): Constify.
+	* breakpoint.h (add_catch_command): Constify.
+	* break-catch-syscall.c (catch_syscall_command_1): Constify.
+	(catch_syscall_split_args): Constify.
+	* break-catch-sig.c (catch_signal_command): Constify.
+	(catch_signal_split_args): Constify.
+	* cli/cli-decode.h (struct cmd_list_element) <function>: Use
+	cmd_const_sfunc_ftype.
+	* cli/cli-decode.c (add_setshow_cmd_full): Constify.
+	(add_setshow_enum_cmd, add_setshow_auto_boolean_cmd)
+	(add_setshow_boolean_cmd, add_setshow_filename_cmd)
+	(add_setshow_string_cmd, struct cmd_list_element)
+	(add_setshow_optional_filename_cmd, add_setshow_integer_cmd)
+	(add_setshow_uinteger_cmd, add_setshow_zinteger_cmd)
+	(add_setshow_zuinteger_unlimited_cmd, add_setshow_zuinteger_cmd):
+	Constify.
+	(set_cmd_sfunc): Constify.
+	(empty_sfunc): Constify.
+	* command.h (add_setshow_enum_cmd, add_setshow_auto_boolean_cmd)
+	(add_setshow_boolean_cmd, add_setshow_filename_cmd)
+	(add_setshow_string_cmd, add_setshow_string_noescape_cmd)
+	(add_setshow_optional_filename_cmd, add_setshow_integer_cmd)
+	(add_setshow_uinteger_cmd, add_setshow_zinteger_cmd)
+	(add_setshow_zuinteger_cmd, add_setshow_zuinteger_unlimited_cmd):
+	Constify.
+	(set_cmd_sfunc): Constify.
+	(cmd_sfunc_ftype): Remove.
+	* compile/compile.c (set_compile_args): Constify.
+	* infrun.c (set_disable_randomization): Constify.
+	* infcmd.c (set_args_command, set_cwd_command): Constify.
+	* breakpoint.c (set_condition_evaluation_mode): Constify.
+	(add_catch_command): Constify.
+	(catch_fork_command_1, catch_exec_command_1)
+	(catch_load_command_1, catch_unload_command_1): Constify.
+	(catch_load_or_unload): Constify.
+	* guile/scm-param.c (pascm_set_func): Constify.
+	(add_setshow_generic): Constify.
+	* python/py-param.c (get_set_value): Constify.
+	* top.h (set_verbose): Constify.
+	* tui/tui-win.c (tui_set_var_cmd): Constify.
+	* mi/mi-main.c (set_mi_async_command): Constify.
+	* cli/cli-logging.c (set_logging_overwrite)
+	(set_logging_redirect): Constify.
+	* value.c (set_max_value_size): Constify.
+	* valprint.c (set_input_radix, set_output_radix): Constify.
+	* utils.c (set_width_command, set_height_command): Constify.
+	* typeprint.c (set_print_type_methods, set_print_type_typedefs): Constify.
+	* tracepoint.c (set_disconnected_tracing)
+	(set_circular_trace_buffer, set_trace_buffer_size)
+	(set_trace_user, set_trace_notes, set_trace_stop_notes): Constify.
+	* top.c (set_history_size_command, set_verbose, set_editing)
+	(set_gdb_datadir, set_history_filename): Constify.
+	* target.c (set_targetdebug, maint_set_target_async_command)
+	(maint_set_target_non_stop_command, set_target_permissions)
+	(set_write_memory_permission): Constify.
+	(open_target): Constify.
+	* target-descriptions.c (set_tdesc_filename_cmd): Constify.
+	* target-dcache.c (set_stack_cache, set_code_cache): Constify.
+	* symtab.c (set_symbol_cache_size_handler): Constify.
+	* symfile.c (set_ext_lang_command): Constify.
+	* symfile-debug.c (set_debug_symfile): Constify.
+	* source.c (set_directories_command): Constify.
+	* solib.c (reload_shared_libraries, gdb_sysroot_changed): Constify.
+	* serial.c (set_parity): Constify.
+	* rs6000-tdep.c (powerpc_set_soft_float, powerpc_set_vector_abi): Constify.
+	* remote.c (set_remote_exec_file, set_remotebreak)
+	(set_remote_protocol_Z_packet_cmd, set_range_stepping): Constify.
+	* record.c (set_record_insn_history_size)
+	(set_record_call_history_size): Constify.
+	* record-full.c (set_record_full_insn_max_num): Constify.
+	* proc-api.c (set_procfs_trace_cmd, set_procfs_file_cmd): Constify.
+	* osabi.c (set_osabi): Constify.
+	* mips-tdep.c (set_mips64_transfers_32bit_regs)
+	(reinit_frame_cache_sfunc, mips_abi_update): Constify.
+	* maint.c (maintenance_set_profile_cmd): Constify.
+	* linux-thread-db.c (set_libthread_db_search_path): Constify.
+	* language.c (set_language_command, set_range_command)
+	(set_case_command): Constify.
+	* infrun.c (set_non_stop, set_observer_mode)
+	(set_stop_on_solib_events, set_schedlock_func)
+	(set_exec_direction_func): Constify.
+	* infcmd.c (set_inferior_tty_command): Constify.
+	* disasm.c (set_disassembler_options_sfunc): Constify.
+	* demangle.c (set_demangling_command): Constify.
+	* dcache.c (set_dcache_size, set_dcache_line_size): Constify.
+	* cris-tdep.c (set_cris_version, set_cris_mode)
+	(set_cris_dwarf2_cfi): Constify.
+	* corefile.c (set_gnutarget_command): Constify.
+	* charset.c (set_host_charset_sfunc, set_target_charset_sfunc)
+	(set_target_wide_charset_sfunc): Constify.
+	* breakpoint.c (update_dprintf_commands): Constify.
+	* auto-load.c (set_auto_load_dir, set_auto_load_safe_path): Constify.
+	* arm-tdep.c (set_fp_model_sfunc, arm_set_abi)
+	(set_disassembly_style_sfunc): Constify.
+	* arch-utils.c (set_endian, set_architecture): Constify.
+	* alpha-tdep.c (reinit_frame_cache_sfunc): Constify.
+	* agent.c (set_can_use_agent): Constify.
+
+2017-11-07  Tom Tromey  <tom@tromey.com>
+
+	* go32-nat.c (go32_sysinfo, go32_sldt, go32_sgdt, go32_sidt)
+	(go32_pde, go32_pte, go32_pte_for_address): Constify.
+	* gnu-nat.c (_parse_bool_arg, show_thread_default_pause_cmd)
+	(set_thread_default_pause_cmd, set_thread_default_run_cmd)
+	(show_thread_default_run_cmd, set_thread_default_detach_sc_cmd)
+	(parse_int_arg, show_thread_default_detach_sc_cmd)
+	(set_signals_cmd, show_signals_cmd, set_sig_thread_cmd)
+	(show_sig_thread_cmd, set_stopped_cmd, show_stopped_cmd)
+	(set_exceptions_cmd, show_exceptions_cmd, set_task_pause_cmd)
+	(show_task_pause_cmd, set_task_detach_sc_cmd)
+	(show_task_detach_sc_cmd, set_task_exc_port_cmd)
+	(set_noninvasive_cmd, set_thread_pause_cmd)
+	(show_thread_pause_cmd, set_thread_run_cmd, show_thread_run_cmd)
+	(set_thread_detach_sc_cmd, show_thread_detach_sc_cmd)
+	(set_thread_exc_port_cmd, thread_takeover_sc_cmd): Constify.
+	* windows-nat.c (display_selectors): Constify.
+	* cli/cli-decode.h (struct cmd_list_element) <function>: Remove
+	non-const "cfunc".
+	* cli/cli-decode.c (set_cmd_cfunc): Remove non-const overload.
+	(cmd_cfunc_eq): Likewise.
+	(struct cmd_list_element): Likewise.
+	(do_cfunc): Remove.
+	(cli_user_command_p): Update.
+	* command.h (add_cmd): Remove non-const overload.
+	(cmd_cfunc_ftype): Remove typedef.
+	(cmd_cfunc_eq): Remove non-const overload.
+	* value.c (show_values): Constify.
+	* thread.c (thread_apply_all_command): Constify.
+	* symfile.c (load_command): Constify.
+	* source.c (directory_command): Constify.
+	* maint.c (maintenance_internal_error)
+	(maintenance_demangler_warning, maintenance_space_display)
+	(maintenance_print_architecture, maintenance_translate_address)
+	(maintenance_info_selftests, maintenance_internal_warning):
+	Constify.
+	* breakpoint.c (disable_trace_command, enable_trace_command):
+	Constify.
+	* auto-load.c (info_auto_load_local_gdbinit, add_auto_load_dir):
+	Constify.
+	(add_auto_load_safe_path): Constify.
+	* guile/scm-auto-load.c (info_auto_load_guile_scripts): Constify.
+	* top.h (show_commands): Constify.
+	* linux-thread-db.c (info_auto_load_libthread_db): Constify.
+	* sparc64-tdep.c (adi_examine_command): Constify.
+	(adi_assign_command): Constify.
+
+2017-11-07  Tom Tromey  <tom@tromey.com>
+
+	* frame.h (info_locals_command, info_args_command): Constify.
+	* auto-load.h (auto_load_info_scripts): Constify.
+	* inferior.h (registers_info): Constify.
+	* copying.c: Rebuild.
+	* copying.awk: Constify generated commands.
+	* auto-load.c (auto_load_info_scripts)
+	(info_auto_load_gdb_scripts): Constify.
+	* cli/cli-decode.c (struct cmd_list_element): Take a
+	cmd_const_cfunc_ftype.
+	* command.h (add_info): Take a cmd_const_cfunc_ftype.
+	* tui/tui-win.c (tui_all_windows_info): Constify.
+	* python/py-auto-load.c (info_auto_load_python_scripts):
+	Constify.
+	* cli/cli-cmds.c (show_command): Remove non-const overload.
+	* tracepoint.c (info_tvariables_command, info_scope_command):
+	Constify.
+	(info_static_tracepoint_markers_command): Constify.
+	* thread.c (info_threads_command): Constify.
+	(print_thread_info_1): Constify.
+	* target.c (info_target_command): Constify.
+	* symtab.c (info_sources_command, info_functions_command)
+	(info_types_command): Constify.
+	(info_variables_command): Remove non-const overload.
+	* symfile.c (info_ext_lang_command): Constify.
+	* stack.c (info_frame_command, info_locals_command)
+	(info_args_command): Constify.
+	(backtrace_command): Remove non-const overload.
+	* source.c (info_source_command, info_line_command): Constify.
+	* solib.c (info_sharedlibrary_command): Constify.
+	* skip.c (info_skip_command): Constify.
+	* ser-go32.c (info_serial_command): Constify.
+	* reverse.c (info_bookmarks_command): Constify.
+	* printcmd.c (info_symbol_command, info_address_command)
+	(info_display_command): Constify.
+	* osdata.c (info_osdata_command): Constify.
+	* objc-lang.c (info_selectors_command, info_classes_command):
+	Constify.
+	* nto-procfs.c (procfs_pidlist, procfs_meminfo): Constify.
+	* memattr.c (info_mem_command): Constify.
+	* macrocmd.c (info_macro_command, info_macros_command): Constify.
+	* linux-fork.c (info_checkpoints_command): Constify.
+	* infrun.c (info_signals_command): Constify.
+	* inflow.c (info_terminal_command): Constify.
+	* inferior.c (info_inferiors_command): Constify.
+	(print_inferior): Constify.
+	* infcmd.c (info_program_command, info_all_registers_command)
+	(info_registers_command, info_vector_command)
+	(info_float_command): Constify.
+	(registers_info): Constify.
+	* gnu-nat.c (info_send_rights_cmd, info_recv_rights_cmd)
+	(info_port_sets_cmd, info_dead_names_cmd, info_port_rights_cmd):
+	Constify.
+	* f-valprint.c (info_common_command): Constify.
+	* dcache.c (info_dcache_command): Constify.
+	(dcache_info_1): Constify.
+	* darwin-nat-info.c (info_mach_tasks_command)
+	(info_mach_task_command, info_mach_ports_command)
+	(info_mach_port_command, info_mach_threads_command)
+	(info_mach_thread_command, info_mach_regions_command)
+	(info_mach_regions_recurse_command, info_mach_region_command)
+	(info_mach_exceptions_command): Constify.
+	(get_task_from_args): Constify.
+	* cp-support.c (info_vtbl_command): Constify.
+	* breakpoint.c (info_watchpoints_command)
+	(info_tracepoints_command): Constify.
+	(info_breakpoints_command): Remove non-const overload.
+	* avr-tdep.c (avr_io_reg_read_command): Constify.
+	* auxv.c (info_auxv_command): Constify.
+	* ada-tasks.c (info_tasks_command): Constify.
+	(info_task): Constify.
+	* ada-lang.c (info_exceptions_command): Constify.
+
+2017-11-07  Tom Tromey  <tom@tromey.com>
+
+	* solib.h (no_shared_libraries): Constify.
+	* frame.h (return_command): Constify.
+	* cli/cli-cmds.h (quit_command): Constify.
+	* top.h (quit_command, execute_command): Constify.
+	* target.h (flash_erase_command): Constify.
+	* inferior.h (set_inferior_args, attach_command): Constify.
+	* tracepoint.h (start_tracing, stop_tracing): Constify.
+	* breakpoint.h (break_command, tbreak_command)
+	(hbreak_command_wrapper, thbreak_command_wrapper)
+	(rbreak_command_wrapper, watch_command_wrapper)
+	(awatch_command_wrapper, rwatch_command_wrapper)
+	(get_tracepoint_by_number): Constify.
+	* symtab.c (info_variables_command, rbreak_command)
+	(symtab_symbol_info): Constify.
+	(info_variables_command): Add non-const overload.
+	* top.c (dont_repeat_command): Constify.
+	* breakpoint.c (ignore_command, commands_command)
+	(condition_command, tbreak_command, hbreak_command)
+	(thbreak_command, clear_command, break_command)
+	(info_breakpoints_command, watch_command, rwatch_command)
+	(awatch_command, trace_command, ftrace_command, strace_command)
+	(trace_pass_command, break_range_command, dprintf_command)
+	(agent_printf_command, get_tracepoint_by_number)
+	(watch_maybe_just_location, trace_pass_command): Constify.
+	(info_breakpoints_command): Add non-const overload.
+	* tracefile.c (tsave_command): Constify.
+	* infcmd.c (attach_command, disconnect_command, signal_command)
+	(queue_signal_command, stepi_command, nexti_command)
+	(finish_command, next_command, step_command, until_command)
+	(advance_command, jump_command, continue_command, run_command)
+	(start_command, starti_command, interrupt_command)
+	(run_command_1, set_inferior_args, step_1): Constify.
+	* inferior.c (add_inferior_command, remove_inferior_command)
+	(clone_inferior_command): Constify.
+	* linux-fork.c (checkpoint_command, restart_command): Constify.
+	* windows-nat.c (signal_event_command): Constify.
+	* guile/guile.c (guile_repl_command, guile_command): Constify.
+	* printcmd.c (x_command, display_command, printf_command)
+	(output_command, set_command, call_command, print_command)
+	(eval_command): Constify.
+	(non_const_set_command): Remove.
+	(_initialize_printcmd): Update.
+	* source.c (forward_search_command, reverse_search_command):
+	Constify.
+	* jit.c (jit_reader_load_command, jit_reader_unload_command):
+	Constify.
+	* infrun.c (handle_command): Constify.
+	* memattr.c (mem_command): Constify.
+	* stack.c (return_command, up_command, up_silently_command)
+	(down_command, down_silently_command, frame_command)
+	(backtrace_command, func_command, backtrace_command_1): Constify.
+	(backtrace_command): Add non-const overload.
+	* remote-sim.c (simulator_command): Constify.
+	* exec.c (set_section_command): Constify.
+	* tracepoint.c (tdump_command, trace_variable_command)
+	(tstatus_command, tstop_command, tstart_command)
+	(end_actions_pseudocommand, while_stepping_pseudocommand)
+	(collect_pseudocommand, teval_pseudocommand, actions_command)
+	(start_tracing, stop_tracing): Constify.
+	* value.c (init_if_undefined_command): Constify.
+	* tui/tui-stack.c (tui_update_command): Constify.
+	* tui/tui-win.c (tui_refresh_all_command)
+	(tui_set_tab_width_command, tui_set_win_height_command)
+	(tui_set_focus_command, tui_scroll_forward_command)
+	(tui_scroll_backward_command, tui_scroll_left_command)
+	(tui_scroll_right_command, parse_scrolling_args, tui_set_focus)
+	(tui_set_win_height): Constify.
+	* tui/tui-layout.c (tui_layout_command): Constify.
+	* procfs.c (proc_trace_syscalls, proc_trace_sysentry_cmd)
+	(proc_trace_sysexit_cmd, proc_untrace_sysentry_cmd)
+	(proc_untrace_sysexit_cmd): Constify.
+	* remote.c (threadlist_test_cmd, threadinfo_test_cmd)
+	(threadset_test_cmd, threadlist_update_test_cmd)
+	(threadalive_test): Constify.
+	* objc-lang.c (print_object_command): Constify.
+	* command.h (add_com): Constify.
+	* cli/cli-dump.c (restore_command): Constify.
+	* cli/cli-cmds.c (pwd_command, echo_command, quit_command)
+	(help_command, complete_command, shell_command, edit_command)
+	(list_command, disassemble_command, make_command)
+	(apropos_command, alias_command): Constify.
+	* cli/cli-script.c (document_command, define_command)
+	(while_command, if_command, validate_comname): Constify.
+	* cli/cli-decode.c (struct cmd_list_element): Change type of
+	"fun".
+	* target.c (do_monitor_command, flash_erase_command): Constify.
+	* regcache.c (reg_flush_command): Constify.
+	* reverse.c (reverse_step, reverse_next, reverse_stepi)
+	(reverse_nexti, reverse_continue, reverse_finish)
+	(save_bookmark_command, goto_bookmark_command)
+	(exec_reverse_once): Constify.
+	* python/python.c (python_interactive_command, python_command):
+	Constify.
+	* typeprint.c (ptype_command, whatis_command, whatis_exp):
+	Constify.
+	* solib.c (sharedlibrary_command, no_shared_libraries): Constify.
+	* gcore.c (gcore_command): Constify.
+
+2017-11-07  Tom Tromey  <tom@tromey.com>
+
+	* printcmd.c (x_command): Call set_repeat_arguments.
+	* cli/cli-cmds.c (list_command): Call set_repeat_arguments.
+	* top.c (repeat_arguments): New global.
+	(set_repeat_arguments): New function.
+	(execute_command): Handle repeat_arguments.
+	(show_commands): Calls set_repeat_arguments.
+	* command.h (set_repeat_arguments): Declare.
+
+2017-11-07  Tom Tromey  <tom@tromey.com>
+
+	* stack.c (backtrace_command): Use std::string.
+	(backtrace_command_1): Make "count_exp" const.
+
+2017-11-07  Tom Tromey  <tom@tromey.com>
+
+	* source.c (directory_switch, mod_path, add_path): Constify.
+	* defs.h (add_path, mod_path, directory_switch): Constify.
+	* mi/mi-cmd-env.c (env_mod_path): Constify.
+
+2017-11-07  Tom Tromey  <tom@tromey.com>
+
+	* infcmd.c (strip_bg_char): Return gdb::unique_xmalloc_ptr.
+	(run_command_1, continue_command, step_1, jump_command)
+	(signal_command, until_command, advance_command, finish_command)
+	(attach_command): Update.
+
+2017-11-07  Tom Tromey  <tom@tromey.com>
+
+	* command.h (set_cmd_cfunc): Don't declare.
+	* cli/cli-decode.c (set_cmd_cfunc): Now static.
+
+2017-11-07  Tom Tromey  <tom@tromey.com>
+
+	* stack.c (select_frame_command): Constify.
+	* cli/cli-decode.c (add_com_suppress_notification): Constify.
+	* command.h (add_com_suppress_notification): Constify.
+
+2017-11-07  Tom Tromey  <tom@tromey.com>
+
+	* breakpoint.c (stop_command): Constify.
+	* cli/cli-decode.c (struct cmd_list_element): Constify.
+	* command.h (add_abbrev_prefix_cmd): Constify.
+
+2017-11-07  Pedro Alves  <palves@redhat.com>
+
+	* breakpoint.c (extract_bp_kind): New enum.
+	(extract_bp_num, extract_bp_or_bp_range): New functions, partially
+	factored out from ...
+	(extract_bp_number_and_location): ... here.
+	* cli/cli-utils.c (get_number_trailer): Handle '-$variable'.
+
+2017-11-07  Pedro Alves  <palves@redhat.com>
+
+	* breakpoint.c (extract_bp_number_and_location): Change return
+	type to void.  Throw error instead of warning.
+	(enable_disable_command): Adjust.
+
+2017-11-07  Xavier Roirand  <roirand@adacore.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* breakpoint.c (map_breakpoint_number_range): New, factored out
+	from ...
+	(map_breakpoint_numbers): ... here.
+	(find_location_by_number): Change parameters from string to
+	breakpoint number and location.
+	(extract_bp_number_and_location): New function.
+	(enable_disable_bp_num_loc)
+	(enable_disable_breakpoint_location_range)
+	(enable_disable_command): New functions, factored out ...
+	(enable_command, disable_command): ... these functions, and
+	adjusted to support ranges.
+	* NEWS: Document enable/disable breakpoint location range feature.
+
+2017-11-06  Luis Machado  <luis.machado@linaro.org>
+
+	* MAINTAINERS (Write After Approval): Update my e-mail address.
+
+2017-11-06  Pedro Alves  <palves@redhat.com>
+
+	* gnu-nat.c (gnu_terminal_init): Delete.
+	(gnu_target): Don't install gnu_terminal_init.
+	* inflow.c (child_terminal_init_with_pgrp): Delete, merged with ...
+	(child_terminal_init): ... this function.
+
+2017-11-06  Pedro Alves  <palves@redhat.com>
+
+	* common/common.m4 (GDB_AC_COMMON): No longer check termio.h nor
+	sgtty.h.
+	* config.in, configure: Regenerate.
+
+2017-11-06  Pedro Alves  <palves@redhat.com>
+
+	* event-top.c: Check SIGTSTP instead of STOP_SIGNAL thoughout.
+	(async_init_signals): Adjust.
+	(handle_stop_sig): Rename to ...
+	(handle_sigtstp): ... this.
+	(async_stop_sig): Rename to ...
+	(async_sigtstp_handler): ... this, and delete STOP_SIGNAL !=
+	SIGTSTP path.
+	* event-top.h: Move signal.h include to the top.  Check SIGTSTP
+	instead of STOP_SIGNAL thoughout.
+	(handle_stop_sig): Rename to ...
+	(handle_sigtstp): ... this.
+	* top.c (command_line_input): Replace STOP_SIGNAL -> SIGTSTP.
+
+2017-11-06  Pedro Alves  <palves@redhat.com>
+
+	* inflow.c (child_terminal_inferior, child_terminal_ours_1): No
+	longer set flags twice in row.
+
+2017-11-06  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (SER_HARDWIRE): Update comment.
+	(HFILES_NO_SRCDIR): Remove gdb_termios.h.
+	* common/gdb_termios.h: Delete file.
+	* common/job-control.c: Include termios.h and unistd.h instead of
+	gdb_termios.h.
+	(gdb_setpgid): Remove HAVE_TERMIOS || TIOCGPGRP preprocessor
+	check.
+	(have_job_control): Check HAVE_TERMIOS_H instead of HAVE_TERMIOS.
+	Remove sgtty code.
+	* configure.ac: No longer check for termio.h and sgtty.h.
+	* configure: Regenerate.
+	* inflow.c: Include termios.h instead of gdb_termios.h.  Replace
+	PROCESS_GROUP_TYPE checks with HAVE_TERMIOS_H checks throughout.
+	Replace PROCESS_GROUP_TYPE references with pid_t references
+	throughout.
+	(gdb_getpgrp): Delete.
+	(set_initial_gdb_ttystate): Use tcgetpgrp instead of gdb_getpgrp.
+	(child_terminal_inferior): Remove comment.  Remove sgtty code.
+	(child_terminal_ours_1): Use tcgetpgrp directly instead of
+	gdb_getpgrp.  Use serial_set_tty_state instead aof
+	serial_noflush_set_tty_state.  Remove sgtty code.
+	* inflow.h: Include unistd.h instead of gdb_termios.h.  Replace
+	PROCESS_GROUP_TYPE check with HAVE_TERMIOS_H check.
+	(inferior_process_group): Now returns pid_t.
+	* ser-base.c (ser_base_noflush_set_tty_state): Delete.
+	* ser-base.h (ser_base_noflush_set_tty_state): Delete.
+	* ser-event.c (serial_event_ops): Update.
+	* ser-go32.c (dos_noflush_set_tty_state): Delete.
+	(dos_ops): Update.
+	* ser-mingw.c (hardwire_ops, tty_ops, pipe_ops, tcp_ops): Update.
+	* ser-pipe.c (pipe_ops): Update.
+	* ser-tcp.c (tcp_ops): Update.
+	* ser-unix.c: Include termios.h instead of gdb_termios.h.  Remove
+	HAVE_TERMIOS checks.
+	[HAVE_TERMIO] (struct hardwire_ttystate): Delete.
+	[HAVE_SGTTY] (struct hardwire_ttystate): Delete.
+	(get_tty_state, set_tty_state): Drop termio and sgtty code, and
+	assume termios.
+	(hardwire_noflush_set_tty_state): Delete.
+	(hardwire_print_tty_state, hardwire_drain_output)
+	(hardwire_flush_output, hardwire_flush_input)
+	(hardwire_send_break, hardwire_raw, hardwire_setbaudrate)
+	(hardwire_setstopbits, hardwire_setparity): Drop termio and sgtty
+	code, and assume termios.
+	(hardwire_ops): Update.
+	(_initialize_ser_hardwire): Remove HAVE_TERMIOS check.
+	* serial.c (serial_noflush_set_tty_state): Delete.
+	* serial.h (serial_noflush_set_tty_state): Delete.
+	(serial_ops::noflush_set_tty_state): Delete.
+
+2017-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* Makefile.in (SFILES): Remove doublest.c and dfp.c.
+	(HFILES_NO_SRCDIR): Remove doublest.h and dfp.h.
+	(COMMON_OBS): Remove doublest.o and dfp.o.
+	Do not build target-float.c (instead of doublest.c)
+	with -Wformat-nonliteral.
+
+	* doublest.c: Remove file.
+	* doublest.h: Remove file.
+	* dfp.c: Remove file.
+	* dfp.h: Remove file.
+
+	* target-float.c: Do not include "doublest.h" and "dfp.h".
+	(DOUBLEST): Move here from doublest.h.
+	(enum float_kind): Likewise.
+	(FLOATFORMAT_CHAR_BIT): Likewise.
+	(FLOATFORMAT_LARGEST_BYTES): Likewise.
+	(floatformat_totalsize_bytes): Move here from doublest.c.  Make static.
+	(floatformat_precision): Likewise.
+	(floatformat_normalize_byteorder, get_field, put_field): Likewise.
+	(floatformat_is_negative, floatformat_classify, floatformat_mantissa):
+	Likewise.
+	(host_float_format, host_double_format, host_long_double_format):
+	Likewise.
+	(floatformat_to_string, floatformat_from_string): Likewise.
+	(floatformat_to_doublest): Likewise.  Also, inline the original
+	convert_floatformat_to_doublest.
+	(floatformat_from_doublest): Likewise.  Also, inline the original
+	convert_floatformat_from_doublest.
+
+	Include "dpd/decimal128.h", "dpd/decimal64.h", and "dpd/decimal32.h".
+	(MAX_DECIMAL_STRING): Move here from dfp.c.
+	(match_endianness): Likewise.
+	(set_decnumber_context, decimal_check_errors): Likewise.
+	(decimal_from_number, decimal_to_number): Likewise.
+	(decimal_to_string, decimal_from_string): Likewise.  Make static.
+	(decimal_from_longest, decimal_from_ulongest): Likewise.
+	(decimal_to_longest): Likewise.
+	(decimal_binop, decimal_is_zero, decimal_compare): Likewise.
+	(decimal_convert): Likewise.
+
+2017-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* doublest.c: Do not include "gdbtypes.h".
+	(extract_typed_floating): Remove.
+	(store_typed_floating): Remove.
+	(convert_typed_floating): Remove.
+	* doublest.h (struct type): Remove.
+	(DOUBLEST_PRINT_FORMAT): Remove.
+	(DOUBLEST_SCAN_FORMAT): Remove.
+	(extract_typed_floating): Remove.
+	(store_typed_floating): Remove.
+	(convert_typed_floating): Remove.
+
+	* dfp.c (decimal_from_doublest): Remove.
+	(decimal_to_doublest): Remove.
+	* dfp.h: Do not include "doublest.h".
+	(decimal_from_doublest): Remove.
+	(decimal_to_doublest): Remove.
+
+	* value.c: Do not include "doublest.h" and "dfp.h".
+	(value_as_double): Remove.
+	(unpack_double): Remove.
+	(value_from_double): Remove.
+	(value_from_decfloat): Remove.
+	* value.h: Do not include "doublest.h".
+	(value_as_double): Remove.
+	(unpack_double): Remove.
+	(value_from_double): Remove.
+	(value_from_decfloat): Remove.
+
+2017-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* i386-tdep.c: Include "target-float.h".  Do not include "doublest.h".
+	(i386_extract_return_value): Use target_float_convert.
+	(i386_store_return_value): Likewise.
+	* i387-tdep.c (i387_register_to_value): Use target_float_convert.
+	(i387_value_to_register): Likewise.
+	* ia64-tdep.c: Include "target-float.h".  Do not include "doublest.h".
+	(ia64_register_to_value): Use target_float_convert.
+	(ia64_value_to_register): Likewise.
+	(ia64_extract_return_value): Likewise.
+	(ia64_store_return_value): Likewise.
+	(ia64_push_dummy_call): Likewise.
+	* m68k-tdep.c: Include "target-float.h".
+	(m68k_register_to_value): Use target_float_convert.
+	(m68k_value_to_register): Likewise.
+	(m68k_svr4_extract_return_value): Likewise.
+	(m68k_svr4_store_return_value): Likewise.
+	* ppc-sysv-tdep.c: Include "target-float.h".
+	(ppc_sysv_abi_push_dummy_call): Use target_float_convert.
+	(do_ppc_sysv_return_value): Likewise.
+	(ppc64_sysv_abi_push_freg): Likewise.
+	(ppc64_sysv_abi_return_value_base): Likewise.
+	* rs6000-aix-tdep.c: Include "target-float.h".
+	(rs6000_push_dummy_call): Use target_float_convert.
+	(rs6000_return_value): Likewise.
+	* rs6000-lynx178-tdep.c: Include "target-float.h".
+	(rs6000_lynx178_push_dummy_call): Use target_float_convert.
+	(rs6000_lynx178_return_value): Likewise.
+	* rs6000-tdep.c: Include "target-float.h".  Do not include "doublest.h".
+	(rs6000_register_to_value): Use target_float_convert.
+	(rs6000_value_to_register): Likewise.
+	* arm-tdep.c: Include "target-float.h".  Do not include "doublest.h".
+	(arm_extract_return_value): Use target_float_convert.
+	(arm_store_return_value): Likewise.
+	* sh-tdep.c: Include "target-float.h".  Do not include "doublest.h".
+	(sh_register_convert_to_virtual): Use target_float_convert.
+	(sh_register_convert_to_raw): Likewise.
+	* sh64-tdep.c: Include "target-float.h".
+	(sh64_extract_return_value): Use target_float_convert.
+	(sh64_register_convert_to_virtual): Likewise.
+	(sh64_register_convert_to_raw): Likewise.  Fix argument types.
+
+2017-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* target-float.c (floatformat_to_host_double): New function.
+	(floatformat_from_host_double): Likewise.
+	(target_float_to_host_double): Likewise.
+	(target_float_from_host_double): Likewise.
+	* target-float.h (target_float_to_host_double): Add prototype.
+	(target_float_from_host_double): Likewise.
+
+	* guile/scm-value.c: Include "target-float.h".
+	(gdbscm_value_to_real): Use target_float_to_host_double.
+	Handle integer source values via value_as_long.
+	* guile/scm-math.c: Include "target-float.h".  Do not include
+	"doublest.h", "dfp.h", and "expression.h".
+	(vlscm_convert_typed_number): Use target_float_from_host_double.
+	(vlscm_convert_number): Likewise.
+
+	* python/py-value.c (valpy_float): Use target_float_to_host_double.
+	(convert_value_from_python): Use target_float_from_host_double.
+
+2017-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* ada-lang.c (cast_to_fixed): Reimplement in target arithmetic.
+	(cast_from_fixed): Likewise.
+	(ada_scaling_type): New function.
+	(ada_delta): Return value instead of DOUBLEST.  Perform target
+	arithmetic instead of host arithmetic.
+	(scaling_factor): Rename to ...
+	(ada_scaling_factor) ... this.  Make non-static.  Return value instead
+	of DOUBLEST.  Perform target arithmetic instead of host arithmetic.
+	(ada_fixed_to_float): Remove.
+	(ada_float_to_fixed): Remove.
+	* ada-lang.h (ada_fixed_to_float): Remove.
+	(ada_float_to_fixed): Remove.
+	(ada_delta): Return value instead of DOUBLEST.
+	(ada_scaling_factor): Add prototype.
+
+	* ada-typeprint.c: Include "target-float.h".
+	(print_fixed_point_type): Perform target arithmetic instead of
+	host arithmetic.
+	* ada-valprint.c: Include "target-float.h".
+	(ada_val_print_num): Perform target arithmetic instead of
+	host arithmetic for fixed-point types.
+
+2017-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* target-float.c: Include <math.h>.
+	(floatformat_binop): New function.
+	(floatformat_compare): Likewise.
+	(target_float_binop): Likewise.
+	(target_float_compare): Likewise.
+	* target-float.h: Include "expression.h".
+	(target_float_binop): Add prototype.
+	(target_float_compare): Likewise.
+
+	* valarith.c: Do not include "doublest.h" and "dfp.h".
+	Include "common/byte-vector.h".
+	(value_args_as_decimal): Remove, replace by ...
+	(value_args_as_target_float): ... this function.  Handle both
+	binary and decimal target floating-point formats.
+	(scalar_binop): Handle both binary and decimal FP using
+	value_args_as_target_float and target_float_binop.
+	(value_equal): Handle both binary and decimal FP using
+	value_args_as_target_float and target_float_compare.
+	(value_less): Likewise.
+	(value_pos): Handle all scalar types as simple copy.
+	(value_neg): Handle all scalar types via BINOP_SUB from 0.
+	* dfp.c (decimal_binop): Throw error instead of internal_error
+	when called with an unsupported operation code.
+
+2017-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* target-float.c (target_float_to_string): New function.
+	(target_float_from_string): New function.
+	* target-float.h (target_float_to_string): Add prototype.
+	(target_float_from_string): Add prototype.
+
+	* valprint.c: Include "target-float.h".  Do not include
+	"doublest.h" and "dfp.h".
+	(print_floating): Use target_float_to_string.
+	* printcmd.c: Include "target-float.h".  Do not include "dfp.h".
+	(printf_floating): Use target_float_to_string.
+	* i387-tdep.c: Include "target-float.h".  Do not include "doublest.h".
+	(print_i387_value): Use target_float_to_string.
+	* mips-tdep.c: Include "target-float.h".
+	(mips_print_fp_register): Use target_float_to_string.
+	* sh64-tdep.c: Include "target-float.h".
+	(sh64_do_fp_register): Use target_float_to_string.
+
+	* parse.c: Include "target-float.h".  Do not include
+	"doublest.h" and "dfp.h".
+	(parse_float): Use target_float_from_string.
+	* stabsread.c: Include "target-float.h".  Do not include "doublest.h".
+	(define_symbol): Use target_float_from_string.
+	* gdbarch-selftests.c: Include "target-float.h".
+	(register_to_value_test): Use target_float_from_string.
+
+2017-11-06  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* Makefile.c (SFILES): Add target-float.c.
+	(HFILES_NO_SRCDIR): Add target-float.h.
+	(COMMON_OBS): Add target-float.o.
+	* target-float.h: New file.
+	* target-float.c: New file.
+
+	* doublest.c (floatformat_classify): Fix detection of float_zero.
+
+	* gdbtypes.c (is_floating_type): New function.
+	* gdbtypes.h (is_floating_type): Add prototype.
+
+	* value.c: Do not include "floatformat.h".
+	(unpack_double): Use target_float_is_valid.
+	(is_floating_value): New function.
+	* value.h (is_floating_value): Add prototype-
+
+	* valarith.c: Include "target-float.h".
+	(value_logical_not): Use target_float_is_zero.
+
+	* python/py-value.c: Include "target-float.h".
+	(valpy_nonzero): Use target_float_is_zero.
+
+2017-11-04  Tom Tromey  <tom@tromey.com>
+
+	* h8300-tdep.c (h8300_push_dummy_call): Use std::vector.
+
+2017-11-04  Tom Tromey  <tom@tromey.com>
+
+	* breakpoint.c (set_momentary_breakpoint): Return
+	breakpoint_up.
+	(until_break_command): Update.
+	(new_until_break_fsm): Change argument types to
+	breakpoint_up.
+	(set_momentary_breakpoint_at_pc): Return breakpoint_up.
+	(do_delete_breakpoint_cleanup, make_cleanup_delete_breakpoint):
+	Remove.
+	* infcmd.c (finish_forward): Update.
+	* breakpoint.h (set_momentary_breakpoint)
+	(set_momentary_breakpoint_at_pc): Return breakpoint_up.
+	(make_cleanup_delete_breakpoint): Remove.
+	(struct breakpoint_deleter): New.
+	(breakpoint_up): New typedef.
+	* infrun.c (insert_step_resume_breakpoint_at_sal_1): Update.
+	(insert_exception_resume_breakpoint): Update.
+	(insert_exception_resume_from_probe): Update.
+	(insert_longjmp_resume_breakpoint): Update.
+	* arm-linux-tdep.c (arm_linux_copy_svc): Update.
+	* elfread.c (elf_gnu_ifunc_resolver_stop): Update.
+	* infcall.c (call_function_by_hand_dummy): Update
+
+2017-11-04  Tom Tromey  <tom@tromey.com>
+
+	* c-typeprint.c (c_type_print_base): Use gdb::unique_xmalloc_ptr.
+
+2017-11-04  Tom Tromey  <tom@tromey.com>
+
+	* linux-tdep.c (linux_core_info_proc_mappings): Use
+	gdb::def_vector.
+	(linux_get_siginfo_data): Return gdb::byte_vector.  Remove
+	"size" argument.
+	(linux_corefile_thread): Update.
+	(linux_make_corefile_notes): Remove unused variable.
+
+2017-11-04  Tom Tromey  <tom@tromey.com>
+
+	* ppc-linux-tdep.c (ppc_linux_get_syscall_number): Use
+	gdb::byte_vector.
+
+2017-11-04  Tom Tromey  <tom@tromey.com>
+
+	* objfiles.c (do_free_objfile_cleanup): Remove.
+	* compile/compile-object-load.c (compile_object_load): Update.
+	* objfiles.h (make_cleanup_free_objfile): Remove.
+
+2017-11-04  Tom Tromey  <tom@tromey.com>
+
+	* sparc64-tdep.c (do_examine): Use gdb::def_vector.
+	(adi_read_versions): Change "tags" to "gdb_byte *".
+	(adi_print_versions): Likewise.
+
+2017-11-04  Tom Tromey  <tom@tromey.com>
+
+	* breakpoint.c
+	(scoped_rbreak_breakpoints::scoped_rbreak_breakpoints): Rename
+	from start_rbreak_breakpoints.
+	(scoped_rbreak_breakpoints): Rename from end_rbreak_breakpoints.
+	* breakpoint.h (class scoped_rbreak_breakpoints): New.
+	(start_rbreak_breakpoints, end_rbreak_breakpoints): Remove.
+	* symtab.c (do_end_rbreak_breakpoints): Remove.
+	(rbreak_command): Use scoped_rbreak_breakpoints, std::string.
+
+2017-11-04  Tom Tromey  <tom@tromey.com>
+
+	* cp-namespace.c (reset_directive_searched): Remove.
+	(cp_lookup_symbol_via_imports): Use scoped_restore.
+	* cp-support.c (reset_directive_searched): Remove.
+	(make_symbol_overload_list_using): Use scoped_restore.
+	* d-namespace.c (d_lookup_symbol_imports): Use scoped_restore.
+	(reset_directive_searched): Remove.
+
+2017-11-04  Tom Tromey  <tom@tromey.com>
+
+	* symfile.c (find_separate_debug_file_by_debuglink): Use
+	unique_xmalloc_ptr.
+
+2017-11-04  Tom Tromey  <tom@tromey.com>
+
+	* compile/compile-loc2c.c (compute_stack_depth_worker): Change
+	type of "info".
+	(compute_stack_depth): Likewise.
+	(do_compile_dwarf_expr_to_c): Use std::vector.
+
+2017-11-04  Tom Tromey  <tom@tromey.com>
+
+	* compile/compile-object-load.c (link_callbacks_einfo): Use
+	std::string.
+
+2017-11-04  Tom Tromey  <tom@tromey.com>
+
+	* dwarf2read.c (process_full_comp_unit, process_full_type_unit):
+	Use scoped_free_pendings.
+	* dbxread.c (dbx_symfile_read, dbx_psymtab_to_symtab_1): Use
+	scoped_free_pendings.
+	* xcoffread.c (xcoff_psymtab_to_symtab_1): Use scoped_free_pendings.
+	(xcoff_initial_scan): Likewise.
+	* buildsym.c (reset_symtab_globals): Update comment.
+	(scoped_free_pendings): Rename from really_free_pendings.
+	(prepare_for_building): Update comment.
+	(buildsym_init): Likewise.
+	* buildsym.h (class scoped_free_pendings): New class.
+	(really_free_pendings): Don't declare.
+
+2017-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* doublest.c (convert_doublest_to_floatformat): Fix uninitialized
+	output when converting a zero value to a special byteorder format.
+
+2017-11-02  Yao Qi  <yao.qi@linaro.org>
+
+	* frame.c (do_frame_register_read): Remove aspace.
+	* jit.c (jit_frame_sniffer): Likwise.
+	* ppc-linux-tdep.c (ppu2spu_sniffer): Likewise.
+	* regcache.c (regcache::regcache): Pass nullptr.
+	(regcache_print): Caller updated.
+	* regcache.h (regcache::regcache): Remove one constructor
+	parameter aspace.
+
+2017-11-02  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.h (regcache) <m_readonly_p>: Change it to const bool.
+
+2017-11-02  Yao Qi  <yao.qi@linaro.org>
+
+	* breakpoint.c (insert_single_step_breakpoints): Update.
+	* frame.c (struct frame_info) <aspace>: Add const.
+	(frame_save_as_regcache): Add const.
+	(get_frame_address_space): Return const address_space *.
+	* frame.h (get_frame_address_space): Update declaration.
+	* infrun.c (struct step_over_info) <aspace>: Add const.
+	(set_step_over_info): Make aspace const.
+	(displaced_step_prepare_throw): Change variable const.
+	(resume): Likewise.
+	(proceed): Likewise.
+	(adjust_pc_after_break): Likewise.
+	(save_waitstatus): Likewise.
+	(handle_signal_stop): Likewise.
+	(keep_going_pass_signal): Likewise.
+	* jit.c (jit_frame_sniffer): Add const.
+	* mips-tdep.c (mips_single_step_through_delay): Likewise.
+	* ppc-linux-tdep.c (ppu2spu_sniffer): Likewise.
+	* record-full.c (record_full_wait_1): Likewise.
+	* regcache.c (regcache::regcache): Change parameter to const.
+	* regcache.h (regcache::regcache): Likewise.
+	(regcache::aspace): Return const address_space *.
+	(regcache) <m_aspace>: Add const.
+
+2017-11-02  Yao Qi  <yao.qi@linaro.org>
+
+	* darwin-nat.c (cancel_breakpoint): Use regcache->aspace ().
+	* frame.c (create_sentinel_frame): Likewise.
+	* infrun.c (displaced_step_prepare_throw): Likewise.
+	(resume): Likewise.
+	(thread_still_needs_step_over_bp): Likewise.
+	(proceed): Likewise.
+	(do_target_wait): Likewise.
+	(adjust_pc_after_break): Likewise.
+	(handle_syscall_event): Likewise.
+	(save_waitstatus): Likewise.
+	(handle_inferior_event_1): Likewise.
+	(handle_signal_stop): Likewise.
+	(keep_going_pass_signal): Likewise.
+	* linux-nat.c (status_callback): Likewise.
+	(save_stop_reason): Likewise.
+	(resume_stopped_resumed_lwps): Likewise.
+	* record-full.c (record_full_exec_insn): Likewise.
+	(record_full_wait_1): Likewise.
+	* regcache.c (get_regcache_aspace): Remove.
+	* regcache.h (get_regcache_aspace): Remove.
+
+2017-11-02  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c (struct regcache_descr) <nr_raw_registers>: Remove.
+	(init_regcache_descr): Use gdbarch_num_regs.
+	(regcache::regcache): Likewise.
+	(regcache::get_register_status): Likewise.
+	(regcache::assert_raw_regnum): Likewise.
+	(regcache::cooked_read): Likewise.
+	(regcache::cooked_read_value): Likewise.
+	(regcache::cooked_write): Likewise.
+	(regcache::dump): Likewise.
+	(regcache::num_raw_registers): New method.
+	* regcache.h (class regcache) <num_raw_registers>: New.
+
+2017-11-02  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c (regcache::assert_regnum): New method.
+	(regcache::invalidate): Call assert_regnum.
+	(regcache::raw_update): Likewise.
+	(regcache::raw_write): Likewise.
+	(regcache::raw_read_part): Likewise.
+	(regcache::raw_write_part): Likewise.
+	(regcache::raw_supply): Likewise.
+	(regcache::raw_supply_integer): Likewise.
+	(regcache::raw_supply_zeroed): Likewise.
+	(regcache::raw_collect): Likewise.
+	(regcache::raw_collect_integer): Likewise.
+	* regcache.h (regcache::assert_regnum): Declare.
+
+2017-11-02  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c (regcache::dump): Remove code.
+
+2017-11-02  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c (struct regcache_descr) <sizeof_raw_register_status>:
+	Remove.
+	<sizeof_cooked_register_status>: Remove.
+	(init_regcache_descr): Update.
+	(regcache::regcache): Use nr_cooked_registers and nr_raw_registers.
+	(regcache::save): Likewise.
+	(regcache::dump): Likewise.
+
+2017-11-01  James Bowman  <james.bowman@ftdichip.com>
+
+	* ft32-tdep.c (ft32_fetch_instruction): New function.
+	(ft32_analyze_prologue): Use ft32_fetch_instruction().
+
+2017-10-31  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* cli/cli-script.c (execute_control_command): Rename to ...
+	(execute_control_command_1): ... this.
+	(execute_control_command): New function.
+
+2017-10-31  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* tracepoint.c (tfind_command): Remove const_cast.
+
+2017-10-30  Mike Gulick  <mgulick@mathworks.com>
+
+	* Makefile.in (HFILES_NO_SRCDIR): Remove reference to gdb.h.
+
+2017-10-30  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* common/common-utils.h (in_inclusive_range): New function.
+	* arm-tdep.c (arm_record_extension_space): Use
+	in_inclusive_range.
+	(thumb_record_ld_st_reg_offset): Use in_inclusive_range.
+	* cris-tdep.c (cris_spec_reg_applicable): Use
+	in_inclusive_range.
+
+2017-10-30  Pedro Alves  <palves@redhat.com>
+	    Simon Marchi  <simon.marchi@ericsson.com>
+
+	* remote.c (remote_set_syscall_catchpoint): Build a std::string
+	instead of a gdb::unique_xmalloc_ptr, using string_appendf.
+
+2017-10-30  Pedro Alves  <palves@redhat.com>
+
+	* common/common-utils.c (string_appendf, string_vappendf): New
+	functions.
+	* common/common-utils.h (string_appendf, string_vappendf): New
+	declarations.
+	* unittests/common-utils-selftests.c (string_appendf_func)
+	(test_appendf_func, string_vappendf_wrapper, string_appendf_tests)
+	(string_vappendf_tests): New functions.
+	(_initialize_common_utils_selftests): Register "string_appendf" and
+	"string_vappendf tests".
+
+2017-10-30  Pedro Alves  <palves@redhat.com>
+
+	* unittests/common-utils-selftests.c (format_func): New typedef.
+	(string_printf_tests, string_vprintf_tests): Tests factored out
+	and merged to ...
+	(test_format_func): ... this new function.
+	(string_printf_tests, string_vprintf_tests): Reimplement on top of
+	test_format_func.
+
+2017-10-29  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* darwin-nat.c: Remove include of gdb.h.
+
+2017-10-29  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* xtensa-xtregs.c: Fix formatting issues.
+
+2017-10-29  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* xtensa-xtregs.c (xtensa_regtable_t) <name>: Constify.
+
+2017-10-28  Maksim Dzabraev  <dzabraew@gmail.com>
+
+	PR python/21213
+	* python/py-infthread.c (thpy_get_inferior): Increment reference
+	of inferior before returning it.
+
+2017-10-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* unittests/common-utils-selftests.c (format): Add
+	ATTRIBUTE_PRINTF.
+
+2017-10-27  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* xml-syscall.c (struct syscall_desc): Add constructor.
+	<name>: Change type to std::string.
+	(syscall_desc_up): New typedef.
+	(syscall_desc_p): Remove typeder.
+	(DEF_VEC_P(syscall_desc_p)): Remove.
+	(struct syscall_group_desc): Add constructor.
+	<name>: Change type to std::string.
+	<syscalls>: Change type to std::vector.
+	(syscall_group_desc_up): New typedef.
+	(syscall_group_desc_p): Remove typedef.
+	(DEF_VEC_P(syscall_group_desc_p)): Remove.
+	(struct syscalls_info) <syscalls>: Change type to std::vector of
+	unique_ptr.
+	<groups>: Likewise.
+	<my_gdb_datadir>: Change type to std::string.
+	(syscalls_info_up): New typedef.
+	(allocate_syscalls_info): Remove.
+	(syscalls_info_free_syscalls_desc): Remove.
+	(syscalls_info_free_syscall_group_desc): Remove.
+	(free_syscalls_info): Remove.
+	(make_cleanup_free_syscalls_info): Remove.
+	(syscall_group_create_syscall_group_desc): Adjust.
+	(syscall_group_add_syscall): Adjust.
+	(syscall_create_syscall_desc): Adjust.
+	(syscall_parse_xml): Adjust, use unique_ptr instead of cleanup.
+	(init_syscalls_info): Adjust.
+	(syscall_group_get_group_by_name): Adjust.
+	(xml_get_syscall_number): Adjust.
+	(xml_get_syscall_name): Adjust.
+	(xml_list_of_syscalls): Adjust.
+	(xml_list_syscalls_by_group): Adjust.
+	(xml_list_of_groups): Adjust.
+
+2017-10-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* probe.h: Don't include gdb_vecs.h.
+	(DEF_VEC_P (probe_p)): Remove.
+	(find_probes_in_objfile): Return an std::vector.
+	* probe.c (find_probes_in_objfile): Likewise.
+	* breakpoint.c (breakpoint_objfile_data)
+	<longjmp_probes>: Change type to std::vector.
+	<exception_probes>: Likewise.
+	(free_breakpoint_probes): Don't manually free vectors.
+	(create_longjmp_master_breakpoint): Adjust.
+	(create_exception_master_breakpoint): Adjust.
+	* solib-svr4.c (svr4_create_probe_breakpoints): Change
+	parameter type, adjust.
+	(svr4_create_solib_event_breakpoints): Adjust.
+
+2017-10-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* breakpoint.c (breakpoint_objfile_data): Initialize fields.
+	(get_breakpoint_objfile_data): Allocate breakpoint_objfile_data
+	with new.
+	(free_breakpoint_probes): Rename to ...
+	(free_breakpoint_objfile_data): ... this, and call delete on
+	bp_objfile_data..
+
+2017-10-27  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* auto-load.c: Don't include gdb_vecs.h, include algorithm.
+	(loaded_script_ptr): Remove typedef.
+	(DEF_VEC_P (loaded_script_ptr)): Remove.
+	(struct collect_matching_scripts_data): Add constructor.
+	<scripts_p>: Change type to (pointer to) std::vector.
+	(collect_matching_scripts_data): Adjust.
+	(sort_scripts_by_name): Make suitable for std::sort.
+	(print_scripts): Don't sort vector, adjust to std::vector.
+	(auto_load_info_scripts): Sort vectors, adjust to std::vector.
+
+2017-10-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* symfile.c (filename_language): Make struct, not typedef.  Add
+	constructor.
+	<ext>: Change type to std::string.
+	(DEF_VEC_O (filename_language)): Remove.
+	(filename_language_table): Change type to std::vector.
+	(add_filename_language): Adjust.
+	(set_ext_lang_command): Adjust.
+	(info_ext_lang_command): Adjust.
+	(deduce_language_from_filename): Adjust.
+	(class scoped_restore_filename_language_table): Remove.
+	(test_filename_language): Use scoped_restore.
+	(test_set_ext_lang_command): Use scoped_restore, adjust to
+	std::vector change.
+
+2017-10-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* symfile.c: Include selftest.h.
+	(class scoped_restore_filename_language_table): New.
+	(test_filename_language): New test.
+	(test_set_ext_lang_command): New test.
+	(_initialize_symfile): Register tests.
+
+2017-10-27  Keith Seitz  <keiths@redhat.com>
+
+	* breakpoint.c (print_breakpoint_location): Use the symbol saved
+	in the bp_location, falling back to find_pc_sect_function when
+	needed.
+	(add_location_to_breakpoint): Save sal->symbol.
+	* breakpoint.h (struct bp_location) <symbol>: New field.
+	* symtab.c (find_function_start_sal): Save the symbol into the SaL.
+	* symtab.h (struct symtab_and_line) <symbol>: New field.
+
+2017-10-26  Patrick Frants  <osscontribute@gmail.com>
+
+	PR gdb/13669
+	* cp-valprint.c (cp_print_value_fields): Use obstack_blank_fast
+	to rewind obstack.
+
+2017-10-26  Pedro Alves  <palves@redhat.com>
+
+	* remote.c (remote_async_terminal_ours_p): Delete.
+	(remote_open_1, remote_terminal_inferior, remote_terminal_ours):
+	Remove references to 'remote_async_terminal_ours_p'.
+
+2017-10-26  Yao Qi  <yao.qi@linaro.org>
+
+	* breakpoint.h (regular_breakpoint_inserted_here_p): Remove.
+
+2017-10-26  Yao Qi  <yao.qi@linaro.org>
+
+	* break-catch-sig.c (signal_catchpoint_breakpoint_hit): Make
+	aspace const.
+	* break-catch-syscall.c (breakpoint_hit_catch_syscall):
+	Likewise.
+	* breakpoint.c (bpstat_check_location): Remove cast.
+	(breakpoint_hit_catch_fork): Make aspce const.
+	(breakpoint_hit_catch_solib): Likewise.
+	(breakpoint_hit_catch_exec): Likewise.
+	(breakpoint_hit_ranged_breakpoint): Likewise.
+	(breakpoint_hit_watchpoint): Likewise.
+	(base_breakpoint_breakpoint_hit): Likewise.
+	(bkpt_breakpoint_hit): Likewise.
+	(dprintf_breakpoint_hit): Likewise.
+	(tracepoint_breakpoint_hit): Likewise.
+	* breakpoint.h (breakpoint_ops) <breakpoint_hit>: Likewise.
+
+2017-10-26  Yao Qi  <yao.qi@linaro.org>
+
+	* breakpoint.c (breakpoint_location_address_match): Change
+	"struct address_space *" to "const address_space".
+	(breakpoint_location_address_range_overlap): Likewise.
+	(breakpoint_here_p): Likewise.
+	(breakpoint_in_range_p): Likewise.
+	(moribund_breakpoint_here_p): Likewise.
+	(bp_location_inserted_here_p): Likewise.
+	(software_breakpoint_inserted_here_p): Likewise.
+	(hardware_breakpoint_inserted_here_p): Likewise.
+	(hardware_watchpoint_inserted_in_range): Likewise.
+	(bpstat_check_location): Likewise.
+	(bpstat_stop_status): Likewise.
+	(breakpoint_address_match): Likewise.
+	(breakpoint_address_match_range): Likewise.
+	(breakpoint_location_address_match): Likewise.
+	(breakpoint_location_address_range_overlap): Likewise.
+	(insert_single_step_breakpoint): Likewise.
+	(breakpoint_has_location_inserted_here): Likewise.
+	(single_step_breakpoint_inserted_here_p): Likewise.
+	(pc_at_non_inline_function): Likewise.
+	* breakpoint.h (bpstat_stop_status): Update declaration.
+	(breakpoint_here_p): Likewise.
+	(breakpoint_in_range_p): Likewise.
+	(moribund_breakpoint_here_p): Likewise.
+	(breakpoint_inserted_here_p): Likewise.
+	(software_breakpoint_inserted_here_p): Likewise.
+	(hardware_breakpoint_inserted_here_p): Likewise.
+	(breakpoint_has_location_inserted_here): Likewise.
+	(single_step_breakpoint_inserted_here_p): Likewise.
+	(hardware_watchpoint_inserted_in_range): Likewise.
+	(breakpoint_address_match): Likewise.
+	(insert_single_step_breakpoint): Likewise.
+	(pc_at_non_inline_function): Likewise.
+	* gdbthread.h (thread_has_single_step_breakpoint_here): Likewise.
+	* record.c (record_check_stopped_by_breakpoint): Likewise.
+	* record.h (record_check_stopped_by_breakpoint): Likewise.
+	* thread.c (thread_has_single_step_breakpoint_here): Likewise.
+
+2017-10-25  Yao Qi  <yao.qi@linaro.org>
+
+	* aarch32-linux-nat.c (aarch32_gp_regcache_supply): Use
+	regcache->arch () instead get_regcache_arch.
+	* aarch64-fbsd-nat.c (aarch64_fbsd_fetch_inferior_registers):
+	Likewise.
+	(aarch64_fbsd_store_inferior_registers): Likewise.
+	* aarch64-linux-nat.c (fetch_gregs_from_thread): Likewise.
+	(store_gregs_to_thread): Likewise.
+	(fetch_fpregs_from_thread): Likewise.
+	(store_fpregs_to_thread): Likewise.
+	* aarch64-tdep.c (aarch64_extract_return_value): Likewise.
+	(aarch64_store_return_value): Likewise.
+	(aarch64_software_single_step): Likewise.
+	* aix-thread.c (aix_thread_wait): Likewise.
+	(supply_reg32): Likewise.
+	(supply_sprs64): Likewise.
+	(supply_sprs32): Likewise.
+	(fill_gprs64): Likewise.
+	(fill_gprs32): Likewise.
+	(fill_sprs64): Likewise.
+	(fill_sprs32): Likewise.
+	(store_regs_user_thread): Likewise.
+	(store_regs_kernel_thread): Likewise.
+	* alpha-bsd-nat.c (alphabsd_fetch_inferior_registers): Likewise.
+	(alphabsd_store_inferior_registers): Likewise.
+	* alpha-tdep.c (alpha_extract_return_value): Likewise.
+	(alpha_store_return_value): Likewise.
+	(alpha_deal_with_atomic_sequence): Likewise.
+	(alpha_next_pc): Likewise.
+	(alpha_software_single_step): Likewise.
+	* amd64-bsd-nat.c (amd64bsd_fetch_inferior_registers): Likewise.
+	(amd64bsd_store_inferior_registers): Likewise.
+	* amd64-linux-nat.c (amd64_linux_fetch_inferior_registers):
+	Likewise.
+	(amd64_linux_store_inferior_registers): Likewise.
+	* amd64-nat.c (amd64_supply_native_gregset): Likewise.
+	(amd64_collect_native_gregset): Likewise.
+	* amd64-obsd-tdep.c (amd64obsd_supply_uthread): Likewise.
+	(amd64obsd_collect_uthread): Likewise.
+	* amd64-tdep.c (amd64_supply_fpregset): Likewise.
+	(amd64_collect_fpregset): Likewise.
+	(amd64_supply_fxsave): Likewise.
+	(amd64_supply_xsave): Likewise.
+	(amd64_collect_fxsave): Likewise.
+	(amd64_collect_xsave): Likewise.
+	* arc-tdep.c (arc_write_pc): Likewise.
+	* arch-utils.c (default_skip_permanent_breakpoint): Likewise.
+	* arm-fbsd-nat.c (arm_fbsd_fetch_inferior_registers): Likewise.
+	(arm_fbsd_store_inferior_registers): Likewise.
+	* arm-linux-nat.c (fetch_vfp_regs): Likewise.
+	(store_vfp_regs): Likewise.
+	(arm_linux_fetch_inferior_registers): Likewise.
+	(arm_linux_store_inferior_registers): Likewise.
+	* arm-linux-tdep.c (arm_linux_supply_gregset): Likewise.
+	(arm_linux_sigreturn_next_pc): Likewise.
+	(arm_linux_get_next_pcs_syscall_next_pc): Likewise.
+	* arm-nbsd-nat.c (arm_supply_gregset): Likewise.
+	(fetch_register): Likewise.
+	(store_register): Likewise.
+	* arm-tdep.c (arm_is_thumb): Likewise.
+	(displaced_in_arm_mode): Likewise.
+	(bx_write_pc): Likewise.
+	(arm_get_next_pcs_addr_bits_remove): Likewise.
+	(arm_software_single_step): Likewise.
+	(arm_extract_return_value): Likewise.
+	(arm_store_return_value): Likewise.
+	(arm_write_pc): Likewise.
+	* bfin-tdep.c (bfin_extract_return_value): Likewise.
+	* bsd-uthread.c (bsd_uthread_fetch_registers): Likewise.
+	(bsd_uthread_store_registers): Likewise.
+	* core-regset.c (fetch_core_registers): Likewise.
+	* corelow.c (get_core_registers): Likewise.
+	* cris-tdep.c (cris_store_return_value): Likewise.
+	(cris_extract_return_value): Likewise.
+	(find_step_target): Likewise.
+	(find_step_target): Likewise.
+	(cris_software_single_step): Likewise.
+	* ctf.c (ctf_fetch_registers): Likewise.
+	* darwin-nat.c (cancel_breakpoint): Likewise.
+	* fbsd-tdep.c (fbsd_collect_thread_registers): Likewise.
+	* frv-tdep.c (frv_extract_return_value): Likewise.
+	* ft32-tdep.c (ft32_store_return_value): Likewise.
+	(ft32_extract_return_value): Likewise.
+	* go32-nat.c (fetch_register): Likewise.
+	(go32_fetch_registers): Likewise.
+	(go32_store_registers): Likewise.
+	(store_register): Likewise.
+	* h8300-tdep.c (h8300_extract_return_value): Likewise.
+	(h8300_store_return_value): Likewise.
+	* hppa-linux-nat.c (fetch_register): Likewise.
+	(store_register): Likewise.
+	(hppa_linux_fetch_inferior_registers): Likewise.
+	(hppa_linux_store_inferior_registers): Likewise.
+	* i386-darwin-nat.c (i386_darwin_fetch_inferior_registers): Likewise.
+	(i386_darwin_store_inferior_registers): Likewise.
+	* i386-gnu-nat.c (gnu_fetch_registers): Likewise.
+	(gnu_store_registers): Likewise.
+	* i386-linux-nat.c (fetch_register): Likewise.
+	(store_register): Likewise.
+	(supply_gregset): Likewise.
+	(fill_gregset): Likewise.
+	(i386_linux_fetch_inferior_registers): Likewise.
+	(i386_linux_store_inferior_registers): Likewise.
+	(i386_linux_resume): Likewise.
+	* i386-linux-tdep.c (i386_linux_get_syscall_number_from_regcache):
+	Likewise.
+	* i386-nto-tdep.c (i386nto_supply_gregset): Likewise.
+	* i386-obsd-nat.c (i386obsd_supply_pcb): Likewise.
+	* i386-obsd-tdep.c (i386obsd_supply_uthread): Likewise.
+	(i386obsd_collect_uthread): Likewise.
+	* i386-tdep.c (i386_mmx_regnum_to_fp_regnum): Likewise.
+	(i386_supply_gregset): Likewise.
+	(i386_collect_gregset): Likewise.
+	(i386_supply_fpregset): Likewise.
+	(i386_collect_fpregset): Likewise.
+	(i386_mpx_bd_base): Likewise.
+	* i386-v4-nat.c	(supply_fpregset): Likewise.
+	(fill_fpregset): Likewise.
+	* i387-tdep.c (i387_supply_fsave): Likewise.
+	(i387_collect_fsave): Likewise.
+	(i387_supply_fxsave): Likewise.
+	(i387_collect_fxsave): Likewise.
+	(i387_supply_xsave): Likewise.
+	(i387_collect_xsave): Likewise.
+	* ia64-linux-nat.c (ia64_linux_fetch_registers): Likewise.
+	(ia64_linux_store_registers): Likewise.
+	* ia64-tdep.c (ia64_access_rse_reg): Likewise.
+	(ia64_extract_return_value): Likewise.
+	(ia64_store_return_value): Likewise.
+	(find_func_descr): Likewise.
+	* inf-child.c (inf_child_fetch_inferior_registers): Likewise.
+	* inf-ptrace.c (inf_ptrace_fetch_registers): Likewise.
+	(inf_ptrace_store_registers): Likewise.
+	* infrun.c (use_displaced_stepping): Likewise.
+	(displaced_step_prepare_throw): Likewise.
+	(resume): Likewise.
+	(proceed): Likewise.
+	(do_target_wait): Likewise.
+	(adjust_pc_after_break): Likewise.
+	(handle_inferior_event_1): Likewise.
+	(handle_signal_stop): Likewise.
+	(save_infcall_suspend_state): Likewise.
+	(restore_infcall_suspend_state): Likewise.
+	* iq2000-tdep.c (iq2000_extract_return_value): Likewise.
+	* jit.c (jit_frame_prev_register): Likewise.
+	* linux-nat.c (save_stop_reason): Likewise.
+	(linux_nat_wait_1): Likewise.
+	(resume_stopped_resumed_lwps): Likewise.
+	* linux-record.c (record_linux_sockaddr): Likewise.
+	(record_linux_msghdr): Likewise.
+	(record_linux_system_call): Likewise.
+	* linux-tdep.c (linux_collect_thread_registers): Likewise.
+	* lm32-tdep.c (lm32_extract_return_value): Likewise.
+	(lm32_store_return_value): Likewise.
+	* m32c-tdep.c (m32c_read_flg): Likewise.
+	(m32c_pseudo_register_read): Likewise.
+	(m32c_pseudo_register_write): Likewise.
+	* m32r-linux-tdep.c (m32r_linux_supply_gregset): Likewise.
+	(m32r_linux_collect_gregset): Likewise.
+	* m32r-tdep.c (m32r_store_return_value): Likewise.
+	(m32r_extract_return_value): Likewise.
+	* m68k-bsd-nat.c (m68kbsd_supply_fpregset): Likewise.
+	(m68kbsd_collect_fpregset): Likewise.
+	* m68k-bsd-tdep.c (m68kbsd_supply_fpregset): Likewise.
+	* m68k-linux-nat.c (fetch_register): Likewise.
+	(old_fetch_inferior_registers): Likewise.
+	(old_store_inferior_registers): Likewise.
+	(store_regs): Likewise.
+	* m68k-tdep.c (m68k_svr4_extract_return_value): Likewise.
+	(m68k_svr4_store_return_value): Likewise.
+	* m88k-tdep.c (m88k_store_arguments): Likewise.
+	* mi/mi-main.c (mi_cmd_data_list_changed_registers): Likewise.
+	(mi_cmd_data_write_register_values): Likewise.
+	* mips-fbsd-nat.c (mips_fbsd_fetch_inferior_registers): Likewise.
+	(mips_fbsd_store_inferior_registers): Likewise.
+	* mips-fbsd-tdep.c (mips_fbsd_supply_fpregs): Likewise.
+	(mips_fbsd_supply_gregs): Likewise.
+	(mips_fbsd_collect_fpregs): Likewise.
+	(mips_fbsd_collect_gregs): Likewise.
+	(mips_fbsd_supply_fpregset): Likewise.
+	(mips_fbsd_collect_fpregset): Likewise.
+	(mips_fbsd_supply_gregset): Likewise.
+	(mips_fbsd_collect_gregset): Likewise.
+	* mips-linux-nat.c (supply_gregset): Likewise.
+	(fill_gregset): Likewise.
+	(supply_fpregset): Likewise.
+	(fill_fpregset): Likewise.
+	* mips-linux-tdep.c (mips_supply_gregset): Likewise.
+	(mips_fill_gregset): Likewise.
+	(mips_supply_fpregset): Likewise.
+	(mips_fill_fpregset): Likewise.
+	(mips64_supply_gregset): Likewise.
+	(micromips_linux_sigframe_validate): Likewise.
+	* mips-nbsd-nat.c (mipsnbsd_fetch_inferior_registers): Likewise.
+	(mipsnbsd_fetch_inferior_registers): Likewise.
+	(mipsnbsd_store_inferior_registers): Likewise.
+	* mips-nbsd-tdep.c (mipsnbsd_supply_fpregset): Likewise.
+	(mipsnbsd_supply_gregset): Likewise.
+	(mipsnbsd_iterate_over_regset_sections): Likewise.
+	(mipsnbsd_supply_reg): Likewise.
+	(mipsnbsd_supply_fpreg): Likewise.
+	* mips-tdep.c (mips_in_frame_stub): Likewise.
+	(mips_dummy_id): Likewise.
+	(is_octeon_bbit_op): Likewise.
+	(micromips_bc1_pc): Likewise.
+	(extended_mips16_next_pc): Likewise.
+	(mips16_next_pc): Likewise.
+	(deal_with_atomic_sequence): Likewise.
+	* moxie-tdep.c (moxie_process_readu): Likewise.
+	* nios2-tdep.c (nios2_get_next_pc): Likewise.
+	* nto-procfs.c (procfs_store_registers): Likewise.
+	* ppc-fbsd-nat.c (ppcfbsd_fetch_inferior_registers): Likewise.
+	(ppcfbsd_store_inferior_registers): Likewise.
+	* ppc-linux-nat.c (fetch_vsx_register): Likewise.
+	(fetch_altivec_register): Likewise.
+	(get_spe_registers): Likewise.
+	(fetch_spe_register): Likewise.
+	(fetch_altivec_registers): Likewise.
+	(fetch_all_gp_regs): Likewise.
+	(fetch_all_fp_regs): Likewise.
+	(store_vsx_register): Likewise.
+	(store_altivec_register): Likewise.
+	(set_spe_registers): Likewise.
+	(store_spe_register): Likewise.
+	(store_altivec_registers): Likewise.
+	(store_all_gp_regs): Likewise.
+	(store_all_fp_regs): Likewise.
+	* ppc-linux-tdep.c (ppc_linux_supply_gregset): Likewise.
+	(ppc_linux_collect_gregset): Likewise.
+	(ppc_canonicalize_syscall): Likewise.
+	(ppc_linux_record_signal): Likewise.
+	(ppu2spu_prev_register): Likewise.
+	* ppc-nbsd-nat.c (ppcnbsd_supply_pcb): Likewise.
+	* ppc-obsd-nat.c (ppcobsd_fetch_registers): Likewise.
+	(ppcobsd_store_registers): Likewise.
+	* ppc-ravenscar-thread.c (ppc_ravenscar_generic_fetch_registers):
+	Likewise.
+	(ppc_ravenscar_generic_store_registers): Likewise.
+	* procfs.c (procfs_fetch_registers): Likewise.
+	(procfs_store_registers): Likewise.
+	* ravenscar-thread.c (ravenscar_fetch_registers): Likewise.
+	(ravenscar_store_registers): Likewise.
+	(ravenscar_prepare_to_store): Likewise.
+	* record-btrace.c (record_btrace_fetch_registers): Likewise.
+	* record-full.c (record_full_wait_1): Likewise.
+	(record_full_registers_change): Likewise.
+	(record_full_store_registers): Likewise.
+	(record_full_core_fetch_registers): Likewise.
+	(record_full_save): Likewise.
+	(record_full_goto_insn): Likewise.
+	* regcache.c (regcache_register_size): Likewise.
+	(get_regcache_arch): Remove.
+	(regcache_read_pc): Likewise.
+	* regcache.h (get_regcache_arch): Remove.
+	* remote-sim.c (gdbsim_fetch_register): Likewise.
+	(gdbsim_store_register): Likewise.
+	* remote.c (fetch_register_using_p): Likewise.
+	(send_g_packet): Likewise.
+	(remote_prepare_to_store): Likewise.
+	(store_registers_using_G): Likewise.
+	* reverse.c (save_bookmark_command): Likewise.
+	(goto_bookmark_command): Likewise.
+	* rs6000-aix-tdep.c (branch_dest): Likewise.
+	* rs6000-nat.c (rs6000_ptrace64): Likewise.
+	(fetch_register): Likewise.
+	* rs6000-tdep.c (ppc_supply_reg): Likewise.
+	(ppc_collect_reg): Likewise.
+	(ppc_collect_gregset): Likewise.
+	(ppc_collect_fpregset): Likewise.
+	(ppc_collect_vsxregset): Likewise.
+	(ppc_collect_vrregset): Likewise.
+	(ppc_displaced_step_hw_singlestep): Likewise.
+	(rs6000_pseudo_register_read): Likewise.
+	(rs6000_pseudo_register_write): Likewise.
+	* s390-linux-nat.c (supply_gregset): Likewise.
+	(fill_gregset): Likewise.
+	(s390_linux_fetch_inferior_registers): Likewise.
+	* s390-linux-tdep.c (s390_write_pc): Likewise.
+	(s390_software_single_step): Likewise.
+	(s390_all_but_pc_registers_record): Likewise.
+	(s390_linux_syscall_record): Likewise.
+	* sentinel-frame.c (sentinel_frame_prev_arch): Likewise.
+	* sh-nbsd-nat.c (shnbsd_fetch_inferior_registers): Likewise.
+	(shnbsd_store_inferior_registers): Likewise.
+	* sh-tdep.c (sh_extract_return_value_nofpu): Likewise.
+	(sh_extract_return_value_fpu): Likewise.
+	(sh_store_return_value_nofpu): Likewise.
+	(sh_corefile_supply_regset): Likewise.
+	(sh_corefile_collect_regset): Likewise.
+	* sh64-tdep.c (sh64_extract_return_value): Likewise.
+	(sh64_store_return_value): Likewise.
+	* sparc-linux-tdep.c (sparc32_linux_collect_core_fpregset): Likewise.
+	* sparc-nat.c (sparc_fetch_inferior_registers): Likewise.
+	(sparc_store_inferior_registers): Likewise.
+	* sparc-ravenscar-thread.c (register_in_thread_descriptor_p): Likewise.
+	(sparc_ravenscar_prepare_to_store): Likewise.
+	* sparc-tdep.c (sparc32_store_arguments): Likewise.
+	(sparc_analyze_control_transfer): Likewise.
+	(sparc_step_trap): Likewise.
+	(sparc_software_single_step): Likewise.
+	(sparc32_gdbarch_init): Likewise.
+	(sparc_supply_rwindow): Likewise.
+	(sparc_collect_rwindow): Likewise.
+	* sparc64-linux-tdep.c (sparc64_linux_collect_core_fpregset): Likewise.
+	* sparc64-nbsd-nat.c (sparc64nbsd_supply_gregset): Likewise.
+	(sparc64nbsd_collect_gregset): Likewise.
+	(sparc64nbsd_supply_fpregset): Likewise.
+	(sparc64nbsd_collect_fpregset): Likewise.
+	* sparc64-tdep.c (sparc64_store_arguments): Likewise.
+	(sparc64_supply_gregset): Likewise.
+	(sparc64_collect_gregset): Likewise.
+	(sparc64_supply_fpregset): Likewise.
+	(sparc64_collect_fpregset): Likewise.
+	* spu-linux-nat.c (spu_fetch_inferior_registers): Likewise.
+	* spu-tdep.c (spu_unwind_sp): Likewise.
+	(spu2ppu_prev_register): Likewise.
+	(spu_memory_remove_breakpoint): Likewise.
+	* stack.c (return_command): Likewise.
+	* tic6x-tdep.c (tic6x_extract_signed_field): Likewise.
+	* tracefile-tfile.c (tfile_fetch_registers): Likewise.
+	* tracefile.c (trace_save_ctf): Likewise.
+	* windows-nat.c (do_windows_fetch_inferior_registers): Likewise.
+	(do_windows_store_inferior_registers): Likewise.
+	(windows_resume): Likewise.
+	* xtensa-linux-nat.c (fill_gregset): Likewise.
+	(supply_gregset_reg): Likewise.
+	* xtensa-tdep.c (xtensa_register_write_masked): Likewise.
+	(xtensa_register_read_masked): Likewise.
+	(xtensa_supply_gregset): Likewise.
+	(xtensa_extract_return_value): Likewise.
+	(xtensa_store_return_value): Likewise.
+
+2017-10-25  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* doublest.c (floatformat_from_string): New function.
+	* doublest.h (floatformat_from_string): Add prototype.
+
+	* std-operator.def (OP_DOUBLE, OP_DECFLOAT): Remove, replace by ...
+	(OP_FLOAT): ... this.
+	* expression.h: Do not include "doublest.h".
+	(union exp_element): Replace doubleconst and decfloatconst by
+	new element floatconst.
+	* ada-lang.c (resolve_subexp): Handle OP_FLOAT instead of OP_DOUBLE.
+	(ada_evaluate_subexp): Likewise.
+	* eval.c (evaluate_subexp_standard): Handle OP_FLOAT instead of
+	OP_DOUBLE and OP_DECFLOAT.
+	* expprint.c (print_subexp_standard): Likewise.
+	(dump_subexp_body_standard): Likewise.
+	* breakpoint.c (watchpoint_exp_is_const): Likewise.
+
+	* parse.c: Include "dfp.h".
+	(write_exp_elt_dblcst, write_exp_elt_decfloatcst): Remove.
+	(write_exp_elt_floatcst): New function.
+	(operator_length_standard): Handle OP_FLOAT instead of OP_DOUBLE
+	and OP_DECFLOAT.
+	(operator_check_standard): Likewise.
+	(parse_float): Do not accept suffix.  Take type as input.  Return bool.
+	Return target format buffer instead of host DOUBLEST.
+	Use floatformat_from_string and decimal_from_string to parse
+	either binary or decimal floating-point types.
+	(parse_c_float): Remove.
+	* parser-defs.h: Do not include "doublest.h".
+	(write_exp_elt_dblcst, write_exp_elt_decfloatcst): Remove.
+	(write_exp_elt_floatcst): Add prototype.
+	(parse_float): Update prototype.
+	(parse_c_float): Remove.
+
+	* c-exp.y: Do not include "dfp.h".
+	(typed_val_float): Use byte buffer instead of DOUBLEST.
+	(typed_val_decfloat): Remove.
+	(DECFLOAT): Remove.
+	(FLOAT): Use OP_FLOAT and write_exp_elt_floatcst.
+	(parse_number): Update to new parse_float interface.
+	Parse suffixes and determine type before calling parse_float.
+	Handle decimal and binary FP types the same way.
+
+	* d-exp.y (typed_val_float): Use byte buffer instead of DOUBLEST.
+	(FLOAT_LITERAL): Use OP_FLOAT and write_exp_elt_floatcst.
+	(parse_number): Update to new parse_float interface.
+	Parse suffixes and determine type before calling parse_float.
+
+	* f-exp.y: Replace dval by typed_val_float.
+	(FLOAT): Use OP_FLOAT and write_exp_elt_floatcst.
+	(parse_number): Use parse_float instead of atof.
+
+	* go-exp.y (typed_val_float): Use byte buffer instead of DOUBLEST.
+	(parse_go_float): Remove.
+	(FLOAT): Use OP_FLOAT and write_exp_elt_floatcst.
+	(parse_number): Call parse_float instead of parse_go_float.
+	Parse suffixes and determine type before calling parse_float.
+
+	* p-exp.y (typed_val_float): Use byte buffer instead of DOUBLEST.
+	(FLOAT): Use OP_FLOAT and write_exp_elt_floatcst.
+	(parse_number): Update to new parse_float interface.
+	Parse suffixes and determine type before calling parse_float.
+
+	* m2-exp.y: Replace dval by byte buffer val.
+	(FLOAT): Use OP_FLOAT and write_exp_elt_floatcst.
+	(parse_number): Call parse_float instead of atof.
+
+	* rust-exp.y (typed_val_float): Use byte buffer instead of DOUBLEST.
+	(lex_number): Call parse_float instead of strtod.
+	(ast_dliteral): Use OP_FLOAT instead of OP_DOUBLE.
+	(convert_ast_to_expression): Handle OP_FLOAT instead of OP_DOUBLE.
+	Use write_exp_elt_floatcst.
+	(unit_testing): Remove static variable.
+	(rust_type): Do not check unit_testing.
+	(rust_lex_tests): Do not set uint_testing.  Set up dummy rust_parser.
+
+	* ada-exp.y (type_float, type_double): Remove.
+	(typed_val_float): Use byte buffer instead of DOUBLEST.
+	(FLOAT): Use OP_FLOAT and write_exp_elt_floatcst.
+	* ada-lex.l (processReal): Use parse_float instead of sscanf.
+
+2017-10-25  Alan Hayward  <alan.hayward@arm.com>
+
+	* aarch64-tdep.h (enum aarch64_regnum): Remove.
+	* arch/aarch64.h: New file.
+
+2017-10-24  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* dfp.h (decimal_from_string): Use const reference for argument.
+	* dfp.c (decimal_from_string): Likewise.
+
+2017-10-24  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* i387-tdep.c (print_i387_value): Use floatformat_to_string.
+	* sh64-tdep.c (sh64_do_fp_register): Likewise.
+	* mips-tdep.c (mips_print_fp_register): Likewise.
+
+2017-10-24  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* common/format.h (enum argclass): Replace decfloat_arg by
+	dec32float_arg, dec64float_arg, and dec128float_arg.
+	* common/format.c (parse_format_string): Update to return
+	new decimal float argument classes.
+
+	* printcmd.c (printf_decfloat): Rename to ...
+	(printf_floating): ... this.  Add argclass argument, and use it
+	instead of parsing the format string again.  Add support for
+	binary floating-point values, using floatformat_to_string.
+	Convert value to the target format if it doesn't already match.
+	(ui_printf): Call printf_floating instead of printf_decfloat,
+	also for double_arg / long_double_arg.  Pass argclass.
+
+	* dfp.c (decimal_to_string): Add format string argument.
+	* dfp.h (decimal_to_string): Likewise.
+
+	* doublest.c (floatformat_to_string): Add format string argument.
+	* doublest.h (floatformat_to_string): Likewise.
+
+2017-10-24  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* doublest.c (floatformat_precision): New routine.
+	(floatformat_to_string): Likewise.
+	* doublest.c (floatformat_to_string): Add prototype.
+
+	* printcmd.c (print_scalar_formatted): Only call print_floating
+	on floating-point types.
+	* valprint.c: Do not include "floatformat.h".
+	(generic_val_print_decfloat): Remove.
+	(generic_val_print): Call generic_val_print_float for both
+	TYPE_CODE_FLT and TYPE_CODE_DECFLOAT.
+	(print_floating): Use floatformat_to_string.  Handle decimal float.
+	(print_decimal_floating): Remove, merge into floatformat_to_string.
+	* value.h (print_decimal_floating): Remove.
+
+	* Makefile.in: Do not build doublest.c with -Wformat-nonliteral.
+
+2017-10-24  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* buildsym.c (end_symtab_get_static_block): Use std::stable_sort.
+
+2017-10-21  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* memattr.h: Don't include vec.h.
+	(struct mem_attrib): Initialize fields.
+	<unknown>: New static method.
+	(struct mem_region): Add constructors, operator<, initialize
+	fields.
+	* memattr.c: Include algorithm.
+	(default_mem_attrib, unknown_mem_attrib): Remove.
+	(user_mem_region_list): New global.
+	(target_mem_region_list, mem_region_list): Change type to
+	std::vector<mem_region>.
+	(mem_use_target): Now a function.
+	(target_mem_regions_valid): Change type to bool.
+	(mem_region_lessthan, mem_region_cmp, mem_region_init): Remove.
+	(require_user_regions): Adjust.
+	(require_target_regions): Adjust.
+	(create_mem_region): Adjust.
+	(lookup_mem_region): Adjust.
+	(invalidate_target_mem_regions): Adjust.
+	(mem_clear): Rename to...
+	(user_mem_clear): ... this, and adjust.
+	(mem_command): Adjust.
+	(info_mem_command): Adjust.
+	(mem_enable, enable_mem_command, mem_disable,
+	disable_mem_command): Adjust.
+	(mem_delete): Adjust.
+	(delete_mem_command): Adjust.
+	* memory-map.h (parse_memory_map): Return an std::vector.
+	* memory-map.c (parse_memory_map): Likewise.
+	(struct memory_map_parsing_data): Add constructor.
+	<memory_map>: Point to std::vector.
+	(memory_map_start_memory): Adjust.
+	(memory_map_end_memory): Adjust.
+	(memory_map_end_property): Adjust.
+	(clear_result): Remove.
+	* remote.c (remote_memory_map): Return an std::vector.
+	* target-debug.h (target_debug_print_VEC_mem_region_s__p):
+	Remove.
+	(target_debug_print_mem_region_vector): New.
+	* target-delegates.c: Regenerate.
+	* target.h (mem_region_vector): New typedef.
+	(to_memory_map): Return mem_region_vector.
+	(target_memory_map): Return an std::vector.
+	* target.c (target_memory_map): Return an std::vector.
+	(flash_erase_command): Adjust.
+
+2017-10-21  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* memory-map.c (struct memory_map_parsing_data) <property_name>:
+	Change type to std::string.
+	(memory_map_start_property): Adjust.
+	(memory_map_end_property): Adjust.
+
+2017-10-21  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* infrun.h: Include common/byte-vector.h.
+	(struct displaced_step_closure): New struct.
+	(struct buf_displaced_step_closure): New struct.
+	* infrun.c (displaced_step_closure::~displaced_step_closure):
+	Provide default implementation.
+	(displaced_step_clear): Deallocate step closure with delete.
+	* aarch64-tdep.c (displaced_step_closure): Rename to ...
+	(aarch64_displaced_step_closure): ... this, extend
+	displaced_step_closure.
+	(aarch64_displaced_step_data) <dsc>: Change type to
+	aarch64_displaced_step_closure.
+	(aarch64_displaced_step_copy_insn): Adjust to type change, use
+	unique_ptr.
+	(aarch64_displaced_step_fixup): Add cast for displaced step
+	closure.
+	* amd64-tdep.c (displaced_step_closure): Rename to ...
+	(amd64_displaced_step_closure): ... this, extend
+	displaced_step_closure.
+	<insn_buf>: Change type to std::vector<gdb_byte>.
+	<max_len>: Remove.
+	(fixup_riprel): Change type of DSC parameter, adjust to type
+	change of insn_buf.
+	(fixup_displaced_copy): Change type of DSC parameter.
+	(amd64_displaced_step_copy_insn): Instantiate
+	amd64_displaced_step_closure.
+	(amd64_displaced_step_fixup): Add cast for closure type, adjust
+	to type change of insn_buf.
+	* arm-linux-tdep.c (arm_linux_cleanup_svc): Change type of
+	parameter DSC.
+	(arm_linux_copy_svc): Likewise.
+	(cleanup_kernel_helper_return): Likewise.
+	(arm_catch_kernel_helper_return): Likewise.
+	(arm_linux_displaced_step_copy_insn): Instantiate
+	arm_displaced_step_closure.
+	* arm-tdep.c (arm_pc_is_thumb): Add cast for closure.
+	(displaced_read_reg): Change type of parameter DSC.
+	(branch_write_pc): Likewise.
+	(load_write_pc): Likewise.
+	(alu_write_pc): Likewise.
+	(displaced_write_reg): Likewise.
+	(arm_copy_unmodified): Likewise.
+	(thumb_copy_unmodified_32bit): Likewise.
+	(thumb_copy_unmodified_16bit): Likewise.
+	(cleanup_preload): Likewise.
+	(install_preload): Likewise.
+	(arm_copy_preload): Likewise.
+	(thumb2_copy_preload): Likewise.
+	(install_preload_reg): Likewise.
+	(arm_copy_preload_reg): Likewise.
+	(cleanup_copro_load_store): Likewise.
+	(install_copro_load_store): Likewise.
+	(arm_copy_copro_load_store) Likewise.
+	(thumb2_copy_copro_load_store): Likewise.
+	(cleanup_branch): Likewise.
+	(install_b_bl_blx): Likewise.
+	(arm_copy_b_bl_blx): Likewise.
+	(thumb2_copy_b_bl_blx): Likewise.
+	(thumb_copy_b): Likewise.
+	(install_bx_blx_reg): Likewise.
+	(arm_copy_bx_blx_reg): Likewise.
+	(thumb_copy_bx_blx_reg): Likewise.
+	(cleanup_alu_imm): Likewise.
+	(arm_copy_alu_imm): Likewise.
+	(thumb2_copy_alu_imm): Likewise.
+	(cleanup_alu_reg): Likewise.
+	(install_alu_reg): Likewise.
+	(arm_copy_alu_reg): Likewise.
+	(thumb_copy_alu_reg): Likewise.
+	(cleanup_alu_shifted_reg): Likewise.
+	(install_alu_shifted_reg): Likewise.
+	(arm_copy_alu_shifted_reg): Likewise.
+	(cleanup_load): Likewise.
+	(cleanup_store): Likewise.
+	(arm_copy_extra_ld_st): Likewise.
+	(install_load_store): Likewise.
+	(thumb2_copy_load_literal): Likewise.
+	(thumb2_copy_load_reg_imm): Likewise.
+	(arm_copy_ldr_str_ldrb_strb): Likewise.
+	(cleanup_block_load_all): Likewise.
+	(cleanup_block_store_pc): Likewise.
+	(cleanup_block_load_pc): Likewise.
+	(arm_copy_block_xfer): Likewise.
+	(thumb2_copy_block_xfer): Likewise.
+	(cleanup_svc): Likewise.
+	(install_svc): Likewise.
+	(arm_copy_svc): Likewise.
+	(thumb_copy_svc): Likewise.
+	(arm_copy_undef): Likewise.
+	(thumb_32bit_copy_undef): Likewise.
+	(arm_copy_unpred): Likewise.
+	(arm_decode_misc_memhint_neon): Likewise.
+	(arm_decode_unconditional): Likewise.
+	(arm_decode_miscellaneous): Likewise.
+	(arm_decode_dp_misc): Likewise.
+	(arm_decode_ld_st_word_ubyte): Likewise.
+	(arm_decode_media): Likewise.
+	(arm_decode_b_bl_ldmstm): Likewise.
+	(arm_decode_ext_reg_ld_st): Likewise.
+	(thumb2_decode_dp_shift_reg): Likewise.
+	(thumb2_decode_ext_reg_ld_st): Likewise.
+	(arm_decode_svc_copro): Likewise.
+	(thumb2_decode_svc_copro): Likewise.
+	(install_pc_relative): Likewise.
+	(thumb_copy_pc_relative_16bit): Likewise.
+	(thumb_decode_pc_relative_16bit): Likewise.
+	(thumb_copy_pc_relative_32bit): Likewise.
+	(thumb_copy_16bit_ldr_literal): Likewise.
+	(thumb_copy_cbnz_cbz): Likewise.
+	(thumb2_copy_table_branch): Likewise.
+	(cleanup_pop_pc_16bit_all): Likewise.
+	(thumb_copy_pop_pc_16bit): Likewise.
+	(thumb_process_displaced_16bit_insn): Likewise.
+	(decode_thumb_32bit_ld_mem_hints): Likewise.
+	(thumb_process_displaced_32bit_insn): Likewise.
+	(thumb_process_displaced_insn): Likewise.
+	(arm_process_displaced_insn): Likewise.
+	(arm_displaced_init_closure): Likewise.
+	(arm_displaced_step_fixup): Add cast for closure.
+	* arm-tdep.h: Include infrun.h.
+	(displaced_step_closure): Rename to ...
+	(arm_displaced_step_closure): ... this, extend
+	displaced_step_closure.
+	<u::svc::copy_svc_os>: Change type of parameter DSC.
+	<cleanup>: Likewise.
+	(arm_process_displaced_insn): Likewise.
+	(arm_displaced_init_closure): Likewise.
+	(displaced_read_reg): Likewise.
+	(displaced_write_reg): Likewise.
+	* i386-linux-tdep.c (i386_linux_displaced_step_copy_insn):
+	Adjust.
+	* i386-tdep.h: Include infrun.h.
+	(i386_displaced_step_closure): New typedef.
+	* i386-tdep.c (i386_displaced_step_copy_insn): Use
+	i386_displaced_step_closure.
+	(i386_displaced_step_fixup): Adjust.
+	* rs6000-tdep.c (ppc_displaced_step_closure): New typedef.
+	(ppc_displaced_step_copy_insn): Use ppc_displaced_step_closure
+	and unique_ptr.
+	(ppc_displaced_step_fixup): Adjust.
+	* s390-linux-tdep.c (s390_displaced_step_closure): New typedef.
+	(s390_displaced_step_copy_insn): Use s390_displaced_step_closure
+	and unique_ptr.
+	(s390_displaced_step_fixup): Adjust.
+
+2017-10-21  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* interps.h (interp_resume, interp_suspend, interp_set_temp):
+	Remove declarations.
+
+2017-10-20  Tom Tromey  <tom@tromey.com>
+
+	* gdb_bfd.c (struct gdb_bfd_data) <included_bfds>: Now a
+	std::vector.
+	(gdb_bfd_record_inclusion): Update.
+	(bfdp): Remove typedef.
+
+2017-10-20  Tom Tromey  <tom@tromey.com>
+
+	* gdb_bfd.c (gdb_bfd_ref): Use new.
+	(struct gdb_bfd_data): Add constructor, destructor, and member
+	initializers.
+	(gdb_bfd_unref): Use delete.
+
+2017-10-20  Tom Tromey  <tom@tromey.com>
+
+	* exec.c (exec_file_attach): Use new_bfd_ref.
+	* symfile-mem.c (symbol_file_add_from_memory): Use new_bfd_ref.
+	* gdb_bfd.c (gdb_bfd_open, gdb_bfd_fopen, gdb_bfd_openr)
+	(gdb_bfd_openw, gdb_bfd_openr_iovec, gdb_bfd_fdopenr): Use
+	new_bfd_ref.
+	* gdb_bfd.h (new_bfd_ref): New function.
+
+2017-10-20  Pedro Alves  <palves@redhat.com>
+
+	* main.c (captured_command_loop): Add attribute noinline.
+
+2017-10-19  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* interps.c (struct interp_factory): Add constructor.
+	(interp_factory_p): Remove typedef.
+	(DEF_VEC_P(interp_factory_p)): Remove.
+	(interpreter_factories): Change type to std::vector.
+	(interp_factory_register): Adjust.
+	(interp_lookup): Adjust.
+	(interpreter_completer): Adjust.
+
+2017-10-19  Tom Tromey  <tom@tromey.com>
+
+	* break-catch-syscall.c (catch_syscall_completer): Use
+	std::string, gdb::unique_xmalloc_ptr.
+
+2017-10-19  Tom Tromey  <tom@tromey.com>
+
+	* infcall.c (call_function_by_hand_dummy): Use std::string.
+
+2017-10-19  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-main.c (mi_cmd_execute): Update.
+	* top.h (prepare_execute_command): Return scoped_value_mark.
+	* value.h (class scoped_value_mark): Use DISABLE_COPY_AND_ASSIGN.
+	Add move constructor.
+	* top.c (prepare_execute_command): Return scoped_value_mark.
+	(execute_command): Update.
+
+2017-10-19  Pedro Alves  <palves@redhat.com>
+
+	* xml-support.c (xml_fetch_content_from_file): Check fread's
+	return.
+
+2017-10-19  Pedro Alves  <palves@redhat.com>
+
+	* ser-base.c (ser_base_read_error_fd): Delete the file handler if
+	async.
+	(handle_error_fd): New function.
+	(ser_base_async): Add/delete an event loop file handler for
+	error_fd.
+
+2017-10-19  Pedro Alves  <palves@redhat.com>
+
+	* xml-support.c (xml_fetch_content_from_file): Don't read in
+	chunks.  Instead use fseek to determine the file's size, and read
+	it in one go.
+
+2017-11-18  Keith Seitz  <keiths@redhat.com>
+
+	* c-exp.y (oper): Canonicalize conversion operators of user-defined
+	types.
+	Add whitespace to front of type name.
+
+2017-10-18  Keith Seitz  <keiths@redhat.com>
+
+	* dwarf2read.c (dwarf2_add_typedef): Issue a complaint on unhandled
+	DW_AT_accessibility.
+
+2017-10-18  Yao Qi  <yao.qi@linaro.org>
+
+	* features/tic6x-c62x-linux.c: Remove.
+
+2017-10-17  Tom Tromey  <tom@tromey.com>
+
+	* disasm.c (do_mixed_source_and_assembly_deprecated): Use
+	gdb::optional, ui_out_emit_list, ui_out_emit_tuple.
+	(do_mixed_source_and_assembly): Likewise.
+
+2017-10-17  Tom Tromey  <tom@tromey.com>
+
+	* regcache.c (regcache::xfer_part): Remove assertion.
+
+2017-10-17  Pedro Alves  <palves@redhat.com>
+
+	* xml-support.c (xml_fetch_content_from_file): Call
+	unique_ptr::release() instead unique_ptr::get() when passing
+	through xrealloc.
+
+2017-10-17  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c (regcache::xfer_part): Remove parameters read and
+	write, add parameter is_raw.  All callers are updated.
+
+2017-10-16  Keith Seitz  <keiths@redhat.com>
+
+        * c-typeprint.c (enum access_specifier): Moved here from
+        c_type_print_base.
+        (output_access_specifier): New function.
+        (c_type_print_base): Consider typedefs when assessing
+        whether access labels are needed.
+        Use output_access_specifier as needed.
+        Output access specifier for typedefs, if needed.
+        * dwarf2read.c (dwarf2_add_typedef): Record DW_AT_accessibility.
+        * gdbtypes.h (struct typedef_field) <is_protected, is_private>: New
+        fields.
+        (TYPE_TYPEDEF_FIELD_PROTECTED, TYPE_TYPEDEF_FIELD_PRIVATE): New
+        accessor macros.
+
+2017-10-16  Tom Tromey  <tom@tromey.com>
+
+	* linux-tdep.c (linux_info_proc, linux_find_memory_regions_full)
+	(linux_fill_prpsinfo, linux_vsyscall_range_raw): Update.
+	* target.c (target_fileio_read_stralloc): Update.
+	* sparc64-tdep.c (adi_is_addr_mapped): Update.
+	* target.h (target_fileio_read_stralloc): Return
+	unique_xmalloc_ptr.
+
+2017-10-16  Tom Tromey  <tom@tromey.com>
+
+	* xml-syscall.c (xml_init_syscalls_info): Update.
+	* xml-support.c (xinclude_start_include): Update.
+	(xml_fetch_content_from_file): Return unique_xmalloc_ptr.
+	* xml-support.h (xml_fetch_another): Return unique_xmalloc_ptr.
+	(xml_fetch_content_from_file): Likewise.
+	* osdata.c (get_osdata): Update.
+	* target.h (target_read_stralloc, target_get_osdata): Return
+	unique_xmalloc_ptr.
+	* solib-aix.c (solib_aix_get_library_list): Update.
+	* solib-target.c (solib_target_current_sos): Update.
+	* solib-svr4.c (svr4_current_sos_via_xfer_libraries): Update.
+	* xml-tdesc.c (fetch_available_features_from_target): Update.
+	(target_fetch_description_xml): Update.
+	(file_read_description_xml): Update.
+	* remote.c (remote_get_threads_with_qxfer, remote_memory_map)
+	(remote_traceframe_info, btrace_read_config, remote_read_btrace)
+	(remote_pid_to_exec_file): Update.
+	* target.c (target_read_stralloc): Return unique_xmalloc_ptr.
+	(target_get_osdata): Likewise.
+
+2017-10-16  Tom Tromey  <tom@tromey.com>
+
+	* remote.c (remote_register_number_and_offset): Use std::vector.
+	(remote_set_syscall_catchpoint): Use gdb::unique_xmalloc_ptr.
+	(putpkt_binary): Use gdb::def_vector.
+	(compare_sections_command): Use gdb::byte_vector.
+
+2017-10-16  Tom Tromey  <tom@tromey.com>
+
+	* ppc-linux-nat.c (hwdebug_insert_point): Use
+	gdb::unique_xmalloc_ptr, XDUP.
+
+2017-10-16  Tom Tromey  <tom@tromey.com>
+
+	* probe.c (parse_probes): Use std::string.
+	(info_probes_for_ops, enable_probes_command)
+	(disable_probes_command): Remove cleanups.
+
+2017-10-16  Tom Tromey  <tom@tromey.com>
+
+	* buildsym.c (block_compar): Remove.
+	(end_symtab_get_static_block): Use std::vector.
+
+2017-10-16  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* memrange.h (struct mem_range): Define operator< and operator==.
+	(mem_range_s): Remove.
+	(DEF_VEC_O (mem_range_s)): Remove.
+	(normalize_mem_ranges): Change parameter type to std::vector.
+	* memrange.c (compare_mem_ranges): Remove.
+	(normalize_mem_ranges): Change parameter type to std::vector,
+	adjust to vector change.
+	* exec.c (section_table_available_memory): Return vector, remove
+	parameter.
+	(section_table_read_available_memory): Adjust to std::vector
+	change.
+	* remote.c (remote_read_bytes): Adjust to std::vector
+	change.
+	* tracepoint.h (traceframe_available_memory): Change parameter
+	type to std::vector.
+	* tracepoint.c (traceframe_available_memory): Change parameter
+	type to std::vector, adjust.
+	* gdb/mi/mi-main.c (mi_cmd_trace_frame_collected): Adjust to
+	std::vector change.
+	* gdb/Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
+	unittests/memrange-selftests.c.
+	(SUBDIR_UNITTESTS_OBS): Add memrange-selftests.o.
+	* gdb/unittests/memrange-selftests.c: New file.
+
+2017-10-16  Pedro Alves  <palves@redhat.com>
+
+	* elfread.c (probe_key_free): Rename range-for variable.
+	* probe.c (parse_probes_in_pspace, find_probes_in_objfile)
+	(find_probe_by_pc, collect_probes): Rename range-for variable.
+
+2017-10-16  Yao Qi  <yao.qi@linaro.org>
+
+	* features/Makefile (XMLTOC): Remove tic6x-*.xml.
+	* features/tic6x-c62x.c: Remove.
+	* features/tic6x-c64x-linux.c: Remove.
+	* features/tic6x-c64x.c: Remove.
+	* features/tic6x-c64xp-linux.c: Remove.
+	* features/tic6x-c64xp.c: Remove.
+	* tic6x-linux-tdep.c (_initialize_tic6x_linux_tdep): Don't call
+	initialize_tdesc_tic6x_*_linux functions.
+	* tic6x-tdep.c (_initialize_tic6x_tdep): Don't call
+	initialize_tdesc_tic6x_* functions.
+
+2017-10-16  Yao Qi  <yao.qi@linaro.org>
+
+	* features/Makefile (WHICH): Remove tic6x-c64xp, tic6x-c64x
+	tic6x-c62x.
+	* regformats/tic6x-c62x.dat: Remove.
+	* regformats/tic6x-c64x.dat: Remove.
+	* regformats/tic6x-c64xp.dat: Remove.
+
+2017-10-15  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* tracepoint.c (parse_traceframe_info): Return a unique_ptr
+	(the !HAVE_LIBEXPAT version).
+
+2017-10-14  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* nat/linux-osdata.c (struct pid_pgid_entry) <operator<>: Make
+	const.
+
+2017-10-14  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* target.h: Include tracepoint.h.
+	(enum trace_find_type): Move to tracepoint.h.
+	(struct target_ops) <to_traceframe_info>: Return a unique ptr.
+	* tracepoint.h: Don't include target.h
+	(enum trace_find_type): Move from target.h.
+	(parse_traceframe_info): Return a unique ptr.
+	* tracepoint.c (current_traceframe_info): Change type to unique
+	ptr.
+	(free_traceframe_info): Remove.
+	(clear_traceframe_info): Don't manually free
+	current_traceframe_info.
+	(free_result): Remove.
+	(parse_traceframe_info): Return a unique ptr.
+	(get_traceframe_info): Adjust to unique ptr.
+	* ctf.c (ctf_traceframe_info): Return a unique ptr.
+	* remote.c (remote_traceframe_info): Return a unique ptr.
+	* tracefile-tfile.c (tfile_traceframe_info): Return a unique
+	ptr.
+	* target-debug.h (target_debug_print_traceframe_info_up): New
+	macro.
+	* target-delegates.c: Regenerate.
+
+2017-10-14  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* memrange.h (struct mem_range): Add constructors.
+	* tracepoint.h (struct traceframe_info) <memory>: Change type to
+	std::vector<mem_range>.
+	* tracepoint.c (free_traceframe_info): Don't manually free
+	vector.
+	(traceframe_info_start_memory): Adjust to vector change.
+	(traceframe_available_memory): Likewise.
+	* tracefile-tfile.c (build_traceframe_info): Likewise.
+	* ctf.c (ctf_traceframe_info): Likewise.
+
+2017-10-14  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* tracepoint.h (struct traceframe_info) <tvars>: Change type to
+	std::vector<int>.
+	* tracepoint.c (free_traceframe_info): Deallocate with delete.
+	(traceframe_info_start_tvar): Adjust to vector change.
+	(parse_traceframe_info): Allocate with new.
+	* ctf.c (ctf_traceframe_info): Allocate with new, adjust to
+	vector change.
+	* tracefile-tfile.c (build_traceframe_info): Adjust to vector
+	change.
+	tfile_traceframe_info): Allocate with new.
+	* mi/mi-main.c (mi_cmd_trace_frame_collected): Adjust to vector
+	change.
+
+2017-10-14  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* tracepoint.c (traceframe_info): Rename to...
+	(current_traceframe_info): ...this.
+	(clear_traceframe_info): Adjust.
+	(get_traceframe_info): Adjust.
+
+2017-10-14  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* nat/linux-osdata.c: Include algorithm.
+	(compare_processes): Remove.
+	(struct pid_pgid_entry): New struct.
+	(linux_xfer_osdata_processgroups): Use std::vector instead of
+	XNEWVEC.
+
+2017-10-14  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* objfiles.h: Don't include symfile.h.
+	(struct partial_symbol): Remove forward-declaration.
+	(struct objfile) <global_psymbols, static_psymbols>: Change type
+	to std::vector<partial_symbol *>.
+	* objfiles.c (objfile::objfile): Don't memset those fields.
+	(objfile::~objfile): Don't free those fields.
+	* psympriv.h (struct psymbol_allocation_list): Remove
+	forward-declaration.
+	(add_psymbol_to_list): Change psymbol_allocation_list parameter
+	to std::vector.
+	(start_psymtab_common): Change parameters to std::vector.
+	* psymtab.c: Include algorithm.
+	(require_partial_symbols): Call shrink_to_fit.
+	(find_pc_sect_psymbol): Adjust to vector change.
+	(match_partial_symbol): Likewise.
+	(lookup_partial_symbol): Likewise.
+	(psym_relocate): Likewise.
+	(dump_psymtab): Likewise.
+	(recursively_search_psymtabs): Likewise.
+	(compare_psymbols): Remove.
+	(sort_pst_symbols): Adjust to vector change.
+	(start_psymtab_common): Likewise.
+	(end_psymtab_common): Likewise.
+	(psymbol_bcache_full): De-constify return value.
+	(add_psymbol_to_bcache): Likewise.
+	(extend_psymbol_list): Remove.
+	(append_psymbol_to_list): Adjust to vector change.
+	(add_psymbol_to_list): Likewise.
+	(init_psymbol_list): Likewise.
+	(maintenance_info_psymtabs): Likewise.
+	(maintenance_check_psymtabs): Likewise.
+	* symfile.h (struct psymbol_allocation_list): Remove.
+	* symfile.c (reread_symbols): Adjust to vector change.
+	* dbxread.c (start_psymtab): Change type of parameters.
+	(dbx_symfile_read): Adjust to vector change.
+	(read_dbx_symtab): Likewise.
+	(start_psymtab): Change type of parameters.
+	* dwarf2read.c (dwarf2_build_psymtabs): Adjust to vector change.
+	(create_partial_symtab): Likewise.
+	(add_partial_symbol): Likewise.
+	(write_one_signatured_type): Likewise.
+	(recursively_write_psymbols): Likewise.
+	* mdebugread.c (parse_partial_symbols): Likewise.
+	* xcoffread.c (xcoff_start_psymtab): Change type of parameters.
+	(scan_xcoff_symtab): Adjust to vector change.
+	(xcoff_initial_scan): Likewise.
+
+2017-10-13  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* ada-typeprint.c (print_dynamic_range_bound): Use std::string.
+
+2017-10-13  Yao Qi  <yao.qi@linaro.org>
+
+	* features/Makefile: Remove tic6x-*-expedite, add tic6x-expedite.
+	Remove s390x-*-expedite, add s390x-expedite.
+
+2017-10-13  Yao Qi  <yao.qi@linaro.org>
+
+	* features/s390-gs-linux64.c: Regenerated.
+	* features/s390x-gs-linux64.c: Regenerated.
+
+2017-10-13  Tom Tromey  <tom@tromey.com>
+
+	* compile/compile-object-run.c (do_module_cleanup): Use delete.
+	* solib.c (update_solib_list, reload_shared_libraries_1): Use
+	delete.
+	* symfile.c (symbol_file_add_with_addrs): Use new.
+	(symbol_file_add_separate): Update comment.
+	(syms_from_objfile_1, remove_symbol_file_command): Use delete.
+	* jit.c (jit_object_close_impl): Use new.
+	(jit_unregister_code): Use delete.
+	* objfiles.c (objfile::objfile): Rename from allocate_objfile.
+	(~objfile): Rename from free_objfile.
+	(free_objfile_separate_debug, do_free_objfile_cleanup)
+	(free_all_objfiles, objfile_purge_solibs): Use delete.
+	* objfiles.h (struct objfile): Add constructor and destructor.
+	Use DISABLE_COPY_AND_ASSIGN.  Add initializers to data members.
+	(allocate_objfile, free_objfile): Don't declare.
+	(struct objstats): Add initializers.
+
+2017-10-12  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* arch-utils.h (simple_displaced_step_copy_insn): Remove.
+	* arch-utils.c (simple_displaced_step_copy_insn): Remove.
+	* gdbarch.sh (displaced_step_copy_insn): Adjust comment.
+	* gdbarch.h: Regenerate.
+	* i386-linux-tdep.c (i386_linux_displaced_step_copy_insn):
+	Adjust comment.
+	* i386-tdep.c (i386_displaced_step_copy_insn): Adjust comment.
+	(i386_displaced_step_fixup): Adjust comment.
+	* rs6000-tdep.c (ppc_displaced_step_copy_insn): Adjust comment.
+
+2017-10-12  Tom Tromey  <tom@tromey.com>
+
+	* prologue-value.h (pv_area::store_would_trash): Return bool.
+	(pv_area::find_reg): Likewise.
+	* prologue-value.c (pv_area::store_would_trash): Return bool.
+	(pv_area::find_reg): Likewise.
+
+2017-10-12  Tom Tromey  <tom@tromey.com>
+
+	* s390-linux-tdep.c (s390_store, s390_load)
+	(s390_check_for_saved, s390_analyze_prologue): Update.
+	* rx-tdep.c (check_for_saved, rx_analyze_prologue): Update.
+	* rl78-tdep.c (rl78_analyze_prologue, check_for_saved): Update.
+	* prologue-value.h (class pv_area): Move from prologue-value.c.
+	Change names of members.  Add constructor, destructor, member
+	functions.
+	(make_pv_area, free_pv_area, make_cleanup_free_pv_area)
+	(pv_area_store, pv_area_fetch, pv_area_store_would_trash)
+	(pv_area_fetch, pv_area_scan): Don't declare.
+	* prologue-value.c (struct pv_area::area_entry): Now member of
+	pv_area.
+	(struct pv_area): Move to prologue-value.h.
+	(pv_area::pv_area): Rename from make_pv_area.
+	(pv_area::~pv_area): Rename from free_pv_area.
+	(do_free_pv_area_cleanup, make_cleanup_free_pv_area): Remove.
+	(clear_entries, find_entry, overlaps, store_would_trash, store)
+	(fetch, find_reg, scan): Now member of pv_area.
+	Remove "area" argument.  Update.
+	* msp430-tdep.c (check_for_saved, msp430_analyze_prologue):
+	Update.
+	* mn10300-tdep.c (push_reg, check_for_saved)
+	(mn10300_analyze_prologue): Update.
+	* mep-tdep.c (is_arg_spill, check_for_saved)
+	(mep_analyze_prologue): Update.
+	* m32c-tdep.c (m32c_pv_push, m32c_srcdest_fetch)
+	(m32c_srcdest_store, m32c_pv_enter, m32c_is_arg_spill)
+	(m32c_is_struct_return, m32c_analyze_prologue): Update.
+	* arm-tdep.c (thumb_analyze_prologue, arm_analyze_prologue):
+	Update.
+	* arc-tdep.c (arc_is_in_prologue, arc_analyze_prologue): Update.
+	* aarch64-tdep.c (aarch64_analyze_prologue): Update.
+
+2017-10-12  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-nat.h (linux_nat_set_delete_thread): New declaration.
+	* linux-nat.c (linux_nat_delete_thread): New variable.
+	(lwp_free): Invoke linux_nat_delete_thread if set.
+	(linux_nat_set_delete_thread): New function.
+	* aarch64-linux-nat.c (_initialize_aarch64_linux_nat): Assign
+	thread delete callback.
+	* arm-linux-nat.c (arm_linux_delete_thread): New function.
+	(_initialize_arm_linux_nat): Assign thread delete callback.
+	* s390-linux-nat.c (s390_delete_thread): New function.
+	(_initialize_s390_nat): Assign thread delete callback.
+	* x86-linux-nat.c (x86_linux_add_target): Likewise.
+	* nat/aarch64-linux.c (aarch64_linux_delete_thread): New
+	function.
+	* nat/aarch64-linux.h (aarch64_linux_delete_thread): New
+	declaration.
+	* nat/x86-linux.c (x86_linux_delete_thread): New function.
+	* nat/x86-linux.h (x86_linux_delete_thread): New declaration.
+
+2017-10-09  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-win.c (tui_set_win_height, parse_scrolling_args): Use
+	std::string.
+	* tui/tui-layout.c (enum tui_status): Use std::string.
+
+2017-10-11  Tom Tromey  <tom@tromey.com>
+
+	* gdbthread.h (thread_command): Constify.
+	* inferior.h (detach_command): Constify.
+	* top.h (set_history, show_history): Constify.
+	* arm-tdep.c (set_arm_command, show_arm_command): Constify.
+	* serial.c (serial_set_cmd, serial_show_cmd): Constify.
+	* bsd-kvm.c (bsd_kvm_cmd): Constify.
+	* printcmd.c (set_command): Constify.
+	(non_const_set_command): New function.
+	* dcache.c (set_dcache_command, show_dcache_command): Constify.
+	* breakpoint.c (enable_command, disable_command, delete_command)
+	(catch_command, tcatch_command, set_breakpoint_cmd)
+	(show_breakpoint_cmd): Constify.
+	* macrocmd.c (macro_command): Constify.
+	* infcmd.c (unset_command, kill_command, detach_command)
+	(info_proc_cmd): Constify.
+	* i386-tdep.c (set_mpx_cmd, show_mpx_cmd): Constify.
+	* auto-load.c (show_auto_load_cmd, set_auto_load_cmd)
+	(info_auto_load_cmd): Constify.
+	* target-descriptions.c (set_tdesc_cmd, show_tdesc_cmd)
+	(unset_tdesc_cmd): Constify.
+	* ada-lang.c (set_ada_command, show_ada_command)
+	(maint_set_ada_cmd, maint_show_ada_cmd): Constify.
+	* guile/guile.c (set_guile_command, show_guile_command)
+	(info_guile_command): Constify.
+	* tui/tui-win.c (tui_command, set_tui_cmd, show_tui_cmd):
+	Constify.
+	* skip.c (skip_command): Constify.
+	* compile/compile.c (_initialize_compile): Constify.
+	* dwarf2read.c (set_dwarf_cmd, show_dwarf_cmd): Constify.
+	* btrace.c (maint_btrace_cmd, maint_btrace_set_cmd)
+	(maint_btrace_show_cmd, maint_btrace_pt_set_cmd)
+	(maint_btrace_pt_show_cmd): Constify.
+	* remote.c (set_remote_cmd, show_remote_cmd, remote_command):
+	Constify.
+	* python/python.c (user_show_python, user_set_python): Constify.
+	* mips-tdep.c (set_mips_command, show_mips_command)
+	(set_mipsfpu_command): Constify.
+	* record-btrace.c (cmd_record_btrace_start)
+	(cmd_set_record_btrace, cmd_show_record_btrace)
+	(cmd_set_record_btrace_bts, cmd_show_record_btrace_bts)
+	(cmd_set_record_btrace_pt, cmd_show_record_btrace_pt): Constify.
+	* rs6000-tdep.c (set_powerpc_command, show_powerpc_command):
+	Constify.
+	* symfile.c (overlay_command): Constify.
+	* spu-tdep.c (set_spu_command, show_spu_command): Constify.
+	* cli/cli-logging.c (set_logging_command, show_logging_command):
+	Constify.
+	* cli/cli-dump.c (dump_command, append_command)
+	(srec_dump_command, ihex_dump_command, verilog_dump_command)
+	(tekhex_dump_command, binary_dump_command)
+	(binary_append_command): Constify.
+	* cli/cli-decode.c (struct cmd_list_element): Change type of
+	"fun".
+	* cli/cli-cmds.c (info_command, show_command, set_debug)
+	(show_debug): Constify.
+	(show_command): Add non-const overload.
+	* top.c (set_history, show_history): Constify.
+	* sh-tdep.c (set_sh_command, show_sh_command): Constify.
+	* command.h (add_prefix_cmd): Accept a cmd_const_cfunc_ftype.
+	* target.c (target_command): Constify.
+	* sparc64-tdep.c (info_adi_command): Constify.
+	* record-full.c (cmd_record_full_start): Constify.
+	(set_record_full_command): Constify.  Fix typo.
+	(show_record_full_command): Constify.
+	* thread.c (thread_command, thread_apply_command): Constify.
+	* memattr.c (dummy_cmd): Constify.
+	* value.c (function_command): Constify.
+	* frame.c (set_backtrace_cmd, show_backtrace_cmd): Constify.
+	* probe.c (info_probes_command): Constify.
+	* ser-tcp.c (set_tcp_cmd, show_tcp_cmd): Constify.
+	* gnu-nat.c (set_task_cmd, show_task_cmd, set_thread_cmd)
+	(show_thread_cmd, set_thread_default_cmd)
+	(show_thread_default_cmd): Constify.
+	(check_empty): Constify.
+	* tracepoint.c (tfind_command): Constify.
+	* cp-support.c (maint_cplus_command): Constify.
+	* windows-tdep.c (info_w32_command): Constify.
+	* record.c (cmd_record_start, set_record_command)
+	(show_record_command, info_record_command, cmd_record_goto):
+	Constify.
+	* ravenscar-thread.c (set_ravenscar_command)
+	(show_ravenscar_command): Constify.
+	* utils.c (set_internal_problem_cmd, show_internal_problem_cmd):
+	Constify.
+	(add_internal_problem_command): Remove casts.
+	* arc-tdep.c (maintenance_print_arc_command): Constify.
+	* valprint.c (set_print, show_print, set_print_raw)
+	(show_print_raw): Constify.
+	* maint.c (maintenance_command, maintenance_info_command)
+	(maintenance_print_command, maintenance_set_cmd)
+	(maintenance_show_cmd, set_per_command_cmd)
+	(show_per_command_cmd, maintenance_check_command): Constify.
+	* language.c (set_check, show_check): Constify.
+	* typeprint.c (show_print_type, set_print_type): Constify.
+	* go32-nat.c (go32_info_dos_command): Constify.
+
+2017-10-11  Tom Tromey  <tom@tromey.com>
+
+	* breakpoint.c (prepare_re_set_context): Remove.
+	(breakpoint_re_set_one): Update.  Don't use cleanups.
+	(breakpoint_re_set): Use scoped_restore, std::string, and
+	scoped_restore_current_language.
+
+2017-10-11  Tom Tromey  <tom@tromey.com>
+
+	* breakpoint.c (commands_command_1): Use std::string.
+	(cleanup_executing_breakpoints): Remove.
+	(bpstat_do_actions_1): Use scoped_restore.
+	(bpstat_check_watchpoint): Use std::string.
+	(decode_static_tracepoint_spec): Likewise.
+	(break_range_command): Likewise.
+	(watch_command_1): Likewise.
+	(compare_breakpoints): Change argument types.
+	(clear_command): Use std::vector.
+	(cleanup_executing_breakpoints): Remove.
+	(update_global_location_list): Use unique_xmalloc_ptr.
+	(strace_command): Remove unused declaration.
+
+2017-10-11  John Baldwin  <jhb@FreeBSD.org>
+
+	* Makefile.in (ALLDEPFILES): Add arm-fbsd-nat.c.
+	* NEWS: Mention new FreeBSD/arm native configuration.
+	* configure.host: Add arm*-*-freebsd*.
+	* configure.nat: Likewise.
+	* arm-fbsd-nat.c: New file.
+
+2017-10-11  John Baldwin  <jhb@FreeBSD.org>
+
+	* Makefile.in (ALL_TARGET_OBS): Add arm-fbsd-tdep.o.
+	(ALLDEPFILES): Add arm-fbsd-tdep.c.
+	* NEWS: Mention new FreeBSD/arm target.
+	* configure.tgt: Add arm*-*-freebsd*.
+	* arm-fbsd-tdep.c: New file.
+	* arm-fbsd-tdep.h: New file.
+
+2017-10-11  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* linux-tdep.c (linux_make_corefile_notes): Remove call to
+	`gdbarch_elfcore_write_linux_prpsinfo'.
+	* gdbarch.sh (elfcore_write_linux_prpsinfo): Remove architecture
+	method.
+	(elf_internal_linux_prpsinfo): Remove declaration.
+	* gdbarch.h: Regenerate.
+	* gdbarch.c: Regenerate.
+
+2017-10-11  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* ppc-linux-tdep.c (ppc_linux_init_abi): Remove call to
+	`set_gdbarch_elfcore_write_linux_prpsinfo'.
+
+2017-10-11  Pedro Alves  <palves@redhat.com>
+
+	* breakpoint.c (reattach_breakpoints): Delete.
+	* breakpoint.h (reattach_breakpoints): Delete.
+
+2017-10-11  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* symfile.c (registered_sym_fns): Make struct, not typedef.
+	(DEF_VEC_O (registered_sym_fns)): Remove.
+	(symtab_fns): Change type to std::vector.
+	(add_symtab_fns): Adjust.
+	(find_sym_fns): Adjust.
+
+2017-10-11  Anton Kolesov  <Anton.Kolesov@synopsys.com>
+
+	* arc-tdep.c (arc_gdbarch_init): Pass proper cpu value to disassembler.
+	* arc-tdep.h (arc_arch_is_em): New function.
+	(arc_arch_is_hs): Likewise.
+
+2017-10-11  Egeyar Bagcioglu  <egeyar.bagcioglu@oracle.com>
+
+	* macrotab.h (macro_lookup_inclusion): Remove unnecessary
+	parentheses in the declaration.
+	(macro_lookup_inclusion): Likewise.
+	(macro_lookup_definition): Likewise.
+	* p-lang.h (pascal_builtin_types): Likewise.
+	* tui/tui-data.c (tui_win_list): Likewise.
+	* tui/tui-data.h (tui_win_list): Likewise.
+	* utils.h (make_cleanup_free_section_addr_info): Likewise.
+
+2017-10-11  Mark Rages  <markrages@gmail.com>
+
+	* target-memory.c (block_boundaries): Fix for block address not
+	aligned on block size.
+
+2017-10-10  Pedro Alves <palves@redhat.com>
+	    Tom Tromey  <tom@tromey.com>
+
+	* breakpoint.c (struct captured_breakpoint_query_args)
+	(do_captured_breakpoint_query, gdb_breakpoint_query): Delete.
+	(print_breakpoint): New.
+	* breakpoint.h (print_breakpoint): Declare.
+	* common/common-exceptions.h (enum return_reason): Remove
+	references to catch_exceptions.
+	* exceptions.c (catch_exceptions, catch_exceptions_with_msg):
+	Delete.
+	* exceptions.h (catch_exceptions_ftype, catch_exceptions)
+	(catch_exception_ftype, catch_exceptions_with_msg): Delete.
+	* gdb.h: Delete.
+	* gdbthread.h (thread_select): Declare.
+	* mi/mi-cmd-break.c: Don't include gdb.h.
+	(breakpoint_notify): Use print_breakpoint.
+	* mi/mi-cmd-catch.c: Don't include gdb.h.
+	* mi/mi-interp.c: Don't include gdb.h.
+	(mi_print_breakpoint_for_event): New.
+	(mi_breakpoint_created, mi_breakpoint_modified): Use
+	mi_print_breakpoint_for_event.
+	* mi/mi-main.c: Don't include gdb.h.
+	(mi_cmd_thread_select): Parse the global thread ID here.  Use
+	thread_select instead of gdb_thread_select.
+	(mi_cmd_thread_list_ids): Output "thread-ids" tuple here instead
+	of using gdb_list_thread_ids.
+	* remote-fileio.c (do_remote_fileio_request): Change type.  Reply
+	FILEIO_ENOSYS here.
+	(remote_fileio_request): Use TRY/CATCH instead of
+	catch_exceptions.
+	* symfile-mem.c (struct symbol_file_add_from_memory_args)
+	(symbol_file_add_from_memory_wrapper): Delete.
+	(add_vsyscall_page): Use TRY/CATCH instead of catch_exceptions.
+	* thread.c: Don't include gdb.h.
+	(do_captured_list_thread_ids, gdb_list_thread_ids): Delete.
+	(thread_alive): Use thread_select.
+	(do_captured_thread_select): Delete, parts salvaged as ...
+	(thread_select): ... this new function.
+	(gdb_thread_select): Delete.
+
+2017-10-10  Pedro Alves  <palves@redhat.com>
+	    Tom Tromey  <tom@tromey.com>
+
+	* breakpoint.c (breakpoint_cond_eval): Change return type to bool
+	and reverse logic.
+	(WP_DELETED, WP_VALUE_CHANGED, WP_VALUE_NOT_CHANGED, WP_IGNORE):
+	No longer macros.  Instead ...
+	(enum wp_check_result): They're now values of this new
+	enumeration.
+	(watchpoint_check): Change return type to wp_check_result and
+	parameter type to bpstat.
+	(bpstat_check_watchpoint): Use TRY/CATCH instead of catch_errors.
+	(bpstat_check_breakpoint_conditions): Use TRY/CATCH instead of
+	catch_errors.  Reverse logic of watchpoint_check call.
+	(breakpoint_re_set_one): Now returns void and takes a breakpoint
+	pointer as parameter.
+	(breakpoint_re_set): Use TRY/CATCH instead of catch_errors.
+	* common/common-exceptions.c (throw_exception_sjlj): Update
+	comments to avoid mentioning catch_errors.
+	* exceptions.c (catch_errors): Delete.
+	* exceptions.h: Update comments to avoid mentioning catch_errors.
+	(catch_errors_ftype, catch_errors): Delete.
+	* infrun.c (normal_stop): Use TRY/CATCH instead of catch_errors.
+	(hook_stop_stub): Delete.
+	(restore_selected_frame): Change return type to void, and
+	parameter type to const frame_id &.
+	(restore_infcall_control_state): Use TRY/CATCH instead of
+	catch_errors.
+	* main.c (captured_command_loop): Return void and remove
+	parameter.  Remove references to catch_errors.
+	(captured_main): Use TRY/CATCH instead of catch_errors.
+	* objc-lang.c (objc_submethod_helper_data)
+	(find_objc_msgcall_submethod_helper): Delete.
+	(find_objc_msgcall_submethod): Use TRY/CATCH instead of
+	catch_errors.
+	* record-full.c (record_full_message): Return void.
+	(record_full_message_args, record_full_message_wrapper): Delete.
+	(record_full_message_wrapper_safe): Return bool and use TRY/CATCH
+	instead of catch_errors.
+	* solib-aix.c (solib_aix_open_symbol_file_object): Change
+	parameter type to int.
+	* solib-darwin.c (open_symbol_file_object): Ditto.
+	* solib-dsbt.c (open_symbol_file_object): Ditto.
+	* solib-frv.c (open_symbol_file_object): Ditto.
+	* solib-svr4.c (open_symbol_file_object): Ditto.
+	* solib-target.c (solib_target_open_symbol_file_object): Ditto.
+	* solib.c (update_solib_list): Use TRY/CATCH instead of
+	catch_errors.
+	* solist.h (struct target_so_ops) <open_symbol_file_object>:
+	Change type.
+	* symmisc.c (struct print_symbol_args): Remove.
+	(dump_symtab_1): Use TRY/CATCH instead of catch_errors.
+	(print_symbol): Change type.
+	* windows-nat.c (handle_load_dll, handle_unload_dll): Return void
+	and remove parameters.
+	(catch_errors): New.
+	(get_windows_debug_event): Adjust.
+
+2017-10-09  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-main.c (free_splay_tree): Remove.
+	(list_available_thread_groups): Use splay_tree_up.
+	* common/gdb_splay_tree.h: New file.
+
+2017-10-09  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-main.c (do_nothing): Remove.
+	(list_available_thread_groups): Update.
+
+2017-10-09  Pedro Alves  <palves@redhat.com>
+
+	* infrun.c (handle_inferior_event_1) <TARGET_WAITKIND_EXECD>: Skip
+	reading registers when switching context.
+
+2017-10-09  John Baldwin  <jhb@FreeBSD.org>
+
+	* fbsd-nat.c (fbsd_siginfo_size): Use gdbarch_long_bit.
+	(fbsd_convert_siginfo): Likewise.
+	* fbsd-tdep.c (fbsd_core_xfer_siginfo): Likewise.
+
+2017-10-09  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* configure.ac (try_guile_versions): Remove guile-2.2.
+	* configure: Regenerate.
+
+2017-10-09  Tom Tromey  <tom@tromey.com>
+
+	* Makefile.in (COMPILE.post, POSTCOMPILE): Restore $(basename).
+	(COMPILE.pre): Use $(CXX).
+
+2017-10-09  Pedro Alves  <palves@redhat.com>
+
+	* cp-support.c (cp_remove_params): Return a gdb::unique_xmalloc_ptr.
+	Use bool.
+	(overload_list_add_symbol): Adjust to use gdb::unique_xmalloc_ptr.
+	* cp-support.h (cp_remove_params): Now returns a
+	gdb::unique_xmalloc_ptr.
+	* dwarf2read.c (find_slot_in_mapped_hash): Now returns bool.
+	Adjust to cp_remove_params returning a gdb::unique_xmalloc_ptr.
+	* psymtab.c (psymtab_search_name): Adjust to cp_remove_params
+	returning a gdb::unique_xmalloc_ptr.
+	(lookup_partial_symbol): Adjust to use gdb::unique_xmalloc_ptr.
+	* stack.c (find_frame_funname): Adjust to cp_remove_params
+	returning a gdb::unique_xmalloc_ptr.
+
+2017-10-08  Tom Tromey  <tom@tromey.com>
+
+	* dwarf2read.c (dwarf2_get_dwz_file): Use
+	gdb::unique_xmalloc_ptr.
+	(find_slot_in_mapped_hash): Likewise.
+	(dwarf2_physname): Likewise.
+	(create_dwo_unit_in_dwp_v1): Use std::string.
+	(create_dwo_unit_in_dwp_v2): Likewise.
+	(lookup_dwo_cutu): Likewise.
+	(inherit_abstract_dies): Use std::vector.
+	(read_array_type): Likewise.
+	(dwarf_decode_macros): Remove unused declaration.
+	(unsigned_int_compar): Remove.
+	(dwarf2_build_psymtabs_hard): Use scoped_restore.
+	(psymtabs_addrmap_cleanup): Remove.
+
+2017-10-08  Tom Tromey  <tom@tromey.com>
+
+	* frame-unwind.c (frame_unwind_try_unwinder): Update.
+	* frame.h (frame_cleanup_after_sniffer): Declare.
+	(frame_prepare_for_sniffer): Return void.
+	* frame.c (frame_cleanup_after_sniffer): No longer static.  Change
+	type of argument.
+	(frame_prepare_for_sniffer): Return void.
+
+2017-10-08  Tom Tromey  <tom@tromey.com>
+
+	* utils.h (make_cleanup_value_free): Remove.
+	* utils.c (do_value_free, struct cleanup): Remove.
+	* dwarf2loc.c (dwarf2_evaluate_loc_desc_full) <DWARF_VALUE_STACK>:
+	Use gdb_value_up.
+	* value.h (struct value_deleter): New.
+	(gdb_value_up): New typedef.
+
+2017-10-08  Tom Tromey  <tom@tromey.com>
+
+	* symtab.c (free_search_symbols, do_free_search_symbols_cleanup)
+	(make_cleanup_free_search_symbols): Remove.
+	(search_symbols): Return std::vector.
+	(symbol_search::compare_search_syms): Now member of
+	symbol_search.  Change arguments.
+	(sort_search_symbols_remove_dups): Change arguments.  Rewrite.
+	(symtab_symbol_info, rbreak_command): Update.
+	* symtab.h (struct symbol_search) <next>: Remove.
+	Add constructors.
+	(symbol_search::operator<): New function.
+	(symbol_search::operator==): New function.
+	(search_symbols): Remove std::vector.
+	(free_search_symbols, make_cleanup_free_search_symbols): Remove.
+	(symbol_search::compare_search_syms): Declare.
+
+2017-10-06  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (ALL_64_TARGET_OBS): Replace aarch64-insn.o with
+	arch/aarch64-insn.o.
+	Remove one rule.
+	* configure.tgt: Replace aarch64-insn.o with arch/aarch64-insn.o.
+
+2017-10-06  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (ALL_TARGET_OBS): Replace arm.o, arm-get-next-pcs.o,
+	and arm-linux.o with arch/arm.o, arch/arm-get-next-pcs.o and
+	arch/arm-linux.o respectively.
+	* configure.tgt: Likewise.
+
+2017-10-06  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (ALL_TARGET_OBS): Rename i386.o to arch/i386.o.
+	* configure.tgt (i386_tobjs): Replace i386.o with arch/i386.o.
+
+2017-10-06  Pedro Alves  <palves@redhat.com>
+
+	* windows-nat.c: Include <algorithm>.
+
+2017-10-06  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.tgt (i386_tobjs): New variable.
+	(amd64_tobjs): New variable.
+	Set $cpu_obs and $os_obs.
+
+2017-10-06  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (CONFIG_SRC_SUBDIR): New.
+	(ALL_64_TARGET_OBS): Replace amd64.o with arch/amd64.o.
+	(clean): Remove object files and dependency files.
+	(distclean): Remove the directory.
+	* configure.ac: Invoke AC_CONFIG_COMMANDS.
+	* configure: Re-generated.
+	* configure.tgt: Replace amd64.o with arch/amd64.o.
+
+2017-10-05  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	PR build/22188
+	* arm-tdep.c (arm_decode_misc_memhint_neon): Fix decoding of CPS
+	and SETEND.
+
+2017-10-05  Pedro Alves  <palves@redhat.com>
+
+	* linux-nat.c (linux_child_follow_fork): When following the parent
+	and detaching the child, consult the parent thread's architecture
+	instead of the child's.
+
+2017-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* ax.h: Do not include "doublest.h".
+	(union agent_val): Remove.
+
+2017-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* dfp.h (MAX_DECIMAL_STRING): Move to dfp.c.
+	(decimal_to_string): Return std::string object.
+	(decimal_from_string): Accept std::string object.  Return bool.
+	(decimal_from_integral, decimal_from_doublest): Remove.
+	(decimal_from_longest): Add prototype.
+	(decimal_from_ulongest): Likewise.
+	(decimal_to_longest): Likewise.
+	(decimal_from_doublest): Likewise.
+	* dfp.c: Do not include "gdbtypes.h" or "value.h".
+	(MAX_DECIMAL_STRING): Move here.
+	(decimal_to_string): Return std::string object.
+	(decimal_from_string): Accept std::string object.  Return bool.
+	(decimal_from_integral): Remove, replace by ...
+	(decimal_from_longest, decimal_from_ulongest): ... these new functions.
+	(decimal_to_longest): New function.
+	(decimal_from_floating): Remove, replace by ...
+	(decimal_from_doublest): ... this new function.
+	(decimal_to_doublest): Update to new decimal_to_string interface.
+
+	* value.c (unpack_long): Use decimal_to_longest.
+	* valops.c (value_cast): Use decimal_from_doublest instead of
+	decimal_from_floating.  Use decimal_from_[u]longest isntead of
+	decimal_from_integral.
+	* valarith.c (value_args_as_decimal): Likewise.
+	* valprint.c (print_decimal_floating): Update to new
+	decimal_to_string interface.
+	* printcmd.c (printf_decfloat): Likewise.
+	* c-exp.y (parse_number): Update to new decimal_from_string interface.
+
+2017-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* doublest.h: Do not include "floatformat.h".  Remove stale comments.
+	* gdbtypes.c: Include "floatformat.h".
+	* value.c: Likewise.
+	* m68k-tdep.c: Likewise.
+
+	* findvar.c: Do not include "floatformat.h".
+	* amd64-darwin-tdep.c: Likewise.
+	* arm-linux-tdep.c: Likewise.
+	* i386-darwin-tdep.c: Likewise.
+	* i387-tdep.c: Likewise.
+	* m68k-linux-tdep.c: Likewise.
+	* mep-tdep.c: Likewise.
+	* mips-tdep.c: Likewise.
+	* nios2-tdep.c: Likewise.
+	* s390-linux-tdep.c: Likewise.
+	* sparc-obsd-tdep.c: Likewise.
+	* sparc-tdep.c: Likewise.
+	* sparc64-tdep.c: Likewise.
+	* spu-tdep.c: Likewise.
+	* tic6x-tdep.c: Likewise.
+	* tilegx-tdep.c: Likewise.
+	* vax-tdep.c: Likewise.
+	* xstormy16-tdep.c: Likewise.
+	* xtensa-tdep.c: Likewise.
+
+	* top.c: Do not include "doublest.h".
+	* aarch64-tdep.c: Likewise.
+	* alpha-tdep.c: Likewise.
+	* arm-linux-tdep.c: Likewise.
+	* m68k-linux-tdep.c: Likewise.
+	* tilegx-tdep.c: Likewise.
+	* xstormy16-tdep.c: Likewise.
+
+2017-10-05  John Baldwin  <jhb@FreeBSD.org>
+
+	* mips-fbsd-tdep.c (MIPS_INST_ADDIU_A0_SP_N32): Define.
+	(mipsn32_fbsd_sigframe): Define.
+	(mips_fbsd_init_abi): Install mipsn32_fbsd_sigframe unwinder
+	for FreeBSD/mipsn32.
+
+2017-10-05  John Baldwin  <jhb@FreeBSD.org>
+
+	* fbsd-tdep.c (fbsd_print_auxv_entry): Handle AT_EHDRFLAGS and
+	AT_HWCAP.
+
+2017-10-05  Tristan Gingold  <tgingold@free.fr>
+
+	* MAINTAINERS (Misc): Update my email address.
+
+2017-10-04  Pedro Alves  <palves@redhat.com>
+
+	* remote.c (get_remote_arch_state): New 'gdbarch' parameter.  Use
+	it instead of target_gdbarch.
+	(get_remote_state, get_remote_packet_size): Adjust
+	get_remote_arch_state calls, passing down target_gdbarch
+	explicitly.
+	(packet_reg_from_regnum, packet_reg_from_pnum): New parameter
+	'gdbarch' and use it instead of target_gdbarch.
+	(get_memory_packet_size): Adjust get_remote_arch_state calls,
+	passing down target_gdbarch explicitly.
+	(struct stop_reply) <arch>: New field.
+	(remote_parse_stop_reply): Use the stopped thread's architecture,
+	not the current inferior's.  Save the architecture in the
+	stop_reply.
+	(process_stop_reply): Use the stop reply's architecture.
+	(process_g_packet, remote_fetch_registers)
+	(remote_prepare_to_store, store_registers_using_G)
+	(remote_store_registers): Adjust get_remote_arch_state calls,
+	using the regcache's architecture.
+	(remote_get_trace_status): Adjust get_remote_arch_state calls,
+	passing down target_gdbarch explicitly.
+	* spu-multiarch.c (spu_thread_architecture): Defer to the target
+	beneath instead of calling target_gdbarch.
+	* target.c (default_thread_architecture): Use the specified
+	inferior's architecture, instead of the current inferior's
+	architecture (via target_gdbarch).
+
+2017-10-04  Pedro Alves  <palves@redhat.com>
+
+	* regcache.c (get_thread_arch_regcache): Remove null_ptid special
+	case.
+	(regcache_print): Handle !target_has_registers here instead.
+
+2017-10-04  Pedro Alves  <palves@redhat.com>
+
+	* frame.c (create_test_frame): Delete.
+	* frame.h (create_test_frame): Delete.
+	* gdbarch-selftests.c: Include gdbthread.h and target.h.
+	(class regcache_test): Delete.
+	(test_target_has_registers, test_target_has_stack)
+	(test_target_has_memory, test_target_prepare_to_store)
+	(test_target_store_registers): New functions.
+	(test_target_ops): New class.
+	(register_to_value_test): Error out if there's already a
+	process_stratum (or higher) target pushed.  Create a fuller mock
+	environment, with mock target_ops, inferior, address space, thread
+	and inferior_ptid.
+	* progspace.c (struct address_space): Move to ...
+	* progspace.h (struct address_space): ... here.
+	* regcache.h (regcache::~regcache, regcache::raw_write)
+	[GDB_SELF_TEST]: No longer virtual.
+
+2017-10-04  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* mi/mi-main.c (list_available_thread_groups): Reverse filter logic.
+
+2017-10-04  Pedro Alves  <palves@redhat.com>
+
+	* guile/scm-breakpoint.c (gdbscm_breakpoint_commands): Move code
+	out of 'between TRY and CATCH'.
+
+2017-10-04  Pedro Alves  <palves@redhat.com>
+
+	* cli/cli-cmds.c (complete_command): Add missing END_CATCH.
+	* common/common-exceptions.h (TRY): Open an outermost scope.
+	Expand intro comment.
+	(CATCH): Reindent.
+	(END_CATCH): Close the outermost scope.
+	* completer.c (complete_line_internal): Add missing END_CATCH.
+
+2017-10-04  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* NEWS (Changes since GDB 8.0): Add entry about new
+	'set-cwd-on-gdbserver' feature.
+	(New remote packets): Add entry for QSetWorkingDir.
+	* common/common-inferior.h (set_inferior_cwd): New prototype.
+	* infcmd.c (set_inferior_cwd): Remove "static".
+	(show_cwd_command): Expand text to include remote debugging.
+	* remote.c: Add PACKET_QSetWorkingDir.
+	(remote_protocol_features) <QSetWorkingDir>: New entry for
+	PACKET_QSetWorkingDir.
+	(extended_remote_set_inferior_cwd): New function.
+	(extended_remote_create_inferior): Call
+	"extended_remote_set_inferior_cwd".
+	(_initialize_remote): Call "add_packet_config_cmd" for
+	QSetWorkingDir.
+
+2017-10-04  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* NEWS (New commands): Mention "set/show cwd".
+	* cli/cli-cmds.c (_initialize_cli_cmds): Mention "set cwd" on
+	"cd" command's help text.
+	* common/common-inferior.h (get_inferior_cwd): New prototype.
+	* infcmd.c (inferior_cwd_scratch): New global variable.
+	(set_inferior_cwd): New function.
+	(get_inferior_cwd): Likewise.
+	(set_cwd_command): Likewise.
+	(show_cwd_command): Likewise.
+	(_initialize_infcmd): Add "set/show cwd" commands.
+	* inferior.h (class inferior) <cwd>: New field.
+	* nat/fork-inferior.c: Include "gdb_tilde_expand.h".
+	(fork_inferior): Change inferior's cwd before its execution.
+	* windows-nat.c (windows_create_inferior): Pass inferior's cwd
+	to CreateProcess.
+
+2017-10-04  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile.in (SFILES): Add gdb_tilde_expand.c.
+	(HFILES_NO_SRCDIR): Add gdb_tilde_expand.h.
+	(COMMON_OBS): Add gdb_tilde_expand.o.
+	* common/gdb_tilde_expand.c: New file.
+	* common/gdb_tilde_expand.h: Likewise.
+
+2017-10-03  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* gdbarch.sh (objfile): Remove duplicate declaration.
+	* gdbarch.h: Regenerate.
+
+2017-10-03  Tom Tromey  <tom@tromey.com>
+
+	* utils.c (internal_vproblem): Use string_vprintf.
+
+2017-10-03  Tom Tromey  <tom@tromey.com>
+
+	* printcmd.c (info_symbol_command): Use std::string.
+
+2017-10-03  Tom Tromey  <tom@tromey.com>
+
+	* top.c (gdb_safe_append_history): Use std::string.
+
+2017-10-03  Tom Tromey  <tom@tromey.com>
+
+	* event-top.c (stdin_event_handler): Update.
+	* main.c (captured_main_1): Update.
+	* top.h (make_delete_ui_cleanup): Remove.
+	(struct ui): Add constructor and destructor.
+	(new_ui, delete_ui): Remove.
+	* top.c (make_delete_ui_cleanup): Remove.
+	(new_ui_command): Use std::unique_ptr.
+	(delete_ui_cleanup): Remove.
+	(ui::ui): Rename from new_ui.  Update.
+	(free_ui): Remove.
+	(ui::~ui): Rename from delete_ui.  Update.
+
+2017-10-03  Tom Tromey  <tom@tromey.com>
+
+	* symfile.c (load_progress): Use gdb::byte_vector.
+
+2017-10-03  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-main.c (mi_cmd_trace_frame_collected): Remove unused
+	declaration.
+	* printcmd.c (x_command): Remove unused declaration.
+	* symfile.c (symbol_file_command): Remove unused declaration.
+
+2017-10-03  Tom Tromey  <tom@tromey.com>
+
+	* utils.c (internal_vproblem): Use std::string.
+	(defaulted_query): Likewise.
+
+2017-10-03  Tom Tromey  <tom@tromey.com>
+
+	* guile/scm-ports.c (ioscm_with_output_to_port_worker): Update.
+	* top.c (execute_command_to_string): Update.
+	* utils.c (make_cleanup_restore_page_info): Remove.
+	(do_restore_page_info_cleanup): Remove.
+	(set_batch_flag_and_restore_page_info):
+	New.
+	(make_cleanup_restore_page_info): Remove.
+	(set_batch_flag_and_make_cleanup_restore_page_info): Remove.
+	(~set_batch_flag_and_restore_page_info): New
+	(make_cleanup_restore_uinteger): Remove.
+	(make_cleanup_restore_integer): Remove.
+	(struct restore_integer_closure): Remove.
+	(restore_integer): Remove.
+	* utils.h (struct set_batch_flag_and_restore_page_info): New
+	class.
+	(set_batch_flag_and_make_cleanup_restore_page_info): Remove.
+	(make_cleanup_restore_page_info): Remove.
+	(make_cleanup_restore_uinteger) Remove.
+	(make_cleanup_restore_integer) Remove.
+
+2017-10-03  Tom Tromey  <tom@tromey.com>
+
+	* record-full.h (record_full_gdb_operation_disable_set): Return
+	scoped_restore_tmpl<int>.
+	* infrun.c (adjust_pc_after_break): Update.
+	(handle_signal_stop): Update.
+	* record-full.c (record_full_gdb_operation_disable_set): Return
+	scoped_restore_tmpl<int>.
+	(record_full_wait_1, record_full_insert_breakpoint)
+	(record_full_remove_breakpoint, record_full_save)
+	(record_full_goto_insn): Update.
+
+2017-10-02  Tom Tromey  <tom@tromey.com>
+
+	PR rust/22236:
+	* rust-lang.c (rust_val_print_str): New function.
+	(val_print_struct): Call it.
+	(rust_subscript): Preserve name of slice type.
+
+2017-10-02  Tom Tromey  <tom@tromey.com>
+
+	* rust-lang.c (rust_subscript): Handle slices in
+	EVAL_AVOID_SIDE_EFFECTS case.
+
+2017-10-02  Tom Tromey  <tom@tromey.com>
+
+	* rust-lang.c (rust_slice_type_p): Recognize &str as a slice type.
+
+2017-10-02  Tom Tromey  <tom@tromey.com>
+
+	* rust-lang.h (rust_slice_type): Add "extern".
+
+2017-10-02  Tom Tromey  <tom@tromey.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.h (ada_exc_info::operator<): Make const.
+	(ada_exc_info::operator==): Make const.
+	* ada-lang.c (ada_exc_info::operator<, ada_exc_info::operator==):
+	Make const.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* target.c (read_whatever_is_readable): Change type of "result".
+	Update.
+	(free_memory_read_result_vector): Remove.
+	(read_memory_robust): Change return type.  Update.
+	* mi/mi-main.c (mi_cmd_data_read_memory_bytes): Update.  Use
+	bin2hex, std::string.
+	* target.h (memory_read_result_s): Remove typedef.
+	(free_memory_read_result_vector): Remove.
+	(read_memory_robust): Return std::vector.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-main.c (captured_mi_execute_command): Use scope_restore.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-cmd-info.c (mi_cmd_info_ada_exceptions): Update.
+	* ada-lang.h (struct ada_exc_info): Remove typedef.  Declare
+	operator< and operator==.
+	(ada_exceptions_list): Return a std::vector.
+	* ada-lang.c (ada_exc_info::operator<): Rename from
+	compare_ada_exception_info.
+	(ada_exc_info::operator==): New.
+	(sort_remove_dups_ada_exceptions_list): Change type of
+	"exceptions".
+	(ada_add_standard_exceptions, ada_add_exceptions_from_frame)
+	(ada_add_global_exceptions): Likewise.
+	(ada_exceptions_list_1): Return a std::vector.
+	(ada_exceptions_list): Likewise.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-main.c (struct print_one_inferior_data) <inferiors>: Now a
+	'std::set *'.
+	(print_one_inferior): Update.
+	(free_vector_of_ints): Remove.
+	(list_available_thread_groups): Change "ids" to std::set.
+	(mi_cmd_list_thread_groups): Update.
+	(struct collect_cores_data) <core>: Now a std::set.
+	(collect_cores): Update.
+	(unique): Remove.
+	(print_one_inferior): Update.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-main.c (mi_execute_cli_command): Use std::string.
+	(mi_execute_async_cli_command): Likewise.
+	(mi_cmd_trace_frame_collected): Use field_fmt.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-main.c (mi_cmd_data_write_memory_bytes): Use
+	gdb::byte_vector.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-parse.c (mi_parse): Remove unused declaration.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-cmd-disas.c (mi_cmd_disassemble): Don't copy "oarg".
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* varobj.h (varobj_gen_name): Return std::string.
+	* varobj.c (varobj_gen_name): Return std::string.
+	* mi/mi-cmd-var.c (mi_cmd_var_create): Use std::string.
+	(mi_cmd_var_delete): Don't copy "name".
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-cmd-break.c (mi_argv_to_format): Return std::string.
+	(mi_cmd_break_insert_1): Update.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* target.h (make_scoped_defer_target_commit_resume): Update.
+	* target.c (make_scoped_defer_target_commit_resume): Rename from
+	make_cleanup_defer_target_commit_resume.  Return a
+	scoped_restore.
+	* infrun.c (proceed): Use make_scoped_defer_target_commit_resume.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* main.c (captured_main_1): Remove unused declaration.
+	* spu-multiarch.c (parse_spufs_run): Remove unused declaration.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* symtab.c (search_symbols): Remove unused outer cleanup.
+	(make_source_files_completion_list): Remove unused declaration.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* mt-tdep.c (mt_push_dummy_call): Use gdb::byte_vector.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* xstormy16-tdep.c (xstormy16_push_dummy_call): Use
+	gdb::byte_vector.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* complaints.c (vcomplaint): Use std::string.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* tracepoint.c (trace_variable_command): Use std::string.
+	(encode_actions_1): Remove unused declarations.
+	(create_tsv_from_upload): Use std::string.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* cp-support.c (gdb_demangle): Use std::string.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* stack.c (parse_frame_specification): Use std::string
+	(info_frame_command): Use gdb::unique_xmalloc_ptr.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* tilegx-tdep.c (tilegx_push_dummy_call): Use gdb::byte_vector.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* utils.c (vfprintf_maybe_filtered): Use std::string.
+	(vfprintf_unfiltered): Likewise.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* event-top.c (top_level_prompt): Return std::string.
+	(display_gdb_prompt): Update.
+
+2017-09-29  Tom Tromey  <tom@tromey.com>
+
+	* unittests/common-utils-selftests.c (format): New function.
+	(string_vprintf_tests): New function.
+	(_initialize_common_utils_selftests): Register new tests.
+	* common/common-utils.c (string_vprintf): New function.
+	* common/common-utils.h (string_vprintf): Declare.
+
+2017-09-29  Pedro Alves  <palves@redhat.com>
+
+	* common/rsp-low.c (unpack_varlen_hex): Constify.
+	* common/rsp-low.h (unpack_varlen_hex): Constify.
+	* linux-nat.c (linux_child_static_tracepoint_markers_by_strid):
+	Constify.
+	* remote.c (remote_set_permissions, read_ptid)
+	(remote_current_thread, remote_get_threads_with_qthreadinfo)
+	(remote_static_tracepoint_marker_at)
+	(remote_static_tracepoint_markers_by_strid)
+	(stop_reply_extract_thread, remote_parse_stop_reply): Constify.
+	* tracepoint.c (parse_trace_status, parse_tracepoint_status)
+	(parse_tracepoint_definition, parse_tsv_definition)
+	(parse_static_tracepoint_marker_definition): Constify.
+	* tracepoint.h (parse_static_tracepoint_marker_definition)
+	(parse_trace_status, parse_tracepoint_status)
+	(parse_tracepoint_definition, parse_tsv_definition): Constify.
+
+2017-09-29  Pedro Alves  <palves@redhat.com>
+
+	* remote.c (target_buf, target_buf_size): Delete.
+	(remote_get_noisy_reply): Remove buf_p and sizeof_buf parameters.
+	Use the connection's packet buffer instead.
+	All callers adjusted.
+	(_initialize_remote): Remove references to target_buf and
+	target_buf_size.
+
+2017-09-28  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
+	unittests/common-utils-selftests.c.
+	(SUBDIR_UNITTESTS_OBS): Add common-utils-selftests.o.
+	(COMMON_OBS): Remove utils-selftests.o.
+	* utils-selftests.c: Move to ...
+	* unittests/common-utils-selftests.c: ... here and rename self
+	test to "string_printf".
+
+2017-09-28  Alexander Shaposhnikov <alexander.v.shaposhnikov@gmail.com> (tiny patch)
+
+	* dwarf2read.c (open_and_init_dwp_file): Protect against dwp_file
+	having NULL cus or tus.
+
+2017-09-27  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* arm-tdep.c: (convert_from_extended): Remove.
+	(convert_to_extended): Likewise.
+	(arm_extract_return_value): Use convert_typed_floating.
+	(arm_store_return_value): Likewise.
+
+	* sh-tdep.h (struct gdbarch_tdep): Add sh_littlebyte_bigword_type.
+	* sh-tdep.c: Do not include "floatformat.h".
+	(sh_littlebyte_bigword_type): New function.
+	(sh_register_convert_to_virtual): Use convert_typed_floating.
+	(sh_register_convert_to_raw): Likewise.
+	* sh64-tdep.c: (struct gdbarch_tdep): Add sh_littlebyte_bigword_type.
+	(sh64_littlebyte_bigword_type): New function.
+	(sh64_extract_return_value): Use convert_typed_floating.
+	(sh64_register_convert_to_virtual): Likewise.
+	(sh64_register_convert_to_raw): Likewise.
+
+2017-09-27  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* doublest.h (floatformat_from_type): Move to gdbtypes.h.
+	* doublest.c (floatformat_from_type): Move to gdbtypes.c.
+
+	* gdbtypes.h (union type_specific): Make field floatformat hold
+	just a single struct floatformat, not an array.
+	(floatformat_from_type): Move here.
+	* gdbtypes.c (floatformat_from_type): Move here.  Update to
+	changed TYPE_FLOATFORMAT definition.
+	(verify_floatformat): Update to changed TYPE_FLOATFORMAT.
+	(recursive_dump_type): Likewise.
+	(init_float_type): Install correct floatformat for byte order.
+	(arch_float_type): Likewise.
+
+2017-09-27  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* gdbtypes.c (init_type): Change incoming argument from
+	length-in-bytes to length-in-bits.  Assert length is a
+	multiple of TARGET_CHAR_BITS.
+	(arch_type, arch_flags_type): Likewise.
+	(init_integer_type): Update call to init_type.
+	(init_character_type): Likewise.
+	(init_boolean_type): Likewise.
+	(init_float_type): Likewise.
+	(init_decfloat_type): Likewise.
+	(init_complex_type): Likewise.
+	(init_pointer_type): Likewise.
+	(objfile_type): Likewise.
+	(arch_integer_type): Update call to arch_type.
+	(arch_character_type): Likewise.
+	(arch_boolean_type): Likewise.
+	(arch_float_type): Likewise.
+	(arch_decfloat_type): Likewise.
+	(arch_complex_type): Likewise.
+	(arch_pointer_type): Likewise.
+	(gdbtypes_post_init): Likewise.
+
+	* dwarf2read.c (dwarf2_init_float_type): Update call to init_type.
+	(read_base_type): Likewise.
+	* mdebugread.c (basic_type): Likewise.
+	* stabsread.c (dbx_init_float_type): Likewise.
+	(rs6000_builtin_type): Likewise.
+	(read_range_type): Likewise.  Also, fix call to init_integer_type
+	with erroneous length argument.
+
+	* ada-lang.c (ada_language_arch_info): Update call to arch_type.
+	* d-lang.c (build_d_types): Likewise.
+	* f-lang.c (build_fortran_types): Likewise.
+	* go-lang.c (build_go_types): Likewise.
+	* opencl-lang.c (build_opencl_types): Likewise.
+	* jit.c (finalize_symtab): Likewise.
+	* gnu-v3-abi.c (build_gdb_vtable_type): Likewise.
+	(build_std_type_info_type): Likewise.
+	* target-descriptions.c (tdesc_gdb_type): Likewise.  Also,
+	update call to arch_flags_type.
+
+	* linux-tdep.c (linux_get_siginfo_type_with_fields): Update call to
+	arch_type.
+	* fbsd-tdep.c (fbsd_get_siginfo_type): Likewise.
+	* windows-tdep.c (windows_get_tlb_type): Likewise.
+
+	* avr-tdep.c (avr_gdbarch_init): Update call to arch_type.
+	* ft32-tdep.c (ft32_gdbarch_init): Likewise.
+	* m32c-tdep.c (make_types): Likewise.
+	* rl78-tdep.c (rl78_gdbarch_init): Likewise.
+	(rl78_psw_type): Update call to arch_flags_type.
+	* m68k-tdep.c (m68k_ps_type): Update call to arch_flags_type.
+	* rx-tdep.c (rx_psw_type): Likewise.
+	(rx_fpsw_type): Likewise.
+	* sparc-tdep.c (sparc_psr_type): Likewise.
+	(sparc_fsr_type): Likewise.
+	* sparc64-tdep.c (sparc64_pstate_type): Likewise.
+	(sparc64_ccr_type): Likewise.
+	(sparc64_fsr_type): Likewise.
+	(sparc64_fprs_type): Likewise.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* findcmd.c (find_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* ada-tasks.c (task_command_1, task_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* symtab.c (maintenance_print_symbol_cache)
+	(maintenance_flush_symbol_cache)
+	(maintenance_print_symbol_cache_statistics): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* inferior.c (detach_inferior_command, kill_inferior_command)
+	(inferior_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* regcache.c (regcache_print, maintenance_print_registers)
+	(maintenance_print_raw_registers)
+	(maintenance_print_cooked_registers)
+	(maintenance_print_register_groups)
+	(maintenance_print_remote_registers): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* printcmd.c (map_display_numbers, undisplay_command)
+	(enable_disable_display_command, enable_display_command)
+	(disable_display_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* breakpoint.h (delete_command): Don't declare.
+	* breakpoint.c (delete_command, enable_once_command)
+	(enable_count_command, enable_delete_command, breakpoint_1)
+	(maintenance_info_breakpoints, stopin_command, stopat_command)
+	(delete_command, delete_trace_command, save_breakpoints)
+	(save_breakpoints_command, save_tracepoints_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* macrocmd.c (macro_expand_command, macro_expand_once_command)
+	(skip_ws, extract_identifier, macro_define_command)
+	(macro_undef_command, macro_list_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* infcmd.c (environment_info, set_environment_command)
+	(unset_environment_command, path_info, info_proc_cmd_1)
+	(info_proc_cmd_mappings, info_proc_cmd_stat)
+	(info_proc_cmd_status, info_proc_cmd_cwd, info_proc_cmd_cmdline)
+	(info_proc_cmd_exe, info_proc_cmd_all): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* i386-tdep.c (i386_mpx_info_bounds, i386_mpx_set_bounds):
+	Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* symfile-mem.c (add_symbol_file_from_memory_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* demangle.c (demangle_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* progspace.c (maintenance_info_program_spaces_command):
+	Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* compile/compile.c (check_raw_argument, compile_file_command)
+	(compile_code_command, compile_print_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* reggroups.c (maintenance_print_reggroups): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* dwarf2read.c (save_gdb_index_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* stap-probe.c (info_probes_stap_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* fork-child.c (unset_exec_wrapper_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* btrace.c (get_uint, get_context_size, no_chunk)
+	(maint_btrace_packet_history_cmd)
+	(maint_btrace_clear_packet_history_cmd, maint_btrace_clear_cmd)
+	(maint_info_btrace_cmd): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* reverse.c (delete_bookmark_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* remote.c (set_memory_packet_size)
+	(set_memory_write_packet_size, show_memory_write_packet_size)
+	(set_memory_read_packet_size, show_memory_read_packet_size)
+	(compare_sections_command, packet_command, remote_put_command)
+	(remote_get_command, remote_delete_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* mips-tdep.c (show_mipsfpu_command, set_mipsfpu_single_command)
+	(set_mipsfpu_double_command, set_mipsfpu_none_command)
+	(set_mipsfpu_auto_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-cmds.h (cd_command): Constify.
+	* cli/cli-cmds.c (cd_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* thread.c (thread_name_command, thread_find_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* probe.c (enable_probes_command, disable_probes_command):
+	Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* symfile.c (symbol_file_command): Constify.
+	* gdbcore.h (deprecated_file_changed_hook): Constify.
+	* exec.c (deprecated_file_changed_hook, exec_file_command)
+	(file_command): Constify.
+	* defs.h (symbol_file_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* remote-fileio.c (set_system_call_allowed)
+	(show_system_call_allowed): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* tracepoint.c (delete_trace_variable_command)
+	(tfind_end_command, tfind_start_command, tfind_pc_command)
+	(tfind_tracepoint_command, tfind_line_command)
+	(tfind_range_command, tfind_outside_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* ax-gdb.c (maint_agent_printf_command, agent_command)
+	(agent_eval_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* tracepoint.c (info_scope_command): Constify.
+	* python/python.c (gdbpy_decode_line): Constify.
+	* python/py-breakpoint.c (bppy_init): Constify.
+	* mi/mi-cmd-break.c (mi_cmd_break_insert_1): Constify.
+	* location.h: (new_linespec_location)
+	(string_to_event_location_basic, string_to_event_location):
+	Constify.
+	* location.c (new_linespec_location)
+	(string_to_event_location_basic, string_to_event_location):
+	Constify.
+	* linespec.h (decode_line_with_current_source)
+	(decode_line_with_last_displayed, linespec_lex_to_end): Constify.
+	* linespec.c (linespec_lex_to_end)
+	(decode_line_with_current_source)
+	(decode_line_with_last_displayed): Constify.
+	* guile/scm-breakpoint.c (gdbscm_register_breakpoint_x):
+	Constify.
+	* cli/cli-cmds.c (edit_command, list_command): Constify.
+	* breakpoint.h (until_break_command, watch_command_wrapper)
+	(awatch_command_wrapper, rwatch_command_wrapper)
+	(init_ada_exception_breakpoint): Constify.
+	* breakpoint.c (break_command_1, dprintf_command)
+	(break_range_command, watch_command_wrapper)
+	(rwatch_command_wrapper, awatch_command_wrapper)
+	(until_break_command, init_ada_exception_breakpoint)
+	(strace_marker_create_sals_from_location, trace_command)
+	(ftrace_command, strace_command, struct tracepoint): Constify.
+	* ax-gdb.c (agent_command_1): Constify.
+	* ada-lang.c (ada_exception_sal): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* record.c (cmd_record_delete, cmd_record_stop, cmd_record_save)
+	(cmd_record_goto_begin, cmd_record_goto_end, get_insn_number)
+	(get_context_size, no_chunk, get_insn_history_modifiers)
+	(cmd_record_insn_history, get_call_history_modifiers)
+	(cmd_record_call_history): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* source.c (show_substitute_path_command)
+	(unset_substitute_path_command, set_substitute_path_command):
+	Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* typeprint.c (maintenance_print_type): Constify.
+	* maint.c (maintenance_dump_me, maintenance_demangle)
+	(maintenance_time_display, maintenance_info_sections)
+	(maintenance_print_statistics, maintenance_deprecate)
+	(maintenance_undeprecate): Constify.
+	(maintenance_do_deprecate): Constify.  Use std::string.
+	(maintenance_selftest): Constify.
+	* gdbtypes.h (maintenance_print_type): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* hppa-tdep.c (unwind_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* target-descriptions.c (unset_tdesc_filename_cmd)
+	(maint_print_c_tdesc_cmd, maintenance_check_xml_descriptions):
+	Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* dummy-frame.c (maintenance_print_dummy_frames): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui.c (tui_enable_command, tui_disable_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-regs.c (tui_reg_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* skip.c (skip_file_command, skip_function_command)
+	(skip_enable_command, skip_disable_command, skip_delete_command):
+	Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* record-btrace.c (cmd_record_btrace_bts_start)
+	(cmd_record_btrace_pt_start): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* symmisc.c (maintenance_print_symbols)
+	(maintenance_print_msymbols, maintenance_print_objfiles)
+	(maintenance_info_symtabs, maintenance_check_symtabs)
+	(maintenance_expand_symtabs, maintenance_info_line_tables):
+	Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* top.c (new_ui_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* symfile.c (add_symbol_file_command)
+	(remove_symbol_file_command, list_overlays_command)
+	(map_overlay_command, unmap_overlay_command)
+	(overlay_auto_command, overlay_manual_command)
+	(overlay_off_command, overlay_load_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* spu-tdep.c (info_spu_event_command, info_spu_signal_command)
+	(info_spu_mailbox_command, info_spu_dma_command)
+	(info_spu_proxydma_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-logging.c (set_logging_on, set_logging_off): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-script.c (user_defined_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-dump.c (dump_memory_command, dump_value_command)
+	(dump_srec_memory, dump_srec_value, dump_ihex_memory)
+	(dump_ihex_value, dump_verilog_memory, dump_verilog_value)
+	(dump_tekhex_memory, dump_tekhex_value, dump_binary_memory)
+	(dump_binary_value, append_binary_memory, append_binary_value):
+	Constify.
+	(struct dump_context) <func>: Constify.
+	(add_dump_command): Update.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-cmds.c (show_version, show_configuration)
+	(source_command, show_user): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* target.c (maintenance_print_target_stack): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* interps.c (interpreter_exec_cmd): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* record-full.c (cmd_record_full_restore): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* memattr.c (enable_mem_command, disable_mem_command)
+	(delete_mem_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* value.c (show_convenience): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* gdbcore.h (core_file_command): Update.
+	* corefile.c (core_file_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* user-regs.c (maintenance_print_user_registers): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* cp-namespace.c (maintenance_cplus_namespace): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* cp-support.c (first_component_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* psymtab.c (maintenance_print_psymbols)
+	(maintenance_info_psymtabs, maintenance_check_psymtabs):
+	Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* windows-tdep.c (display_tib): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* linux-fork.c (delete_checkpoint_command)
+	(detach_checkpoint_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* cp-abi.c (set_cp_abi_cmd, show_cp_abi_cmd): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* arc-tdep.c (dump_arc_instruction_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* valprint.c (set_radix, show_radix): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* dtrace-probe.c (info_probes_dtrace_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* command.h (not_just_help_class_command): Update.
+	* cli/cli-decode.h (not_just_help_class_command): Update.
+	* cli/cli-decode.c (not_just_help_class_command): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* gdb_bfd.c (maintenance_info_bfds): Constify.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-decode.c (add_cmd, set_cmd_cfunc): New function
+	overloads.
+	(do_add_cmd): Rename from add_cmd.  Don't call set_cmd_cfunc.
+	(do_const_cfunc): New function.
+	(cmd_cfunc_eq): New overload.
+	(cli_user_command_p): Check do_const_cfunc.
+	* cli/cli-decode.h (struct cmd_list_element) <function>: New field
+	const_cfunc.
+	* command.h (add_cmd): Add const overload and no-function
+	overload.
+	(set_cmd_cfunc): Add const overload.
+	(cmd_const_cfunc_ftype): Declare.
+	(cmd_cfunc_eq): Add const overload.
+	* breakpoint.c, cli-cmds.c, cli-dump.c, guile/scm-cmd.c,
+	python/py-cmd.c, target.c, tracepoint.c: Use no-function add_cmd
+	overload.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* macroexp.c (get_next_token_for_substitution): New function.
+	(substitute_args): Call it.  Check for __VA_OPT__.
+
+2017-09-26  Walfred Tedeschi  <walfred.tedeschi@intel.com>
+	    Pedro Alves <palves@redhat.com>
+
+	* dwarf2read.c (dwarf2_cu): Remove field producer_is_icc and add
+	producer_is_icc_lt_14.
+	(producer_is_icc_lt_14): New function.
+	(check_producer): Add code for checking version of ICC.
+	(producer_is_icc): Move to producer.c.
+	(read_structure_type): Restrict ICC workaround to ICC<14.
+	* producer.c: Include selftest.h.
+	(producer_is_icc, producer_parsing_tests, _initialize_producer):
+	New functions.
+	* producer.h (producer_is_icc): New declaration.
+
+2017-09-26  Walfred Tedeschi  <walfred.tedeschi@intel.com>
+
+	* Makefile.in (SFILES): Add producer.c.
+	(COMMON_OBS): Add producer.o
+	* amd64-tdep.c (producer.h): Add new include.
+	* dwarf2read.c (producer.h): Add new include.
+	* producer.c: New file.
+	* producer.h: New file.
+	* utils.c (producer_is_gcc, producer_is_gcc_ge_4): Move to
+	producer.c.
+	* utils.h (producer_is_gcc, producer_is_gcc_ge_4): Move to
+	producer.h.
+
+2017-09-26  Matthias Klose  <doko@ubuntu.com>
+
+	* configure.ac: Search ncursesw before ncurses.
+	Check ncursesw/ncurses.h before ncurses/ncurses.h.
+	* gdb_curses.h: Include <ncursesw/ncurses.h>
+	* config.in, configure: Regenerate.
+
+2017-09-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	PR gdb/22185
+	* configure.host <*-*-solaris2.[01], *-*-solaris2.[2-9]*>: Mark as
+	obsolete.
+	Use gdb_host sol2 for i[34567]86-*-solaris2*, x86_64-*-solaris2*.
+	Remove i386sol2 support.
+	* configure.nat <i386sol2>: Remove.
+	<sol2-64>: Fold into ...
+	<sol2>: ... this.
+	Move common settings to default section.
+	Add sol-thread.o.
+	* configure.tgt <i[34567]86-*-solaris2.1[0-9]*,
+	x86_64-*-solaris2.1[0-9]*>: Rename to ...
+	<i[34567]86-*-solaris2*, x86_64-*-solaris2*>: ... this.
+	<i[34567]86-*-solaris*>: Remove.
+	<sparc-*-solaris2.[0-6], sparc-*-solaris2.[0-6].*>: Remove.
+
+	* configure.ac: Remove wctype in libw check.
+	(_MSE_INT_H): Don't define on Solaris 7-9.
+	<solaris*>: Remove libthread_db.so.1 check.
+	* configure: Regenerate.
+	* config.in: Regenerate.
+
+	* proc-service.c: Remove PROC_SERVICE_IS_OLD handling.
+	(gdb_ps_prochandle_t, gdb_ps_read_buf_t, gdb_ps_write_buf_t)
+	(gdb_ps_size_t): Remove.
+	Use base types in users.
+	* sol-thread.c: Likewise, also for gdb_ps_addr_t.
+
+	* NEWS (Changes since GDB 8.0): Document Solaris 2.0-9 removal.
+
+2017-09-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	PR build/22206
+	* sparc64-tdep.c (adi_tag_fd): Print pid as long.
+	(adi_is_addr_mapped): Likewise.
+	(PSR_ICC): Don't redefine.
+	(PSR_IMPL): Likewise.
+
+2017-09-25  Tom Tromey  <tom@tromey.com>
+
+	* regcache.c (regcache::dump): Use string_printf.
+
+2017-09-25  Tom Tromey  <tom@tromey.com>
+
+	* regcache.c (class regcache_invalidator): New.
+	(struct register_to_invalidate): Remove.
+	(make_cleanup_regcache_invalidate): Remove.
+	(regcache::raw_write): Use regcache_invalidator.
+
+2017-09-25  Tom Tromey  <tom@tromey.com>
+
+	* spu-tdep.c (spu2ppu_sniffer): Update.
+	* regcache.h (make_cleanup_regcache_xfree): Don't declare.
+	* regcache.c (do_regcache_xfree, make_cleanup_regcache_xfree):
+	Remove.
+	* ppc-linux-tdep.c (ppu2spu_sniffer): Update.
+	* mi/mi-main.c (mi_cmd_data_list_changed_registers): Update.
+	* frame.h (frame_save_as_regcache): Return std::unique_ptr.
+	* frame.c (frame_save_as_regcache): Return std::unique_ptr.
+	(frame_pop): Update.
+
+2017-09-25  Tom Tromey  <tom@tromey.com>
+
+	* spu-tdep.c (spu2ppu_dealloc_cache): Use delete.
+	* regcache.h (regcache_xfree): Don't declare.
+	* regcache.c (regcache_xfree): Remove.
+	(do_regcache_xfree): Use delete.
+	* ppc-linux-tdep.c (ppu2spu_dealloc_cache): Use delete.
+	* linux-fork.c (free_fork): Use delete.
+	(fork_save_infrun_state): Likewise.
+	* jit.c (jit_dealloc_cache): Use delete.
+	* infrun.c (discard_infcall_suspend_state): Use delete.
+
+2017-09-25  Tom Tromey  <tom@tromey.com>
+
+	* regcache.h (regcache_xmalloc): Don't declare.
+	(regcache_raw_set_cached_value): Update comment.
+	* regcache.c (regcache_xmalloc): Remove.
+	* ppc-linux-tdep.c (ppu2spu_sniffer): Use new.
+	* jit.c (jit_frame_sniffer): Use new.
+	* frame.c (frame_save_as_regcache): Use new.
+
+2017-09-25  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* NEWS: Advertise support for guarded-storage registers on IBM z.
+
+2017-09-25  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* s390-linux-nat.c (have_regset_gs): New static variable.
+	(s390_linux_fetch_inferior_registers): Handle guarded-storage
+	control block and guarded-storage broadcast control regsets.
+	(s390_read_description): Detect whether the target has
+	guarded-storage support, return appropriate tdesc.
+	* s390-linux-tdep.c (features/s390-gs-linux64.c): New include.
+	(features/s390x-gs-linux64.c): Likewise.
+	(struct gdbarch_tdep) <have_gs>: New field.
+	(s390_regmap_gs, s390_regmap_gsbc, s390_gs_regset)
+	(s390_gsbc_regset): New variables.
+	(s390_iterate_over_regset_sections): Iterate over s390_gs_regset
+	and s390_gsbc_regset, if applicable.
+	(s390_core_read_description): Check whether core file was from a
+	target with guarded-storage support; include appropriate regsets.
+	(s390_gdbarch_init): Add registers for guarded-storage support.
+	(_initialize_s390_tdep): Initialize new target descriptions that
+	include registers for guarded-storage support.
+	* s390-linux-tdep.h (HWCAP_S390_GS, S390_GSD_REGNUM)
+	(S390_GSSM_REGNUM, S390_GSEPLA_REGNUM)
+	(S390_BC_GSD_REGNUM, S390_BC_GSSM_REGNUM): New defines.
+	(S390_NUM_REGS): Adjust macro definition.
+	(s390_gs_regset, s390_gsbc_regset, tdesc_s390_gs_linux64)
+	(tdesc_s390x_gs_linux64): New declarations.
+
+2017-09-25  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* features/s390-gs-linux64.xml: New file.
+	* features/s390-gs.xml: New file.
+	* features/s390-gsbc.xml: New file.
+	* features/s390x-gs-linux64.xml: New file.
+	* features/Makefile (WHICH): Add s390-gs-linux64 and
+	s390x-gs-linux64.
+	(s390-gs-linux64-expedite, s390x-gs-linux64-expedite): New macros.
+	(XMLTOC): Add s390-gs-linux64.xml and s390x-linux64.xml.
+	* features/s390-gs-linux64.c: New generated file.
+	* features/s390x-gs-linux64.c: New file.
+	* regformats/s390-gs-linux64.dat: New file.
+	* regformats/s390x-gs-linux64.dat: New file.
+
+2017-09-23  Tom Tromey  <tom@tromey.com>
+
+	* defs.h (make_cleanup_override_quit_handler): Don't declare.
+
+2017-09-22  Tom Tromey  <tom@tromey.com>
+
+	* utils.c (class scoped_input_handler) <m_quit_handler>: Change
+	type to scoped_restore_tmpl.
+	<scoped_input_handler>: Initialize m_quit_handler directly.
+
+2017-09-22  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* cli/cli-cmds.c (pwd_command): Use "getcwd (NULL, 0)".
+	(cd_command): Likewise.  Free "current_directory" before
+	assigning to it.
+	* main.c (captured_main_1): Use "getcwd (NULL, 0)".
+	* mi/mi-cmd-env.c (mi_cmd_env_pwd): Likewise.
+	* top.c (gdb_dirbuf): Remove global declaration.
+	* top.h (gdb_dirbuf): Likewise.
+
+2017-09-22  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gnulib/aclocal.m4: Regenerate.
+	* gnulib/config.in: Regenerate.
+	* gnulib/configure: Regenerate.
+	* gnulib/import/Makefile.am: Regenerate.
+	* gnulib/import/Makefile.in: Regenerate.
+	* gnulib/import/assure.h: New file.
+	* gnulib/import/at-func.c: Likewise
+	* gnulib/import/chdir-long.c: New file.
+	* gnulib/import/chdir-long.h: New file.
+	* gnulib/import/cloexec.c: New file.
+	* gnulib/import/cloexec.h: New file.
+	* gnulib/import/close.c: New file.
+	* gnulib/import/closedir.c: New file.
+	* gnulib/import/dirent-private.h: New file.
+	* gnulib/import/dup-safer.c: New file.
+	* gnulib/import/dup.c: New file.
+	* gnulib/import/dup2.c: New file.
+	* gnulib/import/error.c: New file.
+	* gnulib/import/error.h: New file.
+	* gnulib/import/exitfail.c: New file.
+	* gnulib/import/exitfail.h: New file.
+	* gnulib/import/fchdir.c: New file.
+	* gnulib/import/fcntl.c: New file.
+	* gnulib/import/fcntl.in.h: New file.
+	* gnulib/import/fd-hook.c: New file.
+	* gnulib/import/fd-hook.h: New file.
+	* gnulib/import/fd-safer.c: New file.
+	* gnulib/import/fdopendir.c: New file.
+	* gnulib/import/filename.h: New file.
+	* gnulib/import/filenamecat-lgpl.c: New file.
+	* gnulib/import/filenamecat.h: New file.
+	* gnulib/import/fstat.c: New file.
+	* gnulib/import/fstatat.c: New file.
+	* gnulib/import/getcwd-lgpl.c: New file.
+	* gnulib/import/getcwd.c: New file.
+	* gnulib/import/getdtablesize.c: New file.
+	* gnulib/import/getlogin_r.c: New file.
+	* gnulib/import/getprogname.c: New file.
+	* gnulib/import/getprogname.h: New file.
+	* gnulib/import/gettext.h: New file.
+	* gnulib/import/glob-libc.h: New file.
+	* gnulib/import/glob.c: New file.
+	* gnulib/import/glob.in.h: New file.
+	* gnulib/import/intprops.h: New file.
+	* gnulib/import/m4/chdir-long.m4: New file.
+	* gnulib/import/m4/close.m4: New file.
+	* gnulib/import/m4/closedir.m4: New file.
+	* gnulib/import/m4/d-ino.m4: New file.
+	* gnulib/import/m4/d-type.m4: New file.
+	* gnulib/import/m4/dup.m4: New file.
+	* gnulib/import/m4/dup2.m4: New file.
+	* gnulib/import/m4/error.m4: New file.
+	* gnulib/import/m4/fchdir.m4: New file.
+	* gnulib/import/m4/fcntl.m4: New file.
+	* gnulib/import/m4/fcntl_h.m4: New file.
+	* gnulib/import/m4/fdopendir.m4: New file.
+	* gnulib/import/m4/filenamecat.m4: New file.
+	* gnulib/import/m4/fstat.m4: New file.
+	* gnulib/import/m4/fstatat.m4: New file.
+	* gnulib/import/m4/getcwd-abort-bug.m4: New file.
+	* gnulib/import/m4/getcwd-path-max.m4: New file.
+	* gnulib/import/m4/getcwd.m4: New file.
+	* gnulib/import/m4/getdtablesize.m4: New file.
+	* gnulib/import/m4/getlogin_r.m4: New file.
+	* gnulib/import/m4/getprogname.m4: New file.
+	* gnulib/import/m4/glob.m4: New file.
+	* gnulib/import/m4/gnulib-cache.m4: Regenerate.
+	* gnulib/import/m4/gnulib-comp.m4: Regenerate.
+	* gnulib/import/m4/mempcpy.m4: New file.
+	* gnulib/import/m4/memrchr.m4: New file.
+	* gnulib/import/m4/mode_t.m4: New file.
+	* gnulib/import/m4/msvc-inval.m4: New file.
+	* gnulib/import/m4/msvc-nothrow.m4: New file.
+	* gnulib/import/m4/open.m4: New file.
+	* gnulib/import/m4/openat.m4: New file.
+	* gnulib/import/m4/opendir.m4: New file.
+	* gnulib/import/m4/readdir.m4: New file.
+	* gnulib/import/m4/realloc.m4: New file.
+	* gnulib/import/m4/rewinddir.m4: New file.
+	* gnulib/import/m4/save-cwd.m4: New file.
+	* gnulib/import/m4/strdup.m4: New file.
+	* gnulib/import/m4/strerror.m4: New file.
+	* gnulib/import/m4/unistd-safer.m4: New file.
+	* gnulib/import/mempcpy.c: New file.
+	* gnulib/import/memrchr.c: New file.
+	* gnulib/import/msvc-inval.c: New file.
+	* gnulib/import/msvc-inval.h: New file.
+	* gnulib/import/msvc-nothrow.c: New file.
+	* gnulib/import/msvc-nothrow.h: New file.
+	* gnulib/import/open.c: New file.
+	* gnulib/import/openat-die.c: New file.
+	* gnulib/import/openat-priv.h: New file.
+	* gnulib/import/openat-proc.c: New file.
+	* gnulib/import/openat.c: New file.
+	* gnulib/import/openat.h: New file.
+	* gnulib/import/opendir.c: New file.
+	* gnulib/import/pipe-safer.c: New file.
+	* gnulib/import/readdir.c: New file.
+	* gnulib/import/realloc.c: New file.
+	* gnulib/import/rewinddir.c: New file.
+	* gnulib/import/save-cwd.c: New file.
+	* gnulib/import/save-cwd.h: New file.
+	* gnulib/import/strdup.c: New file.
+	* gnulib/import/strerror-override.c: New file.
+	* gnulib/import/strerror-override.h: New file.
+	* gnulib/import/strerror.c: New file.
+	* gnulib/import/unistd--.h: New file.
+	* gnulib/import/unistd-safer.h: New file.
+	* gnulib/update-gnulib.sh (IMPORTED_GNULIB_MODULES): Add
+	"getcwd" and "glob".
+	* ser-tcp.c: Undefine "close" before redefining it.
+
+2017-09-21  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* guile/scm-value.c (gdbscm_value_address): Initialize address,
+	get rid of res_val.
+
+2017-09-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* configure.nat <i386sol2,i386>: Add fork-inferior.o to NATDEPFILES.
+	<sol2,sparc>: Likewise.
+	<sol2-64,i386>: Likewise.
+
+	* warning.m4 (AM_GDB_WARNINGS): Disable -Wunknown-pragmas,
+	-Wdeprecated-declarations on *-*-solaris*.
+	* configure: Regenerate.
+
+	* procfs.c: Include "nat/inferior.h".
+	(procfs_info_proc): Fix typo.
+
+2017-09-21  Kevin Buettner  <kevinb@redhat.com>
+
+	* remote.c (vector): Include.
+	(struct private_thread_info): Add field, thread_handle.
+	(free_private_thread_info): Deallocate storage associated with
+	thread handle.
+	(get_private_info_thread): Initialize `thread_handle' field.
+	(struct thread_item): Add field, thread_handle.
+	(clear_threads_listing_context): Deallocate storage associated
+	with thread handle.
+	(start_thread): Add support for "handle" attribute.
+	(thread_attributes): Add "handle".
+	(remote_get_threads_with_qthreadinfo): Initialize thread_handle
+	field.
+	(remote_update_thread_list): Update thread_handle.
+	(remote_thread_handle_to_thread_info): New function.
+	(init_remote_ops): Initialize to_thread_handle_to_thread_info.
+
+2017-09-21  Kevin Buettner  <kevinb@redhat.com>
+
+	* python/py-inferior.c (gdbpy_thread_from_thread_handle): New
+	function.
+	(inferior_object_methods): Add gdbpy_thread_from_thread_handle.
+	* python/python-internal.h (thread_object_type): Declare.
+
+2017-09-21  Kevin Buettner  <kevinb@redhat.com>
+
+	* target.h (struct target_ops): Add to_thread_handle_to_thread_info.
+	(target_thread_handle_to_thread_info): Declare.
+	* target.c (target_thread_handle_to_thread_info): New function.
+	* target-delegates.c: Regenerate.
+	* gdbthread.h (find_thread_by_handle): Declare.
+	* thread.c (find_thread_by_handle): New function.
+	* linux-thread-db.c (thread_db_thread_handle_to_thread_info): New
+	function.
+	(init_thread_db_ops): Register thread_db_thread_handle_to_thread_info.
+
+2017-09-21  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* nat/linux-waitpid.c (linux_debug): Add ATTRIBUTE_PRINTF.
+
+2017-09-21  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* microblaze-tdep.c (microblaze_debug): Add ATTRIBUTE_PRINTF.
+
+2017-09-21  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.tgt (aarch64*-*-freebsd*): Add fbsd-tdep.o solib-svr4.o
+	to gdb_target_obs.
+
+2017-09-20  Tom Tromey  <tom@tromey.com>
+
+	* breakpoint.c (struct counted_command_line): Remove.
+	(breakpoint_commands): Update.
+	(alloc_counted_command_line, incref_counted_command_line)
+	(decref_counted_command_line, do_cleanup_counted_command_line)
+	(make_cleanup_decref_counted_command_line): Remove.
+	(breakpoint_set_commands, commands_command_1, ~bpstats, bpstats)
+	(bpstat_clear_actions, bpstat_do_actions_1, watchpoint_check)
+	(bpstat_stop_status, print_one_breakpoint_location, ~breakpoint)
+	(save_breakpoints): Update.
+	* breakpoint.h (counted_command_line): Now a typedef to
+	shared_ptr.
+	(struct breakpoint) <commands>: Now a counted_command_line.
+	(struct bpstats) <command>: Likewise.
+
+2017-09-20  Tom Tromey  <tom@tromey.com>
+
+	* breakpoint.c (struct commands_info, do_map_commands_command):
+	Remove.
+	(commands_command_1): Update.
+	(iterate_over_related_breakpoints): Take a function_view.
+	(do_delete_breakpoint, do_map_delete_breakpoint): Remove.
+	(delete_command): Update.
+	(map_breakpoint_numbers): Take a function_view.
+	(do_disable_breakpoint, do_map_delete_breakpoint): Remove.
+	(disable_command): Update.
+	(do_enable_breakpoint, do_map_enable_breakpoint): Remove.
+	(enable_command): Update.
+	(struct disp_data, do_enable_breakpoint_disp)
+	(do_map_enable_once_breakpoint, do_map_enable_count_breakpoint)
+	(do_map_enable_delete_breakpoint): Remove.
+	(enable_once_command, enable_count_command, enable_delete_command)
+	(delete_trace_variable_command): Update.
+
+2017-09-20  Tom Tromey  <tom@tromey.com>
+
+	* breakpoint.c (~bpstats): Rename from bpstat_free.  Update.
+	(bpstat_clear): Use delete.
+	(bpstats): New constructors.
+	(bpstat_copy, bpstat_stop_status): Use new.
+	(dprintf_after_condition_true): Update.
+	* breakpoint.h (bpstats::bpstats): Add constructors.
+	(bpstats::~bpstats): Add destructor.
+
+2017-09-20  Pedro Alves  <palves@redhat.com>
+
+	* eval.c (make_params): Delete, refactored as ...
+	(class fake_method): ... this new type's ctor.
+	(fake_method::~fake_method): New.
+	(evaluate_subexp_standard): Use 'fake_method'.
+
+2017-09-20  Tom Tromey  <tom@tromey.com>
+
+	* windows-nat.c (get_windows_debug_event, windows_wait)
+	(do_initial_windows_stuff, windows_attach): Update.
+	* utils.c (vwarning, internal_vproblem): Update.
+	(ui_unregister_input_event_handler_cleanup)
+	(prepare_to_handle_input): Remove.
+	(class scoped_input_handler): New.
+	(defaulted_query, prompt_for_continue): Update.
+	* tui/tui-hooks.c (tui_refresh_frame_and_register_information):
+	Update.
+	* top.c (undo_terminal_modifications_before_exit): Update.
+	* target/target.h (target_terminal_init, target_terminal_inferior)
+	(target_terminal_ours): Don't declare.
+	(class target_terminal): New.
+	* target.h (target_terminal_is_inferior, target_terminal_is_ours)
+	(target_terminal_ours_for_output)
+	(make_cleanup_restore_target_terminal): Don't declare.
+	(target_terminal_info): Remove.
+	* target.c (enum terminal_state, terminal_state): Remove.
+	(target_terminal::terminal_state): Define.
+	(target_terminal::init): Rename from target_terminal_init.
+	(target_terminal::inferior): Rename from
+	target_terminal_inferior.
+	(target_terminal::ours): Rename from target_terminal_ours.
+	(target_terminal::ours_for_output): Rename from
+	target_terminal_ours_for_output.
+	(target_terminal::info): New method.
+	(cleanup_restore_target_terminal)
+	(make_cleanup_restore_target_terminal): Remove.
+	* solib.c (handle_solib_event): Update.
+	* remote.c (remote_serial_quit_handler): Update.
+	(remote_terminal_inferior, remote_wait_as): Update.
+	* record-full.c (record_full_wait_1): Update.
+	* nto-procfs.c (procfs_create_inferior): Update.
+	* nat/fork-inferior.c (startup_inferior): Update.
+	* mi/mi-interp.c (mi_new_thread, mi_thread_exit)
+	(mi_record_changed, mi_inferior_added, mi_inferior_appeared)
+	(mi_inferior_exit, mi_inferior_removed, mi_traceframe_changed)
+	(mi_tsv_created, mi_tsv_deleted, mi_tsv_modified)
+	(mi_breakpoint_created, mi_breakpoint_deleted)
+	(mi_breakpoint_modified, mi_on_resume, mi_solib_loaded)
+	(mi_solib_unloaded, mi_command_param_changed, mi_memory_changed)
+	(mi_user_selected_context_changed, report_initial_inferior):
+	Update.
+	* linux-nat.c (linux_nat_attach, linux_nat_terminal_ours)
+	(linux_nat_terminal_inferior): Update.
+	* infrun.c (follow_fork_inferior)
+	(handle_vfork_child_exec_or_exit, do_target_resume)
+	(check_curr_ui_sync_execution_done, handle_inferior_event_1)
+	(handle_signal_stop, maybe_remove_breakpoints, normal_stop):
+	Update.
+	* inflow.c (child_terminal_init, info_terminal_command): Update.
+	* infcmd.c (post_create_inferior, continue_1, prepare_one_step)
+	(attach_command): Update.
+	* infcall.c (call_thread_fsm_should_stop): Update.
+	* gnu-nat.c (gnu_attach): Update.
+	* extension.c (struct active_ext_lang_state)
+	(restore_active_ext_lang): Update.
+	* exceptions.c (print_flush): Update.
+	* event-top.c (async_enable_stdin, default_quit_handler): Update.
+	(struct quit_handler_cleanup_data, restore_quit_handler)
+	(restore_quit_handler_dtor, make_cleanup_override_quit_handler):
+	Remove.
+	* cp-support.c (gdb_demangle): Update.
+	* breakpoint.c (update_inserted_breakpoint_locations)
+	(insert_breakpoint_locations, handle_jit_event)
+	(disable_breakpoints_in_unloaded_shlib): Update.
+	* annotate.c (annotate_breakpoints_invalid)
+	(annotate_frames_invalid): Update.
+
+2017-09-20  Tom Tromey  <tom@tromey.com>
+
+	* main.c (catch_command_errors): Rename from
+	catch_command_errors_const.
+	(captured_main_1): Update.
+
+2017-09-20  Pedro Alves  <palves@redhat.com>
+
+	* cli/cli-cmds.c (list_command): Use print_sal_location.
+	(print_sal_location): New function.
+	(ambiguous_line_spec): Use print_sal_location.
+	* linespec.c (symbol_to_sal): Record the symbol in the sal.
+	* symtab.c (find_function_start_sal): Likewise.
+	* symtab.h (symtab_and_line::symbol): New field.
+
+2017-09-20  Pedro Alves  <palves@redhat.com>
+
+	* linespec.c (minsym_found): Handle non-text minsyms.
+	(symbol_to_sal): Record a sal.pc for non-block, non-label symbols.
+
+2017-09-20  Walfred Tedeschi  <walfred.tedeschi@intel.com>
+
+	* features/Makefile (i386-avx-mpx-avx512-pku.dat): Add missing
+	backslash.
+
+2017-09-20  Walfred Tedeschi  <walfred.tedeschi@intel.com>
+
+	* gdb.arch/i386-avx512.c (move_zmm_data_to_reg): Use
+	vmovups instead vmovaps.
+	(move_zmm_data_to_memory): Use vmovups instead vmovaps.
+
+2017-09-19  John Baldwin  <jhb@FreeBSD.org>
+
+	* NEWS (Changes since GDB 8.0): Add starti.
+	* infcmd.c (enum run_break): New.
+	(run_command_1): Queue pending event for RUN_STOP_AT_FIRST_INSN
+	case.
+	(run_command): Use enum run_how.
+	(start_command): Likewise.
+	(starti_command): New function.
+	(RUN_ARGS_HELP): New macro.
+	(_initialize_infcmd): Use RUN_ARGS_HELP for run and start
+	commands.  Add starti command.
+
+2017-09-19  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (monitor.o): Remove the rule.
+
+2017-09-19  Yao Qi  <yao.qi@linaro.org>
+
+	* annotate.h (struct annotate_arg_emitter): Use
+	DISABLE_COPY_AND_ASSIGN.
+	* common/refcounted-object.h (refcounted_object): Likewise.
+	* completer.h (struct completion_result): Likewise.
+	* dwarf2read.c (struct dwarf2_per_objfile): Likewise.
+	* filename-seen-cache.h (filename_seen_cache): Likewise.
+	* gdbcore.h (thread_section_name): Likewise.
+	* gdb_regex.h (compiled_regex): Likewise.
+	* gdbthread.h (scoped_restore_current_thread): Likewise.
+	* inferior.h (scoped_restore_current_inferior): Likewise.
+	* jit.c (jit_reader): Likewise.
+	* linespec.h (struct linespec_result): Likewise.
+	* mi/mi-parse.h (struct mi_parse): Likewise.
+	* nat/fork-inferior.c (execv_argv): Likewise.
+	* progspace.h (scoped_restore_current_program_space): Likewise.
+	* python/python-internal.h (class gdbpy_enter): Likewise.
+	* regcache.h (regcache): Likewise.
+	* target-descriptions.c (struct tdesc_reg): Likewise.
+	(struct tdesc_type): Likewise.
+	(struct tdesc_feature): Likewise.
+	* ui-out.h (ui_out_emit_type): Likewise.
+
+2017-09-18  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* dwarf2expr.c (dwarf_expr_context::execute_stack_op): Remove
+	label abort_expression.
+
+2017-09-16  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* common/buffer.c (buffer_xml_printf): Adjust.
+	* common/xml-utils.c (xml_escape_text): Change return type to
+	std::string, update code accordingly.
+	* common/xml-utils.h (xml_escape_text): Change return type to
+	std::string.
+	* rs6000-aix-tdep.c (rs6000_aix_shared_library_to_xml): Adjust.
+	* windows-tdep.c (windows_xfer_shared_library): Adjust.
+	* unittests/xml-utils-selftests.c (test_xml_escape_text):
+	Adjust.
+
+2017-09-16  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add new source file.
+	(SUBDIR_UNITTESTS_OBS): Add new object file.
+	* unittests/xml-utils-selftests.c: New file.
+
+2017-09-16  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* common/selftest.h (selftest): New struct/interface.
+	(register_test): Add name parameter, add new overload.
+	(run_tests): Add filter parameter.
+	(for_each_selftest_ftype): New typedef.
+	(for_each_selftest): New declaration.
+	* common/selftest.c (tests): Change type to
+	map<string, unique_ptr<selftest>>.
+	(simple_selftest): New struct.
+	(register_test): New function.
+	(register_test): Add name parameter and use it.
+	(run_tests): Add filter parameter and use it.  Add prints.
+	Adjust to vector -> map change.
+	* aarch64-tdep.c (_initialize_aarch64_tdep): Add names when
+	registering selftests.
+	* arm-tdep.c (_initialize_arm_tdep): Likewise.
+	* disasm-selftests.c (_initialize_disasm_selftests): Likewise.
+	* dwarf2-frame.c (_initialize_dwarf2_frame): Likewise.
+	* dwarf2loc.c (_initialize_dwarf2loc): Likewise.
+	* findvar.c (_initialize_findvar): Likewise.
+	* gdbarch-selftests.c (_initialize_gdbarch_selftests): Likewise.
+	* maint.c (maintenance_selftest): Update call to run_tests.
+	(maintenance_info_selftests): New function.
+	(_initialize_maint_cmds): Register "maintenance info selftests"
+	command.  Update "maintenance selftest" doc.
+	* regcache.c (_initialize_regcache): Add names when registering
+	selftests.
+	* rust-exp.y (_initialize_rust_exp): Likewise.
+	* selftest-arch.c (gdbarch_selftest): New struct.
+	(gdbarch_tests): Remove.
+	(register_test_foreach_arch): Add name parameter.  Call
+	register_test.
+	(tests_with_arch): Remove, move most content to
+	gdbarch_selftest::operator().
+	(_initialize_selftests_foreach_arch): Remove.
+	* selftest-arch.h (register_test_foreach_arch): Add name
+	parameter.
+	(run_tests_with_arch): New declaration.
+	* utils-selftests.c (_initialize_utils_selftests): Add names
+	when registering selftests.
+	* utils.c (_initialize_utils): Likewise.
+	* unittests/array-view-selftests.c
+	(_initialize_array_view_selftests): Likewise.
+	* unittests/environ-selftests.c (_initialize_environ_selftests):
+	Likewise.
+	* unittests/function-view-selftests.c
+	(_initialize_function_view_selftests): Likewise.
+	* unittests/offset-type-selftests.c
+	(_initialize_offset_type_selftests): Likewise.
+	* unittests/optional-selftests.c
+	(_initialize_optional_selftests): Likewise.
+	* unittests/scoped_restore-selftests.c
+	(_initialize_scoped_restore_selftests): Likewise.
+	* NEWS: Document "maintenance selftest" and "maint info
+	selftests".
+
+2017-09-16  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* mi/mi-main.c (mi_load_progress): Restore current_uiout using a
+	scoped_restore.
+
+2017-09-16  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* mi/mi-main.c (mi_load_progress): Make uiout variable
+	a unique_ptr.
+
+2017-09-15  Pedro Alves  <palves@redhat.com>
+
+	* compile/compile-c-types.c (convert_enum, convert_int)
+	(convert_float): Adjust to refer to int_type_v0 and float_type_v0.
+
+2017-09-15  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* dwarf2read.c (copy_string): Remove.
+	(parse_macro_definition): Replace copy_string with savestring.
+
+2017-09-15  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.tgt (i[34567]86-*-darwin*): Append amd64.o to
+	gdb_target_obs.
+	(i[34567]86-*-solaris2.1[0-9]* | x86_64-*-solaris2.1[0-9]*):
+	Likewise.
+	(i[34567]86-*-linux*): Likewise.
+
+2017-09-14  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* dwarf2expr.h (dwarf_stack_value): Add constructor.
+	(dwarf_expr_context) <~dwarf_expr_context>: Define as default.
+	<stack>: Change type to std::vector.
+	<stack_len, stack_allocated>: Remove.
+	<grow_stack>: Remove.
+	* dwarf2expr.c (dwarf_expr_context::dwarf_expr_context): Adjust.
+	(dwarf_expr_context::~dwarf_expr_context): Remove.
+	(dwarf_expr_context::grow_stack): Remove.
+	(dwarf_expr_context::push): Adjust.
+	(dwarf_expr_context::pop): Adjust.
+	(dwarf_expr_context::fetch): Adjust.
+	(dwarf_expr_context::fetch_in_stack_memory): Adjust.
+	(dwarf_expr_context::stack_empty_p): Adjust.
+	(dwarf_expr_context::execute_stack_op): Adjust.
+
+2017-09-14  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* dwarf2expr.h (dwarf_expr_context) <stack_empty_p>: Change
+	return type to bool.
+	* dwarf2expr.c (dwarf_expr_context::stack_empty_p): Likewise.
+
+2017-09-14  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* dwarf2expr.h (dwarf_expr_piece) <v.mem.in_stack_memory>:
+	Change type to bool.
+	(dwarf_stack_value) <in_stack_memory>: Likewise.
+	(dwarf_expr_context) <push_address>: Change parameter type to
+	bool.
+	<fetch_in_stack_memory>: Change return type to bool.
+	<push>: Change parameter type to bool.
+	* dwarf2expr.c (dwarf_expr_context::push): Change parameter type
+	to bool.
+	(dwarf_expr_context::push_address): Likewise.
+	(dwarf_expr_context::fetch_in_stack_memory): Change return type
+	to bool.
+	(dwarf_expr_context::execute_stack_op): Adjust.
+	* dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Adjust.
+
+2017-09-14  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* dwarf2expr.h (struct dwarf_expr_piece): Move up.
+	(struct dwarf_expr_context) <n_pieces>: Remove.
+	<pieces>: Change type to std::vector.
+	* dwarf2expr.c (dwarf_expr_context::dwarf_expr_context): Adjust.
+	(dwarf_expr_context::~dwarf_expr_context): Don't manually free
+	pieces.
+	(dwarf_expr_context::add_piece): Adjust.
+	* dwarf2loc.c (struct piece_closure): Initialize fields.
+	<n_pieces>: Remove.
+	<pieces>: Change type to std::vector.
+	(allocate_piece_closure): Adjust, change parameter to
+	std::vector rvalue and std::move it to piece_closure.
+	(rw_pieced_value): Adjust.
+	(check_pieced_synthetic_pointer): Adjust.
+	(indirect_synthetic_pointer): Adjust.
+	(coerce_pieced_ref): Adjust.
+	(free_pieced_value_closure):  Adjust.  Use delete to free
+	piece_closure.
+	(dwarf2_evaluate_loc_desc_full): Adjust.  std::move ctx.pieces
+	to allocate_piece_closure.
+	(dwarf2_loc_desc_get_symbol_read_needs): Adjust.
+
+2017-09-12  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* probe.h (probe_ops_cp): Remove typedef.
+	(DEF_VEC_P (probe_ops_cp)): Remove.
+	(all_probe_ops): Change type to std::vector.
+	* probe.c (info_probes_for_ops): Adjust to vector change.
+	(probe_linespec_to_ops): Likewise.
+	(all_probe_ops): Change type to std::vector.
+	(_initialize_probe): Adjust to vector change.
+	* dtrace-probe.c (_initialize_dtrace_probe): Likewise.
+	* elfread.c (elf_get_probes): Likewise.
+	* stap-probe.c (_initialize_stap_probe): Likewise.
+
+2017-09-12  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* probe.h (struct bound_probe): Define constructors.
+	* probe.c (bound_probe_s): Remove typedef.
+	(DEF_VEC_O (bound_probe_s)): Remove VEC.
+	(collect_probes): Change return type to std::vector, remove
+	cleanup.
+	(compare_probes): Return bool, change parameter type.  Change
+	semantic to "less than".
+	(gen_ui_out_table_header_info): Change parameter to std::vector
+	and update.
+	(exists_probe_with_pops): Likewise.
+	(info_probes_for_ops): Update to std::vector change.
+	(enable_probes_command): Likewise.
+	(disable_probes_command): Likewise.
+
+2017-09-12  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* probe.h (struct probe_ops) <get_probes>: Change parameter from
+	vec to std::vector.
+	* probe.c (parse_probes_in_pspace): Update.
+	(find_probes_in_objfile): Update.
+	(find_probe_by_pc): Update.
+	(collect_probes): Update.
+	(probe_any_get_probes): Update.
+	* symfile.h (struct sym_probe_fns) <sym_get_probes> Change
+	return type to reference to std::vector.
+	* dtrace-probe.c (dtrace_process_dof_probe): Change parameter to
+	std::vector and update.
+	(dtrace_process_dof): Likewise.
+	(dtrace_get_probes): Likewise.
+	* elfread.c (elf_get_probes): Change return type to std::vector,
+	store an std::vector in bfd_data.
+	(probe_key_free): Update to std::vector.
+	* stap-probe.c (handle_stap_probe): Change parameter to
+	std::vector and update.
+	(stap_get_probes): Likewise.
+	* symfile-debug.c (debug_sym_get_probes): Change return type to
+	std::vector and update.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* breakpoint.c (program_breakpoint_here_p): Update.
+	* target.c (make_scoped_restore_show_memory_breakpoints): Rename
+	from make_show_memory_breakpoints_cleanup.  Return a
+	scoped_restore_tmpl<int>.
+	(restore_show_memory_breakpoints): Remove.
+	* ppc-linux-tdep.c (ppc_linux_memory_remove_breakpoint): Update.
+	* mem-break.c (memory_validate_breakpoint): Update.
+	* ia64-tdep.c (ia64_memory_insert_breakpoint): Update.
+	(ia64_memory_remove_breakpoint): Update.
+	(ia64_breakpoint_from_pc): Update.
+	* target.h (make_scoped_restore_show_memory_breakpoints): Rename
+	from make_show_memory_breakpoints_cleanup.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* d-namespace.c (d_lookup_symbol): Use std::string.
+	(find_symbol_in_baseclass): Likewise.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* ctf.c (ctf_start): Use std::string.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* ada-lang.c (is_known_support_routine): Update.
+	(ada_unhandled_exception_name_addr_from_raise): Update.
+	* guile/scm-frame.c (gdbscm_frame_name): Update.
+	* python/py-frame.c (frapy_name): Update.
+	(frapy_function): Update.
+	* stack.h (find_frame_funname): Update.
+	* stack.c (find_frame_funname): Return unique_xmalloc_ptr.
+	(print_frame): Update.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* findcmd.c (put_bits): Take a gdb::byte_vector.
+	(parse_find_args): Return gdb::byte_vector.  "args" now const.
+	Remove "pattern_bufp" and "pattern_lenp" parameters.  Remove
+	cleanups.
+	(find_command): Update.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-script.c (class scoped_restore_hook_in): New.
+	(clear_hook_in_cleanup): Remove.
+	(execute_cmd_pre_hook, execute_cmd_post_hook): Use
+	scoped_restore_hook_in.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-script.c (restore_interp): Remove.
+	(read_command_lines): Use scoped_restore_interp.
+	* interps.c (scoped_restore_interp::set_temp): Rename from
+	interp_set_temp.
+	* interps.h (class scoped_restore_interp): New.
+	(interp_set_temp): Remove.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-cmd-catch.c (mi_cmd_catch_assert)
+	(mi_cmd_catch_exception, mi_catch_load_unload): Update.
+	* mi/mi-cmd-break.c (setup_breakpoint_reporting): Return a
+	scoped_restore.
+	(mi_cmd_break_insert_1): Update.
+	* mi/mi-cmd-break.h (setup_breakpoint_reporting): Return a
+	scoped_restore.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* demangle.c (demangle_command): Update.
+	* breakpoint.c (disable_command): Update.
+	(enable_command): Update.
+	(find_location_by_number): Make "number" const.  Use
+	get_number_trailer.
+	* cli/cli-utils.c (extract_arg): Return std::string.
+	* probe.c (parse_probe_linespec): Update.  Change types.
+	(collect_probes): Take string arguments.
+	(parse_probe_linespec): Likewise.
+	(info_probes_for_ops): Update.
+	(enable_probes_command): Update.
+	(disable_probes_command): Update.
+	* break-catch-sig.c (catch_signal_split_args): Update.
+	* mi/mi-parse.c (mi_parse): Update.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* language.h (language_enum): Make argument const.
+	* language.c (language_enum): Make argument const.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* common/common-utils.h (skip_to_space): Remove macro, redeclare
+	as function.
+	(skip_to_space): Rename from skip_to_space_const.
+	* common/common-utils.c (skip_to_space): New function.
+	(skip_to_space): Rename from skip_to_space_const.
+	* cli/cli-utils.h (get_number): Rename from get_number_const.
+	(extract_arg): Rename from extract_arg_const.
+	* cli/cli-utils.c (get_number): Rename from get_number_const.
+	(extract_arg): Rename from extract_arg_const.
+	(number_or_range_parser::get_number): Use ::get_number.
+	* aarch64-linux-tdep.c, ada-lang.c, arm-linux-tdep.c, ax-gdb.c,
+	break-catch-throw.c, breakpoint.c, cli/cli-cmds.c, cli/cli-dump.c,
+	cli/cli-script.c, cli/cli-setshow.c, compile/compile.c,
+	completer.c, demangle.c, disasm.c, findcmd.c, linespec.c,
+	linux-tdep.c, linux-thread-db.c, location.c, mi/mi-parse.c,
+	minsyms.c, nat/linux-procfs.c, printcmd.c, probe.c,
+	python/py-breakpoint.c, record.c, rust-exp.y, serial.c, stack.c,
+	stap-probe.c, tid-parse.c, tracepoint.c: Update all callers.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* python/python.c (do_start_initialization): Use
+	py-event-types.def to initialize types.
+	Define all object type structures.
+	* python/python-internal.h: Don't declare event initialization
+	functions.
+	* python/py-threadevent.c (thread_event_object_type): Don't
+	define.
+	* python/py-stopevent.c (stop_event_object_type): Don't define.
+	* python/py-signalevent.c (signal_event_object_type): Don't
+	declare or define.
+	* python/py-newobjfileevent.c (new_objfile_event_object_type)
+	(clear_objfiles_event_object_type): Don't declare or define.
+	* python/py-infevents.c (inferior_call_pre_event_object_type)
+	(inferior_call_post_event_object_type)
+	(register_changed_event_object_type)
+	(memory_changed_event_object_type): Don't declare or define.
+	* python/py-inferior.c (new_thread_event_object_type)
+	(new_inferior_event_object_type)
+	(inferior_deleted_event_object_type): Don't declare or define.
+	* python/py-exitedevent.c (exited_event_object_type): Don't
+	declare or define.
+	* python/py-evts.c (gdbpy_initialize_py_events): Use
+	py-all-events.def.
+	* python/py-events.h (thread_event_object_type): Don't declare.
+	(events_object): Use py-all-events.def.
+	* python/py-event.h (GDBPY_NEW_EVENT_TYPE): Remove.  Use
+	py-event-types.def.
+	* python/py-event-types.def: New file.
+	* python/py-continueevent.c (create_continue_event_object): Don't
+	declare or define.
+	* python/py-bpevent.c (breakpoint_event_object_type): Don't
+	declare or define.
+	* python/py-all-events.def: New file.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* python/py-threadevent.c (create_thread_event_object): Return
+	gdbpy_ref.
+	* python/py-stopevent.h (create_stop_event_object)
+	(create_breakpoint_event_object, create_signal_event_object):
+	Update.
+	* python/py-stopevent.c (create_stop_event_object): Return
+	gdbpy_ref.
+	(emit_stop_event): Update.
+	* python/py-signalevent.c (create_signal_event_object): Return
+	gdbpy_ref.
+	* python/py-infevents.c (create_inferior_call_event_object):
+	Update.
+	* python/py-event.h (create_event_object)
+	(create_thread_event_object): Update.
+	* python/py-event.c (create_event_object): Return gdbpy_ref.
+	* python/py-continueevent.c: Return gdbpy_ref.
+	* python/py-bpevent.c (create_breakpoint_event_object): Return
+	gdbpy_ref.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	PR python/15622:
+	* NEWS: Add entry.
+	* python/python.c (do_start_initialization): Initialize new event
+	types.
+	* python/python-internal.h (gdbpy_initialize_new_inferior_event)
+	(gdbpy_initialize_inferior_deleted_event)
+	(gdbpy_initialize_new_thread_event): Declare.
+	* python/py-threadevent.c (create_thread_event_object): Add option
+	"thread" parameter.
+	* python/py-inferior.c (new_thread_event_object_type)
+	(new_inferior_event_object_type)
+	(inferior_deleted_event_object_type): Declare.
+	(python_new_inferior, python_inferior_deleted): New functions.
+	(add_thread_object): Emit new_thread event.
+	(gdbpy_initialize_inferior): Attach new functions to corresponding
+	observers.
+	(new_thread, new_inferior, inferior_deleted): Define new event
+	types.
+	* python/py-evts.c (gdbpy_initialize_py_events): Add new
+	registries.
+	* python/py-events.h (events_object) <new_inferior,
+	inferior_deleted, new_thread>: New fields.
+	* python/py-event.h (create_thread_event_breakpoint): Add optional
+	"thread" parameter.
+
+2017-09-10  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* utils.c (abort_with_message): Don't compare gdb_stderr to NULL,
+	check current_ui instead.
+	(internal_vproblem): Likewise.
+
+2017-09-09  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* thread.c (print_thread_info_1): Remove unnecessary calls to
+	uiout->is_mi_like_p.
+
+2017-09-09  Tom Tromey  <tom@tromey.com>
+
+	* namespace.h (add_using_directive): Update.
+	* namespace.c (add_using_directive): Change type of excludes to
+	std::vector.
+	* dwarf2read.c (read_import_statement): Use std::vector.
+	(read_namespace): Update.
+	* cp-namespace.c (cp_scan_for_anonymous_namespaces): Update.
+
+2017-09-09  Tom Tromey  <tom@tromey.com>
+
+	* linespec.c (create_sals_line_offset): Use gdb::def_vector.
+
+2017-09-09  Tom Tromey  <tom@tromey.com>
+
+	* p-valprint.c (pascal_object_print_value): Use gdb::byte_vector.
+
+2017-09-09  Tom Tromey  <tom@tromey.com>
+
+	* stack.c (func_command): Use gdb::def_vector.
+
+2017-09-09  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-cmd-var.c (mi_cmd_var_list_children): Use gdb::optional,
+	ui_out_emit_list, ui_out_emit_tuple.
+	(mi_cmd_var_update): Likewise.
+
+2017-09-09  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-interp.c (mi_user_selected_context_changed): Use
+	ui_out_redirect_pop.
+	* guile/scm-ports.c (ioscm_with_output_to_port_worker): Use
+	ui_out_redirect_pop.
+	* utils.c (do_ui_out_redirect_pop)
+	(make_cleanup_ui_out_redirect_pop): Remove.
+	* top.c (execute_command_to_string): Use ui_out_redirect_pop.
+	* utils.h (make_cleanup_ui_out_redirect_pop): Remove.
+	* ui-out.h (ui_out_redirect_pop): New class.
+
+2017-09-09  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-main.c (output_cores): Use ui_out_emit_list.
+	(list_available_thread_groups, mi_cmd_list_thread_groups)
+	(mi_cmd_data_list_changed_registers, mi_cmd_data_read_memory)
+	(mi_cmd_data_read_memory_bytes, mi_cmd_trace_frame_collected):
+	Likewise.
+
+2017-09-09  Tom Tromey  <tom@tromey.com>
+
+	* disasm.c (gdb_pretty_print_disassembler::pretty_print_insn): Use
+	ui_out_emit_tuple.
+
+2017-09-09  Tom Tromey  <tom@tromey.com>
+
+	* target.c (flash_erase_command): Use ui_out_emit_tuple.
+	* stack.c (print_frame): Use ui_out_emit_tuple.
+	* spu-tdep.c (info_spu_event_command): Use ui_out_emit_tuple.
+	(info_spu_mailbox_command, info_spu_dma_command)
+	(info_spu_proxydma_command): Likewise.
+	* mi/mi-main.c (mi_cmd_trace_frame_collected): Use
+	ui_out_emit_tuple, gdb::byte_vector, bin2hex.
+	* mi/mi-cmd-file.c (mi_cmd_file_list_shared_libraries): Use
+	ui_out_emit_tuple.
+	* breakpoint.c (print_it_watchpoint): Use ui_out_emit_tuple.
+
+2017-09-09  Tom Tromey  <tom@tromey.com>
+
+	* ui-out.h (make_cleanup_ui_out_table_begin_end): Remove.
+	(class ui_out_emit_table): Update comment.
+	* ui-out.c (do_cleanup_table_end)
+	(make_cleanup_ui_out_table_begin_end): Remove.
+	* spu-tdep.c (info_spu_mailbox_list): Use ui_out_emit_table.
+	(info_spu_dma_cmdlist): Likewise.
+	* probe.c (info_probes_for_ops): Use ui_out_emit_table.
+	* darwin-nat-info.c (darwin_debug_regions_recurse): Use
+	ui_out_emit_table.
+
+2017-09-09  Tom Tromey  <tom@tromey.com>
+
+	* thread.c (print_thread_info_1): Use ui_out_emit_table,
+	ui_out_emit_list, gdb::optional.
+
+2017-09-09  John Baldwin  <jhb@FreeBSD.org>
+
+	* aarch64-linux-nat.c: Remove _initialize_aarch64_linux_nat
+	prototype.
+	* aarch64-linux-tdep.c: Remove _initialize_aarch64_linux_tdep
+	prototype.
+	* aarch64-newlib-tdep.c: Remove _initialize_aarch64_newlib_tdep
+	prototype.
+	* aarch64-tdep.c: Remove _initialize_aarch64_tdep prototype.
+	* ada-exp.y: Remove _initialize_ada_exp prototype.
+	* ada-lang.c: Remove _initialize_ada_language prototype.
+	* ada-tasks.c: Remove _initialize_tasks prototype.
+	* addrmap.c: Remove _initialize_addrmap prototype.
+	* agent.c: Remove _initialize_agent prototype.
+	* aix-thread.c: Remove _initialize_aix_thread prototype.
+	* alpha-bsd-nat.c: Remove _initialize_alphabsd_nat prototype.
+	* alpha-linux-nat.c: Remove _initialize_alpha_linux_nat prototype.
+	* alpha-linux-tdep.c: Remove _initialize_alpha_linux_tdep
+	prototype.
+	* alpha-nbsd-tdep.c: Remove _initialize_alphanbsd_tdep prototype.
+	* alpha-obsd-tdep.c: Remove _initialize_alphaobsd_tdep prototype.
+	* alpha-tdep.c: Remove _initialize_alpha_tdep prototype.
+	* amd64-darwin-tdep.c: Remove _initialize_amd64_darwin_tdep
+	prototype.
+	* amd64-dicos-tdep.c: Remove _initialize_amd64_dicos_tdep
+	prototype.
+	* amd64-fbsd-nat.c: Remove _initialize_amd64fbsd_nat prototype.
+	* amd64-fbsd-tdep.c: Remove _initialize_amd64fbsd_tdep prototype.
+	* amd64-linux-nat.c: Remove _initialize_amd64_linux_nat prototype.
+	* amd64-linux-tdep.c: Remove _initialize_amd64_linux_tdep
+	prototype.
+	* amd64-nbsd-nat.c: Remove _initialize_amd64nbsd_nat prototype.
+	* amd64-nbsd-tdep.c: Remove _initialize_amd64nbsd_tdep prototype.
+	* amd64-obsd-nat.c: Remove _initialize_amd64obsd_nat prototype.
+	* amd64-obsd-tdep.c: Remove _initialize_amd64obsd_tdep prototype.
+	* amd64-sol2-tdep.c: Remove _initialize_amd64_sol2_tdep prototype.
+	* amd64-tdep.c: Remove _initialize_amd64_tdep prototype.
+	* amd64-windows-nat.c: Remove _initialize_amd64_windows_nat
+	prototype.
+	* amd64-windows-tdep.c: Remove _initialize_amd64_windows_tdep
+	prototype.
+	* annotate.c: Remove _initialize_annotate prototype.
+	* arc-newlib-tdep.c: Remove _initialize_arc_newlib_tdep prototype.
+	* arc-tdep.c: Remove _initialize_arc_tdep prototype.
+	* arch-utils.c: Remove _initialize_gdbarch_utils prototype.
+	* arm-linux-nat.c: Remove _initialize_arm_linux_nat prototype.
+	* arm-linux-tdep.c: Remove _initialize_arm_linux_tdep prototype.
+	* arm-nbsd-tdep.c: Remove _initialize_arm_netbsd_tdep prototype.
+	* arm-obsd-tdep.c: Remove _initialize_armobsd_tdep prototype.
+	* arm-symbian-tdep.c: Remove _initialize_arm_symbian_tdep
+	prototype.
+	* arm-tdep.c: Remove _initialize_arm_tdep prototype.
+	* arm-wince-tdep.c: Remove _initialize_arm_wince_tdep prototype.
+	* auto-load.c: Remove _initialize_auto_load prototype.
+	* auxv.c: Remove _initialize_auxv prototype.
+	* avr-tdep.c: Remove _initialize_avr_tdep prototype.
+	* ax-gdb.c: Remove _initialize_ax_gdb prototype.
+	* bfin-linux-tdep.c: Remove _initialize_bfin_linux_tdep prototype.
+	* bfin-tdep.c: Remove _initialize_bfin_tdep prototype.
+	* break-catch-sig.c: Remove _initialize_break_catch_sig prototype.
+	* break-catch-syscall.c: Remove _initialize_break_catch_syscall
+	prototype.
+	* break-catch-throw.c: Remove _initialize_break_catch_throw
+	prototype.
+	* breakpoint.c: Remove _initialize_breakpoint prototype.
+	* bsd-uthread.c: Remove _initialize_bsd_uthread prototype.
+	* btrace.c: Remove _initialize_btrace prototype.
+	* charset.c: Remove _initialize_charset prototype.
+	* cli/cli-cmds.c: Remove _initialize_cli_cmds prototype.
+	* cli/cli-dump.c: Remove _initialize_cli_dump prototype.
+	* cli/cli-interp.c: Remove _initialize_cli_interp prototype.
+	* cli/cli-logging.c: Remove _initialize_cli_logging prototype.
+	* cli/cli-script.c: Remove _initialize_cli_script prototype.
+	* coff-pe-read.c: Remove _initialize_coff_pe_read prototype.
+	* coffread.c: Remove _initialize_coffread prototype.
+	* compile/compile.c: Remove _initialize_compile prototype.
+	* complaints.c: Remove _initialize_complaints prototype.
+	* completer.c: Remove _initialize_completer prototype.
+	* copying.awk: Remove _initialize_copying prototype.
+	* copying.c: Regenerate.
+	* core-regset.c: Remove _initialize_core_regset prototype.
+	* corefile.c: Remove _initialize_core prototype.
+	* corelow.c: Remove _initialize_corelow prototype.
+	* cp-abi.c: Remove _initialize_cp_abi prototype.
+	* cp-namespace.c: Remove _initialize_cp_namespace prototype.
+	* cp-support.c: Remove _initialize_cp_support prototype.
+	* cp-valprint.c: Remove _initialize_cp_valprint prototype.
+	* cris-linux-tdep.c: Remove _initialize_cris_linux_tdep prototype.
+	* cris-tdep.c: Remove _initialize_cris_tdep prototype.
+	* ctf.c: Remove _initialize_ctf prototype.
+	* d-lang.c: Remove _initialize_d_language prototype.
+	* darwin-nat-info.c: Remove _initialize_darwin_info_commands
+	prototype.
+	* darwin-nat.c: Remove _initialize_darwin_inferior prototype.
+	* dbxread.c: Remove _initialize_dbxread prototype.
+	* dcache.c: Remove _initialize_dcache prototype.
+	* demangle.c: Remove _initialize_demangler prototype.
+	* disasm-selftests.c: Remove _initialize_disasm_selftests
+	prototype.
+	* disasm.c: Remove _initialize_disasm prototype.
+	* dtrace-probe.c: Remove _initialize_dtrace_probe prototype.
+	* dummy-frame.c: Remove _initialize_dummy_frame prototype.
+	* dwarf2-frame-tailcall.c: Remove _initialize_tailcall_frame
+	prototype.
+	* dwarf2-frame.c: Remove _initialize_dwarf2_frame prototype.
+	* dwarf2expr.c: Remove _initialize_dwarf2expr prototype.
+	* dwarf2loc.c: Remove _initialize_dwarf2loc prototype.
+	* dwarf2read.c: Remove _initialize_dwarf2_read prototype.
+	* elfread.c: Remove _initialize_elfread prototype.
+	* exec.c: Remove _initialize_exec prototype.
+	* extension.c: Remove _initialize_extension prototype.
+	* f-lang.c: Remove _initialize_f_language prototype.
+	* f-valprint.c: Remove _initialize_f_valprint prototype.
+	* fbsd-nat.c: Remove _initialize_fbsd_nat prototype.
+	* fbsd-tdep.c: Remove _initialize_fbsd_tdep prototype.
+	* filesystem.c: Remove _initialize_filesystem prototype.
+	* findcmd.c: Remove _initialize_mem_search prototype.
+	* fork-child.c: Remove _initialize_fork_child prototype.
+	* frame-base.c: Remove _initialize_frame_base prototype.
+	* frame-unwind.c: Remove _initialize_frame_unwind prototype.
+	* frame.c: Remove _initialize_frame prototype.
+	* frv-linux-tdep.c: Remove _initialize_frv_linux_tdep prototype.
+	* frv-tdep.c: Remove _initialize_frv_tdep prototype.
+	* ft32-tdep.c: Remove _initialize_ft32_tdep prototype.
+	* gcore.c: Remove _initialize_gcore prototype.
+	* gdb_bfd.c: Remove _initialize_gdb_bfd prototype.
+	* gdbarch.c: Regenerate.
+	* gdbarch.sh: Remove _initialize_gdbarch prototype.
+	* gdbtypes.c: Remove _initialize_gdbtypes prototype.
+	* gnu-nat.c: Remove _initialize_gnu_nat prototype.
+	* gnu-v2-abi.c: Remove _initialize_gnu_v2_abi prototype.
+	* gnu-v3-abi.c: Remove _initialize_gnu_v3_abi prototype.
+	* go-lang.c: Remove _initialize_go_language prototype.
+	* go32-nat.c: Remove _initialize_go32_nat prototype.
+	* guile/guile.c: Remove _initialize_guile prototype.
+	* h8300-tdep.c: Remove _initialize_h8300_tdep prototype.
+	* hppa-linux-nat.c: Remove _initialize_hppa_linux_nat prototype.
+	* hppa-linux-tdep.c: Remove _initialize_hppa_linux_tdep prototype.
+	* hppa-nbsd-nat.c: Remove _initialize_hppanbsd_nat prototype.
+	* hppa-nbsd-tdep.c: Remove _initialize_hppanbsd_tdep prototype.
+	* hppa-obsd-nat.c: Remove _initialize_hppaobsd_nat prototype.
+	* hppa-obsd-tdep.c: Remove _initialize_hppaobsd_tdep prototype.
+	* hppa-tdep.c: Remove _initialize_hppa_tdep prototype.
+	* i386-bsd-nat.c: Remove _initialize_i386bsd_nat prototype.
+	* i386-cygwin-tdep.c: Remove _initialize_i386_cygwin_tdep
+	prototype.
+	* i386-darwin-tdep.c: Remove _initialize_i386_darwin_tdep
+	prototype.
+	* i386-dicos-tdep.c: Remove _initialize_i386_dicos_tdep prototype.
+	* i386-fbsd-nat.c: Remove _initialize_i386fbsd_nat prototype.
+	* i386-fbsd-tdep.c: Remove _initialize_i386fbsd_tdep prototype.
+	* i386-gnu-nat.c: Remove _initialize_i386gnu_nat prototype.
+	* i386-gnu-tdep.c: Remove _initialize_i386gnu_tdep prototype.
+	* i386-linux-nat.c: Remove _initialize_i386_linux_nat prototype.
+	* i386-linux-tdep.c: Remove _initialize_i386_linux_tdep prototype.
+	* i386-nbsd-nat.c: Remove _initialize_i386nbsd_nat prototype.
+	* i386-nbsd-tdep.c: Remove _initialize_i386nbsd_tdep prototype.
+	* i386-nto-tdep.c: Remove _initialize_i386nto_tdep prototype.
+	* i386-obsd-nat.c: Remove _initialize_i386obsd_nat prototype.
+	* i386-obsd-tdep.c: Remove _initialize_i386obsd_tdep prototype.
+	* i386-sol2-nat.c: Remove _initialize_amd64_sol2_nat prototype.
+	* i386-sol2-tdep.c: Remove _initialize_amd64_sol2_tdep prototype.
+	* i386-tdep.c: Remove _initialize_i386_tdep prototype.
+	* i386-windows-nat.c: Remove _initialize_i386_windows_nat
+	prototype.
+	* ia64-libunwind-tdep.c: Remove _initialize_libunwind_frame
+	prototype.
+	* ia64-linux-nat.c: Remove _initialize_ia64_linux_nat prototype.
+	* ia64-linux-tdep.c: Remove _initialize_ia64_linux_tdep prototype.
+	* ia64-tdep.c: Remove _initialize_ia64_tdep prototype.
+	* ia64-vms-tdep.c: Remove _initialize_ia64_vms_tdep prototype.
+	* infcall.c: Remove _initialize_infcall prototype.
+	* infcmd.c: Remove _initialize_infcmd prototype.
+	* inferior.c: Remove _initialize_inferiors prototype.
+	* inflow.c: Remove _initialize_inflow prototype.
+	* infrun.c: Remove _initialize_infrun prototype.
+	* interps.c: Remove _initialize_interpreter prototype.
+	* iq2000-tdep.c: Remove _initialize_iq2000_tdep prototype.
+	* jit.c: Remove _initialize_jit prototype.
+	* language.c: Remove _initialize_language prototype.
+	* linux-fork.c: Remove _initialize_linux_fork prototype.
+	* linux-nat.c: Remove _initialize_linux_nat prototype.
+	* linux-tdep.c: Remove _initialize_linux_tdep prototype.
+	* linux-thread-db.c: Remove _initialize_thread_db prototype.
+	* lm32-tdep.c: Remove _initialize_lm32_tdep prototype.
+	* m2-lang.c: Remove _initialize_m2_language prototype.
+	* m32c-tdep.c: Remove _initialize_m32c_tdep prototype.
+	* m32r-linux-nat.c: Remove _initialize_m32r_linux_nat prototype.
+	* m32r-linux-tdep.c: Remove _initialize_m32r_linux_tdep prototype.
+	* m32r-tdep.c: Remove _initialize_m32r_tdep prototype.
+	* m68hc11-tdep.c: Remove _initialize_m68hc11_tdep prototype.
+	* m68k-bsd-nat.c: Remove _initialize_m68kbsd_nat prototype.
+	* m68k-bsd-tdep.c: Remove _initialize_m68kbsd_tdep prototype.
+	* m68k-linux-nat.c: Remove _initialize_m68k_linux_tdep prototype.
+	* m68k-linux-tdep.c: Remove _initialize_m68k_linux_tdep prototype.
+	* m68k-tdep.c: Remove _initialize_m68k_tdep prototype.
+	* m88k-bsd-nat.c: Remove _initialize_m68kbsd_nat prototype.
+	* m88k-tdep.c: Remove _initialize_m68kbsd_tdep prototype.
+	* machoread.c: Remove _initialize_machoread prototype.
+	* macrocmd.c: Remove _initialize_macrocmd prototype.
+	* macroscope.c: Remove _initialize_macroscope prototype.
+	* maint.c: Remove _initialize_maint_cmds prototype.
+	* mdebugread.c: Remove _initialize_mdebugread prototype.
+	* memattr.c: Remove _initialize_mem prototype.
+	* mep-tdep.c: Remove _initialize_mep_tdep prototype.
+	* mi/mi-cmd-env.c: Remove _initialize_mi_cmd_env prototype.
+	* mi/mi-cmds.c: Remove _initialize_mi_cmds prototype.
+	* mi/mi-interp.c: Remove _initialize_mi_interp prototype.
+	* mi/mi-main.c: Remove _initialize_mi_main prototype.
+	* microblaze-linux-tdep.c: Remove
+	_initialize_microblaze_linux_tdep prototype.
+	* microblaze-tdep.c: Remove _initialize_microblaze_tdep prototype.
+	* mips-fbsd-nat.c: Remove _initialize_mips_fbsd_nat prototype.
+	* mips-fbsd-tdep.c: Remove _initialize_mips_fbsd_tdep prototype.
+	* mips-linux-nat.c: Remove _initialize_mips_linux_nat prototype.
+	* mips-linux-tdep.c: Remove _initialize_mips_linux_tdep prototype.
+	* mips-nbsd-nat.c: Remove _initialize_mipsnbsd_nat prototype.
+	* mips-nbsd-tdep.c: Remove _initialize_mipsnbsd_tdep prototype.
+	* mips-sde-tdep.c: Remove _initialize_mips_sde_tdep prototype.
+	* mips-tdep.c: Remove _initialize_mips_tdep prototype.
+	* mips64-obsd-nat.c: Remove _initialize_mips64obsd_nat prototype.
+	* mips64-obsd-tdep.c: Remove _initialize_mips64obsd_tdep
+	prototype.
+	* mipsread.c: Remove _initialize_mipsread prototype.
+	* mn10300-linux-tdep.c: Remove _initialize_mn10300_linux_tdep
+	prototype.
+	* mn10300-tdep.c: Remove _initialize_mn10300_tdep prototype.
+	* moxie-tdep.c: Remove _initialize_moxie_tdep prototype.
+	* msp430-tdep.c: Remove _initialize_msp430_tdep prototype.
+	* mt-tdep.c: Remove _initialize_mt_tdep prototype.
+	* nds32-tdep.c: Remove _initialize_nds32_tdep prototype.
+	* nios2-linux-tdep.c: Remove _initialize_nios2_linux_tdep
+	prototype.
+	* nios2-tdep.c: Remove _initialize_nios2_tdep prototype.
+	* nto-procfs.c: Remove _initialize_procfs prototype.
+	* nto-tdep.c: Remove _initialize_nto_tdep prototype.
+	* objc-lang.c: Remove _initialize_objc_language prototype.
+	* objfiles.c: Remove _initialize_objfiles prototype.
+	* observer.c: Remove observer_test_first_notification_function,
+	observer_test_second_notification_function,
+	observer_test_third_notification_function, and
+	_initialize_observer prototypes.
+	* opencl-lang.c: Remove _initialize_opencl_language prototypes.
+	* osabi.c: Remove _initialize_gdb_osabi prototype.
+	* osdata.c: Remove _initialize_osdata prototype.
+	* p-valprint.c: Remove _initialize_pascal_valprint prototype.
+	* parse.c: Remove _initialize_parse prototype.
+	* ppc-fbsd-nat.c: Remove _initialize_ppcfbsd_nat prototype.
+	* ppc-fbsd-tdep.c: Remove _initialize_ppcfbsd_tdep prototype.
+	* ppc-linux-nat.c: Remove _initialize_ppc_linux_nat prototype.
+	* ppc-linux-tdep.c: Remove _initialize_ppc_linux_tdep prototype.
+	* ppc-nbsd-nat.c: Remove _initialize_ppcnbsd_nat prototype.
+	* ppc-nbsd-tdep.c: Remove _initialize_ppcnbsd_tdep prototype.
+	* ppc-obsd-nat.c: Remove _initialize_ppcobsd_nat prototype.
+	* ppc-obsd-tdep.c: Remove _initialize_ppcobsd_tdep prototype.
+	* printcmd.c: Remove _initialize_printcmd prototype.
+	* probe.c: Remove _initialize_probe prototype.
+	* proc-api.c: Remove _initialize_proc_api prototype.
+	* proc-events.c: Remove _initialize_proc_events prototype.
+	* proc-service.c: Remove _initialize_proc_service prototype.
+	* procfs.c: Remove _initialize_procfs prototype.
+	* psymtab.c: Remove _initialize_psymtab prototype.
+	* python/python.c: Remove _initialize_python prototype.
+	* ravenscar-thread.c: Remove _initialize_ravenscar prototype.
+	* record-btrace.c: Remove _initialize_record_btrace prototype.
+	* record-full.c: Remove _initialize_record_full prototype.
+	* record.c: Remove _initialize_record prototype.
+	* regcache.c: Remove _initialize_regcache prototype.
+	* reggroups.c: Remove _initialize_reggroup prototype.
+	* remote-notif.c: Remove _initialize_notif prototype.
+	* remote-sim.c: Remove _initialize_remote_sim prototype.
+	* remote.c: Remove _initialize_remote prototype.
+	* reverse.c: Remove _initialize_reverse prototype.
+	* rl78-tdep.c: Remove _initialize_rl78_tdep prototype.
+	* rs6000-aix-tdep.c: Remove _initialize_rs6000_aix_tdep prototype.
+	* rs6000-lynx178-tdep.c: Remove _initialize_rs6000_lynx178_tdep
+	prototype.
+	* rs6000-nat.c: Remove _initialize_rs6000_nat prototype.
+	* rs6000-tdep.c: Remove _initialize_rs6000_tdep prototype.
+	* rust-exp.y: Remove _initialize_rust_exp prototype.
+	* rx-tdep.c: Remove _initialize_rx_tdep prototype.
+	* s390-linux-nat.c: Remove _initialize_s390_nat prototype.
+	* s390-linux-tdep.c: Remove _initialize_s390_tdep prototype.
+	* score-tdep.c: Remove _initialize_score_tdep prototype.
+	* selftest-arch.c: Remove _initialize_selftests_foreach_arch
+	prototype.
+	* ser-go32.c: Remove _initialize_ser_dos prototype.
+	* ser-mingw.c: Remove _initialize_ser_windows prototype.
+	* ser-pipe.c: Remove _initialize_ser_pipe prototype.
+	* ser-tcp.c: Remove _initialize_ser_tcp prototype.
+	* ser-unix.c: Remove _initialize_ser_hardwire prototype.
+	* serial.c: Remove _initialize_serial prototype.
+	* sh-linux-tdep.c: Remove _initialize_sh_linux_tdep prototype.
+	* sh-nbsd-nat.c: Remove _initialize_shnbsd_nat prototype.
+	* sh-nbsd-tdep.c: Remove _initialize_shnbsd_tdep prototype.
+	* sh-tdep.c: Remove _initialize_sh_tdep prototype.
+	* skip.c: Remove _initialize_step_skip prototype.
+	* sol-thread.c: Remove _initialize_sol_thread prototype.
+	* solib-aix.c: Remove _initialize_solib_aix prototype.
+	* solib-darwin.c: Remove _initialize_darwin_solib prototype.
+	* solib-dsbt.c: Remove _initialize_dsbt_solib prototype.
+	* solib-frv.c: Remove _initialize_frv_solib prototype.
+	* solib-spu.c: Remove _initialize_spu_solib prototype.
+	* solib-svr4.c: Remove _initialize_svr4_solib prototype.
+	* solib-target.c: Remove _initialize_solib_target prototype.
+	* solib.c: Remove _initialize_solib prototype.
+	* source.c: Remove _initialize_source prototype.
+	* sparc-linux-nat.c: Remove _initialize_sparc_linux_nat prototype.
+	* sparc-linux-tdep.c: Remove _initialize_sparc_linux_tdep
+	prototype.
+	* sparc-nat.c: Remove _initialize_sparc_nat prototype.
+	* sparc-nbsd-nat.c: Remove _initialize_sparcnbsd_nat prototype.
+	* sparc-nbsd-tdep.c: Remove _initialize_sparcnbsd_tdep prototype.
+	* sparc-obsd-tdep.c: Remove _initialize_sparc32obsd_tdep
+	prototype.
+	* sparc-sol2-nat.c: Remove _initialize_sparc_sol2_nat prototype.
+	* sparc-sol2-tdep.c: Remove _initialize_sparc_sol2_tdep prototype.
+	* sparc-tdep.c: Remove _initialize_sparc_tdep prototype.
+	* sparc64-fbsd-nat.c: Remove _initialize_sparc64fbsd_nat
+	prototype.
+	* sparc64-fbsd-tdep.c: Remove _initialize_sparc64fbsd_tdep
+	prototype.
+	* sparc64-linux-nat.c: Remove _initialize_sparc64_linux_nat
+	prototype.
+	* sparc64-linux-tdep.c: Remove _initialize_sparc64_linux_tdep
+	prototype.
+	* sparc64-nat.c: Remove _initialize_sparc64_nat prototype.
+	* sparc64-nbsd-nat.c: Remove _initialize_sparc64nbsd_nat
+	prototype.
+	* sparc64-nbsd-tdep.c: Remove _initialize_sparc64nbsd_tdep
+	prototype.
+	* sparc64-obsd-nat.c: Remove _initialize_sparc64obsd_nat
+	prototype.
+	* sparc64-obsd-tdep.c: Remove _initialize_sparc64obsd_tdep
+	prototype.
+	* sparc64-sol2-tdep.c: Remove _initialize_sparc64_sol2_tdep
+	prototype.
+	* spu-linux-nat.c: Remove _initialize_spu_nat prototype.
+	* spu-multiarch.c: Remove _initialize_spu_multiarch prototype.
+	* spu-tdep.c: Remove _initialize_spu_tdep prototype.
+	* stabsread.c: Remove _initialize_stabsread prototype.
+	* stack.c: Remove _initialize_stack prototype.
+	* stap-probe.c: Remove _initialize_stap_probe prototype.
+	* std-regs.c: Remove _initialize_frame_reg prototype.
+	* symfile-debug.c: Remove _initialize_symfile_debug prototype.
+	* symfile-mem.c: Remove _initialize_symfile_mem prototype.
+	* symfile.c: Remove _initialize_symfile prototype.
+	* symmisc.c: Remove _initialize_symmisc prototype.
+	* symtab.c: Remove _initialize_symtab prototype.
+	* target-dcache.c: Remove _initialize_target_dcache prototype.
+	* target-descriptions.c: Remove _initialize_target_descriptions
+	prototype.
+	* thread.c: Remove _initialize_thread prototype.
+	* tic6x-linux-tdep.c: Remove _initialize_tic6x_linux_tdep
+	prototype.
+	* tic6x-tdep.c: Remove _initialize_tic6x_tdep prototype.
+	* tilegx-linux-nat.c: Remove _initialize_tile_linux_nat prototype.
+	* tilegx-linux-tdep.c: Remove _initialize_tilegx_linux_tdep
+	prototype.
+	* tilegx-tdep.c: Remove _initialize_tilegx_tdep prototype.
+	* tracefile-tfile.c: Remove _initialize_tracefile_tfile prototype.
+	* tracefile.c: Remove _initialize_tracefile prototype.
+	* tracepoint.c: Remove _initialize_tracepoint prototype.
+	* tui/tui-hooks.c: Remove _initialize_tui_hooks prototype.
+	* tui/tui-interp.c: Remove _initialize_tui_interp prototype.
+	* tui/tui-layout.c: Remove _initialize_tui_layout prototype.
+	* tui/tui-regs.c: Remove _initialize_tui_regs prototype.
+	* tui/tui-stack.c: Remove _initialize_tui_stack prototype.
+	* tui/tui-win.c: Remove _initialize_tui_win prototype.
+	* tui/tui.c: Remove _initialize_tui prototype.
+	* typeprint.c: Remove _initialize_typeprint prototype.
+	* user-regs.c: Remove _initialize_user_regs prototype.
+	* utils.c: Remove _initialize_utils prototype.
+	* v850-tdep.c: Remove _initialize_v850_tdep prototype.
+	* valarith.c: Remove _initialize_valarith prototype.
+	* valops.c: Remove _initialize_valops prototype.
+	* valprint.c: Remove _initialize_valprint prototype.
+	* value.c: Remove _initialize_values prototype.
+	* varobj.c: Remove _initialize_varobj prototype.
+	* vax-bsd-nat.c: Remove _initialize_vaxbsd_nat prototype.
+	* vax-nbsd-tdep.c: Remove _initialize_vaxnbsd_tdep prototype.
+	* vax-tdep.c: Remove _initialize_vax_tdep prototype.
+	* windows-nat.c: Remove _initialize_windows_nat,
+	_initialize_check_for_gdb_ini, and _initialize_loadable
+	prototypes.
+	* windows-tdep.c: Remove _initialize_windows_tdep prototype.
+	* xcoffread.c: Remove _initialize_xcoffread prototype.
+	* xml-support.c: Remove _initialize_xml_support prototype.
+	* xstormy16-tdep.c: Remove _initialize_xstormy16_tdep prototype.
+	* xtensa-linux-nat.c: Remove _initialize_xtensa_linux_nat
+	prototype.
+	* xtensa-linux-tdep.c: Remove _initialize_xtensa_linux_tdep
+	prototype.
+	* xtensa-tdep.c: Remove _initialize_xtensa_tdep prototype.
+
+2017-09-08  Keith Seitz  <keiths@redhat.com>
+
+	* dwarf2read.c (struct field_info) <fnfields>: Remove unused
+	field.
+
+2017-09-08  Christoph Weinmann  <christoph.t.weinmann@intel.com>
+
+	* f-valprint.c (f_val_print): Remove check for one byte
+	sized integers. Remove printing of character type.
+
+2017-09-08  Frank Penczek  <frank.penczek@intel.com>
+            Christoph Weinmann  <christoph.t.weinmann@intel.com>
+            Bernhard Heckel  <bernhard.heckel@intel.com>
+
+	* f-typeprint.c (f_type_print_base): Use fprintfi_filtered
+	to maintain proper indentation when printing pointers/refs.
+
+2017-09-07  Joel Brobecker  <brobecker@adacore.com>
+
+	GDB 8.0.1 released.
+
+2017-09-07  Joel Brobecker  <brobecker@adacore.com>
+
+	* NEWS (Changes in GDB 7.11): Remove entry for QStartupWithShell.
+
+2017-09-05  Tom Tromey  <tom@tromey.com>
+
+	* parse.c (funcall_chain): Now a std::vector.
+	(start_arglist, end_arglist): Simplify.
+	(free_funcalls): Remove.
+	(parse_exp_in_context_1): Remove cleanup.
+
+2017-09-05  Tom Tromey  <tom@tromey.com>
+
+	* go-exp.y (go_parse): Don't create a cleanup.
+
+2017-09-05  Tom Tromey  <tom@tromey.com>
+
+	* d-exp.y (PrimaryExpression): Use std::string.
+	(d_parse): Don't create a cleanup.
+
+2017-09-05  Tom Tromey  <tom@tromey.com>
+
+	* utils.c (do_clear_parser_state): Remove.
+	(make_cleanup_clear_parser_state): Remove.
+	* p-exp.y (pascal_parse): Use scoped_restore.
+	* m2-exp.y (m2_parse): Use scoped_restore.
+	* f-exp.y (f_parse): Use scoped_restore.
+	* d-exp.y (d_parse): Use scoped_restore.
+	* c-exp.y (c_parse): Use scoped_restore.
+	* ada-exp.y (ada_parse): Use scoped_restore.
+	* utils.h (make_cleanup_clear_parser_state): Remove.
+
+2017-09-06  Keith Seitz  <keiths@redhat.com>
+
+	* dwarf2read.c (dw2_linkage_name_attr): New function.
+	(dw2_linkage_name): New function.
+	(dwarf2_compute_name, dwarf2_physname, read_call_site_scope)
+	(guess_full_die_structure_name, dwarf2_name): Use dw2_linkage_name.
+	(anonymous_struct_prefix, dwarf2_name): Use dw2_linkage_name_attr.
+
+2017-09-06  Kamil Rytarowski  <n54@gmx.com>
+
+	* config/djgpp/djconfig.sh: Correct shell portability issue.
+
+2017-09-06  Kamil Rytarowski  <n54@gmx.com>
+
+	* configure.nat: Define HAVE_NATIVE_GCORE_HOST on NetBSD.
+
+2017-09-06  John Baldwin  <jhb@FreeBSD.org>
+
+	* Makefile.in (ALLDEPFILES): Add mips-fbsd-nat.c.
+	* NEWS: Mention new FreeBSD/mips native configuration.
+	* configure.host: Add aarch64*-*-freebsd*.
+	* configure.nat: Likewise.
+	* aarch64-fbsd-nat.c: New file.
+
+2017-09-06  John Baldwin  <jhb@FreeBSD.org>
+
+	* Makefile.in (ALL_64_TARGET_OBS): Add aarch64-fbsd-tdep.o.
+	(ALLDEPFILES): Add aarch64-fbsd-tdep.c.
+	* NEWS: Mention new FreeBSD/aarch64 target.
+	* configure.tgt: Add aarch64*-*-freebsd*.
+	* aarch64-fbsd-tdep.c: New file.
+	* aarch64-fbsd-tdep.h: New file.
+
+2017-09-06  Kamil Rytarowski  <n54@gmx.com>
+
+	* MAINTAINERS (Write After Approval): Add Kamil Rytarowski.
+
+2017-09-06  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* parse.c (find_minsym_type_and_address): Don't relocate addresses
+	of TLS symbols.
+
+2017-09-05  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
+
+	* objfiles.c (get_objfile_bfd_data): Remove useless obstack_init
+	call.
+
+2017-09-05  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* infrun.c (follow_exec): Call add_thread after
+	target_find_description.
+
+2017-09-05  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* infrun.c (handle_inferior_event_1): When exec'ing, read
+	stop_pc after follow_exec.
+
+2017-09-05  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* remote.c (process_g_packet): Update error message.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.tgt (gdb_target_obs): Add i386.o for x86_64-*
+	targets.
+
+2017-09-05  Pedro Alves  <palves@redhat.com>
+
+	* eval.c (eval_call, evaluate_funcall): New functions, factored
+	out from ...
+	(evaluate_subexp_standard): ... this.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* amd64-tdep.c (amd64_target_description): Create target
+	descriptions.
+	(_initialize_amd64_tdep): Don't call functions
+	initialize_tdesc_amd64_*.  Add self tests.
+	* arch/amd64.c (amd64_create_target_description): Add parameter
+	is_linux.  Call set_tdesc_osabi if is_linux is true.
+	* arch/amd64.h (amd64_create_target_description): Update the
+	declaration.
+	* arch/i386.c (i386_create_target_description): Add parameter
+	is_linux.  Call set_tdesc_osabi if is_linux is true.
+	* arch/i386.h (i386_create_target_description): Update
+	declaration.
+	* configure.tgt: Add i386.o to gdb_target_obs.
+	* features/Makefile (XMLTOC): Remove i386/*.xml.
+	* features/i386/amd64-avx-avx512.c: Remove.
+	* features/i386/amd64-avx-mpx-avx512-pku.c: Remove.
+	* features/i386/amd64-avx-mpx.c: Remove.
+	* features/i386/amd64-avx.c: Remove.
+	* features/i386/amd64-mpx.c: Remove.
+	* features/i386/amd64.c: Remove.
+	* features/i386/i386-avx-avx512.c: Remove.
+	* features/i386/i386-avx-mpx-avx512-pku.c: Remove.
+	* features/i386/i386-avx-mpx.c: Remove.
+	* features/i386/i386-avx.c: Remove.
+	* features/i386/i386-mmx.c: Remove.
+	* features/i386/i386-mpx.c: Remove.
+	* features/i386/i386.c: Remove.
+	* i386-tdep.c: Don't include features/i386/i386*.c., include
+	target-descriptions.h and arch/i386.h.
+	(i386_target_description): Create target descriptions.
+	(i386_gdbarch_init): Don't call initialize_tdesc_i386_*
+	functions.  Do self tests.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* features/Makefile (XMLTOC): Remove i386/amd64XXX-linux.xml.
+	* features/i386/amd64-avx-avx512-linux.c: Removed.
+	* features/i386/amd64-avx-linux.c: Removed.
+	* features/i386/amd64-avx-mpx-avx512-pku-linux.c: Removed.
+	* features/i386/amd64-avx-mpx-linux.c: Removed.
+	* features/i386/amd64-linux.c: Removed.
+	* features/i386/amd64-mpx-linux.c: Removed.
+	* features/i386/x32-avx-avx512-linux.c: Removed.
+	* features/i386/x32-avx-linux.c: Removed.
+	* features/i386/x32-linux.c: Removed.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* amd64-linux-tdep.c: Include arch/amd64.h.  Don't include
+	features/i386/*.c.
+	(amd64_linux_read_description): Call
+	amd64_create_target_description.
+	* arch/amd64.c: New file.
+	* arch/amd64.h: New file.
+	* configure.tgt (x86_64-*-linux*): Append amd64.o.
+	* Makefile.in (ALL_64_TARGET_OBS): Append amd64.o.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* amd64-linux-tdep.c: Don't include amd64-XXX-linux and
+	x32-XXX-linux.c.  Include 64bit-XX.c and x32-XX.c.
+	(amd64_linux_read_description): Create target descriptions.
+	(_initialize_amd64_linux_tdep): Don't call initialize_tdesc_XXX
+	functions.  Add unit tests.
+	* features/Makefile (FEATURE_XMLFILES): Append 64bit-XXX.xml and
+	x32-core.xml.
+	* features/i386/64bit-avx.c: Generated.
+	* features/i386/64bit-avx512.c: Generated.
+	* features/i386/64bit-core.c: Generated.
+	* features/i386/64bit-linux.c: Generated.
+	* features/i386/64bit-mpx.c: Generated.
+	* features/i386/64bit-pkeys.c: Generated.
+	* features/i386/64bit-segments.c: Generated.
+	* features/i386/64bit-sse.c: Generated.
+	* features/i386/x32-core.c: Generated.
+	* target-descriptions.c (maint_print_c_tdesc_cmd): Print feature
+	c files for amd64-linux and x32-linux.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* amd64-linux-tdep.c (amd64_linux_read_description): New
+	function.
+	(amd64_linux_core_read_description): Call
+	amd64_linux_read_description.
+	(amd64_linux_init_abi): Likewise.
+	(amd64_x32_linux_init_abi): Likewise.
+	* amd64-linux-tdep.h (amd64_linux_read_description): Declare.
+	* x86-linux-nat.c (x86_linux_read_description): Call
+	amd64_linux_read_description.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* amd64-linux-tdep.c (amd64_linux_core_read_description): Update
+	comments.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* features/Makefile (XMLTOC): Remove i386/i386-XX-linux.xml.
+	* features/i386/i386-avx-avx512-linux.c: Remove.
+	* features/i386/i386-avx-linux.c: Remove.
+	* features/i386/i386-avx-mpx-avx512-pku-linux.c: Remove.
+	* features/i386/i386-avx-mpx-linux.c: Remove.
+	* features/i386/i386-linux.c: Remove.
+	* features/i386/i386-mmx-linux.c: Remove.
+	* features/i386/i386-mpx-linux.c: Remove.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (ALL_TARGET_OBS): Add i386.o.
+	(SFILES): Add arch/i386.c.
+	(HFILES_NO_SRCDIR): Add arch/i386.h.
+	* arch/i386.c: New file.
+	* arch/i386.h: New file.
+	* arch/tdesc.h (allocate_target_description): Declare.
+	(set_tdesc_architecture): Declare.
+	(set_tdesc_osabi): Declare.
+	* configure.tgt (i[34567]86-*-linux*): Add i386.o.
+	* i386-linux-tdep.c: Don't include ../features/i386/32bit-XXX.c.
+	include arch/i386.h.
+	(i386_linux_read_description): Remove code and call
+	i386_create_target_description.
+	(set_tdesc_architecture): New function.
+	(set_tdesc_osabi): New function.
+	* target-descriptions.h (allocate_target_description): Remove.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* arch/tdesc.h (tdesc_create_feature): Add an argument xml.
+	* target-descriptions.c (tdesc_create_feature): Likewise, and
+	adjust code.
+	* features/i386/32bit-avx.c: Re-generated.
+	* features/i386/32bit-avx512.c: Re-generated.
+	* features/i386/32bit-core.c: Re-generated.
+	* features/i386/32bit-linux.c: Re-generated.
+	* features/i386/32bit-mpx.c: Re-generated.
+	* features/i386/32bit-pkeys.c: Re-generated.
+	* features/i386/32bit-sse.c: Re-generated.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* regformats/regdef.h (struct reg): Override operator == and !=.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* arch/tdesc.h: New file.
+	* regformats/regdat.sh: Generate code using tdesc_create_reg.
+	* target-descriptions.c: Update comments.
+	* target-descriptions.h: Include "arch/tdesc.h".  Remove the
+	declarations.
+	* features/i386/32bit-avx.c: Re-generated.
+	* features/i386/32bit-avx512.c: Re-generated.
+	* features/i386/32bit-core.c: Re-generated.
+	* features/i386/32bit-linux.c: Re-generated.
+	* features/i386/32bit-mpx.c: Re-generated.
+	* features/i386/32bit-pkeys.c: Re-generated.
+	* features/i386/32bit-sse.c: Re-generated.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* regformats/regdat.sh: Update generated code.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* regformats/regdat.sh: Adjust code order.
+
+2017-09-05  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* expprint.c (dump_subexp_body_standard): Use constant format
+	string in fprintf_filtered call.
+
+2017-09-04  John Baldwin  <jhb@FreeBSD.org>
+
+	* configure.nat: Add "x86-nat.o x86-dregs.o" for NetBSD/amd64 and
+	NetBSD/i386.
+	* x86-bsd-nat.c [!DBREG_DRX && __NetBSD__]: Define DBREG_DRX.
+
+2017-09-04  John Baldwin  <jhb@FreeBSD.org>
+
+	* bsd-kvm.o: Make <sys/user.h> conditional on HAVE_SYS_USER_H.
+
+2017-09-04  John Baldwin  <jhb@FreeBSD.org>
+
+	* bsd-kvm.o: Define _KMEMUSER.
+	* configure.ac: Define _KMEMUSER when checking for "struct lwp".
+	* configure: Regenerate.
+
+2017-09-04  John Baldwin  <jhb@FreeBSD.org>
+
+	* amd64-fbsd-nat.c: Add include of "x86-xstate.h".
+	* i386-fbsd-nat.c: Likewise.
+
+2017-09-04  John Baldwin  <jhb@FreeBSD.org>
+
+	* unittests/array-view-selftests.c: Add include of <array>.
+
+2017-09-04  John Baldwin  <jhb@FreeBSD.org>
+
+	* spu-tdep.c (flush_ea_cache): Add missing argument to
+	call_function_by_hand.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* NEWS (Safer support for debugging with no debug info): New.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* c-exp.y (function_method, function_method_void): Add current
+	instance flags to TYPE_INSTANCE.
+	* dwarf2read.c (check_modifier): New.
+	(compute_delayed_physnames): Assert that only C++ adds delayed
+	physnames.  Mark fn_fields as const/volatile depending on
+	physname.
+	* eval.c (make_params): New type_instance_flags parameter.  Use
+	it as the new type's instance flags.
+	(evaluate_subexp_standard) <TYPE_INSTANCE>: Extract the instance
+	flags element and pass it to make_params.
+	* expprint.c (print_subexp_standard) <TYPE_INSTANCE>: Handle
+	instance flags element.
+	(dump_subexp_body_standard) <TYPE_INSTANCE>: Likewise.
+	* gdbtypes.h: Include "enum-flags.h".
+	(type_instance_flags): New enum-flags type.
+	(TYPE_CONST, TYPE_VOLATILE, TYPE_RESTRICT, TYPE_ATOMIC)
+	(TYPE_CODE_SPACE, TYPE_DATA_SPACE): Return boolean.
+	* parse.c (operator_length_standard) <TYPE_INSTANCE>: Adjust.
+	(follow_type_instance_flags): New function.
+	(operator_check_standard) <TYPE_INSTANCE>: Adjust.
+	* parser-defs.h (follow_type_instance_flags): Declare.
+	* valops.c (value_struct_elt_for_reference): const/volatile must
+	match too.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* cp-namespace.c (cp_search_static_and_baseclasses): Handle
+	function/method scopes; lookup the nested name as a function local
+	static variable.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	(%type <voidval>): Add function_method.
+	* c-exp.y (exp): New production for calls with no arguments.
+	(function_method, function_method_void_or_typelist): New
+	productions.
+	(exp): New production for "method()::static_var".
+	* eval.c (evaluate_subexp_standard): Handle OP_FUNC_STATIC_VAR.
+	* expprint.c (print_subexp_standard, dump_subexp_body_standard):
+	Handle OP_FUNC_STATIC_VAR.
+	* parse.c (operator_length_standard):
+	Handle OP_FUNC_STATIC_VAR.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* eval.c (evaluate_subexp_standard): Remove UNOP_MEMVAL_TLS
+	handling.
+	* expprint.c (print_subexp_standard, dump_subexp_body_standard):
+	Ditto.
+	* parse.c (operator_length_standard, operator_check_standard):
+	Ditto.
+	* std-operator.def (UNOP_MEMVAL_TLS): Delete.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* ax-gdb.c: Include "typeprint.h".
+	(gen_expr_for_cast): New function.
+	(gen_expr) <OP_CAST, OP_CAST_TYPE>: Use it.
+	<OP_VAR_VALUE, OP_MSYM_VAR_VALUE>: Error out if the variable's
+	type is unknown.
+	* dwarf2read.c (new_symbol_full): Fallback to int instead of
+	nodebug_data_symbol.
+	* eval.c: Include "typeprint.h".
+	(evaluate_subexp_standard) <OP_VAR_VALUE, OP_VAR_MSYM_VALUE>:
+	Error out if symbol has unknown type.
+	<UNOP_CAST, UNOP_CAST_TYPE>: Common bits factored out to
+	evaluate_subexp_for_cast.
+	(evaluate_subexp_for_address, evaluate_subexp_for_sizeof): Handle
+	OP_VAR_MSYM_VALUE.
+	(evaluate_subexp_for_cast): New function.
+	* gdbtypes.c (init_nodebug_var_type): New function.
+	(objfile_type): Use it to initialize types of variables with no
+	debug info.
+	* typeprint.c (error_unknown_type): New.
+	* typeprint.h (error_unknown_type): New declaration.
+	* compile/compile-c-types.c (convert_type_basic): Handle
+	TYPE_CODE_ERROR; warn and fallback to int for variables with
+	unknown type.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* eval.c (evaluate_var_value): New function, factored out from ...
+	(evaluate_subexp_standard): ... here.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* eval.c (evaluate_subexp_standard) <UNOP_COMPLEMENT, UNOP_ADDR>:
+	Remove useless assignments to 'op'.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* eval.c (eval_skip_value): New function.
+	(evaluate_subexp_standard): Use it.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* eval.c (evaluate_subexp_standard): <OP_FUNCALL>: Extract
+	function name from symbol/minsym and pass it to
+	error_call_unknown_return_type.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (resolve_subexp): Handle OP_VAR_MSYM_VALUE.
+	* ax-gdb.c (gen_msym_var_ref): New function.
+	(gen_expr): Handle OP_VAR_MSYM_VALUE.
+	* eval.c (evaluate_var_msym_value): New function.
+	* eval.c (evaluate_subexp_standard): Handle OP_VAR_MSYM_VALUE.
+	<OP_FUNCALL>: Extract function name from symbol/minsym and pass it
+	to call_function_by_hand.
+	* expprint.c (print_subexp_standard, dump_subexp_body_standard):
+	Handle OP_VAR_MSYM_VALUE.
+	(union exp_element) <msymbol>: New field.
+	* minsyms.h (struct type): Forward declare.
+	(find_minsym_type_and_address): Declare.
+	* parse.c (write_exp_elt_msym): New function.
+	(write_exp_msymbol): Delete, refactored as ...
+	(find_minsym_type_and_address): ... this new function.
+	(write_exp_msymbol): Reimplement using OP_VAR_MSYM_VALUE.
+	(operator_length_standard, operator_check_standard): Handle
+	OP_VAR_MSYM_VALUE.
+	* std-operator.def (OP_VAR_MSYM_VALUE): New.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (ada_evaluate_subexp) <TYPE_CODE_FUNC>: Don't handle
+	TYPE_GNU_IFUNC specially here.  Throw error if return type is
+	unknown.
+	* ada-typeprint.c (print_func_type): Handle functions with unknown
+	return type.
+	* c-typeprint.c (c_type_print_base): Handle functions and methods
+	with unknown return type.
+	* compile/compile-c-symbols.c (convert_symbol_bmsym)
+	<mst_text_gnu_ifunc>: Use nodebug_text_gnu_ifunc_symbol.
+	* compile/compile-c-types.c: Include "objfiles.h".
+	(convert_func): For functions with unknown return type, warn and
+	default to int.
+	* compile/compile-object-run.c (compile_object_run): Adjust call
+	to call_function_by_hand_dummy.
+	* elfread.c (elf_gnu_ifunc_resolve_addr): Adjust call to
+	call_function_by_hand.
+	* eval.c (evaluate_subexp_standard): Adjust calls to
+	call_function_by_hand.  Handle functions and methods with unknown
+	return type.  Pass expect_type to call_function_by_hand.
+	* f-typeprint.c (f_type_print_base): Handle functions with unknown
+	return type.
+	* gcore.c (call_target_sbrk): Adjust call to
+	call_function_by_hand.
+	* gdbtypes.c (objfile_type): Leave nodebug text symbol with NULL
+	return type instead of int.  Make nodebug_text_gnu_ifunc_symbol be
+	an integer address type instead of nodebug.
+	* guile/scm-value.c (gdbscm_value_call): Adjust call to
+	call_function_by_hand.
+	* infcall.c (error_call_unknown_return_type): New function.
+	(call_function_by_hand): New "default_return_type" parameter.
+	Pass it down.
+	(call_function_by_hand_dummy): New "default_return_type"
+	parameter.  Use it instead of defaulting to int.  If there's no
+	default and the return type is unknown, throw an error.  If
+	there's a default return type, and the called function has no
+	debug info, then assume the function is prototyped.
+	* infcall.h (call_function_by_hand, call_function_by_hand_dummy):
+	New "default_return_type" parameter.
+	(error_call_unknown_return_type): New declaration.
+	* linux-fork.c (call_lseek): Cast return type of lseek.
+	(inferior_call_waitpid, checkpoint_command): Adjust calls to
+	call_function_by_hand.
+	* linux-tdep.c (linux_infcall_mmap, linux_infcall_munmap): Adjust
+	calls to call_function_by_hand.
+	* m2-typeprint.c (m2_procedure): Handle functions with unknown
+	return type.
+	* objc-lang.c (lookup_objc_class, lookup_child_selector)
+	(value_nsstring, print_object_command): Adjust calls to
+	call_function_by_hand.
+	* p-typeprint.c (pascal_type_print_varspec_prefix): Handle
+	functions with unknown return type.
+	(pascal_type_print_func_varspec_suffix): New function.
+	(pascal_type_print_varspec_suffix) <TYPE_CODE_FUNC,
+	TYPE_CODE_METHOD>: Use it.
+	* python/py-value.c (valpy_call): Adjust call to
+	call_function_by_hand.
+	* rust-lang.c (rust_evaluate_funcall): Adjust call to
+	call_function_by_hand.
+	* valarith.c (value_x_binop, value_x_unop): Adjust calls to
+	call_function_by_hand.
+	* valops.c (value_allocate_space_in_inferior): Adjust call to
+	call_function_by_hand.
+	* typeprint.c (type_print_unknown_return_type): New function.
+	* typeprint.h (type_print_unknown_return_type): New declaration.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* gdbtypes.c (lookup_function_type_with_arguments): Mark function
+	types with more than one parameter as prototyped.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* cli/cli-cmds.c (print_disassembly, disassemble_current_function)
+	(disassemble_command): Use gdb_disassembly_flags instead of bare
+	int.
+	* disasm.c (gdb_pretty_print_disassembler::pretty_print_insn)
+	(dump_insns, do_mixed_source_and_assembly_deprecated)
+	(do_mixed_source_and_assembly, do_assembly_only, gdb_disassembly):
+	Use gdb_disassembly_flags instead of bare int.
+	* disasm.h (DISASSEMBLY_SOURCE_DEPRECATED, DISASSEMBLY_RAW_INSN)
+	(DISASSEMBLY_OMIT_FNAME, DISASSEMBLY_FILENAME)
+	(DISASSEMBLY_OMIT_PC, DISASSEMBLY_SOURCE)
+	(DISASSEMBLY_SPECULATIVE): No longer macros.  Instead they're...
+	(enum gdb_disassembly_flag): ... values of this new enumeration.
+	(gdb_disassembly_flags): Define.
+	(gdb_disassembly)
+	(gdb_pretty_print_disassembler::pretty_print_insn): Use it.
+	* mi/mi-cmd-disas.c (mi_cmd_disassemble): Use
+	gdb_disassembly_flags instead of bare int.
+	* record-btrace.c (btrace_insn_history)
+	(record_btrace_insn_history, record_btrace_insn_history_range)
+	(record_btrace_insn_history_from): Use gdb_disassembly_flags
+	instead of bare int.
+	* record.c (get_insn_history_modifiers, cmd_record_insn_history):
+	Use gdb_disassembly_flags instead of bare int.
+	* target-debug.h (target_debug_print_gdb_disassembly_flags):
+	Define.
+	* target-delegates.c: Regenerate.
+	* target.c (target_insn_history, target_insn_history_from)
+	(target_insn_history_range): Use gdb_disassembly_flags instead of
+	bare int.
+	* target.h: Include "disasm.h".
+	(struct target_ops) <to_insn_history, to_insn_history_from,
+	to_insn_history_range>: Use gdb_disassembly_flags instead of bare
+	int.
+	(target_insn_history, target_insn_history_from)
+	(target_insn_history_range): Use gdb_disassembly_flags instead of
+	bare int.
+
+2017-09-04  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* cli/cli-script.c (build_command_line): For if/while commands,
+	check whether args is empty.
+
+2017-09-04  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* cli/cli-script.h (enum misc_command_type): Move from defs.h.
+	(enum command_control_type): Likewise.
+	(struct command_line): Likewise.
+	(free_command_lines): Likewise.
+	(struct command_lines_deleter): Likewise.
+	(command_line_up): Likewise.
+	(read_command_lines): Likewise.
+	(read_command_lines_1): Likewise.
+	* defs.h (enum misc_command_type): Move to cli/cli-script.h.
+	(enum command_control_type): Likewise.
+	(struct command_line): Likewise.
+	(free_command_lines): Likewise.
+	(struct command_lines_deleter): Likewise.
+	(command_line_up): Likewise.
+	(read_command_lines): Likewise.
+	(read_command_lines_1): Likewise.
+	* breakpoint.h: Include cli/cli-script.h.
+	* extension-priv.h: Likewise.
+	* gdbcmd.h: Likewise.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (is_known_support_routine): Move sal declaration to
+	where it is initialized.
+	* breakpoint.c (create_internal_breakpoint, init_catchpoint)
+	(parse_breakpoint_sals, decode_static_tracepoint_spec)
+	(clear_command, update_static_tracepoint): Remove init_sal
+	references.  Move declarations closer to initializations.
+	* cli/cli-cmds.c (list_command): Move sal declarations closer to
+	initializations.
+	* elfread.c (elf_gnu_ifunc_resolver_stop): Remove init_sal
+	references.  Move sal declarations closer to initializations.
+	* frame.c (find_frame_sal): Return a symtab_and_line via function
+	return instead of output parameter.  Remove init_sal references.
+	* frame.h (find_frame_sal): Return a symtab_and_line via function
+	return instead of output parameter.
+	* guile/scm-frame.c (gdbscm_frame_sal): Adjust.
+	* guile/scm-symtab.c (stscm_make_sal_smob): Use in-place new
+	instead of memset.
+	(gdbscm_find_pc_line): Remove init_sal reference.
+	* infcall.c (call_function_by_hand_dummy): Remove init_sal
+	references.  Move declarations closer to initializations.
+	* infcmd.c (set_step_frame): Update.  Move declarations closer to
+	initializations.
+	(finish_backward): Remove init_sal references.  Move declarations
+	closer to initializations.
+	* infrun.c (process_event_stop_test, handle_step_into_function)
+	(insert_hp_step_resume_breakpoint_at_frame)
+	(insert_step_resume_breakpoint_at_caller): Likewise.
+	* linespec.c (create_sals_line_offset, decode_digits_ordinary)
+	(symbol_to_sal): Likewise.
+	* probe.c (parse_probes_in_pspace): Remove init_sal reference.
+	* python/py-frame.c (frapy_find_sal): Move sal declaration closer
+	to its initialization.
+	* reverse.c (save_bookmark_command): Use new/delete.  Remove
+	init_sal references.  Move declarations closer to initializations.
+	* source.c (get_current_source_symtab_and_line): Remove brace
+	initialization.
+	(set_current_source_symtab_and_line): Now takes the sal by const
+	reference.  Remove brace initialization.
+	(line_info): Remove init_sal reference.
+	* source.h (set_current_source_symtab_and_line): Now takes a
+	symtab_and_line via const reference.
+	* stack.c (set_current_sal_from_frame): Adjust.
+	(print_frame_info): Adjust.
+	(get_last_displayed_sal): Return the sal via function return
+	instead of via output parameter.  Simplify.
+	(frame_info): Adjust.
+	* stack.h (get_last_displayed_sal): Return the sal via function
+	return instead of via output parameter.
+	* symtab.c (init_sal): Delete.
+	(find_pc_sect_line): Remove init_sal references.  Move
+	declarations closer to initializations.
+	(find_function_start_sal): Remove init_sal references.  Move
+	declarations closer to initializations.
+	* symtab.h (struct symtab_and_line): In-class initialize all
+	fields.
+	* tracepoint.c (set_traceframe_context)
+	(print_one_static_tracepoint_marker): Remove init_sal references.
+	Move declarations closer to initializations.
+	* tui/tui-disasm.c (tui_show_disassem_and_update_source): Adjust.
+	* tui/tui-stack.c (tui_show_frame_info): Adjust.  Move
+	declarations closer to initializations.
+	* tui/tui-winsource.c (tui_update_source_window_as_is): Remove
+	init_sal references.  Adjust.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* ax-gdb.c (agent_command_1): Use range-for.
+	* break-catch-throw.c (re_set_exception_catchpoint): Update.
+	* breakpoint.c: Include "common/array-view.h".
+	(init_breakpoint_sal, create_breakpoint_sal): Change sals
+	parameter from struct symtabs_and_lines to
+	array_view<symtab_and_line>.  Adjust.  Use range-for.  Update.
+	(breakpoint_sals_to_pc): Change sals parameter from struct
+	symtabs_and_lines to std::vector reference.
+	(check_fast_tracepoint_sals): Change sals parameter from struct
+	symtabs_and_lines to std::array_view.  Use range-for.
+	(decode_static_tracepoint_spec): Return a std::vector instead of
+	symtabs_and_lines.  Update.
+	(create_breakpoint): Update.
+	(break_range_command, until_break_command, clear_command): Update.
+	(base_breakpoint_decode_location, bkpt_decode_location)
+	(bkpt_probe_create_sals_from_location)
+	(bkpt_probe_decode_location, tracepoint_decode_location)
+	(tracepoint_probe_decode_location)
+	(strace_marker_create_sals_from_location): Return a std::vector
+	instead of symtabs_and_lines.
+	(strace_marker_create_breakpoints_sal): Update.
+	(strace_marker_decode_location): Return a std::vector instead of
+	symtabs_and_lines.  Update.
+	(update_breakpoint_locations): Change struct symtabs_and_lines
+	parameters to gdb::array_view.  Adjust.
+	(location_to_sals): Return a std::vector instead of
+	symtabs_and_lines.  Update.
+	(breakpoint_re_set_default): Use std::vector instead of struct
+	symtabs_and_lines.
+	(decode_location_default): Return a std::vector instead of
+	symtabs_and_lines.  Update.
+	* breakpoint.h: Include "common/array-view.h".
+	(struct breakpoint_ops) <decode_location>: Now returns a
+	std::vector instead of returning a symtabs_and_lines via output
+	parameter.
+	(update_breakpoint_locations): Change sals parameters to use
+	gdb::array_view.
+	* cli/cli-cmds.c (edit_command, list_command): Update to use
+	std::vector and gdb::array_view.
+	(ambiguous_line_spec): Adjust to use gdb::array_view and
+	range-for.
+	(compare_symtabs): Rename to ...
+	(cmp_symtabs): ... this.  Change parameters to symtab_and_line
+	const reference and adjust.
+	(filter_sals): Rewrite using std::vector and standard algorithms.
+	* elfread.c (elf_gnu_ifunc_resolver_return_stop): Simplify.
+	(jump_command): Update to use std::vector.
+	* linespec.c (struct linespec_state) <canonical_names>: Update
+	comment.
+	(add_sal_to_sals_basic): Delete.
+	(add_sal_to_sals, filter_results, convert_results_to_lsals)
+	(decode_line_2, create_sals_line_offset)
+	(convert_address_location_to_sals, convert_linespec_to_sals)
+	(convert_explicit_location_to_sals, parse_linespec)
+	(event_location_to_sals, decode_line_full, decode_line_1)
+	(decode_line_with_current_source)
+	(decode_line_with_last_displayed, decode_objc)
+	(decode_digits_list_mode, decode_digits_ordinary, minsym_found)
+	(linespec_result::~linespec_result): Adjust to use std::vector
+	instead of symtabs_and_lines.
+	* linespec.h (linespec_sals::sals): Now a std::vector.
+	(struct linespec_result): Use std::vector, bool, and in-class
+	initialization.
+	(decode_line_1, decode_line_with_current_source)
+	(decode_line_with_last_displayed): Return std::vector.
+	* macrocmd.c (info_macros_command): Use std::vector.
+	* mi/mi-main.c (mi_cmd_trace_find): Use std::vector.
+	* probe.c (parse_probes_in_pspace, parse_probes): Adjust to use
+	std::vector.
+	* probe.h (parse_probes): Return a std::vector.
+	* python/python.c (gdbpy_decode_line): Use std::vector and
+	gdb::array_view.
+	* source.c (select_source_symtab, line_info): Use std::vector.
+	* stack.c (func_command): Use std::vector.
+	* symtab.h (struct symtabs_and_lines): Delete.
+	* tracepoint.c (tfind_line_command, scope_info): Use std::vector.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
+	unittests/array-view-selftests.c.
+	(SUBDIR_UNITTESTS_OBS): Add array-view-selftests.o.
+	* common/array-view.h: New file.
+	* unittests/array-view-selftests.c: New file.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* cli/cli-cmds.c (edit_command): Pass message to
+	ambiguous_line_spec.
+	(list_command): Pass message to ambiguous_line_spec.  Say
+	"first"/"last" instead of "start" and "end" to be consistent with
+	the manual.
+	(ambiguous_line_spec): Add 'format' and vararg parameters.  Use
+	them to print formatted message.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* btrace.c (ftrace_add_pt): Pass btrace_insn to
+	ftrace_update_insns by reference instead of pointer.
+
+2017-09-04  Yao Qi  <yao.qi@linaro.org>
+
+	* i386-go32-tdep.c: Include x86-xstate.h.
+	(i386_go32_init_abi): Call i386_target_description.
+	* i386-tdep.c (i386_target_description): Return tdesc_i386_mmx
+	if xcr0 is X86_XSTATE_X87_MASK.
+	* i386-tdep.h (tdesc_i386): Remove the declaration.
+	(tdesc_i386_mmx): Likewise.
+
+2017-09-04  Yao Qi  <yao.qi@linaro.org>
+
+	* i386-fbsd-tdep.c (i386fbsd_core_read_xcr0): Return
+	X86_XSTATE_SSE_MASK instead of 0.
+
+2017-09-04  Yao Qi  <yao.qi@linaro.org>
+
+	* amd64-fbsd-nat.c (amd64fbsd_read_description): Call
+	i386_target_description.
+	* i386-fbsd-nat.c (i386fbsd_read_description): Call
+	i386_target_description.
+	* i386-tdep.c (i386_gdbarch_init): Likewise.
+
+2017-09-04  Yao Qi  <yao.qi@linaro.org>
+
+	* amd64-darwin-tdep.c: Include "x86-xstate.h".
+	(x86_darwin_init_abi_64): Call amd64_target_description.
+	* amd64-dicos-tdep.c: Likewise.
+	* amd64-fbsd-nat.c: Likewise.
+	* amd64-fbsd-tdep.c: Likewise.
+	* amd64-nbsd-tdep.c: Likewise.
+	* amd64-obsd-tdep.c: Likewise.
+	* amd64-sol2-tdep.c: Likewise.
+	* amd64-windows-tdep.c: Likewise.
+	* amd64-tdep.h (tdesc_amd64): Remove the declaration.
+
+2017-09-04  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* btrace.h (btrace_insn_s, DEF_VEC_O (btrace_insn_s)): Remove.
+	(btrace_function) <insn>: Change type to use std::vector.
+	* btrace.c (ftrace_debug, ftrace_call_num_insn,
+	ftrace_find_call, ftrace_new_gap, ftrace_update_function,
+	ftrace_update_insns, ftrace_compute_global_level_offset,
+	btrace_stitch_bts, btrace_clear, btrace_insn_get,
+	btrace_insn_end, btrace_insn_next, btrace_insn_prev): Adjust to
+	change to std::vector.
+	(ftrace_update_insns): Adjust to change to std::vector, change
+	type of INSN parameter.
+	(btrace_compute_ftrace_bts): Adjust call to ftrace_update_insns.
+	* record-btrace.c (btrace_call_history_insn_range,
+	btrace_compute_src_line_range,
+	record_btrace_frame_prev_register): Adjust to change to
+	std::vector.
+	* python/py-record-btrace.c (recpy_bt_func_instructions): Adjust
+	to change to std::vector.
+
+2017-09-03  Tom Tromey  <tom@tromey.com>
+
+	* corefile.c (reopen_exec_file): Use std::string.
+
+2017-09-03  Tom Tromey  <tom@tromey.com>
+
+	* compile/compile.c (compile_register_name_mangled): Return
+	std::string.
+	* compile/compile-loc2c.c (pushf_register_address): Update.
+	(pushf_register): Update.
+	* compile/compile-c-types.c (convert_array): Update.
+	* compile/compile-c-symbols.c (generate_vla_size): Update.
+	(error_symbol_once): Use a gdb::unique_xmalloc_ptr.
+	(symbol_substitution_name): Return a gdb::unique_xmalloc_ptr.
+	(convert_one_symbol): Update.
+	(generate_c_for_for_one_variable): Update.
+	* compile/compile-c-support.c (c_get_range_decl_name): Return a
+	std::string.
+	(generate_register_struct): Update.
+	* compile/compile-internal.h (c_get_range_decl_name): Return a
+	std::string.
+	(compile_register_name_mangled): Return std::string.
+
+2017-09-03  Tom Tromey  <tom@tromey.com>
+
+	* utils.c (perror_string): Return a std::string.
+	(throw_perror_with_name, perror_warning_with_name): Update.
+
+2017-09-03  Tom Tromey  <tom@tromey.com>
+
+	* demangle.c (demangle_command): Use std::string,
+	unique_xmalloc_ptr.
+
+2017-09-03  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-setshow.c (do_set_command): Use std::string.
+
+2017-09-03  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-cmds.c (cd_command): Use gdb::unique_xmalloc_ptr.
+
+2017-09-03  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-interp.c (mi_cmd_interpreter_exec): Use std::string.
+
+2017-09-03  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-cmd-env.c (env_execute_cli_command): Use
+	gdb::unique_xmalloc_ptr.
+
+2017-09-03  Tom Tromey  <tom@tromey.com>
+
+	* thread.c (print_thread_info_1): Use string_printf.
+	(thread_apply_command, thread_apply_all_command): Use
+	std::string.
+
+2017-09-03  Tom Tromey  <tom@tromey.com>
+
+	* valprint.c (val_print_string): Update.
+	* gdbcore.h (memory_error_message): Return std::string.
+	* corefile.c (memory_error_message): Return std::string.
+	(memory_error): Update.
+	* breakpoint.c (insert_bp_location): Update.
+
+2017-09-03  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* target/waitstatus.h (target_waitstatus_to_string): Change
+	return type to std::string.
+	* target/waitstatus.c (target_waitstatus_to_string): Return
+	std::string.
+	* target.h (target_waitstatus_to_string): Remove declaration.
+	* infrun.c (resume, clear_proceed_status_thread,
+	print_target_wait_results, do_target_wait, save_waitstatus,
+	stop_all_threads): Adjust.
+	* record-btrace.c (record_btrace_wait): Adjust.
+	* target-debug.h
+	(target_debug_print_struct_target_waitstatus_p): Adjust.
+
+2017-09-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	PR gdb/22046
+	* nat/linux-procfs.c (parse_proc_status_state): Fix PROC_STATE_STOPPED
+	detection.
+
+2017-08-31  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* NEWS (Changes since GDB 8.0): Add entry mentioning new support
+	for setting/unsetting environment variables on the remote target.
+	(New remote packets): Add entries for QEnvironmentHexEncoded,
+	QEnvironmentUnset and QEnvironmentReset.
+	* common/environ.c (gdb_environ::operator=): Extend method to
+	handle m_user_set_env_list and m_user_unset_env_list.
+	(gdb_environ::clear): Likewise.
+	(match_var_in_string): Change type of first parameter from 'char
+	*' to 'const char *'.
+	(gdb_environ::set): Extend method to handle
+	m_user_set_env_list and m_user_unset_env_list.
+	(gdb_environ::unset): Likewise.
+	(gdb_environ::clear_user_set_env): New method.
+	(gdb_environ::user_set_envp): Likewise.
+	(gdb_environ::user_unset_envp): Likewise.
+	* common/environ.h (gdb_environ): Handle m_user_set_env_list and
+	m_user_unset_env_list on move constructor/assignment.
+	(unset): Add new default parameter 'update_unset_list = true'.
+	(clear_user_set_env): New method.
+	(user_set_envp): Likewise.
+	(user_unset_envp): Likewise.
+	(m_user_set_env_list): New std::set.
+	(m_user_unset_env_list): Likewise.
+	* common/rsp-low.c (hex2str): New function.
+	(bin2hex): New overload for bin2hex function.
+	* common/rsp-low.c (hex2str): New prototype.
+	(str2hex): New overload prototype.
+	* remote.c: Include "environ.h". Add QEnvironmentHexEncoded,
+	QEnvironmentUnset and QEnvironmentReset.
+	(remote_protocol_features): Add QEnvironmentHexEncoded,
+	QEnvironmentUnset and QEnvironmentReset packets.
+	(send_environment_packet): New function.
+	(extended_remote_environment_support): Likewise.
+	(extended_remote_create_inferior): Call
+	extended_remote_environment_support.
+	(_initialize_remote): Add QEnvironmentHexEncoded,
+	QEnvironmentUnset and QEnvironmentReset packet configs.
+	* unittests/environ-selftests.c (gdb_selftest_env_var):
+	New variable.
+	(test_vector_initialization): New function.
+	(test_init_from_host_environ): Likewise.
+	(test_reinit_from_host_environ): Likewise.
+	(test_set_A_unset_B_unset_A_cannot_find_A_can_find_B):
+	Likewise.
+	(test_unset_set_empty_vector): Likewise.
+	(test_vector_clear): Likewise.
+	(test_std_move): Likewise.
+	(test_move_constructor):
+	(test_self_move): Likewise.
+	(test_set_unset_reset): Likewise.
+	(run_tests): Rewrite in terms of the functions above.
+
+2017-08-31  Weimin Pan  <weimin.pan@oracle.com>
+
+	* sparc64-tdep.c (adi_stat_t): Fix comment formatting.
+	(adi_available): Use a temp variable of type CORE_ADDR as argument
+	3 when calling target_auxv_search.
+	(adi_normalize_address): Use masks and xor operators to calculate
+	normalized address.
+	(adi_read_versions, adi_write_versions, adi_print_versions)
+	(do_examine, do_assign): Use paddress.
+
+2017-08-29  John Baldwin  <jhb@FreeBSD.org>
+
+	* mips-fbsd-nat.c (getfpregs_supplies): Return true for FIR.
+	* mips-fbsd-tdep.c (mips_fbsd_supply_fpregs): Split supply of FSR
+	out of loop and add supply of FIR.
+	(mips_fbsd_collect_fpregs): Split collect of FSR out of loop and
+	add collect of FIR.
+
+2017-08-28  Simon Marchi  <simon.marchi@ericsson.com>
+
+	PR gdb/21827
+	* cli/cli-script.c (define_command): Don't convert command name
+	to lower case.
+
+2017-08-25  Joel Brobecker  <brobecker@adacore.com>
+
+	* ada-lang.c (ada_lookup_struct_elt_type): Remove parameter "dispp".
+	Update all callers accordingly. Remove all code blocks handling
+	the case where DISPP is not NULL.
+
+2017-08-24  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	PR symtab/22003
+	* dwarf2read.c (dwarf2_const_value_attr, dump_die_shallow)
+	(dwarf2_get_attr_constant_value, dwarf2_fetch_constant_bytes)
+	(skip_form_bytes, attr_form_is_constant): Handle DW_FORM_implicit_const.
+
+2017-08-24  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* dwarf2read.c (build_type_psymtabs_reader): New prototype.
+	(process_psymtab_comp_unit): Accept IS_DEBUG_TYPES.
+	(read_comp_units_from_section): New parameter abbrev_section, use
+	read_and_check_comp_unit_head, allocate signatured_type if needed.
+	(create_all_comp_units): Update read_comp_units_from_section caller.
+
+2017-08-23  Pedro Alves  <palves@redhat.com>
+
+	PR remote/21852
+	* remote.c (add_current_inferior_and_thread): Set inferior_ptid
+	to null_ptid and switch to thread without reading the registers
+	after adding the inferior.
+
+2017-08-23  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* NEWS (Changes since GDB 8.0): Add set compile-gcc and show
+	compile-gcc.
+	* compile/compile.c (compile_gcc, show_compile_gcc): New.
+	(compile_to_object): Implement compile_gcc.
+	(_initialize_compile): Install "set compile-gcc".  Initialize
+	compile_gcc.
+
+2017-08-23  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* compile/compile.c (compile_to_object): Conditionally call
+	set_verbose.  Conditionally call compile or compile_v0.
+
+2017-08-07  Weimin Pan  <weimin.pan@oracle.com>
+
+	* sparc64-tdep.h: (adi_normalize_address): New export.
+	* sparc-nat.h: (open_adi_tag_fd): New export.
+	* sparc64-linux-nat.c: (open_adi_tag_fd): New function.
+	* sparc64-linux-tdep.c:
+	(SEGV_ACCADI, SEGV_ADIDERR, SEGV_ADIPERR) New defines.
+	(sparc64_linux_handle_segmentation_fault): New function.
+	(sparc64_linux_init_abi): Register
+	sparc64_linux_handle_segmentation_fault
+	* sparc64-tdep.c: Include cli-utils.h,gdbcmd.h,auxv.h.
+	(sparc64_addr_bits_remove): New function.
+	(sparc64_init_abi): Register sparc64_addr_bits_remove.
+	(MAX_PROC_NAME_SIZE): New macro.
+	(AT_ADI_BLKSZ, AT_ADI_NBITS, AT_ADI_UEONADI) New defines.
+	(sparc64adilist): New variable.
+	(adi_proc_list): New variable.
+	(find_adi_info): New function.
+	(add_adi_info): New function.
+	(get_adi_info_proc): New function.
+	(get_adi_info): New function.
+	(info_adi_command): New function.
+	(read_maps_entry): New function.
+	(adi_available): New function.
+	(adi_normalize_address): New function.
+	(adi_align_address): New function.
+	(adi_convert_byte_count): New function.
+	(adi_tag_fd): New function.
+	(adi_is_addr_mapped): New function.
+	(adi_read_versions): New function.
+	(adi_write_versions): New function.
+	(adi_print_versions): New function.
+	(do_examine): New function.
+	(do_assign): New function.
+	(adi_examine_command): New function.
+	(adi_assign_command): New function.
+	(_initialize_sparc64_adi_tdep): New function.
+
+2017-08-22  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* breakpoint.c (breakpoints_info): Rename to ...
+	(info_breakpoints_command): ... this.
+	(watchpoints_info): Rename to ...
+	(info_watchpoints_command): ... this.
+	(tracepoints_info): Rename to ...
+	(info_tracepoints_command): ... this.
+	(_initialize_breakpoint): Adjust.
+	* dcache.c (dcache_info): Rename to ...
+	(info_display_command): ... this.
+	(_initialize_dcache): Adjust.
+	* frame.h (args_info): Rename to ...
+	(info_args_command): ... this.
+	(locals_info): Rename to ...
+	(info_locals_command): ... this.
+	* infcmd.c (nofp_registers_info): Rename to ...
+	(info_registers_command): ... this.
+	(float_info): Rename to ...
+	(info_float_command): ... this.
+	(program_info): Rename to ...
+	(info_program_command): ... this.
+	(all_registers_info): Rename to ...
+	(info_all_registers_command): ... this.
+	(vector_info): Rename to ...
+	(info_vector_command): ... this.
+	(float_info): Rename to ...
+	(info_float_command): ... this.
+	(_initialize_infcmd): Adjust.
+	* inferior.h (term_info): Rename to ...
+	(info_terminal_command): ... this.
+	* inflow.c (term_info): Rename to ...
+	(info_terminal_command): ... this.
+	(_initialize_inflow): Adjust.
+	* infrun.c (signals_info): Rename to ...
+	(info_signals_command): ... this.
+	(_initialize_infrun): Adjust.
+	* objc-lang.c (classes_info): Rename to ...
+	(info_classes_command): ... this.
+	(selectors_info): Rename to ...
+	(info_selectors_command): ... this.
+	(_initialize_objc_language): Adjust.
+	* printcmd.c (sym_info): Rename to ...
+	(info_symbol_command): ... this.
+	(address_info): Rename to ...
+	(info_address_command): ... this.
+	(display_info): Rename to ...
+	(info_display_command): ... this.
+	(_initialize_printcmd): Adjust.
+	* reverse.c (bookmarks_info): Rename to ...
+	(info_breakpoints_command): ... this.
+	(_initialize_reverse): Adjust.
+	* ser-go32.c (dos_info): Rename to ...
+	(info_serial_command): ... this.
+	(_initialize_ser_dos): Adjust.
+	* skip.c (skip_info): Rename to ...
+	(info_skip_command): ... this.
+	(_initialize_step_skip): Adjust.
+	* source.c (line_info): Rename to ...
+	(info_line_command): ... this.
+	(source_info): Rename to ...
+	(info_source_command)
+	* stack.c (frame_info): Rename to ...
+	(info_frame_command): ... this.
+	(locals_info): Rename to ...
+	(info_locals_command): ... this.
+	(args_info): Rename to ...
+	(info_args_command): ... this.
+	(_initialize_stack): Adjust.
+	* symtab.c (sources_info): Rename to ...
+	(info_sources_command): ... this.
+	(variables_info): Rename to ...
+	(info_variables_command): ... this.
+	(functions_info): Rename to ...
+	(info_functions_command): ... this.
+	(types_info): Rename to ...
+	(info_types_command): ... this.
+	(_initialize_symtab): Adjust.
+	* target.c (target_info): Rename to ...
+	(info_target_command): ... this.
+	(initialize_targets): Adjust.
+	* tracepoint.c (tvariables_info): Rename to ...
+	(info_tvariables_command): ... this.
+	(scope_info): Rename to ...
+	(info_scope_command): ... this.
+	(trace_dump_actions): Adjust.
+	(_initialize_tracepoint): Adjust.
+
+2017-08-22  Tom Tromey  <tom@tromey.com>
+
+	* breakpoint.h (install_breakpoint): Update.
+	* breakpoint.c (add_solib_catchpoint): Update.
+	(install_breakpoint): Change argument to a std::unique_ptr.
+	(create_fork_vfork_event_catchpoint): Use std::unique_ptr.
+	(create_breakpoint_sal, create_breakpoint): Update.
+	(watch_command_1, catch_exec_command_1)
+	(strace_marker_create_breakpoints_sal): Use std::unique_ptr.
+	(add_to_breakpoint_chain): Change argument to a std::unique_ptr.
+	Return the breakpoint.
+	(set_raw_breakpoint_without_location, set_raw_breakpoint)
+	(new_single_step_breakpoint): Update.
+	* break-catch-throw.c (handle_gnu_v3_exceptions): Use
+	std::unique_ptr.
+	* break-catch-syscall.c (create_syscall_event_catchpoint): Use
+	std::unique_ptr.
+	* break-catch-sig.c (create_signal_catchpoint): Use
+	std::unique_ptr.
+	* ada-lang.c (create_ada_exception_catchpoint): Use
+	std::unique_ptr.
+
+2017-08-22  Tom Tromey  <tom@tromey.com>
+
+	* breakpoint.c (add_solib_catchpoint): Use std::unique_ptr.
+
+2017-08-22  Tom Tromey  <tom@tromey.com>
+
+	* psymtab.c (psymtab_search_name): Return a unique_xmalloc_ptr.
+	(lookup_partial_symbol): Update.
+
+2017-08-22  Tom Tromey  <tom@tromey.com>
+
+	* source.h (rewrite_source_path): Return a unique_xmalloc_ptr.
+	* source.c (rewrite_source_path): Return a unique_xmalloc_ptr.
+	(find_and_open_source, symtab_to_fullname): Update.
+	* psymtab.c (psymtab_to_fullname): Update.
+
+2017-08-22  Tom Tromey  <tom@tromey.com>
+
+	* exec.c (exec_file_attach): Update.
+	* linux-thread-db.c (try_thread_db_load): Update.
+	* guile/scm-safe-call.c (gdbscm_safe_source_script): Update.
+	* utils.c (gdb_realpath): Change return type.
+	(gdb_realpath_keepfile): Update.
+	(gdb_realpath_check_trailer, gdb_realpath_tests): New functions.
+	(_initialize_utils): Register the new self test.
+	* source.c (openp): Update.
+	(find_and_open_source): Update.
+	* nto-tdep.c (nto_find_and_open_solib): Update.
+	* main.c (set_gdb_data_directory): Update.
+	(captured_main_1): Update.
+	* dwarf2read.c (dwarf2_get_dwz_file): Update
+	(dw2_map_symbol_filenames): Update.
+	* auto-load.c (auto_load_safe_path_vec_update): Update.
+	(filename_is_in_auto_load_safe_path_vec): Change type of
+	"filename_realp".
+	(auto_load_objfile_script): Update.
+	(file_is_auto_load_safe): Update.  Use std::string.
+	* utils.h (gdb_realpath): Return a gdb::unique_xmalloc_ptr.
+
+2017-08-22  Tom Tromey  <tom@tromey.com>
+
+	* utils.c (gdb_realpath_keepfile): Return a
+	gdb::unique_xmalloc_ptr.
+	* exec.c (exec_file_attach): Update.
+	* utils.h (gdb_realpath_keepfile): Return a
+	gdb::unique_xmalloc_ptr.
+
+2017-08-22  Tom Tromey  <tom@tromey.com>
+
+	* compile/compile.c (compile_file_command): Use
+	gdb::unique_xmalloc_ptr, std::string.
+	* utils.c (gdb_abspath): Change return type.
+	* source.c (openp): Update.
+	* objfiles.c (allocate_objfile): Update.
+	* main.c (set_gdb_data_directory): Update.
+	* utils.h (gdb_abspath): Return a gdb::unique_xmalloc_ptr.
+
+2017-08-22  Zhouyi Zhou  <zhouzhouyi@gmail.com>
+
+	* cli-cmds.c (list_commands): List actual code around more than
+	one location.
+
+2017-08-21  John Baldwin  <jhb@FreeBSD.org>
+
+	* fbsd-nat.c (fbsd_add_threads): Use array type for `lwps'.
+
+2017-08-21  Pedro Alves  <palves@redhat.com>
+
+	PR gdb/19487
+	* c-exp.y (variable production): Handle function aliases.
+	* minsyms.c (msymbol_is_text): New function.
+	* minsyms.h (msymbol_is_text): Declare.
+	* symtab.c (find_function_alias_target): New function.
+	* symtab.h (find_function_alias_target): Declare.
+
+2017-08-21  Pedro Alves  <palves@redhat.com>
+
+	* eval.c (evaluate_subexp_standard) <OP_TYPE>: Don't dig past
+	typedefs.
+	* typeprint.c (whatis_exp): If handling "whatis", and expression
+	is OP_TYPE, strip one typedef level.  Otherwise don't strip
+	typedefs here.
+	* valops.c (value_cast): Save "to" type before resolving
+	stubs/typedefs.  Use that type as resulting value's type.
+
+2017-08-18  Tom Tromey  <tom@tromey.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* spu-multiarch.c (parse_spufs_run): Use scoped_restore.
+	* sol-thread.c (sol_thread_resume, sol_thread_wait)
+	(sol_thread_xfer_partial, rw_common): Use scoped_restore.
+	* procfs.c (procfs_do_thread_registers): Use scoped_restore.
+	* proc-service.c (ps_xfer_memory): Use scoped_restore.
+	* linux-tdep.c (linux_corefile_thread): Remove a cleanup.
+	(linux_get_siginfo_data): Add "thread" argument.  Use
+	scoped_restore.
+	* linux-nat.c (linux_child_follow_fork)
+	(check_stopped_by_watchpoint): Use scoped_restore.
+	* infrun.c (displaced_step_prepare_throw, write_memory_ptid)
+	(THREAD_STOPPED_BY, handle_signal_stop): Use scoped_restore.
+	(restore_inferior_ptid, save_inferior_ptid): Remove.
+	* btrace.c (btrace_fetch): Use scoped_restore.
+	* bsd-uthread.c (bsd_uthread_fetch_registers)
+	(bsd_uthread_store_registers): Use scoped_restore.
+	* breakpoint.c (reattach_breakpoints, detach_breakpoints): Use
+	scoped_restore.
+	* aix-thread.c (aix_thread_resume, aix_thread_wait)
+	(aix_thread_xfer_partial): Use scoped_restore.
+	* inferior.h (save_inferior_ptid): Remove.
+
+2017-08-18  Yao Qi  <yao.qi@linaro.org>
+
+	PR tdep/21818
+	* arm-tdep.c (gdb_print_insn_arm): Mark
+	USER_SPECIFIED_MACHINE_TYPE if exec_bfd isn't NULL.
+
+2017-08-18  Yao Qi  <yao.qi@linaro.org>
+
+	* NEWS: Mention GDBserver's new option "--selftest".
+	* Makefile.in (SFILES): Remove selftest.c, add common/selftest.c.
+	* selftest.c: Move it to common/selftest.c.
+	* selftest.h: Move it to common/selftest.h.
+	* selftest-arch.c (reset): New function.
+	(tests_with_arch): Call reset.
+
+2017-08-18  Yao Qi  <yao.qi@linaro.org>
+
+	* selftest.c (run_tests): Don't call QUIT.  Call debug_printf
+	instead of exception_fprintf and printf_filtered.
+
+2017-08-18  Yao Qi  <yao.qi@linaro.org>
+
+	* selftest.c (register_self_test): Rename it to
+	selftests::register_test.
+	(run_self_tests): selftest::run_tests.
+	* selftest.h: Update declarations.
+	* selftest-arch.c (register_self_test_foreach_arch): Rename it to
+	selftests::register_test_foreach_arch.
+	* selftest-arch.h: Update declaration.
+	* aarch64-tdep.c: Update.
+	* arm-tdep.c: Likewise.
+	* disasm-selftests.c: Likewise.
+	* dwarf2loc.c: Likewise.
+	* dwarf2-frame.c: Likewise.
+	* findvar.c: Likewise.
+	* gdbarch-selftests.c: Likewise.
+	* maint.c (maintenance_selftest): Likewise.
+	* regcache.c: Likewise.
+	* rust-exp.y: Likewise.
+	* selftest-arch.c: Likewise.
+	* unittests/environ-selftests.c: Likewise.
+	* unittests/function-view-selftests.c: Likewise.
+	* unittests/offset-type-selftests.c: Likewise.
+	* unittests/optional-selftests.c: Likewise.
+	* unittests/scoped_restore-selftests.c: Likewise.
+	* utils-selftests.c: Likewise.
+
+2017-08-17  Pedro Alves  <palves@redhat.com>
+
+	* cli/cli-cmds.c (source_command): Delete 'old_source_verbose'
+	local.
+
+2017-08-17  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (struct dwarf2_cu) <line_header_die_owner>: New
+	field.
+	(reset_die_in_process): Delete, replaced by ...
+	(process_die_scope): ... this new class.  Make it responsible for
+	freeing cu->line_header too.
+	(process_die): Use process_die_scope.
+	(handle_DW_AT_stmt_list): Record the line header's owner CU/DIE in
+	cu->line_header_die_owner.  Don't release the line header if it's
+	owned by the CU.
+	(setup_type_unit_groups): Make the CU/DIE own the line header.
+	Don't release the line header here.
+
+2017-08-17  Alex Lindsay  <alexlindsay239@gmail.com>  (tiny change)
+
+	* elfread.c (elf_read_minimal_symbols): xfree synthsyms.
+
+2017-08-17  Ruslan Kabatsayev  <b7.10110111@gmail.com>
+
+	* NEWS: Mention new shortcuts for nexti and stepi in TUI
+	Single-Key mode
+
+2017-08-16  Ruslan Kabatsayev  <b7.10110111@gmail.com>
+
+	* tui/tui.c (tui_commands): Add "nexti" and "stepi" to the Single-Key
+	mode command list.
+
+2017-08-15  Stafford Horne  <shorne@gmail.com>
+
+	* MAINTAINERS (Write After Approval): Add Stafford Horne.
+
+2017-08-15  Stafford Horne  <shorne@gmail.com>
+
+	* xtensa-tdep.c (xtensa_init_reggroups): Use xstrdup for cpname.
+
+2017-08-15  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR gdb/21954
+	* infcmd.c (unset_environment_command): Use the 'clear' method on
+	the environment instead of resetting it.
+
+2017-08-15  John Baldwin  <jhb@FreeBSD.org>
+
+	* fbsd-nat.c (fbsd_convert_siginfo): Fix compile on big-endian
+	platforms.
+
+2017-08-14  Tom Tromey  <tom@tromey.com>
+
+	* valprint.c (print_octal_chars): Use HOST_CHAR_BIT.
+	(print_binary_chars): Likewise.
+	(BITS_IN_BYTES): Remove.
+
+2017-08-14  Tom Tromey  <tom@tromey.com>
+
+	PR gdb/21675
+	* valprint.c (LOW_ZERO): Change value to 034.
+	(print_octal_chars): Add static_asserts for octal constants.
+	* printcmd.c (print_scalar_formatted): Add 'd' case.
+
+2017-08-11  Tom Tromey  <tom@tromey.com>
+
+	* symfile.c (add_symbol_file_command): Use std::vector.
+
+2017-08-14  Tom Tromey  <tom@tromey.com>
+
+	* break-catch-throw.c (handle_gnu_v3_exceptions): Use std::move.
+	* break-catch-syscall.c (create_syscall_event_catchpoint): Use
+	std::move.
+	* break-catch-sig.c (create_signal_catchpoint): Use std::move.
+
+2017-08-11  Pedro Alves  <palves@redhat.com>
+
+	* infrun.c (process_event_stop_test): Adjust
+	function_name_is_marked_for_skip call.
+	* skip.c: Include <list>.
+	(skiplist_entry): Make it a class with private fields, and
+	getters/setters.
+	(skiplist_entry_chain): Delete.
+	(skiplist_entries): New.
+	(skiplist_entry_count): Delete.
+	(highest_skiplist_entry_num): New.
+	(ALL_SKIPLIST_ENTRIES, ALL_SKIPLIST_ENTRIES_SAFE): Delete.
+	(add_skiplist_entry): Delete.
+	(skiplist_entry::skiplist_entry): New.
+	(skiplist_entry::add_entry): New.
+	(skip_file_command, skip_function): Adjust.
+	(compile_skip_regexp): Delete.
+	(skip_command): Don't compile regexp here.  Adjust to use
+	skiplist_entry::add_entry.
+	(skip_info): Adjust to use range-for and getters.
+	(skip_enable_command, skip_disable_command): Adjust to use
+	range-for and setters.
+	(skip_delete_command): Adjust to use std::list.
+	(add_skiplist_entry): Delete.
+	(skip_file_p): Delete, refactored as ...
+	(skiplist_entry::do_skip_file_p): ... this new method.
+	(skip_gfile_p): Delete, refactored as ...
+	(skiplist_entry::do_gskip_file_p): ... this new method.
+	(skip_function_p, skip_rfunction_p): Delete, refactored as ...
+	(skiplist_entry::skip_function_p): ... this new method.
+	(function_name_is_marked_for_skip): Now returns bool, and takes
+	the function sal by const reference.  Adjust to use range-for and
+	skiplist_entry methods.
+	(_initialize_step_skip): Remove references to
+	skiplist_entry_chain, skiplist_entry_count.
+	* skip.h (function_name_is_marked_for_skip): Now returns bool, and
+	takes the function sal by const reference.
+
+2017-08-11  Yao Qi  <yao.qi@linaro.org>
+
+	* dwarf2-frame.c (clear_pointer_cleanup): Remove.
+	(dwarf2_frame_cache): Remove reset_cache_cleanup.
+	(dwarf2_frame_cache):
+	* frame-unwind.c (frame_unwind_try_unwinder): Catch
+	RETURN_MASK_ALL and set *this_case to NULL.
+	* frame-unwind.h: Update comments.
+
+2017-08-11  Yao Qi  <yao.qi@linaro.org>
+
+	* dwarf2-frame.c (dwarf2_frame_state_alloc_regs): Remove.
+	(dwarf2_frame_state_copy_regs): Remove.
+	(dwarf2_frame_state_free_regs): Remove.
+	(dwarf2_frame_state::~dwarf2_frame_state): Remove.
+	(dwarf2_restore_rule): Call method .alloc_regs instead of
+	dwarf2_frame_state_alloc_regs.
+	(execute_cfa_program): Likewise.  Call dwarf2_frame_state_reg_info
+	constructor.  Call std::move.
+	(dwarf2_fetch_cfa_info): Don't call dwarf2_frame_state_copy_regs.
+	(dwarf2_frame_cache): Likewise.
+
+	[GDB_SELF_TEST]: Include selftest.h and
+	selftest-arch.h.
+	[GDB_SELF_TEST] (execute_cfa_program_test): New function.
+	(_initialize_dwarf2_frame) [GDB_SELF_TEST]: Register
+	execute_cfa_program_test.
+
+	* dwarf2-frame.h (dwarf2_frame_state_reg_info): Add ctor, dtor,
+	copy ctor, assignment operator, move assignment.
+	<alloc_regs>: New method.
+	<swap>: New method.
+	(struct dwarf2_frame_state): Delete dtor.
+	(dwarf2_frame_state_alloc_regs): Remove declaration.
+	* sparc-tdep.c (sparc_execute_dwarf_cfa_vendor_op): Don't call
+	dwarf2_frame_state_alloc_regs, use .alloc_regs instead.
+
+2017-08-11  Yao Qi  <yao.qi@linaro.org>
+
+	* dwarf2-frame.c (dwarf2_frame_state_free): Remove.
+	(dwarf2_frame_state::dwarf2_frame_state): New.
+	(dwarf2_frame_state::~dwarf2_frame_state): New.
+	(dwarf2_fetch_cfa_info): Update.
+	(dwarf2_frame_cache): Remove old_chain.  Change 'fs' to an object
+	rather than a pointer.  Update code.
+	* dwarf2-frame.h (struct dwarf2_frame_state): Declare ctor and
+	dtor.
+	<data_align, code_align, retaddr_column>: Change them to const.
+	<armcc_cfa_offsets_sf, armcc_cfa_offsets_reversed>: Change them
+	to bool.
+
+2017-08-11  Yao Qi  <yao.qi@linaro.org>
+
+	* dwarf2-frame.h (struct dwarf2_frame_state_reg) <exp_len>: Remove.
+	<loc.exp>: New field.
+	* dwarf2-frame.c (execute_cfa_program): Update.
+	(dwarf2_frame_prev_register): Update.
+
+2017-08-10  Pedro Alves  <palves@redhat.com>
+
+	* common/gdb_unique_ptr.h (xfree_deleter<T[]>): Define.
+
+2017-08-09  John Baldwin  <jhb@FreeBSD.org>
+
+	* fbsd-nat.c (struct fbsd_fork_info): Remove.
+	(fbsd_pending_children): Use std::list.
+	(fbsd_remember_child): Likewise.
+	(fbsd_is_child_pending): Likewise.
+	(fbsd_pending_vfork_done): Use std::forward_list.
+	(fbsd_add_vfork_done): Likewise.
+	(fbsd_is_vfork_done_pending): Likewise.
+	(fbsd_next_vfork_done): Likewise.
+
+2017-08-09  John Baldwin  <jhb@FreeBSD.org>
+
+	* fbsd-nat.c [HAVE_KINFO_GETVMMAP] (struct free_deleter): New.
+	(fbsd_find_memory_regions): Use free_deleter with std::unique_ptr.
+	[!HAVE_KINFO_GETVMMAP] (fbsd_find_memory_regions): Use std::string
+	for `mapfilename'.
+	(fbsd_xfer_partial): Use gdb::byte_vector.
+	(fbsd_add_threads): Use gdb::unique_xmalloc_ptr.
+
+2017-08-09  John Baldwin  <jhb@FreeBSD.org>
+
+	* fbsd-nat.c: [!HAVE_KINFO_GETVMMAP]: Include <sys/user.h> and
+	"filestuff.h".
+	(fbsd_find_memory_regions): Fix `mapfile' initialization.
+
+2017-08-09  Tom Tromey  <tom@tromey.com>
+
+	* skip.c (skiplist_entry): New constructor.
+	(skiplist_entry::enabled, skiplist_entry::function_is_regexp)
+	(skiplist_entry::file_is_glob): Now bool.
+	(skiplist_entry::file, skiplist_entry::function): Now
+	std::string.
+	(make_skip_entry): Return a unique_ptr.  Use new.
+	(free_skiplist_entry, free_skiplist_entry_cleanup)
+	(make_free_skiplist_entry_cleanup): Remove.
+	(skip_command, skip_disable_command, add_skiplist_entry)
+	(skip_form_bytes, compile_skip_regexp, skip_command, skip_info)
+	(skip_file_p, skip_gfile_p, skip_function_p, skip_rfunction_p)
+	(function_name_is_marked_for_skip): Update.
+	(skip_delete_command): Update.  Use delete.
+
+2017-08-09  Jiong Wang  <jiong.wang@arm.com>
+
+	* aarch64-linux-tdep.c: Include "auxv.h" and "elf/common.h".
+	(aarch64_linux_core_read_description): New function.
+	(aarch64_linux_init_abi): Register gdbarch_core_read_description.
+
+2017-08-09  Pedro Alves  <palves@redhat.com>
+
+	* cp-name-parser.y (cp_comp_to_string): Return a
+	gdb::unique_xmalloc_ptr<char>.
+	* cp-support.c (replace_typedefs_qualified_name)
+	(replace_typedefs): Adjust to use gdb::unique_xmalloc_ptr<char>.
+	(cp_canonicalize_string_full): Use op= instead of explicit
+	convertion.
+	(cp_class_name_from_physname, method_name_from_physname)
+	(cp_func_name, cp_remove_params): Adjust to use
+	gdb::unique_xmalloc_ptr<char>.
+	* cp-support.h (cp_comp_to_string): Return a
+	gdb::unique_xmalloc_ptr<char>.
+	* python/py-type.c (typy_lookup_type): Adjust to use
+	gdb::unique_xmalloc_ptr<char>.
+
+2017-08-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* dwarf2read.c (dwarf2_string_attr): Fix a typo.
+
+2017-08-09  Alex Lindsay  <alexlindsay239@gmail.com>
+	    Yao Qi  <yao.qi@linaro.org>
+
+	* cp-support.c (cp_canonicalize_string_full): Use
+	gdb::unique_xmalloc_ptr<char>.
+	(cp_canonicalize_string): Likewise.
+
+2017-08-09  Yao Qi  <yao.qi@linaro.org>
+
+	* features/Makefile (WHICH): Remove i386/ non-linux stuff.
+	* regformats/i386/amd64-avx-avx512.dat: Remove.
+	* regformats/i386/amd64-avx-mpx-avx512-pku.dat: Remove.
+	* regformats/i386/amd64-avx-mpx.dat:Remove.
+	* regformats/i386/amd64-avx.dat: Remove.
+	* regformats/i386/amd64-mpx.dat: Remove.
+	* regformats/i386/i386-avx-avx512.dat: Remove.
+	* regformats/i386/i386-avx-mpx-avx512-pku.dat: Remove.
+	* regformats/i386/i386-avx-mpx.dat: Remove.
+	* regformats/i386/i386-mmx.dat: Remove.
+	* regformats/i386/i386-mpx.dat: Remove.
+
+2017-08-09  Yao Qi  <yao.qi@linaro.org>
+
+	* amd64-tdep.h (tdesc_x32): Remove the declaration.
+	* amd64-tdep.c: Don't include features/i386/x32*.c.
+	(_initialize_amd64_tdep): Don't call initialize_tdesc_x32*
+	functions.
+	* features/Makefile (WHICH): Remove i386/x32, i386/x32-avx,
+	and i386/x32-avx-avx512.
+	(XMLTOC): Remove i386/x32-avx.xml, i386/x32-avx-avx512.xml,
+	and i386/x32.xml.
+	* features/i386/x32-avx-avx512.c: Removed.
+	* features/i386/x32-avx-avx512.xml: Removed.
+	* features/i386/x32-avx.c: Removed.
+	* features/i386/x32-avx.xml: Removed.
+	* features/i386/x32.c: Removed.
+	* features/i386/x32.xml: Removed.
+	* regformats/i386/x32-avx-avx512.dat: Removed.
+	* regformats/i386/x32-avx.dat: Removed.
+	* regformats/i386/x32.dat: Removed.
+
+2017-08-07  Maciej W. Rozycki  <macro@imgtec.com>
+
+	PR breakpoints/21886
+	* mem-break.c (default_memory_insert_breakpoint): Use
+	`->placed_address' rather than `->reqstd_address' for the
+	breakpoint location.
+
+2017-08-07  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* arch-utils.c (default_print_insn): Remove arch/mach/endian
+	assertions.
+
+2017-08-07  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* gdbarch.sh (gdbarch_info): Replace the `tdep_info' member with
+	a union of `tdep_info', `tdesc_data' and `id'.
+	* aarch64-tdep.c (aarch64_gdbarch_init): Use `info.tdesc_data'
+	rather than `info.tdep_info'.
+	* amd64-linux-tdep.c (amd64_linux_init_abi): Likewise.
+	* i386-linux-tdep.c (i386_linux_init_abi): Likewise.
+	* i386-tdep.c (i386_gdbarch_init): Likewise.
+	* mips-linux-tdep.c (mips_linux_init_abi): Likewise.
+	* mips-tdep.c (mips_gdbarch_init): Likewise.
+	* nds32-tdep.c (nds32_gdbarch_init): Likewise.
+	* rs6000-tdep.c (rs6000_gdbarch_init): Likewise.
+	* ppc-linux-tdep.c (ppu2spu_sniffer): Use `info.id' rather than
+	`info.tdep_info'.
+	(ppc_linux_init_abi): Use `info.tdesc_data' rather than
+	`info.tdep_info'.
+	* sparc-tdep.c (sparc32_gdbarch_init): Likewise.
+	* spu-multiarch.c (spu_gdbarch): Use `info.id' rather than
+	`info.tdep_info'.
+	* spu-tdep.c (spu_gdbarch_init): Likewise.
+	* gdbarch.h: Regenerate.
+
+2017-08-07  Leszek Swirski  <leszeks@google.com>
+
+	PR symtab/20899
+	* dwarf2read.c (dwarf2_string_attr): Allow DW_FORM_GNU_strp_alt.
+
+2017-08-07  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* remote-sim.c (gdbsim_load): Remove char **argv local variable.
+	(gdbsim_open): Rename gdb_argv args object to argv.
+
+2017-08-05  Tom Tromey  <tom@tromey.com>
+
+	* compile/compile-object-load.c (compile_object_load): Use
+	gdb::unique_xmalloc_ptr.
+	* cli/cli-dump.c (scan_filename): Rename from
+	scan_filename_with_cleanup.  Change return type.
+	(scan_expression): Rename from scan_expression_with_cleanup.
+	Change return type.
+	(dump_memory_to_file, dump_value_to_file, restore_command):
+	Use gdb::unique_xmalloc_ptr.  Update.
+	* cli/cli-cmds.c (find_and_open_script): Use
+	gdb::unique_xmalloc_ptr.
+	* tracefile-tfile.c (tfile_open): Use gdb::unique_xmalloc_ptr.
+	* symmisc.c (maintenance_print_symbols)
+	(maintenance_print_msymbols): Use gdb::unique_xmalloc_ptr.
+	* symfile.c (symfile_bfd_open, generic_load)
+	(add_symbol_file_command, remove_symbol_file_command): Use
+	gdb::unique_xmalloc_ptr.
+	* source.c (openp): Use gdb::unique_xmalloc_ptr.
+	* psymtab.c (maintenance_print_psymbols): Use
+	gdb::unique_xmalloc_ptr.
+	* corelow.c (core_open): Use gdb::unique_xmalloc_ptr.
+	* breakpoint.c (save_breakpoints): Use gdb::unique_xmalloc_ptr.
+	* solib.c (solib_map_sections): Use gdb::unique_xmalloc_ptr.
+	(reload_shared_libraries_1): Likewise.
+
+2017-08-05  Tom Tromey  <tom@tromey.com>
+
+	* rust-exp.y (rust_op_ptr, set_field): Remove typedefs.
+	(rust_op_vector, rust_set_vector): New typedefs.
+	(current_parser): New global.
+	(work_obstack): Change to pointer type.  Update all users.
+	(rust_ast, pstate): Remove globals.
+	(struct rust_parser): New.
+	(%union) <params, field_inits>: Change type.
+	(start, tuple_expr, unit_expr, struct_expr_list, literal)
+	(field_expr, expr_list, maybe_expr_list, type_list): Update.
+	(ast_call_ish, ast_path, ast_function_type, ast_tuple_type)
+	(convert_params_to_types, convert_params_to_expression): Change
+	type of "params".
+	(ast_string): Change type of "fields".
+	(rust_parse): Make a rust_parser.  Remove cleanups.
+	(rust_lex_tests): Make and install an auto_obstack.
+
+2017-08-04  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.srv (ipa_x32_linux_regobj): New.
+	* linux-amd64-ipa.c (get_ipa_tdesc): Use X86_TDESC_AVX_AVX512
+	instead of X86_TDESC_AVX512.
+	(initialize_low_tracepoint): Call
+	init_registers_x32_avx_avx512_linux.
+
+2017-08-04  Yao Qi  <yao.qi@linaro.org>
+
+	* utils.h (gdb_argv): Add namespace std for nullptr_t.
+
+2017-08-03  Ruslan Kabatsayev  <b7.10110111@gmail.com>
+
+	* MAINTAINERS (Write After Approval): Add Ruslan Kabatsayev.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* utils.c (make_cleanup_freeargv, do_freeargv, gdb_buildargv):
+	Remove.
+	* utils.h (make_cleanup_freeargv, gdb_buildargv): Remove.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* python/py-param.c (compute_enum_values): Use gdb_argv.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* utils.h (struct gdb_argv_deleter): New.
+	(gdb_argv): New class.
+	* utils.c (gdb_argv::reset): New method.
+	* tracepoint.c (delete_trace_variable_command): Use gdb_argv.
+	* tracefile.c (tsave_command): Use gdb_argv.
+	* top.c (new_ui_command): Use gdb_argv.
+	* symmisc.c (maintenance_print_symbols)
+	(maintenance_print_msymbols, maintenance_expand_symtabs): Use gdb_argv.
+	* symfile.c (symbol_file_command, generic_load)
+	(remove_symbol_file_command): Use gdb_argv.
+	* stack.c (backtrace_command): Use gdb_argv.
+	* source.c (add_path, show_substitute_path_command)
+	(unset_substitute_path_command, set_substitute_path_command):
+	Use gdb_argv.
+	* skip.c (skip_command): Use gdb_argv.  Use gdb_buildargv.
+	* ser-mingw.c (pipe_windows_open): Use gdb_argv.
+	* remote.c (extended_remote_run, remote_put_command)
+	(remote_get_command, remote_delete_command): Use gdb_argv.
+	* remote-sim.c (gdbsim_load, gdbsim_create_inferior)
+	(gdbsim_open): Use gdb_argv.
+	* python/py-cmd.c (gdbpy_string_to_argv): Use gdb_argv.
+	* psymtab.c (maintenance_print_psymbols): Use gdb_argv.
+	* procfs.c (procfs_info_proc): Use gdb_argv.
+	* interps.c (interpreter_exec_cmd): Use gdb_argv.
+	* infrun.c (handle_command): Use gdb_argv.
+	* inferior.c (add_inferior_command, clone_inferior_command):
+	Use gdb_argv.
+	* guile/scm-string.c (gdbscm_string_to_argv): Use gdb_argv.
+	* exec.c (exec_file_command): Use gdb_argv.
+	* cli/cli-cmds.c (alias_command): Use gdb_argv.
+	* compile/compile.c (build_argc_argv): Use gdb_argv.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* python/python.c (gdbpy_decode_line): Use unique_xmalloc_ptr.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* python/python.c (compute_python_string): Return std::string.
+	(gdbpy_eval_from_control_command): Update.
+	(do_start_initialization): Use std::string.
+	* python/py-varobj.c (py_varobj_iter_next): Use string_printf, not
+	xstrprintf.
+	* python/py-breakpoint.c (local_setattro): Use string_printf, not
+	xstrprintf.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* top.h (do_restore_instream_cleanup): Remove.
+	* top.c (do_restore_instream_cleanup): Remove.
+	(read_command_file): Use scoped_restore.
+	* cli/cli-script.c (execute_user_command): Use scoped_restore.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-script.c (execute_user_command)
+	(execute_control_command): Use scoped_restore.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-script.c (do_restore_user_call_depth): Remove.
+	(execute_user_command): Remove user_call_depth; use
+	user_args_stack's size instead.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* top.h (in_user_command): Remove.
+	* top.c (in_user_command): Remove.
+	* cli/cli-script.c (do_restore_user_call_depth)
+	(execute_user_command): Update.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* valops.c (search_struct_method): Use gdb::byte_vector.
+	* valarith.c (value_concat): Use std::vector.
+	* target.c (memory_xfer_partial): Use gdb::byte_vector.
+	(simple_search_memory): Likewise.
+	* printcmd.c (find_string_backward): Use gdb::byte_vector.
+	* mi/mi-main.c (mi_cmd_data_write_memory): Use gdb::byte_vector.
+	* gcore.c (gcore_copy_callback): Use gdb::byte_vector.
+	* elfread.c (elf_rel_plt_read): Use std::string.
+	* cp-valprint.c (cp_print_value): Use gdb::byte_vector.
+	* cli/cli-dump.c (restore_section_callback): Use
+	gdb::byte_vector.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* jit.c (jit_reader_load_command): Use unique_xmalloc_ptr.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* tui/tui-regs.c (tui_restore_gdbout): Remove.
+	(tui_register_format): Use scoped_restore.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* reverse.c (exec_direction_default): Remove.
+	(exec_reverse_once): Use scoped_restore.
+	* remote.c (restore_remote_timeout): Remove.
+	(remote_flash_erase, remote_flash_write, remote_flash_done)
+	(readchar, remote_serial_write): Use scoped_restore.
+	* cli/cli-script.c (struct source_cleanup_lines_args)
+	(source_cleanup_lines): Remove.
+	(script_from_file): Use scoped_restore.
+	* cli/cli-cmds.c (source_verbose_cleanup): Remove.
+	(source_command): Use scoped_restore.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* utils.h (make_cleanup_free_so): Remove.
+	* utils.c (do_free_so, make_cleanup_free_so): Remove.
+	* solist.h (struct so_deleter): New.
+	(so_list_up): New typedef.
+	* solib-svr4.c (svr4_read_so_list): Use so_list_up.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* utils.h (make_cleanup_restore_current_language): Remove.
+	* utils.c (do_restore_current_language)
+	(make_cleanup_restore_current_language): Remove.
+	* parse.c (parse_exp_in_context_1)
+	(parse_expression_with_language): Use
+	scoped_restore_current_language.
+	* mi/mi-main.c (mi_cmd_execute): Use
+	scoped_restore_current_language.
+	* language.h (scoped_restore_current_language): New class.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* compile/compile.c (cleanup_unlink_file): Remove.
+	(compile_to_object): Use gdb::unlinker.
+	(eval_compile_command): Likewise.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* utils.h (make_cleanup_fclose): Remove.
+	* utils.c (do_fclose_cleanup, make_cleanup_fclose): Remove.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* top.c (open_terminal_stream): Return gdb_file_up.
+	(new_ui_command): Update.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* source.c (print_source_lines_base, forward_search_command)
+	(reverse_search_command): Use gdb_file_up.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* fbsd-nat.c (fbsd_find_memory_regions): Update.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-cmds.c (find_and_open_script): Change return type.
+	Remove "streamp" and "full_path" parameters.
+	(source_script_with_search): Update.
+	* auto-load.c (source_script_file): Update.
+	* cli/cli-cmds.h (find_and_open_script): Change type.
+	(open_script): New struct.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* xml-support.c (xml_fetch_content_from_file): Update.
+	* ui-file.c (stdio_file::open): Update.
+	* tracefile-tfile.c (tfile_start): Update.
+	* remote.c (remote_file_put, remote_file_get): Update.
+	* nat/linux-procfs.c (linux_proc_get_int)
+	(linux_proc_pid_get_state, linux_proc_tid_get_name): Update.
+	* nat/linux-osdata.c (linux_common_core_of_thread): Update.
+	(command_from_pid, commandline_from_pid, linux_xfer_osdata_cpus)
+	(print_sockets, linux_xfer_osdata_shm, linux_xfer_osdata_sem)
+	(linux_xfer_osdata_msg, linux_xfer_osdata_modules): Update.
+	* nat/linux-btrace.c (linux_determine_kernel_start): Update.
+	* linux-nat.c (linux_proc_pending_signals): Update.
+	* dwarf2read.c (write_psymtabs_to_index): Use gdb_file_up.
+	(file_closer): Remove.
+	* compile/compile.c (compile_to_object): Update.
+	* common/filestuff.h (struct gdb_file_deleter): New.
+	(gdb_file_up): New typedef.
+	(gdb_fopen_cloexec): Change return type.
+	* common/filestuff.c (gdb_fopen_cloexec): Return gdb_file_up.
+	* cli/cli-dump.c (fopen_with_cleanup): Remove.
+	(dump_binary_file, restore_binary_file): Update.
+	* auto-load.c (auto_load_objfile_script_1): Update.
+
+2017-08-03  Tom Tromey  <tom@tromey.com>
+
+	* tracepoint.c (tvariables_info_1): Use ui_out_emit_table.
+	(info_static_tracepoint_markers_command): Likewise.
+	* solib.c (info_sharedlibrary_command): Use ui_out_emit_table.
+	* skip.c (skip_info): Use ui_out_emit_table.
+	* progspace.c (print_program_space): Use ui_out_emit_table.
+	* osdata.c (info_osdata): Use ui_out_emit_table.
+	* mi/mi-cmd-info.c (mi_cmd_info_ada_exceptions): Use
+	ui_out_emit_table.
+	* linux-thread-db.c (info_auto_load_libthread_db): Use
+	ui_out_emit_table.
+	* inferior.c (print_inferior): Use ui_out_emit_table.
+	* gdb_bfd.c (maintenance_info_bfds): Use ui_out_emit_table.
+	* breakpoint.c (breakpoint_1): Use ui_out_emit_table.
+	* auto-load.c (auto_load_info_scripts): Use ui_out_emit_table.
+	* ada-tasks.c (print_ada_task_info): Use ui_out_emit_table.
+	* ui-out.h (class ui_out_emit_table): New.
+
+2017-08-02  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* mips-tdep.c (mips_fpu_type_str): New function.
+	(mips_dump_tdep): Call it.
+
+2017-08-01  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* mips-tdep.c (mips_gdbarch_init): Use MIPS_FPU_TYPE to access
+	`->mips_fpu_type'.
+
+2017-07-31  Xavier Roirand  <roirand@adacore.com>
+
+	* solib-darwin.c (DYLD_VERSION_MAX): Increase value.
+
+2017-07-27  Xavier Roirand  <roirand@adacore.com>
+
+	* MAINTAINERS (Write After Approval): Add Xavier Roirand.
+
+2017-07-26  Yao Qi  <yao.qi@linaro.org>
+
+	* cli/cli-cmds.c (maintenancechecklist): New variable.
+	* gdbcmd.h (maintenancechecklist): Declare it.
+	* i386-linux-tdep.c (_initialize_i386_linux_tdep) [GDB_SELF_TEST]:
+	Call i386_linux_read_description with different masks.
+	* maint.c (maintenance_check_command): New function.
+	(_initialize_maint_cmds): Call add_prefix_cmd.
+	* target-descriptions.c (tdesc_reg): override operator != and ==.
+	(tdesc_type): Likewise.
+	(tdesc_feature): Likewise.
+	(target_desc): Likewise.
+	[GDB_SELF_TEST] (selftests::record_xml_tdesc): New function.
+	(maintenance_check_xml_descriptions): New function.
+	(_initialize_target_descriptions) Add command "xml-descriptions".
+	* target-descriptions.h (selftests::record_xml_tdesc): Declare.
+
+2017-07-26  Yao Qi  <yao.qi@linaro.org>
+
+	* i386-linux-tdep.c: Don't include features/i386/i386-*linux.c.
+	Include features/i386/32bit-*.c.
+	(i386_linux_read_description): Generate target description if it
+	doesn't exist.
+	(_initialize_i386_linux_tdep): Don't call _initialize_tdesc_i386
+	functions.
+	* features/i386/32bit-linux.c: Re-generated.
+	* features/i386/32bit-sse.c: Likewise.
+	* target-descriptions.c (print_c_feature::visit): Print code to
+	set register number if needed.
+	(print_c_feature) <m_next_regnum>: New field.
+
+2017-07-26  Yao Qi  <yao.qi@linaro.org>
+
+	* features/Makefile (CFILES): Rename with TDESC_CFILES.
+	(FEATURE_XMLFILES): New.
+	(FEATURE_CFILES): New.
+	New rules.
+	(clean-cfiles): Remove generated c files.
+	* features/i386/32bit-avx.c: Generated.
+ 	* features/i386/32bit-avx512.c: Generated.
+ 	* features/i386/32bit-core.c: Generated.
+ 	* features/i386/32bit-linux.c: Generated.
+ 	* features/i386/32bit-mpx.c: Generated.
+ 	* features/i386/32bit-pkeys.c: Generated.
+ 	* features/i386/32bit-sse.c: Generated.
+ 	* target-descriptions.c: Include algorithm.
+	(tdesc_element_visitor): Add method visit_end.
+	(print_c_tdesc): Implement visit_end.
+	(print_c_tdesc:: m_filename_after_features): Move it to
+	protected.
+	(print_c_feature): New class.
+	(maint_print_c_tdesc_cmd): Use print_c_feature if XML file
+	name starts with "i386/32bit-".
+
+2017-07-26  Yao Qi  <yao.qi@linaro.org>
+
+	* target-descriptions.c (tdesc_element_visitor): New class.
+	(tdesc_element): New class.
+	(tdesc_reg): Inherit from tdesc_element.
+	(tdesc_reg::accept): New function.
+	(tdesc_type): Inherit from tdesc_element.
+	(tdesc_type::accept): New function.
+	(tdesc_feature): Inherit from tdesc_element.
+	(tdesc_feature::accept): New function.
+	(target_desc): Inherit from tdesc_element.
+	(target_desc::target_desc): New.
+	(target_desc::~target_desc): New.
+	(target_desc::accept): New.
+	(allocate_target_description): Use new.
+	(free_target_description): Use delete.
+	(print_c_tdesc): New class.
+	(maint_print_c_tdesc_cmd): Adjust.
+
+	* features/aarch64.c: Re-generated.
+	* features/arc-arcompact.c: Re-generated.
+	* features/arc-v2.c: Re-generated.
+	* features/arm/arm-with-iwmmxt.c: Re-generated.
+	* features/arm/arm-with-m.c: Re-generated.
+	* features/arm/arm-with-m-fpa-layout.c: Re-generated.
+	* features/arm/arm-with-m-vfp-d16.c: Re-generated.
+	* features/arm/arm-with-neon.c: Re-generated.
+	* features/arm/arm-with-vfpv2.c: Re-generated.
+	* features/arm/arm-with-vfpv3.c: Re-generated.
+	* features/i386/amd64-avx-avx512.c: Re-generated.
+	* features/i386/amd64-avx-avx512-linux.c: Re-generated.
+	* features/i386/amd64-avx.c: Re-generated.
+	* features/i386/amd64-avx-linux.c: Re-generated.
+	* features/i386/amd64-avx-mpx-avx512-pku.c: Re-generated.
+	* features/i386/amd64-avx-mpx-avx512-pku-linux.c: Re-generated.
+	* features/i386/amd64-avx-mpx.c: Re-generated.
+	* features/i386/amd64-avx-mpx-linux.c: Re-generated.
+	* features/i386/amd64.c: Re-generated.
+	* features/i386/amd64-linux.c: Re-generated.
+	* features/i386/amd64-mpx.c: Re-generated.
+	* features/i386/amd64-mpx-linux.c: Re-generated.
+	* features/i386/i386-avx-avx512.c: Re-generated.
+	* features/i386/i386-avx-avx512-linux.c: Re-generated.
+	* features/i386/i386-avx.c: Re-generated.
+	* features/i386/i386-avx-linux.c: Re-generated.
+	* features/i386/i386-avx-mpx-avx512-pku.c: Re-generated.
+	* features/i386/i386-avx-mpx-avx512-pku-linux.c: Re-generated.
+	* features/i386/i386-avx-mpx.c: Re-generated.
+	* features/i386/i386-avx-mpx-linux.c: Re-generated.
+	* features/i386/i386.c: Re-generated.
+	* features/i386/i386-linux.c: Re-generated.
+	* features/i386/i386-mmx.c: Re-generated.
+	* features/i386/i386-mmx-linux.c: Re-generated.
+	* features/i386/i386-mpx.c: Re-generated.
+	* features/i386/i386-mpx-linux.c: Re-generated.
+	* features/i386/x32-avx-avx512.c: Re-generated.
+	* features/i386/x32-avx-avx512-linux.c: Re-generated.
+	* features/i386/x32-avx.c: Re-generated.
+	* features/i386/x32-avx-linux.c: Re-generated.
+	* features/i386/x32.c: Re-generated.
+	* features/i386/x32-linux.c: Re-generated.
+	* features/microblaze.c: Re-generated.
+	* features/microblaze-with-stack-protect.c: Re-generated.
+	* features/mips64-dsp-linux.c: Re-generated.
+	* features/mips64-linux.c: Re-generated.
+	* features/mips-dsp-linux.c: Re-generated.
+	* features/mips-linux.c: Re-generated.
+	* features/nds32.c: Re-generated.
+	* features/nios2.c: Re-generated.
+	* features/nios2-linux.c: Re-generated.
+	* features/rs6000/powerpc-32.c: Re-generated.
+	* features/rs6000/powerpc-32l.c: Re-generated.
+	* features/rs6000/powerpc-403.c: Re-generated.
+	* features/rs6000/powerpc-403gc.c : Re-generated.
+	* features/rs6000/powerpc-405.c: Re-generated.
+	* features/rs6000/powerpc-505.c: Re-generated.
+	* features/rs6000/powerpc-601.c: Re-generated.
+	* features/rs6000/powerpc-602.c: Re-generated.
+	* features/rs6000/powerpc-603.c: Re-generated.
+	* features/rs6000/powerpc-604.c: Re-generated.
+	* features/rs6000/powerpc-64.c: Re-generated.
+	* features/rs6000/powerpc-64l.c: Re-generated.
+	* features/rs6000/powerpc-7400.c: Re-generated.
+	* features/rs6000/powerpc-750.c: Re-generated.
+	* features/rs6000/powerpc-860.c: Re-generated.
+	* features/rs6000/powerpc-altivec32.c: Re-generated.
+	* features/rs6000/powerpc-altivec32l.c: Re-generated.
+	* features/rs6000/powerpc-altivec64.c: Re-generated.
+	* features/rs6000/powerpc-altivec64l.c: Re-generated.
+	* features/rs6000/powerpc-cell32l.c: Re-generated.
+	* features/rs6000/powerpc-cell64l.c: Re-generated.
+	* features/rs6000/powerpc-e500.c: Re-generated.
+	* features/rs6000/powerpc-e500l.c: Re-generated.
+	* features/rs6000/powerpc-isa205-32l.c: Re-generated.
+	* features/rs6000/powerpc-isa205-64l.c: Re-generated.
+	* features/rs6000/powerpc-isa205-altivec32l.c: Re-generated.
+	* features/rs6000/powerpc-isa205-altivec64l.c: Re-generated.
+	* features/rs6000/powerpc-isa205-vsx32l.c: Re-generated.
+	* features/rs6000/powerpc-isa205-vsx64l.c: Re-generated.
+	* features/rs6000/powerpc-vsx32.c: Re-generated.
+	* features/rs6000/powerpc-vsx32l.c: Re-generated.
+	* features/rs6000/powerpc-vsx64.c: Re-generated.
+	* features/rs6000/powerpc-vsx64l.c: Re-generated.
+	* features/rs6000/rs6000.c: Re-generated.
+	* features/s390-linux32.c: Re-generated.
+	* features/s390-linux32v1.c: Re-generated.
+	* features/s390-linux32v2.c: Re-generated.
+	* features/s390-linux64.c: Re-generated.
+	* features/s390-linux64v1.c: Re-generated.
+	* features/s390-linux64v2.c: Re-generated.
+	* features/s390-te-linux64.c: Re-generated.
+	* features/s390-tevx-linux64.c: Re-generated.
+	* features/s390-vx-linux64.c: Re-generated.
+	* features/s390x-linux64.c: Re-generated.
+	* features/s390x-linux64v1.c: Re-generated.
+	* features/s390x-linux64v2.c: Re-generated.
+	* features/s390x-te-linux64.c: Re-generated.
+	* features/s390x-tevx-linux64.c: Re-generated.
+	* features/s390x-vx-linux64.c: Re-generated.
+	* features/sparc/sparc32-solaris.c: Re-generated.
+	* features/sparc/sparc64-solaris.c: Re-generated.
+	* features/tic6x-c62x.c: Re-generated.
+	* features/tic6x-c62x-linux.c: Re-generated.
+	* features/tic6x-c64x.c: Re-generated.
+	* features/tic6x-c64x-linux.c: Re-generated.
+	* features/tic6x-c64xp.c: Re-generated.
+	* features/tic6x-c64xp-linux.c: Re-generated.
+
+2017-07-26  Yao Qi  <yao.qi@linaro.org>
+
+	* i386-linux-tdep.c (i386_linux_read_description): New function.
+	(i386_linux_core_read_description): Call
+	i386_linux_read_description.
+	* i386-linux-tdep.h (i386_linux_read_description): Declare.
+	(tdesc_i386_linux, tdesc_i386_mmx_linux): Remove declarations.
+	(tdesc_i386_avx_linux, tdesc_i386_mpx_linux): Likewise
+	(tdesc_i386_avx_mpx_linux, tdesc_i386_avx_avx512_linux): Likewise.
+	(tdesc_i386_avx_mpx_avx512_pku_linux): Likewise.
+	* x86-linux-nat.c (x86_linux_read_description): Call
+	i386_linux_read_description.
+
+2017-07-26  Yao Qi  <yao.qi@linaro.org>
+
+	* NEWS: Mention it.
+	* features/Makefile (%.c: %.xml): Pass the xml file name to
+	command "maint print c-tdesc".
+	* target-descriptions.c (maint_print_c_tdesc_cmd): Get file
+	name from 'arg'.
+
+2017-07-26  Yao Qi  <yao.qi@linaro.org>
+
+	* target-descriptions.c (target_desc): Add ctor and dtor.  Do
+	in-class initialization.
+	(tdesc_create_feature): Call new instead of XCNEW.
+	(free_target_description): Ue delete.
+
+2017-07-25  John Baldwin  <jhb@FreeBSD.org>
+
+	* configure.nat: Add "-lkvm" for NetBSD/sparc64 and fix typo.
+
+2017-07-25  Yao Qi  <yao.qi@linaro.org>
+
+	* amd64-tdep.c (amd64_init_abi): Make argument default_tdesc
+	constant.
+	(amd64_x32_init_abi): Likewise.
+	* amd64-tdep.h (amd64_init_abi): Update declaration.
+	(amd64_x32_init_abi): Likewise.
+
+2017-07-25  Yao Qi  <yao.qi@linaro.org>
+
+	PR tdep/21717
+	* arm-linux-nat.c (arm_linux_fetch_inferior_registers): Update
+	condition for FPSCR.
+	(arm_linux_store_inferior_registers): Likewise.
+
+2017-07-22  Tom Tromey  <tom@tromey.com>
+
+	* break-catch-syscall.c (struct catch_syscall_inferior_data)
+	<syscalls_counts>: Now a std::vector.
+	(get_catch_syscall_inferior_data): Use "new".
+	(catch_syscall_inferior_data_cleanup): Use "delete".
+	(insert_catch_syscall, remove_catch_syscall)
+	(clear_syscall_counts): Update.
+
+2017-07-22  Tom Tromey  <tom@tromey.com>
+
+	* break-catch-syscall.c (syscall_catchpoint)
+	<syscalls_to_be_caught>: Now a std::vector<int>
+	(~syscall_catchpoint): Remove.
+	(insert_catch_syscall, remove_catch_syscall)
+	(breakpoint_hit_catch_syscall, print_one_catch_syscall)
+	(print_mention_catch_syscall, print_recreate_catch_syscall):
+	Update.
+	(create_syscall_event_catchpoint): Change type of "filter"
+	parameter.
+	(catch_syscall_split_args): Return a std::vector.
+	(catch_syscall_command_1, catching_syscall_number_1): Update.
+
+2017-07-22  Tom Tromey  <tom@tromey.com>
+
+	* break-catch-throw.c (struct exception_catchpoint)
+	<exception_rx>: Now a std::string.
+	(~exception_catchpoint): Remove.
+	(print_one_detail_exception_catchpoint): Update.
+	(handle_gnu_v3_exceptions): Change type of except_rx.
+	(extract_exception_regexp): Return a std::string.
+	(catch_exception_command_1): Update.
+
+2017-07-22  Tom Tromey  <tom@tromey.com>
+
+	* break-catch-sig.c (gdb_signal_type): Remove typedef.
+	(struct signal_catchpoint) <signals_to_be_caught>: Now a
+	std::vector.
+	<catch_all>: Now a bool.
+	(~signal_catchpoint): Remove.
+	(signal_catchpoint_insert_location)
+	(signal_catchpoint_remove_location)
+	(signal_catchpoint_breakpoint_hit, signal_catchpoint_print_one)
+	(signal_catchpoint_print_mention)
+	(signal_catchpoint_print_recreate)
+	(signal_catchpoint_explains_signal): Update.
+	(create_signal_catchpoint): Change type of "filter" and
+	"catch_all".
+	(catch_signal_split_args): Return a std::vector.  Change type of
+	"catch_all".
+	(catch_signal_command): Update.
+
+2017-07-20  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (ada_language_defn): Make extern.
+	(_initialize_ada_language): Remove add_language call.
+	* c-lang.c (c_language_defn, cplus_language_defn)
+	(asm_language_defn, minimal_language_defn): Make extern.
+	(_initialize_c_language): Delete.
+	* completer.c (compare_cstrings): Delete, moved to utils.h.
+	* d-lang.c (d_language_defn): Make extern.
+	(_initialize_d_language): Remove add_language calls.
+	* defs.h (enum language): Add comment.
+	* f-lang.c (f_language_defn): Make extern.
+	(_initialize_f_language): Remove add_language call.
+	* go-lang.c (go_language_defn): Make extern.
+	(_initialize_go_language): Remove add_language call.
+	* language.c: Include <algorithm>.
+	(languages): Redefine as const array.
+	(languages_size, languages_allocsize, DEFAULT_ALLOCSIZE): Delete.
+	(set_language_command): Handle "local".  Use for-range loop.
+	(set_language): Remove loop.
+	(language_enum): Rewrite.
+	(language_def, language_str): Remove loops.
+	(add_language): Delete.
+	(add_set_language_command): New, based on add_languages.
+	(skip_language_trampoline): Adjust.
+	(local_language_defn): Delete.
+	(language_gdbarch_post_init): Adjust.
+	(_initialize_language): Remove add_language calls.  Call
+	add_set_language_command.
+	* language.h (add_language): Delete.
+	(auto_language_defn)
+	(unknown_language_defn, minimal_language_defn, ada_language_defn)
+	(asm_language_defn, c_language_defn, cplus_language_defn)
+	(d_language_defn, f_language_defn, go_language_defn)
+	(m2_language_defn, objc_language_defn, opencl_language_defn)
+	(pascal_language_defn, rust_language_defn): Declare.
+	* m2-lang.c (m2_language_defn): Make extern.
+	(_initialize_m2_language): Remove add_language call.
+	* objc-lang.c (objc_language_defn): Make extern.
+	(_initialize_objc_language): Remove add_language call.
+	* opencl-lang.c (opencl_language_defn): Make extern.
+	(_initialize_opencl_language): Remove add_language call.
+	* p-lang.c (pascal_language_defn): Make extern.
+	(_initialize_pascal_language): Delete.
+	* rust-lang.c (rust_language_defn): Make extern.
+	(_initialize_rust_language): Delete.
+	* utils.h (compare_cstrings): New static inline function.
+
+2017-07-20  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (ada_to_fixed_type_1): Adjust.
+	(get_var_value): Constify parameters.
+	(get_int_var_value): Change prototype.
+	(to_fixed_range_type): Adjust.
+	* ada-lang.h (get_int_var_value): Change prototype.
+
+2017-07-20  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (dw2_lookup_symbol): Use
+	SYMBOL_MATCHES_SEARCH_NAME.
+	* psymtab.c (psym_lookup_symbol): Use SYMBOL_MATCHES_SEARCH_NAME.
+
+2017-07-20  Pedro Alves  <palves@redhat.com>
+
+	* block.c (block_iter_name_step, block_iter_name_first)
+	(block_iter_name_next): Delete.
+	(block_lookup_symbol_primary): Adjust to use
+	dict_iter_match_first/dict_iter_match_next.
+	* block.h (block_iter_name_first, block_iter_name_next): Delete
+	declarations.
+	(ALL_BLOCK_SYMBOLS_WITH_NAME): Adjust to use
+	dict_iter_match_first/dict_iter_match_next.
+
+2017-07-20  Pedro Alves  <palves@redhat.com>
+
+	* cp-support.c (cp_find_first_component_aux): Add missing case for
+	end of string.
+
+2017-07-18  David Blaikie  <dblaikie@gmail.com>
+
+	* dwarf2read.c (create_cus_hash_table): Re-add lost initialization
+	of dwo_cu's dwo_file.
+
+2017-07-18  Yao Qi  <yao.qi@linaro.org>
+
+	* remote.c (store_registers_using_G): Remove one line comment.
+
+2017-07-18  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c (regcache_cpy): Simplify it.
+	(regcache::cpy_no_passthrough): Remove it.
+	* regcache.h (cpy_no_passthrough): Remove it.
+	(regcache_dup, regcache_cpy): Update comments.
+
+2017-07-18  Pedro Alves  <palves@redhat.com>
+
+	* remote-sim.c (sim_command_completer): Adjust to work with a
+	completion_tracker instead of a VEC.
+
+2017-07-17  Pedro Alves  <palves@redhat.com>
+
+	* completer.c (complete_source_filenames): New function.
+	(complete_address_and_linespec_locations): New function.
+	(location_completer): Use complete_address_and_linespec_locations.
+	(completion_tracker::build_completion_result): Honor the tracker's
+	request to suppress append.
+	* completer.h (completion_tracker::suppress_append_ws)
+	(completion_tracker::set_suppress_append_ws): New methods.
+	(completion_tracker::m_suppress_append_ws): New field.
+	(complete_source_filenames): New declaration.
+	* linespec.c (linespec_complete_what): New.
+	(struct ls_parser) <complete_what, completion_word,
+	completion_quote_char, completion_quote_end, completion_tracker>:
+	New fields.
+	(string_find_incomplete_keyword_at_end): New.
+	(linespec_lexer_lex_string): Record quote char.  If in completion
+	mode, don't throw.
+	(linespec_lexer_consume_token): Advance the completion word point.
+	(linespec_lexer_peek_token): Save/restore completion info.
+	(save_stream_and_consume_token): New.
+	(set_completion_after_number): New.
+	(linespec_parse_basic): Set what to complete next depending on
+	token.  Handle function and label completions specially.
+	(parse_linespec): Disable objc shortcut in completion mode.  Set
+	what to complete next depending on token type.  Skip keyword if in
+	completion mode.
+	(complete_linespec_component, linespec_complete): New.
+	* linespec.h (linespec_complete): Declare.
+
+2017-07-17  Pedro Alves  <palves@redhat.com>
+
+	* linespec.c (linespec_lexer_lex_string, find_toplevel_char):
+	Handle 'operator<' / 'operator<<'.
+
+2017-07-17  Pedro Alves  <palves@redhat.com>
+
+	* completer.c (collect_explicit_location_matches): Handle
+	MATCH_LABEL.
+	(convert_explicit_location_to_linespec): New, factored out from
+	...
+	(convert_explicit_location_to_sals): ... this.
+	(complete_label): New.
+	(linespec_complete_label, find_label_symbols_in_block): New.
+	(find_label_symbols): Add completion_mode parameter and adjust to
+	call find_label_symbols_in_block.
+	* linespec.h (linespec_complete_label): Declare.
+
+2017-07-17  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (ada_collect_symbol_completion_matches): Add
+	complete_symbol_mode parameter.
+	* cli/cli-cmds.c (complete_command): Get the completion result out
+	of the handle_brkchars tracker if used a custom word point.
+	* completer.c: Include "linespec.h".
+	(enum explicit_location_match_type) <MATCH_LINE>: New enumerator.
+	(advance_to_expression_complete_word_point): New.
+	(completion_tracker::completes_to_completion_word): New.
+	(complete_files_symbols): Pass down
+	complete_symbol_mode::EXPRESSION.
+	(explicit_options, probe_options): New.
+	(collect_explicit_location_matches): Complete on the
+	explictit_loc->foo instead of word.  Use
+	linespec_complete_function.  Handle MATCH_LINE.  Handle offering
+	keyword and options completions.
+	(backup_text_ptr): Delete.
+	(skip_keyword): New.
+	(complete_explicit_location): Remove 'word' parameter.  Add
+	language, quoted_arg_start and quoted_arg_end parameters.
+	Rewrite, parsing left to right.
+	(location_completer): Rewrite.
+	(location_completer_handle_brkchars): New function.
+	(symbol_completer): Pass down complete_symbol_mode::EXPRESSION.
+	(enum complete_line_internal_reason): Adjust comments.
+	(completion_tracker::discard_completions): New.
+	(completer_handle_brkchars_func_for_completer): Handle
+	location_completer.
+	(gdb_custom_word_point_brkchars)
+	(gdb_org_rl_basic_quote_characters): New.
+	(gdb_completion_word_break_characters_throw)
+	(completion_find_completion_word): Handle trackers that use a
+	custom word point.
+	(completion_tracker::advance_custom_word_point_by): New.
+	(completion_tracker::build_completion_result): Don't rely on
+	readline appending the quote char.
+	(gdb_rl_attempted_completion_function_throw): Handle trackers that
+	use a custom word point.
+	(gdb_rl_attempted_completion_function): Restore
+	rl_basic_quote_characters.
+	* completer.h (class completion_tracker): Extend intro comment.
+	(completion_tracker::set_quote_char)
+	(completion_tracker::quote_char)
+	(completion_tracker::set_use_custom_word_point)
+	(completion_tracker::use_custom_word_point)
+	(completion_tracker::custom_word_point)
+	(completion_tracker::set_custom_word_point)
+	(completion_tracker::advance_custom_word_point_by)
+	(completion_tracker::completes_to_completion_word)
+	(completion_tracker::discard_completions): New methods.
+	(completion_tracker::m_quote_char)
+	(completion_tracker::m_use_custom_word_point)
+	(completion_tracker::m_custom_word_point): New fields.
+	(advance_to_expression_complete_word_point): Declare.
+	* f-lang.c (f_collect_symbol_completion_matches): Add
+	complete_symbol_mode parameter.
+	* language.h (struct language_defn)
+	<la_collect_symbol_completion_matches>: Add complete_symbol_mode
+	parameter.
+	* linespec.c (linespec_keywords): Add NULL terminator.  Make extern.
+	(linespec_complete_function): New function.
+	(linespec_lexer_lex_keyword): Adjust.
+	* linespec.h (linespec_keywords, linespec_complete_function): New
+	declarations.
+	* location.c (find_end_quote): New function.
+	(explicit_location_lex_one): Add explicit_completion_info
+	parameter.  Save quoting info.  Don't throw if being called for
+	completion.  Don't handle Ada operators here.
+	(is_cp_operator, skip_op_false_positives, first_of)
+	(explicit_location_lex_one_function): New function.
+	(string_to_explicit_location): Replace 'dont_throw' parameter with
+	an explicit_completion_info pointer parameter.  Handle it.  Don't
+	use explicit_location_lex_one to lex function names.  Use
+	explicit_location_lex_one_function instead.
+	* location.h (struct explicit_completion_info): New.
+	(string_to_explicit_location): Replace 'dont_throw' parameter with
+	an explicit_completion_info pointer parameter.
+	* symtab.c (default_collect_symbol_completion_matches_break_on):
+	Add complete_symbol_mode parameter.  Handle LINESPEC mode.
+	(default_collect_symbol_completion_matches)
+	(collect_symbol_completion_matches): Add complete_symbol_mode
+	parameter.
+	(collect_symbol_completion_matches_type): Pass down
+	complete_symbol_mode::EXPRESSION.
+	(collect_file_symbol_completion_matches): Add complete_symbol_mode
+	parameter.  Handle LINESPEC mode.
+	* symtab.h (complete_symbol_mode): New.
+	(default_collect_symbol_completion_matches_break_on)
+	(default_collect_symbol_completion_matches)
+	(collect_symbol_completion_matches)
+	(collect_file_symbol_completion_matches): Add complete_symbol_mode
+	parameter.
+
+2017-07-17  Pedro Alves  <palves@redhat.com>
+
+	* utils.c (enum class strncmp_iw_mode): New.
+	(strcmp_iw): Rename to ...
+	(strncmp_iw_with_mode): ... this.  Add string2_len and mode
+	parameters.  Handle them.
+	(strncmp_iw): New.
+	(strcmp_iw): Reimplement as wrapper around strncmp_iw_with_mode.
+	* utils.h (strncmp_iw): Declare.
+	(strcmp_iw): Move describing comments here.
+
+2017-07-17  Pedro Alves  <palves@redhat.com>
+
+	* c-exp.y (operator_stoken): Use CP_OPERATOR_LEN and
+	CP_OPERATOR_STR.
+	* c-typeprint.c (is_type_conversion_operator): Use
+	CP_OPERATOR_STR.
+	* cp-support.c (LENGTH_OF_OPERATOR): Delete.
+	(cp_find_first_component_aux): Use CP_OPERATOR_STR and
+	CP_OPERATOR_LEN.
+	* cp-support.h (CP_OPERATOR_STR, CP_OPERATOR_LEN): New.
+	* gnu-v2-abi.c (gnuv2_is_operator_name): Use CP_OPERATOR_STR.
+	* gnu-v3-abi.c (gnuv3_is_operator_name): Use CP_OPERATOR_STR.
+	* linespec.c (linespec_lexer_lex_string): Use CP_OPERATOR_LEN and
+	CP_OPERATOR_STR.
+	* location.c: Include "cp-support.h".
+	(explicit_location_lex_one): Use CP_OPERATOR_LEN and
+	CP_OPERATOR_STR.
+	* symtab.c (operator_chars): Use CP_OPERATOR_STR and
+	CP_OPERATOR_LEN.
+
+2017-07-17  Pedro Alves  <palves@redhat.com>
+
+	* cli/cli-cmds.c (complete_command): Use a completion tracker
+	along with completion_find_completion_word for handle_brkchars
+	phase.
+	* completer.c (RL_QF_SINGLE_QUOTE, RL_QF_DOUBLE_QUOTE)
+	(RL_QF_BACKSLASH, RL_QF_OTHER_QUOTE): New.
+	(struct gdb_rl_completion_word_info): New.
+	(gdb_rl_find_completion_word): New.
+	(completion_find_completion_word): New.
+	* completer.h (completion_find_completion_word): Declare.
+
+2017-07-17  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (symbol_completion_match): Adjust comments.
+	(symbol_completion_add): Replace vector parameter with
+	completion_tracker parameter.  Use it.
+	(ada_make_symbol_completion_list): Rename to...
+	(ada_collect_symbol_completion_matches): ... this.  Add
+	completion_tracker parameter and use it.
+	(ada_language_defn): Adjust.
+	* break-catch-syscall.c (catch_syscall_completer): Adjust
+	prototype and work with completion_tracker instead of VEC.
+	* breakpoint.c (condition_completer): Adjust prototype and work
+	with completion_tracker instead of VEC.
+	* c-lang.c (c_language_defn, cplus_language_defn)
+	(asm_language_defn, minimal_language_defn): Adjust to renames.
+	* cli/cli-cmds.c (complete_command): Rework using
+	completion_tracker.  Catch exceptions when completing.
+	* cli/cli-decode.c (integer_unlimited_completer)
+	(complete_on_cmdlist, complete_on_enum): Adjust prototype and work
+	with completion_tracker instead of VEC.
+	* command.h (struct completion_tracker): Forward declare.
+	(completer_ftype, completer_handle_brkchars_ftype): Change
+	types.
+	(complete_on_cmdlist, complete_on_enum): Adjust.
+	* completer.c: Include <algorithm>.
+	(struct gdb_completer_state): New.
+	(current_completion): New global.
+	(readline_line_completion_function): Delete.
+	(noop_completer, filename_completer)
+	(filename_completer_handle_brkchars, complete_files_symbols)
+	(linespec_location_completer): Adjust to work with a
+	completion_tracker instead of a VEC.
+	(string_or_empty): New.
+	(collect_explicit_location_matches): Adjust to work with a
+	completion_tracker instead of a VEC.
+	(explicit_location_completer): Rename to ...
+	(complete_explicit_location): ... this and adjust to work with a
+	completion_tracker instead of a VEC.
+	(location_completer): Adjust to work with a completion_tracker
+	instead of a VEC.
+	(add_struct_fields): Adjust to work with a completion_list instead
+	of VEC.
+	(expression_completer): Rename to ...
+	(complete_expression): ... this and adjust to work with a
+	completion_tracker instead of a VEC.  Use complete_files_symbols.
+	(expression_completer): Reimplement on top of complete_expression.
+	(symbol_completer): Adjust to work with a completion_tracker
+	instead of a VEC.
+	(enum complete_line_internal_reason): Add describing comments.
+	(complete_line_internal_normal_command): Adjust to work with a
+	completion_tracker instead of a VEC.
+	(complete_line_internal): Rename to ...
+	(complete_line_internal_1): ... this and adjust to work with a
+	completion_tracker instead of a VEC.  Assert TEXT is NULL in the
+	handle_brkchars phase.
+	(new_completion_tracker): Delete.
+	(complete_line_internal): Reimplement as TRY/CATCH wrapper around
+	complete_line_internal_1.
+	(free_completion_tracker): Delete.
+	(INITIAL_COMPLETION_HTAB_SIZE): New.
+	(completion_tracker::completion_tracker)
+	(completion_tracker::~completion_tracker): New.
+	(maybe_add_completion): Delete.
+	(completion_tracker::maybe_add_completion)
+	(completion_tracker::add_completion)
+	(completion_tracker::add_completions): New.
+	(throw_max_completions_reached_error): Delete.
+	(complete_line): Adjust to work with a completion_tracker instead
+	of a VEC.  Don't create a completion_tracker_t or check for max
+	completions here.
+	(command_completer, command_completer_handle_brkchars)
+	(signal_completer, reg_or_group_completer_1)
+	(reg_or_group_completer, default_completer_handle_brkchars):
+	Adjust to work with a completion_tracker.
+	(gdb_completion_word_break_characters_throw): New.
+	(gdb_completion_word_break_characters): Reimplement.
+	(line_completion_function): Delete.
+	(completion_tracker::recompute_lowest_common_denominator)
+	(expand_preserving_ws)
+	(completion_tracker::build_completion_result)
+	(completion_result::completion_result)
+	(completion_result::completion_result)
+	(completion_result::~completion_result)
+	(completion_result::completion_result)
+	(completion_result::release_match_list, compare_cstrings)
+	(completion_result::sort_match_list)
+	(completion_result::reset_match_list)
+	(gdb_rl_attempted_completion_function_throw)
+	(gdb_rl_attempted_completion_function): New.
+	* completer.h (completion_list, struct completion_result)
+	(class completion_tracker): New.
+	(complete_line): Add completion_tracker parameter.
+	(readline_line_completion_function): Delete.
+	(gdb_rl_attempted_completion_function): New.
+	(noop_completer, filename_completer, expression_completer)
+	(location_completer, symbol_completer, command_completer)
+	(signal_completer, reg_or_group_completer): Update prototypes.
+	(completion_tracker_t, new_completion_tracker)
+	(make_cleanup_free_completion_tracker): Delete.
+	(enum maybe_add_completion_enum): Delete.
+	(maybe_add_completion): Delete.
+	(throw_max_completions_reached_error): Delete.
+	* corefile.c (complete_set_gnutarget): Adjust to work with a
+	completion_tracker instead of a VEC.
+	* cp-abi.c (cp_abi_completer): Adjust to work with a
+	completion_tracker instead of a VEC.
+	* d-lang.c (d_language_defn): Adjust.
+	* disasm.c (disassembler_options_completer): Adjust to work with a
+	completion_tracker instead of a VEC.
+	* f-lang.c (f_make_symbol_completion_list): Rename to ...
+	(f_collect_symbol_completion_matches): ... this.  Adjust to work
+	with a completion_tracker instead of a VEC.
+	(f_language_defn): Adjust.
+	* go-lang.c (go_language_defn): Adjust.
+	* guile/scm-cmd.c (cmdscm_add_completion, cmdscm_completer):
+	Adjust to work with a completion_tracker instead of a VEC.
+	* infrun.c (handle_completer): Likewise.
+	* interps.c (interpreter_completer): Likewise.
+	* interps.h (interpreter_completer): Likewise.
+	* language.c (unknown_language_defn, auto_language_defn)
+	(local_language_defn): Adjust.
+	* language.h (language_defn::la_make_symbol_completion_list):
+	Rename to ...
+	(language_defn::la_collect_symbol_completion_matches): ... this
+	and adjust to work with a completion_tracker instead of a VEC.
+	* m2-lang.c (m2_language_defn): Adjust.
+	* objc-lang.c (objc_language_defn): Adjust.
+	* opencl-lang.c (opencl_language_defn): Adjust.
+	* p-lang.c (pascal_language_defn): Adjust.
+	* python/py-cmd.c (cmdpy_completer_helper): Handle NULL word.
+	(cmdpy_completer_handle_brkchars, cmdpy_completer): Adjust to work
+	with a completion_tracker.
+	* rust-lang.c (rust_language_defn): Adjust.
+	* symtab.c (free_completion_list, do_free_completion_list)
+	(return_val, completion_tracker): Delete.
+	(completion_list_add_name, completion_list_add_symbol)
+	(completion_list_add_msymbol, completion_list_objc_symbol)
+	(completion_list_add_fields, add_symtab_completions): Add
+	completion_tracker parameter and use it.
+	(default_make_symbol_completion_list_break_on_1): Rename to...
+	(default_collect_symbol_completion_matches_break_on): ... this.
+	Add completion_tracker parameter and use it instead of allocating
+	a completion tracker here.
+	(default_make_symbol_completion_list_break_on): Delete old
+	implementation.
+	(default_make_symbol_completion_list): Delete.
+	(default_collect_symbol_completion_matches): New.
+	(make_symbol_completion_list): Delete.
+	(collect_symbol_completion_matches): New.
+	(make_symbol_completion_type): Rename to ...
+	(collect_symbol_completion_matches_type): ... this.  Add
+	completion_tracker parameter and use it instead of VEC.
+	(make_file_symbol_completion_list_1): Rename to...
+	(collect_file_symbol_completion_matches): ... this.  Add
+	completion_tracker parameter and use it instead of VEC.
+	(make_file_symbol_completion_list): Delete.
+	(add_filename_to_list): Use completion_list instead of a VEC.
+	(add_partial_filename_data::list): Now a completion_list.
+	(make_source_files_completion_list): Work with a completion_list
+	instead of a VEC.
+	* symtab.h: Include "completer.h".
+	(default_make_symbol_completion_list_break_on)
+	(default_make_symbol_completion_list, make_symbol_completion_list)
+	(make_symbol_completion_type, make_file_symbol_completion_list)
+	(make_source_files_completion_list): Delete.
+	(default_collect_symbol_completion_matches_break_on)
+	(default_collect_symbol_completion_matches)
+	(collect_symbol_completion_matches)
+	(collect_symbol_completion_matches_type)
+	(collect_file_symbol_completion_matches)
+	(make_source_files_completion_list): New.
+	* top.c (init_main): Don't install a rl_completion_entry_function
+	hook.  Install a rl_attempted_completion_function hook instead.
+	* tui/tui-layout.c (layout_completer): Adjust to work with a
+	completion_tracker.
+	* tui/tui-regs.c (tui_reggroup_completer):
+	* tui/tui-win.c (window_name_completer, focus_completer)
+	(winheight_completer): Adjust to work with a completion_tracker.
+	* value.c: Include "completer.h".
+	(complete_internalvar): Adjust to work with a completion_tracker.
+	* value.h (complete_internalvar): Likewise.
+
+2017-07-17  Pedro Alves  <palves@redhat.com>
+
+	* cli/cli-decode.c (set_cmd_completer_handle_brkchars): Adjust to
+	renames.
+	* cli/cli-decode.h (struct cmd_list_element) <completer>: Move
+	comments to completer_ftype's declaration.
+	<completer_handle_brkchars>: Change type to
+	completer_handle_brkchars_ftype.
+	* command.h (completer_ftype): Add describing comment and give
+	names to parameters.
+	(completer_ftype_void): Rename to ...
+	(completer_handle_brkchars_ftype) ... this.  Add describing comment.
+	(set_cmd_completer_handle_brkchars): Adjust.
+	* completer.c (filename_completer_handle_brkchars): New function.
+	(complete_line_internal_normal_command): New function, factored
+	out from ...
+	(complete_line_internal): ... here.
+	(command_completer_handle_brkchars)
+	(default_completer_handle_brkchars)
+	(completer_handle_brkchars_func_for_completer): New functions.
+	* completer.h (set_gdb_completion_word_break_characters): Delete
+	declaration.
+	(completer_handle_brkchars_func_for_completer): New declaration.
+	* python/py-cmd.c (cmdpy_completer_handle_brkchars): Adjust to use
+	completer_handle_brkchars_func_for_completer.
+
+2017-07-17  Pedro Alves  <palves@redhat.com>
+
+	* completer.c (symbol_completer): New function, based on
+	make_symbol_completion_list_fn.
+	* completer.h (symbol_completer): New declaration.
+	* guile/scm-cmd.c (cmdscm_completers): Adjust.
+	* python/py-cmd.c (completers): Adjust.
+	* symtab.c (make_symbol_completion_list_fn): Delete.
+	* symtab.h (make_symbol_completion_list_fn): Delete.
+	* cli/cli-decode.c (add_cmd): Adjust.
+
+2017-07-17  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (COMMON_OBS): Add filename-seen-cache.o.
+	* dwarf2read.c: Include "filename-seen-cache.h".
+	* dwarf2read.c (dwarf2_per_objfile) <filenames_cache>: New field.
+	(dw2_map_symbol_filenames): Build and use a filenames_seen_cache.
+	* filename-seen-cache.c: New file.
+	* filename-seen-cache.h: New file.
+	* symtab.c: Include "filename-seen-cache.h".
+	(struct filename_seen_cache, INITIAL_FILENAME_SEEN_CACHE_SIZE)
+	(create_filename_seen_cache, clear_filename_seen_cache)
+	(delete_filename_seen_cache, filename_seen): Delete, parts moved
+	to filename-seen-cache.h/filename-seen-cache.c.
+	(output_source_filename, sources_info)
+	(maybe_add_partial_symtab_filename)
+	(make_source_files_completion_list): Adjust to use
+	filename_seen_cache.
+
+2017-07-17  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (dwarf2_per_objfile): In-class initialize all
+	fields.
+	(dwarf2_per_objfile::dwarf2_per_objfile(objfile*, const
+	dwarf2_debug_sections*)): New.
+	(dwarf2_per_objfile::dwarf2_per_objfile(const
+	dwarf2_per_objfile&)): Declare as deleted.
+	(dwarf2_per_objfile::operator=): Declare as deleted.
+	(dwarf2_per_objfile::dwarf2_per_objfile)
+	(dwarf2_per_objfile::~dwarf2_per_objfile)
+	(dwarf2_per_objfile::free_cached_comp_units): New.
+	(dwarf2_has_info): dwarf2_per_objfile initialization code moved to
+	ctor.  Call dwarf2_per_objfile's ctor manually.
+	(dwarf2_locate_sections): Deleted/refactored as ...
+	(dwarf2_per_objfile::locate_sections): ... this new method.
+	(free_cached_comp_units): Defer to
+	dwarf2_per_objfile::free_cached_comp_units.
+	(dwarf2_free_objfile): Call dwarf2_per_objfile's dtor manually.
+
+2017-07-14  Tom Tromey  <tom@tromey.com>
+
+	PR rust/21764:
+	* rust-exp.y (convert_ast_to_expression): Add "want_type"
+	parameter.
+	<UNOP_SIZEOF>: Split into separate case.
+	<UNOP_VAR_VALUE>: Handle want_type.  Add error case.
+
+2017-07-14  Tom Tromey  <tom@tromey.com>
+
+	PR rust/21763:
+	* symtab.c (symbol_matches_domain): Add language_rust to special
+	case.
+	* rust-exp.y (convert_ast_to_expression) <OP_VAR_VALUE>: Don't
+	treat LOC_TYPEDEF symbols as variables.
+
+2017-07-14  Pedro Alves  <palves@redhat.com>
+
+	* symtab.c (make_file_symbol_completion_list_1): Iterate over
+	symtabs matching all symtabs with SRCFILE as file name instead of
+	only considering the first hit, with lookup_symtab.
+
+2017-07-14  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* ax-gdb.c (gen_aggregate_elt_ref): Remove operand_name and
+	operator_name parameters.
+	(gen_expr): Update function call.
+
+2017-07-14  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* dwarf2loc.h (dwarf2_compile_expr_to_ax): Remove gdbarch
+	parameter.
+	* symtab.h (struct symbol_computed_ops::tracepoint_var_ref):
+	Likewise.
+	* dwarf2loc.c (dwarf2_compile_expr_to_ax): Remove gdbarch
+	parameter, use agent_expr::gdbarch instead, update function
+	calls.
+	(locexpr_tracepoint_var_ref): Likewise.
+	(loclist_tracepoint_var_ref): Likewise.
+	* ax-gdb.c (gen_trace_static_fields): Likewise.
+	(gen_traced_pop): Likewise.
+	(gen_frame_args_address): Likewise.
+	(gen_frame_locals_address): Likewise.
+	(gen_var_ref): Likewise.
+	(gen_struct_ref_recursive): Likewise.
+	(gen_static_field): Likewise.
+	(gen_maybe_namespace_elt): Likewise.
+	(gen_expr): Likewise.
+	(gen_trace_for_var): Likewise.
+	(gen_trace_for_expr): Likewise.
+	(gen_trace_for_return_address): Likewise.
+
+2017-07-14  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* ax-gdb.c (gen_deref, gen_address_of): Remove unused ax
+	parameter.
+	(gen_struct_ref, gen_expr, gen_expr_binop_rest): Update call.
+
+2017-07-14  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* ax-gdb.c (gen_usual_unary): Remove exp parameter, get gdbarch
+	from ax, update calls.
+	(gen_usual_arithmetic): Likewise.
+	(gen_integral_promotions): Likewise.
+	(gen_bitfield_ref): Likewise.
+	(gen_primitive_field): Likewise.
+	(gen_struct_ref_recursive): Likewise.
+	(gen_struct_ref): Likewise.
+	(gen_maybe_namespace_elt): Likewise.
+	(gen_struct_elt_for_reference): Likewise.
+	(gen_namespace_elt): Likewise.
+	(gen_aggregate_elt_ref): Likewise.
+	(gen_expr): Get gdbarch from ax, update calls.
+	(gen_expr_binop_rest): Likewise.
+
+2017-07-13  Pedro Alves  <palves@redhat.com>
+
+	* amd64-darwin-tdep.c (x86_darwin_init_abi_64): Pass tdesc_amd64
+	as default tdesc.
+	* amd64-dicos-tdep.c (amd64_dicos_init_abi):
+	* amd64-fbsd-tdep.c (amd64fbsd_init_abi):
+	* amd64-linux-tdep.c (amd64_linux_init_abi): Pass
+	tdesc_amd64_linux as default tdesc.  Get final tdesc from the
+	tdep.
+	(amd64_x32_linux_init_abi): Pass tdesc_x32_linux as default tdesc.
+	Get final tdesc from the tdep.
+	* amd64-nbsd-tdep.c (amd64nbsd_init_abi): Pass tdesc_amd64 as
+	default tdesc.
+	* amd64-obsd-tdep.c (amd64obsd_init_abi): Likewise.
+	* amd64-sol2-tdep.c (amd64_sol2_init_abi): Likewise.
+	* amd64-tdep.c (amd64_init_abi): Add 'default_tdesc' parameter.
+	Use it as default tdesc.
+	(amd64_x32_init_abi): Add 'default_tdesc' parameter, and pass it
+	down to amd_init_abi.  No longer handle fallback tdesc here.
+	* amd64-tdep.h (tdesc_x32): Declare.
+	(amd64_init_abi, amd64_x32_init_abi): Add 'default_tdesc'
+	parameter.
+	* amd64-windows-tdep.c (amd64_windows_init_abi): Pass tdesc_amd64
+	as default tdesc.
+
+2017-07-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* s390-linux-tdep.c (s390_process_record): Add support for
+	instructions new in arch12.
+
+2017-07-11  John Baldwin  <jhb@FreeBSD.org>
+
+	* amd64-bsd-nat.c (amd64bsd_fetch_inferior_registers): Use
+	PT_GETFSBASE and PT_GETGSBASE.
+	(amd64bsd_store_inferior_registers): Use PT_SETFSBASE and
+	PT_SETGSBASE.
+
+2017-07-11  John Baldwin  <jhb@FreeBSD.org>
+
+	* features/Makefile (amd64.dat, amd64-avx.dat, amd64-mpx.dat)
+	(amd64-avx-mpx.dat, amd64-avx-avx512.dat)
+	(amd64-avx-mpx-avx512-pku.dat): Add i386/64bit-segments.xml in
+	those rules.
+	* features/i386/amd64-avx-avx512.xml: Add 64bit-segments.xml.
+	* features/i386/amd64-avx-mpx-avx512-pku.xml: Add 64bit-segments.xml.
+	* features/i386/amd64-avx-mpx.xml: Add 64bit-segments.xml.
+	* features/i386/amd64-avx.xml: Add 64bit-segments.xml.
+	* features/i386/amd64-mpx.xml: Add 64bit-segments.xml.
+	* features/i386/amd64.xml: Add 64bit-segments.xml.
+	* features/i386/amd64-avx-avx512.c: Regenerated.
+	* features/i386/amd64-avx-mpx-avx512-pku.c: Regenerated.
+	* features/i386/amd64-avx-mpx.c: Regenerated.
+	* features/i386/amd64-avx.c: Regenerated.
+	* features/i386/amd64-mpx.c: Regenerated.
+	* features/i386/amd64.c: Regenerated.
+	* regformats/i386/amd64-avx-avx512.dat: Regenerated.
+	* regformats/i386/amd64-avx-mpx-avx512-pku.dat: Regenerated.
+	* regformats/i386/amd64-avx-mpx.dat: Regenerated.
+	* regformats/i386/amd64-avx.dat: Regenerated.
+	* regformats/i386/amd64-mpx.dat: Regenerated.
+	* regformats/i386/amd64.dat: Regenerated.
+
+2017-07-10  Yao Qi  <yao.qi@linaro.org>
+
+	* features/i386/amd64-avx-avx512-linux.c: Re-generated.
+	* features/i386/amd64-avx-mpx-avx512-pku-linux.c: Re-generated.
+
+2017-07-10  Anton Kolesov  <Anton.Kolesov@synopsys.com>
+
+	* gnulib/update-gnulib.sh (IMPORTED_GNULIB_MODULES): Add setenv and
+	unsetenv.
+	* gnulib/aclocal.m4: Regenerate.
+	* gnulib/config.in: Regenerate.
+	* gnulib/configure: Regenerate.
+	* gnulib/import/Makefile.am: Regenerate.
+	* gnulib/import/Makefile.in: Regenerate.
+	* gnulib/import/m4/gnulib-cache.m4: Regenerate.
+	* gnulib/import/m4/gnulib-comp.m4: Regenerate.
+	* gnulib/import/m4/environ.m4: New file.
+	* gnulib/import/m4/setenv.m4: New file.
+	* gnulib/import/setenv.c: New file.
+	* gnulib/import/unsetenv.c: New file.
+
+2017-07-09  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* compile/compile-loc2c.c (do_compile_dwarf_expr_to_c): Read
+	address when op is DW_OP_addr.
+
+2017-07-09  Tom Tromey  <tom@tromey.com>
+
+	* dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Reverse size
+	check and apply to outer type.
+
+2017-07-07  John Baldwin  <jhb@FreeBSD.org>
+
+	* fbsd-tdep.c (LWPINFO_OFFSET, LWPINFO_PL_FLAGS)
+	(LWPINFO64_PL_SIGINFO, LWPINFO32_PL_SIGINFO, PL_FLAG_SI)
+	(SIZE64_SIGINFO_T, SIZE32_SIGINFO_T, fbsd_core_xfer_siginfo): New.
+	(fbsd_init_abi): Install gdbarch "core_xfer_siginfo" method.
+
+2017-07-07  John Baldwin  <jhb@FreeBSD.org>
+
+	* fbsd-tdep.c (fbsd_core_thread_name): Use thread_section_name.
+
+2017-07-07  John Baldwin  <jhb@FreeBSD.org>
+
+	* corelow.c (get_core_siginfo): Remove.
+	(core_xfer_partial): Use the gdbarch "core_xfer_siginfo" method
+	instead of get_core_siginfo.
+	* gdbarch.sh (core_xfer_siginfo): New gdbarch callback.
+	* gdbarch.h: Re-generate.
+	* gdbarch.c: Re-generate.
+	* linux-tdep.c (linux_core_xfer_siginfo): New.
+	(linux_init_abi): Install gdbarch "core_xfer_siginfo" method.
+
+2017-07-07  John Baldwin  <jhb@FreeBSD.org>
+
+	* corelow.c (thread_section_name): Move to ...
+	* gdbcore.h (thread_section_name): ... here.
+
+2017-07-07  John Baldwin  <jhb@FreeBSD.org>
+
+	* fbsd-nat.c [PT_LWPINFO && __LP64__] (union sigval32)
+	(struct siginfo32): New.
+	[PT_LWPINFO] (fbsd_siginfo_size, fbsd_convert_siginfo): New.
+	(fbsd_xfer_partial) [PT_LWPINFO]: Handle TARGET_OBJECT_SIGNAL_INFO
+	via ptrace(PT_LWPINFO).
+
+2017-07-07  John Baldwin  <jhb@FreeBSD.org>
+
+	* fbsd-tdep.c (fbsd_gdbarch_data_handle, struct fbsd_gdbarch_data)
+	(init_fbsd_gdbarch_data, get_fbsd_gdbarch_data)
+	(fbsd_get_siginfo_type): New.
+	(fbsd_init_abi): Install gdbarch "get_siginfo_type" method.
+	(_initialize_fbsd_tdep): New.
+
+2017-07-06  David Blaikie  <dblaikie@gmail.com>
+
+	* dwarf2read.c (struct dwo_file): Use a htab of dwo_unit* (rather than
+	a singular dwo_unit*) to support multiple CUs in the same way that
+	multiple TUs are supported.
+	(create_cus_hash_table): Replace create_dwo_cu with a function for
+	parsing multiple CUs from a DWO file.
+	(open_and_init_dwo_file): Use create_cus_hash_table rather than
+	create_dwo_cu.
+	(lookup_dwo_cutu): Lookup CU in the hash table in the dwo_file with
+	htab_find, rather than comparing the signature to a singleton CU in
+	the dwo_file.
+
+2017-07-06  Pedro Alves  <palves@redhat.com>
+
+	* python/py-unwind.c (pyuw_dealloc_cache): Fix for loop condition.
+
+2017-07-04  Pedro Alves  <palves@redhat.com>
+
+	* gdbtypes.c (recursive_dump_type): Don't reference TYPE_STATIC.
+	* gdbtypes.h (TYPE_STATIC): Delete.
+	(struct fn_field) <is_public, is_abstract, is_static, is_final,
+	is_synchronized, is_native>: Delete.
+	<dummy>: Bump.
+	(TYPE_FN_FIELD_PUBLIC, TYPE_FN_FIELD_STATIC, TYPE_FN_FIELD_FINAL)
+	(TYPE_FN_FIELD_SYNCHRONIZED, TYPE_FN_FIELD_NATIVE)
+	(TYPE_FN_FIELD_ABSTRACT): Delete.
+
+2017-07-03  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* buffer.h (buffer_finish): Fix spelling mistakes.
+
+2017-07-01  Eli Zaretskii  <eliz@gnu.org>
+
+	* .dir-locals.el: Automatically switch to C-style comments in
+	versions of Emacs that support the feature.
+
+2017-06-30  Sergio Durigan Junior  <sergiodj@redhat.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	PR cli/21688
+	* cli/cli-script.c (command_name_equals_not_inline): Remove function.
+	(process_next_line): New variable 'inline_cmd'.
+	Adjust 'if' clauses for "python", "compile" and "guile" to use
+	'command_name_equals' and check for '!inline_cmd'.
+
+2017-06-30  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR cli/21688
+	* cli/cli-script.c (command_name_equals_not_inline): New function.
+	(process_next_line): Adjust 'if' clauses for "python", "compile"
+	and "guile" to use command_name_equals_not_inline.
+
+2017-06-29  Pedro Alves  <palves@redhat.com>
+
+	* completer.c (expression_completer): Call
+	linespec_location_completer instead of location_completer.
+
+2017-06-29  Pedro Alves  <palves@redhat.com>
+
+	* completer.c (expression_completer): Remove code that recomputes
+	'text' from 'word'.
+
+2017-06-29  Yao Qi  <yao.qi@linaro.org>
+
+	* regformats/regdat.sh: Generate code with
+	"ifndef IN_PROCESS_AGENT".
+
+2017-06-28  Pedro Alves  <palves@redhat.com>
+
+	* command.h: Include "common/scoped_restore.h".
+
+2017-06-28  Yao Qi  <yao.qi@linaro.org>
+
+	* mi/mi-cmd-break.c (mi_argv_to_format): Use obstack_grow_str
+	instead of obstack_grow.
+
+2017-06-28  Doug Gilmore  <Doug.Gilmore@imgtec.com>
+
+	PR gdb/21337
+	* symfile.c (reread_symbols): Call objfiles_changed just before
+	read_symbols.
+
+2017-06-27  Pedro Alves  <palves@redhat.com>
+
+	* symtab.c (COMPLETION_LIST_ADD_SYMBOL)
+	(MCOMPLETION_LIST_ADD_SYMBOL): Delete macros, replace with ...
+	(completion_list_add_symbol, completion_list_add_msymbol):
+	... these new functions.
+	(add_symtab_completions)
+	(default_make_symbol_completion_list_break_on_1): Adjust.
+
+2017-06-27  Pedro Alves  <palves@redhat.com>
+
+	* objfiles.c (get_objfile_bfd_data): Call bfd_alloc instead of
+	bfd_zalloc.  Call objfile_per_bfd_storage's ctor.
+	(free_objfile_per_bfd_storage): Call objfile_per_bfd_storage's
+	dtor.
+	* objfiles.h (objfile_per_bfd_storage): Add ctor.  Make
+	'storage_obstack' field an auto_obstack.  In-class initialize all
+	non-bitfield fields.  Make minsyms_read bool.
+	* symfile.c (read_symbols): Adjust.
+
+2017-06-27  Alan Hayward  <alan.hayward@arm.com>
+
+	* remote-sim.c (gdbsim_fetch_register): Use byte_vector.
+	(gdbsim_store_register): Likewise.
+
+2017-06-27  Pedro Alves  <palves@redhat.com>
+
+	* c-exp.y (name_obstack): Now an auto_obstack.
+	(yylex): Use auto_obstack::clear.
+	(c_parse): Use auto_obstack::clear instead of reinitializing and
+	freeing the obstack.
+	* c-lang.c (evaluate_subexp_c): Use auto_obstack.
+	* d-exp.y (name_obstack): Now an auto_obstack.
+	(yylex): Use auto_obstack::clear.
+	(d_parse): Use auto_obstack::clear instead of reinitializing and
+	freeing the obstack.
+	* dwarf2loc.c (fetch_const_value_from_synthetic_pointer): Use
+	auto_obstack.
+	* dwarf2read.c (create_addrmap_from_index)
+	(dwarf2_build_psymtabs_hard)
+	(update_enumeration_type_from_children): Likewise.
+	* gdb_obstack.h (auto_obstack): New type.
+	* go-exp.y (name_obstack): Now an auto_obstack.
+	(build_packaged_name): Use auto_obstack::clear.
+	(go_parse): Use auto_obstack::clear instead of reinitializing and
+	freeing the obstack.
+	* linux-tdep.c (linux_make_mappings_corefile_notes): Use
+	auto_obstack.
+	* printcmd.c (printf_wide_c_string, ui_printf): Use auto_obstack.
+	* rust-exp.y (work_obstack): Now an auto_obstack.
+	(rust_parse, rust_lex_tests): Use auto_obstack::clear instead of
+	reinitializing and freeing the obstack.
+	* utils.c (do_obstack_free, make_cleanup_obstack_free): Delete.
+	(host_char_to_target): Use auto_obstack.
+	* utils.h (make_cleanup_obstack_free): Delete declaration.
+	* valprint.c (generic_emit_char, generic_printstr): Use
+	auto_obstack.
+
+2017-06-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* darwin-nat.c (darwin_check_new_threads): Don't handle dummy
+	thread.
+	(darwin_init_thread_list): Don't update dummy thread.
+	(darwin_create_inferior, darwin_attach): Don't add a dummy thread.
+
+2017-06-26  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* record-full.c (netorder16): Remove.
+
+2017-06-26  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* common/diagnostics.h: Define macros for GCC.
+	(DIAGNOSTIC_IGNORE_UNUSED_FUNCTION): New macro.
+	* common/vec.h: Include diagnostics.h.
+	(DIAGNOSTIC_IGNORE_UNUSED_VEC_FUNCTION): New macro.
+	(DEF_VEC_I, DEF_VEC_P, DEF_VEC_O): Ignore -Wunused-function
+	warning.
+
+2017-06-26  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* common/diagnostics.h (DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER):
+	New macro.
+	* ada-lex.l: Ignore deprecated register warnings.
+
+2017-06-25  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* main.c (get_init_files): Replace "SYSTEM_GDBINIT +
+	datadir_len" with "&SYSTEM_GDBINIT[datadir_len]".
+
+2017-06-25  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* dtrace-probe.c (dtrace_process_dof_probe): Put semi-colon on
+	its own line.
+
+2017-06-25  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* nat/x86-dregs.c (x86_show_dr): Print registers one per line.
+
+2017-06-23  Alan Hayward  <alan.hayward@arm.com>
+
+	* xtensa-tdep.c (XTENSA_MAX_REGISTER_SIZE): Add.
+	(xtensa_register_write_masked): Use XTENSA_MAX_REGISTER_SIZE.
+	(xtensa_register_read_masked): Likewise.
+
+2017-06-22  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* common/environ.c (gdb_environ::unset): Update comment.
+
+2017-06-22  Alan Hayward  <alan.hayward@arm.com>
+
+	* python/py-unwind.c (pyuw_sniffer): Allocate space for
+	registers.
+
+2017-06-22  Alan Hayward  <alan.hayward@arm.com>
+
+	* record-full.c (record_full_exec_insn): Use byte_vector.
+
+2017-06-22  Yao Qi  <yao.qi@linaro.org>
+
+	* regformats/i386/amd64-avx-mpx-avx512-pku-linux.dat: Regenerated.
+	* regformats/i386/amd64-avx-mpx-avx512-pku.dat: Regenerated.
+
+2017-06-22  Alan Hayward  <alan.hayward@arm.com>
+
+	* remote.c (cached_reg): Move from here...
+	* regcache.h (cached_reg): ...to here.
+	* python/py-unwind.c (struct reg_info): Remove.
+	(cached_frame_info): Use cached_reg_t.
+	(pyuw_prev_register): Likewise.
+	(pyuw_sniffer): Use cached_reg_t and allocate registers.
+	(pyuw_dealloc_cache): Free all registers.
+
+2017-06-22  Pedro Alves  <palves@redhat.com>
+	    Simon Marchi  <simon.marchi@ericsson.com>
+
+	* unittests/environ-selftests.c (run_tests): Ignore -Wself-move
+	warning.
+	* common/diagnostics.h: New file.
+
+2017-06-22  Pedro Alves  <palves@redhat.com>
+
+	* common/agent.h: Add include guards.
+
+2017-06-21  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* target.h (struct target_ops) <to_xfer_partial>: Update doc to
+	talk about addressable units instead of bytes.
+
+2017-06-20  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* common/environ.c (gdb_environ::unset): Use '::iterator' instead
+	of '::const_iterator'.
+
+2017-06-20  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
+	'unittests/environ-selftests.c'.
+	(SUBDIR_UNITTESTS_OBS): Add 'environ-selftests.o'.
+	* charset.c (find_charset_names): Declare object 'iconv_env'.
+	Update code to use 'iconv_env' object.  Remove call to
+	'free_environ'.
+	* common/environ.c: Include <utility>.
+	(make_environ): Delete function.
+	(free_environ): Delete function.
+	(gdb_environ::clear): New function.
+	(gdb_environ::operator=): New function.
+	(gdb_environ::get): Likewise.
+	(environ_vector): Delete function.
+	(set_in_environ): Delete function.
+	(gdb_environ::set): New function.
+	(unset_in_environ): Delete function.
+	(gdb_environ::unset): New function.
+	(gdb_environ::envp): Likewise.
+	* common/environ.h: Include <vector>.
+	(struct gdb_environ): Delete; transform into...
+	(class gdb_environ): ... this class.
+	(free_environ): Delete prototype.
+	(init_environ, get_in_environ, set_in_environ, unset_in_environ,
+	environ_vector): Likewise.
+	* infcmd.c (run_command_1): Update code to call
+	'envp' from 'gdb_environ' class.
+	(environment_info): Update code to call methods from 'gdb_environ'
+	class.
+	(unset_environment_command): Likewise.
+	(path_info): Likewise.
+	(path_command): Likewise.
+	* inferior.c (inferior::~inferior): Delete call to 'free_environ'.
+	(inferior::inferior): Initialize 'environment' using the host's
+	information.
+	* inferior.h: Remove forward declaration of 'struct gdb_environ'.
+	Include "environ.h".
+	(class inferior) <environment>: Change type from 'struct
+	gdb_environ' to 'gdb_environ'.
+	* mi/mi-cmd-env.c (mi_cmd_env_path): Update code to call
+	methods from 'gdb_environ' class.
+	* solib.c (solib_find_1): Likewise
+	* unittests/environ-selftests.c: New file.
+
+2017-06-20  Yao Qi  <yao.qi@linaro.org>
+
+	* features/i386/i386-linux.xml: Exchange the order of including
+	32bit-linux.xml and 32bit-sse.xml.
+	* features/i386/i386-linux.c: Regenerated.
+
+2017-06-20  Yao Qi  <yao.qi@linaro.org>
+
+	* target-descriptions.c (tdesc_reg): Add ctor, dtor.
+	Delete copy ctor and assignment operator.
+	(tdesc_type): Likewise.
+	(tdesc_feature): Likewise.
+	(tdesc_free_reg): Remove.
+	(tdesc_create_reg): Use new.
+	(tdesc_free_type): Remove.
+	(tdesc_create_vector): Use new.
+	(tdesc_create_union): Likewise.
+	(tdesc_create_flags): Likewise.
+	(tdesc_create_enum): Likewise.
+	(tdesc_free_feature): Delete.
+	(free_target_description): Use delete.
+
+2017-06-19  John Baldwin  <jhb@FreeBSD.org>
+
+	* mips-tdep.c (print_gp_register_row): Don't error for unavailable
+	registers.
+
+2017-06-19  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (write_psymtabs_to_index): Construct file_closer
+	after gdb::unlinker.
+
+2017-06-19  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* mi/mi-cm-env.c (_initialize_mi_cmd_env): Use getenv instead of
+	gdb_environ to access an environment variable.
+
+2017-06-18  Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
+
+	* nat/linux-ptrace.c (linux_fork_to_function): Add cast to
+	gdb_byte*.
+
+2017-06-17  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* nat/fork-inferior.h (trace_start_error): Add ATTRIBUTE_PRINTF.
+
+2017-06-17  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* configure: Re-generate.
+	* warning.m4 (build_warnings): Add -Wno-mismatched-tags.
+
+2017-06-17  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* configure: Re-generate.
+	* warning.m4: Pass -Werror to compiler when checking for
+	supported warning flags.
+
+2017-06-17  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* Makefile.in (COMPILE.pre): Add "-x c++".
+
+2017-06-16  Alan Hayward  <alan.hayward@arm.com>
+	    Pedro Alves  <palves@redhat.com>
+	    Yao Qi  <yao.qi@linaro.org>
+
+	* defs.h (RequireLongest): New.
+	(extract_integer): Declare function template.
+	(extract_signed_integer): Remove the declaration, but define it
+	static inline.
+	(extract_unsigned_integer): Likewise.
+	(store_integer): Declare function template.
+	(store_signed_integer): Remove the declaration, but define it
+	static inline.
+	(store_unsigned_integer): Likewise.
+	* findvar.c (extract_integer): New function template.
+	(extract_signed_integer): Remove.
+	(extract_unsigned_integer): Remove.
+	(extract_integer<LONGEST>, extract_integer<ULONGEST>): Explicit
+	instantiations.
+	(store_integer): New function template.
+	(store_signed_integer): Remove.
+	(store_unsigned_integer): Remove.
+	(store_integer): Explicit instantiations.
+	* regcache.c (regcache_raw_read_signed): Update.
+	(regcache::raw_read): New function.
+	(regcache::raw_read_signed): Remove.
+	(regcache::raw_read_unsigned): Remove.
+	(regcache_raw_read_unsigned): Update.
+	(regcache_raw_write_unsigned): Update.
+	(regcache::raw_write_signed): Remove.
+	(regcache::raw_write): New function.
+	(regcache_cooked_read_signed): Update.
+	(regcache::raw_write_unsigned): Remove.
+	(regcache::cooked_read_signed): Remove.
+	(regcache_cooked_read_unsigned): Update.
+	(regcache::cooked_read_unsigned): Remove.
+	(regcache_cooked_write_signed): Update.
+	(regcache_cooked_write_unsigned): Update.
+	* regcache.h (regcache) <raw_read_signed>: Remove.
+	<raw_write_signed, raw_read_unsigned, raw_write_unsigned>: Remove.
+	<raw_read, raw_write>: New.
+	<cooked_read_signed, cooked_write_signed>: Remove.
+	<cooked_write_unsigned, cooked_read_unsigned>: Remove.
+	<cooked_read, cooked_write>: New.
+	* sh64-tdep.c (sh64_pseudo_register_read): Update.
+	(sh64_pseudo_register_write): Update.
+
+2017-06-16  Anton Kolesov  <anton.kolesov@synopsys.com>
+
+	* arc-tdep.c (arc_disassembler_options): New variable.
+	(arc_gdbarch_init): Set and use it. Use arc_delayed_print_insn instead
+	of default_print_insn.
+	(arc_delayed_print_insn): Set info->section when needed,
+	use default_print_insn to retrieve a disassembler.
+
+2017-06-14  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR gdb/21574
+	* infcmd.c (_initialize_infcmd): Expand "help run" documentation
+	to mention $SHELL and startup-with-shell.
+
+2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
+
+	* MAINTAINERS: Move Maxim Grigoriev to the Past Maintainers.
+
+2017-06-14  Yao Qi  <yao.qi@linaro.org>
+
+	* aarch64-tdep.c (aarch64_gdb_print_insn): Call
+	default_print_insn instead of print_insn_aarch64.
+	* arm-tdep.c (gdb_print_insn_arm): Call
+	default_print_insn instead of print_insn_big_arm
+	and print_insn_little_arm.
+	* i386-tdep.c (i386_print_insn): Call default_print_insn
+	instead of print_insn_i386.
+	* ia64-tdep.c (ia64_print_insn): Call
+	default_print_insn instead of print_insn_ia64.
+	* mips-tdep.c (gdb_print_insn_mips): Call
+	default_print_insn instead of print_insn_big_mips
+	and print_insn_little_mips.
+	* spu-tdep.c (gdb_print_insn_spu): Call default_print_insn
+	instead of print_insn_spu.
+
+2017-06-14  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c: Include "common/byte-vector.h".
+	(ada_value_primitive_packed_val): Use gdb::byte_vector.
+	* charset.c (wchar_iterator::iterate): Resize the vector instead
+	of reserving it.
+	* common/byte-vector.h: Include "common/def-vector.h".
+	(wchar_iterator::m_out): Now a gdb::def_vector<gdb_wchar_t>.
+	* cli/cli-dump.c: Include "common/byte-vector.h".
+	(dump_memory_to_file, restore_binary_file): Use gdb::byte_vector.
+	* common/byte-vector.h: New file.
+	* common/def-vector.h: New file.
+	* common/default-init-alloc.h: New file.
+	* dwarf2loc.c: Include "common/byte-vector.h".
+	(rw_pieced_value): Use gdb::byte_vector, and resize the vector
+	instead of reserving it.
+	* dwarf2read.c: Include "common/byte-vector.h".
+	(data_buf::m_vec): Now a gdb::byte_vector.
+	* gdb_regex.c: Include "common/def-vector.h".
+	(compiled_regex::compiled_regex): Use gdb::def_vector<char>.
+	* mi/mi-main.c: Include "common/byte-vector.h".
+	(mi_cmd_data_read_memory): Use gdb::byte_vector.
+	* printcmd.c: Include "common/byte-vector.h".
+	(print_scalar_formatted): Use gdb::byte_vector.
+	* valprint.c: Include "common/byte-vector.h".
+	(maybe_negate_by_bytes, print_decimal_chars): Use
+	gdb::byte_vector.
+
+2017-06-13  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* darwin-nat.c: Include "nat/fork-inferior.h".
+
+2017-06-13  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* configure.nat: Factor out Darwin bits that are not
+	architecture-specific.  Add fork-inferior.o.
+
+2017-06-13  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* configure.nat: Factor out AIX bits that are not
+	architecture-specific.  Add fork-inferior.o.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (rw_pieced_value): New.  Merge logic from...
+	(read_pieced_value, write_pieced_value): ...here.  Reduce to
+	wrappers that just call rw_pieced_value.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (write_pieced_value): When writing the data for a
+	memory piece, use write_memory_with_notification instead of
+	write_memory.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* valops.c (read_value_memory): Change embedded_offset to
+	represent a bit offset instead of a byte offset.
+	* value.h (read_value_memory): Adjust comment.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (read_pieced_value): Remove unnecessary variables
+	dest_offset_bits and source_offset_bits.
+	(write_pieced_value): Likewise.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (read_pieced_value): Respect the piece offset, as
+	given by DW_OP_bit_piece.
+	(write_pieced_value): Likewise.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (read_pieced_value): Move the buffer allocation and
+	some other preparations to the places where sufficient information
+	is available.
+	(write_pieced_value): Likewise.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (bits_to_bytes): New function.
+	(read_pieced_value): Fix offset calculations for register pieces
+	on big-endian targets.
+	(write_pieced_value): Likewise.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (read_pieced_value): Remove buffer_size variable.
+	(write_pieced_value): Likewise.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (write_pieced_value): When writing to a bit-field,
+	transfer the source value's least significant bits, instead of its
+	lowest-addressed ones.  Rename type_len to max_offset.
+	(read_pieced_value): Mirror above changes to write_pieced_value as
+	applicable.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (write_pieced_value): In DWARF_VALUE_MEMORY,
+	truncate full bytes from dest_offset_bits before using it as an
+	offset into the buffer.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (write_pieced_value): Include transfer size in
+	byte-wise check.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (write_pieced_value): Fix copy/paste error in the
+	calculation of this_size.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (read_pieced_value): Respect parent value's offset
+	when targeting a bit-field.
+	(write_pieced_value): Likewise.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (struct piece_closure) <addr_size>: Remove field.
+	(allocate_piece_closure): Drop addr_size parameter.
+	(dwarf2_evaluate_loc_desc_full): Adjust call to
+	allocate_piece_closure.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	PR gdb/21226
+	* dwarf2loc.c (read_pieced_value): Anchor stack value pieces at
+	the LSB end, independent of endianness.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (write_pieced_value): Fix order of calculations for
+	size capping.
+
+2017-06-13  Yao Qi  <yao.qi@linaro.org>
+
+	* mips-linux-nat.c: Move include features/mips*-linux.c to
+	mips-linux-tdep.c.
+	(_initialize_mips_linux_nat): Move initialize_tdesc_mips* calls
+	to mips-linux-tdep.c.
+	* mips-linux-tdep.c: Include features/mips*-linux.c
+	(_initialize_mips_linux_tdep): Call initialize_tdesc_mips*
+	functions.
+	* mips-linux-tdep.h (tdesc_mips_linux): Declare.
+	(tdesc_mips_dsp_linux, tdesc_mips64_linux): Declare.
+	(tdesc_mips64_dsp_linux): Declare.
+
+2017-06-12  Tom Tromey  <tom@tromey.com>
+
+	* valprint.h (val_print_type_code_int): Remove.
+	* valprint.c (generic_val_print_int): Always call
+	val_print_scalar_formatted.
+	(val_print_type_code_int): Remove.
+	* printcmd.c (print_scalar_formatted): Handle options->format==0.
+	* f-valprint.c (f_val_print): Use val_print_scalar_formatted.
+	* c-valprint.c (c_val_print_int): Use val_print_scalar_formatted.
+	* ada-valprint.c (ada_val_print_num): Use
+	val_print_scalar_formatted.
+
+2017-06-12  Tom Tromey  <tom@tromey.com>
+
+	* printcmd.c (print_scalar_formatted): Unify the two switches.
+	Don't convert scalars to LONGEST.
+
+2017-06-12  Tom Tromey  <tom@tromey.com>
+
+	PR exp/16225:
+	* valprint.h (print_decimal_chars): Update.
+	* valprint.c (maybe_negate_by_bytes): New function.
+	(print_decimal_chars): Add "is_signed" argument.
+	* printcmd.c (print_scalar_formatted): Update.
+
+2017-06-12  Tom Tromey  <tom@tromey.com>
+
+	PR exp/16225:
+	* valprint.h (print_binary_chars, print_hex_chars): Update.
+	* valprint.c (val_print_type_code_int): Update.
+	(print_binary_chars): Add "zero_pad" argument.
+	(emit_octal_digit): New function.
+	(print_octal_chars): Don't zero-pad.
+	(print_decimal_chars): Likewise.
+	(print_hex_chars): Add "zero_pad" argument.
+	* sh64-tdep.c (sh64_do_fp_register): Update.
+	* regcache.c (regcache::dump): Update.
+	* printcmd.c (print_scalar_formatted): Update.
+	* infcmd.c (default_print_one_register_info): Update.
+
+2017-06-12  Pedro Alves  <palves@redhat.com>
+	    Alan Hayward  <alan.hayward@arm.com>
+
+	* mips-tdep.c (MAX_MIPS_ABI_REGSIZE): New.
+	(mips_eabi_push_dummy_call): Rename local 'regsize' to
+	'abi_regsize'.  Rename local array 'valbuf' to 'ref_valbuf', and
+	use MAX_MIPS_ABI_REGSIZE instead of MAX_REGISTER_SIZE to size it.
+	Assert that abi_regsize bytes fit in 'ref_valbuf'.
+
+2017-06-12  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (mapped_symtab::data): Now a vector of
+	symtab_index_entry instead of vector of
+	std::unique_ptr<symtab_index_entry>.  All users adjusted to check
+	whether an element's name is NULL instead of checking whether the
+	element itself is NULL.
+	(find_slot): Change return type.  Adjust.
+	(hash_expand, , add_index_entry, uniquify_cu_indices)
+	(write_hash_table): Adjust.
+
+2017-06-12  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (recursively_count_psymbols): New function.
+	(write_psymtabs_to_index): Call it to compute number of psyms and
+	pass estimate size of psyms_seen to unordered_set's ctor.
+
+2017-06-12  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (write_hash_table): Check if key already exists
+	before emplacing.
+
+2017-06-12  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (data_buf::append_space): Rename to...
+	(data_buf::grow): ... this, and make private.  Adjust all callers.
+	(data_buf::append_uint): New method.
+	(add_address_entry, write_one_signatured_type)
+	(write_psymtabs_to_index): Use it.
+
+2017-06-12  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (file_write(FILE *, const void *, size_t)): Delete.
+	(file_write (FILE *, const std::vector<Elem>&)): Delete.
+	(data_buf::file_write): Call ::fwrite directly.
+
+2017-06-12  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (uniquify_cu_indices): Use std::unique and
+	std::vector::erase.
+
+2017-06-12  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	Code cleanup: C++ify .gdb_index producer.
+	* dwarf2read.c: Include <unordered_set> and <unordered_map>.
+	(MAYBE_SWAP) [WORDS_BIGENDIAN]: Cast to offset_type.
+	(struct strtab_entry, hash_strtab_entry, eq_strtab_entry)
+	(create_strtab, add_string): Remove.
+	(file_write, data_buf): New.
+	(struct symtab_index_entry): Use std::vector for cu_indices.
+	(struct mapped_symtab): Use std::vector for data.
+	(hash_symtab_entry, eq_symtab_entry, delete_symtab_entry)
+	(create_symbol_hash_table, create_mapped_symtab, cleanup_mapped_symtab):
+	Remove.
+	(find_slot): Change return type.  Update it to the new data structures.
+	(hash_expand, add_index_entry): Update it to the new data structures.
+	(offset_type_compare): Remove.
+	(uniquify_cu_indices): Update it to the new data structures.
+	(c_str_view, c_str_view_hasher, vector_hasher): New.
+	(add_indices_to_cpool): Remove.
+	(write_hash_table): Update it to the new data structures.
+	(struct psymtab_cu_index_map, hash_psymtab_cu_index)
+	(eq_psymtab_cu_index): Remove.
+	(psym_index_map): New typedef.
+	(struct addrmap_index_data): Change addr_obstack pointer to data_buf
+	reference and std::unordered_map for cu_index_htab.
+	(add_address_entry, add_address_entry_worker, write_address_map)
+	(write_psymbols): Update it to the new data structures.
+	(write_obstack): Remove.
+	(struct signatured_type_index_data): Change types_list to a data_buf
+	reference and psyms_seen to a std::unordered_set reference.
+	(write_one_signatured_type, recursively_write_psymbols)
+	(write_psymtabs_to_index): Update it to the new data structures.
+
+2017-06-11  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* NEWS (Changes since GDB 8.0): Announce {set,show} debug
+	separate-debug-file commands.
+	* symfile.h (separate_debug_file_debug): New global.
+	* symfile.c (separate_debug_file_debug): New global.
+	(separate_debug_file_exists, find_separate_debug_file): Add
+	debug output.
+	(_initialize_symfile): Add "set debug separate-debug-file"
+	command.
+	* build-id.c (build_id_to_debug_bfd,
+	find_separate_debug_file_by_buildid): Add debug output.
+
+2017-06-10  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* gdbarch.sh (displaced_step_free_closure): Remove.
+	* gdbarch.h, gdbarch.c: Re-generate.
+	* aarch64-linux-tdep.c (aarch64_linux_init_abi): Don't set
+	displaced_step_free_closure.
+	* amd64-linux-tdep.c (amd64_linux_init_abi_common): Likewise.
+	* arm-linux-tdep.c (arm_linux_init_abi): Likewise.
+	* i386-linux-tdep.c (i386_linux_init_abi): Likewise.
+	* rs6000-aix-tdep.c (rs6000_aix_init_osabi): Likewise.
+	* rs6000-tdep.c (rs6000_gdbarch_init): Likewise.
+	* s390-linux-tdep.c (s390_gdbarch_init): Likewise.
+	* arch-utils.h (simple_displaced_step_free_closure): Remove.
+	* arch-utils.c (simple_displaced_step_free_closure): Remove.
+	* infrun.c (displaced_step_clear): Call xfree instead of
+	gdbarch_displaced_step_free_closure.
+
+2017-06-08  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* common/common-utils.c (stringify_argv): Check for "arg[0] !=
+	NULL".
+
+2017-06-08 Alan Hayward  <alan.hayward@arm.com>
+
+	* mn10300-tdep.c (MN10300_MAX_REGISTER_SIZE): Add.
+	(mn10300_extract_return_value): Use MN10300_MAX_REGISTER_SIZE.
+	(mn10300_push_dummy_call): Likewise.
+
+2017-06-08  Alan Hayward  <alan.hayward@arm.com>
+
+	* mi/mi-main.c (register_changed_p): Use value_contents_eq.
+
+2017-06-08  Alan Hayward  <alan.hayward@arm.com>
+
+	* mi/mi-main.c (register_changed_p): Use cooked_read_value.
+
+2017-06-07  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* NEWS (Changes since GDB 8.0): Announce that GDBserver is now
+	able to start inferiors	using a shell.
+	(New remote packets): Announce new packet "QStartupWithShell".
+	* remote.c: Add PACKET_QStartupWithShell.
+	(extended_remote_create_inferior): Handle new
+	PACKET_QStartupWithShell.
+	(remote_protocol_features) <QStartupWithShell>: New entry for
+	PACKET_QStartupWithShell.
+	(_initialize_remote): Call "add_packet_config_cmd" for
+	QStartupShell.
+
+2017-06-07  Sergio Durigan Junior  <sergiodj@redhat.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (HFILES_NO_SRCDIR): Add "common/common-inferior.h"
+	and "nat/fork-inferior.h".
+	* common/common-inferior.h: New file, with contents from
+	"gdb/inferior.h".
+	* commom/common-utils.c: Include "common-utils.h".
+	(stringify_argv): New function.
+	* common/common-utils.h (stringify_argv): New prototype.
+	* configure.nat: Add "fork-inferior.o" as a dependency for
+	"*linux*", "fbsd*" and "nbsd*" hosts.
+	* corefile.c (get_exec_file): Update comment.
+	* darwin-nat.c (darwin_ptrace_him): Call "gdb_startup_inferior"
+	instead of "startup_inferior".
+	(darwin_create_inferior): Call "add_thread_silent" after
+	"fork_inferior".
+	* fork-child.c: Cleanup unnecessary includes.
+	(SHELL_FILE): Move to "common/common-fork-child.c".
+	(environ): Likewise.
+	(exec_wrapper): Initialize.
+	(get_exec_wrapper): New function.
+	(breakup_args): Move to "common/common-fork-child.c"; rename to
+	"breakup_args_for_exec".
+	(escape_bang_in_quoted_argument): Move to
+	"common/common-fork-child.c".
+	(saved_ui): New variable.
+	(prefork_hook): New function.
+	(postfork_hook): Likewise.
+	(postfork_child_hook): Likewise.
+	(gdb_startup_inferior): Likewise.
+	(fork_inferior): Move to "common/common-fork-child.c".  Update
+	function to support gdbserver.
+	(startup_inferior): Likewise.
+	* gdbcore.h (get_exec_file): Remove declaration.
+	* gnu-nat.c (gnu_create_inferior): Call "gdb_startup_inferior"
+	instead of "startup_inferior".  Call "add_thread_silent" after
+	"fork_inferior".
+	* inf-ptrace.c: Include "nat/fork-inferior.h" and "utils.h".
+	(inf_ptrace_create_inferior): Call "gdb_startup_inferior"
+	instead of "startup_inferior".  Call "add_thread_silent" after
+	"fork_inferior".
+	* inferior.h: Include "common-inferior.h".
+	(trace_start_error): Move to "common/common-utils.h".
+	(trace_start_error_with_name): Likewise.
+	(fork_inferior): Move prototype to "nat/fork-inferior.h".
+	(startup_inferior): Likewise.
+	(gdb_startup_inferior): New prototype.
+	* nat/fork-inferior.c: New file, with contents from "fork-child.c".
+	* nat/fork-inferior.h: New file.
+	* procfs.c (procfs_init_inferior): Call "gdb_startup_inferior"
+	instead of "startup_inferior".  Call "add_thread_silent" after
+	"fork_inferior".
+	* target.h (target_terminal_init): Move prototype to
+	"target/target.h".
+	(target_terminal_inferior): Likewise.
+	(target_terminal_ours): Likewise.
+	* target/target.h (target_terminal_init): New prototype, moved
+	from "target.h".
+	(target_terminal_inferior): Likewise.
+	(target_terminal_ours): Likewise.
+	* utils.c (gdb_flush_out_err): New function.
+
+2017-06-07  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile.in (HFILES_NO_SRCDIR): Add "common/common-gdbthread.h".
+	* common/common-gdbthread.h: New file, with parts from
+	"gdb/gdbthread.h".
+	* gdbthread.h: Include "common-gdbthread.h".
+	(switch_to_thread): Moved to "common/common-gdbthread.h".
+
+2017-06-07  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile.in (SFILES): Add "common/job-control.c".
+	(HFILES_NO_SRCDIR): Add "common/job-control.h".
+	(COMMON_OBS): Add "job-control.o".
+	* common/job-control.c: New file, with contents from
+	"gdb/inflow.c".
+	* common/job-control.h: New file, with contents from "terminal.h".
+	* fork-child.c: Include "job-control.h".
+	* inflow.c: Include "job-control.h".
+	(gdb_setpgid): Move to "common/common-inflow.c".
+	(_initialize_inflow): Move setting of "job_control" to
+	"handle_job_control".
+	* terminal.h (job_control): Moved to "common/common-terminal.h".
+	(gdb_setpgid): Likewise.
+	* top.c: Include "job_control.h".
+	* utils.c: Likewise.
+	(job_control): Moved to "job-control.c".
+
+2017-06-07  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (SFILES): Add gdb_regex.c.
+	(COMMON_OBS): Add gdb_regex.o.
+	* ada-lang.c (ada_add_standard_exceptions)
+	(ada_add_exceptions_from_frame, name_matches_regex)
+	(ada_add_global_exceptions, ada_exceptions_list_1): Change regex
+	parameter type to compiled_regex.  Adjust.
+	(ada_exceptions_list): Use compiled_regex.
+	* break-catch-throw.c (exception_catchpoint::pattern): Now a
+	std::unique_ptr<compiled_regex>.
+	(exception_catchpoint::~exception_catchpoint): Remove regfree
+	call.
+	(check_status_exception_catchpoint): Adjust to use compiled_regex.
+	(handle_gnu_v3_exceptions): Adjust to use compiled_regex.
+	* breakpoint.c (solib_catchpoint::compiled): Now a
+	std::unique_ptr<compiled_regex>.
+	(solib_catchpoint::~solib_catchpoint): Remove regfree call.
+	(check_status_catch_solib): Adjust to use compiled_regex.
+	(add_solib_catchpoint): Adjust to use compiled_regex.
+	* cli/cli-cmds.c (apropos_command): Use compiled_regex.
+	* cli/cli-decode.c (apropos_cmd): Change regex parameter to
+	compiled_regex reference.  Adjust to use it.
+	* cli/cli-decode.h: Remove struct re_pattern_buffer forward
+	declaration.  Include "gdb_regex.h".
+	(apropos_cmd): Change regex parameter to compiled_regex reference.
+	* gdb_regex.c: New file.
+	* gdb_regex.h (make_regfree_cleanup, get_regcomp_error): Delete
+	declarations.
+	(class compiled_regex): New.
+	* linux-tdep.c: Include "common/gdb_optional.h".
+	(struct mapping_regexes): New, factored out from
+	mapping_is_anonymous_p, and adjusted to use compiled_regex.
+	(mapping_is_anonymous_p): Use mapping_regexes wrapped in a
+	gdb::optional and remove cleanups.  Adjust to compiled_regex.
+	* probe.c: Include "common/gdb_optional.h".
+	(collect_probes): Use compiled_regex and gdb::optional and remove
+	cleanups.
+	* skip.c: Include "common/gdb_optional.h".
+	(skiplist_entry::compiled_function_regexp): Now a
+	gdb::optional<compiled_regex>.
+	(skiplist_entry::compiled_function_regexp_is_valid): Delete field.
+	(free_skiplist_entry): Remove regfree call.
+	(compile_skip_regexp, skip_rfunction_p): Adjust to use
+	compiled_regex and gdb::optional.
+	* symtab.c: Include "common/gdb_optional.h".
+	(search_symbols): Use compiled_regex and gdb::optional.
+	* utils.c (do_regfree_cleanup, make_regfree_cleanup)
+	(get_regcomp_error, compile_rx_or_error): Delete.  Some bits moved
+	to gdb_regex.c.
+
+2017-06-07  Alan Hayward  <alan.hayward@arm.com>
+
+	* regcache.c (regcache::save): Avoid buffer use.
+	(regcache::dump): Likewise.
+
+2017-06-07  Alan Hayward  <alan.hayward@arm.com>
+
+	* sh-tdep.c (sh_pseudo_register_read): Remove
+	MAX_REGISTER_SIZE.
+	(sh_pseudo_register_write): Likewise.
+	* sh64-tdep.c (sh64_pseudo_register_read): Likewise.
+	(sh64_pseudo_register_write): Likewise
+
+2017-06-07  Alan Hayward  <alan.hayward@arm.com>
+
+	* aarch64-tdep.c (aarch64_store_return_value): Use
+	V_REGISTER_SIZE.
+	(aarch64_pseudo_read_value): Likewise.
+	(aarch64_pseudo_write): Likewise.
+
+2017-06-06  Yao Qi  <yao.qi@linaro.org>
+
+	* regformats/regdef.h (set_register_cache): Remove the
+	declaration.
+
+2017-06-06 Alan Hayward  <alan.hayward@arm.com>
+
+	* frame.c (frame_unwind_register_signed): Use
+	frame_unwind_register_value.
+
+2017-06-06  Pedro Alves  <palves@redhat.com>
+
+	PR breakpoints/21553
+	* breakpoint.c (create_breakpoints_sal_default)
+	(init_breakpoint_sal, create_breakpoint_sal): Use
+	gdb::unique_xmalloc_ptr for string parameters.
+	(create_breakpoint): Constify 'extra_string' and 'cond_string'
+	parameters.  Replace cleanups with gdb::unique_xmalloc_ptr.
+	(base_breakpoint_create_breakpoints_sal)
+	(bkpt_create_breakpoints_sal, tracepoint_create_breakpoints_sal)
+	(strace_marker_create_breakpoints_sal)
+	(create_breakpoints_sal_default): Use gdb::unique_xmalloc_ptr for
+	string parameters.
+	* breakpoint.h (breakpoint_ops::create_breakpoints_sal): Use
+	gdb::unique_xmalloc_ptr for string parameters.
+	(create_breakpoint): Constify 'extra_string' and 'cond_string'
+	parameters.
+
+2017-06-06  Alan Hayward  <alan.hayward@arm.com>
+
+	* alpha-tdep.c (alpha_register_to_value): Use
+	get_frame_register_value.
+	(alpha_value_to_register): Use ALPHA_REGISTER_SIZE.
+
+2017-06-06  Alan Hayward  <alan.hayward@arm.com>
+
+	* ia64-tdep.c (IA64_MAX_FP_REGISTER_SIZE) Add.
+	(ia64_register_to_value): Use IA64_MAX_FP_REGISTER_SIZE.
+	(ia64_value_to_register): Likewise.
+	(ia64_extract_return_value): Likewise.
+	(ia64_store_return_value): Likewise.
+	(ia64_push_dummy_call): Likewise.
+
+2017-06-04  Joel Brobecker  <brobecker@adacore.com>
+
+	GDB 8.0 released.
+
+2017-06-03  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* x86-linux-nat.c (struct arch_lwp_info): Remove.
+
+2017-06-03  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* linux-nat.c (linux_nat_post_attach_wait): Remove FIRST
+	parameter.
+	(linux_nat_attach): Adjust call to linux_nat_post_attach_wait.
+
+2017-06-02  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* event-loop.c (poll_timers): Unallocate timer using delete
+	instead of xfree.
+
+2017-06-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* breakpoint.h (struct breakpoint_ops) <dtor>: Remove.
+	(struct breakpoint) <~breakpoint>: New.
+	(struct watchpoint): Inherit from breakpoint.
+	<~watchpoint>: New.
+	<base>: Remove.
+	(struct tracepoint): Inherit from breakpoint.
+	<base>: Remove.
+	* breakpoint.c (longjmp_breakpoint_ops): Remove.
+	(struct longjmp_breakpoint): Inherit from breakpoint.
+	<~longjmp_breakpoint>: New.
+	<base>: Remove.
+	(new_breakpoint_from_type): Remove casts.
+	(watchpoint_in_thread_scope): Remove reference to base field.
+	(watchpoint_del_at_next_stop): Likewise.
+	(update_watchpoint): Likewise.
+	(watchpoint_check): Likewise.
+	(bpstat_check_watchpoint): Likewise.
+	(set_longjmp_breakpoint): Likewise.
+	(struct fork_catchpoint): Inherit from breakpoint.
+	<base>: Remove.
+	(struct solib_catchpoint): Inherit from breakpoint.
+	<~solib_catchpoint>: New.
+	<base>: Remove.
+	(dtor_catch_solib): Change to ...
+	(solib_catchpoint::~solib_catchpoint): ... this.
+	(breakpoint_hit_catch_solib): Remove reference to base field.
+	(add_solib_catchpoint): Likewise.
+	(create_fork_vfork_event_catchpoint): Likewise.
+	(struct exec_catchpoint): Inherit from breakpoint.
+	<~exec_catchpoint>: New.
+	<base>: Remove.
+	(dtor_catch_exec): Change to ...
+	(exec_catchpoint::~exec_catchpoint): ... this.
+	(dtor_watchpoint): Change to ...
+	(watchpoint::~watchpoint): ... this.
+	(watch_command_1): Remove reference to base field.
+	(catch_exec_command_1): Likewise.
+	(base_breakpoint_dtor): Change to ...
+	(breakpoint::~breakpoint): ... this.
+	(base_breakpoint_ops): Remove dtor field value.
+	(longjmp_bkpt_dtor): Change to ...
+	(longjmp_breakpoint::~longjmp_breakpoint): ... this.
+	(strace_marker_create_breakpoints_sal): Remove reference to base
+	field.
+	(delete_breakpoint): Don't manually call breakpoint destructor.
+	(create_tracepoint_from_upload): Remove reference to base field.
+	(trace_pass_set_count): Likewise.
+	(initialize_breakpoint_ops): Don't initialize
+	momentary_breakpoint_ops, don't set dtors.
+	* ada-lang.c (struct ada_catchpoint): Inherit from breakpoint.
+	<~ada_catchpoint>: New.
+	<base>: Remove.
+	(create_excep_cond_exprs): Remove reference to base field.
+	(dtor_exception): Change to ...
+	(ada_catchpoint::~ada_catchpoint): ... this.
+	(dtor_catch_exception): Remove.
+	(dtor_catch_exception_unhandled): Remove.
+	(dtor_catch_assert): Remove.
+	(create_ada_exception_catchpoint): Remove reference to base
+	field.
+	(initialize_ada_catchpoint_ops): Don't set dtors.
+	* break-catch-sig.c (struct signal_catchpoint): Inherit from
+	breakpoint.
+	<~signal_catchpoint>: New.
+	<base>: Remove.
+	(signal_catchpoint_dtor): Change to ...
+	(signal_catchpoint::~signal_catchpoint): ... this.
+	(create_signal_catchpoint): Remove reference to base field.
+	(initialize_signal_catchpoint_ops): Don't set dtor.
+	* break-catch-syscall.c (struct syscall_catchpoint): Inherit
+	from breakpoint.
+	<~syscall_catchpoint>: New.
+	<base>: Remove.
+	(dtor_catch_syscall): Change to ...
+	(syscall_catchpoint::~syscall_catchpoint): ... this.
+	(create_syscall_event_catchpoint): Remove reference to base
+	field.
+	(initialize_syscall_catchpoint_ops): Don't set dtor.
+	* break-catch-throw.c (struct exception_catchpoint): Inherit
+	from breakpoint.
+	<~exception_catchpoint>: New.
+	<base>: Remove.
+	(dtor_exception_catchpoint): Change to ...
+	(exception_catchpoint::~exception_catchpoint): ... this.
+	(handle_gnu_v3_exceptions): Remove reference to base field.
+	(initialize_throw_catchpoint_ops): Don't set dtor.
+	* ctf.c (ctf_get_traceframe_address): Remove reference to base
+	field.
+	* remote.c (remote_get_tracepoint_status): Likewise.
+	* tracefile-tfile.c (tfile_get_traceframe_address): Likewise.
+	* tracefile.c (tracefile_fetch_registers): Likewise.
+	* tracepoint.c (actions_command): Likewise.
+	(validate_actionline): Likewise.
+	(tfind_1): Likewise.
+	(get_traceframe_location): Likewise.
+	(find_matching_tracepoint_location): Likewise.
+	(parse_tracepoint_status): Likewise.
+	* mi/mi-cmd-break.c (mi_cmd_break_passcount): Likewise.
+
+2017-06-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* breakpoint.c (struct longjmp_breakpoint): New struct.
+	(is_tracepoint_type): Change return type to bool.
+	(is_longjmp_type): New function.
+	(new_breakpoint_from_type): Handle longjmp kinds of breakpoints.
+	(set_raw_breakpoint_without_location): Use
+	new_breakpoint_from_type.
+	(set_raw_breakpoint): Likewise.
+
+2017-06-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* breakpoint.c (new_breakpoint_from_type): New function.
+	(create_breakpoint_sal): Use new_breakpoint_from_type and
+	unique_ptr.
+	(create_breakpoint): Likewise.
+
+2017-05-31  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* memattr.c (mem_info_command): Rename to ...
+	(info_mem_command): ... this.
+	(mem_enable_command): Rename to ...
+	(enable_mem_command): ... this.
+	(mem_disable_command): Rename to ...
+	(disable_mem_command): ... this.
+	(mem_delete_command): Rename to ...
+	(delete_mem_command): ... this.
+	(_initialize_mem): Adjust function names.
+
+2017-05-31  Markus Metzger  <markus.t.metzger@intel.com>
+
+	* btrace.c (handle_pt_insn_events): New.
+	(ftrace_add_pt): Call handle_pt_insn_events.  Rename ERRCODE into
+	STATUS.  Split into this and ...
+	(handle_pt_insn_event_flags): ... this.
+
+2017-05-31  Markus Metzger  <markus.t.metzger@intel.com>
+
+	* configure.ac: Check for pt_insn_event, struct pt_insn.enabled,
+	and struct pt_insn.resynced.
+	* configure: Regenerated.
+	* config.in: Regenerated.
+
+2017-05-30  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c (ftrace_find_call_by_number): New function.
+	(ftrace_new_function): Store objects, not pointers.
+	(ftrace_find_call_by_number, ftrace_new_return, ftrace_new_switch,
+	ftrace_new_gap, ftrace_update_function,
+	ftrace_compute_global_level_offset, btrace_stich_bts, btrace_clear,
+	btrace_insn_get, btrace_insn_get_error, btrace_insn_end,
+	btrace_insn_next, btrace_insn_prev, ptrace_find_insn_by_number,
+	btrace_ends_with_single_insn, btrace_call_get): Account for
+	btrace_thread_info::functions now storing objects.
+	* btrace.h (struct btrace_thread_info): Add constructor.
+	(struct btrace_thread_info) <functions>: Make std::vector.
+	(struct btrace_thread_info) <prev, next, up, insn, errcode, flags):
+	Initialize with default values.
+	* record-btrace.c (record_btrace_frame_sniffer): Account for
+	btrace_thread_info::functions now storing objects.
+
+2017-05-30  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c: Remove typedef bfun_s.
+	(ftrace_new_gap): Directly add gaps to the list of gaps.
+	(btrace_bridge_gaps, btrace_compute_ftrace_bts, pt_btrace_insn_flags,
+	ftrace_add_pt, btrace_compute_ftrace_pt, btrace_compute_ftrace_1,
+	btrace_finalize_ftrace, btrace_compute_ftrace): Use std::vector
+	instead of gdb VEC.
+
+2017-05-30  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c (ftrace_fixup_caller, ftrace_new_return, ftrace_connect_bfun,
+	ftrace_bridge_gap): Replace references to btrace_thread_info::segment
+	with btrace_thread_info::next_segment and
+	btrace_thread_info::prev_segment.
+	* btrace.h: Remove struct btrace_func_link.
+	(struct btrace_function): Replace pair of function segment pointers
+	with pair of indices.
+	* python/py-record-btrace.c (btpy_call_prev_sibling,
+	btpy_call_next_sibling): Replace references to
+	btrace_thread_info::segment with btrace_thread_info::next_segment and
+	btrace_thread_info::prev_segment.
+	* record-btrace.c (record_btrace_frame_this_id): Use
+	btrace_find_call_by_number.
+
+2017-05-30  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c (ftrace_new_function, ftrace_fixup_level,
+	ftrace_connect_bfun, ftrace_bridge_gap, btrace_bridge_gaps,
+	btrace_insn_next, btrace_insn_prev): Remove references to
+	btrace_thread_info::flow.
+	* btrace.h (struct btrace_function): Remove FLOW.
+
+2017-05-30  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c (ftrace_find_call_by_number): New function.
+	(ftrace_update_caller, ftrace_new_call, ftrace_new_tailcall,
+	ftrace_get_caller, ftrace_find_call, ftrace_new_return,
+	ftrace_match_backtrace, ftrace_connect_bfun, ftrace_connect_backtrace,
+	ftrace_bridge_gap, btrace_bridge_gaps): Use btrace_function::up as an
+	index.
+	* btrace.h (struct btrace_function): Turn UP into an index.
+	* python/py-record-btrace.c (btpy_call_up): Use btrace_function::up
+	as an index.
+	* record-btrace.c (record_btrace_frame_unwind_stop_reason,
+	record_btrace_frame_prev_register, record_btrace_frame_sniffer,
+	record_btrace_tailcall_frame_sniffe): Use btrace_find_call_by_number.
+
+2017-05-30  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c (ftrace_new_function, ftrace_new_call, ftrace_new_tailcall,
+	ftrace_new_return, ftrace_new_switch, ftrace_new_gap,
+	ftrace_update_function, ftrace_compute_global_level_offset,
+	btrace_compute_ftrace_bts, ftrace_add_pt, btrace_compute_ftrace_pt,
+	btrace_stitch_bts, btrace_fetch, btrace_clear, btrace_insn_number,
+	btrace_insn_end, btrace_is_empty): Remove references to
+	btrace_thread_info::begin and btrace_thread_info::end.
+	* btrace.h (struct btrace_thread_info): Remove BEGIN and END.
+	(struct btrace_thread_info) <functions>: Adjust comment.
+	* record-btrace.c (record_btrace_start_replaying): Remove reference to
+	btrace_thread_info::begin.
+
+2017-05-30  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c (ftrace_new_function, ftrace_new_call, ftrace_new_tailcall,
+	ftrace_new_return, ftrace_new_switch, ftrace_new_gap,
+	ftrace_update_function): Remove arguments that implicitly were always
+	BTINFO->END.
+	(btrace_compute_ftrace_bts, ftrace_add_pt, btrace_compute_ftrace_pt):
+	Don't pass BTINFO->END.
+
+2017-05-30  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c: (btrace_insn_get, btrace_insn_get_error, btrace_insn_number,
+	btrace_insn_begin, btrace_insn_end, btrace_insn_next, btrace_insn_prev,
+	btrace_find_insn_by_number): Replace function segment pointer with
+	index.
+	(btrace_insn_cmp): Simplify.
+	* btrace.h: (struct btrace_insn_iterator) Rename index to
+	insn_index.  Replace function segment pointer with index into function
+	segment vector.
+	* record-btrace.c (record_btrace_call_history): Replace function
+	segment pointer use with index.
+	(record_btrace_frame_sniffer): Retrieve function call segment through
+	vector.
+	(record_btrace_set_replay): Remove defunc't safety check.
+
+2017-05-30  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c (btrace_ends_with_single_insn): New function.
+	(btrace_call_get, btrace_call_number, btrace_call_begin,
+	btrace_call_end, btrace_call_next, btrace_call_prev,
+	btrace_find_call_by_number): Use index into call segment vector
+	instead of pointer.
+	(btrace_call_cmp): Simplify.
+	* btrace.h (struct btrace_call_iterator): Replace function call segment
+	pointer with index into vector.
+	* record-btrace.c (record_btrace_call_history): Use index instead of
+	pointer.
+
+2017-05-30  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c (btrace_insn_begin, btrace_insn_end,
+	btrace_find_insn_by_number): Add btinfo to iterator.
+	* btrace.h (struct btrace_insn_iterator): Add btinfo.
+
+2017-05-30  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c (ftrace_new_function): Add btrace_thread_info to arguments
+	and save pointers directly.
+	(ftrace_new_call, ftrace_new_tailcall, ftrace_new_return,
+	ftrace_new_switch, ftrace_new_gap, ftrace_update_function,
+	ftrace_add_pt): Add btrace_thread_info to arguments.  Adjust for
+	changed signature of functions.
+	(btrace_compute_ftrace_pt): Adjust for changed signature of functions.
+	(btrace_fetch): Remove code that adds btrace_function pointers to
+	vector of btrace_functions.
+	(btrace_clear): Simplify freeing vector of btrace_functions.
+
+2017-05-30  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c (btrace_fetch, btrace_clear, btrace_find_insn_by_number):
+	Replace VEC_* with std::vector functions.
+	* btrace.h: Add include: vector. Remove typedef for DEF_VEC_P.
+	(struct btrace_thread_info)<functions>: Change type to std::vector.
+
+2017-05-30  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* NEWS (Changes in GDB 8.0): Remove extra empty line.  Move
+	"Removed targets and native configurations" up.  Merge duplicate
+	"New commands" sub-sections.  Add "New options" sub-sections.
+
+2017-05-26  Alan Hayward  <alan.hayward@arm.com>
+
+	* defs.h (copy_integer_to_size): New declaration.
+	* findvar.c (copy_integer_to_size): New function.
+	(do_cint_test): New selftest function.
+	(copy_integer_to_size_test): Likewise.
+	(_initialize_findvar): Likewise.
+	* mips-fbsd-tdep.c (mips_fbsd_supply_reg): Use raw_supply_integer.
+	(mips_fbsd_collect_reg): Use raw_collect_integer.
+	* mips-linux-tdep.c (supply_32bit_reg): Use raw_supply_integer.
+	(mips64_fill_gregset): Use raw_collect_integer
+	(mips64_fill_fpregset): Use raw_supply_integer.
+	* regcache.c (regcache::raw_supply_integer): New function.
+	(regcache::raw_collect_integer): Likewise.
+	* regcache.h: (regcache::raw_supply_integer): New declaration.
+	(regcache::raw_collect_integer): Likewise.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (SFILES): Add gdbarch-selftests.c.
+	(COMMON_OBS): Add gdbarch-selftests.o.
+	* frame.c [GDB_SELF_TESTS] (create_new_frame): New function.
+	* frame.h [GDB_SELF_TESTS] (create_new_frame): Declare.
+	* gdbarch-selftests.c: New file.
+	* regcache.h (regcache) <~regcache>: Mark it virtual if
+	GDB_SELF_TEST.
+	<raw_write>: Likewise.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c (current_regcache): Change it to
+	regcache::current_regcache.
+	(regcache_observer_target_changed): Update.
+	(regcache_thread_ptid_changed): Make it a regcache static
+	method.
+	(regcache_thread_ptid_changed): Update.
+	(class regcache_access): New.
+	(current_regcache_test): Update.
+	(_initialize_regcache): Update.
+	* regcache.h: Include forward_list.
+	(regcache): Declare regcache_thread_ptid_changed and declare
+	registers_changed_ptid as friend.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* i387-tdep.c (i387_register_to_value): Use register_size
+	instead of TYPE_LENGTH.
+	* m68k-tdep.c (m68k_register_to_value): Likewise.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* i387-tdep.c (i387_convert_register_p): Return false if type
+	code isn't TYPE_CODE_FLT.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* alpha-tdep.c (alpha_convert_register_p): Return true if type
+	length is 4.
+	(alpha_register_to_value): Remove type length check.
+	(alpha_value_to_register): Likewise.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* ia64-tdep.c (ia64_convert_register_p): Check type's code is
+	TYPE_CODE_FLT.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* m68k-tdep.c (m68k_convert_register_p): Check type's code is
+	TYPE_CODE_FLT or not.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* alpha-tdep.c (alpha_gdbarch_init): Use XCNEW instead of XNEW.
+	* avr-tdep.c (avr_gdbarch_init): Likewise.
+	* bfin-tdep.c (bfin_gdbarch_init): Likewise.
+	* cris-tdep.c (cris_gdbarch_init): Likewise.
+	* ft32-tdep.c (ft32_gdbarch_init): Likewise.
+	* lm32-tdep.c (lm32_gdbarch_init): Likewise.
+	* m32r-tdep.c (m32r_gdbarch_init): Likewise.
+	* m68hc11-tdep.c (m68hc11_gdbarch_init): Likewise.
+	* mep-tdep.c (mep_gdbarch_init): Likewise.
+	* microblaze-tdep.c (microblaze_gdbarch_init): Likewise.
+	* mips-tdep.c (mips_gdbarch_init): Likewise.
+	* mn10300-tdep.c (mn10300_gdbarch_init): Likewise.
+	* moxie-tdep.c (moxie_gdbarch_init): Likewise.
+	* msp430-tdep.c (msp430_gdbarch_init): Likewise.
+	* sh64-tdep.c (sh64_gdbarch_init): Likewise.
+	* v850-tdep.c (v850_gdbarch_init): Likewise.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* selftest-arch.c (tests_with_arch): Call registers_changed
+	and reinit_frame_cache.
+	* selftest.c (run_self_tests): Likewise.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* rs6000-tdep.c (gdb_print_insn_powerpc): Remove.
+	(rs6000_gdbarch_init): Don't call set_gdbarch_print_insn.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* rl78-tdep.c (rl78_gdbarch_init): Don't call
+	set_gdbarch_print_insn.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* h8300-tdep.c (h8300_gdbarch_init): Don't call
+	set_gdbarch_print_insn.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* alpha-tdep.c (alpha_gdbarch_init): Don't call
+	set_gdbarch_print_insn.
+	* arc-tdep.c (arc_gdbarch_init): Likewise.
+	* arch-utils.c: include dis-asm.h.
+	(default_print_insn): New function.
+	* arch-utils.h (default_print_insn): Declare.
+	* avr-tdep.c (avr_gdbarch_init): Don't call set_gdbarch_print_insn.
+	* bfin-tdep.c (bfin_gdbarch_init): Likewise.
+	* cris-tdep.c (cris_delayed_get_disassembler): Remove.
+	(cris_gdbarch_init): Don't call set_gdbarch_print_insn.
+	* frv-tdep.c (frv_gdbarch_init): Likewise.
+	* ft32-tdep.c (ft32_gdbarch_init): Likewise.
+	* gdbarch.sh (print_insn): Use default_print_insn.
+	* gdbarch.c: Regenerated.
+	* hppa-tdep.c (hppa_gdbarch_init): Likewise.
+	* iq2000-tdep.c (iq2000_gdbarch_init): Likewise.
+	* lm32-tdep.c (lm32_gdbarch_init): Likewise.
+	* m32c-tdep.c (m32c_gdbarch_init): Likewise.
+	* m32r-tdep.c (m32r_gdbarch_init): Likewise.
+	* m68hc11-tdep.c (gdb_print_insn_m68hc11): Remove.
+	(m68hc11_gdbarch_init): Don't call set_gdbarch_print_insn.
+	* m68k-tdep.c (m68k_gdbarch_init): Likewise.
+	* m88k-tdep.c (m88k_gdbarch_init): Likewise.
+	* microblaze-tdep.c (microblaze_gdbarch_init): Likewise.
+	* mn10300-tdep.c (mn10300_gdbarch_init): Likewise.
+	* moxie-tdep.c (moxie_gdbarch_init): Likewise.
+	* msp430-tdep.c (msp430_gdbarch_init): Likewise.
+	* mt-tdep.c (mt_gdbarch_init): Likewise.
+	* nds32-tdep.c (nds32_gdbarch_init): Likewise.
+	* nios2-tdep.c (nios2_print_insn): Remove.
+	(nios2_gdbarch_init): Don't call set_gdbarch_print_insn.
+	* rx-tdep.c (rx_gdbarch_init): Likewise.
+	* s390-linux-tdep.c (s390_gdbarch_init): Likewise.
+	* score-tdep.c (score_print_insn): Remove.
+	(score_gdbarch_init): Don't call set_gdbarch_print_insn.
+	* sh-tdep.c (sh_gdbarch_init): Likewise.
+	* sh64-tdep.c (sh64_gdbarch_init): Likewise.
+	* sparc-tdep.c (sparc32_gdbarch_init): Likewise.
+	* tic6x-tdep.c (tic6x_print_insn): Remove.
+	(tic6x_gdbarch_init): Don't call set_gdbarch_print_insn.
+	* tilegx-tdep.c (tilegx_gdbarch_init): Likewise.
+	* v850-tdep.c (v850_gdbarch_init): Likewise.
+	* vax-tdep.c (vax_gdbarch_init): Likewise.
+	* xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise.
+	* xtensa-tdep.c (xtensa_gdbarch_init): Likewise.
+
+2017-05-23  John Baldwin  <jhb@FreeBSD.org>
+
+	* mips-fbsd-tdep.c (MIPS_PC_REGNUM): Remove.
+	(MIPS_FP0_REGNUM): Remove.
+	(MIPS_FSR_REGNUM): Remove.
+	(mips_fbsd_supply_fpregs): Use mips_regnum.
+	(mips_fbsd_supply_gregs): Likewise.
+	(mips_fbsd_collect_fpregs): Likewise.
+	(mips_fbsd_collect_gregs): Likewise.
+
+2017-05-23  John Baldwin  <jhb@FreeBSD.org>
+
+	* mips-fbsd-nat.c (getregs_supplies): Fix upper bound comparison.
+	(getpfpregs_supplies): New function.
+	(mips_fbsd_fetch_inferior_registers): Remove early exit and use
+	getfpregs_supplies.
+	(mips_fbsd_store_inferior_registers): Likewise.
+
+2017-05-22  Pedro Alves <palves@redhat.com>
+
+	* MAINTAINERS (Host/Native): Add John Baldwin as FreeBSD
+	maintainer.
+
+2017-05-22  Alan Hayward  <alan.hayward@arm.com>
+
+	* ppc-linux-nat.c (fetch_register): Use PPC_MAX_REGISTER_SIZE.
+	(store_register): Likewise.
+	* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Likewise.
+	(get_decimal_float_return_value): Likewise.
+	(do_ppc_sysv_return_value): Likewise.
+	(ppc64_sysv_abi_push_integer): Likewise.
+	(ppc64_sysv_abi_push_freg): Likewise.
+	(ppc64_sysv_abi_return_value_base): Likewise.
+	(ppc64_sysv_abi_return_value): Likewise.
+	* rs6000-aix-tdep.c (rs6000_push_dummy_call): Likewise.
+	* rs6000-lynx178-tdep.c (rs6000_lynx178_push_dummy_call): Likewise.
+	* rs6000-nat.c: Likewise.
+	* rs6000-tdep.c (rs6000_register_to_value): Likewise.
+	(rs6000_value_to_register): Likewise.
+	* ppc-tdep.h (PPC_MAX_REGISTER_SIZE): Add.
+
+2017-05-21  Tom Tromey  <tom@tromey.com>
+
+	PR rust/21466:
+	* rust-lang.c (rust_print_type) <TYPE_CODE_ARRAY>: Print unsized
+	arrays as "[T]", not "[T; ]".
+
+2017-05-19  Tom Tromey  <tom@tromey.com>
+
+	PR rust/21484:
+	* rust-lang.c (exp_descriptor_rust): New function.
+	(rust_language_defn): Use it.
+	* p-lang.c (pascal_language_defn): Update.
+	* opencl-lang.c (opencl_language_defn): Update.
+	* objc-lang.c (objc_language_defn): Update.
+	* m2-lang.c (m2_language_defn): Update.
+	* language.h (struct language_defn)
+	<la_watch_location_expression>: New member.
+	* language.c (unknown_language_defn, auto_language_defn)
+	(local_language_defn): Update.
+	* go-lang.c (go_language_defn): Update.
+	* f-lang.c (f_language_defn): Update.
+	* d-lang.c (d_language_defn): Update.
+	* c-lang.h (c_watch_location_expression): Declare.
+	* c-lang.c (c_watch_location_expression): New function.
+	(c_language_defn, cplus_language_defn, asm_language_defn)
+	(minimal_language_defn): Use it.
+	* breakpoint.c (watch_command_1): Call
+	la_watch_location_expression.
+	* ada-lang.c (ada_language_defn): Update.
+
+2017-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	PR tui/21482
+	* gdb_curses.h (NOMACROS): Define.
+	(NCURSES_NOMACROS): Define.
+
+2017-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	PR tui/21482
+	* tui/tui-windata.c (tui_erase_data_content): Cast last mvwaddstr
+	arg to char *.
+	* tui/tui-wingeneral.c (box_win): Likewise.
+	* tui/tui-winsource.c (tui_erase_source_content): Likewise.
+	(tui_show_source_line): Likewise.
+	(tui_show_exec_info_content): Likewise.
+
+2017-05-19  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
+
+	* sparc-tdep.c (sparc_structure_return_p)
+	(sparc_arg_on_registers_p): New functions.
+	(sparc32_store_arguments): Use them.
+	* sparc64-tdep.c (sparc64_16_byte_align_p)
+	(sparc64_store_floating_fields, sparc64_extract_floating_fields):
+	Handle TYPE_CODE_ARRAY.
+
+2017-05-17  Yao Qi  <yao.qi@linaro.org>
+
+	* cli/cli-decode.c (add_alias_cmd): New function.
+	* command.h (add_alias_cmd): Declare.
+	* infcmd.c (_initialize_infcmd): Don't call add_com_alias,
+	instead call add_alias_cmd.
+
+2017-05-17  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (nat_extra_makefile_frag): Rename to ...
+	(nat_makefile_frag): ... this.  All references updated.
+	* configure.ac: Likewise.
+	* configure.nat: Likewise.  Enhance comments.
+	* configure: Regenerate.
+
+2017-05-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* procfs.c (procfs_create_inferior): Change prototype to match
+	definition.
+
+2017-05-13  Eli Zaretskii  <eliz@gnu.org>
+
+	* tui/tui.c (tui_enable): Cast "unknown" to 'char *' to avoid a
+	C++ compiler warning.
+
+2017-05-12  Tom Tromey  <tom@tromey.com>
+
+	PR rust/21483:
+	* rust-lang.c (rust_evaluate_subexp) <STRUCTOP_STRUCT>: Don't
+	recurse, just call value_struct_elt directly.
+
+2017-05-12  Tom Tromey  <tom@tromey.com>
+
+	* rust-lang.c (rust_dump_subexp_body) <STRUCTOP_ANONYMOUS,
+	OP_RUST_ARRAY>: Fix.
+
+2017-05-12  Tom Tromey  <tom@tromey.com>
+
+	* rust-lang.c (rust_print_subexp): Replace "return" with "break".
+
+2017-05-09  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c: Include <forward_list>.
+	(struct regcache_list): Remove.
+	(current_regcache): Update.
+	(get_thread_arch_aspace_regcache): Update for std::forward_list.
+	(regcache_thread_ptid_changed): Likewise.
+	(registers_changed_ptid): Likewise.
+	(current_regcache_size): Likewise.
+
+2017-05-09  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c [GDB_SELF_TEST]: Include selftest.h.
+	(current_regcache_size): New function.
+	(current_regcache_test): New function.
+	(_initialize_regcache) [GDB_SELF_TEST]: Register the unit test.
+
+2017-05-08  Alan Hayward  <alan.hayward@arm.com>
+
+	* mips-tdep.c (mips_o32_return_value): Remove unused buffer.
+	(print_gp_register_row): Use get_frame_register_value.
+
+2017-05-08  Alan Hayward  <alan.hayward@arm.com>
+
+	* mips-linux-tdep.c (mips_supply_gregset): Use raw_supply_zeroed.
+	(mips_supply_fpregset): Likewise.
+	(mips64_supply_gregset): Likewise.
+
+2017-05-08  Alan Hayward  <alan.hayward@arm.com>
+
+	* mn10300-linux-tdep.c (am33_supply_gregset_method): Use 
+	regcache->raw_supply_zeroed.
+
+2017-05-06  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+ 	* configure.nat: Rearrange 'case' statements to match
+	host before cpu.
+
+2017-05-06  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile.in: Remove "@host_makefile_frag@".  Add variables
+	NAT_FILE, NATDEPFILES, NAT_CDEPS, LOADLIBES, MH_CFLAGS, XM_CLIBS,
+	NAT_GENERATED_FILES, HAVE_NATIVE_GCORE_HOST.  Add
+	"@nat_extra_makefile_frag@".
+	(Makefile): Remove dependency on "@frags@".
+	($(GNULIB_BUILDDIR)/Makefile): Likewise.
+	(data-directory/Makefile): Likewise.
+	* config/aarch64/linux.mh: Deleted; moved contents to
+	"gdb/configure.nat".
+	* config/alpha/alpha-linux.mh: Likewise.
+	* config/alpha/nbsd.mh: Likewise.
+	* config/arm/linux.mh: Likewise.
+	* config/arm/nbsdelf.mh: Likewise.
+	* config/i386/cygwin.mh: Likewise.
+	* config/i386/cygwin64.mh: Likewise.
+	* config/i386/darwin.mh: Likewise.
+	* config/i386/fbsd.mh: Likewise.
+	* config/i386/fbsd64.mh: Likewise.
+	* config/i386/go32.mh: Likewise.
+	* config/i386/i386gnu.mh: Likewise.
+	* config/i386/i386sol2.mh: Likewise.
+	* config/i386/linux.mh: Likewise.
+	* config/i386/linux64.mh: Likewise.
+	* config/i386/mingw.mh: Likewise.
+	* config/i386/mingw64.mh: Likewise.
+	* config/i386/nbsd64.mh: Likewise.
+	* config/i386/nbsdelf.mh: Likewise.
+	* config/i386/nto.mh: Likewise.
+	* config/i386/obsd.mh: Likewise.
+	* config/i386/obsd64.mh: Likewise.
+	* config/i386/sol2-64.mh: Likewise.
+	* config/ia64/linux.mh: Likewise.
+	* config/m32r/linux.mh: Likewise.
+	* config/m68k/linux.mh: Likewise.
+	* config/m68k/nbsdelf.mh: Likewise.
+	* config/m68k/obsd.mh: Likewise.
+	* config/m88k/obsd.mh: Likewise.
+	* config/mips/fbsd.mh: Likewise.
+	* config/mips/linux.mh: Likewise.
+	* config/mips/nbsd.mh: Likewise.
+	* config/mips/obsd64.mh: Likewise.
+	* config/pa/linux.mh: Likewise.
+	* config/pa/nbsd.mh: Likewise.
+	* config/pa/obsd.mh: Likewise.
+	* config/powerpc/aix.mh: Likewise.
+	* config/powerpc/fbsd.mh: Likewise.
+	* config/powerpc/linux.mh: Likewise.
+	* config/powerpc/nbsd.mh: Likewise.
+	* config/powerpc/obsd.mh: Likewise.
+	* config/powerpc/ppc64-linux.mh: Likewise.
+	* config/powerpc/spu-linux.mh: Likewise.
+	* config/s390/linux.mh: Likewise.
+	* config/sh/nbsd.mh: Likewise.
+	* config/sparc/fbsd.mh: Likewise.
+	* config/sparc/linux.mh: Likewise.
+	* config/sparc/linux64.mh: Likewise.
+	* config/sparc/nbsd64.mh: Likewise.
+	* config/sparc/nbsdelf.mh: Likewise.
+	* config/sparc/obsd64.mh: Likewise.
+	* config/sparc/sol2.mh: Likewise.
+	* config/tilegx/linux.mh: Likewise.
+	* config/vax/nbsdelf.mh: Likewise.
+	* config/vax/obsd.mh: Likewise.
+	* config/xtensa/linux.mh: Likewise.
+	* config/i386/i386gnu.mn: New file, with excerpts from
+	"config/i386/i386gnu.mh".
+	* configure: Regenerate.
+	* configure.ac: Rewrite code to use "gdb/configure.nat" instead of
+	*.mh files under "gdb/config".
+	* configure.nat: New file, with contents from the
+	"gdb/config/*/*.mh" files.
+
+2017-05-05  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c (btrace_clear): Free insn vector.
+
+2017-05-05  Pedro Alves  <palves@redhat.com>
+
+	* warning.m4 (build_warnings): Add -Wno-error=maybe-uninitialized.
+	* configure: Regenerate.
+
+2017-05-04  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (SFILES): Add progspace-and-thread.c.
+	(HFILES_NO_SRCDIR): Add progspace-and-thread.h.
+	(COMMON_OBS): Add progspace-and-thread.o.
+	* breakpoint.c: Include "progspace-and-thread.h".
+	(update_inserted_breakpoint_locations)
+	(insert_breakpoint_locations, create_longjmp_master_breakpoint):
+	Use scoped_restore_current_pspace_and_thread.
+	(create_std_terminate_master_breakpoint): Use
+	scoped_restore_current_program_space.
+	(remove_breakpoint): Use scoped_restore_current_pspace_and_thread.
+	(print_breakpoint_location): Use
+	scoped_restore_current_program_space.
+	(bp_loc_is_permanent): Use
+	scoped_restore_current_pspace_and_thread.
+	(resolve_sal_pc): Use scoped_restore_current_pspace_and_thread.
+	(download_tracepoint_locations): Use
+	scoped_restore_current_pspace_and_thread.
+	(breakpoint_re_set): Use scoped_restore_current_pspace_and_thread.
+	* exec.c (exec_close_1): Use scoped_restore_current_program_space.
+	(enum step_over_calls_kind): Moved from inferior.h.
+	(class scoped_restore_current_thread): New class.
+	* gdbthread.h (make_cleanup_restore_current_thread): Delete
+	declaration.
+	(scoped_restore_current_thread): New class.
+	* infcmd.c: Include "common/gdb_optional.h".
+	(continue_1, proceed_after_attach): Use
+	scoped_restore_current_thread.
+	(notice_new_inferior): Use scoped_restore_current_thread.
+	* inferior.c: Include "progspace-and-thread.h".
+	(restore_inferior, save_current_inferior): Delete.
+	(add_inferior_command, clone_inferior_command): Use
+	scoped_restore_current_pspace_and_thread.
+	* inferior.h (scoped_restore_current_inferior): New class.
+	* infrun.c: Include "progspace-and-thread.h" and
+	"common/gdb_optional.h".
+	(follow_fork_inferior): Use
+	scoped_restore_current_pspace_and_thread.
+	(scoped_restore_exited_inferior): New class.
+	(handle_vfork_child_exec_or_exit): Use
+	scoped_restore_exited_inferior,
+	scoped_restore_current_pspace_and_thread,
+	scoped_restore_current_thread and scoped_restore.
+	(fetch_inferior_event): Use scoped_restore_current_thread.
+	* linespec.c (decode_line_full, decode_line_1): Use
+	scoped_restore_current_program_space.
+	* mi/mi-main.c: Include "progspace-and-thread.h".
+	(exec_continue): Use scoped_restore_current_thread.
+	(mi_cmd_exec_run): Use scoped_restore_current_pspace_and_thread.
+	(mi_cmd_trace_frame_collected): Use scoped_restore_current_thread.
+	* proc-service.c (ps_pglobal_lookup): Use
+	scoped_restore_current_program_space.
+	* progspace-and-thread.c: New file.
+	* progspace-and-thread.h: New file.
+	* progspace.c (release_program_space, clone_program_space): Use
+	scoped_restore_current_program_space.
+	(restore_program_space, save_current_program_space)
+	(save_current_space_and_thread): Delete.
+	(switch_to_program_space_and_thread): Moved to
+	progspace-and-thread.c.
+	* progspace.h (save_current_program_space)
+	(save_current_space_and_thread): Delete declarations.
+	(scoped_restore_current_program_space): New class.
+	* remote.c (remote_btrace_maybe_reopen): Use
+	scoped_restore_current_thread.
+	* symtab.c: Include "progspace-and-thread.h".
+	(skip_prologue_sal): Use scoped_restore_current_pspace_and_thread.
+	* thread.c (print_thread_info_1): Use
+	scoped_restore_current_thread.
+	(struct current_thread_cleanup): Delete.
+	(do_restore_current_thread_cleanup)
+	(restore_current_thread_cleanup_dtor): Rename/convert both to ...
+	(scoped_restore_current_thread::~scoped_restore_current_thread):
+	... this new dtor.
+	(make_cleanup_restore_current_thread): Rename/convert to ...
+	(scoped_restore_current_thread::scoped_restore_current_thread):
+	... this new ctor.
+	(thread_apply_all_command): Use scoped_restore_current_thread.
+	(thread_apply_command): Use scoped_restore_current_thread.
+	* tracepoint.c (tdump_command): Use scoped_restore_current_thread.
+	* varobj.c (value_of_root_1): Use scoped_restore_current_thread.
+
+2017-05-04  Pedro Alves  <palves@redhat.com>
+
+	* thread.c (make_cleanup_restore_current_thread): Move
+	find_thread_ptid call before the is_stopped call.  Assert that the
+	thread is found.  Replace is_stopped call by checking the thread's
+	state directly.  Remove unnecessary NULL-thread check.
+
+2017-05-04  Pedro Alves  <palves@redhat.com>
+
+	* corelow.c (thread_section_name): New class.
+	(get_core_register_section, get_core_siginfo): Use it.
+
+2017-05-04  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* corelow.c (sniff_core_bfd): Remove extra semicolon.
+	(get_core_register_section): Remove xfree of NULL pointer.
+
+2017-05-03  Alan Hayward  <alan.hayward@arm.com>
+
+	* frv-linux-tdep.c (frv_linux_supply_gregset): Use raw_supply_zeroed.
+	* regcache.c (regcache::raw_supply_zeroed): New function.
+	* regcache.h (regcache::raw_supply_zeroed): New declaration.
+
+2017-05-03  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdbarch.sh: Remove commented out definition of
+	TARGET_CHAR_BIT.
+	* gdbarch.h: Re-generate.
+
+2017-05-03  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* configure: Regenerate.
+
+2017-05-02  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* solib-target.c (solib_target_relocate_section_addresses):
+	Remove num_section_bases, num_bases, segment_bases variables.
+
+2017-05-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* common/gdb_vecs.h (DEF_VEC_I (CORE_ADDR)): Remove.
+
+2017-05-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* solib-target.c: Include <vector>
+	(struct lm_info_target) <~lm_info_target>: Remove.
+	<segment_bases, section_bases>: Change type to
+	std::vector<CORE_ADDR>.
+	(library_list_start_segment, library_list_start_section,
+	library_list_end_library,
+	solib_target_relocate_section_addresses): Adjust.
+
+2017-05-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* gdbarch.sh (software_single_step): Change return type to
+	std::vector<CORE_ADDR>.
+	* gdbarch.c, gdbarch.h: Re-generate.
+	* arch/arm-get-next-pcs.c (thumb_deal_with_atomic_sequence_raw):
+	Adjust.
+	(arm_deal_with_atomic_sequence_raw): Adjust.
+	(thumb_get_next_pcs_raw): Adjust.
+	(arm_get_next_pcs_raw): Adjust.
+	(arm_get_next_pcs): Adjust.
+	* arch/arm-get-next-pcs.h (arm_get_next_pcs): Adjust.
+	* aarch64-tdep.c (aarch64_software_single_step): Adjust.
+	* alpha-tdep.c (alpha_deal_with_atomic_sequence): Adjust.
+	(alpha_software_single_step): Adjust.
+	* alpha-tdep.h (alpha_software_single_step): Adjust.
+	* arm-linux-tdep.c (arm_linux_software_single_step): Adjust.
+	* arm-tdep.c (arm_software_single_step): Adjust.
+	(arm_breakpoint_kind_from_current_state): Adjust.
+	* arm-tdep.h (arm_software_single_step): Adjust.
+	* breakpoint.c (insert_single_step_breakpoint): Adjust.
+	* cris-tdep.c (cris_software_single_step): Adjust.
+	* mips-tdep.c (mips_deal_with_atomic_sequence): Adjust.
+	(micromips_deal_with_atomic_sequence): Adjust.
+	(deal_with_atomic_sequence): Adjust.
+	(mips_software_single_step): Adjust.
+	* mips-tdep.h (mips_software_single_step): Adjust.
+	* moxie-tdep.c (moxie_software_single_step): Adjust.
+	* nios2-tdep.c (nios2_software_single_step): Adjust.
+	* ppc-tdep.h (ppc_deal_with_atomic_sequence): Adjust.
+	* rs6000-aix-tdep.c (rs6000_software_single_step): Adjust.
+	* rs6000-tdep.c (ppc_deal_with_atomic_sequence): Adjust.
+	* s390-linux-tdep.c (s390_software_single_step): Adjust.
+	* sparc-tdep.c (sparc_software_single_step): Adjust.
+	* spu-tdep.c (spu_software_single_step): Adjust.
+	* tic6x-tdep.c (tic6x_software_single_step): Adjust.
+
+2017-05-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* gdbarch.sh: Use semi-colon as field separator instead of colon.
+	* gdbarch.h: Re-generate.
+
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* Makefile.in (SUBDIR_PYTHON_OBS): Add py-instruction.o.
+	(SUBDIR_PYTHON_SRCS): Add py-instruction.c.
+	* python/py-instruction.c, python/py-instruction.h: New file.
+	* python/py-record.c: Add py-instruction.h include.
+	(gdbpy_initialize_record): Make gdb.Instruction a super class of
+	gdb.RecordInstruction.
+	* python/python-internal.h: Add gdbpy_initialize_instruction
+	declaration.
+	* python/python.c (do_start_initialization): Add
+	gdbpy_initialize_instruction.
+
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* python/py-record-btrace.c (BTPY_REQUIRE_VALID_CALL, btpy_call_type):
+	Remove.
+	(btrace_func_from_recpy_func): New function.
+	(btpy_call_new, btpy_number, btpy_hash, btpy_richcompare): Remove.
+	(btpy_call_level, btpy_call_symbol, btpy_call_instructions,
+	btpy_call_up, btpy_call_prev_sibling, btpy_call_next_sibling): Rename to ...
+	(recpy_bt_func_level, recpy_bt_func_symbol, recpy_bt_func_instructions,
+	recpy_bt_func_up, recpy_bt_func_prev, recpy_bt_func_next): This.
+	Also, use new helper functions.
+	(btpy_list_item): Use new helper functions.
+	(recpy_bt_function_call_history): Use new type name.
+	(btpy_call_getset): Remove.
+	(gdbpy_initialize_btrace): Remove code to initialize
+	gdb.BtraceFunctionCall.
+	* python/py-record-btrace.h (recpy_bt_func_number, recpy_btb_func_level,
+	recpy_btb_func_symbol, recpy_bt_func_instructions, recpy_bt_func_up,
+	recpy_bt_func_prev, recpy_bt_func_next): New export.
+	* python/py-record.c (recpy_func_type): New static object.
+	(recpy_func_new, recpy_func_level, recpy_func_symbol,
+	recpy_func_instructions, recpy_func_up, recpy_func_prev,
+	recpy_func_next): New function.
+	(recpy_element_hash, recpy_element_richcompare): Updated comment.
+	(recpy_func_getset): New static object.
+	(gdbpy_initialize_record): Add code to initialize gdb.RecordInstruction.
+	* python/py-record.h (recpy_func_type, recpy_func_new): New export.
+
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* python/py-record-btrace.c (BTPY_REQUIRE_VALID_INSN): Remove.
+	(btpy_object, btpy_insn_type, btpy_new): Remove.
+	(btpy_list_object): Use gdb.RecordInstruction type instead of
+	gdb.BtraceInstruction type.
+	(btrace_insn_from_recpy_insn): New function.
+	(btpy_insn_or_gap_new): Adjust comment. Use recpy_insn_new instead of
+	btpy_new.
+	(btpy_call_new, btpy_list_item): Do not use btpy_new anymore.
+	(btpy_number, btpy_hash, btpy_call_level, btpy_call_symbol,
+	btpy_call_instructions, btpy_call_up, btpy_call_prev_sibling,
+	btpy_call_next_sibling, btpy_richcompare): Use recpy_element_object
+	instead of btpy_object.
+	(btpy_insn_sal, btpy_insn_pc, btpy_insn_size, btpy_insn_is_speculative,
+	btpy_insn_data, btpy_insn_decode): Rename to ...
+	(recpy_bt_insn_sal, recpy_bt_insn_pc, recpy_bt_insn_size,
+	recpy_bt_insn_is_speculative, recpy_bt_insn_data,
+	recpy_bt_insn_decode): This.  Also, use new helper functions.
+	(btpy_list_position, recpy_bt_goto): Use recpy_element_object and
+	recpy_insn_type.
+	(btpy_insn_getset): Remove.
+	(gdbpy_initialize_btrace): Remove code to initialize
+	gdb.BtraceInstruction.  Use recpy_element_object.
+	* python/py-record-btrace.h (recpy_bt_insn_number, recpy_bt_insn_sal,
+	recpy_bt_insn_pc, recpy_bt_insn_data, recpy_bt_insn_decoded,
+	recpy_bt_insn_size, recpy_bt_insn_is_speculative): New export.
+	* python/py-record.c (recpy_insn_type): New static object.
+	(recpy_insn_new, recpy_insn_sal, recpy_insn_pc, recpy_insn_data,
+	recpy_insn_decoded, recpy_insn_size, recpy_insn_is_speculative,
+	recpy_element_number, recpy_element_hash, recpy_element_richcompare):
+	New function.
+	(recpy_insn_getset): New static object.
+	(gdbpy_initialize_record): Initialize gdb.RecordInstruction.
+	* python/py-record.h (recpy_element_object): New typedef.
+	(recpy_insn_type, recpy_insn_new): New export.
+
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* py-record-btrace.c (btpy_insn_new): Removed.
+	(btpy_insn_or_gap_new): New function.
+	(btpy_insn_error): Removed.
+	(btpy_insn_sal, btpy_insn_pc, btpy_insn_size, btpy_insn_is_speculative,
+	btpy_insn_data, btpy_insn_decode): Remove code path for gaps.
+	(recpy_bt_replay_position, recpy_bt_begin, recpy_bt_end): Call
+	btpy_insn_or_gap_new instead of btpy_insn_new.
+	(btpy_insn_getset): Remove btpy_insn_error.
+	* py-record.c (recpy_gap_type): New static object.
+	(recpy_gap_object): New typedef.
+	(recpy_gap_new, recpy_gap_number, recpy_gap_reason_code,
+	recpy_gap_reason_string): New function.
+	(recpy_gap_getset): New static object.
+	(gdbpy_initialize_record): Initialize gdb.RecordGap type.
+	* py-record.h (recpy_gap_new): New export.
+
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* python/py-record.c (recpy_ptid): Remove.
+	(recpy_record_getset): Remove recpy_ptid.
+
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c (btrace_fetch): Set inferior_ptid.
+	* python/py-record-btrace.c: Add "py-record.h" include.
+	(recpy_bt_format, recpy_bt_replay_position, recpy_bt_begin,
+	recpy_bt_end, recpy_bt_instruction_history,
+	recpy_bt_function_call_history, recpy_bt_goto): Use ptid stored
+	in gdb.Record object instead of current ptid.
+	* python/py-record.c: Include new "py-record.h" file.
+	(recpy_record_object): Moved to py-record.h.
+	* python/py-record.h: New file.
+
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* python/py-record-btrace.c (BTPY_REQUIRE_VALID_INSN,
+	BTPY_REQUIRE_VALID_CALL, recpy_bt_function_call_history): Fix
+	indentation.
+
+2017-05-01  Joel Brobecker  <brobecker@adacore.com>
+
+	* MAINTAINERS: Move Daniel Jacobowitz and Mark Kettenis to
+	the past maintainers section.
+
+2017-04-28  Yao Qi  <yao.qi@linaro.org>
+
+	* infcmd.c (get_return_value): Use regcache ctor, and remove
+	cleanup.
+
+2017-04-28  Yao Qi  <yao.qi@linaro.org>
+	    Pedro Alves  <palves@redhat.com>
+
+	* regcache.c (regcache::regcache): New tag dispatch ctor.
+	(do_cooked_read): Moved above.
+	(regcache_dup): Use the tag dispatch ctor..
+	* regcache.h (regcache): Declare ctor, delete copy ctor and
+	assignment operator, remove friend regcache_dup.
+
+2017-04-28  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c (regcache_dup): Assert !src->m_readonly_p and
+	call method save instead of regcache_cpy.
+	* regcache.h (struct regcache): Make regcache_dup a friend.
+
+2017-04-28  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c (struct regcache): Move to regcache.h
+	(regcache::arch): New method.
+	(regcache_get_ptid): Update.
+	(get_regcache_arch): Call arch method.
+	(get_regcache_aspace): Call method aspace.
+	(register_buffer): Change it to method.
+	(regcache_save): Change it to regcache::save.
+	(regcache_restore): Likewise.
+	(regcache_cpy_no_passthrough): Remove the declaration.
+	(regcache_cpy): Call methods restore and cpy_no_passthrough.
+	(regcache_cpy_no_passthrough): Change it to method
+	cpy_no_passthrough.
+	(regcache_register_status): Change it to method
+	get_register_status.
+	(regcache_invalidate): Change it to method invalidate.
+	(regcache_thread_ptid_changed): Use methods ptid and set_ptid.
+	(regcache_raw_update): Change it to method raw_update.
+	(regcache_raw_read): Likewise.
+	(regcache_raw_read_signed): Likewise.
+	(regcache_raw_read_unsigned): Likewise.
+	(regcache_raw_write_signed): Likewise.
+	(regcache_raw_write_unsigned): Likewise.
+	(regcache_cooked_read): Likewise.
+	(regcache_cooked_read_value): Likewise.
+	(regcache_cooked_read_signed): Likewise.
+	(regcache_cooked_read_unsigned): Likewise.
+	(regcache_cooked_write_signed): Likewise.
+	(regcache_cooked_write_unsigned): Likewise.
+	(regcache_raw_set_cached_value): Likewise.
+	(regcache_raw_write): Likewise.
+	(regcache_cooked_write): Likewise.
+	(regcache_xfer_part): Likewise.
+	(regcache_raw_read_part): Likewise.
+	(regcache_raw_write_part): Likewise.
+	(regcache_cooked_read_part): Likewise.
+	(regcache_cooked_write_part): Likewise.
+	(regcache_raw_supply): Likewise.
+	(regcache_raw_collect): Likewise.
+	(regcache_transfer_regset): Likewise.
+	(regcache_supply_regset): Likewise.
+	(regcache_collect_regset): Likewise.
+	(regcache_debug_print_register): Likewise.
+	(enum regcache_dump_what): Move it to regcache.h.
+	(regcache_dump): Change it to method dump.
+	* regcache.h (enum regcache_dump_what): New.
+	(class regcache): New.
+	* target.c (target_fetch_registers): Call method
+	debug_print_register.
+	(target_store_registers): Likewise.
+
+2017-04-28  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* windows-nat.c (struct lm_info_windows): Initialize field.
+	(windows_make_so): Allocate lm_info_windows with new.
+	(windows_free_so): Free lm_info_windows with delete.
+
+2017-04-28  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* solib-darwin.c (struct lm_info_darwin): Initialize field.
+	(darwin_current_sos): Allocate lm_info_darwin with new, remove
+	cleanup.
+	(darwin_free_so): Free lm_info_darwin with delete.
+
+2017-04-28  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* solib-svr4.h (struct lm_info_svr4): Initialize fields.
+	<l_addr_p>: Change type to bool.
+	* solib-svr4.c (lm_info_read): Allocate lm_info_svr4 with new.
+	(svr4_free_so): Free lm_info_svr4 with delete.
+	(svr4_copy_library_list): Replace memcpy with call to copy
+	constructor.
+	(library_list_start_library, svr4_default_sos): Allocate
+	lm_info_svr4 with new.
+
+2017-04-28  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* solib-target.c (struct lm_info_target): Add destructor,
+	initialize fields.
+	<name>: Change type to std::string.
+	(library_list_start_library): Allocate lm_info_target with new.
+	(solib_target_free_library_list): Free lm_info_target with
+	delete.
+	(solib_target_current_sos): Adapt to std::string.
+	(solib_target_free_so): Free lm_info_target with delete.
+
+2017-04-28  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* solib-frv.c (struct lm_info_frv): Add destructor, initialize
+	fields.
+	(frv_current_sos): Allocate lm_info_frv with new.
+	(frv_relocate_main_executable): Free lm_info_frv with delete,
+	allocate with new.
+	(frv_clear_solib, frv_free_so): Free lm_info_frv with delete.
+
+2017-04-28  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* solib-frv.c (struct lm_info_frv): Fix indentation.
+
+2017-04-28  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* solib-dsbt.c (struct lm_info_dsbt): Add destructor, initialize
+	map field.
+	(dsbt_current_sos): Allocate lm_info_dsbt with new.
+	(dsbt_relocate_main_executable): Free lm_info_dsbt with delete
+	and allocate with new.
+	(dsbt_clear_solib, dsbt_free_so): Free lm_info_dsbt with delete.
+
+2017-04-28  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* solib-aix.c (struct lm_info_aix): Initialize fields in-class.
+	<filename, member_name>: Change type to std::string.
+	(solib_aix_new_lm_info, solib_aix_xfree_lm_info): Remove.
+	(library_list_start_library): Allocate lm_info_aix with new.
+	(solib_aix_free_library_list, solib_aix_free_so): Free with delete.
+	(solib_aix_current_sos): Adapt to std::string, copy lm_info_aix
+	with copy constructor.
+
+2017-04-28  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* solist.h (struct lm_info): Remove.
+	(struct lm_info_base): New class.
+	(struct so_list) <lm_info>: Change type to lm_info_base *.
+	* nto-tdep.c (struct lm_info): Remove.
+	(lm_addr): Adjust.
+	* solib-aix.c (struct lm_info): Rename to ...
+	(struct lm_info_aix): ... this.  Extend lm_info_base.
+	(lm_info_p): Rename to ...
+	(lm_info_aix_p): ... this, and adjust.
+	(solib_aix_new_lm_info, solib_aix_xfree_lm_info,
+	solib_aix_parse_libraries, library_list_start_library,
+	solib_aix_free_library_list, solib_aix_parse_libraries,
+	solib_aix_get_library_list,
+	solib_aix_relocate_section_addresses, solib_aix_free_so,
+	solib_aix_get_section_offsets,
+	solib_aix_solib_create_inferior_hook, solib_aix_current_sos):
+	Adjust.
+	(struct solib_aix_inferior_data) <library_list>: Adjust.
+	* solib-darwin.c (struct lm_info): Rename to ...
+	(struct lm_info_darwin): ... this.  Extend lm_info_base.
+	(darwin_current_sos, darwin_relocate_section_addresses): Adjust.
+	* solib-dsbt.c (struct lm_info): Rename to ...
+	(struct lm_info_dsbt): ... this.  Extend lm_info_base.
+	(struct dsbt_info) <main_executable_lm_info): Adjust.
+	(dsbt_current_sos, dsbt_relocate_main_executable, dsbt_free_so,
+	dsbt_relocate_section_addresses): Adjust.
+	* solib-frv.c (struct lm_info): Rename to ...
+	(struct lm_info_frv): ... this.  Extend lm_info_base.
+	(main_executable_lm_info): Adjust.
+	(frv_current_sos, frv_relocate_main_executable, frv_free_so,
+	frv_relocate_section_addresses, frv_fdpic_find_global_pointer,
+	find_canonical_descriptor_in_load_object,
+	frv_fdpic_find_canonical_descriptor): Adjust.
+	* solib-svr4.c (struct lm_info): Move to solib-svr4.h, renamed
+	to lm_info_svr4.
+	(lm_info_read, lm_addr_check, svr4_keep_data_in_core,
+	svr4_clear_so, svr4_copy_library_list,
+	library_list_start_library, svr4_default_sos, svr4_read_so_list,
+	svr4_current_sos, svr4_fetch_objfile_link_map,
+	solist_update_incremental): Adjust.
+	* solib-svr4.h (struct lm_info_svr4): Move here from
+	solib-svr4.c.
+	* solib-target.c (struct lm_info): Rename to ...
+	(struct lm_info_target): ... this.  Extend lm_info_base.
+	(lm_info_p): Rename to ...
+	(lm_info_target_p): ... this.
+	(solib_target_parse_libraries, library_list_start_segment,
+	library_list_start_section, library_list_start_library,
+	library_list_end_library, solib_target_free_library_list,
+	solib_target_current_sos, solib_target_free_so,
+	solib_target_relocate_section_addresses): Adjust.
+	* windows-nat.c (struct lm_info): Rename to ...
+	(struct lm_info_windows): ... this.  Extend lm_info_base.
+	(windows_make_so, handle_load_dll, handle_unload_dll,
+	windows_xfer_shared_libraries): Adjust.
+
+2017-04-28  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* solib-darwin.c (struct darwin_so_list): Remove.
+	(darwin_current_sos): Allocate an so_list object instead of a
+	darwin_so_list, separately allocate an lm_info object.
+	(darwin_free_so): Free lm_info.
+
+2017-04-28  John Baldwin  <jhb@FreeBSD.org>
+
+	* mips-tdep.c (print_gp_register_row): Replace printf_filtered
+	with fprintf_filtered.
+
+2017-04-28  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c (regcache::regcache): New function.
+	(regcache::~regcache): New function.
+	(regcache_xmalloc_1): Remove.
+	(regcache_xmalloc): Call new regcache.
+	(regcache_xfree): Call delete regcache.
+	(get_thread_arch_aspace_regcache): Call new regcache.
+
+2017-04-28  Yao Qi  <yao.qi@linaro.org>
+
+	* mips-linux-nat.c (mips_linux_new_thread): Use ptid method
+	lwp instead of ptid_get_lwp.
+
+2017-04-28  Yao Qi  <yao.qi@linaro.org>
+
+	* mips-linux-nat.c (mips_linux_new_thread): Get lwpid from
+	lwp_info instead of getting from inferior_ptid.
+
+2017-04-27  Keith Seitz  <keiths@redhat.com>
+
+	* gdbtypes.c (LVALUE_REFERENCE_TO_RVALUE_BINDING_BADNESS)
+	DIFFERENT_REFERENCE_TYPE_BADNESS): Remove.
+	(CV_CONVERSION_BADNESS): Define.
+	(rank_one_type): Remove overly restrictive rvalue reference
+	rank checks.
+	Add cv-qualifier checks and subranks for type equality.
+	* gdbtypes.h (REFERENCE_CONVERSION_RVALUE,
+	REFERENCE_CONVERSION_CONST_LVALUE, CV_CONVERSION_BADNESS,
+	CV_CONVERSION_CONST, CV_CONVERSION_VOLATILE): Declare.
+
+2017-04-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* python/py-inferior.c (inferior_to_inferior_object): Increment reference
+	count when creating the object.
+
+2017-04-27  Sangamesh Mallayya  <sangamesh.swamy@in.ibm.com>
+	    Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* xcoffread.c (read_xcoff_symtab): Read correct function auxiliary
+	entry if xlc -qfuncsect or gcc -ffunction-sections compiler option
+	is used in AIX.
+	(read_xcoff_symtab): Handle C_WEAKEXT storage class.
+	(process_xcoff_symbol): Likewise.
+	(scan_xcoff_symtab): Likewise.
+
+2017-04-26  Alan Hayward  <alan.hayward@arm.com>
+
+	* ia64-tdep.c (examine_prologue): Use get_frame_register_unsigned.
+	(ia64_sigtramp_frame_prev_register): Use read_memory_unsigned_integer.
+	(ia64_access_reg): Use get_frame_register_unsigned.
+	(ia64_access_rse_reg): Likewise.
+	(ia64_libunwind_frame_prev_register): Likewise.
+
+2017-04-26  Jiong Wang  <jiong.wang@arm.com>
+
+	* gdbarch.sh: New gdbarch method execute_dwarf_cfa_vendor_op.
+	* gdbarch.c: Regenerated.
+	* gdbarch.h: Regenerated.
+	* dwarf2-frame.c (dwarf2_frame_state_alloc_regs): Made the
+	visibility external.
+	(execute_cfa_program): Call execute_dwarf_cfa_vendor_op for CFI
+	between DW_CFA_lo_user and DW_CFA_high_user inclusive.
+	(enum cfa_how_kind): Move to ...
+	(struct dwarf2_frame_state_reg_info): Likewise.
+	(struct dwarf2_frame_state): Likewise.
+	* dwarf2-frame.h: ... here.
+	(dwarf2_frame_state_alloc_regs): New declaration.
+	* sparc-tdep.c (sparc_execute_dwarf_cfa_vendor_op): New function.
+	(sparc32_gdbarch_init): Register execute_dwarf_cfa_vendor_op hook.
+
+2017-04-26  Alan Hayward  <alan.hayward@arm.com>
+
+	* xtensa-tdep.c (xtensa_pseudo_register_read): Use
+	regcache_raw_read_unsigned.
+	(xtensa_pseudo_register_write): Likewise.
+
+2017-04-26  Alan Hayward  <alan.hayward@arm.com>
+
+	* nds32-tdep.c (nds32_pseudo_register_read): Abort on errors.
+	(nds32_pseudo_register_write): Likewise.
+
+2017-04-25  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c (struct regcache) <readonly_p>: Change its type
+	to bool.
+	(regcache_xmalloc_1): Update parameter type and callers update.
+
+2017-04-25  Yao Qi  <yao.qi@linaro.org>
+
+	* aarch64-tdep.c (aarch64_gdbarch_init): Don't call
+	set_gdbarch_wchar_bit.
+	* arm-tdep.c (arm_gdbarch_init): Likewise.
+
+2017-04-25  Pedro Alves  <palves@redhat.com>
+
+	* common/poison.h [!HAVE_IS_TRIVIALLY_COPYABLE] (IsRelocatable)
+	(BothAreRelocatable, memcopy, memmove): Don't define.
+	* common/traits.h (__has_feature, HAVE_IS_TRIVIALLY_COPYABLE): New
+	macros.
+
+2017-04-25  Pedro Alves  <palves@redhat.com>
+
+	* common/common-defs.h: Include "common/poison.h".
+	* common/function-view.h: (Not, Or, Requires): Move to traits.h
+	and adjust.
+	* common/poison.h: New file.
+	* common/traits.h: Include <type_traits>.
+	(Not, Or, Requires): New, moved from common/function-view.h.
+
+2017-04-25  Pedro Alves  <palves@redhat.com>
+
+	* breakpoint.h (struct breakpoint): In-class initialize all
+	fields.  Make boolean fields "bool".
+	* breakpoint.c (init_raw_breakpoint_without_location): Remove
+	memset call and initializations no longer necessary.
+
+2017-04-25  Pedro Alves  <palves@redhat.com>
+
+	* btrace.c (pt_btrace_insn_flags): Change parameter type to
+	reference.
+	(pt_btrace_insn): New function.
+	(ftrace_add_pt): Remove memset call and use pt_btrace_insn.
+
+2017-04-25  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (ada_catchpoint_location): Now a "class".  Remove
+	"base" field and inherit from "bp_location" instead.  Add
+	non-default ctor.
+	(allocate_location_exception): Use new non-default ctor.
+	* breakpoint.c (get_first_locp_gte_addr): Remove memset call.
+	(init_bp_location): Convert to ...
+	(bp_location::bp_location): ... this new ctor, and remove memset
+	call.
+	(base_breakpoint_allocate_location): Use the new non-default ctor.
+	* breakpoint.h (bp_location): Now a class.  Declare default and
+	non-default ctors.  In-class initialize all members.
+	(init_bp_location): Remove declaration.
+
+2017-04-25  Pedro Alves  <palves@redhat.com>
+
+	* common/enum-flags.h (enum_flags): Don't implement copy ctor and
+	assignment operator.
+
+2017-04-24  Yao Qi  <yao.qi@linaro.org>
+
+	* doublest.c (convert_doublest_to_floatformat): Call
+	floatformat_totalsize_bytes.
+
+2017-04-22  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-cmd-file.c (mi_cmd_file_list_shared_libraries): Use
+	ui_out_emit_list.
+	* stack.c (print_frame): Use ui_out_emit_list.
+	* mi/mi-symbol-cmds.c (mi_cmd_symbol_list_lines): Use
+	ui_out_emit_list.
+	* mi/mi-main.c (print_one_inferior)
+	(mi_cmd_data_list_register_names)
+	(mi_cmd_data_list_register_values, mi_cmd_list_features)
+	(mi_cmd_list_target_features, mi_cmd_trace_frame_collected): Use
+	ui_out_emit_list.
+	* mi/mi-interp.c (mi_on_normal_stop_1): Use ui_out_emit_list.
+	(mi_output_solib_attribs): Use ui_out_emit_list,
+	ui_out_emit_tuple.
+	* mi/mi-cmd-var.c (varobj_update_one): Use ui_out_emit_list.
+	* mi/mi-cmd-stack.c (mi_cmd_stack_list_frames)
+	(mi_cmd_stack_list_args, list_args_or_locals): Use
+	ui_out_emit_list.
+	* disasm.c (do_assembly_only): Use ui_out_emit_list.
+	* breakpoint.c (print_solib_event, output_thread_groups): Use
+	ui_out_emit_list.
+
+2017-04-22  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-main.c (print_variable_or_computed): Use ui_out_emit_tuple.
+	* mi/mi-cmd-var.c (varobj_update_one): Use ui_out_emit_tuple.
+	* mi/mi-cmd-stack.c (list_arg_or_local): Use ui_out_emit_tuple.
+
+2017-04-22  Tom Tromey  <tom@tromey.com>
+
+	* tracepoint.c (tvariables_info_1)
+	(print_one_static_tracepoint_marker): Use ui_out_emit_tuple.
+
+2017-04-22  Tom Tromey  <tom@tromey.com>
+
+	* stack.c (print_frame_arg): Use ui_out_emit_tuple,
+	annotate_arg_emitter.
+	* breakpoint.c (print_mention_watchpoint)
+	(print_mention_masked_watchpoint): Use ui_out_emit_tuple.
+	* annotate.h (struct annotate_arg_emitter): New.
+
+2017-04-22  Tom Tromey  <tom@tromey.com>
+
+	* record-btrace.c (record_btrace_insn_history)
+	(record_btrace_insn_history_range, record_btrace_call_history)
+	(record_btrace_call_history_range): Use ui_out_emit_tuple.
+	* thread.c (do_captured_list_thread_ids, print_thread_info_1): Use
+	ui_out_emit_tuple.
+	* stack.c (print_frame_info): Use ui_out_emit_tuple.
+	* solib.c (info_sharedlibrary_command): Use ui_out_emit_tuple.
+	* skip.c (skip_info): Use ui_out_emit_tuple.
+	* remote.c (show_remote_cmd): Use ui_out_emit_tuple.
+	* progspace.c (print_program_space): Use ui_out_emit_tuple.
+	* probe.c (info_probes_for_ops): Use ui_out_emit_tuple.
+	* osdata.c (info_osdata): Use ui_out_emit_tuple.
+	* mi/mi-symbol-cmds.c (mi_cmd_symbol_list_lines): Use
+	ui_out_emit_tuple.
+	* mi/mi-main.c (print_one_inferior, list_available_thread_groups)
+	(output_register, mi_cmd_data_read_memory)
+	(mi_cmd_data_read_memory_bytes, mi_load_progress)
+	(mi_cmd_trace_frame_collected): Use ui_out_emit_tuple.
+	* mi/mi-cmd-var.c (mi_cmd_var_list_children, varobj_update_one):
+	Use ui_out_emit_tuple.
+	* mi/mi-cmd-stack.c (mi_cmd_stack_list_args): Use
+	ui_out_emit_tuple.
+	* mi/mi-cmd-info.c (mi_cmd_info_ada_exceptions)
+	(mi_cmd_info_gdb_mi_command): Use ui_out_emit_tuple.
+	* linux-thread-db.c (info_auto_load_libthread_db): Use
+	ui_out_emit_tuple.
+	* inferior.c (print_inferior): Use ui_out_emit_tuple.
+	* gdb_bfd.c (print_one_bfd): Use ui_out_emit_tuple.
+	* disasm.c (do_mixed_source_and_assembly_deprecated)
+	(do_mixed_source_and_assembly): Use ui_out_emit_tuple.
+	* cp-abi.c (list_cp_abis): Use ui_out_emit_tuple.
+	* cli/cli-setshow.c (cmd_show_list): Use ui_out_emit_tuple.
+	* breakpoint.c (print_one_breakpoint_location)
+	(print_one_breakpoint): Use ui_out_emit_tuple.
+	* auto-load.c (print_script, info_auto_load_cmd): Use
+	ui_out_emit_tuple.
+	* ada-tasks.c (print_ada_task_info): Use ui_out_emit_tuple.
+
+2017-04-21  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* thread.c (print_thread_info_1): Remove dead code.
+
+2017-04-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* aarch64-tdep.c (selftests::aarch64_process_record_test): Make it #if
+	GDB_SELF_TEST.
+	* arm-tdep.c (selftests::arm_record_test): Likewise.
+
+2017-04-21  Yao Qi  <yao.qi@linaro.org>
+
+	* regcache.c (regcache_restore): Remove argument 2.  Replace
+	argument 3 with regcache.  Get register status from
+	src->register_status and get register contents from
+	register_buffer (src, regnum).
+	(regcache_cpy): Update.
+
+2017-04-19  Pedro Alves  <palves@redhat.com>
+
+	* gdbthread.h (thread): Add missing closing parenthesis in
+	comment.
+
+2017-04-19  Pedro Alves  <palves@redhat.com>
+
+	* common/refcounted-object.h: New file.
+	* gdbthread.h: Include "common/refcounted-object.h".
+	(thread_info): Inherit from refcounted_object and add comments.
+	(thread_info::incref, thread_info::decref)
+	(thread_info::m_refcount): Delete.
+	(thread_info::deletable): Use the refcounted_object::refcount()
+	method.
+	* inferior.c (current_inferior_): Add comment.
+	(set_current_inferior): Increment/decrement refcounts.
+	(prune_inferiors, remove_inferior_command): Skip inferiors marked
+	not-deletable instead of comparing with the current inferior.
+	(initialize_inferiors): Increment the initial inferior's refcount.
+	* inferior.h (struct inferior): Forward declare.
+	Include "common/refcounted-object.h".
+	(current_inferior, set_current_inferior): Move declaration to
+	before struct inferior's definition, and fix comment.
+	(inferior): Inherit from refcounted_object.  Add comments.
+	* thread.c (switch_to_thread_no_regs): Reference the thread's
+	inferior pointer directly instead of doing a ptid lookup.
+	(switch_to_no_thread): New function.
+	(switch_to_thread(thread_info *)): New function, factored out
+	from ...
+	(switch_to_thread(ptid_t)): ... this.
+	(restore_current_thread): Delete.
+	(current_thread_cleanup): Remove 'inf_id' and 'was_removable'
+	fields, and add 'inf' field.
+	(do_restore_current_thread_cleanup): Check whether old->inf is
+	alive instead of looking up an inferior by ptid.  Use
+	switch_to_thread and switch_to_no_thread.
+	(restore_current_thread_cleanup_dtor): Use old->inf directly
+	instead of lookup up an inferior by id.  Decref the inferior.
+	Don't restore 'removable'.
+	(make_cleanup_restore_current_thread): Same the inferior pointer
+	in old, instead of the inferior number.  Incref the inferior.
+	Don't save/clear 'removable'.
+
+2017-04-19  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
+	unittests/scoped_restore-selftests.c.
+	(SUBDIR_UNITTESTS_OBS): Add scoped_restore-selftests.o.
+	* common/scoped_restore.h (scoped_restore_base): Make "class".
+	(scoped_restore_base::release): New public method.
+	(scoped_restore_base::scoped_restore_base): New protected ctor.
+	(scoped_restore_base::m_saved_var): New protected field.
+	(scoped_restore_tmpl::scoped_restore_tmpl(T*)): Initialize the
+	scoped_restore_base base class instead of m_saved_var directly.
+	(scoped_restore_tmpl::scoped_restore_tmpl(T*, T2)): Likewise.
+	(scoped_restore_tmpl::scoped_restore_tmpl(const
+	scoped_restore_tmpl<T>&)): Likewise.
+	(scoped_restore_tmpl::~scoped_restore_tmpl): Use the saved_var
+	method.
+	(scoped_restore_tmpl::saved_var): New method.
+	(scoped_restore_tmpl::m_saved_var): Delete.
+	* inferior.h (inferior::detaching): Now a bool.
+	* infrun.c (prepare_for_detach): Use a scoped_restore instead of a
+	cleanup.
+	* unittests/scoped_restore-selftests.c: New file.
+
+2017-04-19  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (SUBDIR_UNITTESTS_SRCS, SUBDIR_UNITTESTS_OBS):
+	Re-sort in alphabetic order.
+
+2017-04-18  Pedro Alves  <palves@redhat.com>
+
+	* xml-support.c (obstack_xml_printf): Delete.
+	* xml-support.h (obstack_xml_printf): Delete.
+
+2017-04-18  Pedro Alves  <palves@redhat.com>
+
+	* xml-support.c (gdb_xml_parser) <use_dtd, dtd_name, parse,
+	vdebug, verror, body_text, start_element, end_element, name,
+	user_data, set_is_xinclude, set_error, expat_parser>: New methods.
+	<name, user_data, expat_parser, scopes, error, last_line, dtd_name,
+	is_xinclude>: Make private and add m_ prefix.
+	(gdb_xml_parser::body_text): New method, based on ...
+	(gdb_xml_body_text): ... this.  Adjust.
+	(gdb_xml_parser::vdebug): New method, based on ...
+	(gdb_xml_debug): ... this.  Adjust.
+	(gdb_xml_parser::verror): New method, based on ...
+	(gdb_xml_error): ... this.  Adjust.
+	(gdb_xml_parser::start_element): New method, based on ...
+	(gdb_xml_start_element): ... this.  Adjust.
+	(gdb_xml_start_element_wrapper): Defer to
+	gdb_xml_parser::start_element and gdb_xml_parser::set_error.
+	(gdb_xml_parser::end_element): New method, based on ...
+	(gdb_xml_end_element_wrapper): ... this.  Adjust.
+	(gdb_xml_parser::~gdb_xml_parser): Adjust.
+	(gdb_xml_parser::gdb_xml_parser): Adjust to field renames.
+	(gdb_xml_parser::use_dtd): New method, based on ...
+	(gdb_xml_use_dtd): ... this.  Adjust.
+	(gdb_xml_parser::parse): New method, based on ...
+	(gdb_xml_parse): ... this.  Adjust.
+	(gdb_xml_parse_quick): Adjust to call the parser's parse method.
+	(xinclude_start_include): Adjust to call the parser's name method.
+	(xml_xinclude_default, xml_xinclude_start_doctype)
+	(xml_xinclude_end_doctype): Adjust to call the parser's user_data
+	method.
+	(xml_process_xincludes): Adjust to call parser methods.
+	* xml-support.h (gdb_xml_use_dtd, gdb_xml_parse): Delete
+	declarations.
+
+2017-04-18  Pedro Alves  <palves@redhat.com>
+
+	* tracefile-tfile.c (tfile_write_tdesc): Adjust to use
+	gdb::optional<std::string>.
+	* xml-support.c: Include <string>.
+	(scope_level::scope_level(scope_level &&))
+	(scope_level::~scope_level): Delete.
+	(scope_level::body): Now a std::string.
+	(gdb_xml_body_text, gdb_xml_end_element): Adjust.
+	(xinclude_parsing_data::xinclude_parsing_data): Add 'output'
+	parameter.
+	(xinclude_parsing_data::~xinclude_parsing_data): Delete.
+	(xinclude_parsing_data::output): Now a std::string reference.
+	(xinclude_start_include): Adjust.
+	(xml_xinclude_default): Adjust.
+	(xml_process_xincludes): Add 'output' parameter, and return bool.
+	* xml-support.h (xml_process_xincludes): Add 'output' parameter,
+	and return bool.
+	* xml-tdesc.c: Include <unordered_map> and <string>.
+	(tdesc_xml_cache): Delete.
+	(tdesc_xml_cache_s): Delete.
+	(xml_cache): Now an std::unordered_map.
+	(tdesc_parse_xml): Adjust to use std::string and unordered_map.
+	(target_fetch_description_xml): Change return type to
+	gdb::optional<std::string>, and adjust.
+	* xml-tdesc.h: Include "common/gdb_optional.h" and <string>.
+	(target_fetch_description_xml): Change return type to
+	gdb::optional<std::string>.
+
+2017-04-18  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
+	unittests/optional-selftests.c.
+	(SUBDIR_UNITTESTS_OBS): Add optional-selftests.o.
+	* unittests/optional-selftests.c: New file.
+	* unittests/optional/assignment/1.cc: New file.
+	* unittests/optional/assignment/2.cc: New file.
+	* unittests/optional/assignment/3.cc: New file.
+	* unittests/optional/assignment/4.cc: New file.
+	* unittests/optional/assignment/5.cc: New file.
+	* unittests/optional/assignment/6.cc: New file.
+	* unittests/optional/assignment/7.cc: New file.
+	* unittests/optional/cons/copy.cc: New file.
+	* unittests/optional/cons/default.cc: New file.
+	* unittests/optional/cons/move.cc: New file.
+	* unittests/optional/cons/value.cc: New file.
+	* unittests/optional/in_place.cc: New file.
+	* unittests/optional/observers/1.cc: New file.
+	* unittests/optional/observers/2.cc: New file.
+
+2017-04-18  Pedro Alves  <palves@redhat.com>
+
+	* common/gdb_optional.h: Include common/traits.h.
+	(in_place_t): New type.
+	(in_place): New constexpr variable.
+	(optional::optional): Remove member initialization of
+	m_instantiated.
+	(optional::optional(in_place_t...)): New constructor.
+	(optional::~optional): Use reset.
+	(optional::optional(const optional&)): New.
+	(optional::optional(const optional&&)): New.
+	(optional::optional(T &)): New.
+	(optional::optional(T &&)): New.
+	(operator::operator=(const optional &)): New.
+	(operator::operator=(optional &&)): New.
+	(operator::operator= (const T &))
+	(operator::operator= (T &&))
+	(operator::emplace (Args &&... args)): Return a T&.  Use reset.
+	(operator::reset): New.
+	(operator::m_instantiated):: Add in-class initializer.
+	* common/traits.h: Include <type_traits>.
+	(struct And): New types.
+
+2017-04-18  Pedro Alves  <palves@redhat.com>
+
+	* xml-support.c: Include <vector>.
+	(scope_level::scope_level(const gdb_xml_element *))
+	(scope_level::scope_level(scope_level&&)): New.
+	(scope_level::~scope_level): New.
+	(scope_level_s): Delete.
+	(gdb_xml_parser::scopes): Now a std::vector.
+	(gdb_xml_body_text, gdb_xml_start_element, gdb_xml_end_element):
+	Use std::vector.
+	(gdb_xml_parser::~gdb_xml_parser): Remove now unnecessary
+	scope cleanup code.
+	(gdb_xml_parser::gdb_xml_parser): Remove explicit initialization
+	of the scopes member.  Use std::vector::emplace_back.
+
+2017-04-18  Pedro Alves  <palves@redhat.com>
+
+	* xml-support.c (gdb_xml_parser): Add ctor/dtor.  Make is_xinclude
+	a bool.
+	(gdb_xml_end_element): Change type of first parameter.
+	(gdb_xml_cleanup): Rename to ...
+	(gdb_xml_parser::~gdb_xml_parser): ... this.
+	(gdb_xml_create_parser_and_cleanup): Delete with ...
+	(gdb_xml_parser::gdb_xml_parser): ... creation parts factored out
+	to this new ctor.
+	(gdb_xml_parse_quick): Create a local gdb_xml_parser instead of
+	using gdb_xml_create_parser_and_cleanup.
+	(xinclude_parsing_data): Add ctor/dtor.
+	(xml_xinclude_cleanup): Delete.
+	(xml_process_xincludes): Create a local xinclude_parsing_data
+	instead of heap-allocating one.  Create a local gdb_xml_parser
+	instead of heap-allocating one with
+	gdb_xml_create_parser_and_cleanup.
+
+2017-04-18  John Baldwin  <jhb@FreeBSD.org>
+
+	PR threads/20743
+	* fbsd-nat.c (resume_one_thread_cb): Remove.
+	(resume_all_threads_cb): Remove.
+	(fbsd_resume): Use ALL_NON_EXITED_THREADS instead of
+	iterate_over_threads.
+
+2017-04-17  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.
+
+2017-04-17  Joel Brobecker  <brobecker@adacore.com>
+
+	GDB 8.0 branch created (725bf5cf125783c2a7ca4ab63d3768e220bab2db):
+	* version.in: Bump version to 8.0.50.DATE-git.
+
+2017-04-13  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR gdb/21385
+	* windows-nat.c (windows_create_inferior): Declare 'allargs'
+	independently of the host, and fix build breakage on Cygwin.
+
+2017-04-13  Pedro Alves  <palves@redhat.com>
+
+	* inferior.c (free_inferior): Convert to ...
+	(inferior::~inferior): ... this dtor.
+	(inferior::inferior): New ctor, factored out from ...
+	(add_inferior_silent): ... here.  Allocate the inferior with a new
+	expression.
+	(delete_inferior): Call delete instead of free_inferior.
+	* inferior.h (gdb_environ, continuation): Forward declare.
+	(inferior): Now a class.  Add in-class initialization to all
+	members.  Make boolean fields bool, except 'detaching'.
+	(inferior::inferior): New explicit ctor.
+	(inferior::~inferior): New.
+
+2017-04-13  Pedro Alves  <palves@redhat.com>
+
+	* inferior.c (init_inferior_list): Delete.
+	* inferior.h (init_inferior_list): Delete.
+
+2017-04-13  Pedro Alves  <palves@redhat.com>
+
+	PR threads/13217
+	* gdb.threads/threadapply.exp (thr_apply_detach): New procedure.
+	(top level): Call it twice, with different thread sets.
+
+2017-04-13  Pedro Alves  <palves@redhat.com>
+
+	* thread.c: Include <algorithm>.
+	(thread_array_cleanup): Delete.
+	(scoped_inc_dec_ref): New class.
+	(live_threads_count): New function.
+	(set_thread_refcount): Delete.
+	(tp_array_compar_ascending): Now a bool.
+	(tp_array_compar): Convert to a std::sort comparison function.
+	(thread_apply_all_command): Use std::vector and scoped_inc_dec_ref
+	and live_threads_count.
+
+2017-04-13  Pedro Alves  <palves@redhat.com>
+
+	* infrun.c (follow_fork_inferior): Also switch the current
+	inferior.
+
+2017-04-13  Pedro Alves  <palves@redhat.com>
+
+	* breakpoint.c (watch_command_1): Save watchpoint-frame info
+	before calling create_internal_breakpoint.
+
+2017-04-13  Pedro Alves  <palves@redhat.com>
+
+	* fork-child.c (execv_argv): New class.
+	(breakup_args): Refactored as ...
+	(execv_argv::init_for_no_shell): .. this method of execv_argv.
+	Copy arguments to storage and replace separators with NULL
+	terminators in place.
+	(escape_bang_in_quoted_argument): Adjust to return bool.
+	(execv_argv::execv_argv): New ctor.
+	(execv_argv::init_for_shell): New method, factored out from
+	fork_inferior.  Don't strdup strings into the vector.
+	(fork_inferior): Eliminate "shell" local and use execv_argv.  Use
+	Remove free_vector_argv call.
+
+2017-04-13  Yao Qi  <yao.qi@linaro.org>
+
+	* rx-tdep.c (rx_fpsw_type): Check tdep->rx_fpsw_type instead of
+	tdep->rx_psw_type.
+
+2017-04-13  Yao Qi  <yao.qi@linaro.org>
+
+	* rl78-tdep.c (rl78_gdbarch_init): Use XCNEW instead of XNEW.
+	* rx-tdep.c (rx_gdbarch_init): Likewise.
+
+2017-04-13  Pedro Alves  <palves@redhat.com>
+
+	* breakpoint.h (struct breakpoint): Reindent.
+
+2017-04-13  Pedro Alves  <palves@redhat.com>
+
+	* breakpoint.c (bp_location): Rename to ...
+	(bp_locations): ... this.  All references updated.
+	(bp_location_count): Rename to ...
+	(bp_locations_count): ... this.  All references updated.
+	(bp_location_placed_address_before_address_max): Rename to ...
+	(bp_locations_placed_address_before_address_max): ... this.  All
+	references updated.
+	(bp_location_shadow_len_after_address_max): Rename to ...
+	(bp_locations_shadow_len_after_address_max): ... this.  All
+	references updated.
+	(bp_location_compare_addrs): Rename to ...
+	(bp_locations_compare_addrs): ... this.  All references updated.
+	(bp_location_compare):Rename to ...
+	(bp_locations_compare): ... this.  All references updated.
+	(bp_location_target_extensions_update): Rename to ...
+	(bp_locations_target_extensions_update): ... this.  All references
+	updated.
+
+2017-04-12  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile.in (HFILES_NO_SRCDIR): Add "common/gdb_termios.h".
+	* common/common.m4: Check headers 'termios.h', 'termio.h' and
+	'sgtty.h'.
+	* common/gdb_termios.h: New file, with parts of "terminal.h".
+	* inflow.c: Include "gdb_termios.h".
+	* ser-unix.c: Include "gdb_termios.h".
+	* terminal.h: Move terminal-related defines to
+	"common/gdb_termios.h".
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* probe.c (parse_probes): Update.
+	* location.h (delete_event_location): Don't declare.
+	(event_location_deleter::operator()): Update.
+	* location.c (event_location_deleter::operator()): Rename from
+	delete_event_location.
+	* linespec.h (linespec_result) <location>: Change type to
+	event_location_up.
+	* linespec.c (canonicalize_linespec, event_location_to_sals)
+	(decode_objc): Update.
+	(linespec_result): Don't call delete_event_location.
+	* breakpoint.c (create_breakpoints_sal)
+	(bkpt_probe_create_sals_from_location)
+	(strace_marker_create_sals_from_location): Update.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* linespec.h (struct linespec_result): Add constructor and
+	destructor.
+	(init_linespec_result, destroy_linespec_result)
+	(make_cleanup_destroy_linespec_result): Don't declare.
+	* linespec.c (init_linespec_result): Remove.
+	(linespec_result::~linespec_result): Rename from
+	destroy_linespec_result.  Update.
+	(cleanup_linespec_result, make_cleanup_destroy_linespec_result):
+	Remove.
+	* breakpoint.c (create_breakpoint, break_range_command)
+	(decode_location_default): Update.
+	* ax-gdb.c (agent_command_1): Update.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* remote.c (remote_download_tracepoint): Update.
+	* python/py-breakpoint.c (bppy_get_location): Update.
+	* guile/scm-breakpoint.c (bpscm_print_breakpoint_smob)
+	(gdbscm_breakpoint_location): Update.
+	* elfread.c (elf_gnu_ifunc_resolver_return_stop): Update.
+	* breakpoint.h (struct breakpoint) <location, location_range_end>:
+	Change type to event_location_up.
+	* breakpoint.c (create_overlay_event_breakpoint)
+	(create_longjmp_master_breakpoint)
+	(create_std_terminate_master_breakpoint)
+	(create_exception_master_breakpoint)
+	(breakpoint_event_location_empty_p, print_breakpoint_location)
+	(print_one_breakpoint_location, create_thread_event_breakpoint)
+	(init_breakpoint_sal, create_breakpoint)
+	(print_recreate_ranged_breakpoint, break_range_command)
+	(init_ada_exception_breakpoint, say_where): Update.
+	(base_breakpoint_dtor): Don't call delete_event_location.
+	(bkpt_print_recreate, tracepoint_print_recreate)
+	(dprintf_print_recreate, update_static_tracepoint)
+	(breakpoint_re_set_default): Update.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* compile/compile-loc2c.c (compute_stack_depth_worker): Change
+	type of "to_do".  Update.
+	(compute_stack_depth): Use std::vector.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* printcmd.c (find_instruction_backward): Use std::vector.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* symfile.c (objfilep): Remove typedef.
+	(reread_symbols): Use a std::vector.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-main.c (exec_direction_forward): Remove.
+	(exec_reverse_continue, mi_execute_command): Use scoped_restore.
+	* guile/scm-ports.c (ioscm_with_output_to_port_worker): Use
+	scoped_restore.
+	* guile/guile.c (guile_repl_command, guile_command)
+	(gdbscm_execute_gdb_command): Use scoped_restore.
+	* go-exp.y (go_parse): Use scoped_restore.
+	* d-exp.y (d_parse): Use scoped_restore.
+	* cli/cli-decode.c (cmd_func): Use scoped_restore.
+	* c-exp.y (c_parse): Use scoped_restore.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* mi/mi-parse.h (struct mi_parse): Add constructor, destructor.
+	(mi_parse): Update return type.
+	(mi_parse_free): Remove.
+	* mi/mi-parse.c (mi_parse::mi_parse): New constructor.
+	(mi_parse::~mi_parse): Rename from mi_parse_free.
+	(mi_parse_cleanup): Remove.
+	(mi_parse): Return a unique_ptr.  Use new.
+	* mi/mi-main.c (mi_execute_command): Update.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* location.c (explicit_location_lex_one): Return a
+	unique_xmalloc_ptr.
+	(string_to_explicit_location): Update.  Remove cleanups.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* gnu-v3-abi.c (value_and_voffset_p): Remove typedef.
+	(compare_value_and_voffset): Change type.  Update.
+	(compute_vtable_size): Change type of "offset_vec".
+	(gnuv3_print_vtable): Use std::vector.  Remove cleanups.
+	(gnuv3_get_typeid): Remove extraneous declaration.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* charset.h (wchar_iterator): Fix comment.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* charset.c (iconv_wrapper): New class.
+	(cleanup_iconv): Remove.
+	(convert_between_encodings): Use it.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* symfile.h (increment_reading_symtab): Update type.
+	* symfile.c (decrement_reading_symtab): Remove.
+	(increment_reading_symtab): Return a scoped_restore_tmpl<int>.
+	* psymtab.c (psymtab_to_symtab): Update.
+	* dwarf2read.c (dw2_instantiate_symtab): Update.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* jit.c (struct jit_reader): Declare separately.  Add constructor
+	and destructor.  Change type of "handle".
+	(loaded_jit_reader): Define separately.
+	(jit_reader_load): Update.  New "new".
+	(jit_reader_unload_command): Use "delete".
+	* gdb-dlfcn.h (struct dlclose_deleter): New.
+	(gdb_dlhandle_up): New typedef.
+	(gdb_dlopen, gdb_dlsym): Update types.
+	(gdb_dlclose): Remove.
+	* gdb-dlfcn.c (gdb_dlopen): Return a gdb_dlhandle_up.
+	(gdb_dlsym): Change type of "handle".
+	(make_cleanup_dlclose): Remove.
+	(dlclose_deleter::operator()): Rename from gdb_dlclose.
+	* compile/compile-c-support.c (load_libcc): Update.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* symtab.h (find_pcs_for_symtab_line): Change return type.
+	* symtab.c (find_pcs_for_symtab_line): Change return type.
+	* python/py-linetable.c (build_line_table_tuple_from_pcs): Change
+	type of "vec".  Update.
+	(ltpy_get_pcs_for_line): Update.
+	* linespec.c (decode_digits_ordinary): Update.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* tracepoint.c (actions_command): Update.
+	* python/python.c (python_command, python_interactive_command):
+	Update.
+	* mi/mi-cmd-break.c (mi_cmd_break_commands): Update.
+	* guile/guile.c (guile_command): Update.
+	* defs.h (read_command_lines, read_command_lines_1): Return
+	command_line_up.
+	(command_lines_deleter): New struct.
+	(command_line_up): New typedef.
+	* compile/compile.c (compile_code_command)
+	(compile_print_command): Update.
+	* cli/cli-script.h (get_command_line, copy_command_lines): Return
+	command_line_up.
+	(make_cleanup_free_command_lines): Remove.
+	* cli/cli-script.c (get_command_line, read_command_lines_1)
+	(copy_command_lines): Return command_line_up.
+	(while_command, if_command, read_command_lines, define_command)
+	(document_command): Update.
+	(do_free_command_lines_cleanup, make_cleanup_free_command_lines):
+	Remove.
+	* breakpoint.h (breakpoint_set_commands): Change type of
+	"commands".
+	* breakpoint.c (breakpoint_set_commands): Change type of
+	"commands".  Update.
+	(do_map_commands_command, update_dprintf_command_list)
+	(create_tracepoint_from_upload): Update.
+
+2017-04-12  Tom Tromey  <tom@tromey.com>
+
+	* tracepoint.c (scope_info): Update.
+	* spu-tdep.c (spu_catch_start): Update.
+	* python/python.c (gdbpy_decode_line): Update.
+	* python/py-finishbreakpoint.c (bpfinishpy_init): Update.
+	* python/py-breakpoint.c (bppy_init): Update.
+	* probe.c (parse_probes): Update.
+	* mi/mi-cmd-break.c (mi_cmd_break_insert_1): Update.
+	* location.h (event_location_deleter): New struct.
+	(event_location_up): New typedef.
+	(new_linespec_location, new_address_location, new_probe_location)
+	(new_explicit_location, copy_event_location)
+	(string_to_event_location, string_to_event_location_basic)
+	(string_to_explicit_location): Update return type.
+	(make_cleanup_delete_event_location): Remove.
+	* location.c (new_linespec_location, new_address_location)
+	(new_probe_location, new_explicit_location, copy_event_location):
+	Return event_location_up.
+	(delete_event_location_cleanup)
+	(make_cleanup_delete_event_location): Remove.
+	(string_to_explicit_location, string_to_event_location_basic)
+	(string_to_event_location): Return event_location_up.
+	* linespec.c (canonicalize_linespec, event_location_to_sals)
+	(decode_line_with_current_source)
+	(decode_line_with_last_displayed, decode_objc): Update.
+	* guile/scm-breakpoint.c (gdbscm_register_breakpoint_x): Update.
+	* completer.c (location_completer): Update.
+	* cli/cli-cmds.c (edit_command, list_command): Update.
+	* breakpoint.c (create_overlay_event_breakpoint)
+	(create_longjmp_master_breakpoint)
+	(create_std_terminate_master_breakpoint)
+	(create_exception_master_breakpoint)
+	(create_thread_event_breakpoint): Update.
+	(init_breakpoint_sal): Update.  Remove some dead code.
+	(create_breakpoint_sal): Change type of "location".  Update.
+	(create_breakpoints_sal, create_breakpoint, break_command_1)
+	(dprintf_command, break_range_command, until_break_command)
+	(init_ada_exception_breakpoint)
+	(strace_marker_create_sals_from_location)
+	(update_static_tracepoint, trace_command, ftrace_command)
+	(strace_command, create_tracepoint_from_upload): Update.
+	* break-catch-throw.c (re_set_exception_catchpoint): Update.
+	* ax-gdb.c (agent_command_1): Update.
+
+2017-04-12  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (ALL_TARGET_OBS): Add i386-go32-tdep.o.
+	* configure.tgt: Handle i[34567]86-*-go32* and
+	i[34567]86-*-msdosdjgpp*.
+	* i386-tdep.c (i386_svr4_reg_to_regnum):
+	Make extern.
+	(i386_go32_init_abi, i386_coff_osabi_sniffer): Moved to
+	i386-go32-tdep.c.
+	(_initialize_i386_tdep): DJGPP bits moved to i386-go32-tdep.c.
+	* i386-go32-tdep.c: New file.
+	* i386-tdep.h (tdesc_i386_mmx, i386_svr4_reg_to_regnum): New
+	declarations.
+
+2017-04-12  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* aix-thread.c (pd_status2str): Change return type to const char *.
+
+2017-04-12  Pedro Alves  <palves@redhat.com>
+
+	* i386-tdep.c (i386_elf_init_abi, i386_go32_init_abi): Remove
+	calls to set_gdbarch_gnu_triplet_regexp.
+
+2017-04-12  Pedro Alves  <palves@redhat.com>
+
+	PR gdb/21323
+	* c-lang.c (cplus_primitive_types) <cplus_primitive_type_wchar_t>:
+	New enum value.
+	(cplus_language_arch_info): Register cplus_primitive_type_wchar_t.
+	* gdbtypes.h (struct builtin_type) <builtin_wchar>: New field.
+	* gdbtypes.c (gdbtypes_post_init): Create the "wchar_t" type.
+	* gdbarch.sh (wchar_bit, wchar_signed): New per-arch values.
+	* gdbarch.h, gdbarch.c: Regenerate.
+	* aarch64-tdep.c (aarch64_gdbarch_init): Override
+	gdbarch_wchar_bit and gdbarch_wchar_signed.
+	* alpha-tdep.c (alpha_gdbarch_init): Likewise.
+	* arm-tdep.c (arm_gdbarch_init): Likewise.
+	* avr-tdep.c (avr_gdbarch_init): Likewise.
+	* h8300-tdep.c (h8300_gdbarch_init): Likewise.
+	* i386-nto-tdep.c (i386nto_init_abi): Likewise.
+	* i386-tdep.c (i386_go32_init_abi): Likewise.
+	* m32r-tdep.c (m32r_gdbarch_init): Likewise.
+	* moxie-tdep.c (moxie_gdbarch_init): Likewise.
+	* nds32-tdep.c (nds32_gdbarch_init): Likewise.
+	* rs6000-aix-tdep.c (rs6000_aix_init_osabi): Likewise.
+	* sh-tdep.c (sh_gdbarch_init): Likewise.
+	* sparc-tdep.c (sparc32_gdbarch_init): Likewise.
+	* sparc64-tdep.c (sparc64_init_abi): Likewise.
+	* windows-tdep.c (windows_init_abi): Likewise.
+	* xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise.
+
+2017-04-12  Pedro Alves  <palves@redhat.com>
+
+	PR c++/21323
+	* c-lang.c (cplus_primitive_types) <cplus_primitive_type_char16_t,
+	cplus_primitive_type_char32_t>: New enum values.
+	(cplus_language_arch_info): Register cplus_primitive_type_char16_t
+	and cplus_primitive_type_char32_t.
+	* dwarf2read.c (read_base_type) <DW_ATE_UTF>: If bit size is 16 or
+	32, use the archtecture's built-in type for char16_t and char32_t,
+	respectively.  Otherwise, fallback to init_integer_type as before,
+	but make the type unsigned, and issue a complaint.
+	* gdbtypes.c (gdbtypes_post_init): Make char16_t and char32_t unsigned.
+
+2017-04-12  Alan Hayward  <alan.hayward@arm.com>
+
+	* m32r-tdep.c (M32R_ARG_REGISTER_SIZE): Added.
+	(m32r_push_dummy_call): Use M32R_ARG_REGISTER_SIZE.
+
+2017-04-12  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* windows-nat.c (windows_create_inferior): Declare 'toexec' as
+	'const char *'.
+
+2017-04-12  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* common/common-utils.c (free_vector_argv): New function.
+	* common/common-utils.h: Include <vector>.
+	(free_vector_argv): New prototype.
+	* darwin-nat.c (darwin_create_inferior): Rewrite function
+	prototype in order to constify "exec_file" and accept a
+	"std::string" for "allargs".
+	* fork-child.c: Include <vector>.
+	(breakup_args): Rewrite function, using C++.
+	(fork_inferior): Rewrite function header, constify "exec_file_arg"
+	and accept "std::string" for "allargs".  Update the code to
+	calculate "argv" based on "allargs".  Update calls to "exec_fun"
+	and "execvp".
+	* gnu-nat.c (gnu_create_inferior): Rewrite function prototype in
+	order to constify "exec_file" and accept a "std::string" for
+	"allargs".
+	* go32-nat.c (go32_create_inferior): Likewise.
+	* inf-ptrace.c (inf_ptrace_create_inferior): Likewise.
+	* infcmd.c (run_command_1): Constify "exec_file".  Use
+	"std::string" for inferior arguments.
+	* inferior.h (fork_inferior): Update prototype.
+	* linux-nat.c (linux_nat_create_inferior): Rewrite function
+	prototype in order to constify "exec_file" and accept a
+	"std::string" for "allargs".
+	* nto-procfs.c (procfs_create_inferior): Likewise.
+	* procfs.c (procfs_create_inferior): Likewise.
+	* remote-sim.c (gdbsim_create_inferior): Likewise.
+	* remote.c (extended_remote_run): Update code to accept
+	"std::string" as argument.
+	(extended_remote_create_inferior): Rewrite function prototype in
+	order to constify "exec_file" and accept a "std::string" for
+	"allargs".
+	* rs6000-nat.c (super_create_inferior): Likewise.
+	(rs6000_create_inferior): Likewise.
+	* target.h (struct target_ops) <to_create_inferior>: Likewise.
+	* windows-nat.c (windows_create_inferior): Likewise.
+
+2017-04-11  Pedro Alves  <palves@redhat.com>
+
+	* thread.c: Fix whitespace throughout.
+
+2017-04-11  Philipp Rudo  <prudo@linux.vnet.ibm.com>
+
+	* linux-nat.c (linux_nat_detach): Remove delete_lwp call.
+
+2017-04-11  Alan Hayward  <alan.hayward@arm.com>
+
+	* arm-tdep.c (arm_store_return_value): Use FP_REGISTER_SIZE
+
+2017-04-10  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR gdb/21364
+	* osdata.c (info_osdata): Check if 'type' is an empty string
+	instead of NULL.
+
+2017-04-10  Pedro Alves  <palves@redhat.com>
+
+	* thread.c (add_thread_silent, delete_thread_1, find_thread_ptid)
+	(ptid_to_global_thread_id, in_thread_list)
+	(do_captured_list_thread_ids, set_resumed, set_running)
+	(set_executing, set_stop_requested, finish_thread_state)
+	(validate_registers_access, can_access_registers_ptid)
+	(print_thread_info_1, switch_to_thread)
+	(do_restore_current_thread_cleanup)
+	(make_cleanup_restore_current_thread, thread_command)
+	(thread_name_command): Use operator== instead of ptid_equal.
+
+2017-04-10  Pedro Alves  <palves@redhat.com>
+
+	* thread.c (struct current_thread_cleanup) <next>: Delete field.
+	(current_thread_cleanup_chain): Delete.
+	(restore_current_thread_cleanup_dtor)
+	(make_cleanup_restore_current_thread): Remove references to
+	current_thread_cleanup_chain.
+
+2017-04-10  Alan Hayward  <alan.hayward@arm.com>
+
+	* msp430-tdep.c (msp430_pseudo_register_read): Never return
+	REG_UNKNOWN.
+
+2017-04-10  Yao Qi  <yao.qi@linaro.org>
+
+	PR gdb/19942
+	* gdbthread.h (thread_info::deletable): New method.
+	(thread_info::incref): New method.
+	(thread_info::decref): New method.
+	(thread_info::refcount): Move it to private.
+	* infrun.c (save_stop_context): Call inc_refcount.
+	(release_stop_context_cleanup): Likewise.
+	* thread.c (set_thread_exited): New function.
+	(init_thread_list): Delete "tp" only it is deletable, otherwise
+	call set_thread_exited.
+	(delete_thread_1): Call set_thread_exited.
+	(current_thread_cleanup) <inferior_pid>: Remove.
+	<thread>: New field.
+	(restore_current_thread_ptid_changed): Removed.
+	(do_restore_current_thread_cleanup): Adjust.
+	(restore_current_thread_cleanup_dtor): Don't call
+	find_thread_ptid.
+	(set_thread_refcount): Use dec_refcount.
+	(make_cleanup_restore_current_thread): Adjust.
+	(thread_apply_all_command): Call inc_refcount.
+	(_initialize_thread): Don't call
+	observer_attach_thread_ptid_changed.
+
+2017-04-10  Yao Qi  <yao.qi@linaro.org>
+
+	* thread.c (delete_thread_1): Hoist code on marking thread as
+	exited.
+
+2017-04-09  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* windows-nat.c (windows_detach): Initialize ptid with
+	minus_one_ptid.
+
+2017-04-07  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* unittests/ptid-selftests.c: Fix erroneous assert messages.
+
+2017-04-07  Alan Hayward  <alan.hayward@arm.com>
+
+	* bfin-tdep.c (BFIN_MAX_REGISTER_SIZE): Add.
+	(bfin_pseudo_register_read): Use BFIN_MAX_REGISTER_SIZE.
+	(bfin_pseudo_register_write): Likewise
+
+2017-04-06  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* common/ptid.h (struct ptid): Change to...
+	(class ptid_t): ... this.
+	<ptid_t>: New constructors.
+	<pid, lwp_p, lwp, tid_p, tid, is_pid, operator==, operator!=,
+	matches>: New methods.
+	<make_null, make_minus_one>: New static methods.
+	<pid>: Rename to...
+	<m_pid>: ...this.
+	<lwp>: Rename to...
+	<m_lwp>: ...this.
+	<tid>: Rename to...
+	<m_tid>: ...this.
+	(ptid_build, ptid_get_pid, ptid_get_lwp, ptid_get_tid, ptid_equal,
+	ptid_is_pid, ptid_lwp_p, ptid_tid_p, ptid_match): Take ptid arguments
+	as references, move comment to class ptid_t.
+	* common/ptid.c (null_ptid, minus_one_ptid): Initialize with
+	ptid_t static methods.
+	(ptid_build, pid_to_ptid, ptid_get_pid, ptid_get_tid,
+	ptid_equal, ptid_is_pid, ptid_lwp_p, ptid_tid_p, ptid_match):
+	Take ptid arguments as references, implement using ptid_t methods.
+	* unittests/ptid-selftests.c: New file.
+	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
+	unittests/ptid-selftests.c.
+	(SUBDIR_UNITTESTS_OBS): Add unittests/ptid-selftests.o.
+
+2017-04-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+	* python/python.c (python_run_simple_file): Cast mode literal to
+	non-const char pointer as expected by PyFile_FromString.
+
+2017-04-05  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* common/ptid.c (ptid_lwp_p, ptid_tid_p): Remove comparison with
+	minus_one_ptid and null_ptid.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* warning.m4 (build_warnings): Remove -Wno-write-strings.
+	* configure: Regenerate.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* ada-exp.y (yyerror): Constify.
+	* ada-lang.c (bound_name, get_selections)
+	(ada_variant_discrim_type)
+	(ada_variant_discrim_name, ada_value_struct_elt)
+	(ada_lookup_struct_elt_type, is_unchecked_variant)
+	(ada_which_variant_applies, standard_exc, ada_get_next_arg)
+	(catch_ada_exception_command_split)
+	(catch_ada_assert_command_split, catch_assert_command)
+	(ada_op_name): Constify.
+	* ada-lang.h (ada_yyerror, get_selections)
+	(ada_variant_discrim_name, ada_value_struct_elt): Constify.
+	* arc-tdep.c (arc_print_frame_cache): Constify.
+	* arm-tdep.c (arm_skip_stub): Constify.
+	* ax-gdb.c (gen_binop, gen_struct_ref_recursive, gen_struct_ref)
+	(gen_aggregate_elt_ref): Constify.
+	* bcache.c (print_bcache_statistics): Constify.
+	* bcache.h (print_bcache_statistics): Constify.
+	* break-catch-throw.c (catch_exception_command_1):
+	* breakpoint.c (struct ep_type_description::description):
+	Constify.
+	(add_solib_catchpoint): Constify.
+	(catch_fork_command_1): Add cast.
+	(add_catch_command): Constify.
+	* breakpoint.h (add_catch_command, add_solib_catchpoint):
+	Constify.
+	* bsd-uthread.c (bsd_uthread_state): Constify.
+	* buildsym.c (patch_subfile_names): Constify.
+	* buildsym.h (next_symbol_text_func, patch_subfile_names):
+	Constify.
+	* c-exp.y (yyerror): Constify.
+	(token::oper): Constify.
+	* c-lang.h (c_yyerror, cp_print_class_member): Constify.
+	* c-varobj.c (cplus_describe_child): Constify.
+	* charset.c (find_charset_names): Add cast.
+	(find_charset_names): Constify array and add const_cast.
+	* cli/cli-cmds.c (complete_command, cd_command): Constify.
+	(edit_command): Constify.
+	* cli/cli-decode.c (lookup_cmd): Constify.
+	* cli/cli-dump.c (dump_memory_command, dump_value_command):
+	Constify.
+	(struct dump_context): Constify.
+	(add_dump_command, restore_command): Constify.
+	* cli/cli-script.c (get_command_line): Constify.
+	* cli/cli-script.h (get_command_line): Constify.
+	* cli/cli-utils.c (check_for_argument): Constify.
+	* cli/cli-utils.h (check_for_argument): Constify.
+	* coff-pe-read.c (struct read_pe_section_data): Constify.
+	* command.h (lookup_cmd): Constify.
+	* common/print-utils.c (decimal2str): Constify.
+	* completer.c (gdb_print_filename): Constify.
+	* corefile.c (set_gnutarget): Constify.
+	* cp-name-parser.y (yyerror): Constify.
+	* cp-valprint.c (cp_print_class_member): Constify.
+	* cris-tdep.c (cris_register_name, crisv32_register_name):
+	Constify.
+	* d-exp.y (yyerror): Constify.
+	(struct token::oper): Constify.
+	* d-lang.h (d_yyerror): Constify.
+	* dbxread.c (struct header_file_location::name): Constify.
+	(add_old_header_file, add_new_header_file, last_function_name)
+	(dbx_next_symbol_text, add_bincl_to_list)
+	(find_corresponding_bincl_psymtab, set_namestring)
+	(find_stab_function_addr, read_dbx_symtab, start_psymtab)
+	(dbx_end_psymtab, read_ofile_symtab, process_one_symbol):
+	* defs.h (command_line_input, print_address_symbolic)
+	(deprecated_readline_begin_hook): Constify.
+	* dwarf2read.c (anonymous_struct_prefix, dwarf_bool_name):
+	Constify.
+	* event-top.c (handle_line_of_input): Constify and add cast.
+	* exceptions.c (catch_errors): Constify.
+	* exceptions.h (catch_errors): Constify.
+	* expprint.c (print_subexp_standard, op_string, op_name)
+	(op_name_standard, dump_raw_expression, dump_raw_expression):
+	* expression.h (op_name, op_string, dump_raw_expression):
+	Constify.
+	* f-exp.y (yyerror): Constify.
+	(struct token::oper): Constify.
+	(struct f77_boolean_val::name): Constify.
+	* f-lang.c (f_word_break_characters): Constify.
+	* f-lang.h (f_yyerror): Constify.
+	* fork-child.c (fork_inferior): Add cast.
+	* frv-tdep.c (struct gdbarch_tdep::register_names): Constify.
+	(new_variant): Constify.
+	* gdbarch.sh (pstring_ptr, pstring_list): Constify.
+	* gdbarch.c: Regenerate.
+	* gdbcore.h (set_gnutarget): Constify.
+	* go-exp.y (yyerror): Constify.
+	(token::oper): Constify.
+	* go-lang.h (go_yyerror): Constify.
+	* go32-nat.c (go32_sysinfo): Constify.
+	* guile/scm-breakpoint.c (gdbscm_breakpoint_expression): Constify.
+	* guile/scm-cmd.c (cmdscm_function): Constify.
+	* guile/scm-param.c (pascm_param_value): Constify.
+	* h8300-tdep.c (h8300_register_name, h8300s_register_name)
+	(h8300sx_register_name): Constify.
+	* hppa-tdep.c (hppa32_register_name, hppa64_register_name):
+	Constify.
+	* ia64-tdep.c (ia64_register_names): Constify.
+	* infcmd.c (construct_inferior_arguments): Constify.
+	(path_command, attach_post_wait): Constify.
+	* language.c (show_range_command, show_case_command)
+	(unk_lang_error): Constify.
+	* language.h (language_defn::la_error)
+	(language_defn::la_name_of_this): Constify.
+	* linespec.c (decode_line_2): Constify.
+	* linux-thread-db.c (thread_db_err_str): Constify.
+	* lm32-tdep.c (lm32_register_name): Constify.
+	* m2-exp.y (yyerror): Constify.
+	* m2-lang.h (m2_yyerror): Constify.
+	* m32r-tdep.c (m32r_register_names): Constify and make static.
+	* m68hc11-tdep.c (m68hc11_register_names): Constify.
+	* m88k-tdep.c (m88k_register_name): Constify.
+	* macroexp.c (appendmem): Constify.
+	* mdebugread.c (fdr_name, add_data_symbol, parse_type)
+	(upgrade_type, parse_external, parse_partial_symbols)
+	(mdebug_next_symbol_text, cross_ref, mylookup_symbol, new_psymtab)
+	(new_symbol): Constify.
+	* memattr.c (mem_info_command): Constify.
+	* mep-tdep.c (register_name_from_keyword): Constify.
+	* mi/mi-cmd-env.c (mi_cmd_env_path, _initialize_mi_cmd_env):
+	Constify.
+	* mi/mi-cmd-stack.c (list_args_or_locals): Constify.
+	* mi/mi-cmd-var.c (mi_cmd_var_show_attributes): Constify.
+	* mi/mi-main.c (captured_mi_execute_command): Constify and add
+	cast.
+	(mi_execute_async_cli_command): Constify.
+	* mips-tdep.c (mips_register_name): Constify.
+	* mn10300-tdep.c (register_name, mn10300_generic_register_name)
+	(am33_register_name, am33_2_register_name)
+	* moxie-tdep.c (moxie_register_names): Constify.
+	* nat/linux-osdata.c (osdata_type): Constify fields.
+	* nto-tdep.c (nto_parse_redirection): Constify.
+	* objc-lang.c (lookup_struct_typedef, lookup_objc_class)
+	(lookup_child_selector): Constify.
+	(objc_methcall::name): Constify.
+	* objc-lang.h (lookup_objc_class, lookup_child_selector)
+	(lookup_struct_typedef): Constify.
+	* objfiles.c (pc_in_section): Constify.
+	* objfiles.h (pc_in_section): Constify.
+	* p-exp.y (struct token::oper): Constify.
+	(yyerror): Constify.
+	* p-lang.h (pascal_yyerror): Constify.
+	* parser-defs.h (op_name_standard): Constify.
+	(op_print::string): Constify.
+	(exp_descriptor::op_name): Constify.
+	* printcmd.c (print_address_symbolic): Constify.
+	* psymtab.c (print_partial_symbols): Constify.
+	* python/py-breakpoint.c (stop_func): Constify.
+	(bppy_get_expression): Constify.
+	* python/py-cmd.c (cmdpy_completer::name): Constify.
+	(cmdpy_function): Constify.
+	* python/py-event.c (evpy_add_attribute)
+	(gdbpy_initialize_event_generic): Constify.
+	* python/py-event.h (evpy_add_attribute)
+	(gdbpy_initialize_event_generic): Constify.
+	* python/py-evts.c (add_new_registry): Constify.
+	* python/py-finishbreakpoint.c (outofscope_func): Constify.
+	* python/py-framefilter.c (get_py_iter_from_func): Constify.
+	* python/py-inferior.c (get_buffer): Add cast.
+	* python/py-param.c (parm_constant::name): Constify.
+	* python/py-unwind.c (fprint_frame_id): Constify.
+	* python/python.c (gdbpy_parameter_value): Constify.
+	* remote-fileio.c (remote_fio_func_map): Make 'name' const.
+	* remote.c (memory_packet_config::name): Constify.
+	(show_packet_config_cmd, remote_write_bytes)
+	(remote_buffer_add_string):
+	* reverse.c (exec_reverse_once): Constify.
+	* rs6000-tdep.c (variant::name, variant::description): Constify.
+	* rust-exp.y (rustyyerror): Constify.
+	* rust-lang.c (rust_op_name): Constify.
+	* rust-lang.h (rustyyerror): Constify.
+	* serial.h (serial_ops::name): Constify.
+	* sh-tdep.c (sh_sh_register_name, sh_sh3_register_name)
+	(sh_sh3e_register_name, sh_sh2e_register_name)
+	(sh_sh2a_register_name, sh_sh2a_nofpu_register_name)
+	(sh_sh_dsp_register_name, sh_sh3_dsp_register_name)
+	(sh_sh4_register_name, sh_sh4_nofpu_register_name)
+	(sh_sh4al_dsp_register_name): Constify.
+	* sh64-tdep.c (sh64_register_name): Constify.
+	* solib-darwin.c (lookup_symbol_from_bfd): Constify.
+	* spu-tdep.c (spu_register_name, info_spu_dma_cmdlist): Constify.
+	* stabsread.c (patch_block_stabs, read_type_number)
+	(ref_map::stabs, ref_add, process_reference)
+	(symbol_reference_defined, define_symbol, define_symbol)
+	(error_type, read_type, read_member_functions, read_cpp_abbrev)
+	(read_one_struct_field, read_struct_fields, read_baseclasses)
+	(read_tilde_fields, read_struct_type, read_array_type)
+	(read_enum_type, read_sun_builtin_type, read_sun_floating_type)
+	(read_huge_number, read_range_type, read_args, common_block_start)
+	(find_name_end): Constify.
+	* stabsread.h (common_block_start, define_symbol)
+	(process_one_symbol, symbol_reference_defined, ref_add):
+	* symfile.c (get_section_index, add_symbol_file_command):
+	* symfile.h (get_section_index): Constify.
+	* target-descriptions.c (tdesc_type::name): Constify.
+	(tdesc_free_type): Add cast.
+	* target.c (find_default_run_target):
+	(add_deprecated_target_alias, find_default_run_target)
+	(target_announce_detach): Constify.
+	(do_option): Constify.
+	* target.h (add_deprecated_target_alias): Constify.
+	* thread.c (print_thread_info_1): Constify.
+	* top.c (deprecated_readline_begin_hook, command_line_input):
+	Constify.
+	(init_main): Add casts.
+	* top.h (handle_line_of_input): Constify.
+	* tracefile-tfile.c (tfile_write_uploaded_tsv): Constify.
+	* tracepoint.c (tvariables_info_1, trace_status_mi): Constify.
+	(tfind_command): Rename to ...
+	(tfind_command_1): ... this and constify.
+	(tfind_command): New function.
+	(tfind_end_command, tfind_start_command): Adjust.
+	(encode_source_string): Constify.
+	* tracepoint.h (encode_source_string): Constify.
+	* tui/tui-data.c (tui_partial_win_by_name): Constify.
+	* tui/tui-data.h (tui_partial_win_by_name): Constify.
+	* tui/tui-source.c (tui_set_source_content_nil): Constify.
+	* tui/tui-source.h (tui_set_source_content_nil): Constify.
+	* tui/tui-win.c (parse_scrolling_args): Constify.
+	* tui/tui-windata.c (tui_erase_data_content): Constify.
+	* tui/tui-windata.h (tui_erase_data_content): Constify.
+	* tui/tui-winsource.c (tui_erase_source_content): Constify.
+	* tui/tui.c (tui_enable): Add cast.
+	* utils.c (defaulted_query): Constify.
+	(init_page_info): Add cast.
+	(puts_debug, subset_compare): Constify.
+	* utils.h (subset_compare): Constify.
+	* varobj.c (varobj_format_string): Constify.
+	* varobj.h (varobj_format_string): Constify.
+	* vax-tdep.c (vax_register_name): Constify.
+	* windows-nat.c (windows_detach): Constify.
+	* xcoffread.c (process_linenos, xcoff_next_symbol_text): Constify.
+	* xml-support.c (gdb_xml_end_element): Constify.
+	* xml-tdesc.c (tdesc_start_reg): Constify.
+	* xstormy16-tdep.c (xstormy16_register_name): Constify.
+	* xtensa-tdep.c (xtensa_find_register_by_name): Constify.
+	* xtensa-tdep.h (xtensa_register_t::name): Constify.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* proc-api.c (struct trans): Constify.
+	(procfs_note): Constify.
+	* proc-events.c (struct trans, syscall_table):
+	* proc-flags.c (struct trans): Constify.
+	* proc-utils.h (procfs_note): Constify.
+	* proc-why.c (struct trans): Constify.
+	* procfs.c (dead_procinfo, find_syscall, proc_warn, proc_error)
+	(procfs_detach): Constify.
+	* sol-thread.c (struct string_map): Constify.
+	(td_err_string, td_state_string): Constify.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* proc-api.c (procfs_filename): Don't initialize
+        procfs_filename.
+	(prepare_to_trace): Assume procfs_filename is non-NULL.
+	(_initialize_proc_api): Give procfs_filename a default value here.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* break-catch-throw.c (handle_gnu_v3_exceptions): Constify
+	'cond_string' parameter.
+	(extract_exception_regexp): Constify 'string' parameter.
+	(catch_exception_command_1): Constify.
+	* breakpoint.c (init_catchpoint)
+	(create_fork_vfork_event_catchpoint): Constify 'cond_string'
+	parameter.
+	(ep_parse_optional_if_clause, catch_fork_command_1)
+	(catch_exec_command_1): Constify.
+	* breakpoint.h (init_catchpoint): Constify 'cond_string'
+	parameter.
+	(ep_parse_optional_if_clause): Constify.
+	* cli/cli-utils.c (remove_trailing_whitespace)
+	(check_for_argument): Constify.
+	* cli/cli-utils.h (remove_trailing_whitespace): Constify and add
+	non-const overload.
+	(check_for_argument): Likewise.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* event-top.c (command_line_handler): Add cast to execute_command
+	call.
+	* record-btrace.c (cmd_record_btrace_bts_start)
+	(cmd_record_btrace_pt_start, cmd_record_btrace_start)
+	(cmd_record_btrace_start): Add cast to execute_command call.
+	* record-full.c (record_full_goto_insn):
+	* record.c (record_start, record_stop): Add cast to
+	execute_command_to_string calls.
+	(cmd_record_start): Add cast to execute_command calls.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* python/python-internal.h (gdb_PyArg_ParseTupleAndKeywords): New
+	static inline function.
+	* python/py-arch.c (archpy_disassemble): Constify 'keywords'
+	array and use gdb_PyArg_ParseTupleAndKeywords.
+	* python/py-cmd.c (cmdpy_init): Likewise.
+	* python/py-finishbreakpoint.c (bpfinishpy_init): Likewise.
+	* python/py-inferior.c (infpy_read_memory, infpy_write_memory)
+	(infpy_search_memory): Likewise.
+	* python/py-objfile.c (objfpy_add_separate_debug_file)
+	(gdbpy_lookup_objfile): Likewise.
+	* python/py-symbol.c (gdbpy_lookup_symbol)
+	(gdbpy_lookup_global_symbol): Likewise.
+	* python/py-type.c (gdbpy_lookup_type): Likewise.
+	* python/py-value.c (valpy_lazy_string, valpy_string): Likewise.
+	* python/python.c (execute_gdb_command, gdbpy_write, gdbpy_flush):
+	Likewise.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* python/python-internal.h (gdb_PyGetSetDef): New type.
+	* python/py-block.c (block_object_getset)
+	(breakpoint_object_getset): Now a gdb_PyGetSetDef array.
+	* python/py-event.c (event_object_getset)
+	(finish_breakpoint_object_getset): Likewise.
+	* python/py-inferior.c (inferior_object_getset): Likewise.
+	* python/py-infthread.c (thread_object_getset): Likewise.
+	* python/py-lazy-string.c (lazy_string_object_getset): Likewise.
+	* python/py-linetable.c (linetable_entry_object_getset): Likewise.
+	* python/py-objfile.c (objfile_getset): Likewise.
+	* python/py-progspace.c (pspace_getset): Likewise.
+	* python/py-record-btrace.c (btpy_insn_getset, btpy_call_getset):
+	Likewise.
+	* python/py-record.c (recpy_record_getset): Likewise.
+	* python/py-symbol.c (symbol_object_getset): Likewise.
+	* python/py-symtab.c (symtab_object_getset, sal_object_getset):
+	Likewise.
+	* python/py-type.c (type_object_getset, field_object_getset):
+	Likewise.
+	* python/py-value.c (value_object_getset): Likewise.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* python/python-internal.h (gdb_PyObject_CallMethod)
+	(gdb_PyErr_NewException, gdb_PySys_GetObject, gdb_PySys_SetPath):
+	New functions.
+	(GDB_PYSYS_SETPATH_CHAR, PyObject_CallMethod, PyErr_NewException)
+	(PySys_GetObject, PySys_SetPath): New macros.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* mi/mi-cmd-info.c (mi_cmd_info_os): Call info_osdata instead of
+	info_osdata_command.
+	* osdata.c (info_osdata_command): Rename to ...
+	(info_osdata): ... this.  Constify 'type' parameter, and remove
+	the 'from_tty' parameter.  Accept NULL TYPE.
+	(info_osdata_command): New function.
+	* osdata.h (info_osdata_command): Remove declaration.
+	(info_osdata): New declaration.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* mi/mi-cmd-break.c (mi_cmd_break_insert_1, mi_cmd_break_insert)
+	(mi_cmd_dprintf_insert, mi_cmd_break_passcount)
+	(mi_cmd_break_watch, mi_cmd_break_commands): Constify 'command'
+	parameter.
+	* mi/mi-cmd-catch.c (mi_cmd_catch_assert, mi_cmd_catch_exception)
+	(mi_cmd_catch_load, mi_cmd_catch_unload): Constify cmd' parameter.
+	* mi/mi-cmd-disas.c (mi_cmd_disassemble): Constify 'command'
+	parameter.
+	* mi/mi-cmd-env.c (mi_cmd_env_pwd, mi_cmd_env_cd, mi_cmd_env_path)
+	(mi_cmd_env_dir, mi_cmd_inferior_tty_set, _cmd_inferior_tty_show)
+	* mi/mi-cmd-file.c (mi_cmd_file_list_exec_source_file)
+	(mi_cmd_file_list_exec_source_files)
+	(mi_cmd_file_list_shared_libraries): Constify 'command' parameter.
+	* mi/mi-cmd-info.c (mi_cmd_info_ada_exceptions)
+	(mi_cmd_info_gdb_mi_command, mi_cmd_info_os): Constify 'command'
+	parameter.
+	* mi/mi-cmd-stack.c (mi_cmd_enable_frame_filters)
+	(mi_cmd_stack_list_frames, mi_cmd_stack_info_depth)
+	(mi_cmd_stack_list_locals, mi_cmd_stack_list_args)
+	(mi_cmd_stack_list_variables, mi_cmd_stack_select_frame)
+	(mi_cmd_stack_info_frame): Constify 'command' parameter.
+	* mi/mi-cmd-target.c (mi_cmd_target_file_get)
+	(mi_cmd_target_file_put, mi_cmd_target_file_delete): Constify
+	'command' parameter.
+	* mi/mi-cmd-var.c (mi_cmd_var_create, mi_cmd_var_delete)
+	(mi_cmd_var_set_format, mi_cmd_var_set_visualizer)
+	(mi_cmd_var_set_frozen, mi_cmd_var_show_format)
+	(mi_cmd_var_info_num_children, mi_cmd_var_list_children)
+	(mi_cmd_var_info_type, mi_cmd_var_info_path_expression)
+	(mi_cmd_var_info_expression, mi_cmd_var_show_attributes)
+	(mi_cmd_var_evaluate_expression, mi_cmd_var_assign)
+	(mi_cmd_var_update, mi_cmd_enable_pretty_printing)
+	(mi_cmd_var_set_update_range): Constify 'command' parameter.
+	* mi/mi-cmds.h (mi_cmd_argv_ftype): Constify 'command' parameter.
+	* mi/mi-interp.c (mi_cmd_interpreter_exec): Constify 'command'
+	parameter.
+	* mi/mi-main.c (mi_cmd_gdb_exit, mi_cmd_exec_next)
+	(mi_cmd_exec_next_instruction, mi_cmd_exec_step)
+	(mi_cmd_exec_step_instruction, mi_cmd_exec_finish)
+	(mi_cmd_exec_return ,mi_cmd_exec_jump, mi_cmd_exec_continue)
+	(mi_cmd_exec_interrupt, mi_cmd_exec_run, mi_cmd_target_detach)
+	(mi_cmd_target_flash_erase, mi_cmd_thread_select)
+	(mi_cmd_thread_list_ids, mi_cmd_thread_info)
+	(mi_cmd_list_thread_groups, mi_cmd_data_list_register_names)
+	(mi_cmd_data_list_changed_registers)
+	(mi_cmd_data_write_register_values)
+	(mi_cmd_data_evaluate_expression, mi_cmd_data_read_memory)
+	(mi_cmd_data_read_memory_bytes, mi_cmd_data_write_memory)
+	(mi_cmd_data_write_memory_bytes, mi_cmd_enable_timings)
+	(mi_cmd_list_features, mi_cmd_list_target_features)
+	(mi_cmd_add_inferior, mi_cmd_remove_inferior)
+	(mi_cmd_trace_define_variable, mi_cmd_trace_list_variables)
+	(mi_cmd_trace_find, mi_cmd_trace_save, mi_cmd_trace_start)
+	(mi_cmd_trace_status, mi_cmd_trace_stop, mi_cmd_ada_task_info)
+	(mi_cmd_trace_frame_collected): Constify 'command'
+	parameter.
+	* mi/mi-symbol-cmds.c (mi_cmd_symbol_list_lines): Constify
+	'command' parameter.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (ada_completer_word_break_characters): Now a const
+	array.
+	(ada_get_gdb_completer_word_break_characters): Constify.
+	* completer.c (gdb_completer_command_word_break_characters)
+	(gdb_completer_file_name_break_characters)
+	(gdb_completer_quote_characters): Now const arrays.
+	(get_gdb_completer_quote_characters): Constify.
+	(set_rl_completer_word_break_characters): New function.
+	(set_gdb_completion_word_break_characters)
+	(complete_line_internal): Use it.
+	* completer.h (get_gdb_completer_quote_characters): Constify.
+	(set_rl_completer_word_break_characters): Declare.
+	* f-lang.c (f_word_break_characters): Constify.
+	* language.c (default_word_break_characters): Constify.
+	* language.h (language_defn::la_word_break_characters): Constify.
+	(default_word_break_characters): Constify.
+	* top.c (init_main): Use set_rl_completer_word_break_characters.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* aix-thread.c (aix_thread_pid_to_str)
+	(aix_thread_extra_thread_info): Constify.
+	* bsd-kvm.c (bsd_kvm_pid_to_str): Constify.
+	* bsd-uthread.c (bsd_uthread_extra_thread_info)
+	(bsd_uthread_pid_to_str): Constify.
+	* corelow.c (core_pid_to_str): Constify.
+	* darwin-nat.c (darwin_pid_to_str): Constify.
+	* fbsd-nat.c (fbsd_pid_to_str): Constify.
+	* fbsd-tdep.c (fbsd_core_pid_to_str, gdbarch_core_pid_to_str):
+	Constify.
+	* gnu-nat.c (gnu_pid_to_str): Constify.
+	* go32-nat.c (go32_pid_to_str): Constify.
+	* i386-cygwin-tdep.c (i386_windows_core_pid_to_str): Constify.
+	* inf-ptrace.c (inf_ptrace_pid_to_str): Constify.
+	* inferior.c (inferior_pid_to_str): Constify.
+	* linux-nat.c (linux_nat_pid_to_str): Constify.
+	* linux-tdep.c (linux_core_pid_to_str): Constify.
+	* linux-thread-db.c (thread_db_pid_to_str)
+	(thread_db_extra_thread_info): Constify.
+	* nto-tdep.c (nto_extra_thread_info): Constify.
+	* nto-tdep.h (nto_extra_thread_info): Constify.
+	* obsd-nat.c (obsd_pid_to_str): Constify.
+	* procfs.c (procfs_pid_to_str): Constify.
+	* ravenscar-thread.c (ravenscar_extra_thread_info)
+	(ravenscar_pid_to_str): Constify.
+	* remote-sim.c (gdbsim_pid_to_str): Constify.
+	* remote.c (remote_threads_extra_info, remote_pid_to_str):
+	Constify.
+	* sol-thread.c (solaris_pid_to_str): Constify.
+	* sol2-tdep.c (sol2_core_pid_to_str): Constify.
+	* sol2-tdep.h (sol2_core_pid_to_str): Constify.
+	* target.c (default_pid_to_str, target_pid_to_str)
+	(normal_pid_to_str, default_pid_to_str): Constify.
+	* target.h (target_ops::to_pid_to_str)
+	(target_ops::to_extra_thread_info): Constify.
+	(target_pid_to_str, normal_pid_to_str): Constify.
+	* windows-nat.c (windows_pid_to_str): Constify.
+	* gdbarch.sh (core_pid_to_str): Constify.
+	* target-delegates.c: Regenerate.
+	* gdbarch.h, gdbarch.c: Regenerate.
+
+2017-04-05  Pedro Alves	 <palves@redhat.com>
+
+	* main.c (captured_main_1): Use gdb::unique_xmalloc_ptr to manage
+	the memory of the temporary warning_pre_print override.
+	* utils.c (warning_pre_print): Constify.
+	* utils.h (warning_pre_print): Constify.
+
+2017-04-05  Pedro Alves	 <palves@redhat.com>
+
+	* cli/cli-cmds.c (shell_escape): Constify 'arg' parameter.
+	(shell_command): New function.
+	(make_command): Use std::string.
+	(init_cli_cmds): Register shell_command instead of shell_escape.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* breakpoint.c (dprintf_function, dprintf_channel): Don't initialize.
+	* tracepoint.c (default_collect): Don't initialize.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* macroexp.c (macro_buffer::shared): Now a bool.
+	(init_buffer): Update.
+	(init_shared_buffer): Constify 'addr' parameter.
+	(substitute_args, expand, macro_expand, macro_expand_next): Remove
+	casts.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* arm-tdep.c (show_disassembly_style_sfunc): Constify local.
+	* disasm.c (set_disassembler_options): Constify local.
+	* i386-tdep.c (i386_print_insn): Remove cast and FIXME comment.
+
+2017-04-05  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR gdb/21352
+	* tracefile.c (tsave_command): Fix argument parsing for '-r'
+	option.
+
+2017-04-05  Yao Qi  <yao.qi@linaro.org>
+
+	* frame.c (frame_unwind_register_unsigned): Call
+	frame_unwind_register_value.
+
+2017-04-05  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.threads/thread-specific-bp.exp (check_thread_specific_breakpoint):
+	Use gdb_test_multiple, and don't match anchor.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* MAINTAINERS (Global Maintainers): Add Simon Marchi.
+	(Write After Approval): Remove Simon Marchi.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* common/gdb_optional.h (optional::optional): Make constexpr and
+	initialize m_dummy.
+
+2017-04-04  John Baldwin  <jhb@FreeBSD.org>
+
+	* amd64-fbsd-tdep.c: Remove "bsd-uthread.h" include.
+	(amd64fbsd_jmp_buf_reg_offset): Remove.
+	(amd64fbsd_supply_uthread): Remove function.
+	(amd64fbsd_collect_uthread): Remove function.
+	(amd64fbsd_init_abi): Don't set bsd-uthread callbacks.
+	* configure.tgt (i[34567]86-*-freebsd*): Remove bsd-uthread.o.
+	(x86_64-*-freebsd*): Remove bsd-uthread.o.
+	(fbsd-nat.c): Update comment.
+	* i386-fbsd-tdep.c: Remove "bsd-uthread.h" include.
+	(i386fbsd_jmp_buf_reg_offset): Remove.
+	(i386fbsd_supply_uthread): Remove function.
+	(i386fbsd_collect_uthread): Remove function.
+	(i386fbsd_init_abi): Don't set bsd-uthread callbacks.
+
+2017-04-04  John Baldwin  <jhb@FreeBSD.org>
+
+	* Makefile.in (ALL_64_TARGET_OBS): Remove alpha-fbsd-tdep.o.
+	(ALLDEPFILES): Remove alpha-fbsd-tdep.c
+	* NEWS: Mention that support for FreeBSD/alpha was removed.
+	* alpha-fbsd-tdep.c: Delete file.
+	* config/alpha/fbsd.mh: Delete file.
+	* configure.host: Delete alpha*-*-freebsd* and
+	alpha*-*-kfreebsd*-gnu.
+	* configure.tgt: Delete alpha*-*-freebsd* and
+	alpha*-*-kfreebsd*-gnu.
+
+2017-04-04  John Baldwin  <jhb@FreeBSD.org>
+
+	* amd64-bsd-nat.c (amd64bsd_fetch_inferior_registers,
+	amd64bsd_store_inferior_registers): Use ptid from regcache.
+
+2017-04-04  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (lnp_state_machine): Now a class.  Initialize all
+	data fields, make them private and add "m_" prefixes.
+	(lnp_state_machine::lnp_state_machine): New ctor.
+	(record_line, check_line_address, handle_set_discriminator)
+	(handle_set_address, handle_advance_pc, handle_special_opcode)
+	(handle_advance_line, handle_set_file, handle_negate_stmt)
+	(handle_const_add_pc, handle_fixed_advance_pc, handle_copy)
+	(end_sequence, advance_line): New methods.
+	(m_gdbarch, m_record_lines_p): New fields.
+	(lnp_reader_state): Delete.
+	(dwarf_record_line): Rename to ...
+	(lnp_state_machine::record_line): ... adjust.
+	(init_lnp_state_machine): Delete.
+	(lnp_state_machine::lnp_state_machine): New.
+	(check_line_address): Rename to ...
+	(lnp_state_machine::check_line_address): This.
+	(dwarf_decode_lines_1): Remove reference to "reader_state".
+	Adjust lnp_state_machine having a non-default ctor.  Use bool.
+	State machine internal state manipulation moved to
+	lnp_state_machine methods.
+
+2017-04-04  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
+	unittests/offset-type-selftests.c.
+	(SUBDIR_UNITTESTS_OBS): Add offset-type-selftests.o.
+	* common/offset-type.h: New file.
+	* common/preprocessor.h: New file.
+	* common/traits.h: New file.
+	* common/valid-expr.h: New file.
+	* dwarf2expr.c: Include "common/underlying.h".  Adjust to use
+	sect_offset and cu_offset strong typedefs throughout.
+	* dwarf2expr.h: Adjust to use sect_offset and cu_offset strong
+	typedefs throughout.
+	* dwarf2loc.c: Include "common/underlying.h".  Adjust to use
+	sect_offset and cu_offset strong typedefs throughout.
+	* dwarf2read.c: Adjust to use sect_offset and cu_offset strong
+	typedefs throughout.
+	* gdbtypes.h: Include "common/offset-type.h".
+	(cu_offset): Now an offset type (strong typedef) instead of a
+	struct.
+	(sect_offset): Likewise.
+	(union call_site_parameter_u): Rename "param_offset" field to
+	"param_cu_off".
+	* unittests/offset-type-selftests.c: New file.
+
+2017-04-04  Pedro Alves  <palves@redhat.com>
+
+	* common/underlying.h: New file.
+	* dwarf2read.c: Include "common/gdb_optional.h" and
+	"common/underlying.h".
+	(dir_index, file_name_index): New types.
+	(file_entry): Use them.
+	(file_entry::include): Use to_underlying.
+	(line_header::add_file_name): Use dir_index.
+	(read_formatted_entries): Use gdb::optional.  Read form before
+	writting to file_entry.
+	(dwarf_decode_line_header): Use dir_index.
+	(lnp_state_machine::current_file): Use to_underlying.
+	(lnp_state_machine::file): Change type to file_name_index.
+	(dwarf_record_line): Use to_underlying.
+	(init_lnp_state_machine): Use file_name_index.
+	(dwarf_decode_lines_1): Use dir_index and file_name_index.
+
+2017-04-04  Pedro Alves  <palves@redhat.com>
+
+	* common/gdb_optional.h (gdb::optiona): Add operator->, operator*,
+	operator bool, has_value and get methods.
+
+2017-04-04  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (struct file_entry): Add ctors, and initialize all
+	fields.
+	(line_header): Initialize all data fields.  Change type of
+	standard_opcode_lengths to std::unique_ptr<unsigned char[]>.
+	Change type of include_dirs to std::vector<const char *>.  Remove
+	num_include_dirs, include_dirs_size.  Change type of file_names to
+	std::vector<file_entry>.  Remove num_file_names, file_names_size.
+	(line_header::line_header): New.
+	(line_header::add_include_dir, line_header::add_file_name): New
+	methods.
+	(line_header::include_dir_at): Remove NULL check.
+	(line_header::file_name_at): Add const overload.
+	(line_header_up): New unique_ptr typedef.
+	(dw2_get_file_names_reader): Use line_header_up.  Adjust to use
+	std::vector.  Remove free_line_header call.
+	(dwarf2_build_include_psymtabs): Use line_header_up.  Remove
+	free_line_header call.
+	(free_cu_line_header): Delete.
+	(handle_DW_AT_stmt_list, handle_DW_AT_stmt_list)
+	(setup_type_unit_groups): Use line_header_up instead of cleanups.
+	Adjust to use std::vector.
+	(free_line_header): Delete.
+	(free_line_header_voidp): Use delete.
+	(add_include_dir): Replace with ...
+	(line_header::add_include_dir): ... this method.  Use std::vector.
+	(add_file_name): Replace with ...
+	(line_header::add_file_name): ... this method.  Use std::vector.
+	(add_include_dir_stub): Delete.
+	(read_formatted_entries): Remove memset.
+	(dwarf_decode_line_header): Return a line_header_up instead of a
+	raw pointer.  Remove cleanup handling.  Pass lambdas to
+	read_formatted_entries.  Adjust to use line_header methods.
+	(dwarf_decode_lines_1): Adjust to use line_header methods.
+	(dwarf_decode_lines, file_file_name, file_full_name): Adjust to
+	use std::vector.
+
+2017-04-04  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* remote.c (set_general_thread, set_continue_thread): Use ptid_t
+	instead of struct ptid.
+
+2017-05-04  Alan Hayward  <alan.hayward@arm.com>
+
+	* frame.c (get_frame_register_bytes): Unwind using value.
+	(put_frame_register_bytes): Likewise.
+
+2017-03-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-exp.y (type_aggregate_p): Treat TYPE_CODE_MODULE as being
+	aggregate-like.
+
+2017-03-29  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* auto-load.c (auto_load_section_scripts): Check SEC_HAS_CONTENTS.
+
+2017-03-29  Yao Qi  <yao.qi@linaro.org>
+
+	* gdbthread.h (struct thread_info): Declare constructor and
+	destructor.  Add some in-class member initializers.
+	* thread.c (free_thread): Remove.
+	(init_thread_list): Call delete instead of free_thread.
+	(new_thread): Call thread_info constructor.
+	(thread_info::thread_info): New function.
+	(thread_info::~thread_info): New function.
+	(delete_thread_1): Call delete instead of free_thread.
+	(make_cleanup_restore_current_thread): Move tp and frame to
+	inner block.
+
+2017-03-28  Anton Kolesov  <anton.kolesov@synopsys.com>
+
+	* arc-tdep.c (arc_frame_cache): Add support for prologue analysis.
+	(arc_skip_prologue): Likewise.
+	(arc_make_frame_cache): Likewise.
+	(arc_pv_get_operand): New function.
+	(arc_is_in_prologue): Likewise.
+	(arc_analyze_prologue): Likewise.
+	(arc_print_frame_cache): Likewise.
+	(MAX_PROLOGUE_LENGTH): New constant.
+
+2017-03-28  Anton Kolesov  <anton.kolesov@synopsys.com>
+
+	* configure.tgt: Add arc-insn.o.
+	* arc-tdep.c (arc_delayed_print_insn): Make non-static.
+	(dump_arc_instruction_command): New function.
+	(arc_fprintf_disasm): Likewise.
+	(arc_disassemble_info): Likewise.
+	(arc_insn_get_operand_value): Likewise.
+	(arc_insn_get_operand_value_signed): Likewise.
+	(arc_insn_get_memory_base_reg): Likewise.
+	(arc_insn_get_memory_offset): Likewise.
+	(arc_insn_get_branch_target): Likewise.
+	(arc_insn_dump): Likewise.
+	(arc_insn_get_linear_next_pc): Likewise.
+	* arc-tdep.h (arc_delayed_print_insn): Add function declaration.
+	(arc_disassemble_info): Likewise.
+	(arc_insn_get_branch_target): Likewise.
+	(arc_insn_get_linear_next_pc): Likewise.
+	* NEWS: Mention new "maint print arc arc-instruction".
+
+2017-03-28  Anton Kolesov  <anton.kolesov@synopsys.com>
+
+	* arc-tdep (maintenance_print_arc_list): New variable.
+	(maintenance_print_arc_command): New function.
+
+2017-03-28  Anton Kolesov  <anton.kolesov@synopsys.com>
+
+	* arc-tdep.c (core_v2_register_names, core_arcompact_register_names)
+	Add "limm" and "reserved".
+	(arc_cannot_fetch_register, arc_cannot_store_register): Add
+	ARC_RESERVED_REGNUM and ARC_LIMM_REGNUM.
+	* arc-tdep.h (arc_regnum): Likewise.
+
+2017-03-27  Max Filippov  <jcmvbkbc@gmail.com>
+
+	* xtensa-linux-nat.c (fill_gregset): Call regcache_raw_collect
+	for THREADPTR register.
+	(supply_gregset_reg): Call regcache_raw_supply for THREADPTR
+	register.
+	* xtensa-tdep.c (XTENSA_DBREGN_UREG): New definition.
+	(xtensa_derive_tdep): Initialize tdep->threadptr_regnum.
+	* xtensa-tdep.h (gdbarch_tdep::threadptr_regnum): New field.
+
+2017-03-27  Max Filippov  <jcmvbkbc@gmail.com>
+
+	* xtensa-tdep.c (xtensa_pseudo_register_read): Treat all
+	registers above gdbarch_num_regs (gdbarch) as privileged in
+	call0 ABI.
+
+2017-03-27  Max Filippov  <jcmvbkbc@gmail.com>
+
+	* xtensa-linux-nat.c (fill_gregset): Call regcache_raw_collect
+	for a single specified register or for all registers in
+	a0_base..a0_base + C0_NREGS range.
+	(supply_gregset_reg): Call regcache_raw_supply for a single
+	specified register or for all registers in a0_base..a0_base +
+	C0_NREGS range.
+
+2017-03-27  Max Filippov  <jcmvbkbc@gmail.com>
+
+	* arch/xtensa.h (C0_NREGS): Add definition.
+	* xtensa-tdep.c (C0_NREGS): Remove definition.
+
+2017-03-27  Max Filippov  <jcmvbkbc@gmail.com>
+
+	* xtensa-tdep.c (xtensa_scan_prologue, call0_analyze_prologue):
+	Drop xtensa_default_isa initialization.
+	(xtensa_gdbarch_init): Initialize xtensa_default_isa.
+
+2017-03-27  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (file_entry) <dir_index>: Add comment.
+	(file_entry::include_dir): New method.
+	(line_header::include_dir_at, line_header::file_name_at): New
+	methods.
+	(setup_type_unit_groups, setup_type_unit_groups)
+	(psymtab_include_file_name): Simplify using the new methods.
+	(lnp_state_machine) <the_line_header>: New field.
+	<file>: Add comment.
+	(lnp_state_machine::current_file): New method.
+	(dwarf_record_line): Simplify using the new methods.
+	(init_lnp_state_machine): Initialize the "the_line_header" field.
+	(dwarf_decode_lines_1, dwarf_decode_lines, file_file_name):
+	Simplify using the new methods.
+
+2017-03-27  Pedro Alves  <palves@redhat.com>
+
+	* cp-name-parser.y (make_empty): Delete.
+	(demangler_special, nested_name, ptr_operator, array_indicator)
+	(direct_declarator, declarator_1): Use fill_comp instead of
+	make_empty.
+
+2017-03-27  Pedro Alves  <palves@redhat.com>
+
+	* xml-support.h (gdb_xml_debug): Pass a "first-to-check" argument
+	to ATTRIBUTE_PRINTF.
+	* solib-target.c (library_list_start_list): Print "string" not
+	"version".
+	* xml-tdesc.c (tdesc_start_field): Pass "field_name" to
+	gdb_xml_error call.
+
+2017-03-27  Pedro Alves  <palves@redhat.com>
+
+	* dwarf2read.c (struct file_and_directory): New.
+	(dwarf2_get_dwz_file): Adjust to use std::string.
+	(dw2_get_file_names_reader): Adjust to use file_and_directory.
+	(find_file_and_directory): Adjust to return a file_and_directory
+	object.
+	(read_file_scope): Adjust to use file_and_directory.  Remove
+	make_cleanup/do_cleanups calls.
+	(open_and_init_dwp_file): Adjust to use std::string.  Remove
+	make_cleanup/do_cleanups calls.
+	* python/python.c (do_start_initialization): Adjust to ldirname
+	returning a std::string.
+	* utils.c (ldirname): Now returns a std::string.
+	* utils.h (ldirname): Change return type to std::string.
+	* xml-syscall.c (xml_init_syscalls_info): Adjust to ldirname
+	returning a std::string.
+	* xml-tdesc.c (file_read_description_xml): Likewise.
+
+2017-03-24  Alan Hayward  <alan.hayward@arm.com>
+
+	* regcache.c (regcache_debug_print_register): New function.
+	* regcache.h (regcache_debug_print_register): New declaration.
+	* target.c (debug_print_register): Remove.
+	(target_fetch_registers): Call regcache_debug_print_register.
+	(target_store_registers): Likewise.
+
+2017-03-24  PÃ¡draig Brady  <pbrady@fb.com>
+
+	* dwarf2read.c (setup_type_unit_groups): Ensure dir_index doesn't
+	reference beyond the 'lh->include_dirs' array before accessing to
+	it.
+	(psymtab_include_file_name): Likewise.
+	(dwarf_decode_lines_1): Likewise.
+	(dwarf_decode_lines): Likewise.
+	(file_file_name): Likewise.
+
+2017-03-23  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* fbsd-tdep.c (fbsd_corefile_thread): Don't set/restore
+	inferior_ptid.
+	* proc-service.c (ps_lgetregs, ps_lsetregs, ps_lgetfpregs,
+	ps_lsetfpregs): Likewise.
+	* regcache.c (regcache_raw_update, regcache_raw_write): Likewise.
+	* sol-thread.c (ps_lgetregs, ps_lsetregs, ps_lgetfpregs,
+	ps_lsetfpregs): Likewise.
+	* target.c (target_fetch_registers, target_store_registers):
+	Remove asserts.
+
+2017-03-23  Alan Hayward  <alan.hayward@arm.com>
+
+	* sol-thread.c (sol_thread_store_registers): Remove regcache calls.
+
+2017-03-23  Yao Qi  <yao.qi@linaro.org>
+
+	* aarch64-tdep.c (aarch64_process_record_test): Declare.
+	(_initialize_aarch64_tdep): Register it.
+	(aarch64_record_load_store): Handle PRFM instruction.
+	(aarch64_process_record_test): New function.
+
+2017-03-23  Yao Qi  <yao.qi@linaro.org>
+
+	* aarch64-tdep.c (aarch64_record_load_store): Fix code
+	indentation.
+
+2017-03-23  Yao Qi  <yao.qi@linaro.org>
+
+	* aarch64-tdep.c: Remove AARCH64_RECORD_FAILURE.
+
+2017-03-23  Philipp Rudo  <prudo@linux.vnet.ibm.com>
+
+	python/python.c (do_start_initialization): Fix memory leak.
+
+2017-03-22  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* inf-ptrace.c (inf_ptrace_xfer_partial): Get pid from ptid
+	using get_ptrace_pid.
+	* linux-nat.c (linux_nat_xfer_partial): Don't set/restore
+	inferior_ptid.
+	(linux_proc_xfer_partial, linux_proc_xfer_spu): Use lwp of
+	inferior_ptid instead of pid.
+
+2017-03-22  Yao Qi  <yao.qi@linaro.org>
+
+	* aarch64-tdep.c: Wrap locally used classes in anonymous
+	namespace.
+	* arm-tdep.c: Likewise.
+	* linespec.c: Likewise.
+	* ui-out.c: Likewise.
+
+2017-03-22  Jonah Graham  <jonah@kichwacoders.com>
+
+	PR gdb/19637
+	* python/lib/gdb/printer/bound_registers.py: Import sys.
+
+2017-03-21  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* windows-nat.c (do_windows_fetch_inferior_registers): Add
+	windows_thread_info parameter and use it instead of
+	current_thread.
+	(windows_fetch_inferior_registers): Don't set current_thread,
+	pass the thread to do_windows_fetch_inferior_registers.  Use
+	ptid from regcache instead of inferior_ptid.
+	(do_windows_store_inferior_registers): Add windows_thread_info
+	parameter and use it instead of current_thread.
+	(windows_store_inferior_registers): Don't set current_thread,
+	pass the thread to do_windows_store_inferior_registers.  Use
+	ptid from regcache instead of inferior_ptid.
+
+2017-03-21  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* ser-mingw.c (ser_windows_raw): Remove reference to
+	struct serial::current_timeout.
+
+2017-03-21  Ivo Raisr  <ivo.raisr@oracle.com>
+
+	PR tdep/20928
+	* gdb/sparc-tdep.h (gdbarch_tdep) <sparc64_ccr_type>: New field.
+	* gdb/sparc64-tdep.c (sparc64_ccr_type): New function.
+	(sparc64_fsr_type): Fix %fsr decoding.
+
+2017-03-21  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* python/py-record-btrace.c (btpy_insn_data): Change return type
+	for Python 2.
+
+2017-03-20  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* spu-linux-nat.c (spu_fetch_inferior_registers,
+	spu_store_inferior_registers): Use ptid from regcache, set and
+	restore inferior_ptid.
+	* spu-multiarch.c (spu_fetch_registers, spu_store_registers):
+	Likewise.
+
+2017-03-20  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* i386-linux-nat.c (fetch_register, store_register,
+	i386_linux_fetch_inferior_registers,
+	i386_linux_store_inferior_registers): Use ptid from regcache.
+	* ia64-linux-nat.c (ia64_linux_fetch_register,
+	ia64_linux_store_register): Likewise.
+	* inf-ptrace.c (inf_ptrace_fetch_register,
+	inf_ptrace_store_register): Likewise.
+	* m32r-linux-nat.c (m32r_linux_fetch_inferior_registers,
+	m32r_linux_store_inferior_registers): Likewise.
+	* m68k-bsd-nat.c (m68kbsd_fetch_inferior_registers,
+	m68kbsd_store_inferior_registers): Likewise.
+	* m68k-linux-nat.c (fetch_register, store_register,
+	m68k_linux_fetch_inferior_registers,
+	m68k_linux_store_inferior_registers): Likewise.
+	* m88k-bsd-nat.c (m88kbsd_fetch_inferior_registers,
+	m88kbsd_store_inferior_registers): Likewise.
+	* mips-fbsd-nat.c (mips_fbsd_fetch_inferior_registers,
+	mips_fbsd_store_inferior_registers): Likewise.
+	* mips-linux-nat.c (mips64_linux_regsets_fetch_registers,
+	mips64_linux_regsets_store_registers): Likewise.
+	* mips-nbsd-nat.c (mipsnbsd_fetch_inferior_registers,
+	mipsnbsd_store_inferior_registers): Likewise.
+	* mips-obsd-nat.c (mips64obsd_fetch_inferior_registers,
+	mips64obsd_store_inferior_registers): Likewise.
+	* nto-procfs.c (procfs_fetch_registers, procfs_store_registers):
+	Likewise.
+	* ppc-fbsd-nat.c (ppcfbsd_fetch_inferior_registers,
+	ppcfbsd_store_inferior_registers): Likewise.
+	* ppc-linux-nat.c (ppc_linux_fetch_inferior_registers,
+	ppc_linux_store_inferior_registers): Likewise.
+	* ppc-nbsd-nat.c (ppcnbsd_fetch_inferior_registers,
+	ppcnbsd_store_inferior_registers): Likewise.
+	* ppc-obsd-nat.c (ppcobsd_fetch_registers,
+	ppcobsd_store_registers): Likewise.
+	* procfs.c (procfs_fetch_registers, procfs_store_registers):
+	Likewise.
+	* ravenscar-thread.c (ravenscar_fetch_registers,
+	ravenscar_store_registers, ravenscar_prepare_to_store):
+	Likewise.
+	* record-btrace.c (record_btrace_fetch_registers,
+	record_btrace_store_registers, record_btrace_prepare_to_store):
+	Likewise.
+	* remote-sim.c (gdbsim_fetch_register, gdbsim_store_register):
+	Lookup inferior using ptid from regcache, instead of
+	current_inferior.
+	* remote.c (remote_fetch_registers, remote_store_registers): Use
+	ptid from regcache.
+	* rs6000-nat.c (fetch_register, store_register): Likewise.
+	* s390-linux-nat.c (s390_linux_fetch_inferior_registers,
+	s390_linux_store_inferior_registers): Likewise.
+	* sh-nbsd-nat.c (shnbsd_fetch_inferior_registers,
+	shnbsd_store_inferior_registers): Likewise.
+	* sol-thread.c (sol_thread_fetch_registers,
+	sol_thread_store_registers): Likewise.
+	* sparc-nat.c (sparc_fetch_inferior_registers,
+	sparc_store_inferior_registers): Likewise.
+	* tilegx-linux-nat.c (fetch_inferior_registers,
+	store_inferior_registers): Likewise.
+	* vax-bsd-nat.c (vaxbsd_fetch_inferior_registers,
+	vaxbsd_store_inferior_registers): Likewise.
+	* xtensa-linux-nat.c (fetch_gregs, store_gregs, fetch_xtregs,
+	store_xtregs): Likewise.
+
+2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
+
+	PR gdb/14441
+	* NEWS: Mention support for rvalue references in GDB and python.
+	* doc/gdb.texinfo (C Plus Plus Expressions): Mention that GDB
+	supports both lvalue and rvalue references.
+
+2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
+
+	PR gdb/14441
+	* gdbtypes.c (rank_one_type): Implement overloading
+	resolution rules regarding rvalue references.
+
+2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
+
+	PR gdb/14441
+	* aarch64-tdep.c (aarch64_type_align)
+	(aarch64_extract_return_value, aarch64_store_return_value): Change
+	lvalue reference type checks to general reference type checks.
+	* amd64-tdep.c (amd64_classify): Likewise.
+	* amd64-windows-tdep.c (amd64_windows_passed_by_integer_register):
+	Likewise.
+	* arm-tdep.c (arm_type_align, arm_extract_return_value)
+	(arm_store_return_value): Likewise.
+	* ax-gdb.c (gen_fetch, gen_cast): Likewise.
+	* c-typeprint.c (c_print_type): Likewise.
+	* c-varobj.c (adjust_value_for_child_access, c_value_of_variable)
+	(cplus_number_of_children, cplus_describe_child): Likewise.
+	* compile/compile-c-symbols.c (generate_vla_size): Likewise.
+	* completer.c (expression_completer): Likewise.
+	* cp-support.c (make_symbol_overload_list_adl_namespace):
+	Likewise.
+	* darwin-nat-info.c (info_mach_region_command): Likewise.
+	* dwarf2loc.c (entry_data_value_coerce_ref)
+	(value_of_dwarf_reg_entry): Likewise.
+	* eval.c (ptrmath_type_p, evaluate_subexp_standard)
+	(evaluate_subexp_for_address, evaluate_subexp_for_sizeof):
+	Likewise.
+	* findvar.c (extract_typed_address, store_typed_address):
+	Likewise.
+	* gdbtypes.c (rank_one_type): Likewise.
+	* hppa-tdep.c (hppa64_integral_or_pointer_p): Likewise.
+	* infcall.c (value_arg_coerce): Likewise.
+	* language.c (pointer_type): Likewise.
+	* m32c-tdep.c (m32c_reg_arg_type, m32c_m16c_address_to_pointer):
+	Likewise.
+	* m88k-tdep.c (m88k_integral_or_pointer_p): Likewise.
+	* mn10300-tdep.c (mn10300_type_align): Likewise.
+	* msp430-tdep.c (msp430_push_dummy_call): Likewise.
+	* ppc-sysv-tdep.c (do_ppc_sysv_return_value)
+	(ppc64_sysv_abi_push_param, ppc64_sysv_abi_return_value):
+	Likewise.
+	* printcmd.c (print_formatted, x_command): Likewise.
+	* python/py-type.c (typy_get_composite, typy_template_argument):
+	Likewise.
+	* python/py-value.c (valpy_referenced_value)
+	(valpy_get_dynamic_type, value_has_field): Likewise.
+	* s390-linux-tdep.c (s390_function_arg_integer): Likewise.
+	* sparc-tdep.c (sparc_integral_or_pointer_p): Likewise.
+	* sparc64-tdep.c (sparc64_integral_or_pointer_p): Likewise.
+	* spu-tdep.c (spu_scalar_value_p): Likewise.
+	* symtab.c (lookup_symbol_aux): Likewise.
+	* typeprint.c (whatis_exp, print_type_scalar): Likewise.
+	* valarith.c (binop_types_user_defined_p, unop_user_defined_p):
+	Likewise.
+	* valops.c (value_cast_pointers, value_cast)
+	(value_reinterpret_cast, value_dynamic_cast, value_addr, typecmp)
+	(value_struct_elt, value_struct_elt_bitpos)
+	(value_find_oload_method_list, find_overload_match)
+	(value_rtti_indirect_type): Likewise.
+	* valprint.c (val_print_scalar_type_p, generic_val_print):
+	Likewise.
+	* value.c (value_actual_type, value_as_address, unpack_long)
+	(pack_long, pack_unsigned_long, coerce_ref_if_computed)
+	(coerce_ref): Likewise.
+	* varobj.c (varobj_get_value_type): Likewise.
+
+2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
+
+	PR gdb/14441
+	* doc/python.texi (Types in Python): Add TYPE_CODE_RVALUE_REF to
+	table of constants.
+	* python/lib/gdb/command/explore.py: Support exploring values
+	of rvalue reference types.
+	* python/lib/gdb/types.py: Implement get_basic_type() for
+	rvalue reference types.
+	* python/py-type.c (pyty_codes) <TYPE_CODE_RVALUE_REF>: New
+	constant.
+	* python/py-value.c (valpy_getitem): Add an rvalue reference
+	check.
+	(valpy_reference_value): Add new parameter "refcode".
+	(valpy_lvalue_reference_value, valpy_rvalue_reference_value):
+	New wrappers for valpy_reference_value().
+	* python/py-xmethods.c (gdbpy_get_xmethod_result_type)
+	(gdbpy_invoke_xmethod): Likewise.
+
+2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
+
+	PR gdb/14441
+	* dwarf2read.c (process_die, read_type_die_1): Handle the
+	DW_TAG_rvalue_reference_type DIE.
+	(read_tag_reference_type): Add new parameter "refcode".
+
+2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
+
+	PR gdb/14441
+	* c-typeprint.c (c_print_type, c_type_print_varspec_prefix)
+	(c_type_print_modifier, c_type_print_varspec_suffix)
+	(c_type_print_base): Support printing rvalue reference types.
+	* c-valprint.c (c_val_print, c_value_print): Support printing
+	rvalue reference values.
+
+2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
+
+	PR gdb/14441
+	* cp-name-parser.y (ptr_operator): Handle the '&&' token in
+	typename.
+	* cp-support.c (replace_typedefs): Handle
+	DEMANGLE_COMPONENT_RVALUE_REFERENCE.
+	* python/py-type.c (typy_lookup_type): Likewise.
+
+2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
+
+	PR gdb/14441
+	* c-exp.y (ptr_operator): Handle the '&&' token in the typename.
+	* parse.c (insert_type): Change assert statement.
+	(follow_types): Handle rvalue reference types.
+	* parser-defs.h (enum type_pieces) <tp_rvalue_reference>: New
+	constant.
+
+2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
+
+	PR gdb/14441
+	* ada-lang.c (ada_evaluate_subexp): Adhere to the new
+	value_ref() interface.
+	* c-valprint.c (c_value_print): Likewise.
+	* infcall.c (value_arg_coerce): Likewise.
+	* python/py-value.c (valpy_reference_value): Likewise.
+	* valops.c (value_cast, value_reinterpret_cast)
+	(value_dynamic_cast, typecmp): Likewise.
+	(value_ref): Parameterize by kind of return value reference type.
+	* value.h (value_ref): Add new parameter "refcode".
+
+2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
+
+	PR gdb/14441
+	* dwarf2read.c (read_tag_reference_type): Use
+	lookup_lvalue_reference_type() instead of lookup_reference_type().
+	* eval.c (evaluate_subexp_standard): Likewise.
+	* f-exp.y: Likewise.
+	* gdbtypes.c (make_reference_type, lookup_reference_type):
+	Generalize with rvalue reference types.
+	(lookup_lvalue_reference_type, lookup_rvalue_reference_type): New
+	convenience wrappers for lookup_reference_type().
+	* gdbtypes.h (make_reference_type, lookup_reference_type): Add a
+	reference kind parameter.
+	(lookup_lvalue_reference_type, lookup_rvalue_reference_type): Add
+	wrappers for lookup_reference_type().
+	* guile/scm-type.c (gdbscm_type_reference): Use
+	lookup_lvalue_reference_type() instead of lookup_reference_type().
+	* guile/scm-value.c (gdbscm_value_dynamic_type): Likewise.
+	* parse.c (follow_types): Likewise.
+	* python/py-type.c (typy_reference, typy_lookup_type): Likewise.
+	* python/py-value.c (valpy_get_dynamic_type, valpy_getitem):
+	Likewise.
+	* python/py-xmethods.c (gdbpy_get_xmethod_result_type)
+	(gdbpy_invoke_xmethod): Likewise.
+	* stabsread.c: Provide extra argument to make_reference_type()
+	call.
+	* valops.c (value_ref, value_rtti_indirect_type): Use
+	lookup_lvalue_reference_type() instead of lookup_reference_type().
+
+2017-03-20  Artemiy Volkov  <artemiyv@acm.org>
+
+	PR gdb/14441
+	* gdbtypes.h (enum type_code) <TYPE_CODE_RVALUE_REF>: New constant.
+	(TYPE_IS_REFERENCE): New macro.
+	(struct type): Add rvalue_reference_type field.
+	(TYPE_RVALUE_REFERENCE_TYPE): New macro.
+
+2017-03-20  Marc-Andre Laperle  <marc-andre.laperle@ericsson.com>
+
+	* NEWS: Add an entry about new '-file-list-shared-libraries' command.
+	* mi/mi-cmd-file.c (mi_cmd_file_list_shared_libraries):
+	New function definition.
+	* mi/mi-cmds.c (mi_cmds): Add -file-list-shared-libraries command.
+	* mi/mi-cmds.h (mi_cmd_file_list_shared_libraries):
+	New function declaration.
+	* mi/mi-interp.c (mi_output_solib_attribs): New Function.
+	* mi/mi-interp.h: New file.
+	* solib.c (info_sharedlibrary_command): Replace for loop with
+	ALL_SO_LIBS macro
+	* solib.h (update_solib_list): New function declaration.
+	(so_list_head): Move macro.
+	* solist.h (ALL_SO_LIBS): New macro.
+
+2017-03-20  Marc-Andre Laperle  <marc-andre.laperle@ericsson.com>
+
+	* infcmd.c (post_create_inferior): Remove unused argument in
+	call to solib_add.
+	* remote.c (remote_start_remote): Likewise.
+	* solib-frv.c (frv_fetch_objfile_link_map): Likewise.
+	* solib-svr4.c: (svr4_fetch_objfile_link_map): Likewise.
+	(enable_break): Likewise.
+	* solib.c (update_solib_list): Remove unused target argument
+	and its documentation.
+	(solib_add): Remove unused target argument.  Remove unused
+	argument in call to update_solib_list.
+	(info_sharedlibrary_command): Remove unused argument in call
+	to update_solib_list.
+	(sharedlibrary_command): Remove unused argument in call to
+	solib_add.
+	(handle_solib_event): Likewise.
+	(reload_shared_libraries): Likewise.
+	* solib.h (solib_add): Remove unused target argument.
+
+2017-03-20  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* s390-linux-tdep.c (is_rsi, is_rie): Remove functions.
+	(s390_displaced_step_fixup): Cover relative branches with the
+	default fixup handling.  This fixes lack of support for some
+	relative branch instructions.
+
+2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* i386-gnu-nat.c (gnu_fetch_registers, gnu_store_registers): Use
+	ptid from regcache.
+
+2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* i386-darwin-nat.c (i386_darwin_fetch_inferior_registers,
+	i386_darwin_store_inferior_registers): Use ptid from regcache.
+
+2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* i386-bsd-nat.c (i386bsd_fetch_inferior_registers,
+	i386bsd_store_inferior_registers): Use ptid from regcache.
+
+2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* hppa-obsd-nat.c (hppaobsd_fetch_registers,
+	hppaobsd_store_registers): Use ptid from regcache.
+
+2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* hppa-nbsd-nat.c (hppanbsd_fetch_registers,
+	hppanbsd_store_registers): Use ptid from regcache.
+
+2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* hppa-linux-nat.c (fetch_register, store_register): Use ptid
+	from regcache.  Use get_ptrace_pid.
+
+2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* corelow.c (get_core_register_section): Use ptid from regcache,
+	update doc.
+
+2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* bsd-uthread.c (bsd_uthread_fetch_registers,
+	bsd_uthread_store_registers): Use ptid from regcache, set and
+	restore inferior_ptid.
+
+2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* arm-nbsd-nat.c (fetch_register, fetch_regs, fetch_fp_register,
+	fetch_fp_regs, store_register, store_regs, store_fp_register,
+	store_fp_regs): Use ptid from regcache.
+
+2017-03-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* arm-linux-nat.c (fetch_fpregs, store_fpregs, fetch_regs,
+	store_regs, fetch_wmmx_regs, store_wmmx_regs, fetch_vfp_regs,
+	store_vfp_regs): Use ptid from regcache.
+
+2017-03-17  Pedro Alves  <palves@redhat.com>
+
+	PR remote/21188
+	* ser-base.c (ser_base_wait_for): Add comment.
+	(do_ser_base_readchar): Improve comment based on the ser-unix.c's
+	version.
+	* ser-unix.c (hardwire_raw): Remove reference to
+	scb->current_timeout.
+	(wait_for, do_hardwire_readchar, hardwire_readchar): Delete.
+	(hardwire_ops): Install ser_base_readchar instead of
+	hardwire_readchar.
+	* serial.h (struct serial) <current_timeout, timeout_remaining>:
+	Remove fields.
+
+2017-03-17  Jonah Graham  <jonah@kichwacoders.com>
+
+	PR gdb/19637
+	* python/lib/gdb/printer/bound_registers.py: Add support for
+	Python 3.
+
+2017-03-16  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (indirect_synthetic_pointer): Get data type of
+	pointed-to DIE and pass it to dwarf2_evaluate_loc_desc_full.
+	(dwarf2_evaluate_loc_desc_full): New parameter subobj_type; rename
+	byte_offset to subobj_byte_offset.  Fix the handling of
+	DWARF_VALUE_STACK on big-endian targets when coming via an
+	implicit pointer.
+	(dwarf2_evaluate_loc_desc): Adjust call to
+	dwarf2_evaluate_loc_desc_full.
+	* dwarf2loc.h (dwarf2_fetch_die_type_sect_off): New declaration.
+	* dwarf2read.c (dwarf2_fetch_die_type_sect_off): New function.
+
+2017-03-16  Yao Qi  <yao.qi@linaro.org>
+
+	* arm-tdep.c (thumb_record_misc): Decode CBNZ, CBZ, REV16,
+	and REVSH instructions.
+
+2017-03-16  Yao Qi  <yao.qi@linaro.org>
+
+	* arm-tdep.c [GDB_SELF_TEST]: include "selftests.h".
+	(arm_record_test): Declare.
+	(_initialize_arm_tdep) [GDB_SELF_TEST]: call register_self_test.
+	(thumb_record_ld_st_reg_offset): Rewrite the opcode matching to
+	align with the manual.
+	(thumb_record_misc): Adjust the code order to align with the
+	manual.
+	(thumb2_record_decode_insn_handler): Fix instruction matching.
+	(instruction_reader_thumb): New class.
+	(arm_record_test): New function.
+
+2017-03-16  Yao Qi  <yao.qi@linaro.org>
+
+	* arm-tdep.c (abstract_memory_reader): New class.
+	(instruction_reader): New class.
+	(extract_arm_insn): Add argument 'reader'.  Callers updated.
+	(decode_insn): Likewise.
+
+2017-03-16  Doug Evans  <dje@google.com>
+
+	* guile/scm-lazy-string.c (lazy_string_smob): Clarify use of LENGTH
+	member.  Change type of TYPE member to SCM.  All uses updated.
+	(lsscm_make_lazy_string_smob): Add assert.
+	(lsscm_make_lazy_string): Flag bad length values.
+	(lsscm_elt_type): New function.
+	(gdbscm_lazy_string_to_value): Rewrite to use
+	lsscm_safe_lazy_string_to_value.
+	(lsscm_safe_lazy_string_to_value): Fix handling of TYPE_CODE_PTR.
+	* guile/scm-value.c (gdbscm_value_to_lazy_string): Flag bad length
+	values.  Fix TYPE_CODE_PTR.  Handle TYPE_CODE_ARRAY.  Handle typedefs
+	in incoming type.
+	* guile/guile-internal.h (tyscm_scm_to_type): Declare.
+	* guile/scm-type.c (tyscm_scm_to_type): New function.
+
+2017-03-15  Doug Evans  <dje@google.com>
+
+	PR python/17728, python/18439, python/18779
+	* python/py-lazy-string.c (lazy_string_object): Clarify use of LENGTH
+	member.  Change type of TYPE member to PyObject *.  All uses updated.
+	(stpy_convert_to_value): Fix handling of TYPE_CODE_PTR.
+	(gdbpy_create_lazy_string_object): Flag bad length values.
+	Handle TYPE_CODE_ARRAY with possibly different user-provided length.
+	Handle typedefs in incoming type.
+	(stpy_lazy_string_elt_type): New function.
+	(gdbpy_extract_lazy_string): Call it.
+	* python/py-value.c (valpy_lazy_string): Flag bad length values.
+	Fix handling of TYPE_CODE_PTR.  Handle TYPE_CODE_ARRAY.  Handle
+	typedefs in incoming type.
+
+2017-03-16  Doug Evans  <dje@google.com>
+
+	* guile/guile-internal.h (tyscm_scm_to_type): Declare.
+	* guile/scm-type.c (tyscm_scm_to_type): New function.
+
+2017-03-16  Jiong Wang  <jiong.wang@arm.com>
+
+	* inf-ptrace.c (inf_ptrace_peek_poke): Change the type to
+	"ULONGEST" for "skip".
+
+2017-03-14  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	PR gdb/21220
+	* inf-ptrace.c (inf_ptrace_xfer_partial): In "case
+	TARGET_OBJECT_MEMORY", extract the logic for ptrace peek/poke...
+	(inf_ptrace_peek_poke): ...here.  New function.  Now also loop
+	over ptrace peek/poke until end of buffer or error.
+
+2017-03-14  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* parse.c (length_of_subexp): Make static.
+	* parser-defs.h (length_of_subexp): Remove.
+
+2017-03-14  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* linux-nat.c (linux_proc_xfer_partial): Handle write operations
+	as well.
+
+2017-03-14  Pedro Alves  <palves@redhat.com>
+
+	* cp-name-parser.y (cp_demangled_name_to_comp): Update comment.
+	(main): Use std::unique_ptr.  Remove calls to
+	cp_demangled_name_parse_free.
+
+2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* alpha-bsd-nat.c (alphabsd_fetch_inferior_registers,
+	alphabsd_store_inferior_registers): Use regcache->ptid instead
+	of inferior_ptid.
+
+2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* aix-thread.c (aix_thread_fetch_registers,
+	aix_thread_store_registers): Use regcache->ptid instead of
+	inferior_ptid.
+
+2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* aarch64-linux-nat.c (fetch_gregs_from_thread,
+	store_gregs_to_thread, fetch_fpregs_from_thread,
+	store_fpregs_to_thread): Use regcache->ptid instead of
+	inferior_ptid.
+
+2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* amd64-linux-nat.c (amd64_linux_fetch_inferior_registers,
+	amd64_linux_fetch_inferior_registers): Use regcache->ptid
+	instead of inferior_ptid.
+
+2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* target.c (target_fetch_registers, target_store_registers): Add
+	assert.
+
+2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* regcache.h (regcache_get_ptid): New function.
+	* regcache.c (regcache_get_ptid): New function.
+
+2017-03-13  Mark Wielaard  <mark@klomp.org>
+
+	* cp-name-parser.y (make_empty): Initialize d_printing to zero.
+
+2017-03-10  Keith Seitz  <keiths@redhat.com>
+
+	PR c++/8218
+	* c-typeprint.c (cp_type_print_method_args): Skip artificial arguments.
+
+2017-03-08  Pedro Alves  <palves@redhat.com>
+
+	PR gdb/18360
+	* infrun.c (start_step_over, do_target_resume, resume)
+	(restart_threads): Assert we're not resuming a thread that is
+	meant to be stopped.
+	(infrun_thread_stop_requested_callback): Delete.
+	(infrun_thread_stop_requested): If the thread is internally
+	stopped, queue a pending stop event and clear the thread's
+	inline-frame state.
+	(handle_stop_requested): New function.
+	(handle_syscall_event, handle_inferior_event_1): Use
+	handle_stop_requested.
+	(handle_stop_requested): New function.
+	(handle_signal_stop): Set the thread's stop_signal here instead of
+	at caller.
+	(finish_step_over): Clear step over info unconditionally.
+	(handle_signal_stop): If the user had interrupted the event
+	thread, consider the stop a random signal.
+	(handle_signal_stop) <signal arrived while stepping over
+	breakpoint>: Don't restart threads here.
+	(stop_waiting): Don't clear step-over info here.
+
+2017-03-08  Pedro Alves  <palves@redhat.com>
+
+	PR 21206
+	* common/gdb_unlinker.h (unlinker::unlinker): Attribute nonnull
+	goes to argument 2, not 1.
+
+2017-03-08  Pedro Alves  <palves@redhat.com>
+
+	PR cli/21218
+	* top.c (gdb_readline_wrapper): Avoid passing NULL to
+	display_gdb_prompt.
+	(command_line_input): Add comment.
+
+2017-03-08  Pedro Alves  <palves@redhat.com>
+
+	PR tui/21216
+	* tui/tui-file.c (tui_file::write): New.
+	* tui/tui-file.h (tui_file): Override "write".
+	* tui/tui-io.c (do_tui_putc, update_start_line): New functions,
+	factored out from ...
+	(tui_puts): ... here.
+	(tui_putc): Use them.
+	(tui_write): New function.
+	* tui/tui-io.h (tui_write): Declare.
+
+2017-03-07  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile.in (SFILES): Replace "environ.c" with
+	"common/environ.c".
+	(HFILES_NO_SRCDIR): Likewise, for "environ.h".
+	* environ.c: Include "common-defs.h" instead of "defs.h.  Moved
+	to...
+	* common/environ.c: ... here.
+	* environ.h: Moved to...
+	* common/environ.h: ... here.
+
+2017-03-07  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* gdbarch.sh (pstring_ptr): New static function.
+	(gdbarch_disassembler_options): Use it.
+	(gdbarch_verify_disassembler_options): Print valid_disassembler_options,
+	not valid_disassembler_option->name.
+	* gdbarch.c: Regenerate.
+
+2017-03-07  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* config/powerpc/ppc64-linux.mh (MH_CFLAGS): Delete.
+
+2017-03-07  Pedro Alves  <palves@redhat.com>
+
+	* tui/tui-regs.c (tui_restore_gdbout): Don't delete gdb_stdout.
+
+2017-03-07  Walfred Tedeschi  <walfred.tedeschi@intel.com>
+
+	* i387-tdep.h (i387_reset_bnd_regs): Add function definition.
+	* i387-tdep.c (i387_reset_bnd_regs): Add function implementation.
+	* i386-tdep.c (i386_push_dummy_call): Call i387_reset_bnd_regs.
+	* amd64-tdep.c (amd64_push_dummy_call): Call i387_reset_bnd_regs.
+
+2017-03-06  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* xtensa-linux-nat.c (fetch_gregs): Remove const.
+
+2017-03-03  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* remote.c (remote_add_target_side_commands): Use range-based
+	for loop.
+
+2017-03-03  Yao Qi  <yao.qi@linaro.org>
+
+	PR gdb/21165
+	* ada-valprint.c (ada_val_print_ref): Call value_fetch_lazy if
+	value is lazy.
+	* valprint.c (common_val_print): Likewise.
+
+2017-02-28  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* NEWS: Mention new set/show disassembler-options commands.
+	* doc/gdb.texinfo: Document new set/show disassembler-options commands.
+	* disasm.c: Include "arch-utils.h", "gdbcmd.h" and "safe-ctype.h".
+	(prospective_options): New static variable.
+	(gdb_disassembler::gdb_disassembler): Initialize
+	m_di.disassembler_options.
+	(gdb_buffered_insn_length_init_dis): Initilize di->disassembler_options.
+	(get_disassembler_options): New function.
+	(set_disassembler_options): Likewise.
+	(set_disassembler_options_sfunc): Likewise.
+	(show_disassembler_options_sfunc): Likewise.
+	(disassembler_options_completer): Likewise.
+	(_initialize_disasm): Likewise.
+	* disasm.h (get_disassembler_options): New prototype.
+	(set_disassembler_options): Likewise.
+	* gdbarch.sh (gdbarch_disassembler_options): New variable.
+	(gdbarch_verify_disassembler_options): Likewise.
+	* gdbarch.c: Regenerate.
+	* gdbarch.h: Likewise.
+	* arm-tdep.c (num_disassembly_options): Delete.
+	(set_disassembly_style): Likewise.
+	(arm_disassembler_options): New static variable.
+	(set_disassembly_style_sfunc): Convert short style name into long
+	option name.  Call set_disassembler_options.
+	(show_disassembly_style_sfunc): New function.
+	(arm_gdbarch_init): Call set_gdbarch_disassembler_options and
+	set_gdbarch_verify_disassembler_options.
+	(_initialize_arm_tdep): Delete regnames variable and update callers.
+	(arm_disassembler_options): Initialize.
+	(disasm_options): New variable.
+	(num_disassembly_options): Rename from this...
+	(num_disassembly_styles): ...to this.  Compute by scanning through
+	disasm_options.
+	(valid_disassembly_styles): Initialize using disasm_options.
+	Remove calls to parse_arm_disassembler_option, get_arm_regnames and
+	set_arm_regname_option.
+	Pass show_disassembly_style_sfunc to the "disassembler" setshow command.
+	* rs6000-tdep.c (powerpc_disassembler_options): New static variable.
+	(rs6000_gdbarch_init): Call set_gdbarch_disassembler_options and
+	set_gdbarch_verify_disassembler_options.
+	* s390-tdep.c (s390_disassembler_options): New static variable.
+	(s390_gdbarch_init):all set_gdbarch_disassembler_options and
+	set_gdbarch_verify_disassembler_options.
+
+2017-02-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* remote.c (remote_add_target_side_condition): Remove "struct"
+	keyword from range-based for loop.
+
+2017-02-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* remote.c (remote_add_target_side_condition): Use range-based
+	for loop.  Update comment.
+
+2017-02-27  Yao Qi  <yao.qi@linaro.org>
+
+	* f-typeprint.c (f_print_type): Check "varstring" is empty first.
+
+2017-02-26  Alan Hayward  <alan.hayward@arm.com>
+
+	* regcache.c (regcache_raw_update): New function.
+	(regcache_raw_read): Move code to regcache_raw_update.
+	* regcache.h (regcache_raw_update): New declaration.
+	* remote.c (remote_prepare_to_store): Call regcache_raw_update.
+
+2017-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* dwarf2read.c (create_debug_type_hash_table): Initialize
+	header.signature and header.type_offset_in_tu.
+
+2017-02-24  Pedro Alves  <palves@redhat.com>
+
+	* symtab.c (make_file_symbol_completion_list_1): Use
+	add_symtab_completions.
+
+2017-02-24  Alan Hayward  <alan.hayward@arm.com>
+
+	* stack.c (frame_info): Use frame_unwind_register_value to avoid buf.
+
+2017-02-24  Alan Hayward  <alan.hayward@arm.com>
+
+	* i386-tdep.c (i386_pseudo_register_read_into_value): Use
+	I386_MAX_REGISTER_SIZE.
+	(i386_pseudo_register_write): Likewise.
+	(i386_process_record): Likewise.
+	* i387-tdep.c (i387_supply_xsave): Likewise.
+	* m68k-linux-nat.c (fetch_register): Use M68K_MAX_REGISTER_SIZE.
+	(store_register): Likewise.
+
+2017-02-23  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c: Include "common/function-view.h".
+	(ada_iterate_over_symbols): Adjust to use function_view as
+	callback type.
+	(struct add_partial_datum, ada_complete_symbol_matcher): Delete.
+	(ada_make_symbol_completion_list): Use a lambda.
+	(ada_exc_search_name_matches): Delete.
+	(name_matches_regex): New.
+	(ada_add_global_exceptions): Use a lambda and name_matches_regex.
+	* compile/compile-c-support.c: Include "common/function-view.h".
+	(print_one_macro): Change prototype to accept a ui_file pointer.
+	(write_macro_definitions): Use a lambda.
+	* dwarf2read.c: Include "common/function-view.h".
+	(dw2_map_expand_apply, dw2_map_symtabs_matching_filename)
+	(dw2_expand_symtabs_matching): Adjust to use function_view as
+	callback type.
+	* language.h: Include "common/function-view.h".
+	(struct language_defn) <la_iterate_over_symbols>: Adjust to use
+	function_view as callback type.
+	(LA_ITERATE_OVER_SYMBOLS): Remove DATA parameter.
+	* linespec.c: Include "common/function-view.h".
+	(collect_info::add_symbol): New method.
+	(struct symbol_and_data_callback, iterate_inline_only, struct
+	symbol_matcher_data, iterate_name_matcher): Delete.
+	(iterate_over_all_matching_symtabs): Adjust to use function_view
+	as callback type and lambdas.
+	(iterate_over_file_blocks): Adjust to use function_view as
+	callback type.
+	(decode_compound_collector): Now a class with private fields.
+	(decode_compound_collector::release_symbols): New method.
+	(collect_one_symbol): Rename to...
+	(decode_compound_collector::operator()): ... this and adjust.
+	(lookup_prefix_sym): decode_compound_collector construction bits
+	move to decode_compound_collector ctor.  Pass the
+	decode_compound_collector object directly as callback.  Remove
+	cleanups and use decode_compound_collector::release_symbols
+	instead.
+	(symtab_collector): Now a class with private fields.
+	(symtab_collector::release_symtabs): New method.
+	(add_symtabs_to_list): Rename to...
+	(symtab_collector::operator()): ... this and adjust.
+	(collect_symtabs_from_filename): symtab_collector construction
+	bits move to symtab_collector ctor.  Pass the symtab_collector
+	object directly as callback.  Remove cleanups and use
+	symtab_collector::release_symtabs instead.
+	(collect_symbols): Delete.
+	(add_matching_symbols_to_info): Use lambdas.
+	* macrocmd.c (print_macro_callback): Delete.
+	(info_macro_command): Use a lambda.
+	(info_macros_command): Pass print_macro_definition as callable
+	directly.
+	(print_one_macro): Remove 'ignore' parameter.
+	(macro_list_command): Adjust.
+	* macrotab.c (macro_for_each_data::fn): Now a function_view.
+	(macro_for_each_data::user_data): Delete field.
+	(foreach_macro): Adjust to call the function_view.
+	(macro_for_each): Adjust to use function_view as callback type.
+	(foreach_macro_in_scope): Adjust to call the function_view.
+	(macro_for_each_in_scope): Adjust to use function_view as callback
+	type.
+	* macrotab.h: Include "common/function-view.h".
+	(macro_callback_fn): Declare a prototype instead of a pointer.
+	Remove "user_data" parameter.
+	(macro_for_each, macro_for_each_in_scope): Adjust to use
+	function_view as callback type.
+	* psymtab.c (partial_map_expand_apply)
+	(psym_map_symtabs_matching_filename, recursively_search_psymtabs):
+	Adjust to use function_view as callback type and to return bool.
+	(psym_expand_symtabs_matching): Adjust to use function_view as
+	callback types.
+	* symfile-debug.c (debug_qf_map_symtabs_matching_filename): Adjust
+	to use function_view as callback type and to return bool.
+	(debug_qf_expand_symtabs_matching): Adjust to use function_view as
+	callback types.
+	* symfile.c (expand_symtabs_matching): Adjust to use function_view
+	as callback types.
+	* symfile.h: Include "common/function-view.h".
+	(expand_symtabs_file_matcher_ftype)
+	(expand_symtabs_symbol_matcher_ftype)
+	(expand_symtabs_exp_notify_ftype): Remove "data" parameter and
+	return bool.
+	(quick_symbol_functions::map_symtabs_matching_filename)
+	(quick_symbol_functions::expand_symtabs_matching): Adjust to use
+	function_view as callback type and return bool.
+	(expand_symtabs_matching): Adjust to use function_view as callback
+	type.
+	(maintenance_expand_name_matcher)
+	(maintenance_expand_file_matcher): Delete.
+	(maintenance_expand_symtabs): Use lambdas.
+	* symtab.c (iterate_over_some_symtabs): Adjust to use
+	function_view as callback types and return bool.
+	(iterate_over_symtabs): Likewise.  Use unique_xmalloc_ptr instead
+	of a cleanup.
+	(lookup_symtab_callback): Delete.
+	(lookup_symtab): Use a lambda.
+	(iterate_over_symbols): Adjust to use function_view as callback
+	type.
+	(struct search_symbols_data, search_symbols_file_matches)
+	(search_symbols_name_matches): Delete.
+	(search_symbols): Use a pair of lambdas.
+	(struct add_name_data, add_macro_name, symbol_completion_matcher)
+	(symtab_expansion_callback): Delete.
+	(default_make_symbol_completion_list_break_on_1): Use lambdas.
+	* symtab.h: Include "common/function-view.h".
+	(iterate_over_some_symtabs): Adjust to use function_view as
+	callback type and return bool.
+	(iterate_over_symtabs): Adjust to use function_view as callback
+	type.
+	(symbol_found_callback_ftype): Remove 'data' parameter and return
+	bool.
+	(iterate_over_symbols): Adjust to use function_view as callback
+	type.
+
+2017-02-23  Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (SUBDIR_UNITTESTS_SRCS, SUBDIR_UNITTESTS_OBS): New.
+	(%.o) <unittests/%.c>: New pattern.
+	* configure.ac ($development): Add $(SUBDIR_UNITTESTS_OBS) to
+	CONFIG_OBS, and $(SUBDIR_UNITTESTS_SRCS) to CONFIG_SRCS.
+	* common/function-view.h: New file.
+	* unittests/function-view-selftests.c: New file.
+	* configure: Regenerate.
+
+2017-02-23  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* bsd-uthread.c (bsd_uthread_thread_alive): Use ptid instead of
+	inferior_ptid.
+	* go32-nat.c (go32_thread_alive): Likewise.
+
+2017-02-23  Yao Qi  <yao.qi@linaro.org>
+
+	* varobj-iter.h (varobj_iter_delete): Call xfree instead of
+	delete.
+
+2017-02-23  Yao Qi  <yao.qi@linaro.org>
+
+	* varobj.c (varobj_clear_saved_item): Use delete instead of
+	xfree.
+	(update_dynamic_varobj_children): Likewise.
+
+2017-02-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* dwarf2read.c (dwarf2_record_block_ranges): Add forgotten BASEADDR.
+
+2017-02-21  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* common/enum-flags.h (enum_flags::enum_flags): Initialize
+	m_enum_value to 0 in default constructor.
+
+2017-02-21  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>
+
+	* rs6000-tdep.c (LOAD_AND_RESERVE_MASK): Rename from LWARX_MASK.
+	(STORE_CONDITIONAL_MASK): Rename from STWCX_MASK.
+	(LBARX_INSTRUCTION, LHARX_INSTRUCTION, LQARX_INSTRUCTION,
+	STBCX_INSTRUCTION, STHCX_INSTRUCTION, STQCX_INSTRUCTION): New defines.
+	(IS_LOAD_AND_RESERVE_INSN, IS_STORE_CONDITIONAL_INSN): New macros.
+	(ppc_displaced_step_copy_insn): Use IS_LOAD_AND_RESERVE_INSN.
+	(ppc_deal_with_atomic_sequence): Use IS_LOAD_AND_RESERVE_INSN and
+	IS_STORE_CONDITIONAL_INSN.
+
+2017-02-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* dwarf2_rnglists_process: Initialize range_beginning and range_end.
+
+2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* NEWS (Changes since GDB 7.12): Add DWARF-5.
+
+2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* dwarf2read.c (skip_one_die, read_attribute_value)
+	(dwarf2_const_value_attr, dump_die_shallow)
+	(dwarf2_get_attr_constant_value, dwarf2_fetch_constant_bytes)
+	(skip_form_bytes, attr_form_is_constant): Handle DW_FORM_data16.
+
+2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* dwarf2read.c (read_file_scope): Rename DW_MACRO_GNU_*.
+	(dwarf_parse_macro_header): Accept DWARF version 5.
+	(dwarf_decode_macro_bytes, dwarf_decode_macros): Rename DW_MACRO_GNU_*.
+
+2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* block.c (call_site_for_pc): Rename DW_OP_GNU_*, DW_TAG_GNU_* and
+	DW_AT_GNU_*.
+	* common/common-exceptions.h (enum errors): Likewise.
+	* dwarf2-frame.c (class dwarf_expr_executor): Likewise.
+	* dwarf2expr.c (dwarf_block_to_dwarf_reg)
+	(dwarf_expr_context::execute_stack_op): Likewise.
+	* dwarf2expr.h (struct dwarf_expr_context, struct dwarf_expr_piece):
+	Likewise.
+	* dwarf2loc.c (dwarf_evaluate_loc_desc::get_base_type)
+	(dwarf_evaluate_loc_desc::push_dwarf_reg_entry_value)
+	(show_entry_values_debug, call_site_to_target_addr)
+	(func_addr_to_tail_call_list, func_verify_no_selftailcall)
+	(dwarf_expr_reg_to_entry_parameter, dwarf_entry_parameter_to_value)
+	(entry_data_value_free_closure, value_of_dwarf_reg_entry)
+	(value_of_dwarf_block_entry, indirect_pieced_value)
+	(symbol_needs_eval_context::push_dwarf_reg_entry_value):
+	(disassemble_dwarf_expression): Likewise.
+	* dwarf2read.c (process_die, inherit_abstract_dies)
+	(read_call_site_scope): Likewise.
+	* gdbtypes.h (struct func_type, struct call_site_parameter)
+	(struct call_site): Likewise.
+	* stack.c (read_frame_arg): Likewise.
+	* std-operator.def (OP_VAR_ENTRY_VALUE): Likewise.
+
+2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* defs.h (read_unsigned_leb128): New declaration.
+	* dwarf2loc.c (decode_debug_loclists_addresses): New function.
+	(decode_debug_loc_dwo_addresses): Update DEBUG_LOC_* to DW_LLE_*.
+	(dwarf2_find_location_expression): Call also
+	decode_debug_loclists_addresses.  Handle DWARF-5 ULEB128 length.
+	* dwarf2loc.h (dwarf2_version): New declaration.
+	* dwarf2read.c (struct dwarf2_per_objfile): Add loclists, line_str,
+	rnglists.
+	(dwarf2_elf_names): Add .debug_loclists, .debug_line_str,
+	.debug_rnglists.
+	(struct dwop_section_names): Add loclists_dwo.
+	(dwop_section_names): Add .debug_loclists.dwo.
+	(struct comp_unit_head): Add unit_type, signature, type_offset_in_tu.
+	(struct dwarf2_per_cu_data): Add dwarf_version.
+	(struct dwo_sections): Add loclists.
+	(struct attr_abbrev): Add implicit_const.
+	(read_indirect_line_string): New declaration.
+	(read_unsigned_leb128): Delete declaration.
+	(rcuh_kind): New definition.
+	(read_and_check_comp_unit_head): Change parameter
+	is_debug_types_section to section_kind.
+	(dwarf2_locate_sections): Handle loclists, line_str and rnglists.
+	(read_comp_unit_head): Change parameter abfd to section, add parameter
+	section_kind.  Handle DWARF-5.
+	(error_check_comp_unit_head): Accept also DWARF version 5.
+	(read_and_check_comp_unit_head): Change parameter
+	is_debug_types_section to section_kind.
+	(read_and_check_type_unit_head): Delete function.
+	(read_abbrev_offset): Handle DWARF-5.
+	(create_debug_type_hash_table): Add parameter section_kind.  Process
+	only DW_UT_type.  Use signature and type_offset_in_tu from struct
+	comp_unit_head.
+	(create_debug_types_hash_table): Update create_debug_type_hash_table
+	caller.
+	(create_all_type_units): Call create_debug_type_hash_table.
+	(read_cutu_die_from_dwo, init_cutu_and_read_dies): Change
+	read_and_check_type_unit_head caller to read_and_check_comp_unit_head
+	caller.
+	(skip_one_die): Handle DW_FORM_implicit_const.
+	(dwarf2_rnglists_process): New function.
+	(dwarf2_ranges_process): Call dwarf2_rnglists_process for DWARF-5.
+	(abbrev_table_read_table): Handle DW_FORM_implicit_const.
+	(read_attribute_value): Handle DW_FORM_implicit_const,
+	DW_FORM_line_strp.
+	(read_attribute): Handle DW_FORM_implicit_const.
+	(read_indirect_string_at_offset_from): New function from
+	read_indirect_string_at_offset.
+	(read_indirect_string_at_offset): Call
+	read_indirect_string_at_offset_from.
+	(read_indirect_line_string_at_offset): New function.
+	(read_indirect_string): New function comment.
+	(read_indirect_line_string): New function.
+	(read_unsigned_leb128): Make it global.
+	(dwarf2_string_attr): Handle DWARF-5.
+	(add_include_dir_stub, read_formatted_entries): New functions.
+	(dwarf_decode_line_header, dump_die_shallow, cu_debug_loc_section):
+	Handle DWARF-5.
+	(per_cu_header_read_in): Update read_comp_unit_head caller.
+	(dwarf2_version): New function.
+	* symfile.h (struct dwarf2_debug_sections): Add loclists, line_str and
+	rnglists.
+	* xcoffread.c (dwarf2_xcoff_names): Update struct dwarf2_debug_sections
+	fields.
+
+2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* dwarf2read.c (abbrev_table_read_table): Read the data only once.
+
+2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* dwarf2read.c (dwarf2_ranges_process): New function from
+	dwarf2_ranges_read.
+	(dwarf2_ranges_read, dwarf2_record_block_ranges): Use
+	dwarf2_ranges_process.
+
+2017-02-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* dwarf2read.c (create_debug_type_hash_table): New function from
+	create_debug_types_hash_table.
+	(create_debug_types_hash_table): Call create_debug_type_hash_table.
+	(create_all_type_units, open_and_init_dwo_file): Update
+	create_debug_types_hash_table callers.
+
+2017-02-20  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR gdb/16188
+	* fork-child.c (trace_start_error): Fix thinko.  va_end should
+	refer to 'ap', not 'args'.
+
+2017-02-20  Sergio Durigan Junior  <sergiodj@redhat.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	PR gdb/16188
+	* darwin-nat.c (darwin_ptrace_me): Check if calls to system
+	calls succeeded.
+	* fork-child.c (trace_start_error): New function.
+	(trace_start_error_with_name): Likewise.
+	* gnu-nat.c (gnu_ptrace_me): Check if call to PTRACE succeeded.
+	* inf-ptrace.c (inf_ptrace_me): Likewise.
+	* inferior.h (trace_start_error): New prototype.
+	(trace_start_error_with_name): Likewise.
+
+2017-02-15  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR gdb/21164
+	* psymtab.c (maintenance_print_psymbols): Verify if 'argv' is not
+	NULL before using it.
+	* symmisc.c (maintenance_print_symbols): Likewise.
+	(maintenance_print_msymbols): Likewise.
+
+2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* NEWS: Add record Python bindings entry.
+
+2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* Makefile.in (SUBDIR_PYTHON_OBS): Add py-record-btrace.o,
+	py-record-full.o.
+	(SUBDIR_PYTHON_SRCS): Add py-record-btrace.c, py-record-full.c.
+	* python/py-record-btrace.c, python/py-record-btrace.h,
+	python/py-record-full.c, python/py-record-full.h: New file.
+	* python/py-record.c: Add include for py-record-btrace.h and
+	py-record-full.h.
+	(recpy_method, recpy_format, recpy_goto, recpy_replay_position,
+	recpy_instruction_history, recpy_function_call_history, recpy_begin,
+	recpy_end): Use functions from py-record-btrace.c and py-record-full.c.
+	* python/python-internal.h (PyInt_FromSsize_t, PyInt_AsSsize_t):
+	New definition.
+	(gdbpy_initialize_btrace): New export.
+	* python/python.c (_initialize_python): Add gdbpy_initialize_btrace.
+
+2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* Makefile.in (SUBDIR_PYTHON_OBS): Add python/py-record.o.
+	(SUBDIR_PYTHON_SRCS): Add python/py-record.c.
+	* python/py-record.c: New file.
+	* python/python-internal.h (gdbpy_start_recording,
+	gdbpy_current_recording, gdpy_stop_recording,
+	gdbpy_initialize_record): New export.
+	* python/python.c (_initialize_python): Add gdbpy_initialize_record.
+	(python_GdbMethods): Add gdbpy_start_recording,
+	gdbpy_current_recording and gdbpy_stop_recording.
+
+2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* record-btrace.c (record_btrace_record_method): New function.
+	(init_record_btrace_ops): Initialize to_record_method.
+	* record-full.c (record_full_record_method): New function.
+	(init_record_full_ops, init_record_full_core_ops): Add
+	record_full_record_method.
+	* record.h (enum record_method): New enum.
+	* target-debug.h (target_debug_print_enum_record_method: New define.
+	* target-delegates.c: Regenerate.
+	* target.c (target_record_method): New function.
+	* target.h: Include record.h.
+	(struct target_ops) <to_record_method>: New field.
+	(target_record_method): New export.
+
+2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* record.h (record_start, record_stop): New export.
+	* record.c (record_start, record_stop): New function.
+
+2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c (btrace_fetch): Copy function call segments pointer
+	into a vector.
+	(btrace_clear): Clear the vector.
+	(btrace_find_insn_by_number): Use binary search to find the correct
+	function call segment.
+	* btrace.h (brace_fun_p): New typedef.
+	(struct btrace_thread_info) <functions>: New field.
+
+2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* record-btrace.c (btrace_ui_out_decode_error): Move most of it ...
+	* btrace.c (btrace_decode_error): ... here.  New function.
+	* btrace.h (btrace_decode_error): New export.
+
+2017-02-14  Tim Wiederhake  <tim.wiederhake@intel.com>
+
+	* btrace.c (ftrace_call_num_insn, btrace_insn_get_error): New function.
+	(ftrace_new_function, btrace_insn_number, btrace_insn_cmp,
+	btrace_find_insn_by_number): Remove special case for gaps.
+	* btrace.h (btrace_insn_get_error): New export.
+	(btrace_insn_number, btrace_find_insn_by_number): Adjust comment.
+	* record-btrace.c (btrace_insn_history): Print number for gaps.
+	(record_btrace_info, record_btrace_goto): Handle gaps.
+
+2017-02-14  Tom Tromey  <tom@tromey.com>
+
+	PR python/13598:
+	* python/python.c (gdbpy_before_prompt_hook): Emit before_prompt
+	event.
+	* python/py-evts.c (gdbpy_initialize_py_events): Add
+	before_prompt registry.
+	* python/py-events.h (events_object) <before_prompt>: New field.
+
+2017-02-14  Markus Metzger  <markus.t.metzger@intel.com>
+
+	* btrace.c (ftrace_new_switch): Preserve up link and flags.
+
+2017-02-13  Luis Machado  <lgustavo@codesourcery.com>
+
+	* symfile (_initialize_symfile): Add usage text to the load command's
+	help text.
+
+2017-02-10  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* utils.c (defaulted_query): Don't query on secondary UIs.
+
+2017-02-10  Tom Tromey  <tom@tromey.com>
+
+	* rust-lang.c (rust_get_disr_info): Remove unused variable.
+
+2017-02-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-value.c (valpy_richcompare_throw): Remove unnecessary
+	"cleanup" local.
+	* python/py-type.c (typy_legacy_template_argument): Remove
+	unnecessary "cleanup" local.
+
+2017-02-10  Tom Tromey  <tom@tromey.com>
+
+	* python/python.c (do_start_initialization): New function, from
+	_initialize_python.
+	(_initialize_python): Call do_start_initialization.
+	* python/py-linetable.c (ltpy_iternext): Use explicit returns, not
+	goto.
+
+2017-02-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-prettyprint.c (pretty_print_one_value): Use
+	gdbpy_ref.
+
+2017-02-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-cmd.c (cmdpy_destroyer): Use gdbpy_ref.
+	* python/py-breakpoint.c (gdbpy_breakpoint_deleted): Use
+	gdbpy_ref.
+	* python/py-type.c (field_new): Use gdbpy_ref.
+	* python/py-symtab.c (symtab_and_line_to_sal_object): Use
+	gdbpy_ref.
+	* python/py-progspace.c (pspy_new): Use gdbpy_ref.
+	(py_free_pspace): Likewise.
+	(pspace_to_pspace_object): Likewise.
+	* python/py-objfile.c (objfpy_new): Use gdbpy_ref.
+	(py_free_objfile): Likewise.
+	(objfile_to_objfile_object): Likewise.
+	* python/py-inferior.c (delete_thread_object): Use
+	gdbpy_ref.
+	(infpy_read_memory): Likewise.
+	(py_free_inferior): Likewise.
+	* python/py-evtregistry.c (create_eventregistry_object): Use
+	gdbpy_ref.
+	* python/py-event.c (create_event_object): Use gdbpy_ref.
+
+2017-02-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-ref.h (gdbpy_ref_policy): Now a template.
+	(gdbpy_ref): Now a template; allow subclasses of PyObject to be
+	used.
+	* python/py-arch.c, python/py-bpevent.c, python/py-breakpoint.c,
+	python/py-cmd.c, python/py-continueevent.c, python/py-event.c,
+	python/py-exitedevent.c, python/py-finishbreakpoint.c,
+	python/py-framefilter.c, python/py-function.c,
+	python/py-inferior.c, python/py-infevents.c,
+	python/py-linetable.c, python/py-newobjfileevent.c,
+	python/py-param.c, python/py-prettyprint.c, python/py-ref.h,
+	python/py-signalevent.c, python/py-stopevent.c,
+	python/py-symbol.c, python/py-threadevent.c, python/py-type.c,
+	python/py-unwind.c, python/py-utils.c, python/py-value.c,
+	python/py-varobj.c, python/py-xmethods.c, python/python.c,
+	varobj.c: Change gdbpy_ref to gdbpy_ref<>.
+
+2017-02-10  Tom Tromey  <tom@tromey.com>
+
+	* ui-out.h (ui_out_emit_type): New class.
+	(ui_out_emit_tuple, ui_out_emit_list): New typedefs.
+	* python/py-framefilter.c (py_print_single_arg): Use gdb::optional
+	and ui_out_emit_tuple.
+	(enumerate_locals): Likewise.
+	(py_mi_print_variables, py_print_locals, py_print_args): Use
+	ui_out_emit_list.
+	(py_print_frame): Use gdb::optional, ui_out_emit_tuple,
+	ui_out_emit_list.
+	* common/gdb_optional.h: New file.
+
+2017-02-10  Martin Galvan  <martingalvan@sourceware.org>
+
+	* MAINTAINERS (Write After Approval): Update my e-mail address.
+
+2017-02-10  Martin Galvan  <martingalvan@sourceware.org>
+
+	PR gdb/21122
+	* breakpoint.c (_initialize_breakpoint): Update the help description
+	of the 'commands' command to indicate that it takes a list argument.
+
+2017-02-09  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* interps.c (current_interp_set_logging): Remove "return".
+
+2017-02-09  Gary Benson  <gbenson@redhat.com>
+
+	* symtab.c (add_symtab_completions): Prevent NULL pointer
+	dereference.
+
+2017-02-08  Pedro Alves  <palves@redhat.com>
+
+	* interps.c (interp::interp): Remove reference to quiet_p.
+	(interp_set): Make static.  Remove dead "Switching to" output
+	code.
+	(interp_quiet_p, interp_set_quiet): Delete.
+	(interpreter_exec_cmd): Don't set the interpreter quiet.
+	* interps.h (interp_quiet_p): Make static.
+	(class interp) <quiet_p>: Remove field
+
+2017-02-08  Jerome Guitton  <guitton@adacore.com>
+
+	* cli/cli-decode.c (find_command_name_length): Make it extern.
+	* cli/cli-decode.h (find_command_name_length): Declare.
+	* cli/cli-script.c (command_name_equals, line_first_arg):
+	New functions.
+	(process_next_line): Use cli-decode to parse command names.
+	(build_command_line): Make args a constant pointer.
+
+2017-02-08  Jerome Guitton  <guitton@adacore.com>
+
+	* cli-decode.c (lookup_cmd_1, lookup_cmd_composition):
+	Remove case-insensitive search.
+
+2017-02-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* sparc-tdep.c (sparc32_gdbarch_init): Do not place a + operator
+	at the end of the line.  Avoids an ARI warning.
+
+2017-02-06  Luis Machado  <lgustavo@codesourcery.com>
+
+	* NEWS: Mention support for record/replay of Intel 64 rdrand and
+	rdseed instructions.
+	i386-tdep.c (i386_process_record): Handle Intel 64 rdrand and rseed.
+
+2017-02-06  Ivo Raisr  <ivo.raisr@oracle.com>
+
+	PR tdep/20936
+	Provide and use sparc32 and sparc64 target description XML files.
+	* features/sparc/sparc32-cp0.xml, features/sparc/sparc32-cpu.xml,
+	features/sparc/sparc32-fpu.xml: New files for sparc 32-bit.
+	* features/sparc/sparc64-cp0.xml, features/sparc/sparc64-cpu.xml,
+	features/sparc/sparc64-fpu.xml: New files for sparc 64-bit.
+	* features/sparc/sparc32-solaris.xml: New file.
+	* features/sparc/sparc64-solaris.xml: New file.
+	* features/sparc/sparc32-solaris.c: Generated.
+	* features/sparc/sparc64-solaris.c: Generated.
+	* sparc-tdep.h: Account for differences in target descriptions.
+	* sparc-tdep.c (sparc32_register_name): Use target provided registers.
+	(sparc32_register_type): Use target provided registers.
+	(validate_tdesc_registers): New function.
+	(sparc32_gdbarch_init): Use tdesc_has_registers.
+	Set pseudoregister functions.
+	* sparc64-tdep.c (sparc64_register_name): Use target provided registers.
+	(sparc64_register_type): Use target provided registers.
+	(sparc64_init_abi): Set pseudoregister functions.
+
+2017-02-03  Tom Tromey  <tom@tromey.com>
+
+	PR rust/21097:
+	* rust-lang.c (rust_print_type) <TYPE_CODE_UNION>: Handle enums
+	with a single member.
+
+2017-02-03  Pedro Alves  <palves@redhat.com>
+
+	* cli/cli-interp.c (cli_interp_base::cli_interp_base)
+	(cli_interp_base::~cli_interp_base): New.
+	(cli_interp): New struct.
+	(as_cli_interp): Cast the interp itself to cli_interp.
+	(cli_interpreter_pre_command_loop): Rename to ...
+	(cli_interp_base::pre_command_loop): ... this.  Remove 'self'
+	parameter.
+	(cli_interpreter_init): Rename to ...
+	(cli_interp::init): ... this.  Remove 'self' parameter.  Use
+	boolean.  Make extern.
+	(cli_interpreter_resume): Rename to ...
+	(cli_interp::resume): ... this.  Remove 'data' parameter.  Make
+	extern.
+	(cli_interpreter_suspend): Rename to ...
+	(cli_interp::suspend): ... this.  Remove 'data' parameter.  Make
+	extern.
+	(cli_interpreter_exec): Rename to ...
+	(cli_interp::exec): ... this.  Remove 'data' parameter.  Make
+	extern.
+	(cli_interpreter_supports_command_editing): Rename to ...
+	(cli_interp_base::supports_command_editing): ... this.  Remove
+	'interp' parameter.  Make extern.
+	(cli_ui_out): Rename to ...
+	(cli_interp::interp_ui_out): ... this.  Remove 'interp' parameter.
+	Make extern.
+	(cli_set_logging): Rename to ...
+	(cli_interp_base::set_logging): ... this.  Remove 'interp'
+	parameter.  Make extern.
+	(cli_interp_procs): Delete.
+	(cli_interp_factory): Adjust to use "new".
+	* cli/cli-interp.h: Include "interps.h".
+	(struct cli_interp_base): New struct.
+	* interps.c (struct interp): Delete.  Fields moved to interps.h.
+	(interp_new): Delete.
+	(interp::interp, interp::~interp): New.
+	(interp_set): Use bool, and return void.  Assume the interpreter
+	has suspend, init and resume methods, and that the all return
+	void.
+	(set_top_level_interpreter): interp_set returns void.
+	(interp_ui_out): Adapt.
+	(current_interp_set_logging): Adapt.
+	(interp_data): Delete.
+	(interp_pre_command_loop, interp_supports_command_editing): Adapt.
+	(interp_exec): Adapt.
+	(top_level_interpreter_data): Delete.
+	* interps.h (interp_init_ftype, interp_resume_ftype)
+	(interp_suspend_ftype, interp_exec_ftype)
+	(interp_pre_command_loop_ftype, interp_ui_out_ftype): Delete.
+	(class interp): New.
+	(interp_new): Delete.
+	(interp_set): Now returns void.  Use bool.
+	(interp_data, top_level_interpreter_data): Delete.
+	* mi/mi-common.h: Include interps.h.
+	(class mi_interp): Inherit from interp.  Define a ctor.  Declare
+	init, resume, suspect, exec, interp_ui_out, set_logging and
+	pre_command_loop methods.
+	* mi/mi-interp.c (as_mi_interp): Cast the interp itself.
+	(mi_interpreter_init): Rename to ...
+	(mi_interp::init): ... this.  Remove the 'interp' parameter, use
+	bool, return void and make extern.  Adjust.
+	(mi_interpreter_resume): ... Rename to ...
+	(mi_interp::resume): ... this.  Remove the 'data' parameter,
+	return void and make extern.  Adjust.
+	(mi_interpreter_suspend): ... Rename to ...
+	(mi_interp::suspend): ... this.  Remove the 'data' parameter,
+	return void and make extern.  Adjust.
+	(mi_interpreter_exec): ... Rename to ...
+	(mi_interp::exec): ... this.  Remove the 'data' parameter and make
+	extern.  Adjust.
+	(mi_interpreter_pre_command_loop): ... Rename to ...
+	(mi_interp::pre_command_loop): ... this.  Remove the 'self'
+	parameter and make extern.
+	(mi_on_normal_stop_1): Adjust.
+	(mi_ui_out): Rename to ...
+	(mi_interp::interp_ui_out): ... this.  Remove the 'interp'
+	parameter and make extern.  Adjust.
+	(mi_set_logging): Rename to ...
+	(mi_interp::set_logging): ... this.  Remove the 'interp'
+	parameter and make extern.  Adjust.
+	(mi_interp_procs): Delete.
+	(mi_interp_factory): Adjust to use 'new'.
+	* mi/mi-main.c (mi_cmd_gdb_exit, captured_mi_execute_command)
+	(mi_print_exception, mi_execute_command, mi_load_progress):
+	Adjust.
+	* tui/tui-interp.c (tui_interp): New class.
+	(as_tui_interp): Return a tui_interp pointer.
+	(tui_on_normal_stop, tui_on_signal_received)
+	(tui_on_end_stepping_range, tui_on_signal_exited, tui_on_exited)
+	(tui_on_no_history, tui_on_user_selected_context_changed): Adjust
+	to use interp::interp_ui_out.
+	(tui_init): Rename to ...
+	(tui_interp::init): ... this.  Remove the 'self' parameter, use
+	bool, return void and make extern.  Adjust.
+	(tui_resume): Rename to ...
+	(tui_interp::resume): ... this.  Remove the 'data' parameter,
+	return void and make extern.  Adjust.
+	(tui_suspend): Rename to ...
+	(tui_interp::suspend): ... this.  Remove the 'data' parameter,
+	return void and make extern.  Adjust.
+	(tui_ui_out): Rename to ...
+	(tui_interp::interp_ui_out): ... this.  Remove the 'self'
+	parameter, and make extern.  Adjust.
+	(tui_exec): Rename to ...
+	(tui_interp::exec): ... this.  Remove the 'data' parameter and
+	make extern.
+	(tui_interp_procs): Delete.
+	(tui_interp_factory): Use "new".
+
+2017-02-02  Tom Tromey  <tom@tromey.com>
+
+	* rust-exp.y (ends_raw_string, space_then_number)
+	(rust_identifier_start_p): Return bool.
+	* rust-lang.c (rust_tuple_type_p, rust_underscore_fields)
+	(rust_tuple_struct_type_p, rust_tuple_variant_type_p)
+	(rust_slice_type_p, rust_range_type_p, rust_u8_type_p)
+	(rust_chartype_p): Return bool.
+	(val_print_struct, rust_print_struct_def, rust_print_type):
+	Update.
+	* rust-lang.h (rust_tuple_type_p, rust_tuple_struct_type_p):
+	Return bool.
+
+2017-02-02  Tom Tromey  <tom@tromey.com>
+
+	* rust-lang.c: Reindent.
+
+2017-02-02  Tom Tromey  <tom@tromey.com>
+
+	* rust-lang.h (rust_crate_for_block): Update.
+	* rust-lang.c (rust_crate_for_block): Return std::string.
+	(rust_get_disr_info): Use std:;string, not
+	gdb::unique_xmalloc_ptr.
+	* rust-exp.y (crate_name): Update.
+
+2017-02-02  Pedro Alves  <palves@redhat.com>
+
+	* disasm-selftests.c (print_one_insn_test): Move the "verbose"
+	field out of gdb_disassembler_test and make it static.
+
+2017-02-02  Pedro Alves  <palves@redhat.com>
+
+	* mi/mi-common.h (struct mi_interp): Delete the mi2_interp,
+	mi1_interp and mi_interp fields.
+
+2017-02-02  Pedro Alves  <palves@redhat.com>
+
+	* cli/cli-interp.c (struct saved_output_files, saved_output):
+	Moved from cli/cli-logging.c.
+	(cli_set_logging): New function.
+	(cli_interp_procs): Install cli_set_logging.
+	* cli/cli-interp.h (make_logging_output, cli_set_logging):
+	Declare.
+	* cli/cli-logging.c (struct saved_output_files, saved_output):
+	Moved to cli/cli-interp.c.
+	(pop_output_files): Don't save outputs here.
+	(make_logging_output): New function.
+	(handle_redirections): Don't build tee nor save previous outputs
+	here.
+	* interps.c (current_interp_set_logging): Change prototype.
+	Assume there's always a set_logging_proc method installed.
+	* interps.h (interp_set_logging_ftype): Change prototype.
+	(current_interp_set_logging): Change prototype and adjust comment.
+	* mi/mi-interp.c (mi_set_logging): Change protototype.  Adjust to
+	use make_logging_output.
+	* tui/tui-interp.c (tui_interp_procs): Install cli_set_logging.
+2017-02-02  Pedro Alves  <palves@redhat.com>
+
+	* cli/cli-logging.c (maybe_warn_already_logging): New factored out
+	from ...
+	(set_logging_overwrite): ... here.
+	(logging_no_redirect_file): Delete.
+	(set_logging_redirect): Don't handle redirection on the fly.
+	Instead warn that "logging off" / "logging on" is necessary.
+	(pop_output_files): Delete references to logging_no_redirect_file.
+	(show_logging_command): Always speak in terms of what will happen
+	once logging is reenabled.
+
+2017-02-02  Pedro Alves  <palves@redhat.com>
+
+	* disasm.h (gdb_pretty_print_disassembler): Tweak intro comment.
+
+2017-02-02  Pedro Alves  <palves@redhat.com>
+
+	* disasm.c (gdb_pretty_print_insn): Rename to ...
+	(gdb_pretty_print_disassembler::pretty_print_insn): ... this.
+	Remove gdbarch parameter.  Adapt to clear the object's buffers
+	instead of allocating new buffers, and to print using the object's
+	gdb_disassembler instead of calling gdb_print_insn.
+	(dump_insns): Use gdb_pretty_print_disassembler.
+	* disasm.h (gdb_pretty_print_insn): Delete declaration.
+	(gdb_pretty_print_disassembler): New class.
+	* record-btrace.c (btrace_insn_history): Use
+	gdb_pretty_print_disassembler.
+
+2017-02-02  Pedro Alves  <palves@redhat.com>
+
+	* ada-lang.c (type_as_string): Use string_file.
+	* ada-valprint.c (ada_print_floating): Use string_file.
+	* ada-varobj.c (ada_varobj_scalar_image)
+	(ada_varobj_get_value_image): Use string_file.
+	* aix-thread.c (aix_thread_extra_thread_info): Use string_file.
+	* arm-tdep.c (_initialize_arm_tdep): Use string_printf.
+	* breakpoint.c (update_inserted_breakpoint_locations)
+	(insert_breakpoint_locations, reattach_breakpoints)
+	(print_breakpoint_location, print_one_detail_ranged_breakpoint)
+	(print_it_watchpoint): Use string_file.
+	(save_breakpoints): Use stdio_file.
+	* c-exp.y (oper): Use string_file.
+	* cli/cli-logging.c (set_logging_redirect): Use ui_file_up and
+	tee_file.
+	(pop_output_files): Use delete.
+	(handle_redirections): Use stdio_file and tee_file.
+	* cli/cli-setshow.c (do_show_command): Use string_file.
+	* compile/compile-c-support.c (c_compute_program): Use
+	string_file.
+	* compile/compile-c-symbols.c (generate_vla_size): Take a
+	'string_file &' instead of a 'ui_file *'.
+	(generate_c_for_for_one_variable): Take a 'string_file &' instead
+	of a 'ui_file *'.  Use string_file.
+	(generate_c_for_variable_locations): Take a 'string_file &'
+	instead of a 'ui_file *'.
+	* compile/compile-internal.h (generate_c_for_for_one_variable):
+	Take a 'string_file &' instead of a 'ui_file *'.
+	* compile/compile-loc2c.c (push, pushf, unary, binary)
+	(print_label, pushf_register_address, pushf_register)
+	(do_compile_dwarf_expr_to_c): Take a 'string_file &' instead of a
+	'ui_file *'.  Adjust.
+	* compile/compile.c (compile_to_object): Use string_file.
+	* compile/compile.h (compile_dwarf_expr_to_c)
+	(compile_dwarf_bounds_to_c): Take a 'string_file &' instead of a
+	'ui_file *'.
+	* cp-support.c (inspect_type): Use string_file and obstack_copy0.
+	(replace_typedefs_qualified_name): Use string_file and
+	obstack_copy0.
+	* disasm.c (gdb_pretty_print_insn): Use string_file.
+	(gdb_disassembly): Adjust reference the null_stream global.
+	(do_ui_file_delete): Delete.
+	(gdb_insn_length): Use null_stream.
+	* dummy-frame.c (maintenance_print_dummy_frames): Use stdio_file.
+	* dwarf2loc.c (dwarf2_compile_property_to_c)
+	(locexpr_generate_c_location, loclist_generate_c_location): Take a
+	'string_file &' instead of a 'ui_file *'.
+	* dwarf2loc.h (dwarf2_compile_property_to_c): Likewise.
+	* dwarf2read.c (do_ui_file_peek_last): Delete.
+	(dwarf2_compute_name): Use string_file.
+	* event-top.c (gdb_setup_readline): Use stdio_file.
+	* gdbarch.sh (verify_gdbarch): Use string_file.
+	* gdbtypes.c (safe_parse_type): Use null_stream.
+	* guile/scm-breakpoint.c (gdbscm_breakpoint_commands): Use
+	string_file.
+	* guile/scm-disasm.c (gdbscm_print_insn_from_port): Take a
+	'string_file *' instead of a 'ui_file *'.
+	(gdbscm_arch_disassemble): Use string_file.
+	* guile/scm-frame.c (frscm_print_frame_smob): Use string_file.
+	* guile/scm-ports.c (class ioscm_file_port): Now a class that
+	inherits from ui_file.
+	(ioscm_file_port_delete, ioscm_file_port_rewind)
+	(ioscm_file_port_put): Delete.
+	(ioscm_file_port_write): Rename to ...
+	(ioscm_file_port::write): ... this.  Remove file_port_magic
+	checks.
+	(ioscm_file_port_new): Delete.
+	(ioscm_with_output_to_port_worker): Use ioscm_file_port and
+	ui_file_up.
+	* guile/scm-type.c (tyscm_type_name): Use string_file.
+	* guile/scm-value.c (vlscm_print_value_smob, gdbscm_value_print):
+	Use string_file.
+	* infcmd.c (print_return_value_1): Use string_file.
+	* infrun.c (print_target_wait_results): Use string_file.
+	* language.c (add_language): Use string_file.
+	* location.c (explicit_to_string_internal): Use string_file.
+	* main.c (captured_main_1): Use null_file.
+	* maint.c (maintenance_print_architecture): Use stdio_file.
+	* mi/mi-cmd-stack.c (list_arg_or_local): Use string_file.
+	* mi/mi-common.h (struct mi_interp) <out, err, log, targ,
+	event_channel>: Change type to mi_console_file pointer.
+	* mi/mi-console.c (mi_console_file_fputs, mi_console_file_flush)
+	(mi_console_file_delete): Delete.
+	(struct mi_console_file): Delete.
+	(mi_console_file_magic): Delete.
+	(mi_console_file_new): Delete.
+	(mi_console_file::mi_console_file): New.
+	(mi_console_file_delete): Delete.
+	(mi_console_file_fputs): Delete.
+	(mi_console_file::write): New.
+	(mi_console_raw_packet): Delete.
+	(mi_console_file::flush): New.
+	(mi_console_file_flush): Delete.
+	(mi_console_set_raw): Rename to ...
+	(mi_console_file::set_raw): ... this.
+	* mi/mi-console.h (class mi_console_file): New class.
+	(mi_console_file_new, mi_console_set_raw): Delete.
+	* mi/mi-interp.c (mi_interpreter_init): Use mi_console_file.
+	(mi_set_logging): Use delete and tee_file.  Adjust.
+	* mi/mi-main.c (output_register): Use string_file.
+	(mi_cmd_data_evaluate_expression): Use string_file.
+	(mi_cmd_data_read_memory): Use string_file.
+	(mi_cmd_execute, print_variable_or_computed): Use string_file.
+	* mi/mi-out.c (mi_ui_out::main_stream): New.
+	(mi_ui_out::rewind): Use main_stream and
+	string_file.
+	(mi_ui_out::put): Use main_stream and string_file.
+	(mi_ui_out::mi_ui_out): Remove 'stream' parameter.
+	Allocate a 'string_file' instead.
+	(mi_out_new): Don't allocate a mem_fileopen stream here.
+	* mi/mi-out.h (mi_ui_out::mi_ui_out): Remove 'stream' parameter.
+	(mi_ui_out::main_stream): Declare method.
+	* printcmd.c (eval_command): Use string_file.
+	* psymtab.c (maintenance_print_psymbols): Use stdio_file.
+	* python/py-arch.c (archpy_disassemble): Use string_file.
+	* python/py-breakpoint.c (bppy_get_commands): Use string_file.
+	* python/py-frame.c (frapy_str): Use string_file.
+	* python/py-framefilter.c (py_print_type, py_print_single_arg):
+	Use string_file.
+	* python/py-type.c (typy_str): Use string_file.
+	* python/py-unwind.c (unwind_infopy_str): Use string_file.
+	* python/py-value.c (valpy_str): Use string_file.
+	* record-btrace.c (btrace_insn_history): Use string_file.
+	* regcache.c (regcache_print): Use stdio_file.
+	* reggroups.c (maintenance_print_reggroups): Use stdio_file.
+	* remote.c (escape_buffer): Use string_file.
+	* rust-lang.c (rust_get_disr_info): Use string_file.
+	* serial.c (serial_open_ops_1): Use stdio_file.
+	(do_serial_close): Use delete.
+	* stack.c (print_frame_arg): Use string_file.
+	(print_frame_args): Remove local mem_fileopen stream, not used.
+	(print_frame): Use string_file.
+	* symmisc.c (maintenance_print_symbols): Use stdio_file.
+	* symtab.h (struct symbol_computed_ops) <generate_c_location>:
+	Take a 'string_file *' instead of a 'ui_file *'.
+	* top.c (new_ui): Use stdio_file and stderr_file.
+	(free_ui): Use delete.
+	(execute_command_to_string): Use string_file.
+	(quit_confirm): Use string_file.
+	* tracepoint.c (collection_list::append_exp): Use string_file.
+	* tui/tui-disasm.c (tui_disassemble): Use string_file.
+	* tui/tui-file.c: Don't include "ui-file.h".
+	(enum streamtype, struct tui_stream): Delete.
+	(tui_file_new, tui_file_delete, tui_fileopen, tui_sfileopen)
+	(tui_file_isatty, tui_file_rewind, tui_file_put): Delete.
+	(tui_file::tui_file): New method.
+	(tui_file_fputs): Delete.
+	(tui_file_get_strbuf): Delete.
+	(tui_file::puts): New method.
+	(tui_file_adjust_strbuf): Delete.
+	(tui_file_flush): Delete.
+	(tui_file::flush): New method.
+	* tui/tui-file.h: Tweak intro comment.
+	Include ui-file.h.
+	(tui_fileopen, tui_sfileopen, tui_file_get_strbuf)
+	(tui_file_adjust_strbuf): Delete declarations.
+	(class tui_file): New class.
+	* tui/tui-io.c (tui_initialize_io): Use tui_file.
+	* tui/tui-regs.c (tui_restore_gdbout): Use delete.
+	(tui_register_format): Use string_stream.
+	* tui/tui-stack.c (tui_make_status_line): Use string_file.
+	(tui_get_function_from_frame): Use string_file.
+	* typeprint.c (type_to_string): Use string_file.
+	* ui-file.c (struct ui_file, ui_file_magic, ui_file_new): Delete.
+	(null_stream): New global.
+	(ui_file_delete): Delete.
+	(ui_file::ui_file): New.
+	(null_file_isatty): Delete.
+	(ui_file::~ui_file): New.
+	(null_file_rewind): Delete.
+	(ui_file::printf): New.
+	(null_file_put): Delete.
+	(null_file_flush): Delete.
+	(ui_file::putstr): New.
+	(null_file_write): Delete.
+	(ui_file::putstrn): New.
+	(null_file_read): Delete.
+	(ui_file::putc): New.
+	(null_file_fputs): Delete.
+	(null_file_write_async_safe): Delete.
+	(ui_file::vprintf): New.
+	(null_file_delete): Delete.
+	(null_file::write): New.
+	(null_file_fseek): Delete.
+	(null_file::puts): New.
+	(ui_file_data): Delete.
+	(null_file::write_async_safe): New.
+	(gdb_flush, ui_file_isatty): Adjust.
+	(ui_file_put, ui_file_rewind): Delete.
+	(ui_file_write): Adjust.
+	(ui_file_write_for_put): Delete.
+	(ui_file_write_async_safe, ui_file_read): Adjust.
+	(ui_file_fseek): Delete.
+	(fputs_unfiltered): Adjust.
+	(set_ui_file_flush, set_ui_file_isatty, set_ui_file_rewind)
+	(set_ui_file_put, set_ui_file_write, set_ui_file_write_async_safe)
+	(set_ui_file_read, set_ui_file_fputs, set_ui_file_fseek)
+	(set_ui_file_data): Delete.
+	(string_file::~string_file, string_file::write)
+	(struct accumulated_ui_file, do_ui_file_xstrdup, ui_file_xstrdup)
+	(do_ui_file_as_string, ui_file_as_string): Delete.
+	(do_ui_file_obsavestring, ui_file_obsavestring): Delete.
+	(struct mem_file): Delete.
+	(mem_file_new): Delete.
+	(stdio_file::stdio_file): New.
+	(mem_file_delete): Delete.
+	(stdio_file::stdio_file): New.
+	(mem_fileopen): Delete.
+	(stdio_file::~stdio_file): New.
+	(mem_file_rewind): Delete.
+	(stdio_file::set_stream): New.
+	(mem_file_put): Delete.
+	(stdio_file::open): New.
+	(mem_file_write): Delete.
+	(stdio_file_magic, struct stdio_file): Delete.
+	(stdio_file_new, stdio_file_delete, stdio_file_flush): Delete.
+	(stdio_file::flush): New.
+	(stdio_file_read): Rename to ...
+	(stdio_file::read): ... this.  Adjust.
+	(stdio_file_write): Rename to ...
+	(stdio_file::write): ... this.  Adjust.
+	(stdio_file_write_async_safe): Rename to ...
+	(stdio_file::write_async_safe) ... this.  Adjust.
+	(stdio_file_fputs): Rename to ...
+	(stdio_file::puts) ... this.  Adjust.
+	(stdio_file_isatty): Delete.
+	(stdio_file_fseek): Delete.
+	(stdio_file::isatty): New.
+	(stderr_file_write): Rename to ...
+	(stderr_file::write) ... this.  Adjust.
+	(stderr_file_fputs): Rename to ...
+	(stderr_file::puts) ... this.  Adjust.
+	(stderr_fileopen, stdio_fileopen, gdb_fopen): Delete.
+	(stderr_file::stderr_file): New.
+	(tee_file_magic): Delete.
+	(struct tee_file): Delete.
+	(tee_file::tee_file): New.
+	(tee_file_new): Delete.
+	(tee_file::~tee_file): New.
+	(tee_file_delete): Delete.
+	(tee_file_flush): Rename to ...
+	(tee_file::flush): ... this.  Adjust.
+	(tee_file_write): Rename to ...
+	(tee_file::write): ... this.  Adjust.
+	(tee_file::write_async_safe): New.
+	(tee_file_fputs): Rename to ...
+	(tee_file::puts): ... this.  Adjust.
+	(tee_file_isatty): Rename to ...
+	(tee_file::isatty): ... this.  Adjust.
+	* ui-file.h (struct obstack, struct ui_file): Don't
+	forward-declare.
+	(ui_file_new, ui_file_flush_ftype, set_ui_file_flush)
+	(ui_file_write_ftype)
+	(set_ui_file_write, ui_file_fputs_ftype, set_ui_file_fputs)
+	(ui_file_write_async_safe_ftype, set_ui_file_write_async_safe)
+	(ui_file_read_ftype, set_ui_file_read, ui_file_isatty_ftype)
+	(set_ui_file_isatty, ui_file_rewind_ftype, set_ui_file_rewind)
+	(ui_file_put_method_ftype, ui_file_put_ftype, set_ui_file_put)
+	(ui_file_delete_ftype, set_ui_file_data, ui_file_fseek_ftype)
+	(set_ui_file_fseek): Delete.
+	(ui_file_data, ui_file_delete, ui_file_rewind)
+	(struct ui_file): New.
+	(ui_file_up): New.
+	(class null_file): New.
+	(null_stream): Declare.
+	(ui_file_write_for_put, ui_file_put): Delete.
+	(ui_file_xstrdup, ui_file_as_string, ui_file_obsavestring):
+	Delete.
+	(ui_file_fseek, mem_fileopen, stdio_fileopen, stderr_fileopen)
+	(gdb_fopen, tee_file_new): Delete.
+	(struct string_file): New.
+	(struct stdio_file): New.
+	(stdio_file_up): New.
+	(struct stderr_file): New.
+	(class tee_file): New.
+	* ui-out.c (ui_out::field_stream): Take a 'string_file &' instead
+	of a 'ui_file *'.  Adjust.
+	* ui-out.h (class ui_out) <field_stream>: Likewise.
+	* utils.c (do_ui_file_delete, make_cleanup_ui_file_delete)
+	(null_stream): Delete.
+	(error_stream): Take a 'string_file &' instead of a 'ui_file *'.
+	Adjust.
+	* utils.h (struct ui_file): Delete forward declaration..
+	(make_cleanup_ui_file_delete, null_stream): Delete declarations.
+	(error_stream): Take a 'string_file &' instead of a
+	'ui_file *'.
+	* varobj.c (varobj_value_get_print_value): Use string_file.
+	* xtensa-tdep.c (xtensa_verify_config): Use string_file.
+	* gdbarch.c: Regenerate.
+
+2017-02-02  Pedro Alves  <palves@redhat.com>
+
+	* disasm.c (gdb_disassembler::pretty_print_insn): Rename to...
+	(gdb_pretty_print_insn): ... this.  Now a free function.  Add back
+	a 'gdbarch' parameter.  Allocate a mem_fileopen stream here.
+	Adjust to call gdb_print_insn instead of
+	gdb_disassembler::print_insn.
+	(dump_insns, do_mixed_source_and_assembly_deprecated)
+	(do_mixed_source_and_assembly, do_assembly_only): Add back a
+	'gdbarch' parameter.  Remove gdb_disassembler parameter.
+	(gdb_disassembly): Don't allocate a gdb_disassembler here.
+	* disasm.h (gdb_disassembler::pretty_print_insn): Delete
+	declaration.
+	(gdb_pretty_print_insn): Re-add declaration.
+	* record-btrace.c (btrace_insn_history): Don't allocate a
+	gdb_disassembler here.  Adjust to call gdb_pretty_print_insn.
+
+2017-02-01  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* disasm.h (gdb_disassembly): Remove file_string parameter.
+	* disasm.c (gdb_disassembly): Likewise.
+	* cli/cli-cmds.c (print_disassembly): Adapt.
+	* mi/mi-cmd-disas.c (mi_cmd_disassemble): Likewise.
+	* stack.c (do_gdb_disassembly): Likewise.
+
+2017-02-01  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf2loc.c (dwarf2_evaluate_loc_desc_full): For
+	DWARF_VALUE_LITERAL, no longer ignore the offset on big-endian
+	targets.  And if the implicit value is longer than needed, extract
+	the first bytes instead of the "least significant" ones.
+
+2017-02-01  Markus Metzger  <markus.t.metzger@intel.com>
+
+	* btrace.c (btrace_enable): Do not call btrace_add_pc for
+	BTRACE_FORMAT_PT or if can_access_registers_ptid returns false.
+	(btrace_fetch): Assert can_access_registers_ptid.
+	* record-btrace.c (require_btrace_thread, record_btrace_info): Call
+	validate_registers_access.
+
+2017-02-01  Markus Metzger  <markus.t.metzger@intel.com>
+
+	* gdbthread.h (can_access_registers_ptid): New.
+	* thread.c (can_access_registers_ptid): New.
+
+2017-02-01  Pedro Alves  <palves@redhat.com>
+
+	* i386-tdep.c (i386_fast_tracepoint_valid_at): Use gdb_insn_length.
+
+2017-01-31  Pedro Alves  <palves@redhat.com>
+
+	* mi/mi-interp.c (mi_breakpoint_created, mi_breakpoint_modified):
+	Fix typos.
+
+2017-01-31  Pedro Alves  <palves@redhat.com>
+
+	* stack.c (print_frame_args): Remove local mem_fileopen stream,
+	not used.
+
+2017-01-31  Pedro Alves  <palves@redhat.com>
+
+	* varobj.c (varobj_value_get_print_value): Remove xstrdup call.
+
+2017-01-31  Pedro Alves  <palves@redhat.com>
+
+	* common/scoped_restore.h
+	(scoped_restore_tmpl::scoped_restore_tmpl): Template on T2, and
+	change the value's parameter type to T2.
+	(make_scoped_restore): Likewise.
+
+2017-01-27  Walfred Tedeschi  <walfred.tedeschi@intel.com>
+	    Richard Henderson  <rth@redhat.com>
+
+	* amd64-linux-nat.c (PTRACE_ARCH_PRCTL): New define.
+	(amd64_linux_fetch_inferior_registers): Add case to fetch FS_BASE
+	GS_BASE for older kernels.
+	(amd64_linux_store_inferior_registers): Add case to store FS_BASE
+	GS_BASE for older kernels.
+	* amd64-linux-tdep.c (amd64_linux_gregset_reg_offset): Add FS_BASE
+	and GS_BASE to the offset table.
+	(amd64_linux_register_reggroup_p): Add FS_BASE and GS_BASE to the
+	system register group.
+	* amd64-nat.c (amd64_native_gregset_reg_offset): Implements case
+	for older kernels.
+	* amd64-tdep.c (amd64_init_abi): Add segment registers for the
+	amd64 ABI.
+	* amd64-tdep.h (amd64_regnum): Add AMD64_FSBASE_REGNUM and
+	AMD64_GSBASE_REGNUM.
+	(AMD64_NUM_REGS): Set to AMD64_GSBASE_REGNUM + 1.
+	* features/Makefile (amd64-linux.dat, amd64-avx-linux.dat)
+	(amd64-mpx-linux.dat, amd64-avx512-linux.dat, x32-linux.dat)
+	(x32-avx-linux.dat, x32-avx512-linux.dat): Add
+	i386/64bit-segments.xml in those rules.
+	* features/i386/64bit-segments.xml: New file.
+	* features/i386/amd64-avx-mpx-linux.xml: Add 64bit-segments.xml.
+	* features/i386/amd64-avx-linux.xml: Add 64bit-segments.xml.
+	* features/i386/amd64-avx512-linux.xml: Add 64bit-segments.xml.
+	* features/i386/amd64-mpx-linux.xml: Add 64bit-segments.xml.
+	* features/i386/x32-avx512-linux.xml: Add 64bit-segments.xml.
+	* features/i386/x32-avx-linux.xml: Add 64bit-segments.xml.
+	* features/i386/amd64-linux.xml: Add 64bit-segments.xml.
+	* features/i386/amd64-avx-linux.c: Regenerated.
+	* features/i386/amd64-avx-mpx-linux.c: Regenerated.
+	* features/i386/amd64-avx-mpx.c: Regenerated.
+	* features/i386/amd64-avx512-linux.c: Regenerated.
+	* features/i386/amd64-linux.c: Regenerated.
+	* features/i386/amd64-mpx-linux.c: Regenerated.
+	* features/i386/i386-avx-mpx-linux.c: Regenerated.
+	* features/i386/i386-avx-mpx.c: Regenerated.
+	* features/i386/x32-avx-linux.c: Regenerated.
+	* features/i386/x32-avx512-linux.c: Regenerated.
+	* regformats/i386/amd64-avx-linux.dat: Regenerated.
+	* regformats/i386/amd64-avx-mpx-linux.dat: Regenerated.
+	* regformats/i386/amd64-avx512-linux.dat: Regenerated.
+	* regformats/i386/amd64-linux.dat: Regenerated.
+	* regformats/i386/amd64-mpx-linux.dat: Regenerated.
+	* regformats/i386/x32-avx-linux.dat: Regenerated.
+	* regformats/i386/x32-avx512-linux.dat: Regenerated.
+	* regformats/i386/x32-linux.dat: Regenerated.
+
+2017-01-27  Walfred Tedeschi  <walfred.tedeschi@intel.com>
+
+	* amd64-linux-tdep.h (AMD64_LINUX_ORIG_RAX_REGNUM):
+	Set to AMD64_NUM_REGS.
+
+2017-01-27  Walfred Tedeschi  <walfred.tedeschi@intel.com>
+
+	* amd64-nat.c (amd64_native_gregset_reg_offset): Simplify logic
+	that checks validity of a register number.
+
+2017-01-27  Kees Cook  <keescook@google.com>
+
+	* gdb/arm-linux-nat.c (arm_linux_fetch_inferior_registers): Call
+	fetch_fpregs if target has fpa registers.
+	(arm_linux_store_inferior_registers): Call store_fpregs if target
+	has fpa registers.
+
+2017-01-26  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* cris-tdep.c (cris_gdbarch_init): Remove check for
+	info.byte_order and force it to BFD_ENDIAN_LITTLE.
+
+2017-01-26  Antoine Tremblay  <antoine.tremblay@ericsson.com>
+
+	* corelow.c (get_core_register_section): Check for regset
+	existence before checking for REGSET_VARIABLE_SIZE.
+
+2017-01-26  Yao Qi  <yao.qi@linaro.org>
+	    Pedro Alves  <palves@redhat.com>
+
+	PR gdb/20939
+	* disasm.c (gdb_disassembler::dis_asm_memory_error): Don't
+	call memory_error, save memaddr instead.
+	(gdb_disassembler::print_insn): If gdbarch_print_insn returns
+	negative, cal memory_error.
+	* disasm.h (gdb_disassembler) <m_err_memaddr>: New field.
+
+2017-01-26  Yao Qi  <yao.qi@linaro.org>
+
+	* disasm-selftests.c (memory_error_test): New function.
+	(_initialize_disasm_selftests): Register memory_error_test.
+
+2017-01-26  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (SFILES): Add disasm-selftests.c and
+	selftest-arch.c.
+	(COMMON_OBS): Add disasm-selftests.o and selftest-arch.o.
+	* disasm-selftests.c: New file.
+	* selftest-arch.c: New file.
+	* selftest-arch.h: New file.
+
+2017-01-26  Yao Qi  <yao.qi@linaro.org>
+
+	* mep-tdep.c (mep_gdb_print_insn): Set info->arch
+	to bfd_arch_mep.  Don't return 0 if section is not
+	found.  Call print_insn_mep.
+
+2017-01-26  Pedro Alves  <palves@redhat.com>
+	    Yao Qi  <yao.qi@linaro.org>
+
+	* arm-tdep.c: Include "disasm.h".
+	(gdb_print_insn_arm): Update code to get gdbarch.
+	* disasm.c (dis_asm_read_memory): Change it to
+	gdb_disassembler::dis_asm_read_memory.
+	(dis_asm_memory_error): Likewise.
+	(dis_asm_print_address): Likewise.
+	(gdb_pretty_print_insn): Change it to
+	gdb_disassembler::pretty_print_insn.
+	(dump_insns): Add one argument gdb_disassemlber.  All
+	callers updated.
+	(do_mixed_source_and_assembly_deprecated): Likewise.
+	(do_mixed_source_and_assembly): Likewise.
+	(do_assembly_only): Likewise.
+	(gdb_disassembler::gdb_disassembler): New.
+	(gdb_disassembler::print_insn): New.
+	* disasm.h (class gdb_disassembler): New.
+	(gdb_pretty_print_insn): Remove declaration.
+	(gdb_disassemble_info): Likewise.
+	* guile/scm-disasm.c (class gdbscm_disassembler): New.
+	(gdbscm_disasm_read_memory_worker): Update.
+	(gdbscm_disasm_read_memory): Update.
+	(gdbscm_disasm_memory_error): Remove.
+	(gdbscm_disasm_print_address): Remove.
+	(gdbscm_disassembler::gdbscm_disassembler): New.
+	(gdbscm_print_insn_from_port): Update.
+	* mips-tdep.c: Include disasm.h.
+	(gdb_print_insn_mips): Update code to get gdbarch.
+	* record-btrace.c (btrace_insn_history): Update.
+	* spu-tdep.c: Include disasm.h.
+	(struct spu_dis_asm_data): Remove.
+	(struct spu_dis_asm_info): New.
+	(spu_dis_asm_print_address): Use spu_dis_asm_info to get
+	SPU id.
+	(gdb_print_insn_spu): Cast disassemble_info to
+	spu_dis_asm_info.
+
+2017-01-26  Yao Qi  <yao.qi@linaro.org>
+
+	* disasm.c (do_ui_file_delete): Delete.
+	(gdb_insn_length): Move code creating stream to ...
+	* utils.c (null_stream): ... here.  New function.
+	* utils.h (null_stream): Declare.
+
+2017-01-23  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* python/py-inferior.c (find_thread_object): Return directly
+	from the loop.  Remove "found" variable.
+
+2017-01-21  Joel Brobecker  <brobecker@adacore.com>
+
+	GDB 7.12.1 released.
+
+2017-01-20  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* python/py-function.c (fnpy_call): Reorder declarations to have
+	the gdbpy_enter object declared first.
+	* python/py-xmethods.c (gdbpy_get_xmethod_arg_types): Likewise.
+
+2017-01-20  Simon Marchi  <simon.marchi@ericsson.com>
+
+	PR python/21068
+	* python/python-internal.h (PyMem_RawMalloc): Define for
+	Python < 3.4.
+	* python/py-gdb-readline.c (gdbpy_readline_wrapper): Use
+	PyMem_RawMalloc instead of PyMem_Malloc.
+
+2017-01-20  Mike Wrighton  <mike_wrighton@codesourcery.com>
+	    Luis Machado  <lgustavo@codesourcery.com>
+
+	* NEWS (New commands): Mention flash-erase.
+	(New MI commands): Mention target-flash-erase.
+	* mi/mi-cmds.c (mi_cmd_target_flash_erase): Add target-flash-erase MI
+	command.
+	* mi/mi-cmds.h (mi_cmd_target_flash_erase): New declaration.
+	* mi/mi-main.c (mi_cmd_target_flash_erase): New function.
+	* target.c (flash_erase_command): New function.
+	(initialize_targets): Add new flash-erase command.
+	* target.h (flash_erase_command): New declaration.
+
+2017-01-20  Joel Brobecker  <brobecker@adacore.com>
+
+	* nat/linux-ptrace.c: Only include <sys/procfs.h> if
+	HAVE_SYS_PROCFS_H is defined.
+
+2017-01-18  Alan Hayward  <alan.hayward@arm.com>
+
+	* remote.c (struct cached_reg): Change data into a pointer.
+	* (stop_reply_dtr): Free data pointers before deleting vector.
+	(process_stop_reply): Likewise.
+	(remote_parse_stop_reply): Allocate space for data
+
+2017-01-18  Alan Hayward  <alan.hayward@arm.com>
+
+	* amd64-tdep.c (amd64_pseudo_register_read_value): remove
+	MAX_REGISTER_SIZE.
+	(amd64_pseudo_register_read_value): Likewise.
+	* remote.c (fetch_register_using_p): Remove MAX_REGISTER_SIZE.
+	(store_register_using_P): Likewise.
+	* regcache.c (regcache_xfer_part): Likewise.
+
+2017-01-16  Ivo Raisr  <ivo.raisr@oracle.com>
+
+	Split real and pseudo registers.
+	* sparc-tdep.h (SPARC_CORE_REGISTERS): New macro.
+	(sparc32_pseudo_regnum): New enum.
+	* sparc64-tdep.h (sparc64_pseudo_regnum): New enum.
+	* sparc-tdep.c (SPARC32_FPU_REGISTERS): New macro.
+	(SPARC32_CP0_REGISTERS): New macro.
+	(sparc32_pseudo_register_name): New function.
+	(sparc32_register_name): Use sparc32_pseudo_register_name.
+	(sparc32_pseudo_register_type): New function.
+	(sparc32_register_type): Use sparc32_pseudo_register_type.
+	(sparc32_pseudo_register_read, sparc32_pseudo_register_write): Handle
+	pseudo register numbers.
+	* sparc64-tdep.c SPARC64_FPU_REGISTERS): New macro.
+	(SPARC64_CP0_REGISTERS): New macro.
+	(sparc64_pseudo_register_name): New function.
+	(sparc64_register_name): Use sparc64_pseudo_register_name.
+	(sparc64_pseudo_register_type): New function.
+	(sparc64_register_type): Use sparc64_pseudo_register_type.
+	(sparc64_pseudo_register_read, sparc64_pseudo_register_write): Handle
+	pseudo register numbers.
+	(sparc64_store_floating_fields, sparc64_extract_floating_fields,
+	sparc64_store_arguments): Handle pseudo register numbers.
+
+2017-01-13  Yao Qi  <yao.qi@linaro.org>
+
+	* remote.c (REMOTE_DEBUG_MAX_CHAR): New macro.
+	(putpkt_binary): Print only REMOTE_DEBUG_MAX_CHAR chars in debug
+	output.
+	(getpkt_or_notif_sane_1): Likewise.
+
+2017-01-13  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (checker-headers): Use CXX and CXX_DIALET instead
+	of CC.  Pass "-x c++-header" instead of "-x c".
+
+2017-01-12  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* remote.c (remote_can_async_p): Update comment.
+
+2017-01-12  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-nat.c (linux_nat_can_async_p): Update comment.
+
+2017-01-12  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* serial.c (serial_open): Forget about "pc" and "lpt" serial interface.
+
+2017-01-11  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* cli/cli-decode.c (lookup_cmd_1): Fix typo in comment.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-type.c (typy_legacy_template_argument): Update.
+	* cp-support.h (struct demangle_parse_info) (demangle_parse_info,
+	~demangle_parse_info): Declare new members.
+	(cp_demangled_name_to_comp): Return unique_ptr.
+	(cp_demangled_name_parse_free)
+	(make_cleanup_cp_demangled_name_parse_free)
+	(cp_new_demangle_parse_info): Remove.
+	* cp-support.c (do_demangled_name_parse_free_cleanup)
+	(make_cleanup_cp_demangled_name_parse_free): Remove.
+	(inspect_type, cp_canonicalize_string_full)
+	(cp_canonicalize_string): Update.
+	(mangled_name_to_comp): Change return type.
+	(cp_class_name_from_physname, method_name_from_physname)
+	(cp_func_name, cp_remove_params): Update.
+	* cp-name-parser.y (demangle_parse_info): New constructor, from
+	cp_new_demangle_parse_info.
+	(~demangle_parse_info): New destructor, from
+	cp_demangled_name_parse_free.
+	(cp_merge_demangle_parse_infos): Update.
+	(cp_demangled_name_to_comp): Change return type.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* top.c (prevent_dont_repeat): Change return type.
+	* python/python.c (execute_gdb_command): Use std::string.
+	Update.
+	* guile/guile.c (gdbscm_execute_gdb_command): Update.
+	* command.h (prevent_dont_repeat): Change return type.
+	* breakpoint.c (bpstat_do_actions_1): Update.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* value.h (scoped_value_mark::~scoped_value_mark): Call
+	free_to_mark.
+	(scoped_value_mark::free_to_mark): New method.
+	* dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Use
+	scoped_value_mark.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-value.c (valpy_dereference, valpy_referenced_value)
+	(valpy_reference_value, valpy_const_value, valpy_get_address)
+	(valpy_get_dynamic_type, valpy_lazy_string, valpy_do_cast)
+	(valpy_getitem, valpy_call, valpy_binop_throw, valpy_negative)
+	(valpy_absolute, valpy_richcompare_throw): Use scoped_value_mark.
+	* dwarf2loc.c (dwarf2_loc_desc_get_symbol_read_needs): Use
+	scoped_value_mark.
+	* dwarf2-frame.c (execute_stack_op): Use scoped_value_mark.
+	* value.h (scoped_value_mark): New class.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* dwarf2read.c (dwarf2_build_psymtabs): Use psymtab_discarder.
+	* psympriv.h (make_cleanup_discard_psymtabs): Don't declare.
+	* psymtab.c (discard_psymtabs_upto): Remove.
+	(make_cleanup_discard_psymtabs): Remove.
+	(struct psymtab_state): Remove.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* record-full.c (record_full_save_cleanups): Remove.
+	(record_full_save): Use gdb::unlinker.
+	* gcore.c (do_bfd_delete_cleanup): Remove.
+	(gcore_command): Use gdb::unlinker, unique_xmalloc_ptr.  Remove
+	cleanups.
+	* dwarf2read.c (unlink_if_set): Remove.
+	(write_psymtabs_to_index): Use gdb::unlinker.
+	* common/gdb_unlinker.h: New file.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* windows-tdep.c (windows_xfer_shared_library): Update.
+	* windows-nat.c (windows_make_so): Update.
+	* utils.h (make_cleanup_bfd_unref): Remove.
+	* utils.c (do_bfd_close_cleanup, make_cleanup_bfd_unref): Remove.
+	* symfile.h (symfile_bfd_open)
+	(find_separate_debug_file_in_section): Return gdb_bfd_ref_ptr.
+	* symfile.c (read_symbols, symbol_file_add)
+	(separate_debug_file_exists): Update.
+	(symfile_bfd_open): Return gdb_bfd_ref_ptr.
+	(generic_load, reread_symbols): Update.
+	* symfile-mem.c (symbol_file_add_from_memory): Update.
+	* spu-linux-nat.c (spu_bfd_open): Return gdb_bfd_ref_ptr.
+	(spu_symbol_file_add_from_memory): Update.
+	* solist.h (struct target_so_ops) <bfd_open>: Return
+	gdb_bfd_ref_ptr.
+	(solib_bfd_fopen, solib_bfd_open): Return gdb_bfd_ref_ptr.
+	* solib.c (solib_bfd_fopen, solib_bfd_open): Return
+	gdb_bfd_ref_ptr.
+	(solib_map_sections, reload_shared_libraries_1): Update.
+	* solib-svr4.c (enable_break): Update.
+	* solib-spu.c (spu_bfd_fopen): Return gdb_bfd_ref_ptr.
+	* solib-frv.c (enable_break2): Update.
+	* solib-dsbt.c (enable_break): Update.
+	* solib-darwin.c (gdb_bfd_mach_o_fat_extract): Return
+	gdb_bfd_ref_ptr.
+	(darwin_solib_get_all_image_info_addr_at_init): Update.
+	(darwin_bfd_open): Return gdb_bfd_ref_ptr.
+	* solib-aix.c (solib_aix_bfd_open): Return gdb_bfd_ref_ptr.
+	* record-full.c (record_full_save): Update.
+	* python/py-objfile.c (objfpy_add_separate_debug_file): Update.
+	* procfs.c (insert_dbx_link_bpt_in_file): Update.
+	* minidebug.c (find_separate_debug_file_in_section): Return
+	gdb_bfd_ref_ptr.
+	* machoread.c (macho_add_oso_symfile): Change abfd to
+	gdb_bfd_ref_ptr.
+	(macho_symfile_read_all_oso): Update.
+	(macho_check_dsym): Return gdb_bfd_ref_ptr.
+	(macho_symfile_read): Update.
+	* jit.c (bfd_open_from_target_memory): Return gdb_bfd_ref_ptr.
+	(jit_bfd_try_read_symtab): Update.
+	* gdb_bfd.h (gdb_bfd_open, gdb_bfd_fopen, gdb_bfd_openr)
+	(gdb_bfd_openw, gdb_bfd_openr_iovec)
+	(gdb_bfd_openr_next_archived_file, gdb_bfd_fdopenr): Return
+	gdb_bfd_ref_ptr.
+	(gdb_bfd_ref_policy): New struct.
+	(gdb_bfd_ref_ptr): New typedef.
+	* gdb_bfd.c (gdb_bfd_open, gdb_bfd_fopen, gdb_bfd_openr)
+	(gdb_bfd_openw, gdb_bfd_openr_iovec)
+	(gdb_bfd_openr_next_archived_file, gdb_bfd_fdopenr): Return
+	gdb_bfd_ref_ptr.
+	* gcore.h (create_gcore_bfd): Return gdb_bfd_ref_ptr.
+	* gcore.c (create_gcore_bfd): Return gdb_bfd_ref_ptr.
+	(gcore_command): Update.
+	* exec.c (exec_file_attach): Update.
+	* elfread.c (elf_symfile_read): Update.
+	* dwarf2read.c (dwarf2_get_dwz_file): Update.
+	(try_open_dwop_file, open_dwo_file): Return gdb_bfd_ref_ptr.
+	(open_and_init_dwo_file): Update.
+	(open_dwp_file): Return gdb_bfd_ref_ptr.
+	(open_and_init_dwp_file): Update.
+	* corelow.c (core_open): Update.
+	* compile/compile-object-load.c (compile_object_load): Update.
+	* common/gdb_ref_ptr.h (ref_ptr::operator->): New operator.
+	* coffread.c (coff_symfile_read): Update.
+	* cli/cli-dump.c (bfd_openr_or_error, bfd_openw_or_error): Return
+	gdb_bfd_ref_ptr.  Rename.
+	(dump_bfd_file, restore_command): Update.
+	* build-id.h (build_id_to_debug_bfd): Return gdb_bfd_ref_ptr.
+	* build-id.c (build_id_to_debug_bfd): Return gdb_bfd_ref_ptr.
+	(find_separate_debug_file_by_buildid): Update.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* common/gdb_ref_ptr.h: New file.
+	* python/py-ref.h (struct gdbpy_ref_policy): New.
+	(gdbpy_ref): Now a typedef.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* utils.h (make_cleanup_htab_delete): Don't declare.
+	* utils.c (do_htab_delete_cleanup, make_cleanup_htab_delete):
+	Remove.
+	* linespec.c (decode_compound_collector): Add constructor,
+	destructor.
+	(lookup_prefix_sym): Remove cleanup.
+	(symtab_collector): Add constructor, destructor.
+	(collect_symtabs_from_filename): Remove cleanup.
+	* disasm.c (do_mixed_source_and_assembly): Use htab_up.
+	* compile/compile-c-symbols.c (generate_c_for_variable_locations):
+	Use htab_up.
+	* gnu-v3-abi.c (gnuv3_print_vtable): Use htab_up.
+	* dwarf2read.c (dw2_expand_symtabs_matching)
+	(dw2_map_symbol_filenames, dwarf_decode_macros)
+	(write_psymtabs_to_index): Use htab_up.
+	* dwarf2loc.c (func_verify_no_selftailcall)
+	(call_site_find_chain_1, func_verify_no_selftailcall)
+	(chain_candidate, call_site_find_chain_1): Use std::unordered_set,
+	std::vector, gdb::unique_xmalloc_ptr.
+	(call_sitep): Remove typedef.
+	(dwarf2_locexpr_baton_eval): Remove unused variable.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/python-internal.h (make_cleanup_py_decref)
+	(make_cleanup_py_xdecref): Don't declare.
+	* python/py-utils.c (py_decref, make_cleanup_py_decref)
+	(py_xdecref, make_cleanup_py_xdecref): Remove.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-framefilter.c (py_mi_print_variables): Use gdbpy_ref.
+	(py_print_locals, enumerate_locals, py_print_args): Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-framefilter.c (enumerate_args): Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-utils.c (unicode_to_encoded_string)
+	(python_string_to_target_string)
+	(python_string_to_target_python_string)
+	(python_string_to_host_string, gdbpy_obj_to_string)
+	(get_addr_from_python): Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-unwind.c (pyuw_object_attribute_to_pointer): Use
+	gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/python.c (eval_python_command, gdbpy_decode_line)
+	(gdbpy_run_events, gdbpy_start_type_printers)
+	(gdbpy_apply_type_printers): Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-param.c (get_doc_string, compute_enum_values): Use
+	gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-inferior.c (find_thread_object, build_inferior_list):
+	Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-framefilter.c (py_print_frame): Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-finishbreakpoint.c (bpfinishpy_out_of_scope): Use
+	gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-cmd.c (cmdpy_completer_helper): Use gdbpy_ref.  Remove
+	extra incref.
+	(cmdpy_completer_handle_brkchars, cmdpy_completer, cmdpy_init):
+	Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-breakpoint.c (gdbpy_breakpoint_cond_says_stop): Use
+	gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-arch.c (archpy_disassemble): Use gdbpy_ref.  Don't
+	decref results of PyArg_ParseTupleAndKeywords.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/python.c (python_run_simple_file): Use
+	unique_xmalloc_ptr, gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-prettyprint.c (print_stack_unless_memory_error)
+	(print_string_repr, print_children): Use gdbpy_ref.
+	(dummy_python_frame): New class.
+	(dummy_python_frame::dummy_python_frame): Rename from
+	push_dummy_python_frame.
+	(py_restore_tstate): Remove.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-framefilter.c (py_print_frame): Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/python.c (ensure_python_env, restore_python_env):
+	Remove.
+	* python/python-internal.h (ensure_python_env): Don't declare.
+	* varobj.h (varobj_ensure_python_env): Don't declare.
+	* varobj.c (varobj_ensure_python_env): Remove.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* varobj.c (varobj_value_get_print_value): Use
+	gdbpy_enter_varobj.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-prettyprint.c (print_string_repr, print_children):
+	Update.
+	* python/py-lazy-string.c (gdbpy_extract_lazy_string): Change type
+	of "encoding".
+	* varobj.c (varobj_value_get_print_value): Update.
+	* python/python-internal.h (gdbpy_extract_lazy_string): Update.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* varobj.c (varobj_get_display_hint)
+	(dynamic_varobj_has_child_method, install_new_value_visualizer)
+	(varobj_set_visualizer, free_variable): Use
+	gdbpy_enter_varobj.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/python.c (python_command): Use gdbpy_enter, gdbpy_ref.
+	(do_finish_initialization): New function.  Use gdbpy_ref.
+	(gdbpy_finish_initialization): Use gdbpy_enter.  Call
+	do_finish_initialization.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-param.c (get_set_value, get_show_value): Use
+	gdbpy_enter, gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-function.c (fnpy_call): Use gdbpy_enter, gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-cmd.c (cmdpy_function): Use gdbpy_enter, gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-varobj.c (py_varobj_iter_dtor, py_varobj_iter_next):
+	Use gdbpy_enter_varobj.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* varobj.c (gdbpy_enter_varobj): New constructor.
+	* python/python-internal.h (gdbpy_enter_varobj): New class.
+	* python/py-varobj.c (py_varobj_get_iterator): Use
+	gdbpy_enter_varobj.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-xmethods.c (gdbpy_get_xmethod_result_type): Use
+	gdbpy_enter, gdbpy_ref, unique_xmalloc_ptr.
+	(gdbpy_invoke_xmethod): Use gdbpy_ref, gdbpy_enter.
+	(gdbpy_get_xmethod_arg_types): Use gdbpy_ref,
+	unique_xmalloc_ptr.
+	(gdbpy_get_xmethod_arg_types): Use gdbpy_ref, gdbpy_enter.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-xmethods.c (invoke_match_method): Use
+	gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-xmethods.c (gdbpy_get_matching_xmethod_workers): use
+	gdbpy_enter, gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/python.c (python_interactive_command): Use gdbpy_enter.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/python.c (gdbpy_before_prompt_hook): Use gdbpy_enter,
+	gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-prettyprint.c (gdbpy_apply_val_pretty_printer): Use
+	gdbpy_enter, gdbpy_ref, unique_xmalloc_ptr.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* utils.h (htab_deleter): New struct.
+	(htab_up): New typedef.
+	* python/py-framefilter.c (gdbpy_apply_frame_filter): Use
+	gdbpy_enter, gdbpy_ref, htab_up.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-unwind.c (pending_frame_invalidate): Remove.
+	(pyuw_sniffer): Use gdbpy_enter and gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-xmethods.c (gdbpy_free_xmethod_worker_data)
+	(gdbpy_clone_xmethod_worker_data): Use gdbpy_enter.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-type.c (save_objfile_types): Use gdbpy_enter.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/python.c (gdbpy_eval_from_control_command)
+	(gdbpy_source_script, gdbpy_run_events)
+	(gdbpy_source_objfile_script, gdbpy_execute_objfile_script)
+	(gdbpy_free_type_printers, gdbpy_finish_initialization): Use
+	gdbpy_enter.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-progspace.c (py_free_pspace): Use gdbpy_enter.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-objfile.c (py_free_objfile): Use gdbpy_enter.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-inferior.c (python_on_normal_stop, python_on_resume)
+	(python_on_inferior_call_pre, python_on_inferior_call_post)
+	(python_on_memory_change, python_on_register_change)
+	(python_inferior_exit, python_new_objfile, add_thread_object)
+	(delete_thread_object, py_free_inferior): Use gdbpy_enter.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-finishbreakpoint.c (bpfinishpy_handle_stop)
+	(bpfinishpy_handle_exit): Use gdbpy_enter.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-cmd.c (cmdpy_destroyer)
+	(cmdpy_completer_handle_brkchars, cmdpy_completer): Use
+	gdbpy_enter.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-breakpoint.c (gdbpy_breakpoint_cond_says_stop): Use
+	gdbpy_enter.
+	(gdbpy_breakpoint_has_cond): Likewise.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/python.c (gdbpy_enter): New constructor.
+	(~gdbpy_enter): New destructor.
+	(restore_python_env, ensure_python_env): Rewrite.
+	* python/python-internal.h (gdbpy_enter): New class.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-symbol.c (gdbpy_lookup_symbol): Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-value.c (value_has_field, get_field_flag)
+	(get_field_type, valpy_getitem, convert_value_from_python): Use
+	gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/python.c (gdbpy_progspaces, gdbpy_objfiles): Use
+	gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-prettyprint.c (search_pp_list)
+	(find_pretty_printer_from_objfiles)
+	(find_pretty_printer_from_progspace)
+	(find_pretty_printer_from_gdb, find_pretty_printer)
+	(gdbpy_get_display_hint, gdbpy_get_varobj_pretty_printer): Use
+	gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-param.c (call_doc_function): Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-linetable.c (build_line_table_tuple_from_pcs)
+	(ltpy_get_all_source_lines): Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-framefilter.c (extract_sym, extract_value)
+	(get_py_iter_from_func, bootstrap_python_frame_filters): Use
+	gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-breakpoint.c (gdbpy_breakpoints): Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-inferior.c (gdbpy_inferiors): Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-function.c (convert_values_to_python, fnpy_init): Use
+	gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-cmd.c (gdbpy_string_to_argv): Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-type.c (convert_field, make_fielditem, typy_fields)
+	(typy_range): Use gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-threadevent.c (create_thread_event_object): Use
+	gdbpy_ref.
+	* python/py-stopevent.c (create_stop_event_object): Simplify.
+	(emit_stop_event): Use gdbpy_ref.
+	* python/py-signalevent.c (create_signal_event_object): Use
+	gdbpy_ref.
+	* python/py-newobjfileevent.c (create_new_objfile_event_object)
+	(emit_new_objfile_event, create_clear_objfiles_event_object)
+	(emit_clear_objfiles_event): Use gdbpy_ref.
+	* python/py-infevents.c (create_inferior_call_event_object)
+	(create_register_changed_event_object)
+	(create_memory_changed_event_object, emit_inferior_call_event)
+	(emit_memory_changed_event, emit_register_changed_event): Use
+	gdbpy_ref.
+	* python/py-exitedevent.c (create_exited_event_object)
+	(emit_exited_event): Use gdbpy_ref.
+	* python/py-event.h (evpy_emit_event): Remove
+	CPYCHECKER_STEALS_REFERENCE_TO_ARG annotation.
+	* python/py-event.c (evpy_emit_event): Use gdbpy_ref.
+	* python/py-continueevent.c (emit_continue_event): Use
+	gdbpy_ref.
+	* python/py-breakpoint.c (gdbpy_breakpoint_created)
+	(gdbpy_breakpoint_deleted, gdbpy_breakpoint_modified): Use
+	gdbpy_ref.
+	* python/py-bpevent.c (create_breakpoint_event_object): Use
+	gdbpy_ref.
+
+2017-01-10  Tom Tromey  <tom@tromey.com>
+
+	* python/py-ref.h: New file.
+
+2017-01-10  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* cli-out.c (cli_ui_out::do_redirect): Change return type to
+	void.
+	* cli-out.h (cli_ui_out::do_redirect): Likewise.
+	* mi/mi-out.c (mi_ui_out::do_redirect): Likewise.
+	* mi/mi-out.h (mi_ui_out::do_redirect): Likewise.
+	* ui-out.c (ui_out::redirect): Likewise.
+	* ui-out.h (ui_out::redirect, ui_out::do_redirect): Likewise.
+	* cli/cli-logging.c (set_logging_redirect): Update call site of
+	ui_out::redirect.
+	(handle_redirections): Likewise.
+	* scm-ports.c (ioscm_with_output_to_port_worker): Likewise.
+	* top.c (execute_command_to_string): Likewise.
+	* utils.c (do_ui_out_redirect_pop): Likewise.
+
+2017-01-10  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* stack.c (_initialize_stack): Update "frame" command help message.
+
+2017-01-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-exp.y (CastExpression): Emit UNOP_CAST_TYPE.
+
+2017-01-06  Yao Qi  <yao.qi@linaro.org>
+
+	* x86-linux-nat.h: Include gdb_proc_service.h.
+
+2017-01-06  Yao Qi  <yao.qi@linaro.org>
+
+	* ser-base.h: Include serial.h.
+
+2017-01-06  Yao Qi  <yao.qi@linaro.org>
+
+	* ppc-linux-tdep.h: Include ppc-tdep.h.
+
+2017-01-06  Yao Qi  <yao.qi@linaro.org>
+
+	* nat/amd64-linux-siginfo.h: Include signal.h.
+
+2017-01-06  Yao Qi  <yao.qi@linaro.org>
+
+	* nat/aarch64-linux-hw-point.h: Include break-common.h.
+
+2017-01-06  Yao Qi  <yao.qi@linaro.org>
+
+	* mi/mi-parse.h: Include mi-cmds.h.
+
+2017-01-06  Yao Qi  <yao.qi@linaro.org>
+
+	* inf-loop.c: Don't include "target.h".
+	* inf-loop.h: Include it here.
+
+2017-01-06  Yao Qi  <yao.qi@linaro.org>
+
+	* dfp.h: Include "dboulest.h" and "expression.h".
+
+2017-01-06  Yao Qi  <yao.qi@linaro.org>
+
+	* ax-gdb.h: Include "ax.h".
+
+2017-01-06  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (HFILES_NO_SRCDIR): Replace gdb_ptrace.h
+	with nat/gdb_ptrace.h.
+
+2017-01-05  Yao Qi  <yao.qi@linaro.org>
+
+	* mips-fbsd-tdep.c (mips_fbsd_sigframe_init): Move && to
+	new line.
+	(mips64_fbsd_sigframe_init): Likewise.
+
+2017-01-04  John Baldwin  <jhb@FreeBSD.org>
+
+	* mips-fbsd-tdep.c (_initialize_mips_fbsd_tdep): Use
+	GDB_OSABI_FREEBSD instead of GDB_OSABI_FREEBSD_ELF.
+
+2017-01-04  John Baldwin  <jhb@FreeBSD.org>
+
+	* Makefile.in (ALLDEPFILES): Add mips-fbsd-nat.c.
+	* NEWS: Mention new FreeBSD/mips native configuration.
+	* config/mips/fbsd.mh: New file.
+	* configure.host: Add mips*-*-freebsd*.
+	* mips-fbsd-nat.c: New file.
+
+2017-01-04  John Baldwin  <jhb@FreeBSD.org>
+
+	* Makefile.in (ALL_TARGET_OBS): Add mips-fbsd-tdep.o.
+	(ALLDEPFILES): Add mips-fbsd-tdep.c.
+	* NEWS: Mention new FreeBSD/mips target.
+	* configure.tgt: Add mips*-*-freebsd*.
+	* mips-fbsd-tdep.c: New file.
+	* mips-fbsd-tdep.h: New file.
+
+2017-01-04  Yao Qi  <yao.qi@linaro.org>
+
+	* dwarf2loc.c (write_pieced_value): Don't use VALUE_FRAME_ID (to),
+	use c->frame_id when the piece location is DWARF_VALUE_REGISTER.
+
+2017-01-01  Joel Brobecker  <brobecker@adacore.com>
+
+	Update copyright year range in all GDB files.
+
+2017-01-01  Joel Brobecker  <brobecker@adacore.com>
+
+	* config/djgpp/fnchange.lst: Add entry for gdb/ChangeLog-2016.
+
+For older changes see ChangeLog-2016.
+
+Local Variables:
+mode: change-log
+left-margin: 8
+fill-column: 74
+version-control: never
+coding: utf-8
+End:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/charset.c ./gdb/charset.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/charset.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/charset.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Character set conversion support for GDB.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -365,7 +365,7 @@ validate (struct gdbarch *gdbarch)
 
 /* This is the sfunc for the 'set charset' command.  */
 static void
-set_charset_sfunc (char *charset, int from_tty, 
+set_charset_sfunc (const char *charset, int from_tty, 
 		   struct cmd_list_element *c)
 {
   /* CAREFUL: set the target charset here as well.  */
@@ -376,7 +376,7 @@ set_charset_sfunc (char *charset, int fr
 /* 'set host-charset' command sfunc.  We need a wrapper here because
    the function needs to have a specific signature.  */
 static void
-set_host_charset_sfunc (char *charset, int from_tty,
+set_host_charset_sfunc (const char *charset, int from_tty,
 			struct cmd_list_element *c)
 {
   validate (get_current_arch ());
@@ -384,7 +384,7 @@ set_host_charset_sfunc (char *charset, i
 
 /* Wrapper for the 'set target-charset' command.  */
 static void
-set_target_charset_sfunc (char *charset, int from_tty,
+set_target_charset_sfunc (const char *charset, int from_tty,
 			  struct cmd_list_element *c)
 {
   validate (get_current_arch ());
@@ -392,7 +392,7 @@ set_target_charset_sfunc (char *charset,
 
 /* Wrapper for the 'set target-wide-charset' command.  */
 static void
-set_target_wide_charset_sfunc (char *charset, int from_tty,
+set_target_wide_charset_sfunc (const char *charset, int from_tty,
 			       struct cmd_list_element *c)
 {
   validate (get_current_arch ());
@@ -673,7 +673,7 @@ wchar_iterator::iterate (enum wchar_iter
 
 	      ++out_request;
 	      if (out_request > m_out.size ())
-		m_out.reserve (out_request);
+		m_out.resize (out_request);
 	      continue;
 
 	    case EINVAL:
@@ -705,11 +705,8 @@ wchar_iterator::iterate (enum wchar_iter
   return -1;
 }
 
-
 /* The charset.c module initialization function.  */
 
-extern initialize_file_ftype _initialize_charset; /* -Wmissing-prototype */
-
 static VEC (char_ptr) *charsets;
 
 #ifdef PHONY_ICONV
@@ -794,16 +791,14 @@ find_charset_names (void)
   int err, status;
   int fail = 1;
   int flags;
-  struct gdb_environ *iconv_env;
+  gdb_environ iconv_env = gdb_environ::from_host_environ ();
   char *iconv_program;
 
   /* Older iconvs, e.g. 2.2.2, don't omit the intro text if stdout is
      not a tty.  We need to recognize it and ignore it.  This text is
      subject to translation, so force LANGUAGE=C.  */
-  iconv_env = make_environ ();
-  init_environ (iconv_env);
-  set_in_environ (iconv_env, "LANGUAGE", "C");
-  set_in_environ (iconv_env, "LC_ALL", "C");
+  iconv_env.set ("LANGUAGE", "C");
+  iconv_env.set ("LC_ALL", "C");
 
   child = pex_init (PEX_USE_PIPES, "iconv", NULL);
 
@@ -827,7 +822,7 @@ find_charset_names (void)
   /* Note that we simply ignore errors here.  */
   if (!pex_run_in_environment (child, flags,
 			       args[0], const_cast<char **> (args),
-			       environ_vector (iconv_env),
+			       iconv_env.envp (),
 			       NULL, NULL, &err))
     {
       FILE *in = pex_read_output (child, 0);
@@ -901,7 +896,6 @@ find_charset_names (void)
 
   xfree (iconv_program);
   pex_free (child);
-  free_environ (iconv_env);
 
   if (fail)
     {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/charset.h ./gdb/charset.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/charset.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/charset.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Character set conversion support for GDB.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -19,7 +19,7 @@
 #ifndef CHARSET_H
 #define CHARSET_H
 
-#include <vector>
+#include "common/def-vector.h"
 
 /* If the target program uses a different character set than the host,
    GDB has some support for translating between the two; GDB converts
@@ -144,7 +144,7 @@ class wchar_iterator
   size_t m_width;
 
   /* The output buffer.  */
-  std::vector<gdb_wchar_t> m_out;
+  gdb::def_vector<gdb_wchar_t> m_out;
 };
 
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/charset-list.h ./gdb/charset-list.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/charset-list.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/charset-list.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* List of character set names for GDB.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/c-lang.c ./gdb/c-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/c-lang.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/c-lang.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* C language support routines for GDB, the GNU debugger.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -35,8 +35,6 @@
 #include <ctype.h>
 #include "gdbcore.h"
 
-extern void _initialize_c_language (void);
-
 /* Given a C string type, STR_TYPE, return the corresponding target
    character set name.  */
 
@@ -570,15 +568,12 @@ evaluate_subexp_c (struct type *expect_t
       {
 	int oplen, limit;
 	struct type *type;
-	struct obstack output;
-	struct cleanup *cleanup;
 	struct value *result;
 	c_string_type dest_type;
 	const char *dest_charset;
 	int satisfy_expected = 0;
 
-	obstack_init (&output);
-	cleanup = make_cleanup_obstack_free (&output);
+	auto_obstack output;
 
 	++*pos;
 	oplen = longest_to_int (exp->elts[*pos].longconst);
@@ -656,7 +651,6 @@ evaluate_subexp_c (struct type *expect_t
 	      result = allocate_value (type);
 	    else
 	      result = value_cstring ("", 0, type);
-	    do_cleanups (cleanup);
 	    return result;
 	  }
 
@@ -702,7 +696,6 @@ evaluate_subexp_c (struct type *expect_t
 				      obstack_object_size (&output),
 				      type);
 	  }
-	do_cleanups (cleanup);
 	return result;
       }
       break;
@@ -712,7 +705,17 @@ evaluate_subexp_c (struct type *expect_t
     }
   return evaluate_subexp_standard (expect_type, exp, pos, noside);
 }
+
+/* la_watch_location_expression for C.  */
 
+gdb::unique_xmalloc_ptr<char>
+c_watch_location_expression (struct type *type, CORE_ADDR addr)
+{
+  type = check_typedef (TYPE_TARGET_TYPE (check_typedef (type)));
+  std::string name = type_to_string (type);
+  return gdb::unique_xmalloc_ptr<char>
+    (xstrprintf ("* (%s *) %s", name.c_str (), core_addr_to_string (addr)));
+}
 
 
 /* Table mapping opcodes into strings for printing operators
@@ -826,7 +829,7 @@ static const char *c_extensions[] =
   ".c", NULL
 };
 
-const struct language_defn c_language_defn =
+extern const struct language_defn c_language_defn =
 {
   "c",				/* Language name */
   "C",
@@ -860,13 +863,15 @@ const struct language_defn c_language_de
   1,				/* c-style arrays */
   0,				/* String lower bound */
   default_word_break_characters,
-  default_make_symbol_completion_list,
+  default_collect_symbol_completion_matches,
   c_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
   c_get_string,
-  NULL,				/* la_get_symbol_name_cmp */
+  c_watch_location_expression,
+  NULL,				/* la_get_symbol_name_matcher */
   iterate_over_symbols,
+  default_search_name_hash,
   &c_varobj_ops,
   c_get_compile_context,
   c_compute_program,
@@ -969,7 +974,7 @@ static const char *cplus_extensions[] =
   ".C", ".cc", ".cp", ".cpp", ".cxx", ".c++", NULL
 };
 
-const struct language_defn cplus_language_defn =
+extern const struct language_defn cplus_language_defn =
 {
   "c++",			/* Language name */
   "C++",
@@ -1003,13 +1008,15 @@ const struct language_defn cplus_languag
   1,				/* c-style arrays */
   0,				/* String lower bound */
   default_word_break_characters,
-  default_make_symbol_completion_list,
+  default_collect_symbol_completion_matches,
   cplus_language_arch_info,
   default_print_array_index,
   cp_pass_by_reference,
   c_get_string,
-  NULL,				/* la_get_symbol_name_cmp */
+  c_watch_location_expression,
+  cp_get_symbol_name_matcher,
   iterate_over_symbols,
+  cp_search_name_hash,
   &cplus_varobj_ops,
   NULL,
   NULL,
@@ -1021,7 +1028,7 @@ static const char *asm_extensions[] =
   ".s", ".sx", ".S", NULL
 };
 
-const struct language_defn asm_language_defn =
+extern const struct language_defn asm_language_defn =
 {
   "asm",			/* Language name */
   "assembly",
@@ -1055,13 +1062,15 @@ const struct language_defn asm_language_
   1,				/* c-style arrays */
   0,				/* String lower bound */
   default_word_break_characters,
-  default_make_symbol_completion_list,
+  default_collect_symbol_completion_matches,
   c_language_arch_info, 	/* FIXME: la_language_arch_info.  */
   default_print_array_index,
   default_pass_by_reference,
   c_get_string,
-  NULL,				/* la_get_symbol_name_cmp */
+  c_watch_location_expression,
+  NULL,				/* la_get_symbol_name_matcher */
   iterate_over_symbols,
+  default_search_name_hash,
   &default_varobj_ops,
   NULL,
   NULL,
@@ -1073,7 +1082,7 @@ const struct language_defn asm_language_
    to do some simple operations when debugging applications that use
    a language currently not supported by GDB.  */
 
-const struct language_defn minimal_language_defn =
+extern const struct language_defn minimal_language_defn =
 {
   "minimal",			/* Language name */
   "Minimal",
@@ -1107,24 +1116,17 @@ const struct language_defn minimal_langu
   1,				/* c-style arrays */
   0,				/* String lower bound */
   default_word_break_characters,
-  default_make_symbol_completion_list,
+  default_collect_symbol_completion_matches,
   c_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
   c_get_string,
-  NULL,				/* la_get_symbol_name_cmp */
+  c_watch_location_expression,
+  NULL,				/* la_get_symbol_name_matcher */
   iterate_over_symbols,
+  default_search_name_hash,
   &default_varobj_ops,
   NULL,
   NULL,
   LANG_MAGIC
 };
-
-void
-_initialize_c_language (void)
-{
-  add_language (&c_language_defn);
-  add_language (&cplus_language_defn);
-  add_language (&asm_language_defn);
-  add_language (&minimal_language_defn);
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/c-lang.h ./gdb/c-lang.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/c-lang.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/c-lang.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* C language support definitions for GDB, the GNU debugger.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -112,6 +112,9 @@ extern void c_emit_char (int c, struct t
 
 extern const struct op_print c_op_print_tab[];
 
+extern gdb::unique_xmalloc_ptr<char> c_watch_location_expression
+     (struct type *type, CORE_ADDR addr);
+
 /* These are in c-typeprint.c: */
 
 extern void c_type_print_base (struct type *, struct ui_file *,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-cmds.c ./gdb/cli/cli-cmds.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-cmds.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli/cli-cmds.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB CLI commands.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -58,41 +58,15 @@
 #include <algorithm>
 #include <string>
 
-/* Prototypes for local command functions */
-
-static void complete_command (char *, int);
-
-static void echo_command (char *, int);
-
-static void pwd_command (char *, int);
-
-static void show_version (char *, int);
-
-static void help_command (char *, int);
-
-static void show_command (char *, int);
-
-static void info_command (char *, int);
-
-static void show_debug (char *, int);
-
-static void set_debug (char *, int);
-
-static void show_user (char *, int);
-
-static void make_command (char *, int);
-
-static void shell_escape (const char *, int);
-
-static void edit_command (char *, int);
-
-static void list_command (char *, int);
-
 /* Prototypes for local utility functions */
 
-static void ambiguous_line_spec (struct symtabs_and_lines *);
+static void print_sal_location (const symtab_and_line &sal);
+
+static void ambiguous_line_spec (gdb::array_view<const symtab_and_line> sals,
+				 const char *format, ...)
+  ATTRIBUTE_PRINTF (2, 3);
 
-static void filter_sals (struct symtabs_and_lines *);
+static void filter_sals (std::vector<symtab_and_line> &);
 
 
 /* Limit the call depth of user-defined commands */
@@ -168,6 +142,10 @@ struct cmd_list_element *maintenanceinfo
 
 struct cmd_list_element *maintenanceprintlist;
 
+/* Chain containing all defined "maintenance check" subcommands.  */
+
+struct cmd_list_element *maintenancechecklist;
+
 struct cmd_list_element *setprintlist;
 
 struct cmd_list_element *showprintlist;
@@ -214,7 +192,7 @@ error_no_arg (const char *why)
    args.  */
 
 static void
-info_command (char *arg, int from_tty)
+info_command (const char *arg, int from_tty)
 {
   printf_unfiltered (_("\"info\" must be followed by "
 		       "the name of an info command.\n"));
@@ -224,31 +202,28 @@ info_command (char *arg, int from_tty)
 /* The "show" command with no arguments shows all the settings.  */
 
 static void
-show_command (char *arg, int from_tty)
+show_command (const char *arg, int from_tty)
 {
   cmd_show_list (showlist, from_tty, "");
 }
+
 
 /* Provide documentation on command or list given by COMMAND.  FROM_TTY
    is ignored.  */
 
 static void
-help_command (char *command, int from_tty)
+help_command (const char *command, int from_tty)
 {
   help_cmd (command, gdb_stdout);
 }
 
+
 /* Note: The "complete" command is used by Emacs to implement completion.
    [Is that why this function writes output with *_unfiltered?]  */
 
 static void
-complete_command (char *arg_entry, int from_tty)
+complete_command (const char *arg, int from_tty)
 {
-  const char *arg = arg_entry;
-  int argpoint;
-  char *arg_prefix;
-  VEC (char_ptr) *completions;
-
   dont_repeat ();
 
   if (max_completions == 0)
@@ -265,57 +240,67 @@ complete_command (char *arg_entry, int f
 
   if (arg == NULL)
     arg = "";
-  argpoint = strlen (arg);
 
-  /* complete_line assumes that its first argument is somewhere
-     within, and except for filenames at the beginning of, the word to
-     be completed.  The following crude imitation of readline's
-     word-breaking tries to accomodate this.  */
-  const char *point = arg + argpoint;
-  while (point > arg)
+  completion_tracker tracker_handle_brkchars;
+  completion_tracker tracker_handle_completions;
+  completion_tracker *tracker;
+
+  int quote_char = '\0';
+  const char *word;
+
+  TRY
+    {
+      word = completion_find_completion_word (tracker_handle_brkchars,
+					      arg, &quote_char);
+
+      /* Completers that provide a custom word point in the
+	 handle_brkchars phase also compute their completions then.
+	 Completers that leave the completion word handling to readline
+	 must be called twice.  */
+      if (tracker_handle_brkchars.use_custom_word_point ())
+	tracker = &tracker_handle_brkchars;
+      else
+	{
+	  complete_line (tracker_handle_completions, word, arg, strlen (arg));
+	  tracker = &tracker_handle_completions;
+	}
+    }
+  CATCH (ex, RETURN_MASK_ALL)
     {
-      if (strchr (rl_completer_word_break_characters, point[-1]) != 0)
-        break;
-      point--;
+      return;
     }
+  END_CATCH
 
-  arg_prefix = (char *) alloca (point - arg + 1);
-  memcpy (arg_prefix, arg, point - arg);
-  arg_prefix[point - arg] = 0;
+  std::string arg_prefix (arg, word - arg);
 
-  completions = complete_line (point, arg, argpoint);
+  completion_result result
+    = tracker->build_completion_result (word, word - arg, strlen (arg));
 
-  if (completions)
+  if (result.number_matches != 0)
     {
-      int ix, size = VEC_length (char_ptr, completions);
-      char *item, *prev = NULL;
-
-      qsort (VEC_address (char_ptr, completions), size,
-	     sizeof (char *), compare_strings);
-
-      /* We do extra processing here since we only want to print each
-	 unique item once.  */
-      for (ix = 0; VEC_iterate (char_ptr, completions, ix, item); ++ix)
+      if (result.number_matches == 1)
+	printf_unfiltered ("%s%s\n", arg_prefix.c_str (), result.match_list[0]);
+      else
 	{
-	  if (prev == NULL || strcmp (item, prev) != 0)
+	  result.sort_match_list ();
+
+	  for (size_t i = 0; i < result.number_matches; i++)
 	    {
-	      printf_unfiltered ("%s%s\n", arg_prefix, item);
-	      xfree (prev);
-	      prev = item;
+	      printf_unfiltered ("%s%s",
+				 arg_prefix.c_str (),
+				 result.match_list[i + 1]);
+	      if (quote_char)
+		printf_unfiltered ("%c", quote_char);
+	      printf_unfiltered ("\n");
 	    }
-	  else
-	    xfree (item);
 	}
 
-      xfree (prev);
-      VEC_free (char_ptr, completions);
-
-      if (size == max_completions)
+      if (result.number_matches == max_completions)
 	{
-	  /* ARG_PREFIX and POINT are included in the output so that emacs
+	  /* ARG_PREFIX and WORD are included in the output so that emacs
 	     will include the message in the output.  */
 	  printf_unfiltered (_("%s%s %s\n"),
-			     arg_prefix, point,
+			     arg_prefix.c_str (), word,
 			     get_max_completions_reached_message ());
 	}
     }
@@ -328,14 +313,14 @@ is_complete_command (struct cmd_list_ele
 }
 
 static void
-show_version (char *args, int from_tty)
+show_version (const char *args, int from_tty)
 {
   print_gdb_version (gdb_stdout);
   printf_filtered ("\n");
 }
 
 static void
-show_configuration (char *args, int from_tty)
+show_configuration (const char *args, int from_tty)
 {
   print_gdb_configuration (gdb_stdout);
 }
@@ -343,7 +328,7 @@ show_configuration (char *args, int from
 /* Handle the quit command.  */
 
 void
-quit_command (char *args, int from_tty)
+quit_command (const char *args, int from_tty)
 {
   int exit_code = 0;
 
@@ -365,36 +350,39 @@ quit_command (char *args, int from_tty)
 }
 
 static void
-pwd_command (char *args, int from_tty)
+pwd_command (const char *args, int from_tty)
 {
   if (args)
     error (_("The \"pwd\" command does not take an argument: %s"), args);
-  if (! getcwd (gdb_dirbuf, sizeof (gdb_dirbuf)))
+
+  gdb::unique_xmalloc_ptr<char> cwd (getcwd (NULL, 0));
+
+  if (cwd == NULL)
     error (_("Error finding name of working directory: %s"),
            safe_strerror (errno));
 
-  if (strcmp (gdb_dirbuf, current_directory) != 0)
+  if (strcmp (cwd.get (), current_directory) != 0)
     printf_unfiltered (_("Working directory %s\n (canonically %s).\n"),
-		       current_directory, gdb_dirbuf);
+		       current_directory, cwd.get ());
   else
     printf_unfiltered (_("Working directory %s.\n"), current_directory);
 }
 
 void
-cd_command (char *dir, int from_tty)
+cd_command (const char *dir, int from_tty)
 {
   int len;
   /* Found something other than leading repetitions of "/..".  */
   int found_real_path;
   char *p;
-  struct cleanup *cleanup;
 
   /* If the new directory is absolute, repeat is a no-op; if relative,
      repeat might be useful but is more likely to be a mistake.  */
   dont_repeat ();
 
-  dir = tilde_expand (dir != NULL ? dir : "~");
-  cleanup = make_cleanup (xfree, dir);
+  gdb::unique_xmalloc_ptr<char> dir_holder
+    (tilde_expand (dir != NULL ? dir : "~"));
+  dir = dir_holder.get ();
 
   if (chdir (dir) < 0)
     perror_with_name (dir);
@@ -403,7 +391,8 @@ cd_command (char *dir, int from_tty)
   /* There's too much mess with DOSish names like "d:", "d:.",
      "d:./foo" etc.  Instead of having lots of special #ifdef'ed code,
      simply get the canonicalized name of the current directory.  */
-  dir = getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
+  gdb::unique_xmalloc_ptr<char> cwd (getcwd (NULL, 0));
+  dir = cwd.get ();
 #endif
 
   len = strlen (dir);
@@ -419,17 +408,20 @@ cd_command (char *dir, int from_tty)
 	len--;
     }
 
-  dir = savestring (dir, len);
-  if (IS_ABSOLUTE_PATH (dir))
-    current_directory = dir;
+  dir_holder.reset (savestring (dir, len));
+  if (IS_ABSOLUTE_PATH (dir_holder.get ()))
+    {
+      xfree (current_directory);
+      current_directory = dir_holder.release ();
+    }
   else
     {
       if (IS_DIR_SEPARATOR (current_directory[strlen (current_directory) - 1]))
-	current_directory = concat (current_directory, dir, (char *)NULL);
+	current_directory = concat (current_directory, dir_holder.get (),
+				    (char *) NULL);
       else
 	current_directory = concat (current_directory, SLASH_STRING,
-				    dir, (char *)NULL);
-      xfree (dir);
+				    dir_holder.get (), (char *) NULL);
     }
 
   /* Now simplify any occurrences of `.' and `..' in the pathname.  */
@@ -478,8 +470,6 @@ cd_command (char *dir, int from_tty)
 
   if (from_tty)
     pwd_command ((char *) 0, 1);
-
-  do_cleanups (cleanup);
 }
 
 /* Show the current value of the 'script-extension' option.  */
@@ -495,57 +485,47 @@ show_script_ext_mode (struct ui_file *fi
 
 /* Try to open SCRIPT_FILE.
    If successful, the full path name is stored in *FULL_PATHP,
-   the stream is stored in *STREAMP, and return 1.
-   The caller is responsible for freeing *FULL_PATHP.
-   If not successful, return 0; errno is set for the last file
+   and the stream is returned.
+   If not successful, return NULL; errno is set for the last file
    we tried to open.
 
    If SEARCH_PATH is non-zero, and the file isn't found in cwd,
    search for it in the source search path.  */
 
-int
-find_and_open_script (const char *script_file, int search_path,
-		      FILE **streamp, char **full_pathp)
+gdb::optional<open_script>
+find_and_open_script (const char *script_file, int search_path)
 {
-  char *file;
   int fd;
-  struct cleanup *old_cleanups;
   int search_flags = OPF_TRY_CWD_FIRST | OPF_RETURN_REALPATH;
+  gdb::optional<open_script> opened;
 
-  file = tilde_expand (script_file);
-  old_cleanups = make_cleanup (xfree, file);
+  gdb::unique_xmalloc_ptr<char> file (tilde_expand (script_file));
 
   if (search_path)
     search_flags |= OPF_SEARCH_IN_PATH;
 
   /* Search for and open 'file' on the search path used for source
      files.  Put the full location in *FULL_PATHP.  */
+  char *temp_path;
   fd = openp (source_path, search_flags,
-	      file, O_RDONLY, full_pathp);
+	      file.get (), O_RDONLY, &temp_path);
+  gdb::unique_xmalloc_ptr<char> full_path (temp_path);
 
   if (fd == -1)
-    {
-      int save_errno = errno;
-      do_cleanups (old_cleanups);
-      errno = save_errno;
-      return 0;
-    }
-
-  do_cleanups (old_cleanups);
+    return opened;
 
-  *streamp = fdopen (fd, FOPEN_RT);
-  if (*streamp == NULL)
+  FILE *result = fdopen (fd, FOPEN_RT);
+  if (result == NULL)
     {
       int save_errno = errno;
 
       close (fd);
-      if (full_pathp)
-	xfree (*full_pathp);
       errno = save_errno;
-      return 0;
     }
+  else
+    opened.emplace (gdb_file_up (result), std::move (full_path));
 
-  return 1;
+  return opened;
 }
 
 /* Load script FILE, which has already been opened as STREAM.
@@ -596,14 +576,12 @@ source_script_from_stream (FILE *stream,
 static void
 source_script_with_search (const char *file, int from_tty, int search_path)
 {
-  FILE *stream;
-  char *full_path;
-  struct cleanup *old_cleanups;
 
   if (file == NULL || *file == 0)
     error (_("source command requires file name of file to source."));
 
-  if (!find_and_open_script (file, search_path, &stream, &full_path))
+  gdb::optional<open_script> opened = find_and_open_script (file, search_path);
+  if (!opened)
     {
       /* The script wasn't found, or was otherwise inaccessible.
          If the source command was invoked interactively, throw an
@@ -618,15 +596,13 @@ source_script_with_search (const char *f
 	}
     }
 
-  old_cleanups = make_cleanup (xfree, full_path);
-  make_cleanup_fclose (stream);
   /* The python support reopens the file, so we need to pass full_path here
      in case the file was found on the search path.  It's useful to do this
      anyway so that error messages show the actual file used.  But only do
      this if we (may have) used search_path, as printing the full path in
      errors for the non-search case can be more noise than signal.  */
-  source_script_from_stream (stream, file, search_path ? full_path : file);
-  do_cleanups (old_cleanups);
+  source_script_from_stream (opened->stream.get (), file,
+			     search_path ? opened->full_path.get () : file);
 }
 
 /* Wrapper around source_script_with_search to export it to main.c
@@ -638,26 +614,13 @@ source_script (const char *file, int fro
   source_script_with_search (file, from_tty, 0);
 }
 
-/* Return the source_verbose global variable to its previous state
-   on exit from the source command, by whatever means.  */
 static void
-source_verbose_cleanup (void *old_value)
+source_command (const char *args, int from_tty)
 {
-  source_verbose = *(int *)old_value;
-  xfree (old_value);
-}
-
-static void
-source_command (char *args, int from_tty)
-{
-  struct cleanup *old_cleanups;
-  char *file = args;
-  int *old_source_verbose = XNEW (int);
+  const char *file = args;
   int search_path = 0;
 
-  *old_source_verbose = source_verbose;
-  old_cleanups = make_cleanup (source_verbose_cleanup, 
-			       old_source_verbose);
+  scoped_restore save_source_verbose = make_scoped_restore (&source_verbose);
 
   /* -v causes the source command to run in verbose mode.
      -s causes the file to be searched in the source search path,
@@ -698,13 +661,11 @@ source_command (char *args, int from_tty
     }
 
   source_script_with_search (file, from_tty, search_path);
-
-  do_cleanups (old_cleanups);
 }
 
 
 static void
-echo_command (char *text, int from_tty)
+echo_command (const char *text, int from_tty)
 {
   const char *p = text;
   int c;
@@ -796,15 +757,14 @@ shell_escape (const char *arg, int from_
 /* Implementation of the "shell" command.  */
 
 static void
-shell_command (char *arg, int from_tty)
+shell_command (const char *arg, int from_tty)
 {
   shell_escape (arg, from_tty);
 }
 
 static void
-edit_command (char *arg, int from_tty)
+edit_command (const char *arg, int from_tty)
 {
-  struct symtabs_and_lines sals;
   struct symtab_and_line sal;
   struct symbol *sym;
   const char *editor;
@@ -828,30 +788,30 @@ edit_command (char *arg, int from_tty)
     }
   else
     {
-      char *arg1;
+      const char *arg1;
 
       /* Now should only be one argument -- decode it in SAL.  */
       arg1 = arg;
       event_location_up location = string_to_event_location (&arg1,
 							     current_language);
-      sals = decode_line_1 (location.get (), DECODE_LINE_LIST_MODE,
-			    NULL, NULL, 0);
+      std::vector<symtab_and_line> sals = decode_line_1 (location.get (),
+							 DECODE_LINE_LIST_MODE,
+							 NULL, NULL, 0);
 
-      filter_sals (&sals);
-      if (! sals.nelts)
+      filter_sals (sals);
+      if (sals.empty ())
 	{
 	  /*  C++  */
 	  return;
 	}
-      if (sals.nelts > 1)
+      if (sals.size () > 1)
 	{
-	  ambiguous_line_spec (&sals);
-	  xfree (sals.sals);
+	  ambiguous_line_spec (sals,
+			       _("Specified line is ambiguous:\n"));
 	  return;
 	}
 
-      sal = sals.sals[0];
-      xfree (sals.sals);
+      sal = sals[0];
 
       if (*arg1)
         error (_("Junk at end of line specification."));
@@ -903,25 +863,21 @@ edit_command (char *arg, int from_tty)
 }
 
 static void
-list_command (char *arg, int from_tty)
+list_command (const char *arg, int from_tty)
 {
-  struct symtabs_and_lines sals, sals_end;
-  struct symtab_and_line sal = { 0 };
-  struct symtab_and_line sal_end = { 0 };
-  struct symtab_and_line cursal = { 0 };
   struct symbol *sym;
-  char *arg1;
+  const char *arg1;
   int no_end = 1;
   int dummy_end = 0;
   int dummy_beg = 0;
   int linenum_beg = 0;
-  char *p;
+  const char *p;
 
   /* Pull in the current default source line if necessary.  */
   if (arg == NULL || ((arg[0] == '+' || arg[0] == '-') && arg[1] == '\0'))
     {
       set_default_source_symtab_and_line ();
-      cursal = get_current_source_symtab_and_line ();
+      symtab_and_line cursal = get_current_source_symtab_and_line ();
 
       /* If this is the first "list" since we've set the current
 	 source line, center the listing around that line.  */
@@ -973,6 +929,9 @@ list_command (char *arg, int from_tty)
   if (!have_full_symbols () && !have_partial_symbols ())
     error (_("No symbol table is loaded.  Use the \"file\" command."));
 
+  std::vector<symtab_and_line> sals;
+  symtab_and_line sal, sal_end;
+
   arg1 = arg;
   if (*arg1 == ',')
     dummy_beg = 1;
@@ -982,22 +941,14 @@ list_command (char *arg, int from_tty)
 							     current_language);
       sals = decode_line_1 (location.get (), DECODE_LINE_LIST_MODE,
 			    NULL, NULL, 0);
-
-      filter_sals (&sals);
-      if (!sals.nelts)
+      filter_sals (sals);
+      if (sals.empty ())
 	{
 	  /*  C++  */
 	  return;
 	}
-      if (sals.nelts > 1)
-	{
-	  ambiguous_line_spec (&sals);
-	  xfree (sals.sals);
-	  return;
-	}
 
-      sal = sals.sals[0];
-      xfree (sals.sals);
+      sal = sals[0];
     }
 
   /* Record whether the BEG arg is all digits.  */
@@ -1005,11 +956,23 @@ list_command (char *arg, int from_tty)
   for (p = arg; p != arg1 && *p >= '0' && *p <= '9'; p++);
   linenum_beg = (p == arg1);
 
+  /* Save the range of the first argument, in case we need to let the
+     user know it was ambiguous.  */
+  const char *beg = arg;
+  size_t beg_len = arg1 - beg;
+
   while (*arg1 == ' ' || *arg1 == '\t')
     arg1++;
   if (*arg1 == ',')
     {
       no_end = 0;
+      if (sals.size () > 1)
+	{
+	  ambiguous_line_spec (sals,
+			       _("Specified first line '%.*s' is ambiguous:\n"),
+			       (int) beg_len, beg);
+	  return;
+	}
       arg1++;
       while (*arg1 == ' ' || *arg1 == '\t')
 	arg1++;
@@ -1017,26 +980,31 @@ list_command (char *arg, int from_tty)
 	dummy_end = 1;
       else
 	{
+	  /* Save the last argument, in case we need to let the user
+	     know it was ambiguous.  */
+	  const char *end_arg = arg1;
+
 	  event_location_up location
 	    = string_to_event_location (&arg1, current_language);
-	  if (dummy_beg)
-	    sals_end = decode_line_1 (location.get (),
-				      DECODE_LINE_LIST_MODE, NULL, NULL, 0);
-	  else
-	    sals_end = decode_line_1 (location.get (), DECODE_LINE_LIST_MODE,
-				      NULL, sal.symtab, sal.line);
 
-	  filter_sals (&sals_end);
-	  if (sals_end.nelts == 0)
+	  std::vector<symtab_and_line> sals_end
+	    = (dummy_beg
+	       ? decode_line_1 (location.get (), DECODE_LINE_LIST_MODE,
+				NULL, NULL, 0)
+	       : decode_line_1 (location.get (), DECODE_LINE_LIST_MODE,
+				NULL, sal.symtab, sal.line));
+
+	  filter_sals (sals_end);
+	  if (sals_end.empty ())
 	    return;
-	  if (sals_end.nelts > 1)
+	  if (sals_end.size () > 1)
 	    {
-	      ambiguous_line_spec (&sals_end);
-	      xfree (sals_end.sals);
+	      ambiguous_line_spec (sals_end,
+				   _("Specified last line '%s' is ambiguous:\n"),
+				   end_arg);
 	      return;
 	    }
-	  sal_end = sals_end.sals[0];
-	  xfree (sals_end.sals);
+	  sal_end = sals_end[0];
 	}
     }
 
@@ -1045,7 +1013,7 @@ list_command (char *arg, int from_tty)
 
   if (!no_end && !dummy_beg && !dummy_end
       && sal.symtab != sal_end.symtab)
-    error (_("Specified start and end are in different files."));
+    error (_("Specified first and last lines are in different files."));
   if (dummy_beg && dummy_end)
     error (_("Two empty args do not say what lines to list."));
 
@@ -1086,7 +1054,7 @@ list_command (char *arg, int from_tty)
      turn it into the no-arg variant.  */
 
   if (from_tty)
-    *arg = 0;
+    set_repeat_arguments ("");
 
   if (dummy_beg && sal_end.symtab == 0)
     error (_("No default source file yet.  Do \"help list\"."));
@@ -1098,14 +1066,19 @@ list_command (char *arg, int from_tty)
     error (_("No default source file yet.  Do \"help list\"."));
   else if (no_end)
     {
-      int first_line = sal.line - get_lines_to_list () / 2;
-
-      if (first_line < 1) first_line = 1;
-
-      print_source_lines (sal.symtab,
-		          first_line,
-			  first_line + get_lines_to_list (),
-			  0);
+      for (int i = 0; i < sals.size (); i++)
+	{
+	  sal = sals[i];
+	  int first_line = sal.line - get_lines_to_list () / 2;
+	  if (first_line < 1)
+	    first_line = 1;
+	  if (sals.size () > 1)
+	    print_sal_location (sal);
+	  print_source_lines (sal.symtab,
+			      first_line,
+			      first_line + get_lines_to_list (),
+			      0);
+	}
     }
   else
     print_source_lines (sal.symtab, sal.line,
@@ -1123,7 +1096,8 @@ list_command (char *arg, int from_tty)
 
 static void
 print_disassembly (struct gdbarch *gdbarch, const char *name,
-		   CORE_ADDR low, CORE_ADDR high, int flags)
+		   CORE_ADDR low, CORE_ADDR high,
+		   gdb_disassembly_flags flags)
 {
 #if defined(TUI)
   if (!tui_is_window_visible (DISASSEM_WIN))
@@ -1154,7 +1128,7 @@ print_disassembly (struct gdbarch *gdbar
    Print a disassembly of the current function according to FLAGS.  */
 
 static void
-disassemble_current_function (int flags)
+disassemble_current_function (gdb_disassembly_flags flags)
 {
   struct frame_info *frame;
   struct gdbarch *gdbarch;
@@ -1203,13 +1177,13 @@ disassemble_current_function (int flags)
    2) File names and contents for all relevant source files are displayed.  */
 
 static void
-disassemble_command (char *arg, int from_tty)
+disassemble_command (const char *arg, int from_tty)
 {
   struct gdbarch *gdbarch = get_current_arch ();
   CORE_ADDR low, high;
   const char *name;
   CORE_ADDR pc;
-  int flags;
+  gdb_disassembly_flags flags;
   const char *p;
 
   p = arg;
@@ -1241,7 +1215,7 @@ disassemble_command (char *arg, int from
 	    }
 	}
 
-      p = skip_spaces_const (p);
+      p = skip_spaces (p);
     }
 
   if ((flags & (DISASSEMBLY_SOURCE_DEPRECATED | DISASSEMBLY_SOURCE))
@@ -1278,7 +1252,7 @@ disassemble_command (char *arg, int from
       /* Two arguments.  */
       int incl_flag = 0;
       low = pc;
-      p = skip_spaces_const (p);
+      p = skip_spaces (p);
       if (p[0] == '+')
 	{
 	  ++p;
@@ -1293,7 +1267,7 @@ disassemble_command (char *arg, int from
 }
 
 static void
-make_command (char *arg, int from_tty)
+make_command (const char *arg, int from_tty)
 {
   if (arg == 0)
     shell_escape ("make", from_tty);
@@ -1306,7 +1280,7 @@ make_command (char *arg, int from_tty)
 }
 
 static void
-show_user (char *args, int from_tty)
+show_user (const char *args, int from_tty)
 {
   struct cmd_list_element *c;
   extern struct cmd_list_element *cmdlist;
@@ -1334,30 +1308,15 @@ show_user (char *args, int from_tty)
    regular expression.  */
 
 static void 
-apropos_command (char *searchstr, int from_tty)
+apropos_command (const char *searchstr, int from_tty)
 {
-  regex_t pattern;
-  int code;
-
   if (searchstr == NULL)
     error (_("REGEXP string is empty"));
 
-  code = regcomp (&pattern, searchstr, REG_ICASE);
-  if (code == 0)
-    {
-      struct cleanup *cleanups;
-
-      cleanups = make_regfree_cleanup (&pattern);
-      apropos_cmd (gdb_stdout, cmdlist, &pattern, "");
-      do_cleanups (cleanups);
-    }
-  else
-    {
-      char *err = get_regcomp_error (code, &pattern);
+  compiled_regex pattern (searchstr, REG_ICASE,
+			  _("Error in regular expression"));
 
-      make_cleanup (xfree, err);
-      error (_("Error in regular expression: %s"), err);
-    }
+  apropos_cmd (gdb_stdout, cmdlist, pattern, "");
 }
 
 /* Subroutine of alias_command to simplify it.
@@ -1418,35 +1377,31 @@ alias_usage_error (void)
 /* Make an alias of an existing command.  */
 
 static void
-alias_command (char *args, int from_tty)
+alias_command (const char *args, int from_tty)
 {
   int i, alias_argc, command_argc;
   int abbrev_flag = 0;
-  char *args2, *equals;
+  const char *equals;
   const char *alias, *command;
-  char **alias_argv, **command_argv;
-  struct cleanup *cleanup;
 
   if (args == NULL || strchr (args, '=') == NULL)
     alias_usage_error ();
 
-  args2 = xstrdup (args);
-  cleanup = make_cleanup (xfree, args2);
-  equals = strchr (args2, '=');
-  *equals = '\0';
-  alias_argv = gdb_buildargv (args2);
-  make_cleanup_freeargv (alias_argv);
-  command_argv = gdb_buildargv (equals + 1);
-  make_cleanup_freeargv (command_argv);
+  equals = strchr (args, '=');
+  std::string args2 (args, equals - args);
+
+  gdb_argv built_alias_argv (args2.c_str ());
+  gdb_argv command_argv (equals + 1);
 
-  for (i = 0; alias_argv[i] != NULL; )
+  char **alias_argv = built_alias_argv.get ();
+  while (alias_argv[0] != NULL)
     {
-      if (strcmp (alias_argv[i], "-a") == 0)
+      if (strcmp (alias_argv[0], "-a") == 0)
 	{
 	  ++alias_argv;
 	  abbrev_flag = 1;
 	}
-      else if (strcmp (alias_argv[i], "--") == 0)
+      else if (strcmp (alias_argv[0], "--") == 0)
 	{
 	  ++alias_argv;
 	  break;
@@ -1471,12 +1426,13 @@ alias_command (char *args, int from_tty)
     }
 
   alias_argc = countargv (alias_argv);
-  command_argc = countargv (command_argv);
+  command_argc = command_argv.count ();
 
   /* COMMAND must exist.
      Reconstruct the command to remove any extraneous spaces,
      for better error messages.  */
-  std::string command_string (argv_to_string (command_argv, command_argc));
+  std::string command_string (argv_to_string (command_argv.get (),
+					      command_argc));
   command = command_string.c_str ();
   if (! valid_command_p (command))
     error (_("Invalid command to alias to: %s"), command);
@@ -1533,35 +1489,53 @@ alias_command (char *args, int from_tty)
 		     command_argv[command_argc - 1],
 		     class_alias, abbrev_flag, c_command->prefixlist);
     }
-
-  do_cleanups (cleanup);
 }
 
+/* Print the file / line number / symbol name of the location
+   specified by SAL.  */
+
+static void
+print_sal_location (const symtab_and_line &sal)
+{
+  scoped_restore_current_program_space restore_pspace;
+  set_current_program_space (sal.pspace);
+
+  const char *sym_name = NULL;
+  if (sal.symbol != NULL)
+    sym_name = SYMBOL_PRINT_NAME (sal.symbol);
+  printf_filtered (_("file: \"%s\", line number: %d, symbol: \"%s\"\n"),
+		   symtab_to_filename_for_display (sal.symtab),
+		   sal.line, sym_name != NULL ? sym_name : "???");
+}
+
 /* Print a list of files and line numbers which a user may choose from
    in order to list a function which was specified ambiguously (as
-   with `list classname::overloadedfuncname', for example).  The
-   vector in SALS provides the filenames and line numbers.  */
+   with `list classname::overloadedfuncname', for example).  The SALS
+   array provides the filenames and line numbers.  FORMAT is a
+   printf-style format string used to tell the user what was
+   ambiguous.  */
 
 static void
-ambiguous_line_spec (struct symtabs_and_lines *sals)
+ambiguous_line_spec (gdb::array_view<const symtab_and_line> sals,
+		     const char *format, ...)
 {
-  int i;
+  va_list ap;
+  va_start (ap, format);
+  vprintf_filtered (format, ap);
+  va_end (ap);
 
-  for (i = 0; i < sals->nelts; ++i)
-    printf_filtered (_("file: \"%s\", line number: %d\n"),
-		     symtab_to_filename_for_display (sals->sals[i].symtab),
-		     sals->sals[i].line);
+  for (const auto &sal : sals)
+    print_sal_location (sal);
 }
 
-/* Sort function for filter_sals.  */
+/* Comparison function for filter_sals.  Returns a qsort-style
+   result.  */
 
 static int
-compare_symtabs (const void *a, const void *b)
+cmp_symtabs (const symtab_and_line &sala, const symtab_and_line &salb)
 {
-  const struct symtab_and_line *sala = (const struct symtab_and_line *) a;
-  const struct symtab_and_line *salb = (const struct symtab_and_line *) b;
-  const char *dira = SYMTAB_DIRNAME (sala->symtab);
-  const char *dirb = SYMTAB_DIRNAME (salb->symtab);
+  const char *dira = SYMTAB_DIRNAME (sala.symtab);
+  const char *dirb = SYMTAB_DIRNAME (salb.symtab);
   int r;
 
   if (dira == NULL)
@@ -1581,62 +1555,41 @@ compare_symtabs (const void *a, const vo
 	return r;
     }
 
-  r = filename_cmp (sala->symtab->filename, salb->symtab->filename);
+  r = filename_cmp (sala.symtab->filename, salb.symtab->filename);
   if (r)
     return r;
 
-  if (sala->line < salb->line)
+  if (sala.line < salb.line)
     return -1;
-  return sala->line == salb->line ? 0 : 1;
+  return sala.line == salb.line ? 0 : 1;
 }
 
 /* Remove any SALs that do not match the current program space, or
    which appear to be "file:line" duplicates.  */
 
 static void
-filter_sals (struct symtabs_and_lines *sals)
+filter_sals (std::vector<symtab_and_line> &sals)
 {
-  int i, out, prev;
+  /* Remove SALs that do not match.  */
+  auto from = std::remove_if (sals.begin (), sals.end (),
+			      [&] (const symtab_and_line &sal)
+    { return (sal.pspace != current_program_space || sal.symtab == NULL); });
 
-  out = 0;
-  for (i = 0; i < sals->nelts; ++i)
-    {
-      if (sals->sals[i].pspace == current_program_space
-	  && sals->sals[i].symtab != NULL)
-	{
-	  sals->sals[out] = sals->sals[i];
-	  ++out;
-	}
-    }
-  sals->nelts = out;
-
-  qsort (sals->sals, sals->nelts, sizeof (struct symtab_and_line),
-	 compare_symtabs);
+  /* Remove dups.  */
+  std::sort (sals.begin (), from,
+	     [] (const symtab_and_line &sala, const symtab_and_line &salb)
+   { return cmp_symtabs (sala, salb) < 0; });
 
-  out = 1;
-  prev = 0;
-  for (i = 1; i < sals->nelts; ++i)
-    {
-      if (compare_symtabs (&sals->sals[prev], &sals->sals[i]))
-	{
-	  /* Symtabs differ.  */
-	  sals->sals[out] = sals->sals[i];
-	  prev = out;
-	  ++out;
-	}
-    }
+  from = std::unique (sals.begin (), from,
+		      [&] (const symtab_and_line &sala,
+			   const symtab_and_line &salb)
+    { return cmp_symtabs (sala, salb) == 0; });
 
-  if (sals->nelts == 0)
-    {
-      xfree (sals->sals);
-      sals->sals = NULL;
-    }
-  else
-    sals->nelts = out;
+  sals.erase (from, sals.end ());
 }
 
 static void
-set_debug (char *arg, int from_tty)
+set_debug (const char *arg, int from_tty)
 {
   printf_unfiltered (_("\"set debug\" must be followed by "
 		       "the name of a debug subcommand.\n"));
@@ -1644,7 +1597,7 @@ set_debug (char *arg, int from_tty)
 }
 
 static void
-show_debug (char *args, int from_tty)
+show_debug (const char *args, int from_tty)
 {
   cmd_show_list (showdebuglist, from_tty, "");
 }
@@ -1702,10 +1655,6 @@ show_max_user_call_depth (struct ui_file
 		    value);
 }
 
-
-
-initialize_file_ftype _initialize_cli_cmds;
-
 void
 _initialize_cli_cmds (void)
 {
@@ -1714,28 +1663,28 @@ _initialize_cli_cmds (void)
   /* Define the classes of commands.
      They will appear in the help list in alphabetical order.  */
 
-  add_cmd ("internals", class_maintenance, NULL, _("\
+  add_cmd ("internals", class_maintenance, _("\
 Maintenance commands.\n\
 Some gdb commands are provided just for use by gdb maintainers.\n\
 These commands are subject to frequent change, and may not be as\n\
 well documented as user commands."),
 	   &cmdlist);
-  add_cmd ("obscure", class_obscure, NULL, _("Obscure features."), &cmdlist);
-  add_cmd ("aliases", class_alias, NULL,
+  add_cmd ("obscure", class_obscure, _("Obscure features."), &cmdlist);
+  add_cmd ("aliases", class_alias,
 	   _("Aliases of other commands."), &cmdlist);
-  add_cmd ("user-defined", class_user, NULL, _("\
+  add_cmd ("user-defined", class_user, _("\
 User-defined commands.\n\
 The commands in this class are those defined by the user.\n\
 Use the \"define\" command to define a command."), &cmdlist);
-  add_cmd ("support", class_support, NULL, _("Support facilities."), &cmdlist);
+  add_cmd ("support", class_support, _("Support facilities."), &cmdlist);
   if (!dbx_commands)
-    add_cmd ("status", class_info, NULL, _("Status inquiries."), &cmdlist);
-  add_cmd ("files", class_files, NULL, _("Specifying and examining files."),
+    add_cmd ("status", class_info, _("Status inquiries."), &cmdlist);
+  add_cmd ("files", class_files, _("Specifying and examining files."),
 	   &cmdlist);
-  add_cmd ("breakpoints", class_breakpoint, NULL,
+  add_cmd ("breakpoints", class_breakpoint,
 	   _("Making program stop at certain points."), &cmdlist);
-  add_cmd ("data", class_vars, NULL, _("Examining data."), &cmdlist);
-  add_cmd ("stack", class_stack, NULL, _("\
+  add_cmd ("data", class_vars, _("Examining data."), &cmdlist);
+  add_cmd ("stack", class_stack, _("\
 Examining the stack.\n\
 The stack is made up of stack frames.  Gdb assigns numbers to stack frames\n\
 counting from zero for the innermost (currently executing) frame.\n\n\
@@ -1744,7 +1693,7 @@ Variable lookups are done with respect t
 When the program being debugged stops, gdb selects the innermost frame.\n\
 The commands below can be used to select other frames by number or address."),
 	   &cmdlist);
-  add_cmd ("running", class_run, NULL, _("Running the program."), &cmdlist);
+  add_cmd ("running", class_run, _("Running the program."), &cmdlist);
 
   /* Define general commands.  */
 
@@ -1752,9 +1701,11 @@ The commands below can be used to select
 Print working directory.  This is used for your program as well."));
 
   c = add_cmd ("cd", class_files, cd_command, _("\
-Set working directory to DIR for debugger and program being debugged.\n\
-The change does not take effect for the program being debugged\n\
-until the next time it is started."), &cmdlist);
+Set working directory to DIR for debugger.\n\
+The debugger's current working directory specifies where scripts and other\n\
+files that can be loaded by GDB are located.\n\
+In order to change the inferior's current working directory, the recommended\n\
+way is to use the \"set cwd\" command."), &cmdlist);
   set_cmd_completer (c, filename_completer);
 
   add_com ("echo", class_support, echo_command, _("\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-cmds.h ./gdb/cli/cli-cmds.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-cmds.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli/cli-cmds.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Header file for GDB CLI command implementation library.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 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
@@ -17,6 +17,9 @@
 #if !defined (CLI_CMDS_H)
 #define CLI_CMDS_H 1
 
+#include "common/filestuff.h"
+#include "common/gdb_optional.h"
+
 /* Chain containing all defined commands.  */
 
 extern struct cmd_list_element *cmdlist;
@@ -107,18 +110,32 @@ int is_complete_command (struct cmd_list
 
 /* Exported to gdb/main.c */
 
-extern void cd_command (char *, int);
+extern void cd_command (const char *, int);
 
 /* Exported to gdb/top.c and gdb/main.c */
 
-extern void quit_command (char *, int);
+extern void quit_command (const char *, int);
 
 extern void source_script (const char *, int);
 
 /* Exported to objfiles.c.  */
 
-extern int find_and_open_script (const char *file, int search_path,
-				 FILE **streamp, char **full_path);
+/* The script that was opened.  */
+struct open_script
+{
+  gdb_file_up stream;
+  gdb::unique_xmalloc_ptr<char> full_path;
+
+  open_script (gdb_file_up &&stream_,
+	       gdb::unique_xmalloc_ptr<char> &&full_path_)
+    : stream (std::move (stream_)),
+      full_path (std::move (full_path_))
+  {
+  }
+};
+
+extern gdb::optional<open_script>
+    find_and_open_script (const char *file, int search_path);
 
 /* Command tracing state.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-decode.c ./gdb/cli/cli-decode.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-decode.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli/cli-decode.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Handle lists of commands, their decoding and documentation, for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 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
@@ -101,41 +101,41 @@ print_help_for_command (struct cmd_list_
    bounce function (unless cfunc / sfunc is NULL that is).  */
 
 static void
-do_cfunc (struct cmd_list_element *c, char *args, int from_tty)
+do_const_cfunc (struct cmd_list_element *c, const char *args, int from_tty)
 {
-  c->function.cfunc (args, from_tty); /* Ok.  */
+  c->function.const_cfunc (args, from_tty);
 }
 
-void
-set_cmd_cfunc (struct cmd_list_element *cmd, cmd_cfunc_ftype *cfunc)
+static void
+set_cmd_cfunc (struct cmd_list_element *cmd, cmd_const_cfunc_ftype *cfunc)
 {
   if (cfunc == NULL)
     cmd->func = NULL;
   else
-    cmd->func = do_cfunc;
-  cmd->function.cfunc = cfunc; /* Ok.  */
+    cmd->func = do_const_cfunc;
+  cmd->function.const_cfunc = cfunc;
 }
 
 static void
-do_sfunc (struct cmd_list_element *c, char *args, int from_tty)
+do_sfunc (struct cmd_list_element *c, const char *args, int from_tty)
 {
-  c->function.sfunc (args, from_tty, c); /* Ok.  */
+  c->function.sfunc (args, from_tty, c);
 }
 
 void
-set_cmd_sfunc (struct cmd_list_element *cmd, cmd_sfunc_ftype *sfunc)
+set_cmd_sfunc (struct cmd_list_element *cmd, cmd_const_sfunc_ftype *sfunc)
 {
   if (sfunc == NULL)
     cmd->func = NULL;
   else
     cmd->func = do_sfunc;
-  cmd->function.sfunc = sfunc; /* Ok.  */
+  cmd->function.sfunc = sfunc;
 }
 
 int
-cmd_cfunc_eq (struct cmd_list_element *cmd, cmd_cfunc_ftype *cfunc)
+cmd_cfunc_eq (struct cmd_list_element *cmd, cmd_const_cfunc_ftype *cfunc)
 {
-  return cmd->func == do_cfunc && cmd->function.cfunc == cfunc;
+  return cmd->func == do_const_cfunc && cmd->function.const_cfunc == cfunc;
 }
 
 void
@@ -166,9 +166,9 @@ set_cmd_completer (struct cmd_list_eleme
 
 void
 set_cmd_completer_handle_brkchars (struct cmd_list_element *cmd,
-			       completer_ftype_void *completer_handle_brkchars)
+				   completer_handle_brkchars_ftype *func)
 {
-  cmd->completer_handle_brkchars = completer_handle_brkchars;
+  cmd->completer_handle_brkchars = func;
 }
 
 /* Add element named NAME.
@@ -189,9 +189,9 @@ set_cmd_completer_handle_brkchars (struc
    Returns a pointer to the added command (not necessarily the head 
    of *LIST).  */
 
-struct cmd_list_element *
-add_cmd (const char *name, enum command_class theclass, cmd_cfunc_ftype *fun,
-	 const char *doc, struct cmd_list_element **list)
+static struct cmd_list_element *
+do_add_cmd (const char *name, enum command_class theclass,
+	    const char *doc, struct cmd_list_element **list)
 {
   struct cmd_list_element *c = XNEW (struct cmd_list_element);
   struct cmd_list_element *p, *iter;
@@ -229,7 +229,6 @@ add_cmd (const char *name, enum command_
 
   c->name = name;
   c->theclass = theclass;
-  set_cmd_cfunc (c, fun);
   set_cmd_context (c, NULL);
   c->doc = doc;
   c->cmd_deprecated = 0;
@@ -244,7 +243,7 @@ add_cmd (const char *name, enum command_
   c->allow_unknown = 0;
   c->prefix = NULL;
   c->abbrev_flag = 0;
-  set_cmd_completer (c, make_symbol_completion_list_fn);
+  set_cmd_completer (c, symbol_completer);
   c->completer_handle_brkchars = NULL;
   c->destroyer = NULL;
   c->type = not_set_cmd;
@@ -259,6 +258,26 @@ add_cmd (const char *name, enum command_
   return c;
 }
 
+struct cmd_list_element *
+add_cmd (const char *name, enum command_class theclass,
+	 const char *doc, struct cmd_list_element **list)
+{
+  cmd_list_element *result = do_add_cmd (name, theclass, doc, list);
+  result->func = NULL;
+  result->function.const_cfunc = NULL;
+  return result;
+}
+
+struct cmd_list_element *
+add_cmd (const char *name, enum command_class theclass,
+	 cmd_const_cfunc_ftype *fun,
+	 const char *doc, struct cmd_list_element **list)
+{
+  cmd_list_element *result = do_add_cmd (name, theclass, doc, list);
+  set_cmd_cfunc (result, fun);
+  return result;
+}
+
 /* Deprecates a command CMD.
    REPLACEMENT is the name of the command which should be used in
    place of this command, or NULL if no such command exists.
@@ -301,7 +320,7 @@ add_alias_cmd (const char *name, cmd_lis
       return 0;
     }
 
-  struct cmd_list_element *c = add_cmd (name, theclass, NULL, old->doc, list);
+  struct cmd_list_element *c = add_cmd (name, theclass, old->doc, list);
 
   /* If OLD->DOC can be freed, we should make another copy.  */
   if (old->doc_allocated)
@@ -346,7 +365,7 @@ add_alias_cmd (const char *name, const c
 
 struct cmd_list_element *
 add_prefix_cmd (const char *name, enum command_class theclass,
-		cmd_cfunc_ftype *fun,
+		cmd_const_cfunc_ftype *fun,
 		const char *doc, struct cmd_list_element **prefixlist,
 		const char *prefixname, int allow_unknown,
 		struct cmd_list_element **list)
@@ -374,7 +393,7 @@ add_prefix_cmd (const char *name, enum c
 
 struct cmd_list_element *
 add_abbrev_prefix_cmd (const char *name, enum command_class theclass,
-		       cmd_cfunc_ftype *fun, const char *doc,
+		       cmd_const_cfunc_ftype *fun, const char *doc,
 		       struct cmd_list_element **prefixlist,
 		       const char *prefixname,
 		       int allow_unknown, struct cmd_list_element **list)
@@ -390,15 +409,14 @@ add_abbrev_prefix_cmd (const char *name,
 
 /* This is an empty "cfunc".  */
 void
-not_just_help_class_command (char *args, int from_tty)
+not_just_help_class_command (const char *args, int from_tty)
 {
 }
 
 /* This is an empty "sfunc".  */
-static void empty_sfunc (char *, int, struct cmd_list_element *);
 
 static void
-empty_sfunc (char *args, int from_tty, struct cmd_list_element *c)
+empty_sfunc (const char *args, int from_tty, struct cmd_list_element *c)
 {
 }
 
@@ -419,7 +437,7 @@ add_set_or_show_cmd (const char *name,
 		     const char *doc,
 		     struct cmd_list_element **list)
 {
-  struct cmd_list_element *c = add_cmd (name, theclass, NULL, doc, list);
+  struct cmd_list_element *c = add_cmd (name, theclass, doc, list);
 
   gdb_assert (type == set_cmd || type == show_cmd);
   c->type = type;
@@ -446,7 +464,7 @@ add_setshow_cmd_full (const char *name,
 		      var_types var_type, void *var,
 		      const char *set_doc, const char *show_doc,
 		      const char *help_doc,
-		      cmd_sfunc_ftype *set_func,
+		      cmd_const_sfunc_ftype *set_func,
 		      show_value_ftype *show_func,
 		      struct cmd_list_element **set_list,
 		      struct cmd_list_element **show_list,
@@ -501,7 +519,7 @@ add_setshow_enum_cmd (const char *name,
 		      const char *set_doc,
 		      const char *show_doc,
 		      const char *help_doc,
-		      cmd_sfunc_ftype *set_func,
+		      cmd_const_sfunc_ftype *set_func,
 		      show_value_ftype *show_func,
 		      struct cmd_list_element **set_list,
 		      struct cmd_list_element **show_list)
@@ -528,7 +546,7 @@ add_setshow_auto_boolean_cmd (const char
 			      enum auto_boolean *var,
 			      const char *set_doc, const char *show_doc,
 			      const char *help_doc,
-			      cmd_sfunc_ftype *set_func,
+			      cmd_const_sfunc_ftype *set_func,
 			      show_value_ftype *show_func,
 			      struct cmd_list_element **set_list,
 			      struct cmd_list_element **show_list)
@@ -551,7 +569,7 @@ void
 add_setshow_boolean_cmd (const char *name, enum command_class theclass, int *var,
 			 const char *set_doc, const char *show_doc,
 			 const char *help_doc,
-			 cmd_sfunc_ftype *set_func,
+			 cmd_const_sfunc_ftype *set_func,
 			 show_value_ftype *show_func,
 			 struct cmd_list_element **set_list,
 			 struct cmd_list_element **show_list)
@@ -574,7 +592,7 @@ add_setshow_filename_cmd (const char *na
 			  char **var,
 			  const char *set_doc, const char *show_doc,
 			  const char *help_doc,
-			  cmd_sfunc_ftype *set_func,
+			  cmd_const_sfunc_ftype *set_func,
 			  show_value_ftype *show_func,
 			  struct cmd_list_element **set_list,
 			  struct cmd_list_element **show_list)
@@ -596,7 +614,7 @@ add_setshow_string_cmd (const char *name
 			char **var,
 			const char *set_doc, const char *show_doc,
 			const char *help_doc,
-			cmd_sfunc_ftype *set_func,
+			cmd_const_sfunc_ftype *set_func,
 			show_value_ftype *show_func,
 			struct cmd_list_element **set_list,
 			struct cmd_list_element **show_list)
@@ -615,7 +633,7 @@ add_setshow_string_noescape_cmd (const c
 				 char **var,
 				 const char *set_doc, const char *show_doc,
 				 const char *help_doc,
-				 cmd_sfunc_ftype *set_func,
+				 cmd_const_sfunc_ftype *set_func,
 				 show_value_ftype *show_func,
 				 struct cmd_list_element **set_list,
 				 struct cmd_list_element **show_list)
@@ -637,7 +655,7 @@ add_setshow_optional_filename_cmd (const
 				   char **var,
 				   const char *set_doc, const char *show_doc,
 				   const char *help_doc,
-				   cmd_sfunc_ftype *set_func,
+				   cmd_const_sfunc_ftype *set_func,
 				   show_value_ftype *show_func,
 				   struct cmd_list_element **set_list,
 				   struct cmd_list_element **show_list)
@@ -657,8 +675,9 @@ add_setshow_optional_filename_cmd (const
 /* Completes on literal "unlimited".  Used by integer commands that
    support a special "unlimited" value.  */
 
-static VEC (char_ptr) *
+static void
 integer_unlimited_completer (struct cmd_list_element *ignore,
+			     completion_tracker &tracker,
 			     const char *text, const char *word)
 {
   static const char * const keywords[] =
@@ -667,7 +686,7 @@ integer_unlimited_completer (struct cmd_
       NULL,
     };
 
-  return complete_on_enum (keywords, text, word);
+  complete_on_enum (tracker, keywords, text, word);
 }
 
 /* Add element named NAME to both the set and show command LISTs (the
@@ -680,7 +699,7 @@ add_setshow_integer_cmd (const char *nam
 			 int *var,
 			 const char *set_doc, const char *show_doc,
 			 const char *help_doc,
-			 cmd_sfunc_ftype *set_func,
+			 cmd_const_sfunc_ftype *set_func,
 			 show_value_ftype *show_func,
 			 struct cmd_list_element **set_list,
 			 struct cmd_list_element **show_list)
@@ -705,7 +724,7 @@ add_setshow_uinteger_cmd (const char *na
 			  unsigned int *var,
 			  const char *set_doc, const char *show_doc,
 			  const char *help_doc,
-			  cmd_sfunc_ftype *set_func,
+			  cmd_const_sfunc_ftype *set_func,
 			  show_value_ftype *show_func,
 			  struct cmd_list_element **set_list,
 			  struct cmd_list_element **show_list)
@@ -730,7 +749,7 @@ add_setshow_zinteger_cmd (const char *na
 			  int *var,
 			  const char *set_doc, const char *show_doc,
 			  const char *help_doc,
-			  cmd_sfunc_ftype *set_func,
+			  cmd_const_sfunc_ftype *set_func,
 			  show_value_ftype *show_func,
 			  struct cmd_list_element **set_list,
 			  struct cmd_list_element **show_list)
@@ -749,7 +768,7 @@ add_setshow_zuinteger_unlimited_cmd (con
 				     const char *set_doc,
 				     const char *show_doc,
 				     const char *help_doc,
-				     cmd_sfunc_ftype *set_func,
+				     cmd_const_sfunc_ftype *set_func,
 				     show_value_ftype *show_func,
 				     struct cmd_list_element **set_list,
 				     struct cmd_list_element **show_list)
@@ -774,7 +793,7 @@ add_setshow_zuinteger_cmd (const char *n
 			   unsigned int *var,
 			   const char *set_doc, const char *show_doc,
 			   const char *help_doc,
-			   cmd_sfunc_ftype *set_func,
+			   cmd_const_sfunc_ftype *set_func,
 			   show_value_ftype *show_func,
 			   struct cmd_list_element **set_list,
 			   struct cmd_list_element **show_list)
@@ -864,7 +883,7 @@ delete_cmd (const char *name, struct cmd
 /* Add an element to the list of info subcommands.  */
 
 struct cmd_list_element *
-add_info (const char *name, cmd_cfunc_ftype *fun, const char *doc)
+add_info (const char *name, cmd_const_cfunc_ftype *fun, const char *doc)
 {
   return add_cmd (name, class_info, fun, doc, &infolist);
 }
@@ -880,7 +899,8 @@ add_info_alias (const char *name, const 
 /* Add an element to the list of commands.  */
 
 struct cmd_list_element *
-add_com (const char *name, enum command_class theclass, cmd_cfunc_ftype *fun,
+add_com (const char *name, enum command_class theclass,
+	 cmd_const_cfunc_ftype *fun,
 	 const char *doc)
 {
   return add_cmd (name, theclass, fun, doc, &cmdlist);
@@ -899,7 +919,7 @@ add_com_alias (const char *name, const c
 
 struct cmd_list_element *
 add_com_suppress_notification (const char *name, enum command_class theclass,
-			       cmd_cfunc_ftype *fun, const char *doc,
+			       cmd_const_cfunc_ftype *fun, const char *doc,
 			       int *suppress_notification)
 {
   struct cmd_list_element *element;
@@ -917,7 +937,7 @@ add_com_suppress_notification (const cha
 void 
 apropos_cmd (struct ui_file *stream, 
 	     struct cmd_list_element *commandlist,
-	     struct re_pattern_buffer *regex, const char *prefix)
+	     compiled_regex &regex, const char *prefix)
 {
   struct cmd_list_element *c;
   int returnvalue;
@@ -928,9 +948,10 @@ apropos_cmd (struct ui_file *stream, 
       returnvalue = -1; /* Needed to avoid double printing.  */
       if (c->name != NULL)
 	{
+	  size_t name_len = strlen (c->name);
+
 	  /* Try to match against the name.  */
-	  returnvalue = re_search (regex, c->name, strlen(c->name),
-				   0, strlen (c->name), NULL);
+	  returnvalue = regex.search (c->name, name_len, 0, name_len, NULL);
 	  if (returnvalue >= 0)
 	    {
 	      print_help_for_command (c, prefix, 
@@ -939,8 +960,10 @@ apropos_cmd (struct ui_file *stream, 
 	}
       if (c->doc != NULL && returnvalue < 0)
 	{
+	  size_t doc_len = strlen (c->doc);
+
 	  /* Try to match against documentation.  */
-	  if (re_search(regex,c->doc,strlen(c->doc),0,strlen(c->doc),NULL) >=0)
+	  if (regex.search (c->doc, doc_len, 0, doc_len, NULL) >= 0)
 	    {
 	      print_help_for_command (c, prefix, 
 				      0 /* don't recurse */, stream);
@@ -1061,9 +1084,9 @@ help_list (struct cmd_list_element *list
   if (len)
     {
       cmdtype1[0] = ' ';
-      strncpy (cmdtype1 + 1, cmdtype, len - 1);
+      memcpy (cmdtype1 + 1, cmdtype, len - 1);
       cmdtype1[len] = 0;
-      strncpy (cmdtype2, cmdtype, len - 1);
+      memcpy (cmdtype2, cmdtype, len - 1);
       strcpy (cmdtype2 + len - 1, " sub");
     }
 
@@ -1363,7 +1386,7 @@ lookup_cmd_1 (const char **text, struct 
 	      struct cmd_list_element **result_list, int ignore_help_classes)
 {
   char *command;
-  int len, tmp, nfound;
+  int len, nfound;
   struct cmd_list_element *found, *c;
   const char *line = *text;
 
@@ -1692,7 +1715,7 @@ lookup_cmd_composition (const char *text
                       struct cmd_list_element **cmd)
 {
   char *command;
-  int len, tmp, nfound;
+  int len, nfound;
   struct cmd_list_element *cur_list;
   struct cmd_list_element *prev_cmd;
 
@@ -1768,13 +1791,13 @@ lookup_cmd_composition (const char *text
    "foo" and we want to complete to "foobar".  If WORD is "oo", return
    "oobar"; if WORD is "baz/foo", return "baz/foobar".  */
 
-VEC (char_ptr) *
+void
 complete_on_cmdlist (struct cmd_list_element *list,
+		     completion_tracker &tracker,
 		     const char *text, const char *word,
 		     int ignore_help_classes)
 {
   struct cmd_list_element *ptr;
-  VEC (char_ptr) *matchlist = NULL;
   int textlen = strlen (text);
   int pass;
   int saw_deprecated_match = 0;
@@ -1783,16 +1806,16 @@ complete_on_cmdlist (struct cmd_list_ele
      commands.  If we see no matching commands in the first pass, and
      if we did happen to see a matching deprecated command, we do
      another loop to collect those.  */
-  for (pass = 0; matchlist == 0 && pass < 2; ++pass)
+  for (pass = 0; pass < 2; ++pass)
     {
+      bool got_matches = false;
+
       for (ptr = list; ptr; ptr = ptr->next)
 	if (!strncmp (ptr->name, text, textlen)
 	    && !ptr->abbrev_flag
 	    && (!ignore_help_classes || ptr->func
 		|| ptr->prefixlist))
 	  {
-	    char *match;
-
 	    if (pass == 0)
 	      {
 		if (ptr->cmd_deprecated)
@@ -1802,75 +1825,42 @@ complete_on_cmdlist (struct cmd_list_ele
 		  }
 	      }
 
-	    match = (char *) xmalloc (strlen (word) + strlen (ptr->name) + 1);
-	    if (word == text)
-	      strcpy (match, ptr->name);
-	    else if (word > text)
-	      {
-		/* Return some portion of ptr->name.  */
-		strcpy (match, ptr->name + (word - text));
-	      }
-	    else
-	      {
-		/* Return some of text plus ptr->name.  */
-		strncpy (match, word, text - word);
-		match[text - word] = '\0';
-		strcat (match, ptr->name);
-	      }
-	    VEC_safe_push (char_ptr, matchlist, match);
+	    tracker.add_completion
+	      (make_completion_match_str (ptr->name, text, word));
+	    got_matches = true;
 	  }
+
+      if (got_matches)
+	break;
+
       /* If we saw no matching deprecated commands in the first pass,
 	 just bail out.  */
       if (!saw_deprecated_match)
 	break;
     }
-
-  return matchlist;
 }
 
 /* Helper function for SYMBOL_COMPLETION_FUNCTION.  */
 
-/* Return a vector of char pointers which point to the different
-   possible completions in CMD of TEXT.
+/* Add the different possible completions in ENUMLIST of TEXT.
 
    WORD points in the same buffer as TEXT, and completions should be
    returned relative to this position.  For example, suppose TEXT is "foo"
    and we want to complete to "foobar".  If WORD is "oo", return
    "oobar"; if WORD is "baz/foo", return "baz/foobar".  */
 
-VEC (char_ptr) *
-complete_on_enum (const char *const *enumlist,
+void
+complete_on_enum (completion_tracker &tracker,
+		  const char *const *enumlist,
 		  const char *text, const char *word)
 {
-  VEC (char_ptr) *matchlist = NULL;
   int textlen = strlen (text);
   int i;
   const char *name;
 
   for (i = 0; (name = enumlist[i]) != NULL; i++)
     if (strncmp (name, text, textlen) == 0)
-      {
-	char *match;
-
-	match = (char *) xmalloc (strlen (word) + strlen (name) + 1);
-	if (word == text)
-	  strcpy (match, name);
-	else if (word > text)
-	  {
-	    /* Return some portion of name.  */
-	    strcpy (match, name + (word - text));
-	  }
-	else
-	  {
-	    /* Return some of text plus name.  */
-	    strncpy (match, word, text - word);
-	    match[text - word] = '\0';
-	    strcat (match, name);
-	  }
-	VEC_safe_push (char_ptr, matchlist, match);
-      }
-
-  return matchlist;
+      tracker.add_completion (make_completion_match_str (name, text, word));
 }
 
 
@@ -1884,7 +1874,7 @@ cmd_func_p (struct cmd_list_element *cmd
 
 /* Call the command function.  */
 void
-cmd_func (struct cmd_list_element *cmd, char *args, int from_tty)
+cmd_func (struct cmd_list_element *cmd, const char *args, int from_tty)
 {
   if (cmd_func_p (cmd))
     {
@@ -1903,5 +1893,5 @@ int
 cli_user_command_p (struct cmd_list_element *cmd)
 {
   return (cmd->theclass == class_user
-	  && (cmd->func == do_cfunc || cmd->func == do_sfunc));
+	  && (cmd->func == do_const_cfunc || cmd->func == do_sfunc));
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-decode.h ./gdb/cli/cli-decode.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-decode.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli/cli-decode.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Header file for GDB command decoding library.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 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
@@ -23,8 +23,7 @@
 
 /* Include the public interfaces.  */
 #include "command.h"
-
-struct re_pattern_buffer;
+#include "gdb_regex.h"
 
 #if 0
 /* FIXME: cagney/2002-03-17: Once cmd_type() has been removed, ``enum
@@ -108,16 +107,16 @@ struct cmd_list_element
        cagney/2002-02-02: This function signature is evolving.  For
        the moment suggest sticking with either set_cmd_cfunc() or
        set_cmd_sfunc().  */
-    void (*func) (struct cmd_list_element *c, char *args, int from_tty);
+    void (*func) (struct cmd_list_element *c, const char *args, int from_tty);
     /* The command's real callback.  At present func() bounces through
        to one of the below.  */
     union
       {
 	/* If type is not_set_cmd, call it like this: */
-	cmd_cfunc_ftype *cfunc;
+	cmd_const_cfunc_ftype *const_cfunc;
 	/* If type is set_cmd or show_cmd, first set the variables,
 	   and then call this: */
-	cmd_sfunc_ftype *sfunc;
+	cmd_const_sfunc_ftype *sfunc;
       }
     function;
 
@@ -161,19 +160,7 @@ struct cmd_list_element
     /* The prefix command of this command.  */
     struct cmd_list_element *prefix;
 
-    /* Completion routine for this command.  TEXT is the text beyond
-       what was matched for the command itself (leading whitespace is
-       skipped).  It stops where we are supposed to stop completing
-       (rl_point) and is '\0' terminated.
-
-       Return value is a malloc'd vector of pointers to possible
-       completions terminated with NULL.  If there are no completions,
-       returning a pointer to a NULL would work but returning NULL
-       itself is also valid.  WORD points in the same buffer as TEXT,
-       and completions should be returned relative to this position.
-       For example, suppose TEXT is "foo" and we want to complete to
-       "foobar".  If WORD is "oo", return "oobar"; if WORD is
-       "baz/foo", return "baz/foobar".  */
+    /* Completion routine for this command.  */
     completer_ftype *completer;
 
     /* Handle the word break characters for this completer.  Usually
@@ -182,8 +169,7 @@ struct cmd_list_element
        a class) the word break chars may need to be redefined
        depending on the completer type (e.g., for filename
        completers).  */
-
-    completer_ftype_void *completer_handle_brkchars;
+    completer_handle_brkchars_ftype *completer_handle_brkchars;
 
     /* Destruction routine for this command.  If non-NULL, this is
        called when this command instance is destroyed.  This may be
@@ -234,13 +220,13 @@ extern void help_cmd_list (struct cmd_li
 extern void help_cmd (const char *, struct ui_file *);
 
 extern void apropos_cmd (struct ui_file *, struct cmd_list_element *,
-                         struct re_pattern_buffer *, const char *);
+                         compiled_regex &, const char *);
 
 /* Used to mark commands that don't do anything.  If we just leave the
    function field NULL, the command is interpreted as a help topic, or
    as a class of commands.  */
 
-extern void not_just_help_class_command (char *arg, int from_tty);
+extern void not_just_help_class_command (const char *arg, int from_tty);
 
 /* Exported to cli/cli-setshow.c */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-dump.c ./gdb/cli/cli-dump.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-dump.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli/cli-dump.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Dump-to-file commands, for GDB, the GNU debugger.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat.
 
@@ -31,18 +31,13 @@
 #include "cli/cli-utils.h"
 #include "gdb_bfd.h"
 #include "filestuff.h"
+#include "common/byte-vector.h"
 
-
-static const char *
-scan_expression_with_cleanup (const char **cmd, const char *def)
+static gdb::unique_xmalloc_ptr<char>
+scan_expression (const char **cmd, const char *def)
 {
   if ((*cmd) == NULL || (**cmd) == '\0')
-    {
-      char *exp = xstrdup (def);
-
-      make_cleanup (xfree, exp);
-      return exp;
-    }
+    return gdb::unique_xmalloc_ptr<char> (xstrdup (def));
   else
     {
       char *exp;
@@ -50,18 +45,16 @@ scan_expression_with_cleanup (const char
 
       end = (*cmd) + strcspn (*cmd, " \t");
       exp = savestring ((*cmd), end - (*cmd));
-      make_cleanup (xfree, exp);
-      (*cmd) = skip_spaces_const (end);
-      return exp;
+      (*cmd) = skip_spaces (end);
+      return gdb::unique_xmalloc_ptr<char> (exp);
     }
 }
 
 
-static char *
-scan_filename_with_cleanup (const char **cmd, const char *defname)
+static gdb::unique_xmalloc_ptr<char>
+scan_filename (const char **cmd, const char *defname)
 {
-  char *filename;
-  char *fullname;
+  gdb::unique_xmalloc_ptr<char> filename;
 
   /* FIXME: Need to get the ``/a(ppend)'' flag from somewhere.  */
 
@@ -70,37 +63,21 @@ scan_filename_with_cleanup (const char *
     {
       if (defname == NULL)
 	error (_("Missing filename."));
-      filename = xstrdup (defname);
-      make_cleanup (xfree, filename);
+      filename.reset (xstrdup (defname));
     }
   else
     {
       /* FIXME: should parse a possibly quoted string.  */
       const char *end;
 
-      (*cmd) = skip_spaces_const (*cmd);
+      (*cmd) = skip_spaces (*cmd);
       end = *cmd + strcspn (*cmd, " \t");
-      filename = savestring ((*cmd), end - (*cmd));
-      make_cleanup (xfree, filename);
-      (*cmd) = skip_spaces_const (end);
+      filename.reset (savestring ((*cmd), end - (*cmd)));
+      (*cmd) = skip_spaces (end);
     }
   gdb_assert (filename != NULL);
 
-  fullname = tilde_expand (filename);
-  make_cleanup (xfree, fullname);
-  
-  return fullname;
-}
-
-static FILE *
-fopen_with_cleanup (const char *filename, const char *mode)
-{
-  FILE *file = gdb_fopen_cloexec (filename, mode);
-
-  if (file == NULL)
-    perror_with_name (filename);
-  make_cleanup_fclose (file);
-  return file;
+  return gdb::unique_xmalloc_ptr<char> (tilde_expand (filename.get ()));
 }
 
 static gdb_bfd_ref_ptr
@@ -151,14 +128,14 @@ static struct cmd_list_element *binary_d
 static struct cmd_list_element *binary_append_cmdlist;
 
 static void
-dump_command (char *cmd, int from_tty)
+dump_command (const char *cmd, int from_tty)
 {
   printf_unfiltered (_("\"dump\" must be followed by a subcommand.\n\n"));
   help_list (dump_cmdlist, "dump ", all_commands, gdb_stdout);
 }
 
 static void
-append_command (char *cmd, int from_tty)
+append_command (const char *cmd, int from_tty)
 {
   printf_unfiltered (_("\"append\" must be followed by a subcommand.\n\n"));
   help_list (dump_cmdlist, "append ", all_commands, gdb_stdout);
@@ -168,11 +145,10 @@ static void
 dump_binary_file (const char *filename, const char *mode, 
 		  const bfd_byte *buf, ULONGEST len)
 {
-  FILE *file;
   int status;
 
-  file = fopen_with_cleanup (filename, mode);
-  status = fwrite (buf, len, 1, file);
+  gdb_file_up file = gdb_fopen_cloexec (filename, mode);
+  status = fwrite (buf, len, 1, file.get ());
   if (status != 1)
     perror_with_name (filename);
 }
@@ -201,28 +177,25 @@ dump_bfd_file (const char *filename, con
 static void
 dump_memory_to_file (const char *cmd, const char *mode, const char *file_format)
 {
-  struct cleanup *old_cleanups = make_cleanup (null_cleanup, NULL);
   CORE_ADDR lo;
   CORE_ADDR hi;
   ULONGEST count;
-  const char *filename;
-  const char *lo_exp;
   const char *hi_exp;
 
   /* Open the file.  */
-  filename = scan_filename_with_cleanup (&cmd, NULL);
+  gdb::unique_xmalloc_ptr<char> filename = scan_filename (&cmd, NULL);
 
   /* Find the low address.  */
   if (cmd == NULL || *cmd == '\0')
     error (_("Missing start address."));
-  lo_exp = scan_expression_with_cleanup (&cmd, NULL);
+  gdb::unique_xmalloc_ptr<char> lo_exp = scan_expression (&cmd, NULL);
 
   /* Find the second address - rest of line.  */
   if (cmd == NULL || *cmd == '\0')
     error (_("Missing stop address."));
   hi_exp = cmd;
 
-  lo = parse_and_eval_address (lo_exp);
+  lo = parse_and_eval_address (lo_exp.get ());
   hi = parse_and_eval_address (hi_exp);
   if (hi <= lo)
     error (_("Invalid memory address range (start >= end)."));
@@ -230,24 +203,18 @@ dump_memory_to_file (const char *cmd, co
 
   /* FIXME: Should use read_memory_partial() and a magic blocking
      value.  */
-  std::unique_ptr<gdb_byte[]> buf (new gdb_byte[count]);
-  read_memory (lo, buf.get (), count);
+  gdb::byte_vector buf (count);
+  read_memory (lo, buf.data (), count);
   
   /* Have everything.  Open/write the data.  */
   if (file_format == NULL || strcmp (file_format, "binary") == 0)
-    {
-      dump_binary_file (filename, mode, buf.get (), count);
-    }
+    dump_binary_file (filename.get (), mode, buf.data (), count);
   else
-    {
-      dump_bfd_file (filename, mode, file_format, lo, buf.get (), count);
-    }
-
-  do_cleanups (old_cleanups);
+    dump_bfd_file (filename.get (), mode, file_format, lo, buf.data (), count);
 }
 
 static void
-dump_memory_command (char *cmd, const char *mode)
+dump_memory_command (const char *cmd, const char *mode)
 {
   dump_memory_to_file (cmd, mode, "binary");
 }
@@ -255,12 +222,10 @@ dump_memory_command (char *cmd, const ch
 static void
 dump_value_to_file (const char *cmd, const char *mode, const char *file_format)
 {
-  struct cleanup *old_cleanups = make_cleanup (null_cleanup, NULL);
   struct value *val;
-  const char *filename;
 
   /* Open the file.  */
-  filename = scan_filename_with_cleanup (&cmd, NULL);
+  gdb::unique_xmalloc_ptr<char> filename = scan_filename (&cmd, NULL);
 
   /* Find the value.  */
   if (cmd == NULL || *cmd == '\0')
@@ -271,10 +236,8 @@ dump_value_to_file (const char *cmd, con
 
   /* Have everything.  Open/write the data.  */
   if (file_format == NULL || strcmp (file_format, "binary") == 0)
-    {
-      dump_binary_file (filename, mode, value_contents (val), 
-			TYPE_LENGTH (value_type (val)));
-    }
+    dump_binary_file (filename.get (), mode, value_contents (val),
+		      TYPE_LENGTH (value_type (val)));
   else
     {
       CORE_ADDR vaddr;
@@ -289,100 +252,98 @@ dump_value_to_file (const char *cmd, con
 	  warning (_("value is not an lval: address assumed to be zero"));
 	}
 
-      dump_bfd_file (filename, mode, file_format, vaddr, 
+      dump_bfd_file (filename.get (), mode, file_format, vaddr,
 		     value_contents (val), 
 		     TYPE_LENGTH (value_type (val)));
     }
-
-  do_cleanups (old_cleanups);
 }
 
 static void
-dump_value_command (char *cmd, const char *mode)
+dump_value_command (const char *cmd, const char *mode)
 {
   dump_value_to_file (cmd, mode, "binary");
 }
 
 static void
-dump_srec_memory (char *args, int from_tty)
+dump_srec_memory (const char *args, int from_tty)
 {
   dump_memory_to_file (args, FOPEN_WB, "srec");
 }
 
 static void
-dump_srec_value (char *args, int from_tty)
+dump_srec_value (const char *args, int from_tty)
 {
   dump_value_to_file (args, FOPEN_WB, "srec");
 }
 
 static void
-dump_ihex_memory (char *args, int from_tty)
+dump_ihex_memory (const char *args, int from_tty)
 {
   dump_memory_to_file (args, FOPEN_WB, "ihex");
 }
 
 static void
-dump_ihex_value (char *args, int from_tty)
+dump_ihex_value (const char *args, int from_tty)
 {
   dump_value_to_file (args, FOPEN_WB, "ihex");
 }
 
 static void
-dump_verilog_memory (char *args, int from_tty)
+dump_verilog_memory (const char *args, int from_tty)
 {
   dump_memory_to_file (args, FOPEN_WB, "verilog");
 }
 
 static void
-dump_verilog_value (char *args, int from_tty)
+dump_verilog_value (const char *args, int from_tty)
 {
   dump_value_to_file (args, FOPEN_WB, "verilog");
 }
 
 static void
-dump_tekhex_memory (char *args, int from_tty)
+dump_tekhex_memory (const char *args, int from_tty)
 {
   dump_memory_to_file (args, FOPEN_WB, "tekhex");
 }
 
 static void
-dump_tekhex_value (char *args, int from_tty)
+dump_tekhex_value (const char *args, int from_tty)
 {
   dump_value_to_file (args, FOPEN_WB, "tekhex");
 }
 
 static void
-dump_binary_memory (char *args, int from_tty)
+dump_binary_memory (const char *args, int from_tty)
 {
   dump_memory_to_file (args, FOPEN_WB, "binary");
 }
 
 static void
-dump_binary_value (char *args, int from_tty)
+dump_binary_value (const char *args, int from_tty)
 {
   dump_value_to_file (args, FOPEN_WB, "binary");
 }
 
 static void
-append_binary_memory (char *args, int from_tty)
+append_binary_memory (const char *args, int from_tty)
 {
   dump_memory_to_file (args, FOPEN_AB, "binary");
 }
 
 static void
-append_binary_value (char *args, int from_tty)
+append_binary_value (const char *args, int from_tty)
 {
   dump_value_to_file (args, FOPEN_AB, "binary");
 }
 
 struct dump_context
 {
-  void (*func) (char *cmd, const char *mode);
+  void (*func) (const char *cmd, const char *mode);
   const char *mode;
 };
 
 static void
-call_dump_func (struct cmd_list_element *c, char *args, int from_tty)
+call_dump_func (struct cmd_list_element *c, const char *args, int from_tty)
 {
   struct dump_context *d = (struct dump_context *) get_cmd_context (c);
 
@@ -391,14 +352,14 @@ call_dump_func (struct cmd_list_element 
 
 static void
 add_dump_command (const char *name,
-		  void (*func) (char *args, const char *mode),
+		  void (*func) (const char *args, const char *mode),
 		  const char *descr)
 
 {
   struct cmd_list_element *c;
   struct dump_context *d;
 
-  c = add_cmd (name, all_commands, NULL, descr, &dump_cmdlist);
+  c = add_cmd (name, all_commands, descr, &dump_cmdlist);
   c->completer =  filename_completer;
   d = XNEW (struct dump_context);
   d->func = func;
@@ -406,7 +367,7 @@ add_dump_command (const char *name,
   set_cmd_context (c, d);
   c->func = call_dump_func;
 
-  c = add_cmd (name, all_commands, NULL, descr, &append_cmdlist);
+  c = add_cmd (name, all_commands, descr, &append_cmdlist);
   c->completer =  filename_completer;
   d = XNEW (struct dump_context);
   d->func = func;
@@ -446,8 +407,6 @@ restore_section_callback (bfd *ibfd, ase
   bfd_vma sec_end    = sec_start + size;
   bfd_size_type sec_offset = 0;
   bfd_size_type sec_load_count = size;
-  struct cleanup *old_chain;
-  gdb_byte *buf;
   int ret;
 
   /* Ignore non-loadable sections, eg. from elf files.  */
@@ -475,9 +434,8 @@ restore_section_callback (bfd *ibfd, ase
     sec_load_count -= sec_end - data->load_end;
 
   /* Get the data.  */
-  buf = (gdb_byte *) xmalloc (size);
-  old_chain = make_cleanup (xfree, buf);
-  if (!bfd_get_section_contents (ibfd, isec, buf, 0, size))
+  gdb::byte_vector buf (size);
+  if (!bfd_get_section_contents (ibfd, isec, buf.data (), 0, size))
     error (_("Failed to read bfd file %s: '%s'."), bfd_get_filename (ibfd), 
 	   bfd_errmsg (bfd_get_error ()));
 
@@ -499,24 +457,21 @@ restore_section_callback (bfd *ibfd, ase
 
   /* Write the data.  */
   ret = target_write_memory (sec_start + sec_offset + data->load_offset, 
-			     buf + sec_offset, sec_load_count);
+			     &buf[sec_offset], sec_load_count);
   if (ret != 0)
     warning (_("restore: memory write failed (%s)."), safe_strerror (ret));
-  do_cleanups (old_chain);
-  return;
 }
 
 static void
 restore_binary_file (const char *filename, struct callback_data *data)
 {
-  struct cleanup *cleanup = make_cleanup (null_cleanup, NULL);
-  FILE *file = fopen_with_cleanup (filename, FOPEN_RB);
+  gdb_file_up file = gdb_fopen_cloexec (filename, FOPEN_RB);
   long len;
 
   /* Get the file size for reading.  */
-  if (fseek (file, 0, SEEK_END) == 0)
+  if (fseek (file.get (), 0, SEEK_END) == 0)
     {
-      len = ftell (file);
+      len = ftell (file.get ());
       if (len < 0)
 	perror_with_name (filename);
     }
@@ -541,30 +496,26 @@ restore_binary_file (const char *filenam
      (unsigned long) (data->load_start + data->load_offset + len));
 
   /* Now set the file pos to the requested load start pos.  */
-  if (fseek (file, data->load_start, SEEK_SET) != 0)
+  if (fseek (file.get (), data->load_start, SEEK_SET) != 0)
     perror_with_name (filename);
 
   /* Now allocate a buffer and read the file contents.  */
-  std::unique_ptr<gdb_byte[]> buf (new gdb_byte[len]);
-  if (fread (buf.get (), 1, len, file) != len)
+  gdb::byte_vector buf (len);
+  if (fread (buf.data (), 1, len, file.get ()) != len)
     perror_with_name (filename);
 
   /* Now write the buffer into target memory.  */
   len = target_write_memory (data->load_start + data->load_offset,
-			     buf.get (), len);
+			     buf.data (), len);
   if (len != 0)
     warning (_("restore: memory write failed (%s)."), safe_strerror (len));
-  do_cleanups (cleanup);
 }
 
 static void
-restore_command (char *args_in, int from_tty)
+restore_command (const char *args, int from_tty)
 {
-  char *filename;
   struct callback_data data;
-  bfd *ibfd;
   int binary_flag = 0;
-  const char *args = args_in;
 
   if (!target_has_execution)
     noprocess ();
@@ -574,7 +525,7 @@ restore_command (char *args_in, int from
   data.load_end    = 0;
 
   /* Parse the input arguments.  First is filename (required).  */
-  filename = scan_filename_with_cleanup (&args, NULL);
+  gdb::unique_xmalloc_ptr<char> filename = scan_filename (&args, NULL);
   if (args != NULL && *args != '\0')
     {
       static const char binary_string[] = "binary";
@@ -584,18 +535,18 @@ restore_command (char *args_in, int from
 	{
 	  binary_flag = 1;
 	  args += strlen (binary_string);
-	  args = skip_spaces_const (args);
+	  args = skip_spaces (args);
 	}
       /* Parse offset (optional).  */
       if (args != NULL && *args != '\0')
 	data.load_offset = binary_flag ?
-	  parse_and_eval_address (scan_expression_with_cleanup (&args, NULL)) :
-	  parse_and_eval_long (scan_expression_with_cleanup (&args, NULL));
+	  parse_and_eval_address (scan_expression (&args, NULL).get ()) :
+	  parse_and_eval_long (scan_expression (&args, NULL).get ());
       if (args != NULL && *args != '\0')
 	{
 	  /* Parse start address (optional).  */
 	  data.load_start = 
-	    parse_and_eval_long (scan_expression_with_cleanup (&args, NULL));
+	    parse_and_eval_long (scan_expression (&args, NULL).get ());
 	  if (args != NULL && *args != '\0')
 	    {
 	      /* Parse end address (optional).  */
@@ -608,18 +559,18 @@ restore_command (char *args_in, int from
 
   if (info_verbose)
     printf_filtered ("Restore file %s offset 0x%lx start 0x%lx end 0x%lx\n",
-		     filename, (unsigned long) data.load_offset, 
+		     filename.get (), (unsigned long) data.load_offset,
 		     (unsigned long) data.load_start, 
 		     (unsigned long) data.load_end);
 
   if (binary_flag)
     {
-      restore_binary_file (filename, &data);
+      restore_binary_file (filename.get (), &data);
     }
   else
     {
       /* Open the file for loading.  */
-      gdb_bfd_ref_ptr ibfd (bfd_openr_or_error (filename, NULL));
+      gdb_bfd_ref_ptr ibfd (bfd_openr_or_error (filename.get (), NULL));
 
       /* Process the sections.  */
       bfd_map_over_sections (ibfd.get (), restore_section_callback, &data);
@@ -627,50 +578,48 @@ restore_command (char *args_in, int from
 }
 
 static void
-srec_dump_command (char *cmd, int from_tty)
+srec_dump_command (const char *cmd, int from_tty)
 {
   printf_unfiltered (_("\"dump srec\" must be followed by a subcommand.\n"));
   help_list (srec_cmdlist, "dump srec ", all_commands, gdb_stdout);
 }
 
 static void
-ihex_dump_command (char *cmd, int from_tty)
+ihex_dump_command (const char *cmd, int from_tty)
 {
   printf_unfiltered (_("\"dump ihex\" must be followed by a subcommand.\n"));
   help_list (ihex_cmdlist, "dump ihex ", all_commands, gdb_stdout);
 }
 
 static void
-verilog_dump_command (char *cmd, int from_tty)
+verilog_dump_command (const char *cmd, int from_tty)
 {
   printf_unfiltered (_("\"dump verilog\" must be followed by a subcommand.\n"));
   help_list (verilog_cmdlist, "dump verilog ", all_commands, gdb_stdout);
 }
 
 static void
-tekhex_dump_command (char *cmd, int from_tty)
+tekhex_dump_command (const char *cmd, int from_tty)
 {
   printf_unfiltered (_("\"dump tekhex\" must be followed by a subcommand.\n"));
   help_list (tekhex_cmdlist, "dump tekhex ", all_commands, gdb_stdout);
 }
 
 static void
-binary_dump_command (char *cmd, int from_tty)
+binary_dump_command (const char *cmd, int from_tty)
 {
   printf_unfiltered (_("\"dump binary\" must be followed by a subcommand.\n"));
   help_list (binary_dump_cmdlist, "dump binary ", all_commands, gdb_stdout);
 }
 
 static void
-binary_append_command (char *cmd, int from_tty)
+binary_append_command (const char *cmd, int from_tty)
 {
   printf_unfiltered (_("\"append binary\" must be followed by a subcommand.\n"));
   help_list (binary_append_cmdlist, "append binary ", all_commands,
 	     gdb_stdout);
 }
 
-extern initialize_file_ftype _initialize_cli_dump; /* -Wmissing-prototypes */
-
 void
 _initialize_cli_dump (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-interp.c ./gdb/cli/cli-interp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-interp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli/cli-interp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* CLI Definitions for GDB, the GNU debugger.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -80,7 +80,7 @@ as_cli_interp (struct interp *interp)
 
 /* Longjmp-safe wrapper for "execute_command".  */
 static struct gdb_exception safe_execute_command (struct ui_out *uiout,
-						  char *command, 
+						  const char *command, 
 						  int from_tty);
 
 /* See cli-interp.h.
@@ -332,11 +332,6 @@ cli_interp::exec (const char *command_st
   struct ui_file *old_stream;
   struct gdb_exception result;
 
-  /* FIXME: cagney/2003-02-01: Need to const char *propogate
-     safe_execute_command.  */
-  char *str = (char *) alloca (strlen (command_str) + 1);
-  strcpy (str, command_str);
-
   /* gdb_stdout could change between the time cli_uiout was
      initialized and now.  Since we're probably using a different
      interpreter which has a new ui_file for gdb_stdout, use that one
@@ -345,7 +340,7 @@ cli_interp::exec (const char *command_st
      It is important that it gets reset everytime, since the user
      could set gdb to use a different interpreter.  */
   old_stream = cli->cli_uiout->set_stream (gdb_stdout);
-  result = safe_execute_command (cli->cli_uiout, str, 1);
+  result = safe_execute_command (cli->cli_uiout, command_str, 1);
   cli->cli_uiout->set_stream (old_stream);
   return result;
 }
@@ -357,7 +352,8 @@ cli_interp_base::supports_command_editin
 }
 
 static struct gdb_exception
-safe_execute_command (struct ui_out *command_uiout, char *command, int from_tty)
+safe_execute_command (struct ui_out *command_uiout, const char *command,
+		      int from_tty)
 {
   struct gdb_exception e = exception_none;
   struct ui_out *saved_uiout;
@@ -458,7 +454,6 @@ cli_interp_factory (const char *name)
 }
 
 /* Standard gdb initialization hook.  */
-extern initialize_file_ftype _initialize_cli_interp; /* -Wmissing-prototypes */
 
 void
 _initialize_cli_interp (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-interp.h ./gdb/cli/cli-interp.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-interp.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli/cli-interp.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* CLI Definitions for GDB, the GNU debugger.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-logging.c ./gdb/cli/cli-logging.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-logging.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli/cli-logging.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Command-line output logging for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -44,7 +44,8 @@ maybe_warn_already_logging ()
 }
 
 static void
-set_logging_overwrite (char *args, int from_tty, struct cmd_list_element *c)
+set_logging_overwrite (const char *args,
+		       int from_tty, struct cmd_list_element *c)
 {
   maybe_warn_already_logging ();
 }
@@ -63,7 +64,8 @@ show_logging_overwrite (struct ui_file *
 static int logging_redirect;
 
 static void
-set_logging_redirect (char *args, int from_tty, struct cmd_list_element *c)
+set_logging_redirect (const char *args,
+		      int from_tty, struct cmd_list_element *c)
 {
   maybe_warn_already_logging ();
 }
@@ -146,9 +148,9 @@ handle_redirections (int from_tty)
 }
 
 static void
-set_logging_on (char *args, int from_tty)
+set_logging_on (const char *args, int from_tty)
 {
-  char *rest = args;
+  const char *rest = args;
 
   if (rest && *rest)
     {
@@ -159,7 +161,7 @@ set_logging_on (char *args, int from_tty
 }
 
 static void 
-set_logging_off (char *args, int from_tty)
+set_logging_off (const char *args, int from_tty)
 {
   if (saved_filename == NULL)
     return;
@@ -172,7 +174,7 @@ set_logging_off (char *args, int from_tt
 }
 
 static void
-set_logging_command (char *args, int from_tty)
+set_logging_command (const char *args, int from_tty)
 {
   printf_unfiltered (_("\"set logging\" lets you log output to a file.\n"
 		       "Usage: set logging on [FILENAME]\n"
@@ -183,7 +185,7 @@ set_logging_command (char *args, int fro
 }
 
 static void
-show_logging_command (char *args, int from_tty)
+show_logging_command (const char *args, int from_tty)
 {
   if (saved_filename)
     printf_unfiltered (_("Currently logging to \"%s\".\n"), saved_filename);
@@ -203,9 +205,6 @@ show_logging_command (char *args, int fr
     printf_unfiltered (_("Output will be logged and displayed.\n"));
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_cli_logging;
-
 void
 _initialize_cli_logging (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-script.c ./gdb/cli/cli-script.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-script.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli/cli-script.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB CLI command scripting.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -147,7 +147,8 @@ build_command_line (enum command_control
 {
   struct command_line *cmd;
 
-  if (args == NULL && (type == if_control || type == while_control))
+  if ((args == NULL || *args == '\0')
+      && (type == if_control || type == while_control))
     error (_("if/while commands require arguments."));
   gdb_assert (args != NULL);
 
@@ -339,23 +340,36 @@ print_command_lines (struct ui_out *uiou
 
 /* Handle pre-post hooks.  */
 
-static void
-clear_hook_in_cleanup (void *data)
+class scoped_restore_hook_in
 {
-  struct cmd_list_element *c = (struct cmd_list_element *) data;
+public:
 
-  c->hook_in = 0; /* Allow hook to work again once it is complete.  */
-}
+  scoped_restore_hook_in (struct cmd_list_element *c)
+    : m_cmd (c)
+  {
+  }
+
+  ~scoped_restore_hook_in ()
+  {
+    m_cmd->hook_in = 0;
+  }
+
+  scoped_restore_hook_in (const scoped_restore_hook_in &) = delete;
+  scoped_restore_hook_in &operator= (const scoped_restore_hook_in &) = delete;
+
+private:
+
+  struct cmd_list_element *m_cmd;
+};
 
 void
 execute_cmd_pre_hook (struct cmd_list_element *c)
 {
   if ((c->hook_pre) && (!c->hook_in))
     {
-      struct cleanup *cleanups = make_cleanup (clear_hook_in_cleanup, c);
+      scoped_restore_hook_in restore_hook (c);
       c->hook_in = 1; /* Prevent recursive hooking.  */
-      execute_user_command (c->hook_pre, (char *) 0);
-      do_cleanups (cleanups);
+      execute_user_command (c->hook_pre, nullptr);
     }
 }
 
@@ -364,34 +378,18 @@ execute_cmd_post_hook (struct cmd_list_e
 {
   if ((c->hook_post) && (!c->hook_in))
     {
-      struct cleanup *cleanups = make_cleanup (clear_hook_in_cleanup, c);
-
+      scoped_restore_hook_in restore_hook (c);
       c->hook_in = 1; /* Prevent recursive hooking.  */
-      execute_user_command (c->hook_post, (char *) 0);
-      do_cleanups (cleanups);
+      execute_user_command (c->hook_post, nullptr);
     }
 }
 
-/* Execute the command in CMD.  */
-static void
-do_restore_user_call_depth (void * call_depth)
-{	
-  int *depth = (int *) call_depth;
-
-  (*depth)--;
-  if ((*depth) == 0)
-    in_user_command = 0;
-}
-
-
 void
-execute_user_command (struct cmd_list_element *c, char *args)
+execute_user_command (struct cmd_list_element *c, const char *args)
 {
   struct ui *ui = current_ui;
   struct command_line *cmdlines;
-  struct cleanup *old_chain;
   enum command_control_type ret;
-  static int user_call_depth = 0;
   extern unsigned int max_user_call_depth;
 
   cmdlines = c->user_commands;
@@ -401,23 +399,18 @@ execute_user_command (struct cmd_list_el
 
   scoped_user_args_level push_user_args (args);
 
-  if (++user_call_depth > max_user_call_depth)
+  if (user_args_stack.size () > max_user_call_depth)
     error (_("Max user call depth exceeded -- command aborted."));
 
-  old_chain = make_cleanup (do_restore_user_call_depth, &user_call_depth);
-
   /* Set the instream to 0, indicating execution of a
      user-defined function.  */
-  make_cleanup (do_restore_instream_cleanup, ui->instream);
-  ui->instream = NULL;
-
-  /* Also set the global in_user_command, so that NULL instream is
-     not confused with Insight.  */
-  in_user_command = 1;
+  scoped_restore restore_instream
+    = make_scoped_restore (&ui->instream, nullptr);
 
   scoped_restore save_async = make_scoped_restore (&current_ui->async, 0);
 
-  command_nest_depth++;
+  scoped_restore save_nesting
+    = make_scoped_restore (&command_nest_depth, command_nest_depth + 1);
   while (cmdlines)
     {
       ret = execute_control_command (cmdlines);
@@ -428,8 +421,6 @@ execute_user_command (struct cmd_list_el
 	}
       cmdlines = cmdlines->next;
     }
-  command_nest_depth--;
-  do_cleanups (old_chain);
 }
 
 /* This function is called every time GDB prints a prompt.  It ensures
@@ -472,8 +463,10 @@ print_command_trace (const char *cmd)
   printf_filtered ("%s\n", cmd);
 }
 
-enum command_control_type
-execute_control_command (struct command_line *cmd)
+/* Helper for execute_control_command.  */
+
+static enum command_control_type
+execute_control_command_1 (struct command_line *cmd)
 {
   struct command_line *current;
   struct value *val;
@@ -491,7 +484,7 @@ execute_control_command (struct command_
       {
 	/* A simple command, execute it and return.  */
 	std::string new_line = insert_user_defined_cmd_args (cmd->line);
-	execute_command (&new_line[0], 0);
+	execute_command (new_line.c_str (), 0);
 	ret = cmd->control_type;
 	break;
       }
@@ -548,9 +541,9 @@ execute_control_command (struct command_
 	    current = *cmd->body_list;
 	    while (current)
 	      {
-		command_nest_depth++;
-		ret = execute_control_command (current);
-		command_nest_depth--;
+		scoped_restore save_nesting
+		  = make_scoped_restore (&command_nest_depth, command_nest_depth + 1);
+		ret = execute_control_command_1 (current);
 
 		/* If we got an error, or a "break" command, then stop
 		   looping.  */
@@ -607,9 +600,9 @@ execute_control_command (struct command_
 	/* Execute commands in the given arm.  */
 	while (current)
 	  {
-	    command_nest_depth++;
-	    ret = execute_control_command (current);
-	    command_nest_depth--;
+	    scoped_restore save_nesting
+	      = make_scoped_restore (&command_nest_depth, command_nest_depth + 1);
+	    ret = execute_control_command_1 (current);
 
 	    /* If we got an error, get out.  */
 	    if (ret != simple_control)
@@ -653,6 +646,18 @@ execute_control_command (struct command_
   return ret;
 }
 
+enum command_control_type
+execute_control_command (struct command_line *cmd)
+{
+  /* Make sure we use the console uiout.  It's possible that we are executing
+     breakpoint commands while running the MI interpreter.  */
+  interp *console = interp_lookup (current_ui, INTERP_CONSOLE);
+  scoped_restore save_uiout
+    = make_scoped_restore (&current_uiout, interp_ui_out (console));
+
+  return execute_control_command_1 (cmd);
+}
+
 /* Like execute_control_command, but first set
    suppress_next_print_command_trace.  */
 
@@ -668,7 +673,7 @@ execute_control_command_untraced (struct
    loop condition is nonzero.  */
 
 static void
-while_command (char *arg, int from_tty)
+while_command (const char *arg, int from_tty)
 {
   control_level = 1;
   command_line_up command = get_command_line (while_control, arg);
@@ -685,7 +690,7 @@ while_command (char *arg, int from_tty)
    on the value of the if conditional.  */
 
 static void
-if_command (char *arg, int from_tty)
+if_command (const char *arg, int from_tty)
 {
   control_level = 1;
   command_line_up command = get_command_line (if_control, arg);
@@ -806,7 +811,7 @@ user_args::insert_args (const char *line
 
       if (p[4] == 'c')
 	{
-	  new_line += gdb::to_string (m_args.size ());
+	  new_line += std::to_string (m_args.size ());
 	  line = p + 5;
 	}
       else
@@ -908,7 +913,7 @@ line_first_arg (const char *p)
 {
   const char *first_arg = p + find_command_name_length (p);
 
-  return skip_spaces_const (first_arg); 
+  return skip_spaces (first_arg); 
 }
 
 /* Process one input line.  If the command is an "end", return such an
@@ -952,6 +957,8 @@ process_next_line (char *p, struct comma
       const char *cmd_name = p;
       struct cmd_list_element *cmd
 	= lookup_cmd_1 (&cmd_name, cmdlist, NULL, 1);
+      cmd_name = skip_spaces (cmd_name);
+      bool inline_cmd = *cmd_name != '\0';
 
       /* If commands are parsed, we skip initial spaces.  Otherwise,
 	 which is the case for Python commands and documentation
@@ -997,21 +1004,20 @@ process_next_line (char *p, struct comma
 	{
 	  *command = build_command_line (commands_control, line_first_arg (p));
 	}
-      else if (command_name_equals (cmd, "python"))
+      else if (command_name_equals (cmd, "python") && !inline_cmd)
 	{
 	  /* Note that we ignore the inline "python command" form
 	     here.  */
 	  *command = build_command_line (python_control, "");
 	}
-      else if (command_name_equals (cmd, "compile"))
+      else if (command_name_equals (cmd, "compile") && !inline_cmd)
 	{
 	  /* Note that we ignore the inline "compile command" form
 	     here.  */
 	  *command = build_command_line (compile_control, "");
 	  (*command)->control_u.compile.scope = COMPILE_I_INVALID_SCOPE;
 	}
-
-      else if (command_name_equals (cmd, "guile"))
+      else if (command_name_equals (cmd, "guile") && !inline_cmd)
 	{
 	  /* Note that we ignore the inline "guile command" form here.  */
 	  *command = build_command_line (guile_control, "");
@@ -1177,12 +1183,6 @@ recurse_read_control_structure (char * (
   return ret;
 }
 
-static void
-restore_interp (void *arg)
-{
-  interp_set_temp (interp_name ((struct interp *)arg));
-}
-
 /* Read lines from the input stream and accumulate them in a chain of
    struct command_line's, which is then returned.  For input from a
    terminal, the special command "end" is used to mark the end of the
@@ -1222,12 +1222,10 @@ read_command_lines (char *prompt_arg, in
 				 validator, closure);
   else
     {
-      struct interp *old_interp = interp_set_temp (INTERP_CONSOLE);
-      struct cleanup *old_chain = make_cleanup (restore_interp, old_interp);
+      scoped_restore_interp interp_restorer (INTERP_CONSOLE);
 
       head = read_command_lines_1 (read_next_line, parse_commands,
 				   validator, closure);
-      do_cleanups (old_chain);
     }
 
   if (from_tty && input_interactive_p (current_ui)
@@ -1368,10 +1366,10 @@ copy_command_lines (struct command_line 
    prefix.  */
 
 static struct cmd_list_element **
-validate_comname (char **comname)
+validate_comname (const char **comname)
 {
   struct cmd_list_element **list = &cmdlist;
-  char *p, *last_word;
+  const char *p, *last_word;
 
   if (*comname == 0)
     error_no_arg (_("name of command to define"));
@@ -1388,19 +1386,16 @@ validate_comname (char **comname)
   if (last_word != *comname)
     {
       struct cmd_list_element *c;
-      char saved_char;
-      const char *tem = *comname;
 
       /* Separate the prefix and the command.  */
-      saved_char = last_word[-1];
-      last_word[-1] = '\0';
+      std::string prefix (*comname, last_word - 1);
+      const char *tem = prefix.c_str ();
 
       c = lookup_cmd (&tem, cmdlist, "", 0, 1);
       if (c->prefixlist == NULL)
-	error (_("\"%s\" is not a prefix command."), *comname);
+	error (_("\"%s\" is not a prefix command."), prefix.c_str ());
 
       list = c->prefixlist;
-      last_word[-1] = saved_char;
       *comname = last_word;
     }
 
@@ -1417,12 +1412,12 @@ validate_comname (char **comname)
 
 /* This is just a placeholder in the command data structures.  */
 static void
-user_defined_command (char *ignore, int from_tty)
+user_defined_command (const char *ignore, int from_tty)
 {
 }
 
 static void
-define_command (char *comname, int from_tty)
+define_command (const char *comname, int from_tty)
 {
 #define MAX_TMPBUF 128   
   enum cmd_hook_type
@@ -1432,8 +1427,7 @@ define_command (char *comname, int from_
       CMD_POST_HOOK
     };
   struct cmd_list_element *c, *newc, *hookc = 0, **list;
-  char *tem, *comfull;
-  const char *tem_c;
+  const char *tem, *comfull;
   char tmpbuf[MAX_TMPBUF];
   int  hook_type      = CMD_NO_HOOK;
   int  hook_name_size = 0;
@@ -1447,8 +1441,8 @@ define_command (char *comname, int from_
   list = validate_comname (&comname);
 
   /* Look it up, and verify that we got an exact match.  */
-  tem_c = comname;
-  c = lookup_cmd (&tem_c, *list, "", -1, 1);
+  tem = comname;
+  c = lookup_cmd (&tem, *list, "", -1, 1);
   if (c && strcmp (comname, c->name) != 0)
     c = 0;
 
@@ -1482,8 +1476,8 @@ define_command (char *comname, int from_
   if (hook_type != CMD_NO_HOOK)
     {
       /* Look up cmd it hooks, and verify that we got an exact match.  */
-      tem_c = comname + hook_name_size;
-      hookc = lookup_cmd (&tem_c, *list, "", -1, 0);
+      tem = comname + hook_name_size;
+      hookc = lookup_cmd (&tem, *list, "", -1, 0);
       if (hookc && strcmp (comname + hook_name_size, hookc->name) != 0)
 	hookc = 0;
       if (!hookc)
@@ -1533,11 +1527,11 @@ define_command (char *comname, int from_
 }
 
 static void
-document_command (char *comname, int from_tty)
+document_command (const char *comname, int from_tty)
 {
   struct cmd_list_element *c, **list;
   const char *tem;
-  char *comfull;
+  const char *comfull;
   char tmpbuf[128];
 
   comfull = comname;
@@ -1578,58 +1572,34 @@ document_command (char *comname, int fro
   }
 }
 
-struct source_cleanup_lines_args
-{
-  int old_line;
-  const char *old_file;
-};
-
-static void
-source_cleanup_lines (void *args)
-{
-  struct source_cleanup_lines_args *p =
-    (struct source_cleanup_lines_args *) args;
-
-  source_line_number = p->old_line;
-  source_file_name = p->old_file;
-}
-
 /* Used to implement source_command.  */
 
 void
 script_from_file (FILE *stream, const char *file)
 {
-  struct cleanup *old_cleanups;
-  struct source_cleanup_lines_args old_lines;
-
   if (stream == NULL)
     internal_error (__FILE__, __LINE__, _("called with NULL file pointer!"));
 
-  old_lines.old_line = source_line_number;
-  old_lines.old_file = source_file_name;
-  old_cleanups = make_cleanup (source_cleanup_lines, &old_lines);
-  source_line_number = 0;
-  source_file_name = file;
+  scoped_restore restore_line_number
+    = make_scoped_restore (&source_line_number, 0);
+  scoped_restore resotre_file
+    = make_scoped_restore (&source_file_name, file);
 
-  {
-    scoped_restore save_async = make_scoped_restore (&current_ui->async, 0);
-
-    TRY
-      {
-	read_command_file (stream);
-      }
-    CATCH (e, RETURN_MASK_ERROR)
-      {
-	/* Re-throw the error, but with the file name information
-	   prepended.  */
-	throw_error (e.error,
-		     _("%s:%d: Error in sourced command file:\n%s"),
-		     source_file_name, source_line_number, e.message);
-      }
-    END_CATCH
-  }
+  scoped_restore save_async = make_scoped_restore (&current_ui->async, 0);
 
-  do_cleanups (old_cleanups);
+  TRY
+    {
+      read_command_file (stream);
+    }
+  CATCH (e, RETURN_MASK_ERROR)
+    {
+      /* Re-throw the error, but with the file name information
+	 prepended.  */
+      throw_error (e.error,
+		   _("%s:%d: Error in sourced command file:\n%s"),
+		   source_file_name, source_line_number, e.message);
+    }
+  END_CATCH
 }
 
 /* Print the definition of user command C to STREAM.  Or, if C is a
@@ -1661,10 +1631,6 @@ show_user_1 (struct cmd_list_element *c,
   fputs_filtered ("\n", stream);
 }
 
-
-
-initialize_file_ftype _initialize_cli_script;
-
 void
 _initialize_cli_script (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-script.h ./gdb/cli/cli-script.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-script.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli/cli-script.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Header file for GDB CLI command implementation library.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 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
@@ -18,9 +18,83 @@
 #define CLI_SCRIPT_H 1
 
 struct ui_file;
-struct command_line;
 struct cmd_list_element;
 
+/* * Control types for commands.  */
+
+enum misc_command_type
+{
+  ok_command,
+  end_command,
+  else_command,
+  nop_command
+};
+
+enum command_control_type
+{
+  simple_control,
+  break_control,
+  continue_control,
+  while_control,
+  if_control,
+  commands_control,
+  python_control,
+  compile_control,
+  guile_control,
+  while_stepping_control,
+  invalid_control
+};
+
+/* * Structure for saved commands lines (for breakpoints, defined
+   commands, etc).  */
+
+struct command_line
+{
+  struct command_line *next;
+  char *line;
+  enum command_control_type control_type;
+  union
+    {
+      struct
+	{
+	  enum compile_i_scope_types scope;
+	  void *scope_data;
+	}
+      compile;
+    }
+  control_u;
+  /* * The number of elements in body_list.  */
+  int body_count;
+  /* * For composite commands, the nested lists of commands.  For
+     example, for "if" command this will contain the then branch and
+     the else branch, if that is available.  */
+  struct command_line **body_list;
+};
+
+extern void free_command_lines (struct command_line **);
+
+/* A deleter for command_line that calls free_command_lines.  */
+
+struct command_lines_deleter
+{
+  void operator() (command_line *cmd_lines) const
+  {
+    free_command_lines (&cmd_lines);
+  }
+};
+
+/* A unique pointer to a command_line.  */
+
+typedef std::unique_ptr<command_line, command_lines_deleter> command_line_up;
+
+extern command_line_up read_command_lines (char *, int, int,
+					   void (*)(char *, void *),
+					   void *);
+extern command_line_up read_command_lines_1 (char * (*) (void), int,
+					     void (*)(char *, void *),
+					     void *);
+
+
 /* Exported to cli/cli-cmds.c */
 
 extern void script_from_file (FILE *stream, const char *file);
@@ -48,7 +122,7 @@ extern command_line_up copy_command_line
 
 /* Exported to gdb/infrun.c */
 
-extern void execute_user_command (struct cmd_list_element *c, char *args);
+extern void execute_user_command (struct cmd_list_element *c, const char *args);
 
 /* If we're in a user-defined command, replace any $argc/$argN
    reference found in LINE with the arguments that were passed to the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-setshow.c ./gdb/cli/cli-setshow.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-setshow.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli/cli-setshow.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Handle set and show GDB commands.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 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
@@ -134,7 +134,7 @@ is_unlimited_literal (const char *arg)
 {
   size_t len = sizeof ("unlimited") - 1;
 
-  arg = skip_spaces_const (arg);
+  arg = skip_spaces (arg);
 
   return (strncmp (arg, "unlimited", len) == 0
 	  && (isspace (arg[len]) || arg[len] == '\0'));
@@ -367,24 +367,16 @@ do_set_command (const char *arg, int fro
 	   message.  */
 	if (arg == NULL)
 	  {
-	    char *msg;
-	    int msg_len = 0;
-
-	    for (i = 0; c->enums[i]; i++)
-	      msg_len += strlen (c->enums[i]) + 2;
-
-	    msg = (char *) xmalloc (msg_len);
-	    *msg = '\0';
-	    make_cleanup (xfree, msg);
+	    std::string msg;
 
 	    for (i = 0; c->enums[i]; i++)
 	      {
 		if (i != 0)
-		  strcat (msg, ", ");
-		strcat (msg, c->enums[i]);
+		  msg += ", ";
+		msg += c->enums[i];
 	      }
 	    error (_("Requires an argument. Valid arguments are %s."), 
-		   msg);
+		   msg.c_str ());
 	  }
 
 	p = strchr (arg, ' ');
@@ -664,32 +656,27 @@ do_show_command (const char *arg, int fr
 void
 cmd_show_list (struct cmd_list_element *list, int from_tty, const char *prefix)
 {
-  struct cleanup *showlist_chain;
   struct ui_out *uiout = current_uiout;
 
-  showlist_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "showlist");
+  ui_out_emit_tuple tuple_emitter (uiout, "showlist");
   for (; list != NULL; list = list->next)
     {
       /* If we find a prefix, run its list, prefixing our output by its
          prefix (with "show " skipped).  */
       if (list->prefixlist && !list->abbrev_flag)
 	{
-	  struct cleanup *optionlist_chain
-	    = make_cleanup_ui_out_tuple_begin_end (uiout, "optionlist");
+	  ui_out_emit_tuple optionlist_emitter (uiout, "optionlist");
 	  const char *new_prefix = strstr (list->prefixname, "show ") + 5;
 
 	  if (uiout->is_mi_like_p ())
 	    uiout->field_string ("prefix", new_prefix);
 	  cmd_show_list (*list->prefixlist, from_tty, new_prefix);
-	  /* Close the tuple.  */
-	  do_cleanups (optionlist_chain);
 	}
       else
 	{
 	  if (list->theclass != no_set_class)
 	    {
-	      struct cleanup *option_chain
-		= make_cleanup_ui_out_tuple_begin_end (uiout, "option");
+	      ui_out_emit_tuple option_emitter (uiout, "option");
 
 	      uiout->text (prefix);
 	      uiout->field_string ("name", list->name);
@@ -698,12 +685,8 @@ cmd_show_list (struct cmd_list_element *
 		do_show_command ((char *) NULL, from_tty, list);
 	      else
 		cmd_func (list, NULL, from_tty);
-	      /* Close the tuple.  */
-	      do_cleanups (option_chain);
 	    }
 	}
     }
-  /* Close the tuple.  */
-  do_cleanups (showlist_chain);
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-setshow.h ./gdb/cli/cli-setshow.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-setshow.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli/cli-setshow.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Header file for GDB CLI set and show commands implementation.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-utils.c ./gdb/cli/cli-utils.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-utils.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli/cli-utils.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* CLI utilities.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -30,6 +30,13 @@ get_number_trailer (const char **pp, int
 {
   int retval = 0;	/* default */
   const char *p = *pp;
+  bool negative = false;
+
+  if (*p == '-')
+    {
+      ++p;
+      negative = true;
+    }
 
   if (*p == '$')
     {
@@ -70,11 +77,10 @@ get_number_trailer (const char **pp, int
     }
   else
     {
-      if (*p == '-')
-	++p;
+      const char *p1 = p;
       while (*p >= '0' && *p <= '9')
 	++p;
-      if (p == *pp)
+      if (p == p1)
 	/* There is no number here.  (e.g. "cond a == b").  */
 	{
 	  /* Skip non-numeric token.  */
@@ -84,7 +90,7 @@ get_number_trailer (const char **pp, int
 	  retval = 0;
 	}
       else
-	retval = atoi (*pp);
+	retval = atoi (p1);
     }
   if (!(isspace (*p) || *p == '\0' || *p == trailer))
     {
@@ -93,15 +99,15 @@ get_number_trailer (const char **pp, int
 	++p;
       retval = 0;
     }
-  p = skip_spaces_const (p);
+  p = skip_spaces (p);
   *pp = p;
-  return retval;
+  return negative ? -retval : retval;
 }
 
 /* See documentation in cli-utils.h.  */
 
 int
-get_number_const (const char **pp)
+get_number (const char **pp)
 {
   return get_number_trailer (pp, '\0');
 }
@@ -172,8 +178,8 @@ number_or_range_parser::get_number ()
 	     and also remember the end of the final token.  */
 
 	  temp = &m_end_ptr;
-	  m_end_ptr = skip_spaces_const (m_cur_tok + 1);
-	  m_end_value = get_number_const (temp);
+	  m_end_ptr = skip_spaces (m_cur_tok + 1);
+	  m_end_value = ::get_number (temp);
 	  if (m_end_value < m_last_retval)
 	    {
 	      error (_("inverted range"));
@@ -249,38 +255,38 @@ remove_trailing_whitespace (const char *
 
 /* See documentation in cli-utils.h.  */
 
-char *
-extract_arg_const (const char **arg)
+std::string
+extract_arg (const char **arg)
 {
   const char *result;
 
   if (!*arg)
-    return NULL;
+    return std::string ();
 
   /* Find the start of the argument.  */
-  *arg = skip_spaces_const (*arg);
+  *arg = skip_spaces (*arg);
   if (!**arg)
-    return NULL;
+    return std::string ();
   result = *arg;
 
   /* Find the end of the argument.  */
-  *arg = skip_to_space_const (*arg + 1);
+  *arg = skip_to_space (*arg + 1);
 
   if (result == *arg)
-    return NULL;
+    return std::string ();
 
-  return savestring (result, *arg - result);
+  return std::string (result, *arg - result);
 }
 
 /* See documentation in cli-utils.h.  */
 
-char *
+std::string
 extract_arg (char **arg)
 {
   const char *arg_const = *arg;
-  char *result;
+  std::string result;
 
-  result = extract_arg_const (&arg_const);
+  result = extract_arg (&arg_const);
   *arg += arg_const - *arg;
   return result;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-utils.h ./gdb/cli/cli-utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli/cli-utils.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli/cli-utils.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* CLI utilities.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -33,9 +33,9 @@ extern int get_number_trailer (const cha
 
 /* Convenience.  Like get_number_trailer, but with no TRAILER.  */
 
-extern int get_number_const (const char **);
+extern int get_number (const char **);
 
-/* Like get_number_const, but takes a non-const "char **".  */
+/* Like the above, but takes a non-const "char **".  */
 
 extern int get_number (char **);
 
@@ -149,17 +149,14 @@ remove_trailing_whitespace (const char *
 }
 
 /* A helper function to extract an argument from *ARG.  An argument is
-   delimited by whitespace.  The return value is either NULL if no
-   argument was found, or an xmalloc'd string.  */
+   delimited by whitespace.  The return value is empty if no argument
+   was found.  */
 
-extern char *extract_arg (char **arg);
+extern std::string extract_arg (char **arg);
 
-/* A const-correct version of "extract_arg".
+/* A const-correct version of the above.  */
 
-   Since the returned value is xmalloc'd, it eventually needs to be
-   xfree'ed, which prevents us from making it const as well.  */
-
-extern char *extract_arg_const (const char **arg);
+extern std::string extract_arg (const char **arg);
 
 /* A helper function that looks for an argument at the start of a
    string.  The argument must also either be at the end of the string,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli-out.c ./gdb/cli-out.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli-out.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli-out.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Output generating routines for GDB CLI.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions.
    Written by Fernando Nasser for Cygnus.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli-out.h ./gdb/cli-out.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cli-out.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cli-out.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Output generating routines for GDB CLI.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/coff-pe-read.c ./gdb/coff-pe-read.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/coff-pe-read.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/coff-pe-read.c	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
    convert to internal format, for GDB. Used as a last resort if no
    debugging symbols recognized.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -698,10 +698,6 @@ show_debug_coff_pe_read (struct ui_file 
   fprintf_filtered (file, _("Coff PE read debugging is %s.\n"), value);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-
-void _initialize_coff_pe_read (void);
-
 /* Adds "Set/show debug coff_pe_read" commands.  */
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/coff-pe-read.h ./gdb/coff-pe-read.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/coff-pe-read.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/coff-pe-read.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Interface to coff-pe-read.c (portable-executable-specific symbol reader).
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/coffread.c ./gdb/coffread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/coffread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/coffread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Read coff symbol tables and convert to internal format, for GDB.
-   Copyright (C) 1987-2017 Free Software Foundation, Inc.
+   Copyright (C) 1987-2018 Free Software Foundation, Inc.
    Contributed by David D. Johnson, Brown University (ddj@cs.brown.edu).
 
    This file is part of GDB.
@@ -43,8 +43,6 @@
 #include "psymtab.h"
 #include "build-id.h"
 
-extern void _initialize_coffread (void);
-
 /* Key for COFF-associated data.  */
 
 static const struct objfile_data *coff_objfile_data_key;
@@ -394,7 +392,9 @@ coff_start_symtab (struct objfile *objfi
 		 NULL,
   /* The start address is irrelevant, since we set
      last_source_start_addr in coff_end_symtab.  */
-		 0);
+		 0,
+  /* Let buildsym.c deduce the language for this symtab.  */
+		 language_unknown);
   record_debugformat ("COFF");
 }
 
@@ -699,7 +699,8 @@ coff_symfile_read (struct objfile *objfi
 	}
     }
 
-  bfd_map_over_sections (abfd, coff_locate_sections, (void *) info);
+  if (!(objfile->flags & OBJF_READNEVER))
+    bfd_map_over_sections (abfd, coff_locate_sections, (void *) info);
 
   if (info->stabsects)
     {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/command.h ./gdb/command.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/command.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/command.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Header file for command creation.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 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
@@ -19,6 +19,9 @@
 #define COMMAND_H 1
 
 #include "gdb_vecs.h"
+#include "common/scoped_restore.h"
+
+struct completion_tracker;
 
 /* This file defines the public interface for any code wanting to
    create commands.  */
@@ -113,7 +116,7 @@ var_types;
 /* This structure records one command'd definition.  */
 struct cmd_list_element;
 
-typedef void cmd_cfunc_ftype (char *args, int from_tty);
+typedef void cmd_const_cfunc_ftype (const char *args, int from_tty);
 
 /* This structure specifies notifications to be suppressed by a cli
    command interpreter.  */
@@ -132,8 +135,16 @@ extern struct cli_suppress_notification 
 
 extern int valid_user_defined_cmd_name_p (const char *name);
 
+/* Const-correct variant of the above.  */
+
+extern struct cmd_list_element *add_cmd (const char *, enum command_class,
+					 cmd_const_cfunc_ftype *fun,
+					 const char *,
+					 struct cmd_list_element **);
+
+/* Like add_cmd, but no command function is specified.  */
+
 extern struct cmd_list_element *add_cmd (const char *, enum command_class,
-					 cmd_cfunc_ftype *fun,
 					 const char *,
 					 struct cmd_list_element **);
 
@@ -148,7 +159,7 @@ extern struct cmd_list_element *add_alia
 
 
 extern struct cmd_list_element *add_prefix_cmd (const char *, enum command_class,
-						cmd_cfunc_ftype *fun,
+						cmd_const_cfunc_ftype *fun,
 						const char *,
 						struct cmd_list_element **,
 						const char *, int,
@@ -156,40 +167,47 @@ extern struct cmd_list_element *add_pref
 
 extern struct cmd_list_element *add_abbrev_prefix_cmd (const char *,
 						       enum command_class,
-						       cmd_cfunc_ftype *fun,
+						       cmd_const_cfunc_ftype *fun,
 						       const char *,
 						       struct cmd_list_element
 						       **, const char *, int,
 						       struct cmd_list_element
 						       **);
 
-/* Set the commands corresponding callback.  */
-
-extern void set_cmd_cfunc (struct cmd_list_element *cmd,
-			   cmd_cfunc_ftype *cfunc);
-
-typedef void cmd_sfunc_ftype (char *args, int from_tty,
-			      struct cmd_list_element *c);
+typedef void cmd_const_sfunc_ftype (const char *args, int from_tty,
+				    struct cmd_list_element *c);
 extern void set_cmd_sfunc (struct cmd_list_element *cmd,
-			   cmd_sfunc_ftype *sfunc);
+			   cmd_const_sfunc_ftype *sfunc);
 
-typedef VEC (char_ptr) *completer_ftype (struct cmd_list_element *,
-					 const char *, const char *);
+/* A completion routine.  Add possible completions to tracker.
 
-typedef void completer_ftype_void (struct cmd_list_element *,
-				   const char *, const char *);
+   TEXT is the text beyond what was matched for the command itself
+   (leading whitespace is skipped).  It stops where we are supposed to
+   stop completing (rl_point) and is '\0' terminated.  WORD points in
+   the same buffer as TEXT, and completions should be returned
+   relative to this position.  For example, suppose TEXT is "foo" and
+   we want to complete to "foobar".  If WORD is "oo", return "oobar";
+   if WORD is "baz/foo", return "baz/foobar".  */
+typedef void completer_ftype (struct cmd_list_element *,
+			      completion_tracker &tracker,
+			      const char *text, const char *word);
+
+/* Same, but for set_cmd_completer_handle_brkchars.  */
+typedef void completer_handle_brkchars_ftype (struct cmd_list_element *,
+					      completion_tracker &tracker,
+					      const char *text, const char *word);
 
 extern void set_cmd_completer (struct cmd_list_element *, completer_ftype *);
 
 /* Set the completer_handle_brkchars callback.  */
 
 extern void set_cmd_completer_handle_brkchars (struct cmd_list_element *,
-					       completer_ftype_void *);
+					       completer_handle_brkchars_ftype *);
 
 /* HACK: cagney/2002-02-23: Code, mostly in tracepoints.c, grubs
    around in cmd objects to test the value of the commands sfunc().  */
 extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
-			 cmd_cfunc_ftype *cfun);
+			 cmd_const_cfunc_ftype *cfun);
 
 /* Each command object has a local context attached to it.  */
 extern void set_cmd_context (struct cmd_list_element *cmd,
@@ -230,7 +248,7 @@ extern int lookup_cmd_composition (const
 				   struct cmd_list_element **cmd);
 
 extern struct cmd_list_element *add_com (const char *, enum command_class,
-					 cmd_cfunc_ftype *fun,
+					 cmd_const_cfunc_ftype *fun,
 					 const char *);
 
 extern struct cmd_list_element *add_com_alias (const char *, const char *,
@@ -238,21 +256,23 @@ extern struct cmd_list_element *add_com_
 
 extern struct cmd_list_element *add_com_suppress_notification
 		       (const char *name, enum command_class theclass,
-			cmd_cfunc_ftype *fun, const char *doc,
+			cmd_const_cfunc_ftype *fun, const char *doc,
 			int *supress_notification);
 
 extern struct cmd_list_element *add_info (const char *,
-					  cmd_cfunc_ftype *fun,
+					  cmd_const_cfunc_ftype *fun,
 					  const char *);
 
 extern struct cmd_list_element *add_info_alias (const char *, const char *,
 						int);
 
-extern VEC (char_ptr) *complete_on_cmdlist (struct cmd_list_element *,
-					    const char *, const char *, int);
-
-extern VEC (char_ptr) *complete_on_enum (const char *const *enumlist,
-					 const char *, const char *);
+extern void complete_on_cmdlist (struct cmd_list_element *,
+				 completion_tracker &tracker,
+				 const char *, const char *, int);
+
+extern void complete_on_enum (completion_tracker &tracker,
+			      const char *const *enumlist,
+			      const char *, const char *);
 
 /* Functions that implement commands about CLI commands.  */
 
@@ -277,7 +297,7 @@ extern void add_setshow_enum_cmd (const 
 				  const char *set_doc,
 				  const char *show_doc,
 				  const char *help_doc,
-				  cmd_sfunc_ftype *set_func,
+				  cmd_const_sfunc_ftype *set_func,
 				  show_value_ftype *show_func,
 				  struct cmd_list_element **set_list,
 				  struct cmd_list_element **show_list);
@@ -288,7 +308,7 @@ extern void add_setshow_auto_boolean_cmd
 					  const char *set_doc,
 					  const char *show_doc,
 					  const char *help_doc,
-					  cmd_sfunc_ftype *set_func,
+					  cmd_const_sfunc_ftype *set_func,
 					  show_value_ftype *show_func,
 					  struct cmd_list_element **set_list,
 					  struct cmd_list_element **show_list);
@@ -298,7 +318,7 @@ extern void add_setshow_boolean_cmd (con
 				     int *var,
 				     const char *set_doc, const char *show_doc,
 				     const char *help_doc,
-				     cmd_sfunc_ftype *set_func,
+				     cmd_const_sfunc_ftype *set_func,
 				     show_value_ftype *show_func,
 				     struct cmd_list_element **set_list,
 				     struct cmd_list_element **show_list);
@@ -309,7 +329,7 @@ extern void add_setshow_filename_cmd (co
 				      const char *set_doc,
 				      const char *show_doc,
 				      const char *help_doc,
-				      cmd_sfunc_ftype *set_func,
+				      cmd_const_sfunc_ftype *set_func,
 				      show_value_ftype *show_func,
 				      struct cmd_list_element **set_list,
 				      struct cmd_list_element **show_list);
@@ -320,7 +340,7 @@ extern void add_setshow_string_cmd (cons
 				    const char *set_doc,
 				    const char *show_doc,
 				    const char *help_doc,
-				    cmd_sfunc_ftype *set_func,
+				    cmd_const_sfunc_ftype *set_func,
 				    show_value_ftype *show_func,
 				    struct cmd_list_element **set_list,
 				    struct cmd_list_element **show_list);
@@ -332,7 +352,7 @@ extern struct cmd_list_element *add_sets
 		       const char *set_doc,
 		       const char *show_doc,
 		       const char *help_doc,
-		       cmd_sfunc_ftype *set_func,
+		       cmd_const_sfunc_ftype *set_func,
 		       show_value_ftype *show_func,
 		       struct cmd_list_element **set_list,
 		       struct cmd_list_element **show_list);
@@ -343,7 +363,7 @@ extern void add_setshow_optional_filenam
 					       const char *set_doc,
 					       const char *show_doc,
 					       const char *help_doc,
-					       cmd_sfunc_ftype *set_func,
+					       cmd_const_sfunc_ftype *set_func,
 					       show_value_ftype *show_func,
 					       struct cmd_list_element **set_list,
 					       struct cmd_list_element **show_list);
@@ -354,7 +374,7 @@ extern void add_setshow_integer_cmd (con
 				     const char *set_doc,
 				     const char *show_doc,
 				     const char *help_doc,
-				     cmd_sfunc_ftype *set_func,
+				     cmd_const_sfunc_ftype *set_func,
 				     show_value_ftype *show_func,
 				     struct cmd_list_element **set_list,
 				     struct cmd_list_element **show_list);
@@ -365,7 +385,7 @@ extern void add_setshow_uinteger_cmd (co
 				      const char *set_doc,
 				      const char *show_doc,
 				      const char *help_doc,
-				      cmd_sfunc_ftype *set_func,
+				      cmd_const_sfunc_ftype *set_func,
 				      show_value_ftype *show_func,
 				      struct cmd_list_element **set_list,
 				      struct cmd_list_element **show_list);
@@ -376,7 +396,7 @@ extern void add_setshow_zinteger_cmd (co
 				      const char *set_doc,
 				      const char *show_doc,
 				      const char *help_doc,
-				      cmd_sfunc_ftype *set_func,
+				      cmd_const_sfunc_ftype *set_func,
 				      show_value_ftype *show_func,
 				      struct cmd_list_element **set_list,
 				      struct cmd_list_element **show_list);
@@ -387,7 +407,7 @@ extern void add_setshow_zuinteger_cmd (c
 				       const char *set_doc,
 				       const char *show_doc,
 				       const char *help_doc,
-				       cmd_sfunc_ftype *set_func,
+				       cmd_const_sfunc_ftype *set_func,
 				       show_value_ftype *show_func,
 				       struct cmd_list_element **set_list,
 				       struct cmd_list_element **show_list);
@@ -399,7 +419,7 @@ extern void
 				       const char *set_doc,
 				       const char *show_doc,
 				       const char *help_doc,
-				       cmd_sfunc_ftype *set_func,
+				       cmd_const_sfunc_ftype *set_func,
 				       show_value_ftype *show_func,
 				       struct cmd_list_element **set_list,
 				       struct cmd_list_element **show_list);
@@ -417,17 +437,22 @@ extern void dont_repeat (void);
 
 extern scoped_restore_tmpl<int> prevent_dont_repeat (void);
 
+/* Set the arguments that will be passed if the current command is
+   repeated.  Note that the passed-in string must be a constant.  */
+
+extern void set_repeat_arguments (const char *args);
+
 /* Used to mark commands that don't do anything.  If we just leave the
    function field NULL, the command is interpreted as a help topic, or
    as a class of commands.  */
 
-extern void not_just_help_class_command (char *, int);
+extern void not_just_help_class_command (const char *, int);
 
 /* Check function pointer.  */
 extern int cmd_func_p (struct cmd_list_element *cmd);
 
 /* Call the command function.  */
 extern void cmd_func (struct cmd_list_element *cmd,
-		      char *args, int from_tty);
+		      const char *args, int from_tty);
 
 #endif /* !defined (COMMAND_H) */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/agent.c ./gdb/common/agent.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/agent.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/agent.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Shared utility routines for GDB to interact with agent.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/agent.h ./gdb/common/agent.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/agent.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/agent.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Shared utility routines for GDB to interact with agent.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -17,16 +17,19 @@
    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 COMMON_AGENT_H
+#define COMMON_AGENT_H
+
+#include "common/preprocessor.h"
+
 int agent_run_command (int pid, const char *cmd, int len);
 
 int agent_look_up_symbols (void *);
 
-#define STRINGIZE_1(STR) #STR
-#define STRINGIZE(STR) STRINGIZE_1(STR)
 #define IPA_SYM_EXPORTED_NAME(SYM) gdb_agent_ ## SYM
 #define IPA_SYM(SYM)                                   \
   {                                                    \
-    STRINGIZE (IPA_SYM_EXPORTED_NAME (SYM)),		\
+    STRINGIFY (IPA_SYM_EXPORTED_NAME (SYM)),		\
     offsetof (struct ipa_sym_addresses, addr_ ## SYM)	\
   }
 
@@ -56,3 +59,5 @@ enum agent_capa
 int agent_capability_check (enum agent_capa);
 
 void agent_capability_invalidate (void);
+
+#endif /* COMMON_AGENT_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/array-view.h ./gdb/common/array-view.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/array-view.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/array-view.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,179 @@
+/* Copyright (C) 2017-2018 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 COMMON_ARRAY_VIEW_H
+#define COMMON_ARRAY_VIEW_H
+
+#include "traits.h"
+#include <type_traits>
+
+/* An array_view is an abstraction that provides a non-owning view
+   over a sequence of contiguous objects.
+
+   A way to put it is that array_view is to std::vector (and
+   std::array and built-in arrays with rank==1) like std::string_view
+   is to std::string.
+
+   The main intent of array_view is to use it as function input
+   parameter type, making it possible to pass in any sequence of
+   contiguous objects, irrespective of whether the objects live on the
+   stack or heap and what actual container owns them.  Implicit
+   construction from the element type is supported too, making it easy
+   to call functions that expect an array of elements when you only
+   have one element (usually on the stack).  For example:
+
+    struct A { .... };
+    void function (gdb::array_view<A> as);
+
+    std::vector<A> std_vec = ...;
+    std::array<A, N> std_array = ...;
+    A array[] = {...};
+    A elem;
+
+    function (std_vec);
+    function (std_array);
+    function (array);
+    function (elem);
+
+   Views can be either mutable or const.  A const view is simply
+   created by specifying a const T as array_view template parameter,
+   in which case operator[] of non-const array_view objects ends up
+   returning const references.  Making the array_view itself const is
+   analogous to making a pointer itself be const.  I.e., disables
+   re-seating the view/pointer.
+
+   Since array_view objects are small (pointer plus size), and
+   designed to be trivially copyable, they should generally be passed
+   around by value.
+
+   You can find unit tests covering the whole API in
+   unittests/array-view-selftests.c.  */
+
+namespace gdb {
+
+template <typename T>
+class array_view
+{
+  /* True iff decayed T is the same as decayed U.  E.g., we want to
+     say that 'T&' is the same as 'const T'.  */
+  template <typename U>
+  using IsDecayedT = typename std::is_same<typename std::decay<T>::type,
+					   typename std::decay<U>::type>;
+
+  /* True iff decayed T is the same as decayed U, and 'U *' is
+     implicitly convertible to 'T *'.  This is a requirement for
+     several methods.  */
+  template <typename U>
+  using DecayedConvertible = gdb::And<IsDecayedT<U>,
+				      std::is_convertible<U *, T *>>;
+
+public:
+  using value_type = T;
+  using reference = T &;
+  using const_reference = const T &;
+  using size_type = size_t;
+
+  /* Default construction creates an empty view.  */
+  constexpr array_view () noexcept
+    : m_array (nullptr), m_size (0)
+  {}
+
+  /* Create an array view over a single object of the type of an
+     array_view element.  The created view as size==1.  This is
+     templated on U to allow constructing a array_view<const T> over a
+     (non-const) T.  The "convertible" requirement makes sure that you
+     can't create an array_view<T> over a const T.  */
+  template<typename U,
+	   typename = Requires<DecayedConvertible<U>>>
+  constexpr array_view (U &elem) noexcept
+    : m_array (&elem), m_size (1)
+  {}
+
+  /* Same as above, for rvalue references.  */
+  template<typename U,
+	   typename = Requires<DecayedConvertible<U>>>
+  constexpr array_view (U &&elem) noexcept
+    : m_array (&elem), m_size (1)
+  {}
+
+  /* Create an array view from a pointer to an array and an element
+     count.  */
+  template<typename U,
+	   typename = Requires<DecayedConvertible<U>>>
+  constexpr array_view (U *array, size_t size) noexcept
+    : m_array (array), m_size (size)
+  {}
+
+  /* Create an array view from a range.  This is templated on both U
+     an V to allow passing in a mix of 'const T *' and 'T *'.  */
+  template<typename U, typename V,
+	   typename = Requires<DecayedConvertible<U>>,
+	   typename = Requires<DecayedConvertible<V>>>
+  constexpr array_view (U *begin, V *end) noexcept
+    : m_array (begin), m_size (end - begin)
+  {}
+
+  /* Create an array view from an array.  */
+  template<typename U, size_t Size,
+	   typename = Requires<DecayedConvertible<U>>>
+  constexpr array_view (U (&array)[Size]) noexcept
+    : m_array (array), m_size (Size)
+  {}
+
+  /* Create an array view from a contiguous container.  E.g.,
+     std::vector and std::array.  */
+  template<typename Container,
+	   typename = Requires<gdb::Not<IsDecayedT<Container>>>,
+	   typename
+	     = Requires<std::is_convertible
+			<decltype (std::declval<Container> ().data ()),
+			 T *>>,
+	   typename
+	     = Requires<std::is_convertible
+			<decltype (std::declval<Container> ().size ()),
+			 size_type>>>
+  constexpr array_view (Container &&c) noexcept
+    : m_array (c.data ()), m_size (c.size ())
+  {}
+
+  /* Observer methods.  Some of these can't be constexpr until we
+     require C++14.  */
+  /*constexpr14*/ T *data () noexcept { return m_array; }
+  constexpr const T *data () const noexcept { return m_array; }
+
+  /*constexpr14*/ T *begin () noexcept { return m_array; }
+  constexpr const T *begin () const noexcept { return m_array; }
+
+  /*constexpr14*/ T *end () noexcept { return m_array + m_size; }
+  constexpr const T *end () const noexcept { return m_array + m_size; }
+
+  /*constexpr14*/ reference operator[] (size_t index) noexcept
+  { return m_array[index]; }
+  constexpr const_reference operator[] (size_t index) const noexcept
+  { return m_array[index]; }
+
+  constexpr size_type size () const noexcept { return m_size; }
+  constexpr bool empty () const noexcept { return m_size == 0; }
+
+private:
+  T *m_array;
+  size_type m_size;
+};
+
+} /* namespace gdb */
+
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/ax.def ./gdb/common/ax.def
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/ax.def	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/ax.def	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Definition of agent opcode values.   -*- c -*-
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/break-common.h ./gdb/common/break-common.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/break-common.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/break-common.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Data structures associated with breakpoints shared in both GDB and
    GDBserver.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/btrace-common.c ./gdb/common/btrace-common.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/btrace-common.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/btrace-common.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/btrace-common.h ./gdb/common/btrace-common.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/btrace-common.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/btrace-common.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Branch trace support for GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/buffer.c ./gdb/common/buffer.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/buffer.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/buffer.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* A simple growing buffer for GDB.
   
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -88,7 +88,6 @@ buffer_xml_printf (struct buffer *buffer
       if (percent)
 	{
 	  char buf[32];
-	  char *p;
 	  char *str = buf;
 	  const char *f_old = f;
 	  
@@ -163,9 +162,8 @@ buffer_xml_printf (struct buffer *buffer
 	  if (str)
 	    {
 	      buffer_grow (buffer, prev, f_old - prev - 1);
-	      p = xml_escape_text (str);
-	      buffer_grow_str (buffer, p);
-	      xfree (p);
+	      std::string p = xml_escape_text (str);
+	      buffer_grow_str (buffer, p.c_str ());
 	      prev = f + 1;
 	    }
 	  percent = 0;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/buffer.h ./gdb/common/buffer.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/buffer.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/buffer.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* A simple growing buffer for GDB.
   
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -46,7 +46,7 @@ void buffer_free (struct buffer *buffer)
 /* Initialize BUFFER.  BUFFER holds no memory afterwards.  */
 void buffer_init (struct buffer *buffer);
 
-/* Return a pointer into BUFFER data, effectivelly transfering
+/* Return a pointer into BUFFER data, effectively transferring
    ownership of the buffer memory to the caller.  Calling buffer_free
    afterwards has no effect on the returned data.  */
 char* buffer_finish (struct buffer *buffer);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/byte-vector.h ./gdb/common/byte-vector.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/byte-vector.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/byte-vector.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,62 @@
+/* Copyright (C) 2017-2018 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 COMMON_BYTE_VECTOR_H
+#define COMMON_BYTE_VECTOR_H
+
+#include "common/def-vector.h"
+
+namespace gdb {
+
+/* byte_vector is a gdb_byte std::vector with a custom allocator that
+   unlike std::vector<gdb_byte> does not zero-initialize new elements
+   by default when the vector is created/resized.  This is what you
+   usually want when working with byte buffers, since if you're
+   creating or growing a buffer you'll most surely want to fill it in
+   with data, in which case zero-initialization would be a
+   pessimization.  For example:
+
+     gdb::byte_vector buf (some_large_size);
+     fill_with_data (buf.data (), buf.size ());
+
+   On the odd case you do need zero initialization, then you can still
+   call the overloads that specify an explicit value, like:
+
+     gdb::byte_vector buf (some_initial_size, 0);
+     buf.resize (a_bigger_size, 0);
+
+   (Or use std::vector<gdb_byte> instead.)
+
+   Note that unlike std::vector<gdb_byte>, function local
+   gdb::byte_vector objects constructed with an initial size like:
+
+     gdb::byte_vector buf (some_size);
+     fill_with_data (buf.data (), buf.size ());
+
+   usually compile down to the exact same as:
+
+     std::unique_ptr<byte[]> buf (new gdb_byte[some_size]);
+     fill_with_data (buf.get (), some_size);
+
+   with the former having the advantage of being a bit more readable,
+   and providing the whole std::vector API, if you end up needing it.
+*/
+using byte_vector = gdb::def_vector<gdb_byte>;
+
+} /* namespace gdb */
+
+#endif /* COMMON_DEF_VECTOR_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/cleanups.c ./gdb/common/cleanups.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/cleanups.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/cleanups.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Cleanup routines for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/cleanups.h ./gdb/common/cleanups.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/cleanups.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/cleanups.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Cleanups.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-debug.c ./gdb/common/common-debug.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-debug.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/common-debug.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Debug printing functions.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-debug.h ./gdb/common/common-debug.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-debug.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/common-debug.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Declarations for debug printing functions.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-defs.h ./gdb/common/common-defs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-defs.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/common-defs.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common definitions.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -82,6 +82,7 @@
 #include "common-debug.h"
 #include "cleanups.h"
 #include "common-exceptions.h"
+#include "common/poison.h"
 
 #define EXTERN_C extern "C"
 #define EXTERN_C_PUSH extern "C" {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-exceptions.c ./gdb/common/common-exceptions.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-exceptions.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/common-exceptions.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Exception (throw catch) mechanism, for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -264,16 +264,16 @@ gdb_exception_sliced_copy (struct gdb_ex
 
 #endif /* !GDB_XCPT_SJMP */
 
-/* Return EXCEPTION to the nearest containing catch_errors().  */
+/* Return EXCEPTION to the nearest containing CATCH_SJLJ block.  */
 
 void
 throw_exception_sjlj (struct gdb_exception exception)
 {
   do_cleanups (all_cleanups ());
 
-  /* Jump to the containing catch_errors() call, communicating REASON
-     to that call via setjmp's return value.  Note that REASON can't
-     be zero, by definition in defs.h.  */
+  /* Jump to the nearest CATCH_SJLJ block, communicating REASON to
+     that call via setjmp's return value.  Note that REASON can't be
+     zero, by definition in common-exceptions.h.  */
   exceptions_state_mc (CATCH_THROWING);
   current_catcher->exception = exception;
   longjmp (current_catcher->buf, exception.reason);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-exceptions.h ./gdb/common/common-exceptions.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-exceptions.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/common-exceptions.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Exception (throw catch) mechanism, for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -24,10 +24,8 @@
 #include <new>
 
 /* Reasons for calling throw_exceptions().  NOTE: all reason values
-   must be less than zero.  enum value 0 is reserved for internal use
-   as the return value from an initial setjmp().  The function
-   catch_exceptions() reserves values >= 0 as legal results from its
-   wrapped function.  */
+   must be different from zero.  enum value 0 is reserved for internal
+   use as the return value from an initial setjmp().  */
 
 enum return_reason
   {
@@ -231,25 +229,38 @@ struct exception_try_scope
 #if GDB_XCPT == GDB_XCPT_TRY
 
 /* We still need to wrap TRY/CATCH in C++ so that cleanups and C++
-   exceptions can coexist.  The TRY blocked is wrapped in a
-   do/while(0) so that break/continue within the block works the same
-   as in C.  */
+   exceptions can coexist.
+
+   The TRY blocked is wrapped in a do/while(0) so that break/continue
+   within the block works the same as in C.
+
+   END_CATCH makes sure that even if the CATCH block doesn't want to
+   catch the exception, we stop at every frame in the unwind chain to
+   run its cleanups, which may e.g., have pointers to stack variables
+   that are going to be destroyed.
+
+   There's an outer scope around the whole TRY/END_CATCH in order to
+   cause a compilation error if you forget to add the END_CATCH at the
+   end a TRY/CATCH construct.  */
+
 #define TRY								\
-  try									\
-    {									\
-      exception_try_scope exception_try_scope_instance;			\
-      do								\
-	{
+  {									\
+    try									\
+      {									\
+	exception_try_scope exception_try_scope_instance;		\
+	do								\
+	  {
 
 #define CATCH(EXCEPTION, MASK)						\
-	} while (0);							\
-    }								        \
-  catch (struct gdb_exception ## _ ## MASK &EXCEPTION)
+	  } while (0);							\
+	}								\
+    catch (struct gdb_exception ## _ ## MASK &EXCEPTION)
 
 #define END_CATCH				\
-  catch (...)					\
-  {						\
-    exception_rethrow ();			\
+    catch (...)					\
+      {						\
+	exception_rethrow ();			\
+      }						\
   }
 
 #else
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-gdbthread.h ./gdb/common/common-gdbthread.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-gdbthread.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/common-gdbthread.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,25 @@
+/* Common multi-process/thread control defs for GDB and gdbserver.
+   Copyright (C) 1987-2018 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 COMMON_GDBTHREAD_H
+#define COMMON_GDBTHREAD_H
+
+/* Switch from one thread to another.  */
+extern void switch_to_thread (ptid_t ptid);
+
+#endif /* ! COMMON_GDBTHREAD_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common.host ./gdb/common/common.host
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common.host	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/common.host	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # Common object files to include for each host.
 #
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-inferior.h ./gdb/common/common-inferior.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-inferior.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/common-inferior.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,41 @@
+/* Functions to deal with the inferior being executed on GDB or
+   GDBserver.
+
+   Copyright (C) 1986-2018 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 COMMON_INFERIOR_H
+#define COMMON_INFERIOR_H
+
+/* Return the exec wrapper to be used when starting the inferior, or NULL
+   otherwise.  */
+extern const char *get_exec_wrapper ();
+
+/* Return the name of the executable file as a string.
+   ERR nonzero means get error if there is none specified;
+   otherwise return 0 in that case.  */
+extern char *get_exec_file (int err);
+
+/* Return the inferior's current working directory.  If nothing has
+   been set, then return NULL.  */
+extern const char *get_inferior_cwd ();
+
+/* Set the inferior current working directory.  If CWD is NULL, unset
+   the directory.  */
+extern void set_inferior_cwd (const char *cwd);
+
+#endif /* ! COMMON_INFERIOR_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common.m4 ./gdb/common/common.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common.m4	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/common.m4	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 dnl Autoconf configure snippets for common.
-dnl Copyright (C) 1995-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 1995-2018 Free Software Foundation, Inc.
 dnl
 dnl This file is part of GDB.
 dnl 
@@ -26,10 +26,10 @@ AC_DEFUN([GDB_AC_COMMON], [
   AM_LANGINFO_CODESET
 
   AC_CHECK_HEADERS(linux/perf_event.h locale.h memory.h signal.h dnl
-		   sys/resource.h sys/socket.h sys/syscall.h dnl
+		   sys/resource.h sys/socket.h dnl
 		   sys/un.h sys/wait.h dnl
 		   thread_db.h wait.h dnl
-		   termios.h termio.h sgtty.h)
+		   termios.h)
 
   AC_CHECK_FUNCS([fdwalk getrlimit pipe pipe2 socketpair sigaction])
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-regcache.c ./gdb/common/common-regcache.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-regcache.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/common-regcache.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Cache and manage the values of registers for GDB, the GNU debugger.
 
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-regcache.h ./gdb/common/common-regcache.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-regcache.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/common-regcache.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Cache and manage the values of registers
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-types.h ./gdb/common/common-types.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-types.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/common-types.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Declarations for common types.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-utils.c ./gdb/common/common-utils.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-utils.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/common-utils.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Shared general utility routines for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -18,6 +18,7 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "common-defs.h"
+#include "common-utils.h"
 #include "host-defs.h"
 #include <ctype.h>
 
@@ -94,13 +95,6 @@ xzalloc (size_t size)
 }
 
 void
-xfree (void *ptr)
-{
-  if (ptr != NULL)
-    free (ptr);		/* ARI: free */
-}
-
-void
 xmalloc_failed (size_t size)
 {
   malloc_failure (size);
@@ -173,6 +167,61 @@ string_printf (const char* fmt, ...)
   return str;
 }
 
+/* See documentation in common-utils.h.  */
+
+std::string
+string_vprintf (const char* fmt, va_list args)
+{
+  va_list vp;
+  size_t size;
+
+  va_copy (vp, args);
+  size = vsnprintf (NULL, 0, fmt, vp);
+  va_end (vp);
+
+  std::string str (size, '\0');
+
+  /* C++11 and later guarantee std::string uses contiguous memory and
+     always includes the terminating '\0'.  */
+  vsprintf (&str[0], fmt, args);
+
+  return str;
+}
+
+
+/* See documentation in common-utils.h.  */
+
+void
+string_appendf (std::string &str, const char *fmt, ...)
+{
+  va_list vp;
+
+  va_start (vp, fmt);
+  string_vappendf (str, fmt, vp);
+  va_end (vp);
+}
+
+
+/* See documentation in common-utils.h.  */
+
+void
+string_vappendf (std::string &str, const char *fmt, va_list args)
+{
+  va_list vp;
+  int grow_size;
+
+  va_copy (vp, args);
+  grow_size = vsnprintf (NULL, 0, fmt, vp);
+  va_end (vp);
+
+  size_t curr_size = str.size ();
+  str.resize (curr_size + grow_size);
+
+  /* C++11 and later guarantee std::string uses contiguous memory and
+     always includes the terminating '\0'.  */
+  vsprintf (&str[curr_size], fmt, args);
+}
+
 char *
 savestring (const char *ptr, size_t len)
 {
@@ -297,7 +346,7 @@ skip_spaces (char *chp)
 /* A const-correct version of the above.  */
 
 const char *
-skip_spaces_const (const char *chp)
+skip_spaces (const char *chp)
 {
   if (chp == NULL)
     return NULL;
@@ -309,7 +358,7 @@ skip_spaces_const (const char *chp)
 /* See documentation in common-utils.h.  */
 
 const char *
-skip_to_space_const (const char *chp)
+skip_to_space (const char *chp)
 {
   if (chp == NULL)
     return NULL;
@@ -318,6 +367,14 @@ skip_to_space_const (const char *chp)
   return chp;
 }
 
+/* See documentation in common-utils.h.  */
+
+char *
+skip_to_space (char *chp)
+{
+  return (char *) skip_to_space ((const char *) chp);
+}
+
 /* See common/common-utils.h.  */
 
 void
@@ -328,3 +385,26 @@ free_vector_argv (std::vector<char *> &v
 
   v.clear ();
 }
+
+/* See common/common-utils.h.  */
+
+std::string
+stringify_argv (const std::vector<char *> &args)
+{
+  std::string ret;
+
+  if (!args.empty () && args[0] != NULL)
+    {
+      for (auto s : args)
+	if (s != NULL)
+	  {
+	    ret += s;
+	    ret += ' ';
+	  }
+
+      /* Erase the last whitespace.  */
+      ret.erase (ret.end () - 1);
+    }
+
+  return ret;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-utils.h ./gdb/common/common-utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/common-utils.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/common-utils.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Shared general utility routines for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -22,7 +22,8 @@
 
 #include <string>
 #include <vector>
-#include <sstream>
+
+#include "poison.h"
 
 /* If possible, define FUNCTION_NAME, a macro containing the name of
    the function being defined.  Since this macro may not always be
@@ -48,7 +49,17 @@
 /* Like xmalloc, but zero the memory.  */
 void *xzalloc (size_t);
 
-void xfree (void *);
+template <typename T>
+static void
+xfree (T *ptr)
+{
+  static_assert (IsFreeable<T>::value, "Trying to use xfree with a non-POD \
+data type.  Use operator delete instead.");
+
+  if (ptr != NULL)
+    free (ptr);		/* ARI: free */
+}
+
 
 /* Like asprintf and vasprintf, but return the string, throw an error
    if no memory.  */
@@ -64,46 +75,18 @@ int xsnprintf (char *str, size_t size, c
 std::string string_printf (const char* fmt, ...)
   ATTRIBUTE_PRINTF (1, 2);
 
-/* Returns a string representation of VAL.  Replacement for C++11
-   std::to_string for hosts that lack it.  */
-
-namespace gdb {
-
-#define REPLACE_TO_STRING 0
-
-#ifdef __MINGW32__
-/* mingw.org's MinGW runtime before version 5.0 needs the replacement
-   below.  Tested with mingwrt-3.22.2 and mingwrt-5.0, and with
-   libstdc++ included with MinGW GCC 5.3.0.  */
-# include <_mingw.h>
-/* We test __MINGW64_VERSION_MAJOR to exclude MinGW64, which doesn't
-   need this replacement.  */
-# if !defined __MINGW64_VERSION_MAJOR && !defined _GLIBCXX_USE_C99
-#  undef REPLACE_TO_STRING
-#  define REPLACE_TO_STRING 1
-# endif
-#endif
-
-#if REPLACE_TO_STRING
-
-template <class T>
-inline std::string
-to_string (const T &val)
-{
-  std::stringstream ss;
-
-  ss << val;
-  return ss.str ();
-}
-
-#else /* !REPLACE_TO_STRING */
-
-using std::to_string;
-
-#endif
-
-#undef REPLACE_TO_STRING
-}
+/* Like string_printf, but takes a va_list.  */
+std::string string_vprintf (const char* fmt, va_list args)
+  ATTRIBUTE_PRINTF (1, 0);
+
+/* Like string_printf, but appends to DEST instead of returning a new
+   std::string.  */
+void string_appendf (std::string &dest, const char* fmt, ...)
+  ATTRIBUTE_PRINTF (2, 3);
+
+/* Like string_appendf, but takes a va_list.  */
+void string_vappendf (std::string &dest, const char* fmt, va_list args)
+  ATTRIBUTE_PRINTF (2, 0);
 
 /* Make a copy of the string at PTR with LEN characters
    (and add a null character at the end in the copy).
@@ -135,19 +118,32 @@ extern char *skip_spaces (char *inp);
 
 /* A const-correct version of the above.  */
 
-extern const char *skip_spaces_const (const char *inp);
+extern const char *skip_spaces (const char *inp);
 
 /* Skip leading non-whitespace characters in INP, returning an updated
    pointer.  If INP is NULL, return NULL.  */
 
-#define skip_to_space(INP) ((char *) skip_to_space_const (INP))
+extern char *skip_to_space (char *inp);
 
 /* A const-correct version of the above.  */
 
-extern const char *skip_to_space_const (const char *inp);
+extern const char *skip_to_space (const char *inp);
 
 /* Assumes that V is an argv for a program, and iterates through
    freeing all the elements.  */
 extern void free_vector_argv (std::vector<char *> &v);
 
+/* Given a vector of arguments ARGV, return a string equivalent to
+   joining all the arguments with a whitespace separating them.  */
+extern std::string stringify_argv (const std::vector<char *> &argv);
+
+/* Return true if VALUE is in [LOW, HIGH].  */
+
+template <typename T>
+static bool
+in_inclusive_range (T value, T low, T high)
+{
+  return value >= low && value <= high;
+}
+
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/create-version.sh ./gdb/common/create-version.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/create-version.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/create-version.sh	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# Copyright (C) 1989-2017 Free Software Foundation, Inc.
+# Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
 # This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/default-init-alloc.h ./gdb/common/default-init-alloc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/default-init-alloc.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/default-init-alloc.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,67 @@
+/* Copyright (C) 2017-2018 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 COMMON_DEFAULT_INIT_ALLOC_H
+#define COMMON_DEFAULT_INIT_ALLOC_H
+
+namespace gdb {
+
+/* An allocator that default constructs using default-initialization
+   rather than value-initialization.  The idea is to use this when you
+   don't want to default construct elements of containers of trivial
+   types using zero-initialization.  */
+
+/* Mostly as implementation convenience, this is implemented as an
+   adapter that given an allocator A, overrides 'A::construct()'.  'A'
+   defaults to std::allocator<T>.  */
+
+template<typename T, typename A = std::allocator<T>>
+class default_init_allocator : public A
+{
+public:
+  /* Pull in A's ctors.  */
+  using A::A;
+
+  /* Override rebind.  */
+  template<typename U>
+  struct rebind
+  {
+    /* A couple helpers just to make it a bit more readable.  */
+    typedef std::allocator_traits<A> traits_;
+    typedef typename traits_::template rebind_alloc<U> alloc_;
+
+    /* This is what we're after.  */
+    typedef default_init_allocator<U, alloc_> other;
+  };
+
+  /* Make the base allocator's construct method(s) visible.  */
+  using A::construct;
+
+  /* .. and provide an override/overload for the case of default
+     construction (i.e., no arguments).  This is where we construct
+     with default-init.  */
+  template <typename U>
+  void construct (U *ptr)
+    noexcept (std::is_nothrow_default_constructible<U>::value)
+  {
+    ::new ((void *) ptr) U; /* default-init */
+  }
+};
+
+} /* namespace gdb */
+
+#endif /* COMMON_DEFAULT_INIT_ALLOC_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/def-vector.h ./gdb/common/def-vector.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/def-vector.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/def-vector.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,36 @@
+/* Copyright (C) 2017-2018 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 COMMON_DEF_VECTOR_H
+#define COMMON_DEF_VECTOR_H
+
+#include <vector>
+#include "common/default-init-alloc.h"
+
+namespace gdb {
+
+/* A vector that uses an allocator that default constructs using
+   default-initialization rather than value-initialization.  The idea
+   is to use this when you don't want zero-initialization of elements
+   of vectors of trivial types.  E.g., byte buffers.  */
+
+template<typename T> using def_vector
+  = std::vector<T, gdb::default_init_allocator<T>>;
+
+} /* namespace gdb */
+
+#endif /* COMMON_DEF_VECTOR_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/diagnostics.h ./gdb/common/diagnostics.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/diagnostics.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/diagnostics.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,64 @@
+/* Copyright (C) 2017-2018 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 COMMON_DIAGNOSTICS_H
+#define COMMON_DIAGNOSTICS_H
+
+#include "common/preprocessor.h"
+
+#ifdef __GNUC__
+# define DIAGNOSTIC_PUSH _Pragma ("GCC diagnostic push")
+# define DIAGNOSTIC_POP _Pragma ("GCC diagnostic pop")
+# define DIAGNOSTIC_IGNORE(option) \
+  _Pragma (STRINGIFY (GCC diagnostic ignored option))
+#else
+# define DIAGNOSTIC_PUSH
+# define DIAGNOSTIC_POP
+# define DIAGNOSTIC_IGNORE(option)
+#endif
+
+#if defined (__clang__) /* clang */
+
+# define DIAGNOSTIC_IGNORE_SELF_MOVE DIAGNOSTIC_IGNORE ("-Wself-move")
+# define DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER \
+  DIAGNOSTIC_IGNORE ("-Wdeprecated-register")
+# define DIAGNOSTIC_IGNORE_UNUSED_FUNCTION \
+  DIAGNOSTIC_IGNORE ("-Wunused-function")
+# if __has_warning ("-Wenum-compare-switch")
+#  define DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES \
+   DIAGNOSTIC_IGNORE ("-Wenum-compare-switch")
+# else
+#  define DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES
+# endif
+#elif defined (__GNUC__) /* GCC */
+
+# define DIAGNOSTIC_IGNORE_SELF_MOVE
+# define DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER
+# define DIAGNOSTIC_IGNORE_UNUSED_FUNCTION \
+  DIAGNOSTIC_IGNORE ("-Wunused-function")
+# define DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES
+
+#else /* Other compilers */
+
+# define DIAGNOSTIC_IGNORE_SELF_MOVE
+# define DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER
+# define DIAGNOSTIC_IGNORE_UNUSED_FUNCTION
+# define DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES
+
+#endif
+
+#endif /* COMMON_DIAGNOSTICS_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/enum-flags.h ./gdb/common/enum-flags.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/enum-flags.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/enum-flags.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -120,16 +120,6 @@ public:
     : m_enum_value ((enum_type) 0)
   {}
 
-  enum_flags (const enum_flags &other)
-    : m_enum_value (other.m_enum_value)
-  {}
-
-  enum_flags &operator= (const enum_flags &other)
-  {
-    m_enum_value = other.m_enum_value;
-    return *this;
-  }
-
   /* If you get an error saying these two overloads are ambiguous,
      then you tried to mix values of different enum types.  */
   enum_flags (enum_type e)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/environ.c ./gdb/common/environ.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/environ.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/environ.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* environ.c -- library for manipulating environments for GNU.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 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
@@ -18,165 +18,166 @@
 #include "common-defs.h"
 #include "environ.h"
 #include <algorithm>
-
+#include <utility>
 
-/* Return a new environment object.  */
+/* See common/environ.h.  */
 
-struct gdb_environ *
-make_environ (void)
+gdb_environ &
+gdb_environ::operator= (gdb_environ &&e)
 {
-  struct gdb_environ *e;
+  /* Are we self-moving?  */
+  if (&e == this)
+    return *this;
 
-  e = XNEW (struct gdb_environ);
-
-  e->allocated = 10;
-  e->vector = (char **) xmalloc ((e->allocated + 1) * sizeof (char *));
-  e->vector[0] = 0;
-  return e;
+  m_environ_vector = std::move (e.m_environ_vector);
+  m_user_set_env = std::move (e.m_user_set_env);
+  m_user_unset_env = std::move (e.m_user_unset_env);
+  e.m_environ_vector.clear ();
+  e.m_environ_vector.push_back (NULL);
+  e.m_user_set_env.clear ();
+  e.m_user_unset_env.clear ();
+  return *this;
 }
 
-/* Free an environment and all the strings in it.  */
+/* See common/environ.h.  */
 
-void
-free_environ (struct gdb_environ *e)
+gdb_environ gdb_environ::from_host_environ ()
 {
-  char **vector = e->vector;
+  extern char **environ;
+  gdb_environ e;
+
+  if (environ == NULL)
+    return e;
 
-  while (*vector)
-    xfree (*vector++);
+  for (int i = 0; environ[i] != NULL; ++i)
+    {
+      /* Make sure we add the element before the last (NULL).  */
+      e.m_environ_vector.insert (e.m_environ_vector.end () - 1,
+				 xstrdup (environ[i]));
+    }
 
-  xfree (e->vector);
-  xfree (e);
+  return e;
 }
 
-/* Copy the environment given to this process into E.
-   Also copies all the strings in it, so we can be sure
-   that all strings in these environments are safe to free.  */
+/* See common/environ.h.  */
 
 void
-init_environ (struct gdb_environ *e)
+gdb_environ::clear ()
 {
-  extern char **environ;
-  int i;
+  for (char *v : m_environ_vector)
+    xfree (v);
+  m_environ_vector.clear ();
+  /* Always add the NULL element.  */
+  m_environ_vector.push_back (NULL);
+  m_user_set_env.clear ();
+  m_user_unset_env.clear ();
+}
 
-  if (environ == NULL)
-    return;
+/* Helper function to check if STRING contains an environment variable
+   assignment of VAR, i.e., if STRING starts with 'VAR='.  Return true
+   if it contains, false otherwise.  */
 
-  for (i = 0; environ[i]; i++) /*EMPTY */ ;
+static bool
+match_var_in_string (const char *string, const char *var, size_t var_len)
+{
+  if (strncmp (string, var, var_len) == 0 && string[var_len] == '=')
+    return true;
 
-  if (e->allocated < i)
-    {
-      e->allocated = std::max (i, e->allocated + 10);
-      e->vector = (char **) xrealloc ((char *) e->vector,
-				      (e->allocated + 1) * sizeof (char *));
-    }
+  return false;
+}
 
-  memcpy (e->vector, environ, (i + 1) * sizeof (char *));
+/* See common/environ.h.  */
 
-  while (--i >= 0)
-    {
-      int len = strlen (e->vector[i]);
-      char *newobj = (char *) xmalloc (len + 1);
+const char *
+gdb_environ::get (const char *var) const
+{
+  size_t len = strlen (var);
 
-      memcpy (newobj, e->vector[i], len + 1);
-      e->vector[i] = newobj;
-    }
+  for (char *el : m_environ_vector)
+    if (el != NULL && match_var_in_string (el, var, len))
+      return &el[len + 1];
+
+  return NULL;
 }
 
-/* Return the vector of environment E.
-   This is used to get something to pass to execve.  */
+/* See common/environ.h.  */
 
-char **
-environ_vector (struct gdb_environ *e)
+void
+gdb_environ::set (const char *var, const char *value)
 {
-  return e->vector;
-}
-
-/* Return the value in environment E of variable VAR.  */
+  char *fullvar = concat (var, "=", value, NULL);
 
-char *
-get_in_environ (const struct gdb_environ *e, const char *var)
-{
-  int len = strlen (var);
-  char **vector = e->vector;
-  char *s;
+  /* We have to unset the variable in the vector if it exists.  */
+  unset (var, false);
+
+  /* Insert the element before the last one, which is always NULL.  */
+  m_environ_vector.insert (m_environ_vector.end () - 1, fullvar);
 
-  for (; (s = *vector) != NULL; vector++)
-    if (strncmp (s, var, len) == 0 && s[len] == '=')
-      return &s[len + 1];
+  /* Mark this environment variable as having been set by the user.
+     This will be useful when we deal with setting environment
+     variables on the remote target.  */
+  m_user_set_env.insert (std::string (fullvar));
 
-  return 0;
+  /* If this environment variable is marked as unset by the user, then
+     remove it from the list, because now the user wants to set
+     it.  */
+  m_user_unset_env.erase (std::string (var));
 }
 
-/* Store the value in E of VAR as VALUE.  */
+/* See common/environ.h.  */
 
 void
-set_in_environ (struct gdb_environ *e, const char *var, const char *value)
+gdb_environ::unset (const char *var, bool update_unset_list)
 {
-  int i;
-  int len = strlen (var);
-  char **vector = e->vector;
-  char *s;
+  size_t len = strlen (var);
+  std::vector<char *>::iterator it_env;
 
-  for (i = 0; (s = vector[i]) != NULL; i++)
-    if (strncmp (s, var, len) == 0 && s[len] == '=')
+  /* We iterate until '.end () - 1' because the last element is
+     always NULL.  */
+  for (it_env = m_environ_vector.begin ();
+       it_env != m_environ_vector.end () - 1;
+       ++it_env)
+    if (match_var_in_string (*it_env, var, len))
       break;
 
-  if (s == 0)
+  if (it_env != m_environ_vector.end () - 1)
     {
-      if (i == e->allocated)
-	{
-	  e->allocated += 10;
-	  vector = (char **) xrealloc ((char *) vector,
-				       (e->allocated + 1) * sizeof (char *));
-	  e->vector = vector;
-	}
-      vector[i + 1] = 0;
-    }
-  else
-    xfree (s);
+      m_user_set_env.erase (std::string (*it_env));
+      xfree (*it_env);
 
-  s = (char *) xmalloc (len + strlen (value) + 2);
-  strcpy (s, var);
-  strcat (s, "=");
-  strcat (s, value);
-  vector[i] = s;
-
-  /* This used to handle setting the PATH and GNUTARGET variables
-     specially.  The latter has been replaced by "set gnutarget"
-     (which has worked since GDB 4.11).  The former affects searching
-     the PATH to find SHELL, and searching the PATH to find the
-     argument of "symbol-file" or "exec-file".  Maybe we should have
-     some kind of "set exec-path" for that.  But in any event, having
-     "set env" affect anything besides the inferior is a bad idea.
-     What if we want to change the environment we pass to the program
-     without afecting GDB's behavior?  */
+      m_environ_vector.erase (it_env);
+    }
 
-  return;
+  if (update_unset_list)
+    m_user_unset_env.insert (std::string (var));
 }
 
-/* Remove the setting for variable VAR from environment E.  */
+/* See common/environ.h.  */
 
 void
-unset_in_environ (struct gdb_environ *e, const char *var)
+gdb_environ::unset (const char *var)
 {
-  int len = strlen (var);
-  char **vector = e->vector;
-  char *s;
+  unset (var, true);
+}
 
-  for (; (s = *vector) != NULL; vector++)
-    {
-      if (strncmp (s, var, len) == 0 && s[len] == '=')
-	{
-	  xfree (s);
-	  /* Walk through the vector, shuffling args down by one, including
-	     the NULL terminator.  Can't use memcpy() here since the regions
-	     overlap, and memmove() might not be available.  */
-	  while ((vector[0] = vector[1]) != NULL)
-	    {
-	      vector++;
-	    }
-	  break;
-	}
-    }
+/* See common/environ.h.  */
+
+char **
+gdb_environ::envp () const
+{
+  return const_cast<char **> (&m_environ_vector[0]);
+}
+
+/* See common/environ.h.  */
+
+const std::set<std::string> &
+gdb_environ::user_set_env () const
+{
+  return m_user_set_env;
+}
+
+const std::set<std::string> &
+gdb_environ::user_unset_env () const
+{
+  return m_user_unset_env;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/environ.h ./gdb/common/environ.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/environ.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/environ.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Header for environment manipulation library.
-   Copyright (C) 1989-2017 Free Software Foundation, Inc.
+   Copyright (C) 1989-2018 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
@@ -17,33 +17,87 @@
 #if !defined (ENVIRON_H)
 #define ENVIRON_H 1
 
-/* We manipulate environments represented as these structures.  */
+#include <vector>
+#include <set>
 
-struct gdb_environ
-  {
-    /* Number of usable slots allocated in VECTOR.
-       VECTOR always has one slot not counted here,
-       to hold the terminating zero.  */
-    int allocated;
-    /* A vector of slots, ALLOCATED + 1 of them.
-       The first few slots contain strings "VAR=VALUE"
-       and the next one contains zero.
-       Then come some unused slots.  */
-    char **vector;
-  };
-
-extern struct gdb_environ *make_environ (void);
-
-extern void free_environ (struct gdb_environ *);
-
-extern void init_environ (struct gdb_environ *);
+/* Class that represents the environment variables as seen by the
+   inferior.  */
 
-extern char *get_in_environ (const struct gdb_environ *, const char *);
-
-extern void set_in_environ (struct gdb_environ *, const char *, const char *);
+class gdb_environ
+{
+public:
+  /* Regular constructor and destructor.  */
+  gdb_environ ()
+  {
+    /* Make sure that the vector contains at least a NULL element.
+       If/when we add more variables to it, NULL will always be the
+       last element.  */
+    m_environ_vector.push_back (NULL);
+  }
 
-extern void unset_in_environ (struct gdb_environ *, const char *);
+  ~gdb_environ ()
+  {
+    clear ();
+  }
 
-extern char **environ_vector (struct gdb_environ *);
+  /* Move constructor.  */
+  gdb_environ (gdb_environ &&e)
+    : m_environ_vector (std::move (e.m_environ_vector)),
+      m_user_set_env (std::move (e.m_user_set_env)),
+      m_user_unset_env (std::move (e.m_user_unset_env))
+  {
+    /* Make sure that the moved-from vector is left at a valid
+       state (only one NULL element).  */
+    e.m_environ_vector.clear ();
+    e.m_environ_vector.push_back (NULL);
+    e.m_user_set_env.clear ();
+    e.m_user_unset_env.clear ();
+  }
+
+  /* Move assignment.  */
+  gdb_environ &operator= (gdb_environ &&e);
+
+  /* Create a gdb_environ object using the host's environment
+     variables.  */
+  static gdb_environ from_host_environ ();
+
+  /* Clear the environment variables stored in the object.  */
+  void clear ();
+
+  /* Return the value in the environment for the variable VAR.  The
+     returned pointer is only valid as long as the gdb_environ object
+     is not modified.  */
+  const char *get (const char *var) const;
+
+  /* Store VAR=VALUE in the environment.  */
+  void set (const char *var, const char *value);
+
+  /* Unset VAR in environment.  */
+  void unset (const char *var);
+
+  /* Return the environment vector represented as a 'char **'.  */
+  char **envp () const;
+
+  /* Return the user-set environment vector.  */
+  const std::set<std::string> &user_set_env () const;
+
+  /* Return the user-unset environment vector.  */
+  const std::set<std::string> &user_unset_env () const;
+
+private:
+  /* Unset VAR in environment.  If UPDATE_UNSET_LIST is true, then
+     also update M_USER_UNSET_ENV to reflect the unsetting of the
+     environment variable.  */
+  void unset (const char *var, bool update_unset_list);
+
+  /* A vector containing the environment variables.  */
+  std::vector<char *> m_environ_vector;
+
+  /* The environment variables explicitly set by the user.  */
+  std::set<std::string> m_user_set_env;
+
+  /* The environment variables explicitly unset by the user.  */
+  std::set<std::string> m_user_unset_env;
+};
 
 #endif /* defined (ENVIRON_H) */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/errors.c ./gdb/common/errors.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/errors.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/errors.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Error reporting facilities.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/errors.h ./gdb/common/errors.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/errors.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/errors.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Declarations for error-reporting facilities.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/fileio.c ./gdb/common/fileio.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/fileio.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/fileio.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* File-I/O functions for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/fileio.h ./gdb/common/fileio.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/fileio.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/fileio.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* File-I/O functions for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/filestuff.c ./gdb/common/filestuff.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/filestuff.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/filestuff.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Low-level file-handling.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -23,6 +23,7 @@
 #include <unistd.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <algorithm>
 
 #ifdef USE_WIN32API
 #include <winsock2.h>
@@ -146,11 +147,10 @@ fdwalk (int (*func) (void *, int), void 
 
 
 
-/* A VEC holding all the fds open when notice_open_fds was called.  We
-   don't use a hashtab because libiberty isn't linked into gdbserver;
-   and anyway we don't expect there to be many open fds.  */
+/* A vector holding all the fds open when notice_open_fds was called.  We
+   don't use a hashtab because we don't expect there to be many open fds.  */
 
-static VEC (int) *open_fds;
+static std::vector<int> open_fds;
 
 /* An fdwalk callback function used by notice_open_fds.  It puts the
    given file descriptor into the vec.  */
@@ -158,7 +158,7 @@ static VEC (int) *open_fds;
 static int
 do_mark_open_fd (void *ignore, int fd)
 {
-  VEC_safe_push (int, open_fds, fd);
+  open_fds.push_back (fd);
   return 0;
 }
 
@@ -183,18 +183,12 @@ mark_fd_no_cloexec (int fd)
 void
 unmark_fd_no_cloexec (int fd)
 {
-  int i, val;
+  auto it = std::remove (open_fds.begin (), open_fds.end (), fd);
 
-  for (i = 0; VEC_iterate (int, open_fds, i, val); ++i)
-    {
-      if (fd == val)
-	{
-	  VEC_unordered_remove (int, open_fds, i);
-	  return;
-	}
-    }
-
-  gdb_assert_not_reached (_("fd not found in open_fds"));
+  if (it != open_fds.end ())
+    open_fds.erase (it);
+  else
+    gdb_assert_not_reached (_("fd not found in open_fds"));
 }
 
 /* Helper function for close_most_fds that closes the file descriptor
@@ -203,9 +197,7 @@ unmark_fd_no_cloexec (int fd)
 static int
 do_close (void *ignore, int fd)
 {
-  int i, val;
-
-  for (i = 0; VEC_iterate (int, open_fds, i, val); ++i)
+  for (int val : open_fds)
     {
       if (fd == val)
 	{
@@ -300,7 +292,7 @@ gdb_open_cloexec (const char *filename, 
 
 /* See filestuff.h.  */
 
-FILE *
+gdb_file_up
 gdb_fopen_cloexec (const char *filename, const char *opentype)
 {
   FILE *result;
@@ -336,7 +328,7 @@ gdb_fopen_cloexec (const char *filename,
   if (result != NULL)
     maybe_mark_cloexec (fileno (result));
 
-  return result;
+  return gdb_file_up (result);
 }
 
 #ifdef HAVE_SOCKETS
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/filestuff.h ./gdb/common/filestuff.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/filestuff.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/filestuff.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Low-level file-handling.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -46,10 +46,23 @@ extern void close_most_fds (void);
 extern int gdb_open_cloexec (const char *filename, int flags,
 			     /* mode_t */ unsigned long mode);
 
+struct gdb_file_deleter
+{
+  void operator() (FILE *file) const
+  {
+    fclose (file);
+  }
+};
+
+/* A unique pointer to a FILE.  */
+
+typedef std::unique_ptr<FILE, gdb_file_deleter> gdb_file_up;
+
 /* Like 'fopen', but ensures that the returned file descriptor has the
    close-on-exec flag set.  */
 
-extern FILE *gdb_fopen_cloexec (const char *filename, const char *opentype);
+extern gdb_file_up gdb_fopen_cloexec (const char *filename,
+				      const char *opentype);
 
 /* Like 'socketpair', but ensures that the returned file descriptors
    have the close-on-exec flag set.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/format.c ./gdb/common/format.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/format.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/format.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Parse a printf-style format string.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,17 +20,13 @@
 #include "common-defs.h"
 #include "format.h"
 
-struct format_piece *
-parse_format_string (const char **arg)
+format_pieces::format_pieces (const char **arg)
 {
   const char *s;
   char *f, *string;
   const char *prev_start;
   const char *percent_loc;
   char *sub_start, *current_substring;
-  struct format_piece *pieces;
-  int next_frag;
-  int max_pieces;
   enum argclass this_argclass;
 
   s = *arg;
@@ -100,12 +96,7 @@ parse_format_string (const char **arg)
   /* Need extra space for the '\0's.  Doubling the size is sufficient.  */
 
   current_substring = (char *) xmalloc (strlen (string) * 2 + 1000);
-
-  max_pieces = strlen (string) + 2;
-
-  pieces = XNEWVEC (struct format_piece, max_pieces);
-
-  next_frag = 0;
+  m_storage.reset (current_substring);
 
   /* Now scan the string for %-specs and see what kinds of args they want.
      argclass classifies the %-specs so we can give printf-type functions
@@ -135,9 +126,7 @@ parse_format_string (const char **arg)
 	current_substring += f - 1 - prev_start;
 	*current_substring++ = '\0';
 
-	pieces[next_frag].string = sub_start;
-	pieces[next_frag].argclass = literal_piece;
-	next_frag++;
+	m_pieces.emplace_back (sub_start, literal_piece);
 
 	percent_loc = f - 1;
 
@@ -274,8 +263,12 @@ parse_format_string (const char **arg)
 	  case 'g':
 	  case 'E':
 	  case 'G':
-	    if (seen_big_h || seen_big_d || seen_double_big_d)
-	      this_argclass = decfloat_arg;
+	    if (seen_double_big_d)
+	      this_argclass = dec128float_arg;
+	    else if (seen_big_d)
+	      this_argclass = dec64float_arg;
+	    else if (seen_big_h)
+	      this_argclass = dec32float_arg;
 	    else if (seen_big_l)
 	      this_argclass = long_double_arg;
 	    else
@@ -339,9 +332,7 @@ parse_format_string (const char **arg)
 
 	prev_start = f;
 
-	pieces[next_frag].string = sub_start;
-	pieces[next_frag].argclass = this_argclass;
-	next_frag++;
+	m_pieces.emplace_back (sub_start, this_argclass);
       }
 
   /* Record the remainder of the string.  */
@@ -352,44 +343,5 @@ parse_format_string (const char **arg)
   current_substring += f - prev_start;
   *current_substring++ = '\0';
 
-  pieces[next_frag].string = sub_start;
-  pieces[next_frag].argclass = literal_piece;
-  next_frag++;
-
-  /* Record an end-of-array marker.  */
-
-  pieces[next_frag].string = NULL;
-  pieces[next_frag].argclass = literal_piece;
-
-  return pieces;
+  m_pieces.emplace_back (sub_start, literal_piece);
 }
-
-void
-free_format_pieces (struct format_piece *pieces)
-{
-  if (!pieces)
-    return;
-
-  /* We happen to know that all the string pieces are in the block
-     pointed to by the first string piece.  */
-  if (pieces[0].string)
-    xfree (pieces[0].string);
-
-  xfree (pieces);
-}
-
-void
-free_format_pieces_cleanup (void *ptr)
-{
-  struct format_piece **location = (struct format_piece **) ptr;
-
-  if (location == NULL)
-    return;
-
-  if (*location != NULL)
-    {
-      free_format_pieces (*location);
-      *location = NULL;
-    }
-}
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/format.h ./gdb/common/format.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/format.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/format.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Parse a printf-style format string.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -17,6 +17,9 @@
    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 COMMON_FORMAT_H
+#define COMMON_FORMAT_H
+
 #if defined(__MINGW32__) && !defined(PRINTF_HAS_LONG_LONG)
 # define USE_PRINTF_I64 1
 # define PRINTF_HAS_LONG_LONG
@@ -35,7 +38,8 @@ enum argclass
     literal_piece,
     int_arg, long_arg, long_long_arg, ptr_arg,
     string_arg, wide_string_arg, wide_char_arg,
-    double_arg, long_double_arg, decfloat_arg
+    double_arg, long_double_arg,
+    dec32float_arg, dec64float_arg, dec128float_arg
   };
 
 /* A format piece is a section of the format string that may include a
@@ -44,20 +48,46 @@ enum argclass
 
 struct format_piece
 {
-  char *string;
+  format_piece (const char *str, enum argclass argc)
+    : string (str),
+      argclass (argc)
+  {
+  }
+
+  const char *string;
   enum argclass argclass;
 };
 
-/* Return an array of printf fragments found at the given string, and
-   rewrite ARG with a pointer to the end of the format string.  */
+class format_pieces
+{
+public:
+
+  format_pieces (const char **arg);
+  ~format_pieces () = default;
+
+  DISABLE_COPY_AND_ASSIGN (format_pieces);
 
-extern struct format_piece *parse_format_string (const char **arg);
+  format_piece &operator[] (size_t index)
+  {
+    return m_pieces[index];
+  }
+
+  typedef std::vector<format_piece>::iterator iterator;
+
+  iterator begin ()
+  {
+    return m_pieces.begin ();
+  }
 
-/* Given a pointer to an array of format pieces, free any memory that
-   would have been allocated by parse_format_string.  */
+  iterator end ()
+  {
+    return m_pieces.end ();
+  }
 
-extern void free_format_pieces (struct format_piece *frags);
+private:
 
-/* Freeing, cast as a cleanup.  */
+  std::vector<format_piece> m_pieces;
+  gdb::unique_xmalloc_ptr<char> m_storage;
+};
 
-extern void free_format_pieces_cleanup (void *);
+#endif /* COMMON_FORMAT_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/function-view.h ./gdb/common/function-view.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/function-view.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/function-view.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -153,34 +153,6 @@
 
 namespace gdb {
 
-namespace traits {
-  /* A few trait helpers.  */
-  template<typename Predicate>
-  struct Not : public std::integral_constant<bool, !Predicate::value>
-  {};
-
-  template<typename...>
-  struct Or;
-
-  template<>
-  struct Or<> : public std::false_type
-  {};
-
-  template<typename B1>
-  struct Or<B1> : public B1
-  {};
-
-  template<typename B1, typename B2>
-  struct Or<B1, B2>
-    : public std::conditional<B1::value, B1, B2>::type
-  {};
-
-  template<typename B1,typename B2,typename B3, typename... Bn>
-  struct Or<B1, B2, B3, Bn...>
-    : public std::conditional<B1::value, B1, Or<B2, B3, Bn...>>::type
-  {};
-} /* namespace traits */
-
 namespace fv_detail {
 /* Bits shared by all function_view instantiations that do not depend
    on the template parameters.  */
@@ -209,9 +181,9 @@ class function_view<Res (Args...)>
 {
   template<typename From, typename To>
   using CompatibleReturnType
-    = traits::Or<std::is_void<To>,
-		 std::is_same<From, To>,
-		 std::is_convertible<From, To>>;
+    = Or<std::is_void<To>,
+	 std::is_same<From, To>,
+	 std::is_convertible<From, To>>;
 
   /* True if Func can be called with Args, and either the result is
      Res, convertible to Res or Res is void.  */
@@ -227,10 +199,6 @@ class function_view<Res (Args...)>
     : std::is_same<function_view, typename std::decay<Callable>::type>
   {};
 
-  /* Helper to make SFINAE logic easier to read.  */
-  template<typename Condition>
-  using Requires = typename std::enable_if<Condition::value, void>::type;
-
  public:
 
   /* NULL by default.  */
@@ -248,7 +216,7 @@ class function_view<Res (Args...)>
      compatible.  */
   template
     <typename Callable,
-     typename = Requires<traits::Not<IsFunctionView<Callable>>>,
+     typename = Requires<Not<IsFunctionView<Callable>>>,
      typename = Requires<IsCompatibleCallable<Callable>>>
   function_view (Callable &&callable) noexcept
   {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_assert.h ./gdb/common/gdb_assert.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_assert.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/gdb_assert.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GDB-friendly replacement for <assert.h>.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -22,8 +22,7 @@
 /* A static assertion.  This will cause a compile-time error if EXPR,
    which must be a compile-time constant, is false.  */
 
-#define gdb_static_assert(expr) \
-  extern int never_defined_just_used_for_checking[(expr) ? 1 : -1]
+#define gdb_static_assert(expr) static_assert (expr, "")
 
 /* PRAGMATICS: "gdb_assert.h":gdb_assert() is a lower case (rather
    than upper case) macro since that provides the closest fit to the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_locale.h ./gdb/common/gdb_locale.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_locale.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/gdb_locale.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GDB-friendly replacement for <locale.h>.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_optional.h ./gdb/common/gdb_optional.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_optional.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/gdb_optional.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* An optional object.
 
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,46 +20,141 @@
 #ifndef GDB_OPTIONAL_H
 #define GDB_OPTIONAL_H
 
+#include "common/traits.h"
+
 namespace gdb
 {
 
+struct in_place_t
+{
+  explicit in_place_t () = default;
+};
+
+constexpr gdb::in_place_t in_place {};
+
 /* This class attempts to be a compatible subset of std::optional,
    which is slated to be available in C++17.  This class optionally
    holds an object of some type -- by default it is constructed not
    holding an object, but later the object can be "emplaced".  This is
    similar to using std::unique_ptr, but in-object allocation is
-   guaranteed.  */
+   guaranteed.
+
+   Unlike std::optional, we currently only support copy/move
+   construction/assignment of an optional<T> from either exactly
+   optional<T> or T.  I.e., we don't support copy/move
+   construction/assignment from optional<U> or U, when U is a type
+   convertible to T.  Making that work depending on the definitions of
+   T and U is somewhat complicated, and currently the users of this
+   class don't need it.  */
+
 template<typename T>
 class optional
 {
 public:
 
   constexpr optional ()
-    : m_dummy (),
-      m_instantiated (false)
+    : m_dummy ()
+  {}
+
+  template<typename... Args>
+  constexpr optional (in_place_t, Args &&... args)
+    : m_item (std::forward<Args> (args)...),
+      m_instantiated (true)
+  {}
+
+  ~optional ()
+  { this->reset (); }
+
+  /* Copy and move constructors.  */
+
+  optional (const optional &other)
   {
+    if (other.m_instantiated)
+      this->emplace (other.get ());
   }
 
-  ~optional ()
+  optional (optional &&other)
+    noexcept(std::is_nothrow_move_constructible<T> ())
+  {
+    if (other.m_instantiated)
+      this->emplace (std::move (other.get ()));
+  }
+
+  constexpr optional (const T &other)
+    : m_item (other),
+      m_instantiated (true)
+  {}
+
+  constexpr optional (T &&other)
+    noexcept (std::is_nothrow_move_constructible<T> ())
+    : m_item (std::move (other)),
+      m_instantiated (true)
+  {}
+
+  /* Assignment operators.  */
+
+  optional &
+  operator= (const optional &other)
+  {
+    if (m_instantiated && other.m_instantiated)
+      this->get () = other.get ();
+    else
+      {
+	if (other.m_instantiated)
+	  this->emplace (other.get ());
+	else
+	  this->reset ();
+      }
+
+    return *this;
+  }
+
+  optional &
+  operator= (optional &&other)
+    noexcept (And<std::is_nothrow_move_constructible<T>,
+	      std::is_nothrow_move_assignable<T>> ())
+  {
+    if (m_instantiated && other.m_instantiated)
+      this->get () = std::move (other.get ());
+    else
+      {
+	if (other.m_instantiated)
+	  this->emplace (std::move (other.get ()));
+	else
+	  this->reset ();
+      }
+    return *this;
+  }
+
+  optional &
+  operator= (const T &other)
   {
     if (m_instantiated)
-      destroy ();
+      this->get () = other;
+    else
+      this->emplace (other);
+    return *this;
   }
 
-  /* These aren't deleted in std::optional, but it was simpler to
-     delete them here, because currently the users of this class don't
-     need them, and making them depend on the definition of T is
-     somewhat complicated.  */
-  optional (const optional &other) = delete;
-  optional<T> &operator= (const optional &other) = delete;
+  optional &
+  operator= (T &&other)
+    noexcept (And<std::is_nothrow_move_constructible<T>,
+	      std::is_nothrow_move_assignable<T>> ())
+  {
+    if (m_instantiated)
+      this->get () = std::move (other);
+    else
+      this->emplace (std::move (other));
+    return *this;
+  }
 
   template<typename... Args>
-  void emplace (Args &&... args)
+  T &emplace (Args &&... args)
   {
-    if (m_instantiated)
-      destroy ();
+    this->reset ();
     new (&m_item) T (std::forward<Args>(args)...);
     m_instantiated = true;
+    return this->get ();
   }
 
   /* Observers.  */
@@ -87,6 +182,13 @@ public:
   constexpr bool has_value () const noexcept
   { return m_instantiated; }
 
+  /* 'reset' is a 'safe' operation with no precondition.  */
+  void reset () noexcept
+  {
+    if (m_instantiated)
+      this->destroy ();
+  }
+
 private:
 
   /* Destroy the object.  */
@@ -109,7 +211,7 @@ private:
   };
 
   /* True if the object was ever emplaced.  */
-  bool m_instantiated;
+  bool m_instantiated = false;
 };
 
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_ref_ptr.h ./gdb/common/gdb_ref_ptr.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_ref_ptr.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/gdb_ref_ptr.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Reference-counted smart pointer class
 
-   Copyright (C) 2016 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_setjmp.h ./gdb/common/gdb_setjmp.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_setjmp.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/gdb_setjmp.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Portability wrappers for setjmp and longjmp.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_signals.h ./gdb/common/gdb_signals.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_signals.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/gdb_signals.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target signal translation functions for GDB.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Support.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_splay_tree.h ./gdb/common/gdb_splay_tree.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_splay_tree.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/gdb_splay_tree.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,42 @@
+/* GDB wrapper for splay trees.
+
+   Copyright (C) 2017-2018 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 GDB_SPLAY_TREE_H
+#define GDB_SPLAY_TREE_H
+
+#include "splay-tree.h"
+
+namespace gdb {
+
+struct splay_tree_deleter
+{
+  void operator() (splay_tree tree) const
+  {
+    splay_tree_delete (tree);
+  }
+};
+
+} /* namespace gdb */
+
+/* A unique pointer to a splay tree.  */
+
+typedef std::unique_ptr<splay_tree_s, gdb::splay_tree_deleter>
+    gdb_splay_tree_up;
+
+#endif /* ! GDB_SPLAY_TREE_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_sys_time.h ./gdb/common/gdb_sys_time.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_sys_time.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/gdb_sys_time.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_termios.h ./gdb/common/gdb_termios.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_termios.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/gdb_termios.h	1970-01-01 00:00:00.000000000 +0000
@@ -1,78 +0,0 @@
-/* Common terminal interface definitions for GDB and gdbserver.
-   Copyright (C) 1986-2017 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 GDB_TERMIOS_H
-#define GDB_TERMIOS_H
-
-/* If we're using autoconf, it will define HAVE_TERMIOS_H,
-   HAVE_TERMIO_H and HAVE_SGTTY_H for us.  One day we can rewrite
-   ser-unix.c and inflow.c to inspect those names instead of
-   HAVE_TERMIOS, HAVE_TERMIO and the implicit HAVE_SGTTY (when neither
-   HAVE_TERMIOS or HAVE_TERMIO is set).  Until then, make sure that
-   nothing has already defined the one of the names, and do the right
-   thing.  */
-
-#if !defined (HAVE_TERMIOS) && !defined(HAVE_TERMIO) && !defined(HAVE_SGTTY)
-#if defined(HAVE_TERMIOS_H)
-#define HAVE_TERMIOS
-#else /* ! defined (HAVE_TERMIOS_H) */
-#if defined(HAVE_TERMIO_H)
-#define HAVE_TERMIO
-#else /* ! defined (HAVE_TERMIO_H) */
-#if defined(HAVE_SGTTY_H)
-#define HAVE_SGTTY
-#endif /* ! defined (HAVE_SGTTY_H) */
-#endif /* ! defined (HAVE_TERMIO_H) */
-#endif /* ! defined (HAVE_TERMIOS_H) */
-#endif /* !defined (HAVE_TERMIOS) && !defined (HAVE_TERMIO) &&
-	  !defined (HAVE_SGTTY) */
-
-#if defined(HAVE_TERMIOS)
-#include <termios.h>
-#endif
-
-#if !defined(_WIN32) && !defined (HAVE_TERMIOS)
-
-/* Define a common set of macros -- BSD based -- and redefine whatever
-   the system offers to make it look like that.  FIXME: serial.h and
-   ser-*.c deal with this in a much cleaner fashion; as soon as stuff
-   is converted to use them, can get rid of this crap.  */
-
-#ifdef HAVE_TERMIO
-
-#include <termio.h>
-
-#undef TIOCGETP
-#define TIOCGETP TCGETA
-#undef TIOCSETN
-#define TIOCSETN TCSETA
-#undef TIOCSETP
-#define TIOCSETP TCSETAF
-#define TERMINAL struct termio
-
-#else /* sgtty */
-
-#include <fcntl.h>
-#include <sgtty.h>
-#include <sys/ioctl.h>
-#define TERMINAL struct sgttyb
-
-#endif /* sgtty */
-#endif
-
-#endif /* ! GDB_TERMIOS_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_tilde_expand.c ./gdb/common/gdb_tilde_expand.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_tilde_expand.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/gdb_tilde_expand.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,82 @@
+/* Perform tilde expansion on paths for GDB and gdbserver.
+
+   Copyright (C) 2017-2018 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 "gdb_tilde_expand.h"
+#include <glob.h>
+
+/* RAII-style class wrapping "glob".  */
+
+class gdb_glob
+{
+public:
+  /* Construct a "gdb_glob" object by calling "glob" with the provided
+     parameters.  This function can throw if "glob" fails.  */
+  gdb_glob (const char *pattern, int flags,
+	    int (*errfunc) (const char *epath, int eerrno))
+  {
+    int ret = glob (pattern, flags, errfunc, &m_glob);
+
+    if (ret != 0)
+      {
+	if (ret == GLOB_NOMATCH)
+	  error (_("Could not find a match for '%s'."), pattern);
+	else
+	  error (_("glob could not process pattern '%s'."),
+		 pattern);
+      }
+  }
+
+  /* Destroy the object and free M_GLOB.  */
+  ~gdb_glob ()
+  {
+    globfree (&m_glob);
+  }
+
+  /* Return the GL_PATHC component of M_GLOB.  */
+  int pathc () const
+  {
+    return m_glob.gl_pathc;
+  }
+
+  /* Return the GL_PATHV component of M_GLOB.  */
+  char **pathv () const
+  {
+    return m_glob.gl_pathv;
+  }
+
+private:
+  /* The actual glob object we're dealing with.  */
+  glob_t m_glob;
+};
+
+/* See common/gdb_tilde_expand.h.  */
+
+std::string
+gdb_tilde_expand (const char *dir)
+{
+  gdb_glob glob (dir, GLOB_TILDE_CHECK, NULL);
+
+  gdb_assert (glob.pathc () > 0);
+  /* "glob" may return more than one match to the path provided by the
+     user, but we are only interested in the first match.  */
+  std::string expanded_dir = glob.pathv ()[0];
+
+  return expanded_dir;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_tilde_expand.h ./gdb/common/gdb_tilde_expand.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_tilde_expand.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/gdb_tilde_expand.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,27 @@
+/* Perform tilde expansion on paths for GDB and gdbserver.
+
+   Copyright (C) 2017-2018 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 GDB_TILDE_EXPAND_H
+#define GDB_TILDE_EXPAND_H
+
+/* Perform path expansion (i.e., tilde expansion) on DIR, and return
+   the full path.  */
+extern std::string gdb_tilde_expand (const char *dir);
+
+#endif /* ! GDB_TILDE_EXPAND_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_unique_ptr.h ./gdb/common/gdb_unique_ptr.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_unique_ptr.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/gdb_unique_ptr.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* std::unique_ptr specializations for GDB.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -34,6 +34,13 @@ struct xfree_deleter
   void operator() (T *ptr) const { xfree (ptr); }
 };
 
+/* Same, for arrays.  */
+template <typename T>
+struct xfree_deleter<T[]>
+{
+  void operator() (T *ptr) const { xfree (ptr); }
+};
+
 /* Import the standard unique_ptr to our namespace with a custom
    deleter.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_unlinker.h ./gdb/common/gdb_unlinker.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_unlinker.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/gdb_unlinker.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Unlinking class
 
-   Copyright (C) 2016 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_vecs.c ./gdb/common/gdb_vecs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_vecs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/gdb_vecs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Some commonly-used VEC types.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_vecs.h ./gdb/common/gdb_vecs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_vecs.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/gdb_vecs.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Some commonly-used VEC types.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -29,10 +29,6 @@ DEF_VEC_P (char_ptr);
 
 DEF_VEC_P (const_char_ptr);
 
-DEF_VEC_I (int);
-
-DEF_VEC_I (CORE_ADDR);
-
 extern void free_char_ptr_vec (VEC (char_ptr) *char_ptr_vec);
 
 extern struct cleanup *
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_wait.h ./gdb/common/gdb_wait.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/gdb_wait.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/gdb_wait.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Standard wait macros.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/hash_enum.h ./gdb/common/hash_enum.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/hash_enum.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/hash_enum.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,45 @@
+/* A hasher for enums.
+
+   Copyright (C) 2017-2018 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 COMMON_HASH_ENUM_H
+#define COMMON_HASH_ENUM_H
+
+/* A hasher for enums, which was missing in C++11:
+    http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2148
+*/
+
+namespace gdb {
+
+/* Helper struct for hashing enum types.  */
+template<typename T>
+struct hash_enum
+{
+  typedef size_t result_type;
+  typedef T argument_type;
+
+  size_t operator() (T val) const noexcept
+  {
+    using underlying = typename std::underlying_type<T>::type;
+    return std::hash<underlying> () (static_cast<underlying> (val));
+  }
+};
+
+} /* namespace gdb */
+
+#endif /* COMMON_HASH_ENUM_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/host-defs.h ./gdb/common/host-defs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/host-defs.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/host-defs.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Basic host-specific definitions for GDB.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/job-control.c ./gdb/common/job-control.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/job-control.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/job-control.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,86 @@
+/* Job control and terminal related functions, for GDB and gdbserver
+   when running under Unix.
+
+   Copyright (C) 1986-2018 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 "job-control.h"
+#ifdef HAVE_TERMIOS_H
+#include <termios.h>
+#endif
+#include <unistd.h>
+
+/* Nonzero if we have job control.  */
+int job_control;
+
+/* Set the process group ID of the inferior.
+
+   Just using job_control only does part of it because setpgid or
+   setpgrp might not exist on a system without job control.
+
+   For a more clean implementation, in libiberty, put a setpgid which merely
+   calls setpgrp and a setpgrp which does nothing (any system with job control
+   will have one or the other).  */
+
+int
+gdb_setpgid ()
+{
+  int retval = 0;
+
+  if (job_control)
+    {
+#ifdef HAVE_SETPGID
+      /* The call setpgid (0, 0) is supposed to work and mean the same
+         thing as this, but on Ultrix 4.2A it fails with EPERM (and
+         setpgid (getpid (), getpid ()) succeeds).  */
+      retval = setpgid (getpid (), getpid ());
+#else
+#ifdef HAVE_SETPGRP
+#ifdef SETPGRP_VOID
+      retval = setpgrp ();
+#else
+      retval = setpgrp (getpid (), getpid ());
+#endif
+#endif /* HAVE_SETPGRP */
+#endif /* HAVE_SETPGID */
+    }
+
+  return retval;
+}
+
+/* See common/common-terminal.h.  */
+
+void
+have_job_control ()
+{
+  /* OK, figure out whether we have job control.  If termios is not
+     available, leave job_control 0.  */
+#if defined (HAVE_TERMIOS_H)
+  /* Do all systems with termios have the POSIX way of identifying job
+     control?  I hope so.  */
+#ifdef _POSIX_JOB_CONTROL
+  job_control = 1;
+#else
+#ifdef _SC_JOB_CONTROL
+  job_control = sysconf (_SC_JOB_CONTROL);
+#else
+  job_control = 0;		/* Have to assume the worst.  */
+#endif /* _SC_JOB_CONTROL */
+#endif /* _POSIX_JOB_CONTROL */
+#endif /* HAVE_TERMIOS_H */
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/job-control.h ./gdb/common/job-control.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/job-control.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/job-control.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,38 @@
+/* Job control and terminal related functions, for GDB and gdbserver
+   when running under Unix.
+
+   Copyright (C) 1986-2018 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 JOB_CONTROL_H
+#define JOB_CONTROL_H
+
+/* Do we have job control?  Can be assumed to always be the same
+   within a given run of GDB.  Use in gdb/inflow.c and
+   common/common-inflow.c.  */
+extern int job_control;
+
+/* Set the process group of the caller to its own pid, or do nothing
+   if we lack job control.  */
+extern int gdb_setpgid ();
+
+/* Determine whether we have job control, and set variable JOB_CONTROL
+   accordingly.  This function must be called before any use of
+   JOB_CONTROL.  */
+extern void have_job_control ();
+
+#endif /* ! JOB_CONTROL_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/mingw-strerror.c ./gdb/common/mingw-strerror.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/mingw-strerror.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/mingw-strerror.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Safe version of strerror for MinGW, for GDB, the GNU debugger.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/new-op.c ./gdb/common/new-op.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/new-op.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/new-op.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Replace operator new/new[], for GDB, the GNU debugger.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/offset-type.h ./gdb/common/offset-type.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/offset-type.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/offset-type.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Offset types for GDB.
 
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/poison.h ./gdb/common/poison.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/poison.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/poison.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,219 @@
+/* Poison symbols at compile time.
+
+   Copyright (C) 2017-2018 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 COMMON_POISON_H
+#define COMMON_POISON_H
+
+#include "traits.h"
+
+/* Poison memset of non-POD types.  The idea is catching invalid
+   initialization of non-POD structs that is easy to be introduced as
+   side effect of refactoring.  For example, say this:
+
+ struct S { VEC(foo_s) *m_data; };
+
+is converted to this at some point:
+
+ struct S {
+   S() { m_data.reserve (10); }
+   std::vector<foo> m_data;
+ };
+
+and old code was initializing S objects like this:
+
+ struct S s;
+ memset (&s, 0, sizeof (S)); // whoops, now wipes vector.
+
+Declaring memset as deleted for non-POD types makes the memset above
+be a compile-time error.  */
+
+/* Helper for SFINAE.  True if "T *" is memsettable.  I.e., if T is
+   either void, or POD.  */
+template<typename T>
+struct IsMemsettable
+  : gdb::Or<std::is_void<T>,
+	    std::is_pod<T>>
+{};
+
+template <typename T,
+	  typename = gdb::Requires<gdb::Not<IsMemsettable<T>>>>
+void *memset (T *s, int c, size_t n) = delete;
+
+#if HAVE_IS_TRIVIALLY_COPYABLE
+
+/* Similarly, poison memcpy and memmove of non trivially-copyable
+   types, which is undefined.  */
+
+/* True if "T *" is relocatable.  I.e., copyable with memcpy/memmove.
+   I.e., T is either trivially copyable, or void.  */
+template<typename T>
+struct IsRelocatable
+  : gdb::Or<std::is_void<T>,
+	    std::is_trivially_copyable<T>>
+{};
+
+/* True if both source and destination are relocatable.  */
+
+template <typename D, typename S>
+using BothAreRelocatable
+  = gdb::And<IsRelocatable<D>, IsRelocatable<S>>;
+
+template <typename D, typename S,
+	  typename = gdb::Requires<gdb::Not<BothAreRelocatable<D, S>>>>
+void *memcpy (D *dest, const S *src, size_t n) = delete;
+
+template <typename D, typename S,
+	  typename = gdb::Requires<gdb::Not<BothAreRelocatable<D, S>>>>
+void *memmove (D *dest, const S *src, size_t n) = delete;
+
+#endif /* HAVE_IS_TRIVIALLY_COPYABLE */
+
+/* Poison XNEW and friends to catch usages of malloc-style allocations on
+   objects that require new/delete.  */
+
+template<typename T>
+using IsMallocable = std::is_pod<T>;
+
+template<typename T>
+using IsFreeable = gdb::Or<std::is_trivially_destructible<T>, std::is_void<T>>;
+
+template <typename T, typename = gdb::Requires<gdb::Not<IsFreeable<T>>>>
+void free (T *ptr) = delete;
+
+template<typename T>
+static T *
+xnew ()
+{
+  static_assert (IsMallocable<T>::value, "Trying to use XNEW with a non-POD \
+data type.  Use operator new instead.");
+  return XNEW (T);
+}
+
+#undef XNEW
+#define XNEW(T) xnew<T>()
+
+template<typename T>
+static T *
+xcnew ()
+{
+  static_assert (IsMallocable<T>::value, "Trying to use XCNEW with a non-POD \
+data type.  Use operator new instead.");
+  return XCNEW (T);
+}
+
+#undef XCNEW
+#define XCNEW(T) xcnew<T>()
+
+template<typename T>
+static void
+xdelete (T *p)
+{
+  static_assert (IsFreeable<T>::value, "Trying to use XDELETE with a non-POD \
+data type.  Use operator delete instead.");
+  XDELETE (p);
+}
+
+#undef XDELETE
+#define XDELETE(P) xdelete (P)
+
+template<typename T>
+static T *
+xnewvec (size_t n)
+{
+  static_assert (IsMallocable<T>::value, "Trying to use XNEWVEC with a \
+non-POD data type.  Use operator new[] (or std::vector) instead.");
+  return XNEWVEC (T, n);
+}
+
+#undef XNEWVEC
+#define XNEWVEC(T, N) xnewvec<T> (N)
+
+template<typename T>
+static T *
+xcnewvec (size_t n)
+{
+  static_assert (IsMallocable<T>::value, "Trying to use XCNEWVEC with a \
+non-POD data type.  Use operator new[] (or std::vector) instead.");
+  return XCNEWVEC (T, n);
+}
+
+#undef XCNEWVEC
+#define XCNEWVEC(T, N) xcnewvec<T> (N)
+
+template<typename T>
+static T *
+xresizevec (T *p, size_t n)
+{
+  static_assert (IsMallocable<T>::value, "Trying to use XRESIZEVEC with a \
+non-POD data type.");
+  return XRESIZEVEC (T, p, n);
+}
+
+#undef XRESIZEVEC
+#define XRESIZEVEC(T, P, N) xresizevec<T> (P, N)
+
+template<typename T>
+static void
+xdeletevec (T *p)
+{
+  static_assert (IsFreeable<T>::value, "Trying to use XDELETEVEC with a \
+non-POD data type.  Use operator delete[] (or std::vector) instead.");
+  XDELETEVEC (p);
+}
+
+#undef XDELETEVEC
+#define XDELETEVEC(P) xdeletevec (P)
+
+template<typename T>
+static T *
+xnewvar (size_t s)
+{
+  static_assert (IsMallocable<T>::value, "Trying to use XNEWVAR with a \
+non-POD data type.");
+  return XNEWVAR (T, s);;
+}
+
+#undef XNEWVAR
+#define XNEWVAR(T, S) xnewvar<T> (S)
+
+template<typename T>
+static T *
+xcnewvar (size_t s)
+{
+  static_assert (IsMallocable<T>::value, "Trying to use XCNEWVAR with a \
+non-POD data type.");
+  return XCNEWVAR (T, s);
+}
+
+#undef XCNEWVAR
+#define XCNEWVAR(T, S) xcnewvar<T> (S)
+
+template<typename T>
+static T *
+xresizevar (T *p, size_t s)
+{
+  static_assert (IsMallocable<T>::value, "Trying to use XRESIZEVAR with a \
+non-POD data type.");
+  return XRESIZEVAR (T, p, s);
+}
+
+#undef XRESIZEVAR
+#define XRESIZEVAR(T, P, S) xresizevar<T> (P, S)
+
+#endif /* COMMON_POISON_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/posix-strerror.c ./gdb/common/posix-strerror.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/posix-strerror.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/posix-strerror.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Safe version of strerror for POSIX systems for GDB, the GNU debugger.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/preprocessor.h ./gdb/common/preprocessor.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/preprocessor.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/preprocessor.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -24,6 +24,10 @@
 #define CONCAT_1(a, b) a ## b
 #define CONCAT(a, b) CONCAT_1 (a, b)
 
+/* Stringification.  */
+#define STRINGIFY_1(x) #x
+#define STRINGIFY(x) STRINGIFY_1 (x)
+
 /* Escape parens out.  Useful if you need to pass an argument that
    includes commas to another macro.  */
 #define ESC(...) __VA_ARGS__
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/print-utils.c ./gdb/common/print-utils.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/print-utils.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/print-utils.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Cell-based print utility routines for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/print-utils.h ./gdb/common/print-utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/print-utils.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/print-utils.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Cell-based print utility routines for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/ptid.c ./gdb/common/ptid.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/ptid.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/ptid.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* The ptid_t type and common functions operating on it.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
    
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/ptid.h ./gdb/common/ptid.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/ptid.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/ptid.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* The ptid_t type and common functions operating on it.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/queue.h ./gdb/common/queue.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/queue.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/queue.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* General queue data structure for GDB, the GNU debugger.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/refcounted-object.h ./gdb/common/refcounted-object.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/refcounted-object.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/refcounted-object.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,54 @@
+/* Base class of intrusively reference-counted objects.
+   Copyright (C) 2017-2018 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 REFCOUNTED_OBJECT_H
+#define REFCOUNTED_OBJECT_H
+
+/* Base class of intrusively reference-countable objects.
+   Incrementing and decrementing the reference count is an external
+   responsibility.  */
+
+class refcounted_object
+{
+public:
+  refcounted_object () = default;
+
+  /* Increase the refcount.  */
+  void incref ()
+  {
+    gdb_assert (m_refcount >= 0);
+    m_refcount++;
+  }
+
+  /* Decrease the refcount.  */
+  void decref ()
+  {
+    m_refcount--;
+    gdb_assert (m_refcount >= 0);
+  }
+
+  int refcount () const { return m_refcount; }
+
+private:
+  DISABLE_COPY_AND_ASSIGN (refcounted_object);
+
+  /* The reference count.  */
+  int m_refcount = 0;
+};
+
+#endif /* REFCOUNTED_OBJECT_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/rsp-low.c ./gdb/common/rsp-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/rsp-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/rsp-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low-level RSP routines for GDB, the GNU debugger.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -92,8 +92,8 @@ pack_hex_byte (char *pkt, int byte)
 
 /* See rsp-low.h.  */
 
-char *
-unpack_varlen_hex (char *buff,	/* packet to parse */
+const char *
+unpack_varlen_hex (const char *buff,	/* packet to parse */
 		   ULONGEST *result)
 {
   int nibble;
@@ -132,6 +132,43 @@ hex2bin (const char *hex, gdb_byte *bin,
 
 /* See rsp-low.h.  */
 
+gdb::byte_vector
+hex2bin (const char *hex)
+{
+  size_t bin_len = strlen (hex) / 2;
+  gdb::byte_vector bin (bin_len);
+
+  hex2bin (hex, bin.data (), bin_len);
+
+  return bin;
+}
+
+/* See rsp-low.h.  */
+
+std::string
+hex2str (const char *hex)
+{
+  std::string ret;
+  size_t len = strlen (hex);
+
+  ret.reserve (len / 2);
+  for (size_t i = 0; i < len; ++i)
+    {
+      if (hex[0] == '\0' || hex[1] == '\0')
+	{
+	  /* Hex string is short, or of uneven length.  Return what we
+	     have so far.  */
+	  return ret;
+	}
+      ret += fromhex (hex[0]) * 16 + fromhex (hex[1]);
+      hex += 2;
+    }
+
+  return ret;
+}
+
+/* See rsp-low.h.  */
+
 int
 bin2hex (const gdb_byte *bin, char *hex, int count)
 {
@@ -146,6 +183,23 @@ bin2hex (const gdb_byte *bin, char *hex,
   return i;
 }
 
+/* See rsp-low.h.  */
+
+std::string
+bin2hex (const gdb_byte *bin, int count)
+{
+  std::string ret;
+
+  ret.reserve (count * 2);
+  for (int i = 0; i < count; ++i)
+    {
+      ret += tohex ((*bin >> 4) & 0xf);
+      ret += tohex (*bin++ & 0xf);
+    }
+
+  return ret;
+}
+
 /* Return whether byte B needs escaping when sent as part of binary data.  */
 
 static int
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/rsp-low.h ./gdb/common/rsp-low.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/rsp-low.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/rsp-low.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low-level RSP routines for GDB, the GNU debugger.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,6 +20,8 @@
 #ifndef COMMON_RSP_LOW_H
 #define COMMON_RSP_LOW_H
 
+#include "common/byte-vector.h"
+
 /* Convert hex digit A to a number, or throw an exception.  */
 
 extern int fromhex (int a);
@@ -41,7 +43,7 @@ extern char *pack_hex_byte (char *pkt, i
    in RESULT.  Reads until a non-hex digit is seen.  Returns a pointer
    to the terminating character.  */
 
-extern char *unpack_varlen_hex (char *buff, ULONGEST *result);
+extern const char *unpack_varlen_hex (const char *buff, ULONGEST *result);
 
 /* HEX is a string of characters representing hexadecimal digits.
    Convert pairs of hex digits to bytes and store sequentially into
@@ -52,6 +54,14 @@ extern char *unpack_varlen_hex (char *bu
 
 extern int hex2bin (const char *hex, gdb_byte *bin, int count);
 
+/* Like the above, but return a gdb::byte_vector.  */
+
+gdb::byte_vector hex2bin (const char *hex);
+
+/* Like hex2bin, but return a std::string.  */
+
+extern std::string hex2str (const char *hex);
+
 /* Convert some bytes to a hexadecimal representation.  BIN holds the
    bytes to convert.  COUNT says how many bytes to convert.  The
    resulting characters are stored in HEX, followed by a NUL
@@ -59,6 +69,10 @@ extern int hex2bin (const char *hex, gdb
 
 extern int bin2hex (const gdb_byte *bin, char *hex, int count);
 
+/* Overloaded version of bin2hex that returns a std::string.  */
+
+extern std::string bin2hex (const gdb_byte *bin, int count);
+
 /* Convert BUFFER, binary data at least LEN_UNITS addressable memory units
    long, into escaped binary data in OUT_BUF.  Only copy memory units that fit
    completely in OUT_BUF.  Set *OUT_LEN_UNITS to the number of units from
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/run-time-clock.c ./gdb/common/run-time-clock.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/run-time-clock.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/run-time-clock.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* User/system CPU time clocks that follow the std::chrono interface.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/run-time-clock.h ./gdb/common/run-time-clock.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/run-time-clock.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/run-time-clock.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* User/system CPU time clocks that follow the std::chrono interface.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/scoped_restore.h ./gdb/common/scoped_restore.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/scoped_restore.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/scoped_restore.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* scoped_restore, a simple class for saving and restoring a value
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -21,8 +21,23 @@
 #define SCOPED_RESTORE_H
 
 /* Base class for scoped_restore_tmpl.  */
-struct scoped_restore_base
+class scoped_restore_base
 {
+public:
+  /* This informs the (scoped_restore_tmpl<T>) dtor that you no longer
+     want the original value restored.  */
+  void release () const
+  { m_saved_var = NULL; }
+
+protected:
+  scoped_restore_base (void *saved_var)
+    : m_saved_var (saved_var)
+  {}
+
+  /* The type-erased saved variable.  This is here so that clients can
+     call release() on a "scoped_restore" local, which is a typedef to
+     a scoped_restore_base.  See below.  */
+  mutable void *m_saved_var;
 };
 
 /* A convenience typedef.  Users of make_scoped_restore declare the
@@ -40,7 +55,7 @@ class scoped_restore_tmpl : public scope
      of *VAR.  *VAR will be restored when this scoped_restore object
      is destroyed.  */
   scoped_restore_tmpl (T *var)
-    : m_saved_var (var),
+    : scoped_restore_base (var),
       m_saved_value (*var)
   {
   }
@@ -52,14 +67,14 @@ class scoped_restore_tmpl : public scope
      E.g.: T='base'; T2='derived'.  */
   template <typename T2>
   scoped_restore_tmpl (T *var, T2 value)
-    : m_saved_var (var),
+    : scoped_restore_base (var),
       m_saved_value (*var)
   {
     *var = value;
   }
 
   scoped_restore_tmpl (const scoped_restore_tmpl<T> &other)
-    : m_saved_var (other.m_saved_var),
+    : scoped_restore_base {other.m_saved_var},
       m_saved_value (other.m_saved_value)
   {
     other.m_saved_var = NULL;
@@ -67,18 +82,19 @@ class scoped_restore_tmpl : public scope
 
   ~scoped_restore_tmpl ()
   {
-    if (m_saved_var != NULL)
-      *m_saved_var = m_saved_value;
+    if (saved_var () != NULL)
+      *saved_var () = m_saved_value;
   }
 
- private:
+private:
+  /* Return a pointer to the saved variable with its type
+     restored.  */
+  T *saved_var ()
+  { return static_cast<T *> (m_saved_var); }
 
   /* No need for this.  It is intentionally not defined anywhere.  */
   scoped_restore_tmpl &operator= (const scoped_restore_tmpl &);
 
-  /* The saved variable.  */
-  mutable T *m_saved_var;
-
   /* The saved value.  */
   const T m_saved_value;
 };
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/selftest.c ./gdb/common/selftest.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/selftest.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/selftest.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,112 @@
+/* GDB self-testing.
+   Copyright (C) 2016-2018 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 "common-exceptions.h"
+#include "common-debug.h"
+#include "selftest.h"
+#include <map>
+
+namespace selftests
+{
+/* All the tests that have been registered.  Using an std::map allows keeping
+   the order of tests stable and easily looking up whether a test name
+   exists.  */
+
+static std::map<std::string, std::unique_ptr<selftest>> tests;
+
+/* A selftest that calls the test function without arguments.  */
+
+struct simple_selftest : public selftest
+{
+  simple_selftest (self_test_function *function_)
+  : function (function_)
+  {}
+
+  void operator() () const override
+  {
+    function ();
+  }
+
+  self_test_function *function;
+};
+
+/* See selftest.h.  */
+
+void
+register_test (const std::string &name, selftest *test)
+{
+  /* Check that no test with this name already exist.  */
+  gdb_assert (tests.find (name) == tests.end ());
+
+  tests[name] = std::unique_ptr<selftest> (test);
+}
+
+/* See selftest.h.  */
+
+void
+register_test (const std::string &name, self_test_function *function)
+{
+  register_test (name, new simple_selftest (function));
+}
+
+/* See selftest.h.  */
+
+void
+run_tests (const char *filter)
+{
+  int ran = 0, failed = 0;
+
+  for (const auto &pair : tests)
+    {
+      const std::string &name = pair.first;
+      const std::unique_ptr<selftest> &test = pair.second;
+
+      if (filter != NULL && *filter != '\0'
+	  && name.find (filter) == std::string::npos)
+	continue;
+
+      TRY
+	{
+	  debug_printf (_("Running selftest %s.\n"), name.c_str ());
+	  ++ran;
+	  (*test) ();
+	}
+      CATCH (ex, RETURN_MASK_ERROR)
+	{
+	  ++failed;
+	  debug_printf ("Self test failed: %s\n", ex.message);
+	}
+      END_CATCH
+
+      reset ();
+    }
+
+  debug_printf (_("Ran %d unit tests, %d failed\n"),
+		ran, failed);
+}
+
+/* See selftest.h.  */
+
+void for_each_selftest (for_each_selftest_ftype func)
+{
+  for (const auto &pair : tests)
+    func (pair.first);
+}
+
+} // namespace selftests
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/selftest.h ./gdb/common/selftest.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/selftest.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/common/selftest.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,73 @@
+/* GDB self-testing.
+   Copyright (C) 2016-2018 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 SELFTEST_H
+#define SELFTEST_H
+
+/* A test is just a function that does some checks and throws an
+   exception if something has gone wrong.  */
+
+typedef void self_test_function (void);
+
+namespace selftests
+{
+
+/* Interface for the various kinds of selftests.  */
+
+struct selftest
+{
+  virtual ~selftest () = default;
+  virtual void operator() () const = 0;
+};
+
+/* Register a new self-test.  */
+
+extern void register_test (const std::string &name, selftest *test);
+
+/* Register a new self-test.  */
+
+extern void register_test (const std::string &name,
+			   self_test_function *function);
+
+/* Run all the self tests.  This print a message describing the number
+   of test and the number of failures.
+
+   If FILTER is not NULL and not empty, only tests with names containing FILTER
+   will be ran.  */
+
+extern void run_tests (const char *filter);
+
+/* Reset GDB or GDBserver's internal state.  */
+extern void reset ();
+
+typedef void for_each_selftest_ftype (const std::string &name);
+
+/* Call FUNC for each registered selftest.  */
+
+extern void for_each_selftest (for_each_selftest_ftype func);
+}
+
+/* Check that VALUE is true, and, if not, throw an exception.  */
+
+#define SELF_CHECK(VALUE)						\
+  do {									\
+    if (!(VALUE))							\
+      error (_("self-test failed at %s:%d"), __FILE__, __LINE__);	\
+  } while (0)
+
+#endif /* SELFTEST_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/signals.c ./gdb/common/signals.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/signals.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/signals.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target signal translation functions for GDB.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Support.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/signals-state-save-restore.c ./gdb/common/signals-state-save-restore.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/signals-state-save-restore.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/signals-state-save-restore.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -35,7 +35,7 @@ static sigset_t original_signal_mask;
 /* See signals-state-save-restore.h.   */
 
 void
-save_original_signals_state (void)
+save_original_signals_state (bool quiet)
 {
 #ifdef HAVE_SIGACTION
   int i;
@@ -45,6 +45,8 @@ save_original_signals_state (void)
   if (res == -1)
     perror_with_name (("sigprocmask"));
 
+  bool found_preinstalled = false;
+
   for (i = 1; i < NSIG; i++)
     {
       struct sigaction *oldact = &original_signal_actions[i];
@@ -59,9 +61,31 @@ save_original_signals_state (void)
 	perror_with_name (("sigaction"));
 
       /* If we find a custom signal handler already installed, then
-	 this function was called too late.  */
-      if (oldact->sa_handler != SIG_DFL && oldact->sa_handler != SIG_IGN)
-	internal_error (__FILE__, __LINE__, _("unexpected signal handler"));
+	 this function was called too late.  This is a warning instead
+	 of an internal error because this can also happen if you
+	 LD_PRELOAD a library that installs a signal handler early via
+	 __attribute__((constructor)), like libSegFault.so.  */
+      if (!quiet
+	  && oldact->sa_handler != SIG_DFL
+	  && oldact->sa_handler != SIG_IGN)
+	{
+	  found_preinstalled = true;
+
+	  /* Use raw fprintf here because we're being called in early
+	     startup, because GDB's filtered streams are are
+	     created.  */
+	  fprintf (stderr,
+		   _("warning: Found custom handler for signal "
+		     "%d (%s) preinstalled.\n"), i,
+		   strsignal (i));
+	}
+    }
+
+  if (found_preinstalled)
+    {
+      fprintf (stderr, _("\
+Some signal dispositions inherited from the environment (SIG_DFL/SIG_IGN)\n\
+won't be propagated to spawned programs.\n"));
     }
 #endif
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/signals-state-save-restore.h ./gdb/common/signals-state-save-restore.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/signals-state-save-restore.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/signals-state-save-restore.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,9 +28,10 @@
    back to what was originally inherited from gdb/gdbserver's parent,
    just before execing the target program to debug.  */
 
-/* Save the signal state of all signals.  */
+/* Save the signal state of all signals.  If !QUIET, warn if we detect
+   a custom signal handler preinstalled.  */
 
-extern void save_original_signals_state (void);
+extern void save_original_signals_state (bool quiet);
 
 /* Restore the signal state of all signals.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/symbol.h ./gdb/common/symbol.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/symbol.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/symbol.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Declarations of common symbol functions.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/traits.h ./gdb/common/traits.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/traits.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/traits.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -18,6 +18,21 @@
 #ifndef COMMON_TRAITS_H
 #define COMMON_TRAITS_H
 
+#include <type_traits>
+
+/* GCC does not understand __has_feature.  */
+#if !defined(__has_feature)
+# define __has_feature(x) 0
+#endif
+
+/* HAVE_IS_TRIVIALLY_COPYABLE is defined as 1 iff
+   std::is_trivially_copyable is available.  GCC only implemented it
+   in GCC 5.  */
+#if (__has_feature(is_trivially_copyable) \
+     || (defined __GNUC__ && __GNUC__ >= 5))
+# define HAVE_IS_TRIVIALLY_COPYABLE 1
+#endif
+
 namespace gdb {
 
 /* Pre C++14-safe (CWG 1558) version of C++17's std::void_t.  See
@@ -29,6 +44,58 @@ struct make_void { typedef void type; };
 template<typename... Ts>
 using void_t = typename make_void<Ts...>::type;
 
+/* A few trait helpers, mainly stolen from libstdc++.  Uppercase
+   because "and/or", etc. are reserved keywords.  */
+
+template<typename Predicate>
+struct Not : public std::integral_constant<bool, !Predicate::value>
+{};
+
+template<typename...>
+struct Or;
+
+template<>
+struct Or<> : public std::false_type
+{};
+
+template<typename B1>
+struct Or<B1> : public B1
+{};
+
+template<typename B1, typename B2>
+struct Or<B1, B2>
+  : public std::conditional<B1::value, B1, B2>::type
+{};
+
+template<typename B1,typename B2,typename B3, typename... Bn>
+struct Or<B1, B2, B3, Bn...>
+  : public std::conditional<B1::value, B1, Or<B2, B3, Bn...>>::type
+{};
+
+template<typename...>
+struct And;
+
+template<>
+struct And<> : public std::true_type
+{};
+
+template<typename B1>
+struct And<B1> : public B1
+{};
+
+template<typename B1, typename B2>
+struct And<B1, B2>
+  : public std::conditional<B1::value, B2, B1>::type
+{};
+
+template<typename B1, typename B2, typename B3, typename... Bn>
+struct And<B1, B2, B3, Bn...>
+  : public std::conditional<B1::value, And<B2, B3, Bn...>, B1>::type
+{};
+
+/* Concepts-light-like helper to make SFINAE logic easier to read.  */
+template<typename Condition>
+using Requires = typename std::enable_if<Condition::value, void>::type;
 }
 
 #endif /* COMMON_TRAITS_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/underlying.h ./gdb/common/underlying.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/underlying.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/underlying.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/valid-expr.h ./gdb/common/valid-expr.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/valid-expr.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/valid-expr.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Compile-time valid expression checker for GDB, the GNU debugger.
 
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/vec.c ./gdb/common/vec.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/vec.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/vec.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Vector API for GDB.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
    Contributed by Nathan Sidwell <nathan@codesourcery.com>
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/vec.h ./gdb/common/vec.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/vec.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/vec.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Vector API for GDB.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
    Contributed by Nathan Sidwell <nathan@codesourcery.com>
 
    This file is part of GDB.
@@ -20,6 +20,22 @@
 #if !defined (GDB_VEC_H)
 #define GDB_VEC_H
 
+#include "diagnostics.h"
+
+/* clang has a bug that makes it warn (-Wunused-function) about unused functions
+   that are the result of the DEF_VEC_* macro expansion.  See:
+
+     https://bugs.llvm.org/show_bug.cgi?id=22712
+
+   We specifically ignore this warning for the vec functions when the compiler
+   is clang.  */
+#ifdef __clang__
+# define DIAGNOSTIC_IGNORE_UNUSED_VEC_FUNCTION \
+    DIAGNOSTIC_IGNORE_UNUSED_FUNCTION
+#else
+# define DIAGNOSTIC_IGNORE_UNUSED_VEC_FUNCTION
+#endif
+
 /* The macros here implement a set of templated vector types and
    associated interfaces.  These templates are implemented with
    macros, as we're not in C++ land.  The interface functions are
@@ -408,6 +424,8 @@ typedef struct VEC(T)							  \
 
 /* Vector of integer-like object.  */
 #define DEF_VEC_I(T)							  \
+DIAGNOSTIC_PUSH 							  \
+DIAGNOSTIC_IGNORE_UNUSED_VEC_FUNCTION					  \
 static inline void VEC_OP (T,must_be_integral_type) (void)		  \
 {									  \
   (void)~(T)0;								  \
@@ -416,10 +434,13 @@ static inline void VEC_OP (T,must_be_int
 VEC_T(T);								  \
 DEF_VEC_FUNC_P(T)							  \
 DEF_VEC_ALLOC_FUNC_I(T)							  \
+DIAGNOSTIC_POP								  \
 struct vec_swallow_trailing_semi
 
 /* Vector of pointer to object.  */
 #define DEF_VEC_P(T)							  \
+DIAGNOSTIC_PUSH 							  \
+DIAGNOSTIC_IGNORE_UNUSED_VEC_FUNCTION					  \
 static inline void VEC_OP (T,must_be_pointer_type) (void)		  \
 {									  \
   (void)((T)1 == (void *)1);						  \
@@ -428,13 +449,17 @@ static inline void VEC_OP (T,must_be_poi
 VEC_T(T);								  \
 DEF_VEC_FUNC_P(T)							  \
 DEF_VEC_ALLOC_FUNC_P(T)							  \
+DIAGNOSTIC_POP								  \
 struct vec_swallow_trailing_semi
 
 /* Vector of object.  */
 #define DEF_VEC_O(T)							  \
+DIAGNOSTIC_PUSH 							  \
+DIAGNOSTIC_IGNORE_UNUSED_VEC_FUNCTION					  \
 VEC_T(T);								  \
 DEF_VEC_FUNC_O(T)							  \
 DEF_VEC_ALLOC_FUNC_O(T)							  \
+DIAGNOSTIC_POP								  \
 struct vec_swallow_trailing_semi
 
 /* Avoid offsetof (or its usual C implementation) as it triggers
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/version.h ./gdb/common/version.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/version.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/version.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Version information for GDB.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/x86-xstate.h ./gdb/common/x86-xstate.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/x86-xstate.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/x86-xstate.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common code for x86 XSAVE extended state.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/xml-utils.c ./gdb/common/xml-utils.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/xml-utils.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/xml-utils.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Shared helper routines for manipulating XML.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,64 +20,37 @@
 #include "common-defs.h"
 #include "xml-utils.h"
 
-/* Return a malloc allocated string with special characters from TEXT
-   replaced by entity references.  */
+/* Return a string with special characters from TEXT replaced by entity
+   references.  */
 
-char *
+std::string
 xml_escape_text (const char *text)
 {
-  char *result;
-  int i, special;
-
-  /* Compute the length of the result.  */
-  for (i = 0, special = 0; text[i] != '\0'; i++)
-    switch (text[i])
-      {
-      case '\'':
-      case '\"':
-	special += 5;
-	break;
-      case '&':
-	special += 4;
-	break;
-      case '<':
-      case '>':
-	special += 3;
-	break;
-      default:
-	break;
-      }
+  std::string result;
 
   /* Expand the result.  */
-  result = (char *) xmalloc (i + special + 1);
-  for (i = 0, special = 0; text[i] != '\0'; i++)
+  for (int i = 0; text[i] != '\0'; i++)
     switch (text[i])
       {
       case '\'':
-	strcpy (result + i + special, "&apos;");
-	special += 5;
+	result += "&apos;";
 	break;
       case '\"':
-	strcpy (result + i + special, "&quot;");
-	special += 5;
+	result += "&quot;";
 	break;
       case '&':
-	strcpy (result + i + special, "&amp;");
-	special += 4;
+	result += "&amp;";
 	break;
       case '<':
-	strcpy (result + i + special, "&lt;");
-	special += 3;
+	result += "&lt;";
 	break;
       case '>':
-	strcpy (result + i + special, "&gt;");
-	special += 3;
+	result += "&gt;";
 	break;
       default:
-	result[i + special] = text[i];
+	result += text[i];
 	break;
       }
-  result[i + special] = '\0';
 
   return result;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/xml-utils.h ./gdb/common/xml-utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/common/xml-utils.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/common/xml-utils.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Shared helper routines for manipulating XML.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -23,6 +23,6 @@
 /* Return a malloc allocated string with special characters from TEXT
    replaced by entity references.  */
 
-extern char *xml_escape_text (const char *text);
+extern std::string xml_escape_text (const char *text);
 
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile.c ./gdb/compile/compile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/compile/compile.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* General Compile and inject code
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -39,6 +39,8 @@
 #include "osabi.h"
 #include "gdb_wait.h"
 #include "valprint.h"
+#include "common/gdb_optional.h"
+#include "common/gdb_unlinker.h"
 
 
 
@@ -69,7 +71,7 @@ show_compile_debug (struct ui_file *file
    Return 1 if seen and update *ARG.  */
 
 static int
-check_raw_argument (char **arg)
+check_raw_argument (const char **arg)
 {
   *arg = skip_spaces (*arg);
 
@@ -85,11 +87,9 @@ check_raw_argument (char **arg)
    that may contain calls to the GCC compiler.  */
 
 static void
-compile_file_command (char *arg, int from_tty)
+compile_file_command (const char *arg, int from_tty)
 {
   enum compile_i_scope_types scope = COMPILE_I_SIMPLE_SCOPE;
-  char *buffer;
-  struct cleanup *cleanup;
 
   scoped_restore save_async = make_scoped_restore (&current_ui->async, 0);
 
@@ -113,12 +113,9 @@ compile_file_command (char *arg, int fro
     error (_("Unknown argument specified."));
 
   arg = skip_spaces (arg);
-  arg = gdb_abspath (arg);
-  cleanup = make_cleanup (xfree, arg);
-  buffer = xstrprintf ("#include \"%s\"\n", arg);
-  make_cleanup (xfree, buffer);
-  eval_compile_command (NULL, buffer, scope, NULL);
-  do_cleanups (cleanup);
+  gdb::unique_xmalloc_ptr<char> abspath = gdb_abspath (arg);
+  std::string buffer = string_printf ("#include \"%s\"\n", abspath.get ());
+  eval_compile_command (NULL, buffer.c_str (), scope, NULL);
 }
 
 /* Handle the input from the 'compile code' command.  The
@@ -127,7 +124,7 @@ compile_file_command (char *arg, int fro
    compile command is the language currently set in GDB.  */
 
 static void
-compile_code_command (char *arg, int from_tty)
+compile_code_command (const char *arg, int from_tty)
 {
   enum compile_i_scope_types scope = COMPILE_I_SIMPLE_SCOPE;
 
@@ -174,9 +171,8 @@ compile_print_value (struct value *val, 
    compile command is the language currently set in GDB.  */
 
 static void
-compile_print_command (char *arg_param, int from_tty)
+compile_print_command (const char *arg, int from_tty)
 {
-  const char *arg = arg_param;
   enum compile_i_scope_types scope = COMPILE_I_PRINT_ADDRESS_SCOPE;
   struct format_data fmt;
 
@@ -283,15 +279,17 @@ get_expr_block_and_pc (CORE_ADDR *pc)
   return block;
 }
 
-/* Call gdb_buildargv, set its result for S into *ARGVP but calculate also the
-   number of parsed arguments into *ARGCP.  If gdb_buildargv has returned NULL
-   then *ARGCP is set to zero.  */
+/* Call buildargv (via gdb_argv), set its result for S into *ARGVP but
+   calculate also the number of parsed arguments into *ARGCP.  If
+   buildargv has returned NULL then *ARGCP is set to zero.  */
 
 static void
 build_argc_argv (const char *s, int *argcp, char ***argvp)
 {
-  *argvp = gdb_buildargv (s);
-  *argcp = countargv (*argvp);
+  gdb_argv args (s);
+
+  *argcp = args.count ();
+  *argvp = args.release ();
 }
 
 /* String for 'set compile-args' and 'show compile-args'.  */
@@ -304,7 +302,7 @@ static char **compile_args_argv;
 /* Implement 'set compile-args'.  */
 
 static void
-set_compile_args (char *args, int from_tty, struct cmd_list_element *c)
+set_compile_args (const char *args, int from_tty, struct cmd_list_element *c)
 {
   freeargv (compile_args_argv);
   build_argc_argv (compile_args, &compile_args_argc, &compile_args_argv);
@@ -336,6 +334,19 @@ append_args (int *argcp, char ***argvp, 
   (*argvp)[(*argcp)] = NULL;
 }
 
+/* String for 'set compile-gcc' and 'show compile-gcc'.  */
+static char *compile_gcc;
+
+/* Implement 'show compile-gcc'.  */
+
+static void
+show_compile_gcc (struct ui_file *file, int from_tty,
+		  struct cmd_list_element *c, const char *value)
+{
+  fprintf_filtered (file, _("Compile command GCC driver filename is \"%s\".\n"),
+		    value);
+}
+
 /* Return DW_AT_producer parsed for get_selected_frame () (if any).
    Return NULL otherwise.
 
@@ -355,7 +366,7 @@ get_selected_pc_producer_options (void)
 
   cs = symtab->producer;
   while (*cs != 0 && *cs != '-')
-    cs = skip_spaces_const (skip_to_space_const (cs));
+    cs = skip_spaces (skip_to_space (cs));
   if (*cs != '-')
     return NULL;
   return cs;
@@ -427,16 +438,6 @@ cleanup_compile_instance (void *arg)
   inst->destroy (inst);
 }
 
-/* A cleanup function to unlink a file.  */
-
-static void
-cleanup_unlink_file (void *arg)
-{
-  const char *filename = (const char *) arg;
-
-  unlink (filename);
-}
-
 /* A helper function suitable for use as the "print_callback" in the
    compiler object.  */
 
@@ -455,16 +456,13 @@ compile_to_object (struct command_line *
 		   enum compile_i_scope_types scope)
 {
   struct compile_instance *compiler;
-  struct cleanup *cleanup, *inner_cleanup;
+  struct cleanup *cleanup;
   const struct block *expr_block;
   CORE_ADDR trash_pc, expr_pc;
   int argc;
   char **argv;
   int ok;
-  FILE *src;
   struct gdbarch *gdbarch = get_current_arch ();
-  const char *os_rx;
-  const char *arch_rx;
   char *triplet_rx;
   char *error_message;
 
@@ -516,19 +514,39 @@ compile_to_object (struct command_line *
   if (compile_debug)
     fprintf_unfiltered (gdb_stdlog, "debug output:\n\n%s", code.c_str ());
 
-  os_rx = osabi_triplet_regexp (gdbarch_osabi (gdbarch));
-  arch_rx = gdbarch_gnu_triplet_regexp (gdbarch);
+  if (compiler->fe->ops->version >= GCC_FE_VERSION_1)
+    compiler->fe->ops->set_verbose (compiler->fe, compile_debug);
 
-  /* Allow triplets with or without vendor set.  */
-  triplet_rx = concat (arch_rx, "(-[^-]*)?-", os_rx, (char *) NULL);
-  make_cleanup (xfree, triplet_rx);
+  if (compile_gcc[0] != 0)
+    {
+      if (compiler->fe->ops->version < GCC_FE_VERSION_1)
+	error (_("Command 'set compile-gcc' requires GCC version 6 or higher "
+		 "(libcc1 interface version 1 or higher)"));
+
+      compiler->fe->ops->set_driver_filename (compiler->fe, compile_gcc);
+    }
+  else
+    {
+      const char *os_rx = osabi_triplet_regexp (gdbarch_osabi (gdbarch));
+      const char *arch_rx = gdbarch_gnu_triplet_regexp (gdbarch);
+
+      /* Allow triplets with or without vendor set.  */
+      triplet_rx = concat (arch_rx, "(-[^-]*)?-", os_rx, (char *) NULL);
+      make_cleanup (xfree, triplet_rx);
+
+      if (compiler->fe->ops->version >= GCC_FE_VERSION_1)
+	compiler->fe->ops->set_triplet_regexp (compiler->fe, triplet_rx);
+    }
 
   /* Set compiler command-line arguments.  */
   get_args (compiler, gdbarch, &argc, &argv);
-  make_cleanup_freeargv (argv);
+  gdb_argv argv_holder (argv);
 
-  error_message = compiler->fe->ops->set_arguments (compiler->fe, triplet_rx,
-						    argc, argv);
+  if (compiler->fe->ops->version >= GCC_FE_VERSION_1)
+    error_message = compiler->fe->ops->set_arguments (compiler->fe, argc, argv);
+  else
+    error_message = compiler->fe->ops->set_arguments_v0 (compiler->fe, triplet_rx,
+							 argc, argv);
   if (error_message != NULL)
     {
       make_cleanup (xfree, error_message);
@@ -547,14 +565,18 @@ compile_to_object (struct command_line *
 
   compile_file_names fnames = get_new_file_names ();
 
-  src = gdb_fopen_cloexec (fnames.source_file (), "w");
-  if (src == NULL)
-    perror_with_name (_("Could not open source file for writing"));
-  inner_cleanup = make_cleanup (cleanup_unlink_file,
-				(void *) fnames.source_file ());
-  if (fputs (code.c_str (), src) == EOF)
-    perror_with_name (_("Could not write to source file"));
-  fclose (src);
+  gdb::optional<gdb::unlinker> source_remover;
+
+  {
+    gdb_file_up src = gdb_fopen_cloexec (fnames.source_file (), "w");
+    if (src == NULL)
+      perror_with_name (_("Could not open source file for writing"));
+
+    source_remover.emplace (fnames.source_file ());
+
+    if (fputs (code.c_str (), src.get ()) == EOF)
+      perror_with_name (_("Could not write to source file"));
+  }
 
   if (compile_debug)
     fprintf_unfiltered (gdb_stdlog, "source file produced: %s\n\n",
@@ -563,15 +585,21 @@ compile_to_object (struct command_line *
   /* Call the compiler and start the compilation process.  */
   compiler->fe->ops->set_source_file (compiler->fe, fnames.source_file ());
 
-  if (!compiler->fe->ops->compile (compiler->fe, fnames.object_file (),
-				   compile_debug))
+  if (compiler->fe->ops->version >= GCC_FE_VERSION_1)
+    ok = compiler->fe->ops->compile (compiler->fe, fnames.object_file ());
+  else
+    ok = compiler->fe->ops->compile_v0 (compiler->fe, fnames.object_file (),
+					compile_debug);
+  if (!ok)
     error (_("Compilation failed."));
 
   if (compile_debug)
     fprintf_unfiltered (gdb_stdlog, "object file produced: %s\n\n",
 			fnames.object_file ());
 
-  discard_cleanups (inner_cleanup);
+  /* Keep the source file.  */
+  source_remover->keep ();
+
   do_cleanups (cleanup);
 
   return fnames;
@@ -580,7 +608,7 @@ compile_to_object (struct command_line *
 /* The "compile" prefix command.  */
 
 static void
-compile_command (char *args, int from_tty)
+compile_command (const char *args, int from_tty)
 {
   /* If a sub-command is not specified to the compile prefix command,
      assume it is a direct code compilation.  */
@@ -593,14 +621,13 @@ void
 eval_compile_command (struct command_line *cmd, const char *cmd_string,
 		      enum compile_i_scope_types scope, void *scope_data)
 {
-  struct cleanup *cleanup_unlink;
   struct compile_module *compile_module;
 
   compile_file_names fnames = compile_to_object (cmd, cmd_string, scope);
 
-  cleanup_unlink = make_cleanup (cleanup_unlink_file,
-				 (void *) fnames.object_file ());
-  make_cleanup (cleanup_unlink_file, (void *) fnames.source_file ());
+  gdb::unlinker object_remover (fnames.object_file ());
+  gdb::unlinker source_remover (fnames.source_file ());
+
   compile_module = compile_object_load (fnames, scope, scope_data);
   if (compile_module == NULL)
     {
@@ -609,18 +636,22 @@ eval_compile_command (struct command_lin
 			    COMPILE_I_PRINT_VALUE_SCOPE, scope_data);
       return;
     }
-  discard_cleanups (cleanup_unlink);
+
+  /* Keep the files.  */
+  source_remover.keep ();
+  object_remover.keep ();
+
   compile_object_run (compile_module);
 }
 
 /* See compile/compile-internal.h.  */
 
-char *
+std::string
 compile_register_name_mangled (struct gdbarch *gdbarch, int regnum)
 {
   const char *regname = gdbarch_register_name (gdbarch, regnum);
 
-  return xstrprintf ("__%s", regname);
+  return string_printf ("__%s", regname);
 }
 
 /* See compile/compile-internal.h.  */
@@ -642,8 +673,6 @@ compile_register_name_demangle (struct g
   error (_("Cannot find gdbarch register \"%s\"."), regname);
 }
 
-extern initialize_file_ftype _initialize_compile;
-
 void
 _initialize_compile (void)
 {
@@ -737,4 +766,17 @@ String quoting is parsed like in shell, 
 			 " -fno-stack-protector"
   );
   set_compile_args (compile_args, 0, NULL);
+
+  add_setshow_optional_filename_cmd ("compile-gcc", class_support,
+				     &compile_gcc,
+				     _("Set compile command "
+				       "GCC driver filename"),
+				     _("Show compile command "
+				       "GCC driver filename"),
+				     _("\
+It should be absolute filename of the gcc executable.\n\
+If empty the default target triplet will be searched in $PATH."),
+				     NULL, show_compile_gcc, &setlist,
+				     &showlist);
+  compile_gcc = xstrdup ("");
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-c-support.c ./gdb/compile/compile-c-support.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-c-support.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/compile/compile-c-support.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* C language support for compilation.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -26,6 +26,7 @@
 #include "macroscope.h"
 #include "regcache.h"
 #include "common/function-view.h"
+#include "common/preprocessor.h"
 
 /* See compile-internal.h.  */
 
@@ -57,17 +58,14 @@ c_get_mode_for_size (int size)
 
 /* See compile-internal.h.  */
 
-char *
+std::string
 c_get_range_decl_name (const struct dynamic_prop *prop)
 {
-  return xstrprintf ("__gdb_prop_%s", host_address_to_string (prop));
+  return string_printf ("__gdb_prop_%s", host_address_to_string (prop));
 }
 
 
 
-#define STR(x) #x
-#define STRINGIFY(x) STR(x)
-
 /* Helper function for c_get_compile_context.  Open the GCC front-end
    shared library and return the symbol specified by the current
    GCC_C_FE_CONTEXT.  */
@@ -265,8 +263,7 @@ generate_register_struct (struct ui_file
 	if (registers_used[i])
 	  {
 	    struct type *regtype = check_typedef (register_type (gdbarch, i));
-	    char *regname = compile_register_name_mangled (gdbarch, i);
-	    struct cleanup *cleanups = make_cleanup (xfree, regname);
+	    std::string regname = compile_register_name_mangled (gdbarch, i);
 
 	    seen = 1;
 
@@ -284,7 +281,8 @@ generate_register_struct (struct ui_file
 	    switch (TYPE_CODE (regtype))
 	      {
 	      case TYPE_CODE_PTR:
-		fprintf_filtered (stream, "__gdb_uintptr %s", regname);
+		fprintf_filtered (stream, "__gdb_uintptr %s",
+				  regname.c_str ());
 		break;
 
 	      case TYPE_CODE_INT:
@@ -299,7 +297,7 @@ generate_register_struct (struct ui_file
 		      fprintf_unfiltered (stream,
 					  "int %s"
 					  " __attribute__ ((__mode__(__%s__)))",
-					  regname,
+					  regname.c_str (),
 					  mode);
 		      break;
 		    }
@@ -312,12 +310,10 @@ generate_register_struct (struct ui_file
 				    "  unsigned char %s[%d]"
 				    " __attribute__((__aligned__("
 				    "__BIGGEST_ALIGNMENT__)))",
-				    regname,
+				    regname.c_str (),
 				    TYPE_LENGTH (regtype));
 	      }
 	    fputs_unfiltered (";\n", stream);
-
-	    do_cleanups (cleanups);
 	  }
       }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-c-symbols.c ./gdb/compile/compile-c-symbols.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-c-symbols.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/compile/compile-c-symbols.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Convert symbols from GDB to GCC
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -107,7 +107,6 @@ error_symbol_once (struct compile_c_inst
 {
   struct symbol_error search;
   struct symbol_error *err;
-  char *message;
 
   if (context->symbol_err_map == NULL)
     return;
@@ -117,10 +116,9 @@ error_symbol_once (struct compile_c_inst
   if (err == NULL || err->message == NULL)
     return;
 
-  message = err->message;
+  gdb::unique_xmalloc_ptr<char> message (err->message);
   err->message = NULL;
-  make_cleanup (xfree, message);
-  error (_("%s"), message);
+  error (_("%s"), message.get ());
 }
 
 
@@ -128,10 +126,11 @@ error_symbol_once (struct compile_c_inst
 /* Compute the name of the pointer representing a local symbol's
    address.  */
 
-static char *
+static gdb::unique_xmalloc_ptr<char>
 symbol_substitution_name (struct symbol *sym)
 {
-  return concat ("__", SYMBOL_NATURAL_NAME (sym), "_ptr", (char *) NULL);
+  return gdb::unique_xmalloc_ptr<char>
+    (concat ("__", SYMBOL_NATURAL_NAME (sym), "_ptr", (char *) NULL));
 }
 
 /* Convert a given symbol, SYM, to the compiler's representation.
@@ -170,7 +169,7 @@ convert_one_symbol (struct compile_c_ins
       gcc_decl decl;
       enum gcc_c_symbol_kind kind;
       CORE_ADDR addr = 0;
-      char *symbol_name = NULL;
+      gdb::unique_xmalloc_ptr<char> symbol_name;
 
       switch (SYMBOL_CLASS (sym.symbol))
 	{
@@ -290,13 +289,11 @@ convert_one_symbol (struct compile_c_ins
 	     SYMBOL_NATURAL_NAME (sym.symbol),
 	     kind,
 	     sym_type,
-	     symbol_name, addr,
+	     symbol_name.get (), addr,
 	     filename, line);
 
 	  C_CTX (context)->c_ops->bind (C_CTX (context), decl, is_global);
 	}
-
-      xfree (symbol_name);
     }
 }
 
@@ -379,9 +376,7 @@ convert_symbol_bmsym (struct compile_c_i
       break;
 
     case mst_text_gnu_ifunc:
-      /* nodebug_text_gnu_ifunc_symbol would cause:
-	 function return type cannot be function  */
-      type = objfile_type (objfile)->nodebug_text_symbol;
+      type = objfile_type (objfile)->nodebug_text_gnu_ifunc_symbol;
       kind = GCC_C_SYMBOL_FUNCTION;
       addr = gnu_ifunc_resolve_addr (target_gdbarch (), addr);
       break;
@@ -604,13 +599,11 @@ generate_vla_size (struct compile_c_inst
 	    || TYPE_HIGH_BOUND_KIND (type) == PROP_LOCLIST)
 	  {
 	    const struct dynamic_prop *prop = &TYPE_RANGE_DATA (type)->high;
-	    char *name = c_get_range_decl_name (prop);
-	    struct cleanup *cleanup = make_cleanup (xfree, name);
+	    std::string name = c_get_range_decl_name (prop);
 
-	    dwarf2_compile_property_to_c (stream, name,
+	    dwarf2_compile_property_to_c (stream, name.c_str (),
 					  gdbarch, registers_used,
 					  prop, pc, sym);
-	    do_cleanups (cleanup);
 	  }
       }
       break;
@@ -663,8 +656,8 @@ generate_c_for_for_one_variable (struct 
 
       if (SYMBOL_COMPUTED_OPS (sym) != NULL)
 	{
-	  char *generated_name = symbol_substitution_name (sym);
-	  struct cleanup *cleanup = make_cleanup (xfree, generated_name);
+	  gdb::unique_xmalloc_ptr<char> generated_name
+	    = symbol_substitution_name (sym);
 	  /* We need to emit to a temporary buffer in case an error
 	     occurs in the middle.  */
 	  string_file local_file;
@@ -672,10 +665,9 @@ generate_c_for_for_one_variable (struct 
 	  SYMBOL_COMPUTED_OPS (sym)->generate_c_location (sym, local_file,
 							  gdbarch,
 							  registers_used,
-							  pc, generated_name);
+							  pc,
+							  generated_name.get ());
 	  stream.write (local_file.c_str (), local_file.size ());
-
-	  do_cleanups (cleanup);
 	}
       else
 	{
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-c-types.c ./gdb/compile/compile-c-types.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-c-types.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/compile/compile-c-types.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Convert types from GDB to GCC
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -21,6 +21,8 @@
 #include "defs.h"
 #include "gdbtypes.h"
 #include "compile-internal.h"
+#include "objfiles.h"
+
 /* An object that maps a gdb type to a gcc type.  */
 
 struct type_map_instance
@@ -123,18 +125,17 @@ convert_array (struct compile_c_instance
       || TYPE_HIGH_BOUND_KIND (range) == PROP_LOCLIST)
     {
       gcc_type result;
-      char *upper_bound;
 
       if (TYPE_VECTOR (type))
 	return C_CTX (context)->c_ops->error (C_CTX (context),
 					      _("variably-sized vector type"
 						" is not supported"));
 
-      upper_bound = c_get_range_decl_name (&TYPE_RANGE_DATA (range)->high);
+      std::string upper_bound
+	= c_get_range_decl_name (&TYPE_RANGE_DATA (range)->high);
       result = C_CTX (context)->c_ops->build_vla_array_type (C_CTX (context),
 							     element_type,
-							     upper_bound);
-      xfree (upper_bound);
+							     upper_bound.c_str ());
       return result;
     }
   else
@@ -206,9 +207,9 @@ convert_enum (struct compile_c_instance 
   int i;
   struct gcc_c_context *ctx = C_CTX (context);
 
-  int_type = ctx->c_ops->int_type (ctx,
-				   TYPE_UNSIGNED (type),
-				   TYPE_LENGTH (type));
+  int_type = ctx->c_ops->int_type_v0 (ctx,
+				      TYPE_UNSIGNED (type),
+				      TYPE_LENGTH (type));
 
   result = ctx->c_ops->build_enum_type (ctx, int_type);
   for (i = 0; i < TYPE_NFIELDS (type); ++i)
@@ -234,9 +235,25 @@ convert_func (struct compile_c_instance 
   struct gcc_type_array array;
   int is_varargs = TYPE_VARARGS (type) || !TYPE_PROTOTYPED (type);
 
+  struct type *target_type = TYPE_TARGET_TYPE (type);
+
+  /* Functions with no debug info have no return type.  Ideally we'd
+     want to fallback to the type of the cast just before the
+     function, like GDB's built-in expression parser, but we don't
+     have access to that type here.  For now, fallback to int, like
+     GDB's parser used to do.  */
+  if (target_type == NULL)
+    {
+      if (TYPE_OBJFILE_OWNED (type))
+	target_type = objfile_type (TYPE_OWNER (type).objfile)->builtin_int;
+      else
+	target_type = builtin_type (TYPE_OWNER (type).gdbarch)->builtin_int;
+      warning (_("function has unknown return type; assuming int"));
+    }
+
   /* This approach means we can't make self-referential function
      types.  Those are impossible in C, though.  */
-  return_type = convert_type (context, TYPE_TARGET_TYPE (type));
+  return_type = convert_type (context, target_type);
 
   array.n_elements = TYPE_NFIELDS (type);
   array.elements = XNEWVEC (gcc_type, TYPE_NFIELDS (type));
@@ -256,9 +273,9 @@ convert_func (struct compile_c_instance 
 static gcc_type
 convert_int (struct compile_c_instance *context, struct type *type)
 {
-  return C_CTX (context)->c_ops->int_type (C_CTX (context),
-					   TYPE_UNSIGNED (type),
-					   TYPE_LENGTH (type));
+  return C_CTX (context)->c_ops->int_type_v0 (C_CTX (context),
+					      TYPE_UNSIGNED (type),
+					      TYPE_LENGTH (type));
 }
 
 /* Convert a floating-point type to its gcc representation.  */
@@ -266,8 +283,8 @@ convert_int (struct compile_c_instance *
 static gcc_type
 convert_float (struct compile_c_instance *context, struct type *type)
 {
-  return C_CTX (context)->c_ops->float_type (C_CTX (context),
-					     TYPE_LENGTH (type));
+  return C_CTX (context)->c_ops->float_type_v0 (C_CTX (context),
+						TYPE_LENGTH (type));
 }
 
 /* Convert the 'void' type to its gcc representation.  */
@@ -366,6 +383,21 @@ convert_type_basic (struct compile_c_ins
 
     case TYPE_CODE_COMPLEX:
       return convert_complex (context, type);
+
+    case TYPE_CODE_ERROR:
+      {
+	/* Ideally, if we get here due to a cast expression, we'd use
+	   the cast-to type as the variable's type, like GDB's
+	   built-in parser does.  For now, assume "int" like GDB's
+	   built-in parser used to do, but at least warn.  */
+	struct type *fallback;
+	if (TYPE_OBJFILE_OWNED (type))
+	  fallback = objfile_type (TYPE_OWNER (type).objfile)->builtin_int;
+	else
+	  fallback = builtin_type (TYPE_OWNER (type).gdbarch)->builtin_int;
+	warning (_("variable has unknown type; assuming int"));
+	return convert_int (context, fallback);
+      }
     }
 
   return C_CTX (context)->c_ops->error (C_CTX (context),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile.h ./gdb/compile/compile.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/compile/compile.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Header file for Compile and inject module.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-internal.h ./gdb/compile/compile-internal.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-internal.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/compile/compile-internal.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Header file for GDB compile command and supporting functions.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 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
@@ -95,11 +95,10 @@ struct compile_c_instance
 
 /* Call gdbarch_register_name (GDBARCH, REGNUM) and convert its result
    to a form suitable for the compiler source.  The register names
-   should not clash with inferior defined macros.  Returned pointer is
-   never NULL.  Returned pointer needs to be deallocated by xfree.  */
+   should not clash with inferior defined macros. */
 
-extern char *compile_register_name_mangled (struct gdbarch *gdbarch,
-					    int regnum);
+extern std::string compile_register_name_mangled (struct gdbarch *gdbarch,
+						  int regnum);
 
 /* Convert compiler source register name to register number of
    GDBARCH.  Returned value is always >= 0, function throws an error
@@ -144,13 +143,12 @@ extern unsigned char *generate_c_for_var
 
 extern const char *c_get_mode_for_size (int size);
 
-/* Given a dynamic property, return an xmallocd name that is used to
-   represent its size.  The result must be freed by the caller.  The
-   contents of the resulting string will be the same each time for
-   each call with the same argument.  */
+/* Given a dynamic property, return a name that is used to represent
+   its size.  The contents of the resulting string will be the same
+   each time for each call with the same argument.  */
 
 struct dynamic_prop;
-extern char *c_get_range_decl_name (const struct dynamic_prop *prop);
+extern std::string c_get_range_decl_name (const struct dynamic_prop *prop);
 
 /* Type used to hold and pass around the source and object file names
    to use for compilation.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-loc2c.c ./gdb/compile/compile-loc2c.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-loc2c.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/compile/compile-loc2c.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Convert a DWARF location expression to C
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -62,7 +62,7 @@ struct insn_info
    NEED_TEMPVAR is an out parameter which is set if this expression
    needs a special temporary variable to be emitted (see the code
    generator).
-   INFO is an array of insn_info objects, indexed by offset from the
+   INFO is a vector of insn_info objects, indexed by offset from the
    start of the DWARF expression.
    TO_DO is a list of bytecodes which must be examined; it may be
    added to by this function.
@@ -71,7 +71,7 @@ struct insn_info
 
 static void
 compute_stack_depth_worker (int start, int *need_tempvar,
-			    struct insn_info *info,
+			    std::vector<struct insn_info> *info,
 			    std::vector<int> *to_do,
 			    enum bfd_endian byte_order, unsigned int addr_size,
 			    const gdb_byte *op_ptr, const gdb_byte *op_end)
@@ -80,8 +80,8 @@ compute_stack_depth_worker (int start, i
   int stack_depth;
 
   op_ptr += start;
-  gdb_assert (info[start].visited);
-  stack_depth = info[start].depth;
+  gdb_assert ((*info)[start].visited);
+  stack_depth = (*info)[start].depth;
 
   while (op_ptr < op_end)
     {
@@ -91,16 +91,16 @@ compute_stack_depth_worker (int start, i
       int ndx = op_ptr - base;
 
 #define SET_CHECK_DEPTH(WHERE)				\
-      if (info[WHERE].visited)				\
+      if ((*info)[WHERE].visited)				\
 	{						\
-	  if (info[WHERE].depth != stack_depth)		\
+	  if ((*info)[WHERE].depth != stack_depth)		\
 	    error (_("inconsistent stack depths"));	\
 	}						\
       else						\
 	{						\
 	  /* Stack depth not set, so set it.  */	\
-	  info[WHERE].visited = 1;			\
-	  info[WHERE].depth = stack_depth;		\
+	  (*info)[WHERE].visited = 1;			\
+	  (*info)[WHERE].depth = stack_depth;		\
 	}
 
       SET_CHECK_DEPTH (ndx);
@@ -324,7 +324,7 @@ compute_stack_depth_worker (int start, i
 
 	case DW_OP_GNU_push_tls_address:
 	case DW_OP_form_tls_address:
-	  info[ndx].is_tls = 1;
+	  (*info)[ndx].is_tls = 1;
 	  break;
 
 	case DW_OP_skip:
@@ -333,10 +333,10 @@ compute_stack_depth_worker (int start, i
 	  offset = op_ptr + offset - base;
 	  /* If the destination has not been seen yet, add it to the
 	     to-do list.  */
-	  if (!info[offset].visited)
+	  if (!(*info)[offset].visited)
 	    to_do->push_back (offset);
 	  SET_CHECK_DEPTH (offset);
-	  info[offset].label = 1;
+	  (*info)[offset].label = 1;
 	  /* We're done with this line of code.  */
 	  return;
 
@@ -347,10 +347,10 @@ compute_stack_depth_worker (int start, i
 	  --stack_depth;
 	  /* If the destination has not been seen yet, add it to the
 	     to-do list.  */
-	  if (!info[offset].visited)
+	  if (!(*info)[offset].visited)
 	    to_do->push_back (offset);
 	  SET_CHECK_DEPTH (offset);
-	  info[offset].label = 1;
+	  (*info)[offset].label = 1;
 	  break;
 
 	case DW_OP_nop:
@@ -387,15 +387,12 @@ compute_stack_depth (enum bfd_endian byt
 		     int *need_tempvar, int *is_tls,
 		     const gdb_byte *op_ptr, const gdb_byte *op_end,
 		     int initial_depth,
-		     struct insn_info **info)
+		     std::vector<struct insn_info> *info)
 {
-  unsigned char *set;
-  struct cleanup *outer_cleanup;
   std::vector<int> to_do;
   int stack_depth, i;
 
-  *info = XCNEWVEC (struct insn_info, op_end - op_ptr);
-  outer_cleanup = make_cleanup (xfree, *info);
+  info->resize (op_end - op_ptr);
 
   to_do.push_back (0);
   (*info)[0].depth = initial_depth;
@@ -406,7 +403,7 @@ compute_stack_depth (enum bfd_endian byt
       int ndx = to_do.back ();
       to_do.pop_back ();
 
-      compute_stack_depth_worker (ndx, need_tempvar, *info, &to_do,
+      compute_stack_depth_worker (ndx, need_tempvar, info, &to_do,
 				  byte_order, addr_size,
 				  op_ptr, op_end);
     }
@@ -421,7 +418,6 @@ compute_stack_depth (enum bfd_endian byt
 	*is_tls = 1;
     }
 
-  discard_cleanups (outer_cleanup);
   return stack_depth + 1;
 }
 
@@ -515,15 +511,12 @@ pushf_register_address (int indent, stri
 			unsigned char *registers_used,
 			struct gdbarch *gdbarch, int regnum)
 {
-  char *regname = compile_register_name_mangled (gdbarch, regnum);
-  struct cleanup *cleanups = make_cleanup (xfree, regname);
+  std::string regname = compile_register_name_mangled (gdbarch, regnum);
 
   registers_used[regnum] = 1;
   pushf (indent, stream,
 	 "(" GCC_UINTPTR ") &" COMPILE_I_SIMPLE_REGISTER_ARG_NAME "->%s",
-	 regname);
-
-  do_cleanups (cleanups);
+	 regname.c_str ());
 }
 
 /* Emit code that pushes a register's value on the stack.
@@ -536,19 +529,16 @@ pushf_register (int indent, string_file 
 		unsigned char *registers_used,
 		struct gdbarch *gdbarch, int regnum, uint64_t offset)
 {
-  char *regname = compile_register_name_mangled (gdbarch, regnum);
-  struct cleanup *cleanups = make_cleanup (xfree, regname);
+  std::string regname = compile_register_name_mangled (gdbarch, regnum);
 
   registers_used[regnum] = 1;
   if (offset == 0)
     pushf (indent, stream, COMPILE_I_SIMPLE_REGISTER_ARG_NAME "->%s",
-	   regname);
+	   regname.c_str ());
   else
     pushf (indent, stream,
 	   COMPILE_I_SIMPLE_REGISTER_ARG_NAME "->%s + (" GCC_UINTPTR ") %s",
-	   regname, hex_string (offset));
-
-  do_cleanups (cleanups);
+	   regname.c_str (), hex_string (offset));
 }
 
 /* Compile a DWARF expression to C code.
@@ -600,8 +590,7 @@ do_compile_dwarf_expr_to_c (int indent, 
   const gdb_byte * const base = op_ptr;
   int need_tempvar = 0;
   int is_tls = 0;
-  struct cleanup *cleanup;
-  struct insn_info *info;
+  std::vector<struct insn_info> info;
   int stack_depth;
 
   ++scope;
@@ -615,7 +604,6 @@ do_compile_dwarf_expr_to_c (int indent, 
 				     &need_tempvar, &is_tls,
 				     op_ptr, op_end, initial != NULL,
 				     &info);
-  cleanup = make_cleanup (xfree, info);
 
   /* This is a hack until we can add a feature to glibc to let us
      properly generate code for TLS.  You might think we could emit
@@ -649,7 +637,6 @@ do_compile_dwarf_expr_to_c (int indent, 
 			 result_name,
 			 core_addr_to_string (value_address (val)));
       fprintfi_filtered (indent - 2, &stream, "}\n");
-      do_cleanups (cleanup);
       return;
     }
 
@@ -722,6 +709,7 @@ do_compile_dwarf_expr_to_c (int indent, 
 	  break;
 
 	case DW_OP_addr:
+	  uoffset = extract_unsigned_integer (op_ptr, addr_size, byte_order);
 	  op_ptr += addr_size;
 	  /* Some versions of GCC emit DW_OP_addr before
 	     DW_OP_GNU_push_tls_address.  In this case the value is an
@@ -1122,8 +1110,6 @@ do_compile_dwarf_expr_to_c (int indent, 
   fprintfi_filtered (indent, &stream, "%s = __gdb_stack[__gdb_tos];\n",
 		     result_name);
   fprintfi_filtered (indent - 2, &stream, "}\n");
-
-  do_cleanups (cleanup);
 }
 
 /* See compile.h.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-object-load.c ./gdb/compile/compile-object-load.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-object-load.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/compile/compile-object-load.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Load module for 'compile' command.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -281,18 +281,13 @@ static void link_callbacks_einfo (const 
 static void
 link_callbacks_einfo (const char *fmt, ...)
 {
-  struct cleanup *cleanups;
   va_list ap;
-  char *str;
 
   va_start (ap, fmt);
-  str = xstrvprintf (fmt, ap);
+  std::string str = string_vprintf (fmt, ap);
   va_end (ap);
-  cleanups = make_cleanup (xfree, str);
-
-  warning (_("Compile module: warning: %s"), str);
 
-  do_cleanups (cleanups);
+  warning (_("Compile module: warning: %s"), str.c_str ());
 }
 
 /* Helper for bfd_get_relocated_section_contents.
@@ -444,7 +439,10 @@ get_out_value_type (struct symbol *func_
       block = BLOCKVECTOR_BLOCK (bv, block_loop);
       if (BLOCK_FUNCTION (block) != NULL)
 	continue;
-      gdb_val_sym = block_lookup_symbol (block, COMPILE_I_EXPR_VAL, VAR_DOMAIN);
+      gdb_val_sym = block_lookup_symbol (block,
+					 COMPILE_I_EXPR_VAL,
+					 symbol_name_match_type::SEARCH_NAME,
+					 VAR_DOMAIN);
       if (gdb_val_sym == NULL)
 	continue;
 
@@ -471,6 +469,7 @@ get_out_value_type (struct symbol *func_
   gdb_type = check_typedef (gdb_type);
 
   gdb_ptr_type_sym = block_lookup_symbol (block, COMPILE_I_EXPR_PTR_TYPE,
+					  symbol_name_match_type::SEARCH_NAME,
 					  VAR_DOMAIN);
   if (gdb_ptr_type_sym == NULL)
     error (_("No \"%s\" symbol found"), COMPILE_I_EXPR_PTR_TYPE);
@@ -611,58 +610,58 @@ struct compile_module *
 compile_object_load (const compile_file_names &file_names,
 		     enum compile_i_scope_types scope, void *scope_data)
 {
-  struct cleanup *cleanups, *cleanups_free_objfile;
+  struct cleanup *cleanups;
   struct setup_sections_data setup_sections_data;
-  CORE_ADDR addr, regs_addr, out_value_addr = 0;
+  CORE_ADDR regs_addr, out_value_addr = 0;
   struct symbol *func_sym;
   struct type *func_type;
   struct bound_minimal_symbol bmsym;
   long storage_needed;
   asymbol **symbol_table, **symp;
   long number_of_symbols, missing_symbols;
-  struct type *dptr_type = builtin_type (target_gdbarch ())->builtin_data_ptr;
-  unsigned dptr_type_len = TYPE_LENGTH (dptr_type);
   struct compile_module *retval;
   struct type *regs_type, *out_value_type = NULL;
-  char *filename, **matching;
+  char **matching;
   struct objfile *objfile;
   int expect_parameters;
   struct type *expect_return_type;
   struct munmap_list *munmap_list_head = NULL;
 
-  filename = tilde_expand (file_names.object_file ());
-  cleanups = make_cleanup (xfree, filename);
+  gdb::unique_xmalloc_ptr<char> filename
+    (tilde_expand (file_names.object_file ()));
 
-  gdb_bfd_ref_ptr abfd (gdb_bfd_open (filename, gnutarget, -1));
+  gdb_bfd_ref_ptr abfd (gdb_bfd_open (filename.get (), gnutarget, -1));
   if (abfd == NULL)
     error (_("\"%s\": could not open as compiled module: %s"),
-          filename, bfd_errmsg (bfd_get_error ()));
+          filename.get (), bfd_errmsg (bfd_get_error ()));
 
   if (!bfd_check_format_matches (abfd.get (), bfd_object, &matching))
     error (_("\"%s\": not in loadable format: %s"),
-          filename, gdb_bfd_errmsg (bfd_get_error (), matching));
+          filename.get (), gdb_bfd_errmsg (bfd_get_error (), matching));
 
   if ((bfd_get_file_flags (abfd.get ()) & (EXEC_P | DYNAMIC)) != 0)
-    error (_("\"%s\": not in object format."), filename);
+    error (_("\"%s\": not in object format."), filename.get ());
 
   setup_sections_data.last_size = 0;
   setup_sections_data.last_section_first = abfd->sections;
   setup_sections_data.last_prot = -1;
   setup_sections_data.last_max_alignment = 1;
   setup_sections_data.munmap_list_headp = &munmap_list_head;
-  make_cleanup (munmap_listp_free_cleanup, &munmap_list_head);
+  cleanups = make_cleanup (munmap_listp_free_cleanup, &munmap_list_head);
   bfd_map_over_sections (abfd.get (), setup_sections, &setup_sections_data);
   setup_sections (abfd.get (), NULL, &setup_sections_data);
 
   storage_needed = bfd_get_symtab_upper_bound (abfd.get ());
   if (storage_needed < 0)
     error (_("Cannot read symbols of compiled module \"%s\": %s"),
-          filename, bfd_errmsg (bfd_get_error ()));
+          filename.get (), bfd_errmsg (bfd_get_error ()));
 
   /* SYMFILE_VERBOSE is not passed even if FROM_TTY, user is not interested in
      "Reading symbols from ..." message for automatically generated file.  */
-  objfile = symbol_file_add_from_bfd (abfd.get (), filename, 0, NULL, 0, NULL);
-  cleanups_free_objfile = make_cleanup_free_objfile (objfile);
+  std::unique_ptr<struct objfile> objfile_holder
+    (symbol_file_add_from_bfd (abfd.get (), filename.get (),
+			       0, NULL, 0, NULL));
+  objfile = objfile_holder.get ();
 
   func_sym = lookup_global_symbol_from_objfile (objfile,
 						GCC_FE_WRAPPER_FUNCTION,
@@ -713,7 +712,7 @@ compile_object_load (const compile_file_
   number_of_symbols = bfd_canonicalize_symtab (abfd.get (), symbol_table);
   if (number_of_symbols < 0)
     error (_("Cannot parse symbols of compiled module \"%s\": %s"),
-          filename, bfd_errmsg (bfd_get_error ()));
+          filename.get (), bfd_errmsg (bfd_get_error ()));
 
   missing_symbols = 0;
   for (symp = symbol_table; symp < symbol_table + number_of_symbols; symp++)
@@ -762,7 +761,7 @@ compile_object_load (const compile_file_
 	default:
 	  warning (_("Could not find symbol \"%s\" "
 		     "for compiled module \"%s\"."),
-		   sym->name, filename);
+		   sym->name, filename.get ());
 	  missing_symbols++;
 	}
     }
@@ -816,10 +815,8 @@ compile_object_load (const compile_file_
 			    paddress (target_gdbarch (), out_value_addr));
     }
 
-  discard_cleanups (cleanups_free_objfile);
-
   retval = XNEW (struct compile_module);
-  retval->objfile = objfile;
+  retval->objfile = objfile_holder.release ();
   retval->source_file = xstrdup (file_names.source_file ());
   retval->func_sym = func_sym;
   retval->regs_addr = regs_addr;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-object-load.h ./gdb/compile/compile-object-load.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-object-load.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/compile/compile-object-load.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Header file to load module for 'compile' command.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-object-run.c ./gdb/compile/compile-object-run.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-object-run.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/compile/compile-object-run.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Call module for 'compile' command.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -87,7 +87,7 @@ do_module_cleanup (void *arg, int regist
     if ((objfile->flags & OBJF_USERLOADED) == 0
         && (strcmp (objfile_name (objfile), data->objfile_name_string) == 0))
       {
-	free_objfile (objfile);
+	delete objfile;
 
 	/* It may be a bit too pervasive in this dummy_frame dtor callback.  */
 	clear_symtab_users (0);
@@ -116,8 +116,6 @@ void
 compile_object_run (struct compile_module *module)
 {
   struct value *func_val;
-  struct frame_id dummy_id;
-  struct cleanup *cleanups;
   struct do_module_cleanup *data;
   const char *objfile_name_s = objfile_name (module->objfile);
   int dtor_found, executed = 0;
@@ -172,7 +170,8 @@ compile_object_run (struct compile_modul
 	  ++current_arg;
 	}
       gdb_assert (current_arg == TYPE_NFIELDS (func_type));
-      call_function_by_hand_dummy (func_val, TYPE_NFIELDS (func_type), vargs,
+      call_function_by_hand_dummy (func_val,
+				   NULL, TYPE_NFIELDS (func_type), vargs,
 				   do_module_cleanup, data);
     }
   CATCH (ex, RETURN_MASK_ERROR)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-object-run.h ./gdb/compile/compile-object-run.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/compile/compile-object-run.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/compile/compile-object-run.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Header file to call module for 'compile' command.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/complaints.c ./gdb/complaints.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/complaints.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/complaints.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support for complaint handling during symbol reading in GDB.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -22,8 +22,6 @@
 #include "command.h"
 #include "gdbcmd.h"
 
-extern void _initialize_complaints (void);
-
 /* Should each complaint message be self explanatory, or should we
    assume that a series of complaints is being produced?  */
 
@@ -150,7 +148,7 @@ find_complaint (struct complaints *compl
    before we stop whining about it?  Default is no whining at all,
    since so many systems have ill-constructed symbol files.  */
 
-static int stop_whining = 0;
+int stop_whining = 0;
 
 /* Print a complaint, and link the complaint block into a chain for
    later handling.  */
@@ -194,16 +192,14 @@ vcomplaint (struct complaints **c, const
 	vwarning (fmt, args);
       else
 	{
-	  char *msg;
-	  struct cleanup *cleanups;
-	  msg = xstrvprintf (fmt, args);
-	  cleanups = make_cleanup (xfree, msg);
+	  std::string msg = string_vprintf (fmt, args);
 	  wrap_here ("");
 	  if (series != SUBSEQUENT_MESSAGE)
 	    begin_line ();
 	  /* XXX: i18n */
 	  fprintf_filtered (gdb_stderr, "%s%s%s",
-			    complaints->explanation[series].prefix, msg,
+			    complaints->explanation[series].prefix,
+			    msg.c_str (),
 			    complaints->explanation[series].postfix);
 	  /* Force a line-break after any isolated message.  For the
              other cases, clear_complaints() takes care of any missing
@@ -216,7 +212,6 @@ vcomplaint (struct complaints **c, const
 	    fputs_filtered ("\n", gdb_stderr);
 	  else
 	    wrap_here ("");
-	  do_cleanups (cleanups);
 	}
     }
 
@@ -241,7 +236,7 @@ vcomplaint (struct complaints **c, const
 }
 
 void
-complaint (struct complaints **complaints, const char *fmt, ...)
+complaint_internal (struct complaints **complaints, const char *fmt, ...)
 {
   va_list args;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/complaints.h ./gdb/complaints.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/complaints.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/complaints.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for complaint handling during symbol reading in GDB.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,10 +28,25 @@ struct complaints;
 /* Predefined categories.  */
 extern struct complaints *symfile_complaints;
 
-/* Register a complaint.  */
-extern void complaint (struct complaints **complaints,
-		       const char *fmt,
-		       ...) ATTRIBUTE_PRINTF (2, 3);
+/* Helper for complaint.  */
+extern void complaint_internal (struct complaints **complaints,
+				const char *fmt, ...)
+  ATTRIBUTE_PRINTF (2, 3);
+
+/* Register a complaint.  This is a macro around complaint_internal to
+   avoid computing complaint's arguments when complaints are disabled.
+   Running FMT via gettext [i.e., _(FMT)] can be quite expensive, for
+   example.  */
+#define complaint(COMPLAINTS, FMT, ...)				\
+  do								\
+    {								\
+      extern int stop_whining;					\
+								\
+      if (stop_whining > 0)					\
+	complaint_internal (COMPLAINTS, FMT, ##__VA_ARGS__);	\
+    }								\
+  while (0)
+
 extern void internal_complaint (struct complaints **complaints,
 				const char *file, int line,
 				const char *fmt,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/completer.c ./gdb/completer.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/completer.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/completer.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Line completion stuff for GDB, the GNU debugger.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,7 +28,8 @@
 #include "user-regs.h"
 #include "arch-utils.h"
 #include "location.h"
-
+#include <algorithm>
+#include "linespec.h"
 #include "cli/cli-decode.h"
 
 /* FIXME: This is needed because of lookup_cmd_1 ().  We should be
@@ -44,8 +45,28 @@
 
 #include "completer.h"
 
-/* An enumeration of the various things a user might
-   attempt to complete for a location.  */
+/* Misc state that needs to be tracked across several different
+   readline completer entry point calls, all related to a single
+   completion invocation.  */
+
+struct gdb_completer_state
+{
+  /* The current completion's completion tracker.  This is a global
+     because a tracker can be shared between the handle_brkchars and
+     handle_completion phases, which involves different readline
+     callbacks.  */
+  completion_tracker *tracker = NULL;
+
+  /* Whether the current completion was aborted.  */
+  bool aborted = false;
+};
+
+/* The current completion state.  */
+static gdb_completer_state current_completion;
+
+/* An enumeration of the various things a user might attempt to
+   complete for a location.  If you change this, remember to update
+   the explicit_options array below too.  */
 
 enum explicit_location_match_type
 {
@@ -55,15 +76,17 @@ enum explicit_location_match_type
     /* The name of a function or method.  */
     MATCH_FUNCTION,
 
+    /* The fully-qualified name of a function or method.  */
+    MATCH_QUALIFIED,
+
+    /* A line number.  */
+    MATCH_LINE,
+
     /* The name of a label.  */
     MATCH_LABEL
 };
 
 /* Prototypes for local functions.  */
-static
-char *line_completion_function (const char *text, int matches, 
-				char *line_buffer,
-				int point);
 
 /* readline uses the word breaks for two things:
    (1) In figuring out where to point the TEXT parameter to the
@@ -113,39 +136,31 @@ get_gdb_completer_quote_characters (void
   return gdb_completer_quote_characters;
 }
 
-/* Line completion interface function for readline.  */
-
-char *
-readline_line_completion_function (const char *text, int matches)
-{
-  return line_completion_function (text, matches, 
-				   rl_line_buffer, rl_point);
-}
-
 /* This can be used for functions which don't want to complete on
    symbols but don't want to complete on anything else either.  */
-VEC (char_ptr) *
+
+void
 noop_completer (struct cmd_list_element *ignore, 
+		completion_tracker &tracker,
 		const char *text, const char *prefix)
 {
-  return NULL;
 }
 
 /* Complete on filenames.  */
-VEC (char_ptr) *
-filename_completer (struct cmd_list_element *ignore, 
+
+void
+filename_completer (struct cmd_list_element *ignore,
+		    completion_tracker &tracker,
 		    const char *text, const char *word)
 {
   int subsequent_name;
-  VEC (char_ptr) *return_val = NULL;
 
   subsequent_name = 0;
   while (1)
     {
-      char *p, *q;
-
-      p = rl_filename_completion_function (text, subsequent_name);
-      if (p == NULL)
+      gdb::unique_xmalloc_ptr<char> p_rl
+	(rl_filename_completion_function (text, subsequent_name));
+      if (p_rl == NULL)
 	break;
       /* We need to set subsequent_name to a non-zero value before the
 	 continue line below, because otherwise, if the first file
@@ -154,32 +169,12 @@ filename_completer (struct cmd_list_elem
       subsequent_name = 1;
       /* Like emacs, don't complete on old versions.  Especially
          useful in the "source" command.  */
+      const char *p = p_rl.get ();
       if (p[strlen (p) - 1] == '~')
-	{
-	  xfree (p);
-	  continue;
-	}
+	continue;
 
-      if (word == text)
-	/* Return exactly p.  */
-	q = p;
-      else if (word > text)
-	{
-	  /* Return some portion of p.  */
-	  q = (char *) xmalloc (strlen (p) + 5);
-	  strcpy (q, p + (word - text));
-	  xfree (p);
-	}
-      else
-	{
-	  /* Return some of TEXT plus p.  */
-	  q = (char *) xmalloc (strlen (p) + (text - word) + 5);
-	  strncpy (q, word, text - word);
-	  q[text - word] = '\0';
-	  strcat (q, p);
-	  xfree (p);
-	}
-      VEC_safe_push (char_ptr, return_val, q);
+      tracker.add_completion
+	(make_completion_match_str (std::move (p_rl), text, word));
     }
 #if 0
   /* There is no way to do this just long enough to affect quote
@@ -189,7 +184,214 @@ filename_completer (struct cmd_list_elem
      with respect to inserting quotes.  */
   rl_completer_word_break_characters = "";
 #endif
-  return return_val;
+}
+
+/* The corresponding completer_handle_brkchars
+   implementation.  */
+
+static void
+filename_completer_handle_brkchars (struct cmd_list_element *ignore,
+				    completion_tracker &tracker,
+				    const char *text, const char *word)
+{
+  set_rl_completer_word_break_characters
+    (gdb_completer_file_name_break_characters);
+}
+
+/* Possible values for the found_quote flags word used by the completion
+   functions.  It says what kind of (shell-like) quoting we found anywhere
+   in the line. */
+#define RL_QF_SINGLE_QUOTE      0x01
+#define RL_QF_DOUBLE_QUOTE      0x02
+#define RL_QF_BACKSLASH         0x04
+#define RL_QF_OTHER_QUOTE       0x08
+
+/* Find the bounds of the current word for completion purposes, and
+   return a pointer to the end of the word.  This mimics (and is a
+   modified version of) readline's _rl_find_completion_word internal
+   function.
+
+   This function skips quoted substrings (characters between matched
+   pairs of characters in rl_completer_quote_characters).  We try to
+   find an unclosed quoted substring on which to do matching.  If one
+   is not found, we use the word break characters to find the
+   boundaries of the current word.  QC, if non-null, is set to the
+   opening quote character if we found an unclosed quoted substring,
+   '\0' otherwise.  DP, if non-null, is set to the value of the
+   delimiter character that caused a word break.  */
+
+struct gdb_rl_completion_word_info
+{
+  const char *word_break_characters;
+  const char *quote_characters;
+  const char *basic_quote_characters;
+};
+
+static const char *
+gdb_rl_find_completion_word (struct gdb_rl_completion_word_info *info,
+			     int *qc, int *dp,
+			     const char *line_buffer)
+{
+  int scan, end, found_quote, delimiter, pass_next, isbrk;
+  char quote_char;
+  const char *brkchars;
+  int point = strlen (line_buffer);
+
+  /* The algorithm below does '--point'.  Avoid buffer underflow with
+     the empty string.  */
+  if (point == 0)
+    {
+      if (qc != NULL)
+	*qc = '\0';
+      if (dp != NULL)
+	*dp = '\0';
+      return line_buffer;
+    }
+
+  end = point;
+  found_quote = delimiter = 0;
+  quote_char = '\0';
+
+  brkchars = info->word_break_characters;
+
+  if (info->quote_characters != NULL)
+    {
+      /* We have a list of characters which can be used in pairs to
+	 quote substrings for the completer.  Try to find the start of
+	 an unclosed quoted substring.  */
+      /* FOUND_QUOTE is set so we know what kind of quotes we
+	 found.  */
+      for (scan = pass_next = 0;
+	   scan < end;
+	   scan++)
+	{
+	  if (pass_next)
+	    {
+	      pass_next = 0;
+	      continue;
+	    }
+
+	  /* Shell-like semantics for single quotes -- don't allow
+	     backslash to quote anything in single quotes, especially
+	     not the closing quote.  If you don't like this, take out
+	     the check on the value of quote_char.  */
+	  if (quote_char != '\'' && line_buffer[scan] == '\\')
+	    {
+	      pass_next = 1;
+	      found_quote |= RL_QF_BACKSLASH;
+	      continue;
+	    }
+
+	  if (quote_char != '\0')
+	    {
+	      /* Ignore everything until the matching close quote
+		 char.  */
+	      if (line_buffer[scan] == quote_char)
+		{
+		  /* Found matching close.  Abandon this
+		     substring.  */
+		  quote_char = '\0';
+		  point = end;
+		}
+	    }
+	  else if (strchr (info->quote_characters, line_buffer[scan]))
+	    {
+	      /* Found start of a quoted substring.  */
+	      quote_char = line_buffer[scan];
+	      point = scan + 1;
+	      /* Shell-like quoting conventions.  */
+	      if (quote_char == '\'')
+		found_quote |= RL_QF_SINGLE_QUOTE;
+	      else if (quote_char == '"')
+		found_quote |= RL_QF_DOUBLE_QUOTE;
+	      else
+		found_quote |= RL_QF_OTHER_QUOTE;
+	    }
+	}
+    }
+
+  if (point == end && quote_char == '\0')
+    {
+      /* We didn't find an unclosed quoted substring upon which to do
+	 completion, so use the word break characters to find the
+	 substring on which to complete.  */
+      while (--point)
+	{
+	  scan = line_buffer[point];
+
+	  if (strchr (brkchars, scan) != 0)
+	    break;
+	}
+    }
+
+  /* If we are at an unquoted word break, then advance past it.  */
+  scan = line_buffer[point];
+
+  if (scan)
+    {
+      isbrk = strchr (brkchars, scan) != 0;
+
+      if (isbrk)
+	{
+	  /* If the character that caused the word break was a quoting
+	     character, then remember it as the delimiter.  */
+	  if (info->basic_quote_characters
+	      && strchr (info->basic_quote_characters, scan)
+	      && (end - point) > 1)
+	    delimiter = scan;
+
+	  point++;
+	}
+    }
+
+  if (qc != NULL)
+    *qc = quote_char;
+  if (dp != NULL)
+    *dp = delimiter;
+
+  return line_buffer + point;
+}
+
+/* See completer.h.  */
+
+const char *
+advance_to_expression_complete_word_point (completion_tracker &tracker,
+					   const char *text)
+{
+  gdb_rl_completion_word_info info;
+
+  info.word_break_characters
+    = current_language->la_word_break_characters ();
+  info.quote_characters = gdb_completer_quote_characters;
+  info.basic_quote_characters = rl_basic_quote_characters;
+
+  const char *start
+    = gdb_rl_find_completion_word (&info, NULL, NULL, text);
+
+  tracker.advance_custom_word_point_by (start - text);
+
+  return start;
+}
+
+/* See completer.h.  */
+
+bool
+completion_tracker::completes_to_completion_word (const char *word)
+{
+  if (m_lowest_common_denominator_unique)
+    {
+      const char *lcd = m_lowest_common_denominator;
+
+      if (strncmp_iw (word, lcd, strlen (lcd)) == 0)
+	{
+	  /* Maybe skip the function and complete on keywords.  */
+	  size_t wordlen = strlen (word);
+	  if (word[wordlen - 1] == ' ')
+	    return true;
+	}
+    }
+
+  return false;
 }
 
 /* Complete on linespecs, which might be of two possible forms:
@@ -201,13 +403,11 @@ filename_completer (struct cmd_list_elem
    This is intended to be used in commands that set breakpoints
    etc.  */
 
-static VEC (char_ptr) *
-linespec_location_completer (struct cmd_list_element *ignore,
-			     const char *text, const char *word)
+static void
+complete_files_symbols (completion_tracker &tracker,
+			const char *text, const char *word)
 {
-  int n_syms, n_files, ix;
-  VEC (char_ptr) *fn_list = NULL;
-  VEC (char_ptr) *list = NULL;
+  completion_list fn_list;
   const char *p;
   int quote_found = 0;
   int quoted = *text == '\'' || *text == '"';
@@ -216,7 +416,6 @@ linespec_location_completer (struct cmd_
   char *file_to_match = NULL;
   const char *symbol_start = text;
   const char *orig_text = text;
-  size_t text_len;
 
   /* Do we have an unquoted colon, as in "break foo.c:bar"?  */
   for (p = text; *p != '\0'; ++p)
@@ -257,7 +456,6 @@ linespec_location_completer (struct cmd_
 
   if (quoted)
     text++;
-  text_len = strlen (text);
 
   /* Where is the file name?  */
   if (colon)
@@ -279,47 +477,30 @@ linespec_location_completer (struct cmd_
      symbols as well as on files.  */
   if (colon)
     {
-      list = make_file_symbol_completion_list (symbol_start, word,
-					       file_to_match);
+      collect_file_symbol_completion_matches (tracker,
+					      complete_symbol_mode::EXPRESSION,
+					      symbol_name_match_type::EXPRESSION,
+					      symbol_start, word,
+					      file_to_match);
       xfree (file_to_match);
     }
   else
     {
-      list = make_symbol_completion_list (symbol_start, word);
+      size_t text_len = strlen (text);
+
+      collect_symbol_completion_matches (tracker,
+					 complete_symbol_mode::EXPRESSION,
+					 symbol_name_match_type::EXPRESSION,
+					 symbol_start, word);
       /* If text includes characters which cannot appear in a file
 	 name, they cannot be asking for completion on files.  */
-      if (strcspn (text, 
+      if (strcspn (text,
 		   gdb_completer_file_name_break_characters) == text_len)
 	fn_list = make_source_files_completion_list (text, text);
     }
 
-  n_syms = VEC_length (char_ptr, list);
-  n_files = VEC_length (char_ptr, fn_list);
-
-  /* Catenate fn_list[] onto the end of list[].  */
-  if (!n_syms)
-    {
-      VEC_free (char_ptr, list); /* Paranoia.  */
-      list = fn_list;
-      fn_list = NULL;
-    }
-  else
-    {
-      char *fn;
-
-      for (ix = 0; VEC_iterate (char_ptr, fn_list, ix, fn); ++ix)
-	VEC_safe_push (char_ptr, list, fn);
-      VEC_free (char_ptr, fn_list);
-    }
-
-  if (n_syms && n_files)
-    {
-      /* Nothing.  */
-    }
-  else if (n_files)
+  if (!fn_list.empty () && !tracker.have_completions ())
     {
-      char *fn;
-
       /* If we only have file names as possible completion, we should
 	 bring them in sync with what rl_complete expects.  The
 	 problem is that if the user types "break /foo/b TAB", and the
@@ -335,201 +516,452 @@ linespec_location_completer (struct cmd_
 	 completion, because rl_complete will prepend "/foo/" to each
 	 candidate completion.  The loop below removes that leading
 	 part.  */
-      for (ix = 0; VEC_iterate (char_ptr, list, ix, fn); ++ix)
+      for (const auto &fn_up: fn_list)
 	{
-	  memmove (fn, fn + (word - text),
-		   strlen (fn) + 1 - (word - text));
+	  char *fn = fn_up.get ();
+	  memmove (fn, fn + (word - text), strlen (fn) + 1 - (word - text));
 	}
     }
-  else if (!n_syms)
+
+  tracker.add_completions (std::move (fn_list));
+
+  if (!tracker.have_completions ())
     {
       /* No completions at all.  As the final resort, try completing
 	 on the entire text as a symbol.  */
-      list = make_symbol_completion_list (orig_text, word);
+      collect_symbol_completion_matches (tracker,
+					 complete_symbol_mode::EXPRESSION,
+					 symbol_name_match_type::EXPRESSION,
+					 orig_text, word);
+    }
+}
+
+/* See completer.h.  */
+
+completion_list
+complete_source_filenames (const char *text)
+{
+  size_t text_len = strlen (text);
+
+  /* If text includes characters which cannot appear in a file name,
+     the user cannot be asking for completion on files.  */
+  if (strcspn (text,
+	       gdb_completer_file_name_break_characters)
+      == text_len)
+    return make_source_files_completion_list (text, text);
+
+  return {};
+}
+
+/* Complete address and linespec locations.  */
+
+static void
+complete_address_and_linespec_locations (completion_tracker &tracker,
+					 const char *text,
+					 symbol_name_match_type match_type)
+{
+  if (*text == '*')
+    {
+      tracker.advance_custom_word_point_by (1);
+      text++;
+      const char *word
+	= advance_to_expression_complete_word_point (tracker, text);
+      complete_expression (tracker, text, word);
     }
+  else
+    {
+      linespec_complete (tracker, text, match_type);
+    }
+}
 
-  return list;
+/* The explicit location options.  Note that indexes into this array
+   must match the explicit_location_match_type enumerators.  */
+
+static const char *const explicit_options[] =
+  {
+    "-source",
+    "-function",
+    "-qualified",
+    "-line",
+    "-label",
+    NULL
+  };
+
+/* The probe modifier options.  These can appear before a location in
+   breakpoint commands.  */
+static const char *const probe_options[] =
+  {
+    "-probe",
+    "-probe-stap",
+    "-probe-dtrace",
+    NULL
+  };
+
+/* Returns STRING if not NULL, the empty string otherwise.  */
+
+static const char *
+string_or_empty (const char *string)
+{
+  return string != NULL ? string : "";
 }
 
 /* A helper function to collect explicit location matches for the given
    LOCATION, which is attempting to match on WORD.  */
 
-static VEC (char_ptr) *
-collect_explicit_location_matches (struct event_location *location,
+static void
+collect_explicit_location_matches (completion_tracker &tracker,
+				   struct event_location *location,
 				   enum explicit_location_match_type what,
-				   const char *word)
+				   const char *word,
+				   const struct language_defn *language)
 {
-  VEC (char_ptr) *matches = NULL;
   const struct explicit_location *explicit_loc
     = get_explicit_location (location);
 
+  /* True if the option expects an argument.  */
+  bool needs_arg = true;
+
+  /* Note, in the various MATCH_* below, we complete on
+     explicit_loc->foo instead of WORD, because only the former will
+     have already skipped past any quote char.  */
   switch (what)
     {
     case MATCH_SOURCE:
       {
-	const char *text = (explicit_loc->source_filename == NULL
-			    ? "" : explicit_loc->source_filename);
-
-	matches = make_source_files_completion_list (text, word);
+	const char *source = string_or_empty (explicit_loc->source_filename);
+	completion_list matches
+	  = make_source_files_completion_list (source, source);
+	tracker.add_completions (std::move (matches));
       }
       break;
 
     case MATCH_FUNCTION:
       {
-	const char *text = (explicit_loc->function_name == NULL
-			    ? "" : explicit_loc->function_name);
-
-	if (explicit_loc->source_filename != NULL)
-	  {
-	    const char *filename = explicit_loc->source_filename;
-
-	    matches = make_file_symbol_completion_list (text, word, filename);
-	  }
-	else
-	  matches = make_symbol_completion_list (text, word);
+	const char *function = string_or_empty (explicit_loc->function_name);
+	linespec_complete_function (tracker, function,
+				    explicit_loc->func_name_match_type,
+				    explicit_loc->source_filename);
       }
       break;
 
+    case MATCH_QUALIFIED:
+      needs_arg = false;
+      break;
+    case MATCH_LINE:
+      /* Nothing to offer.  */
+      break;
+
     case MATCH_LABEL:
-      /* Not supported.  */
+      {
+	const char *label = string_or_empty (explicit_loc->label_name);
+	linespec_complete_label (tracker, language,
+				 explicit_loc->source_filename,
+				 explicit_loc->function_name,
+				 explicit_loc->func_name_match_type,
+				 label);
+      }
       break;
 
     default:
       gdb_assert_not_reached ("unhandled explicit_location_match_type");
     }
 
-  return matches;
+  if (!needs_arg || tracker.completes_to_completion_word (word))
+    {
+      tracker.discard_completions ();
+      tracker.advance_custom_word_point_by (strlen (word));
+      complete_on_enum (tracker, explicit_options, "", "");
+      complete_on_enum (tracker, linespec_keywords, "", "");
+    }
+  else if (!tracker.have_completions ())
+    {
+      /* Maybe we have an unterminated linespec keyword at the tail of
+	 the string.  Try completing on that.  */
+      size_t wordlen = strlen (word);
+      const char *keyword = word + wordlen;
+
+      if (wordlen > 0 && keyword[-1] != ' ')
+	{
+	  while (keyword > word && *keyword != ' ')
+	    keyword--;
+	  /* Don't complete on keywords if we'd be completing on the
+	     whole explicit linespec option.  E.g., "b -function
+	     thr<tab>" should not complete to the "thread"
+	     keyword.  */
+	  if (keyword != word)
+	    {
+	      keyword = skip_spaces (keyword);
+
+	      tracker.advance_custom_word_point_by (keyword - word);
+	      complete_on_enum (tracker, linespec_keywords, keyword, keyword);
+	    }
+	}
+      else if (wordlen > 0 && keyword[-1] == ' ')
+	{
+	  /* Assume that we're maybe past the explicit location
+	     argument, and we didn't manage to find any match because
+	     the user wants to create a pending breakpoint.  Offer the
+	     keyword and explicit location options as possible
+	     completions.  */
+	  tracker.advance_custom_word_point_by (keyword - word);
+	  complete_on_enum (tracker, linespec_keywords, keyword, keyword);
+	  complete_on_enum (tracker, explicit_options, keyword, keyword);
+	}
+    }
 }
 
-/* A convenience macro to (safely) back up P to the previous word.  */
+/* If the next word in *TEXT_P is any of the keywords in KEYWORDS,
+   then advance both TEXT_P and the word point in the tracker past the
+   keyword and return the (0-based) index in the KEYWORDS array that
+   matched.  Otherwise, return -1.  */
 
-static const char *
-backup_text_ptr (const char *p, const char *text)
+static int
+skip_keyword (completion_tracker &tracker,
+	      const char * const *keywords, const char **text_p)
 {
-  while (p > text && isspace (*p))
-    --p;
-  for (; p > text && !isspace (p[-1]); --p)
-    ;
+  const char *text = *text_p;
+  const char *after = skip_to_space (text);
+  size_t len = after - text;
+
+  if (text[len] != ' ')
+    return -1;
+
+  int found = -1;
+  for (int i = 0; keywords[i] != NULL; i++)
+    {
+      if (strncmp (keywords[i], text, len) == 0)
+	{
+	  if (found == -1)
+	    found = i;
+	  else
+	    return -1;
+	}
+    }
 
-  return p;
+  if (found != -1)
+    {
+      tracker.advance_custom_word_point_by (len + 1);
+      text += len + 1;
+      *text_p = text;
+      return found;
+    }
+
+  return -1;
 }
 
 /* A completer function for explicit locations.  This function
-   completes both options ("-source", "-line", etc) and values.  */
+   completes both options ("-source", "-line", etc) and values.  If
+   completing a quoted string, then QUOTED_ARG_START and
+   QUOTED_ARG_END point to the quote characters.  LANGUAGE is the
+   current language.  */
 
-static VEC (char_ptr) *
-explicit_location_completer (struct cmd_list_element *ignore,
-			     struct event_location *location,
-			     const char *text, const char *word)
+static void
+complete_explicit_location (completion_tracker &tracker,
+			    struct event_location *location,
+			    const char *text,
+			    const language_defn *language,
+			    const char *quoted_arg_start,
+			    const char *quoted_arg_end)
 {
-  const char *p;
-  VEC (char_ptr) *matches = NULL;
-
-  /* Find the beginning of the word.  This is necessary because
-     we need to know if we are completing an option name or value.  We
-     don't get the leading '-' from the completer.  */
-  p = backup_text_ptr (word, text);
-
-  if (*p == '-')
-    {
-      /* Completing on option name.  */
-      static const char *const keywords[] =
-	{
-	  "source",
-	  "function",
-	  "line",
-	  "label",
-	  NULL
-	};
+  if (*text != '-')
+    return;
 
-      /* Skip over the '-'.  */
-      ++p;
+  int keyword = skip_keyword (tracker, explicit_options, &text);
 
-      return complete_on_enum (keywords, p, p);
-    }
+  if (keyword == -1)
+    complete_on_enum (tracker, explicit_options, text, text);
   else
     {
-      /* Completing on value (or unknown).  Get the previous word to see what
-	 the user is completing on.  */
-      size_t len, offset;
-      const char *new_word, *end;
-      enum explicit_location_match_type what;
-      struct explicit_location *explicit_loc
-	= get_explicit_location (location);
-
-      /* Backup P to the previous word, which should be the option
-	 the user is attempting to complete.  */
-      offset = word - p;
-      end = --p;
-      p = backup_text_ptr (p, text);
-      len = end - p;
-
-      if (strncmp (p, "-source", len) == 0)
-	{
-	  what = MATCH_SOURCE;
-	  new_word = explicit_loc->source_filename + offset;
-	}
-      else if (strncmp (p, "-function", len) == 0)
-	{
-	  what = MATCH_FUNCTION;
-	  new_word = explicit_loc->function_name + offset;
-	}
-      else if (strncmp (p, "-label", len) == 0)
-	{
-	  what = MATCH_LABEL;
-	  new_word = explicit_loc->label_name + offset;
-	}
-      else
+      /* Completing on value.  */
+      enum explicit_location_match_type what
+	= (explicit_location_match_type) keyword;
+
+      if (quoted_arg_start != NULL && quoted_arg_end != NULL)
 	{
-	  /* The user isn't completing on any valid option name,
-	     e.g., "break -source foo.c [tab]".  */
-	  return NULL;
+	  if (quoted_arg_end[1] == '\0')
+	    {
+	      /* If completing a quoted string with the cursor right
+		 at the terminating quote char, complete the
+		 completion word without interpretation, so that
+		 readline advances the cursor one whitespace past the
+		 quote, even if there's no match.  This makes these
+		 cases behave the same:
+
+		   before: "b -function function()"
+		   after:  "b -function function() "
+
+		   before: "b -function 'function()'"
+		   after:  "b -function 'function()' "
+
+		 and trusts the user in this case:
+
+		   before: "b -function 'not_loaded_function_yet()'"
+		   after:  "b -function 'not_loaded_function_yet()' "
+	      */
+	      gdb::unique_xmalloc_ptr<char> text_copy
+		(xstrdup (text));
+	      tracker.add_completion (std::move (text_copy));
+	    }
+	  else if (quoted_arg_end[1] == ' ')
+	    {
+	      /* We're maybe past the explicit location argument.
+		 Skip the argument without interpretion, assuming the
+		 user may want to create pending breakpoint.  Offer
+		 the keyword and explicit location options as possible
+		 completions.  */
+	      tracker.advance_custom_word_point_by (strlen (text));
+	      complete_on_enum (tracker, linespec_keywords, "", "");
+	      complete_on_enum (tracker, explicit_options, "", "");
+	    }
+	  return;
 	}
 
-      /* If the user hasn't entered a search expression, e.g.,
-	 "break -function <TAB><TAB>", new_word will be NULL, but
-	 search routines require non-NULL search words.  */
-      if (new_word == NULL)
-	new_word = "";
-
       /* Now gather matches  */
-      matches = collect_explicit_location_matches (location, what, new_word);
+      collect_explicit_location_matches (tracker, location, what, text,
+					 language);
     }
-
-  return matches;
 }
 
 /* A completer for locations.  */
 
-VEC (char_ptr) *
+void
 location_completer (struct cmd_list_element *ignore,
-		    const char *text, const char *word)
+		    completion_tracker &tracker,
+		    const char *text, const char * /* word */)
 {
-  VEC (char_ptr) *matches = NULL;
+  int found_probe_option = -1;
+
+  /* If we have a probe modifier, skip it.  This can only appear as
+     first argument.  Until we have a specific completer for probes,
+     falling back to the linespec completer for the remainder of the
+     line is better than nothing.  */
+  if (text[0] == '-' && text[1] == 'p')
+    found_probe_option = skip_keyword (tracker, probe_options, &text);
+
+  const char *option_text = text;
+  int saved_word_point = tracker.custom_word_point ();
+
   const char *copy = text;
 
-  event_location_up location = string_to_explicit_location (&copy,
-							    current_language,
-							    1);
-  if (location != NULL)
-    matches = explicit_location_completer (ignore, location.get (),
-					   text, word);
+  explicit_completion_info completion_info;
+  event_location_up location
+    = string_to_explicit_location (&copy, current_language,
+				   &completion_info);
+  if (completion_info.quoted_arg_start != NULL
+      && completion_info.quoted_arg_end == NULL)
+    {
+      /* Found an unbalanced quote.  */
+      tracker.set_quote_char (*completion_info.quoted_arg_start);
+      tracker.advance_custom_word_point_by (1);
+    }
+
+  if (completion_info.saw_explicit_location_option)
+    {
+      if (*copy != '\0')
+	{
+	  tracker.advance_custom_word_point_by (copy - text);
+	  text = copy;
+
+	  /* We found a terminator at the tail end of the string,
+	     which means we're past the explicit location options.  We
+	     may have a keyword to complete on.  If we have a whole
+	     keyword, then complete whatever comes after as an
+	     expression.  This is mainly for the "if" keyword.  If the
+	     "thread" and "task" keywords gain their own completers,
+	     they should be used here.  */
+	  int keyword = skip_keyword (tracker, linespec_keywords, &text);
+
+	  if (keyword == -1)
+	    {
+	      complete_on_enum (tracker, linespec_keywords, text, text);
+	    }
+	  else
+	    {
+	      const char *word
+		= advance_to_expression_complete_word_point (tracker, text);
+	      complete_expression (tracker, text, word);
+	    }
+	}
+      else
+	{
+	  tracker.advance_custom_word_point_by (completion_info.last_option
+						- text);
+	  text = completion_info.last_option;
+
+	  complete_explicit_location (tracker, location.get (), text,
+				      current_language,
+				      completion_info.quoted_arg_start,
+				      completion_info.quoted_arg_end);
+
+	}
+    }
+  /* This is an address or linespec location.  */
+  else if (location != NULL)
+    {
+      /* Handle non-explicit location options.  */
+
+      int keyword = skip_keyword (tracker, explicit_options, &text);
+      if (keyword == -1)
+	complete_on_enum (tracker, explicit_options, text, text);
+      else
+	{
+	  tracker.advance_custom_word_point_by (copy - text);
+	  text = copy;
+
+	  symbol_name_match_type match_type
+	    = get_explicit_location (location.get ())->func_name_match_type;
+	  complete_address_and_linespec_locations (tracker, text, match_type);
+	}
+    }
   else
     {
-      /* This is an address or linespec location.
-	 Right now both of these are handled by the (old) linespec
-	 completer.  */
-      matches = linespec_location_completer (ignore, text, word);
+      /* No options.  */
+      complete_address_and_linespec_locations (tracker, text,
+					       symbol_name_match_type::WILD);
     }
 
-  return matches;
+  /* Add matches for option names, if either:
+
+     - Some completer above found some matches, but the word point did
+       not advance (e.g., "b <tab>" finds all functions, or "b -<tab>"
+       matches all objc selectors), or;
+
+     - Some completer above advanced the word point, but found no
+       matches.
+  */
+  if ((text[0] == '-' || text[0] == '\0')
+      && (!tracker.have_completions ()
+	  || tracker.custom_word_point () == saved_word_point))
+    {
+      tracker.set_custom_word_point (saved_word_point);
+      text = option_text;
+
+      if (found_probe_option == -1)
+	complete_on_enum (tracker, probe_options, text, text);
+      complete_on_enum (tracker, explicit_options, text, text);
+    }
+}
+
+/* The corresponding completer_handle_brkchars
+   implementation.  */
+
+static void
+location_completer_handle_brkchars (struct cmd_list_element *ignore,
+				    completion_tracker &tracker,
+				    const char *text,
+				    const char *word_ignored)
+{
+  tracker.set_use_custom_word_point (true);
+
+  location_completer (ignore, tracker, text, NULL);
 }
 
 /* Helper for expression_completer which recursively adds field and
-   method names from TYPE, a struct or union type, to the array
-   OUTPUT.  */
+   method names from TYPE, a struct or union type, to the OUTPUT
+   list.  */
+
 static void
-add_struct_fields (struct type *type, VEC (char_ptr) **output,
+add_struct_fields (struct type *type, completion_list &output,
 		   char *fieldname, int namelen)
 {
   int i;
@@ -548,8 +980,7 @@ add_struct_fields (struct type *type, VE
 	    {
 	      if (! strncmp (TYPE_FIELD_NAME (type, i), 
 			     fieldname, namelen))
-		VEC_safe_push (char_ptr, *output,
-			       xstrdup (TYPE_FIELD_NAME (type, i)));
+		output.emplace_back (xstrdup (TYPE_FIELD_NAME (type, i)));
 	    }
 	  else if (TYPE_CODE (TYPE_FIELD_TYPE (type, i)) == TYPE_CODE_UNION)
 	    {
@@ -573,21 +1004,19 @@ add_struct_fields (struct type *type, VE
 	    }
 	  /* Omit constructors from the completion list.  */
 	  if (!type_name || strcmp (type_name, name))
-	    VEC_safe_push (char_ptr, *output, xstrdup (name));
+	    output.emplace_back (xstrdup (name));
 	}
     }
 }
 
-/* Complete on expressions.  Often this means completing on symbol
-   names, but some language parsers also have support for completing
-   field names.  */
-VEC (char_ptr) *
-expression_completer (struct cmd_list_element *ignore, 
-		      const char *text, const char *word)
+/* See completer.h.  */
+
+void
+complete_expression (completion_tracker &tracker,
+		     const char *text, const char *word)
 {
   struct type *type = NULL;
   char *fieldname;
-  const char *p;
   enum type_code code = TYPE_CODE_UNDEF;
 
   /* Perform a tentative parse of the expression, to see whether a
@@ -599,7 +1028,7 @@ expression_completer (struct cmd_list_el
     }
   CATCH (except, RETURN_MASK_ERROR)
     {
-      return NULL;
+      return;
     }
   END_CATCH
 
@@ -617,33 +1046,38 @@ expression_completer (struct cmd_list_el
 	  || TYPE_CODE (type) == TYPE_CODE_STRUCT)
 	{
 	  int flen = strlen (fieldname);
-	  VEC (char_ptr) *result = NULL;
+	  completion_list result;
 
-	  add_struct_fields (type, &result, fieldname, flen);
+	  add_struct_fields (type, result, fieldname, flen);
 	  xfree (fieldname);
-	  return result;
+	  tracker.add_completions (std::move (result));
+	  return;
 	}
     }
   else if (fieldname && code != TYPE_CODE_UNDEF)
     {
-      VEC (char_ptr) *result;
       struct cleanup *cleanup = make_cleanup (xfree, fieldname);
 
-      result = make_symbol_completion_type (fieldname, fieldname, code);
+      collect_symbol_completion_matches_type (tracker, fieldname, fieldname,
+					      code);
       do_cleanups (cleanup);
-      return result;
+      return;
     }
   xfree (fieldname);
 
-  /* Commands which complete on locations want to see the entire
-     argument.  */
-  for (p = word;
-       p > text && p[-1] != ' ' && p[-1] != '\t';
-       p--)
-    ;
+  complete_files_symbols (tracker, text, word);
+}
+
+/* Complete on expressions.  Often this means completing on symbol
+   names, but some language parsers also have support for completing
+   field names.  */
 
-  /* Not ideal but it is what we used to do before...  */
-  return location_completer (ignore, p, word);
+void
+expression_completer (struct cmd_list_element *ignore,
+		      completion_tracker &tracker,
+		      const char *text, const char *word)
+{
+  complete_expression (tracker, text, word);
 }
 
 /* See definition in completer.h.  */
@@ -671,6 +1105,18 @@ set_gdb_completion_word_break_characters
   set_rl_completer_word_break_characters (break_chars);
 }
 
+/* Complete on symbols.  */
+
+void
+symbol_completer (struct cmd_list_element *ignore,
+		  completion_tracker &tracker,
+		  const char *text, const char *word)
+{
+  collect_symbol_completion_matches (tracker, complete_symbol_mode::EXPRESSION,
+				     symbol_name_match_type::EXPRESSION,
+				     text, word);
+}
+
 /* Here are some useful test cases for completion.  FIXME: These
    should be put in the test suite.  They should be tested with both
    M-? and TAB.
@@ -694,14 +1140,84 @@ set_gdb_completion_word_break_characters
    "file ../gdb.stabs/we" "ird" (needs to not break word at slash)
  */
 
-typedef enum
+enum complete_line_internal_reason
 {
+  /* Preliminary phase, called by gdb_completion_word_break_characters
+     function, is used to either:
+
+     #1 - Determine the set of chars that are word delimiters
+	  depending on the current command in line_buffer.
+
+     #2 - Manually advance RL_POINT to the "word break" point instead
+	  of letting readline do it (based on too-simple character
+	  matching).
+
+     Simpler completers that just pass a brkchars array to readline
+     (#1 above) must defer generating the completions to the main
+     phase (below).  No completion list should be generated in this
+     phase.
+
+     OTOH, completers that manually advance the word point(#2 above)
+     must set "use_custom_word_point" in the tracker and generate
+     their completion in this phase.  Note that this is the convenient
+     thing to do since they'll be parsing the input line anyway.  */
   handle_brkchars,
+
+  /* Main phase, called by complete_line function, is used to get the
+     list of possible completions.  */
   handle_completions,
-  handle_help
-}
-complete_line_internal_reason;
 
+  /* Special case when completing a 'help' command.  In this case,
+     once sub-command completions are exhausted, we simply return
+     NULL.  */
+  handle_help,
+};
+
+/* Helper for complete_line_internal to simplify it.  */
+
+static void
+complete_line_internal_normal_command (completion_tracker &tracker,
+				       const char *command, const char *word,
+				       const char *cmd_args,
+				       complete_line_internal_reason reason,
+				       struct cmd_list_element *c)
+{
+  const char *p = cmd_args;
+
+  if (c->completer == filename_completer)
+    {
+      /* Many commands which want to complete on file names accept
+	 several file names, as in "run foo bar >>baz".  So we don't
+	 want to complete the entire text after the command, just the
+	 last word.  To this end, we need to find the beginning of the
+	 file name by starting at `word' and going backwards.  */
+      for (p = word;
+	   p > command
+	     && strchr (gdb_completer_file_name_break_characters,
+			p[-1]) == NULL;
+	   p--)
+	;
+    }
+
+  if (reason == handle_brkchars)
+    {
+      completer_handle_brkchars_ftype *brkchars_fn;
+
+      if (c->completer_handle_brkchars != NULL)
+	brkchars_fn = c->completer_handle_brkchars;
+      else
+	{
+	  brkchars_fn
+	    = (completer_handle_brkchars_func_for_completer
+	       (c->completer));
+	}
+
+      brkchars_fn (c, tracker, p, word);
+    }
+
+  if (reason != handle_brkchars && c->completer != NULL)
+    (*c->completer) (c, tracker, p, word);
+}
 
 /* Internal function used to handle completions.
 
@@ -712,35 +1228,19 @@ complete_line_internal_reason;
    text of the line.  POINT is the offset in that line of the cursor.
    You should pretend that the line ends at POINT.
 
-   REASON is of type complete_line_internal_reason.
-
-   If REASON is handle_brkchars:
-   Preliminary phase, called by gdb_completion_word_break_characters
-   function, is used to determine the correct set of chars that are
-   word delimiters depending on the current command in line_buffer.
-   No completion list should be generated; the return value should be
-   NULL.  This is checked by an assertion in that function.
-
-   If REASON is handle_completions:
-   Main phase, called by complete_line function, is used to get the list
-   of posible completions.
-
-   If REASON is handle_help:
-   Special case when completing a 'help' command.  In this case,
-   once sub-command completions are exhausted, we simply return NULL.
- */
+   See complete_line_internal_reason for description of REASON.  */
 
-static VEC (char_ptr) *
-complete_line_internal (const char *text, 
-			const char *line_buffer, int point,
-			complete_line_internal_reason reason)
+static void
+complete_line_internal_1 (completion_tracker &tracker,
+			  const char *text,
+			  const char *line_buffer, int point,
+			  complete_line_internal_reason reason)
 {
-  VEC (char_ptr) *list = NULL;
   char *tmp_command;
   const char *p;
   int ignore_help_classes;
   /* Pointer within tmp_command which corresponds to text.  */
-  char *word;
+  const char *word;
   struct cmd_list_element *c, *result_list;
 
   /* Choose the default set of word break characters to break
@@ -763,15 +1263,26 @@ complete_line_internal (const char *text
 
   strncpy (tmp_command, line_buffer, point);
   tmp_command[point] = '\0';
-  /* Since text always contains some number of characters leading up
-     to point, we can find the equivalent position in tmp_command
-     by subtracting that many characters from the end of tmp_command.  */
-  word = tmp_command + point - strlen (text);
+  if (reason == handle_brkchars)
+    {
+      gdb_assert (text == NULL);
+      word = NULL;
+    }
+  else
+    {
+      /* Since text always contains some number of characters leading up
+	 to point, we can find the equivalent position in tmp_command
+	 by subtracting that many characters from the end of tmp_command.  */
+      word = tmp_command + point - strlen (text);
+    }
 
-  if (point == 0)
+  /* Move P up to the start of the command.  */
+  p = skip_spaces (p);
+
+  if (*p == '\0')
     {
-      /* An empty line we want to consider ambiguous; that is, it
-	 could be any command.  */
+      /* An empty line is ambiguous; that is, it could be any
+	 command.  */
       c = CMD_LIST_AMBIGUOUS;
       result_list = 0;
     }
@@ -786,11 +1297,12 @@ complete_line_internal (const char *text
       p++;
     }
 
+  tracker.advance_custom_word_point_by (p - tmp_command);
+
   if (!c)
     {
       /* It is an unrecognized command.  So there are no
 	 possible completions.  */
-      list = NULL;
     }
   else if (c == CMD_LIST_AMBIGUOUS)
     {
@@ -808,7 +1320,6 @@ complete_line_internal (const char *text
 	     example, "info t " or "info t foo" does not complete
 	     to anything, because "info t" can be "info target" or
 	     "info terminal".  */
-	  list = NULL;
 	}
       else
 	{
@@ -817,14 +1328,14 @@ complete_line_internal (const char *text
 	  if (result_list)
 	    {
 	      if (reason != handle_brkchars)
-		list = complete_on_cmdlist (*result_list->prefixlist, p,
-					    word, ignore_help_classes);
+		complete_on_cmdlist (*result_list->prefixlist, tracker, p,
+				     word, ignore_help_classes);
 	    }
 	  else
 	    {
 	      if (reason != handle_brkchars)
-		list = complete_on_cmdlist (cmdlist, p, word,
-					    ignore_help_classes);
+		complete_on_cmdlist (cmdlist, tracker, p, word,
+				     ignore_help_classes);
 	    }
 	  /* Ensure that readline does the right thing with respect to
 	     inserting quotes.  */
@@ -850,8 +1361,8 @@ complete_line_internal (const char *text
 		  /* It is a prefix command; what comes after it is
 		     a subcommand (e.g. "info ").  */
 		  if (reason != handle_brkchars)
-		    list = complete_on_cmdlist (*c->prefixlist, p, word,
-						ignore_help_classes);
+		    complete_on_cmdlist (*c->prefixlist, tracker, p, word,
+					 ignore_help_classes);
 
 		  /* Ensure that readline does the right thing
 		     with respect to inserting quotes.  */
@@ -859,11 +1370,11 @@ complete_line_internal (const char *text
 		    (gdb_completer_command_word_break_characters);
 		}
 	      else if (reason == handle_help)
-		list = NULL;
+		;
 	      else if (c->enums)
 		{
 		  if (reason != handle_brkchars)
-		    list = complete_on_enum (c->enums, p, word);
+		    complete_on_enum (tracker, c->enums, p, word);
 		  set_rl_completer_word_break_characters
 		    (gdb_completer_command_word_break_characters);
 		}
@@ -871,29 +1382,9 @@ complete_line_internal (const char *text
 		{
 		  /* It is a normal command; what comes after it is
 		     completed by the command's completer function.  */
-		  if (c->completer == filename_completer)
-		    {
-		      /* Many commands which want to complete on
-			 file names accept several file names, as
-			 in "run foo bar >>baz".  So we don't want
-			 to complete the entire text after the
-			 command, just the last word.  To this
-			 end, we need to find the beginning of the
-			 file name by starting at `word' and going
-			 backwards.  */
-		      for (p = word;
-			   p > tmp_command
-			     && strchr (gdb_completer_file_name_break_characters, p[-1]) == NULL;
-			   p--)
-			;
-		      set_rl_completer_word_break_characters
-			(gdb_completer_file_name_break_characters);
-		    }
-		  if (reason == handle_brkchars
-		      && c->completer_handle_brkchars != NULL)
-		    (*c->completer_handle_brkchars) (c, p, word);
-		  if (reason != handle_brkchars && c->completer != NULL)
-		    list = (*c->completer) (c, p, word);
+		  complete_line_internal_normal_command (tracker,
+							 tmp_command, word, p,
+							 reason, c);
 		}
 	    }
 	  else
@@ -915,8 +1406,8 @@ complete_line_internal (const char *text
 		}
 
 	      if (reason != handle_brkchars)
-		list = complete_on_cmdlist (result_list, q, word,
-					    ignore_help_classes);
+		complete_on_cmdlist (result_list, tracker, q, word,
+				     ignore_help_classes);
 
 	      /* Ensure that readline does the right thing
 		 with respect to inserting quotes.  */
@@ -925,7 +1416,7 @@ complete_line_internal (const char *text
 	    }
 	}
       else if (reason == handle_help)
-	list = NULL;
+	;
       else
 	{
 	  /* There is non-whitespace beyond the command.  */
@@ -934,120 +1425,205 @@ complete_line_internal (const char *text
 	    {
 	      /* It is an unrecognized subcommand of a prefix command,
 		 e.g. "info adsfkdj".  */
-	      list = NULL;
 	    }
 	  else if (c->enums)
 	    {
 	      if (reason != handle_brkchars)
-		list = complete_on_enum (c->enums, p, word);
+		complete_on_enum (tracker, c->enums, p, word);
 	    }
 	  else
 	    {
 	      /* It is a normal command.  */
-	      if (c->completer == filename_completer)
-		{
-		  /* See the commentary above about the specifics
-		     of file-name completion.  */
-		  for (p = word;
-		       p > tmp_command
-			 && strchr (gdb_completer_file_name_break_characters, 
-				    p[-1]) == NULL;
-		       p--)
-		    ;
-		  set_rl_completer_word_break_characters
-		    (gdb_completer_file_name_break_characters);
-		}
-	      if (reason == handle_brkchars
-		  && c->completer_handle_brkchars != NULL)
-		(*c->completer_handle_brkchars) (c, p, word);
-	      if (reason != handle_brkchars && c->completer != NULL)
-		list = (*c->completer) (c, p, word);
+	      complete_line_internal_normal_command (tracker,
+						     tmp_command, word, p,
+						     reason, c);
 	    }
 	}
     }
+}
+
+/* Wrapper around complete_line_internal_1 to handle
+   MAX_COMPLETIONS_REACHED_ERROR.  */
 
-  return list;
+static void
+complete_line_internal (completion_tracker &tracker,
+			const char *text,
+			const char *line_buffer, int point,
+			complete_line_internal_reason reason)
+{
+  TRY
+    {
+      complete_line_internal_1 (tracker, text, line_buffer, point, reason);
+    }
+  CATCH (except, RETURN_MASK_ERROR)
+    {
+      if (except.error != MAX_COMPLETIONS_REACHED_ERROR)
+	throw_exception (except);
+    }
+  END_CATCH
 }
 
 /* See completer.h.  */
 
 int max_completions = 200;
 
+/* Initial size of the table.  It automagically grows from here.  */
+#define INITIAL_COMPLETION_HTAB_SIZE 200
+
 /* See completer.h.  */
 
-completion_tracker_t
-new_completion_tracker (void)
+completion_tracker::completion_tracker ()
 {
-  if (max_completions <= 0)
-    return NULL;
-
-  return htab_create_alloc (max_completions,
-			    htab_hash_string, (htab_eq) streq,
-			    NULL, xcalloc, xfree);
+  m_entries_hash = htab_create_alloc (INITIAL_COMPLETION_HTAB_SIZE,
+				      htab_hash_string, (htab_eq) streq,
+				      NULL, xcalloc, xfree);
 }
 
-/* Cleanup routine to free a completion tracker and reset the pointer
-   to NULL.  */
+/* See completer.h.  */
 
-static void
-free_completion_tracker (void *p)
+void
+completion_tracker::discard_completions ()
 {
-  completion_tracker_t *tracker_ptr = (completion_tracker_t *) p;
+  xfree (m_lowest_common_denominator);
+  m_lowest_common_denominator = NULL;
+
+  m_lowest_common_denominator_unique = false;
 
-  htab_delete (*tracker_ptr);
-  *tracker_ptr = NULL;
+  m_entries_vec.clear ();
+
+  htab_delete (m_entries_hash);
+  m_entries_hash = htab_create_alloc (INITIAL_COMPLETION_HTAB_SIZE,
+				      htab_hash_string, (htab_eq) streq,
+				      NULL, xcalloc, xfree);
 }
 
 /* See completer.h.  */
 
-struct cleanup *
-make_cleanup_free_completion_tracker (completion_tracker_t *tracker_ptr)
+completion_tracker::~completion_tracker ()
 {
-  if (*tracker_ptr == NULL)
-    return make_cleanup (null_cleanup, NULL);
-
-  return make_cleanup (free_completion_tracker, tracker_ptr);
+  xfree (m_lowest_common_denominator);
+  htab_delete (m_entries_hash);
 }
 
 /* See completer.h.  */
 
-enum maybe_add_completion_enum
-maybe_add_completion (completion_tracker_t tracker, char *name)
+bool
+completion_tracker::maybe_add_completion
+  (gdb::unique_xmalloc_ptr<char> name,
+   completion_match_for_lcd *match_for_lcd,
+   const char *text, const char *word)
 {
   void **slot;
 
-  if (max_completions < 0)
-    return MAYBE_ADD_COMPLETION_OK;
   if (max_completions == 0)
-    return MAYBE_ADD_COMPLETION_MAX_REACHED;
+    return false;
+
+  if (htab_elements (m_entries_hash) >= max_completions)
+    return false;
+
+  slot = htab_find_slot (m_entries_hash, name.get (), INSERT);
+  if (*slot == HTAB_EMPTY_ENTRY)
+    {
+      const char *match_for_lcd_str = NULL;
+
+      if (match_for_lcd != NULL)
+	match_for_lcd_str = match_for_lcd->finish ();
 
-  gdb_assert (tracker != NULL);
+      if (match_for_lcd_str == NULL)
+	match_for_lcd_str = name.get ();
 
-  if (htab_elements (tracker) >= max_completions)
-    return MAYBE_ADD_COMPLETION_MAX_REACHED;
+      gdb::unique_xmalloc_ptr<char> lcd
+	= make_completion_match_str (match_for_lcd_str, text, word);
 
-  slot = htab_find_slot (tracker, name, INSERT);
+      recompute_lowest_common_denominator (std::move (lcd));
+
+      *slot = name.get ();
+      m_entries_vec.push_back (std::move (name));
+    }
 
-  if (*slot != HTAB_EMPTY_ENTRY)
-    return MAYBE_ADD_COMPLETION_DUPLICATE;
+  return true;
+}
 
-  *slot = name;
+/* See completer.h.  */
 
-  return (htab_elements (tracker) < max_completions
-	  ? MAYBE_ADD_COMPLETION_OK
-	  : MAYBE_ADD_COMPLETION_OK_MAX_REACHED);
+void
+completion_tracker::add_completion (gdb::unique_xmalloc_ptr<char> name,
+				    completion_match_for_lcd *match_for_lcd,
+				    const char *text, const char *word)
+{
+  if (!maybe_add_completion (std::move (name), match_for_lcd, text, word))
+    throw_error (MAX_COMPLETIONS_REACHED_ERROR, _("Max completions reached."));
 }
 
+/* See completer.h.  */
+
 void
-throw_max_completions_reached_error (void)
+completion_tracker::add_completions (completion_list &&list)
+{
+  for (auto &candidate : list)
+    add_completion (std::move (candidate));
+}
+
+/* Helper for the make_completion_match_str overloads.  Returns NULL
+   as an indication that we want MATCH_NAME exactly.  It is up to the
+   caller to xstrdup that string if desired.  */
+
+static char *
+make_completion_match_str_1 (const char *match_name,
+			     const char *text, const char *word)
 {
-  throw_error (MAX_COMPLETIONS_REACHED_ERROR, _("Max completions reached."));
+  char *newobj;
+
+  if (word == text)
+    {
+      /* Return NULL as an indication that we want MATCH_NAME
+	 exactly.  */
+      return NULL;
+    }
+  else if (word > text)
+    {
+      /* Return some portion of MATCH_NAME.  */
+      newobj = xstrdup (match_name + (word - text));
+    }
+  else
+    {
+      /* Return some of WORD plus MATCH_NAME.  */
+      size_t len = strlen (match_name);
+      newobj = (char *) xmalloc (text - word + len + 1);
+      memcpy (newobj, word, text - word);
+      memcpy (newobj + (text - word), match_name, len + 1);
+    }
+
+  return newobj;
+}
+
+/* See completer.h.  */
+
+gdb::unique_xmalloc_ptr<char>
+make_completion_match_str (const char *match_name,
+			   const char *text, const char *word)
+{
+  char *newobj = make_completion_match_str_1 (match_name, text, word);
+  if (newobj == NULL)
+    newobj = xstrdup (match_name);
+  return gdb::unique_xmalloc_ptr<char> (newobj);
+}
+
+/* See completer.h.  */
+
+gdb::unique_xmalloc_ptr<char>
+make_completion_match_str (gdb::unique_xmalloc_ptr<char> &&match_name,
+			   const char *text, const char *word)
+{
+  char *newobj = make_completion_match_str_1 (match_name.get (), text, word);
+  if (newobj == NULL)
+    return std::move (match_name);
+  return gdb::unique_xmalloc_ptr<char> (newobj);
 }
 
-/* Generate completions all at once.  Returns a vector of unique strings
-   allocated with xmalloc.  Returns NULL if there are no completions
-   or if max_completions is 0.  If max_completions is non-negative, this will
-   return at most max_completions strings.
+/* Generate completions all at once.  Does nothing if max_completions
+   is 0.  If max_completions is non-negative, this will collect at
+   most max_completions strings.
 
    TEXT is the caller's idea of the "word" we are looking at.
 
@@ -1057,79 +1633,45 @@ throw_max_completions_reached_error (voi
    POINT is the offset in that line of the cursor.  You
    should pretend that the line ends at POINT.  */
 
-VEC (char_ptr) *
-complete_line (const char *text, const char *line_buffer, int point)
+void
+complete_line (completion_tracker &tracker,
+	       const char *text, const char *line_buffer, int point)
 {
-  VEC (char_ptr) *list;
-  VEC (char_ptr) *result = NULL;
-  struct cleanup *cleanups;
-  completion_tracker_t tracker;
-  char *candidate;
-  int ix, max_reached;
-
   if (max_completions == 0)
-    return NULL;
-  list = complete_line_internal (text, line_buffer, point,
-				 handle_completions);
-  if (max_completions < 0)
-    return list;
-
-  tracker = new_completion_tracker ();
-  cleanups = make_cleanup_free_completion_tracker (&tracker);
-  make_cleanup_free_char_ptr_vec (list);
-
-  /* Do a final test for too many completions.  Individual completers may
-     do some of this, but are not required to.  Duplicates are also removed
-     here.  Otherwise the user is left scratching his/her head: readline and
-     complete_command will remove duplicates, and if removal of duplicates
-     there brings the total under max_completions the user may think gdb quit
-     searching too early.  */
-
-  for (ix = 0, max_reached = 0;
-       !max_reached && VEC_iterate (char_ptr, list, ix, candidate);
-       ++ix)
-    {
-      enum maybe_add_completion_enum add_status;
-
-      add_status = maybe_add_completion (tracker, candidate);
-
-      switch (add_status)
-	{
-	  case MAYBE_ADD_COMPLETION_OK:
-	    VEC_safe_push (char_ptr, result, xstrdup (candidate));
-	    break;
-	  case MAYBE_ADD_COMPLETION_OK_MAX_REACHED:
-	    VEC_safe_push (char_ptr, result, xstrdup (candidate));
-	    max_reached = 1;
-	    break;
-      	  case MAYBE_ADD_COMPLETION_MAX_REACHED:
-	    gdb_assert_not_reached ("more than max completions reached");
-	  case MAYBE_ADD_COMPLETION_DUPLICATE:
-	    break;
-	}
-    }
-
-  do_cleanups (cleanups);
-
-  return result;
+    return;
+  complete_line_internal (tracker, text, line_buffer, point,
+			  handle_completions);
 }
 
 /* Complete on command names.  Used by "help".  */
-VEC (char_ptr) *
+
+void
 command_completer (struct cmd_list_element *ignore, 
+		   completion_tracker &tracker,
 		   const char *text, const char *word)
 {
-  return complete_line_internal (word, text, 
-				 strlen (text), handle_help);
+  complete_line_internal (tracker, word, text,
+			  strlen (text), handle_help);
+}
+
+/* The corresponding completer_handle_brkchars implementation.  */
+
+static void
+command_completer_handle_brkchars (struct cmd_list_element *ignore,
+				   completion_tracker &tracker,
+				   const char *text, const char *word)
+{
+  set_rl_completer_word_break_characters
+    (gdb_completer_command_word_break_characters);
 }
 
 /* Complete on signals.  */
 
-VEC (char_ptr) *
+void
 signal_completer (struct cmd_list_element *ignore,
+		  completion_tracker &tracker,
 		  const char *text, const char *word)
 {
-  VEC (char_ptr) *return_val = NULL;
   size_t len = strlen (word);
   int signum;
   const char *signame;
@@ -1147,10 +1689,11 @@ signal_completer (struct cmd_list_elemen
 	continue;
 
       if (strncasecmp (signame, word, len) == 0)
-	VEC_safe_push (char_ptr, return_val, xstrdup (signame));
+	{
+	  gdb::unique_xmalloc_ptr<char> copy (xstrdup (signame));
+	  tracker.add_completion (std::move (copy));
+	}
     }
-
-  return return_val;
 }
 
 /* Bit-flags for selecting what the register and/or register-group
@@ -1166,12 +1709,11 @@ DEF_ENUM_FLAGS_TYPE (enum reg_completer_
 /* Complete register names and/or reggroup names based on the value passed
    in TARGETS.  At least one bit in TARGETS must be set.  */
 
-static VEC (char_ptr) *
-reg_or_group_completer_1 (struct cmd_list_element *ignore,
+static void
+reg_or_group_completer_1 (completion_tracker &tracker,
 			  const char *text, const char *word,
 			  reg_completer_targets targets)
 {
-  VEC (char_ptr) *result = NULL;
   size_t len = strlen (word);
   struct gdbarch *gdbarch;
   const char *name;
@@ -1189,7 +1731,10 @@ reg_or_group_completer_1 (struct cmd_lis
 	   i++)
 	{
 	  if (*name != '\0' && strncmp (word, name, len) == 0)
-	    VEC_safe_push (char_ptr, result, xstrdup (name));
+	    {
+	      gdb::unique_xmalloc_ptr<char> copy (xstrdup (name));
+	      tracker.add_completion (std::move (copy));
+	    }
 	}
     }
 
@@ -1203,120 +1748,481 @@ reg_or_group_completer_1 (struct cmd_lis
 	{
 	  name = reggroup_name (group);
 	  if (strncmp (word, name, len) == 0)
-	    VEC_safe_push (char_ptr, result, xstrdup (name));
+	    {
+	      gdb::unique_xmalloc_ptr<char> copy (xstrdup (name));
+	      tracker.add_completion (std::move (copy));
+	    }
 	}
     }
-
-  return result;
 }
 
 /* Perform completion on register and reggroup names.  */
 
-VEC (char_ptr) *
+void
 reg_or_group_completer (struct cmd_list_element *ignore,
+			completion_tracker &tracker,
 			const char *text, const char *word)
 {
-  return reg_or_group_completer_1 (ignore, text, word,
-				   (complete_register_names
-				    | complete_reggroup_names));
+  reg_or_group_completer_1 (tracker, text, word,
+			    (complete_register_names
+			     | complete_reggroup_names));
 }
 
 /* Perform completion on reggroup names.  */
 
-VEC (char_ptr) *
+void
 reggroup_completer (struct cmd_list_element *ignore,
+		    completion_tracker &tracker,
 		    const char *text, const char *word)
 {
-  return reg_or_group_completer_1 (ignore, text, word,
-				   complete_reggroup_names);
+  reg_or_group_completer_1 (tracker, text, word,
+			    complete_reggroup_names);
+}
+
+/* The default completer_handle_brkchars implementation.  */
+
+static void
+default_completer_handle_brkchars (struct cmd_list_element *ignore,
+				   completion_tracker &tracker,
+				   const char *text, const char *word)
+{
+  set_rl_completer_word_break_characters
+    (current_language->la_word_break_characters ());
+}
+
+/* See definition in completer.h.  */
+
+completer_handle_brkchars_ftype *
+completer_handle_brkchars_func_for_completer (completer_ftype *fn)
+{
+  if (fn == filename_completer)
+    return filename_completer_handle_brkchars;
+
+  if (fn == location_completer)
+    return location_completer_handle_brkchars;
+
+  if (fn == command_completer)
+    return command_completer_handle_brkchars;
+
+  return default_completer_handle_brkchars;
 }
 
+/* Used as brkchars when we want to tell readline we have a custom
+   word point.  We do that by making our rl_completion_word_break_hook
+   set RL_POINT to the desired word point, and return the character at
+   the word break point as the break char.  This is two bytes in order
+   to fit one break character plus the terminating null.  */
+static char gdb_custom_word_point_brkchars[2];
+
+/* Since rl_basic_quote_characters is not completer-specific, we save
+   its original value here, in order to be able to restore it in
+   gdb_rl_attempted_completion_function.  */
+static const char *gdb_org_rl_basic_quote_characters = rl_basic_quote_characters;
+
 /* Get the list of chars that are considered as word breaks
    for the current command.  */
 
-char *
-gdb_completion_word_break_characters (void)
+static char *
+gdb_completion_word_break_characters_throw ()
 {
-  VEC (char_ptr) *list;
+  /* New completion starting.  Get rid of the previous tracker and
+     start afresh.  */
+  delete current_completion.tracker;
+  current_completion.tracker = new completion_tracker ();
+
+  completion_tracker &tracker = *current_completion.tracker;
+
+  complete_line_internal (tracker, NULL, rl_line_buffer,
+			  rl_point, handle_brkchars);
+
+  if (tracker.use_custom_word_point ())
+    {
+      gdb_assert (tracker.custom_word_point () > 0);
+      rl_point = tracker.custom_word_point () - 1;
+      gdb_custom_word_point_brkchars[0] = rl_line_buffer[rl_point];
+      rl_completer_word_break_characters = gdb_custom_word_point_brkchars;
+      rl_completer_quote_characters = NULL;
+
+      /* Clear this too, so that if we're completing a quoted string,
+	 readline doesn't consider the quote character a delimiter.
+	 If we didn't do this, readline would auto-complete {b
+	 'fun<tab>} to {'b 'function()'}, i.e., add the terminating
+	 \', but, it wouldn't append the separator space either, which
+	 is not desirable.  So instead we take care of appending the
+	 quote character to the LCD ourselves, in
+	 gdb_rl_attempted_completion_function.  Since this global is
+	 not just completer-specific, we'll restore it back to the
+	 default in gdb_rl_attempted_completion_function.  */
+      rl_basic_quote_characters = NULL;
+    }
 
-  list = complete_line_internal (rl_line_buffer, rl_line_buffer, rl_point,
-				 handle_brkchars);
-  gdb_assert (list == NULL);
   return rl_completer_word_break_characters;
 }
 
-/* Generate completions one by one for the completer.  Each time we
-   are called return another potential completion to the caller.
-   line_completion just completes on commands or passes the buck to
-   the command's completer function, the stuff specific to symbol
-   completion is in make_symbol_completion_list.
-
-   TEXT is the caller's idea of the "word" we are looking at.
+char *
+gdb_completion_word_break_characters ()
+{
+  /* New completion starting.  */
+  current_completion.aborted = false;
 
-   MATCHES is the number of matches that have currently been collected
-   from calling this completion function.  When zero, then we need to
-   initialize, otherwise the initialization has already taken place
-   and we can just return the next potential completion string.
+  TRY
+    {
+      return gdb_completion_word_break_characters_throw ();
+    }
+  CATCH (ex, RETURN_MASK_ALL)
+    {
+      /* Set this to that gdb_rl_attempted_completion_function knows
+	 to abort early.  */
+      current_completion.aborted = true;
+    }
+  END_CATCH
 
-   LINE_BUFFER is available to be looked at; it contains the entire
-   text of the line.  POINT is the offset in that line of the cursor.
-   You should pretend that the line ends at POINT.
+  return NULL;
+}
 
-   Returns NULL if there are no more completions, else a pointer to a
-   string which is a possible completion, it is the caller's
-   responsibility to free the string.  */
+/* See completer.h.  */
 
-static char *
-line_completion_function (const char *text, int matches, 
-			  char *line_buffer, int point)
+const char *
+completion_find_completion_word (completion_tracker &tracker, const char *text,
+				 int *quote_char)
 {
-  static VEC (char_ptr) *list = NULL;	/* Cache of completions.  */
-  static int index;			/* Next cached completion.  */
-  char *output = NULL;
+  size_t point = strlen (text);
+
+  complete_line_internal (tracker, NULL, text, point, handle_brkchars);
+
+  if (tracker.use_custom_word_point ())
+    {
+      gdb_assert (tracker.custom_word_point () > 0);
+      *quote_char = tracker.quote_char ();
+      return text + tracker.custom_word_point ();
+    }
+
+  gdb_rl_completion_word_info info;
+
+  info.word_break_characters = rl_completer_word_break_characters;
+  info.quote_characters = gdb_completer_quote_characters;
+  info.basic_quote_characters = rl_basic_quote_characters;
 
-  if (matches == 0)
+  return gdb_rl_find_completion_word (&info, quote_char, NULL, text);
+}
+
+/* See completer.h.  */
+
+void
+completion_tracker::recompute_lowest_common_denominator
+  (gdb::unique_xmalloc_ptr<char> &&new_match_up)
+{
+  if (m_lowest_common_denominator == NULL)
+    {
+      /* We don't have a lowest common denominator yet, so simply take
+	 the whole NEW_MATCH_UP as being it.  */
+      m_lowest_common_denominator = new_match_up.release ();
+      m_lowest_common_denominator_unique = true;
+    }
+  else
     {
-      /* The caller is beginning to accumulate a new set of
-         completions, so we need to find all of them now, and cache
-         them for returning one at a time on future calls.  */
+      /* Find the common denominator between the currently-known
+	 lowest common denominator and NEW_MATCH_UP.  That becomes the
+	 new lowest common denominator.  */
+      size_t i;
+      const char *new_match = new_match_up.get ();
 
-      if (list)
+      for (i = 0;
+	   (new_match[i] != '\0'
+	    && new_match[i] == m_lowest_common_denominator[i]);
+	   i++)
+	;
+      if (m_lowest_common_denominator[i] != new_match[i])
 	{
-	  /* Free the storage used by LIST, but not by the strings
-	     inside.  This is because rl_complete_internal () frees
-	     the strings.  As complete_line may abort by calling
-	     `error' clear LIST now.  */
-	  VEC_free (char_ptr, list);
+	  m_lowest_common_denominator[i] = '\0';
+	  m_lowest_common_denominator_unique = false;
 	}
-      index = 0;
-      list = complete_line (text, line_buffer, point);
     }
+}
+
+/* See completer.h.  */
+
+void
+completion_tracker::advance_custom_word_point_by (size_t len)
+{
+  m_custom_word_point += len;
+}
+
+/* Build a new C string that is a copy of LCD with the whitespace of
+   ORIG/ORIG_LEN preserved.
+
+   Say the user is completing a symbol name, with spaces, like:
+
+     "foo ( i"
+
+   and the resulting completion match is:
+
+     "foo(int)"
 
-  /* If we found a list of potential completions during initialization
-     then dole them out one at a time.  After returning the last one,
-     return NULL (and continue to do so) each time we are called after
-     that, until a new list is available.  */
+   we want to end up with an input line like:
 
-  if (list)
+     "foo ( int)"
+      ^^^^^^^      => text from LCD [1], whitespace from ORIG preserved.
+	     ^^	   => new text from LCD
+
+   [1] - We must take characters from the LCD instead of the original
+   text, since some completions want to change upper/lowercase.  E.g.:
+
+     "handle sig<>"
+
+   completes to:
+
+     "handle SIG[QUIT|etc.]"
+*/
+
+static char *
+expand_preserving_ws (const char *orig, size_t orig_len,
+		      const char *lcd)
+{
+  const char *p_orig = orig;
+  const char *orig_end = orig + orig_len;
+  const char *p_lcd = lcd;
+  std::string res;
+
+  while (p_orig < orig_end)
     {
-      if (index < VEC_length (char_ptr, list))
+      if (*p_orig == ' ')
 	{
-	  output = VEC_index (char_ptr, list, index);
-	  index++;
+	  while (p_orig < orig_end && *p_orig == ' ')
+	    res += *p_orig++;
+	  p_lcd = skip_spaces (p_lcd);
+	}
+      else
+	{
+	  /* Take characters from the LCD instead of the original
+	     text, since some completions change upper/lowercase.
+	     E.g.:
+	       "handle sig<>"
+	     completes to:
+	       "handle SIG[QUIT|etc.]"
+	  */
+	  res += *p_lcd;
+	  p_orig++;
+	  p_lcd++;
 	}
     }
 
-#if 0
-  /* Can't do this because readline hasn't yet checked the word breaks
-     for figuring out whether to insert a quote.  */
-  if (output == NULL)
-    /* Make sure the word break characters are set back to normal for
-       the next time that readline tries to complete something.  */
-    rl_completer_word_break_characters =
-      current_language->la_word_break_characters();
-#endif
+  while (*p_lcd != '\0')
+    res += *p_lcd++;
+
+  return xstrdup (res.c_str ());
+}
+
+/* See completer.h.  */
+
+completion_result
+completion_tracker::build_completion_result (const char *text,
+					     int start, int end)
+{
+  completion_list &list = m_entries_vec;	/* The completions.  */
+
+  if (list.empty ())
+    return {};
+
+  /* +1 for the LCD, and +1 for NULL termination.  */
+  char **match_list = XNEWVEC (char *, 1 + list.size () + 1);
+
+  /* Build replacement word, based on the LCD.  */
+
+  match_list[0]
+    = expand_preserving_ws (text, end - start,
+			    m_lowest_common_denominator);
+
+  if (m_lowest_common_denominator_unique)
+    {
+      /* We don't rely on readline appending the quote char as
+	 delimiter as then readline wouldn't append the ' ' after the
+	 completion.  */
+      char buf[2] = { quote_char () };
+
+      match_list[0] = reconcat (match_list[0], match_list[0],
+				buf, (char *) NULL);
+      match_list[1] = NULL;
+
+      /* If the tracker wants to, or we already have a space at the
+	 end of the match, tell readline to skip appending
+	 another.  */
+      bool completion_suppress_append
+	= (suppress_append_ws ()
+	   || match_list[0][strlen (match_list[0]) - 1] == ' ');
+
+      return completion_result (match_list, 1, completion_suppress_append);
+    }
+  else
+    {
+      int ix;
+
+      for (ix = 0; ix < list.size (); ++ix)
+	match_list[ix + 1] = list[ix].release ();
+      match_list[ix + 1] = NULL;
 
-  return (output);
+      return completion_result (match_list, list.size (), false);
+    }
+}
+
+/* See completer.h  */
+
+completion_result::completion_result ()
+  : match_list (NULL), number_matches (0),
+    completion_suppress_append (false)
+{}
+
+/* See completer.h  */
+
+completion_result::completion_result (char **match_list_,
+				      size_t number_matches_,
+				      bool completion_suppress_append_)
+  : match_list (match_list_),
+    number_matches (number_matches_),
+    completion_suppress_append (completion_suppress_append_)
+{}
+
+/* See completer.h  */
+
+completion_result::~completion_result ()
+{
+  reset_match_list ();
+}
+
+/* See completer.h  */
+
+completion_result::completion_result (completion_result &&rhs)
+{
+  if (this == &rhs)
+    return;
+
+  reset_match_list ();
+  match_list = rhs.match_list;
+  rhs.match_list = NULL;
+  number_matches = rhs.number_matches;
+  rhs.number_matches = 0;
+}
+
+/* See completer.h  */
+
+char **
+completion_result::release_match_list ()
+{
+  char **ret = match_list;
+  match_list = NULL;
+  return ret;
+}
+
+/* See completer.h  */
+
+void
+completion_result::sort_match_list ()
+{
+  if (number_matches > 1)
+    {
+      /* Element 0 is special (it's the common prefix), leave it
+	 be.  */
+      std::sort (&match_list[1],
+		 &match_list[number_matches + 1],
+		 compare_cstrings);
+    }
+}
+
+/* See completer.h  */
+
+void
+completion_result::reset_match_list ()
+{
+  if (match_list != NULL)
+    {
+      for (char **p = match_list; *p != NULL; p++)
+	xfree (*p);
+      xfree (match_list);
+      match_list = NULL;
+    }
+}
+
+/* Helper for gdb_rl_attempted_completion_function, which does most of
+   the work.  This is called by readline to build the match list array
+   and to determine the lowest common denominator.  The real matches
+   list starts at match[1], while match[0] is the slot holding
+   readline's idea of the lowest common denominator of all matches,
+   which is what readline replaces the completion "word" with.
+
+   TEXT is the caller's idea of the "word" we are looking at, as
+   computed in the handle_brkchars phase.
+
+   START is the offset from RL_LINE_BUFFER where TEXT starts.  END is
+   the offset from RL_LINE_BUFFER where TEXT ends (i.e., where
+   rl_point is).
+
+   You should thus pretend that the line ends at END (relative to
+   RL_LINE_BUFFER).
+
+   RL_LINE_BUFFER contains the entire text of the line.  RL_POINT is
+   the offset in that line of the cursor.  You should pretend that the
+   line ends at POINT.
+
+   Returns NULL if there are no completions.  */
+
+static char **
+gdb_rl_attempted_completion_function_throw (const char *text, int start, int end)
+{
+  /* Completers that provide a custom word point in the
+     handle_brkchars phase also compute their completions then.
+     Completers that leave the completion word handling to readline
+     must be called twice.  If rl_point (i.e., END) is at column 0,
+     then readline skips the handle_brkchars phase, and so we create a
+     tracker now in that case too.  */
+  if (end == 0 || !current_completion.tracker->use_custom_word_point ())
+    {
+      delete current_completion.tracker;
+      current_completion.tracker = new completion_tracker ();
+
+      complete_line (*current_completion.tracker, text,
+		     rl_line_buffer, rl_point);
+    }
+
+  completion_tracker &tracker = *current_completion.tracker;
+
+  completion_result result
+    = tracker.build_completion_result (text, start, end);
+
+  rl_completion_suppress_append = result.completion_suppress_append;
+  return result.release_match_list ();
+}
+
+/* Function installed as "rl_attempted_completion_function" readline
+   hook.  Wrapper around gdb_rl_attempted_completion_function_throw
+   that catches C++ exceptions, which can't cross readline.  */
+
+char **
+gdb_rl_attempted_completion_function (const char *text, int start, int end)
+{
+  /* Restore globals that might have been tweaked in
+     gdb_completion_word_break_characters.  */
+  rl_basic_quote_characters = gdb_org_rl_basic_quote_characters;
+
+  /* If we end up returning NULL, either on error, or simple because
+     there are no matches, inhibit readline's default filename
+     completer.  */
+  rl_attempted_completion_over = 1;
+
+  /* If the handle_brkchars phase was aborted, don't try
+     completing.  */
+  if (current_completion.aborted)
+    return NULL;
+
+  TRY
+    {
+      return gdb_rl_attempted_completion_function_throw (text, start, end);
+    }
+  CATCH (ex, RETURN_MASK_ALL)
+    {
+    }
+  END_CATCH
+
+  return NULL;
 }
 
 /* Skip over the possibly quoted word STR (as defined by the quote
@@ -1956,8 +2862,6 @@ gdb_display_match_list (char **matches, 
 	}
     }
 }
-
-extern initialize_file_ftype _initialize_completer; /* -Wmissing-prototypes */
 
 void
 _initialize_completer (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/completer.h ./gdb/completer.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/completer.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/completer.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Header for GDB line completion.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 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
@@ -63,41 +63,510 @@ struct match_list_displayer
   mld_read_key_ftype *read_key;
 };
 
-extern void gdb_display_match_list (char **matches, int len, int max,
-				    const struct match_list_displayer *);
+/* A list of completion candidates.  Each element is a malloc string,
+   because ownership of the strings is transferred to readline, which
+   calls free on each element.  */
+typedef std::vector<gdb::unique_xmalloc_ptr<char>> completion_list;
+
+/* The result of a successful completion match.  When doing symbol
+   comparison, we use the symbol search name for the symbol name match
+   check, but the matched name that is shown to the user may be
+   different.  For example, Ada uses encoded names for lookup, but
+   then wants to decode the symbol name to show to the user, and also
+   in some cases wrap the matched name in "<sym>" (meaning we can't
+   always use the symbol's print name).  */
 
-extern const char *get_max_completions_reached_message (void);
+class completion_match
+{
+public:
+  /* Get the completion match result.  See m_match/m_storage's
+     descriptions.  */
+  const char *match ()
+  { return m_match; }
+
+  /* Set the completion match result.  See m_match/m_storage's
+     descriptions.  */
+  void set_match (const char *match)
+  { m_match = match; }
+
+  /* Get temporary storage for generating a match result, dynamically.
+     The built string is only good until the next clear() call.  I.e.,
+     good until the next symbol comparison.  */
+  std::string &storage ()
+  { return m_storage; }
+
+  /* Prepare for another completion matching sequence.  */
+  void clear ()
+  {
+    m_match = NULL;
+    m_storage.clear ();
+  }
+
+private:
+  /* The completion match result.  This can either be a pointer into
+     M_STORAGE string, or it can be a pointer into the some other
+     string that outlives the completion matching sequence (usually, a
+     pointer to a symbol's name).  */
+  const char *m_match;
+
+  /* Storage a symbol comparison routine can use for generating a
+     match result, dynamically.  The built string is only good until
+     the next clear() call.  I.e., good until the next symbol
+     comparison.  */
+  std::string m_storage;
+};
+
+/* The result of a successful completion match, but for least common
+   denominator (LCD) computation.  Some completers provide matches
+   that don't start with the completion "word".  E.g., completing on
+   "b push_ba" on a C++ program usually completes to
+   std::vector<...>::push_back, std::string::push_back etc.  In such
+   case, the symbol comparison routine will set the LCD match to point
+   into the "push_back" substring within the symbol's name string.
+   Also, in some cases, the symbol comparison routine will want to
+   ignore parts of the symbol name for LCD purposes, such as for
+   example symbols with abi tags in C++.  In such cases, the symbol
+   comparison routine will set MARK_IGNORED_RANGE to mark the ignored
+   substrings of the matched string.  The resulting LCD string with
+   the ignored parts stripped out is computed at the end of a
+   completion match sequence iff we had a positive match.  */
+
+class completion_match_for_lcd
+{
+public:
+  /* Get the resulting LCD, after a successful match.  */
+  const char *match ()
+  { return m_match; }
+
+  /* Set the match for LCD.  See m_match's description.  */
+  void set_match (const char *match)
+  { m_match = match; }
+
+  /* Mark the range between [BEGIN, END) as ignored.  */
+  void mark_ignored_range (const char *begin, const char *end)
+  { m_ignored_ranges.emplace_back (begin, end); }
+
+  /* Get the resulting LCD, after a successful match.  If there are
+     ignored ranges, then this builds a new string with the ignored
+     parts removed (and stores it internally).  As such, the result of
+     this call is only good for the current completion match
+     sequence.  */
+  const char *finish ()
+  {
+    if (m_ignored_ranges.empty ())
+      return m_match;
+    else
+      {
+	m_finished_storage.clear ();
+
+	const char *prev = m_match;
+	for (const auto &range : m_ignored_ranges)
+	  {
+	    m_finished_storage.append (prev, range.first);
+	    prev = range.second;
+	  }
+	m_finished_storage.append (prev);
+
+	return m_finished_storage.c_str ();
+      }
+  }
+
+  /* Prepare for another completion matching sequence.  */
+  void clear ()
+  {
+    m_match = NULL;
+    m_ignored_ranges.clear ();
+  }
+
+private:
+  /* The completion match result for LCD.  This is usually either a
+     pointer into to a substring within a symbol's name, or to the
+     storage of the pairing completion_match object.  */
+  const char *m_match;
+
+  /* The ignored substring ranges within M_MATCH.  E.g., if we were
+     looking for completion matches for C++ functions starting with
+       "functio"
+     and successfully match:
+       "function[abi:cxx11](int)"
+     the ignored ranges vector will contain an entry that delimits the
+     "[abi:cxx11]" substring, such that calling finish() results in:
+       "function(int)"
+   */
+  std::vector<std::pair<const char *, const char *>> m_ignored_ranges;
+
+  /* Storage used by the finish() method, if it has to compute a new
+     string.  */
+  std::string m_finished_storage;
+};
+
+/* Convenience aggregate holding info returned by the symbol name
+   matching routines (see symbol_name_matcher_ftype).  */
+struct completion_match_result
+{
+  /* The completion match candidate.  */
+  completion_match match;
 
-extern VEC (char_ptr) *complete_line (const char *text,
-				      const char *line_buffer,
-				      int point);
+  /* The completion match, for LCD computation purposes.  */
+  completion_match_for_lcd match_for_lcd;
 
-extern char *readline_line_completion_function (const char *text,
-						int matches);
+  /* Convenience that sets both MATCH and MATCH_FOR_LCD.  M_FOR_LCD is
+     optional.  If not specified, defaults to M.  */
+  void set_match (const char *m, const char *m_for_lcd = NULL)
+  {
+    match.set_match (m);
+    if (m_for_lcd == NULL)
+      match_for_lcd.set_match (m);
+    else
+      match_for_lcd.set_match (m_for_lcd);
+  }
+};
 
-extern VEC (char_ptr) *noop_completer (struct cmd_list_element *,
-				       const char *, const char *);
+/* The final result of a completion that is handed over to either
+   readline or the "completion" command (which pretends to be
+   readline).  Mainly a wrapper for a readline-style match list array,
+   though other bits of info are included too.  */
 
-extern VEC (char_ptr) *filename_completer (struct cmd_list_element *,
-					   const char *, const char *);
+struct completion_result
+{
+  /* Create an empty result.  */
+  completion_result ();
+
+  /* Create a result.  */
+  completion_result (char **match_list, size_t number_matches,
+		     bool completion_suppress_append);
+
+  /* Destroy a result.  */
+  ~completion_result ();
+
+  DISABLE_COPY_AND_ASSIGN (completion_result);
+
+  /* Move a result.  */
+  completion_result (completion_result &&rhs);
+
+  /* Release ownership of the match list array.  */
+  char **release_match_list ();
+
+  /* Sort the match list.  */
+  void sort_match_list ();
+
+private:
+  /* Destroy the match list array and its contents.  */
+  void reset_match_list ();
+
+public:
+  /* (There's no point in making these fields private, since the whole
+     point of this wrapper is to build data in the layout expected by
+     readline.  Making them private would require adding getters for
+     the "complete" command, which would expose the same
+     implementation details anyway.)  */
+
+  /* The match list array, in the format that readline expects.
+     match_list[0] contains the common prefix.  The real match list
+     starts at index 1.  The list is NULL terminated.  If there's only
+     one match, then match_list[1] is NULL.  If there are no matches,
+     then this is NULL.  */
+  char **match_list;
+  /* The number of matched completions in MATCH_LIST.  Does not
+     include the NULL terminator or the common prefix.  */
+  size_t number_matches;
+
+  /* Whether readline should suppress appending a whitespace, when
+     there's only one possible completion.  */
+  bool completion_suppress_append;
+};
 
-extern VEC (char_ptr) *expression_completer (struct cmd_list_element *,
-					     const char *, const char *);
+/* Object used by completers to build a completion match list to hand
+   over to readline.  It tracks:
 
-extern VEC (char_ptr) *location_completer (struct cmd_list_element *,
-					   const char *, const char *);
+   - How many unique completions have been generated, to terminate
+     completion list generation early if the list has grown to a size
+     so large as to be useless.  This helps avoid GDB seeming to lock
+     up in the event the user requests to complete on something vague
+     that necessitates the time consuming expansion of many symbol
+     tables.
+
+   - The completer's idea of least common denominator (aka the common
+     prefix) between all completion matches to hand over to readline.
+     Some completers provide matches that don't start with the
+     completion "word".  E.g., completing on "b push_ba" on a C++
+     program usually completes to std::vector<...>::push_back,
+     std::string::push_back etc.  If all matches happen to start with
+     "std::", then readline would figure out that the lowest common
+     denominator is "std::", and thus would do a partial completion
+     with that.  I.e., it would replace "push_ba" in the input buffer
+     with "std::", losing the original "push_ba", which is obviously
+     undesirable.  To avoid that, such completers pass the substring
+     of the match that matters for common denominator computation as
+     MATCH_FOR_LCD argument to add_completion.  The end result is
+     passed to readline in gdb_rl_attempted_completion_function.
+
+   - The custom word point to hand over to readline, for completers
+     that parse the input string in order to dynamically adjust
+     themselves depending on exactly what they're completing.  E.g.,
+     the linespec completer needs to bypass readline's too-simple word
+     breaking algorithm.
+*/
+class completion_tracker
+{
+public:
+  completion_tracker ();
+  ~completion_tracker ();
+
+  DISABLE_COPY_AND_ASSIGN (completion_tracker);
+
+  /* Add the completion NAME to the list of generated completions if
+     it is not there already.  If too many completions were already
+     found, this throws an error.  */
+  void add_completion (gdb::unique_xmalloc_ptr<char> name,
+		       completion_match_for_lcd *match_for_lcd = NULL,
+		       const char *text = NULL, const char *word = NULL);
+
+  /* Add all completions matches in LIST.  Elements are moved out of
+     LIST.  */
+  void add_completions (completion_list &&list);
+
+  /* Set the quote char to be appended after a unique completion is
+     added to the input line.  Set to '\0' to clear.  See
+     m_quote_char's description.  */
+  void set_quote_char (int quote_char)
+  { m_quote_char = quote_char; }
+
+  /* The quote char to be appended after a unique completion is added
+     to the input line.  Returns '\0' if no quote char has been set.
+     See m_quote_char's description.  */
+  int quote_char () { return m_quote_char; }
+
+  /* Tell the tracker that the current completer wants to provide a
+     custom word point instead of a list of a break chars, in the
+     handle_brkchars phase.  Such completers must also compute their
+     completions then.  */
+  void set_use_custom_word_point (bool enable)
+  { m_use_custom_word_point = enable; }
+
+  /* Whether the current completer computes a custom word point.  */
+  bool use_custom_word_point () const
+  { return m_use_custom_word_point; }
+
+  /* The custom word point.  */
+  int custom_word_point () const
+  { return m_custom_word_point; }
+
+  /* Set the custom word point to POINT.  */
+  void set_custom_word_point (int point)
+  { m_custom_word_point = point; }
+
+  /* Advance the custom word point by LEN.  */
+  void advance_custom_word_point_by (size_t len);
+
+  /* Whether to tell readline to skip appending a whitespace after the
+     completion.  See m_suppress_append_ws.  */
+  bool suppress_append_ws () const
+  { return m_suppress_append_ws; }
+
+  /* Set whether to tell readline to skip appending a whitespace after
+     the completion.  See m_suppress_append_ws.  */
+  void set_suppress_append_ws (bool suppress)
+  { m_suppress_append_ws = suppress; }
+
+  /* Return true if we only have one completion, and it matches
+     exactly the completion word.  I.e., completing results in what we
+     already have.  */
+  bool completes_to_completion_word (const char *word);
+
+  /* Get a reference to the shared (between all the multiple symbol
+     name comparison calls) completion_match_result object, ready for
+     another symbol name match sequence.  */
+  completion_match_result &reset_completion_match_result ()
+  {
+    completion_match_result &res = m_completion_match_result;
+
+    /* Clear any previous match.  */
+    res.match.clear ();
+    res.match_for_lcd.clear ();
+    return m_completion_match_result;
+  }
+
+  /* True if we have any completion match recorded.  */
+  bool have_completions () const
+  { return !m_entries_vec.empty (); }
+
+  /* Discard the current completion match list and the current
+     LCD.  */
+  void discard_completions ();
+
+  /* Build a completion_result containing the list of completion
+     matches to hand over to readline.  The parameters are as in
+     rl_attempted_completion_function.  */
+  completion_result build_completion_result (const char *text,
+					     int start, int end);
+
+private:
+
+  /* Add the completion NAME to the list of generated completions if
+     it is not there already.  If false is returned, too many
+     completions were found.  */
+  bool maybe_add_completion (gdb::unique_xmalloc_ptr<char> name,
+			     completion_match_for_lcd *match_for_lcd,
+			     const char *text, const char *word);
+
+  /* Given a new match, recompute the lowest common denominator (LCD)
+     to hand over to readline.  Normally readline computes this itself
+     based on the whole set of completion matches.  However, some
+     completers want to override readline, in order to be able to
+     provide a LCD that is not really a prefix of the matches, but the
+     lowest common denominator of some relevant substring of each
+     match.  E.g., "b push_ba" completes to
+     "std::vector<..>::push_back", "std::string::push_back", etc., and
+     in this case we want the lowest common denominator to be
+     "push_back" instead of "std::".  */
+  void recompute_lowest_common_denominator
+    (gdb::unique_xmalloc_ptr<char> &&new_match);
+
+  /* Completion match outputs returned by the symbol name matching
+     routines (see symbol_name_matcher_ftype).  These results are only
+     valid for a single match call.  This is here in order to be able
+     to conveniently share the same storage among all the calls to the
+     symbol name matching routines.  */
+  completion_match_result m_completion_match_result;
+
+  /* The completion matches found so far, in a vector.  */
+  completion_list m_entries_vec;
+
+  /* The completion matches found so far, in a hash table, for
+     duplicate elimination as entries are added.  Otherwise the user
+     is left scratching his/her head: readline and complete_command
+     will remove duplicates, and if removal of duplicates there brings
+     the total under max_completions the user may think gdb quit
+     searching too early.  */
+  htab_t m_entries_hash;
+
+  /* If non-zero, then this is the quote char that needs to be
+     appended after completion (iff we have a unique completion).  We
+     don't rely on readline appending the quote char as delimiter as
+     then readline wouldn't append the ' ' after the completion.
+     I.e., we want this:
+
+      before tab: "b 'function("
+      after tab:  "b 'function()' "
+  */
+  int m_quote_char = '\0';
+
+  /* If true, the completer has its own idea of "word" point, and
+     doesn't want to rely on readline computing it based on brkchars.
+     Set in the handle_brkchars phase.  */
+  bool m_use_custom_word_point = false;
+
+  /* The completer's idea of where the "word" we were looking at is
+     relative to RL_LINE_BUFFER.  This is advanced in the
+     handle_brkchars phase as the completer discovers potential
+     completable words.  */
+  int m_custom_word_point = 0;
+
+  /* If true, tell readline to skip appending a whitespace after the
+     completion.  Automatically set if we have a unique completion
+     that already has a space at the end.  A completer may also
+     explicitly set this.  E.g., the linespec completer sets this when
+     the completion ends with the ":" separator between filename and
+     function name.  */
+  bool m_suppress_append_ws = false;
+
+  /* Our idea of lowest common denominator to hand over to readline.
+     See intro.  */
+  char *m_lowest_common_denominator = NULL;
+
+  /* If true, the LCD is unique.  I.e., all completions had the same
+     MATCH_FOR_LCD substring, even if the completions were different.
+     For example, if "break function<tab>" found "a::function()" and
+     "b::function()", the LCD will be "function()" in both cases and
+     so we want to tell readline to complete the line with
+     "function()", instead of showing all the possible
+     completions.  */
+  bool m_lowest_common_denominator_unique = false;
+};
 
-extern VEC (char_ptr) *command_completer (struct cmd_list_element *,
-					  const char *, const char *);
+/* Return a string to hand off to readline as a completion match
+   candidate, potentially composed of parts of MATCH_NAME and of
+   TEXT/WORD.  For a description of TEXT/WORD see completer_ftype.  */
+
+extern gdb::unique_xmalloc_ptr<char>
+  make_completion_match_str (const char *match_name,
+			     const char *text, const char *word);
+
+/* Like above, but takes ownership of MATCH_NAME (i.e., can
+   reuse/return it).  */
+
+extern gdb::unique_xmalloc_ptr<char>
+  make_completion_match_str (gdb::unique_xmalloc_ptr<char> &&match_name,
+			     const char *text, const char *word);
 
-extern VEC (char_ptr) *signal_completer (struct cmd_list_element *,
-					 const char *, const char *);
+extern void gdb_display_match_list (char **matches, int len, int max,
+				    const struct match_list_displayer *);
 
-extern VEC (char_ptr) *reg_or_group_completer (struct cmd_list_element *,
-					       const char *, const char *);
+extern const char *get_max_completions_reached_message (void);
 
-extern VEC (char_ptr) *reggroup_completer (struct cmd_list_element *,
-					   const char *, const char *);
+extern void complete_line (completion_tracker &tracker,
+			   const char *text,
+			   const char *line_buffer,
+			   int point);
+
+/* Find the bounds of the word in TEXT for completion purposes, and
+   return a pointer to the end of the word.  Calls the completion
+   machinery for a handle_brkchars phase (using TRACKER) to figure out
+   the right work break characters for the command in TEXT.
+   QUOTE_CHAR, if non-null, is set to the opening quote character if
+   we found an unclosed quoted substring, '\0' otherwise.  */
+extern const char *completion_find_completion_word (completion_tracker &tracker,
+						    const char *text,
+						    int *quote_char);
+
+
+/* Assuming TEXT is an expression in the current language, find the
+   completion word point for TEXT, emulating the algorithm readline
+   uses to find the word point, using the current language's word
+   break characters.  */
+
+const char *advance_to_expression_complete_word_point
+  (completion_tracker &tracker, const char *text);
+
+extern char **gdb_rl_attempted_completion_function (const char *text,
+						    int start, int end);
+
+extern void noop_completer (struct cmd_list_element *,
+			    completion_tracker &tracker,
+			    const char *, const char *);
+
+extern void filename_completer (struct cmd_list_element *,
+				completion_tracker &tracker,
+				const char *, const char *);
+
+extern void expression_completer (struct cmd_list_element *,
+				  completion_tracker &tracker,
+				  const char *, const char *);
+
+extern void location_completer (struct cmd_list_element *,
+				completion_tracker &tracker,
+				const char *, const char *);
+
+extern void symbol_completer (struct cmd_list_element *,
+			      completion_tracker &tracker,
+			      const char *, const char *);
+
+extern void command_completer (struct cmd_list_element *,
+			       completion_tracker &tracker,
+			       const char *, const char *);
+
+extern void signal_completer (struct cmd_list_element *,
+			      completion_tracker &tracker,
+			      const char *, const char *);
+
+extern void reg_or_group_completer (struct cmd_list_element *,
+				    completion_tracker &tracker,
+				    const char *, const char *);
+
+extern void reggroup_completer (struct cmd_list_element *,
+				completion_tracker &tracker,
+				const char *, const char *);
 
 extern const char *get_gdb_completer_quote_characters (void);
 
@@ -109,15 +578,27 @@ extern char *gdb_completion_word_break_c
    not "const char *".  */
 extern void set_rl_completer_word_break_characters (const char *break_chars);
 
-/* Set the word break characters array to the corresponding set of
-   chars, based on FN.  This function is useful for cases when the
-   completer doesn't know the type of the completion until some
+/* Get the matching completer_handle_brkchars_ftype function for FN.
+   FN is one of the core completer functions above (filename,
+   location, symbol, etc.).  This function is useful for cases when
+   the completer doesn't know the type of the completion until some
    calculation is done (e.g., for Python functions).  */
 
-extern void set_gdb_completion_word_break_characters (completer_ftype *fn);
+extern completer_handle_brkchars_ftype *
+  completer_handle_brkchars_func_for_completer (completer_ftype *fn);
 
 /* Exported to linespec.c */
 
+/* Return a list of all source files whose names begin with matching
+   TEXT.  */
+extern completion_list complete_source_filenames (const char *text);
+
+/* Complete on expressions.  Often this means completing on symbol
+   names, but some language parsers also have support for completing
+   field names.  */
+extern void complete_expression (completion_tracker &tracker,
+				 const char *text, const char *word);
+
 extern const char *skip_quoted_chars (const char *, const char *,
 				      const char *);
 
@@ -129,62 +610,4 @@ extern const char *skip_quoted (const ch
 
 extern int max_completions;
 
-/* Object to track how many unique completions have been generated.
-   Used to limit the size of generated completion lists.  */
-
-typedef htab_t completion_tracker_t;
-
-/* Create a new completion tracker.
-   The result is a hash table to track added completions, or NULL
-   if max_completions <= 0.  If max_completions < 0, tracking is disabled.
-   If max_completions == 0, the max is indeed zero.  */
-
-extern completion_tracker_t new_completion_tracker (void);
-
-/* Make a cleanup to free a completion tracker, and reset its pointer
-   to NULL.  */
-
-extern struct cleanup *make_cleanup_free_completion_tracker
-		      (completion_tracker_t *tracker_ptr);
-
-/* Return values for maybe_add_completion.  */
-
-enum maybe_add_completion_enum
-{
-  /* NAME has been recorded and max_completions has not been reached,
-     or completion tracking is disabled (max_completions < 0).  */
-  MAYBE_ADD_COMPLETION_OK,
-
-  /* NAME has been recorded and max_completions has been reached
-     (thus the caller can stop searching).  */
-  MAYBE_ADD_COMPLETION_OK_MAX_REACHED,
-
-  /* max-completions entries has been reached.
-     Whether NAME is a duplicate or not is not determined.  */
-  MAYBE_ADD_COMPLETION_MAX_REACHED,
-
-  /* NAME has already been recorded.
-     Note that this is never returned if completion tracking is disabled
-     (max_completions < 0).  */
-  MAYBE_ADD_COMPLETION_DUPLICATE
-};
-
-/* Add the completion NAME to the list of generated completions if
-   it is not there already.
-   If max_completions is negative, nothing is done, not even watching
-   for duplicates, and MAYBE_ADD_COMPLETION_OK is always returned.
-
-   If MAYBE_ADD_COMPLETION_MAX_REACHED is returned, callers are required to
-   record at least one more completion.  The final list will be pruned to
-   max_completions, but recording at least one more than max_completions is
-   the signal to the completion machinery that too many completions were
-   found.  */
-
-extern enum maybe_add_completion_enum
-  maybe_add_completion (completion_tracker_t tracker, char *name);
-
-/* Wrapper to throw MAX_COMPLETIONS_REACHED_ERROR.  */ 
-
-extern void throw_max_completions_reached_error (void);
-
 #endif /* defined (COMPLETER_H) */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/aarch64/linux.mh ./gdb/config/aarch64/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/aarch64/linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/aarch64/linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,29 +0,0 @@
-#  Host: AArch64 based machine running GNU/Linux
-#
-#  Copyright (C) 2013-2017 Free Software Foundation, Inc.
-#  Contributed by ARM Ltd.
-#
-#  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/>.
-
-NAT_FILE= config/nm-linux.h
-NATDEPFILES= inf-ptrace.o fork-child.o aarch64-linux-nat.o aarch32-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-personality.o linux-namespaces.o aarch64-linux-hw-point.o \
-	aarch64-linux.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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/alpha/alpha-linux.mh ./gdb/config/alpha/alpha-linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/alpha/alpha-linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/alpha/alpha-linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,15 +0,0 @@
-# Host: Little-endian Alpha running Linux
-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-personality.o linux-namespaces.o
-NAT_CDEPS = $(srcdir)/proc-service.list
-
-# The dynamically loaded libthread_db needs access to symbols in the
-# gdb executable.
-LOADLIBES = -ldl $(RDYNAMIC)
-
-# doublest.c currently assumes some properties of FP arithmetic
-# on the host which require this.
-MH_CFLAGS = -mieee
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/alpha/nbsd.mh ./gdb/config/alpha/nbsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/alpha/nbsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/alpha/nbsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-# Host: NetBSD/alpha
-NATDEPFILES= fork-child.o inf-ptrace.o alpha-bsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/arm/linux.mh ./gdb/config/arm/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/arm/linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/arm/linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,10 +0,0 @@
-# Host: ARM based machine running GNU/Linux
-
-NAT_FILE= config/nm-linux.h
-NATDEPFILES= inf-ptrace.o fork-child.o arm-linux-nat.o \
-	aarch32-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-personality.o linux-namespaces.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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/arm/nbsdelf.mh ./gdb/config/arm/nbsdelf.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/arm/nbsdelf.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/arm/nbsdelf.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-# Host: NetBSD/arm
-NATDEPFILES= fork-child.o inf-ptrace.o arm-nbsd-nat.o
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/djgpp/djcheck.sh ./gdb/config/djgpp/djcheck.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/djgpp/djcheck.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/djgpp/djcheck.sh	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
 
 # A shell script to run the test suite on the DJGPP version of GDB.
 
-#  Copyright (C) 2000-2017 Free Software Foundation, Inc.
+#  Copyright (C) 2000-2018 Free Software Foundation, Inc.
 #
 #  This program is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/djgpp/djconfig.sh ./gdb/config/djgpp/djconfig.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/djgpp/djconfig.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/djgpp/djconfig.sh	2018-01-09 02:04:57.000000000 +0000
@@ -5,7 +5,7 @@
 # configuring other GNU programs for DJGPP.
 #
 #=====================================================================
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2018 Free Software Foundation, Inc.
 #
 # Originally written by Robert Hoehne, revised by Eli Zaretskii.
 # This file is part of GDB.
@@ -92,7 +92,7 @@ TMPFILE="${TMPDIR-.}/cfg.tmp"
 
 # We need to skip the build directory if it is a subdirectory of $srcdir,
 # otherwise we will have an infinite recursion on our hands...
-if test "`pwd`" == "${srcdir}" ; then
+if test "`pwd`" = "${srcdir}" ; then
   SKIPDIR=""
   SKIPFILES=""
 else
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/djgpp/fnchange.lst ./gdb/config/djgpp/fnchange.lst
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/djgpp/fnchange.lst	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/djgpp/fnchange.lst	2018-01-09 02:04:57.000000000 +0000
@@ -115,6 +115,7 @@
 @V@/gdb/ChangeLog-2014 @V@/gdb/ChangeLog.014
 @V@/gdb/ChangeLog-2015 @V@/gdb/ChangeLog.015
 @V@/gdb/ChangeLog-2016 @V@/gdb/ChangeLog.016
+@V@/gdb/ChangeLog-2017 @V@/gdb/ChangeLog.017
 @V@/gdb/ChangeLog-3.x @V@/gdb/ChangeLog.3-x
 @V@/gdb/ada-exp.tab.c @V@/gdb/ada-exp_tab.c
 @V@/gdb/amd64-windows-nat.c @V@/gdb/a64w-nat.c
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/djgpp/langinfo.h ./gdb/config/djgpp/langinfo.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/djgpp/langinfo.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/djgpp/langinfo.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* langinfo.h file for DJGPP.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Written by Eli Zaretskii.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/djgpp/nl_types.h ./gdb/config/djgpp/nl_types.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/djgpp/nl_types.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/djgpp/nl_types.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* nl_types.h for DJGPP.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Written by Eli Zaretskii.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/cygwin64.mh ./gdb/config/i386/cygwin64.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/cygwin64.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/cygwin64.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,20 +0,0 @@
-#  Native config information for GDB on PowerPC systems running FreeBSD.
-#
-#  Copyright (C) 2013-2017 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/>.  */
-
-NATDEPFILES= x86-nat.o x86-dregs.o windows-nat.o amd64-windows-nat.o
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/cygwin.mh ./gdb/config/i386/cygwin.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/cygwin.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/cygwin.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-MH_CFLAGS=
-NATDEPFILES= x86-nat.o x86-dregs.o windows-nat.o i386-windows-nat.o
-XM_CLIBS=
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/darwin.mh ./gdb/config/i386/darwin.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/darwin.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/darwin.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-# Host: IA86 running Darwin
-
-NATDEPFILES = fork-child.o darwin-nat.o \
-     i386-darwin-nat.o x86-nat.o x86-dregs.o amd64-nat.o darwin-nat-info.o
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/fbsd64.mh ./gdb/config/i386/fbsd64.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/fbsd64.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/fbsd64.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,7 +0,0 @@
-# Host: FreeBSD/amd64
-NATDEPFILES= fork-child.o inf-ptrace.o \
-	fbsd-nat.o amd64-nat.o amd64-bsd-nat.o amd64-fbsd-nat.o \
-	bsd-kvm.o x86-nat.o x86-dregs.o x86-bsd-nat.o
-HAVE_NATIVE_GCORE_HOST = 1
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/fbsd.mh ./gdb/config/i386/fbsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/fbsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/fbsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,8 +0,0 @@
-# Host: FreeBSD/i386
-NATDEPFILES= fork-child.o inf-ptrace.o \
-	fbsd-nat.o x86-nat.o x86-dregs.o x86-bsd-nat.o i386-bsd-nat.o \
-	i386-fbsd-nat.o bsd-kvm.o
-NAT_FILE= nm-fbsd.h
-HAVE_NATIVE_GCORE_HOST = 1
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/go32.mh ./gdb/config/i386/go32.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/go32.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/go32.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,11 +0,0 @@
-# Host: Intel x86 running DJGPP
-
-# We include several header files from config/djgpp
-MH_CFLAGS= -I$(srcdir)/config/djgpp
-
-NATDEPFILES= go32-nat.o x86-nat.o x86-dregs.o
-
-HOST_IPC=
-XM_CLIBS= -ldbg
-
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/i386gnu.mh ./gdb/config/i386/i386gnu.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/i386gnu.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/i386gnu.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,41 +0,0 @@
-# Host: Intel 386 running the GNU Hurd
-NATDEPFILES= i386-gnu-nat.o gnu-nat.o \
-	     x86-nat.o x86-dregs.o fork-child.o \
-	     notify_S.o process_reply_S.o msg_reply_S.o \
-	     msg_U.o exc_request_U.o exc_request_S.o
-HAVE_NATIVE_GCORE_HOST = 1
-
-NAT_FILE= nm-i386gnu.h
-MH_CFLAGS = -D_GNU_SOURCE
-
-XM_CLIBS = -lshouldbeinlibc
-
-# Use our own user stubs for the msg rpcs, so we can make them time out, in
-# case the program is fucked, or we guess the wrong signal thread.
-msg-MIGUFLAGS = -D'MSG_IMPORTS=waittime 1000;'
-
-# ick
-MIGCOM = $(MIG) -cc cat - /dev/null
-
-# Reply servers need special massaging of the code mig generates, to make
-# them work correctly for error returns in some cases.
-%_reply_S.h %_reply_S.c: %_reply.defs
-	$(CPP) $(CPPFLAGS) -DSERVERPREFIX=S_ -x c $< \
-	| $(MIGCOM) -sheader $*_reply_S.h -server $*_reply_S.raw -user /dev/null -header /dev/null \
-	&& $(AWK) -f $(srcdir)/reply_mig_hack.awk < $*_reply_S.raw > $*_reply_S.c
-# Normal servers
-%_S.h %_S.c: %.defs
-	$(CPP) $(CPPFLAGS) -DSERVERPREFIX=S_ -x c $< \
-	| $(MIGCOM) -sheader $*_S.h -server $*_S.c -user /dev/null -header /dev/null
-# User rpc stubs
-%_U.h %_U.c: %.defs
-	$(CPP) $(CPPFLAGS) $($*-MIGUFLAGS) -x c $< \
-	| $(MIGCOM) -sheader /dev/null -server /dev/null -user $*_U.c -header $*_U.h
-
-# MIG stubs are not yet ready for C++ compilation.
-%_S.o %_U.o : COMPILE.post += -x c
-
-NAT_GENERATED_FILES = notify_S.h notify_S.c \
-	process_reply_S.h process_reply_S.c \
-	msg_reply_S.h msg_reply_S.c msg_U.h msg_U.c \
-	exc_request_U.h exc_request_U.c exc_request_S.h exc_request_S.c
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/i386gnu.mn ./gdb/config/i386/i386gnu.mn
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/i386gnu.mn	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/config/i386/i386gnu.mn	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,29 @@
+# Use our own user stubs for the msg rpcs, so we can make them time out, in
+# case the program is fucked, or we guess the wrong signal thread.
+msg-MIGUFLAGS = -D'MSG_IMPORTS=waittime 1000;'
+
+# ick
+MIGCOM = $(MIG) -cc cat - /dev/null
+
+# Reply servers need special massaging of the code mig generates, to make
+# them work correctly for error returns in some cases.
+%_reply_S.h %_reply_S.c: %_reply.defs
+	$(CPP) $(CPPFLAGS) -DSERVERPREFIX=S_ -x c $< \
+	| $(MIGCOM) -sheader $*_reply_S.h -server $*_reply_S.raw -user /dev/null -header /dev/null \
+	&& $(AWK) -f $(srcdir)/reply_mig_hack.awk < $*_reply_S.raw > $*_reply_S.c
+# Normal servers
+%_S.h %_S.c: %.defs
+	$(CPP) $(CPPFLAGS) -DSERVERPREFIX=S_ -x c $< \
+	| $(MIGCOM) -sheader $*_S.h -server $*_S.c -user /dev/null -header /dev/null
+# User rpc stubs
+%_U.h %_U.c: %.defs
+	$(CPP) $(CPPFLAGS) $($*-MIGUFLAGS) -x c $< \
+	| $(MIGCOM) -sheader /dev/null -server /dev/null -user $*_U.c -header $*_U.h
+
+# MIG stubs are not yet ready for C++ compilation.
+%_S.o %_U.o : COMPILE.post += -x c
+
+NAT_GENERATED_FILES = notify_S.h notify_S.c \
+	process_reply_S.h process_reply_S.c \
+	msg_reply_S.h msg_reply_S.c msg_U.h msg_U.c \
+	exc_request_U.h exc_request_U.c exc_request_S.h exc_request_S.c
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/i386sol2.mh ./gdb/config/i386/i386sol2.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/i386sol2.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/i386sol2.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-# Host: Solaris x86
-NATDEPFILES= fork-child.o i386-v4-nat.o i386-sol2-nat.o \
-	procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o
-HAVE_NATIVE_GCORE_HOST = 1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/linux64.mh ./gdb/config/i386/linux64.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/linux64.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/linux64.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,15 +0,0 @@
-# Host: GNU/Linux x86-64
-NATDEPFILES= inf-ptrace.o fork-child.o \
-	x86-nat.o x86-dregs.o amd64-nat.o amd64-linux-nat.o \
-	x86-linux-nat.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-personality.o x86-linux.o \
-	x86-linux-dregs.o amd64-linux-siginfo.o linux-namespaces.o
-NAT_FILE= config/nm-linux.h
-NAT_CDEPS = $(srcdir)/proc-service.list
-
-# The dynamically loaded libthread_db needs access to symbols in the
-# gdb executable.
-LOADLIBES = -ldl $(RDYNAMIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/linux.mh ./gdb/config/i386/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,14 +0,0 @@
-# Host: Intel 386 running GNU/Linux.
-
-NAT_FILE= config/nm-linux.h
-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-personality.o x86-linux.o \
-	x86-linux-dregs.o linux-namespaces.o
-NAT_CDEPS = $(srcdir)/proc-service.list
-
-# The dynamically loaded libthread_db needs access to symbols in the
-# gdb executable.
-LOADLIBES = -ldl $(RDYNAMIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/mingw64.mh ./gdb/config/i386/mingw64.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/mingw64.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/mingw64.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-NATDEPFILES= x86-nat.o x86-dregs.o windows-nat.o amd64-windows-nat.o
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/mingw.mh ./gdb/config/i386/mingw.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/mingw.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/mingw.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-MH_CFLAGS=
-NATDEPFILES= x86-nat.o x86-dregs.o windows-nat.o i386-windows-nat.o
-XM_CLIBS=
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/nbsd64.mh ./gdb/config/i386/nbsd64.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/nbsd64.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/nbsd64.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-# Host: NetBSD/amd64
-NATDEPFILES= fork-child.o inf-ptrace.o \
-	nbsd-nat.o amd64-nat.o x86-bsd-nat.o amd64-bsd-nat.o amd64-nbsd-nat.o
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/nbsdelf.mh ./gdb/config/i386/nbsdelf.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/nbsdelf.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/nbsdelf.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,5 +0,0 @@
-# Host: NetBSD/i386 ELF
-NATDEPFILES= fork-child.o inf-ptrace.o \
-	nbsd-nat.o x86-bsd-nat.o i386-bsd-nat.o i386-nbsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/nm-fbsd.h ./gdb/config/i386/nm-fbsd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/nm-fbsd.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/nm-fbsd.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent definitions for FreeBSD/i386.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/nm-i386gnu.h ./gdb/config/i386/nm-i386gnu.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/nm-i386gnu.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/nm-i386gnu.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Native-dependent definitions for Intel 386 running the GNU Hurd
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/nto.mh ./gdb/config/i386/nto.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/nto.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/nto.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-# Host: Intel 386 running QNX.
-
-NATDEPFILES= nto-procfs.o
-NAT_FILE= config/nm-nto.h
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/obsd64.mh ./gdb/config/i386/obsd64.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/obsd64.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/obsd64.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,5 +0,0 @@
-# Host: OpenBSD/amd64
-NATDEPFILES= fork-child.o inf-ptrace.o obsd-nat.o \
-	amd64-nat.o x86-bsd-nat.o amd64-bsd-nat.o amd64-obsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/obsd.mh ./gdb/config/i386/obsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/obsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/obsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,5 +0,0 @@
-# Host: OpenBSD/i386 ELF
-NATDEPFILES= fork-child.o inf-ptrace.o obsd-nat.o \
-	x86-bsd-nat.o i386-bsd-nat.o i386-obsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/sol2-64.mh ./gdb/config/i386/sol2-64.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/i386/sol2-64.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/i386/sol2-64.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-# Host: Solaris x86_64
-NATDEPFILES= fork-child.o amd64-nat.o i386-v4-nat.o i386-sol2-nat.o \
-	procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o
-HAVE_NATIVE_GCORE_HOST = 1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/ia64/linux.mh ./gdb/config/ia64/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/ia64/linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/ia64/linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,13 +0,0 @@
-# Host: Intel IA-64 running GNU/Linux
-
-NAT_FILE= config/nm-linux.h
-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 \
-	linux-namespaces.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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/m32r/linux.mh ./gdb/config/m32r/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/m32r/linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/m32r/linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,10 +0,0 @@
-# Host: M32R based machine running GNU/Linux
-
-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-personality.o linux-namespaces.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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/m68k/linux.mh ./gdb/config/m68k/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/m68k/linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/m68k/linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,14 +0,0 @@
-# Host: Motorola m68k running GNU/Linux.
-
-NAT_FILE= config/nm-linux.h
-NATDEPFILES= inf-ptrace.o fork-child.o \
-	m68k-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-personality.o \
-	linux-waitpid.o linux-namespaces.o
-NAT_CDEPS = $(srcdir)/proc-service.list
-
-# The dynamically loaded libthread_db needs access to symbols in the
-# gdb executable.
-LOADLIBES = -ldl $(RDYNAMIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/m68k/nbsdelf.mh ./gdb/config/m68k/nbsdelf.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/m68k/nbsdelf.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/m68k/nbsdelf.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-# Host: NetBSD/m68k ELF
-NATDEPFILES= m68k-bsd-nat.o bsd-kvm.o fork-child.o inf-ptrace.o
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/m68k/obsd.mh ./gdb/config/m68k/obsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/m68k/obsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/m68k/obsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-# Host: OpenBSD/m68k
-NATDEPFILES= m68k-bsd-nat.o bsd-kvm.o fork-child.o inf-ptrace.o
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/m88k/obsd.mh ./gdb/config/m88k/obsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/m88k/obsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/m88k/obsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-# Host: OpenBSD/m88k
-NATDEPFILES= fork-child.o inf-ptrace.o m88k-bsd-nat.o
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/mips/fbsd.mh ./gdb/config/mips/fbsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/mips/fbsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/mips/fbsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-# Host: FreeBSD/mips
-NATDEPFILES= fork-child.o inf-ptrace.o fbsd-nat.o mips-fbsd-nat.o
-HAVE_NATIVE_GCORE_HOST = 1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/mips/linux.mh ./gdb/config/mips/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/mips/linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/mips/linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,11 +0,0 @@
-# Host: Linux/MIPS
-NAT_FILE= config/nm-linux.h
-NATDEPFILES= inf-ptrace.o fork-child.o mips-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-personality.o \
-	mips-linux-watch.o linux-namespaces.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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/mips/nbsd.mh ./gdb/config/mips/nbsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/mips/nbsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/mips/nbsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-# Host: NetBSD/mips
-NATDEPFILES= fork-child.o inf-ptrace.o mips-nbsd-nat.o
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/mips/obsd64.mh ./gdb/config/mips/obsd64.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/mips/obsd64.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/mips/obsd64.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-# Host: OpenBSD/mips64
-NATDEPFILES= fork-child.o inf-ptrace.o obsd-nat.o mips64-obsd-nat.o
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/nm-linux.h ./gdb/config/nm-linux.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/nm-linux.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/nm-linux.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native support for GNU/Linux.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/nm-nto.h ./gdb/config/nm-nto.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/nm-nto.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/nm-nto.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native support for QNX Neutrino version 6.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This code was donated by QNX Software Systems Ltd.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/pa/linux.mh ./gdb/config/pa/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/pa/linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/pa/linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,10 +0,0 @@
-# Host: Hewlett-Packard PA-RISC machine, running Linux
-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-personality.o linux-namespaces.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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/pa/nbsd.mh ./gdb/config/pa/nbsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/pa/nbsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/pa/nbsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-# Host: NetBSD/hppa
-NATDEPFILES= fork-child.o inf-ptrace.o nbsd-nat.o hppa-nbsd-nat.o
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/pa/obsd.mh ./gdb/config/pa/obsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/pa/obsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/pa/obsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-# Host: OpenBSD/hppa
-NATDEPFILES= fork-child.o inf-ptrace.o obsd-nat.o hppa-obsd-nat.o
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/powerpc/aix.mh ./gdb/config/powerpc/aix.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/powerpc/aix.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/powerpc/aix.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,8 +0,0 @@
-# Host: IBM PowerPC running AIX
-
-# aix-thread.o is not listed in NATDEPFILES as it is pulled in by configure.
-NATDEPFILES= fork-child.o inf-ptrace.o rs6000-nat.o
-
-# When compiled with cc, for debugging, this argument should be passed.
-# We have no idea who our current compiler is though, so we skip it.
-# MH_CFLAGS = -bnodelcsect
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/powerpc/fbsd.mh ./gdb/config/powerpc/fbsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/powerpc/fbsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/powerpc/fbsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,24 +0,0 @@
-#  Native config information for GDB on PowerPC systems running FreeBSD.
-#
-#  Copyright (C) 2013-2017 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/>.  */
-
-NATDEPFILES= fbsd-nat.o fork-child.o inf-ptrace.o ppc-fbsd-nat.o bsd-kvm.o
-HAVE_NATIVE_GCORE_HOST = 1
-
-LOADLIBES= -lkvm
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/powerpc/linux.mh ./gdb/config/powerpc/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/powerpc/linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/powerpc/linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,12 +0,0 @@
-# Host: PowerPC, running Linux
-
-XM_CLIBS=
-
-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-personality.o linux-namespaces.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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/powerpc/nbsd.mh ./gdb/config/powerpc/nbsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/powerpc/nbsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/powerpc/nbsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-# Host: NetBSD/powerpc
-NATDEPFILES= fork-child.o inf-ptrace.o ppc-nbsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/powerpc/obsd.mh ./gdb/config/powerpc/obsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/powerpc/obsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/powerpc/obsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-# Host: OpenBSD/powerpc
-NATDEPFILES= fork-child.o inf-ptrace.o obsd-nat.o ppc-obsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/powerpc/ppc64-linux.mh ./gdb/config/powerpc/ppc64-linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/powerpc/ppc64-linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/powerpc/ppc64-linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,15 +0,0 @@
-# Host: PowerPC64, running Linux
-
-XM_CLIBS=
-
-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 ppc-linux.o linux-personality.o \
-	linux-namespaces.o
-NAT_CDEPS = $(srcdir)/proc-service.list
-
-# The dynamically loaded libthread_db needs access to symbols in the
-# gdb executable.
-LOADLIBES= -ldl $(RDYNAMIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/powerpc/spu-linux.mh ./gdb/config/powerpc/spu-linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/powerpc/spu-linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/powerpc/spu-linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,8 +0,0 @@
-# Target: Cell BE (PowerPC64 + SPU)
-
-# This implements a 'pseudo-native' GDB running on the
-# 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-personality.o linux-namespaces.o
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/s390/linux.mh ./gdb/config/s390/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/s390/linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/s390/linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,9 +0,0 @@
-# Host: S390, running Linux
-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 linux-namespaces.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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sh/nbsd.mh ./gdb/config/sh/nbsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sh/nbsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/sh/nbsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-# Host: NetBSD/sh
-NATDEPFILES= fork-child.o inf-ptrace.o sh-nbsd-nat.o
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/fbsd.mh ./gdb/config/sparc/fbsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/fbsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/sparc/fbsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,7 +0,0 @@
-# Host: FreeBSD/sparc64
-NATDEPFILES= fork-child.o inf-ptrace.o \
-	fbsd-nat.o sparc-nat.o sparc64-nat.o sparc64-fbsd-nat.o \
-	bsd-kvm.o
-HAVE_NATIVE_GCORE_HOST = 1
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/linux64.mh ./gdb/config/sparc/linux64.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/linux64.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/sparc/linux64.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,13 +0,0 @@
-# Host: GNU/Linux UltraSPARC
-NAT_FILE= config/nm-linux.h
-NATDEPFILES= sparc-nat.o sparc64-nat.o sparc64-linux-nat.o \
-	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-personality.o linux-namespaces.o
-NAT_CDEPS = $(srcdir)/proc-service.list
-
-# The dynamically loaded libthread_db needs access to symbols in the
-# gdb executable.
-LOADLIBES = -ldl $(RDYNAMIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/linux.mh ./gdb/config/sparc/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/sparc/linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,13 +0,0 @@
-# Host: GNU/Linux SPARC
-NAT_FILE= config/nm-linux.h
-NATDEPFILES= sparc-nat.o sparc-linux-nat.o \
-	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-personality.o linux-namespaces.o
-NAT_CDEPS = $(srcdir)/proc-service.list
-
-# The dynamically loaded libthread_db needs access to symbols in the
-# gdb executable.
-LOADLIBES = -ldl $(RDYNAMIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/nbsd64.mh ./gdb/config/sparc/nbsd64.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/nbsd64.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/sparc/nbsd64.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,5 +0,0 @@
-# Host: NetBSD/sparc64
-NATDEPFILES= fork-child.o inf-ptrace.o \
-	sparc64-nbsd-nat.o sparc-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/nbsdelf.mh ./gdb/config/sparc/nbsdelf.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/nbsdelf.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/sparc/nbsdelf.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,5 +0,0 @@
-# Host: NetBSD/sparc ELF
-NATDEPFILES= fork-child.o inf-ptrace.o \
-	sparc-nat.o sparc-nbsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/nm-sol2.h ./gdb/config/sparc/nm-sol2.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/nm-sol2.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/sparc/nm-sol2.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent definitions for Solaris SPARC.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/obsd64.mh ./gdb/config/sparc/obsd64.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/obsd64.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/sparc/obsd64.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,5 +0,0 @@
-# Host: OpenBSD/sparc64
-NATDEPFILES= fork-child.o inf-ptrace.o obsd-nat.o \
-	sparc64-obsd-nat.o sparc-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/sol2.mh ./gdb/config/sparc/sol2.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/sparc/sol2.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/sparc/sol2.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,6 +0,0 @@
-# Host: Solaris SPARC & UltraSPARC
-NAT_FILE= nm-sol2.h
-NATDEPFILES= sparc-sol2-nat.o \
-	fork-child.o \
-	procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o
-HAVE_NATIVE_GCORE_HOST = 1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/tilegx/linux.mh ./gdb/config/tilegx/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/tilegx/linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/tilegx/linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,13 +0,0 @@
-# Host: Tilera TILE-Gx running GNU/Linux.
-
-NAT_FILE= config/nm-linux.h
-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-personality.o linux-namespaces.o
-
-# The dynamically loaded libthread_db needs access to symbols in the
-# gdb executable.
-LOADLIBES = -ldl $(RDYNAMIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/vax/nbsdelf.mh ./gdb/config/vax/nbsdelf.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/vax/nbsdelf.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/vax/nbsdelf.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,5 +0,0 @@
-# Host: NetBSD/vax ELF
-NATDEPFILES= fork-child.o inf-ptrace.o \
-	vax-bsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/vax/obsd.mh ./gdb/config/vax/obsd.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/vax/obsd.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/vax/obsd.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,5 +0,0 @@
-# Host: OpenBSD/vax
-NATDEPFILES= fork-child.o inf-ptrace.o \
-	vax-bsd-nat.o bsd-kvm.o
-
-LOADLIBES= -lkvm
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/xtensa/linux.mh ./gdb/config/xtensa/linux.mh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config/xtensa/linux.mh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config/xtensa/linux.mh	1970-01-01 00:00:00.000000000 +0000
@@ -1,11 +0,0 @@
-# Host: Xtensa, running GNU/Linux.
-
-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-personality.o linux-namespaces.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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config.in ./gdb/config.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/config.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/config.in	2018-01-09 02:04:57.000000000 +0000
@@ -231,9 +231,6 @@
 /* Define if you have the babeltrace library. */
 #undef HAVE_LIBBABELTRACE
 
-/* Define to 1 if you have the `dl' library (-ldl). */
-#undef HAVE_LIBDL
-
 /* Define if you have the expat library. */
 #undef HAVE_LIBEXPAT
 
@@ -252,6 +249,9 @@
 /* Define to 1 if you have the `mcheck' library (-lmcheck). */
 #undef HAVE_LIBMCHECK
 
+/* Define if you have the mpfr library. */
+#undef HAVE_LIBMPFR
+
 /* Define if Python 2.4 is being used. */
 #undef HAVE_LIBPYTHON2_4
 
@@ -267,9 +267,6 @@
 /* Define to 1 if you have the <libunwind-ia64.h> header file. */
 #undef HAVE_LIBUNWIND_IA64_H
 
-/* Define to 1 if you have the `w' library (-lw). */
-#undef HAVE_LIBW
-
 /* Define to 1 if you have the <linux/perf_event.h> header file. */
 #undef HAVE_LINUX_PERF_EVENT_H
 
@@ -300,6 +297,9 @@
 /* Define to 1 if you have the `monstartup' function. */
 #undef HAVE_MONSTARTUP
 
+/* Define to 1 if you have the <ncursesw/ncurses.h> header file. */
+#undef HAVE_NCURSESW_NCURSES_H
+
 /* Define to 1 if you have the <ncurses.h> header file. */
 #undef HAVE_NCURSES_H
 
@@ -348,18 +348,6 @@
 /* Define to 1 if you have the <proc_service.h> header file. */
 #undef HAVE_PROC_SERVICE_H
 
-/* Define if <sys/procfs.h> has prsysent_t. */
-#undef HAVE_PRSYSENT_T
-
-/* Define if <sys/procfs.h> has pr_sigaction64_t. */
-#undef HAVE_PR_SIGACTION64_T
-
-/* Define if <sys/procfs.h> has pr_siginfo64_t. */
-#undef HAVE_PR_SIGINFO64_T
-
-/* Define if <sys/procfs.h> has pr_sigset_t. */
-#undef HAVE_PR_SIGSET_T
-
 /* Define if <sys/procfs.h> has psaddr_t. */
 #undef HAVE_PSADDR_T
 
@@ -381,6 +369,9 @@
 /* Define if sys/ptrace.h defines the PT_GETXMMREGS request. */
 #undef HAVE_PT_GETXMMREGS
 
+/* Define to 1 if you have the `pt_insn_event' function. */
+#undef HAVE_PT_INSN_EVENT
+
 /* Define to 1 if you have the `pwrite' function. */
 #undef HAVE_PWRITE
 
@@ -414,9 +405,6 @@
 /* Define to 1 if you have the `setsid' function. */
 #undef HAVE_SETSID
 
-/* Define to 1 if you have the <sgtty.h> header file. */
-#undef HAVE_SGTTY_H
-
 /* Define to 1 if you have the `sigaction' function. */
 #undef HAVE_SIGACTION
 
@@ -462,6 +450,12 @@
 /* Define to 1 if `struct ptrace_lwpinfo' is a member of `pl_tdname'. */
 #undef HAVE_STRUCT_PTRACE_LWPINFO_PL_TDNAME
 
+/* Define to 1 if `struct pt_insn' is a member of `enabled'. */
+#undef HAVE_STRUCT_PT_INSN_ENABLED
+
+/* Define to 1 if `struct pt_insn' is a member of `resynced'. */
+#undef HAVE_STRUCT_PT_INSN_RESYNCED
+
 /* Define to 1 if your system has struct reg in <machine/reg.h>. */
 #undef HAVE_STRUCT_REG
 
@@ -489,9 +483,6 @@
 /* Define to 1 if you have the <sys/debugreg.h> header file. */
 #undef HAVE_SYS_DEBUGREG_H
 
-/* Define to 1 if you have the <sys/fault.h> header file. */
-#undef HAVE_SYS_FAULT_H
-
 /* Define to 1 if you have the <sys/file.h> header file. */
 #undef HAVE_SYS_FILE_H
 
@@ -510,9 +501,6 @@
 /* Define to 1 if you have the <sys/procfs.h> header file. */
 #undef HAVE_SYS_PROCFS_H
 
-/* Define to 1 if you have the <sys/proc.h> header file. */
-#undef HAVE_SYS_PROC_H
-
 /* Define to 1 if you have the <sys/ptrace.h> header file. */
 #undef HAVE_SYS_PTRACE_H
 
@@ -531,9 +519,6 @@
 /* Define to 1 if you have the <sys/stat.h> header file. */
 #undef HAVE_SYS_STAT_H
 
-/* Define to 1 if you have the <sys/syscall.h> header file. */
-#undef HAVE_SYS_SYSCALL_H
-
 /* Define to 1 if you have the <sys/types.h> header file. */
 #undef HAVE_SYS_TYPES_H
 
@@ -549,18 +534,12 @@
 /* Define to 1 if you have the <termios.h> header file. */
 #undef HAVE_TERMIOS_H
 
-/* Define to 1 if you have the <termio.h> header file. */
-#undef HAVE_TERMIO_H
-
 /* Define to 1 if you have the <term.h> header file. */
 #undef HAVE_TERM_H
 
 /* Define to 1 if you have the <thread_db.h> header file. */
 #undef HAVE_THREAD_DB_H
 
-/* Define if using Solaris thread debugging. */
-#undef HAVE_THREAD_DB_LIB
-
 /* Define to 1 if you have the `ttrace' function. */
 #undef HAVE_TTRACE
 
@@ -619,9 +598,6 @@
    moved. */
 #undef JIT_READER_DIR_RELOCATABLE
 
-/* Define if you want to use new multi-fd /proc interface. */
-#undef NEW_PROC_API
-
 /* Name of this package. */
 #undef PACKAGE
 
@@ -658,10 +634,6 @@
 /* Define to 1 if the "%ll" format works to print long longs. */
 #undef PRINTF_HAS_LONG_LONG
 
-/* Define if <proc_service.h> on solaris uses int instead of size_t, and
-   assorted other type changes. */
-#undef PROC_SERVICE_IS_OLD
-
 /* Define to the type of arg 1 for ptrace. */
 #undef PTRACE_TYPE_ARG1
 
@@ -801,10 +773,6 @@
 /* Define to 1 if on MINIX. */
 #undef _MINIX
 
-/* Define to 1 to avoid a clash between <widec.h> and <wchar.h> on Solaris
-   2.[789] when using GCC. */
-#undef _MSE_INT_H
-
 /* Define to 2 if the system does not provide POSIX.1 features except with
    this defined. */
 #undef _POSIX_1_SOURCE
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/configure ./gdb/configure
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/configure	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/configure	2018-01-09 02:04:57.000000000 +0000
@@ -598,7 +598,14 @@ GDB_NM_FILE
 LTLIBBABELTRACE
 LIBBABELTRACE
 HAVE_LIBBABELTRACE
-frags
+HAVE_NATIVE_GCORE_HOST
+NAT_GENERATED_FILES
+XM_CLIBS
+MH_CFLAGS
+LOADLIBES
+NAT_CDEPS
+NATDEPFILES
+NAT_FILE
 target_subdir
 CONFIG_UNINSTALL
 CONFIG_INSTALL
@@ -675,6 +682,9 @@ PYTHON_LIBS
 PYTHON_CPPFLAGS
 PYTHON_CFLAGS
 python_prog_path
+LTLIBMPFR
+LIBMPFR
+HAVE_LIBMPFR
 LTLIBEXPAT
 LIBEXPAT
 HAVE_LIBEXPAT
@@ -799,7 +809,7 @@ PACKAGE_TARNAME
 PACKAGE_NAME
 PATH_SEPARATOR
 SHELL'
-ac_subst_files='host_makefile_frag'
+ac_subst_files='nat_makefile_frag'
 ac_user_opts='
 enable_option_checking
 enable_maintainer_mode
@@ -830,6 +840,8 @@ with_system_readline
 with_jit_reader_dir
 with_expat
 with_libexpat_prefix
+with_mpfr
+with_libmpfr_prefix
 with_python
 with_guile
 enable_libmcheck
@@ -1552,6 +1564,9 @@ Optional Packages:
   --with-expat            include expat support (auto/yes/no)
   --with-libexpat-prefix[=DIR]  search for libexpat in DIR/include and DIR/lib
   --without-libexpat-prefix     don't search for libexpat in includedir and libdir
+  --with-mpfr             include MPFR support (auto/yes/no)
+  --with-libmpfr-prefix[=DIR]  search for libmpfr in DIR/include and DIR/lib
+  --without-libmpfr-prefix     don't search for libmpfr in includedir and libdir
   --with-python[=PYTHON]  include python support
                           (auto/yes/no/<python-program>)
   --with-guile[=GUILE]    include guile support
@@ -2241,6 +2256,63 @@ eval ac_res=\$$3
 
 } # ac_fn_c_check_func
 
+# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+# ----------------------------------------------------
+# Tries to find if the field MEMBER exists in type AGGR, after including
+# INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$4=yes"
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$4=yes"
+else
+  eval "$4=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$4
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_member
+
 # ac_fn_c_check_type LINENO TYPE VAR INCLUDES
 # -------------------------------------------
 # Tests whether TYPE exists after having included INCLUDES, setting cache
@@ -2339,63 +2411,6 @@ eval ac_res=\$$3
   eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
 } # ac_fn_c_check_decl
-
-# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
-# ----------------------------------------------------
-# Tries to find if the field MEMBER exists in type AGGR, after including
-# INCLUDES, setting cache variable VAR accordingly.
-ac_fn_c_check_member ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
-$as_echo_n "checking for $2.$3... " >&6; }
-if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$5
-int
-main ()
-{
-static $2 ac_aggr;
-if (ac_aggr.$3)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$4=yes"
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$5
-int
-main ()
-{
-static $2 ac_aggr;
-if (sizeof ac_aggr.$3)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$4=yes"
-else
-  eval "$4=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$4
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-
-} # ac_fn_c_check_member
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
@@ -7716,62 +7731,6 @@ _ACEOF
 fi
 
 
-# We need to link with -lw to get `wctype' on Solaris before Solaris
-# 2.6.  Solaris 2.6 and beyond have this function in libc, and have a
-# libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
-# is known to have this problem).  Therefore we avoid libw if we can.
-ac_fn_c_check_func "$LINENO" "wctype" "ac_cv_func_wctype"
-if test "x$ac_cv_func_wctype" = x""yes; then :
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype in -lw" >&5
-$as_echo_n "checking for wctype in -lw... " >&6; }
-if test "${ac_cv_lib_w_wctype+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lw  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char wctype ();
-int
-main ()
-{
-return wctype ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_w_wctype=yes
-else
-  ac_cv_lib_w_wctype=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_w_wctype" >&5
-$as_echo "$ac_cv_lib_w_wctype" >&6; }
-if test "x$ac_cv_lib_w_wctype" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBW 1
-_ACEOF
-
-  LIBS="-lw $LIBS"
-
-fi
-
-fi
-
-
 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5
 $as_echo_n "checking for library containing gethostbyname... " >&6; }
@@ -8795,7 +8754,7 @@ return waddstr ();
   return 0;
 }
 _ACEOF
-for ac_lib in '' ncurses cursesX curses; do
+for ac_lib in '' ncursesw ncurses cursesX curses; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
@@ -8893,7 +8852,7 @@ return tgetent ();
   return 0;
 }
 _ACEOF
-for ac_lib in '' termcap tinfo curses ncurses; do
+for ac_lib in '' termcap tinfo curses ncursesw ncurses; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
@@ -9684,116 +9643,607 @@ done
   fi
 fi
 
-# --------------------- #
-# Check for libpython.  #
-# --------------------- #
 
+# Check whether --with-mpfr was given.
+if test "${with_mpfr+set}" = set; then :
+  withval=$with_mpfr;
+else
+  with_mpfr=auto
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use MPFR" >&5
+$as_echo_n "checking whether to use MPFR... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_mpfr" >&5
+$as_echo "$with_mpfr" >&6; }
+
+if test "${with_mpfr}" = no; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MPFR support disabled; some features may be unavailable." >&5
+$as_echo "$as_me: WARNING: MPFR support disabled; some features may be unavailable." >&2;}
+  HAVE_LIBMPFR=no
+else
 
 
 
 
 
-# Check whether --with-python was given.
-if test "${with_python+set}" = set; then :
-  withval=$with_python;
-else
-  with_python=auto
-fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use python" >&5
-$as_echo_n "checking whether to use python... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_python" >&5
-$as_echo "$with_python" >&6; }
 
-if test "${with_python}" = no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: python support disabled; some features may be unavailable." >&5
-$as_echo "$as_me: WARNING: python support disabled; some features may be unavailable." >&2;}
-  have_libpython=no
-else
-  case "${with_python}" in
-  [\\/]* | ?:[\\/]*)
-    if test -d ${with_python}; then
-      # Assume the python binary is ${with_python}/bin/python.
-      python_prog="${with_python}/bin/python"
-      python_prefix=
-      # If python does not exit ${with_python}/bin, then try in
-      # ${with_python}.  On Windows/MinGW, this is where the Python
-      # executable is.
-      if test ! -x "${python_prog}"; then
-        python_prog="${with_python}/python"
-        python_prefix=
-      fi
-      if test ! -x "${python_prog}"; then
-        # Fall back to gdb 7.0/7.1 behaviour.
-        python_prog=missing
-        python_prefix=${with_python}
-      fi
-    elif test -x "${with_python}"; then
-      # While we can't run python compiled for $host (unless host == build),
-      # the user could write a script that provides the needed information,
-      # so we support that.
-      python_prog=${with_python}
-      python_prefix=
-    else
-      as_fn_error "invalid value for --with-python" "$LINENO" 5
-    fi
-    ;;
-  */*)
-    # Disallow --with-python=foo/bar.
-    as_fn_error "invalid value for --with-python" "$LINENO" 5
-    ;;
-  *)
-    # The user has either specified auto, yes, or the name of the python
-    # program assumed to be in $PATH.
-    python_prefix=
-    case "${with_python}" in
-    yes | auto)
-      if test ${build} = ${host}; then
-        # Extract the first word of "python", so it can be a program name with args.
-set dummy python; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_python_prog_path+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $python_prog_path in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_python_prog_path="$python_prog_path" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_python_prog_path="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_python_prog_path" && ac_cv_path_python_prog_path="missing"
-  ;;
-esac
-fi
-python_prog_path=$ac_cv_path_python_prog_path
-if test -n "$python_prog_path"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_prog_path" >&5
-$as_echo "$python_prog_path" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+    use_additional=yes
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
 
-        if test "${python_prog_path}" = missing; then
-          python_prog=missing
-        else
-          python_prog=${python_prog_path}
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
+
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+
+# Check whether --with-libmpfr-prefix was given.
+if test "${with_libmpfr_prefix+set}" = set; then :
+  withval=$with_libmpfr_prefix;
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
+
+fi
+
+      LIBMPFR=
+  LTLIBMPFR=
+  INCMPFR=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='mpfr '
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIBMPFR="${LIBMPFR}${LIBMPFR:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIBMPFR="${LTLIBMPFR}${LTLIBMPFR:+ }$value"
+          else
+                                    :
+          fi
+        else
+                              found_dir=
+          found_la=
+          found_so=
+          found_a=
+          if test $use_additional = yes; then
+            if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+              found_dir="$additional_libdir"
+              found_so="$additional_libdir/lib$name.$shlibext"
+              if test -f "$additional_libdir/lib$name.la"; then
+                found_la="$additional_libdir/lib$name.la"
+              fi
+            else
+              if test -f "$additional_libdir/lib$name.$libext"; then
+                found_dir="$additional_libdir"
+                found_a="$additional_libdir/lib$name.$libext"
+                if test -f "$additional_libdir/lib$name.la"; then
+                  found_la="$additional_libdir/lib$name.la"
+                fi
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIBMPFR; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                  if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+                    found_dir="$dir"
+                    found_so="$dir/lib$name.$shlibext"
+                    if test -f "$dir/lib$name.la"; then
+                      found_la="$dir/lib$name.la"
+                    fi
+                  else
+                    if test -f "$dir/lib$name.$libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/lib$name.$libext"
+                      if test -f "$dir/lib$name.la"; then
+                        found_la="$dir/lib$name.la"
+                      fi
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+                        LTLIBMPFR="${LTLIBMPFR}${LTLIBMPFR:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+                                                        if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+                                LIBMPFR="${LIBMPFR}${LIBMPFR:+ }$found_so"
+              else
+                                                                                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                                if test "$hardcode_direct" = yes; then
+                                                      LIBMPFR="${LIBMPFR}${LIBMPFR:+ }$found_so"
+                else
+                  if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+                                                            LIBMPFR="${LIBMPFR}${LIBMPFR:+ }$found_so"
+                                                            haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                                                                                haveit=
+                    for x in $LDFLAGS $LIBMPFR; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIBMPFR="${LIBMPFR}${LIBMPFR:+ }-L$found_dir"
+                    fi
+                    if test "$hardcode_minus_L" != no; then
+                                                                                        LIBMPFR="${LIBMPFR}${LIBMPFR:+ }$found_so"
+                    else
+                                                                                                                                                                                LIBMPFR="${LIBMPFR}${LIBMPFR:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                                LIBMPFR="${LIBMPFR}${LIBMPFR:+ }$found_a"
+              else
+                                                LIBMPFR="${LIBMPFR}${LIBMPFR:+ }-L$found_dir -l$name"
+              fi
+            fi
+                        additional_includedir=
+            case "$found_dir" in
+              */lib | */lib/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux*) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INCMPFR; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                                            INCMPFR="${INCMPFR}${INCMPFR:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+                        if test -n "$found_la"; then
+                                                        save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+                            for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                if test "X$additional_libdir" != "X/usr/lib"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/lib"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux*) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIBMPFR; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LIBMPFR="${LIBMPFR}${LIBMPFR:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIBMPFR; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LTLIBMPFR="${LTLIBMPFR}${LTLIBMPFR:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                                                                  haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                                                                  haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                                        LIBMPFR="${LIBMPFR}${LIBMPFR:+ }$dep"
+                    LTLIBMPFR="${LTLIBMPFR}${LTLIBMPFR:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+                                                            LIBMPFR="${LIBMPFR}${LIBMPFR:+ }-l$name"
+            LTLIBMPFR="${LTLIBMPFR}${LTLIBMPFR:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$hardcode_libdir_separator"; then
+                        alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+      done
+            acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIBMPFR="${LIBMPFR}${LIBMPFR:+ }$flag"
+    else
+            for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIBMPFR="${LIBMPFR}${LIBMPFR:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+            for found_dir in $ltrpathdirs; do
+      LTLIBMPFR="${LTLIBMPFR}${LTLIBMPFR:+ }-R$found_dir"
+    done
+  fi
+
+
+        ac_save_CPPFLAGS="$CPPFLAGS"
+
+  for element in $INCMPFR; do
+    haveit=
+    for x in $CPPFLAGS; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+    fi
+  done
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libmpfr" >&5
+$as_echo_n "checking for libmpfr... " >&6; }
+if test "${ac_cv_libmpfr+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    ac_save_LIBS="$LIBS"
+    LIBS="$LIBS $LIBMPFR"
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <mpfr.h>
+int
+main ()
+{
+mpfr_exp_t exp; mpfr_t x;
+			 mpfr_frexp (&exp, x, x, MPFR_RNDN);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_libmpfr=yes
+else
+  ac_cv_libmpfr=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    LIBS="$ac_save_LIBS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libmpfr" >&5
+$as_echo "$ac_cv_libmpfr" >&6; }
+  if test "$ac_cv_libmpfr" = yes; then
+    HAVE_LIBMPFR=yes
+
+$as_echo "#define HAVE_LIBMPFR 1" >>confdefs.h
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libmpfr" >&5
+$as_echo_n "checking how to link with libmpfr... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBMPFR" >&5
+$as_echo "$LIBMPFR" >&6; }
+  else
+    HAVE_LIBMPFR=no
+            CPPFLAGS="$ac_save_CPPFLAGS"
+    LIBMPFR=
+    LTLIBMPFR=
+  fi
+
+
+
+
+
+
+  if test "$HAVE_LIBMPFR" != yes; then
+    if test "$with_mpfr" = yes; then
+      as_fn_error "MPFR is missing or unusable" "$LINENO" 5
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MPFR is missing or unusable; some features may be unavailable." >&5
+$as_echo "$as_me: WARNING: MPFR is missing or unusable; some features may be unavailable." >&2;}
+    fi
+  fi
+fi
+
+# --------------------- #
+# Check for libpython.  #
+# --------------------- #
+
+
+
+
+
+
+# Check whether --with-python was given.
+if test "${with_python+set}" = set; then :
+  withval=$with_python;
+else
+  with_python=auto
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use python" >&5
+$as_echo_n "checking whether to use python... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_python" >&5
+$as_echo "$with_python" >&6; }
+
+if test "${with_python}" = no; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: python support disabled; some features may be unavailable." >&5
+$as_echo "$as_me: WARNING: python support disabled; some features may be unavailable." >&2;}
+  have_libpython=no
+else
+  case "${with_python}" in
+  [\\/]* | ?:[\\/]*)
+    if test -d ${with_python}; then
+      # Assume the python binary is ${with_python}/bin/python.
+      python_prog="${with_python}/bin/python"
+      python_prefix=
+      # If python does not exit ${with_python}/bin, then try in
+      # ${with_python}.  On Windows/MinGW, this is where the Python
+      # executable is.
+      if test ! -x "${python_prog}"; then
+        python_prog="${with_python}/python"
+        python_prefix=
+      fi
+      if test ! -x "${python_prog}"; then
+        # Fall back to gdb 7.0/7.1 behaviour.
+        python_prog=missing
+        python_prefix=${with_python}
+      fi
+    elif test -x "${with_python}"; then
+      # While we can't run python compiled for $host (unless host == build),
+      # the user could write a script that provides the needed information,
+      # so we support that.
+      python_prog=${with_python}
+      python_prefix=
+    else
+      as_fn_error "invalid value for --with-python" "$LINENO" 5
+    fi
+    ;;
+  */*)
+    # Disallow --with-python=foo/bar.
+    as_fn_error "invalid value for --with-python" "$LINENO" 5
+    ;;
+  *)
+    # The user has either specified auto, yes, or the name of the python
+    # program assumed to be in $PATH.
+    python_prefix=
+    case "${with_python}" in
+    yes | auto)
+      if test ${build} = ${host}; then
+        # Extract the first word of "python", so it can be a program name with args.
+set dummy python; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_python_prog_path+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $python_prog_path in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_python_prog_path="$python_prog_path" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_python_prog_path="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_python_prog_path" && ac_cv_path_python_prog_path="missing"
+  ;;
+esac
+fi
+python_prog_path=$ac_cv_path_python_prog_path
+if test -n "$python_prog_path"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_prog_path" >&5
+$as_echo "$python_prog_path" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+        if test "${python_prog_path}" = missing; then
+          python_prog=missing
+        else
+          python_prog=${python_prog_path}
         fi
       else
         # Not much we can do except assume the cross-compiler will find the
@@ -10268,7 +10718,7 @@ rm -f conftest.err conftest.$ac_ext
 else
   # Even if Python support is not compiled in, we need to have this file
   # included so that the "python" command, et.al., still exists.
-  CONFIG_OBS="$CONFIG_OBS python.o"
+  CONFIG_OBS="$CONFIG_OBS python/python.o"
   CONFIG_SRCS="$CONFIG_SRCS python/python.c"
 fi
 
@@ -10354,7 +10804,7 @@ fi
 
 
 
-try_guile_versions="guile-2.2 guile-2.0"
+try_guile_versions="guile-2.0"
 have_libguile=no
 case "${with_guile}" in
 no)
@@ -10829,7 +11279,7 @@ done
 else
   # Even if Guile support is not compiled in, we need to have these files
   # included.
-  CONFIG_OBS="$CONFIG_OBS guile.o"
+  CONFIG_OBS="$CONFIG_OBS guile/guile.o"
   CONFIG_SRCS="$CONFIG_SRCS guile/guile.c"
 fi
 
@@ -11433,6 +11883,42 @@ fi
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libipt is missing or unusable; some features may be unavailable." >&5
 $as_echo "$as_me: WARNING: libipt is missing or unusable; some features may be unavailable." >&2;}
     fi
+  else
+    save_LIBS=$LIBS
+    LIBS="$LIBS $LIBIPT"
+    for ac_func in pt_insn_event
+do :
+  ac_fn_c_check_func "$LINENO" "pt_insn_event" "ac_cv_func_pt_insn_event"
+if test "x$ac_cv_func_pt_insn_event" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_PT_INSN_EVENT 1
+_ACEOF
+
+fi
+done
+
+    ac_fn_c_check_member "$LINENO" "struct pt_insn" "enabled" "ac_cv_member_struct_pt_insn_enabled" "#include <intel-pt.h>
+"
+if test "x$ac_cv_member_struct_pt_insn_enabled" = x""yes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_PT_INSN_ENABLED 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct pt_insn" "resynced" "ac_cv_member_struct_pt_insn_resynced" "#include <intel-pt.h>
+"
+if test "x$ac_cv_member_struct_pt_insn_resynced" = x""yes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_PT_INSN_RESYNCED 1
+_ACEOF
+
+
+fi
+
+    LIBS=$save_LIBS
   fi
 fi
 
@@ -11555,12 +12041,10 @@ fi
 # elf_hp.h is for HP/UX 64-bit shared library support.
 for ac_header in nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
                   thread_db.h \
-		  sys/fault.h \
 		  sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
 		  sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
-		  sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \
-		  termios.h termio.h \
-		  sgtty.h elf_hp.h \
+		  sys/reg.h sys/debugreg.h sys/select.h \
+		  termios.h elf_hp.h \
 		  dlfcn.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
@@ -11575,22 +12059,6 @@ fi
 
 done
 
-for ac_header in sys/proc.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "sys/proc.h" "ac_cv_header_sys_proc_h" "#if HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-
-"
-if test "x$ac_cv_header_sys_proc_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_PROC_H 1
-_ACEOF
-
-fi
-
-done
-
 for ac_header in sys/user.h
 do :
   ac_fn_c_check_header_compile "$LINENO" "sys/user.h" "ac_cv_header_sys_user_h" "#if HAVE_SYS_PARAM_H
@@ -11608,18 +12076,7 @@ fi
 done
 
 
-# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
-# between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
-# think that we don't have <curses.h> if we're using GCC.
-case $host_os in
-  solaris2.[789])
-    if test "$GCC" = yes; then
-
-$as_echo "#define _MSE_INT_H 1" >>confdefs.h
-
-    fi ;;
-esac
-for ac_header in curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h
+for ac_header in curses.h cursesX.h ncurses.h ncursesw/ncurses.h ncurses/ncurses.h ncurses/term.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -13085,7 +13542,7 @@ fi
   fi
 
 
-  for ac_header in linux/perf_event.h locale.h memory.h signal.h 		   sys/resource.h sys/socket.h sys/syscall.h 		   sys/un.h sys/wait.h 		   thread_db.h wait.h
+  for ac_header in linux/perf_event.h locale.h memory.h signal.h 		   sys/resource.h sys/socket.h 		   sys/un.h sys/wait.h 		   thread_db.h wait.h 		   termios.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -13528,6 +13985,7 @@ else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/param.h>
+#define _KMEMUSER
 #include <sys/lwp.h>
 int
 main ()
@@ -13800,23 +14258,6 @@ _ACEOF
 fi
 
 
-# Detect which type of /proc is in use, such as for Solaris.
-
-if test "${target}" = "${host}"; then
-  case "${host}" in
-  *-*-sysv4.2* | *-*-sysv5* )
-
-$as_echo "#define NEW_PROC_API 1" >>confdefs.h
-
-      ;;
-  *-*-solaris2.[6789] | *-*-solaris2.1[0-9]*)
-
-$as_echo "#define NEW_PROC_API 1" >>confdefs.h
-
-      ;;
-  esac
-fi
-
 if test "$ac_cv_header_sys_procfs_h" = yes; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gregset_t in sys/procfs.h" >&5
 $as_echo_n "checking for gregset_t in sys/procfs.h... " >&6; }
@@ -14077,155 +14518,6 @@ fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_psaddr_t" >&5
 $as_echo "$bfd_cv_have_sys_procfs_type_psaddr_t" >&6; }
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for prsysent_t in sys/procfs.h" >&5
-$as_echo_n "checking for prsysent_t in sys/procfs.h... " >&6; }
- if test "${bfd_cv_have_sys_procfs_type_prsysent_t+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#define _SYSCALL32
-/* Needed for new procfs interface on sparc-solaris.  */
-#define _STRUCTURED_PROC 1
-#include <sys/procfs.h>
-int
-main ()
-{
-prsysent_t avar
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  bfd_cv_have_sys_procfs_type_prsysent_t=yes
-else
-  bfd_cv_have_sys_procfs_type_prsysent_t=no
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
- if test $bfd_cv_have_sys_procfs_type_prsysent_t = yes; then
-
-$as_echo "#define HAVE_PRSYSENT_T 1" >>confdefs.h
-
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_prsysent_t" >&5
-$as_echo "$bfd_cv_have_sys_procfs_type_prsysent_t" >&6; }
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pr_sigset_t in sys/procfs.h" >&5
-$as_echo_n "checking for pr_sigset_t in sys/procfs.h... " >&6; }
- if test "${bfd_cv_have_sys_procfs_type_pr_sigset_t+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#define _SYSCALL32
-/* Needed for new procfs interface on sparc-solaris.  */
-#define _STRUCTURED_PROC 1
-#include <sys/procfs.h>
-int
-main ()
-{
-pr_sigset_t avar
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  bfd_cv_have_sys_procfs_type_pr_sigset_t=yes
-else
-  bfd_cv_have_sys_procfs_type_pr_sigset_t=no
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
- if test $bfd_cv_have_sys_procfs_type_pr_sigset_t = yes; then
-
-$as_echo "#define HAVE_PR_SIGSET_T 1" >>confdefs.h
-
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_pr_sigset_t" >&5
-$as_echo "$bfd_cv_have_sys_procfs_type_pr_sigset_t" >&6; }
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pr_sigaction64_t in sys/procfs.h" >&5
-$as_echo_n "checking for pr_sigaction64_t in sys/procfs.h... " >&6; }
- if test "${bfd_cv_have_sys_procfs_type_pr_sigaction64_t+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#define _SYSCALL32
-/* Needed for new procfs interface on sparc-solaris.  */
-#define _STRUCTURED_PROC 1
-#include <sys/procfs.h>
-int
-main ()
-{
-pr_sigaction64_t avar
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  bfd_cv_have_sys_procfs_type_pr_sigaction64_t=yes
-else
-  bfd_cv_have_sys_procfs_type_pr_sigaction64_t=no
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
- if test $bfd_cv_have_sys_procfs_type_pr_sigaction64_t = yes; then
-
-$as_echo "#define HAVE_PR_SIGACTION64_T 1" >>confdefs.h
-
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_pr_sigaction64_t" >&5
-$as_echo "$bfd_cv_have_sys_procfs_type_pr_sigaction64_t" >&6; }
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pr_siginfo64_t in sys/procfs.h" >&5
-$as_echo_n "checking for pr_siginfo64_t in sys/procfs.h... " >&6; }
- if test "${bfd_cv_have_sys_procfs_type_pr_siginfo64_t+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#define _SYSCALL32
-/* Needed for new procfs interface on sparc-solaris.  */
-#define _STRUCTURED_PROC 1
-#include <sys/procfs.h>
-int
-main ()
-{
-pr_siginfo64_t avar
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  bfd_cv_have_sys_procfs_type_pr_siginfo64_t=yes
-else
-  bfd_cv_have_sys_procfs_type_pr_siginfo64_t=no
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
- if test $bfd_cv_have_sys_procfs_type_pr_siginfo64_t = yes; then
-
-$as_echo "#define HAVE_PR_SIGINFO64_T 1" >>confdefs.h
-
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_have_sys_procfs_type_pr_siginfo64_t" >&5
-$as_echo "$bfd_cv_have_sys_procfs_type_pr_siginfo64_t" >&6; }
-
-
 
 
 
@@ -14637,111 +14929,6 @@ fi
 
 if test ${build} = ${host} -a ${host} = ${target} ; then
    case ${host_os} in
-   solaris*)
-      # See if thread_db library is around for Solaris thread debugging.
-      # Note that we must explicitly test for version 1 of the library
-      # because version 0 (present on Solaris 2.4 or earlier) doesn't have
-      # the same API.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris thread debugging library" >&5
-$as_echo_n "checking for Solaris thread debugging library... " >&6; }
-      if test -f /usr/lib/libthread_db.so.1 ; then
-         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE_THREAD_DB_LIB 1" >>confdefs.h
-
-         CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
-         CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
-         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlopen=yes
-else
-  ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBDL 1
-_ACEOF
-
-  LIBS="-ldl $LIBS"
-
-fi
-
-	 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
-	 # Sun randomly tweaked the prototypes in <proc_service.h>
-	 # at one point.
-	 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if <proc_service.h> is old" >&5
-$as_echo_n "checking if <proc_service.h> is old... " >&6; }
-	 if test "${gdb_cv_proc_service_is_old+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-
-	    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-		#include <proc_service.h>
-		ps_err_e ps_pdwrite
-		    (struct ps_prochandle*, psaddr_t, const void*, size_t);
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gdb_cv_proc_service_is_old=no
-else
-  gdb_cv_proc_service_is_old=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-	 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_proc_service_is_old" >&5
-$as_echo "$gdb_cv_proc_service_is_old" >&6; }
-	 if test $gdb_cv_proc_service_is_old = yes; then
-
-$as_echo "#define PROC_SERVICE_IS_OLD 1" >>confdefs.h
-
-	 fi
-      else
-         { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-      fi
-      ;;
    aix*)
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AiX thread debugging library" >&5
 $as_echo_n "checking for AiX thread debugging library... " >&6; }
@@ -15108,12 +15295,20 @@ build_warnings="-Wall -Wpointer-arith \
 -Wno-unused -Wunused-value -Wunused-function \
 -Wno-switch -Wno-char-subscripts \
 -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable \
--Wno-sign-compare -Wno-narrowing"
+-Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized \
+-Wno-mismatched-tags"
 
-# Enable -Wno-format by default when using gcc on mingw since many
-# GCC versions complain about %I64.
 case "${host}" in
-  *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
+  *-*-mingw32*)
+    # Enable -Wno-format by default when using gcc on mingw since many
+    # GCC versions complain about %I64.
+    build_warnings="$build_warnings -Wno-format" ;;
+  *-*-solaris*)
+    # Solaris 11.4 <python2.7/ceval.h> uses #pragma no_inline that GCC
+    # doesn't understand.
+    build_warnings="$build_warnings -Wno-unknown-pragmas"
+    # Solaris 11 <unistd.h> marks vfork deprecated.
+    build_warnings="$build_warnings -Wno-deprecated-declarations" ;;
   *) build_warnings="$build_warnings -Wformat-nonliteral" ;;
 esac
 
@@ -15179,9 +15374,9 @@ then
 	*)
 	    # Check whether GCC accepts it.
 	    saved_CFLAGS="$CFLAGS"
-	    CFLAGS="$CFLAGS $wtest"
+	    CFLAGS="$CFLAGS -Werror $wtest"
 	    saved_CXXFLAGS="$CXXFLAGS"
-	    CXXFLAGS="$CXXFLAGS $wtest"
+	    CXXFLAGS="$CXXFLAGS -Werror $wtest"
 	    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -16724,27 +16919,21 @@ if test "${host}" != "${target}"; then
 fi
 
 
-frags=
+# Import nat definitions.
+nat_makefile_frag=/dev/null
 if test "${gdb_native}" = "yes"; then
-  host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
-  if test ! -f ${host_makefile_frag}; then
-    as_fn_error "\"*** Gdb does not support native target ${host}\"" "$LINENO" 5
-  fi
-  frags="$frags $host_makefile_frag"
-else
-  host_makefile_frag=/dev/null
+  . ${srcdir}/configure.nat
+  nativefile=$NAT_FILE
 fi
 
 
 
 
-if test "${gdb_native}" = "yes"; then
-# We pick this up from the host configuration file (.mh) because we
-# do not have a native configuration Makefile fragment.
-nativefile=`sed -n '
-s/NAT_FILE[ 	]*=[ 	]*\([^ 	]*\)/\1/p
-' ${host_makefile_frag}`
-fi
+
+
+
+
+
 
 
 if test x"${gdb_osabi}" != x ; then
@@ -17315,8 +17504,8 @@ fi
   fi
 fi
 
-# If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
-# to an empty version.
+# If nativefile (NAT_FILE) is not set in configure.nat, we link to an
+# empty version.
 
 files=
 links=
@@ -17410,8 +17599,8 @@ if $development; then
 
 $as_echo "#define GDB_SELF_TEST 1" >>confdefs.h
 
-  CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS)"
-  CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS)"
+  CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS) selftest.o selftest-arch.o"
+  CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS) common/selftest.c selftest-arch.c"
 fi
 
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/configure.ac ./gdb/configure.ac
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/configure.ac	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/configure.ac	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 dnl Autoconf configure script for GDB, the GNU debugger.
-dnl Copyright (C) 1995-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 1995-2018 Free Software Foundation, Inc.
 dnl
 dnl This file is part of GDB.
 dnl
@@ -508,13 +508,6 @@ esac
 # We might need to link with -lm; most simulators need it.
 AC_CHECK_LIB(m, main)
 
-# We need to link with -lw to get `wctype' on Solaris before Solaris
-# 2.6.  Solaris 2.6 and beyond have this function in libc, and have a
-# libw that some versions of the GNU linker cannot hanle (GNU ld 2.9.1
-# is known to have this problem).  Therefore we avoid libw if we can.
-AC_CHECK_FUNC(wctype, [],
-  [AC_CHECK_LIB(w, wctype)])
-
 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
 AC_SEARCH_LIBS(gethostbyname, nsl)
 
@@ -569,7 +562,7 @@ if test x"$prefer_curses" = xyes; then
   # search /usr/local/include, if ncurses is installed in /usr/local.  A
   # default installation of ncurses on alpha*-dec-osf* will lead to such
   # a situation.
-  AC_SEARCH_LIBS(waddstr, [ncurses cursesX curses])
+  AC_SEARCH_LIBS(waddstr, [ncursesw ncurses cursesX curses])
 
   if test "$ac_cv_search_waddstr" != no; then
     curses_found=yes
@@ -611,7 +604,7 @@ case $host_os in
 esac
 
 # These are the libraries checked by Readline.
-AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses])
+AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncursesw ncurses])
 
 if test "$ac_cv_search_tgetent" = no; then
   CONFIG_OBS="$CONFIG_OBS stub-termcap.o"
@@ -691,6 +684,28 @@ else
   fi
 fi
 
+AC_ARG_WITH(mpfr,
+  AS_HELP_STRING([--with-mpfr], [include MPFR support (auto/yes/no)]),
+  [], [with_mpfr=auto])
+AC_MSG_CHECKING([whether to use MPFR])
+AC_MSG_RESULT([$with_mpfr])
+
+if test "${with_mpfr}" = no; then
+  AC_MSG_WARN([MPFR support disabled; some features may be unavailable.])
+  HAVE_LIBMPFR=no
+else
+  AC_LIB_HAVE_LINKFLAGS([mpfr], [], [#include <mpfr.h>],
+			[mpfr_exp_t exp; mpfr_t x;
+			 mpfr_frexp (&exp, x, x, MPFR_RNDN);])
+  if test "$HAVE_LIBMPFR" != yes; then
+    if test "$with_mpfr" = yes; then
+      AC_MSG_ERROR([MPFR is missing or unusable])
+    else
+      AC_MSG_WARN([MPFR is missing or unusable; some features may be unavailable.])
+    fi
+  fi
+fi
+
 # --------------------- #
 # Check for libpython.  #
 # --------------------- #
@@ -1012,7 +1027,7 @@ if test "${have_libpython}" != no; then
 else
   # Even if Python support is not compiled in, we need to have this file
   # included so that the "python" command, et.al., still exists.
-  CONFIG_OBS="$CONFIG_OBS python.o"
+  CONFIG_OBS="$CONFIG_OBS python/python.o"
   CONFIG_SRCS="$CONFIG_SRCS python/python.c"
 fi
 
@@ -1134,7 +1149,7 @@ AC_MSG_RESULT([$with_guile])
 dnl We check guile with pkg-config.
 AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing)
 
-try_guile_versions="guile-2.2 guile-2.0"
+try_guile_versions="guile-2.0"
 have_libguile=no
 case "${with_guile}" in
 no)
@@ -1212,7 +1227,7 @@ if test "${have_libguile}" != no; then
 else
   # Even if Guile support is not compiled in, we need to have these files
   # included.
-  CONFIG_OBS="$CONFIG_OBS guile.o"
+  CONFIG_OBS="$CONFIG_OBS guile/guile.o"
   CONFIG_SRCS="$CONFIG_SRCS guile/guile.c"
 fi
 AC_SUBST(GUILE_CPPFLAGS)
@@ -1272,6 +1287,13 @@ else
     else
       AC_MSG_WARN([libipt is missing or unusable; some features may be unavailable.])
     fi
+  else
+    save_LIBS=$LIBS
+    LIBS="$LIBS $LIBIPT"
+    AC_CHECK_FUNCS(pt_insn_event)
+    AC_CHECK_MEMBERS([struct pt_insn.enabled, struct pt_insn.resynced], [], [],
+                     [#include <intel-pt.h>])
+    LIBS=$save_LIBS
   fi
 fi
 
@@ -1283,36 +1305,18 @@ AC_HEADER_STDC
 # elf_hp.h is for HP/UX 64-bit shared library support.
 AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.h \
                   thread_db.h \
-		  sys/fault.h \
 		  sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
 		  sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
-		  sys/reg.h sys/debugreg.h sys/select.h sys/syscall.h \
-		  termios.h termio.h \
-		  sgtty.h elf_hp.h \
+		  sys/reg.h sys/debugreg.h sys/select.h \
+		  termios.h elf_hp.h \
 		  dlfcn.h])
-AC_CHECK_HEADERS(sys/proc.h, [], [],
-[#if HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-])
 AC_CHECK_HEADERS(sys/user.h, [], [],
 [#if HAVE_SYS_PARAM_H
 # include <sys/param.h>
 #endif
 ])
 
-# On Solaris 2.[789], we need to define _MSE_INT_H to avoid a clash
-# between <widec.h> and <wchar.h> that would cause AC_CHECK_HEADERS to
-# think that we don't have <curses.h> if we're using GCC.
-case $host_os in
-  solaris2.[[789]])
-    if test "$GCC" = yes; then
-      AC_DEFINE(_MSE_INT_H, 1,
-        [Define to 1 to avoid a clash between <widec.h> and <wchar.h> on
-   Solaris 2.[789] when using GCC. ])
-    fi ;;
-esac
-AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncurses/ncurses.h ncurses/term.h)
+AC_CHECK_HEADERS(curses.h cursesX.h ncurses.h ncursesw/ncurses.h ncurses/ncurses.h ncurses/term.h)
 AC_CHECK_HEADERS(term.h, [], [],
 [#if HAVE_CURSES_H
 # include <curses.h>
@@ -1427,6 +1431,7 @@ AC_CHECK_MEMBERS([struct thread.td_pcb],
 # See if <sys/lwp.h> defines `struct lwp`.
 AC_CACHE_CHECK([for struct lwp], gdb_cv_struct_lwp,
 [AC_TRY_COMPILE([#include <sys/param.h>
+#define _KMEMUSER
 #include <sys/lwp.h>], [struct lwp l;],
 gdb_cv_struct_lwp=yes, gdb_cv_struct_lwp=no)])
 if test $gdb_cv_struct_lwp = yes; then
@@ -1522,21 +1527,6 @@ AC_CHECK_MEMBERS([struct ptrace_lwpinfo.
 AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_syscall_code], [], [],
                  [#include <sys/ptrace.h>])
 
-# Detect which type of /proc is in use, such as for Solaris.
-
-if test "${target}" = "${host}"; then
-  case "${host}" in
-  *-*-sysv4.2* | *-*-sysv5* )
-      AC_DEFINE(NEW_PROC_API, 1,
-      [Define if you want to use new multi-fd /proc interface.])
-      ;;
-  *-*-solaris2.[[6789]] | *-*-solaris2.1[[0-9]]*)
-      AC_DEFINE(NEW_PROC_API, 1,
-      [Define if you want to use new multi-fd /proc interface.])
-      ;;
-  esac
-fi
-
 if test "$ac_cv_header_sys_procfs_h" = yes; then
   BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)
   BFD_HAVE_SYS_PROCFS_TYPE(fpregset_t)
@@ -1545,11 +1535,6 @@ if test "$ac_cv_header_sys_procfs_h" = y
   BFD_HAVE_SYS_PROCFS_TYPE(prgregset32_t)
   BFD_HAVE_SYS_PROCFS_TYPE(lwpid_t)
   BFD_HAVE_SYS_PROCFS_TYPE(psaddr_t)
-  BFD_HAVE_SYS_PROCFS_TYPE(prsysent_t)
-  BFD_HAVE_SYS_PROCFS_TYPE(pr_sigset_t)
-  BFD_HAVE_SYS_PROCFS_TYPE(pr_sigaction64_t)
-  BFD_HAVE_SYS_PROCFS_TYPE(pr_siginfo64_t)
-
 
   dnl Check for broken prfpregset_t type
 
@@ -1761,41 +1746,6 @@ dnl and not doing a canadian cross build
 
 if test ${build} = ${host} -a ${host} = ${target} ; then
    case ${host_os} in
-   solaris*)
-      # See if thread_db library is around for Solaris thread debugging.
-      # Note that we must explicitly test for version 1 of the library
-      # because version 0 (present on Solaris 2.4 or earlier) doesn't have
-      # the same API.
-      AC_MSG_CHECKING(for Solaris thread debugging library)
-      if test -f /usr/lib/libthread_db.so.1 ; then
-         AC_MSG_RESULT(yes)
-         AC_DEFINE(HAVE_THREAD_DB_LIB, 1,
-         [Define if using Solaris thread debugging.])
-         CONFIG_OBS="${CONFIG_OBS} sol-thread.o"
-         CONFIG_SRCS="${CONFIG_SRCS} sol-thread.c"
-         AC_CHECK_LIB(dl, dlopen)
-	 CONFIG_LDFLAGS="${CONFIG_LDFLAGS} $RDYNAMIC"
-	 # Sun randomly tweaked the prototypes in <proc_service.h>
-	 # at one point.
-	 AC_MSG_CHECKING(if <proc_service.h> is old)
-	 AC_CACHE_VAL(gdb_cv_proc_service_is_old,[
-	    AC_TRY_COMPILE([
-		#include <proc_service.h>
-		ps_err_e ps_pdwrite
-		    (struct ps_prochandle*, psaddr_t, const void*, size_t);
-	    ],, gdb_cv_proc_service_is_old=no,
-	        gdb_cv_proc_service_is_old=yes)
-	 ])
-	 AC_MSG_RESULT($gdb_cv_proc_service_is_old)
-	 if test $gdb_cv_proc_service_is_old = yes; then
-	    AC_DEFINE(PROC_SERVICE_IS_OLD, 1,
-            [Define if <proc_service.h> on solaris uses int instead of
-             size_t, and assorted other type changes.])
-	 fi
-      else
-         AC_MSG_RESULT(no)
-      fi
-      ;;
    aix*)
       AC_MSG_CHECKING(for AiX thread debugging library)
       AC_CACHE_VAL(gdb_cv_have_aix_thread_debug,
@@ -2199,29 +2149,22 @@ if test "${host}" != "${target}"; then
 fi
 AC_SUBST(target_subdir)
 
-frags=
+# Import nat definitions.
+nat_makefile_frag=/dev/null
 if test "${gdb_native}" = "yes"; then
-  host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
-  if test ! -f ${host_makefile_frag}; then
-    AC_MSG_ERROR("*** Gdb does not support native target ${host}")
-  fi
-  frags="$frags $host_makefile_frag"
-else
-  host_makefile_frag=/dev/null
+  . ${srcdir}/configure.nat
+  nativefile=$NAT_FILE
 fi
 
-AC_SUBST_FILE(host_makefile_frag)
-AC_SUBST(frags)
-
-changequote(,)dnl
-if test "${gdb_native}" = "yes"; then
-# We pick this up from the host configuration file (.mh) because we
-# do not have a native configuration Makefile fragment.
-nativefile=`sed -n '
-s/NAT_FILE[ 	]*=[ 	]*\([^ 	]*\)/\1/p
-' ${host_makefile_frag}`
-fi
-changequote([,])
+AC_SUBST(NAT_FILE)
+AC_SUBST(NATDEPFILES)
+AC_SUBST(NAT_CDEPS)
+AC_SUBST(LOADLIBES)
+AC_SUBST(MH_CFLAGS)
+AC_SUBST(XM_CLIBS)
+AC_SUBST(NAT_GENERATED_FILES)
+AC_SUBST(HAVE_NATIVE_GCORE_HOST)
+AC_SUBST_FILE(nat_makefile_frag)
 
 if test x"${gdb_osabi}" != x ; then
     AC_DEFINE_UNQUOTED(GDB_OSABI_DEFAULT, $gdb_osabi,
@@ -2310,8 +2253,8 @@ else
   fi
 fi
 
-# If nativefile (NAT_FILE) is not set in config/*/*.m[ht] files, we link
-# to an empty version.
+# If nativefile (NAT_FILE) is not set in configure.nat, we link to an
+# empty version.
 
 files=
 links=
@@ -2350,8 +2293,8 @@ AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF
 if $development; then
   AC_DEFINE(GDB_SELF_TEST, 1,
             [Define if self-testing features should be enabled])
-  CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS)"
-  CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS)"
+  CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS) selftest.o selftest-arch.o"
+  CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS) common/selftest.c selftest-arch.c"
 fi
 
 GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/configure.host ./gdb/configure.host
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/configure.host	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/configure.host	2018-01-09 02:04:57.000000000 +0000
@@ -20,6 +20,7 @@ case $host in
  vax-*-netbsdelf*)
     ;;
  *-*-irix* | \
+ *-*-solaris2.[01] | *-*-solaris2.[2-9]* | \
  alpha*-*-osf* | \
  alpha*-*-freebsd* | \
  alpha*-*-kfreebsd*-gnu | \
@@ -84,12 +85,14 @@ case "${host}" in
 *-*-darwin*)		gdb_host=darwin ;;
 
 aarch64*-*-linux*)	gdb_host=linux ;;
+aarch64*-*-freebsd*)	gdb_host=fbsd ;;
 
 alpha*-*-linux*)	gdb_host=alpha-linux ;;
 alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu)
 			gdb_host=nbsd ;;
 alpha*-*-openbsd*)	gdb_host=nbsd ;;
 
+arm*-*-freebsd*)	gdb_host=fbsd ;;
 arm*-*-linux*)		gdb_host=linux ;;
 arm*-*-netbsdelf* | arm*-*-knetbsd*-gnu)
 			gdb_host=nbsdelf ;;
@@ -112,9 +115,8 @@ i[34567]86-*-linux*)	gdb_host=linux ;;
 i[34567]86-*-gnu*)	gdb_host=i386gnu ;;
 i[3456]86-*-nto*) 	gdb_host=nto ;;
 i[34567]86-*-openbsd*)	gdb_host=obsd ;;
-i[34567]86-*-solaris2.1[0-9]* | x86_64-*-solaris2.1[0-9]*)
-			gdb_host=sol2-64 ;;
-i[34567]86-*-solaris*)	gdb_host=i386sol2 ;;
+i[34567]86-*-solaris2* | x86_64-*-solaris2*)
+			gdb_host=sol2 ;;
 i[34567]86-*-cygwin*)	gdb_host=cygwin ;;
 
 ia64-*-linux*)		gdb_host=linux ;;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/configure.nat ./gdb/configure.nat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/configure.nat	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/configure.nat	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,492 @@
+# ; -*- mode: sh ; -*-
+# Copyright (C) 2013-2018 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/>.
+
+# Variables defined here:
+#
+# NAT_FILE - The header file with definitions for this native target.
+#
+# NATDEPFILES - Source files required for native debugging on this
+#               native target.
+#
+# NAT_CDEPS - Dynamic symbols to be exported for libthread_db.
+#
+# LOADLIBES - Libraries against which GDB will be linked for this
+#             native target.
+#
+# MH_CFLAGS - Additional CFLAGS for this host.
+#
+# XM_CLIBS - Host-dependent libraries against which GDB will be linked
+#            for this native target.
+#
+# HAVE_NATIVE_GCORE_HOST - Whether gcore should be installed on this
+#                          native target.
+#
+# nat_makefile_frag - Name of the (optional) Makefile fragment file
+#                     required to build the native target.  The
+#                     fragment is incorporated into the Makefile that
+#                     configure constructs from Makefile.in.
+#
+# Notes:
+#
+# - To avoid shell expansion of variables, declare them with single
+#   quotes.
+#
+# - nat_makefile_frag must contain the full path of the file.
+
+
+# This first case is useful for filling default values for each
+# gdb_host.
+case ${gdb_host} in
+    *linux*)
+	NAT_FILE='config/nm-linux.h'
+	NATDEPFILES='inf-ptrace.o fork-child.o fork-inferior.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-personality.o linux-namespaces.o'
+	NAT_CDEPS='$(srcdir)/proc-service.list'
+	LOADLIBES='-ldl $(RDYNAMIC)'
+	;;
+    fbsd*)
+	NATDEPFILES='fork-child.o fork-inferior.o inf-ptrace.o fbsd-nat.o'
+	HAVE_NATIVE_GCORE_HOST=1
+	LOADLIBES='-lkvm'
+	;;
+    nbsd*)
+	NATDEPFILES='fork-child.o fork-inferior.o inf-ptrace.o'
+	HAVE_NATIVE_GCORE_HOST=1
+	;;
+    obsd*)
+	NATDEPFILES='fork-child.o fork-inferior.o inf-ptrace.o'
+	;;
+    cygwin*)
+	NATDEPFILES='x86-nat.o x86-dregs.o windows-nat.o'
+	;;
+    mingw*)
+	NATDEPFILES='x86-nat.o x86-dregs.o windows-nat.o'
+	;;
+    aix)
+	NATDEPFILES='fork-inferior.o fork-child.o inf-ptrace.o'
+	;;
+    darwin)
+	NATDEPFILES='fork-child.o fork-inferior.o darwin-nat.o \
+	    darwin-nat-info.o'
+	;;
+    sol2)
+	NATDEPFILES='fork-child.o fork-inferior.o \
+	    procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o \
+	    sol-thread.o'
+	HAVE_NATIVE_GCORE_HOST=1
+        ;;
+esac
+
+# This is where we actually filter by host and host CPU.
+case ${gdb_host} in
+    aix)
+	case ${gdb_host_cpu} in
+	    powerpc)
+		# Host: IBM PowerPC running AIX aix-thread.o is not
+		# listed in NATDEPFILES as it is pulled in by
+		# configure.
+		NATDEPFILES="${NATDEPFILES} rs6000-nat.o"
+
+		# When compiled with cc, for debugging, this argument
+		# should be passed.  We have no idea who our current
+		# compiler is though, so we skip it.
+		# MH_CFLAGS='-bnodelcsect'
+		;;
+	esac
+	;;
+    alpha-linux)
+	case ${gdb_host_cpu} in
+	    alpha)
+		# Host: Little-endian Alpha running Linux
+		NATDEPFILES="${NATDEPFILES} alpha-linux-nat.o"
+		# doublest.c currently assumes some properties of FP arithmetic
+		# on the host which require this.
+		MH_CFLAGS='-mieee'
+		;;
+	esac
+	;;
+    cygwin)
+	case ${gdb_host_cpu} in
+	    i386)
+		# Native config information for GDB on i386
+		# systems running Cygwin.
+		NATDEPFILES="${NATDEPFILES} i386-windows-nat.o"
+		;;
+	esac
+	;;
+    cygwin64)
+	case ${gdb_host_cpu} in
+	    i386)
+		# Native config information for GDB on amd64
+		# systems running Cygwin.
+		NATDEPFILES="${NATDEPFILES} amd64-windows-nat.o"
+		;;
+	esac
+	;;
+    darwin)
+	case ${gdb_host_cpu} in
+	    i386)
+		# Host: IA86 running Darwin
+		NATDEPFILES="${NATDEPFILES} i386-darwin-nat.o x86-nat.o \
+		    x86-dregs.o amd64-nat.o"
+		;;
+	esac
+	;;
+    fbsd)
+	case ${gdb_host_cpu} in
+	    aarch64)
+		# Host: FreeBSD/aarch64
+		NATDEPFILES="${NATDEPFILES} aarch64-fbsd-nat.o"
+		LOADLIBES=
+		;;
+	    arm)
+		# Host: FreeBSD/arm
+		NATDEPFILES="${NATDEPFILES} arm-fbsd-nat.o"
+		LOADLIBES=
+		;;
+	    i386)
+		# Host: FreeBSD/i386
+		NATDEPFILES="${NATDEPFILES} x86-nat.o x86-dregs.o \
+		x86-bsd-nat.o i386-bsd-nat.o i386-fbsd-nat.o bsd-kvm.o"
+		NAT_FILE='nm-fbsd.h'
+		;;
+	    mips)
+		# Host: FreeBSD/mips
+		NATDEPFILES="${NATDEPFILES} mips-fbsd-nat.o"
+		LOADLIBES=
+		;;
+	    powerpc)
+		# Native config information for GDB on PowerPC
+		# systems running FreeBSD.
+		NATDEPFILES="${NATDEPFILES} ppc-fbsd-nat.o bsd-kvm.o"
+		;;
+	    sparc)
+		# Host: FreeBSD/sparc64
+		NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc64-nat.o \
+		sparc64-fbsd-nat.o bsd-kvm.o"
+		;;
+	esac
+	;;
+    fbsd64)
+	case ${gdb_host_cpu} in
+	    i386)
+		# Host: FreeBSD/amd64
+		NATDEPFILES="${NATDEPFILES} amd64-nat.o amd64-bsd-nat.o \
+		amd64-fbsd-nat.o bsd-kvm.o x86-nat.o x86-dregs.o x86-bsd-nat.o"
+		;;
+	esac
+	;;
+    go32)
+	case ${gdb_host_cpu} in
+	    i386)
+		# Host: Intel x86 running DJGPP
+		# We include several header files from config/djgpp
+		MH_CFLAGS='-I$(srcdir)/config/djgpp'
+		NATDEPFILES='go32-nat.o x86-nat.o x86-dregs.o'
+		XM_CLIBS='-ldbg'
+		;;
+	esac
+	;;
+    i386gnu)
+	case ${gdb_host_cpu} in
+	    i386)
+		# Host: Intel 386 running the GNU Hurd
+		NATDEPFILES='i386-gnu-nat.o gnu-nat.o \
+		     x86-nat.o x86-dregs.o fork-child.o \
+		     notify_S.o process_reply_S.o msg_reply_S.o \
+		     msg_U.o exc_request_U.o exc_request_S.o'
+		HAVE_NATIVE_GCORE_HOST=1
+
+		NAT_FILE='nm-i386gnu.h'
+		MH_CFLAGS='-D_GNU_SOURCE'
+
+		XM_CLIBS='-lshouldbeinlibc'
+
+		nat_makefile_frag="${srcdir}/config/${gdb_host_cpu}/i386gnu.mn"
+		;;
+	esac
+	;;
+    linux)
+	case ${gdb_host_cpu} in
+	    aarch64)
+		#  Host: AArch64 based machine running GNU/Linux
+		NATDEPFILES="${NATDEPFILES} aarch64-linux-nat.o \
+		aarch32-linux-nat.o aarch64-linux-hw-point.o aarch64-linux.o"
+		;;
+	    arm)
+		# Host: ARM based machine running GNU/Linux
+		NATDEPFILES="${NATDEPFILES} arm-linux-nat.o \
+		aarch32-linux-nat.o"
+		;;
+	    i386)
+		# Host: Intel 386 running GNU/Linux.
+		NATDEPFILES="${NATDEPFILES} x86-nat.o x86-dregs.o \
+		i386-linux-nat.o x86-linux-nat.o linux-btrace.o \
+		x86-linux.o x86-linux-dregs.o"
+		;;
+	    ia64)
+		# Host: Intel IA-64 running GNU/Linux
+		NATDEPFILES="${NATDEPFILES} ia64-linux-nat.o"
+		;;
+	    m32r)
+		# Host: M32R based machine running GNU/Linux
+		NATDEPFILES="${NATDEPFILES} m32r-linux-nat.o"
+		;;
+	    m68k)
+		# Host: Motorola m68k running GNU/Linux.
+		NATDEPFILES="${NATDEPFILES} m68k-linux-nat.o"
+		;;
+	    mips)
+		# Host: Linux/MIPS
+		NATDEPFILES="${NATDEPFILES} mips-linux-nat.o \
+		mips-linux-watch.o"
+		;;
+	    pa)
+		# Host: Hewlett-Packard PA-RISC machine, running Linux
+		NATDEPFILES="${NATDEPFILES} hppa-linux-nat.o"
+		;;
+	    powerpc)
+		# Host: PowerPC, running Linux
+		NATDEPFILES="${NATDEPFILES} ppc-linux-nat.o"
+		;;
+	    s390)
+		# Host: S390, running Linux
+		NATDEPFILES="${NATDEPFILES} s390-linux-nat.o"
+		;;
+	    sparc)
+		# Host: GNU/Linux SPARC
+		NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc-linux-nat.o"
+		;;
+	    tilegx)
+		# Host: Tilera TILE-Gx running GNU/Linux.
+		NATDEPFILES="${NATDEPFILES} tilegx-linux-nat.o"
+		NAT_CDEPS=
+		;;
+	    xtensa)
+		# Host: Xtensa, running GNU/Linux.
+		NATDEPFILES="${NATDEPFILES} xtensa-linux-nat.o"
+		;;
+	esac
+	;;
+    linux64)
+	case ${gdb_host_cpu} in
+	    i386)
+		# Host: GNU/Linux x86-64
+		NATDEPFILES="${NATDEPFILES} x86-nat.o x86-dregs.o \
+		amd64-nat.o amd64-linux-nat.o x86-linux-nat.o linux-btrace.o \
+		x86-linux.o x86-linux-dregs.o amd64-linux-siginfo.o"
+		;;
+	    sparc)
+		# Host: GNU/Linux UltraSPARC
+		NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc64-nat.o \
+		sparc64-linux-nat.o"
+		;;
+	esac
+	;;
+    mingw)
+	case ${gdb_host_cpu} in
+	    i386)
+		NATDEPFILES="${NATDEPFILES} i386-windows-nat.o"
+		;;
+	esac
+	;;
+    mingw64)
+	case ${gdb_host_cpu} in
+	    i386)
+		NATDEPFILES="${NATDEPFILES} amd64-windows-nat.o"
+		;;
+	esac
+	;;
+    nbsd)
+	case ${gdb_host_cpu} in
+	    alpha)
+		# Host: NetBSD/alpha
+		NATDEPFILES="${NATDEPFILES} alpha-bsd-nat.o bsd-kvm.o"
+		LOADLIBES='-lkvm'
+		;;
+	    mips)
+		# Host: NetBSD/mips
+		NATDEPFILES="${NATDEPFILES} mips-nbsd-nat.o"
+		;;
+	    pa)
+		# Host: NetBSD/hppa
+		NATDEPFILES="${NATDEPFILES} nbsd-nat.o hppa-nbsd-nat.o"
+		;;
+	    powerpc)
+		# Host: NetBSD/powerpc
+		NATDEPFILES="${NATDEPFILES} ppc-nbsd-nat.o bsd-kvm.o"
+		LOADLIBES='-lkvm'
+		;;
+	    sh)
+		# Host: NetBSD/sh
+		NATDEPFILES="${NATDEPFILES} sh-nbsd-nat.o"
+		;;
+
+	esac
+	;;
+    nbsd64)
+	case ${gdb_host_cpu} in
+	    i386)
+		# Host: NetBSD/amd64
+		NATDEPFILES="${NATDEPFILES} nbsd-nat.o amd64-nat.o x86-nat.o \
+		x86-dregs.o x86-bsd-nat.o amd64-bsd-nat.o amd64-nbsd-nat.o"
+		;;
+	    sparc)
+		# Host: NetBSD/sparc64
+		NATDEPFILES="${NATDEPFILES} sparc64-nbsd-nat.o sparc-nat.o \
+		bsd-kvm.o"
+		LOADLIBES='-lkvm'
+		;;
+
+	esac
+	;;
+    nbsdelf)
+	case ${gdb_host_cpu} in
+	    arm)
+		# Host: NetBSD/arm
+		NATDEPFILES="${NATDEPFILES} arm-nbsd-nat.o"
+		;;
+	    i386)
+		# Host: NetBSD/i386 ELF
+		NATDEPFILES="${NATDEPFILES} nbsd-nat.o x86-nat.o x86-dregs.o \
+		x86-bsd-nat.o i386-bsd-nat.o i386-nbsd-nat.o bsd-kvm.o"
+		LOADLIBES='-lkvm'
+		;;
+	    m68k)
+		# Host: NetBSD/m68k ELF
+		NATDEPFILES="${NATDEPFILES} m68k-bsd-nat.o bsd-kvm.o"
+		LOADLIBES='-lkvm'
+		;;
+	    sparc)
+		# Host: NetBSD/sparc ELF
+		NATDEPFILES="${NATDEPFILES} sparc-nat.o sparc-nbsd-nat.o \
+		bsd-kvm.o"
+		LOADLIBES='-lkvm'
+		;;
+	    vax)
+		# Host: NetBSD/vax ELF
+		NATDEPFILES="${NATDEPFILES} vax-bsd-nat.o bsd-kvm.o"
+		LOADLIBES='-lkvm'
+		;;
+
+	esac
+	;;
+    nto)
+	case ${gdb_host_cpu} in
+	    i386)
+		# Host: Intel 386 running QNX.
+		NATDEPFILES='nto-procfs.o'
+		NAT_FILE='config/nm-nto.h'
+		;;
+	esac
+	;;
+    obsd)
+	case ${gdb_host_cpu} in
+	    i386)
+		# Host: OpenBSD/i386 ELF
+		NATDEPFILES="${NATDEPFILES} obsd-nat.o x86-bsd-nat.o \
+		i386-bsd-nat.o i386-obsd-nat.o bsd-kvm.o"
+		LOADLIBES='-lkvm'
+		;;
+	    m68k)
+		# Host: OpenBSD/m68k
+		NATDEPFILES="${NATDEPFILES} m68k-bsd-nat.o bsd-kvm.o"
+		LOADLIBES='-lkvm'
+		;;
+	    m88k)
+		# Host: OpenBSD/m88k
+		NATDEPFILES="${NATDEPFILES} m88k-bsd-nat.o"
+		;;
+	    pa)
+		# Host: OpenBSD/hppa
+		NATDEPFILES="${NATDEPFILES} obsd-nat.o hppa-obsd-nat.o"
+		;;
+	    powerpc)
+		# Host: OpenBSD/powerpc
+		NATDEPFILES="${NATDEPFILES} obsd-nat.o ppc-obsd-nat.o bsd-kvm.o"
+		LOADLIBES='-lkvm'
+		;;
+	    vax)
+		# Host: OpenBSD/vax
+		NATDEPFILES="${NATDEPFILES} vax-bsd-nat.o bsd-kvm.o"
+		LOADLIBES='-lkvm'
+		;;
+	esac
+	;;
+    obsd64)
+	case ${gdb_host_cpu} in
+	    i386)
+		# Host: OpenBSD/amd64
+		NATDEPFILES="${NATDEPFILES} obsd-nat.o amd64-nat.o \
+		x86-bsd-nat.o amd64-bsd-nat.o amd64-obsd-nat.o bsd-kvm.o"
+		LOADLIBES='-lkvm'
+		;;
+	    mips)
+		# Host: OpenBSD/mips64
+		NATDEPFILES="${NATDEPFILES} obsd-nat.o mips64-obsd-nat.o"
+		;;
+	    sparc)
+		# Host: OpenBSD/sparc64
+		NATDEPFILES="${NATDEPFILES} obsd-nat.o sparc64-obsd-nat.o \
+		sparc-nat.o bsd-kvm.o"
+		LOADLIBES='-lkvm'
+		;;
+	esac
+	;;
+    ppc64-linux)
+	case ${gdb_host_cpu} in
+	    powerpc)
+		# Host: PowerPC64, running Linux
+		XM_CLIBS=
+		NATDEPFILES="${NATDEPFILES} ppc-linux-nat.o ppc-linux.o"
+		;;
+	esac
+	;;
+    sol2)
+	case ${gdb_host_cpu} in
+	    i386)
+		# Host: Solaris x86_64
+		NATDEPFILES="${NATDEPFILES} \
+		amd64-nat.o i386-v4-nat.o i386-sol2-nat.o"
+		;;
+	    sparc)
+		# Host: Solaris SPARC & UltraSPARC
+		NAT_FILE='nm-sol2.h'
+		NATDEPFILES="${NATDEPFILES} sparc-sol2-nat.o"
+		;;
+	esac
+	;;
+    spu-linux)
+	case ${gdb_host_cpu} in
+	    powerpc)
+		# Target: Cell BE (PowerPC64 + SPU)
+		# This implements a 'pseudo-native' GDB running on the
+		# PPU side of the Cell BE and debugging the SPU side.
+		NAT_FILE=
+		NAT_CDEPS=
+		LOADLIBES=
+		NATDEPFILES='spu-linux-nat.o \
+		      inf-ptrace.o fork-child.o fork-inferior.o \
+		      linux-procfs.o linux-ptrace.o linux-waitpid.o \
+		      linux-personality.o linux-namespaces.o'
+		;;
+	esac
+	;;
+esac
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/configure.tgt ./gdb/configure.tgt
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/configure.tgt	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/configure.tgt	2018-01-09 02:04:57.000000000 +0000
@@ -36,19 +36,87 @@ case $targ in
     ;;
 esac
 
-# map target info into gdb names.
+i386_tobjs="i386-tdep.o arch/i386.o i387-tdep.o"
+amd64_tobjs="amd64-tdep.o arch/amd64.o"
+
+# Here are three sections to get a list of target specific object
+# files according to target triplet $TARG.
+
+# 1. Get the objects per cpu in $TARG.
+
+case "${targ}" in
+aarch64*-*-*)
+	cpu_obs="aarch64-tdep.o arch/aarch64-insn.o arch/aarch64.o";;
+
+alpha*-*-*)
+	# Target: Alpha
+	cpu_obs="alpha-tdep.o"
+	;;
+
+arc*-*-*)
+	# Target: Unidentified ARC target
+	cpu_obs="arc-tdep.o"
+	;;
+
+arm*-*-*)
+	cpu_obs="arch/arm.o arch/arm-get-next-pcs.o arm-tdep.o";;
+
+hppa*-*-*)
+	# Target: HP PA-RISC
+	cpu_obs="hppa-tdep.o"
+	;;
+
+i[34567]86-*-*)
+	cpu_obs="${i386_tobjs}"
+	if test "x$enable_64_bit_bfd" = "xyes"; then
+	   cpu_obs="${amd64_tobjs} ${cpu_obs}"
+	fi
+	;;
+
+ia64*-*-*)
+	# Target: Intel IA-64
+	cpu_obs="ia64-tdep.o"
+	;;
+
+x86_64-*-*)
+	cpu_obs="${i386_tobjs} ${amd64_tobjs}";;
+
+xtensa*)
+	# Target: Tensilica Xtensa processors
+	cpu_obs="xtensa-tdep.o xtensa-config.o solib-svr4.o"
+	;;
+
+esac
+
+# 2. Get the objects per os in $TARG.
+
+case "${targ}" in
+*-*-freebsd* | *-*-kfreebsd*-gnu)
+	os_obs="fbsd-tdep.o solib-svr4.o";;
+*-*-netbsd* | *-*-knetbsd*-gnu)
+	os_obs="nbsd-tdep.o solib-svr4.o";;
+*-*-openbsd*)
+	os_obs="obsd-tdep.o solib-svr4.o";;
+esac
+
+# 3. Get the rest of objects.
 
 case "${targ}" in
 aarch64*-*-elf | aarch64*-*-rtems*)
 	# Target: AArch64 embedded system
-	gdb_target_obs="aarch64-tdep.o aarch64-newlib-tdep.o aarch64-insn.o"
+	gdb_target_obs="aarch64-newlib-tdep.o"
+	;;
+
+aarch64*-*-freebsd*)
+	# Target: FreeBSD/aarch64
+	gdb_target_obs="aarch64-fbsd-tdep.o"
 	;;
 
 aarch64*-*-linux*)
 	# Target: AArch64 linux
-	gdb_target_obs="aarch64-tdep.o aarch64-linux-tdep.o aarch64-insn.o \
-			arm.o arm-linux.o arm-get-next-pcs.o arm-tdep.o \
-			arm-linux-tdep.o \
+	gdb_target_obs="aarch64-linux-tdep.o arch/aarch64.o\
+			arch/arm.o arch/arm-linux.o arch/arm-get-next-pcs.o \
+			arm-tdep.o arm-linux-tdep.o \
 			glibc-tdep.o linux-tdep.o solib-svr4.o \
 			symfile-mem.o linux-record.o"
 	build_gdbserver=yes
@@ -56,23 +124,18 @@ aarch64*-*-linux*)
 
 alpha*-*-linux*)
 	# Target: Little-endian Alpha running Linux
-	gdb_target_obs="alpha-tdep.o alpha-mdebug-tdep.o alpha-linux-tdep.o \
+	gdb_target_obs="alpha-mdebug-tdep.o alpha-linux-tdep.o \
 			linux-tdep.o solib-svr4.o"
 	;;
 alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu)
 	# Target: NetBSD/alpha
-	gdb_target_obs="alpha-tdep.o alpha-mdebug-tdep.o alpha-bsd-tdep.o \
-			alpha-nbsd-tdep.o nbsd-tdep.o solib-svr4.o"
+	gdb_target_obs="alpha-mdebug-tdep.o alpha-bsd-tdep.o \
+			alpha-nbsd-tdep.o"
 	;;
 alpha*-*-openbsd*)
 	# Target: OpenBSD/alpha
-	gdb_target_obs="alpha-tdep.o alpha-mdebug-tdep.o alpha-bsd-tdep.o \
-			alpha-nbsd-tdep.o alpha-obsd-tdep.o nbsd-tdep.o \
-			obsd-tdep.o solib-svr4.o"
-	;;
-alpha*-*-*)
-	# Target: Alpha
-	gdb_target_obs="alpha-tdep.o"
+	gdb_target_obs="alpha-mdebug-tdep.o alpha-bsd-tdep.o \
+			alpha-nbsd-tdep.o alpha-obsd-tdep.o nbsd-tdep.o"
 	;;
 
 am33_2.0*-*-linux*)
@@ -83,44 +146,38 @@ am33_2.0*-*-linux*)
 
 arc*-*-elf32)
 	# Target: baremetal ARC elf32 (newlib) target
-	gdb_target_obs="arc-newlib-tdep.o arc-tdep.o"
-	;;
-
-arc*-*-*)
-	# Target: Unidentified ARC target
-	gdb_target_obs="arc-tdep.o"
+	gdb_target_obs="arc-newlib-tdep.o"
 	;;
 
 arm*-wince-pe | arm*-*-mingw32ce*)
 	# Target: ARM based machine running Windows CE (win32)
-	gdb_target_obs="arm.o arm-get-next-pcs.o arm-tdep.o \
-			arm-wince-tdep.o windows-tdep.o"
+	gdb_target_obs="arm-wince-tdep.o windows-tdep.o"
 	build_gdbserver=yes
 	;;
 arm*-*-linux*)
 	# Target: ARM based machine running GNU/Linux
-	gdb_target_obs="arm.o arm-linux.o arm-get-next-pcs.o arm-tdep.o \
-                        arm-linux-tdep.o glibc-tdep.o \
+	gdb_target_obs="arch/arm-linux.o arm-linux-tdep.o glibc-tdep.o \
 			solib-svr4.o symfile-mem.o linux-tdep.o linux-record.o"
 	build_gdbserver=yes
 	;;
+arm*-*-freebsd*)
+	# Target: FreeBSD/arm
+	gdb_target_obs="arm-fbsd-tdep.o"
+	;;
 arm*-*-netbsd* | arm*-*-knetbsd*-gnu)
 	# Target: NetBSD/arm
-	gdb_target_obs="arm.o arm-get-next-pcs.o arm-tdep.o arm-nbsd-tdep.o \
-			solib-svr4.o"
+	gdb_target_obs="arm-nbsd-tdep.o"
 	;;
 arm*-*-openbsd*)
 	# Target: OpenBSD/arm
-	gdb_target_obs="arm.o arm-get-next-pcs.o arm-tdep.o arm-bsd-tdep.o \
-			arm-obsd-tdep.o obsd-tdep.o solib-svr4.o"
+	gdb_target_obs="arm-bsd-tdep.o arm-obsd-tdep.o"
 	;;
 arm*-*-symbianelf*)
 	# Target: SymbianOS/arm
-	gdb_target_obs="arm.o arm-get-next-pcs.o arm-tdep.o arm-symbian-tdep.o"
+	gdb_target_obs="arm-symbian-tdep.o"
 	;;
 arm*-*-*)
 	# Target: ARM embedded system
-	gdb_target_obs="arm.o arm-get-next-pcs.o arm-tdep.o"
 	gdb_sim=../sim/arm/libsim.a
 	;;
 
@@ -166,115 +223,94 @@ h8300-*-*)
 
 hppa*-*-linux*)
 	# Target: HP PA-RISC running Linux
-	gdb_target_obs="hppa-tdep.o hppa-linux-tdep.o glibc-tdep.o \
+	gdb_target_obs="hppa-linux-tdep.o glibc-tdep.o \
 			linux-tdep.o solib-svr4.o symfile-mem.o"
 	;;
 hppa*-*-netbsd*)
 	# Target: NetBSD/hppa
-	gdb_target_obs="hppa-tdep.o hppa-bsd-tdep.o hppa-nbsd-tdep.o solib-svr4.o"
+	gdb_target_obs="hppa-bsd-tdep.o hppa-nbsd-tdep.o solib-svr4.o"
 	;;
 hppa*-*-openbsd*)
 	# Target: OpenBSD/hppa
-	gdb_target_obs="hppa-tdep.o hppa-bsd-tdep.o hppa-obsd-tdep.o solib-svr4.o"
-	;;
-hppa*-*-*)
-	# Target: HP PA-RISC
-	gdb_target_obs="hppa-tdep.o"
+	gdb_target_obs="hppa-bsd-tdep.o hppa-obsd-tdep.o solib-svr4.o"
 	;;
 
 i[34567]86-*-darwin*)
 	# Target: Darwin/i386
-	gdb_target_obs="i386-tdep.o i387-tdep.o \
-			i386-darwin-tdep.o solib-darwin.o"
+	gdb_target_obs="i386-darwin-tdep.o solib-darwin.o"
 	if test "x$enable_64_bit_bfd" = "xyes"; then
 	    # Target: GNU/Linux x86-64
-	    gdb_target_obs="amd64-tdep.o amd64-darwin-tdep.o ${gdb_target_obs}"
+	    gdb_target_obs="amd64-darwin-tdep.o ${gdb_target_obs}"
 	fi
 	;;
 i[34567]86-*-dicos*)
 	# Target: DICOS/i386
-	gdb_target_obs="i386-tdep.o i387-tdep.o dicos-tdep.o i386-dicos-tdep.o"
+	gdb_target_obs="dicos-tdep.o i386-dicos-tdep.o"
 	;;
 i[34567]86-*-freebsd* | i[34567]86-*-kfreebsd*-gnu)
 	# Target: FreeBSD/i386
-	gdb_target_obs="i386-tdep.o i387-tdep.o i386-bsd-tdep.o i386-fbsd-tdep.o \
-			fbsd-tdep.o solib-svr4.o"
+	gdb_target_obs="i386-bsd-tdep.o i386-fbsd-tdep.o "
 	;;
 i[34567]86-*-netbsd* | i[34567]86-*-knetbsd*-gnu)
 	# Target: NetBSD/i386
-	gdb_target_obs="i386-tdep.o i387-tdep.o i386-bsd-tdep.o i386-nbsd-tdep.o \
-			nbsd-tdep.o solib-svr4.o"
+	gdb_target_obs="i386-bsd-tdep.o i386-nbsd-tdep.o "
 	;;
 i[34567]86-*-openbsd*)
 	# Target: OpenBSD/i386
-	gdb_target_obs="i386-tdep.o i387-tdep.o i386-bsd-tdep.o i386-obsd-tdep.o \
-			obsd-tdep.o bsd-uthread.o solib-svr4.o"
+	gdb_target_obs="i386-bsd-tdep.o i386-obsd-tdep.o bsd-uthread.o"
 	;;
 i[34567]86-*-nto*)
 	# Target: Intel 386 running qnx6.
-	gdb_target_obs="i386-tdep.o i387-tdep.o solib-svr4.o \
+	gdb_target_obs="solib-svr4.o \
 			i386-nto-tdep.o nto-tdep.o"
 	build_gdbserver=yes
 	;;
-i[34567]86-*-solaris2.1[0-9]* | x86_64-*-solaris2.1[0-9]*)
+i[34567]86-*-solaris2* | x86_64-*-solaris2*)
 	# Target: Solaris x86_64
-	gdb_target_obs="i386-tdep.o i387-tdep.o amd64-tdep.o amd64-sol2-tdep.o \
-			i386-sol2-tdep.o sol2-tdep.o solib-svr4.o"
-	;;
-i[34567]86-*-solaris*)
-	# Target: Solaris x86
-	gdb_target_obs="i386-tdep.o i387-tdep.o i386-sol2-tdep.o sol2-tdep.o \
-			solib-svr4.o"
+	gdb_target_obs="${i386_tobjs} ${amd64_tobjs} \
+			 amd64-sol2-tdep.o i386-sol2-tdep.o sol2-tdep.o \
+			 solib-svr4.o"
 	;;
 i[34567]86-*-linux*)
 	# Target: Intel 386 running GNU/Linux
-	gdb_target_obs="i386-tdep.o i386-linux-tdep.o glibc-tdep.o i387-tdep.o \
+	gdb_target_obs="i386-linux-tdep.o \
+			glibc-tdep.o \
 			solib-svr4.o symfile-mem.o \
 			linux-tdep.o linux-record.o"
 	if test "x$enable_64_bit_bfd" = "xyes"; then
 	    # Target: GNU/Linux x86-64
-	    gdb_target_obs="amd64-tdep.o amd64-linux-tdep.o ${gdb_target_obs}"
+	    gdb_target_obs="amd64-linux-tdep.o ${gdb_target_obs}"
 	fi
 	build_gdbserver=yes
 	;;
 i[34567]86-*-gnu*)
 	# Target: Intel 386 running the GNU Hurd
-	gdb_target_obs="i386-tdep.o i387-tdep.o i386-gnu-tdep.o solib-svr4.o"
+	gdb_target_obs="i386-gnu-tdep.o solib-svr4.o"
 	;;
 i[34567]86-*-cygwin*)
 	# Target: Intel 386 running win32
-	gdb_target_obs="i386-tdep.o i386-cygwin-tdep.o i387-tdep.o \
-			windows-tdep.o"
+	gdb_target_obs="i386-cygwin-tdep.o windows-tdep.o"
 	build_gdbserver=yes
 	;;
 i[34567]86-*-mingw32*)
 	# Target: Intel 386 running win32
-	gdb_target_obs="i386-tdep.o i386-cygwin-tdep.o i387-tdep.o \
-			windows-tdep.o"
+	gdb_target_obs="i386-cygwin-tdep.o windows-tdep.o"
 	build_gdbserver=yes
 	;;
 i[34567]86-*-go32* | i[34567]86-*-msdosdjgpp*)
 	# Target: i386 running DJGPP/go32.
-	gdb_target_obs="i386-tdep.o i387-tdep.o i386-go32-tdep.o"
-	;;
-i[34567]86-*-*)
-	# Target: i386
-	gdb_target_obs="i386-tdep.o i387-tdep.o"
+	gdb_target_obs="i386-go32-tdep.o"
 	;;
 
 ia64-*-linux*)
 	# Target: Intel IA-64 running GNU/Linux
-	gdb_target_obs="ia64-tdep.o ia64-linux-tdep.o linux-tdep.o \
+	gdb_target_obs="ia64-linux-tdep.o linux-tdep.o \
 			solib-svr4.o symfile-mem.o"
 	build_gdbserver=yes
 	;;
 ia64-*-*vms*)
 	# Target: Intel IA-64 running OpenVMS
-	gdb_target_obs="ia64-tdep.o ia64-vms-tdep.o"
-	;;
-ia64*-*-*)
-	# Target: Intel IA-64
-	gdb_target_obs="ia64-tdep.o"
+	gdb_target_obs="ia64-vms-tdep.o"
 	;;
 
 iq2000-*-*)
@@ -328,11 +364,11 @@ m68*-*-linux*)
 	;;
 m68*-*-netbsd* | m68*-*-knetbsd*-gnu)
 	# Target: NetBSD/m68k
-	gdb_target_obs="m68k-tdep.o m68k-bsd-tdep.o solib-svr4.o"
+	gdb_target_obs="m68k-tdep.o m68k-bsd-tdep.o"
 	;;
 m68*-*-openbsd*)
 	# Target: OpenBSD/m68k
-	gdb_target_obs="m68k-tdep.o m68k-bsd-tdep.o solib-svr4.o"
+	gdb_target_obs="m68k-tdep.o m68k-bsd-tdep.o"
 	;;
 
 m88*-*-openbsd*)
@@ -367,17 +403,17 @@ mips*-*-linux*)
 	;;
 mips*-*-netbsd* | mips*-*-knetbsd*-gnu)
 	# Target: MIPS running NetBSD
-	gdb_target_obs="mips-tdep.o mips-nbsd-tdep.o solib-svr4.o nbsd-tdep.o"
+	gdb_target_obs="mips-tdep.o mips-nbsd-tdep.o"
 	gdb_sim=../sim/mips/libsim.a
 	;;
 mips*-*-freebsd*)
 	# Target: MIPS running FreeBSD
-	gdb_target_obs="mips-tdep.o mips-fbsd-tdep.o solib-svr4.o fbsd-tdep.o"
+	gdb_target_obs="mips-tdep.o mips-fbsd-tdep.o"
 	gdb_sim=../sim/mips/libsim.a
 	;;
 mips64*-*-openbsd*)
 	# Target: OpenBSD/mips64
-	gdb_target_obs="mips-tdep.o mips64-obsd-tdep.o obsd-tdep.o solib-svr4.o"
+	gdb_target_obs="mips-tdep.o mips64-obsd-tdep.o"
 	;;
 mips*-sde*-elf*)
 	# Target: MIPS SDE
@@ -427,24 +463,28 @@ nios2*-*-*)
 	gdb_target_obs="nios2-tdep.o"
 	;;
 
+or1k-*-* | or1knd-*-*)
+	# Target: OpenCores OpenRISC 1000 32-bit implementation bare metal
+	gdb_target_obs="or1k-tdep.o"
+	gdb_sim=../sim/or1k/libsim.a
+	;;
+
 powerpc*-*-freebsd*)
 	# Target: FreeBSD/powerpc
 	gdb_target_obs="rs6000-tdep.o ppc-sysv-tdep.o ppc64-tdep.o \
-		        ppc-fbsd-tdep.o fbsd-tdep.o solib-svr4.o \
+		        ppc-fbsd-tdep.o \
 			ravenscar-thread.o ppc-ravenscar-thread.o"
 	;;
 
 powerpc-*-netbsd* | powerpc-*-knetbsd*-gnu)
 	# Target: NetBSD/powerpc
 	gdb_target_obs="rs6000-tdep.o ppc-sysv-tdep.o ppc-nbsd-tdep.o \
-			solib-svr4.o \
 			ravenscar-thread.o ppc-ravenscar-thread.o"
 	gdb_sim=../sim/ppc/libsim.a
 	;;
 powerpc-*-openbsd*)
 	# Target: OpenBSD/powerpc
 	gdb_target_obs="rs6000-tdep.o ppc-sysv-tdep.o ppc-obsd-tdep.o \
-			solib-svr4.o \
 			ravenscar-thread.o ppc-ravenscar-thread.o"
 	;;
 powerpc-*-aix* | rs6000-*-* | powerpc64-*-aix*)
@@ -480,7 +520,7 @@ powerpc*-*-*)
 s390*-*-linux*)
 	# Target: S390 running Linux
 	gdb_target_obs="s390-linux-tdep.o solib-svr4.o linux-tdep.o \
-			linux-record.o"
+			linux-record.o symfile-mem.o"
 	build_gdbserver=yes
 	;;
 
@@ -512,12 +552,12 @@ sh*-*-linux*)
 	;;
 sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu)
 	# Target: NetBSD/sh
-	gdb_target_obs="sh-tdep.o sh-nbsd-tdep.o solib-svr4.o"
+	gdb_target_obs="sh-tdep.o sh-nbsd-tdep.o"
 	gdb_sim=../sim/sh/libsim.a
 	;;
 sh*-*-openbsd*)
 	# Target: OpenBSD/sh
-	gdb_target_obs="sh-tdep.o sh64-tdep.o sh-nbsd-tdep.o solib-svr4.o"
+	gdb_target_obs="sh-tdep.o sh64-tdep.o sh-nbsd-tdep.o"
 	;;
 sh64-*-elf*)
 	# Target: Renesas/Super-H 64 bit with simulator
@@ -554,38 +594,30 @@ sparc64-*-linux*)
 sparc*-*-freebsd* | sparc*-*-kfreebsd*-gnu)
 	# Target: FreeBSD/sparc64
 	gdb_target_obs="sparc-tdep.o sparc64-tdep.o sparc64-fbsd-tdep.o \
-			fbsd-tdep.o solib-svr4.o \
 			ravenscar-thread.o sparc-ravenscar-thread.o"
 	;;
 sparc-*-netbsd* | sparc-*-knetbsd*-gnu)
 	# Target: NetBSD/sparc
-	gdb_target_obs="sparc-tdep.o sparc-nbsd-tdep.o nbsd-tdep.o \
-			solib-svr4.o \
+	gdb_target_obs="sparc-tdep.o sparc-nbsd-tdep.o \
 			ravenscar-thread.o sparc-ravenscar-thread.o"
 	;;
 sparc64-*-netbsd* | sparc64-*-knetbsd*-gnu)
 	# Target: NetBSD/sparc64
 	gdb_target_obs="sparc64-tdep.o sparc64-nbsd-tdep.o sparc-tdep.o \
-			sparc-nbsd-tdep.o nbsd-tdep.o solib-svr4.o \
+			sparc-nbsd-tdep.o \
 			ravenscar-thread.o sparc-ravenscar-thread.o"
 	;;
 sparc-*-openbsd*)
 	# Target: OpenBSD/sparc
 	gdb_target_obs="sparc-tdep.o sparc-nbsd-tdep.o sparc-obsd-tdep.o \
-			nbsd-tdep.o obsd-tdep.o bsd-uthread.o solib-svr4.o \
+			nbsd-tdep.o bsd-uthread.o \
 			ravenscar-thread.o sparc-ravenscar-thread.o"
 	;;
 sparc64-*-openbsd*)
 	# Target: OpenBSD/sparc64
 	gdb_target_obs="sparc64-tdep.o sparc64-nbsd-tdep.o sparc64-obsd-tdep.o \
 			sparc-tdep.o sparc-nbsd-tdep.o sparc-obsd-tdep.o \
-			nbsd-tdep.o obsd-tdep.o bsd-uthread.o solib-svr4.o \
-			ravenscar-thread.o sparc-ravenscar-thread.o"
-	;;
-sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
-	# Target: Solaris SPARC
-	gdb_target_obs="sparc-tdep.o sparc-sol2-tdep.o sol2-tdep.o \
-			solib-svr4.o \
+			nbsd-tdep.o bsd-uthread.o \
 			ravenscar-thread.o sparc-ravenscar-thread.o"
 	;;
 sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*)
@@ -662,66 +694,63 @@ vax-*-*)
 
 x86_64-*-darwin*)
 	# Target: Darwin/x86-64
-	gdb_target_obs="amd64-tdep.o i386-tdep.o i387-tdep.o \
+	gdb_target_obs="${i386_tobjs} \
 			i386-darwin-tdep.o amd64-darwin-tdep.o \
                         solib-darwin.o"
 	;;
 
 x86_64-*-dicos*)
 	# Target: DICOS/x86-64
-	gdb_target_obs="amd64-tdep.o i386-tdep.o i387-tdep.o \
+	gdb_target_obs="${i386_tobjs} \
 			dicos-tdep.o i386-dicos-tdep.o amd64-dicos-tdep.o"
 	;;
 x86_64-*-elf*)
-	gdb_target_obs="amd64-tdep.o i386-tdep.o i387-tdep.o"
+	gdb_target_obs="${i386_tobjs}"
 	;;
 x86_64-*-linux*)
 	# Target: GNU/Linux x86-64
-	gdb_target_obs="amd64-tdep.o amd64-linux-tdep.o i386-tdep.o \
-			i387-tdep.o i386-linux-tdep.o glibc-tdep.o \
+	gdb_target_obs="amd64-linux-tdep.o ${i386_tobjs}  \
+			i386-linux-tdep.o glibc-tdep.o \
 			solib-svr4.o symfile-mem.o linux-tdep.o linux-record.o"
 	build_gdbserver=yes
 	;;
 x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
 	# Target: FreeBSD/amd64
-	gdb_target_obs="amd64-tdep.o amd64-fbsd-tdep.o i386-tdep.o \
-			i387-tdep.o i386-bsd-tdep.o i386-fbsd-tdep.o \
-			fbsd-tdep.o solib-svr4.o"
+	gdb_target_obs="amd64-fbsd-tdep.o ${i386_tobjs} \
+			i386-bsd-tdep.o i386-fbsd-tdep.o"
 	;;
 x86_64-*-mingw* | x86_64-*-cygwin*)
         # Target: MingW/amd64
-	gdb_target_obs="amd64-tdep.o amd64-windows-tdep.o \
-                        i386-tdep.o i386-cygwin-tdep.o i387-tdep.o \
+	gdb_target_obs="amd64-windows-tdep.o \
+                        ${i386_tobjs} i386-cygwin-tdep.o \
                         windows-tdep.o"
 	build_gdbserver=yes
         ;;
 x86_64-*-netbsd* | x86_64-*-knetbsd*-gnu)
 	# Target: NetBSD/amd64
-	gdb_target_obs="amd64-tdep.o amd64-nbsd-tdep.o i386-tdep.o i387-tdep.o \
-			nbsd-tdep.o solib-svr4.o"
+	gdb_target_obs="amd64-nbsd-tdep.o ${i386_tobjs}"
 	;;
 x86_64-*-openbsd*)
 	# Target: OpenBSD/amd64
-	gdb_target_obs="amd64-tdep.o amd64-obsd-tdep.o i386-tdep.o \
-			i387-tdep.o i386-bsd-tdep.o i386-obsd-tdep.o \
-			obsd-tdep.o bsd-uthread.o solib-svr4.o"
+	gdb_target_obs="amd64-obsd-tdep.o ${i386_tobjs} \
+			i386-bsd-tdep.o i386-obsd-tdep.o \
+			bsd-uthread.o"
 	;;
 x86_64-*-rtems*)
-	gdb_target_obs="amd64-tdep.o i386-tdep.o i387-tdep.o i386-bsd-tdep.o"
+	gdb_target_obs="${amd64_tobjs} ${i386_tobjs} i386-bsd-tdep.o"
 	;;
 xtensa*-*-linux*)	gdb_target=linux
 	# Target: GNU/Linux Xtensa
-	gdb_target_obs="xtensa-tdep.o xtensa-config.o xtensa-linux-tdep.o \
-			solib-svr4.o symfile-mem.o linux-tdep.o"
+	gdb_target_obs="xtensa-linux-tdep.o symfile-mem.o linux-tdep.o"
 	build_gdbserver=yes
 	;;
-xtensa*)
-	# Target: Tensilica Xtensa processors
-	gdb_target_obs="xtensa-tdep.o xtensa-config.o solib-svr4.o"
-	;;
 
 esac
 
+# Put them together.
+
+gdb_target_obs="${cpu_obs} ${os_obs} ${gdb_target_obs}"
+
 # map target onto default OS ABI
 
 case "${targ}" in
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/continuations.c ./gdb/continuations.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/continuations.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/continuations.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Continuations for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/continuations.h ./gdb/continuations.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/continuations.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/continuations.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Continuations for GDB, the GNU debugger.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/ari/create-web-ari-in-src.sh ./gdb/contrib/ari/create-web-ari-in-src.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/ari/create-web-ari-in-src.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/contrib/ari/create-web-ari-in-src.sh	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
 
 # GDB script to create web ARI page directly from within gdb/ari directory.
 #
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/ari/gdb_ari.sh ./gdb/contrib/ari/gdb_ari.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/ari/gdb_ari.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/contrib/ari/gdb_ari.sh	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
 
 # GDB script to list of problems using awk.
 #
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
@@ -60,7 +60,7 @@ Options:
   -Werror        Treat all problems as errors.
   -Wall          Report all problems.
   -Wari          Report problems that should be fixed in new code.
-  -W<category>   Report problems in the specifed category.  Vaid categories
+  -W<category>   Report problems in the specifed category.  Valid categories
                  are: ${all}
 EOF
     exit 1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/ari/gdb_find.sh ./gdb/contrib/ari/gdb_find.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/ari/gdb_find.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/contrib/ari/gdb_find.sh	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
 
 # GDB script to create list of files to check using gdb_ari.sh.
 #
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/ari/update-web-ari.sh ./gdb/contrib/ari/update-web-ari.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/ari/update-web-ari.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/contrib/ari/update-web-ari.sh	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
 
 # GDB script to create GDB ARI web page.
 #
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/cc-with-tweaks.sh ./gdb/contrib/cc-with-tweaks.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/cc-with-tweaks.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/contrib/cc-with-tweaks.sh	2018-01-09 02:04:57.000000000 +0000
@@ -1,8 +1,8 @@
-#! /bin/sh
+#!/usr/bin/env bash
 # Wrapper around gcc to tweak the output in various ways when running
 # the testsuite.
 
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 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
@@ -27,8 +27,8 @@
 #
 # bash$ cd $objdir/gdb/testsuite
 # bash$ runtest \
-#   CC_FOR_TARGET="/bin/sh $srcdir/gdb/contrib/cc-with-tweaks.sh ARGS gcc" \
-#   CXX_FOR_TARGET="/bin/sh $srcdir/gdb/contrib/cc-with-tweaks.sh ARGS g++"
+#   CC_FOR_TARGET="/bin/bash $srcdir/gdb/contrib/cc-with-tweaks.sh ARGS gcc" \
+#   CXX_FOR_TARGET="/bin/bash $srcdir/gdb/contrib/cc-with-tweaks.sh ARGS g++"
 #
 # For documentation on Fission and dwp files:
 #     http://gcc.gnu.org/wiki/DebugFission
@@ -47,6 +47,7 @@
 # If nothing is given, no changes are made
 
 myname=cc-with-tweaks.sh
+mydir=`dirname "$0"`
 
 if [ -z "$GDB" ]
 then
@@ -93,6 +94,20 @@ while [ $# -gt 0 ]; do
     shift
 done
 
+if [ "$want_index" = true ]
+then
+    if [ -z "$GDB_ADD_INDEX" ]
+    then
+	if [ -f $mydir/gdb-add-index.sh ]
+	then
+	    GDB_ADD_INDEX="$mydir/gdb-add-index.sh"
+	else
+	    echo "$myname: unable to find usable contrib/gdb-add-index.sh" >&2
+	    exit 1
+	fi
+    fi
+fi
+
 for arg in "$@"
 do
     if [ "$next_is_output_file" = "yes" ]
@@ -152,20 +167,11 @@ if [ "$want_objcopy_compress" = true ]; 
 fi
 
 if [ "$want_index" = true ]; then
-    $GDB --batch-silent -nx -ex "set auto-load no" -ex "file $output_file" -ex "save gdb-index $output_dir"
-    rc=$?
-    [ $rc != 0 ] && exit $rc
-
-    # GDB might not always create an index.  Cope.
-    if [ -f "$index_file" ]
-    then
-	$OBJCOPY --add-section .gdb_index="$index_file" \
-	    --set-section-flags .gdb_index=readonly \
-	    "$output_file" "$output_file"
-	rc=$?
-    else
-	rc=0
-    fi
+    # Filter out these messages which would stop dejagnu testcase run:
+    # echo "$myname: No index was created for $file" 1>&2
+    # echo "$myname: [Was there no debuginfo? Was there already an index?]" 1>&2
+    GDB=$GDB $GDB_ADD_INDEX "$output_file" 2>&1|grep -v "^${GDB_ADD_INDEX##*/}: " >&2
+    rc=${PIPESTATUS[0]}
     [ $rc != 0 ] && exit $rc
 fi
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/cleanup_check.py ./gdb/contrib/cleanup_check.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/cleanup_check.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/contrib/cleanup_check.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2013-2017 Free Software Foundation, Inc.
+#   Copyright 2013-2018 Free Software Foundation, Inc.
 #
 #   This is free software: you can redistribute it and/or modify it
 #   under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/excheck.py ./gdb/contrib/excheck.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/excheck.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/contrib/excheck.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2011-2017 Free Software Foundation, Inc.
+#   Copyright 2011-2018 Free Software Foundation, Inc.
 #
 #   This is free software: you can redistribute it and/or modify it
 #   under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/expect-read1.c ./gdb/contrib/expect-read1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/expect-read1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/contrib/expect-read1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/expect-read1.sh ./gdb/contrib/expect-read1.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/expect-read1.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/contrib/expect-read1.sh	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 #! /bin/sh
 # runtest wrapper to reliably reproduce racy incomplete reads in the testsuite.
 
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/exsummary.py ./gdb/contrib/exsummary.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/exsummary.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/contrib/exsummary.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2011-2017 Free Software Foundation, Inc.
+#   Copyright 2011-2018 Free Software Foundation, Inc.
 #
 #   This is free software: you can redistribute it and/or modify it
 #   under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/gcc-with-excheck ./gdb/contrib/gcc-with-excheck
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/gcc-with-excheck	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/contrib/gcc-with-excheck	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 #!/bin/sh
-#   Copyright 2011-2017 Free Software Foundation, Inc.
+#   Copyright 2011-2018 Free Software Foundation, Inc.
 #
 #   This is free software: you can redistribute it and/or modify it
 #   under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/gdb-add-index.sh ./gdb/contrib/gdb-add-index.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/gdb-add-index.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/contrib/gdb-add-index.sh	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
 
 # Add a .gdb_index section to a file.
 
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 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
@@ -37,11 +37,15 @@ fi
 
 dir="${file%/*}"
 test "$dir" = "$file" && dir="."
-index="${file}.gdb-index"
+index4="${file}.gdb-index"
+index5="${file}.debug_names"
+debugstr="${file}.debug_str"
+debugstrmerge="${file}.debug_str.merge"
+debugstrerr="${file}.debug_str.err"
 
-rm -f $index
+rm -f $index4 $index5 $debugstr $debugstrmerge $debugstrerr
 # Ensure intermediate index file is removed when we exit.
-trap "rm -f $index" 0
+trap "rm -f $index4 $index5 $debugstr $debugstrmerge $debugstrerr" 0
 
 $GDB --batch -nx -iex 'set auto-load no' \
     -ex "file $file" -ex "save gdb-index $dir" || {
@@ -57,9 +61,46 @@ trap "rm -f $index" 0
 # already stripped binary, it's a no-op.
 status=0
 
-if test -f "$index"; then
-    $OBJCOPY --add-section .gdb_index="$index" \
-	--set-section-flags .gdb_index=readonly "$file" "$file"
+if test -f "$index4" -a -f "$index5"; then
+    echo "$myname: Both index types were created for $file" 1>&2
+    status=1
+elif test -f "$index4" -o -f "$index5"; then
+    if test -f "$index4"; then
+	index="$index4"
+	section=".gdb_index"
+    else
+	index="$index5"
+	section=".debug_names"
+    fi
+    debugstradd=false
+    debugstrupdate=false
+    if test -s "$debugstr"; then
+	if ! $OBJCOPY --dump-section .debug_str="$debugstrmerge" "$file" /dev/null \
+		 2>$debugstrerr; then
+	    cat >&2 $debugstrerr
+	    exit 1
+	fi
+	if grep -q "can't dump section '.debug_str' - it does not exist" \
+		  $debugstrerr; then
+	    debugstradd=true
+	else
+	    debugstrupdate=true
+	    cat >&2 $debugstrerr
+	fi
+	cat "$debugstr" >>"$debugstrmerge"
+    fi
+
+    $OBJCOPY --add-section $section="$index" \
+	--set-section-flags $section=readonly \
+	$(if $debugstradd; then \
+	      echo --add-section .debug_str="$debugstrmerge"; \
+	      echo --set-section-flags .debug_str=readonly; \
+	  fi; \
+	  if $debugstrupdate; then \
+	      echo --update-section .debug_str="$debugstrmerge"; \
+	  fi) \
+	"$file" "$file"
+
     status=$?
 else
     echo "$myname: No index was created for $file" 1>&2
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/test_pubnames_and_indexes.py ./gdb/contrib/test_pubnames_and_indexes.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/contrib/test_pubnames_and_indexes.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/contrib/test_pubnames_and_indexes.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 #! /usr/bin/env python
 
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/copying.awk ./gdb/copying.awk
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/copying.awk	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/copying.awk	2018-01-09 02:04:57.000000000 +0000
@@ -10,14 +10,12 @@ BEGIN	{
 	  print "#include \"command.h\""
 	  print "#include \"gdbcmd.h\""
 	  print ""
-	  print "static void show_copying_command (char *, int);"
+	  print "static void show_copying_command (const char *, int);"
 	  print ""
-	  print "static void show_warranty_command (char *, int);"
-	  print ""
-	  print "void _initialize_copying (void);"
+	  print "static void show_warranty_command (const char *, int);"
 	  print ""
 	  print "static void";
-	  print "show_copying_command (char *ignore, int from_tty)";
+	  print "show_copying_command (const char *ignore, int from_tty)";
 	  print "{";
 	}
 NR == 1,/^[ 	]*15\. Disclaimer of Warranty\.[ 	]*$/	{
@@ -37,7 +35,7 @@ NR == 1,/^[ 	]*15\. Disclaimer of Warran
 	  print "}";
 	  print "";
 	  print "static void";
-	  print "show_warranty_command (char *ignore, int from_tty)";
+	  print "show_warranty_command (const char *ignore, int from_tty)";
 	  print "{";
 	}
 /^[ 	]*15\. Disclaimer of Warranty\.[ 	]*$/, /^[ 	]*END OF TERMS AND CONDITIONS[ 	]*$/{  
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/copying.c ./gdb/copying.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/copying.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/copying.c	2018-01-09 02:04:57.000000000 +0000
@@ -6,14 +6,12 @@
 #include "command.h"
 #include "gdbcmd.h"
 
-static void show_copying_command (char *, int);
+static void show_copying_command (const char *, int);
 
-static void show_warranty_command (char *, int);
-
-void _initialize_copying (void);
+static void show_warranty_command (const char *, int);
 
 static void
-show_copying_command (char *ignore, int from_tty)
+show_copying_command (const char *ignore, int from_tty)
 {
   printf_filtered ("                    GNU GENERAL PUBLIC LICENSE\n");
   printf_filtered ("                       Version 3, 29 June 2007\n");
@@ -606,7 +604,7 @@ show_copying_command (char *ignore, int 
 }
 
 static void
-show_warranty_command (char *ignore, int from_tty)
+show_warranty_command (const char *ignore, int from_tty)
 {
   printf_filtered ("  15. Disclaimer of Warranty.\n");
   printf_filtered ("\n");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/copyright.py ./gdb/copyright.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/copyright.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/copyright.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 #! /usr/bin/env python
 
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
@@ -150,11 +150,20 @@ def main ():
     update_files (update_list)
 
     # Remind the user that some files need to be updated by HAND...
+
+    if MULTIPLE_COPYRIGHT_HEADERS:
+        print
+        print("\033[31m"
+              "REMINDER: Multiple copyright headers must be updated by hand:"
+              "\033[0m")
+        for filename in MULTIPLE_COPYRIGHT_HEADERS:
+            print "  ", filename
+
     if BY_HAND:
         print
         print "\033[31mREMINDER: The following files must be updated by hand." \
               "\033[0m"
-        for filename in BY_HAND + MULTIPLE_COPYRIGHT_HEADERS:
+        for filename in BY_HAND:
             print "  ", filename
 
 ############################################################################
@@ -191,9 +200,7 @@ EXCLUDE_ALL_LIST = (
 
 # The list of files to update by hand.
 BY_HAND = (
-    # These files are sensitive to line numbering.
-    "gdb/testsuite/gdb.base/step-line.inp",
-    "gdb/testsuite/gdb.base/step-line.c",
+    # Nothing at the moment :-).
 )
 
 # Files containing multiple copyright headers.  This script is only
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/corefile.c ./gdb/corefile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/corefile.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/corefile.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Core dump and executable file functions above target vector, for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -33,10 +33,6 @@
 #include "observer.h"
 #include "cli/cli-utils.h"
 
-/* Local function declarations.  */
-
-extern void _initialize_core (void);
-
 /* You can have any number of hooks for `exec_file_command' command to
    call.  If there's only one hook, it is set in exec_file_display
    hook.  If there are two or more hooks, they are set in
@@ -65,7 +61,7 @@ struct target_ops *core_target;
 /* Backward compatability with old way of specifying core files.  */
 
 void
-core_file_command (char *filename, int from_tty)
+core_file_command (const char *filename, int from_tty)
 {
   dont_repeat ();		/* Either way, seems bogus.  */
 
@@ -130,29 +126,24 @@ specify_exec_file_hook (void (*hook) (co
 void
 reopen_exec_file (void)
 {
-  char *filename;
   int res;
   struct stat st;
-  struct cleanup *cleanups;
 
   /* Don't do anything if there isn't an exec file.  */
   if (exec_bfd == NULL)
     return;
 
   /* If the timestamp of the exec file has changed, reopen it.  */
-  filename = xstrdup (bfd_get_filename (exec_bfd));
-  cleanups = make_cleanup (xfree, filename);
-  res = stat (filename, &st);
+  std::string filename = bfd_get_filename (exec_bfd);
+  res = stat (filename.c_str (), &st);
 
   if (res == 0 && exec_bfd_mtime && exec_bfd_mtime != st.st_mtime)
-    exec_file_attach (filename, 0);
+    exec_file_attach (filename.c_str (), 0);
   else
     /* If we accessed the file since last opening it, close it now;
        this stops GDB from holding the executable open after it
        exits.  */
     bfd_cache_close_all ();
-
-  do_cleanups (cleanups);
 }
 
 /* If we have both a core file and an exec file,
@@ -170,9 +161,7 @@ validate_files (void)
     }
 }
 
-/* Return the name of the executable file as a string.
-   ERR nonzero means get error if there is none specified;
-   otherwise return 0 in that case.  */
+/* See common/common-inferior.h.  */
 
 char *
 get_exec_file (int err)
@@ -188,7 +177,7 @@ Use the \"file\" or \"exec-file\" comman
 }
 
 
-char *
+std::string
 memory_error_message (enum target_xfer_status err,
 		      struct gdbarch *gdbarch, CORE_ADDR memaddr)
 {
@@ -197,11 +186,11 @@ memory_error_message (enum target_xfer_s
     case TARGET_XFER_E_IO:
       /* Actually, address between memaddr and memaddr + len was out of
 	 bounds.  */
-      return xstrprintf (_("Cannot access memory at address %s"),
-			 paddress (gdbarch, memaddr));
+      return string_printf (_("Cannot access memory at address %s"),
+			    paddress (gdbarch, memaddr));
     case TARGET_XFER_UNAVAILABLE:
-      return xstrprintf (_("Memory at address %s unavailable."),
-			 paddress (gdbarch, memaddr));
+      return string_printf (_("Memory at address %s unavailable."),
+			    paddress (gdbarch, memaddr));
     default:
       internal_error (__FILE__, __LINE__,
 		      "unhandled target_xfer_status: %s (%s)",
@@ -215,12 +204,10 @@ memory_error_message (enum target_xfer_s
 void
 memory_error (enum target_xfer_status err, CORE_ADDR memaddr)
 {
-  char *str;
   enum errors exception = GDB_NO_ERROR;
 
   /* Build error string.  */
-  str = memory_error_message (err, target_gdbarch (), memaddr);
-  make_cleanup (xfree, str);
+  std::string str = memory_error_message (err, target_gdbarch (), memaddr);
 
   /* Choose the right error to throw.  */
   switch (err)
@@ -234,7 +221,7 @@ memory_error (enum target_xfer_status er
     }
 
   /* Throw it.  */
-  throw_error (exception, ("%s"), str);
+  throw_error (exception, ("%s"), str.c_str ());
 }
 
 /* Helper function.  */
@@ -465,11 +452,8 @@ show_gnutarget_string (struct ui_file *f
 		    _("The current BFD target is \"%s\".\n"), value);
 }
 
-static void set_gnutarget_command (char *, int,
-				   struct cmd_list_element *);
-
 static void
-set_gnutarget_command (char *ignore, int from_tty,
+set_gnutarget_command (const char *ignore, int from_tty,
 		       struct cmd_list_element *c)
 {
   char *gend = gnutarget_string + strlen (gnutarget_string);
@@ -485,8 +469,9 @@ set_gnutarget_command (char *ignore, int
 
 /* A completion function for "set gnutarget".  */
 
-static VEC (char_ptr) *
+static void
 complete_set_gnutarget (struct cmd_list_element *cmd,
+			completion_tracker &tracker,
 			const char *text, const char *word)
 {
   static const char **bfd_targets;
@@ -504,7 +489,7 @@ complete_set_gnutarget (struct cmd_list_
       bfd_targets[last + 1] = NULL;
     }
 
-  return complete_on_enum (bfd_targets, text, word);
+  complete_on_enum (tracker, bfd_targets, text, word);
 }
 
 /* Set the gnutarget.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/corelow.c ./gdb/corelow.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/corelow.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/corelow.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Core dump and executable file functions below target vector, for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -88,8 +88,6 @@ static void add_to_thread_list (bfd *, a
 
 static void init_core_ops (void);
 
-void _initialize_corelow (void);
-
 static struct target_ops core_ops;
 
 /* An arbitrary identifier for the core inferior.  */
@@ -129,7 +127,7 @@ sniff_core_bfd (bfd *abfd)
 {
   struct core_fns *cf;
   struct core_fns *yummy = NULL;
-  int matches = 0;;
+  int matches = 0;
 
   /* Don't sniff if we have support for register sets in
      CORE_GDBARCH.  */
@@ -274,10 +272,8 @@ core_open (const char *arg, int from_tty
   const char *p;
   int siggy;
   struct cleanup *old_chain;
-  char *temp;
   int scratch_chan;
   int flags;
-  char *filename;
 
   target_preopen (from_tty);
   if (!arg)
@@ -289,31 +285,25 @@ core_open (const char *arg, int from_tty
 	error (_("No core file specified."));
     }
 
-  filename = tilde_expand (arg);
-  if (!IS_ABSOLUTE_PATH (filename))
-    {
-      temp = concat (current_directory, "/",
-		     filename, (char *) NULL);
-      xfree (filename);
-      filename = temp;
-    }
-
-  old_chain = make_cleanup (xfree, filename);
+  gdb::unique_xmalloc_ptr<char> filename (tilde_expand (arg));
+  if (!IS_ABSOLUTE_PATH (filename.get ()))
+    filename.reset (concat (current_directory, "/",
+			    filename.get (), (char *) NULL));
 
   flags = O_BINARY | O_LARGEFILE;
   if (write_files)
     flags |= O_RDWR;
   else
     flags |= O_RDONLY;
-  scratch_chan = gdb_open_cloexec (filename, flags, 0);
+  scratch_chan = gdb_open_cloexec (filename.get (), flags, 0);
   if (scratch_chan < 0)
-    perror_with_name (filename);
+    perror_with_name (filename.get ());
 
-  gdb_bfd_ref_ptr temp_bfd (gdb_bfd_fopen (filename, gnutarget,
+  gdb_bfd_ref_ptr temp_bfd (gdb_bfd_fopen (filename.get (), gnutarget,
 					   write_files ? FOPEN_RUB : FOPEN_RB,
 					   scratch_chan));
   if (temp_bfd == NULL)
-    perror_with_name (filename);
+    perror_with_name (filename.get ());
 
   if (!bfd_check_format (temp_bfd.get (), bfd_core)
       && !gdb_check_format (temp_bfd.get ()))
@@ -323,13 +313,12 @@ core_open (const char *arg, int from_tty
          thing, on error it does not free all the storage associated
          with the bfd).  */
       error (_("\"%s\" is not a core dump: %s"),
-	     filename, bfd_errmsg (bfd_get_error ()));
+	     filename.get (), bfd_errmsg (bfd_get_error ()));
     }
 
   /* Looks semi-reasonable.  Toss the old core file and work on the
      new.  */
 
-  do_cleanups (old_chain);
   unpush_target (&core_ops);
   core_bfd = temp_bfd.release ();
   old_chain = make_cleanup (core_close_cleanup, 0 /*ignore*/);
@@ -511,23 +500,15 @@ get_core_register_section (struct regcac
 			   const char *human_name,
 			   int required)
 {
-  static char *section_name = NULL;
   struct bfd_section *section;
   bfd_size_type size;
   char *contents;
   bool variable_size_section = (regset != NULL
 				&& regset->flags & REGSET_VARIABLE_SIZE);
-  ptid_t ptid = regcache_get_ptid (regcache);
 
-  xfree (section_name);
+  thread_section_name section_name (name, regcache->ptid ());
 
-  if (ptid_get_lwp (ptid))
-    section_name = xstrprintf ("%s/%ld", name,
-			       ptid_get_lwp (ptid));
-  else
-    section_name = xstrdup (name);
-
-  section = bfd_get_section_by_name (core_bfd, section_name);
+  section = bfd_get_section_by_name (core_bfd, section_name.c_str ());
   if (! section)
     {
       if (required)
@@ -539,13 +520,14 @@ get_core_register_section (struct regcac
   size = bfd_section_size (core_bfd, section);
   if (size < min_size)
     {
-      warning (_("Section `%s' in core file too small."), section_name);
+      warning (_("Section `%s' in core file too small."),
+	       section_name.c_str ());
       return;
     }
   if (size != min_size && !variable_size_section)
     {
       warning (_("Unexpected size of section `%s' in core file."),
-	       section_name);
+	       section_name.c_str ());
     }
 
   contents = (char *) alloca (size);
@@ -553,7 +535,7 @@ get_core_register_section (struct regcac
 				  (file_ptr) 0, size))
     {
       warning (_("Couldn't read %s registers from `%s' section in core file."),
-	       human_name, name);
+	       human_name, section_name.c_str ());
       return;
     }
 
@@ -620,7 +602,7 @@ get_core_registers (struct target_ops *o
       return;
     }
 
-  gdbarch = get_regcache_arch (regcache);
+  gdbarch = regcache->arch ();
   if (gdbarch_iterate_over_regset_sections_p (gdbarch))
     gdbarch_iterate_over_regset_sections (gdbarch,
 					  get_core_registers_cb,
@@ -634,7 +616,7 @@ get_core_registers (struct target_ops *o
     }
 
   /* Mark all registers not found in the core as unavailable.  */
-  for (i = 0; i < gdbarch_num_regs (get_regcache_arch (regcache)); i++)
+  for (i = 0; i < gdbarch_num_regs (regcache->arch ()); i++)
     if (regcache_register_status (regcache, i) == REG_UNKNOWN)
       regcache_raw_supply (regcache, i, NULL);
 }
@@ -675,35 +657,6 @@ add_to_spuid_list (bfd *abfd, asection *
   list->pos += 4;
 }
 
-/* Read siginfo data from the core, if possible.  Returns -1 on
-   failure.  Otherwise, returns the number of bytes read.  ABFD is the
-   core file's BFD; READBUF, OFFSET, and LEN are all as specified by
-   the to_xfer_partial interface.  */
-
-static LONGEST
-get_core_siginfo (bfd *abfd, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
-{
-  asection *section;
-  char *section_name;
-  const char *name = ".note.linuxcore.siginfo";
-
-  if (ptid_get_lwp (inferior_ptid))
-    section_name = xstrprintf ("%s/%ld", name,
-			       ptid_get_lwp (inferior_ptid));
-  else
-    section_name = xstrdup (name);
-
-  section = bfd_get_section_by_name (abfd, section_name);
-  xfree (section_name);
-  if (section == NULL)
-    return -1;
-
-  if (!bfd_get_section_contents (abfd, section, readbuf, offset, len))
-    return -1;
-
-  return len;
-}
-
 static enum target_xfer_status
 core_xfer_partial (struct target_ops *ops, enum target_object object,
 		   const char *annex, gdb_byte *readbuf,
@@ -891,12 +844,20 @@ core_xfer_partial (struct target_ops *op
     case TARGET_OBJECT_SIGNAL_INFO:
       if (readbuf)
 	{
-	  LONGEST l = get_core_siginfo (core_bfd, readbuf, offset, len);
-
-	  if (l > 0)
+	  if (core_gdbarch
+	      && gdbarch_core_xfer_siginfo_p (core_gdbarch))
 	    {
-	      *xfered_len = len;
-	      return TARGET_XFER_OK;
+	      LONGEST l = gdbarch_core_xfer_siginfo  (core_gdbarch, readbuf,
+						      offset, len);
+
+	      if (l >= 0)
+		{
+		  *xfered_len = l;
+		  if (l == 0)
+		    return TARGET_XFER_EOF;
+		  else
+		    return TARGET_XFER_OK;
+		}
 	    }
 	}
       return TARGET_XFER_E_IO;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/core-regset.c ./gdb/core-regset.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/core-regset.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/core-regset.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,121 +0,0 @@
-/* Machine independent GDB support for core files on systems using "regsets".
-
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* This file is used by most systems that use ELF for their core
-   dumps.  This includes most systems that have SVR4-ish variant of
-   /proc.  For these systems, the registers are laid out the same way
-   in core files as in the gregset_t and fpregset_t structures that
-   are used in the interaction with /proc (Irix 4 is an exception and
-   therefore doesn't use this file).  Quite a few systems without a
-   SVR4-ish /proc define these structures too, and can make use of
-   this code too.  */
-
-#include "defs.h"
-#include "command.h"
-#include "gdbcore.h"
-#include "inferior.h"
-#include "target.h"
-#include "regcache.h"
-
-#include <fcntl.h>
-#include <time.h>
-#ifdef HAVE_SYS_PROCFS_H
-#include <sys/procfs.h>
-#endif
-
-/* Prototypes for supply_gregset etc.  */
-#include "gregset.h"
-
-/* Provide registers to GDB from a core file.
-
-   CORE_REG_SECT points to an array of bytes, which are the contents
-   of a `note' from a core file which BFD thinks might contain
-   register contents.  CORE_REG_SIZE is its size.
-
-   WHICH says which register set corelow suspects this is:
-     0 --- the general-purpose register set, in gregset_t format
-     2 --- the floating-point register set, in fpregset_t format
-
-   REG_ADDR is ignored.  */
-
-static void
-fetch_core_registers (struct regcache *regcache,
-		      char *core_reg_sect,
-		      unsigned core_reg_size,
-		      int which,
-		      CORE_ADDR reg_addr)
-{
-  gdb_gregset_t gregset;
-  gdb_fpregset_t fpregset;
-  gdb_gregset_t *gregset_p = &gregset;
-  gdb_fpregset_t *fpregset_p = &fpregset;
-
-  switch (which)
-    {
-    case 0:
-      if (core_reg_size != sizeof (gregset))
-	warning (_("Wrong size gregset in core file."));
-      else
-	{
-	  memcpy (&gregset, core_reg_sect, sizeof (gregset));
-	  supply_gregset (regcache, (const gdb_gregset_t *) gregset_p);
-	}
-      break;
-
-    case 2:
-      if (core_reg_size != sizeof (fpregset))
-	warning (_("Wrong size fpregset in core file."));
-      else
-	{
-	  memcpy (&fpregset, core_reg_sect, sizeof (fpregset));
-	  if (gdbarch_fp0_regnum (get_regcache_arch (regcache)) >= 0)
-	    supply_fpregset (regcache,
-			     (const gdb_fpregset_t *) fpregset_p);
-	}
-      break;
-
-    default:
-      /* We've covered all the kinds of registers we know about here,
-         so this must be something we wouldn't know what to do with
-         anyway.  Just ignore it.  */
-      break;
-    }
-}
-
-
-/* Register that we are able to handle ELF core file formats using
-   standard procfs "regset" structures.  */
-
-static struct core_fns regset_core_fns =
-{
-  bfd_target_elf_flavour,		/* core_flavour */
-  default_check_format,			/* check_format */
-  default_core_sniffer,			/* core_sniffer */
-  fetch_core_registers,			/* core_read_registers */
-  NULL					/* next */
-};
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern void _initialize_core_regset (void);
-
-void
-_initialize_core_regset (void)
-{
-  deprecated_add_core_fns (&regset_core_fns);
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-abi.c ./gdb/cp-abi.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-abi.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cp-abi.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Generic code for supporting multiple C++ ABI's
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -314,12 +314,10 @@ static void
 list_cp_abis (int from_tty)
 {
   struct ui_out *uiout = current_uiout;
-  struct cleanup *cleanup_chain;
   int i;
 
   uiout->text ("The available C++ ABIs are:\n");
-  cleanup_chain = make_cleanup_ui_out_tuple_begin_end (uiout,
-						       "cp-abi-list");
+  ui_out_emit_tuple tuple_emitter (uiout, "cp-abi-list");
   for (i = 0; i < num_cp_abis; i++)
     {
       char pad[14];
@@ -337,14 +335,13 @@ list_cp_abis (int from_tty)
       uiout->field_string ("doc", cp_abis[i]->doc);
       uiout->text ("\n");
     }
-  do_cleanups (cleanup_chain);
 }
 
 /* Set the current C++ ABI, or display the list of options if no
    argument is given.  */
 
 static void
-set_cp_abi_cmd (char *args, int from_tty)
+set_cp_abi_cmd (const char *args, int from_tty)
 {
   if (args == NULL)
     {
@@ -358,8 +355,9 @@ set_cp_abi_cmd (char *args, int from_tty
 
 /* A completion function for "set cp-abi".  */
 
-static VEC (char_ptr) *
+static void
 cp_abi_completer (struct cmd_list_element *ignore,
+		  completion_tracker &tracker,
 		  const char *text, const char *word)
 {
   static const char **cp_abi_names;
@@ -374,13 +372,13 @@ cp_abi_completer (struct cmd_list_elemen
       cp_abi_names[i] = NULL;
     }
 
-  return complete_on_enum (cp_abi_names, text, word);
+  complete_on_enum (tracker, cp_abi_names, text, word);
 }
 
 /* Show the currently selected C++ ABI.  */
 
 static void
-show_cp_abi_cmd (char *args, int from_tty)
+show_cp_abi_cmd (const char *args, int from_tty)
 {
   struct ui_out *uiout = current_uiout;
 
@@ -392,8 +390,6 @@ show_cp_abi_cmd (char *args, int from_tt
   uiout->text (").\n");
 }
 
-extern initialize_file_ftype _initialize_cp_abi; /* -Wmissing-prototypes */
-
 void
 _initialize_cp_abi (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-abi.h ./gdb/cp-abi.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-abi.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cp-abi.h	2018-01-09 02:04:57.000000000 +0000
@@ -3,7 +3,7 @@
 
    Contributed by Daniel Berlin <dberlin@redhat.com>
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-name-parser.c ./gdb/cp-name-parser.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-name-parser.c	2018-01-02 02:06:29.000000000 +0000
+++ ./gdb/cp-name-parser.c	2018-01-09 02:08:06.000000000 +0000
@@ -3866,6 +3866,28 @@ d_binary (const char *name, struct deman
 		      fill_comp (DEMANGLE_COMPONENT_BINARY_ARGS, lhs, rhs));
 }
 
+/* Like ISALPHA, but also returns true for the union of all UTF-8
+   multi-byte sequence bytes and non-ASCII characters in
+   extended-ASCII charsets (e.g., Latin1).  I.e., returns true if the
+   high bit is set.  Note that not all UTF-8 ranges are allowed in C++
+   identifiers, but we don't need to be pedantic so for simplicity we
+   ignore that here.  Plus this avoids the complication of actually
+   knowing what was the right encoding.  */
+
+static inline bool
+cp_ident_is_alpha (unsigned char ch)
+{
+  return ISALPHA (ch) || ch >= 0x80;
+}
+
+/* Similarly, but Like ISALNUM.  */
+
+static inline bool
+cp_ident_is_alnum (unsigned char ch)
+{
+  return ISALNUM (ch) || ch >= 0x80;
+}
+
 /* Find the end of a symbol name starting at LEXPTR.  */
 
 static const char *
@@ -3873,7 +3895,7 @@ symbol_end (const char *lexptr)
 {
   const char *p = lexptr;
 
-  while (*p && (ISALNUM (*p) || *p == '_' || *p == '$' || *p == '.'))
+  while (*p && (cp_ident_is_alnum (*p) || *p == '_' || *p == '$' || *p == '.'))
     p++;
 
   return p;
@@ -4353,7 +4375,7 @@ yylex (void)
       return ERROR;
     }
 
-  if (!(c == '_' || c == '$' || ISALPHA (c)))
+  if (!(c == '_' || c == '$' || cp_ident_is_alpha (c)))
     {
       /* We must have come across a bad character (e.g. ';').  */
       yyerror (_("invalid character"));
@@ -4364,7 +4386,7 @@ yylex (void)
   namelen = 0;
   do
     c = tokstart[++namelen];
-  while (ISALNUM (c) || c == '_' || c == '$');
+  while (cp_ident_is_alnum (c) || c == '_' || c == '$');
 
   lexptr += namelen;
 
@@ -4525,13 +4547,14 @@ allocate_info (void)
    cplus_demangle_print does not, specifically the global destructor
    and constructor labels.  */
 
-char *
+gdb::unique_xmalloc_ptr<char>
 cp_comp_to_string (struct demangle_component *result, int estimated_len)
 {
   size_t err;
 
-  return cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI, result, estimated_len,
-			       &err);
+  char *res = cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI,
+				    result, estimated_len, &err);
+  return gdb::unique_xmalloc_ptr<char> (res);
 }
 
 /* Constructor for demangle_parse_info.  */
@@ -4690,7 +4713,7 @@ internal_error (const char *file, int li
 int
 main (int argc, char **argv)
 {
-  char *str2, *extra_chars = "", c;
+  char *str2, *extra_chars, c;
   char buf[65536];
   int arg;
   const char *errmsg;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-name-parser.y ./gdb/cp-name-parser.y
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-name-parser.y	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cp-name-parser.y	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* YACC parser for C++ names, for GDB.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    Parts of the lexer are based on c-exp.y from GDB.
 
@@ -1304,6 +1304,28 @@ d_binary (const char *name, struct deman
 		      fill_comp (DEMANGLE_COMPONENT_BINARY_ARGS, lhs, rhs));
 }
 
+/* Like ISALPHA, but also returns true for the union of all UTF-8
+   multi-byte sequence bytes and non-ASCII characters in
+   extended-ASCII charsets (e.g., Latin1).  I.e., returns true if the
+   high bit is set.  Note that not all UTF-8 ranges are allowed in C++
+   identifiers, but we don't need to be pedantic so for simplicity we
+   ignore that here.  Plus this avoids the complication of actually
+   knowing what was the right encoding.  */
+
+static inline bool
+cp_ident_is_alpha (unsigned char ch)
+{
+  return ISALPHA (ch) || ch >= 0x80;
+}
+
+/* Similarly, but Like ISALNUM.  */
+
+static inline bool
+cp_ident_is_alnum (unsigned char ch)
+{
+  return ISALNUM (ch) || ch >= 0x80;
+}
+
 /* Find the end of a symbol name starting at LEXPTR.  */
 
 static const char *
@@ -1311,7 +1333,7 @@ symbol_end (const char *lexptr)
 {
   const char *p = lexptr;
 
-  while (*p && (ISALNUM (*p) || *p == '_' || *p == '$' || *p == '.'))
+  while (*p && (cp_ident_is_alnum (*p) || *p == '_' || *p == '$' || *p == '.'))
     p++;
 
   return p;
@@ -1791,7 +1813,7 @@ yylex (void)
       return ERROR;
     }
 
-  if (!(c == '_' || c == '$' || ISALPHA (c)))
+  if (!(c == '_' || c == '$' || cp_ident_is_alpha (c)))
     {
       /* We must have come across a bad character (e.g. ';').  */
       yyerror (_("invalid character"));
@@ -1802,7 +1824,7 @@ yylex (void)
   namelen = 0;
   do
     c = tokstart[++namelen];
-  while (ISALNUM (c) || c == '_' || c == '$');
+  while (cp_ident_is_alnum (c) || c == '_' || c == '$');
 
   lexptr += namelen;
 
@@ -1963,13 +1985,14 @@ allocate_info (void)
    cplus_demangle_print does not, specifically the global destructor
    and constructor labels.  */
 
-char *
+gdb::unique_xmalloc_ptr<char>
 cp_comp_to_string (struct demangle_component *result, int estimated_len)
 {
   size_t err;
 
-  return cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI, result, estimated_len,
-			       &err);
+  char *res = cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI,
+				    result, estimated_len, &err);
+  return gdb::unique_xmalloc_ptr<char> (res);
 }
 
 /* Constructor for demangle_parse_info.  */
@@ -2128,7 +2151,7 @@ internal_error (const char *file, int li
 int
 main (int argc, char **argv)
 {
-  char *str2, *extra_chars = "", c;
+  char *str2, *extra_chars, c;
   char buf[65536];
   int arg;
   const char *errmsg;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-namespace.c ./gdb/cp-namespace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-namespace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cp-namespace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Helper routines for C++ support in GDB.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    Contributed by David Carlton and by Kealia, Inc.
 
@@ -93,8 +93,9 @@ cp_scan_for_anonymous_namespaces (const 
 		 anonymous namespace.  So add symbols in it to the
 		 namespace given by the previous component if there is
 		 one, or to the global namespace if there isn't.  */
+	      std::vector<const char *> excludes;
 	      add_using_directive (&local_using_directives,
-				   dest, src, NULL, NULL, NULL, 1,
+				   dest, src, NULL, NULL, excludes, 1,
 				   &objfile->objfile_obstack);
 	    }
 	  /* The "+ 2" is for the "::".  */
@@ -140,7 +141,9 @@ cp_basic_lookup_symbol (const char *name
 
       if (global_block != NULL)
 	{
-	  sym.symbol = lookup_symbol_in_block (name, global_block, domain);
+	  sym.symbol = lookup_symbol_in_block (name,
+					       symbol_name_match_type::FULL,
+					       global_block, domain);
 	  sym.block = global_block;
 	}
     }
@@ -246,40 +249,44 @@ cp_search_static_and_baseclasses (const 
 				  unsigned int prefix_len,
 				  int is_in_anonymous)
 {
-  struct block_symbol sym;
-  struct block_symbol klass_sym;
-  struct type *klass_type;
-
   /* Check for malformed input.  */
   if (prefix_len + 2 > strlen (name) || name[prefix_len + 1] != ':')
     return null_block_symbol;
 
-  /* Find the name of the class and the name of the method, variable, etc.  */
-
-  /* The class name is everything up to and including PREFIX_LEN.  */
-  std::string klass (name, prefix_len);
+  /* The class, namespace or function name is everything up to and
+     including PREFIX_LEN.  */
+  std::string scope (name, prefix_len);
 
   /* The rest of the name is everything else past the initial scope
      operator.  */
-  std::string nested (name + prefix_len + 2);
+  const char *nested = name + prefix_len + 2;
 
-  /* Lookup a class named KLASS.  If none is found, there is nothing
-     more that can be done.  KLASS could be a namespace, so always look
-     in VAR_DOMAIN.  This works for classes too because of
-     symbol_matches_domain (which should be replaced with something else,
-     but it's what we have today).  */
-  klass_sym = lookup_global_symbol (klass.c_str (), block, VAR_DOMAIN);
-  if (klass_sym.symbol == NULL)
+  /* Lookup the scope symbol.  If none is found, there is nothing more
+     that can be done.  SCOPE could be a namespace, so always look in
+     VAR_DOMAIN.  This works for classes too because of
+     symbol_matches_domain (which should be replaced with something
+     else, but it's what we have today).  */
+  block_symbol scope_sym = lookup_symbol_in_static_block (scope.c_str (),
+							  block, VAR_DOMAIN);
+  if (scope_sym.symbol == NULL)
+    scope_sym = lookup_global_symbol (scope.c_str (), block, VAR_DOMAIN);
+  if (scope_sym.symbol == NULL)
     return null_block_symbol;
-  klass_type = SYMBOL_TYPE (klass_sym.symbol);
 
-  /* Look for a symbol named NESTED in this class.
+  struct type *scope_type = SYMBOL_TYPE (scope_sym.symbol);
+
+  /* If the scope is a function/method, then look up NESTED as a local
+     static variable.  E.g., "print 'function()::static_var'".  */
+  if (TYPE_CODE (scope_type) == TYPE_CODE_FUNC
+      || TYPE_CODE (scope_type) == TYPE_CODE_METHOD)
+    return lookup_symbol (nested, SYMBOL_BLOCK_VALUE (scope_sym.symbol),
+			  VAR_DOMAIN, NULL);
+
+  /* Look for a symbol named NESTED in this class/namespace.
      The caller is assumed to have already have done a basic lookup of NAME.
      So we pass zero for BASIC_LOOKUP to cp_lookup_nested_symbol_1 here.  */
-  sym = cp_lookup_nested_symbol_1 (klass_type, nested.c_str (), name,
-				   block, domain, 0, is_in_anonymous);
-
-  return sym;
+  return cp_lookup_nested_symbol_1 (scope_type, nested, name,
+				    block, domain, 0, is_in_anonymous);
 }
 
 /* Look up NAME in the C++ namespace NAMESPACE.  Other arguments are
@@ -333,15 +340,6 @@ cp_lookup_symbol_in_namespace (const cha
   return sym;
 }
 
-/* Used for cleanups to reset the "searched" flag in case of an error.  */
-
-static void
-reset_directive_searched (void *data)
-{
-  struct using_direct *direct = (struct using_direct *) data;
-  direct->searched = 0;
-}
-
 /* Search for NAME by applying all import statements belonging to
    BLOCK which are applicable in SCOPE.  If DECLARATION_ONLY the
    search is restricted to using declarations.
@@ -383,7 +381,6 @@ cp_lookup_symbol_via_imports (const char
   struct block_symbol sym;
   int len;
   int directive_match;
-  struct cleanup *searched_cleanup;
 
   sym.symbol = NULL;
   sym.block = NULL;
@@ -420,9 +417,8 @@ cp_lookup_symbol_via_imports (const char
 	{
 	  /* Mark this import as searched so that the recursive call
 	     does not search it again.  */
-	  current->searched = 1;
-	  searched_cleanup = make_cleanup (reset_directive_searched,
-					   current);
+	  scoped_restore reset_directive_searched
+	    = make_scoped_restore (&current->searched, 1);
 
 	  /* If there is an import of a single declaration, compare the
 	     imported declaration (after optional renaming by its alias)
@@ -441,9 +437,6 @@ cp_lookup_symbol_via_imports (const char
 	     search of this import is complete.  */
 	  if (declaration_only || sym.symbol != NULL || current->declaration)
 	    {
-	      current->searched = 0;
-	      discard_cleanups (searched_cleanup);
-
 	      if (sym.symbol != NULL)
 		return sym;
 
@@ -455,10 +448,7 @@ cp_lookup_symbol_via_imports (const char
 	    if (strcmp (name, *excludep) == 0)
 	      break;
 	  if (*excludep)
-	    {
-	      discard_cleanups (searched_cleanup);
-	      continue;
-	    }
+	    continue;
 
 	  if (current->alias != NULL
 	      && strcmp (name, current->alias) == 0)
@@ -479,8 +469,6 @@ cp_lookup_symbol_via_imports (const char
 						  name, block,
 						  domain, 1, 0, 0);
 	    }
-	  current->searched = 0;
-	  discard_cleanups (searched_cleanup);
 
 	  if (sym.symbol != NULL)
 	    return sym;
@@ -1063,7 +1051,7 @@ cp_lookup_transparent_type_loop (const c
 
   full_name = (char *) alloca (scope_length + 2 + strlen (name) + 1);
   strncpy (full_name, scope, scope_length);
-  strncpy (full_name + scope_length, "::", 2);
+  memcpy (full_name + scope_length, "::", 2);
   strcpy (full_name + scope_length + 2, name);
 
   return basic_lookup_transparent_type (full_name);
@@ -1073,14 +1061,11 @@ cp_lookup_transparent_type_loop (const c
    obsolete.  */
 
 static void
-maintenance_cplus_namespace (char *args, int from_tty)
+maintenance_cplus_namespace (const char *args, int from_tty)
 {
   printf_unfiltered (_("The `maint namespace' command was removed.\n"));
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_cp_namespace;
-
 void
 _initialize_cp_namespace (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-support.c ./gdb/cp-support.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-support.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cp-support.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Helper routines for C++ support in GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by MontaVista Software.
 
@@ -36,6 +36,7 @@
 #include <signal.h>
 #include "gdb_setjmp.h"
 #include "safe-ctype.h"
+#include "selftest.h"
 
 #define d_left(dc) (dc)->u.s_binary.left
 #define d_right(dc) (dc)->u.s_binary.right
@@ -65,11 +66,6 @@ static void make_symbol_overload_list_qu
 
 struct cmd_list_element *maint_cplus_cmd_list = NULL;
 
-/* The actual commands.  */
-
-static void maint_cplus_command (char *arg, int from_tty);
-static void first_component_command (char *arg, int from_tty);
-
 /* A list of typedefs which should not be substituted by replace_typedefs.  */
 static const char * const ignore_typedefs[] =
   {
@@ -296,8 +292,6 @@ replace_typedefs_qualified_name (struct 
 				 canonicalization_ftype *finder,
 				 void *data)
 {
-  long len;
-  char *name;
   string_file buf;
   struct demangle_component *comp = ret_comp;
 
@@ -313,14 +307,14 @@ replace_typedefs_qualified_name (struct 
 	  struct demangle_component newobj;
 
 	  buf.write (d_left (comp)->u.s_name.s, d_left (comp)->u.s_name.len);
-	  len = buf.size ();
-	  name = (char *) obstack_copy0 (&info->obstack, buf.c_str (), len);
 	  newobj.type = DEMANGLE_COMPONENT_NAME;
-	  newobj.u.s_name.s = name;
-	  newobj.u.s_name.len = len;
+	  newobj.u.s_name.s
+	    = (char *) obstack_copy0 (&info->obstack,
+				      buf.c_str (), buf.size ());
+	  newobj.u.s_name.len = buf.size ();
 	  if (inspect_type (info, &newobj, finder, data))
 	    {
-	      char *n, *s;
+	      char *s;
 	      long slen;
 
 	      /* A typedef was substituted in NEW.  Convert it to a
@@ -328,15 +322,15 @@ replace_typedefs_qualified_name (struct 
 		 node.  */
 
 	      buf.clear ();
-	      n = cp_comp_to_string (&newobj, 100);
+	      gdb::unique_xmalloc_ptr<char> n
+		= cp_comp_to_string (&newobj, 100);
 	      if (n == NULL)
 		{
 		  /* If something went astray, abort typedef substitutions.  */
 		  return;
 		}
 
-	      s = copy_string_to_obstack (&info->obstack, n, &slen);
-	      xfree (n);
+	      s = copy_string_to_obstack (&info->obstack, n.get (), &slen);
 
 	      d_left (ret_comp)->type = DEMANGLE_COMPONENT_NAME;
 	      d_left (ret_comp)->u.s_name.s = s;
@@ -352,14 +346,14 @@ replace_typedefs_qualified_name (struct 
 	     typedefs in it.  Then print it to the stream to continue
 	     checking for more typedefs in the tree.  */
 	  replace_typedefs (info, d_left (comp), finder, data);
-	  name = cp_comp_to_string (d_left (comp), 100);
+	  gdb::unique_xmalloc_ptr<char> name
+	    = cp_comp_to_string (d_left (comp), 100);
 	  if (name == NULL)
 	    {
 	      /* If something went astray, abort typedef substitutions.  */
 	      return;
 	    }
-	  buf.puts (name);
-	  xfree (name);
+	  buf.puts (name.get ());
 	}
 
       buf.write ("::", 2);
@@ -373,15 +367,15 @@ replace_typedefs_qualified_name (struct 
   if (comp->type == DEMANGLE_COMPONENT_NAME)
     {
       buf.write (comp->u.s_name.s, comp->u.s_name.len);
-      len = buf.size ();
-      name = (char *) obstack_copy0 (&info->obstack, buf.c_str (), len);
 
       /* Replace the top (DEMANGLE_COMPONENT_QUAL_NAME) node
 	 with a DEMANGLE_COMPONENT_NAME node containing the whole
 	 name.  */
       ret_comp->type = DEMANGLE_COMPONENT_NAME;
-      ret_comp->u.s_name.s = name;
-      ret_comp->u.s_name.len = len;
+      ret_comp->u.s_name.s
+	= (char *) obstack_copy0 (&info->obstack,
+				  buf.c_str (), buf.size ());
+      ret_comp->u.s_name.len = buf.size ();
       inspect_type (info, ret_comp, finder, data);
     }
   else
@@ -423,7 +417,8 @@ replace_typedefs (struct demangle_parse_
 	      || ret_comp->type == DEMANGLE_COMPONENT_TEMPLATE
 	      || ret_comp->type == DEMANGLE_COMPONENT_BUILTIN_TYPE))
 	{
-	  char *local_name = cp_comp_to_string (ret_comp, 10);
+	  gdb::unique_xmalloc_ptr<char> local_name
+	    = cp_comp_to_string (ret_comp, 10);
 
 	  if (local_name != NULL)
 	    {
@@ -432,15 +427,14 @@ replace_typedefs (struct demangle_parse_
 	      sym = NULL;
 	      TRY
 		{
-		  sym = lookup_symbol (local_name, 0, VAR_DOMAIN, 0).symbol;
+		  sym = lookup_symbol (local_name.get (), 0,
+				       VAR_DOMAIN, 0).symbol;
 		}
 	      CATCH (except, RETURN_MASK_ALL)
 		{
 		}
 	      END_CATCH
 
-	      xfree (local_name);
-
 	      if (sym != NULL)
 		{
 		  struct type *otype = SYMBOL_TYPE (sym);
@@ -527,9 +521,11 @@ cp_canonicalize_string_full (const char 
       replace_typedefs (info.get (), info->tree, finder, data);
 
       /* Convert the tree back into a string.  */
-      ret = cp_comp_to_string (info->tree, estimated_len);
-      gdb_assert (!ret.empty ());
+      gdb::unique_xmalloc_ptr<char> us = cp_comp_to_string (info->tree,
+							    estimated_len);
+      gdb_assert (us);
 
+      ret = us.get ();
       /* Finally, compare the original string with the computed
 	 name, returning NULL if they are the same.  */
       if (ret == string)
@@ -566,15 +562,18 @@ cp_canonicalize_string (const char *stri
     return std::string ();
 
   estimated_len = strlen (string) * 2;
-  std::string ret = cp_comp_to_string (info->tree, estimated_len);
+  gdb::unique_xmalloc_ptr<char> us (cp_comp_to_string (info->tree,
+						       estimated_len));
 
-  if (ret.empty ())
+  if (!us)
     {
       warning (_("internal error: string \"%s\" failed to be canonicalized"),
 	       string);
       return std::string ();
     }
 
+  std::string ret (us.get ());
+
   if (ret == string)
     return std::string ();
 
@@ -637,7 +636,8 @@ char *
 cp_class_name_from_physname (const char *physname)
 {
   void *storage = NULL;
-  char *demangled_name = NULL, *ret;
+  char *demangled_name = NULL;
+  gdb::unique_xmalloc_ptr<char> ret;
   struct demangle_component *ret_comp, *prev_comp, *cur_comp;
   std::unique_ptr<demangle_parse_info> info;
   int done;
@@ -706,7 +706,6 @@ cp_class_name_from_physname (const char 
 	break;
       }
 
-  ret = NULL;
   if (cur_comp != NULL && prev_comp != NULL)
     {
       /* We want to discard the rightmost child of PREV_COMP.  */
@@ -718,7 +717,7 @@ cp_class_name_from_physname (const char 
 
   xfree (storage);
   xfree (demangled_name);
-  return ret;
+  return ret.release ();
 }
 
 /* Return the child of COMP which is the basename of a method,
@@ -785,7 +784,8 @@ char *
 method_name_from_physname (const char *physname)
 {
   void *storage = NULL;
-  char *demangled_name = NULL, *ret;
+  char *demangled_name = NULL;
+  gdb::unique_xmalloc_ptr<char> ret;
   struct demangle_component *ret_comp;
   std::unique_ptr<demangle_parse_info> info;
 
@@ -796,7 +796,6 @@ method_name_from_physname (const char *p
 
   ret_comp = unqualified_name_from_comp (info->tree);
 
-  ret = NULL;
   if (ret_comp != NULL)
     /* The ten is completely arbitrary; we don't have a good
        estimate.  */
@@ -804,7 +803,7 @@ method_name_from_physname (const char *p
 
   xfree (storage);
   xfree (demangled_name);
-  return ret;
+  return ret.release ();
 }
 
 /* If FULL_NAME is the demangled name of a C++ function (including an
@@ -816,7 +815,7 @@ method_name_from_physname (const char *p
 char *
 cp_func_name (const char *full_name)
 {
-  char *ret;
+  gdb::unique_xmalloc_ptr<char> ret;
   struct demangle_component *ret_comp;
   std::unique_ptr<demangle_parse_info> info;
 
@@ -826,24 +825,25 @@ cp_func_name (const char *full_name)
 
   ret_comp = unqualified_name_from_comp (info->tree);
 
-  ret = NULL;
   if (ret_comp != NULL)
     ret = cp_comp_to_string (ret_comp, 10);
 
-  return ret;
+  return ret.release ();
 }
 
-/* DEMANGLED_NAME is the name of a function, including parameters and
-   (optionally) a return type.  Return the name of the function without
-   parameters or return type, or NULL if we can not parse the name.  */
+/* Helper for cp_remove_params.  DEMANGLED_NAME is the name of a
+   function, including parameters and (optionally) a return type.
+   Return the name of the function without parameters or return type,
+   or NULL if we can not parse the name.  If REQUIRE_PARAMS is false,
+   then tolerate a non-existing or unbalanced parameter list.  */
 
-char *
-cp_remove_params (const char *demangled_name)
+static gdb::unique_xmalloc_ptr<char>
+cp_remove_params_1 (const char *demangled_name, bool require_params)
 {
-  int done = 0;
+  bool done = false;
   struct demangle_component *ret_comp;
   std::unique_ptr<demangle_parse_info> info;
-  char *ret = NULL;
+  gdb::unique_xmalloc_ptr<char> ret;
 
   if (demangled_name == NULL)
     return NULL;
@@ -867,17 +867,63 @@ cp_remove_params (const char *demangled_
         ret_comp = d_left (ret_comp);
         break;
       default:
-	done = 1;
+	done = true;
 	break;
       }
 
   /* What we have now should be a function.  Return its name.  */
   if (ret_comp->type == DEMANGLE_COMPONENT_TYPED_NAME)
     ret = cp_comp_to_string (d_left (ret_comp), 10);
+  else if (!require_params
+	   && (ret_comp->type == DEMANGLE_COMPONENT_NAME
+	       || ret_comp->type == DEMANGLE_COMPONENT_QUAL_NAME
+	       || ret_comp->type == DEMANGLE_COMPONENT_TEMPLATE))
+    ret = cp_comp_to_string (ret_comp, 10);
 
   return ret;
 }
 
+/* DEMANGLED_NAME is the name of a function, including parameters and
+   (optionally) a return type.  Return the name of the function
+   without parameters or return type, or NULL if we can not parse the
+   name.  */
+
+gdb::unique_xmalloc_ptr<char>
+cp_remove_params (const char *demangled_name)
+{
+  return cp_remove_params_1 (demangled_name, true);
+}
+
+/* See cp-support.h.  */
+
+gdb::unique_xmalloc_ptr<char>
+cp_remove_params_if_any (const char *demangled_name, bool completion_mode)
+{
+  /* Trying to remove parameters from the empty string fails.  If
+     we're completing / matching everything, avoid returning NULL
+     which would make callers interpret the result as an error.  */
+  if (demangled_name[0] == '\0' && completion_mode)
+    return gdb::unique_xmalloc_ptr<char> (xstrdup (""));
+
+  gdb::unique_xmalloc_ptr<char> without_params
+    = cp_remove_params_1 (demangled_name, false);
+
+  if (without_params == NULL && completion_mode)
+    {
+      std::string copy = demangled_name;
+
+      while (!copy.empty ())
+	{
+	  copy.pop_back ();
+	  without_params = cp_remove_params_1 (copy.c_str (), false);
+	  if (without_params != NULL)
+	    break;
+	}
+    }
+
+  return without_params;
+}
+
 /* Here are some random pieces of trivia to keep in mind while trying
    to take apart demangled names:
 
@@ -931,10 +977,6 @@ cp_find_first_component (const char *nam
    the recursion easier, it also stops if it reaches an unexpected ')'
    or '>' if the value of PERMISSIVE is nonzero.  */
 
-/* Let's optimize away calls to strlen("operator").  */
-
-#define LENGTH_OF_OPERATOR 8
-
 static unsigned int
 cp_find_first_component_aux (const char *name, int permissive)
 {
@@ -1006,14 +1048,15 @@ cp_find_first_component_aux (const char 
 	case 'o':
 	  /* Operator names can screw up the recursion.  */
 	  if (operator_possible
-	      && strncmp (name + index, "operator",
-			  LENGTH_OF_OPERATOR) == 0)
+	      && startswith (name + index, CP_OPERATOR_STR))
 	    {
-	      index += LENGTH_OF_OPERATOR;
+	      index += CP_OPERATOR_LEN;
 	      while (ISSPACE(name[index]))
 		++index;
 	      switch (name[index])
 		{
+		case '\0':
+		  return index;
 		  /* Skip over one less than the appropriate number of
 		     characters: the for loop will skip over the last
 		     one.  */
@@ -1105,7 +1148,7 @@ overload_list_add_symbol (struct symbol 
 {
   int newsize;
   int i;
-  char *sym_name;
+  gdb::unique_xmalloc_ptr<char> sym_name;
 
   /* If there is no type information, we can't do anything, so
      skip.  */
@@ -1124,13 +1167,8 @@ overload_list_add_symbol (struct symbol 
     return;
 
   /* skip symbols that cannot match */
-  if (strcmp (sym_name, oload_name) != 0)
-    {
-      xfree (sym_name);
-      return;
-    }
-
-  xfree (sym_name);
+  if (strcmp (sym_name.get (), oload_name) != 0)
+    return;
 
   /* We have a match for an overload instance, so add SYM to the
      current list of overload instances */
@@ -1192,7 +1230,9 @@ make_symbol_overload_list_block (const c
   struct block_iterator iter;
   struct symbol *sym;
 
-  ALL_BLOCK_SYMBOLS_WITH_NAME (block, name, iter, sym)
+  lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
+
+  ALL_BLOCK_SYMBOLS_WITH_NAME (block, lookup_name, iter, sym)
     overload_list_add_symbol (sym, name);
 }
 
@@ -1297,16 +1337,6 @@ make_symbol_overload_list_adl (struct ty
   return sym_return_val;
 }
 
-/* Used for cleanups to reset the "searched" flag in case of an
-   error.  */
-
-static void
-reset_directive_searched (void *data)
-{
-  struct using_direct *direct = (struct using_direct *) data;
-  direct->searched = 0;
-}
-
 /* This applies the using directives to add namespaces to search in,
    and then searches for overloads in all of those namespaces.  It
    adds the symbols found to sym_return_val.  Arguments are as in
@@ -1343,16 +1373,11 @@ make_symbol_overload_list_using (const c
 	  {
 	    /* Mark this import as searched so that the recursive call
 	       does not search it again.  */
-	    struct cleanup *old_chain;
-	    current->searched = 1;
-	    old_chain = make_cleanup (reset_directive_searched,
-				      current);
+	    scoped_restore reset_directive_searched
+	      = make_scoped_restore (&current->searched, 1);
 
 	    make_symbol_overload_list_using (func_name,
 					     current->import_src);
-
-	    current->searched = 0;
-	    discard_cleanups (old_chain);
 	  }
       }
 
@@ -1548,32 +1573,27 @@ gdb_demangle (const char *name, int opti
 
 	  if (!error_reported)
 	    {
-	      char *short_msg, *long_msg;
-	      struct cleanup *back_to;
-
-	      short_msg = xstrprintf (_("unable to demangle '%s' "
-				      "(demangler failed with signal %d)"),
-				    name, crash_signal);
-	      back_to = make_cleanup (xfree, short_msg);
-
-	      long_msg = xstrprintf ("%s:%d: %s: %s", __FILE__, __LINE__,
-				    "demangler-warning", short_msg);
-	      make_cleanup (xfree, long_msg);
+	      std::string short_msg
+		= string_printf (_("unable to demangle '%s' "
+				   "(demangler failed with signal %d)"),
+				 name, crash_signal);
+
+	      std::string long_msg
+		= string_printf ("%s:%d: %s: %s", __FILE__, __LINE__,
+				 "demangler-warning", short_msg.c_str ());
 
-	      make_cleanup_restore_target_terminal ();
-	      target_terminal_ours_for_output ();
+	      target_terminal::scoped_restore_terminal_state term_state;
+	      target_terminal::ours_for_output ();
 
 	      begin_line ();
 	      if (core_dump_allowed)
 		fprintf_unfiltered (gdb_stderr,
 				    _("%s\nAttempting to dump core.\n"),
-				    long_msg);
+				    long_msg.c_str ());
 	      else
-		warn_cant_dump_core (long_msg);
+		warn_cant_dump_core (long_msg.c_str ());
 
-	      demangler_warning (__FILE__, __LINE__, "%s", short_msg);
-
-	      do_cleanups (back_to);
+	      demangler_warning (__FILE__, __LINE__, "%s", short_msg.c_str ());
 
 	      error_reported = 1;
 	    }
@@ -1595,10 +1615,512 @@ gdb_sniff_from_mangled_name (const char 
   return *demangled != NULL;
 }
 
+/* See cp-support.h.  */
+
+unsigned int
+cp_search_name_hash (const char *search_name)
+{
+  /* cp_entire_prefix_len assumes a fully-qualified name with no
+     leading "::".  */
+  if (startswith (search_name, "::"))
+    search_name += 2;
+
+  unsigned int prefix_len = cp_entire_prefix_len (search_name);
+  if (prefix_len != 0)
+    search_name += prefix_len + 2;
+
+  unsigned int hash = 0;
+  for (const char *string = search_name; *string != '\0'; ++string)
+    {
+      string = skip_spaces (string);
+
+      if (*string == '(')
+	break;
+
+      /* Ignore ABI tags such as "[abi:cxx11].  */
+      if (*string == '['
+	  && startswith (string + 1, "abi:")
+	  && string[5] != ':')
+	break;
+
+      hash = SYMBOL_HASH_NEXT (hash, *string);
+    }
+  return hash;
+}
+
+/* Helper for cp_symbol_name_matches (i.e., symbol_name_matcher_ftype
+   implementation for symbol_name_match_type::WILD matching).  Split
+   to a separate function for unit-testing convenience.
+
+   If SYMBOL_SEARCH_NAME has more scopes than LOOKUP_NAME, we try to
+   match ignoring the extra leading scopes of SYMBOL_SEARCH_NAME.
+   This allows conveniently setting breakpoints on functions/methods
+   inside any namespace/class without specifying the fully-qualified
+   name.
+
+   E.g., these match:
+
+    [symbol search name]   [lookup name]
+    foo::bar::func         foo::bar::func
+    foo::bar::func         bar::func
+    foo::bar::func         func
+
+   While these don't:
+
+    [symbol search name]   [lookup name]
+    foo::zbar::func        bar::func
+    foo::bar::func         foo::func
+
+   See more examples in the test_cp_symbol_name_matches selftest
+   function below.
+
+   See symbol_name_matcher_ftype for description of SYMBOL_SEARCH_NAME
+   and COMP_MATCH_RES.
+
+   LOOKUP_NAME/LOOKUP_NAME_LEN is the name we're looking up.
+
+   See strncmp_iw_with_mode for description of MODE.
+*/
+
+static bool
+cp_symbol_name_matches_1 (const char *symbol_search_name,
+			  const char *lookup_name,
+			  size_t lookup_name_len,
+			  strncmp_iw_mode mode,
+			  completion_match_result *comp_match_res)
+{
+  const char *sname = symbol_search_name;
+  completion_match_for_lcd *match_for_lcd
+    = (comp_match_res != NULL ? &comp_match_res->match_for_lcd : NULL);
+
+  while (true)
+    {
+      if (strncmp_iw_with_mode (sname, lookup_name, lookup_name_len,
+				mode, language_cplus, match_for_lcd) == 0)
+	{
+	  if (comp_match_res != NULL)
+	    {
+	      /* Note here we set different MATCH and MATCH_FOR_LCD
+		 strings.  This is because with
+
+		  (gdb) b push_bac[TAB]
+
+		 we want the completion matches to list
+
+		  std::vector<int>::push_back(...)
+		  std::vector<char>::push_back(...)
+
+		 etc., which are SYMBOL_SEARCH_NAMEs, while we want
+		 the input line to auto-complete to
+
+		  (gdb) push_back(...)
+
+		 which is SNAME, not to
+
+		  (gdb) std::vector<
+
+		 which would be the regular common prefix between all
+		 the matches otherwise.  */
+	      comp_match_res->set_match (symbol_search_name, sname);
+	    }
+	  return true;
+	}
+
+      unsigned int len = cp_find_first_component (sname);
+
+      if (sname[len] == '\0')
+	return false;
+
+      gdb_assert (sname[len] == ':');
+      /* Skip the '::'.  */
+      sname += len + 2;
+    }
+}
+
+/* C++ symbol_name_matcher_ftype implementation.  */
+
+static bool
+cp_fq_symbol_name_matches (const char *symbol_search_name,
+			   const lookup_name_info &lookup_name,
+			   completion_match_result *comp_match_res)
+{
+  /* Get the demangled name.  */
+  const std::string &name = lookup_name.cplus ().lookup_name ();
+  completion_match_for_lcd *match_for_lcd
+    = (comp_match_res != NULL ? &comp_match_res->match_for_lcd : NULL);
+  strncmp_iw_mode mode = (lookup_name.completion_mode ()
+			  ? strncmp_iw_mode::NORMAL
+			  : strncmp_iw_mode::MATCH_PARAMS);
+
+  if (strncmp_iw_with_mode (symbol_search_name,
+			    name.c_str (), name.size (),
+			    mode, language_cplus, match_for_lcd) == 0)
+    {
+      if (comp_match_res != NULL)
+	comp_match_res->set_match (symbol_search_name);
+      return true;
+    }
+
+  return false;
+}
+
+/* C++ symbol_name_matcher_ftype implementation for wild matches.
+   Defers work to cp_symbol_name_matches_1.  */
+
+static bool
+cp_symbol_name_matches (const char *symbol_search_name,
+			const lookup_name_info &lookup_name,
+			completion_match_result *comp_match_res)
+{
+  /* Get the demangled name.  */
+  const std::string &name = lookup_name.cplus ().lookup_name ();
+
+  strncmp_iw_mode mode = (lookup_name.completion_mode ()
+			  ? strncmp_iw_mode::NORMAL
+			  : strncmp_iw_mode::MATCH_PARAMS);
+
+  return cp_symbol_name_matches_1 (symbol_search_name,
+				   name.c_str (), name.size (),
+				   mode, comp_match_res);
+}
+
+/* See cp-support.h.  */
+
+symbol_name_matcher_ftype *
+cp_get_symbol_name_matcher (const lookup_name_info &lookup_name)
+{
+  switch (lookup_name.match_type ())
+    {
+    case symbol_name_match_type::FULL:
+    case symbol_name_match_type::EXPRESSION:
+    case symbol_name_match_type::SEARCH_NAME:
+      return cp_fq_symbol_name_matches;
+    case symbol_name_match_type::WILD:
+      return cp_symbol_name_matches;
+    }
+
+  gdb_assert_not_reached ("");
+}
+
+#if GDB_SELF_TEST
+
+namespace selftests {
+
+void
+test_cp_symbol_name_matches ()
+{
+#define CHECK_MATCH(SYMBOL, INPUT)					\
+  SELF_CHECK (cp_symbol_name_matches_1 (SYMBOL,				\
+					INPUT, sizeof (INPUT) - 1,	\
+					strncmp_iw_mode::MATCH_PARAMS,	\
+					NULL))
+
+#define CHECK_NOT_MATCH(SYMBOL, INPUT)					\
+  SELF_CHECK (!cp_symbol_name_matches_1 (SYMBOL,			\
+					 INPUT, sizeof (INPUT) - 1,	\
+					 strncmp_iw_mode::MATCH_PARAMS,	\
+					 NULL))
+
+  /* Like CHECK_MATCH, and also check that INPUT (and all substrings
+     that start at index 0) completes to SYMBOL.  */
+#define CHECK_MATCH_C(SYMBOL, INPUT)					\
+  do									\
+    {									\
+      CHECK_MATCH (SYMBOL, INPUT);					\
+      for (size_t i = 0; i < sizeof (INPUT) - 1; i++)			\
+	SELF_CHECK (cp_symbol_name_matches_1 (SYMBOL, INPUT, i,		\
+					      strncmp_iw_mode::NORMAL,	\
+					      NULL));			\
+    } while (0)
+
+  /* Like CHECK_NOT_MATCH, and also check that INPUT does NOT complete
+     to SYMBOL.  */
+#define CHECK_NOT_MATCH_C(SYMBOL, INPUT)				\
+  do									\
+    { 									\
+      CHECK_NOT_MATCH (SYMBOL, INPUT);					\
+      SELF_CHECK (!cp_symbol_name_matches_1 (SYMBOL, INPUT,		\
+					     sizeof (INPUT) - 1,	\
+					     strncmp_iw_mode::NORMAL,	\
+					     NULL));			\
+    } while (0)
+
+  /* Lookup name without parens matches all overloads.  */
+  CHECK_MATCH_C ("function()", "function");
+  CHECK_MATCH_C ("function(int)", "function");
+
+  /* Check whitespace around parameters is ignored.  */
+  CHECK_MATCH_C ("function()", "function ()");
+  CHECK_MATCH_C ("function ( )", "function()");
+  CHECK_MATCH_C ("function ()", "function( )");
+  CHECK_MATCH_C ("func(int)", "func( int )");
+  CHECK_MATCH_C ("func(int)", "func ( int ) ");
+  CHECK_MATCH_C ("func ( int )", "func( int )");
+  CHECK_MATCH_C ("func ( int )", "func ( int ) ");
+
+  /* Check symbol name prefixes aren't incorrectly matched.  */
+  CHECK_NOT_MATCH ("func", "function");
+  CHECK_NOT_MATCH ("function", "func");
+  CHECK_NOT_MATCH ("function()", "func");
+
+  /* Check that if the lookup name includes parameters, only the right
+     overload matches.  */
+  CHECK_MATCH_C ("function(int)", "function(int)");
+  CHECK_NOT_MATCH_C ("function(int)", "function()");
+
+  /* Check that whitespace within symbol names is not ignored.  */
+  CHECK_NOT_MATCH_C ("function", "func tion");
+  CHECK_NOT_MATCH_C ("func__tion", "func_ _tion");
+  CHECK_NOT_MATCH_C ("func11tion", "func1 1tion");
+
+  /* Check the converse, which can happen with template function,
+     where the return type is part of the demangled name.  */
+  CHECK_NOT_MATCH_C ("func tion", "function");
+  CHECK_NOT_MATCH_C ("func1 1tion", "func11tion");
+  CHECK_NOT_MATCH_C ("func_ _tion", "func__tion");
+
+  /* Within parameters too.  */
+  CHECK_NOT_MATCH_C ("func(param)", "func(par am)");
+
+  /* Check handling of whitespace around C++ operators.  */
+  CHECK_NOT_MATCH_C ("operator<<", "opera tor<<");
+  CHECK_NOT_MATCH_C ("operator<<", "operator< <");
+  CHECK_NOT_MATCH_C ("operator<<", "operator < <");
+  CHECK_NOT_MATCH_C ("operator==", "operator= =");
+  CHECK_NOT_MATCH_C ("operator==", "operator = =");
+  CHECK_MATCH_C ("operator<<", "operator <<");
+  CHECK_MATCH_C ("operator<<()", "operator <<");
+  CHECK_NOT_MATCH_C ("operator<<()", "operator<<(int)");
+  CHECK_NOT_MATCH_C ("operator<<(int)", "operator<<()");
+  CHECK_MATCH_C ("operator==", "operator ==");
+  CHECK_MATCH_C ("operator==()", "operator ==");
+  CHECK_MATCH_C ("operator <<", "operator<<");
+  CHECK_MATCH_C ("operator ==", "operator==");
+  CHECK_MATCH_C ("operator bool", "operator  bool");
+  CHECK_MATCH_C ("operator bool ()", "operator  bool");
+  CHECK_MATCH_C ("operatorX<<", "operatorX < <");
+  CHECK_MATCH_C ("Xoperator<<", "Xoperator < <");
+
+  CHECK_MATCH_C ("operator()(int)", "operator()(int)");
+  CHECK_MATCH_C ("operator()(int)", "operator ( ) ( int )");
+  CHECK_MATCH_C ("operator()<long>(int)", "operator ( ) < long > ( int )");
+  /* The first "()" is not the parameter list.  */
+  CHECK_NOT_MATCH ("operator()(int)", "operator");
+
+  /* Misc user-defined operator tests.  */
+
+  CHECK_NOT_MATCH_C ("operator/=()", "operator ^=");
+  /* Same length at end of input.  */
+  CHECK_NOT_MATCH_C ("operator>>", "operator[]");
+  /* Same length but not at end of input.  */
+  CHECK_NOT_MATCH_C ("operator>>()", "operator[]()");
+
+  CHECK_MATCH_C ("base::operator char*()", "base::operator char*()");
+  CHECK_MATCH_C ("base::operator char*()", "base::operator char * ()");
+  CHECK_MATCH_C ("base::operator char**()", "base::operator char * * ()");
+  CHECK_MATCH ("base::operator char**()", "base::operator char * *");
+  CHECK_MATCH_C ("base::operator*()", "base::operator*()");
+  CHECK_NOT_MATCH_C ("base::operator char*()", "base::operatorc");
+  CHECK_NOT_MATCH ("base::operator char*()", "base::operator char");
+  CHECK_NOT_MATCH ("base::operator char*()", "base::operat");
+
+  /* Check handling of whitespace around C++ scope operators.  */
+  CHECK_NOT_MATCH_C ("foo::bar", "foo: :bar");
+  CHECK_MATCH_C ("foo::bar", "foo :: bar");
+  CHECK_MATCH_C ("foo :: bar", "foo::bar");
+
+  CHECK_MATCH_C ("abc::def::ghi()", "abc::def::ghi()");
+  CHECK_MATCH_C ("abc::def::ghi ( )", "abc::def::ghi()");
+  CHECK_MATCH_C ("abc::def::ghi()", "abc::def::ghi ( )");
+  CHECK_MATCH_C ("function()", "function()");
+  CHECK_MATCH_C ("bar::function()", "bar::function()");
+
+  /* Wild matching tests follow.  */
+
+  /* Tests matching symbols in some scope.  */
+  CHECK_MATCH_C ("foo::function()", "function");
+  CHECK_MATCH_C ("foo::function(int)", "function");
+  CHECK_MATCH_C ("foo::bar::function()", "function");
+  CHECK_MATCH_C ("bar::function()", "bar::function");
+  CHECK_MATCH_C ("foo::bar::function()", "bar::function");
+  CHECK_MATCH_C ("foo::bar::function(int)", "bar::function");
+
+  /* Same, with parameters in the lookup name.  */
+  CHECK_MATCH_C ("foo::function()", "function()");
+  CHECK_MATCH_C ("foo::bar::function()", "function()");
+  CHECK_MATCH_C ("foo::function(int)", "function(int)");
+  CHECK_MATCH_C ("foo::function()", "foo::function()");
+  CHECK_MATCH_C ("foo::bar::function()", "bar::function()");
+  CHECK_MATCH_C ("foo::bar::function(int)", "bar::function(int)");
+  CHECK_MATCH_C ("bar::function()", "bar::function()");
+
+  CHECK_NOT_MATCH_C ("foo::bar::function(int)", "bar::function()");
+
+  CHECK_MATCH_C ("(anonymous namespace)::bar::function(int)",
+		 "bar::function(int)");
+  CHECK_MATCH_C ("foo::(anonymous namespace)::bar::function(int)",
+		 "function(int)");
+
+  /* Lookup scope wider than symbol scope, should not match.  */
+  CHECK_NOT_MATCH_C ("function()", "bar::function");
+  CHECK_NOT_MATCH_C ("function()", "bar::function()");
+
+  /* Explicit global scope doesn't match.  */
+  CHECK_NOT_MATCH_C ("foo::function()", "::function");
+  CHECK_NOT_MATCH_C ("foo::function()", "::function()");
+  CHECK_NOT_MATCH_C ("foo::function(int)", "::function()");
+  CHECK_NOT_MATCH_C ("foo::function(int)", "::function(int)");
+
+  /* Test ABI tag matching/ignoring.  */
+
+  /* If the symbol name has an ABI tag, but the lookup name doesn't,
+     then the ABI tag in the symbol name is ignored.  */
+  CHECK_MATCH_C ("function[abi:foo]()", "function");
+  CHECK_MATCH_C ("function[abi:foo](int)", "function");
+  CHECK_MATCH_C ("function[abi:foo]()", "function ()");
+  CHECK_NOT_MATCH_C ("function[abi:foo]()", "function (int)");
+
+  CHECK_MATCH_C ("function[abi:foo]()", "function[abi:foo]");
+  CHECK_MATCH_C ("function[abi:foo](int)", "function[abi:foo]");
+  CHECK_MATCH_C ("function[abi:foo]()", "function[abi:foo] ()");
+  CHECK_MATCH_C ("function[abi:foo][abi:bar]()", "function");
+  CHECK_MATCH_C ("function[abi:foo][abi:bar](int)", "function");
+  CHECK_MATCH_C ("function[abi:foo][abi:bar]()", "function[abi:foo]");
+  CHECK_MATCH_C ("function[abi:foo][abi:bar](int)", "function[abi:foo]");
+  CHECK_MATCH_C ("function[abi:foo][abi:bar]()", "function[abi:foo] ()");
+  CHECK_NOT_MATCH_C ("function[abi:foo][abi:bar]()", "function[abi:foo] (int)");
+
+  CHECK_MATCH_C ("function  [abi:foo][abi:bar] ( )", "function [abi:foo]");
+
+  /* If the symbol name does not have an ABI tag, while the lookup
+     name has one, then there's no match.  */
+  CHECK_NOT_MATCH_C ("function()", "function[abi:foo]()");
+  CHECK_NOT_MATCH_C ("function()", "function[abi:foo]");
+}
+
+/* If non-NULL, return STR wrapped in quotes.  Otherwise, return a
+   "<null>" string (with no quotes).  */
+
+static std::string
+quote (const char *str)
+{
+  if (str != NULL)
+    return std::string (1, '\"') + str + '\"';
+  else
+    return "<null>";
+}
+
+/* Check that removing parameter info out of NAME produces EXPECTED.
+   COMPLETION_MODE indicates whether we're testing normal and
+   completion mode.  FILE and LINE are used to provide better test
+   location information in case ithe check fails.  */
+
+static void
+check_remove_params (const char *file, int line,
+		      const char *name, const char *expected,
+		      bool completion_mode)
+{
+  gdb::unique_xmalloc_ptr<char> result
+    = cp_remove_params_if_any (name, completion_mode);
+
+  if ((expected == NULL) != (result == NULL)
+      || (expected != NULL
+	  && strcmp (result.get (), expected) != 0))
+    {
+      error (_("%s:%d: make-paramless self-test failed: (completion=%d) "
+	       "\"%s\" -> %s, expected %s"),
+	     file, line, completion_mode, name,
+	     quote (result.get ()).c_str (), quote (expected).c_str ());
+    }
+}
+
+/* Entry point for cp_remove_params unit tests.  */
+
+static void
+test_cp_remove_params ()
+{
+  /* Check that removing parameter info out of NAME produces EXPECTED.
+     Checks both normal and completion modes.  */
+#define CHECK(NAME, EXPECTED)						\
+  do									\
+    {									\
+      check_remove_params (__FILE__, __LINE__, NAME, EXPECTED, false);	\
+      check_remove_params (__FILE__, __LINE__, NAME, EXPECTED, true);	\
+    }									\
+  while (0)
+
+  /* Similar, but used when NAME is incomplete -- i.e., is has
+     unbalanced parentheses.  In this case, looking for the exact name
+     should fail / return empty.  */
+#define CHECK_INCOMPL(NAME, EXPECTED)					\
+  do									\
+    {									\
+      check_remove_params (__FILE__, __LINE__, NAME, NULL, false);	\
+      check_remove_params (__FILE__, __LINE__, NAME, EXPECTED, true);	\
+    }									\
+  while (0)
+
+  CHECK ("function()", "function");
+  CHECK_INCOMPL ("function(", "function");
+  CHECK ("function() const", "function");
+
+  CHECK ("(anonymous namespace)::A::B::C",
+	 "(anonymous namespace)::A::B::C");
+
+  CHECK ("A::(anonymous namespace)",
+	 "A::(anonymous namespace)");
+
+  CHECK_INCOMPL ("A::(anonymou", "A");
+
+  CHECK ("A::foo<int>()",
+	 "A::foo<int>");
+
+  CHECK_INCOMPL ("A::foo<int>(",
+		 "A::foo<int>");
+
+  CHECK ("A::foo<(anonymous namespace)::B>::func(int)",
+	 "A::foo<(anonymous namespace)::B>::func");
+
+  CHECK_INCOMPL ("A::foo<(anonymous namespace)::B>::func(in",
+		 "A::foo<(anonymous namespace)::B>::func");
+
+  CHECK_INCOMPL ("A::foo<(anonymous namespace)::B>::",
+		 "A::foo<(anonymous namespace)::B>");
+
+  CHECK_INCOMPL ("A::foo<(anonymous namespace)::B>:",
+		 "A::foo<(anonymous namespace)::B>");
+
+  CHECK ("A::foo<(anonymous namespace)::B>",
+	 "A::foo<(anonymous namespace)::B>");
+
+  CHECK_INCOMPL ("A::foo<(anonymous namespace)::B",
+		 "A::foo");
+
+  /* Shouldn't this parse?  Looks like a bug in
+     cp_demangled_name_to_comp.  See PR c++/22411.  */
+#if 0
+  CHECK ("A::foo<void(int)>::func(int)",
+	 "A::foo<void(int)>::func");
+#else
+  CHECK_INCOMPL ("A::foo<void(int)>::func(int)",
+		 "A::foo");
+#endif
+
+  CHECK_INCOMPL ("A::foo<void(int",
+		 "A::foo");
+
+#undef CHECK
+#undef CHECK_INCOMPL
+}
+
+} // namespace selftests
+
+#endif /* GDB_SELF_CHECK */
+
 /* Don't allow just "maintenance cplus".  */
 
 static  void
-maint_cplus_command (char *arg, int from_tty)
+maint_cplus_command (const char *arg, int from_tty)
 {
   printf_unfiltered (_("\"maintenance cplus\" must be followed "
 		       "by the name of a command.\n"));
@@ -1612,7 +2134,7 @@ maint_cplus_command (char *arg, int from
    cp_find_first_component.  */
 
 static void
-first_component_command (char *arg, int from_tty)
+first_component_command (const char *arg, int from_tty)
 {
   int len;  
   char *prefix; 
@@ -1629,13 +2151,10 @@ first_component_command (char *arg, int 
   printf_unfiltered ("%s\n", prefix);
 }
 
-extern initialize_file_ftype _initialize_cp_support; /* -Wmissing-prototypes */
-
-
 /* Implement "info vtbl".  */
 
 static void
-info_vtbl_command (char *arg, int from_tty)
+info_vtbl_command (const char *arg, int from_tty)
 {
   struct value *value;
 
@@ -1680,4 +2199,11 @@ display the offending symbol."),
 			   &maintenance_set_cmdlist,
 			   &maintenance_show_cmdlist);
 #endif
+
+#if GDB_SELF_TEST
+  selftests::register_test ("cp_symbol_name_matches",
+			    selftests::test_cp_symbol_name_matches);
+  selftests::register_test ("cp_remove_params",
+			    selftests::test_cp_remove_params);
+#endif
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-support.h ./gdb/cp-support.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-support.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cp-support.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Helper routines for C++ support in GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by MontaVista Software.
    Namespace support contributed by David Carlton.
@@ -46,6 +46,14 @@ struct using_direct;
 
 #define CP_ANONYMOUS_NAMESPACE_LEN 21
 
+/* A string representing the start of an operator name.  */
+
+#define CP_OPERATOR_STR "operator"
+
+/* The length of CP_OPERATOR_STR.  */
+
+#define CP_OPERATOR_LEN 8
+
 /* The result of parsing a name.  */
 
 struct demangle_parse_info
@@ -87,7 +95,16 @@ extern unsigned int cp_entire_prefix_len
 
 extern char *cp_func_name (const char *full_name);
 
-extern char *cp_remove_params (const char *demangled_name);
+extern gdb::unique_xmalloc_ptr<char> cp_remove_params
+  (const char *demanged_name);
+
+/* DEMANGLED_NAME is the name of a function, (optionally) including
+   parameters and (optionally) a return type.  Return the name of the
+   function without parameters or return type, or NULL if we can not
+   parse the name.  If COMPLETION_MODE is true, then tolerate a
+   non-existing or unbalanced parameter list.  */
+extern gdb::unique_xmalloc_ptr<char> cp_remove_params_if_any
+  (const char *demangled_name, bool completion_mode);
 
 extern struct symbol **make_symbol_overload_list (const char *,
 						  const char *);
@@ -99,6 +116,18 @@ extern struct symbol **make_symbol_overl
 extern struct type *cp_lookup_rtti_type (const char *name,
 					 struct block *block);
 
+/* Produce an unsigned hash value from SEARCH_NAME that is compatible
+   with cp_symbol_name_matches.  Only the last component in
+   "foo::bar::function()" is considered for hashing purposes (i.e.,
+   the entire prefix is skipped), so that later on looking up for
+   "function" or "bar::function" in all namespaces is possible.  */
+extern unsigned int cp_search_name_hash (const char *search_name);
+
+/* Implement the "la_get_symbol_name_matcher" language_defn method for
+   C++.  */
+extern symbol_name_matcher_ftype *cp_get_symbol_name_matcher
+  (const lookup_name_info &lookup_name);
+
 /* Functions/variables from cp-namespace.c.  */
 
 extern int cp_is_in_anonymous (const char *symbol_name);
@@ -142,8 +171,8 @@ struct type *cp_find_type_baseclass_by_n
 extern std::unique_ptr<demangle_parse_info> cp_demangled_name_to_comp
      (const char *demangled_name, const char **errmsg);
 
-extern char *cp_comp_to_string (struct demangle_component *result,
-				int estimated_len);
+extern gdb::unique_xmalloc_ptr<char> cp_comp_to_string
+  (struct demangle_component *result, int estimated_len);
 
 extern void cp_merge_demangle_parse_infos (struct demangle_parse_info *,
 					   struct demangle_component *,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-valprint.c ./gdb/cp-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cp-valprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cp-valprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support for printing C++ values for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -35,6 +35,7 @@
 #include "language.h"
 #include "extension.h"
 #include "typeprint.h"
+#include "byte-vector.h"
 
 /* Controls printing of vtbl's.  */
 static void
@@ -73,8 +74,6 @@ static struct obstack dont_print_vb_obst
 static struct obstack dont_print_statmem_obstack;
 static struct obstack dont_print_stat_array_obstack;
 
-extern void _initialize_cp_valprint (void);
-
 static void cp_print_static_field (struct type *, struct value *,
 				   struct ui_file *, int,
 				   const struct value_print_options *);
@@ -372,13 +371,9 @@ cp_print_value_fields (struct type *type
 	  if (obstack_final_size > statmem_obstack_initial_size)
 	    {
 	      /* In effect, a pop of the printed-statics stack.  */
-
-	      void *free_to_ptr =
-		(char *) obstack_next_free (&dont_print_statmem_obstack) -
-		(obstack_final_size - statmem_obstack_initial_size);
-
-	      obstack_free (&dont_print_statmem_obstack,
-			    free_to_ptr);
+	      size_t shrink_bytes
+		= statmem_obstack_initial_size - obstack_final_size;
+	      obstack_blank_fast (&dont_print_statmem_obstack, shrink_bytes);
 	    }
 
 	  if (last_set_recurse != recurse)
@@ -534,23 +529,18 @@ cp_print_value (struct type *type, struc
 	      if ((boffset + offset) < 0
 		  || (boffset + offset) >= TYPE_LENGTH (real_type))
 		{
-		  gdb_byte *buf;
-		  struct cleanup *back_to;
-
-		  buf = (gdb_byte *) xmalloc (TYPE_LENGTH (baseclass));
-		  back_to = make_cleanup (xfree, buf);
+		  gdb::byte_vector buf (TYPE_LENGTH (baseclass));
 
-		  if (target_read_memory (address + boffset, buf,
+		  if (target_read_memory (address + boffset, buf.data (),
 					  TYPE_LENGTH (baseclass)) != 0)
 		    skip = 1;
 		  base_val = value_from_contents_and_address (baseclass,
-							      buf,
+							      buf.data (),
 							      address + boffset);
 		  baseclass = value_type (base_val);
 		  thisoffset = 0;
 		  boffset = 0;
 		  thistype = baseclass;
-		  do_cleanups (back_to);
 		}
 	      else
 		{
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cris-linux-tdep.c ./gdb/cris-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cris-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cris-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux on CRIS processors, for GDB.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    Contributed by Axis Communications AB.
    Written by Hendrik Ruijter, Stefan Andersson, Orjan Friberg,
@@ -46,9 +46,6 @@ cris_linux_init_abi (struct gdbarch_info
 
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_cris_linux_tdep;
-
 void
 _initialize_cris_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cris-tdep.c ./gdb/cris-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cris-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cris-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target dependent code for CRIS, for GDB, the GNU debugger.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    Contributed by Axis Communications AB.
    Written by Hendrik Ruijter, Stefan Andersson, and Orjan Friberg.
@@ -634,13 +634,13 @@ static struct gdbarch *cris_gdbarch_init
 
 static void cris_dump_tdep (struct gdbarch *, struct ui_file *);
 
-static void set_cris_version (char *ignore_args, int from_tty, 
+static void set_cris_version (const char *ignore_args, int from_tty, 
 			      struct cmd_list_element *c);
 
-static void set_cris_mode (char *ignore_args, int from_tty, 
+static void set_cris_mode (const char *ignore_args, int from_tty, 
 			   struct cmd_list_element *c);
 
-static void set_cris_dwarf2_cfi (char *ignore_args, int from_tty, 
+static void set_cris_dwarf2_cfi (const char *ignore_args, int from_tty, 
 				 struct cmd_list_element *c);
 
 static CORE_ADDR cris_scan_prologue (CORE_ADDR pc, 
@@ -1434,19 +1434,19 @@ cris_spec_reg_applicable (struct gdbarch
       /* Indeterminate/obsolete.  */
       return 0;
     case cris_ver_v0_3:
-      return (version >= 0 && version <= 3);
+      return in_inclusive_range (version, 0U, 3U);
     case cris_ver_v3p:
       return (version >= 3);
     case cris_ver_v8:
-      return (version == 8 || version == 9);
+      return in_inclusive_range (version, 8U, 9U);
     case cris_ver_v8p:
       return (version >= 8);
     case cris_ver_v0_10:
-      return (version >= 0 && version <= 10);
+      return in_inclusive_range (version, 0U, 10U);
     case cris_ver_v3_10:
-      return (version >= 3 && version <= 10);
+      return in_inclusive_range (version, 3U, 10U);
     case cris_ver_v8_10:
-      return (version >= 8 && version <= 10);
+      return in_inclusive_range (version, 8U, 10U);
     case cris_ver_v10:
       return (version == 10);
     case cris_ver_v10p:
@@ -1643,7 +1643,7 @@ static void
 cris_store_return_value (struct type *type, struct regcache *regcache,
 			 const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   ULONGEST val;
   int len = TYPE_LENGTH (type);
@@ -1811,7 +1811,7 @@ static void
 cris_extract_return_value (struct type *type, struct regcache *regcache,
 			   gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   ULONGEST val;
   int len = TYPE_LENGTH (type);
@@ -1994,7 +1994,7 @@ find_step_target (struct regcache *regca
   int i;
   int offset;
   unsigned short insn;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
   /* Create a local register image and set the initial state.  */
@@ -2060,12 +2060,12 @@ find_step_target (struct regcache *regca
    digs through the opcodes in order to find all possible targets.
    Either one ordinary target or two targets for branches may be found.  */
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 cris_software_single_step (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   inst_env_type inst_env;
-  VEC (CORE_ADDR) *next_pcs = NULL;
+  std::vector<CORE_ADDR> next_pcs;
 
   /* Analyse the present instruction environment and insert 
      breakpoints.  */
@@ -2083,14 +2083,14 @@ cris_software_single_step (struct regcac
       CORE_ADDR next_pc
 	= (CORE_ADDR) inst_env.reg[gdbarch_pc_regnum (gdbarch)];
 
-      VEC_safe_push (CORE_ADDR, next_pcs, next_pc);
+      next_pcs.push_back (next_pc);
       if (inst_env.branch_found 
 	  && (CORE_ADDR) inst_env.branch_break_address != next_pc)
 	{
 	  CORE_ADDR branch_target_address
 		= (CORE_ADDR) inst_env.branch_break_address;
 
-	  VEC_safe_push (CORE_ADDR, next_pcs, branch_target_address);
+	  next_pcs.push_back (branch_target_address);
 	}
     }
 
@@ -3785,19 +3785,6 @@ cris_gdb_func (struct gdbarch *gdbarch, 
     }
 }
 
-/* This wrapper is to avoid cris_get_assembler being called before 
-   exec_bfd has been set.  */
-
-static int
-cris_delayed_get_disassembler (bfd_vma addr, struct disassemble_info *info)
-{
-  int (*print_insn) (bfd_vma addr, struct disassemble_info *info);
-
-  print_insn = cris_get_disassembler (exec_bfd);
-  gdb_assert (print_insn != NULL);
-  return print_insn (addr, info);
-}
-
 /* Originally from <asm/elf.h>.  */
 typedef unsigned char cris_elf_greg_t[4];
 
@@ -3813,7 +3800,7 @@ typedef cris_elf_greg_t crisv32_elf_greg
 static void 
 cris_supply_gregset (struct regcache *regcache, cris_elf_gregset_t *gregsetp)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int i;
   cris_elf_greg_t *regp = *gregsetp;
@@ -3879,8 +3866,6 @@ static struct core_fns cris_elf_core_fns
   NULL                                  /* next */
 };
 
-extern initialize_file_ftype _initialize_cris_tdep; /* -Wmissing-prototypes */
-
 void
 _initialize_cris_tdep (void)
 {
@@ -3941,7 +3926,7 @@ cris_dump_tdep (struct gdbarch *gdbarch,
 }
 
 static void
-set_cris_version (char *ignore_args, int from_tty, 
+set_cris_version (const char *ignore_args, int from_tty, 
 		  struct cmd_list_element *c)
 {
   struct gdbarch_info info;
@@ -3956,7 +3941,7 @@ set_cris_version (char *ignore_args, int
 }
 
 static void
-set_cris_mode (char *ignore_args, int from_tty, 
+set_cris_mode (const char *ignore_args, int from_tty, 
 	       struct cmd_list_element *c)
 {
   struct gdbarch_info info;
@@ -3969,7 +3954,7 @@ set_cris_mode (char *ignore_args, int fr
 }
 
 static void
-set_cris_dwarf2_cfi (char *ignore_args, int from_tty, 
+set_cris_dwarf2_cfi (const char *ignore_args, int from_tty, 
 		     struct cmd_list_element *c)
 {
   struct gdbarch_info info;
@@ -4021,7 +4006,7 @@ cris_gdbarch_init (struct gdbarch_info i
     }
 
   /* No matching architecture was found.  Create a new one.  */
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   info.byte_order = BFD_ENDIAN_LITTLE;
   gdbarch = gdbarch_alloc (&info, tdep);
 
@@ -4134,10 +4119,5 @@ cris_gdbarch_init (struct gdbarch_info i
   /* Hook in ABI-specific overrides, if they have been registered.  */
   gdbarch_init_osabi (info, gdbarch);
 
-  /* FIXME: cagney/2003-08-27: It should be possible to select a CRIS
-     disassembler, even when there is no BFD.  Does something like
-     "gdb; target remote; disassmeble *0x123" work?  */
-  set_gdbarch_print_insn (gdbarch, cris_delayed_get_disassembler);
-
   return gdbarch;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cris-tdep.h ./gdb/cris-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/cris-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/cris-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target dependent code for CRIS, for GDB, the GNU debugger.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    Contributed by Axis Communications AB.
    Written by Hendrik Ruijter, Stefan Andersson, and Orjan Friberg.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ctf.c ./gdb/ctf.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ctf.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ctf.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* CTF format support.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by Hui Zhu <hui_zhu@mentor.com>
    Contributed by Yao Qi <yao@codesourcery.com>
 
@@ -311,11 +311,8 @@ ctf_target_save (struct trace_file_write
 static void
 ctf_start (struct trace_file_writer *self, const char *dirname)
 {
-  char *file_name;
-  struct cleanup *old_chain;
   struct ctf_trace_file_writer *writer
     = (struct ctf_trace_file_writer *) self;
-  int i;
   mode_t hmode = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH;
 
   /* Create DIRNAME.  */
@@ -325,24 +322,20 @@ ctf_start (struct trace_file_writer *sel
 
   memset (&writer->tcs, '\0', sizeof (writer->tcs));
 
-  file_name = xstrprintf ("%s/%s", dirname, CTF_METADATA_NAME);
-  old_chain = make_cleanup (xfree, file_name);
+  std::string file_name = string_printf ("%s/%s", dirname, CTF_METADATA_NAME);
 
-  writer->tcs.metadata_fd = fopen (file_name, "w");
+  writer->tcs.metadata_fd = fopen (file_name.c_str (), "w");
   if (writer->tcs.metadata_fd == NULL)
     error (_("Unable to open file '%s' for saving trace data (%s)"),
-	   file_name, safe_strerror (errno));
-  do_cleanups (old_chain);
+	   file_name.c_str (), safe_strerror (errno));
 
   ctf_save_metadata_header (&writer->tcs);
 
-  file_name = xstrprintf ("%s/%s", dirname, CTF_DATASTREAM_NAME);
-  old_chain = make_cleanup (xfree, file_name);
-  writer->tcs.datastream_fd = fopen (file_name, "w");
+  file_name = string_printf ("%s/%s", dirname, CTF_DATASTREAM_NAME);
+  writer->tcs.datastream_fd = fopen (file_name.c_str (), "w");
   if (writer->tcs.datastream_fd == NULL)
     error (_("Unable to open file '%s' for saving trace data (%s)"),
-	   file_name, safe_strerror (errno));
-  do_cleanups (old_chain);
+	   file_name.c_str (), safe_strerror (errno));
 }
 
 /* This is the implementation of trace_file_write_ops method
@@ -459,7 +452,6 @@ ctf_write_status (struct trace_file_writ
   struct ctf_trace_file_writer *writer
     = (struct ctf_trace_file_writer *) self;
   uint32_t id;
-  int32_t int32;
 
   ctf_save_write_metadata (&writer->tcs, "\n");
   ctf_save_write_metadata (&writer->tcs,
@@ -502,7 +494,6 @@ ctf_write_uploaded_tsv (struct trace_fil
     = (struct ctf_trace_file_writer *) self;
   int32_t int32;
   int64_t int64;
-  unsigned int len;
   const gdb_byte zero = 0;
 
   /* Event Id.  */
@@ -624,9 +615,6 @@ ctf_write_tdesc (struct trace_file_write
 static void
 ctf_write_definition_end (struct trace_file_writer *self)
 {
-  struct ctf_trace_file_writer *writer
-    = (struct ctf_trace_file_writer *) self;
-
   self->ops->frame_ops->end (self);
 }
 
@@ -865,7 +853,6 @@ static void
 ctf_open_dir (const char *dirname)
 {
   struct bt_iter_pos begin_pos;
-  struct bt_iter_pos *pos;
   unsigned int count, i;
   struct bt_ctf_event_decl * const *list;
 
@@ -895,7 +882,6 @@ ctf_open_dir (const char *dirname)
   for (i = 0; i < count; i++)
     if (strcmp ("register", bt_ctf_get_decl_event_name (list[i])) == 0)
       {
-	unsigned int j;
 	const struct bt_ctf_field_decl * const *field_list;
 	const struct bt_declaration *decl;
 
@@ -1192,7 +1178,7 @@ static void
 ctf_fetch_registers (struct target_ops *ops,
 		     struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct bt_ctf_event *event = NULL;
   struct bt_iter_pos *pos;
 
@@ -1290,7 +1276,6 @@ ctf_xfer_partial (struct target_ops *ops
   if (get_traceframe_number () != -1)
     {
       struct bt_iter_pos *pos;
-      int i = 0;
       enum target_xfer_status res;
       /* Records the lowest available address of all blocks that
 	 intersects the requested range.  */
@@ -1308,8 +1293,6 @@ ctf_xfer_partial (struct target_ops *ops
 	  ULONGEST amt;
 	  uint64_t maddr;
 	  uint16_t mlen;
-	  enum bfd_endian byte_order
-	    = gdbarch_byte_order (target_gdbarch ());
 	  const struct bt_definition *scope;
 	  const struct bt_definition *def;
 	  struct bt_ctf_event *event
@@ -1342,8 +1325,6 @@ ctf_xfer_partial (struct target_ops *ops
 	    {
 	      const struct bt_definition *array
 		= bt_ctf_get_field (event, scope, "contents");
-	      const struct bt_declaration *decl
-		= bt_ctf_get_decl_from_def (array);
 	      gdb_byte *contents;
 	      int k;
 
@@ -1522,8 +1503,8 @@ ctf_get_traceframe_address (void)
       struct tracepoint *tp
 	= get_tracepoint_by_number_on_target (tpnum);
 
-      if (tp && tp->base.loc)
-	addr = tp->base.loc->address;
+      if (tp && tp->loc)
+	addr = tp->loc->address;
     }
 
   /* Restore the position.  */
@@ -1540,10 +1521,8 @@ static int
 ctf_trace_find (struct target_ops *self, enum trace_find_type type, int num,
 		CORE_ADDR addr1, CORE_ADDR addr2, int *tpp)
 {
-  int ret = -1;
   int tfnum = 0;
   int found = 0;
-  struct bt_iter_pos pos;
 
   if (num == -1)
     {
@@ -1558,7 +1537,6 @@ ctf_trace_find (struct target_ops *self,
 
   while (1)
     {
-      int id;
       struct bt_ctf_event *event;
       const char *name;
 
@@ -1641,10 +1619,10 @@ ctf_trace_find (struct target_ops *self,
    frame, extract memory range information, and return them in
    traceframe_info.  */
 
-static struct traceframe_info *
+static traceframe_info_up
 ctf_traceframe_info (struct target_ops *self)
 {
-  struct traceframe_info *info = XCNEW (struct traceframe_info);
+  traceframe_info_up info (new traceframe_info);
   const char *name;
   struct bt_iter_pos *pos;
 
@@ -1669,14 +1647,14 @@ ctf_traceframe_info (struct target_ops *
 	    = bt_ctf_get_top_level_scope (event,
 					  BT_EVENT_FIELDS);
 	  const struct bt_definition *def;
-	  struct mem_range *r;
 
-	  r = VEC_safe_push (mem_range_s, info->memory, NULL);
 	  def = bt_ctf_get_field (event, scope, "address");
-	  r->start = bt_ctf_get_uint64 (def);
+	  CORE_ADDR start = bt_ctf_get_uint64 (def);
 
 	  def = bt_ctf_get_field (event, scope, "length");
-	  r->length = (uint16_t) bt_ctf_get_uint64 (def);
+	  int length = (uint16_t) bt_ctf_get_uint64 (def);
+
+	  info->memory.emplace_back (start, length);
 	}
       else if (strcmp (name, "tsv") == 0)
 	{
@@ -1688,7 +1666,7 @@ ctf_traceframe_info (struct target_ops *
 
 	  def = bt_ctf_get_field (event, scope, "num");
 	  vnum = (int) bt_ctf_get_uint64 (def);
-	  VEC_safe_push (int, info->tvars, vnum);
+	  info->tvars.push_back (vnum);
 	}
       else
 	{
@@ -1731,10 +1709,6 @@ Specify the filename of the CTF director
 
 #endif
 
-/* -Wmissing-prototypes */
-
-extern initialize_file_ftype _initialize_ctf;
-
 /* module initialization */
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ctf.h ./gdb/ctf.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ctf.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ctf.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* CTF format support.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/c-typeprint.c ./gdb/c-typeprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/c-typeprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/c-typeprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for printing C and C++ types for GDB, the GNU debugger.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -32,15 +32,39 @@
 #include "cp-abi.h"
 #include "cp-support.h"
 
+/* When printing the offsets of a struct and its fields (i.e., 'ptype
+   /o'; type_print_options::print_offsets), we use this many
+   characters when printing the offset information at the beginning of
+   the line.  This is needed in order to generate the correct amount
+   of whitespaces when no offset info should be printed for a certain
+   field.  */
+#define OFFSET_SPC_LEN 23
+
+/* A list of access specifiers used for printing.  */
+
+enum access_specifier
+{
+  s_none,
+  s_public,
+  s_private,
+  s_protected
+};
+
 static void c_type_print_varspec_prefix (struct type *,
 					 struct ui_file *,
 					 int, int, int,
-					 const struct type_print_options *);
+					 const struct type_print_options *,
+					 struct print_offset_data *);
 
 /* Print "const", "volatile", or address space modifiers.  */
 static void c_type_print_modifier (struct type *,
 				   struct ui_file *,
 				   int, int);
+
+static void c_type_print_base_1 (struct type *type, struct ui_file *stream,
+				 int show, int level,
+				 const struct type_print_options *flags,
+				 struct print_offset_data *podata);
 
 
 /* A callback function for cp_canonicalize_string_full that uses
@@ -72,14 +96,15 @@ print_name_maybe_canonical (const char *
 
 
 
-/* LEVEL is the depth to indent lines by.  */
+/* Helper function for c_print_type.  */
 
-void
-c_print_type (struct type *type,
-	      const char *varstring,
-	      struct ui_file *stream,
-	      int show, int level,
-	      const struct type_print_options *flags)
+static void
+c_print_type_1 (struct type *type,
+		const char *varstring,
+		struct ui_file *stream,
+		int show, int level,
+		const struct type_print_options *flags,
+		struct print_offset_data *podata)
 {
   enum type_code code;
   int demangled_args;
@@ -98,7 +123,7 @@ c_print_type (struct type *type,
     }
   else
     {
-      c_type_print_base (type, stream, show, level, flags);
+      c_type_print_base_1 (type, stream, show, level, flags, podata);
       code = TYPE_CODE (type);
       if ((varstring != NULL && *varstring != '\0')
 	  /* Need a space if going to print stars or brackets;
@@ -114,7 +139,7 @@ c_print_type (struct type *type,
 	fputs_filtered (" ", stream);
       need_post_space = (varstring != NULL && strcmp (varstring, "") != 0);
       c_type_print_varspec_prefix (type, stream, show, 0, need_post_space,
-				   flags);
+				   flags, podata);
     }
 
   if (varstring != NULL)
@@ -133,6 +158,20 @@ c_print_type (struct type *type,
     }
 }
 
+/* LEVEL is the depth to indent lines by.  */
+
+void
+c_print_type (struct type *type,
+	      const char *varstring,
+	      struct ui_file *stream,
+	      int show, int level,
+	      const struct type_print_options *flags)
+{
+  struct print_offset_data podata;
+
+  c_print_type_1 (type, varstring, stream, show, level, flags, &podata);
+}
+
 /* Print a typedef using C syntax.  TYPE is the underlying type.
    NEW_SYMBOL is the symbol naming the type.  STREAM is the stream on
    which to print.  */
@@ -300,7 +339,8 @@ c_type_print_varspec_prefix (struct type
 			     struct ui_file *stream,
 			     int show, int passed_a_ptr,
 			     int need_post_space,
-			     const struct type_print_options *flags)
+			     const struct type_print_options *flags,
+			     struct print_offset_data *podata)
 {
   const char *name;
 
@@ -316,40 +356,40 @@ c_type_print_varspec_prefix (struct type
     {
     case TYPE_CODE_PTR:
       c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type),
-				   stream, show, 1, 1, flags);
+				   stream, show, 1, 1, flags, podata);
       fprintf_filtered (stream, "*");
       c_type_print_modifier (type, stream, 1, need_post_space);
       break;
 
     case TYPE_CODE_MEMBERPTR:
       c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type),
-				   stream, show, 0, 0, flags);
+				   stream, show, 0, 0, flags, podata);
       name = type_name_no_tag (TYPE_SELF_TYPE (type));
       if (name)
 	print_name_maybe_canonical (name, flags, stream);
       else
-	c_type_print_base (TYPE_SELF_TYPE (type),
-			   stream, -1, passed_a_ptr, flags);
+	c_type_print_base_1 (TYPE_SELF_TYPE (type),
+			     stream, -1, passed_a_ptr, flags, podata);
       fprintf_filtered (stream, "::*");
       break;
 
     case TYPE_CODE_METHODPTR:
       c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type),
-				   stream, show, 0, 0, flags);
+				   stream, show, 0, 0, flags, podata);
       fprintf_filtered (stream, "(");
       name = type_name_no_tag (TYPE_SELF_TYPE (type));
       if (name)
 	print_name_maybe_canonical (name, flags, stream);
       else
-	c_type_print_base (TYPE_SELF_TYPE (type),
-			   stream, -1, passed_a_ptr, flags);
+	c_type_print_base_1 (TYPE_SELF_TYPE (type),
+			     stream, -1, passed_a_ptr, flags, podata);
       fprintf_filtered (stream, "::*");
       break;
 
     case TYPE_CODE_REF:
     case TYPE_CODE_RVALUE_REF:
       c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type),
-				   stream, show, 1, 0, flags);
+				   stream, show, 1, 0, flags, podata);
       fprintf_filtered (stream, TYPE_CODE(type) == TYPE_CODE_REF ? "&" : "&&");
       c_type_print_modifier (type, stream, 1, need_post_space);
       break;
@@ -357,21 +397,22 @@ c_type_print_varspec_prefix (struct type
     case TYPE_CODE_METHOD:
     case TYPE_CODE_FUNC:
       c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type),
-				   stream, show, 0, 0, flags);
+				   stream, show, 0, 0, flags, podata);
       if (passed_a_ptr)
 	fprintf_filtered (stream, "(");
       break;
 
     case TYPE_CODE_ARRAY:
       c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type),
-				   stream, show, 0, 0, flags);
+				   stream, show, 0, 0, flags, podata);
       if (passed_a_ptr)
 	fprintf_filtered (stream, "(");
       break;
 
     case TYPE_CODE_TYPEDEF:
       c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type),
-				   stream, show, passed_a_ptr, 0, flags);
+				   stream, show, passed_a_ptr, 0, flags,
+				   podata);
       break;
 
     case TYPE_CODE_UNDEF:
@@ -547,7 +588,7 @@ is_type_conversion_operator (struct type
      some other way, feel free to rewrite this function.  */
   const char *name = TYPE_FN_FIELDLIST_NAME (type, i);
 
-  if (!startswith (name, "operator"))
+  if (!startswith (name, CP_OPERATOR_STR))
     return 0;
 
   name += 8;
@@ -826,518 +867,745 @@ c_type_print_template_args (const struct
     fputs_filtered (_("] "), stream);
 }
 
-/* Print the name of the type (or the ultimate pointer target,
-   function value or array element), or the description of a structure
-   or union.
+/* Use 'print_spaces_filtered', but take into consideration the
+   type_print_options FLAGS in order to determine how many whitespaces
+   will be printed.  */
 
-   SHOW positive means print details about the type (e.g. enum
-   values), and print structure elements passing SHOW - 1 for show.
+static void
+print_spaces_filtered_with_print_options
+  (int level, struct ui_file *stream, const struct type_print_options *flags)
+{
+  if (!flags->print_offsets)
+    print_spaces_filtered (level, stream);
+  else
+    print_spaces_filtered (level + OFFSET_SPC_LEN, stream);
+}
 
-   SHOW negative means just print the type name or struct tag if there
-   is one.  If there is no name, print something sensible but concise
-   like "struct {...}".
+/* Output an access specifier to STREAM, if needed.  LAST_ACCESS is the
+   last access specifier output (typically returned by this function).  */
 
-   SHOW zero means just print the type name or struct tag if there is
-   one.  If there is no name, print something sensible but not as
-   concise like "struct {int x; int y;}".
+static enum access_specifier
+output_access_specifier (struct ui_file *stream,
+			 enum access_specifier last_access,
+			 int level, bool is_protected, bool is_private,
+			 const struct type_print_options *flags)
+{
+  if (is_protected)
+    {
+      if (last_access != s_protected)
+	{
+	  last_access = s_protected;
+	  print_spaces_filtered_with_print_options (level + 2, stream, flags);
+	  fprintf_filtered (stream, "protected:\n");
+	}
+    }
+  else if (is_private)
+    {
+      if (last_access != s_private)
+	{
+	  last_access = s_private;
+	  print_spaces_filtered_with_print_options (level + 2, stream, flags);
+	  fprintf_filtered (stream, "private:\n");
+	}
+    }
+  else
+    {
+      if (last_access != s_public)
+	{
+	  last_access = s_public;
+	  print_spaces_filtered_with_print_options (level + 2, stream, flags);
+	  fprintf_filtered (stream, "public:\n");
+	}
+    }
 
-   LEVEL is the number of spaces to indent by.
-   We increase it for some recursive calls.  */
+  return last_access;
+}
 
-void
-c_type_print_base (struct type *type, struct ui_file *stream,
-		   int show, int level, const struct type_print_options *flags)
+/* Print information about field at index FIELD_IDX of the union type
+   TYPE.  Since union fields don't have the concept of offsets, we
+   just print their sizes.
+
+   The output is strongly based on pahole(1).  */
+
+static void
+c_print_type_union_field_offset (struct type *type, unsigned int field_idx,
+				 struct ui_file *stream)
 {
-  int i;
-  int len, real_len;
-  enum
+  struct type *ftype = check_typedef (TYPE_FIELD_TYPE (type, field_idx));
+
+  fprintf_filtered (stream, "/*              %4u */", TYPE_LENGTH (ftype));
+}
+
+/* Print information about field at index FIELD_IDX of the struct type
+   TYPE.
+
+   PODATA->END_BITPOS is the one-past-the-end bit position of the
+   previous field (where we expect this field to be if there is no
+   hole).  At the end, ENDPOS is updated to the one-past-the-end bit
+   position of the current field.
+
+   PODATA->OFFSET_BITPOS is the offset value we carry over when we are
+   printing a struct that is inside another struct; this is useful so
+   that the offset is constantly incremented (if we didn't carry it
+   over, the offset would be reset to zero when printing the inner
+   struct).
+
+   The output is strongly based on pahole(1).  */
+
+static void
+c_print_type_struct_field_offset (struct type *type, unsigned int field_idx,
+				  struct ui_file *stream,
+				  struct print_offset_data *podata)
+{
+  struct type *ftype = check_typedef (TYPE_FIELD_TYPE (type, field_idx));
+  unsigned int bitpos = TYPE_FIELD_BITPOS (type, field_idx);
+  unsigned int fieldsize_byte = TYPE_LENGTH (ftype);
+  unsigned int fieldsize_bit = fieldsize_byte * TARGET_CHAR_BIT;
+
+  /* We check for PODATA->END_BITPOS > 0 because there is a specific
+     scenario when PODATA->END_BITPOS can be zero and BITPOS can be >
+     0: when we are dealing with a struct/class with a virtual method.
+     Because of the vtable, the first field of the struct/class will
+     have an offset of sizeof (void *) (the size of the vtable).  If
+     we do not check for PODATA->END_BITPOS > 0 here, GDB will report
+     a hole before the first field, which is not accurate.  */
+  if (podata->end_bitpos > 0 && podata->end_bitpos < bitpos)
+    {
+      /* If PODATA->END_BITPOS is smaller than the current type's
+	 bitpos, it means there's a hole in the struct, so we report
+	 it here.  */
+      unsigned int hole = bitpos - podata->end_bitpos;
+      unsigned int hole_byte = hole / TARGET_CHAR_BIT;
+      unsigned int hole_bit = hole % TARGET_CHAR_BIT;
+
+      if (hole_bit > 0)
+	fprintf_filtered (stream, "/* XXX %2u-bit hole   */\n", hole_bit);
+
+      if (hole_byte > 0)
+	fprintf_filtered (stream, "/* XXX %2u-byte hole  */\n", hole_byte);
+    }
+
+  if (TYPE_FIELD_PACKED (type, field_idx))
+    {
+      /* We're dealing with a bitfield.  Print how many bits are left
+	 to be used.  */
+      unsigned int bitsize = TYPE_FIELD_BITSIZE (type, field_idx);
+      /* The bitpos relative to the beginning of our container
+	 field.  */
+      unsigned int relative_bitpos;
+
+      /* The following was copied from
+	 value.c:value_primitive_field.  */
+      if ((bitpos % fieldsize_bit) + bitsize <= fieldsize_bit)
+	relative_bitpos = bitpos % fieldsize_bit;
+      else
+	relative_bitpos = bitpos % TARGET_CHAR_BIT;
+
+      /* This is the exact offset (in bits) of this bitfield.  */
+      unsigned int bit_offset
+	= (bitpos - relative_bitpos) + podata->offset_bitpos;
+
+      /* The position of the field, relative to the beginning of the
+	 struct, and how many bits are left to be used in this
+	 container.  */
+      fprintf_filtered (stream, "/* %4u:%2u", bit_offset / TARGET_CHAR_BIT,
+			fieldsize_bit - (relative_bitpos + bitsize));
+      fieldsize_bit = bitsize;
+    }
+  else
     {
-      s_none, s_public, s_private, s_protected
+      /* The position of the field, relative to the beginning of the
+	 struct.  */
+      fprintf_filtered (stream, "/* %4u",
+			(bitpos + podata->offset_bitpos) / TARGET_CHAR_BIT);
+
+      fprintf_filtered (stream, "   ");
     }
-  section_type;
-  int need_access_label = 0;
-  int j, len2;
 
-  QUIT;
+  fprintf_filtered (stream, "   |  %4u */", fieldsize_byte);
 
-  if (type == NULL)
+  podata->end_bitpos = bitpos + fieldsize_bit;
+}
+
+/* Return true if an access label (i.e., "public:", "private:",
+   "protected:") needs to be printed for TYPE.  */
+
+static bool
+need_access_label_p (struct type *type)
+{
+  if (TYPE_DECLARED_CLASS (type))
     {
-      fputs_filtered (_("<type unknown>"), stream);
-      return;
+      QUIT;
+      for (int i = TYPE_N_BASECLASSES (type); i < TYPE_NFIELDS (type); i++)
+	if (!TYPE_FIELD_PRIVATE (type, i))
+	  return true;
+      QUIT;
+      for (int j = 0; j < TYPE_NFN_FIELDS (type); j++)
+	for (int i = 0; i < TYPE_FN_FIELDLIST_LENGTH (type, j); i++)
+	  if (!TYPE_FN_FIELD_PRIVATE (TYPE_FN_FIELDLIST1 (type,
+							  j), i))
+	    return true;
+      QUIT;
+      for (int i = 0; i < TYPE_TYPEDEF_FIELD_COUNT (type); ++i)
+	if (!TYPE_TYPEDEF_FIELD_PRIVATE (type, i))
+	  return true;
+    }
+  else
+    {
+      QUIT;
+      for (int i = TYPE_N_BASECLASSES (type); i < TYPE_NFIELDS (type); i++)
+	if (TYPE_FIELD_PRIVATE (type, i) || TYPE_FIELD_PROTECTED (type, i))
+	  return true;
+      QUIT;
+      for (int j = 0; j < TYPE_NFN_FIELDS (type); j++)
+	{
+	  QUIT;
+	  for (int i = 0; i < TYPE_FN_FIELDLIST_LENGTH (type, j); i++)
+	    if (TYPE_FN_FIELD_PROTECTED (TYPE_FN_FIELDLIST1 (type,
+							     j), i)
+		|| TYPE_FN_FIELD_PRIVATE (TYPE_FN_FIELDLIST1 (type,
+							      j),
+					  i))
+	      return true;
+	}
+      QUIT;
+      for (int i = 0; i < TYPE_TYPEDEF_FIELD_COUNT (type); ++i)
+	if (TYPE_TYPEDEF_FIELD_PROTECTED (type, i)
+	    || TYPE_TYPEDEF_FIELD_PRIVATE (type, i))
+	  return true;
     }
 
-  /* When SHOW is zero or less, and there is a valid type name, then
-     always just print the type name directly from the type.  */
-  /* If we have "typedef struct foo {. . .} bar;" do we want to print
-     it as "struct foo" or as "bar"?  Pick the latter, because C++
-     folk tend to expect things like "class5 *foo" rather than "struct
-     class5 *foo".  */
+  return false;
+}
 
-  if (show <= 0
-      && TYPE_NAME (type) != NULL)
+/* Helper function that temporarily disables FLAGS->PRINT_OFFSETS,
+   calls 'c_print_type_1', and then reenables FLAGS->PRINT_OFFSETS if
+   applicable.  */
+
+static void
+c_print_type_no_offsets (struct type *type,
+			 const char *varstring,
+			 struct ui_file *stream,
+			 int show, int level,
+			 struct type_print_options *flags,
+			 struct print_offset_data *podata)
+{
+  unsigned int old_po = flags->print_offsets;
+
+  /* Temporarily disable print_offsets, because it would mess with
+     indentation.  */
+  flags->print_offsets = 0;
+  c_print_type_1 (type, varstring, stream, show, level, flags, podata);
+  flags->print_offsets = old_po;
+}
+
+/* Helper for 'c_type_print_base' that handles structs and unions.
+   For a description of the arguments, see 'c_type_print_base'.  */
+
+static void
+c_type_print_base_struct_union (struct type *type, struct ui_file *stream,
+				int show, int level,
+				const struct type_print_options *flags,
+				struct print_offset_data *podata)
+{
+  struct type_print_options local_flags = *flags;
+  struct type_print_options semi_local_flags = *flags;
+  struct cleanup *local_cleanups = make_cleanup (null_cleanup, NULL);
+
+  local_flags.local_typedefs = NULL;
+  semi_local_flags.local_typedefs = NULL;
+
+  if (!flags->raw)
     {
-      c_type_print_modifier (type, stream, 0, 1);
-      print_name_maybe_canonical (TYPE_NAME (type), flags, stream);
-      return;
+      if (flags->local_typedefs)
+	local_flags.local_typedefs
+	  = copy_typedef_hash (flags->local_typedefs);
+      else
+	local_flags.local_typedefs = create_typedef_hash ();
+
+      make_cleanup_free_typedef_hash (local_flags.local_typedefs);
     }
 
-  type = check_typedef (type);
+  c_type_print_modifier (type, stream, 0, 1);
+  if (TYPE_CODE (type) == TYPE_CODE_UNION)
+    fprintf_filtered (stream, "union ");
+  else if (TYPE_DECLARED_CLASS (type))
+    fprintf_filtered (stream, "class ");
+  else
+    fprintf_filtered (stream, "struct ");
 
-  switch (TYPE_CODE (type))
+  /* Print the tag if it exists.  The HP aCC compiler emits a
+     spurious "{unnamed struct}"/"{unnamed union}"/"{unnamed
+     enum}" tag for unnamed struct/union/enum's, which we don't
+     want to print.  */
+  if (TYPE_TAG_NAME (type) != NULL
+      && !startswith (TYPE_TAG_NAME (type), "{unnamed"))
+    {
+      /* When printing the tag name, we are still effectively
+	 printing in the outer context, hence the use of FLAGS
+	 here.  */
+      print_name_maybe_canonical (TYPE_TAG_NAME (type), flags, stream);
+      if (show > 0)
+	fputs_filtered (" ", stream);
+    }
+
+  if (show < 0)
     {
-    case TYPE_CODE_TYPEDEF:
-      /* If we get here, the typedef doesn't have a name, and we
-	 couldn't resolve TYPE_TARGET_TYPE.  Not much we can do.  */
-      gdb_assert (TYPE_NAME (type) == NULL);
-      gdb_assert (TYPE_TARGET_TYPE (type) == NULL);
-      fprintf_filtered (stream, _("<unnamed typedef>"));
-      break;
+      /* If we just printed a tag name, no need to print anything
+	 else.  */
+      if (TYPE_TAG_NAME (type) == NULL)
+	fprintf_filtered (stream, "{...}");
+    }
+  else if (show > 0 || TYPE_TAG_NAME (type) == NULL)
+    {
+      struct type *basetype;
+      int vptr_fieldno;
 
-    case TYPE_CODE_ARRAY:
-    case TYPE_CODE_PTR:
-    case TYPE_CODE_MEMBERPTR:
-    case TYPE_CODE_REF:
-    case TYPE_CODE_RVALUE_REF:
-    case TYPE_CODE_FUNC:
-    case TYPE_CODE_METHOD:
-    case TYPE_CODE_METHODPTR:
-      c_type_print_base (TYPE_TARGET_TYPE (type),
-			 stream, show, level, flags);
-      break;
+      c_type_print_template_args (&local_flags, type, stream);
 
-    case TYPE_CODE_STRUCT:
-    case TYPE_CODE_UNION:
-      {
-	struct type_print_options local_flags = *flags;
-	struct type_print_options semi_local_flags = *flags;
-	struct cleanup *local_cleanups = make_cleanup (null_cleanup, NULL);
+      /* Add in template parameters when printing derivation info.  */
+      add_template_parameters (local_flags.local_typedefs, type);
+      cp_type_print_derivation_info (stream, type, &local_flags);
 
-	local_flags.local_typedefs = NULL;
-	semi_local_flags.local_typedefs = NULL;
+      /* This holds just the global typedefs and the template
+	 parameters.  */
+      semi_local_flags.local_typedefs
+	= copy_typedef_hash (local_flags.local_typedefs);
+      if (semi_local_flags.local_typedefs)
+	make_cleanup_free_typedef_hash (semi_local_flags.local_typedefs);
 
-	if (!flags->raw)
-	  {
-	    if (flags->local_typedefs)
-	      local_flags.local_typedefs
-		= copy_typedef_hash (flags->local_typedefs);
-	    else
-	      local_flags.local_typedefs = create_typedef_hash ();
+      /* Now add in the local typedefs.  */
+      recursively_update_typedef_hash (local_flags.local_typedefs, type);
 
-	    make_cleanup_free_typedef_hash (local_flags.local_typedefs);
-	  }
+      fprintf_filtered (stream, "{\n");
 
-	c_type_print_modifier (type, stream, 0, 1);
-	if (TYPE_CODE (type) == TYPE_CODE_UNION)
-	  fprintf_filtered (stream, "union ");
-	else if (TYPE_DECLARED_CLASS (type))
-	  fprintf_filtered (stream, "class ");
-	else
-	  fprintf_filtered (stream, "struct ");
-
-	/* Print the tag if it exists.  The HP aCC compiler emits a
-	   spurious "{unnamed struct}"/"{unnamed union}"/"{unnamed
-	   enum}" tag for unnamed struct/union/enum's, which we don't
-	   want to print.  */
-	if (TYPE_TAG_NAME (type) != NULL
-	    && !startswith (TYPE_TAG_NAME (type), "{unnamed"))
-	  {
-	    /* When printing the tag name, we are still effectively
-	       printing in the outer context, hence the use of FLAGS
-	       here.  */
-	    print_name_maybe_canonical (TYPE_TAG_NAME (type), flags, stream);
-	    if (show > 0)
-	      fputs_filtered (" ", stream);
-	  }
+      if (TYPE_NFIELDS (type) == 0 && TYPE_NFN_FIELDS (type) == 0
+	  && TYPE_TYPEDEF_FIELD_COUNT (type) == 0)
+	{
+	  if (TYPE_STUB (type))
+	    fprintfi_filtered (level + 4, stream,
+			       _("<incomplete type>\n"));
+	  else
+	    fprintfi_filtered (level + 4, stream,
+			       _("<no data fields>\n"));
+	}
 
-	if (show < 0)
-	  {
-	    /* If we just printed a tag name, no need to print anything
-	       else.  */
-	    if (TYPE_TAG_NAME (type) == NULL)
-	      fprintf_filtered (stream, "{...}");
-	  }
-	else if (show > 0 || TYPE_TAG_NAME (type) == NULL)
-	  {
-	    struct type *basetype;
-	    int vptr_fieldno;
+      /* Start off with no specific section type, so we can print
+	 one for the first field we find, and use that section type
+	 thereafter until we find another type.  */
 
-	    c_type_print_template_args (&local_flags, type, stream);
+      enum access_specifier section_type = s_none;
 
-	    /* Add in template parameters when printing derivation info.  */
-	    add_template_parameters (local_flags.local_typedefs, type);
-	    cp_type_print_derivation_info (stream, type, &local_flags);
-
-	    /* This holds just the global typedefs and the template
-	       parameters.  */
-	    semi_local_flags.local_typedefs
-	      = copy_typedef_hash (local_flags.local_typedefs);
-	    if (semi_local_flags.local_typedefs)
-	      make_cleanup_free_typedef_hash (semi_local_flags.local_typedefs);
+      /* For a class, if all members are private, there's no need
+	 for a "private:" label; similarly, for a struct or union
+	 masquerading as a class, if all members are public, there's
+	 no need for a "public:" label.  */
+      bool need_access_label = need_access_label_p (type);
 
-	    /* Now add in the local typedefs.  */
-	    recursively_update_typedef_hash (local_flags.local_typedefs, type);
+      /* If there is a base class for this type,
+	 do not print the field that it occupies.  */
 
-	    fprintf_filtered (stream, "{\n");
-	    if (TYPE_NFIELDS (type) == 0 && TYPE_NFN_FIELDS (type) == 0
-		&& TYPE_TYPEDEF_FIELD_COUNT (type) == 0)
-	      {
-		if (TYPE_STUB (type))
-		  fprintfi_filtered (level + 4, stream,
-				     _("<incomplete type>\n"));
-		else
-		  fprintfi_filtered (level + 4, stream,
-				     _("<no data fields>\n"));
-	      }
+      int len = TYPE_NFIELDS (type);
+      vptr_fieldno = get_vptr_fieldno (type, &basetype);
 
-	    /* Start off with no specific section type, so we can print
-	       one for the first field we find, and use that section type
-	       thereafter until we find another type.  */
-
-	    section_type = s_none;
-
-	    /* For a class, if all members are private, there's no need
-	       for a "private:" label; similarly, for a struct or union
-	       masquerading as a class, if all members are public, there's
-	       no need for a "public:" label.  */
+      struct print_offset_data local_podata;
 
-	    if (TYPE_DECLARED_CLASS (type))
-	      {
-		QUIT;
-		len = TYPE_NFIELDS (type);
-		for (i = TYPE_N_BASECLASSES (type); i < len; i++)
-		  if (!TYPE_FIELD_PRIVATE (type, i))
-		    {
-		      need_access_label = 1;
-		      break;
-		    }
-		QUIT;
-		if (!need_access_label)
-		  {
-		    len2 = TYPE_NFN_FIELDS (type);
-		    for (j = 0; j < len2; j++)
-		      {
-			len = TYPE_FN_FIELDLIST_LENGTH (type, j);
-			for (i = 0; i < len; i++)
-			  if (!TYPE_FN_FIELD_PRIVATE (TYPE_FN_FIELDLIST1 (type,
-									  j), i))
-			    {
-			      need_access_label = 1;
-			      break;
-			    }
-			if (need_access_label)
-			  break;
-		      }
-		  }
-	      }
-	    else
-	      {
-		QUIT;
-		len = TYPE_NFIELDS (type);
-		for (i = TYPE_N_BASECLASSES (type); i < len; i++)
-		  if (TYPE_FIELD_PRIVATE (type, i)
-		      || TYPE_FIELD_PROTECTED (type, i))
-		    {
-		      need_access_label = 1;
-		      break;
-		    }
-		QUIT;
-		if (!need_access_label)
-		  {
-		    len2 = TYPE_NFN_FIELDS (type);
-		    for (j = 0; j < len2; j++)
-		      {
-			QUIT;
-			len = TYPE_FN_FIELDLIST_LENGTH (type, j);
-			for (i = 0; i < len; i++)
-			  if (TYPE_FN_FIELD_PROTECTED (TYPE_FN_FIELDLIST1 (type,
-									   j), i)
-			      || TYPE_FN_FIELD_PRIVATE (TYPE_FN_FIELDLIST1 (type,
-									    j),
-							i))
-			    {
-			      need_access_label = 1;
-			      break;
-			    }
-			if (need_access_label)
-			  break;
-		      }
-		  }
-	      }
+      for (int i = TYPE_N_BASECLASSES (type); i < len; i++)
+	{
+	  QUIT;
 
-	    /* If there is a base class for this type,
-	       do not print the field that it occupies.  */
+	  /* If we have a virtual table pointer, omit it.  Even if
+	     virtual table pointers are not specifically marked in
+	     the debug info, they should be artificial.  */
+	  if ((i == vptr_fieldno && type == basetype)
+	      || TYPE_FIELD_ARTIFICIAL (type, i))
+	    continue;
 
-	    len = TYPE_NFIELDS (type);
-	    vptr_fieldno = get_vptr_fieldno (type, &basetype);
-	    for (i = TYPE_N_BASECLASSES (type); i < len; i++)
-	      {
-		QUIT;
+	  if (need_access_label)
+	    {
+	      section_type = output_access_specifier
+		(stream, section_type, level,
+		 TYPE_FIELD_PROTECTED (type, i),
+		 TYPE_FIELD_PRIVATE (type, i), flags);
+	    }
 
-		/* If we have a virtual table pointer, omit it.  Even if
-		   virtual table pointers are not specifically marked in
-		   the debug info, they should be artificial.  */
-		if ((i == vptr_fieldno && type == basetype)
-		    || TYPE_FIELD_ARTIFICIAL (type, i))
-		  continue;
+	  bool is_static = field_is_static (&TYPE_FIELD (type, i));
 
-		if (need_access_label)
-		  {
-		    if (TYPE_FIELD_PROTECTED (type, i))
-		      {
-			if (section_type != s_protected)
-			  {
-			    section_type = s_protected;
-			    fprintfi_filtered (level + 2, stream,
-					       "protected:\n");
-			  }
-		      }
-		    else if (TYPE_FIELD_PRIVATE (type, i))
-		      {
-			if (section_type != s_private)
-			  {
-			    section_type = s_private;
-			    fprintfi_filtered (level + 2, stream,
-					       "private:\n");
-			  }
-		      }
-		    else
-		      {
-			if (section_type != s_public)
-			  {
-			    section_type = s_public;
-			    fprintfi_filtered (level + 2, stream,
-					       "public:\n");
-			  }
-		      }
-		  }
+	  if (flags->print_offsets)
+	    {
+	      if (!is_static)
+		{
+		  if (TYPE_CODE (type) == TYPE_CODE_STRUCT)
+		    {
+		      c_print_type_struct_field_offset
+			(type, i, stream, podata);
+		    }
+		  else if (TYPE_CODE (type) == TYPE_CODE_UNION)
+		    c_print_type_union_field_offset (type, i, stream);
+		}
+	      else
+		print_spaces_filtered (OFFSET_SPC_LEN, stream);
+	    }
 
-		print_spaces_filtered (level + 4, stream);
-		if (field_is_static (&TYPE_FIELD (type, i)))
-		  fprintf_filtered (stream, "static ");
-		c_print_type (TYPE_FIELD_TYPE (type, i),
-			      TYPE_FIELD_NAME (type, i),
-			      stream, show - 1, level + 4,
-			      &local_flags);
-		if (!field_is_static (&TYPE_FIELD (type, i))
-		    && TYPE_FIELD_PACKED (type, i))
-		  {
-		    /* It is a bitfield.  This code does not attempt
-		       to look at the bitpos and reconstruct filler,
-		       unnamed fields.  This would lead to misleading
-		       results if the compiler does not put out fields
-		       for such things (I don't know what it does).  */
-		    fprintf_filtered (stream, " : %d",
-				      TYPE_FIELD_BITSIZE (type, i));
-		  }
-		fprintf_filtered (stream, ";\n");
-	      }
+	  print_spaces_filtered (level + 4, stream);
+	  if (is_static)
+	    fprintf_filtered (stream, "static ");
+
+	  int newshow = show - 1;
+
+	  if (flags->print_offsets
+	      && (TYPE_CODE (TYPE_FIELD_TYPE (type, i)) == TYPE_CODE_STRUCT
+		  || TYPE_CODE (TYPE_FIELD_TYPE (type, i)) == TYPE_CODE_UNION))
+	    {
+	      /* If we're printing offsets and this field's type is
+		 either a struct or an union, then we're interested in
+		 expanding it.  */
+	      ++newshow;
+
+	      /* Make sure we carry our offset when we expand the
+		 struct/union.  */
+	      local_podata.offset_bitpos
+		= podata->offset_bitpos + TYPE_FIELD_BITPOS (type, i);
+	      /* We're entering a struct/union.  Right now,
+		 PODATA->END_BITPOS points right *after* the
+		 struct/union.  However, when printing the first field
+		 of this inner struct/union, the end_bitpos we're
+		 expecting is exactly at the beginning of the
+		 struct/union.  Therefore, we subtract the length of
+		 the whole struct/union.  */
+	      local_podata.end_bitpos
+		= podata->end_bitpos
+		  - TYPE_LENGTH (TYPE_FIELD_TYPE (type, i)) * TARGET_CHAR_BIT;
+	    }
 
-	  /* If there are both fields and methods, put a blank line
-	     between them.  Make sure to count only method that we
-	     will display; artificial methods will be hidden.  */
-	  len = TYPE_NFN_FIELDS (type);
-	  if (!flags->print_methods)
-	    len = 0;
-	  real_len = 0;
-	  for (i = 0; i < len; i++)
+	  c_print_type_1 (TYPE_FIELD_TYPE (type, i),
+			  TYPE_FIELD_NAME (type, i),
+			  stream, newshow, level + 4,
+			  &local_flags, &local_podata);
+
+	  if (!is_static && TYPE_FIELD_PACKED (type, i))
 	    {
-	      struct fn_field *f = TYPE_FN_FIELDLIST1 (type, i);
-	      int len2 = TYPE_FN_FIELDLIST_LENGTH (type, i);
-	      int j;
-
-	      for (j = 0; j < len2; j++)
-		if (!TYPE_FN_FIELD_ARTIFICIAL (f, j))
-		  real_len++;
+	      /* It is a bitfield.  This code does not attempt
+		 to look at the bitpos and reconstruct filler,
+		 unnamed fields.  This would lead to misleading
+		 results if the compiler does not put out fields
+		 for such things (I don't know what it does).  */
+	      fprintf_filtered (stream, " : %d",
+				TYPE_FIELD_BITSIZE (type, i));
 	    }
-	  if (real_len > 0 && section_type != s_none)
-	    fprintf_filtered (stream, "\n");
+	  fprintf_filtered (stream, ";\n");
+	}
 
-	  /* C++: print out the methods.  */
-	  for (i = 0; i < len; i++)
+      /* If there are both fields and methods, put a blank line
+	 between them.  Make sure to count only method that we
+	 will display; artificial methods will be hidden.  */
+      len = TYPE_NFN_FIELDS (type);
+      if (!flags->print_methods)
+	len = 0;
+      int real_len = 0;
+      for (int i = 0; i < len; i++)
+	{
+	  struct fn_field *f = TYPE_FN_FIELDLIST1 (type, i);
+	  int len2 = TYPE_FN_FIELDLIST_LENGTH (type, i);
+	  int j;
+
+	  for (j = 0; j < len2; j++)
+	    if (!TYPE_FN_FIELD_ARTIFICIAL (f, j))
+	      real_len++;
+	}
+      if (real_len > 0 && section_type != s_none)
+	fprintf_filtered (stream, "\n");
+
+      /* C++: print out the methods.  */
+      for (int i = 0; i < len; i++)
+	{
+	  struct fn_field *f = TYPE_FN_FIELDLIST1 (type, i);
+	  int j, len2 = TYPE_FN_FIELDLIST_LENGTH (type, i);
+	  const char *method_name = TYPE_FN_FIELDLIST_NAME (type, i);
+	  const char *name = type_name_no_tag (type);
+	  int is_constructor = name && strcmp (method_name,
+					       name) == 0;
+
+	  for (j = 0; j < len2; j++)
 	    {
-	      struct fn_field *f = TYPE_FN_FIELDLIST1 (type, i);
-	      int j, len2 = TYPE_FN_FIELDLIST_LENGTH (type, i);
-	      const char *method_name = TYPE_FN_FIELDLIST_NAME (type, i);
-	      const char *name = type_name_no_tag (type);
-	      int is_constructor = name && strcmp (method_name,
-						   name) == 0;
+	      const char *mangled_name;
+	      gdb::unique_xmalloc_ptr<char> mangled_name_holder;
+	      char *demangled_name;
+	      const char *physname = TYPE_FN_FIELD_PHYSNAME (f, j);
+	      int is_full_physname_constructor =
+		TYPE_FN_FIELD_CONSTRUCTOR (f, j)
+		|| is_constructor_name (physname)
+		|| is_destructor_name (physname)
+		|| method_name[0] == '~';
+
+	      /* Do not print out artificial methods.  */
+	      if (TYPE_FN_FIELD_ARTIFICIAL (f, j))
+		continue;
 
-	      for (j = 0; j < len2; j++)
+	      QUIT;
+	      section_type = output_access_specifier
+		(stream, section_type, level,
+		 TYPE_FN_FIELD_PROTECTED (f, j),
+		 TYPE_FN_FIELD_PRIVATE (f, j), flags);
+
+	      print_spaces_filtered_with_print_options (level + 4, stream,
+							flags);
+	      if (TYPE_FN_FIELD_VIRTUAL_P (f, j))
+		fprintf_filtered (stream, "virtual ");
+	      else if (TYPE_FN_FIELD_STATIC_P (f, j))
+		fprintf_filtered (stream, "static ");
+	      if (TYPE_TARGET_TYPE (TYPE_FN_FIELD_TYPE (f, j)) == 0)
+		{
+		  /* Keep GDB from crashing here.  */
+		  fprintf_filtered (stream,
+				    _("<undefined type> %s;\n"),
+				    TYPE_FN_FIELD_PHYSNAME (f, j));
+		  break;
+		}
+	      else if (!is_constructor	/* Constructors don't
+					   have declared
+					   types.  */
+		       && !is_full_physname_constructor  /* " " */
+		       && !is_type_conversion_operator (type, i, j))
 		{
-		  const char *mangled_name;
-		  char *demangled_name;
-		  struct cleanup *inner_cleanup;
-		  const char *physname = TYPE_FN_FIELD_PHYSNAME (f, j);
-		  int is_full_physname_constructor =
-		    TYPE_FN_FIELD_CONSTRUCTOR (f, j)
-		    || is_constructor_name (physname)
-		    || is_destructor_name (physname)
-		    || method_name[0] == '~';
-
-		  /* Do not print out artificial methods.  */
-		  if (TYPE_FN_FIELD_ARTIFICIAL (f, j))
-		    continue;
+		  c_print_type_no_offsets
+		    (TYPE_TARGET_TYPE (TYPE_FN_FIELD_TYPE (f, j)),
+		     "", stream, -1, 0, &local_flags, podata);
 
-		  inner_cleanup = make_cleanup (null_cleanup, NULL);
+		  fputs_filtered (" ", stream);
+		}
+	      if (TYPE_FN_FIELD_STUB (f, j))
+		{
+		  /* Build something we can demangle.  */
+		  mangled_name_holder.reset (gdb_mangle_name (type, i, j));
+		  mangled_name = mangled_name_holder.get ();
+		}
+	      else
+		mangled_name = TYPE_FN_FIELD_PHYSNAME (f, j);
 
-		  QUIT;
-		  if (TYPE_FN_FIELD_PROTECTED (f, j))
-		    {
-		      if (section_type != s_protected)
-			{
-			  section_type = s_protected;
-			  fprintfi_filtered (level + 2, stream,
-					     "protected:\n");
-			}
-		    }
-		  else if (TYPE_FN_FIELD_PRIVATE (f, j))
-		    {
-		      if (section_type != s_private)
-			{
-			  section_type = s_private;
-			  fprintfi_filtered (level + 2, stream,
-					     "private:\n");
-			}
-		    }
-		  else
+	      demangled_name =
+		gdb_demangle (mangled_name,
+			      DMGL_ANSI | DMGL_PARAMS);
+	      if (demangled_name == NULL)
+		{
+		  /* In some cases (for instance with the HP
+		     demangling), if a function has more than 10
+		     arguments, the demangling will fail.
+		     Let's try to reconstruct the function
+		     signature from the symbol information.  */
+		  if (!TYPE_FN_FIELD_STUB (f, j))
 		    {
-		      if (section_type != s_public)
-			{
-			  section_type = s_public;
-			  fprintfi_filtered (level + 2, stream,
-					     "public:\n");
-			}
-		    }
+		      int staticp = TYPE_FN_FIELD_STATIC_P (f, j);
+		      struct type *mtype = TYPE_FN_FIELD_TYPE (f, j);
 
-		  print_spaces_filtered (level + 4, stream);
-		  if (TYPE_FN_FIELD_VIRTUAL_P (f, j))
-		    fprintf_filtered (stream, "virtual ");
-		  else if (TYPE_FN_FIELD_STATIC_P (f, j))
-		    fprintf_filtered (stream, "static ");
-		  if (TYPE_TARGET_TYPE (TYPE_FN_FIELD_TYPE (f, j)) == 0)
-		    {
-		      /* Keep GDB from crashing here.  */
-		      fprintf_filtered (stream,
-					_("<undefined type> %s;\n"),
-					TYPE_FN_FIELD_PHYSNAME (f, j));
-		      break;
-		    }
-		  else if (!is_constructor	/* Constructors don't
-						   have declared
-						   types.  */
-			   && !is_full_physname_constructor  /* " " */
-			   && !is_type_conversion_operator (type, i, j))
-		    {
-		      c_print_type (TYPE_TARGET_TYPE (TYPE_FN_FIELD_TYPE (f, j)),
-				    "", stream, -1, 0,
-				    &local_flags);
-		      fputs_filtered (" ", stream);
+		      cp_type_print_method_args (mtype,
+						 "",
+						 method_name,
+						 staticp,
+						 stream, &local_flags);
 		    }
-		  if (TYPE_FN_FIELD_STUB (f, j))
+		  else
+		    fprintf_filtered (stream,
+				      _("<badly mangled name '%s'>"),
+				      mangled_name);
+		}
+	      else
+		{
+		  char *p;
+		  char *demangled_no_class
+		    = remove_qualifiers (demangled_name);
+
+		  /* Get rid of the `static' appended by the
+		     demangler.  */
+		  p = strstr (demangled_no_class, " static");
+		  if (p != NULL)
 		    {
-		      char *tem;
+		      int length = p - demangled_no_class;
+		      char *demangled_no_static;
 
-		      /* Build something we can demangle.  */
-		      tem = gdb_mangle_name (type, i, j);
-		      make_cleanup (xfree, tem);
-		      mangled_name = tem;
+		      demangled_no_static
+			= (char *) xmalloc (length + 1);
+		      strncpy (demangled_no_static,
+			       demangled_no_class, length);
+		      *(demangled_no_static + length) = '\0';
+		      fputs_filtered (demangled_no_static, stream);
+		      xfree (demangled_no_static);
 		    }
 		  else
-		    mangled_name = TYPE_FN_FIELD_PHYSNAME (f, j);
+		    fputs_filtered (demangled_no_class, stream);
+		  xfree (demangled_name);
+		}
 
-		  demangled_name =
-		    gdb_demangle (mangled_name,
-				  DMGL_ANSI | DMGL_PARAMS);
-		  if (demangled_name == NULL)
-		    {
-		      /* In some cases (for instance with the HP
-			 demangling), if a function has more than 10
-			 arguments, the demangling will fail.
-			 Let's try to reconstruct the function
-			 signature from the symbol information.  */
-		      if (!TYPE_FN_FIELD_STUB (f, j))
-			{
-			  int staticp = TYPE_FN_FIELD_STATIC_P (f, j);
-			  struct type *mtype = TYPE_FN_FIELD_TYPE (f, j);
-
-			  cp_type_print_method_args (mtype,
-						     "",
-						     method_name,
-						     staticp,
-						     stream, &local_flags);
-			}
-		      else
-			fprintf_filtered (stream,
-					  _("<badly mangled name '%s'>"),
-					  mangled_name);
-		    }
-		  else
-		    {
-		      char *p;
-		      char *demangled_no_class
-			= remove_qualifiers (demangled_name);
-
-		      /* Get rid of the `static' appended by the
-			 demangler.  */
-		      p = strstr (demangled_no_class, " static");
-		      if (p != NULL)
-			{
-			  int length = p - demangled_no_class;
-			  char *demangled_no_static;
-
-			  demangled_no_static
-			    = (char *) xmalloc (length + 1);
-			  strncpy (demangled_no_static,
-				   demangled_no_class, length);
-			  *(demangled_no_static + length) = '\0';
-			  fputs_filtered (demangled_no_static, stream);
-			  xfree (demangled_no_static);
-			}
-		      else
-			fputs_filtered (demangled_no_class, stream);
-		      xfree (demangled_name);
-		    }
+	      fprintf_filtered (stream, ";\n");
+	    }
+	}
 
-		  do_cleanups (inner_cleanup);
+      /* Print out nested types.  */
+      if (TYPE_NESTED_TYPES_COUNT (type) != 0
+	  && semi_local_flags.print_nested_type_limit != 0)
+	{
+	  if (semi_local_flags.print_nested_type_limit > 0)
+	    --semi_local_flags.print_nested_type_limit;
 
-		  fprintf_filtered (stream, ";\n");
-		}
+	  if (TYPE_NFIELDS (type) != 0 || TYPE_NFN_FIELDS (type) != 0)
+	    fprintf_filtered (stream, "\n");
+
+	  for (int i = 0; i < TYPE_NESTED_TYPES_COUNT (type); ++i)
+	    {
+	      print_spaces_filtered_with_print_options (level + 4, stream,
+							flags);
+	      c_print_type_no_offsets (TYPE_NESTED_TYPES_FIELD_TYPE (type, i),
+				       "", stream, show, level + 4,
+				       &semi_local_flags, podata);
+	      fprintf_filtered (stream, ";\n");
 	    }
+	}
 
-	  /* Print typedefs defined in this class.  */
+      /* Print typedefs defined in this class.  */
 
-	  if (TYPE_TYPEDEF_FIELD_COUNT (type) != 0 && flags->print_typedefs)
+      if (TYPE_TYPEDEF_FIELD_COUNT (type) != 0 && flags->print_typedefs)
+	{
+	  if (TYPE_NFIELDS (type) != 0 || TYPE_NFN_FIELDS (type) != 0
+	      || TYPE_NESTED_TYPES_COUNT (type) != 0)
+	    fprintf_filtered (stream, "\n");
+
+	  for (int i = 0; i < TYPE_TYPEDEF_FIELD_COUNT (type); i++)
 	    {
-	      if (TYPE_NFIELDS (type) != 0 || TYPE_NFN_FIELDS (type) != 0)
-		fprintf_filtered (stream, "\n");
+	      struct type *target = TYPE_TYPEDEF_FIELD_TYPE (type, i);
 
-	      for (i = 0; i < TYPE_TYPEDEF_FIELD_COUNT (type); i++)
-		{
-		  struct type *target = TYPE_TYPEDEF_FIELD_TYPE (type, i);
+	      /* Dereference the typedef declaration itself.  */
+	      gdb_assert (TYPE_CODE (target) == TYPE_CODE_TYPEDEF);
+	      target = TYPE_TARGET_TYPE (target);
 
-		  /* Dereference the typedef declaration itself.  */
-		  gdb_assert (TYPE_CODE (target) == TYPE_CODE_TYPEDEF);
-		  target = TYPE_TARGET_TYPE (target);
-
-		  print_spaces_filtered (level + 4, stream);
-		  fprintf_filtered (stream, "typedef ");
-
-		  /* We want to print typedefs with substitutions
-		     from the template parameters or globally-known
-		     typedefs but not local typedefs.  */
-		  c_print_type (target,
-				TYPE_TYPEDEF_FIELD_NAME (type, i),
-				stream, show - 1, level + 4,
-				&semi_local_flags);
-		  fprintf_filtered (stream, ";\n");
+	      if (need_access_label)
+		{
+		  section_type = output_access_specifier
+		    (stream, section_type, level,
+		     TYPE_TYPEDEF_FIELD_PROTECTED (type, i),
+		     TYPE_TYPEDEF_FIELD_PRIVATE (type, i), flags);
 		}
+	      print_spaces_filtered_with_print_options (level + 4, stream,
+							flags);
+	      fprintf_filtered (stream, "typedef ");
+
+	      /* We want to print typedefs with substitutions
+		 from the template parameters or globally-known
+		 typedefs but not local typedefs.  */
+	      c_print_type_no_offsets (target,
+				       TYPE_TYPEDEF_FIELD_NAME (type, i),
+				       stream, show - 1, level + 4,
+				       &semi_local_flags, podata);
+	      fprintf_filtered (stream, ";\n");
 	    }
+	}
 
-	    fprintfi_filtered (level, stream, "}");
-	  }
+      if (flags->print_offsets)
+	{
+	  if (show > 0)
+	    {
+	      fputs_filtered ("\n", stream);
+	      print_spaces_filtered_with_print_options (level + 4,
+							stream,
+							flags);
+	      fprintf_filtered (stream, "/* total size (bytes): %4u */\n",
+				TYPE_LENGTH (type));
+	    }
 
-	do_cleanups (local_cleanups);
-      }
+	  print_spaces_filtered (OFFSET_SPC_LEN, stream);
+	  if (level == 0)
+	    print_spaces_filtered (2, stream);
+	}
+
+      fprintfi_filtered (level, stream, "}");
+    }
+
+  do_cleanups (local_cleanups);
+}
+
+/* Print the name of the type (or the ultimate pointer target,
+   function value or array element), or the description of a structure
+   or union.
+
+   SHOW positive means print details about the type (e.g. enum
+   values), and print structure elements passing SHOW - 1 for show.
+
+   SHOW negative means just print the type name or struct tag if there
+   is one.  If there is no name, print something sensible but concise
+   like "struct {...}".
+
+   SHOW zero means just print the type name or struct tag if there is
+   one.  If there is no name, print something sensible but not as
+   concise like "struct {int x; int y;}".
+
+   LEVEL is the number of spaces to indent by.
+   We increase it for some recursive calls.  */
+
+static void
+c_type_print_base_1 (struct type *type, struct ui_file *stream,
+		     int show, int level,
+		     const struct type_print_options *flags,
+		     struct print_offset_data *podata)
+{
+  int i;
+  int len;
+
+  QUIT;
+
+  if (type == NULL)
+    {
+      fputs_filtered (_("<type unknown>"), stream);
+      return;
+    }
+
+  /* When SHOW is zero or less, and there is a valid type name, then
+     always just print the type name directly from the type.  */
+  /* If we have "typedef struct foo {. . .} bar;" do we want to print
+     it as "struct foo" or as "bar"?  Pick the latter, because C++
+     folk tend to expect things like "class5 *foo" rather than "struct
+     class5 *foo".  */
+
+  if (show <= 0
+      && TYPE_NAME (type) != NULL)
+    {
+      c_type_print_modifier (type, stream, 0, 1);
+      print_name_maybe_canonical (TYPE_NAME (type), flags, stream);
+      return;
+    }
+
+  type = check_typedef (type);
+
+  switch (TYPE_CODE (type))
+    {
+    case TYPE_CODE_TYPEDEF:
+      /* If we get here, the typedef doesn't have a name, and we
+	 couldn't resolve TYPE_TARGET_TYPE.  Not much we can do.  */
+      gdb_assert (TYPE_NAME (type) == NULL);
+      gdb_assert (TYPE_TARGET_TYPE (type) == NULL);
+      fprintf_filtered (stream, _("<unnamed typedef>"));
+      break;
+
+    case TYPE_CODE_FUNC:
+    case TYPE_CODE_METHOD:
+      if (TYPE_TARGET_TYPE (type) == NULL)
+	type_print_unknown_return_type (stream);
+      else
+	c_type_print_base_1 (TYPE_TARGET_TYPE (type),
+			     stream, show, level, flags, podata);
+      break;
+    case TYPE_CODE_ARRAY:
+    case TYPE_CODE_PTR:
+    case TYPE_CODE_MEMBERPTR:
+    case TYPE_CODE_REF:
+    case TYPE_CODE_RVALUE_REF:
+    case TYPE_CODE_METHODPTR:
+      c_type_print_base_1 (TYPE_TARGET_TYPE (type),
+			   stream, show, level, flags, podata);
+      break;
+
+    case TYPE_CODE_STRUCT:
+    case TYPE_CODE_UNION:
+      c_type_print_base_struct_union (type, stream, show, level, flags,
+				      podata);
       break;
 
     case TYPE_CODE_ENUM:
@@ -1437,10 +1705,10 @@ c_type_print_base (struct type *type, st
 		print_spaces_filtered (level + 4, stream);
 		/* We pass "show" here and not "show - 1" to get enum types
 		   printed.  There's no other way to see them.  */
-		c_print_type (TYPE_FIELD_TYPE (type, i),
-			      TYPE_FIELD_NAME (type, i),
-			      stream, show, level + 4,
-			      &local_flags);
+		c_print_type_1 (TYPE_FIELD_TYPE (type, i),
+				TYPE_FIELD_NAME (type, i),
+				stream, show, level + 4,
+				&local_flags, podata);
 		fprintf_filtered (stream, " @%s",
 				  plongest (TYPE_FIELD_BITPOS (type, i)));
 		if (TYPE_FIELD_BITSIZE (type, i) > 1)
@@ -1499,3 +1767,15 @@ c_type_print_base (struct type *type, st
       break;
     }
 }
+
+/* See c_type_print_base_1.  */
+
+void
+c_type_print_base (struct type *type, struct ui_file *stream,
+		   int show, int level,
+		   const struct type_print_options *flags)
+{
+  struct print_offset_data podata;
+
+  c_type_print_base_1 (type, stream, show, level, flags, &podata);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/c-valprint.c ./gdb/c-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/c-valprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/c-valprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support for printing C values for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -198,14 +198,17 @@ print_unpacked_pointer (struct type *typ
 	  struct symbol *wsym = NULL;
 	  struct type *wtype;
 	  struct block *block = NULL;
-	  struct field_of_this_result is_this_fld;
 
 	  if (want_space)
 	    fputs_filtered (" ", stream);
 
 	  if (msymbol.minsym != NULL)
-	    wsym = lookup_symbol (MSYMBOL_LINKAGE_NAME(msymbol.minsym), block,
-				  VAR_DOMAIN, &is_this_fld).symbol;
+	    {
+	      const char *search_name
+		= MSYMBOL_SEARCH_NAME (msymbol.minsym);
+	      wsym = lookup_symbol_search_name (search_name, block,
+						VAR_DOMAIN).symbol;
+	    }
 
 	  if (wsym)
 	    {
@@ -454,8 +457,8 @@ c_val_print_int (struct type *type, stru
     }
   else
     {
-      val_print_type_code_int (type, valaddr + embedded_offset * unit_size,
-			       stream);
+      val_print_scalar_formatted (type, embedded_offset,
+				  original_value, options, 0, stream);
       /* C and C++ has no single byte int type, char is used
 	 instead.  Since we don't know whether the value is really
 	 intended to be used as an integer or a character, print
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/c-varobj.c ./gdb/c-varobj.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/c-varobj.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/c-varobj.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* varobj support for C and C++.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 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
@@ -34,7 +34,7 @@ static void cplus_class_num_children (st
    This has already been determined by *_describe_child. The easiest
    thing to do is to compare the child's name with ANONYMOUS_*_NAME.  */
 
-int
+bool
 varobj_is_anonymous_child (const struct varobj *child)
 {
   return (child->name == ANONYMOUS_STRUCT_NAME
@@ -131,14 +131,14 @@ adjust_value_for_child_access (struct va
 /* Is VAR a path expression parent, i.e., can it be used to construct
    a valid path expression?  */
 
-static int
+static bool
 c_is_path_expr_parent (const struct varobj *var)
 {
   struct type *type;
 
   /* "Fake" children are not path_expr parents.  */
   if (CPLUS_FAKE_CHILD (var))
-    return 0;
+    return false;
 
   type = varobj_get_gdb_type (var);
 
@@ -172,10 +172,10 @@ c_is_path_expr_parent (const struct varo
 	    }
 	}
 
-      return 0;
+      return false;
     }
 
-  return 1;
+  return true;
 }
 
 /* C */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/darwin-nat.c ./gdb/darwin-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/darwin-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/darwin-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Darwin support for GDB, the GNU debugger.
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    Contributed by AdaCore.
 
@@ -25,7 +25,6 @@
 #include "symfile.h"
 #include "symtab.h"
 #include "objfiles.h"
-#include "gdb.h"
 #include "gdbcmd.h"
 #include "gdbcore.h"
 #include "gdbthread.h"
@@ -63,6 +62,7 @@
 
 #include "darwin-nat.h"
 #include "common/filestuff.h"
+#include "nat/fork-inferior.h"
 
 /* Quick overview.
    Darwin kernel is Mach + BSD derived kernel.  Note that they share the
@@ -279,13 +279,12 @@ static void
 darwin_check_new_threads (struct inferior *inf)
 {
   kern_return_t kret;
-  unsigned int i;
   thread_array_t thread_list;
   unsigned int new_nbr;
   unsigned int old_nbr;
   unsigned int new_ix, old_ix;
-  darwin_inferior *darwin_inf = inf->priv;
-  VEC (darwin_thread_t) *thread_vec;
+  darwin_inferior *darwin_inf = get_darwin_inferior (inf);
+  std::vector<darwin_thread_t *> new_thread_vec;
 
   /* Get list of threads.  */
   kret = task_threads (darwin_inf->task, &thread_list, &new_nbr);
@@ -297,17 +296,15 @@ darwin_check_new_threads (struct inferio
   if (new_nbr > 1)
     qsort (thread_list, new_nbr, sizeof (thread_t), cmp_thread_t);
 
-  if (darwin_inf->threads)
-    old_nbr = VEC_length (darwin_thread_t, darwin_inf->threads);
-  else
-    old_nbr = 0;
+  old_nbr = darwin_inf->threads.size ();
 
   /* Quick check for no changes.  */
   if (old_nbr == new_nbr)
     {
+      size_t i;
+
       for (i = 0; i < new_nbr; i++)
-	if (thread_list[i]
-	    != VEC_index (darwin_thread_t, darwin_inf->threads, i)->gdb_port)
+	if (thread_list[i] != darwin_inf->threads[i]->gdb_port)
 	  break;
       if (i == new_nbr)
 	{
@@ -328,15 +325,15 @@ darwin_check_new_threads (struct inferio
     }
 
   /* Full handling: detect new threads, remove dead threads.  */
-  thread_vec = VEC_alloc (darwin_thread_t, new_nbr);
+
+  new_thread_vec.reserve (new_nbr);
 
   for (new_ix = 0, old_ix = 0; new_ix < new_nbr || old_ix < old_nbr;)
     {
-      thread_t new_id = (new_ix < new_nbr) ?
-	thread_list[new_ix] : THREAD_NULL;
-      darwin_thread_t *old = (old_ix < old_nbr) ?
-	VEC_index (darwin_thread_t, darwin_inf->threads, old_ix) : NULL;
-      thread_t old_id = old ? old->gdb_port : THREAD_NULL;
+      thread_t new_id = (new_ix < new_nbr) ? thread_list[new_ix] : THREAD_NULL;
+      darwin_thread_t *old
+	= (old_ix < old_nbr) ? darwin_inf->threads[old_ix] : NULL;
+      thread_t old_id = old != NULL ? old->gdb_port : THREAD_NULL;
 
       inferior_debug
 	(12, _(" new_ix:%d/%d, old_ix:%d/%d, new_id:0x%x old_id:0x%x\n"),
@@ -345,7 +342,7 @@ darwin_check_new_threads (struct inferio
       if (old_id == new_id)
 	{
 	  /* Thread still exist.  */
-	  VEC_safe_push (darwin_thread_t, thread_vec, old);
+	  new_thread_vec.push_back (old);
 	  new_ix++;
 	  old_ix++;
 
@@ -366,30 +363,14 @@ darwin_check_new_threads (struct inferio
       if (new_ix < new_nbr && (old_ix == old_nbr || new_id < old_id))
 	{
 	  /* A thread was created.  */
-	  struct thread_info *tp;
-	  struct private_thread_info *pti;
+	  darwin_thread_info *pti = new darwin_thread_info;
 
-	  pti = XCNEW (struct private_thread_info);
 	  pti->gdb_port = new_id;
 	  pti->msg_state = DARWIN_RUNNING;
 
-	  if (old_nbr == 0 && new_ix == 0)
-	    {
-	      /* A ptid is create when the inferior is started (see
-		 fork-child.c) with lwp=tid=0.  This ptid will be renamed
-		 later by darwin_init_thread_list ().  */
-	      tp = find_thread_ptid (ptid_build (inf->pid, 0, 0));
-	      gdb_assert (tp);
-	      gdb_assert (tp->priv == NULL);
-	      tp->priv = pti;
-	    }
-	  else
-	    {
-	      /* Add the new thread.  */
-	      tp = add_thread_with_info
-		(ptid_build (inf->pid, 0, new_id), pti);
-	    }
-	  VEC_safe_push (darwin_thread_t, thread_vec, pti);
+	  /* Add the new thread.  */
+	  add_thread_with_info (ptid_build (inf->pid, 0, new_id), pti);
+	  new_thread_vec.push_back (pti);
 	  new_ix++;
 	  continue;
 	}
@@ -405,9 +386,7 @@ darwin_check_new_threads (struct inferio
       gdb_assert_not_reached ("unexpected thread case");
     }
 
-  if (darwin_inf->threads)
-    VEC_free (darwin_thread_t, darwin_inf->threads);
-  darwin_inf->threads = thread_vec;
+  darwin_inf->threads = std::move (new_thread_vec);
 
   /* Deallocate the buffer.  */
   kret = vm_deallocate (gdb_task, (vm_address_t) thread_list,
@@ -418,7 +397,9 @@ darwin_check_new_threads (struct inferio
 static int
 find_inferior_task_it (struct inferior *inf, void *port_ptr)
 {
-  return inf->priv->task == *(task_t *)port_ptr;
+  darwin_inferior *priv = get_darwin_inferior (inf);
+
+  return priv->task == *(task_t *)port_ptr;
 }
 
 static int
@@ -445,14 +426,14 @@ darwin_find_inferior_by_pid (int pid)
 static darwin_thread_t *
 darwin_find_thread (struct inferior *inf, thread_t thread)
 {
-  darwin_thread_t *t;
-  int k;
+  darwin_inferior *priv = get_darwin_inferior (inf);
+
+  for (darwin_thread_t *t : priv->threads)
+    {
+      if (t->gdb_port == thread)
+	return t;
+    }
 
-  for (k = 0;
-       VEC_iterate (darwin_thread_t, inf->priv->threads, k, t);
-       k++)
-    if (t->gdb_port == thread)
-      return t;
   return NULL;
 }
 
@@ -461,14 +442,16 @@ darwin_find_thread (struct inferior *inf
 static void
 darwin_suspend_inferior (struct inferior *inf)
 {
-  if (!inf->priv->suspended)
+  darwin_inferior *priv = get_darwin_inferior (inf);
+
+  if (!priv->suspended)
     {
       kern_return_t kret;
 
-      kret = task_suspend (inf->priv->task);
+      kret = task_suspend (priv->task);
       MACH_CHECK_ERROR (kret);
 
-      inf->priv->suspended = 1;
+      priv->suspended = 1;
     }
 }
 
@@ -477,14 +460,16 @@ darwin_suspend_inferior (struct inferior
 static void
 darwin_resume_inferior (struct inferior *inf)
 {
-  if (inf->priv->suspended)
+  darwin_inferior *priv = get_darwin_inferior (inf);
+
+  if (priv->suspended)
     {
       kern_return_t kret;
 
-      kret = task_resume (inf->priv->task);
+      kret = task_resume (priv->task);
       MACH_CHECK_ERROR (kret);
 
-      inf->priv->suspended = 0;
+      priv->suspended = 0;
     }
 }
 
@@ -595,11 +580,13 @@ darwin_find_new_inferior (task_t task_po
   if (inf == NULL)
     return NULL;
 
+  darwin_inferior *priv = get_darwin_inferior (inf);
+
   /* Deallocate saved exception ports.  */
-  darwin_deallocate_exception_ports (inf->priv);
+  darwin_deallocate_exception_ports (priv);
 
   /* No need to remove dead_name notification, but still...  */
-  kret = mach_port_request_notification (gdb_task, inf->priv->task,
+  kret = mach_port_request_notification (gdb_task, priv->task,
 					 MACH_NOTIFY_DEAD_NAME, 0,
 					 MACH_PORT_NULL,
 					 MACH_MSG_TYPE_MAKE_SEND_ONCE,
@@ -608,9 +595,9 @@ darwin_find_new_inferior (task_t task_po
     MACH_CHECK_ERROR (kret);
 
   /* Replace old task port.  */
-  kret = mach_port_deallocate (gdb_task, inf->priv->task);
+  kret = mach_port_deallocate (gdb_task, priv->task);
   MACH_CHECK_ERROR (kret);
-  inf->priv->task = task_port;
+  priv->task = task_port;
 
   darwin_setup_request_notification (inf);
   darwin_setup_exceptions (inf);
@@ -804,8 +791,10 @@ darwin_decode_notify_message (mach_msg_h
   inf = darwin_find_inferior_by_task (task_port);
   *pinf = inf;
 
+  darwin_inferior *priv = get_darwin_inferior (inf);
+
   /* Check message destination.  */
-  if (inf != NULL && hdr->msgh_local_port != inf->priv->notify_port)
+  if (inf != NULL && hdr->msgh_local_port != priv->notify_port)
     return -4;
 
   return 0;
@@ -832,6 +821,7 @@ darwin_send_reply (struct inferior *inf,
 {
   kern_return_t kret;
   mig_reply_error_t reply;
+  darwin_inferior *priv = get_darwin_inferior (inf);
 
   darwin_encode_reply (&reply, &thread->event.header, KERN_SUCCESS);
 
@@ -841,7 +831,7 @@ darwin_send_reply (struct inferior *inf,
 		   MACH_PORT_NULL);
   MACH_CHECK_ERROR (kret);
 
-  inf->priv->pending_messages--;
+  priv->pending_messages--;
 }
 
 static void
@@ -904,12 +894,9 @@ darwin_resume_thread (struct inferior *i
 static void
 darwin_resume_inferior_threads (struct inferior *inf, int step, int nsignal)
 {
-  darwin_thread_t *thread;
-  int k;
+  darwin_inferior *priv = get_darwin_inferior (inf);
 
-  for (k = 0;
-       VEC_iterate (darwin_thread_t, inf->priv->threads, k, thread);
-       k++)
+  for (darwin_thread_t *thread : priv->threads)
     darwin_resume_thread (inf, thread, step, nsignal);
 }
 
@@ -935,24 +922,24 @@ darwin_resume_inferior_threads_it (struc
 static void
 darwin_suspend_inferior_threads (struct inferior *inf)
 {
-  darwin_thread_t *thread;
-  kern_return_t kret;
-  int k;
+  darwin_inferior *priv = get_darwin_inferior (inf);
 
-  for (k = 0;
-       VEC_iterate (darwin_thread_t, inf->priv->threads, k, thread);
-       k++)
-    switch (thread->msg_state)
-      {
-      case DARWIN_STOPPED:
-      case DARWIN_MESSAGE:
-	break;
-      case DARWIN_RUNNING:
-	kret = thread_suspend (thread->gdb_port);
-	MACH_CHECK_ERROR (kret);
-	thread->msg_state = DARWIN_STOPPED;
-	break;
-      }
+  for (darwin_thread_t *thread : priv->threads)
+    {
+      switch (thread->msg_state)
+	{
+	case DARWIN_STOPPED:
+	case DARWIN_MESSAGE:
+	  break;
+	case DARWIN_RUNNING:
+	  {
+	    kern_return_t kret = thread_suspend (thread->gdb_port);
+	    MACH_CHECK_ERROR (kret);
+	    thread->msg_state = DARWIN_STOPPED;
+	    break;
+	  }
+	}
+    }
 }
 
 static void
@@ -1060,7 +1047,10 @@ darwin_decode_message (mach_msg_header_t
 	}
       *pinf = inf;
       *pthread = thread;
-      inf->priv->pending_messages++;
+
+      darwin_inferior *priv = get_darwin_inferior (inf);
+
+      priv->pending_messages++;
 
       status->kind = TARGET_WAITKIND_STOPPED;
       thread->msg_state = DARWIN_MESSAGE;
@@ -1144,7 +1134,9 @@ darwin_decode_message (mach_msg_header_t
 
       if (inf != NULL)
 	{
-	  if (!inf->priv->no_ptrace)
+	  darwin_inferior *priv = get_darwin_inferior (inf);
+
+	  if (!priv->no_ptrace)
 	    {
 	      pid_t res;
 	      int wstatus;
@@ -1205,11 +1197,11 @@ cancel_breakpoint (ptid_t ptid)
      tripped on it.  */
 
   struct regcache *regcache = get_thread_regcache (ptid);
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   CORE_ADDR pc;
 
   pc = regcache_read_pc (regcache) - gdbarch_decr_pc_after_break (gdbarch);
-  if (breakpoint_inserted_here_p (get_regcache_aspace (regcache), pc))
+  if (breakpoint_inserted_here_p (regcache->aspace (), pc))
     {
       inferior_debug (4, "cancel_breakpoint for thread 0x%lx\n",
 		      (unsigned long) ptid_get_tid (ptid));
@@ -1247,9 +1239,11 @@ darwin_wait (ptid_t ptid, struct target_
       inf = darwin_inf_fake_stop;
       darwin_inf_fake_stop = NULL;
 
+      darwin_inferior *priv = get_darwin_inferior (inf);
+
       status->kind = TARGET_WAITKIND_STOPPED;
       status->value.sig = GDB_SIGNAL_TRAP;
-      thread = VEC_index (darwin_thread_t, inf->priv->threads, 0);
+      thread = priv->threads[0];
       thread->msg_state = DARWIN_STOPPED;
       return ptid_build (inf->pid, 0, thread->gdb_port);
     }
@@ -1351,9 +1345,10 @@ static void
 darwin_interrupt (struct target_ops *self, ptid_t t)
 {
   struct inferior *inf = current_inferior ();
+  darwin_inferior *priv = get_darwin_inferior (inf);
 
   /* FIXME: handle in no_ptrace mode.  */
-  gdb_assert (!inf->priv->no_ptrace);
+  gdb_assert (!priv->no_ptrace);
   kill (inf->pid, SIGINT);
 }
 
@@ -1362,27 +1357,22 @@ darwin_interrupt (struct target_ops *sel
 static void
 darwin_deallocate_threads (struct inferior *inf)
 {
-  if (inf->priv->threads)
+  darwin_inferior *priv = get_darwin_inferior (inf);
+
+  for (darwin_thread_t *t : priv->threads)
     {
-      kern_return_t kret;
-      int k;
-      darwin_thread_t *t;
-      for (k = 0;
-	   VEC_iterate (darwin_thread_t, inf->priv->threads, k, t);
-	   k++)
-	{
-	  kret = mach_port_deallocate (gdb_task, t->gdb_port);
-	  MACH_CHECK_ERROR (kret);
-	}
-      VEC_free (darwin_thread_t, inf->priv->threads);
-      inf->priv->threads = NULL;
+      kern_return_t kret = mach_port_deallocate (gdb_task, t->gdb_port);
+      MACH_CHECK_ERROR (kret);
     }
+
+  priv->threads.clear ();
 }
 
 static void
 darwin_mourn_inferior (struct target_ops *ops)
 {
   struct inferior *inf = current_inferior ();
+  darwin_inferior *priv = get_darwin_inferior (inf);
   kern_return_t kret;
   mach_port_t prev;
   int i;
@@ -1392,18 +1382,18 @@ darwin_mourn_inferior (struct target_ops
 
   /* Remove notify_port from darwin_port_set.  */
   kret = mach_port_move_member (gdb_task,
-				inf->priv->notify_port, MACH_PORT_NULL);
+				priv->notify_port, MACH_PORT_NULL);
   MACH_CHECK_ERROR (kret);
 
   /* Remove task port dead_name notification.  */
-  kret = mach_port_request_notification (gdb_task, inf->priv->task,
+  kret = mach_port_request_notification (gdb_task, priv->task,
 					 MACH_NOTIFY_DEAD_NAME, 0,
 					 MACH_PORT_NULL,
 					 MACH_MSG_TYPE_MAKE_SEND_ONCE,
 					 &prev);
   /* This can fail if the task is dead.  */
   inferior_debug (4, "task=0x%x, prev=0x%x, notify_port=0x%x\n",
-		  inf->priv->task, prev, inf->priv->notify_port);
+		  priv->task, prev, priv->notify_port);
 
   if (kret == KERN_SUCCESS)
     {
@@ -1412,17 +1402,16 @@ darwin_mourn_inferior (struct target_ops
     }
 
   /* Destroy notify_port.  */
-  kret = mach_port_destroy (gdb_task, inf->priv->notify_port);
+  kret = mach_port_destroy (gdb_task, priv->notify_port);
   MACH_CHECK_ERROR (kret);
 
   /* Deallocate saved exception ports.  */
-  darwin_deallocate_exception_ports (inf->priv);
+  darwin_deallocate_exception_ports (priv);
 
   /* Deallocate task port.  */
-  kret = mach_port_deallocate (gdb_task, inf->priv->task);
+  kret = mach_port_deallocate (gdb_task, priv->task);
   MACH_CHECK_ERROR (kret);
 
-  xfree (inf->priv);
   inf->priv = NULL;
 
   inf_child_mourn_inferior (ops);
@@ -1431,12 +1420,9 @@ darwin_mourn_inferior (struct target_ops
 static void
 darwin_reply_to_all_pending_messages (struct inferior *inf)
 {
-  int k;
-  darwin_thread_t *t;
+  darwin_inferior *priv = get_darwin_inferior (inf);
 
-  for (k = 0;
-       VEC_iterate (darwin_thread_t, inf->priv->threads, k, t);
-       k++)
+  for (darwin_thread_t *t : priv->threads)
     {
       if (t->msg_state == DARWIN_MESSAGE)
 	darwin_resume_thread (inf, t, 0, 0);
@@ -1451,6 +1437,7 @@ darwin_stop_inferior (struct inferior *i
   kern_return_t kret;
   int status;
   int res;
+  darwin_inferior *priv = get_darwin_inferior (inf);
 
   gdb_assert (inf != NULL);
 
@@ -1458,7 +1445,7 @@ darwin_stop_inferior (struct inferior *i
 
   darwin_reply_to_all_pending_messages (inf);
 
-  if (inf->priv->no_ptrace)
+  if (priv->no_ptrace)
     return;
 
   res = kill (inf->pid, SIGSTOP);
@@ -1527,11 +1514,12 @@ darwin_deallocate_exception_ports (darwi
 static void
 darwin_setup_exceptions (struct inferior *inf)
 {
+  darwin_inferior *priv = get_darwin_inferior (inf);
   kern_return_t kret;
   int traps_expected;
   exception_mask_t mask;
 
-  kret = darwin_save_exception_ports (inf->priv);
+  kret = darwin_save_exception_ports (priv);
   if (kret != KERN_SUCCESS)
     error (_("Unable to save exception ports, task_get_exception_ports"
 	     "returned: %d"),
@@ -1542,7 +1530,7 @@ darwin_setup_exceptions (struct inferior
     mask = EXC_MASK_ALL;
   else
     mask = EXC_MASK_SOFTWARE | EXC_MASK_BREAKPOINT;
-  kret = task_set_exception_ports (inf->priv->task, mask, darwin_ex_port,
+  kret = task_set_exception_ports (priv->task, mask, darwin_ex_port,
 				   EXCEPTION_DEFAULT, THREAD_STATE_NONE);
   if (kret != KERN_SUCCESS)
     error (_("Unable to set exception ports, task_set_exception_ports"
@@ -1554,6 +1542,7 @@ static void
 darwin_kill_inferior (struct target_ops *ops)
 {
   struct inferior *inf = current_inferior ();
+  darwin_inferior *priv = get_darwin_inferior (inf);
   struct target_waitstatus wstatus;
   ptid_t ptid;
   kern_return_t kret;
@@ -1565,7 +1554,7 @@ darwin_kill_inferior (struct target_ops 
 
   gdb_assert (inf != NULL);
 
-  kret = darwin_restore_exception_ports (inf->priv);
+  kret = darwin_restore_exception_ports (priv);
   MACH_CHECK_ERROR (kret);
 
   darwin_reply_to_all_pending_messages (inf);
@@ -1588,12 +1577,13 @@ darwin_kill_inferior (struct target_ops 
 static void
 darwin_setup_request_notification (struct inferior *inf)
 {
+  darwin_inferior *priv = get_darwin_inferior (inf);
   kern_return_t kret;
   mach_port_t prev_not;
 
-  kret = mach_port_request_notification (gdb_task, inf->priv->task,
+  kret = mach_port_request_notification (gdb_task, priv->task,
 					 MACH_NOTIFY_DEAD_NAME, 0,
-					 inf->priv->notify_port,
+					 priv->notify_port,
 					 MACH_MSG_TYPE_MAKE_SEND_ONCE,
 					 &prev_not);
   if (kret != KERN_SUCCESS)
@@ -1622,9 +1612,10 @@ darwin_attach_pid (struct inferior *inf)
   mach_port_t prev_not;
   exception_mask_t mask;
 
-  inf->priv = XCNEW (darwin_inferior);
+  darwin_inferior *priv = new darwin_inferior;
+  inf->priv.reset (priv);
 
-  kret = task_for_pid (gdb_task, inf->pid, &inf->priv->task);
+  kret = task_for_pid (gdb_task, inf->pid, &priv->task);
   if (kret != KERN_SUCCESS)
     {
       int status;
@@ -1641,7 +1632,7 @@ darwin_attach_pid (struct inferior *inf)
     }
 
   inferior_debug (2, _("inferior task: 0x%x, pid: %d\n"),
-		  inf->priv->task, inf->pid);
+		  priv->task, inf->pid);
 
   if (darwin_ex_port == MACH_PORT_NULL)
     {
@@ -1678,14 +1669,14 @@ darwin_attach_pid (struct inferior *inf)
 
   /* Create a port to be notified when the child task terminates.  */
   kret = mach_port_allocate (gdb_task, MACH_PORT_RIGHT_RECEIVE,
-			     &inf->priv->notify_port);
+			     &priv->notify_port);
   if (kret != KERN_SUCCESS)
     error (_("Unable to create notification port, mach_port_allocate "
 	     "returned: %d"),
 	   kret);
 
   kret = mach_port_move_member (gdb_task,
-				inf->priv->notify_port, darwin_port_set);
+				priv->notify_port, darwin_port_set);
   if (kret != KERN_SUCCESS)
     error (_("Unable to move notification port into new port set, "
 	     "mach_port_move_member\n"
@@ -1700,23 +1691,40 @@ darwin_attach_pid (struct inferior *inf)
     push_target (darwin_ops);
 }
 
+/* Get the thread_info object corresponding to this darwin_thread_info.  */
+
+static struct thread_info *
+thread_info_from_private_thread_info (darwin_thread_info *pti)
+{
+  struct thread_info *it;
+
+  ALL_THREADS (it)
+    {
+      darwin_thread_info *iter_pti = get_darwin_thread_info (it);
+
+      if (iter_pti->gdb_port == pti->gdb_port)
+	break;
+    }
+
+  gdb_assert (it != NULL);
+
+  return it;
+}
+
 static void
 darwin_init_thread_list (struct inferior *inf)
 {
-  darwin_thread_t *thread;
-  ptid_t new_ptid;
-
   darwin_check_new_threads (inf);
 
-  gdb_assert (inf->priv->threads
-	      && VEC_length (darwin_thread_t, inf->priv->threads) > 0);
-  thread = VEC_index (darwin_thread_t, inf->priv->threads, 0);
-
-  /* Note: fork_inferior automatically add a thead but it uses a wrong ptid.
-     Fix up.  */
-  new_ptid = ptid_build (inf->pid, 0, thread->gdb_port);
-  thread_change_ptid (inferior_ptid, new_ptid);
-  inferior_ptid = new_ptid;
+  darwin_inferior *priv = get_darwin_inferior (inf);
+
+  gdb_assert (!priv->threads.empty ());
+
+  darwin_thread_info *first_pti = priv->threads.front ();
+  struct thread_info *first_thread
+    = thread_info_from_private_thread_info (first_pti);
+
+  inferior_ptid = first_thread->ptid;
 }
 
 /* The child must synchronize with gdb: gdb must set the exception port
@@ -1790,7 +1798,7 @@ darwin_ptrace_him (int pid)
 
   darwin_init_thread_list (inf);
 
-  startup_inferior (START_INFERIOR_TRAPS_EXPECTED);
+  gdb_startup_inferior (pid, START_INFERIOR_TRAPS_EXPECTED);
 }
 
 static void
@@ -1834,12 +1842,9 @@ darwin_create_inferior (struct target_op
 			char **env, int from_tty)
 {
   /* Do the hard work.  */
-  fork_inferior (exec_file, allargs, env, darwin_ptrace_me, darwin_ptrace_him,
-		 darwin_pre_ptrace, NULL, darwin_execvp);
-
-  /* Return now in case of error.  */
-  if (ptid_equal (inferior_ptid, null_ptid))
-    return;
+  fork_inferior (exec_file, allargs, env, darwin_ptrace_me,
+		 darwin_ptrace_him, darwin_pre_ptrace, NULL,
+		 darwin_execvp);
 }
 
 
@@ -1852,6 +1857,7 @@ darwin_create_inferior (struct target_op
 static void
 darwin_setup_fake_stop_event (struct inferior *inf)
 {
+  darwin_inferior *priv = get_darwin_inferior (inf);
   darwin_thread_t *thread;
   kern_return_t kret;
 
@@ -1864,7 +1870,7 @@ darwin_setup_fake_stop_event (struct inf
      as well.  Otherwise, we'll try resuming it when resuming the
      inferior, and get a warning because the thread's suspend count
      is already zero, making the resume request useless.  */
-  thread = VEC_index (darwin_thread_t, inf->priv->threads, 0);
+  thread = priv->threads[0];
   kret = thread_suspend (thread->gdb_port);
   MACH_CHECK_ERROR (kret);
 }
@@ -1909,20 +1915,19 @@ darwin_attach (struct target_ops *ops, c
   inferior_appeared (inf, pid);
   inf->attach_flag = 1;
 
-  /* Always add a main thread.  */
-  add_thread_silent (inferior_ptid);
-
   darwin_attach_pid (inf);
 
   darwin_suspend_inferior (inf);
 
   darwin_init_thread_list (inf);
 
-  darwin_check_osabi (inf->priv, ptid_get_tid (inferior_ptid));
+  darwin_inferior *priv = get_darwin_inferior (inf);
+
+  darwin_check_osabi (priv, ptid_get_tid (inferior_ptid));
 
   darwin_setup_fake_stop_event (inf);
 
-  inf->priv->no_ptrace = 1;
+  priv->no_ptrace = 1;
 }
 
 /* Take a program previously attached to and detaches it.
@@ -1937,6 +1942,7 @@ darwin_detach (struct target_ops *ops, c
 {
   pid_t pid = ptid_get_pid (inferior_ptid);
   struct inferior *inf = current_inferior ();
+  darwin_inferior *priv = get_darwin_inferior (inf);
   kern_return_t kret;
   int res;
 
@@ -1944,13 +1950,13 @@ darwin_detach (struct target_ops *ops, c
   target_announce_detach (from_tty);
 
   /* If ptrace() is in use, stop the process.  */
-  if (!inf->priv->no_ptrace)
+  if (!priv->no_ptrace)
     darwin_stop_inferior (inf);
 
-  kret = darwin_restore_exception_ports (inf->priv);
+  kret = darwin_restore_exception_ports (priv);
   MACH_CHECK_ERROR (kret);
 
-  if (!inf->priv->no_ptrace)
+  if (!priv->no_ptrace)
     {
       res = PTRACE (PT_DETACH, inf->pid, 0, 0);
       if (res != 0)
@@ -1963,7 +1969,7 @@ darwin_detach (struct target_ops *ops, c
   /* When using ptrace, we have just performed a PT_DETACH, which
      resumes the inferior.  On the other hand, when we are not using
      ptrace, we need to resume its execution ourselves.  */
-  if (inf->priv->no_ptrace)
+  if (priv->no_ptrace)
     darwin_resume_inferior (inf);
 
   darwin_mourn_inferior (ops);
@@ -2195,6 +2201,7 @@ darwin_xfer_partial (struct target_ops *
 		     ULONGEST offset, ULONGEST len, ULONGEST *xfered_len)
 {
   struct inferior *inf = current_inferior ();
+  darwin_inferior *priv = get_darwin_inferior (inf);
 
   inferior_debug
     (8, _("darwin_xfer_partial(%s, %s, rbuf=%s, wbuf=%s) pid=%u\n"),
@@ -2206,7 +2213,7 @@ darwin_xfer_partial (struct target_ops *
     {
     case TARGET_OBJECT_MEMORY:
       {
-	int l = darwin_read_write_inferior (inf->priv->task, offset,
+	int l = darwin_read_write_inferior (priv->task, offset,
 					    readbuf, writebuf, len);
 
 	if (l == 0)
@@ -2225,7 +2232,7 @@ darwin_xfer_partial (struct target_ops *
           /* Support only read.  */
           return TARGET_XFER_E_IO;
         }
-      return darwin_read_dyld_info (inf->priv->task, offset, readbuf, len,
+      return darwin_read_dyld_info (priv->task, offset, readbuf, len,
 				    xfered_len);
 #endif
     default:
@@ -2235,12 +2242,13 @@ darwin_xfer_partial (struct target_ops *
 }
 
 static void
-set_enable_mach_exceptions (char *args, int from_tty,
+set_enable_mach_exceptions (const char *args, int from_tty,
 			    struct cmd_list_element *c)
 {
   if (!ptid_equal (inferior_ptid, null_ptid))
     {
       struct inferior *inf = current_inferior ();
+      darwin_inferior *priv = get_darwin_inferior (inf);
       exception_mask_t mask;
       kern_return_t kret;
 
@@ -2248,10 +2256,10 @@ set_enable_mach_exceptions (char *args, 
 	mask = EXC_MASK_ALL;
       else
 	{
-	  darwin_restore_exception_ports (inf->priv);
+	  darwin_restore_exception_ports (priv);
 	  mask = EXC_MASK_SOFTWARE | EXC_MASK_BREAKPOINT;
 	}
-      kret = task_set_exception_ports (inf->priv->task, mask, darwin_ex_port,
+      kret = task_set_exception_ports (priv->task, mask, darwin_ex_port,
 				       EXCEPTION_DEFAULT, THREAD_STATE_NONE);
       MACH_CHECK_ERROR (kret);
     }
@@ -2273,10 +2281,8 @@ darwin_pid_to_exec_file (struct target_o
 static ptid_t
 darwin_get_ada_task_ptid (struct target_ops *self, long lwp, long thread)
 {
-  int i;
-  darwin_thread_t *t;
-  int k;
   struct inferior *inf = current_inferior ();
+  darwin_inferior *priv = get_darwin_inferior (inf);
   kern_return_t kret;
   mach_port_name_array_t names;
   mach_msg_type_number_t names_count;
@@ -2285,16 +2291,16 @@ darwin_get_ada_task_ptid (struct target_
   long res = 0;
 
   /* First linear search.  */
-  for (k = 0;
-       VEC_iterate (darwin_thread_t, inf->priv->threads, k, t);
-       k++)
-    if (t->inf_port == lwp)
-      return ptid_build (ptid_get_pid (inferior_ptid), 0, t->gdb_port);
+  for (darwin_thread_t *t : priv->threads)
+    {
+      if (t->inf_port == lwp)
+	return ptid_build (ptid_get_pid (inferior_ptid), 0, t->gdb_port);
+    }
 
   /* Maybe the port was never extract.  Do it now.  */
 
   /* First get inferior port names.  */
-  kret = mach_port_names (inf->priv->task, &names, &names_count, &types,
+  kret = mach_port_names (priv->task, &names, &names_count, &types,
 			  &types_count);
   MACH_CHECK_ERROR (kret);
   if (kret != KERN_SUCCESS)
@@ -2303,29 +2309,29 @@ darwin_get_ada_task_ptid (struct target_
   /* For each name, copy the right in the gdb space and then compare with
      our view of the inferior threads.  We don't forget to deallocate the
      right.  */
-  for (i = 0; i < names_count; i++)
+  for (int i = 0; i < names_count; i++)
     {
       mach_port_t local_name;
       mach_msg_type_name_t local_type;
 
       /* We just need to know the corresponding name in gdb name space.
 	 So extract and deallocate the right.  */
-      kret = mach_port_extract_right (inf->priv->task, names[i],
+      kret = mach_port_extract_right (priv->task, names[i],
 				      MACH_MSG_TYPE_COPY_SEND,
 				      &local_name, &local_type);
       if (kret != KERN_SUCCESS)
 	continue;
       mach_port_deallocate (gdb_task, local_name);
 
-      for (k = 0;
-	   VEC_iterate (darwin_thread_t, inf->priv->threads, k, t);
-	   k++)
-	if (t->gdb_port == local_name)
-	  {
-	    t->inf_port = names[i];
-	    if (names[i] == lwp)
-	      res = t->gdb_port;
-	  }
+      for (darwin_thread_t *t : priv->threads)
+	{
+	  if (t->gdb_port == local_name)
+	    {
+	      t->inf_port = names[i];
+	      if (names[i] == lwp)
+		res = t->gdb_port;
+	    }
+	}
     }
 
   vm_deallocate (gdb_task, (vm_address_t) names,
@@ -2343,9 +2349,6 @@ darwin_supports_multi_process (struct ta
   return 1;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_darwin_inferior;
-
 void
 _initialize_darwin_inferior (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/darwin-nat.h ./gdb/darwin-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/darwin-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/darwin-nat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Common things used by the various darwin files
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 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
@@ -18,6 +18,7 @@
 #define __DARWIN_NAT_H__
 
 #include <mach/mach.h>
+#include "gdbthread.h"
 
 /* Describe the mach exception handling state for a task.  This state is saved
    before being changed and restored when a process is detached.
@@ -26,21 +27,20 @@
 struct darwin_exception_info
 {
   /* Exceptions handled by the port.  */
-  exception_mask_t masks[EXC_TYPES_COUNT];
+  exception_mask_t masks[EXC_TYPES_COUNT] {};
 
   /* Ports receiving exception messages.  */
-  mach_port_t ports[EXC_TYPES_COUNT];
+  mach_port_t ports[EXC_TYPES_COUNT] {};
 
   /* Type of messages sent.  */
-  exception_behavior_t behaviors[EXC_TYPES_COUNT];
+  exception_behavior_t behaviors[EXC_TYPES_COUNT] {};
 
   /* Type of state to be sent.  */
-  thread_state_flavor_t flavors[EXC_TYPES_COUNT];
+  thread_state_flavor_t flavors[EXC_TYPES_COUNT] {};
 
   /* Number of elements set.  */
-  mach_msg_type_number_t count;
+  mach_msg_type_number_t count = 0;
 };
-typedef struct darwin_exception_info darwin_exception_info;
 
 struct darwin_exception_msg
 {
@@ -70,7 +70,7 @@ enum darwin_msg_state
   DARWIN_MESSAGE
 };
 
-struct private_thread_info
+struct darwin_thread_info : public private_thread_info
 {
   /* The thread port from a GDB point of view.  */
   thread_t gdb_port;
@@ -93,38 +93,47 @@ struct private_thread_info
   /* The last exception received.  */
   struct darwin_exception_msg event;
 };
-typedef struct private_thread_info darwin_thread_t;
-
-/* Define the threads vector type.  */
-DEF_VEC_O (darwin_thread_t);
+typedef struct darwin_thread_info darwin_thread_t;
 
+static inline darwin_thread_info *
+get_darwin_thread_info (class thread_info *thread)
+{
+  return static_cast<darwin_thread_info *> (thread->priv.get ());
+}
 
 /* Describe an inferior.  */
-struct private_inferior
+struct darwin_inferior : public private_inferior
 {
   /* Corresponding task port.  */
-  task_t task;
+  task_t task = 0;
 
   /* Port which will receive the dead-name notification for the task port.
      This is used to detect the death of the task.  */
-  mach_port_t notify_port;
+  mach_port_t notify_port = 0;
 
   /* Initial exception handling.  */
   darwin_exception_info exception_info;
 
   /* Number of messages that have been received but not yet replied.  */
-  unsigned int pending_messages;
+  unsigned int pending_messages = 0;
 
   /* Set if inferior is not controlled by ptrace(2) but through Mach.  */
-  unsigned char no_ptrace;
+  bool no_ptrace = false;
 
   /* True if this task is suspended.  */
-  unsigned char suspended;
+  bool suspended = false;
 
   /* Sorted vector of known threads.  */
-  VEC(darwin_thread_t) *threads;
+  std::vector<darwin_thread_t *> threads;
 };
-typedef struct private_inferior darwin_inferior;
+
+/* Return the darwin_inferior attached to INF.  */
+
+static inline darwin_inferior *
+get_darwin_inferior (inferior *inf)
+{
+  return static_cast<darwin_inferior *> (inf->priv.get ());
+}
 
 /* Exception port.  */
 extern mach_port_t darwin_ex_port;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/darwin-nat-info.c ./gdb/darwin-nat-info.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/darwin-nat-info.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/darwin-nat-info.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Darwin support for GDB, the GNU debugger.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
 
    Contributed by Apple Computer, Inc.
 
@@ -66,7 +66,7 @@
 #define port_type_array_t mach_port_array_t
 
 static void
-info_mach_tasks_command (char *args, int from_tty)
+info_mach_tasks_command (const char *args, int from_tty)
 {
   int sysControl[4];
   int count, index;
@@ -109,7 +109,7 @@ info_mach_tasks_command (char *args, int
 }
 
 static task_t
-get_task_from_args (char *args)
+get_task_from_args (const char *args)
 {
   task_t task;
   char *eptr;
@@ -118,7 +118,10 @@ get_task_from_args (char *args)
     {
       if (ptid_equal (inferior_ptid, null_ptid))
 	printf_unfiltered (_("No inferior running\n"));
-      return current_inferior ()->priv->task;
+
+      darwin_inferior *priv = get_darwin_inferior (current_inferior ());
+
+      return priv->task;
     }
   if (strcmp (args, "gdb") == 0)
     return mach_task_self ();
@@ -132,7 +135,7 @@ get_task_from_args (char *args)
 }
 
 static void
-info_mach_task_command (char *args, int from_tty)
+info_mach_task_command (const char *args, int from_tty)
 {
   union
   {
@@ -189,7 +192,7 @@ info_mach_task_command (char *args, int 
 }
 
 static void
-info_mach_ports_command (char *args, int from_tty)
+info_mach_ports_command (const char *args, int from_tty)
 {
   port_name_array_t names;
   port_type_array_t types;
@@ -257,36 +260,31 @@ info_mach_ports_command (char *args, int
 	  else if (!ptid_equal (inferior_ptid, null_ptid))
 	    {
 	      struct inferior *inf = current_inferior ();
+	      darwin_inferior *priv = get_darwin_inferior (inf);
 
-	      if (port == inf->priv->task)
+	      if (port == priv->task)
 		printf_unfiltered (_(" inferior-task"));
-	      else if (port == inf->priv->notify_port)
+	      else if (port == priv->notify_port)
 		printf_unfiltered (_(" inferior-notify"));
 	      else
 		{
-		  int k;
-		  darwin_thread_t *t;
-
-		  for (k = 0; k < inf->priv->exception_info.count; k++)
-		    if (port == inf->priv->exception_info.ports[k])
+		  for (int k = 0; k < priv->exception_info.count; k++)
+		    if (port == priv->exception_info.ports[k])
 		      {
 			printf_unfiltered (_(" inferior-excp-port"));
 			break;
 		      }
 
-		  if (inf->priv->threads)
+		  for (darwin_thread_t *t : priv->threads)
 		    {
-		      for (k = 0;
-			   VEC_iterate(darwin_thread_t,
-				       inf->priv->threads, k, t);
-			   k++)
-			if (port == t->gdb_port)
-			  {
-			    printf_unfiltered (_(" inferior-thread for 0x%x"),
-					       inf->priv->task);
-			    break;
-			  }
+		      if (port == t->gdb_port)
+			{
+			  printf_unfiltered (_(" inferior-thread for 0x%x"),
+					     priv->task);
+			  break;
+			}
 		    }
+
 		}
 	    }
 	}
@@ -326,7 +324,7 @@ darwin_debug_port_info (task_t task, mac
 }
 
 static void
-info_mach_port_command (char *args, int from_tty)
+info_mach_port_command (const char *args, int from_tty)
 {
   task_t task;
   mach_port_t port;
@@ -338,7 +336,7 @@ info_mach_port_command (char *args, int 
 }
 
 static void
-info_mach_threads_command (char *args, int from_tty)
+info_mach_threads_command (const char *args, int from_tty)
 {
   thread_array_t threads;
   unsigned int thread_count;
@@ -365,7 +363,7 @@ info_mach_threads_command (char *args, i
 }
 
 static void
-info_mach_thread_command (char *args, int from_tty)
+info_mach_thread_command (const char *args, int from_tty)
 {
   union
   {
@@ -617,10 +615,9 @@ darwin_debug_regions_recurse (task_t tas
   vm_region_submap_short_info_data_64_t r_info;
   kern_return_t kret;
   int ret;
-  struct cleanup *table_chain;
   struct ui_out *uiout = current_uiout;
 
-  table_chain = make_cleanup_ui_out_table_begin_end (uiout, 9, -1, "regions");
+  ui_out_emit_table table_emitter (uiout, 9, -1, "regions");
 
   if (gdbarch_addr_bit (target_gdbarch ()) <= 32)
     {
@@ -647,7 +644,6 @@ darwin_debug_regions_recurse (task_t tas
   while (1)
     {
       const char *tag;
-      struct cleanup *row_chain;
 
       r_info_size = VM_REGION_SUBMAP_SHORT_INFO_COUNT_64;
       r_size = -1;
@@ -656,28 +652,29 @@ darwin_debug_regions_recurse (task_t tas
 				     &r_info_size);
       if (kret != KERN_SUCCESS)
 	break;
-      row_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "regions-row");
 
-      uiout->field_core_addr ("start", target_gdbarch (), r_start);
-      uiout->field_core_addr ("end", target_gdbarch (), r_start + r_size);
-      uiout->field_string ("min-prot",
-			   unparse_protection (r_info.protection));
-      uiout->field_string ("max-prot",
-			   unparse_protection (r_info.max_protection));
-      uiout->field_string ("inheritence",
-			   unparse_inheritance (r_info.inheritance));
-      uiout->field_string ("share-mode",
-			   unparse_share_mode (r_info.share_mode));
-      uiout->field_int ("depth", r_depth);
-      uiout->field_string ("submap",
-			   r_info.is_submap ? _("sm ") : _("obj"));
-      tag = unparse_user_tag (r_info.user_tag);
-      if (tag)
-	uiout->field_string ("tag", tag);
-      else
-	uiout->field_int ("tag", r_info.user_tag);
+      {
+	ui_out_emit_tuple tuple_emitter (uiout, "regions-row");
 
-      do_cleanups (row_chain);
+	uiout->field_core_addr ("start", target_gdbarch (), r_start);
+	uiout->field_core_addr ("end", target_gdbarch (), r_start + r_size);
+	uiout->field_string ("min-prot",
+			     unparse_protection (r_info.protection));
+	uiout->field_string ("max-prot",
+			     unparse_protection (r_info.max_protection));
+	uiout->field_string ("inheritence",
+			     unparse_inheritance (r_info.inheritance));
+	uiout->field_string ("share-mode",
+			     unparse_share_mode (r_info.share_mode));
+	uiout->field_int ("depth", r_depth);
+	uiout->field_string ("submap",
+			     r_info.is_submap ? _("sm ") : _("obj"));
+	tag = unparse_user_tag (r_info.user_tag);
+	if (tag)
+	  uiout->field_string ("tag", tag);
+	else
+	  uiout->field_int ("tag", r_info.user_tag);
+      }
 
       if (!uiout->is_mi_like_p ())
 	uiout->text ("\n");
@@ -687,8 +684,6 @@ darwin_debug_regions_recurse (task_t tas
       else
 	r_start += r_size;
     }
-  do_cleanups (table_chain);
-
 }
 
 
@@ -699,7 +694,7 @@ darwin_debug_region (task_t task, mach_v
 }
 
 static void
-info_mach_regions_command (char *args, int from_tty)
+info_mach_regions_command (const char *args, int from_tty)
 {
   task_t task;
 
@@ -711,7 +706,7 @@ info_mach_regions_command (char *args, i
 }
 
 static void
-info_mach_regions_recurse_command (char *args, int from_tty)
+info_mach_regions_recurse_command (const char *args, int from_tty)
 {
   task_t task;
 
@@ -723,7 +718,7 @@ info_mach_regions_recurse_command (char 
 }
 
 static void
-info_mach_region_command (char *exp, int from_tty)
+info_mach_region_command (const char *exp, int from_tty)
 {
   struct value *val;
   mach_vm_address_t address;
@@ -741,7 +736,8 @@ info_mach_region_command (char *exp, int
     error (_("Inferior not available"));
 
   inf = current_inferior ();
-  darwin_debug_region (inf->priv->task, address);
+  darwin_inferior *priv = get_darwin_inferior (inf);
+  darwin_debug_region (priv->task, address);
 }
 
 static void
@@ -795,7 +791,7 @@ disp_exception (const darwin_exception_i
 }
 
 static void
-info_mach_exceptions_command (char *args, int from_tty)
+info_mach_exceptions_command (const char *args, int from_tty)
 {
   int i;
   task_t task;
@@ -810,7 +806,10 @@ info_mach_exceptions_command (char *args
 	{
 	  if (ptid_equal (inferior_ptid, null_ptid))
 	    printf_unfiltered (_("No inferior running\n"));
-	  disp_exception (&current_inferior ()->priv->exception_info);
+
+	  darwin_inferior *priv = get_darwin_inferior (current_inferior ());
+
+	  disp_exception (&priv->exception_info);
 	  return;
 	}
       else if (strcmp (args, "host") == 0)
@@ -833,17 +832,16 @@ info_mach_exceptions_command (char *args
 	printf_unfiltered (_("No inferior running\n"));
       inf = current_inferior ();
       
+      darwin_inferior *priv = get_darwin_inferior (inf);
+
       kret = task_get_exception_ports
-	(inf->priv->task, EXC_MASK_ALL, info.masks,
+	(priv->task, EXC_MASK_ALL, info.masks,
 	 &info.count, info.ports, info.behaviors, info.flavors);
       MACH_CHECK_ERROR (kret);
       disp_exception (&info);
     }
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_darwin_info_commands;
-
 void
 _initialize_darwin_info_commands (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/data-directory/Makefile.in ./gdb/data-directory/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/data-directory/Makefile.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/data-directory/Makefile.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # Makefile for building a staged copy of the data-directory.
 # This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dbxread.c ./gdb/dbxread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dbxread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dbxread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Read dbx symbol tables and convert to internal format, for GDB.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -54,7 +54,6 @@
 #include "cp-support.h"
 #include "psympriv.h"
 #include "block.h"
-
 #include "aout/aout64.h"
 #include "aout/stab_gnu.h"	/* We always use GNU stabs, not
 				   native, now.  */
@@ -92,6 +91,7 @@ struct symloc
     int symbol_offset;
     int string_offset;
     int file_string_offset;
+    enum language pst_language;
   };
 
 #define LDSYMOFF(p) (((struct symloc *)((p)->read_symtab_private))->ldsymoff)
@@ -101,6 +101,7 @@ struct symloc
 #define SYMBOL_OFFSET(p) (SYMLOC(p)->symbol_offset)
 #define STRING_OFFSET(p) (SYMLOC(p)->string_offset)
 #define FILE_STRING_OFFSET(p) (SYMLOC(p)->file_string_offset)
+#define PST_LANGUAGE(p) (SYMLOC(p)->pst_language)
 
 
 /* The objfile we are currently reading.  */
@@ -249,8 +250,6 @@ static int bincls_allocated;
 
 /* Local function prototypes.  */
 
-extern void _initialize_dbxread (void);
-
 static void read_ofile_symtab (struct objfile *, struct partial_symtab *);
 
 static void dbx_read_symtab (struct partial_symtab *self,
@@ -293,8 +292,8 @@ static void add_this_object_header_file 
 
 static struct partial_symtab *start_psymtab (struct objfile *, const char *,
 					     CORE_ADDR, int,
-					     struct partial_symbol **,
-					     struct partial_symbol **);
+					     std::vector<partial_symbol *> &,
+					     std::vector<partial_symbol *> &);
 
 /* Free up old header file tables.  */
 
@@ -518,7 +517,6 @@ dbx_symfile_read (struct objfile *objfil
 {
   bfd *sym_bfd;
   int val;
-  struct cleanup *back_to;
 
   sym_bfd = objfile->obfd;
 
@@ -533,14 +531,15 @@ dbx_symfile_read (struct objfile *objfil
     perror_with_name (objfile_name (objfile));
 
   /* Size the symbol table.  */
-  if (objfile->global_psymbols.size == 0 && objfile->static_psymbols.size == 0)
+  if (objfile->global_psymbols.capacity () == 0
+      && objfile->static_psymbols.capacity () == 0)
     init_psymbol_list (objfile, DBX_SYMCOUNT (objfile));
 
   symbol_size = DBX_SYMBOL_SIZE (objfile);
   symbol_table_offset = DBX_SYMTAB_OFFSET (objfile);
 
   free_pending_blocks ();
-  back_to = make_cleanup (really_free_pendings, 0);
+  scoped_free_pendings free_pending;
 
   minimal_symbol_reader reader (objfile);
 
@@ -552,8 +551,6 @@ dbx_symfile_read (struct objfile *objfil
      minimal symbols for this objfile.  */
 
   reader.install ();
-
-  do_cleanups (back_to);
 }
 
 /* Initialize anything that needs initializing when a completely new
@@ -1360,8 +1357,8 @@ read_dbx_symtab (minimal_symbol_reader &
 		pst = start_psymtab (objfile,
 				     namestring, valu,
 				     first_so_symnum * symbol_size,
-				     objfile->global_psymbols.next,
-				     objfile->static_psymbols.next);
+				     objfile->global_psymbols,
+				     objfile->static_psymbols);
 		pst->dirname = dirname_nso;
 		dirname_nso = NULL;
 	      }
@@ -1999,12 +1996,12 @@ read_dbx_symtab (minimal_symbol_reader &
 
 static struct partial_symtab *
 start_psymtab (struct objfile *objfile, const char *filename, CORE_ADDR textlow,
-	       int ldsymoff, struct partial_symbol **global_syms,
-	       struct partial_symbol **static_syms)
+	       int ldsymoff, std::vector<partial_symbol *> &global_psymbols,
+	       std::vector<partial_symbol *> &static_psymbols)
 {
   struct partial_symtab *result =
     start_psymtab_common (objfile, filename, textlow,
-			  global_syms, static_syms);
+			  global_psymbols, static_psymbols);
 
   result->read_symtab_private =
     XOBNEW (&objfile->objfile_obstack, struct symloc);
@@ -2017,6 +2014,7 @@ start_psymtab (struct objfile *objfile, 
 
   /* Deduce the source language from the filename for this psymtab.  */
   psymtab_language = deduce_language_from_filename (filename);
+  PST_LANGUAGE (result) = psymtab_language;
 
   return result;
 }
@@ -2187,7 +2185,6 @@ dbx_end_psymtab (struct objfile *objfile
 static void
 dbx_psymtab_to_symtab_1 (struct objfile *objfile, struct partial_symtab *pst)
 {
-  struct cleanup *old_chain;
   int i;
 
   if (pst->readin)
@@ -2221,15 +2218,13 @@ dbx_psymtab_to_symtab_1 (struct objfile 
       /* Init stuff necessary for reading in symbols */
       stabsread_init ();
       buildsym_init ();
-      old_chain = make_cleanup (really_free_pendings, 0);
+      scoped_free_pendings free_pending;
       file_string_table_offset = FILE_STRING_OFFSET (pst);
       symbol_size = SYMBOL_SIZE (pst);
 
       /* Read in this file's symbols.  */
       bfd_seek (objfile->obfd, SYMBOL_OFFSET (pst), SEEK_SET);
       read_ofile_symtab (objfile, pst);
-
-      do_cleanups (old_chain);
     }
 
   pst->readin = 1;
@@ -2403,7 +2398,8 @@ read_ofile_symtab (struct objfile *objfi
 		 positive offsets.  */
 	    nlist.n_value = (nlist.n_value ^ 0x80000000) - 0x80000000;
 	  process_one_symbol (type, nlist.n_desc, nlist.n_value,
-			      namestring, section_offsets, objfile);
+			      namestring, section_offsets, objfile,
+			      PST_LANGUAGE (pst));
 	}
       /* We skip checking for a new .o or -l file; that should never
          happen in this routine.  */
@@ -2498,12 +2494,14 @@ cp_set_block_scope (const struct symbol 
    the pst->section_offsets.  All symbols that refer to memory
    locations need to be offset by these amounts.
    OBJFILE is the object file from which we are reading symbols.  It
-   is used in end_symtab.  */
+   is used in end_symtab.
+   LANGUAGE is the language of the symtab.
+*/
 
 void
 process_one_symbol (int type, int desc, CORE_ADDR valu, const char *name,
 		    const struct section_offsets *section_offsets,
-		    struct objfile *objfile)
+		    struct objfile *objfile, enum language language)
 {
   struct gdbarch *gdbarch = get_objfile_arch (objfile);
   struct context_stack *newobj;
@@ -2717,7 +2715,7 @@ process_one_symbol (int type, int desc, 
       function_start_offset = 0;
 
       start_stabs ();
-      start_symtab (objfile, name, NULL, valu);
+      start_symtab (objfile, name, NULL, valu, language);
       record_debugformat ("stabs");
       break;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dcache.c ./gdb/dcache.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dcache.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dcache.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Caching code for GDB, the GNU debugger.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -125,10 +125,6 @@ static int dcache_read_line (DCACHE *dca
 
 static struct dcache_block *dcache_alloc (DCACHE *dcache, CORE_ADDR addr);
 
-static void dcache_info (char *exp, int tty);
-
-void _initialize_dcache (void);
-
 static int dcache_enabled_p = 0; /* OBSOLETE */
 
 static void
@@ -587,7 +583,7 @@ dcache_print_line (DCACHE *dcache, int i
 /* Parse EXP and show the info about DCACHE.  */
 
 static void
-dcache_info_1 (DCACHE *dcache, char *exp)
+dcache_info_1 (DCACHE *dcache, const char *exp)
 {
   splay_tree_node n;
   int i, refcount;
@@ -642,13 +638,13 @@ dcache_info_1 (DCACHE *dcache, char *exp
 }
 
 static void
-dcache_info (char *exp, int tty)
+info_dcache_command (const char *exp, int tty)
 {
   dcache_info_1 (target_dcache_get (), exp);
 }
 
 static void
-set_dcache_size (char *args, int from_tty,
+set_dcache_size (const char *args, int from_tty,
 		 struct cmd_list_element *c)
 {
   if (dcache_size == 0)
@@ -660,7 +656,7 @@ set_dcache_size (char *args, int from_tt
 }
 
 static void
-set_dcache_line_size (char *args, int from_tty,
+set_dcache_line_size (const char *args, int from_tty,
 		      struct cmd_list_element *c)
 {
   if (dcache_line_size < 2
@@ -674,7 +670,7 @@ set_dcache_line_size (char *args, int fr
 }
 
 static void
-set_dcache_command (char *arg, int from_tty)
+set_dcache_command (const char *arg, int from_tty)
 {
   printf_unfiltered (
      "\"set dcache\" must be followed by the name of a subcommand.\n");
@@ -682,7 +678,7 @@ set_dcache_command (char *arg, int from_
 }
 
 static void
-show_dcache_command (char *args, int from_tty)
+show_dcache_command (const char *args, int from_tty)
 {
   cmd_show_list (dcache_show_list, from_tty, "");
 }
@@ -702,7 +698,7 @@ exists only for compatibility reasons.")
 			   show_dcache_enabled_p,
 			   &setlist, &showlist);
 
-  add_info ("dcache", dcache_info,
+  add_info ("dcache", info_dcache_command,
 	    _("\
 Print information on the dcache performance.\n\
 With no arguments, this command prints the cache configuration and a\n\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dcache.h ./gdb/dcache.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dcache.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dcache.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Declarations for caching.  Typically used by remote back ends for
    caching remote memory.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/debug.c ./gdb/debug.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/debug.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/debug.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Debug printing functions.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/defs.h ./gdb/defs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/defs.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/defs.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* *INDENT-OFF* */ /* ATTRIBUTE_PRINTF confuses indent, avoid running it
 		      for now.  */
 /* Basic, host-specific, and target-specific definitions for GDB.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -82,6 +82,11 @@ enum compile_i_scope_types
     COMPILE_I_PRINT_VALUE_SCOPE,
   };
 
+
+template<typename T>
+using RequireLongest = gdb::Requires<gdb::Or<std::is_same<T, LONGEST>,
+					     std::is_same<T, ULONGEST>>>;
+
 /* Just in case they're not defined in stdio.h.  */
 
 #ifndef SEEK_SET
@@ -150,12 +155,6 @@ extern void set_quit_flag (void);
 typedef void (quit_handler_ftype) (void);
 extern quit_handler_ftype *quit_handler;
 
-/* Override the current quit handler.  Sets NEW_QUIT_HANDLER as
-   current quit handler, and installs a cleanup that when run restores
-   the previous quit handler.  */
-struct cleanup *
-  make_cleanup_override_quit_handler (quit_handler_ftype *new_quit_handler);
-
 /* The default quit handler.  Checks whether Ctrl-C was pressed, and
    if so:
 
@@ -198,7 +197,8 @@ extern void quit_serial_event_clear (voi
    several languages.  For that reason, the constants here are sorted
    in the order we'll attempt demangling them.  For example: Rust uses
    C++ mangling, so must come after C++; Ada must come last (see
-   ada_sniff_from_mangled_name).  */
+   ada_sniff_from_mangled_name).  (Keep this order in sync with the
+   'languages' array in language.c.)  */
 
 enum language
   {
@@ -298,7 +298,7 @@ EXTERN_C char *re_comp (const char *);
 
 /* From symfile.c */
 
-extern void symbol_file_command (char *, int);
+extern void symbol_file_command (const char *, int);
 
 /* * Remote targets may wish to use this as their load function.  */
 extern void generic_load (const char *name, int from_tty);
@@ -350,11 +350,11 @@ extern int openp (const char *, int, con
 
 extern int source_full_path_of (const char *, char **);
 
-extern void mod_path (char *, char **);
+extern void mod_path (const char *, char **);
 
-extern void add_path (char *, char **, int);
+extern void add_path (const char *, char **, int);
 
-extern void directory_switch (char *, int);
+extern void directory_switch (const char *, int);
 
 extern char *source_path;
 
@@ -394,80 +394,6 @@ enum lval_type
     lval_computed
   };
 
-/* * Control types for commands.  */
-
-enum misc_command_type
-  {
-    ok_command,
-    end_command,
-    else_command,
-    nop_command
-  };
-
-enum command_control_type
-  {
-    simple_control,
-    break_control,
-    continue_control,
-    while_control,
-    if_control,
-    commands_control,
-    python_control,
-    compile_control,
-    guile_control,
-    while_stepping_control,
-    invalid_control
-  };
-
-/* * Structure for saved commands lines (for breakpoints, defined
-   commands, etc).  */
-
-struct command_line
-  {
-    struct command_line *next;
-    char *line;
-    enum command_control_type control_type;
-    union
-      {
-	struct
-	  {
-	    enum compile_i_scope_types scope;
-	    void *scope_data;
-	  }
-	compile;
-      }
-    control_u;
-    /* * The number of elements in body_list.  */
-    int body_count;
-    /* * For composite commands, the nested lists of commands.  For
-       example, for "if" command this will contain the then branch and
-       the else branch, if that is available.  */
-    struct command_line **body_list;
-  };
-
-extern void free_command_lines (struct command_line **);
-
-/* A deleter for command_line that calls free_command_lines.  */
-
-struct command_lines_deleter
-{
-  void operator() (command_line *lines) const
-  {
-    free_command_lines (&lines);
-  }
-};
-
-/* A unique pointer to a command_line.  */
-
-typedef std::unique_ptr<command_line, command_lines_deleter> command_line_up;
-
-extern command_line_up read_command_lines (char *, int, int,
-					   void (*)(char *, void *),
-					   void *);
-extern command_line_up read_command_lines_1 (char * (*) (void), int,
-					     void (*)(char *, void *),
-					     void *);
-
 /* * Parameters of the "info proc" command.  */
 
 enum info_proc_what
@@ -637,11 +563,22 @@ enum { MAX_REGISTER_SIZE = 64 };
 
 /* In findvar.c.  */
 
-extern LONGEST extract_signed_integer (const gdb_byte *, int,
-				       enum bfd_endian);
+template<typename T, typename = RequireLongest<T>>
+T extract_integer (const gdb_byte *addr, int len, enum bfd_endian byte_order);
 
-extern ULONGEST extract_unsigned_integer (const gdb_byte *, int,
-					  enum bfd_endian);
+static inline LONGEST
+extract_signed_integer (const gdb_byte *addr, int len,
+			enum bfd_endian byte_order)
+{
+  return extract_integer<LONGEST> (addr, len, byte_order);
+}
+
+static inline ULONGEST
+extract_unsigned_integer (const gdb_byte *addr, int len,
+			  enum bfd_endian byte_order)
+{
+  return extract_integer<ULONGEST> (addr, len, byte_order);
+}
 
 extern int extract_long_unsigned_integer (const gdb_byte *, int,
 					  enum bfd_endian, LONGEST *);
@@ -649,16 +586,34 @@ extern int extract_long_unsigned_integer
 extern CORE_ADDR extract_typed_address (const gdb_byte *buf,
 					struct type *type);
 
-extern void store_signed_integer (gdb_byte *, int,
-				  enum bfd_endian, LONGEST);
+/* All 'store' functions accept a host-format integer and store a
+   target-format integer at ADDR which is LEN bytes long.  */
 
-extern void store_unsigned_integer (gdb_byte *, int,
-				    enum bfd_endian, ULONGEST);
+template<typename T, typename = RequireLongest<T>>
+extern void store_integer (gdb_byte *addr, int len, enum bfd_endian byte_order,
+			   T val);
+
+static inline void
+store_signed_integer (gdb_byte *addr, int len,
+		      enum bfd_endian byte_order, LONGEST val)
+{
+  return store_integer (addr, len, byte_order, val);
+}
+
+static inline void
+store_unsigned_integer (gdb_byte *addr, int len,
+			enum bfd_endian byte_order, ULONGEST val)
+{
+  return store_integer (addr, len, byte_order, val);
+}
 
 extern void store_typed_address (gdb_byte *buf, struct type *type,
 				 CORE_ADDR addr);
 
-
+extern void copy_integer_to_size (gdb_byte *dest, int dest_size,
+				  const gdb_byte *source, int source_size,
+				  bool is_signed, enum bfd_endian byte_order);
+
 /* From valops.c */
 
 extern int watchdog;
@@ -705,7 +660,7 @@ extern ptid_t (*deprecated_target_wait_h
 extern void (*deprecated_attach_hook) (void);
 extern void (*deprecated_detach_hook) (void);
 extern void (*deprecated_call_command_hook) (struct cmd_list_element * c,
-					     char *cmd, int from_tty);
+					     const char *cmd, int from_tty);
 
 extern int (*deprecated_ui_load_progress_hook) (const char *section,
 						unsigned long num);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/demangle.c ./gdb/demangle.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/demangle.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/demangle.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Basic C++ demangling support for GDB.
 
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
    Written by Fred Fish at Cygnus Support.
 
@@ -43,8 +43,6 @@
 #define DEFAULT_DEMANGLING_STYLE AUTO_DEMANGLING_STYLE_STRING
 #endif
 
-static void demangle_command (char *, int);
-
 /* See documentation in gdb-demangle.h.  */
 int demangle = 1;
 
@@ -106,7 +104,8 @@ show_demangling_style_names(struct ui_fi
    a malloc'd string, even if it is a null-string.  */
 
 static void
-set_demangling_command (char *ignore, int from_tty, struct cmd_list_element *c)
+set_demangling_command (const char *ignore,
+			int from_tty, struct cmd_list_element *c)
 {
   const struct demangler_engine *dem;
   int i;
@@ -159,40 +158,32 @@ is_cplus_marker (int c)
 /* Demangle the given string in the current language.  */
 
 static void
-demangle_command (char *args, int from_tty)
+demangle_command (const char *args, int from_tty)
 {
-  char *demangled, *name, *lang_name = NULL;
-  char *arg_buf, *arg_start;
+  char *demangled;
+  const char *name;
+  const char *arg_start;
   int processing_args = 1;
   const struct language_defn *lang;
-  struct cleanup *cleanups;
 
-  arg_buf = xstrdup (args != NULL ? args : "");
-  cleanups = make_cleanup (xfree, arg_buf);
-  arg_start = arg_buf;
+  std::string arg_buf = args != NULL ? args : "";
+  arg_start = arg_buf.c_str ();
 
+  std::string lang_name;
   while (processing_args
 	 && *arg_start == '-')
     {
-      char *p = skip_to_space (arg_start);
+      const char *p = skip_to_space (arg_start);
 
       if (strncmp (arg_start, "-l", p - arg_start) == 0)
-	{
-	  char *lang_name_end;
-
-	  lang_name = skip_spaces (p);
-	  lang_name_end = skip_to_space (lang_name);
-	  lang_name = savestring (lang_name, lang_name_end - lang_name);
-	  make_cleanup (xfree, lang_name);
-	  p = lang_name_end;
-	}
+	lang_name = extract_arg (&p);
       else if (strncmp (arg_start, "--", p - arg_start) == 0)
 	processing_args = 0;
       else
 	{
-	  *p = '\0';
+	  std::string option = extract_arg (&p);
 	  error (_("Unrecognized option '%s' to demangle command.  "
-		   "Try \"help demangle\"."), arg_start);
+		   "Try \"help demangle\"."), option.c_str ());
 	}
 
       arg_start = skip_spaces (p);
@@ -203,13 +194,13 @@ demangle_command (char *args, int from_t
   if (*name == '\0')
     error (_("Usage: demangle [-l language] [--] name"));
 
-  if (lang_name != NULL)
+  if (!lang_name.empty ())
     {
       enum language lang_enum;
 
-      lang_enum = language_enum (lang_name);
+      lang_enum = language_enum (lang_name.c_str ());
       if (lang_enum == language_unknown)
-	error (_("Unknown language \"%s\""), lang_name);
+	error (_("Unknown language \"%s\""), lang_name.c_str ());
       lang = language_def (lang_enum);
     }
   else
@@ -223,12 +214,8 @@ demangle_command (char *args, int from_t
     }
   else
     error (_("Can't demangle \"%s\""), name);
-
-  do_cleanups (cleanups);
 }
 
-extern initialize_file_ftype _initialize_demangler; /* -Wmissing-prototypes */
-
 void
 _initialize_demangler (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/d-exp.c ./gdb/d-exp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/d-exp.c	2018-01-02 02:06:29.000000000 +0000
+++ ./gdb/d-exp.c	2018-01-09 02:08:06.000000000 +0000
@@ -249,7 +249,7 @@ typedef union YYSTYPE
       struct type *type;
     } typed_val_int;
     struct {
-      DOUBLEST dval;
+      gdb_byte val[16];
       struct type *type;
     } typed_val_float;
     struct symbol *sym;
@@ -2112,15 +2112,14 @@ yyreduce:
 			      struct block_symbol sym;
 			      const char *type_name = TYPE_SAFE_NAME (type);
 			      int type_name_len = strlen (type_name);
-			      char *name;
-
-			      name = xstrprintf ("%.*s.%.*s",
+			      std::string name
+				= string_printf ("%.*s.%.*s",
 						 type_name_len, type_name,
 						 (yyvsp[(3) - (3)].sval).length, (yyvsp[(3) - (3)].sval).ptr);
-			      make_cleanup (xfree, name);
 
 			      sym =
-				lookup_symbol (name, (const struct block *) NULL,
+				lookup_symbol (name.c_str (),
+					       (const struct block *) NULL,
 					       VAR_DOMAIN, NULL);
 			      if (sym.symbol)
 				{
@@ -2131,13 +2130,14 @@ yyreduce:
 				  break;
 				}
 
-			      msymbol = lookup_bound_minimal_symbol (name);
+			      msymbol = lookup_bound_minimal_symbol (name.c_str ());
 			      if (msymbol.minsym != NULL)
 				write_exp_msymbol (pstate, msymbol);
 			      else if (!have_full_symbols () && !have_partial_symbols ())
 				error (_("No symbol table is loaded.  Use the \"file\" command."));
 			      else
-				error (_("No symbol \"%s\" in current context."), name);
+				error (_("No symbol \"%s\" in current context."),
+				       name.c_str ());
 			    }
 
 			  /* Check if the qualified name resolves as a member
@@ -2217,10 +2217,10 @@ yyreduce:
 
 /* Line 1455 of yacc.c  */
 #line 543 "d-exp.y"
-    { write_exp_elt_opcode (pstate, OP_DOUBLE);
+    { write_exp_elt_opcode (pstate, OP_FLOAT);
 		  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].typed_val_float).type);
-		  write_exp_elt_dblcst (pstate, (yyvsp[(1) - (1)].typed_val_float).dval);
-		  write_exp_elt_opcode (pstate, OP_DOUBLE); }
+		  write_exp_elt_floatcst (pstate, (yyvsp[(1) - (1)].typed_val_float).val);
+		  write_exp_elt_opcode (pstate, OP_FLOAT); }
     break;
 
   case 89:
@@ -2631,8 +2631,6 @@ parse_number (struct parser_state *ps, c
 
   if (parsed_float)
     {
-      const char *suffix;
-      int suffix_len;
       char *s, *sp;
 
       /* Strip out all embedded '_' before passing to parse_float.  */
@@ -2647,54 +2645,51 @@ parse_number (struct parser_state *ps, c
       *sp = '\0';
       len = strlen (s);
 
-      if (! parse_float (s, len, &putithere->typed_val_float.dval, &suffix))
-	return ERROR;
-
-      suffix_len = s + len - suffix;
-
-      if (suffix_len == 0)
+      /* Check suffix for `i' , `fi' or `li' (idouble, ifloat or ireal).  */
+      if (len >= 1 && tolower (s[len - 1]) == 'i')
 	{
-	  putithere->typed_val_float.type
-	    = parse_d_type (ps)->builtin_double;
-	}
-      else if (suffix_len == 1)
-	{
-	  /* Check suffix for `f', `l', or `i' (float, real, or idouble).  */
-	  if (tolower (*suffix) == 'f')
+	  if (len >= 2 && tolower (s[len - 2]) == 'f')
 	    {
 	      putithere->typed_val_float.type
-		= parse_d_type (ps)->builtin_float;
+		= parse_d_type (ps)->builtin_ifloat;
+	      len -= 2;
 	    }
-	  else if (tolower (*suffix) == 'l')
+	  else if (len >= 2 && tolower (s[len - 2]) == 'l')
 	    {
 	      putithere->typed_val_float.type
-		= parse_d_type (ps)->builtin_real;
+		= parse_d_type (ps)->builtin_ireal;
+	      len -= 2;
 	    }
-	  else if (tolower (*suffix) == 'i')
+	  else
 	    {
 	      putithere->typed_val_float.type
 		= parse_d_type (ps)->builtin_idouble;
+	      len -= 1;
 	    }
-	  else
-	    return ERROR;
 	}
-      else if (suffix_len == 2)
+      /* Check suffix for `f' or `l'' (float or real).  */
+      else if (len >= 1 && tolower (s[len - 1]) == 'f')
 	{
-	  /* Check suffix for `fi' or `li' (ifloat or ireal).  */
-	  if (tolower (suffix[0]) == 'f' && tolower (suffix[1] == 'i'))
-	    {
-	      putithere->typed_val_float.type
-		= parse_d_type (ps)->builtin_ifloat;
-	    }
-	  else if (tolower (suffix[0]) == 'l' && tolower (suffix[1] == 'i'))
-	    {
-	      putithere->typed_val_float.type
-		= parse_d_type (ps)->builtin_ireal;
-	    }
-	  else
-	    return ERROR;
+	  putithere->typed_val_float.type
+	    = parse_d_type (ps)->builtin_float;
+	  len -= 1;
 	}
+      else if (len >= 1 && tolower (s[len - 1]) == 'l')
+	{
+	  putithere->typed_val_float.type
+	    = parse_d_type (ps)->builtin_real;
+	  len -= 1;
+	}
+      /* Default type if no suffix.  */
       else
+	{
+	  putithere->typed_val_float.type
+	    = parse_d_type (ps)->builtin_double;
+	}
+
+      if (!parse_float (s, len,
+			putithere->typed_val_float.type,
+			putithere->typed_val_float.val))
 	return ERROR;
 
       return FLOAT_LITERAL;
@@ -3291,7 +3286,7 @@ static int popping;
 
 /* Temporary storage for yylex; this holds symbol names as they are
    built up.  */
-static struct obstack name_obstack;
+static auto_obstack name_obstack;
 
 /* Classify an IDENTIFIER token.  The contents of the token are in `yylval'.
    Updates yylval and returns the new token type.  BLOCK is the block
@@ -3429,7 +3424,7 @@ yylex (void)
      first try building up a name until we find the qualified module.  */
   if (current.token == UNKNOWN_NAME)
     {
-      obstack_free (&name_obstack, obstack_base (&name_obstack));
+      name_obstack.clear ();
       obstack_grow (&name_obstack, current.value.sval.ptr,
 		    current.value.sval.length);
 
@@ -3482,7 +3477,7 @@ yylex (void)
   if (current.token != TYPENAME && current.token != '.')
     goto do_pop;
 
-  obstack_free (&name_obstack, obstack_base (&name_obstack));
+  name_obstack.clear ();
   checkpoint = 0;
   if (current.token == '.')
     search_block = NULL;
@@ -3569,18 +3564,13 @@ yylex (void)
 int
 d_parse (struct parser_state *par_state)
 {
-  int result;
-  struct cleanup *back_to;
-
   /* Setting up the parser state.  */
+  scoped_restore pstate_restore = make_scoped_restore (&pstate);
   gdb_assert (par_state != NULL);
   pstate = par_state;
 
-  back_to = make_cleanup (null_cleanup, NULL);
-
   scoped_restore restore_yydebug = make_scoped_restore (&yydebug,
 							parser_debug);
-  make_cleanup_clear_parser_state (&pstate);
 
   /* Initialize some state used by the lexer.  */
   last_was_structop = 0;
@@ -3588,12 +3578,9 @@ d_parse (struct parser_state *par_state)
 
   VEC_free (token_and_value, token_fifo);
   popping = 0;
-  obstack_init (&name_obstack);
-  make_cleanup_obstack_free (&name_obstack);
+  name_obstack.clear ();
 
-  result = yyparse ();
-  do_cleanups (back_to);
-  return result;
+  return yyparse ();
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/d-exp.y ./gdb/d-exp.y
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/d-exp.y	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/d-exp.y	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* YACC parser for D expressions, for GDB.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -86,7 +86,7 @@ static int type_aggregate_p (struct type
       struct type *type;
     } typed_val_int;
     struct {
-      DOUBLEST dval;
+      gdb_byte val[16];
       struct type *type;
     } typed_val_float;
     struct symbol *sym;
@@ -470,15 +470,14 @@ PrimaryExpression:
 			      struct block_symbol sym;
 			      const char *type_name = TYPE_SAFE_NAME (type);
 			      int type_name_len = strlen (type_name);
-			      char *name;
-
-			      name = xstrprintf ("%.*s.%.*s",
+			      std::string name
+				= string_printf ("%.*s.%.*s",
 						 type_name_len, type_name,
 						 $3.length, $3.ptr);
-			      make_cleanup (xfree, name);
 
 			      sym =
-				lookup_symbol (name, (const struct block *) NULL,
+				lookup_symbol (name.c_str (),
+					       (const struct block *) NULL,
 					       VAR_DOMAIN, NULL);
 			      if (sym.symbol)
 				{
@@ -489,13 +488,14 @@ PrimaryExpression:
 				  break;
 				}
 
-			      msymbol = lookup_bound_minimal_symbol (name);
+			      msymbol = lookup_bound_minimal_symbol (name.c_str ());
 			      if (msymbol.minsym != NULL)
 				write_exp_msymbol (pstate, msymbol);
 			      else if (!have_full_symbols () && !have_partial_symbols ())
 				error (_("No symbol table is loaded.  Use the \"file\" command."));
 			      else
-				error (_("No symbol \"%s\" in current context."), name);
+				error (_("No symbol \"%s\" in current context."),
+				       name.c_str ());
 			    }
 
 			  /* Check if the qualified name resolves as a member
@@ -540,10 +540,10 @@ PrimaryExpression:
 		  write_exp_elt_longcst (pstate, (LONGEST)($1.val));
 		  write_exp_elt_opcode (pstate, OP_LONG); }
 |	FLOAT_LITERAL
-		{ write_exp_elt_opcode (pstate, OP_DOUBLE);
+		{ write_exp_elt_opcode (pstate, OP_FLOAT);
 		  write_exp_elt_type (pstate, $1.type);
-		  write_exp_elt_dblcst (pstate, $1.dval);
-		  write_exp_elt_opcode (pstate, OP_DOUBLE); }
+		  write_exp_elt_floatcst (pstate, $1.val);
+		  write_exp_elt_opcode (pstate, OP_FLOAT); }
 |	CHARACTER_LITERAL
 		{ struct stoken_vector vec;
 		  vec.len = 1;
@@ -682,8 +682,6 @@ parse_number (struct parser_state *ps, c
 
   if (parsed_float)
     {
-      const char *suffix;
-      int suffix_len;
       char *s, *sp;
 
       /* Strip out all embedded '_' before passing to parse_float.  */
@@ -698,54 +696,51 @@ parse_number (struct parser_state *ps, c
       *sp = '\0';
       len = strlen (s);
 
-      if (! parse_float (s, len, &putithere->typed_val_float.dval, &suffix))
-	return ERROR;
-
-      suffix_len = s + len - suffix;
-
-      if (suffix_len == 0)
+      /* Check suffix for `i' , `fi' or `li' (idouble, ifloat or ireal).  */
+      if (len >= 1 && tolower (s[len - 1]) == 'i')
 	{
-	  putithere->typed_val_float.type
-	    = parse_d_type (ps)->builtin_double;
-	}
-      else if (suffix_len == 1)
-	{
-	  /* Check suffix for `f', `l', or `i' (float, real, or idouble).  */
-	  if (tolower (*suffix) == 'f')
+	  if (len >= 2 && tolower (s[len - 2]) == 'f')
 	    {
 	      putithere->typed_val_float.type
-		= parse_d_type (ps)->builtin_float;
+		= parse_d_type (ps)->builtin_ifloat;
+	      len -= 2;
 	    }
-	  else if (tolower (*suffix) == 'l')
+	  else if (len >= 2 && tolower (s[len - 2]) == 'l')
 	    {
 	      putithere->typed_val_float.type
-		= parse_d_type (ps)->builtin_real;
+		= parse_d_type (ps)->builtin_ireal;
+	      len -= 2;
 	    }
-	  else if (tolower (*suffix) == 'i')
+	  else
 	    {
 	      putithere->typed_val_float.type
 		= parse_d_type (ps)->builtin_idouble;
+	      len -= 1;
 	    }
-	  else
-	    return ERROR;
 	}
-      else if (suffix_len == 2)
+      /* Check suffix for `f' or `l'' (float or real).  */
+      else if (len >= 1 && tolower (s[len - 1]) == 'f')
 	{
-	  /* Check suffix for `fi' or `li' (ifloat or ireal).  */
-	  if (tolower (suffix[0]) == 'f' && tolower (suffix[1] == 'i'))
-	    {
-	      putithere->typed_val_float.type
-		= parse_d_type (ps)->builtin_ifloat;
-	    }
-	  else if (tolower (suffix[0]) == 'l' && tolower (suffix[1] == 'i'))
-	    {
-	      putithere->typed_val_float.type
-		= parse_d_type (ps)->builtin_ireal;
-	    }
-	  else
-	    return ERROR;
+	  putithere->typed_val_float.type
+	    = parse_d_type (ps)->builtin_float;
+	  len -= 1;
 	}
+      else if (len >= 1 && tolower (s[len - 1]) == 'l')
+	{
+	  putithere->typed_val_float.type
+	    = parse_d_type (ps)->builtin_real;
+	  len -= 1;
+	}
+      /* Default type if no suffix.  */
       else
+	{
+	  putithere->typed_val_float.type
+	    = parse_d_type (ps)->builtin_double;
+	}
+
+      if (!parse_float (s, len,
+			putithere->typed_val_float.type,
+			putithere->typed_val_float.val))
 	return ERROR;
 
       return FLOAT_LITERAL;
@@ -1342,7 +1337,7 @@ static int popping;
 
 /* Temporary storage for yylex; this holds symbol names as they are
    built up.  */
-static struct obstack name_obstack;
+static auto_obstack name_obstack;
 
 /* Classify an IDENTIFIER token.  The contents of the token are in `yylval'.
    Updates yylval and returns the new token type.  BLOCK is the block
@@ -1480,7 +1475,7 @@ yylex (void)
      first try building up a name until we find the qualified module.  */
   if (current.token == UNKNOWN_NAME)
     {
-      obstack_free (&name_obstack, obstack_base (&name_obstack));
+      name_obstack.clear ();
       obstack_grow (&name_obstack, current.value.sval.ptr,
 		    current.value.sval.length);
 
@@ -1533,7 +1528,7 @@ yylex (void)
   if (current.token != TYPENAME && current.token != '.')
     goto do_pop;
 
-  obstack_free (&name_obstack, obstack_base (&name_obstack));
+  name_obstack.clear ();
   checkpoint = 0;
   if (current.token == '.')
     search_block = NULL;
@@ -1620,18 +1615,13 @@ yylex (void)
 int
 d_parse (struct parser_state *par_state)
 {
-  int result;
-  struct cleanup *back_to;
-
   /* Setting up the parser state.  */
+  scoped_restore pstate_restore = make_scoped_restore (&pstate);
   gdb_assert (par_state != NULL);
   pstate = par_state;
 
-  back_to = make_cleanup (null_cleanup, NULL);
-
   scoped_restore restore_yydebug = make_scoped_restore (&yydebug,
 							parser_debug);
-  make_cleanup_clear_parser_state (&pstate);
 
   /* Initialize some state used by the lexer.  */
   last_was_structop = 0;
@@ -1639,12 +1629,9 @@ d_parse (struct parser_state *par_state)
 
   VEC_free (token_and_value, token_fifo);
   popping = 0;
-  obstack_init (&name_obstack);
-  make_cleanup_obstack_free (&name_obstack);
+  name_obstack.clear ();
 
-  result = yyparse ();
-  do_cleanups (back_to);
-  return result;
+  return yyparse ();
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dfp.c ./gdb/dfp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dfp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dfp.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,384 +0,0 @@
-/* Decimal floating point support for GDB.
-
-   Copyright (C) 2007-2017 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 "defs.h"
-#include "expression.h"
-#include "gdbtypes.h"
-#include "value.h"
-#include "dfp.h"
-
-/* The order of the following headers is important for making sure
-   decNumber structure is large enough to hold decimal128 digits.  */
-
-#include "dpd/decimal128.h"
-#include "dpd/decimal64.h"
-#include "dpd/decimal32.h"
-
-/* In GDB, we are using an array of gdb_byte to represent decimal values.
-   They are stored in host byte order.  This routine does the conversion if
-   the target byte order is different.  */
-static void
-match_endianness (const gdb_byte *from, int len, enum bfd_endian byte_order,
-		  gdb_byte *to)
-{
-  int i;
-
-#if WORDS_BIGENDIAN
-#define OPPOSITE_BYTE_ORDER BFD_ENDIAN_LITTLE
-#else
-#define OPPOSITE_BYTE_ORDER BFD_ENDIAN_BIG
-#endif
-
-  if (byte_order == OPPOSITE_BYTE_ORDER)
-    for (i = 0; i < len; i++)
-      to[i] = from[len - i - 1];
-  else
-    for (i = 0; i < len; i++)
-      to[i] = from[i];
-
-  return;
-}
-
-/* Helper function to get the appropriate libdecnumber context for each size
-   of decimal float.  */
-static void
-set_decnumber_context (decContext *ctx, int len)
-{
-  switch (len)
-    {
-      case 4:
-	decContextDefault (ctx, DEC_INIT_DECIMAL32);
-	break;
-      case 8:
-	decContextDefault (ctx, DEC_INIT_DECIMAL64);
-	break;
-      case 16:
-	decContextDefault (ctx, DEC_INIT_DECIMAL128);
-	break;
-    }
-
-  ctx->traps = 0;
-}
-
-/* Check for errors signaled in the decimal context structure.  */
-static void
-decimal_check_errors (decContext *ctx)
-{
-  /* An error here could be a division by zero, an overflow, an underflow or
-     an invalid operation (from the DEC_Errors constant in decContext.h).
-     Since GDB doesn't complain about division by zero, overflow or underflow
-     errors for binary floating, we won't complain about them for decimal
-     floating either.  */
-  if (ctx->status & DEC_IEEE_854_Invalid_operation)
-    {
-      /* Leave only the error bits in the status flags.  */
-      ctx->status &= DEC_IEEE_854_Invalid_operation;
-      error (_("Cannot perform operation: %s"),
-	     decContextStatusToString (ctx));
-    }
-}
-
-/* Helper function to convert from libdecnumber's appropriate representation
-   for computation to each size of decimal float.  */
-static void
-decimal_from_number (const decNumber *from, gdb_byte *to, int len)
-{
-  decContext set;
-
-  set_decnumber_context (&set, len);
-
-  switch (len)
-    {
-      case 4:
-	decimal32FromNumber ((decimal32 *) to, from, &set);
-	break;
-      case 8:
-	decimal64FromNumber ((decimal64 *) to, from, &set);
-	break;
-      case 16:
-	decimal128FromNumber ((decimal128 *) to, from, &set);
-	break;
-    }
-}
-
-/* Helper function to convert each size of decimal float to libdecnumber's
-   appropriate representation for computation.  */
-static void
-decimal_to_number (const gdb_byte *from, int len, decNumber *to)
-{
-  switch (len)
-    {
-      case 4:
-	decimal32ToNumber ((decimal32 *) from, to);
-	break;
-      case 8:
-	decimal64ToNumber ((decimal64 *) from, to);
-	break;
-      case 16:
-	decimal128ToNumber ((decimal128 *) from, to);
-	break;
-      default:
-	error (_("Unknown decimal floating point type."));
-	break;
-    }
-}
-
-/* Convert decimal type to its string representation.  LEN is the length
-   of the decimal type, 4 bytes for decimal32, 8 bytes for decimal64 and
-   16 bytes for decimal128.  */
-void
-decimal_to_string (const gdb_byte *decbytes, int len,
-		   enum bfd_endian byte_order, char *s)
-{
-  gdb_byte dec[16];
-
-  match_endianness (decbytes, len, byte_order, dec);
-
-  switch (len)
-    {
-      case 4:
-	decimal32ToString ((decimal32 *) dec, s);
-	break;
-      case 8:
-	decimal64ToString ((decimal64 *) dec, s);
-	break;
-      case 16:
-	decimal128ToString ((decimal128 *) dec, s);
-	break;
-      default:
-	error (_("Unknown decimal floating point type."));
-	break;
-    }
-}
-
-/* Convert the string form of a decimal value to its decimal representation.
-   LEN is the length of the decimal type, 4 bytes for decimal32, 8 bytes for
-   decimal64 and 16 bytes for decimal128.  */
-int
-decimal_from_string (gdb_byte *decbytes, int len, enum bfd_endian byte_order,
-		     const char *string)
-{
-  decContext set;
-  gdb_byte dec[16];
-
-  set_decnumber_context (&set, len);
-
-  switch (len)
-    {
-      case 4:
-	decimal32FromString ((decimal32 *) dec, string, &set);
-	break;
-      case 8:
-	decimal64FromString ((decimal64 *) dec, string, &set);
-	break;
-      case 16:
-	decimal128FromString ((decimal128 *) dec, string, &set);
-	break;
-      default:
-	error (_("Unknown decimal floating point type."));
-	break;
-    }
-
-  match_endianness (dec, len, byte_order, decbytes);
-
-  /* Check for errors in the DFP operation.  */
-  decimal_check_errors (&set);
-
-  return 1;
-}
-
-/* Converts a value of an integral type to a decimal float of
-   specified LEN bytes.  */
-void
-decimal_from_integral (struct value *from,
-		       gdb_byte *to, int len, enum bfd_endian byte_order)
-{
-  LONGEST l;
-  gdb_byte dec[16];
-  decNumber number;
-  struct type *type;
-
-  type = check_typedef (value_type (from));
-
-  if (TYPE_LENGTH (type) > 4)
-    /* libdecnumber can convert only 32-bit integers.  */
-    error (_("Conversion of large integer to a "
-	     "decimal floating type is not supported."));
-
-  l = value_as_long (from);
-
-  if (TYPE_UNSIGNED (type))
-    decNumberFromUInt32 (&number, (unsigned int) l);
-  else
-    decNumberFromInt32 (&number, (int) l);
-
-  decimal_from_number (&number, dec, len);
-  match_endianness (dec, len, byte_order, to);
-}
-
-/* Converts a value of a float type to a decimal float of
-   specified LEN bytes.
-
-   This is an ugly way to do the conversion, but libdecnumber does
-   not offer a direct way to do it.  */
-void
-decimal_from_floating (struct value *from,
-		       gdb_byte *to, int len, enum bfd_endian byte_order)
-{
-  char *buffer;
-
-  buffer = xstrprintf ("%.30" DOUBLEST_PRINT_FORMAT, value_as_double (from));
-
-  decimal_from_string (to, len, byte_order, buffer);
-
-  xfree (buffer);
-}
-
-/* Converts a decimal float of LEN bytes to a double value.  */
-DOUBLEST
-decimal_to_doublest (const gdb_byte *from, int len, enum bfd_endian byte_order)
-{
-  char buffer[MAX_DECIMAL_STRING];
-
-  /* This is an ugly way to do the conversion, but libdecnumber does
-     not offer a direct way to do it.  */
-  decimal_to_string (from, len, byte_order, buffer);
-  return strtod (buffer, NULL);
-}
-
-/* Perform operation OP with operands X and Y with sizes LEN_X and LEN_Y
-   and byte orders BYTE_ORDER_X and BYTE_ORDER_Y, and store value in
-   RESULT with size LEN_RESULT and byte order BYTE_ORDER_RESULT.  */
-void
-decimal_binop (enum exp_opcode op,
-	       const gdb_byte *x, int len_x, enum bfd_endian byte_order_x,
-	       const gdb_byte *y, int len_y, enum bfd_endian byte_order_y,
-	       gdb_byte *result, int len_result,
-	       enum bfd_endian byte_order_result)
-{
-  decContext set;
-  decNumber number1, number2, number3;
-  gdb_byte dec1[16], dec2[16], dec3[16];
-
-  match_endianness (x, len_x, byte_order_x, dec1);
-  match_endianness (y, len_y, byte_order_y, dec2);
-
-  decimal_to_number (dec1, len_x, &number1);
-  decimal_to_number (dec2, len_y, &number2);
-
-  set_decnumber_context (&set, len_result);
-
-  switch (op)
-    {
-      case BINOP_ADD:
-	decNumberAdd (&number3, &number1, &number2, &set);
-	break;
-      case BINOP_SUB:
-	decNumberSubtract (&number3, &number1, &number2, &set);
-	break;
-      case BINOP_MUL:
-	decNumberMultiply (&number3, &number1, &number2, &set);
-	break;
-      case BINOP_DIV:
-	decNumberDivide (&number3, &number1, &number2, &set);
-	break;
-      case BINOP_EXP:
-	decNumberPower (&number3, &number1, &number2, &set);
-	break;
-      default:
-	internal_error (__FILE__, __LINE__,
-			_("Unknown decimal floating point operation."));
-	break;
-    }
-
-  /* Check for errors in the DFP operation.  */
-  decimal_check_errors (&set);
-
-  decimal_from_number (&number3, dec3, len_result);
-
-  match_endianness (dec3, len_result, byte_order_result, result);
-}
-
-/* Returns true if X (which is LEN bytes wide) is the number zero.  */
-int
-decimal_is_zero (const gdb_byte *x, int len, enum bfd_endian byte_order)
-{
-  decNumber number;
-  gdb_byte dec[16];
-
-  match_endianness (x, len, byte_order, dec);
-  decimal_to_number (dec, len, &number);
-
-  return decNumberIsZero (&number);
-}
-
-/* Compares two numbers numerically.  If X is less than Y then the return value
-   will be -1.  If they are equal, then the return value will be 0.  If X is
-   greater than the Y then the return value will be 1.  */
-int
-decimal_compare (const gdb_byte *x, int len_x, enum bfd_endian byte_order_x,
-		 const gdb_byte *y, int len_y, enum bfd_endian byte_order_y)
-{
-  decNumber number1, number2, result;
-  decContext set;
-  gdb_byte dec1[16], dec2[16];
-  int len_result;
-
-  match_endianness (x, len_x, byte_order_x, dec1);
-  match_endianness (y, len_y, byte_order_y, dec2);
-
-  decimal_to_number (dec1, len_x, &number1);
-  decimal_to_number (dec2, len_y, &number2);
-
-  /* Perform the comparison in the larger of the two sizes.  */
-  len_result = len_x > len_y ? len_x : len_y;
-  set_decnumber_context (&set, len_result);
-
-  decNumberCompare (&result, &number1, &number2, &set);
-
-  /* Check for errors in the DFP operation.  */
-  decimal_check_errors (&set);
-
-  if (decNumberIsNaN (&result))
-    error (_("Comparison with an invalid number (NaN)."));
-  else if (decNumberIsZero (&result))
-    return 0;
-  else if (decNumberIsNegative (&result))
-    return -1;
-  else
-    return 1;
-}
-
-/* Convert a decimal value from a decimal type with LEN_FROM bytes to a
-   decimal type with LEN_TO bytes.  */
-void
-decimal_convert (const gdb_byte *from, int len_from,
-		 enum bfd_endian byte_order_from, gdb_byte *to, int len_to,
-		 enum bfd_endian byte_order_to)
-{
-  decNumber number;
-  gdb_byte dec[16];
-
-  match_endianness (from, len_from, byte_order_from, dec);
-
-  decimal_to_number (dec, len_from, &number);
-  decimal_from_number (&number, dec, len_to);
-
-  match_endianness (dec, len_to, byte_order_to, to);
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dfp.h ./gdb/dfp.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dfp.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dfp.h	1970-01-01 00:00:00.000000000 +0000
@@ -1,54 +0,0 @@
-/* Decimal floating point support for GDB.
-
-   Copyright (C) 2007-2017 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/>.  */
-
-/* Decimal floating point is one of the extension to IEEE 754, which is
-   described in http://grouper.ieee.org/groups/754/revision.html and
-   http://www2.hursley.ibm.com/decimal/.  It completes binary floating
-   point by representing floating point more exactly.  */
-
-#ifndef DFP_H
-#define DFP_H
-
-#include "doublest.h"    /* For DOUBLEST.  */
-#include "expression.h"  /* For enum exp_opcode.  */
-
-/* When using decimal128, this is the maximum string length + 1
- * (value comes from libdecnumber's DECIMAL128_String constant).  */
-#define MAX_DECIMAL_STRING  43
-
-extern void decimal_to_string (const gdb_byte *, int, enum bfd_endian, char *);
-extern int decimal_from_string (gdb_byte *, int, enum bfd_endian,
-				const char *);
-extern void decimal_from_integral (struct value *from, gdb_byte *to,
-				   int len, enum bfd_endian byte_order);
-extern void decimal_from_floating (struct value *from, gdb_byte *to,
-				   int len, enum bfd_endian byte_order);
-extern DOUBLEST decimal_to_doublest (const gdb_byte *from, int len,
-				     enum bfd_endian byte_order);
-extern void decimal_binop (enum exp_opcode,
-			   const gdb_byte *, int, enum bfd_endian,
-			   const gdb_byte *, int, enum bfd_endian,
-			   gdb_byte *, int, enum bfd_endian);
-extern int decimal_is_zero (const gdb_byte *, int, enum bfd_endian);
-extern int decimal_compare (const gdb_byte *, int, enum bfd_endian,
-			    const gdb_byte *, int, enum bfd_endian);
-extern void decimal_convert (const gdb_byte *, int, enum bfd_endian,
-			     gdb_byte *, int, enum bfd_endian);
-
-#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dicos-tdep.c ./gdb/dicos-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dicos-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dicos-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent, architecture-independent code for DICOS, for GDB.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dicos-tdep.h ./gdb/dicos-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dicos-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dicos-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent, architecture-independent code for DICOS, for GDB.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dictionary.c ./gdb/dictionary.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dictionary.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dictionary.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Routines for name->symbol lookups in GDB.
    
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
    Inc.
@@ -26,6 +26,7 @@
 #include "symtab.h"
 #include "buildsym.h"
 #include "dictionary.h"
+#include "safe-ctype.h"
 
 /* This file implements dictionaries, which are tables that associate
    symbols to names.  They are represented by an opaque type 'struct
@@ -115,11 +116,9 @@ struct dict_vector
   struct symbol *(*iterator_next) (struct dict_iterator *iterator);
   /* Functions to iterate over symbols with a given name.  */
   struct symbol *(*iter_match_first) (const struct dictionary *dict,
-				      const char *name,
-				      symbol_compare_ftype *equiv,
+				      const lookup_name_info &name,
 				      struct dict_iterator *iterator);
-  struct symbol *(*iter_match_next) (const char *name,
-				     symbol_compare_ftype *equiv,
+  struct symbol *(*iter_match_next) (const lookup_name_info &name,
 				     struct dict_iterator *iterator);
   /* A size function, for maint print symtabs.  */
   int (*size) (const struct dictionary *dict);
@@ -165,6 +164,7 @@ struct dictionary_linear_expandable
 
 struct dictionary
 {
+  const struct language_defn *language;
   const struct dict_vector *vector;
   union
   {
@@ -179,6 +179,7 @@ struct dictionary
 /* Accessor macros.  */
 
 #define DICT_VECTOR(d)			(d)->vector
+#define DICT_LANGUAGE(d)                (d)->language
 
 /* These can be used for DICT_HASHED_EXPANDABLE, too.  */
 
@@ -237,16 +238,12 @@ static struct symbol *iterator_first_has
 static struct symbol *iterator_next_hashed (struct dict_iterator *iterator);
 
 static struct symbol *iter_match_first_hashed (const struct dictionary *dict,
-					       const char *name,
-					       symbol_compare_ftype *compare,
+					       const lookup_name_info &name,
 					      struct dict_iterator *iterator);
 
-static struct symbol *iter_match_next_hashed (const char *name,
-					      symbol_compare_ftype *compare,
+static struct symbol *iter_match_next_hashed (const lookup_name_info &name,
 					      struct dict_iterator *iterator);
 
-static unsigned int dict_hash (const char *string);
-
 /* Functions only for DICT_HASHED.  */
 
 static int size_hashed (const struct dictionary *dict);
@@ -269,12 +266,10 @@ static struct symbol *iterator_first_lin
 static struct symbol *iterator_next_linear (struct dict_iterator *iterator);
 
 static struct symbol *iter_match_first_linear (const struct dictionary *dict,
-					       const char *name,
-					       symbol_compare_ftype *compare,
+					       const lookup_name_info &name,
 					       struct dict_iterator *iterator);
 
-static struct symbol *iter_match_next_linear (const char *name,
-					      symbol_compare_ftype *compare,
+static struct symbol *iter_match_next_linear (const lookup_name_info &name,
 					      struct dict_iterator *iterator);
 
 static int size_linear (const struct dictionary *dict);
@@ -348,12 +343,11 @@ static void expand_hashtable (struct dic
 
 /* The creation functions.  */
 
-/* Create a dictionary implemented via a fixed-size hashtable.  All
-   memory it uses is allocated on OBSTACK; the environment is
-   initialized from SYMBOL_LIST.  */
+/* See dictionary.h.  */
 
 struct dictionary *
 dict_create_hashed (struct obstack *obstack,
+		    enum language language,
 		    const struct pending *symbol_list)
 {
   struct dictionary *retval;
@@ -363,6 +357,7 @@ dict_create_hashed (struct obstack *obst
 
   retval = XOBNEW (obstack, struct dictionary);
   DICT_VECTOR (retval) = &dict_hashed_vector;
+  DICT_LANGUAGE (retval) = language_def (language);
 
   /* Calculate the number of symbols, and allocate space for them.  */
   for (list_counter = symbol_list;
@@ -391,17 +386,15 @@ dict_create_hashed (struct obstack *obst
   return retval;
 }
 
-/* Create a dictionary implemented via a hashtable that grows as
-   necessary.  The dictionary is initially empty; to add symbols to
-   it, call dict_add_symbol().  Call dict_free() when you're done with
-   it.  */
+/* See dictionary.h.  */
 
 extern struct dictionary *
-dict_create_hashed_expandable (void)
+dict_create_hashed_expandable (enum language language)
 {
   struct dictionary *retval = XNEW (struct dictionary);
 
   DICT_VECTOR (retval) = &dict_hashed_expandable_vector;
+  DICT_LANGUAGE (retval) = language_def (language);
   DICT_HASHED_NBUCKETS (retval) = DICT_EXPANDABLE_INITIAL_CAPACITY;
   DICT_HASHED_BUCKETS (retval) = XCNEWVEC (struct symbol *,
 					   DICT_EXPANDABLE_INITIAL_CAPACITY);
@@ -410,13 +403,11 @@ dict_create_hashed_expandable (void)
   return retval;
 }
 
-/* Create a dictionary implemented via a fixed-size array.  All memory
-   it uses is allocated on OBSTACK; the environment is initialized
-   from the SYMBOL_LIST.  The symbols are ordered in the same order
-   that they're found in SYMBOL_LIST.  */
+/* See dictionary.h.  */
 
 struct dictionary *
 dict_create_linear (struct obstack *obstack,
+		    enum language language,
 		    const struct pending *symbol_list)
 {
   struct dictionary *retval;
@@ -426,6 +417,7 @@ dict_create_linear (struct obstack *obst
 
   retval = XOBNEW (obstack, struct dictionary);
   DICT_VECTOR (retval) = &dict_linear_vector;
+  DICT_LANGUAGE (retval) = language_def (language);
 
   /* Calculate the number of symbols, and allocate space for them.  */
   for (list_counter = symbol_list;
@@ -455,17 +447,15 @@ dict_create_linear (struct obstack *obst
   return retval;
 }
 
-/* Create a dictionary implemented via an array that grows as
-   necessary.  The dictionary is initially empty; to add symbols to
-   it, call dict_add_symbol().  Call dict_free() when you're done with
-   it.  */
+/* See dictionary.h.  */
 
 struct dictionary *
-dict_create_linear_expandable (void)
+dict_create_linear_expandable (enum language language)
 {
   struct dictionary *retval = XNEW (struct dictionary);
 
   DICT_VECTOR (retval) = &dict_linear_expandable_vector;
+  DICT_LANGUAGE (retval) = language_def (language);
   DICT_LINEAR_NSYMS (retval) = 0;
   DICT_LINEAR_EXPANDABLE_CAPACITY (retval) = DICT_EXPANDABLE_INITIAL_CAPACITY;
   DICT_LINEAR_SYMS (retval)
@@ -530,34 +520,19 @@ dict_iterator_next (struct dict_iterator
 }
 
 struct symbol *
-dict_iter_name_first (const struct dictionary *dict,
-		      const char *name,
-		      struct dict_iterator *iterator)
-{
-  return dict_iter_match_first (dict, name, strcmp_iw, iterator);
-}
-
-struct symbol *
-dict_iter_name_next (const char *name, struct dict_iterator *iterator)
-{
-  return dict_iter_match_next (name, strcmp_iw, iterator);
-}
-
-struct symbol *
 dict_iter_match_first (const struct dictionary *dict,
-		       const char *name, symbol_compare_ftype *compare,
+		       const lookup_name_info &name,
 		       struct dict_iterator *iterator)
 {
-  return (DICT_VECTOR (dict))->iter_match_first (dict, name,
-						 compare, iterator);
+  return (DICT_VECTOR (dict))->iter_match_first (dict, name, iterator);
 }
 
 struct symbol *
-dict_iter_match_next (const char *name, symbol_compare_ftype *compare,
+dict_iter_match_next (const lookup_name_info &name,
 		      struct dict_iterator *iterator)
 {
   return (DICT_VECTOR (DICT_ITERATOR_DICT (iterator)))
-    ->iter_match_next (name, compare, iterator);
+    ->iter_match_next (name, iterator);
 }
 
 int
@@ -648,11 +623,15 @@ iterator_hashed_advance (struct dict_ite
 }
 
 static struct symbol *
-iter_match_first_hashed (const struct dictionary *dict, const char *name,
-			 symbol_compare_ftype *compare,
+iter_match_first_hashed (const struct dictionary *dict,
+			 const lookup_name_info &name,
 			 struct dict_iterator *iterator)
 {
-  unsigned int hash_index = dict_hash (name) % DICT_HASHED_NBUCKETS (dict);
+  const language_defn *lang = DICT_LANGUAGE (dict);
+  unsigned int hash_index = (name.search_name_hash (lang->la_language)
+			     % DICT_HASHED_NBUCKETS (dict));
+  symbol_name_matcher_ftype *matches_name
+    = language_get_symbol_name_matcher (lang, name);
   struct symbol *sym;
 
   DICT_ITERATOR_DICT (iterator) = dict;
@@ -666,11 +645,8 @@ iter_match_first_hashed (const struct di
        sym = sym->hash_next)
     {
       /* Warning: the order of arguments to compare matters!  */
-      if (compare (SYMBOL_SEARCH_NAME (sym), name) == 0)
-	{
-	  break;
-	}
-	
+      if (matches_name (SYMBOL_SEARCH_NAME (sym), name, NULL))
+	break;
     }
 
   DICT_ITERATOR_CURRENT (iterator) = sym;
@@ -678,16 +654,19 @@ iter_match_first_hashed (const struct di
 }
 
 static struct symbol *
-iter_match_next_hashed (const char *name, symbol_compare_ftype *compare,
+iter_match_next_hashed (const lookup_name_info &name,
 			struct dict_iterator *iterator)
 {
+  const language_defn *lang = DICT_LANGUAGE (DICT_ITERATOR_DICT (iterator));
+  symbol_name_matcher_ftype *matches_name
+    = language_get_symbol_name_matcher (lang, name);
   struct symbol *next;
 
   for (next = DICT_ITERATOR_CURRENT (iterator)->hash_next;
        next != NULL;
        next = next->hash_next)
     {
-      if (compare (SYMBOL_SEARCH_NAME (next), name) == 0)
+      if (matches_name (SYMBOL_SEARCH_NAME (next), name, NULL))
 	break;
     }
 
@@ -703,10 +682,15 @@ insert_symbol_hashed (struct dictionary 
 		      struct symbol *sym)
 {
   unsigned int hash_index;
+  unsigned int hash;
   struct symbol **buckets = DICT_HASHED_BUCKETS (dict);
 
-  hash_index = 
-    dict_hash (SYMBOL_SEARCH_NAME (sym)) % DICT_HASHED_NBUCKETS (dict);
+  /* We don't want to insert a symbol into a dictionary of a different
+     language.  The two may not use the same hashing algorithm.  */
+  gdb_assert (SYMBOL_LANGUAGE (sym) == DICT_LANGUAGE (dict)->la_language);
+
+  hash = search_name_hash (SYMBOL_LANGUAGE (sym), SYMBOL_SEARCH_NAME (sym));
+  hash_index = hash % DICT_HASHED_NBUCKETS (dict);
   sym->hash_next = buckets[hash_index];
   buckets[hash_index] = sym;
 }
@@ -779,13 +763,10 @@ expand_hashtable (struct dictionary *dic
   xfree (old_buckets);
 }
 
-/* Produce an unsigned hash value from STRING0 that is consistent
-   with strcmp_iw, strcmp, and, at least on Ada symbols, wild_match.
-   That is, two identifiers equivalent according to any of those three
-   comparison operators hash to the same value.  */
+/* See dictionary.h.  */
 
-static unsigned int
-dict_hash (const char *string0)
+unsigned int
+default_search_name_hash (const char *string0)
 {
   /* The Ada-encoded version of a name P1.P2...Pn has either the form
      P1__P2__...Pn<suffix> or _ada_P1__P2__...Pn<suffix> (where the Pi
@@ -810,17 +791,6 @@ dict_hash (const char *string0)
   hash = 0;
   while (*string)
     {
-      /* Ignore "TKB" suffixes.
-
-	 These are used by Ada for subprograms implementing a task body.
-	 For instance for a task T inside package Pck, the name of the
-	 subprogram implementing T's body is `pck__tTKB'.  We need to
-	 ignore the "TKB" suffix because searches for this task body
-	 subprogram are going to be performed using `pck__t' (the encoded
-	 version of the natural name `pck.t').  */
-      if (strcmp (string, "TKB") == 0)
-	return hash;
-
       switch (*string)
 	{
 	case '$':
@@ -842,14 +812,25 @@ dict_hash (const char *string0)
 		return hash;
 	      hash = 0;
 	      string += 2;
-	      break;
+	      continue;
 	    }
-	  /* FALL THROUGH */
-	default:
-	  hash = SYMBOL_HASH_NEXT (hash, *string);
-	  string += 1;
+	  break;
+	case 'T':
+	  /* Ignore "TKB" suffixes.
+
+	     These are used by Ada for subprograms implementing a task body.
+	     For instance for a task T inside package Pck, the name of the
+	     subprogram implementing T's body is `pck__tTKB'.  We need to
+	     ignore the "TKB" suffix because searches for this task body
+	     subprogram are going to be performed using `pck__t' (the encoded
+	     version of the natural name `pck.t').  */
+	  if (strcmp (string, "TKB") == 0)
+	    return hash;
 	  break;
 	}
+
+      hash = SYMBOL_HASH_NEXT (hash, *string);
+      string += 1;
     }
   return hash;
 }
@@ -878,27 +859,32 @@ iterator_next_linear (struct dict_iterat
 
 static struct symbol *
 iter_match_first_linear (const struct dictionary *dict,
-			 const char *name, symbol_compare_ftype *compare,
+			 const lookup_name_info &name,
 			 struct dict_iterator *iterator)
 {
   DICT_ITERATOR_DICT (iterator) = dict;
   DICT_ITERATOR_INDEX (iterator) = -1;
 
-  return iter_match_next_linear (name, compare, iterator);
+  return iter_match_next_linear (name, iterator);
 }
 
 static struct symbol *
-iter_match_next_linear (const char *name, symbol_compare_ftype *compare,
+iter_match_next_linear (const lookup_name_info &name,
 			struct dict_iterator *iterator)
 {
   const struct dictionary *dict = DICT_ITERATOR_DICT (iterator);
+  const language_defn *lang = DICT_LANGUAGE (dict);
+  symbol_name_matcher_ftype *matches_name
+    = language_get_symbol_name_matcher (lang, name);
+
   int i, nsyms = DICT_LINEAR_NSYMS (dict);
   struct symbol *sym, *retval = NULL;
 
   for (i = DICT_ITERATOR_INDEX (iterator) + 1; i < nsyms; ++i)
     {
       sym = DICT_LINEAR_SYM (dict, i);
-      if (compare (SYMBOL_SEARCH_NAME (sym), name) == 0)
+
+      if (matches_name (SYMBOL_SEARCH_NAME (sym), name, NULL))
 	{
 	  retval = sym;
 	  break;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dictionary.h ./gdb/dictionary.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dictionary.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dictionary.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Routines for name->symbol lookups in GDB.
    
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
    Inc.
@@ -35,42 +35,46 @@ struct dictionary;
 struct symbol;
 struct obstack;
 struct pending;
-
+struct language_defn;
 
 /* The creation functions for various implementations of
    dictionaries.  */
 
-/* Create a dictionary implemented via a fixed-size hashtable.  All
-   memory it uses is allocated on OBSTACK; the environment is
-   initialized from SYMBOL_LIST.  */
+/* Create a dictionary of symbols of language LANGUAGE implemented via
+   a fixed-size hashtable.  All memory it uses is allocated on
+   OBSTACK; the environment is initialized from SYMBOL_LIST.  */
 
 extern struct dictionary *dict_create_hashed (struct obstack *obstack,
+					      enum language language,
 					      const struct pending
 					      *symbol_list);
 
-/* Create a dictionary implemented via a hashtable that grows as
-   necessary.  The dictionary is initially empty; to add symbols to
-   it, call dict_add_symbol().  Call dict_free() when you're done with
-   it.  */
-
-extern struct dictionary *dict_create_hashed_expandable (void);
-
-/* Create a dictionary implemented via a fixed-size array.  All memory
-   it uses is allocated on OBSTACK; the environment is initialized
-   from the SYMBOL_LIST.  The symbols are ordered in the same order
-   that they're found in SYMBOL_LIST.  */
+/* Create a dictionary of symbols of language LANGUAGE, implemented
+   via a hashtable that grows as necessary.  The dictionary is
+   initially empty; to add symbols to it, call dict_add_symbol().
+   Call dict_free() when you're done with it.  */
+
+extern struct dictionary *
+  dict_create_hashed_expandable (enum language language);
+
+/* Create a dictionary of symbols of language LANGUAGE, implemented
+   via a fixed-size array.  All memory it uses is allocated on
+   OBSTACK; the environment is initialized from the SYMBOL_LIST.  The
+   symbols are ordered in the same order that they're found in
+   SYMBOL_LIST.  */
 
 extern struct dictionary *dict_create_linear (struct obstack *obstack,
+					      enum language language,
 					      const struct pending
 					      *symbol_list);
 
-/* Create a dictionary implemented via an array that grows as
-   necessary.  The dictionary is initially empty; to add symbols to
-   it, call dict_add_symbol().  Call dict_free() when you're done with
-   it.  */
-
-extern struct dictionary *dict_create_linear_expandable (void);
+/* Create a dictionary of symbols of language LANGUAGE, implemented
+   via an array that grows as necessary.  The dictionary is initially
+   empty; to add symbols to it, call dict_add_symbol().  Call
+   dict_free() when you're done with it.  */
 
+extern struct dictionary *
+  dict_create_linear_expandable (enum language language);
 
 /* The functions providing the interface to dictionaries.  Note that
    the most common parts of the interface, namely symbol lookup, are
@@ -123,33 +127,13 @@ extern struct symbol *dict_iterator_firs
 extern struct symbol *dict_iterator_next (struct dict_iterator *iterator);
 
 /* Initialize ITERATOR to point at the first symbol in DICT whose
-   SYMBOL_SEARCH_NAME is NAME (as tested using strcmp_iw), and return
-   that first symbol, or NULL if there are no such symbols.  */
-
-extern struct symbol *dict_iter_name_first (const struct dictionary *dict,
-					    const char *name,
-					    struct dict_iterator *iterator);
-
-/* Advance ITERATOR to point at the next symbol in DICT whose
-   SYMBOL_SEARCH_NAME is NAME (as tested using strcmp_iw), or NULL if
-   there are no more such symbols.  Don't call this if you've
-   previously received NULL from dict_iterator_first or
-   dict_iterator_next on this iteration.  And don't call it unless
-   ITERATOR was created by a previous call to dict_iter_name_first
-   with the same NAME.  */
-
-extern struct symbol *dict_iter_name_next (const char *name,
-					   struct dict_iterator *iterator);
-
-/* Initialize ITERATOR to point at the first symbol in DICT whose
    SYMBOL_SEARCH_NAME is NAME, as tested using COMPARE (which must use
    the same conventions as strcmp_iw and be compatible with any
    dictionary hashing function), and return that first symbol, or NULL
    if there are no such symbols.  */
 
 extern struct symbol *dict_iter_match_first (const struct dictionary *dict,
-					     const char *name,
-					     symbol_compare_ftype *compare,
+					     const lookup_name_info &name,
 					     struct dict_iterator *iterator);
 
 /* Advance ITERATOR to point at the next symbol in DICT whose
@@ -160,8 +144,7 @@ extern struct symbol *dict_iter_match_fi
    iteration.  And don't call it unless ITERATOR was created by a
    previous call to dict_iter_match_first with the same NAME and COMPARE.  */
 
-extern struct symbol *dict_iter_match_next (const char *name,
-					    symbol_compare_ftype *compare,
+extern struct symbol *dict_iter_match_next (const lookup_name_info &name,
 					    struct dict_iterator *iterator);
 
 /* Return some notion of the size of the dictionary: the number of
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/.dir-locals.el ./gdb/.dir-locals.el
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/.dir-locals.el	2018-01-02 02:02:58.000000000 +0000
+++ ./gdb/.dir-locals.el	2018-01-09 02:04:56.000000000 +0000
@@ -1,5 +1,5 @@
 ;; Emacs settings.
-;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2018 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
@@ -26,4 +26,6 @@
 	    (c-basic-offset . 2)
 	    (eval . (c-set-offset 'innamespace 0))
 	    ))
+ (c++-mode . ((eval . (when (fboundp 'c-toggle-comment-style)
+			(c-toggle-comment-style 1)))))
 )
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/disable-implicit-rules.mk ./gdb/disable-implicit-rules.mk
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/disable-implicit-rules.mk	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/disable-implicit-rules.mk	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/disasm.c ./gdb/disasm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/disasm.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/disasm.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Disassemble support for GDB.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -29,6 +29,7 @@
 #include "source.h"
 #include "safe-ctype.h"
 #include <algorithm>
+#include "common/gdb_optional.h"
 
 /* Disassemble functions.
    FIXME: We should get rid of all the duplicate code in gdb that does
@@ -191,102 +192,101 @@ compare_lines (const void *mle1p, const 
 int
 gdb_pretty_print_disassembler::pretty_print_insn (struct ui_out *uiout,
 						  const struct disasm_insn *insn,
-						  int flags)
+						  gdb_disassembly_flags flags)
 {
   /* parts of the symbolic representation of the address */
   int unmapped;
   int offset;
   int line;
   int size;
-  struct cleanup *ui_out_chain;
   char *filename = NULL;
   char *name = NULL;
   CORE_ADDR pc;
   struct gdbarch *gdbarch = arch ();
 
-  ui_out_chain = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
-  pc = insn->addr;
-
-  if (insn->number != 0)
-    {
-      uiout->field_fmt ("insn-number", "%u", insn->number);
-      uiout->text ("\t");
-    }
-
-  if ((flags & DISASSEMBLY_SPECULATIVE) != 0)
-    {
-      if (insn->is_speculative)
-	{
-	  uiout->field_string ("is-speculative", "?");
-
-	  /* The speculative execution indication overwrites the first
-	     character of the PC prefix.
-	     We assume a PC prefix length of 3 characters.  */
-	  if ((flags & DISASSEMBLY_OMIT_PC) == 0)
-	    uiout->text (pc_prefix (pc) + 1);
-	  else
-	    uiout->text ("  ");
-	}
-      else if ((flags & DISASSEMBLY_OMIT_PC) == 0)
-	uiout->text (pc_prefix (pc));
-      else
-	uiout->text ("   ");
-    }
-  else if ((flags & DISASSEMBLY_OMIT_PC) == 0)
-    uiout->text (pc_prefix (pc));
-  uiout->field_core_addr ("address", gdbarch, pc);
-
-  if (!build_address_symbolic (gdbarch, pc, 0, &name, &offset, &filename,
-			       &line, &unmapped))
-    {
-      /* We don't care now about line, filename and unmapped.  But we might in
-	 the future.  */
-      uiout->text (" <");
-      if ((flags & DISASSEMBLY_OMIT_FNAME) == 0)
-	uiout->field_string ("func-name", name);
-      uiout->text ("+");
-      uiout->field_int ("offset", offset);
-      uiout->text (">:\t");
-    }
-  else
-    uiout->text (":\t");
-
-  if (filename != NULL)
-    xfree (filename);
-  if (name != NULL)
-    xfree (name);
-
-  m_insn_stb.clear ();
-
-  if (flags & DISASSEMBLY_RAW_INSN)
-    {
-      CORE_ADDR end_pc;
-      bfd_byte data;
-      int err;
-      const char *spacer = "";
-
-      /* Build the opcodes using a temporary stream so we can
-	 write them out in a single go for the MI.  */
-      m_opcode_stb.clear ();
-
+  {
+    ui_out_emit_tuple tuple_emitter (uiout, NULL);
+    pc = insn->addr;
+
+    if (insn->number != 0)
+      {
+	uiout->field_fmt ("insn-number", "%u", insn->number);
+	uiout->text ("\t");
+      }
+
+    if ((flags & DISASSEMBLY_SPECULATIVE) != 0)
+      {
+	if (insn->is_speculative)
+	  {
+	    uiout->field_string ("is-speculative", "?");
+
+	    /* The speculative execution indication overwrites the first
+	       character of the PC prefix.
+	       We assume a PC prefix length of 3 characters.  */
+	    if ((flags & DISASSEMBLY_OMIT_PC) == 0)
+	      uiout->text (pc_prefix (pc) + 1);
+	    else
+	      uiout->text ("  ");
+	  }
+	else if ((flags & DISASSEMBLY_OMIT_PC) == 0)
+	  uiout->text (pc_prefix (pc));
+	else
+	  uiout->text ("   ");
+      }
+    else if ((flags & DISASSEMBLY_OMIT_PC) == 0)
+      uiout->text (pc_prefix (pc));
+    uiout->field_core_addr ("address", gdbarch, pc);
+
+    if (!build_address_symbolic (gdbarch, pc, 0, &name, &offset, &filename,
+				 &line, &unmapped))
+      {
+	/* We don't care now about line, filename and unmapped.  But we might in
+	   the future.  */
+	uiout->text (" <");
+	if ((flags & DISASSEMBLY_OMIT_FNAME) == 0)
+	  uiout->field_string ("func-name", name);
+	uiout->text ("+");
+	uiout->field_int ("offset", offset);
+	uiout->text (">:\t");
+      }
+    else
+      uiout->text (":\t");
+
+    if (filename != NULL)
+      xfree (filename);
+    if (name != NULL)
+      xfree (name);
+
+    m_insn_stb.clear ();
+
+    if (flags & DISASSEMBLY_RAW_INSN)
+      {
+	CORE_ADDR end_pc;
+	bfd_byte data;
+	const char *spacer = "";
+
+	/* Build the opcodes using a temporary stream so we can
+	   write them out in a single go for the MI.  */
+	m_opcode_stb.clear ();
+
+	size = m_di.print_insn (pc);
+	end_pc = pc + size;
+
+	for (;pc < end_pc; ++pc)
+	  {
+	    read_code (pc, &data, 1);
+	    m_opcode_stb.printf ("%s%02x", spacer, (unsigned) data);
+	    spacer = " ";
+	  }
+
+	uiout->field_stream ("opcodes", m_opcode_stb);
+	uiout->text ("\t");
+      }
+    else
       size = m_di.print_insn (pc);
-      end_pc = pc + size;
-
-      for (;pc < end_pc; ++pc)
-	{
-	  read_code (pc, &data, 1);
-	  m_opcode_stb.printf ("%s%02x", spacer, (unsigned) data);
-	  spacer = " ";
-	}
-
-      uiout->field_stream ("opcodes", m_opcode_stb);
-      uiout->text ("\t");
-    }
-  else
-    size = m_di.print_insn (pc);
 
-  uiout->field_stream ("inst", m_insn_stb);
-  do_cleanups (ui_out_chain);
+    uiout->field_stream ("inst", m_insn_stb);
+  }
   uiout->text ("\n");
 
   return size;
@@ -295,7 +295,7 @@ gdb_pretty_print_disassembler::pretty_pr
 static int
 dump_insns (struct gdbarch *gdbarch,
 	    struct ui_out *uiout, CORE_ADDR low, CORE_ADDR high,
-	    int how_many, int flags, CORE_ADDR *end_pc)
+	    int how_many, gdb_disassembly_flags flags, CORE_ADDR *end_pc)
 {
   struct disasm_insn insn;
   int num_displayed = 0;
@@ -338,7 +338,7 @@ do_mixed_source_and_assembly_deprecated
   (struct gdbarch *gdbarch, struct ui_out *uiout,
    struct symtab *symtab,
    CORE_ADDR low, CORE_ADDR high,
-   int how_many, int flags)
+   int how_many, gdb_disassembly_flags flags)
 {
   int newlines = 0;
   int nlines;
@@ -350,9 +350,6 @@ do_mixed_source_and_assembly_deprecated
   int next_line = 0;
   int num_displayed = 0;
   print_source_lines_flags psl_flags = 0;
-  struct cleanup *ui_out_chain;
-  struct cleanup *ui_out_tuple_chain = make_cleanup (null_cleanup, 0);
-  struct cleanup *ui_out_list_chain = make_cleanup (null_cleanup, 0);
 
   gdb_assert (symtab != NULL && SYMTAB_LINETABLE (symtab) != NULL);
 
@@ -414,7 +411,10 @@ do_mixed_source_and_assembly_deprecated
      they have been emitted before), followed by the assembly code
      for that line.  */
 
-  ui_out_chain = make_cleanup_ui_out_list_begin_end (uiout, "asm_insns");
+  ui_out_emit_list asm_insns_list (uiout, "asm_insns");
+
+  gdb::optional<ui_out_emit_tuple> outer_tuple_emitter;
+  gdb::optional<ui_out_emit_list> inner_list_emitter;
 
   for (i = 0; i < newlines; i++)
     {
@@ -426,9 +426,7 @@ do_mixed_source_and_assembly_deprecated
 	      /* Just one line to print.  */
 	      if (next_line == mle[i].line)
 		{
-		  ui_out_tuple_chain
-		    = make_cleanup_ui_out_tuple_begin_end (uiout,
-							   "src_and_asm_line");
+		  outer_tuple_emitter.emplace (uiout, "src_and_asm_line");
 		  print_source_lines (symtab, next_line, mle[i].line + 1, psl_flags);
 		}
 	      else
@@ -436,39 +434,27 @@ do_mixed_source_and_assembly_deprecated
 		  /* Several source lines w/o asm instructions associated.  */
 		  for (; next_line < mle[i].line; next_line++)
 		    {
-		      struct cleanup *ui_out_list_chain_line;
-		      struct cleanup *ui_out_tuple_chain_line;
-		      
-		      ui_out_tuple_chain_line
-			= make_cleanup_ui_out_tuple_begin_end (uiout,
-							       "src_and_asm_line");
+		      ui_out_emit_tuple tuple_emitter (uiout,
+						       "src_and_asm_line");
 		      print_source_lines (symtab, next_line, next_line + 1,
 					  psl_flags);
-		      ui_out_list_chain_line
-			= make_cleanup_ui_out_list_begin_end (uiout,
-							      "line_asm_insn");
-		      do_cleanups (ui_out_list_chain_line);
-		      do_cleanups (ui_out_tuple_chain_line);
+		      ui_out_emit_list inner_list_emitter (uiout,
+							   "line_asm_insn");
 		    }
 		  /* Print the last line and leave list open for
 		     asm instructions to be added.  */
-		  ui_out_tuple_chain
-		    = make_cleanup_ui_out_tuple_begin_end (uiout,
-							   "src_and_asm_line");
+		  outer_tuple_emitter.emplace (uiout, "src_and_asm_line");
 		  print_source_lines (symtab, next_line, mle[i].line + 1, psl_flags);
 		}
 	    }
 	  else
 	    {
-	      ui_out_tuple_chain
-		= make_cleanup_ui_out_tuple_begin_end (uiout,
-						       "src_and_asm_line");
+	      outer_tuple_emitter.emplace (uiout, "src_and_asm_line");
 	      print_source_lines (symtab, mle[i].line, mle[i].line + 1, psl_flags);
 	    }
 
 	  next_line = mle[i].line + 1;
-	  ui_out_list_chain
-	    = make_cleanup_ui_out_list_begin_end (uiout, "line_asm_insn");
+	  inner_list_emitter.emplace (uiout, "line_asm_insn");
 	}
 
       num_displayed += dump_insns (gdbarch, uiout,
@@ -479,16 +465,13 @@ do_mixed_source_and_assembly_deprecated
          assembly range for this source line, close out the list/tuple.  */
       if (i == (newlines - 1) || mle[i + 1].line > mle[i].line)
 	{
-	  do_cleanups (ui_out_list_chain);
-	  do_cleanups (ui_out_tuple_chain);
-	  ui_out_tuple_chain = make_cleanup (null_cleanup, 0);
-	  ui_out_list_chain = make_cleanup (null_cleanup, 0);
+	  inner_list_emitter.reset ();
+	  outer_tuple_emitter.reset ();
 	  uiout->text ("\n");
 	}
       if (how_many >= 0 && num_displayed >= how_many)
 	break;
     }
-  do_cleanups (ui_out_chain);
 }
 
 /* The idea here is to present a source-O-centric view of a
@@ -501,15 +484,12 @@ do_mixed_source_and_assembly (struct gdb
 			      struct ui_out *uiout,
 			      struct symtab *main_symtab,
 			      CORE_ADDR low, CORE_ADDR high,
-			      int how_many, int flags)
+			      int how_many, gdb_disassembly_flags flags)
 {
   const struct linetable_entry *le, *first_le;
   int i, nlines;
   int num_displayed = 0;
   print_source_lines_flags psl_flags = 0;
-  struct cleanup *ui_out_chain;
-  struct cleanup *ui_out_tuple_chain;
-  struct cleanup *ui_out_list_chain;
   CORE_ADDR pc;
   struct symtab *last_symtab;
   int last_line;
@@ -570,21 +550,21 @@ do_mixed_source_and_assembly (struct gdb
      CLI output works on top of this because MI ignores ui_out_text output,
      which is where we put file name and source line contents output.
 
-     Cleanup usage:
-     ui_out_chain
+     Emitter usage:
+     asm_insns_emitter
        Handles the outer "asm_insns" list.
-     ui_out_tuple_chain
+     tuple_emitter
        The tuples for each group of consecutive disassemblies.
-     ui_out_list_chain
+     list_emitter
        List of consecutive source lines or disassembled insns.  */
 
   if (flags & DISASSEMBLY_FILENAME)
     psl_flags |= PRINT_SOURCE_LINES_FILENAME;
 
-  ui_out_chain = make_cleanup_ui_out_list_begin_end (uiout, "asm_insns");
+  ui_out_emit_list asm_insns_emitter (uiout, "asm_insns");
 
-  ui_out_tuple_chain = NULL;
-  ui_out_list_chain = NULL;
+  gdb::optional<ui_out_emit_tuple> tuple_emitter;
+  gdb::optional<ui_out_emit_list> list_emitter;
 
   last_symtab = NULL;
   last_line = 0;
@@ -653,11 +633,11 @@ do_mixed_source_and_assembly (struct gdb
 	  /* Skip the newline if this is the first instruction.  */
 	  if (pc > low)
 	    uiout->text ("\n");
-	  if (ui_out_tuple_chain != NULL)
+	  if (tuple_emitter.has_value ())
 	    {
-	      gdb_assert (ui_out_list_chain != NULL);
-	      do_cleanups (ui_out_list_chain);
-	      do_cleanups (ui_out_tuple_chain);
+	      gdb_assert (list_emitter.has_value ());
+	      list_emitter.reset ();
+	      tuple_emitter.reset ();
 	    }
 	  if (sal.symtab != last_symtab
 	      && !(flags & DISASSEMBLY_FILENAME))
@@ -679,41 +659,31 @@ do_mixed_source_and_assembly (struct gdb
 		 We need to preserve the structure of the output, so output
 		 a bunch of line tuples with no asm entries.  */
 	      int l;
-	      struct cleanup *ui_out_list_chain_line;
-	      struct cleanup *ui_out_tuple_chain_line;
 
 	      gdb_assert (sal.symtab != NULL);
 	      for (l = start_preceding_line_to_display;
 		   l < end_preceding_line_to_display;
 		   ++l)
 		{
-		  ui_out_tuple_chain_line
-		    = make_cleanup_ui_out_tuple_begin_end (uiout,
-							   "src_and_asm_line");
+		  ui_out_emit_tuple tuple_emitter (uiout, "src_and_asm_line");
 		  print_source_lines (sal.symtab, l, l + 1, psl_flags);
-		  ui_out_list_chain_line
-		    = make_cleanup_ui_out_list_begin_end (uiout,
-							  "line_asm_insn");
-		  do_cleanups (ui_out_list_chain_line);
-		  do_cleanups (ui_out_tuple_chain_line);
+		  ui_out_emit_list chain_line_emitter (uiout, "line_asm_insn");
 		}
 	    }
-	  ui_out_tuple_chain
-	    = make_cleanup_ui_out_tuple_begin_end (uiout, "src_and_asm_line");
+	  tuple_emitter.emplace (uiout, "src_and_asm_line");
 	  if (sal.symtab != NULL)
 	    print_source_lines (sal.symtab, sal.line, sal.line + 1, psl_flags);
 	  else
 	    uiout->text (_("--- no source info for this pc ---\n"));
-	  ui_out_list_chain
-	    = make_cleanup_ui_out_list_begin_end (uiout, "line_asm_insn");
+	  list_emitter.emplace (uiout, "line_asm_insn");
 	}
       else
 	{
 	  /* Here we're appending instructions to an existing line.
 	     By construction the very first insn will have a symtab
 	     and follow the new_source_line path above.  */
-	  gdb_assert (ui_out_tuple_chain != NULL);
-	  gdb_assert (ui_out_list_chain != NULL);
+	  gdb_assert (tuple_emitter.has_value ());
+	  gdb_assert (list_emitter.has_value ());
 	}
 
       if (sal.end != 0)
@@ -730,22 +700,16 @@ do_mixed_source_and_assembly (struct gdb
       last_symtab = sal.symtab;
       last_line = sal.line;
     }
-
-  do_cleanups (ui_out_chain);
 }
 
 static void
 do_assembly_only (struct gdbarch *gdbarch, struct ui_out *uiout,
 		  CORE_ADDR low, CORE_ADDR high,
-		  int how_many, int flags)
+		  int how_many, gdb_disassembly_flags flags)
 {
-  struct cleanup *ui_out_chain;
-
-  ui_out_chain = make_cleanup_ui_out_list_begin_end (uiout, "asm_insns");
+  ui_out_emit_list list_emitter (uiout, "asm_insns");
 
   dump_insns (gdbarch, uiout, low, high, how_many, flags, NULL);
-
-  do_cleanups (ui_out_chain);
 }
 
 /* Initialize the disassemble info struct ready for the specified
@@ -814,7 +778,7 @@ gdb_disassembler::print_insn (CORE_ADDR 
 
 void
 gdb_disassembly (struct gdbarch *gdbarch, struct ui_out *uiout,
-		 int flags, int how_many,
+		 gdb_disassembly_flags flags, int how_many,
 		 CORE_ADDR low, CORE_ADDR high)
 {
   struct symtab *symtab;
@@ -973,7 +937,7 @@ set_disassembler_options (char *prospect
 }
 
 static void
-set_disassembler_options_sfunc (char *args, int from_tty,
+set_disassembler_options_sfunc (const char *args, int from_tty,
 				struct cmd_list_element *c)
 {
   set_disassembler_options (prospective_options);
@@ -1041,8 +1005,9 @@ The following disassembler options are s
 
 /* A completion function for "set disassembler".  */
 
-static VEC (char_ptr) *
+static void
 disassembler_options_completer (struct cmd_list_element *ignore,
+				completion_tracker &tracker,
 				const char *text, const char *word)
 {
   struct gdbarch *gdbarch = get_current_arch ();
@@ -1054,18 +1019,14 @@ disassembler_options_completer (struct c
       const char *separator = strrchr (text, ',');
       if (separator != NULL)
 	text = separator + 1;
-      text = skip_spaces_const (text);
-      return complete_on_enum (opts->name, text, word);
+      text = skip_spaces (text);
+      complete_on_enum (tracker, opts->name, text, word);
     }
-  return NULL;
 }
 
 
 /* Initialization code.  */
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_disasm;
-
 void
 _initialize_disasm (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/disasm.h ./gdb/disasm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/disasm.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/disasm.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Disassemble support for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,14 +20,19 @@
 #define DISASM_H
 
 #include "dis-asm.h"
+#include "common/enum-flags.h"
 
-#define DISASSEMBLY_SOURCE_DEPRECATED (0x1 << 0)
-#define DISASSEMBLY_RAW_INSN	(0x1 << 1)
-#define DISASSEMBLY_OMIT_FNAME	(0x1 << 2)
-#define DISASSEMBLY_FILENAME	(0x1 << 3)
-#define DISASSEMBLY_OMIT_PC	(0x1 << 4)
-#define DISASSEMBLY_SOURCE	(0x1 << 5)
-#define DISASSEMBLY_SPECULATIVE	(0x1 << 6)
+enum gdb_disassembly_flag
+  {
+    DISASSEMBLY_SOURCE_DEPRECATED = (0x1 << 0),
+    DISASSEMBLY_RAW_INSN = (0x1 << 1),
+    DISASSEMBLY_OMIT_FNAME = (0x1 << 2),
+    DISASSEMBLY_FILENAME = (0x1 << 3),
+    DISASSEMBLY_OMIT_PC = (0x1 << 4),
+    DISASSEMBLY_SOURCE = (0x1 << 5),
+    DISASSEMBLY_SPECULATIVE = (0x1 << 6),
+  };
+DEF_ENUM_FLAGS_TYPE (enum gdb_disassembly_flag, gdb_disassembly_flags);
 
 struct gdbarch;
 struct ui_out;
@@ -87,7 +92,7 @@ struct disasm_insn
 };
 
 extern void gdb_disassembly (struct gdbarch *gdbarch, struct ui_out *uiout,
-			     int flags, int how_many,
+			     gdb_disassembly_flags flags, int how_many,
 			     CORE_ADDR low, CORE_ADDR high);
 
 /* Print the instruction at address MEMADDR in debugged memory,
@@ -109,7 +114,7 @@ public:
   /* Prints the instruction INSN into UIOUT and returns the length of
      the printed instruction in bytes.  */
   int pretty_print_insn (struct ui_out *uiout, const struct disasm_insn *insn,
-			 int flags);
+			 gdb_disassembly_flags flags);
 
 private:
   /* Returns the architecture used for disassembling.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/disasm-selftests.c ./gdb/disasm-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/disasm-selftests.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/disasm-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Self tests for disassembler for GDB, the GNU debugger.
 
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -207,14 +207,13 @@ memory_error_test (struct gdbarch *gdbar
 } // namespace selftests
 #endif /* GDB_SELF_TEST */
 
-/* Suppress warning from -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_disasm_selftests;
-
 void
 _initialize_disasm_selftests (void)
 {
 #if GDB_SELF_TEST
-  register_self_test_foreach_arch (selftests::print_one_insn_test);
-  register_self_test_foreach_arch (selftests::memory_error_test);
+  selftests::register_test_foreach_arch ("print_one_insn",
+					 selftests::print_one_insn_test);
+  selftests::register_test_foreach_arch ("memory_error",
+					 selftests::memory_error_test);
 #endif
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/d-lang.c ./gdb/d-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/d-lang.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/d-lang.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* D language support routines for GDB, the GNU debugger.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -204,7 +204,7 @@ static const char *d_extensions[] =
   ".d", NULL
 };
 
-static const struct language_defn d_language_defn =
+extern const struct language_defn d_language_defn =
 {
   "d",
   "D",
@@ -239,13 +239,15 @@ static const struct language_defn d_lang
   1,				/* C-style arrays.  */
   0,				/* String lower bound.  */
   default_word_break_characters,
-  default_make_symbol_completion_list,
+  default_collect_symbol_completion_matches,
   d_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
   c_get_string,
-  NULL,				/* la_get_symbol_name_cmp */
+  c_watch_location_expression,
+  NULL,				/* la_get_symbol_name_matcher */
   iterate_over_symbols,
+  default_search_name_hash,
   &default_varobj_ops,
   NULL,
   NULL,
@@ -262,7 +264,7 @@ build_d_types (struct gdbarch *gdbarch)
 
   /* Basic types.  */
   builtin_d_type->builtin_void
-    = arch_type (gdbarch, TYPE_CODE_VOID, 1, "void");
+    = arch_type (gdbarch, TYPE_CODE_VOID, TARGET_CHAR_BIT, "void");
   builtin_d_type->builtin_bool
     = arch_boolean_type (gdbarch, 8, 1, "bool");
   builtin_d_type->builtin_byte
@@ -341,13 +343,8 @@ builtin_d_type (struct gdbarch *gdbarch)
   return (const struct builtin_d_type *) gdbarch_data (gdbarch, d_type_data);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_d_language;
-
 void
 _initialize_d_language (void)
 {
   d_type_data = gdbarch_data_register_post_init (build_d_types);
-
-  add_language (&d_language_defn);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/d-lang.h ./gdb/d-lang.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/d-lang.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/d-lang.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* D language support definitions for GDB, the GNU debugger.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/d-namespace.c ./gdb/d-namespace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/d-namespace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/d-namespace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Helper routines for D support in GDB.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -108,16 +108,13 @@ d_lookup_symbol (const struct language_d
 
   if (search)
     {
-      char *classname, *nested;
+      std::string classname, nested;
       unsigned int prefix_len;
-      struct cleanup *cleanup;
       struct block_symbol class_sym;
 
       /* A simple lookup failed.  Check if the symbol was defined in
 	 a base class.  */
 
-      cleanup = make_cleanup (null_cleanup, NULL);
-
       /* Find the name of the class and the name of the method,
 	 variable, etc.  */
       prefix_len = d_entire_prefix_len (name);
@@ -130,42 +127,31 @@ d_lookup_symbol (const struct language_d
 
 	  lang_this = lookup_language_this (language_def (language_d), block);
 	  if (lang_this.symbol == NULL)
-	    {
-	      do_cleanups (cleanup);
-	      return null_block_symbol;
-	    }
+	    return null_block_symbol;
 
 	  type = check_typedef (TYPE_TARGET_TYPE (SYMBOL_TYPE (lang_this.symbol)));
-	  classname = xstrdup (TYPE_NAME (type));
-	  nested = xstrdup (name);
+	  classname = TYPE_NAME (type);
+	  nested = name;
 	}
       else
 	{
 	  /* The class name is everything up to and including PREFIX_LEN.  */
-	  classname = savestring (name, prefix_len);
+	  classname = std::string (name, prefix_len);
 
 	  /* The rest of the name is everything else past the initial scope
 	     operator.  */
-	  nested = xstrdup (name + prefix_len + 1);
+	  nested = std::string (name + prefix_len + 1);
 	}
 
-      /* Add cleanups to free memory for these strings.  */
-      make_cleanup (xfree, classname);
-      make_cleanup (xfree, nested);
-
       /* Lookup a class named CLASSNAME.  If none is found, there is nothing
 	 more that can be done.  */
-      class_sym = lookup_global_symbol (classname, block, domain);
+      class_sym = lookup_global_symbol (classname.c_str (), block, domain);
       if (class_sym.symbol == NULL)
-	{
-	  do_cleanups (cleanup);
-	  return null_block_symbol;
-	}
+	return null_block_symbol;
 
       /* Look for a symbol named NESTED in this class.  */
       sym = d_lookup_nested_symbol (SYMBOL_TYPE (class_sym.symbol),
-				    nested, block);
-      do_cleanups (cleanup);
+				    nested.c_str (), block);
     }
 
   return sym;
@@ -260,18 +246,14 @@ static struct block_symbol
 find_symbol_in_baseclass (struct type *parent_type, const char *name,
 			  const struct block *block)
 {
-  char *concatenated_name = NULL;
   struct block_symbol sym;
-  struct cleanup *cleanup;
   int i;
 
   sym.symbol = NULL;
   sym.block = NULL;
-  cleanup = make_cleanup (free_current_contents, &concatenated_name);
 
   for (i = 0; i < TYPE_N_BASECLASSES (parent_type); ++i)
     {
-      size_t len;
       struct type *base_type = TYPE_BASECLASS (parent_type, i);
       const char *base_name = TYPE_BASECLASS_NAME (parent_type, i);
 
@@ -287,10 +269,8 @@ find_symbol_in_baseclass (struct type *p
       /* Now search all static file-level symbols.  We have to do this for
 	 things like typedefs in the class.  First search in this symtab,
 	 what we want is possibly there.  */
-      len = strlen (base_name) + strlen (name) + 2;
-      concatenated_name = (char *) xrealloc (concatenated_name, len);
-      xsnprintf (concatenated_name, len, "%s.%s", base_name, name);
-      sym = lookup_symbol_in_static_block (concatenated_name, block,
+      std::string concatenated_name = std::string (base_name) + "." + name;
+      sym = lookup_symbol_in_static_block (concatenated_name.c_str (), block,
 					   VAR_DOMAIN);
       if (sym.symbol != NULL)
 	break;
@@ -298,7 +278,7 @@ find_symbol_in_baseclass (struct type *p
       /* Nope.  We now have to search all static blocks in all objfiles,
 	 even if block != NULL, because there's no guarantees as to which
 	 symtab the symbol we want is in.  */
-      sym = lookup_static_symbol (concatenated_name, VAR_DOMAIN);
+      sym = lookup_static_symbol (concatenated_name.c_str (), VAR_DOMAIN);
       if (sym.symbol != NULL)
 	break;
 
@@ -312,7 +292,6 @@ find_symbol_in_baseclass (struct type *p
 	}
     }
 
-  do_cleanups (cleanup);
   return sym;
 }
 
@@ -377,16 +356,6 @@ d_lookup_nested_symbol (struct type *par
     }
 }
 
-/* Used for cleanups to reset the "searched" flag incase
-   of an error.  */
-
-static void
-reset_directive_searched (void *data)
-{
-  struct using_direct *direct = (struct using_direct *) data;
-  direct->searched = 0;
-}
-
 /* Search for NAME by applying all import statements belonging to
    BLOCK which are applicable in SCOPE.  */
 
@@ -397,7 +366,6 @@ d_lookup_symbol_imports (const char *sco
 {
   struct using_direct *current;
   struct block_symbol sym;
-  struct cleanup *searched_cleanup;
 
   /* First, try to find the symbol in the given module.  */
   sym = d_lookup_symbol_in_module (scope, name, block, domain, 1);
@@ -420,9 +388,8 @@ d_lookup_symbol_imports (const char *sco
 	{
 	  /* Mark this import as searched so that the recursive call
 	     does not search it again.  */
-	  current->searched = 1;
-	  searched_cleanup = make_cleanup (reset_directive_searched,
-					   current);
+	  scoped_restore restore_searched
+	    = make_scoped_restore (&current->searched, 1);
 
 	  /* If there is an import of a single declaration, compare the
 	     imported declaration (after optional renaming by its alias)
@@ -440,9 +407,6 @@ d_lookup_symbol_imports (const char *sco
 	     declaration, the search of this import is complete.  */
 	  if (sym.symbol != NULL || current->declaration)
 	    {
-	      current->searched = 0;
-	      discard_cleanups (searched_cleanup);
-
 	      if (sym.symbol != NULL)
 		return sym;
 
@@ -454,10 +418,7 @@ d_lookup_symbol_imports (const char *sco
 	    if (strcmp (name, *excludep) == 0)
 	      break;
 	  if (*excludep)
-	    {
-	      discard_cleanups (searched_cleanup);
-	      continue;
-	    }
+	    continue;
 
 	  /* If the import statement is creating an alias.  */
 	  if (current->alias != NULL)
@@ -497,8 +458,6 @@ d_lookup_symbol_imports (const char *sco
 	      sym = d_lookup_symbol_in_module (current->import_src,
 					       name, block, domain, 1);
 	    }
-	  current->searched = 0;
-	  discard_cleanups (searched_cleanup);
 
 	  if (sym.symbol != NULL)
 	    return sym;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/agentexpr.texi ./gdb/doc/agentexpr.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/agentexpr.texi	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/agentexpr.texi	2018-01-09 02:04:57.000000000 +0000
@@ -7,7 +7,7 @@
 
 @c This file is part of the GDB manual.
 @c
-@c Copyright (C) 2003-2017 Free Software Foundation, Inc.
+@c Copyright (C) 2003-2018 Free Software Foundation, Inc.
 @c
 @c See the file gdb.texinfo for copying conditions.
 
@@ -396,8 +396,10 @@ is zero, this is the same as @code{dup};
 the item under the top item, etc.  If @var{n} exceeds the number of
 items on the stack, terminate with an error.
 
-@item @code{rot} (0x33): @var{a} @var{b} @var{c} => @var{c} @var{b} @var{a}
-Rotate the top three items on the stack.
+@item @code{rot} (0x33): @var{a} @var{b} @var{c} => @var{c} @var{a} @var{b}
+Rotate the top three items on the stack.  The top item (c) becomes the third
+item, the next-to-top item (b) becomes the top item and the third item (a) from
+the top becomes the next-to-top item.
 
 @item @code{if_goto} (0x20) @var{offset}: @var{a} @result{}
 Pop an integer off the stack; if it is non-zero, branch to the given
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/all-cfg.texi ./gdb/doc/all-cfg.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/all-cfg.texi	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/all-cfg.texi	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 @c GDB MANUAL configuration file.  
 @c
-@c Copyright (C) 1993-2017 Free Software Foundation, Inc.
+@c Copyright (C) 1993-2018 Free Software Foundation, Inc.
 @c
 @c NOTE: While the GDB manual is configurable (by changing these
 @c switches), its configuration is ***NOT*** automatically tied in to
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/annotate.info ./gdb/doc/annotate.info
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/annotate.info	2018-01-02 02:06:56.000000000 +0000
+++ ./gdb/doc/annotate.info	2018-01-09 02:08:33.000000000 +0000
@@ -1,7 +1,7 @@
 This is annotate.info, produced by makeinfo version 6.3 from
 annotate.texinfo.
 
-Copyright (C) 1994-2017 Free Software Foundation, Inc.
+Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -16,7 +16,7 @@ END-INFO-DIR-ENTRY
 
    This file documents GDB's obsolete annotations.
 
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/annotate.texinfo ./gdb/doc/annotate.texinfo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/annotate.texinfo	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/annotate.texinfo	2018-01-09 02:04:57.000000000 +0000
@@ -27,7 +27,7 @@
 @c cost.  Having a smaller cheaper manual helps the GNU Press with its sales.
 
 @copying
-Copyright @copyright{} 1994-2017 Free Software Foundation, Inc.
+Copyright @copyright{} 1994-2018 Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/ChangeLog ./gdb/doc/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/ChangeLog	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/ChangeLog	2018-01-09 02:04:57.000000000 +0000
@@ -1,29 +1,300 @@
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
+2018-01-03  Xavier Roirand  <roirand@adacore.com>
+
+	* gdb.texinfo (Set Catchpoints): Add documentation for new
+	"catch handlers" action.
+
+2017-12-27  Stafford Horne  <shorne@gmail.com>
+
+	* gdb.texinfo (Target Description Format): Explain that arbitrary
+	strings are now allowed for register groups.
+
+2017-12-27  Stafford Horne  <shorne@gmail.com>
+
+	* gdb.texinfo (Registers): Document info reg $reggroup feature.
+
+2017-12-15  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR cli/16224
+	* gdb.texinfo (ptype): Add documentation for new flag '/o'.
+
+2017-12-13  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* python.texi (Manipulating breakpoints using Python): Document
+	qualified parameter to gdb.Breakpoint.
+
+2017-12-13  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* python.texi (Manipulating breakpoints using Python): Split doc
+	of Breakpoint.__init__ in two, split text in multiple
+	paragraphs, don't nest parameter square brackets.
+
+2017-12-12  Stafford Horne  <shorne@gmail.com>
+	    Stefan Wallentowitz  <stefan@wallentowitz.de>
+	    Franck Jullien  <franck.jullien@gmail.com>
+	    Jeremy Bennett  <jeremy.bennett@embecosm.com>
+
+	* gdb.texinfo: Add OpenRISC documentation.
+
+2017-12-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* gdb.texinfo (Index Files): Document .debug_names and -dwarf-5.
+
+2017-12-07  Keith Seitz  <keiths@redhat.com>
+
+	* gdb.texinfo (Symbols): Document "set print type nested-type-limit"
+	and "show print type nested-type-limit".
+
+2017-12-07  Phil Muldoon  <pmuldoon@redhat.com>
+
+       * python.texi (Breakpoints In Python): Add text relating
+	to allowed explicit locations and keywords in gdb.Breakpoints.
+
+2017-12-04  Tom Tromey  <tom@tromey.com>
+
+	* gdb.texinfo (Rust): Update trait object status
+
+2017-12-01  Andrew Cagney  <cagney@redhat.com>
+	    Joel Brobecker  <brobecker@adacore.com>
+	    Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gdb.texinfo (File Options): Document --readnever.
+	(Commands to Specify Files): Likewise, for 'symbol-file' and
+	'add-symbol-file'.
+
+2017-11-29  Pedro Alves  <palves@redhat.com>
+
+	PR c++/19436
+	* gdb.texinfo (Debugging C Plus Plus): Document setting
+	breakpoints in functions with ABI tags.
+
+2017-11-29  Pedro Alves  <palves@redhat.com>
+
+	* gdb.texinfo (Linespec Locations): Document how "function" is
+	interpreted in C++ and Ada.  Document "-qualified".
+	(Explicit Locations): Document how "-function" is interpreted in
+	C++ and Ada.  Document "-qualified".
+
+2017-11-26  Dominik Czarnota  <dominik.b.czarnota@gmail.com>
+
+	PR gdb/21945
+	* gdb.texinfo (Search Memory): Update description and example
+	about how to search a string without NULL terminator.
+
+2017-11-24  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.texinfo (GDB/MI Ada Exception Information): Document
+	new "exception-message" field.
+
+2017-11-24  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.texinfo (Memory Map Format): Update gdb-memory-map.dtd.
+
+2017-11-24  Pedro Alves  <palves@redhat.com>
+
+	* gdb.texinfo (Completion): Update need-quoting examples.  Remove
+	false claim that GDB inserts quoting automatically.
+	(Symbols): Add anchor.
+
+2017-11-22  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* gdb.texinfo (Requirements): Document use of GNU MPFR.
+
+2017-11-16  Phil Muldoon  <pmuldoon@redhat.com>
+
+	* python.texi (Basic Python): Add rbreak documentation.
+
+2017-11-07  Xavier Roirand  <roirand@adacore.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* gdb.texinfo (Set Breaks): Document support for breakpoint
+	location ranges in the enable/disable commands.
+
+2017-10-04  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gdb.texinfo (Starting your Program) <The working directory.>:
+	Mention remote debugging.
+	(Working Directory) <Your Program's Working Directory>:
+	Likewise.
+	(Connecting) <Remote Packet>: Add "set-working-dir"
+	and "QSetWorkingDir" to the table.
+	(Remote Protocol) <QSetWorkingDir>: New item, explaining the
+	packet.
+
+2017-10-04  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gdb.texinfo (Starting your Program) <The working directory.>:
+	Mention new "set cwd" command.
+	(Working Directory) <Your Program's Working Directory>:
+	Rephrase to explain that "set cwd" exists and is the default
+	way to change the inferior's cwd.
+
+2017-09-25  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* gdb.texinfo (S/390 and System z Features): Document the new
+	features org.gnu.gdb.s390.gs and org.gnu.gdb.s390.gsbc.
+
+2017-09-21  Kevin Buettner  <kevinb@redhat.com>
+
+	* gdb.texinfo (qXfer:threads:read): Add documentation for handle
+	attribute.
+
+2017-09-21  Kevin Buettner  <kevinb@redhat.com>
+
+	* python.texi (Inferiors In Python): Add description for method
+	Inferior.thread_from_thread_handle.
+
+2017-09-19  John Baldwin  <jhb@FreeBSD.org>
+
+	* gdb.texinfo (Starting your Program): Add description of
+	starti command.  Mention starti command as an alternative for
+	debugging the elaboration phase.
+
+2017-09-16  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.texinfo (Maintenance Commands): Document filter parameter
+	of "maint selftest".  Document "maint info selftests" command.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* python.texi (Events In Python): Document new events.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* gdb.texinfo (Variables) <Program Variables>: Document inspecting
+	no-debug-info variables.
+	(Symbols) <Examining the Symbol Table>: Document inspecting
+	no-debug-info types.
+	(Calling) <Calling functions with no debug info>: New subsection,
+	documenting calling no-debug-info functions.
+	(Non-debug DLL Symbols) <Working with Minimal Symbols>: Update.
+
+2017-08-31  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gdb.texinfo (set environment): Add @anchor.  Explain that
+	environment variables set by the user are sent to GDBserver.
+	(unset environment): Likewise, but for unsetting variables.
+	(Connecting) <Remote Packet>: Add "environment-hex-encoded",
+	"QEnvironmentHexEncoded", "environment-unset", "QEnvironmentUnset",
+	"environment-reset" and "QEnvironmentReset" to the table.
+	(Remote Protocol) <QEnvironmentHexEncoded, QEnvironmentUnset,
+	QEnvironmentReset>: New item, explaining the packet.
+
+2017-08-23  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* gdb.texinfo (Compiling and Injecting Code): Add to subsection
+	"Compiler search for the compile command" descriptions of set
+	compile-gcc and show compile-gcc.
+
+2017-08-07  Weimin Pan  <weimin.pan@oracle.com>
+
+	* gdb.texinfo (Architectures): Add new Sparc64 section to document
+	ADI support.
+	* NEWS: Add "adi examine" and "adi assign" commands.
+
+2017-08-18  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.texinfo (Server): Document "--selftest".
+
+2017-08-16  Ruslan Kabatsayev  <b7.10110111@gmail.com>
+
+	* gdb.texinfo (TUI Single Key Mode): Document the new shortcuts in
+	Single-Key mode.
+
+2017-08-12  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR gdb/21925
+	* gdb.texinfo (Starting) <startup-with-shell>: Fix typo ("show
+	set...").
+
+2017-08-09  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.texinfo (Packets): Fix Z0 cmd_list doc referring to
+	conditional expression.
+
+2017-07-31  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* agentexpr.texi (rot): Fix symbolic description, improve
+	textual description.
+
+2017-07-26  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.texinfo (Maintenance Commands): Document command
+	"maint check xml-descriptions".
+
+2017-07-26  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.texinfo (Maintenance Commands): Document optional
+	argument of "maint print c-tdesc".
+
+2017-07-18  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.texinfo (Maintenance Commands): Improve the doc to
+	command "maint print c-tdesc".
+
+2017-06-20  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR gdb/21606
+	* python.texi (Python representation of Symbols.): Replace
+	SYMBOL_FUNCTION_DOMAIN by SYMBOL_FUNCTIONS_DOMAIN, fixing typo.
+	* guile.texi (Guile representation of Symbols.): Likewise.
+
+2017-06-11  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.texinfo (Optional Messages about Internal Happenings):
+	Document {set,show} debug separate-debug-file commands.
+
+2017-06-07  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gdb.texinfo (Starting) <startup-with-shell>: Add @anchor.
+	(Connecting) <Remote Packet>: Add "startup-with-shell"
+	and "QStartupWithShell" to the table.
+	(Remote Protocol) <QStartupWithShell>: New item, explaining the
+	packet.
+
+2017-05-22  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.texinfo (Packets): Document vMustReplyEmpty packet.
+
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
 
 	* python.texi (Recording in Python): Factor out the documentation of
 	gdb.RecordInstruction's super class.
 
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
 
 	* python.texi (Recording in Python): Replace gdb.BtraceFunction with
 	gdb.RecordFunctionSegment.  Rename prev_sibling and next_sibling to
 	prev and next.
 
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
 
 	* python.texi (Recording in Python): Replace gdb.BtraceInstruction with
 	gdb.RecordInstruction
 
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
 
 	* python.texi (Recording in Python): Add documentation for
 	gdb.RecordGap and remove documentation of special cases for
 	gdb.BtraceInstruction.
 
-2017-05-04  Tim Wiederhake <tim.wiederhake@intel.com>
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
 
 	* python.texi (Recording in Python): Remove Record.ptid defvar.
 
+2017-04-21  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.texinfo (GDB/MI Thread Information): Add missing
+	fields, re-word some things.
+	(GDB/MI Thread Commands): Describe fields found in the output of
+	-thread-info, remove description of fields in the
+	thread output tuple, replace with a cross-reference to "GDB/MI
+	Thread Information".
+
+2017-04-21  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.texinfo (GDB/MI Thread Commands): Remove "current" field
+	from -thread-info output.
+
 2017-03-28  Anton Kolesov  <anton.kolesov@synopsys.com>
 
 	* gdb.texinfo (Synopsys ARC): Document "set debug arc 2".
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/Doxyfile-base.in ./gdb/doc/Doxyfile-base.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/Doxyfile-base.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/Doxyfile-base.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # Base doxyfile for GDB.
 # This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/Doxyfile-gdb-api.in ./gdb/doc/Doxyfile-gdb-api.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/Doxyfile-gdb-api.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/Doxyfile-gdb-api.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # Doxygen file for GDB internal API.
 # This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/Doxyfile-gdbserver.in ./gdb/doc/Doxyfile-gdbserver.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/Doxyfile-gdbserver.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/Doxyfile-gdbserver.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # Doxygen file for a GDBserver cross-reference.
 # This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/Doxyfile-gdb-xref.in ./gdb/doc/Doxyfile-gdb-xref.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/Doxyfile-gdb-xref.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/Doxyfile-gdb-xref.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # Doxygen file for a full GDB cross-reference.
 # This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/doxy-index.in ./gdb/doc/doxy-index.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/doxy-index.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/doxy-index.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 Navigation page for Doxygen-generated GDB info.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gcore.1 ./gdb/doc/gcore.1
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gcore.1	2018-01-02 02:06:56.000000000 +0000
+++ ./gdb/doc/gcore.1	2018-01-09 02:08:34.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GCORE 1"
-.TH GCORE 1 "2018-01-02" "gdb-8.0.1.20180102-git" "GNU Development Tools"
+.TH GCORE 1 "2018-01-09" "gdb-8.0.90.20180109-git" "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
@@ -133,7 +133,7 @@
 gcore \- Generate a core file of a running program
 .SH "SYNOPSIS"
 .IX Header "SYNOPSIS"
-gcore [\-o \fIfilename\fR] \fIpid\fR
+gcore [\-a] [\-o \fIfilename\fR] \fIpid\fR
 .SH "DESCRIPTION"
 .IX Header "DESCRIPTION"
 Generate a core dump of a running program with process \s-1ID\s0 \fIpid\fR.
@@ -143,6 +143,12 @@ limit).  Unlike after a crash, after \fB
 running without any change.
 .SH "OPTIONS"
 .IX Header "OPTIONS"
+.IP "\fB\-a\fR" 4
+.IX Item "-a"
+Dump all memory mappings.  The actual effect of this option depends on
+the Operating System.  On GNU/Linux, it will disable
+\&\f(CW\*(C`use\-coredump\-filter\*(C'\fR and
+enable \f(CW\*(C`dump\-excluded\-mappings\*(C'\fR.
 .IP "\fB\-o\fR \fIfilename\fR" 4
 .IX Item "-o filename"
 The optional argument
@@ -165,7 +171,7 @@ should give you access to the complete m
 Richard M. Stallman and Roland H. Pesch, July 1991.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1988\-2017 Free Software Foundation, Inc.
+Copyright (c) 1988\-2018 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 or
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.1 ./gdb/doc/gdb.1
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.1	2018-01-02 02:06:56.000000000 +0000
+++ ./gdb/doc/gdb.1	2018-01-09 02:08:34.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDB 1"
-.TH GDB 1 "2018-01-02" "gdb-8.0.1.20180102-git" "GNU Development Tools"
+.TH GDB 1 "2018-01-09" "gdb-8.0.90.20180109-git" "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
@@ -382,7 +382,7 @@ should give you access to the complete m
 Richard M. Stallman and Roland H. Pesch, July 1991.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1988\-2017 Free Software Foundation, Inc.
+Copyright (c) 1988\-2018 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 or
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info ./gdb/doc/gdb.info
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info	2018-01-02 02:06:53.000000000 +0000
+++ ./gdb/doc/gdb.info	2018-01-09 02:08:31.000000000 +0000
@@ -1,6 +1,6 @@
 This is gdb.info, produced by makeinfo version 6.3 from gdb.texinfo.
 
-Copyright (C) 1988-2017 Free Software Foundation, Inc.
+Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -21,9 +21,9 @@ END-INFO-DIR-ENTRY
    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 8.0.1.20180102-git.
+Source-Level Debugger' for GDB (GDB) Version 8.0.90.20180109-git.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -38,731 +38,747 @@ developing GNU and promoting software fr
 
 
 Indirect:
-gdb.info-1: 1715
-gdb.info-2: 302354
-gdb.info-3: 619454
-gdb.info-4: 908666
-gdb.info-5: 1202807
-gdb.info-6: 1504225
-gdb.info-7: 1801778
+gdb.info-1: 1716
+gdb.info-2: 308243
+gdb.info-3: 601937
+gdb.info-4: 903238
+gdb.info-5: 1210743
+gdb.info-6: 1502206
+gdb.info-7: 1811519
 
 Tag Table:
 (Indirect)
-Node: Top1715
-Node: Summary5186
-Node: Free Software7047
-Node: Free Documentation7787
-Node: Contributors12721
-Node: Sample Session21080
-Node: Invocation27931
-Node: Invoking GDB28474
-Node: File Options30808
-Node: Mode Options33865
-Ref: -nx34092
-Ref: -nh35176
-Node: Startup41493
-Ref: Home Directory Init File42044
-Ref: Option -init-eval-command42154
-Ref: Init File in the Current Directory during Startup42494
-Ref: Startup-Footnote-144690
-Node: Quitting GDB44799
-Node: Shell Commands45696
-Node: Logging Output46623
-Node: Commands47460
-Node: Command Syntax48098
-Node: Completion50264
-Ref: Completion-Footnote-156652
-Node: Help56812
-Node: Running62563
-Node: Compilation63792
-Node: Starting65876
-Ref: set exec-wrapper71144
-Ref: set auto-connect-native-target73298
-Node: Arguments77694
-Node: Environment78963
-Node: Working Directory82697
-Node: Input/Output83849
-Node: Attach85909
-Node: Kill Process88375
-Node: Inferiors and Programs89356
-Node: Threads96897
-Ref: thread numbers99008
-Ref: thread ID lists99898
-Ref: global thread numbers100938
-Ref: set libthread-db-search-path107295
-Node: Forks109349
-Node: Checkpoint/Restart115867
-Ref: Checkpoint/Restart-Footnote-1120395
-Node: Stopping120430
-Node: Breakpoints121693
-Node: Set Breaks124950
-Node: Set Watchpoints143376
-Node: Set Catchpoints152758
-Node: Delete Breaks164599
-Node: Disabling166535
-Node: Conditions169915
-Node: Break Commands175562
-Node: Dynamic Printf178782
-Node: Save Breakpoints183086
-Node: Static Probe Points184261
-Ref: Static Probe Points-Footnote-1188439
-Ref: Static Probe Points-Footnote-2188599
-Node: Error in Breakpoints188739
-Node: Breakpoint-related Warnings189475
-Node: Continuing and Stepping191802
-Ref: range stepping201265
-Node: Skipping Over Functions and Files202345
-Node: Signals207977
-Ref: stepping and signal handlers212411
-Ref: stepping into signal handlers213207
-Ref: extra signal information214440
-Node: Thread Stops216906
-Node: All-Stop Mode218005
-Node: Non-Stop Mode221972
-Node: Background Execution225385
-Node: Thread-Specific Breakpoints227601
-Node: Interrupted System Calls229617
-Node: Observer Mode231131
-Node: Reverse Execution234567
-Ref: Reverse Execution-Footnote-1239192
-Ref: Reverse Execution-Footnote-2239819
-Node: Process Record and Replay239869
-Node: Stack258602
-Node: Frames260150
-Node: Backtrace262444
-Ref: backtrace-command262781
-Ref: Backtrace-Footnote-1268551
-Node: Selection268739
-Node: Frame Info271620
-Node: Frame Filter Management273639
-Ref: disable frame-filter all274166
-Node: Source278474
-Node: List279540
-Node: Specify Location282242
-Node: Linespec Locations282863
-Node: Explicit Locations285569
-Node: Address Locations287783
-Node: Edit289534
-Ref: Edit-Footnote-1291010
-Node: Search291245
-Node: Source Path292053
-Ref: set substitute-path298419
-Node: Machine Code302354
-Node: Data312370
-Node: Expressions320103
-Node: Ambiguous Expressions322206
-Node: Variables325436
-Node: Arrays331502
-Node: Output Formats334033
-Ref: Output Formats-Footnote-1337406
-Node: Memory337563
-Ref: addressable memory unit343748
-Node: Auto Display345242
-Node: Print Settings349784
-Ref: set print entry-values357946
-Node: Pretty Printing369256
-Node: Pretty-Printer Introduction369770
-Node: Pretty-Printer Example371525
-Node: Pretty-Printer Commands372303
-Node: Value History374727
-Node: Convenience Vars377149
-Node: Convenience Funs383753
-Node: Registers389242
-Ref: standard registers390224
-Ref: Registers-Footnote-1395175
-Node: Floating Point Hardware395570
-Node: Vector Unit396102
-Node: OS Information396489
-Ref: linux info os infotypes398513
-Node: Memory Region Attributes403104
-Node: Dump/Restore Files407768
-Node: Core File Generation410171
-Ref: set use-coredump-filter411575
-Node: Character Sets413023
-Node: Caching Target Data419388
-Ref: Caching Target Data-Footnote-1422116
-Node: Searching Memory422354
-Node: Value Sizes425252
-Node: Optimized Code426905
-Node: Inline Functions428582
-Node: Tail Call Frames431209
-Ref: set debug entry-values433346
-Node: Macros437408
-Ref: Macros-Footnote-1444984
-Node: Tracepoints445137
-Node: Set Tracepoints447199
-Node: Create and Delete Tracepoints450137
-Node: Enable and Disable Tracepoints456484
-Node: Tracepoint Passcounts457724
-Node: Tracepoint Conditions459135
-Node: Trace State Variables460829
-Node: Tracepoint Actions463024
-Node: Listing Tracepoints469807
-Node: Listing Static Tracepoint Markers471509
-Node: Starting and Stopping Trace Experiments473357
-Ref: disconnected tracing475102
-Node: Tracepoint Restrictions479522
-Node: Analyze Collected Data483291
-Node: tfind484597
-Node: tdump489079
-Node: save tracepoints491594
-Node: Tracepoint Variables492090
-Node: Trace Files493218
-Node: Overlays495594
-Node: How Overlays Work496314
-Ref: A code overlay498869
-Node: Overlay Commands502282
-Node: Automatic Overlay Debugging506464
-Node: Overlay Sample Program508603
-Node: Languages510340
-Node: Setting511503
-Node: Filenames513204
-Node: Manually514015
-Node: Automatically515224
-Node: Show516285
-Ref: show language516573
-Node: Checks517607
-Node: Type Checking518612
-Node: Range Checking520441
-Node: Supported Languages522842
-Node: C524179
-Node: C Operators525143
-Node: C Constants529482
-Node: C Plus Plus Expressions532361
-Node: C Defaults535721
-Node: C Checks536389
-Node: Debugging C536949
-Node: Debugging C Plus Plus537433
-Node: Decimal Floating Point541026
-Node: D542296
-Node: Go542554
-Node: Objective-C543648
-Node: Method Names in Commands544111
-Node: The Print Command with Objective-C545802
-Node: OpenCL C546453
-Node: OpenCL C Datatypes546728
-Node: OpenCL C Expressions547103
-Node: OpenCL C Operators547460
-Node: Fortran547692
-Node: Fortran Operators548413
-Node: Fortran Defaults549269
-Node: Special Fortran Commands549654
-Node: Pascal550160
-Node: Rust550671
-Node: Modula-2553815
-Node: M2 Operators554788
-Node: Built-In Func/Proc557786
-Node: M2 Constants560700
-Node: M2 Types562301
-Node: M2 Defaults565519
-Node: Deviations566120
-Node: M2 Checks567221
-Node: M2 Scope568038
-Node: GDB/M2569062
-Node: Ada569975
-Node: Ada Mode Intro571212
-Node: Omissions from Ada572714
-Node: Additions to Ada577069
-Node: Overloading support for Ada580997
-Node: Stopping Before Main Program582637
-Node: Ada Exceptions583184
-Node: Ada Tasks584383
-Node: Ada Tasks and Core Files590808
-Node: Ravenscar Profile591655
-Node: Ada Glitches592726
-Node: Unsupported Languages596739
-Node: Symbols597429
-Node: Altering619454
-Node: Assignment620492
-Node: Jumping623598
-Node: Signaling625672
-Node: Returning628601
-Node: Calling631952
-Node: Patching634994
-Node: Compiling and Injecting Code636108
-Ref: set debug compile639565
-Node: GDB Files648612
-Node: Files649401
-Ref: Shared Libraries662467
-Ref: Files-Footnote-1674665
-Node: File Caching674794
-Node: Separate Debug Files675928
-Ref: debug-file-directory679038
-Node: MiniDebugInfo687653
-Node: Index Files690104
-Node: Symbol Errors692166
-Node: Data Files695782
-Node: Targets696738
-Node: Active Targets698218
-Node: Target Commands699292
-Ref: load703681
-Ref: flash-erase704874
-Node: Byte Order704934
-Node: Remote Debugging705908
-Node: Connecting707170
-Ref: --multi Option in Types of Remote Connnections709396
-Ref: Attaching in Types of Remote Connections710811
-Ref: Host and target files711312
-Node: File Transfer717787
-Node: Server718726
-Ref: Running gdbserver720302
-Ref: Attaching to a program722520
-Ref: Other Command-Line Arguments for gdbserver725045
-Ref: Monitor Commands for gdbserver728095
-Ref: Server-Footnote-1733351
-Node: Remote Configuration733471
-Ref: set remotebreak734731
-Ref: set remote hardware-watchpoint-limit736194
-Ref: set remote hardware-breakpoint-limit736194
-Ref: set remote hardware-watchpoint-length-limit736420
-Ref: set remote exec-file736835
-Node: Remote Stub747886
-Node: Stub Contents750781
-Node: Bootstrapping752888
-Node: Debug Session756703
-Node: Configurations758744
-Node: Native759513
-Node: BSD libkvm Interface760044
-Node: SVR4 Process Information761101
-Node: DJGPP Native764861
-Node: Cygwin Native771420
-Node: Non-debug DLL Symbols776341
-Node: Hurd Native780494
-Node: Darwin785750
-Node: Embedded OS787011
-Node: Embedded Processors787422
-Node: ARC788359
-Node: ARM788906
-Node: M68K791453
-Node: MicroBlaze791626
-Node: MIPS Embedded793075
-Node: PowerPC Embedded794375
-Node: AVR797604
-Node: CRIS797976
-Node: Super-H798952
-Node: Architectures800009
-Node: AArch64800446
-Node: i386800852
-Ref: i386-Footnote-1805062
-Node: Alpha805148
-Node: MIPS805281
-Node: HPPA809175
-Node: SPU809693
-Node: PowerPC811879
-Node: Nios II812614
-Node: Controlling GDB813003
-Node: Prompt813899
-Node: Editing815617
-Node: Command History816560
-Node: Screen Size820866
-Node: Numbers822800
-Node: ABI824779
-Node: Auto-loading827952
-Ref: set auto-load off829327
-Ref: show auto-load829963
-Ref: info auto-load830742
-Node: Init File in the Current Directory833709
-Ref: set auto-load local-gdbinit834284
-Ref: show auto-load local-gdbinit834466
-Ref: info auto-load local-gdbinit834630
-Node: libthread_db.so.1 file834778
-Ref: set auto-load libthread-db835717
-Ref: show auto-load libthread-db835848
-Ref: info auto-load libthread-db835985
-Node: Auto-loading safe path836169
-Ref: set auto-load safe-path837475
-Ref: show auto-load safe-path838214
-Ref: add-auto-load-safe-path838337
-Node: Auto-loading verbose mode841239
-Ref: set debug auto-load842402
-Ref: show debug auto-load842503
-Node: Messages/Warnings842625
-Ref: confirmation requests844059
-Node: Debugging Output845263
-Node: Other Misc Settings854674
-Node: Extending GDB855698
-Node: Sequences857551
-Node: Define858212
-Node: Hooks862292
-Node: Command Files864658
-Node: Output869731
-Ref: eval874533
-Node: Auto-loading sequences874695
-Ref: set auto-load gdb-scripts875190
-Ref: show auto-load gdb-scripts875314
-Ref: info auto-load gdb-scripts875444
-Node: Python875675
-Node: Python Commands876848
-Node: Python API879176
-Node: Basic Python881781
-Ref: prompt_hook890660
-Node: Exception Handling891258
-Node: Values From Inferior893754
-Node: Types In Python908666
-Node: Pretty Printing API918221
-Node: Selecting Pretty-Printers922117
-Node: Writing a Pretty-Printer924450
-Node: Type Printing API929772
-Node: Frame Filter API932388
-Node: Frame Decorator API939669
-Ref: frame_args943253
-Node: Writing a Frame Filter946583
-Node: Unwinding Frames in Python958057
-Node: Xmethods In Python963513
-Node: Xmethod API966409
-Node: Writing an Xmethod970221
-Node: Inferiors In Python976056
-Node: Events In Python978963
-Node: Threads In Python986806
-Node: Recordings In Python989693
-Node: Commands In Python997027
-Node: Parameters In Python1006440
-Node: Functions In Python1011900
-Node: Progspaces In Python1014117
-Node: Objfiles In Python1017618
-Node: Frames In Python1023397
-Node: Blocks In Python1030240
-Node: Symbols In Python1034602
-Node: Symbol Tables In Python1041829
-Node: Line Tables In Python1045052
-Node: Breakpoints In Python1047889
-Ref: python_breakpoint_thread1053023
-Node: Finish Breakpoints in Python1056060
-Node: Lazy Strings In Python1058166
-Node: Architectures In Python1060396
-Node: Python Auto-loading1062585
-Ref: set auto-load python-scripts1063214
-Ref: show auto-load python-scripts1063314
-Ref: info auto-load python-scripts1063420
-Node: Python modules1064554
-Node: gdb.printing1064940
-Node: gdb.types1066367
-Node: gdb.prompt1069379
-Node: Guile1071028
-Node: Guile Introduction1071687
-Node: Guile Commands1072558
-Node: Guile API1074412
-Node: Basic Guile1076409
-Node: Guile Configuration1082091
-Node: GDB Scheme Data Types1083067
-Node: Guile Exception Handling1084899
-Node: Values From Inferior In Guile1088933
-Node: Arithmetic In Guile1104468
-Node: Types In Guile1106099
-Ref: Fields of a type in Guile1114040
-Node: Guile Pretty Printing API1115428
-Node: Selecting Guile Pretty-Printers1121030
-Node: Writing a Guile Pretty-Printer1123406
-Node: Commands In Guile1128591
-Node: Parameters In Guile1139371
-Ref: Parameters In Guile-Footnote-11146252
-Node: Progspaces In Guile1146368
-Node: Objfiles In Guile1148956
-Node: Frames In Guile1151237
-Node: Blocks In Guile1157815
-Node: Symbols In Guile1162623
-Node: Symbol Tables In Guile1169957
-Node: Breakpoints In Guile1172920
-Node: Lazy Strings In Guile1183181
-Node: Architectures In Guile1185472
-Node: Disassembly In Guile1189779
-Node: I/O Ports in Guile1192981
-Node: Memory Ports in Guile1193537
-Node: Iterators In Guile1196803
-Node: Guile Auto-loading1202807
-Ref: set auto-load guile-scripts1203430
-Ref: show auto-load guile-scripts1203528
-Ref: info auto-load guile-scripts1203632
-Node: Guile Modules1204591
-Node: Guile Printing Module1204913
-Node: Guile Types Module1205732
-Node: Auto-loading extensions1207025
-Node: objfile-gdbdotext file1208223
-Ref: set auto-load scripts-directory1209659
-Ref: with-auto-load-dir1210035
-Ref: show auto-load scripts-directory1210853
-Ref: add-auto-load-scripts-directory1210933
-Node: dotdebug_gdb_scripts section1211409
-Node: Which flavor to choose?1215159
-Node: Multiple Extension Languages1216980
-Node: Aliases1218044
-Node: Interpreters1220909
-Node: TUI1224002
-Node: TUI Overview1225000
-Node: TUI Keys1227433
-Node: TUI Single Key Mode1229737
-Node: TUI Commands1230612
-Node: TUI Configuration1234551
-Node: Emacs1235857
-Node: GDB/MI1241294
-Node: GDB/MI General Design1243268
-Node: Context management1245788
-Node: Asynchronous and non-stop modes1249575
-Node: Thread groups1252549
-Node: GDB/MI Command Syntax1254827
-Node: GDB/MI Input Syntax1255070
-Node: GDB/MI Output Syntax1256620
-Node: GDB/MI Compatibility with CLI1260205
-Node: GDB/MI Development and Front Ends1260942
-Node: GDB/MI Output Records1262596
-Node: GDB/MI Result Records1263002
-Node: GDB/MI Stream Records1264352
-Node: GDB/MI Async Records1265617
-Node: GDB/MI Breakpoint Information1276054
-Node: GDB/MI Frame Information1280005
-Node: GDB/MI Thread Information1281091
-Node: GDB/MI Ada Exception Information1282078
-Node: GDB/MI Simple Examples1282501
-Node: GDB/MI Command Description Format1284709
-Node: GDB/MI Breakpoint Commands1285589
-Ref: -break-insert1292697
-Node: GDB/MI Catchpoint Commands1306152
-Node: Shared Library GDB/MI Catchpoint Commands1306520
-Node: Ada Exception GDB/MI Catchpoint Commands1308178
-Node: GDB/MI Program Context1310582
-Node: GDB/MI Thread Commands1314850
-Node: GDB/MI Ada Tasking Commands1318913
-Node: GDB/MI Program Execution1321185
-Node: GDB/MI Stack Manipulation1333219
-Ref: -stack-list-arguments1335118
-Ref: -stack-list-frames1338823
-Ref: -stack-list-locals1342686
-Ref: -stack-list-variables1344176
-Node: GDB/MI Variable Objects1345710
-Ref: -var-set-format1355675
-Ref: -var-list-children1357056
-Ref: -var-update1365864
-Ref: -var-set-frozen1368862
-Ref: -var-set-update-range1369659
-Ref: -var-set-visualizer1370188
-Node: GDB/MI Data Manipulation1371678
-Node: GDB/MI Tracepoint Commands1391852
-Node: GDB/MI Symbol Query1403643
-Node: GDB/MI File Commands1404332
-Node: GDB/MI Target Manipulation1408766
-Node: GDB/MI File Transfer Commands1415424
-Node: GDB/MI Ada Exceptions Commands1416747
-Node: GDB/MI Support Commands1418100
-Node: GDB/MI Miscellaneous Commands1422673
-Ref: -interpreter-exec1433007
-Node: Annotations1435347
-Node: Annotations Overview1436266
-Node: Server Prefix1438729
-Node: Prompting1439463
-Node: Errors1440980
-Node: Invalidation1441876
-Node: Annotations for Running1442355
-Node: Source Annotations1443889
-Node: JIT Interface1444818
-Node: Declarations1446617
-Node: Registering Code1448004
-Node: Unregistering Code1448976
-Node: Custom Debug Info1449603
-Node: Using JIT Debug Info Readers1450899
-Node: Writing JIT Debug Info Readers1451911
-Node: In-Process Agent1454106
-Ref: Control Agent1456049
-Node: In-Process Agent Protocol1456916
-Node: IPA Protocol Objects1457707
-Ref: agent expression object1458705
-Ref: tracepoint action object1458910
-Ref: tracepoint object1458990
-Node: IPA Protocol Commands1461520
-Node: GDB Bugs1462990
-Node: Bug Criteria1463722
-Node: Bug Reporting1464599
-Node: Command Line Editing1472428
-Node: Introduction and Notation1473080
-Node: Readline Interaction1474701
-Node: Readline Bare Essentials1475890
-Node: Readline Movement Commands1477671
-Node: Readline Killing Commands1478629
-Node: Readline Arguments1480545
-Node: Searching1481587
-Node: Readline Init File1483737
-Node: Readline Init File Syntax1484888
-Node: Conditional Init Constructs1499987
-Node: Sample Init File1504225
-Node: Bindable Readline Commands1507339
-Node: Commands For Moving1508391
-Node: Commands For History1509249
-Node: Commands For Text1512644
-Node: Commands For Killing1515367
-Node: Numeric Arguments1517507
-Node: Commands For Completion1518643
-Node: Keyboard Macros1520609
-Node: Miscellaneous Commands1521177
-Node: Readline vi Mode1525025
-Node: Using History Interactively1525935
-Node: History Interaction1526450
-Node: Event Designators1527872
-Node: Word Designators1529009
-Node: Modifiers1530644
-Node: In Memoriam1531865
-Node: Formatting Documentation1532748
-Ref: Formatting Documentation-Footnote-11536120
-Node: Installing GDB1536214
-Node: Requirements1536786
-Ref: Expat1537355
-Node: Running Configure1539975
-Node: Separate Objdir1543739
-Node: Config Names1546712
-Node: Configure Options1548187
-Node: System-wide configuration1550558
-Node: System-wide Configuration Scripts1552518
-Node: Maintenance Commands1553702
-Ref: maint info breakpoints1555357
-Node: Remote Protocol1575255
-Node: Overview1575947
-Ref: Binary Data1578492
-Node: Packets1581017
-Ref: thread-id syntax1581917
-Ref: extended mode1583362
-Ref: ? packet1583620
-Ref: bc1585086
-Ref: bs1585296
-Ref: read registers packet1586913
-Ref: cycle step packet1588768
-Ref: write register packet1591479
-Ref: step with signal packet1592458
-Ref: vCont packet1593934
-Ref: vCtrlC packet1597167
-Ref: vKill packet1599585
-Ref: X packet1600515
-Ref: insert breakpoint or watchpoint packet1600884
-Node: Stop Reply Packets1605213
-Ref: swbreak stop reason1608464
-Ref: thread create event1612061
-Ref: thread exit event1613264
-Node: General Query Packets1615473
-Ref: qCRC packet1618303
-Ref: QNonStop1626126
-Ref: QCatchSyscalls1626802
-Ref: QPassSignals1628339
-Ref: QProgramSignals1629546
-Ref: QThreadEvents1631113
-Ref: qSearch memory1633131
-Ref: QStartNoAckMode1633639
-Ref: qSupported1634170
-Ref: multiprocess extensions1650177
-Ref: install tracepoint in tracing1652207
-Ref: qXfer read1656730
-Ref: qXfer auxiliary vector read1658337
-Ref: qXfer btrace read1658685
-Ref: qXfer btrace-conf read1659750
-Ref: qXfer executable filename read1660101
-Ref: qXfer target description read1660716
-Ref: qXfer library list read1661150
-Ref: qXfer svr4 library list read1661806
-Ref: qXfer memory map read1663659
-Ref: qXfer sdata read1664046
-Ref: qXfer siginfo read1664512
-Ref: qXfer spu read1664909
-Ref: qXfer threads read1665433
-Ref: qXfer traceframe info read1665836
-Ref: qXfer unwind info block1666254
-Ref: qXfer fdpic loadmap read1666488
-Ref: qXfer osdata read1666904
-Ref: qXfer write1667058
-Ref: qXfer siginfo write1668150
-Ref: qXfer spu write1668547
-Ref: General Query Packets-Footnote-11671403
-Node: Architecture-Specific Protocol Details1671730
-Node: ARM-Specific Protocol Details1672239
-Node: ARM Breakpoint Kinds1672487
-Node: MIPS-Specific Protocol Details1672818
-Node: MIPS Register packet Format1673101
-Node: MIPS Breakpoint Kinds1674028
-Node: Tracepoint Packets1674446
-Ref: QTEnable1683760
-Ref: QTDisable1683956
-Ref: qTfSTM1689493
-Ref: qTsSTM1689493
-Ref: qTSTMat1690570
-Ref: QTBuffer-size1691721
-Node: Host I/O Packets1693694
-Node: Interrupts1699274
-Ref: interrupting remote targets1699418
-Node: Notification Packets1701586
-Node: Remote Non-Stop1707011
-Node: Packet Acknowledgment1710127
-Node: Examples1712242
-Node: File-I/O Remote Protocol Extension1712836
-Node: File-I/O Overview1713298
-Node: Protocol Basics1715497
-Node: The F Request Packet1717726
-Node: The F Reply Packet1718627
-Node: The Ctrl-C Message1719545
-Node: Console I/O1721171
-Node: List of Supported Calls1722387
-Node: open1722749
-Node: close1725257
-Node: read1725640
-Node: write1726249
-Node: lseek1727020
-Node: rename1727904
-Node: unlink1729311
-Node: stat/fstat1730258
-Node: gettimeofday1731151
-Node: isatty1731587
-Node: system1732183
-Node: Protocol-specific Representation of Datatypes1733725
-Node: Integral Datatypes1734102
-Node: Pointer Values1734909
-Node: Memory Transfer1735613
-Node: struct stat1736233
-Node: struct timeval1738435
-Node: Constants1738952
-Node: Open Flags1739401
-Node: mode_t Values1739742
-Node: Errno Values1740234
-Node: Lseek Flags1741044
-Node: Limits1741229
-Node: File-I/O Examples1741589
-Node: Library List Format1742677
-Node: Library List Format for SVR4 Targets1745459
-Node: Memory Map Format1747926
-Node: Thread List Format1750501
-Node: Traceframe Info Format1751414
-Node: Branch Trace Format1753100
-Node: Branch Trace Configuration Format1754800
-Node: Agent Expressions1755974
-Node: General Bytecode Design1758795
-Node: Bytecode Descriptions1763589
-Node: Using Agent Expressions1776892
-Node: Varying Target Capabilities1778869
-Node: Rationale1780030
-Node: Target Descriptions1787419
-Node: Retrieving Descriptions1789362
-Node: Target Description Format1790447
-Node: Predefined Target Types1801778
-Node: Enum Target Types1803206
-Node: Standard Target Features1804201
-Node: AArch64 Features1806138
-Node: ARC Features1806561
-Node: ARM Features1808622
-Node: i386 Features1810136
-Node: MicroBlaze Features1812351
-Node: MIPS Features1812928
-Node: M68K Features1814119
-Node: NDS32 Features1814780
-Node: Nios II Features1815804
-Node: PowerPC Features1816203
-Node: S/390 and System z Features1817528
-Node: Sparc Features1819354
-Node: TIC6x Features1820259
-Node: Operating System Information1820808
-Node: Process list1821643
-Node: Trace File Format1822706
-Node: Index Section Format1825920
-Node: Man Pages1833846
-Node: gdb man1834252
-Node: gdbserver man1840288
-Node: gcore man1847485
-Node: gdbinit man1848142
-Node: Copying1849025
-Node: GNU Free Documentation License1886586
-Node: Concept Index1911733
-Node: Command and Variable Index2045879
+Node: Top1716
+Node: Summary5188
+Node: Free Software7049
+Node: Free Documentation7789
+Node: Contributors12723
+Node: Sample Session21297
+Node: Invocation28149
+Node: Invoking GDB28692
+Node: File Options31026
+Ref: --readnever34097
+Node: Mode Options34571
+Ref: -nx34798
+Ref: -nh35882
+Node: Startup42199
+Ref: Home Directory Init File42750
+Ref: Option -init-eval-command42860
+Ref: Init File in the Current Directory during Startup43200
+Ref: Startup-Footnote-145396
+Node: Quitting GDB45505
+Node: Shell Commands46402
+Node: Logging Output47329
+Node: Commands48166
+Node: Command Syntax48804
+Node: Completion50970
+Ref: Completion-Footnote-157880
+Node: Help58040
+Node: Running63791
+Node: Compilation65020
+Node: Starting67104
+Ref: set exec-wrapper72894
+Ref: set startup-with-shell73983
+Ref: set auto-connect-native-target75044
+Node: Arguments79440
+Node: Environment80709
+Ref: set environment82591
+Ref: unset environment83773
+Node: Working Directory84779
+Ref: set cwd command85351
+Ref: cd command86290
+Node: Input/Output86994
+Node: Attach89054
+Node: Kill Process91520
+Node: Inferiors and Programs92501
+Node: Threads100042
+Ref: thread numbers102153
+Ref: thread ID lists103043
+Ref: global thread numbers104083
+Ref: set libthread-db-search-path110440
+Node: Forks112494
+Node: Checkpoint/Restart119012
+Ref: Checkpoint/Restart-Footnote-1123540
+Node: Stopping123575
+Node: Breakpoints124838
+Node: Set Breaks128095
+Node: Set Watchpoints146637
+Node: Set Catchpoints156019
+Node: Delete Breaks168796
+Node: Disabling170732
+Node: Conditions174112
+Node: Break Commands179759
+Node: Dynamic Printf182979
+Node: Save Breakpoints187283
+Node: Static Probe Points188458
+Ref: Static Probe Points-Footnote-1192636
+Ref: Static Probe Points-Footnote-2192796
+Node: Error in Breakpoints192936
+Node: Breakpoint-related Warnings193672
+Node: Continuing and Stepping195999
+Ref: range stepping205462
+Node: Skipping Over Functions and Files206542
+Node: Signals212174
+Ref: stepping and signal handlers216608
+Ref: stepping into signal handlers217404
+Ref: extra signal information218637
+Node: Thread Stops221103
+Node: All-Stop Mode222202
+Node: Non-Stop Mode226169
+Node: Background Execution229582
+Node: Thread-Specific Breakpoints231798
+Node: Interrupted System Calls233814
+Node: Observer Mode235328
+Node: Reverse Execution238764
+Ref: Reverse Execution-Footnote-1243389
+Ref: Reverse Execution-Footnote-2244016
+Node: Process Record and Replay244066
+Node: Stack262799
+Node: Frames264347
+Node: Backtrace266641
+Ref: backtrace-command266978
+Ref: Backtrace-Footnote-1272748
+Node: Selection272936
+Node: Frame Info275817
+Node: Frame Filter Management277836
+Ref: disable frame-filter all278363
+Node: Source282671
+Node: List283737
+Node: Specify Location286439
+Node: Linespec Locations287060
+Node: Explicit Locations290459
+Node: Address Locations293671
+Node: Edit295422
+Ref: Edit-Footnote-1296898
+Node: Search297133
+Node: Source Path297941
+Ref: set substitute-path304307
+Node: Machine Code308243
+Node: Data318259
+Node: Expressions325992
+Node: Ambiguous Expressions328095
+Node: Variables331325
+Node: Arrays337923
+Node: Output Formats340454
+Ref: Output Formats-Footnote-1343827
+Node: Memory343984
+Ref: addressable memory unit350169
+Node: Auto Display351663
+Node: Print Settings356205
+Ref: set print entry-values364367
+Node: Pretty Printing375677
+Node: Pretty-Printer Introduction376191
+Node: Pretty-Printer Example377946
+Node: Pretty-Printer Commands378724
+Node: Value History381148
+Node: Convenience Vars383570
+Node: Convenience Funs390174
+Node: Registers395663
+Ref: standard registers396870
+Ref: Registers-Footnote-1401821
+Node: Floating Point Hardware402216
+Node: Vector Unit402748
+Node: OS Information403135
+Ref: linux info os infotypes405159
+Node: Memory Region Attributes409750
+Node: Dump/Restore Files414414
+Node: Core File Generation416817
+Ref: set use-coredump-filter418377
+Ref: set dump-excluded-mappings419825
+Node: Character Sets420107
+Node: Caching Target Data426472
+Ref: Caching Target Data-Footnote-1429200
+Node: Searching Memory429438
+Node: Value Sizes432581
+Node: Optimized Code434234
+Node: Inline Functions435911
+Node: Tail Call Frames438538
+Ref: set debug entry-values440675
+Node: Macros444737
+Ref: Macros-Footnote-1452313
+Node: Tracepoints452466
+Node: Set Tracepoints454528
+Node: Create and Delete Tracepoints457466
+Node: Enable and Disable Tracepoints463813
+Node: Tracepoint Passcounts465053
+Node: Tracepoint Conditions466464
+Node: Trace State Variables468158
+Node: Tracepoint Actions470353
+Node: Listing Tracepoints477136
+Node: Listing Static Tracepoint Markers478838
+Node: Starting and Stopping Trace Experiments480686
+Ref: disconnected tracing482431
+Node: Tracepoint Restrictions486851
+Node: Analyze Collected Data490620
+Node: tfind491926
+Node: tdump496408
+Node: save tracepoints498923
+Node: Tracepoint Variables499419
+Node: Trace Files500547
+Node: Overlays502923
+Node: How Overlays Work503643
+Ref: A code overlay506198
+Node: Overlay Commands509611
+Node: Automatic Overlay Debugging513793
+Node: Overlay Sample Program515932
+Node: Languages517669
+Node: Setting518832
+Node: Filenames520533
+Node: Manually521344
+Node: Automatically522553
+Node: Show523614
+Ref: show language523902
+Node: Checks524936
+Node: Type Checking525941
+Node: Range Checking527770
+Node: Supported Languages530171
+Node: C531508
+Node: C Operators532472
+Node: C Constants536811
+Node: C Plus Plus Expressions539690
+Node: C Defaults543050
+Node: C Checks543718
+Node: Debugging C544278
+Node: Debugging C Plus Plus544762
+Node: Decimal Floating Point549649
+Node: D550919
+Node: Go551177
+Node: Objective-C552271
+Node: Method Names in Commands552734
+Node: The Print Command with Objective-C554425
+Node: OpenCL C555076
+Node: OpenCL C Datatypes555351
+Node: OpenCL C Expressions555726
+Node: OpenCL C Operators556083
+Node: Fortran556315
+Node: Fortran Operators557036
+Node: Fortran Defaults557892
+Node: Special Fortran Commands558277
+Node: Pascal558783
+Node: Rust559294
+Node: Modula-2562381
+Node: M2 Operators563354
+Node: Built-In Func/Proc566352
+Node: M2 Constants569266
+Node: M2 Types570867
+Node: M2 Defaults574085
+Node: Deviations574686
+Node: M2 Checks575787
+Node: M2 Scope576604
+Node: GDB/M2577628
+Node: Ada578541
+Node: Ada Mode Intro579778
+Node: Omissions from Ada581280
+Node: Additions to Ada585635
+Node: Overloading support for Ada589563
+Node: Stopping Before Main Program591203
+Node: Ada Exceptions591750
+Node: Ada Tasks592949
+Node: Ada Tasks and Core Files599374
+Node: Ravenscar Profile601937
+Node: Ada Glitches603008
+Node: Unsupported Languages607021
+Node: Symbols607711
+Ref: quoting names608314
+Node: Altering633741
+Node: Assignment634779
+Node: Jumping637885
+Node: Signaling639959
+Node: Returning642888
+Node: Calling646239
+Node: Patching650853
+Node: Compiling and Injecting Code651967
+Ref: set debug compile655424
+Node: GDB Files665425
+Node: Files666214
+Ref: Shared Libraries679516
+Ref: Files-Footnote-1691714
+Node: File Caching691843
+Node: Separate Debug Files692977
+Ref: debug-file-directory696087
+Node: MiniDebugInfo704702
+Node: Index Files707153
+Node: Symbol Errors709742
+Node: Data Files713358
+Node: Targets714314
+Node: Active Targets715794
+Node: Target Commands716868
+Ref: load721257
+Ref: flash-erase722450
+Node: Byte Order722510
+Node: Remote Debugging723484
+Node: Connecting724746
+Ref: --multi Option in Types of Remote Connnections726972
+Ref: Attaching in Types of Remote Connections728387
+Ref: Host and target files728888
+Node: File Transfer735363
+Node: Server736302
+Ref: Running gdbserver737878
+Ref: Attaching to a program740096
+Ref: Other Command-Line Arguments for gdbserver742621
+Ref: Monitor Commands for gdbserver745837
+Ref: Server-Footnote-1751093
+Node: Remote Configuration751213
+Ref: set remotebreak752473
+Ref: set remote hardware-watchpoint-limit753936
+Ref: set remote hardware-breakpoint-limit753936
+Ref: set remote hardware-watchpoint-length-limit754162
+Ref: set remote exec-file754577
+Node: Remote Stub766586
+Node: Stub Contents769481
+Node: Bootstrapping771588
+Node: Debug Session775403
+Node: Configurations777444
+Node: Native778213
+Node: BSD libkvm Interface778744
+Node: SVR4 Process Information779801
+Node: DJGPP Native783561
+Node: Cygwin Native790120
+Node: Non-debug DLL Symbols795041
+Node: Hurd Native799280
+Node: Darwin804536
+Node: Embedded OS805797
+Node: Embedded Processors806208
+Node: ARC807198
+Node: ARM807745
+Node: M68K810292
+Node: MicroBlaze810465
+Node: MIPS Embedded811914
+Node: OpenRISC 1000813211
+Node: PowerPC Embedded814117
+Node: AVR817346
+Node: CRIS817718
+Node: Super-H818694
+Node: Architectures819753
+Node: AArch64820202
+Node: i386820608
+Ref: i386-Footnote-1824818
+Node: Alpha824904
+Node: MIPS825037
+Node: HPPA828931
+Node: SPU829449
+Node: PowerPC831635
+Node: Nios II832370
+Node: Sparc64832775
+Node: Controlling GDB835130
+Node: Prompt836026
+Node: Editing837744
+Node: Command History838687
+Node: Screen Size842993
+Node: Numbers844927
+Node: ABI846906
+Node: Auto-loading850079
+Ref: set auto-load off851454
+Ref: show auto-load852090
+Ref: info auto-load852869
+Node: Init File in the Current Directory855836
+Ref: set auto-load local-gdbinit856411
+Ref: show auto-load local-gdbinit856593
+Ref: info auto-load local-gdbinit856757
+Node: libthread_db.so.1 file856905
+Ref: set auto-load libthread-db857844
+Ref: show auto-load libthread-db857975
+Ref: info auto-load libthread-db858112
+Node: Auto-loading safe path858296
+Ref: set auto-load safe-path859602
+Ref: show auto-load safe-path860341
+Ref: add-auto-load-safe-path860464
+Node: Auto-loading verbose mode863366
+Ref: set debug auto-load864529
+Ref: show debug auto-load864630
+Node: Messages/Warnings864752
+Ref: confirmation requests866186
+Node: Debugging Output867390
+Node: Other Misc Settings877020
+Node: Extending GDB878044
+Node: Sequences879897
+Node: Define880558
+Node: Hooks884638
+Node: Command Files887004
+Node: Output892077
+Ref: eval896879
+Node: Auto-loading sequences897041
+Ref: set auto-load gdb-scripts897536
+Ref: show auto-load gdb-scripts897660
+Ref: info auto-load gdb-scripts897790
+Node: Python898021
+Node: Python Commands899194
+Node: Python API903238
+Node: Basic Python905843
+Ref: prompt_hook915718
+Node: Exception Handling916316
+Node: Values From Inferior918812
+Node: Types In Python932009
+Node: Pretty Printing API941564
+Node: Selecting Pretty-Printers945460
+Node: Writing a Pretty-Printer947793
+Node: Type Printing API953115
+Node: Frame Filter API955731
+Node: Frame Decorator API963012
+Ref: frame_args966596
+Node: Writing a Frame Filter969926
+Node: Unwinding Frames in Python981400
+Node: Xmethods In Python986856
+Node: Xmethod API989752
+Node: Writing an Xmethod993564
+Node: Inferiors In Python999399
+Node: Events In Python1002543
+Node: Threads In Python1011461
+Node: Recordings In Python1014348
+Node: Commands In Python1021682
+Node: Parameters In Python1031095
+Node: Functions In Python1036555
+Node: Progspaces In Python1038772
+Node: Objfiles In Python1042273
+Node: Frames In Python1048052
+Node: Blocks In Python1054895
+Node: Symbols In Python1059257
+Node: Symbol Tables In Python1066485
+Node: Line Tables In Python1069708
+Node: Breakpoints In Python1072545
+Ref: python_breakpoint_thread1078868
+Node: Finish Breakpoints in Python1081905
+Node: Lazy Strings In Python1084011
+Node: Architectures In Python1086241
+Node: Python Auto-loading1088430
+Ref: set auto-load python-scripts1089059
+Ref: show auto-load python-scripts1089159
+Ref: info auto-load python-scripts1089265
+Node: Python modules1090399
+Node: gdb.printing1090785
+Node: gdb.types1092212
+Node: gdb.prompt1095224
+Node: Guile1096873
+Node: Guile Introduction1097532
+Node: Guile Commands1098403
+Node: Guile API1100257
+Node: Basic Guile1102254
+Node: Guile Configuration1107936
+Node: GDB Scheme Data Types1108912
+Node: Guile Exception Handling1110744
+Node: Values From Inferior In Guile1114778
+Node: Arithmetic In Guile1130313
+Node: Types In Guile1131944
+Ref: Fields of a type in Guile1139885
+Node: Guile Pretty Printing API1141273
+Node: Selecting Guile Pretty-Printers1146875
+Node: Writing a Guile Pretty-Printer1149251
+Node: Commands In Guile1154436
+Node: Parameters In Guile1165216
+Ref: Parameters In Guile-Footnote-11172097
+Node: Progspaces In Guile1172213
+Node: Objfiles In Guile1174801
+Node: Frames In Guile1177082
+Node: Blocks In Guile1183660
+Node: Symbols In Guile1188468
+Node: Symbol Tables In Guile1195803
+Node: Breakpoints In Guile1198766
+Node: Lazy Strings In Guile1210743
+Node: Architectures In Guile1213034
+Node: Disassembly In Guile1217341
+Node: I/O Ports in Guile1220543
+Node: Memory Ports in Guile1221099
+Node: Iterators In Guile1224365
+Node: Guile Auto-loading1228654
+Ref: set auto-load guile-scripts1229277
+Ref: show auto-load guile-scripts1229375
+Ref: info auto-load guile-scripts1229479
+Node: Guile Modules1230438
+Node: Guile Printing Module1230760
+Node: Guile Types Module1231579
+Node: Auto-loading extensions1232872
+Node: objfile-gdbdotext file1234070
+Ref: set auto-load scripts-directory1235506
+Ref: with-auto-load-dir1235882
+Ref: show auto-load scripts-directory1236700
+Ref: add-auto-load-scripts-directory1236780
+Node: dotdebug_gdb_scripts section1237256
+Node: Which flavor to choose?1241006
+Node: Multiple Extension Languages1242827
+Node: Aliases1243891
+Node: Interpreters1246756
+Node: TUI1249849
+Node: TUI Overview1250847
+Node: TUI Keys1253280
+Node: TUI Single Key Mode1255584
+Node: TUI Commands1256591
+Node: TUI Configuration1260530
+Node: Emacs1261836
+Node: GDB/MI1267273
+Node: GDB/MI General Design1269247
+Node: Context management1271767
+Node: Asynchronous and non-stop modes1275554
+Node: Thread groups1278528
+Node: GDB/MI Command Syntax1280806
+Node: GDB/MI Input Syntax1281049
+Node: GDB/MI Output Syntax1282599
+Node: GDB/MI Compatibility with CLI1286184
+Node: GDB/MI Development and Front Ends1286921
+Node: GDB/MI Output Records1288575
+Node: GDB/MI Result Records1288981
+Node: GDB/MI Stream Records1290331
+Node: GDB/MI Async Records1291596
+Node: GDB/MI Breakpoint Information1302033
+Node: GDB/MI Frame Information1305984
+Node: GDB/MI Thread Information1307070
+Node: GDB/MI Ada Exception Information1308540
+Node: GDB/MI Simple Examples1309090
+Node: GDB/MI Command Description Format1311298
+Node: GDB/MI Breakpoint Commands1312178
+Ref: -break-insert1319286
+Node: GDB/MI Catchpoint Commands1332741
+Node: Shared Library GDB/MI Catchpoint Commands1333109
+Node: Ada Exception GDB/MI Catchpoint Commands1334767
+Node: GDB/MI Program Context1337171
+Node: GDB/MI Thread Commands1341439
+Node: GDB/MI Ada Tasking Commands1344702
+Node: GDB/MI Program Execution1346974
+Node: GDB/MI Stack Manipulation1359008
+Ref: -stack-list-arguments1360907
+Ref: -stack-list-frames1364612
+Ref: -stack-list-locals1368475
+Ref: -stack-list-variables1369965
+Node: GDB/MI Variable Objects1371499
+Ref: -var-set-format1381464
+Ref: -var-list-children1382845
+Ref: -var-update1391653
+Ref: -var-set-frozen1394651
+Ref: -var-set-update-range1395448
+Ref: -var-set-visualizer1395977
+Node: GDB/MI Data Manipulation1397467
+Node: GDB/MI Tracepoint Commands1417641
+Node: GDB/MI Symbol Query1429432
+Node: GDB/MI File Commands1430121
+Node: GDB/MI Target Manipulation1434555
+Node: GDB/MI File Transfer Commands1441213
+Node: GDB/MI Ada Exceptions Commands1442536
+Node: GDB/MI Support Commands1443889
+Node: GDB/MI Miscellaneous Commands1448462
+Ref: -interpreter-exec1458796
+Node: Annotations1461136
+Node: Annotations Overview1462055
+Node: Server Prefix1464518
+Node: Prompting1465252
+Node: Errors1466769
+Node: Invalidation1467665
+Node: Annotations for Running1468144
+Node: Source Annotations1469678
+Node: JIT Interface1470607
+Node: Declarations1472406
+Node: Registering Code1473793
+Node: Unregistering Code1474765
+Node: Custom Debug Info1475392
+Node: Using JIT Debug Info Readers1476688
+Node: Writing JIT Debug Info Readers1477700
+Node: In-Process Agent1479895
+Ref: Control Agent1481838
+Node: In-Process Agent Protocol1482705
+Node: IPA Protocol Objects1483496
+Ref: agent expression object1484494
+Ref: tracepoint action object1484699
+Ref: tracepoint object1484779
+Node: IPA Protocol Commands1487309
+Node: GDB Bugs1488779
+Node: Bug Criteria1489511
+Node: Bug Reporting1490388
+Node: Command Line Editing1498217
+Node: Introduction and Notation1498869
+Node: Readline Interaction1502206
+Node: Readline Bare Essentials1503395
+Node: Readline Movement Commands1505176
+Node: Readline Killing Commands1506134
+Node: Readline Arguments1508050
+Node: Searching1509092
+Node: Readline Init File1511242
+Node: Readline Init File Syntax1512393
+Node: Conditional Init Constructs1527492
+Node: Sample Init File1530015
+Node: Bindable Readline Commands1533129
+Node: Commands For Moving1534181
+Node: Commands For History1535039
+Node: Commands For Text1538434
+Node: Commands For Killing1541157
+Node: Numeric Arguments1543297
+Node: Commands For Completion1544433
+Node: Keyboard Macros1546399
+Node: Miscellaneous Commands1546967
+Node: Readline vi Mode1550815
+Node: Using History Interactively1551725
+Node: History Interaction1552240
+Node: Event Designators1553662
+Node: Word Designators1554799
+Node: Modifiers1556434
+Node: In Memoriam1557655
+Node: Formatting Documentation1558538
+Ref: Formatting Documentation-Footnote-11561914
+Node: Installing GDB1562010
+Node: Requirements1562582
+Ref: Expat1563151
+Ref: MPFR1564101
+Node: Running Configure1566492
+Node: Separate Objdir1570271
+Node: Config Names1573250
+Node: Configure Options1574727
+Node: System-wide configuration1577098
+Node: System-wide Configuration Scripts1579058
+Node: Maintenance Commands1580242
+Ref: maint info breakpoints1581897
+Node: Remote Protocol1602463
+Node: Overview1603155
+Ref: Binary Data1605700
+Node: Packets1608225
+Ref: thread-id syntax1609125
+Ref: extended mode1610570
+Ref: ? packet1610828
+Ref: bc1612294
+Ref: bs1612504
+Ref: read registers packet1614121
+Ref: cycle step packet1615976
+Ref: write register packet1618687
+Ref: step with signal packet1619666
+Ref: vCont packet1621142
+Ref: vCtrlC packet1624375
+Ref: vKill packet1626793
+Ref: X packet1628326
+Ref: insert breakpoint or watchpoint packet1628695
+Node: Stop Reply Packets1633021
+Ref: swbreak stop reason1636272
+Ref: thread create event1639869
+Ref: thread exit event1641072
+Node: General Query Packets1643281
+Ref: qCRC packet1646111
+Ref: QEnvironmentHexEncoded1649264
+Ref: QEnvironmentUnset1650494
+Ref: QEnvironmentReset1651438
+Ref: QSetWorkingDir packet1652382
+Ref: QNonStop1658833
+Ref: QCatchSyscalls1659509
+Ref: QPassSignals1661046
+Ref: QProgramSignals1662253
+Ref: QThreadEvents1663820
+Ref: qSearch memory1665838
+Ref: QStartNoAckMode1666346
+Ref: qSupported1666877
+Ref: multiprocess extensions1682884
+Ref: install tracepoint in tracing1684914
+Ref: qXfer read1689437
+Ref: qXfer auxiliary vector read1691044
+Ref: qXfer btrace read1691392
+Ref: qXfer btrace-conf read1692457
+Ref: qXfer executable filename read1692808
+Ref: qXfer target description read1693423
+Ref: qXfer library list read1693857
+Ref: qXfer svr4 library list read1694513
+Ref: qXfer memory map read1696366
+Ref: qXfer sdata read1696753
+Ref: qXfer siginfo read1697219
+Ref: qXfer spu read1697616
+Ref: qXfer threads read1698140
+Ref: qXfer traceframe info read1698543
+Ref: qXfer unwind info block1698961
+Ref: qXfer fdpic loadmap read1699195
+Ref: qXfer osdata read1699611
+Ref: qXfer write1699765
+Ref: qXfer siginfo write1700857
+Ref: qXfer spu write1701254
+Ref: General Query Packets-Footnote-11704110
+Node: Architecture-Specific Protocol Details1704437
+Node: ARM-Specific Protocol Details1704946
+Node: ARM Breakpoint Kinds1705194
+Node: MIPS-Specific Protocol Details1705525
+Node: MIPS Register packet Format1705808
+Node: MIPS Breakpoint Kinds1706735
+Node: Tracepoint Packets1707153
+Ref: QTEnable1716467
+Ref: QTDisable1716663
+Ref: qTfSTM1722200
+Ref: qTsSTM1722200
+Ref: qTSTMat1723277
+Ref: QTBuffer-size1724428
+Node: Host I/O Packets1726401
+Node: Interrupts1731981
+Ref: interrupting remote targets1732125
+Node: Notification Packets1734293
+Node: Remote Non-Stop1739718
+Node: Packet Acknowledgment1742834
+Node: Examples1744949
+Node: File-I/O Remote Protocol Extension1745543
+Node: File-I/O Overview1746005
+Node: Protocol Basics1748204
+Node: The F Request Packet1750433
+Node: The F Reply Packet1751334
+Node: The Ctrl-C Message1752252
+Node: Console I/O1753878
+Node: List of Supported Calls1755094
+Node: open1755456
+Node: close1757964
+Node: read1758347
+Node: write1758956
+Node: lseek1759727
+Node: rename1760611
+Node: unlink1762018
+Node: stat/fstat1762965
+Node: gettimeofday1763858
+Node: isatty1764294
+Node: system1764890
+Node: Protocol-specific Representation of Datatypes1766432
+Node: Integral Datatypes1766809
+Node: Pointer Values1767616
+Node: Memory Transfer1768320
+Node: struct stat1768940
+Node: struct timeval1771142
+Node: Constants1771659
+Node: Open Flags1772108
+Node: mode_t Values1772449
+Node: Errno Values1772941
+Node: Lseek Flags1773751
+Node: Limits1773936
+Node: File-I/O Examples1774296
+Node: Library List Format1775384
+Node: Library List Format for SVR4 Targets1778166
+Node: Memory Map Format1780633
+Node: Thread List Format1783157
+Node: Traceframe Info Format1784161
+Node: Branch Trace Format1785847
+Node: Branch Trace Configuration Format1787547
+Node: Agent Expressions1788721
+Node: General Bytecode Design1791542
+Node: Bytecode Descriptions1796336
+Node: Using Agent Expressions1811519
+Node: Varying Target Capabilities1813496
+Node: Rationale1814657
+Node: Target Descriptions1822046
+Node: Retrieving Descriptions1823989
+Node: Target Description Format1825074
+Node: Predefined Target Types1834949
+Node: Enum Target Types1836377
+Node: Standard Target Features1837372
+Node: AArch64 Features1839336
+Node: ARC Features1839759
+Node: ARM Features1841820
+Node: i386 Features1843334
+Node: MicroBlaze Features1845549
+Node: MIPS Features1846126
+Node: M68K Features1847317
+Node: NDS32 Features1847978
+Node: Nios II Features1849002
+Node: OpenRISC 1000 Features1849407
+Node: PowerPC Features1849773
+Node: S/390 and System z Features1851104
+Node: Sparc Features1853249
+Node: TIC6x Features1854154
+Node: Operating System Information1854703
+Node: Process list1855538
+Node: Trace File Format1856601
+Node: Index Section Format1859815
+Node: Man Pages1867741
+Node: gdb man1868147
+Node: gdbserver man1874183
+Node: gcore man1881380
+Node: gdbinit man1882322
+Node: Copying1883205
+Node: GNU Free Documentation License1920766
+Node: Concept Index1945913
+Node: Command and Variable Index2083032
 
 End Tag Table
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info-1 ./gdb/doc/gdb.info-1
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info-1	2018-01-02 02:06:41.000000000 +0000
+++ ./gdb/doc/gdb.info-1	2018-01-09 02:08:19.000000000 +0000
@@ -1,6 +1,6 @@
 This is gdb.info, produced by makeinfo version 6.3 from gdb.texinfo.
 
-Copyright (C) 1988-2017 Free Software Foundation, Inc.
+Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -21,9 +21,9 @@ END-INFO-DIR-ENTRY
    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 8.0.1.20180102-git.
+Source-Level Debugger' for GDB (GDB) Version 8.0.90.20180109-git.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -44,9 +44,9 @@ Debugging with GDB
 
 This file describes GDB, the GNU symbolic debugger.
 
-   This is the Tenth Edition, for GDB (GDB) Version 8.0.1.20180102-git.
+   This is the Tenth Edition, for GDB (GDB) Version 8.0.90.20180109-git.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This edition of the GDB manual is dedicated to the memory of Fred
 Fish.  Fred was a long-standing contributor to GDB and to Free software
@@ -450,6 +450,11 @@ was developed by SRI International and t
 Computer Laboratory under DARPA/AFRL contract FA8750-10-C-0237
 ("CTSRD"), as part of the DARPA CRASH research programme.
 
+   The original port to the OpenRISC 1000 is believed to be due to
+Alessandro Forin and Per Bothner.  More recent ports have been the work
+of Jeremy Bennett, Franck Jullien, Stefan Wallentowitz and Stafford
+Horne.
+
 
 File: gdb.info,  Node: Sample Session,  Next: Invocation,  Prev: Summary,  Up: Top
 
@@ -496,7 +501,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 8.0.1.20180102-git, Copyright 1999 Free Software Foundation, Inc...
+     GDB 8.0.90.20180109-git, Copyright 1999 Free Software Foundation, Inc...
      (gdb)
 
 GDB reads only enough symbol data to know where to find the rest when
@@ -837,6 +842,15 @@ though we illustrate the more usual conv
      needed.  This makes startup slower, but makes future operations
      faster.
 
+'--readnever'
+     Do not read each symbol file's symbolic debug information.  This
+     makes startup faster but at the expense of not being able to
+     perform symbolic debugging.  DWARF unwind information is also not
+     read, meaning backtraces may become incomplete or inaccurate.  One
+     use of this is when a user simply wants to do the following
+     sequence: attach, dump core, detach.  Loading the debugging
+     information in this case is an unnecessary cause of delay.
+
 
 File: gdb.info,  Node: Mode Options,  Next: Startup,  Prev: File Options,  Up: Invoking GDB
 
@@ -1326,33 +1340,47 @@ parentheses or other characters that GDB
 notion of a word.  To permit word completion to work in this situation,
 you may enclose words in ''' (single quote marks) in GDB commands.
 
-   The most likely situation where you might need this is in typing the
-name of a C++ function.  This is because C++ allows function overloading
-(multiple definitions of the same function, distinguished by argument
-type).  For example, when you want to set a breakpoint you may need to
-distinguish whether you mean the version of 'name' that takes an 'int'
-parameter, 'name(int)', or the version that takes a 'float' parameter,
-'name(float)'.  To use the word-completion facilities in this situation,
-type a single quote ''' at the beginning of the function name.  This
-alerts GDB that it may need to consider more information than usual when
-you press <TAB> or 'M-?' to request word completion:
-
-     (gdb) b 'bubble( M-?
-     bubble(double,double)    bubble(int,int)
-     (gdb) b 'bubble(
-
-   In some cases, GDB can tell that completing a name requires using
-quotes.  When this happens, GDB inserts the quote for you (while
-completing as much as it can) if you do not type the quote in the first
-place:
-
-     (gdb) b bub <TAB>
-GDB alters your input line to the following, and rings a bell:
-     (gdb) b 'bubble(
-
-In general, GDB can tell that a quote is needed (and inserts it) if you
-have not yet started typing the argument list when you ask for
-completion on an overloaded symbol.
+   A likely situation where you might need this is in typing an
+expression that involves a C++ symbol name with template parameters.
+This is because when completing expressions, GDB treats the '<'
+character as word delimiter, assuming that it's the less-than comparison
+operator (*note C and C++ Operators: C Operators.).
+
+   For example, when you want to call a C++ template function
+interactively using the 'print' or 'call' commands, you may need to
+distinguish whether you mean the version of 'name' that was specialized
+for 'int', 'name<int>()', or the version that was specialized for
+'float', 'name<float>()'.  To use the word-completion facilities in this
+situation, type a single quote ''' at the beginning of the function
+name.  This alerts GDB that it may need to consider more information
+than usual when you press <TAB> or 'M-?' to request word completion:
+
+     (gdb) p 'func< M-?
+     func<int>()    func<float>()
+     (gdb) p 'func<
+
+   When setting breakpoints however (*note Specify Location::), you
+don't usually need to type a quote before the function name, because GDB
+understands that you want to set a breakpoint on a function:
+
+     (gdb) b func< M-?
+     func<int>()    func<float>()
+     (gdb) b func<
+
+   This is true even in the case of typing the name of C++ overloaded
+functions (multiple definitions of the same function, distinguished by
+argument type).  For example, when you want to set a breakpoint you
+don't need to distinguish whether you mean the version of 'name' that
+takes an 'int' parameter, 'name(int)', or the version that takes a
+'float' parameter, 'name(float)'.
+
+     (gdb) b bubble( M-?
+     bubble(int)    bubble(double)
+     (gdb) b bubble(dou M-?
+     bubble(double)
+
+   See *note quoting names:: for a description of other scenarios that
+require quoting.
 
    For more information about overloaded functions, see *note C++
 Expressions: C Plus Plus Expressions.  You can use the command 'set
@@ -1675,9 +1703,12 @@ The _environment._
      Your Program's Environment: Environment.
 
 The _working directory._
-     Your program inherits its working directory from GDB.  You can set
-     the GDB working directory with the 'cd' command in GDB.  *Note Your
-     Program's Working Directory: Working Directory.
+     You can set your program's working directory with the command 'set
+     cwd'.  If you do not set any working directory with this command,
+     your program will inherit GDB's working directory if native
+     debugging, or the remote server's working directory if remote
+     debugging.  *Note Your Program's Working Directory: Working
+     Directory.
 
 The _standard input and output._
      Your program normally uses the same device for standard input and
@@ -1731,8 +1762,16 @@ breakpoints.
      It is sometimes necessary to debug the program during elaboration.
      In these cases, using the 'start' command would stop the execution
      of your program too late, as the program would have already
-     completed the elaboration phase.  Under these circumstances, insert
-     breakpoints in your elaboration code before running your program.
+     completed the elaboration phase.  Under these circumstances, either
+     insert breakpoints in your elaboration code before running your
+     program or use the 'starti' command.
+
+'starti'
+     The 'starti' command does the equivalent of setting a temporary
+     breakpoint at the first instruction of a program's execution and
+     then invoking the 'run' command.  For programs containing an
+     elaboration phase, the 'starti' command will stop execution at the
+     start of the elaboration phase.
 
 'set exec-wrapper WRAPPER'
 'show exec-wrapper'
@@ -1762,7 +1801,7 @@ breakpoints.
 'set startup-with-shell'
 'set startup-with-shell on'
 'set startup-with-shell off'
-'show set startup-with-shell'
+'show startup-with-shell'
      On Unix systems, by default, if a shell is available on your
      target, GDB) uses it to start your program.  Arguments of the 'run'
      command are passed to the shell, which does variable substitution,
@@ -1971,12 +2010,20 @@ environment without having to start GDB 
      wrapper instead of using 'set environment'.  *Note set
      exec-wrapper::, for an example doing just that.
 
+     Environment variables that are set by the user are also transmitted
+     to 'gdbserver' to be used when starting the remote inferior.  *note
+     QEnvironmentHexEncoded::.
+
 'unset environment VARNAME'
      Remove variable VARNAME from the environment to be passed to your
      program.  This is different from 'set env VARNAME ='; 'unset
      environment' removes the variable from the environment, rather than
      assigning it an empty value.
 
+     Environment variables that are unset by the user are also unset on
+     'gdbserver' when starting the remote inferior.  *note
+     QEnvironmentUnset::.
+
    _Warning:_ On Unix systems, GDB runs your program using the shell
 indicated by your 'SHELL' environment variable if it exists (or
 '/bin/sh' if not).  If your 'SHELL' variable names a shell that runs an
@@ -1993,20 +2040,40 @@ File: gdb.info,  Node: Working Directory
 4.5 Your Program's Working Directory
 ====================================
 
-Each time you start your program with 'run', it inherits its working
-directory from the current working directory of GDB.  The GDB working
-directory is initially whatever it inherited from its parent process
-(typically the shell), but you can specify a new working directory in
-GDB with the 'cd' command.
-
-   The GDB working directory also serves as a default for the commands
-that specify files for GDB to operate on.  *Note Commands to Specify
-Files: Files.
+Each time you start your program with 'run', the inferior will be
+initialized with the current working directory specified by the 'set
+cwd' command.  If no directory has been specified by this command, then
+the inferior will inherit GDB's current working directory as its working
+directory if native debugging, or it will inherit the remote server's
+current working directory if remote debugging.
+
+'set cwd [DIRECTORY]'
+     Set the inferior's working directory to DIRECTORY, which will be
+     'glob'-expanded in order to resolve tildes ('~').  If no argument
+     has been specified, the command clears the setting and resets it to
+     an empty state.  This setting has no effect on GDB's working
+     directory, and it only takes effect the next time you start the
+     inferior.  The '~' in DIRECTORY is a short for the "home
+     directory", usually pointed to by the 'HOME' environment variable.
+     On MS-Windows, if 'HOME' is not defined, GDB uses the concatenation
+     of 'HOMEDRIVE' and 'HOMEPATH' as fallback.
+
+     You can also change GDB's current working directory by using the
+     'cd' command.  *Note cd command::
+
+'show cwd'
+     Show the inferior's working directory.  If no directory has been
+     specified by 'set cwd', then the default inferior's working
+     directory is the same as GDB's working directory.
 
 'cd [DIRECTORY]'
      Set the GDB working directory to DIRECTORY.  If not given,
      DIRECTORY uses ''~''.
 
+     The GDB working directory serves as a default for the commands that
+     specify files for GDB to operate on.  *Note Commands to Specify
+     Files: Files.  *Note set cwd command::
+
 'pwd'
      Print the GDB working directory.
 
@@ -3198,15 +3265,16 @@ BREAKPOINT-NUMBER.LOCATION-NUMBER.
      1.1                         y    0x080486a2 in void foo<int>() at t.cc:8
      1.2                         y    0x080486ca in void foo<double>() at t.cc:8
 
-   Each location can be individually enabled or disabled by passing
-BREAKPOINT-NUMBER.LOCATION-NUMBER as argument to the 'enable' and
-'disable' commands.  Note that you cannot delete the individual
-locations from the list, you can only delete the entire list of
-locations that belong to their parent breakpoint (with the 'delete NUM'
-command, where NUM is the number of the parent breakpoint, 1 in the
-above example).  Disabling or enabling the parent breakpoint (*note
-Disabling::) affects all of the locations that belong to that
-breakpoint.
+   You cannot delete the individual locations from a breakpoint.
+However, each location can be individually enabled or disabled by
+passing BREAKPOINT-NUMBER.LOCATION-NUMBER as argument to the 'enable'
+and 'disable' commands.  It's also possible to 'enable' and 'disable' a
+range of LOCATION-NUMBER locations using a BREAKPOINT-NUMBER and two
+LOCATION-NUMBERs, in increasing order, separated by a hyphen, like
+'BREAKPOINT-NUMBER.LOCATION-NUMBER1-LOCATION-NUMBER2', in which case GDB
+acts on all the locations in the range (inclusive).  Disabling or
+enabling the parent breakpoint (*note Disabling::) affects all of the
+locations that belong to that breakpoint.
 
    It's quite common to have a breakpoint inside a shared library.
 Shared libraries can be loaded and unloaded explicitly, and possibly
@@ -3620,6 +3688,23 @@ shared library.  Use the 'catch' command
           command to use to catch such exceptions is 'catch exception
           Pck.Constraint_Error'.
 
+     'handlers'
+          An Ada exception being handled.  If an exception name is
+          specified at the end of the command (eg 'catch handlers
+          Program_Error'), the debugger will stop only when this
+          specific exception is handled.  Otherwise, the debugger stops
+          execution when any Ada exception is handled.
+
+          When inserting a handlers catchpoint on a user-defined
+          exception whose name is identical to one of the exceptions
+          defined by the language, the fully qualified name must be used
+          as the exception name.  Otherwise, GDB will assume that it
+          should stop on the pre-defined exception rather than the
+          user-defined one.  For instance, assuming an exception called
+          'Constraint_Error' is defined in package 'Pck', then the
+          command to use to catch such exceptions handling is 'catch
+          handlers Pck.Constraint_Error'.
+
      'exception unhandled'
           An exception that was raised but is not handled by the
           program.
@@ -6636,6 +6721,21 @@ of specifying a linespec:
      Specifies the line that begins the body of the function FUNCTION.
      For example, in C, this is the line with the open brace.
 
+     By default, in C++ and Ada, FUNCTION is interpreted as specifying
+     all functions named FUNCTION in all scopes.  For C++, this means in
+     all namespaces and classes.  For Ada, this means in all packages.
+
+     For example, assuming a program with C++ symbols named 'A::B::func'
+     and 'B::func', both commands 'break func' and 'break B::func' set a
+     breakpoint on both symbols.
+
+     Commands that accept a linespec let you override this with the
+     '-qualified' option.  For example, 'break -qualified func' sets a
+     breakpoint on a free-function named 'func' ignoring any C++ class
+     methods and namespace functions called 'func'.
+
+     *Note Explicit Locations::.
+
 'FUNCTION:LABEL'
      Specifies the line where LABEL appears in FUNCTION.
 
@@ -6700,6 +6800,29 @@ following table:
      refer to the line that begins the body of the function.  In C, for
      example, this is the line with the open brace.
 
+     By default, in C++ and Ada, FUNCTION is interpreted as specifying
+     all functions named FUNCTION in all scopes.  For C++, this means in
+     all namespaces and classes.  For Ada, this means in all packages.
+
+     For example, assuming a program with C++ symbols named 'A::B::func'
+     and 'B::func', both commands 'break -function func' and
+     'break -function B::func' set a breakpoint on both symbols.
+
+     You can use the '-qualified' flag to override this (see below).
+
+'-qualified'
+
+     This flag makes GDB interpret a function name specified with
+     '-function' as a complete fully-qualified name.
+
+     For example, assuming a C++ program with symbols named 'A::B::func'
+     and 'B::func', the 'break -qualified -function B::func' command
+     sets a breakpoint on 'B::func', only.
+
+     (Note: the '-qualified' option can precede a linespec as well
+     (*note Linespec Locations::), so the particular example above could
+     be simplified as 'break -qualified B::func'.)
+
 '-label LABEL'
      The value specifies the name of a label.  When the function name is
      not specified, the label is searched in the function of the
@@ -6712,8 +6835,8 @@ following table:
      offset is relative to the current line.
 
    Explicit location options may be abbreviated by omitting any
-non-unique trailing characters from the option name, e.g., 'break -s
-main.c -li 3'.
+non-unique trailing characters from the option name, e.g.,
+'break -s main.c -li 3'.
 
 
 File: gdb.info,  Node: Address Locations,  Prev: Explicit Locations,  Up: Specify Location
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info-2 ./gdb/doc/gdb.info-2
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info-2	2018-01-02 02:06:43.000000000 +0000
+++ ./gdb/doc/gdb.info-2	2018-01-09 02:08:21.000000000 +0000
@@ -1,6 +1,6 @@
 This is gdb.info, produced by makeinfo version 6.3 from gdb.texinfo.
 
-Copyright (C) 1988-2017 Free Software Foundation, Inc.
+Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -21,9 +21,9 @@ END-INFO-DIR-ENTRY
    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 8.0.1.20180102-git.
+Source-Level Debugger' for GDB (GDB) Version 8.0.90.20180109-git.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -740,6 +740,18 @@ e.g., because its data type is not compl
 information, GDB will say '<incomplete type>'.  *Note incomplete type:
 Symbols, for more about this.
 
+   If you try to examine or use the value of a (global) variable for
+which GDB has no type information, e.g., because the program includes no
+debug information, GDB displays an error message.  *Note unknown type:
+Symbols, for more about unknown types.  If you cast the variable to its
+declared type, GDB gets the variable's value using the cast-to type as
+the variable's type.  For example, in a C program:
+
+       (gdb) p var
+       'var' has unknown type; cast it to its declared type
+       (gdb) p (float) var
+       $1 = 3.14
+
    If you append '@entry' string to a function parameter name you get
 its value at the time the function got called.  If the value is not
 available an error message is printed.  Entry values are available only
@@ -2267,6 +2279,11 @@ machine.
      Print the names and values of all registers, including
      floating-point and vector registers (in the selected stack frame).
 
+'info registers REGGROUP ...'
+     Print the name and value of the registers in each of the specified
+     REGGROUPs.  The REGGOUP can be any of those returned by 'maint
+     print reggroups' (*note Maintenance Commands::).
+
 'info registers REGNAME ...'
      Print the "relativized" value of each specified register REGNAME.
      As discussed in detail below, register values are normally relative
@@ -2760,7 +2777,9 @@ special command for that.
 
      On GNU/Linux, this command can take into account the value of the
      file '/proc/PID/coredump_filter' when generating the core dump
-     (*note set use-coredump-filter::).
+     (*note set use-coredump-filter::), and by default honors the
+     'VM_DONTDUMP' flag for mappings where it is present in the file
+     '/proc/PID/smaps' (*note set dump-excluded-mappings::).
 
 'set use-coredump-filter on'
 'set use-coredump-filter off'
@@ -2789,6 +2808,14 @@ special command for that.
      '5' (private huge pages) are active.  This will cause these memory
      mappings to be dumped automatically.
 
+'set dump-excluded-mappings on'
+'set dump-excluded-mappings off'
+     If 'on' is specified, GDB will dump memory mappings marked with the
+     'VM_DONTDUMP' flag.  This flag is represented in the file
+     '/proc/PID/smaps' with the acronym 'dd'.
+
+     The default value is 'off'.
+
 
 File: gdb.info,  Node: Character Sets,  Next: Caching Target Data,  Prev: Core File Generation,  Up: Data
 
@@ -3081,7 +3108,9 @@ S, search query size
 
      All values are interpreted in the current language.  This means,
      for example, that if the current source language is C/C++ then
-     searching for the string "hello" includes the trailing '\0'.
+     searching for the string "hello" includes the trailing '\0'.  The
+     null terminator can be removed from searching by using casts, e.g.:
+     '{char[5]}"hello"'.
 
      If the value size is not specified, it is taken from the value's
      type in the current language.  This is useful when one wants to
@@ -3124,7 +3153,11 @@ you get during debugging:
      (gdb) find &hello[0], +sizeof(hello), 'h', 'e', 'l', 'l', 'o'
      0x8049567 <hello.1620>
      0x804956d <hello.1620+6>
-     2 patterns found
+     2 patterns found.
+     (gdb) find &hello[0], +sizeof(hello), {char[5]}"hello"
+     0x8049567 <hello.1620>
+     0x804956d <hello.1620+6>
+     2 patterns found.
      (gdb) find /b1 &hello[0], +sizeof(hello), 'h', 0x65, 'l'
      0x8049567 <hello.1620>
      1 pattern found
@@ -5875,6 +5908,40 @@ designed specifically for use with C++. 
      available choices, or to finish the type list for you.  *Note
      Command Completion: Completion, for details on how to do this.
 
+'Breakpoints in functions with ABI tags'
+
+     The GNU C++ compiler introduced the notion of ABI "tags", which
+     correspond to changes in the ABI of a type, function, or variable
+     that would not otherwise be reflected in a mangled name.  See
+     <https://developers.redhat.com/blog/2015/02/05/gcc5-and-the-c11-abi/>
+     for more detail.
+
+     The ABI tags are visible in C++ demangled names.  For example, a
+     function that returns a std::string:
+
+          std::string function(int);
+
+     when compiled for the C++11 ABI is marked with the 'cxx11' ABI tag,
+     and GDB displays the symbol like this:
+
+          function[abi:cxx11](int)
+
+     You can set a breakpoint on such functions simply as if they had no
+     tag.  For example:
+
+          (gdb) b function(int)
+          Breakpoint 2 at 0x40060d: file main.cc, line 10.
+          (gdb) info breakpoints
+          Num     Type           Disp Enb Address    What
+          1       breakpoint     keep y   0x0040060d in function[abi:cxx11](int)
+                                                     at main.cc:10
+
+     On the rare occasion you need to disambiguate between different ABI
+     tags, you can do so by simply including the ABI tag in the function
+     name, like:
+
+          (gdb) b ambiguous[abi:other_tag](int)
+
 
 File: gdb.info,  Node: Decimal Floating Point,  Prev: Debugging C Plus Plus,  Up: C
 
@@ -6228,8 +6295,6 @@ of.
 
         * Method calls cannot be made via traits.
 
-        * Trait objects cannot be created or inspected.
-
         * Operator overloading is not implemented.
 
         * When debugging in a monomorphized function, you cannot use the
@@ -7307,597 +7372,3 @@ privileges, using the command '"set writ
 Under these circumstances, you should make a backup copy of the core
 file before inspecting it with GDB.
 
-
-File: gdb.info,  Node: Ravenscar Profile,  Next: Ada Glitches,  Prev: Ada Tasks and Core Files,  Up: Ada
-
-15.4.10.9 Tasking Support when using the Ravenscar Profile
-..........................................................
-
-The "Ravenscar Profile" is a subset of the Ada tasking features,
-specifically designed for systems with safety-critical real-time
-requirements.
-
-'set ravenscar task-switching on'
-     Allows task switching when debugging a program that uses the
-     Ravenscar Profile.  This is the default.
-
-'set ravenscar task-switching off'
-     Turn off task switching when debugging a program that uses the
-     Ravenscar Profile.  This is mostly intended to disable the code
-     that adds support for the Ravenscar Profile, in case a bug in
-     either GDB or in the Ravenscar runtime is preventing GDB from
-     working properly.  To be effective, this command should be run
-     before the program is started.
-
-'show ravenscar task-switching'
-     Show whether it is possible to switch from task to task in a
-     program using the Ravenscar Profile.
-
-
-File: gdb.info,  Node: Ada Glitches,  Prev: Ravenscar Profile,  Up: Ada
-
-15.4.10.10 Known Peculiarities of Ada Mode
-..........................................
-
-Besides the omissions listed previously (*note Omissions from Ada::), we
-know of several problems with and limitations of Ada mode in GDB, some
-of which will be fixed with planned future releases of the debugger and
-the GNU Ada compiler.
-
-   * Static constants that the compiler chooses not to materialize as
-     objects in storage are invisible to the debugger.
-
-   * Named parameter associations in function argument lists are ignored
-     (the argument lists are treated as positional).
-
-   * Many useful library packages are currently invisible to the
-     debugger.
-
-   * Fixed-point arithmetic, conversions, input, and output is carried
-     out using floating-point arithmetic, and may give results that only
-     approximate those on the host machine.
-
-   * The GNAT compiler never generates the prefix 'Standard' for any of
-     the standard symbols defined by the Ada language.  GDB knows about
-     this: it will strip the prefix from names when you use it, and will
-     never look for a name you have so qualified among local symbols,
-     nor match against symbols in other packages or subprograms.  If you
-     have defined entities anywhere in your program other than
-     parameters and local variables whose simple names match names in
-     'Standard', GNAT's lack of qualification here can cause confusion.
-     When this happens, you can usually resolve the confusion by
-     qualifying the problematic names with package 'Standard'
-     explicitly.
-
-   Older versions of the compiler sometimes generate erroneous debugging
-information, resulting in the debugger incorrectly printing the value of
-affected entities.  In some cases, the debugger is able to work around
-an issue automatically.  In other cases, the debugger is able to work
-around the issue, but the work-around has to be specifically enabled.
-
-'set ada trust-PAD-over-XVS on'
-     Configure GDB to strictly follow the GNAT encoding when computing
-     the value of Ada entities, particularly when 'PAD' and 'PAD___XVS'
-     types are involved (see 'ada/exp_dbug.ads' in the GCC sources for a
-     complete description of the encoding used by the GNAT compiler).
-     This is the default.
-
-'set ada trust-PAD-over-XVS off'
-     This is related to the encoding using by the GNAT compiler.  If GDB
-     sometimes prints the wrong value for certain entities, changing
-     'ada trust-PAD-over-XVS' to 'off' activates a work-around which may
-     fix the issue.  It is always safe to set 'ada trust-PAD-over-XVS'
-     to 'off', but this incurs a slight performance penalty, so it is
-     recommended to leave this setting to 'on' unless necessary.
-
-   Internally, the debugger also relies on the compiler following a
-number of conventions known as the 'GNAT Encoding', all documented in
-'gcc/ada/exp_dbug.ads' in the GCC sources.  This encoding describes how
-the debugging information should be generated for certain types.  In
-particular, this convention makes use of "descriptive types", which are
-artificial types generated purely to help the debugger.
-
-   These encodings were defined at a time when the debugging information
-format used was not powerful enough to describe some of the more complex
-types available in Ada.  Since DWARF allows us to express nearly all Ada
-features, the long-term goal is to slowly replace these descriptive
-types by their pure DWARF equivalent.  To facilitate that transition, a
-new maintenance option is available to force the debugger to ignore
-those descriptive types.  It allows the user to quickly evaluate how
-well GDB works without them.
-
-'maintenance ada set ignore-descriptive-types [on|off]'
-     Control whether the debugger should ignore descriptive types.  The
-     default is not to ignore descriptives types ('off').
-
-'maintenance ada show ignore-descriptive-types'
-     Show if descriptive types are ignored by GDB.
-
-
-File: gdb.info,  Node: Unsupported Languages,  Prev: Supported Languages,  Up: Languages
-
-15.5 Unsupported Languages
-==========================
-
-In addition to the other fully-supported programming languages, GDB also
-provides a pseudo-language, called 'minimal'.  It does not represent a
-real programming language, but provides a set of capabilities close to
-what the C or assembly languages provide.  This should allow most simple
-operations to be performed while debugging an application that uses a
-language currently not supported by GDB.
-
-   If the language is set to 'auto', GDB will automatically select this
-language if the current frame corresponds to an unsupported language.
-
-
-File: gdb.info,  Node: Symbols,  Next: Altering,  Prev: Languages,  Up: Top
-
-16 Examining the Symbol Table
-*****************************
-
-The commands described in this chapter allow you to inquire about the
-symbols (names of variables, functions and types) defined in your
-program.  This information is inherent in the text of your program and
-does not change as your program executes.  GDB finds it in your
-program's symbol table, in the file indicated when you started GDB
-(*note Choosing Files: File Options.), or by one of the file-management
-commands (*note Commands to Specify Files: Files.).
-
-   Occasionally, you may need to refer to symbols that contain unusual
-characters, which GDB ordinarily treats as word delimiters.  The most
-frequent case is in referring to static variables in other source files
-(*note Program Variables: Variables.).  File names are recorded in
-object files as debugging symbols, but GDB would ordinarily parse a
-typical file name, like 'foo.c', as the three words 'foo' '.'  'c'.  To
-allow GDB to recognize 'foo.c' as a single symbol, enclose it in single
-quotes; for example,
-
-     p 'foo.c'::x
-
-looks up the value of 'x' in the scope of the file 'foo.c'.
-
-'set case-sensitive on'
-'set case-sensitive off'
-'set case-sensitive auto'
-     Normally, when GDB looks up symbols, it matches their names with
-     case sensitivity determined by the current source language.
-     Occasionally, you may wish to control that.  The command 'set
-     case-sensitive' lets you do that by specifying 'on' for
-     case-sensitive matches or 'off' for case-insensitive ones.  If you
-     specify 'auto', case sensitivity is reset to the default suitable
-     for the source language.  The default is case-sensitive matches for
-     all languages except for Fortran, for which the default is
-     case-insensitive matches.
-
-'show case-sensitive'
-     This command shows the current setting of case sensitivity for
-     symbols lookups.
-
-'set print type methods'
-'set print type methods on'
-'set print type methods off'
-     Normally, when GDB prints a class, it displays any methods declared
-     in that class.  You can control this behavior either by passing the
-     appropriate flag to 'ptype', or using 'set print type methods'.
-     Specifying 'on' will cause GDB to display the methods; this is the
-     default.  Specifying 'off' will cause GDB to omit the methods.
-
-'show print type methods'
-     This command shows the current setting of method display when
-     printing classes.
-
-'set print type typedefs'
-'set print type typedefs on'
-'set print type typedefs off'
-
-     Normally, when GDB prints a class, it displays any typedefs defined
-     in that class.  You can control this behavior either by passing the
-     appropriate flag to 'ptype', or using 'set print type typedefs'.
-     Specifying 'on' will cause GDB to display the typedef definitions;
-     this is the default.  Specifying 'off' will cause GDB to omit the
-     typedef definitions.  Note that this controls whether the typedef
-     definition itself is printed, not whether typedef names are
-     substituted when printing other types.
-
-'show print type typedefs'
-     This command shows the current setting of typedef display when
-     printing classes.
-
-'info address SYMBOL'
-     Describe where the data for SYMBOL is stored.  For a register
-     variable, this says which register it is kept in.  For a
-     non-register local variable, this prints the stack-frame offset at
-     which the variable is always stored.
-
-     Note the contrast with 'print &SYMBOL', which does not work at all
-     for a register variable, and for a stack local variable prints the
-     exact address of the current instantiation of the variable.
-
-'info symbol ADDR'
-     Print the name of a symbol which is stored at the address ADDR.  If
-     no symbol is stored exactly at ADDR, GDB prints the nearest symbol
-     and an offset from it:
-
-          (gdb) info symbol 0x54320
-          _initialize_vx + 396 in section .text
-
-     This is the opposite of the 'info address' command.  You can use it
-     to find out the name of a variable or a function given its address.
-
-     For dynamically linked executables, the name of executable or
-     shared library containing the symbol is also printed:
-
-          (gdb) info symbol 0x400225
-          _start + 5 in section .text of /tmp/a.out
-          (gdb) info symbol 0x2aaaac2811cf
-          __read_nocancel + 6 in section .text of /usr/lib64/libc.so.6
-
-'demangle [-l LANGUAGE] [--] NAME'
-     Demangle NAME.  If LANGUAGE is provided it is the name of the
-     language to demangle NAME in.  Otherwise NAME is demangled in the
-     current language.
-
-     The '--' option specifies the end of options, and is useful when
-     NAME begins with a dash.
-
-     The parameter 'demangle-style' specifies how to interpret the kind
-     of mangling used.  *Note Print Settings::.
-
-'whatis[/FLAGS] [ARG]'
-     Print the data type of ARG, which can be either an expression or a
-     name of a data type.  With no argument, print the data type of '$',
-     the last value in the value history.
-
-     If ARG is an expression (*note Expressions: Expressions.), it is
-     not actually evaluated, and any side-effecting operations (such as
-     assignments or function calls) inside it do not take place.
-
-     If ARG is a variable or an expression, 'whatis' prints its literal
-     type as it is used in the source code.  If the type was defined
-     using a 'typedef', 'whatis' will _not_ print the data type
-     underlying the 'typedef'.  If the type of the variable or the
-     expression is a compound data type, such as 'struct' or 'class',
-     'whatis' never prints their fields or methods.  It just prints the
-     'struct'/'class' name (a.k.a. its "tag").  If you want to see the
-     members of such a compound data type, use 'ptype'.
-
-     If ARG is a type name that was defined using 'typedef', 'whatis'
-     "unrolls" only one level of that 'typedef'.  Unrolling means that
-     'whatis' will show the underlying type used in the 'typedef'
-     declaration of ARG.  However, if that underlying type is also a
-     'typedef', 'whatis' will not unroll it.
-
-     For C code, the type names may also have the form 'class
-     CLASS-NAME', 'struct STRUCT-TAG', 'union UNION-TAG' or 'enum
-     ENUM-TAG'.
-
-     FLAGS can be used to modify how the type is displayed.  Available
-     flags are:
-
-     'r'
-          Display in "raw" form.  Normally, GDB substitutes template
-          parameters and typedefs defined in a class when printing the
-          class' members.  The '/r' flag disables this.
-
-     'm'
-          Do not print methods defined in the class.
-
-     'M'
-          Print methods defined in the class.  This is the default, but
-          the flag exists in case you change the default with 'set print
-          type methods'.
-
-     't'
-          Do not print typedefs defined in the class.  Note that this
-          controls whether the typedef definition itself is printed, not
-          whether typedef names are substituted when printing other
-          types.
-
-     'T'
-          Print typedefs defined in the class.  This is the default, but
-          the flag exists in case you change the default with 'set print
-          type typedefs'.
-
-'ptype[/FLAGS] [ARG]'
-     'ptype' accepts the same arguments as 'whatis', but prints a
-     detailed description of the type, instead of just the name of the
-     type.  *Note Expressions: Expressions.
-
-     Contrary to 'whatis', 'ptype' always unrolls any 'typedef's in its
-     argument declaration, whether the argument is a variable,
-     expression, or a data type.  This means that 'ptype' of a variable
-     or an expression will not print literally its type as present in
-     the source code--use 'whatis' for that.  'typedef's at the pointer
-     or reference targets are also unrolled.  Only 'typedef's of fields,
-     methods and inner 'class typedef's of 'struct's, 'class'es and
-     'union's are not unrolled even with 'ptype'.
-
-     For example, for this variable declaration:
-
-          typedef double real_t;
-          struct complex { real_t real; double imag; };
-          typedef struct complex complex_t;
-          complex_t var;
-          real_t *real_pointer_var;
-
-     the two commands give this output:
-
-          (gdb) whatis var
-          type = complex_t
-          (gdb) ptype var
-          type = struct complex {
-              real_t real;
-              double imag;
-          }
-          (gdb) whatis complex_t
-          type = struct complex
-          (gdb) whatis struct complex
-          type = struct complex
-          (gdb) ptype struct complex
-          type = struct complex {
-              real_t real;
-              double imag;
-          }
-          (gdb) whatis real_pointer_var
-          type = real_t *
-          (gdb) ptype real_pointer_var
-          type = double *
-
-     As with 'whatis', using 'ptype' without an argument refers to the
-     type of '$', the last value in the value history.
-
-     Sometimes, programs use opaque data types or incomplete
-     specifications of complex data structure.  If the debug information
-     included in the program does not allow GDB to display a full
-     declaration of the data type, it will say '<incomplete type>'.  For
-     example, given these declarations:
-
-              struct foo;
-              struct foo *fooptr;
-
-     but no definition for 'struct foo' itself, GDB will say:
-
-            (gdb) ptype foo
-            $1 = <incomplete type>
-
-     "Incomplete type" is C terminology for data types that are not
-     completely specified.
-
-'info types REGEXP'
-'info types'
-     Print a brief description of all types whose names match the
-     regular expression REGEXP (or all types in your program, if you
-     supply no argument).  Each complete typename is matched as though
-     it were a complete line; thus, 'i type value' gives information on
-     all types in your program whose names include the string 'value',
-     but 'i type ^value$' gives information only on types whose complete
-     name is 'value'.
-
-     This command differs from 'ptype' in two ways: first, like
-     'whatis', it does not print a detailed description; second, it
-     lists all source files where a type is defined.
-
-'info type-printers'
-     Versions of GDB that ship with Python scripting enabled may have
-     "type printers" available.  When using 'ptype' or 'whatis', these
-     printers are consulted when the name of a type is needed.  *Note
-     Type Printing API::, for more information on writing type printers.
-
-     'info type-printers' displays all the available type printers.
-
-'enable type-printer NAME...'
-'disable type-printer NAME...'
-     These commands can be used to enable or disable type printers.
-
-'info scope LOCATION'
-     List all the variables local to a particular scope.  This command
-     accepts a LOCATION argument--a function name, a source line, or an
-     address preceded by a '*', and prints all the variables local to
-     the scope defined by that location.  (*Note Specify Location::, for
-     details about supported forms of LOCATION.)  For example:
-
-          (gdb) info scope command_line_handler
-          Scope for command_line_handler:
-          Symbol rl is an argument at stack/frame offset 8, length 4.
-          Symbol linebuffer is in static storage at address 0x150a18, length 4.
-          Symbol linelength is in static storage at address 0x150a1c, length 4.
-          Symbol p is a local variable in register $esi, length 4.
-          Symbol p1 is a local variable in register $ebx, length 4.
-          Symbol nline is a local variable in register $edx, length 4.
-          Symbol repeat is a local variable at frame offset -8, length 4.
-
-     This command is especially useful for determining what data to
-     collect during a "trace experiment", see *note collect: Tracepoint
-     Actions.
-
-'info source'
-     Show information about the current source file--that is, the source
-     file for the function containing the current point of execution:
-        * the name of the source file, and the directory containing it,
-        * the directory it was compiled in,
-        * its length, in lines,
-        * which programming language it is written in,
-        * if the debug information provides it, the program that
-          compiled the file (which may include, e.g., the compiler
-          version and command line arguments),
-        * whether the executable includes debugging information for that
-          file, and if so, what format the information is in (e.g.,
-          STABS, Dwarf 2, etc.), and
-        * whether the debugging information includes information about
-          preprocessor macros.
-
-'info sources'
-     Print the names of all source files in your program for which there
-     is debugging information, organized into two lists: files whose
-     symbols have already been read, and files whose symbols will be
-     read when needed.
-
-'info functions'
-     Print the names and data types of all defined functions.
-
-'info functions REGEXP'
-     Print the names and data types of all defined functions whose names
-     contain a match for regular expression REGEXP.  Thus, 'info fun
-     step' finds all functions whose names include 'step'; 'info fun
-     ^step' finds those whose names start with 'step'.  If a function
-     name contains characters that conflict with the regular expression
-     language (e.g. 'operator*()'), they may be quoted with a backslash.
-
-'info variables'
-     Print the names and data types of all variables that are defined
-     outside of functions (i.e. excluding local variables).
-
-'info variables REGEXP'
-     Print the names and data types of all variables (except for local
-     variables) whose names contain a match for regular expression
-     REGEXP.
-
-'info classes'
-'info classes REGEXP'
-     Display all Objective-C classes in your program, or (with the
-     REGEXP argument) all those matching a particular regular
-     expression.
-
-'info selectors'
-'info selectors REGEXP'
-     Display all Objective-C selectors in your program, or (with the
-     REGEXP argument) all those matching a particular regular
-     expression.
-
-'set opaque-type-resolution on'
-     Tell GDB to resolve opaque types.  An opaque type is a type
-     declared as a pointer to a 'struct', 'class', or 'union'--for
-     example, 'struct MyType *'--that is used in one source file
-     although the full declaration of 'struct MyType' is in another
-     source file.  The default is on.
-
-     A change in the setting of this subcommand will not take effect
-     until the next time symbols for a file are loaded.
-
-'set opaque-type-resolution off'
-     Tell GDB not to resolve opaque types.  In this case, the type is
-     printed as follows:
-          {<no data fields>}
-
-'show opaque-type-resolution'
-     Show whether opaque types are resolved or not.
-
-'set print symbol-loading'
-'set print symbol-loading full'
-'set print symbol-loading brief'
-'set print symbol-loading off'
-     The 'set print symbol-loading' command allows you to control the
-     printing of messages when GDB loads symbol information.  By default
-     a message is printed for the executable and one for each shared
-     library, and normally this is what you want.  However, when
-     debugging apps with large numbers of shared libraries these
-     messages can be annoying.  When set to 'brief' a message is printed
-     for each executable, and when GDB loads a collection of shared
-     libraries at once it will only print one message regardless of the
-     number of shared libraries.  When set to 'off' no messages are
-     printed.
-
-'show print symbol-loading'
-     Show whether messages will be printed when a GDB command entered
-     from the keyboard causes symbol information to be loaded.
-
-'maint print symbols [-pc ADDRESS] [FILENAME]'
-'maint print symbols [-objfile OBJFILE] [-source SOURCE] [--] [FILENAME]'
-'maint print psymbols [-objfile OBJFILE] [-pc ADDRESS] [--] [FILENAME]'
-'maint print psymbols [-objfile OBJFILE] [-source SOURCE] [--] [FILENAME]'
-'maint print msymbols [-objfile OBJFILE] [--] [FILENAME]'
-     Write a dump of debugging symbol data into the file FILENAME or the
-     terminal if FILENAME is unspecified.  If '-objfile OBJFILE' is
-     specified, only dump symbols for that objfile.  If '-pc ADDRESS' is
-     specified, only dump symbols for the file with code at that
-     address.  Note that ADDRESS may be a symbol like 'main'.  If
-     '-source SOURCE' is specified, only dump symbols for that source
-     file.
-
-     These commands are used to debug the GDB symbol-reading code.
-     These commands do not modify internal GDB state, therefore 'maint
-     print symbols' will only print symbols for already expanded symbol
-     tables.  You can use the command 'info sources' to find out which
-     files these are.  If you use 'maint print psymbols' instead, the
-     dump shows information about symbols that GDB only knows
-     partially--that is, symbols defined in files that GDB has skimmed,
-     but not yet read completely.  Finally, 'maint print msymbols' just
-     dumps "minimal symbols", e.g., "ELF symbols".
-
-     *Note Commands to Specify Files: Files, for a discussion of how GDB
-     reads symbols (in the description of 'symbol-file').
-
-'maint info symtabs [ REGEXP ]'
-'maint info psymtabs [ REGEXP ]'
-
-     List the 'struct symtab' or 'struct partial_symtab' structures
-     whose names match REGEXP.  If REGEXP is not given, list them all.
-     The output includes expressions which you can copy into a GDB
-     debugging this one to examine a particular structure in more
-     detail.  For example:
-
-          (gdb) maint info psymtabs dwarf2read
-          { objfile /home/gnu/build/gdb/gdb
-            ((struct objfile *) 0x82e69d0)
-            { psymtab /home/gnu/src/gdb/dwarf2read.c
-              ((struct partial_symtab *) 0x8474b10)
-              readin no
-              fullname (null)
-              text addresses 0x814d3c8 -- 0x8158074
-              globals (* (struct partial_symbol **) 0x8507a08 @ 9)
-              statics (* (struct partial_symbol **) 0x40e95b78 @ 2882)
-              dependencies (none)
-            }
-          }
-          (gdb) maint info symtabs
-          (gdb)
-     We see that there is one partial symbol table whose filename
-     contains the string 'dwarf2read', belonging to the 'gdb'
-     executable; and we see that GDB has not read in any symtabs yet at
-     all.  If we set a breakpoint on a function, that will cause GDB to
-     read the symtab for the compilation unit containing that function:
-
-          (gdb) break dwarf2_psymtab_to_symtab
-          Breakpoint 1 at 0x814e5da: file /home/gnu/src/gdb/dwarf2read.c,
-          line 1574.
-          (gdb) maint info symtabs
-          { objfile /home/gnu/build/gdb/gdb
-            ((struct objfile *) 0x82e69d0)
-            { symtab /home/gnu/src/gdb/dwarf2read.c
-              ((struct symtab *) 0x86c1f38)
-              dirname (null)
-              fullname (null)
-              blockvector ((struct blockvector *) 0x86c1bd0) (primary)
-              linetable ((struct linetable *) 0x8370fa0)
-              debugformat DWARF 2
-            }
-          }
-          (gdb)
-
-'maint info line-table [ REGEXP ]'
-
-     List the 'struct linetable' from all 'struct symtab' instances
-     whose name matches REGEXP.  If REGEXP is not given, list the
-     'struct linetable' from all 'struct symtab'.
-
-'maint set symbol-cache-size SIZE'
-     Set the size of the symbol cache to SIZE.  The default size is
-     intended to be good enough for debugging most applications.  This
-     option exists to allow for experimenting with different sizes.
-
-'maint show symbol-cache-size'
-     Show the size of the symbol cache.
-
-'maint print symbol-cache'
-     Print the contents of the symbol cache.  This is useful when
-     debugging symbol cache issues.
-
-'maint print symbol-cache-statistics'
-     Print symbol cache usage statistics.  This helps determine how well
-     the cache is being utilized.
-
-'maint flush-symbol-cache'
-     Flush the contents of the symbol cache, all entries are removed.
-     This command is useful when debugging the symbol cache.  It is also
-     useful when collecting performance data.
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info-3 ./gdb/doc/gdb.info-3
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info-3	2018-01-02 02:06:45.000000000 +0000
+++ ./gdb/doc/gdb.info-3	2018-01-09 02:08:23.000000000 +0000
@@ -1,6 +1,6 @@
 This is gdb.info, produced by makeinfo version 6.3 from gdb.texinfo.
 
-Copyright (C) 1988-2017 Free Software Foundation, Inc.
+Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -21,9 +21,9 @@ END-INFO-DIR-ENTRY
    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 8.0.1.20180102-git.
+Source-Level Debugger' for GDB (GDB) Version 8.0.90.20180109-git.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -37,6 +37,743 @@ this GNU Manual.  Buying copies from GNU
 developing GNU and promoting software freedom."
 
 
+File: gdb.info,  Node: Ravenscar Profile,  Next: Ada Glitches,  Prev: Ada Tasks and Core Files,  Up: Ada
+
+15.4.10.9 Tasking Support when using the Ravenscar Profile
+..........................................................
+
+The "Ravenscar Profile" is a subset of the Ada tasking features,
+specifically designed for systems with safety-critical real-time
+requirements.
+
+'set ravenscar task-switching on'
+     Allows task switching when debugging a program that uses the
+     Ravenscar Profile.  This is the default.
+
+'set ravenscar task-switching off'
+     Turn off task switching when debugging a program that uses the
+     Ravenscar Profile.  This is mostly intended to disable the code
+     that adds support for the Ravenscar Profile, in case a bug in
+     either GDB or in the Ravenscar runtime is preventing GDB from
+     working properly.  To be effective, this command should be run
+     before the program is started.
+
+'show ravenscar task-switching'
+     Show whether it is possible to switch from task to task in a
+     program using the Ravenscar Profile.
+
+
+File: gdb.info,  Node: Ada Glitches,  Prev: Ravenscar Profile,  Up: Ada
+
+15.4.10.10 Known Peculiarities of Ada Mode
+..........................................
+
+Besides the omissions listed previously (*note Omissions from Ada::), we
+know of several problems with and limitations of Ada mode in GDB, some
+of which will be fixed with planned future releases of the debugger and
+the GNU Ada compiler.
+
+   * Static constants that the compiler chooses not to materialize as
+     objects in storage are invisible to the debugger.
+
+   * Named parameter associations in function argument lists are ignored
+     (the argument lists are treated as positional).
+
+   * Many useful library packages are currently invisible to the
+     debugger.
+
+   * Fixed-point arithmetic, conversions, input, and output is carried
+     out using floating-point arithmetic, and may give results that only
+     approximate those on the host machine.
+
+   * The GNAT compiler never generates the prefix 'Standard' for any of
+     the standard symbols defined by the Ada language.  GDB knows about
+     this: it will strip the prefix from names when you use it, and will
+     never look for a name you have so qualified among local symbols,
+     nor match against symbols in other packages or subprograms.  If you
+     have defined entities anywhere in your program other than
+     parameters and local variables whose simple names match names in
+     'Standard', GNAT's lack of qualification here can cause confusion.
+     When this happens, you can usually resolve the confusion by
+     qualifying the problematic names with package 'Standard'
+     explicitly.
+
+   Older versions of the compiler sometimes generate erroneous debugging
+information, resulting in the debugger incorrectly printing the value of
+affected entities.  In some cases, the debugger is able to work around
+an issue automatically.  In other cases, the debugger is able to work
+around the issue, but the work-around has to be specifically enabled.
+
+'set ada trust-PAD-over-XVS on'
+     Configure GDB to strictly follow the GNAT encoding when computing
+     the value of Ada entities, particularly when 'PAD' and 'PAD___XVS'
+     types are involved (see 'ada/exp_dbug.ads' in the GCC sources for a
+     complete description of the encoding used by the GNAT compiler).
+     This is the default.
+
+'set ada trust-PAD-over-XVS off'
+     This is related to the encoding using by the GNAT compiler.  If GDB
+     sometimes prints the wrong value for certain entities, changing
+     'ada trust-PAD-over-XVS' to 'off' activates a work-around which may
+     fix the issue.  It is always safe to set 'ada trust-PAD-over-XVS'
+     to 'off', but this incurs a slight performance penalty, so it is
+     recommended to leave this setting to 'on' unless necessary.
+
+   Internally, the debugger also relies on the compiler following a
+number of conventions known as the 'GNAT Encoding', all documented in
+'gcc/ada/exp_dbug.ads' in the GCC sources.  This encoding describes how
+the debugging information should be generated for certain types.  In
+particular, this convention makes use of "descriptive types", which are
+artificial types generated purely to help the debugger.
+
+   These encodings were defined at a time when the debugging information
+format used was not powerful enough to describe some of the more complex
+types available in Ada.  Since DWARF allows us to express nearly all Ada
+features, the long-term goal is to slowly replace these descriptive
+types by their pure DWARF equivalent.  To facilitate that transition, a
+new maintenance option is available to force the debugger to ignore
+those descriptive types.  It allows the user to quickly evaluate how
+well GDB works without them.
+
+'maintenance ada set ignore-descriptive-types [on|off]'
+     Control whether the debugger should ignore descriptive types.  The
+     default is not to ignore descriptives types ('off').
+
+'maintenance ada show ignore-descriptive-types'
+     Show if descriptive types are ignored by GDB.
+
+
+File: gdb.info,  Node: Unsupported Languages,  Prev: Supported Languages,  Up: Languages
+
+15.5 Unsupported Languages
+==========================
+
+In addition to the other fully-supported programming languages, GDB also
+provides a pseudo-language, called 'minimal'.  It does not represent a
+real programming language, but provides a set of capabilities close to
+what the C or assembly languages provide.  This should allow most simple
+operations to be performed while debugging an application that uses a
+language currently not supported by GDB.
+
+   If the language is set to 'auto', GDB will automatically select this
+language if the current frame corresponds to an unsupported language.
+
+
+File: gdb.info,  Node: Symbols,  Next: Altering,  Prev: Languages,  Up: Top
+
+16 Examining the Symbol Table
+*****************************
+
+The commands described in this chapter allow you to inquire about the
+symbols (names of variables, functions and types) defined in your
+program.  This information is inherent in the text of your program and
+does not change as your program executes.  GDB finds it in your
+program's symbol table, in the file indicated when you started GDB
+(*note Choosing Files: File Options.), or by one of the file-management
+commands (*note Commands to Specify Files: Files.).
+
+   Occasionally, you may need to refer to symbols that contain unusual
+characters, which GDB ordinarily treats as word delimiters.  The most
+frequent case is in referring to static variables in other source files
+(*note Program Variables: Variables.).  File names are recorded in
+object files as debugging symbols, but GDB would ordinarily parse a
+typical file name, like 'foo.c', as the three words 'foo' '.'  'c'.  To
+allow GDB to recognize 'foo.c' as a single symbol, enclose it in single
+quotes; for example,
+
+     p 'foo.c'::x
+
+looks up the value of 'x' in the scope of the file 'foo.c'.
+
+'set case-sensitive on'
+'set case-sensitive off'
+'set case-sensitive auto'
+     Normally, when GDB looks up symbols, it matches their names with
+     case sensitivity determined by the current source language.
+     Occasionally, you may wish to control that.  The command 'set
+     case-sensitive' lets you do that by specifying 'on' for
+     case-sensitive matches or 'off' for case-insensitive ones.  If you
+     specify 'auto', case sensitivity is reset to the default suitable
+     for the source language.  The default is case-sensitive matches for
+     all languages except for Fortran, for which the default is
+     case-insensitive matches.
+
+'show case-sensitive'
+     This command shows the current setting of case sensitivity for
+     symbols lookups.
+
+'set print type methods'
+'set print type methods on'
+'set print type methods off'
+     Normally, when GDB prints a class, it displays any methods declared
+     in that class.  You can control this behavior either by passing the
+     appropriate flag to 'ptype', or using 'set print type methods'.
+     Specifying 'on' will cause GDB to display the methods; this is the
+     default.  Specifying 'off' will cause GDB to omit the methods.
+
+'show print type methods'
+     This command shows the current setting of method display when
+     printing classes.
+
+'set print type nested-type-limit LIMIT'
+'set print type nested-type-limit unlimited'
+     Set the limit of displayed nested types that the type printer will
+     show.  A LIMIT of 'unlimited' or '-1' will show all nested
+     definitions.  By default, the type printer will not show any nested
+     types defined in classes.
+
+'show print type nested-type-limit'
+     This command shows the current display limit of nested types when
+     printing classes.
+
+'set print type typedefs'
+'set print type typedefs on'
+'set print type typedefs off'
+
+     Normally, when GDB prints a class, it displays any typedefs defined
+     in that class.  You can control this behavior either by passing the
+     appropriate flag to 'ptype', or using 'set print type typedefs'.
+     Specifying 'on' will cause GDB to display the typedef definitions;
+     this is the default.  Specifying 'off' will cause GDB to omit the
+     typedef definitions.  Note that this controls whether the typedef
+     definition itself is printed, not whether typedef names are
+     substituted when printing other types.
+
+'show print type typedefs'
+     This command shows the current setting of typedef display when
+     printing classes.
+
+'info address SYMBOL'
+     Describe where the data for SYMBOL is stored.  For a register
+     variable, this says which register it is kept in.  For a
+     non-register local variable, this prints the stack-frame offset at
+     which the variable is always stored.
+
+     Note the contrast with 'print &SYMBOL', which does not work at all
+     for a register variable, and for a stack local variable prints the
+     exact address of the current instantiation of the variable.
+
+'info symbol ADDR'
+     Print the name of a symbol which is stored at the address ADDR.  If
+     no symbol is stored exactly at ADDR, GDB prints the nearest symbol
+     and an offset from it:
+
+          (gdb) info symbol 0x54320
+          _initialize_vx + 396 in section .text
+
+     This is the opposite of the 'info address' command.  You can use it
+     to find out the name of a variable or a function given its address.
+
+     For dynamically linked executables, the name of executable or
+     shared library containing the symbol is also printed:
+
+          (gdb) info symbol 0x400225
+          _start + 5 in section .text of /tmp/a.out
+          (gdb) info symbol 0x2aaaac2811cf
+          __read_nocancel + 6 in section .text of /usr/lib64/libc.so.6
+
+'demangle [-l LANGUAGE] [--] NAME'
+     Demangle NAME.  If LANGUAGE is provided it is the name of the
+     language to demangle NAME in.  Otherwise NAME is demangled in the
+     current language.
+
+     The '--' option specifies the end of options, and is useful when
+     NAME begins with a dash.
+
+     The parameter 'demangle-style' specifies how to interpret the kind
+     of mangling used.  *Note Print Settings::.
+
+'whatis[/FLAGS] [ARG]'
+     Print the data type of ARG, which can be either an expression or a
+     name of a data type.  With no argument, print the data type of '$',
+     the last value in the value history.
+
+     If ARG is an expression (*note Expressions: Expressions.), it is
+     not actually evaluated, and any side-effecting operations (such as
+     assignments or function calls) inside it do not take place.
+
+     If ARG is a variable or an expression, 'whatis' prints its literal
+     type as it is used in the source code.  If the type was defined
+     using a 'typedef', 'whatis' will _not_ print the data type
+     underlying the 'typedef'.  If the type of the variable or the
+     expression is a compound data type, such as 'struct' or 'class',
+     'whatis' never prints their fields or methods.  It just prints the
+     'struct'/'class' name (a.k.a. its "tag").  If you want to see the
+     members of such a compound data type, use 'ptype'.
+
+     If ARG is a type name that was defined using 'typedef', 'whatis'
+     "unrolls" only one level of that 'typedef'.  Unrolling means that
+     'whatis' will show the underlying type used in the 'typedef'
+     declaration of ARG.  However, if that underlying type is also a
+     'typedef', 'whatis' will not unroll it.
+
+     For C code, the type names may also have the form 'class
+     CLASS-NAME', 'struct STRUCT-TAG', 'union UNION-TAG' or 'enum
+     ENUM-TAG'.
+
+     FLAGS can be used to modify how the type is displayed.  Available
+     flags are:
+
+     'r'
+          Display in "raw" form.  Normally, GDB substitutes template
+          parameters and typedefs defined in a class when printing the
+          class' members.  The '/r' flag disables this.
+
+     'm'
+          Do not print methods defined in the class.
+
+     'M'
+          Print methods defined in the class.  This is the default, but
+          the flag exists in case you change the default with 'set print
+          type methods'.
+
+     't'
+          Do not print typedefs defined in the class.  Note that this
+          controls whether the typedef definition itself is printed, not
+          whether typedef names are substituted when printing other
+          types.
+
+     'T'
+          Print typedefs defined in the class.  This is the default, but
+          the flag exists in case you change the default with 'set print
+          type typedefs'.
+
+     'o'
+          Print the offsets and sizes of fields in a struct, similar to
+          what the 'pahole' tool does.  This option implies the '/tm'
+          flags.
+
+          For example, given the following declarations:
+
+               struct tuv
+               {
+                 int a1;
+                 char *a2;
+                 int a3;
+               };
+
+               struct xyz
+               {
+                 int f1;
+                 char f2;
+                 void *f3;
+                 struct tuv f4;
+               };
+
+               union qwe
+               {
+                 struct tuv fff1;
+                 struct xyz fff2;
+               };
+
+               struct tyu
+               {
+                 int a1 : 1;
+                 int a2 : 3;
+                 int a3 : 23;
+                 char a4 : 2;
+                 int64_t a5;
+                 int a6 : 5;
+                 int64_t a7 : 3;
+               };
+
+          Issuing a 'ptype /o struct tuv' command would print:
+
+               (gdb) ptype /o struct tuv
+               /* offset    |  size */  type = struct tuv {
+               /*    0      |     4 */    int a1;
+               /* XXX  4-byte hole  */
+               /*    8      |     8 */    char *a2;
+               /*   16      |     4 */    int a3;
+
+                                          /* total size (bytes):   24 */
+                                        }
+
+          Notice the format of the first column of comments.  There, you
+          can find two parts separated by the '|' character: the
+          _offset_, which indicates where the field is located inside
+          the struct, in bytes, and the _size_ of the field.  Another
+          interesting line is the marker of a _hole_ in the struct,
+          indicating that it may be possible to pack the struct and make
+          it use less space by reorganizing its fields.
+
+          It is also possible to print offsets inside an union:
+
+               (gdb) ptype /o union qwe
+               /* offset    |  size */  type = union qwe {
+               /*                24 */    struct tuv {
+               /*    0      |     4 */        int a1;
+               /* XXX  4-byte hole  */
+               /*    8      |     8 */        char *a2;
+               /*   16      |     4 */        int a3;
+
+                                              /* total size (bytes):   24 */
+                                          } fff1;
+               /*                40 */    struct xyz {
+               /*    0      |     4 */        int f1;
+               /*    4      |     1 */        char f2;
+               /* XXX  3-byte hole  */
+               /*    8      |     8 */        void *f3;
+               /*   16      |    24 */        struct tuv {
+               /*   16      |     4 */            int a1;
+               /* XXX  4-byte hole  */
+               /*   24      |     8 */            char *a2;
+               /*   32      |     4 */            int a3;
+
+                                                  /* total size (bytes):   24 */
+                                              } f4;
+
+                                              /* total size (bytes):   40 */
+                                          } fff2;
+
+                                          /* total size (bytes):   40 */
+                                        }
+
+          In this case, since 'struct tuv' and 'struct xyz' occupy the
+          same space (because we are dealing with an union), the offset
+          is not printed for them.  However, you can still examine the
+          offset of each of these structures' fields.
+
+          Another useful scenario is printing the offsets of a struct
+          containing bitfields:
+
+               (gdb) ptype /o struct tyu
+               /* offset    |  size */  type = struct tyu {
+               /*    0:31   |     4 */    int a1 : 1;
+               /*    0:28   |     4 */    int a2 : 3;
+               /*    0: 5   |     4 */    int a3 : 23;
+               /*    3: 3   |     1 */    signed char a4 : 2;
+               /* XXX  3-bit hole   */
+               /* XXX  4-byte hole  */
+               /*    8      |     8 */    int64_t a5;
+               /*   16:27   |     4 */    int a6 : 5;
+               /*   16:56   |     8 */    int64_t a7 : 3;
+
+                                          /* total size (bytes):   24 */
+                                        }
+
+          Note how the offset information is now extended to also
+          include how many bits are left to be used in each bitfield.
+
+'ptype[/FLAGS] [ARG]'
+     'ptype' accepts the same arguments as 'whatis', but prints a
+     detailed description of the type, instead of just the name of the
+     type.  *Note Expressions: Expressions.
+
+     Contrary to 'whatis', 'ptype' always unrolls any 'typedef's in its
+     argument declaration, whether the argument is a variable,
+     expression, or a data type.  This means that 'ptype' of a variable
+     or an expression will not print literally its type as present in
+     the source code--use 'whatis' for that.  'typedef's at the pointer
+     or reference targets are also unrolled.  Only 'typedef's of fields,
+     methods and inner 'class typedef's of 'struct's, 'class'es and
+     'union's are not unrolled even with 'ptype'.
+
+     For example, for this variable declaration:
+
+          typedef double real_t;
+          struct complex { real_t real; double imag; };
+          typedef struct complex complex_t;
+          complex_t var;
+          real_t *real_pointer_var;
+
+     the two commands give this output:
+
+          (gdb) whatis var
+          type = complex_t
+          (gdb) ptype var
+          type = struct complex {
+              real_t real;
+              double imag;
+          }
+          (gdb) whatis complex_t
+          type = struct complex
+          (gdb) whatis struct complex
+          type = struct complex
+          (gdb) ptype struct complex
+          type = struct complex {
+              real_t real;
+              double imag;
+          }
+          (gdb) whatis real_pointer_var
+          type = real_t *
+          (gdb) ptype real_pointer_var
+          type = double *
+
+     As with 'whatis', using 'ptype' without an argument refers to the
+     type of '$', the last value in the value history.
+
+     Sometimes, programs use opaque data types or incomplete
+     specifications of complex data structure.  If the debug information
+     included in the program does not allow GDB to display a full
+     declaration of the data type, it will say '<incomplete type>'.  For
+     example, given these declarations:
+
+              struct foo;
+              struct foo *fooptr;
+
+     but no definition for 'struct foo' itself, GDB will say:
+
+            (gdb) ptype foo
+            $1 = <incomplete type>
+
+     "Incomplete type" is C terminology for data types that are not
+     completely specified.
+
+     Othertimes, information about a variable's type is completely
+     absent from the debug information included in the program.  This
+     most often happens when the program or library where the variable
+     is defined includes no debug information at all.  GDB knows the
+     variable exists from inspecting the linker/loader symbol table
+     (e.g., the ELF dynamic symbol table), but such symbols do not
+     contain type information.  Inspecting the type of a (global)
+     variable for which GDB has no type information shows:
+
+            (gdb) ptype var
+            type = <data variable, no debug info>
+
+     *Note no debug info variables: Variables, for how to print the
+     values of such variables.
+
+'info types REGEXP'
+'info types'
+     Print a brief description of all types whose names match the
+     regular expression REGEXP (or all types in your program, if you
+     supply no argument).  Each complete typename is matched as though
+     it were a complete line; thus, 'i type value' gives information on
+     all types in your program whose names include the string 'value',
+     but 'i type ^value$' gives information only on types whose complete
+     name is 'value'.
+
+     This command differs from 'ptype' in two ways: first, like
+     'whatis', it does not print a detailed description; second, it
+     lists all source files where a type is defined.
+
+'info type-printers'
+     Versions of GDB that ship with Python scripting enabled may have
+     "type printers" available.  When using 'ptype' or 'whatis', these
+     printers are consulted when the name of a type is needed.  *Note
+     Type Printing API::, for more information on writing type printers.
+
+     'info type-printers' displays all the available type printers.
+
+'enable type-printer NAME...'
+'disable type-printer NAME...'
+     These commands can be used to enable or disable type printers.
+
+'info scope LOCATION'
+     List all the variables local to a particular scope.  This command
+     accepts a LOCATION argument--a function name, a source line, or an
+     address preceded by a '*', and prints all the variables local to
+     the scope defined by that location.  (*Note Specify Location::, for
+     details about supported forms of LOCATION.)  For example:
+
+          (gdb) info scope command_line_handler
+          Scope for command_line_handler:
+          Symbol rl is an argument at stack/frame offset 8, length 4.
+          Symbol linebuffer is in static storage at address 0x150a18, length 4.
+          Symbol linelength is in static storage at address 0x150a1c, length 4.
+          Symbol p is a local variable in register $esi, length 4.
+          Symbol p1 is a local variable in register $ebx, length 4.
+          Symbol nline is a local variable in register $edx, length 4.
+          Symbol repeat is a local variable at frame offset -8, length 4.
+
+     This command is especially useful for determining what data to
+     collect during a "trace experiment", see *note collect: Tracepoint
+     Actions.
+
+'info source'
+     Show information about the current source file--that is, the source
+     file for the function containing the current point of execution:
+        * the name of the source file, and the directory containing it,
+        * the directory it was compiled in,
+        * its length, in lines,
+        * which programming language it is written in,
+        * if the debug information provides it, the program that
+          compiled the file (which may include, e.g., the compiler
+          version and command line arguments),
+        * whether the executable includes debugging information for that
+          file, and if so, what format the information is in (e.g.,
+          STABS, Dwarf 2, etc.), and
+        * whether the debugging information includes information about
+          preprocessor macros.
+
+'info sources'
+     Print the names of all source files in your program for which there
+     is debugging information, organized into two lists: files whose
+     symbols have already been read, and files whose symbols will be
+     read when needed.
+
+'info functions'
+     Print the names and data types of all defined functions.
+
+'info functions REGEXP'
+     Print the names and data types of all defined functions whose names
+     contain a match for regular expression REGEXP.  Thus, 'info fun
+     step' finds all functions whose names include 'step'; 'info fun
+     ^step' finds those whose names start with 'step'.  If a function
+     name contains characters that conflict with the regular expression
+     language (e.g. 'operator*()'), they may be quoted with a backslash.
+
+'info variables'
+     Print the names and data types of all variables that are defined
+     outside of functions (i.e. excluding local variables).
+
+'info variables REGEXP'
+     Print the names and data types of all variables (except for local
+     variables) whose names contain a match for regular expression
+     REGEXP.
+
+'info classes'
+'info classes REGEXP'
+     Display all Objective-C classes in your program, or (with the
+     REGEXP argument) all those matching a particular regular
+     expression.
+
+'info selectors'
+'info selectors REGEXP'
+     Display all Objective-C selectors in your program, or (with the
+     REGEXP argument) all those matching a particular regular
+     expression.
+
+'set opaque-type-resolution on'
+     Tell GDB to resolve opaque types.  An opaque type is a type
+     declared as a pointer to a 'struct', 'class', or 'union'--for
+     example, 'struct MyType *'--that is used in one source file
+     although the full declaration of 'struct MyType' is in another
+     source file.  The default is on.
+
+     A change in the setting of this subcommand will not take effect
+     until the next time symbols for a file are loaded.
+
+'set opaque-type-resolution off'
+     Tell GDB not to resolve opaque types.  In this case, the type is
+     printed as follows:
+          {<no data fields>}
+
+'show opaque-type-resolution'
+     Show whether opaque types are resolved or not.
+
+'set print symbol-loading'
+'set print symbol-loading full'
+'set print symbol-loading brief'
+'set print symbol-loading off'
+     The 'set print symbol-loading' command allows you to control the
+     printing of messages when GDB loads symbol information.  By default
+     a message is printed for the executable and one for each shared
+     library, and normally this is what you want.  However, when
+     debugging apps with large numbers of shared libraries these
+     messages can be annoying.  When set to 'brief' a message is printed
+     for each executable, and when GDB loads a collection of shared
+     libraries at once it will only print one message regardless of the
+     number of shared libraries.  When set to 'off' no messages are
+     printed.
+
+'show print symbol-loading'
+     Show whether messages will be printed when a GDB command entered
+     from the keyboard causes symbol information to be loaded.
+
+'maint print symbols [-pc ADDRESS] [FILENAME]'
+'maint print symbols [-objfile OBJFILE] [-source SOURCE] [--] [FILENAME]'
+'maint print psymbols [-objfile OBJFILE] [-pc ADDRESS] [--] [FILENAME]'
+'maint print psymbols [-objfile OBJFILE] [-source SOURCE] [--] [FILENAME]'
+'maint print msymbols [-objfile OBJFILE] [--] [FILENAME]'
+     Write a dump of debugging symbol data into the file FILENAME or the
+     terminal if FILENAME is unspecified.  If '-objfile OBJFILE' is
+     specified, only dump symbols for that objfile.  If '-pc ADDRESS' is
+     specified, only dump symbols for the file with code at that
+     address.  Note that ADDRESS may be a symbol like 'main'.  If
+     '-source SOURCE' is specified, only dump symbols for that source
+     file.
+
+     These commands are used to debug the GDB symbol-reading code.
+     These commands do not modify internal GDB state, therefore 'maint
+     print symbols' will only print symbols for already expanded symbol
+     tables.  You can use the command 'info sources' to find out which
+     files these are.  If you use 'maint print psymbols' instead, the
+     dump shows information about symbols that GDB only knows
+     partially--that is, symbols defined in files that GDB has skimmed,
+     but not yet read completely.  Finally, 'maint print msymbols' just
+     dumps "minimal symbols", e.g., "ELF symbols".
+
+     *Note Commands to Specify Files: Files, for a discussion of how GDB
+     reads symbols (in the description of 'symbol-file').
+
+'maint info symtabs [ REGEXP ]'
+'maint info psymtabs [ REGEXP ]'
+
+     List the 'struct symtab' or 'struct partial_symtab' structures
+     whose names match REGEXP.  If REGEXP is not given, list them all.
+     The output includes expressions which you can copy into a GDB
+     debugging this one to examine a particular structure in more
+     detail.  For example:
+
+          (gdb) maint info psymtabs dwarf2read
+          { objfile /home/gnu/build/gdb/gdb
+            ((struct objfile *) 0x82e69d0)
+            { psymtab /home/gnu/src/gdb/dwarf2read.c
+              ((struct partial_symtab *) 0x8474b10)
+              readin no
+              fullname (null)
+              text addresses 0x814d3c8 -- 0x8158074
+              globals (* (struct partial_symbol **) 0x8507a08 @ 9)
+              statics (* (struct partial_symbol **) 0x40e95b78 @ 2882)
+              dependencies (none)
+            }
+          }
+          (gdb) maint info symtabs
+          (gdb)
+     We see that there is one partial symbol table whose filename
+     contains the string 'dwarf2read', belonging to the 'gdb'
+     executable; and we see that GDB has not read in any symtabs yet at
+     all.  If we set a breakpoint on a function, that will cause GDB to
+     read the symtab for the compilation unit containing that function:
+
+          (gdb) break dwarf2_psymtab_to_symtab
+          Breakpoint 1 at 0x814e5da: file /home/gnu/src/gdb/dwarf2read.c,
+          line 1574.
+          (gdb) maint info symtabs
+          { objfile /home/gnu/build/gdb/gdb
+            ((struct objfile *) 0x82e69d0)
+            { symtab /home/gnu/src/gdb/dwarf2read.c
+              ((struct symtab *) 0x86c1f38)
+              dirname (null)
+              fullname (null)
+              blockvector ((struct blockvector *) 0x86c1bd0) (primary)
+              linetable ((struct linetable *) 0x8370fa0)
+              debugformat DWARF 2
+            }
+          }
+          (gdb)
+
+'maint info line-table [ REGEXP ]'
+
+     List the 'struct linetable' from all 'struct symtab' instances
+     whose name matches REGEXP.  If REGEXP is not given, list the
+     'struct linetable' from all 'struct symtab'.
+
+'maint set symbol-cache-size SIZE'
+     Set the size of the symbol cache to SIZE.  The default size is
+     intended to be good enough for debugging most applications.  This
+     option exists to allow for experimenting with different sizes.
+
+'maint show symbol-cache-size'
+     Show the size of the symbol cache.
+
+'maint print symbol-cache'
+     Print the contents of the symbol cache.  This is useful when
+     debugging symbol cache issues.
+
+'maint print symbol-cache-statistics'
+     Print symbol cache usage statistics.  This helps determine how well
+     the cache is being utilized.
+
+'maint flush-symbol-cache'
+     Flush the contents of the symbol cache, all entries are removed.
+     This command is useful when debugging the symbol cache.  It is also
+     useful when collecting performance data.
+
+
 File: gdb.info,  Node: Altering,  Next: GDB Files,  Prev: Symbols,  Up: Top
 
 17 Altering Execution
@@ -380,12 +1117,58 @@ controlled by the 'set unwind-on-termina
      Show the current setting of stack unwinding in the functions called
      by GDB.
 
-   Sometimes, a function you wish to call is actually a "weak alias" for
-another function.  In such case, GDB might not pick up the type
-information, including the types of the function arguments, which causes
-GDB to call the inferior function incorrectly.  As a result, the called
-function will function erroneously and may even crash.  A solution to
-that is to use the name of the aliased function instead.
+17.5.1 Calling functions with no debug info
+-------------------------------------------
+
+Sometimes, a function you wish to call is missing debug information.  In
+such case, GDB does not know the type of the function, including the
+types of the function's parameters.  To avoid calling the inferior
+function incorrectly, which could result in the called function
+functioning erroneously and even crash, GDB refuses to call the function
+unless you tell it the type of the function.
+
+   For prototyped (i.e. ANSI/ISO style) functions, there are two ways to
+do that.  The simplest is to cast the call to the function's declared
+return type.  For example:
+
+     (gdb) p getenv ("PATH")
+     'getenv' has unknown return type; cast the call to its declared return type
+     (gdb) p (char *) getenv ("PATH")
+     $1 = 0x7fffffffe7ba "/usr/local/bin:/"...
+
+   Casting the return type of a no-debug function is equivalent to
+casting the function to a pointer to a prototyped function that has a
+prototype that matches the types of the passed-in arguments, and calling
+that.  I.e., the call above is equivalent to:
+
+     (gdb) p ((char * (*) (const char *)) getenv) ("PATH")
+
+and given this prototyped C or C++ function with float parameters:
+
+     float multiply (float v1, float v2) { return v1 * v2; }
+
+these calls are equivalent:
+
+     (gdb) p (float) multiply (2.0f, 3.0f)
+     (gdb) p ((float (*) (float, float)) multiply) (2.0f, 3.0f)
+
+   If the function you wish to call is declared as unprototyped (i.e.
+old K&R style), you must use the cast-to-function-pointer syntax, so
+that GDB knows that it needs to apply default argument promotions
+(promote float arguments to double).  *Note float promotion: ABI. For
+example, given this unprototyped C function with float parameters, and
+no debug info:
+
+     float
+     multiply_noproto (v1, v2)
+       float v1, v2;
+     {
+       return v1 * v2;
+     }
+
+you call it like this:
+
+       (gdb) p ((float (*) ()) multiply_noproto) (2.0f, 3.0f)
 
 
 File: gdb.info,  Node: Patching,  Next: Compiling and Injecting Code,  Prev: Calling,  Up: Altering
@@ -685,10 +1468,11 @@ C code examples and caveats
 
 GDB needs to find GCC for the inferior being debugged which may not be
 obvious for remote targets of different architecture than where GDB is
-running.  Environment variable 'PATH' ('PATH' from shell that executed
-GDB, not the one set by GDB command 'set environment').  *Note
-Environment::.  'PATH' on GDB host is searched for GCC binary matching
-the target architecture and operating system.
+running.  Environment variable 'PATH' on GDB host is searched for GCC
+binary matching the target architecture and operating system.  This
+search can be overriden by 'set compile-gcc' GDB command below.  'PATH'
+is taken from shell that executed GDB, it is not the value set by GDB
+command 'set environment').  *Note Environment::.
 
    Specifically 'PATH' is searched for binaries matching regular
 expression 'ARCH(-[^-]*)?-OS-gcc' according to the inferior target being
@@ -697,6 +1481,25 @@ example both 'i386' and 'x86_64' targets
 '(x86_64|i.86)' and both 's390' and 's390x' targets look for pattern
 's390x?'.  OS is currently supported only for pattern 'linux(-gnu)?'.
 
+   On Posix hosts the compiler driver GDB needs to find also shared
+library 'libcc1.so' from the compiler.  It is searched in default shared
+library search path (overridable with usual environment variable
+'LD_LIBRARY_PATH'), unrelated to 'PATH' or 'set compile-gcc' settings.
+Contrary to it 'libcc1plugin.so' is found according to the installation
+of the found compiler -- as possibly specified by the 'set compile-gcc'
+command.
+
+'set compile-gcc'
+     Set compilation command used for compiling and injecting code with
+     the 'compile' commands.  If this option is not set (it is set to an
+     empty string), the search described above will occur -- that is the
+     default.
+
+'show compile-gcc'
+     Displays the current compile command GCC driver filename.  If set,
+     it is the main command 'gcc', found usually for example under name
+     'x86_64-linux-gnu-gcc'.
+
 
 File: gdb.info,  Node: GDB Files,  Next: Targets,  Prev: Altering,  Up: Top
 
@@ -814,6 +1617,12 @@ files are useful.
      load symbol table information, if you want to be sure GDB has the
      entire symbol table available.
 
+'symbol-file [ -readnever ] FILENAME'
+'file [ -readnever ] FILENAME'
+     You can instruct GDB to never read the symbolic information
+     contained in FILENAME by using the '-readnever' option.  *Note
+     --readnever::.
+
 'core-file [FILENAME]'
 'core'
      Specify the whereabouts of a core dump file to be used as the
@@ -831,7 +1640,7 @@ files are useful.
      command (*note Killing the Child Process: Kill Process.).
 
 'add-symbol-file FILENAME ADDRESS'
-'add-symbol-file FILENAME ADDRESS [ -readnow ]'
+'add-symbol-file FILENAME ADDRESS [ -readnow | -readnever ]'
 'add-symbol-file FILENAME ADDRESS -s SECTION ADDRESS ...'
      The 'add-symbol-file' command reads additional symbol table
      information from the file FILENAME.  You would use this command
@@ -1584,10 +2393,13 @@ the index to a file, then you can put it
 
    To create an index file, use the 'save gdb-index' command:
 
-'save gdb-index DIRECTORY'
-     Create an index file for each symbol file currently known by GDB.
-     Each file is named after its corresponding symbol file, with
-     '.gdb-index' appended, and is written into the given DIRECTORY.
+'save gdb-index [-dwarf-5] DIRECTORY'
+     Create index files for all symbol files currently known by GDB.
+     For each known SYMBOL-FILE, this command by default creates it
+     produces a single file 'SYMBOL-FILE.gdb-index'.  If you invoke this
+     command with the '-dwarf-5' option, it produces 2 files:
+     'SYMBOL-FILE.debug_names' and 'SYMBOL-FILE.debug_str'.  The files
+     are created in the given DIRECTORY.
 
    Once you have created an index file you can merge it into your symbol
 file, here named 'symfile', using 'objcopy':
@@ -1595,6 +2407,14 @@ file, here named 'symfile', using 'objco
      $ objcopy --add-section .gdb_index=symfile.gdb-index \
          --set-section-flags .gdb_index=readonly symfile symfile
 
+   Or for '-dwarf-5':
+
+     $ objcopy --dump-section .debug_str=symfile.debug_str.new symfile
+     $ cat symfile.debug_str >>symfile.debug_str.new
+     $ objcopy --add-section .debug_names=symfile.gdb-index \
+         --set-section-flags .debug_names=readonly \
+         --update-section .debug_str=symfile.debug_str.new symfile symfile
+
    GDB will normally ignore older versions of '.gdb_index' sections that
 have been deprecated.  Usually they are deprecated because they are
 missing a new feature or have performance issues.  To tell GDB to use a
@@ -2436,6 +3256,13 @@ environment:
 
      $ gdbserver --wrapper env LD_PRELOAD=libtest.so -- :2222 ./testprog
 
+   The '--selftest' option runs the self tests in 'gdbserver':
+
+     $ gdbserver --selftest
+     Ran 2 unit tests, 0 failed
+
+   These tests are disabled in release.
+
 20.3.2 Connecting to 'gdbserver'
 --------------------------------
 
@@ -2872,6 +3699,24 @@ storage-address'                        
 'disable-randomization''QDisableRandomization''set
                                              disable-randomization'
                                              
+'startup-with-shell' 'QStartupWithShell'     'set
+                                             startup-with-shell'
+                                             
+'environment-hex-encoded''QEnvironmentHexEncoded''set
+                                             environment'
+                                             
+'environment-unset'  'QEnvironmentUnset'     'unset
+                                             environment'
+                                             
+'environment-reset'  'QEnvironmentReset'     'Reset the
+                                             inferior
+                                             environment
+                                             (i.e., unset
+                                             user-set
+                                             variables)'
+                                             
+'set-working-dir'    'QSetWorkingDir'        'set cwd'
+                                             
 'conditional-breakpoints-packet''Z0 and Z1'  'Support for
                                              target-side
                                              breakpoint
@@ -3657,10 +4502,10 @@ type information in the command.  Here's
 problem:
 
      (gdb) print 'cygwin1!__argv'
-     $1 = 268572168
+     'cygwin1!__argv' has unknown type; cast it to its declared type
 
      (gdb) x 'cygwin1!__argv'
-     0x10021610:      "\230y\""
+     'cygwin1!__argv' has unknown type; cast it to its declared type
 
    And two possible solutions:
 
@@ -3897,6 +4742,7 @@ send an arbitrary command to the simulat
 * M68K::                        Motorola M68K
 * MicroBlaze::			Xilinx MicroBlaze
 * MIPS Embedded::               MIPS Embedded
+* OpenRISC 1000::               OpenRISC 1000 (or1k)
 * PowerPC Embedded::            PowerPC Embedded
 * AVR::                         Atmel AVR
 * CRIS::                        CRIS
@@ -4054,7 +4900,7 @@ need to do this.)
      Show MicroBlaze-specific debugging level.
 
 
-File: gdb.info,  Node: MIPS Embedded,  Next: PowerPC Embedded,  Prev: MicroBlaze,  Up: Embedded Processors
+File: gdb.info,  Node: MIPS Embedded,  Next: OpenRISC 1000,  Prev: MicroBlaze,  Up: Embedded Processors
 
 21.3.5 MIPS Embedded
 --------------------
@@ -4086,9 +4932,38 @@ GDB supports these special commands for 
      mipsfpu'.
 
 
-File: gdb.info,  Node: PowerPC Embedded,  Next: AVR,  Prev: MIPS Embedded,  Up: Embedded Processors
+File: gdb.info,  Node: OpenRISC 1000,  Next: PowerPC Embedded,  Prev: MIPS Embedded,  Up: Embedded Processors
+
+21.3.6 OpenRISC 1000
+--------------------
+
+The OpenRISC 1000 provides a free RISC instruction set architecture.  It
+is mainly provided as a soft-core which can run on Xilinx, Altera and
+other FPGA's.
+
+   GDB for OpenRISC supports the below commands when connecting to a
+target:
+
+'target sim'
 
-21.3.6 PowerPC Embedded
+     Runs the builtin CPU simulator which can run very basic programs
+     but does not support most hardware functions like MMU. For more
+     complex use cases the user is advised to run an external target,
+     and connect using 'target remote'.
+
+     Example: 'target sim'
+
+'set debug or1k'
+     Toggle whether to display OpenRISC-specific debugging messages from
+     the OpenRISC target support subsystem.
+
+'show debug or1k'
+     Show whether OpenRISC-specific debugging messages are enabled.
+
+
+File: gdb.info,  Node: PowerPC Embedded,  Next: AVR,  Prev: OpenRISC 1000,  Up: Embedded Processors
+
+21.3.7 PowerPC Embedded
 -----------------------
 
 GDB supports using the DVC (Data Value Compare) register to implement in
@@ -4160,7 +5035,7 @@ command.
 
 File: gdb.info,  Node: AVR,  Next: CRIS,  Prev: PowerPC Embedded,  Up: Embedded Processors
 
-21.3.7 Atmel AVR
+21.3.8 Atmel AVR
 ----------------
 
 When configured for debugging the Atmel AVR, GDB supports the following
@@ -4173,7 +5048,7 @@ AVR-specific commands:
 
 File: gdb.info,  Node: CRIS,  Next: Super-H,  Prev: AVR,  Up: Embedded Processors
 
-21.3.8 CRIS
+21.3.9 CRIS
 -----------
 
 When configured for debugging CRIS, GDB provides the following
@@ -4206,8 +5081,8 @@ CRIS-specific commands:
 
 File: gdb.info,  Node: Super-H,  Prev: CRIS,  Up: Embedded Processors
 
-21.3.9 Renesas Super-H
-----------------------
+21.3.10 Renesas Super-H
+-----------------------
 
 For the Renesas Super-H processor, GDB provides these commands:
 
@@ -4246,6 +5121,7 @@ uses of GDB with the architecture, both 
 * SPU::                Cell Broadband Engine SPU architecture
 * PowerPC::
 * Nios II::
+* Sparc64::
 
 
 File: gdb.info,  Node: AArch64,  Next: i386,  Up: Architectures
@@ -4571,7 +5447,7 @@ and 'f3' for '$dl1' and so on.
 64-bit wide Extended Floating Point Registers ('f32' through 'f63').
 
 
-File: gdb.info,  Node: Nios II,  Prev: PowerPC,  Up: Architectures
+File: gdb.info,  Node: Nios II,  Next: Sparc64,  Prev: PowerPC,  Up: Architectures
 
 21.4.8 Nios II
 --------------
@@ -4587,6 +5463,72 @@ following special commands:
      Show the current setting of Nios II debugging messages.
 
 
+File: gdb.info,  Node: Sparc64,  Prev: Nios II,  Up: Architectures
+
+21.4.9 Sparc64
+--------------
+
+21.4.9.1 ADI Support
+....................
+
+The M7 processor supports an Application Data Integrity (ADI) feature
+that detects invalid data accesses.  When software allocates memory and
+enables ADI on the allocated memory, it chooses a 4-bit version number,
+sets the version in the upper 4 bits of the 64-bit pointer to that data,
+and stores the 4-bit version in every cacheline of that data.  Hardware
+saves the latter in spare bits in the cache and memory hierarchy.  On
+each load and store, the processor compares the upper 4 VA (virtual
+address) bits to the cacheline's version.  If there is a mismatch, the
+processor generates a version mismatch trap which can be either precise
+or disrupting.  The trap is an error condition which the kernel delivers
+to the process as a SIGSEGV signal.
+
+   Note that only 64-bit applications can use ADI and need to be built
+with ADI-enabled.
+
+   Values of the ADI version tags, which are in granularity of a
+cacheline (64 bytes), can be viewed or modified.
+
+'adi (examine | x) [ / N ] ADDR'
+
+     The 'adi examine' command displays the value of one ADI version tag
+     per cacheline.
+
+     N is a decimal integer specifying the number in bytes; the default
+     is 1.  It specifies how much ADI version information, at the ratio
+     of 1:ADI block size, to display.
+
+     ADDR is the address in user address space where you want GDB to
+     begin displaying the ADI version tags.
+
+     Below is an example of displaying ADI versions of variable
+     "shmaddr".
+
+          (gdb) adi x/100 shmaddr
+             0xfff800010002c000:     0 0
+
+'adi (assign | a) [ / N ] ADDR = TAG'
+
+     The 'adi assign' command is used to assign new ADI version tag to
+     an address.
+
+     N is a decimal integer specifying the number in bytes; the default
+     is 1.  It specifies how much ADI version information, at the ratio
+     of 1:ADI block size, to modify.
+
+     ADDR is the address in user address space where you want GDB to
+     begin modifying the ADI version tags.
+
+     TAG is the new ADI version tag.
+
+     For example, do the following to modify then verify ADI versions of
+     variable "shmaddr":
+
+          (gdb) adi a/100 shmaddr = 7
+          (gdb) adi x/100 shmaddr
+             0xfff800010002c000:     7 7
+
+
 File: gdb.info,  Node: Controlling GDB,  Next: Extending GDB,  Prev: Configurations,  Up: Top
 
 22 Controlling GDB
@@ -5515,6 +6457,13 @@ commands.
      printed on the GDB standard output stream.  The default is off.
 'show debug remote'
      Displays the state of display of remote packets.
+
+'set debug separate-debug-file'
+     Turns on or off display of debug output about separate debug file
+     search.
+'show debug separate-debug-file'
+     Displays the state of separate debug file search debug output.
+
 'set debug serial'
      Turns on or off display of GDB serial debugging info.  The default
      is off.
@@ -6190,639 +7139,3 @@ interpreter:
      This method is based on the 'execfile' Python built-in function,
      and thus is always available.
 
-
-File: gdb.info,  Node: Python API,  Next: Python Auto-loading,  Prev: Python Commands,  Up: Python
-
-23.2.2 Python API
------------------
-
-You can get quick online help for GDB's Python API by issuing the
-command 'python help (gdb)'.
-
-   Functions and methods which have two or more optional arguments allow
-them to be specified using keyword syntax.  This allows passing some
-optional arguments while skipping others.  Example:
-'gdb.some_function ('foo', bar = 1, baz = 2)'.
-
-* Menu:
-
-* Basic Python::                Basic Python Functions.
-* Exception Handling::          How Python exceptions are translated.
-* Values From Inferior::        Python representation of values.
-* Types In Python::             Python representation of types.
-* Pretty Printing API::         Pretty-printing values.
-* Selecting Pretty-Printers::   How GDB chooses a pretty-printer.
-* Writing a Pretty-Printer::    Writing a Pretty-Printer.
-* Type Printing API::		Pretty-printing types.
-* Frame Filter API::            Filtering Frames.
-* Frame Decorator API::         Decorating Frames.
-* Writing a Frame Filter::      Writing a Frame Filter.
-* Unwinding Frames in Python::  Writing frame unwinder.
-* Xmethods In Python::          Adding and replacing methods of C++ classes.
-* Xmethod API::                 Xmethod types.
-* Writing an Xmethod::          Writing an xmethod.
-* Inferiors In Python::         Python representation of inferiors (processes)
-* Events In Python::            Listening for events from GDB.
-* Threads In Python::           Accessing inferior threads from Python.
-* Recordings In Python::        Accessing recordings from Python.
-* Commands In Python::          Implementing new commands in Python.
-* Parameters In Python::        Adding new GDB parameters.
-* Functions In Python::         Writing new convenience functions.
-* Progspaces In Python::        Program spaces.
-* Objfiles In Python::          Object files.
-* Frames In Python::            Accessing inferior stack frames from Python.
-* Blocks In Python::            Accessing blocks from Python.
-* Symbols In Python::           Python representation of symbols.
-* Symbol Tables In Python::     Python representation of symbol tables.
-* Line Tables In Python::       Python representation of line tables.
-* Breakpoints In Python::       Manipulating breakpoints using Python.
-* Finish Breakpoints in Python:: Setting Breakpoints on function return
-                                using Python.
-* Lazy Strings In Python::      Python representation of lazy strings.
-* Architectures In Python::     Python representation of architectures.
-
-
-File: gdb.info,  Node: Basic Python,  Next: Exception Handling,  Up: Python API
-
-23.2.2.1 Basic Python
-.....................
-
-At startup, GDB overrides Python's 'sys.stdout' and 'sys.stderr' to
-print using GDB's output-paging streams.  A Python program which outputs
-to one of these streams may have its output interrupted by the user
-(*note Screen Size::).  In this situation, a Python 'KeyboardInterrupt'
-exception is thrown.
-
-   Some care must be taken when writing Python code to run in GDB.  Two
-things worth noting in particular:
-
-   * GDB install handlers for 'SIGCHLD' and 'SIGINT'.  Python code must
-     not override these, or even change the options using 'sigaction'.
-     If your program changes the handling of these signals, GDB will
-     most likely stop working correctly.  Note that it is unfortunately
-     common for GUI toolkits to install a 'SIGCHLD' handler.
-
-   * GDB takes care to mark its internal file descriptors as
-     close-on-exec.  However, this cannot be done in a thread-safe way
-     on all platforms.  Your Python programs should be aware of this and
-     should both create new file descriptors with the close-on-exec flag
-     set and arrange to close unneeded file descriptors before starting
-     a child process.
-
-   GDB introduces a new Python module, named 'gdb'.  All methods and
-classes added by GDB are placed in this module.  GDB automatically
-'import's the 'gdb' module for use in all scripts evaluated by the
-'python' command.
-
- -- Variable: gdb.PYTHONDIR
-     A string containing the python directory (*note Python::).
-
- -- Function: gdb.execute (command [, from_tty [, to_string]])
-     Evaluate COMMAND, a string, as a GDB CLI command.  If a GDB
-     exception happens while COMMAND runs, it is translated as described
-     in *note Exception Handling: Exception Handling.
-
-     The FROM_TTY flag specifies whether GDB ought to consider this
-     command as having originated from the user invoking it
-     interactively.  It must be a boolean value.  If omitted, it
-     defaults to 'False'.
-
-     By default, any output produced by COMMAND is sent to GDB's
-     standard output (and to the log output if logging is turned on).
-     If the TO_STRING parameter is 'True', then output will be collected
-     by 'gdb.execute' and returned as a string.  The default is 'False',
-     in which case the return value is 'None'.  If TO_STRING is 'True',
-     the GDB virtual terminal will be temporarily set to unlimited width
-     and height, and its pagination will be disabled; *note Screen
-     Size::.
-
- -- Function: gdb.breakpoints ()
-     Return a sequence holding all of GDB's breakpoints.  *Note
-     Breakpoints In Python::, for more information.  In GDB version 7.11
-     and earlier, this function returned 'None' if there were no
-     breakpoints.  This peculiarity was subsequently fixed, and now
-     'gdb.breakpoints' returns an empty sequence in this case.
-
- -- Function: gdb.parameter (parameter)
-     Return the value of a GDB PARAMETER given by its name, a string;
-     the parameter name string may contain spaces if the parameter has a
-     multi-part name.  For example, 'print object' is a valid parameter
-     name.
-
-     If the named parameter does not exist, this function throws a
-     'gdb.error' (*note Exception Handling::).  Otherwise, the
-     parameter's value is converted to a Python value of the appropriate
-     type, and returned.
-
- -- Function: gdb.history (number)
-     Return a value from GDB's value history (*note Value History::).
-     The NUMBER argument indicates which history element to return.  If
-     NUMBER is negative, then GDB will take its absolute value and count
-     backward from the last element (i.e., the most recent element) to
-     find the value to return.  If NUMBER is zero, then GDB will return
-     the most recent element.  If the element specified by NUMBER
-     doesn't exist in the value history, a 'gdb.error' exception will be
-     raised.
-
-     If no exception is raised, the return value is always an instance
-     of 'gdb.Value' (*note Values From Inferior::).
-
- -- Function: gdb.parse_and_eval (expression)
-     Parse EXPRESSION, which must be a string, as an expression in the
-     current language, evaluate it, and return the result as a
-     'gdb.Value'.
-
-     This function can be useful when implementing a new command (*note
-     Commands In Python::), as it provides a way to parse the command's
-     argument as an expression.  It is also useful simply to compute
-     values, for example, it is the only way to get the value of a
-     convenience variable (*note Convenience Vars::) as a 'gdb.Value'.
-
- -- Function: gdb.find_pc_line (pc)
-     Return the 'gdb.Symtab_and_line' object corresponding to the PC
-     value.  *Note Symbol Tables In Python::.  If an invalid value of PC
-     is passed as an argument, then the 'symtab' and 'line' attributes
-     of the returned 'gdb.Symtab_and_line' object will be 'None' and 0
-     respectively.
-
- -- Function: gdb.post_event (event)
-     Put EVENT, a callable object taking no arguments, into GDB's
-     internal event queue.  This callable will be invoked at some later
-     point, during GDB's event processing.  Events posted using
-     'post_event' will be run in the order in which they were posted;
-     however, there is no way to know when they will be processed
-     relative to other events inside GDB.
-
-     GDB is not thread-safe.  If your Python program uses multiple
-     threads, you must be careful to only call GDB-specific functions in
-     the GDB thread.  'post_event' ensures this.  For example:
-
-          (gdb) python
-          >import threading
-          >
-          >class Writer():
-          > def __init__(self, message):
-          >        self.message = message;
-          > def __call__(self):
-          >        gdb.write(self.message)
-          >
-          >class MyThread1 (threading.Thread):
-          > def run (self):
-          >        gdb.post_event(Writer("Hello "))
-          >
-          >class MyThread2 (threading.Thread):
-          > def run (self):
-          >        gdb.post_event(Writer("World\n"))
-          >
-          >MyThread1().start()
-          >MyThread2().start()
-          >end
-          (gdb) Hello World
-
- -- Function: gdb.write (string [, stream])
-     Print a string to GDB's paginated output stream.  The optional
-     STREAM determines the stream to print to.  The default stream is
-     GDB's standard output stream.  Possible stream values are:
-
-     'gdb.STDOUT'
-          GDB's standard output stream.
-
-     'gdb.STDERR'
-          GDB's standard error stream.
-
-     'gdb.STDLOG'
-          GDB's log stream (*note Logging Output::).
-
-     Writing to 'sys.stdout' or 'sys.stderr' will automatically call
-     this function and will automatically direct the output to the
-     relevant stream.
-
- -- Function: gdb.flush ()
-     Flush the buffer of a GDB paginated stream so that the contents are
-     displayed immediately.  GDB will flush the contents of a stream
-     automatically when it encounters a newline in the buffer.  The
-     optional STREAM determines the stream to flush.  The default stream
-     is GDB's standard output stream.  Possible stream values are:
-
-     'gdb.STDOUT'
-          GDB's standard output stream.
-
-     'gdb.STDERR'
-          GDB's standard error stream.
-
-     'gdb.STDLOG'
-          GDB's log stream (*note Logging Output::).
-
-     Flushing 'sys.stdout' or 'sys.stderr' will automatically call this
-     function for the relevant stream.
-
- -- Function: gdb.target_charset ()
-     Return the name of the current target character set (*note
-     Character Sets::).  This differs from
-     'gdb.parameter('target-charset')' in that 'auto' is never returned.
-
- -- Function: gdb.target_wide_charset ()
-     Return the name of the current target wide character set (*note
-     Character Sets::).  This differs from
-     'gdb.parameter('target-wide-charset')' in that 'auto' is never
-     returned.
-
- -- Function: gdb.solib_name (address)
-     Return the name of the shared library holding the given ADDRESS as
-     a string, or 'None'.
-
- -- Function: gdb.decode_line [expression]
-     Return locations of the line specified by EXPRESSION, or of the
-     current line if no argument was given.  This function returns a
-     Python tuple containing two elements.  The first element contains a
-     string holding any unparsed section of EXPRESSION (or 'None' if the
-     expression has been fully parsed).  The second element contains
-     either 'None' or another tuple that contains all the locations that
-     match the expression represented as 'gdb.Symtab_and_line' objects
-     (*note Symbol Tables In Python::).  If EXPRESSION is provided, it
-     is decoded the way that GDB's inbuilt 'break' or 'edit' commands do
-     (*note Specify Location::).
-
- -- Function: gdb.prompt_hook (current_prompt)
-
-     If PROMPT_HOOK is callable, GDB will call the method assigned to
-     this operation before a prompt is displayed by GDB.
-
-     The parameter 'current_prompt' contains the current GDB prompt.
-     This method must return a Python string, or 'None'.  If a string is
-     returned, the GDB prompt will be set to that string.  If 'None' is
-     returned, GDB will continue to use the current prompt.
-
-     Some prompts cannot be substituted in GDB.  Secondary prompts such
-     as those used by readline for command input, and annotation related
-     prompts are prohibited from being changed.
-
-
-File: gdb.info,  Node: Exception Handling,  Next: Values From Inferior,  Prev: Basic Python,  Up: Python API
-
-23.2.2.2 Exception Handling
-...........................
-
-When executing the 'python' command, Python exceptions uncaught within
-the Python code are translated to calls to GDB error-reporting
-mechanism.  If the command that called 'python' does not handle the
-error, GDB will terminate it and print an error message containing the
-Python exception name, the associated value, and the Python call stack
-backtrace at the point where the exception was raised.  Example:
-
-     (gdb) python print foo
-     Traceback (most recent call last):
-       File "<string>", line 1, in <module>
-     NameError: name 'foo' is not defined
-
-   GDB errors that happen in GDB commands invoked by Python code are
-converted to Python exceptions.  The type of the Python exception
-depends on the error.
-
-'gdb.error'
-     This is the base class for most exceptions generated by GDB.  It is
-     derived from 'RuntimeError', for compatibility with earlier
-     versions of GDB.
-
-     If an error occurring in GDB does not fit into some more specific
-     category, then the generated exception will have this type.
-
-'gdb.MemoryError'
-     This is a subclass of 'gdb.error' which is thrown when an operation
-     tried to access invalid memory in the inferior.
-
-'KeyboardInterrupt'
-     User interrupt (via 'C-c' or by typing 'q' at a pagination prompt)
-     is translated to a Python 'KeyboardInterrupt' exception.
-
-   In all cases, your exception handler will see the GDB error message
-as its value and the Python call stack backtrace at the Python statement
-closest to where the GDB error occured as the traceback.
-
-   When implementing GDB commands in Python via 'gdb.Command', it is
-useful to be able to throw an exception that doesn't cause a traceback
-to be printed.  For example, the user may have invoked the command
-incorrectly.  Use the 'gdb.GdbError' exception to handle this case.
-Example:
-
-     (gdb) python
-     >class HelloWorld (gdb.Command):
-     >  """Greet the whole world."""
-     >  def __init__ (self):
-     >    super (HelloWorld, self).__init__ ("hello-world", gdb.COMMAND_USER)
-     >  def invoke (self, args, from_tty):
-     >    argv = gdb.string_to_argv (args)
-     >    if len (argv) != 0:
-     >      raise gdb.GdbError ("hello-world takes no arguments")
-     >    print "Hello, World!"
-     >HelloWorld ()
-     >end
-     (gdb) hello-world 42
-     hello-world takes no arguments
-
-
-File: gdb.info,  Node: Values From Inferior,  Next: Types In Python,  Prev: Exception Handling,  Up: Python API
-
-23.2.2.3 Values From Inferior
-.............................
-
-GDB provides values it obtains from the inferior program in an object of
-type 'gdb.Value'.  GDB uses this object for its internal bookkeeping of
-the inferior's values, and for fetching values when necessary.
-
-   Inferior values that are simple scalars can be used directly in
-Python expressions that are valid for the value's data type.  Here's an
-example for an integer or floating-point value 'some_val':
-
-     bar = some_val + 2
-
-As result of this, 'bar' will also be a 'gdb.Value' object whose values
-are of the same type as those of 'some_val'.  Valid Python operations
-can also be performed on 'gdb.Value' objects representing a 'struct' or
-'class' object.  For such cases, the overloaded operator (if present),
-is used to perform the operation.  For example, if 'val1' and 'val2' are
-'gdb.Value' objects representing instances of a 'class' which overloads
-the '+' operator, then one can use the '+' operator in their Python
-script as follows:
-
-     val3 = val1 + val2
-
-The result of the operation 'val3' is also a 'gdb.Value' object
-corresponding to the value returned by the overloaded '+' operator.  In
-general, overloaded operators are invoked for the following operations:
-'+' (binary addition), '-' (binary subtraction), '*' (multiplication),
-'/', '%', '<<', '>>', '|', '&', '^'.
-
-   Inferior values that are structures or instances of some class can be
-accessed using the Python "dictionary syntax".  For example, if
-'some_val' is a 'gdb.Value' instance holding a structure, you can access
-its 'foo' element with:
-
-     bar = some_val['foo']
-
-   Again, 'bar' will also be a 'gdb.Value' object.  Structure elements
-can also be accessed by using 'gdb.Field' objects as subscripts (*note
-Types In Python::, for more information on 'gdb.Field' objects).  For
-example, if 'foo_field' is a 'gdb.Field' object corresponding to element
-'foo' of the above structure, then 'bar' can also be accessed as
-follows:
-
-     bar = some_val[foo_field]
-
-   A 'gdb.Value' that represents a function can be executed via inferior
-function call.  Any arguments provided to the call must match the
-function's prototype, and must be provided in the order specified by
-that prototype.
-
-   For example, 'some_val' is a 'gdb.Value' instance representing a
-function that takes two integers as arguments.  To execute this
-function, call it like so:
-
-     result = some_val (10,20)
-
-   Any values returned from a function call will be stored as a
-'gdb.Value'.
-
-   The following attributes are provided:
-
- -- Variable: Value.address
-     If this object is addressable, this read-only attribute holds a
-     'gdb.Value' object representing the address.  Otherwise, this
-     attribute holds 'None'.
-
- -- Variable: Value.is_optimized_out
-     This read-only boolean attribute is true if the compiler optimized
-     out this value, thus it is not available for fetching from the
-     inferior.
-
- -- Variable: Value.type
-     The type of this 'gdb.Value'.  The value of this attribute is a
-     'gdb.Type' object (*note Types In Python::).
-
- -- Variable: Value.dynamic_type
-     The dynamic type of this 'gdb.Value'.  This uses C++ run-time type
-     information (RTTI) to determine the dynamic type of the value.  If
-     this value is of class type, it will return the class in which the
-     value is embedded, if any.  If this value is of pointer or
-     reference to a class type, it will compute the dynamic type of the
-     referenced object, and return a pointer or reference to that type,
-     respectively.  In all other cases, it will return the value's
-     static type.
-
-     Note that this feature will only work when debugging a C++ program
-     that includes RTTI for the object in question.  Otherwise, it will
-     just return the static type of the value as in 'ptype foo' (*note
-     ptype: Symbols.).
-
- -- Variable: Value.is_lazy
-     The value of this read-only boolean attribute is 'True' if this
-     'gdb.Value' has not yet been fetched from the inferior.  GDB does
-     not fetch values until necessary, for efficiency.  For example:
-
-          myval = gdb.parse_and_eval ('somevar')
-
-     The value of 'somevar' is not fetched at this time.  It will be
-     fetched when the value is needed, or when the 'fetch_lazy' method
-     is invoked.
-
-   The following methods are provided:
-
- -- Function: Value.__init__ (VAL)
-     Many Python values can be converted directly to a 'gdb.Value' via
-     this object initializer.  Specifically:
-
-     Python boolean
-          A Python boolean is converted to the boolean type from the
-          current language.
-
-     Python integer
-          A Python integer is converted to the C 'long' type for the
-          current architecture.
-
-     Python long
-          A Python long is converted to the C 'long long' type for the
-          current architecture.
-
-     Python float
-          A Python float is converted to the C 'double' type for the
-          current architecture.
-
-     Python string
-          A Python string is converted to a target string in the current
-          target language using the current target encoding.  If a
-          character cannot be represented in the current target
-          encoding, then an exception is thrown.
-
-     'gdb.Value'
-          If 'val' is a 'gdb.Value', then a copy of the value is made.
-
-     'gdb.LazyString'
-          If 'val' is a 'gdb.LazyString' (*note Lazy Strings In
-          Python::), then the lazy string's 'value' method is called,
-          and its result is used.
-
- -- Function: Value.cast (type)
-     Return a new instance of 'gdb.Value' that is the result of casting
-     this instance to the type described by TYPE, which must be a
-     'gdb.Type' object.  If the cast cannot be performed for some
-     reason, this method throws an exception.
-
- -- Function: Value.dereference ()
-     For pointer data types, this method returns a new 'gdb.Value'
-     object whose contents is the object pointed to by the pointer.  For
-     example, if 'foo' is a C pointer to an 'int', declared in your C
-     program as
-
-          int *foo;
-
-     then you can use the corresponding 'gdb.Value' to access what 'foo'
-     points to like this:
-
-          bar = foo.dereference ()
-
-     The result 'bar' will be a 'gdb.Value' object holding the value
-     pointed to by 'foo'.
-
-     A similar function 'Value.referenced_value' exists which also
-     returns 'gdb.Value' objects corresonding to the values pointed to
-     by pointer values (and additionally, values referenced by reference
-     values).  However, the behavior of 'Value.dereference' differs from
-     'Value.referenced_value' by the fact that the behavior of
-     'Value.dereference' is identical to applying the C unary operator
-     '*' on a given value.  For example, consider a reference to a
-     pointer 'ptrref', declared in your C++ program as
-
-          typedef int *intptr;
-          ...
-          int val = 10;
-          intptr ptr = &val;
-          intptr &ptrref = ptr;
-
-     Though 'ptrref' is a reference value, one can apply the method
-     'Value.dereference' to the 'gdb.Value' object corresponding to it
-     and obtain a 'gdb.Value' which is identical to that corresponding
-     to 'val'.  However, if you apply the method
-     'Value.referenced_value', the result would be a 'gdb.Value' object
-     identical to that corresponding to 'ptr'.
-
-          py_ptrref = gdb.parse_and_eval ("ptrref")
-          py_val = py_ptrref.dereference ()
-          py_ptr = py_ptrref.referenced_value ()
-
-     The 'gdb.Value' object 'py_val' is identical to that corresponding
-     to 'val', and 'py_ptr' is identical to that corresponding to 'ptr'.
-     In general, 'Value.dereference' can be applied whenever the C unary
-     operator '*' can be applied to the corresponding C value.  For
-     those cases where applying both 'Value.dereference' and
-     'Value.referenced_value' is allowed, the results obtained need not
-     be identical (as we have seen in the above example).  The results
-     are however identical when applied on 'gdb.Value' objects
-     corresponding to pointers ('gdb.Value' objects with type code
-     'TYPE_CODE_PTR') in a C/C++ program.
-
- -- Function: Value.referenced_value ()
-     For pointer or reference data types, this method returns a new
-     'gdb.Value' object corresponding to the value referenced by the
-     pointer/reference value.  For pointer data types,
-     'Value.dereference' and 'Value.referenced_value' produce identical
-     results.  The difference between these methods is that
-     'Value.dereference' cannot get the values referenced by reference
-     values.  For example, consider a reference to an 'int', declared in
-     your C++ program as
-
-          int val = 10;
-          int &ref = val;
-
-     then applying 'Value.dereference' to the 'gdb.Value' object
-     corresponding to 'ref' will result in an error, while applying
-     'Value.referenced_value' will result in a 'gdb.Value' object
-     identical to that corresponding to 'val'.
-
-          py_ref = gdb.parse_and_eval ("ref")
-          er_ref = py_ref.dereference ()       # Results in error
-          py_val = py_ref.referenced_value ()  # Returns the referenced value
-
-     The 'gdb.Value' object 'py_val' is identical to that corresponding
-     to 'val'.
-
- -- Function: Value.reference_value ()
-     Return a 'gdb.Value' object which is a reference to the value
-     encapsulated by this instance.
-
- -- Function: Value.const_value ()
-     Return a 'gdb.Value' object which is a 'const' version of the value
-     encapsulated by this instance.
-
- -- Function: Value.dynamic_cast (type)
-     Like 'Value.cast', but works as if the C++ 'dynamic_cast' operator
-     were used.  Consult a C++ reference for details.
-
- -- Function: Value.reinterpret_cast (type)
-     Like 'Value.cast', but works as if the C++ 'reinterpret_cast'
-     operator were used.  Consult a C++ reference for details.
-
- -- Function: Value.string ([encoding[, errors[, length]]])
-     If this 'gdb.Value' represents a string, then this method converts
-     the contents to a Python string.  Otherwise, this method will throw
-     an exception.
-
-     Values are interpreted as strings according to the rules of the
-     current language.  If the optional length argument is given, the
-     string will be converted to that length, and will include any
-     embedded zeroes that the string may contain.  Otherwise, for
-     languages where the string is zero-terminated, the entire string
-     will be converted.
-
-     For example, in C-like languages, a value is a string if it is a
-     pointer to or an array of characters or ints of type 'wchar_t',
-     'char16_t', or 'char32_t'.
-
-     If the optional ENCODING argument is given, it must be a string
-     naming the encoding of the string in the 'gdb.Value', such as
-     '"ascii"', '"iso-8859-6"' or '"utf-8"'.  It accepts the same
-     encodings as the corresponding argument to Python's 'string.decode'
-     method, and the Python codec machinery will be used to convert the
-     string.  If ENCODING is not given, or if ENCODING is the empty
-     string, then either the 'target-charset' (*note Character Sets::)
-     will be used, or a language-specific encoding will be used, if the
-     current language is able to supply one.
-
-     The optional ERRORS argument is the same as the corresponding
-     argument to Python's 'string.decode' method.
-
-     If the optional LENGTH argument is given, the string will be
-     fetched and converted to the given length.
-
- -- Function: Value.lazy_string ([encoding [, length]])
-     If this 'gdb.Value' represents a string, then this method converts
-     the contents to a 'gdb.LazyString' (*note Lazy Strings In
-     Python::).  Otherwise, this method will throw an exception.
-
-     If the optional ENCODING argument is given, it must be a string
-     naming the encoding of the 'gdb.LazyString'.  Some examples are:
-     'ascii', 'iso-8859-6' or 'utf-8'.  If the ENCODING argument is an
-     encoding that GDB does recognize, GDB will raise an error.
-
-     When a lazy string is printed, the GDB encoding machinery is used
-     to convert the string during printing.  If the optional ENCODING
-     argument is not provided, or is an empty string, GDB will
-     automatically select the encoding most suitable for the string
-     type.  For further information on encoding in GDB please see *note
-     Character Sets::.
-
-     If the optional LENGTH argument is given, the string will be
-     fetched and encoded to the length of characters specified.  If the
-     LENGTH argument is not provided, the string will be fetched and
-     encoded until a null of appropriate width is found.
-
- -- Function: Value.fetch_lazy ()
-     If the 'gdb.Value' object is currently a lazy value
-     ('gdb.Value.is_lazy' is 'True'), then the value is fetched from the
-     inferior.  Any errors that occur in the process will produce a
-     Python exception.
-
-     If the 'gdb.Value' object is not a lazy value, this method has no
-     effect.
-
-     This method does not return a value.
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info-4 ./gdb/doc/gdb.info-4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info-4	2018-01-02 02:06:47.000000000 +0000
+++ ./gdb/doc/gdb.info-4	2018-01-09 02:08:25.000000000 +0000
@@ -1,6 +1,6 @@
 This is gdb.info, produced by makeinfo version 6.3 from gdb.texinfo.
 
-Copyright (C) 1988-2017 Free Software Foundation, Inc.
+Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -21,9 +21,9 @@ END-INFO-DIR-ENTRY
    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 8.0.1.20180102-git.
+Source-Level Debugger' for GDB (GDB) Version 8.0.90.20180109-git.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -37,6 +37,658 @@ this GNU Manual.  Buying copies from GNU
 developing GNU and promoting software freedom."
 
 
+File: gdb.info,  Node: Python API,  Next: Python Auto-loading,  Prev: Python Commands,  Up: Python
+
+23.2.2 Python API
+-----------------
+
+You can get quick online help for GDB's Python API by issuing the
+command 'python help (gdb)'.
+
+   Functions and methods which have two or more optional arguments allow
+them to be specified using keyword syntax.  This allows passing some
+optional arguments while skipping others.  Example:
+'gdb.some_function ('foo', bar = 1, baz = 2)'.
+
+* Menu:
+
+* Basic Python::                Basic Python Functions.
+* Exception Handling::          How Python exceptions are translated.
+* Values From Inferior::        Python representation of values.
+* Types In Python::             Python representation of types.
+* Pretty Printing API::         Pretty-printing values.
+* Selecting Pretty-Printers::   How GDB chooses a pretty-printer.
+* Writing a Pretty-Printer::    Writing a Pretty-Printer.
+* Type Printing API::		Pretty-printing types.
+* Frame Filter API::            Filtering Frames.
+* Frame Decorator API::         Decorating Frames.
+* Writing a Frame Filter::      Writing a Frame Filter.
+* Unwinding Frames in Python::  Writing frame unwinder.
+* Xmethods In Python::          Adding and replacing methods of C++ classes.
+* Xmethod API::                 Xmethod types.
+* Writing an Xmethod::          Writing an xmethod.
+* Inferiors In Python::         Python representation of inferiors (processes)
+* Events In Python::            Listening for events from GDB.
+* Threads In Python::           Accessing inferior threads from Python.
+* Recordings In Python::        Accessing recordings from Python.
+* Commands In Python::          Implementing new commands in Python.
+* Parameters In Python::        Adding new GDB parameters.
+* Functions In Python::         Writing new convenience functions.
+* Progspaces In Python::        Program spaces.
+* Objfiles In Python::          Object files.
+* Frames In Python::            Accessing inferior stack frames from Python.
+* Blocks In Python::            Accessing blocks from Python.
+* Symbols In Python::           Python representation of symbols.
+* Symbol Tables In Python::     Python representation of symbol tables.
+* Line Tables In Python::       Python representation of line tables.
+* Breakpoints In Python::       Manipulating breakpoints using Python.
+* Finish Breakpoints in Python:: Setting Breakpoints on function return
+                                using Python.
+* Lazy Strings In Python::      Python representation of lazy strings.
+* Architectures In Python::     Python representation of architectures.
+
+
+File: gdb.info,  Node: Basic Python,  Next: Exception Handling,  Up: Python API
+
+23.2.2.1 Basic Python
+.....................
+
+At startup, GDB overrides Python's 'sys.stdout' and 'sys.stderr' to
+print using GDB's output-paging streams.  A Python program which outputs
+to one of these streams may have its output interrupted by the user
+(*note Screen Size::).  In this situation, a Python 'KeyboardInterrupt'
+exception is thrown.
+
+   Some care must be taken when writing Python code to run in GDB.  Two
+things worth noting in particular:
+
+   * GDB install handlers for 'SIGCHLD' and 'SIGINT'.  Python code must
+     not override these, or even change the options using 'sigaction'.
+     If your program changes the handling of these signals, GDB will
+     most likely stop working correctly.  Note that it is unfortunately
+     common for GUI toolkits to install a 'SIGCHLD' handler.
+
+   * GDB takes care to mark its internal file descriptors as
+     close-on-exec.  However, this cannot be done in a thread-safe way
+     on all platforms.  Your Python programs should be aware of this and
+     should both create new file descriptors with the close-on-exec flag
+     set and arrange to close unneeded file descriptors before starting
+     a child process.
+
+   GDB introduces a new Python module, named 'gdb'.  All methods and
+classes added by GDB are placed in this module.  GDB automatically
+'import's the 'gdb' module for use in all scripts evaluated by the
+'python' command.
+
+ -- Variable: gdb.PYTHONDIR
+     A string containing the python directory (*note Python::).
+
+ -- Function: gdb.execute (command [, from_tty [, to_string]])
+     Evaluate COMMAND, a string, as a GDB CLI command.  If a GDB
+     exception happens while COMMAND runs, it is translated as described
+     in *note Exception Handling: Exception Handling.
+
+     The FROM_TTY flag specifies whether GDB ought to consider this
+     command as having originated from the user invoking it
+     interactively.  It must be a boolean value.  If omitted, it
+     defaults to 'False'.
+
+     By default, any output produced by COMMAND is sent to GDB's
+     standard output (and to the log output if logging is turned on).
+     If the TO_STRING parameter is 'True', then output will be collected
+     by 'gdb.execute' and returned as a string.  The default is 'False',
+     in which case the return value is 'None'.  If TO_STRING is 'True',
+     the GDB virtual terminal will be temporarily set to unlimited width
+     and height, and its pagination will be disabled; *note Screen
+     Size::.
+
+ -- Function: gdb.breakpoints ()
+     Return a sequence holding all of GDB's breakpoints.  *Note
+     Breakpoints In Python::, for more information.  In GDB version 7.11
+     and earlier, this function returned 'None' if there were no
+     breakpoints.  This peculiarity was subsequently fixed, and now
+     'gdb.breakpoints' returns an empty sequence in this case.
+
+ -- Function: gdb.rbreak (regex [, minsyms [, throttle, [, symtabs ]]])
+     Return a Python list holding a collection of newly set
+     'gdb.Breakpoint' objects matching function names defined by the
+     REGEX pattern.  If the MINSYMS keyword is 'True', all system
+     functions (those not explicitly defined in the inferior) will also
+     be included in the match.  The THROTTLE keyword takes an integer
+     that defines the maximum number of pattern matches for functions
+     matched by the REGEX pattern.  If the number of matches exceeds the
+     integer value of THROTTLE, a 'RuntimeError' will be raised and no
+     breakpoints will be created.  If THROTTLE is not defined then there
+     is no imposed limit on the maximum number of matches and
+     breakpoints to be created.  The SYMTABS keyword takes a Python
+     iterable that yields a collection of 'gdb.Symtab' objects and will
+     restrict the search to those functions only contained within the
+     'gdb.Symtab' objects.
+
+ -- Function: gdb.parameter (parameter)
+     Return the value of a GDB PARAMETER given by its name, a string;
+     the parameter name string may contain spaces if the parameter has a
+     multi-part name.  For example, 'print object' is a valid parameter
+     name.
+
+     If the named parameter does not exist, this function throws a
+     'gdb.error' (*note Exception Handling::).  Otherwise, the
+     parameter's value is converted to a Python value of the appropriate
+     type, and returned.
+
+ -- Function: gdb.history (number)
+     Return a value from GDB's value history (*note Value History::).
+     The NUMBER argument indicates which history element to return.  If
+     NUMBER is negative, then GDB will take its absolute value and count
+     backward from the last element (i.e., the most recent element) to
+     find the value to return.  If NUMBER is zero, then GDB will return
+     the most recent element.  If the element specified by NUMBER
+     doesn't exist in the value history, a 'gdb.error' exception will be
+     raised.
+
+     If no exception is raised, the return value is always an instance
+     of 'gdb.Value' (*note Values From Inferior::).
+
+ -- Function: gdb.parse_and_eval (expression)
+     Parse EXPRESSION, which must be a string, as an expression in the
+     current language, evaluate it, and return the result as a
+     'gdb.Value'.
+
+     This function can be useful when implementing a new command (*note
+     Commands In Python::), as it provides a way to parse the command's
+     argument as an expression.  It is also useful simply to compute
+     values, for example, it is the only way to get the value of a
+     convenience variable (*note Convenience Vars::) as a 'gdb.Value'.
+
+ -- Function: gdb.find_pc_line (pc)
+     Return the 'gdb.Symtab_and_line' object corresponding to the PC
+     value.  *Note Symbol Tables In Python::.  If an invalid value of PC
+     is passed as an argument, then the 'symtab' and 'line' attributes
+     of the returned 'gdb.Symtab_and_line' object will be 'None' and 0
+     respectively.
+
+ -- Function: gdb.post_event (event)
+     Put EVENT, a callable object taking no arguments, into GDB's
+     internal event queue.  This callable will be invoked at some later
+     point, during GDB's event processing.  Events posted using
+     'post_event' will be run in the order in which they were posted;
+     however, there is no way to know when they will be processed
+     relative to other events inside GDB.
+
+     GDB is not thread-safe.  If your Python program uses multiple
+     threads, you must be careful to only call GDB-specific functions in
+     the GDB thread.  'post_event' ensures this.  For example:
+
+          (gdb) python
+          >import threading
+          >
+          >class Writer():
+          > def __init__(self, message):
+          >        self.message = message;
+          > def __call__(self):
+          >        gdb.write(self.message)
+          >
+          >class MyThread1 (threading.Thread):
+          > def run (self):
+          >        gdb.post_event(Writer("Hello "))
+          >
+          >class MyThread2 (threading.Thread):
+          > def run (self):
+          >        gdb.post_event(Writer("World\n"))
+          >
+          >MyThread1().start()
+          >MyThread2().start()
+          >end
+          (gdb) Hello World
+
+ -- Function: gdb.write (string [, stream])
+     Print a string to GDB's paginated output stream.  The optional
+     STREAM determines the stream to print to.  The default stream is
+     GDB's standard output stream.  Possible stream values are:
+
+     'gdb.STDOUT'
+          GDB's standard output stream.
+
+     'gdb.STDERR'
+          GDB's standard error stream.
+
+     'gdb.STDLOG'
+          GDB's log stream (*note Logging Output::).
+
+     Writing to 'sys.stdout' or 'sys.stderr' will automatically call
+     this function and will automatically direct the output to the
+     relevant stream.
+
+ -- Function: gdb.flush ()
+     Flush the buffer of a GDB paginated stream so that the contents are
+     displayed immediately.  GDB will flush the contents of a stream
+     automatically when it encounters a newline in the buffer.  The
+     optional STREAM determines the stream to flush.  The default stream
+     is GDB's standard output stream.  Possible stream values are:
+
+     'gdb.STDOUT'
+          GDB's standard output stream.
+
+     'gdb.STDERR'
+          GDB's standard error stream.
+
+     'gdb.STDLOG'
+          GDB's log stream (*note Logging Output::).
+
+     Flushing 'sys.stdout' or 'sys.stderr' will automatically call this
+     function for the relevant stream.
+
+ -- Function: gdb.target_charset ()
+     Return the name of the current target character set (*note
+     Character Sets::).  This differs from
+     'gdb.parameter('target-charset')' in that 'auto' is never returned.
+
+ -- Function: gdb.target_wide_charset ()
+     Return the name of the current target wide character set (*note
+     Character Sets::).  This differs from
+     'gdb.parameter('target-wide-charset')' in that 'auto' is never
+     returned.
+
+ -- Function: gdb.solib_name (address)
+     Return the name of the shared library holding the given ADDRESS as
+     a string, or 'None'.
+
+ -- Function: gdb.decode_line [expression]
+     Return locations of the line specified by EXPRESSION, or of the
+     current line if no argument was given.  This function returns a
+     Python tuple containing two elements.  The first element contains a
+     string holding any unparsed section of EXPRESSION (or 'None' if the
+     expression has been fully parsed).  The second element contains
+     either 'None' or another tuple that contains all the locations that
+     match the expression represented as 'gdb.Symtab_and_line' objects
+     (*note Symbol Tables In Python::).  If EXPRESSION is provided, it
+     is decoded the way that GDB's inbuilt 'break' or 'edit' commands do
+     (*note Specify Location::).
+
+ -- Function: gdb.prompt_hook (current_prompt)
+
+     If PROMPT_HOOK is callable, GDB will call the method assigned to
+     this operation before a prompt is displayed by GDB.
+
+     The parameter 'current_prompt' contains the current GDB prompt.
+     This method must return a Python string, or 'None'.  If a string is
+     returned, the GDB prompt will be set to that string.  If 'None' is
+     returned, GDB will continue to use the current prompt.
+
+     Some prompts cannot be substituted in GDB.  Secondary prompts such
+     as those used by readline for command input, and annotation related
+     prompts are prohibited from being changed.
+
+
+File: gdb.info,  Node: Exception Handling,  Next: Values From Inferior,  Prev: Basic Python,  Up: Python API
+
+23.2.2.2 Exception Handling
+...........................
+
+When executing the 'python' command, Python exceptions uncaught within
+the Python code are translated to calls to GDB error-reporting
+mechanism.  If the command that called 'python' does not handle the
+error, GDB will terminate it and print an error message containing the
+Python exception name, the associated value, and the Python call stack
+backtrace at the point where the exception was raised.  Example:
+
+     (gdb) python print foo
+     Traceback (most recent call last):
+       File "<string>", line 1, in <module>
+     NameError: name 'foo' is not defined
+
+   GDB errors that happen in GDB commands invoked by Python code are
+converted to Python exceptions.  The type of the Python exception
+depends on the error.
+
+'gdb.error'
+     This is the base class for most exceptions generated by GDB.  It is
+     derived from 'RuntimeError', for compatibility with earlier
+     versions of GDB.
+
+     If an error occurring in GDB does not fit into some more specific
+     category, then the generated exception will have this type.
+
+'gdb.MemoryError'
+     This is a subclass of 'gdb.error' which is thrown when an operation
+     tried to access invalid memory in the inferior.
+
+'KeyboardInterrupt'
+     User interrupt (via 'C-c' or by typing 'q' at a pagination prompt)
+     is translated to a Python 'KeyboardInterrupt' exception.
+
+   In all cases, your exception handler will see the GDB error message
+as its value and the Python call stack backtrace at the Python statement
+closest to where the GDB error occured as the traceback.
+
+   When implementing GDB commands in Python via 'gdb.Command', it is
+useful to be able to throw an exception that doesn't cause a traceback
+to be printed.  For example, the user may have invoked the command
+incorrectly.  Use the 'gdb.GdbError' exception to handle this case.
+Example:
+
+     (gdb) python
+     >class HelloWorld (gdb.Command):
+     >  """Greet the whole world."""
+     >  def __init__ (self):
+     >    super (HelloWorld, self).__init__ ("hello-world", gdb.COMMAND_USER)
+     >  def invoke (self, args, from_tty):
+     >    argv = gdb.string_to_argv (args)
+     >    if len (argv) != 0:
+     >      raise gdb.GdbError ("hello-world takes no arguments")
+     >    print "Hello, World!"
+     >HelloWorld ()
+     >end
+     (gdb) hello-world 42
+     hello-world takes no arguments
+
+
+File: gdb.info,  Node: Values From Inferior,  Next: Types In Python,  Prev: Exception Handling,  Up: Python API
+
+23.2.2.3 Values From Inferior
+.............................
+
+GDB provides values it obtains from the inferior program in an object of
+type 'gdb.Value'.  GDB uses this object for its internal bookkeeping of
+the inferior's values, and for fetching values when necessary.
+
+   Inferior values that are simple scalars can be used directly in
+Python expressions that are valid for the value's data type.  Here's an
+example for an integer or floating-point value 'some_val':
+
+     bar = some_val + 2
+
+As result of this, 'bar' will also be a 'gdb.Value' object whose values
+are of the same type as those of 'some_val'.  Valid Python operations
+can also be performed on 'gdb.Value' objects representing a 'struct' or
+'class' object.  For such cases, the overloaded operator (if present),
+is used to perform the operation.  For example, if 'val1' and 'val2' are
+'gdb.Value' objects representing instances of a 'class' which overloads
+the '+' operator, then one can use the '+' operator in their Python
+script as follows:
+
+     val3 = val1 + val2
+
+The result of the operation 'val3' is also a 'gdb.Value' object
+corresponding to the value returned by the overloaded '+' operator.  In
+general, overloaded operators are invoked for the following operations:
+'+' (binary addition), '-' (binary subtraction), '*' (multiplication),
+'/', '%', '<<', '>>', '|', '&', '^'.
+
+   Inferior values that are structures or instances of some class can be
+accessed using the Python "dictionary syntax".  For example, if
+'some_val' is a 'gdb.Value' instance holding a structure, you can access
+its 'foo' element with:
+
+     bar = some_val['foo']
+
+   Again, 'bar' will also be a 'gdb.Value' object.  Structure elements
+can also be accessed by using 'gdb.Field' objects as subscripts (*note
+Types In Python::, for more information on 'gdb.Field' objects).  For
+example, if 'foo_field' is a 'gdb.Field' object corresponding to element
+'foo' of the above structure, then 'bar' can also be accessed as
+follows:
+
+     bar = some_val[foo_field]
+
+   A 'gdb.Value' that represents a function can be executed via inferior
+function call.  Any arguments provided to the call must match the
+function's prototype, and must be provided in the order specified by
+that prototype.
+
+   For example, 'some_val' is a 'gdb.Value' instance representing a
+function that takes two integers as arguments.  To execute this
+function, call it like so:
+
+     result = some_val (10,20)
+
+   Any values returned from a function call will be stored as a
+'gdb.Value'.
+
+   The following attributes are provided:
+
+ -- Variable: Value.address
+     If this object is addressable, this read-only attribute holds a
+     'gdb.Value' object representing the address.  Otherwise, this
+     attribute holds 'None'.
+
+ -- Variable: Value.is_optimized_out
+     This read-only boolean attribute is true if the compiler optimized
+     out this value, thus it is not available for fetching from the
+     inferior.
+
+ -- Variable: Value.type
+     The type of this 'gdb.Value'.  The value of this attribute is a
+     'gdb.Type' object (*note Types In Python::).
+
+ -- Variable: Value.dynamic_type
+     The dynamic type of this 'gdb.Value'.  This uses C++ run-time type
+     information (RTTI) to determine the dynamic type of the value.  If
+     this value is of class type, it will return the class in which the
+     value is embedded, if any.  If this value is of pointer or
+     reference to a class type, it will compute the dynamic type of the
+     referenced object, and return a pointer or reference to that type,
+     respectively.  In all other cases, it will return the value's
+     static type.
+
+     Note that this feature will only work when debugging a C++ program
+     that includes RTTI for the object in question.  Otherwise, it will
+     just return the static type of the value as in 'ptype foo' (*note
+     ptype: Symbols.).
+
+ -- Variable: Value.is_lazy
+     The value of this read-only boolean attribute is 'True' if this
+     'gdb.Value' has not yet been fetched from the inferior.  GDB does
+     not fetch values until necessary, for efficiency.  For example:
+
+          myval = gdb.parse_and_eval ('somevar')
+
+     The value of 'somevar' is not fetched at this time.  It will be
+     fetched when the value is needed, or when the 'fetch_lazy' method
+     is invoked.
+
+   The following methods are provided:
+
+ -- Function: Value.__init__ (VAL)
+     Many Python values can be converted directly to a 'gdb.Value' via
+     this object initializer.  Specifically:
+
+     Python boolean
+          A Python boolean is converted to the boolean type from the
+          current language.
+
+     Python integer
+          A Python integer is converted to the C 'long' type for the
+          current architecture.
+
+     Python long
+          A Python long is converted to the C 'long long' type for the
+          current architecture.
+
+     Python float
+          A Python float is converted to the C 'double' type for the
+          current architecture.
+
+     Python string
+          A Python string is converted to a target string in the current
+          target language using the current target encoding.  If a
+          character cannot be represented in the current target
+          encoding, then an exception is thrown.
+
+     'gdb.Value'
+          If 'val' is a 'gdb.Value', then a copy of the value is made.
+
+     'gdb.LazyString'
+          If 'val' is a 'gdb.LazyString' (*note Lazy Strings In
+          Python::), then the lazy string's 'value' method is called,
+          and its result is used.
+
+ -- Function: Value.cast (type)
+     Return a new instance of 'gdb.Value' that is the result of casting
+     this instance to the type described by TYPE, which must be a
+     'gdb.Type' object.  If the cast cannot be performed for some
+     reason, this method throws an exception.
+
+ -- Function: Value.dereference ()
+     For pointer data types, this method returns a new 'gdb.Value'
+     object whose contents is the object pointed to by the pointer.  For
+     example, if 'foo' is a C pointer to an 'int', declared in your C
+     program as
+
+          int *foo;
+
+     then you can use the corresponding 'gdb.Value' to access what 'foo'
+     points to like this:
+
+          bar = foo.dereference ()
+
+     The result 'bar' will be a 'gdb.Value' object holding the value
+     pointed to by 'foo'.
+
+     A similar function 'Value.referenced_value' exists which also
+     returns 'gdb.Value' objects corresonding to the values pointed to
+     by pointer values (and additionally, values referenced by reference
+     values).  However, the behavior of 'Value.dereference' differs from
+     'Value.referenced_value' by the fact that the behavior of
+     'Value.dereference' is identical to applying the C unary operator
+     '*' on a given value.  For example, consider a reference to a
+     pointer 'ptrref', declared in your C++ program as
+
+          typedef int *intptr;
+          ...
+          int val = 10;
+          intptr ptr = &val;
+          intptr &ptrref = ptr;
+
+     Though 'ptrref' is a reference value, one can apply the method
+     'Value.dereference' to the 'gdb.Value' object corresponding to it
+     and obtain a 'gdb.Value' which is identical to that corresponding
+     to 'val'.  However, if you apply the method
+     'Value.referenced_value', the result would be a 'gdb.Value' object
+     identical to that corresponding to 'ptr'.
+
+          py_ptrref = gdb.parse_and_eval ("ptrref")
+          py_val = py_ptrref.dereference ()
+          py_ptr = py_ptrref.referenced_value ()
+
+     The 'gdb.Value' object 'py_val' is identical to that corresponding
+     to 'val', and 'py_ptr' is identical to that corresponding to 'ptr'.
+     In general, 'Value.dereference' can be applied whenever the C unary
+     operator '*' can be applied to the corresponding C value.  For
+     those cases where applying both 'Value.dereference' and
+     'Value.referenced_value' is allowed, the results obtained need not
+     be identical (as we have seen in the above example).  The results
+     are however identical when applied on 'gdb.Value' objects
+     corresponding to pointers ('gdb.Value' objects with type code
+     'TYPE_CODE_PTR') in a C/C++ program.
+
+ -- Function: Value.referenced_value ()
+     For pointer or reference data types, this method returns a new
+     'gdb.Value' object corresponding to the value referenced by the
+     pointer/reference value.  For pointer data types,
+     'Value.dereference' and 'Value.referenced_value' produce identical
+     results.  The difference between these methods is that
+     'Value.dereference' cannot get the values referenced by reference
+     values.  For example, consider a reference to an 'int', declared in
+     your C++ program as
+
+          int val = 10;
+          int &ref = val;
+
+     then applying 'Value.dereference' to the 'gdb.Value' object
+     corresponding to 'ref' will result in an error, while applying
+     'Value.referenced_value' will result in a 'gdb.Value' object
+     identical to that corresponding to 'val'.
+
+          py_ref = gdb.parse_and_eval ("ref")
+          er_ref = py_ref.dereference ()       # Results in error
+          py_val = py_ref.referenced_value ()  # Returns the referenced value
+
+     The 'gdb.Value' object 'py_val' is identical to that corresponding
+     to 'val'.
+
+ -- Function: Value.reference_value ()
+     Return a 'gdb.Value' object which is a reference to the value
+     encapsulated by this instance.
+
+ -- Function: Value.const_value ()
+     Return a 'gdb.Value' object which is a 'const' version of the value
+     encapsulated by this instance.
+
+ -- Function: Value.dynamic_cast (type)
+     Like 'Value.cast', but works as if the C++ 'dynamic_cast' operator
+     were used.  Consult a C++ reference for details.
+
+ -- Function: Value.reinterpret_cast (type)
+     Like 'Value.cast', but works as if the C++ 'reinterpret_cast'
+     operator were used.  Consult a C++ reference for details.
+
+ -- Function: Value.string ([encoding[, errors[, length]]])
+     If this 'gdb.Value' represents a string, then this method converts
+     the contents to a Python string.  Otherwise, this method will throw
+     an exception.
+
+     Values are interpreted as strings according to the rules of the
+     current language.  If the optional length argument is given, the
+     string will be converted to that length, and will include any
+     embedded zeroes that the string may contain.  Otherwise, for
+     languages where the string is zero-terminated, the entire string
+     will be converted.
+
+     For example, in C-like languages, a value is a string if it is a
+     pointer to or an array of characters or ints of type 'wchar_t',
+     'char16_t', or 'char32_t'.
+
+     If the optional ENCODING argument is given, it must be a string
+     naming the encoding of the string in the 'gdb.Value', such as
+     '"ascii"', '"iso-8859-6"' or '"utf-8"'.  It accepts the same
+     encodings as the corresponding argument to Python's 'string.decode'
+     method, and the Python codec machinery will be used to convert the
+     string.  If ENCODING is not given, or if ENCODING is the empty
+     string, then either the 'target-charset' (*note Character Sets::)
+     will be used, or a language-specific encoding will be used, if the
+     current language is able to supply one.
+
+     The optional ERRORS argument is the same as the corresponding
+     argument to Python's 'string.decode' method.
+
+     If the optional LENGTH argument is given, the string will be
+     fetched and converted to the given length.
+
+ -- Function: Value.lazy_string ([encoding [, length]])
+     If this 'gdb.Value' represents a string, then this method converts
+     the contents to a 'gdb.LazyString' (*note Lazy Strings In
+     Python::).  Otherwise, this method will throw an exception.
+
+     If the optional ENCODING argument is given, it must be a string
+     naming the encoding of the 'gdb.LazyString'.  Some examples are:
+     'ascii', 'iso-8859-6' or 'utf-8'.  If the ENCODING argument is an
+     encoding that GDB does recognize, GDB will raise an error.
+
+     When a lazy string is printed, the GDB encoding machinery is used
+     to convert the string during printing.  If the optional ENCODING
+     argument is not provided, or is an empty string, GDB will
+     automatically select the encoding most suitable for the string
+     type.  For further information on encoding in GDB please see *note
+     Character Sets::.
+
+     If the optional LENGTH argument is given, the string will be
+     fetched and encoded to the length of characters specified.  If the
+     LENGTH argument is not provided, the string will be fetched and
+     encoded until a null of appropriate width is found.
+
+ -- Function: Value.fetch_lazy ()
+     If the 'gdb.Value' object is currently a lazy value
+     ('gdb.Value.is_lazy' is 'True'), then the value is fetched from the
+     inferior.  Any errors that occur in the process will produce a
+     Python exception.
+
+     If the 'gdb.Value' object is not a lazy value, this method has no
+     effect.
+
+     This method does not return a value.
+
+
 File: gdb.info,  Node: Types In Python,  Next: Pretty Printing API,  Prev: Values From Inferior,  Up: Python API
 
 23.2.2.4 Types In Python
@@ -1768,6 +2420,11 @@ module:
      where the pattern was found, or 'None' if the pattern could not be
      found.
 
+ -- Function: Inferior.thread_from_thread_handle (thread_handle)
+     Return the thread object corresponding to THREAD_HANDLE, a thread
+     library specific data structure such as 'pthread_t' for pthreads
+     library implementations.
+
 
 File: gdb.info,  Node: Events In Python,  Next: Threads In Python,  Prev: Inferiors In Python,  Up: Python API
 
@@ -1957,6 +2614,36 @@ and details of the events they emit:
      This event carries no payload.  It is emitted each time GDB
      presents a prompt to the user.
 
+'events.new_inferior'
+     This is emitted when a new inferior is created.  Note that the
+     inferior is not necessarily running; in fact, it may not even have
+     an associated executable.
+
+     The event is of type 'gdb.NewInferiorEvent'.  This has a single
+     attribute:
+
+      -- Variable: NewInferiorEvent.inferior
+          The new inferior, a 'gdb.Inferior' object.
+
+'events.inferior_deleted'
+     This is emitted when an inferior has been deleted.  Note that this
+     is not the same as process exit; it is notified when the inferior
+     itself is removed, say via 'remove-inferiors'.
+
+     The event is of type 'gdb.InferiorDeletedEvent'.  This has a single
+     attribute:
+
+      -- Variable: NewInferiorEvent.inferior
+          The inferior that is being removed, a 'gdb.Inferior' object.
+
+'events.new_thread'
+     This is emitted when GDB notices a new thread.  The event is of
+     type 'gdb.NewThreadEvent', which extends 'gdb.ThreadEvent'.  This
+     has a single attribute:
+
+      -- Variable: NewThreadEvent.inferior_thread
+          The new thread.
+
 
 File: gdb.info,  Node: Threads In Python,  Next: Recordings In Python,  Prev: Events In Python,  Up: Python API
 
@@ -3280,7 +3967,7 @@ constants in the 'gdb' module:
      This domain holds a subset of the 'SYMBOLS_VAR_DOMAIN'; it contains
      everything minus functions and types.
 
-'gdb.SYMBOL_FUNCTION_DOMAIN'
+'gdb.SYMBOL_FUNCTIONS_DOMAIN'
      This domain contains all functions.
 
 'gdb.SYMBOL_TYPES_DOMAIN'
@@ -3497,27 +4184,56 @@ File: gdb.info,  Node: Breakpoints In Py
 
 Python code can manipulate breakpoints via the 'gdb.Breakpoint' class.
 
- -- Function: Breakpoint.__init__ (spec [, type [, wp_class [,internal
-          [,temporary]]]])
+   A breakpoint can be created using one of the two forms of the
+'gdb.Breakpoint' constructor.  The first one accepts a string like one
+would pass to the 'break' (*note Setting Breakpoints: Set Breaks.) and
+'watch' (*note Setting Watchpoints: Set Watchpoints.) commands, and can
+be used to create both breakpoints and watchpoints.  The second accepts
+separate Python arguments similar to *note Explicit Locations::, and can
+only be used to create breakpoints.
+
+ -- Function: Breakpoint.__init__ (spec [, type ][, wp_class ][,
+          internal ][, temporary ][, qualified ])
      Create a new breakpoint according to SPEC, which is a string naming
-     the location of the breakpoint, or an expression that defines a
-     watchpoint.  The contents can be any location recognized by the
-     'break' command, or in the case of a watchpoint, by the 'watch'
-     command.  The optional TYPE denotes the breakpoint to create from
-     the types defined later in this chapter.  This argument can be
-     either 'gdb.BP_BREAKPOINT' or 'gdb.BP_WATCHPOINT'; it defaults to
-     'gdb.BP_BREAKPOINT'.  The optional INTERNAL argument allows the
-     breakpoint to become invisible to the user.  The breakpoint will
-     neither be reported when created, nor will it be listed in the
-     output from 'info breakpoints' (but will be listed with the 'maint
-     info breakpoints' command).  The optional TEMPORARY argument makes
-     the breakpoint a temporary breakpoint.  Temporary breakpoints are
-     deleted after they have been hit.  Any further access to the Python
-     breakpoint after it has been hit will result in a runtime error (as
-     that breakpoint has now been automatically deleted).  The optional
-     WP_CLASS argument defines the class of watchpoint to create, if
-     TYPE is 'gdb.BP_WATCHPOINT'.  If a watchpoint class is not
-     provided, it is assumed to be a 'gdb.WP_WRITE' class.
+     the location of a breakpoint, or an expression that defines a
+     watchpoint.  The string should describe a location in a format
+     recognized by the 'break' command (*note Setting Breakpoints: Set
+     Breaks.) or, in the case of a watchpoint, by the 'watch' command
+     (*note Setting Watchpoints: Set Watchpoints.).
+
+     The optional TYPE argument specifies the type of the breakpoint to
+     create, as defined below.
+
+     The optional WP_CLASS argument defines the class of watchpoint to
+     create, if TYPE is 'gdb.BP_WATCHPOINT'.  If WP_CLASS is omitted, it
+     defaults to 'gdb.WP_WRITE'.
+
+     The optional INTERNAL argument allows the breakpoint to become
+     invisible to the user.  The breakpoint will neither be reported
+     when created, nor will it be listed in the output from 'info
+     breakpoints' (but will be listed with the 'maint info breakpoints'
+     command).
+
+     The optional TEMPORARY argument makes the breakpoint a temporary
+     breakpoint.  Temporary breakpoints are deleted after they have been
+     hit.  Any further access to the Python breakpoint after it has been
+     hit will result in a runtime error (as that breakpoint has now been
+     automatically deleted).
+
+     The optional QUALIFIED argument is a boolean that allows
+     interpreting the function passed in 'spec' as a fully-qualified
+     name.  It is equivalent to 'break''s '-qualified' flag (*note
+     Linespec Locations:: and *note Explicit Locations::).
+
+ -- Function: Breakpoint.__init__ ([ source ][, function ][, label ][,
+          line ], ][ internal ][, temporary ][, qualified ])
+     This second form of creating a new breakpoint specifies the
+     explicit location (*note Explicit Locations::) using keywords.  The
+     new breakpoint will be created in the specified source file SOURCE,
+     at the specified FUNCTION, LABEL and LINE.
+
+     INTERNAL, TEMPORARY and QUALIFIED have the same usage as explained
+     previously.
 
    The available types are represented by constants defined in the 'gdb'
 module:
@@ -6497,7 +7213,7 @@ constants in the '(gdb)' module:
      This domain holds a subset of the 'SYMBOLS_VAR_DOMAIN'; it contains
      everything minus functions and types.
 
-'SYMBOL_FUNCTION_DOMAIN'
+'SYMBOL_FUNCTIONS_DOMAIN'
      This domain contains all functions.
 
 'SYMBOL_TYPES_DOMAIN'
@@ -6874,450 +7590,3 @@ outside of Guile.
      Return the commands attached to BREAKPOINT as a string, or '#f' if
      there are none.
 
-
-File: gdb.info,  Node: Lazy Strings In Guile,  Next: Architectures In Guile,  Prev: Breakpoints In Guile,  Up: Guile API
-
-23.3.3.20 Guile representation of lazy strings.
-...............................................
-
-A "lazy string" is a string whose contents is not retrieved or encoded
-until it is needed.
-
-   A '<gdb:lazy-string>' is represented in GDB as an 'address' that
-points to a region of memory, an 'encoding' that will be used to encode
-that region of memory, and a 'length' to delimit the region of memory
-that represents the string.  The difference between a
-'<gdb:lazy-string>' and a string wrapped within a '<gdb:value>' is that
-a '<gdb:lazy-string>' will be treated differently by GDB when printing.
-A '<gdb:lazy-string>' is retrieved and encoded during printing, while a
-'<gdb:value>' wrapping a string is immediately retrieved and encoded on
-creation.
-
-   The following lazy-string-related procedures are provided by the
-'(gdb)' module:
-
- -- Scheme Procedure: lazy-string? object
-     Return '#t' if OBJECT is an object of type '<gdb:lazy-string>'.
-     Otherwise return '#f'.
-
- -- Scheme Procedure: lazy-string-address lazy-sring
-     Return the address of LAZY-STRING.
-
- -- Scheme Procedure: lazy-string-length lazy-string
-     Return the length of LAZY-STRING in characters.  If the length is
-     -1, then the string will be fetched and encoded up to the first
-     null of appropriate width.
-
- -- Scheme Procedure: lazy-string-encoding lazy-string
-     Return the encoding that will be applied to LAZY-STRING when the
-     string is printed by GDB.  If the encoding is not set, or contains
-     an empty string, then GDB will select the most appropriate encoding
-     when the string is printed.
-
- -- Scheme Procedure: lazy-string-type lazy-string
-     Return the type that is represented by LAZY-STRING's type.  For a
-     lazy string this is a pointer or array type.  To resolve this to
-     the lazy string's character type, use 'type-target-type'.  *Note
-     Types In Guile::.
-
- -- Scheme Procedure: lazy-string->value lazy-string
-     Convert the '<gdb:lazy-string>' to a '<gdb:value>'.  This value
-     will point to the string in memory, but will lose all the delayed
-     retrieval, encoding and handling that GDB applies to a
-     '<gdb:lazy-string>'.
-
-
-File: gdb.info,  Node: Architectures In Guile,  Next: Disassembly In Guile,  Prev: Lazy Strings In Guile,  Up: Guile API
-
-23.3.3.21 Guile representation of architectures
-...............................................
-
-GDB uses architecture specific parameters and artifacts in a number of
-its various computations.  An architecture is represented by an instance
-of the '<gdb:arch>' class.
-
-   The following architecture-related procedures are provided by the
-'(gdb)' module:
-
- -- Scheme Procedure: arch? object
-     Return '#t' if OBJECT is an object of type '<gdb:arch>'.  Otherwise
-     return '#f'.
-
- -- Scheme Procedure: current-arch
-     Return the current architecture as a '<gdb:arch>' object.
-
- -- Scheme Procedure: arch-name arch
-     Return the name (string value) of '<gdb:arch>' ARCH.
-
- -- Scheme Procedure: arch-charset arch
-     Return name of target character set of '<gdb:arch>' ARCH.
-
- -- Scheme Procedure: arch-wide-charset
-     Return name of target wide character set of '<gdb:arch>' ARCH.
-
-   Each architecture provides a set of predefined types, obtained by the
-following functions.
-
- -- Scheme Procedure: arch-void-type arch
-     Return the '<gdb:type>' object for a 'void' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-char-type arch
-     Return the '<gdb:type>' object for a 'char' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-short-type arch
-     Return the '<gdb:type>' object for a 'short' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-int-type arch
-     Return the '<gdb:type>' object for an 'int' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-long-type arch
-     Return the '<gdb:type>' object for a 'long' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-schar-type arch
-     Return the '<gdb:type>' object for a 'signed char' type of
-     architecture ARCH.
-
- -- Scheme Procedure: arch-uchar-type arch
-     Return the '<gdb:type>' object for an 'unsigned char' type of
-     architecture ARCH.
-
- -- Scheme Procedure: arch-ushort-type arch
-     Return the '<gdb:type>' object for an 'unsigned short' type of
-     architecture ARCH.
-
- -- Scheme Procedure: arch-uint-type arch
-     Return the '<gdb:type>' object for an 'unsigned int' type of
-     architecture ARCH.
-
- -- Scheme Procedure: arch-ulong-type arch
-     Return the '<gdb:type>' object for an 'unsigned long' type of
-     architecture ARCH.
-
- -- Scheme Procedure: arch-float-type arch
-     Return the '<gdb:type>' object for a 'float' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-double-type arch
-     Return the '<gdb:type>' object for a 'double' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-longdouble-type arch
-     Return the '<gdb:type>' object for a 'long double' type of
-     architecture ARCH.
-
- -- Scheme Procedure: arch-bool-type arch
-     Return the '<gdb:type>' object for a 'bool' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-longlong-type arch
-     Return the '<gdb:type>' object for a 'long long' type of
-     architecture ARCH.
-
- -- Scheme Procedure: arch-ulonglong-type arch
-     Return the '<gdb:type>' object for an 'unsigned long long' type of
-     architecture ARCH.
-
- -- Scheme Procedure: arch-int8-type arch
-     Return the '<gdb:type>' object for an 'int8' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-uint8-type arch
-     Return the '<gdb:type>' object for a 'uint8' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-int16-type arch
-     Return the '<gdb:type>' object for an 'int16' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-uint16-type arch
-     Return the '<gdb:type>' object for a 'uint16' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-int32-type arch
-     Return the '<gdb:type>' object for an 'int32' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-uint32-type arch
-     Return the '<gdb:type>' object for a 'uint32' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-int64-type arch
-     Return the '<gdb:type>' object for an 'int64' type of architecture
-     ARCH.
-
- -- Scheme Procedure: arch-uint64-type arch
-     Return the '<gdb:type>' object for a 'uint64' type of architecture
-     ARCH.
-
-   Example:
-
-     (gdb) guile (type-name (arch-uchar-type (current-arch)))
-     "unsigned char"
-
-
-File: gdb.info,  Node: Disassembly In Guile,  Next: I/O Ports in Guile,  Prev: Architectures In Guile,  Up: Guile API
-
-23.3.3.22 Disassembly In Guile
-..............................
-
-The disassembler can be invoked from Scheme code.  Furthermore, the
-disassembler can take a Guile port as input, allowing one to disassemble
-from any source, and not just target memory.
-
- -- Scheme Procedure: arch-disassemble arch start-pc [#:port port]
-          [#:offset offset] [#:size size] [#:count count]
-     Return a list of disassembled instructions starting from the memory
-     address START-PC.
-
-     The optional argument PORT specifies the input port to read bytes
-     from.  If PORT is '#f' then bytes are read from target memory.
-
-     The optional argument OFFSET specifies the address offset of the
-     first byte in PORT.  This is useful, for example, when PORT
-     specifies a 'bytevector' and you want the bytevector to be
-     disassembled as if it came from that address.  The START-PC passed
-     to the reader for PORT is offset by the same amount.
-
-     Example:
-          (gdb) guile (use-modules (rnrs io ports))
-          (gdb) guile (define pc (value->integer (parse-and-eval "$pc")))
-          (gdb) guile (define mem (open-memory #:start pc))
-          (gdb) guile (define bv (get-bytevector-n mem 10))
-          (gdb) guile (define bv-port (open-bytevector-input-port bv))
-          (gdb) guile (define arch (current-arch))
-          (gdb) guile (arch-disassemble arch pc #:port bv-port #:offset pc)
-          (((address . 4195516) (asm . "mov    $0x4005c8,%edi") (length . 5)))
-
-     The optional arguments SIZE and COUNT determine the number of
-     instructions in the returned list.  If either SIZE or COUNT is
-     specified as zero, then no instructions are disassembled and an
-     empty list is returned.  If both the optional arguments SIZE and
-     COUNT are specified, then a list of at most COUNT disassembled
-     instructions whose start address falls in the closed memory address
-     interval from START-PC to (START-PC + SIZE - 1) are returned.  If
-     SIZE is not specified, but COUNT is specified, then COUNT number of
-     instructions starting from the address START-PC are returned.  If
-     COUNT is not specified but SIZE is specified, then all instructions
-     whose start address falls in the closed memory address interval
-     from START-PC to (START-PC + SIZE - 1) are returned.  If neither
-     SIZE nor COUNT are specified, then a single instruction at START-PC
-     is returned.
-
-     Each element of the returned list is an alist (associative list)
-     with the following keys:
-
-     'address'
-          The value corresponding to this key is a Guile integer of the
-          memory address of the instruction.
-
-     'asm'
-          The value corresponding to this key is a string value which
-          represents the instruction with assembly language mnemonics.
-          The assembly language flavor used is the same as that
-          specified by the current CLI variable 'disassembly-flavor'.
-          *Note Machine Code::.
-
-     'length'
-          The value corresponding to this key is the length of the
-          instruction in bytes.
-
-
-File: gdb.info,  Node: I/O Ports in Guile,  Next: Memory Ports in Guile,  Prev: Disassembly In Guile,  Up: Guile API
-
-23.3.3.23 I/O Ports in Guile
-............................
-
- -- Scheme Procedure: input-port
-     Return GDB's input port as a Guile port object.
-
- -- Scheme Procedure: output-port
-     Return GDB's output port as a Guile port object.
-
- -- Scheme Procedure: error-port
-     Return GDB's error port as a Guile port object.
-
- -- Scheme Procedure: stdio-port? object
-     Return '#t' if OBJECT is a GDB stdio port.  Otherwise return '#f'.
-
-
-File: gdb.info,  Node: Memory Ports in Guile,  Next: Iterators In Guile,  Prev: I/O Ports in Guile,  Up: Guile API
-
-23.3.3.24 Memory Ports in Guile
-...............................
-
-GDB provides a 'port' interface to target memory.  This allows Guile
-code to read/write target memory using Guile's port and bytevector
-functionality.  The main routine is 'open-memory' which returns a port
-object.  One can then read/write memory using that object.
-
- -- Scheme Procedure: open-memory [#:mode mode] [#:start address]
-          [#:size size]
-     Return a port object that can be used for reading and writing
-     memory.  The port will be open according to MODE, which is the
-     standard mode argument to Guile port open routines, except that the
-     '"a"' and '"l"' modes are not supported.  *Note (guile)File
-     Ports::.  The '"b"' (binary) character may be present, but is
-     ignored: memory ports are binary only.  If '"0"' is appended then
-     the port is marked as unbuffered.  The default is '"r"', read-only
-     and buffered.
-
-     The chunk of memory that can be accessed can be bounded.  If both
-     START and SIZE are unspecified, all of memory can be accessed.  If
-     only START is specified, all of memory from that point on can be
-     accessed.  If only SIZE if specified, all memory in the range
-     [0,SIZE) can be accessed.  If both are specified, all memory in the
-     rane [START,START+SIZE) can be accessed.
-
- -- Scheme Procedure: memory-port?
-     Return '#t' if OBJECT is an object of type '<gdb:memory-port>'.
-     Otherwise return '#f'.
-
- -- Scheme Procedure: memory-port-range memory-port
-     Return the range of '<gdb:memory-port>' MEMORY-PORT as a list of
-     two elements: '(start end)'.  The range is START to END inclusive.
-
- -- Scheme Procedure: memory-port-read-buffer-size memory-port
-     Return the size of the read buffer of '<gdb:memory-port>'
-     MEMORY-PORT.
-
- -- Scheme Procedure: set-memory-port-read-buffer-size! memory-port size
-     Set the size of the read buffer of '<gdb:memory-port>' MEMORY-PORT
-     to SIZE.  The result is unspecified.
-
- -- Scheme Procedure: memory-port-write-buffer-size memory-port
-     Return the size of the write buffer of '<gdb:memory-port>'
-     MEMORY-PORT.
-
- -- Scheme Procedure: set-memory-port-write-buffer-size! memory-port
-          size
-     Set the size of the write buffer of '<gdb:memory-port>' MEMORY-PORT
-     to SIZE.  The result is unspecified.
-
-   A memory port is closed like any other port, with 'close-port'.
-
-   Combined with Guile's 'bytevectors', memory ports provide a lot of
-utility.  For example, to fill a buffer of 10 integers in memory, one
-can do something like the following.
-
-     ;; In the program: int buffer[10];
-     (use-modules (rnrs bytevectors))
-     (use-modules (rnrs io ports))
-     (define addr (parse-and-eval "buffer"))
-     (define n 10)
-     (define byte-size (* n 4))
-     (define mem-port (open-memory #:mode "r+" #:start
-                                   (value->integer addr) #:size byte-size))
-     (define byte-vec (make-bytevector byte-size))
-     (do ((i 0 (+ i 1)))
-         ((>= i n))
-         (bytevector-s32-native-set! byte-vec (* i 4) (* i 42)))
-     (put-bytevector mem-port byte-vec)
-     (close-port mem-port)
-
-
-File: gdb.info,  Node: Iterators In Guile,  Prev: Memory Ports in Guile,  Up: Guile API
-
-23.3.3.25 Iterators In Guile
-............................
-
-A simple iterator facility is provided to allow, for example, iterating
-over the set of program symbols without having to first construct a list
-of all of them.  A useful contribution would be to add support for SRFI
-41 and SRFI 45.
-
- -- Scheme Procedure: make-iterator object progress next!
-     A '<gdb:iterator>' object is constructed with the 'make-iterator'
-     procedure.  It takes three arguments: the object to be iterated
-     over, an object to record the progress of the iteration, and a
-     procedure to return the next element in the iteration, or an
-     implementation chosen value to denote the end of iteration.
-
-     By convention, end of iteration is marked with
-     '(end-of-iteration)', and may be tested with the
-     'end-of-iteration?' predicate.  The result of '(end-of-iteration)'
-     is chosen so that it is not otherwise used by the '(gdb)' module.
-     If you are using '<gdb:iterator>' in your own code it is your
-     responsibility to maintain this invariant.
-
-     A trivial example for illustration's sake:
-
-          (use-modules (gdb iterator))
-          (define my-list (list 1 2 3))
-          (define iter
-            (make-iterator my-list my-list
-                           (lambda (iter)
-                             (let ((l (iterator-progress iter)))
-                               (if (eq? l '())
-                                   (end-of-iteration)
-                                   (begin
-                                     (set-iterator-progress! iter (cdr l))
-                                     (car l)))))))
-
-     Here is a slightly more realistic example, which computes a list of
-     all the functions in 'my-global-block'.
-
-          (use-modules (gdb iterator))
-          (define this-sal (find-pc-line (frame-pc (selected-frame))))
-          (define this-symtab (sal-symtab this-sal))
-          (define this-global-block (symtab-global-block this-symtab))
-          (define syms-iter (make-block-symbols-iterator this-global-block))
-          (define functions (iterator-filter symbol-function? syms-iter))
-
- -- Scheme Procedure: iterator? object
-     Return '#t' if OBJECT is a '<gdb:iterator>' object.  Otherwise
-     return '#f'.
-
- -- Scheme Procedure: iterator-object iterator
-     Return the first argument that was passed to 'make-iterator'.  This
-     is the object being iterated over.
-
- -- Scheme Procedure: iterator-progress iterator
-     Return the object tracking iteration progress.
-
- -- Scheme Procedure: set-iterator-progress! iterator new-value
-     Set the object tracking iteration progress.
-
- -- Scheme Procedure: iterator-next! iterator
-     Invoke the procedure that was the third argument to
-     'make-iterator', passing it one argument, the '<gdb:iterator>'
-     object.  The result is either the next element in the iteration, or
-     an end marker as implemented by the 'next!' procedure.  By
-     convention the end marker is the result of '(end-of-iteration)'.
-
- -- Scheme Procedure: end-of-iteration
-     Return the Scheme object that denotes end of iteration.
-
- -- Scheme Procedure: end-of-iteration? object
-     Return '#t' if OBJECT is the end of iteration marker.  Otherwise
-     return '#f'.
-
-   These functions are provided by the '(gdb iterator)' module to assist
-in using iterators.
-
- -- Scheme Procedure: make-list-iterator list
-     Return a '<gdb:iterator>' object that will iterate over LIST.
-
- -- Scheme Procedure: iterator->list iterator
-     Return the elements pointed to by ITERATOR as a list.
-
- -- Scheme Procedure: iterator-map proc iterator
-     Return the list of objects obtained by applying PROC to the object
-     pointed to by ITERATOR and to each subsequent object.
-
- -- Scheme Procedure: iterator-for-each proc iterator
-     Apply PROC to each element pointed to by ITERATOR.  The result is
-     unspecified.
-
- -- Scheme Procedure: iterator-filter pred iterator
-     Return the list of elements pointed to by ITERATOR that satisfy
-     PRED.
-
- -- Scheme Procedure: iterator-until pred iterator
-     Run ITERATOR until the result of '(pred element)' is true and
-     return that as the result.  Otherwise return '#f'.
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info-5 ./gdb/doc/gdb.info-5
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info-5	2018-01-02 02:06:49.000000000 +0000
+++ ./gdb/doc/gdb.info-5	2018-01-09 02:08:27.000000000 +0000
@@ -1,6 +1,6 @@
 This is gdb.info, produced by makeinfo version 6.3 from gdb.texinfo.
 
-Copyright (C) 1988-2017 Free Software Foundation, Inc.
+Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -21,9 +21,9 @@ END-INFO-DIR-ENTRY
    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 8.0.1.20180102-git.
+Source-Level Debugger' for GDB (GDB) Version 8.0.90.20180109-git.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -37,6 +37,453 @@ this GNU Manual.  Buying copies from GNU
 developing GNU and promoting software freedom."
 
 
+File: gdb.info,  Node: Lazy Strings In Guile,  Next: Architectures In Guile,  Prev: Breakpoints In Guile,  Up: Guile API
+
+23.3.3.20 Guile representation of lazy strings.
+...............................................
+
+A "lazy string" is a string whose contents is not retrieved or encoded
+until it is needed.
+
+   A '<gdb:lazy-string>' is represented in GDB as an 'address' that
+points to a region of memory, an 'encoding' that will be used to encode
+that region of memory, and a 'length' to delimit the region of memory
+that represents the string.  The difference between a
+'<gdb:lazy-string>' and a string wrapped within a '<gdb:value>' is that
+a '<gdb:lazy-string>' will be treated differently by GDB when printing.
+A '<gdb:lazy-string>' is retrieved and encoded during printing, while a
+'<gdb:value>' wrapping a string is immediately retrieved and encoded on
+creation.
+
+   The following lazy-string-related procedures are provided by the
+'(gdb)' module:
+
+ -- Scheme Procedure: lazy-string? object
+     Return '#t' if OBJECT is an object of type '<gdb:lazy-string>'.
+     Otherwise return '#f'.
+
+ -- Scheme Procedure: lazy-string-address lazy-sring
+     Return the address of LAZY-STRING.
+
+ -- Scheme Procedure: lazy-string-length lazy-string
+     Return the length of LAZY-STRING in characters.  If the length is
+     -1, then the string will be fetched and encoded up to the first
+     null of appropriate width.
+
+ -- Scheme Procedure: lazy-string-encoding lazy-string
+     Return the encoding that will be applied to LAZY-STRING when the
+     string is printed by GDB.  If the encoding is not set, or contains
+     an empty string, then GDB will select the most appropriate encoding
+     when the string is printed.
+
+ -- Scheme Procedure: lazy-string-type lazy-string
+     Return the type that is represented by LAZY-STRING's type.  For a
+     lazy string this is a pointer or array type.  To resolve this to
+     the lazy string's character type, use 'type-target-type'.  *Note
+     Types In Guile::.
+
+ -- Scheme Procedure: lazy-string->value lazy-string
+     Convert the '<gdb:lazy-string>' to a '<gdb:value>'.  This value
+     will point to the string in memory, but will lose all the delayed
+     retrieval, encoding and handling that GDB applies to a
+     '<gdb:lazy-string>'.
+
+
+File: gdb.info,  Node: Architectures In Guile,  Next: Disassembly In Guile,  Prev: Lazy Strings In Guile,  Up: Guile API
+
+23.3.3.21 Guile representation of architectures
+...............................................
+
+GDB uses architecture specific parameters and artifacts in a number of
+its various computations.  An architecture is represented by an instance
+of the '<gdb:arch>' class.
+
+   The following architecture-related procedures are provided by the
+'(gdb)' module:
+
+ -- Scheme Procedure: arch? object
+     Return '#t' if OBJECT is an object of type '<gdb:arch>'.  Otherwise
+     return '#f'.
+
+ -- Scheme Procedure: current-arch
+     Return the current architecture as a '<gdb:arch>' object.
+
+ -- Scheme Procedure: arch-name arch
+     Return the name (string value) of '<gdb:arch>' ARCH.
+
+ -- Scheme Procedure: arch-charset arch
+     Return name of target character set of '<gdb:arch>' ARCH.
+
+ -- Scheme Procedure: arch-wide-charset
+     Return name of target wide character set of '<gdb:arch>' ARCH.
+
+   Each architecture provides a set of predefined types, obtained by the
+following functions.
+
+ -- Scheme Procedure: arch-void-type arch
+     Return the '<gdb:type>' object for a 'void' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-char-type arch
+     Return the '<gdb:type>' object for a 'char' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-short-type arch
+     Return the '<gdb:type>' object for a 'short' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-int-type arch
+     Return the '<gdb:type>' object for an 'int' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-long-type arch
+     Return the '<gdb:type>' object for a 'long' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-schar-type arch
+     Return the '<gdb:type>' object for a 'signed char' type of
+     architecture ARCH.
+
+ -- Scheme Procedure: arch-uchar-type arch
+     Return the '<gdb:type>' object for an 'unsigned char' type of
+     architecture ARCH.
+
+ -- Scheme Procedure: arch-ushort-type arch
+     Return the '<gdb:type>' object for an 'unsigned short' type of
+     architecture ARCH.
+
+ -- Scheme Procedure: arch-uint-type arch
+     Return the '<gdb:type>' object for an 'unsigned int' type of
+     architecture ARCH.
+
+ -- Scheme Procedure: arch-ulong-type arch
+     Return the '<gdb:type>' object for an 'unsigned long' type of
+     architecture ARCH.
+
+ -- Scheme Procedure: arch-float-type arch
+     Return the '<gdb:type>' object for a 'float' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-double-type arch
+     Return the '<gdb:type>' object for a 'double' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-longdouble-type arch
+     Return the '<gdb:type>' object for a 'long double' type of
+     architecture ARCH.
+
+ -- Scheme Procedure: arch-bool-type arch
+     Return the '<gdb:type>' object for a 'bool' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-longlong-type arch
+     Return the '<gdb:type>' object for a 'long long' type of
+     architecture ARCH.
+
+ -- Scheme Procedure: arch-ulonglong-type arch
+     Return the '<gdb:type>' object for an 'unsigned long long' type of
+     architecture ARCH.
+
+ -- Scheme Procedure: arch-int8-type arch
+     Return the '<gdb:type>' object for an 'int8' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-uint8-type arch
+     Return the '<gdb:type>' object for a 'uint8' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-int16-type arch
+     Return the '<gdb:type>' object for an 'int16' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-uint16-type arch
+     Return the '<gdb:type>' object for a 'uint16' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-int32-type arch
+     Return the '<gdb:type>' object for an 'int32' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-uint32-type arch
+     Return the '<gdb:type>' object for a 'uint32' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-int64-type arch
+     Return the '<gdb:type>' object for an 'int64' type of architecture
+     ARCH.
+
+ -- Scheme Procedure: arch-uint64-type arch
+     Return the '<gdb:type>' object for a 'uint64' type of architecture
+     ARCH.
+
+   Example:
+
+     (gdb) guile (type-name (arch-uchar-type (current-arch)))
+     "unsigned char"
+
+
+File: gdb.info,  Node: Disassembly In Guile,  Next: I/O Ports in Guile,  Prev: Architectures In Guile,  Up: Guile API
+
+23.3.3.22 Disassembly In Guile
+..............................
+
+The disassembler can be invoked from Scheme code.  Furthermore, the
+disassembler can take a Guile port as input, allowing one to disassemble
+from any source, and not just target memory.
+
+ -- Scheme Procedure: arch-disassemble arch start-pc [#:port port]
+          [#:offset offset] [#:size size] [#:count count]
+     Return a list of disassembled instructions starting from the memory
+     address START-PC.
+
+     The optional argument PORT specifies the input port to read bytes
+     from.  If PORT is '#f' then bytes are read from target memory.
+
+     The optional argument OFFSET specifies the address offset of the
+     first byte in PORT.  This is useful, for example, when PORT
+     specifies a 'bytevector' and you want the bytevector to be
+     disassembled as if it came from that address.  The START-PC passed
+     to the reader for PORT is offset by the same amount.
+
+     Example:
+          (gdb) guile (use-modules (rnrs io ports))
+          (gdb) guile (define pc (value->integer (parse-and-eval "$pc")))
+          (gdb) guile (define mem (open-memory #:start pc))
+          (gdb) guile (define bv (get-bytevector-n mem 10))
+          (gdb) guile (define bv-port (open-bytevector-input-port bv))
+          (gdb) guile (define arch (current-arch))
+          (gdb) guile (arch-disassemble arch pc #:port bv-port #:offset pc)
+          (((address . 4195516) (asm . "mov    $0x4005c8,%edi") (length . 5)))
+
+     The optional arguments SIZE and COUNT determine the number of
+     instructions in the returned list.  If either SIZE or COUNT is
+     specified as zero, then no instructions are disassembled and an
+     empty list is returned.  If both the optional arguments SIZE and
+     COUNT are specified, then a list of at most COUNT disassembled
+     instructions whose start address falls in the closed memory address
+     interval from START-PC to (START-PC + SIZE - 1) are returned.  If
+     SIZE is not specified, but COUNT is specified, then COUNT number of
+     instructions starting from the address START-PC are returned.  If
+     COUNT is not specified but SIZE is specified, then all instructions
+     whose start address falls in the closed memory address interval
+     from START-PC to (START-PC + SIZE - 1) are returned.  If neither
+     SIZE nor COUNT are specified, then a single instruction at START-PC
+     is returned.
+
+     Each element of the returned list is an alist (associative list)
+     with the following keys:
+
+     'address'
+          The value corresponding to this key is a Guile integer of the
+          memory address of the instruction.
+
+     'asm'
+          The value corresponding to this key is a string value which
+          represents the instruction with assembly language mnemonics.
+          The assembly language flavor used is the same as that
+          specified by the current CLI variable 'disassembly-flavor'.
+          *Note Machine Code::.
+
+     'length'
+          The value corresponding to this key is the length of the
+          instruction in bytes.
+
+
+File: gdb.info,  Node: I/O Ports in Guile,  Next: Memory Ports in Guile,  Prev: Disassembly In Guile,  Up: Guile API
+
+23.3.3.23 I/O Ports in Guile
+............................
+
+ -- Scheme Procedure: input-port
+     Return GDB's input port as a Guile port object.
+
+ -- Scheme Procedure: output-port
+     Return GDB's output port as a Guile port object.
+
+ -- Scheme Procedure: error-port
+     Return GDB's error port as a Guile port object.
+
+ -- Scheme Procedure: stdio-port? object
+     Return '#t' if OBJECT is a GDB stdio port.  Otherwise return '#f'.
+
+
+File: gdb.info,  Node: Memory Ports in Guile,  Next: Iterators In Guile,  Prev: I/O Ports in Guile,  Up: Guile API
+
+23.3.3.24 Memory Ports in Guile
+...............................
+
+GDB provides a 'port' interface to target memory.  This allows Guile
+code to read/write target memory using Guile's port and bytevector
+functionality.  The main routine is 'open-memory' which returns a port
+object.  One can then read/write memory using that object.
+
+ -- Scheme Procedure: open-memory [#:mode mode] [#:start address]
+          [#:size size]
+     Return a port object that can be used for reading and writing
+     memory.  The port will be open according to MODE, which is the
+     standard mode argument to Guile port open routines, except that the
+     '"a"' and '"l"' modes are not supported.  *Note (guile)File
+     Ports::.  The '"b"' (binary) character may be present, but is
+     ignored: memory ports are binary only.  If '"0"' is appended then
+     the port is marked as unbuffered.  The default is '"r"', read-only
+     and buffered.
+
+     The chunk of memory that can be accessed can be bounded.  If both
+     START and SIZE are unspecified, all of memory can be accessed.  If
+     only START is specified, all of memory from that point on can be
+     accessed.  If only SIZE if specified, all memory in the range
+     [0,SIZE) can be accessed.  If both are specified, all memory in the
+     rane [START,START+SIZE) can be accessed.
+
+ -- Scheme Procedure: memory-port?
+     Return '#t' if OBJECT is an object of type '<gdb:memory-port>'.
+     Otherwise return '#f'.
+
+ -- Scheme Procedure: memory-port-range memory-port
+     Return the range of '<gdb:memory-port>' MEMORY-PORT as a list of
+     two elements: '(start end)'.  The range is START to END inclusive.
+
+ -- Scheme Procedure: memory-port-read-buffer-size memory-port
+     Return the size of the read buffer of '<gdb:memory-port>'
+     MEMORY-PORT.
+
+ -- Scheme Procedure: set-memory-port-read-buffer-size! memory-port size
+     Set the size of the read buffer of '<gdb:memory-port>' MEMORY-PORT
+     to SIZE.  The result is unspecified.
+
+ -- Scheme Procedure: memory-port-write-buffer-size memory-port
+     Return the size of the write buffer of '<gdb:memory-port>'
+     MEMORY-PORT.
+
+ -- Scheme Procedure: set-memory-port-write-buffer-size! memory-port
+          size
+     Set the size of the write buffer of '<gdb:memory-port>' MEMORY-PORT
+     to SIZE.  The result is unspecified.
+
+   A memory port is closed like any other port, with 'close-port'.
+
+   Combined with Guile's 'bytevectors', memory ports provide a lot of
+utility.  For example, to fill a buffer of 10 integers in memory, one
+can do something like the following.
+
+     ;; In the program: int buffer[10];
+     (use-modules (rnrs bytevectors))
+     (use-modules (rnrs io ports))
+     (define addr (parse-and-eval "buffer"))
+     (define n 10)
+     (define byte-size (* n 4))
+     (define mem-port (open-memory #:mode "r+" #:start
+                                   (value->integer addr) #:size byte-size))
+     (define byte-vec (make-bytevector byte-size))
+     (do ((i 0 (+ i 1)))
+         ((>= i n))
+         (bytevector-s32-native-set! byte-vec (* i 4) (* i 42)))
+     (put-bytevector mem-port byte-vec)
+     (close-port mem-port)
+
+
+File: gdb.info,  Node: Iterators In Guile,  Prev: Memory Ports in Guile,  Up: Guile API
+
+23.3.3.25 Iterators In Guile
+............................
+
+A simple iterator facility is provided to allow, for example, iterating
+over the set of program symbols without having to first construct a list
+of all of them.  A useful contribution would be to add support for SRFI
+41 and SRFI 45.
+
+ -- Scheme Procedure: make-iterator object progress next!
+     A '<gdb:iterator>' object is constructed with the 'make-iterator'
+     procedure.  It takes three arguments: the object to be iterated
+     over, an object to record the progress of the iteration, and a
+     procedure to return the next element in the iteration, or an
+     implementation chosen value to denote the end of iteration.
+
+     By convention, end of iteration is marked with
+     '(end-of-iteration)', and may be tested with the
+     'end-of-iteration?' predicate.  The result of '(end-of-iteration)'
+     is chosen so that it is not otherwise used by the '(gdb)' module.
+     If you are using '<gdb:iterator>' in your own code it is your
+     responsibility to maintain this invariant.
+
+     A trivial example for illustration's sake:
+
+          (use-modules (gdb iterator))
+          (define my-list (list 1 2 3))
+          (define iter
+            (make-iterator my-list my-list
+                           (lambda (iter)
+                             (let ((l (iterator-progress iter)))
+                               (if (eq? l '())
+                                   (end-of-iteration)
+                                   (begin
+                                     (set-iterator-progress! iter (cdr l))
+                                     (car l)))))))
+
+     Here is a slightly more realistic example, which computes a list of
+     all the functions in 'my-global-block'.
+
+          (use-modules (gdb iterator))
+          (define this-sal (find-pc-line (frame-pc (selected-frame))))
+          (define this-symtab (sal-symtab this-sal))
+          (define this-global-block (symtab-global-block this-symtab))
+          (define syms-iter (make-block-symbols-iterator this-global-block))
+          (define functions (iterator-filter symbol-function? syms-iter))
+
+ -- Scheme Procedure: iterator? object
+     Return '#t' if OBJECT is a '<gdb:iterator>' object.  Otherwise
+     return '#f'.
+
+ -- Scheme Procedure: iterator-object iterator
+     Return the first argument that was passed to 'make-iterator'.  This
+     is the object being iterated over.
+
+ -- Scheme Procedure: iterator-progress iterator
+     Return the object tracking iteration progress.
+
+ -- Scheme Procedure: set-iterator-progress! iterator new-value
+     Set the object tracking iteration progress.
+
+ -- Scheme Procedure: iterator-next! iterator
+     Invoke the procedure that was the third argument to
+     'make-iterator', passing it one argument, the '<gdb:iterator>'
+     object.  The result is either the next element in the iteration, or
+     an end marker as implemented by the 'next!' procedure.  By
+     convention the end marker is the result of '(end-of-iteration)'.
+
+ -- Scheme Procedure: end-of-iteration
+     Return the Scheme object that denotes end of iteration.
+
+ -- Scheme Procedure: end-of-iteration? object
+     Return '#t' if OBJECT is the end of iteration marker.  Otherwise
+     return '#f'.
+
+   These functions are provided by the '(gdb iterator)' module to assist
+in using iterators.
+
+ -- Scheme Procedure: make-list-iterator list
+     Return a '<gdb:iterator>' object that will iterate over LIST.
+
+ -- Scheme Procedure: iterator->list iterator
+     Return the elements pointed to by ITERATOR as a list.
+
+ -- Scheme Procedure: iterator-map proc iterator
+     Return the list of objects obtained by applying PROC to the object
+     pointed to by ITERATOR and to each subsequent object.
+
+ -- Scheme Procedure: iterator-for-each proc iterator
+     Apply PROC to each element pointed to by ITERATOR.  The result is
+     unspecified.
+
+ -- Scheme Procedure: iterator-filter pred iterator
+     Return the list of elements pointed to by ITERATOR that satisfy
+     PRED.
+
+ -- Scheme Procedure: iterator-until pred iterator
+     Run ITERATOR until the result of '(pred element)' is true and
+     return that as the result.  Otherwise return '#f'.
+
+
 File: gdb.info,  Node: Guile Auto-loading,  Next: Guile Modules,  Prev: Guile API,  Up: Guile
 
 23.3.4 Guile Auto-loading
@@ -791,6 +1238,9 @@ mode, where the following key bindings a
 'n'
      next
 
+'o'
+     nexti.  The shortcut letter 'o' stands for "step Over".
+
 'q'
      exit the SingleKey mode.
 
@@ -800,6 +1250,9 @@ mode, where the following key bindings a
 's'
      step
 
+'i'
+     stepi.  The shortcut letter 'i' stands for "step Into".
+
 'u'
      up
 
@@ -2120,24 +2573,35 @@ File: gdb.info,  Node: GDB/MI Thread Inf
 --------------------------------
 
 Whenever GDB has to report an information about a thread, it uses a
-tuple with the following fields:
+tuple with the following fields.  The fields are always present unless
+stated otherwise.
 
 'id'
-     The global numeric id assigned to the thread by GDB.  This field is
-     always present.
+     The global numeric id assigned to the thread by GDB.
 
 'target-id'
-     Target-specific string identifying the thread.  This field is
-     always present.
+     The target-specific string identifying the thread.
 
 'details'
      Additional information about the thread provided by the target.  It
      is supposed to be human-readable and not interpreted by the
      frontend.  This field is optional.
 
+'name'
+     The name of the thread.  If the user specified a name using the
+     'thread name' command, then this name is given.  Otherwise, if GDB
+     can extract the thread name from the target, then that name is
+     given.  If GDB cannot find the thread name, then this field is
+     omitted.
+
 'state'
-     Either 'stopped' or 'running', depending on whether the thread is
-     presently running.  This field is always present.
+     The execution state of the thread, either 'stopped' or 'running',
+     depending on whether the thread is presently running.
+
+'frame'
+     The stack frame currently executing in the thread.  This field is
+     only present if the thread is stopped.  Its format is documented in
+     *note GDB/MI Frame Information::.
 
 'core'
      The value of this field is an integer number of the processor core
@@ -2152,7 +2616,9 @@ File: gdb.info,  Node: GDB/MI Ada Except
 Whenever a '*stopped' record is emitted because the program stopped
 after hitting an exception catchpoint (*note Set Catchpoints::), GDB
 provides the name of the exception that was raised via the
-'exception-name' field.
+'exception-name' field.  Also, for exceptions that were raised with an
+exception message, GDB provides that message via the 'exception-message'
+field.
 
 
 File: gdb.info,  Node: GDB/MI Simple Examples,  Next: GDB/MI Command Description Format,  Prev: GDB/MI Output Records,  Up: GDB/MI
@@ -3269,48 +3735,17 @@ The 'info thread' command prints the sam
 Result
 ......
 
-The result is a list of threads.  The following attributes are defined
-for a given thread:
-
-'current'
-     This field exists only for the current thread.  It has the value
-     '*'.
-
-'id'
-     The global identifier that GDB uses to refer to the thread.
-
-'target-id'
-     The identifier that the target uses to refer to the thread.
-
-'details'
-     Extra information about the thread, in a target-specific format.
-     This field is optional.
-
-'name'
-     The name of the thread.  If the user specified a name using the
-     'thread name' command, then this name is given.  Otherwise, if GDB
-     can extract the thread name from the target, then that name is
-     given.  If GDB cannot find the thread name, then this field is
-     omitted.
-
-'frame'
-     The stack frame currently executing in the thread.
-
-'state'
-     The thread's state.  The 'state' field may have the following
-     values:
+The result contains the following attributes:
 
-     'stopped'
-          The thread is stopped.  Frame information is available for
-          stopped threads.
-
-     'running'
-          The thread is running.  There's no frame information for
-          running threads.
+'threads'
+     A list of threads.  The format of the elements of the list is
+     described in *note GDB/MI Thread Information::.
 
-'core'
-     If GDB can find the CPU core on which this thread is running, then
-     this field is the core identifier.  This field is optional.
+'current-thread-id'
+     The global id of the currently selected thread.  This field is
+     omitted if there is no selected thread (for example, when the
+     selected inferior is not running, and therefore has no threads) or
+     if a THREAD-ID argument was passed to the command.
 
 Example
 .......
@@ -8177,644 +8612,3 @@ keyboard lacks a <LFD> key, typing <C-j>
 character.  The <RET> key may be labeled <Return> or <Enter> on some
 keyboards.
 
-
-File: gdb.info,  Node: Readline Interaction,  Next: Readline Init File,  Prev: Introduction and Notation,  Up: Command Line Editing
-
-32.2 Readline Interaction
-=========================
-
-Often during an interactive session you type in a long line of text,
-only to notice that the first word on the line is misspelled.  The
-Readline library gives you a set of commands for manipulating the text
-as you type it in, allowing you to just fix your typo, and not forcing
-you to retype the majority of the line.  Using these editing commands,
-you move the cursor to the place that needs correction, and delete or
-insert the text of the corrections.  Then, when you are satisfied with
-the line, you simply press <RET>.  You do not have to be at the end of
-the line to press <RET>; the entire line is accepted regardless of the
-location of the cursor within the line.
-
-* Menu:
-
-* Readline Bare Essentials::	The least you need to know about Readline.
-* Readline Movement Commands::	Moving about the input line.
-* Readline Killing Commands::	How to delete text, and how to get it back!
-* Readline Arguments::		Giving numeric arguments to commands.
-* Searching::			Searching through previous lines.
-
-
-File: gdb.info,  Node: Readline Bare Essentials,  Next: Readline Movement Commands,  Up: Readline Interaction
-
-32.2.1 Readline Bare Essentials
--------------------------------
-
-In order to enter characters into the line, simply type them.  The typed
-character appears where the cursor was, and then the cursor moves one
-space to the right.  If you mistype a character, you can use your erase
-character to back up and delete the mistyped character.
-
-   Sometimes you may mistype a character, and not notice the error until
-you have typed several other characters.  In that case, you can type
-'C-b' to move the cursor to the left, and then correct your mistake.
-Afterwards, you can move the cursor to the right with 'C-f'.
-
-   When you add text in the middle of a line, you will notice that
-characters to the right of the cursor are 'pushed over' to make room for
-the text that you have inserted.  Likewise, when you delete text behind
-the cursor, characters to the right of the cursor are 'pulled back' to
-fill in the blank space created by the removal of the text.  A list of
-the bare essentials for editing the text of an input line follows.
-
-'C-b'
-     Move back one character.
-'C-f'
-     Move forward one character.
-<DEL> or <Backspace>
-     Delete the character to the left of the cursor.
-'C-d'
-     Delete the character underneath the cursor.
-Printing characters
-     Insert the character into the line at the cursor.
-'C-_' or 'C-x C-u'
-     Undo the last editing command.  You can undo all the way back to an
-     empty line.
-
-(Depending on your configuration, the <Backspace> key be set to delete
-the character to the left of the cursor and the <DEL> key set to delete
-the character underneath the cursor, like 'C-d', rather than the
-character to the left of the cursor.)
-
-
-File: gdb.info,  Node: Readline Movement Commands,  Next: Readline Killing Commands,  Prev: Readline Bare Essentials,  Up: Readline Interaction
-
-32.2.2 Readline Movement Commands
----------------------------------
-
-The above table describes the most basic keystrokes that you need in
-order to do editing of the input line.  For your convenience, many other
-commands have been added in addition to 'C-b', 'C-f', 'C-d', and <DEL>.
-Here are some commands for moving more rapidly about the line.
-
-'C-a'
-     Move to the start of the line.
-'C-e'
-     Move to the end of the line.
-'M-f'
-     Move forward a word, where a word is composed of letters and
-     digits.
-'M-b'
-     Move backward a word.
-'C-l'
-     Clear the screen, reprinting the current line at the top.
-
-   Notice how 'C-f' moves forward a character, while 'M-f' moves forward
-a word.  It is a loose convention that control keystrokes operate on
-characters while meta keystrokes operate on words.
-
-
-File: gdb.info,  Node: Readline Killing Commands,  Next: Readline Arguments,  Prev: Readline Movement Commands,  Up: Readline Interaction
-
-32.2.3 Readline Killing Commands
---------------------------------
-
-"Killing" text means to delete the text from the line, but to save it
-away for later use, usually by "yanking" (re-inserting) it back into the
-line.  ('Cut' and 'paste' are more recent jargon for 'kill' and 'yank'.)
-
-   If the description for a command says that it 'kills' text, then you
-can be sure that you can get the text back in a different (or the same)
-place later.
-
-   When you use a kill command, the text is saved in a "kill-ring".  Any
-number of consecutive kills save all of the killed text together, so
-that when you yank it back, you get it all.  The kill ring is not line
-specific; the text that you killed on a previously typed line is
-available to be yanked back later, when you are typing another line.
-
-   Here is the list of commands for killing text.
-
-'C-k'
-     Kill the text from the current cursor position to the end of the
-     line.
-
-'M-d'
-     Kill from the cursor to the end of the current word, or, if between
-     words, to the end of the next word.  Word boundaries are the same
-     as those used by 'M-f'.
-
-'M-<DEL>'
-     Kill from the cursor the start of the current word, or, if between
-     words, to the start of the previous word.  Word boundaries are the
-     same as those used by 'M-b'.
-
-'C-w'
-     Kill from the cursor to the previous whitespace.  This is different
-     than 'M-<DEL>' because the word boundaries differ.
-
-   Here is how to "yank" the text back into the line.  Yanking means to
-copy the most-recently-killed text from the kill buffer.
-
-'C-y'
-     Yank the most recently killed text back into the buffer at the
-     cursor.
-
-'M-y'
-     Rotate the kill-ring, and yank the new top.  You can only do this
-     if the prior command is 'C-y' or 'M-y'.
-
-
-File: gdb.info,  Node: Readline Arguments,  Next: Searching,  Prev: Readline Killing Commands,  Up: Readline Interaction
-
-32.2.4 Readline Arguments
--------------------------
-
-You can pass numeric arguments to Readline commands.  Sometimes the
-argument acts as a repeat count, other times it is the sign of the
-argument that is significant.  If you pass a negative argument to a
-command which normally acts in a forward direction, that command will
-act in a backward direction.  For example, to kill text back to the
-start of the line, you might type 'M-- C-k'.
-
-   The general way to pass numeric arguments to a command is to type
-meta digits before the command.  If the first 'digit' typed is a minus
-sign ('-'), then the sign of the argument will be negative.  Once you
-have typed one meta digit to get the argument started, you can type the
-remainder of the digits, and then the command.  For example, to give the
-'C-d' command an argument of 10, you could type 'M-1 0 C-d', which will
-delete the next ten characters on the input line.
-
-
-File: gdb.info,  Node: Searching,  Prev: Readline Arguments,  Up: Readline Interaction
-
-32.2.5 Searching for Commands in the History
---------------------------------------------
-
-Readline provides commands for searching through the command history for
-lines containing a specified string.  There are two search modes:
-"incremental" and "non-incremental".
-
-   Incremental searches begin before the user has finished typing the
-search string.  As each character of the search string is typed,
-Readline displays the next entry from the history matching the string
-typed so far.  An incremental search requires only as many characters as
-needed to find the desired history entry.  To search backward in the
-history for a particular string, type 'C-r'.  Typing 'C-s' searches
-forward through the history.  The characters present in the value of the
-'isearch-terminators' variable are used to terminate an incremental
-search.  If that variable has not been assigned a value, the <ESC> and
-'C-J' characters will terminate an incremental search.  'C-g' will abort
-an incremental search and restore the original line.  When the search is
-terminated, the history entry containing the search string becomes the
-current line.
-
-   To find other matching entries in the history list, type 'C-r' or
-'C-s' as appropriate.  This will search backward or forward in the
-history for the next entry matching the search string typed so far.  Any
-other key sequence bound to a Readline command will terminate the search
-and execute that command.  For instance, a <RET> will terminate the
-search and accept the line, thereby executing the command from the
-history list.  A movement command will terminate the search, make the
-last line found the current line, and begin editing.
-
-   Readline remembers the last incremental search string.  If two 'C-r's
-are typed without any intervening characters defining a new search
-string, any remembered search string is used.
-
-   Non-incremental searches read the entire search string before
-starting to search for matching history lines.  The search string may be
-typed by the user or be part of the contents of the current line.
-
-
-File: gdb.info,  Node: Readline Init File,  Next: Bindable Readline Commands,  Prev: Readline Interaction,  Up: Command Line Editing
-
-32.3 Readline Init File
-=======================
-
-Although the Readline library comes with a set of Emacs-like keybindings
-installed by default, it is possible to use a different set of
-keybindings.  Any user can customize programs that use Readline by
-putting commands in an "inputrc" file, conventionally in his home
-directory.  The name of this file is taken from the value of the
-environment variable 'INPUTRC'.  If that variable is unset, the default
-is '~/.inputrc'.  If that file does not exist or cannot be read, the
-ultimate default is '/etc/inputrc'.
-
-   When a program which uses the Readline library starts up, the init
-file is read, and the key bindings are set.
-
-   In addition, the 'C-x C-r' command re-reads this init file, thus
-incorporating any changes that you might have made to it.
-
-* Menu:
-
-* Readline Init File Syntax::	Syntax for the commands in the inputrc file.
-
-* Conditional Init Constructs::	Conditional key bindings in the inputrc file.
-
-* Sample Init File::		An example inputrc file.
-
-
-File: gdb.info,  Node: Readline Init File Syntax,  Next: Conditional Init Constructs,  Up: Readline Init File
-
-32.3.1 Readline Init File Syntax
---------------------------------
-
-There are only a few basic constructs allowed in the Readline init file.
-Blank lines are ignored.  Lines beginning with a '#' are comments.
-Lines beginning with a '$' indicate conditional constructs (*note
-Conditional Init Constructs::).  Other lines denote variable settings
-and key bindings.
-
-Variable Settings
-     You can modify the run-time behavior of Readline by altering the
-     values of variables in Readline using the 'set' command within the
-     init file.  The syntax is simple:
-
-          set VARIABLE VALUE
-
-     Here, for example, is how to change from the default Emacs-like key
-     binding to use 'vi' line editing commands:
-
-          set editing-mode vi
-
-     Variable names and values, where appropriate, are recognized
-     without regard to case.  Unrecognized variable names are ignored.
-
-     Boolean variables (those that can be set to on or off) are set to
-     on if the value is null or empty, ON (case-insensitive), or 1.  Any
-     other value results in the variable being set to off.
-
-     A great deal of run-time behavior is changeable with the following
-     variables.
-
-     'bell-style'
-          Controls what happens when Readline wants to ring the terminal
-          bell.  If set to 'none', Readline never rings the bell.  If
-          set to 'visible', Readline uses a visible bell if one is
-          available.  If set to 'audible' (the default), Readline
-          attempts to ring the terminal's bell.
-
-     'bind-tty-special-chars'
-          If set to 'on', Readline attempts to bind the control
-          characters treated specially by the kernel's terminal driver
-          to their Readline equivalents.
-
-     'comment-begin'
-          The string to insert at the beginning of the line when the
-          'insert-comment' command is executed.  The default value is
-          '"#"'.
-
-     'completion-display-width'
-          The number of screen columns used to display possible matches
-          when performing completion.  The value is ignored if it is
-          less than 0 or greater than the terminal screen width.  A
-          value of 0 will cause matches to be displayed one per line.
-          The default value is -1.
-
-     'completion-ignore-case'
-          If set to 'on', Readline performs filename matching and
-          completion in a case-insensitive fashion.  The default value
-          is 'off'.
-
-     'completion-map-case'
-          If set to 'on', and COMPLETION-IGNORE-CASE is enabled,
-          Readline treats hyphens ('-') and underscores ('_') as
-          equivalent when performing case-insensitive filename matching
-          and completion.
-
-     'completion-prefix-display-length'
-          The length in characters of the common prefix of a list of
-          possible completions that is displayed without modification.
-          When set to a value greater than zero, common prefixes longer
-          than this value are replaced with an ellipsis when displaying
-          possible completions.
-
-     'completion-query-items'
-          The number of possible completions that determines when the
-          user is asked whether the list of possibilities should be
-          displayed.  If the number of possible completions is greater
-          than this value, Readline will ask the user whether or not he
-          wishes to view them; otherwise, they are simply listed.  This
-          variable must be set to an integer value greater than or equal
-          to 0.  A negative value means Readline should never ask.  The
-          default limit is '100'.
-
-     'convert-meta'
-          If set to 'on', Readline will convert characters with the
-          eighth bit set to an ASCII key sequence by stripping the
-          eighth bit and prefixing an <ESC> character, converting them
-          to a meta-prefixed key sequence.  The default value is 'on'.
-
-     'disable-completion'
-          If set to 'On', Readline will inhibit word completion.
-          Completion characters will be inserted into the line as if
-          they had been mapped to 'self-insert'.  The default is 'off'.
-
-     'editing-mode'
-          The 'editing-mode' variable controls which default set of key
-          bindings is used.  By default, Readline starts up in Emacs
-          editing mode, where the keystrokes are most similar to Emacs.
-          This variable can be set to either 'emacs' or 'vi'.
-
-     'echo-control-characters'
-          When set to 'on', on operating systems that indicate they
-          support it, readline echoes a character corresponding to a
-          signal generated from the keyboard.  The default is 'on'.
-
-     'enable-keypad'
-          When set to 'on', Readline will try to enable the application
-          keypad when it is called.  Some systems need this to enable
-          the arrow keys.  The default is 'off'.
-
-     'enable-meta-key'
-          When set to 'on', Readline will try to enable any meta
-          modifier key the terminal claims to support when it is called.
-          On many terminals, the meta key is used to send eight-bit
-          characters.  The default is 'on'.
-
-     'expand-tilde'
-          If set to 'on', tilde expansion is performed when Readline
-          attempts word completion.  The default is 'off'.
-
-     'history-preserve-point'
-          If set to 'on', the history code attempts to place the point
-          (the current cursor position) at the same location on each
-          history line retrieved with 'previous-history' or
-          'next-history'.  The default is 'off'.
-
-     'history-size'
-          Set the maximum number of history entries saved in the history
-          list.  If set to zero, the number of entries in the history
-          list is not limited.
-
-     'horizontal-scroll-mode'
-          This variable can be set to either 'on' or 'off'.  Setting it
-          to 'on' means that the text of the lines being edited will
-          scroll horizontally on a single screen line when they are
-          longer than the width of the screen, instead of wrapping onto
-          a new screen line.  By default, this variable is set to 'off'.
-
-     'input-meta'
-          If set to 'on', Readline will enable eight-bit input (it will
-          not clear the eighth bit in the characters it reads),
-          regardless of what the terminal claims it can support.  The
-          default value is 'off'.  The name 'meta-flag' is a synonym for
-          this variable.
-
-     'isearch-terminators'
-          The string of characters that should terminate an incremental
-          search without subsequently executing the character as a
-          command (*note Searching::).  If this variable has not been
-          given a value, the characters <ESC> and 'C-J' will terminate
-          an incremental search.
-
-     'keymap'
-          Sets Readline's idea of the current keymap for key binding
-          commands.  Acceptable 'keymap' names are 'emacs',
-          'emacs-standard', 'emacs-meta', 'emacs-ctlx', 'vi', 'vi-move',
-          'vi-command', and 'vi-insert'.  'vi' is equivalent to
-          'vi-command'; 'emacs' is equivalent to 'emacs-standard'.  The
-          default value is 'emacs'.  The value of the 'editing-mode'
-          variable also affects the default keymap.
-
-     'mark-directories'
-          If set to 'on', completed directory names have a slash
-          appended.  The default is 'on'.
-
-     'mark-modified-lines'
-          This variable, when set to 'on', causes Readline to display an
-          asterisk ('*') at the start of history lines which have been
-          modified.  This variable is 'off' by default.
-
-     'mark-symlinked-directories'
-          If set to 'on', completed names which are symbolic links to
-          directories have a slash appended (subject to the value of
-          'mark-directories').  The default is 'off'.
-
-     'match-hidden-files'
-          This variable, when set to 'on', causes Readline to match
-          files whose names begin with a '.' (hidden files) when
-          performing filename completion.  If set to 'off', the leading
-          '.' must be supplied by the user in the filename to be
-          completed.  This variable is 'on' by default.
-
-     'menu-complete-display-prefix'
-          If set to 'on', menu completion displays the common prefix of
-          the list of possible completions (which may be empty) before
-          cycling through the list.  The default is 'off'.
-
-     'output-meta'
-          If set to 'on', Readline will display characters with the
-          eighth bit set directly rather than as a meta-prefixed escape
-          sequence.  The default is 'off'.
-
-     'page-completions'
-          If set to 'on', Readline uses an internal 'more'-like pager to
-          display a screenful of possible completions at a time.  This
-          variable is 'on' by default.
-
-     'print-completions-horizontally'
-          If set to 'on', Readline will display completions with matches
-          sorted horizontally in alphabetical order, rather than down
-          the screen.  The default is 'off'.
-
-     'revert-all-at-newline'
-          If set to 'on', Readline will undo all changes to history
-          lines before returning when 'accept-line' is executed.  By
-          default, history lines may be modified and retain individual
-          undo lists across calls to 'readline'.  The default is 'off'.
-
-     'show-all-if-ambiguous'
-          This alters the default behavior of the completion functions.
-          If set to 'on', words which have more than one possible
-          completion cause the matches to be listed immediately instead
-          of ringing the bell.  The default value is 'off'.
-
-     'show-all-if-unmodified'
-          This alters the default behavior of the completion functions
-          in a fashion similar to SHOW-ALL-IF-AMBIGUOUS.  If set to
-          'on', words which have more than one possible completion
-          without any possible partial completion (the possible
-          completions don't share a common prefix) cause the matches to
-          be listed immediately instead of ringing the bell.  The
-          default value is 'off'.
-
-     'skip-completed-text'
-          If set to 'on', this alters the default completion behavior
-          when inserting a single match into the line.  It's only active
-          when performing completion in the middle of a word.  If
-          enabled, readline does not insert characters from the
-          completion that match characters after point in the word being
-          completed, so portions of the word following the cursor are
-          not duplicated.  For instance, if this is enabled, attempting
-          completion when the cursor is after the 'e' in 'Makefile' will
-          result in 'Makefile' rather than 'Makefilefile', assuming
-          there is a single possible completion.  The default value is
-          'off'.
-
-     'visible-stats'
-          If set to 'on', a character denoting a file's type is appended
-          to the filename when listing possible completions.  The
-          default is 'off'.
-
-Key Bindings
-     The syntax for controlling key bindings in the init file is simple.
-     First you need to find the name of the command that you want to
-     change.  The following sections contain tables of the command name,
-     the default keybinding, if any, and a short description of what the
-     command does.
-
-     Once you know the name of the command, simply place on a line in
-     the init file the name of the key you wish to bind the command to,
-     a colon, and then the name of the command.  There can be no space
-     between the key name and the colon - that will be interpreted as
-     part of the key name.  The name of the key can be expressed in
-     different ways, depending on what you find most comfortable.
-
-     In addition to command names, readline allows keys to be bound to a
-     string that is inserted when the key is pressed (a MACRO).
-
-     KEYNAME: FUNCTION-NAME or MACRO
-          KEYNAME is the name of a key spelled out in English.  For
-          example:
-               Control-u: universal-argument
-               Meta-Rubout: backward-kill-word
-               Control-o: "> output"
-
-          In the above example, 'C-u' is bound to the function
-          'universal-argument', 'M-DEL' is bound to the function
-          'backward-kill-word', and 'C-o' is bound to run the macro
-          expressed on the right hand side (that is, to insert the text
-          '> output' into the line).
-
-          A number of symbolic character names are recognized while
-          processing this key binding syntax: DEL, ESC, ESCAPE, LFD,
-          NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, and TAB.
-
-     "KEYSEQ": FUNCTION-NAME or MACRO
-          KEYSEQ differs from KEYNAME above in that strings denoting an
-          entire key sequence can be specified, by placing the key
-          sequence in double quotes.  Some GNU Emacs style key escapes
-          can be used, as in the following example, but the special
-          character names are not recognized.
-
-               "\C-u": universal-argument
-               "\C-x\C-r": re-read-init-file
-               "\e[11~": "Function Key 1"
-
-          In the above example, 'C-u' is again bound to the function
-          'universal-argument' (just as it was in the first example),
-          ''C-x' 'C-r'' is bound to the function 're-read-init-file',
-          and '<ESC> <[> <1> <1> <~>' is bound to insert the text
-          'Function Key 1'.
-
-     The following GNU Emacs style escape sequences are available when
-     specifying key sequences:
-
-     '\C-'
-          control prefix
-     '\M-'
-          meta prefix
-     '\e'
-          an escape character
-     '\\'
-          backslash
-     '\"'
-          <">, a double quotation mark
-     '\''
-          <'>, a single quote or apostrophe
-
-     In addition to the GNU Emacs style escape sequences, a second set
-     of backslash escapes is available:
-
-     '\a'
-          alert (bell)
-     '\b'
-          backspace
-     '\d'
-          delete
-     '\f'
-          form feed
-     '\n'
-          newline
-     '\r'
-          carriage return
-     '\t'
-          horizontal tab
-     '\v'
-          vertical tab
-     '\NNN'
-          the eight-bit character whose value is the octal value NNN
-          (one to three digits)
-     '\xHH'
-          the eight-bit character whose value is the hexadecimal value
-          HH (one or two hex digits)
-
-     When entering the text of a macro, single or double quotes must be
-     used to indicate a macro definition.  Unquoted text is assumed to
-     be a function name.  In the macro body, the backslash escapes
-     described above are expanded.  Backslash will quote any other
-     character in the macro text, including '"' and '''.  For example,
-     the following binding will make ''C-x' \' insert a single '\' into
-     the line:
-          "\C-x\\": "\\"
-
-
-File: gdb.info,  Node: Conditional Init Constructs,  Next: Sample Init File,  Prev: Readline Init File Syntax,  Up: Readline Init File
-
-32.3.2 Conditional Init Constructs
-----------------------------------
-
-Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key bindings and
-variable settings to be performed as the result of tests.  There are
-four parser directives used.
-
-'$if'
-     The '$if' construct allows bindings to be made based on the editing
-     mode, the terminal being used, or the application using Readline.
-     The text of the test extends to the end of the line; no characters
-     are required to isolate it.
-
-     'mode'
-          The 'mode=' form of the '$if' directive is used to test
-          whether Readline is in 'emacs' or 'vi' mode.  This may be used
-          in conjunction with the 'set keymap' command, for instance, to
-          set bindings in the 'emacs-standard' and 'emacs-ctlx' keymaps
-          only if Readline is starting out in 'emacs' mode.
-
-     'term'
-          The 'term=' form may be used to include terminal-specific key
-          bindings, perhaps to bind the key sequences output by the
-          terminal's function keys.  The word on the right side of the
-          '=' is tested against both the full name of the terminal and
-          the portion of the terminal name before the first '-'.  This
-          allows 'sun' to match both 'sun' and 'sun-cmd', for instance.
-
-     'application'
-          The APPLICATION construct is used to include
-          application-specific settings.  Each program using the
-          Readline library sets the APPLICATION NAME, and you can test
-          for a particular value.  This could be used to bind key
-          sequences to functions useful for a specific program.  For
-          instance, the following command adds a key sequence that
-          quotes the current or previous word in Bash:
-               $if Bash
-               # Quote the current or previous word
-               "\C-xq": "\eb\"\ef\""
-               $endif
-
-'$endif'
-     This command, as seen in the previous example, terminates an '$if'
-     command.
-
-'$else'
-     Commands in this branch of the '$if' directive are executed if the
-     test fails.
-
-'$include'
-     This directive takes a single filename as an argument and reads
-     commands and bindings from that file.  For example, the following
-     directive reads from '/etc/inputrc':
-          $include /etc/inputrc
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info-6 ./gdb/doc/gdb.info-6
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info-6	2018-01-02 02:06:51.000000000 +0000
+++ ./gdb/doc/gdb.info-6	2018-01-09 02:08:29.000000000 +0000
@@ -1,6 +1,6 @@
 This is gdb.info, produced by makeinfo version 6.3 from gdb.texinfo.
 
-Copyright (C) 1988-2017 Free Software Foundation, Inc.
+Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -21,9 +21,9 @@ END-INFO-DIR-ENTRY
    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 8.0.1.20180102-git.
+Source-Level Debugger' for GDB (GDB) Version 8.0.90.20180109-git.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -37,6 +37,647 @@ this GNU Manual.  Buying copies from GNU
 developing GNU and promoting software freedom."
 
 
+File: gdb.info,  Node: Readline Interaction,  Next: Readline Init File,  Prev: Introduction and Notation,  Up: Command Line Editing
+
+32.2 Readline Interaction
+=========================
+
+Often during an interactive session you type in a long line of text,
+only to notice that the first word on the line is misspelled.  The
+Readline library gives you a set of commands for manipulating the text
+as you type it in, allowing you to just fix your typo, and not forcing
+you to retype the majority of the line.  Using these editing commands,
+you move the cursor to the place that needs correction, and delete or
+insert the text of the corrections.  Then, when you are satisfied with
+the line, you simply press <RET>.  You do not have to be at the end of
+the line to press <RET>; the entire line is accepted regardless of the
+location of the cursor within the line.
+
+* Menu:
+
+* Readline Bare Essentials::	The least you need to know about Readline.
+* Readline Movement Commands::	Moving about the input line.
+* Readline Killing Commands::	How to delete text, and how to get it back!
+* Readline Arguments::		Giving numeric arguments to commands.
+* Searching::			Searching through previous lines.
+
+
+File: gdb.info,  Node: Readline Bare Essentials,  Next: Readline Movement Commands,  Up: Readline Interaction
+
+32.2.1 Readline Bare Essentials
+-------------------------------
+
+In order to enter characters into the line, simply type them.  The typed
+character appears where the cursor was, and then the cursor moves one
+space to the right.  If you mistype a character, you can use your erase
+character to back up and delete the mistyped character.
+
+   Sometimes you may mistype a character, and not notice the error until
+you have typed several other characters.  In that case, you can type
+'C-b' to move the cursor to the left, and then correct your mistake.
+Afterwards, you can move the cursor to the right with 'C-f'.
+
+   When you add text in the middle of a line, you will notice that
+characters to the right of the cursor are 'pushed over' to make room for
+the text that you have inserted.  Likewise, when you delete text behind
+the cursor, characters to the right of the cursor are 'pulled back' to
+fill in the blank space created by the removal of the text.  A list of
+the bare essentials for editing the text of an input line follows.
+
+'C-b'
+     Move back one character.
+'C-f'
+     Move forward one character.
+<DEL> or <Backspace>
+     Delete the character to the left of the cursor.
+'C-d'
+     Delete the character underneath the cursor.
+Printing characters
+     Insert the character into the line at the cursor.
+'C-_' or 'C-x C-u'
+     Undo the last editing command.  You can undo all the way back to an
+     empty line.
+
+(Depending on your configuration, the <Backspace> key be set to delete
+the character to the left of the cursor and the <DEL> key set to delete
+the character underneath the cursor, like 'C-d', rather than the
+character to the left of the cursor.)
+
+
+File: gdb.info,  Node: Readline Movement Commands,  Next: Readline Killing Commands,  Prev: Readline Bare Essentials,  Up: Readline Interaction
+
+32.2.2 Readline Movement Commands
+---------------------------------
+
+The above table describes the most basic keystrokes that you need in
+order to do editing of the input line.  For your convenience, many other
+commands have been added in addition to 'C-b', 'C-f', 'C-d', and <DEL>.
+Here are some commands for moving more rapidly about the line.
+
+'C-a'
+     Move to the start of the line.
+'C-e'
+     Move to the end of the line.
+'M-f'
+     Move forward a word, where a word is composed of letters and
+     digits.
+'M-b'
+     Move backward a word.
+'C-l'
+     Clear the screen, reprinting the current line at the top.
+
+   Notice how 'C-f' moves forward a character, while 'M-f' moves forward
+a word.  It is a loose convention that control keystrokes operate on
+characters while meta keystrokes operate on words.
+
+
+File: gdb.info,  Node: Readline Killing Commands,  Next: Readline Arguments,  Prev: Readline Movement Commands,  Up: Readline Interaction
+
+32.2.3 Readline Killing Commands
+--------------------------------
+
+"Killing" text means to delete the text from the line, but to save it
+away for later use, usually by "yanking" (re-inserting) it back into the
+line.  ('Cut' and 'paste' are more recent jargon for 'kill' and 'yank'.)
+
+   If the description for a command says that it 'kills' text, then you
+can be sure that you can get the text back in a different (or the same)
+place later.
+
+   When you use a kill command, the text is saved in a "kill-ring".  Any
+number of consecutive kills save all of the killed text together, so
+that when you yank it back, you get it all.  The kill ring is not line
+specific; the text that you killed on a previously typed line is
+available to be yanked back later, when you are typing another line.
+
+   Here is the list of commands for killing text.
+
+'C-k'
+     Kill the text from the current cursor position to the end of the
+     line.
+
+'M-d'
+     Kill from the cursor to the end of the current word, or, if between
+     words, to the end of the next word.  Word boundaries are the same
+     as those used by 'M-f'.
+
+'M-<DEL>'
+     Kill from the cursor the start of the current word, or, if between
+     words, to the start of the previous word.  Word boundaries are the
+     same as those used by 'M-b'.
+
+'C-w'
+     Kill from the cursor to the previous whitespace.  This is different
+     than 'M-<DEL>' because the word boundaries differ.
+
+   Here is how to "yank" the text back into the line.  Yanking means to
+copy the most-recently-killed text from the kill buffer.
+
+'C-y'
+     Yank the most recently killed text back into the buffer at the
+     cursor.
+
+'M-y'
+     Rotate the kill-ring, and yank the new top.  You can only do this
+     if the prior command is 'C-y' or 'M-y'.
+
+
+File: gdb.info,  Node: Readline Arguments,  Next: Searching,  Prev: Readline Killing Commands,  Up: Readline Interaction
+
+32.2.4 Readline Arguments
+-------------------------
+
+You can pass numeric arguments to Readline commands.  Sometimes the
+argument acts as a repeat count, other times it is the sign of the
+argument that is significant.  If you pass a negative argument to a
+command which normally acts in a forward direction, that command will
+act in a backward direction.  For example, to kill text back to the
+start of the line, you might type 'M-- C-k'.
+
+   The general way to pass numeric arguments to a command is to type
+meta digits before the command.  If the first 'digit' typed is a minus
+sign ('-'), then the sign of the argument will be negative.  Once you
+have typed one meta digit to get the argument started, you can type the
+remainder of the digits, and then the command.  For example, to give the
+'C-d' command an argument of 10, you could type 'M-1 0 C-d', which will
+delete the next ten characters on the input line.
+
+
+File: gdb.info,  Node: Searching,  Prev: Readline Arguments,  Up: Readline Interaction
+
+32.2.5 Searching for Commands in the History
+--------------------------------------------
+
+Readline provides commands for searching through the command history for
+lines containing a specified string.  There are two search modes:
+"incremental" and "non-incremental".
+
+   Incremental searches begin before the user has finished typing the
+search string.  As each character of the search string is typed,
+Readline displays the next entry from the history matching the string
+typed so far.  An incremental search requires only as many characters as
+needed to find the desired history entry.  To search backward in the
+history for a particular string, type 'C-r'.  Typing 'C-s' searches
+forward through the history.  The characters present in the value of the
+'isearch-terminators' variable are used to terminate an incremental
+search.  If that variable has not been assigned a value, the <ESC> and
+'C-J' characters will terminate an incremental search.  'C-g' will abort
+an incremental search and restore the original line.  When the search is
+terminated, the history entry containing the search string becomes the
+current line.
+
+   To find other matching entries in the history list, type 'C-r' or
+'C-s' as appropriate.  This will search backward or forward in the
+history for the next entry matching the search string typed so far.  Any
+other key sequence bound to a Readline command will terminate the search
+and execute that command.  For instance, a <RET> will terminate the
+search and accept the line, thereby executing the command from the
+history list.  A movement command will terminate the search, make the
+last line found the current line, and begin editing.
+
+   Readline remembers the last incremental search string.  If two 'C-r's
+are typed without any intervening characters defining a new search
+string, any remembered search string is used.
+
+   Non-incremental searches read the entire search string before
+starting to search for matching history lines.  The search string may be
+typed by the user or be part of the contents of the current line.
+
+
+File: gdb.info,  Node: Readline Init File,  Next: Bindable Readline Commands,  Prev: Readline Interaction,  Up: Command Line Editing
+
+32.3 Readline Init File
+=======================
+
+Although the Readline library comes with a set of Emacs-like keybindings
+installed by default, it is possible to use a different set of
+keybindings.  Any user can customize programs that use Readline by
+putting commands in an "inputrc" file, conventionally in his home
+directory.  The name of this file is taken from the value of the
+environment variable 'INPUTRC'.  If that variable is unset, the default
+is '~/.inputrc'.  If that file does not exist or cannot be read, the
+ultimate default is '/etc/inputrc'.
+
+   When a program which uses the Readline library starts up, the init
+file is read, and the key bindings are set.
+
+   In addition, the 'C-x C-r' command re-reads this init file, thus
+incorporating any changes that you might have made to it.
+
+* Menu:
+
+* Readline Init File Syntax::	Syntax for the commands in the inputrc file.
+
+* Conditional Init Constructs::	Conditional key bindings in the inputrc file.
+
+* Sample Init File::		An example inputrc file.
+
+
+File: gdb.info,  Node: Readline Init File Syntax,  Next: Conditional Init Constructs,  Up: Readline Init File
+
+32.3.1 Readline Init File Syntax
+--------------------------------
+
+There are only a few basic constructs allowed in the Readline init file.
+Blank lines are ignored.  Lines beginning with a '#' are comments.
+Lines beginning with a '$' indicate conditional constructs (*note
+Conditional Init Constructs::).  Other lines denote variable settings
+and key bindings.
+
+Variable Settings
+     You can modify the run-time behavior of Readline by altering the
+     values of variables in Readline using the 'set' command within the
+     init file.  The syntax is simple:
+
+          set VARIABLE VALUE
+
+     Here, for example, is how to change from the default Emacs-like key
+     binding to use 'vi' line editing commands:
+
+          set editing-mode vi
+
+     Variable names and values, where appropriate, are recognized
+     without regard to case.  Unrecognized variable names are ignored.
+
+     Boolean variables (those that can be set to on or off) are set to
+     on if the value is null or empty, ON (case-insensitive), or 1.  Any
+     other value results in the variable being set to off.
+
+     A great deal of run-time behavior is changeable with the following
+     variables.
+
+     'bell-style'
+          Controls what happens when Readline wants to ring the terminal
+          bell.  If set to 'none', Readline never rings the bell.  If
+          set to 'visible', Readline uses a visible bell if one is
+          available.  If set to 'audible' (the default), Readline
+          attempts to ring the terminal's bell.
+
+     'bind-tty-special-chars'
+          If set to 'on', Readline attempts to bind the control
+          characters treated specially by the kernel's terminal driver
+          to their Readline equivalents.
+
+     'comment-begin'
+          The string to insert at the beginning of the line when the
+          'insert-comment' command is executed.  The default value is
+          '"#"'.
+
+     'completion-display-width'
+          The number of screen columns used to display possible matches
+          when performing completion.  The value is ignored if it is
+          less than 0 or greater than the terminal screen width.  A
+          value of 0 will cause matches to be displayed one per line.
+          The default value is -1.
+
+     'completion-ignore-case'
+          If set to 'on', Readline performs filename matching and
+          completion in a case-insensitive fashion.  The default value
+          is 'off'.
+
+     'completion-map-case'
+          If set to 'on', and COMPLETION-IGNORE-CASE is enabled,
+          Readline treats hyphens ('-') and underscores ('_') as
+          equivalent when performing case-insensitive filename matching
+          and completion.
+
+     'completion-prefix-display-length'
+          The length in characters of the common prefix of a list of
+          possible completions that is displayed without modification.
+          When set to a value greater than zero, common prefixes longer
+          than this value are replaced with an ellipsis when displaying
+          possible completions.
+
+     'completion-query-items'
+          The number of possible completions that determines when the
+          user is asked whether the list of possibilities should be
+          displayed.  If the number of possible completions is greater
+          than this value, Readline will ask the user whether or not he
+          wishes to view them; otherwise, they are simply listed.  This
+          variable must be set to an integer value greater than or equal
+          to 0.  A negative value means Readline should never ask.  The
+          default limit is '100'.
+
+     'convert-meta'
+          If set to 'on', Readline will convert characters with the
+          eighth bit set to an ASCII key sequence by stripping the
+          eighth bit and prefixing an <ESC> character, converting them
+          to a meta-prefixed key sequence.  The default value is 'on'.
+
+     'disable-completion'
+          If set to 'On', Readline will inhibit word completion.
+          Completion characters will be inserted into the line as if
+          they had been mapped to 'self-insert'.  The default is 'off'.
+
+     'editing-mode'
+          The 'editing-mode' variable controls which default set of key
+          bindings is used.  By default, Readline starts up in Emacs
+          editing mode, where the keystrokes are most similar to Emacs.
+          This variable can be set to either 'emacs' or 'vi'.
+
+     'echo-control-characters'
+          When set to 'on', on operating systems that indicate they
+          support it, readline echoes a character corresponding to a
+          signal generated from the keyboard.  The default is 'on'.
+
+     'enable-keypad'
+          When set to 'on', Readline will try to enable the application
+          keypad when it is called.  Some systems need this to enable
+          the arrow keys.  The default is 'off'.
+
+     'enable-meta-key'
+          When set to 'on', Readline will try to enable any meta
+          modifier key the terminal claims to support when it is called.
+          On many terminals, the meta key is used to send eight-bit
+          characters.  The default is 'on'.
+
+     'expand-tilde'
+          If set to 'on', tilde expansion is performed when Readline
+          attempts word completion.  The default is 'off'.
+
+     'history-preserve-point'
+          If set to 'on', the history code attempts to place the point
+          (the current cursor position) at the same location on each
+          history line retrieved with 'previous-history' or
+          'next-history'.  The default is 'off'.
+
+     'history-size'
+          Set the maximum number of history entries saved in the history
+          list.  If set to zero, the number of entries in the history
+          list is not limited.
+
+     'horizontal-scroll-mode'
+          This variable can be set to either 'on' or 'off'.  Setting it
+          to 'on' means that the text of the lines being edited will
+          scroll horizontally on a single screen line when they are
+          longer than the width of the screen, instead of wrapping onto
+          a new screen line.  By default, this variable is set to 'off'.
+
+     'input-meta'
+          If set to 'on', Readline will enable eight-bit input (it will
+          not clear the eighth bit in the characters it reads),
+          regardless of what the terminal claims it can support.  The
+          default value is 'off'.  The name 'meta-flag' is a synonym for
+          this variable.
+
+     'isearch-terminators'
+          The string of characters that should terminate an incremental
+          search without subsequently executing the character as a
+          command (*note Searching::).  If this variable has not been
+          given a value, the characters <ESC> and 'C-J' will terminate
+          an incremental search.
+
+     'keymap'
+          Sets Readline's idea of the current keymap for key binding
+          commands.  Acceptable 'keymap' names are 'emacs',
+          'emacs-standard', 'emacs-meta', 'emacs-ctlx', 'vi', 'vi-move',
+          'vi-command', and 'vi-insert'.  'vi' is equivalent to
+          'vi-command'; 'emacs' is equivalent to 'emacs-standard'.  The
+          default value is 'emacs'.  The value of the 'editing-mode'
+          variable also affects the default keymap.
+
+     'mark-directories'
+          If set to 'on', completed directory names have a slash
+          appended.  The default is 'on'.
+
+     'mark-modified-lines'
+          This variable, when set to 'on', causes Readline to display an
+          asterisk ('*') at the start of history lines which have been
+          modified.  This variable is 'off' by default.
+
+     'mark-symlinked-directories'
+          If set to 'on', completed names which are symbolic links to
+          directories have a slash appended (subject to the value of
+          'mark-directories').  The default is 'off'.
+
+     'match-hidden-files'
+          This variable, when set to 'on', causes Readline to match
+          files whose names begin with a '.' (hidden files) when
+          performing filename completion.  If set to 'off', the leading
+          '.' must be supplied by the user in the filename to be
+          completed.  This variable is 'on' by default.
+
+     'menu-complete-display-prefix'
+          If set to 'on', menu completion displays the common prefix of
+          the list of possible completions (which may be empty) before
+          cycling through the list.  The default is 'off'.
+
+     'output-meta'
+          If set to 'on', Readline will display characters with the
+          eighth bit set directly rather than as a meta-prefixed escape
+          sequence.  The default is 'off'.
+
+     'page-completions'
+          If set to 'on', Readline uses an internal 'more'-like pager to
+          display a screenful of possible completions at a time.  This
+          variable is 'on' by default.
+
+     'print-completions-horizontally'
+          If set to 'on', Readline will display completions with matches
+          sorted horizontally in alphabetical order, rather than down
+          the screen.  The default is 'off'.
+
+     'revert-all-at-newline'
+          If set to 'on', Readline will undo all changes to history
+          lines before returning when 'accept-line' is executed.  By
+          default, history lines may be modified and retain individual
+          undo lists across calls to 'readline'.  The default is 'off'.
+
+     'show-all-if-ambiguous'
+          This alters the default behavior of the completion functions.
+          If set to 'on', words which have more than one possible
+          completion cause the matches to be listed immediately instead
+          of ringing the bell.  The default value is 'off'.
+
+     'show-all-if-unmodified'
+          This alters the default behavior of the completion functions
+          in a fashion similar to SHOW-ALL-IF-AMBIGUOUS.  If set to
+          'on', words which have more than one possible completion
+          without any possible partial completion (the possible
+          completions don't share a common prefix) cause the matches to
+          be listed immediately instead of ringing the bell.  The
+          default value is 'off'.
+
+     'skip-completed-text'
+          If set to 'on', this alters the default completion behavior
+          when inserting a single match into the line.  It's only active
+          when performing completion in the middle of a word.  If
+          enabled, readline does not insert characters from the
+          completion that match characters after point in the word being
+          completed, so portions of the word following the cursor are
+          not duplicated.  For instance, if this is enabled, attempting
+          completion when the cursor is after the 'e' in 'Makefile' will
+          result in 'Makefile' rather than 'Makefilefile', assuming
+          there is a single possible completion.  The default value is
+          'off'.
+
+     'visible-stats'
+          If set to 'on', a character denoting a file's type is appended
+          to the filename when listing possible completions.  The
+          default is 'off'.
+
+Key Bindings
+     The syntax for controlling key bindings in the init file is simple.
+     First you need to find the name of the command that you want to
+     change.  The following sections contain tables of the command name,
+     the default keybinding, if any, and a short description of what the
+     command does.
+
+     Once you know the name of the command, simply place on a line in
+     the init file the name of the key you wish to bind the command to,
+     a colon, and then the name of the command.  There can be no space
+     between the key name and the colon - that will be interpreted as
+     part of the key name.  The name of the key can be expressed in
+     different ways, depending on what you find most comfortable.
+
+     In addition to command names, readline allows keys to be bound to a
+     string that is inserted when the key is pressed (a MACRO).
+
+     KEYNAME: FUNCTION-NAME or MACRO
+          KEYNAME is the name of a key spelled out in English.  For
+          example:
+               Control-u: universal-argument
+               Meta-Rubout: backward-kill-word
+               Control-o: "> output"
+
+          In the above example, 'C-u' is bound to the function
+          'universal-argument', 'M-DEL' is bound to the function
+          'backward-kill-word', and 'C-o' is bound to run the macro
+          expressed on the right hand side (that is, to insert the text
+          '> output' into the line).
+
+          A number of symbolic character names are recognized while
+          processing this key binding syntax: DEL, ESC, ESCAPE, LFD,
+          NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, and TAB.
+
+     "KEYSEQ": FUNCTION-NAME or MACRO
+          KEYSEQ differs from KEYNAME above in that strings denoting an
+          entire key sequence can be specified, by placing the key
+          sequence in double quotes.  Some GNU Emacs style key escapes
+          can be used, as in the following example, but the special
+          character names are not recognized.
+
+               "\C-u": universal-argument
+               "\C-x\C-r": re-read-init-file
+               "\e[11~": "Function Key 1"
+
+          In the above example, 'C-u' is again bound to the function
+          'universal-argument' (just as it was in the first example),
+          ''C-x' 'C-r'' is bound to the function 're-read-init-file',
+          and '<ESC> <[> <1> <1> <~>' is bound to insert the text
+          'Function Key 1'.
+
+     The following GNU Emacs style escape sequences are available when
+     specifying key sequences:
+
+     '\C-'
+          control prefix
+     '\M-'
+          meta prefix
+     '\e'
+          an escape character
+     '\\'
+          backslash
+     '\"'
+          <">, a double quotation mark
+     '\''
+          <'>, a single quote or apostrophe
+
+     In addition to the GNU Emacs style escape sequences, a second set
+     of backslash escapes is available:
+
+     '\a'
+          alert (bell)
+     '\b'
+          backspace
+     '\d'
+          delete
+     '\f'
+          form feed
+     '\n'
+          newline
+     '\r'
+          carriage return
+     '\t'
+          horizontal tab
+     '\v'
+          vertical tab
+     '\NNN'
+          the eight-bit character whose value is the octal value NNN
+          (one to three digits)
+     '\xHH'
+          the eight-bit character whose value is the hexadecimal value
+          HH (one or two hex digits)
+
+     When entering the text of a macro, single or double quotes must be
+     used to indicate a macro definition.  Unquoted text is assumed to
+     be a function name.  In the macro body, the backslash escapes
+     described above are expanded.  Backslash will quote any other
+     character in the macro text, including '"' and '''.  For example,
+     the following binding will make ''C-x' \' insert a single '\' into
+     the line:
+          "\C-x\\": "\\"
+
+
+File: gdb.info,  Node: Conditional Init Constructs,  Next: Sample Init File,  Prev: Readline Init File Syntax,  Up: Readline Init File
+
+32.3.2 Conditional Init Constructs
+----------------------------------
+
+Readline implements a facility similar in spirit to the conditional
+compilation features of the C preprocessor which allows key bindings and
+variable settings to be performed as the result of tests.  There are
+four parser directives used.
+
+'$if'
+     The '$if' construct allows bindings to be made based on the editing
+     mode, the terminal being used, or the application using Readline.
+     The text of the test extends to the end of the line; no characters
+     are required to isolate it.
+
+     'mode'
+          The 'mode=' form of the '$if' directive is used to test
+          whether Readline is in 'emacs' or 'vi' mode.  This may be used
+          in conjunction with the 'set keymap' command, for instance, to
+          set bindings in the 'emacs-standard' and 'emacs-ctlx' keymaps
+          only if Readline is starting out in 'emacs' mode.
+
+     'term'
+          The 'term=' form may be used to include terminal-specific key
+          bindings, perhaps to bind the key sequences output by the
+          terminal's function keys.  The word on the right side of the
+          '=' is tested against both the full name of the terminal and
+          the portion of the terminal name before the first '-'.  This
+          allows 'sun' to match both 'sun' and 'sun-cmd', for instance.
+
+     'application'
+          The APPLICATION construct is used to include
+          application-specific settings.  Each program using the
+          Readline library sets the APPLICATION NAME, and you can test
+          for a particular value.  This could be used to bind key
+          sequences to functions useful for a specific program.  For
+          instance, the following command adds a key sequence that
+          quotes the current or previous word in Bash:
+               $if Bash
+               # Quote the current or previous word
+               "\C-xq": "\eb\"\ef\""
+               $endif
+
+'$endif'
+     This command, as seen in the previous example, terminates an '$if'
+     command.
+
+'$else'
+     Commands in this branch of the '$if' directive are executed if the
+     test fails.
+
+'$include'
+     This directive takes a single filename as an argument and reads
+     commands and bindings from that file.  For example, the following
+     directive reads from '/etc/inputrc':
+          $include /etc/inputrc
+
+
 File: gdb.info,  Node: Sample Init File,  Prev: Conditional Init Constructs,  Up: Readline Init File
 
 32.3.3 Sample Init File
@@ -859,7 +1500,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-8.0.1.20180102-git/gdb/gdb.info', and it refers to subordinate
+'gdb-8.0.90.20180109-git/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 standalone 'info'
@@ -869,8 +1510,8 @@ program, available as part of the GNU Te
 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-8.0.1.20180102-git', in the case of version
-8.0.1.20180102-git), you can make the Info file by typing:
+directory ('gdb-8.0.90.20180109-git', in the case of version
+8.0.90.20180109-git), you can make the Info file by typing:
 
      cd gdb
      make gdb.info
@@ -895,8 +1536,8 @@ On its own, TeX cannot either read or ty
 
    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-8.0.1.20180102-git/gdb') and
-type:
+main source directory (for example, to 'gdb-8.0.90.20180109-git/gdb')
+and type:
 
      make gdb.dvi
 
@@ -904,8 +1545,8 @@ type:
 
    ---------- Footnotes ----------
 
-   (1) In 'gdb-8.0.1.20180102-git/gdb/refcard.ps' of the version
-8.0.1.20180102-git release.
+   (1) In 'gdb-8.0.90.20180109-git/gdb/refcard.ps' of the version
+8.0.90.20180109-git release.
 
 
 File: gdb.info,  Node: Installing GDB,  Next: Maintenance Commands,  Prev: Formatting Documentation,  Up: Top
@@ -960,6 +1601,20 @@ Expat
         * Branch trace (*note Branch Trace Format::, *note Branch Trace
           Configuration Format::)
 
+MPFR
+     GDB can use the GNU MPFR multiple-precision floating-point library.
+     This library may be included with your operating system
+     distribution; if it is not, you can get the latest version from
+     <http://www.mpfr.org>.  The 'configure' script will search for this
+     library in several standard locations; if it is installed in an
+     unusual path, you can use the '--with-libmpfr-prefix' option to
+     specify its location.
+
+     GNU MPFR is used to emulate target floating-point arithmetic during
+     expression evaluation when the target uses different floating-point
+     formats than the host.  If GNU MPFR it is not available, GDB will
+     fall back to using host floating-point arithmetic.
+
 zlib
      GDB will use the 'zlib' library, if available, to read compressed
      debug sections.  Some linkers, such as GNU gold, are capable of
@@ -1009,39 +1664,39 @@ preparing GDB for installation; you can 
 a single directory, whose name is usually composed by appending the
 version number to 'gdb'.
 
-   For example, the GDB version 8.0.1.20180102-git distribution is in
-the 'gdb-8.0.1.20180102-git' directory.  That directory contains:
+   For example, the GDB version 8.0.90.20180109-git distribution is in
+the 'gdb-8.0.90.20180109-git' directory.  That directory contains:
 
-'gdb-8.0.1.20180102-git/configure (and supporting files)'
+'gdb-8.0.90.20180109-git/configure (and supporting files)'
      script for configuring GDB and all its supporting libraries
 
-'gdb-8.0.1.20180102-git/gdb'
+'gdb-8.0.90.20180109-git/gdb'
      the source specific to GDB itself
 
-'gdb-8.0.1.20180102-git/bfd'
+'gdb-8.0.90.20180109-git/bfd'
      source for the Binary File Descriptor library
 
-'gdb-8.0.1.20180102-git/include'
+'gdb-8.0.90.20180109-git/include'
      GNU include files
 
-'gdb-8.0.1.20180102-git/libiberty'
+'gdb-8.0.90.20180109-git/libiberty'
      source for the '-liberty' free software library
 
-'gdb-8.0.1.20180102-git/opcodes'
+'gdb-8.0.90.20180109-git/opcodes'
      source for the library of opcode tables and disassemblers
 
-'gdb-8.0.1.20180102-git/readline'
+'gdb-8.0.90.20180109-git/readline'
      source for the GNU command-line interface
 
-'gdb-8.0.1.20180102-git/glob'
+'gdb-8.0.90.20180109-git/glob'
      source for the GNU filename pattern-matching subroutine
 
-'gdb-8.0.1.20180102-git/mmalloc'
+'gdb-8.0.90.20180109-git/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-8.0.1.20180102-git' directory.
+the 'gdb-8.0.90.20180109-git' 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
@@ -1049,7 +1704,7 @@ platform on which GDB will run as an arg
 
    For example:
 
-     cd gdb-8.0.1.20180102-git
+     cd gdb-8.0.90.20180109-git
      ./configure HOST
      make
 
@@ -1071,8 +1726,8 @@ need to run 'sh' on it explicitly:
 
    If you run 'configure' from a directory that contains source
 directories for multiple libraries or programs, such as the
-'gdb-8.0.1.20180102-git' source directory for version
-8.0.1.20180102-git, 'configure' creates configuration files for every
+'gdb-8.0.90.20180109-git' source directory for version
+8.0.90.20180109-git, 'configure' creates configuration files for every
 directory level underneath (unless you tell it not to, with the
 '--norecursion' option).
 
@@ -1112,13 +1767,13 @@ to specify a path to find 'configure' it
 directory.  If the path to 'configure' would be the same as the argument
 to '--srcdir', you can leave out the '--srcdir' option; it is assumed.)
 
-   For example, with version 8.0.1.20180102-git, you can build GDB in a
+   For example, with version 8.0.90.20180109-git, you can build GDB in a
 separate directory for a Sun 4 like this:
 
-     cd gdb-8.0.1.20180102-git
+     cd gdb-8.0.90.20180109-git
      mkdir ../gdb-sun4
      cd ../gdb-sun4
-     ../gdb-8.0.1.20180102-git/configure sun4
+     ../gdb-8.0.90.20180109-git/configure sun4
      make
 
    When 'configure' builds a configuration using a remote source
@@ -1129,7 +1784,7 @@ the example, you'd find the Sun 4 librar
 
    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-8.0.1.20180102-git/gdb/configure', you are configuring only one
+'../gdb-8.0.90.20180109-git/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'.
 
@@ -1145,8 +1800,8 @@ a configured directory--whatever directo
 
    The 'Makefile' that 'configure' generates in each source directory
 also runs recursively.  If you type 'make' in a source directory such as
-'gdb-8.0.1.20180102-git' (or in a separate configured directory
-configured with '--srcdir=DIRNAME/gdb-8.0.1.20180102-git'), you will
+'gdb-8.0.90.20180109-git' (or in a separate configured directory
+configured with '--srcdir=DIRNAME/gdb-8.0.90.20180109-git'), you will
 build all the required libraries, and then build GDB.
 
    When you have multiple hosts or targets configured in separate
@@ -1191,7 +1846,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-8.0.1.20180102-git', for version 8.0.1.20180102-git).
+('gdb-8.0.90.20180109-git', for version 8.0.90.20180109-git).
 
 
 File: gdb.info,  Node: Configure Options,  Next: System-wide configuration,  Prev: Config Names,  Up: Installing GDB
@@ -1561,9 +2216,18 @@ commands that turn on debugging messages
      FILE names the file where the output goes.
 
 'maint print c-tdesc'
-     Print the current target description (*note Target Descriptions::)
-     as a C source file.  The created source file can be used in GDB
-     when an XML parser is not available to parse the description.
+     Print the target description (*note Target Descriptions::) as a C
+     source file.  By default, the target description is for the current
+     target, but if the optional argument FILE is provided, that file is
+     used to produce the description.  The FILE should be an XML
+     document, of the form described in *note Target Description
+     Format::.  The created source file is built into GDB when GDB is
+     built again.  This command is used by developers after they add or
+     modify XML target descriptions.
+
+'maint check xml-descriptions DIR'
+     Check that the target descriptions dynamically created by GDB equal
+     the descriptions created from XML files found in DIR.
 
 'maint print dummy-frames'
      Prints the contents of GDB's internal dummy-frame stack.
@@ -1673,8 +2337,14 @@ commands that turn on debugging messages
      command is a recursive definition of the data type as stored in
      GDB's data structures, including its flags and contained types.
 
+'maint selftest [FILTER]'
      Run any self tests that were compiled in to GDB.  This will print a
-     message showing how many tests were run, and how many failed.
+     message showing how many tests were run, and how many failed.  If a
+     FILTER is passed, only the tests with FILTER in their name will by
+     ran.
+
+'maint info selftests'
+     List the selftests compiled in to GDB.
 
 'maint set dwarf always-disassemble'
 'maint show dwarf always-disassemble'
@@ -2493,6 +3163,18 @@ letter, other than those described here,
      'OK'
           for success
 
+'vMustReplyEmpty'
+     The correct reply to an unknown 'v' packet is to return the empty
+     string, however, some older versions of 'gdbserver' would
+     incorrectly return 'OK' for unknown 'v' packets.
+
+     The 'vMustReplyEmpty' is used as a feature test to check how
+     'gdbserver' handles unknown packets, it is important that this
+     packet be handled in the same way as other unknown 'v' packets.  If
+     this packet is handled differently to other unknown 'v' packets
+     then it is possile that GDB may run into problems in other areas,
+     specifically around use of 'vFile:setfs:'.
+
 'vRun;FILENAME[;ARGUMENT]...'
      Run the program FILENAME, passing it each ARGUMENT on its command
      line.  The file and arguments are hex-encoded strings.  If FILENAME
@@ -2578,7 +3260,7 @@ letter, other than those described here,
 
      'X LEN,EXPR'
           LEN is the length of the bytecode expression and EXPR is the
-          actual conditional expression in bytecode form.
+          actual commands expression in bytecode form.
 
      _Implementation note: It is possible for a target to copy or move
      code that contains software breakpoints (e.g., when implementing
@@ -2992,6 +3674,129 @@ GDB packet uses spaces to separate its c
      qSupported::).  This should only be done on targets that actually
      support disabling address space randomization.
 
+'QStartupWithShell:VALUE'
+     On UNIX-like targets, it is possible to start the inferior using a
+     shell program.  This is the default behavior on both GDB and
+     'gdbserver' (*note set startup-with-shell::).  This packet is used
+     to inform 'gdbserver' whether it should start the inferior using a
+     shell or not.
+
+     If VALUE is '0', 'gdbserver' will not use a shell to start the
+     inferior.  If VALUE is '1', 'gdbserver' will use a shell to start
+     the inferior.  All other values are considered an error.
+
+     This packet is only available in extended mode (*note extended
+     mode::).
+
+     Reply:
+     'OK'
+          The request succeeded.
+
+     'E NN'
+          An error occurred.  The error number NN is given as hex
+          digits.
+
+     This packet is not probed by default; the remote stub must request
+     it, by supplying an appropriate 'qSupported' response (*note
+     qSupported::).  This should only be done on targets that actually
+     support starting the inferior using a shell.
+
+     Use of this packet is controlled by the 'set startup-with-shell'
+     command; *note set startup-with-shell::.
+
+'QEnvironmentHexEncoded:HEX-VALUE'
+     On UNIX-like targets, it is possible to set environment variables
+     that will be passed to the inferior during the startup process.
+     This packet is used to inform 'gdbserver' of an environment
+     variable that has been defined by the user on GDB (*note set
+     environment::).
+
+     The packet is composed by HEX-VALUE, an hex encoded representation
+     of the NAME=VALUE format representing an environment variable.  The
+     name of the environment variable is represented by NAME, and the
+     value to be assigned to the environment variable is represented by
+     VALUE.  If the variable has no value (i.e., the value is 'null'),
+     then VALUE will not be present.
+
+     This packet is only available in extended mode (*note extended
+     mode::).
+
+     Reply:
+     'OK'
+          The request succeeded.
+
+     This packet is not probed by default; the remote stub must request
+     it, by supplying an appropriate 'qSupported' response (*note
+     qSupported::).  This should only be done on targets that actually
+     support passing environment variables to the starting inferior.
+
+     This packet is related to the 'set environment' command; *note set
+     environment::.
+
+'QEnvironmentUnset:HEX-VALUE'
+     On UNIX-like targets, it is possible to unset environment variables
+     before starting the inferior in the remote target.  This packet is
+     used to inform 'gdbserver' of an environment variable that has been
+     unset by the user on GDB (*note unset environment::).
+
+     The packet is composed by HEX-VALUE, an hex encoded representation
+     of the name of the environment variable to be unset.
+
+     This packet is only available in extended mode (*note extended
+     mode::).
+
+     Reply:
+     'OK'
+          The request succeeded.
+
+     This packet is not probed by default; the remote stub must request
+     it, by supplying an appropriate 'qSupported' response (*note
+     qSupported::).  This should only be done on targets that actually
+     support passing environment variables to the starting inferior.
+
+     This packet is related to the 'unset environment' command; *note
+     unset environment::.
+
+'QEnvironmentReset'
+     On UNIX-like targets, this packet is used to reset the state of
+     environment variables in the remote target before starting the
+     inferior.  In this context, reset means unsetting all environment
+     variables that were previously set by the user (i.e., were not
+     initially present in the environment).  It is sent to 'gdbserver'
+     before the 'QEnvironmentHexEncoded' (*note
+     QEnvironmentHexEncoded::) and the 'QEnvironmentUnset' (*note
+     QEnvironmentUnset::) packets.
+
+     This packet is only available in extended mode (*note extended
+     mode::).
+
+     Reply:
+     'OK'
+          The request succeeded.
+
+     This packet is not probed by default; the remote stub must request
+     it, by supplying an appropriate 'qSupported' response (*note
+     qSupported::).  This should only be done on targets that actually
+     support passing environment variables to the starting inferior.
+
+'QSetWorkingDir:[DIRECTORY]'
+     This packet is used to inform the remote server of the intended
+     current working directory for programs that are going to be
+     executed.
+
+     The packet is composed by DIRECTORY, an hex encoded representation
+     of the directory that the remote inferior will use as its current
+     working directory.  If DIRECTORY is an empty string, the remote
+     server should reset the inferior's current working directory to its
+     original, empty value.
+
+     This packet is only available in extended mode (*note extended
+     mode::).
+
+     Reply:
+     'OK'
+          The request succeeded.
+
 'qfThreadInfo'
 'qsThreadInfo'
      Obtain a list of all active thread IDs from the target (OS). Since
@@ -6404,18 +7209,17 @@ packets to write to addresses in such ra
      <!-- .................................... .............. -->
      <!-- memory-map.dtd -->
      <!-- memory-map: Root element with versioning -->
-     <!ELEMENT memory-map (memory | property)>
+     <!ELEMENT memory-map (memory)*>
      <!ATTLIST memory-map    version CDATA   #FIXED  "1.0.0">
-     <!ELEMENT memory (property)>
+     <!ELEMENT memory (property)*>
      <!-- memory: Specifies a memory region,
                   and its type, or device. -->
-     <!ATTLIST memory        type    CDATA   #REQUIRED
+     <!ATTLIST memory        type    (ram|rom|flash) #REQUIRED
                              start   CDATA   #REQUIRED
-                             length  CDATA   #REQUIRED
-                             device  CDATA   #IMPLIED>
+                             length  CDATA   #REQUIRED>
      <!-- property: Generic attribute tag -->
      <!ELEMENT property (#PCDATA | property)*>
-     <!ATTLIST property      name    CDATA   #REQUIRED>
+     <!ATTLIST property      name    (blocksize) #REQUIRED>
 
 
 File: gdb.info,  Node: Thread List Format,  Next: Traceframe Info Format,  Prev: Memory Map Format,  Up: Remote Protocol
@@ -6439,7 +7243,8 @@ the thread (*note thread-id syntax::).  
 present, specifies which processor core the thread was last executing
 on.  The 'name' attribute, if present, specifies the human-readable name
 of the thread.  The content of the of 'thread' element is interpreted as
-human-readable auxiliary information.
+human-readable auxiliary information.  The 'handle' attribute, if
+present, is a hex encoded representation of the thread handle.
 
 
 File: gdb.info,  Node: Traceframe Info Format,  Next: Branch Trace Format,  Prev: Thread List Format,  Up: Remote Protocol
@@ -6941,8 +7746,10 @@ describing them, to save time.
      under the top item, etc.  If N exceeds the number of items on the
      stack, terminate with an error.
 
-'rot' (0x33): A B C => C B A
-     Rotate the top three items on the stack.
+'rot' (0x33): A B C => C A B
+     Rotate the top three items on the stack.  The top item (c) becomes
+     the third item, the next-to-top item (b) becomes the top item and
+     the third item (a) from the top becomes the next-to-top item.
 
 'if_goto' (0x20) OFFSET: A =>
      Pop an integer off the stack; if it is non-zero, branch to the
@@ -7061,571 +7868,3 @@ describing them, to save time.
      the lvalue's address, and the top of the stack is the lvalue's
      size, in bytes.
 
-
-File: gdb.info,  Node: Using Agent Expressions,  Next: Varying Target Capabilities,  Prev: Bytecode Descriptions,  Up: Agent Expressions
-
-F.3 Using Agent Expressions
-===========================
-
-Agent expressions can be used in several different ways by GDB, and the
-debugger can generate different bytecode sequences as appropriate.
-
-   One possibility is to do expression evaluation on the target rather
-than the host, such as for the conditional of a conditional tracepoint.
-In such a case, GDB compiles the source expression into a bytecode
-sequence that simply gets values from registers or memory, does
-arithmetic, and returns a result.
-
-   Another way to use agent expressions is for tracepoint data
-collection.  GDB generates a different bytecode sequence for collection;
-in addition to bytecodes that do the calculation, GDB adds 'trace'
-bytecodes to save the pieces of memory that were used.
-
-   * The user selects trace points in the program's code at which GDB
-     should collect data.
-
-   * The user specifies expressions to evaluate at each trace point.
-     These expressions may denote objects in memory, in which case those
-     objects' contents are recorded as the program runs, or computed
-     values, in which case the values themselves are recorded.
-
-   * GDB transmits the tracepoints and their associated expressions to
-     the GDB agent, running on the debugging target.
-
-   * The agent arranges to be notified when a trace point is hit.
-
-   * When execution on the target reaches a trace point, the agent
-     evaluates the expressions associated with that trace point, and
-     records the resulting values and memory ranges.
-
-   * Later, when the user selects a given trace event and inspects the
-     objects and expression values recorded, GDB talks to the agent to
-     retrieve recorded data as necessary to meet the user's requests.
-     If the user asks to see an object whose contents have not been
-     recorded, GDB reports an error.
-
-
-File: gdb.info,  Node: Varying Target Capabilities,  Next: Rationale,  Prev: Using Agent Expressions,  Up: Agent Expressions
-
-F.4 Varying Target Capabilities
-===============================
-
-Some targets don't support floating-point, and some would rather not
-have to deal with 'long long' operations.  Also, different targets will
-have different stack sizes, and different bytecode buffer lengths.
-
-   Thus, GDB needs a way to ask the target about itself.  We haven't
-worked out the details yet, but in general, GDB should be able to send
-the target a packet asking it to describe itself.  The reply should be a
-packet whose length is explicit, so we can add new information to the
-packet in future revisions of the agent, without confusing old versions
-of GDB, and it should contain a version number.  It should contain at
-least the following information:
-
-   * whether floating point is supported
-
-   * whether 'long long' is supported
-
-   * maximum acceptable size of bytecode stack
-
-   * maximum acceptable length of bytecode expressions
-
-   * which registers are actually available for collection
-
-   * whether the target supports disabled tracepoints
-
-
-File: gdb.info,  Node: Rationale,  Prev: Varying Target Capabilities,  Up: Agent Expressions
-
-F.5 Rationale
-=============
-
-Some of the design decisions apparent above are arguable.
-
-What about stack overflow/underflow?
-     GDB should be able to query the target to discover its stack size.
-     Given that information, GDB can determine at translation time
-     whether a given expression will overflow the stack.  But this spec
-     isn't about what kinds of error-checking GDB ought to do.
-
-Why are you doing everything in LONGEST?
-
-     Speed isn't important, but agent code size is; using LONGEST brings
-     in a bunch of support code to do things like division, etc.  So
-     this is a serious concern.
-
-     First, note that you don't need different bytecodes for different
-     operand sizes.  You can generate code without _knowing_ how big the
-     stack elements actually are on the target.  If the target only
-     supports 32-bit ints, and you don't send any 64-bit bytecodes,
-     everything just works.  The observation here is that the MIPS and
-     the Alpha have only fixed-size registers, and you can still get C's
-     semantics even though most instructions only operate on full-sized
-     words.  You just need to make sure everything is properly
-     sign-extended at the right times.  So there is no need for 32- and
-     64-bit variants of the bytecodes.  Just implement everything using
-     the largest size you support.
-
-     GDB should certainly check to see what sizes the target supports,
-     so the user can get an error earlier, rather than later.  But this
-     information is not necessary for correctness.
-
-Why don't you have '>' or '<=' operators?
-     I want to keep the interpreter small, and we don't need them.  We
-     can combine the 'less_' opcodes with 'log_not', and swap the order
-     of the operands, yielding all four asymmetrical comparison
-     operators.  For example, '(x <= y)' is '! (x > y)', which is '! (y
-     < x)'.
-
-Why do you have 'log_not'?
-Why do you have 'ext'?
-Why do you have 'zero_ext'?
-     These are all easily synthesized from other instructions, but I
-     expect them to be used frequently, and they're simple, so I include
-     them to keep bytecode strings short.
-
-     'log_not' is equivalent to 'const8 0 equal'; it's used in half the
-     relational operators.
-
-     'ext N' is equivalent to 'const8 S-N lsh const8 S-N rsh_signed',
-     where S is the size of the stack elements; it follows 'refM' and
-     REG bytecodes when the value should be signed.  See the next
-     bulleted item.
-
-     'zero_ext N' is equivalent to 'constM MASK log_and'; it's used
-     whenever we push the value of a register, because we can't assume
-     the upper bits of the register aren't garbage.
-
-Why not have sign-extending variants of the 'ref' operators?
-     Because that would double the number of 'ref' operators, and we
-     need the 'ext' bytecode anyway for accessing bitfields.
-
-Why not have constant-address variants of the 'ref' operators?
-     Because that would double the number of 'ref' operators again, and
-     'const32 ADDRESS ref32' is only one byte longer.
-
-Why do the 'refN' operators have to support unaligned fetches?
-     GDB will generate bytecode that fetches multi-byte values at
-     unaligned addresses whenever the executable's debugging information
-     tells it to.  Furthermore, GDB does not know the value the pointer
-     will have when GDB generates the bytecode, so it cannot determine
-     whether a particular fetch will be aligned or not.
-
-     In particular, structure bitfields may be several bytes long, but
-     follow no alignment rules; members of packed structures are not
-     necessarily aligned either.
-
-     In general, there are many cases where unaligned references occur
-     in correct C code, either at the programmer's explicit request, or
-     at the compiler's discretion.  Thus, it is simpler to make the GDB
-     agent bytecodes work correctly in all circumstances than to make
-     GDB guess in each case whether the compiler did the usual thing.
-
-Why are there no side-effecting operators?
-     Because our current client doesn't want them?  That's a cheap
-     answer.  I think the real answer is that I'm afraid of implementing
-     function calls.  We should re-visit this issue after the present
-     contract is delivered.
-
-Why aren't the 'goto' ops PC-relative?
-     The interpreter has the base address around anyway for PC bounds
-     checking, and it seemed simpler.
-
-Why is there only one offset size for the 'goto' ops?
-     Offsets are currently sixteen bits.  I'm not happy with this
-     situation either:
-
-     Suppose we have multiple branch ops with different offset sizes.
-     As I generate code left-to-right, all my jumps are forward jumps
-     (there are no loops in expressions), so I never know the target
-     when I emit the jump opcode.  Thus, I have to either always assume
-     the largest offset size, or do jump relaxation on the code after I
-     generate it, which seems like a big waste of time.
-
-     I can imagine a reasonable expression being longer than 256 bytes.
-     I can't imagine one being longer than 64k.  Thus, we need 16-bit
-     offsets.  This kind of reasoning is so bogus, but relaxation is
-     pathetic.
-
-     The other approach would be to generate code right-to-left.  Then
-     I'd always know my offset size.  That might be fun.
-
-Where is the function call bytecode?
-
-     When we add side-effects, we should add this.
-
-Why does the 'reg' bytecode take a 16-bit register number?
-
-     Intel's IA-64 architecture has 128 general-purpose registers, and
-     128 floating-point registers, and I'm sure it has some random
-     control registers.
-
-Why do we need 'trace' and 'trace_quick'?
-     Because GDB needs to record all the memory contents and registers
-     an expression touches.  If the user wants to evaluate an expression
-     'x->y->z', the agent must record the values of 'x' and 'x->y' as
-     well as the value of 'x->y->z'.
-
-Don't the 'trace' bytecodes make the interpreter less general?
-     They do mean that the interpreter contains special-purpose code,
-     but that doesn't mean the interpreter can only be used for that
-     purpose.  If an expression doesn't use the 'trace' bytecodes, they
-     don't get in its way.
-
-Why doesn't 'trace_quick' consume its arguments the way everything else does?
-     In general, you do want your operators to consume their arguments;
-     it's consistent, and generally reduces the amount of stack
-     rearrangement necessary.  However, 'trace_quick' is a kludge to
-     save space; it only exists so we needn't write 'dup const8 SIZE
-     trace' before every memory reference.  Therefore, it's okay for it
-     not to consume its arguments; it's meant for a specific context in
-     which we know exactly what it should do with the stack.  If we're
-     going to have a kludge, it should be an effective kludge.
-
-Why does 'trace16' exist?
-     That opcode was added by the customer that contracted Cygnus for
-     the data tracing work.  I personally think it is unnecessary;
-     objects that large will be quite rare, so it is okay to use 'dup
-     const16 SIZE trace' in those cases.
-
-     Whatever we decide to do with 'trace16', we should at least leave
-     opcode 0x30 reserved, to remain compatible with the customer who
-     added it.
-
-
-File: gdb.info,  Node: Target Descriptions,  Next: Operating System Information,  Prev: Agent Expressions,  Up: Top
-
-Appendix G Target Descriptions
-******************************
-
-One of the challenges of using GDB to debug embedded systems is that
-there are so many minor variants of each processor architecture in use.
-It is common practice for vendors to start with a standard processor
-core -- ARM, PowerPC, or MIPS, for example -- and then make changes to
-adapt it to a particular market niche.  Some architectures have hundreds
-of variants, available from dozens of vendors.  This leads to a number
-of problems:
-
-   * With so many different customized processors, it is difficult for
-     the GDB maintainers to keep up with the changes.
-   * Since individual variants may have short lifetimes or limited
-     audiences, it may not be worthwhile to carry information about
-     every variant in the GDB source tree.
-   * When GDB does support the architecture of the embedded system at
-     hand, the task of finding the correct architecture name to give the
-     'set architecture' command can be error-prone.
-
-   To address these problems, the GDB remote protocol allows a target
-system to not only identify itself to GDB, but to actually describe its
-own features.  This lets GDB support processor variants it has never
-seen before -- to the extent that the descriptions are accurate, and
-that GDB understands them.
-
-   GDB must be linked with the Expat library to support XML target
-descriptions.  *Note Expat::.
-
-* Menu:
-
-* Retrieving Descriptions::         How descriptions are fetched from a target.
-* Target Description Format::       The contents of a target description.
-* Predefined Target Types::         Standard types available for target
-                                    descriptions.
-* Enum Target Types::               How to define enum target types.
-* Standard Target Features::        Features GDB knows about.
-
-
-File: gdb.info,  Node: Retrieving Descriptions,  Next: Target Description Format,  Up: Target Descriptions
-
-G.1 Retrieving Descriptions
-===========================
-
-Target descriptions can be read from the target automatically, or
-specified by the user manually.  The default behavior is to read the
-description from the target.  GDB retrieves it via the remote protocol
-using 'qXfer' requests (*note qXfer: General Query Packets.).  The ANNEX
-in the 'qXfer' packet will be 'target.xml'.  The contents of the
-'target.xml' annex are an XML document, of the form described in *note
-Target Description Format::.
-
-   Alternatively, you can specify a file to read for the target
-description.  If a file is set, the target will not be queried.  The
-commands to specify a file are:
-
-'set tdesc filename PATH'
-     Read the target description from PATH.
-
-'unset tdesc filename'
-     Do not read the XML target description from a file.  GDB will use
-     the description supplied by the current target.
-
-'show tdesc filename'
-     Show the filename to read for a target description, if any.
-
-
-File: gdb.info,  Node: Target Description Format,  Next: Predefined Target Types,  Prev: Retrieving Descriptions,  Up: Target Descriptions
-
-G.2 Target Description Format
-=============================
-
-A target description annex is an XML (http://www.w3.org/XML/) document
-which complies with the Document Type Definition provided in the GDB
-sources in 'gdb/features/gdb-target.dtd'.  This means you can use
-generally available tools like 'xmllint' to check that your feature
-descriptions are well-formed and valid.  However, to help people
-unfamiliar with XML write descriptions for their targets, we also
-describe the grammar here.
-
-   Target descriptions can identify the architecture of the remote
-target and (for some architectures) provide information about custom
-register sets.  They can also identify the OS ABI of the remote target.
-GDB can use this information to autoconfigure for your target, or to
-warn you if you connect to an unsupported target.
-
-   Here is a simple target description:
-
-     <target version="1.0">
-       <architecture>i386:x86-64</architecture>
-     </target>
-
-This minimal description only says that the target uses the x86-64
-architecture.
-
-   A target description has the following overall form, with [ ] marking
-optional elements and ... marking repeatable elements.  The elements are
-explained further below.
-
-     <?xml version="1.0"?>
-     <!DOCTYPE target SYSTEM "gdb-target.dtd">
-     <target version="1.0">
-       [ARCHITECTURE]
-       [OSABI]
-       [COMPATIBLE]
-       [FEATURE...]
-     </target>
-
-The description is generally insensitive to whitespace and line breaks,
-under the usual common-sense rules.  The XML version declaration and
-document type declaration can generally be omitted (GDB does not require
-them), but specifying them may be useful for XML validation tools.  The
-'version' attribute for '<target>' may also be omitted, but we recommend
-including it; if future versions of GDB use an incompatible revision of
-'gdb-target.dtd', they will detect and report the version mismatch.
-
-G.2.1 Inclusion
----------------
-
-It can sometimes be valuable to split a target description up into
-several different annexes, either for organizational purposes, or to
-share files between different possible target descriptions.  You can
-divide a description into multiple files by replacing any element of the
-target description with an inclusion directive of the form:
-
-     <xi:include href="DOCUMENT"/>
-
-When GDB encounters an element of this form, it will retrieve the named
-XML DOCUMENT, and replace the inclusion directive with the contents of
-that document.  If the current description was read using 'qXfer', then
-so will be the included document; DOCUMENT will be interpreted as the
-name of an annex.  If the current description was read from a file, GDB
-will look for DOCUMENT as a file in the same directory where it found
-the original description.
-
-G.2.2 Architecture
-------------------
-
-An '<architecture>' element has this form:
-
-       <architecture>ARCH</architecture>
-
-   ARCH is one of the architectures from the set accepted by 'set
-architecture' (*note Specifying a Debugging Target: Targets.).
-
-G.2.3 OS ABI
-------------
-
-This optional field was introduced in GDB version 7.0.  Previous
-versions of GDB ignore it.
-
-   An '<osabi>' element has this form:
-
-       <osabi>ABI-NAME</osabi>
-
-   ABI-NAME is an OS ABI name from the same selection accepted by
-'set osabi' (*note Configuring the Current ABI: ABI.).
-
-G.2.4 Compatible Architecture
------------------------------
-
-This optional field was introduced in GDB version 7.0.  Previous
-versions of GDB ignore it.
-
-   A '<compatible>' element has this form:
-
-       <compatible>ARCH</compatible>
-
-   ARCH is one of the architectures from the set accepted by 'set
-architecture' (*note Specifying a Debugging Target: Targets.).
-
-   A '<compatible>' element is used to specify that the target is able
-to run binaries in some other than the main target architecture given by
-the '<architecture>' element.  For example, on the Cell Broadband
-Engine, the main architecture is 'powerpc:common' or 'powerpc:common64',
-but the system is able to run binaries in the 'spu' architecture as
-well.  The way to describe this capability with '<compatible>' is as
-follows:
-
-       <architecture>powerpc:common</architecture>
-       <compatible>spu</compatible>
-
-G.2.5 Features
---------------
-
-Each '<feature>' describes some logical portion of the target system.
-Features are currently used to describe available CPU registers and the
-types of their contents.  A '<feature>' element has this form:
-
-     <feature name="NAME">
-       [TYPE...]
-       REG...
-     </feature>
-
-Each feature's name should be unique within the description.  The name
-of a feature does not matter unless GDB has some special knowledge of
-the contents of that feature; if it does, the feature should have its
-standard name.  *Note Standard Target Features::.
-
-G.2.6 Types
------------
-
-Any register's value is a collection of bits which GDB must interpret.
-The default interpretation is a two's complement integer, but other
-types can be requested by name in the register description.  Some
-predefined types are provided by GDB (*note Predefined Target Types::),
-and the description can define additional composite and enum types.
-
-   Each type element must have an 'id' attribute, which gives a unique
-(within the containing '<feature>') name to the type.  Types must be
-defined before they are used.
-
-   Some targets offer vector registers, which can be treated as arrays
-of scalar elements.  These types are written as '<vector>' elements,
-specifying the array element type, TYPE, and the number of elements,
-COUNT:
-
-     <vector id="ID" type="TYPE" count="COUNT"/>
-
-   If a register's value is usefully viewed in multiple ways, define it
-with a union type containing the useful representations.  The '<union>'
-element contains one or more '<field>' elements, each of which has a
-NAME and a TYPE:
-
-     <union id="ID">
-       <field name="NAME" type="TYPE"/>
-       ...
-     </union>
-
-   If a register's value is composed from several separate values,
-define it with either a structure type or a flags type.  A flags type
-may only contain bitfields.  A structure type may either contain only
-bitfields or contain no bitfields.  If the value contains only
-bitfields, its total size in bytes must be specified.
-
-   Non-bitfield values have a NAME and TYPE.
-
-     <struct id="ID">
-       <field name="NAME" type="TYPE"/>
-       ...
-     </struct>
-
-   Both NAME and TYPE values are required.  No implicit padding is
-added.
-
-   Bitfield values have a NAME, START, END and TYPE.
-
-     <struct id="ID" size="SIZE">
-       <field name="NAME" start="START" end="END" type="TYPE"/>
-       ...
-     </struct>
-
-     <flags id="ID" size="SIZE">
-       <field name="NAME" start="START" end="END" type="TYPE"/>
-       ...
-     </flags>
-
-   The NAME value is required.  Bitfield values may be named with the
-empty string, '""', in which case the field is "filler" and its value is
-not printed.  Not all bits need to be specified, so "filler" fields are
-optional.
-
-   The START and END values are required, and TYPE is optional.  The
-field's START must be less than or equal to its END, and zero represents
-the least significant bit.
-
-   The default value of TYPE is 'bool' for single bit fields, and an
-unsigned integer otherwise.
-
-   Which to choose?  Structures or flags?
-
-   Registers defined with 'flags' have these advantages over defining
-them with 'struct':
-
-   * Arithmetic may be performed on them as if they were integers.
-   * They are printed in a more readable fashion.
-
-   Registers defined with 'struct' have one advantage over defining them
-with 'flags':
-
-   * One can fetch individual fields like in 'C'.
-
-          (gdb) print $my_struct_reg.field3
-          $1 = 42
-
-G.2.7 Registers
----------------
-
-Each register is represented as an element with this form:
-
-     <reg name="NAME"
-          bitsize="SIZE"
-          [regnum="NUM"]
-          [save-restore="SAVE-RESTORE"]
-          [type="TYPE"]
-          [group="GROUP"]/>
-
-The components are as follows:
-
-NAME
-     The register's name; it must be unique within the target
-     description.
-
-BITSIZE
-     The register's size, in bits.
-
-REGNUM
-     The register's number.  If omitted, a register's number is one
-     greater than that of the previous register (either in the current
-     feature or in a preceding feature); the first register in the
-     target description defaults to zero.  This register number is used
-     to read or write the register; e.g. it is used in the remote 'p'
-     and 'P' packets, and registers appear in the 'g' and 'G' packets in
-     order of increasing register number.
-
-SAVE-RESTORE
-     Whether the register should be preserved across inferior function
-     calls; this must be either 'yes' or 'no'.  The default is 'yes',
-     which is appropriate for most registers except for some system
-     control registers; this is not related to the target's ABI.
-
-TYPE
-     The type of the register.  It may be a predefined type, a type
-     defined in the current feature, or one of the special types 'int'
-     and 'float'.  'int' is an integer type of the correct size for
-     BITSIZE, and 'float' is a floating point type (in the
-     architecture's normal floating point format) of the correct size
-     for BITSIZE.  The default is 'int'.
-
-GROUP
-     The register group to which this register belongs.  It must be
-     either 'general', 'float', or 'vector'.  If no GROUP is specified,
-     GDB will not display the register in 'info registers'.
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info-7 ./gdb/doc/gdb.info-7
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.info-7	2018-01-02 02:06:53.000000000 +0000
+++ ./gdb/doc/gdb.info-7	2018-01-09 02:08:31.000000000 +0000
@@ -1,6 +1,6 @@
 This is gdb.info, produced by makeinfo version 6.3 from gdb.texinfo.
 
-Copyright (C) 1988-2017 Free Software Foundation, Inc.
+Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -21,9 +21,9 @@ END-INFO-DIR-ENTRY
    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 8.0.1.20180102-git.
+Source-Level Debugger' for GDB (GDB) Version 8.0.90.20180109-git.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -37,6 +37,578 @@ this GNU Manual.  Buying copies from GNU
 developing GNU and promoting software freedom."
 
 
+File: gdb.info,  Node: Using Agent Expressions,  Next: Varying Target Capabilities,  Prev: Bytecode Descriptions,  Up: Agent Expressions
+
+F.3 Using Agent Expressions
+===========================
+
+Agent expressions can be used in several different ways by GDB, and the
+debugger can generate different bytecode sequences as appropriate.
+
+   One possibility is to do expression evaluation on the target rather
+than the host, such as for the conditional of a conditional tracepoint.
+In such a case, GDB compiles the source expression into a bytecode
+sequence that simply gets values from registers or memory, does
+arithmetic, and returns a result.
+
+   Another way to use agent expressions is for tracepoint data
+collection.  GDB generates a different bytecode sequence for collection;
+in addition to bytecodes that do the calculation, GDB adds 'trace'
+bytecodes to save the pieces of memory that were used.
+
+   * The user selects trace points in the program's code at which GDB
+     should collect data.
+
+   * The user specifies expressions to evaluate at each trace point.
+     These expressions may denote objects in memory, in which case those
+     objects' contents are recorded as the program runs, or computed
+     values, in which case the values themselves are recorded.
+
+   * GDB transmits the tracepoints and their associated expressions to
+     the GDB agent, running on the debugging target.
+
+   * The agent arranges to be notified when a trace point is hit.
+
+   * When execution on the target reaches a trace point, the agent
+     evaluates the expressions associated with that trace point, and
+     records the resulting values and memory ranges.
+
+   * Later, when the user selects a given trace event and inspects the
+     objects and expression values recorded, GDB talks to the agent to
+     retrieve recorded data as necessary to meet the user's requests.
+     If the user asks to see an object whose contents have not been
+     recorded, GDB reports an error.
+
+
+File: gdb.info,  Node: Varying Target Capabilities,  Next: Rationale,  Prev: Using Agent Expressions,  Up: Agent Expressions
+
+F.4 Varying Target Capabilities
+===============================
+
+Some targets don't support floating-point, and some would rather not
+have to deal with 'long long' operations.  Also, different targets will
+have different stack sizes, and different bytecode buffer lengths.
+
+   Thus, GDB needs a way to ask the target about itself.  We haven't
+worked out the details yet, but in general, GDB should be able to send
+the target a packet asking it to describe itself.  The reply should be a
+packet whose length is explicit, so we can add new information to the
+packet in future revisions of the agent, without confusing old versions
+of GDB, and it should contain a version number.  It should contain at
+least the following information:
+
+   * whether floating point is supported
+
+   * whether 'long long' is supported
+
+   * maximum acceptable size of bytecode stack
+
+   * maximum acceptable length of bytecode expressions
+
+   * which registers are actually available for collection
+
+   * whether the target supports disabled tracepoints
+
+
+File: gdb.info,  Node: Rationale,  Prev: Varying Target Capabilities,  Up: Agent Expressions
+
+F.5 Rationale
+=============
+
+Some of the design decisions apparent above are arguable.
+
+What about stack overflow/underflow?
+     GDB should be able to query the target to discover its stack size.
+     Given that information, GDB can determine at translation time
+     whether a given expression will overflow the stack.  But this spec
+     isn't about what kinds of error-checking GDB ought to do.
+
+Why are you doing everything in LONGEST?
+
+     Speed isn't important, but agent code size is; using LONGEST brings
+     in a bunch of support code to do things like division, etc.  So
+     this is a serious concern.
+
+     First, note that you don't need different bytecodes for different
+     operand sizes.  You can generate code without _knowing_ how big the
+     stack elements actually are on the target.  If the target only
+     supports 32-bit ints, and you don't send any 64-bit bytecodes,
+     everything just works.  The observation here is that the MIPS and
+     the Alpha have only fixed-size registers, and you can still get C's
+     semantics even though most instructions only operate on full-sized
+     words.  You just need to make sure everything is properly
+     sign-extended at the right times.  So there is no need for 32- and
+     64-bit variants of the bytecodes.  Just implement everything using
+     the largest size you support.
+
+     GDB should certainly check to see what sizes the target supports,
+     so the user can get an error earlier, rather than later.  But this
+     information is not necessary for correctness.
+
+Why don't you have '>' or '<=' operators?
+     I want to keep the interpreter small, and we don't need them.  We
+     can combine the 'less_' opcodes with 'log_not', and swap the order
+     of the operands, yielding all four asymmetrical comparison
+     operators.  For example, '(x <= y)' is '! (x > y)', which is '! (y
+     < x)'.
+
+Why do you have 'log_not'?
+Why do you have 'ext'?
+Why do you have 'zero_ext'?
+     These are all easily synthesized from other instructions, but I
+     expect them to be used frequently, and they're simple, so I include
+     them to keep bytecode strings short.
+
+     'log_not' is equivalent to 'const8 0 equal'; it's used in half the
+     relational operators.
+
+     'ext N' is equivalent to 'const8 S-N lsh const8 S-N rsh_signed',
+     where S is the size of the stack elements; it follows 'refM' and
+     REG bytecodes when the value should be signed.  See the next
+     bulleted item.
+
+     'zero_ext N' is equivalent to 'constM MASK log_and'; it's used
+     whenever we push the value of a register, because we can't assume
+     the upper bits of the register aren't garbage.
+
+Why not have sign-extending variants of the 'ref' operators?
+     Because that would double the number of 'ref' operators, and we
+     need the 'ext' bytecode anyway for accessing bitfields.
+
+Why not have constant-address variants of the 'ref' operators?
+     Because that would double the number of 'ref' operators again, and
+     'const32 ADDRESS ref32' is only one byte longer.
+
+Why do the 'refN' operators have to support unaligned fetches?
+     GDB will generate bytecode that fetches multi-byte values at
+     unaligned addresses whenever the executable's debugging information
+     tells it to.  Furthermore, GDB does not know the value the pointer
+     will have when GDB generates the bytecode, so it cannot determine
+     whether a particular fetch will be aligned or not.
+
+     In particular, structure bitfields may be several bytes long, but
+     follow no alignment rules; members of packed structures are not
+     necessarily aligned either.
+
+     In general, there are many cases where unaligned references occur
+     in correct C code, either at the programmer's explicit request, or
+     at the compiler's discretion.  Thus, it is simpler to make the GDB
+     agent bytecodes work correctly in all circumstances than to make
+     GDB guess in each case whether the compiler did the usual thing.
+
+Why are there no side-effecting operators?
+     Because our current client doesn't want them?  That's a cheap
+     answer.  I think the real answer is that I'm afraid of implementing
+     function calls.  We should re-visit this issue after the present
+     contract is delivered.
+
+Why aren't the 'goto' ops PC-relative?
+     The interpreter has the base address around anyway for PC bounds
+     checking, and it seemed simpler.
+
+Why is there only one offset size for the 'goto' ops?
+     Offsets are currently sixteen bits.  I'm not happy with this
+     situation either:
+
+     Suppose we have multiple branch ops with different offset sizes.
+     As I generate code left-to-right, all my jumps are forward jumps
+     (there are no loops in expressions), so I never know the target
+     when I emit the jump opcode.  Thus, I have to either always assume
+     the largest offset size, or do jump relaxation on the code after I
+     generate it, which seems like a big waste of time.
+
+     I can imagine a reasonable expression being longer than 256 bytes.
+     I can't imagine one being longer than 64k.  Thus, we need 16-bit
+     offsets.  This kind of reasoning is so bogus, but relaxation is
+     pathetic.
+
+     The other approach would be to generate code right-to-left.  Then
+     I'd always know my offset size.  That might be fun.
+
+Where is the function call bytecode?
+
+     When we add side-effects, we should add this.
+
+Why does the 'reg' bytecode take a 16-bit register number?
+
+     Intel's IA-64 architecture has 128 general-purpose registers, and
+     128 floating-point registers, and I'm sure it has some random
+     control registers.
+
+Why do we need 'trace' and 'trace_quick'?
+     Because GDB needs to record all the memory contents and registers
+     an expression touches.  If the user wants to evaluate an expression
+     'x->y->z', the agent must record the values of 'x' and 'x->y' as
+     well as the value of 'x->y->z'.
+
+Don't the 'trace' bytecodes make the interpreter less general?
+     They do mean that the interpreter contains special-purpose code,
+     but that doesn't mean the interpreter can only be used for that
+     purpose.  If an expression doesn't use the 'trace' bytecodes, they
+     don't get in its way.
+
+Why doesn't 'trace_quick' consume its arguments the way everything else does?
+     In general, you do want your operators to consume their arguments;
+     it's consistent, and generally reduces the amount of stack
+     rearrangement necessary.  However, 'trace_quick' is a kludge to
+     save space; it only exists so we needn't write 'dup const8 SIZE
+     trace' before every memory reference.  Therefore, it's okay for it
+     not to consume its arguments; it's meant for a specific context in
+     which we know exactly what it should do with the stack.  If we're
+     going to have a kludge, it should be an effective kludge.
+
+Why does 'trace16' exist?
+     That opcode was added by the customer that contracted Cygnus for
+     the data tracing work.  I personally think it is unnecessary;
+     objects that large will be quite rare, so it is okay to use 'dup
+     const16 SIZE trace' in those cases.
+
+     Whatever we decide to do with 'trace16', we should at least leave
+     opcode 0x30 reserved, to remain compatible with the customer who
+     added it.
+
+
+File: gdb.info,  Node: Target Descriptions,  Next: Operating System Information,  Prev: Agent Expressions,  Up: Top
+
+Appendix G Target Descriptions
+******************************
+
+One of the challenges of using GDB to debug embedded systems is that
+there are so many minor variants of each processor architecture in use.
+It is common practice for vendors to start with a standard processor
+core -- ARM, PowerPC, or MIPS, for example -- and then make changes to
+adapt it to a particular market niche.  Some architectures have hundreds
+of variants, available from dozens of vendors.  This leads to a number
+of problems:
+
+   * With so many different customized processors, it is difficult for
+     the GDB maintainers to keep up with the changes.
+   * Since individual variants may have short lifetimes or limited
+     audiences, it may not be worthwhile to carry information about
+     every variant in the GDB source tree.
+   * When GDB does support the architecture of the embedded system at
+     hand, the task of finding the correct architecture name to give the
+     'set architecture' command can be error-prone.
+
+   To address these problems, the GDB remote protocol allows a target
+system to not only identify itself to GDB, but to actually describe its
+own features.  This lets GDB support processor variants it has never
+seen before -- to the extent that the descriptions are accurate, and
+that GDB understands them.
+
+   GDB must be linked with the Expat library to support XML target
+descriptions.  *Note Expat::.
+
+* Menu:
+
+* Retrieving Descriptions::         How descriptions are fetched from a target.
+* Target Description Format::       The contents of a target description.
+* Predefined Target Types::         Standard types available for target
+                                    descriptions.
+* Enum Target Types::               How to define enum target types.
+* Standard Target Features::        Features GDB knows about.
+
+
+File: gdb.info,  Node: Retrieving Descriptions,  Next: Target Description Format,  Up: Target Descriptions
+
+G.1 Retrieving Descriptions
+===========================
+
+Target descriptions can be read from the target automatically, or
+specified by the user manually.  The default behavior is to read the
+description from the target.  GDB retrieves it via the remote protocol
+using 'qXfer' requests (*note qXfer: General Query Packets.).  The ANNEX
+in the 'qXfer' packet will be 'target.xml'.  The contents of the
+'target.xml' annex are an XML document, of the form described in *note
+Target Description Format::.
+
+   Alternatively, you can specify a file to read for the target
+description.  If a file is set, the target will not be queried.  The
+commands to specify a file are:
+
+'set tdesc filename PATH'
+     Read the target description from PATH.
+
+'unset tdesc filename'
+     Do not read the XML target description from a file.  GDB will use
+     the description supplied by the current target.
+
+'show tdesc filename'
+     Show the filename to read for a target description, if any.
+
+
+File: gdb.info,  Node: Target Description Format,  Next: Predefined Target Types,  Prev: Retrieving Descriptions,  Up: Target Descriptions
+
+G.2 Target Description Format
+=============================
+
+A target description annex is an XML (http://www.w3.org/XML/) document
+which complies with the Document Type Definition provided in the GDB
+sources in 'gdb/features/gdb-target.dtd'.  This means you can use
+generally available tools like 'xmllint' to check that your feature
+descriptions are well-formed and valid.  However, to help people
+unfamiliar with XML write descriptions for their targets, we also
+describe the grammar here.
+
+   Target descriptions can identify the architecture of the remote
+target and (for some architectures) provide information about custom
+register sets.  They can also identify the OS ABI of the remote target.
+GDB can use this information to autoconfigure for your target, or to
+warn you if you connect to an unsupported target.
+
+   Here is a simple target description:
+
+     <target version="1.0">
+       <architecture>i386:x86-64</architecture>
+     </target>
+
+This minimal description only says that the target uses the x86-64
+architecture.
+
+   A target description has the following overall form, with [ ] marking
+optional elements and ... marking repeatable elements.  The elements are
+explained further below.
+
+     <?xml version="1.0"?>
+     <!DOCTYPE target SYSTEM "gdb-target.dtd">
+     <target version="1.0">
+       [ARCHITECTURE]
+       [OSABI]
+       [COMPATIBLE]
+       [FEATURE...]
+     </target>
+
+The description is generally insensitive to whitespace and line breaks,
+under the usual common-sense rules.  The XML version declaration and
+document type declaration can generally be omitted (GDB does not require
+them), but specifying them may be useful for XML validation tools.  The
+'version' attribute for '<target>' may also be omitted, but we recommend
+including it; if future versions of GDB use an incompatible revision of
+'gdb-target.dtd', they will detect and report the version mismatch.
+
+G.2.1 Inclusion
+---------------
+
+It can sometimes be valuable to split a target description up into
+several different annexes, either for organizational purposes, or to
+share files between different possible target descriptions.  You can
+divide a description into multiple files by replacing any element of the
+target description with an inclusion directive of the form:
+
+     <xi:include href="DOCUMENT"/>
+
+When GDB encounters an element of this form, it will retrieve the named
+XML DOCUMENT, and replace the inclusion directive with the contents of
+that document.  If the current description was read using 'qXfer', then
+so will be the included document; DOCUMENT will be interpreted as the
+name of an annex.  If the current description was read from a file, GDB
+will look for DOCUMENT as a file in the same directory where it found
+the original description.
+
+G.2.2 Architecture
+------------------
+
+An '<architecture>' element has this form:
+
+       <architecture>ARCH</architecture>
+
+   ARCH is one of the architectures from the set accepted by 'set
+architecture' (*note Specifying a Debugging Target: Targets.).
+
+G.2.3 OS ABI
+------------
+
+This optional field was introduced in GDB version 7.0.  Previous
+versions of GDB ignore it.
+
+   An '<osabi>' element has this form:
+
+       <osabi>ABI-NAME</osabi>
+
+   ABI-NAME is an OS ABI name from the same selection accepted by
+'set osabi' (*note Configuring the Current ABI: ABI.).
+
+G.2.4 Compatible Architecture
+-----------------------------
+
+This optional field was introduced in GDB version 7.0.  Previous
+versions of GDB ignore it.
+
+   A '<compatible>' element has this form:
+
+       <compatible>ARCH</compatible>
+
+   ARCH is one of the architectures from the set accepted by 'set
+architecture' (*note Specifying a Debugging Target: Targets.).
+
+   A '<compatible>' element is used to specify that the target is able
+to run binaries in some other than the main target architecture given by
+the '<architecture>' element.  For example, on the Cell Broadband
+Engine, the main architecture is 'powerpc:common' or 'powerpc:common64',
+but the system is able to run binaries in the 'spu' architecture as
+well.  The way to describe this capability with '<compatible>' is as
+follows:
+
+       <architecture>powerpc:common</architecture>
+       <compatible>spu</compatible>
+
+G.2.5 Features
+--------------
+
+Each '<feature>' describes some logical portion of the target system.
+Features are currently used to describe available CPU registers and the
+types of their contents.  A '<feature>' element has this form:
+
+     <feature name="NAME">
+       [TYPE...]
+       REG...
+     </feature>
+
+Each feature's name should be unique within the description.  The name
+of a feature does not matter unless GDB has some special knowledge of
+the contents of that feature; if it does, the feature should have its
+standard name.  *Note Standard Target Features::.
+
+G.2.6 Types
+-----------
+
+Any register's value is a collection of bits which GDB must interpret.
+The default interpretation is a two's complement integer, but other
+types can be requested by name in the register description.  Some
+predefined types are provided by GDB (*note Predefined Target Types::),
+and the description can define additional composite and enum types.
+
+   Each type element must have an 'id' attribute, which gives a unique
+(within the containing '<feature>') name to the type.  Types must be
+defined before they are used.
+
+   Some targets offer vector registers, which can be treated as arrays
+of scalar elements.  These types are written as '<vector>' elements,
+specifying the array element type, TYPE, and the number of elements,
+COUNT:
+
+     <vector id="ID" type="TYPE" count="COUNT"/>
+
+   If a register's value is usefully viewed in multiple ways, define it
+with a union type containing the useful representations.  The '<union>'
+element contains one or more '<field>' elements, each of which has a
+NAME and a TYPE:
+
+     <union id="ID">
+       <field name="NAME" type="TYPE"/>
+       ...
+     </union>
+
+   If a register's value is composed from several separate values,
+define it with either a structure type or a flags type.  A flags type
+may only contain bitfields.  A structure type may either contain only
+bitfields or contain no bitfields.  If the value contains only
+bitfields, its total size in bytes must be specified.
+
+   Non-bitfield values have a NAME and TYPE.
+
+     <struct id="ID">
+       <field name="NAME" type="TYPE"/>
+       ...
+     </struct>
+
+   Both NAME and TYPE values are required.  No implicit padding is
+added.
+
+   Bitfield values have a NAME, START, END and TYPE.
+
+     <struct id="ID" size="SIZE">
+       <field name="NAME" start="START" end="END" type="TYPE"/>
+       ...
+     </struct>
+
+     <flags id="ID" size="SIZE">
+       <field name="NAME" start="START" end="END" type="TYPE"/>
+       ...
+     </flags>
+
+   The NAME value is required.  Bitfield values may be named with the
+empty string, '""', in which case the field is "filler" and its value is
+not printed.  Not all bits need to be specified, so "filler" fields are
+optional.
+
+   The START and END values are required, and TYPE is optional.  The
+field's START must be less than or equal to its END, and zero represents
+the least significant bit.
+
+   The default value of TYPE is 'bool' for single bit fields, and an
+unsigned integer otherwise.
+
+   Which to choose?  Structures or flags?
+
+   Registers defined with 'flags' have these advantages over defining
+them with 'struct':
+
+   * Arithmetic may be performed on them as if they were integers.
+   * They are printed in a more readable fashion.
+
+   Registers defined with 'struct' have one advantage over defining them
+with 'flags':
+
+   * One can fetch individual fields like in 'C'.
+
+          (gdb) print $my_struct_reg.field3
+          $1 = 42
+
+G.2.7 Registers
+---------------
+
+Each register is represented as an element with this form:
+
+     <reg name="NAME"
+          bitsize="SIZE"
+          [regnum="NUM"]
+          [save-restore="SAVE-RESTORE"]
+          [type="TYPE"]
+          [group="GROUP"]/>
+
+The components are as follows:
+
+NAME
+     The register's name; it must be unique within the target
+     description.
+
+BITSIZE
+     The register's size, in bits.
+
+REGNUM
+     The register's number.  If omitted, a register's number is one
+     greater than that of the previous register (either in the current
+     feature or in a preceding feature); the first register in the
+     target description defaults to zero.  This register number is used
+     to read or write the register; e.g. it is used in the remote 'p'
+     and 'P' packets, and registers appear in the 'g' and 'G' packets in
+     order of increasing register number.
+
+SAVE-RESTORE
+     Whether the register should be preserved across inferior function
+     calls; this must be either 'yes' or 'no'.  The default is 'yes',
+     which is appropriate for most registers except for some system
+     control registers; this is not related to the target's ABI.
+
+TYPE
+     The type of the register.  It may be a predefined type, a type
+     defined in the current feature, or one of the special types 'int'
+     and 'float'.  'int' is an integer type of the correct size for
+     BITSIZE, and 'float' is a floating point type (in the
+     architecture's normal floating point format) of the correct size
+     for BITSIZE.  The default is 'int'.
+
+GROUP
+     The register group to which this register belongs.  It can be one
+     of the standard register groups 'general', 'float', 'vector' or an
+     arbitrary string.  Group names should be limited to alphanumeric
+     characters.  If a group name is made up of multiple words the words
+     may be separated by hyphens; e.g. 'special-group' or
+     'ultra-special-group'.  If no GROUP is specified, GDB will not
+     display the register in 'info registers'.
+
+
 File: gdb.info,  Node: Predefined Target Types,  Next: Enum Target Types,  Prev: Target Description Format,  Up: Target Descriptions
 
 G.3 Predefined Target Types
@@ -169,6 +741,7 @@ the capitalization used in the descripti
 * M68K Features::
 * NDS32 Features::
 * Nios II Features::
+* OpenRISC 1000 Features::
 * PowerPC Features::
 * S/390 and System z Features::
 * Sparc Features::
@@ -413,7 +986,7 @@ single-precision registers explicitly is
 it could be totally removed some day.
 
 
-File: gdb.info,  Node: Nios II Features,  Next: PowerPC Features,  Prev: NDS32 Features,  Up: Standard Target Features
+File: gdb.info,  Node: Nios II Features,  Next: OpenRISC 1000 Features,  Prev: NDS32 Features,  Up: Standard Target Features
 
 G.5.9 Nios II Features
 ----------------------
@@ -424,9 +997,19 @@ should contain the 32 core registers ('z
 'mpuacc').
 
 
-File: gdb.info,  Node: PowerPC Features,  Next: S/390 and System z Features,  Prev: Nios II Features,  Up: Standard Target Features
+File: gdb.info,  Node: OpenRISC 1000 Features,  Next: PowerPC Features,  Prev: Nios II Features,  Up: Standard Target Features
+
+G.5.10 Openrisc 1000 Features
+-----------------------------
 
-G.5.10 PowerPC Features
+The 'org.gnu.gdb.or1k.group0' feature is required for OpenRISC 1000
+targets.  It should contain the 32 general purpose registers ('r0'
+through 'r31'), 'ppc', 'npc' and 'sr'.
+
+
+File: gdb.info,  Node: PowerPC Features,  Next: S/390 and System z Features,  Prev: OpenRISC 1000 Features,  Up: Standard Target Features
+
+G.5.11 PowerPC Features
 -----------------------
 
 The 'org.gnu.gdb.power.core' feature is required for PowerPC targets.
@@ -454,7 +1037,7 @@ present registers 'ev0' through 'ev31' t
 
 File: gdb.info,  Node: S/390 and System z Features,  Next: Sparc Features,  Prev: PowerPC Features,  Up: Standard Target Features
 
-G.5.11 S/390 and System z Features
+G.5.12 S/390 and System z Features
 ----------------------------------
 
 The 'org.gnu.gdb.s390.core' feature is required for S/390 and System z
@@ -489,10 +1072,18 @@ GDB with the floating point registers 'f
 feature should contain the 128-bit wide vector registers 'v16' through
 'v31'.
 
+   The 'org.gnu.gdb.s390.gs' feature is optional.  It should contain the
+64-bit wide guarded-storage-control registers 'gsd', 'gssm', and
+'gsepla'.
+
+   The 'org.gnu.gdb.s390.gsbc' feature is optional.  It should contain
+the 64-bit wide guarded-storage broadcast control registers 'bc_gsd',
+'bc_gssm', and 'bc_gsepla'.
+
 
 File: gdb.info,  Node: Sparc Features,  Next: TIC6x Features,  Prev: S/390 and System z Features,  Up: Standard Target Features
 
-G.5.12 Sparc Features
+G.5.13 Sparc Features
 ---------------------
 
 The 'org.gnu.gdb.sparc.cpu' feature is required for sparc32/sparc64
@@ -520,7 +1111,7 @@ targets.  It should describe the followi
 
 File: gdb.info,  Node: TIC6x Features,  Prev: Sparc Features,  Up: Standard Target Features
 
-G.5.13 TMS320C6x Features
+G.5.14 TMS320C6x Features
 -------------------------
 
 The 'org.gnu.gdb.tic6x.core' feature is required for TMS320C6x targets.
@@ -1263,7 +1854,7 @@ File: gdb.info,  Node: gcore man,  Next:
 gcore
 =====
 
-gcore [-o FILENAME] PID
+gcore [-a] [-o FILENAME] PID
 
    Generate a core dump of a running program with process ID PID.
 Produced file is equivalent to a kernel produced core file as if the
@@ -1271,6 +1862,12 @@ process crashed (and if 'ulimit -c' were
 core dump limit).  Unlike after a crash, after 'gcore' the program
 remains running without any change.
 
+'-a'
+     Dump all memory mappings.  The actual effect of this option depends
+     on the Operating System.  On GNU/Linux, it will disable
+     'use-coredump-filter' (*note set use-coredump-filter::) and enable
+     'dump-excluded-mappings' (*note set dump-excluded-mappings::).
+
 '-o FILENAME'
      The optional argument FILENAME specifies the file name where to put
      the core dump.  If not specified, the file name defaults to
@@ -2549,10 +3146,12 @@ Concept Index
 * --once, gdbserver option:              Server.             (line  126)
 * --pid:                                 File Options.       (line   47)
 * --quiet:                               Mode Options.       (line   40)
+* --readnever, command-line option:      File Options.       (line   87)
 * --readnow:                             File Options.       (line   81)
 * --remote-debug, gdbserver option:      Server.             (line  147)
 * --return-child-result:                 Mode Options.       (line   74)
 * --se:                                  File Options.       (line   39)
+* --selftest:                            Server.             (line  186)
 * --silent:                              Mode Options.       (line   40)
 * --statistics:                          Mode Options.       (line  176)
 * --symbols:                             File Options.       (line   31)
@@ -2562,7 +3161,7 @@ Concept Index
 * --windows:                             Mode Options.       (line   97)
 * --with-gdb-datadir:                    Data Files.         (line   19)
 * --with-relocated-sources:              Source Path.        (line   88)
-* --with-sysroot:                        Files.              (line  439)
+* --with-sysroot:                        Files.              (line  445)
 * --wrapper, gdbserver option:           Server.             (line  165)
 * --write:                               Mode Options.       (line  171)
 * -b:                                    Mode Options.       (line  140)
@@ -2582,6 +3181,7 @@ Concept Index
 * -p:                                    File Options.       (line   47)
 * -q:                                    Mode Options.       (line   40)
 * -r:                                    File Options.       (line   81)
+* -readnever, option for symbol-file command: Files.         (line   96)
 * -s:                                    File Options.       (line   31)
 * -t:                                    Mode Options.       (line  149)
 * -w:                                    Mode Options.       (line   97)
@@ -2602,7 +3202,7 @@ Concept Index
                                                              (line   76)
 * .note.gnu.build-id sections:           Separate Debug Files.
                                                              (line   92)
-* .o files, reading symbols from:        Files.              (line  132)
+* .o files, reading symbols from:        Files.              (line  138)
 * /proc:                                 SVR4 Process Information.
                                                              (line    6)
 * <architecture>:                        Target Description Format.
@@ -2613,7 +3213,7 @@ Concept Index
                                                              (line  119)
 * <flags>:                               Target Description Format.
                                                              (line  163)
-* <not saved> values:                    Registers.          (line  101)
+* <not saved> values:                    Registers.          (line  106)
 * <osabi>:                               Target Description Format.
                                                              (line   82)
 * <reg>:                                 Target Description Format.
@@ -2636,6 +3236,7 @@ Concept Index
 * active targets:                        Active Targets.     (line    6)
 * Ada:                                   Ada.                (line    6)
 * Ada exception catching:                Set Catchpoints.    (line   66)
+* Ada exception handlers catching:       Set Catchpoints.    (line   83)
 * Ada mode, general:                     Ada Mode Intro.     (line    6)
 * Ada task switching:                    Ada Tasks.          (line  114)
 * Ada tasking and core file debugging:   Ada Tasks and Core Files.
@@ -2646,7 +3247,7 @@ Concept Index
 * Ada, tasking:                          Ada Tasks.          (line    6)
 * add new commands for external monitor: Connecting.         (line  221)
 * address locations:                     Address Locations.  (line    6)
-* address of a symbol:                   Symbols.            (line   74)
+* address of a symbol:                   Symbols.            (line   85)
 * address size for remote targets:       Remote Configuration.
                                                              (line   12)
 * addressable memory unit:               Memory.             (line  133)
@@ -2668,6 +3269,7 @@ Concept Index
                                                              (line    6)
 * annotations for source display:        Source Annotations. (line    6)
 * append data to a file:                 Dump/Restore Files. (line    6)
+* Application Data Integrity:            Sparc64.            (line    5)
 * apply command to several threads:      Threads.            (line  187)
 * ARC EM:                                ARC.                (line    6)
 * ARC HS:                                ARC.                (line    6)
@@ -2712,7 +3314,7 @@ Concept Index
 * auto-retry, for remote TCP target:     Remote Configuration.
                                                              (line  124)
 * automatic display:                     Auto Display.       (line    6)
-* automatic hardware breakpoints:        Set Breaks.         (line  288)
+* automatic hardware breakpoints:        Set Breaks.         (line  289)
 * automatic overlay debugging:           Automatic Overlay Debugging.
                                                              (line    6)
 * automatic thread selection:            All-Stop Mode.      (line   28)
@@ -2724,12 +3326,12 @@ Concept Index
                                                              (line    6)
 * backtrace beyond main function:        Backtrace.          (line  105)
 * backtrace limit:                       Backtrace.          (line  142)
-* base name differences:                 Files.              (line  506)
+* base name differences:                 Files.              (line  512)
 * baud rate for remote targets:          Remote Configuration.
                                                              (line   21)
 * bc packet:                             Packets.            (line   96)
 * bcache statistics:                     Maintenance Commands.
-                                                             (line  311)
+                                                             (line  320)
 * bits in remote address:                Remote Configuration.
                                                              (line   12)
 * blocks in guile:                       Blocks In Guile.    (line    6)
@@ -2744,18 +3346,18 @@ Concept Index
                                                              (line   64)
 * break in overloaded functions:         Debugging C Plus Plus.
                                                              (line    9)
-* break on a system call.:               Set Catchpoints.    (line   94)
-* break on fork/exec:                    Set Catchpoints.    (line   90)
+* break on a system call.:               Set Catchpoints.    (line  111)
+* break on fork/exec:                    Set Catchpoints.    (line  107)
 * BREAK signal instead of Ctrl-C:        Remote Configuration.
                                                              (line   36)
 * breakpoint address adjusted:           Breakpoint-related Warnings.
                                                              (line    6)
-* breakpoint at static probe point:      Linespec Locations. (line   50)
+* breakpoint at static probe point:      Linespec Locations. (line   65)
 * breakpoint commands:                   Break Commands.     (line    6)
 * breakpoint commands for GDB/MI:        GDB/MI Breakpoint Commands.
                                                              (line    6)
 * breakpoint commands, in remote protocol: General Query Packets.
-                                                             (line  872)
+                                                             (line  995)
 * breakpoint conditions:                 Conditions.         (line    6)
 * breakpoint kinds, ARM:                 ARM Breakpoint Kinds.
                                                              (line    6)
@@ -2823,8 +3425,8 @@ Concept Index
                                                              (line   26)
 * call stack:                            Stack.              (line    9)
 * call stack traces:                     Backtrace.          (line    6)
-* call-clobbered registers:              Registers.          (line  101)
-* caller-saved registers:                Registers.          (line  101)
+* call-clobbered registers:              Registers.          (line  106)
+* caller-saved registers:                Registers.          (line  106)
 * calling functions:                     Calling.            (line    6)
 * calling make:                          Shell Commands.     (line   21)
 * case sensitivity in symbol names:      Symbols.            (line   27)
@@ -2832,12 +3434,14 @@ Concept Index
 * casts, in expressions:                 Expressions.        (line   26)
 * casts, to view memory:                 Expressions.        (line   41)
 * catch Ada exceptions:                  Set Catchpoints.    (line   66)
+* catch Ada exceptions when handled:     Set Catchpoints.    (line   83)
 * catch syscalls from inferior, remote request: General Query Packets.
-                                                             (line  278)
+                                                             (line  401)
 * catchpoints:                           Breakpoints.        (line   30)
 * catchpoints, setting:                  Set Catchpoints.    (line    6)
 * Cell Broadband Engine:                 SPU.                (line    6)
-* change working directory:              Working Directory.  (line   16)
+* change GDB's working directory:        Working Directory.  (line   32)
+* change inferior's working directory:   Working Directory.  (line   13)
 * character sets:                        Character Sets.     (line    6)
 * charset:                               Character Sets.     (line    6)
 * checkpoint:                            Checkpoint/Restart. (line    6)
@@ -2851,7 +3455,7 @@ Concept Index
 * clearing breakpoints, watchpoints, catchpoints: Delete Breaks.
                                                              (line    6)
 * close, file-i/o system call:           close.              (line    6)
-* closest symbol and offset for an address: Symbols.         (line   84)
+* closest symbol and offset for an address: Symbols.         (line   95)
 * code address and its source line:      Machine Code.       (line   25)
 * code compression, MIPS:                MIPS.               (line   49)
 * COFF/PE exported symbols:              Debugging Output.   (line   50)
@@ -2883,6 +3487,8 @@ Concept Index
 * compilation directory:                 Source Path.        (line  106)
 * compile command debugging info:        Compiling and Injecting Code.
                                                              (line   81)
+* compile command driver filename override: Compiling and Injecting Code.
+                                                             (line  291)
 * compile command options override:      Compiling and Injecting Code.
                                                              (line  116)
 * compiling code:                        Compiling and Injecting Code.
@@ -2891,9 +3497,9 @@ Concept Index
 * completion of Guile commands:          Commands In Guile.  (line  100)
 * completion of Python commands:         Commands In Python. (line   70)
 * completion of quoted strings:          Completion.         (line   82)
-* completion of structure field names:   Completion.         (line  120)
-* completion of union field names:       Completion.         (line  120)
-* compressed debug sections:             Requirements.       (line   39)
+* completion of structure field names:   Completion.         (line  134)
+* completion of union field names:       Completion.         (line  134)
+* compressed debug sections:             Requirements.       (line   53)
 * conditional breakpoints:               Conditions.         (line    6)
 * conditional tracepoints:               Tracepoint Conditions.
                                                              (line    6)
@@ -2978,7 +3584,7 @@ Concept Index
 * default collection action:             Tracepoint Actions. (line  142)
 * default data directory:                Data Files.         (line   19)
 * default source path substitution:      Source Path.        (line   88)
-* default system root:                   Files.              (line  439)
+* default system root:                   Files.              (line  445)
 * define trace state variable, remote request: Tracepoint Packets.
                                                              (line  121)
 * defining macros interactively:         Macros.             (line   59)
@@ -2987,7 +3593,7 @@ Concept Index
 * deleting breakpoints, watchpoints, catchpoints: Delete Breaks.
                                                              (line    6)
 * deliver a signal to a program:         Signaling.          (line    6)
-* demangle:                              Symbols.            (line  103)
+* demangle:                              Symbols.            (line  114)
 * demangler crashes:                     Maintenance Commands.
                                                              (line  146)
 * demangler crashes <1>:                 Maintenance Commands.
@@ -3031,7 +3637,7 @@ Concept Index
 * don't repeat command:                  Define.             (line   74)
 * don't repeat Guile command:            Commands In Guile.  (line   67)
 * don't repeat Python command:           Commands In Python. (line   42)
-* DOS file-name semantics of file names.: Files.             (line  462)
+* DOS file-name semantics of file names.: Files.             (line  468)
 * DOS serial data link, remote debugging: DJGPP Native.      (line  118)
 * DOS serial port status:                DJGPP Native.       (line  139)
 * DPMI:                                  DJGPP Native.       (line    6)
@@ -3043,12 +3649,12 @@ Concept Index
 * dump/restore files:                    Dump/Restore Files. (line    6)
 * DVC register:                          PowerPC Embedded.   (line    6)
 * DWARF compilation units cache:         Maintenance Commands.
-                                                             (line  371)
+                                                             (line  386)
 * DWARF DIEs:                            Debugging Output.   (line   56)
 * DWARF Line Tables:                     Debugging Output.   (line   61)
 * DWARF Reading:                         Debugging Output.   (line   68)
 * DWARF-2 CFI and CRIS:                  CRIS.               (line   18)
-* dynamic linking:                       Files.              (line  112)
+* dynamic linking:                       Files.              (line  118)
 * dynamic printf:                        Dynamic Printf.     (line    6)
 * dynamic varobj:                        GDB/MI Variable Objects.
                                                              (line  166)
@@ -3057,7 +3663,7 @@ Concept Index
                                                              (line    6)
 * editing source files:                  Edit.               (line    6)
 * eight-bit characters in strings:       Print Settings.     (line  353)
-* elaboration phase:                     Starting.           (line   89)
+* elaboration phase:                     Starting.           (line   92)
 * ELinOS system-wide configuration script: System-wide Configuration Scripts.
                                                              (line   15)
 * Emacs:                                 Emacs.              (line    6)
@@ -3088,7 +3694,7 @@ Concept Index
 * execute commands from a file:          Command Files.      (line   17)
 * execute forward or backward in time:   Reverse Execution.  (line   86)
 * execute remote command, remote request: General Query Packets.
-                                                             (line  413)
+                                                             (line  536)
 * execution, foreground, background and asynchronous: Background Execution.
                                                              (line    6)
 * exiting GDB:                           Quitting GDB.       (line    6)
@@ -3119,8 +3725,8 @@ Concept Index
 * fatal signal:                          Bug Criteria.       (line    9)
 * fatal signals:                         Signals.            (line   15)
 * features of the remote protocol:       General Query Packets.
-                                                             (line  466)
-* file name canonicalization:            Files.              (line  506)
+                                                             (line  589)
+* file name canonicalization:            Files.              (line  512)
 * file transfer:                         File Transfer.      (line    6)
 * file transfer, remote protocol:        Host I/O Packets.   (line    6)
 * file-i/o examples:                     File-I/O Examples.  (line    6)
@@ -3150,14 +3756,14 @@ Concept Index
 * Fortran Defaults:                      Fortran Defaults.   (line    6)
 * Fortran operators and expressions:     Fortran Operators.  (line    6)
 * Fortran-specific support in GDB:       Fortran.            (line    6)
-* FR-V shared-library debugging:         Debugging Output.   (line  168)
+* FR-V shared-library debugging:         Debugging Output.   (line  175)
 * frame debugging info:                  Debugging Output.   (line   97)
 * frame decorator api:                   Frame Decorator API.
                                                              (line    6)
 * frame filters api:                     Frame Filter API.   (line    6)
 * frame number:                          Frames.             (line   28)
 * frame pointer:                         Frames.             (line   21)
-* frame pointer register:                Registers.          (line   26)
+* frame pointer register:                Registers.          (line   31)
 * frame, definition:                     Frames.             (line    6)
 * frameless execution:                   Frames.             (line   34)
 * frames in guile:                       Frames In Guile.    (line    6)
@@ -3166,7 +3772,7 @@ Concept Index
 * FreeBSD LWP debug messages:            Debugging Output.   (line   92)
 * fstat, file-i/o system call:           stat/fstat.         (line    6)
 * Fujitsu:                               Remote Stub.        (line   68)
-* full symbol tables, listing GDB's internal: Symbols.       (line  398)
+* full symbol tables, listing GDB's internal: Symbols.       (line  541)
 * function call arguments, optimized out: Backtrace.         (line   83)
 * function entry/exit, wrong values of variables: Variables. (line  106)
 * functions without line info, and stepping: Continuing and Stepping.
@@ -3221,15 +3827,15 @@ Concept Index
 * GDBHISTSIZE, environment variable:     Command History.    (line   45)
 * gdbserver, command-line arguments:     Server.             (line   34)
 * gdbserver, connecting:                 Connecting.         (line    6)
-* gdbserver, search path for libthread_db: Server.           (line  242)
+* gdbserver, search path for libthread_db: Server.           (line  249)
 * gdbserver, target extended-remote mode: Connecting.        (line    6)
 * gdbserver, target remote mode:         Connecting.         (line    6)
 * gdbserver, types of connections:       Connecting.         (line    6)
 * GDT:                                   DJGPP Native.       (line   24)
 * get thread information block address:  General Query Packets.
-                                                             (line  180)
+                                                             (line  303)
 * get thread-local storage address, remote request: General Query Packets.
-                                                             (line  148)
+                                                             (line  271)
 * gettimeofday, file-i/o system call:    gettimeofday.       (line    6)
 * getting structure elements using gdb.Field objects as subscripts: Values From Inferior.
                                                              (line   40)
@@ -3274,7 +3880,7 @@ Concept Index
 * handling signals:                      Signals.            (line   27)
 * hardware breakpoints:                  Set Breaks.         (line   61)
 * hardware debug registers:              Maintenance Commands.
-                                                             (line  397)
+                                                             (line  412)
 * hardware watchpoints:                  Set Watchpoints.    (line   31)
 * hash mark while downloading:           Target Commands.    (line   98)
 * heuristic-fence-post (Alpha, MIPS):    MIPS.               (line   14)
@@ -3304,7 +3910,7 @@ Concept Index
 * ignore count (of breakpoint):          Conditions.         (line   79)
 * in-process agent protocol:             In-Process Agent Protocol.
                                                              (line    6)
-* incomplete type:                       Symbols.            (line  217)
+* incomplete type:                       Symbols.            (line  345)
 * indentation in structure display:      Print Settings.     (line  329)
 * index files:                           Index Files.        (line    6)
 * index section format:                  Index Section Format.
@@ -3319,9 +3925,9 @@ Concept Index
                                                              (line    6)
 * infinite recursion in user-defined commands: Define.       (line   91)
 * info for known .debug_gdb_scripts-loaded scripts: Maintenance Commands.
-                                                             (line  304)
+                                                             (line  313)
 * info for known object files:           Maintenance Commands.
-                                                             (line  289)
+                                                             (line  298)
 * info proc cmdline:                     SVR4 Process Information.
                                                              (line   34)
 * info proc cwd:                         SVR4 Process Information.
@@ -3360,7 +3966,7 @@ Concept Index
                                                              (line    6)
 * internal errors, control of GDB behavior: Maintenance Commands.
                                                              (line  197)
-* internal GDB breakpoints:              Set Breaks.         (line  366)
+* internal GDB breakpoints:              Set Breaks.         (line  367)
 * interrupt:                             Quitting GDB.       (line   13)
 * interrupt debuggee on MS-Windows:      Cygwin Native.      (line    9)
 * interrupt remote programs:             Remote Configuration.
@@ -3415,25 +4021,25 @@ Concept Index
 * limits, in file-i/o protocol:          Limits.             (line    6)
 * line tables in python:                 Line Tables In Python.
                                                              (line    6)
-* line tables, listing GDB's internal:   Symbols.            (line  445)
+* line tables, listing GDB's internal:   Symbols.            (line  588)
 * linespec locations:                    Linespec Locations. (line    6)
 * Linux lightweight processes:           Debugging Output.   (line  117)
 * list active threads, remote request:   General Query Packets.
-                                                             (line  115)
+                                                             (line  238)
 * list of supported file-i/o calls:      List of Supported Calls.
                                                              (line    6)
 * list output in GDB/MI:                 GDB/MI Output Syntax.
                                                              (line  117)
 * list, how many lines to display:       List.               (line   30)
-* listing GDB's internal line tables:    Symbols.            (line  445)
-* listing GDB's internal symbol tables:  Symbols.            (line  398)
+* listing GDB's internal line tables:    Symbols.            (line  588)
+* listing GDB's internal symbol tables:  Symbols.            (line  541)
 * listing machine instructions:          Machine Code.       (line   36)
 * listing mapped overlays:               Overlay Commands.   (line   60)
 * lists of breakpoints:                  Breakpoints.        (line   45)
 * load address, overlay's:               How Overlays Work.  (line    6)
-* load shared library:                   Files.              (line  313)
-* load symbols from memory:              Files.              (line  179)
-* local variables:                       Symbols.            (line  260)
+* load shared library:                   Files.              (line  319)
+* load symbols from memory:              Files.              (line  185)
+* local variables:                       Symbols.            (line  403)
 * locate address:                        Output Formats.     (line   35)
 * location:                              Specify Location.   (line    6)
 * lock scheduler:                        All-Stop Mode.      (line   37)
@@ -3481,8 +4087,8 @@ Concept Index
 * memory tracing:                        Breakpoints.        (line   17)
 * memory transfer, in file-i/o protocol: Memory Transfer.    (line    6)
 * memory used by commands:               Maintenance Commands.
-                                                             (line  478)
-* memory used for symbol tables:         Files.              (line  301)
+                                                             (line  493)
+* memory used for symbol tables:         Files.              (line  307)
 * memory, alignment and size of remote accesses: Packets.    (line  247)
 * memory, viewing as typed object:       Expressions.        (line   41)
 * mi interpreter:                        Interpreters.       (line   26)
@@ -3490,7 +4096,7 @@ Concept Index
 * mi2 interpreter:                       Interpreters.       (line   31)
 * minimal language:                      Unsupported Languages.
                                                              (line    6)
-* minimal symbol dump:                   Symbols.            (line  372)
+* minimal symbol dump:                   Symbols.            (line  515)
 * Minimal symbols and DLLs:              Non-debug DLL Symbols.
                                                              (line    6)
 * MIPS addresses, masking:               MIPS.               (line   80)
@@ -3498,7 +4104,7 @@ Concept Index
 * MIPS stack:                            MIPS.               (line    6)
 * miscellaneous settings:                Other Misc Settings.
                                                              (line    6)
-* MMX registers (x86):                   Registers.          (line   71)
+* MMX registers (x86):                   Registers.          (line   76)
 * mode_t values, in file-i/o protocol:   mode_t Values.      (line    6)
 * Modula-2:                              Summary.            (line   29)
 * Modula-2 built-ins:                    Built-In Func/Proc. (line    6)
@@ -3509,7 +4115,7 @@ Concept Index
 * Modula-2 types:                        M2 Types.           (line    6)
 * Modula-2, deviations from:             Deviations.         (line    6)
 * Modula-2, GDB support:                 Modula-2.           (line    6)
-* monitor commands, for gdbserver:       Server.             (line  210)
+* monitor commands, for gdbserver:       Server.             (line  217)
 * Motorola 680x0:                        Remote Stub.        (line   59)
 * MS Windows debugging:                  Cygwin Native.      (line    6)
 * MS-DOS system info:                    DJGPP Native.       (line   19)
@@ -3522,7 +4128,7 @@ Concept Index
 * multiple-symbols menu:                 Ambiguous Expressions.
                                                              (line   51)
 * multiprocess extensions, in remote protocol: General Query Packets.
-                                                             (line  802)
+                                                             (line  925)
 * name a thread:                         Threads.            (line  196)
 * names of symbols:                      Symbols.            (line   14)
 * namespace in C++:                      C Plus Plus Expressions.
@@ -3532,12 +4138,15 @@ Concept Index
 * native script auto-loading:            Auto-loading sequences.
                                                              (line    6)
 * native target:                         Target Commands.    (line   85)
-* negative breakpoint numbers:           Set Breaks.         (line  366)
+* negative breakpoint numbers:           Set Breaks.         (line  367)
+* never read symbols:                    Files.              (line   96)
 * New SYSTAG message:                    Threads.            (line   35)
 * new user interface:                    Interpreters.       (line   65)
 * Newlib OS ABI and its influence on the longjmp handling: ABI.
                                                              (line   11)
 * Nios II architecture:                  Nios II.            (line    6)
+* no debug info functions:               Calling.            (line   61)
+* no debug info variables:               Variables.          (line  142)
 * non-member C++ functions, set breakpoint in: Set Breaks.   (line  106)
 * non-stop mode:                         Non-Stop Mode.      (line    6)
 * non-stop mode, and process record and replay: Process Record and Replay.
@@ -3545,7 +4154,7 @@ Concept Index
 * non-stop mode, and set displaced-stepping: Maintenance Commands.
                                                              (line  129)
 * non-stop mode, remote request:         General Query Packets.
-                                                             (line  256)
+                                                             (line  379)
 * noninvasive task options:              Hurd Native.        (line   72)
 * notation, readline:                    Readline Bare Essentials.
                                                              (line    6)
@@ -3558,9 +4167,9 @@ Concept Index
 * number of array elements to print:     Print Settings.     (line  141)
 * number representation:                 Numbers.            (line    6)
 * numbers for breakpoints:               Breakpoints.        (line   38)
-* object files, relocatable, reading symbols from: Files.    (line  132)
+* object files, relocatable, reading symbols from: Files.    (line  138)
 * Objective-C:                           Objective-C.        (line    6)
-* Objective-C, classes and selectors:    Symbols.            (line  323)
+* Objective-C, classes and selectors:    Symbols.            (line  466)
 * Objective-C, print objects:            The Print Command with Objective-C.
                                                              (line    6)
 * OBJFILE-gdb.gdb:                       objfile-gdbdotext file.
@@ -3574,7 +4183,7 @@ Concept Index
 * observer debugging info:               Debugging Output.   (line  138)
 * octal escapes in strings:              Print Settings.     (line  353)
 * online documentation:                  Help.               (line    6)
-* opaque data types:                     Symbols.            (line  335)
+* opaque data types:                     Symbols.            (line  478)
 * open flags, in file-i/o protocol:      Open Flags.         (line    6)
 * open, file-i/o system call:            open.               (line    6)
 * OpenCL C:                              OpenCL C.           (line    6)
@@ -3582,6 +4191,7 @@ Concept Index
 * OpenCL C Expressions:                  OpenCL C Expressions.
                                                              (line    6)
 * OpenCL C Operators:                    OpenCL C Operators. (line    6)
+* OpenRISC 1000:                         OpenRISC 1000.      (line    6)
 * operating system information:          Operating System Information.
                                                              (line    6)
 * operating system information, process list: Process list.  (line    6)
@@ -3620,7 +4230,7 @@ Concept Index
 * packet acknowledgment, for GDB remote: Packet Acknowledgment.
                                                              (line    6)
 * packet size, remote protocol:          General Query Packets.
-                                                             (line  700)
+                                                             (line  823)
 * packets, notification:                 Notification Packets.
                                                              (line    6)
 * packets, reporting on stdout:          Debugging Output.   (line  155)
@@ -3632,23 +4242,23 @@ Concept Index
                                                              (line    6)
 * parameters in python:                  Parameters In Python.
                                                              (line    6)
-* partial symbol dump:                   Symbols.            (line  372)
-* partial symbol tables, listing GDB's internal: Symbols.    (line  398)
+* partial symbol dump:                   Symbols.            (line  515)
+* partial symbol tables, listing GDB's internal: Symbols.    (line  541)
 * Pascal:                                Summary.            (line   35)
 * Pascal objects, static members display: Print Settings.    (line  489)
 * Pascal support in GDB, limitations:    Pascal.             (line    6)
 * pass signals to inferior, remote request: General Query Packets.
-                                                             (line  317)
+                                                             (line  440)
 * patching binaries:                     Patching.           (line    6)
 * patching object files:                 Files.              (line   26)
 * pause current task (GNU Hurd):         Hurd Native.        (line   48)
 * pause current thread (GNU Hurd):       Hurd Native.        (line   90)
 * pauses in output:                      Screen Size.        (line    6)
-* pending breakpoints:                   Set Breaks.         (line  237)
+* pending breakpoints:                   Set Breaks.         (line  238)
 * physical address from linear address:  DJGPP Native.       (line   80)
 * physname:                              Debugging Output.   (line   41)
 * pipe, target remote to:                Connecting.         (line  176)
-* pipes:                                 Starting.           (line   61)
+* pipes:                                 Starting.           (line   64)
 * pointer values, in file-i/o protocol:  Pointer Values.     (line    6)
 * pointer, finding referent:             Print Settings.     (line   80)
 * port rights, GNU Hurd:                 Hurd Native.        (line   84)
@@ -3656,7 +4266,7 @@ Concept Index
 * PowerPC architecture:                  PowerPC.            (line    6)
 * prefix for data files:                 Data Files.         (line    6)
 * prefix for executable and shared library file names: Files.
-                                                             (line  372)
+                                                             (line  378)
 * premature return from system calls:    Interrupted System Calls.
                                                              (line    6)
 * preprocessor macro expansion, showing the results of: Macros.
@@ -3680,7 +4290,7 @@ Concept Index
 * print messages on inferior start and exit: Inferiors and Programs.
                                                              (line  123)
 * print messages on thread start and exit: Threads.          (line  221)
-* print messages when symbols are loaded: Symbols.           (line  353)
+* print messages when symbols are loaded: Symbols.           (line  496)
 * print settings:                        Print Settings.     (line    6)
 * print structures in indented form:     Print Settings.     (line  329)
 * print/don't print memory addresses:    Print Settings.     (line   13)
@@ -3701,13 +4311,13 @@ Concept Index
                                                              (line   88)
 * process record and replay:             Process Record and Replay.
                                                              (line    6)
-* process status register:               Registers.          (line   26)
+* process status register:               Registers.          (line   31)
 * processes, multiple:                   Forks.              (line    6)
 * procfs API calls:                      SVR4 Process Information.
                                                              (line   67)
 * profiling GDB:                         Maintenance Commands.
-                                                             (line  381)
-* program counter register:              Registers.          (line   26)
+                                                             (line  396)
+* program counter register:              Registers.          (line   31)
 * program entry point:                   Backtrace.          (line  105)
 * programming in guile:                  Guile API.          (line    6)
 * programming in python:                 Python API.         (line    6)
@@ -3751,43 +4361,53 @@ Concept Index
 * QAllow packet:                         General Query Packets.
                                                              (line   44)
 * qAttached packet:                      General Query Packets.
-                                                             (line 1292)
+                                                             (line 1415)
 * qC packet:                             General Query Packets.
                                                              (line   55)
 * QCatchSyscalls packet:                 General Query Packets.
-                                                             (line  278)
+                                                             (line  401)
 * qCRC packet:                           General Query Packets.
                                                              (line   65)
 * QDisableRandomization packet:          General Query Packets.
                                                              (line   84)
+* QEnvironmentHexEncoded packet:         General Query Packets.
+                                                             (line  144)
+* QEnvironmentReset packet:              General Query Packets.
+                                                             (line  197)
+* QEnvironmentUnset packet:              General Query Packets.
+                                                             (line  173)
 * qfThreadInfo packet:                   General Query Packets.
-                                                             (line  115)
+                                                             (line  238)
 * qGetTIBAddr packet:                    General Query Packets.
-                                                             (line  180)
+                                                             (line  303)
 * qGetTLSAddr packet:                    General Query Packets.
-                                                             (line  148)
+                                                             (line  271)
 * QNonStop packet:                       General Query Packets.
-                                                             (line  256)
+                                                             (line  379)
 * qOffsets packet:                       General Query Packets.
-                                                             (line  219)
+                                                             (line  342)
 * qP packet:                             General Query Packets.
-                                                             (line  246)
+                                                             (line  369)
 * QPassSignals packet:                   General Query Packets.
-                                                             (line  317)
+                                                             (line  440)
 * QProgramSignals packet:                General Query Packets.
-                                                             (line  346)
+                                                             (line  469)
 * qRcmd packet:                          General Query Packets.
-                                                             (line  413)
+                                                             (line  536)
 * qSearch memory packet:                 General Query Packets.
-                                                             (line  435)
+                                                             (line  558)
+* QSetWorkingDir packet:                 General Query Packets.
+                                                             (line  219)
 * QStartNoAckMode packet:                General Query Packets.
-                                                             (line  452)
+                                                             (line  575)
+* QStartupWithShell packet:              General Query Packets.
+                                                             (line  114)
 * qsThreadInfo packet:                   General Query Packets.
-                                                             (line  115)
+                                                             (line  238)
 * qSupported packet:                     General Query Packets.
-                                                             (line  466)
+                                                             (line  589)
 * qSymbol packet:                        General Query Packets.
-                                                             (line  922)
+                                                             (line 1045)
 * qTBuffer packet:                       Tracepoint Packets. (line  393)
 * QTBuffer size packet:                  Tracepoint Packets. (line  406)
 * QTDisable packet:                      Tracepoint Packets. (line  209)
@@ -3801,9 +4421,9 @@ Concept Index
 * qTfSTM packet:                         Tracepoint Packets. (line  352)
 * qTfV packet:                           Tracepoint Packets. (line  343)
 * QThreadEvents packet:                  General Query Packets.
-                                                             (line  386)
+                                                             (line  509)
 * qThreadExtraInfo packet:               General Query Packets.
-                                                             (line  965)
+                                                             (line 1088)
 * QTinit packet:                         Tracepoint Packets. (line  214)
 * qTMinFTPILen packet:                   Tracepoint Packets. (line  171)
 * QTNotes packet:                        Tracepoint Packets. (line  411)
@@ -3820,12 +4440,12 @@ Concept Index
 * qTV packet:                            Tracepoint Packets. (line  318)
 * qualified thread ID:                   Threads.            (line   52)
 * query attached, remote request:        General Query Packets.
-                                                             (line 1292)
+                                                             (line 1415)
 * quotes in commands:                    Completion.         (line   82)
 * quoting Ada internal identifiers:      Additions to Ada.   (line   76)
 * quoting names:                         Symbols.            (line   14)
 * qXfer packet:                          General Query Packets.
-                                                             (line 1002)
+                                                             (line 1125)
 * r packet:                              Packets.            (line  300)
 * R packet:                              Packets.            (line  305)
 * range checking:                        Type Checking.      (line   45)
@@ -3836,10 +4456,10 @@ Concept Index
 * Ravenscar Profile:                     Ravenscar Profile.  (line    6)
 * raw printing:                          Output Formats.     (line   76)
 * read special object, remote request:   General Query Packets.
-                                                             (line 1002)
+                                                             (line 1125)
 * read, file-i/o system call:            read.               (line    6)
-* read-only sections:                    Files.              (line  251)
-* reading symbols from relocatable object files: Files.      (line  132)
+* read-only sections:                    Files.              (line  257)
+* reading symbols from relocatable object files: Files.      (line  138)
 * reading symbols immediately:           Files.              (line   89)
 * readline:                              Editing.            (line    6)
 * receive rights, GNU Hurd:              Hurd Native.        (line   84)
@@ -3865,7 +4485,7 @@ Concept Index
 * registers:                             Registers.          (line    6)
 * regular expression:                    Set Breaks.         (line   90)
 * reloading the overlay table:           Overlay Commands.   (line   52)
-* relocatable object files, reading symbols from: Files.     (line  132)
+* relocatable object files, reading symbols from: Files.     (line  138)
 * remote async notification debugging info: Debugging Output.
                                                              (line  132)
 * remote connection commands:            Connecting.         (line  120)
@@ -3915,8 +4535,10 @@ Concept Index
 * reprint the last value:                Data.               (line   23)
 * reprint the last value <1>:            Compiling and Injecting Code.
                                                              (line   73)
+* reset environment, remote request:     General Query Packets.
+                                                             (line  197)
 * resources used by commands:            Maintenance Commands.
-                                                             (line  441)
+                                                             (line  456)
 * response time, MIPS debugging:         MIPS.               (line   10)
 * restart:                               Checkpoint/Restart. (line    6)
 * restore data from a file:              Dump/Restore Files. (line    6)
@@ -3930,7 +4552,8 @@ Concept Index
 * returning from a function:             Returning.          (line    6)
 * reverse execution:                     Reverse Execution.  (line    6)
 * rewind program state:                  Checkpoint/Restart. (line    6)
-* run to main procedure:                 Starting.           (line   78)
+* run to first instruction:              Starting.           (line  114)
+* run to main procedure:                 Starting.           (line   81)
 * run until specified location:          Continuing and Stepping.
                                                              (line  117)
 * running:                               Starting.           (line    6)
@@ -3952,10 +4575,10 @@ Concept Index
 * search path for libthread_db:          Threads.            (line  242)
 * searching memory:                      Searching Memory.   (line    6)
 * searching memory, in remote debugging: General Query Packets.
-                                                             (line  435)
+                                                             (line  558)
 * searching source files:                Search.             (line    6)
 * section offsets, remote request:       General Query Packets.
-                                                             (line  219)
+                                                             (line  342)
 * segment descriptor tables:             DJGPP Native.       (line   24)
 * select Ctrl-C, BREAK or BREAK-g:       Remote Configuration.
                                                              (line  101)
@@ -3966,7 +4589,9 @@ Concept Index
 * selecting python pretty-printers:      Selecting Pretty-Printers.
                                                              (line    6)
 * self tests:                            Maintenance Commands.
-                                                             (line  343)
+                                                             (line  352)
+* self tests <1>:                        Maintenance Commands.
+                                                             (line  358)
 * semaphores on static probe points:     Static Probe Points.
                                                              (line   20)
 * send command to remote monitor:        Connecting.         (line  221)
@@ -3988,6 +4613,8 @@ Concept Index
 * set ABI for MIPS:                      MIPS.               (line   32)
 * set breakpoints in many functions:     Set Breaks.         (line   90)
 * set breakpoints on all functions:      Set Breaks.         (line  110)
+* set environment variable, remote request: General Query Packets.
+                                                             (line  144)
 * set fast tracepoint:                   Create and Delete Tracepoints.
                                                              (line   50)
 * set inferior controlling terminal:     Input/Output.       (line   44)
@@ -3997,21 +4624,24 @@ Concept Index
                                                              (line   18)
 * set tracepoint:                        Create and Delete Tracepoints.
                                                              (line    6)
+* set working directory, remote request: General Query Packets.
+                                                             (line  219)
 * setting variables:                     Assignment.         (line    6)
 * setting watchpoints:                   Set Watchpoints.    (line    6)
 * SH:                                    Remote Stub.        (line   62)
 * sh-stub.c:                             Remote Stub.        (line   62)
-* shared libraries:                      Files.              (line  273)
+* shared libraries:                      Files.              (line  279)
 * shared library events, remote reply:   Stop Reply Packets. (line   65)
 * shell escape:                          Shell Commands.     (line   10)
 * show all convenience functions:        Convenience Funs.   (line  148)
 * show all user variables and functions: Convenience Vars.   (line   37)
+* show inferior's working directory:     Working Directory.  (line   27)
 * show last commands:                    Command History.    (line   95)
 * show tdesc filename:                   Retrieving Descriptions.
                                                              (line   25)
 * signals:                               Signals.            (line    6)
 * signals the inferior may see, remote request: General Query Packets.
-                                                             (line  346)
+                                                             (line  469)
 * SIGQUIT signal, dump core of GDB:      Maintenance Commands.
                                                              (line  169)
 * size of remote memory accesses:        Packets.            (line  247)
@@ -4030,24 +4660,27 @@ Concept Index
 * source path:                           Source Path.        (line    6)
 * Sparc:                                 Remote Stub.        (line   65)
 * sparc-stub.c:                          Remote Stub.        (line   65)
+* Sparc64 support:                       Sparc64.            (line    6)
 * sparcl-stub.c:                         Remote Stub.        (line   68)
 * SparcLite:                             Remote Stub.        (line   68)
 * Special Fortran commands:              Special Fortran Commands.
                                                              (line    6)
 * specifying location:                   Specify Location.   (line    6)
 * SPU:                                   SPU.                (line    6)
-* SSE registers (x86):                   Registers.          (line   71)
+* SSE registers (x86):                   Registers.          (line   76)
 * stack frame:                           Frames.             (line    6)
 * stack on Alpha:                        MIPS.               (line    6)
 * stack on MIPS:                         MIPS.               (line    6)
-* stack pointer register:                Registers.          (line   26)
+* stack pointer register:                Registers.          (line   31)
 * stacking targets:                      Active Targets.     (line    6)
-* standard registers:                    Registers.          (line   26)
+* standard registers:                    Registers.          (line   31)
 * start a new independent interpreter:   Interpreters.       (line   49)
 * start a new trace experiment:          Starting and Stopping Trace Experiments.
                                                              (line    6)
 * starting:                              Starting.           (line    6)
 * startup code, and backtrace:           Backtrace.          (line  105)
+* startup with shell, remote request:    General Query Packets.
+                                                             (line  114)
 * stat, file-i/o system call:            stat/fstat.         (line    6)
 * static members of C++ objects:         Print Settings.     (line  478)
 * static members of Pascal objects:      Print Settings.     (line  489)
@@ -4057,7 +4690,7 @@ Concept Index
                                                              (line    6)
 * static tracepoints:                    Set Tracepoints.    (line   28)
 * static tracepoints, in remote protocol: General Query Packets.
-                                                             (line  850)
+                                                             (line  973)
 * static tracepoints, setting:           Create and Delete Tracepoints.
                                                              (line   75)
 * status of trace data collection:       Starting and Stopping Trace Experiments.
@@ -4077,7 +4710,7 @@ Concept Index
 * stream records in GDB/MI:              GDB/MI Stream Records.
                                                              (line    6)
 * string tracing, in remote protocol:    General Query Packets.
-                                                             (line  867)
+                                                             (line  990)
 * struct gdb_reader_funcs:               Writing JIT Debug Info Readers.
                                                              (line   22)
 * struct gdb_symbol_callbacks:           Writing JIT Debug Info Readers.
@@ -4088,46 +4721,47 @@ Concept Index
 * struct stat, in file-i/o protocol:     struct stat.        (line    6)
 * struct timeval, in file-i/o protocol:  struct timeval.     (line    6)
 * struct/union returned in registers:    i386.               (line    7)
-* structure field name completion:       Completion.         (line  120)
+* structure field name completion:       Completion.         (line  134)
 * stub example, remote debugging:        Remote Stub.        (line    6)
 * stupid questions:                      Messages/Warnings.  (line   49)
 * Super-H:                               Super-H.            (line    6)
 * supported GDB/MI features, list:       GDB/MI Support Commands.
                                                              (line   57)
 * supported packets, remote query:       General Query Packets.
-                                                             (line  466)
+                                                             (line  589)
 * switching threads:                     Threads.            (line    6)
 * switching threads automatically:       All-Stop Mode.      (line   28)
-* symbol cache size:                     Symbols.            (line  451)
-* symbol cache, flushing:                Symbols.            (line  467)
-* symbol cache, printing its contents:   Symbols.            (line  459)
-* symbol cache, printing usage statistics: Symbols.          (line  463)
+* symbol cache size:                     Symbols.            (line  594)
+* symbol cache, flushing:                Symbols.            (line  610)
+* symbol cache, printing its contents:   Symbols.            (line  602)
+* symbol cache, printing usage statistics: Symbols.          (line  606)
 * symbol decoding style, C++:            Print Settings.     (line  427)
-* symbol dump:                           Symbols.            (line  372)
-* symbol file functions:                 Debugging Output.   (line  180)
+* symbol dump:                           Symbols.            (line  515)
+* symbol file functions:                 Debugging Output.   (line  187)
 * symbol files, remote debugging:        Connecting.         (line   90)
-* symbol from address:                   Symbols.            (line   84)
-* symbol lookup:                         Debugging Output.   (line  173)
+* symbol from address:                   Symbols.            (line   95)
+* symbol lookup:                         Debugging Output.   (line  180)
 * symbol lookup, remote request:         General Query Packets.
-                                                             (line  922)
+                                                             (line 1045)
 * symbol names:                          Symbols.            (line   14)
 * symbol table:                          Files.              (line    6)
-* symbol table creation:                 Debugging Output.   (line  185)
+* symbol table creation:                 Debugging Output.   (line  192)
 * symbol tables in guile:                Symbol Tables In Guile.
                                                              (line    6)
 * symbol tables in python:               Symbol Tables In Python.
                                                              (line    6)
-* symbol tables, listing GDB's internal: Symbols.            (line  398)
+* symbol tables, listing GDB's internal: Symbols.            (line  541)
 * symbol, source file and line:          Print Settings.     (line   50)
 * symbols in guile:                      Symbols In Guile.   (line    6)
 * symbols in python:                     Symbols In Python.  (line    6)
-* symbols, reading from relocatable object files: Files.     (line  132)
+* symbols, never read:                   Files.              (line   96)
+* symbols, reading from relocatable object files: Files.     (line  138)
 * symbols, reading immediately:          Files.              (line   89)
 * Synopsys ARC:                          ARC.                (line    6)
-* syscall DSO:                           Files.              (line  179)
+* syscall DSO:                           Files.              (line  185)
 * system calls and thread breakpoints:   Interrupted System Calls.
                                                              (line    6)
-* system root, alternate:                Files.              (line  372)
+* system root, alternate:                Files.              (line  378)
 * system, file-i/o system call:          system.             (line    6)
 * system-wide configuration scripts:     System-wide Configuration Scripts.
                                                              (line    6)
@@ -4140,7 +4774,7 @@ Concept Index
 * target architecture:                   Targets.            (line   17)
 * target byte order:                     Byte Order.         (line    6)
 * target character set:                  Character Sets.     (line    6)
-* target debugging info:                 Debugging Output.   (line  192)
+* target debugging info:                 Debugging Output.   (line  199)
 * target descriptions:                   Target Descriptions.
                                                              (line    6)
 * target descriptions, AArch64 features: AArch64 Features.   (line    6)
@@ -4156,6 +4790,8 @@ Concept Index
 * target descriptions, MIPS features:    MIPS Features.      (line    6)
 * target descriptions, NDS32 features:   NDS32 Features.     (line    6)
 * target descriptions, Nios II features: Nios II Features.   (line    6)
+* target descriptions, OpenRISC 1000 features: OpenRISC 1000 Features.
+                                                             (line    6)
 * target descriptions, PowerPC features: PowerPC Features.   (line    6)
 * target descriptions, predefined types: Predefined Target Types.
                                                              (line    6)
@@ -4175,7 +4811,7 @@ Concept Index
 * target output in GDB/MI:               GDB/MI Output Syntax.
                                                              (line  110)
 * target stack description:              Maintenance Commands.
-                                                             (line  324)
+                                                             (line  333)
 * target-assisted range stepping:        Continuing and Stepping.
                                                              (line  210)
 * task attributes (GNU Hurd):            Hurd Native.        (line   48)
@@ -4188,14 +4824,14 @@ Concept Index
 * terminal:                              Input/Output.       (line    6)
 * Text User Interface:                   TUI.                (line    6)
 * thread attributes info, remote request: General Query Packets.
-                                                             (line  965)
+                                                             (line 1088)
 * thread breakpoints:                    Thread-Specific Breakpoints.
                                                              (line   10)
 * thread breakpoints and system calls:   Interrupted System Calls.
                                                              (line    6)
 * thread create event, remote reply:     Stop Reply Packets. (line  152)
 * thread create/exit events, remote request: General Query Packets.
-                                                             (line  386)
+                                                             (line  509)
 * thread default settings, GNU Hurd:     Hurd Native.        (line  130)
 * thread exit event, remote reply:       Stop Reply Packets. (line  181)
 * thread ID lists:                       Threads.            (line   65)
@@ -4203,7 +4839,7 @@ Concept Index
 * thread identifier (system):            Threads.            (line   35)
 * thread info (Solaris):                 Threads.            (line  167)
 * thread information, remote request:    General Query Packets.
-                                                             (line  246)
+                                                             (line  369)
 * thread list format:                    Thread List Format. (line    6)
 * thread number, per inferior:           Threads.            (line   47)
 * thread properties, GNU Hurd:           Hurd Native.        (line   90)
@@ -4216,14 +4852,14 @@ Concept Index
 * threads, continuing:                   Thread Stops.       (line    6)
 * threads, stopped:                      Thread Stops.       (line    6)
 * time of command execution:             Maintenance Commands.
-                                                             (line  482)
+                                                             (line  497)
 * timeout for commands:                  Maintenance Commands.
-                                                             (line  503)
+                                                             (line  518)
 * timeout for serial communications:     Remote Configuration.
                                                              (line   72)
 * timeout, for remote target connection: Remote Configuration.
                                                              (line  140)
-* timestampping debugging info:          Debugging Output.   (line  199)
+* timestampping debugging info:          Debugging Output.   (line  206)
 * trace experiment, status of:           Starting and Stopping Trace Experiments.
                                                              (line   27)
 * trace file format:                     Trace File Format.  (line    6)
@@ -4252,7 +4888,7 @@ Concept Index
 * tracepoint variables:                  Tracepoint Variables.
                                                              (line    6)
 * tracepoints:                           Tracepoints.        (line    6)
-* tracepoints support in gdbserver:      Server.             (line  260)
+* tracepoints support in gdbserver:      Server.             (line  267)
 * trailing underscore, in Fortran symbols: Fortran.          (line    9)
 * translating between character sets:    Character Sets.     (line    6)
 * TUI:                                   TUI.                (line    6)
@@ -4263,7 +4899,7 @@ Concept Index
                                                              (line    6)
 * type casting memory:                   Expressions.        (line   41)
 * type chain of a data type:             Maintenance Commands.
-                                                             (line  336)
+                                                             (line  345)
 * type checking:                         Checks.             (line   24)
 * type conversions in C++:               C Plus Plus Expressions.
                                                              (line   26)
@@ -4272,14 +4908,17 @@ Concept Index
 * types in guile:                        Types In Guile.     (line    6)
 * types in Python:                       Types In Python.    (line    6)
 * UDP port, target remote:               Connecting.         (line  164)
-* union field name completion:           Completion.         (line  120)
+* union field name completion:           Completion.         (line  134)
 * unions in structures, printing:        Print Settings.     (line  367)
 * unknown address, locating:             Output Formats.     (line   35)
+* unknown type:                          Symbols.            (line  362)
 * unlink, file-i/o system call:          unlink.             (line    6)
 * unlinked object files:                 Files.              (line   26)
-* unload symbols from shared libraries:  Files.              (line  334)
+* unload symbols from shared libraries:  Files.              (line  340)
 * unmap an overlay:                      Overlay Commands.   (line   39)
 * unmapped overlays:                     How Overlays Work.  (line    6)
+* unset environment variable, remote request: General Query Packets.
+                                                             (line  173)
 * unset tdesc filename:                  Retrieving Descriptions.
                                                              (line   21)
 * unsupported languages:                 Unsupported Languages.
@@ -4291,7 +4930,7 @@ Concept Index
                                                              (line    6)
 * use only software watchpoints:         Set Watchpoints.    (line  108)
 * user registers:                        Maintenance Commands.
-                                                             (line  295)
+                                                             (line  304)
 * user-defined command:                  Define.             (line    6)
 * user-defined macros:                   Macros.             (line   59)
 * user-defined variables:                Convenience Vars.   (line    6)
@@ -4301,7 +4940,7 @@ Concept Index
 * values from inferior, with Python:     Values From Inferior.
                                                              (line    6)
 * variable name conflict:                Variables.          (line   36)
-* variable object debugging info:        Debugging Output.   (line  206)
+* variable object debugging info:        Debugging Output.   (line  213)
 * variable objects in GDB/MI:            GDB/MI Variable Objects.
                                                              (line    9)
 * variable values, wrong:                Variables.          (line  106)
@@ -4325,16 +4964,16 @@ Concept Index
 * vforkdone events, remote reply:        Stop Reply Packets. (line  128)
 * virtual functions (C++) display:       Print Settings.     (line  500)
 * vKill packet:                          Packets.            (line  505)
-* volatile registers:                    Registers.          (line  101)
-* vRun packet:                           Packets.            (line  517)
-* vStopped packet:                       Packets.            (line  532)
+* vMustReplyEmpty packet:                Packets.            (line  517)
+* volatile registers:                    Registers.          (line  106)
+* vRun packet:                           Packets.            (line  529)
+* vStopped packet:                       Packets.            (line  544)
 * VTBL display:                          Print Settings.     (line  500)
 * watchdog timer:                        Maintenance Commands.
-                                                             (line  503)
+                                                             (line  518)
 * watchpoints:                           Breakpoints.        (line   17)
 * watchpoints and threads:               Set Watchpoints.    (line  179)
-* weak alias functions:                  Calling.            (line   58)
-* where to look for shared libraries:    Files.              (line  367)
+* where to look for shared libraries:    Files.              (line  373)
 * wild pointer, interpreting:            Print Settings.     (line   80)
 * Wind River Linux system-wide configuration script: System-wide Configuration Scripts.
                                                              (line   22)
@@ -4343,7 +4982,7 @@ Concept Index
 * working directory (of your program):   Working Directory.  (line    6)
 * working language:                      Languages.          (line   13)
 * write data into object, remote request: General Query Packets.
-                                                             (line 1238)
+                                                             (line 1361)
 * write, file-i/o system call:           write.              (line    6)
 * writing a frame filter:                Writing a Frame Filter.
                                                              (line    6)
@@ -4362,28 +5001,28 @@ Concept Index
 * writing xmethods in Python:            Writing an Xmethod. (line    6)
 * wrong values:                          Variables.          (line  106)
 * x command, default address:            Machine Code.       (line   30)
-* X packet:                              Packets.            (line  535)
+* X packet:                              Packets.            (line  547)
 * Xilinx MicroBlaze:                     MicroBlaze.         (line    6)
 * XInclude:                              Target Description Format.
                                                              (line   53)
 * XMD, Xilinx Microprocessor Debugger:   MicroBlaze.         (line    6)
 * xmethod API:                           Xmethod API.        (line    6)
 * xmethods in Python:                    Xmethods In Python. (line    6)
-* XML parser debugging:                  Debugging Output.   (line  212)
+* XML parser debugging:                  Debugging Output.   (line  219)
 * yanking text:                          Readline Killing Commands.
                                                              (line    6)
-* z packet:                              Packets.            (line  548)
-* Z packets:                             Packets.            (line  548)
-* z0 packet:                             Packets.            (line  563)
-* Z0 packet:                             Packets.            (line  563)
-* z1 packet:                             Packets.            (line  618)
-* Z1 packet:                             Packets.            (line  618)
-* z2 packet:                             Packets.            (line  639)
-* Z2 packet:                             Packets.            (line  639)
-* z3 packet:                             Packets.            (line  652)
-* Z3 packet:                             Packets.            (line  652)
-* z4 packet:                             Packets.            (line  665)
-* Z4 packet:                             Packets.            (line  665)
+* z packet:                              Packets.            (line  560)
+* Z packets:                             Packets.            (line  560)
+* z0 packet:                             Packets.            (line  575)
+* Z0 packet:                             Packets.            (line  575)
+* z1 packet:                             Packets.            (line  630)
+* Z1 packet:                             Packets.            (line  630)
+* z2 packet:                             Packets.            (line  651)
+* Z2 packet:                             Packets.            (line  651)
+* z3 packet:                             Packets.            (line  664)
+* Z3 packet:                             Packets.            (line  664)
+* z4 packet:                             Packets.            (line  677)
+* Z4 packet:                             Packets.            (line  677)
 
 
 File: gdb.info,  Node: Command and Variable Index,  Prev: Concept Index,  Up: Top
@@ -4395,6 +5034,8 @@ Command, Variable, and Function Index
 * Menu:
 
 * !:                                     Shell Commands.      (line  10)
+* "maint info selftests":                Maintenance Commands.
+                                                              (line 358)
 * # (a comment):                         Command Syntax.      (line  37)
 * $bpnum, convenience variable:          Set Breaks.          (line   6)
 * $cdir, convenience variable:           Source Path.         (line 106)
@@ -4602,9 +5243,9 @@ Command, Variable, and Function Index
 * -thread-info:                          GDB/MI Thread Commands.
                                                               (line   9)
 * -thread-list-ids:                      GDB/MI Thread Commands.
-                                                              (line  89)
+                                                              (line  58)
 * -thread-select:                        GDB/MI Thread Commands.
-                                                              (line 117)
+                                                              (line  86)
 * -trace-define-variable:                GDB/MI Tracepoint Commands.
                                                               (line  80)
 * -trace-find:                           GDB/MI Tracepoint Commands.
@@ -4696,8 +5337,10 @@ Command, Variable, and Function Index
                                                               (line  64)
 * add-inferior:                          Inferiors and Programs.
                                                               (line  66)
-* add-symbol-file:                       Files.               (line 112)
-* add-symbol-file-from-memory:           Files.               (line 179)
+* add-symbol-file:                       Files.               (line 118)
+* add-symbol-file-from-memory:           Files.               (line 185)
+* adi assign:                            Sparc64.             (line  45)
+* adi examine:                           Sparc64.             (line  27)
 * advance LOCATION:                      Continuing and Stepping.
                                                               (line 180)
 * alias:                                 Aliases.             (line  21)
@@ -4812,23 +5455,23 @@ Command, Variable, and Function Index
 * Block.superblock:                      Blocks In Python.    (line  94)
 * block?:                                Blocks In Guile.     (line  55)
 * BP_ACCESS_WATCHPOINT:                  Breakpoints In Python.
-                                                              (line  45)
+                                                              (line  74)
 * BP_ACCESS_WATCHPOINT <1>:              Breakpoints In Guile.
                                                               (line  71)
 * BP_BREAKPOINT:                         Breakpoints In Python.
-                                                              (line  33)
+                                                              (line  62)
 * BP_BREAKPOINT <1>:                     Breakpoints In Guile.
                                                               (line  57)
 * BP_HARDWARE_WATCHPOINT:                Breakpoints In Python.
-                                                              (line  39)
+                                                              (line  68)
 * BP_HARDWARE_WATCHPOINT <1>:            Breakpoints In Guile.
                                                               (line  63)
 * BP_READ_WATCHPOINT:                    Breakpoints In Python.
-                                                              (line  42)
+                                                              (line  71)
 * BP_READ_WATCHPOINT <1>:                Breakpoints In Guile.
                                                               (line  67)
 * BP_WATCHPOINT:                         Breakpoints In Python.
-                                                              (line  36)
+                                                              (line  65)
 * BP_WATCHPOINT <1>:                     Breakpoints In Guile.
                                                               (line  60)
 * break:                                 Set Breaks.          (line   6)
@@ -4873,43 +5516,45 @@ Command, Variable, and Function Index
 * breakpoint-visible?:                   Breakpoints In Guile.
                                                               (line 130)
 * Breakpoint.commands:                   Breakpoints In Python.
-                                                              (line 182)
+                                                              (line 211)
 * Breakpoint.condition:                  Breakpoints In Python.
-                                                              (line 177)
+                                                              (line 206)
 * Breakpoint.delete:                     Breakpoints In Python.
-                                                              (line  99)
+                                                              (line 128)
 * Breakpoint.enabled:                    Breakpoints In Python.
-                                                              (line 104)
+                                                              (line 133)
 * Breakpoint.expression:                 Breakpoints In Python.
-                                                              (line 171)
+                                                              (line 200)
 * Breakpoint.hit_count:                  Breakpoints In Python.
-                                                              (line 160)
+                                                              (line 189)
 * Breakpoint.ignore_count:               Breakpoints In Python.
-                                                              (line 132)
+                                                              (line 161)
 * Breakpoint.is_valid:                   Breakpoints In Python.
-                                                              (line  91)
+                                                              (line 120)
 * Breakpoint.location:                   Breakpoints In Python.
-                                                              (line 165)
+                                                              (line 194)
 * Breakpoint.number:                     Breakpoints In Python.
-                                                              (line 136)
+                                                              (line 165)
 * Breakpoint.pending:                    Breakpoints In Python.
-                                                              (line 117)
+                                                              (line 146)
 * Breakpoint.silent:                     Breakpoints In Python.
-                                                              (line 109)
+                                                              (line 138)
 * Breakpoint.stop:                       Breakpoints In Python.
-                                                              (line  60)
+                                                              (line  89)
 * Breakpoint.task:                       Breakpoints In Python.
-                                                              (line 126)
+                                                              (line 155)
 * Breakpoint.temporary:                  Breakpoints In Python.
-                                                              (line 151)
+                                                              (line 180)
 * Breakpoint.thread:                     Breakpoints In Python.
-                                                              (line 121)
+                                                              (line 150)
 * Breakpoint.type:                       Breakpoints In Python.
-                                                              (line 141)
+                                                              (line 170)
 * Breakpoint.visible:                    Breakpoints In Python.
-                                                              (line 146)
+                                                              (line 175)
 * Breakpoint.__init__:                   Breakpoints In Python.
-                                                              (line   8)
+                                                              (line  16)
+* Breakpoint.__init__ <1>:               Breakpoints In Python.
+                                                              (line  49)
 * breakpoint?:                           Breakpoints In Guile.
                                                               (line 108)
 * BreakpointEvent.breakpoint:            Events In Python.    (line 105)
@@ -4933,20 +5578,21 @@ Command, Variable, and Function Index
 * call-last-kbd-macro (C-x e):           Keyboard Macros.     (line  13)
 * capitalize-word (M-c):                 Commands For Text.   (line  49)
 * catch:                                 Set Catchpoints.     (line  10)
-* catch assert:                          Set Catchpoints.     (line  87)
+* catch assert:                          Set Catchpoints.     (line 104)
 * catch catch:                           Set Catchpoints.     (line  16)
 * catch exception:                       Set Catchpoints.     (line  66)
-* catch exception unhandled:             Set Catchpoints.     (line  83)
-* catch exec:                            Set Catchpoints.     (line  90)
-* catch fork:                            Set Catchpoints.     (line 235)
-* catch load:                            Set Catchpoints.     (line 242)
+* catch exception unhandled:             Set Catchpoints.     (line 100)
+* catch exec:                            Set Catchpoints.     (line 107)
+* catch fork:                            Set Catchpoints.     (line 252)
+* catch handlers:                        Set Catchpoints.     (line  83)
+* catch load:                            Set Catchpoints.     (line 259)
 * catch rethrow:                         Set Catchpoints.     (line  16)
-* catch signal:                          Set Catchpoints.     (line 247)
-* catch syscall:                         Set Catchpoints.     (line  94)
+* catch signal:                          Set Catchpoints.     (line 264)
+* catch syscall:                         Set Catchpoints.     (line 111)
 * catch throw:                           Set Catchpoints.     (line  16)
-* catch unload:                          Set Catchpoints.     (line 242)
-* catch vfork:                           Set Catchpoints.     (line 238)
-* cd:                                    Working Directory.   (line  16)
+* catch unload:                          Set Catchpoints.     (line 259)
+* catch vfork:                           Set Catchpoints.     (line 255)
+* cd:                                    Working Directory.   (line  32)
 * cdir:                                  Source Path.         (line 106)
 * character-search (C-]):                Miscellaneous Commands.
                                                               (line  41)
@@ -5038,7 +5684,7 @@ Command, Variable, and Function Index
                                                               (line  54)
 * copy-region-as-kill ():                Commands For Killing.
                                                               (line  45)
-* core-file:                             Files.               (line  96)
+* core-file:                             Files.               (line 102)
 * ctf:                                   Trace Files.         (line  28)
 * Ctrl-o (operate-and-get-next):         Command Syntax.      (line  41)
 * current-arch:                          Architectures In Guile.
@@ -5070,7 +5716,7 @@ Command, Variable, and Function Index
                                                               (line  39)
 * delete-horizontal-space ():            Commands For Killing.
                                                               (line  37)
-* demangle:                              Symbols.             (line 103)
+* demangle:                              Symbols.             (line 114)
 * detach:                                Attach.              (line  36)
 * detach (remote):                       Connecting.          (line 205)
 * detach inferiors INFNO...:             Inferiors and Programs.
@@ -5090,7 +5736,7 @@ Command, Variable, and Function Index
 * disable probes:                        Static Probe Points. (line  73)
 * disable tracepoint:                    Enable and Disable Tracepoints.
                                                               (line   9)
-* disable type-printer:                  Symbols.             (line 256)
+* disable type-printer:                  Symbols.             (line 399)
 * disable-completion:                    Readline Init File Syntax.
                                                               (line  93)
 * disassemble:                           Machine Code.        (line  36)
@@ -5136,7 +5782,7 @@ Command, Variable, and Function Index
 * enable probes:                         Static Probe Points. (line  60)
 * enable tracepoint:                     Enable and Disable Tracepoints.
                                                               (line  19)
-* enable type-printer:                   Symbols.             (line 256)
+* enable type-printer:                   Symbols.             (line 399)
 * enable-keypad:                         Readline Init File Syntax.
                                                               (line 109)
 * enabled:                               Xmethod API.         (line  18)
@@ -5206,7 +5852,7 @@ Command, Variable, and Function Index
                                                               (line  14)
 * flash-erase:                           Target Commands.     (line 140)
 * flushregs:                             Maintenance Commands.
-                                                              (line 286)
+                                                              (line 295)
 * flush_i_cache:                         Bootstrapping.       (line  60)
 * fo (forward-search):                   Search.              (line   9)
 * focus:                                 TUI Commands.        (line  55)
@@ -5275,15 +5921,15 @@ Command, Variable, and Function Index
 * gdb.block_for_pc:                      Blocks In Python.    (line  61)
 * gdb.block_for_pc <1>:                  Blocks In Python.    (line  61)
 * gdb.BP_ACCESS_WATCHPOINT:              Breakpoints In Python.
-                                                              (line  45)
+                                                              (line  74)
 * gdb.BP_BREAKPOINT:                     Breakpoints In Python.
-                                                              (line  33)
+                                                              (line  62)
 * gdb.BP_HARDWARE_WATCHPOINT:            Breakpoints In Python.
-                                                              (line  39)
+                                                              (line  68)
 * gdb.BP_READ_WATCHPOINT:                Breakpoints In Python.
-                                                              (line  42)
+                                                              (line  71)
 * gdb.BP_WATCHPOINT:                     Breakpoints In Python.
-                                                              (line  36)
+                                                              (line  65)
 * gdb.Breakpoint:                        Breakpoints In Python.
                                                               (line   6)
 * gdb.breakpoints:                       Basic Python.        (line  55)
@@ -5314,24 +5960,24 @@ Command, Variable, and Function Index
                                                               (line  14)
 * gdb.current_recording:                 Recordings In Python.
                                                               (line  21)
-* gdb.decode_line:                       Basic Python.        (line 190)
-* gdb.decode_line <1>:                   Basic Python.        (line 190)
+* gdb.decode_line:                       Basic Python.        (line 206)
+* gdb.decode_line <1>:                   Basic Python.        (line 206)
 * gdb.default_visualizer:                Pretty Printing API. (line  85)
 * gdb.default_visualizer <1>:            Pretty Printing API. (line  85)
 * gdb.error:                             Exception Handling.  (line  22)
 * gdb.execute:                           Basic Python.        (line  36)
 * gdb.execute <1>:                       Basic Python.        (line  36)
-* gdb.find_pc_line:                      Basic Python.        (line  97)
-* gdb.find_pc_line <1>:                  Basic Python.        (line  97)
+* gdb.find_pc_line:                      Basic Python.        (line 113)
+* gdb.find_pc_line <1>:                  Basic Python.        (line 113)
 * gdb.FinishBreakpoint:                  Finish Breakpoints in Python.
                                                               (line   6)
-* gdb.flush:                             Basic Python.        (line 156)
-* gdb.flush <1>:                         Basic Python.        (line 156)
+* gdb.flush:                             Basic Python.        (line 172)
+* gdb.flush <1>:                         Basic Python.        (line 172)
 * gdb.frame_stop_reason_string:          Frames In Python.    (line  29)
 * gdb.Function:                          Functions In Python. (line   6)
 * gdb.GdbError:                          Exception Handling.  (line  42)
-* gdb.history:                           Basic Python.        (line  73)
-* gdb.history <1>:                       Basic Python.        (line  73)
+* gdb.history:                           Basic Python.        (line  89)
+* gdb.history <1>:                       Basic Python.        (line  89)
 * gdb.Inferior:                          Inferiors In Python. (line   6)
 * gdb.inferiors:                         Inferiors In Python. (line  14)
 * gdb.InferiorThread:                    Threads In Python.   (line   6)
@@ -5357,8 +6003,8 @@ Command, Variable, and Function Index
 * gdb.objfiles <1>:                      Objfiles In Python.  (line  21)
 * gdb.Parameter:                         Parameters In Python.
                                                               (line   6)
-* gdb.parameter:                         Basic Python.        (line  62)
-* gdb.parameter <1>:                     Basic Python.        (line  62)
+* gdb.parameter:                         Basic Python.        (line  78)
+* gdb.parameter <1>:                     Basic Python.        (line  78)
 * gdb.PARAM_AUTO_BOOLEAN:                Parameters In Python.
                                                               (line  93)
 * gdb.PARAM_BOOLEAN:                     Parameters In Python.
@@ -5379,40 +6025,41 @@ Command, Variable, and Function Index
                                                               (line  98)
 * gdb.PARAM_ZINTEGER:                    Parameters In Python.
                                                               (line 123)
-* gdb.parse_and_eval:                    Basic Python.        (line  86)
-* gdb.parse_and_eval <1>:                Basic Python.        (line  86)
-* gdb.post_event:                        Basic Python.        (line 104)
-* gdb.post_event <1>:                    Basic Python.        (line 104)
+* gdb.parse_and_eval:                    Basic Python.        (line 102)
+* gdb.parse_and_eval <1>:                Basic Python.        (line 102)
+* gdb.post_event:                        Basic Python.        (line 120)
+* gdb.post_event <1>:                    Basic Python.        (line 120)
 * gdb.Progspace:                         Progspaces In Python.
                                                               (line   6)
 * gdb.progspaces:                        Progspaces In Python.
                                                               (line  18)
 * gdb.progspaces <1>:                    Progspaces In Python.
                                                               (line  18)
-* gdb.prompt_hook:                       Basic Python.        (line 202)
+* gdb.prompt_hook:                       Basic Python.        (line 218)
 * gdb.PYTHONDIR:                         Basic Python.        (line  33)
 * gdb.PYTHONDIR <1>:                     Basic Python.        (line  33)
+* gdb.rbreak:                            Basic Python.        (line  62)
 * gdb.search_memory:                     Inferiors In Python. (line  61)
 * gdb.selected_frame:                    Frames In Python.    (line  22)
 * gdb.selected_frame <1>:                Frames In Python.    (line  22)
 * gdb.selected_inferior:                 Inferiors In Python. (line  17)
 * gdb.selected_thread:                   Threads In Python.   (line  13)
 * gdb.selected_thread <1>:               Threads In Python.   (line  13)
-* gdb.solib_name:                        Basic Python.        (line 186)
-* gdb.solib_name <1>:                    Basic Python.        (line 186)
+* gdb.solib_name:                        Basic Python.        (line 202)
+* gdb.solib_name <1>:                    Basic Python.        (line 202)
 * gdb.start_recording:                   Recordings In Python.
                                                               (line   9)
-* gdb.STDERR:                            Basic Python.        (line 146)
-* gdb.STDERR <1>:                        Basic Python.        (line 166)
-* gdb.STDLOG:                            Basic Python.        (line 149)
-* gdb.STDLOG <1>:                        Basic Python.        (line 169)
-* gdb.STDOUT:                            Basic Python.        (line 143)
-* gdb.STDOUT <1>:                        Basic Python.        (line 163)
+* gdb.STDERR:                            Basic Python.        (line 162)
+* gdb.STDERR <1>:                        Basic Python.        (line 182)
+* gdb.STDLOG:                            Basic Python.        (line 165)
+* gdb.STDLOG <1>:                        Basic Python.        (line 185)
+* gdb.STDOUT:                            Basic Python.        (line 159)
+* gdb.STDOUT <1>:                        Basic Python.        (line 179)
 * gdb.stop_recording:                    Recordings In Python.
                                                               (line  25)
 * gdb.string_to_argv:                    Commands In Python.  (line  61)
 * gdb.Symbol:                            Symbols In Python.   (line   6)
-* gdb.SYMBOL_FUNCTION_DOMAIN:            Symbols In Python.   (line 134)
+* gdb.SYMBOL_FUNCTIONS_DOMAIN:           Symbols In Python.   (line 134)
 * gdb.SYMBOL_LABEL_DOMAIN:               Symbols In Python.   (line 127)
 * gdb.SYMBOL_LOC_ARG:                    Symbols In Python.   (line 156)
 * gdb.SYMBOL_LOC_BLOCK:                  Symbols In Python.   (line 177)
@@ -5437,10 +6084,10 @@ Command, Variable, and Function Index
                                                               (line   6)
 * gdb.Symtab_and_line:                   Symbol Tables In Python.
                                                               (line   6)
-* gdb.target_charset:                    Basic Python.        (line 175)
-* gdb.target_charset <1>:                Basic Python.        (line 175)
-* gdb.target_wide_charset:               Basic Python.        (line 180)
-* gdb.target_wide_charset <1>:           Basic Python.        (line 180)
+* gdb.target_charset:                    Basic Python.        (line 191)
+* gdb.target_charset <1>:                Basic Python.        (line 191)
+* gdb.target_wide_charset:               Basic Python.        (line 196)
+* gdb.target_wide_charset <1>:           Basic Python.        (line 196)
 * gdb.Type:                              Types In Python.     (line   6)
 * gdb.TYPE_CODE_ARRAY:                   Types In Python.     (line 192)
 * gdb.TYPE_CODE_BITSTRING:               Types In Python.     (line 230)
@@ -5474,13 +6121,13 @@ Command, Variable, and Function Index
 * gdb.UnwindInfo.add_saved_register:     Unwinding Frames in Python.
                                                               (line  72)
 * gdb.WP_ACCESS:                         Breakpoints In Python.
-                                                              (line  57)
+                                                              (line  86)
 * gdb.WP_READ:                           Breakpoints In Python.
-                                                              (line  51)
+                                                              (line  80)
 * gdb.WP_WRITE:                          Breakpoints In Python.
-                                                              (line  54)
-* gdb.write:                             Basic Python.        (line 138)
-* gdb.write <1>:                         Basic Python.        (line 138)
+                                                              (line  83)
+* gdb.write:                             Basic Python.        (line 154)
+* gdb.write <1>:                         Basic Python.        (line 154)
 * gdb:error:                             Guile Exception Handling.
                                                               (line  69)
 * gdb:invalid-object:                    Guile Exception Handling.
@@ -5527,6 +6174,7 @@ Command, Variable, and Function Index
                                                               (line 135)
 * host-config:                           Guile Configuration. (line  20)
 * i (info):                              Help.                (line 100)
+* i (SingleKey TUI key):                 TUI Single Key Mode. (line  34)
 * if:                                    Command Files.       (line  74)
 * ignore:                                Conditions.          (line  90)
 * inferior INFNO:                        Inferiors and Programs.
@@ -5538,6 +6186,9 @@ Command, Variable, and Function Index
 * Inferior.read_memory <1>:              Inferiors In Python. (line  47)
 * Inferior.search_memory:                Inferiors In Python. (line  61)
 * Inferior.threads:                      Inferiors In Python. (line  42)
+* Inferior.thread_from_thread_handle:    Inferiors In Python. (line  70)
+* Inferior.thread_from_thread_handle <1>: Inferiors In Python.
+                                                              (line  70)
 * Inferior.was_attached:                 Inferiors In Python. (line  29)
 * Inferior.write_memory:                 Inferiors In Python. (line  54)
 * Inferior.write_memory <1>:             Inferiors In Python. (line  54)
@@ -5556,7 +6207,7 @@ Command, Variable, and Function Index
 * InferiorThread.ptid:                   Threads In Python.   (line  37)
 * InferiorThread.switch:                 Threads In Python.   (line  58)
 * info:                                  Help.                (line 100)
-* info address:                          Symbols.             (line  74)
+* info address:                          Symbols.             (line  85)
 * info all-registers:                    Registers.           (line  15)
 * info args:                             Frame Info.          (line  44)
 * info auto-load:                        Auto-loading.        (line  60)
@@ -5571,25 +6222,25 @@ Command, Variable, and Function Index
 * info auxv:                             OS Information.      (line  20)
 * info breakpoints:                      Set Breaks.          (line 126)
 * info checkpoints:                      Checkpoint/Restart.  (line  31)
-* info classes:                          Symbols.             (line 323)
+* info classes:                          Symbols.             (line 466)
 * info common:                           Special Fortran Commands.
                                                               (line   9)
 * info copying:                          Help.                (line 138)
 * info dcache:                           Caching Target Data. (line  46)
 * info display:                          Auto Display.        (line  78)
-* info dll:                              Files.               (line 322)
+* info dll:                              Files.               (line 328)
 * info dos:                              DJGPP Native.        (line  15)
 * info exceptions:                       Ada Exceptions.      (line   8)
 * info extensions:                       Show.                (line  34)
 * info f (info frame):                   Frame Info.          (line  17)
-* info files:                            Files.               (line 197)
+* info files:                            Files.               (line 203)
 * info float:                            Floating Point Hardware.
                                                               (line   9)
 * info frame:                            Frame Info.          (line  17)
 * info frame, show the source language:  Show.                (line  15)
 * info frame-filter:                     Frame Filter Management.
                                                               (line  12)
-* info functions:                        Symbols.             (line 303)
+* info functions:                        Symbols.             (line 446)
 * info handle:                           Signals.             (line  33)
 * info inferiors:                        Inferiors and Programs.
                                                               (line  25)
@@ -5626,24 +6277,24 @@ Command, Variable, and Function Index
 * info record:                           Process Record and Replay.
                                                               (line 263)
 * info registers:                        Registers.           (line  11)
-* info scope:                            Symbols.             (line 260)
-* info selectors:                        Symbols.             (line 329)
+* info scope:                            Symbols.             (line 403)
+* info selectors:                        Symbols.             (line 472)
 * info serial:                           DJGPP Native.        (line 139)
 * info set:                              Help.                (line 121)
-* info share:                            Files.               (line 316)
-* info sharedlibrary:                    Files.               (line 316)
+* info share:                            Files.               (line 322)
+* info sharedlibrary:                    Files.               (line 322)
 * info signals:                          Signals.             (line  33)
 * info skip:                             Skipping Over Functions and Files.
                                                               (line 113)
-* info source:                           Symbols.             (line 281)
+* info source:                           Symbols.             (line 424)
 * info source, show the source language: Show.                (line  21)
-* info sources:                          Symbols.             (line 297)
+* info sources:                          Symbols.             (line 440)
 * info spu:                              SPU.                 (line  10)
 * info stack:                            Backtrace.           (line  46)
 * info static-tracepoint-markers:        Listing Static Tracepoint Markers.
                                                               (line   6)
-* info symbol:                           Symbols.             (line  84)
-* info target:                           Files.               (line 197)
+* info symbol:                           Symbols.             (line  95)
+* info target:                           Files.               (line 203)
 * info task TASKNO:                      Ada Tasks.           (line  88)
 * info tasks:                            Ada Tasks.           (line   9)
 * info terminal:                         Input/Output.        (line  12)
@@ -5652,9 +6303,9 @@ Command, Variable, and Function Index
 * info tracepoints [N...]:               Listing Tracepoints. (line   6)
 * info tvariables:                       Trace State Variables.
                                                               (line  37)
-* info type-printers:                    Symbols.             (line 248)
-* info types:                            Symbols.             (line 234)
-* info variables:                        Symbols.             (line 314)
+* info type-printers:                    Symbols.             (line 391)
+* info types:                            Symbols.             (line 377)
+* info variables:                        Symbols.             (line 457)
 * info vector:                           Vector Unit.         (line   9)
 * info w32:                              Cygwin Native.       (line  19)
 * info warranty:                         Help.                (line 142)
@@ -5784,6 +6435,8 @@ Command, Variable, and Function Index
                                                               (line  94)
 * maint btrace packet-history:           Maintenance Commands.
                                                               (line  65)
+* maint check xml-descriptions:          Maintenance Commands.
+                                                              (line 240)
 * maint check-psymtabs:                  Maintenance Commands.
                                                               (line 134)
 * maint check-symtabs:                   Maintenance Commands.
@@ -5800,19 +6453,19 @@ Command, Variable, and Function Index
                                                               (line 168)
 * maint expand-symtabs:                  Maintenance Commands.
                                                               (line 142)
-* maint flush-symbol-cache:              Symbols.             (line 467)
+* maint flush-symbol-cache:              Symbols.             (line 610)
 * maint info bfds:                       File Caching.        (line  10)
 * maint info breakpoints:                Maintenance Commands.
                                                               (line  32)
 * maint info btrace:                     Maintenance Commands.
                                                               (line  62)
-* maint info line-table:                 Symbols.             (line 445)
+* maint info line-table:                 Symbols.             (line 588)
 * maint info program-spaces:             Inferiors and Programs.
                                                               (line 145)
-* maint info psymtabs:                   Symbols.             (line 398)
-* maint info sections:                   Files.               (line 206)
+* maint info psymtabs:                   Symbols.             (line 541)
+* maint info sections:                   Files.               (line 212)
 * maint info sol-threads:                Threads.             (line 167)
-* maint info symtabs:                    Symbols.             (line 398)
+* maint info symtabs:                    Symbols.             (line 541)
 * maint internal-error:                  Maintenance Commands.
                                                               (line 173)
 * maint internal-warning:                Maintenance Commands.
@@ -5822,42 +6475,42 @@ Command, Variable, and Function Index
 * maint print arc arc-instruction:       ARC.                 (line  17)
 * maint print architecture:              Maintenance Commands.
                                                               (line 226)
-* maint print c-tdesc:                   Maintenance Commands.
+* maint print c-tdesc [FILE]:            Maintenance Commands.
                                                               (line 230)
 * maint print cooked-registers:          Maintenance Commands.
-                                                              (line 251)
+                                                              (line 260)
 * maint print dummy-frames:              Maintenance Commands.
-                                                              (line 235)
-* maint print msymbols:                  Symbols.             (line 372)
+                                                              (line 244)
+* maint print msymbols:                  Symbols.             (line 515)
 * maint print objfiles:                  Maintenance Commands.
-                                                              (line 289)
-* maint print psymbols:                  Symbols.             (line 372)
+                                                              (line 298)
+* maint print psymbols:                  Symbols.             (line 515)
 * maint print raw-registers:             Maintenance Commands.
-                                                              (line 251)
+                                                              (line 260)
 * maint print reggroups:                 Maintenance Commands.
-                                                              (line 270)
+                                                              (line 279)
 * maint print register-groups:           Maintenance Commands.
-                                                              (line 251)
+                                                              (line 260)
 * maint print registers:                 Maintenance Commands.
-                                                              (line 251)
+                                                              (line 260)
 * maint print remote-registers:          Maintenance Commands.
-                                                              (line 251)
+                                                              (line 260)
 * maint print section-scripts:           Maintenance Commands.
-                                                              (line 304)
+                                                              (line 313)
 * maint print statistics:                Maintenance Commands.
-                                                              (line 311)
-* maint print symbol-cache:              Symbols.             (line 459)
-* maint print symbol-cache-statistics:   Symbols.             (line 463)
-* maint print symbols:                   Symbols.             (line 372)
+                                                              (line 320)
+* maint print symbol-cache:              Symbols.             (line 602)
+* maint print symbol-cache-statistics:   Symbols.             (line 606)
+* maint print symbols:                   Symbols.             (line 515)
 * maint print target-stack:              Maintenance Commands.
-                                                              (line 324)
+                                                              (line 333)
 * maint print type:                      Maintenance Commands.
-                                                              (line 336)
+                                                              (line 345)
 * maint print unwind, HPPA:              HPPA.                (line  17)
 * maint print user-registers:            Maintenance Commands.
-                                                              (line 295)
+                                                              (line 304)
 * maint selftest:                        Maintenance Commands.
-                                                              (line 343)
+                                                              (line 352)
 * maint set bfd-sharing:                 File Caching.        (line  14)
 * maint set btrace pt skip-pad:          Maintenance Commands.
                                                               (line 107)
@@ -5866,26 +6519,26 @@ Command, Variable, and Function Index
 * maint set demangler-warning:           Maintenance Commands.
                                                               (line 197)
 * maint set dwarf always-disassemble:    Maintenance Commands.
-                                                              (line 346)
+                                                              (line 361)
 * maint set dwarf max-cache-age:         Maintenance Commands.
-                                                              (line 367)
+                                                              (line 382)
 * maint set internal-error:              Maintenance Commands.
                                                               (line 197)
 * maint set internal-warning:            Maintenance Commands.
                                                               (line 197)
 * maint set per-command:                 Maintenance Commands.
-                                                              (line 439)
+                                                              (line 454)
 * maint set profile:                     Maintenance Commands.
-                                                              (line 381)
+                                                              (line 396)
 * maint set show-all-tib:                Maintenance Commands.
-                                                              (line 405)
+                                                              (line 420)
 * maint set show-debug-regs:             Maintenance Commands.
-                                                              (line 397)
-* maint set symbol-cache-size:           Symbols.             (line 451)
+                                                              (line 412)
+* maint set symbol-cache-size:           Symbols.             (line 594)
 * maint set target-async:                Maintenance Commands.
-                                                              (line 411)
+                                                              (line 426)
 * maint set target-non-stop MODE [on|off|auto]: Maintenance Commands.
-                                                              (line 419)
+                                                              (line 434)
 * maint show bfd-sharing:                File Caching.        (line  14)
 * maint show btrace pt skip-pad:         Maintenance Commands.
                                                               (line 108)
@@ -5894,32 +6547,32 @@ Command, Variable, and Function Index
 * maint show demangler-warning:          Maintenance Commands.
                                                               (line 197)
 * maint show dwarf always-disassemble:   Maintenance Commands.
-                                                              (line 346)
+                                                              (line 361)
 * maint show dwarf max-cache-age:        Maintenance Commands.
-                                                              (line 367)
+                                                              (line 382)
 * maint show internal-error:             Maintenance Commands.
                                                               (line 197)
 * maint show internal-warning:           Maintenance Commands.
                                                               (line 197)
 * maint show per-command:                Maintenance Commands.
-                                                              (line 439)
+                                                              (line 454)
 * maint show profile:                    Maintenance Commands.
-                                                              (line 381)
+                                                              (line 396)
 * maint show show-all-tib:               Maintenance Commands.
-                                                              (line 405)
+                                                              (line 420)
 * maint show show-debug-regs:            Maintenance Commands.
-                                                              (line 397)
-* maint show symbol-cache-size:          Symbols.             (line 456)
+                                                              (line 412)
+* maint show symbol-cache-size:          Symbols.             (line 599)
 * maint show target-async:               Maintenance Commands.
-                                                              (line 411)
+                                                              (line 426)
 * maint show target-non-stop:            Maintenance Commands.
-                                                              (line 419)
+                                                              (line 434)
 * maint space:                           Maintenance Commands.
-                                                              (line 478)
+                                                              (line 493)
 * maint time:                            Maintenance Commands.
-                                                              (line 482)
+                                                              (line 497)
 * maint translate-address:               Maintenance Commands.
-                                                              (line 486)
+                                                              (line 501)
 * maint undeprecate:                     Maintenance Commands.
                                                               (line 160)
 * make:                                  Shell Commands.      (line  21)
@@ -5982,7 +6635,10 @@ Command, Variable, and Function Index
 * name of type_printer:                  Type Printing API.   (line  18)
 * new-ui:                                Interpreters.        (line  65)
 * newest-frame:                          Frames In Guile.     (line 160)
+* NewInferiorEvent.inferior:             Events In Python.    (line 198)
+* NewInferiorEvent.inferior <1>:         Events In Python.    (line 209)
 * NewObjFileEvent.new_objfile:           Events In Python.    (line 115)
+* NewThreadEvent.inferior_thread:        Events In Python.    (line 217)
 * next:                                  Continuing and Stepping.
                                                               (line  77)
 * next&:                                 Background Execution.
@@ -5999,7 +6655,8 @@ Command, Variable, and Function Index
                                                               (line  40)
 * non-incremental-reverse-search-history (M-p): Commands For History.
                                                               (line  35)
-* nosharedlibrary:                       Files.               (line 334)
+* nosharedlibrary:                       Files.               (line 340)
+* o (SingleKey TUI key):                 TUI Single Key Mode. (line  22)
 * Objfile:                               Objfiles In Python.  (line   6)
 * objfile-filename:                      Objfiles In Guile.   (line  28)
 * objfile-pretty-printers:               Objfiles In Guile.   (line  36)
@@ -6149,23 +6806,23 @@ Command, Variable, and Function Index
 * progspaces:                            Progspaces In Guile. (line  31)
 * prompt annotation:                     Prompting.           (line  24)
 * prompt-for-continue annotation:        Prompting.           (line  40)
-* ptype:                                 Symbols.             (line 169)
+* ptype:                                 Symbols.             (line 297)
 * putDebugChar:                          Bootstrapping.       (line  20)
-* pwd:                                   Working Directory.   (line  20)
+* pwd:                                   Working Directory.   (line  40)
 * py:                                    Python Commands.     (line  23)
 * python:                                GDB/MI Support Commands.
                                                               (line  82)
 * python <1>:                            Python Commands.     (line  23)
 * python-interactive:                    Python Commands.     (line   9)
 * q (quit):                              Quitting GDB.        (line   6)
-* q (SingleKey TUI key):                 TUI Single Key Mode. (line  22)
+* q (SingleKey TUI key):                 TUI Single Key Mode. (line  25)
 * query annotation:                      Prompting.           (line  36)
 * queue-signal:                          Signaling.           (line  36)
 * quit annotation:                       Errors.              (line   6)
 * quit [EXPRESSION]:                     Quitting GDB.        (line   6)
 * quoted-insert (C-q or C-v):            Commands For Text.   (line  20)
 * r (run):                               Starting.            (line   6)
-* r (SingleKey TUI key):                 TUI Single Key Mode. (line  25)
+* r (SingleKey TUI key):                 TUI Single Key Mode. (line  28)
 * rbreak:                                Set Breaks.          (line  90)
 * rc (reverse-continue):                 Reverse Execution.   (line  30)
 * re-read-init-file (C-x C-r):           Miscellaneous Commands.
@@ -6278,7 +6935,7 @@ Command, Variable, and Function Index
 * remote put:                            File Transfer.       (line  15)
 * remove-inferiors:                      Inferiors and Programs.
                                                               (line  92)
-* remove-symbol-file:                    Files.               (line 160)
+* remove-symbol-file:                    Files.               (line 166)
 * restart CHECKPOINT-ID:                 Checkpoint/Restart.  (line  41)
 * restore:                               Dump/Restore Files.  (line  40)
 * RET (repeat last command):             Command Syntax.      (line  21)
@@ -6305,7 +6962,7 @@ Command, Variable, and Function Index
 * run&:                                  Background Execution.
                                                               (line  21)
 * rwatch:                                Set Watchpoints.     (line  79)
-* s (SingleKey TUI key):                 TUI Single Key Mode. (line  28)
+* s (SingleKey TUI key):                 TUI Single Key Mode. (line  31)
 * s (step):                              Continuing and Stepping.
                                                               (line  45)
 * sal-last:                              Symbol Tables In Guile.
@@ -6325,7 +6982,7 @@ Command, Variable, and Function Index
 * save tracepoints:                      save tracepoints.    (line   6)
 * save-tracepoints:                      save tracepoints.    (line   6)
 * search:                                Search.              (line   9)
-* section:                               Files.               (line 189)
+* section:                               Files.               (line 195)
 * select-frame:                          Selection.           (line  56)
 * selected-frame:                        Frames In Guile.     (line 156)
 * self:                                  Commands In Guile.   (line 100)
@@ -6341,7 +6998,7 @@ Command, Variable, and Function Index
 * set architecture:                      Targets.             (line  21)
 * set args:                              Arguments.           (line  21)
 * set arm:                               ARM.                 (line   9)
-* set auto-connect-native-target:        Starting.            (line 157)
+* set auto-connect-native-target:        Starting.            (line 168)
 * set auto-load gdb-scripts:             Auto-loading sequences.
                                                               (line  13)
 * set auto-load guile-scripts:           Guile Auto-loading.  (line  17)
@@ -6355,13 +7012,13 @@ Command, Variable, and Function Index
                                                               (line  32)
 * set auto-load scripts-directory:       objfile-gdbdotext file.
                                                               (line  37)
-* set auto-solib-add:                    Files.               (line 293)
+* set auto-solib-add:                    Files.               (line 299)
 * set backtrace:                         Backtrace.           (line 116)
-* set basenames-may-differ:              Files.               (line 522)
-* set breakpoint always-inserted:        Set Breaks.          (line 317)
-* set breakpoint auto-hw:                Set Breaks.          (line 297)
-* set breakpoint condition-evaluation:   Set Breaks.          (line 338)
-* set breakpoint pending:                Set Breaks.          (line 267)
+* set basenames-may-differ:              Files.               (line 528)
+* set breakpoint always-inserted:        Set Breaks.          (line 318)
+* set breakpoint auto-hw:                Set Breaks.          (line 298)
+* set breakpoint condition-evaluation:   Set Breaks.          (line 339)
+* set breakpoint pending:                Set Breaks.          (line 268)
 * set can-use-hw-watchpoints:            Set Watchpoints.     (line 116)
 * set case-sensitive:                    Symbols.             (line  27)
 * set charset:                           Character Sets.      (line  46)
@@ -6382,6 +7039,7 @@ Command, Variable, and Function Index
 * set complaints:                        Messages/Warnings.   (line  29)
 * set confirm:                           Messages/Warnings.   (line  49)
 * set cp-abi:                            ABI.                 (line  57)
+* set cwd:                               Working Directory.   (line  13)
 * set cygwin-exceptions:                 Cygwin Native.       (line  60)
 * set data-directory:                    Data Files.          (line  12)
 * set dcache line-size:                  Caching Target Data. (line  60)
@@ -6410,7 +7068,7 @@ Command, Variable, and Function Index
 * set demangle-style:                    Print Settings.      (line 427)
 * set detach-on-fork:                    Forks.               (line  58)
 * set directories:                       Source Path.         (line 118)
-* set disable-randomization:             Starting.            (line 201)
+* set disable-randomization:             Starting.            (line 212)
 * set disassemble-next-line:             Machine Code.        (line 242)
 * set disassembler-options:              Machine Code.        (line 215)
 * set disassembly-flavor:                Machine Code.        (line 230)
@@ -6419,13 +7077,15 @@ Command, Variable, and Function Index
                                                               (line  55)
 * set displaced-stepping:                Maintenance Commands.
                                                               (line 112)
+* set dump-excluded-mappings:            Core File Generation.
+                                                              (line  60)
 * set editing:                           Editing.             (line  15)
 * set endian:                            Byte Order.          (line  13)
 * set environment:                       Environment.         (line  39)
 * set exceptions, Hurd command:          Hurd Native.         (line  39)
 * set exec-direction:                    Reverse Execution.   (line  83)
 * set exec-done-display:                 Debugging Output.    (line  11)
-* set exec-wrapper:                      Starting.            (line 109)
+* set exec-wrapper:                      Starting.            (line 120)
 * set extended-prompt:                   Prompt.              (line  25)
 * set extension-language:                Show.                (line  30)
 * set follow-exec-mode:                  Forks.               (line 105)
@@ -6466,7 +7126,7 @@ Command, Variable, and Function Index
 * set new-console:                       Cygwin Native.       (line  72)
 * set new-group:                         Cygwin Native.       (line  81)
 * set non-stop:                          Non-Stop Mode.       (line  35)
-* set opaque-type-resolution:            Symbols.             (line 335)
+* set opaque-type-resolution:            Symbols.             (line 478)
 * set osabi:                             ABI.                 (line  11)
 * set output-radix:                      Numbers.             (line  30)
 * set overload-resolution:               Debugging C Plus Plus.
@@ -6478,10 +7138,11 @@ Command, Variable, and Function Index
 * set print frame-arguments:             Print Settings.      (line 154)
 * set print inferior-events:             Inferiors and Programs.
                                                               (line 123)
-* set print symbol-loading:              Symbols.             (line 353)
+* set print symbol-loading:              Symbols.             (line 496)
 * set print thread-events:               Threads.             (line 221)
 * set print type methods:                Symbols.             (line  44)
-* set print type typedefs:               Symbols.             (line  57)
+* set print type nested-type-limit:      Symbols.             (line  57)
+* set print type typedefs:               Symbols.             (line  68)
 * set processor:                         Targets.             (line  31)
 * set procfs-file:                       SVR4 Process Information.
                                                               (line  73)
@@ -6519,20 +7180,20 @@ Command, Variable, and Function Index
 * set signals, Hurd command:             Hurd Native.         (line  11)
 * set sigs, Hurd command:                Hurd Native.         (line  11)
 * set sigthread:                         Hurd Native.         (line  21)
-* set solib-absolute-prefix:             Files.               (line 372)
-* set solib-search-path:                 Files.               (line 448)
+* set solib-absolute-prefix:             Files.               (line 378)
+* set solib-search-path:                 Files.               (line 454)
 * set spu:                               SPU.                 (line  38)
 * set stack-cache:                       Caching Target Data. (line  28)
-* set startup-with-shell:                Starting.            (line 134)
+* set startup-with-shell:                Starting.            (line 145)
 * set step-mode:                         Continuing and Stepping.
                                                               (line  91)
-* set stop-on-solib-events:              Files.               (line 349)
+* set stop-on-solib-events:              Files.               (line 355)
 * set stopped, Hurd command:             Hurd Native.         (line  31)
 * set struct-convention:                 i386.                (line   7)
 * set substitute-path:                   Source Path.         (line 125)
-* set sysroot:                           Files.               (line 372)
+* set sysroot:                           Files.               (line 378)
 * set target-charset:                    Character Sets.      (line  28)
-* set target-file-system-kind (unix|dos-based|auto): Files.   (line 462)
+* set target-file-system-kind (unix|dos-based|auto): Files.   (line 468)
 * set target-wide-charset:               Character Sets.      (line  61)
 * set task, Hurd commands:               Hurd Native.         (line  48)
 * set tcp:                               Remote Configuration.
@@ -6547,18 +7208,18 @@ Command, Variable, and Function Index
                                                               (line 132)
 * set trace-user:                        Starting and Stopping Trace Experiments.
                                                               (line 122)
-* set trust-readonly-sections:           Files.               (line 251)
+* set trust-readonly-sections:           Files.               (line 257)
 * set tui active-border-mode:            TUI Configuration.   (line  24)
 * set tui border-kind:                   TUI Configuration.   (line   9)
 * set tui border-mode:                   TUI Configuration.   (line  23)
 * set unwind-on-terminating-exception:   Calling.             (line  47)
 * set unwindonsignal:                    Calling.             (line  36)
 * set use-coredump-filter:               Core File Generation.
-                                                              (line  31)
+                                                              (line  33)
 * set variable:                          Assignment.          (line  16)
 * set verbose:                           Messages/Warnings.   (line  15)
 * set watchdog:                          Maintenance Commands.
-                                                              (line 503)
+                                                              (line 518)
 * set width:                             Screen Size.         (line  20)
 * set write:                             Patching.            (line  15)
 * set-breakpoint-condition!:             Breakpoints In Guile.
@@ -6592,8 +7253,8 @@ Command, Variable, and Function Index
                                                               (line  38)
 * set-progspace-pretty-printers!:        Progspaces In Guile. (line  57)
 * set_debug_traps:                       Stub Contents.       (line  10)
-* share:                                 Files.               (line 325)
-* sharedlibrary:                         Files.               (line 325)
+* share:                                 Files.               (line 331)
+* sharedlibrary:                         Files.               (line 331)
 * shell:                                 Shell Commands.      (line  10)
 * show:                                  Help.                (line 114)
 * show ada print-signatures:             Overloading support for Ada.
@@ -6618,13 +7279,13 @@ Command, Variable, and Function Index
                                                               (line  46)
 * show auto-load scripts-directory:      objfile-gdbdotext file.
                                                               (line  61)
-* show auto-solib-add:                   Files.               (line 310)
+* show auto-solib-add:                   Files.               (line 316)
 * show backtrace:                        Backtrace.           (line 123)
-* show basenames-may-differ:             Files.               (line 525)
-* show breakpoint always-inserted:       Set Breaks.          (line 317)
-* show breakpoint auto-hw:               Set Breaks.          (line 297)
-* show breakpoint condition-evaluation:  Set Breaks.          (line 338)
-* show breakpoint pending:               Set Breaks.          (line 267)
+* show basenames-may-differ:             Files.               (line 531)
+* show breakpoint always-inserted:       Set Breaks.          (line 318)
+* show breakpoint auto-hw:               Set Breaks.          (line 298)
+* show breakpoint condition-evaluation:  Set Breaks.          (line 339)
+* show breakpoint pending:               Set Breaks.          (line 268)
 * show can-use-hw-watchpoints:           Set Watchpoints.     (line 119)
 * show case-sensitive:                   Symbols.             (line  40)
 * show charset:                          Character Sets.      (line  52)
@@ -6649,6 +7310,7 @@ Command, Variable, and Function Index
 * show convenience:                      Convenience Vars.    (line  37)
 * show copying:                          Help.                (line 138)
 * show cp-abi:                           ABI.                 (line  57)
+* show cwd:                              Working Directory.   (line  27)
 * show cygwin-exceptions:                Cygwin Native.       (line  68)
 * show data-directory:                   Data Files.          (line  16)
 * show dcache line-size:                 Caching Target Data. (line  68)
@@ -6714,7 +7376,7 @@ Command, Variable, and Function Index
 * show new-console:                      Cygwin Native.       (line  77)
 * show new-group:                        Cygwin Native.       (line  86)
 * show non-stop:                         Non-Stop Mode.       (line  38)
-* show opaque-type-resolution:           Symbols.             (line 350)
+* show opaque-type-resolution:           Symbols.             (line 493)
 * show osabi:                            ABI.                 (line  11)
 * show output-radix:                     Numbers.             (line  38)
 * show overload-resolution:              Debugging C Plus Plus.
@@ -6724,10 +7386,11 @@ Command, Variable, and Function Index
 * show print:                            Print Settings.      (line  39)
 * show print inferior-events:            Inferiors and Programs.
                                                               (line 131)
-* show print symbol-loading:             Symbols.             (line 368)
+* show print symbol-loading:             Symbols.             (line 511)
 * show print thread-events:              Threads.             (line 231)
 * show print type methods:               Symbols.             (line  53)
-* show print type typedefs:              Symbols.             (line  70)
+* show print type nested-type-limit:     Symbols.             (line  64)
+* show print type typedefs:              Symbols.             (line  81)
 * show processor:                        Targets.             (line  31)
 * show procfs-file:                      SVR4 Process Information.
                                                               (line  78)
@@ -6758,16 +7421,16 @@ Command, Variable, and Function Index
 * show signals, Hurd command:            Hurd Native.         (line  17)
 * show sigs, Hurd command:               Hurd Native.         (line  17)
 * show sigthread:                        Hurd Native.         (line  27)
-* show solib-search-path:                Files.               (line 459)
+* show solib-search-path:                Files.               (line 465)
 * show spu:                              SPU.                 (line  43)
 * show stack-cache:                      Caching Target Data. (line  33)
-* show stop-on-solib-events:             Files.               (line 355)
+* show stop-on-solib-events:             Files.               (line 361)
 * show stopped, Hurd command:            Hurd Native.         (line  36)
 * show struct-convention:                i386.                (line  15)
 * show substitute-path:                  Source Path.         (line 162)
-* show sysroot:                          Files.               (line 445)
+* show sysroot:                          Files.               (line 451)
 * show target-charset:                   Character Sets.      (line  58)
-* show target-file-system-kind:          Files.               (line 462)
+* show target-file-system-kind:          Files.               (line 468)
 * show target-wide-charset:              Character Sets.      (line  67)
 * show task, Hurd commands:              Hurd Native.         (line  56)
 * show tcp:                              Remote Configuration.
@@ -6831,17 +7494,18 @@ Command, Variable, and Function Index
                                                               (line  51)
 * source:                                Command Files.       (line  17)
 * source annotation:                     Source Annotations.  (line   6)
-* start:                                 Starting.            (line  77)
+* start:                                 Starting.            (line  80)
 * start-kbd-macro (C-x ():               Keyboard Macros.     (line   6)
+* starti:                                Starting.            (line 113)
 * starting annotation:                   Annotations for Running.
                                                               (line   6)
-* STDERR:                                Basic Python.        (line 146)
-* STDERR <1>:                            Basic Python.        (line 166)
+* STDERR:                                Basic Python.        (line 162)
+* STDERR <1>:                            Basic Python.        (line 182)
 * stdio-port?:                           I/O Ports in Guile.  (line  15)
-* STDLOG:                                Basic Python.        (line 149)
-* STDLOG <1>:                            Basic Python.        (line 169)
-* STDOUT:                                Basic Python.        (line 143)
-* STDOUT <1>:                            Basic Python.        (line 163)
+* STDLOG:                                Basic Python.        (line 165)
+* STDLOG <1>:                            Basic Python.        (line 185)
+* STDOUT:                                Basic Python.        (line 159)
+* STDOUT <1>:                            Basic Python.        (line 179)
 * step:                                  Continuing and Stepping.
                                                               (line  45)
 * step&:                                 Background Execution.
@@ -6887,7 +7551,7 @@ Command, Variable, and Function Index
 * Symbol.value:                          Symbols In Python.   (line 105)
 * symbol?:                               Symbols In Guile.    (line  13)
 * SYMBOL_FUNCTIONS_DOMAIN:               Symbols In Python.   (line 134)
-* SYMBOL_FUNCTION_DOMAIN:                Symbols In Guile.    (line 133)
+* SYMBOL_FUNCTIONS_DOMAIN <1>:           Symbols In Guile.    (line 133)
 * SYMBOL_LABEL_DOMAIN:                   Symbols In Python.   (line 127)
 * SYMBOL_LABEL_DOMAIN <1>:               Symbols In Guile.    (line 126)
 * SYMBOL_LOC_ARG:                        Symbols In Python.   (line 156)
@@ -6979,11 +7643,12 @@ Command, Variable, and Function Index
                                                               (line  38)
 * target record-full:                    Process Record and Replay.
                                                               (line  38)
+* target sim:                            OpenRISC 1000.       (line  13)
 * target tfile:                          Trace Files.         (line  28)
 * target-config:                         Guile Configuration. (line  24)
 * task (Ada):                            Ada Tasks.           (line 104)
 * tbreak:                                Set Breaks.          (line  54)
-* tcatch:                                Set Catchpoints.     (line 272)
+* tcatch:                                Set Catchpoints.     (line 289)
 * tdump:                                 tdump.               (line   6)
 * teval (tracepoints):                   Tracepoint Actions.  (line 118)
 * tfile:                                 Trace Files.         (line  28)
@@ -7109,7 +7774,7 @@ Command, Variable, and Function Index
 * TYPE_CODE_UNION <1>:                   Types In Guile.      (line 159)
 * TYPE_CODE_VOID:                        Types In Python.     (line 216)
 * TYPE_CODE_VOID <1>:                    Types In Guile.      (line 177)
-* u (SingleKey TUI key):                 TUI Single Key Mode. (line  31)
+* u (SingleKey TUI key):                 TUI Single Key Mode. (line  37)
 * u (until):                             Continuing and Stepping.
                                                               (line 117)
 * undefined-command-error-code:          GDB/MI Support Commands.
@@ -7124,7 +7789,7 @@ Command, Variable, and Function Index
                                                               (line  12)
 * unix-word-rubout (C-w):                Commands For Killing.
                                                               (line  28)
-* unset environment:                     Environment.         (line  61)
+* unset environment:                     Environment.         (line  65)
 * unset substitute-path:                 Source Path.         (line 154)
 * until:                                 Continuing and Stepping.
                                                               (line 117)
@@ -7136,7 +7801,7 @@ Command, Variable, and Function Index
 * up-silently:                           Selection.           (line  62)
 * upcase-word (M-u):                     Commands For Text.   (line  41)
 * update:                                TUI Commands.        (line 106)
-* v (SingleKey TUI key):                 TUI Single Key Mode. (line  34)
+* v (SingleKey TUI key):                 TUI Single Key Mode. (line  40)
 * value->bool:                           Values From Inferior In Guile.
                                                               (line 234)
 * value->bytevector:                     Values From Inferior In Guile.
@@ -7241,25 +7906,25 @@ Command, Variable, and Function Index
                                                               (line  91)
 * visible-stats:                         Readline Init File Syntax.
                                                               (line 240)
-* w (SingleKey TUI key):                 TUI Single Key Mode. (line  37)
+* w (SingleKey TUI key):                 TUI Single Key Mode. (line  43)
 * watch:                                 Set Watchpoints.     (line  42)
 * watchpoint annotation:                 Annotations for Running.
                                                               (line  50)
-* whatis:                                Symbols.             (line 114)
+* whatis:                                Symbols.             (line 125)
 * where:                                 Backtrace.           (line  46)
 * while:                                 Command Files.       (line  85)
 * while-stepping (tracepoints):          Tracepoint Actions.  (line 126)
 * winheight:                             TUI Commands.        (line 110)
 * WP_ACCESS:                             Breakpoints In Python.
-                                                              (line  57)
+                                                              (line  86)
 * WP_ACCESS <1>:                         Breakpoints In Guile.
                                                               (line  84)
 * WP_READ:                               Breakpoints In Python.
-                                                              (line  51)
+                                                              (line  80)
 * WP_READ <1>:                           Breakpoints In Guile.
                                                               (line  78)
 * WP_WRITE:                              Breakpoints In Python.
-                                                              (line  54)
+                                                              (line  83)
 * WP_WRITE <1>:                          Breakpoints In Guile.
                                                               (line  81)
 * x (examine memory):                    Memory.              (line   9)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdbinit.5 ./gdb/doc/gdbinit.5
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdbinit.5	2018-01-02 02:06:56.000000000 +0000
+++ ./gdb/doc/gdbinit.5	2018-01-09 02:08:34.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBINIT 5"
-.TH GDBINIT 5 "2018-01-02" "gdb-8.0.1.20180102-git" "GNU Development Tools"
+.TH GDBINIT 5 "2018-01-09" "gdb-8.0.90.20180109-git" "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
@@ -186,7 +186,7 @@ should give you access to the complete m
 Richard M. Stallman and Roland H. Pesch, July 1991.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1988\-2017 Free Software Foundation, Inc.
+Copyright (c) 1988\-2018 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 or
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdbserver.1 ./gdb/doc/gdbserver.1
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdbserver.1	2018-01-02 02:06:56.000000000 +0000
+++ ./gdb/doc/gdbserver.1	2018-01-09 02:08:34.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBSERVER 1"
-.TH GDBSERVER 1 "2018-01-02" "gdb-8.0.1.20180102-git" "GNU Development Tools"
+.TH GDBSERVER 1 "2018-01-09" "gdb-8.0.90.20180109-git" "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
@@ -354,7 +354,7 @@ should give you access to the complete m
 Richard M. Stallman and Roland H. Pesch, July 1991.
 .SH "COPYRIGHT"
 .IX Header "COPYRIGHT"
-Copyright (c) 1988\-2017 Free Software Foundation, Inc.
+Copyright (c) 1988\-2018 Free Software Foundation, Inc.
 .PP
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 or
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.texinfo ./gdb/doc/gdb.texinfo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/gdb.texinfo	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/gdb.texinfo	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 \input texinfo      @c -*-texinfo-*-
-@c Copyright (C) 1988-2017 Free Software Foundation, Inc.
+@c Copyright (C) 1988-2018 Free Software Foundation, Inc.
 @c
 @c %**start of header
 @c makeinfo ignores cmds prev to setfilename, so its arg cannot make use
@@ -50,7 +50,7 @@
 
 @copying
 @c man begin COPYRIGHT
-Copyright @copyright{} 1988-2017 Free Software Foundation, Inc.
+Copyright @copyright{} 1988-2018 Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -120,7 +120,7 @@ This is the @value{EDITION} Edition, for
 @end ifset
 Version @value{GDBVN}.
 
-Copyright (C) 1988-2017 Free Software Foundation, Inc.
+Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
 This edition of the GDB manual is dedicated to the memory of Fred
 Fish.  Fred was a long-standing contributor to GDB and to Free
@@ -546,6 +546,11 @@ was developed by SRI International and t
 Computer Laboratory under DARPA/AFRL contract FA8750-10-C-0237
 ("CTSRD"), as part of the DARPA CRASH research programme.
 
+The original port to the OpenRISC 1000 is believed to be due to
+Alessandro Forin and Per Bothner.  More recent ports have been the work
+of Jeremy Bennett, Franck Jullien, Stefan Wallentowitz and
+Stafford Horne.
+
 @node Sample Session
 @chapter A Sample @value{GDBN} Session
 
@@ -1037,6 +1042,16 @@ Read each symbol file's entire symbol ta
 the default, which is to read it incrementally as it is needed.
 This makes startup slower, but makes future operations faster.
 
+@item --readnever
+@anchor{--readnever}
+@cindex @code{--readnever}, command-line option
+Do not read each symbol file's symbolic debug information.  This makes
+startup faster but at the expense of not being able to perform
+symbolic debugging.  DWARF unwind information is also not read,
+meaning backtraces may become incomplete or inaccurate.  One use of
+this is when a user simply wants to do the following sequence: attach,
+dump core, detach.  Loading the debugging information in this case is
+an unnecessary cause of delay.
 @end table
 
 @node Mode Options
@@ -1638,39 +1653,56 @@ its notion of a word.  To permit word co
 situation, you may enclose words in @code{'} (single quote marks) in
 @value{GDBN} commands.
 
-The most likely situation where you might need this is in typing the
-name of a C@t{++} function.  This is because C@t{++} allows function
-overloading (multiple definitions of the same function, distinguished
-by argument type).  For example, when you want to set a breakpoint you
-may need to distinguish whether you mean the version of @code{name}
-that takes an @code{int} parameter, @code{name(int)}, or the version
-that takes a @code{float} parameter, @code{name(float)}.  To use the
-word-completion facilities in this situation, type a single quote
+A likely situation where you might need this is in typing an
+expression that involves a C@t{++} symbol name with template
+parameters.  This is because when completing expressions, GDB treats
+the @samp{<} character as word delimiter, assuming that it's the
+less-than comparison operator (@pxref{C Operators, , C and C@t{++}
+Operators}).
+
+For example, when you want to call a C@t{++} template function
+interactively using the @code{print} or @code{call} commands, you may
+need to distinguish whether you mean the version of @code{name} that
+was specialized for @code{int}, @code{name<int>()}, or the version
+that was specialized for @code{float}, @code{name<float>()}.  To use
+the word-completion facilities in this situation, type a single quote
 @code{'} at the beginning of the function name.  This alerts
 @value{GDBN} that it may need to consider more information than usual
 when you press @key{TAB} or @kbd{M-?} to request word completion:
 
 @smallexample
-(@value{GDBP}) b 'bubble( @kbd{M-?}
-bubble(double,double)    bubble(int,int)
-(@value{GDBP}) b 'bubble(
+(@value{GDBP}) p 'func< @kbd{M-?}
+func<int>()    func<float>()
+(@value{GDBP}) p 'func<
 @end smallexample
 
-In some cases, @value{GDBN} can tell that completing a name requires using
-quotes.  When this happens, @value{GDBN} inserts the quote for you (while
-completing as much as it can) if you do not type the quote in the first
-place:
+When setting breakpoints however (@pxref{Specify Location}), you don't
+usually need to type a quote before the function name, because
+@value{GDBN} understands that you want to set a breakpoint on a
+function:
 
 @smallexample
-(@value{GDBP}) b bub @key{TAB}
-@exdent @value{GDBN} alters your input line to the following, and rings a bell:
-(@value{GDBP}) b 'bubble(
+(@value{GDBP}) b func< @kbd{M-?}
+func<int>()    func<float>()
+(@value{GDBP}) b func<
 @end smallexample
 
-@noindent
-In general, @value{GDBN} can tell that a quote is needed (and inserts it) if
-you have not yet started typing the argument list when you ask for
-completion on an overloaded symbol.
+This is true even in the case of typing the name of C@t{++} overloaded
+functions (multiple definitions of the same function, distinguished by
+argument type).  For example, when you want to set a breakpoint you
+don't need to distinguish whether you mean the version of @code{name}
+that takes an @code{int} parameter, @code{name(int)}, or the version
+that takes a @code{float} parameter, @code{name(float)}.
+
+@smallexample
+(@value{GDBP}) b bubble( @kbd{M-?}
+bubble(int)    bubble(double)
+(@value{GDBP}) b bubble(dou @kbd{M-?}
+bubble(double)
+@end smallexample
+
+See @ref{quoting names} for a description of other scenarios that
+require quoting.
 
 For more information about overloaded functions, see @ref{C Plus Plus
 Expressions, ,C@t{++} Expressions}.  You can use the command @code{set
@@ -2057,9 +2089,12 @@ environment} to change parts of the envi
 your program.  @xref{Environment, ,Your Program's Environment}.
 
 @item The @emph{working directory.}
-Your program inherits its working directory from @value{GDBN}.  You can set
-the @value{GDBN} working directory with the @code{cd} command in @value{GDBN}.
-@xref{Working Directory, ,Your Program's Working Directory}.
+You can set your program's working directory with the command
+@kbd{set cwd}.  If you do not set any working directory with this
+command, your program will inherit @value{GDBN}'s working directory if
+native debugging, or the remote server's working directory if remote
+debugging.  @xref{Working Directory, ,Your Program's Working
+Directory}.
 
 @item The @emph{standard input and output.}
 Your program normally uses the same device for standard input and
@@ -2117,10 +2152,20 @@ reused if no argument is provided during
 @samp{start} or @samp{run}.
 
 It is sometimes necessary to debug the program during elaboration.  In
-these cases, using the @code{start} command would stop the execution of
-your program too late, as the program would have already completed the
-elaboration phase.  Under these circumstances, insert breakpoints in your
-elaboration code before running your program.
+these cases, using the @code{start} command would stop the execution
+of your program too late, as the program would have already completed
+the elaboration phase.  Under these circumstances, either insert
+breakpoints in your elaboration code before running your program or
+use the @code{starti} command.
+
+@kindex starti
+@item starti
+@cindex run to first instruction
+The @samp{starti} command does the equivalent of setting a temporary
+breakpoint at the first instruction of a program's execution and then
+invoking the @samp{run} command.  For programs containing an
+elaboration phase, the @code{starti} command will stop execution at
+the start of the elaboration phase.
 
 @anchor{set exec-wrapper}
 @kindex set exec-wrapper
@@ -2153,10 +2198,11 @@ This command is available when debugging
 @sc{djgpp}, Cygwin, MS Windows, and QNX Neutrino.
 
 @kindex set startup-with-shell
+@anchor{set startup-with-shell}
 @item set startup-with-shell
 @itemx set startup-with-shell on
 @itemx set startup-with-shell off
-@itemx show set startup-with-shell
+@itemx show startup-with-shell
 On Unix systems, by default, if a shell is available on your target,
 @value{GDBN}) uses it to start your program.  Arguments of the
 @code{run} command are passed to the shell, which does variable
@@ -2362,6 +2408,7 @@ print the names and values of all enviro
 your program.  You can abbreviate @code{environment} as @code{env}.
 
 @kindex set environment
+@anchor{set environment}
 @item set environment @var{varname} @r{[}=@var{value}@r{]}
 Set environment variable @var{varname} to @var{value}.  The value
 changes for your program (and the shell @value{GDBN} uses to launch
@@ -2390,12 +2437,21 @@ If necessary, you can avoid that by usin
 wrapper instead of using @code{set environment}.  @xref{set
 exec-wrapper}, for an example doing just that.
 
+Environment variables that are set by the user are also transmitted to
+@command{gdbserver} to be used when starting the remote inferior.
+@pxref{QEnvironmentHexEncoded}.
+
 @kindex unset environment
+@anchor{unset environment}
 @item unset environment @var{varname}
 Remove variable @var{varname} from the environment to be passed to your
 program.  This is different from @samp{set env @var{varname} =};
 @code{unset environment} removes the variable from the environment,
 rather than assigning it an empty value.
+
+Environment variables that are unset by the user are also unset on
+@command{gdbserver} when starting the remote inferior.
+@pxref{QEnvironmentUnset}.
 @end table
 
 @emph{Warning:} On Unix systems, @value{GDBN} runs your program using
@@ -2413,23 +2469,53 @@ variables to files that are only run whe
 @section Your Program's Working Directory
 
 @cindex working directory (of your program)
-Each time you start your program with @code{run}, it inherits its
-working directory from the current working directory of @value{GDBN}.
-The @value{GDBN} working directory is initially whatever it inherited
-from its parent process (typically the shell), but you can specify a new
-working directory in @value{GDBN} with the @code{cd} command.
-
-The @value{GDBN} working directory also serves as a default for the commands
-that specify files for @value{GDBN} to operate on.  @xref{Files, ,Commands to
-Specify Files}.
+Each time you start your program with @code{run}, the inferior will be
+initialized with the current working directory specified by the
+@kbd{set cwd} command.  If no directory has been specified by this
+command, then the inferior will inherit @value{GDBN}'s current working
+directory as its working directory if native debugging, or it will
+inherit the remote server's current working directory if remote
+debugging.
+
+@table @code
+@kindex set cwd
+@cindex change inferior's working directory
+@anchor{set cwd command}
+@item set cwd @r{[}@var{directory}@r{]}
+Set the inferior's working directory to @var{directory}, which will be
+@code{glob}-expanded in order to resolve tildes (@file{~}).  If no
+argument has been specified, the command clears the setting and resets
+it to an empty state.  This setting has no effect on @value{GDBN}'s
+working directory, and it only takes effect the next time you start
+the inferior.  The @file{~} in @var{directory} is a short for the
+@dfn{home directory}, usually pointed to by the @env{HOME} environment
+variable.  On MS-Windows, if @env{HOME} is not defined, @value{GDBN}
+uses the concatenation of @env{HOMEDRIVE} and @env{HOMEPATH} as
+fallback.
+
+You can also change @value{GDBN}'s current working directory by using
+the @code{cd} command.
+@xref{cd command}
+
+@kindex show cwd
+@cindex show inferior's working directory
+@item show cwd
+Show the inferior's working directory.  If no directory has been
+specified by @kbd{set cwd}, then the default inferior's working
+directory is the same as @value{GDBN}'s working directory.
 
-@table @code
 @kindex cd
-@cindex change working directory
+@cindex change @value{GDBN}'s working directory
+@anchor{cd command}
 @item cd @r{[}@var{directory}@r{]}
 Set the @value{GDBN} working directory to @var{directory}.  If not
 given, @var{directory} uses @file{'~'}.
 
+The @value{GDBN} working directory serves as a default for the
+commands that specify files for @value{GDBN} to operate on.
+@xref{Files, ,Commands to Specify Files}.
+@xref{set cwd command}
+
 @kindex pwd
 @item pwd
 Print the @value{GDBN} working directory.
@@ -3873,15 +3959,17 @@ Num     Type           Disp Enb  Address
 1.2                         y    0x080486ca in void foo<double>() at t.cc:8
 @end smallexample
 
-Each location can be individually enabled or disabled by passing
+You cannot delete the individual locations from a breakpoint.  However,
+each location can be individually enabled or disabled by passing
 @var{breakpoint-number}.@var{location-number} as argument to the
-@code{enable} and @code{disable} commands.  Note that you cannot
-delete the individual locations from the list, you can only delete the
-entire list of locations that belong to their parent breakpoint (with
-the @kbd{delete @var{num}} command, where @var{num} is the number of
-the parent breakpoint, 1 in the above example).  Disabling or enabling
-the parent breakpoint (@pxref{Disabling}) affects all of the locations
-that belong to that breakpoint.
+@code{enable} and @code{disable} commands.  It's also possible to
+@code{enable} and @code{disable} a range of @var{location-number}
+locations using a @var{breakpoint-number} and two @var{location-number}s,
+in increasing order, separated by a hyphen, like
+@kbd{@var{breakpoint-number}.@var{location-number1}-@var{location-number2}},
+in which case @value{GDBN} acts on all the locations in the range (inclusive).
+Disabling or enabling the parent breakpoint (@pxref{Disabling}) affects
+all of the locations that belong to that breakpoint.
 
 @cindex pending breakpoints
 It's quite common to have a breakpoint inside a shared library.
@@ -4370,6 +4458,26 @@ called @code{Constraint_Error} is define
 the command to use to catch such exceptions is @kbd{catch exception
 Pck.Constraint_Error}.
 
+@item handlers
+@kindex catch handlers
+@cindex Ada exception handlers catching
+@cindex catch Ada exceptions when handled
+An Ada exception being handled.  If an exception name is
+specified at the end of the command
+ (eg @kbd{catch handlers Program_Error}), the debugger will stop
+only when this specific exception is handled.
+Otherwise, the debugger stops execution when any Ada exception is handled.
+
+When inserting a handlers catchpoint on a user-defined
+exception whose name is identical to one of the exceptions
+defined by the language, the fully qualified name must be used
+as the exception name.  Otherwise, @value{GDBN} will assume that it
+should stop on the pre-defined exception rather than the
+user-defined one.  For instance, assuming an exception called
+ @code{Constraint_Error} is defined in package @code{Pck}, then the
+command to use to catch such exceptions handling is
+@kbd{catch handlers Pck.Constraint_Error}.
+
 @item exception unhandled
 @kindex catch exception unhandled
 An exception that was raised but is not handled by the program.
@@ -7845,6 +7953,22 @@ name of @file{/build/trunk/gcc/expr.c}, 
 Specifies the line that begins the body of the function @var{function}.
 For example, in C, this is the line with the open brace.
 
+By default, in C@t{++} and Ada, @var{function} is interpreted as
+specifying all functions named @var{function} in all scopes.  For
+C@t{++}, this means in all namespaces and classes.  For Ada, this
+means in all packages.
+
+For example, assuming a program with C@t{++} symbols named
+@code{A::B::func} and @code{B::func}, both commands @w{@kbd{break
+func}} and @w{@kbd{break B::func}} set a breakpoint on both symbols.
+
+Commands that accept a linespec let you override this with the
+@code{-qualified} option.  For example, @w{@kbd{break -qualified
+func}} sets a breakpoint on a free-function named @code{func} ignoring
+any C@t{++} class methods and namespace functions called @code{func}.
+
+@xref{Explicit Locations}.
+
 @item @var{function}:@var{label}
 Specifies the line where @var{label} appears in @var{function}.
 
@@ -7909,6 +8033,31 @@ on function locations unmodified by othe
 or @code{-line}) refer to the line that begins the body of the function.
 In C, for example, this is the line with the open brace.
 
+By default, in C@t{++} and Ada, @var{function} is interpreted as
+specifying all functions named @var{function} in all scopes.  For
+C@t{++}, this means in all namespaces and classes.  For Ada, this
+means in all packages.
+
+For example, assuming a program with C@t{++} symbols named
+@code{A::B::func} and @code{B::func}, both commands @w{@kbd{break
+-function func}} and @w{@kbd{break -function B::func}} set a
+breakpoint on both symbols.
+
+You can use the @kbd{-qualified} flag to override this (see below).
+
+@item -qualified
+
+This flag makes @value{GDBN} interpret a function name specified with
+@kbd{-function} as a complete fully-qualified name.
+
+For example, assuming a C@t{++} program with symbols named
+@code{A::B::func} and @code{B::func}, the @w{@kbd{break -qualified
+-function B::func}} command sets a breakpoint on @code{B::func}, only.
+
+(Note: the @kbd{-qualified} option can precede a linespec as well
+(@pxref{Linespec Locations}), so the particular example above could be
+simplified as @w{@kbd{break -qualified B::func}}.)
+
 @item -label @var{label}
 The value specifies the name of a label.  When the function
 name is not specified, the label is searched in the function of the currently
@@ -7922,7 +8071,7 @@ relative to the current line.
 @end table
 
 Explicit location options may be abbreviated by omitting any non-unique
-trailing characters from the option name, e.g., @code{break -s main.c -li 3}.
+trailing characters from the option name, e.g., @w{@kbd{break -s main.c -li 3}}.
 
 @node Address Locations
 @subsection Address Locations
@@ -9113,6 +9262,22 @@ If you ask to print an object whose cont
 by the debug information, @value{GDBN} will say @samp{<incomplete
 type>}.  @xref{Symbols, incomplete type}, for more about this.
 
+@cindex no debug info variables
+If you try to examine or use the value of a (global) variable for
+which @value{GDBN} has no type information, e.g., because the program
+includes no debug information, @value{GDBN} displays an error message.
+@xref{Symbols, unknown type}, for more about unknown types.  If you
+cast the variable to its declared type, @value{GDBN} gets the
+variable's value using the cast-to type as the variable's type.  For
+example, in a C program:
+
+@smallexample
+  (@value{GDBP}) p var
+  'var' has unknown type; cast it to its declared type
+  (@value{GDBP}) p (float) var
+  $1 = 3.14
+@end smallexample
+
 If you append @kbd{@@entry} string to a function parameter name you get its
 value at the time the function got called.  If the value is not available an
 error message is printed.  Entry values are available only with some compilers.
@@ -10878,6 +11043,11 @@ and vector registers (in the selected st
 Print the names and values of all registers, including floating-point
 and vector registers (in the selected stack frame).
 
+@item info registers @var{reggroup} @dots{}
+Print the name and value of the registers in each of the specified
+@var{reggroup}s.  The @var{reggoup} can be any of those returned by
+@code{maint print reggroups} (@pxref{Maintenance Commands}).
+
 @item info registers @var{regname} @dots{}
 Print the @dfn{relativized} value of each specified register @var{regname}.
 As discussed in detail below, register values are normally relative to
@@ -11454,7 +11624,9 @@ this writing, @sc{gnu}/Linux, FreeBSD, S
 
 On @sc{gnu}/Linux, this command can take into account the value of the
 file @file{/proc/@var{pid}/coredump_filter} when generating the core
-dump (@pxref{set use-coredump-filter}).
+dump (@pxref{set use-coredump-filter}), and by default honors the
+@code{VM_DONTDUMP} flag for mappings where it is present in the file
+@file{/proc/@var{pid}/smaps} (@pxref{set dump-excluded-mappings}).
 
 @kindex set use-coredump-filter
 @anchor{set use-coredump-filter}
@@ -11484,6 +11656,16 @@ value is currently @code{0x33}, which me
 (anonymous private mappings), @code{1} (anonymous shared mappings),
 @code{4} (ELF headers) and @code{5} (private huge pages) are active.
 This will cause these memory mappings to be dumped automatically.
+
+@kindex set dump-excluded-mappings
+@anchor{set dump-excluded-mappings}
+@item set dump-excluded-mappings on
+@itemx set dump-excluded-mappings off
+If @code{on} is specified, @value{GDBN} will dump memory mappings
+marked with the @code{VM_DONTDUMP} flag.  This flag is represented in
+the file @file{/proc/@var{pid}/smaps} with the acronym @code{dd}.
+
+The default value is @code{off}.
 @end table
 
 @node Character Sets
@@ -11831,6 +12013,8 @@ giant words (eight bytes)
 All values are interpreted in the current language.
 This means, for example, that if the current source language is C/C@t{++}
 then searching for the string ``hello'' includes the trailing '\0'.
+The null terminator can be removed from searching by using casts,
+e.g.: @samp{@{char[5]@}"hello"}.
 
 If the value size is not specified, it is taken from the
 value's type in the current language.
@@ -11880,7 +12064,11 @@ you get during debugging:
 (gdb) find &hello[0], +sizeof(hello), 'h', 'e', 'l', 'l', 'o'
 0x8049567 <hello.1620>
 0x804956d <hello.1620+6>
-2 patterns found
+2 patterns found.
+(gdb) find &hello[0], +sizeof(hello), @{char[5]@}"hello"
+0x8049567 <hello.1620>
+0x804956d <hello.1620+6>
+2 patterns found.
 (gdb) find /b1 &hello[0], +sizeof(hello), 'h', 0x65, 'l'
 0x8049567 <hello.1620>
 1 pattern found
@@ -14992,6 +15180,49 @@ the same notation that is used to declar
 also use the @value{GDBN} command-line word completion facilities to list the
 available choices, or to finish the type list for you.
 @xref{Completion,, Command Completion}, for details on how to do this.
+
+@item @r{Breakpoints in functions with ABI tags}
+
+The GNU C@t{++} compiler introduced the notion of ABI ``tags'', which
+correspond to changes in the ABI of a type, function, or variable that
+would not otherwise be reflected in a mangled name.  See
+@url{https://developers.redhat.com/blog/2015/02/05/gcc5-and-the-c11-abi/}
+for more detail.
+
+The ABI tags are visible in C@t{++} demangled names.  For example, a
+function that returns a std::string:
+
+@smallexample
+std::string function(int);
+@end smallexample
+
+@noindent
+when compiled for the C++11 ABI is marked with the @code{cxx11} ABI
+tag, and @value{GDBN} displays the symbol like this:
+
+@smallexample
+function[abi:cxx11](int)
+@end smallexample
+
+You can set a breakpoint on such functions simply as if they had no
+tag.  For example:
+
+@smallexample
+(gdb) b function(int)
+Breakpoint 2 at 0x40060d: file main.cc, line 10.
+(gdb) info breakpoints
+Num     Type           Disp Enb Address    What
+1       breakpoint     keep y   0x0040060d in function[abi:cxx11](int)
+                                           at main.cc:10
+@end smallexample
+
+On the rare occasion you need to disambiguate between different ABI
+tags, you can do so by simply including the ABI tag in the function
+name, like:
+
+@smallexample
+(@value{GDBP}) b ambiguous[abi:other_tag](int)
+@end smallexample
 @end table
 
 @node Decimal Floating Point
@@ -15376,9 +15607,6 @@ features from being implemented by @valu
 Method calls cannot be made via traits.
 
 @item
-Trait objects cannot be created or inspected.
-
-@item
 Operator overloading is not implemented.
 
 @item
@@ -16818,6 +17046,7 @@ file-management commands (@pxref{Files, 
 @cindex symbol names
 @cindex names of symbols
 @cindex quoting names
+@anchor{quoting names}
 Occasionally, you may need to refer to symbols that contain unusual
 characters, which @value{GDBN} ordinarily treats as word delimiters.  The
 most frequent case is in referring to static variables in other
@@ -16872,6 +17101,19 @@ cause @value{GDBN} to omit the methods.
 This command shows the current setting of method display when printing
 classes.
 
+@kindex set print type nested-type-limit
+@item set print type nested-type-limit @var{limit}
+@itemx set print type nested-type-limit unlimited
+Set the limit of displayed nested types that the type printer will
+show.  A @var{limit} of @code{unlimited} or @code{-1} will show all
+nested definitions.  By default, the type printer will not show any nested
+types defined in classes.
+
+@kindex show print type nested-type-limit
+@item show print type nested-type-limit
+This command shows the current display limit of nested types when
+printing classes.
+
 @kindex set print type typedefs
 @item set print type typedefs
 @itemx set print type typedefs on
@@ -16999,6 +17241,130 @@ names are substituted when printing othe
 @item T
 Print typedefs defined in the class.  This is the default, but the flag
 exists in case you change the default with @command{set print type typedefs}.
+
+@item o
+Print the offsets and sizes of fields in a struct, similar to what the
+@command{pahole} tool does.  This option implies the @code{/tm} flags.
+
+For example, given the following declarations:
+
+@smallexample
+struct tuv
+@{
+  int a1;
+  char *a2;
+  int a3;
+@};
+
+struct xyz
+@{
+  int f1;
+  char f2;
+  void *f3;
+  struct tuv f4;
+@};
+
+union qwe
+@{
+  struct tuv fff1;
+  struct xyz fff2;
+@};
+
+struct tyu
+@{
+  int a1 : 1;
+  int a2 : 3;
+  int a3 : 23;
+  char a4 : 2;
+  int64_t a5;
+  int a6 : 5;
+  int64_t a7 : 3;
+@};
+@end smallexample
+
+Issuing a @kbd{ptype /o struct tuv} command would print:
+
+@smallexample
+(@value{GDBP}) ptype /o struct tuv
+/* offset    |  size */  type = struct tuv @{
+/*    0      |     4 */    int a1;
+/* XXX  4-byte hole  */
+/*    8      |     8 */    char *a2;
+/*   16      |     4 */    int a3;
+
+                           /* total size (bytes):   24 */
+                         @}
+@end smallexample
+
+Notice the format of the first column of comments.  There, you can
+find two parts separated by the @samp{|} character: the @emph{offset},
+which indicates where the field is located inside the struct, in
+bytes, and the @emph{size} of the field.  Another interesting line is
+the marker of a @emph{hole} in the struct, indicating that it may be
+possible to pack the struct and make it use less space by reorganizing
+its fields.
+
+It is also possible to print offsets inside an union:
+
+@smallexample
+(@value{GDBP}) ptype /o union qwe
+/* offset    |  size */  type = union qwe @{
+/*                24 */    struct tuv @{
+/*    0      |     4 */        int a1;
+/* XXX  4-byte hole  */
+/*    8      |     8 */        char *a2;
+/*   16      |     4 */        int a3;
+
+                               /* total size (bytes):   24 */
+                           @} fff1;
+/*                40 */    struct xyz @{
+/*    0      |     4 */        int f1;
+/*    4      |     1 */        char f2;
+/* XXX  3-byte hole  */
+/*    8      |     8 */        void *f3;
+/*   16      |    24 */        struct tuv @{
+/*   16      |     4 */            int a1;
+/* XXX  4-byte hole  */
+/*   24      |     8 */            char *a2;
+/*   32      |     4 */            int a3;
+
+                                   /* total size (bytes):   24 */
+                               @} f4;
+
+                               /* total size (bytes):   40 */
+                           @} fff2;
+
+                           /* total size (bytes):   40 */
+                         @}
+@end smallexample
+
+In this case, since @code{struct tuv} and @code{struct xyz} occupy the
+same space (because we are dealing with an union), the offset is not
+printed for them.  However, you can still examine the offset of each
+of these structures' fields.
+
+Another useful scenario is printing the offsets of a struct containing
+bitfields:
+
+@smallexample
+(@value{GDBP}) ptype /o struct tyu
+/* offset    |  size */  type = struct tyu @{
+/*    0:31   |     4 */    int a1 : 1;
+/*    0:28   |     4 */    int a2 : 3;
+/*    0: 5   |     4 */    int a3 : 23;
+/*    3: 3   |     1 */    signed char a4 : 2;
+/* XXX  3-bit hole   */
+/* XXX  4-byte hole  */
+/*    8      |     8 */    int64_t a5;
+/*   16:27   |     4 */    int a6 : 5;
+/*   16:56   |     8 */    int64_t a7 : 3;
+
+                           /* total size (bytes):   24 */
+                         @}
+@end smallexample
+
+Note how the offset information is now extended to also include how
+many bits are left to be used in each bitfield.
 @end table
 
 @kindex ptype
@@ -17082,6 +17448,24 @@ but no definition for @code{struct foo} 
 ``Incomplete type'' is C terminology for data types that are not
 completely specified.
 
+@cindex unknown type
+Othertimes, information about a variable's type is completely absent
+from the debug information included in the program.  This most often
+happens when the program or library where the variable is defined
+includes no debug information at all.  @value{GDBN} knows the variable
+exists from inspecting the linker/loader symbol table (e.g., the ELF
+dynamic symbol table), but such symbols do not contain type
+information.  Inspecting the type of a (global) variable for which
+@value{GDBN} has no type information shows:
+
+@smallexample
+  (@value{GDBP}) ptype var
+  type = <data variable, no debug info>
+@end smallexample
+
+@xref{Variables, no debug info variables}, for how to print the values
+of such variables.
+
 @kindex info types
 @item info types @var{regexp}
 @itemx info types
@@ -17797,14 +18181,73 @@ Show the current setting of stack unwind
 
 @end table
 
-@cindex weak alias functions
-Sometimes, a function you wish to call is actually a @dfn{weak alias}
-for another function.  In such case, @value{GDBN} might not pick up
-the type information, including the types of the function arguments,
-which causes @value{GDBN} to call the inferior function incorrectly.
-As a result, the called function will function erroneously and may
-even crash.  A solution to that is to use the name of the aliased
-function instead.
+@subsection Calling functions with no debug info
+
+@cindex no debug info functions
+Sometimes, a function you wish to call is missing debug information.
+In such case, @value{GDBN} does not know the type of the function,
+including the types of the function's parameters.  To avoid calling
+the inferior function incorrectly, which could result in the called
+function functioning erroneously and even crash, @value{GDBN} refuses
+to call the function unless you tell it the type of the function.
+
+For prototyped (i.e.@: ANSI/ISO style) functions, there are two ways
+to do that.  The simplest is to cast the call to the function's
+declared return type.  For example:
+
+@smallexample
+(@value{GDBP}) p getenv ("PATH")
+'getenv' has unknown return type; cast the call to its declared return type
+(@value{GDBP}) p (char *) getenv ("PATH")
+$1 = 0x7fffffffe7ba "/usr/local/bin:/"...
+@end smallexample
+
+Casting the return type of a no-debug function is equivalent to
+casting the function to a pointer to a prototyped function that has a
+prototype that matches the types of the passed-in arguments, and
+calling that.  I.e., the call above is equivalent to:
+
+@smallexample
+(@value{GDBP}) p ((char * (*) (const char *)) getenv) ("PATH")
+@end smallexample
+
+@noindent
+and given this prototyped C or C++ function with float parameters:
+
+@smallexample
+float multiply (float v1, float v2) @{ return v1 * v2; @}
+@end smallexample
+
+@noindent
+these calls are equivalent:
+
+@smallexample
+(@value{GDBP}) p (float) multiply (2.0f, 3.0f)
+(@value{GDBP}) p ((float (*) (float, float)) multiply) (2.0f, 3.0f)
+@end smallexample
+
+If the function you wish to call is declared as unprototyped (i.e.@:
+old K&R style), you must use the cast-to-function-pointer syntax, so
+that @value{GDBN} knows that it needs to apply default argument
+promotions (promote float arguments to double).  @xref{ABI, float
+promotion}.  For example, given this unprototyped C function with
+float parameters, and no debug info:
+
+@smallexample
+float
+multiply_noproto (v1, v2)
+  float v1, v2;
+@{
+  return v1 * v2;
+@}
+@end smallexample
+
+@noindent
+you call it like this:
+
+@smallexample
+  (@value{GDBP}) p ((float (*) ()) multiply_noproto) (2.0f, 3.0f)
+@end smallexample
 
 @node Patching
 @section Patching Programs
@@ -18153,13 +18596,15 @@ will print to the console.
 
 @subsection Compiler search for the @code{compile} command
 
-@value{GDBN} needs to find @value{NGCC} for the inferior being debugged which
-may not be obvious for remote targets of different architecture than where
-@value{GDBN} is running.  Environment variable @code{PATH} (@code{PATH} from
-shell that executed @value{GDBN}, not the one set by @value{GDBN}
-command @code{set environment}).  @xref{Environment}.  @code{PATH} on
+@value{GDBN} needs to find @value{NGCC} for the inferior being debugged
+which may not be obvious for remote targets of different architecture
+than where @value{GDBN} is running.  Environment variable @code{PATH} on
 @value{GDBN} host is searched for @value{NGCC} binary matching the
-target architecture and operating system.
+target architecture and operating system.  This search can be overriden
+by @code{set compile-gcc} @value{GDBN} command below.  @code{PATH} is
+taken from shell that executed @value{GDBN}, it is not the value set by
+@value{GDBN} command @code{set environment}).  @xref{Environment}.
+
 
 Specifically @code{PATH} is searched for binaries matching regular expression
 @code{@var{arch}(-[^-]*)?-@var{os}-gcc} according to the inferior target being
@@ -18169,6 +18614,28 @@ example both @code{i386} and @code{x86_6
 for pattern @code{s390x?}.  @var{os} is currently supported only for
 pattern @code{linux(-gnu)?}.
 
+On Posix hosts the compiler driver @value{GDBN} needs to find also
+shared library @file{libcc1.so} from the compiler.  It is searched in
+default shared library search path (overridable with usual environment
+variable @code{LD_LIBRARY_PATH}), unrelated to @code{PATH} or @code{set
+compile-gcc} settings.  Contrary to it @file{libcc1plugin.so} is found
+according to the installation of the found compiler --- as possibly
+specified by the @code{set compile-gcc} command.
+
+@table @code
+@item set compile-gcc
+@cindex compile command driver filename override
+Set compilation command used for compiling and injecting code with the
+@code{compile} commands.  If this option is not set (it is set to
+an empty string), the search described above will occur --- that is the
+default.
+
+@item show compile-gcc
+Displays the current compile command @value{NGCC} driver filename.
+If set, it is the main command @command{gcc}, found usually for example
+under name @file{x86_64-linux-gnu-gcc}.
+@end table
+
 @node GDB Files
 @chapter @value{GDBN} Files
 
@@ -18295,6 +18762,15 @@ tables by using the @samp{-readnow} opti
 load symbol table information, if you want to be sure @value{GDBN} has the
 entire symbol table available.
 
+@cindex @code{-readnever}, option for symbol-file command
+@cindex never read symbols
+@cindex symbols, never read
+@item symbol-file @r{[} -readnever @r{]} @var{filename}
+@itemx file @r{[} -readnever @r{]} @var{filename}
+You can instruct @value{GDBN} to never read the symbolic information
+contained in @var{filename} by using the @samp{-readnever} option.
+@xref{--readnever}.
+
 @c FIXME: for now no mention of directories, since this seems to be in
 @c flux.  13mar1992 status is that in theory GDB would look either in
 @c current dir or in same dir as myprog; but issues like competing
@@ -18323,7 +18799,7 @@ the program is running.  To do this, use
 @kindex add-symbol-file
 @cindex dynamic linking
 @item add-symbol-file @var{filename} @var{address}
-@itemx add-symbol-file @var{filename} @var{address} @r{[} -readnow @r{]}
+@itemx add-symbol-file @var{filename} @var{address} @r{[} -readnow @r{|} -readnever @r{]}
 @itemx add-symbol-file @var{filename} @var{address} -s @var{section} @var{address} @dots{}
 The @code{add-symbol-file} command reads additional symbol table
 information from the file @var{filename}.  You would use this command
@@ -19243,12 +19719,16 @@ using @command{objcopy}.
 To create an index file, use the @code{save gdb-index} command:
 
 @table @code
-@item save gdb-index @var{directory}
+@item save gdb-index [-dwarf-5] @var{directory}
 @kindex save gdb-index
-Create an index file for each symbol file currently known by
-@value{GDBN}.  Each file is named after its corresponding symbol file,
-with @samp{.gdb-index} appended, and is written into the given
-@var{directory}.
+Create index files for all symbol files currently known by
+@value{GDBN}.  For each known @var{symbol-file}, this command by
+default creates it produces a single file
+@file{@var{symbol-file}.gdb-index}.  If you invoke this command with
+the @option{-dwarf-5} option, it produces 2 files:
+@file{@var{symbol-file}.debug_names} and
+@file{@var{symbol-file}.debug_str}.  The files are created in the
+given @var{directory}.
 @end table
 
 Once you have created an index file you can merge it into your symbol
@@ -19259,6 +19739,16 @@ file, here named @file{symfile}, using @
     --set-section-flags .gdb_index=readonly symfile symfile
 @end smallexample
 
+Or for @code{-dwarf-5}:
+
+@smallexample
+$ objcopy --dump-section .debug_str=symfile.debug_str.new symfile
+$ cat symfile.debug_str >>symfile.debug_str.new
+$ objcopy --add-section .debug_names=symfile.gdb-index \
+    --set-section-flags .debug_names=readonly \
+    --update-section .debug_str=symfile.debug_str.new symfile symfile
+@end smallexample
+
 @value{GDBN} will normally ignore older versions of @file{.gdb_index}
 sections that have been deprecated.  Usually they are deprecated because
 they are missing a new feature or have performance issues.
@@ -20252,6 +20742,15 @@ environment:
 $ gdbserver --wrapper env LD_PRELOAD=libtest.so -- :2222 ./testprog
 @end smallexample
 
+@cindex @option{--selftest}
+The @option{--selftest} option runs the self tests in @code{gdbserver}:
+
+@smallexample
+$ gdbserver --selftest
+Ran 2 unit tests, 0 failed
+@end smallexample
+
+These tests are disabled in release.
 @subsection Connecting to @code{gdbserver}
 
 The basic procedure for connecting to the remote target is:
@@ -20811,6 +21310,26 @@ are:
 @tab @code{QDisableRandomization}
 @tab @code{set disable-randomization}
 
+@item @code{startup-with-shell}
+@tab @code{QStartupWithShell}
+@tab @code{set startup-with-shell}
+
+@item @code{environment-hex-encoded}
+@tab @code{QEnvironmentHexEncoded}
+@tab @code{set environment}
+
+@item @code{environment-unset}
+@tab @code{QEnvironmentUnset}
+@tab @code{unset environment}
+
+@item @code{environment-reset}
+@tab @code{QEnvironmentReset}
+@tab @code{Reset the inferior environment (i.e., unset user-set variables)}
+
+@item @code{set-working-dir}
+@tab @code{QSetWorkingDir}
+@tab @code{set cwd}
+
 @item @code{conditional-breakpoints-packet}
 @tab @code{Z0 and Z1}
 @tab @code{Support for target-side breakpoint condition evaluation}
@@ -21787,12 +22306,12 @@ problem:
 
 @smallexample
 (@value{GDBP}) print 'cygwin1!__argv'
-$1 = 268572168
+'cygwin1!__argv' has unknown type; cast it to its declared type
 @end smallexample
 
 @smallexample
 (@value{GDBP}) x 'cygwin1!__argv'
-0x10021610:      "\230y\""
+'cygwin1!__argv' has unknown type; cast it to its declared type
 @end smallexample
 
 And two possible solutions:
@@ -22077,6 +22596,7 @@ acceptable commands.
 * M68K::                        Motorola M68K
 * MicroBlaze::			Xilinx MicroBlaze
 * MIPS Embedded::               MIPS Embedded
+* OpenRISC 1000::               OpenRISC 1000 (or1k)
 * PowerPC Embedded::            PowerPC Embedded
 * AVR::                         Atmel AVR
 * CRIS::                        CRIS
@@ -22286,6 +22806,38 @@ As usual, you can inquire about the @cod
 @samp{show mipsfpu}.
 @end table
 
+@node OpenRISC 1000
+@subsection OpenRISC 1000
+@cindex OpenRISC 1000
+
+@noindent
+The OpenRISC 1000 provides a free RISC instruction set architecture.  It is
+mainly provided as a soft-core which can run on Xilinx, Altera and other
+FPGA's.
+
+@value{GDBN} for OpenRISC supports the below commands when connecting to
+a target:
+
+@table @code
+
+@kindex target sim
+@item target sim
+
+Runs the builtin CPU simulator which can run very basic
+programs but does not support most hardware functions like MMU.
+For more complex use cases the user is advised to run an external
+target, and connect using @samp{target remote}.
+
+Example: @code{target sim}
+
+@item set debug or1k
+Toggle whether to display OpenRISC-specific debugging messages from the
+OpenRISC target support subsystem.
+
+@item show debug or1k
+Show whether OpenRISC-specific debugging messages are enabled.
+@end table
+
 @node PowerPC Embedded
 @subsection PowerPC Embedded
 
@@ -22460,6 +23012,7 @@ all uses of @value{GDBN} with the archit
 * SPU::                Cell Broadband Engine SPU architecture
 * PowerPC::
 * Nios II::
+* Sparc64::
 @end menu
 
 @node AArch64
@@ -22844,6 +23397,78 @@ target code in @value{GDBN}.
 Show the current setting of Nios II debugging messages.
 @end table
 
+@node Sparc64
+@subsection Sparc64
+@cindex Sparc64 support
+@cindex Application Data Integrity
+@subsubsection ADI Support
+
+The M7 processor supports an Application Data Integrity (ADI) feature that 
+detects invalid data accesses.  When software allocates memory and enables 
+ADI on the allocated memory, it chooses a 4-bit version number, sets the 
+version in the upper 4 bits of the 64-bit pointer to that data, and stores 
+the 4-bit version in every cacheline of that data.  Hardware saves the latter 
+in spare bits in the cache and memory hierarchy.  On each load and store, 
+the processor compares the upper 4 VA (virtual address) bits to the 
+cacheline's version.  If there is a mismatch, the processor generates a 
+version mismatch trap which can be either precise or disrupting.  The trap 
+is an error condition which the kernel delivers to the process as a SIGSEGV 
+signal.
+
+Note that only 64-bit applications can use ADI and need to be built with
+ADI-enabled.
+
+Values of the ADI version tags, which are in granularity of a 
+cacheline (64 bytes), can be viewed or modified. 
+
+
+@table @code
+@kindex adi examine
+@item adi (examine | x) [ / @var{n} ] @var{addr}
+
+The @code{adi examine} command displays the value of one ADI version tag per 
+cacheline. 
+
+@var{n} is a decimal integer specifying the number in bytes; the default 
+is 1.  It specifies how much ADI version information, at the ratio of 1:ADI 
+block size, to display. 
+
+@var{addr} is the address in user address space where you want @value{GDBN} 
+to begin displaying the ADI version tags. 
+
+Below is an example of displaying ADI versions of variable "shmaddr".
+
+@smallexample
+(@value{GDBP}) adi x/100 shmaddr
+   0xfff800010002c000:     0 0
+@end smallexample
+
+@kindex adi assign
+@item adi (assign | a) [ / @var{n} ] @var{addr} = @var{tag}
+
+The @code{adi assign} command is used to assign new ADI version tag 
+to an address. 
+
+@var{n} is a decimal integer specifying the number in bytes; 
+the default is 1.  It specifies how much ADI version information, at the 
+ratio of 1:ADI block size, to modify. 
+
+@var{addr} is the address in user address space where you want @value{GDBN} 
+to begin modifying the ADI version tags. 
+
+@var{tag} is the new ADI version tag.
+
+For example, do the following to modify then verify ADI versions of 
+variable "shmaddr":
+
+@smallexample
+(@value{GDBP}) adi a/100 shmaddr = 7
+(@value{GDBP}) adi x/100 shmaddr
+   0xfff800010002c000:     7 7
+@end smallexample
+
+@end table
+
 @node Controlling GDB
 @chapter Controlling @value{GDBN}
 
@@ -23979,6 +24604,12 @@ the serial line to the remote machine.  
 @value{GDBN} standard output stream. The default is off.
 @item show debug remote
 Displays the state of display of remote packets.
+
+@item set debug separate-debug-file
+Turns on or off display of debug output about separate debug file search.
+@item show debug separate-debug-file
+Displays the state of separate debug file search debug output.
+
 @item set debug serial
 Turns on or off display of @value{GDBN} serial debugging info. The
 default is off.
@@ -25404,6 +26035,10 @@ finish
 @item n
 next
 
+@kindex o @r{(SingleKey TUI key)}
+@item o
+nexti.  The shortcut letter @samp{o} stands for ``step Over''.
+
 @kindex q @r{(SingleKey TUI key)}
 @item q
 exit the SingleKey mode.
@@ -25416,6 +26051,10 @@ run
 @item s
 step
 
+@kindex i @r{(SingleKey TUI key)}
+@item i
+stepi.  The shortcut letter @samp{i} stands for ``step Into''.
+
 @kindex u @r{(SingleKey TUI key)}
 @item u
 up
@@ -26852,24 +27491,36 @@ corresponds to the frame's code address.
 @subsection @sc{gdb/mi} Thread Information
 
 Whenever @value{GDBN} has to report an information about a thread, it
-uses a tuple with the following fields:
+uses a tuple with the following fields.  The fields are always present unless
+stated otherwise.
 
 @table @code
 @item id
-The global numeric id assigned to the thread by @value{GDBN}.  This field is
-always present.
+The global numeric id assigned to the thread by @value{GDBN}.
 
 @item target-id
-Target-specific string identifying the thread.  This field is always present.
+The target-specific string identifying the thread.
 
 @item details
 Additional information about the thread provided by the target.
 It is supposed to be human-readable and not interpreted by the
 frontend.  This field is optional.
 
+@item name
+The name of the thread.  If the user specified a name using the
+@code{thread name} command, then this name is given.  Otherwise, if
+@value{GDBN} can extract the thread name from the target, then that
+name is given.  If @value{GDBN} cannot find the thread name, then this
+field is omitted.
+
 @item state
-Either @samp{stopped} or @samp{running}, depending on whether the
-thread is presently running.  This field is always present.
+The execution state of the thread, either @samp{stopped} or @samp{running},
+depending on whether the thread is presently running.
+
+@item frame
+The stack frame currently executing in the thread.  This field is only present
+if the thread is stopped.  Its format is documented in
+@ref{GDB/MI Frame Information}.
 
 @item core
 The value of this field is an integer number of the processor core the
@@ -26882,7 +27533,9 @@ thread was last seen on.  This field is 
 Whenever a @code{*stopped} record is emitted because the program
 stopped after hitting an exception catchpoint (@pxref{Set Catchpoints}),
 @value{GDBN} provides the name of the exception that was raised via
-the @code{exception-name} field.
+the @code{exception-name} field.  Also, for exceptions that were raised
+with an exception message, @value{GDBN} provides that message via
+the @code{exception-message} field.
 
 @c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 @node GDB/MI Simple Examples
@@ -28084,51 +28737,18 @@ about all threads.
 
 @subsubheading Result
 
-The result is a list of threads.  The following attributes are
-defined for a given thread:
+The result contains the following attributes:
 
 @table @samp
-@item current
-This field exists only for the current thread.  It has the value @samp{*}.
-
-@item id
-The global identifier that @value{GDBN} uses to refer to the thread.
-
-@item target-id
-The identifier that the target uses to refer to the thread.
-
-@item details
-Extra information about the thread, in a target-specific format.  This
-field is optional.
-
-@item name
-The name of the thread.  If the user specified a name using the
-@code{thread name} command, then this name is given.  Otherwise, if
-@value{GDBN} can extract the thread name from the target, then that
-name is given.  If @value{GDBN} cannot find the thread name, then this
-field is omitted.
-
-@item frame
-The stack frame currently executing in the thread.
-
-@item state
-The thread's state.  The @samp{state} field may have the following
-values:
-
-@table @code
-@item stopped
-The thread is stopped.  Frame information is available for stopped
-threads.
-
-@item running
-The thread is running.  There's no frame information for running
-threads.
-
-@end table
+@item threads
+A list of threads.  The format of the elements of the list is described in
+@ref{GDB/MI Thread Information}.
 
-@item core
-If @value{GDBN} can find the CPU core on which this thread is running,
-then this field is the core identifier.  This field is optional.
+@item current-thread-id
+The global id of the currently selected thread.  This field is omitted if there
+is no selected thread (for example, when the selected inferior is not running,
+and therefore has no threads) or if a @var{thread-id} argument was passed to
+the command.
 
 @end table
 
@@ -34002,6 +34622,21 @@ Branch trace (@pxref{Branch Trace Format
 @pxref{Branch Trace Configuration Format})
 @end itemize
 
+@item MPFR
+@anchor{MPFR}
+@value{GDBN} can use the GNU MPFR multiple-precision floating-point
+library.  This library may be included with your operating system
+distribution; if it is not, you can get the latest version from
+@url{http://www.mpfr.org}.  The @file{configure} script will search
+for this library in several standard locations; if it is installed
+in an unusual path, you can use the @option{--with-libmpfr-prefix}
+option to specify its location.
+
+GNU MPFR is used to emulate target floating-point arithmetic during
+expression evaluation when the target uses different floating-point
+formats than the host.  If GNU MPFR it is not available, @value{GDBN}
+will fall back to using host floating-point arithmetic.
+
 @item zlib
 @cindex compressed debug sections 
 @value{GDBN} will use the @samp{zlib} library, if available, to read
@@ -34697,11 +35332,21 @@ checksum.
 Print the entire architecture configuration.  The optional argument
 @var{file} names the file where the output goes.
 
-@kindex maint print c-tdesc
+@kindex maint print c-tdesc @r{[}@var{file}@r{]}
 @item maint print c-tdesc
-Print the current target description (@pxref{Target Descriptions}) as
-a C source file.  The created source file can be used in @value{GDBN}
-when an XML parser is not available to parse the description.
+Print the target description (@pxref{Target Descriptions}) as
+a C source file.  By default, the target description is for the current
+target, but if the optional argument @var{file} is provided, that file
+is used to produce the description.  The @var{file} should be an XML
+document, of the form described in @ref{Target Description Format}.
+The created source file is built into @value{GDBN} when @value{GDBN} is
+built again.  This command is used by developers after they add or
+modify XML target descriptions.
+
+@kindex maint check xml-descriptions
+@item maint check xml-descriptions @var{dir}
+Check that the target descriptions dynamically created by @value{GDBN}
+equal the descriptions created from XML files found in @var{dir}.
 
 @kindex maint print dummy-frames
 @item maint print dummy-frames
@@ -34838,8 +35483,16 @@ data structures, including its flags and
 
 @kindex maint selftest
 @cindex self tests
+@item maint selftest @r{[}@var{filter}@r{]}
 Run any self tests that were compiled in to @value{GDBN}.  This will
 print a message showing how many tests were run, and how many failed.
+If a @var{filter} is passed, only the tests with @var{filter} in their
+name will by ran.
+
+@kindex "maint info selftests"
+@cindex self tests
+@item maint info selftests
+List the selftests compiled in to @value{GDBN}.
 
 @kindex maint set dwarf always-disassemble
 @kindex maint show dwarf always-disassemble
@@ -35848,6 +36501,19 @@ for an error
 for success
 @end table
 
+@item vMustReplyEmpty
+@cindex @samp{vMustReplyEmpty} packet
+The correct reply to an unknown @samp{v} packet is to return the empty
+string, however, some older versions of @command{gdbserver} would
+incorrectly return @samp{OK} for unknown @samp{v} packets.
+
+The @samp{vMustReplyEmpty} is used as a feature test to check how
+@command{gdbserver} handles unknown packets, it is important that this
+packet be handled in the same way as other unknown @samp{v} packets.
+If this packet is handled differently to other unknown @samp{v}
+packets then it is possile that @value{GDBN} may run into problems in
+other areas, specifically around use of @samp{vFile:setfs:}.
+
 @item vRun;@var{filename}@r{[};@var{argument}@r{]}@dots{}
 @cindex @samp{vRun} packet
 Run the program @var{filename}, passing it each @var{argument} on its
@@ -35953,7 +36619,7 @@ separators.  Each expression has the fol
 
 @item X @var{len},@var{expr}
 @var{len} is the length of the bytecode expression and @var{expr} is the
-actual conditional expression in bytecode form.
+actual commands expression in bytecode form.
 
 @end table
 
@@ -36443,6 +37109,156 @@ by supplying an appropriate @samp{qSuppo
 This should only be done on targets that actually support disabling
 address space randomization.
 
+@item QStartupWithShell:@var{value}
+@cindex startup with shell, remote request
+@cindex @samp{QStartupWithShell} packet
+On UNIX-like targets, it is possible to start the inferior using a
+shell program.  This is the default behavior on both @value{GDBN} and
+@command{gdbserver} (@pxref{set startup-with-shell}).  This packet is
+used to inform @command{gdbserver} whether it should start the
+inferior using a shell or not.
+
+If @var{value} is @samp{0}, @command{gdbserver} will not use a shell
+to start the inferior.  If @var{value} is @samp{1},
+@command{gdbserver} will use a shell to start the inferior.  All other
+values are considered an error.
+
+This packet is only available in extended mode (@pxref{extended
+mode}).
+
+Reply:
+@table @samp
+@item OK
+The request succeeded.
+
+@item E @var{nn}
+An error occurred.  The error number @var{nn} is given as hex digits.
+@end table
+
+This packet is not probed by default; the remote stub must request it,
+by supplying an appropriate @samp{qSupported} response
+(@pxref{qSupported}).  This should only be done on targets that
+actually support starting the inferior using a shell.
+
+Use of this packet is controlled by the @code{set startup-with-shell}
+command; @pxref{set startup-with-shell}.
+
+@item QEnvironmentHexEncoded:@var{hex-value}
+@anchor{QEnvironmentHexEncoded}
+@cindex set environment variable, remote request
+@cindex @samp{QEnvironmentHexEncoded} packet
+On UNIX-like targets, it is possible to set environment variables that
+will be passed to the inferior during the startup process.  This
+packet is used to inform @command{gdbserver} of an environment
+variable that has been defined by the user on @value{GDBN} (@pxref{set
+environment}).
+
+The packet is composed by @var{hex-value}, an hex encoded
+representation of the @var{name=value} format representing an
+environment variable.  The name of the environment variable is
+represented by @var{name}, and the value to be assigned to the
+environment variable is represented by @var{value}.  If the variable
+has no value (i.e., the value is @code{null}), then @var{value} will
+not be present.
+
+This packet is only available in extended mode (@pxref{extended
+mode}).
+
+Reply:
+@table @samp
+@item OK
+The request succeeded.
+@end table
+
+This packet is not probed by default; the remote stub must request it,
+by supplying an appropriate @samp{qSupported} response
+(@pxref{qSupported}).  This should only be done on targets that
+actually support passing environment variables to the starting
+inferior.
+
+This packet is related to the @code{set environment} command;
+@pxref{set environment}.
+
+@item QEnvironmentUnset:@var{hex-value}
+@anchor{QEnvironmentUnset}
+@cindex unset environment variable, remote request
+@cindex @samp{QEnvironmentUnset} packet
+On UNIX-like targets, it is possible to unset environment variables
+before starting the inferior in the remote target.  This packet is
+used to inform @command{gdbserver} of an environment variable that has
+been unset by the user on @value{GDBN} (@pxref{unset environment}).
+
+The packet is composed by @var{hex-value}, an hex encoded
+representation of the name of the environment variable to be unset.
+
+This packet is only available in extended mode (@pxref{extended
+mode}).
+
+Reply:
+@table @samp
+@item OK
+The request succeeded.
+@end table
+
+This packet is not probed by default; the remote stub must request it,
+by supplying an appropriate @samp{qSupported} response
+(@pxref{qSupported}).  This should only be done on targets that
+actually support passing environment variables to the starting
+inferior.
+
+This packet is related to the @code{unset environment} command;
+@pxref{unset environment}.
+
+@item QEnvironmentReset
+@anchor{QEnvironmentReset}
+@cindex reset environment, remote request
+@cindex @samp{QEnvironmentReset} packet
+On UNIX-like targets, this packet is used to reset the state of
+environment variables in the remote target before starting the
+inferior.  In this context, reset means unsetting all environment
+variables that were previously set by the user (i.e., were not
+initially present in the environment).  It is sent to
+@command{gdbserver} before the @samp{QEnvironmentHexEncoded}
+(@pxref{QEnvironmentHexEncoded}) and the @samp{QEnvironmentUnset}
+(@pxref{QEnvironmentUnset}) packets.
+
+This packet is only available in extended mode (@pxref{extended
+mode}).
+
+Reply:
+@table @samp
+@item OK
+The request succeeded.
+@end table
+
+This packet is not probed by default; the remote stub must request it,
+by supplying an appropriate @samp{qSupported} response
+(@pxref{qSupported}).  This should only be done on targets that
+actually support passing environment variables to the starting
+inferior.
+
+@item QSetWorkingDir:@r{[}@var{directory}@r{]}
+@anchor{QSetWorkingDir packet}
+@cindex set working directory, remote request
+@cindex @samp{QSetWorkingDir} packet
+This packet is used to inform the remote server of the intended
+current working directory for programs that are going to be executed.
+
+The packet is composed by @var{directory}, an hex encoded
+representation of the directory that the remote inferior will use as
+its current working directory.  If @var{directory} is an empty string,
+the remote server should reset the inferior's current working
+directory to its original, empty value.
+
+This packet is only available in extended mode (@pxref{extended
+mode}).
+
+Reply:
+@table @samp
+@item OK
+The request succeeded.
+@end table
+
 @item qfThreadInfo
 @itemx qsThreadInfo
 @cindex list active threads, remote request
@@ -40358,18 +41174,17 @@ The formal DTD for memory map format is 
 <!-- .................................... .............. -->
 <!-- memory-map.dtd -->
 <!-- memory-map: Root element with versioning -->
-<!ELEMENT memory-map (memory | property)>
+<!ELEMENT memory-map (memory)*>
 <!ATTLIST memory-map    version CDATA   #FIXED  "1.0.0">
-<!ELEMENT memory (property)>
+<!ELEMENT memory (property)*>
 <!-- memory: Specifies a memory region,
              and its type, or device. -->
-<!ATTLIST memory        type    CDATA   #REQUIRED
+<!ATTLIST memory        type    (ram|rom|flash) #REQUIRED
                         start   CDATA   #REQUIRED
-                        length  CDATA   #REQUIRED
-                        device  CDATA   #IMPLIED>
+                        length  CDATA   #REQUIRED>
 <!-- property: Generic attribute tag -->
 <!ELEMENT property (#PCDATA | property)*>
-<!ATTLIST property      name    CDATA   #REQUIRED>
+<!ATTLIST property      name    (blocksize) #REQUIRED>
 @end smallexample
 
 @node Thread List Format
@@ -40396,7 +41211,9 @@ identifies the thread (@pxref{thread-id 
 the thread was last executing on.  The @samp{name} attribute, if
 present, specifies the human-readable name of the thread.  The content
 of the of @samp{thread} element is interpreted as human-readable
-auxiliary information.
+auxiliary information.  The @samp{handle} attribute, if present,
+is a hex encoded representation of the thread handle.
+
 
 @node Traceframe Info Format
 @section Traceframe Info Format
@@ -40964,10 +41781,13 @@ architecture's normal floating point for
 @var{bitsize}.  The default is @code{int}.
 
 @item group
-The register group to which this register belongs.  It must
-be either @code{general}, @code{float}, or @code{vector}.  If no
-@var{group} is specified, @value{GDBN} will not display the register
-in @code{info registers}.
+The register group to which this register belongs.  It can be one of the
+standard register groups @code{general}, @code{float}, @code{vector} or an
+arbitrary string.  Group names should be limited to alphanumeric characters.
+If a group name is made up of multiple words the words may be separated by
+hyphens; e.g.@: @code{special-group} or @code{ultra-special-group}.  If no
+@var{group} is specified, @value{GDBN} will not display the register in
+@code{info registers}.
 
 @end table
 
@@ -41109,6 +41929,7 @@ registers using the capitalization used 
 * M68K Features::
 * NDS32 Features::
 * Nios II Features::
+* OpenRISC 1000 Features::
 * PowerPC Features::
 * S/390 and System z Features::
 * Sparc Features::
@@ -41395,6 +42216,14 @@ targets.  It should contain the 32 core 
 @samp{pc}, and the 16 control registers (@samp{status} through
 @samp{mpuacc}).
 
+@node OpenRISC 1000 Features
+@subsection Openrisc 1000 Features
+@cindex target descriptions, OpenRISC 1000 features
+
+The @samp{org.gnu.gdb.or1k.group0} feature is required for OpenRISC 1000
+targets.  It should contain the 32 general purpose registers (@samp{r0}
+through @samp{r31}), @samp{ppc}, @samp{npc} and @samp{sr}.
+
 @node PowerPC Features
 @subsection PowerPC Features
 @cindex target descriptions, PowerPC features
@@ -41467,6 +42296,14 @@ through @samp{f15} to present the 128-bi
 contain the 128-bit wide vector registers @samp{v16} through
 @samp{v31}.
 
+The @samp{org.gnu.gdb.s390.gs} feature is optional.  It should contain
+the 64-bit wide guarded-storage-control registers @samp{gsd},
+@samp{gssm}, and @samp{gsepla}.
+
+The @samp{org.gnu.gdb.s390.gsbc} feature is optional.  It should contain
+the 64-bit wide guarded-storage broadcast control registers
+@samp{bc_gsd}, @samp{bc_gssm}, and @samp{bc_gsepla}.
+
 @node Sparc Features
 @subsection Sparc Features
 @cindex target descriptions, sparc32 features
@@ -42437,7 +43274,7 @@ Richard M. Stallman and Roland H. Pesch,
 
 @format
 @c man begin SYNOPSIS gcore
-gcore [-o @var{filename}] @var{pid}
+gcore [-a] [-o @var{filename}] @var{pid}
 @c man end
 @end format
 
@@ -42451,6 +43288,13 @@ running without any change.
 
 @c man begin OPTIONS gcore
 @table @env
+@item -a
+Dump all memory mappings.  The actual effect of this option depends on
+the Operating System.  On @sc{gnu}/Linux, it will disable
+@code{use-coredump-filter} (@pxref{set use-coredump-filter}) and
+enable @code{dump-excluded-mappings} (@pxref{set
+dump-excluded-mappings}).
+
 @item -o @var{filename}
 The optional argument
 @var{filename} specifies the file name where to put the core dump.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/guile.texi ./gdb/doc/guile.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/guile.texi	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/guile.texi	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-@c Copyright (C) 2008-2017 Free Software Foundation, Inc.
+@c Copyright (C) 2008-2018 Free Software Foundation, Inc.
 @c Permission is granted to copy, distribute and/or modify this document
 @c under the terms of the GNU Free Documentation License, Version 1.3 or
 @c any later version published by the Free Software Foundation; with the
@@ -2769,7 +2769,7 @@ This domain contains names of labels (fo
 This domain holds a subset of the @code{SYMBOLS_VAR_DOMAIN}; it
 contains everything minus functions and types.
 
-@item SYMBOL_FUNCTION_DOMAIN
+@item SYMBOL_FUNCTIONS_DOMAIN
 This domain contains all functions.
 
 @item SYMBOL_TYPES_DOMAIN
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/Makefile.in ./gdb/doc/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/Makefile.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/Makefile.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-##Copyright (C) 1991-2017 Free Software Foundation, Inc.
+##Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
 # Makefile for GDB documentation.
 # This file is part of GDB.
@@ -178,9 +178,6 @@ MAN1S = gdb.1 gdbserver.1 gcore.1
 MAN5S = gdbinit.5
 MANS = $(MAN1S) $(MAN5S)
 
-# Host-dependent makefile fragment comes in here.
-@host_makefile_frag@
-# End of host-dependent makefile fragment
 HAVE_NATIVE_GCORE_TARGET = @HAVE_NATIVE_GCORE_TARGET@
 
 ###
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/observer.texi ./gdb/doc/observer.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/observer.texi	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/observer.texi	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
 
 @c This file is part of the GDB manual.
 @c
-@c Copyright (C) 2003-2017 Free Software Foundation, Inc.
+@c Copyright (C) 2003-2018 Free Software Foundation, Inc.
 @c
 @c See the file gdbint.texinfo for copying conditions.
 @c
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/python.texi ./gdb/doc/python.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/python.texi	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/python.texi	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-@c Copyright (C) 2008-2017 Free Software Foundation, Inc.
+@c Copyright (C) 2008-2018 Free Software Foundation, Inc.
 @c Permission is granted to copy, distribute and/or modify this document
 @c under the terms of the GNU Free Documentation License, Version 1.3 or
 @c any later version published by the Free Software Foundation; with the
@@ -243,6 +243,23 @@ were no breakpoints.  This peculiarity w
 @code{gdb.breakpoints} returns an empty sequence in this case.
 @end defun
 
+@defun gdb.rbreak (regex @r{[}, minsyms @r{[}, throttle, @r{[}, symtabs @r{]]]})
+Return a Python list holding a collection of newly set
+@code{gdb.Breakpoint} objects matching function names defined by the
+@var{regex} pattern.  If the @var{minsyms} keyword is @code{True}, all
+system functions (those not explicitly defined in the inferior) will
+also be included in the match.  The @var{throttle} keyword takes an
+integer that defines the maximum number of pattern matches for
+functions matched by the @var{regex} pattern.  If the number of
+matches exceeds the integer value of @var{throttle}, a
+@code{RuntimeError} will be raised and no breakpoints will be created.
+If @var{throttle} is not defined then there is no imposed limit on the
+maximum number of matches and breakpoints to be created.  The
+@var{symtabs} keyword takes a Python iterable that yields a collection
+of @code{gdb.Symtab} objects and will restrict the search to those
+functions only contained within the @code{gdb.Symtab} objects.
+@end defun
+
 @findex gdb.parameter
 @defun gdb.parameter (parameter)
 Return the value of a @value{GDBN} @var{parameter} given by its name,
@@ -2785,6 +2802,13 @@ containing the address where the pattern
 the pattern could not be found.
 @end defun
 
+@findex Inferior.thread_from_thread_handle
+@defun Inferior.thread_from_thread_handle (thread_handle)
+Return the thread object corresponding to @var{thread_handle}, a thread
+library specific data structure such as @code{pthread_t} for pthreads
+library implementations.
+@end defun
+
 @node Events In Python
 @subsubsection Events In Python
 @cindex inferior events in Python
@@ -2989,6 +3013,39 @@ invalid state; that is, the @code{is_val
 This event carries no payload.  It is emitted each time @value{GDBN}
 presents a prompt to the user.
 
+@item events.new_inferior
+This is emitted when a new inferior is created.  Note that the
+inferior is not necessarily running; in fact, it may not even have an
+associated executable.
+
+The event is of type @code{gdb.NewInferiorEvent}.  This has a single
+attribute:
+
+@defvar NewInferiorEvent.inferior
+The new inferior, a @code{gdb.Inferior} object.
+@end defvar
+
+@item events.inferior_deleted
+This is emitted when an inferior has been deleted.  Note that this is
+not the same as process exit; it is notified when the inferior itself
+is removed, say via @code{remove-inferiors}.
+
+The event is of type @code{gdb.InferiorDeletedEvent}.  This has a single
+attribute:
+
+@defvar NewInferiorEvent.inferior
+The inferior that is being removed, a @code{gdb.Inferior} object.
+@end defvar
+
+@item events.new_thread
+This is emitted when @value{GDBN} notices a new thread.  The event is of
+type @code{gdb.NewThreadEvent}, which extends @code{gdb.ThreadEvent}.
+This has a single attribute:
+
+@defvar NewThreadEvent.inferior_thread
+The new thread.
+@end defvar
+
 @end table
 
 @node Threads In Python
@@ -4559,7 +4616,7 @@ This domain holds a subset of the @code{
 contains everything minus functions and types.
 
 @vindex SYMBOL_FUNCTIONS_DOMAIN
-@item gdb.SYMBOL_FUNCTION_DOMAIN
+@item gdb.SYMBOL_FUNCTIONS_DOMAIN
 This domain contains all functions.
 
 @vindex SYMBOL_TYPES_DOMAIN
@@ -4821,27 +4878,55 @@ represented as Python @code{Long} values
 Python code can manipulate breakpoints via the @code{gdb.Breakpoint}
 class.
 
-@defun Breakpoint.__init__ (spec @r{[}, type @r{[}, wp_class @r{[},internal @r{[},temporary@r{]]]]})
-Create a new breakpoint according to @var{spec}, which is a string
-naming the location of the breakpoint, or an expression that defines a
-watchpoint.  The contents can be any location recognized by the
-@code{break} command, or in the case of a watchpoint, by the
-@code{watch} command.  The optional @var{type} denotes the breakpoint
-to create from the types defined later in this chapter.  This argument
-can be either @code{gdb.BP_BREAKPOINT} or @code{gdb.BP_WATCHPOINT}; it
-defaults to @code{gdb.BP_BREAKPOINT}.  The optional @var{internal}
-argument allows the breakpoint to become invisible to the user.  The
-breakpoint will neither be reported when created, nor will it be
-listed in the output from @code{info breakpoints} (but will be listed
-with the @code{maint info breakpoints} command).  The optional
-@var{temporary} argument makes the breakpoint a temporary breakpoint.
-Temporary breakpoints are deleted after they have been hit.  Any
-further access to the Python breakpoint after it has been hit will
-result in a runtime error (as that breakpoint has now been
-automatically deleted).  The optional @var{wp_class} argument defines
-the class of watchpoint to create, if @var{type} is
-@code{gdb.BP_WATCHPOINT}.  If a watchpoint class is not provided, it
-is assumed to be a @code{gdb.WP_WRITE} class.
+A breakpoint can be created using one of the two forms of the
+@code{gdb.Breakpoint} constructor.  The first one accepts a string
+like one would pass to the @code{break}
+(@pxref{Set Breaks,,Setting Breakpoints}) and @code{watch}
+(@pxref{Set Watchpoints, , Setting Watchpoints}) commands, and can be used to
+create both breakpoints and watchpoints.  The second accepts separate Python
+arguments similar to @ref{Explicit Locations}, and can only be used to create
+breakpoints.
+
+@defun Breakpoint.__init__ (spec @r{[}, type @r{][}, wp_class @r{][}, internal @r{][}, temporary @r{][}, qualified @r{]})
+Create a new breakpoint according to @var{spec}, which is a string naming the
+location of a breakpoint, or an expression that defines a watchpoint.  The
+string should describe a location in a format recognized by the @code{break}
+command (@pxref{Set Breaks,,Setting Breakpoints}) or, in the case of a
+watchpoint, by the @code{watch} command
+(@pxref{Set Watchpoints, , Setting Watchpoints}).
+
+The optional @var{type} argument specifies the type of the breakpoint to create,
+as defined below.
+
+The optional @var{wp_class} argument defines the class of watchpoint to create,
+if @var{type} is @code{gdb.BP_WATCHPOINT}.  If @var{wp_class} is omitted, it
+defaults to @code{gdb.WP_WRITE}.
+
+The optional @var{internal} argument allows the breakpoint to become invisible
+to the user.  The breakpoint will neither be reported when created, nor will it
+be listed in the output from @code{info breakpoints} (but will be listed with
+the @code{maint info breakpoints} command).
+
+The optional @var{temporary} argument makes the breakpoint a temporary
+breakpoint.  Temporary breakpoints are deleted after they have been hit.  Any
+further access to the Python breakpoint after it has been hit will result in a
+runtime error (as that breakpoint has now been automatically deleted).
+
+The optional @var{qualified} argument is a boolean that allows interpreting
+the function passed in @code{spec} as a fully-qualified name.  It is equivalent
+to @code{break}'s @code{-qualified} flag (@pxref{Linespec Locations} and
+@ref{Explicit Locations}).
+
+@end defun
+
+@defun Breakpoint.__init__ (@r{[} source @r{][}, function @r{][}, label @r{][}, line @r{]}, @r{][} internal @r{][}, temporary @r{][}, qualified @r{]})
+This second form of creating a new breakpoint specifies the explicit
+location (@pxref{Explicit Locations}) using keywords.  The new breakpoint will
+be created in the specified source file @var{source}, at the specified
+@var{function}, @var{label} and @var{line}.
+
+@var{internal}, @var{temporary} and @var{qualified} have the same usage as
+explained previously.
 @end defun
 
 The available types are represented by constants defined in the @code{gdb}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/refcard.tex ./gdb/doc/refcard.tex
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/refcard.tex	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/refcard.tex	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%% gdb-refcard.tex %%%%%%%%%%%%%%%%
 
 %This file is TeX source for a reference card describing GDB, the GNU debugger.
-%Copyright (C) 1991-2017 Free Software Foundation, Inc.
+%Copyright (C) 1991-2018 Free Software Foundation, Inc.
 %Permission is granted to make and distribute verbatim copies of
 %this reference provided the copyright notices and permission notices
 %are preserved on all copies.
@@ -307,7 +307,7 @@ shell {\it cmd}&execute arbitrary shell 
 \line{\smrm \opt{ } surround optional arguments \hfill $\ldots$ show
 one or more arguments}
 \vskip\baselineskip
-\centerline{\smrm \copyright 1998-2017 Free Software Foundation, Inc.\qquad Permissions on back}
+\centerline{\smrm \copyright 1998-2018 Free Software Foundation, Inc.\qquad Permissions on back}
 \eject
 \sec Breakpoints and Watchpoints;
 break \opt{\it file\tt:}{\it line}\par
@@ -632,7 +632,7 @@ statement.\cr 
 
 \vfill
 {\smrm\parskip=6pt
-Copyright \copyright 1991-2017 Free Software Foundation, Inc.
+Copyright \copyright 1991-2018 Free Software Foundation, Inc.
 Author: Roland H. Pesch
 
 The author assumes no responsibility for any errors on this card.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/stabs.info ./gdb/doc/stabs.info
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/stabs.info	2018-01-02 02:06:55.000000000 +0000
+++ ./gdb/doc/stabs.info	2018-01-09 02:08:33.000000000 +0000
@@ -1,6 +1,6 @@
 This is stabs.info, produced by makeinfo version 6.3 from stabs.texinfo.
 
-Copyright (C) 1992-2017 Free Software Foundation, Inc.  Contributed by
+Copyright (C) 1992-2018 Free Software Foundation, Inc.  Contributed by
 Cygnus Support.  Written by Julia Menapace, Jim Kingdon, and David
 MacKenzie.
 
@@ -17,7 +17,7 @@ END-INFO-DIR-ENTRY
 
    This document describes the stabs debugging symbol tables.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.  Contributed
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.  Contributed
 by Cygnus Support.  Written by Julia Menapace, Jim Kingdon, and David
 MacKenzie.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/stabs.texinfo ./gdb/doc/stabs.texinfo
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doc/stabs.texinfo	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doc/stabs.texinfo	2018-01-09 02:04:57.000000000 +0000
@@ -17,7 +17,7 @@
 @end direntry
 
 @copying
-Copyright @copyright{} 1992-2017 Free Software Foundation, Inc.
+Copyright @copyright{} 1992-2018 Free Software Foundation, Inc.
 Contributed by Cygnus Support.  Written by Julia Menapace, Jim Kingdon,
 and David MacKenzie.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doublest.c ./gdb/doublest.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doublest.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doublest.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,880 +0,0 @@
-/* Floating point routines for GDB, the GNU debugger.
-
-   Copyright (C) 1986-2017 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/>.  */
-
-/* Support for converting target fp numbers into host DOUBLEST format.  */
-
-/* XXX - This code should really be in libiberty/floatformat.c,
-   however configuration issues with libiberty made this very
-   difficult to do in the available time.  */
-
-#include "defs.h"
-#include "doublest.h"
-#include "floatformat.h"
-#include "gdbtypes.h"
-#include <math.h>		/* ldexp */
-#include <algorithm>
-
-/* The odds that CHAR_BIT will be anything but 8 are low enough that I'm not
-   going to bother with trying to muck around with whether it is defined in
-   a system header, what we do if not, etc.  */
-#define FLOATFORMAT_CHAR_BIT 8
-
-/* The number of bytes that the largest floating-point type that we
-   can convert to doublest will need.  */
-#define FLOATFORMAT_LARGEST_BYTES 16
-
-/* Extract a field which starts at START and is LEN bytes long.  DATA and
-   TOTAL_LEN are the thing we are extracting it from, in byteorder ORDER.  */
-static unsigned long
-get_field (const bfd_byte *data, enum floatformat_byteorders order,
-	   unsigned int total_len, unsigned int start, unsigned int len)
-{
-  unsigned long result;
-  unsigned int cur_byte;
-  int cur_bitshift;
-
-  /* Caller must byte-swap words before calling this routine.  */
-  gdb_assert (order == floatformat_little || order == floatformat_big);
-
-  /* Start at the least significant part of the field.  */
-  if (order == floatformat_little)
-    {
-      /* We start counting from the other end (i.e, from the high bytes
-	 rather than the low bytes).  As such, we need to be concerned
-	 with what happens if bit 0 doesn't start on a byte boundary.
-	 I.e, we need to properly handle the case where total_len is
-	 not evenly divisible by 8.  So we compute ``excess'' which
-	 represents the number of bits from the end of our starting
-	 byte needed to get to bit 0.  */
-      int excess = FLOATFORMAT_CHAR_BIT - (total_len % FLOATFORMAT_CHAR_BIT);
-
-      cur_byte = (total_len / FLOATFORMAT_CHAR_BIT) 
-                 - ((start + len + excess) / FLOATFORMAT_CHAR_BIT);
-      cur_bitshift = ((start + len + excess) % FLOATFORMAT_CHAR_BIT) 
-                     - FLOATFORMAT_CHAR_BIT;
-    }
-  else
-    {
-      cur_byte = (start + len) / FLOATFORMAT_CHAR_BIT;
-      cur_bitshift =
-	((start + len) % FLOATFORMAT_CHAR_BIT) - FLOATFORMAT_CHAR_BIT;
-    }
-  if (cur_bitshift > -FLOATFORMAT_CHAR_BIT)
-    result = *(data + cur_byte) >> (-cur_bitshift);
-  else
-    result = 0;
-  cur_bitshift += FLOATFORMAT_CHAR_BIT;
-  if (order == floatformat_little)
-    ++cur_byte;
-  else
-    --cur_byte;
-
-  /* Move towards the most significant part of the field.  */
-  while (cur_bitshift < len)
-    {
-      result |= (unsigned long)*(data + cur_byte) << cur_bitshift;
-      cur_bitshift += FLOATFORMAT_CHAR_BIT;
-      switch (order)
-	{
-	case floatformat_little:
-	  ++cur_byte;
-	  break;
-	case floatformat_big:
-	  --cur_byte;
-	  break;
-	}
-    }
-  if (len < sizeof(result) * FLOATFORMAT_CHAR_BIT)
-    /* Mask out bits which are not part of the field.  */
-    result &= ((1UL << len) - 1);
-  return result;
-}
-
-/* Normalize the byte order of FROM into TO.  If no normalization is
-   needed then FMT->byteorder is returned and TO is not changed;
-   otherwise the format of the normalized form in TO is returned.  */
-
-static enum floatformat_byteorders
-floatformat_normalize_byteorder (const struct floatformat *fmt,
-				 const void *from, void *to)
-{
-  const unsigned char *swapin;
-  unsigned char *swapout;
-  int words;
-  
-  if (fmt->byteorder == floatformat_little
-      || fmt->byteorder == floatformat_big)
-    return fmt->byteorder;
-
-  words = fmt->totalsize / FLOATFORMAT_CHAR_BIT;
-  words >>= 2;
-
-  swapout = (unsigned char *)to;
-  swapin = (const unsigned char *)from;
-
-  if (fmt->byteorder == floatformat_vax)
-    {
-      while (words-- > 0)
-	{
-	  *swapout++ = swapin[1];
-	  *swapout++ = swapin[0];
-	  *swapout++ = swapin[3];
-	  *swapout++ = swapin[2];
-	  swapin += 4;
-	}
-      /* This may look weird, since VAX is little-endian, but it is
-	 easier to translate to big-endian than to little-endian.  */
-      return floatformat_big;
-    }
-  else
-    {
-      gdb_assert (fmt->byteorder == floatformat_littlebyte_bigword);
-
-      while (words-- > 0)
-	{
-	  *swapout++ = swapin[3];
-	  *swapout++ = swapin[2];
-	  *swapout++ = swapin[1];
-	  *swapout++ = swapin[0];
-	  swapin += 4;
-	}
-      return floatformat_big;
-    }
-}
-  
-/* Convert from FMT to a DOUBLEST.
-   FROM is the address of the extended float.
-   Store the DOUBLEST in *TO.  */
-
-static void
-convert_floatformat_to_doublest (const struct floatformat *fmt,
-				 const void *from,
-				 DOUBLEST *to)
-{
-  unsigned char *ufrom = (unsigned char *) from;
-  DOUBLEST dto;
-  long exponent;
-  unsigned long mant;
-  unsigned int mant_bits, mant_off;
-  int mant_bits_left;
-  int special_exponent;		/* It's a NaN, denorm or zero.  */
-  enum floatformat_byteorders order;
-  unsigned char newfrom[FLOATFORMAT_LARGEST_BYTES];
-  enum float_kind kind;
-  
-  gdb_assert (fmt->totalsize
-	      <= FLOATFORMAT_LARGEST_BYTES * FLOATFORMAT_CHAR_BIT);
-
-  /* For non-numbers, reuse libiberty's logic to find the correct
-     format.  We do not lose any precision in this case by passing
-     through a double.  */
-  kind = floatformat_classify (fmt, (const bfd_byte *) from);
-  if (kind == float_infinite || kind == float_nan)
-    {
-      double dto;
-
-      floatformat_to_double (fmt->split_half ? fmt->split_half : fmt,
-			     from, &dto);
-      *to = (DOUBLEST) dto;
-      return;
-    }
-
-  order = floatformat_normalize_byteorder (fmt, ufrom, newfrom);
-
-  if (order != fmt->byteorder)
-    ufrom = newfrom;
-
-  if (fmt->split_half)
-    {
-      DOUBLEST dtop, dbot;
-
-      floatformat_to_doublest (fmt->split_half, ufrom, &dtop);
-      /* Preserve the sign of 0, which is the sign of the top
-	 half.  */
-      if (dtop == 0.0)
-	{
-	  *to = dtop;
-	  return;
-	}
-      floatformat_to_doublest (fmt->split_half,
-			     ufrom + fmt->totalsize / FLOATFORMAT_CHAR_BIT / 2,
-			     &dbot);
-      *to = dtop + dbot;
-      return;
-    }
-
-  exponent = get_field (ufrom, order, fmt->totalsize, fmt->exp_start,
-			fmt->exp_len);
-  /* Note that if exponent indicates a NaN, we can't really do anything useful
-     (not knowing if the host has NaN's, or how to build one).  So it will
-     end up as an infinity or something close; that is OK.  */
-
-  mant_bits_left = fmt->man_len;
-  mant_off = fmt->man_start;
-  dto = 0.0;
-
-  special_exponent = exponent == 0 || exponent == fmt->exp_nan;
-
-  /* Don't bias NaNs.  Use minimum exponent for denorms.  For
-     simplicity, we don't check for zero as the exponent doesn't matter.
-     Note the cast to int; exp_bias is unsigned, so it's important to
-     make sure the operation is done in signed arithmetic.  */
-  if (!special_exponent)
-    exponent -= fmt->exp_bias;
-  else if (exponent == 0)
-    exponent = 1 - fmt->exp_bias;
-
-  /* Build the result algebraically.  Might go infinite, underflow, etc;
-     who cares.  */
-
-/* If this format uses a hidden bit, explicitly add it in now.  Otherwise,
-   increment the exponent by one to account for the integer bit.  */
-
-  if (!special_exponent)
-    {
-      if (fmt->intbit == floatformat_intbit_no)
-	dto = ldexp (1.0, exponent);
-      else
-	exponent++;
-    }
-
-  while (mant_bits_left > 0)
-    {
-      mant_bits = std::min (mant_bits_left, 32);
-
-      mant = get_field (ufrom, order, fmt->totalsize, mant_off, mant_bits);
-
-      dto += ldexp ((double) mant, exponent - mant_bits);
-      exponent -= mant_bits;
-      mant_off += mant_bits;
-      mant_bits_left -= mant_bits;
-    }
-
-  /* Negate it if negative.  */
-  if (get_field (ufrom, order, fmt->totalsize, fmt->sign_start, 1))
-    dto = -dto;
-  *to = dto;
-}
-
-/* Set a field which starts at START and is LEN bytes long.  DATA and
-   TOTAL_LEN are the thing we are extracting it from, in byteorder ORDER.  */
-static void
-put_field (unsigned char *data, enum floatformat_byteorders order,
-	   unsigned int total_len, unsigned int start, unsigned int len,
-	   unsigned long stuff_to_put)
-{
-  unsigned int cur_byte;
-  int cur_bitshift;
-
-  /* Caller must byte-swap words before calling this routine.  */
-  gdb_assert (order == floatformat_little || order == floatformat_big);
-
-  /* Start at the least significant part of the field.  */
-  if (order == floatformat_little)
-    {
-      int excess = FLOATFORMAT_CHAR_BIT - (total_len % FLOATFORMAT_CHAR_BIT);
-
-      cur_byte = (total_len / FLOATFORMAT_CHAR_BIT) 
-                 - ((start + len + excess) / FLOATFORMAT_CHAR_BIT);
-      cur_bitshift = ((start + len + excess) % FLOATFORMAT_CHAR_BIT) 
-                     - FLOATFORMAT_CHAR_BIT;
-    }
-  else
-    {
-      cur_byte = (start + len) / FLOATFORMAT_CHAR_BIT;
-      cur_bitshift =
-	((start + len) % FLOATFORMAT_CHAR_BIT) - FLOATFORMAT_CHAR_BIT;
-    }
-  if (cur_bitshift > -FLOATFORMAT_CHAR_BIT)
-    {
-      *(data + cur_byte) &=
-	~(((1 << ((start + len) % FLOATFORMAT_CHAR_BIT)) - 1)
-	  << (-cur_bitshift));
-      *(data + cur_byte) |=
-	(stuff_to_put & ((1 << FLOATFORMAT_CHAR_BIT) - 1)) << (-cur_bitshift);
-    }
-  cur_bitshift += FLOATFORMAT_CHAR_BIT;
-  if (order == floatformat_little)
-    ++cur_byte;
-  else
-    --cur_byte;
-
-  /* Move towards the most significant part of the field.  */
-  while (cur_bitshift < len)
-    {
-      if (len - cur_bitshift < FLOATFORMAT_CHAR_BIT)
-	{
-	  /* This is the last byte.  */
-	  *(data + cur_byte) &=
-	    ~((1 << (len - cur_bitshift)) - 1);
-	  *(data + cur_byte) |= (stuff_to_put >> cur_bitshift);
-	}
-      else
-	*(data + cur_byte) = ((stuff_to_put >> cur_bitshift)
-			      & ((1 << FLOATFORMAT_CHAR_BIT) - 1));
-      cur_bitshift += FLOATFORMAT_CHAR_BIT;
-      if (order == floatformat_little)
-	++cur_byte;
-      else
-	--cur_byte;
-    }
-}
-
-/* The converse: convert the DOUBLEST *FROM to an extended float and
-   store where TO points.  Neither FROM nor TO have any alignment
-   restrictions.  */
-
-static void
-convert_doublest_to_floatformat (const struct floatformat *fmt,
-				 const DOUBLEST *from, void *to)
-{
-  DOUBLEST dfrom;
-  int exponent;
-  DOUBLEST mant;
-  unsigned int mant_bits, mant_off;
-  int mant_bits_left;
-  unsigned char *uto = (unsigned char *) to;
-  enum floatformat_byteorders order = fmt->byteorder;
-  unsigned char newto[FLOATFORMAT_LARGEST_BYTES];
-
-  if (order != floatformat_little)
-    order = floatformat_big;
-
-  if (order != fmt->byteorder)
-    uto = newto;
-
-  memcpy (&dfrom, from, sizeof (dfrom));
-  memset (uto, 0, (fmt->totalsize + FLOATFORMAT_CHAR_BIT - 1) 
-                    / FLOATFORMAT_CHAR_BIT);
-
-  if (fmt->split_half)
-    {
-      /* Use static volatile to ensure that any excess precision is
-	 removed via storing in memory, and so the top half really is
-	 the result of converting to double.  */
-      static volatile double dtop, dbot;
-      DOUBLEST dtopnv, dbotnv;
-
-      dtop = (double) dfrom;
-      /* If the rounded top half is Inf, the bottom must be 0 not NaN
-	 or Inf.  */
-      if (dtop + dtop == dtop && dtop != 0.0)
-	dbot = 0.0;
-      else
-	dbot = (double) (dfrom - (DOUBLEST) dtop);
-      dtopnv = dtop;
-      dbotnv = dbot;
-      floatformat_from_doublest (fmt->split_half, &dtopnv, uto);
-      floatformat_from_doublest (fmt->split_half, &dbotnv,
-			       (uto
-				+ fmt->totalsize / FLOATFORMAT_CHAR_BIT / 2));
-      return;
-    }
-
-  if (dfrom == 0)
-    return;			/* Result is zero */
-  if (dfrom != dfrom)		/* Result is NaN */
-    {
-      /* From is NaN */
-      put_field (uto, order, fmt->totalsize, fmt->exp_start,
-		 fmt->exp_len, fmt->exp_nan);
-      /* Be sure it's not infinity, but NaN value is irrel.  */
-      put_field (uto, order, fmt->totalsize, fmt->man_start,
-		 fmt->man_len, 1);
-      goto finalize_byteorder;
-    }
-
-  /* If negative, set the sign bit.  */
-  if (dfrom < 0)
-    {
-      put_field (uto, order, fmt->totalsize, fmt->sign_start, 1, 1);
-      dfrom = -dfrom;
-    }
-
-  if (dfrom + dfrom == dfrom && dfrom != 0.0)	/* Result is Infinity.  */
-    {
-      /* Infinity exponent is same as NaN's.  */
-      put_field (uto, order, fmt->totalsize, fmt->exp_start,
-		 fmt->exp_len, fmt->exp_nan);
-      /* Infinity mantissa is all zeroes.  */
-      put_field (uto, order, fmt->totalsize, fmt->man_start,
-		 fmt->man_len, 0);
-      goto finalize_byteorder;
-    }
-
-#ifdef HAVE_LONG_DOUBLE
-  mant = frexpl (dfrom, &exponent);
-#else
-  mant = frexp (dfrom, &exponent);
-#endif
-
-  if (exponent + fmt->exp_bias <= 0)
-    {
-      /* The value is too small to be expressed in the destination
-	 type (not enough bits in the exponent.  Treat as 0.  */
-      put_field (uto, order, fmt->totalsize, fmt->exp_start,
-		 fmt->exp_len, 0);
-      put_field (uto, order, fmt->totalsize, fmt->man_start,
-		 fmt->man_len, 0);
-      goto finalize_byteorder;
-    }
-
-  if (exponent + fmt->exp_bias >= (1 << fmt->exp_len))
-    {
-      /* The value is too large to fit into the destination.
-	 Treat as infinity.  */
-      put_field (uto, order, fmt->totalsize, fmt->exp_start,
-		 fmt->exp_len, fmt->exp_nan);
-      put_field (uto, order, fmt->totalsize, fmt->man_start,
-		 fmt->man_len, 0);
-      goto finalize_byteorder;
-    }
-
-  put_field (uto, order, fmt->totalsize, fmt->exp_start, fmt->exp_len,
-	     exponent + fmt->exp_bias - 1);
-
-  mant_bits_left = fmt->man_len;
-  mant_off = fmt->man_start;
-  while (mant_bits_left > 0)
-    {
-      unsigned long mant_long;
-
-      mant_bits = mant_bits_left < 32 ? mant_bits_left : 32;
-
-      mant *= 4294967296.0;
-      mant_long = ((unsigned long) mant) & 0xffffffffL;
-      mant -= mant_long;
-
-      /* If the integer bit is implicit, then we need to discard it.
-         If we are discarding a zero, we should be (but are not) creating
-         a denormalized number which means adjusting the exponent
-         (I think).  */
-      if (mant_bits_left == fmt->man_len
-	  && fmt->intbit == floatformat_intbit_no)
-	{
-	  mant_long <<= 1;
-	  mant_long &= 0xffffffffL;
-          /* If we are processing the top 32 mantissa bits of a doublest
-             so as to convert to a float value with implied integer bit,
-             we will only be putting 31 of those 32 bits into the
-             final value due to the discarding of the top bit.  In the 
-             case of a small float value where the number of mantissa 
-             bits is less than 32, discarding the top bit does not alter
-             the number of bits we will be adding to the result.  */
-          if (mant_bits == 32)
-            mant_bits -= 1;
-	}
-
-      if (mant_bits < 32)
-	{
-	  /* The bits we want are in the most significant MANT_BITS bits of
-	     mant_long.  Move them to the least significant.  */
-	  mant_long >>= 32 - mant_bits;
-	}
-
-      put_field (uto, order, fmt->totalsize,
-		 mant_off, mant_bits, mant_long);
-      mant_off += mant_bits;
-      mant_bits_left -= mant_bits;
-    }
-
- finalize_byteorder:
-  /* Do we need to byte-swap the words in the result?  */
-  if (order != fmt->byteorder)
-    floatformat_normalize_byteorder (fmt, newto, to);
-}
-
-/* Check if VAL (which is assumed to be a floating point number whose
-   format is described by FMT) is negative.  */
-
-int
-floatformat_is_negative (const struct floatformat *fmt,
-			 const bfd_byte *uval)
-{
-  enum floatformat_byteorders order;
-  unsigned char newfrom[FLOATFORMAT_LARGEST_BYTES];
-  
-  gdb_assert (fmt != NULL);
-  gdb_assert (fmt->totalsize
-	      <= FLOATFORMAT_LARGEST_BYTES * FLOATFORMAT_CHAR_BIT);
-
-  /* An IBM long double (a two element array of double) always takes the
-     sign of the first double.  */
-  if (fmt->split_half)
-    fmt = fmt->split_half;
-
-  order = floatformat_normalize_byteorder (fmt, uval, newfrom);
-
-  if (order != fmt->byteorder)
-    uval = newfrom;
-
-  return get_field (uval, order, fmt->totalsize, fmt->sign_start, 1);
-}
-
-/* Check if VAL is "not a number" (NaN) for FMT.  */
-
-enum float_kind
-floatformat_classify (const struct floatformat *fmt,
-		      const bfd_byte *uval)
-{
-  long exponent;
-  unsigned long mant;
-  unsigned int mant_bits, mant_off;
-  int mant_bits_left;
-  enum floatformat_byteorders order;
-  unsigned char newfrom[FLOATFORMAT_LARGEST_BYTES];
-  int mant_zero;
-  
-  gdb_assert (fmt != NULL);
-  gdb_assert (fmt->totalsize
-	      <= FLOATFORMAT_LARGEST_BYTES * FLOATFORMAT_CHAR_BIT);
-
-  /* An IBM long double (a two element array of double) can be classified
-     by looking at the first double.  inf and nan are specified as
-     ignoring the second double.  zero and subnormal will always have
-     the second double 0.0 if the long double is correctly rounded.  */
-  if (fmt->split_half)
-    fmt = fmt->split_half;
-
-  order = floatformat_normalize_byteorder (fmt, uval, newfrom);
-
-  if (order != fmt->byteorder)
-    uval = newfrom;
-
-  exponent = get_field (uval, order, fmt->totalsize, fmt->exp_start,
-			fmt->exp_len);
-
-  mant_bits_left = fmt->man_len;
-  mant_off = fmt->man_start;
-
-  mant_zero = 1;
-  while (mant_bits_left > 0)
-    {
-      mant_bits = std::min (mant_bits_left, 32);
-
-      mant = get_field (uval, order, fmt->totalsize, mant_off, mant_bits);
-
-      /* If there is an explicit integer bit, mask it off.  */
-      if (mant_off == fmt->man_start
-	  && fmt->intbit == floatformat_intbit_yes)
-	mant &= ~(1 << (mant_bits - 1));
-
-      if (mant)
-	{
-	  mant_zero = 0;
-	  break;
-	}
-
-      mant_off += mant_bits;
-      mant_bits_left -= mant_bits;
-    }
-
-  /* If exp_nan is not set, assume that inf, NaN, and subnormals are not
-     supported.  */
-  if (! fmt->exp_nan)
-    {
-      if (mant_zero)
-	return float_zero;
-      else
-	return float_normal;
-    }
-
-  if (exponent == 0 && !mant_zero)
-    return float_subnormal;
-
-  if (exponent == fmt->exp_nan)
-    {
-      if (mant_zero)
-	return float_infinite;
-      else
-	return float_nan;
-    }
-
-  if (mant_zero)
-    return float_zero;
-
-  return float_normal;
-}
-
-/* Convert the mantissa of VAL (which is assumed to be a floating
-   point number whose format is described by FMT) into a hexadecimal
-   and store it in a static string.  Return a pointer to that string.  */
-
-const char *
-floatformat_mantissa (const struct floatformat *fmt,
-		      const bfd_byte *val)
-{
-  unsigned char *uval = (unsigned char *) val;
-  unsigned long mant;
-  unsigned int mant_bits, mant_off;
-  int mant_bits_left;
-  static char res[50];
-  char buf[9];
-  int len;
-  enum floatformat_byteorders order;
-  unsigned char newfrom[FLOATFORMAT_LARGEST_BYTES];
-  
-  gdb_assert (fmt != NULL);
-  gdb_assert (fmt->totalsize
-	      <= FLOATFORMAT_LARGEST_BYTES * FLOATFORMAT_CHAR_BIT);
-
-  /* For IBM long double (a two element array of double), return the
-     mantissa of the first double.  The problem with returning the
-     actual mantissa from both doubles is that there can be an
-     arbitrary number of implied 0's or 1's between the mantissas
-     of the first and second double.  In any case, this function
-     is only used for dumping out nans, and a nan is specified to
-     ignore the value in the second double.  */
-  if (fmt->split_half)
-    fmt = fmt->split_half;
-
-  order = floatformat_normalize_byteorder (fmt, uval, newfrom);
-
-  if (order != fmt->byteorder)
-    uval = newfrom;
-
-  if (! fmt->exp_nan)
-    return 0;
-
-  /* Make sure we have enough room to store the mantissa.  */
-  gdb_assert (sizeof res > ((fmt->man_len + 7) / 8) * 2);
-
-  mant_off = fmt->man_start;
-  mant_bits_left = fmt->man_len;
-  mant_bits = (mant_bits_left % 32) > 0 ? mant_bits_left % 32 : 32;
-
-  mant = get_field (uval, order, fmt->totalsize, mant_off, mant_bits);
-
-  len = xsnprintf (res, sizeof res, "%lx", mant);
-
-  mant_off += mant_bits;
-  mant_bits_left -= mant_bits;
-
-  while (mant_bits_left > 0)
-    {
-      mant = get_field (uval, order, fmt->totalsize, mant_off, 32);
-
-      xsnprintf (buf, sizeof buf, "%08lx", mant);
-      gdb_assert (len + strlen (buf) <= sizeof res);
-      strcat (res, buf);
-
-      mant_off += 32;
-      mant_bits_left -= 32;
-    }
-
-  return res;
-}
-
-
-/* Convert TO/FROM target to the hosts DOUBLEST floating-point format.
-
-   If the host and target formats agree, we just copy the raw data
-   into the appropriate type of variable and return, letting the host
-   increase precision as necessary.  Otherwise, we call the conversion
-   routine and let it do the dirty work.  Note that even if the target
-   and host floating-point formats match, the length of the types
-   might still be different, so the conversion routines must make sure
-   to not overrun any buffers.  For example, on x86, long double is
-   the 80-bit extended precision type on both 32-bit and 64-bit ABIs,
-   but by default it is stored as 12 bytes on 32-bit, and 16 bytes on
-   64-bit, for alignment reasons.  See comment in store_typed_floating
-   for a discussion about zeroing out remaining bytes in the target
-   buffer.  */
-
-static const struct floatformat *host_float_format = GDB_HOST_FLOAT_FORMAT;
-static const struct floatformat *host_double_format = GDB_HOST_DOUBLE_FORMAT;
-static const struct floatformat *host_long_double_format
-  = GDB_HOST_LONG_DOUBLE_FORMAT;
-
-/* See doublest.h.  */
-
-size_t
-floatformat_totalsize_bytes (const struct floatformat *fmt)
-{
-  return ((fmt->totalsize + FLOATFORMAT_CHAR_BIT - 1)
-	  / FLOATFORMAT_CHAR_BIT);
-}
-
-void
-floatformat_to_doublest (const struct floatformat *fmt,
-			 const void *in, DOUBLEST *out)
-{
-  gdb_assert (fmt != NULL);
-
-  if (fmt == host_float_format)
-    {
-      float val = 0;
-
-      memcpy (&val, in, floatformat_totalsize_bytes (fmt));
-      *out = val;
-    }
-  else if (fmt == host_double_format)
-    {
-      double val = 0;
-
-      memcpy (&val, in, floatformat_totalsize_bytes (fmt));
-      *out = val;
-    }
-  else if (fmt == host_long_double_format)
-    {
-      long double val = 0;
-
-      memcpy (&val, in, floatformat_totalsize_bytes (fmt));
-      *out = val;
-    }
-  else
-    convert_floatformat_to_doublest (fmt, in, out);
-}
-
-void
-floatformat_from_doublest (const struct floatformat *fmt,
-			   const DOUBLEST *in, void *out)
-{
-  gdb_assert (fmt != NULL);
-
-  if (fmt == host_float_format)
-    {
-      float val = *in;
-
-      memcpy (out, &val, floatformat_totalsize_bytes (fmt));
-    }
-  else if (fmt == host_double_format)
-    {
-      double val = *in;
-
-      memcpy (out, &val, floatformat_totalsize_bytes (fmt));
-    }
-  else if (fmt == host_long_double_format)
-    {
-      long double val = *in;
-
-      memcpy (out, &val, floatformat_totalsize_bytes (fmt));
-    }
-  else
-    convert_doublest_to_floatformat (fmt, in, out);
-}
-
-
-/* Return the floating-point format for a floating-point variable of
-   type TYPE.  */
-
-const struct floatformat *
-floatformat_from_type (const struct type *type)
-{
-  struct gdbarch *gdbarch = get_type_arch (type);
-  const struct floatformat *fmt;
-
-  gdb_assert (TYPE_CODE (type) == TYPE_CODE_FLT);
-  gdb_assert (TYPE_FLOATFORMAT (type));
-  fmt = TYPE_FLOATFORMAT (type)[gdbarch_byte_order (gdbarch)];
-  gdb_assert (TYPE_LENGTH (type) >= floatformat_totalsize_bytes (fmt));
-  return fmt;
-}
-
-/* Extract a floating-point number of type TYPE from a target-order
-   byte-stream at ADDR.  Returns the value as type DOUBLEST.  */
-
-DOUBLEST
-extract_typed_floating (const void *addr, const struct type *type)
-{
-  const struct floatformat *fmt = floatformat_from_type (type);
-  DOUBLEST retval;
-
-  floatformat_to_doublest (fmt, addr, &retval);
-  return retval;
-}
-
-/* Store VAL as a floating-point number of type TYPE to a target-order
-   byte-stream at ADDR.  */
-
-void
-store_typed_floating (void *addr, const struct type *type, DOUBLEST val)
-{
-  const struct floatformat *fmt = floatformat_from_type (type);
-
-  /* FIXME: kettenis/2001-10-28: It is debatable whether we should
-     zero out any remaining bytes in the target buffer when TYPE is
-     longer than the actual underlying floating-point format.  Perhaps
-     we should store a fixed bitpattern in those remaining bytes,
-     instead of zero, or perhaps we shouldn't touch those remaining
-     bytes at all.
-
-     NOTE: cagney/2001-10-28: With the way things currently work, it
-     isn't a good idea to leave the end bits undefined.  This is
-     because GDB writes out the entire sizeof(<floating>) bits of the
-     floating-point type even though the value might only be stored
-     in, and the target processor may only refer to, the first N <
-     TYPE_LENGTH (type) bits.  If the end of the buffer wasn't
-     initialized, GDB would write undefined data to the target.  An
-     errant program, refering to that undefined data, would then
-     become non-deterministic.
-
-     See also the function convert_typed_floating below.  */
-  memset (addr, 0, TYPE_LENGTH (type));
-
-  floatformat_from_doublest (fmt, &val, addr);
-}
-
-/* Convert a floating-point number of type FROM_TYPE from a
-   target-order byte-stream at FROM to a floating-point number of type
-   TO_TYPE, and store it to a target-order byte-stream at TO.  */
-
-void
-convert_typed_floating (const void *from, const struct type *from_type,
-                        void *to, const struct type *to_type)
-{
-  const struct floatformat *from_fmt = floatformat_from_type (from_type);
-  const struct floatformat *to_fmt = floatformat_from_type (to_type);
-
-  if (from_fmt == NULL || to_fmt == NULL)
-    {
-      /* If we don't know the floating-point format of FROM_TYPE or
-         TO_TYPE, there's not much we can do.  We might make the
-         assumption that if the length of FROM_TYPE and TO_TYPE match,
-         their floating-point format would match too, but that
-         assumption might be wrong on targets that support
-         floating-point types that only differ in endianness for
-         example.  So we warn instead, and zero out the target buffer.  */
-      warning (_("Can't convert floating-point number to desired type."));
-      memset (to, 0, TYPE_LENGTH (to_type));
-    }
-  else if (from_fmt == to_fmt)
-    {
-      /* We're in business.  The floating-point format of FROM_TYPE
-         and TO_TYPE match.  However, even though the floating-point
-         format matches, the length of the type might still be
-         different.  Make sure we don't overrun any buffers.  See
-         comment in store_typed_floating for a discussion about
-         zeroing out remaining bytes in the target buffer.  */
-      memset (to, 0, TYPE_LENGTH (to_type));
-      memcpy (to, from, std::min (TYPE_LENGTH (from_type),
-				  TYPE_LENGTH (to_type)));
-    }
-  else
-    {
-      /* The floating-point types don't match.  The best we can do
-         (apart from simulating the target FPU) is converting to the
-         widest floating-point type supported by the host, and then
-         again to the desired type.  */
-      DOUBLEST d;
-
-      floatformat_to_doublest (from_fmt, from, &d);
-      floatformat_from_doublest (to_fmt, &d, to);
-    }
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doublest.h ./gdb/doublest.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/doublest.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/doublest.h	1970-01-01 00:00:00.000000000 +0000
@@ -1,104 +0,0 @@
-/* Floating point definitions for GDB.
-
-   Copyright (C) 1986-2017 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 DOUBLEST_H
-#define DOUBLEST_H
-
-struct type;
-struct floatformat;
-
-/* Setup definitions for host and target floating point formats.  We need to
-   consider the format for `float', `double', and `long double' for both target
-   and host.  We need to do this so that we know what kind of conversions need
-   to be done when converting target numbers to and from the hosts DOUBLEST
-   data type.  */
-
-/* This is used to indicate that we don't know the format of the floating point
-   number.  Typically, this is useful for native ports, where the actual format
-   is irrelevant, since no conversions will be taking place.  */
-
-#include "floatformat.h"	/* For struct floatformat */
-
-/* Use `long double' if the host compiler supports it.  (Note that this is not
-   necessarily any longer than `double'.  On SunOS/gcc, it's the same as
-   double.)  This is necessary because GDB internally converts all floating
-   point values to the widest type supported by the host.
-
-   There are problems however, when the target `long double' is longer than the
-   host's `long double'.  In general, we'll probably reduce the precision of
-   any such values and print a warning.  */
-
-#if (defined HAVE_LONG_DOUBLE && defined PRINTF_HAS_LONG_DOUBLE \
-     && defined SCANF_HAS_LONG_DOUBLE)
-typedef long double DOUBLEST;
-# define DOUBLEST_PRINT_FORMAT "Lg"
-# define DOUBLEST_SCAN_FORMAT "Lg"
-#else
-typedef double DOUBLEST;
-# define DOUBLEST_PRINT_FORMAT "g"
-# define DOUBLEST_SCAN_FORMAT "lg"
-/* If we can't scan or print long double, we don't want to use it
-   anywhere.  */
-# undef HAVE_LONG_DOUBLE
-# undef PRINTF_HAS_LONG_DOUBLE
-# undef SCANF_HAS_LONG_DOUBLE
-#endif
-
-/* Different kinds of floatformat numbers recognized by
-   floatformat_classify.  To avoid portability issues, we use local
-   values instead of the C99 macros (FP_NAN et cetera).  */
-enum float_kind {
-  float_nan,
-  float_infinite,
-  float_zero,
-  float_normal,
-  float_subnormal
-};
-
-extern void floatformat_to_doublest (const struct floatformat *,
-				     const void *in, DOUBLEST *out);
-extern void floatformat_from_doublest (const struct floatformat *,
-				       const DOUBLEST *in, void *out);
-
-extern int floatformat_is_negative (const struct floatformat *,
-				    const bfd_byte *);
-extern enum float_kind floatformat_classify (const struct floatformat *,
-					     const bfd_byte *);
-extern const char *floatformat_mantissa (const struct floatformat *,
-					 const bfd_byte *);
-
-/* Given TYPE, return its floatformat.  TYPE_FLOATFORMAT() may return
-   NULL.  type_floatformat() detects that and returns a floatformat
-   based on the type size when FLOATFORMAT is NULL.  */
-
-const struct floatformat *floatformat_from_type (const struct type *type);
-
-/* Return the floatformat's total size in host bytes.  */
-
-extern size_t floatformat_totalsize_bytes (const struct floatformat *fmt);
-
-extern DOUBLEST extract_typed_floating (const void *addr,
-					const struct type *type);
-extern void store_typed_floating (void *addr, const struct type *type,
-				  DOUBLEST val);
-extern void convert_typed_floating (const void *from,
-				    const struct type *from_type,
-                                    void *to, const struct type *to_type);
-
-#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dtrace-probe.c ./gdb/dtrace-probe.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dtrace-probe.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dtrace-probe.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* DTrace probe support for GDB.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    Contributed by Oracle, Inc.
 
@@ -41,28 +41,27 @@
 # define SHT_SUNW_dof	0x6ffffff4
 #endif
 
-/* Forward declaration.  */
-
-extern const struct probe_ops dtrace_probe_ops;
-
 /* The following structure represents a single argument for the
    probe.  */
 
 struct dtrace_probe_arg
 {
+  dtrace_probe_arg (struct type *type_, std::string &&type_str_,
+		    expression_up &&expr_)
+    : type (type_), type_str (std::move (type_str_)),
+      expr (std::move (expr_))
+  {}
+
   /* The type of the probe argument.  */
   struct type *type;
 
   /* A string describing the type.  */
-  char *type_str;
+  std::string type_str;
 
   /* The argument converted to an internal GDB expression.  */
-  struct expression *expr;
+  expression_up expr;
 };
 
-typedef struct dtrace_probe_arg dtrace_probe_arg_s;
-DEF_VEC_O (dtrace_probe_arg_s);
-
 /* The following structure represents an enabler for a probe.  */
 
 struct dtrace_probe_enabler
@@ -73,39 +72,106 @@ struct dtrace_probe_enabler
   CORE_ADDR address;
 };
 
-typedef struct dtrace_probe_enabler dtrace_probe_enabler_s;
-DEF_VEC_O (dtrace_probe_enabler_s);
+/* Class that implements the static probe methods for "stap" probes.  */
+
+class dtrace_static_probe_ops : public static_probe_ops
+{
+public:
+  /* See probe.h.  */
+  bool is_linespec (const char **linespecp) const override;
+
+  /* See probe.h.  */
+  void get_probes (std::vector<probe *> *probesp,
+		   struct objfile *objfile) const override;
+
+  /* See probe.h.  */
+  const char *type_name () const override;
+
+  /* See probe.h.  */
+  bool can_enable () const override
+  {
+    return true;
+  }
+
+  /* See probe.h.  */
+  std::vector<struct info_probe_column> gen_info_probes_table_header
+    () const override;
+};
+
+/* DTrace static_probe_ops.  */
+
+const dtrace_static_probe_ops dtrace_static_probe_ops;
 
 /* The following structure represents a dtrace probe.  */
 
-struct dtrace_probe
+class dtrace_probe : public probe
 {
-  /* Generic information about the probe.  This must be the first
-     element of this struct, in order to maintain binary compatibility
-     with the `struct probe' and be able to fully abstract it.  */
-  struct probe p;
+public:
+  /* Constructor for dtrace_probe.  */
+  dtrace_probe (std::string &&name_, std::string &&provider_, CORE_ADDR address_,
+		struct gdbarch *arch_,
+		std::vector<struct dtrace_probe_arg> &&args_,
+		std::vector<struct dtrace_probe_enabler> &&enablers_)
+    : probe (std::move (name_), std::move (provider_), address_, arch_),
+      m_args (std::move (args_)),
+      m_enablers (std::move (enablers_)),
+      m_args_expr_built (false)
+  {}
+
+  /* See probe.h.  */
+  CORE_ADDR get_relocated_address (struct objfile *objfile) override;
+
+  /* See probe.h.  */
+  unsigned get_argument_count (struct frame_info *frame) override;
+
+  /* See probe.h.  */
+  bool can_evaluate_arguments () const override;
+
+  /* See probe.h.  */
+  struct value *evaluate_argument (unsigned n,
+				   struct frame_info *frame) override;
+
+  /* See probe.h.  */
+  void compile_to_ax (struct agent_expr *aexpr,
+		      struct axs_value *axs_value,
+		      unsigned n) override;
+
+  /* See probe.h.  */
+  const static_probe_ops *get_static_ops () const override;
+
+  /* See probe.h.  */
+  std::vector<const char *> gen_info_probes_table_values () const override;
+
+  /* See probe.h.  */
+  void enable () override;
+
+  /* See probe.h.  */
+  void disable () override;
+
+  /* Return the Nth argument of the probe.  */
+  struct dtrace_probe_arg *get_arg_by_number (unsigned n,
+					      struct gdbarch *gdbarch);
+
+  /* Build the GDB internal expressiosn that, once evaluated, will
+     calculate the values of the arguments of the probe.  */
+  void build_arg_exprs (struct gdbarch *gdbarch);
+
+  /* Determine whether the probe is "enabled" or "disabled".  A
+     disabled probe is a probe in which one or more enablers are
+     disabled.  */
+  bool is_enabled () const;
 
+private:
   /* A probe can have zero or more arguments.  */
-  int probe_argc;
-  VEC (dtrace_probe_arg_s) *args;
+  std::vector<struct dtrace_probe_arg> m_args;
 
   /* A probe can have zero or more "enablers" associated with it.  */
-  VEC (dtrace_probe_enabler_s) *enablers;
+  std::vector<struct dtrace_probe_enabler> m_enablers;
 
   /* Whether the expressions for the arguments have been built.  */
-  unsigned int args_expr_built : 1;
+  bool m_args_expr_built;
 };
 
-/* Implementation of the probe_is_linespec method.  */
-
-static int
-dtrace_probe_is_linespec (const char **linespecp)
-{
-  static const char *const keywords[] = { "-pdtrace", "-probe-dtrace", NULL };
-
-  return probe_is_linespec_by_keyword (linespecp, keywords);
-}
-
 /* DOF programs can contain an arbitrary number of sections of 26
    different types.  In order to support DTrace USDT probes we only
    need to handle a subset of these section types, fortunately.  These
@@ -313,7 +379,8 @@ struct dtrace_dof_probe
 
 static void
 dtrace_process_dof_probe (struct objfile *objfile,
-			  struct gdbarch *gdbarch, VEC (probe_p) **probesp,
+			  struct gdbarch *gdbarch,
+			  std::vector<probe *> *probesp,
 			  struct dtrace_dof_hdr *dof,
 			  struct dtrace_dof_probe *probe,
 			  struct dtrace_dof_provider *provider,
@@ -321,8 +388,6 @@ dtrace_process_dof_probe (struct objfile
 			  char *argtab, uint64_t strtab_size)
 {
   int i, j, num_probes, num_enablers;
-  struct cleanup *cleanup;
-  VEC (dtrace_probe_enabler_s) *enablers;
   char *p;
 
   /* Each probe section can define zero or more probes of two
@@ -367,9 +432,7 @@ dtrace_process_dof_probe (struct objfile
 
   /* Build the list of enablers for the probes defined in this Probe
      DOF section.  */
-  enablers = NULL;
-  cleanup
-    = make_cleanup (VEC_cleanup (dtrace_probe_enabler_s), &enablers);
+  std::vector<struct dtrace_probe_enabler> enablers;
   num_enablers = DOF_UINT (dof, probe->dofpr_nenoffs);
   for (i = 0; i < num_enablers; i++)
     {
@@ -379,78 +442,74 @@ dtrace_process_dof_probe (struct objfile
 
       enabler.address = DOF_UINT (dof, probe->dofpr_addr)
 	+ DOF_UINT (dof, enabler_offset);
-      VEC_safe_push (dtrace_probe_enabler_s, enablers, &enabler);
+      enablers.push_back (enabler);
     }
 
   for (i = 0; i < num_probes; i++)
     {
       uint32_t probe_offset
 	= ((uint32_t *) offtab)[DOF_UINT (dof, probe->dofpr_offidx) + i];
-      struct dtrace_probe *ret =
-	XOBNEW (&objfile->per_bfd->storage_obstack, struct dtrace_probe);
-
-      ret->p.pops = &dtrace_probe_ops;
-      ret->p.arch = gdbarch;
-      ret->args_expr_built = 0;
 
       /* Set the provider and the name of the probe.  */
-      ret->p.provider
-	= xstrdup (strtab + DOF_UINT (dof, provider->dofpv_name));
-      ret->p.name = xstrdup (strtab + DOF_UINT (dof, probe->dofpr_name));
+      const char *probe_provider
+	= strtab + DOF_UINT (dof, provider->dofpv_name);
+      const char *name = strtab + DOF_UINT (dof, probe->dofpr_name);
 
       /* The probe address.  */
-      ret->p.address
+      CORE_ADDR address
 	= DOF_UINT (dof, probe->dofpr_addr) + DOF_UINT (dof, probe_offset);
 
       /* Number of arguments in the probe.  */
-      ret->probe_argc = DOF_UINT (dof, probe->dofpr_nargc);
+      int probe_argc = DOF_UINT (dof, probe->dofpr_nargc);
 
       /* Store argument type descriptions.  A description of the type
          of the argument is in the (J+1)th null-terminated string
          starting at 'strtab' + 'probe->dofpr_nargv'.  */
-      ret->args = NULL;
+      std::vector<struct dtrace_probe_arg> args;
       p = strtab + DOF_UINT (dof, probe->dofpr_nargv);
-      for (j = 0; j < ret->probe_argc; j++)
+      for (j = 0; j < probe_argc; j++)
 	{
-	  struct dtrace_probe_arg arg;
 	  expression_up expr;
 
 	  /* Set arg.expr to ensure all fields in expr are initialized and
 	     the compiler will not warn when arg is used.  */
-	  arg.expr = NULL;
-	  arg.type_str = xstrdup (p);
+	  std::string type_str (p);
 
 	  /* Use strtab_size as a sentinel.  */
-	  while (*p++ != '\0' && p - strtab < strtab_size);
+	  while (*p++ != '\0' && p - strtab < strtab_size)
+	    ;
 
 	  /* Try to parse a type expression from the type string.  If
 	     this does not work then we set the type to `long
 	     int'.  */
-          arg.type = builtin_type (gdbarch)->builtin_long;
+          struct type *type = builtin_type (gdbarch)->builtin_long;
 
 	  TRY
 	    {
-	      expr = parse_expression_with_language (arg.type_str, language_c);
+	      expr = parse_expression_with_language (type_str.c_str (),
+						     language_c);
 	    }
 	  CATCH (ex, RETURN_MASK_ERROR)
 	    {
 	    }
 	  END_CATCH
 
-	  if (expr != NULL && expr->elts[0].opcode == OP_TYPE)
-	    arg.type = expr->elts[1].type;
+	  if (expr != NULL && expr.get ()->elts[0].opcode == OP_TYPE)
+	    type = expr.get ()->elts[1].type;
 
-	  VEC_safe_push (dtrace_probe_arg_s, ret->args, &arg);
+	  args.emplace_back (type, std::move (type_str), std::move (expr));
 	}
 
-      /* Add the vector of enablers to this probe, if any.  */
-      ret->enablers = VEC_copy (dtrace_probe_enabler_s, enablers);
+      std::vector<struct dtrace_probe_enabler> enablers_copy = enablers;
+      dtrace_probe *ret = new dtrace_probe (std::string (name),
+					    std::string (probe_provider),
+					    address, gdbarch,
+					    std::move (args),
+					    std::move (enablers_copy));
 
       /* Successfully created probe.  */
-      VEC_safe_push (probe_p, *probesp, (struct probe *) ret);
+      probesp->push_back (ret);
     }
-
-  do_cleanups (cleanup);
 }
 
 /* Helper function to collect the probes described in the DOF program
@@ -460,7 +519,7 @@ dtrace_process_dof_probe (struct objfile
 
 static void
 dtrace_process_dof (asection *sect, struct objfile *objfile,
-		    VEC (probe_p) **probesp, struct dtrace_dof_hdr *dof)
+		    std::vector<probe *> *probesp, struct dtrace_dof_hdr *dof)
 {
   struct gdbarch *gdbarch = get_objfile_arch (objfile);
   struct dtrace_dof_sect *section;
@@ -553,274 +612,170 @@ dtrace_process_dof (asection *sect, stru
 	     sect->name);
 }
 
-/* Helper function to build the GDB internal expressiosn that, once
-   evaluated, will calculate the values of the arguments of a given
-   PROBE.  */
+/* Implementation of 'build_arg_exprs' method.  */
 
-static void
-dtrace_build_arg_exprs (struct dtrace_probe *probe,
-			struct gdbarch *gdbarch)
+void
+dtrace_probe::build_arg_exprs (struct gdbarch *gdbarch)
 {
-  struct parser_state pstate;
-  struct dtrace_probe_arg *arg;
-  int i;
-
-  probe->args_expr_built = 1;
+  size_t argc = 0;
+  m_args_expr_built = true;
 
   /* Iterate over the arguments in the probe and build the
      corresponding GDB internal expression that will generate the
      value of the argument when executed at the PC of the probe.  */
-  for (i = 0; i < probe->probe_argc; i++)
+  for (dtrace_probe_arg &arg : m_args)
     {
-      struct cleanup *back_to;
-
-      arg = VEC_index (dtrace_probe_arg_s, probe->args, i);
-
       /* Initialize the expression buffer in the parser state.  The
 	 language does not matter, since we are using our own
 	 parser.  */
-      initialize_expout (&pstate, 10, current_language, gdbarch);
-      back_to = make_cleanup (free_current_contents, &pstate.expout);
+      parser_state pstate (10, current_language, gdbarch);
 
       /* The argument value, which is ABI dependent and casted to
 	 `long int'.  */
-      gdbarch_dtrace_parse_probe_argument (gdbarch, &pstate, i);
-
-      discard_cleanups (back_to);
+      gdbarch_dtrace_parse_probe_argument (gdbarch, &pstate, argc);
 
       /* Casting to the expected type, but only if the type was
 	 recognized at probe load time.  Otherwise the argument will
 	 be evaluated as the long integer passed to the probe.  */
-      if (arg->type != NULL)
+      if (arg.type != NULL)
 	{
 	  write_exp_elt_opcode (&pstate, UNOP_CAST);
-	  write_exp_elt_type (&pstate, arg->type);
+	  write_exp_elt_type (&pstate, arg.type);
 	  write_exp_elt_opcode (&pstate, UNOP_CAST);
 	}
 
-      reallocate_expout (&pstate);
-      arg->expr = pstate.expout;
-      prefixify_expression (arg->expr);
+      arg.expr = pstate.release ();
+      prefixify_expression (arg.expr.get ());
+      ++argc;
     }
 }
 
-/* Helper function to return the Nth argument of a given PROBE.  */
+/* Implementation of 'get_arg_by_number' method.  */
 
-static struct dtrace_probe_arg *
-dtrace_get_arg (struct dtrace_probe *probe, unsigned n,
-		struct gdbarch *gdbarch)
+struct dtrace_probe_arg *
+dtrace_probe::get_arg_by_number (unsigned n, struct gdbarch *gdbarch)
 {
-  if (!probe->args_expr_built)
-    dtrace_build_arg_exprs (probe, gdbarch);
+  if (!m_args_expr_built)
+    this->build_arg_exprs (gdbarch);
 
-  return VEC_index (dtrace_probe_arg_s, probe->args, n);
-}
+  if (n > m_args.size ())
+    internal_error (__FILE__, __LINE__,
+		    _("Probe '%s' has %d arguments, but GDB is requesting\n"
+		      "argument %u.  This should not happen.  Please\n"
+		      "report this bug."),
+		    this->get_name ().c_str (),
+		    (int) m_args.size (), n);
 
-/* Implementation of the get_probes method.  */
-
-static void
-dtrace_get_probes (VEC (probe_p) **probesp, struct objfile *objfile)
-{
-  bfd *abfd = objfile->obfd;
-  asection *sect = NULL;
-
-  /* Do nothing in case this is a .debug file, instead of the objfile
-     itself.  */
-  if (objfile->separate_debug_objfile_backlink != NULL)
-    return;
-
-  /* Iterate over the sections in OBJFILE looking for DTrace
-     information.  */
-  for (sect = abfd->sections; sect != NULL; sect = sect->next)
-    {
-      if (elf_section_data (sect)->this_hdr.sh_type == SHT_SUNW_dof)
-	{
-	  bfd_byte *dof;
-
-	  /* Read the contents of the DOF section and then process it to
-	     extract the information of any probe defined into it.  */
-	  if (!bfd_malloc_and_get_section (abfd, sect, &dof))
-	    complaint (&symfile_complaints,
-		       _("could not obtain the contents of"
-			 "section '%s' in objfile `%s'."),
-		       sect->name, abfd->filename);
-      
-	  dtrace_process_dof (sect, objfile, probesp,
-			      (struct dtrace_dof_hdr *) dof);
-	  xfree (dof);
-	}
-    }
+  return &m_args[n];
 }
 
-/* Helper function to determine whether a given probe is "enabled" or
-   "disabled".  A disabled probe is a probe in which one or more
-   enablers are disabled.  */
+/* Implementation of the probe is_enabled method.  */
 
-static int
-dtrace_probe_is_enabled (struct dtrace_probe *probe)
+bool
+dtrace_probe::is_enabled () const
 {
-  int i;
-  struct gdbarch *gdbarch = probe->p.arch;
-  struct dtrace_probe_enabler *enabler;
+  struct gdbarch *gdbarch = this->get_gdbarch ();
 
-  for (i = 0;
-       VEC_iterate (dtrace_probe_enabler_s, probe->enablers, i, enabler);
-       i++)
-    if (!gdbarch_dtrace_probe_is_enabled (gdbarch, enabler->address))
-      return 0;
+  for (const dtrace_probe_enabler &enabler : m_enablers)
+    if (!gdbarch_dtrace_probe_is_enabled (gdbarch, enabler.address))
+      return false;
 
-  return 1;
+  return true;
 }
 
 /* Implementation of the get_probe_address method.  */
 
-static CORE_ADDR
-dtrace_get_probe_address (struct probe *probe, struct objfile *objfile)
+CORE_ADDR
+dtrace_probe::get_relocated_address (struct objfile *objfile)
 {
-  gdb_assert (probe->pops == &dtrace_probe_ops);
-  return probe->address + ANOFFSET (objfile->section_offsets,
-				    SECT_OFF_DATA (objfile));
+  return this->get_address () + ANOFFSET (objfile->section_offsets,
+					  SECT_OFF_DATA (objfile));
 }
 
-/* Implementation of the get_probe_argument_count method.  */
+/* Implementation of the get_argument_count method.  */
 
-static unsigned
-dtrace_get_probe_argument_count (struct probe *probe_generic,
-				 struct frame_info *frame)
+unsigned
+dtrace_probe::get_argument_count (struct frame_info *frame)
 {
-  struct dtrace_probe *dtrace_probe = (struct dtrace_probe *) probe_generic;
-
-  gdb_assert (probe_generic->pops == &dtrace_probe_ops);
-
-  return dtrace_probe->probe_argc;
+  return m_args.size ();
 }
 
-/* Implementation of the can_evaluate_probe_arguments method.  */
+/* Implementation of the can_evaluate_arguments method.  */
 
-static int
-dtrace_can_evaluate_probe_arguments (struct probe *probe_generic)
+bool
+dtrace_probe::can_evaluate_arguments () const
 {
-  struct gdbarch *gdbarch = probe_generic->arch;
+  struct gdbarch *gdbarch = this->get_gdbarch ();
 
-  gdb_assert (probe_generic->pops == &dtrace_probe_ops);
   return gdbarch_dtrace_parse_probe_argument_p (gdbarch);
 }
 
-/* Implementation of the evaluate_probe_argument method.  */
+/* Implementation of the evaluate_argument method.  */
 
-static struct value *
-dtrace_evaluate_probe_argument (struct probe *probe_generic, unsigned n,
-				struct frame_info *frame)
+struct value *
+dtrace_probe::evaluate_argument (unsigned n,
+				 struct frame_info *frame)
 {
-  struct gdbarch *gdbarch = probe_generic->arch;
-  struct dtrace_probe *dtrace_probe = (struct dtrace_probe *) probe_generic;
+  struct gdbarch *gdbarch = this->get_gdbarch ();
   struct dtrace_probe_arg *arg;
   int pos = 0;
 
-  gdb_assert (probe_generic->pops == &dtrace_probe_ops);
-
-  arg = dtrace_get_arg (dtrace_probe, n, gdbarch);
-  return evaluate_subexp_standard (arg->type, arg->expr, &pos, EVAL_NORMAL);
+  arg = this->get_arg_by_number (n, gdbarch);
+  return evaluate_subexp_standard (arg->type, arg->expr.get (), &pos,
+				   EVAL_NORMAL);
 }
 
 /* Implementation of the compile_to_ax method.  */
 
-static void
-dtrace_compile_to_ax (struct probe *probe_generic, struct agent_expr *expr,
-		      struct axs_value *value, unsigned n)
+void
+dtrace_probe::compile_to_ax (struct agent_expr *expr, struct axs_value *value,
+			     unsigned n)
 {
-  struct dtrace_probe *dtrace_probe = (struct dtrace_probe *) probe_generic;
   struct dtrace_probe_arg *arg;
   union exp_element *pc;
 
-  gdb_assert (probe_generic->pops == &dtrace_probe_ops);
-
-  arg = dtrace_get_arg (dtrace_probe, n, expr->gdbarch);
+  arg = this->get_arg_by_number (n, expr->gdbarch);
 
   pc = arg->expr->elts;
-  gen_expr (arg->expr, &pc, expr, value);
+  gen_expr (arg->expr.get (), &pc, expr, value);
 
   require_rvalue (expr, value);
   value->type = arg->type;
 }
 
-/* Implementation of the probe_destroy method.  */
+/* Implementation of the 'get_static_ops' method.  */
 
-static void
-dtrace_probe_destroy (struct probe *probe_generic)
+const static_probe_ops *
+dtrace_probe::get_static_ops () const
 {
-  struct dtrace_probe *probe = (struct dtrace_probe *) probe_generic;
-  struct dtrace_probe_arg *arg;
-  int i;
-
-  gdb_assert (probe_generic->pops == &dtrace_probe_ops);
-
-  for (i = 0; VEC_iterate (dtrace_probe_arg_s, probe->args, i, arg); i++)
-    {
-      xfree (arg->type_str);
-      xfree (arg->expr);
-    }
-
-  VEC_free (dtrace_probe_enabler_s, probe->enablers);
-  VEC_free (dtrace_probe_arg_s, probe->args);
-}
-
-/* Implementation of the type_name method.  */
-
-static const char *
-dtrace_type_name (struct probe *probe_generic)
-{
-  gdb_assert (probe_generic->pops == &dtrace_probe_ops);
-  return "dtrace";
-}
-
-/* Implementation of the gen_info_probes_table_header method.  */
-
-static void
-dtrace_gen_info_probes_table_header (VEC (info_probe_column_s) **heads)
-{
-  info_probe_column_s dtrace_probe_column;
-
-  dtrace_probe_column.field_name = "enabled";
-  dtrace_probe_column.print_name = _("Enabled");
-
-  VEC_safe_push (info_probe_column_s, *heads, &dtrace_probe_column);
+  return &dtrace_static_probe_ops;
 }
 
 /* Implementation of the gen_info_probes_table_values method.  */
 
-static void
-dtrace_gen_info_probes_table_values (struct probe *probe_generic,
-				     VEC (const_char_ptr) **ret)
+std::vector<const char *>
+dtrace_probe::gen_info_probes_table_values () const
 {
-  struct dtrace_probe *probe = (struct dtrace_probe *) probe_generic;
   const char *val = NULL;
 
-  gdb_assert (probe_generic->pops == &dtrace_probe_ops);
-
-  if (VEC_empty (dtrace_probe_enabler_s, probe->enablers))
+  if (m_enablers.empty ())
     val = "always";
-  else if (!gdbarch_dtrace_probe_is_enabled_p (probe_generic->arch))
+  else if (!gdbarch_dtrace_probe_is_enabled_p (this->get_gdbarch ()))
     val = "unknown";
-  else if (dtrace_probe_is_enabled (probe))
+  else if (this->is_enabled ())
     val = "yes";
   else
     val = "no";
 
-  VEC_safe_push (const_char_ptr, *ret, val);
+  return std::vector<const char *> { val };
 }
 
-/* Implementation of the enable_probe method.  */
+/* Implementation of the enable method.  */
 
-static void
-dtrace_enable_probe (struct probe *probe)
+void
+dtrace_probe::enable ()
 {
-  struct gdbarch *gdbarch = probe->arch;
-  struct dtrace_probe *dtrace_probe = (struct dtrace_probe *) probe;
-  struct dtrace_probe_enabler *enabler;
-  int i;
-
-  gdb_assert (probe->pops == &dtrace_probe_ops);
+  struct gdbarch *gdbarch = this->get_gdbarch ();
 
   /* Enabling a dtrace probe implies patching the text section of the
      running process, so make sure the inferior is indeed running.  */
@@ -828,31 +783,23 @@ dtrace_enable_probe (struct probe *probe
     error (_("No inferior running"));
 
   /* Fast path.  */
-  if (dtrace_probe_is_enabled (dtrace_probe))
+  if (this->is_enabled ())
     return;
 
   /* Iterate over all defined enabler in the given probe and enable
      them all using the corresponding gdbarch hook.  */
-
-  for (i = 0;
-       VEC_iterate (dtrace_probe_enabler_s, dtrace_probe->enablers, i, enabler);
-       i++)
+  for (const dtrace_probe_enabler &enabler : m_enablers)
     if (gdbarch_dtrace_enable_probe_p (gdbarch))
-      gdbarch_dtrace_enable_probe (gdbarch, enabler->address);
+      gdbarch_dtrace_enable_probe (gdbarch, enabler.address);
 }
 
 
 /* Implementation of the disable_probe method.  */
 
-static void
-dtrace_disable_probe (struct probe *probe)
+void
+dtrace_probe::disable ()
 {
-  struct gdbarch *gdbarch = probe->arch;
-  struct dtrace_probe *dtrace_probe = (struct dtrace_probe *) probe;
-  struct dtrace_probe_enabler *enabler;
-  int i;
-
-  gdb_assert (probe->pops == &dtrace_probe_ops);
+  struct gdbarch *gdbarch = this->get_gdbarch ();
 
   /* Disabling a dtrace probe implies patching the text section of the
      running process, so make sure the inferior is indeed running.  */
@@ -860,59 +807,102 @@ dtrace_disable_probe (struct probe *prob
     error (_("No inferior running"));
 
   /* Fast path.  */
-  if (!dtrace_probe_is_enabled (dtrace_probe))
+  if (!this->is_enabled ())
     return;
 
   /* Are we trying to disable a probe that does not have any enabler
      associated?  */
-  if (VEC_empty (dtrace_probe_enabler_s, dtrace_probe->enablers))
-    error (_("Probe %s:%s cannot be disabled: no enablers."), probe->provider, probe->name);
+  if (m_enablers.empty ())
+    error (_("Probe %s:%s cannot be disabled: no enablers."),
+	   this->get_provider ().c_str (), this->get_name ().c_str ());
 
   /* Iterate over all defined enabler in the given probe and disable
      them all using the corresponding gdbarch hook.  */
-
-  for (i = 0;
-       VEC_iterate (dtrace_probe_enabler_s, dtrace_probe->enablers, i, enabler);
-       i++)
+  for (dtrace_probe_enabler &enabler : m_enablers)
     if (gdbarch_dtrace_disable_probe_p (gdbarch))
-      gdbarch_dtrace_disable_probe (gdbarch, enabler->address);
+      gdbarch_dtrace_disable_probe (gdbarch, enabler.address);
 }
 
-/* DTrace probe_ops.  */
+/* Implementation of the is_linespec method.  */
 
-const struct probe_ops dtrace_probe_ops =
+bool
+dtrace_static_probe_ops::is_linespec (const char **linespecp) const
 {
-  dtrace_probe_is_linespec,
-  dtrace_get_probes,
-  dtrace_get_probe_address,
-  dtrace_get_probe_argument_count,
-  dtrace_can_evaluate_probe_arguments,
-  dtrace_evaluate_probe_argument,
-  dtrace_compile_to_ax,
-  NULL, /* set_semaphore  */
-  NULL, /* clear_semaphore  */
-  dtrace_probe_destroy,
-  dtrace_type_name,
-  dtrace_gen_info_probes_table_header,
-  dtrace_gen_info_probes_table_values,
-  dtrace_enable_probe,
-  dtrace_disable_probe
-};
+  static const char *const keywords[] = { "-pdtrace", "-probe-dtrace", NULL };
+
+  return probe_is_linespec_by_keyword (linespecp, keywords);
+}
+
+/* Implementation of the get_probes method.  */
+
+void
+dtrace_static_probe_ops::get_probes (std::vector<probe *> *probesp,
+				     struct objfile *objfile) const
+{
+  bfd *abfd = objfile->obfd;
+  asection *sect = NULL;
+
+  /* Do nothing in case this is a .debug file, instead of the objfile
+     itself.  */
+  if (objfile->separate_debug_objfile_backlink != NULL)
+    return;
+
+  /* Iterate over the sections in OBJFILE looking for DTrace
+     information.  */
+  for (sect = abfd->sections; sect != NULL; sect = sect->next)
+    {
+      if (elf_section_data (sect)->this_hdr.sh_type == SHT_SUNW_dof)
+	{
+	  bfd_byte *dof;
+
+	  /* Read the contents of the DOF section and then process it to
+	     extract the information of any probe defined into it.  */
+	  if (!bfd_malloc_and_get_section (abfd, sect, &dof))
+	    complaint (&symfile_complaints,
+		       _("could not obtain the contents of"
+			 "section '%s' in objfile `%s'."),
+		       sect->name, abfd->filename);
+      
+	  dtrace_process_dof (sect, objfile, probesp,
+			      (struct dtrace_dof_hdr *) dof);
+	  xfree (dof);
+	}
+    }
+}
+
+/* Implementation of the type_name method.  */
+
+const char *
+dtrace_static_probe_ops::type_name () const
+{
+  return "dtrace";
+}
+
+/* Implementation of the gen_info_probes_table_header method.  */
+
+std::vector<struct info_probe_column>
+dtrace_static_probe_ops::gen_info_probes_table_header () const
+{
+  struct info_probe_column dtrace_probe_column;
+
+  dtrace_probe_column.field_name = "enabled";
+  dtrace_probe_column.print_name = _("Enabled");
+
+  return std::vector<struct info_probe_column> { dtrace_probe_column };
+}
 
 /* Implementation of the `info probes dtrace' command.  */
 
 static void
-info_probes_dtrace_command (char *arg, int from_tty)
+info_probes_dtrace_command (const char *arg, int from_tty)
 {
-  info_probes_for_ops (arg, from_tty, &dtrace_probe_ops);
+  info_probes_for_spops (arg, from_tty, &dtrace_static_probe_ops);
 }
 
-void _initialize_dtrace_probe (void);
-
 void
 _initialize_dtrace_probe (void)
 {
-  VEC_safe_push (probe_ops_cp, all_probe_ops, &dtrace_probe_ops);
+  all_static_probe_ops.push_back (&dtrace_static_probe_ops);
 
   add_cmd ("dtrace", class_info, info_probes_dtrace_command,
 	   _("\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dummy-frame.c ./gdb/dummy-frame.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dummy-frame.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dummy-frame.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Code dealing with dummy stack frames, for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -403,7 +403,7 @@ fprint_dummy_frames (struct ui_file *fil
 }
 
 static void
-maintenance_print_dummy_frames (char *args, int from_tty)
+maintenance_print_dummy_frames (const char *args, int from_tty)
 {
   if (args == NULL)
     fprint_dummy_frames (gdb_stdout);
@@ -417,8 +417,6 @@ maintenance_print_dummy_frames (char *ar
     }
 }
 
-extern void _initialize_dummy_frame (void);
-
 void
 _initialize_dummy_frame (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dummy-frame.h ./gdb/dummy-frame.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dummy-frame.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dummy-frame.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Code dealing with dummy stack frames, for GDB, the GNU debugger.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/d-valprint.c ./gdb/d-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/d-valprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/d-valprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support for printing D values for GDB, the GNU debugger.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2expr.c ./gdb/dwarf2expr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2expr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dwarf2expr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* DWARF 2 Expression Evaluator.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    Contributed by Daniel Berlin (dan@dberlin.org)
 
@@ -88,10 +88,7 @@ dwarf_expr_context::address_type () cons
 /* Create a new context for the expression evaluator.  */
 
 dwarf_expr_context::dwarf_expr_context ()
-: stack (NULL),
-  stack_len (0),
-  stack_allocated (10),
-  gdbarch (NULL),
+: gdbarch (NULL),
   addr_size (0),
   ref_addr_size (0),
   offset (0),
@@ -100,53 +97,22 @@ dwarf_expr_context::dwarf_expr_context (
   location (DWARF_VALUE_MEMORY),
   len (0),
   data (NULL),
-  initialized (0),
-  num_pieces (0),
-  pieces (NULL)
+  initialized (0)
 {
-  this->stack = XNEWVEC (struct dwarf_stack_value, this->stack_allocated);
-}
-
-/* Clean up a dwarf_expr_context.  */
-
-dwarf_expr_context::~dwarf_expr_context ()
-{
-  xfree (this->stack);
-  xfree (this->pieces);
-}
-
-/* Expand the memory allocated stack to contain at least
-   NEED more elements than are currently used.  */
-
-void
-dwarf_expr_context::grow_stack (size_t need)
-{
-  if (this->stack_len + need > this->stack_allocated)
-    {
-      size_t newlen = this->stack_len + need + 10;
-
-      this->stack = XRESIZEVEC (struct dwarf_stack_value, this->stack, newlen);
-      this->stack_allocated = newlen;
-    }
 }
 
 /* Push VALUE onto the stack.  */
 
 void
-dwarf_expr_context::push (struct value *value, int in_stack_memory)
+dwarf_expr_context::push (struct value *value, bool in_stack_memory)
 {
-  struct dwarf_stack_value *v;
-
-  grow_stack (1);
-  v = &this->stack[this->stack_len++];
-  v->value = value;
-  v->in_stack_memory = in_stack_memory;
+  stack.emplace_back (value, in_stack_memory);
 }
 
 /* Push VALUE onto the stack.  */
 
 void
-dwarf_expr_context::push_address (CORE_ADDR value, int in_stack_memory)
+dwarf_expr_context::push_address (CORE_ADDR value, bool in_stack_memory)
 {
   push (value_from_ulongest (address_type (), value), in_stack_memory);
 }
@@ -156,9 +122,10 @@ dwarf_expr_context::push_address (CORE_A
 void
 dwarf_expr_context::pop ()
 {
-  if (this->stack_len <= 0)
+  if (stack.empty ())
     error (_("dwarf expression stack underflow"));
-  this->stack_len--;
+
+  stack.pop_back ();
 }
 
 /* Retrieve the N'th item on the stack.  */
@@ -166,11 +133,11 @@ dwarf_expr_context::pop ()
 struct value *
 dwarf_expr_context::fetch (int n)
 {
-  if (this->stack_len <= n)
+  if (stack.size () <= n)
      error (_("Asked for position %d of stack, "
-	      "stack only has %d elements on it."),
-	    n, this->stack_len);
-  return this->stack[this->stack_len - (1 + n)].value;
+	      "stack only has %zu elements on it."),
+	    n, stack.size ());
+  return stack[stack.size () - (1 + n)].value;
 }
 
 /* Require that TYPE be an integral type; throw an exception if not.  */
@@ -263,69 +230,64 @@ dwarf_expr_context::fetch_address (int n
 
 /* Retrieve the in_stack_memory flag of the N'th item on the stack.  */
 
-int
+bool
 dwarf_expr_context::fetch_in_stack_memory (int n)
 {
-  if (this->stack_len <= n)
+  if (stack.size () <= n)
      error (_("Asked for position %d of stack, "
-	      "stack only has %d elements on it."),
-	    n, this->stack_len);
-  return this->stack[this->stack_len - (1 + n)].in_stack_memory;
+	      "stack only has %zu elements on it."),
+	    n, stack.size ());
+  return stack[stack.size () - (1 + n)].in_stack_memory;
 }
 
 /* Return true if the expression stack is empty.  */
 
-int
+bool
 dwarf_expr_context::stack_empty_p () const
 {
-  return this->stack_len == 0;
+  return stack.empty ();
 }
 
 /* Add a new piece to the dwarf_expr_context's piece list.  */
 void
 dwarf_expr_context::add_piece (ULONGEST size, ULONGEST offset)
 {
-  struct dwarf_expr_piece *p;
-
-  this->num_pieces++;
-
-  this->pieces
-    = XRESIZEVEC (struct dwarf_expr_piece, this->pieces, this->num_pieces);
+  this->pieces.emplace_back ();
+  dwarf_expr_piece &p = this->pieces.back ();
 
-  p = &this->pieces[this->num_pieces - 1];
-  p->location = this->location;
-  p->size = size;
-  p->offset = offset;
+  p.location = this->location;
+  p.size = size;
+  p.offset = offset;
 
-  if (p->location == DWARF_VALUE_LITERAL)
+  if (p.location == DWARF_VALUE_LITERAL)
     {
-      p->v.literal.data = this->data;
-      p->v.literal.length = this->len;
+      p.v.literal.data = this->data;
+      p.v.literal.length = this->len;
     }
   else if (stack_empty_p ())
     {
-      p->location = DWARF_VALUE_OPTIMIZED_OUT;
+      p.location = DWARF_VALUE_OPTIMIZED_OUT;
       /* Also reset the context's location, for our callers.  This is
 	 a somewhat strange approach, but this lets us avoid setting
 	 the location to DWARF_VALUE_MEMORY in all the individual
 	 cases in the evaluator.  */
       this->location = DWARF_VALUE_OPTIMIZED_OUT;
     }
-  else if (p->location == DWARF_VALUE_MEMORY)
+  else if (p.location == DWARF_VALUE_MEMORY)
     {
-      p->v.mem.addr = fetch_address (0);
-      p->v.mem.in_stack_memory = fetch_in_stack_memory (0);
+      p.v.mem.addr = fetch_address (0);
+      p.v.mem.in_stack_memory = fetch_in_stack_memory (0);
     }
-  else if (p->location == DWARF_VALUE_IMPLICIT_POINTER)
+  else if (p.location == DWARF_VALUE_IMPLICIT_POINTER)
     {
-      p->v.ptr.die_sect_off = (sect_offset) this->len;
-      p->v.ptr.offset = value_as_long (fetch (0));
+      p.v.ptr.die_sect_off = (sect_offset) this->len;
+      p.v.ptr.offset = value_as_long (fetch (0));
     }
-  else if (p->location == DWARF_VALUE_REGISTER)
-    p->v.regno = value_as_long (fetch (0));
+  else if (p.location == DWARF_VALUE_REGISTER)
+    p.v.regno = value_as_long (fetch (0));
   else
     {
-      p->v.value = fetch (0);
+      p.v.value = fetch (0);
     }
 }
 
@@ -607,12 +569,12 @@ dwarf_expr_context::execute_stack_op (co
       enum dwarf_location_atom op = (enum dwarf_location_atom) *op_ptr++;
       ULONGEST result;
       /* Assume the value is not in stack memory.
-	 Code that knows otherwise sets this to 1.
+	 Code that knows otherwise sets this to true.
 	 Some arithmetic on stack addresses can probably be assumed to still
 	 be a stack address, but we skip this complication for now.
 	 This is just an optimization, so it's always ok to punt
-	 and leave this as 0.  */
-      int in_stack_memory = 0;
+	 and leave this as false.  */
+      bool in_stack_memory = false;
       uint64_t uoffset, reg;
       int64_t offset;
       struct value *result_val = NULL;
@@ -883,14 +845,16 @@ dwarf_expr_context::execute_stack_op (co
 	  {
 	    const gdb_byte *datastart;
 	    size_t datalen;
-	    unsigned int before_stack_len;
 
 	    op_ptr = safe_read_sleb128 (op_ptr, op_end, &offset);
+
 	    /* Rather than create a whole new context, we simply
-	       record the stack length before execution, then reset it
-	       afterwards, effectively erasing whatever the recursive
-	       call put there.  */
-	    before_stack_len = this->stack_len;
+	       backup the current stack locally and install a new empty stack,
+	       then reset it afterwards, effectively erasing whatever the
+	       recursive call put there.  */
+	    std::vector<dwarf_stack_value> saved_stack = std::move (stack);
+	    stack.clear ();
+
 	    /* FIXME: cagney/2003-03-26: This code should be using
                get_frame_base_address(), and then implement a dwarf2
                specific this_base method.  */
@@ -905,8 +869,11 @@ dwarf_expr_context::execute_stack_op (co
 		       "base using explicit value operator"));
 	    result = result + offset;
 	    result_val = value_from_ulongest (address_type, result);
-	    in_stack_memory = 1;
-	    this->stack_len = before_stack_len;
+	    in_stack_memory = true;
+
+	    /* Restore the content of the original stack.  */
+	    stack = std::move (saved_stack);
+
 	    this->location = DWARF_VALUE_MEMORY;
 	  }
 	  break;
@@ -928,16 +895,14 @@ dwarf_expr_context::execute_stack_op (co
 	  
 	case DW_OP_swap:
 	  {
-	    struct dwarf_stack_value t1, t2;
-
-	    if (this->stack_len < 2)
+	    if (stack.size () < 2)
 	       error (_("Not enough elements for "
-			"DW_OP_swap.  Need 2, have %d."),
-		      this->stack_len);
-	    t1 = this->stack[this->stack_len - 1];
-	    t2 = this->stack[this->stack_len - 2];
-	    this->stack[this->stack_len - 1] = t2;
-	    this->stack[this->stack_len - 2] = t1;
+			"DW_OP_swap.  Need 2, have %zu."),
+		      stack.size ());
+
+	    dwarf_stack_value &t1 = stack[stack.size () - 1];
+	    dwarf_stack_value &t2 = stack[stack.size () - 2];
+	    std::swap (t1, t2);
 	    goto no_push;
 	  }
 
@@ -948,18 +913,15 @@ dwarf_expr_context::execute_stack_op (co
 
 	case DW_OP_rot:
 	  {
-	    struct dwarf_stack_value t1, t2, t3;
-
-	    if (this->stack_len < 3)
+	    if (stack.size () < 3)
 	       error (_("Not enough elements for "
-			"DW_OP_rot.  Need 3, have %d."),
-		      this->stack_len);
-	    t1 = this->stack[this->stack_len - 1];
-	    t2 = this->stack[this->stack_len - 2];
-	    t3 = this->stack[this->stack_len - 3];
-	    this->stack[this->stack_len - 1] = t2;
-	    this->stack[this->stack_len - 2] = t3;
-	    this->stack[this->stack_len - 3] = t1;
+			"DW_OP_rot.  Need 3, have %zu."),
+		      stack.size ());
+
+	    dwarf_stack_value temp = stack[stack.size () - 1];
+	    stack[stack.size () - 1] = stack[stack.size () - 2];
+	    stack[stack.size () - 2] = stack[stack.size () - 3];
+	    stack[stack.size () - 3] = temp;
 	    goto no_push;
 	  }
 
@@ -1195,7 +1157,7 @@ dwarf_expr_context::execute_stack_op (co
 	case DW_OP_call_frame_cfa:
 	  result = this->get_frame_cfa ();
 	  result_val = value_from_ulongest (address_type, result);
-	  in_stack_memory = 1;
+	  in_stack_memory = true;
 	  break;
 
 	case DW_OP_GNU_push_tls_address:
@@ -1440,14 +1402,10 @@ dwarf_expr_context::execute_stack_op (co
   if (this->location == DWARF_VALUE_IMPLICIT_POINTER)
     add_piece (8 * this->addr_size, 0);
 
-abort_expression:
   this->recursion_depth--;
   gdb_assert (this->recursion_depth >= 0);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_dwarf2expr;
-
 void
 _initialize_dwarf2expr (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2expr.h ./gdb/dwarf2expr.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2expr.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dwarf2expr.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* DWARF 2 Expression Evaluator.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    Contributed by Daniel Berlin <dan@dberlin.org>.
 
@@ -49,18 +49,68 @@ enum dwarf_value_location
   DWARF_VALUE_IMPLICIT_POINTER
 };
 
+/* A piece of an object, as recorded by DW_OP_piece or DW_OP_bit_piece.  */
+struct dwarf_expr_piece
+{
+  enum dwarf_value_location location;
+
+  union
+  {
+    struct
+    {
+      /* This piece's address, for DWARF_VALUE_MEMORY pieces.  */
+      CORE_ADDR addr;
+      /* Non-zero if the piece is known to be in memory and on
+	 the program's stack.  */
+      bool in_stack_memory;
+    } mem;
+
+    /* The piece's register number, for DWARF_VALUE_REGISTER pieces.  */
+    int regno;
+
+    /* The piece's literal value, for DWARF_VALUE_STACK pieces.  */
+    struct value *value;
+
+    struct
+    {
+      /* A pointer to the data making up this piece,
+	 for DWARF_VALUE_LITERAL pieces.  */
+      const gdb_byte *data;
+      /* The length of the available data.  */
+      ULONGEST length;
+    } literal;
+
+    /* Used for DWARF_VALUE_IMPLICIT_POINTER.  */
+    struct
+    {
+      /* The referent DIE from DW_OP_implicit_pointer.  */
+      sect_offset die_sect_off;
+      /* The byte offset into the resulting data.  */
+      LONGEST offset;
+    } ptr;
+  } v;
+
+  /* The length of the piece, in bits.  */
+  ULONGEST size;
+  /* The piece offset, in bits.  */
+  ULONGEST offset;
+};
+
 /* The dwarf expression stack.  */
 
 struct dwarf_stack_value
 {
+  dwarf_stack_value (struct value *value_, int in_stack_memory_)
+  : value (value_), in_stack_memory (in_stack_memory_)
+  {}
+
   struct value *value;
 
-  /* Non-zero if the piece is in memory and is known to be
-     on the program's stack.  It is always ok to set this to zero.
-     This is used, for example, to optimize memory access from the target.
-     It can vastly speed up backtraces on long latency connections when
-     "set stack-cache on".  */
-  int in_stack_memory;
+  /* True if the piece is in memory and is known to be on the program's stack.
+     It is always ok to set this to zero.  This is used, for example, to
+     optimize memory access from the target.  It can vastly speed up backtraces
+     on long latency connections when "set stack-cache on".  */
+  bool in_stack_memory;
 };
 
 /* The expression evaluator works with a dwarf_expr_context, describing
@@ -68,20 +118,16 @@ struct dwarf_stack_value
 struct dwarf_expr_context
 {
   dwarf_expr_context ();
-  virtual ~dwarf_expr_context ();
+  virtual ~dwarf_expr_context () = default;
 
-  void push_address (CORE_ADDR value, int in_stack_memory);
+  void push_address (CORE_ADDR value, bool in_stack_memory);
   void eval (const gdb_byte *addr, size_t len);
   struct value *fetch (int n);
   CORE_ADDR fetch_address (int n);
-  int fetch_in_stack_memory (int n);
-
-  /* The stack of values, allocated with xmalloc.  */
-  struct dwarf_stack_value *stack;
+  bool fetch_in_stack_memory (int n);
 
-  /* The number of values currently pushed on the stack, and the
-     number of elements allocated to the stack.  */
-  int stack_len, stack_allocated;
+  /* The stack of values.  */
+  std::vector<dwarf_stack_value> stack;
 
   /* Target architecture to use for address operations.  */
   struct gdbarch *gdbarch;
@@ -114,8 +160,7 @@ struct dwarf_expr_context
      initialized; zero otherwise.  */
   int initialized;
 
-  /* An array of pieces.  PIECES points to its first element;
-     NUM_PIECES is its length.
+  /* A vector of pieces.
 
      Each time DW_OP_piece is executed, we add a new element to the
      end of this array, recording the current top of the stack, the
@@ -137,8 +182,7 @@ struct dwarf_expr_context
      no DW_OP_piece operations have no value to place in a piece's
      'size' field; the size comes from the surrounding data.  So the
      two cases need to be handled separately.)  */
-  int num_pieces;
-  struct dwarf_expr_piece *pieces;
+  std::vector<dwarf_expr_piece> pieces;
 
   /* Return the value of register number REGNUM (a DWARF register number),
      read as an address.  */
@@ -205,62 +249,13 @@ struct dwarf_expr_context
 private:
 
   struct type *address_type () const;
-  void grow_stack (size_t need);
-  void push (struct value *value, int in_stack_memory);
-  int stack_empty_p () const;
+  void push (struct value *value, bool in_stack_memory);
+  bool stack_empty_p () const;
   void add_piece (ULONGEST size, ULONGEST offset);
   void execute_stack_op (const gdb_byte *op_ptr, const gdb_byte *op_end);
   void pop ();
 };
 
-
-/* A piece of an object, as recorded by DW_OP_piece or DW_OP_bit_piece.  */
-struct dwarf_expr_piece
-{
-  enum dwarf_value_location location;
-
-  union
-  {
-    struct
-    {
-      /* This piece's address, for DWARF_VALUE_MEMORY pieces.  */
-      CORE_ADDR addr;
-      /* Non-zero if the piece is known to be in memory and on
-	 the program's stack.  */
-      int in_stack_memory;
-    } mem;
-
-    /* The piece's register number, for DWARF_VALUE_REGISTER pieces.  */
-    int regno;
-
-    /* The piece's literal value, for DWARF_VALUE_STACK pieces.  */
-    struct value *value;
-
-    struct
-    {
-      /* A pointer to the data making up this piece,
-	 for DWARF_VALUE_LITERAL pieces.  */
-      const gdb_byte *data;
-      /* The length of the available data.  */
-      ULONGEST length;
-    } literal;
-
-    /* Used for DWARF_VALUE_IMPLICIT_POINTER.  */
-    struct
-    {
-      /* The referent DIE from DW_OP_implicit_pointer.  */
-      sect_offset die_sect_off;
-      /* The byte offset into the resulting data.  */
-      LONGEST offset;
-    } ptr;
-  } v;
-
-  /* The length of the piece, in bits.  */
-  ULONGEST size;
-  /* The piece offset, in bits.  */
-  ULONGEST offset;
-};
-
 void dwarf_expr_require_composition (const gdb_byte *, const gdb_byte *,
 				     const char *);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2-frame.c ./gdb/dwarf2-frame.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2-frame.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dwarf2-frame.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Frame unwinder for frames with DWARF Call Frame Information.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    Contributed by Mark Kettenis.
 
@@ -38,6 +38,10 @@
 #include "ax.h"
 #include "dwarf2loc.h"
 #include "dwarf2-frame-tailcall.h"
+#if GDB_SELF_TEST
+#include "selftest.h"
+#include "selftest-arch.h"
+#endif
 
 struct comp_unit;
 
@@ -165,123 +169,15 @@ static CORE_ADDR read_encoded_value (str
 				     CORE_ADDR func_base);
 
 
-enum cfa_how_kind
-{
-  CFA_UNSET,
-  CFA_REG_OFFSET,
-  CFA_EXP
-};
-
-struct dwarf2_frame_state_reg_info
-{
-  struct dwarf2_frame_state_reg *reg;
-  int num_regs;
-
-  LONGEST cfa_offset;
-  ULONGEST cfa_reg;
-  enum cfa_how_kind cfa_how;
-  const gdb_byte *cfa_exp;
-
-  /* Used to implement DW_CFA_remember_state.  */
-  struct dwarf2_frame_state_reg_info *prev;
-};
-
-/* Structure describing a frame state.  */
-
-struct dwarf2_frame_state
-{
-  /* Each register save state can be described in terms of a CFA slot,
-     another register, or a location expression.  */
-  struct dwarf2_frame_state_reg_info regs;
-
-  /* The PC described by the current frame state.  */
-  CORE_ADDR pc;
-
-  /* Initial register set from the CIE.
-     Used to implement DW_CFA_restore.  */
-  struct dwarf2_frame_state_reg_info initial;
-
-  /* The information we care about from the CIE.  */
-  LONGEST data_align;
-  ULONGEST code_align;
-  ULONGEST retaddr_column;
-
-  /* Flags for known producer quirks.  */
-
-  /* The ARM compilers, in DWARF2 mode, assume that DW_CFA_def_cfa
-     and DW_CFA_def_cfa_offset takes a factored offset.  */
-  int armcc_cfa_offsets_sf;
-
-  /* The ARM compilers, in DWARF2 or DWARF3 mode, may assume that
-     the CFA is defined as REG - OFFSET rather than REG + OFFSET.  */
-  int armcc_cfa_offsets_reversed;
-};
-
 /* Store the length the expression for the CFA in the `cfa_reg' field,
    which is unused in that case.  */
 #define cfa_exp_len cfa_reg
 
-/* Assert that the register set RS is large enough to store gdbarch_num_regs
-   columns.  If necessary, enlarge the register set.  */
-
-static void
-dwarf2_frame_state_alloc_regs (struct dwarf2_frame_state_reg_info *rs,
-			       int num_regs)
+dwarf2_frame_state::dwarf2_frame_state (CORE_ADDR pc_, struct dwarf2_cie *cie)
+  : pc (pc_), data_align (cie->data_alignment_factor),
+    code_align (cie->code_alignment_factor),
+    retaddr_column (cie->return_address_register)
 {
-  size_t size = sizeof (struct dwarf2_frame_state_reg);
-
-  if (num_regs <= rs->num_regs)
-    return;
-
-  rs->reg = (struct dwarf2_frame_state_reg *)
-    xrealloc (rs->reg, num_regs * size);
-
-  /* Initialize newly allocated registers.  */
-  memset (rs->reg + rs->num_regs, 0, (num_regs - rs->num_regs) * size);
-  rs->num_regs = num_regs;
-}
-
-/* Copy the register columns in register set RS into newly allocated
-   memory and return a pointer to this newly created copy.  */
-
-static struct dwarf2_frame_state_reg *
-dwarf2_frame_state_copy_regs (struct dwarf2_frame_state_reg_info *rs)
-{
-  size_t size = rs->num_regs * sizeof (struct dwarf2_frame_state_reg);
-  struct dwarf2_frame_state_reg *reg;
-
-  reg = (struct dwarf2_frame_state_reg *) xmalloc (size);
-  memcpy (reg, rs->reg, size);
-
-  return reg;
-}
-
-/* Release the memory allocated to register set RS.  */
-
-static void
-dwarf2_frame_state_free_regs (struct dwarf2_frame_state_reg_info *rs)
-{
-  if (rs)
-    {
-      dwarf2_frame_state_free_regs (rs->prev);
-
-      xfree (rs->reg);
-      xfree (rs);
-    }
-}
-
-/* Release the memory allocated to the frame state FS.  */
-
-static void
-dwarf2_frame_state_free (void *p)
-{
-  struct dwarf2_frame_state *fs = (struct dwarf2_frame_state *) p;
-
-  dwarf2_frame_state_free_regs (fs->initial.prev);
-  dwarf2_frame_state_free_regs (fs->regs.prev);
-  xfree (fs->initial.reg);
-  xfree (fs->regs.reg);
-  xfree (fs);
 }
 
 
@@ -306,7 +202,7 @@ dwarf2_restore_rule (struct gdbarch *gdb
 
   gdb_assert (fs->initial.reg);
   reg = dwarf2_frame_adjust_regnum (gdbarch, reg_num, eh_frame_p);
-  dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
+  fs->regs.alloc_regs (reg + 1);
 
   /* Check if this register was explicitly initialized in the
   CIE initial instructions.  If not, default the rule to
@@ -460,7 +356,7 @@ execute_cfa_program (struct dwarf2_fde *
 	  reg = dwarf2_frame_adjust_regnum (gdbarch, reg, eh_frame_p);
 	  insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &utmp);
 	  offset = utmp * fs->data_align;
-	  dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
+	  fs->regs.alloc_regs (reg + 1);
 	  fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_OFFSET;
 	  fs->regs.reg[reg].loc.offset = offset;
 	}
@@ -504,7 +400,7 @@ execute_cfa_program (struct dwarf2_fde *
 	      reg = dwarf2_frame_adjust_regnum (gdbarch, reg, eh_frame_p);
 	      insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &utmp);
 	      offset = utmp * fs->data_align;
-	      dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
+	      fs->regs.alloc_regs (reg + 1);
 	      fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_OFFSET;
 	      fs->regs.reg[reg].loc.offset = offset;
 	      break;
@@ -517,14 +413,14 @@ execute_cfa_program (struct dwarf2_fde *
 	    case DW_CFA_undefined:
 	      insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &reg);
 	      reg = dwarf2_frame_adjust_regnum (gdbarch, reg, eh_frame_p);
-	      dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
+	      fs->regs.alloc_regs (reg + 1);
 	      fs->regs.reg[reg].how = DWARF2_FRAME_REG_UNDEFINED;
 	      break;
 
 	    case DW_CFA_same_value:
 	      insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &reg);
 	      reg = dwarf2_frame_adjust_regnum (gdbarch, reg, eh_frame_p);
-	      dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
+	      fs->regs.alloc_regs (reg + 1);
 	      fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAME_VALUE;
 	      break;
 
@@ -533,7 +429,7 @@ execute_cfa_program (struct dwarf2_fde *
 	      reg = dwarf2_frame_adjust_regnum (gdbarch, reg, eh_frame_p);
 	      insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &utmp);
 	      utmp = dwarf2_frame_adjust_regnum (gdbarch, utmp, eh_frame_p);
-	      dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
+	      fs->regs.alloc_regs (reg + 1);
 	      fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_REG;
 	      fs->regs.reg[reg].loc.reg = utmp;
 	      break;
@@ -542,9 +438,7 @@ execute_cfa_program (struct dwarf2_fde *
 	      {
 		struct dwarf2_frame_state_reg_info *new_rs;
 
-		new_rs = XNEW (struct dwarf2_frame_state_reg_info);
-		*new_rs = fs->regs;
-		fs->regs.reg = dwarf2_frame_state_copy_regs (&fs->regs);
+		new_rs = new dwarf2_frame_state_reg_info (fs->regs);
 		fs->regs.prev = new_rs;
 	      }
 	      break;
@@ -560,11 +454,7 @@ bad CFI data; mismatched DW_CFA_restore_
 			       paddress (gdbarch, fs->pc));
 		  }
 		else
-		  {
-		    xfree (fs->regs.reg);
-		    fs->regs = *old_rs;
-		    xfree (old_rs);
-		  }
+		  fs->regs = std::move (*old_rs);
 	      }
 	      break;
 
@@ -611,10 +501,10 @@ bad CFI data; mismatched DW_CFA_restore_
 	    case DW_CFA_expression:
 	      insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &reg);
 	      reg = dwarf2_frame_adjust_regnum (gdbarch, reg, eh_frame_p);
-	      dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
+	      fs->regs.alloc_regs (reg + 1);
 	      insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &utmp);
-	      fs->regs.reg[reg].loc.exp = insn_ptr;
-	      fs->regs.reg[reg].exp_len = utmp;
+	      fs->regs.reg[reg].loc.exp.start = insn_ptr;
+	      fs->regs.reg[reg].loc.exp.len = utmp;
 	      fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_EXP;
 	      insn_ptr += utmp;
 	      break;
@@ -624,14 +514,14 @@ bad CFI data; mismatched DW_CFA_restore_
 	      reg = dwarf2_frame_adjust_regnum (gdbarch, reg, eh_frame_p);
 	      insn_ptr = safe_read_sleb128 (insn_ptr, insn_end, &offset);
 	      offset *= fs->data_align;
-	      dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
+	      fs->regs.alloc_regs (reg + 1);
 	      fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_OFFSET;
 	      fs->regs.reg[reg].loc.offset = offset;
 	      break;
 
 	    case DW_CFA_val_offset:
 	      insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &reg);
-	      dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
+	      fs->regs.alloc_regs (reg + 1);
 	      insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &utmp);
 	      offset = utmp * fs->data_align;
 	      fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_VAL_OFFSET;
@@ -640,7 +530,7 @@ bad CFI data; mismatched DW_CFA_restore_
 
 	    case DW_CFA_val_offset_sf:
 	      insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &reg);
-	      dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
+	      fs->regs.alloc_regs (reg + 1);
 	      insn_ptr = safe_read_sleb128 (insn_ptr, insn_end, &offset);
 	      offset *= fs->data_align;
 	      fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_VAL_OFFSET;
@@ -649,10 +539,10 @@ bad CFI data; mismatched DW_CFA_restore_
 
 	    case DW_CFA_val_expression:
 	      insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &reg);
-	      dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
+	      fs->regs.alloc_regs (reg + 1);
 	      insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &utmp);
-	      fs->regs.reg[reg].loc.exp = insn_ptr;
-	      fs->regs.reg[reg].exp_len = utmp;
+	      fs->regs.reg[reg].loc.exp.start = insn_ptr;
+	      fs->regs.reg[reg].loc.exp.len = utmp;
 	      fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_VAL_EXP;
 	      insn_ptr += utmp;
 	      break;
@@ -672,31 +562,6 @@ bad CFI data; mismatched DW_CFA_restore_
 	      /* cfa_how deliberately not set.  */
 	      break;
 
-	    case DW_CFA_GNU_window_save:
-	      /* This is SPARC-specific code, and contains hard-coded
-		 constants for the register numbering scheme used by
-		 GCC.  Rather than having a architecture-specific
-		 operation that's only ever used by a single
-		 architecture, we provide the implementation here.
-		 Incidentally that's what GCC does too in its
-		 unwinder.  */
-	      {
-		int size = register_size (gdbarch, 0);
-
-		dwarf2_frame_state_alloc_regs (&fs->regs, 32);
-		for (reg = 8; reg < 16; reg++)
-		  {
-		    fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_REG;
-		    fs->regs.reg[reg].loc.reg = reg + 16;
-		  }
-		for (reg = 16; reg < 32; reg++)
-		  {
-		    fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_OFFSET;
-		    fs->regs.reg[reg].loc.offset = (reg - 16) * size;
-		  }
-	      }
-	      break;
-
 	    case DW_CFA_GNU_args_size:
 	      /* Ignored.  */
 	      insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &utmp);
@@ -707,14 +572,23 @@ bad CFI data; mismatched DW_CFA_restore_
 	      reg = dwarf2_frame_adjust_regnum (gdbarch, reg, eh_frame_p);
 	      insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &utmp);
 	      offset = utmp * fs->data_align;
-	      dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
+	      fs->regs.alloc_regs (reg + 1);
 	      fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_OFFSET;
 	      fs->regs.reg[reg].loc.offset = -offset;
 	      break;
 
 	    default:
-	      internal_error (__FILE__, __LINE__,
-			      _("Unknown CFI encountered."));
+	      if (insn >= DW_CFA_lo_user && insn <= DW_CFA_hi_user)
+		{
+		  /* Handle vendor-specific CFI for different architectures.  */
+		  if (!gdbarch_execute_dwarf_cfa_vendor_op (gdbarch, insn, fs))
+		    error (_("Call Frame Instruction op %d in vendor extension "
+			     "space is not handled on this architecture."),
+			   insn);
+		}
+	      else
+		internal_error (__FILE__, __LINE__,
+				_("Unknown CFI encountered."));
 	    }
 	}
     }
@@ -722,12 +596,73 @@ bad CFI data; mismatched DW_CFA_restore_
   if (fs->initial.reg == NULL)
     {
       /* Don't allow remember/restore between CIE and FDE programs.  */
-      dwarf2_frame_state_free_regs (fs->regs.prev);
+      delete fs->regs.prev;
       fs->regs.prev = NULL;
     }
 
   return insn_ptr;
 }
+
+#if GDB_SELF_TEST
+
+namespace selftests {
+
+/* Unit test to function execute_cfa_program.  */
+
+static void
+execute_cfa_program_test (struct gdbarch *gdbarch)
+{
+  struct dwarf2_fde fde;
+  struct dwarf2_cie cie;
+
+  memset (&fde, 0, sizeof fde);
+  memset (&cie, 0, sizeof cie);
+
+  cie.data_alignment_factor = -4;
+  cie.code_alignment_factor = 2;
+  fde.cie = &cie;
+
+  dwarf2_frame_state fs (0, fde.cie);
+
+  gdb_byte insns[] =
+    {
+      DW_CFA_def_cfa, 1, 4,  /* DW_CFA_def_cfa: r1 ofs 4 */
+      DW_CFA_offset | 0x2, 1,  /* DW_CFA_offset: r2 at cfa-4 */
+      DW_CFA_remember_state,
+      DW_CFA_restore_state,
+    };
+
+  const gdb_byte *insn_end = insns + sizeof (insns);
+  const gdb_byte *out = execute_cfa_program (&fde, insns, insn_end, gdbarch,
+					     0, &fs);
+
+  SELF_CHECK (out == insn_end);
+  SELF_CHECK (fs.pc == 0);
+
+  /* The instructions above only use r1 and r2, but the register numbers
+     used are adjusted by dwarf2_frame_adjust_regnum.  */
+  auto r1 = dwarf2_frame_adjust_regnum (gdbarch, 1, fde.eh_frame_p);
+  auto r2 = dwarf2_frame_adjust_regnum (gdbarch, 2, fde.eh_frame_p);
+
+  SELF_CHECK (fs.regs.num_regs == (std::max (r1, r2) + 1));
+
+  SELF_CHECK (fs.regs.reg[r2].how == DWARF2_FRAME_REG_SAVED_OFFSET);
+  SELF_CHECK (fs.regs.reg[r2].loc.offset == -4);
+
+  for (auto i = 0; i < fs.regs.num_regs; i++)
+    if (i != r2)
+      SELF_CHECK (fs.regs.reg[i].how == DWARF2_FRAME_REG_UNSPECIFIED);
+
+  SELF_CHECK (fs.regs.cfa_reg == 1);
+  SELF_CHECK (fs.regs.cfa_offset == 4);
+  SELF_CHECK (fs.regs.cfa_how == CFA_REG_OFFSET);
+  SELF_CHECK (fs.regs.cfa_exp == NULL);
+  SELF_CHECK (fs.regs.prev == NULL);
+}
+
+} // namespace selftests
+#endif /* GDB_SELF_TEST */
+
 
 
 /* Architecture-specific operations.  */
@@ -933,21 +868,14 @@ dwarf2_fetch_cfa_info (struct gdbarch *g
 {
   struct dwarf2_fde *fde;
   CORE_ADDR text_offset;
-  struct dwarf2_frame_state fs;
-
-  memset (&fs, 0, sizeof (struct dwarf2_frame_state));
-
-  fs.pc = pc;
+  CORE_ADDR pc1 = pc;
 
   /* Find the correct FDE.  */
-  fde = dwarf2_frame_find_fde (&fs.pc, &text_offset);
+  fde = dwarf2_frame_find_fde (&pc1, &text_offset);
   if (fde == NULL)
     error (_("Could not compute CFA; needed to translate this expression"));
 
-  /* Extract any interesting information from the CIE.  */
-  fs.data_align = fde->cie->data_alignment_factor;
-  fs.code_align = fde->cie->code_alignment_factor;
-  fs.retaddr_column = fde->cie->return_address_register;
+  dwarf2_frame_state fs (pc1, fde->cie);
 
   /* Check for "quirks" - known bugs in producers.  */
   dwarf2_frame_find_quirks (&fs, fde);
@@ -958,7 +886,6 @@ dwarf2_fetch_cfa_info (struct gdbarch *g
 
   /* Save the initialized register set.  */
   fs.initial = fs.regs;
-  fs.initial.reg = dwarf2_frame_state_copy_regs (&fs.regs);
 
   /* Then decode the insns in the FDE up to our target PC.  */
   execute_cfa_program (fde, fde->instructions, fde->end, gdbarch, pc, &fs);
@@ -1033,25 +960,13 @@ struct dwarf2_frame_cache
   int entry_cfa_sp_offset_p;
 };
 
-/* A cleanup that sets a pointer to NULL.  */
-
-static void
-clear_pointer_cleanup (void *arg)
-{
-  void **ptr = (void **) arg;
-
-  *ptr = NULL;
-}
-
 static struct dwarf2_frame_cache *
 dwarf2_frame_cache (struct frame_info *this_frame, void **this_cache)
 {
-  struct cleanup *reset_cache_cleanup, *old_chain;
   struct gdbarch *gdbarch = get_frame_arch (this_frame);
   const int num_regs = gdbarch_num_regs (gdbarch)
 		       + gdbarch_num_pseudo_regs (gdbarch);
   struct dwarf2_frame_cache *cache;
-  struct dwarf2_frame_state *fs;
   struct dwarf2_fde *fde;
   CORE_ADDR entry_pc;
   const gdb_byte *instr;
@@ -1063,11 +978,6 @@ dwarf2_frame_cache (struct frame_info *t
   cache = FRAME_OBSTACK_ZALLOC (struct dwarf2_frame_cache);
   cache->reg = FRAME_OBSTACK_CALLOC (num_regs, struct dwarf2_frame_state_reg);
   *this_cache = cache;
-  reset_cache_cleanup = make_cleanup (clear_pointer_cleanup, this_cache);
-
-  /* Allocate and initialize the frame state.  */
-  fs = XCNEW (struct dwarf2_frame_state);
-  old_chain = make_cleanup (dwarf2_frame_state_free, fs);
 
   /* Unwind the PC.
 
@@ -1084,41 +994,39 @@ dwarf2_frame_cache (struct frame_info *t
      get_frame_address_in_block does just this.  It's not clear how
      reliable the method is though; there is the potential for the
      register state pre-call being different to that on return.  */
-  fs->pc = get_frame_address_in_block (this_frame);
+  CORE_ADDR pc1 = get_frame_address_in_block (this_frame);
 
   /* Find the correct FDE.  */
-  fde = dwarf2_frame_find_fde (&fs->pc, &cache->text_offset);
+  fde = dwarf2_frame_find_fde (&pc1, &cache->text_offset);
   gdb_assert (fde != NULL);
 
-  /* Extract any interesting information from the CIE.  */
-  fs->data_align = fde->cie->data_alignment_factor;
-  fs->code_align = fde->cie->code_alignment_factor;
-  fs->retaddr_column = fde->cie->return_address_register;
+  /* Allocate and initialize the frame state.  */
+  struct dwarf2_frame_state fs (pc1, fde->cie);
+
   cache->addr_size = fde->cie->addr_size;
 
   /* Check for "quirks" - known bugs in producers.  */
-  dwarf2_frame_find_quirks (fs, fde);
+  dwarf2_frame_find_quirks (&fs, fde);
 
   /* First decode all the insns in the CIE.  */
   execute_cfa_program (fde, fde->cie->initial_instructions,
 		       fde->cie->end, gdbarch,
-		       get_frame_address_in_block (this_frame), fs);
+		       get_frame_address_in_block (this_frame), &fs);
 
   /* Save the initialized register set.  */
-  fs->initial = fs->regs;
-  fs->initial.reg = dwarf2_frame_state_copy_regs (&fs->regs);
+  fs.initial = fs.regs;
 
   if (get_frame_func_if_available (this_frame, &entry_pc))
     {
       /* Decode the insns in the FDE up to the entry PC.  */
       instr = execute_cfa_program (fde, fde->instructions, fde->end, gdbarch,
-				   entry_pc, fs);
+				   entry_pc, &fs);
 
-      if (fs->regs.cfa_how == CFA_REG_OFFSET
-	  && (dwarf_reg_to_regnum (gdbarch, fs->regs.cfa_reg)
+      if (fs.regs.cfa_how == CFA_REG_OFFSET
+	  && (dwarf_reg_to_regnum (gdbarch, fs.regs.cfa_reg)
 	      == gdbarch_sp_regnum (gdbarch)))
 	{
-	  cache->entry_cfa_sp_offset = fs->regs.cfa_offset;
+	  cache->entry_cfa_sp_offset = fs.regs.cfa_offset;
 	  cache->entry_cfa_sp_offset_p = 1;
 	}
     }
@@ -1127,24 +1035,24 @@ dwarf2_frame_cache (struct frame_info *t
 
   /* Then decode the insns in the FDE up to our target PC.  */
   execute_cfa_program (fde, instr, fde->end, gdbarch,
-		       get_frame_address_in_block (this_frame), fs);
+		       get_frame_address_in_block (this_frame), &fs);
 
   TRY
     {
       /* Calculate the CFA.  */
-      switch (fs->regs.cfa_how)
+      switch (fs.regs.cfa_how)
 	{
 	case CFA_REG_OFFSET:
-	  cache->cfa = read_addr_from_reg (this_frame, fs->regs.cfa_reg);
-	  if (fs->armcc_cfa_offsets_reversed)
-	    cache->cfa -= fs->regs.cfa_offset;
+	  cache->cfa = read_addr_from_reg (this_frame, fs.regs.cfa_reg);
+	  if (fs.armcc_cfa_offsets_reversed)
+	    cache->cfa -= fs.regs.cfa_offset;
 	  else
-	    cache->cfa += fs->regs.cfa_offset;
+	    cache->cfa += fs.regs.cfa_offset;
 	  break;
 
 	case CFA_EXP:
 	  cache->cfa =
-	    execute_stack_op (fs->regs.cfa_exp, fs->regs.cfa_exp_len,
+	    execute_stack_op (fs.regs.cfa_exp, fs.regs.cfa_exp_len,
 			      cache->addr_size, cache->text_offset,
 			      this_frame, 0, 0);
 	  break;
@@ -1158,8 +1066,6 @@ dwarf2_frame_cache (struct frame_info *t
       if (ex.error == NOT_AVAILABLE_ERROR)
 	{
 	  cache->unavailable_retaddr = 1;
-	  do_cleanups (old_chain);
-	  discard_cleanups (reset_cache_cleanup);
 	  return cache;
 	}
 
@@ -1182,7 +1088,7 @@ dwarf2_frame_cache (struct frame_info *t
   {
     int column;		/* CFI speak for "register number".  */
 
-    for (column = 0; column < fs->regs.num_regs; column++)
+    for (column = 0; column < fs.regs.num_regs; column++)
       {
 	/* Use the GDB register number as the destination index.  */
 	int regnum = dwarf_reg_to_regnum (gdbarch, column);
@@ -1202,16 +1108,16 @@ dwarf2_frame_cache (struct frame_info *t
 	   problems when a debug info register falls outside of the
 	   table.  We need a way of iterating through all the valid
 	   DWARF2 register numbers.  */
-	if (fs->regs.reg[column].how == DWARF2_FRAME_REG_UNSPECIFIED)
+	if (fs.regs.reg[column].how == DWARF2_FRAME_REG_UNSPECIFIED)
 	  {
 	    if (cache->reg[regnum].how == DWARF2_FRAME_REG_UNSPECIFIED)
 	      complaint (&symfile_complaints, _("\
 incomplete CFI data; unspecified registers (e.g., %s) at %s"),
 			 gdbarch_register_name (gdbarch, regnum),
-			 paddress (gdbarch, fs->pc));
+			 paddress (gdbarch, fs.pc));
 	  }
 	else
-	  cache->reg[regnum] = fs->regs.reg[column];
+	  cache->reg[regnum] = fs.regs.reg[column];
       }
   }
 
@@ -1226,7 +1132,7 @@ incomplete CFI data; unspecified registe
 	    || cache->reg[regnum].how == DWARF2_FRAME_REG_RA_OFFSET)
 	  {
 	    struct dwarf2_frame_state_reg *retaddr_reg =
-	      &fs->regs.reg[fs->retaddr_column];
+	      &fs.regs.reg[fs.retaddr_column];
 
 	    /* It seems rather bizarre to specify an "empty" column as
                the return adress column.  However, this is exactly
@@ -1235,7 +1141,7 @@ incomplete CFI data; unspecified registe
                register corresponding to the return address column.
                Incidentally, that's how we should treat a return
                address column specifying "same value" too.  */
-	    if (fs->retaddr_column < fs->regs.num_regs
+	    if (fs.retaddr_column < fs.regs.num_regs
 		&& retaddr_reg->how != DWARF2_FRAME_REG_UNSPECIFIED
 		&& retaddr_reg->how != DWARF2_FRAME_REG_SAME_VALUE)
 	      {
@@ -1248,12 +1154,12 @@ incomplete CFI data; unspecified registe
 	      {
 		if (cache->reg[regnum].how == DWARF2_FRAME_REG_RA)
 		  {
-		    cache->reg[regnum].loc.reg = fs->retaddr_column;
+		    cache->reg[regnum].loc.reg = fs.retaddr_column;
 		    cache->reg[regnum].how = DWARF2_FRAME_REG_SAVED_REG;
 		  }
 		else
 		  {
-		    cache->retaddr_reg.loc.reg = fs->retaddr_column;
+		    cache->retaddr_reg.loc.reg = fs.retaddr_column;
 		    cache->retaddr_reg.how = DWARF2_FRAME_REG_SAVED_REG;
 		  }
 	      }
@@ -1261,12 +1167,10 @@ incomplete CFI data; unspecified registe
       }
   }
 
-  if (fs->retaddr_column < fs->regs.num_regs
-      && fs->regs.reg[fs->retaddr_column].how == DWARF2_FRAME_REG_UNDEFINED)
+  if (fs.retaddr_column < fs.regs.num_regs
+      && fs.regs.reg[fs.retaddr_column].how == DWARF2_FRAME_REG_UNDEFINED)
     cache->undefined_retaddr = 1;
 
-  do_cleanups (old_chain);
-  discard_cleanups (reset_cache_cleanup);
   return cache;
 }
 
@@ -1354,8 +1258,8 @@ dwarf2_frame_prev_register (struct frame
       return frame_unwind_got_register (this_frame, regnum, realnum);
 
     case DWARF2_FRAME_REG_SAVED_EXP:
-      addr = execute_stack_op (cache->reg[regnum].loc.exp,
-			       cache->reg[regnum].exp_len,
+      addr = execute_stack_op (cache->reg[regnum].loc.exp.start,
+			       cache->reg[regnum].loc.exp.len,
 			       cache->addr_size, cache->text_offset,
 			       this_frame, cache->cfa, 1);
       return frame_unwind_got_memory (this_frame, regnum, addr);
@@ -1365,8 +1269,8 @@ dwarf2_frame_prev_register (struct frame
       return frame_unwind_got_constant (this_frame, regnum, addr);
 
     case DWARF2_FRAME_REG_SAVED_VAL_EXP:
-      addr = execute_stack_op (cache->reg[regnum].loc.exp,
-			       cache->reg[regnum].exp_len,
+      addr = execute_stack_op (cache->reg[regnum].loc.exp.start,
+			       cache->reg[regnum].loc.exp.len,
 			       cache->addr_size, cache->text_offset,
 			       this_frame, cache->cfa, 1);
       return frame_unwind_got_constant (this_frame, regnum, addr);
@@ -2492,12 +2396,14 @@ dwarf2_build_frame_info (struct objfile 
   set_objfile_data (objfile, dwarf2_frame_objfile_data, fde_table2);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_dwarf2_frame (void);
-
 void
 _initialize_dwarf2_frame (void)
 {
   dwarf2_frame_data = gdbarch_data_register_pre_init (dwarf2_frame_init);
   dwarf2_frame_objfile_data = register_objfile_data ();
+
+#if GDB_SELF_TEST
+  selftests::register_test_foreach_arch ("execute_cfa_program",
+					 selftests::execute_cfa_program_test);
+#endif
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2-frame.h ./gdb/dwarf2-frame.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2-frame.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dwarf2-frame.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Frame unwinder for frames with DWARF Call Frame Information.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    Contributed by Mark Kettenis.
 
@@ -74,14 +74,142 @@ struct dwarf2_frame_state_reg
   union {
     LONGEST offset;
     ULONGEST reg;
-    const gdb_byte *exp;
+    struct
+    {
+      const gdb_byte *start;
+      ULONGEST len;
+    } exp;
     struct value *(*fn) (struct frame_info *this_frame, void **this_cache,
 			 int regnum);
   } loc;
-  ULONGEST exp_len;
   enum dwarf2_frame_reg_rule how;
 };
 
+enum cfa_how_kind
+{
+  CFA_UNSET,
+  CFA_REG_OFFSET,
+  CFA_EXP
+};
+
+struct dwarf2_frame_state_reg_info
+{
+  dwarf2_frame_state_reg_info () = default;
+  ~dwarf2_frame_state_reg_info ()
+  {
+    delete prev;
+    xfree (reg);
+  }
+
+  /* Copy constructor.  */
+  dwarf2_frame_state_reg_info (const dwarf2_frame_state_reg_info &src)
+    : num_regs (src.num_regs), cfa_offset (src.cfa_offset),
+      cfa_reg (src.cfa_reg), cfa_how (src.cfa_how), cfa_exp (src.cfa_exp),
+      prev (src.prev)
+  {
+    size_t size = src.num_regs * sizeof (struct dwarf2_frame_state_reg);
+
+    reg = (struct dwarf2_frame_state_reg *) xmalloc (size);
+    memcpy (reg, src.reg, size);
+  }
+
+  /* Assignment operator for both move-assignment and copy-assignment.  */
+  dwarf2_frame_state_reg_info&
+  operator= (dwarf2_frame_state_reg_info rhs)
+  {
+    swap (*this, rhs);
+    return *this;
+  }
+
+  /* Move constructor.  */
+  dwarf2_frame_state_reg_info (dwarf2_frame_state_reg_info &&rhs) noexcept
+    : reg (rhs.reg), num_regs (rhs.num_regs), cfa_offset (rhs.cfa_offset),
+      cfa_reg (rhs.cfa_reg), cfa_how (rhs.cfa_how), cfa_exp (rhs.cfa_exp),
+      prev (rhs.prev)
+  {
+    rhs.prev = nullptr;
+    rhs.reg = nullptr;
+  }
+
+/* Assert that the register set RS is large enough to store gdbarch_num_regs
+   columns.  If necessary, enlarge the register set.  */
+  void alloc_regs (int num_regs_requested)
+  {
+    if (num_regs_requested <= num_regs)
+      return;
+
+    size_t size = sizeof (struct dwarf2_frame_state_reg);
+
+    reg = (struct dwarf2_frame_state_reg *)
+      xrealloc (reg, num_regs_requested * size);
+
+    /* Initialize newly allocated registers.  */
+    memset (reg + num_regs, 0, (num_regs_requested - num_regs) * size);
+    num_regs = num_regs_requested;
+  }
+
+  struct dwarf2_frame_state_reg *reg = NULL;
+  int num_regs = 0;
+
+  LONGEST cfa_offset = 0;
+  ULONGEST cfa_reg = 0;
+  enum cfa_how_kind cfa_how = CFA_UNSET;
+  const gdb_byte *cfa_exp = NULL;
+
+  /* Used to implement DW_CFA_remember_state.  */
+  struct dwarf2_frame_state_reg_info *prev = NULL;
+
+private:
+  friend void swap (dwarf2_frame_state_reg_info& lhs,
+		    dwarf2_frame_state_reg_info& rhs)
+  {
+    using std::swap;
+
+    swap (lhs.reg, rhs.reg);
+    swap (lhs.num_regs, rhs.num_regs);
+    swap (lhs.cfa_offset, rhs.cfa_offset);
+    swap (lhs.cfa_reg, rhs.cfa_reg);
+    swap (lhs.cfa_how, rhs.cfa_how);
+    swap (lhs.cfa_exp, rhs.cfa_exp);
+    swap (lhs.prev, rhs.prev);
+  }
+};
+
+struct dwarf2_cie;
+
+/* Structure describing a frame state.  */
+
+struct dwarf2_frame_state
+{
+  dwarf2_frame_state (CORE_ADDR pc, struct dwarf2_cie *cie);
+
+  /* Each register save state can be described in terms of a CFA slot,
+     another register, or a location expression.  */
+  struct dwarf2_frame_state_reg_info regs {};
+
+  /* The PC described by the current frame state.  */
+  CORE_ADDR pc;
+
+  /* Initial register set from the CIE.
+     Used to implement DW_CFA_restore.  */
+  struct dwarf2_frame_state_reg_info initial {};
+
+  /* The information we care about from the CIE.  */
+  const LONGEST data_align;
+  const ULONGEST code_align;
+  const ULONGEST retaddr_column;
+
+  /* Flags for known producer quirks.  */
+
+  /* The ARM compilers, in DWARF2 mode, assume that DW_CFA_def_cfa
+     and DW_CFA_def_cfa_offset takes a factored offset.  */
+  bool armcc_cfa_offsets_sf = false;
+
+  /* The ARM compilers, in DWARF2 or DWARF3 mode, may assume that
+     the CFA is defined as REG - OFFSET rather than REG + OFFSET.  */
+  bool armcc_cfa_offsets_reversed = false;
+};
+
 /* Set the architecture-specific register state initialization
    function for GDBARCH to INIT_REG.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2-frame-tailcall.c ./gdb/dwarf2-frame-tailcall.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2-frame-tailcall.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dwarf2-frame-tailcall.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Virtual tail call frames unwinder for GDB.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -464,9 +464,6 @@ const struct frame_unwind dwarf2_tailcal
   tailcall_frame_prev_arch
 };
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_tailcall_frame;
-
 void
 _initialize_tailcall_frame (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2-frame-tailcall.h ./gdb/dwarf2-frame-tailcall.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2-frame-tailcall.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dwarf2-frame-tailcall.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for virtual tail call frames unwinder for GDB.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2loc.c ./gdb/dwarf2loc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2loc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dwarf2loc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* DWARF 2 location expression support for GDB.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    Contributed by Daniel Jacobowitz, MontaVista Software, Inc.
 
@@ -43,6 +43,7 @@
 #include <vector>
 #include <unordered_set>
 #include "common/underlying.h"
+#include "common/byte-vector.h"
 
 extern int dwarf_always_disassemble;
 
@@ -1478,19 +1479,13 @@ value_of_dwarf_block_entry (struct type 
 struct piece_closure
 {
   /* Reference count.  */
-  int refc;
+  int refc = 0;
 
   /* The CU from which this closure's expression came.  */
-  struct dwarf2_per_cu_data *per_cu;
-
-  /* The number of pieces used to describe this variable.  */
-  int n_pieces;
-
-  /* The target address size, used only for DWARF_VALUE_STACK.  */
-  int addr_size;
+  struct dwarf2_per_cu_data *per_cu = NULL;
 
-  /* The pieces themselves.  */
-  struct dwarf_expr_piece *pieces;
+  /* The pieces describing this variable.  */
+  std::vector<dwarf_expr_piece> pieces;
 
   /* Frame ID of frame to which a register value is relative, used
      only by DWARF_VALUE_REGISTER.  */
@@ -1502,26 +1497,22 @@ struct piece_closure
 
 static struct piece_closure *
 allocate_piece_closure (struct dwarf2_per_cu_data *per_cu,
-			int n_pieces, struct dwarf_expr_piece *pieces,
-			int addr_size, struct frame_info *frame)
+			std::vector<dwarf_expr_piece> &&pieces,
+			struct frame_info *frame)
 {
-  struct piece_closure *c = XCNEW (struct piece_closure);
-  int i;
+  struct piece_closure *c = new piece_closure;
 
   c->refc = 1;
   c->per_cu = per_cu;
-  c->n_pieces = n_pieces;
-  c->addr_size = addr_size;
-  c->pieces = XCNEWVEC (struct dwarf_expr_piece, n_pieces);
+  c->pieces = std::move (pieces);
   if (frame == NULL)
     c->frame_id = null_frame_id;
   else
     c->frame_id = get_frame_id (frame);
 
-  memcpy (c->pieces, pieces, n_pieces * sizeof (struct dwarf_expr_piece));
-  for (i = 0; i < n_pieces; ++i)
-    if (c->pieces[i].location == DWARF_VALUE_STACK)
-      value_incref (c->pieces[i].v.value);
+  for (dwarf_expr_piece &piece : c->pieces)
+    if (piece.location == DWARF_VALUE_STACK)
+      value_incref (piece.v.value);
 
   return c;
 }
@@ -1756,76 +1747,81 @@ copy_bitwise_tests (void)
 
 #endif /* GDB_SELF_TEST */
 
+/* Return the number of bytes overlapping a contiguous chunk of N_BITS
+   bits whose first bit is located at bit offset START.  */
+
+static size_t
+bits_to_bytes (ULONGEST start, ULONGEST n_bits)
+{
+  return (start % 8 + n_bits + 7) / 8;
+}
+
+/* Read or write a pieced value V.  If FROM != NULL, operate in "write
+   mode": copy FROM into the pieces comprising V.  If FROM == NULL,
+   operate in "read mode": fetch the contents of the (lazy) value V by
+   composing it from its pieces.  */
+
 static void
-read_pieced_value (struct value *v)
+rw_pieced_value (struct value *v, struct value *from)
 {
   int i;
-  long offset = 0;
+  LONGEST offset = 0, max_offset;
   ULONGEST bits_to_skip;
-  gdb_byte *contents;
+  gdb_byte *v_contents;
+  const gdb_byte *from_contents;
   struct piece_closure *c
     = (struct piece_closure *) value_computed_closure (v);
-  size_t type_len;
-  size_t buffer_size = 0;
-  std::vector<gdb_byte> buffer;
+  gdb::byte_vector buffer;
   int bits_big_endian
     = gdbarch_bits_big_endian (get_type_arch (value_type (v)));
 
-  if (value_type (v) != value_enclosing_type (v))
-    internal_error (__FILE__, __LINE__,
-		    _("Should not be able to create a lazy value with "
-		      "an enclosing type"));
+  if (from != NULL)
+    {
+      from_contents = value_contents (from);
+      v_contents = NULL;
+    }
+  else
+    {
+      if (value_type (v) != value_enclosing_type (v))
+	internal_error (__FILE__, __LINE__,
+			_("Should not be able to create a lazy value with "
+			  "an enclosing type"));
+      v_contents = value_contents_raw (v);
+      from_contents = NULL;
+    }
 
-  contents = value_contents_raw (v);
   bits_to_skip = 8 * value_offset (v);
   if (value_bitsize (v))
     {
-      bits_to_skip += value_bitpos (v);
-      type_len = value_bitsize (v);
+      bits_to_skip += (8 * value_offset (value_parent (v))
+		       + value_bitpos (v));
+      if (from != NULL
+	  && (gdbarch_byte_order (get_type_arch (value_type (from)))
+	      == BFD_ENDIAN_BIG))
+	{
+	  /* Use the least significant bits of FROM.  */
+	  max_offset = 8 * TYPE_LENGTH (value_type (from));
+	  offset = max_offset - value_bitsize (v);
+	}
+      else
+	max_offset = value_bitsize (v);
     }
   else
-    type_len = 8 * TYPE_LENGTH (value_type (v));
+    max_offset = 8 * TYPE_LENGTH (value_type (v));
+
+  /* Advance to the first non-skipped piece.  */
+  for (i = 0; i < c->pieces.size () && bits_to_skip >= c->pieces[i].size; i++)
+    bits_to_skip -= c->pieces[i].size;
 
-  for (i = 0; i < c->n_pieces && offset < type_len; i++)
+  for (; i < c->pieces.size () && offset < max_offset; i++)
     {
       struct dwarf_expr_piece *p = &c->pieces[i];
-      size_t this_size, this_size_bits;
-      long dest_offset_bits, source_offset_bits, source_offset;
-      const gdb_byte *intermediate_buffer;
-
-      /* Compute size, source, and destination offsets for copying, in
-	 bits.  */
-      this_size_bits = p->size;
-      if (bits_to_skip > 0 && bits_to_skip >= this_size_bits)
-	{
-	  bits_to_skip -= this_size_bits;
-	  continue;
-	}
-      if (bits_to_skip > 0)
-	{
-	  dest_offset_bits = 0;
-	  source_offset_bits = bits_to_skip;
-	  this_size_bits -= bits_to_skip;
-	  bits_to_skip = 0;
-	}
-      else
-	{
-	  dest_offset_bits = offset;
-	  source_offset_bits = 0;
-	}
-      if (this_size_bits > type_len - offset)
-	this_size_bits = type_len - offset;
+      size_t this_size_bits, this_size;
 
-      this_size = (this_size_bits + source_offset_bits % 8 + 7) / 8;
-      source_offset = source_offset_bits / 8;
-      if (buffer_size < this_size)
-	{
-	  buffer_size = this_size;
-	  buffer.reserve (buffer_size);
-	}
-      intermediate_buffer = buffer.data ();
+      this_size_bits = p->size - bits_to_skip;
+      if (this_size_bits > max_offset - offset)
+	this_size_bits = max_offset - offset;
 
-      /* Copy from the source to DEST_BUFFER.  */
       switch (p->location)
 	{
 	case DWARF_VALUE_REGISTER:
@@ -1833,78 +1829,207 @@ read_pieced_value (struct value *v)
 	    struct frame_info *frame = frame_find_by_id (c->frame_id);
 	    struct gdbarch *arch = get_frame_arch (frame);
 	    int gdb_regnum = dwarf_reg_to_regnum_or_error (arch, p->v.regno);
+	    ULONGEST reg_bits = 8 * register_size (arch, gdb_regnum);
 	    int optim, unavail;
-	    LONGEST reg_offset = source_offset;
 
 	    if (gdbarch_byte_order (arch) == BFD_ENDIAN_BIG
-		&& this_size < register_size (arch, gdb_regnum))
+		&& p->offset + p->size < reg_bits)
 	      {
 		/* Big-endian, and we want less than full size.  */
-		reg_offset = register_size (arch, gdb_regnum) - this_size;
-		/* We want the lower-order THIS_SIZE_BITS of the bytes
-		   we extract from the register.  */
-		source_offset_bits += 8 * this_size - this_size_bits;
+		bits_to_skip += reg_bits - (p->offset + p->size);
 	      }
+	    else
+	      bits_to_skip += p->offset;
+
+	    this_size = bits_to_bytes (bits_to_skip, this_size_bits);
+	    buffer.resize (this_size);
+
+	    if (from == NULL)
+	      {
+		/* Read mode.  */
+		if (!get_frame_register_bytes (frame, gdb_regnum,
+					       bits_to_skip / 8,
+					       this_size, buffer.data (),
+					       &optim, &unavail))
+		  {
+		    if (optim)
+		      mark_value_bits_optimized_out (v, offset,
+						     this_size_bits);
+		    if (unavail)
+		      mark_value_bits_unavailable (v, offset,
+						   this_size_bits);
+		    break;
+		  }
 
-	    if (!get_frame_register_bytes (frame, gdb_regnum, reg_offset,
-					   this_size, buffer.data (),
-					   &optim, &unavail))
+		copy_bitwise (v_contents, offset,
+			      buffer.data (), bits_to_skip % 8,
+			      this_size_bits, bits_big_endian);
+	      }
+	    else
 	      {
-		/* Just so garbage doesn't ever shine through.  */
-		memset (buffer.data (), 0, this_size);
+		/* Write mode.  */
+		if (bits_to_skip % 8 != 0 || this_size_bits % 8 != 0)
+		  {
+		    /* Data is copied non-byte-aligned into the register.
+		       Need some bits from original register value.  */
+		    get_frame_register_bytes (frame, gdb_regnum,
+					      bits_to_skip / 8,
+					      this_size, buffer.data (),
+					      &optim, &unavail);
+		    if (optim)
+		      throw_error (OPTIMIZED_OUT_ERROR,
+				   _("Can't do read-modify-write to "
+				     "update bitfield; containing word "
+				     "has been optimized out"));
+		    if (unavail)
+		      throw_error (NOT_AVAILABLE_ERROR,
+				   _("Can't do read-modify-write to "
+				     "update bitfield; containing word "
+				     "is unavailable"));
+		  }
 
-		if (optim)
-		  mark_value_bits_optimized_out (v, offset, this_size_bits);
-		if (unavail)
-		  mark_value_bits_unavailable (v, offset, this_size_bits);
+		copy_bitwise (buffer.data (), bits_to_skip % 8,
+			      from_contents, offset,
+			      this_size_bits, bits_big_endian);
+		put_frame_register_bytes (frame, gdb_regnum,
+					  bits_to_skip / 8,
+					  this_size, buffer.data ());
 	      }
 	  }
 	  break;
 
 	case DWARF_VALUE_MEMORY:
-	  read_value_memory (v, offset,
-			     p->v.mem.in_stack_memory,
-			     p->v.mem.addr + source_offset,
-			     buffer.data (), this_size);
-	  break;
-
-	case DWARF_VALUE_STACK:
 	  {
-	    size_t n = this_size;
+	    bits_to_skip += p->offset;
+
+	    CORE_ADDR start_addr = p->v.mem.addr + bits_to_skip / 8;
 
-	    if (n > c->addr_size - source_offset)
-	      n = (c->addr_size >= source_offset
-		   ? c->addr_size - source_offset
-		   : 0);
-	    if (n == 0)
+	    if (bits_to_skip % 8 == 0 && this_size_bits % 8 == 0
+		&& offset % 8 == 0)
 	      {
-		/* Nothing.  */
+		/* Everything is byte-aligned; no buffer needed.  */
+		if (from != NULL)
+		  write_memory_with_notification (start_addr,
+						  (from_contents
+						   + offset / 8),
+						  this_size_bits / 8);
+		else
+		  read_value_memory (v, offset,
+				     p->v.mem.in_stack_memory,
+				     p->v.mem.addr + bits_to_skip / 8,
+				     v_contents + offset / 8,
+				     this_size_bits / 8);
+		break;
+	      }
+
+	    this_size = bits_to_bytes (bits_to_skip, this_size_bits);
+	    buffer.resize (this_size);
+
+	    if (from == NULL)
+	      {
+		/* Read mode.  */
+		read_value_memory (v, offset,
+				   p->v.mem.in_stack_memory,
+				   p->v.mem.addr + bits_to_skip / 8,
+				   buffer.data (), this_size);
+		copy_bitwise (v_contents, offset,
+			      buffer.data (), bits_to_skip % 8,
+			      this_size_bits, bits_big_endian);
 	      }
 	    else
 	      {
-		const gdb_byte *val_bytes = value_contents_all (p->v.value);
+		/* Write mode.  */
+		if (bits_to_skip % 8 != 0 || this_size_bits % 8 != 0)
+		  {
+		    if (this_size <= 8)
+		      {
+			/* Perform a single read for small sizes.  */
+			read_memory (start_addr, buffer.data (),
+				     this_size);
+		      }
+		    else
+		      {
+			/* Only the first and last bytes can possibly have
+			   any bits reused.  */
+			read_memory (start_addr, buffer.data (), 1);
+			read_memory (start_addr + this_size - 1,
+				     &buffer[this_size - 1], 1);
+		      }
+		  }
 
-		intermediate_buffer = val_bytes + source_offset;
+		copy_bitwise (buffer.data (), bits_to_skip % 8,
+			      from_contents, offset,
+			      this_size_bits, bits_big_endian);
+		write_memory_with_notification (start_addr,
+						buffer.data (),
+						this_size);
 	      }
 	  }
 	  break;
 
+	case DWARF_VALUE_STACK:
+	  {
+	    if (from != NULL)
+	      {
+		mark_value_bits_optimized_out (v, offset, this_size_bits);
+		break;
+	      }
+
+	    struct objfile *objfile = dwarf2_per_cu_objfile (c->per_cu);
+	    struct gdbarch *objfile_gdbarch = get_objfile_arch (objfile);
+	    ULONGEST stack_value_size_bits
+	      = 8 * TYPE_LENGTH (value_type (p->v.value));
+
+	    /* Use zeroes if piece reaches beyond stack value.  */
+	    if (p->offset + p->size > stack_value_size_bits)
+	      break;
+
+	    /* Piece is anchored at least significant bit end.  */
+	    if (gdbarch_byte_order (objfile_gdbarch) == BFD_ENDIAN_BIG)
+	      bits_to_skip += stack_value_size_bits - p->offset - p->size;
+	    else
+	      bits_to_skip += p->offset;
+
+	    copy_bitwise (v_contents, offset,
+			  value_contents_all (p->v.value),
+			  bits_to_skip,
+			  this_size_bits, bits_big_endian);
+	  }
+	  break;
+
 	case DWARF_VALUE_LITERAL:
 	  {
-	    size_t n = this_size;
+	    if (from != NULL)
+	      {
+		mark_value_bits_optimized_out (v, offset, this_size_bits);
+		break;
+	      }
+
+	    ULONGEST literal_size_bits = 8 * p->v.literal.length;
+	    size_t n = this_size_bits;
 
-	    if (n > p->v.literal.length - source_offset)
-	      n = (p->v.literal.length >= source_offset
-		   ? p->v.literal.length - source_offset
-		   : 0);
-	    if (n != 0)
-	      intermediate_buffer = p->v.literal.data + source_offset;
+	    /* Cut off at the end of the implicit value.  */
+	    bits_to_skip += p->offset;
+	    if (bits_to_skip >= literal_size_bits)
+	      break;
+	    if (n > literal_size_bits - bits_to_skip)
+	      n = literal_size_bits - bits_to_skip;
+
+	    copy_bitwise (v_contents, offset,
+			  p->v.literal.data, bits_to_skip,
+			  n, bits_big_endian);
 	  }
 	  break;
 
-	  /* These bits show up as zeros -- but do not cause the value
-	     to be considered optimized-out.  */
 	case DWARF_VALUE_IMPLICIT_POINTER:
+	    if (from != NULL)
+	      {
+		mark_value_bits_optimized_out (v, offset, this_size_bits);
+		break;
+	      }
+
+	  /* These bits show up as zeros -- but do not cause the value to
+	     be considered optimized-out.  */
 	  break;
 
 	case DWARF_VALUE_OPTIMIZED_OUT:
@@ -1915,157 +2040,22 @@ read_pieced_value (struct value *v)
 	  internal_error (__FILE__, __LINE__, _("invalid location type"));
 	}
 
-      if (p->location != DWARF_VALUE_OPTIMIZED_OUT
-	  && p->location != DWARF_VALUE_IMPLICIT_POINTER)
-	copy_bitwise (contents, dest_offset_bits,
-		      intermediate_buffer, source_offset_bits % 8,
-		      this_size_bits, bits_big_endian);
-
       offset += this_size_bits;
+      bits_to_skip = 0;
     }
 }
 
+
 static void
-write_pieced_value (struct value *to, struct value *from)
+read_pieced_value (struct value *v)
 {
-  int i;
-  long offset = 0;
-  ULONGEST bits_to_skip;
-  const gdb_byte *contents;
-  struct piece_closure *c
-    = (struct piece_closure *) value_computed_closure (to);
-  size_t type_len;
-  size_t buffer_size = 0;
-  std::vector<gdb_byte> buffer;
-  int bits_big_endian
-    = gdbarch_bits_big_endian (get_type_arch (value_type (to)));
-
-  contents = value_contents (from);
-  bits_to_skip = 8 * value_offset (to);
-  if (value_bitsize (to))
-    {
-      bits_to_skip += value_bitpos (to);
-      type_len = value_bitsize (to);
-    }
-  else
-    type_len = 8 * TYPE_LENGTH (value_type (to));
-
-  for (i = 0; i < c->n_pieces && offset < type_len; i++)
-    {
-      struct dwarf_expr_piece *p = &c->pieces[i];
-      size_t this_size_bits, this_size;
-      long dest_offset_bits, source_offset_bits, dest_offset, source_offset;
-      int need_bitwise;
-      const gdb_byte *source_buffer;
-
-      this_size_bits = p->size;
-      if (bits_to_skip > 0 && bits_to_skip >= this_size_bits)
-	{
-	  bits_to_skip -= this_size_bits;
-	  continue;
-	}
-      if (this_size_bits > type_len - offset)
-	this_size_bits = type_len - offset;
-      if (bits_to_skip > 0)
-	{
-	  dest_offset_bits = bits_to_skip;
-	  source_offset_bits = 0;
-	  this_size_bits -= bits_to_skip;
-	  bits_to_skip = 0;
-	}
-      else
-	{
-	  dest_offset_bits = 0;
-	  source_offset_bits = offset;
-	}
-
-      this_size = (this_size_bits + source_offset_bits % 8 + 7) / 8;
-      source_offset = source_offset_bits / 8;
-      dest_offset = dest_offset_bits / 8;
-      if (dest_offset_bits % 8 == 0 && source_offset_bits % 8 == 0)
-	{
-	  source_buffer = contents + source_offset;
-	  need_bitwise = 0;
-	}
-      else
-	{
-	  if (buffer_size < this_size)
-	    {
-	      buffer_size = this_size;
-	      buffer.reserve (buffer_size);
-	    }
-	  source_buffer = buffer.data ();
-	  need_bitwise = 1;
-	}
-
-      switch (p->location)
-	{
-	case DWARF_VALUE_REGISTER:
-	  {
-	    struct frame_info *frame = frame_find_by_id (c->frame_id);
-	    struct gdbarch *arch = get_frame_arch (frame);
-	    int gdb_regnum = dwarf_reg_to_regnum_or_error (arch, p->v.regno);
-	    int reg_offset = dest_offset;
-
-	    if (gdbarch_byte_order (arch) == BFD_ENDIAN_BIG
-		&& this_size <= register_size (arch, gdb_regnum))
-	      {
-		/* Big-endian, and we want less than full size.  */
-		reg_offset = register_size (arch, gdb_regnum) - this_size;
-	      }
-
-	    if (need_bitwise)
-	      {
-		int optim, unavail;
-
-		if (!get_frame_register_bytes (frame, gdb_regnum, reg_offset,
-					       this_size, buffer.data (),
-					       &optim, &unavail))
-		  {
-		    if (optim)
-		      throw_error (OPTIMIZED_OUT_ERROR,
-				   _("Can't do read-modify-write to "
-				     "update bitfield; containing word "
-				     "has been optimized out"));
-		    if (unavail)
-		      throw_error (NOT_AVAILABLE_ERROR,
-				   _("Can't do read-modify-write to update "
-				     "bitfield; containing word "
-				     "is unavailable"));
-		  }
-		copy_bitwise (buffer.data (), dest_offset_bits,
-			      contents, source_offset_bits,
-			      this_size_bits,
-			      bits_big_endian);
-	      }
-
-	    put_frame_register_bytes (frame, gdb_regnum, reg_offset, 
-				      this_size, source_buffer);
-	  }
-	  break;
-	case DWARF_VALUE_MEMORY:
-	  if (need_bitwise)
-	    {
-	      /* Only the first and last bytes can possibly have any
-		 bits reused.  */
-	      read_memory (p->v.mem.addr + dest_offset, buffer.data (), 1);
-	      read_memory (p->v.mem.addr + dest_offset + this_size - 1,
-			   &buffer[this_size - 1], 1);
-	      copy_bitwise (buffer.data (), dest_offset_bits,
-			    contents, source_offset_bits,
-			    this_size_bits,
-			    bits_big_endian);
-	    }
+  rw_pieced_value (v, NULL);
+}
 
-	  write_memory (p->v.mem.addr + dest_offset,
-			source_buffer, this_size);
-	  break;
-	default:
-	  mark_value_bytes_optimized_out (to, 0, TYPE_LENGTH (value_type (to)));
-	  break;
-	}
-      offset += this_size_bits;
-    }
+static void
+write_pieced_value (struct value *to, struct value *from)
+{
+  rw_pieced_value (to, from);
 }
 
 /* An implementation of an lval_funcs method to see whether a value is
@@ -2083,7 +2073,7 @@ check_pieced_synthetic_pointer (const st
   if (value_bitsize (value))
     bit_offset += value_bitpos (value);
 
-  for (i = 0; i < c->n_pieces && bit_length > 0; i++)
+  for (i = 0; i < c->pieces.size () && bit_length > 0; i++)
     {
       struct dwarf_expr_piece *p = &c->pieces[i];
       size_t this_size_bits = p->size;
@@ -2125,13 +2115,10 @@ fetch_const_value_from_synthetic_pointer
 					  struct type *type)
 {
   struct value *result = NULL;
-  struct obstack temp_obstack;
-  struct cleanup *cleanup;
   const gdb_byte *bytes;
   LONGEST len;
 
-  obstack_init (&temp_obstack);
-  cleanup = make_cleanup_obstack_free (&temp_obstack);
+  auto_obstack temp_obstack;
   bytes = dwarf2_fetch_constant_bytes (die, per_cu, &temp_obstack, &len);
 
   if (bytes != NULL)
@@ -2148,8 +2135,6 @@ fetch_const_value_from_synthetic_pointer
   else
     result = allocate_optimized_out_value (TYPE_TARGET_TYPE (type));
 
-  do_cleanups (cleanup);
-
   return result;
 }
 
@@ -2193,7 +2178,6 @@ indirect_pieced_value (struct value *val
     = (struct piece_closure *) value_computed_closure (value);
   struct type *type;
   struct frame_info *frame;
-  struct dwarf2_locexpr_baton baton;
   int i, bit_length;
   LONGEST bit_offset;
   struct dwarf_expr_piece *piece = NULL;
@@ -2209,7 +2193,7 @@ indirect_pieced_value (struct value *val
   if (value_bitsize (value))
     bit_offset += value_bitpos (value);
 
-  for (i = 0; i < c->n_pieces && bit_length > 0; i++)
+  for (i = 0; i < c->pieces.size () && bit_length > 0; i++)
     {
       struct dwarf_expr_piece *p = &c->pieces[i];
       size_t this_size_bits = p->size;
@@ -2280,11 +2264,12 @@ coerce_pieced_ref (const struct value *v
       /* gdb represents synthetic pointers as pieced values with a single
 	 piece.  */
       gdb_assert (closure != NULL);
-      gdb_assert (closure->n_pieces == 1);
+      gdb_assert (closure->pieces.size () == 1);
 
-      return indirect_synthetic_pointer (closure->pieces->v.ptr.die_sect_off,
-					 closure->pieces->v.ptr.offset,
-					 closure->per_cu, frame, type);
+      return indirect_synthetic_pointer
+	(closure->pieces[0].v.ptr.die_sect_off,
+	 closure->pieces[0].v.ptr.offset,
+	 closure->per_cu, frame, type);
     }
   else
     {
@@ -2312,14 +2297,11 @@ free_pieced_value_closure (struct value 
   --c->refc;
   if (c->refc == 0)
     {
-      int i;
-
-      for (i = 0; i < c->n_pieces; ++i)
-	if (c->pieces[i].location == DWARF_VALUE_STACK)
-	  value_free (c->pieces[i].v.value);
+      for (dwarf_expr_piece &p : c->pieces)
+	if (p.location == DWARF_VALUE_STACK)
+	  value_free (p.v.value);
 
-      xfree (c->pieces);
-      xfree (c);
+      delete c;
     }
 }
 
@@ -2399,19 +2381,19 @@ dwarf2_evaluate_loc_desc_full (struct ty
     }
   END_CATCH
 
-  if (ctx.num_pieces > 0)
+  if (ctx.pieces.size () > 0)
     {
       struct piece_closure *c;
       ULONGEST bit_size = 0;
-      int i;
 
-      for (i = 0; i < ctx.num_pieces; ++i)
-	bit_size += ctx.pieces[i].size;
-      if (8 * (subobj_byte_offset + TYPE_LENGTH (subobj_type)) > bit_size)
+      for (dwarf_expr_piece &piece : ctx.pieces)
+	bit_size += piece.size;
+      /* Complain if the expression is larger than the size of the
+	 outer type.  */
+      if (bit_size > 8 * TYPE_LENGTH (type))
 	invalid_synthetic_pointer ();
 
-      c = allocate_piece_closure (per_cu, ctx.num_pieces, ctx.pieces,
-				  ctx.addr_size, frame);
+      c = allocate_piece_closure (per_cu, std::move (ctx.pieces), frame);
       /* We must clean up the value chain after creating the piece
 	 closure but before allocating the result.  */
       free_values.free_to_mark ();
@@ -2456,7 +2438,7 @@ dwarf2_evaluate_loc_desc_full (struct ty
 	  {
 	    struct type *ptr_type;
 	    CORE_ADDR address = ctx.fetch_address (0);
-	    int in_stack_memory = ctx.fetch_in_stack_memory (0);
+	    bool in_stack_memory = ctx.fetch_in_stack_memory (0);
 
 	    /* DW_OP_deref_size (and possibly other operations too) may
 	       create a pointer instead of an address.  Ideally, the
@@ -2493,7 +2475,6 @@ dwarf2_evaluate_loc_desc_full (struct ty
 	    size_t len = TYPE_LENGTH (subobj_type);
 	    size_t max = TYPE_LENGTH (type);
 	    struct gdbarch *objfile_gdbarch = get_objfile_arch (objfile);
-	    struct cleanup *cleanup;
 
 	    if (subobj_byte_offset + len > max)
 	      invalid_synthetic_pointer ();
@@ -2503,7 +2484,7 @@ dwarf2_evaluate_loc_desc_full (struct ty
 	       below.  */
 	    value_incref (value);
 	    free_values.free_to_mark ();
-	    cleanup = make_cleanup_value_free (value);
+	    gdb_value_up value_holder (value);
 
 	    retval = allocate_value (subobj_type);
 
@@ -2513,8 +2494,6 @@ dwarf2_evaluate_loc_desc_full (struct ty
 
 	    memcpy (value_contents_raw (retval),
 		    value_contents_all (value) + subobj_byte_offset, len);
-
-	    do_cleanups (cleanup);
 	  }
 	  break;
 
@@ -2873,16 +2852,11 @@ dwarf2_loc_desc_get_symbol_read_needs (c
 
   in_reg = ctx.location == DWARF_VALUE_REGISTER;
 
-  if (ctx.num_pieces > 0)
-    {
-      int i;
-
-      /* If the location has several pieces, and any of them are in
-         registers, then we will need a frame to fetch them from.  */
-      for (i = 0; i < ctx.num_pieces; i++)
-        if (ctx.pieces[i].location == DWARF_VALUE_REGISTER)
-          in_reg = 1;
-    }
+  /* If the location has several pieces, and any of them are in
+     registers, then we will need a frame to fetch them from.  */
+  for (dwarf_expr_piece &p : ctx.pieces)
+    if (p.location == DWARF_VALUE_REGISTER)
+      in_reg = 1;
 
   if (in_reg)
     ctx.needs = SYMBOL_NEEDS_FRAME;
@@ -3025,10 +2999,11 @@ get_ax_pc (void *baton)
 
 void
 dwarf2_compile_expr_to_ax (struct agent_expr *expr, struct axs_value *loc,
-			   struct gdbarch *arch, unsigned int addr_size,
-			   const gdb_byte *op_ptr, const gdb_byte *op_end,
+			   unsigned int addr_size, const gdb_byte *op_ptr,
+			   const gdb_byte *op_end,
 			   struct dwarf2_per_cu_data *per_cu)
 {
+  gdbarch *arch = expr->gdbarch;
   int i;
   std::vector<int> dw_labels, patches;
   const gdb_byte * const base = op_ptr;
@@ -3304,7 +3279,7 @@ dwarf2_compile_expr_to_ax (struct agent_
 					     &datastart, &datalen);
 
 	    op_ptr = safe_read_sleb128 (op_ptr, op_end, &offset);
-	    dwarf2_compile_expr_to_ax (expr, loc, arch, addr_size, datastart,
+	    dwarf2_compile_expr_to_ax (expr, loc, addr_size, datastart,
 				       datastart + datalen, per_cu);
 	    if (loc->kind == axs_lvalue_register)
 	      require_rvalue (expr, loc);
@@ -3530,8 +3505,8 @@ dwarf2_compile_expr_to_ax (struct agent_
 	      {
 		/* Another expression.  */
 		ax_const_l (expr, text_offset);
-		dwarf2_compile_expr_to_ax (expr, loc, arch, addr_size,
-					   cfa_start, cfa_end, per_cu);
+		dwarf2_compile_expr_to_ax (expr, loc, addr_size, cfa_start,
+					   cfa_end, per_cu);
 	      }
 
 	    loc->kind = axs_lvalue_memory;
@@ -3655,9 +3630,8 @@ dwarf2_compile_expr_to_ax (struct agent_
 	    /* DW_OP_call_ref is currently not supported.  */
 	    gdb_assert (block.per_cu == per_cu);
 
-	    dwarf2_compile_expr_to_ax (expr, loc, arch, addr_size,
-				       block.data, block.data + block.size,
-				       per_cu);
+	    dwarf2_compile_expr_to_ax (expr, loc, addr_size, block.data,
+				       block.data + block.size, per_cu);
 	  }
 	  break;
 
@@ -4414,8 +4388,8 @@ locexpr_describe_location (struct symbol
    any necessary bytecode in AX.  */
 
 static void
-locexpr_tracepoint_var_ref (struct symbol *symbol, struct gdbarch *gdbarch,
-			    struct agent_expr *ax, struct axs_value *value)
+locexpr_tracepoint_var_ref (struct symbol *symbol, struct agent_expr *ax,
+			    struct axs_value *value)
 {
   struct dwarf2_locexpr_baton *dlbaton
     = (struct dwarf2_locexpr_baton *) SYMBOL_LOCATION_BATON (symbol);
@@ -4424,9 +4398,8 @@ locexpr_tracepoint_var_ref (struct symbo
   if (dlbaton->size == 0)
     value->optimized_out = 1;
   else
-    dwarf2_compile_expr_to_ax (ax, value, gdbarch, addr_size,
-			       dlbaton->data, dlbaton->data + dlbaton->size,
-			       dlbaton->per_cu);
+    dwarf2_compile_expr_to_ax (ax, value, addr_size, dlbaton->data,
+			       dlbaton->data + dlbaton->size, dlbaton->per_cu);
 }
 
 /* symbol_computed_ops 'generate_c_location' method.  */
@@ -4622,8 +4595,8 @@ loclist_describe_location (struct symbol
 /* Describe the location of SYMBOL as an agent value in VALUE, generating
    any necessary bytecode in AX.  */
 static void
-loclist_tracepoint_var_ref (struct symbol *symbol, struct gdbarch *gdbarch,
-			    struct agent_expr *ax, struct axs_value *value)
+loclist_tracepoint_var_ref (struct symbol *symbol, struct agent_expr *ax,
+			    struct axs_value *value)
 {
   struct dwarf2_loclist_baton *dlbaton
     = (struct dwarf2_loclist_baton *) SYMBOL_LOCATION_BATON (symbol);
@@ -4635,7 +4608,7 @@ loclist_tracepoint_var_ref (struct symbo
   if (size == 0)
     value->optimized_out = 1;
   else
-    dwarf2_compile_expr_to_ax (ax, value, gdbarch, addr_size, data, data + size,
+    dwarf2_compile_expr_to_ax (ax, value, addr_size, data, data + size,
 			       dlbaton->per_cu);
 }
 
@@ -4675,9 +4648,6 @@ const struct symbol_computed_ops dwarf2_
   loclist_generate_c_location
 };
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_dwarf2loc;
-
 void
 _initialize_dwarf2loc (void)
 {
@@ -4695,6 +4665,6 @@ _initialize_dwarf2loc (void)
 			     &setdebuglist, &showdebuglist);
 
 #if GDB_SELF_TEST
-  register_self_test (selftests::copy_bitwise_tests);
+  selftests::register_test ("copy_bitwise", selftests::copy_bitwise_tests);
 #endif
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2loc.h ./gdb/dwarf2loc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2loc.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dwarf2loc.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* DWARF 2 location expression support for GDB.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -270,7 +270,6 @@ extern const struct symbol_block_ops dwa
 
 extern void dwarf2_compile_expr_to_ax (struct agent_expr *expr,
 				       struct axs_value *loc,
-				       struct gdbarch *arch,
 				       unsigned int addr_size,
 				       const gdb_byte *op_ptr,
 				       const gdb_byte *op_end,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2read.c ./gdb/dwarf2read.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/dwarf2read.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/dwarf2read.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* DWARF 2 debugging format support for GDB.
 
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
    Inc.  with support from Florida State University (under contract
@@ -73,10 +73,19 @@
 #include "common/function-view.h"
 #include "common/gdb_optional.h"
 #include "common/underlying.h"
-
+#include "common/byte-vector.h"
+#include "common/hash_enum.h"
+#include "filename-seen-cache.h"
+#include "producer.h"
 #include <fcntl.h>
 #include <sys/types.h>
 #include <algorithm>
+#include <unordered_set>
+#include <unordered_map>
+#include "selftest.h"
+#include <cmath>
+#include <set>
+#include <forward_list>
 
 typedef struct symbol *symbolp;
 DEF_VEC_P (symbolp);
@@ -178,30 +187,180 @@ DEF_VEC_I (offset_type);
     GDB_INDEX_CU_SET_VALUE((cu_index), (value)); \
   } while (0)
 
+#if WORDS_BIGENDIAN
+
+/* Convert VALUE between big- and little-endian.  */
+
+static offset_type
+byte_swap (offset_type value)
+{
+  offset_type result;
+
+  result = (value & 0xff) << 24;
+  result |= (value & 0xff00) << 8;
+  result |= (value & 0xff0000) >> 8;
+  result |= (value & 0xff000000) >> 24;
+  return result;
+}
+
+#define MAYBE_SWAP(V)  byte_swap (V)
+
+#else
+#define MAYBE_SWAP(V) static_cast<offset_type> (V)
+#endif /* WORDS_BIGENDIAN */
+
+/* An index into a (C++) symbol name component in a symbol name as
+   recorded in the mapped_index's symbol table.  For each C++ symbol
+   in the symbol table, we record one entry for the start of each
+   component in the symbol in a table of name components, and then
+   sort the table, in order to be able to binary search symbol names,
+   ignoring leading namespaces, both completion and regular look up.
+   For example, for symbol "A::B::C", we'll have an entry that points
+   to "A::B::C", another that points to "B::C", and another for "C".
+   Note that function symbols in GDB index have no parameter
+   information, just the function/method names.  You can convert a
+   name_component to a "const char *" using the
+   'mapped_index::symbol_name_at(offset_type)' method.  */
+
+struct name_component
+{
+  /* Offset in the symbol name where the component starts.  Stored as
+     a (32-bit) offset instead of a pointer to save memory and improve
+     locality on 64-bit architectures.  */
+  offset_type name_offset;
+
+  /* The symbol's index in the symbol and constant pool tables of a
+     mapped_index.  */
+  offset_type idx;
+};
+
+/* Base class containing bits shared by both .gdb_index and
+   .debug_name indexes.  */
+
+struct mapped_index_base
+{
+  /* The name_component table (a sorted vector).  See name_component's
+     description above.  */
+  std::vector<name_component> name_components;
+
+  /* How NAME_COMPONENTS is sorted.  */
+  enum case_sensitivity name_components_casing;
+
+  /* Return the number of names in the symbol table.  */
+  virtual size_t symbol_name_count () const = 0;
+
+  /* Get the name of the symbol at IDX in the symbol table.  */
+  virtual const char *symbol_name_at (offset_type idx) const = 0;
+
+  /* Return whether the name at IDX in the symbol table should be
+     ignored.  */
+  virtual bool symbol_name_slot_invalid (offset_type idx) const
+  {
+    return false;
+  }
+
+  /* Build the symbol name component sorted vector, if we haven't
+     yet.  */
+  void build_name_components ();
+
+  /* Returns the lower (inclusive) and upper (exclusive) bounds of the
+     possible matches for LN_NO_PARAMS in the name component
+     vector.  */
+  std::pair<std::vector<name_component>::const_iterator,
+	    std::vector<name_component>::const_iterator>
+    find_name_components_bounds (const lookup_name_info &ln_no_params) const;
+
+  /* Prevent deleting/destroying via a base class pointer.  */
+protected:
+  ~mapped_index_base() = default;
+};
+
 /* A description of the mapped index.  The file format is described in
    a comment by the code that writes the index.  */
-struct mapped_index
+struct mapped_index final : public mapped_index_base
 {
+  /* A slot/bucket in the symbol table hash.  */
+  struct symbol_table_slot
+  {
+    const offset_type name;
+    const offset_type vec;
+  };
+
   /* Index data format version.  */
   int version;
 
   /* The total length of the buffer.  */
   off_t total_size;
 
-  /* A pointer to the address table data.  */
-  const gdb_byte *address_table;
-
-  /* Size of the address table data in bytes.  */
-  offset_type address_table_size;
+  /* The address table data.  */
+  gdb::array_view<const gdb_byte> address_table;
 
   /* The symbol table, implemented as a hash table.  */
-  const offset_type *symbol_table;
-
-  /* Size in slots, each slot is 2 offset_types.  */
-  offset_type symbol_table_slots;
+  gdb::array_view<symbol_table_slot> symbol_table;
 
   /* A pointer to the constant pool.  */
   const char *constant_pool;
+
+  bool symbol_name_slot_invalid (offset_type idx) const override
+  {
+    const auto &bucket = this->symbol_table[idx];
+    return bucket.name == 0 && bucket.vec;
+  }
+
+  /* Convenience method to get at the name of the symbol at IDX in the
+     symbol table.  */
+  const char *symbol_name_at (offset_type idx) const override
+  { return this->constant_pool + MAYBE_SWAP (this->symbol_table[idx].name); }
+
+  size_t symbol_name_count () const override
+  { return this->symbol_table.size (); }
+};
+
+/* A description of the mapped .debug_names.
+   Uninitialized map has CU_COUNT 0.  */
+struct mapped_debug_names final : public mapped_index_base
+{
+  bfd_endian dwarf5_byte_order;
+  bool dwarf5_is_dwarf64;
+  bool augmentation_is_gdb;
+  uint8_t offset_size;
+  uint32_t cu_count = 0;
+  uint32_t tu_count, bucket_count, name_count;
+  const gdb_byte *cu_table_reordered, *tu_table_reordered;
+  const uint32_t *bucket_table_reordered, *hash_table_reordered;
+  const gdb_byte *name_table_string_offs_reordered;
+  const gdb_byte *name_table_entry_offs_reordered;
+  const gdb_byte *entry_pool;
+
+  struct index_val
+  {
+    ULONGEST dwarf_tag;
+    struct attr
+    {
+      /* Attribute name DW_IDX_*.  */
+      ULONGEST dw_idx;
+
+      /* Attribute form DW_FORM_*.  */
+      ULONGEST form;
+
+      /* Value if FORM is DW_FORM_implicit_const.  */
+      LONGEST implicit_const;
+    };
+    std::vector<attr> attr_vec;
+  };
+
+  std::unordered_map<ULONGEST, index_val> abbrev_map;
+
+  const char *namei_to_name (uint32_t namei) const;
+
+  /* Implementation of the mapped_index_base virtual interface, for
+     the name_components cache.  */
+
+  const char *symbol_name_at (offset_type idx) const override
+  { return namei_to_name (idx); }
+
+  size_t symbol_name_count () const override
+  { return this->name_count; }
 };
 
 typedef struct dwarf2_per_cu_data *dwarf2_per_cu_ptr;
@@ -221,85 +380,110 @@ struct tu_stats
 
 struct dwarf2_per_objfile
 {
-  struct dwarf2_section_info info;
-  struct dwarf2_section_info abbrev;
-  struct dwarf2_section_info line;
-  struct dwarf2_section_info loc;
-  struct dwarf2_section_info loclists;
-  struct dwarf2_section_info macinfo;
-  struct dwarf2_section_info macro;
-  struct dwarf2_section_info str;
-  struct dwarf2_section_info line_str;
-  struct dwarf2_section_info ranges;
-  struct dwarf2_section_info rnglists;
-  struct dwarf2_section_info addr;
-  struct dwarf2_section_info frame;
-  struct dwarf2_section_info eh_frame;
-  struct dwarf2_section_info gdb_index;
+  /* Construct a dwarf2_per_objfile for OBJFILE.  NAMES points to the
+     dwarf2 section names, or is NULL if the standard ELF names are
+     used.  */
+  dwarf2_per_objfile (struct objfile *objfile,
+		      const dwarf2_debug_sections *names);
 
-  VEC (dwarf2_section_info_def) *types;
+  ~dwarf2_per_objfile ();
+
+  DISABLE_COPY_AND_ASSIGN (dwarf2_per_objfile);
+
+  /* Free all cached compilation units.  */
+  void free_cached_comp_units ();
+private:
+  /* This function is mapped across the sections and remembers the
+     offset and size of each of the debugging sections we are
+     interested in.  */
+  void locate_sections (bfd *abfd, asection *sectp,
+			const dwarf2_debug_sections &names);
+
+public:
+  dwarf2_section_info info {};
+  dwarf2_section_info abbrev {};
+  dwarf2_section_info line {};
+  dwarf2_section_info loc {};
+  dwarf2_section_info loclists {};
+  dwarf2_section_info macinfo {};
+  dwarf2_section_info macro {};
+  dwarf2_section_info str {};
+  dwarf2_section_info line_str {};
+  dwarf2_section_info ranges {};
+  dwarf2_section_info rnglists {};
+  dwarf2_section_info addr {};
+  dwarf2_section_info frame {};
+  dwarf2_section_info eh_frame {};
+  dwarf2_section_info gdb_index {};
+  dwarf2_section_info debug_names {};
+  dwarf2_section_info debug_aranges {};
+
+  VEC (dwarf2_section_info_def) *types = NULL;
 
   /* Back link.  */
-  struct objfile *objfile;
+  struct objfile *objfile = NULL;
 
   /* Table of all the compilation units.  This is used to locate
      the target compilation unit of a particular reference.  */
-  struct dwarf2_per_cu_data **all_comp_units;
+  struct dwarf2_per_cu_data **all_comp_units = NULL;
 
   /* The number of compilation units in ALL_COMP_UNITS.  */
-  int n_comp_units;
+  int n_comp_units = 0;
 
   /* The number of .debug_types-related CUs.  */
-  int n_type_units;
+  int n_type_units = 0;
 
   /* The number of elements allocated in all_type_units.
      If there are skeleton-less TUs, we add them to all_type_units lazily.  */
-  int n_allocated_type_units;
+  int n_allocated_type_units = 0;
 
   /* The .debug_types-related CUs (TUs).
      This is stored in malloc space because we may realloc it.  */
-  struct signatured_type **all_type_units;
+  struct signatured_type **all_type_units = NULL;
 
   /* Table of struct type_unit_group objects.
      The hash key is the DW_AT_stmt_list value.  */
-  htab_t type_unit_groups;
+  htab_t type_unit_groups {};
 
   /* A table mapping .debug_types signatures to its signatured_type entry.
      This is NULL if the .debug_types section hasn't been read in yet.  */
-  htab_t signatured_types;
+  htab_t signatured_types {};
 
   /* Type unit statistics, to see how well the scaling improvements
      are doing.  */
-  struct tu_stats tu_stats;
+  struct tu_stats tu_stats {};
 
   /* A chain of compilation units that are currently read in, so that
      they can be freed later.  */
-  struct dwarf2_per_cu_data *read_in_chain;
+  dwarf2_per_cu_data *read_in_chain = NULL;
 
   /* A table mapping DW_AT_dwo_name values to struct dwo_file objects.
      This is NULL if the table hasn't been allocated yet.  */
-  htab_t dwo_files;
+  htab_t dwo_files {};
 
-  /* Non-zero if we've check for whether there is a DWP file.  */
-  int dwp_checked;
+  /* True if we've checked for whether there is a DWP file.  */
+  bool dwp_checked = false;
 
   /* The DWP file if there is one, or NULL.  */
-  struct dwp_file *dwp_file;
+  struct dwp_file *dwp_file = NULL;
 
   /* The shared '.dwz' file, if one exists.  This is used when the
      original data was compressed using 'dwz -m'.  */
-  struct dwz_file *dwz_file;
+  struct dwz_file *dwz_file = NULL;
 
-  /* A flag indicating wether this objfile has a section loaded at a
+  /* A flag indicating whether this objfile has a section loaded at a
      VMA of 0.  */
-  int has_section_at_zero;
+  bool has_section_at_zero = false;
 
   /* True if we are using the mapped index,
      or we are faking it for OBJF_READNOW's sake.  */
-  unsigned char using_index;
+  bool using_index = false;
 
   /* The mapped index, or NULL if .gdb_index is missing or not being used.  */
-  struct mapped_index *index_table;
+  mapped_index *index_table = NULL;
+
+  /* The mapped index, or NULL if .debug_names is missing or not being used.  */
+  std::unique_ptr<mapped_debug_names> debug_names_table;
 
   /* When using index_table, this keeps track of all quick_file_names entries.
      TUs typically share line table entries with a CU, so we maintain a
@@ -308,22 +492,26 @@ struct dwarf2_per_objfile
      sorted all the TUs into "type unit groups", grouped by their
      DW_AT_stmt_list value.  Therefore the only sharing done here is with a
      CU and its associated TU group if there is one.  */
-  htab_t quick_file_names_table;
+  htab_t quick_file_names_table {};
 
   /* Set during partial symbol reading, to prevent queueing of full
      symbols.  */
-  int reading_partial_symbols;
+  bool reading_partial_symbols = false;
 
   /* Table mapping type DIEs to their struct type *.
      This is NULL if not allocated yet.
      The mapping is done via (CU/TU + DIE offset) -> type.  */
-  htab_t die_type_hash;
+  htab_t die_type_hash {};
 
   /* The CUs we recently read.  */
-  VEC (dwarf2_per_cu_ptr) *just_read_cus;
+  VEC (dwarf2_per_cu_ptr) *just_read_cus = NULL;
 
   /* Table containing line_header indexed by offset and offset_in_dwz.  */
-  htab_t line_header_hash;
+  htab_t line_header_hash {};
+
+  /* Table containing all filenames.  This is an optional because the
+     table is lazily constructed on first access.  */
+  gdb::optional<filename_seen_cache> filenames_cache;
 };
 
 static struct dwarf2_per_objfile *dwarf2_per_objfile;
@@ -351,6 +539,8 @@ static const struct dwarf2_debug_section
   { ".debug_frame", ".zdebug_frame" },
   { ".eh_frame", NULL },
   { ".gdb_index", ".zgdb_index" },
+  { ".debug_names", ".zdebug_names" },
+  { ".debug_aranges", ".zdebug_aranges" },
   23
 };
 
@@ -517,6 +707,12 @@ struct dwarf2_cu
 
   /* Header data from the line table, during full symbol processing.  */
   struct line_header *line_header;
+  /* Non-NULL if LINE_HEADER is owned by this DWARF_CU.  Otherwise,
+     it's owned by dwarf2_per_objfile::line_header_hash.  If non-NULL,
+     this is the DW_TAG_compile_unit die for this CU.  We'll hold on
+     to the line header as long as this DIE is being processed.  See
+     process_die_scope.  */
+  die_info *line_header_die_owner;
 
   /* A list of methods which need to have physnames computed
      after all type information has been read.  */
@@ -569,7 +765,7 @@ struct dwarf2_cu
   unsigned int checked_producer : 1;
   unsigned int producer_is_gxx_lt_4_6 : 1;
   unsigned int producer_is_gcc_lt_4_3 : 1;
-  unsigned int producer_is_icc : 1;
+  unsigned int producer_is_icc_lt_14 : 1;
 
   /* When set, the file that we're processing is known to have
      debugging info for C++ namespaces.  GCC 3.3.x did not produce
@@ -852,12 +1048,11 @@ struct dwo_file
      sections (for lack of a better name).  */
   struct dwo_sections sections;
 
-  /* The CU in the file.
-     We only support one because having more than one requires hacking the
-     dwo_name of each to match, which is highly unlikely to happen.
-     Doing this means all TUs can share comp_dir: We also assume that
-     DW_AT_comp_dir across all TUs in a DWO file will be identical.  */
-  struct dwo_unit *cu;
+  /* The CUs in the file.
+     Each element is a struct dwo_unit. Multiple CUs per DWO are supported as
+     an extension to handle LLVM's Link Time Optimization output (where
+     multiple source files may be compiled into a single object/dwo pair). */
+  htab_t cus;
 
   /* Table of TUs in the file.
      Each element is a struct dwo_unit.  */
@@ -1012,6 +1207,7 @@ struct dwz_file
   struct dwarf2_section_info line;
   struct dwarf2_section_info macro;
   struct dwarf2_section_info gdb_index;
+  struct dwarf2_section_info debug_names;
 
   /* The dwz's BFD.  */
   bfd *dwz_bfd;
@@ -1428,10 +1624,10 @@ struct fnfieldlist
   struct nextfnfield *head;
 };
 
-struct typedef_field_list
+struct decl_field_list
 {
-  struct typedef_field field;
-  struct typedef_field_list *next;
+  struct decl_field field;
+  struct decl_field_list *next;
 };
 
 /* The routines that read and process dies for a C struct or C++ class
@@ -1451,10 +1647,6 @@ struct field_info
     /* Set if the accesibility of one of the fields is not public.  */
     int non_public_fields;
 
-    /* Member function fields array, entries are allocated in the order they
-       are encountered in the object file.  */
-    struct nextfnfield *fnfields;
-
     /* Member function fieldlist array, contains name of possibly overloaded
        member function, number of overloaded member functions and a pointer
        to the head of the member function field chain.  */
@@ -1465,8 +1657,13 @@ struct field_info
 
     /* typedefs defined inside this class.  TYPEDEF_FIELD_LIST contains head of
        a NULL terminated list of TYPEDEF_FIELD_LIST_COUNT elements.  */
-    struct typedef_field_list *typedef_field_list;
+    struct decl_field_list *typedef_field_list;
     unsigned typedef_field_list_count;
+
+    /* Nested types defined by this class and the number of elements in this
+       list.  */
+    struct decl_field_list *nested_types_list;
+    unsigned nested_types_list_count;
   };
 
 /* One item on the queue of compilation units to read in full symbols
@@ -1502,8 +1699,6 @@ static const char *get_section_name (con
 
 static const char *get_section_file_name (const struct dwarf2_section_info *);
 
-static void dwarf2_locate_sections (bfd *, asection *, void *);
-
 static void dwarf2_find_base_address (struct die_info *die,
 				      struct dwarf2_cu *cu);
 
@@ -1620,6 +1815,9 @@ static const char *read_indirect_line_st
 					      const struct comp_unit_head *,
 					      unsigned int *);
 
+static const char *read_indirect_string_at_offset (bfd *abfd,
+						   LONGEST str_offset);
+
 static const char *read_indirect_string_from_dwz (struct dwz_file *, LONGEST);
 
 static LONGEST read_signed_leb128 (bfd *, const gdb_byte *, unsigned int *);
@@ -1716,6 +1914,8 @@ static void read_lexical_block_scope (st
 
 static void read_call_site_scope (struct die_info *die, struct dwarf2_cu *cu);
 
+static void read_variable (struct die_info *die, struct dwarf2_cu *cu);
+
 static int dwarf2_ranges_read (unsigned, CORE_ADDR *, CORE_ADDR *,
 			       struct dwarf2_cu *, struct partial_symtab *);
 
@@ -2133,26 +2333,6 @@ line_header_eq_voidp (const void *item_l
 }
 
 
-#if WORDS_BIGENDIAN
-
-/* Convert VALUE between big- and little-endian.  */
-static offset_type
-byte_swap (offset_type value)
-{
-  offset_type result;
-
-  result = (value & 0xff) << 24;
-  result |= (value & 0xff00) << 8;
-  result |= (value & 0xff0000) >> 8;
-  result |= (value & 0xff000000) >> 24;
-  return result;
-}
-
-#define MAYBE_SWAP(V)  byte_swap (V)
-
-#else
-#define MAYBE_SWAP(V) (V)
-#endif /* WORDS_BIGENDIAN */
 
 /* Read the given attribute value as an address, taking the attribute's
    form into account.  */
@@ -2185,7 +2365,55 @@ attr_value_as_address (struct attribute 
 }
 
 /* The suffix for an index file.  */
-#define INDEX_SUFFIX ".gdb-index"
+#define INDEX4_SUFFIX ".gdb-index"
+#define INDEX5_SUFFIX ".debug_names"
+#define DEBUG_STR_SUFFIX ".debug_str"
+
+/* See declaration.  */
+
+dwarf2_per_objfile::dwarf2_per_objfile (struct objfile *objfile_,
+					const dwarf2_debug_sections *names)
+  : objfile (objfile_)
+{
+  if (names == NULL)
+    names = &dwarf2_elf_names;
+
+  bfd *obfd = objfile->obfd;
+
+  for (asection *sec = obfd->sections; sec != NULL; sec = sec->next)
+    locate_sections (obfd, sec, *names);
+}
+
+dwarf2_per_objfile::~dwarf2_per_objfile ()
+{
+  /* Cached DIE trees use xmalloc and the comp_unit_obstack.  */
+  free_cached_comp_units ();
+
+  if (quick_file_names_table)
+    htab_delete (quick_file_names_table);
+
+  if (line_header_hash)
+    htab_delete (line_header_hash);
+
+  /* Everything else should be on the objfile obstack.  */
+}
+
+/* See declaration.  */
+
+void
+dwarf2_per_objfile::free_cached_comp_units ()
+{
+  dwarf2_per_cu_data *per_cu = read_in_chain;
+  dwarf2_per_cu_data **last_chain = &read_in_chain;
+  while (per_cu != NULL)
+    {
+      dwarf2_per_cu_data *next_cu = per_cu->cu->read_in_chain;
+
+      free_heap_comp_unit (per_cu->cu);
+      *last_chain = next_cu;
+      per_cu = next_cu;
+    }
+}
 
 /* Try to locate the sections we need for DWARF 2 debugging
    information and return true if we have enough to do something.
@@ -2196,6 +2424,9 @@ int
 dwarf2_has_info (struct objfile *objfile,
                  const struct dwarf2_debug_sections *names)
 {
+  if (objfile->flags & OBJF_READNEVER)
+    return 0;
+
   dwarf2_per_objfile = ((struct dwarf2_per_objfile *)
 			objfile_data (objfile, dwarf2_objfile_data_key));
   if (!dwarf2_per_objfile)
@@ -2204,13 +2435,8 @@ dwarf2_has_info (struct objfile *objfile
       struct dwarf2_per_objfile *data
 	= XOBNEW (&objfile->objfile_obstack, struct dwarf2_per_objfile);
 
-      memset (data, 0, sizeof (*data));
-      set_objfile_data (objfile, dwarf2_objfile_data_key, data);
-      dwarf2_per_objfile = data;
-
-      bfd_map_over_sections (objfile->obfd, dwarf2_locate_sections,
-                             (void *) names);
-      dwarf2_per_objfile->objfile = objfile;
+      dwarf2_per_objfile = new (data) struct dwarf2_per_objfile (objfile, names);
+      set_objfile_data (objfile, dwarf2_objfile_data_key, dwarf2_per_objfile);
     }
   return (!dwarf2_per_objfile->info.is_virtual
 	  && dwarf2_per_objfile->info.s.section != NULL
@@ -2316,95 +2542,88 @@ section_is_p (const char *section_name,
   return 0;
 }
 
-/* This function is mapped across the sections and remembers the
-   offset and size of each of the debugging sections we are interested
-   in.  */
+/* See declaration.  */
 
-static void
-dwarf2_locate_sections (bfd *abfd, asection *sectp, void *vnames)
+void
+dwarf2_per_objfile::locate_sections (bfd *abfd, asection *sectp,
+				     const dwarf2_debug_sections &names)
 {
-  const struct dwarf2_debug_sections *names;
   flagword aflag = bfd_get_section_flags (abfd, sectp);
 
-  if (vnames == NULL)
-    names = &dwarf2_elf_names;
-  else
-    names = (const struct dwarf2_debug_sections *) vnames;
-
   if ((aflag & SEC_HAS_CONTENTS) == 0)
     {
     }
-  else if (section_is_p (sectp->name, &names->info))
+  else if (section_is_p (sectp->name, &names.info))
     {
-      dwarf2_per_objfile->info.s.section = sectp;
-      dwarf2_per_objfile->info.size = bfd_get_section_size (sectp);
+      this->info.s.section = sectp;
+      this->info.size = bfd_get_section_size (sectp);
     }
-  else if (section_is_p (sectp->name, &names->abbrev))
+  else if (section_is_p (sectp->name, &names.abbrev))
     {
-      dwarf2_per_objfile->abbrev.s.section = sectp;
-      dwarf2_per_objfile->abbrev.size = bfd_get_section_size (sectp);
+      this->abbrev.s.section = sectp;
+      this->abbrev.size = bfd_get_section_size (sectp);
     }
-  else if (section_is_p (sectp->name, &names->line))
+  else if (section_is_p (sectp->name, &names.line))
     {
-      dwarf2_per_objfile->line.s.section = sectp;
-      dwarf2_per_objfile->line.size = bfd_get_section_size (sectp);
+      this->line.s.section = sectp;
+      this->line.size = bfd_get_section_size (sectp);
     }
-  else if (section_is_p (sectp->name, &names->loc))
+  else if (section_is_p (sectp->name, &names.loc))
     {
-      dwarf2_per_objfile->loc.s.section = sectp;
-      dwarf2_per_objfile->loc.size = bfd_get_section_size (sectp);
+      this->loc.s.section = sectp;
+      this->loc.size = bfd_get_section_size (sectp);
     }
-  else if (section_is_p (sectp->name, &names->loclists))
+  else if (section_is_p (sectp->name, &names.loclists))
     {
-      dwarf2_per_objfile->loclists.s.section = sectp;
-      dwarf2_per_objfile->loclists.size = bfd_get_section_size (sectp);
+      this->loclists.s.section = sectp;
+      this->loclists.size = bfd_get_section_size (sectp);
     }
-  else if (section_is_p (sectp->name, &names->macinfo))
+  else if (section_is_p (sectp->name, &names.macinfo))
     {
-      dwarf2_per_objfile->macinfo.s.section = sectp;
-      dwarf2_per_objfile->macinfo.size = bfd_get_section_size (sectp);
+      this->macinfo.s.section = sectp;
+      this->macinfo.size = bfd_get_section_size (sectp);
     }
-  else if (section_is_p (sectp->name, &names->macro))
+  else if (section_is_p (sectp->name, &names.macro))
     {
-      dwarf2_per_objfile->macro.s.section = sectp;
-      dwarf2_per_objfile->macro.size = bfd_get_section_size (sectp);
+      this->macro.s.section = sectp;
+      this->macro.size = bfd_get_section_size (sectp);
     }
-  else if (section_is_p (sectp->name, &names->str))
+  else if (section_is_p (sectp->name, &names.str))
     {
-      dwarf2_per_objfile->str.s.section = sectp;
-      dwarf2_per_objfile->str.size = bfd_get_section_size (sectp);
+      this->str.s.section = sectp;
+      this->str.size = bfd_get_section_size (sectp);
     }
-  else if (section_is_p (sectp->name, &names->line_str))
+  else if (section_is_p (sectp->name, &names.line_str))
     {
-      dwarf2_per_objfile->line_str.s.section = sectp;
-      dwarf2_per_objfile->line_str.size = bfd_get_section_size (sectp);
+      this->line_str.s.section = sectp;
+      this->line_str.size = bfd_get_section_size (sectp);
     }
-  else if (section_is_p (sectp->name, &names->addr))
+  else if (section_is_p (sectp->name, &names.addr))
     {
-      dwarf2_per_objfile->addr.s.section = sectp;
-      dwarf2_per_objfile->addr.size = bfd_get_section_size (sectp);
+      this->addr.s.section = sectp;
+      this->addr.size = bfd_get_section_size (sectp);
     }
-  else if (section_is_p (sectp->name, &names->frame))
+  else if (section_is_p (sectp->name, &names.frame))
     {
-      dwarf2_per_objfile->frame.s.section = sectp;
-      dwarf2_per_objfile->frame.size = bfd_get_section_size (sectp);
+      this->frame.s.section = sectp;
+      this->frame.size = bfd_get_section_size (sectp);
     }
-  else if (section_is_p (sectp->name, &names->eh_frame))
+  else if (section_is_p (sectp->name, &names.eh_frame))
     {
-      dwarf2_per_objfile->eh_frame.s.section = sectp;
-      dwarf2_per_objfile->eh_frame.size = bfd_get_section_size (sectp);
+      this->eh_frame.s.section = sectp;
+      this->eh_frame.size = bfd_get_section_size (sectp);
     }
-  else if (section_is_p (sectp->name, &names->ranges))
+  else if (section_is_p (sectp->name, &names.ranges))
     {
-      dwarf2_per_objfile->ranges.s.section = sectp;
-      dwarf2_per_objfile->ranges.size = bfd_get_section_size (sectp);
+      this->ranges.s.section = sectp;
+      this->ranges.size = bfd_get_section_size (sectp);
     }
-  else if (section_is_p (sectp->name, &names->rnglists))
+  else if (section_is_p (sectp->name, &names.rnglists))
     {
-      dwarf2_per_objfile->rnglists.s.section = sectp;
-      dwarf2_per_objfile->rnglists.size = bfd_get_section_size (sectp);
+      this->rnglists.s.section = sectp;
+      this->rnglists.size = bfd_get_section_size (sectp);
     }
-  else if (section_is_p (sectp->name, &names->types))
+  else if (section_is_p (sectp->name, &names.types))
     {
       struct dwarf2_section_info type_section;
 
@@ -2412,18 +2631,28 @@ dwarf2_locate_sections (bfd *abfd, asect
       type_section.s.section = sectp;
       type_section.size = bfd_get_section_size (sectp);
 
-      VEC_safe_push (dwarf2_section_info_def, dwarf2_per_objfile->types,
+      VEC_safe_push (dwarf2_section_info_def, this->types,
 		     &type_section);
     }
-  else if (section_is_p (sectp->name, &names->gdb_index))
+  else if (section_is_p (sectp->name, &names.gdb_index))
+    {
+      this->gdb_index.s.section = sectp;
+      this->gdb_index.size = bfd_get_section_size (sectp);
+    }
+  else if (section_is_p (sectp->name, &names.debug_names))
     {
-      dwarf2_per_objfile->gdb_index.s.section = sectp;
-      dwarf2_per_objfile->gdb_index.size = bfd_get_section_size (sectp);
+      this->debug_names.s.section = sectp;
+      this->debug_names.size = bfd_get_section_size (sectp);
+    }
+  else if (section_is_p (sectp->name, &names.debug_aranges))
+    {
+      this->debug_aranges.s.section = sectp;
+      this->debug_aranges.size = bfd_get_section_size (sectp);
     }
 
   if ((bfd_get_section_flags (abfd, sectp) & (SEC_LOAD | SEC_ALLOC))
       && bfd_section_vma (abfd, sectp) == 0)
-    dwarf2_per_objfile->has_section_at_zero = 1;
+    this->has_section_at_zero = true;
 }
 
 /* A helper function that decides whether a section is empty,
@@ -2616,6 +2845,11 @@ locate_dwz_sections (bfd *abfd, asection
       dwz_file->gdb_index.s.section = sectp;
       dwz_file->gdb_index.size = bfd_get_section_size (sectp);
     }
+  else if (section_is_p (sectp->name, &dwarf2_elf_names.debug_names))
+    {
+      dwz_file->debug_names.s.section = sectp;
+      dwz_file->debug_names.size = bfd_get_section_size (sectp);
+    }
 }
 
 /* Open the separate '.dwz' debug file, if needed.  Return NULL if
@@ -2625,8 +2859,6 @@ locate_dwz_sections (bfd *abfd, asection
 static struct dwz_file *
 dwarf2_get_dwz_file (void)
 {
-  char *data;
-  struct cleanup *cleanup;
   const char *filename;
   struct dwz_file *result;
   bfd_size_type buildid_len_arg;
@@ -2637,8 +2869,9 @@ dwarf2_get_dwz_file (void)
     return dwarf2_per_objfile->dwz_file;
 
   bfd_set_error (bfd_error_no_error);
-  data = bfd_get_alt_debug_link_info (dwarf2_per_objfile->objfile->obfd,
-				      &buildid_len_arg, &buildid);
+  gdb::unique_xmalloc_ptr<char> data
+    (bfd_get_alt_debug_link_info (dwarf2_per_objfile->objfile->obfd,
+				  &buildid_len_arg, &buildid));
   if (data == NULL)
     {
       if (bfd_get_error () == bfd_error_no_error)
@@ -2646,20 +2879,20 @@ dwarf2_get_dwz_file (void)
       error (_("could not read '.gnu_debugaltlink' section: %s"),
 	     bfd_errmsg (bfd_get_error ()));
     }
-  cleanup = make_cleanup (xfree, data);
-  make_cleanup (xfree, buildid);
+
+  gdb::unique_xmalloc_ptr<bfd_byte> buildid_holder (buildid);
 
   buildid_len = (size_t) buildid_len_arg;
 
-  filename = (const char *) data;
+  filename = data.get ();
 
   std::string abs_storage;
   if (!IS_ABSOLUTE_PATH (filename))
     {
-      char *abs = gdb_realpath (objfile_name (dwarf2_per_objfile->objfile));
+      gdb::unique_xmalloc_ptr<char> abs
+	= gdb_realpath (objfile_name (dwarf2_per_objfile->objfile));
 
-      make_cleanup (xfree, abs);
-      abs_storage = ldirname (abs) + SLASH_STRING + filename;
+      abs_storage = ldirname (abs.get ()) + SLASH_STRING + filename;
       filename = abs_storage.c_str ();
     }
 
@@ -2685,8 +2918,6 @@ dwarf2_get_dwz_file (void)
 
   bfd_map_over_sections (result->dwz_bfd, locate_dwz_sections, result);
 
-  do_cleanups (cleanup);
-
   gdb_bfd_record_inclusion (dwarf2_per_objfile->objfile->obfd, result->dwz_bfd);
   dwarf2_per_objfile->dwz_file = result;
   return result;
@@ -2937,6 +3168,29 @@ dw2_get_cu (int index)
   return dwarf2_per_objfile->all_comp_units[index];
 }
 
+/* Return a new dwarf2_per_cu_data allocated on OBJFILE's
+   objfile_obstack, and constructed with the specified field
+   values.  */
+
+static dwarf2_per_cu_data *
+create_cu_from_index_list (struct objfile *objfile,
+                          struct dwarf2_section_info *section,
+                          int is_dwz,
+                          sect_offset sect_off, ULONGEST length)
+{
+  dwarf2_per_cu_data *the_cu
+    = OBSTACK_ZALLOC (&objfile->objfile_obstack,
+                     struct dwarf2_per_cu_data);
+  the_cu->sect_off = sect_off;
+  the_cu->length = length;
+  the_cu->objfile = objfile;
+  the_cu->section = section;
+  the_cu->v.quick = OBSTACK_ZALLOC (&objfile->objfile_obstack,
+                                   struct dwarf2_per_cu_quick_data);
+  the_cu->is_dwz = is_dwz;
+  return the_cu;
+}
+
 /* A helper for create_cus_from_index that handles a given list of
    CUs.  */
 
@@ -2958,17 +3212,8 @@ create_cus_from_index_list (struct objfi
       ULONGEST length = extract_unsigned_integer (cu_list + 8, 8, BFD_ENDIAN_LITTLE);
       cu_list += 2 * 8;
 
-      dwarf2_per_cu_data *the_cu
-	= OBSTACK_ZALLOC (&objfile->objfile_obstack,
-			  struct dwarf2_per_cu_data);
-      the_cu->sect_off = sect_off;
-      the_cu->length = length;
-      the_cu->objfile = objfile;
-      the_cu->section = section;
-      the_cu->v.quick = OBSTACK_ZALLOC (&objfile->objfile_obstack,
-					struct dwarf2_per_cu_quick_data);
-      the_cu->is_dwz = is_dwz;
-      dwarf2_per_objfile->all_comp_units[base_offset + i / 2] = the_cu;
+      dwarf2_per_objfile->all_comp_units[base_offset + i / 2]
+	= create_cu_from_index_list (objfile, section, is_dwz, sect_off, length);
     }
 }
 
@@ -3054,6 +3299,65 @@ create_signatured_type_table_from_index 
   dwarf2_per_objfile->signatured_types = sig_types_hash;
 }
 
+/* Create the signatured type hash table from .debug_names.  */
+
+static void
+create_signatured_type_table_from_debug_names
+  (struct objfile *objfile,
+   const mapped_debug_names &map,
+   struct dwarf2_section_info *section,
+   struct dwarf2_section_info *abbrev_section)
+{
+  dwarf2_read_section (objfile, section);
+  dwarf2_read_section (objfile, abbrev_section);
+
+  dwarf2_per_objfile->n_type_units
+    = dwarf2_per_objfile->n_allocated_type_units
+    = map.tu_count;
+  dwarf2_per_objfile->all_type_units
+    = XNEWVEC (struct signatured_type *, dwarf2_per_objfile->n_type_units);
+
+  htab_t sig_types_hash = allocate_signatured_type_table (objfile);
+
+  for (uint32_t i = 0; i < map.tu_count; ++i)
+    {
+      struct signatured_type *sig_type;
+      ULONGEST signature;
+      void **slot;
+      cu_offset type_offset_in_tu;
+
+      sect_offset sect_off
+	= (sect_offset) (extract_unsigned_integer
+			 (map.tu_table_reordered + i * map.offset_size,
+			  map.offset_size,
+			  map.dwarf5_byte_order));
+
+      comp_unit_head cu_header;
+      read_and_check_comp_unit_head (&cu_header, section, abbrev_section,
+				     section->buffer + to_underlying (sect_off),
+				     rcuh_kind::TYPE);
+
+      sig_type = OBSTACK_ZALLOC (&objfile->objfile_obstack,
+				 struct signatured_type);
+      sig_type->signature = cu_header.signature;
+      sig_type->type_offset_in_tu = cu_header.type_cu_offset_in_tu;
+      sig_type->per_cu.is_debug_types = 1;
+      sig_type->per_cu.section = section;
+      sig_type->per_cu.sect_off = sect_off;
+      sig_type->per_cu.objfile = objfile;
+      sig_type->per_cu.v.quick
+	= OBSTACK_ZALLOC (&objfile->objfile_obstack,
+			  struct dwarf2_per_cu_quick_data);
+
+      slot = htab_find_slot (sig_types_hash, sig_type, INSERT);
+      *slot = sig_type;
+
+      dwarf2_per_objfile->all_type_units[i] = sig_type;
+    }
+
+  dwarf2_per_objfile->signatured_types = sig_types_hash;
+}
+
 /* Read the address map data from the mapped index, and use it to
    populate the objfile's psymtabs_addrmap.  */
 
@@ -3062,17 +3366,15 @@ create_addrmap_from_index (struct objfil
 {
   struct gdbarch *gdbarch = get_objfile_arch (objfile);
   const gdb_byte *iter, *end;
-  struct obstack temp_obstack;
   struct addrmap *mutable_map;
-  struct cleanup *cleanup;
   CORE_ADDR baseaddr;
 
-  obstack_init (&temp_obstack);
-  cleanup = make_cleanup_obstack_free (&temp_obstack);
+  auto_obstack temp_obstack;
+
   mutable_map = addrmap_create_mutable (&temp_obstack);
 
-  iter = index->address_table;
-  end = iter + index->address_table_size;
+  iter = index->address_table.data ();
+  end = iter + index->address_table.size ();
 
   baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
 
@@ -3109,7 +3411,165 @@ create_addrmap_from_index (struct objfil
 
   objfile->psymtabs_addrmap = addrmap_create_fixed (mutable_map,
 						    &objfile->objfile_obstack);
-  do_cleanups (cleanup);
+}
+
+/* Read the address map data from DWARF-5 .debug_aranges, and use it to
+   populate the objfile's psymtabs_addrmap.  */
+
+static void
+create_addrmap_from_aranges (struct objfile *objfile,
+			     struct dwarf2_section_info *section)
+{
+  bfd *abfd = objfile->obfd;
+  struct gdbarch *gdbarch = get_objfile_arch (objfile);
+  const CORE_ADDR baseaddr = ANOFFSET (objfile->section_offsets,
+				       SECT_OFF_TEXT (objfile));
+
+  auto_obstack temp_obstack;
+  addrmap *mutable_map = addrmap_create_mutable (&temp_obstack);
+
+  std::unordered_map<sect_offset,
+		     dwarf2_per_cu_data *,
+		     gdb::hash_enum<sect_offset>>
+    debug_info_offset_to_per_cu;
+  for (int cui = 0; cui < dwarf2_per_objfile->n_comp_units; ++cui)
+    {
+      dwarf2_per_cu_data *per_cu = dw2_get_cutu (cui);
+      const auto insertpair
+	= debug_info_offset_to_per_cu.emplace (per_cu->sect_off, per_cu);
+      if (!insertpair.second)
+	{
+	  warning (_("Section .debug_aranges in %s has duplicate "
+		     "debug_info_offset %u, ignoring .debug_aranges."),
+		   objfile_name (objfile), to_underlying (per_cu->sect_off));
+	  return;
+	}
+    }
+
+  dwarf2_read_section (objfile, section);
+
+  const bfd_endian dwarf5_byte_order = gdbarch_byte_order (gdbarch);
+
+  const gdb_byte *addr = section->buffer;
+
+  while (addr < section->buffer + section->size)
+    {
+      const gdb_byte *const entry_addr = addr;
+      unsigned int bytes_read;
+
+      const LONGEST entry_length = read_initial_length (abfd, addr,
+							&bytes_read);
+      addr += bytes_read;
+
+      const gdb_byte *const entry_end = addr + entry_length;
+      const bool dwarf5_is_dwarf64 = bytes_read != 4;
+      const uint8_t offset_size = dwarf5_is_dwarf64 ? 8 : 4;
+      if (addr + entry_length > section->buffer + section->size)
+	{
+	  warning (_("Section .debug_aranges in %s entry at offset %zu "
+	             "length %s exceeds section length %s, "
+		     "ignoring .debug_aranges."),
+		   objfile_name (objfile), entry_addr - section->buffer,
+		   plongest (bytes_read + entry_length),
+		   pulongest (section->size));
+	  return;
+	}
+
+      /* The version number.  */
+      const uint16_t version = read_2_bytes (abfd, addr);
+      addr += 2;
+      if (version != 2)
+	{
+	  warning (_("Section .debug_aranges in %s entry at offset %zu "
+		     "has unsupported version %d, ignoring .debug_aranges."),
+		   objfile_name (objfile), entry_addr - section->buffer,
+		   version);
+	  return;
+	}
+
+      const uint64_t debug_info_offset
+	= extract_unsigned_integer (addr, offset_size, dwarf5_byte_order);
+      addr += offset_size;
+      const auto per_cu_it
+	= debug_info_offset_to_per_cu.find (sect_offset (debug_info_offset));
+      if (per_cu_it == debug_info_offset_to_per_cu.cend ())
+	{
+	  warning (_("Section .debug_aranges in %s entry at offset %zu "
+		     "debug_info_offset %s does not exists, "
+		     "ignoring .debug_aranges."),
+		   objfile_name (objfile), entry_addr - section->buffer,
+		   pulongest (debug_info_offset));
+	  return;
+	}
+      dwarf2_per_cu_data *const per_cu = per_cu_it->second;
+
+      const uint8_t address_size = *addr++;
+      if (address_size < 1 || address_size > 8)
+	{
+	  warning (_("Section .debug_aranges in %s entry at offset %zu "
+		     "address_size %u is invalid, ignoring .debug_aranges."),
+		   objfile_name (objfile), entry_addr - section->buffer,
+		   address_size);
+	  return;
+	}
+
+      const uint8_t segment_selector_size = *addr++;
+      if (segment_selector_size != 0)
+	{
+	  warning (_("Section .debug_aranges in %s entry at offset %zu "
+		     "segment_selector_size %u is not supported, "
+		     "ignoring .debug_aranges."),
+		   objfile_name (objfile), entry_addr - section->buffer,
+		   segment_selector_size);
+	  return;
+	}
+
+      /* Must pad to an alignment boundary that is twice the address
+         size.  It is undocumented by the DWARF standard but GCC does
+         use it.  */
+      for (size_t padding = ((-(addr - section->buffer))
+			     & (2 * address_size - 1));
+           padding > 0; padding--)
+	if (*addr++ != 0)
+	  {
+	    warning (_("Section .debug_aranges in %s entry at offset %zu "
+		       "padding is not zero, ignoring .debug_aranges."),
+		     objfile_name (objfile), entry_addr - section->buffer);
+	    return;
+	  }
+
+      for (;;)
+	{
+	  if (addr + 2 * address_size > entry_end)
+	    {
+	      warning (_("Section .debug_aranges in %s entry at offset %zu "
+			 "address list is not properly terminated, "
+			 "ignoring .debug_aranges."),
+		       objfile_name (objfile), entry_addr - section->buffer);
+	      return;
+	    }
+	  ULONGEST start = extract_unsigned_integer (addr, address_size,
+						     dwarf5_byte_order);
+	  addr += address_size;
+	  ULONGEST length = extract_unsigned_integer (addr, address_size,
+						      dwarf5_byte_order);
+	  addr += address_size;
+	  if (start == 0 && length == 0)
+	    break;
+	  if (start == 0 && !dwarf2_per_objfile->has_section_at_zero)
+	    {
+	      /* Symbol was eliminated due to a COMDAT group.  */
+	      continue;
+	    }
+	  ULONGEST end = start + length;
+	  start = gdbarch_adjust_dwarf2_addr (gdbarch, start + baseaddr);
+	  end = gdbarch_adjust_dwarf2_addr (gdbarch, end + baseaddr);
+	  addrmap_set_empty (mutable_map, start, end - 1, per_cu);
+	}
+    }
+
+  objfile->psymtabs_addrmap = addrmap_create_fixed (mutable_map,
+						    &objfile->objfile_obstack);
 }
 
 /* The hash function for strings in the mapped index.  This is the same as
@@ -3139,17 +3599,18 @@ mapped_index_string_hash (int index_vers
 
 /* Find a slot in the mapped index INDEX for the object named NAME.
    If NAME is found, set *VEC_OUT to point to the CU vector in the
-   constant pool and return 1.  If NAME cannot be found, return 0.  */
+   constant pool and return true.  If NAME cannot be found, return
+   false.  */
 
-static int
+static bool
 find_slot_in_mapped_hash (struct mapped_index *index, const char *name,
 			  offset_type **vec_out)
 {
-  struct cleanup *back_to = make_cleanup (null_cleanup, 0);
   offset_type hash;
   offset_type slot, step;
   int (*cmp) (const char *, const char *);
 
+  gdb::unique_xmalloc_ptr<char> without_params;
   if (current_language->la_language == language_cplus
       || current_language->la_language == language_fortran
       || current_language->la_language == language_d)
@@ -3159,13 +3620,10 @@ find_slot_in_mapped_hash (struct mapped_
 
       if (strchr (name, '(') != NULL)
 	{
-	  char *without_params = cp_remove_params (name);
+	  without_params = cp_remove_params (name);
 
 	  if (without_params != NULL)
-	    {
-	      make_cleanup (xfree, without_params);
-	      name = without_params;
-	    }
+	    name = without_params.get ();
 	}
     }
 
@@ -3177,31 +3635,27 @@ find_slot_in_mapped_hash (struct mapped_
 				    ? 5 : index->version),
 				   name);
 
-  slot = hash & (index->symbol_table_slots - 1);
-  step = ((hash * 17) & (index->symbol_table_slots - 1)) | 1;
+  slot = hash & (index->symbol_table.size () - 1);
+  step = ((hash * 17) & (index->symbol_table.size () - 1)) | 1;
   cmp = (case_sensitivity == case_sensitive_on ? strcmp : strcasecmp);
 
   for (;;)
     {
-      /* Convert a slot number to an offset into the table.  */
-      offset_type i = 2 * slot;
       const char *str;
-      if (index->symbol_table[i] == 0 && index->symbol_table[i + 1] == 0)
-	{
-	  do_cleanups (back_to);
-	  return 0;
-	}
 
-      str = index->constant_pool + MAYBE_SWAP (index->symbol_table[i]);
+      const auto &bucket = index->symbol_table[slot];
+      if (bucket.name == 0 && bucket.vec == 0)
+	return false;
+
+      str = index->constant_pool + MAYBE_SWAP (bucket.name);
       if (!cmp (name, str))
 	{
 	  *vec_out = (offset_type *) (index->constant_pool
-				      + MAYBE_SWAP (index->symbol_table[i + 1]));
-	  do_cleanups (back_to);
-	  return 1;
+				      + MAYBE_SWAP (bucket.vec));
+	  return true;
 	}
 
-      slot = (slot + step) & (index->symbol_table_slots - 1);
+      slot = (slot + step) & (index->symbol_table.size () - 1);
     }
 }
 
@@ -3312,24 +3766,26 @@ to use the section anyway."),
 			  / 8);
   ++i;
 
-  map->address_table = addr + MAYBE_SWAP (metadata[i]);
-  map->address_table_size = (MAYBE_SWAP (metadata[i + 1])
-			     - MAYBE_SWAP (metadata[i]));
+  const gdb_byte *address_table = addr + MAYBE_SWAP (metadata[i]);
+  const gdb_byte *address_table_end = addr + MAYBE_SWAP (metadata[i + 1]);
+  map->address_table
+    = gdb::array_view<const gdb_byte> (address_table, address_table_end);
   ++i;
 
-  map->symbol_table = (offset_type *) (addr + MAYBE_SWAP (metadata[i]));
-  map->symbol_table_slots = ((MAYBE_SWAP (metadata[i + 1])
-			      - MAYBE_SWAP (metadata[i]))
-			     / (2 * sizeof (offset_type)));
-  ++i;
+  const gdb_byte *symbol_table = addr + MAYBE_SWAP (metadata[i]);
+  const gdb_byte *symbol_table_end = addr + MAYBE_SWAP (metadata[i + 1]);
+  map->symbol_table
+    = gdb::array_view<mapped_index::symbol_table_slot>
+       ((mapped_index::symbol_table_slot *) symbol_table,
+	(mapped_index::symbol_table_slot *) symbol_table_end);
 
+  ++i;
   map->constant_pool = (char *) (addr + MAYBE_SWAP (metadata[i]));
 
   return 1;
 }
 
-
-/* Read the index file.  If everything went ok, initialize the "quick"
+/* Read .gdb_index.  If everything went ok, initialize the "quick"
    elements of all the CUs and return 1.  Otherwise, return 0.  */
 
 static int
@@ -3348,7 +3804,7 @@ dwarf2_read_index (struct objfile *objfi
     return 0;
 
   /* Don't use the index if it's empty.  */
-  if (local_map.symbol_table_slots == 0)
+  if (local_map.symbol_table.empty ())
     return 0;
 
   /* If there is a .dwz file, read it so we can get its CU list as
@@ -3395,6 +3851,7 @@ dwarf2_read_index (struct objfile *objfi
   create_addrmap_from_index (objfile, &local_map);
 
   map = XOBNEW (&objfile->objfile_obstack, struct mapped_index);
+  map = new (map) mapped_index ();
   *map = local_map;
 
   dwarf2_per_objfile->index_table = map;
@@ -3531,7 +3988,7 @@ dw2_get_real_path (struct objfile *objfi
 				      qfn->num_file_names, const char *);
 
   if (qfn->real_names[index] == NULL)
-    qfn->real_names[index] = gdb_realpath (qfn->file_names[index]);
+    qfn->real_names[index] = gdb_realpath (qfn->file_names[index]).release ();
 
   return qfn->real_names[index];
 }
@@ -3829,6 +4286,8 @@ dw2_lookup_symbol (struct objfile *objfi
 
   dw2_setup (objfile);
 
+  lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
+
   index = dwarf2_per_objfile->index_table;
 
   /* index is NULL if OBJF_READNOW.  */
@@ -3855,10 +4314,10 @@ dw2_lookup_symbol (struct objfile *objfi
 	     information (but NAME might contain it).  */
 
 	  if (sym != NULL
-	      && strcmp_iw (SYMBOL_SEARCH_NAME (sym), name) == 0)
+	      && SYMBOL_MATCHES_SEARCH_NAME (sym, lookup_name))
 	    return stab;
 	  if (with_opaque != NULL
-	      && strcmp_iw (SYMBOL_SEARCH_NAME (with_opaque), name) == 0)
+	      && SYMBOL_MATCHES_SEARCH_NAME (with_opaque, lookup_name))
 	    stab_best = stab;
 
 	  /* Keep looking through other CUs.  */
@@ -4003,7 +4462,7 @@ dw2_map_matching_symbols (struct objfile
 			  int global,
 			  int (*callback) (struct block *,
 					   struct symbol *, void *),
-			  void *data, symbol_compare_ftype *match,
+			  void *data, symbol_name_match_type match,
 			  symbol_compare_ftype *ordered_compare)
 {
   /* Currently unimplemented; used for Ada.  The function can be called if the
@@ -4011,349 +4470,2003 @@ dw2_map_matching_symbols (struct objfile
      does not look for non-Ada symbols this function should just return.  */
 }
 
-static void
-dw2_expand_symtabs_matching
-  (struct objfile *objfile,
-   gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
-   gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
-   gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
-   enum search_domain kind)
+/* Symbol name matcher for .gdb_index names.
+
+   Symbol names in .gdb_index have a few particularities:
+
+   - There's no indication of which is the language of each symbol.
+
+     Since each language has its own symbol name matching algorithm,
+     and we don't know which language is the right one, we must match
+     each symbol against all languages.  This would be a potential
+     performance problem if it were not mitigated by the
+     mapped_index::name_components lookup table, which significantly
+     reduces the number of times we need to call into this matcher,
+     making it a non-issue.
+
+   - Symbol names in the index have no overload (parameter)
+     information.  I.e., in C++, "foo(int)" and "foo(long)" both
+     appear as "foo" in the index, for example.
+
+     This means that the lookup names passed to the symbol name
+     matcher functions must have no parameter information either
+     because (e.g.) symbol search name "foo" does not match
+     lookup-name "foo(int)" [while swapping search name for lookup
+     name would match].
+*/
+class gdb_index_symbol_name_matcher
 {
-  int i;
-  offset_type iter;
-  struct mapped_index *index;
+public:
+  /* Prepares the vector of comparison functions for LOOKUP_NAME.  */
+  gdb_index_symbol_name_matcher (const lookup_name_info &lookup_name);
 
-  dw2_setup (objfile);
+  /* Walk all the matcher routines and match SYMBOL_NAME against them.
+     Returns true if any matcher matches.  */
+  bool matches (const char *symbol_name);
 
-  /* index_table is NULL if OBJF_READNOW.  */
-  if (!dwarf2_per_objfile->index_table)
-    return;
-  index = dwarf2_per_objfile->index_table;
+private:
+  /* A reference to the lookup name we're matching against.  */
+  const lookup_name_info &m_lookup_name;
 
-  if (file_matcher != NULL)
-    {
-      htab_up visited_found (htab_create_alloc (10, htab_hash_pointer,
-						htab_eq_pointer,
-						NULL, xcalloc, xfree));
-      htab_up visited_not_found (htab_create_alloc (10, htab_hash_pointer,
-						    htab_eq_pointer,
-						    NULL, xcalloc, xfree));
+  /* A vector holding all the different symbol name matchers, for all
+     languages.  */
+  std::vector<symbol_name_matcher_ftype *> m_symbol_name_matcher_funcs;
+};
+
+gdb_index_symbol_name_matcher::gdb_index_symbol_name_matcher
+  (const lookup_name_info &lookup_name)
+    : m_lookup_name (lookup_name)
+{
+  /* Prepare the vector of comparison functions upfront, to avoid
+     doing the same work for each symbol.  Care is taken to avoid
+     matching with the same matcher more than once if/when multiple
+     languages use the same matcher function.  */
+  auto &matchers = m_symbol_name_matcher_funcs;
+  matchers.reserve (nr_languages);
 
-      /* The rule is CUs specify all the files, including those used by
-	 any TU, so there's no need to scan TUs here.  */
+  matchers.push_back (default_symbol_name_matcher);
 
-      for (i = 0; i < dwarf2_per_objfile->n_comp_units; ++i)
+  for (int i = 0; i < nr_languages; i++)
+    {
+      const language_defn *lang = language_def ((enum language) i);
+      if (lang->la_get_symbol_name_matcher != NULL)
 	{
-	  int j;
-	  struct dwarf2_per_cu_data *per_cu = dw2_get_cu (i);
-	  struct quick_file_names *file_data;
-	  void **slot;
+	  symbol_name_matcher_ftype *name_matcher
+	    = lang->la_get_symbol_name_matcher (m_lookup_name);
 
-	  QUIT;
+	  /* Don't insert the same comparison routine more than once.
+	     Note that we do this linear walk instead of a cheaper
+	     sorted insert, or use a std::set or something like that,
+	     because relative order of function addresses is not
+	     stable.  This is not a problem in practice because the
+	     number of supported languages is low, and the cost here
+	     is tiny compared to the number of searches we'll do
+	     afterwards using this object.  */
+	  if (std::find (matchers.begin (), matchers.end (), name_matcher)
+	      == matchers.end ())
+	    matchers.push_back (name_matcher);
+	}
+    }
+}
 
-	  per_cu->v.quick->mark = 0;
+bool
+gdb_index_symbol_name_matcher::matches (const char *symbol_name)
+{
+  for (auto matches_name : m_symbol_name_matcher_funcs)
+    if (matches_name (symbol_name, m_lookup_name, NULL))
+      return true;
 
-	  /* We only need to look at symtabs not already expanded.  */
-	  if (per_cu->v.quick->compunit_symtab)
-	    continue;
+  return false;
+}
 
-	  file_data = dw2_get_file_names (per_cu);
-	  if (file_data == NULL)
-	    continue;
+/* Starting from a search name, return the string that finds the upper
+   bound of all strings that start with SEARCH_NAME in a sorted name
+   list.  Returns the empty string to indicate that the upper bound is
+   the end of the list.  */
+
+static std::string
+make_sort_after_prefix_name (const char *search_name)
+{
+  /* When looking to complete "func", we find the upper bound of all
+     symbols that start with "func" by looking for where we'd insert
+     the closest string that would follow "func" in lexicographical
+     order.  Usually, that's "func"-with-last-character-incremented,
+     i.e. "fund".  Mind non-ASCII characters, though.  Usually those
+     will be UTF-8 multi-byte sequences, but we can't be certain.
+     Especially mind the 0xff character, which is a valid character in
+     non-UTF-8 source character sets (e.g. Latin1 'Ã¿'), and we can't
+     rule out compilers allowing it in identifiers.  Note that
+     conveniently, strcmp/strcasecmp are specified to compare
+     characters interpreted as unsigned char.  So what we do is treat
+     the whole string as a base 256 number composed of a sequence of
+     base 256 "digits" and add 1 to it.  I.e., adding 1 to 0xff wraps
+     to 0, and carries 1 to the following more-significant position.
+     If the very first character in SEARCH_NAME ends up incremented
+     and carries/overflows, then the upper bound is the end of the
+     list.  The string after the empty string is also the empty
+     string.
+
+     Some examples of this operation:
+
+       SEARCH_NAME  => "+1" RESULT
+
+       "abc"              => "abd"
+       "ab\xff"           => "ac"
+       "\xff" "a" "\xff"  => "\xff" "b"
+       "\xff"             => ""
+       "\xff\xff"         => ""
+       ""                 => ""
+
+     Then, with these symbols for example:
+
+      func
+      func1
+      fund
+
+     completing "func" looks for symbols between "func" and
+     "func"-with-last-character-incremented, i.e. "fund" (exclusive),
+     which finds "func" and "func1", but not "fund".
+
+     And with:
+
+      funcÃ¿     (Latin1 'Ã¿' [0xff])
+      funcÃ¿1
+      fund
+
+     completing "funcÃ¿" looks for symbols between "funcÃ¿" and "fund"
+     (exclusive), which finds "funcÃ¿" and "funcÃ¿1", but not "fund".
+
+     And with:
+
+      Ã¿Ã¿        (Latin1 'Ã¿' [0xff])
+      Ã¿Ã¿1
+
+     completing "Ã¿" or "Ã¿Ã¿" looks for symbols between between "Ã¿Ã¿" and
+     the end of the list.
+  */
+  std::string after = search_name;
+  while (!after.empty () && (unsigned char) after.back () == 0xff)
+    after.pop_back ();
+  if (!after.empty ())
+    after.back () = (unsigned char) after.back () + 1;
+  return after;
+}
+
+/* See declaration.  */
+
+std::pair<std::vector<name_component>::const_iterator,
+	  std::vector<name_component>::const_iterator>
+mapped_index_base::find_name_components_bounds
+  (const lookup_name_info &lookup_name_without_params) const
+{
+  auto *name_cmp
+    = this->name_components_casing == case_sensitive_on ? strcmp : strcasecmp;
+
+  const char *cplus
+    = lookup_name_without_params.cplus ().lookup_name ().c_str ();
+
+  /* Comparison function object for lower_bound that matches against a
+     given symbol name.  */
+  auto lookup_compare_lower = [&] (const name_component &elem,
+				   const char *name)
+    {
+      const char *elem_qualified = this->symbol_name_at (elem.idx);
+      const char *elem_name = elem_qualified + elem.name_offset;
+      return name_cmp (elem_name, name) < 0;
+    };
 
-	  if (htab_find (visited_not_found.get (), file_data) != NULL)
-	    continue;
-	  else if (htab_find (visited_found.get (), file_data) != NULL)
-	    {
-	      per_cu->v.quick->mark = 1;
-	      continue;
-	    }
+  /* Comparison function object for upper_bound that matches against a
+     given symbol name.  */
+  auto lookup_compare_upper = [&] (const char *name,
+				   const name_component &elem)
+    {
+      const char *elem_qualified = this->symbol_name_at (elem.idx);
+      const char *elem_name = elem_qualified + elem.name_offset;
+      return name_cmp (name, elem_name) < 0;
+    };
 
-	  for (j = 0; j < file_data->num_file_names; ++j)
-	    {
-	      const char *this_real_name;
+  auto begin = this->name_components.begin ();
+  auto end = this->name_components.end ();
 
-	      if (file_matcher (file_data->file_names[j], false))
-		{
-		  per_cu->v.quick->mark = 1;
-		  break;
-		}
+  /* Find the lower bound.  */
+  auto lower = [&] ()
+    {
+      if (lookup_name_without_params.completion_mode () && cplus[0] == '\0')
+	return begin;
+      else
+	return std::lower_bound (begin, end, cplus, lookup_compare_lower);
+    } ();
 
-	      /* Before we invoke realpath, which can get expensive when many
-		 files are involved, do a quick comparison of the basenames.  */
-	      if (!basenames_may_differ
-		  && !file_matcher (lbasename (file_data->file_names[j]),
-				    true))
-		continue;
+  /* Find the upper bound.  */
+  auto upper = [&] ()
+    {
+      if (lookup_name_without_params.completion_mode ())
+	{
+	  /* In completion mode, we want UPPER to point past all
+	     symbols names that have the same prefix.  I.e., with
+	     these symbols, and completing "func":
+
+	      function        << lower bound
+	      function1
+	      other_function  << upper bound
+
+	     We find the upper bound by looking for the insertion
+	     point of "func"-with-last-character-incremented,
+	     i.e. "fund".  */
+	  std::string after = make_sort_after_prefix_name (cplus);
+	  if (after.empty ())
+	    return end;
+	  return std::lower_bound (lower, end, after.c_str (),
+				   lookup_compare_lower);
+	}
+      else
+	return std::upper_bound (lower, end, cplus, lookup_compare_upper);
+    } ();
 
-	      this_real_name = dw2_get_real_path (objfile, file_data, j);
-	      if (file_matcher (this_real_name, false))
-		{
-		  per_cu->v.quick->mark = 1;
-		  break;
-		}
-	    }
+  return {lower, upper};
+}
 
-	  slot = htab_find_slot (per_cu->v.quick->mark
-				 ? visited_found.get ()
-				 : visited_not_found.get (),
-				 file_data, INSERT);
-	  *slot = file_data;
-	}
-    }
+/* See declaration.  */
+
+void
+mapped_index_base::build_name_components ()
+{
+  if (!this->name_components.empty ())
+    return;
 
-  for (iter = 0; iter < index->symbol_table_slots; ++iter)
+  this->name_components_casing = case_sensitivity;
+  auto *name_cmp
+    = this->name_components_casing == case_sensitive_on ? strcmp : strcasecmp;
+
+  /* The code below only knows how to break apart components of C++
+     symbol names (and other languages that use '::' as
+     namespace/module separator).  If we add support for wild matching
+     to some language that uses some other operator (E.g., Ada, Go and
+     D use '.'), then we'll need to try splitting the symbol name
+     according to that language too.  Note that Ada does support wild
+     matching, but doesn't currently support .gdb_index.  */
+  auto count = this->symbol_name_count ();
+  for (offset_type idx = 0; idx < count; idx++)
     {
-      offset_type idx = 2 * iter;
-      const char *name;
-      offset_type *vec, vec_len, vec_idx;
-      int global_seen = 0;
+      if (this->symbol_name_slot_invalid (idx))
+	continue;
 
-      QUIT;
+      const char *name = this->symbol_name_at (idx);
 
-      if (index->symbol_table[idx] == 0 && index->symbol_table[idx + 1] == 0)
-	continue;
+      /* Add each name component to the name component table.  */
+      unsigned int previous_len = 0;
+      for (unsigned int current_len = cp_find_first_component (name);
+	   name[current_len] != '\0';
+	   current_len += cp_find_first_component (name + current_len))
+	{
+	  gdb_assert (name[current_len] == ':');
+	  this->name_components.push_back ({previous_len, idx});
+	  /* Skip the '::'.  */
+	  current_len += 2;
+	  previous_len = current_len;
+	}
+      this->name_components.push_back ({previous_len, idx});
+    }
 
-      name = index->constant_pool + MAYBE_SWAP (index->symbol_table[idx]);
+  /* Sort name_components elements by name.  */
+  auto name_comp_compare = [&] (const name_component &left,
+				const name_component &right)
+    {
+      const char *left_qualified = this->symbol_name_at (left.idx);
+      const char *right_qualified = this->symbol_name_at (right.idx);
 
-      if (!symbol_matcher (name))
-	continue;
+      const char *left_name = left_qualified + left.name_offset;
+      const char *right_name = right_qualified + right.name_offset;
 
-      /* The name was matched, now expand corresponding CUs that were
-	 marked.  */
-      vec = (offset_type *) (index->constant_pool
-			     + MAYBE_SWAP (index->symbol_table[idx + 1]));
-      vec_len = MAYBE_SWAP (vec[0]);
-      for (vec_idx = 0; vec_idx < vec_len; ++vec_idx)
-	{
-	  struct dwarf2_per_cu_data *per_cu;
-	  offset_type cu_index_and_attrs = MAYBE_SWAP (vec[vec_idx + 1]);
-	  /* This value is only valid for index versions >= 7.  */
-	  int is_static = GDB_INDEX_SYMBOL_STATIC_VALUE (cu_index_and_attrs);
-	  gdb_index_symbol_kind symbol_kind =
-	    GDB_INDEX_SYMBOL_KIND_VALUE (cu_index_and_attrs);
-	  int cu_index = GDB_INDEX_CU_VALUE (cu_index_and_attrs);
-	  /* Only check the symbol attributes if they're present.
-	     Indices prior to version 7 don't record them,
-	     and indices >= 7 may elide them for certain symbols
-	     (gold does this).  */
-	  int attrs_valid =
-	    (index->version >= 7
-	     && symbol_kind != GDB_INDEX_SYMBOL_KIND_NONE);
+      return name_cmp (left_name, right_name) < 0;
+    };
 
-	  /* Work around gold/15646.  */
-	  if (attrs_valid)
-	    {
-	      if (!is_static && global_seen)
-		continue;
-	      if (!is_static)
-		global_seen = 1;
-	    }
+  std::sort (this->name_components.begin (),
+	     this->name_components.end (),
+	     name_comp_compare);
+}
+
+/* Helper for dw2_expand_symtabs_matching that works with a
+   mapped_index_base instead of the containing objfile.  This is split
+   to a separate function in order to be able to unit test the
+   name_components matching using a mock mapped_index_base.  For each
+   symbol name that matches, calls MATCH_CALLBACK, passing it the
+   symbol's index in the mapped_index_base symbol table.  */
+
+static void
+dw2_expand_symtabs_matching_symbol
+  (mapped_index_base &index,
+   const lookup_name_info &lookup_name_in,
+   gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
+   enum search_domain kind,
+   gdb::function_view<void (offset_type)> match_callback)
+{
+  lookup_name_info lookup_name_without_params
+    = lookup_name_in.make_ignore_params ();
+  gdb_index_symbol_name_matcher lookup_name_matcher
+    (lookup_name_without_params);
+
+  /* Build the symbol name component sorted vector, if we haven't
+     yet.  */
+  index.build_name_components ();
+
+  auto bounds = index.find_name_components_bounds (lookup_name_without_params);
+
+  /* Now for each symbol name in range, check to see if we have a name
+     match, and if so, call the MATCH_CALLBACK callback.  */
+
+  /* The same symbol may appear more than once in the range though.
+     E.g., if we're looking for symbols that complete "w", and we have
+     a symbol named "w1::w2", we'll find the two name components for
+     that same symbol in the range.  To be sure we only call the
+     callback once per symbol, we first collect the symbol name
+     indexes that matched in a temporary vector and ignore
+     duplicates.  */
+  std::vector<offset_type> matches;
+  matches.reserve (std::distance (bounds.first, bounds.second));
 
-	  /* Only check the symbol's kind if it has one.  */
-	  if (attrs_valid)
-	    {
-	      switch (kind)
-		{
-		case VARIABLES_DOMAIN:
-		  if (symbol_kind != GDB_INDEX_SYMBOL_KIND_VARIABLE)
-		    continue;
-		  break;
-		case FUNCTIONS_DOMAIN:
-		  if (symbol_kind != GDB_INDEX_SYMBOL_KIND_FUNCTION)
-		    continue;
-		  break;
-		case TYPES_DOMAIN:
-		  if (symbol_kind != GDB_INDEX_SYMBOL_KIND_TYPE)
-		    continue;
-		  break;
-		default:
-		  break;
-		}
-	    }
+  for (; bounds.first != bounds.second; ++bounds.first)
+    {
+      const char *qualified = index.symbol_name_at (bounds.first->idx);
 
-	  /* Don't crash on bad data.  */
-	  if (cu_index >= (dwarf2_per_objfile->n_comp_units
-			   + dwarf2_per_objfile->n_type_units))
-	    {
-	      complaint (&symfile_complaints,
-			 _(".gdb_index entry has bad CU index"
-			   " [in module %s]"), objfile_name (objfile));
-	      continue;
-	    }
+      if (!lookup_name_matcher.matches (qualified)
+	  || (symbol_matcher != NULL && !symbol_matcher (qualified)))
+	continue;
 
-	  per_cu = dw2_get_cutu (cu_index);
-	  if (file_matcher == NULL || per_cu->v.quick->mark)
-	    {
-	      int symtab_was_null =
-		(per_cu->v.quick->compunit_symtab == NULL);
+      matches.push_back (bounds.first->idx);
+    }
 
-	      dw2_instantiate_symtab (per_cu);
+  std::sort (matches.begin (), matches.end ());
 
-	      if (expansion_notify != NULL
-		  && symtab_was_null
-		  && per_cu->v.quick->compunit_symtab != NULL)
-		{
-		  expansion_notify (per_cu->v.quick->compunit_symtab);
-		}
-	    }
+  /* Finally call the callback, once per match.  */
+  ULONGEST prev = -1;
+  for (offset_type idx : matches)
+    {
+      if (prev != idx)
+	{
+	  match_callback (idx);
+	  prev = idx;
 	}
     }
+
+  /* Above we use a type wider than idx's for 'prev', since 0 and
+     (offset_type)-1 are both possible values.  */
+  static_assert (sizeof (prev) > sizeof (offset_type), "");
 }
 
-/* A helper for dw2_find_pc_sect_compunit_symtab which finds the most specific
-   symtab.  */
+#if GDB_SELF_TEST
 
-static struct compunit_symtab *
-recursively_find_pc_sect_compunit_symtab (struct compunit_symtab *cust,
-					  CORE_ADDR pc)
+namespace selftests { namespace dw2_expand_symtabs_matching {
+
+/* A mock .gdb_index/.debug_names-like name index table, enough to
+   exercise dw2_expand_symtabs_matching_symbol, which works with the
+   mapped_index_base interface.  Builds an index from the symbol list
+   passed as parameter to the constructor.  */
+class mock_mapped_index : public mapped_index_base
 {
-  int i;
+public:
+  mock_mapped_index (gdb::array_view<const char *> symbols)
+    : m_symbol_table (symbols)
+  {}
 
-  if (COMPUNIT_BLOCKVECTOR (cust) != NULL
-      && blockvector_contains_pc (COMPUNIT_BLOCKVECTOR (cust), pc))
-    return cust;
+  DISABLE_COPY_AND_ASSIGN (mock_mapped_index);
 
-  if (cust->includes == NULL)
-    return NULL;
+  /* Return the number of names in the symbol table.  */
+  virtual size_t symbol_name_count () const
+  {
+    return m_symbol_table.size ();
+  }
 
-  for (i = 0; cust->includes[i]; ++i)
-    {
-      struct compunit_symtab *s = cust->includes[i];
+  /* Get the name of the symbol at IDX in the symbol table.  */
+  virtual const char *symbol_name_at (offset_type idx) const
+  {
+    return m_symbol_table[idx];
+  }
 
-      s = recursively_find_pc_sect_compunit_symtab (s, pc);
-      if (s != NULL)
-	return s;
-    }
+private:
+  gdb::array_view<const char *> m_symbol_table;
+};
 
-  return NULL;
+/* Convenience function that converts a NULL pointer to a "<null>"
+   string, to pass to print routines.  */
+
+static const char *
+string_or_null (const char *str)
+{
+  return str != NULL ? str : "<null>";
 }
 
-static struct compunit_symtab *
-dw2_find_pc_sect_compunit_symtab (struct objfile *objfile,
-				  struct bound_minimal_symbol msymbol,
-				  CORE_ADDR pc,
-				  struct obj_section *section,
-				  int warn_if_readin)
+/* Check if a lookup_name_info built from
+   NAME/MATCH_TYPE/COMPLETION_MODE matches the symbols in the mock
+   index.  EXPECTED_LIST is the list of expected matches, in expected
+   matching order.  If no match expected, then an empty list is
+   specified.  Returns true on success.  On failure prints a warning
+   indicating the file:line that failed, and returns false.  */
+
+static bool
+check_match (const char *file, int line,
+	     mock_mapped_index &mock_index,
+	     const char *name, symbol_name_match_type match_type,
+	     bool completion_mode,
+	     std::initializer_list<const char *> expected_list)
 {
-  struct dwarf2_per_cu_data *data;
-  struct compunit_symtab *result;
+  lookup_name_info lookup_name (name, match_type, completion_mode);
 
-  dw2_setup (objfile);
+  bool matched = true;
 
-  if (!objfile->psymtabs_addrmap)
-    return NULL;
+  auto mismatch = [&] (const char *expected_str,
+		       const char *got)
+  {
+    warning (_("%s:%d: match_type=%s, looking-for=\"%s\", "
+	       "expected=\"%s\", got=\"%s\"\n"),
+	     file, line,
+	     (match_type == symbol_name_match_type::FULL
+	      ? "FULL" : "WILD"),
+	     name, string_or_null (expected_str), string_or_null (got));
+    matched = false;
+  };
 
-  data = (struct dwarf2_per_cu_data *) addrmap_find (objfile->psymtabs_addrmap,
-						     pc);
-  if (!data)
-    return NULL;
+  auto expected_it = expected_list.begin ();
+  auto expected_end = expected_list.end ();
 
-  if (warn_if_readin && data->v.quick->compunit_symtab)
-    warning (_("(Internal error: pc %s in read in CU, but not in symtab.)"),
-	     paddress (get_objfile_arch (objfile), pc));
+  dw2_expand_symtabs_matching_symbol (mock_index, lookup_name,
+				      NULL, ALL_DOMAIN,
+				      [&] (offset_type idx)
+  {
+    const char *matched_name = mock_index.symbol_name_at (idx);
+    const char *expected_str
+      = expected_it == expected_end ? NULL : *expected_it++;
+
+    if (expected_str == NULL || strcmp (expected_str, matched_name) != 0)
+      mismatch (expected_str, matched_name);
+  });
+
+  const char *expected_str
+  = expected_it == expected_end ? NULL : *expected_it++;
+  if (expected_str != NULL)
+    mismatch (expected_str, NULL);
+
+  return matched;
+}
+
+/* The symbols added to the mock mapped_index for testing (in
+   canonical form).  */
+static const char *test_symbols[] = {
+  "function",
+  "std::bar",
+  "std::zfunction",
+  "std::zfunction2",
+  "w1::w2",
+  "ns::foo<char*>",
+  "ns::foo<int>",
+  "ns::foo<long>",
+  "ns2::tmpl<int>::foo2",
+  "(anonymous namespace)::A::B::C",
+
+  /* These are used to check that the increment-last-char in the
+     matching algorithm for completion doesn't match "t1_fund" when
+     completing "t1_func".  */
+  "t1_func",
+  "t1_func1",
+  "t1_fund",
+  "t1_fund1",
+
+  /* A UTF-8 name with multi-byte sequences to make sure that
+     cp-name-parser understands this as a single identifier ("funÃ§Ã£o"
+     is "function" in PT).  */
+  u8"u8funÃ§Ã£o",
+
+  /* \377 (0xff) is Latin1 'Ã¿'.  */
+  "yfunc\377",
+
+  /* \377 (0xff) is Latin1 'Ã¿'.  */
+  "\377",
+  "\377\377123",
+
+  /* A name with all sorts of complications.  Starts with "z" to make
+     it easier for the completion tests below.  */
+#define Z_SYM_NAME \
+  "z::std::tuple<(anonymous namespace)::ui*, std::bar<(anonymous namespace)::ui> >" \
+    "::tuple<(anonymous namespace)::ui*, " \
+    "std::default_delete<(anonymous namespace)::ui>, void>"
 
-  result
-    = recursively_find_pc_sect_compunit_symtab (dw2_instantiate_symtab (data),
-						pc);
-  gdb_assert (result != NULL);
-  return result;
-}
+  Z_SYM_NAME
+};
 
-static void
-dw2_map_symbol_filenames (struct objfile *objfile, symbol_filename_ftype *fun,
-			  void *data, int need_fullname)
+/* Returns true if the mapped_index_base::find_name_component_bounds
+   method finds EXPECTED_SYMS in INDEX when looking for SEARCH_NAME,
+   in completion mode.  */
+
+static bool
+check_find_bounds_finds (mapped_index_base &index,
+			 const char *search_name,
+			 gdb::array_view<const char *> expected_syms)
 {
-  int i;
-  htab_up visited (htab_create_alloc (10, htab_hash_pointer, htab_eq_pointer,
-				      NULL, xcalloc, xfree));
+  lookup_name_info lookup_name (search_name,
+				symbol_name_match_type::FULL, true);
 
-  dw2_setup (objfile);
+  auto bounds = index.find_name_components_bounds (lookup_name);
 
-  /* The rule is CUs specify all the files, including those used by
-     any TU, so there's no need to scan TUs here.
-     We can ignore file names coming from already-expanded CUs.  */
+  size_t distance = std::distance (bounds.first, bounds.second);
+  if (distance != expected_syms.size ())
+    return false;
 
-  for (i = 0; i < dwarf2_per_objfile->n_comp_units; ++i)
+  for (size_t exp_elem = 0; exp_elem < distance; exp_elem++)
     {
-      struct dwarf2_per_cu_data *per_cu = dw2_get_cutu (i);
+      auto nc_elem = bounds.first + exp_elem;
+      const char *qualified = index.symbol_name_at (nc_elem->idx);
+      if (strcmp (qualified, expected_syms[exp_elem]) != 0)
+	return false;
+    }
 
-      if (per_cu->v.quick->compunit_symtab)
-	{
-	  void **slot = htab_find_slot (visited.get (),
-					per_cu->v.quick->file_names,
-					INSERT);
+  return true;
+}
 
-	  *slot = per_cu->v.quick->file_names;
-	}
-    }
+/* Test the lower-level mapped_index::find_name_component_bounds
+   method.  */
 
-  for (i = 0; i < dwarf2_per_objfile->n_comp_units; ++i)
-    {
-      int j;
-      struct dwarf2_per_cu_data *per_cu = dw2_get_cu (i);
-      struct quick_file_names *file_data;
-      void **slot;
+static void
+test_mapped_index_find_name_component_bounds ()
+{
+  mock_mapped_index mock_index (test_symbols);
 
-      /* We only need to look at symtabs not already expanded.  */
-      if (per_cu->v.quick->compunit_symtab)
-	continue;
+  mock_index.build_name_components ();
 
-      file_data = dw2_get_file_names (per_cu);
-      if (file_data == NULL)
-	continue;
+  /* Test the lower-level mapped_index::find_name_component_bounds
+     method in completion mode.  */
+  {
+    static const char *expected_syms[] = {
+      "t1_func",
+      "t1_func1",
+    };
 
-      slot = htab_find_slot (visited.get (), file_data, INSERT);
-      if (*slot)
-	{
-	  /* Already visited.  */
-	  continue;
-	}
-      *slot = file_data;
+    SELF_CHECK (check_find_bounds_finds (mock_index,
+					 "t1_func", expected_syms));
+  }
 
-      for (j = 0; j < file_data->num_file_names; ++j)
-	{
-	  const char *this_real_name;
+  /* Check that the increment-last-char in the name matching algorithm
+     for completion doesn't get confused with Ansi1 'Ã¿' / 0xff.  */
+  {
+    static const char *expected_syms1[] = {
+      "\377",
+      "\377\377123",
+    };
+    SELF_CHECK (check_find_bounds_finds (mock_index,
+					 "\377", expected_syms1));
 
-	  if (need_fullname)
-	    this_real_name = dw2_get_real_path (objfile, file_data, j);
-	  else
-	    this_real_name = NULL;
-	  (*fun) (file_data->file_names[j], this_real_name, data);
-	}
-    }
+    static const char *expected_syms2[] = {
+      "\377\377123",
+    };
+    SELF_CHECK (check_find_bounds_finds (mock_index,
+					 "\377\377", expected_syms2));
+  }
 }
 
-static int
-dw2_has_symbols (struct objfile *objfile)
-{
-  return 1;
-}
+/* Test dw2_expand_symtabs_matching_symbol.  */
 
-const struct quick_symbol_functions dwarf2_gdb_index_functions =
+static void
+test_dw2_expand_symtabs_matching_symbol ()
 {
-  dw2_has_symbols,
-  dw2_find_last_source_symtab,
-  dw2_forget_cached_source_info,
-  dw2_map_symtabs_matching_filename,
-  dw2_lookup_symbol,
-  dw2_print_stats,
-  dw2_dump,
-  dw2_relocate,
-  dw2_expand_symtabs_for_function,
-  dw2_expand_all_symtabs,
-  dw2_expand_symtabs_with_fullname,
-  dw2_map_matching_symbols,
+  mock_mapped_index mock_index (test_symbols);
+
+  /* We let all tests run until the end even if some fails, for debug
+     convenience.  */
+  bool any_mismatch = false;
+
+  /* Create the expected symbols list (an initializer_list).  Needed
+     because lists have commas, and we need to pass them to CHECK,
+     which is a macro.  */
+#define EXPECT(...) { __VA_ARGS__ }
+
+  /* Wrapper for check_match that passes down the current
+     __FILE__/__LINE__.  */
+#define CHECK_MATCH(NAME, MATCH_TYPE, COMPLETION_MODE, EXPECTED_LIST)	\
+  any_mismatch |= !check_match (__FILE__, __LINE__,			\
+				mock_index,				\
+				NAME, MATCH_TYPE, COMPLETION_MODE,	\
+				EXPECTED_LIST)
+
+  /* Identity checks.  */
+  for (const char *sym : test_symbols)
+    {
+      /* Should be able to match all existing symbols.  */
+      CHECK_MATCH (sym, symbol_name_match_type::FULL, false,
+		   EXPECT (sym));
+
+      /* Should be able to match all existing symbols with
+	 parameters.  */
+      std::string with_params = std::string (sym) + "(int)";
+      CHECK_MATCH (with_params.c_str (), symbol_name_match_type::FULL, false,
+		   EXPECT (sym));
+
+      /* Should be able to match all existing symbols with
+	 parameters and qualifiers.  */
+      with_params = std::string (sym) + " ( int ) const";
+      CHECK_MATCH (with_params.c_str (), symbol_name_match_type::FULL, false,
+		   EXPECT (sym));
+
+      /* This should really find sym, but cp-name-parser.y doesn't
+	 know about lvalue/rvalue qualifiers yet.  */
+      with_params = std::string (sym) + " ( int ) &&";
+      CHECK_MATCH (with_params.c_str (), symbol_name_match_type::FULL, false,
+		   {});
+    }
+
+  /* Check that the name matching algorithm for completion doesn't get
+     confused with Latin1 'Ã¿' / 0xff.  */
+  {
+    static const char str[] = "\377";
+    CHECK_MATCH (str, symbol_name_match_type::FULL, true,
+		 EXPECT ("\377", "\377\377123"));
+  }
+
+  /* Check that the increment-last-char in the matching algorithm for
+     completion doesn't match "t1_fund" when completing "t1_func".  */
+  {
+    static const char str[] = "t1_func";
+    CHECK_MATCH (str, symbol_name_match_type::FULL, true,
+		 EXPECT ("t1_func", "t1_func1"));
+  }
+
+  /* Check that completion mode works at each prefix of the expected
+     symbol name.  */
+  {
+    static const char str[] = "function(int)";
+    size_t len = strlen (str);
+    std::string lookup;
+
+    for (size_t i = 1; i < len; i++)
+      {
+	lookup.assign (str, i);
+	CHECK_MATCH (lookup.c_str (), symbol_name_match_type::FULL, true,
+		     EXPECT ("function"));
+      }
+  }
+
+  /* While "w" is a prefix of both components, the match function
+     should still only be called once.  */
+  {
+    CHECK_MATCH ("w", symbol_name_match_type::FULL, true,
+		 EXPECT ("w1::w2"));
+    CHECK_MATCH ("w", symbol_name_match_type::WILD, true,
+		 EXPECT ("w1::w2"));
+  }
+
+  /* Same, with a "complicated" symbol.  */
+  {
+    static const char str[] = Z_SYM_NAME;
+    size_t len = strlen (str);
+    std::string lookup;
+
+    for (size_t i = 1; i < len; i++)
+      {
+	lookup.assign (str, i);
+	CHECK_MATCH (lookup.c_str (), symbol_name_match_type::FULL, true,
+		     EXPECT (Z_SYM_NAME));
+      }
+  }
+
+  /* In FULL mode, an incomplete symbol doesn't match.  */
+  {
+    CHECK_MATCH ("std::zfunction(int", symbol_name_match_type::FULL, false,
+		 {});
+  }
+
+  /* A complete symbol with parameters matches any overload, since the
+     index has no overload info.  */
+  {
+    CHECK_MATCH ("std::zfunction(int)", symbol_name_match_type::FULL, true,
+		 EXPECT ("std::zfunction", "std::zfunction2"));
+    CHECK_MATCH ("zfunction(int)", symbol_name_match_type::WILD, true,
+		 EXPECT ("std::zfunction", "std::zfunction2"));
+    CHECK_MATCH ("zfunc", symbol_name_match_type::WILD, true,
+		 EXPECT ("std::zfunction", "std::zfunction2"));
+  }
+
+  /* Check that whitespace is ignored appropriately.  A symbol with a
+     template argument list. */
+  {
+    static const char expected[] = "ns::foo<int>";
+    CHECK_MATCH ("ns :: foo < int > ", symbol_name_match_type::FULL, false,
+		 EXPECT (expected));
+    CHECK_MATCH ("foo < int > ", symbol_name_match_type::WILD, false,
+		 EXPECT (expected));
+  }
+
+  /* Check that whitespace is ignored appropriately.  A symbol with a
+     template argument list that includes a pointer.  */
+  {
+    static const char expected[] = "ns::foo<char*>";
+    /* Try both completion and non-completion modes.  */
+    static const bool completion_mode[2] = {false, true};
+    for (size_t i = 0; i < 2; i++)
+      {
+	CHECK_MATCH ("ns :: foo < char * >", symbol_name_match_type::FULL,
+		     completion_mode[i], EXPECT (expected));
+	CHECK_MATCH ("foo < char * >", symbol_name_match_type::WILD,
+		     completion_mode[i], EXPECT (expected));
+
+	CHECK_MATCH ("ns :: foo < char * > (int)", symbol_name_match_type::FULL,
+		     completion_mode[i], EXPECT (expected));
+	CHECK_MATCH ("foo < char * > (int)", symbol_name_match_type::WILD,
+		     completion_mode[i], EXPECT (expected));
+      }
+  }
+
+  {
+    /* Check method qualifiers are ignored.  */
+    static const char expected[] = "ns::foo<char*>";
+    CHECK_MATCH ("ns :: foo < char * >  ( int ) const",
+		 symbol_name_match_type::FULL, true, EXPECT (expected));
+    CHECK_MATCH ("ns :: foo < char * >  ( int ) &&",
+		 symbol_name_match_type::FULL, true, EXPECT (expected));
+    CHECK_MATCH ("foo < char * >  ( int ) const",
+		 symbol_name_match_type::WILD, true, EXPECT (expected));
+    CHECK_MATCH ("foo < char * >  ( int ) &&",
+		 symbol_name_match_type::WILD, true, EXPECT (expected));
+  }
+
+  /* Test lookup names that don't match anything.  */
+  {
+    CHECK_MATCH ("bar2", symbol_name_match_type::WILD, false,
+		 {});
+
+    CHECK_MATCH ("doesntexist", symbol_name_match_type::FULL, false,
+		 {});
+  }
+
+  /* Some wild matching tests, exercising "(anonymous namespace)",
+     which should not be confused with a parameter list.  */
+  {
+    static const char *syms[] = {
+      "A::B::C",
+      "B::C",
+      "C",
+      "A :: B :: C ( int )",
+      "B :: C ( int )",
+      "C ( int )",
+    };
+
+    for (const char *s : syms)
+      {
+	CHECK_MATCH (s, symbol_name_match_type::WILD, false,
+		     EXPECT ("(anonymous namespace)::A::B::C"));
+      }
+  }
+
+  {
+    static const char expected[] = "ns2::tmpl<int>::foo2";
+    CHECK_MATCH ("tmp", symbol_name_match_type::WILD, true,
+		 EXPECT (expected));
+    CHECK_MATCH ("tmpl<", symbol_name_match_type::WILD, true,
+		 EXPECT (expected));
+  }
+
+  SELF_CHECK (!any_mismatch);
+
+#undef EXPECT
+#undef CHECK_MATCH
+}
+
+static void
+run_test ()
+{
+  test_mapped_index_find_name_component_bounds ();
+  test_dw2_expand_symtabs_matching_symbol ();
+}
+
+}} // namespace selftests::dw2_expand_symtabs_matching
+
+#endif /* GDB_SELF_TEST */
+
+/* If FILE_MATCHER is NULL or if PER_CU has
+   dwarf2_per_cu_quick_data::MARK set (see
+   dw_expand_symtabs_matching_file_matcher), expand the CU and call
+   EXPANSION_NOTIFY on it.  */
+
+static void
+dw2_expand_symtabs_matching_one
+  (struct dwarf2_per_cu_data *per_cu,
+   gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+   gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify)
+{
+  if (file_matcher == NULL || per_cu->v.quick->mark)
+    {
+      bool symtab_was_null
+	= (per_cu->v.quick->compunit_symtab == NULL);
+
+      dw2_instantiate_symtab (per_cu);
+
+      if (expansion_notify != NULL
+	  && symtab_was_null
+	  && per_cu->v.quick->compunit_symtab != NULL)
+	expansion_notify (per_cu->v.quick->compunit_symtab);
+    }
+}
+
+/* Helper for dw2_expand_matching symtabs.  Called on each symbol
+   matched, to expand corresponding CUs that were marked.  IDX is the
+   index of the symbol name that matched.  */
+
+static void
+dw2_expand_marked_cus
+  (mapped_index &index, offset_type idx,
+   struct objfile *objfile,
+   gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+   gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
+   search_domain kind)
+{
+  offset_type *vec, vec_len, vec_idx;
+  bool global_seen = false;
+
+  vec = (offset_type *) (index.constant_pool
+			 + MAYBE_SWAP (index.symbol_table[idx].vec));
+  vec_len = MAYBE_SWAP (vec[0]);
+  for (vec_idx = 0; vec_idx < vec_len; ++vec_idx)
+    {
+      struct dwarf2_per_cu_data *per_cu;
+      offset_type cu_index_and_attrs = MAYBE_SWAP (vec[vec_idx + 1]);
+      /* This value is only valid for index versions >= 7.  */
+      int is_static = GDB_INDEX_SYMBOL_STATIC_VALUE (cu_index_and_attrs);
+      gdb_index_symbol_kind symbol_kind =
+	GDB_INDEX_SYMBOL_KIND_VALUE (cu_index_and_attrs);
+      int cu_index = GDB_INDEX_CU_VALUE (cu_index_and_attrs);
+      /* Only check the symbol attributes if they're present.
+	 Indices prior to version 7 don't record them,
+	 and indices >= 7 may elide them for certain symbols
+	 (gold does this).  */
+      int attrs_valid =
+	(index.version >= 7
+	 && symbol_kind != GDB_INDEX_SYMBOL_KIND_NONE);
+
+      /* Work around gold/15646.  */
+      if (attrs_valid)
+	{
+	  if (!is_static && global_seen)
+	    continue;
+	  if (!is_static)
+	    global_seen = true;
+	}
+
+      /* Only check the symbol's kind if it has one.  */
+      if (attrs_valid)
+	{
+	  switch (kind)
+	    {
+	    case VARIABLES_DOMAIN:
+	      if (symbol_kind != GDB_INDEX_SYMBOL_KIND_VARIABLE)
+		continue;
+	      break;
+	    case FUNCTIONS_DOMAIN:
+	      if (symbol_kind != GDB_INDEX_SYMBOL_KIND_FUNCTION)
+		continue;
+	      break;
+	    case TYPES_DOMAIN:
+	      if (symbol_kind != GDB_INDEX_SYMBOL_KIND_TYPE)
+		continue;
+	      break;
+	    default:
+	      break;
+	    }
+	}
+
+      /* Don't crash on bad data.  */
+      if (cu_index >= (dwarf2_per_objfile->n_comp_units
+		       + dwarf2_per_objfile->n_type_units))
+	{
+	  complaint (&symfile_complaints,
+		     _(".gdb_index entry has bad CU index"
+		       " [in module %s]"), objfile_name (objfile));
+	  continue;
+	}
+
+      per_cu = dw2_get_cutu (cu_index);
+      dw2_expand_symtabs_matching_one (per_cu, file_matcher,
+				       expansion_notify);
+    }
+}
+
+/* If FILE_MATCHER is non-NULL, set all the
+   dwarf2_per_cu_quick_data::MARK of the current DWARF2_PER_OBJFILE
+   that match FILE_MATCHER.  */
+
+static void
+dw_expand_symtabs_matching_file_matcher
+  (gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher)
+{
+  if (file_matcher == NULL)
+    return;
+
+  objfile *const objfile = dwarf2_per_objfile->objfile;
+
+  htab_up visited_found (htab_create_alloc (10, htab_hash_pointer,
+					    htab_eq_pointer,
+					    NULL, xcalloc, xfree));
+  htab_up visited_not_found (htab_create_alloc (10, htab_hash_pointer,
+						htab_eq_pointer,
+						NULL, xcalloc, xfree));
+
+  /* The rule is CUs specify all the files, including those used by
+     any TU, so there's no need to scan TUs here.  */
+
+  for (int i = 0; i < dwarf2_per_objfile->n_comp_units; ++i)
+    {
+      int j;
+      struct dwarf2_per_cu_data *per_cu = dw2_get_cu (i);
+      struct quick_file_names *file_data;
+      void **slot;
+
+      QUIT;
+
+      per_cu->v.quick->mark = 0;
+
+      /* We only need to look at symtabs not already expanded.  */
+      if (per_cu->v.quick->compunit_symtab)
+	continue;
+
+      file_data = dw2_get_file_names (per_cu);
+      if (file_data == NULL)
+	continue;
+
+      if (htab_find (visited_not_found.get (), file_data) != NULL)
+	continue;
+      else if (htab_find (visited_found.get (), file_data) != NULL)
+	{
+	  per_cu->v.quick->mark = 1;
+	  continue;
+	}
+
+      for (j = 0; j < file_data->num_file_names; ++j)
+	{
+	  const char *this_real_name;
+
+	  if (file_matcher (file_data->file_names[j], false))
+	    {
+	      per_cu->v.quick->mark = 1;
+	      break;
+	    }
+
+	  /* Before we invoke realpath, which can get expensive when many
+	     files are involved, do a quick comparison of the basenames.  */
+	  if (!basenames_may_differ
+	      && !file_matcher (lbasename (file_data->file_names[j]),
+				true))
+	    continue;
+
+	  this_real_name = dw2_get_real_path (objfile, file_data, j);
+	  if (file_matcher (this_real_name, false))
+	    {
+	      per_cu->v.quick->mark = 1;
+	      break;
+	    }
+	}
+
+      slot = htab_find_slot (per_cu->v.quick->mark
+			     ? visited_found.get ()
+			     : visited_not_found.get (),
+			     file_data, INSERT);
+      *slot = file_data;
+    }
+}
+
+static void
+dw2_expand_symtabs_matching
+  (struct objfile *objfile,
+   gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+   const lookup_name_info &lookup_name,
+   gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
+   gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
+   enum search_domain kind)
+{
+  dw2_setup (objfile);
+
+  /* index_table is NULL if OBJF_READNOW.  */
+  if (!dwarf2_per_objfile->index_table)
+    return;
+
+  dw_expand_symtabs_matching_file_matcher (file_matcher);
+
+  mapped_index &index = *dwarf2_per_objfile->index_table;
+
+  dw2_expand_symtabs_matching_symbol (index, lookup_name,
+				      symbol_matcher,
+				      kind, [&] (offset_type idx)
+    {
+      dw2_expand_marked_cus (index, idx, objfile, file_matcher,
+			     expansion_notify, kind);
+    });
+}
+
+/* A helper for dw2_find_pc_sect_compunit_symtab which finds the most specific
+   symtab.  */
+
+static struct compunit_symtab *
+recursively_find_pc_sect_compunit_symtab (struct compunit_symtab *cust,
+					  CORE_ADDR pc)
+{
+  int i;
+
+  if (COMPUNIT_BLOCKVECTOR (cust) != NULL
+      && blockvector_contains_pc (COMPUNIT_BLOCKVECTOR (cust), pc))
+    return cust;
+
+  if (cust->includes == NULL)
+    return NULL;
+
+  for (i = 0; cust->includes[i]; ++i)
+    {
+      struct compunit_symtab *s = cust->includes[i];
+
+      s = recursively_find_pc_sect_compunit_symtab (s, pc);
+      if (s != NULL)
+	return s;
+    }
+
+  return NULL;
+}
+
+static struct compunit_symtab *
+dw2_find_pc_sect_compunit_symtab (struct objfile *objfile,
+				  struct bound_minimal_symbol msymbol,
+				  CORE_ADDR pc,
+				  struct obj_section *section,
+				  int warn_if_readin)
+{
+  struct dwarf2_per_cu_data *data;
+  struct compunit_symtab *result;
+
+  dw2_setup (objfile);
+
+  if (!objfile->psymtabs_addrmap)
+    return NULL;
+
+  data = (struct dwarf2_per_cu_data *) addrmap_find (objfile->psymtabs_addrmap,
+						     pc);
+  if (!data)
+    return NULL;
+
+  if (warn_if_readin && data->v.quick->compunit_symtab)
+    warning (_("(Internal error: pc %s in read in CU, but not in symtab.)"),
+	     paddress (get_objfile_arch (objfile), pc));
+
+  result
+    = recursively_find_pc_sect_compunit_symtab (dw2_instantiate_symtab (data),
+						pc);
+  gdb_assert (result != NULL);
+  return result;
+}
+
+static void
+dw2_map_symbol_filenames (struct objfile *objfile, symbol_filename_ftype *fun,
+			  void *data, int need_fullname)
+{
+  dw2_setup (objfile);
+
+  if (!dwarf2_per_objfile->filenames_cache)
+    {
+      dwarf2_per_objfile->filenames_cache.emplace ();
+
+      htab_up visited (htab_create_alloc (10,
+					  htab_hash_pointer, htab_eq_pointer,
+					  NULL, xcalloc, xfree));
+
+      /* The rule is CUs specify all the files, including those used
+	 by any TU, so there's no need to scan TUs here.  We can
+	 ignore file names coming from already-expanded CUs.  */
+
+      for (int i = 0; i < dwarf2_per_objfile->n_comp_units; ++i)
+	{
+	  struct dwarf2_per_cu_data *per_cu = dw2_get_cutu (i);
+
+	  if (per_cu->v.quick->compunit_symtab)
+	    {
+	      void **slot = htab_find_slot (visited.get (),
+					    per_cu->v.quick->file_names,
+					    INSERT);
+
+	      *slot = per_cu->v.quick->file_names;
+	    }
+	}
+
+      for (int i = 0; i < dwarf2_per_objfile->n_comp_units; ++i)
+	{
+	  struct dwarf2_per_cu_data *per_cu = dw2_get_cu (i);
+	  struct quick_file_names *file_data;
+	  void **slot;
+
+	  /* We only need to look at symtabs not already expanded.  */
+	  if (per_cu->v.quick->compunit_symtab)
+	    continue;
+
+	  file_data = dw2_get_file_names (per_cu);
+	  if (file_data == NULL)
+	    continue;
+
+	  slot = htab_find_slot (visited.get (), file_data, INSERT);
+	  if (*slot)
+	    {
+	      /* Already visited.  */
+	      continue;
+	    }
+	  *slot = file_data;
+
+	  for (int j = 0; j < file_data->num_file_names; ++j)
+	    {
+	      const char *filename = file_data->file_names[j];
+	      dwarf2_per_objfile->filenames_cache->seen (filename);
+	    }
+	}
+    }
+
+  dwarf2_per_objfile->filenames_cache->traverse ([&] (const char *filename)
+    {
+      gdb::unique_xmalloc_ptr<char> this_real_name;
+
+      if (need_fullname)
+	this_real_name = gdb_realpath (filename);
+      (*fun) (filename, this_real_name.get (), data);
+    });
+}
+
+static int
+dw2_has_symbols (struct objfile *objfile)
+{
+  return 1;
+}
+
+const struct quick_symbol_functions dwarf2_gdb_index_functions =
+{
+  dw2_has_symbols,
+  dw2_find_last_source_symtab,
+  dw2_forget_cached_source_info,
+  dw2_map_symtabs_matching_filename,
+  dw2_lookup_symbol,
+  dw2_print_stats,
+  dw2_dump,
+  dw2_relocate,
+  dw2_expand_symtabs_for_function,
+  dw2_expand_all_symtabs,
+  dw2_expand_symtabs_with_fullname,
+  dw2_map_matching_symbols,
   dw2_expand_symtabs_matching,
   dw2_find_pc_sect_compunit_symtab,
+  NULL,
+  dw2_map_symbol_filenames
+};
+
+/* DWARF-5 debug_names reader.  */
+
+/* DWARF-5 augmentation string for GDB's DW_IDX_GNU_* extension.  */
+static const gdb_byte dwarf5_augmentation[] = { 'G', 'D', 'B', 0 };
+
+/* A helper function that reads the .debug_names section in SECTION
+   and fills in MAP.  FILENAME is the name of the file containing the
+   section; it is used for error reporting.
+
+   Returns true if all went well, false otherwise.  */
+
+static bool
+read_debug_names_from_section (struct objfile *objfile,
+			       const char *filename,
+			       struct dwarf2_section_info *section,
+			       mapped_debug_names &map)
+{
+  if (dwarf2_section_empty_p (section))
+    return false;
+
+  /* Older elfutils strip versions could keep the section in the main
+     executable while splitting it for the separate debug info file.  */
+  if ((get_section_flags (section) & SEC_HAS_CONTENTS) == 0)
+    return false;
+
+  dwarf2_read_section (objfile, section);
+
+  map.dwarf5_byte_order = gdbarch_byte_order (get_objfile_arch (objfile));
+
+  const gdb_byte *addr = section->buffer;
+
+  bfd *const abfd = get_section_bfd_owner (section);
+
+  unsigned int bytes_read;
+  LONGEST length = read_initial_length (abfd, addr, &bytes_read);
+  addr += bytes_read;
+
+  map.dwarf5_is_dwarf64 = bytes_read != 4;
+  map.offset_size = map.dwarf5_is_dwarf64 ? 8 : 4;
+  if (bytes_read + length != section->size)
+    {
+      /* There may be multiple per-CU indices.  */
+      warning (_("Section .debug_names in %s length %s does not match "
+		 "section length %s, ignoring .debug_names."),
+	       filename, plongest (bytes_read + length),
+	       pulongest (section->size));
+      return false;
+    }
+
+  /* The version number.  */
+  uint16_t version = read_2_bytes (abfd, addr);
+  addr += 2;
+  if (version != 5)
+    {
+      warning (_("Section .debug_names in %s has unsupported version %d, "
+		 "ignoring .debug_names."),
+	       filename, version);
+      return false;
+    }
+
+  /* Padding.  */
+  uint16_t padding = read_2_bytes (abfd, addr);
+  addr += 2;
+  if (padding != 0)
+    {
+      warning (_("Section .debug_names in %s has unsupported padding %d, "
+		 "ignoring .debug_names."),
+	       filename, padding);
+      return false;
+    }
+
+  /* comp_unit_count - The number of CUs in the CU list.  */
+  map.cu_count = read_4_bytes (abfd, addr);
+  addr += 4;
+
+  /* local_type_unit_count - The number of TUs in the local TU
+     list.  */
+  map.tu_count = read_4_bytes (abfd, addr);
+  addr += 4;
+
+  /* foreign_type_unit_count - The number of TUs in the foreign TU
+     list.  */
+  uint32_t foreign_tu_count = read_4_bytes (abfd, addr);
+  addr += 4;
+  if (foreign_tu_count != 0)
+    {
+      warning (_("Section .debug_names in %s has unsupported %lu foreign TUs, "
+		 "ignoring .debug_names."),
+	       filename, static_cast<unsigned long> (foreign_tu_count));
+      return false;
+    }
+
+  /* bucket_count - The number of hash buckets in the hash lookup
+     table.  */
+  map.bucket_count = read_4_bytes (abfd, addr);
+  addr += 4;
+
+  /* name_count - The number of unique names in the index.  */
+  map.name_count = read_4_bytes (abfd, addr);
+  addr += 4;
+
+  /* abbrev_table_size - The size in bytes of the abbreviations
+     table.  */
+  uint32_t abbrev_table_size = read_4_bytes (abfd, addr);
+  addr += 4;
+
+  /* augmentation_string_size - The size in bytes of the augmentation
+     string.  This value is rounded up to a multiple of 4.  */
+  uint32_t augmentation_string_size = read_4_bytes (abfd, addr);
+  addr += 4;
+  map.augmentation_is_gdb = ((augmentation_string_size
+			      == sizeof (dwarf5_augmentation))
+			     && memcmp (addr, dwarf5_augmentation,
+					sizeof (dwarf5_augmentation)) == 0);
+  augmentation_string_size += (-augmentation_string_size) & 3;
+  addr += augmentation_string_size;
+
+  /* List of CUs */
+  map.cu_table_reordered = addr;
+  addr += map.cu_count * map.offset_size;
+
+  /* List of Local TUs */
+  map.tu_table_reordered = addr;
+  addr += map.tu_count * map.offset_size;
+
+  /* Hash Lookup Table */
+  map.bucket_table_reordered = reinterpret_cast<const uint32_t *> (addr);
+  addr += map.bucket_count * 4;
+  map.hash_table_reordered = reinterpret_cast<const uint32_t *> (addr);
+  addr += map.name_count * 4;
+
+  /* Name Table */
+  map.name_table_string_offs_reordered = addr;
+  addr += map.name_count * map.offset_size;
+  map.name_table_entry_offs_reordered = addr;
+  addr += map.name_count * map.offset_size;
+
+  const gdb_byte *abbrev_table_start = addr;
+  for (;;)
+    {
+      unsigned int bytes_read;
+      const ULONGEST index_num = read_unsigned_leb128 (abfd, addr, &bytes_read);
+      addr += bytes_read;
+      if (index_num == 0)
+	break;
+
+      const auto insertpair
+	= map.abbrev_map.emplace (index_num, mapped_debug_names::index_val ());
+      if (!insertpair.second)
+	{
+	  warning (_("Section .debug_names in %s has duplicate index %s, "
+		     "ignoring .debug_names."),
+		   filename, pulongest (index_num));
+	  return false;
+	}
+      mapped_debug_names::index_val &indexval = insertpair.first->second;
+      indexval.dwarf_tag = read_unsigned_leb128 (abfd, addr, &bytes_read);
+      addr += bytes_read;
+
+      for (;;)
+	{
+	  mapped_debug_names::index_val::attr attr;
+	  attr.dw_idx = read_unsigned_leb128 (abfd, addr, &bytes_read);
+	  addr += bytes_read;
+	  attr.form = read_unsigned_leb128 (abfd, addr, &bytes_read);
+	  addr += bytes_read;
+	  if (attr.form == DW_FORM_implicit_const)
+	    {
+	      attr.implicit_const = read_signed_leb128 (abfd, addr,
+							&bytes_read);
+	      addr += bytes_read;
+	    }
+	  if (attr.dw_idx == 0 && attr.form == 0)
+	    break;
+	  indexval.attr_vec.push_back (std::move (attr));
+	}
+    }
+  if (addr != abbrev_table_start + abbrev_table_size)
+    {
+      warning (_("Section .debug_names in %s has abbreviation_table "
+                 "of size %zu vs. written as %u, ignoring .debug_names."),
+	       filename, addr - abbrev_table_start, abbrev_table_size);
+      return false;
+    }
+  map.entry_pool = addr;
+
+  return true;
+}
+
+/* A helper for create_cus_from_debug_names that handles the MAP's CU
+   list.  */
+
+static void
+create_cus_from_debug_names_list (struct objfile *objfile,
+				  const mapped_debug_names &map,
+				  dwarf2_section_info &section,
+				  bool is_dwz, int base_offset)
+{
+  sect_offset sect_off_prev;
+  for (uint32_t i = 0; i <= map.cu_count; ++i)
+    {
+      sect_offset sect_off_next;
+      if (i < map.cu_count)
+	{
+	  sect_off_next
+	    = (sect_offset) (extract_unsigned_integer
+			     (map.cu_table_reordered + i * map.offset_size,
+			      map.offset_size,
+			      map.dwarf5_byte_order));
+	}
+      else
+	sect_off_next = (sect_offset) section.size;
+      if (i >= 1)
+	{
+	  const ULONGEST length = sect_off_next - sect_off_prev;
+	  dwarf2_per_objfile->all_comp_units[base_offset + (i - 1)]
+	    = create_cu_from_index_list (objfile, &section, is_dwz,
+					 sect_off_prev, length);
+	}
+      sect_off_prev = sect_off_next;
+    }
+}
+
+/* Read the CU list from the mapped index, and use it to create all
+   the CU objects for this objfile.  */
+
+static void
+create_cus_from_debug_names (struct objfile *objfile,
+			     const mapped_debug_names &map,
+			     const mapped_debug_names &dwz_map)
+{
+
+  dwarf2_per_objfile->n_comp_units = map.cu_count + dwz_map.cu_count;
+  dwarf2_per_objfile->all_comp_units
+    = XOBNEWVEC (&objfile->objfile_obstack, struct dwarf2_per_cu_data *,
+		 dwarf2_per_objfile->n_comp_units);
+
+  create_cus_from_debug_names_list (objfile, map, dwarf2_per_objfile->info,
+				    false /* is_dwz */,
+				    0 /* base_offset */);
+
+  if (dwz_map.cu_count == 0)
+    return;
+
+  dwz_file *dwz = dwarf2_get_dwz_file ();
+  create_cus_from_debug_names_list (objfile, dwz_map, dwz->info,
+				    true /* is_dwz */,
+				    map.cu_count /* base_offset */);
+}
+
+/* Read .debug_names.  If everything went ok, initialize the "quick"
+   elements of all the CUs and return true.  Otherwise, return false.  */
+
+static bool
+dwarf2_read_debug_names (struct objfile *objfile)
+{
+  mapped_debug_names local_map, dwz_map;
+
+  if (!read_debug_names_from_section (objfile, objfile_name (objfile),
+				      &dwarf2_per_objfile->debug_names,
+				      local_map))
+    return false;
+
+  /* Don't use the index if it's empty.  */
+  if (local_map.name_count == 0)
+    return false;
+
+  /* If there is a .dwz file, read it so we can get its CU list as
+     well.  */
+  dwz_file *dwz = dwarf2_get_dwz_file ();
+  if (dwz != NULL)
+    {
+      if (!read_debug_names_from_section (objfile,
+					  bfd_get_filename (dwz->dwz_bfd),
+					  &dwz->debug_names, dwz_map))
+	{
+	  warning (_("could not read '.debug_names' section from %s; skipping"),
+		   bfd_get_filename (dwz->dwz_bfd));
+	  return false;
+	}
+    }
+
+  create_cus_from_debug_names (objfile, local_map, dwz_map);
+
+  if (local_map.tu_count != 0)
+    {
+      /* We can only handle a single .debug_types when we have an
+	 index.  */
+      if (VEC_length (dwarf2_section_info_def, dwarf2_per_objfile->types) != 1)
+	return false;
+
+      dwarf2_section_info *section = VEC_index (dwarf2_section_info_def,
+						dwarf2_per_objfile->types, 0);
+
+      create_signatured_type_table_from_debug_names
+	(objfile, local_map, section, &dwarf2_per_objfile->abbrev);
+    }
+
+  create_addrmap_from_aranges (objfile, &dwarf2_per_objfile->debug_aranges);
+
+  dwarf2_per_objfile->debug_names_table.reset (new mapped_debug_names);
+  *dwarf2_per_objfile->debug_names_table = std::move (local_map);
+  dwarf2_per_objfile->using_index = 1;
+  dwarf2_per_objfile->quick_file_names_table =
+    create_quick_file_names_table (dwarf2_per_objfile->n_comp_units);
+
+  return true;
+}
+
+/* Symbol name hashing function as specified by DWARF-5.  */
+
+static uint32_t
+dwarf5_djb_hash (const char *str_)
+{
+  const unsigned char *str = (const unsigned char *) str_;
+
+  /* Note: tolower here ignores UTF-8, which isn't fully compliant.
+     See http://dwarfstd.org/ShowIssue.php?issue=161027.1.  */
+
+  uint32_t hash = 5381;
+  while (int c = *str++)
+    hash = hash * 33 + tolower (c);
+  return hash;
+}
+
+/* Type used to manage iterating over all CUs looking for a symbol for
+   .debug_names.  */
+
+class dw2_debug_names_iterator
+{
+public:
+  /* If WANT_SPECIFIC_BLOCK is true, only look for symbols in block
+     BLOCK_INDEX.  Otherwise BLOCK_INDEX is ignored.  */
+  dw2_debug_names_iterator (const mapped_debug_names &map,
+			    bool want_specific_block,
+			    block_enum block_index, domain_enum domain,
+			    const char *name)
+    : m_map (map), m_want_specific_block (want_specific_block),
+      m_block_index (block_index), m_domain (domain),
+      m_addr (find_vec_in_debug_names (map, name))
+  {}
+
+  dw2_debug_names_iterator (const mapped_debug_names &map,
+			    search_domain search, uint32_t namei)
+    : m_map (map),
+      m_search (search),
+      m_addr (find_vec_in_debug_names (map, namei))
+  {}
+
+  /* Return the next matching CU or NULL if there are no more.  */
+  dwarf2_per_cu_data *next ();
+
+private:
+  static const gdb_byte *find_vec_in_debug_names (const mapped_debug_names &map,
+						  const char *name);
+  static const gdb_byte *find_vec_in_debug_names (const mapped_debug_names &map,
+						  uint32_t namei);
+
+  /* The internalized form of .debug_names.  */
+  const mapped_debug_names &m_map;
+
+  /* If true, only look for symbols that match BLOCK_INDEX.  */
+  const bool m_want_specific_block = false;
+
+  /* One of GLOBAL_BLOCK or STATIC_BLOCK.
+     Unused if !WANT_SPECIFIC_BLOCK - FIRST_LOCAL_BLOCK is an invalid
+     value.  */
+  const block_enum m_block_index = FIRST_LOCAL_BLOCK;
+
+  /* The kind of symbol we're looking for.  */
+  const domain_enum m_domain = UNDEF_DOMAIN;
+  const search_domain m_search = ALL_DOMAIN;
+
+  /* The list of CUs from the index entry of the symbol, or NULL if
+     not found.  */
+  const gdb_byte *m_addr;
+};
+
+const char *
+mapped_debug_names::namei_to_name (uint32_t namei) const
+{
+  const ULONGEST namei_string_offs
+    = extract_unsigned_integer ((name_table_string_offs_reordered
+				 + namei * offset_size),
+				offset_size,
+				dwarf5_byte_order);
+  return read_indirect_string_at_offset
+    (dwarf2_per_objfile->objfile->obfd, namei_string_offs);
+}
+
+/* Find a slot in .debug_names for the object named NAME.  If NAME is
+   found, return pointer to its pool data.  If NAME cannot be found,
+   return NULL.  */
+
+const gdb_byte *
+dw2_debug_names_iterator::find_vec_in_debug_names
+  (const mapped_debug_names &map, const char *name)
+{
+  int (*cmp) (const char *, const char *);
+
+  if (current_language->la_language == language_cplus
+      || current_language->la_language == language_fortran
+      || current_language->la_language == language_d)
+    {
+      /* NAME is already canonical.  Drop any qualifiers as
+	 .debug_names does not contain any.  */
+
+      if (strchr (name, '(') != NULL)
+	{
+	  gdb::unique_xmalloc_ptr<char> without_params
+	    = cp_remove_params (name);
+
+	  if (without_params != NULL)
+	    {
+	      name = without_params.get();
+	    }
+	}
+    }
+
+  cmp = (case_sensitivity == case_sensitive_on ? strcmp : strcasecmp);
+
+  const uint32_t full_hash = dwarf5_djb_hash (name);
+  uint32_t namei
+    = extract_unsigned_integer (reinterpret_cast<const gdb_byte *>
+				(map.bucket_table_reordered
+				 + (full_hash % map.bucket_count)), 4,
+				map.dwarf5_byte_order);
+  if (namei == 0)
+    return NULL;
+  --namei;
+  if (namei >= map.name_count)
+    {
+      complaint (&symfile_complaints,
+		 _("Wrong .debug_names with name index %u but name_count=%u "
+		   "[in module %s]"),
+		 namei, map.name_count,
+		 objfile_name (dwarf2_per_objfile->objfile));
+      return NULL;
+    }
+
+  for (;;)
+    {
+      const uint32_t namei_full_hash
+	= extract_unsigned_integer (reinterpret_cast<const gdb_byte *>
+				    (map.hash_table_reordered + namei), 4,
+				    map.dwarf5_byte_order);
+      if (full_hash % map.bucket_count != namei_full_hash % map.bucket_count)
+	return NULL;
+
+      if (full_hash == namei_full_hash)
+	{
+	  const char *const namei_string = map.namei_to_name (namei);
+
+#if 0 /* An expensive sanity check.  */
+	  if (namei_full_hash != dwarf5_djb_hash (namei_string))
+	    {
+	      complaint (&symfile_complaints,
+			 _("Wrong .debug_names hash for string at index %u "
+			   "[in module %s]"),
+			 namei, objfile_name (dwarf2_per_objfile->objfile));
+	      return NULL;
+	    }
+#endif
+
+	  if (cmp (namei_string, name) == 0)
+	    {
+	      const ULONGEST namei_entry_offs
+		= extract_unsigned_integer ((map.name_table_entry_offs_reordered
+					     + namei * map.offset_size),
+					    map.offset_size, map.dwarf5_byte_order);
+	      return map.entry_pool + namei_entry_offs;
+	    }
+	}
+
+      ++namei;
+      if (namei >= map.name_count)
+	return NULL;
+    }
+}
+
+const gdb_byte *
+dw2_debug_names_iterator::find_vec_in_debug_names
+  (const mapped_debug_names &map, uint32_t namei)
+{
+  if (namei >= map.name_count)
+    {
+      complaint (&symfile_complaints,
+		 _("Wrong .debug_names with name index %u but name_count=%u "
+		   "[in module %s]"),
+		 namei, map.name_count,
+		 objfile_name (dwarf2_per_objfile->objfile));
+      return NULL;
+    }
+
+  const ULONGEST namei_entry_offs
+    = extract_unsigned_integer ((map.name_table_entry_offs_reordered
+				 + namei * map.offset_size),
+				map.offset_size, map.dwarf5_byte_order);
+  return map.entry_pool + namei_entry_offs;
+}
+
+/* See dw2_debug_names_iterator.  */
+
+dwarf2_per_cu_data *
+dw2_debug_names_iterator::next ()
+{
+  if (m_addr == NULL)
+    return NULL;
+
+  bfd *const abfd = dwarf2_per_objfile->objfile->obfd;
+
+ again:
+
+  unsigned int bytes_read;
+  const ULONGEST abbrev = read_unsigned_leb128 (abfd, m_addr, &bytes_read);
+  m_addr += bytes_read;
+  if (abbrev == 0)
+    return NULL;
+
+  const auto indexval_it = m_map.abbrev_map.find (abbrev);
+  if (indexval_it == m_map.abbrev_map.cend ())
+    {
+      complaint (&symfile_complaints,
+		 _("Wrong .debug_names undefined abbrev code %s "
+		   "[in module %s]"),
+		 pulongest (abbrev), objfile_name (dwarf2_per_objfile->objfile));
+      return NULL;
+    }
+  const mapped_debug_names::index_val &indexval = indexval_it->second;
+  bool have_is_static = false;
+  bool is_static;
+  dwarf2_per_cu_data *per_cu = NULL;
+  for (const mapped_debug_names::index_val::attr &attr : indexval.attr_vec)
+    {
+      ULONGEST ull;
+      switch (attr.form)
+	{
+	case DW_FORM_implicit_const:
+	  ull = attr.implicit_const;
+	  break;
+	case DW_FORM_flag_present:
+	  ull = 1;
+	  break;
+	case DW_FORM_udata:
+	  ull = read_unsigned_leb128 (abfd, m_addr, &bytes_read);
+	  m_addr += bytes_read;
+	  break;
+	default:
+	  complaint (&symfile_complaints,
+		     _("Unsupported .debug_names form %s [in module %s]"),
+		     dwarf_form_name (attr.form),
+		     objfile_name (dwarf2_per_objfile->objfile));
+	  return NULL;
+	}
+      switch (attr.dw_idx)
+	{
+	case DW_IDX_compile_unit:
+	  /* Don't crash on bad data.  */
+	  if (ull >= dwarf2_per_objfile->n_comp_units)
+	    {
+	      complaint (&symfile_complaints,
+			 _(".debug_names entry has bad CU index %s"
+			   " [in module %s]"),
+			 pulongest (ull),
+			 objfile_name (dwarf2_per_objfile->objfile));
+	      continue;
+	    }
+	  per_cu = dw2_get_cutu (ull);
+	  break;
+	case DW_IDX_type_unit:
+	  /* Don't crash on bad data.  */
+	  if (ull >= dwarf2_per_objfile->n_type_units)
+	    {
+	      complaint (&symfile_complaints,
+			 _(".debug_names entry has bad TU index %s"
+			   " [in module %s]"),
+			 pulongest (ull),
+			 objfile_name (dwarf2_per_objfile->objfile));
+	      continue;
+	    }
+	  per_cu = dw2_get_cutu (dwarf2_per_objfile->n_comp_units + ull);
+	  break;
+	case DW_IDX_GNU_internal:
+	  if (!m_map.augmentation_is_gdb)
+	    break;
+	  have_is_static = true;
+	  is_static = true;
+	  break;
+	case DW_IDX_GNU_external:
+	  if (!m_map.augmentation_is_gdb)
+	    break;
+	  have_is_static = true;
+	  is_static = false;
+	  break;
+	}
+    }
+
+  /* Skip if already read in.  */
+  if (per_cu->v.quick->compunit_symtab)
+    goto again;
+
+  /* Check static vs global.  */
+  if (have_is_static)
+    {
+      const bool want_static = m_block_index != GLOBAL_BLOCK;
+      if (m_want_specific_block && want_static != is_static)
+	goto again;
+    }
+
+  /* Match dw2_symtab_iter_next, symbol_kind
+     and debug_names::psymbol_tag.  */
+  switch (m_domain)
+    {
+    case VAR_DOMAIN:
+      switch (indexval.dwarf_tag)
+	{
+	case DW_TAG_variable:
+	case DW_TAG_subprogram:
+	/* Some types are also in VAR_DOMAIN.  */
+	case DW_TAG_typedef:
+	case DW_TAG_structure_type:
+	  break;
+	default:
+	  goto again;
+	}
+      break;
+    case STRUCT_DOMAIN:
+      switch (indexval.dwarf_tag)
+	{
+	case DW_TAG_typedef:
+	case DW_TAG_structure_type:
+	  break;
+	default:
+	  goto again;
+	}
+      break;
+    case LABEL_DOMAIN:
+      switch (indexval.dwarf_tag)
+	{
+	case 0:
+	case DW_TAG_variable:
+	  break;
+	default:
+	  goto again;
+	}
+      break;
+    default:
+      break;
+    }
+
+  /* Match dw2_expand_symtabs_matching, symbol_kind and
+     debug_names::psymbol_tag.  */
+  switch (m_search)
+    {
+    case VARIABLES_DOMAIN:
+      switch (indexval.dwarf_tag)
+	{
+	case DW_TAG_variable:
+	  break;
+	default:
+	  goto again;
+	}
+      break;
+    case FUNCTIONS_DOMAIN:
+      switch (indexval.dwarf_tag)
+	{
+	case DW_TAG_subprogram:
+	  break;
+	default:
+	  goto again;
+	}
+      break;
+    case TYPES_DOMAIN:
+      switch (indexval.dwarf_tag)
+	{
+	case DW_TAG_typedef:
+	case DW_TAG_structure_type:
+	  break;
+	default:
+	  goto again;
+	}
+      break;
+    default:
+      break;
+    }
+
+  return per_cu;
+}
+
+static struct compunit_symtab *
+dw2_debug_names_lookup_symbol (struct objfile *objfile, int block_index_int,
+			       const char *name, domain_enum domain)
+{
+  const block_enum block_index = static_cast<block_enum> (block_index_int);
+  dw2_setup (objfile);
+
+  const auto &mapp = dwarf2_per_objfile->debug_names_table;
+  if (!mapp)
+    {
+      /* index is NULL if OBJF_READNOW.  */
+      return NULL;
+    }
+  const auto &map = *mapp;
+
+  dw2_debug_names_iterator iter (map, true /* want_specific_block */,
+				 block_index, domain, name);
+
+  struct compunit_symtab *stab_best = NULL;
+  struct dwarf2_per_cu_data *per_cu;
+  while ((per_cu = iter.next ()) != NULL)
+    {
+      struct symbol *sym, *with_opaque = NULL;
+      struct compunit_symtab *stab = dw2_instantiate_symtab (per_cu);
+      const struct blockvector *bv = COMPUNIT_BLOCKVECTOR (stab);
+      struct block *block = BLOCKVECTOR_BLOCK (bv, block_index);
+
+      sym = block_find_symbol (block, name, domain,
+			       block_find_non_opaque_type_preferred,
+			       &with_opaque);
+
+      /* Some caution must be observed with overloaded functions and
+	 methods, since the index will not contain any overload
+	 information (but NAME might contain it).  */
+
+      if (sym != NULL
+	  && strcmp_iw (SYMBOL_SEARCH_NAME (sym), name) == 0)
+	return stab;
+      if (with_opaque != NULL
+	  && strcmp_iw (SYMBOL_SEARCH_NAME (with_opaque), name) == 0)
+	stab_best = stab;
+
+      /* Keep looking through other CUs.  */
+    }
+
+  return stab_best;
+}
+
+/* This dumps minimal information about .debug_names.  It is called
+   via "mt print objfiles".  The gdb.dwarf2/gdb-index.exp testcase
+   uses this to verify that .debug_names has been loaded.  */
+
+static void
+dw2_debug_names_dump (struct objfile *objfile)
+{
+  dw2_setup (objfile);
+  gdb_assert (dwarf2_per_objfile->using_index);
+  printf_filtered (".debug_names:");
+  if (dwarf2_per_objfile->debug_names_table)
+    printf_filtered (" exists\n");
+  else
+    printf_filtered (" faked for \"readnow\"\n");
+  printf_filtered ("\n");
+}
+
+static void
+dw2_debug_names_expand_symtabs_for_function (struct objfile *objfile,
+					     const char *func_name)
+{
+  dw2_setup (objfile);
+
+  /* dwarf2_per_objfile->debug_names_table is NULL if OBJF_READNOW.  */
+  if (dwarf2_per_objfile->debug_names_table)
+    {
+      const mapped_debug_names &map = *dwarf2_per_objfile->debug_names_table;
+
+      /* Note: It doesn't matter what we pass for block_index here.  */
+      dw2_debug_names_iterator iter (map, false /* want_specific_block */,
+				     GLOBAL_BLOCK, VAR_DOMAIN, func_name);
+
+      struct dwarf2_per_cu_data *per_cu;
+      while ((per_cu = iter.next ()) != NULL)
+	dw2_instantiate_symtab (per_cu);
+    }
+}
+
+static void
+dw2_debug_names_expand_symtabs_matching
+  (struct objfile *objfile,
+   gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+   const lookup_name_info &lookup_name,
+   gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
+   gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
+   enum search_domain kind)
+{
+  dw2_setup (objfile);
+
+  /* debug_names_table is NULL if OBJF_READNOW.  */
+  if (!dwarf2_per_objfile->debug_names_table)
+    return;
+
+  dw_expand_symtabs_matching_file_matcher (file_matcher);
+
+  mapped_debug_names &map = *dwarf2_per_objfile->debug_names_table;
+
+  dw2_expand_symtabs_matching_symbol (map, lookup_name,
+				      symbol_matcher,
+				      kind, [&] (offset_type namei)
+    {
+      /* The name was matched, now expand corresponding CUs that were
+	 marked.  */
+      dw2_debug_names_iterator iter (map, kind, namei);
+
+      struct dwarf2_per_cu_data *per_cu;
+      while ((per_cu = iter.next ()) != NULL)
+	dw2_expand_symtabs_matching_one (per_cu, file_matcher,
+					 expansion_notify);
+    });
+}
+
+const struct quick_symbol_functions dwarf2_debug_names_functions =
+{
+  dw2_has_symbols,
+  dw2_find_last_source_symtab,
+  dw2_forget_cached_source_info,
+  dw2_map_symtabs_matching_filename,
+  dw2_debug_names_lookup_symbol,
+  dw2_print_stats,
+  dw2_debug_names_dump,
+  dw2_relocate,
+  dw2_debug_names_expand_symtabs_for_function,
+  dw2_expand_all_symtabs,
+  dw2_expand_symtabs_with_fullname,
+  dw2_map_matching_symbols,
+  dw2_debug_names_expand_symtabs_matching,
+  dw2_find_pc_sect_compunit_symtab,
+  NULL,
   dw2_map_symbol_filenames
 };
 
-/* Initialize for reading DWARF for this objfile.  Return 0 if this
-   file will use psymtabs, or 1 if using the GNU index.  */
+/* See symfile.h.  */
 
-int
-dwarf2_initialize_objfile (struct objfile *objfile)
+bool
+dwarf2_initialize_objfile (struct objfile *objfile, dw_index_kind *index_kind)
 {
   /* If we're about to read full symbols, don't bother with the
      indices.  In this case we also don't care if some other debug
@@ -4381,13 +6494,23 @@ dwarf2_initialize_objfile (struct objfil
       /* Return 1 so that gdb sees the "quick" functions.  However,
 	 these functions will be no-ops because we will have expanded
 	 all symtabs.  */
-      return 1;
+      *index_kind = dw_index_kind::GDB_INDEX;
+      return true;
+    }
+
+  if (dwarf2_read_debug_names (objfile))
+    {
+      *index_kind = dw_index_kind::DEBUG_NAMES;
+      return true;
     }
 
   if (dwarf2_read_index (objfile))
-    return 1;
+    {
+      *index_kind = dw_index_kind::GDB_INDEX;
+      return true;
+    }
 
-  return 0;
+  return false;
 }
 
 
@@ -4398,10 +6521,9 @@ void
 dwarf2_build_psymtabs (struct objfile *objfile)
 {
 
-  if (objfile->global_psymbols.size == 0 && objfile->static_psymbols.size == 0)
-    {
-      init_psymbol_list (objfile, 1024);
-    }
+  if (objfile->global_psymbols.capacity () == 0
+      && objfile->static_psymbols.capacity () == 0)
+    init_psymbol_list (objfile, 1024);
 
   TRY
     {
@@ -4625,7 +6747,6 @@ read_and_check_comp_unit_head (struct co
 			       rcuh_kind section_kind)
 {
   const gdb_byte *beg_of_comp_unit = info_ptr;
-  bfd *abfd = get_section_bfd_owner (section);
 
   header->sect_off = (sect_offset) (beg_of_comp_unit - section->buffer);
 
@@ -5268,7 +7389,6 @@ read_cutu_die_from_dwo (struct dwarf2_pe
   struct dwarf2_section_info *section;
   bfd *abfd;
   const gdb_byte *begin_info_ptr, *info_ptr;
-  ULONGEST signature; /* Or dwo_id.  */
   struct attribute *comp_dir, *stmt_list, *low_pc, *high_pc, *ranges;
   int i,num_extra_attrs;
   struct dwarf2_section_info *dwo_abbrev_section;
@@ -5455,7 +7575,6 @@ lookup_dwo_unit (struct dwarf2_per_cu_da
 		 struct die_info *comp_unit_die)
 {
   struct dwarf2_cu *cu = this_cu->cu;
-  struct attribute *attr;
   ULONGEST signature;
   struct dwo_unit *dwo_unit;
   const char *comp_dir, *dwo_name;
@@ -6085,8 +8204,8 @@ create_partial_symtab (struct dwarf2_per
   struct partial_symtab *pst;
 
   pst = start_psymtab_common (objfile, name, 0,
-			      objfile->global_psymbols.next,
-			      objfile->static_psymbols.next);
+			      objfile->global_psymbols,
+			      objfile->static_psymbols);
 
   pst->psymtabs_addrmap_supported = 1;
 
@@ -6589,16 +8708,6 @@ process_skeletonless_type_units (struct 
     }
 }
 
-/* A cleanup function that clears objfile's psymtabs_addrmap field.  */
-
-static void
-psymtabs_addrmap_cleanup (void *o)
-{
-  struct objfile *objfile = (struct objfile *) o;
-
-  objfile->psymtabs_addrmap = NULL;
-}
-
 /* Compute the 'user' field for each psymtab in OBJFILE.  */
 
 static void
@@ -6630,8 +8739,7 @@ set_partial_user (struct objfile *objfil
 static void
 dwarf2_build_psymtabs_hard (struct objfile *objfile)
 {
-  struct cleanup *back_to, *addrmap_cleanup;
-  struct obstack temp_obstack;
+  struct cleanup *back_to;
   int i;
 
   if (dwarf_read_debug)
@@ -6654,10 +8762,11 @@ dwarf2_build_psymtabs_hard (struct objfi
 
   /* Create a temporary address map on a temporary obstack.  We later
      copy this to the final obstack.  */
-  obstack_init (&temp_obstack);
-  make_cleanup_obstack_free (&temp_obstack);
-  objfile->psymtabs_addrmap = addrmap_create_mutable (&temp_obstack);
-  addrmap_cleanup = make_cleanup (psymtabs_addrmap_cleanup, objfile);
+  auto_obstack temp_obstack;
+
+  scoped_restore save_psymtabs_addrmap
+    = make_scoped_restore (&objfile->psymtabs_addrmap,
+			   addrmap_create_mutable (&temp_obstack));
 
   for (i = 0; i < dwarf2_per_objfile->n_comp_units; ++i)
     {
@@ -6683,7 +8792,8 @@ dwarf2_build_psymtabs_hard (struct objfi
 
   objfile->psymtabs_addrmap = addrmap_create_fixed (objfile->psymtabs_addrmap,
 						    &objfile->objfile_obstack);
-  discard_cleanups (addrmap_cleanup);
+  /* At this point we want to keep the address map.  */
+  save_psymtabs_addrmap.release ();
 
   do_cleanups (back_to);
 
@@ -6732,7 +8842,6 @@ read_comp_units_from_section (struct obj
 			      struct dwarf2_per_cu_data ***all_comp_units)
 {
   const gdb_byte *info_ptr;
-  bfd *abfd = get_section_bfd_owner (section);
 
   if (dwarf_read_debug)
     fprintf_unfiltered (gdb_stdlog, "Reading %s for %s\n",
@@ -7117,7 +9226,7 @@ add_partial_symbol (struct partial_die_i
       break;
     case DW_TAG_constant:
       {
-        struct psymbol_allocation_list *list;
+	std::vector<partial_symbol *> *list;
 
 	if (pdi->is_external)
 	  list = &objfile->global_psymbols;
@@ -7972,6 +10081,23 @@ free_delayed_list (void *ptr)
     }
 }
 
+/* Check whether [PHYSNAME, PHYSNAME+LEN) ends with a modifier like
+   "const" / "volatile".  If so, decrements LEN by the length of the
+   modifier and return true.  Otherwise return false.  */
+
+template<size_t N>
+static bool
+check_modifier (const char *physname, size_t &len, const char (&mod)[N])
+{
+  size_t mod_len = sizeof (mod) - 1;
+  if (len > mod_len && startswith (physname + (len - mod_len), mod))
+    {
+      len -= mod_len;
+      return true;
+    }
+  return false;
+}
+
 /* Compute the physnames of any methods on the CU's method list.
 
    The computation of method physnames is delayed in order to avoid the
@@ -7983,6 +10109,12 @@ compute_delayed_physnames (struct dwarf2
 {
   int i;
   struct delayed_method_info *mi;
+
+  /* Only C++ delays computing physnames.  */
+  if (VEC_empty (delayed_method_info, cu->method_list))
+    return;
+  gdb_assert (cu->language == language_cplus);
+
   for (i = 0; VEC_iterate (delayed_method_info, cu->method_list, i, mi) ; ++i)
     {
       const char *physname;
@@ -7991,6 +10123,26 @@ compute_delayed_physnames (struct dwarf2
       physname = dwarf2_physname (mi->name, mi->die, cu);
       TYPE_FN_FIELD_PHYSNAME (fn_flp->fn_fields, mi->index)
 	= physname ? physname : "";
+
+      /* Since there's no tag to indicate whether a method is a
+	 const/volatile overload, extract that information out of the
+	 demangled name.  */
+      if (physname != NULL)
+	{
+	  size_t len = strlen (physname);
+
+	  while (1)
+	    {
+	      if (physname[len] == ')') /* shortcut */
+		break;
+	      else if (check_modifier (physname, len, " const"))
+		TYPE_FN_FIELD_CONST (fn_flp->fn_fields, mi->index) = 1;
+	      else if (check_modifier (physname, len, " volatile"))
+		TYPE_FN_FIELD_VOLATILE (fn_flp->fn_fields, mi->index) = 1;
+	      else
+		break;
+	    }
+	}
     }
 }
 
@@ -8226,7 +10378,7 @@ process_full_comp_unit (struct dwarf2_pe
   struct gdbarch *gdbarch = get_objfile_arch (objfile);
   CORE_ADDR lowpc, highpc;
   struct compunit_symtab *cust;
-  struct cleanup *back_to, *delayed_list_cleanup;
+  struct cleanup *delayed_list_cleanup;
   CORE_ADDR baseaddr;
   struct block *static_block;
   CORE_ADDR addr;
@@ -8234,7 +10386,7 @@ process_full_comp_unit (struct dwarf2_pe
   baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
 
   buildsym_init ();
-  back_to = make_cleanup (really_free_pendings, NULL);
+  scoped_free_pendings free_pending;
   delayed_list_cleanup = make_cleanup (free_delayed_list, cu);
 
   cu->list_in_scope = &file_symbols;
@@ -8316,8 +10468,6 @@ process_full_comp_unit (struct dwarf2_pe
 
   /* Push it for inclusion processing later.  */
   VEC_safe_push (dwarf2_per_cu_ptr, dwarf2_per_objfile->just_read_cus, per_cu);
-
-  do_cleanups (back_to);
 }
 
 /* Generate full symbol information for type unit PER_CU, whose DIEs have
@@ -8330,14 +10480,14 @@ process_full_type_unit (struct dwarf2_pe
   struct dwarf2_cu *cu = per_cu->cu;
   struct objfile *objfile = per_cu->objfile;
   struct compunit_symtab *cust;
-  struct cleanup *back_to, *delayed_list_cleanup;
+  struct cleanup *delayed_list_cleanup;
   struct signatured_type *sig_type;
 
   gdb_assert (per_cu->is_debug_types);
   sig_type = (struct signatured_type *) per_cu;
 
   buildsym_init ();
-  back_to = make_cleanup (really_free_pendings, NULL);
+  scoped_free_pendings free_pending;
   delayed_list_cleanup = make_cleanup (free_delayed_list, cu);
 
   cu->list_in_scope = &file_symbols;
@@ -8392,8 +10542,6 @@ process_full_type_unit (struct dwarf2_pe
       pst->compunit_symtab = cust;
       pst->readin = 1;
     }
-
-  do_cleanups (back_to);
 }
 
 /* Process an imported unit DIE.  */
@@ -8428,28 +10576,44 @@ process_imported_unit_die (struct die_in
     }
 }
 
-/* Reset the in_process bit of a die.  */
-
-static void
-reset_die_in_process (void *arg)
+/* RAII object that represents a process_die scope: i.e.,
+   starts/finishes processing a DIE.  */
+class process_die_scope
 {
-  struct die_info *die = (struct die_info *) arg;
+public:
+  process_die_scope (die_info *die, dwarf2_cu *cu)
+    : m_die (die), m_cu (cu)
+  {
+    /* We should only be processing DIEs not already in process.  */
+    gdb_assert (!m_die->in_process);
+    m_die->in_process = true;
+  }
 
-  die->in_process = 0;
-}
+  ~process_die_scope ()
+  {
+    m_die->in_process = false;
+
+    /* If we're done processing the DIE for the CU that owns the line
+       header, we don't need the line header anymore.  */
+    if (m_cu->line_header_die_owner == m_die)
+      {
+	delete m_cu->line_header;
+	m_cu->line_header = NULL;
+	m_cu->line_header_die_owner = NULL;
+      }
+  }
+
+private:
+  die_info *m_die;
+  dwarf2_cu *m_cu;
+};
 
 /* Process a die and its children.  */
 
 static void
 process_die (struct die_info *die, struct dwarf2_cu *cu)
 {
-  struct cleanup *in_process;
-
-  /* We should only be processing those not already in process.  */
-  gdb_assert (!die->in_process);
-
-  die->in_process = 1;
-  in_process = make_cleanup (reset_die_in_process,die);
+  process_die_scope scope (die, cu);
 
   switch (die->tag)
     {
@@ -8536,12 +10700,14 @@ process_die (struct die_info *die, struc
       process_imported_unit_die (die, cu);
       break;
 
+    case DW_TAG_variable:
+      read_variable (die, cu);
+      break;
+
     default:
       new_symbol (die, NULL, cu);
       break;
     }
-
-  do_cleanups (in_process);
 }
 
 /* DWARF name computation.  */
@@ -8605,6 +10771,38 @@ die_needs_namespace (struct die_info *di
     }
 }
 
+/* Return the DIE's linkage name attribute, either DW_AT_linkage_name
+   or DW_AT_MIPS_linkage_name.  Returns NULL if the attribute is not
+   defined for the given DIE.  */
+
+static struct attribute *
+dw2_linkage_name_attr (struct die_info *die, struct dwarf2_cu *cu)
+{
+  struct attribute *attr;
+
+  attr = dwarf2_attr (die, DW_AT_linkage_name, cu);
+  if (attr == NULL)
+    attr = dwarf2_attr (die, DW_AT_MIPS_linkage_name, cu);
+
+  return attr;
+}
+
+/* Return the DIE's linkage name as a string, either DW_AT_linkage_name
+   or DW_AT_MIPS_linkage_name.  Returns NULL if the attribute is not
+   defined for the given DIE.  */
+
+static const char *
+dw2_linkage_name (struct die_info *die, struct dwarf2_cu *cu)
+{
+  const char *linkage_name;
+
+  linkage_name = dwarf2_string_attr (die, DW_AT_linkage_name, cu);
+  if (linkage_name == NULL)
+    linkage_name = dwarf2_string_attr (die, DW_AT_MIPS_linkage_name, cu);
+
+  return linkage_name;
+}
+
 /* Compute the fully qualified name of DIE in CU.  If PHYSNAME is nonzero,
    compute the physname for the object, which include a method's:
    - formal parameters (C++),
@@ -8644,11 +10842,8 @@ dwarf2_compute_name (const char *name,
 	 to be able to reference.  Ideally, we want the user to be able
 	 to reference this entity using either natural or linkage name,
 	 but we haven't started looking at this enhancement yet.  */
-      const char *linkage_name;
+      const char *linkage_name = dw2_linkage_name (die, cu);
 
-      linkage_name = dwarf2_string_attr (die, DW_AT_linkage_name, cu);
-      if (linkage_name == NULL)
-	linkage_name = dwarf2_string_attr (die, DW_AT_MIPS_linkage_name, cu);
       if (linkage_name != NULL)
 	return linkage_name;
     }
@@ -8661,7 +10856,6 @@ dwarf2_compute_name (const char *name,
     {
       if (die_needs_namespace (die, cu))
 	{
-	  long length;
 	  const char *prefix;
 	  const char *canonical_name = NULL;
 
@@ -8879,7 +11073,6 @@ dwarf2_physname (const char *name, struc
 {
   struct objfile *objfile = cu->objfile;
   const char *retval, *mangled = NULL, *canon = NULL;
-  struct cleanup *back_to;
   int need_copy = 1;
 
   /* In this case dwarf2_compute_name is just a shortcut not building anything
@@ -8887,11 +11080,7 @@ dwarf2_physname (const char *name, struc
   if (!die_needs_namespace (die, cu))
     return dwarf2_compute_name (name, die, cu, 1);
 
-  back_to = make_cleanup (null_cleanup, NULL);
-
-  mangled = dwarf2_string_attr (die, DW_AT_linkage_name, cu);
-  if (mangled == NULL)
-    mangled = dwarf2_string_attr (die, DW_AT_MIPS_linkage_name, cu);
+  mangled = dw2_linkage_name (die, cu);
 
   /* rustc emits invalid values for DW_AT_linkage_name.  Ignore these.
      See https://github.com/rust-lang/rust/issues/32925.  */
@@ -8901,10 +11090,9 @@ dwarf2_physname (const char *name, struc
 
   /* DW_AT_linkage_name is missing in some cases - depend on what GDB
      has computed.  */
+  gdb::unique_xmalloc_ptr<char> demangled;
   if (mangled != NULL)
     {
-      char *demangled;
-
       /* Use DMGL_RET_DROP for C++ template functions to suppress their return
 	 type.  It is easier for GDB users to search for such functions as
 	 `name(params)' than `long name(params)'.  In such case the minimal
@@ -8919,18 +11107,15 @@ dwarf2_physname (const char *name, struc
 	  /* This is a lie, but we already lie to the caller new_symbol_full.
 	     new_symbol_full assumes we return the mangled name.
 	     This just undoes that lie until things are cleaned up.  */
-	  demangled = NULL;
 	}
       else
 	{
-	  demangled = gdb_demangle (mangled,
-				    (DMGL_PARAMS | DMGL_ANSI | DMGL_RET_DROP));
+	  demangled.reset (gdb_demangle (mangled,
+					 (DMGL_PARAMS | DMGL_ANSI
+					  | DMGL_RET_DROP)));
 	}
       if (demangled)
-	{
-	  make_cleanup (xfree, demangled);
-	  canon = demangled;
-	}
+	canon = demangled.get ();
       else
 	{
 	  canon = mangled;
@@ -8974,7 +11159,6 @@ dwarf2_physname (const char *name, struc
 	      obstack_copy0 (&objfile->per_bfd->storage_obstack,
 			     retval, strlen (retval)));
 
-  do_cleanups (back_to);
   return retval;
 }
 
@@ -9071,8 +11255,7 @@ read_import_statement (struct die_info *
   const char *import_alias;
   const char *imported_declaration = NULL;
   const char *import_prefix;
-  VEC (const_char_ptr) *excludes = NULL;
-  struct cleanup *cleanups;
+  std::vector<const char *> excludes;
 
   import_attr = dwarf2_attr (die, DW_AT_import, cu);
   if (import_attr == NULL)
@@ -9146,8 +11329,6 @@ read_import_statement (struct die_info *
   else
     canonical_name = imported_name;
 
-  cleanups = make_cleanup (VEC_cleanup (const_char_ptr), &excludes);
-
   if (die->tag == DW_TAG_imported_module && cu->language == language_fortran)
     for (child_die = die->child; child_die && child_die->tag;
 	 child_die = sibling_die (child_die))
@@ -9187,7 +11368,7 @@ read_import_statement (struct die_info *
 	    continue;
 	  }
 
-	VEC_safe_push (const_char_ptr, excludes, imported_name);
+	excludes.push_back (imported_name);
 
 	process_die (child_die, cu);
       }
@@ -9200,8 +11381,19 @@ read_import_statement (struct die_info *
 		       excludes,
 		       0,
 		       &objfile->objfile_obstack);
+}
 
-  do_cleanups (cleanups);
+/* ICC<14 does not output the required DW_AT_declaration on incomplete
+   types, but gives them a size of zero.  Starting with version 14,
+   ICC is compatible with GCC.  */
+
+static int
+producer_is_icc_lt_14 (struct dwarf2_cu *cu)
+{
+  if (!cu->checked_producer)
+    check_producer (cu);
+
+  return cu->producer_is_icc_lt_14;
 }
 
 /* Check for possibly missing DW_AT_comp_dir with relative .debug_line
@@ -9264,7 +11456,6 @@ handle_DW_AT_stmt_list (struct die_info 
   struct attribute *attr;
   struct line_header line_header_local;
   hashval_t line_header_local_hash;
-  unsigned u;
   void **slot;
   int decode_mapping;
 
@@ -9319,7 +11510,9 @@ handle_DW_AT_stmt_list (struct die_info 
   line_header_up lh = dwarf_decode_line_header (line_offset, cu);
   if (lh == NULL)
     return;
-  cu->line_header = lh.get ();
+
+  cu->line_header = lh.release ();
+  cu->line_header_die_owner = die;
 
   if (dwarf2_per_objfile->line_header_hash == NULL)
     slot = NULL;
@@ -9335,6 +11528,7 @@ handle_DW_AT_stmt_list (struct die_info 
       /* This newly decoded line number information unit will be owned
 	 by line_header_hash hash table.  */
       *slot = cu->line_header;
+      cu->line_header_die_owner = NULL;
     }
   else
     {
@@ -9349,7 +11543,6 @@ handle_DW_AT_stmt_list (struct die_info 
   dwarf_decode_lines (cu->line_header, comp_dir, cu, NULL, lowpc,
 		      decode_mapping);
 
-  lh.release ();
 }
 
 /* Process DW_TAG_compile_unit or DW_TAG_partial_unit.  */
@@ -9487,7 +11680,8 @@ setup_type_unit_groups (struct die_info 
       return;
     }
 
-  cu->line_header = lh.get ();
+  cu->line_header = lh.release ();
+  cu->line_header_die_owner = die;
 
   if (first_time)
     {
@@ -9498,21 +11692,23 @@ setup_type_unit_groups (struct die_info 
 	 process_full_type_unit still needs to know if this is the first
 	 time.  */
 
-      tu_group->num_symtabs = lh->file_names.size ();
-      tu_group->symtabs = XNEWVEC (struct symtab *, lh->file_names.size ());
+      tu_group->num_symtabs = cu->line_header->file_names.size ();
+      tu_group->symtabs = XNEWVEC (struct symtab *,
+				   cu->line_header->file_names.size ());
 
-      for (i = 0; i < lh->file_names.size (); ++i)
+      for (i = 0; i < cu->line_header->file_names.size (); ++i)
 	{
-	  file_entry &fe = lh->file_names[i];
+	  file_entry &fe = cu->line_header->file_names[i];
 
-	  dwarf2_start_subfile (fe.name, fe.include_dir (lh.get ()));
+	  dwarf2_start_subfile (fe.name, fe.include_dir (cu->line_header));
 
 	  if (current_subfile->symtab == NULL)
 	    {
-	      /* NOTE: start_subfile will recognize when it's been passed
-		 a file it has already seen.  So we can't assume there's a
-		 simple mapping from lh->file_names to subfiles, plus
-		 lh->file_names may contain dups.  */
+	      /* NOTE: start_subfile will recognize when it's been
+		 passed a file it has already seen.  So we can't
+		 assume there's a simple mapping from
+		 cu->line_header->file_names to subfiles, plus
+		 cu->line_header->file_names may contain dups.  */
 	      current_subfile->symtab
 		= allocate_symtab (cust, current_subfile->name);
 	    }
@@ -9525,16 +11721,14 @@ setup_type_unit_groups (struct die_info 
     {
       restart_symtab (tu_group->compunit_symtab, "", 0);
 
-      for (i = 0; i < lh->file_names.size (); ++i)
+      for (i = 0; i < cu->line_header->file_names.size (); ++i)
 	{
-	  struct file_entry *fe = &lh->file_names[i];
+	  file_entry &fe = cu->line_header->file_names[i];
 
-	  fe->symtab = tu_group->symtabs[i];
+	  fe.symtab = tu_group->symtabs[i];
 	}
     }
 
-  lh.release ();
-
   /* The main symtab is allocated last.  Type units don't have DW_AT_name
      so they don't have a "real" (so to speak) symtab anyway.
      There is later code that will assign the main symtab to all symbols
@@ -9725,72 +11919,75 @@ create_dwo_cu_reader (const struct die_r
 			hex_string (dwo_unit->signature));
 }
 
-/* Create the dwo_unit for the lone CU in DWO_FILE.
+/* Create the dwo_units for the CUs in a DWO_FILE.
    Note: This function processes DWO files only, not DWP files.  */
 
-static struct dwo_unit *
-create_dwo_cu (struct dwo_file *dwo_file)
+static void
+create_cus_hash_table (struct dwo_file &dwo_file, dwarf2_section_info &section,
+		       htab_t &cus_htab)
 {
   struct objfile *objfile = dwarf2_per_objfile->objfile;
-  struct dwarf2_section_info *section = &dwo_file->sections.info;
   const gdb_byte *info_ptr, *end_ptr;
-  struct create_dwo_cu_data create_dwo_cu_data;
-  struct dwo_unit *dwo_unit;
 
-  dwarf2_read_section (objfile, section);
-  info_ptr = section->buffer;
+  dwarf2_read_section (objfile, &section);
+  info_ptr = section.buffer;
 
   if (info_ptr == NULL)
-    return NULL;
+    return;
 
   if (dwarf_read_debug)
     {
       fprintf_unfiltered (gdb_stdlog, "Reading %s for %s:\n",
-			  get_section_name (section),
-			  get_section_file_name (section));
+			  get_section_name (&section),
+			  get_section_file_name (&section));
     }
 
-  create_dwo_cu_data.dwo_file = dwo_file;
-  dwo_unit = NULL;
-
-  end_ptr = info_ptr + section->size;
+  end_ptr = info_ptr + section.size;
   while (info_ptr < end_ptr)
     {
       struct dwarf2_per_cu_data per_cu;
+      struct create_dwo_cu_data create_dwo_cu_data;
+      struct dwo_unit *dwo_unit;
+      void **slot;
+      sect_offset sect_off = (sect_offset) (info_ptr - section.buffer);
 
       memset (&create_dwo_cu_data.dwo_unit, 0,
 	      sizeof (create_dwo_cu_data.dwo_unit));
       memset (&per_cu, 0, sizeof (per_cu));
       per_cu.objfile = objfile;
       per_cu.is_debug_types = 0;
-      per_cu.sect_off = sect_offset (info_ptr - section->buffer);
-      per_cu.section = section;
+      per_cu.sect_off = sect_offset (info_ptr - section.buffer);
+      per_cu.section = &section;
+      create_dwo_cu_data.dwo_file = &dwo_file;
 
-      init_cutu_and_read_dies_no_follow (&per_cu, dwo_file,
-					 create_dwo_cu_reader,
-					 &create_dwo_cu_data);
-
-      if (create_dwo_cu_data.dwo_unit.dwo_file != NULL)
-	{
-	  /* If we've already found one, complain.  We only support one
-	     because having more than one requires hacking the dwo_name of
-	     each to match, which is highly unlikely to happen.  */
-	  if (dwo_unit != NULL)
-	    {
-	      complaint (&symfile_complaints,
-			 _("Multiple CUs in DWO file %s [in module %s]"),
-			 dwo_file->dwo_name, objfile_name (objfile));
-	      break;
-	    }
+      init_cutu_and_read_dies_no_follow (
+	  &per_cu, &dwo_file, create_dwo_cu_reader, &create_dwo_cu_data);
+      info_ptr += per_cu.length;
 
-	  dwo_unit = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct dwo_unit);
-	  *dwo_unit = create_dwo_cu_data.dwo_unit;
-	}
+      // If the unit could not be parsed, skip it.
+      if (create_dwo_cu_data.dwo_unit.dwo_file == NULL)
+	continue;
 
-      info_ptr += per_cu.length;
+      if (cus_htab == NULL)
+	cus_htab = allocate_dwo_unit_table (objfile);
+
+      dwo_unit = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct dwo_unit);
+      *dwo_unit = create_dwo_cu_data.dwo_unit;
+      slot = htab_find_slot (cus_htab, dwo_unit, INSERT);
+      gdb_assert (slot != NULL);
+      if (*slot != NULL)
+	{
+	  const struct dwo_unit *dup_cu = (const struct dwo_unit *)*slot;
+	  sect_offset dup_sect_off = dup_cu->sect_off;
+
+	  complaint (&symfile_complaints,
+		     _("debug cu entry at offset 0x%x is duplicate to"
+		       " the entry at offset 0x%x, signature %s"),
+		     to_underlying (sect_off), to_underlying (dup_sect_off),
+		     hex_string (dwo_unit->signature));
+	}
+      *slot = (void *)dwo_unit;
     }
-
-  return dwo_unit;
 }
 
 /* DWP file .debug_{cu,tu}_index section format:
@@ -10182,8 +12379,6 @@ create_dwo_unit_in_dwp_v1 (struct dwp_fi
   struct dwo_unit *dwo_unit;
   struct virtual_v1_dwo_sections sections;
   void **dwo_file_slot;
-  char *virtual_dwo_name;
-  struct cleanup *cleanups;
   int i;
 
   gdb_assert (dwp_file->version == 1);
@@ -10210,7 +12405,6 @@ create_dwo_unit_in_dwp_v1 (struct dwp_fi
    + 1 /* trailing zero */)
 
   memset (&sections, 0, sizeof (sections));
-  cleanups = make_cleanup (null_cleanup, 0);
 
   for (i = 0; i < MAX_NR_V1_DWO_SECTIONS; ++i)
     {
@@ -10262,28 +12456,27 @@ create_dwo_unit_in_dwp_v1 (struct dwp_fi
      (fewer struct dwo_file objects to allocate).  Remember that for really
      large apps there can be on the order of 8K CUs and 200K TUs, or more.  */
 
-  virtual_dwo_name =
-    xstrprintf ("virtual-dwo/%d-%d-%d-%d",
-		get_section_id (&sections.abbrev),
-		get_section_id (&sections.line),
-		get_section_id (&sections.loc),
-		get_section_id (&sections.str_offsets));
-  make_cleanup (xfree, virtual_dwo_name);
+  std::string virtual_dwo_name =
+    string_printf ("virtual-dwo/%d-%d-%d-%d",
+		   get_section_id (&sections.abbrev),
+		   get_section_id (&sections.line),
+		   get_section_id (&sections.loc),
+		   get_section_id (&sections.str_offsets));
   /* Can we use an existing virtual DWO file?  */
-  dwo_file_slot = lookup_dwo_file_slot (virtual_dwo_name, comp_dir);
+  dwo_file_slot = lookup_dwo_file_slot (virtual_dwo_name.c_str (), comp_dir);
   /* Create one if necessary.  */
   if (*dwo_file_slot == NULL)
     {
       if (dwarf_read_debug)
 	{
 	  fprintf_unfiltered (gdb_stdlog, "Creating virtual DWO: %s\n",
-			      virtual_dwo_name);
+			      virtual_dwo_name.c_str ());
 	}
       dwo_file = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct dwo_file);
       dwo_file->dwo_name
 	= (const char *) obstack_copy0 (&objfile->objfile_obstack,
-					virtual_dwo_name,
-					strlen (virtual_dwo_name));
+					virtual_dwo_name.c_str (),
+					virtual_dwo_name.size ());
       dwo_file->comp_dir = comp_dir;
       dwo_file->sections.abbrev = sections.abbrev;
       dwo_file->sections.line = sections.line;
@@ -10307,11 +12500,10 @@ create_dwo_unit_in_dwp_v1 (struct dwp_fi
       if (dwarf_read_debug)
 	{
 	  fprintf_unfiltered (gdb_stdlog, "Using existing virtual DWO: %s\n",
-			      virtual_dwo_name);
+			      virtual_dwo_name.c_str ());
 	}
       dwo_file = (struct dwo_file *) *dwo_file_slot;
     }
-  do_cleanups (cleanups);
 
   dwo_unit = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct dwo_unit);
   dwo_unit->dwo_file = dwo_file;
@@ -10354,8 +12546,6 @@ create_dwp_v2_section (struct dwarf2_sec
   if (sectp == NULL
       || offset + size > bfd_get_section_size (sectp))
     {
-      bfd *abfd = sectp->owner;
-
       error (_("Dwarf Error: Bad DWP V2 section info, doesn't fit"
 	       " in section %s [in module %s]"),
 	     sectp ? bfd_section_name (abfd, sectp) : "<unknown>",
@@ -10387,8 +12577,6 @@ create_dwo_unit_in_dwp_v2 (struct dwp_fi
   struct dwo_unit *dwo_unit;
   struct virtual_v2_dwo_sections sections;
   void **dwo_file_slot;
-  char *virtual_dwo_name;
-  struct cleanup *cleanups;
   int i;
 
   gdb_assert (dwp_file->version == 2);
@@ -10404,7 +12592,6 @@ create_dwo_unit_in_dwp_v2 (struct dwp_fi
   /* Fetch the section offsets of this DWO unit.  */
 
   memset (&sections, 0, sizeof (sections));
-  cleanups = make_cleanup (null_cleanup, 0);
 
   for (i = 0; i < dwp_htab->nr_columns; ++i)
     {
@@ -10462,29 +12649,28 @@ create_dwo_unit_in_dwp_v2 (struct dwp_fi
      (fewer struct dwo_file objects to allocate).  Remember that for really
      large apps there can be on the order of 8K CUs and 200K TUs, or more.  */
 
-  virtual_dwo_name =
-    xstrprintf ("virtual-dwo/%ld-%ld-%ld-%ld",
-		(long) (sections.abbrev_size ? sections.abbrev_offset : 0),
-		(long) (sections.line_size ? sections.line_offset : 0),
-		(long) (sections.loc_size ? sections.loc_offset : 0),
-		(long) (sections.str_offsets_size
-			? sections.str_offsets_offset : 0));
-  make_cleanup (xfree, virtual_dwo_name);
+  std::string virtual_dwo_name =
+    string_printf ("virtual-dwo/%ld-%ld-%ld-%ld",
+		   (long) (sections.abbrev_size ? sections.abbrev_offset : 0),
+		   (long) (sections.line_size ? sections.line_offset : 0),
+		   (long) (sections.loc_size ? sections.loc_offset : 0),
+		   (long) (sections.str_offsets_size
+			   ? sections.str_offsets_offset : 0));
   /* Can we use an existing virtual DWO file?  */
-  dwo_file_slot = lookup_dwo_file_slot (virtual_dwo_name, comp_dir);
+  dwo_file_slot = lookup_dwo_file_slot (virtual_dwo_name.c_str (), comp_dir);
   /* Create one if necessary.  */
   if (*dwo_file_slot == NULL)
     {
       if (dwarf_read_debug)
 	{
 	  fprintf_unfiltered (gdb_stdlog, "Creating virtual DWO: %s\n",
-			      virtual_dwo_name);
+			      virtual_dwo_name.c_str ());
 	}
       dwo_file = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct dwo_file);
       dwo_file->dwo_name
 	= (const char *) obstack_copy0 (&objfile->objfile_obstack,
-					virtual_dwo_name,
-					strlen (virtual_dwo_name));
+					virtual_dwo_name.c_str (),
+					virtual_dwo_name.size ());
       dwo_file->comp_dir = comp_dir;
       dwo_file->sections.abbrev =
 	create_dwp_v2_section (&dwp_file->sections.abbrev,
@@ -10521,11 +12707,10 @@ create_dwo_unit_in_dwp_v2 (struct dwp_fi
       if (dwarf_read_debug)
 	{
 	  fprintf_unfiltered (gdb_stdlog, "Using existing virtual DWO: %s\n",
-			      virtual_dwo_name);
+			      virtual_dwo_name.c_str ());
 	}
       dwo_file = (struct dwo_file *) *dwo_file_slot;
     }
-  do_cleanups (cleanups);
 
   dwo_unit = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct dwo_unit);
   dwo_unit->dwo_file = dwo_file;
@@ -10795,7 +12980,7 @@ open_and_init_dwo_file (struct dwarf2_pe
   bfd_map_over_sections (dwo_file->dbfd, dwarf2_locate_dwo_sections,
 			 &dwo_file->sections);
 
-  dwo_file->cu = create_dwo_cu (dwo_file);
+  create_cus_hash_table (*dwo_file, dwo_file->sections.info, dwo_file->cus);
 
   create_debug_types_hash_table (dwo_file, dwo_file->sections.types,
 				 dwo_file->tus);
@@ -11035,7 +13220,8 @@ open_and_init_dwp_file (void)
   dwp_file->tus = create_dwp_hash_table (dwp_file, 1);
 
   /* The DWP file version is stored in the hash table.  Oh well.  */
-  if (dwp_file->cus->version != dwp_file->tus->version)
+  if (dwp_file->cus && dwp_file->tus
+      && dwp_file->cus->version != dwp_file->tus->version)
     {
       /* Technically speaking, we should try to limp along, but this is
 	 pretty bizarre.  We use pulongest here because that's the established
@@ -11045,7 +13231,13 @@ open_and_init_dwp_file (void)
 	     pulongest (dwp_file->cus->version),
 	     pulongest (dwp_file->tus->version), dwp_name.c_str ());
     }
-  dwp_file->version = dwp_file->cus->version;
+
+  if (dwp_file->cus)
+    dwp_file->version = dwp_file->cus->version;
+  else if (dwp_file->tus)
+    dwp_file->version = dwp_file->tus->version;
+  else
+    dwp_file->version = 2;
 
   if (dwp_file->version == 2)
     bfd_map_over_sections (dwp_file->dbfd, dwarf2_locate_v2_dwp_sections,
@@ -11162,10 +13354,14 @@ lookup_dwo_cutu (struct dwarf2_per_cu_da
 	      dwo_cutu
 		= (struct dwo_unit *) htab_find (dwo_file->tus, &find_dwo_cutu);
 	    }
-	  else if (!is_debug_types && dwo_file->cu)
+	  else if (!is_debug_types && dwo_file->cus)
 	    {
-	      if (signature == dwo_file->cu->signature)
-		dwo_cutu = dwo_file->cu;
+	      struct dwo_unit find_dwo_cutu;
+
+	      memset (&find_dwo_cutu, 0, sizeof (find_dwo_cutu));
+	      find_dwo_cutu.signature = signature;
+	      dwo_cutu = (struct dwo_unit *)htab_find (dwo_file->cus,
+						       &find_dwo_cutu);
 	    }
 
 	  if (dwo_cutu != NULL)
@@ -11196,21 +13392,18 @@ lookup_dwo_cutu (struct dwarf2_per_cu_da
   {
     /* Print the name of the DWP file if we looked there, helps the user
        better diagnose the problem.  */
-    char *dwp_text = NULL;
-    struct cleanup *cleanups;
+    std::string dwp_text;
 
     if (dwp_file != NULL)
-      dwp_text = xstrprintf (" [in DWP file %s]", lbasename (dwp_file->name));
-    cleanups = make_cleanup (xfree, dwp_text);
+      dwp_text = string_printf (" [in DWP file %s]",
+				lbasename (dwp_file->name));
 
     warning (_("Could not find DWO %s %s(%s)%s referenced by %s at offset 0x%x"
 	       " [in module %s]"),
 	     kind, dwo_name, hex_string (signature),
-	     dwp_text != NULL ? dwp_text : "",
+	     dwp_text.c_str (),
 	     this_unit->is_debug_types ? "TU" : "CU",
 	     to_underlying (this_unit->sect_off), objfile_name (objfile));
-
-    do_cleanups (cleanups);
   }
   return NULL;
 }
@@ -11333,17 +13526,6 @@ free_dwo_files (htab_t dwo_files, struct
 
 /* Read in various DIEs.  */
 
-/* qsort helper for inherit_abstract_dies.  */
-
-static int
-unsigned_int_compar (const void *ap, const void *bp)
-{
-  unsigned int a = *(unsigned int *) ap;
-  unsigned int b = *(unsigned int *) bp;
-
-  return (a > b) - (b > a);
-}
-
 /* DW_AT_abstract_origin inherits whole DIEs (not just their attributes).
    Inherit only the children of the DW_AT_abstract_origin DIE not being
    already referenced by DW_AT_abstract_origin from the children of the
@@ -11353,15 +13535,11 @@ static void
 inherit_abstract_dies (struct die_info *die, struct dwarf2_cu *cu)
 {
   struct die_info *child_die;
-  unsigned die_children_count;
-  /* CU offsets which were referenced by children of the current DIE.  */
-  sect_offset *offsets;
-  sect_offset *offsets_end, *offsetp;
+  sect_offset *offsetp;
   /* Parent of DIE - referenced by DW_AT_abstract_origin.  */
   struct die_info *origin_die;
   /* Iterator of the ORIGIN_DIE children.  */
   struct die_info *origin_child_die;
-  struct cleanup *cleanups;
   struct attribute *attr;
   struct dwarf2_cu *origin_cu;
   struct pending **origin_previous_list_in_scope;
@@ -11389,17 +13567,8 @@ inherit_abstract_dies (struct die_info *
 	       to_underlying (die->sect_off),
 	       to_underlying (origin_die->sect_off));
 
-  child_die = die->child;
-  die_children_count = 0;
-  while (child_die && child_die->tag)
-    {
-      child_die = sibling_die (child_die);
-      die_children_count++;
-    }
-  offsets = XNEWVEC (sect_offset, die_children_count);
-  cleanups = make_cleanup (xfree, offsets);
+  std::vector<sect_offset> offsets;
 
-  offsets_end = offsets;
   for (child_die = die->child;
        child_die && child_die->tag;
        child_die = sibling_die (child_die))
@@ -11452,19 +13621,19 @@ inherit_abstract_dies (struct die_info *
 		       to_underlying (child_die->sect_off),
 		       to_underlying (child_origin_die->sect_off));
 	  else
-	    *offsets_end++ = child_origin_die->sect_off;
+	    offsets.push_back (child_origin_die->sect_off);
 	}
     }
-  qsort (offsets, offsets_end - offsets, sizeof (*offsets),
-	 unsigned_int_compar);
-  for (offsetp = offsets + 1; offsetp < offsets_end; offsetp++)
+  std::sort (offsets.begin (), offsets.end ());
+  sect_offset *offsets_end = offsets.data () + offsets.size ();
+  for (offsetp = offsets.data () + 1; offsetp < offsets_end; offsetp++)
     if (offsetp[-1] == *offsetp)
       complaint (&symfile_complaints,
 		 _("Multiple children of DIE 0x%x refer "
 		   "to DIE 0x%x as their abstract origin"),
 		 to_underlying (die->sect_off), to_underlying (*offsetp));
 
-  offsetp = offsets;
+  offsetp = offsets.data ();
   origin_child_die = origin_die->child;
   while (origin_child_die && origin_child_die->tag)
     {
@@ -11485,8 +13654,6 @@ inherit_abstract_dies (struct die_info *
       origin_child_die = sibling_die (origin_child_die);
     }
   origin_cu->list_in_scope = origin_previous_list_in_scope;
-
-  do_cleanups (cleanups);
 }
 
 static void
@@ -11503,7 +13670,7 @@ read_func_scope (struct die_info *die, s
   CORE_ADDR baseaddr;
   struct block *block;
   int inlined_func = (die->tag == DW_TAG_inlined_subroutine);
-  VEC (symbolp) *template_args = NULL;
+  std::vector<struct symbol *> template_args;
   struct template_symbol *templ_func = NULL;
 
   if (inlined_func)
@@ -11558,7 +13725,7 @@ read_func_scope (struct die_info *die, s
 	  || child_die->tag == DW_TAG_template_value_param)
 	{
 	  templ_func = allocate_template_symbol (objfile);
-	  templ_func->base.is_cplus_template_function = 1;
+	  templ_func->subclass = SYMBOL_TEMPLATE;
 	  break;
 	}
     }
@@ -11596,7 +13763,7 @@ read_func_scope (struct die_info *die, s
 	      struct symbol *arg = new_symbol (child_die, NULL, cu);
 
 	      if (arg != NULL)
-		VEC_safe_push (symbolp, template_args, arg);
+		template_args.push_back (arg);
 	    }
 	  else
 	    process_die (child_die, cu);
@@ -11651,18 +13818,17 @@ read_func_scope (struct die_info *die, s
   gdbarch_make_symbol_special (gdbarch, newobj->name, objfile);
 
   /* Attach template arguments to function.  */
-  if (! VEC_empty (symbolp, template_args))
+  if (!template_args.empty ())
     {
       gdb_assert (templ_func != NULL);
 
-      templ_func->n_template_arguments = VEC_length (symbolp, template_args);
+      templ_func->n_template_arguments = template_args.size ();
       templ_func->template_arguments
         = XOBNEWVEC (&objfile->objfile_obstack, struct symbol *,
 		     templ_func->n_template_arguments);
       memcpy (templ_func->template_arguments,
-	      VEC_address (symbolp, template_args),
+	      template_args.data (),
 	      (templ_func->n_template_arguments * sizeof (struct symbol *)));
-      VEC_free (symbolp, template_args);
     }
 
   /* In C++, we can have functions nested inside functions (e.g., when
@@ -11915,13 +14081,7 @@ read_call_site_scope (struct die_info *d
 	  const char *target_physname;
 
 	  /* Prefer the mangled name; otherwise compute the demangled one.  */
-	  target_physname = dwarf2_string_attr (target_die,
-						DW_AT_linkage_name,
-						target_cu);
-	  if (target_physname == NULL)
-	    target_physname = dwarf2_string_attr (target_die,
-						 DW_AT_MIPS_linkage_name,
-						 target_cu);
+	  target_physname = dw2_linkage_name (target_die, target_cu);
 	  if (target_physname == NULL)
 	    target_physname = dwarf2_physname (NULL, target_die, target_cu);
 	  if (target_physname == NULL)
@@ -12079,6 +14239,57 @@ read_call_site_scope (struct die_info *d
     }
 }
 
+/* Helper function for read_variable.  If DIE represents a virtual
+   table, then return the type of the concrete object that is
+   associated with the virtual table.  Otherwise, return NULL.  */
+
+static struct type *
+rust_containing_type (struct die_info *die, struct dwarf2_cu *cu)
+{
+  struct attribute *attr = dwarf2_attr (die, DW_AT_type, cu);
+  if (attr == NULL)
+    return NULL;
+
+  /* Find the type DIE.  */
+  struct die_info *type_die = NULL;
+  struct dwarf2_cu *type_cu = cu;
+
+  if (attr_form_is_ref (attr))
+    type_die = follow_die_ref (die, attr, &type_cu);
+  if (type_die == NULL)
+    return NULL;
+
+  if (dwarf2_attr (type_die, DW_AT_containing_type, type_cu) == NULL)
+    return NULL;
+  return die_containing_type (type_die, type_cu);
+}
+
+/* Read a variable (DW_TAG_variable) DIE and create a new symbol.  */
+
+static void
+read_variable (struct die_info *die, struct dwarf2_cu *cu)
+{
+  struct rust_vtable_symbol *storage = NULL;
+
+  if (cu->language == language_rust)
+    {
+      struct type *containing_type = rust_containing_type (die, cu);
+
+      if (containing_type != NULL)
+	{
+	  struct objfile *objfile = cu->objfile;
+
+	  storage = OBSTACK_ZALLOC (&objfile->objfile_obstack,
+				    struct rust_vtable_symbol);
+	  initialize_objfile_symbol (storage);
+	  storage->concrete_type = containing_type;
+	  storage->subclass = SYMBOL_RUST_VTABLE;
+	}
+    }
+
+  new_symbol_full (die, NULL, cu, storage);
+}
+
 /* Call CALLBACK from DW_AT_ranges attribute value OFFSET
    reading .debug_rnglists.
    Callback's type should be:
@@ -12092,18 +14303,11 @@ dwarf2_rnglists_process (unsigned offset
 			 Callback &&callback)
 {
   struct objfile *objfile = cu->objfile;
-  struct gdbarch *gdbarch = get_objfile_arch (objfile);
-  struct comp_unit_head *cu_header = &cu->header;
   bfd *obfd = objfile->obfd;
-  unsigned int addr_size = cu_header->addr_size;
-  CORE_ADDR mask = ~(~(CORE_ADDR)1 << (addr_size * 8 - 1));
   /* Base address selection entry.  */
   CORE_ADDR base;
   int found_base;
-  unsigned int dummy;
   const gdb_byte *buffer;
-  CORE_ADDR low = 0;
-  CORE_ADDR high = 0;
   CORE_ADDR baseaddr;
   bool overflow = false;
 
@@ -12265,7 +14469,6 @@ dwarf2_ranges_process (unsigned offset, 
 		       Callback &&callback)
 {
   struct objfile *objfile = cu->objfile;
-  struct gdbarch *gdbarch = get_objfile_arch (objfile);
   struct comp_unit_head *cu_header = &cu->header;
   bfd *obfd = objfile->obfd;
   unsigned int addr_size = cu_header->addr_size;
@@ -12639,7 +14842,6 @@ dwarf2_record_block_ranges (struct die_i
   attr = dwarf2_attr (die, DW_AT_ranges, cu);
   if (attr)
     {
-      bfd *obfd = objfile->obfd;
       /* DW_AT_ranges_base does not apply to DIEs from the DWO skeleton.
 	 We take advantage of the fact that DW_AT_ranges does not appear
 	 in DW_TAG_compile_unit of DWO files.  */
@@ -12704,8 +14906,8 @@ check_producer (struct dwarf2_cu *cu)
       cu->producer_is_gxx_lt_4_6 = major < 4 || (major == 4 && minor < 6);
       cu->producer_is_gcc_lt_4_3 = major < 4 || (major == 4 && minor < 3);
     }
-  else if (startswith (cu->producer, "Intel(R) C"))
-    cu->producer_is_icc = 1;
+  else if (producer_is_icc (cu->producer, &major, &minor))
+    cu->producer_is_icc_lt_14 = major < 14;
   else
     {
       /* For other non-GCC compilers, expect their behavior is DWARF version
@@ -12983,33 +15185,81 @@ dwarf2_add_field (struct field_info *fip
     }
 }
 
-/* Add a typedef defined in the scope of the FIP's class.  */
+/* Can the type given by DIE define another type?  */
+
+static bool
+type_can_define_types (const struct die_info *die)
+{
+  switch (die->tag)
+    {
+    case DW_TAG_typedef:
+    case DW_TAG_class_type:
+    case DW_TAG_structure_type:
+    case DW_TAG_union_type:
+    case DW_TAG_enumeration_type:
+      return true;
+
+    default:
+      return false;
+    }
+}
+
+/* Add a type definition defined in the scope of the FIP's class.  */
 
 static void
-dwarf2_add_typedef (struct field_info *fip, struct die_info *die,
-		    struct dwarf2_cu *cu)
+dwarf2_add_type_defn (struct field_info *fip, struct die_info *die,
+		      struct dwarf2_cu *cu)
 {
-  struct typedef_field_list *new_field;
-  struct typedef_field *fp;
+  struct decl_field_list *new_field;
+  struct decl_field *fp;
 
   /* Allocate a new field list entry and link it in.  */
-  new_field = XCNEW (struct typedef_field_list);
+  new_field = XCNEW (struct decl_field_list);
   make_cleanup (xfree, new_field);
 
-  gdb_assert (die->tag == DW_TAG_typedef);
+  gdb_assert (type_can_define_types (die));
 
   fp = &new_field->field;
 
-  /* Get name of field.  */
+  /* Get name of field.  NULL is okay here, meaning an anonymous type.  */
   fp->name = dwarf2_name (die, cu);
-  if (fp->name == NULL)
-    return;
-
   fp->type = read_type_die (die, cu);
 
-  new_field->next = fip->typedef_field_list;
-  fip->typedef_field_list = new_field;
-  fip->typedef_field_list_count++;
+  /* Save accessibility.  */
+  enum dwarf_access_attribute accessibility;
+  struct attribute *attr = dwarf2_attr (die, DW_AT_accessibility, cu);
+  if (attr != NULL)
+    accessibility = (enum dwarf_access_attribute) DW_UNSND (attr);
+  else
+    accessibility = dwarf2_default_access_attribute (die, cu);
+  switch (accessibility)
+    {
+    case DW_ACCESS_public:
+      /* The assumed value if neither private nor protected.  */
+      break;
+    case DW_ACCESS_private:
+      fp->is_private = 1;
+      break;
+    case DW_ACCESS_protected:
+      fp->is_protected = 1;
+      break;
+    default:
+      complaint (&symfile_complaints,
+		 _("Unhandled DW_AT_accessibility value (%x)"), accessibility);
+    }
+
+  if (die->tag == DW_TAG_typedef)
+    {
+      new_field->next = fip->typedef_field_list;
+      fip->typedef_field_list = new_field;
+      fip->typedef_field_list_count++;
+    }
+  else
+    {
+      new_field->next = fip->nested_types_list;
+      fip->nested_types_list = new_field;
+      fip->nested_types_list_count++;
+    }
 }
 
 /* Create the vector of fields, and attach it to the type.  */
@@ -13392,7 +15642,6 @@ static int
 is_vtable_name (const char *name, struct dwarf2_cu *cu)
 {
   static const char vptr[] = "_vptr";
-  static const char vtable[] = "vtable";
 
   /* Look for the C++ form of the vtable.  */
   if (startswith (name, vptr) && is_cplus_marker (name[sizeof (vptr) - 1]))
@@ -13446,17 +15695,6 @@ quirk_gcc_member_function_pointer (struc
   smash_to_methodptr_type (type, new_type);
 }
 
-/* Return non-zero if the CU's PRODUCER string matches the Intel C/C++ compiler
-   (icc).  */
-
-static int
-producer_is_icc (struct dwarf2_cu *cu)
-{
-  if (!cu->checked_producer)
-    check_producer (cu);
-
-  return cu->producer_is_icc;
-}
 
 /* Called when we find the DIE that starts a structure or union scope
    (definition) to create a type for the structure or union.  Fill in
@@ -13562,10 +15800,10 @@ read_structure_type (struct die_info *di
       TYPE_LENGTH (type) = 0;
     }
 
-  if (producer_is_icc (cu) && (TYPE_LENGTH (type) == 0))
+  if (producer_is_icc_lt_14 (cu) && (TYPE_LENGTH (type) == 0))
     {
-      /* ICC does not output the required DW_AT_declaration
-	 on incomplete types, but gives them a size of zero.  */
+      /* ICC<14 does not output the required DW_AT_declaration on
+	 incomplete types, but gives them a size of zero.  */
       TYPE_STUB (type) = 1;
     }
   else
@@ -13607,7 +15845,7 @@ process_structure_scope (struct die_info
   if (die->child != NULL && ! die_is_declaration (die, cu))
     {
       struct field_info fi;
-      VEC (symbolp) *template_args = NULL;
+      std::vector<struct symbol *> template_args;
       struct cleanup *back_to = make_cleanup (null_cleanup, 0);
 
       memset (&fi, 0, sizeof (struct field_info));
@@ -13644,35 +15882,33 @@ process_structure_scope (struct die_info
 	      /* C++ base class field.  */
 	      dwarf2_add_field (&fi, child_die, cu);
 	    }
-	  else if (child_die->tag == DW_TAG_typedef)
-	    dwarf2_add_typedef (&fi, child_die, cu);
+	  else if (type_can_define_types (child_die))
+	    dwarf2_add_type_defn (&fi, child_die, cu);
 	  else if (child_die->tag == DW_TAG_template_type_param
 		   || child_die->tag == DW_TAG_template_value_param)
 	    {
 	      struct symbol *arg = new_symbol (child_die, NULL, cu);
 
 	      if (arg != NULL)
-		VEC_safe_push (symbolp, template_args, arg);
+		template_args.push_back (arg);
 	    }
 
 	  child_die = sibling_die (child_die);
 	}
 
       /* Attach template arguments to type.  */
-      if (! VEC_empty (symbolp, template_args))
+      if (!template_args.empty ())
 	{
 	  ALLOCATE_CPLUS_STRUCT_TYPE (type);
-	  TYPE_N_TEMPLATE_ARGUMENTS (type)
-	    = VEC_length (symbolp, template_args);
+	  TYPE_N_TEMPLATE_ARGUMENTS (type) = template_args.size ();
 	  TYPE_TEMPLATE_ARGUMENTS (type)
 	    = XOBNEWVEC (&objfile->objfile_obstack,
 			 struct symbol *,
 			 TYPE_N_TEMPLATE_ARGUMENTS (type));
 	  memcpy (TYPE_TEMPLATE_ARGUMENTS (type),
-		  VEC_address (symbolp, template_args),
+		  template_args.data (),
 		  (TYPE_N_TEMPLATE_ARGUMENTS (type)
 		   * sizeof (struct symbol *)));
-	  VEC_free (symbolp, template_args);
 	}
 
       /* Attach fields and member functions to the type.  */
@@ -13754,14 +15990,14 @@ process_structure_scope (struct die_info
 
 	  ALLOCATE_CPLUS_STRUCT_TYPE (type);
 	  TYPE_TYPEDEF_FIELD_ARRAY (type)
-	    = ((struct typedef_field *)
+	    = ((struct decl_field *)
 	       TYPE_ALLOC (type, sizeof (TYPE_TYPEDEF_FIELD (type, 0)) * i));
 	  TYPE_TYPEDEF_FIELD_COUNT (type) = i;
 
 	  /* Reverse the list order to keep the debug info elements order.  */
 	  while (--i >= 0)
 	    {
-	      struct typedef_field *dest, *src;
+	      struct decl_field *dest, *src;
 
 	      dest = &TYPE_TYPEDEF_FIELD (type, i);
 	      src = &fi.typedef_field_list->field;
@@ -13770,6 +16006,30 @@ process_structure_scope (struct die_info
 	    }
 	}
 
+      /* Copy fi.nested_types_list linked list elements content into the
+	 allocated array TYPE_NESTED_TYPES_ARRAY (type).  */
+      if (fi.nested_types_list != NULL && cu->language != language_ada)
+	{
+	  int i = fi.nested_types_list_count;
+
+	  ALLOCATE_CPLUS_STRUCT_TYPE (type);
+	  TYPE_NESTED_TYPES_ARRAY (type)
+	    = ((struct decl_field *)
+	       TYPE_ALLOC (type, sizeof (struct decl_field) * i));
+	  TYPE_NESTED_TYPES_COUNT (type) = i;
+
+	  /* Reverse the list order to keep the debug info elements order.  */
+	  while (--i >= 0)
+	    {
+	      struct decl_field *dest, *src;
+
+	      dest = &TYPE_NESTED_TYPES_FIELD (type, i);
+	      src = &fi.nested_types_list->field;
+	      fi.nested_types_list = fi.nested_types_list->next;
+	      *dest = *src;
+	    }
+	}
+
       do_cleanups (back_to);
     }
 
@@ -13816,15 +16076,12 @@ update_enumeration_type_from_children (s
 				       struct type *type,
 				       struct dwarf2_cu *cu)
 {
-  struct obstack obstack;
   struct die_info *child_die;
   int unsigned_enum = 1;
   int flag_enum = 1;
   ULONGEST mask = 0;
-  struct cleanup *old_chain;
 
-  obstack_init (&obstack);
-  old_chain = make_cleanup_obstack_free (&obstack);
+  auto_obstack obstack;
 
   for (child_die = die->child;
        child_die != NULL && child_die->tag;
@@ -13869,8 +16126,6 @@ update_enumeration_type_from_children (s
     TYPE_UNSIGNED (type) = 1;
   if (flag_enum)
     TYPE_FLAG_ENUM (type) = 1;
-
-  do_cleanups (old_chain);
 }
 
 /* Given a DW_AT_enumeration_type die, set its type.  We do not
@@ -14055,11 +16310,9 @@ read_array_type (struct die_info *die, s
   struct die_info *child_die;
   struct type *type;
   struct type *element_type, *range_type, *index_type;
-  struct type **range_types = NULL;
   struct attribute *attr;
-  int ndim = 0;
-  struct cleanup *back_to;
   const char *name;
+  struct dynamic_prop *byte_stride_prop = NULL;
   unsigned int bit_stride = 0;
 
   element_type = die_type (die, cu);
@@ -14071,7 +16324,25 @@ read_array_type (struct die_info *die, s
 
   attr = dwarf2_attr (die, DW_AT_byte_stride, cu);
   if (attr != NULL)
-    bit_stride = DW_UNSND (attr) * 8;
+    {
+      int stride_ok;
+
+      byte_stride_prop
+	= (struct dynamic_prop *) alloca (sizeof (struct dynamic_prop));
+      stride_ok = attr_to_dynamic_prop (attr, die, cu, byte_stride_prop);
+      if (!stride_ok)
+	{
+	  complaint (&symfile_complaints,
+		     _("unable to read array DW_AT_byte_stride "
+		       " - DIE at 0x%x [in module %s]"),
+		     to_underlying (die->sect_off),
+		     objfile_name (cu->objfile));
+	  /* Ignore this attribute.  We will likely not be able to print
+	     arrays of this type correctly, but there is little we can do
+	     to help if we cannot read the attribute's value.  */
+	  byte_stride_prop = NULL;
+	}
+    }
 
   attr = dwarf2_attr (die, DW_AT_bit_stride, cu);
   if (attr != NULL)
@@ -14084,11 +16355,11 @@ read_array_type (struct die_info *die, s
       index_type = objfile_type (objfile)->builtin_int;
       range_type = create_static_range_type (NULL, index_type, 0, -1);
       type = create_array_type_with_stride (NULL, element_type, range_type,
-					    bit_stride);
+					    byte_stride_prop, bit_stride);
       return set_die_type (die, type, cu);
     }
 
-  back_to = make_cleanup (null_cleanup, NULL);
+  std::vector<struct type *> range_types;
   child_die = die->child;
   while (child_die && child_die->tag)
     {
@@ -14100,15 +16371,7 @@ read_array_type (struct die_info *die, s
             {
 	      /* The range type was succesfully read.  Save it for the
                  array type creation.  */
-              if ((ndim % DW_FIELD_ALLOC_CHUNK) == 0)
-                {
-                  range_types = (struct type **)
-                    xrealloc (range_types, (ndim + DW_FIELD_ALLOC_CHUNK)
-                              * sizeof (struct type *));
-                  if (ndim == 0)
-                    make_cleanup (free_current_contents, &range_types);
-	        }
-	      range_types[ndim++] = child_type;
+	      range_types.push_back (child_type);
             }
 	}
       child_die = sibling_die (child_die);
@@ -14123,15 +16386,16 @@ read_array_type (struct die_info *die, s
     {
       int i = 0;
 
-      while (i < ndim)
+      while (i < range_types.size ())
 	type = create_array_type_with_stride (NULL, type, range_types[i++],
-					      bit_stride);
+					      byte_stride_prop, bit_stride);
     }
   else
     {
+      size_t ndim = range_types.size ();
       while (ndim-- > 0)
 	type = create_array_type_with_stride (NULL, type, range_types[ndim],
-					      bit_stride);
+					      byte_stride_prop, bit_stride);
     }
 
   /* Understand Dwarf2 support for vector types (like they occur on
@@ -14168,8 +16432,6 @@ read_array_type (struct die_info *die, s
   /* set_die_type should be already done.  */
   set_descriptive_type (type, die, cu);
 
-  do_cleanups (back_to);
-
   return type;
 }
 
@@ -14467,9 +16729,10 @@ read_namespace (struct die_info *die, st
 	{
 	  const char *previous_prefix = determine_prefix (die, cu);
 
+	  std::vector<const char *> excludes;
 	  add_using_directive (using_directives (cu->language),
 			       previous_prefix, TYPE_NAME (type), NULL,
-			       NULL, NULL, 0, &objfile->objfile_obstack);
+			       NULL, excludes, 0, &objfile->objfile_obstack);
 	}
     }
 
@@ -15065,7 +17328,7 @@ dwarf2_init_float_type (struct objfile *
   if (format)
     type = init_float_type (objfile, bits, name, format);
   else
-    type = init_type (objfile, TYPE_CODE_ERROR, bits / TARGET_CHAR_BIT, name);
+    type = init_type (objfile, TYPE_CODE_ERROR, bits, name);
 
   return type;
 }
@@ -15103,7 +17366,7 @@ read_base_type (struct die_info *die, st
     {
       case DW_ATE_address:
 	/* Turn DW_ATE_address into a void * pointer.  */
-	type = init_type (objfile, TYPE_CODE_VOID, 1, NULL);
+	type = init_type (objfile, TYPE_CODE_VOID, TARGET_CHAR_BIT, NULL);
 	type = init_pointer_type (objfile, bits, name, type);
 	break;
       case DW_ATE_boolean:
@@ -15169,8 +17432,7 @@ read_base_type (struct die_info *die, st
       default:
 	complaint (&symfile_complaints, _("unsupported DW_AT_encoding: '%s'"),
 		   dwarf_type_encoding_name (encoding));
-	type = init_type (objfile, TYPE_CODE_ERROR,
-			  bits / TARGET_CHAR_BIT, name);
+	type = init_type (objfile, TYPE_CODE_ERROR, bits, name);
 	break;
     }
 
@@ -15450,11 +17712,16 @@ read_unspecified_type (struct die_info *
 {
   struct type *type;
 
-  /* For now, we only support the C meaning of an unspecified type: void.  */
-
   type = init_type (cu->objfile, TYPE_CODE_VOID, 0, NULL);
   TYPE_NAME (type) = dwarf2_name (die, cu);
 
+  /* In Ada, an unspecified type is typically used when the description
+     of the type is defered to a different unit.  When encountering
+     such a type, we treat it as a stub, and try to resolve it later on,
+     when needed.  */
+  if (cu->language == language_ada)
+    TYPE_STUB (type) = 1;
+
   return set_die_type (die, type, cu);
 }
 
@@ -17714,7 +19981,6 @@ read_formatted_entries (bfd *abfd, const
   ULONGEST data_count, datai;
   const gdb_byte *buf = *bufp;
   const gdb_byte *format_header_data;
-  int i;
   unsigned int bytes_read;
 
   format_count = read_1_byte (abfd, buf);
@@ -18830,7 +21096,7 @@ dwarf2_start_symtab (struct dwarf2_cu *c
 		     const char *name, const char *comp_dir, CORE_ADDR low_pc)
 {
   struct compunit_symtab *cust
-    = start_symtab (cu->objfile, name, comp_dir, low_pc);
+    = start_symtab (cu->objfile, name, comp_dir, low_pc, cu->language);
 
   record_debugformat ("DWARF 2");
   record_producer (cu->producer);
@@ -19049,8 +21315,7 @@ new_symbol_full (struct die_info *die, s
 	     variables with missing type entries.  Change the
 	     misleading `void' type to something sensible.  */
 	  if (TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_VOID)
-	    SYMBOL_TYPE (sym)
-	      = objfile_type (objfile)->nodebug_data_symbol;
+	    SYMBOL_TYPE (sym) = objfile_type (objfile)->builtin_int;
 
 	  attr = dwarf2_attr (die, DW_AT_const_value, cu);
 	  /* In the case of DW_TAG_member, we should only be called for
@@ -19792,12 +22057,8 @@ guess_full_die_structure_name (struct di
     {
       if (child->tag == DW_TAG_subprogram)
 	{
-	  const char *linkage_name;
+	  const char *linkage_name = dw2_linkage_name (child, cu);
 
-	  linkage_name = dwarf2_string_attr (child, DW_AT_linkage_name, cu);
-	  if (linkage_name == NULL)
-	    linkage_name = dwarf2_string_attr (child, DW_AT_MIPS_linkage_name,
-	                                       cu);
 	  if (linkage_name != NULL)
 	    {
 	      char *actual_name
@@ -19852,9 +22113,7 @@ anonymous_struct_prefix (struct die_info
   if (dwarf2_string_attr (die, DW_AT_name, cu) != NULL)
     return NULL;
 
-  attr = dwarf2_attr (die, DW_AT_linkage_name, cu);
-  if (attr == NULL)
-    attr = dwarf2_attr (die, DW_AT_MIPS_linkage_name, cu);
+  attr = dw2_linkage_name_attr (die, cu);
   if (attr == NULL || DW_STRING (attr) == NULL)
     return NULL;
 
@@ -20180,10 +22439,7 @@ dwarf2_name (struct die_info *die, struc
 	{
 	  char *demangled = NULL;
 
-	  attr = dwarf2_attr (die, DW_AT_linkage_name, cu);
-	  if (attr == NULL)
-	    attr = dwarf2_attr (die, DW_AT_MIPS_linkage_name, cu);
-
+	  attr = dw2_linkage_name_attr (die, cu);
 	  if (attr == NULL || DW_STRING (attr) == NULL)
 	    return NULL;
 
@@ -21549,20 +23805,6 @@ macro_start_file (int file, int line,
   return current_file;
 }
 
-
-/* Copy the LEN characters at BUF to a xmalloc'ed block of memory,
-   followed by a null byte.  */
-static char *
-copy_string (const char *buf, int len)
-{
-  char *s = (char *) xmalloc (len + 1);
-
-  memcpy (s, buf, len);
-  s[len] = '\0';
-  return s;
-}
-
-
 static const char *
 consume_improper_spaces (const char *p, const char *body)
 {
@@ -21622,7 +23864,7 @@ parse_macro_definition (struct macro_sou
     {
       /* It's an object-like macro.  */
       int name_len = p - body;
-      char *name = copy_string (body, name_len);
+      char *name = savestring (body, name_len);
       const char *replacement;
 
       if (*p == ' ')
@@ -21640,7 +23882,7 @@ parse_macro_definition (struct macro_sou
   else if (*p == '(')
     {
       /* It's a function-like macro.  */
-      char *name = copy_string (body, p - body);
+      char *name = savestring (body, p - body);
       int argc = 0;
       int argv_size = 1;
       char **argv = XNEWVEC (char *, argv_size);
@@ -21669,7 +23911,7 @@ parse_macro_definition (struct macro_sou
                   argv = XRESIZEVEC (char *, argv, argv_size);
                 }
 
-              argv[argc++] = copy_string (arg_start, p - arg_start);
+              argv[argc++] = savestring (arg_start, p - arg_start);
             }
 
           p = consume_improper_spaces (p, body);
@@ -21798,7 +24040,6 @@ skip_form_bytes (bfd *abfd, const gdb_by
 
     default:
       {
-      complain:
 	complaint (&symfile_complaints,
 		   _("invalid form 0x%x in `%s'"),
 		   form, get_section_name (section));
@@ -21962,6 +24203,8 @@ dwarf_decode_macro_bytes (bfd *abfd,
 
       /* Note that we rely on the fact that the corresponding GNU and
 	 DWARF constants are the same.  */
+      DIAGNOSTIC_PUSH
+      DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES
       switch (macinfo_type)
 	{
 	  /* A zero macinfo type indicates the end of the macro
@@ -22186,6 +24429,7 @@ dwarf_decode_macro_bytes (bfd *abfd,
 	    return;
 	  break;
         }
+      DIAGNOSTIC_POP
     } while (macinfo_type != 0);
 }
 
@@ -22201,7 +24445,6 @@ dwarf_decode_macros (struct dwarf2_cu *c
   enum dwarf_macro_record_type macinfo_type;
   unsigned int offset_size = cu->header.offset_size;
   const gdb_byte *opcode_definitions[256];
-  struct cleanup *cleanup;
   void **slot;
   struct dwarf2_section_info *section;
   const char *section_name;
@@ -22279,6 +24522,8 @@ dwarf_decode_macros (struct dwarf2_cu *c
 
       /* Note that we rely on the fact that the corresponding GNU and
 	 DWARF constants are the same.  */
+      DIAGNOSTIC_PUSH
+      DIAGNOSTIC_IGNORE_SWITCH_DIFFERENT_ENUM_TYPES
       switch (macinfo_type)
         {
           /* A zero macinfo type indicates the end of the macro
@@ -22359,6 +24604,7 @@ dwarf_decode_macros (struct dwarf2_cu *c
 	    return;
 	  break;
 	}
+      DIAGNOSTIC_POP
     } while (macinfo_type != 0 && current_file == NULL);
 
   /* Second pass: Process all entries.
@@ -22793,21 +25039,7 @@ free_stack_comp_unit (void *data)
 static void
 free_cached_comp_units (void *data)
 {
-  struct dwarf2_per_cu_data *per_cu, **last_chain;
-
-  per_cu = dwarf2_per_objfile->read_in_chain;
-  last_chain = &dwarf2_per_objfile->read_in_chain;
-  while (per_cu != NULL)
-    {
-      struct dwarf2_per_cu_data *next_cu;
-
-      next_cu = per_cu->cu->read_in_chain;
-
-      free_heap_comp_unit (per_cu->cu);
-      *last_chain = next_cu;
-
-      per_cu = next_cu;
-    }
+  dwarf2_per_objfile->free_cached_comp_units ();
 }
 
 /* Increase the age counter on each cached compilation unit, and free
@@ -22889,16 +25121,7 @@ dwarf2_free_objfile (struct objfile *obj
   if (dwarf2_per_objfile == NULL)
     return;
 
-  /* Cached DIE trees use xmalloc and the comp_unit_obstack.  */
-  free_cached_comp_units (NULL);
-
-  if (dwarf2_per_objfile->quick_file_names_table)
-    htab_delete (dwarf2_per_objfile->quick_file_names_table);
-
-  if (dwarf2_per_objfile->line_header_hash)
-    htab_delete (dwarf2_per_objfile->line_header_hash);
-
-  /* Everything else should be on the objfile obstack.  */
+  dwarf2_per_objfile->~dwarf2_per_objfile ();
 }
 
 /* A set of CU "per_cu" pointer, DIE offset, and GDB type pointer.
@@ -23182,14 +25405,14 @@ static struct cmd_list_element *set_dwar
 static struct cmd_list_element *show_dwarf_cmdlist;
 
 static void
-set_dwarf_cmd (char *args, int from_tty)
+set_dwarf_cmd (const char *args, int from_tty)
 {
   help_list (set_dwarf_cmdlist, "maintenance set dwarf ", all_commands,
 	     gdb_stdout);
 }
 
 static void
-show_dwarf_cmd (char *args, int from_tty)
+show_dwarf_cmd (const char *args, int from_tty)
 {
   cmd_show_list (show_dwarf_cmdlist, from_tty, "");
 }
@@ -23223,74 +25446,105 @@ dwarf2_per_objfile_free (struct objfile 
 
   if (data->dwz_file && data->dwz_file->dwz_bfd)
     gdb_bfd_unref (data->dwz_file->dwz_bfd);
+
+  if (data->index_table != NULL)
+    data->index_table->~mapped_index ();
 }
 
 
 /* The "save gdb-index" command.  */
 
-/* The contents of the hash table we create when building the string
-   table.  */
-struct strtab_entry
-{
-  offset_type offset;
-  const char *str;
-};
-
-/* Hash function for a strtab_entry.
-
-   Function is used only during write_hash_table so no index format backward
-   compatibility is needed.  */
+/* Write SIZE bytes from the buffer pointed to by DATA to FILE, with
+   error checking.  */
 
-static hashval_t
-hash_strtab_entry (const void *e)
+static void
+file_write (FILE *file, const void *data, size_t size)
 {
-  const struct strtab_entry *entry = (const struct strtab_entry *) e;
-  return mapped_index_string_hash (INT_MAX, entry->str);
+  if (fwrite (data, 1, size, file) != size)
+    error (_("couldn't data write to file"));
 }
 
-/* Equality function for a strtab_entry.  */
+/* Write the contents of VEC to FILE, with error checking.  */
 
-static int
-eq_strtab_entry (const void *a, const void *b)
+template<typename Elem, typename Alloc>
+static void
+file_write (FILE *file, const std::vector<Elem, Alloc> &vec)
 {
-  const struct strtab_entry *ea = (const struct strtab_entry *) a;
-  const struct strtab_entry *eb = (const struct strtab_entry *) b;
-  return !strcmp (ea->str, eb->str);
+  file_write (file, vec.data (), vec.size () * sizeof (vec[0]));
 }
 
-/* Create a strtab_entry hash table.  */
-
-static htab_t
-create_strtab (void)
+/* In-memory buffer to prepare data to be written later to a file.  */
+class data_buf
 {
-  return htab_create_alloc (100, hash_strtab_entry, eq_strtab_entry,
-			    xfree, xcalloc, xfree);
-}
+public:
+  /* Copy DATA to the end of the buffer.  */
+  template<typename T>
+  void append_data (const T &data)
+  {
+    std::copy (reinterpret_cast<const gdb_byte *> (&data),
+	       reinterpret_cast<const gdb_byte *> (&data + 1),
+	       grow (sizeof (data)));
+  }
+
+  /* Copy CSTR (a zero-terminated string) to the end of buffer.  The
+     terminating zero is appended too.  */
+  void append_cstr0 (const char *cstr)
+  {
+    const size_t size = strlen (cstr) + 1;
+    std::copy (cstr, cstr + size, grow (size));
+  }
 
-/* Add a string to the constant pool.  Return the string's offset in
-   host order.  */
+  /* Store INPUT as ULEB128 to the end of buffer.  */
+  void append_unsigned_leb128 (ULONGEST input)
+  {
+    for (;;)
+      {
+	gdb_byte output = input & 0x7f;
+	input >>= 7;
+	if (input)
+	  output |= 0x80;
+	append_data (output);
+	if (input == 0)
+	  break;
+      }
+  }
 
-static offset_type
-add_string (htab_t table, struct obstack *cpool, const char *str)
-{
-  void **slot;
-  struct strtab_entry entry;
-  struct strtab_entry *result;
+  /* Accept a host-format integer in VAL and append it to the buffer
+     as a target-format integer which is LEN bytes long.  */
+  void append_uint (size_t len, bfd_endian byte_order, ULONGEST val)
+  {
+    ::store_unsigned_integer (grow (len), len, byte_order, val);
+  }
 
-  entry.str = str;
-  slot = htab_find_slot (table, &entry, INSERT);
-  if (*slot)
-    result = (struct strtab_entry *) *slot;
-  else
-    {
-      result = XNEW (struct strtab_entry);
-      result->offset = obstack_object_size (cpool);
-      result->str = str;
-      obstack_grow_str0 (cpool, str);
-      *slot = result;
-    }
-  return result->offset;
-}
+  /* Return the size of the buffer.  */
+  size_t size () const
+  {
+    return m_vec.size ();
+  }
+
+  /* Return true iff the buffer is empty.  */
+  bool empty () const
+  {
+    return m_vec.empty ();
+  }
+
+  /* Write the buffer to FILE.  */
+  void file_write (FILE *file) const
+  {
+    ::file_write (file, m_vec);
+  }
+
+private:
+  /* Grow SIZE bytes at the end of the buffer.  Returns a pointer to
+     the start of the new block.  */
+  gdb_byte *grow (size_t size)
+  {
+    m_vec.resize (m_vec.size () + size);
+    return &*m_vec.end () - size;
+  }
+
+  gdb::byte_vector m_vec;
+};
 
 /* An entry in the symbol table.  */
 struct symtab_index_entry
@@ -23301,107 +25555,41 @@ struct symtab_index_entry
   offset_type index_offset;
   /* A sorted vector of the indices of all the CUs that hold an object
      of this name.  */
-  VEC (offset_type) *cu_indices;
+  std::vector<offset_type> cu_indices;
 };
 
 /* The symbol table.  This is a power-of-2-sized hash table.  */
 struct mapped_symtab
 {
-  offset_type n_elements;
-  offset_type size;
-  struct symtab_index_entry **data;
-};
-
-/* Hash function for a symtab_index_entry.  */
-
-static hashval_t
-hash_symtab_entry (const void *e)
-{
-  const struct symtab_index_entry *entry
-    = (const struct symtab_index_entry *) e;
-  return iterative_hash (VEC_address (offset_type, entry->cu_indices),
-			 sizeof (offset_type) * VEC_length (offset_type,
-							    entry->cu_indices),
-			 0);
-}
-
-/* Equality function for a symtab_index_entry.  */
-
-static int
-eq_symtab_entry (const void *a, const void *b)
-{
-  const struct symtab_index_entry *ea = (const struct symtab_index_entry *) a;
-  const struct symtab_index_entry *eb = (const struct symtab_index_entry *) b;
-  int len = VEC_length (offset_type, ea->cu_indices);
-  if (len != VEC_length (offset_type, eb->cu_indices))
-    return 0;
-  return !memcmp (VEC_address (offset_type, ea->cu_indices),
-		  VEC_address (offset_type, eb->cu_indices),
-		  sizeof (offset_type) * len);
-}
-
-/* Destroy a symtab_index_entry.  */
-
-static void
-delete_symtab_entry (void *p)
-{
-  struct symtab_index_entry *entry = (struct symtab_index_entry *) p;
-  VEC_free (offset_type, entry->cu_indices);
-  xfree (entry);
-}
-
-/* Create a hash table holding symtab_index_entry objects.  */
-
-static htab_t
-create_symbol_hash_table (void)
-{
-  return htab_create_alloc (100, hash_symtab_entry, eq_symtab_entry,
-			    delete_symtab_entry, xcalloc, xfree);
-}
-
-/* Create a new mapped symtab object.  */
-
-static struct mapped_symtab *
-create_mapped_symtab (void)
-{
-  struct mapped_symtab *symtab = XNEW (struct mapped_symtab);
-  symtab->n_elements = 0;
-  symtab->size = 1024;
-  symtab->data = XCNEWVEC (struct symtab_index_entry *, symtab->size);
-  return symtab;
-}
-
-/* Destroy a mapped_symtab.  */
+  mapped_symtab ()
+  {
+    data.resize (1024);
+  }
 
-static void
-cleanup_mapped_symtab (void *p)
-{
-  struct mapped_symtab *symtab = (struct mapped_symtab *) p;
-  /* The contents of the array are freed when the other hash table is
-     destroyed.  */
-  xfree (symtab->data);
-  xfree (symtab);
-}
+  offset_type n_elements = 0;
+  std::vector<symtab_index_entry> data;
+};
 
-/* Find a slot in SYMTAB for the symbol NAME.  Returns a pointer to
+/* Find a slot in SYMTAB for the symbol NAME.  Returns a reference to
    the slot.
    
    Function is used only during write_hash_table so no index format backward
    compatibility is needed.  */
 
-static struct symtab_index_entry **
+static symtab_index_entry &
 find_slot (struct mapped_symtab *symtab, const char *name)
 {
   offset_type index, step, hash = mapped_index_string_hash (INT_MAX, name);
 
-  index = hash & (symtab->size - 1);
-  step = ((hash * 17) & (symtab->size - 1)) | 1;
+  index = hash & (symtab->data.size () - 1);
+  step = ((hash * 17) & (symtab->data.size () - 1)) | 1;
 
   for (;;)
     {
-      if (!symtab->data[index] || !strcmp (name, symtab->data[index]->name))
-	return &symtab->data[index];
-      index = (index + step) & (symtab->size - 1);
+      if (symtab->data[index].name == NULL
+	  || strcmp (name, symtab->data[index].name) == 0)
+	return symtab->data[index];
+      index = (index + step) & (symtab->data.size () - 1);
     }
 }
 
@@ -23410,24 +25598,17 @@ find_slot (struct mapped_symtab *symtab,
 static void
 hash_expand (struct mapped_symtab *symtab)
 {
-  offset_type old_size = symtab->size;
-  offset_type i;
-  struct symtab_index_entry **old_entries = symtab->data;
-
-  symtab->size *= 2;
-  symtab->data = XCNEWVEC (struct symtab_index_entry *, symtab->size);
+  auto old_entries = std::move (symtab->data);
 
-  for (i = 0; i < old_size; ++i)
-    {
-      if (old_entries[i])
-	{
-	  struct symtab_index_entry **slot = find_slot (symtab,
-							old_entries[i]->name);
-	  *slot = old_entries[i];
-	}
-    }
+  symtab->data.clear ();
+  symtab->data.resize (old_entries.size () * 2);
 
-  xfree (old_entries);
+  for (auto &it : old_entries)
+    if (it.name != NULL)
+      {
+	auto &ref = find_slot (symtab, it.name);
+	ref = std::move (it);
+      }
 }
 
 /* Add an entry to SYMTAB.  NAME is the name of the symbol.
@@ -23439,20 +25620,17 @@ add_index_entry (struct mapped_symtab *s
 		 int is_static, gdb_index_symbol_kind kind,
 		 offset_type cu_index)
 {
-  struct symtab_index_entry **slot;
   offset_type cu_index_and_attrs;
 
   ++symtab->n_elements;
-  if (4 * symtab->n_elements / 3 >= symtab->size)
+  if (4 * symtab->n_elements / 3 >= symtab->data.size ())
     hash_expand (symtab);
 
-  slot = find_slot (symtab, name);
-  if (!*slot)
+  symtab_index_entry &slot = find_slot (symtab, name);
+  if (slot.name == NULL)
     {
-      *slot = XNEW (struct symtab_index_entry);
-      (*slot)->name = name;
+      slot.name = name;
       /* index_offset is set later.  */
-      (*slot)->cu_indices = NULL;
     }
 
   cu_index_and_attrs = 0;
@@ -23467,18 +25645,7 @@ add_index_entry (struct mapped_symtab *s
      the last entry pushed), but a symbol could have multiple kinds in one CU.
      To keep things simple we don't worry about the duplication here and
      sort and uniqufy the list after we've processed all symbols.  */
-  VEC_safe_push (offset_type, (*slot)->cu_indices, cu_index_and_attrs);
-}
-
-/* qsort helper routine for uniquify_cu_indices.  */
-
-static int
-offset_type_compare (const void *ap, const void *bp)
-{
-  offset_type a = *(offset_type *) ap;
-  offset_type b = *(offset_type *) bp;
-
-  return (a > b) - (b > a);
+  slot.cu_indices.push_back (cu_index_and_attrs);
 }
 
 /* Sort and remove duplicates of all symbols' cu_indices lists.  */
@@ -23486,112 +25653,123 @@ offset_type_compare (const void *ap, con
 static void
 uniquify_cu_indices (struct mapped_symtab *symtab)
 {
-  int i;
-
-  for (i = 0; i < symtab->size; ++i)
+  for (auto &entry : symtab->data)
     {
-      struct symtab_index_entry *entry = symtab->data[i];
-
-      if (entry
-	  && entry->cu_indices != NULL)
+      if (entry.name != NULL && !entry.cu_indices.empty ())
 	{
-	  unsigned int next_to_insert, next_to_check;
-	  offset_type last_value;
-
-	  qsort (VEC_address (offset_type, entry->cu_indices),
-		 VEC_length (offset_type, entry->cu_indices),
-		 sizeof (offset_type), offset_type_compare);
-
-	  last_value = VEC_index (offset_type, entry->cu_indices, 0);
-	  next_to_insert = 1;
-	  for (next_to_check = 1;
-	       next_to_check < VEC_length (offset_type, entry->cu_indices);
-	       ++next_to_check)
-	    {
-	      if (VEC_index (offset_type, entry->cu_indices, next_to_check)
-		  != last_value)
-		{
-		  last_value = VEC_index (offset_type, entry->cu_indices,
-					  next_to_check);
-		  VEC_replace (offset_type, entry->cu_indices, next_to_insert,
-			       last_value);
-		  ++next_to_insert;
-		}
-	    }
-	  VEC_truncate (offset_type, entry->cu_indices, next_to_insert);
+	  auto &cu_indices = entry.cu_indices;
+	  std::sort (cu_indices.begin (), cu_indices.end ());
+	  auto from = std::unique (cu_indices.begin (), cu_indices.end ());
+	  cu_indices.erase (from, cu_indices.end ());
 	}
     }
 }
 
-/* Add a vector of indices to the constant pool.  */
-
-static offset_type
-add_indices_to_cpool (htab_t symbol_hash_table, struct obstack *cpool,
-		      struct symtab_index_entry *entry)
+/* A form of 'const char *' suitable for container keys.  Only the
+   pointer is stored.  The strings themselves are compared, not the
+   pointers.  */
+class c_str_view
 {
-  void **slot;
+public:
+  c_str_view (const char *cstr)
+    : m_cstr (cstr)
+  {}
 
-  slot = htab_find_slot (symbol_hash_table, entry, INSERT);
-  if (!*slot)
-    {
-      offset_type len = VEC_length (offset_type, entry->cu_indices);
-      offset_type val = MAYBE_SWAP (len);
-      offset_type iter;
-      int i;
+  bool operator== (const c_str_view &other) const
+  {
+    return strcmp (m_cstr, other.m_cstr) == 0;
+  }
 
-      *slot = entry;
-      entry->index_offset = obstack_object_size (cpool);
+  /* Return the underlying C string.  Note, the returned string is
+     only a reference with lifetime of this object.  */
+  const char *c_str () const
+  {
+    return m_cstr;
+  }
 
-      obstack_grow (cpool, &val, sizeof (val));
-      for (i = 0;
-	   VEC_iterate (offset_type, entry->cu_indices, i, iter);
-	   ++i)
-	{
-	  val = MAYBE_SWAP (iter);
-	  obstack_grow (cpool, &val, sizeof (val));
-	}
-    }
-  else
-    {
-      struct symtab_index_entry *old_entry
-	= (struct symtab_index_entry *) *slot;
-      entry->index_offset = old_entry->index_offset;
-      entry = old_entry;
-    }
-  return entry->index_offset;
-}
+private:
+  friend class c_str_view_hasher;
+  const char *const m_cstr;
+};
+
+/* A std::unordered_map::hasher for c_str_view that uses the right
+   hash function for strings in a mapped index.  */
+class c_str_view_hasher
+{
+public:
+  size_t operator () (const c_str_view &x) const
+  {
+    return mapped_index_string_hash (INT_MAX, x.m_cstr);
+  }
+};
+
+/* A std::unordered_map::hasher for std::vector<>.  */
+template<typename T>
+class vector_hasher
+{
+public:
+  size_t operator () (const std::vector<T> &key) const
+  {
+    return iterative_hash (key.data (),
+			   sizeof (key.front ()) * key.size (), 0);
+  }
+};
 
-/* Write the mapped hash table SYMTAB to the obstack OUTPUT, with
-   constant pool entries going into the obstack CPOOL.  */
+/* Write the mapped hash table SYMTAB to the data buffer OUTPUT, with
+   constant pool entries going into the data buffer CPOOL.  */
 
 static void
-write_hash_table (struct mapped_symtab *symtab,
-		  struct obstack *output, struct obstack *cpool)
+write_hash_table (mapped_symtab *symtab, data_buf &output, data_buf &cpool)
 {
-  offset_type i;
-  htab_t symbol_hash_table;
-  htab_t str_table;
+  {
+    /* Elements are sorted vectors of the indices of all the CUs that
+       hold an object of this name.  */
+    std::unordered_map<std::vector<offset_type>, offset_type,
+		       vector_hasher<offset_type>>
+      symbol_hash_table;
+
+    /* We add all the index vectors to the constant pool first, to
+       ensure alignment is ok.  */
+    for (symtab_index_entry &entry : symtab->data)
+      {
+	if (entry.name == NULL)
+	  continue;
+	gdb_assert (entry.index_offset == 0);
 
-  symbol_hash_table = create_symbol_hash_table ();
-  str_table = create_strtab ();
+	/* Finding before inserting is faster than always trying to
+	   insert, because inserting always allocates a node, does the
+	   lookup, and then destroys the new node if another node
+	   already had the same key.  C++17 try_emplace will avoid
+	   this.  */
+	const auto found
+	  = symbol_hash_table.find (entry.cu_indices);
+	if (found != symbol_hash_table.end ())
+	  {
+	    entry.index_offset = found->second;
+	    continue;
+	  }
 
-  /* We add all the index vectors to the constant pool first, to
-     ensure alignment is ok.  */
-  for (i = 0; i < symtab->size; ++i)
-    {
-      if (symtab->data[i])
-	add_indices_to_cpool (symbol_hash_table, cpool, symtab->data[i]);
-    }
+	symbol_hash_table.emplace (entry.cu_indices, cpool.size ());
+	entry.index_offset = cpool.size ();
+	cpool.append_data (MAYBE_SWAP (entry.cu_indices.size ()));
+	for (const auto index : entry.cu_indices)
+	  cpool.append_data (MAYBE_SWAP (index));
+      }
+  }
 
   /* Now write out the hash table.  */
-  for (i = 0; i < symtab->size; ++i)
+  std::unordered_map<c_str_view, offset_type, c_str_view_hasher> str_table;
+  for (const auto &entry : symtab->data)
     {
       offset_type str_off, vec_off;
 
-      if (symtab->data[i])
+      if (entry.name != NULL)
 	{
-	  str_off = add_string (str_table, cpool, symtab->data[i]->name);
-	  vec_off = symtab->data[i]->index_offset;
+	  const auto insertpair = str_table.emplace (entry.name, cpool.size ());
+	  if (insertpair.second)
+	    cpool.append_cstr0 (entry.name);
+	  str_off = insertpair.first->second;
+	  vec_off = entry.index_offset;
 	}
       else
 	{
@@ -23601,50 +25779,23 @@ write_hash_table (struct mapped_symtab *
 	  vec_off = 0;
 	}
 
-      str_off = MAYBE_SWAP (str_off);
-      vec_off = MAYBE_SWAP (vec_off);
-
-      obstack_grow (output, &str_off, sizeof (str_off));
-      obstack_grow (output, &vec_off, sizeof (vec_off));
+      output.append_data (MAYBE_SWAP (str_off));
+      output.append_data (MAYBE_SWAP (vec_off));
     }
-
-  htab_delete (str_table);
-  htab_delete (symbol_hash_table);
-}
-
-/* Struct to map psymtab to CU index in the index file.  */
-struct psymtab_cu_index_map
-{
-  struct partial_symtab *psymtab;
-  unsigned int cu_index;
-};
-
-static hashval_t
-hash_psymtab_cu_index (const void *item)
-{
-  const struct psymtab_cu_index_map *map
-    = (const struct psymtab_cu_index_map *) item;
-
-  return htab_hash_pointer (map->psymtab);
 }
 
-static int
-eq_psymtab_cu_index (const void *item_lhs, const void *item_rhs)
-{
-  const struct psymtab_cu_index_map *lhs
-    = (const struct psymtab_cu_index_map *) item_lhs;
-  const struct psymtab_cu_index_map *rhs
-    = (const struct psymtab_cu_index_map *) item_rhs;
-
-  return lhs->psymtab == rhs->psymtab;
-}
+typedef std::unordered_map<partial_symtab *, unsigned int> psym_index_map;
 
 /* Helper struct for building the address table.  */
 struct addrmap_index_data
 {
+  addrmap_index_data (data_buf &addr_vec_, psym_index_map &cu_index_htab_)
+    : addr_vec (addr_vec_), cu_index_htab (cu_index_htab_)
+  {}
+
   struct objfile *objfile;
-  struct obstack *addr_obstack;
-  htab_t cu_index_htab;
+  data_buf &addr_vec;
+  psym_index_map &cu_index_htab;
 
   /* Non-zero if the previous_* fields are valid.
      We can't write an entry until we see the next entry (since it is only then
@@ -23656,24 +25807,19 @@ struct addrmap_index_data
   CORE_ADDR previous_cu_start;
 };
 
-/* Write an address entry to OBSTACK.  */
+/* Write an address entry to ADDR_VEC.  */
 
 static void
-add_address_entry (struct objfile *objfile, struct obstack *obstack,
+add_address_entry (struct objfile *objfile, data_buf &addr_vec,
 		   CORE_ADDR start, CORE_ADDR end, unsigned int cu_index)
 {
-  offset_type cu_index_to_write;
-  gdb_byte addr[8];
   CORE_ADDR baseaddr;
 
   baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
 
-  store_unsigned_integer (addr, 8, BFD_ENDIAN_LITTLE, start - baseaddr);
-  obstack_grow (obstack, addr, 8);
-  store_unsigned_integer (addr, 8, BFD_ENDIAN_LITTLE, end - baseaddr);
-  obstack_grow (obstack, addr, 8);
-  cu_index_to_write = MAYBE_SWAP (cu_index);
-  obstack_grow (obstack, &cu_index_to_write, sizeof (offset_type));
+  addr_vec.append_uint (8, BFD_ENDIAN_LITTLE, start - baseaddr);
+  addr_vec.append_uint (8, BFD_ENDIAN_LITTLE, end - baseaddr);
+  addr_vec.append_data (MAYBE_SWAP (cu_index));
 }
 
 /* Worker function for traversing an addrmap to build the address table.  */
@@ -23685,44 +25831,39 @@ add_address_entry_worker (void *datap, C
   struct partial_symtab *pst = (struct partial_symtab *) obj;
 
   if (data->previous_valid)
-    add_address_entry (data->objfile, data->addr_obstack,
+    add_address_entry (data->objfile, data->addr_vec,
 		       data->previous_cu_start, start_addr,
 		       data->previous_cu_index);
 
   data->previous_cu_start = start_addr;
   if (pst != NULL)
     {
-      struct psymtab_cu_index_map find_map, *map;
-      find_map.psymtab = pst;
-      map = ((struct psymtab_cu_index_map *)
-	     htab_find (data->cu_index_htab, &find_map));
-      gdb_assert (map != NULL);
-      data->previous_cu_index = map->cu_index;
+      const auto it = data->cu_index_htab.find (pst);
+      gdb_assert (it != data->cu_index_htab.cend ());
+      data->previous_cu_index = it->second;
       data->previous_valid = 1;
     }
   else
-      data->previous_valid = 0;
+    data->previous_valid = 0;
 
   return 0;
 }
 
-/* Write OBJFILE's address map to OBSTACK.
+/* Write OBJFILE's address map to ADDR_VEC.
    CU_INDEX_HTAB is used to map addrmap entries to their CU indices
    in the index file.  */
 
 static void
-write_address_map (struct objfile *objfile, struct obstack *obstack,
-		   htab_t cu_index_htab)
+write_address_map (struct objfile *objfile, data_buf &addr_vec,
+		   psym_index_map &cu_index_htab)
 {
-  struct addrmap_index_data addrmap_index_data;
+  struct addrmap_index_data addrmap_index_data (addr_vec, cu_index_htab);
 
   /* When writing the address table, we have to cope with the fact that
      the addrmap iterator only provides the start of a region; we have to
      wait until the next invocation to get the start of the next region.  */
 
   addrmap_index_data.objfile = objfile;
-  addrmap_index_data.addr_obstack = obstack;
-  addrmap_index_data.cu_index_htab = cu_index_htab;
   addrmap_index_data.previous_valid = 0;
 
   addrmap_foreach (objfile->psymtabs_addrmap, add_address_entry_worker,
@@ -23734,7 +25875,7 @@ write_address_map (struct objfile *objfi
      doesn't work here.  To cope we pass 0xff...ff, this is a rare situation
      anyway.  */
   if (addrmap_index_data.previous_valid)
-    add_address_entry (objfile, obstack,
+    add_address_entry (objfile, addr_vec,
 		       addrmap_index_data.previous_cu_start, (CORE_ADDR) -1,
 		       addrmap_index_data.previous_cu_index);
 }
@@ -23775,206 +25916,791 @@ symbol_kind (struct partial_symbol *psym
     default:
       return GDB_INDEX_SYMBOL_KIND_OTHER;
     }
-}
+}
+
+/* Add a list of partial symbols to SYMTAB.  */
+
+static void
+write_psymbols (struct mapped_symtab *symtab,
+		std::unordered_set<partial_symbol *> &psyms_seen,
+		struct partial_symbol **psymp,
+		int count,
+		offset_type cu_index,
+		int is_static)
+{
+  for (; count-- > 0; ++psymp)
+    {
+      struct partial_symbol *psym = *psymp;
+
+      if (SYMBOL_LANGUAGE (psym) == language_ada)
+	error (_("Ada is not currently supported by the index"));
+
+      /* Only add a given psymbol once.  */
+      if (psyms_seen.insert (psym).second)
+	{
+	  gdb_index_symbol_kind kind = symbol_kind (psym);
+
+	  add_index_entry (symtab, SYMBOL_SEARCH_NAME (psym),
+			   is_static, kind, cu_index);
+	}
+    }
+}
+
+/* A helper struct used when iterating over debug_types.  */
+struct signatured_type_index_data
+{
+  signatured_type_index_data (data_buf &types_list_,
+                              std::unordered_set<partial_symbol *> &psyms_seen_)
+    : types_list (types_list_), psyms_seen (psyms_seen_)
+  {}
+
+  struct objfile *objfile;
+  struct mapped_symtab *symtab;
+  data_buf &types_list;
+  std::unordered_set<partial_symbol *> &psyms_seen;
+  int cu_index;
+};
+
+/* A helper function that writes a single signatured_type to an
+   obstack.  */
+
+static int
+write_one_signatured_type (void **slot, void *d)
+{
+  struct signatured_type_index_data *info
+    = (struct signatured_type_index_data *) d;
+  struct signatured_type *entry = (struct signatured_type *) *slot;
+  struct partial_symtab *psymtab = entry->per_cu.v.psymtab;
+
+  write_psymbols (info->symtab,
+		  info->psyms_seen,
+		  &info->objfile->global_psymbols[psymtab->globals_offset],
+		  psymtab->n_global_syms, info->cu_index,
+		  0);
+  write_psymbols (info->symtab,
+		  info->psyms_seen,
+		  &info->objfile->static_psymbols[psymtab->statics_offset],
+		  psymtab->n_static_syms, info->cu_index,
+		  1);
+
+  info->types_list.append_uint (8, BFD_ENDIAN_LITTLE,
+				to_underlying (entry->per_cu.sect_off));
+  info->types_list.append_uint (8, BFD_ENDIAN_LITTLE,
+				to_underlying (entry->type_offset_in_tu));
+  info->types_list.append_uint (8, BFD_ENDIAN_LITTLE, entry->signature);
+
+  ++info->cu_index;
+
+  return 1;
+}
+
+/* Recurse into all "included" dependencies and count their symbols as
+   if they appeared in this psymtab.  */
+
+static void
+recursively_count_psymbols (struct partial_symtab *psymtab,
+			    size_t &psyms_seen)
+{
+  for (int i = 0; i < psymtab->number_of_dependencies; ++i)
+    if (psymtab->dependencies[i]->user != NULL)
+      recursively_count_psymbols (psymtab->dependencies[i],
+				  psyms_seen);
+
+  psyms_seen += psymtab->n_global_syms;
+  psyms_seen += psymtab->n_static_syms;
+}
+
+/* Recurse into all "included" dependencies and write their symbols as
+   if they appeared in this psymtab.  */
+
+static void
+recursively_write_psymbols (struct objfile *objfile,
+			    struct partial_symtab *psymtab,
+			    struct mapped_symtab *symtab,
+			    std::unordered_set<partial_symbol *> &psyms_seen,
+			    offset_type cu_index)
+{
+  int i;
+
+  for (i = 0; i < psymtab->number_of_dependencies; ++i)
+    if (psymtab->dependencies[i]->user != NULL)
+      recursively_write_psymbols (objfile, psymtab->dependencies[i],
+				  symtab, psyms_seen, cu_index);
+
+  write_psymbols (symtab,
+		  psyms_seen,
+		  &objfile->global_psymbols[psymtab->globals_offset],
+		  psymtab->n_global_syms, cu_index,
+		  0);
+  write_psymbols (symtab,
+		  psyms_seen,
+		  &objfile->static_psymbols[psymtab->statics_offset],
+		  psymtab->n_static_syms, cu_index,
+		  1);
+}
+
+/* DWARF-5 .debug_names builder.  */
+class debug_names
+{
+public:
+  debug_names (bool is_dwarf64, bfd_endian dwarf5_byte_order)
+    : m_dwarf5_byte_order (dwarf5_byte_order),
+      m_dwarf32 (dwarf5_byte_order),
+      m_dwarf64 (dwarf5_byte_order),
+      m_dwarf (is_dwarf64
+	       ? static_cast<dwarf &> (m_dwarf64)
+	       : static_cast<dwarf &> (m_dwarf32)),
+      m_name_table_string_offs (m_dwarf.name_table_string_offs),
+      m_name_table_entry_offs (m_dwarf.name_table_entry_offs)
+  {}
+
+  int dwarf5_offset_size () const
+  {
+    const bool dwarf5_is_dwarf64 = &m_dwarf == &m_dwarf64;
+    return dwarf5_is_dwarf64 ? 8 : 4;
+  }
+
+  /* Is this symbol from DW_TAG_compile_unit or DW_TAG_type_unit?  */
+  enum class unit_kind { cu, tu };
+
+  /* Insert one symbol.  */
+  void insert (const partial_symbol *psym, int cu_index, bool is_static,
+	       unit_kind kind)
+  {
+    const int dwarf_tag = psymbol_tag (psym);
+    if (dwarf_tag == 0)
+      return;
+    const char *const name = SYMBOL_SEARCH_NAME (psym);
+    const auto insertpair
+      = m_name_to_value_set.emplace (c_str_view (name),
+				     std::set<symbol_value> ());
+    std::set<symbol_value> &value_set = insertpair.first->second;
+    value_set.emplace (symbol_value (dwarf_tag, cu_index, is_static, kind));
+  }
+
+  /* Build all the tables.  All symbols must be already inserted.
+     This function does not call file_write, caller has to do it
+     afterwards.  */
+  void build ()
+  {
+    /* Verify the build method has not be called twice.  */
+    gdb_assert (m_abbrev_table.empty ());
+    const size_t name_count = m_name_to_value_set.size ();
+    m_bucket_table.resize
+      (std::pow (2, std::ceil (std::log2 (name_count * 4 / 3))));
+    m_hash_table.reserve (name_count);
+    m_name_table_string_offs.reserve (name_count);
+    m_name_table_entry_offs.reserve (name_count);
+
+    /* Map each hash of symbol to its name and value.  */
+    struct hash_it_pair
+    {
+      uint32_t hash;
+      decltype (m_name_to_value_set)::const_iterator it;
+    };
+    std::vector<std::forward_list<hash_it_pair>> bucket_hash;
+    bucket_hash.resize (m_bucket_table.size ());
+    for (decltype (m_name_to_value_set)::const_iterator it
+	   = m_name_to_value_set.cbegin ();
+	 it != m_name_to_value_set.cend ();
+	 ++it)
+      {
+	const char *const name = it->first.c_str ();
+	const uint32_t hash = dwarf5_djb_hash (name);
+	hash_it_pair hashitpair;
+	hashitpair.hash = hash;
+	hashitpair.it = it;
+	auto &slot = bucket_hash[hash % bucket_hash.size()];
+	slot.push_front (std::move (hashitpair));
+      }
+    for (size_t bucket_ix = 0; bucket_ix < bucket_hash.size (); ++bucket_ix)
+      {
+	const std::forward_list<hash_it_pair> &hashitlist
+	  = bucket_hash[bucket_ix];
+	if (hashitlist.empty ())
+	  continue;
+	uint32_t &bucket_slot = m_bucket_table[bucket_ix];
+	/* The hashes array is indexed starting at 1.  */
+	store_unsigned_integer (reinterpret_cast<gdb_byte *> (&bucket_slot),
+				sizeof (bucket_slot), m_dwarf5_byte_order,
+				m_hash_table.size () + 1);
+	for (const hash_it_pair &hashitpair : hashitlist)
+	  {
+	    m_hash_table.push_back (0);
+	    store_unsigned_integer (reinterpret_cast<gdb_byte *>
+							(&m_hash_table.back ()),
+				    sizeof (m_hash_table.back ()),
+				    m_dwarf5_byte_order, hashitpair.hash);
+	    const c_str_view &name = hashitpair.it->first;
+	    const std::set<symbol_value> &value_set = hashitpair.it->second;
+	    m_name_table_string_offs.push_back_reorder
+	      (m_debugstrlookup.lookup (name.c_str ()));
+	    m_name_table_entry_offs.push_back_reorder (m_entry_pool.size ());
+	    gdb_assert (!value_set.empty ());
+	    for (const symbol_value &value : value_set)
+	      {
+		int &idx = m_indexkey_to_idx[index_key (value.dwarf_tag,
+							value.is_static,
+							value.kind)];
+		if (idx == 0)
+		  {
+		    idx = m_idx_next++;
+		    m_abbrev_table.append_unsigned_leb128 (idx);
+		    m_abbrev_table.append_unsigned_leb128 (value.dwarf_tag);
+		    m_abbrev_table.append_unsigned_leb128
+			      (value.kind == unit_kind::cu ? DW_IDX_compile_unit
+							   : DW_IDX_type_unit);
+		    m_abbrev_table.append_unsigned_leb128 (DW_FORM_udata);
+		    m_abbrev_table.append_unsigned_leb128 (value.is_static
+							   ? DW_IDX_GNU_internal
+							   : DW_IDX_GNU_external);
+		    m_abbrev_table.append_unsigned_leb128 (DW_FORM_flag_present);
+
+		    /* Terminate attributes list.  */
+		    m_abbrev_table.append_unsigned_leb128 (0);
+		    m_abbrev_table.append_unsigned_leb128 (0);
+		  }
+
+		m_entry_pool.append_unsigned_leb128 (idx);
+		m_entry_pool.append_unsigned_leb128 (value.cu_index);
+	      }
+
+	    /* Terminate the list of CUs.  */
+	    m_entry_pool.append_unsigned_leb128 (0);
+	  }
+      }
+    gdb_assert (m_hash_table.size () == name_count);
+
+    /* Terminate tags list.  */
+    m_abbrev_table.append_unsigned_leb128 (0);
+  }
+
+  /* Return .debug_names bucket count.  This must be called only after
+     calling the build method.  */
+  uint32_t bucket_count () const
+  {
+    /* Verify the build method has been already called.  */
+    gdb_assert (!m_abbrev_table.empty ());
+    const uint32_t retval = m_bucket_table.size ();
+
+    /* Check for overflow.  */
+    gdb_assert (retval == m_bucket_table.size ());
+    return retval;
+  }
+
+  /* Return .debug_names names count.  This must be called only after
+     calling the build method.  */
+  uint32_t name_count () const
+  {
+    /* Verify the build method has been already called.  */
+    gdb_assert (!m_abbrev_table.empty ());
+    const uint32_t retval = m_hash_table.size ();
+
+    /* Check for overflow.  */
+    gdb_assert (retval == m_hash_table.size ());
+    return retval;
+  }
+
+  /* Return number of bytes of .debug_names abbreviation table.  This
+     must be called only after calling the build method.  */
+  uint32_t abbrev_table_bytes () const
+  {
+    gdb_assert (!m_abbrev_table.empty ());
+    return m_abbrev_table.size ();
+  }
+
+  /* Recurse into all "included" dependencies and store their symbols
+     as if they appeared in this psymtab.  */
+  void recursively_write_psymbols
+    (struct objfile *objfile,
+     struct partial_symtab *psymtab,
+     std::unordered_set<partial_symbol *> &psyms_seen,
+     int cu_index)
+  {
+    for (int i = 0; i < psymtab->number_of_dependencies; ++i)
+      if (psymtab->dependencies[i]->user != NULL)
+	recursively_write_psymbols (objfile, psymtab->dependencies[i],
+				    psyms_seen, cu_index);
+
+    write_psymbols (psyms_seen,
+		    &objfile->global_psymbols[psymtab->globals_offset],
+		    psymtab->n_global_syms, cu_index, false, unit_kind::cu);
+    write_psymbols (psyms_seen,
+		    &objfile->static_psymbols[psymtab->statics_offset],
+		    psymtab->n_static_syms, cu_index, true, unit_kind::cu);
+  }
+
+  /* Return number of bytes the .debug_names section will have.  This
+     must be called only after calling the build method.  */
+  size_t bytes () const
+  {
+    /* Verify the build method has been already called.  */
+    gdb_assert (!m_abbrev_table.empty ());
+    size_t expected_bytes = 0;
+    expected_bytes += m_bucket_table.size () * sizeof (m_bucket_table[0]);
+    expected_bytes += m_hash_table.size () * sizeof (m_hash_table[0]);
+    expected_bytes += m_name_table_string_offs.bytes ();
+    expected_bytes += m_name_table_entry_offs.bytes ();
+    expected_bytes += m_abbrev_table.size ();
+    expected_bytes += m_entry_pool.size ();
+    return expected_bytes;
+  }
+
+  /* Write .debug_names to FILE_NAMES and .debug_str addition to
+     FILE_STR.  This must be called only after calling the build
+     method.  */
+  void file_write (FILE *file_names, FILE *file_str) const
+  {
+    /* Verify the build method has been already called.  */
+    gdb_assert (!m_abbrev_table.empty ());
+    ::file_write (file_names, m_bucket_table);
+    ::file_write (file_names, m_hash_table);
+    m_name_table_string_offs.file_write (file_names);
+    m_name_table_entry_offs.file_write (file_names);
+    m_abbrev_table.file_write (file_names);
+    m_entry_pool.file_write (file_names);
+    m_debugstrlookup.file_write (file_str);
+  }
+
+  /* A helper user data for write_one_signatured_type.  */
+  class write_one_signatured_type_data
+  {
+  public:
+    write_one_signatured_type_data (debug_names &nametable_,
+                                    signatured_type_index_data &&info_)
+    : nametable (nametable_), info (std::move (info_))
+    {}
+    debug_names &nametable;
+    struct signatured_type_index_data info;
+  };
+
+  /* A helper function to pass write_one_signatured_type to
+     htab_traverse_noresize.  */
+  static int
+  write_one_signatured_type (void **slot, void *d)
+  {
+    write_one_signatured_type_data *data = (write_one_signatured_type_data *) d;
+    struct signatured_type_index_data *info = &data->info;
+    struct signatured_type *entry = (struct signatured_type *) *slot;
+
+    data->nametable.write_one_signatured_type (entry, info);
+
+    return 1;
+  }
+
+private:
+
+  /* Storage for symbol names mapping them to their .debug_str section
+     offsets.  */
+  class debug_str_lookup
+  {
+  public:
+
+    /* Object costructor to be called for current DWARF2_PER_OBJFILE.
+       All .debug_str section strings are automatically stored.  */
+    debug_str_lookup ()
+      : m_abfd (dwarf2_per_objfile->objfile->obfd)
+    {
+      dwarf2_read_section (dwarf2_per_objfile->objfile,
+			   &dwarf2_per_objfile->str);
+      if (dwarf2_per_objfile->str.buffer == NULL)
+	return;
+      for (const gdb_byte *data = dwarf2_per_objfile->str.buffer;
+	   data < (dwarf2_per_objfile->str.buffer
+		   + dwarf2_per_objfile->str.size);)
+	{
+	  const char *const s = reinterpret_cast<const char *> (data);
+	  const auto insertpair
+	    = m_str_table.emplace (c_str_view (s),
+				   data - dwarf2_per_objfile->str.buffer);
+	  if (!insertpair.second)
+	    complaint (&symfile_complaints,
+		       _("Duplicate string \"%s\" in "
+			 ".debug_str section [in module %s]"),
+		       s, bfd_get_filename (m_abfd));
+	  data += strlen (s) + 1;
+	}
+    }
+
+    /* Return offset of symbol name S in the .debug_str section.  Add
+       such symbol to the section's end if it does not exist there
+       yet.  */
+    size_t lookup (const char *s)
+    {
+      const auto it = m_str_table.find (c_str_view (s));
+      if (it != m_str_table.end ())
+	return it->second;
+      const size_t offset = (dwarf2_per_objfile->str.size
+			     + m_str_add_buf.size ());
+      m_str_table.emplace (c_str_view (s), offset);
+      m_str_add_buf.append_cstr0 (s);
+      return offset;
+    }
 
-/* Add a list of partial symbols to SYMTAB.  */
+    /* Append the end of the .debug_str section to FILE.  */
+    void file_write (FILE *file) const
+    {
+      m_str_add_buf.file_write (file);
+    }
 
-static void
-write_psymbols (struct mapped_symtab *symtab,
-		htab_t psyms_seen,
-		struct partial_symbol **psymp,
-		int count,
-		offset_type cu_index,
-		int is_static)
-{
-  for (; count-- > 0; ++psymp)
+  private:
+    std::unordered_map<c_str_view, size_t, c_str_view_hasher> m_str_table;
+    bfd *const m_abfd;
+
+    /* Data to add at the end of .debug_str for new needed symbol names.  */
+    data_buf m_str_add_buf;
+  };
+
+  /* Container to map used DWARF tags to their .debug_names abbreviation
+     tags.  */
+  class index_key
+  {
+  public:
+    index_key (int dwarf_tag_, bool is_static_, unit_kind kind_)
+      : dwarf_tag (dwarf_tag_), is_static (is_static_), kind (kind_)
     {
-      struct partial_symbol *psym = *psymp;
-      void **slot;
+    }
 
-      if (SYMBOL_LANGUAGE (psym) == language_ada)
-	error (_("Ada is not currently supported by the index"));
+    bool
+    operator== (const index_key &other) const
+    {
+      return (dwarf_tag == other.dwarf_tag && is_static == other.is_static
+	      && kind == other.kind);
+    }
 
-      /* Only add a given psymbol once.  */
-      slot = htab_find_slot (psyms_seen, psym, INSERT);
-      if (!*slot)
-	{
-	  gdb_index_symbol_kind kind = symbol_kind (psym);
+    const int dwarf_tag;
+    const bool is_static;
+    const unit_kind kind;
+  };
 
-	  *slot = psym;
-	  add_index_entry (symtab, SYMBOL_SEARCH_NAME (psym),
-			   is_static, kind, cu_index);
-	}
+  /* Provide std::unordered_map::hasher for index_key.  */
+  class index_key_hasher
+  {
+  public:
+    size_t
+    operator () (const index_key &key) const
+    {
+      return (std::hash<int>() (key.dwarf_tag) << 1) | key.is_static;
     }
-}
+  };
 
-/* Write the contents of an ("unfinished") obstack to FILE.  Throw an
-   exception if there is an error.  */
+  /* Parameters of one symbol entry.  */
+  class symbol_value
+  {
+  public:
+    const int dwarf_tag, cu_index;
+    const bool is_static;
+    const unit_kind kind;
+
+    symbol_value (int dwarf_tag_, int cu_index_, bool is_static_,
+		  unit_kind kind_)
+      : dwarf_tag (dwarf_tag_), cu_index (cu_index_), is_static (is_static_),
+        kind (kind_)
+    {}
+
+    bool
+    operator< (const symbol_value &other) const
+    {
+#define X(n) \
+  do \
+    { \
+      if (n < other.n) \
+	return true; \
+      if (n > other.n) \
+	return false; \
+    } \
+  while (0)
+      X (dwarf_tag);
+      X (is_static);
+      X (kind);
+      X (cu_index);
+#undef X
+      return false;
+    }
+  };
 
-static void
-write_obstack (FILE *file, struct obstack *obstack)
-{
-  if (fwrite (obstack_base (obstack), 1, obstack_object_size (obstack),
-	      file)
-      != obstack_object_size (obstack))
-    error (_("couldn't data write to file"));
-}
+  /* Abstract base class to unify DWARF-32 and DWARF-64 name table
+     output.  */
+  class offset_vec
+  {
+  protected:
+    const bfd_endian dwarf5_byte_order;
+  public:
+    explicit offset_vec (bfd_endian dwarf5_byte_order_)
+      : dwarf5_byte_order (dwarf5_byte_order_)
+    {}
+
+    /* Call std::vector::reserve for NELEM elements.  */
+    virtual void reserve (size_t nelem) = 0;
+
+    /* Call std::vector::push_back with store_unsigned_integer byte
+       reordering for ELEM.  */
+    virtual void push_back_reorder (size_t elem) = 0;
 
-/* A helper struct used when iterating over debug_types.  */
-struct signatured_type_index_data
-{
-  struct objfile *objfile;
-  struct mapped_symtab *symtab;
-  struct obstack *types_list;
-  htab_t psyms_seen;
-  int cu_index;
-};
+    /* Return expected output size in bytes.  */
+    virtual size_t bytes () const = 0;
 
-/* A helper function that writes a single signatured_type to an
-   obstack.  */
+    /* Write name table to FILE.  */
+    virtual void file_write (FILE *file) const = 0;
+  };
 
-static int
-write_one_signatured_type (void **slot, void *d)
-{
-  struct signatured_type_index_data *info
-    = (struct signatured_type_index_data *) d;
-  struct signatured_type *entry = (struct signatured_type *) *slot;
-  struct partial_symtab *psymtab = entry->per_cu.v.psymtab;
-  gdb_byte val[8];
+  /* Template to unify DWARF-32 and DWARF-64 output.  */
+  template<typename OffsetSize>
+  class offset_vec_tmpl : public offset_vec
+  {
+  public:
+    explicit offset_vec_tmpl (bfd_endian dwarf5_byte_order_)
+      : offset_vec (dwarf5_byte_order_)
+    {}
 
-  write_psymbols (info->symtab,
-		  info->psyms_seen,
-		  info->objfile->global_psymbols.list
-		  + psymtab->globals_offset,
-		  psymtab->n_global_syms, info->cu_index,
-		  0);
-  write_psymbols (info->symtab,
-		  info->psyms_seen,
-		  info->objfile->static_psymbols.list
-		  + psymtab->statics_offset,
-		  psymtab->n_static_syms, info->cu_index,
-		  1);
+    /* Implement offset_vec::reserve.  */
+    void reserve (size_t nelem) override
+    {
+      m_vec.reserve (nelem);
+    }
 
-  store_unsigned_integer (val, 8, BFD_ENDIAN_LITTLE,
-			  to_underlying (entry->per_cu.sect_off));
-  obstack_grow (info->types_list, val, 8);
-  store_unsigned_integer (val, 8, BFD_ENDIAN_LITTLE,
-			  to_underlying (entry->type_offset_in_tu));
-  obstack_grow (info->types_list, val, 8);
-  store_unsigned_integer (val, 8, BFD_ENDIAN_LITTLE, entry->signature);
-  obstack_grow (info->types_list, val, 8);
+    /* Implement offset_vec::push_back_reorder.  */
+    void push_back_reorder (size_t elem) override
+    {
+      m_vec.push_back (elem);
+      /* Check for overflow.  */
+      gdb_assert (m_vec.back () == elem);
+      store_unsigned_integer (reinterpret_cast<gdb_byte *> (&m_vec.back ()),
+			      sizeof (m_vec.back ()), dwarf5_byte_order, elem);
+    }
 
-  ++info->cu_index;
+    /* Implement offset_vec::bytes.  */
+    size_t bytes () const override
+    {
+      return m_vec.size () * sizeof (m_vec[0]);
+    }
 
-  return 1;
-}
+    /* Implement offset_vec::file_write.  */
+    void file_write (FILE *file) const override
+    {
+      ::file_write (file, m_vec);
+    }
 
-/* Recurse into all "included" dependencies and write their symbols as
-   if they appeared in this psymtab.  */
+  private:
+    std::vector<OffsetSize> m_vec;
+  };
 
-static void
-recursively_write_psymbols (struct objfile *objfile,
-			    struct partial_symtab *psymtab,
-			    struct mapped_symtab *symtab,
-			    htab_t psyms_seen,
-			    offset_type cu_index)
-{
-  int i;
+  /* Base class to unify DWARF-32 and DWARF-64 .debug_names output
+     respecting name table width.  */
+  class dwarf
+  {
+  public:
+    offset_vec &name_table_string_offs, &name_table_entry_offs;
 
-  for (i = 0; i < psymtab->number_of_dependencies; ++i)
-    if (psymtab->dependencies[i]->user != NULL)
-      recursively_write_psymbols (objfile, psymtab->dependencies[i],
-				  symtab, psyms_seen, cu_index);
+    dwarf (offset_vec &name_table_string_offs_,
+	   offset_vec &name_table_entry_offs_)
+      : name_table_string_offs (name_table_string_offs_),
+	name_table_entry_offs (name_table_entry_offs_)
+    {
+    }
+  };
 
-  write_psymbols (symtab,
-		  psyms_seen,
-		  objfile->global_psymbols.list + psymtab->globals_offset,
-		  psymtab->n_global_syms, cu_index,
-		  0);
-  write_psymbols (symtab,
-		  psyms_seen,
-		  objfile->static_psymbols.list + psymtab->statics_offset,
-		  psymtab->n_static_syms, cu_index,
-		  1);
-}
+  /* Template to unify DWARF-32 and DWARF-64 .debug_names output
+     respecting name table width.  */
+  template<typename OffsetSize>
+  class dwarf_tmpl : public dwarf
+  {
+  public:
+    explicit dwarf_tmpl (bfd_endian dwarf5_byte_order_)
+      : dwarf (m_name_table_string_offs, m_name_table_entry_offs),
+	m_name_table_string_offs (dwarf5_byte_order_),
+	m_name_table_entry_offs (dwarf5_byte_order_)
+    {}
+
+  private:
+    offset_vec_tmpl<OffsetSize> m_name_table_string_offs;
+    offset_vec_tmpl<OffsetSize> m_name_table_entry_offs;
+  };
 
-/* Create an index file for OBJFILE in the directory DIR.  */
+  /* Try to reconstruct original DWARF tag for given partial_symbol.
+     This function is not DWARF-5 compliant but it is sufficient for
+     GDB as a DWARF-5 index consumer.  */
+  static int psymbol_tag (const struct partial_symbol *psym)
+  {
+    domain_enum domain = PSYMBOL_DOMAIN (psym);
+    enum address_class aclass = PSYMBOL_CLASS (psym);
 
-static void
-write_psymtabs_to_index (struct objfile *objfile, const char *dir)
-{
-  struct cleanup *cleanup;
-  char *filename;
-  struct obstack contents, addr_obstack, constant_pool, symtab_obstack;
-  struct obstack cu_list, types_cu_list;
-  int i;
-  FILE *out_file;
-  struct mapped_symtab *symtab;
-  offset_type val, size_of_contents, total_len;
-  struct stat st;
-  struct psymtab_cu_index_map *psymtab_cu_index_map;
+    switch (domain)
+      {
+      case VAR_DOMAIN:
+	switch (aclass)
+	  {
+	  case LOC_BLOCK:
+	    return DW_TAG_subprogram;
+	  case LOC_TYPEDEF:
+	    return DW_TAG_typedef;
+	  case LOC_COMPUTED:
+	  case LOC_CONST_BYTES:
+	  case LOC_OPTIMIZED_OUT:
+	  case LOC_STATIC:
+	    return DW_TAG_variable;
+	  case LOC_CONST:
+	    /* Note: It's currently impossible to recognize psyms as enum values
+	       short of reading the type info.  For now punt.  */
+	    return DW_TAG_variable;
+	  default:
+	    /* There are other LOC_FOO values that one might want to classify
+	       as variables, but dwarf2read.c doesn't currently use them.  */
+	    return DW_TAG_variable;
+	  }
+      case STRUCT_DOMAIN:
+	return DW_TAG_structure_type;
+      default:
+	return 0;
+      }
+  }
 
-  if (dwarf2_per_objfile->using_index)
-    error (_("Cannot use an index to create the index"));
+  /* Call insert for all partial symbols and mark them in PSYMS_SEEN.  */
+  void write_psymbols (std::unordered_set<partial_symbol *> &psyms_seen,
+		       struct partial_symbol **psymp, int count, int cu_index,
+		       bool is_static, unit_kind kind)
+  {
+    for (; count-- > 0; ++psymp)
+      {
+	struct partial_symbol *psym = *psymp;
 
-  if (VEC_length (dwarf2_section_info_def, dwarf2_per_objfile->types) > 1)
-    error (_("Cannot make an index when the file has multiple .debug_types sections"));
+	if (SYMBOL_LANGUAGE (psym) == language_ada)
+	  error (_("Ada is not currently supported by the index"));
 
-  if (!objfile->psymtabs || !objfile->psymtabs_addrmap)
-    return;
+	/* Only add a given psymbol once.  */
+	if (psyms_seen.insert (psym).second)
+	  insert (psym, cu_index, is_static, kind);
+      }
+  }
 
-  if (stat (objfile_name (objfile), &st) < 0)
-    perror_with_name (objfile_name (objfile));
+  /* A helper function that writes a single signatured_type
+     to a debug_names.  */
+  void
+  write_one_signatured_type (struct signatured_type *entry,
+			     struct signatured_type_index_data *info)
+  {
+    struct partial_symtab *psymtab = entry->per_cu.v.psymtab;
 
-  filename = concat (dir, SLASH_STRING, lbasename (objfile_name (objfile)),
-		     INDEX_SUFFIX, (char *) NULL);
-  cleanup = make_cleanup (xfree, filename);
+    write_psymbols (info->psyms_seen,
+		    &info->objfile->global_psymbols[psymtab->globals_offset],
+		    psymtab->n_global_syms, info->cu_index, false,
+		    unit_kind::tu);
+    write_psymbols (info->psyms_seen,
+		    &info->objfile->static_psymbols[psymtab->statics_offset],
+		    psymtab->n_static_syms, info->cu_index, true,
+		    unit_kind::tu);
 
-  out_file = gdb_fopen_cloexec (filename, "wb");
-  if (!out_file)
-    error (_("Can't open `%s' for writing"), filename);
+    info->types_list.append_uint (dwarf5_offset_size (), m_dwarf5_byte_order,
+				  to_underlying (entry->per_cu.sect_off));
+
+    ++info->cu_index;
+  }
+
+  /* Store value of each symbol.  */
+  std::unordered_map<c_str_view, std::set<symbol_value>, c_str_view_hasher>
+    m_name_to_value_set;
+
+  /* Tables of DWARF-5 .debug_names.  They are in object file byte
+     order.  */
+  std::vector<uint32_t> m_bucket_table;
+  std::vector<uint32_t> m_hash_table;
+
+  const bfd_endian m_dwarf5_byte_order;
+  dwarf_tmpl<uint32_t> m_dwarf32;
+  dwarf_tmpl<uint64_t> m_dwarf64;
+  dwarf &m_dwarf;
+  offset_vec &m_name_table_string_offs, &m_name_table_entry_offs;
+  debug_str_lookup m_debugstrlookup;
+
+  /* Map each used .debug_names abbreviation tag parameter to its
+     index value.  */
+  std::unordered_map<index_key, int, index_key_hasher> m_indexkey_to_idx;
+
+  /* Next unused .debug_names abbreviation tag for
+     m_indexkey_to_idx.  */
+  int m_idx_next = 1;
+
+  /* .debug_names abbreviation table.  */
+  data_buf m_abbrev_table;
+
+  /* .debug_names entry pool.  */
+  data_buf m_entry_pool;
+};
 
-  gdb::unlinker unlink_file (filename);
+/* Return iff any of the needed offsets does not fit into 32-bit
+   .debug_names section.  */
 
-  symtab = create_mapped_symtab ();
-  make_cleanup (cleanup_mapped_symtab, symtab);
+static bool
+check_dwarf64_offsets ()
+{
+  for (int i = 0; i < dwarf2_per_objfile->n_comp_units; ++i)
+    {
+      const dwarf2_per_cu_data &per_cu = *dwarf2_per_objfile->all_comp_units[i];
+
+      if (to_underlying (per_cu.sect_off) >= (static_cast<uint64_t> (1) << 32))
+	return true;
+    }
+  for (int i = 0; i < dwarf2_per_objfile->n_type_units; ++i)
+    {
+      const signatured_type &sigtype = *dwarf2_per_objfile->all_type_units[i];
+      const dwarf2_per_cu_data &per_cu = sigtype.per_cu;
+
+      if (to_underlying (per_cu.sect_off) >= (static_cast<uint64_t> (1) << 32))
+	return true;
+    }
+  return false;
+}
 
-  obstack_init (&addr_obstack);
-  make_cleanup_obstack_free (&addr_obstack);
+/* The psyms_seen set is potentially going to be largish (~40k
+   elements when indexing a -g3 build of GDB itself).  Estimate the
+   number of elements in order to avoid too many rehashes, which
+   require rebuilding buckets and thus many trips to
+   malloc/free.  */
+
+static size_t
+psyms_seen_size ()
+{
+  size_t psyms_count = 0;
+  for (int i = 0; i < dwarf2_per_objfile->n_comp_units; ++i)
+    {
+      struct dwarf2_per_cu_data *per_cu
+	= dwarf2_per_objfile->all_comp_units[i];
+      struct partial_symtab *psymtab = per_cu->v.psymtab;
 
-  obstack_init (&cu_list);
-  make_cleanup_obstack_free (&cu_list);
+      if (psymtab != NULL && psymtab->user == NULL)
+	recursively_count_psymbols (psymtab, psyms_count);
+    }
+  /* Generating an index for gdb itself shows a ratio of
+     TOTAL_SEEN_SYMS/UNIQUE_SYMS or ~5.  4 seems like a good bet.  */
+  return psyms_count / 4;
+}
 
-  obstack_init (&types_cu_list);
-  make_cleanup_obstack_free (&types_cu_list);
+/* Write new .gdb_index section for OBJFILE into OUT_FILE.
+   Return how many bytes were expected to be written into OUT_FILE.  */
 
-  htab_up psyms_seen (htab_create_alloc (100, htab_hash_pointer,
-					 htab_eq_pointer,
-					 NULL, xcalloc, xfree));
+static size_t
+write_gdbindex (struct objfile *objfile, FILE *out_file)
+{
+  mapped_symtab symtab;
+  data_buf cu_list;
 
   /* While we're scanning CU's create a table that maps a psymtab pointer
      (which is what addrmap records) to its index (which is what is recorded
      in the index file).  This will later be needed to write the address
      table.  */
-  htab_up cu_index_htab (htab_create_alloc (100,
-					    hash_psymtab_cu_index,
-					    eq_psymtab_cu_index,
-					    NULL, xcalloc, xfree));
-  psymtab_cu_index_map = XNEWVEC (struct psymtab_cu_index_map,
-				  dwarf2_per_objfile->n_comp_units);
-  make_cleanup (xfree, psymtab_cu_index_map);
+  psym_index_map cu_index_htab;
+  cu_index_htab.reserve (dwarf2_per_objfile->n_comp_units);
 
   /* The CU list is already sorted, so we don't need to do additional
      work here.  Also, the debug_types entries do not appear in
      all_comp_units, but only in their own hash table.  */
-  for (i = 0; i < dwarf2_per_objfile->n_comp_units; ++i)
+
+  std::unordered_set<partial_symbol *> psyms_seen (psyms_seen_size ());
+  for (int i = 0; i < dwarf2_per_objfile->n_comp_units; ++i)
     {
       struct dwarf2_per_cu_data *per_cu
 	= dwarf2_per_objfile->all_comp_units[i];
       struct partial_symtab *psymtab = per_cu->v.psymtab;
-      gdb_byte val[8];
-      struct psymtab_cu_index_map *map;
-      void **slot;
 
       /* CU of a shared file from 'dwz -m' may be unused by this main file.
 	 It may be referenced from a local scope but in such case it does not
@@ -23983,36 +26709,30 @@ write_psymtabs_to_index (struct objfile 
 	continue;
 
       if (psymtab->user == NULL)
-	recursively_write_psymbols (objfile, psymtab, symtab,
-				    psyms_seen.get (), i);
+	recursively_write_psymbols (objfile, psymtab, &symtab,
+				    psyms_seen, i);
 
-      map = &psymtab_cu_index_map[i];
-      map->psymtab = psymtab;
-      map->cu_index = i;
-      slot = htab_find_slot (cu_index_htab.get (), map, INSERT);
-      gdb_assert (slot != NULL);
-      gdb_assert (*slot == NULL);
-      *slot = map;
+      const auto insertpair = cu_index_htab.emplace (psymtab, i);
+      gdb_assert (insertpair.second);
 
-      store_unsigned_integer (val, 8, BFD_ENDIAN_LITTLE,
-			      to_underlying (per_cu->sect_off));
-      obstack_grow (&cu_list, val, 8);
-      store_unsigned_integer (val, 8, BFD_ENDIAN_LITTLE, per_cu->length);
-      obstack_grow (&cu_list, val, 8);
+      cu_list.append_uint (8, BFD_ENDIAN_LITTLE,
+			   to_underlying (per_cu->sect_off));
+      cu_list.append_uint (8, BFD_ENDIAN_LITTLE, per_cu->length);
     }
 
   /* Dump the address map.  */
-  write_address_map (objfile, &addr_obstack, cu_index_htab.get ());
+  data_buf addr_vec;
+  write_address_map (objfile, addr_vec, cu_index_htab);
 
   /* Write out the .debug_type entries, if any.  */
+  data_buf types_cu_list;
   if (dwarf2_per_objfile->signatured_types)
     {
-      struct signatured_type_index_data sig_data;
+      signatured_type_index_data sig_data (types_cu_list,
+					   psyms_seen);
 
       sig_data.objfile = objfile;
-      sig_data.symtab = symtab;
-      sig_data.types_list = &types_cu_list;
-      sig_data.psyms_seen = psyms_seen.get ();
+      sig_data.symtab = &symtab;
       sig_data.cu_index = dwarf2_per_objfile->n_comp_units;
       htab_traverse_noresize (dwarf2_per_objfile->signatured_types,
 			      write_one_signatured_type, &sig_data);
@@ -24020,77 +26740,278 @@ write_psymtabs_to_index (struct objfile 
 
   /* Now that we've processed all symbols we can shrink their cu_indices
      lists.  */
-  uniquify_cu_indices (symtab);
+  uniquify_cu_indices (&symtab);
 
-  obstack_init (&constant_pool);
-  make_cleanup_obstack_free (&constant_pool);
-  obstack_init (&symtab_obstack);
-  make_cleanup_obstack_free (&symtab_obstack);
-  write_hash_table (symtab, &symtab_obstack, &constant_pool);
-
-  obstack_init (&contents);
-  make_cleanup_obstack_free (&contents);
-  size_of_contents = 6 * sizeof (offset_type);
-  total_len = size_of_contents;
+  data_buf symtab_vec, constant_pool;
+  write_hash_table (&symtab, symtab_vec, constant_pool);
+
+  data_buf contents;
+  const offset_type size_of_contents = 6 * sizeof (offset_type);
+  offset_type total_len = size_of_contents;
 
   /* The version number.  */
-  val = MAYBE_SWAP (8);
-  obstack_grow (&contents, &val, sizeof (val));
+  contents.append_data (MAYBE_SWAP (8));
 
   /* The offset of the CU list from the start of the file.  */
-  val = MAYBE_SWAP (total_len);
-  obstack_grow (&contents, &val, sizeof (val));
-  total_len += obstack_object_size (&cu_list);
+  contents.append_data (MAYBE_SWAP (total_len));
+  total_len += cu_list.size ();
 
   /* The offset of the types CU list from the start of the file.  */
-  val = MAYBE_SWAP (total_len);
-  obstack_grow (&contents, &val, sizeof (val));
-  total_len += obstack_object_size (&types_cu_list);
+  contents.append_data (MAYBE_SWAP (total_len));
+  total_len += types_cu_list.size ();
 
   /* The offset of the address table from the start of the file.  */
-  val = MAYBE_SWAP (total_len);
-  obstack_grow (&contents, &val, sizeof (val));
-  total_len += obstack_object_size (&addr_obstack);
+  contents.append_data (MAYBE_SWAP (total_len));
+  total_len += addr_vec.size ();
 
   /* The offset of the symbol table from the start of the file.  */
-  val = MAYBE_SWAP (total_len);
-  obstack_grow (&contents, &val, sizeof (val));
-  total_len += obstack_object_size (&symtab_obstack);
+  contents.append_data (MAYBE_SWAP (total_len));
+  total_len += symtab_vec.size ();
 
   /* The offset of the constant pool from the start of the file.  */
-  val = MAYBE_SWAP (total_len);
-  obstack_grow (&contents, &val, sizeof (val));
-  total_len += obstack_object_size (&constant_pool);
-
-  gdb_assert (obstack_object_size (&contents) == size_of_contents);
-
-  write_obstack (out_file, &contents);
-  write_obstack (out_file, &cu_list);
-  write_obstack (out_file, &types_cu_list);
-  write_obstack (out_file, &addr_obstack);
-  write_obstack (out_file, &symtab_obstack);
-  write_obstack (out_file, &constant_pool);
+  contents.append_data (MAYBE_SWAP (total_len));
+  total_len += constant_pool.size ();
+
+  gdb_assert (contents.size () == size_of_contents);
+
+  contents.file_write (out_file);
+  cu_list.file_write (out_file);
+  types_cu_list.file_write (out_file);
+  addr_vec.file_write (out_file);
+  symtab_vec.file_write (out_file);
+  constant_pool.file_write (out_file);
+
+  return total_len;
+}
+
+/* DWARF-5 augmentation string for GDB's DW_IDX_GNU_* extension.  */
+static const gdb_byte dwarf5_gdb_augmentation[] = { 'G', 'D', 'B', 0 };
+
+/* Write a new .debug_names section for OBJFILE into OUT_FILE, write
+   needed addition to .debug_str section to OUT_FILE_STR.  Return how
+   many bytes were expected to be written into OUT_FILE.  */
+
+static size_t
+write_debug_names (struct objfile *objfile, FILE *out_file, FILE *out_file_str)
+{
+  const bool dwarf5_is_dwarf64 = check_dwarf64_offsets ();
+  const enum bfd_endian dwarf5_byte_order
+    = gdbarch_byte_order (get_objfile_arch (objfile));
+
+  /* The CU list is already sorted, so we don't need to do additional
+     work here.  Also, the debug_types entries do not appear in
+     all_comp_units, but only in their own hash table.  */
+  data_buf cu_list;
+  debug_names nametable (dwarf5_is_dwarf64, dwarf5_byte_order);
+  std::unordered_set<partial_symbol *> psyms_seen (psyms_seen_size ());
+  for (int i = 0; i < dwarf2_per_objfile->n_comp_units; ++i)
+    {
+      const dwarf2_per_cu_data *per_cu = dwarf2_per_objfile->all_comp_units[i];
+      partial_symtab *psymtab = per_cu->v.psymtab;
+
+      /* CU of a shared file from 'dwz -m' may be unused by this main
+	 file.  It may be referenced from a local scope but in such
+	 case it does not need to be present in .debug_names.  */
+      if (psymtab == NULL)
+	continue;
+
+      if (psymtab->user == NULL)
+	nametable.recursively_write_psymbols (objfile, psymtab, psyms_seen, i);
+
+      cu_list.append_uint (nametable.dwarf5_offset_size (), dwarf5_byte_order,
+			   to_underlying (per_cu->sect_off));
+    }
+
+  /* Write out the .debug_type entries, if any.  */
+  data_buf types_cu_list;
+  if (dwarf2_per_objfile->signatured_types)
+    {
+      debug_names::write_one_signatured_type_data sig_data (nametable,
+			signatured_type_index_data (types_cu_list, psyms_seen));
+
+      sig_data.info.objfile = objfile;
+      /* It is used only for gdb_index.  */
+      sig_data.info.symtab = nullptr;
+      sig_data.info.cu_index = 0;
+      htab_traverse_noresize (dwarf2_per_objfile->signatured_types,
+			      debug_names::write_one_signatured_type,
+			      &sig_data);
+    }
+
+  nametable.build ();
+
+  /* No addr_vec - DWARF-5 uses .debug_aranges generated by GCC.  */
+
+  const offset_type bytes_of_header
+    = ((dwarf5_is_dwarf64 ? 12 : 4)
+       + 2 + 2 + 7 * 4
+       + sizeof (dwarf5_gdb_augmentation));
+  size_t expected_bytes = 0;
+  expected_bytes += bytes_of_header;
+  expected_bytes += cu_list.size ();
+  expected_bytes += types_cu_list.size ();
+  expected_bytes += nametable.bytes ();
+  data_buf header;
+
+  if (!dwarf5_is_dwarf64)
+    {
+      const uint64_t size64 = expected_bytes - 4;
+      gdb_assert (size64 < 0xfffffff0);
+      header.append_uint (4, dwarf5_byte_order, size64);
+    }
+  else
+    {
+      header.append_uint (4, dwarf5_byte_order, 0xffffffff);
+      header.append_uint (8, dwarf5_byte_order, expected_bytes - 12);
+    }
+
+  /* The version number.  */
+  header.append_uint (2, dwarf5_byte_order, 5);
+
+  /* Padding.  */
+  header.append_uint (2, dwarf5_byte_order, 0);
+
+  /* comp_unit_count - The number of CUs in the CU list.  */
+  header.append_uint (4, dwarf5_byte_order, dwarf2_per_objfile->n_comp_units);
+
+  /* local_type_unit_count - The number of TUs in the local TU
+     list.  */
+  header.append_uint (4, dwarf5_byte_order, dwarf2_per_objfile->n_type_units);
+
+  /* foreign_type_unit_count - The number of TUs in the foreign TU
+     list.  */
+  header.append_uint (4, dwarf5_byte_order, 0);
+
+  /* bucket_count - The number of hash buckets in the hash lookup
+     table.  */
+  header.append_uint (4, dwarf5_byte_order, nametable.bucket_count ());
+
+  /* name_count - The number of unique names in the index.  */
+  header.append_uint (4, dwarf5_byte_order, nametable.name_count ());
+
+  /* abbrev_table_size - The size in bytes of the abbreviations
+     table.  */
+  header.append_uint (4, dwarf5_byte_order, nametable.abbrev_table_bytes ());
+
+  /* augmentation_string_size - The size in bytes of the augmentation
+     string.  This value is rounded up to a multiple of 4.  */
+  static_assert (sizeof (dwarf5_gdb_augmentation) % 4 == 0, "");
+  header.append_uint (4, dwarf5_byte_order, sizeof (dwarf5_gdb_augmentation));
+  header.append_data (dwarf5_gdb_augmentation);
+
+  gdb_assert (header.size () == bytes_of_header);
+
+  header.file_write (out_file);
+  cu_list.file_write (out_file);
+  types_cu_list.file_write (out_file);
+  nametable.file_write (out_file, out_file_str);
+
+  return expected_bytes;
+}
+
+/* Assert that FILE's size is EXPECTED_SIZE.  Assumes file's seek
+   position is at the end of the file.  */
+
+static void
+assert_file_size (FILE *file, const char *filename, size_t expected_size)
+{
+  const auto file_size = ftell (file);
+  if (file_size == -1)
+    error (_("Can't get `%s' size"), filename);
+  gdb_assert (file_size == expected_size);
+}
 
-  fclose (out_file);
+/* Create an index file for OBJFILE in the directory DIR.  */
+
+static void
+write_psymtabs_to_index (struct objfile *objfile, const char *dir,
+			 dw_index_kind index_kind)
+{
+  if (dwarf2_per_objfile->using_index)
+    error (_("Cannot use an index to create the index"));
+
+  if (VEC_length (dwarf2_section_info_def, dwarf2_per_objfile->types) > 1)
+    error (_("Cannot make an index when the file has multiple .debug_types sections"));
+
+  if (!objfile->psymtabs || !objfile->psymtabs_addrmap)
+    return;
+
+  struct stat st;
+  if (stat (objfile_name (objfile), &st) < 0)
+    perror_with_name (objfile_name (objfile));
+
+  std::string filename (std::string (dir) + SLASH_STRING
+			+ lbasename (objfile_name (objfile))
+			+ (index_kind == dw_index_kind::DEBUG_NAMES
+			   ? INDEX5_SUFFIX : INDEX4_SUFFIX));
+
+  FILE *out_file = gdb_fopen_cloexec (filename.c_str (), "wb").release ();
+  if (!out_file)
+    error (_("Can't open `%s' for writing"), filename.c_str ());
+
+  /* Order matters here; we want FILE to be closed before FILENAME is
+     unlinked, because on MS-Windows one cannot delete a file that is
+     still open.  (Don't call anything here that might throw until
+     file_closer is created.)  */
+  gdb::unlinker unlink_file (filename.c_str ());
+  gdb_file_up close_out_file (out_file);
+
+  if (index_kind == dw_index_kind::DEBUG_NAMES)
+    {
+      std::string filename_str (std::string (dir) + SLASH_STRING
+				+ lbasename (objfile_name (objfile))
+				+ DEBUG_STR_SUFFIX);
+      FILE *out_file_str
+	= gdb_fopen_cloexec (filename_str.c_str (), "wb").release ();
+      if (!out_file_str)
+	error (_("Can't open `%s' for writing"), filename_str.c_str ());
+      gdb::unlinker unlink_file_str (filename_str.c_str ());
+      gdb_file_up close_out_file_str (out_file_str);
+
+      const size_t total_len
+	= write_debug_names (objfile, out_file, out_file_str);
+      assert_file_size (out_file, filename.c_str (), total_len);
+
+      /* We want to keep the file .debug_str file too.  */
+      unlink_file_str.keep ();
+    }
+  else
+    {
+      const size_t total_len
+	= write_gdbindex (objfile, out_file);
+      assert_file_size (out_file, filename.c_str (), total_len);
+    }
 
   /* We want to keep the file.  */
   unlink_file.keep ();
-
-  do_cleanups (cleanup);
 }
 
 /* Implementation of the `save gdb-index' command.
    
-   Note that the file format used by this command is documented in the
-   GDB manual.  Any changes here must be documented there.  */
+   Note that the .gdb_index file format used by this command is
+   documented in the GDB manual.  Any changes here must be documented
+   there.  */
 
 static void
-save_gdb_index_command (char *arg, int from_tty)
+save_gdb_index_command (const char *arg, int from_tty)
 {
   struct objfile *objfile;
+  const char dwarf5space[] = "-dwarf-5 ";
+  dw_index_kind index_kind = dw_index_kind::GDB_INDEX;
+
+  if (!arg)
+    arg = "";
+
+  arg = skip_spaces (arg);
+  if (strncmp (arg, dwarf5space, strlen (dwarf5space)) == 0)
+    {
+      index_kind = dw_index_kind::DEBUG_NAMES;
+      arg += strlen (dwarf5space);
+      arg = skip_spaces (arg);
+    }
 
-  if (!arg || !*arg)
-    error (_("usage: save gdb-index DIRECTORY"));
+  if (!*arg)
+    error (_("usage: save gdb-index [-dwarf-5] DIRECTORY"));
 
   ALL_OBJFILES (objfile)
   {
@@ -24108,7 +27029,7 @@ save_gdb_index_command (char *arg, int f
 
 	TRY
 	  {
-	    write_psymtabs_to_index (objfile, arg);
+	    write_psymtabs_to_index (objfile, arg, index_kind);
 	  }
 	CATCH (except, RETURN_MASK_ERROR)
 	  {
@@ -24144,8 +27065,6 @@ show_check_physname (struct ui_file *fil
 		    value);
 }
 
-void _initialize_dwarf2_read (void);
-
 void
 _initialize_dwarf2_read (void)
 {
@@ -24242,7 +27161,11 @@ Warning: This option must be enabled bef
   c = add_cmd ("gdb-index", class_files, save_gdb_index_command,
 	       _("\
 Save a gdb-index file.\n\
-Usage: save gdb-index DIRECTORY"),
+Usage: save gdb-index [-dwarf-5] DIRECTORY\n\
+\n\
+No options create one file with .gdb-index extension for pre-DWARF-5\n\
+compatible .gdb_index section.  With -dwarf-5 creates two files with\n\
+extension .debug_names and .debug_str for DWARF-5 .debug_names section."),
 	       &save_cmdlist);
   set_cmd_completer (c, filename_completer);
 
@@ -24255,4 +27178,9 @@ Usage: save gdb-index DIRECTORY"),
 					&dwarf2_block_frame_base_locexpr_funcs);
   dwarf2_loclist_block_index = register_symbol_block_impl (LOC_BLOCK,
 					&dwarf2_block_frame_base_loclist_funcs);
+
+#if GDB_SELF_TEST
+  selftests::register_test ("dw2_expand_symtabs_matching",
+			    selftests::dw2_expand_symtabs_matching::run_test);
+#endif
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/elfread.c ./gdb/elfread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/elfread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/elfread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Read ELF (Executable and Linking Format) object files for GDB.
 
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
    Written by Fred Fish at Cygnus Support.
 
@@ -48,10 +48,9 @@
 #include "location.h"
 #include "auxv.h"
 
-extern void _initialize_elfread (void);
-
 /* Forward declarations.  */
 extern const struct sym_fns elf_sym_fns_gdb_index;
+extern const struct sym_fns elf_sym_fns_debug_names;
 extern const struct sym_fns elf_sym_fns_lazy_psyms;
 
 /* The struct elfinfo is available only during ELF symbol table and
@@ -239,7 +238,6 @@ elf_symtab_read (minimal_symbol_reader &
   /* Name of the last file symbol.  This is either a constant string or is
      saved on the objfile's filename cache.  */
   const char *filesymname = "";
-  struct dbx_symfile_info *dbx = DBX_SYMFILE_INFO (objfile);
   int stripped = (bfd_get_symcount (objfile->obfd) == 0);
   int elf_make_msymbol_special_p
     = gdbarch_elf_make_msymbol_special_p (gdbarch);
@@ -540,9 +538,6 @@ elf_rel_plt_read (minimal_symbol_reader 
   asection *plt, *relplt, *got_plt;
   int plt_elf_idx;
   bfd_size_type reloc_count, reloc;
-  char *string_buffer = NULL;
-  size_t string_buffer_size = 0;
-  struct cleanup *back_to;
   struct gdbarch *gdbarch = get_objfile_arch (objfile);
   struct type *ptr_type = builtin_type (gdbarch)->builtin_data_ptr;
   size_t ptr_size = TYPE_LENGTH (ptr_type);
@@ -576,7 +571,7 @@ elf_rel_plt_read (minimal_symbol_reader 
   if (! bed->s->slurp_reloc_table (obfd, relplt, dyn_symbol_table, TRUE))
     return;
 
-  back_to = make_cleanup (free_current_contents, &string_buffer);
+  std::string string_buffer;
 
   reloc_count = relplt->size / elf_section_data (relplt)->this_hdr.sh_entsize;
   for (reloc = 0; reloc < reloc_count; reloc++)
@@ -584,11 +579,10 @@ elf_rel_plt_read (minimal_symbol_reader 
       const char *name;
       struct minimal_symbol *msym;
       CORE_ADDR address;
+      const char *got_suffix = SYMBOL_GOT_PLT_SUFFIX;
       const size_t got_suffix_len = strlen (SYMBOL_GOT_PLT_SUFFIX);
-      size_t name_len;
 
       name = bfd_asymbol_name (*relplt->relocation[reloc].sym_ptr_ptr);
-      name_len = strlen (name);
       address = relplt->relocation[reloc].address;
 
       /* Does the pointer reside in the .got.plt section?  */
@@ -601,24 +595,16 @@ elf_rel_plt_read (minimal_symbol_reader 
 	 OBJFILE the symbol is undefined and the objfile having NAME defined
 	 may not yet have been loaded.  */
 
-      if (string_buffer_size < name_len + got_suffix_len + 1)
-	{
-	  string_buffer_size = 2 * (name_len + got_suffix_len);
-	  string_buffer = (char *) xrealloc (string_buffer, string_buffer_size);
-	}
-      memcpy (string_buffer, name, name_len);
-      memcpy (&string_buffer[name_len], SYMBOL_GOT_PLT_SUFFIX,
-	      got_suffix_len + 1);
+      string_buffer.assign (name);
+      string_buffer.append (got_suffix, got_suffix + got_suffix_len);
 
-      msym = record_minimal_symbol (reader, string_buffer,
-				    name_len + got_suffix_len,
+      msym = record_minimal_symbol (reader, string_buffer.c_str (),
+				    string_buffer.size (),
                                     true, address, mst_slot_got_plt, got_plt,
 				    objfile);
       if (msym)
 	SET_MSYMBOL_SIZE (msym, ptr_size);
     }
-
-  do_cleanups (back_to);
 }
 
 /* The data pointer is htab_t for gnu_ifunc_record_cache_unchecked.  */
@@ -889,7 +875,7 @@ elf_gnu_ifunc_resolve_addr (struct gdbar
   target_auxv_search (&current_target, AT_HWCAP, &hwcap);
   hwcap_val = value_from_longest (builtin_type (gdbarch)
 				  ->builtin_unsigned_long, hwcap);
-  address_val = call_function_by_hand (function, 1, &hwcap_val);
+  address_val = call_function_by_hand (function, NULL, 1, &hwcap_val);
   address = value_as_address (address_val);
   address = gdbarch_convert_from_func_ptr_addr (gdbarch, address,
 						&current_target);
@@ -929,19 +915,18 @@ elf_gnu_ifunc_resolver_stop (struct brea
 
   if (b_return == b)
     {
-      struct symtab_and_line sal;
-
       /* No need to call find_pc_line for symbols resolving as this is only
 	 a helper breakpointer never shown to the user.  */
 
-      init_sal (&sal);
+      symtab_and_line sal;
       sal.pspace = current_inferior ()->pspace;
       sal.pc = prev_pc;
       sal.section = find_pc_overlay (sal.pc);
       sal.explicit_pc = 1;
-      b_return = set_momentary_breakpoint (get_frame_arch (prev_frame), sal,
-					   prev_frame_id,
-					   bp_gnu_ifunc_resolver_return);
+      b_return
+	= set_momentary_breakpoint (get_frame_arch (prev_frame), sal,
+				    prev_frame_id,
+				    bp_gnu_ifunc_resolver_return).release ();
 
       /* set_momentary_breakpoint invalidates PREV_FRAME.  */
       prev_frame = NULL;
@@ -965,8 +950,6 @@ elf_gnu_ifunc_resolver_return_stop (stru
   struct value *func_func;
   struct value *value;
   CORE_ADDR resolved_address, resolved_pc;
-  struct symtab_and_line sal;
-  struct symtabs_and_lines sals, sals_end;
 
   gdb_assert (b->type == bp_gnu_ifunc_resolver_return);
 
@@ -1009,13 +992,9 @@ elf_gnu_ifunc_resolver_return_stop (stru
   elf_gnu_ifunc_record_cache (event_location_to_string (b->location.get ()),
 			      resolved_pc);
 
-  sal = find_pc_line (resolved_pc, 0);
-  sals.nelts = 1;
-  sals.sals = &sal;
-  sals_end.nelts = 0;
-
   b->type = bp_breakpoint;
-  update_breakpoint_locations (b, current_program_space, sals, sals_end);
+  update_breakpoint_locations (b, current_program_space,
+			       find_pc_line (resolved_pc, 0), {});
 }
 
 /* A helper function for elf_symfile_read that reads the minimal
@@ -1144,6 +1123,9 @@ elf_read_minimal_symbols (struct objfile
 	synth_symbol_table[i] = synthsyms + i;
       elf_symtab_read (reader, objfile, ST_SYNTHETIC, synthcount,
 		       synth_symbol_table.get (), true);
+
+      xfree (synthsyms);
+      synthsyms = NULL;
     }
 
   /* Install any minimal symbols that have been collected as the current
@@ -1189,7 +1171,8 @@ elf_symfile_read (struct objfile *objfil
   struct elfinfo ei;
 
   memset ((char *) &ei, 0, sizeof (ei));
-  bfd_map_over_sections (abfd, elf_locate_sections, (void *) & ei);
+  if (!(objfile->flags & OBJF_READNEVER))
+    bfd_map_over_sections (abfd, elf_locate_sections, (void *) & ei);
 
   elf_read_minimal_symbols (objfile, symfile_flags, &ei);
 
@@ -1233,13 +1216,24 @@ elf_symfile_read (struct objfile *objfil
 
   if (dwarf2_has_info (objfile, NULL))
     {
-      /* elf_sym_fns_gdb_index cannot handle simultaneous non-DWARF debug
-	 information present in OBJFILE.  If there is such debug info present
-	 never use .gdb_index.  */
+      dw_index_kind index_kind;
 
+      /* elf_sym_fns_gdb_index cannot handle simultaneous non-DWARF
+	 debug information present in OBJFILE.  If there is such debug
+	 info present never use an index.  */
       if (!objfile_has_partial_symbols (objfile)
-	  && dwarf2_initialize_objfile (objfile))
-	objfile_set_sym_fns (objfile, &elf_sym_fns_gdb_index);
+	  && dwarf2_initialize_objfile (objfile, &index_kind))
+	{
+	  switch (index_kind)
+	    {
+	    case dw_index_kind::GDB_INDEX:
+	      objfile_set_sym_fns (objfile, &elf_sym_fns_gdb_index);
+	      break;
+	    case dw_index_kind::DEBUG_NAMES:
+	      objfile_set_sym_fns (objfile, &elf_sym_fns_debug_names);
+	      break;
+	    }
+	}
       else
 	{
 	  /* It is ok to do this even if the stabs reader made some
@@ -1328,35 +1322,27 @@ elf_symfile_init (struct objfile *objfil
 
 /* Implementation of `sym_get_probes', as documented in symfile.h.  */
 
-static VEC (probe_p) *
+static const std::vector<probe *> &
 elf_get_probes (struct objfile *objfile)
 {
-  VEC (probe_p) *probes_per_bfd;
+  std::vector<probe *> *probes_per_bfd;
 
   /* Have we parsed this objfile's probes already?  */
-  probes_per_bfd = (VEC (probe_p) *) bfd_data (objfile->obfd, probe_key);
+  probes_per_bfd = (std::vector<probe *> *) bfd_data (objfile->obfd, probe_key);
 
-  if (!probes_per_bfd)
+  if (probes_per_bfd == NULL)
     {
-      int ix;
-      const struct probe_ops *probe_ops;
+      probes_per_bfd = new std::vector<probe *>;
 
       /* Here we try to gather information about all types of probes from the
 	 objfile.  */
-      for (ix = 0; VEC_iterate (probe_ops_cp, all_probe_ops, ix, probe_ops);
-	   ix++)
-	probe_ops->get_probes (&probes_per_bfd, objfile);
-
-      if (probes_per_bfd == NULL)
-	{
-	  VEC_reserve (probe_p, probes_per_bfd, 1);
-	  gdb_assert (probes_per_bfd != NULL);
-	}
+      for (const static_probe_ops *ops : all_static_probe_ops)
+	ops->get_probes (probes_per_bfd, objfile);
 
       set_bfd_data (objfile->obfd, probe_key, probes_per_bfd);
     }
 
-  return probes_per_bfd;
+  return *probes_per_bfd;
 }
 
 /* Helper function used to free the space allocated for storing SystemTap
@@ -1365,14 +1351,12 @@ elf_get_probes (struct objfile *objfile)
 static void
 probe_key_free (bfd *abfd, void *d)
 {
-  int ix;
-  VEC (probe_p) *probes = (VEC (probe_p) *) d;
-  struct probe *probe;
+  std::vector<probe *> *probes = (std::vector<probe *> *) d;
 
-  for (ix = 0; VEC_iterate (probe_p, probes, ix, probe); ix++)
-    probe->pops->destroy (probe);
+  for (probe *p : *probes)
+    delete p;
 
-  VEC_free (probe_p, probes);
+  delete probes;
 }
 
 
@@ -1436,6 +1420,23 @@ const struct sym_fns elf_sym_fns_gdb_ind
   &dwarf2_gdb_index_functions
 };
 
+/* The same as elf_sym_fns, but not registered and uses the
+   DWARF-specific .debug_names index rather than psymtab.  */
+const struct sym_fns elf_sym_fns_debug_names =
+{
+  elf_new_init,			/* init anything gbl to entire symab */
+  elf_symfile_init,		/* read initial info, setup for sym_red() */
+  elf_symfile_read,		/* read a symbol file into symtab */
+  NULL,				/* sym_read_psymbols */
+  elf_symfile_finish,		/* finished with file, cleanup */
+  default_symfile_offsets,	/* Translate ext. to int. relocatin */
+  elf_symfile_segments,		/* Get segment information from a file.  */
+  NULL,
+  default_symfile_relocate,	/* Relocate a debug section.  */
+  &elf_probe_fns,		/* sym_probe_fns */
+  &dwarf2_debug_names_functions
+};
+
 /* STT_GNU_IFUNC resolver vector to be installed to gnu_ifunc_fns_p.  */
 
 static const struct gnu_ifunc_fns elf_gnu_ifunc_fns =
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/eval.c ./gdb/eval.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/eval.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/eval.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Evaluate expressions for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -39,6 +39,7 @@
 #include "valprint.h"
 #include "gdb_obstack.h"
 #include "objfiles.h"
+#include "typeprint.h"
 #include <ctype.h>
 
 /* This is defined in valops.c */
@@ -52,6 +53,10 @@ static struct value *evaluate_subexp_for
 static struct value *evaluate_subexp_for_address (struct expression *,
 						  int *, enum noside);
 
+static value *evaluate_subexp_for_cast (expression *exp, int *pos,
+					enum noside noside,
+					struct type *type);
+
 static struct value *evaluate_struct_tuple (struct value *,
 					    struct expression *, int *,
 					    enum noside, int);
@@ -637,18 +642,37 @@ ptrmath_type_p (const struct language_de
     }
 }
 
-/* Constructs a fake method with the given parameter types.
-   This function is used by the parser to construct an "expected"
-   type for method overload resolution.  */
+/* Represents a fake method with the given parameter types.  This is
+   used by the parser to construct a temporary "expected" type for
+   method overload resolution.  FLAGS is used as instance flags of the
+   new type, in order to be able to make the new type represent a
+   const/volatile overload.  */
 
-static struct type *
-make_params (int num_types, struct type **param_types)
+class fake_method
 {
-  struct type *type = XCNEW (struct type);
-  TYPE_MAIN_TYPE (type) = XCNEW (struct main_type);
+public:
+  fake_method (type_instance_flags flags,
+	       int num_types, struct type **param_types);
+  ~fake_method ();
+
+  /* The constructed type.  */
+  struct type *type () { return &m_type; }
+
+private:
+  struct type m_type {};
+  main_type m_main_type {};
+};
+
+fake_method::fake_method (type_instance_flags flags,
+			  int num_types, struct type **param_types)
+{
+  struct type *type = &m_type;
+
+  TYPE_MAIN_TYPE (type) = &m_main_type;
   TYPE_LENGTH (type) = 1;
   TYPE_CODE (type) = TYPE_CODE_METHOD;
   TYPE_CHAIN (type) = type;
+  TYPE_INSTANCE_FLAGS (type) = flags;
   if (num_types > 0)
     {
       if (param_types[num_types - 1] == NULL)
@@ -672,8 +696,544 @@ make_params (int num_types, struct type 
 
   while (num_types-- > 0)
     TYPE_FIELD_TYPE (type, num_types) = param_types[num_types];
+}
+
+fake_method::~fake_method ()
+{
+  xfree (TYPE_FIELDS (&m_type));
+}
+
+/* Helper for evaluating an OP_VAR_VALUE.  */
+
+value *
+evaluate_var_value (enum noside noside, const block *blk, symbol *var)
+{
+  /* JYG: We used to just return value_zero of the symbol type if
+     we're asked to avoid side effects.  Otherwise we return
+     value_of_variable (...).  However I'm not sure if
+     value_of_variable () has any side effect.  We need a full value
+     object returned here for whatis_exp () to call evaluate_type ()
+     and then pass the full value to value_rtti_target_type () if we
+     are dealing with a pointer or reference to a base class and print
+     object is on.  */
+
+  struct value *ret = NULL;
+
+  TRY
+    {
+      ret = value_of_variable (var, blk);
+    }
+
+  CATCH (except, RETURN_MASK_ERROR)
+    {
+      if (noside != EVAL_AVOID_SIDE_EFFECTS)
+	throw_exception (except);
+
+      ret = value_zero (SYMBOL_TYPE (var), not_lval);
+    }
+  END_CATCH
+
+  return ret;
+}
+
+/* Helper for evaluating an OP_VAR_MSYM_VALUE.  */
+
+value *
+evaluate_var_msym_value (enum noside noside,
+			 struct objfile *objfile, minimal_symbol *msymbol)
+{
+  if (noside == EVAL_AVOID_SIDE_EFFECTS)
+    {
+      type *the_type = find_minsym_type_and_address (msymbol, objfile, NULL);
+      return value_zero (the_type, not_lval);
+    }
+  else
+    {
+      CORE_ADDR address;
+      type *the_type = find_minsym_type_and_address (msymbol, objfile, &address);
+      return value_at_lazy (the_type, address);
+    }
+}
 
-  return type;
+/* Helper for returning a value when handling EVAL_SKIP.  */
+
+value *
+eval_skip_value (expression *exp)
+{
+  return value_from_longest (builtin_type (exp->gdbarch)->builtin_int, 1);
+}
+
+/* Evaluate a function call.  The function to be called is in
+   ARGVEC[0] and the arguments passed to the function are in
+   ARGVEC[1..NARGS].  FUNCTION_NAME is the name of the function, if
+   known.  DEFAULT_RETURN_TYPE is used as the function's return type
+   if the return type is unknown.  */
+
+static value *
+eval_call (expression *exp, enum noside noside,
+	   int nargs, value **argvec,
+	   const char *function_name,
+	   type *default_return_type)
+{
+  if (argvec[0] == NULL)
+    error (_("Cannot evaluate function -- may be inlined"));
+  if (noside == EVAL_AVOID_SIDE_EFFECTS)
+    {
+      /* If the return type doesn't look like a function type,
+	 call an error.  This can happen if somebody tries to turn
+	 a variable into a function call.  */
+
+      type *ftype = value_type (argvec[0]);
+
+      if (TYPE_CODE (ftype) == TYPE_CODE_INTERNAL_FUNCTION)
+	{
+	  /* We don't know anything about what the internal
+	     function might return, but we have to return
+	     something.  */
+	  return value_zero (builtin_type (exp->gdbarch)->builtin_int,
+			     not_lval);
+	}
+      else if (TYPE_CODE (ftype) == TYPE_CODE_XMETHOD)
+	{
+	  type *return_type
+	    = result_type_of_xmethod (argvec[0], nargs, argvec + 1);
+
+	  if (return_type == NULL)
+	    error (_("Xmethod is missing return type."));
+	  return value_zero (return_type, not_lval);
+	}
+      else if (TYPE_CODE (ftype) == TYPE_CODE_FUNC
+	       || TYPE_CODE (ftype) == TYPE_CODE_METHOD)
+	{
+	  type *return_type = TYPE_TARGET_TYPE (ftype);
+
+	  if (return_type == NULL)
+	    return_type = default_return_type;
+
+	  if (return_type == NULL)
+	    error_call_unknown_return_type (function_name);
+
+	  return allocate_value (return_type);
+	}
+      else
+	error (_("Expression of type other than "
+		 "\"Function returning ...\" used as function"));
+    }
+  switch (TYPE_CODE (value_type (argvec[0])))
+    {
+    case TYPE_CODE_INTERNAL_FUNCTION:
+      return call_internal_function (exp->gdbarch, exp->language_defn,
+				     argvec[0], nargs, argvec + 1);
+    case TYPE_CODE_XMETHOD:
+      return call_xmethod (argvec[0], nargs, argvec + 1);
+    default:
+      return call_function_by_hand (argvec[0], default_return_type,
+				    nargs, argvec + 1);
+    }
+}
+
+/* Helper for evaluating an OP_FUNCALL.  */
+
+static value *
+evaluate_funcall (type *expect_type, expression *exp, int *pos,
+		  enum noside noside)
+{
+  int tem;
+  int pc2 = 0;
+  value *arg1 = NULL;
+  value *arg2 = NULL;
+  int save_pos1;
+  symbol *function = NULL;
+  char *function_name = NULL;
+  const char *var_func_name = NULL;
+
+  int pc = (*pos);
+  (*pos) += 2;
+
+  exp_opcode op = exp->elts[*pos].opcode;
+  int nargs = longest_to_int (exp->elts[pc].longconst);
+  /* Allocate arg vector, including space for the function to be
+     called in argvec[0], a potential `this', and a terminating
+     NULL.  */
+  value **argvec = (value **) alloca (sizeof (value *) * (nargs + 3));
+  if (op == STRUCTOP_MEMBER || op == STRUCTOP_MPTR)
+    {
+      /* First, evaluate the structure into arg2.  */
+      pc2 = (*pos)++;
+
+      if (op == STRUCTOP_MEMBER)
+	{
+	  arg2 = evaluate_subexp_for_address (exp, pos, noside);
+	}
+      else
+	{
+	  arg2 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
+	}
+
+      /* If the function is a virtual function, then the aggregate
+	 value (providing the structure) plays its part by providing
+	 the vtable.  Otherwise, it is just along for the ride: call
+	 the function directly.  */
+
+      arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
+
+      type *a1_type = check_typedef (value_type (arg1));
+      if (noside == EVAL_SKIP)
+	tem = 1;  /* Set it to the right arg index so that all
+		     arguments can also be skipped.  */
+      else if (TYPE_CODE (a1_type) == TYPE_CODE_METHODPTR)
+	{
+	  if (noside == EVAL_AVOID_SIDE_EFFECTS)
+	    arg1 = value_zero (TYPE_TARGET_TYPE (a1_type), not_lval);
+	  else
+	    arg1 = cplus_method_ptr_to_value (&arg2, arg1);
+
+	  /* Now, say which argument to start evaluating from.  */
+	  nargs++;
+	  tem = 2;
+	  argvec[1] = arg2;
+	}
+      else if (TYPE_CODE (a1_type) == TYPE_CODE_MEMBERPTR)
+	{
+	  struct type *type_ptr
+	    = lookup_pointer_type (TYPE_SELF_TYPE (a1_type));
+	  struct type *target_type_ptr
+	    = lookup_pointer_type (TYPE_TARGET_TYPE (a1_type));
+
+	  /* Now, convert these values to an address.  */
+	  arg2 = value_cast (type_ptr, arg2);
+
+	  long mem_offset = value_as_long (arg1);
+
+	  arg1 = value_from_pointer (target_type_ptr,
+				     value_as_long (arg2) + mem_offset);
+	  arg1 = value_ind (arg1);
+	  tem = 1;
+	}
+      else
+	error (_("Non-pointer-to-member value used in pointer-to-member "
+		 "construct"));
+    }
+  else if (op == STRUCTOP_STRUCT || op == STRUCTOP_PTR)
+    {
+      /* Hair for method invocations.  */
+      int tem2;
+
+      nargs++;
+      /* First, evaluate the structure into arg2.  */
+      pc2 = (*pos)++;
+      tem2 = longest_to_int (exp->elts[pc2 + 1].longconst);
+      *pos += 3 + BYTES_TO_EXP_ELEM (tem2 + 1);
+
+      if (op == STRUCTOP_STRUCT)
+	{
+	  /* If v is a variable in a register, and the user types
+	     v.method (), this will produce an error, because v has no
+	     address.
+
+	     A possible way around this would be to allocate a copy of
+	     the variable on the stack, copy in the contents, call the
+	     function, and copy out the contents.  I.e. convert this
+	     from call by reference to call by copy-return (or
+	     whatever it's called).  However, this does not work
+	     because it is not the same: the method being called could
+	     stash a copy of the address, and then future uses through
+	     that address (after the method returns) would be expected
+	     to use the variable itself, not some copy of it.  */
+	  arg2 = evaluate_subexp_for_address (exp, pos, noside);
+	}
+      else
+	{
+	  arg2 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
+
+	  /* Check to see if the operator '->' has been overloaded.
+	     If the operator has been overloaded replace arg2 with the
+	     value returned by the custom operator and continue
+	     evaluation.  */
+	  while (unop_user_defined_p (op, arg2))
+	    {
+	      struct value *value = NULL;
+	      TRY
+		{
+		  value = value_x_unop (arg2, op, noside);
+		}
+
+	      CATCH (except, RETURN_MASK_ERROR)
+		{
+		  if (except.error == NOT_FOUND_ERROR)
+		    break;
+		  else
+		    throw_exception (except);
+		}
+	      END_CATCH
+
+		arg2 = value;
+	    }
+	}
+      /* Now, say which argument to start evaluating from.  */
+      tem = 2;
+    }
+  else if (op == OP_SCOPE
+	   && overload_resolution
+	   && (exp->language_defn->la_language == language_cplus))
+    {
+      /* Unpack it locally so we can properly handle overload
+	 resolution.  */
+      char *name;
+      int local_tem;
+
+      pc2 = (*pos)++;
+      local_tem = longest_to_int (exp->elts[pc2 + 2].longconst);
+      (*pos) += 4 + BYTES_TO_EXP_ELEM (local_tem + 1);
+      struct type *type = exp->elts[pc2 + 1].type;
+      name = &exp->elts[pc2 + 3].string;
+
+      function = NULL;
+      function_name = NULL;
+      if (TYPE_CODE (type) == TYPE_CODE_NAMESPACE)
+	{
+	  function = cp_lookup_symbol_namespace (TYPE_TAG_NAME (type),
+						 name,
+						 get_selected_block (0),
+						 VAR_DOMAIN).symbol;
+	  if (function == NULL)
+	    error (_("No symbol \"%s\" in namespace \"%s\"."),
+		   name, TYPE_TAG_NAME (type));
+
+	  tem = 1;
+	  /* arg2 is left as NULL on purpose.  */
+	}
+      else
+	{
+	  gdb_assert (TYPE_CODE (type) == TYPE_CODE_STRUCT
+		      || TYPE_CODE (type) == TYPE_CODE_UNION);
+	  function_name = name;
+
+	  /* We need a properly typed value for method lookup.  For
+	     static methods arg2 is otherwise unused.  */
+	  arg2 = value_zero (type, lval_memory);
+	  ++nargs;
+	  tem = 2;
+	}
+    }
+  else if (op == OP_ADL_FUNC)
+    {
+      /* Save the function position and move pos so that the arguments
+	 can be evaluated.  */
+      int func_name_len;
+
+      save_pos1 = *pos;
+      tem = 1;
+
+      func_name_len = longest_to_int (exp->elts[save_pos1 + 3].longconst);
+      (*pos) += 6 + BYTES_TO_EXP_ELEM (func_name_len + 1);
+    }
+  else
+    {
+      /* Non-method function call.  */
+      save_pos1 = *pos;
+      tem = 1;
+
+      /* If this is a C++ function wait until overload resolution.  */
+      if (op == OP_VAR_VALUE
+	  && overload_resolution
+	  && (exp->language_defn->la_language == language_cplus))
+	{
+	  (*pos) += 4; /* Skip the evaluation of the symbol.  */
+	  argvec[0] = NULL;
+	}
+      else
+	{
+	  if (op == OP_VAR_MSYM_VALUE)
+	    {
+	      symbol *sym = exp->elts[*pos + 2].symbol;
+	      var_func_name = SYMBOL_PRINT_NAME (sym);
+	    }
+	  else if (op == OP_VAR_VALUE)
+	    {
+	      minimal_symbol *msym = exp->elts[*pos + 2].msymbol;
+	      var_func_name = MSYMBOL_PRINT_NAME (msym);
+	    }
+
+	  argvec[0] = evaluate_subexp_with_coercion (exp, pos, noside);
+	  type *type = value_type (argvec[0]);
+	  if (type && TYPE_CODE (type) == TYPE_CODE_PTR)
+	    type = TYPE_TARGET_TYPE (type);
+	  if (type && TYPE_CODE (type) == TYPE_CODE_FUNC)
+	    {
+	      for (; tem <= nargs && tem <= TYPE_NFIELDS (type); tem++)
+		{
+		  argvec[tem] = evaluate_subexp (TYPE_FIELD_TYPE (type,
+								  tem - 1),
+						 exp, pos, noside);
+		}
+	    }
+	}
+    }
+
+  /* Evaluate arguments (if not already done, e.g., namespace::func()
+     and overload-resolution is off).  */
+  for (; tem <= nargs; tem++)
+    {
+      /* Ensure that array expressions are coerced into pointer
+	 objects.  */
+      argvec[tem] = evaluate_subexp_with_coercion (exp, pos, noside);
+    }
+
+  /* Signal end of arglist.  */
+  argvec[tem] = 0;
+
+  if (noside == EVAL_SKIP)
+    return eval_skip_value (exp);
+
+  if (op == OP_ADL_FUNC)
+    {
+      struct symbol *symp;
+      char *func_name;
+      int  name_len;
+      int string_pc = save_pos1 + 3;
+
+      /* Extract the function name.  */
+      name_len = longest_to_int (exp->elts[string_pc].longconst);
+      func_name = (char *) alloca (name_len + 1);
+      strcpy (func_name, &exp->elts[string_pc + 1].string);
+
+      find_overload_match (&argvec[1], nargs, func_name,
+			   NON_METHOD, /* not method */
+			   NULL, NULL, /* pass NULL symbol since
+					  symbol is unknown */
+			   NULL, &symp, NULL, 0, noside);
+
+      /* Now fix the expression being evaluated.  */
+      exp->elts[save_pos1 + 2].symbol = symp;
+      argvec[0] = evaluate_subexp_with_coercion (exp, &save_pos1, noside);
+    }
+
+  if (op == STRUCTOP_STRUCT || op == STRUCTOP_PTR
+      || (op == OP_SCOPE && function_name != NULL))
+    {
+      int static_memfuncp;
+      char *tstr;
+
+      /* Method invocation: stuff "this" as first parameter.  If the
+	 method turns out to be static we undo this below.  */
+      argvec[1] = arg2;
+
+      if (op != OP_SCOPE)
+	{
+	  /* Name of method from expression.  */
+	  tstr = &exp->elts[pc2 + 2].string;
+	}
+      else
+	tstr = function_name;
+
+      if (overload_resolution && (exp->language_defn->la_language
+				  == language_cplus))
+	{
+	  /* Language is C++, do some overload resolution before
+	     evaluation.  */
+	  struct value *valp = NULL;
+
+	  (void) find_overload_match (&argvec[1], nargs, tstr,
+				      METHOD, /* method */
+				      &arg2,  /* the object */
+				      NULL, &valp, NULL,
+				      &static_memfuncp, 0, noside);
+
+	  if (op == OP_SCOPE && !static_memfuncp)
+	    {
+	      /* For the time being, we don't handle this.  */
+	      error (_("Call to overloaded function %s requires "
+		       "`this' pointer"),
+		     function_name);
+	    }
+	  argvec[1] = arg2;	/* the ``this'' pointer */
+	  argvec[0] = valp;	/* Use the method found after overload
+				   resolution.  */
+	}
+      else
+	/* Non-C++ case -- or no overload resolution.  */
+	{
+	  struct value *temp = arg2;
+
+	  argvec[0] = value_struct_elt (&temp, argvec + 1, tstr,
+					&static_memfuncp,
+					op == STRUCTOP_STRUCT
+					? "structure" : "structure pointer");
+	  /* value_struct_elt updates temp with the correct value of
+	     the ``this'' pointer if necessary, so modify argvec[1] to
+	     reflect any ``this'' changes.  */
+	  arg2
+	    = value_from_longest (lookup_pointer_type(value_type (temp)),
+				  value_address (temp)
+				  + value_embedded_offset (temp));
+	  argvec[1] = arg2;	/* the ``this'' pointer */
+	}
+
+      /* Take out `this' if needed.  */
+      if (static_memfuncp)
+	{
+	  argvec[1] = argvec[0];
+	  nargs--;
+	  argvec++;
+	}
+    }
+  else if (op == STRUCTOP_MEMBER || op == STRUCTOP_MPTR)
+    {
+      /* Pointer to member.  argvec[1] is already set up.  */
+      argvec[0] = arg1;
+    }
+  else if (op == OP_VAR_VALUE || (op == OP_SCOPE && function != NULL))
+    {
+      /* Non-member function being called.  */
+      /* fn: This can only be done for C++ functions.  A C-style
+	 function in a C++ program, for instance, does not have the
+	 fields that are expected here.  */
+
+      if (overload_resolution && (exp->language_defn->la_language
+				  == language_cplus))
+	{
+	  /* Language is C++, do some overload resolution before
+	     evaluation.  */
+	  struct symbol *symp;
+	  int no_adl = 0;
+
+	  /* If a scope has been specified disable ADL.  */
+	  if (op == OP_SCOPE)
+	    no_adl = 1;
+
+	  if (op == OP_VAR_VALUE)
+	    function = exp->elts[save_pos1+2].symbol;
+
+	  (void) find_overload_match (&argvec[1], nargs,
+				      NULL,        /* no need for name */
+				      NON_METHOD,  /* not method */
+				      NULL, function, /* the function */
+				      NULL, &symp, NULL, no_adl, noside);
+
+	  if (op == OP_VAR_VALUE)
+	    {
+	      /* Now fix the expression being evaluated.  */
+	      exp->elts[save_pos1+2].symbol = symp;
+	      argvec[0] = evaluate_subexp_with_coercion (exp, &save_pos1,
+							 noside);
+	    }
+	  else
+	    argvec[0] = value_of_variable (symp, get_selected_block (0));
+	}
+      else
+	{
+	  /* Not C++, or no overload resolution allowed.  */
+	  /* Nothing to be done; argvec already correctly set up.  */
+	}
+    }
+  else
+    {
+      /* It is probably a C-style function.  */
+      /* Nothing to be done; argvec already correctly set up.  */
+    }
+
+  return eval_call (exp, noside, nargs, argvec, var_func_name, expect_type);
 }
 
 struct value *
@@ -683,7 +1243,7 @@ evaluate_subexp_standard (struct type *e
 {
   enum exp_opcode op;
   int tem, tem2, tem3;
-  int pc, pc2 = 0, oldpos;
+  int pc, oldpos;
   struct value *arg1 = NULL;
   struct value *arg2 = NULL;
   struct value *arg3;
@@ -694,9 +1254,6 @@ evaluate_subexp_standard (struct type *e
   int ix;
   long mem_offset;
   struct type **arg_types;
-  int save_pos1;
-  struct symbol *function = NULL;
-  char *function_name = NULL;
 
   pc = (*pos)++;
   op = exp->elts[pc].opcode;
@@ -707,7 +1264,7 @@ evaluate_subexp_standard (struct type *e
       tem = longest_to_int (exp->elts[pc + 2].longconst);
       (*pos) += 4 + BYTES_TO_EXP_ELEM (tem + 1);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       arg1 = value_aggregate_elt (exp->elts[pc + 1].type,
 				  &exp->elts[pc + 3].string,
 				  expect_type, 0, noside);
@@ -720,57 +1277,45 @@ evaluate_subexp_standard (struct type *e
       return value_from_longest (exp->elts[pc + 1].type,
 				 exp->elts[pc + 2].longconst);
 
-    case OP_DOUBLE:
-      (*pos) += 3;
-      return value_from_double (exp->elts[pc + 1].type,
-				exp->elts[pc + 2].doubleconst);
-
-    case OP_DECFLOAT:
+    case OP_FLOAT:
       (*pos) += 3;
-      return value_from_decfloat (exp->elts[pc + 1].type,
-				  exp->elts[pc + 2].decfloatconst);
+      return value_from_contents (exp->elts[pc + 1].type,
+				  exp->elts[pc + 2].floatconst);
 
     case OP_ADL_FUNC:
     case OP_VAR_VALUE:
       (*pos) += 3;
       if (noside == EVAL_SKIP)
-	goto nosideret;
-
-      /* JYG: We used to just return value_zero of the symbol type
-	 if we're asked to avoid side effects.  Otherwise we return
-	 value_of_variable (...).  However I'm not sure if
-	 value_of_variable () has any side effect.
-	 We need a full value object returned here for whatis_exp ()
-	 to call evaluate_type () and then pass the full value to
-	 value_rtti_target_type () if we are dealing with a pointer
-	 or reference to a base class and print object is on.  */
+	return eval_skip_value (exp);
 
       {
-	struct value *ret = NULL;
+	symbol *var = exp->elts[pc + 2].symbol;
+	if (TYPE_CODE (SYMBOL_TYPE (var)) == TYPE_CODE_ERROR)
+	  error_unknown_type (SYMBOL_PRINT_NAME (var));
 
-	TRY
-	  {
-	    ret = value_of_variable (exp->elts[pc + 2].symbol,
-				     exp->elts[pc + 1].block);
-	  }
+	return evaluate_var_value (noside, exp->elts[pc + 1].block, var);
+      }
 
-	CATCH (except, RETURN_MASK_ERROR)
-	  {
-	    if (noside == EVAL_AVOID_SIDE_EFFECTS)
-	      ret = value_zero (SYMBOL_TYPE (exp->elts[pc + 2].symbol),
-				not_lval);
-	    else
-	      throw_exception (except);
-	  }
-	END_CATCH
+    case OP_VAR_MSYM_VALUE:
+      {
+	(*pos) += 3;
 
-	return ret;
+	minimal_symbol *msymbol = exp->elts[pc + 2].msymbol;
+	value *val = evaluate_var_msym_value (noside,
+					      exp->elts[pc + 1].objfile,
+					      msymbol);
+
+	type = value_type (val);
+	if (TYPE_CODE (type) == TYPE_CODE_ERROR
+	    && (noside != EVAL_AVOID_SIDE_EFFECTS || pc != 0))
+	  error_unknown_type (MSYMBOL_PRINT_NAME (msymbol));
+	return val;
       }
 
     case OP_VAR_ENTRY_VALUE:
       (*pos) += 2;
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
 
       {
 	struct symbol *sym = exp->elts[pc + 1].symbol;
@@ -788,6 +1333,27 @@ evaluate_subexp_standard (struct type *e
 	return SYMBOL_COMPUTED_OPS (sym)->read_variable_at_entry (sym, frame);
       }
 
+    case OP_FUNC_STATIC_VAR:
+      tem = longest_to_int (exp->elts[pc + 1].longconst);
+      (*pos) += 3 + BYTES_TO_EXP_ELEM (tem + 1);
+      if (noside == EVAL_SKIP)
+	return eval_skip_value (exp);
+
+      {
+	value *func = evaluate_subexp_standard (NULL, exp, pos, noside);
+	CORE_ADDR addr = value_address (func);
+
+	const block *blk = block_for_pc (addr);
+	const char *var = &exp->elts[pc + 2].string;
+
+	struct block_symbol sym = lookup_symbol (var, blk, VAR_DOMAIN, NULL);
+
+	if (sym.symbol == NULL)
+	  error (_("No symbol \"%s\" in specified context."), var);
+
+	return evaluate_var_value (noside, sym.block, sym.symbol);
+      }
+
     case OP_LAST:
       (*pos) += 2;
       return
@@ -835,7 +1401,7 @@ evaluate_subexp_standard (struct type *e
       tem = longest_to_int (exp->elts[pc + 1].longconst);
       (*pos) += 3 + BYTES_TO_EXP_ELEM (tem + 1);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       type = language_string_char_type (exp->language_defn, exp->gdbarch);
       return value_string (&exp->elts[pc + 2].string, tem, type);
 
@@ -844,9 +1410,7 @@ evaluate_subexp_standard (struct type *e
       tem = longest_to_int (exp->elts[pc + 1].longconst);
       (*pos) += 3 + BYTES_TO_EXP_ELEM (tem + 1);
       if (noside == EVAL_SKIP)
-	{
-	  goto nosideret;
-	}
+	return eval_skip_value (exp);
       return value_nsstring (exp->gdbarch, &exp->elts[pc + 2].string, tem + 1);
 
     case OP_ARRAY:
@@ -986,7 +1550,7 @@ evaluate_subexp_standard (struct type *e
 	  argvec[tem] = evaluate_subexp_with_coercion (exp, pos, noside);
 	}
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       return value_array (tem2, tem3, argvec);
 
     case TERNOP_SLICE:
@@ -998,7 +1562,7 @@ evaluate_subexp_standard (struct type *e
 	  = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));
 
 	if (noside == EVAL_SKIP)
-	  goto nosideret;
+	  return eval_skip_value (exp);
 	return value_slice (array, lowbound, upper - lowbound + 1);
       }
 
@@ -1025,7 +1589,7 @@ evaluate_subexp_standard (struct type *e
 
 	(*pos) += 3 + BYTES_TO_EXP_ELEM (len + 1);
 	if (noside == EVAL_SKIP)
-	  goto nosideret;
+	  return eval_skip_value (exp);
 
 	if (sel[len] != 0)
 	  sel[len] = 0;		/* Make sure it's terminated.  */
@@ -1147,12 +1711,12 @@ evaluate_subexp_standard (struct type *e
 	argvec[3] = value_from_longest (long_type, selector);
 	argvec[4] = 0;
 
-	ret = call_function_by_hand (argvec[0], 3, argvec + 1);
+	ret = call_function_by_hand (argvec[0], NULL, 3, argvec + 1);
 	if (gnu_runtime)
 	  {
 	    /* Function objc_msg_lookup returns a pointer.  */
 	    argvec[0] = ret;
-	    ret = call_function_by_hand (argvec[0], 3, argvec + 1);
+	    ret = call_function_by_hand (argvec[0], NULL, 3, argvec + 1);
 	  }
 	if (value_as_long (ret) == 0)
 	  error (_("Target does not respond to this message selector."));
@@ -1169,11 +1733,11 @@ evaluate_subexp_standard (struct type *e
 	argvec[3] = value_from_longest (long_type, selector);
 	argvec[4] = 0;
 
-	ret = call_function_by_hand (argvec[0], 3, argvec + 1);
+	ret = call_function_by_hand (argvec[0], NULL, 3, argvec + 1);
 	if (gnu_runtime)
 	  {
 	    argvec[0] = ret;
-	    ret = call_function_by_hand (argvec[0], 3, argvec + 1);
+	    ret = call_function_by_hand (argvec[0], NULL, 3, argvec + 1);
 	  }
 
 	/* ret should now be the selector.  */
@@ -1267,7 +1831,7 @@ evaluate_subexp_standard (struct type *e
 	  }
 
 	if (noside == EVAL_SKIP)
-	  goto nosideret;
+	  return eval_skip_value (exp);
 
 	if (noside == EVAL_AVOID_SIDE_EFFECTS)
 	  {
@@ -1315,442 +1879,16 @@ evaluate_subexp_standard (struct type *e
 	    deprecated_set_value_type (argvec[0],
 				       lookup_pointer_type (lookup_function_type (value_type (argvec[0]))));
 	    argvec[0]
-	      = call_function_by_hand (argvec[0], nargs + 2, argvec + 1);
+	      = call_function_by_hand (argvec[0], NULL, nargs + 2, argvec + 1);
 	  }
 
-	ret = call_function_by_hand (argvec[0], nargs + 2, argvec + 1);
+	ret = call_function_by_hand (argvec[0], NULL, nargs + 2, argvec + 1);
 	return ret;
       }
       break;
 
     case OP_FUNCALL:
-      (*pos) += 2;
-      op = exp->elts[*pos].opcode;
-      nargs = longest_to_int (exp->elts[pc + 1].longconst);
-      /* Allocate arg vector, including space for the function to be
-         called in argvec[0], a potential `this', and a terminating NULL.  */
-      argvec = (struct value **)
-	alloca (sizeof (struct value *) * (nargs + 3));
-      if (op == STRUCTOP_MEMBER || op == STRUCTOP_MPTR)
-	{
-	  /* First, evaluate the structure into arg2.  */
-	  pc2 = (*pos)++;
-
-	  if (op == STRUCTOP_MEMBER)
-	    {
-	      arg2 = evaluate_subexp_for_address (exp, pos, noside);
-	    }
-	  else
-	    {
-	      arg2 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
-	    }
-
-	  /* If the function is a virtual function, then the
-	     aggregate value (providing the structure) plays
-	     its part by providing the vtable.  Otherwise,
-	     it is just along for the ride: call the function
-	     directly.  */
-
-	  arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
-
-	  type = check_typedef (value_type (arg1));
-	  if (noside == EVAL_SKIP)
-	    tem = 1;  /* Set it to the right arg index so that all arguments
-			 can also be skipped.  */
-	  else if (TYPE_CODE (type) == TYPE_CODE_METHODPTR)
-	    {
-	      if (noside == EVAL_AVOID_SIDE_EFFECTS)
-		arg1 = value_zero (TYPE_TARGET_TYPE (type), not_lval);
-	      else
-		arg1 = cplus_method_ptr_to_value (&arg2, arg1);
-
-	      /* Now, say which argument to start evaluating from.  */
-	      nargs++;
-	      tem = 2;
-	      argvec[1] = arg2;
-	    }
-	  else if (TYPE_CODE (type) == TYPE_CODE_MEMBERPTR)
-	    {
-	      struct type *type_ptr
-		= lookup_pointer_type (TYPE_SELF_TYPE (type));
-	      struct type *target_type_ptr
-		= lookup_pointer_type (TYPE_TARGET_TYPE (type));
-
-	      /* Now, convert these values to an address.  */
-	      arg2 = value_cast (type_ptr, arg2);
-
-	      mem_offset = value_as_long (arg1);
-
-	      arg1 = value_from_pointer (target_type_ptr,
-					 value_as_long (arg2) + mem_offset);
-	      arg1 = value_ind (arg1);
-	      tem = 1;
-	    }
-	  else
-	    error (_("Non-pointer-to-member value used in pointer-to-member "
-		     "construct"));
-	}
-      else if (op == STRUCTOP_STRUCT || op == STRUCTOP_PTR)
-	{
-	  /* Hair for method invocations.  */
-	  int tem2;
-
-	  nargs++;
-	  /* First, evaluate the structure into arg2.  */
-	  pc2 = (*pos)++;
-	  tem2 = longest_to_int (exp->elts[pc2 + 1].longconst);
-	  *pos += 3 + BYTES_TO_EXP_ELEM (tem2 + 1);
-
-	  if (op == STRUCTOP_STRUCT)
-	    {
-	      /* If v is a variable in a register, and the user types
-	         v.method (), this will produce an error, because v has
-	         no address.
-
-	         A possible way around this would be to allocate a
-	         copy of the variable on the stack, copy in the
-	         contents, call the function, and copy out the
-	         contents.  I.e. convert this from call by reference
-	         to call by copy-return (or whatever it's called).
-	         However, this does not work because it is not the
-	         same: the method being called could stash a copy of
-	         the address, and then future uses through that address
-	         (after the method returns) would be expected to
-	         use the variable itself, not some copy of it.  */
-	      arg2 = evaluate_subexp_for_address (exp, pos, noside);
-	    }
-	  else
-	    {
-	      arg2 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
-
-	      /* Check to see if the operator '->' has been
-	         overloaded.  If the operator has been overloaded
-	         replace arg2 with the value returned by the custom
-	         operator and continue evaluation.  */
-	      while (unop_user_defined_p (op, arg2))
-		{
-		  struct value *value = NULL;
-		  TRY
-		    {
-		      value = value_x_unop (arg2, op, noside);
-		    }
-
-		  CATCH (except, RETURN_MASK_ERROR)
-		    {
-		      if (except.error == NOT_FOUND_ERROR)
-			break;
-		      else
-			throw_exception (except);
-		    }
-		  END_CATCH
-
-		  arg2 = value;
-		}
-	    }
-	  /* Now, say which argument to start evaluating from.  */
-	  tem = 2;
-	}
-      else if (op == OP_SCOPE
-	       && overload_resolution
-	       && (exp->language_defn->la_language == language_cplus))
-	{
-	  /* Unpack it locally so we can properly handle overload
-	     resolution.  */
-	  char *name;
-	  int local_tem;
-
-	  pc2 = (*pos)++;
-	  local_tem = longest_to_int (exp->elts[pc2 + 2].longconst);
-	  (*pos) += 4 + BYTES_TO_EXP_ELEM (local_tem + 1);
-	  type = exp->elts[pc2 + 1].type;
-	  name = &exp->elts[pc2 + 3].string;
-
-	  function = NULL;
-	  function_name = NULL;
-	  if (TYPE_CODE (type) == TYPE_CODE_NAMESPACE)
-	    {
-	      function = cp_lookup_symbol_namespace (TYPE_TAG_NAME (type),
-						     name,
-						     get_selected_block (0),
-						     VAR_DOMAIN).symbol;
-	      if (function == NULL)
-		error (_("No symbol \"%s\" in namespace \"%s\"."), 
-		       name, TYPE_TAG_NAME (type));
-
-	      tem = 1;
-	      /* arg2 is left as NULL on purpose.  */
-	    }
-	  else
-	    {
-	      gdb_assert (TYPE_CODE (type) == TYPE_CODE_STRUCT
-			  || TYPE_CODE (type) == TYPE_CODE_UNION);
-	      function_name = name;
-
-	      /* We need a properly typed value for method lookup.  For
-		 static methods arg2 is otherwise unused.  */
-	      arg2 = value_zero (type, lval_memory);
-	      ++nargs;
-	      tem = 2;
-	    }
-	}
-      else if (op == OP_ADL_FUNC)
-        {
-          /* Save the function position and move pos so that the arguments
-             can be evaluated.  */
-          int func_name_len;
-
-          save_pos1 = *pos;
-          tem = 1;
-
-          func_name_len = longest_to_int (exp->elts[save_pos1 + 3].longconst);
-          (*pos) += 6 + BYTES_TO_EXP_ELEM (func_name_len + 1);
-        }
-      else
-	{
-	  /* Non-method function call.  */
-	  save_pos1 = *pos;
-	  tem = 1;
-
-	  /* If this is a C++ function wait until overload resolution.  */
-	  if (op == OP_VAR_VALUE
-	      && overload_resolution
-	      && (exp->language_defn->la_language == language_cplus))
-	    {
-	      (*pos) += 4; /* Skip the evaluation of the symbol.  */
-	      argvec[0] = NULL;
-	    }
-	  else
-	    {
-	      argvec[0] = evaluate_subexp_with_coercion (exp, pos, noside);
-	      type = value_type (argvec[0]);
-	      if (type && TYPE_CODE (type) == TYPE_CODE_PTR)
-		type = TYPE_TARGET_TYPE (type);
-	      if (type && TYPE_CODE (type) == TYPE_CODE_FUNC)
-		{
-		  for (; tem <= nargs && tem <= TYPE_NFIELDS (type); tem++)
-		    {
-		      argvec[tem] = evaluate_subexp (TYPE_FIELD_TYPE (type,
-								      tem - 1),
-						     exp, pos, noside);
-		    }
-		}
-	    }
-	}
-
-      /* Evaluate arguments (if not already done, e.g., namespace::func()
-	 and overload-resolution is off).  */
-      for (; tem <= nargs; tem++)
-	{
-	  /* Ensure that array expressions are coerced into pointer
-	     objects.  */
-	  argvec[tem] = evaluate_subexp_with_coercion (exp, pos, noside);
-	}
-
-      /* Signal end of arglist.  */
-      argvec[tem] = 0;
-
-      if (noside == EVAL_SKIP)
-	goto nosideret;
-
-      if (op == OP_ADL_FUNC)
-        {
-          struct symbol *symp;
-          char *func_name;
-          int  name_len;
-          int string_pc = save_pos1 + 3;
-
-          /* Extract the function name.  */
-          name_len = longest_to_int (exp->elts[string_pc].longconst);
-          func_name = (char *) alloca (name_len + 1);
-          strcpy (func_name, &exp->elts[string_pc + 1].string);
-
-          find_overload_match (&argvec[1], nargs, func_name,
-                               NON_METHOD, /* not method */
-                               NULL, NULL, /* pass NULL symbol since
-					      symbol is unknown */
-                               NULL, &symp, NULL, 0, noside);
-
-          /* Now fix the expression being evaluated.  */
-          exp->elts[save_pos1 + 2].symbol = symp;
-          argvec[0] = evaluate_subexp_with_coercion (exp, &save_pos1, noside);
-        }
-
-      if (op == STRUCTOP_STRUCT || op == STRUCTOP_PTR
-	  || (op == OP_SCOPE && function_name != NULL))
-	{
-	  int static_memfuncp;
-	  char *tstr;
-
-	  /* Method invocation: stuff "this" as first parameter.
-	     If the method turns out to be static we undo this below.  */
-	  argvec[1] = arg2;
-
-	  if (op != OP_SCOPE)
-	    {
-	      /* Name of method from expression.  */
-	      tstr = &exp->elts[pc2 + 2].string;
-	    }
-	  else
-	    tstr = function_name;
-
-	  if (overload_resolution && (exp->language_defn->la_language
-				      == language_cplus))
-	    {
-	      /* Language is C++, do some overload resolution before
-		 evaluation.  */
-	      struct value *valp = NULL;
-
-	      (void) find_overload_match (&argvec[1], nargs, tstr,
-	                                  METHOD, /* method */
-					  &arg2,  /* the object */
-					  NULL, &valp, NULL,
-					  &static_memfuncp, 0, noside);
-
-	      if (op == OP_SCOPE && !static_memfuncp)
-		{
-		  /* For the time being, we don't handle this.  */
-		  error (_("Call to overloaded function %s requires "
-			   "`this' pointer"),
-			 function_name);
-		}
-	      argvec[1] = arg2;	/* the ``this'' pointer */
-	      argvec[0] = valp;	/* Use the method found after overload
-				   resolution.  */
-	    }
-	  else
-	    /* Non-C++ case -- or no overload resolution.  */
-	    {
-	      struct value *temp = arg2;
-
-	      argvec[0] = value_struct_elt (&temp, argvec + 1, tstr,
-					    &static_memfuncp,
-					    op == STRUCTOP_STRUCT
-				       ? "structure" : "structure pointer");
-	      /* value_struct_elt updates temp with the correct value
-	 	 of the ``this'' pointer if necessary, so modify argvec[1] to
-		 reflect any ``this'' changes.  */
-	      arg2
-		= value_from_longest (lookup_pointer_type(value_type (temp)),
-				      value_address (temp)
-				      + value_embedded_offset (temp));
-	      argvec[1] = arg2;	/* the ``this'' pointer */
-	    }
-
-	  /* Take out `this' if needed.  */
-	  if (static_memfuncp)
-	    {
-	      argvec[1] = argvec[0];
-	      nargs--;
-	      argvec++;
-	    }
-	}
-      else if (op == STRUCTOP_MEMBER || op == STRUCTOP_MPTR)
-	{
-	  /* Pointer to member.  argvec[1] is already set up.  */
-	  argvec[0] = arg1;
-	}
-      else if (op == OP_VAR_VALUE || (op == OP_SCOPE && function != NULL))
-	{
-	  /* Non-member function being called.  */
-          /* fn: This can only be done for C++ functions.  A C-style function
-             in a C++ program, for instance, does not have the fields that 
-             are expected here.  */
-
-	  if (overload_resolution && (exp->language_defn->la_language
-				      == language_cplus))
-	    {
-	      /* Language is C++, do some overload resolution before
-		 evaluation.  */
-	      struct symbol *symp;
-	      int no_adl = 0;
-
-	      /* If a scope has been specified disable ADL.  */
-	      if (op == OP_SCOPE)
-		no_adl = 1;
-
-	      if (op == OP_VAR_VALUE)
-		function = exp->elts[save_pos1+2].symbol;
-
-	      (void) find_overload_match (&argvec[1], nargs,
-					  NULL,        /* no need for name */
-	                                  NON_METHOD,  /* not method */
-	                                  NULL, function, /* the function */
-					  NULL, &symp, NULL, no_adl, noside);
-
-	      if (op == OP_VAR_VALUE)
-		{
-		  /* Now fix the expression being evaluated.  */
-		  exp->elts[save_pos1+2].symbol = symp;
-		  argvec[0] = evaluate_subexp_with_coercion (exp, &save_pos1,
-							     noside);
-		}
-	      else
-		argvec[0] = value_of_variable (symp, get_selected_block (0));
-	    }
-	  else
-	    {
-	      /* Not C++, or no overload resolution allowed.  */
-	      /* Nothing to be done; argvec already correctly set up.  */
-	    }
-	}
-      else
-	{
-	  /* It is probably a C-style function.  */
-	  /* Nothing to be done; argvec already correctly set up.  */
-	}
-
-    do_call_it:
-
-      if (argvec[0] == NULL)
-	error (_("Cannot evaluate function -- may be inlined"));
-      if (noside == EVAL_AVOID_SIDE_EFFECTS)
-	{
-	  /* If the return type doesn't look like a function type, call an
-	     error.  This can happen if somebody tries to turn a variable into
-	     a function call.  This is here because people often want to
-	     call, eg, strcmp, which gdb doesn't know is a function.  If
-	     gdb isn't asked for it's opinion (ie. through "whatis"),
-	     it won't offer it.  */
-
-	  struct type *ftype = value_type (argvec[0]);
-
-	  if (TYPE_CODE (ftype) == TYPE_CODE_INTERNAL_FUNCTION)
-	    {
-	      /* We don't know anything about what the internal
-		 function might return, but we have to return
-		 something.  */
-	      return value_zero (builtin_type (exp->gdbarch)->builtin_int,
-				 not_lval);
-	    }
-	  else if (TYPE_CODE (ftype) == TYPE_CODE_XMETHOD)
-	    {
-	      struct type *return_type
-		= result_type_of_xmethod (argvec[0], nargs, argvec + 1);
-
-	      if (return_type == NULL)
-		error (_("Xmethod is missing return type."));
-	      return value_zero (return_type, not_lval);
-	    }
-	  else if (TYPE_GNU_IFUNC (ftype))
-	    return allocate_value (TYPE_TARGET_TYPE (TYPE_TARGET_TYPE (ftype)));
-	  else if (TYPE_TARGET_TYPE (ftype))
-	    return allocate_value (TYPE_TARGET_TYPE (ftype));
-	  else
-	    error (_("Expression of type other than "
-		     "\"Function returning ...\" used as function"));
-	}
-      switch (TYPE_CODE (value_type (argvec[0])))
-	{
-	case TYPE_CODE_INTERNAL_FUNCTION:
-	  return call_internal_function (exp->gdbarch, exp->language_defn,
-					 argvec[0], nargs, argvec + 1);
-	case TYPE_CODE_XMETHOD:
-	  return call_xmethod (argvec[0], nargs, argvec + 1);
-	default:
-	  return call_function_by_hand (argvec[0], nargs, argvec + 1);
-	}
-      /* pai: FIXME save value from call_function_by_hand, then adjust
-	 pc by adjust_fn_pc if +ve.  */
+      return evaluate_funcall (expect_type, exp, pos, noside);
 
     case OP_F77_UNDETERMINED_ARGLIST:
 
@@ -1817,8 +1955,8 @@ evaluate_subexp_standard (struct type *e
 	    argvec[tem] = evaluate_subexp_with_coercion (exp, pos, noside);
 	  argvec[tem] = 0;	/* signal end of arglist */
 	  if (noside == EVAL_SKIP)
-	    goto nosideret;
-	  goto do_call_it;
+	    return eval_skip_value (exp);
+	  return eval_call (exp, noside, nargs, argvec, NULL, expect_type);
 
 	default:
 	  error (_("Cannot perform substring on this type"));
@@ -1838,7 +1976,7 @@ evaluate_subexp_standard (struct type *e
       (*pos) += 3 + BYTES_TO_EXP_ELEM (tem + 1);
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       arg3 = value_struct_elt (&arg1, NULL, &exp->elts[pc + 2].string,
 			       NULL, "structure");
       if (noside == EVAL_AVOID_SIDE_EFFECTS)
@@ -1850,7 +1988,7 @@ evaluate_subexp_standard (struct type *e
       (*pos) += 3 + BYTES_TO_EXP_ELEM (tem + 1);
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
 
       /* Check to see if operator '->' has been overloaded.  If so replace
          arg1 with the value returned by evaluating operator->().  */
@@ -1911,7 +2049,7 @@ evaluate_subexp_standard (struct type *e
       arg2 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
 
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
 
       type = check_typedef (value_type (arg2));
       switch (TYPE_CODE (type))
@@ -1943,24 +2081,24 @@ evaluate_subexp_standard (struct type *e
 	}
 
     case TYPE_INSTANCE:
-      nargs = longest_to_int (exp->elts[pc + 1].longconst);
-      arg_types = (struct type **) alloca (nargs * sizeof (struct type *));
-      for (ix = 0; ix < nargs; ++ix)
-	arg_types[ix] = exp->elts[pc + 1 + ix + 1].type;
-
-      expect_type = make_params (nargs, arg_types);
-      *(pos) += 3 + nargs;
-      arg1 = evaluate_subexp_standard (expect_type, exp, pos, noside);
-      xfree (TYPE_FIELDS (expect_type));
-      xfree (TYPE_MAIN_TYPE (expect_type));
-      xfree (expect_type);
-      return arg1;
+      {
+	type_instance_flags flags
+	  = (type_instance_flag_value) longest_to_int (exp->elts[pc + 1].longconst);
+	nargs = longest_to_int (exp->elts[pc + 2].longconst);
+	arg_types = (struct type **) alloca (nargs * sizeof (struct type *));
+	for (ix = 0; ix < nargs; ++ix)
+	  arg_types[ix] = exp->elts[pc + 2 + ix + 1].type;
+
+	fake_method expect_type (flags, nargs, arg_types);
+	*(pos) += 4 + nargs;
+	return evaluate_subexp_standard (expect_type.type (), exp, pos, noside);
+      }
 
     case BINOP_CONCAT:
       arg1 = evaluate_subexp_with_coercion (exp, pos, noside);
       arg2 = evaluate_subexp_with_coercion (exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (binop_user_defined_p (op, arg1, arg2))
 	return value_x_binop (arg1, arg2, op, OP_NULL, noside);
       else
@@ -2014,7 +2152,7 @@ evaluate_subexp_standard (struct type *e
       arg1 = evaluate_subexp_with_coercion (exp, pos, noside);
       arg2 = evaluate_subexp_with_coercion (exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (binop_user_defined_p (op, arg1, arg2))
 	return value_x_binop (arg1, arg2, op, OP_NULL, noside);
       else if (ptrmath_type_p (exp->language_defn, value_type (arg1))
@@ -2033,7 +2171,7 @@ evaluate_subexp_standard (struct type *e
       arg1 = evaluate_subexp_with_coercion (exp, pos, noside);
       arg2 = evaluate_subexp_with_coercion (exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (binop_user_defined_p (op, arg1, arg2))
 	return value_x_binop (arg1, arg2, op, OP_NULL, noside);
       else if (ptrmath_type_p (exp->language_defn, value_type (arg1))
@@ -2066,7 +2204,7 @@ evaluate_subexp_standard (struct type *e
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       arg2 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (binop_user_defined_p (op, arg1, arg2))
 	return value_x_binop (arg1, arg2, op, OP_NULL, noside);
       else
@@ -2109,7 +2247,7 @@ evaluate_subexp_standard (struct type *e
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       arg2 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (binop_user_defined_p (op, arg1, arg2))
 	return value_x_binop (arg1, arg2, op, OP_NULL, noside);
       else
@@ -2146,13 +2284,8 @@ evaluate_subexp_standard (struct type *e
 	  if (noside == EVAL_SKIP)
 	    {
 	      if (nargs > 0)
-		{
-		  continue;
-		}
-	      else
-		{
-		  goto nosideret;
-		}
+		continue;
+	      return eval_skip_value (exp);
 	    }
 	  /* FIXME:  EVAL_AVOID_SIDE_EFFECTS handling may not be correct.  */
 	  if (noside == EVAL_AVOID_SIDE_EFFECTS)
@@ -2251,7 +2384,7 @@ evaluate_subexp_standard (struct type *e
       if (noside == EVAL_SKIP)
 	{
 	  evaluate_subexp (NULL_TYPE, exp, pos, noside);
-	  goto nosideret;
+	  return eval_skip_value (exp);
 	}
 
       oldpos = *pos;
@@ -2278,7 +2411,7 @@ evaluate_subexp_standard (struct type *e
       if (noside == EVAL_SKIP)
 	{
 	  evaluate_subexp (NULL_TYPE, exp, pos, noside);
-	  goto nosideret;
+	  return eval_skip_value (exp);
 	}
 
       oldpos = *pos;
@@ -2304,7 +2437,7 @@ evaluate_subexp_standard (struct type *e
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       arg2 = evaluate_subexp (value_type (arg1), exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (binop_user_defined_p (op, arg1, arg2))
 	{
 	  return value_x_binop (arg1, arg2, op, OP_NULL, noside);
@@ -2321,7 +2454,7 @@ evaluate_subexp_standard (struct type *e
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       arg2 = evaluate_subexp (value_type (arg1), exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (binop_user_defined_p (op, arg1, arg2))
 	{
 	  return value_x_binop (arg1, arg2, op, OP_NULL, noside);
@@ -2338,7 +2471,7 @@ evaluate_subexp_standard (struct type *e
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       arg2 = evaluate_subexp (value_type (arg1), exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (binop_user_defined_p (op, arg1, arg2))
 	{
 	  return value_x_binop (arg1, arg2, op, OP_NULL, noside);
@@ -2355,7 +2488,7 @@ evaluate_subexp_standard (struct type *e
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       arg2 = evaluate_subexp (value_type (arg1), exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (binop_user_defined_p (op, arg1, arg2))
 	{
 	  return value_x_binop (arg1, arg2, op, OP_NULL, noside);
@@ -2372,7 +2505,7 @@ evaluate_subexp_standard (struct type *e
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       arg2 = evaluate_subexp (value_type (arg1), exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (binop_user_defined_p (op, arg1, arg2))
 	{
 	  return value_x_binop (arg1, arg2, op, OP_NULL, noside);
@@ -2389,7 +2522,7 @@ evaluate_subexp_standard (struct type *e
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       arg2 = evaluate_subexp (value_type (arg1), exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (binop_user_defined_p (op, arg1, arg2))
 	{
 	  return value_x_binop (arg1, arg2, op, OP_NULL, noside);
@@ -2406,7 +2539,7 @@ evaluate_subexp_standard (struct type *e
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       arg2 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       type = check_typedef (value_type (arg2));
       if (TYPE_CODE (type) != TYPE_CODE_INT
           && TYPE_CODE (type) != TYPE_CODE_ENUM)
@@ -2426,7 +2559,7 @@ evaluate_subexp_standard (struct type *e
     case UNOP_PLUS:
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (unop_user_defined_p (op, arg1))
 	return value_x_unop (arg1, op, noside);
       else
@@ -2438,7 +2571,7 @@ evaluate_subexp_standard (struct type *e
     case UNOP_NEG:
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (unop_user_defined_p (op, arg1))
 	return value_x_unop (arg1, op, noside);
       else
@@ -2449,11 +2582,10 @@ evaluate_subexp_standard (struct type *e
 
     case UNOP_COMPLEMENT:
       /* C++: check for and handle destructor names.  */
-      op = exp->elts[*pos].opcode;
 
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (unop_user_defined_p (UNOP_COMPLEMENT, arg1))
 	return value_x_unop (arg1, UNOP_COMPLEMENT, noside);
       else
@@ -2465,7 +2597,7 @@ evaluate_subexp_standard (struct type *e
     case UNOP_LOGICAL_NOT:
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (unop_user_defined_p (op, arg1))
 	return value_x_unop (arg1, op, noside);
       else
@@ -2484,7 +2616,7 @@ evaluate_subexp_standard (struct type *e
 	error (_("Attempt to dereference pointer "
 		 "to member without an object"));
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (unop_user_defined_p (op, arg1))
 	return value_x_unop (arg1, op, noside);
       else if (noside == EVAL_AVOID_SIDE_EFFECTS)
@@ -2517,12 +2649,10 @@ evaluate_subexp_standard (struct type *e
     case UNOP_ADDR:
       /* C++: check for and handle pointer to members.  */
 
-      op = exp->elts[*pos].opcode;
-
       if (noside == EVAL_SKIP)
 	{
 	  evaluate_subexp (NULL_TYPE, exp, pos, EVAL_SKIP);
-	  goto nosideret;
+	  return eval_skip_value (exp);
 	}
       else
 	{
@@ -2536,36 +2666,26 @@ evaluate_subexp_standard (struct type *e
       if (noside == EVAL_SKIP)
 	{
 	  evaluate_subexp (NULL_TYPE, exp, pos, EVAL_SKIP);
-	  goto nosideret;
+	  return eval_skip_value (exp);
 	}
       return evaluate_subexp_for_sizeof (exp, pos, noside);
 
     case UNOP_CAST:
       (*pos) += 2;
       type = exp->elts[pc + 1].type;
-      arg1 = evaluate_subexp (type, exp, pos, noside);
-      if (noside == EVAL_SKIP)
-	goto nosideret;
-      if (type != value_type (arg1))
-	arg1 = value_cast (type, arg1);
-      return arg1;
+      return evaluate_subexp_for_cast (exp, pos, noside, type);
 
     case UNOP_CAST_TYPE:
       arg1 = evaluate_subexp (NULL, exp, pos, EVAL_AVOID_SIDE_EFFECTS);
       type = value_type (arg1);
-      arg1 = evaluate_subexp (type, exp, pos, noside);
-      if (noside == EVAL_SKIP)
-	goto nosideret;
-      if (type != value_type (arg1))
-	arg1 = value_cast (type, arg1);
-      return arg1;
+      return evaluate_subexp_for_cast (exp, pos, noside, type);
 
     case UNOP_DYNAMIC_CAST:
       arg1 = evaluate_subexp (NULL, exp, pos, EVAL_AVOID_SIDE_EFFECTS);
       type = value_type (arg1);
       arg1 = evaluate_subexp (type, exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       return value_dynamic_cast (type, arg1);
 
     case UNOP_REINTERPRET_CAST:
@@ -2573,14 +2693,14 @@ evaluate_subexp_standard (struct type *e
       type = value_type (arg1);
       arg1 = evaluate_subexp (type, exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       return value_reinterpret_cast (type, arg1);
 
     case UNOP_MEMVAL:
       (*pos) += 2;
       arg1 = evaluate_subexp (expect_type, exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (noside == EVAL_AVOID_SIDE_EFFECTS)
 	return value_zero (exp->elts[pc + 1].type, lval_memory);
       else
@@ -2592,28 +2712,12 @@ evaluate_subexp_standard (struct type *e
       type = value_type (arg1);
       arg1 = evaluate_subexp (expect_type, exp, pos, noside);
       if (noside == EVAL_SKIP)
-	goto nosideret;
+	return eval_skip_value (exp);
       if (noside == EVAL_AVOID_SIDE_EFFECTS)
 	return value_zero (type, lval_memory);
       else
 	return value_at_lazy (type, value_as_address (arg1));
 
-    case UNOP_MEMVAL_TLS:
-      (*pos) += 3;
-      arg1 = evaluate_subexp (expect_type, exp, pos, noside);
-      if (noside == EVAL_SKIP)
-	goto nosideret;
-      if (noside == EVAL_AVOID_SIDE_EFFECTS)
-	return value_zero (exp->elts[pc + 2].type, lval_memory);
-      else
-	{
-	  CORE_ADDR tls_addr;
-
-	  tls_addr = target_translate_tls_address (exp->elts[pc + 1].objfile,
-						   value_as_address (arg1));
-	  return value_at_lazy (exp->elts[pc + 2].type, tls_addr);
-	}
-
     case UNOP_PREINCREMENT:
       arg1 = evaluate_subexp (expect_type, exp, pos, noside);
       if (noside == EVAL_SKIP || noside == EVAL_AVOID_SIDE_EFFECTS)
@@ -2725,20 +2829,9 @@ evaluate_subexp_standard (struct type *e
          easier to accommodate expressions that contain types.  */
       (*pos) += 2;
       if (noside == EVAL_SKIP)
-        goto nosideret;
+	return eval_skip_value (exp);
       else if (noside == EVAL_AVOID_SIDE_EFFECTS)
-	{
-	  struct type *type = exp->elts[pc + 1].type;
-
-	  /* If this is a typedef, then find its immediate target.  We
-	     use check_typedef to resolve stubs, but we ignore its
-	     result because we do not want to dig past all
-	     typedefs.  */
-	  check_typedef (type);
-	  if (TYPE_CODE (type) == TYPE_CODE_TYPEDEF)
-	    type = TYPE_TARGET_TYPE (type);
-	  return allocate_value (type);
-	}
+	return allocate_value (exp->elts[pc + 1].type);
       else
         error (_("Attempt to use a type name as an expression"));
 
@@ -2747,7 +2840,7 @@ evaluate_subexp_standard (struct type *e
       if (noside == EVAL_SKIP)
 	{
 	  evaluate_subexp (NULL_TYPE, exp, pos, EVAL_SKIP);
-	  goto nosideret;
+	  return eval_skip_value (exp);
 	}
       else if (noside == EVAL_AVOID_SIDE_EFFECTS)
 	{
@@ -2812,8 +2905,7 @@ evaluate_subexp_standard (struct type *e
 	       "evaluate that kind of expression"));
     }
 
-nosideret:
-  return value_from_longest (builtin_type (exp->gdbarch)->builtin_int, 1);
+  gdb_assert_not_reached ("missed return?");
 }
 
 /* Evaluate a subexpression of EXP, at index *POS,
@@ -2893,6 +2985,22 @@ evaluate_subexp_for_address (struct expr
       else
 	return address_of_variable (var, exp->elts[pc + 1].block);
 
+    case OP_VAR_MSYM_VALUE:
+      {
+	(*pos) += 4;
+
+	value *val = evaluate_var_msym_value (noside,
+					      exp->elts[pc + 1].objfile,
+					      exp->elts[pc + 2].msymbol);
+	if (noside == EVAL_AVOID_SIDE_EFFECTS)
+	  {
+	    struct type *type = lookup_pointer_type (value_type (val));
+	    return value_zero (type, not_lval);
+	  }
+	else
+	  return value_addr (val);
+      }
+
     case OP_SCOPE:
       tem = longest_to_int (exp->elts[pc + 2].longconst);
       (*pos) += 5 + BYTES_TO_EXP_ELEM (tem + 1);
@@ -3031,6 +3139,23 @@ evaluate_subexp_for_sizeof (struct expre
 	(*pos) += 4;
       break;
 
+    case OP_VAR_MSYM_VALUE:
+      {
+	(*pos) += 4;
+
+	minimal_symbol *msymbol = exp->elts[pc + 2].msymbol;
+	value *val = evaluate_var_msym_value (noside,
+					      exp->elts[pc + 1].objfile,
+					      msymbol);
+
+	type = value_type (val);
+	if (TYPE_CODE (type) == TYPE_CODE_ERROR)
+	  error_unknown_type (MSYMBOL_PRINT_NAME (msymbol));
+
+	return value_from_longest (size_type, TYPE_LENGTH (type));
+      }
+      break;
+
       /* Deal with the special case if NOSIDE is EVAL_NORMAL and the resulting
 	 type of the subscript is a variable length array type. In this case we
 	 must re-evaluate the right hand side of the subcription to allow
@@ -3078,6 +3203,61 @@ evaluate_subexp_for_sizeof (struct expre
   return value_from_longest (size_type, (LONGEST) TYPE_LENGTH (type));
 }
 
+/* Evaluate a subexpression of EXP, at index *POS, and return a value
+   for that subexpression cast to TO_TYPE.  Advance *POS over the
+   subexpression.  */
+
+static value *
+evaluate_subexp_for_cast (expression *exp, int *pos,
+			  enum noside noside,
+			  struct type *to_type)
+{
+  int pc = *pos;
+
+  /* Don't let symbols be evaluated with evaluate_subexp because that
+     throws an "unknown type" error for no-debug data symbols.
+     Instead, we want the cast to reinterpret the symbol.  */
+  if (exp->elts[pc].opcode == OP_VAR_MSYM_VALUE
+      || exp->elts[pc].opcode == OP_VAR_VALUE)
+    {
+      (*pos) += 4;
+
+      value *val;
+      if (exp->elts[pc].opcode == OP_VAR_MSYM_VALUE)
+	{
+	  if (noside == EVAL_AVOID_SIDE_EFFECTS)
+	    return value_zero (to_type, not_lval);
+
+	  val = evaluate_var_msym_value (noside,
+					 exp->elts[pc + 1].objfile,
+					 exp->elts[pc + 2].msymbol);
+	}
+      else
+	val = evaluate_var_value (noside,
+				  exp->elts[pc + 1].block,
+				  exp->elts[pc + 2].symbol);
+
+      if (noside == EVAL_SKIP)
+	return eval_skip_value (exp);
+
+      val = value_cast (to_type, val);
+
+      /* Don't allow e.g. '&(int)var_with_no_debug_info'.  */
+      if (VALUE_LVAL (val) == lval_memory)
+	{
+	  if (value_lazy (val))
+	    value_fetch_lazy (val);
+	  VALUE_LVAL (val) = not_lval;
+	}
+      return val;
+    }
+
+  value *val = evaluate_subexp (to_type, exp, pos, noside);
+  if (noside == EVAL_SKIP)
+    return eval_skip_value (exp);
+  return value_cast (to_type, val);
+}
+
 /* Parse a type expression in the string [P..P+LENGTH).  */
 
 struct type *
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/event-loop.c ./gdb/event-loop.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/event-loop.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/event-loop.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Event loop machinery for GDB, the GNU debugger.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
 
    This file is part of GDB.
@@ -1270,7 +1270,7 @@ poll_timers (void)
       /* Delete the timer before calling the callback, not after, in
 	 case the callback itself decides to try deleting the timer
 	 too.  */
-      xfree (timer_ptr);
+      delete timer_ptr;
 
       /* Call the procedure associated with that timer.  */
       (proc) (client_data);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/event-loop.h ./gdb/event-loop.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/event-loop.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/event-loop.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Definitions used by the GDB event loop.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/event-top.c ./gdb/event-top.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/event-top.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/event-top.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Top level stuff for GDB, the GNU debugger.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
 
@@ -48,7 +48,7 @@
 /* readline defines this.  */
 #undef savestring
 
-static char *top_level_prompt (void);
+static std::string top_level_prompt ();
 
 /* Signal handlers.  */
 #ifdef SIGQUIT
@@ -68,8 +68,8 @@ static void async_do_nothing (gdb_client
 static void async_disconnect (gdb_client_data);
 #endif
 static void async_float_handler (gdb_client_data);
-#ifdef STOP_SIGNAL
-static void async_stop_sig (gdb_client_data);
+#ifdef SIGTSTP
+static void async_sigtstp_handler (gdb_client_data);
 #endif
 static void async_sigterm_handler (gdb_client_data arg);
 
@@ -111,7 +111,7 @@ static struct async_signal_handler *sigh
 static struct async_signal_handler *sigquit_token;
 #endif
 static struct async_signal_handler *sigfpe_token;
-#ifdef STOP_SIGNAL
+#ifdef SIGTSTP
 static struct async_signal_handler *sigtstp_token;
 #endif
 static struct async_signal_handler *async_sigterm_token;
@@ -352,16 +352,13 @@ gdb_rl_callback_handler_reinstall (void)
 void
 display_gdb_prompt (const char *new_prompt)
 {
-  char *actual_gdb_prompt = NULL;
-  struct cleanup *old_chain;
+  std::string actual_gdb_prompt;
 
   annotate_display_prompt ();
 
   /* Reset the nesting depth used when trace-commands is set.  */
   reset_command_nest_depth ();
 
-  old_chain = make_cleanup (free_current_contents, &actual_gdb_prompt);
-
   /* Do not call the python hook on an explicit prompt change as
      passed to this function, as this forms a secondary/local prompt,
      IE, displayed but not set.  */
@@ -391,7 +388,6 @@ display_gdb_prompt (const char *new_prom
 
 	  if (current_ui->command_editing)
 	    gdb_rl_callback_handler_remove ();
-	  do_cleanups (old_chain);
 	  return;
 	}
       else if (ui->prompt_state == PROMPT_NEEDED)
@@ -402,12 +398,12 @@ display_gdb_prompt (const char *new_prom
 	}
     }
   else
-    actual_gdb_prompt = xstrdup (new_prompt);
+    actual_gdb_prompt = new_prompt;
 
   if (current_ui->command_editing)
     {
       gdb_rl_callback_handler_remove ();
-      gdb_rl_callback_handler_install (actual_gdb_prompt);
+      gdb_rl_callback_handler_install (actual_gdb_prompt.c_str ());
     }
   /* new_prompt at this point can be the top of the stack or the one
      passed in.  It can't be NULL.  */
@@ -416,19 +412,16 @@ display_gdb_prompt (const char *new_prom
       /* Don't use a _filtered function here.  It causes the assumed
          character position to be off, since the newline we read from
          the user is not accounted for.  */
-      fputs_unfiltered (actual_gdb_prompt, gdb_stdout);
+      fputs_unfiltered (actual_gdb_prompt.c_str (), gdb_stdout);
       gdb_flush (gdb_stdout);
     }
-
-  do_cleanups (old_chain);
 }
 
 /* Return the top level prompt, as specified by "set prompt", possibly
    overriden by the python gdb.prompt_hook hook, and then composed
-   with the prompt prefix and suffix (annotations).  The caller is
-   responsible for freeing the returned string.  */
+   with the prompt prefix and suffix (annotations).  */
 
-static char *
+static std::string
 top_level_prompt (void)
 {
   char *prompt;
@@ -448,10 +441,10 @@ top_level_prompt (void)
 	 beginning.  */
       const char suffix[] = "\n\032\032prompt\n";
 
-      return concat (prefix, prompt, suffix, (char *) NULL);
+      return std::string (prefix) + prompt + suffix;
     }
 
-  return xstrdup (prompt);
+  return prompt;
 }
 
 /* See top.h.  */
@@ -494,7 +487,7 @@ stdin_event_handler (int error, gdb_clie
       else
 	{
 	  /* Simply delete the UI.  */
-	  delete_ui (ui);
+	  delete ui;
 	}
     }
   else
@@ -548,7 +541,7 @@ async_enable_stdin (void)
 
   if (ui->prompt_state == PROMPT_BLOCKED)
     {
-      target_terminal_ours ();
+      target_terminal::ours ();
       ui_register_input_event_handler (ui);
       ui->prompt_state = PROMPT_NEEDED;
     }
@@ -572,10 +565,10 @@ async_disable_stdin (void)
    a whole command.  */
 
 void
-command_handler (char *command)
+command_handler (const char *command)
 {
   struct ui *ui = current_ui;
-  char *c;
+  const char *c;
 
   if (ui->instream == ui->stdin_stream)
     reinitialize_more_filter ();
@@ -676,7 +669,8 @@ handle_line_of_input (struct buffer *cmd
     }
 
 #define SERVER_COMMAND_PREFIX "server "
-  if (startswith (cmd, SERVER_COMMAND_PREFIX))
+  server_command = startswith (cmd, SERVER_COMMAND_PREFIX);
+  if (server_command)
     {
       /* Note that we don't set `saved_command_line'.  Between this
          and the check in dont_repeat, this insures that repeating
@@ -766,7 +760,7 @@ command_line_handler (char *rl)
 	 hung up but GDB is still alive.  In such a case, we just quit
 	 gdb killing the inferior program too.  */
       printf_unfiltered ("quit\n");
-      execute_command ((char *) "quit", 1);
+      execute_command ("quit", 1);
     }
   else if (cmd == NULL)
     {
@@ -919,9 +913,9 @@ async_init_signals (void)
   sigfpe_token =
     create_async_signal_handler (async_float_handler, NULL);
 
-#ifdef STOP_SIGNAL
+#ifdef SIGTSTP
   sigtstp_token =
-    create_async_signal_handler (async_stop_sig, NULL);
+    create_async_signal_handler (async_sigtstp_handler, NULL);
 #endif
 }
 
@@ -957,7 +951,7 @@ default_quit_handler (void)
 {
   if (check_quit_flag ())
     {
-      if (target_terminal_is_ours ())
+      if (target_terminal::is_ours ())
 	quit ();
       else
 	target_pass_ctrlc ();
@@ -967,51 +961,6 @@ default_quit_handler (void)
 /* See defs.h.  */
 quit_handler_ftype *quit_handler = default_quit_handler;
 
-/* Data for make_cleanup_override_quit_handler.  Wrap the previous
-   handler pointer in a data struct because it's not portable to cast
-   a function pointer to a data pointer, which is what make_cleanup
-   expects.  */
-struct quit_handler_cleanup_data
-{
-  /* The previous quit handler.  */
-  quit_handler_ftype *prev_handler;
-};
-
-/* Cleanup call that restores the previous quit handler.  */
-
-static void
-restore_quit_handler (void *arg)
-{
-  struct quit_handler_cleanup_data *data
-    = (struct quit_handler_cleanup_data *) arg;
-
-  quit_handler = data->prev_handler;
-}
-
-/* Destructor for the quit handler cleanup.  */
-
-static void
-restore_quit_handler_dtor (void *arg)
-{
-  xfree (arg);
-}
-
-/* See defs.h.  */
-
-struct cleanup *
-make_cleanup_override_quit_handler (quit_handler_ftype *new_quit_handler)
-{
-  struct cleanup *old_chain;
-  struct quit_handler_cleanup_data *data;
-
-  data = XNEW (struct quit_handler_cleanup_data);
-  data->prev_handler = quit_handler;
-  old_chain = make_cleanup_dtor (restore_quit_handler, data,
-				 restore_quit_handler_dtor);
-  quit_handler = new_quit_handler;
-  return old_chain;
-}
-
 /* Handle a SIGINT.  */
 
 void
@@ -1164,20 +1113,19 @@ async_disconnect (gdb_client_data arg)
 }
 #endif
 
-#ifdef STOP_SIGNAL
+#ifdef SIGTSTP
 void
-handle_stop_sig (int sig)
+handle_sigtstp (int sig)
 {
   mark_async_signal_handler (sigtstp_token);
-  signal (sig, handle_stop_sig);
+  signal (sig, handle_sigtstp);
 }
 
 static void
-async_stop_sig (gdb_client_data arg)
+async_sigtstp_handler (gdb_client_data arg)
 {
   char *prompt = get_prompt ();
 
-#if STOP_SIGNAL == SIGTSTP
   signal (SIGTSTP, SIG_DFL);
 #if HAVE_SIGPROCMASK
   {
@@ -1190,10 +1138,7 @@ async_stop_sig (gdb_client_data arg)
   sigsetmask (0);
 #endif
   raise (SIGTSTP);
-  signal (SIGTSTP, handle_stop_sig);
-#else
-  signal (STOP_SIGNAL, handle_stop_sig);
-#endif
+  signal (SIGTSTP, handle_sigtstp);
   printf_unfiltered ("%s", prompt);
   gdb_flush (gdb_stdout);
 
@@ -1201,7 +1146,7 @@ async_stop_sig (gdb_client_data arg)
      nothing.  */
   dont_repeat ();
 }
-#endif /* STOP_SIGNAL */
+#endif /* SIGTSTP */
 
 /* Tell the event loop what to do if SIGFPE is received.
    See event-signal.c.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/event-top.h ./gdb/event-top.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/event-top.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/event-top.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions used by event-top.c, for GDB, the GNU debugger.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
 
@@ -22,6 +22,8 @@
 #ifndef EVENT_TOP_H
 #define EVENT_TOP_H
 
+#include <signal.h>
+
 struct cmd_list_element;
 
 /* Exported functions from event-top.c.
@@ -34,16 +36,12 @@ extern void async_init_signals (void);
 extern void change_line_handler (int);
 
 extern void command_line_handler (char *rl);
-extern void command_handler (char *command);
+extern void command_handler (const char *command);
 
-/* Signal to catch ^Z typed while reading a command: SIGTSTP or SIGCONT.  */
-#ifndef STOP_SIGNAL
-#include <signal.h>
 #ifdef SIGTSTP
-#define STOP_SIGNAL SIGTSTP
-extern void handle_stop_sig (int sig);
-#endif
+extern void handle_sigtstp (int sig);
 #endif
+
 extern void handle_sigint (int sig);
 extern void handle_sigterm (int sig);
 extern void async_request_quit (void *arg);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/exceptions.c ./gdb/exceptions.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/exceptions.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/exceptions.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Exception (throw catch) mechanism, for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -27,21 +27,22 @@
 #include "serial.h"
 #include "gdbthread.h"
 #include "top.h"
+#include "common/gdb_optional.h"
 
 static void
 print_flush (void)
 {
   struct ui *ui = current_ui;
   struct serial *gdb_stdout_serial;
-  struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
 
   if (deprecated_error_begin_hook)
     deprecated_error_begin_hook ();
 
+  gdb::optional<target_terminal::scoped_restore_terminal_state> term_state;
   if (target_supports_terminal_ours ())
     {
-      make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      term_state.emplace ();
+      target_terminal::ours_for_output ();
     }
 
   /* We want all output to appear now, before we print the error.  We
@@ -66,8 +67,6 @@ print_flush (void)
     }
 
   annotate_error_begin ();
-
-  do_cleanups (old_chain);
 }
 
 static void
@@ -135,128 +134,6 @@ exception_fprintf (struct ui_file *file,
     }
 }
 
-/* Call FUNC(UIOUT, FUNC_ARGS) but wrapped within an exception
-   handler.  If an exception (enum return_reason) is thrown using
-   throw_exception() than all cleanups installed since
-   catch_exceptions() was entered are invoked, the (-ve) exception
-   value is then returned by catch_exceptions.  If FUNC() returns
-   normally (with a positive or zero return value) then that value is
-   returned by catch_exceptions().  It is an internal_error() for
-   FUNC() to return a negative value.
-
-   See exceptions.h for further usage details.  */
-
-/* MAYBE: cagney/1999-11-05: catch_errors() in conjunction with
-   error() et al. could maintain a set of flags that indicate the
-   current state of each of the longjmp buffers.  This would give the
-   longjmp code the chance to detect a longjmp botch (before it gets
-   to longjmperror()).  Prior to 1999-11-05 this wasn't possible as
-   code also randomly used a SET_TOP_LEVEL macro that directly
-   initialized the longjmp buffers.  */
-
-int
-catch_exceptions (struct ui_out *uiout,
-		  catch_exceptions_ftype *func,
-		  void *func_args,
-		  return_mask mask)
-{
-  return catch_exceptions_with_msg (uiout, func, func_args, NULL, mask);
-}
-
-int
-catch_exceptions_with_msg (struct ui_out *func_uiout,
-		  	   catch_exceptions_ftype *func,
-		  	   void *func_args,
-			   char **gdberrmsg,
-		  	   return_mask mask)
-{
-  struct gdb_exception exception = exception_none;
-  volatile int val = 0;
-  struct ui_out *saved_uiout;
-
-  /* Save and override the global ``struct ui_out'' builder.  */
-  saved_uiout = current_uiout;
-  current_uiout = func_uiout;
-
-  TRY
-    {
-      val = (*func) (current_uiout, func_args);
-    }
-  CATCH (ex, RETURN_MASK_ALL)
-    {
-      exception = ex;
-    }
-  END_CATCH
-
-  /* Restore the global builder.  */
-  current_uiout = saved_uiout;
-
-  if (exception.reason < 0 && (mask & RETURN_MASK (exception.reason)) == 0)
-    {
-      /* The caller didn't request that the event be caught.
-	 Rethrow.  */
-      throw_exception (exception);
-    }
-
-  exception_print (gdb_stderr, exception);
-  gdb_assert (val >= 0);
-  gdb_assert (exception.reason <= 0);
-  if (exception.reason < 0)
-    {
-      /* If caller wants a copy of the low-level error message, make
-	 one.  This is used in the case of a silent error whereby the
-	 caller may optionally want to issue the message.  */
-      if (gdberrmsg != NULL)
-	{
-	  if (exception.message != NULL)
-	    *gdberrmsg = xstrdup (exception.message);
-	  else
-	    *gdberrmsg = NULL;
-	}
-      return exception.reason;
-    }
-  return val;
-}
-
-/* This function is superseded by catch_exceptions().  */
-
-int
-catch_errors (catch_errors_ftype *func, void *func_args,
-	      const char *errstring, return_mask mask)
-{
-  struct gdb_exception exception = exception_none;
-  volatile int val = 0;
-  struct ui_out *saved_uiout;
-
-  /* Save the global ``struct ui_out'' builder.  */
-  saved_uiout = current_uiout;
-
-  TRY
-    {
-      val = func (func_args);
-    }
-  CATCH (ex, RETURN_MASK_ALL)
-    {
-      exception = ex;
-    }
-  END_CATCH
-
-  /* Restore the global builder.  */
-  current_uiout = saved_uiout;
-
-  if (exception.reason < 0 && (mask & RETURN_MASK (exception.reason)) == 0)
-    {
-      /* The caller didn't request that the event be caught.
-	 Rethrow.  */
-      throw_exception (exception);
-    }
-
-  exception_fprintf (gdb_stderr, exception, "%s", errstring);
-  if (exception.reason != 0)
-    return 0;
-  return val;
-}
-
 /* See exceptions.h.  */
 
 int
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/exceptions.h ./gdb/exceptions.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/exceptions.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/exceptions.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Exception (throw catch) mechanism, for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -29,66 +29,6 @@ extern void exception_fprintf (struct ui
 			       const char *prefix,
 			       ...) ATTRIBUTE_PRINTF (3, 4);
 
-/* Call FUNC(UIOUT, FUNC_ARGS) but wrapped within an exception
-   handler.  If an exception (enum return_reason) is thrown using
-   throw_exception() than all cleanups installed since
-   catch_exceptions() was entered are invoked, the (-ve) exception
-   value is then returned by catch_exceptions.  If FUNC() returns
-   normally (with a positive or zero return value) then that value is
-   returned by catch_exceptions().  It is an internal_error() for
-   FUNC() to return a negative value.
-
-   For the period of the FUNC() call: UIOUT is installed as the output
-   builder; ERRSTRING is installed as the error/quit message; and a
-   new cleanup_chain is established.  The old values are restored
-   before catch_exceptions() returns.
-
-   The variant catch_exceptions_with_msg() is the same as
-   catch_exceptions() but adds the ability to return an allocated
-   copy of the gdb error message.  This is used when a silent error is 
-   issued and the caller wants to manually issue the error message.
-
-   MASK specifies what to catch; it is normally set to
-   RETURN_MASK_ALL, if for no other reason than that the code which
-   calls catch_errors might not be set up to deal with a quit which
-   isn't caught.  But if the code can deal with it, it generally
-   should be RETURN_MASK_ERROR, unless for some reason it is more
-   useful to abort only the portion of the operation inside the
-   catch_errors.  Note that quit should return to the command line
-   fairly quickly, even if some further processing is being done.
-
-   FIXME; cagney/2001-08-13: The need to override the global UIOUT
-   builder variable should just go away.
-
-   This function supersedes catch_errors().
-
-   This function uses SETJMP() and LONGJUMP().  */
-
-struct ui_out;
-typedef int (catch_exceptions_ftype) (struct ui_out *ui_out, void *args);
-extern int catch_exceptions (struct ui_out *uiout,
-			     catch_exceptions_ftype *func, void *func_args,
-			     return_mask mask);
-typedef void (catch_exception_ftype) (struct ui_out *ui_out, void *args);
-extern int catch_exceptions_with_msg (struct ui_out *uiout,
-			     	      catch_exceptions_ftype *func, 
-			     	      void *func_args,
-			     	      char **gdberrmsg,
-				      return_mask mask);
-
-/* If CATCH_ERRORS_FTYPE throws an error, catch_errors() returns zero
-   otherwize the result from CATCH_ERRORS_FTYPE is returned.  It is
-   probably useful for CATCH_ERRORS_FTYPE to always return a non-zero
-   value.  It's unfortunate that, catch_errors() does not return an
-   indication of the exact exception that it caught - quit_flag might
-   help.
-
-   This function is superseded by catch_exceptions().  */
-
-typedef int (catch_errors_ftype) (void *);
-extern int catch_errors (catch_errors_ftype *, void *,
-			 const char *, return_mask);
-
 /* Compare two exception objects for print equality.  */
 extern int exception_print_same (struct gdb_exception e1,
 				 struct gdb_exception e2);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/exec.c ./gdb/exec.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/exec.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/exec.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Work with executable files, for GDB. 
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -45,20 +45,14 @@
 #include "solist.h"
 #include <algorithm>
 
-void (*deprecated_file_changed_hook) (char *);
+void (*deprecated_file_changed_hook) (const char *);
 
 /* Prototypes for local functions */
 
-static void file_command (char *, int);
-
-static void set_section_command (char *, int);
-
 static void exec_files_info (struct target_ops *);
 
 static void init_exec_ops (void);
 
-void _initialize_exec (void);
-
 /* The target vector for executable files.  */
 
 static struct target_ops exec_ops;
@@ -113,17 +107,14 @@ static void
 exec_close_1 (struct target_ops *self)
 {
   struct program_space *ss;
-  struct cleanup *old_chain;
+  scoped_restore_current_program_space restore_pspace;
 
-  old_chain = save_current_program_space ();
   ALL_PSPACES (ss)
-  {
-    set_current_program_space (ss);
-    clear_section_table (current_target_sections);
-    exec_close ();
-  }
-
-  do_cleanups (old_chain);
+    {
+      set_current_program_space (ss);
+      clear_section_table (current_target_sections);
+      exec_close ();
+    }
 }
 
 void
@@ -252,15 +243,10 @@ exec_file_locate_attach (int pid, int de
 void
 exec_file_attach (const char *filename, int from_tty)
 {
-  struct cleanup *cleanups;
-
   /* First, acquire a reference to the current exec_bfd.  We release
      this at the end of the function; but acquiring it now lets the
      BFD cache return it if this call refers to the same file.  */
-  gdb_bfd_ref (exec_bfd);
-  gdb_bfd_ref_ptr exec_bfd_holder (exec_bfd);
-
-  cleanups = make_cleanup (null_cleanup, NULL);
+  gdb_bfd_ref_ptr exec_bfd_holder = new_bfd_ref (exec_bfd);
 
   /* Remove any previous exec file.  */
   exec_close ();
@@ -277,7 +263,7 @@ exec_file_attach (const char *filename, 
   else
     {
       int load_via_target = 0;
-      char *scratch_pathname, *canonical_pathname;
+      const char *scratch_pathname, *canonical_pathname;
       int scratch_chan;
       struct target_section *sections = NULL, *sections_end = NULL;
       char **matching;
@@ -290,6 +276,7 @@ exec_file_attach (const char *filename, 
 	    load_via_target = 1;
 	}
 
+      gdb::unique_xmalloc_ptr<char> canonical_storage, scratch_storage;
       if (load_via_target)
 	{
 	  /* gdb_bfd_fopen does not support "target:" filenames.  */
@@ -298,19 +285,18 @@ exec_file_attach (const char *filename, 
 		       "not supported for %s sysroots"),
 		     TARGET_SYSROOT_PREFIX);
 
-	  scratch_pathname = xstrdup (filename);
-	  make_cleanup (xfree, scratch_pathname);
-
+	  scratch_pathname = filename;
 	  scratch_chan = -1;
-
 	  canonical_pathname = scratch_pathname;
 	}
       else
 	{
+	  char *temp_pathname;
+
 	  scratch_chan = openp (getenv ("PATH"), OPF_TRY_CWD_FIRST,
 				filename, write_files ?
 				O_RDWR | O_BINARY : O_RDONLY | O_BINARY,
-				&scratch_pathname);
+				&temp_pathname);
 #if defined(__GO32__) || defined(_WIN32) || defined(__CYGWIN__)
 	  if (scratch_chan < 0)
 	    {
@@ -321,18 +307,19 @@ exec_file_attach (const char *filename, 
 				    exename, write_files ?
 				    O_RDWR | O_BINARY
 				    : O_RDONLY | O_BINARY,
-				    &scratch_pathname);
+				    &temp_pathname);
 	    }
 #endif
 	  if (scratch_chan < 0)
 	    perror_with_name (filename);
 
-	  make_cleanup (xfree, scratch_pathname);
+	  scratch_storage.reset (temp_pathname);
+	  scratch_pathname = temp_pathname;
 
 	  /* gdb_bfd_open (and its variants) prefers canonicalized
 	     pathname for better BFD caching.  */
-	  canonical_pathname = gdb_realpath (scratch_pathname);
-	  make_cleanup (xfree, canonical_pathname);
+	  canonical_storage = gdb_realpath (scratch_pathname);
+	  canonical_pathname = canonical_storage.get ();
 	}
 
       gdb_bfd_ref_ptr temp;
@@ -355,7 +342,7 @@ exec_file_attach (const char *filename, 
       if (load_via_target)
 	exec_filename = xstrdup (bfd_get_filename (exec_bfd));
       else
-	exec_filename = gdb_realpath_keepfile (scratch_pathname);
+	exec_filename = gdb_realpath_keepfile (scratch_pathname).release ();
 
       if (!bfd_check_format_matches (exec_bfd, bfd_object, &matching))
 	{
@@ -393,8 +380,6 @@ exec_file_attach (const char *filename, 
 	(*deprecated_exec_file_display_hook) (filename);
     }
 
-  do_cleanups (cleanups);
-
   bfd_cache_close_all ();
   observer_notify_executable_changed ();
 }
@@ -408,11 +393,8 @@ exec_file_attach (const char *filename, 
    If ARGS is NULL, we just want to close the exec file.  */
 
 static void
-exec_file_command (char *args, int from_tty)
+exec_file_command (const char *args, int from_tty)
 {
-  char **argv;
-  char *filename;
-
   if (from_tty && target_has_execution
       && !query (_("A program is being debugged already.\n"
 		   "Are you sure you want to change the file? ")))
@@ -420,13 +402,11 @@ exec_file_command (char *args, int from_
 
   if (args)
     {
-      struct cleanup *cleanups;
-
       /* Scan through the args and pick up the first non option arg
          as the filename.  */
 
-      argv = gdb_buildargv (args);
-      cleanups = make_cleanup_freeargv (argv);
+      gdb_argv built_argv (args);
+      char **argv = built_argv.get ();
 
       for (; (*argv != NULL) && (**argv == '-'); argv++)
         {;
@@ -434,11 +414,8 @@ exec_file_command (char *args, int from_
       if (*argv == NULL)
         error (_("No executable file name was specified"));
 
-      filename = tilde_expand (*argv);
-      make_cleanup (xfree, filename);
-      exec_file_attach (filename, from_tty);
-
-      do_cleanups (cleanups);
+      gdb::unique_xmalloc_ptr<char> filename (tilde_expand (*argv));
+      exec_file_attach (filename.get (), from_tty);
     }
   else
     exec_file_attach (NULL, from_tty);
@@ -449,7 +426,7 @@ exec_file_command (char *args, int from_
    command was added?  */
 
 static void
-file_command (char *arg, int from_tty)
+file_command (const char *arg, int from_tty)
 {
   /* FIXME, if we lose on reading the symbol file, we should revert
      the exec file, but that's rough.  */
@@ -716,20 +693,18 @@ exec_read_partial_read_only (gdb_byte *r
   return TARGET_XFER_E_IO;
 }
 
-/* Appends all read-only memory ranges found in the target section
+/* Return all read-only memory ranges found in the target section
    table defined by SECTIONS and SECTIONS_END, starting at (and
-   intersected with) MEMADDR for LEN bytes.  Returns the augmented
-   VEC.  */
+   intersected with) MEMADDR for LEN bytes.  */
 
-static VEC(mem_range_s) *
-section_table_available_memory (VEC(mem_range_s) *memory,
-				CORE_ADDR memaddr, ULONGEST len,
+static std::vector<mem_range>
+section_table_available_memory (CORE_ADDR memaddr, ULONGEST len,
 				struct target_section *sections,
 				struct target_section *sections_end)
 {
-  struct target_section *p;
+  std::vector<mem_range> memory;
 
-  for (p = sections; p < sections_end; p++)
+  for (target_section *p = sections; p < sections_end; p++)
     {
       if ((bfd_get_section_flags (p->the_bfd_section->owner,
 				  p->the_bfd_section)
@@ -740,7 +715,6 @@ section_table_available_memory (VEC(mem_
       if (mem_ranges_overlap (p->addr, p->endaddr - p->addr, memaddr, len))
 	{
 	  ULONGEST lo1, hi1, lo2, hi2;
-	  struct mem_range *r;
 
 	  lo1 = memaddr;
 	  hi1 = memaddr + len;
@@ -748,10 +722,10 @@ section_table_available_memory (VEC(mem_
 	  lo2 = p->addr;
 	  hi2 = p->endaddr;
 
-	  r = VEC_safe_push (mem_range_s, memory, NULL);
+	  CORE_ADDR start = std::max (lo1, lo2);
+	  int length = std::min (hi1, hi2) - start;
 
-	  r->start = std::max (lo1, lo2);
-	  r->length = std::min (hi1, hi2) - r->start;
+	  memory.emplace_back (start, length);
 	}
     }
 
@@ -762,51 +736,37 @@ enum target_xfer_status
 section_table_read_available_memory (gdb_byte *readbuf, ULONGEST offset,
 				     ULONGEST len, ULONGEST *xfered_len)
 {
-  VEC(mem_range_s) *available_memory = NULL;
-  struct target_section_table *table;
-  struct cleanup *old_chain;
-  mem_range_s *r;
-  int i;
+  target_section_table *table = target_get_section_table (&exec_ops);
+  std::vector<mem_range> available_memory
+    = section_table_available_memory (offset, len,
+				      table->sections, table->sections_end);
 
-  table = target_get_section_table (&exec_ops);
-  available_memory = section_table_available_memory (available_memory,
-						     offset, len,
-						     table->sections,
-						     table->sections_end);
+  normalize_mem_ranges (&available_memory);
 
-  old_chain = make_cleanup (VEC_cleanup(mem_range_s),
-			    &available_memory);
-
-  normalize_mem_ranges (available_memory);
-
-  for (i = 0;
-       VEC_iterate (mem_range_s, available_memory, i, r);
-       i++)
+  for (const mem_range &r : available_memory)
     {
-      if (mem_ranges_overlap (r->start, r->length, offset, len))
+      if (mem_ranges_overlap (r.start, r.length, offset, len))
 	{
 	  CORE_ADDR end;
 	  enum target_xfer_status status;
 
 	  /* Get the intersection window.  */
-	  end = std::min<CORE_ADDR> (offset + len, r->start + r->length);
+	  end = std::min<CORE_ADDR> (offset + len, r.start + r.length);
 
 	  gdb_assert (end - offset <= len);
 
-	  if (offset >= r->start)
+	  if (offset >= r.start)
 	    status = exec_read_partial_read_only (readbuf, offset,
 						  end - offset,
 						  xfered_len);
 	  else
 	    {
-	      *xfered_len = r->start - offset;
+	      *xfered_len = r.start - offset;
 	      status = TARGET_XFER_UNAVAILABLE;
 	    }
-	  do_cleanups (old_chain);
 	  return status;
 	}
     }
-  do_cleanups (old_chain);
 
   *xfered_len = len;
   return TARGET_XFER_UNAVAILABLE;
@@ -993,10 +953,10 @@ exec_files_info (struct target_ops *t)
 }
 
 static void
-set_section_command (char *args, int from_tty)
+set_section_command (const char *args, int from_tty)
 {
   struct target_section *p;
-  char *secname;
+  const char *secname;
   unsigned seclen;
   unsigned long secaddr;
   char secprint[100];
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/exec.h ./gdb/exec.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/exec.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/exec.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Work with executable files, for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/expprint.c ./gdb/expprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/expprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/expprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Print in infix form a struct expression.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -105,14 +105,14 @@ print_subexp_standard (struct expression
       }
       return;
 
-    case OP_DOUBLE:
+    case OP_FLOAT:
       {
 	struct value_print_options opts;
 
 	get_no_prettyformat_print_options (&opts);
 	(*pos) += 3;
-	value_print (value_from_double (exp->elts[pc + 1].type,
-					exp->elts[pc + 2].doubleconst),
+	value_print (value_from_contents (exp->elts[pc + 1].type,
+					  exp->elts[pc + 2].floatconst),
 		     stream, &opts);
       }
       return;
@@ -134,6 +134,21 @@ print_subexp_standard (struct expression
       }
       return;
 
+    case OP_VAR_MSYM_VALUE:
+      {
+	(*pos) += 3;
+	fputs_filtered (MSYMBOL_PRINT_NAME (exp->elts[pc + 2].msymbol), stream);
+      }
+      return;
+
+    case OP_FUNC_STATIC_VAR:
+      {
+	tem = longest_to_int (exp->elts[pc + 1].longconst);
+	(*pos) += 3 + BYTES_TO_EXP_ELEM (tem + 1);
+	fputs_filtered (&exp->elts[pc + 1].string, stream);
+      }
+      return;
+
     case OP_VAR_ENTRY_VALUE:
       {
 	(*pos) += 2;
@@ -471,18 +486,6 @@ print_subexp_standard (struct expression
 	fputs_filtered (")", stream);
       return;
 
-    case UNOP_MEMVAL_TLS:
-      (*pos) += 3;
-      if ((int) prec > (int) PREC_PREFIX)
-	fputs_filtered ("(", stream);
-      fputs_filtered ("{", stream);
-      type_print (exp->elts[pc + 2].type, "", stream, 0);
-      fputs_filtered ("} ", stream);
-      print_subexp (exp, pos, stream, PREC_PREFIX);
-      if ((int) prec > (int) PREC_PREFIX)
-	fputs_filtered (")", stream);
-      return;
-
     case BINOP_ASSIGN_MODIFY:
       opcode = exp->elts[pc + 1].opcode;
       (*pos) += 2;
@@ -540,11 +543,15 @@ print_subexp_standard (struct expression
 
     case TYPE_INSTANCE:
       {
-	LONGEST count = exp->elts[pc + 1].longconst;
+	type_instance_flags flags
+	  = (type_instance_flag_value) longest_to_int (exp->elts[pc + 1].longconst);
+	LONGEST count = exp->elts[pc + 2].longconst;
 
+	/* The FLAGS.  */
+	(*pos)++;
 	/* The COUNT.  */
 	(*pos)++;
-	fputs_unfiltered ("TypesInstance(", stream);
+	fputs_unfiltered ("TypeInstance(", stream);
 	while (count-- > 0)
 	  {
 	    type_print (exp->elts[(*pos)++].type, "", stream, 0);
@@ -555,6 +562,12 @@ print_subexp_standard (struct expression
 	/* Ending COUNT and ending TYPE_INSTANCE.  */
 	(*pos) += 2;
 	print_subexp (exp, pos, stream, PREC_PREFIX);
+
+	if (flags & TYPE_INSTANCE_FLAG_CONST)
+	  fputs_unfiltered (",const", stream);
+	if (flags & TYPE_INSTANCE_FLAG_VOLATILE)
+	  fputs_unfiltered (",volatile", stream);
+
 	fputs_unfiltered (")", stream);
 	return;
       }
@@ -858,13 +871,14 @@ dump_subexp_body_standard (struct expres
 			(long) exp->elts[elt + 1].longconst);
       elt += 3;
       break;
-    case OP_DOUBLE:
+    case OP_FLOAT:
       fprintf_filtered (stream, "Type @");
       gdb_print_host_address (exp->elts[elt].type, stream);
       fprintf_filtered (stream, " (");
       type_print (exp->elts[elt].type, NULL, stream, 0);
-      fprintf_filtered (stream, "), value %g",
-			(double) exp->elts[elt + 1].doubleconst);
+      fprintf_filtered (stream, "), value ");
+      print_floating (exp->elts[elt + 1].floatconst,
+		      exp->elts[elt].type, stream);
       elt += 3;
       break;
     case OP_VAR_VALUE:
@@ -876,6 +890,15 @@ dump_subexp_body_standard (struct expres
 			SYMBOL_PRINT_NAME (exp->elts[elt + 1].symbol));
       elt += 3;
       break;
+    case OP_VAR_MSYM_VALUE:
+      fprintf_filtered (stream, "Objfile @");
+      gdb_print_host_address (exp->elts[elt].objfile, stream);
+      fprintf_filtered (stream, ", msymbol @");
+      gdb_print_host_address (exp->elts[elt + 1].msymbol, stream);
+      fprintf_filtered (stream, " (%s)",
+			MSYMBOL_PRINT_NAME (exp->elts[elt + 1].msymbol));
+      elt += 3;
+      break;
     case OP_VAR_ENTRY_VALUE:
       fprintf_filtered (stream, "Entry value of symbol @");
       gdb_print_host_address (exp->elts[elt].symbol, stream);
@@ -945,16 +968,6 @@ dump_subexp_body_standard (struct expres
       fprintf_filtered (stream, ")");
       elt = dump_subexp (exp, stream, elt + 2);
       break;
-    case UNOP_MEMVAL_TLS:
-      fprintf_filtered (stream, "TLS type @");
-      gdb_print_host_address (exp->elts[elt + 1].type, stream);
-      fprintf_filtered (stream, " (__thread /* \"%s\" */ ",
-                        (exp->elts[elt].objfile == NULL ? "(null)"
-			 : objfile_name (exp->elts[elt].objfile)));
-      type_print (exp->elts[elt + 1].type, NULL, stream, 0);
-      fprintf_filtered (stream, ")");
-      elt = dump_subexp (exp, stream, elt + 3);
-      break;
     case OP_TYPE:
       fprintf_filtered (stream, "Type @");
       gdb_print_host_address (exp->elts[elt].type, stream);
@@ -1005,11 +1018,21 @@ dump_subexp_body_standard (struct expres
 	elt += 4 + BYTES_TO_EXP_ELEM (len + 1);
       }
       break;
-    case TYPE_INSTANCE:
+
+    case OP_FUNC_STATIC_VAR:
       {
-	LONGEST len;
+	int len = longest_to_int (exp->elts[elt].longconst);
+	const char *var_name = &exp->elts[elt + 1].string;
+	fprintf_filtered (stream, "Field name: `%.*s'", len, var_name);
+	elt += 3 + BYTES_TO_EXP_ELEM (len + 1);
+      }
+      break;
 
-	len = exp->elts[elt++].longconst;
+    case TYPE_INSTANCE:
+      {
+	type_instance_flags flags
+	  = (type_instance_flag_value) longest_to_int (exp->elts[elt++].longconst);
+	LONGEST len = exp->elts[elt++].longconst;
 	fprintf_filtered (stream, "%s TypeInstance: ", plongest (len));
 	while (len-- > 0)
 	  {
@@ -1022,6 +1045,22 @@ dump_subexp_body_standard (struct expres
 	    if (len > 0)
 	      fputs_filtered (", ", stream);
 	  }
+
+	fprintf_filtered (stream, " Flags: %s (", hex_string (flags));
+	bool space = false;
+	auto print_one = [&] (const char *mod)
+	  {
+	    if (space)
+	      fputs_filtered (" ", stream);
+	    space = true;
+	    fprintf_filtered (stream, "%s", mod);
+	  };
+	if (flags & TYPE_INSTANCE_FLAG_CONST)
+	  print_one ("const");
+	if (flags & TYPE_INSTANCE_FLAG_VOLATILE)
+	  print_one ("volatile");
+	fprintf_filtered (stream, ")");
+
 	/* Ending LEN and ending TYPE_INSTANCE.  */
 	elt += 2;
 	elt = dump_subexp (exp, stream, elt);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/expression.h ./gdb/expression.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/expression.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/expression.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for expressions stored in reversed prefix form, for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -22,7 +22,6 @@
 
 
 #include "symtab.h"		/* Needed for "struct block" type.  */
-#include "doublest.h"		/* Needed for DOUBLEST.  */
 
 
 /* Definitions for saved C expressions.  */
@@ -64,9 +63,9 @@ union exp_element
   {
     enum exp_opcode opcode;
     struct symbol *symbol;
+    struct minimal_symbol *msymbol;
     LONGEST longconst;
-    DOUBLEST doubleconst;
-    gdb_byte decfloatconst[16];
+    gdb_byte floatconst[16];
     /* Really sizeof (union exp_element) characters (or less for the last
        element of a string).  */
     char string;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/extension.c ./gdb/extension.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/extension.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/extension.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Interface between gdb and its extension languages.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -750,7 +750,7 @@ set_active_ext_lang (const struct extens
   previous->sigint_handler.handler_saved = 0;
   active_ext_lang = now_active;
 
-  if (target_terminal_is_ours ())
+  if (target_terminal::is_ours ())
     {
       /* If the newly active extension language uses cooperative SIGINT
 	 handling then ensure GDB's SIGINT handler is installed.  */
@@ -776,7 +776,7 @@ restore_active_ext_lang (struct active_e
 {
   active_ext_lang = previous->ext_lang;
 
-  if (target_terminal_is_ours ())
+  if (target_terminal::is_ours ())
     {
       /* Restore the previous SIGINT handler if one was saved.  */
       if (previous->sigint_handler.handler_saved)
@@ -1061,8 +1061,6 @@ ext_lang_before_prompt (const char *curr
     }
 }
 
-extern initialize_file_ftype _initialize_extension;
-
 void
 _initialize_extension (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/extension.h ./gdb/extension.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/extension.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/extension.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Interface between gdb and its extension languages.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/extension-priv.h ./gdb/extension-priv.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/extension-priv.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/extension-priv.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Private implementation details of interface between gdb and its
    extension languages.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -23,6 +23,7 @@
 
 #include "extension.h"
 #include <signal.h>
+#include "cli/cli-script.h"
 
 /* The return code for some API calls.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/fbsd-nat.c ./gdb/fbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/fbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/fbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for FreeBSD.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -18,6 +18,7 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "defs.h"
+#include "byte-vector.h"
 #include "gdbcore.h"
 #include "inferior.h"
 #include "regcache.h"
@@ -28,15 +29,20 @@
 #include <sys/types.h>
 #include <sys/procfs.h>
 #include <sys/ptrace.h>
+#include <sys/signal.h>
 #include <sys/sysctl.h>
-#ifdef HAVE_KINFO_GETVMMAP
 #include <sys/user.h>
+#ifdef HAVE_KINFO_GETVMMAP
 #include <libutil.h>
+#else
+#include "filestuff.h"
 #endif
 
 #include "elf-bfd.h"
 #include "fbsd-nat.h"
 
+#include <list>
+
 /* Return the name of a file that can be opened to get the symbols for
    the child process identified by PID.  */
 
@@ -72,6 +78,14 @@ fbsd_pid_to_exec_file (struct target_ops
 }
 
 #ifdef HAVE_KINFO_GETVMMAP
+/* Deleter for std::unique_ptr that invokes free.  */
+
+template <typename T>
+struct free_deleter
+{
+  void operator() (T *ptr) const { free (ptr); }
+};
+
 /* Iterate over all the memory regions in the current inferior,
    calling FUNC for each memory region.  OBFD is passed as the last
    argument to FUNC.  */
@@ -81,20 +95,17 @@ fbsd_find_memory_regions (struct target_
 			  find_memory_region_ftype func, void *obfd)
 {
   pid_t pid = ptid_get_pid (inferior_ptid);
-  struct kinfo_vmentry *vmentl, *kve;
+  struct kinfo_vmentry *kve;
   uint64_t size;
-  struct cleanup *cleanup;
   int i, nitems;
 
-  vmentl = kinfo_getvmmap (pid, &nitems);
+  std::unique_ptr<struct kinfo_vmentry, free_deleter<struct kinfo_vmentry>>
+    vmentl (kinfo_getvmmap (pid, &nitems));
   if (vmentl == NULL)
     perror_with_name (_("Couldn't fetch VM map entries."));
-  cleanup = make_cleanup (free, vmentl);
 
-  for (i = 0; i < nitems; i++)
+  for (i = 0, kve = vmentl.get (); i < nitems; i++, kve++)
     {
-      kve = &vmentl[i];
-
       /* Skip unreadable segments and those where MAP_NOCORE has been set.  */
       if (!(kve->kve_protection & KVME_PROT_READ)
 	  || kve->kve_flags & KVME_FLAG_NOCOREDUMP)
@@ -125,7 +136,6 @@ fbsd_find_memory_regions (struct target_
 	    kve->kve_protection & KVME_PROT_WRITE,
 	    kve->kve_protection & KVME_PROT_EXEC, 1, obfd);
     }
-  do_cleanups (cleanup);
   return 0;
 }
 #else
@@ -159,26 +169,21 @@ fbsd_find_memory_regions (struct target_
 			  find_memory_region_ftype func, void *obfd)
 {
   pid_t pid = ptid_get_pid (inferior_ptid);
-  char *mapfilename;
-  FILE *mapfile;
   unsigned long start, end, size;
   char protection[4];
   int read, write, exec;
-  struct cleanup *cleanup;
 
-  mapfilename = xstrprintf ("/proc/%ld/map", (long) pid);
-  cleanup = make_cleanup (xfree, mapfilename);
-  mapfile = fopen (mapfilename, "r");
+  std::string mapfilename = string_printf ("/proc/%ld/map", (long) pid);
+  gdb_file_up mapfile (fopen (mapfilename.c_str (), "r"));
   if (mapfile == NULL)
-    error (_("Couldn't open %s."), mapfilename);
-  make_cleanup_fclose (mapfile);
+    error (_("Couldn't open %s."), mapfilename.c_str ());
 
   if (info_verbose)
     fprintf_filtered (gdb_stdout, 
-		      "Reading memory regions from %s\n", mapfilename);
+		      "Reading memory regions from %s\n", mapfilename.c_str ());
 
   /* Now iterate until end-of-file.  */
-  while (fbsd_read_mapping (mapfile, &start, &end, &protection[0]))
+  while (fbsd_read_mapping (mapfile.get (), &start, &end, &protection[0]))
     {
       size = end - start;
 
@@ -201,7 +206,6 @@ fbsd_find_memory_regions (struct target_
       func (start, size, read, write, exec, 1, obfd);
     }
 
-  do_cleanups (cleanup);
   return 0;
 }
 #endif
@@ -216,6 +220,135 @@ static enum target_xfer_status (*super_x
 						      ULONGEST len,
 						      ULONGEST *xfered_len);
 
+#ifdef PT_LWPINFO
+/* Return the size of siginfo for the current inferior.  */
+
+#ifdef __LP64__
+union sigval32 {
+  int sival_int;
+  uint32_t sival_ptr;
+};
+
+/* This structure matches the naming and layout of `siginfo_t' in
+   <sys/signal.h>.  In particular, the `si_foo' macros defined in that
+   header can be used with both types to copy fields in the `_reason'
+   union.  */
+
+struct siginfo32
+{
+  int si_signo;
+  int si_errno;
+  int si_code;
+  __pid_t si_pid;
+  __uid_t si_uid;
+  int si_status;
+  uint32_t si_addr;
+  union sigval32 si_value;
+  union
+  {
+    struct
+    {
+      int _trapno;
+    } _fault;
+    struct
+    {
+      int _timerid;
+      int _overrun;
+    } _timer;
+    struct
+    {
+      int _mqd;
+    } _mesgq;
+    struct
+    {
+      int32_t _band;
+    } _poll;
+    struct
+    {
+      int32_t __spare1__;
+      int __spare2__[7];
+    } __spare__;
+  } _reason;
+};
+#endif
+
+static size_t
+fbsd_siginfo_size ()
+{
+#ifdef __LP64__
+  struct gdbarch *gdbarch = get_frame_arch (get_current_frame ());
+
+  /* Is the inferior 32-bit?  If so, use the 32-bit siginfo size.  */
+  if (gdbarch_long_bit (gdbarch) == 32)
+    return sizeof (struct siginfo32);
+#endif
+  return sizeof (siginfo_t);
+}
+
+/* Convert a native 64-bit siginfo object to a 32-bit object.  Note
+   that FreeBSD doesn't support writing to $_siginfo, so this only
+   needs to convert one way.  */
+
+static void
+fbsd_convert_siginfo (siginfo_t *si)
+{
+#ifdef __LP64__
+  struct gdbarch *gdbarch = get_frame_arch (get_current_frame ());
+
+  /* Is the inferior 32-bit?  If not, nothing to do.  */
+  if (gdbarch_long_bit (gdbarch) != 32)
+    return;
+
+  struct siginfo32 si32;
+
+  si32.si_signo = si->si_signo;
+  si32.si_errno = si->si_errno;
+  si32.si_code = si->si_code;
+  si32.si_pid = si->si_pid;
+  si32.si_uid = si->si_uid;
+  si32.si_status = si->si_status;
+  si32.si_addr = (uintptr_t) si->si_addr;
+
+  /* If sival_ptr is being used instead of sival_int on a big-endian
+     platform, then sival_int will be zero since it holds the upper
+     32-bits of the pointer value.  */
+#if _BYTE_ORDER == _BIG_ENDIAN
+  if (si->si_value.sival_int == 0)
+    si32.si_value.sival_ptr = (uintptr_t) si->si_value.sival_ptr;
+  else
+    si32.si_value.sival_int = si->si_value.sival_int;
+#else
+  si32.si_value.sival_int = si->si_value.sival_int;
+#endif
+
+  /* Always copy the spare fields and then possibly overwrite them for
+     signal-specific or code-specific fields.  */
+  si32._reason.__spare__.__spare1__ = si->_reason.__spare__.__spare1__;
+  for (int i = 0; i < 7; i++)
+    si32._reason.__spare__.__spare2__[i] = si->_reason.__spare__.__spare2__[i];
+  switch (si->si_signo) {
+  case SIGILL:
+  case SIGFPE:
+  case SIGSEGV:
+  case SIGBUS:
+    si32.si_trapno = si->si_trapno;
+    break;
+  }
+  switch (si->si_code) {
+  case SI_TIMER:
+    si32.si_timerid = si->si_timerid;
+    si32.si_overrun = si->si_overrun;
+    break;
+  case SI_MESGQ:
+    si32.si_mqd = si->si_mqd;
+    break;
+  }
+
+  memcpy(si, &si32, sizeof (si32));
+#endif
+}
+#endif
+
 /* Implement the "to_xfer_partial target_ops" method.  */
 
 static enum target_xfer_status
@@ -228,10 +361,42 @@ fbsd_xfer_partial (struct target_ops *op
 
   switch (object)
     {
+#ifdef PT_LWPINFO
+    case TARGET_OBJECT_SIGNAL_INFO:
+      {
+	struct ptrace_lwpinfo pl;
+	size_t siginfo_size;
+
+	/* FreeBSD doesn't support writing to $_siginfo.  */
+	if (writebuf != NULL)
+	  return TARGET_XFER_E_IO;
+
+	if (inferior_ptid.lwp_p ())
+	  pid = inferior_ptid.lwp ();
+
+	siginfo_size = fbsd_siginfo_size ();
+	if (offset > siginfo_size)
+	  return TARGET_XFER_E_IO;
+
+	if (ptrace (PT_LWPINFO, pid, (PTRACE_TYPE_ARG3) &pl, sizeof (pl)) == -1)
+	  return TARGET_XFER_E_IO;
+
+	if (!(pl.pl_flags & PL_FLAG_SI))
+	  return TARGET_XFER_E_IO;
+
+	fbsd_convert_siginfo (&pl.pl_siginfo);
+	if (offset + len > siginfo_size)
+	  len = siginfo_size - offset;
+
+	memcpy (readbuf, ((gdb_byte *) &pl.pl_siginfo) + offset, len);
+	*xfered_len = len;
+	return TARGET_XFER_OK;
+      }
+#endif
     case TARGET_OBJECT_AUXV:
       {
-	struct cleanup *cleanup = make_cleanup (null_cleanup, NULL);
-	unsigned char *buf;
+	gdb::byte_vector buf_storage;
+	gdb_byte *buf;
 	size_t buflen;
 	int mib[4];
 
@@ -249,8 +414,8 @@ fbsd_xfer_partial (struct target_ops *op
 	else
 	  {
 	    buflen = offset + len;
-	    buf = XCNEWVEC (unsigned char, buflen);
-	    cleanup = make_cleanup (xfree, buf);
+	    buf_storage.resize (buflen);
+	    buf = buf_storage.data ();
 	  }
 	if (sysctl (mib, 4, buf, &buflen, NULL, 0) == 0)
 	  {
@@ -264,11 +429,9 @@ fbsd_xfer_partial (struct target_ops *op
 		else
 		  buflen = 0;
 	      }
-	    do_cleanups (cleanup);
 	    *xfered_len = buflen;
 	    return (buflen == 0) ? TARGET_XFER_EOF : TARGET_XFER_OK;
 	  }
-	do_cleanups (cleanup);
 	return TARGET_XFER_E_IO;
       }
     default:
@@ -462,8 +625,6 @@ fbsd_enable_proc_events (pid_t pid)
 static void
 fbsd_add_threads (pid_t pid)
 {
-  struct cleanup *cleanup;
-  lwpid_t *lwps;
   int i, nlwps;
 
   gdb_assert (!in_thread_list (pid_to_ptid (pid)));
@@ -471,10 +632,9 @@ fbsd_add_threads (pid_t pid)
   if (nlwps == -1)
     perror_with_name (("ptrace"));
 
-  lwps = XCNEWVEC (lwpid_t, nlwps);
-  cleanup = make_cleanup (xfree, lwps);
+  gdb::unique_xmalloc_ptr<lwpid_t[]> lwps (XCNEWVEC (lwpid_t, nlwps));
 
-  nlwps = ptrace (PT_GETLWPLIST, pid, (caddr_t) lwps, nlwps);
+  nlwps = ptrace (PT_GETLWPLIST, pid, (caddr_t) lwps.get (), nlwps);
   if (nlwps == -1)
     perror_with_name (("ptrace"));
 
@@ -501,7 +661,6 @@ fbsd_add_threads (pid_t pid)
 	  add_thread (ptid);
 	}
     }
-  do_cleanups (cleanup);
 }
 
 /* Implement the "to_update_thread_list" target_ops method.  */
@@ -554,13 +713,7 @@ fbsd_update_thread_list (struct target_o
   sake.  FreeBSD versions newer than 9.1 contain both fixes.
 */
 
-struct fbsd_fork_info
-{
-  struct fbsd_fork_info *next;
-  ptid_t ptid;
-};
-
-static struct fbsd_fork_info *fbsd_pending_children;
+static std::list<ptid_t> fbsd_pending_children;
 
 /* Record a new child process event that is reported before the
    corresponding fork event in the parent.  */
@@ -568,11 +721,7 @@ static struct fbsd_fork_info *fbsd_pendi
 static void
 fbsd_remember_child (ptid_t pid)
 {
-  struct fbsd_fork_info *info = XCNEW (struct fbsd_fork_info);
-
-  info->ptid = pid;
-  info->next = fbsd_pending_children;
-  fbsd_pending_children = info;
+  fbsd_pending_children.push_front (pid);
 }
 
 /* Check for a previously-recorded new child process event for PID.
@@ -581,39 +730,26 @@ fbsd_remember_child (ptid_t pid)
 static ptid_t
 fbsd_is_child_pending (pid_t pid)
 {
-  struct fbsd_fork_info *info, *prev;
-  ptid_t ptid;
-
-  prev = NULL;
-  for (info = fbsd_pending_children; info; prev = info, info = info->next)
-    {
-      if (ptid_get_pid (info->ptid) == pid)
-	{
-	  if (prev == NULL)
-	    fbsd_pending_children = info->next;
-	  else
-	    prev->next = info->next;
-	  ptid = info->ptid;
-	  xfree (info);
-	  return ptid;
-	}
-    }
+  for (auto it = fbsd_pending_children.begin ();
+       it != fbsd_pending_children.end (); it++)
+    if (it->pid () == pid)
+      {
+	ptid_t ptid = *it;
+	fbsd_pending_children.erase (it);
+	return ptid;
+      }
   return null_ptid;
 }
 
 #ifndef PTRACE_VFORK
-static struct fbsd_fork_info *fbsd_pending_vfork_done;
+static std::forward_list<ptid_t> fbsd_pending_vfork_done;
 
 /* Record a pending vfork done event.  */
 
 static void
 fbsd_add_vfork_done (ptid_t pid)
 {
-  struct fbsd_fork_info *info = XCNEW (struct fbsd_fork_info);
-
-  info->ptid = pid;
-  info->next = fbsd_pending_vfork_done;
-  fbsd_pending_vfork_done = info;
+  fbsd_pending_vfork_done.push_front (pid);
 }
 
 /* Check for a pending vfork done event for a specific PID.  */
@@ -621,13 +757,10 @@ fbsd_add_vfork_done (ptid_t pid)
 static int
 fbsd_is_vfork_done_pending (pid_t pid)
 {
-  struct fbsd_fork_info *info;
-
-  for (info = fbsd_pending_vfork_done; info != NULL; info = info->next)
-    {
-      if (ptid_get_pid (info->ptid) == pid)
-	return 1;
-    }
+  for (auto it = fbsd_pending_vfork_done.begin ();
+       it != fbsd_pending_vfork_done.end (); it++)
+    if (it->pid () == pid)
+      return 1;
   return 0;
 }
 
@@ -637,15 +770,10 @@ fbsd_is_vfork_done_pending (pid_t pid)
 static ptid_t
 fbsd_next_vfork_done (void)
 {
-  struct fbsd_fork_info *info;
-  ptid_t ptid;
-
-  if (fbsd_pending_vfork_done != NULL)
+  if (!fbsd_pending_vfork_done.empty ())
     {
-      info = fbsd_pending_vfork_done;
-      fbsd_pending_vfork_done = info->next;
-      ptid = info->ptid;
-      xfree (info);
+      ptid_t ptid = fbsd_pending_vfork_done.front ();
+      fbsd_pending_vfork_done.pop_front ();
       return ptid;
     }
   return null_ptid;
@@ -1035,8 +1163,9 @@ fbsd_remove_exec_catchpoint (struct targ
 
 #ifdef HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE
 static int
-fbsd_set_syscall_catchpoint (struct target_ops *self, int pid, int needed,
-			     int any_count, int table_size, int *table)
+fbsd_set_syscall_catchpoint (struct target_ops *self, int pid, bool needed,
+			     int any_count,
+			     gdb::array_view<const int> syscall_counts)
 {
 
   /* Ignore the arguments.  inf-ptrace.c will use PT_SYSCALL which
@@ -1088,9 +1217,6 @@ fbsd_nat_add_target (struct target_ops *
   add_target (t);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_fbsd_nat;
-
 void
 _initialize_fbsd_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/fbsd-nat.h ./gdb/fbsd-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/fbsd-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/fbsd-nat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for FreeBSD.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/fbsd-tdep.c ./gdb/fbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/fbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/fbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for FreeBSD, architecture-independent.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -30,6 +30,48 @@
 #include "fbsd-tdep.h"
 
 
+/* FreeBSD kernels 12.0 and later include a copy of the
+   'ptrace_lwpinfo' structure returned by the PT_LWPINFO ptrace
+   operation in an ELF core note (NT_FREEBSD_PTLWPINFO) for each LWP.
+   The constants below define the offset of field members and flags in
+   this structure used by methods in this file.  Note that the
+   'ptrace_lwpinfo' struct in the note is preceded by a 4 byte integer
+   containing the size of the structure.  */
+
+#define	LWPINFO_OFFSET		0x4
+
+/* Offsets in ptrace_lwpinfo.  */
+#define	LWPINFO_PL_FLAGS	0x8
+#define	LWPINFO64_PL_SIGINFO	0x30
+#define	LWPINFO32_PL_SIGINFO	0x2c
+
+/* Flags in pl_flags.  */
+#define	PL_FLAG_SI	0x20	/* siginfo is valid */
+
+/* Sizes of siginfo_t.	*/
+#define	SIZE64_SIGINFO_T	80
+#define	SIZE32_SIGINFO_T	64
+
+static struct gdbarch_data *fbsd_gdbarch_data_handle;
+
+struct fbsd_gdbarch_data
+  {
+    struct type *siginfo_type;
+  };
+
+static void *
+init_fbsd_gdbarch_data (struct gdbarch *gdbarch)
+{
+  return GDBARCH_OBSTACK_ZALLOC (gdbarch, struct fbsd_gdbarch_data);
+}
+
+static struct fbsd_gdbarch_data *
+get_fbsd_gdbarch_data (struct gdbarch *gdbarch)
+{
+  return ((struct fbsd_gdbarch_data *)
+	  gdbarch_data (gdbarch, fbsd_gdbarch_data_handle));
+}
+
 /* This is how we want PTIDs from core files to be printed.  */
 
 static const char *
@@ -55,7 +97,6 @@ fbsd_core_thread_name (struct gdbarch *g
   static char buf[80];
   struct bfd_section *section;
   bfd_size_type size;
-  char sectionstr[32];
 
   if (ptid_get_lwp (thr->ptid) != 0)
     {
@@ -66,9 +107,9 @@ fbsd_core_thread_name (struct gdbarch *g
 	 structure.  Rather than define the full structure here, just
 	 extract the null-terminated name from the start of the
 	 note.  */
-      xsnprintf (sectionstr, sizeof sectionstr, ".thrmisc/%ld",
-		ptid_get_lwp (thr->ptid));
-      section = bfd_get_section_by_name (core_bfd, sectionstr);
+      thread_section_name section_name (".thrmisc", thr->ptid);
+
+      section = bfd_get_section_by_name (core_bfd, section_name.c_str ());
       if (section != NULL && bfd_section_size (core_bfd, section) > 0)
 	{
 	  /* Truncate the name if it is longer than "buf".  */
@@ -94,6 +135,51 @@ fbsd_core_thread_name (struct gdbarch *g
   return NULL;
 }
 
+/* Implement the "core_xfer_siginfo" gdbarch method.  */
+
+static LONGEST
+fbsd_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf,
+			ULONGEST offset, ULONGEST len)
+{
+  size_t siginfo_size;
+
+  if (gdbarch_long_bit (gdbarch) == 32)
+    siginfo_size = SIZE32_SIGINFO_T;
+  else
+    siginfo_size = SIZE64_SIGINFO_T;
+  if (offset > siginfo_size)
+    return -1;
+
+  thread_section_name section_name (".note.freebsdcore.lwpinfo", inferior_ptid);
+  asection *section = bfd_get_section_by_name (core_bfd, section_name.c_str ());
+  if (section == NULL)
+    return -1;
+
+  gdb_byte buf[4];
+  if (!bfd_get_section_contents (core_bfd, section, buf,
+				 LWPINFO_OFFSET + LWPINFO_PL_FLAGS, 4))
+    return -1;
+
+  int pl_flags = extract_signed_integer (buf, 4, gdbarch_byte_order (gdbarch));
+  if (!(pl_flags & PL_FLAG_SI))
+    return -1;
+
+  if (offset + len > siginfo_size)
+    len = siginfo_size - offset;
+
+  ULONGEST siginfo_offset;
+  if (gdbarch_long_bit (gdbarch) == 32)
+    siginfo_offset = LWPINFO_OFFSET + LWPINFO32_PL_SIGINFO;
+  else
+    siginfo_offset = LWPINFO_OFFSET + LWPINFO64_PL_SIGINFO;
+
+  if (!bfd_get_section_contents (core_bfd, section, readbuf,
+				 siginfo_offset + offset, len))
+    return -1;
+
+  return len;
+}
+
 static int
 find_signalled_thread (struct thread_info *info, void *data)
 {
@@ -160,7 +246,7 @@ fbsd_collect_thread_registers (const str
 			       char *note_data, int *note_size,
 			       enum gdb_signal stop_signal)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct fbsd_collect_regset_section_cb_data data;
 
   data.regcache = regcache;
@@ -306,6 +392,8 @@ fbsd_print_auxv_entry (struct gdbarch *g
       TAG (PAGESIZESLEN, _("Number of pagesizes"), AUXV_FORMAT_DEC);
       TAG (TIMEKEEP, _("Pointer to timehands"), AUXV_FORMAT_HEX);
       TAG (STACKPROT, _("Initial stack protection"), AUXV_FORMAT_HEX);
+      TAG (EHDRFLAGS, _("ELF header e_flags"), AUXV_FORMAT_HEX);
+      TAG (HWCAP, _("Machine-dependent CPU capability hints"), AUXV_FORMAT_HEX);
     default:
       default_print_auxv_entry (gdbarch, file, type, val);
       return;
@@ -314,6 +402,98 @@ fbsd_print_auxv_entry (struct gdbarch *g
   fprint_auxv_entry (file, name, description, format, type, val);
 }
 
+/* Implement the "get_siginfo_type" gdbarch method.  */
+
+static struct type *
+fbsd_get_siginfo_type (struct gdbarch *gdbarch)
+{
+  struct fbsd_gdbarch_data *fbsd_gdbarch_data;
+  struct type *int_type, *int32_type, *uint32_type, *long_type, *void_ptr_type;
+  struct type *uid_type, *pid_type;
+  struct type *sigval_type, *reason_type;
+  struct type *siginfo_type;
+  struct type *type;
+
+  fbsd_gdbarch_data = get_fbsd_gdbarch_data (gdbarch);
+  if (fbsd_gdbarch_data->siginfo_type != NULL)
+    return fbsd_gdbarch_data->siginfo_type;
+
+  int_type = arch_integer_type (gdbarch, gdbarch_int_bit (gdbarch),
+				0, "int");
+  int32_type = arch_integer_type (gdbarch, 32, 0, "int32_t");
+  uint32_type = arch_integer_type (gdbarch, 32, 1, "uint32_t");
+  long_type = arch_integer_type (gdbarch, gdbarch_long_bit (gdbarch),
+				 0, "long");
+  void_ptr_type = lookup_pointer_type (builtin_type (gdbarch)->builtin_void);
+
+  /* union sigval */
+  sigval_type = arch_composite_type (gdbarch, NULL, TYPE_CODE_UNION);
+  TYPE_NAME (sigval_type) = xstrdup ("sigval");
+  append_composite_type_field (sigval_type, "sival_int", int_type);
+  append_composite_type_field (sigval_type, "sival_ptr", void_ptr_type);
+
+  /* __pid_t */
+  pid_type = arch_type (gdbarch, TYPE_CODE_TYPEDEF,
+			TYPE_LENGTH (int32_type) * TARGET_CHAR_BIT, "__pid_t");
+  TYPE_TARGET_TYPE (pid_type) = int32_type;
+  TYPE_TARGET_STUB (pid_type) = 1;
+
+  /* __uid_t */
+  uid_type = arch_type (gdbarch, TYPE_CODE_TYPEDEF,
+			TYPE_LENGTH (uint32_type) * TARGET_CHAR_BIT,
+			"__uid_t");
+  TYPE_TARGET_TYPE (uid_type) = uint32_type;
+  TYPE_TARGET_STUB (uid_type) = 1;
+
+  /* _reason */
+  reason_type = arch_composite_type (gdbarch, NULL, TYPE_CODE_UNION);
+
+  /* _fault */
+  type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
+  append_composite_type_field (type, "si_trapno", int_type);
+  append_composite_type_field (reason_type, "_fault", type);
+
+  /* _timer */
+  type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
+  append_composite_type_field (type, "si_timerid", int_type);
+  append_composite_type_field (type, "si_overrun", int_type);
+  append_composite_type_field (reason_type, "_timer", type);
+
+  /* _mesgq */
+  type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
+  append_composite_type_field (type, "si_mqd", int_type);
+  append_composite_type_field (reason_type, "_mesgq", type);
+
+  /* _poll */
+  type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
+  append_composite_type_field (type, "si_band", long_type);
+  append_composite_type_field (reason_type, "_poll", type);
+
+  /* __spare__ */
+  type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
+  append_composite_type_field (type, "__spare1__", long_type);
+  append_composite_type_field (type, "__spare2__",
+			       init_vector_type (int_type, 7));
+  append_composite_type_field (reason_type, "__spare__", type);
+
+  /* struct siginfo */
+  siginfo_type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
+  TYPE_NAME (siginfo_type) = xstrdup ("siginfo");
+  append_composite_type_field (siginfo_type, "si_signo", int_type);
+  append_composite_type_field (siginfo_type, "si_errno", int_type);
+  append_composite_type_field (siginfo_type, "si_code", int_type);
+  append_composite_type_field (siginfo_type, "si_pid", pid_type);
+  append_composite_type_field (siginfo_type, "si_uid", uid_type);
+  append_composite_type_field (siginfo_type, "si_status", int_type);
+  append_composite_type_field (siginfo_type, "si_addr", void_ptr_type);
+  append_composite_type_field (siginfo_type, "si_value", sigval_type);
+  append_composite_type_field (siginfo_type, "_reason", reason_type);
+
+  fbsd_gdbarch_data->siginfo_type = siginfo_type;
+
+  return siginfo_type;
+}
+
 /* Implement the "get_syscall_number" gdbarch method.  */
 
 static LONGEST
@@ -337,10 +517,19 @@ fbsd_init_abi (struct gdbarch_info info,
 {
   set_gdbarch_core_pid_to_str (gdbarch, fbsd_core_pid_to_str);
   set_gdbarch_core_thread_name (gdbarch, fbsd_core_thread_name);
+  set_gdbarch_core_xfer_siginfo (gdbarch, fbsd_core_xfer_siginfo);
   set_gdbarch_make_corefile_notes (gdbarch, fbsd_make_corefile_notes);
   set_gdbarch_print_auxv_entry (gdbarch, fbsd_print_auxv_entry);
+  set_gdbarch_get_siginfo_type (gdbarch, fbsd_get_siginfo_type);
 
   /* `catch syscall' */
   set_xml_syscall_file_name (gdbarch, "syscalls/freebsd.xml");
   set_gdbarch_get_syscall_number (gdbarch, fbsd_get_syscall_number);
 }
+
+void
+_initialize_fbsd_tdep (void)
+{
+  fbsd_gdbarch_data_handle =
+    gdbarch_data_register_post_init (init_fbsd_gdbarch_data);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/fbsd-tdep.h ./gdb/fbsd-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/fbsd-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/fbsd-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for FreeBSD, architecture independent.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/aarch64.c ./gdb/features/aarch64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/aarch64.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/aarch64.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,191 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: aarch64.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_aarch64;
-static void
-initialize_tdesc_aarch64 (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("aarch64"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.core");
-  type = tdesc_create_flags (feature, "cpsr_flags", 4);
-  tdesc_add_flag (type, 0, "SP");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_bitfield (type, "EL", 2, 3);
-  tdesc_add_flag (type, 4, "nRW");
-  tdesc_add_flag (type, 5, "");
-  tdesc_add_flag (type, 6, "F");
-  tdesc_add_flag (type, 7, "I");
-  tdesc_add_flag (type, 8, "A");
-  tdesc_add_flag (type, 9, "D");
-  tdesc_add_flag (type, 20, "IL");
-  tdesc_add_flag (type, 21, "SS");
-  tdesc_add_flag (type, 28, "V");
-  tdesc_add_flag (type, 29, "C");
-  tdesc_add_flag (type, 30, "Z");
-  tdesc_add_flag (type, 31, "N");
-
-  tdesc_create_reg (feature, "x0", 0, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x1", 1, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x2", 2, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x3", 3, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x4", 4, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x5", 5, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x6", 6, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x7", 7, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x8", 8, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x9", 9, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x10", 10, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x11", 11, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x12", 12, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x13", 13, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x14", 14, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x15", 15, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x16", 16, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x17", 17, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x18", 18, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x19", 19, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x20", 20, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x21", 21, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x22", 22, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x23", 23, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x24", 24, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x25", 25, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x26", 26, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x27", 27, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x28", 28, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x29", 29, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "x30", 30, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "sp", 31, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "pc", 32, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "cpsr", 33, 1, NULL, 32, "cpsr_flags");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.fpu");
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_create_vector (feature, "v2u", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "uint32");
-  tdesc_create_vector (feature, "v4u", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "uint16");
-  tdesc_create_vector (feature, "v8u", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "uint8");
-  tdesc_create_vector (feature, "v16u", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_create_vector (feature, "v1u", field_type, 1);
-
-  field_type = tdesc_named_type (feature, "int128");
-  tdesc_create_vector (feature, "v1i", field_type, 1);
-
-  type = tdesc_create_union (feature, "vnd");
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "f", field_type);
-  field_type = tdesc_named_type (feature, "v2u");
-  tdesc_add_field (type, "u", field_type);
-  field_type = tdesc_named_type (feature, "v2i");
-  tdesc_add_field (type, "s", field_type);
-
-  type = tdesc_create_union (feature, "vns");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "f", field_type);
-  field_type = tdesc_named_type (feature, "v4u");
-  tdesc_add_field (type, "u", field_type);
-  field_type = tdesc_named_type (feature, "v4i");
-  tdesc_add_field (type, "s", field_type);
-
-  type = tdesc_create_union (feature, "vnh");
-  field_type = tdesc_named_type (feature, "v8u");
-  tdesc_add_field (type, "u", field_type);
-  field_type = tdesc_named_type (feature, "v8i");
-  tdesc_add_field (type, "s", field_type);
-
-  type = tdesc_create_union (feature, "vnb");
-  field_type = tdesc_named_type (feature, "v16u");
-  tdesc_add_field (type, "u", field_type);
-  field_type = tdesc_named_type (feature, "v16i");
-  tdesc_add_field (type, "s", field_type);
-
-  type = tdesc_create_union (feature, "vnq");
-  field_type = tdesc_named_type (feature, "v1u");
-  tdesc_add_field (type, "u", field_type);
-  field_type = tdesc_named_type (feature, "v1i");
-  tdesc_add_field (type, "s", field_type);
-
-  type = tdesc_create_union (feature, "aarch64v");
-  field_type = tdesc_named_type (feature, "vnd");
-  tdesc_add_field (type, "d", field_type);
-  field_type = tdesc_named_type (feature, "vns");
-  tdesc_add_field (type, "s", field_type);
-  field_type = tdesc_named_type (feature, "vnh");
-  tdesc_add_field (type, "h", field_type);
-  field_type = tdesc_named_type (feature, "vnb");
-  tdesc_add_field (type, "b", field_type);
-  field_type = tdesc_named_type (feature, "vnq");
-  tdesc_add_field (type, "q", field_type);
-
-  tdesc_create_reg (feature, "v0", 34, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v1", 35, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v2", 36, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v3", 37, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v4", 38, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v5", 39, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v6", 40, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v7", 41, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v8", 42, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v9", 43, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v10", 44, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v11", 45, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v12", 46, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v13", 47, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v14", 48, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v15", 49, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v16", 50, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v17", 51, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v18", 52, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v19", 53, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v20", 54, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v21", 55, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v22", 56, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v23", 57, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v24", 58, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v25", 59, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v26", 60, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v27", 61, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v28", 62, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v29", 63, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v30", 64, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "v31", 65, 1, NULL, 128, "aarch64v");
-  tdesc_create_reg (feature, "fpsr", 66, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "fpcr", 67, 1, NULL, 32, "int");
-
-  tdesc_aarch64 = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/aarch64-core.c ./gdb/features/aarch64-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/aarch64-core.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/aarch64-core.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,65 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: aarch64-core.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_aarch64_core (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.core", "aarch64-core.xml");
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_flags (feature, "cpsr_flags", 4);
+  tdesc_add_flag (type_with_fields, 0, "SP");
+  tdesc_add_flag (type_with_fields, 1, "");
+  tdesc_add_bitfield (type_with_fields, "EL", 2, 3);
+  tdesc_add_flag (type_with_fields, 4, "nRW");
+  tdesc_add_flag (type_with_fields, 5, "");
+  tdesc_add_flag (type_with_fields, 6, "F");
+  tdesc_add_flag (type_with_fields, 7, "I");
+  tdesc_add_flag (type_with_fields, 8, "A");
+  tdesc_add_flag (type_with_fields, 9, "D");
+  tdesc_add_flag (type_with_fields, 20, "IL");
+  tdesc_add_flag (type_with_fields, 21, "SS");
+  tdesc_add_flag (type_with_fields, 28, "V");
+  tdesc_add_flag (type_with_fields, 29, "C");
+  tdesc_add_flag (type_with_fields, 30, "Z");
+  tdesc_add_flag (type_with_fields, 31, "N");
+
+  tdesc_create_reg (feature, "x0", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x1", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x2", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x3", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x4", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x5", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x6", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x7", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x8", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x9", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x10", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x11", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x12", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x13", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x14", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x15", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x16", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x17", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x18", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x19", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x20", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x21", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x22", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x23", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x24", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x25", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x26", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x27", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x28", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x29", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "x30", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "sp", regnum++, 1, NULL, 64, "data_ptr");
+  tdesc_create_reg (feature, "pc", regnum++, 1, NULL, 64, "code_ptr");
+  tdesc_create_reg (feature, "cpsr", regnum++, 1, NULL, 32, "cpsr_flags");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/aarch64-core.xml ./gdb/features/aarch64-core.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/aarch64-core.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/aarch64-core.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
      Contributed by ARM Ltd.
 
      Copying and distribution of this file, with or without modification,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/aarch64-fpu.c ./gdb/features/aarch64-fpu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/aarch64-fpu.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/aarch64-fpu.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,133 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: aarch64-fpu.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_aarch64_fpu (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.fpu", "aarch64-fpu.xml");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_double");
+  tdesc_create_vector (feature, "v2d", element_type, 2);
+
+  element_type = tdesc_named_type (feature, "uint64");
+  tdesc_create_vector (feature, "v2u", element_type, 2);
+
+  element_type = tdesc_named_type (feature, "int64");
+  tdesc_create_vector (feature, "v2i", element_type, 2);
+
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "uint32");
+  tdesc_create_vector (feature, "v4u", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "uint16");
+  tdesc_create_vector (feature, "v8u", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "uint8");
+  tdesc_create_vector (feature, "v16u", element_type, 16);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i", element_type, 16);
+
+  element_type = tdesc_named_type (feature, "uint128");
+  tdesc_create_vector (feature, "v1u", element_type, 1);
+
+  element_type = tdesc_named_type (feature, "int128");
+  tdesc_create_vector (feature, "v1i", element_type, 1);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vnd");
+  tdesc_type *field_type;
+  field_type = tdesc_named_type (feature, "v2d");
+  tdesc_add_field (type_with_fields, "f", field_type);
+  field_type = tdesc_named_type (feature, "v2u");
+  tdesc_add_field (type_with_fields, "u", field_type);
+  field_type = tdesc_named_type (feature, "v2i");
+  tdesc_add_field (type_with_fields, "s", field_type);
+
+  type_with_fields = tdesc_create_union (feature, "vns");
+  field_type = tdesc_named_type (feature, "v4f");
+  tdesc_add_field (type_with_fields, "f", field_type);
+  field_type = tdesc_named_type (feature, "v4u");
+  tdesc_add_field (type_with_fields, "u", field_type);
+  field_type = tdesc_named_type (feature, "v4i");
+  tdesc_add_field (type_with_fields, "s", field_type);
+
+  type_with_fields = tdesc_create_union (feature, "vnh");
+  field_type = tdesc_named_type (feature, "v8u");
+  tdesc_add_field (type_with_fields, "u", field_type);
+  field_type = tdesc_named_type (feature, "v8i");
+  tdesc_add_field (type_with_fields, "s", field_type);
+
+  type_with_fields = tdesc_create_union (feature, "vnb");
+  field_type = tdesc_named_type (feature, "v16u");
+  tdesc_add_field (type_with_fields, "u", field_type);
+  field_type = tdesc_named_type (feature, "v16i");
+  tdesc_add_field (type_with_fields, "s", field_type);
+
+  type_with_fields = tdesc_create_union (feature, "vnq");
+  field_type = tdesc_named_type (feature, "v1u");
+  tdesc_add_field (type_with_fields, "u", field_type);
+  field_type = tdesc_named_type (feature, "v1i");
+  tdesc_add_field (type_with_fields, "s", field_type);
+
+  type_with_fields = tdesc_create_union (feature, "aarch64v");
+  field_type = tdesc_named_type (feature, "vnd");
+  tdesc_add_field (type_with_fields, "d", field_type);
+  field_type = tdesc_named_type (feature, "vns");
+  tdesc_add_field (type_with_fields, "s", field_type);
+  field_type = tdesc_named_type (feature, "vnh");
+  tdesc_add_field (type_with_fields, "h", field_type);
+  field_type = tdesc_named_type (feature, "vnb");
+  tdesc_add_field (type_with_fields, "b", field_type);
+  field_type = tdesc_named_type (feature, "vnq");
+  tdesc_add_field (type_with_fields, "q", field_type);
+
+  regnum = 34;
+  tdesc_create_reg (feature, "v0", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v1", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v2", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v3", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v4", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v5", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v6", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v7", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v8", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v9", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v10", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v11", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v12", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v13", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v14", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v15", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v16", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v17", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v18", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v19", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v20", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v21", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v22", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v23", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v24", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v25", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v26", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v27", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v28", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v29", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v30", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "v31", regnum++, 1, NULL, 128, "aarch64v");
+  tdesc_create_reg (feature, "fpsr", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "fpcr", regnum++, 1, NULL, 32, "int");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/aarch64-fpu.xml ./gdb/features/aarch64-fpu.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/aarch64-fpu.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/aarch64-fpu.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
      Contributed by ARM Ltd.
 
      Copying and distribution of this file, with or without modification,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/aarch64.xml ./gdb/features/aarch64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/aarch64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/aarch64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
      Contributed by ARM Ltd.
 
      Copying and distribution of this file, with or without modification,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arc-arcompact.c ./gdb/features/arc-arcompact.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arc-arcompact.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arc-arcompact.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_arc_arcompact (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("ARC700"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.arc.core.arcompact");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
@@ -50,23 +48,24 @@ initialize_tdesc_arc_arcompact (void)
   tdesc_create_reg (feature, "ilink2", 30, 1, NULL, 32, "code_ptr");
   tdesc_create_reg (feature, "blink", 31, 1, NULL, 32, "code_ptr");
   tdesc_create_reg (feature, "lp_count", 32, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "pcl", 33, 1, "", 32, "code_ptr");
+  tdesc_create_reg (feature, "pcl", 33, 1, NULL, 32, "code_ptr");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.arc.aux-minimal");
-  type = tdesc_create_flags (feature, "status32_type", 4);
-  tdesc_add_flag (type, 0, "H");
-  tdesc_add_bitfield (type, "E", 1, 2);
-  tdesc_add_bitfield (type, "A", 3, 4);
-  tdesc_add_flag (type, 5, "AE");
-  tdesc_add_flag (type, 6, "DE");
-  tdesc_add_flag (type, 7, "U");
-  tdesc_add_flag (type, 8, "V");
-  tdesc_add_flag (type, 9, "C");
-  tdesc_add_flag (type, 10, "N");
-  tdesc_add_flag (type, 11, "Z");
-  tdesc_add_flag (type, 12, "L");
-  tdesc_add_flag (type, 13, "R");
-  tdesc_add_flag (type, 14, "SE");
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_flags (feature, "status32_type", 4);
+  tdesc_add_flag (type_with_fields, 0, "H");
+  tdesc_add_bitfield (type_with_fields, "E", 1, 2);
+  tdesc_add_bitfield (type_with_fields, "A", 3, 4);
+  tdesc_add_flag (type_with_fields, 5, "AE");
+  tdesc_add_flag (type_with_fields, 6, "DE");
+  tdesc_add_flag (type_with_fields, 7, "U");
+  tdesc_add_flag (type_with_fields, 8, "V");
+  tdesc_add_flag (type_with_fields, 9, "C");
+  tdesc_add_flag (type_with_fields, 10, "N");
+  tdesc_add_flag (type_with_fields, 11, "Z");
+  tdesc_add_flag (type_with_fields, 12, "L");
+  tdesc_add_flag (type_with_fields, 13, "R");
+  tdesc_add_flag (type_with_fields, 14, "SE");
 
   tdesc_create_reg (feature, "pc", 34, 1, NULL, 32, "code_ptr");
   tdesc_create_reg (feature, "status32", 35, 1, NULL, 32, "status32_type");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arc-arcompact.xml ./gdb/features/arc-arcompact.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arc-arcompact.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arc-arcompact.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2015-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arc-v2.c ./gdb/features/arc-v2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arc-v2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arc-v2.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_arc_v2 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("ARCv2"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.arc.core.v2");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
@@ -47,30 +45,31 @@ initialize_tdesc_arc_v2 (void)
   tdesc_create_reg (feature, "fp", 27, 1, NULL, 32, "data_ptr");
   tdesc_create_reg (feature, "sp", 28, 1, NULL, 32, "data_ptr");
   tdesc_create_reg (feature, "ilink", 29, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "r30", 30, 1, "", 32, "int");
+  tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "int");
   tdesc_create_reg (feature, "blink", 31, 1, NULL, 32, "code_ptr");
   tdesc_create_reg (feature, "lp_count", 32, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "pcl", 33, 1, "", 32, "code_ptr");
+  tdesc_create_reg (feature, "pcl", 33, 1, NULL, 32, "code_ptr");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.arc.aux-minimal");
-  type = tdesc_create_flags (feature, "status32_type", 4);
-  tdesc_add_flag (type, 0, "H");
-  tdesc_add_bitfield (type, "E", 1, 4);
-  tdesc_add_flag (type, 5, "AE");
-  tdesc_add_flag (type, 6, "DE");
-  tdesc_add_flag (type, 7, "U");
-  tdesc_add_flag (type, 8, "V");
-  tdesc_add_flag (type, 9, "C");
-  tdesc_add_flag (type, 10, "N");
-  tdesc_add_flag (type, 11, "Z");
-  tdesc_add_flag (type, 12, "L");
-  tdesc_add_flag (type, 13, "DZ");
-  tdesc_add_flag (type, 14, "SC");
-  tdesc_add_flag (type, 15, "ES");
-  tdesc_add_bitfield (type, "RB", 16, 18);
-  tdesc_add_flag (type, 19, "AD");
-  tdesc_add_flag (type, 20, "US");
-  tdesc_add_flag (type, 31, "IE");
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_flags (feature, "status32_type", 4);
+  tdesc_add_flag (type_with_fields, 0, "H");
+  tdesc_add_bitfield (type_with_fields, "E", 1, 4);
+  tdesc_add_flag (type_with_fields, 5, "AE");
+  tdesc_add_flag (type_with_fields, 6, "DE");
+  tdesc_add_flag (type_with_fields, 7, "U");
+  tdesc_add_flag (type_with_fields, 8, "V");
+  tdesc_add_flag (type_with_fields, 9, "C");
+  tdesc_add_flag (type_with_fields, 10, "N");
+  tdesc_add_flag (type_with_fields, 11, "Z");
+  tdesc_add_flag (type_with_fields, 12, "L");
+  tdesc_add_flag (type_with_fields, 13, "DZ");
+  tdesc_add_flag (type_with_fields, 14, "SC");
+  tdesc_add_flag (type_with_fields, 15, "ES");
+  tdesc_add_bitfield (type_with_fields, "RB", 16, 18);
+  tdesc_add_flag (type_with_fields, 19, "AD");
+  tdesc_add_flag (type_with_fields, 20, "US");
+  tdesc_add_flag (type_with_fields, 31, "IE");
 
   tdesc_create_reg (feature, "pc", 34, 1, NULL, 32, "code_ptr");
   tdesc_create_reg (feature, "status32", 35, 1, NULL, 32, "status32_type");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arc-v2.xml ./gdb/features/arc-v2.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arc-v2.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arc-v2.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2015-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-core.xml ./gdb/features/arm/arm-core.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-core.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-core.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-fpa.xml ./gdb/features/arm/arm-fpa.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-fpa.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-fpa.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-m-profile.xml ./gdb/features/arm/arm-m-profile.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-m-profile.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-m-profile.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-vfpv2.xml ./gdb/features/arm/arm-vfpv2.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-vfpv2.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-vfpv2.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-vfpv3.xml ./gdb/features/arm/arm-vfpv3.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-vfpv3.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-vfpv3.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-iwmmxt.c ./gdb/features/arm/arm-with-iwmmxt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-iwmmxt.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-with-iwmmxt.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_arm_with_iwmmxt (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("iwmmxt"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
@@ -36,24 +34,27 @@ initialize_tdesc_arm_with_iwmmxt (void)
   tdesc_create_reg (feature, "cpsr", 25, 1, NULL, 32, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.xscale.iwmmxt");
-  field_type = tdesc_named_type (feature, "uint8");
-  tdesc_create_vector (feature, "iwmmxt_v8u8", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "uint16");
-  tdesc_create_vector (feature, "iwmmxt_v4u16", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "uint32");
-  tdesc_create_vector (feature, "iwmmxt_v2u32", field_type, 2);
-
-  type = tdesc_create_union (feature, "iwmmxt_vec64i");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "uint8");
+  tdesc_create_vector (feature, "iwmmxt_v8u8", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "uint16");
+  tdesc_create_vector (feature, "iwmmxt_v4u16", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "uint32");
+  tdesc_create_vector (feature, "iwmmxt_v2u32", element_type, 2);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "iwmmxt_vec64i");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "iwmmxt_v8u8");
-  tdesc_add_field (type, "u8", field_type);
+  tdesc_add_field (type_with_fields, "u8", field_type);
   field_type = tdesc_named_type (feature, "iwmmxt_v4u16");
-  tdesc_add_field (type, "u16", field_type);
+  tdesc_add_field (type_with_fields, "u16", field_type);
   field_type = tdesc_named_type (feature, "iwmmxt_v2u32");
-  tdesc_add_field (type, "u32", field_type);
+  tdesc_add_field (type_with_fields, "u32", field_type);
   field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "u64", field_type);
+  tdesc_add_field (type_with_fields, "u64", field_type);
 
   tdesc_create_reg (feature, "wR0", 26, 1, NULL, 64, "iwmmxt_vec64i");
   tdesc_create_reg (feature, "wR1", 27, 1, NULL, 64, "iwmmxt_vec64i");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-iwmmxt.xml ./gdb/features/arm/arm-with-iwmmxt.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-iwmmxt.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-with-iwmmxt.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-m.c ./gdb/features/arm/arm-with-m.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-m.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-with-m.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_arm_with_m (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("arm"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-m-fpa-layout.c ./gdb/features/arm/arm-with-m-fpa-layout.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-m-fpa-layout.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-with-m-fpa-layout.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_arm_with_m_fpa_layout (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("arm"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-m-fpa-layout.xml ./gdb/features/arm/arm-with-m-fpa-layout.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-m-fpa-layout.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-with-m-fpa-layout.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-m-vfp-d16.c ./gdb/features/arm/arm-with-m-vfp-d16.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-m-vfp-d16.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-with-m-vfp-d16.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_arm_with_m_vfp_d16 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("arm"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-m-vfp-d16.xml ./gdb/features/arm/arm-with-m-vfp-d16.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-m-vfp-d16.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-with-m-vfp-d16.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-m.xml ./gdb/features/arm/arm-with-m.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-m.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-with-m.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-neon.c ./gdb/features/arm/arm-with-neon.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-neon.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-with-neon.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_arm_with_neon (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("arm"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-neon.xml ./gdb/features/arm/arm-with-neon.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-neon.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-with-neon.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-vfpv2.c ./gdb/features/arm/arm-with-vfpv2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-vfpv2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-with-vfpv2.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_arm_with_vfpv2 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("arm"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-vfpv2.xml ./gdb/features/arm/arm-with-vfpv2.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-vfpv2.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-with-vfpv2.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-vfpv3.c ./gdb/features/arm/arm-with-vfpv3.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-vfpv3.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-with-vfpv3.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_arm_with_vfpv3 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("arm"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.arm.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-vfpv3.xml ./gdb/features/arm/arm-with-vfpv3.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/arm-with-vfpv3.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/arm-with-vfpv3.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/xscale-iwmmxt.xml ./gdb/features/arm/xscale-iwmmxt.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/arm/xscale-iwmmxt.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/arm/xscale-iwmmxt.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/btrace-conf.dtd ./gdb/features/btrace-conf.dtd
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/btrace-conf.dtd	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/btrace-conf.dtd	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/btrace.dtd ./gdb/features/btrace.dtd
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/btrace.dtd	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/btrace.dtd	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/feature_to_c.sh ./gdb/features/feature_to_c.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/feature_to_c.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/feature_to_c.sh	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
 
 # Convert text files to compilable C arrays.
 #
-# Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/gdb-target.dtd ./gdb/features/gdb-target.dtd
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/gdb-target.dtd	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/gdb-target.dtd	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-avx512.c ./gdb/features/i386/32bit-avx512.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-avx512.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/32bit-avx512.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,33 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 32bit-avx512.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_32bit_avx512 (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512", "32bit-avx512.xml");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "uint128");
+  tdesc_create_vector (feature, "v2ui128", element_type, 2);
+
+  tdesc_create_reg (feature, "k0", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "k1", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "k2", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "k3", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "k4", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "k5", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "k6", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "k7", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "zmm0h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm1h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm2h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm3h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm4h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm5h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm6h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm7h", regnum++, 1, NULL, 256, "v2ui128");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-avx512.xml ./gdb/features/i386/32bit-avx512.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-avx512.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/32bit-avx512.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-avx.c ./gdb/features/i386/32bit-avx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-avx.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/32bit-avx.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,21 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 32bit-avx.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_32bit_avx (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx", "32bit-avx.xml");
+  tdesc_create_reg (feature, "ymm0h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm1h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm2h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm3h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm4h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm5h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm6h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm7h", regnum++, 1, NULL, 128, "uint128");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-avx.xml ./gdb/features/i386/32bit-avx.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-avx.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/32bit-avx.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-core.c ./gdb/features/i386/32bit-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-core.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/32bit-core.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,65 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 32bit-core.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_32bit_core (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core", "32bit-core.xml");
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_flags (feature, "i386_eflags", 4);
+  tdesc_add_flag (type_with_fields, 0, "CF");
+  tdesc_add_flag (type_with_fields, 1, "");
+  tdesc_add_flag (type_with_fields, 2, "PF");
+  tdesc_add_flag (type_with_fields, 4, "AF");
+  tdesc_add_flag (type_with_fields, 6, "ZF");
+  tdesc_add_flag (type_with_fields, 7, "SF");
+  tdesc_add_flag (type_with_fields, 8, "TF");
+  tdesc_add_flag (type_with_fields, 9, "IF");
+  tdesc_add_flag (type_with_fields, 10, "DF");
+  tdesc_add_flag (type_with_fields, 11, "OF");
+  tdesc_add_flag (type_with_fields, 14, "NT");
+  tdesc_add_flag (type_with_fields, 16, "RF");
+  tdesc_add_flag (type_with_fields, 17, "VM");
+  tdesc_add_flag (type_with_fields, 18, "AC");
+  tdesc_add_flag (type_with_fields, 19, "VIF");
+  tdesc_add_flag (type_with_fields, 20, "VIP");
+  tdesc_add_flag (type_with_fields, 21, "ID");
+
+  tdesc_create_reg (feature, "eax", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "ecx", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "edx", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "ebx", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "esp", regnum++, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "ebp", regnum++, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "esi", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "edi", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "eip", regnum++, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "eflags", regnum++, 1, NULL, 32, "i386_eflags");
+  tdesc_create_reg (feature, "cs", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "ss", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "ds", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "es", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "fs", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "gs", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "st0", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st1", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st2", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st3", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st4", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st5", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st6", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st7", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "fctrl", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fstat", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "ftag", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fiseg", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fioff", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "foseg", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fooff", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fop", regnum++, 1, "float", 32, "int");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-core.xml ./gdb/features/i386/32bit-core.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-core.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/32bit-core.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-linux.c ./gdb/features/i386/32bit-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-linux.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/32bit-linux.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,15 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 32bit-linux.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_32bit_linux (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux", "32bit-linux.xml");
+  regnum = 41;
+  tdesc_create_reg (feature, "orig_eax", regnum++, 1, NULL, 32, "int");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-linux.xml ./gdb/features/i386/32bit-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/32bit-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-mpx.c ./gdb/features/i386/32bit-mpx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-mpx.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/32bit-mpx.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,51 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 32bit-mpx.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_32bit_mpx (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx", "32bit-mpx.xml");
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_struct (feature, "br128");
+  tdesc_type *field_type;
+  field_type = tdesc_named_type (feature, "uint64");
+  tdesc_add_field (type_with_fields, "lbound", field_type);
+  field_type = tdesc_named_type (feature, "uint64");
+  tdesc_add_field (type_with_fields, "ubound_raw", field_type);
+
+  type_with_fields = tdesc_create_struct (feature, "_bndstatus");
+  tdesc_set_struct_size (type_with_fields, 8);
+  tdesc_add_bitfield (type_with_fields, "bde", 2, 31);
+  tdesc_add_bitfield (type_with_fields, "error", 0, 1);
+
+  type_with_fields = tdesc_create_union (feature, "status");
+  field_type = tdesc_named_type (feature, "data_ptr");
+  tdesc_add_field (type_with_fields, "raw", field_type);
+  field_type = tdesc_named_type (feature, "_bndstatus");
+  tdesc_add_field (type_with_fields, "status", field_type);
+
+  type_with_fields = tdesc_create_struct (feature, "_bndcfgu");
+  tdesc_set_struct_size (type_with_fields, 8);
+  tdesc_add_bitfield (type_with_fields, "base", 12, 31);
+  tdesc_add_bitfield (type_with_fields, "reserved", 2, 11);
+  tdesc_add_bitfield (type_with_fields, "preserved", 1, 1);
+  tdesc_add_bitfield (type_with_fields, "enabled", 0, 0);
+
+  type_with_fields = tdesc_create_union (feature, "cfgu");
+  field_type = tdesc_named_type (feature, "data_ptr");
+  tdesc_add_field (type_with_fields, "raw", field_type);
+  field_type = tdesc_named_type (feature, "_bndcfgu");
+  tdesc_add_field (type_with_fields, "config", field_type);
+
+  tdesc_create_reg (feature, "bnd0raw", regnum++, 1, NULL, 128, "br128");
+  tdesc_create_reg (feature, "bnd1raw", regnum++, 1, NULL, 128, "br128");
+  tdesc_create_reg (feature, "bnd2raw", regnum++, 1, NULL, 128, "br128");
+  tdesc_create_reg (feature, "bnd3raw", regnum++, 1, NULL, 128, "br128");
+  tdesc_create_reg (feature, "bndcfgu", regnum++, 1, NULL, 64, "cfgu");
+  tdesc_create_reg (feature, "bndstatus", regnum++, 1, NULL, 64, "status");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-mpx.xml ./gdb/features/i386/32bit-mpx.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-mpx.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/32bit-mpx.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-pkeys.c ./gdb/features/i386/32bit-pkeys.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-pkeys.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/32bit-pkeys.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,14 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 32bit-pkeys.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_32bit_pkeys (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.pkeys", "32bit-pkeys.xml");
+  tdesc_create_reg (feature, "pkru", regnum++, 1, NULL, 32, "uint32");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-pkeys.xml ./gdb/features/i386/32bit-pkeys.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-pkeys.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/32bit-pkeys.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2016-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-sse.c ./gdb/features/i386/32bit-sse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-sse.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/32bit-sse.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,76 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 32bit-sse.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_32bit_sse (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse", "32bit-sse.xml");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "ieee_double");
+  tdesc_create_vector (feature, "v2d", element_type, 2);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int64");
+  tdesc_create_vector (feature, "v2i64", element_type, 2);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
+  field_type = tdesc_named_type (feature, "v4f");
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
+  field_type = tdesc_named_type (feature, "v2d");
+  tdesc_add_field (type_with_fields, "v2_double", field_type);
+  field_type = tdesc_named_type (feature, "v16i8");
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
+  field_type = tdesc_named_type (feature, "v8i16");
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
+  field_type = tdesc_named_type (feature, "v4i32");
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
+  field_type = tdesc_named_type (feature, "v2i64");
+  tdesc_add_field (type_with_fields, "v2_int64", field_type);
+  field_type = tdesc_named_type (feature, "uint128");
+  tdesc_add_field (type_with_fields, "uint128", field_type);
+
+  type_with_fields = tdesc_create_flags (feature, "i386_mxcsr", 4);
+  tdesc_add_flag (type_with_fields, 0, "IE");
+  tdesc_add_flag (type_with_fields, 1, "DE");
+  tdesc_add_flag (type_with_fields, 2, "ZE");
+  tdesc_add_flag (type_with_fields, 3, "OE");
+  tdesc_add_flag (type_with_fields, 4, "UE");
+  tdesc_add_flag (type_with_fields, 5, "PE");
+  tdesc_add_flag (type_with_fields, 6, "DAZ");
+  tdesc_add_flag (type_with_fields, 7, "IM");
+  tdesc_add_flag (type_with_fields, 8, "DM");
+  tdesc_add_flag (type_with_fields, 9, "ZM");
+  tdesc_add_flag (type_with_fields, 10, "OM");
+  tdesc_add_flag (type_with_fields, 11, "UM");
+  tdesc_add_flag (type_with_fields, 12, "PM");
+  tdesc_add_flag (type_with_fields, 15, "FZ");
+
+  regnum = 32;
+  tdesc_create_reg (feature, "xmm0", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm1", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm2", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm3", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm4", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm5", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm6", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm7", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "mxcsr", regnum++, 1, "vector", 32, "i386_mxcsr");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-sse.xml ./gdb/features/i386/32bit-sse.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/32bit-sse.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/32bit-sse.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-avx512.c ./gdb/features/i386/64bit-avx512.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-avx512.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/64bit-avx512.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,125 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 64bit-avx512.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_64bit_avx512 (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512", "64bit-avx512.xml");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "ieee_double");
+  tdesc_create_vector (feature, "v2d", element_type, 2);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int64");
+  tdesc_create_vector (feature, "v2i64", element_type, 2);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
+  field_type = tdesc_named_type (feature, "v4f");
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
+  field_type = tdesc_named_type (feature, "v2d");
+  tdesc_add_field (type_with_fields, "v2_double", field_type);
+  field_type = tdesc_named_type (feature, "v16i8");
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
+  field_type = tdesc_named_type (feature, "v8i16");
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
+  field_type = tdesc_named_type (feature, "v4i32");
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
+  field_type = tdesc_named_type (feature, "v2i64");
+  tdesc_add_field (type_with_fields, "v2_int64", field_type);
+  field_type = tdesc_named_type (feature, "uint128");
+  tdesc_add_field (type_with_fields, "uint128", field_type);
+
+  element_type = tdesc_named_type (feature, "uint128");
+  tdesc_create_vector (feature, "v2ui128", element_type, 2);
+
+  tdesc_create_reg (feature, "xmm16", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm17", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm18", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm19", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm20", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm21", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm22", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm23", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm24", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm25", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm26", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm27", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm28", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm29", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm30", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm31", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "ymm16h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm17h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm18h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm19h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm20h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm21h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm22h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm23h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm24h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm25h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm26h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm27h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm28h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm29h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm30h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm31h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "k0", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "k1", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "k2", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "k3", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "k4", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "k5", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "k6", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "k7", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "zmm0h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm1h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm2h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm3h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm4h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm5h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm6h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm7h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm8h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm9h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm10h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm11h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm12h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm13h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm14h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm15h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm16h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm17h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm18h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm19h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm20h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm21h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm22h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm23h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm24h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm25h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm26h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm27h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm28h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm29h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm30h", regnum++, 1, NULL, 256, "v2ui128");
+  tdesc_create_reg (feature, "zmm31h", regnum++, 1, NULL, 256, "v2ui128");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-avx512.xml ./gdb/features/i386/64bit-avx512.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-avx512.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/64bit-avx512.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-avx.c ./gdb/features/i386/64bit-avx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-avx.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/64bit-avx.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,29 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 64bit-avx.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_64bit_avx (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx", "64bit-avx.xml");
+  tdesc_create_reg (feature, "ymm0h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm1h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm2h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm3h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm4h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm5h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm6h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm7h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm8h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm9h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm10h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm11h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm12h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm13h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm14h", regnum++, 1, NULL, 128, "uint128");
+  tdesc_create_reg (feature, "ymm15h", regnum++, 1, NULL, 128, "uint128");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-avx.xml ./gdb/features/i386/64bit-avx.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-avx.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/64bit-avx.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-core.c ./gdb/features/i386/64bit-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-core.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/64bit-core.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,73 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 64bit-core.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_64bit_core (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core", "64bit-core.xml");
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_flags (feature, "i386_eflags", 4);
+  tdesc_add_flag (type_with_fields, 0, "CF");
+  tdesc_add_flag (type_with_fields, 1, "");
+  tdesc_add_flag (type_with_fields, 2, "PF");
+  tdesc_add_flag (type_with_fields, 4, "AF");
+  tdesc_add_flag (type_with_fields, 6, "ZF");
+  tdesc_add_flag (type_with_fields, 7, "SF");
+  tdesc_add_flag (type_with_fields, 8, "TF");
+  tdesc_add_flag (type_with_fields, 9, "IF");
+  tdesc_add_flag (type_with_fields, 10, "DF");
+  tdesc_add_flag (type_with_fields, 11, "OF");
+  tdesc_add_flag (type_with_fields, 14, "NT");
+  tdesc_add_flag (type_with_fields, 16, "RF");
+  tdesc_add_flag (type_with_fields, 17, "VM");
+  tdesc_add_flag (type_with_fields, 18, "AC");
+  tdesc_add_flag (type_with_fields, 19, "VIF");
+  tdesc_add_flag (type_with_fields, 20, "VIP");
+  tdesc_add_flag (type_with_fields, 21, "ID");
+
+  tdesc_create_reg (feature, "rax", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rbx", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rcx", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rdx", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rsi", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rdi", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rbp", regnum++, 1, NULL, 64, "data_ptr");
+  tdesc_create_reg (feature, "rsp", regnum++, 1, NULL, 64, "data_ptr");
+  tdesc_create_reg (feature, "r8", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r9", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r10", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r11", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r12", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r13", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r14", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r15", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rip", regnum++, 1, NULL, 64, "code_ptr");
+  tdesc_create_reg (feature, "eflags", regnum++, 1, NULL, 32, "i386_eflags");
+  tdesc_create_reg (feature, "cs", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "ss", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "ds", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "es", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "fs", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "gs", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "st0", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st1", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st2", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st3", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st4", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st5", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st6", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st7", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "fctrl", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fstat", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "ftag", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fiseg", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fioff", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "foseg", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fooff", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fop", regnum++, 1, "float", 32, "int");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-core.xml ./gdb/features/i386/64bit-core.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-core.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/64bit-core.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-linux.c ./gdb/features/i386/64bit-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-linux.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/64bit-linux.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,15 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 64bit-linux.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_64bit_linux (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux", "64bit-linux.xml");
+  regnum = 57;
+  tdesc_create_reg (feature, "orig_rax", regnum++, 1, NULL, 64, "int");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-linux.xml ./gdb/features/i386/64bit-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/64bit-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-mpx.c ./gdb/features/i386/64bit-mpx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-mpx.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/64bit-mpx.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,51 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 64bit-mpx.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_64bit_mpx (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx", "64bit-mpx.xml");
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_struct (feature, "br128");
+  tdesc_type *field_type;
+  field_type = tdesc_named_type (feature, "uint64");
+  tdesc_add_field (type_with_fields, "lbound", field_type);
+  field_type = tdesc_named_type (feature, "uint64");
+  tdesc_add_field (type_with_fields, "ubound_raw", field_type);
+
+  type_with_fields = tdesc_create_struct (feature, "_bndstatus");
+  tdesc_set_struct_size (type_with_fields, 8);
+  tdesc_add_bitfield (type_with_fields, "bde", 2, 63);
+  tdesc_add_bitfield (type_with_fields, "error", 0, 1);
+
+  type_with_fields = tdesc_create_union (feature, "status");
+  field_type = tdesc_named_type (feature, "data_ptr");
+  tdesc_add_field (type_with_fields, "raw", field_type);
+  field_type = tdesc_named_type (feature, "_bndstatus");
+  tdesc_add_field (type_with_fields, "status", field_type);
+
+  type_with_fields = tdesc_create_struct (feature, "_bndcfgu");
+  tdesc_set_struct_size (type_with_fields, 8);
+  tdesc_add_bitfield (type_with_fields, "base", 12, 63);
+  tdesc_add_bitfield (type_with_fields, "reserved", 2, 11);
+  tdesc_add_bitfield (type_with_fields, "preserved", 1, 1);
+  tdesc_add_bitfield (type_with_fields, "enabled", 0, 0);
+
+  type_with_fields = tdesc_create_union (feature, "cfgu");
+  field_type = tdesc_named_type (feature, "data_ptr");
+  tdesc_add_field (type_with_fields, "raw", field_type);
+  field_type = tdesc_named_type (feature, "_bndcfgu");
+  tdesc_add_field (type_with_fields, "config", field_type);
+
+  tdesc_create_reg (feature, "bnd0raw", regnum++, 1, NULL, 128, "br128");
+  tdesc_create_reg (feature, "bnd1raw", regnum++, 1, NULL, 128, "br128");
+  tdesc_create_reg (feature, "bnd2raw", regnum++, 1, NULL, 128, "br128");
+  tdesc_create_reg (feature, "bnd3raw", regnum++, 1, NULL, 128, "br128");
+  tdesc_create_reg (feature, "bndcfgu", regnum++, 1, NULL, 64, "cfgu");
+  tdesc_create_reg (feature, "bndstatus", regnum++, 1, NULL, 64, "status");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-mpx.xml ./gdb/features/i386/64bit-mpx.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-mpx.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/64bit-mpx.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-pkeys.c ./gdb/features/i386/64bit-pkeys.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-pkeys.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/64bit-pkeys.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,14 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 64bit-pkeys.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_64bit_pkeys (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.pkeys", "64bit-pkeys.xml");
+  tdesc_create_reg (feature, "pkru", regnum++, 1, NULL, 32, "uint32");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-pkeys.xml ./gdb/features/i386/64bit-pkeys.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-pkeys.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/64bit-pkeys.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2016-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-segments.c ./gdb/features/i386/64bit-segments.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-segments.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/64bit-segments.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,15 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 64bit-segments.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_64bit_segments (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.segments", "64bit-segments.xml");
+  tdesc_create_reg (feature, "fs_base", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "gs_base", regnum++, 1, NULL, 64, "int");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-segments.xml ./gdb/features/i386/64bit-segments.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-segments.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/64bit-segments.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2016-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-sse.c ./gdb/features/i386/64bit-sse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-sse.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/64bit-sse.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,84 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: 64bit-sse.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_64bit_sse (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse", "64bit-sse.xml");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "ieee_double");
+  tdesc_create_vector (feature, "v2d", element_type, 2);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int64");
+  tdesc_create_vector (feature, "v2i64", element_type, 2);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
+  field_type = tdesc_named_type (feature, "v4f");
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
+  field_type = tdesc_named_type (feature, "v2d");
+  tdesc_add_field (type_with_fields, "v2_double", field_type);
+  field_type = tdesc_named_type (feature, "v16i8");
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
+  field_type = tdesc_named_type (feature, "v8i16");
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
+  field_type = tdesc_named_type (feature, "v4i32");
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
+  field_type = tdesc_named_type (feature, "v2i64");
+  tdesc_add_field (type_with_fields, "v2_int64", field_type);
+  field_type = tdesc_named_type (feature, "uint128");
+  tdesc_add_field (type_with_fields, "uint128", field_type);
+
+  type_with_fields = tdesc_create_flags (feature, "i386_mxcsr", 4);
+  tdesc_add_flag (type_with_fields, 0, "IE");
+  tdesc_add_flag (type_with_fields, 1, "DE");
+  tdesc_add_flag (type_with_fields, 2, "ZE");
+  tdesc_add_flag (type_with_fields, 3, "OE");
+  tdesc_add_flag (type_with_fields, 4, "UE");
+  tdesc_add_flag (type_with_fields, 5, "PE");
+  tdesc_add_flag (type_with_fields, 6, "DAZ");
+  tdesc_add_flag (type_with_fields, 7, "IM");
+  tdesc_add_flag (type_with_fields, 8, "DM");
+  tdesc_add_flag (type_with_fields, 9, "ZM");
+  tdesc_add_flag (type_with_fields, 10, "OM");
+  tdesc_add_flag (type_with_fields, 11, "UM");
+  tdesc_add_flag (type_with_fields, 12, "PM");
+  tdesc_add_flag (type_with_fields, 15, "FZ");
+
+  regnum = 40;
+  tdesc_create_reg (feature, "xmm0", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm1", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm2", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm3", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm4", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm5", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm6", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm7", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm8", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm9", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm10", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm11", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm12", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm13", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm14", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "xmm15", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "mxcsr", regnum++, 1, "vector", 32, "i386_mxcsr");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-sse.xml ./gdb/features/i386/64bit-sse.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/64bit-sse.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/64bit-sse.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-avx512.c ./gdb/features/i386/amd64-avx-avx512.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-avx512.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx-avx512.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,279 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: amd64-avx-avx512.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_amd64_avx_avx512;
-static void
-initialize_tdesc_amd64_avx_avx512 (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_create_vector (feature, "v2ui128", field_type, 2);
-
-  tdesc_create_reg (feature, "xmm16", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm17", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm18", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm19", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm20", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm21", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm22", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm23", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm24", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm25", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm26", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm27", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm28", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm29", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm30", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm31", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "ymm16h", 89, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm17h", 90, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm18h", 91, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm19h", 92, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm20h", 93, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm21h", 94, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm22h", 95, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm23h", 96, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm24h", 97, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm25h", 98, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm26h", 99, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm27h", 100, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm28h", 101, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm29h", 102, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm30h", 103, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm31h", 104, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "k0", 105, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k1", 106, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k2", 107, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k3", 108, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k4", 109, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k5", 110, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k6", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k7", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "zmm0h", 113, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm1h", 114, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm2h", 115, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm3h", 116, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm4h", 117, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm5h", 118, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm6h", 119, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm7h", 120, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm8h", 121, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm9h", 122, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm10h", 123, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm11h", 124, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm12h", 125, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm13h", 126, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm14h", 127, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm15h", 128, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm16h", 129, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm17h", 130, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm18h", 131, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm19h", 132, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm20h", 133, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm21h", 134, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm22h", 135, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm23h", 136, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm24h", 137, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm25h", 138, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm26h", 139, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm27h", 140, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm28h", 141, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm29h", 142, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm30h", 143, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm31h", 144, 1, NULL, 256, "v2ui128");
-
-  tdesc_amd64_avx_avx512 = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-avx512-linux.c ./gdb/features/i386/amd64-avx-avx512-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-avx512-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx-avx512-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,288 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: amd64-avx-avx512-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_amd64_avx_avx512_linux;
-static void
-initialize_tdesc_amd64_avx_avx512_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.segments");
-  tdesc_create_reg (feature, "fs_base", 58, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "gs_base", 59, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 60, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 61, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 62, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 63, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 64, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 65, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 66, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 67, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm8h", 68, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm9h", 69, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm10h", 70, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm11h", 71, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm12h", 72, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm13h", 73, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm14h", 74, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm15h", 75, 1, NULL, 128, "uint128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_create_vector (feature, "v2ui128", field_type, 2);
-
-  tdesc_create_reg (feature, "xmm16", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm17", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm18", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm19", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm20", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm21", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm22", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm23", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm24", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm25", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm26", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm27", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm28", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm29", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm30", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm31", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "ymm16h", 92, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm17h", 93, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm18h", 94, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm19h", 95, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm20h", 96, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm21h", 97, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm22h", 98, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm23h", 99, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm24h", 100, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm25h", 101, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm26h", 102, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm27h", 103, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm28h", 104, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm29h", 105, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm30h", 106, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm31h", 107, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "k0", 108, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k1", 109, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k2", 110, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k3", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k4", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k5", 113, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k6", 114, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k7", 115, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "zmm0h", 116, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm1h", 117, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm2h", 118, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm3h", 119, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm4h", 120, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm5h", 121, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm6h", 122, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm7h", 123, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm8h", 124, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm9h", 125, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm10h", 126, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm11h", 127, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm12h", 128, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm13h", 129, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm14h", 130, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm15h", 131, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm16h", 132, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm17h", 133, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm18h", 134, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm19h", 135, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm20h", 136, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm21h", 137, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm22h", 138, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm23h", 139, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm24h", 140, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm25h", 141, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm26h", 142, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm27h", 143, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm28h", 144, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm29h", 145, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm30h", 146, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm31h", 146, 1, NULL, 256, "v2ui128");
-
-  tdesc_amd64_avx_avx512_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-avx512-linux.xml ./gdb/features/i386/amd64-avx-avx512-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-avx512-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx-avx512-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-avx512.xml ./gdb/features/i386/amd64-avx-avx512.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-avx512.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx-avx512.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
@@ -12,6 +12,7 @@
   <architecture>i386:x86-64</architecture>
   <xi:include href="64bit-core.xml"/>
   <xi:include href="64bit-sse.xml"/>
+  <xi:include href="64bit-segments.xml"/>
   <xi:include href="64bit-avx.xml"/>
   <xi:include href="64bit-avx512.xml"/>
 </target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx.c ./gdb/features/i386/amd64-avx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,168 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: amd64-avx.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_amd64_avx;
-static void
-initialize_tdesc_amd64_avx (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
-
-  tdesc_amd64_avx = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-linux.c ./gdb/features/i386/amd64-avx-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,177 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: amd64-avx-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_amd64_avx_linux;
-static void
-initialize_tdesc_amd64_avx_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.segments");
-  tdesc_create_reg (feature, "fs_base", 58, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "gs_base", 59, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 60, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 61, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 62, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 63, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 64, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 65, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 66, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 67, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm8h", 68, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm9h", 69, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm10h", 70, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm11h", 71, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm12h", 72, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm13h", 73, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm14h", 74, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm15h", 75, 1, NULL, 128, "uint128");
-
-  tdesc_amd64_avx_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-linux.xml ./gdb/features/i386/amd64-avx-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx-avx512-pku.c ./gdb/features/i386/amd64-avx-mpx-avx512-pku.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx-avx512-pku.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx-mpx-avx512-pku.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,320 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: amd64-avx-mpx-avx512-pku.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_amd64_avx_mpx_avx512_pku;
-static void
-initialize_tdesc_amd64_avx_mpx_avx512_pku (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-  type = tdesc_create_struct (feature, "br128");
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "lbound", field_type);
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "ubound_raw", field_type);
-
-  type = tdesc_create_struct (feature, "_bndstatus");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "bde", 2, 63);
-  tdesc_add_bitfield (type, "error", 0, 1);
-
-  type = tdesc_create_union (feature, "status");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndstatus");
-  tdesc_add_field (type, "status", field_type);
-
-  type = tdesc_create_struct (feature, "_bndcfgu");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "base", 12, 63);
-  tdesc_add_bitfield (type, "reserved", 2, 11);
-  tdesc_add_bitfield (type, "preserved", 1, 1);
-  tdesc_add_bitfield (type, "enabled", 0, 0);
-
-  type = tdesc_create_union (feature, "cfgu");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndcfgu");
-  tdesc_add_field (type, "config", field_type);
-
-  tdesc_create_reg (feature, "bnd0raw", 73, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd1raw", 74, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd2raw", 75, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd3raw", 76, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bndcfgu", 77, 1, NULL, 64, "cfgu");
-  tdesc_create_reg (feature, "bndstatus", 78, 1, NULL, 64, "status");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_create_vector (feature, "v2ui128", field_type, 2);
-
-  tdesc_create_reg (feature, "xmm16", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm17", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm18", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm19", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm20", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm21", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm22", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm23", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm24", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm25", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm26", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm27", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm28", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm29", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm30", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm31", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "ymm16h", 95, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm17h", 96, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm18h", 97, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm19h", 98, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm20h", 99, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm21h", 100, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm22h", 101, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm23h", 102, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm24h", 103, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm25h", 104, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm26h", 105, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm27h", 106, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm28h", 107, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm29h", 108, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm30h", 109, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm31h", 110, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "k0", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k1", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k2", 113, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k3", 114, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k4", 115, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k5", 116, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k6", 117, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k7", 118, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "zmm0h", 119, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm1h", 120, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm2h", 121, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm3h", 122, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm4h", 123, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm5h", 124, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm6h", 125, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm7h", 126, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm8h", 127, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm9h", 128, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm10h", 129, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm11h", 130, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm12h", 131, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm13h", 132, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm14h", 133, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm15h", 134, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm16h", 135, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm17h", 136, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm18h", 137, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm19h", 138, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm20h", 139, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm21h", 140, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm22h", 141, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm23h", 142, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm24h", 143, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm25h", 144, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm26h", 145, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm27h", 146, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm28h", 147, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm29h", 148, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm30h", 149, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm31h", 150, 1, NULL, 256, "v2ui128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.pkeys");
-  tdesc_create_reg (feature, "pkru", 151, 1, NULL, 32, "uint32");
-
-  tdesc_amd64_avx_mpx_avx512_pku = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx-avx512-pku-linux.c ./gdb/features/i386/amd64-avx-mpx-avx512-pku-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx-avx512-pku-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx-mpx-avx512-pku-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,329 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: amd64-avx-mpx-avx512-pku-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_amd64_avx_mpx_avx512_pku_linux;
-static void
-initialize_tdesc_amd64_avx_mpx_avx512_pku_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.segments");
-  tdesc_create_reg (feature, "fs_base", 58, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "gs_base", 59, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 60, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 61, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 62, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 63, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 64, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 65, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 66, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 67, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm8h", 68, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm9h", 69, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm10h", 70, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm11h", 71, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm12h", 72, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm13h", 73, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm14h", 74, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm15h", 75, 1, NULL, 128, "uint128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-  type = tdesc_create_struct (feature, "br128");
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "lbound", field_type);
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "ubound_raw", field_type);
-
-  type = tdesc_create_struct (feature, "_bndstatus");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "bde", 2, 63);
-  tdesc_add_bitfield (type, "error", 0, 1);
-
-  type = tdesc_create_union (feature, "status");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndstatus");
-  tdesc_add_field (type, "status", field_type);
-
-  type = tdesc_create_struct (feature, "_bndcfgu");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "base", 12, 63);
-  tdesc_add_bitfield (type, "reserved", 2, 11);
-  tdesc_add_bitfield (type, "preserved", 1, 1);
-  tdesc_add_bitfield (type, "enabled", 0, 0);
-
-  type = tdesc_create_union (feature, "cfgu");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndcfgu");
-  tdesc_add_field (type, "config", field_type);
-
-  tdesc_create_reg (feature, "bnd0raw", 76, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd1raw", 77, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd2raw", 78, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd3raw", 79, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bndcfgu", 80, 1, NULL, 64, "cfgu");
-  tdesc_create_reg (feature, "bndstatus", 81, 1, NULL, 64, "status");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_create_vector (feature, "v2ui128", field_type, 2);
-
-  tdesc_create_reg (feature, "xmm16", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm17", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm18", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm19", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm20", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm21", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm22", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm23", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm24", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm25", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm26", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm27", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm28", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm29", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm30", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm31", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "ymm16h", 98, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm17h", 99, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm18h", 100, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm19h", 101, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm20h", 102, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm21h", 103, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm22h", 104, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm23h", 105, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm24h", 106, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm25h", 107, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm26h", 108, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm27h", 109, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm28h", 110, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm29h", 111, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm30h", 112, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm31h", 113, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "k0", 114, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k1", 115, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k2", 116, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k3", 117, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k4", 118, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k5", 119, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k6", 120, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k7", 121, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "zmm0h", 122, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm1h", 123, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm2h", 124, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm3h", 125, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm4h", 126, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm5h", 127, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm6h", 128, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm7h", 129, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm8h", 130, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm9h", 131, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm10h", 132, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm11h", 133, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm12h", 134, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm13h", 135, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm14h", 136, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm15h", 137, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm16h", 138, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm17h", 139, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm18h", 140, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm19h", 141, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm20h", 142, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm21h", 143, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm22h", 144, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm23h", 145, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm24h", 146, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm25h", 147, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm26h", 148, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm27h", 149, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm28h", 150, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm29h", 151, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm30h", 152, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm31h", 153, 1, NULL, 256, "v2ui128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.pkeys");
-  tdesc_create_reg (feature, "pkru", 152, 1, NULL, 32, "uint32");
-
-  tdesc_amd64_avx_mpx_avx512_pku_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx-avx512-pku-linux.xml ./gdb/features/i386/amd64-avx-mpx-avx512-pku-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx-avx512-pku-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx-mpx-avx512-pku-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx-avx512-pku.xml ./gdb/features/i386/amd64-avx-mpx-avx512-pku.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx-avx512-pku.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx-mpx-avx512-pku.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
@@ -12,6 +12,7 @@
   <architecture>i386:x86-64</architecture>
   <xi:include href="64bit-core.xml"/>
   <xi:include href="64bit-sse.xml"/>
+  <xi:include href="64bit-segments.xml"/>
   <xi:include href="64bit-avx.xml"/>
   <xi:include href="64bit-mpx.xml"/>
   <xi:include href="64bit-avx512.xml"/>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx.c ./gdb/features/i386/amd64-avx-mpx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx-mpx.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,206 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: amd64-avx-mpx.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_amd64_avx_mpx;
-static void
-initialize_tdesc_amd64_avx_mpx (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-  type = tdesc_create_struct (feature, "br128");
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "lbound", field_type);
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "ubound_raw", field_type);
-
-  type = tdesc_create_struct (feature, "_bndstatus");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "bde", 2, 63);
-  tdesc_add_bitfield (type, "error", 0, 1);
-
-  type = tdesc_create_union (feature, "status");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndstatus");
-  tdesc_add_field (type, "status", field_type);
-
-  type = tdesc_create_struct (feature, "_bndcfgu");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "base", 12, 63);
-  tdesc_add_bitfield (type, "reserved", 2, 11);
-  tdesc_add_bitfield (type, "preserved", 1, 1);
-  tdesc_add_bitfield (type, "enabled", 0, 0);
-
-  type = tdesc_create_union (feature, "cfgu");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndcfgu");
-  tdesc_add_field (type, "config", field_type);
-
-  tdesc_create_reg (feature, "bnd0raw", 73, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd1raw", 74, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd2raw", 75, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd3raw", 76, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bndcfgu", 77, 1, NULL, 64, "cfgu");
-  tdesc_create_reg (feature, "bndstatus", 78, 1, NULL, 64, "status");
-
-  tdesc_amd64_avx_mpx = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx-linux.c ./gdb/features/i386/amd64-avx-mpx-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx-mpx-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,215 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: amd64-avx-mpx-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_amd64_avx_mpx_linux;
-static void
-initialize_tdesc_amd64_avx_mpx_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.segments");
-  tdesc_create_reg (feature, "fs_base", 58, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "gs_base", 59, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 60, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 61, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 62, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 63, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 64, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 65, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 66, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 67, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm8h", 68, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm9h", 69, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm10h", 70, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm11h", 71, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm12h", 72, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm13h", 73, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm14h", 74, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm15h", 75, 1, NULL, 128, "uint128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-  type = tdesc_create_struct (feature, "br128");
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "lbound", field_type);
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "ubound_raw", field_type);
-
-  type = tdesc_create_struct (feature, "_bndstatus");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "bde", 2, 63);
-  tdesc_add_bitfield (type, "error", 0, 1);
-
-  type = tdesc_create_union (feature, "status");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndstatus");
-  tdesc_add_field (type, "status", field_type);
-
-  type = tdesc_create_struct (feature, "_bndcfgu");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "base", 12, 63);
-  tdesc_add_bitfield (type, "reserved", 2, 11);
-  tdesc_add_bitfield (type, "preserved", 1, 1);
-  tdesc_add_bitfield (type, "enabled", 0, 0);
-
-  type = tdesc_create_union (feature, "cfgu");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndcfgu");
-  tdesc_add_field (type, "config", field_type);
-
-  tdesc_create_reg (feature, "bnd0raw", 76, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd1raw", 77, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd2raw", 78, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd3raw", 79, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bndcfgu", 80, 1, NULL, 64, "cfgu");
-  tdesc_create_reg (feature, "bndstatus", 81, 1, NULL, 64, "status");
-
-  tdesc_amd64_avx_mpx_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx-linux.xml ./gdb/features/i386/amd64-avx-mpx-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx-mpx-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx.xml ./gdb/features/i386/amd64-avx-mpx.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx-mpx.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx-mpx.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
@@ -12,6 +12,7 @@
   <architecture>i386:x86-64</architecture>
   <xi:include href="64bit-core.xml"/>
   <xi:include href="64bit-sse.xml"/>
+  <xi:include href="64bit-segments.xml"/>
   <xi:include href="64bit-avx.xml"/>
   <xi:include href="64bit-mpx.xml"/>
 </target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx.xml ./gdb/features/i386/amd64-avx.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-avx.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-avx.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
@@ -12,5 +12,6 @@
   <architecture>i386:x86-64</architecture>
   <xi:include href="64bit-core.xml"/>
   <xi:include href="64bit-sse.xml"/>
+  <xi:include href="64bit-segments.xml"/>
   <xi:include href="64bit-avx.xml"/>
 </target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64.c ./gdb/features/i386/amd64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,150 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: amd64.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_amd64;
-static void
-initialize_tdesc_amd64 (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  tdesc_amd64 = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-linux.c ./gdb/features/i386/amd64-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,159 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: amd64-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_amd64_linux;
-static void
-initialize_tdesc_amd64_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.segments");
-  tdesc_create_reg (feature, "fs_base", 58, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "gs_base", 59, 1, NULL, 64, "int");
-
-  tdesc_amd64_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-linux.xml ./gdb/features/i386/amd64-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-mpx.c ./gdb/features/i386/amd64-mpx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-mpx.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-mpx.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,188 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: amd64-mpx.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_amd64_mpx;
-static void
-initialize_tdesc_amd64_mpx (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-  type = tdesc_create_struct (feature, "br128");
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "lbound", field_type);
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "ubound_raw", field_type);
-
-  type = tdesc_create_struct (feature, "_bndstatus");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "bde", 2, 63);
-  tdesc_add_bitfield (type, "error", 0, 1);
-
-  type = tdesc_create_union (feature, "status");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndstatus");
-  tdesc_add_field (type, "status", field_type);
-
-  type = tdesc_create_struct (feature, "_bndcfgu");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "base", 12, 63);
-  tdesc_add_bitfield (type, "reserved", 2, 11);
-  tdesc_add_bitfield (type, "preserved", 1, 1);
-  tdesc_add_bitfield (type, "enabled", 0, 0);
-
-  type = tdesc_create_union (feature, "cfgu");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndcfgu");
-  tdesc_add_field (type, "config", field_type);
-
-  tdesc_create_reg (feature, "bnd0raw", 57, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd1raw", 58, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd2raw", 59, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd3raw", 60, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bndcfgu", 61, 1, NULL, 64, "cfgu");
-  tdesc_create_reg (feature, "bndstatus", 62, 1, NULL, 64, "status");
-
-  tdesc_amd64_mpx = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-mpx-linux.c ./gdb/features/i386/amd64-mpx-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-mpx-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-mpx-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,197 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: amd64-mpx-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_amd64_mpx_linux;
-static void
-initialize_tdesc_amd64_mpx_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.segments");
-  tdesc_create_reg (feature, "fs_base", 58, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "gs_base", 59, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-  type = tdesc_create_struct (feature, "br128");
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "lbound", field_type);
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "ubound_raw", field_type);
-
-  type = tdesc_create_struct (feature, "_bndstatus");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "bde", 2, 63);
-  tdesc_add_bitfield (type, "error", 0, 1);
-
-  type = tdesc_create_union (feature, "status");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndstatus");
-  tdesc_add_field (type, "status", field_type);
-
-  type = tdesc_create_struct (feature, "_bndcfgu");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "base", 12, 63);
-  tdesc_add_bitfield (type, "reserved", 2, 11);
-  tdesc_add_bitfield (type, "preserved", 1, 1);
-  tdesc_add_bitfield (type, "enabled", 0, 0);
-
-  type = tdesc_create_union (feature, "cfgu");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndcfgu");
-  tdesc_add_field (type, "config", field_type);
-
-  tdesc_create_reg (feature, "bnd0raw", 60, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd1raw", 61, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd2raw", 62, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd3raw", 63, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bndcfgu", 64, 1, NULL, 64, "cfgu");
-  tdesc_create_reg (feature, "bndstatus", 65, 1, NULL, 64, "status");
-
-  tdesc_amd64_mpx_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-mpx-linux.xml ./gdb/features/i386/amd64-mpx-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-mpx-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-mpx-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-mpx.xml ./gdb/features/i386/amd64-mpx.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64-mpx.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64-mpx.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
@@ -12,5 +12,6 @@
   <architecture>i386:x86-64</architecture>
   <xi:include href="64bit-core.xml"/>
   <xi:include href="64bit-sse.xml"/>
+  <xi:include href="64bit-segments.xml"/>
   <xi:include href="64bit-mpx.xml"/>
 </target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64.xml ./gdb/features/i386/amd64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/amd64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/amd64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
@@ -12,4 +12,5 @@
   <architecture>i386:x86-64</architecture>
   <xi:include href="64bit-core.xml"/>
   <xi:include href="64bit-sse.xml"/>
+  <xi:include href="64bit-segments.xml"/>
 </target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-avx512.c ./gdb/features/i386/i386-avx-avx512.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-avx512.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx-avx512.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,165 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-avx-avx512.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_i386_avx_avx512;
-static void
-initialize_tdesc_i386_avx_avx512 (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 41, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 42, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 43, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 44, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 45, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 46, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 47, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 48, 1, NULL, 128, "uint128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_create_vector (feature, "v2ui128", field_type, 2);
-
-  tdesc_create_reg (feature, "k0", 49, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k1", 50, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k2", 51, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k3", 52, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k4", 53, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k5", 54, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k6", 55, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k7", 56, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "zmm0h", 57, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm1h", 58, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm2h", 59, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm3h", 60, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm4h", 61, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm5h", 62, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm6h", 63, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm7h", 64, 1, NULL, 256, "v2ui128");
-
-  tdesc_i386_avx_avx512 = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-avx512-linux.c ./gdb/features/i386/i386-avx-avx512-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-avx512-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx-avx512-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,170 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-avx-avx512-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_i386_avx_avx512_linux;
-static void
-initialize_tdesc_i386_avx_avx512_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 42, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 43, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 44, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 45, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 46, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 47, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 48, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 49, 1, NULL, 128, "uint128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_create_vector (feature, "v2ui128", field_type, 2);
-
-  tdesc_create_reg (feature, "k0", 50, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k1", 51, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k2", 52, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k3", 53, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k4", 54, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k5", 55, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k6", 56, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k7", 57, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "zmm0h", 58, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm1h", 59, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm2h", 60, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm3h", 61, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm4h", 62, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm5h", 63, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm6h", 64, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm7h", 65, 1, NULL, 256, "v2ui128");
-
-  tdesc_i386_avx_avx512_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-avx512-linux.xml ./gdb/features/i386/i386-avx-avx512-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-avx512-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx-avx512-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-avx512.xml ./gdb/features/i386/i386-avx-avx512.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-avx512.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx-avx512.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx.c ./gdb/features/i386/i386-avx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,144 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-avx.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_i386_avx;
-static void
-initialize_tdesc_i386_avx (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 41, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 42, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 43, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 44, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 45, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 46, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 47, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 48, 1, NULL, 128, "uint128");
-
-  tdesc_i386_avx = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-linux.c ./gdb/features/i386/i386-avx-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,149 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-avx-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_i386_avx_linux;
-static void
-initialize_tdesc_i386_avx_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 42, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 43, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 44, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 45, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 46, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 47, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 48, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 49, 1, NULL, 128, "uint128");
-
-  tdesc_i386_avx_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-linux.xml ./gdb/features/i386/i386-avx-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx-avx512-pku.c ./gdb/features/i386/i386-avx-mpx-avx512-pku.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx-avx512-pku.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx-mpx-avx512-pku.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,206 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-avx-mpx-avx512-pku.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_i386_avx_mpx_avx512_pku;
-static void
-initialize_tdesc_i386_avx_mpx_avx512_pku (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 41, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 42, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 43, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 44, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 45, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 46, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 47, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 48, 1, NULL, 128, "uint128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-  type = tdesc_create_struct (feature, "br128");
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "lbound", field_type);
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "ubound_raw", field_type);
-
-  type = tdesc_create_struct (feature, "_bndstatus");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "bde", 2, 31);
-  tdesc_add_bitfield (type, "error", 0, 1);
-
-  type = tdesc_create_union (feature, "status");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndstatus");
-  tdesc_add_field (type, "status", field_type);
-
-  type = tdesc_create_struct (feature, "_bndcfgu");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "base", 12, 31);
-  tdesc_add_bitfield (type, "reserved", 2, 11);
-  tdesc_add_bitfield (type, "preserved", 1, 1);
-  tdesc_add_bitfield (type, "enabled", 0, 0);
-
-  type = tdesc_create_union (feature, "cfgu");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndcfgu");
-  tdesc_add_field (type, "config", field_type);
-
-  tdesc_create_reg (feature, "bnd0raw", 49, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd1raw", 50, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd2raw", 51, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd3raw", 52, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bndcfgu", 53, 1, NULL, 64, "cfgu");
-  tdesc_create_reg (feature, "bndstatus", 54, 1, NULL, 64, "status");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_create_vector (feature, "v2ui128", field_type, 2);
-
-  tdesc_create_reg (feature, "k0", 55, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k1", 56, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k2", 57, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k3", 58, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k4", 59, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k5", 60, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k6", 61, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k7", 62, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "zmm0h", 63, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm1h", 64, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm2h", 65, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm3h", 66, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm4h", 67, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm5h", 68, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm6h", 69, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm7h", 70, 1, NULL, 256, "v2ui128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.pkeys");
-  tdesc_create_reg (feature, "pkru", 71, 1, NULL, 32, "uint32");
-
-  tdesc_i386_avx_mpx_avx512_pku = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx-avx512-pku-linux.c ./gdb/features/i386/i386-avx-mpx-avx512-pku-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx-avx512-pku-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx-mpx-avx512-pku-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,211 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-avx-mpx-avx512-pku-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_i386_avx_mpx_avx512_pku_linux;
-static void
-initialize_tdesc_i386_avx_mpx_avx512_pku_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 42, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 43, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 44, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 45, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 46, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 47, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 48, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 49, 1, NULL, 128, "uint128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-  type = tdesc_create_struct (feature, "br128");
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "lbound", field_type);
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "ubound_raw", field_type);
-
-  type = tdesc_create_struct (feature, "_bndstatus");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "bde", 2, 31);
-  tdesc_add_bitfield (type, "error", 0, 1);
-
-  type = tdesc_create_union (feature, "status");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndstatus");
-  tdesc_add_field (type, "status", field_type);
-
-  type = tdesc_create_struct (feature, "_bndcfgu");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "base", 12, 31);
-  tdesc_add_bitfield (type, "reserved", 2, 11);
-  tdesc_add_bitfield (type, "preserved", 1, 1);
-  tdesc_add_bitfield (type, "enabled", 0, 0);
-
-  type = tdesc_create_union (feature, "cfgu");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndcfgu");
-  tdesc_add_field (type, "config", field_type);
-
-  tdesc_create_reg (feature, "bnd0raw", 50, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd1raw", 51, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd2raw", 52, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd3raw", 53, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bndcfgu", 54, 1, NULL, 64, "cfgu");
-  tdesc_create_reg (feature, "bndstatus", 55, 1, NULL, 64, "status");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_create_vector (feature, "v2ui128", field_type, 2);
-
-  tdesc_create_reg (feature, "k0", 56, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k1", 57, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k2", 58, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k3", 59, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k4", 60, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k5", 61, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k6", 62, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k7", 63, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "zmm0h", 64, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm1h", 65, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm2h", 66, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm3h", 67, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm4h", 68, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm5h", 69, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm6h", 70, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm7h", 71, 1, NULL, 256, "v2ui128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.pkeys");
-  tdesc_create_reg (feature, "pkru", 72, 1, NULL, 32, "uint32");
-
-  tdesc_i386_avx_mpx_avx512_pku_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx-avx512-pku-linux.xml ./gdb/features/i386/i386-avx-mpx-avx512-pku-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx-avx512-pku-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx-mpx-avx512-pku-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx-avx512-pku.xml ./gdb/features/i386/i386-avx-mpx-avx512-pku.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx-avx512-pku.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx-mpx-avx512-pku.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx.c ./gdb/features/i386/i386-avx-mpx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx-mpx.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,182 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-avx-mpx.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_i386_avx_mpx;
-static void
-initialize_tdesc_i386_avx_mpx (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 41, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 42, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 43, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 44, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 45, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 46, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 47, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 48, 1, NULL, 128, "uint128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-  type = tdesc_create_struct (feature, "br128");
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "lbound", field_type);
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "ubound_raw", field_type);
-
-  type = tdesc_create_struct (feature, "_bndstatus");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "bde", 2, 31);
-  tdesc_add_bitfield (type, "error", 0, 1);
-
-  type = tdesc_create_union (feature, "status");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndstatus");
-  tdesc_add_field (type, "status", field_type);
-
-  type = tdesc_create_struct (feature, "_bndcfgu");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "base", 12, 31);
-  tdesc_add_bitfield (type, "reserved", 2, 11);
-  tdesc_add_bitfield (type, "preserved", 1, 1);
-  tdesc_add_bitfield (type, "enabled", 0, 0);
-
-  type = tdesc_create_union (feature, "cfgu");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndcfgu");
-  tdesc_add_field (type, "config", field_type);
-
-  tdesc_create_reg (feature, "bnd0raw", 49, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd1raw", 50, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd2raw", 51, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd3raw", 52, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bndcfgu", 53, 1, NULL, 64, "cfgu");
-  tdesc_create_reg (feature, "bndstatus", 54, 1, NULL, 64, "status");
-
-  tdesc_i386_avx_mpx = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx-linux.c ./gdb/features/i386/i386-avx-mpx-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx-mpx-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,187 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-avx-mpx-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_i386_avx_mpx_linux;
-static void
-initialize_tdesc_i386_avx_mpx_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 42, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 43, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 44, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 45, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 46, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 47, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 48, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 49, 1, NULL, 128, "uint128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-  type = tdesc_create_struct (feature, "br128");
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "lbound", field_type);
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "ubound_raw", field_type);
-
-  type = tdesc_create_struct (feature, "_bndstatus");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "bde", 2, 31);
-  tdesc_add_bitfield (type, "error", 0, 1);
-
-  type = tdesc_create_union (feature, "status");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndstatus");
-  tdesc_add_field (type, "status", field_type);
-
-  type = tdesc_create_struct (feature, "_bndcfgu");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "base", 12, 31);
-  tdesc_add_bitfield (type, "reserved", 2, 11);
-  tdesc_add_bitfield (type, "preserved", 1, 1);
-  tdesc_add_bitfield (type, "enabled", 0, 0);
-
-  type = tdesc_create_union (feature, "cfgu");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndcfgu");
-  tdesc_add_field (type, "config", field_type);
-
-  tdesc_create_reg (feature, "bnd0raw", 50, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd1raw", 51, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd2raw", 52, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd3raw", 53, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bndcfgu", 54, 1, NULL, 64, "cfgu");
-  tdesc_create_reg (feature, "bndstatus", 55, 1, NULL, 64, "status");
-
-  tdesc_i386_avx_mpx_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx-linux.xml ./gdb/features/i386/i386-avx-mpx-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx-mpx-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx.xml ./gdb/features/i386/i386-avx-mpx.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx-mpx.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx-mpx.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx.xml ./gdb/features/i386/i386-avx.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-avx.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-avx.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386.c ./gdb/features/i386/i386.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,134 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_i386;
-static void
-initialize_tdesc_i386 (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-
-  tdesc_i386 = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-linux.c ./gdb/features/i386/i386-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,139 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_i386_linux;
-static void
-initialize_tdesc_i386_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-
-  tdesc_i386_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-linux.xml ./gdb/features/i386/i386-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
@@ -12,6 +12,6 @@
   <architecture>i386</architecture>
   <osabi>GNU/Linux</osabi>
   <xi:include href="32bit-core.xml"/>
-  <xi:include href="32bit-linux.xml"/>
   <xi:include href="32bit-sse.xml"/>
+  <xi:include href="32bit-linux.xml"/>
 </target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mmx.c ./gdb/features/i386/i386-mmx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mmx.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-mmx.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,73 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-mmx.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_i386_mmx;
-static void
-initialize_tdesc_i386_mmx (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-
-  tdesc_i386_mmx = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mmx-linux.c ./gdb/features/i386/i386-mmx-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mmx-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-mmx-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,78 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-mmx-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_i386_mmx_linux;
-static void
-initialize_tdesc_i386_mmx_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
-
-  tdesc_i386_mmx_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mmx-linux.xml ./gdb/features/i386/i386-mmx-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mmx-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-mmx-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mmx.xml ./gdb/features/i386/i386-mmx.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mmx.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-mmx.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mpx.c ./gdb/features/i386/i386-mpx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mpx.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-mpx.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,172 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-mpx.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_i386_mpx;
-static void
-initialize_tdesc_i386_mpx (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-  type = tdesc_create_struct (feature, "br128");
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "lbound", field_type);
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "ubound_raw", field_type);
-
-  type = tdesc_create_struct (feature, "_bndstatus");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "bde", 2, 31);
-  tdesc_add_bitfield (type, "error", 0, 1);
-
-  type = tdesc_create_union (feature, "status");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndstatus");
-  tdesc_add_field (type, "status", field_type);
-
-  type = tdesc_create_struct (feature, "_bndcfgu");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "base", 12, 31);
-  tdesc_add_bitfield (type, "reserved", 2, 11);
-  tdesc_add_bitfield (type, "preserved", 1, 1);
-  tdesc_add_bitfield (type, "enabled", 0, 0);
-
-  type = tdesc_create_union (feature, "cfgu");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndcfgu");
-  tdesc_add_field (type, "config", field_type);
-
-  tdesc_create_reg (feature, "bnd0raw", 41, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd1raw", 42, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd2raw", 43, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd3raw", 44, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bndcfgu", 45, 1, NULL, 64, "cfgu");
-  tdesc_create_reg (feature, "bndstatus", 46, 1, NULL, 64, "status");
-
-  tdesc_i386_mpx = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mpx-linux.c ./gdb/features/i386/i386-mpx-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mpx-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-mpx-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,177 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-mpx-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_i386_mpx_linux;
-static void
-initialize_tdesc_i386_mpx_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
-  type = tdesc_create_struct (feature, "br128");
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "lbound", field_type);
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "ubound_raw", field_type);
-
-  type = tdesc_create_struct (feature, "_bndstatus");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "bde", 2, 31);
-  tdesc_add_bitfield (type, "error", 0, 1);
-
-  type = tdesc_create_union (feature, "status");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndstatus");
-  tdesc_add_field (type, "status", field_type);
-
-  type = tdesc_create_struct (feature, "_bndcfgu");
-  tdesc_set_struct_size (type, 8);
-  tdesc_add_bitfield (type, "base", 12, 31);
-  tdesc_add_bitfield (type, "reserved", 2, 11);
-  tdesc_add_bitfield (type, "preserved", 1, 1);
-  tdesc_add_bitfield (type, "enabled", 0, 0);
-
-  type = tdesc_create_union (feature, "cfgu");
-  field_type = tdesc_named_type (feature, "data_ptr");
-  tdesc_add_field (type, "raw", field_type);
-  field_type = tdesc_named_type (feature, "_bndcfgu");
-  tdesc_add_field (type, "config", field_type);
-
-  tdesc_create_reg (feature, "bnd0raw", 42, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd1raw", 43, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd2raw", 44, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bnd3raw", 45, 1, NULL, 128, "br128");
-  tdesc_create_reg (feature, "bndcfgu", 46, 1, NULL, 64, "cfgu");
-  tdesc_create_reg (feature, "bndstatus", 47, 1, NULL, 64, "status");
-
-  tdesc_i386_mpx_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mpx-linux.xml ./gdb/features/i386/i386-mpx-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mpx-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-mpx-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mpx.xml ./gdb/features/i386/i386-mpx.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386-mpx.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386-mpx.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386.xml ./gdb/features/i386/i386.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/i386.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/i386.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx-avx512.c ./gdb/features/i386/x32-avx-avx512.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx-avx512.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/x32-avx-avx512.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,279 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: x32-avx-avx512.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_x32_avx_avx512;
-static void
-initialize_tdesc_x32_avx_avx512 (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x64-32"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_create_vector (feature, "v2ui128", field_type, 2);
-
-  tdesc_create_reg (feature, "xmm16", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm17", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm18", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm19", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm20", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm21", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm22", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm23", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm24", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm25", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm26", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm27", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm28", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm29", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm30", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm31", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "ymm16h", 89, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm17h", 90, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm18h", 91, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm19h", 92, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm20h", 93, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm21h", 94, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm22h", 95, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm23h", 96, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm24h", 97, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm25h", 98, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm26h", 99, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm27h", 100, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm28h", 101, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm29h", 102, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm30h", 103, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm31h", 104, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "k0", 105, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k1", 106, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k2", 107, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k3", 108, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k4", 109, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k5", 110, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k6", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k7", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "zmm0h", 113, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm1h", 114, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm2h", 115, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm3h", 116, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm4h", 117, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm5h", 118, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm6h", 119, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm7h", 120, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm8h", 121, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm9h", 122, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm10h", 123, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm11h", 124, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm12h", 125, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm13h", 126, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm14h", 127, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm15h", 128, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm16h", 129, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm17h", 130, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm18h", 131, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm19h", 132, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm20h", 133, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm21h", 134, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm22h", 135, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm23h", 136, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm24h", 137, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm25h", 138, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm26h", 139, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm27h", 140, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm28h", 141, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm29h", 142, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm30h", 143, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm31h", 144, 1, NULL, 256, "v2ui128");
-
-  tdesc_x32_avx_avx512 = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx-avx512-linux.c ./gdb/features/i386/x32-avx-avx512-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx-avx512-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/x32-avx-avx512-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,288 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: x32-avx-avx512-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_x32_avx_avx512_linux;
-static void
-initialize_tdesc_x32_avx_avx512_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x64-32"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.segments");
-  tdesc_create_reg (feature, "fs_base", 58, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "gs_base", 59, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 60, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 61, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 62, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 63, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 64, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 65, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 66, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 67, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm8h", 68, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm9h", 69, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm10h", 70, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm11h", 71, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm12h", 72, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm13h", 73, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm14h", 74, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm15h", 75, 1, NULL, 128, "uint128");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_create_vector (feature, "v2ui128", field_type, 2);
-
-  tdesc_create_reg (feature, "xmm16", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm17", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm18", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm19", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm20", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm21", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm22", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm23", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm24", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm25", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm26", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm27", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm28", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm29", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm30", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm31", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "ymm16h", 92, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm17h", 93, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm18h", 94, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm19h", 95, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm20h", 96, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm21h", 97, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm22h", 98, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm23h", 99, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm24h", 100, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm25h", 101, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm26h", 102, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm27h", 103, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm28h", 104, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm29h", 105, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm30h", 106, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm31h", 107, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "k0", 108, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k1", 109, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k2", 110, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k3", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k4", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k5", 113, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k6", 114, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "k7", 115, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "zmm0h", 116, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm1h", 117, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm2h", 118, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm3h", 119, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm4h", 120, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm5h", 121, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm6h", 122, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm7h", 123, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm8h", 124, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm9h", 125, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm10h", 126, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm11h", 127, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm12h", 128, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm13h", 129, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm14h", 130, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm15h", 131, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm16h", 132, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm17h", 133, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm18h", 134, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm19h", 135, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm20h", 136, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm21h", 137, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm22h", 138, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm23h", 139, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm24h", 140, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm25h", 141, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm26h", 142, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm27h", 143, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm28h", 144, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm29h", 145, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm30h", 146, 1, NULL, 256, "v2ui128");
-  tdesc_create_reg (feature, "zmm31h", 147, 1, NULL, 256, "v2ui128");
-
-  tdesc_x32_avx_avx512_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx-avx512-linux.xml ./gdb/features/i386/x32-avx-avx512-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx-avx512-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/x32-avx-avx512-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx-avx512.xml ./gdb/features/i386/x32-avx-avx512.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx-avx512.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/x32-avx-avx512.xml	1970-01-01 00:00:00.000000000 +0000
@@ -1,17 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- X32 with AVX, AVX512 -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>i386:x64-32</architecture>
-  <xi:include href="x32-core.xml"/>
-  <xi:include href="64bit-sse.xml"/>
-  <xi:include href="64bit-avx.xml"/>
-  <xi:include href="64bit-avx512.xml"/>
-</target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx.c ./gdb/features/i386/x32-avx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/x32-avx.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,168 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: x32-avx.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_x32_avx;
-static void
-initialize_tdesc_x32_avx (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x64-32"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
-
-  tdesc_x32_avx = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx-linux.c ./gdb/features/i386/x32-avx-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/x32-avx-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,177 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: x32-avx-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_x32_avx_linux;
-static void
-initialize_tdesc_x32_avx_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x64-32"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.segments");
-  tdesc_create_reg (feature, "fs_base", 58, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "gs_base", 59, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
-  tdesc_create_reg (feature, "ymm0h", 60, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm1h", 61, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm2h", 62, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm3h", 63, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm4h", 64, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm5h", 65, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm6h", 66, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm7h", 67, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm8h", 68, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm9h", 69, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm10h", 70, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm11h", 71, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm12h", 72, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm13h", 73, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm14h", 74, 1, NULL, 128, "uint128");
-  tdesc_create_reg (feature, "ymm15h", 75, 1, NULL, 128, "uint128");
-
-  tdesc_x32_avx_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx-linux.xml ./gdb/features/i386/x32-avx-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/x32-avx-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2012-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx.xml ./gdb/features/i386/x32-avx.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-avx.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/x32-avx.xml	1970-01-01 00:00:00.000000000 +0000
@@ -1,16 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2012-2017 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- X32 with AVX -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>i386:x64-32</architecture>
-  <xi:include href="x32-core.xml"/>
-  <xi:include href="64bit-sse.xml"/>
-  <xi:include href="64bit-avx.xml"/>
-</target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32.c ./gdb/features/i386/x32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/x32.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,150 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: x32.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_x32;
-static void
-initialize_tdesc_x32 (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x64-32"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  tdesc_x32 = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-core.c ./gdb/features/i386/x32-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-core.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/i386/x32-core.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,73 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: x32-core.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_i386_x32_core (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core", "x32-core.xml");
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_flags (feature, "i386_eflags", 4);
+  tdesc_add_flag (type_with_fields, 0, "CF");
+  tdesc_add_flag (type_with_fields, 1, "");
+  tdesc_add_flag (type_with_fields, 2, "PF");
+  tdesc_add_flag (type_with_fields, 4, "AF");
+  tdesc_add_flag (type_with_fields, 6, "ZF");
+  tdesc_add_flag (type_with_fields, 7, "SF");
+  tdesc_add_flag (type_with_fields, 8, "TF");
+  tdesc_add_flag (type_with_fields, 9, "IF");
+  tdesc_add_flag (type_with_fields, 10, "DF");
+  tdesc_add_flag (type_with_fields, 11, "OF");
+  tdesc_add_flag (type_with_fields, 14, "NT");
+  tdesc_add_flag (type_with_fields, 16, "RF");
+  tdesc_add_flag (type_with_fields, 17, "VM");
+  tdesc_add_flag (type_with_fields, 18, "AC");
+  tdesc_add_flag (type_with_fields, 19, "VIF");
+  tdesc_add_flag (type_with_fields, 20, "VIP");
+  tdesc_add_flag (type_with_fields, 21, "ID");
+
+  tdesc_create_reg (feature, "rax", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rbx", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rcx", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rdx", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rsi", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rdi", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rbp", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rsp", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r8", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r9", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r10", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r11", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r12", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r13", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r14", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "r15", regnum++, 1, NULL, 64, "int64");
+  tdesc_create_reg (feature, "rip", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "eflags", regnum++, 1, NULL, 32, "i386_eflags");
+  tdesc_create_reg (feature, "cs", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "ss", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "ds", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "es", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "fs", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "gs", regnum++, 1, NULL, 32, "int32");
+  tdesc_create_reg (feature, "st0", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st1", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st2", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st3", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st4", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st5", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st6", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "st7", regnum++, 1, NULL, 80, "i387_ext");
+  tdesc_create_reg (feature, "fctrl", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fstat", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "ftag", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fiseg", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fioff", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "foseg", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fooff", regnum++, 1, "float", 32, "int");
+  tdesc_create_reg (feature, "fop", regnum++, 1, "float", 32, "int");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-core.xml ./gdb/features/i386/x32-core.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-core.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/x32-core.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2012-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-linux.c ./gdb/features/i386/x32-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/x32-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,159 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: x32-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_x32_linux;
-static void
-initialize_tdesc_x32_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("i386:x64-32"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
-  type = tdesc_create_flags (feature, "i386_eflags", 4);
-  tdesc_add_flag (type, 0, "CF");
-  tdesc_add_flag (type, 1, "");
-  tdesc_add_flag (type, 2, "PF");
-  tdesc_add_flag (type, 4, "AF");
-  tdesc_add_flag (type, 6, "ZF");
-  tdesc_add_flag (type, 7, "SF");
-  tdesc_add_flag (type, 8, "TF");
-  tdesc_add_flag (type, 9, "IF");
-  tdesc_add_flag (type, 10, "DF");
-  tdesc_add_flag (type, 11, "OF");
-  tdesc_add_flag (type, 14, "NT");
-  tdesc_add_flag (type, 16, "RF");
-  tdesc_add_flag (type, 17, "VM");
-  tdesc_add_flag (type, 18, "AC");
-  tdesc_add_flag (type, 19, "VIF");
-  tdesc_add_flag (type, 20, "VIP");
-  tdesc_add_flag (type, 21, "ID");
-
-  tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
-  tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
-  tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
-  tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
-  tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
-  tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
-
-  type = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
-
-  type = tdesc_create_flags (feature, "i386_mxcsr", 4);
-  tdesc_add_flag (type, 0, "IE");
-  tdesc_add_flag (type, 1, "DE");
-  tdesc_add_flag (type, 2, "ZE");
-  tdesc_add_flag (type, 3, "OE");
-  tdesc_add_flag (type, 4, "UE");
-  tdesc_add_flag (type, 5, "PE");
-  tdesc_add_flag (type, 6, "DAZ");
-  tdesc_add_flag (type, 7, "IM");
-  tdesc_add_flag (type, 8, "DM");
-  tdesc_add_flag (type, 9, "ZM");
-  tdesc_add_flag (type, 10, "OM");
-  tdesc_add_flag (type, 11, "UM");
-  tdesc_add_flag (type, 12, "PM");
-  tdesc_add_flag (type, 15, "FZ");
-
-  tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
-  tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.i386.segments");
-  tdesc_create_reg (feature, "fs_base", 58, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "gs_base", 59, 1, NULL, 64, "int");
-
-  tdesc_x32_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-linux.xml ./gdb/features/i386/x32-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/x32-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2012-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32.xml ./gdb/features/i386/x32.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/i386/x32.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/i386/x32.xml	1970-01-01 00:00:00.000000000 +0000
@@ -1,15 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2012-2017 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- X32 -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>i386:x64-32</architecture>
-  <xi:include href="x32-core.xml"/>
-  <xi:include href="64bit-sse.xml"/>
-</target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/library-list-aix.dtd ./gdb/features/library-list-aix.dtd
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/library-list-aix.dtd	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/library-list-aix.dtd	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/library-list.dtd ./gdb/features/library-list.dtd
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/library-list.dtd	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/library-list.dtd	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/library-list-svr4.dtd ./gdb/features/library-list-svr4.dtd
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/library-list-svr4.dtd	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/library-list-svr4.dtd	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/Makefile ./gdb/features/Makefile
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/Makefile	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/Makefile	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
 # This file is part of GDB.
 
@@ -47,21 +47,21 @@ WHICH = aarch64 \
 	arm/arm-with-iwmmxt arm/arm-with-vfpv2 arm/arm-with-vfpv3 \
 	arm/arm-with-neon \
 	i386/i386 i386/i386-linux \
-	i386/i386-mmx i386/i386-mmx-linux \
+	i386/i386-mmx-linux \
 	i386/amd64 i386/amd64-linux \
-	i386/i386-avx i386/i386-avx-linux \
-	i386/i386-mpx i386/i386-mpx-linux \
-	i386/i386-avx-mpx i386/i386-avx-mpx-linux \
-	i386/i386-avx-avx512 i386/i386-avx-avx512-linux \
-	i386/i386-avx-mpx-avx512-pku i386/i386-avx-mpx-avx512-pku-linux \
-	i386/amd64-avx i386/amd64-avx-linux \
-	i386/amd64-mpx i386/amd64-mpx-linux \
-	i386/amd64-avx-mpx i386/amd64-avx-mpx-linux \
-	i386/amd64-avx-avx512 i386/amd64-avx-avx512-linux \
-	i386/amd64-avx-mpx-avx512-pku i386/amd64-avx-mpx-avx512-pku-linux \
-	i386/x32 i386/x32-linux \
-	i386/x32-avx i386/x32-avx-linux \
-	i386/x32-avx-avx512 i386/x32-avx-avx512-linux \
+	i386/i386-avx-linux \
+	i386/i386-mpx-linux \
+	i386/i386-avx-mpx-linux \
+	i386/i386-avx-avx512-linux \
+	i386/i386-avx-mpx-avx512-pku-linux \
+	i386/amd64-avx-linux \
+	i386/amd64-mpx-linux \
+	i386/amd64-avx-mpx-linux \
+	i386/amd64-avx-avx512-linux \
+	i386/amd64-avx-mpx-avx512-pku-linux \
+	i386/x32-linux \
+	i386/x32-avx-linux \
+	i386/x32-avx-avx512-linux \
 	mips-linux mips-dsp-linux \
 	microblaze-with-stack-protect \
 	mips64-linux mips64-dsp-linux \
@@ -78,7 +78,7 @@ WHICH = aarch64 \
 	s390-linux32v2 s390-linux64v2 s390x-linux64v2 \
 	s390-te-linux64 s390x-te-linux64 s390-vx-linux64 s390x-vx-linux64 \
 	s390-tevx-linux64 s390x-tevx-linux64 \
-	tic6x-c64xp tic6x-c64x tic6x-c62x \
+	s390-gs-linux64 s390x-gs-linux64 \
 	tic6x-c64xp-linux tic6x-c64x-linux tic6x-c62x-linux
 
 # Record which registers should be sent to GDB by default after stop.
@@ -93,6 +93,7 @@ mips64-expedite = r29,pc
 mips64-dsp-expedite = r29,pc
 microblaze-expedite = r1,rpc
 nios2-linux-expedite = sp,pc
+or1k-expedite = r1,npc
 powerpc-expedite = r1,pc
 rs6000/powerpc-cell32l-expedite = r1,pc,r0,orig_r3,r4
 rs6000/powerpc-cell64l-expedite = r1,pc,r0,orig_r3,r4
@@ -105,18 +106,9 @@ s390-linux64v2-expedite = r14l,r15l,pswa
 s390-te-linux64-expedite = r14l,r15l,pswa
 s390-vx-linux64-expedite = r14l,r15l,pswa
 s390-tevx-linux64-expedite = r14l,r15l,pswa
-s390x-linux64-expedite = r14,r15,pswa
-s390x-linux64v1-expedite = r14,r15,pswa
-s390x-linux64v2-expedite = r14,r15,pswa
-s390x-te-linux64-expedite = r14,r15,pswa
-s390x-vx-linux64-expedite = r14,r15,pswa
-s390x-tevx-linux64-expedite = r14,r15,pswa
-tic6x-c64xp-expedite = A15,PC
-tic6x-c64x-expedite = A15,PC
-tic6x-c62x-expedite = A15,PC
-tic6x-c64xp-linux-expedite = A15,PC
-tic6x-c64x-linux-expedite = A15,PC
-tic6x-c62x-linux-expedite = A15,PC
+s390-gs-linux64-expedite = r14,r15,pswa
+s390x-expedite = r14,r15,pswa
+tic6x-expedite = A15,PC
 
 
 XSLTPROC = xsltproc
@@ -128,7 +120,6 @@ OUTPUTS = $(patsubst %,$(outdir)/%.dat,$
 # --enable-targets=all GDB.  You can override this by passing XMLTOC
 # to make on the command line.
 XMLTOC = \
-	aarch64.xml \
 	arc-v2.xml \
 	arc-arcompact.xml \
 	arm/arm-with-iwmmxt.xml \
@@ -138,38 +129,6 @@ XMLTOC = \
 	arm/arm-with-neon.xml \
 	arm/arm-with-vfpv2.xml \
 	arm/arm-with-vfpv3.xml \
-	i386/amd64-avx-linux.xml \
-	i386/amd64-avx.xml \
-	i386/amd64-avx-avx512-linux.xml \
-	i386/amd64-avx-avx512.xml \
-	i386/amd64-avx-mpx-avx512-pku-linux.xml \
-	i386/amd64-avx-mpx-avx512-pku.xml \
-	i386/amd64-linux.xml \
-	i386/amd64-mpx-linux.xml \
-	i386/amd64-mpx.xml \
-	i386/amd64-avx-mpx-linux.xml \
-	i386/amd64-avx-mpx.xml \
-	i386/amd64.xml \
-	i386/i386-avx-linux.xml \
-	i386/i386-avx.xml \
-	i386/i386-avx-avx512-linux.xml \
-	i386/i386-avx-avx512.xml \
-	i386/i386-avx-mpx-avx512-pku-linux.xml \
-	i386/i386-avx-mpx-avx512-pku.xml \
-	i386/i386-linux.xml \
-	i386/i386-mmx-linux.xml \
-	i386/i386-mmx.xml \
-	i386/i386-mpx-linux.xml \
-	i386/i386-mpx.xml \
-	i386/i386-avx-mpx-linux.xml \
-	i386/i386-avx-mpx.xml \
-	i386/i386.xml \
-	i386/x32-avx-linux.xml \
-	i386/x32-avx.xml \
-	i386/x32-avx-avx512-linux.xml \
-	i386/x32-avx-avx512.xml \
-	i386/x32-linux.xml \
-	i386/x32.xml \
 	microblaze-with-stack-protect.xml \
 	microblaze.xml \
 	mips-dsp-linux.xml \
@@ -177,8 +136,8 @@ XMLTOC = \
 	mips64-dsp-linux.xml \
 	mips64-linux.xml \
 	nds32.xml \
-	nios2-linux.xml \
 	nios2.xml \
+	or1k.xml \
 	rs6000/powerpc-32.xml \
 	rs6000/powerpc-32l.xml \
 	rs6000/powerpc-403.xml \
@@ -228,14 +187,10 @@ XMLTOC = \
 	s390-vx-linux64.xml \
 	s390x-tevx-linux64.xml \
 	s390x-vx-linux64.xml \
-	tic6x-c62x-linux.xml \
-	tic6x-c62x.xml \
-	tic6x-c64x-linux.xml \
-	tic6x-c64x.xml \
-	tic6x-c64xp-linux.xml \
-	tic6x-c64xp.xml
+	s390-gs-linux64.xml \
+	s390x-gs-linux64.xml
 
-CFILES = $(patsubst %.xml,%.c,$(XMLTOC))
+TDESC_CFILES = $(patsubst %.xml,%.c,$(XMLTOC))
 GDB = false
 
 all: $(OUTPUTS)
@@ -252,10 +207,52 @@ all: $(OUTPUTS)
 	  $(XSLTPROC) gdbserver-regs.xsl - >> $(outdir)/$*.tmp
 	sh ../../move-if-change $(outdir)/$*.tmp $(outdir)/$*.dat
 
-cfiles: $(CFILES)
-%.c: %.xml
+FEATURE_XMLFILES = aarch64-core.xml \
+	aarch64-fpu.xml \
+	i386/32bit-core.xml \
+	i386/32bit-sse.xml \
+	i386/32bit-linux.xml \
+	i386/32bit-avx.xml \
+	i386/32bit-mpx.xml \
+	i386/32bit-avx512.xml \
+	i386/32bit-pkeys.xml \
+	i386/64bit-avx512.xml \
+	i386/64bit-core.xml \
+	i386/64bit-mpx.xml \
+	i386/64bit-segments.xml \
+	i386/64bit-avx.xml \
+	i386/64bit-linux.xml \
+	i386/64bit-pkeys.xml \
+	i386/64bit-sse.xml \
+	i386/x32-core.xml \
+	tic6x-c6xp.xml \
+	tic6x-core.xml \
+	tic6x-gp.xml
+
+FEATURE_CFILES = $(patsubst %.xml,%.c,$(FEATURE_XMLFILES))
+
+cfiles: $(TDESC_CFILES) $(FEATURE_CFILES)
+
+$(TDESC_CFILES): %.c: %.xml
+	$(GDB) -nx -q -batch -ex 'maint print c-tdesc $<' > $@.tmp
+	sh ../../move-if-change $@.tmp $@
+
+$(FEATURE_CFILES): %.c: %.xml.tmp
 	$(GDB) -nx -q -batch \
-	  -ex "set tdesc filename $<" -ex 'maint print c-tdesc' > $@.tmp
+	  -ex 'maint print c-tdesc $<' > $@.tmp
+	sh ../../move-if-change $@.tmp $@
+	rm $<
+
+# %.xml is the XML file for each target description feature, and
+# %.xml.tmp is the XML file target description which only includes
+# one target description feature.
+
+%.xml.tmp: %.xml
+	echo "<?xml version=\"1.0\"?>" > $@.tmp
+	echo "<!DOCTYPE target SYSTEM \"gdb-target.dtd\">" >> $@.tmp
+	echo "<target>" >> $@.tmp
+	echo "  <xi:include href=\"$(notdir $<)\"/>" >> $@.tmp
+	echo "</target>" >> $@.tmp
 	sh ../../move-if-change $@.tmp $@
 
 # Other dependencies.
@@ -263,7 +260,8 @@ cfiles: $(CFILES)
 $(outdir)/i386/i386.dat: i386/32bit-core.xml i386/32bit-sse.xml
 $(outdir)/i386/i386-linux.dat: i386/32bit-core.xml i386/32bit-sse.xml \
 			       i386/32bit-linux.xml
-$(outdir)/i386/amd64.dat: i386/64bit-core.xml i386/64bit-sse.xml
+$(outdir)/i386/amd64.dat: i386/64bit-core.xml i386/64bit-sse.xml \
+			       i386/64bit-segments.xml
 $(outdir)/i386/amd64-linux.dat: i386/64bit-core.xml i386/64bit-sse.xml \
 			       i386/64bit-linux.xml i386/64bit-segments.xml
 $(outdir)/i386/i386-avx.dat: i386/32bit-core.xml i386/32bit-avx.xml
@@ -289,7 +287,8 @@ cfiles: $(CFILES)
 			       i386/32bit-pkeys.xml i386/32bit-linux.xml
 $(outdir)/i386/i386-mmx.dat: i386/32bit-core.xml 
 $(outdir)/i386/i386-mmx-linux.dat: i386/32bit-core.xml i386/32bit-linux.xml
-$(outdir)/i386/amd64-avx.dat: i386/64bit-core.xml i386/64bit-avx.xml
+$(outdir)/i386/amd64-avx.dat: i386/64bit-core.xml i386/64bit-avx.xml \
+			       i386/64bit-segments.xml
 $(outdir)/i386/amd64-avx-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
 			       i386/64bit-linux.xml i386/64bit-segments.xml
 $(outdir)/i386/amd64-mpx-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
@@ -297,16 +296,16 @@ cfiles: $(CFILES)
 $(outdir)/i386/amd64-avx-mpx-linux.dat: i386/64bit-core.xml \
 			       i386/64bit-linux.xml i386/64bit-segments.xml i386/64bit-mpx.xml
 $(outdir)/i386/amd64-mpx.dat: i386/64bit-core.xml i386/64bit-avx.xml \
-			       i386/64bit-mpx.xml
+			       i386/64bit-segments.xml i386/64bit-mpx.xml
 $(outdir)/i386/amd64-avx-mpx.dat: i386/64bit-core.xml \
-			       i386/64bit-mpx.xml
+			       i386/64bit-segments.xml i386/64bit-mpx.xml
 $(outdir)/i386/amd64-avx-avx512.dat: i386/64bit-core.xml i386/64bit-avx.xml \
-			       i386/64bit-avx512.xml
+			       i386/64bit-avx512.xml i386/64bit-segments.xml
 $(outdir)/i386/amd64-avx-avx512-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
 			       i386/64bit-avx512.xml i386/64bit-linux.xml
 $(outdir)/i386/amd64-avx-mpx-avx512-pku.dat: i386/64bit-core.xml \
 			       i386/64bit-avx.xml i386/64bit-mpx.xml i386/64bit-avx512.xml \
-			       i386/64bit-pkeys.xml
+			       i386/64bit-pkeys.xml i386/64bit-segments.xml
 $(outdir)/i386/amd64-avx-mpx-avx512-pku-linux.dat: i386/64bit-core.xml \
 			       i386/64bit-avx.xml i386/64bit-mpx.xml i386/64bit-avx512.xml \
 			       i386/64bit-linux.xml i386/64bit-segments.xml \
@@ -326,7 +325,7 @@ cfiles: $(CFILES)
 # 'all' doesn't build the C files, so don't delete them in 'clean'
 # either.
 clean-cfiles:
-	rm -f $(CFILES)
+	rm -f $(TDESC_CFILES) $(FEATURE_CFILES)
 
 clean:
 	rm -f $(OUTPUTS)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/microblaze-core.xml ./gdb/features/microblaze-core.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/microblaze-core.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/microblaze-core.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/microblaze-stack-protect.xml ./gdb/features/microblaze-stack-protect.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/microblaze-stack-protect.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/microblaze-stack-protect.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/microblaze-with-stack-protect.xml ./gdb/features/microblaze-with-stack-protect.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/microblaze-with-stack-protect.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/microblaze-with-stack-protect.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/microblaze.xml ./gdb/features/microblaze.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/microblaze.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/microblaze.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-cp0.xml ./gdb/features/mips64-cp0.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-cp0.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips64-cp0.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-cpu.xml ./gdb/features/mips64-cpu.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-cpu.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips64-cpu.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-dsp-linux.c ./gdb/features/mips64-dsp-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-dsp-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips64-dsp-linux.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_mips64_dsp_linux (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("mips"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.mips.cpu");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "int");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "int");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-dsp-linux.xml ./gdb/features/mips64-dsp-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-dsp-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips64-dsp-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2012-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-dsp.xml ./gdb/features/mips64-dsp.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-dsp.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips64-dsp.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2012-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-fpu.xml ./gdb/features/mips64-fpu.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-fpu.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips64-fpu.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-linux.c ./gdb/features/mips64-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips64-linux.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_mips64_linux (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("mips"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.mips.cpu");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "int");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "int");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-linux.xml ./gdb/features/mips64-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips64-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips64-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-cp0.xml ./gdb/features/mips-cp0.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-cp0.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips-cp0.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-cpu.xml ./gdb/features/mips-cpu.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-cpu.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips-cpu.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-dsp-linux.c ./gdb/features/mips-dsp-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-dsp-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips-dsp-linux.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,12 @@ static void
 initialize_tdesc_mips_dsp_linux (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("mips"));
 
   set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.mips.cpu");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-dsp-linux.xml ./gdb/features/mips-dsp-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-dsp-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips-dsp-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2012-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-dsp.xml ./gdb/features/mips-dsp.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-dsp.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips-dsp.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2012-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-fpu.xml ./gdb/features/mips-fpu.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-fpu.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips-fpu.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-linux.c ./gdb/features/mips-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips-linux.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,12 @@ static void
 initialize_tdesc_mips_linux (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("mips"));
 
   set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.mips.cpu");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-linux.xml ./gdb/features/mips-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/mips-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/mips-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nds32.c ./gdb/features/nds32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nds32.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/nds32.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_nds32 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("n1h"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.nds32.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nds32-core.xml ./gdb/features/nds32-core.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nds32-core.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/nds32-core.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nds32-fpu.xml ./gdb/features/nds32-fpu.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nds32-fpu.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/nds32-fpu.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nds32-system.xml ./gdb/features/nds32-system.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nds32-system.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/nds32-system.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nds32.xml ./gdb/features/nds32.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nds32.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/nds32.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nios2.c ./gdb/features/nios2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nios2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/nios2.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_nios2 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("nios2"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.nios2.cpu");
   tdesc_create_reg (feature, "zero", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "at", 1, 1, NULL, 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nios2-cpu.xml ./gdb/features/nios2-cpu.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nios2-cpu.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/nios2-cpu.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2012-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nios2-linux.c ./gdb/features/nios2-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nios2-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/nios2-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,71 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: nios2-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_nios2_linux;
-static void
-initialize_tdesc_nios2_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("nios2"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.nios2.cpu");
-  tdesc_create_reg (feature, "zero", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "at", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "et", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "bt", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "gp", 26, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "sp", 27, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "fp", 28, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "ea", 29, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "sstatus", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "ra", 31, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "pc", 32, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "status", 33, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "estatus", 34, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "bstatus", 35, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "ienable", 36, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "ipending", 37, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cpuid", 38, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "ctl6", 39, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "exception", 40, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "pteaddr", 41, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "tlbacc", 42, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "tlbmisc", 43, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "eccinj", 44, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "badaddr", 45, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "config", 46, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "mpubase", 47, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "mpuacc", 48, 1, NULL, 32, "uint32");
-
-  tdesc_nios2_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nios2-linux.xml ./gdb/features/nios2-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nios2-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/nios2-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2012-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nios2.xml ./gdb/features/nios2.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/nios2.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/nios2.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/or1k.c ./gdb/features/or1k.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/or1k.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/or1k.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,76 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: or1k.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_or1k;
+static void
+initialize_tdesc_or1k (void)
+{
+  struct target_desc *result = allocate_target_description ();
+  set_tdesc_architecture (result, bfd_scan_arch ("or1k"));
+
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.or1k.group0");
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_flags (feature, "sr_flags", 4);
+  tdesc_add_flag (type_with_fields, 0, "SM");
+  tdesc_add_flag (type_with_fields, 1, "TEE");
+  tdesc_add_flag (type_with_fields, 2, "IEE");
+  tdesc_add_flag (type_with_fields, 3, "DCE");
+  tdesc_add_flag (type_with_fields, 4, "ICE");
+  tdesc_add_flag (type_with_fields, 5, "DME");
+  tdesc_add_flag (type_with_fields, 6, "IME");
+  tdesc_add_flag (type_with_fields, 7, "LEE");
+  tdesc_add_flag (type_with_fields, 8, "CE");
+  tdesc_add_flag (type_with_fields, 9, "F");
+  tdesc_add_flag (type_with_fields, 10, "CY");
+  tdesc_add_flag (type_with_fields, 11, "OV");
+  tdesc_add_flag (type_with_fields, 12, "OVE");
+  tdesc_add_flag (type_with_fields, 13, "DSX");
+  tdesc_add_flag (type_with_fields, 14, "EPH");
+  tdesc_add_flag (type_with_fields, 15, "FO");
+  tdesc_add_flag (type_with_fields, 16, "SUMRA");
+  tdesc_add_bitfield (type_with_fields, "CID", 28, 31);
+
+  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r26", 26, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r27", 27, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r28", 28, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r29", 29, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r31", 31, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ppc", 32, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "npc", 33, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "sr", 34, 1, NULL, 32, "sr_flags");
+
+  tdesc_or1k = result;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/or1k-core.xml ./gdb/features/or1k-core.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/or1k-core.xml	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/or1k-core.xml	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.or1k.group0">
+  <reg name="r0" bitsize="32" type="int"/>
+  <reg name="r1" bitsize="32" type="data_ptr"/>
+  <reg name="r2" bitsize="32" type="data_ptr"/>
+  <reg name="r3" bitsize="32" type="int"/>
+  <reg name="r4" bitsize="32" type="int"/>
+  <reg name="r5" bitsize="32" type="int"/>
+  <reg name="r6" bitsize="32" type="int"/>
+  <reg name="r7" bitsize="32" type="int"/>
+  <reg name="r8" bitsize="32" type="int"/>
+  <reg name="r9" bitsize="32" type="code_ptr"/>
+  <reg name="r10" bitsize="32" type="int"/>
+  <reg name="r11" bitsize="32" type="int"/>
+  <reg name="r12" bitsize="32" type="int"/>
+  <reg name="r13" bitsize="32" type="int"/>
+  <reg name="r14" bitsize="32" type="int"/>
+  <reg name="r15" bitsize="32" type="int"/>
+  <reg name="r16" bitsize="32" type="int"/>
+  <reg name="r17" bitsize="32" type="int"/>
+  <reg name="r18" bitsize="32" type="int"/>
+  <reg name="r19" bitsize="32" type="int"/>
+  <reg name="r20" bitsize="32" type="int"/>
+  <reg name="r21" bitsize="32" type="int"/>
+  <reg name="r22" bitsize="32" type="int"/>
+  <reg name="r23" bitsize="32" type="int"/>
+  <reg name="r24" bitsize="32" type="int"/>
+  <reg name="r25" bitsize="32" type="int"/>
+  <reg name="r26" bitsize="32" type="int"/>
+  <reg name="r27" bitsize="32" type="int"/>
+  <reg name="r28" bitsize="32" type="int"/>
+  <reg name="r29" bitsize="32" type="int"/>
+  <reg name="r30" bitsize="32" type="int"/>
+  <reg name="r31" bitsize="32" type="int"/>
+  <reg name="ppc" bitsize="32" type="code_ptr"/>
+  <reg name="npc" bitsize="32" type="code_ptr"/>
+  <flags id="sr_flags" size="4">
+    <field name="SM" start="0" end="0"/>
+    <field name="TEE" start="1" end="1"/>
+    <field name="IEE" start="2" end="2"/>
+    <field name="DCE" start="3" end="3"/>
+    <field name="ICE" start="4" end="4"/>
+    <field name="DME" start="5" end="5"/>
+    <field name="IME" start="6" end="6"/>
+    <field name="LEE" start="7" end="7"/>
+    <field name="CE" start="8" end="8"/>
+    <field name="F" start="9" end="9"/>
+    <field name="CY" start="10" end="10"/>
+    <field name="OV" start="11" end="11"/>
+    <field name="OVE" start="12" end="12"/>
+    <field name="DSX" start="13" end="13"/>
+    <field name="EPH" start="14" end="14"/>
+    <field name="FO" start="15" end="15"/>
+    <field name="SUMRA" start="16" end="16"/>
+    <field name="CID" start="28" end="31"/>
+  </flags>
+  <reg name="sr" bitsize="32" type="sr_flags"/>
+</feature>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/or1k.xml ./gdb/features/or1k.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/or1k.xml	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/or1k.xml	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2016-2018 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE target SYSTEM "gdb-target.dtd">
+<target>
+  <architecture>or1k</architecture>
+  <xi:include href="or1k-core.xml"/>
+</target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/osdata.dtd ./gdb/features/osdata.dtd
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/osdata.dtd	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/osdata.dtd	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power64-core.xml ./gdb/features/rs6000/power64-core.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power64-core.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/power64-core.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power64-linux.xml ./gdb/features/rs6000/power64-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power64-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/power64-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-altivec.xml ./gdb/features/rs6000/power-altivec.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-altivec.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/power-altivec.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-core.xml ./gdb/features/rs6000/power-core.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-core.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/power-core.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-fpu-isa205.xml ./gdb/features/rs6000/power-fpu-isa205.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-fpu-isa205.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/power-fpu-isa205.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-fpu.xml ./gdb/features/rs6000/power-fpu.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-fpu.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/power-fpu.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-linux.xml ./gdb/features/rs6000/power-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/power-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-oea.xml ./gdb/features/rs6000/power-oea.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-oea.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/power-oea.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-32.c ./gdb/features/rs6000/powerpc-32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-32.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-32.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_powerpc_32 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-32l.c ./gdb/features/rs6000/powerpc-32l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-32l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-32l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_powerpc_32l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-32l.xml ./gdb/features/rs6000/powerpc-32l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-32l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-32l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-32.xml ./gdb/features/rs6000/powerpc-32.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-32.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-32.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-403gc.xml ./gdb/features/rs6000/powerpc-403gc.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-403gc.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-403gc.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-403.xml ./gdb/features/rs6000/powerpc-403.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-403.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-403.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-405.xml ./gdb/features/rs6000/powerpc-405.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-405.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-405.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-505.xml ./gdb/features/rs6000/powerpc-505.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-505.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-505.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-601.xml ./gdb/features/rs6000/powerpc-601.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-601.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-601.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-602.xml ./gdb/features/rs6000/powerpc-602.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-602.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-602.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-603.xml ./gdb/features/rs6000/powerpc-603.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-603.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-603.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-604.xml ./gdb/features/rs6000/powerpc-604.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-604.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-604.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-64.c ./gdb/features/rs6000/powerpc-64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-64.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-64.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_powerpc_64 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-64l.c ./gdb/features/rs6000/powerpc-64l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-64l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-64l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_powerpc_64l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-64l.xml ./gdb/features/rs6000/powerpc-64l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-64l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-64l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-64.xml ./gdb/features/rs6000/powerpc-64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-7400.c ./gdb/features/rs6000/powerpc-7400.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-7400.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-7400.c	2018-01-09 02:04:57.000000000 +0000
@@ -11,8 +11,6 @@ initialize_tdesc_powerpc_7400 (void)
 {
   struct target_desc *result = allocate_target_description ();
   struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
@@ -140,29 +138,32 @@ initialize_tdesc_powerpc_7400 (void)
   tdesc_create_reg (feature, "ear", 118, 1, NULL, 32, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 119, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 120, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-7400.xml ./gdb/features/rs6000/powerpc-7400.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-7400.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-7400.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-750.xml ./gdb/features/rs6000/powerpc-750.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-750.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-750.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-860.xml ./gdb/features/rs6000/powerpc-860.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-860.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-860.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec32.c ./gdb/features/rs6000/powerpc-altivec32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec32.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-altivec32.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_powerpc_altivec32 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
@@ -92,29 +90,32 @@ initialize_tdesc_powerpc_altivec32 (void
   tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 71, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 72, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec32l.c ./gdb/features/rs6000/powerpc-altivec32l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec32l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-altivec32l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_powerpc_altivec32l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
@@ -96,29 +94,32 @@ initialize_tdesc_powerpc_altivec32l (voi
   tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec32l.xml ./gdb/features/rs6000/powerpc-altivec32l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec32l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-altivec32l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec32.xml ./gdb/features/rs6000/powerpc-altivec32.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec32.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-altivec32.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec64.c ./gdb/features/rs6000/powerpc-altivec64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec64.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-altivec64.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_powerpc_altivec64 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
@@ -92,29 +90,32 @@ initialize_tdesc_powerpc_altivec64 (void
   tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 71, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 72, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec64l.c ./gdb/features/rs6000/powerpc-altivec64l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec64l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-altivec64l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_powerpc_altivec64l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
@@ -96,29 +94,32 @@ initialize_tdesc_powerpc_altivec64l (voi
   tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec64l.xml ./gdb/features/rs6000/powerpc-altivec64l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec64l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-altivec64l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec64.xml ./gdb/features/rs6000/powerpc-altivec64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-altivec64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-altivec64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-cell32l.c ./gdb/features/rs6000/powerpc-cell32l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-cell32l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-cell32l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,14 +10,12 @@ static void
 initialize_tdesc_powerpc_cell32l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
 
   tdesc_add_compatible (result, bfd_scan_arch ("spu:256K"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
@@ -98,29 +96,32 @@ initialize_tdesc_powerpc_cell32l (void)
   tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-cell32l.xml ./gdb/features/rs6000/powerpc-cell32l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-cell32l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-cell32l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-cell64l.c ./gdb/features/rs6000/powerpc-cell64l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-cell64l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-cell64l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,14 +10,12 @@ static void
 initialize_tdesc_powerpc_cell64l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
 
   tdesc_add_compatible (result, bfd_scan_arch ("spu:256K"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
@@ -98,29 +96,32 @@ initialize_tdesc_powerpc_cell64l (void)
   tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-cell64l.xml ./gdb/features/rs6000/powerpc-cell64l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-cell64l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-cell64l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-e500.c ./gdb/features/rs6000/powerpc-e500.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-e500.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-e500.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_powerpc_e500 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:e500"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-e500l.c ./gdb/features/rs6000/powerpc-e500l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-e500l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-e500l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_powerpc_e500l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:e500"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-e500l.xml ./gdb/features/rs6000/powerpc-e500l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-e500l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-e500l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-e500.xml ./gdb/features/rs6000/powerpc-e500.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-e500.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-e500.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-32l.c ./gdb/features/rs6000/powerpc-isa205-32l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-32l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-isa205-32l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_powerpc_isa205_32l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-32l.xml ./gdb/features/rs6000/powerpc-isa205-32l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-32l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-isa205-32l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-64l.c ./gdb/features/rs6000/powerpc-isa205-64l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-64l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-isa205-64l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_powerpc_isa205_64l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-64l.xml ./gdb/features/rs6000/powerpc-isa205-64l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-64l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-isa205-64l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-altivec32l.c ./gdb/features/rs6000/powerpc-isa205-altivec32l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-altivec32l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-isa205-altivec32l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_powerpc_isa205_altivec32l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
@@ -96,29 +94,32 @@ initialize_tdesc_powerpc_isa205_altivec3
   tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-altivec32l.xml ./gdb/features/rs6000/powerpc-isa205-altivec32l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-altivec32l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-isa205-altivec32l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-altivec64l.c ./gdb/features/rs6000/powerpc-isa205-altivec64l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-altivec64l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-isa205-altivec64l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_powerpc_isa205_altivec64l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
@@ -96,29 +94,32 @@ initialize_tdesc_powerpc_isa205_altivec6
   tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-altivec64l.xml ./gdb/features/rs6000/powerpc-isa205-altivec64l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-altivec64l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-isa205-altivec64l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-vsx32l.c ./gdb/features/rs6000/powerpc-isa205-vsx32l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-vsx32l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-isa205-vsx32l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_powerpc_isa205_vsx32l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
@@ -96,29 +94,32 @@ initialize_tdesc_powerpc_isa205_vsx32l (
   tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-vsx32l.xml ./gdb/features/rs6000/powerpc-isa205-vsx32l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-vsx32l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-isa205-vsx32l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-vsx64l.c ./gdb/features/rs6000/powerpc-isa205-vsx64l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-vsx64l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-isa205-vsx64l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_powerpc_isa205_vsx64l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
@@ -96,29 +94,32 @@ initialize_tdesc_powerpc_isa205_vsx64l (
   tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-vsx64l.xml ./gdb/features/rs6000/powerpc-isa205-vsx64l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-isa205-vsx64l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-isa205-vsx64l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx32.c ./gdb/features/rs6000/powerpc-vsx32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx32.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-vsx32.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_powerpc_vsx32 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
@@ -92,29 +90,32 @@ initialize_tdesc_powerpc_vsx32 (void)
   tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 71, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 72, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx32l.c ./gdb/features/rs6000/powerpc-vsx32l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx32l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-vsx32l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_powerpc_vsx32l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
@@ -96,29 +94,32 @@ initialize_tdesc_powerpc_vsx32l (void)
   tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx32l.xml ./gdb/features/rs6000/powerpc-vsx32l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx32l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-vsx32l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx32.xml ./gdb/features/rs6000/powerpc-vsx32.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx32.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-vsx32.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx64.c ./gdb/features/rs6000/powerpc-vsx64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx64.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-vsx64.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_powerpc_vsx64 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
@@ -92,29 +90,32 @@ initialize_tdesc_powerpc_vsx64 (void)
   tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 71, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 72, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx64l.c ./gdb/features/rs6000/powerpc-vsx64l.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx64l.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-vsx64l.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_powerpc_vsx64l (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
@@ -96,29 +94,32 @@ initialize_tdesc_powerpc_vsx64l (void)
   tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
-
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
 
   tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
   tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx64l.xml ./gdb/features/rs6000/powerpc-vsx64l.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx64l.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-vsx64l.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx64.xml ./gdb/features/rs6000/powerpc-vsx64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/powerpc-vsx64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/powerpc-vsx64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-spe.xml ./gdb/features/rs6000/power-spe.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-spe.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/power-spe.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-vsx.xml ./gdb/features/rs6000/power-vsx.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/power-vsx.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/power-vsx.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/rs6000.c ./gdb/features/rs6000/rs6000.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/rs6000.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/rs6000.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_rs6000 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("rs6000:6000"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
   tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
   tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/rs6000.xml ./gdb/features/rs6000/rs6000.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/rs6000/rs6000.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/rs6000/rs6000.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-acr.xml ./gdb/features/s390-acr.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-acr.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-acr.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-core32.xml ./gdb/features/s390-core32.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-core32.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-core32.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-core64.xml ./gdb/features/s390-core64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-core64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-core64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-fpr.xml ./gdb/features/s390-fpr.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-fpr.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-fpr.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-gsbc.xml ./gdb/features/s390-gsbc.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-gsbc.xml	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/s390-gsbc.xml	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.s390.gsbc">
+  <reg name="bc_gsd" bitsize="64" type="uint64" group="gs"/>
+  <reg name="bc_gssm" bitsize="64" type="uint64" group="gs"/>
+  <reg name="bc_gsepla" bitsize="64" type="data_ptr" group="gs"/>
+</feature>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-gs-linux64.c ./gdb/features/s390-gs-linux64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-gs-linux64.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/s390-gs-linux64.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,199 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: s390-gs-linux64.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_s390_gs_linux64;
+static void
+initialize_tdesc_s390_gs_linux64 (void)
+{
+  struct target_desc *result = allocate_target_description ();
+  set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
+
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
+  tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
+  tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
+  tdesc_create_reg (feature, "r0h", 2, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r0l", 3, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r1h", 4, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r1l", 5, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r2h", 6, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r2l", 7, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r3h", 8, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r3l", 9, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r4h", 10, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r4l", 11, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r5h", 12, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r5l", 13, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r6h", 14, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r6l", 15, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r7h", 16, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r7l", 17, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r8h", 18, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r8l", 19, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r9h", 20, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r9l", 21, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r10h", 22, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r10l", 23, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r11h", 24, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r11l", 25, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r12h", 26, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r12l", 27, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r13h", 28, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r13l", 29, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r14h", 30, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r14l", 31, 1, "lower", 32, "uint32");
+  tdesc_create_reg (feature, "r15h", 32, 1, "upper", 32, "uint32");
+  tdesc_create_reg (feature, "r15l", 33, 1, "lower", 32, "uint32");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.acr");
+  tdesc_create_reg (feature, "acr0", 34, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr1", 35, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr2", 36, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr3", 37, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr4", 38, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr5", 39, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr6", 40, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr7", 41, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr8", 42, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr9", 43, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr10", 44, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr11", 45, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr12", 46, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr13", 47, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr14", 48, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr15", 49, 1, "access", 32, "uint32");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.fpr");
+  tdesc_create_reg (feature, "fpc", 50, 1, "float", 32, "uint32");
+  tdesc_create_reg (feature, "f0", 51, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f1", 52, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f2", 53, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f3", 54, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f4", 55, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f5", 56, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f6", 57, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f7", 58, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f8", 59, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f9", 60, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f10", 61, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f11", 62, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f12", 63, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f13", 64, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f14", 65, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f15", 66, 1, "float", 64, "ieee_double");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.linux");
+  tdesc_create_reg (feature, "orig_r2", 67, 1, "system", 32, "uint32");
+  tdesc_create_reg (feature, "last_break", 68, 0, "system", 32, "code_ptr");
+  tdesc_create_reg (feature, "system_call", 69, 1, "system", 32, "uint32");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.tdb");
+  tdesc_create_reg (feature, "tdb0", 70, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tac", 71, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tct", 72, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "atia", 73, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr0", 74, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr1", 75, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr2", 76, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr3", 77, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr4", 78, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr5", 79, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr6", 80, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr7", 81, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr8", 82, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr9", 83, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr10", 84, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr11", 85, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr12", 86, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr13", 87, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr14", 88, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr15", 89, 1, "tdb", 64, "uint64");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "ieee_double");
+  tdesc_create_vector (feature, "v2d", element_type, 2);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int64");
+  tdesc_create_vector (feature, "v2i64", element_type, 2);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
+  field_type = tdesc_named_type (feature, "v4f");
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
+  field_type = tdesc_named_type (feature, "v2d");
+  tdesc_add_field (type_with_fields, "v2_double", field_type);
+  field_type = tdesc_named_type (feature, "v16i8");
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
+  field_type = tdesc_named_type (feature, "v8i16");
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
+  field_type = tdesc_named_type (feature, "v4i32");
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
+  field_type = tdesc_named_type (feature, "v2i64");
+  tdesc_add_field (type_with_fields, "v2_int64", field_type);
+  field_type = tdesc_named_type (feature, "uint128");
+  tdesc_add_field (type_with_fields, "uint128", field_type);
+
+  tdesc_create_reg (feature, "v0l", 90, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v1l", 91, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v2l", 92, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v3l", 93, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v4l", 94, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v5l", 95, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v6l", 96, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v7l", 97, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v8l", 98, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v9l", 99, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v10l", 100, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v11l", 101, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v12l", 102, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v13l", 103, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v14l", 104, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v15l", 105, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v16", 106, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v17", 107, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v18", 108, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v19", 109, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v20", 110, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v21", 111, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v22", 112, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v23", 113, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v24", 114, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v25", 115, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v26", 116, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v27", 117, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v28", 118, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v29", 119, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v30", 120, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v31", 121, 1, NULL, 128, "vec128");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.gs");
+  tdesc_create_reg (feature, "gsd", 122, 1, "gs", 64, "uint64");
+  tdesc_create_reg (feature, "gssm", 123, 1, "gs", 64, "uint64");
+  tdesc_create_reg (feature, "gsepla", 124, 1, "gs", 64, "data_ptr");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.gsbc");
+  tdesc_create_reg (feature, "bc_gsd", 125, 1, "gs", 64, "uint64");
+  tdesc_create_reg (feature, "bc_gssm", 126, 1, "gs", 64, "uint64");
+  tdesc_create_reg (feature, "bc_gsepla", 127, 1, "gs", 64, "data_ptr");
+
+  tdesc_s390_gs_linux64 = result;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-gs-linux64.xml ./gdb/features/s390-gs-linux64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-gs-linux64.xml	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/s390-gs-linux64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!-- S/390 31-bit user-level code on a machine operating
+     in z/Architecture mode.  -->
+
+<!DOCTYPE target SYSTEM "gdb-target.dtd">
+<target>
+  <architecture>s390:31-bit</architecture>
+  <xi:include href="s390-core64.xml"/>
+  <xi:include href="s390-acr.xml"/>
+  <xi:include href="s390-fpr.xml"/>
+
+  <feature name="org.gnu.gdb.s390.linux">
+    <reg name="orig_r2" bitsize="32" type="uint32" group="system"/>
+    <reg name="last_break" bitsize="32" type="code_ptr" group="system" save-restore="no"/>
+    <reg name="system_call" bitsize="32" type="uint32" group="system"/>
+  </feature>
+
+  <xi:include href="s390-tdb.xml"/>
+  <xi:include href="s390-vx.xml"/>
+  <xi:include href="s390-gs.xml"/>
+  <xi:include href="s390-gsbc.xml"/>
+</target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-gs.xml ./gdb/features/s390-gs.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-gs.xml	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/s390-gs.xml	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.s390.gs">
+  <reg name="gsd" bitsize="64" type="uint64" group="gs"/>
+  <reg name="gssm" bitsize="64" type="uint64" group="gs"/>
+  <reg name="gsepla" bitsize="64" type="data_ptr" group="gs"/>
+</feature>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux32.c ./gdb/features/s390-linux32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux32.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-linux32.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_s390_linux32 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux32v1.c ./gdb/features/s390-linux32v1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux32v1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-linux32v1.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_s390_linux32v1 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux32v1.xml ./gdb/features/s390-linux32v1.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux32v1.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-linux32v1.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux32v2.c ./gdb/features/s390-linux32v2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux32v2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-linux32v2.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_s390_linux32v2 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux32v2.xml ./gdb/features/s390-linux32v2.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux32v2.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-linux32v2.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux32.xml ./gdb/features/s390-linux32.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux32.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-linux32.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux64.c ./gdb/features/s390-linux64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux64.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-linux64.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_s390_linux64 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux64v1.c ./gdb/features/s390-linux64v1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux64v1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-linux64v1.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_s390_linux64v1 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux64v1.xml ./gdb/features/s390-linux64v1.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux64v1.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-linux64v1.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux64v2.c ./gdb/features/s390-linux64v2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux64v2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-linux64v2.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_s390_linux64v2 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux64v2.xml ./gdb/features/s390-linux64v2.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux64v2.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-linux64v2.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux64.xml ./gdb/features/s390-linux64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-linux64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-linux64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-tdb.xml ./gdb/features/s390-tdb.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-tdb.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-tdb.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-te-linux64.c ./gdb/features/s390-te-linux64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-te-linux64.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-te-linux64.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_s390_te_linux64 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-te-linux64.xml ./gdb/features/s390-te-linux64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-te-linux64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-te-linux64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-tevx-linux64.c ./gdb/features/s390-tevx-linux64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-tevx-linux64.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-tevx-linux64.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_s390_tevx_linux64 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
@@ -117,39 +115,42 @@ initialize_tdesc_s390_tevx_linux64 (void
   tdesc_create_reg (feature, "tr15", 89, 1, "tdb", 64, "uint64");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
 
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
+  element_type = tdesc_named_type (feature, "ieee_double");
+  tdesc_create_vector (feature, "v2d", element_type, 2);
 
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
 
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
 
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
 
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
+  element_type = tdesc_named_type (feature, "int64");
+  tdesc_create_vector (feature, "v2i64", element_type, 2);
 
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
+  tdesc_add_field (type_with_fields, "v2_double", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
+  tdesc_add_field (type_with_fields, "v2_int64", field_type);
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
 
   tdesc_create_reg (feature, "v0l", 90, 1, NULL, 64, "uint64");
   tdesc_create_reg (feature, "v1l", 91, 1, NULL, 64, "uint64");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-tevx-linux64.xml ./gdb/features/s390-tevx-linux64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-tevx-linux64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-tevx-linux64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2015-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-vx-linux64.c ./gdb/features/s390-vx-linux64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-vx-linux64.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-vx-linux64.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_s390_vx_linux64 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:31-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 32, "uint32");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 32, "uint32");
@@ -95,39 +93,42 @@ initialize_tdesc_s390_vx_linux64 (void)
   tdesc_create_reg (feature, "system_call", 69, 1, "system", 32, "uint32");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
 
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
+  element_type = tdesc_named_type (feature, "ieee_double");
+  tdesc_create_vector (feature, "v2d", element_type, 2);
 
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
 
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
 
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
 
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
+  element_type = tdesc_named_type (feature, "int64");
+  tdesc_create_vector (feature, "v2i64", element_type, 2);
 
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
+  tdesc_add_field (type_with_fields, "v2_double", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
+  tdesc_add_field (type_with_fields, "v2_int64", field_type);
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
 
   tdesc_create_reg (feature, "v0l", 70, 1, NULL, 64, "uint64");
   tdesc_create_reg (feature, "v1l", 71, 1, NULL, 64, "uint64");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-vx-linux64.xml ./gdb/features/s390-vx-linux64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-vx-linux64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-vx-linux64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2015-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-vx.xml ./gdb/features/s390-vx.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390-vx.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390-vx.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2015-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-core64.xml ./gdb/features/s390x-core64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-core64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390x-core64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-gs-linux64.c ./gdb/features/s390x-gs-linux64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-gs-linux64.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/s390x-gs-linux64.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,183 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: s390x-gs-linux64.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_s390x_gs_linux64;
+static void
+initialize_tdesc_s390x_gs_linux64 (void)
+{
+  struct target_desc *result = allocate_target_description ();
+  set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
+
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
+  tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
+  tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
+  tdesc_create_reg (feature, "r0", 2, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r1", 3, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r2", 4, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r3", 5, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r4", 6, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r5", 7, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r6", 8, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r7", 9, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r8", 10, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r9", 11, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r10", 12, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r11", 13, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r12", 14, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r13", 15, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r14", 16, 1, "general", 64, "uint64");
+  tdesc_create_reg (feature, "r15", 17, 1, "general", 64, "uint64");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.acr");
+  tdesc_create_reg (feature, "acr0", 18, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr1", 19, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr2", 20, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr3", 21, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr4", 22, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr5", 23, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr6", 24, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr7", 25, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr8", 26, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr9", 27, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr10", 28, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr11", 29, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr12", 30, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr13", 31, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr14", 32, 1, "access", 32, "uint32");
+  tdesc_create_reg (feature, "acr15", 33, 1, "access", 32, "uint32");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.fpr");
+  tdesc_create_reg (feature, "fpc", 34, 1, "float", 32, "uint32");
+  tdesc_create_reg (feature, "f0", 35, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f1", 36, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f2", 37, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f3", 38, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f4", 39, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f5", 40, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f6", 41, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f7", 42, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f8", 43, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f9", 44, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f10", 45, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f11", 46, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f12", 47, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f13", 48, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f14", 49, 1, "float", 64, "ieee_double");
+  tdesc_create_reg (feature, "f15", 50, 1, "float", 64, "ieee_double");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.linux");
+  tdesc_create_reg (feature, "orig_r2", 51, 1, "system", 64, "uint64");
+  tdesc_create_reg (feature, "last_break", 52, 0, "system", 64, "code_ptr");
+  tdesc_create_reg (feature, "system_call", 53, 1, "system", 32, "uint32");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.tdb");
+  tdesc_create_reg (feature, "tdb0", 54, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tac", 55, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tct", 56, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "atia", 57, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr0", 58, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr1", 59, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr2", 60, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr3", 61, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr4", 62, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr5", 63, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr6", 64, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr7", 65, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr8", 66, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr9", 67, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr10", 68, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr11", 69, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr12", 70, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr13", 71, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr14", 72, 1, "tdb", 64, "uint64");
+  tdesc_create_reg (feature, "tr15", 73, 1, "tdb", 64, "uint64");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "ieee_double");
+  tdesc_create_vector (feature, "v2d", element_type, 2);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int64");
+  tdesc_create_vector (feature, "v2i64", element_type, 2);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
+  field_type = tdesc_named_type (feature, "v4f");
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
+  field_type = tdesc_named_type (feature, "v2d");
+  tdesc_add_field (type_with_fields, "v2_double", field_type);
+  field_type = tdesc_named_type (feature, "v16i8");
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
+  field_type = tdesc_named_type (feature, "v8i16");
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
+  field_type = tdesc_named_type (feature, "v4i32");
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
+  field_type = tdesc_named_type (feature, "v2i64");
+  tdesc_add_field (type_with_fields, "v2_int64", field_type);
+  field_type = tdesc_named_type (feature, "uint128");
+  tdesc_add_field (type_with_fields, "uint128", field_type);
+
+  tdesc_create_reg (feature, "v0l", 74, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v1l", 75, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v2l", 76, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v3l", 77, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v4l", 78, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v5l", 79, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v6l", 80, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v7l", 81, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v8l", 82, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v9l", 83, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v10l", 84, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v11l", 85, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v12l", 86, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v13l", 87, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v14l", 88, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v15l", 89, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "v16", 90, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v17", 91, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v18", 92, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v19", 93, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v20", 94, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v21", 95, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v22", 96, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v23", 97, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v24", 98, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v25", 99, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v26", 100, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v27", 101, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v28", 102, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v29", 103, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v30", 104, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "v31", 105, 1, NULL, 128, "vec128");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.gs");
+  tdesc_create_reg (feature, "gsd", 106, 1, "gs", 64, "uint64");
+  tdesc_create_reg (feature, "gssm", 107, 1, "gs", 64, "uint64");
+  tdesc_create_reg (feature, "gsepla", 108, 1, "gs", 64, "data_ptr");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.s390.gsbc");
+  tdesc_create_reg (feature, "bc_gsd", 109, 1, "gs", 64, "uint64");
+  tdesc_create_reg (feature, "bc_gssm", 110, 1, "gs", 64, "uint64");
+  tdesc_create_reg (feature, "bc_gsepla", 111, 1, "gs", 64, "data_ptr");
+
+  tdesc_s390x_gs_linux64 = result;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-gs-linux64.xml ./gdb/features/s390x-gs-linux64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-gs-linux64.xml	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/s390x-gs-linux64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!-- S/390 64-bit user-level code.  -->
+
+<!DOCTYPE target SYSTEM "gdb-target.dtd">
+<target>
+  <architecture>s390:64-bit</architecture>
+  <xi:include href="s390x-core64.xml"/>
+  <xi:include href="s390-acr.xml"/>
+  <xi:include href="s390-fpr.xml"/>
+
+  <feature name="org.gnu.gdb.s390.linux">
+    <reg name="orig_r2" bitsize="64" type="uint64" group="system"/>
+    <reg name="last_break" bitsize="64" type="code_ptr" group="system" save-restore="no"/>
+    <reg name="system_call" bitsize="32" type="uint32" group="system"/>
+  </feature>
+
+  <xi:include href="s390-tdb.xml"/>
+  <xi:include href="s390-vx.xml"/>
+  <xi:include href="s390-gs.xml"/>
+  <xi:include href="s390-gsbc.xml"/>
+</target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-linux64.c ./gdb/features/s390x-linux64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-linux64.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390x-linux64.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_s390x_linux64 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-linux64v1.c ./gdb/features/s390x-linux64v1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-linux64v1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390x-linux64v1.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_s390x_linux64v1 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-linux64v1.xml ./gdb/features/s390x-linux64v1.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-linux64v1.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390x-linux64v1.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-linux64v2.c ./gdb/features/s390x-linux64v2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-linux64v2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390x-linux64v2.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_s390x_linux64v2 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-linux64v2.xml ./gdb/features/s390x-linux64v2.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-linux64v2.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390x-linux64v2.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-linux64.xml ./gdb/features/s390x-linux64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-linux64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390x-linux64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-te-linux64.c ./gdb/features/s390x-te-linux64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-te-linux64.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390x-te-linux64.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,10 +10,10 @@ static void
 initialize_tdesc_s390x_te_linux64 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-te-linux64.xml ./gdb/features/s390x-te-linux64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-te-linux64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390x-te-linux64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-tevx-linux64.c ./gdb/features/s390x-tevx-linux64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-tevx-linux64.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390x-tevx-linux64.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_s390x_tevx_linux64 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
@@ -101,39 +99,42 @@ initialize_tdesc_s390x_tevx_linux64 (voi
   tdesc_create_reg (feature, "tr15", 73, 1, "tdb", 64, "uint64");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
 
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
+  element_type = tdesc_named_type (feature, "ieee_double");
+  tdesc_create_vector (feature, "v2d", element_type, 2);
 
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
 
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
 
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
 
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
+  element_type = tdesc_named_type (feature, "int64");
+  tdesc_create_vector (feature, "v2i64", element_type, 2);
 
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
+  tdesc_add_field (type_with_fields, "v2_double", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
+  tdesc_add_field (type_with_fields, "v2_int64", field_type);
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
 
   tdesc_create_reg (feature, "v0l", 74, 1, NULL, 64, "uint64");
   tdesc_create_reg (feature, "v1l", 75, 1, NULL, 64, "uint64");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-tevx-linux64.xml ./gdb/features/s390x-tevx-linux64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-tevx-linux64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390x-tevx-linux64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2015-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-vx-linux64.c ./gdb/features/s390x-vx-linux64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-vx-linux64.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390x-vx-linux64.c	2018-01-09 02:04:57.000000000 +0000
@@ -10,12 +10,10 @@ static void
 initialize_tdesc_s390x_vx_linux64 (void)
 {
   struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
   set_tdesc_architecture (result, bfd_scan_arch ("s390:64-bit"));
 
+  struct tdesc_feature *feature;
+
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.core");
   tdesc_create_reg (feature, "pswm", 0, 1, "psw", 64, "uint64");
   tdesc_create_reg (feature, "pswa", 1, 1, "psw", 64, "uint64");
@@ -79,39 +77,42 @@ initialize_tdesc_s390x_vx_linux64 (void)
   tdesc_create_reg (feature, "system_call", 53, 1, "system", 32, "uint32");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.s390.vx");
-  field_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", field_type, 4);
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
 
-  field_type = tdesc_named_type (feature, "ieee_double");
-  tdesc_create_vector (feature, "v2d", field_type, 2);
+  element_type = tdesc_named_type (feature, "ieee_double");
+  tdesc_create_vector (feature, "v2d", element_type, 2);
 
-  field_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", field_type, 16);
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
 
-  field_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", field_type, 8);
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
 
-  field_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", field_type, 4);
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
 
-  field_type = tdesc_named_type (feature, "int64");
-  tdesc_create_vector (feature, "v2i64", field_type, 2);
+  element_type = tdesc_named_type (feature, "int64");
+  tdesc_create_vector (feature, "v2i64", element_type, 2);
 
-  type = tdesc_create_union (feature, "vec128");
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
   field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type, "v4_float", field_type);
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
   field_type = tdesc_named_type (feature, "v2d");
-  tdesc_add_field (type, "v2_double", field_type);
+  tdesc_add_field (type_with_fields, "v2_double", field_type);
   field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type, "v16_int8", field_type);
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
   field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type, "v8_int16", field_type);
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
   field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type, "v4_int32", field_type);
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
   field_type = tdesc_named_type (feature, "v2i64");
-  tdesc_add_field (type, "v2_int64", field_type);
+  tdesc_add_field (type_with_fields, "v2_int64", field_type);
   field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type, "uint128", field_type);
+  tdesc_add_field (type_with_fields, "uint128", field_type);
 
   tdesc_create_reg (feature, "v0l", 54, 1, NULL, 64, "uint64");
   tdesc_create_reg (feature, "v1l", 55, 1, NULL, 64, "uint64");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-vx-linux64.xml ./gdb/features/s390x-vx-linux64.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/s390x-vx-linux64.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/s390x-vx-linux64.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2015-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc32-cp0.xml ./gdb/features/sparc/sparc32-cp0.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc32-cp0.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/sparc/sparc32-cp0.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc32-cpu.xml ./gdb/features/sparc/sparc32-cpu.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc32-cpu.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/sparc/sparc32-cpu.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc32-fpu.xml ./gdb/features/sparc/sparc32-fpu.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc32-fpu.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/sparc/sparc32-fpu.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc32-solaris.xml ./gdb/features/sparc/sparc32-solaris.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc32-solaris.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/sparc/sparc32-solaris.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc64-cp0.xml ./gdb/features/sparc/sparc64-cp0.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc64-cp0.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/sparc/sparc64-cp0.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc64-cpu.xml ./gdb/features/sparc/sparc64-cpu.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc64-cpu.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/sparc/sparc64-cpu.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc64-fpu.xml ./gdb/features/sparc/sparc64-fpu.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc64-fpu.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/sparc/sparc64-fpu.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc64-solaris.xml ./gdb/features/sparc/sparc64-solaris.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/sparc/sparc64-solaris.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/sparc/sparc64-solaris.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2013-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/threads.dtd ./gdb/features/threads.dtd
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/threads.dtd	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/threads.dtd	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2008-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c62x.c ./gdb/features/tic6x-c62x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c62x.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-c62x.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,54 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: tic6x-c62x.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_tic6x_c62x;
-static void
-initialize_tdesc_tic6x_c62x (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
-  tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B0", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B1", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B2", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B3", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B4", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B5", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B6", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B7", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B8", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B9", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B10", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B11", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B12", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B13", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B14", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B15", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "CSR", 32, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "PC", 33, 1, NULL, 32, "code_ptr");
-
-  tdesc_tic6x_c62x = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c62x-linux.c ./gdb/features/tic6x-c62x-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c62x-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-c62x-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,56 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: tic6x-c62x-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_tic6x_c62x_linux;
-static void
-initialize_tdesc_tic6x_c62x_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
-  tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B0", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B1", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B2", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B3", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B4", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B5", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B6", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B7", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B8", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B9", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B10", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B11", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B12", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B13", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B14", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B15", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "CSR", 32, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "PC", 33, 1, NULL, 32, "code_ptr");
-
-  tdesc_tic6x_c62x_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c62x-linux.xml ./gdb/features/tic6x-c62x-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c62x-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-c62x-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c62x.xml ./gdb/features/tic6x-c62x.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c62x.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-c62x.xml	1970-01-01 00:00:00.000000000 +0000
@@ -1,12 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>tic6x</architecture>
-  <xi:include href="tic6x-core.xml"/>
-</target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64x.c ./gdb/features/tic6x-c64x.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64x.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-c64x.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,88 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: tic6x-c64x.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_tic6x_c64x;
-static void
-initialize_tdesc_tic6x_c64x (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
-  tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B0", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B1", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B2", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B3", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B4", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B5", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B6", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B7", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B8", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B9", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B10", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B11", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B12", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B13", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B14", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B15", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "CSR", 32, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "PC", 33, 1, NULL, 32, "code_ptr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.gp");
-  tdesc_create_reg (feature, "A16", 34, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A17", 35, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A18", 36, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A19", 37, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A20", 38, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A21", 39, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A22", 40, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A23", 41, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A24", 42, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A25", 43, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A26", 44, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A27", 45, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A28", 46, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A29", 47, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A30", 48, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A31", 49, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B16", 50, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B17", 51, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B18", 52, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B19", 53, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B20", 54, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B21", 55, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B22", 56, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B23", 57, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B24", 58, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B25", 59, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B26", 60, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B27", 61, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B28", 62, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B29", 63, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B30", 64, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B31", 65, 1, NULL, 32, "uint32");
-
-  tdesc_tic6x_c64x = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64x-linux.c ./gdb/features/tic6x-c64x-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64x-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-c64x-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,90 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: tic6x-c64x-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_tic6x_c64x_linux;
-static void
-initialize_tdesc_tic6x_c64x_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
-  tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B0", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B1", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B2", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B3", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B4", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B5", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B6", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B7", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B8", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B9", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B10", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B11", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B12", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B13", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B14", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B15", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "CSR", 32, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "PC", 33, 1, NULL, 32, "code_ptr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.gp");
-  tdesc_create_reg (feature, "A16", 34, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A17", 35, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A18", 36, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A19", 37, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A20", 38, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A21", 39, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A22", 40, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A23", 41, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A24", 42, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A25", 43, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A26", 44, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A27", 45, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A28", 46, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A29", 47, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A30", 48, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A31", 49, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B16", 50, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B17", 51, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B18", 52, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B19", 53, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B20", 54, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B21", 55, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B22", 56, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B23", 57, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B24", 58, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B25", 59, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B26", 60, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B27", 61, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B28", 62, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B29", 63, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B30", 64, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B31", 65, 1, NULL, 32, "uint32");
-
-  tdesc_tic6x_c64x_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64x-linux.xml ./gdb/features/tic6x-c64x-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64x-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-c64x-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64xp.c ./gdb/features/tic6x-c64xp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64xp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-c64xp.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,93 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: tic6x-c64xp.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_tic6x_c64xp;
-static void
-initialize_tdesc_tic6x_c64xp (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
-  tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B0", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B1", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B2", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B3", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B4", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B5", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B6", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B7", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B8", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B9", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B10", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B11", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B12", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B13", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B14", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B15", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "CSR", 32, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "PC", 33, 1, NULL, 32, "code_ptr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.gp");
-  tdesc_create_reg (feature, "A16", 34, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A17", 35, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A18", 36, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A19", 37, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A20", 38, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A21", 39, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A22", 40, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A23", 41, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A24", 42, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A25", 43, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A26", 44, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A27", 45, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A28", 46, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A29", 47, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A30", 48, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A31", 49, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B16", 50, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B17", 51, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B18", 52, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B19", 53, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B20", 54, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B21", 55, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B22", 56, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B23", 57, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B24", 58, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B25", 59, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B26", 60, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B27", 61, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B28", 62, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B29", 63, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B30", 64, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B31", 65, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.c6xp");
-  tdesc_create_reg (feature, "TSR", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "ILC", 67, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "RILC", 68, 1, NULL, 32, "uint32");
-
-  tdesc_tic6x_c64xp = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64xp-linux.c ./gdb/features/tic6x-c64xp-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64xp-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-c64xp-linux.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,95 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: tic6x-c64xp-linux.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_tic6x_c64xp_linux;
-static void
-initialize_tdesc_tic6x_c64xp_linux (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("tic6x"));
-
-  set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core");
-  tdesc_create_reg (feature, "A0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B0", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B1", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B2", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B3", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B4", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B5", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B6", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B7", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B8", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B9", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B10", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B11", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B12", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B13", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B14", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B15", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "CSR", 32, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "PC", 33, 1, NULL, 32, "code_ptr");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.gp");
-  tdesc_create_reg (feature, "A16", 34, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A17", 35, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A18", 36, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A19", 37, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A20", 38, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A21", 39, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A22", 40, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A23", 41, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A24", 42, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A25", 43, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A26", 44, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A27", 45, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A28", 46, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A29", 47, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A30", 48, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "A31", 49, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B16", 50, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B17", 51, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B18", 52, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B19", 53, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B20", 54, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B21", 55, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B22", 56, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B23", 57, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B24", 58, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B25", 59, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B26", 60, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B27", 61, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B28", 62, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B29", 63, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B30", 64, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "B31", 65, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.c6xp");
-  tdesc_create_reg (feature, "TSR", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "ILC", 67, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "RILC", 68, 1, NULL, 32, "uint32");
-
-  tdesc_tic6x_c64xp_linux = result;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64xp-linux.xml ./gdb/features/tic6x-c64xp-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64xp-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-c64xp-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64xp.xml ./gdb/features/tic6x-c64xp.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64xp.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-c64xp.xml	1970-01-01 00:00:00.000000000 +0000
@@ -1,14 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>tic6x</architecture>
-  <xi:include href="tic6x-core.xml"/>
-  <xi:include href="tic6x-gp.xml"/>
-  <xi:include href="tic6x-c6xp.xml"/>
-</target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64x.xml ./gdb/features/tic6x-c64x.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c64x.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-c64x.xml	1970-01-01 00:00:00.000000000 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>tic6x</architecture>
-  <xi:include href="tic6x-core.xml"/>
-  <xi:include href="tic6x-gp.xml"/>
-</target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c6xp.c ./gdb/features/tic6x-c6xp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c6xp.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/tic6x-c6xp.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,16 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: tic6x-c6xp.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_tic6x_c6xp (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.c6xp", "tic6x-c6xp.xml");
+  tdesc_create_reg (feature, "TSR", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "ILC", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "RILC", regnum++, 1, NULL, 32, "uint32");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c6xp.xml ./gdb/features/tic6x-c6xp.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-c6xp.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-c6xp.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-core.c ./gdb/features/tic6x-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-core.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/tic6x-core.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,47 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: tic6x-core.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_tic6x_core (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.core", "tic6x-core.xml");
+  tdesc_create_reg (feature, "A0", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A1", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A2", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A3", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A4", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A5", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A6", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A7", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A8", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A9", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A10", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A11", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A12", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A13", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A14", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A15", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B0", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B1", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B2", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B3", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B4", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B5", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B6", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B7", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B8", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B9", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B10", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B11", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B12", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B13", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B14", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B15", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "CSR", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "PC", regnum++, 1, NULL, 32, "code_ptr");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-core.xml ./gdb/features/tic6x-core.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-core.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-core.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-gp.c ./gdb/features/tic6x-gp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-gp.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/features/tic6x-gp.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,45 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: tic6x-gp.xml */
+
+#include "arch/tdesc.h"
+
+static int
+create_feature_tic6x_gp (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.tic6x.gp", "tic6x-gp.xml");
+  tdesc_create_reg (feature, "A16", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A17", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A18", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A19", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A20", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A21", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A22", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A23", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A24", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A25", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A26", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A27", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A28", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A29", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A30", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "A31", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B16", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B17", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B18", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B19", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B20", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B21", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B22", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B23", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B24", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B25", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B26", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B27", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B28", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B29", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B30", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "B31", regnum++, 1, NULL, 32, "uint32");
+  return regnum;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-gp.xml ./gdb/features/tic6x-gp.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/tic6x-gp.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/tic6x-gp.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/traceframe-info.dtd ./gdb/features/traceframe-info.dtd
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/traceframe-info.dtd	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/traceframe-info.dtd	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/xinclude.dtd ./gdb/features/xinclude.dtd
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/features/xinclude.dtd	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/features/xinclude.dtd	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2007-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/f-exp.c ./gdb/f-exp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/f-exp.c	2018-01-02 02:06:29.000000000 +0000
+++ ./gdb/f-exp.c	2018-01-09 02:08:07.000000000 +0000
@@ -232,7 +232,10 @@ typedef union YYSTYPE
       LONGEST val;
       struct type *type;
     } typed_val;
-    DOUBLEST dval;
+    struct {
+      gdb_byte val[16];
+      struct type *type;
+    } typed_val_float;
     struct symbol *sym;
     struct type *tval;
     struct stoken sval;
@@ -249,7 +252,7 @@ typedef union YYSTYPE
 
 
 /* Line 214 of yacc.c  */
-#line 253 "f-exp.c"
+#line 256 "f-exp.c"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -260,7 +263,7 @@ typedef union YYSTYPE
 /* Copy the second part of user declarations.  */
 
 /* Line 264 of yacc.c  */
-#line 109 "f-exp.y"
+#line 112 "f-exp.y"
 
 /* YYSTYPE gets defined by %union */
 static int parse_number (struct parser_state *, const char *, int,
@@ -268,7 +271,7 @@ static int parse_number (struct parser_s
 
 
 /* Line 264 of yacc.c  */
-#line 272 "f-exp.c"
+#line 275 "f-exp.c"
 
 #ifdef short
 # undef short
@@ -585,15 +588,15 @@ static const yytype_int8 yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   189,   189,   190,   193,   199,   204,   208,   212,   216,
-     220,   224,   234,   233,   244,   247,   251,   255,   261,   267,
-     273,   279,   285,   289,   297,   303,   311,   315,   319,   323,
-     327,   331,   335,   339,   343,   347,   351,   355,   359,   363,
-     367,   371,   375,   379,   384,   388,   392,   398,   405,   416,
-     425,   428,   431,   442,   449,   457,   494,   497,   498,   542,
-     544,   546,   548,   550,   553,   555,   557,   561,   563,   568,
-     570,   572,   574,   576,   578,   580,   582,   584,   586,   588,
-     590,   592,   594,   599,   604,   611,   615
+       0,   192,   192,   193,   196,   202,   207,   211,   215,   219,
+     223,   227,   237,   236,   247,   250,   254,   258,   264,   270,
+     276,   282,   288,   292,   300,   306,   314,   318,   322,   326,
+     330,   334,   338,   342,   346,   350,   354,   358,   362,   366,
+     370,   374,   378,   382,   387,   391,   395,   401,   408,   419,
+     426,   429,   432,   443,   450,   458,   495,   498,   499,   543,
+     545,   547,   549,   551,   554,   556,   558,   562,   564,   569,
+     571,   573,   575,   577,   579,   581,   583,   585,   587,   589,
+     591,   593,   595,   600,   605,   612,   616
 };
 #endif
 
@@ -1667,7 +1670,7 @@ yyreduce:
         case 4:
 
 /* Line 1455 of yacc.c  */
-#line 194 "f-exp.y"
+#line 197 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_TYPE);
 			  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].tval));
 			  write_exp_elt_opcode (pstate, OP_TYPE); }
@@ -1676,63 +1679,63 @@ yyreduce:
   case 5:
 
 /* Line 1455 of yacc.c  */
-#line 200 "f-exp.y"
+#line 203 "f-exp.y"
     { }
     break;
 
   case 6:
 
 /* Line 1455 of yacc.c  */
-#line 205 "f-exp.y"
+#line 208 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_IND); }
     break;
 
   case 7:
 
 /* Line 1455 of yacc.c  */
-#line 209 "f-exp.y"
+#line 212 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_ADDR); }
     break;
 
   case 8:
 
 /* Line 1455 of yacc.c  */
-#line 213 "f-exp.y"
+#line 216 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_NEG); }
     break;
 
   case 9:
 
 /* Line 1455 of yacc.c  */
-#line 217 "f-exp.y"
+#line 220 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT); }
     break;
 
   case 10:
 
 /* Line 1455 of yacc.c  */
-#line 221 "f-exp.y"
+#line 224 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_COMPLEMENT); }
     break;
 
   case 11:
 
 /* Line 1455 of yacc.c  */
-#line 225 "f-exp.y"
+#line 228 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_SIZEOF); }
     break;
 
   case 12:
 
 /* Line 1455 of yacc.c  */
-#line 234 "f-exp.y"
+#line 237 "f-exp.y"
     { start_arglist (); }
     break;
 
   case 13:
 
 /* Line 1455 of yacc.c  */
-#line 236 "f-exp.y"
+#line 239 "f-exp.y"
     { write_exp_elt_opcode (pstate,
 						OP_F77_UNDETERMINED_ARGLIST);
 			  write_exp_elt_longcst (pstate,
@@ -1744,28 +1747,28 @@ yyreduce:
   case 15:
 
 /* Line 1455 of yacc.c  */
-#line 248 "f-exp.y"
+#line 251 "f-exp.y"
     { arglist_len = 1; }
     break;
 
   case 16:
 
 /* Line 1455 of yacc.c  */
-#line 252 "f-exp.y"
+#line 255 "f-exp.y"
     { arglist_len = 1; }
     break;
 
   case 17:
 
 /* Line 1455 of yacc.c  */
-#line 256 "f-exp.y"
+#line 259 "f-exp.y"
     { arglist_len++; }
     break;
 
   case 18:
 
 /* Line 1455 of yacc.c  */
-#line 262 "f-exp.y"
+#line 265 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_RANGE); 
 			  write_exp_elt_longcst (pstate, NONE_BOUND_DEFAULT);
 			  write_exp_elt_opcode (pstate, OP_RANGE); }
@@ -1774,7 +1777,7 @@ yyreduce:
   case 19:
 
 /* Line 1455 of yacc.c  */
-#line 268 "f-exp.y"
+#line 271 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_RANGE);
 			  write_exp_elt_longcst (pstate, HIGH_BOUND_DEFAULT);
 			  write_exp_elt_opcode (pstate, OP_RANGE); }
@@ -1783,7 +1786,7 @@ yyreduce:
   case 20:
 
 /* Line 1455 of yacc.c  */
-#line 274 "f-exp.y"
+#line 277 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_RANGE);
 			  write_exp_elt_longcst (pstate, LOW_BOUND_DEFAULT);
 			  write_exp_elt_opcode (pstate, OP_RANGE); }
@@ -1792,7 +1795,7 @@ yyreduce:
   case 21:
 
 /* Line 1455 of yacc.c  */
-#line 280 "f-exp.y"
+#line 283 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_RANGE);
 			  write_exp_elt_longcst (pstate, BOTH_BOUND_DEFAULT);
 			  write_exp_elt_opcode (pstate, OP_RANGE); }
@@ -1801,14 +1804,14 @@ yyreduce:
   case 22:
 
 /* Line 1455 of yacc.c  */
-#line 286 "f-exp.y"
+#line 289 "f-exp.y"
     { }
     break;
 
   case 23:
 
 /* Line 1455 of yacc.c  */
-#line 290 "f-exp.y"
+#line 293 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_COMPLEX);
 			  write_exp_elt_type (pstate,
 					      parse_f_type (pstate)
@@ -1819,7 +1822,7 @@ yyreduce:
   case 24:
 
 /* Line 1455 of yacc.c  */
-#line 298 "f-exp.y"
+#line 301 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_CAST);
 			  write_exp_elt_type (pstate, (yyvsp[(2) - (4)].tval));
 			  write_exp_elt_opcode (pstate, UNOP_CAST); }
@@ -1828,7 +1831,7 @@ yyreduce:
   case 25:
 
 /* Line 1455 of yacc.c  */
-#line 304 "f-exp.y"
+#line 307 "f-exp.y"
     { write_exp_elt_opcode (pstate, STRUCTOP_STRUCT);
                           write_exp_string (pstate, (yyvsp[(3) - (3)].sval));
                           write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); }
@@ -1837,147 +1840,147 @@ yyreduce:
   case 26:
 
 /* Line 1455 of yacc.c  */
-#line 312 "f-exp.y"
+#line 315 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_REPEAT); }
     break;
 
   case 27:
 
 /* Line 1455 of yacc.c  */
-#line 316 "f-exp.y"
+#line 319 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_EXP); }
     break;
 
   case 28:
 
 /* Line 1455 of yacc.c  */
-#line 320 "f-exp.y"
+#line 323 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_MUL); }
     break;
 
   case 29:
 
 /* Line 1455 of yacc.c  */
-#line 324 "f-exp.y"
+#line 327 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_DIV); }
     break;
 
   case 30:
 
 /* Line 1455 of yacc.c  */
-#line 328 "f-exp.y"
+#line 331 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_ADD); }
     break;
 
   case 31:
 
 /* Line 1455 of yacc.c  */
-#line 332 "f-exp.y"
+#line 335 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_SUB); }
     break;
 
   case 32:
 
 /* Line 1455 of yacc.c  */
-#line 336 "f-exp.y"
+#line 339 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LSH); }
     break;
 
   case 33:
 
 /* Line 1455 of yacc.c  */
-#line 340 "f-exp.y"
+#line 343 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_RSH); }
     break;
 
   case 34:
 
 /* Line 1455 of yacc.c  */
-#line 344 "f-exp.y"
+#line 347 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_EQUAL); }
     break;
 
   case 35:
 
 /* Line 1455 of yacc.c  */
-#line 348 "f-exp.y"
+#line 351 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_NOTEQUAL); }
     break;
 
   case 36:
 
 /* Line 1455 of yacc.c  */
-#line 352 "f-exp.y"
+#line 355 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LEQ); }
     break;
 
   case 37:
 
 /* Line 1455 of yacc.c  */
-#line 356 "f-exp.y"
+#line 359 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_GEQ); }
     break;
 
   case 38:
 
 /* Line 1455 of yacc.c  */
-#line 360 "f-exp.y"
+#line 363 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LESS); }
     break;
 
   case 39:
 
 /* Line 1455 of yacc.c  */
-#line 364 "f-exp.y"
+#line 367 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_GTR); }
     break;
 
   case 40:
 
 /* Line 1455 of yacc.c  */
-#line 368 "f-exp.y"
+#line 371 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_AND); }
     break;
 
   case 41:
 
 /* Line 1455 of yacc.c  */
-#line 372 "f-exp.y"
+#line 375 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_XOR); }
     break;
 
   case 42:
 
 /* Line 1455 of yacc.c  */
-#line 376 "f-exp.y"
+#line 379 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_IOR); }
     break;
 
   case 43:
 
 /* Line 1455 of yacc.c  */
-#line 380 "f-exp.y"
+#line 383 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LOGICAL_AND); }
     break;
 
   case 44:
 
 /* Line 1455 of yacc.c  */
-#line 385 "f-exp.y"
+#line 388 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LOGICAL_OR); }
     break;
 
   case 45:
 
 /* Line 1455 of yacc.c  */
-#line 389 "f-exp.y"
+#line 392 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_ASSIGN); }
     break;
 
   case 46:
 
 /* Line 1455 of yacc.c  */
-#line 393 "f-exp.y"
+#line 396 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_ASSIGN_MODIFY);
 			  write_exp_elt_opcode (pstate, (yyvsp[(2) - (3)].opcode));
 			  write_exp_elt_opcode (pstate, BINOP_ASSIGN_MODIFY); }
@@ -1986,7 +1989,7 @@ yyreduce:
   case 47:
 
 /* Line 1455 of yacc.c  */
-#line 399 "f-exp.y"
+#line 402 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_LONG);
 			  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].typed_val).type);
 			  write_exp_elt_longcst (pstate, (LONGEST) ((yyvsp[(1) - (1)].typed_val).val));
@@ -1996,7 +1999,7 @@ yyreduce:
   case 48:
 
 /* Line 1455 of yacc.c  */
-#line 406 "f-exp.y"
+#line 409 "f-exp.y"
     { YYSTYPE val;
 			  parse_number (pstate, (yyvsp[(1) - (1)].ssym).stoken.ptr,
 					(yyvsp[(1) - (1)].ssym).stoken.length, 0, &val);
@@ -2010,19 +2013,17 @@ yyreduce:
   case 49:
 
 /* Line 1455 of yacc.c  */
-#line 417 "f-exp.y"
-    { write_exp_elt_opcode (pstate, OP_DOUBLE);
-			  write_exp_elt_type (pstate,
-					      parse_f_type (pstate)
-					      ->builtin_real_s8);
-			  write_exp_elt_dblcst (pstate, (yyvsp[(1) - (1)].dval));
-			  write_exp_elt_opcode (pstate, OP_DOUBLE); }
+#line 420 "f-exp.y"
+    { write_exp_elt_opcode (pstate, OP_FLOAT);
+			  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].typed_val_float).type);
+			  write_exp_elt_floatcst (pstate, (yyvsp[(1) - (1)].typed_val_float).val);
+			  write_exp_elt_opcode (pstate, OP_FLOAT); }
     break;
 
   case 52:
 
 /* Line 1455 of yacc.c  */
-#line 432 "f-exp.y"
+#line 433 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_LONG);
 			  write_exp_elt_type (pstate,
 					      parse_f_type (pstate)
@@ -2036,7 +2037,7 @@ yyreduce:
   case 53:
 
 /* Line 1455 of yacc.c  */
-#line 443 "f-exp.y"
+#line 444 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_BOOL);
 			  write_exp_elt_longcst (pstate, (LONGEST) (yyvsp[(1) - (1)].lval));
 			  write_exp_elt_opcode (pstate, OP_BOOL);
@@ -2046,7 +2047,7 @@ yyreduce:
   case 54:
 
 /* Line 1455 of yacc.c  */
-#line 450 "f-exp.y"
+#line 451 "f-exp.y"
     {
 			  write_exp_elt_opcode (pstate, OP_STRING);
 			  write_exp_string (pstate, (yyvsp[(1) - (1)].sval));
@@ -2057,7 +2058,7 @@ yyreduce:
   case 55:
 
 /* Line 1455 of yacc.c  */
-#line 458 "f-exp.y"
+#line 459 "f-exp.y"
     { struct block_symbol sym = (yyvsp[(1) - (1)].ssym).sym;
 
 			  if (sym.symbol)
@@ -2096,7 +2097,7 @@ yyreduce:
   case 58:
 
 /* Line 1455 of yacc.c  */
-#line 499 "f-exp.y"
+#line 500 "f-exp.y"
     {
 		  /* This is where the interesting stuff happens.  */
 		  int done = 0;
@@ -2143,168 +2144,168 @@ yyreduce:
   case 59:
 
 /* Line 1455 of yacc.c  */
-#line 543 "f-exp.y"
+#line 544 "f-exp.y"
     { push_type (tp_pointer); (yyval.voidval) = 0; }
     break;
 
   case 60:
 
 /* Line 1455 of yacc.c  */
-#line 545 "f-exp.y"
+#line 546 "f-exp.y"
     { push_type (tp_pointer); (yyval.voidval) = (yyvsp[(2) - (2)].voidval); }
     break;
 
   case 61:
 
 /* Line 1455 of yacc.c  */
-#line 547 "f-exp.y"
+#line 548 "f-exp.y"
     { push_type (tp_reference); (yyval.voidval) = 0; }
     break;
 
   case 62:
 
 /* Line 1455 of yacc.c  */
-#line 549 "f-exp.y"
+#line 550 "f-exp.y"
     { push_type (tp_reference); (yyval.voidval) = (yyvsp[(2) - (2)].voidval); }
     break;
 
   case 64:
 
 /* Line 1455 of yacc.c  */
-#line 554 "f-exp.y"
+#line 555 "f-exp.y"
     { (yyval.voidval) = (yyvsp[(2) - (3)].voidval); }
     break;
 
   case 65:
 
 /* Line 1455 of yacc.c  */
-#line 556 "f-exp.y"
+#line 557 "f-exp.y"
     { push_type (tp_function); }
     break;
 
   case 66:
 
 /* Line 1455 of yacc.c  */
-#line 558 "f-exp.y"
+#line 559 "f-exp.y"
     { push_type (tp_function); }
     break;
 
   case 67:
 
 /* Line 1455 of yacc.c  */
-#line 562 "f-exp.y"
+#line 563 "f-exp.y"
     { (yyval.voidval) = 0; }
     break;
 
   case 68:
 
 /* Line 1455 of yacc.c  */
-#line 564 "f-exp.y"
+#line 565 "f-exp.y"
     { xfree ((yyvsp[(2) - (3)].tvec)); (yyval.voidval) = 0; }
     break;
 
   case 69:
 
 /* Line 1455 of yacc.c  */
-#line 569 "f-exp.y"
+#line 570 "f-exp.y"
     { (yyval.tval) = (yyvsp[(1) - (1)].tsym).type; }
     break;
 
   case 70:
 
 /* Line 1455 of yacc.c  */
-#line 571 "f-exp.y"
+#line 572 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_integer; }
     break;
 
   case 71:
 
 /* Line 1455 of yacc.c  */
-#line 573 "f-exp.y"
+#line 574 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_integer_s2; }
     break;
 
   case 72:
 
 /* Line 1455 of yacc.c  */
-#line 575 "f-exp.y"
+#line 576 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_character; }
     break;
 
   case 73:
 
 /* Line 1455 of yacc.c  */
-#line 577 "f-exp.y"
+#line 578 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_logical_s8; }
     break;
 
   case 74:
 
 /* Line 1455 of yacc.c  */
-#line 579 "f-exp.y"
+#line 580 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_logical; }
     break;
 
   case 75:
 
 /* Line 1455 of yacc.c  */
-#line 581 "f-exp.y"
+#line 582 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_logical_s2; }
     break;
 
   case 76:
 
 /* Line 1455 of yacc.c  */
-#line 583 "f-exp.y"
+#line 584 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_logical_s1; }
     break;
 
   case 77:
 
 /* Line 1455 of yacc.c  */
-#line 585 "f-exp.y"
+#line 586 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_real; }
     break;
 
   case 78:
 
 /* Line 1455 of yacc.c  */
-#line 587 "f-exp.y"
+#line 588 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_real_s8; }
     break;
 
   case 79:
 
 /* Line 1455 of yacc.c  */
-#line 589 "f-exp.y"
+#line 590 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_real_s16; }
     break;
 
   case 80:
 
 /* Line 1455 of yacc.c  */
-#line 591 "f-exp.y"
+#line 592 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_complex_s8; }
     break;
 
   case 81:
 
 /* Line 1455 of yacc.c  */
-#line 593 "f-exp.y"
+#line 594 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_complex_s16; }
     break;
 
   case 82:
 
 /* Line 1455 of yacc.c  */
-#line 595 "f-exp.y"
+#line 596 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_complex_s32; }
     break;
 
   case 83:
 
 /* Line 1455 of yacc.c  */
-#line 600 "f-exp.y"
+#line 601 "f-exp.y"
     { (yyval.tvec) = (struct type **) xmalloc (sizeof (struct type *) * 2);
 		  (yyval.ivec)[0] = 1;	/* Number of types in vector */
 		  (yyval.tvec)[1] = (yyvsp[(1) - (1)].tval);
@@ -2314,7 +2315,7 @@ yyreduce:
   case 84:
 
 /* Line 1455 of yacc.c  */
-#line 605 "f-exp.y"
+#line 606 "f-exp.y"
     { int len = sizeof (struct type *) * (++((yyvsp[(1) - (3)].ivec)[0]) + 1);
 		  (yyval.tvec) = (struct type **) xrealloc ((char *) (yyvsp[(1) - (3)].tvec), len);
 		  (yyval.tvec)[(yyval.ivec)[0]] = (yyvsp[(3) - (3)].tval);
@@ -2324,14 +2325,14 @@ yyreduce:
   case 85:
 
 /* Line 1455 of yacc.c  */
-#line 612 "f-exp.y"
+#line 613 "f-exp.y"
     {  (yyval.sval) = (yyvsp[(1) - (1)].ssym).stoken; }
     break;
 
 
 
 /* Line 1455 of yacc.c  */
-#line 2336 "f-exp.c"
+#line 2337 "f-exp.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2543,7 +2544,7 @@ yyreturn:
 
 
 /* Line 1675 of yacc.c  */
-#line 625 "f-exp.y"
+#line 626 "f-exp.y"
 
 
 /* Take care of parsing a number (anything that starts with a digit).
@@ -2569,16 +2570,22 @@ parse_number (struct parser_state *par_s
   if (parsed_float)
     {
       /* It's a float since it contains a point or an exponent.  */
-      /* [dD] is not understood as an exponent by atof, change it to 'e'.  */
+      /* [dD] is not understood as an exponent by parse_float,
+	 change it to 'e'.  */
       char *tmp, *tmp2;
 
       tmp = xstrdup (p);
       for (tmp2 = tmp; *tmp2; ++tmp2)
 	if (*tmp2 == 'd' || *tmp2 == 'D')
 	  *tmp2 = 'e';
-      putithere->dval = atof (tmp);
+
+      /* FIXME: Should this use different types?  */
+      putithere->typed_val_float.type = parse_f_type (pstate)->builtin_real_s8;
+      bool parsed = parse_float (tmp, len,
+				 putithere->typed_val_float.type,
+				 putithere->typed_val_float.val);
       xfree (tmp);
-      return FLOAT;
+      return parsed? FLOAT : ERROR;
     }
 
   /* Handle base-switching prefixes 0x, 0t, 0d, 0 */
@@ -3128,16 +3135,12 @@ yylex (void)
 int
 f_parse (struct parser_state *par_state)
 {
-  int result;
-  struct cleanup *c = make_cleanup_clear_parser_state (&pstate);
-
   /* Setting up the parser state.  */
+  scoped_restore pstate_restore = make_scoped_restore (&pstate);
   gdb_assert (par_state != NULL);
   pstate = par_state;
 
-  result = yyparse ();
-  do_cleanups (c);
-  return result;
+  return yyparse ();
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/f-exp.y ./gdb/f-exp.y
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/f-exp.y	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/f-exp.y	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 
 /* YACC parser for Fortran expressions, for GDB.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    Contributed by Motorola.  Adapted from the C parser by Farooq Butt
    (fmbutt@engage.sps.mot.com).
@@ -91,7 +91,10 @@ static int match_string_literal (void);
       LONGEST val;
       struct type *type;
     } typed_val;
-    DOUBLEST dval;
+    struct {
+      gdb_byte val[16];
+      struct type *type;
+    } typed_val_float;
     struct symbol *sym;
     struct type *tval;
     struct stoken sval;
@@ -122,7 +125,7 @@ static int parse_number (struct parser_s
 %type <tval> ptype
 
 %token <typed_val> INT
-%token <dval> FLOAT
+%token <typed_val_float> FLOAT
 
 /* Both NAME and TYPENAME tokens represent symbols in the input,
    and both convey their data as strings.
@@ -414,12 +417,10 @@ exp	:	NAME_OR_INT
 	;
 
 exp	:	FLOAT
-			{ write_exp_elt_opcode (pstate, OP_DOUBLE);
-			  write_exp_elt_type (pstate,
-					      parse_f_type (pstate)
-					      ->builtin_real_s8);
-			  write_exp_elt_dblcst (pstate, $1);
-			  write_exp_elt_opcode (pstate, OP_DOUBLE); }
+			{ write_exp_elt_opcode (pstate, OP_FLOAT);
+			  write_exp_elt_type (pstate, $1.type);
+			  write_exp_elt_floatcst (pstate, $1.val);
+			  write_exp_elt_opcode (pstate, OP_FLOAT); }
 	;
 
 exp	:	variable
@@ -647,16 +648,22 @@ parse_number (struct parser_state *par_s
   if (parsed_float)
     {
       /* It's a float since it contains a point or an exponent.  */
-      /* [dD] is not understood as an exponent by atof, change it to 'e'.  */
+      /* [dD] is not understood as an exponent by parse_float,
+	 change it to 'e'.  */
       char *tmp, *tmp2;
 
       tmp = xstrdup (p);
       for (tmp2 = tmp; *tmp2; ++tmp2)
 	if (*tmp2 == 'd' || *tmp2 == 'D')
 	  *tmp2 = 'e';
-      putithere->dval = atof (tmp);
+
+      /* FIXME: Should this use different types?  */
+      putithere->typed_val_float.type = parse_f_type (pstate)->builtin_real_s8;
+      bool parsed = parse_float (tmp, len,
+				 putithere->typed_val_float.type,
+				 putithere->typed_val_float.val);
       free (tmp);
-      return FLOAT;
+      return parsed? FLOAT : ERROR;
     }
 
   /* Handle base-switching prefixes 0x, 0t, 0d, 0 */
@@ -1206,16 +1213,12 @@ yylex (void)
 int
 f_parse (struct parser_state *par_state)
 {
-  int result;
-  struct cleanup *c = make_cleanup_clear_parser_state (&pstate);
-
   /* Setting up the parser state.  */
+  scoped_restore pstate_restore = make_scoped_restore (&pstate);
   gdb_assert (par_state != NULL);
   pstate = par_state;
 
-  result = yyparse ();
-  do_cleanups (c);
-  return result;
+  return yyparse ();
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/filename-seen-cache.c ./gdb/filename-seen-cache.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/filename-seen-cache.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/filename-seen-cache.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,66 @@
+/* Filename-seen cache for the GNU debugger, GDB.
+
+   Copyright (C) 1986-2018 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 "defs.h"
+#include "filename-seen-cache.h"
+#include "filenames.h"
+
+  /* Initial size of the table.  It automagically grows from here.  */
+#define INITIAL_FILENAME_SEEN_CACHE_SIZE 100
+
+/* filename_seen_cache constructor.  */
+
+filename_seen_cache::filename_seen_cache ()
+{
+  m_tab = htab_create_alloc (INITIAL_FILENAME_SEEN_CACHE_SIZE,
+			     filename_hash, filename_eq,
+			     NULL, xcalloc, xfree);
+}
+
+/* See filename-seen-cache.h.  */
+
+void
+filename_seen_cache::clear ()
+{
+  htab_empty (m_tab);
+}
+
+/* See filename-seen-cache.h.  */
+
+filename_seen_cache::~filename_seen_cache ()
+{
+  htab_delete (m_tab);
+}
+
+/* See filename-seen-cache.h.  */
+
+bool
+filename_seen_cache::seen (const char *file)
+{
+  void **slot;
+
+  /* Is FILE in tab?  */
+  slot = htab_find_slot (m_tab, file, INSERT);
+  if (*slot != NULL)
+    return true;
+
+  /* No; add it to tab.  */
+  *slot = (char *) file;
+  return false;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/filename-seen-cache.h ./gdb/filename-seen-cache.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/filename-seen-cache.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/filename-seen-cache.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,61 @@
+/* Filename-seen cache for the GNU debugger, GDB.
+
+   Copyright (C) 1986-2018 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 "defs.h"
+#include "common/function-view.h"
+
+/* Cache to watch for file names already seen.  */
+
+class filename_seen_cache
+{
+public:
+  filename_seen_cache ();
+  ~filename_seen_cache ();
+
+  DISABLE_COPY_AND_ASSIGN (filename_seen_cache);
+
+  /* Empty the cache, but do not delete it.  */
+  void clear ();
+
+  /* If FILE is not already in the table of files in CACHE, add it and
+     return false; otherwise return true.
+
+     NOTE: We don't manage space for FILE, we assume FILE lives as
+     long as the caller needs.  */
+  bool seen (const char *file);
+
+  /* Traverse all cache entries, calling CALLBACK on each.  The
+     filename is passed as argument to CALLBACK.  */
+  void traverse (gdb::function_view<void (const char *filename)> callback)
+  {
+    auto erased_cb = [] (void **slot, void *info) -> int
+      {
+	auto filename = (const char *) *slot;
+	auto restored_cb = (decltype (callback) *) info;
+	(*restored_cb) (filename);
+	return 1;
+      };
+
+    htab_traverse_noresize (m_tab, erased_cb, &callback);
+  }
+
+private:
+  /* Table of files seen so far.  */
+  htab_t m_tab;
+};
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/filesystem.c ./gdb/filesystem.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/filesystem.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/filesystem.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Handle different target file systems for GDB, the GNU Debugger.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -76,9 +76,6 @@ is \"%s\".\n"),
 		      value);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_filesystem;
-
 void
 _initialize_filesystem (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/filesystem.h ./gdb/filesystem.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/filesystem.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/filesystem.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Handle different target file systems for GDB, the GNU Debugger.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/findcmd.c ./gdb/findcmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/findcmd.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/findcmd.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* The find command.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -25,11 +25,12 @@
 #include "target.h"
 #include "cli/cli-utils.h"
 #include <algorithm>
+#include "common/byte-vector.h"
 
 /* Copied from bfd_put_bits.  */
 
 static void
-put_bits (bfd_uint64_t data, gdb_byte *buf, int bits, bfd_boolean big_p)
+put_bits (bfd_uint64_t data, gdb::byte_vector &buf, int bits, bfd_boolean big_p)
 {
   int i;
   int bytes;
@@ -37,11 +38,13 @@ put_bits (bfd_uint64_t data, gdb_byte *b
   gdb_assert (bits % 8 == 0);
 
   bytes = bits / 8;
+  size_t last = buf.size ();
+  buf.resize (last + bytes);
   for (i = 0; i < bytes; i++)
     {
       int index = big_p ? bytes - i - 1 : i;
 
-      buf[index] = data & 0xff;
+      buf[last + index] = data & 0xff;
       data >>= 8;
     }
 }
@@ -49,9 +52,8 @@ put_bits (bfd_uint64_t data, gdb_byte *b
 /* Subroutine of find_command to simplify it.
    Parse the arguments of the "find" command.  */
 
-static void
-parse_find_args (char *args, ULONGEST *max_countp,
-		 gdb_byte **pattern_bufp, ULONGEST *pattern_lenp,
+static gdb::byte_vector
+parse_find_args (const char *args, ULONGEST *max_countp,
 		 CORE_ADDR *start_addrp, ULONGEST *search_space_lenp,
 		 bfd_boolean big_p)
 {
@@ -59,27 +61,15 @@ parse_find_args (char *args, ULONGEST *m
   char size = '\0';
   ULONGEST max_count = ~(ULONGEST) 0;
   /* Buffer to hold the search pattern.  */
-  gdb_byte *pattern_buf;
-  /* Current size of search pattern buffer.
-     We realloc space as needed.  */
-#define INITIAL_PATTERN_BUF_SIZE 100
-  ULONGEST pattern_buf_size = INITIAL_PATTERN_BUF_SIZE;
-  /* Pointer to one past the last in-use part of pattern_buf.  */
-  gdb_byte *pattern_buf_end;
-  ULONGEST pattern_len;
+  gdb::byte_vector pattern_buf;
   CORE_ADDR start_addr;
   ULONGEST search_space_len;
   const char *s = args;
-  struct cleanup *old_cleanups;
   struct value *v;
 
   if (args == NULL)
     error (_("Missing search parameters."));
 
-  pattern_buf = (gdb_byte *) xmalloc (pattern_buf_size);
-  pattern_buf_end = pattern_buf;
-  old_cleanups = make_cleanup (free_current_contents, &pattern_buf);
-
   /* Get search granularity and/or max count if specified.
      They may be specified in either order, together or separately.  */
 
@@ -110,7 +100,7 @@ parse_find_args (char *args, ULONGEST *m
 	    }
 	}
 
-      s = skip_spaces_const (s);
+      s = skip_spaces (s);
     }
 
   /* Get the search range.  */
@@ -120,7 +110,7 @@ parse_find_args (char *args, ULONGEST *m
 
   if (*s == ',')
     ++s;
-  s = skip_spaces_const (s);
+  s = skip_spaces (s);
 
   if (*s == '+')
     {
@@ -131,9 +121,8 @@ parse_find_args (char *args, ULONGEST *m
       len = value_as_long (v);
       if (len == 0)
 	{
-	  do_cleanups (old_cleanups);
 	  printf_filtered (_("Empty search range.\n"));
-	  return;
+	  return pattern_buf;
 	}
       if (len < 0)
 	error (_("Invalid length."));
@@ -169,114 +158,90 @@ parse_find_args (char *args, ULONGEST *m
     {
       LONGEST x;
       struct type *t;
-      ULONGEST pattern_buf_size_need;
 
-      s = skip_spaces_const (s);
+      s = skip_spaces (s);
 
       v = parse_to_comma_and_eval (&s);
       t = value_type (v);
 
-      /* Keep it simple and assume size == 'g' when watching for when we
-	 need to grow the pattern buf.  */
-      pattern_buf_size_need = (pattern_buf_end - pattern_buf
-			       + std::max (TYPE_LENGTH (t),
-					   (unsigned) sizeof (int64_t)));
-      if (pattern_buf_size_need > pattern_buf_size)
-	{
-	  size_t current_offset = pattern_buf_end - pattern_buf;
-
-	  pattern_buf_size = pattern_buf_size_need * 2;
-	  pattern_buf = (gdb_byte *) xrealloc (pattern_buf, pattern_buf_size);
-	  pattern_buf_end = pattern_buf + current_offset;
-	}
-
       if (size != '\0')
 	{
 	  x = value_as_long (v);
 	  switch (size)
 	    {
 	    case 'b':
-	      *pattern_buf_end++ = x;
+	      pattern_buf.push_back (x);
 	      break;
 	    case 'h':
-	      put_bits (x, pattern_buf_end, 16, big_p);
-	      pattern_buf_end += sizeof (int16_t);
+	      put_bits (x, pattern_buf, 16, big_p);
 	      break;
 	    case 'w':
-	      put_bits (x, pattern_buf_end, 32, big_p);
-	      pattern_buf_end += sizeof (int32_t);
+	      put_bits (x, pattern_buf, 32, big_p);
 	      break;
 	    case 'g':
-	      put_bits (x, pattern_buf_end, 64, big_p);
-	      pattern_buf_end += sizeof (int64_t);
+	      put_bits (x, pattern_buf, 64, big_p);
 	      break;
 	    }
 	}
       else
 	{
-	  memcpy (pattern_buf_end, value_contents (v), TYPE_LENGTH (t));
-	  pattern_buf_end += TYPE_LENGTH (t);
+	  const gdb_byte *contents = value_contents (v);
+	  pattern_buf.insert (pattern_buf.end (), contents,
+			      contents + TYPE_LENGTH (t));
 	}
 
       if (*s == ',')
 	++s;
-      s = skip_spaces_const (s);
+      s = skip_spaces (s);
     }
 
-  if (pattern_buf_end == pattern_buf)
+  if (pattern_buf.empty ())
     error (_("Missing search pattern."));
 
-  pattern_len = pattern_buf_end - pattern_buf;
-
-  if (search_space_len < pattern_len)
+  if (search_space_len < pattern_buf.size ())
     error (_("Search space too small to contain pattern."));
 
   *max_countp = max_count;
-  *pattern_bufp = pattern_buf;
-  *pattern_lenp = pattern_len;
   *start_addrp = start_addr;
   *search_space_lenp = search_space_len;
 
-  /* We successfully parsed the arguments, leave the freeing of PATTERN_BUF
-     to the caller now.  */
-  discard_cleanups (old_cleanups);
+  return pattern_buf;
 }
 
 static void
-find_command (char *args, int from_tty)
+find_command (const char *args, int from_tty)
 {
   struct gdbarch *gdbarch = get_current_arch ();
   bfd_boolean big_p = gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG;
   /* Command line parameters.
      These are initialized to avoid uninitialized warnings from -Wall.  */
   ULONGEST max_count = 0;
-  gdb_byte *pattern_buf = 0;
-  ULONGEST pattern_len = 0;
   CORE_ADDR start_addr = 0;
   ULONGEST search_space_len = 0;
   /* End of command line parameters.  */
   unsigned int found_count;
   CORE_ADDR last_found_addr;
-  struct cleanup *old_cleanups;
-
-  parse_find_args (args, &max_count, &pattern_buf, &pattern_len, 
-		   &start_addr, &search_space_len, big_p);
 
-  old_cleanups = make_cleanup (free_current_contents, &pattern_buf);
+  gdb::byte_vector pattern_buf = parse_find_args (args, &max_count,
+						  &start_addr,
+						  &search_space_len,
+						  big_p);
 
   /* Perform the search.  */
 
   found_count = 0;
   last_found_addr = 0;
 
-  while (search_space_len >= pattern_len
+  while (search_space_len >= pattern_buf.size ()
 	 && found_count < max_count)
     {
       /* Offset from start of this iteration to the next iteration.  */
       ULONGEST next_iter_incr;
       CORE_ADDR found_addr;
       int found = target_search_memory (start_addr, search_space_len,
-					pattern_buf, pattern_len, &found_addr);
+					pattern_buf.data (),
+					pattern_buf.size (),
+					&found_addr);
 
       if (found <= 0)
 	break;
@@ -313,13 +278,8 @@ find_command (char *args, int from_tty)
   else
     printf_filtered ("%d pattern%s found.\n", found_count,
 		     found_count > 1 ? "s" : "");
-
-  do_cleanups (old_cleanups);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_mem_search;
-
 void
 _initialize_mem_search (void)
 {
@@ -333,7 +293,9 @@ and if not specified the size is taken f
 in the current language.\n\
 Note that this means for example that in the case of C-like languages\n\
 a search for an untyped 0x42 will search for \"(int) 0x42\"\n\
-which is typically four bytes.\n\
+which is typically four bytes, and a search for a string \"hello\" will\n\
+include the trailing '\\0'.  The null terminator can be removed from\n\
+searching by using casts, e.g.: {char[5]}\"hello\".\n\
 \n\
 The address of the last match is stored as the value of \"$_\".\n\
 Convenience variable \"$numfound\" is set to the number of matches."),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/findvar.c ./gdb/findvar.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/findvar.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/findvar.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Find a variable's value in memory, for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -25,7 +25,6 @@
 #include "gdbcore.h"
 #include "inferior.h"
 #include "target.h"
-#include "floatformat.h"
 #include "symfile.h"		/* for overlay functions */
 #include "regcache.h"
 #include "user-regs.h"
@@ -33,6 +32,7 @@
 #include "objfiles.h"
 #include "language.h"
 #include "dwarf2loc.h"
+#include "selftest.h"
 
 /* Basic byte-swapping routines.  All 'extract' functions return a
    host-format integer from a target-format integer at ADDR which is
@@ -46,70 +46,54 @@
 you lose
 #endif
 
-LONGEST
-extract_signed_integer (const gdb_byte *addr, int len,
-			enum bfd_endian byte_order)
+template<typename T, typename>
+T
+extract_integer (const gdb_byte *addr, int len, enum bfd_endian byte_order)
 {
-  LONGEST retval;
+  T retval = 0;
   const unsigned char *p;
   const unsigned char *startaddr = addr;
   const unsigned char *endaddr = startaddr + len;
 
-  if (len > (int) sizeof (LONGEST))
+  if (len > (int) sizeof (T))
     error (_("\
 That operation is not available on integers of more than %d bytes."),
-	   (int) sizeof (LONGEST));
+	   (int) sizeof (T));
 
   /* Start at the most significant end of the integer, and work towards
      the least significant.  */
   if (byte_order == BFD_ENDIAN_BIG)
     {
       p = startaddr;
-      /* Do the sign extension once at the start.  */
-      retval = ((LONGEST) * p ^ 0x80) - 0x80;
-      for (++p; p < endaddr; ++p)
+      if (std::is_signed<T>::value)
+	{
+	  /* Do the sign extension once at the start.  */
+	  retval = ((LONGEST) * p ^ 0x80) - 0x80;
+	  ++p;
+	}
+      for (; p < endaddr; ++p)
 	retval = (retval << 8) | *p;
     }
   else
     {
       p = endaddr - 1;
-      /* Do the sign extension once at the start.  */
-      retval = ((LONGEST) * p ^ 0x80) - 0x80;
-      for (--p; p >= startaddr; --p)
+      if (std::is_signed<T>::value)
+	{
+	  /* Do the sign extension once at the start.  */
+	  retval = ((LONGEST) * p ^ 0x80) - 0x80;
+	  --p;
+	}
+      for (; p >= startaddr; --p)
 	retval = (retval << 8) | *p;
     }
   return retval;
 }
 
-ULONGEST
-extract_unsigned_integer (const gdb_byte *addr, int len,
-			  enum bfd_endian byte_order)
-{
-  ULONGEST retval;
-  const unsigned char *p;
-  const unsigned char *startaddr = addr;
-  const unsigned char *endaddr = startaddr + len;
-
-  if (len > (int) sizeof (ULONGEST))
-    error (_("\
-That operation is not available on integers of more than %d bytes."),
-	   (int) sizeof (ULONGEST));
-
-  /* Start at the most significant end of the integer, and work towards
-     the least significant.  */
-  retval = 0;
-  if (byte_order == BFD_ENDIAN_BIG)
-    {
-      for (p = startaddr; p < endaddr; ++p)
-	retval = (retval << 8) | *p;
-    }
-  else
-    {
-      for (p = endaddr - 1; p >= startaddr; --p)
-	retval = (retval << 8) | *p;
-    }
-  return retval;
-}
+/* Explicit instantiations.  */
+template LONGEST extract_integer<LONGEST> (const gdb_byte *addr, int len,
+					   enum bfd_endian byte_order);
+template ULONGEST extract_integer<ULONGEST> (const gdb_byte *addr, int len,
+					     enum bfd_endian byte_order);
 
 /* Sometimes a long long unsigned integer can be extracted as a
    LONGEST value.  This is done so that we can print these values
@@ -179,10 +163,10 @@ extract_typed_address (const gdb_byte *b
 
 /* All 'store' functions accept a host-format integer and store a
    target-format integer at ADDR which is LEN bytes long.  */
-
+template<typename T, typename>
 void
-store_signed_integer (gdb_byte *addr, int len,
-		      enum bfd_endian byte_order, LONGEST val)
+store_integer (gdb_byte *addr, int len, enum bfd_endian byte_order,
+	       T val)
 {
   gdb_byte *p;
   gdb_byte *startaddr = addr;
@@ -208,33 +192,14 @@ store_signed_integer (gdb_byte *addr, in
     }
 }
 
-void
-store_unsigned_integer (gdb_byte *addr, int len,
-			enum bfd_endian byte_order, ULONGEST val)
-{
-  unsigned char *p;
-  unsigned char *startaddr = (unsigned char *) addr;
-  unsigned char *endaddr = startaddr + len;
-
-  /* Start at the least significant end of the integer, and work towards
-     the most significant.  */
-  if (byte_order == BFD_ENDIAN_BIG)
-    {
-      for (p = endaddr - 1; p >= startaddr; --p)
-	{
-	  *p = val & 0xff;
-	  val >>= 8;
-	}
-    }
-  else
-    {
-      for (p = startaddr; p < endaddr; ++p)
-	{
-	  *p = val & 0xff;
-	  val >>= 8;
-	}
-    }
-}
+/* Explicit instantiations.  */
+template void store_integer (gdb_byte *addr, int len,
+			     enum bfd_endian byte_order,
+			     LONGEST val);
+
+template void store_integer (gdb_byte *addr, int len,
+			     enum bfd_endian byte_order,
+			     ULONGEST val);
 
 /* Store the address ADDR as a pointer of type TYPE at BUF, in target
    form.  */
@@ -249,7 +214,46 @@ store_typed_address (gdb_byte *buf, stru
   gdbarch_address_to_pointer (get_type_arch (type), type, buf, addr);
 }
 
+/* Copy a value from SOURCE of size SOURCE_SIZE bytes to DEST of size DEST_SIZE
+   bytes.  If SOURCE_SIZE is greater than DEST_SIZE, then truncate the most
+   significant bytes.  If SOURCE_SIZE is less than DEST_SIZE then either sign
+   or zero extended according to IS_SIGNED.  Values are stored in memory with
+   endianess BYTE_ORDER.  */
 
+void
+copy_integer_to_size (gdb_byte *dest, int dest_size, const gdb_byte *source,
+		      int source_size, bool is_signed,
+		      enum bfd_endian byte_order)
+{
+  signed int size_diff = dest_size - source_size;
+
+  /* Copy across everything from SOURCE that can fit into DEST.  */
+
+  if (byte_order == BFD_ENDIAN_BIG && size_diff > 0)
+    memcpy (dest + size_diff, source, source_size);
+  else if (byte_order == BFD_ENDIAN_BIG && size_diff < 0)
+    memcpy (dest, source - size_diff, dest_size);
+  else
+    memcpy (dest, source, std::min (source_size, dest_size));
+
+  /* Fill the remaining space in DEST by either zero extending or sign
+     extending.  */
+
+  if (size_diff > 0)
+    {
+      gdb_byte extension = 0;
+      if (is_signed
+	  && ((byte_order != BFD_ENDIAN_BIG && source[source_size - 1] & 0x80)
+	      || (byte_order == BFD_ENDIAN_BIG && source[0] & 0x80)))
+	extension = 0xff;
+
+      /* Extend into MSBs of SOURCE.  */
+      if (byte_order == BFD_ENDIAN_BIG)
+	memset (dest, extension, size_diff);
+      else
+	memset (dest + source_size, extension, size_diff);
+    }
+}
 
 /* Return a `value' with the contents of (virtual or cooked) register
    REGNUM as found in the specified FRAME.  The register's type is
@@ -1005,3 +1009,93 @@ address_from_register (int regnum, struc
   return result;
 }
 
+#if GDB_SELF_TEST
+namespace selftests {
+namespace findvar_tests {
+
+/* Function to test copy_integer_to_size.  Store SOURCE_VAL with size
+   SOURCE_SIZE to a buffer, making sure no sign extending happens at this
+   stage.  Copy buffer to a new buffer using copy_integer_to_size.  Extract
+   copied value and compare to DEST_VALU.  Copy again with a signed
+   copy_integer_to_size and compare to DEST_VALS.  Do everything for both
+   LITTLE and BIG target endians.  Use unsigned values throughout to make
+   sure there are no implicit sign extensions.  */
+
+static void
+do_cint_test (ULONGEST dest_valu, ULONGEST dest_vals, int dest_size,
+	      ULONGEST src_val, int src_size)
+{
+  for (int i = 0; i < 2 ; i++)
+    {
+      gdb_byte srcbuf[sizeof (ULONGEST)] = {};
+      gdb_byte destbuf[sizeof (ULONGEST)] = {};
+      enum bfd_endian byte_order = i ? BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE;
+
+      /* Fill the src buffer (and later the dest buffer) with non-zero junk,
+	 to ensure zero extensions aren't hidden.  */
+      memset (srcbuf, 0xaa, sizeof (srcbuf));
+
+      /* Store (and later extract) using unsigned to ensure there are no sign
+	 extensions.  */
+      store_unsigned_integer (srcbuf, src_size, byte_order, src_val);
+
+      /* Test unsigned.  */
+      memset (destbuf, 0xaa, sizeof (destbuf));
+      copy_integer_to_size (destbuf, dest_size, srcbuf, src_size, false,
+			    byte_order);
+      SELF_CHECK (dest_valu == extract_unsigned_integer (destbuf, dest_size,
+							 byte_order));
+
+      /* Test signed.  */
+      memset (destbuf, 0xaa, sizeof (destbuf));
+      copy_integer_to_size (destbuf, dest_size, srcbuf, src_size, true,
+			    byte_order);
+      SELF_CHECK (dest_vals == extract_unsigned_integer (destbuf, dest_size,
+							 byte_order));
+    }
+}
+
+static void
+copy_integer_to_size_test ()
+{
+  /* Destination is bigger than the source, which has the signed bit unset.  */
+  do_cint_test (0x12345678, 0x12345678, 8, 0x12345678, 4);
+  do_cint_test (0x345678, 0x345678, 8, 0x12345678, 3);
+
+  /* Destination is bigger than the source, which has the signed bit set.  */
+  do_cint_test (0xdeadbeef, 0xffffffffdeadbeef, 8, 0xdeadbeef, 4);
+  do_cint_test (0xadbeef, 0xffffffffffadbeef, 8, 0xdeadbeef, 3);
+
+  /* Destination is smaller than the source.  */
+  do_cint_test (0x5678, 0x5678, 2, 0x12345678, 3);
+  do_cint_test (0xbeef, 0xbeef, 2, 0xdeadbeef, 3);
+
+  /* Destination and source are the same size.  */
+  do_cint_test (0x8765432112345678, 0x8765432112345678, 8, 0x8765432112345678,
+		8);
+  do_cint_test (0x432112345678, 0x432112345678, 6, 0x8765432112345678, 6);
+  do_cint_test (0xfeedbeaddeadbeef, 0xfeedbeaddeadbeef, 8, 0xfeedbeaddeadbeef,
+		8);
+  do_cint_test (0xbeaddeadbeef, 0xbeaddeadbeef, 6, 0xfeedbeaddeadbeef, 6);
+
+  /* Destination is bigger than the source.  Source is bigger than 32bits.  */
+  do_cint_test (0x3412345678, 0x3412345678, 8, 0x3412345678, 6);
+  do_cint_test (0xff12345678, 0xff12345678, 8, 0xff12345678, 6);
+  do_cint_test (0x432112345678, 0x432112345678, 8, 0x8765432112345678, 6);
+  do_cint_test (0xff2112345678, 0xffffff2112345678, 8, 0xffffff2112345678, 6);
+}
+
+} // namespace findvar_test
+} // namespace selftests
+
+#endif
+
+void
+_initialize_findvar (void)
+{
+#if GDB_SELF_TEST
+  selftests::register_test
+    ("copy_integer_to_size",
+     selftests::findvar_tests::copy_integer_to_size_test);
+#endif
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/f-lang.c ./gdb/f-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/f-lang.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/f-lang.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Fortran language support routines for GDB, the GNU debugger.
 
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    Contributed by Motorola.  Adapted from the C parser by Farooq Butt
    (fmbutt@engage.sps.mot.com).
@@ -37,8 +37,6 @@
 
 /* Local functions */
 
-extern void _initialize_f_language (void);
-
 static void f_printchar (int c, struct type *type, struct ui_file * stream);
 static void f_emit_char (int c, struct type *type,
 			 struct ui_file * stream, int quoter);
@@ -228,11 +226,16 @@ f_word_break_characters (void)
 /* Consider the modules separator :: as a valid symbol name character
    class.  */
 
-static VEC (char_ptr) *
-f_make_symbol_completion_list (const char *text, const char *word,
-			       enum type_code code)
-{
-  return default_make_symbol_completion_list_break_on (text, word, ":", code);
+static void
+f_collect_symbol_completion_matches (completion_tracker &tracker,
+				     complete_symbol_mode mode,
+				     symbol_name_match_type compare_name,
+				     const char *text, const char *word,
+				     enum type_code code)
+{
+  default_collect_symbol_completion_matches_break_on (tracker, mode,
+						      compare_name,
+						      text, word, ":", code);
 }
 
 static const char *f_extensions[] =
@@ -242,7 +245,7 @@ static const char *f_extensions[] =
   NULL
 };
 
-const struct language_defn f_language_defn =
+extern const struct language_defn f_language_defn =
 {
   "fortran",
   "Fortran",
@@ -282,13 +285,15 @@ const struct language_defn f_language_de
   0,				/* arrays are first-class (not c-style) */
   1,				/* String lower bound */
   f_word_break_characters,
-  f_make_symbol_completion_list,
+  f_collect_symbol_completion_matches,
   f_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
   default_get_string,
-  NULL,				/* la_get_symbol_name_cmp */
+  c_watch_location_expression,
+  NULL,				/* la_get_symbol_name_matcher */
   iterate_over_symbols,
+  default_search_name_hash,
   &default_varobj_ops,
   NULL,
   NULL,
@@ -302,7 +307,7 @@ build_fortran_types (struct gdbarch *gdb
     = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct builtin_f_type);
 
   builtin_f_type->builtin_void
-    = arch_type (gdbarch, TYPE_CODE_VOID, 1, "VOID");
+    = arch_type (gdbarch, TYPE_CODE_VOID, TARGET_CHAR_BIT, "VOID");
 
   builtin_f_type->builtin_character
     = arch_integer_type (gdbarch, TARGET_CHAR_BIT, 0, "character");
@@ -365,6 +370,4 @@ void
 _initialize_f_language (void)
 {
   f_type_data = gdbarch_data_register_post_init (build_fortran_types);
-
-  add_language (&f_language_defn);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/f-lang.h ./gdb/f-lang.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/f-lang.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/f-lang.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Fortran language support definitions for GDB, the GNU debugger.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    Contributed by Motorola.  Adapted from the C definitions by Farooq Butt
    (fmbutt@engage.sps.mot.com).
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/fork-child.c ./gdb/fork-child.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/fork-child.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/fork-child.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Fork a Unix child process, and set up to debug it, for GDB.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.
 
@@ -21,470 +21,64 @@
 
 #include "defs.h"
 #include "inferior.h"
+#include "gdbcmd.h"
 #include "terminal.h"
-#include "target.h"
-#include "gdb_wait.h"
-#include "gdb_vfork.h"
-#include "gdbcore.h"
 #include "gdbthread.h"
-#include "command.h" /* for dont_repeat () */
-#include "gdbcmd.h"
-#include "solib.h"
-#include "filestuff.h"
 #include "top.h"
-#include "signals-state-save-restore.h"
-#include <signal.h>
-#include <vector>
-
-/* This just gets used as a default if we can't find SHELL.  */
-#define SHELL_FILE "/bin/sh"
-
-extern char **environ;
-
-static char *exec_wrapper;
-
-/* Build the argument vector for execv(3).  */
-
-class execv_argv
-{
-public:
-  /* EXEC_FILE is the file to run.  ALLARGS is a string containing the
-     arguments to the program.  If starting with a shell, SHELL_FILE
-     is the shell to run.  Otherwise, SHELL_FILE is NULL.  */
-  execv_argv (const char *exec_file, const std::string &allargs,
-	      const char *shell_file);
-
-  /* Return a pointer to the built argv, in the type expected by
-     execv.  The result is (only) valid for as long as this execv_argv
-     object is live.  We return a "char **" because that's the type
-     that the execv functions expect.  Note that it is guaranteed that
-     the execv functions do not modify the argv[] array nor the
-     strings to which the array point.  */
-  char **argv ()
-  {
-    return const_cast<char **> (&m_argv[0]);
-  }
-
-private:
-  /* Disable copying.  */
-  execv_argv (const execv_argv &) = delete;
-  void operator= (const execv_argv &) = delete;
-
-  /* Helper methods for constructing the argument vector.  */
-
-  /* Used when building an argv for a straight execv call, without
-     going via the shell.  */
-  void init_for_no_shell (const char *exec_file,
-			  const std::string &allargs);
-
-  /* Used when building an argv for execing a shell that execs the
-     child program.  */
-  void init_for_shell (const char *exec_file,
-		       const std::string &allargs,
-		       const char *shell_file);
-
-  /* The argument vector built.  Holds non-owning pointers.  Elements
-     either point to the strings passed to the execv_argv ctor, or
-     inside M_STORAGE.  */
-  std::vector<const char *> m_argv;
-
-  /* Storage.  In the no-shell case, this contains a copy of the
-     arguments passed to the ctor, split by '\0'.  In the shell case,
-     this contains the quoted shell command.  I.e., SHELL_COMMAND in
-     {"$SHELL" "-c", SHELL_COMMAND, NULL}.  */
-  std::string m_storage;
-};
-
-/* Create argument vector for straight call to execvp.  Breaks up
-   ALLARGS into an argument vector suitable for passing to execvp and
-   stores it in M_ARGV.  E.g., on "run a b c d" this routine would get
-   as input the string "a b c d", and as output it would fill in
-   M_ARGV with the four arguments "a", "b", "c", "d".  Each argument
-   in M_ARGV points to a substring of a copy of ALLARGS stored in
-   M_STORAGE.  */
-
-void
-execv_argv::init_for_no_shell (const char *exec_file,
-			       const std::string &allargs)
-{
-
-  /* Save/work with a copy stored in our storage.  The pointers pushed
-     to M_ARGV point directly into M_STORAGE, which is modified in
-     place with the necessary NULL terminators.  This avoids N heap
-     allocations and string dups when 1 is sufficient.  */
-  std::string &args_copy = m_storage = allargs;
-
-  m_argv.push_back (exec_file);
-
-  for (size_t cur_pos = 0; cur_pos < args_copy.size ();)
-    {
-      /* Skip whitespace-like chars.  */
-      std::size_t pos = args_copy.find_first_not_of (" \t\n", cur_pos);
-
-      if (pos != std::string::npos)
-	cur_pos = pos;
-
-      /* Find the position of the next separator.  */
-      std::size_t next_sep = args_copy.find_first_of (" \t\n", cur_pos);
-
-      if (next_sep == std::string::npos)
-	{
-	  /* No separator found, which means this is the last
-	     argument.  */
-	  next_sep = args_copy.size ();
-	}
-      else
-	{
-	  /* Replace the separator with a terminator.  */
-	  args_copy[next_sep++] = '\0';
-	}
-
-      m_argv.push_back (&args_copy[cur_pos]);
-
-      cur_pos = next_sep;
-    }
-
-  /* NULL-terminate the vector.  */
-  m_argv.push_back (NULL);
-}
-
-/* When executing a command under the given shell, return true if the
-   '!' character should be escaped when embedded in a quoted
-   command-line argument.  */
-
-static bool
-escape_bang_in_quoted_argument (const char *shell_file)
-{
-  size_t shell_file_len = strlen (shell_file);
-
-  /* Bang should be escaped only in C Shells.  For now, simply check
-     that the shell name ends with 'csh', which covers at least csh
-     and tcsh.  This should be good enough for now.  */
-
-  if (shell_file_len < 3)
-    return false;
+#include "job-control.h"
+#include "filestuff.h"
+#include "nat/fork-inferior.h"
+#include "common/common-inferior.h"
 
-  if (shell_file[shell_file_len - 3] == 'c'
-      && shell_file[shell_file_len - 2] == 's'
-      && shell_file[shell_file_len - 1] == 'h')
-    return true;
+/* The exec-wrapper, if any, that will be used when starting the
+   inferior.  */
 
-  return false;
-}
+static char *exec_wrapper = NULL;
 
-/* See declaration.  */
+/* See common/common-inferior.h.  */
 
-execv_argv::execv_argv (const char *exec_file,
-			const std::string &allargs,
-			const char *shell_file)
+const char *
+get_exec_wrapper ()
 {
-  if (shell_file == NULL)
-    init_for_no_shell (exec_file, allargs);
-  else
-    init_for_shell (exec_file, allargs, shell_file);
+  return exec_wrapper;
 }
 
-/* See declaration.  */
+/* See nat/fork-inferior.h.  */
 
 void
-execv_argv::init_for_shell (const char *exec_file,
-			    const std::string &allargs,
-			    const char *shell_file)
+gdb_flush_out_err ()
 {
-  /* We're going to call a shell.  */
-  bool escape_bang = escape_bang_in_quoted_argument (shell_file);
-
-  /* We need to build a new shell command string, and make argv point
-     to it.  So build it in the storage.  */
-  std::string &shell_command = m_storage;
-
-  shell_command = "exec ";
-
-  /* Add any exec wrapper.  That may be a program name with arguments,
-     so the user must handle quoting.  */
-  if (exec_wrapper)
-    {
-      shell_command += exec_wrapper;
-      shell_command += ' ';
-    }
-
-  /* Now add exec_file, quoting as necessary.  */
-
-  /* Quoting in this style is said to work with all shells.  But csh
-     on IRIX 4.0.1 can't deal with it.  So we only quote it if we need
-     to.  */
-  bool need_to_quote;
-  const char *p = exec_file;
-  while (1)
-    {
-      switch (*p)
-	{
-	case '\'':
-	case '!':
-	case '"':
-	case '(':
-	case ')':
-	case '$':
-	case '&':
-	case ';':
-	case '<':
-	case '>':
-	case ' ':
-	case '\n':
-	case '\t':
-	  need_to_quote = true;
-	  goto end_scan;
-
-	case '\0':
-	  need_to_quote = false;
-	  goto end_scan;
-
-	default:
-	  break;
-	}
-      ++p;
-    }
- end_scan:
-  if (need_to_quote)
-    {
-      shell_command += '\'';
-      for (p = exec_file; *p != '\0'; ++p)
-	{
-	  if (*p == '\'')
-	    shell_command += "'\\''";
-	  else if (*p == '!' && escape_bang)
-	    shell_command += "\\!";
-	  else
-	    shell_command += *p;
-	}
-      shell_command += '\'';
-    }
-  else
-    shell_command += exec_file;
-
-  shell_command += ' ' + allargs;
-
-  /* If we decided above to start up with a shell, we exec the shell.
-     "-c" says to interpret the next arg as a shell command to
-     execute, and this command is "exec <target-program> <args>".  */
-  m_argv.reserve (4);
-  m_argv.push_back (shell_file);
-  m_argv.push_back ("-c");
-  m_argv.push_back (shell_command.c_str ());
-  m_argv.push_back (NULL);
+  gdb_flush (main_ui->m_gdb_stdout);
+  gdb_flush (main_ui->m_gdb_stderr);
 }
 
-/* See inferior.h.  */
-
-void
-trace_start_error (const char *fmt, ...)
-{
-  va_list ap;
-
-  va_start (ap, fmt);
-  fprintf_unfiltered (gdb_stderr, "Could not trace the inferior "
-		                  "process.\nError: ");
-  vfprintf_unfiltered (gdb_stderr, fmt, ap);
-  va_end (ap);
+/* The ui structure that will be saved on 'prefork_hook' and
+   restored on 'postfork_hook'.  */
+static struct ui *saved_ui = NULL;
 
-  gdb_flush (gdb_stderr);
-  _exit (0177);
-}
-
-/* See inferior.h.  */
+/* See nat/fork-inferior.h.  */
 
 void
-trace_start_error_with_name (const char *string)
-{
-  trace_start_error ("%s: %s", string, safe_strerror (errno));
-}
-
-/* Start an inferior Unix child process and sets inferior_ptid to its
-   pid.  EXEC_FILE is the file to run.  ALLARGS is a string containing
-   the arguments to the program.  ENV is the environment vector to
-   pass.  SHELL_FILE is the shell file, or NULL if we should pick
-   one.  EXEC_FUN is the exec(2) function to use, or NULL for the default
-   one.  */
-
-/* This function is NOT reentrant.  Some of the variables have been
-   made static to ensure that they survive the vfork call.  */
-
-int
-fork_inferior (const char *exec_file_arg, const std::string &allargs,
-	       char **env, void (*traceme_fun) (void),
-	       void (*init_trace_fun) (int), void (*pre_trace_fun) (void),
-	       char *shell_file_arg,
-               void (*exec_fun)(const char *file, char * const *argv,
-                                char * const *env))
+prefork_hook (const char *args)
 {
-  int pid;
-  static char default_shell_file[] = SHELL_FILE;
-  /* Set debug_fork then attach to the child while it sleeps, to debug.  */
-  static int debug_fork = 0;
-  /* This is set to the result of setpgrp, which if vforked, will be visible
-     to you in the parent process.  It's only used by humans for debugging.  */
-  static int debug_setpgrp = 657473;
-  static char *shell_file;
-  static const char *exec_file;
-  char **save_our_env;
   const char *inferior_io_terminal = get_inferior_io_terminal ();
-  struct inferior *inf;
-  int i;
-  int save_errno;
-  struct ui *save_ui;
-
-  /* If no exec file handed to us, get it from the exec-file command
-     -- with a good, common error message if none is specified.  */
-  if (exec_file_arg == NULL)
-    exec_file = get_exec_file (1);
-  else
-    exec_file = exec_file_arg;
-
-  /* 'startup_with_shell' is declared in inferior.h and bound to the
-     "set startup-with-shell" option.  If 0, we'll just do a
-     fork/exec, no shell, so don't bother figuring out what shell.  */
-  if (startup_with_shell)
-    {
-      shell_file = shell_file_arg;
-      /* Figure out what shell to start up the user program under.  */
-      if (shell_file == NULL)
-	shell_file = getenv ("SHELL");
-      if (shell_file == NULL)
-	shell_file = default_shell_file;
-    }
-  else
-    shell_file = NULL;
-
-  /* Build the argument vector.  */
-  execv_argv child_argv (exec_file, allargs, shell_file);
-
-  /* Retain a copy of our environment variables, since the child will
-     replace the value of environ and if we're vforked, we have to
-     restore it.  */
-  save_our_env = environ;
 
-  /* Likewise the current UI.  */
-  save_ui = current_ui;
+  gdb_assert (saved_ui == NULL);
+  /* Retain a copy of our UI, since the child will replace this value
+     and if we're vforked, we have to restore it.  */
+  saved_ui = current_ui;
 
   /* Tell the terminal handling subsystem what tty we plan to run on;
      it will just record the information for later.  */
   new_tty_prefork (inferior_io_terminal);
+}
 
-  /* It is generally good practice to flush any possible pending stdio
-     output prior to doing a fork, to avoid the possibility of both
-     the parent and child flushing the same data after the fork.  */
-  gdb_flush (main_ui->m_gdb_stdout);
-  gdb_flush (main_ui->m_gdb_stderr);
-
-  /* If there's any initialization of the target layers that must
-     happen to prepare to handle the child we're about fork, do it
-     now...  */
-  if (pre_trace_fun != NULL)
-    (*pre_trace_fun) ();
-
-  /* Create the child process.  Since the child process is going to
-     exec(3) shortly afterwards, try to reduce the overhead by
-     calling vfork(2).  However, if PRE_TRACE_FUN is non-null, it's
-     likely that this optimization won't work since there's too much
-     work to do between the vfork(2) and the exec(3).  This is known
-     to be the case on ttrace(2)-based HP-UX, where some handshaking
-     between parent and child needs to happen between fork(2) and
-     exec(2).  However, since the parent is suspended in the vforked
-     state, this doesn't work.  Also note that the vfork(2) call might
-     actually be a call to fork(2) due to the fact that autoconf will
-     ``#define vfork fork'' on certain platforms.  */
-  if (pre_trace_fun || debug_fork)
-    pid = fork ();
-  else
-    pid = vfork ();
-
-  if (pid < 0)
-    perror_with_name (("vfork"));
-
-  if (pid == 0)
-    {
-      /* Switch to the main UI, so that gdb_std{in/out/err} in the
-	 child are mapped to std{in/out/err}.  This makes it possible
-	 to use fprintf_unfiltered/warning/error/etc. in the child
-	 from here on.  */
-      current_ui = main_ui;
-
-      /* Close all file descriptors except those that gdb inherited
-	 (usually 0/1/2), so they don't leak to the inferior.  Note
-	 that this closes the file descriptors of all secondary
-	 UIs.  */
-      close_most_fds ();
-
-      if (debug_fork)
-	sleep (debug_fork);
-
-      /* Create a new session for the inferior process, if necessary.
-         It will also place the inferior in a separate process group.  */
-      if (create_tty_session () <= 0)
-	{
-	  /* No session was created, but we still want to run the inferior
-	     in a separate process group.  */
-	  debug_setpgrp = gdb_setpgid ();
-	  if (debug_setpgrp == -1)
-	    perror (_("setpgrp failed in child"));
-	}
-
-      /* Ask the tty subsystem to switch to the one we specified
-         earlier (or to share the current terminal, if none was
-         specified).  */
-      new_tty ();
-
-      /* Changing the signal handlers for the inferior after
-         a vfork can also change them for the superior, so we don't mess
-         with signals here.  See comments in
-         initialize_signals for how we get the right signal handlers
-         for the inferior.  */
-
-      /* "Trace me, Dr. Memory!"  */
-      (*traceme_fun) ();
-
-      /* The call above set this process (the "child") as debuggable
-        by the original gdb process (the "parent").  Since processes
-        (unlike people) can have only one parent, if you are debugging
-        gdb itself (and your debugger is thus _already_ the
-        controller/parent for this child), code from here on out is
-        undebuggable.  Indeed, you probably got an error message
-        saying "not parent".  Sorry; you'll have to use print
-        statements!  */
-
-      restore_original_signals_state ();
-
-      /* There is no execlpe call, so we have to set the environment
-         for our child in the global variable.  If we've vforked, this
-         clobbers the parent, but environ is restored a few lines down
-         in the parent.  By the way, yes we do need to look down the
-         path to find $SHELL.  Rich Pixley says so, and I agree.  */
-      environ = env;
-
-      char **argv = child_argv.argv ();
-
-      if (exec_fun != NULL)
-        (*exec_fun) (argv[0], &argv[0], env);
-      else
-        execvp (argv[0], &argv[0]);
-
-      /* If we get here, it's an error.  */
-      save_errno = errno;
-      fprintf_unfiltered (gdb_stderr, "Cannot exec %s", argv[0]);
-      for (i = 1; argv[i] != NULL; i++)
-	fprintf_unfiltered (gdb_stderr, " %s", argv[i]);
-      fprintf_unfiltered (gdb_stderr, ".\n");
-      fprintf_unfiltered (gdb_stderr, "Error: %s\n",
-			  safe_strerror (save_errno));
-      gdb_flush (gdb_stderr);
-      _exit (0177);
-    }
-
-  /* Restore our environment in case a vforked child clob'd it.  */
-  environ = save_our_env;
+/* See nat/fork-inferior.h.  */
 
-  /* Likewise the current UI.  */
-  current_ui = save_ui;
+void
+postfork_hook (pid_t pid)
+{
+  struct inferior *inf;
 
   if (!have_inferiors ())
     init_thread_list ();
@@ -493,153 +87,64 @@ fork_inferior (const char *exec_file_arg
 
   inferior_appeared (inf, pid);
 
-  /* Needed for wait_for_inferior stuff below.  */
+  /* Needed for wait_for_inferior stuff.  */
   inferior_ptid = pid_to_ptid (pid);
 
-  new_tty_postfork ();
+  gdb_assert (saved_ui != NULL);
+  current_ui = saved_ui;
+  saved_ui = NULL;
 
-  /* We have something that executes now.  We'll be running through
-     the shell at this point, but the pid shouldn't change.  Targets
-     supporting MT should fill this task's ptid with more data as soon
-     as they can.  */
-  add_thread_silent (inferior_ptid);
-
-  /* Now that we have a child process, make it our target, and
-     initialize anything target-vector-specific that needs
-     initializing.  */
-  if (init_trace_fun)
-    (*init_trace_fun) (pid);
-
-  /* We are now in the child process of interest, having exec'd the
-     correct program, and are poised at the first instruction of the
-     new program.  */
-  return pid;
+  new_tty_postfork ();
 }
 
-/* Accept NTRAPS traps from the inferior.  */
+/* See nat/fork-inferior.h.  */
 
 void
-startup_inferior (int ntraps)
+postfork_child_hook ()
 {
-  int pending_execs = ntraps;
-  int terminal_initted = 0;
-  ptid_t resume_ptid;
-
-  if (startup_with_shell)
-    {
-      /* One trap extra for exec'ing the shell.  */
-      pending_execs++;
-    }
-
-  if (target_supports_multi_process ())
-    resume_ptid = pid_to_ptid (ptid_get_pid (inferior_ptid));
-  else
-    resume_ptid = minus_one_ptid;
-
-  /* The process was started by the fork that created it, but it will
-     have stopped one instruction after execing the shell.  Here we
-     must get it up to actual execution of the real program.  */
+  /* This is set to the result of setpgrp, which if vforked, will be
+     visible to you in the parent process.  It's only used by humans
+     for debugging.  */
+  static int debug_setpgrp = 657473;
 
-  if (exec_wrapper)
-    pending_execs++;
+  /* Make sure we switch to main_ui here in order to be able to
+     use the fprintf_unfiltered/warning/error functions.  */
+  current_ui = main_ui;
+
+  /* Create a new session for the inferior process, if necessary.
+     It will also place the inferior in a separate process group.  */
+  if (create_tty_session () <= 0)
+    {
+      /* No session was created, but we still want to run the inferior
+	 in a separate process group.  */
+      debug_setpgrp = gdb_setpgid ();
+      if (debug_setpgrp == -1)
+	perror (_("setpgrp failed in child"));
+    }
+
+  /* Ask the tty subsystem to switch to the one we specified
+     earlier (or to share the current terminal, if none was
+     specified).  */
+  new_tty ();
+}
 
-  while (1)
-    {
-      enum gdb_signal resume_signal = GDB_SIGNAL_0;
-      ptid_t event_ptid;
+/* See inferior.h.  */
 
-      struct target_waitstatus ws;
-      memset (&ws, 0, sizeof (ws));
-      event_ptid = target_wait (resume_ptid, &ws, 0);
-
-      if (ws.kind == TARGET_WAITKIND_IGNORE)
-	/* The inferior didn't really stop, keep waiting.  */
-	continue;
-
-      switch (ws.kind)
-	{
-	  case TARGET_WAITKIND_SPURIOUS:
-	  case TARGET_WAITKIND_LOADED:
-	  case TARGET_WAITKIND_FORKED:
-	  case TARGET_WAITKIND_VFORKED:
-	  case TARGET_WAITKIND_SYSCALL_ENTRY:
-	  case TARGET_WAITKIND_SYSCALL_RETURN:
-	    /* Ignore gracefully during startup of the inferior.  */
-	    switch_to_thread (event_ptid);
-	    break;
-
-	  case TARGET_WAITKIND_SIGNALLED:
-	    target_terminal_ours ();
-	    target_mourn_inferior (event_ptid);
-	    error (_("During startup program terminated with signal %s, %s."),
-		   gdb_signal_to_name (ws.value.sig),
-		   gdb_signal_to_string (ws.value.sig));
-	    return;
-
-	  case TARGET_WAITKIND_EXITED:
-	    target_terminal_ours ();
-	    target_mourn_inferior (event_ptid);
-	    if (ws.value.integer)
-	      error (_("During startup program exited with code %d."),
-		     ws.value.integer);
-	    else
-	      error (_("During startup program exited normally."));
-	    return;
-
-	  case TARGET_WAITKIND_EXECD:
-	    /* Handle EXEC signals as if they were SIGTRAP signals.  */
-	    xfree (ws.value.execd_pathname);
-	    resume_signal = GDB_SIGNAL_TRAP;
-	    switch_to_thread (event_ptid);
-	    break;
-
-	  case TARGET_WAITKIND_STOPPED:
-	    resume_signal = ws.value.sig;
-	    switch_to_thread (event_ptid);
-	    break;
-	}
-
-      if (resume_signal != GDB_SIGNAL_TRAP)
-	{
-	  /* Let shell child handle its own signals in its own way.  */
-	  target_continue (resume_ptid, resume_signal);
-	}
-      else
-	{
-	  /* We handle SIGTRAP, however; it means child did an exec.  */
-	  if (!terminal_initted)
-	    {
-	      /* Now that the child has exec'd we know it has already
-	         set its process group.  On POSIX systems, tcsetpgrp
-	         will fail with EPERM if we try it before the child's
-	         setpgid.  */
-
-	      /* Set up the "saved terminal modes" of the inferior
-	         based on what modes we are starting it with.  */
-	      target_terminal_init ();
-
-	      /* Install inferior's terminal modes.  */
-	      target_terminal_inferior ();
-
-	      terminal_initted = 1;
-	    }
-
-	  if (--pending_execs == 0)
-	    break;
-
-	  /* Just make it go on.  */
-	  target_continue_no_signal (resume_ptid);
-	}
-    }
+ptid_t
+gdb_startup_inferior (pid_t pid, int num_traps)
+{
+  ptid_t ptid = startup_inferior (pid, num_traps, NULL, NULL);
 
   /* Mark all threads non-executing.  */
-  set_executing (resume_ptid, 0);
+  set_executing (ptid, 0);
+
+  return ptid;
 }
 
 /* Implement the "unset exec-wrapper" command.  */
 
 static void
-unset_exec_wrapper_command (char *args, int from_tty)
+unset_exec_wrapper_command (const char *args, int from_tty)
 {
   xfree (exec_wrapper);
   exec_wrapper = NULL;
@@ -654,9 +159,6 @@ show_startup_with_shell (struct ui_file 
 		    value);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_fork_child;
-
 void
 _initialize_fork_child (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frame-base.c ./gdb/frame-base.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frame-base.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/frame-base.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for frame address handler, for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -120,8 +120,6 @@ frame_base_find_by_frame (struct frame_i
   return table->default_base;
 }
 
-extern initialize_file_ftype _initialize_frame_base; /* -Wmissing-prototypes */
-
 void
 _initialize_frame_base (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frame-base.h ./gdb/frame-base.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frame-base.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/frame-base.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for a frame base, for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frame.c ./gdb/frame.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frame.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/frame.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Cache and manage frames for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -99,7 +99,7 @@ struct frame_info
   struct program_space *pspace;
 
   /* The frame's address space.  */
-  struct address_space *aspace;
+  const address_space *aspace;
 
   /* The frame's low-level unwinder and corresponding cache.  The
      low-level unwinder is responsible for unwinding register values
@@ -1017,16 +1017,13 @@ do_frame_register_read (void *src, int r
     return REG_VALID;
 }
 
-struct regcache *
+std::unique_ptr<struct regcache>
 frame_save_as_regcache (struct frame_info *this_frame)
 {
-  struct address_space *aspace = get_frame_address_space (this_frame);
-  struct regcache *regcache = regcache_xmalloc (get_frame_arch (this_frame),
-						aspace);
-  struct cleanup *cleanups = make_cleanup_regcache_xfree (regcache);
+  std::unique_ptr<struct regcache> regcache
+    (new struct regcache (get_frame_arch (this_frame)));
 
-  regcache_save (regcache, do_frame_register_read, this_frame);
-  discard_cleanups (cleanups);
+  regcache_save (regcache.get (), do_frame_register_read, this_frame);
   return regcache;
 }
 
@@ -1034,8 +1031,6 @@ void
 frame_pop (struct frame_info *this_frame)
 {
   struct frame_info *prev_frame;
-  struct regcache *scratch;
-  struct cleanup *cleanups;
 
   if (get_frame_type (this_frame) == DUMMY_FRAME)
     {
@@ -1062,8 +1057,8 @@ frame_pop (struct frame_info *this_frame
      Save them in a scratch buffer so that there isn't a race between
      trying to extract the old values from the current regcache while
      at the same time writing new values into that same cache.  */
-  scratch = frame_save_as_regcache (prev_frame);
-  cleanups = make_cleanup_regcache_xfree (scratch);
+  std::unique_ptr<struct regcache> scratch
+    = frame_save_as_regcache (prev_frame);
 
   /* FIXME: cagney/2003-03-16: It should be possible to tell the
      target's register cache that it is about to be hit with a burst
@@ -1075,8 +1070,7 @@ frame_pop (struct frame_info *this_frame
      (arguably a bug in the target code mind).  */
   /* Now copy those saved registers into the current regcache.
      Here, regcache_cpy() calls regcache_restore().  */
-  regcache_cpy (get_current_regcache (), scratch);
-  do_cleanups (cleanups);
+  regcache_cpy (get_current_regcache (), scratch.get ());
 
   /* We've made right mess of GDB's local state, just discard
      everything.  */
@@ -1252,10 +1246,27 @@ frame_unwind_register_signed (struct fra
   struct gdbarch *gdbarch = frame_unwind_arch (frame);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int size = register_size (gdbarch, regnum);
-  gdb_byte buf[MAX_REGISTER_SIZE];
+  struct value *value = frame_unwind_register_value (frame, regnum);
+
+  gdb_assert (value != NULL);
+
+  if (value_optimized_out (value))
+    {
+      throw_error (OPTIMIZED_OUT_ERROR,
+		   _("Register %d was not saved"), regnum);
+    }
+  if (!value_entirely_available (value))
+    {
+      throw_error (NOT_AVAILABLE_ERROR,
+		   _("Register %d is not available"), regnum);
+    }
+
+  LONGEST r = extract_signed_integer (value_contents_all (value), size,
+				      byte_order);
 
-  frame_unwind_register (frame, regnum, buf);
-  return extract_signed_integer (buf, size, byte_order);
+  release_value (value);
+  value_free (value);
+  return r;
 }
 
 LONGEST
@@ -1509,7 +1520,7 @@ create_sentinel_frame (struct program_sp
 
   frame->level = -1;
   frame->pspace = pspace;
-  frame->aspace = get_regcache_aspace (regcache);
+  frame->aspace = regcache->aspace ();
   /* Explicitly initialize the sentinel frame's cache.  Provide it
      with the underlying regcache.  In the future additional
      information, such as the frame's thread will be added.  */
@@ -2472,8 +2483,8 @@ get_frame_address_in_block_if_available 
   return 1;
 }
 
-void
-find_frame_sal (struct frame_info *frame, struct symtab_and_line *sal)
+symtab_and_line
+find_frame_sal (frame_info *frame)
 {
   struct frame_info *next_frame;
   int notcurrent;
@@ -2494,21 +2505,21 @@ find_frame_sal (struct frame_info *frame
 
       /* If frame is inline, it certainly has symbols.  */
       gdb_assert (sym);
-      init_sal (sal);
+
+      symtab_and_line sal;
       if (SYMBOL_LINE (sym) != 0)
 	{
-	  sal->symtab = symbol_symtab (sym);
-	  sal->line = SYMBOL_LINE (sym);
+	  sal.symtab = symbol_symtab (sym);
+	  sal.line = SYMBOL_LINE (sym);
 	}
       else
 	/* If the symbol does not have a location, we don't know where
 	   the call site is.  Do not pretend to.  This is jarring, but
 	   we can't do much better.  */
-	sal->pc = get_frame_pc (frame);
-
-      sal->pspace = get_frame_program_space (frame);
+	sal.pc = get_frame_pc (frame);
 
-      return;
+      sal.pspace = get_frame_program_space (frame);
+      return sal;
     }
 
   /* If FRAME is not the innermost frame, that normally means that
@@ -2521,13 +2532,10 @@ find_frame_sal (struct frame_info *frame
      instruction/line, consequently, for such cases, want to get the
      line containing fi->pc.  */
   if (!get_frame_pc_if_available (frame, &pc))
-    {
-      init_sal (sal);
-      return;
-    }
+    return {};
 
   notcurrent = (pc != get_frame_address_in_block (frame));
-  (*sal) = find_pc_line (pc, notcurrent);
+  return find_pc_line (pc, notcurrent);
 }
 
 /* Per "frame.h", return the ``address'' of the frame.  Code should
@@ -2634,7 +2642,7 @@ frame_unwind_program_space (struct frame
   return this_frame->pspace;
 }
 
-struct address_space *
+const address_space *
 get_frame_address_space (struct frame_info *frame)
 {
   return frame->aspace;
@@ -2855,11 +2863,9 @@ frame_stop_reason_symbol_string (enum un
 /* Clean up after a failed (wrong unwinder) attempt to unwind past
    FRAME.  */
 
-static void
-frame_cleanup_after_sniffer (void *arg)
+void
+frame_cleanup_after_sniffer (struct frame_info *frame)
 {
-  struct frame_info *frame = (struct frame_info *) arg;
-
   /* The sniffer should not allocate a prologue cache if it did not
      match this frame.  */
   gdb_assert (frame->prologue_cache == NULL);
@@ -2884,32 +2890,29 @@ frame_cleanup_after_sniffer (void *arg)
 }
 
 /* Set FRAME's unwinder temporarily, so that we can call a sniffer.
-   Return a cleanup which should be called if unwinding fails, and
-   discarded if it succeeds.  */
+   If sniffing fails, the caller should be sure to call
+   frame_cleanup_after_sniffer.  */
 
-struct cleanup *
+void
 frame_prepare_for_sniffer (struct frame_info *frame,
 			   const struct frame_unwind *unwind)
 {
   gdb_assert (frame->unwind == NULL);
   frame->unwind = unwind;
-  return make_cleanup (frame_cleanup_after_sniffer, frame);
 }
 
-extern initialize_file_ftype _initialize_frame; /* -Wmissing-prototypes */
-
 static struct cmd_list_element *set_backtrace_cmdlist;
 static struct cmd_list_element *show_backtrace_cmdlist;
 
 static void
-set_backtrace_cmd (char *args, int from_tty)
+set_backtrace_cmd (const char *args, int from_tty)
 {
   help_list (set_backtrace_cmdlist, "set backtrace ", all_commands,
 	     gdb_stdout);
 }
 
 static void
-show_backtrace_cmd (char *args, int from_tty)
+show_backtrace_cmd (const char *args, int from_tty)
 {
   cmd_show_list (show_backtrace_cmdlist, from_tty, "");
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frame.h ./gdb/frame.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frame.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/frame.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for dealing with stack frames, for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -408,8 +408,7 @@ extern int get_frame_func_if_available (
    find_frame_symtab(), find_frame_function().  Each will need to be
    carefully considered to determine if the real intent was for it to
    apply to the PC or the adjusted PC.  */
-extern void find_frame_sal (struct frame_info *frame,
-			    struct symtab_and_line *sal);
+extern symtab_and_line find_frame_sal (frame_info *frame);
 
 /* Set the current source and line to the location given by frame
    FRAME, if possible.  */
@@ -495,8 +494,10 @@ extern struct program_space *get_frame_p
 /* Unwind THIS frame's program space from the NEXT frame.  */
 extern struct program_space *frame_unwind_program_space (struct frame_info *);
 
+class address_space;
+
 /* Return the frame's address space.  */
-extern struct address_space *get_frame_address_space (struct frame_info *);
+extern const address_space *get_frame_address_space (struct frame_info *);
 
 /* For frames where we can not unwind further, describe why.  */
 
@@ -680,7 +681,8 @@ extern void *frame_obstack_zalloc (unsig
   ((TYPE *) frame_obstack_zalloc ((NUMBER) * sizeof (TYPE)))
 
 /* Create a regcache, and copy the frame's registers into it.  */
-struct regcache *frame_save_as_regcache (struct frame_info *this_frame);
+std::unique_ptr<struct regcache> frame_save_as_regcache
+    (struct frame_info *this_frame);
 
 extern const struct block *get_frame_block (struct frame_info *,
 					    CORE_ADDR *addr_in_block);
@@ -784,18 +786,23 @@ extern void read_frame_arg (struct symbo
 extern void read_frame_local (struct symbol *sym, struct frame_info *frame,
 			      struct frame_arg *argp);
 
-extern void args_info (char *, int);
+extern void info_args_command (const char *, int);
 
-extern void locals_info (char *, int);
+extern void info_locals_command (const char *, int);
 
-extern void return_command (char *, int);
+extern void return_command (const char *, int);
 
 /* Set FRAME's unwinder temporarily, so that we can call a sniffer.
-   Return a cleanup which should be called if unwinding fails, and
-   discarded if it succeeds.  */
+   If sniffing fails, the caller should be sure to call
+   frame_cleanup_after_sniffer.  */
+
+extern void frame_prepare_for_sniffer (struct frame_info *frame,
+				       const struct frame_unwind *unwind);
+
+/* Clean up after a failed (wrong unwinder) attempt to unwind past
+   FRAME.  */
 
-struct cleanup *frame_prepare_for_sniffer (struct frame_info *frame,
-					   const struct frame_unwind *unwind);
+extern void frame_cleanup_after_sniffer (struct frame_info *frame);
 
 /* Notes (cagney/2002-11-27, drow/2003-09-06):
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frame-unwind.c ./gdb/frame-unwind.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frame-unwind.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/frame-unwind.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for frame unwinder, for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -97,24 +97,26 @@ static int
 frame_unwind_try_unwinder (struct frame_info *this_frame, void **this_cache,
                           const struct frame_unwind *unwinder)
 {
-  struct cleanup *old_cleanup;
   int res = 0;
 
-  old_cleanup = frame_prepare_for_sniffer (this_frame, unwinder);
+  frame_prepare_for_sniffer (this_frame, unwinder);
 
   TRY
     {
       res = unwinder->sniffer (unwinder, this_frame, this_cache);
     }
-  CATCH (ex, RETURN_MASK_ERROR)
+  CATCH (ex, RETURN_MASK_ALL)
     {
+      /* Catch all exceptions, caused by either interrupt or error.
+	 Reset *THIS_CACHE.  */
+      *this_cache = NULL;
       if (ex.error == NOT_AVAILABLE_ERROR)
 	{
 	  /* This usually means that not even the PC is available,
 	     thus most unwinders aren't able to determine if they're
 	     the best fit.  Keep trying.  Fallback prologue unwinders
 	     should always accept the frame.  */
-	  do_cleanups (old_cleanup);
+	  frame_cleanup_after_sniffer (this_frame);
 	  return 0;
 	}
       throw_exception (ex);
@@ -122,13 +124,12 @@ frame_unwind_try_unwinder (struct frame_
   END_CATCH
 
   if (res)
-    {
-      discard_cleanups (old_cleanup);
-      return 1;
-    }
+    return 1;
   else
     {
-      do_cleanups (old_cleanup);
+      /* Don't set *THIS_CACHE to NULL here, because sniffer has to do
+	 so.  */
+      frame_cleanup_after_sniffer (this_frame);
       return 0;
     }
   gdb_assert_not_reached ("frame_unwind_try_unwinder");
@@ -283,9 +284,6 @@ frame_unwind_got_address (struct frame_i
   return reg_val;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_frame_unwind;
-
 void
 _initialize_frame_unwind (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frame-unwind.h ./gdb/frame-unwind.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frame-unwind.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/frame-unwind.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for a frame unwinder, for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -46,7 +46,8 @@ struct value;
    the PC and attributes) and if SELF is the applicable unwinder,
    return non-zero.  Possibly also initialize THIS_PROLOGUE_CACHE; but
    only if returning 1.  Initializing THIS_PROLOGUE_CACHE in other
-   cases (0 return, or exception) is invalid.  */
+   cases (0 return) is invalid.  In case of exception, the caller has
+   to set *THIS_PROLOGUE_CACHE to NULL.  */
 
 typedef int (frame_sniffer_ftype) (const struct frame_unwind *self,
 				   struct frame_info *this_frame,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frv-linux-tdep.c ./gdb/frv-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frv-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/frv-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Target-dependent code for GNU/Linux running on the Fujitsu FR-V,
    for GDB.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -413,17 +413,14 @@ frv_linux_supply_gregset (const struct r
 			  int regnum, const void *gregs, size_t len)
 {
   int regi;
-  char zerobuf[MAX_REGISTER_SIZE];
-
-  memset (zerobuf, 0, MAX_REGISTER_SIZE);
 
   /* gr0 always contains 0.  Also, the kernel passes the TBR value in
      this slot.  */
-  regcache_raw_supply (regcache, first_gpr_regnum, zerobuf);
+  regcache->raw_supply_zeroed (first_gpr_regnum);
 
   /* Fill gr32, ..., gr63 with zeros. */
   for (regi = first_gpr_regnum + 32; regi <= last_gpr_regnum; regi++)
-    regcache_raw_supply (regcache, regi, zerobuf);
+    regcache->raw_supply_zeroed (regi);
 
   regcache_supply_regset (regset, regcache, regnum, gregs, len);
 }
@@ -483,9 +480,6 @@ frv_linux_elf_osabi_sniffer (bfd *abfd)
     return GDB_OSABI_UNKNOWN;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_frv_linux_tdep (void);
-
 void
 _initialize_frv_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frv-tdep.c ./gdb/frv-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frv-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/frv-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Fujitsu FR-V, for GDB, the GNU Debugger.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -39,8 +39,6 @@
 #include "frv-tdep.h"
 #include "objfiles.h"
 
-extern void _initialize_frv_tdep (void);
-
 struct frv_unwind_cache		/* was struct frame_extra_info */
   {
     /* The previous frame's inner-most stack address.  Used as this
@@ -1112,7 +1110,7 @@ static void
 frv_extract_return_value (struct type *type, struct regcache *regcache,
                           gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int len = TYPE_LENGTH (type);
 
@@ -1582,7 +1580,6 @@ frv_gdbarch_init (struct gdbarch_info in
       break;
     }
 
-  set_gdbarch_print_insn (gdbarch, print_insn_frv);
   if (frv_abi (gdbarch) == FRV_ABI_FDPIC)
     set_gdbarch_convert_from_func_ptr_addr (gdbarch,
 					    frv_convert_from_func_ptr_addr);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frv-tdep.h ./gdb/frv-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/frv-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/frv-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Architecture-dependent code for the Fujitsu FR-V, for GDB, the GNU Debugger.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ft32-tdep.c ./gdb/ft32-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ft32-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ft32-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for FT32.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -45,10 +45,6 @@
 
 #define RAM_BIAS  0x800000  /* Bias added to RAM addresses.  */
 
-/* Local functions.  */
-
-extern void _initialize_ft32_tdep (void);
-
 /* Use an invalid address -1 as 'not available' marker.  */
 enum { REG_UNAVAIL = (CORE_ADDR) (-1) };
 
@@ -127,7 +123,7 @@ static void
 ft32_store_return_value (struct type *type, struct regcache *regcache,
 			 const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR regval;
   int len = TYPE_LENGTH (type);
@@ -143,6 +139,25 @@ ft32_store_return_value (struct type *ty
     }
 }
 
+/* Fetch a single 32-bit instruction from address a. If memory contains
+   a compressed instruction pair, return the expanded instruction.  */
+
+static ULONGEST
+ft32_fetch_instruction (CORE_ADDR a, int *isize,
+		        enum bfd_endian byte_order)
+{
+  unsigned int sc[2];
+  ULONGEST inst;
+
+  CORE_ADDR a4 = a & ~3;
+  inst = read_code_unsigned_integer (a4, 4, byte_order);
+  *isize = ft32_decode_shortcode (a4, inst, sc) ? 2 : 4;
+  if (*isize == 2)
+    return sc[1 & (a >> 1)];
+  else
+    return inst;
+}
+
 /* Decode the instructions within the given address range.  Decide
    when we must have reached the end of the function prologue.  If a
    frame_info pointer is provided, fill in its saved_regs etc.
@@ -157,6 +172,7 @@ ft32_analyze_prologue (CORE_ADDR start_a
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR next_addr;
   ULONGEST inst;
+  int isize = 0;
   int regnum, pushreg;
   struct bound_minimal_symbol msymbol;
   const int first_saved_reg = 13;	/* The first saved register.  */
@@ -190,16 +206,15 @@ ft32_analyze_prologue (CORE_ADDR start_a
     return end_addr;
 
   cache->established = 0;
-  for (next_addr = start_addr; next_addr < end_addr;)
+  for (next_addr = start_addr; next_addr < end_addr; next_addr += isize)
     {
-      inst = read_memory_unsigned_integer (next_addr, 4, byte_order);
+      inst = ft32_fetch_instruction (next_addr, &isize, byte_order);
 
       if (FT32_IS_PUSH (inst))
 	{
 	  pushreg = FT32_PUSH_REG (inst);
 	  cache->framesize += 4;
 	  cache->saved_regs[FT32_R0_REGNUM + pushreg] = cache->framesize;
-	  next_addr += 4;
 	}
       else if (FT32_IS_CALL (inst))
 	{
@@ -214,7 +229,6 @@ ft32_analyze_prologue (CORE_ADDR start_a
 		      cache->saved_regs[FT32_R0_REGNUM + pushreg] =
 			cache->framesize;
 		    }
-		  next_addr += 4;
 		}
 	    }
 	  break;
@@ -233,7 +247,7 @@ ft32_analyze_prologue (CORE_ADDR start_a
   /* It is a LINK?  */
   if (next_addr < end_addr)
     {
-      inst = read_memory_unsigned_integer (next_addr, 4, byte_order);
+      inst = ft32_fetch_instruction (next_addr, &isize, byte_order);
       if (FT32_IS_LINK (inst))
 	{
 	  cache->established = 1;
@@ -245,7 +259,7 @@ ft32_analyze_prologue (CORE_ADDR start_a
 	  cache->saved_regs[FT32_PC_REGNUM] = cache->framesize + 4;
 	  cache->saved_regs[FT32_FP_REGNUM] = 0;
 	  cache->framesize += FT32_LINK_SIZE (inst);
-	  next_addr += 4;
+	  next_addr += isize;
 	}
     }
 
@@ -404,7 +418,7 @@ static void
 ft32_extract_return_value (struct type *type, struct regcache *regcache,
 			   gdb_byte *dst)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   bfd_byte *valbuf = dst;
   int len = TYPE_LENGTH (type);
@@ -597,12 +611,12 @@ ft32_gdbarch_init (struct gdbarch_info i
     return arches->gdbarch;
 
   /* Allocate space for the new architecture.  */
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
 
   /* Create a type for PC.  We can't use builtin types here, as they may not
      be defined.  */
-  void_type = arch_type (gdbarch, TYPE_CODE_VOID, 1, "void");
+  void_type = arch_type (gdbarch, TYPE_CODE_VOID, TARGET_CHAR_BIT, "void");
   func_void_type = make_function_type (void_type, NULL);
   tdep->pc_type = arch_pointer_type (gdbarch, 4 * TARGET_CHAR_BIT, NULL,
 				     func_void_type);
@@ -637,8 +651,6 @@ ft32_gdbarch_init (struct gdbarch_info i
 
   set_gdbarch_unwind_pc (gdbarch, ft32_unwind_pc);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_ft32);
-
   /* Hook in ABI-specific overrides, if they have been registered.  */
   gdbarch_init_osabi (info, gdbarch);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ft32-tdep.h ./gdb/ft32-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ft32-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ft32-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the FT32.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/f-typeprint.c ./gdb/f-typeprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/f-typeprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/f-typeprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support for printing Fortran types for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    Contributed by Motorola.  Adapted from the C version by Farooq Butt
    (fmbutt@engage.sps.mot.com).
@@ -304,18 +304,23 @@ f_type_print_base (struct type *type, st
       break;
 
     case TYPE_CODE_ARRAY:
-    case TYPE_CODE_FUNC:
       f_type_print_base (TYPE_TARGET_TYPE (type), stream, show, level);
       break;
+    case TYPE_CODE_FUNC:
+      if (TYPE_TARGET_TYPE (type) == NULL)
+	type_print_unknown_return_type (stream);
+      else
+	f_type_print_base (TYPE_TARGET_TYPE (type), stream, show, level);
+      break;
 
     case TYPE_CODE_PTR:
-      fprintf_filtered (stream, "PTR TO -> ( ");
-      f_type_print_base (TYPE_TARGET_TYPE (type), stream, show, level);
+      fprintfi_filtered (level, stream, "PTR TO -> ( ");
+      f_type_print_base (TYPE_TARGET_TYPE (type), stream, show, 0);
       break;
 
     case TYPE_CODE_REF:
-      fprintf_filtered (stream, "REF TO -> ( ");
-      f_type_print_base (TYPE_TARGET_TYPE (type), stream, show, level);
+      fprintfi_filtered (level, stream, "REF TO -> ( ");
+      f_type_print_base (TYPE_TARGET_TYPE (type), stream, show, 0);
       break;
 
     case TYPE_CODE_VOID:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/f-valprint.c ./gdb/f-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/f-valprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/f-valprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support for printing Fortran values for GDB, the GNU debugger.
 
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    Contributed by Motorola.  Adapted from the C definitions by Farooq Butt
    (fmbutt@engage.sps.mot.com), additionally worked over by Stan Shebs.
@@ -34,8 +34,6 @@
 #include "block.h"
 #include "dictionary.h"
 
-extern void _initialize_f_valprint (void);
-static void info_common_command (char *, int);
 static void f77_get_dynamic_length_of_aggregate (struct type *);
 
 int f77_array_offset_tbl[MAX_FORTRAN_DIMS + 1][2];
@@ -216,7 +214,6 @@ f_val_print (struct type *type, int embe
 	     const struct value_print_options *options)
 {
   struct gdbarch *gdbarch = get_type_arch (type);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int printed_field = 0; /* Number of fields printed.  */
   struct type *elttype;
   CORE_ADDR addr;
@@ -310,21 +307,8 @@ f_val_print (struct type *type, int embe
 				      original_value, &opts, 0, stream);
 	}
       else
-	{
-	  val_print_type_code_int (type, valaddr + embedded_offset, stream);
-	  /* C and C++ has no single byte int type, char is used instead.
-	     Since we don't know whether the value is really intended to
-	     be used as an integer or a character, print the character
-	     equivalent as well.  */
-	  if (TYPE_LENGTH (type) == 1)
-	    {
-	      LONGEST c;
-
-	      fputs_filtered (" ", stream);
-	      c = unpack_long (type, valaddr + embedded_offset);
-	      LA_PRINT_CHAR ((unsigned char) c, type, stream);
-	    }
-	}
+	val_print_scalar_formatted (type, embedded_offset,
+				    original_value, options, 0, stream);
       break;
 
     case TYPE_CODE_STRUCT:
@@ -391,7 +375,6 @@ info_common_command_for_block (const str
 {
   struct block_iterator iter;
   struct symbol *sym;
-  const char *name;
   struct value_print_options opts;
 
   get_user_print_options (&opts);
@@ -447,7 +430,7 @@ info_common_command_for_block (const str
    given name.  */
 
 static void
-info_common_command (char *comname, int from_tty)
+info_common_command (const char *comname, int from_tty)
 {
   struct frame_info *fi;
   const struct block *block;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gcore ./gdb/gcore
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gcore	2018-01-02 02:06:25.000000000 +0000
+++ ./gdb/gcore	2018-01-09 02:08:02.000000000 +0000
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-#   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2003-2018 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
@@ -20,27 +20,39 @@
 # It starts up gdb, attaches to the given PID and invokes the gcore command.
 #
 
-if [ "$#" -eq "0" ]
-then
-    echo "usage:  i386-pc-linux-gnu-gcore [-o filename] pid"
-    exit 2
-fi
-
 # Need to check for -o option, but set default basename to "core".
 name=core
 
-if [ "$1" = "-o" ]
-then
-    if [ "$#" -lt "3" ]
-    then
-	# Not enough arguments.
-	echo "usage:  i386-pc-linux-gnu-gcore [-o filename] pid"
-	exit 2
-    fi
-    name=$2
+# When the -a option is present, this may hold additional commands
+# to ensure gdb dumps all mappings (OS dependent).
+dump_all_cmds=()
+
+while getopts :ao: opt; do
+    case $opt in
+        a)
+            case $OSTYPE in
+                linux*)
+                    dump_all_cmds=("-ex" "set use-coredump-filter off")
+                    dump_all_cmds+=("-ex" "set dump-excluded-mappings on")
+                    ;;
+            esac
+            ;;
+        o)
+            name=$OPTARG
+            ;;
+        *)
+            echo "usage:  i386-pc-linux-gnu-gcore [-a] [-o filename] pid"
+            exit 2
+            ;;
+    esac
+done
+
+shift $((OPTIND-1))
 
-    # Shift over to start of pid list
-    shift; shift
+if [ "$#" -eq "0" ]
+then
+    echo "usage:  i386-pc-linux-gnu-gcore [-a] [-o filename] pid"
+    exit 2
 fi
 
 # Attempt to fetch the absolute path to the gcore script that was
@@ -87,6 +99,7 @@ do
 	# available but not accessible as GDB would get stopped on SIGTTIN.
 	$binary_path/i386-pc-linux-gnu-gdb </dev/null --nx --batch \
 	    -ex "set pagination off" -ex "set height 0" -ex "set width 0" \
+	    "${dump_all_cmds[@]}" \
 	    -ex "attach $pid" -ex "gcore $name.$pid" -ex detach -ex quit
 
 	if [ -r $name.$pid ] ; then 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gcore.c ./gdb/gcore.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gcore.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gcore.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Generate a core file for the inferior process.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -36,6 +36,7 @@
 #include "readline/tilde.h"
 #include <algorithm>
 #include "common/gdb_unlinker.h"
+#include "byte-vector.h"
 
 /* The largest amount of memory to read from the target at once.  We
    must throttle it to limit the amount of memory used by GDB during
@@ -67,8 +68,7 @@ create_gcore_bfd (const char *filename)
 static void
 write_gcore_file_1 (bfd *obfd)
 {
-  struct cleanup *cleanup;
-  void *note_data = NULL;
+  gdb::unique_xmalloc_ptr<char> note_data;
   int note_size = 0;
   asection *note_sec = NULL;
 
@@ -77,11 +77,10 @@ write_gcore_file_1 (bfd *obfd)
      generation should be converted to gdbarch_make_corefile_notes; at that
      point, the target vector method can be removed.  */
   if (!gdbarch_make_corefile_notes_p (target_gdbarch ()))
-    note_data = target_make_corefile_notes (obfd, &note_size);
+    note_data.reset (target_make_corefile_notes (obfd, &note_size));
   else
-    note_data = gdbarch_make_corefile_notes (target_gdbarch (), obfd, &note_size);
-
-  cleanup = make_cleanup (xfree, note_data);
+    note_data.reset (gdbarch_make_corefile_notes (target_gdbarch (), obfd,
+						  &note_size));
 
   if (note_data == NULL || note_size == 0)
     error (_("Target does not support core file generation."));
@@ -104,10 +103,9 @@ write_gcore_file_1 (bfd *obfd)
     error (_("gcore: failed to get corefile memory sections from target."));
 
   /* Write out the contents of the note section.  */
-  if (!bfd_set_section_contents (obfd, note_sec, note_data, 0, note_size))
+  if (!bfd_set_section_contents (obfd, note_sec, note_data.get (), 0,
+				 note_size))
     warning (_("writing note section (%s)"), bfd_errmsg (bfd_get_error ()));
-
-  do_cleanups (cleanup);
 }
 
 /* write_gcore_file -- helper for gcore_command (exported).
@@ -140,7 +138,7 @@ write_gcore_file (bfd *obfd)
    Generate a core file from the inferior process.  */
 
 static void
-gcore_command (char *args, int from_tty)
+gcore_command (const char *args, int from_tty)
 {
   gdb::unique_xmalloc_ptr<char> corefilename;
 
@@ -302,7 +300,7 @@ call_target_sbrk (int sbrk_arg)
   target_sbrk_arg = value_from_longest (builtin_type (gdbarch)->builtin_int, 
 					sbrk_arg);
   gdb_assert (target_sbrk_arg);
-  ret = call_function_by_hand (sbrk_fn, 1, &target_sbrk_arg);
+  ret = call_function_by_hand (sbrk_fn, NULL, 1, &target_sbrk_arg);
   if (ret == NULL)
     return (bfd_vma) 0;
 
@@ -548,8 +546,6 @@ gcore_copy_callback (bfd *obfd, asection
 {
   bfd_size_type size, total_size = bfd_section_size (obfd, osec);
   file_ptr offset = 0;
-  struct cleanup *old_chain = NULL;
-  gdb_byte *memhunk;
 
   /* Read-only sections are marked; we don't have to copy their contents.  */
   if ((bfd_get_section_flags (obfd, osec) & SEC_LOAD) == 0)
@@ -560,8 +556,7 @@ gcore_copy_callback (bfd *obfd, asection
     return;
 
   size = std::min (total_size, (bfd_size_type) MAX_COPY_BYTES);
-  memhunk = (gdb_byte *) xmalloc (size);
-  old_chain = make_cleanup (xfree, memhunk);
+  gdb::byte_vector memhunk (size);
 
   while (total_size > 0)
     {
@@ -569,7 +564,7 @@ gcore_copy_callback (bfd *obfd, asection
 	size = total_size;
 
       if (target_read_memory (bfd_section_vma (obfd, osec) + offset,
-			      memhunk, size) != 0)
+			      memhunk.data (), size) != 0)
 	{
 	  warning (_("Memory read failed for corefile "
 		     "section, %s bytes at %s."),
@@ -577,7 +572,8 @@ gcore_copy_callback (bfd *obfd, asection
 		   paddress (target_gdbarch (), bfd_section_vma (obfd, osec)));
 	  break;
 	}
-      if (!bfd_set_section_contents (obfd, osec, memhunk, offset, size))
+      if (!bfd_set_section_contents (obfd, osec, memhunk.data (),
+				     offset, size))
 	{
 	  warning (_("Failed to write corefile contents (%s)."),
 		   bfd_errmsg (bfd_get_error ()));
@@ -587,8 +583,6 @@ gcore_copy_callback (bfd *obfd, asection
       total_size -= size;
       offset += size;
     }
-
-  do_cleanups (old_chain);	/* Frees MEMHUNK.  */
 }
 
 static int
@@ -612,9 +606,6 @@ gcore_memory_sections (bfd *obfd)
   return 1;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_gcore;
-
 void
 _initialize_gcore (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gcore.h ./gdb/gcore.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gcore.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gcore.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support for reading/writing gcore files.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gcore.in ./gdb/gcore.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gcore.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gcore.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-#   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2003-2018 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
@@ -20,27 +20,39 @@
 # It starts up gdb, attaches to the given PID and invokes the gcore command.
 #
 
-if [ "$#" -eq "0" ]
-then
-    echo "usage:  @GCORE_TRANSFORM_NAME@ [-o filename] pid"
-    exit 2
-fi
-
 # Need to check for -o option, but set default basename to "core".
 name=core
 
-if [ "$1" = "-o" ]
-then
-    if [ "$#" -lt "3" ]
-    then
-	# Not enough arguments.
-	echo "usage:  @GCORE_TRANSFORM_NAME@ [-o filename] pid"
-	exit 2
-    fi
-    name=$2
+# When the -a option is present, this may hold additional commands
+# to ensure gdb dumps all mappings (OS dependent).
+dump_all_cmds=()
+
+while getopts :ao: opt; do
+    case $opt in
+        a)
+            case $OSTYPE in
+                linux*)
+                    dump_all_cmds=("-ex" "set use-coredump-filter off")
+                    dump_all_cmds+=("-ex" "set dump-excluded-mappings on")
+                    ;;
+            esac
+            ;;
+        o)
+            name=$OPTARG
+            ;;
+        *)
+            echo "usage:  @GCORE_TRANSFORM_NAME@ [-a] [-o filename] pid"
+            exit 2
+            ;;
+    esac
+done
+
+shift $((OPTIND-1))
 
-    # Shift over to start of pid list
-    shift; shift
+if [ "$#" -eq "0" ]
+then
+    echo "usage:  @GCORE_TRANSFORM_NAME@ [-a] [-o filename] pid"
+    exit 2
 fi
 
 # Attempt to fetch the absolute path to the gcore script that was
@@ -87,6 +99,7 @@ do
 	# available but not accessible as GDB would get stopped on SIGTTIN.
 	$binary_path/@GDB_TRANSFORM_NAME@ </dev/null --nx --batch \
 	    -ex "set pagination off" -ex "set height 0" -ex "set width 0" \
+	    "${dump_all_cmds[@]}" \
 	    -ex "attach $pid" -ex "gcore $name.$pid" -ex detach -ex quit
 
 	if [ -r $name.$pid ] ; then 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbarch.c ./gdb/gdbarch.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbarch.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbarch.c	2018-01-09 02:04:57.000000000 +0000
@@ -3,7 +3,7 @@
 
 /* Dynamic architecture support for GDB, the GNU debugger.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -259,6 +259,7 @@ struct gdbarch
   int frame_red_zone_size;
   gdbarch_convert_from_func_ptr_addr_ftype *convert_from_func_ptr_addr;
   gdbarch_addr_bits_remove_ftype *addr_bits_remove;
+  int significant_addr_bit;
   gdbarch_software_single_step_ftype *software_single_step;
   gdbarch_single_step_through_delay_ftype *single_step_through_delay;
   gdbarch_print_insn_ftype *print_insn;
@@ -275,17 +276,18 @@ struct gdbarch
   int have_nonsteppable_watchpoint;
   gdbarch_address_class_type_flags_ftype *address_class_type_flags;
   gdbarch_address_class_type_flags_to_name_ftype *address_class_type_flags_to_name;
+  gdbarch_execute_dwarf_cfa_vendor_op_ftype *execute_dwarf_cfa_vendor_op;
   gdbarch_address_class_name_to_type_flags_ftype *address_class_name_to_type_flags;
   gdbarch_register_reggroup_p_ftype *register_reggroup_p;
   gdbarch_fetch_pointer_argument_ftype *fetch_pointer_argument;
   gdbarch_iterate_over_regset_sections_ftype *iterate_over_regset_sections;
   gdbarch_make_corefile_notes_ftype *make_corefile_notes;
-  gdbarch_elfcore_write_linux_prpsinfo_ftype *elfcore_write_linux_prpsinfo;
   gdbarch_find_memory_regions_ftype *find_memory_regions;
   gdbarch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries;
   gdbarch_core_xfer_shared_libraries_aix_ftype *core_xfer_shared_libraries_aix;
   gdbarch_core_pid_to_str_ftype *core_pid_to_str;
   gdbarch_core_thread_name_ftype *core_thread_name;
+  gdbarch_core_xfer_siginfo_ftype *core_xfer_siginfo;
   const char * gcore_bfd_target;
   int vtable_function_descriptors;
   int vbit_in_delta;
@@ -294,7 +296,6 @@ struct gdbarch
   gdbarch_displaced_step_copy_insn_ftype *displaced_step_copy_insn;
   gdbarch_displaced_step_hw_singlestep_ftype *displaced_step_hw_singlestep;
   gdbarch_displaced_step_fixup_ftype *displaced_step_fixup;
-  gdbarch_displaced_step_free_closure_ftype *displaced_step_free_closure;
   gdbarch_displaced_step_location_ftype *displaced_step_location;
   gdbarch_relocate_instruction_ftype *relocate_instruction;
   gdbarch_overlay_update_ftype *overlay_update;
@@ -428,6 +429,7 @@ gdbarch_alloc (const struct gdbarch_info
   gdbarch->stabs_argument_has_addr = default_stabs_argument_has_addr;
   gdbarch->convert_from_func_ptr_addr = convert_from_func_ptr_addr_identity;
   gdbarch->addr_bits_remove = core_addr_identity;
+  gdbarch->print_insn = default_print_insn;
   gdbarch->skip_trampoline_code = generic_skip_trampoline_code;
   gdbarch->skip_solib_resolver = generic_skip_solib_resolver;
   gdbarch->in_solib_return_trampoline = generic_in_solib_return_trampoline;
@@ -436,11 +438,11 @@ gdbarch_alloc (const struct gdbarch_info
   gdbarch->make_symbol_special = default_make_symbol_special;
   gdbarch->adjust_dwarf2_addr = default_adjust_dwarf2_addr;
   gdbarch->adjust_dwarf2_line = default_adjust_dwarf2_line;
+  gdbarch->execute_dwarf_cfa_vendor_op = default_execute_dwarf_cfa_vendor_op;
   gdbarch->register_reggroup_p = default_register_reggroup_p;
   gdbarch->skip_permanent_breakpoint = default_skip_permanent_breakpoint;
   gdbarch->displaced_step_hw_singlestep = default_displaced_step_hw_singlestep;
   gdbarch->displaced_step_fixup = NULL;
-  gdbarch->displaced_step_free_closure = NULL;
   gdbarch->displaced_step_location = NULL;
   gdbarch->relocate_instruction = NULL;
   gdbarch->has_shared_address_space = default_has_shared_address_space;
@@ -617,10 +619,11 @@ verify_gdbarch (struct gdbarch *gdbarch)
   /* Skip verify of stabs_argument_has_addr, invalid_p == 0 */
   /* Skip verify of convert_from_func_ptr_addr, invalid_p == 0 */
   /* Skip verify of addr_bits_remove, invalid_p == 0 */
+  if (gdbarch->significant_addr_bit == 0)
+    gdbarch->significant_addr_bit = gdbarch_addr_bit (gdbarch);
   /* Skip verify of software_single_step, has predicate.  */
   /* Skip verify of single_step_through_delay, has predicate.  */
-  if (gdbarch->print_insn == 0)
-    log.puts ("\n\tprint_insn");
+  /* Skip verify of print_insn, invalid_p == 0 */
   /* Skip verify of skip_trampoline_code, invalid_p == 0 */
   /* Skip verify of skip_solib_resolver, invalid_p == 0 */
   /* Skip verify of in_solib_return_trampoline, invalid_p == 0 */
@@ -634,17 +637,18 @@ verify_gdbarch (struct gdbarch *gdbarch)
   /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
   /* Skip verify of address_class_type_flags, has predicate.  */
   /* Skip verify of address_class_type_flags_to_name, has predicate.  */
+  /* Skip verify of execute_dwarf_cfa_vendor_op, invalid_p == 0 */
   /* Skip verify of address_class_name_to_type_flags, has predicate.  */
   /* Skip verify of register_reggroup_p, invalid_p == 0 */
   /* Skip verify of fetch_pointer_argument, has predicate.  */
   /* Skip verify of iterate_over_regset_sections, has predicate.  */
   /* Skip verify of make_corefile_notes, has predicate.  */
-  /* Skip verify of elfcore_write_linux_prpsinfo, has predicate.  */
   /* Skip verify of find_memory_regions, has predicate.  */
   /* Skip verify of core_xfer_shared_libraries, has predicate.  */
   /* Skip verify of core_xfer_shared_libraries_aix, has predicate.  */
   /* Skip verify of core_pid_to_str, has predicate.  */
   /* Skip verify of core_thread_name, has predicate.  */
+  /* Skip verify of core_xfer_siginfo, has predicate.  */
   /* Skip verify of gcore_bfd_target, has predicate.  */
   /* Skip verify of vtable_function_descriptors, invalid_p == 0 */
   /* Skip verify of vbit_in_delta, invalid_p == 0 */
@@ -653,8 +657,6 @@ verify_gdbarch (struct gdbarch *gdbarch)
   /* Skip verify of displaced_step_copy_insn, has predicate.  */
   /* Skip verify of displaced_step_hw_singlestep, invalid_p == 0 */
   /* Skip verify of displaced_step_fixup, has predicate.  */
-  if ((! gdbarch->displaced_step_free_closure) != (! gdbarch->displaced_step_copy_insn))
-    log.puts ("\n\tdisplaced_step_free_closure");
   if ((! gdbarch->displaced_step_location) != (! gdbarch->displaced_step_copy_insn))
     log.puts ("\n\tdisplaced_step_location");
   /* Skip verify of relocate_instruction, has predicate.  */
@@ -885,6 +887,12 @@ gdbarch_dump (struct gdbarch *gdbarch, s
                       "gdbarch_dump: core_xfer_shared_libraries_aix = <%s>\n",
                       host_address_to_string (gdbarch->core_xfer_shared_libraries_aix));
   fprintf_unfiltered (file,
+                      "gdbarch_dump: gdbarch_core_xfer_siginfo_p() = %d\n",
+                      gdbarch_core_xfer_siginfo_p (gdbarch));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: core_xfer_siginfo = <%s>\n",
+                      host_address_to_string (gdbarch->core_xfer_siginfo));
+  fprintf_unfiltered (file,
                       "gdbarch_dump: decr_pc_after_break = %s\n",
                       core_addr_to_string_nz (gdbarch->decr_pc_after_break));
   fprintf_unfiltered (file,
@@ -909,9 +917,6 @@ gdbarch_dump (struct gdbarch *gdbarch, s
                       "gdbarch_dump: displaced_step_fixup = <%s>\n",
                       host_address_to_string (gdbarch->displaced_step_fixup));
   fprintf_unfiltered (file,
-                      "gdbarch_dump: displaced_step_free_closure = <%s>\n",
-                      host_address_to_string (gdbarch->displaced_step_free_closure));
-  fprintf_unfiltered (file,
                       "gdbarch_dump: displaced_step_hw_singlestep = <%s>\n",
                       host_address_to_string (gdbarch->displaced_step_hw_singlestep));
   fprintf_unfiltered (file,
@@ -969,11 +974,8 @@ gdbarch_dump (struct gdbarch *gdbarch, s
                       "gdbarch_dump: elf_make_msymbol_special = <%s>\n",
                       host_address_to_string (gdbarch->elf_make_msymbol_special));
   fprintf_unfiltered (file,
-                      "gdbarch_dump: gdbarch_elfcore_write_linux_prpsinfo_p() = %d\n",
-                      gdbarch_elfcore_write_linux_prpsinfo_p (gdbarch));
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: elfcore_write_linux_prpsinfo = <%s>\n",
-                      host_address_to_string (gdbarch->elfcore_write_linux_prpsinfo));
+                      "gdbarch_dump: execute_dwarf_cfa_vendor_op = <%s>\n",
+                      host_address_to_string (gdbarch->execute_dwarf_cfa_vendor_op));
   fprintf_unfiltered (file,
                       "gdbarch_dump: fast_tracepoint_valid_at = <%s>\n",
                       host_address_to_string (gdbarch->fast_tracepoint_valid_at));
@@ -1326,6 +1328,9 @@ gdbarch_dump (struct gdbarch *gdbarch, s
                       "gdbarch_dump: short_bit = %s\n",
                       plongest (gdbarch->short_bit));
   fprintf_unfiltered (file,
+                      "gdbarch_dump: significant_addr_bit = %s\n",
+                      plongest (gdbarch->significant_addr_bit));
+  fprintf_unfiltered (file,
                       "gdbarch_dump: gdbarch_single_step_through_delay_p() = %d\n",
                       gdbarch_single_step_through_delay_p (gdbarch));
   fprintf_unfiltered (file,
@@ -3217,13 +3222,29 @@ set_gdbarch_addr_bits_remove (struct gdb
 }
 
 int
+gdbarch_significant_addr_bit (struct gdbarch *gdbarch)
+{
+  gdb_assert (gdbarch != NULL);
+  if (gdbarch_debug >= 2)
+    fprintf_unfiltered (gdb_stdlog, "gdbarch_significant_addr_bit called\n");
+  return gdbarch->significant_addr_bit;
+}
+
+void
+set_gdbarch_significant_addr_bit (struct gdbarch *gdbarch,
+                                  int significant_addr_bit)
+{
+  gdbarch->significant_addr_bit = significant_addr_bit;
+}
+
+int
 gdbarch_software_single_step_p (struct gdbarch *gdbarch)
 {
   gdb_assert (gdbarch != NULL);
   return gdbarch->software_single_step != NULL;
 }
 
-VEC (CORE_ADDR) *
+std::vector<CORE_ADDR>
 gdbarch_software_single_step (struct gdbarch *gdbarch, struct regcache *regcache)
 {
   gdb_assert (gdbarch != NULL);
@@ -3523,6 +3544,23 @@ set_gdbarch_address_class_type_flags_to_
   gdbarch->address_class_type_flags_to_name = address_class_type_flags_to_name;
 }
 
+bool
+gdbarch_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, gdb_byte op, struct dwarf2_frame_state *fs)
+{
+  gdb_assert (gdbarch != NULL);
+  gdb_assert (gdbarch->execute_dwarf_cfa_vendor_op != NULL);
+  if (gdbarch_debug >= 2)
+    fprintf_unfiltered (gdb_stdlog, "gdbarch_execute_dwarf_cfa_vendor_op called\n");
+  return gdbarch->execute_dwarf_cfa_vendor_op (gdbarch, op, fs);
+}
+
+void
+set_gdbarch_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch,
+                                         gdbarch_execute_dwarf_cfa_vendor_op_ftype execute_dwarf_cfa_vendor_op)
+{
+  gdbarch->execute_dwarf_cfa_vendor_op = execute_dwarf_cfa_vendor_op;
+}
+
 int
 gdbarch_address_class_name_to_type_flags_p (struct gdbarch *gdbarch)
 {
@@ -3637,30 +3675,6 @@ set_gdbarch_make_corefile_notes (struct 
 }
 
 int
-gdbarch_elfcore_write_linux_prpsinfo_p (struct gdbarch *gdbarch)
-{
-  gdb_assert (gdbarch != NULL);
-  return gdbarch->elfcore_write_linux_prpsinfo != NULL;
-}
-
-char *
-gdbarch_elfcore_write_linux_prpsinfo (struct gdbarch *gdbarch, bfd *obfd, char *note_data, int *note_size, const struct elf_internal_linux_prpsinfo *info)
-{
-  gdb_assert (gdbarch != NULL);
-  gdb_assert (gdbarch->elfcore_write_linux_prpsinfo != NULL);
-  if (gdbarch_debug >= 2)
-    fprintf_unfiltered (gdb_stdlog, "gdbarch_elfcore_write_linux_prpsinfo called\n");
-  return gdbarch->elfcore_write_linux_prpsinfo (obfd, note_data, note_size, info);
-}
-
-void
-set_gdbarch_elfcore_write_linux_prpsinfo (struct gdbarch *gdbarch,
-                                          gdbarch_elfcore_write_linux_prpsinfo_ftype elfcore_write_linux_prpsinfo)
-{
-  gdbarch->elfcore_write_linux_prpsinfo = elfcore_write_linux_prpsinfo;
-}
-
-int
 gdbarch_find_memory_regions_p (struct gdbarch *gdbarch)
 {
   gdb_assert (gdbarch != NULL);
@@ -3781,6 +3795,30 @@ set_gdbarch_core_thread_name (struct gdb
 }
 
 int
+gdbarch_core_xfer_siginfo_p (struct gdbarch *gdbarch)
+{
+  gdb_assert (gdbarch != NULL);
+  return gdbarch->core_xfer_siginfo != NULL;
+}
+
+LONGEST
+gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
+{
+  gdb_assert (gdbarch != NULL);
+  gdb_assert (gdbarch->core_xfer_siginfo != NULL);
+  if (gdbarch_debug >= 2)
+    fprintf_unfiltered (gdb_stdlog, "gdbarch_core_xfer_siginfo called\n");
+  return gdbarch->core_xfer_siginfo (gdbarch,  readbuf, offset, len);
+}
+
+void
+set_gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch,
+                               gdbarch_core_xfer_siginfo_ftype core_xfer_siginfo)
+{
+  gdbarch->core_xfer_siginfo = core_xfer_siginfo;
+}
+
+int
 gdbarch_gcore_bfd_target_p (struct gdbarch *gdbarch)
 {
   gdb_assert (gdbarch != NULL);
@@ -3947,23 +3985,6 @@ set_gdbarch_displaced_step_fixup (struct
   gdbarch->displaced_step_fixup = displaced_step_fixup;
 }
 
-void
-gdbarch_displaced_step_free_closure (struct gdbarch *gdbarch, struct displaced_step_closure *closure)
-{
-  gdb_assert (gdbarch != NULL);
-  gdb_assert (gdbarch->displaced_step_free_closure != NULL);
-  if (gdbarch_debug >= 2)
-    fprintf_unfiltered (gdb_stdlog, "gdbarch_displaced_step_free_closure called\n");
-  gdbarch->displaced_step_free_closure (gdbarch, closure);
-}
-
-void
-set_gdbarch_displaced_step_free_closure (struct gdbarch *gdbarch,
-                                         gdbarch_displaced_step_free_closure_ftype displaced_step_free_closure)
-{
-  gdbarch->displaced_step_free_closure = displaced_step_free_closure;
-}
-
 CORE_ADDR
 gdbarch_displaced_step_location (struct gdbarch *gdbarch)
 {
@@ -5448,8 +5469,6 @@ target_gdbarch (void)
   return current_inferior ()->gdbarch;
 }
 
-extern void _initialize_gdbarch (void);
-
 void
 _initialize_gdbarch (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbarch.h ./gdb/gdbarch.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbarch.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbarch.h	2018-01-09 02:04:57.000000000 +0000
@@ -3,7 +3,7 @@
 
 /* Dynamic architecture support for GDB, the GNU debugger.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -35,6 +35,7 @@
 #ifndef GDBARCH_H
 #define GDBARCH_H
 
+#include <vector>
 #include "frame.h"
 #include "dis-asm.h"
 
@@ -52,7 +53,6 @@ struct target_ops;
 struct obstack;
 struct bp_target_info;
 struct target_desc;
-struct objfile;
 struct symbol;
 struct displaced_step_closure;
 struct syscall;
@@ -61,7 +61,6 @@ struct axs_value;
 struct stap_parse_info;
 struct parser_state;
 struct ravenscar_arch_ops;
-struct elf_internal_linux_prpsinfo;
 struct mem_range;
 struct syscalls_info;
 struct thread_info;
@@ -127,11 +126,7 @@ extern const struct target_desc * gdbarc
 extern int gdbarch_bits_big_endian (struct gdbarch *gdbarch);
 extern void set_gdbarch_bits_big_endian (struct gdbarch *gdbarch, int bits_big_endian);
 
-/* Number of bits in a char or unsigned char for the target machine.
-   Just like CHAR_BIT in <limits.h> but describes the target machine.
-   v:TARGET_CHAR_BIT:int:char_bit::::8 * sizeof (char):8::0:
-  
-   Number of bits in a short or unsigned short for the target machine. */
+/* Number of bits in a short or unsigned short for the target machine. */
 
 extern int gdbarch_short_bit (struct gdbarch *gdbarch);
 extern void set_gdbarch_short_bit (struct gdbarch *gdbarch, int short_bit);
@@ -682,6 +677,14 @@ typedef CORE_ADDR (gdbarch_addr_bits_rem
 extern CORE_ADDR gdbarch_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr);
 extern void set_gdbarch_addr_bits_remove (struct gdbarch *gdbarch, gdbarch_addr_bits_remove_ftype *addr_bits_remove);
 
+/* On some machines, not all bits of an address word are significant.
+   For example, on AArch64, the top bits of an address known as the "tag"
+   are ignored by the kernel, the hardware, etc. and can be regarded as
+   additional data associated with the address. */
+
+extern int gdbarch_significant_addr_bit (struct gdbarch *gdbarch);
+extern void set_gdbarch_significant_addr_bit (struct gdbarch *gdbarch, int significant_addr_bit);
+
 /* FIXME/cagney/2001-01-18: This should be split in two.  A target method that
    indicates if the target needs software single step.  An ISA method to
    implement it.
@@ -700,8 +703,8 @@ extern void set_gdbarch_addr_bits_remove
 
 extern int gdbarch_software_single_step_p (struct gdbarch *gdbarch);
 
-typedef VEC (CORE_ADDR) * (gdbarch_software_single_step_ftype) (struct regcache *regcache);
-extern VEC (CORE_ADDR) * gdbarch_software_single_step (struct gdbarch *gdbarch, struct regcache *regcache);
+typedef std::vector<CORE_ADDR> (gdbarch_software_single_step_ftype) (struct regcache *regcache);
+extern std::vector<CORE_ADDR> gdbarch_software_single_step (struct gdbarch *gdbarch, struct regcache *regcache);
 extern void set_gdbarch_software_single_step (struct gdbarch *gdbarch, gdbarch_software_single_step_ftype *software_single_step);
 
 /* Return non-zero if the processor is executing a delay slot and a
@@ -827,6 +830,13 @@ typedef const char * (gdbarch_address_cl
 extern const char * gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags);
 extern void set_gdbarch_address_class_type_flags_to_name (struct gdbarch *gdbarch, gdbarch_address_class_type_flags_to_name_ftype *address_class_type_flags_to_name);
 
+/* Execute vendor-specific DWARF Call Frame Instruction.  OP is the instruction.
+   FS are passed from the generic execute_cfa_program function. */
+
+typedef bool (gdbarch_execute_dwarf_cfa_vendor_op_ftype) (struct gdbarch *gdbarch, gdb_byte op, struct dwarf2_frame_state *fs);
+extern bool gdbarch_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, gdb_byte op, struct dwarf2_frame_state *fs);
+extern void set_gdbarch_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, gdbarch_execute_dwarf_cfa_vendor_op_ftype *execute_dwarf_cfa_vendor_op);
+
 /* Return the appropriate type_flags for the supplied address class.
    This function should return 1 if the address class was recognized and
    type_flags was set, zero otherwise. */
@@ -872,18 +882,6 @@ typedef char * (gdbarch_make_corefile_no
 extern char * gdbarch_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size);
 extern void set_gdbarch_make_corefile_notes (struct gdbarch *gdbarch, gdbarch_make_corefile_notes_ftype *make_corefile_notes);
 
-/* The elfcore writer hook to use to write Linux prpsinfo notes to core
-   files.  Most Linux architectures use the same prpsinfo32 or
-   prpsinfo64 layouts, and so won't need to provide this hook, as we
-   call the Linux generic routines in bfd to write prpsinfo notes by
-   default. */
-
-extern int gdbarch_elfcore_write_linux_prpsinfo_p (struct gdbarch *gdbarch);
-
-typedef char * (gdbarch_elfcore_write_linux_prpsinfo_ftype) (bfd *obfd, char *note_data, int *note_size, const struct elf_internal_linux_prpsinfo *info);
-extern char * gdbarch_elfcore_write_linux_prpsinfo (struct gdbarch *gdbarch, bfd *obfd, char *note_data, int *note_size, const struct elf_internal_linux_prpsinfo *info);
-extern void set_gdbarch_elfcore_write_linux_prpsinfo (struct gdbarch *gdbarch, gdbarch_elfcore_write_linux_prpsinfo_ftype *elfcore_write_linux_prpsinfo);
-
 /* Find core file memory regions */
 
 extern int gdbarch_find_memory_regions_p (struct gdbarch *gdbarch);
@@ -929,6 +927,16 @@ typedef const char * (gdbarch_core_threa
 extern const char * gdbarch_core_thread_name (struct gdbarch *gdbarch, struct thread_info *thr);
 extern void set_gdbarch_core_thread_name (struct gdbarch *gdbarch, gdbarch_core_thread_name_ftype *core_thread_name);
 
+/* Read offset OFFSET of TARGET_OBJECT_SIGNAL_INFO signal information
+   from core file into buffer READBUF with length LEN.  Return the number
+   of bytes read (zero indicates EOF, a negative value indicates failure). */
+
+extern int gdbarch_core_xfer_siginfo_p (struct gdbarch *gdbarch);
+
+typedef LONGEST (gdbarch_core_xfer_siginfo_ftype) (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len);
+extern LONGEST gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len);
+extern void set_gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch, gdbarch_core_xfer_siginfo_ftype *core_xfer_siginfo);
+
 /* BFD target to use when generating a core file. */
 
 extern int gdbarch_gcore_bfd_target_p (struct gdbarch *gdbarch);
@@ -984,10 +992,6 @@ extern void set_gdbarch_max_insn_length 
    If you do not provide this function, GDB assumes that the
    architecture does not support displaced stepping.
   
-   If your architecture doesn't need to adjust instructions before
-   single-stepping them, consider using simple_displaced_step_copy_insn
-   here.
-  
    If the instruction cannot execute out of line, return NULL.  The
    core falls back to stepping past the instruction in-line instead in
    that case. */
@@ -1035,21 +1039,6 @@ typedef void (gdbarch_displaced_step_fix
 extern void gdbarch_displaced_step_fixup (struct gdbarch *gdbarch, struct displaced_step_closure *closure, CORE_ADDR from, CORE_ADDR to, struct regcache *regs);
 extern void set_gdbarch_displaced_step_fixup (struct gdbarch *gdbarch, gdbarch_displaced_step_fixup_ftype *displaced_step_fixup);
 
-/* Free a closure returned by gdbarch_displaced_step_copy_insn.
-  
-   If you provide gdbarch_displaced_step_copy_insn, you must provide
-   this function as well.
-  
-   If your architecture uses closures that don't need to be freed, then
-   you can use simple_displaced_step_free_closure here.
-  
-   For a general explanation of displaced stepping and how GDB uses it,
-   see the comments in infrun.c. */
-
-typedef void (gdbarch_displaced_step_free_closure_ftype) (struct gdbarch *gdbarch, struct displaced_step_closure *closure);
-extern void gdbarch_displaced_step_free_closure (struct gdbarch *gdbarch, struct displaced_step_closure *closure);
-extern void set_gdbarch_displaced_step_free_closure (struct gdbarch *gdbarch, gdbarch_displaced_step_free_closure_ftype *displaced_step_free_closure);
-
 /* Return the address of an appropriate place to put displaced
    instructions while we step over them.  There need only be one such
    place, since we're only stepping one thread over a breakpoint at a
@@ -1648,7 +1637,21 @@ struct gdbarch_info
   bfd *abfd;
 
   /* Use default: NULL (ZERO).  */
-  void *tdep_info;
+  union
+    {
+      /* Architecture-specific information.  The generic form for targets
+	 that have extra requirements.  */
+      struct gdbarch_tdep_info *tdep_info;
+
+      /* Architecture-specific target description data.  Numerous targets
+	 need only this, so give them an easy way to hold it.  */
+      struct tdesc_arch_data *tdesc_data;
+
+      /* SPU file system ID.  This is a single integer, so using the
+	 generic form would only complicate code.  Other targets may
+	 reuse this member if suitable.  */
+      int *id;
+    };
 
   /* Use default: GDB_OSABI_UNINITIALIZED (-1).  */
   enum gdb_osabi osabi;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbarch-selftests.c ./gdb/gdbarch-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbarch-selftests.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gdbarch-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,180 @@
+/* Self tests for gdbarch for GDB, the GNU debugger.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+#if GDB_SELF_TEST
+#include "selftest.h"
+#include "selftest-arch.h"
+#include "inferior.h"
+#include "gdbthread.h"
+#include "target.h"
+#include "target-float.h"
+#include "common/def-vector.h"
+
+namespace selftests {
+
+/* Test gdbarch methods register_to_value and value_to_register.  */
+
+static void
+register_to_value_test (struct gdbarch *gdbarch)
+{
+  const struct builtin_type *builtin = builtin_type (gdbarch);
+  struct type *types[] =
+    {
+      builtin->builtin_void,
+      builtin->builtin_char,
+      builtin->builtin_short,
+      builtin->builtin_int,
+      builtin->builtin_long,
+      builtin->builtin_signed_char,
+      builtin->builtin_unsigned_short,
+      builtin->builtin_unsigned_int,
+      builtin->builtin_unsigned_long,
+      builtin->builtin_float,
+      builtin->builtin_double,
+      builtin->builtin_long_double,
+      builtin->builtin_complex,
+      builtin->builtin_double_complex,
+      builtin->builtin_string,
+      builtin->builtin_bool,
+      builtin->builtin_long_long,
+      builtin->builtin_unsigned_long_long,
+      builtin->builtin_int8,
+      builtin->builtin_uint8,
+      builtin->builtin_int16,
+      builtin->builtin_uint16,
+      builtin->builtin_int32,
+      builtin->builtin_uint32,
+      builtin->builtin_int64,
+      builtin->builtin_uint64,
+      builtin->builtin_int128,
+      builtin->builtin_uint128,
+      builtin->builtin_char16,
+      builtin->builtin_char32,
+    };
+
+  /* Error out if debugging something, because we're going to push the
+     test target, which would pop any existing target.  */
+  if (current_target.to_stratum >= process_stratum)
+    error (_("target already pushed"));
+
+  /* Create a mock environment.  An inferior with a thread, with a
+     process_stratum target pushed.  */
+
+  test_target_ops mock_target;
+  ptid_t mock_ptid (1, 1);
+  inferior mock_inferior (mock_ptid.pid ());
+  address_space mock_aspace {};
+  mock_inferior.gdbarch = gdbarch;
+  mock_inferior.aspace = &mock_aspace;
+  thread_info mock_thread (&mock_inferior, mock_ptid);
+
+  scoped_restore restore_thread_list
+    = make_scoped_restore (&thread_list, &mock_thread);
+
+  /* Add the mock inferior to the inferior list so that look ups by
+     target+ptid can find it.  */
+  scoped_restore restore_inferior_list
+    = make_scoped_restore (&inferior_list);
+  inferior_list = &mock_inferior;
+
+  /* Switch to the mock inferior.  */
+  scoped_restore_current_inferior restore_current_inferior;
+  set_current_inferior (&mock_inferior);
+
+  /* Push the process_stratum target so we can mock accessing
+     registers.  */
+  push_target (&mock_target);
+
+  /* Pop it again on exit (return/exception).  */
+  struct on_exit
+  {
+    ~on_exit ()
+    {
+      pop_all_targets_at_and_above (process_stratum);
+    }
+  } pop_targets;
+
+  /* Switch to the mock thread.  */
+  scoped_restore restore_inferior_ptid
+    = make_scoped_restore (&inferior_ptid, mock_ptid);
+
+  struct frame_info *frame = get_current_frame ();
+  const int num_regs = (gdbarch_num_regs (gdbarch)
+			+ gdbarch_num_pseudo_regs (gdbarch));
+
+  /* Test gdbarch methods register_to_value and value_to_register with
+     different combinations of register numbers and types.  */
+  for (const auto &type : types)
+    {
+      for (auto regnum = 0; regnum < num_regs; regnum++)
+	{
+	  if (gdbarch_convert_register_p (gdbarch, regnum, type))
+	    {
+	      std::vector<gdb_byte> expected (TYPE_LENGTH (type), 0);
+
+	      if (TYPE_CODE (type) == TYPE_CODE_FLT)
+		{
+		  /* Generate valid float format.  */
+		  target_float_from_string (expected.data (), type, "1.25");
+		}
+	      else
+		{
+		  for (auto j = 0; j < expected.size (); j++)
+		    expected[j] = (regnum + j) % 16;
+		}
+
+	      gdbarch_value_to_register (gdbarch, frame, regnum, type,
+					 expected.data ());
+
+	      /* Allocate two bytes more for overflow check.  */
+	      std::vector<gdb_byte> buf (TYPE_LENGTH (type) + 2, 0);
+	      int optim, unavail, ok;
+
+	      /* Set the fingerprint in the last two bytes.  */
+	      buf [TYPE_LENGTH (type)]= 'w';
+	      buf [TYPE_LENGTH (type) + 1]= 'l';
+	      ok = gdbarch_register_to_value (gdbarch, frame, regnum, type,
+					      buf.data (), &optim, &unavail);
+
+	      SELF_CHECK (ok);
+	      SELF_CHECK (!optim);
+	      SELF_CHECK (!unavail);
+
+	      SELF_CHECK (buf[TYPE_LENGTH (type)] == 'w');
+	      SELF_CHECK (buf[TYPE_LENGTH (type) + 1] == 'l');
+
+	      for (auto k = 0; k < TYPE_LENGTH(type); k++)
+		SELF_CHECK (buf[k] == expected[k]);
+	    }
+	}
+    }
+}
+
+} // namespace selftests
+#endif /* GDB_SELF_TEST */
+
+void
+_initialize_gdbarch_selftests (void)
+{
+#if GDB_SELF_TEST
+  selftests::register_test_foreach_arch ("register_to_value",
+					 selftests::register_to_value_test);
+#endif
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbarch.sh ./gdb/gdbarch.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbarch.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbarch.sh	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
 
 # Architecture commands for GDB, the GNU debugger.
 #
-# Copyright (C) 1998-2017 Free Software Foundation, Inc.
+# Copyright (C) 1998-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
@@ -65,11 +65,11 @@ do_read ()
 	else
 
 	    # The semantics of IFS varies between different SH's.  Some
-	    # treat ``::' as three fields while some treat it as just too.
-	    # Work around this by eliminating ``::'' ....
-	    line="`echo "${line}" | sed -e 's/::/: :/g' -e 's/::/: :/g'`"
+	    # treat ``;;' as three fields while some treat it as just two.
+	    # Work around this by eliminating ``;;'' ....
+	    line="`echo "${line}" | sed -e 's/;;/; ;/g' -e 's/;;/; ;/g'`"
 
-	    OFS="${IFS}" ; IFS="[:]"
+	    OFS="${IFS}" ; IFS="[;]"
 	    eval read ${read} <<EOF
 ${line}
 EOF
@@ -338,35 +338,31 @@ function_list ()
 {
   # See below (DOCO) for description of each field
   cat <<EOF
-i:const struct bfd_arch_info *:bfd_arch_info:::&bfd_default_arch_struct::::gdbarch_bfd_arch_info (gdbarch)->printable_name
+i;const struct bfd_arch_info *;bfd_arch_info;;;&bfd_default_arch_struct;;;;gdbarch_bfd_arch_info (gdbarch)->printable_name
 #
-i:enum bfd_endian:byte_order:::BFD_ENDIAN_BIG
-i:enum bfd_endian:byte_order_for_code:::BFD_ENDIAN_BIG
+i;enum bfd_endian;byte_order;;;BFD_ENDIAN_BIG
+i;enum bfd_endian;byte_order_for_code;;;BFD_ENDIAN_BIG
 #
-i:enum gdb_osabi:osabi:::GDB_OSABI_UNKNOWN
+i;enum gdb_osabi;osabi;;;GDB_OSABI_UNKNOWN
 #
-i:const struct target_desc *:target_desc:::::::host_address_to_string (gdbarch->target_desc)
+i;const struct target_desc *;target_desc;;;;;;;host_address_to_string (gdbarch->target_desc)
 
 # The bit byte-order has to do just with numbering of bits in debugging symbols
 # and such.  Conceptually, it's quite separate from byte/word byte order.
-v:int:bits_big_endian:::1:(gdbarch->byte_order == BFD_ENDIAN_BIG)::0
+v;int;bits_big_endian;;;1;(gdbarch->byte_order == BFD_ENDIAN_BIG);;0
 
-# Number of bits in a char or unsigned char for the target machine.
-# Just like CHAR_BIT in <limits.h> but describes the target machine.
-# v:TARGET_CHAR_BIT:int:char_bit::::8 * sizeof (char):8::0:
-#
 # Number of bits in a short or unsigned short for the target machine.
-v:int:short_bit:::8 * sizeof (short):2*TARGET_CHAR_BIT::0
+v;int;short_bit;;;8 * sizeof (short);2*TARGET_CHAR_BIT;;0
 # Number of bits in an int or unsigned int for the target machine.
-v:int:int_bit:::8 * sizeof (int):4*TARGET_CHAR_BIT::0
+v;int;int_bit;;;8 * sizeof (int);4*TARGET_CHAR_BIT;;0
 # Number of bits in a long or unsigned long for the target machine.
-v:int:long_bit:::8 * sizeof (long):4*TARGET_CHAR_BIT::0
+v;int;long_bit;;;8 * sizeof (long);4*TARGET_CHAR_BIT;;0
 # Number of bits in a long long or unsigned long long for the target
 # machine.
-v:int:long_long_bit:::8 * sizeof (LONGEST):2*gdbarch->long_bit::0
+v;int;long_long_bit;;;8 * sizeof (LONGEST);2*gdbarch->long_bit;;0
 # Alignment of a long long or unsigned long long for the target
 # machine.
-v:int:long_long_align_bit:::8 * sizeof (LONGEST):2*gdbarch->long_bit::0
+v;int;long_long_align_bit;;;8 * sizeof (LONGEST);2*gdbarch->long_bit;;0
 
 # The ABI default bit-size and format for "half", "float", "double", and
 # "long double".  These bit/format pairs should eventually be combined
@@ -374,25 +370,25 @@ v:int:long_long_align_bit:::8 * sizeof (
 # Each format describes both the big and little endian layouts (if
 # useful).
 
-v:int:half_bit:::16:2*TARGET_CHAR_BIT::0
-v:const struct floatformat **:half_format:::::floatformats_ieee_half::pformat (gdbarch->half_format)
-v:int:float_bit:::8 * sizeof (float):4*TARGET_CHAR_BIT::0
-v:const struct floatformat **:float_format:::::floatformats_ieee_single::pformat (gdbarch->float_format)
-v:int:double_bit:::8 * sizeof (double):8*TARGET_CHAR_BIT::0
-v:const struct floatformat **:double_format:::::floatformats_ieee_double::pformat (gdbarch->double_format)
-v:int:long_double_bit:::8 * sizeof (long double):8*TARGET_CHAR_BIT::0
-v:const struct floatformat **:long_double_format:::::floatformats_ieee_double::pformat (gdbarch->long_double_format)
+v;int;half_bit;;;16;2*TARGET_CHAR_BIT;;0
+v;const struct floatformat **;half_format;;;;;floatformats_ieee_half;;pformat (gdbarch->half_format)
+v;int;float_bit;;;8 * sizeof (float);4*TARGET_CHAR_BIT;;0
+v;const struct floatformat **;float_format;;;;;floatformats_ieee_single;;pformat (gdbarch->float_format)
+v;int;double_bit;;;8 * sizeof (double);8*TARGET_CHAR_BIT;;0
+v;const struct floatformat **;double_format;;;;;floatformats_ieee_double;;pformat (gdbarch->double_format)
+v;int;long_double_bit;;;8 * sizeof (long double);8*TARGET_CHAR_BIT;;0
+v;const struct floatformat **;long_double_format;;;;;floatformats_ieee_double;;pformat (gdbarch->long_double_format)
 
 # The ABI default bit-size for "wchar_t".  wchar_t is a built-in type
 # starting with C++11.
-v:int:wchar_bit:::8 * sizeof (wchar_t):4*TARGET_CHAR_BIT::0
+v;int;wchar_bit;;;8 * sizeof (wchar_t);4*TARGET_CHAR_BIT;;0
 # One if \`wchar_t' is signed, zero if unsigned.
-v:int:wchar_signed:::1:-1:1
+v;int;wchar_signed;;;1;-1;1
 
 # Returns the floating-point format to be used for values of length LENGTH.
 # NAME, if non-NULL, is the type name, which may be used to distinguish
 # different target formats of the same length.
-m:const struct floatformat **:floatformat_for_type:const char *name, int length:name, length:0:default_floatformat_for_type::0
+m;const struct floatformat **;floatformat_for_type;const char *name, int length;name, length;0;default_floatformat_for_type;;0
 
 # For most targets, a pointer on the target and its representation as an
 # address in GDB have the same size and "look the same".  For such a
@@ -404,9 +400,9 @@ m:const struct floatformat **:floatforma
 # gdbarch_address_to_pointer as well.
 #
 # ptr_bit is the size of a pointer on the target
-v:int:ptr_bit:::8 * sizeof (void*):gdbarch->int_bit::0
+v;int;ptr_bit;;;8 * sizeof (void*);gdbarch->int_bit;;0
 # addr_bit is the size of a target address as represented in gdb
-v:int:addr_bit:::8 * sizeof (void*):0:gdbarch_ptr_bit (gdbarch):
+v;int;addr_bit;;;8 * sizeof (void*);0;gdbarch_ptr_bit (gdbarch);
 #
 # dwarf2_addr_size is the target address size as used in the Dwarf debug
 # info.  For .debug_frame FDEs, this is supposed to be the target address
@@ -421,114 +417,114 @@ v:int:addr_bit:::8 * sizeof (void*):0:gd
 # Note that dwarf2_addr_size only needs to be redefined by a target if the
 # GCC back-end defines a DWARF2_ADDR_SIZE other than the target pointer size,
 # and if Dwarf versions < 4 need to be supported.
-v:int:dwarf2_addr_size:::sizeof (void*):0:gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT:
+v;int;dwarf2_addr_size;;;sizeof (void*);0;gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT;
 #
 # One if \`char' acts like \`signed char', zero if \`unsigned char'.
-v:int:char_signed:::1:-1:1
+v;int;char_signed;;;1;-1;1
 #
-F:CORE_ADDR:read_pc:struct regcache *regcache:regcache
-F:void:write_pc:struct regcache *regcache, CORE_ADDR val:regcache, val
+F;CORE_ADDR;read_pc;struct regcache *regcache;regcache
+F;void;write_pc;struct regcache *regcache, CORE_ADDR val;regcache, val
 # Function for getting target's idea of a frame pointer.  FIXME: GDB's
 # whole scheme for dealing with "frames" and "frame pointers" needs a
 # serious shakedown.
-m:void:virtual_frame_pointer:CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset:pc, frame_regnum, frame_offset:0:legacy_virtual_frame_pointer::0
+m;void;virtual_frame_pointer;CORE_ADDR pc, int *frame_regnum, LONGEST *frame_offset;pc, frame_regnum, frame_offset;0;legacy_virtual_frame_pointer;;0
 #
-M:enum register_status:pseudo_register_read:struct regcache *regcache, int cookednum, gdb_byte *buf:regcache, cookednum, buf
+M;enum register_status;pseudo_register_read;struct regcache *regcache, int cookednum, gdb_byte *buf;regcache, cookednum, buf
 # Read a register into a new struct value.  If the register is wholly
 # or partly unavailable, this should call mark_value_bytes_unavailable
 # as appropriate.  If this is defined, then pseudo_register_read will
 # never be called.
-M:struct value *:pseudo_register_read_value:struct regcache *regcache, int cookednum:regcache, cookednum
-M:void:pseudo_register_write:struct regcache *regcache, int cookednum, const gdb_byte *buf:regcache, cookednum, buf
+M;struct value *;pseudo_register_read_value;struct regcache *regcache, int cookednum;regcache, cookednum
+M;void;pseudo_register_write;struct regcache *regcache, int cookednum, const gdb_byte *buf;regcache, cookednum, buf
 #
-v:int:num_regs:::0:-1
+v;int;num_regs;;;0;-1
 # This macro gives the number of pseudo-registers that live in the
 # register namespace but do not get fetched or stored on the target.
 # These pseudo-registers may be aliases for other registers,
 # combinations of other registers, or they may be computed by GDB.
-v:int:num_pseudo_regs:::0:0::0
+v;int;num_pseudo_regs;;;0;0;;0
 
 # Assemble agent expression bytecode to collect pseudo-register REG.
 # Return -1 if something goes wrong, 0 otherwise.
-M:int:ax_pseudo_register_collect:struct agent_expr *ax, int reg:ax, reg
+M;int;ax_pseudo_register_collect;struct agent_expr *ax, int reg;ax, reg
 
 # Assemble agent expression bytecode to push the value of pseudo-register
 # REG on the interpreter stack.
 # Return -1 if something goes wrong, 0 otherwise.
-M:int:ax_pseudo_register_push_stack:struct agent_expr *ax, int reg:ax, reg
+M;int;ax_pseudo_register_push_stack;struct agent_expr *ax, int reg;ax, reg
 
 # Some targets/architectures can do extra processing/display of
 # segmentation faults.  E.g., Intel MPX boundary faults.
 # Call the architecture dependent function to handle the fault.
 # UIOUT is the output stream where the handler will place information.
-M:void:handle_segmentation_fault:struct ui_out *uiout:uiout
+M;void;handle_segmentation_fault;struct ui_out *uiout;uiout
 
 # GDB's standard (or well known) register numbers.  These can map onto
 # a real register or a pseudo (computed) register or not be defined at
 # all (-1).
 # gdbarch_sp_regnum will hopefully be replaced by UNWIND_SP.
-v:int:sp_regnum:::-1:-1::0
-v:int:pc_regnum:::-1:-1::0
-v:int:ps_regnum:::-1:-1::0
-v:int:fp0_regnum:::0:-1::0
+v;int;sp_regnum;;;-1;-1;;0
+v;int;pc_regnum;;;-1;-1;;0
+v;int;ps_regnum;;;-1;-1;;0
+v;int;fp0_regnum;;;0;-1;;0
 # Convert stab register number (from \`r\' declaration) to a gdb REGNUM.
-m:int:stab_reg_to_regnum:int stab_regnr:stab_regnr::no_op_reg_to_regnum::0
+m;int;stab_reg_to_regnum;int stab_regnr;stab_regnr;;no_op_reg_to_regnum;;0
 # Provide a default mapping from a ecoff register number to a gdb REGNUM.
-m:int:ecoff_reg_to_regnum:int ecoff_regnr:ecoff_regnr::no_op_reg_to_regnum::0
+m;int;ecoff_reg_to_regnum;int ecoff_regnr;ecoff_regnr;;no_op_reg_to_regnum;;0
 # Convert from an sdb register number to an internal gdb register number.
-m:int:sdb_reg_to_regnum:int sdb_regnr:sdb_regnr::no_op_reg_to_regnum::0
+m;int;sdb_reg_to_regnum;int sdb_regnr;sdb_regnr;;no_op_reg_to_regnum;;0
 # Provide a default mapping from a DWARF2 register number to a gdb REGNUM.
 # Return -1 for bad REGNUM.  Note: Several targets get this wrong.
-m:int:dwarf2_reg_to_regnum:int dwarf2_regnr:dwarf2_regnr::no_op_reg_to_regnum::0
-m:const char *:register_name:int regnr:regnr::0
+m;int;dwarf2_reg_to_regnum;int dwarf2_regnr;dwarf2_regnr;;no_op_reg_to_regnum;;0
+m;const char *;register_name;int regnr;regnr;;0
 
 # Return the type of a register specified by the architecture.  Only
 # the register cache should call this function directly; others should
 # use "register_type".
-M:struct type *:register_type:int reg_nr:reg_nr
+M;struct type *;register_type;int reg_nr;reg_nr
 
-M:struct frame_id:dummy_id:struct frame_info *this_frame:this_frame
+M;struct frame_id;dummy_id;struct frame_info *this_frame;this_frame
 # Implement DUMMY_ID and PUSH_DUMMY_CALL, then delete
 # deprecated_fp_regnum.
-v:int:deprecated_fp_regnum:::-1:-1::0
+v;int;deprecated_fp_regnum;;;-1;-1;;0
 
-M:CORE_ADDR:push_dummy_call:struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr:function, regcache, bp_addr, nargs, args, sp, struct_return, struct_addr
-v:int:call_dummy_location::::AT_ENTRY_POINT::0
-M:CORE_ADDR:push_dummy_code:CORE_ADDR sp, CORE_ADDR funaddr, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr, struct regcache *regcache:sp, funaddr, args, nargs, value_type, real_pc, bp_addr, regcache
+M;CORE_ADDR;push_dummy_call;struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr;function, regcache, bp_addr, nargs, args, sp, struct_return, struct_addr
+v;int;call_dummy_location;;;;AT_ENTRY_POINT;;0
+M;CORE_ADDR;push_dummy_code;CORE_ADDR sp, CORE_ADDR funaddr, struct value **args, int nargs, struct type *value_type, CORE_ADDR *real_pc, CORE_ADDR *bp_addr, struct regcache *regcache;sp, funaddr, args, nargs, value_type, real_pc, bp_addr, regcache
 
 # Return true if the code of FRAME is writable.
-m:int:code_of_frame_writable:struct frame_info *frame:frame::default_code_of_frame_writable::0
+m;int;code_of_frame_writable;struct frame_info *frame;frame;;default_code_of_frame_writable;;0
 
-m:void:print_registers_info:struct ui_file *file, struct frame_info *frame, int regnum, int all:file, frame, regnum, all::default_print_registers_info::0
-m:void:print_float_info:struct ui_file *file, struct frame_info *frame, const char *args:file, frame, args::default_print_float_info::0
-M:void:print_vector_info:struct ui_file *file, struct frame_info *frame, const char *args:file, frame, args
+m;void;print_registers_info;struct ui_file *file, struct frame_info *frame, int regnum, int all;file, frame, regnum, all;;default_print_registers_info;;0
+m;void;print_float_info;struct ui_file *file, struct frame_info *frame, const char *args;file, frame, args;;default_print_float_info;;0
+M;void;print_vector_info;struct ui_file *file, struct frame_info *frame, const char *args;file, frame, args
 # MAP a GDB RAW register number onto a simulator register number.  See
 # also include/...-sim.h.
-m:int:register_sim_regno:int reg_nr:reg_nr::legacy_register_sim_regno::0
-m:int:cannot_fetch_register:int regnum:regnum::cannot_register_not::0
-m:int:cannot_store_register:int regnum:regnum::cannot_register_not::0
+m;int;register_sim_regno;int reg_nr;reg_nr;;legacy_register_sim_regno;;0
+m;int;cannot_fetch_register;int regnum;regnum;;cannot_register_not;;0
+m;int;cannot_store_register;int regnum;regnum;;cannot_register_not;;0
 
 # Determine the address where a longjmp will land and save this address
 # in PC.  Return nonzero on success.
 #
 # FRAME corresponds to the longjmp frame.
-F:int:get_longjmp_target:struct frame_info *frame, CORE_ADDR *pc:frame, pc
+F;int;get_longjmp_target;struct frame_info *frame, CORE_ADDR *pc;frame, pc
 
 #
-v:int:believe_pcc_promotion:::::::
+v;int;believe_pcc_promotion;;;;;;;
 #
-m:int:convert_register_p:int regnum, struct type *type:regnum, type:0:generic_convert_register_p::0
-f:int:register_to_value:struct frame_info *frame, int regnum, struct type *type, gdb_byte *buf, int *optimizedp, int *unavailablep:frame, regnum, type, buf, optimizedp, unavailablep:0
-f:void:value_to_register:struct frame_info *frame, int regnum, struct type *type, const gdb_byte *buf:frame, regnum, type, buf:0
+m;int;convert_register_p;int regnum, struct type *type;regnum, type;0;generic_convert_register_p;;0
+f;int;register_to_value;struct frame_info *frame, int regnum, struct type *type, gdb_byte *buf, int *optimizedp, int *unavailablep;frame, regnum, type, buf, optimizedp, unavailablep;0
+f;void;value_to_register;struct frame_info *frame, int regnum, struct type *type, const gdb_byte *buf;frame, regnum, type, buf;0
 # Construct a value representing the contents of register REGNUM in
 # frame FRAME_ID, interpreted as type TYPE.  The routine needs to
 # allocate and return a struct value with all value attributes
 # (but not the value contents) filled in.
-m:struct value *:value_from_register:struct type *type, int regnum, struct frame_id frame_id:type, regnum, frame_id::default_value_from_register::0
+m;struct value *;value_from_register;struct type *type, int regnum, struct frame_id frame_id;type, regnum, frame_id;;default_value_from_register;;0
 #
-m:CORE_ADDR:pointer_to_address:struct type *type, const gdb_byte *buf:type, buf::unsigned_pointer_to_address::0
-m:void:address_to_pointer:struct type *type, gdb_byte *buf, CORE_ADDR addr:type, buf, addr::unsigned_address_to_pointer::0
-M:CORE_ADDR:integer_to_address:struct type *type, const gdb_byte *buf:type, buf
+m;CORE_ADDR;pointer_to_address;struct type *type, const gdb_byte *buf;type, buf;;unsigned_pointer_to_address;;0
+m;void;address_to_pointer;struct type *type, gdb_byte *buf, CORE_ADDR addr;type, buf, addr;;unsigned_address_to_pointer;;0
+M;CORE_ADDR;integer_to_address;struct type *type, const gdb_byte *buf;type, buf
 
 # Return the return-value convention that will be used by FUNCTION
 # to return a value of type VALTYPE.  FUNCTION may be NULL in which
@@ -540,17 +536,17 @@ M:CORE_ADDR:integer_to_address:struct ty
 # stored into the appropriate register.  This can be used when we want
 # to force the value returned by a function (see the "return" command
 # for instance).
-M:enum return_value_convention:return_value:struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf:function, valtype, regcache, readbuf, writebuf
+M;enum return_value_convention;return_value;struct value *function, struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf;function, valtype, regcache, readbuf, writebuf
 
 # Return true if the return value of function is stored in the first hidden
 # parameter.  In theory, this feature should be language-dependent, specified
 # by language and its ABI, such as C++.  Unfortunately, compiler may
 # implement it to a target-dependent feature.  So that we need such hook here
 # to be aware of this in GDB.
-m:int:return_in_first_hidden_param_p:struct type *type:type::default_return_in_first_hidden_param_p::0
+m;int;return_in_first_hidden_param_p;struct type *type;type;;default_return_in_first_hidden_param_p;;0
 
-m:CORE_ADDR:skip_prologue:CORE_ADDR ip:ip:0:0
-M:CORE_ADDR:skip_main_prologue:CORE_ADDR ip:ip
+m;CORE_ADDR;skip_prologue;CORE_ADDR ip;ip;0;0
+M;CORE_ADDR;skip_main_prologue;CORE_ADDR ip;ip
 # On some platforms, a single function may provide multiple entry points,
 # e.g. one that is used for function-pointer calls and a different one
 # that is used for direct function calls.
@@ -562,28 +558,28 @@ M:CORE_ADDR:skip_main_prologue:CORE_ADDR
 # actual breakpoint needs to be set.  Note that skip_entrypoint is used
 # by GDB common code even when debugging optimized code, where skip_prologue
 # is not used.
-M:CORE_ADDR:skip_entrypoint:CORE_ADDR ip:ip
+M;CORE_ADDR;skip_entrypoint;CORE_ADDR ip;ip
 
-f:int:inner_than:CORE_ADDR lhs, CORE_ADDR rhs:lhs, rhs:0:0
-m:const gdb_byte *:breakpoint_from_pc:CORE_ADDR *pcptr, int *lenptr:pcptr, lenptr:0:default_breakpoint_from_pc::0
+f;int;inner_than;CORE_ADDR lhs, CORE_ADDR rhs;lhs, rhs;0;0
+m;const gdb_byte *;breakpoint_from_pc;CORE_ADDR *pcptr, int *lenptr;pcptr, lenptr;0;default_breakpoint_from_pc;;0
 
 # Return the breakpoint kind for this target based on *PCPTR.
-m:int:breakpoint_kind_from_pc:CORE_ADDR *pcptr:pcptr::0:
+m;int;breakpoint_kind_from_pc;CORE_ADDR *pcptr;pcptr;;0;
 
 # Return the software breakpoint from KIND.  KIND can have target
 # specific meaning like the Z0 kind parameter.
 # SIZE is set to the software breakpoint's length in memory.
-m:const gdb_byte *:sw_breakpoint_from_kind:int kind, int *size:kind, size::NULL::0
+m;const gdb_byte *;sw_breakpoint_from_kind;int kind, int *size;kind, size;;NULL;;0
 
 # Return the breakpoint kind for this target based on the current
 # processor state (e.g. the current instruction mode on ARM) and the
 # *PCPTR.  In default, it is gdbarch->breakpoint_kind_from_pc.
-m:int:breakpoint_kind_from_current_state:struct regcache *regcache, CORE_ADDR *pcptr:regcache, pcptr:0:default_breakpoint_kind_from_current_state::0
+m;int;breakpoint_kind_from_current_state;struct regcache *regcache, CORE_ADDR *pcptr;regcache, pcptr;0;default_breakpoint_kind_from_current_state;;0
 
-M:CORE_ADDR:adjust_breakpoint_address:CORE_ADDR bpaddr:bpaddr
-m:int:memory_insert_breakpoint:struct bp_target_info *bp_tgt:bp_tgt:0:default_memory_insert_breakpoint::0
-m:int:memory_remove_breakpoint:struct bp_target_info *bp_tgt:bp_tgt:0:default_memory_remove_breakpoint::0
-v:CORE_ADDR:decr_pc_after_break:::0:::0
+M;CORE_ADDR;adjust_breakpoint_address;CORE_ADDR bpaddr;bpaddr
+m;int;memory_insert_breakpoint;struct bp_target_info *bp_tgt;bp_tgt;0;default_memory_insert_breakpoint;;0
+m;int;memory_remove_breakpoint;struct bp_target_info *bp_tgt;bp_tgt;0;default_memory_remove_breakpoint;;0
+v;CORE_ADDR;decr_pc_after_break;;;0;;;0
 
 # A function can be addressed by either it's "pointer" (possibly a
 # descriptor address) or "entry point" (first executable instruction).
@@ -593,27 +589,27 @@ v:CORE_ADDR:decr_pc_after_break:::0:::0
 # corresponds to the "function pointer" and the function's start
 # corresponds to the "function entry point" - and hence is redundant.
 
-v:CORE_ADDR:deprecated_function_start_offset:::0:::0
+v;CORE_ADDR;deprecated_function_start_offset;;;0;;;0
 
 # Return the remote protocol register number associated with this
 # register.  Normally the identity mapping.
-m:int:remote_register_number:int regno:regno::default_remote_register_number::0
+m;int;remote_register_number;int regno;regno;;default_remote_register_number;;0
 
 # Fetch the target specific address used to represent a load module.
-F:CORE_ADDR:fetch_tls_load_module_address:struct objfile *objfile:objfile
+F;CORE_ADDR;fetch_tls_load_module_address;struct objfile *objfile;objfile
 #
-v:CORE_ADDR:frame_args_skip:::0:::0
-M:CORE_ADDR:unwind_pc:struct frame_info *next_frame:next_frame
-M:CORE_ADDR:unwind_sp:struct frame_info *next_frame:next_frame
+v;CORE_ADDR;frame_args_skip;;;0;;;0
+M;CORE_ADDR;unwind_pc;struct frame_info *next_frame;next_frame
+M;CORE_ADDR;unwind_sp;struct frame_info *next_frame;next_frame
 # DEPRECATED_FRAME_LOCALS_ADDRESS as been replaced by the per-frame
 # frame-base.  Enable frame-base before frame-unwind.
-F:int:frame_num_args:struct frame_info *frame:frame
+F;int;frame_num_args;struct frame_info *frame;frame
 #
-M:CORE_ADDR:frame_align:CORE_ADDR address:address
-m:int:stabs_argument_has_addr:struct type *type:type::default_stabs_argument_has_addr::0
-v:int:frame_red_zone_size
+M;CORE_ADDR;frame_align;CORE_ADDR address;address
+m;int;stabs_argument_has_addr;struct type *type;type;;default_stabs_argument_has_addr;;0
+v;int;frame_red_zone_size
 #
-m:CORE_ADDR:convert_from_func_ptr_addr:CORE_ADDR addr, struct target_ops *targ:addr, targ::convert_from_func_ptr_addr_identity::0
+m;CORE_ADDR;convert_from_func_ptr_addr;CORE_ADDR addr, struct target_ops *targ;addr, targ;;convert_from_func_ptr_addr_identity;;0
 # On some machines there are bits in addresses which are not really
 # part of the address, but are used by the kernel, the hardware, etc.
 # for special purposes.  gdbarch_addr_bits_remove takes out any such bits so
@@ -623,7 +619,13 @@ m:CORE_ADDR:convert_from_func_ptr_addr:C
 # being a few stray bits in the PC which would mislead us, not as some
 # sort of generic thing to handle alignment or segmentation (it's
 # possible it should be in TARGET_READ_PC instead).
-m:CORE_ADDR:addr_bits_remove:CORE_ADDR addr:addr::core_addr_identity::0
+m;CORE_ADDR;addr_bits_remove;CORE_ADDR addr;addr;;core_addr_identity;;0
+
+# On some machines, not all bits of an address word are significant.
+# For example, on AArch64, the top bits of an address known as the "tag"
+# are ignored by the kernel, the hardware, etc. and can be regarded as
+# additional data associated with the address.
+v;int;significant_addr_bit;;;;;gdbarch_addr_bit (gdbarch);
 
 # FIXME/cagney/2001-01-18: This should be split in two.  A target method that
 # indicates if the target needs software single step.  An ISA method to
@@ -640,23 +642,23 @@ m:CORE_ADDR:addr_bits_remove:CORE_ADDR a
 # the condition and only put the breakpoint at the branch destination if
 # the condition is true, so that we ensure forward progress when stepping
 # past a conditional branch to self.
-F:VEC (CORE_ADDR) *:software_single_step:struct regcache *regcache:regcache
+F;std::vector<CORE_ADDR>;software_single_step;struct regcache *regcache;regcache
 
 # Return non-zero if the processor is executing a delay slot and a
 # further single-step is needed before the instruction finishes.
-M:int:single_step_through_delay:struct frame_info *frame:frame
+M;int;single_step_through_delay;struct frame_info *frame;frame
 # FIXME: cagney/2003-08-28: Need to find a better way of selecting the
 # disassembler.  Perhaps objdump can handle it?
-f:int:print_insn:bfd_vma vma, struct disassemble_info *info:vma, info::0:
-f:CORE_ADDR:skip_trampoline_code:struct frame_info *frame, CORE_ADDR pc:frame, pc::generic_skip_trampoline_code::0
+f;int;print_insn;bfd_vma vma, struct disassemble_info *info;vma, info;;default_print_insn;;0
+f;CORE_ADDR;skip_trampoline_code;struct frame_info *frame, CORE_ADDR pc;frame, pc;;generic_skip_trampoline_code;;0
 
 
 # If in_solib_dynsym_resolve_code() returns true, and SKIP_SOLIB_RESOLVER
 # evaluates non-zero, this is the address where the debugger will place
 # a step-resume breakpoint to get us past the dynamic linker.
-m:CORE_ADDR:skip_solib_resolver:CORE_ADDR pc:pc::generic_skip_solib_resolver::0
+m;CORE_ADDR;skip_solib_resolver;CORE_ADDR pc;pc;;generic_skip_solib_resolver;;0
 # Some systems also have trampoline code for returning from shared libs.
-m:int:in_solib_return_trampoline:CORE_ADDR pc, const char *name:pc, name::generic_in_solib_return_trampoline::0
+m;int;in_solib_return_trampoline;CORE_ADDR pc, const char *name;pc, name;;generic_in_solib_return_trampoline;;0
 
 # A target might have problems with watchpoints as soon as the stack
 # frame of the current function has been destroyed.  This mostly happens
@@ -667,7 +669,7 @@ m:int:in_solib_return_trampoline:CORE_AD
 # already been invalidated regardless of the value of addr.  Targets
 # which don't suffer from that problem could just let this functionality
 # untouched.
-m:int:stack_frame_destroyed_p:CORE_ADDR addr:addr:0:generic_stack_frame_destroyed_p::0
+m;int;stack_frame_destroyed_p;CORE_ADDR addr;addr;0;generic_stack_frame_destroyed_p;;0
 # Process an ELF symbol in the minimal symbol table in a backend-specific
 # way.  Normally this hook is supposed to do nothing, however if required,
 # then this hook can be used to apply tranformations to symbols that are
@@ -675,8 +677,8 @@ m:int:stack_frame_destroyed_p:CORE_ADDR 
 # to interpret \`st_other' information to mark compressed code symbols so
 # that they can be treated in the appropriate manner in the processing of
 # the main symbol table and DWARF-2 records.
-F:void:elf_make_msymbol_special:asymbol *sym, struct minimal_symbol *msym:sym, msym
-f:void:coff_make_msymbol_special:int val, struct minimal_symbol *msym:val, msym::default_coff_make_msymbol_special::0
+F;void;elf_make_msymbol_special;asymbol *sym, struct minimal_symbol *msym;sym, msym
+f;void;coff_make_msymbol_special;int val, struct minimal_symbol *msym;val, msym;;default_coff_make_msymbol_special;;0
 # Process a symbol in the main symbol table in a backend-specific way.
 # Normally this hook is supposed to do nothing, however if required,
 # then this hook can be used to apply tranformations to symbols that
@@ -685,7 +687,7 @@ f:void:coff_make_msymbol_special:int val
 # set.  This in turn is needed for symbol values seen in GDB to match
 # the values used at the runtime by the program itself, for function
 # and label references.
-f:void:make_symbol_special:struct symbol *sym, struct objfile *objfile:sym, objfile::default_make_symbol_special::0
+f;void;make_symbol_special;struct symbol *sym, struct objfile *objfile;sym, objfile;;default_make_symbol_special;;0
 # Adjust the address retrieved from a DWARF-2 record other than a line
 # entry in a backend-specific way.  Normally this hook is supposed to
 # return the address passed unchanged, however if that is incorrect for
@@ -694,7 +696,7 @@ f:void:make_symbol_special:struct symbol
 # sure addresses in FDE, range records, etc. referring to compressed
 # code have the ISA bit set, matching line information and the symbol
 # table.
-f:CORE_ADDR:adjust_dwarf2_addr:CORE_ADDR pc:pc::default_adjust_dwarf2_addr::0
+f;CORE_ADDR;adjust_dwarf2_addr;CORE_ADDR pc;pc;;default_adjust_dwarf2_addr;;0
 # Adjust the address updated by a line entry in a backend-specific way.
 # Normally this hook is supposed to return the address passed unchanged,
 # however in the case of inconsistencies in these records, this hook can
@@ -703,20 +705,23 @@ f:CORE_ADDR:adjust_dwarf2_addr:CORE_ADDR
 # are presented with the ISA bit set, which is not always the case.  This
 # in turn ensures breakpoint addresses are correctly matched against the
 # stop PC.
-f:CORE_ADDR:adjust_dwarf2_line:CORE_ADDR addr, int rel:addr, rel::default_adjust_dwarf2_line::0
-v:int:cannot_step_breakpoint:::0:0::0
-v:int:have_nonsteppable_watchpoint:::0:0::0
-F:int:address_class_type_flags:int byte_size, int dwarf2_addr_class:byte_size, dwarf2_addr_class
-M:const char *:address_class_type_flags_to_name:int type_flags:type_flags
+f;CORE_ADDR;adjust_dwarf2_line;CORE_ADDR addr, int rel;addr, rel;;default_adjust_dwarf2_line;;0
+v;int;cannot_step_breakpoint;;;0;0;;0
+v;int;have_nonsteppable_watchpoint;;;0;0;;0
+F;int;address_class_type_flags;int byte_size, int dwarf2_addr_class;byte_size, dwarf2_addr_class
+M;const char *;address_class_type_flags_to_name;int type_flags;type_flags
+# Execute vendor-specific DWARF Call Frame Instruction.  OP is the instruction.
+# FS are passed from the generic execute_cfa_program function.
+m;bool;execute_dwarf_cfa_vendor_op;gdb_byte op, struct dwarf2_frame_state *fs;op, fs;;default_execute_dwarf_cfa_vendor_op;;0
 
 # Return the appropriate type_flags for the supplied address class.
 # This function should return 1 if the address class was recognized and
 # type_flags was set, zero otherwise.
-M:int:address_class_name_to_type_flags:const char *name, int *type_flags_ptr:name, type_flags_ptr
+M;int;address_class_name_to_type_flags;const char *name, int *type_flags_ptr;name, type_flags_ptr
 # Is a register in a group
-m:int:register_reggroup_p:int regnum, struct reggroup *reggroup:regnum, reggroup::default_register_reggroup_p::0
+m;int;register_reggroup_p;int regnum, struct reggroup *reggroup;regnum, reggroup;;default_register_reggroup_p;;0
 # Fetch the pointer to the ith function argument.
-F:CORE_ADDR:fetch_pointer_argument:struct frame_info *frame, int argi, struct type *type:frame, argi, type
+F;CORE_ADDR;fetch_pointer_argument;struct frame_info *frame, int argi, struct type *type;frame, argi, type
 
 # Iterate over all supported register notes in a core file.  For each
 # supported register note section, the iterator must call CB and pass
@@ -724,55 +729,53 @@ F:CORE_ADDR:fetch_pointer_argument:struc
 # the supported register note sections based on the current register
 # values.  Otherwise it should enumerate all supported register note
 # sections.
-M:void:iterate_over_regset_sections:iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache:cb, cb_data, regcache
+M;void;iterate_over_regset_sections;iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache;cb, cb_data, regcache
 
 # Create core file notes
-M:char *:make_corefile_notes:bfd *obfd, int *note_size:obfd, note_size
-
-# The elfcore writer hook to use to write Linux prpsinfo notes to core
-# files.  Most Linux architectures use the same prpsinfo32 or
-# prpsinfo64 layouts, and so won't need to provide this hook, as we
-# call the Linux generic routines in bfd to write prpsinfo notes by
-# default.
-F:char *:elfcore_write_linux_prpsinfo:bfd *obfd, char *note_data, int *note_size, const struct elf_internal_linux_prpsinfo *info:obfd, note_data, note_size, info
+M;char *;make_corefile_notes;bfd *obfd, int *note_size;obfd, note_size
 
 # Find core file memory regions
-M:int:find_memory_regions:find_memory_region_ftype func, void *data:func, data
+M;int;find_memory_regions;find_memory_region_ftype func, void *data;func, data
 
 # Read offset OFFSET of TARGET_OBJECT_LIBRARIES formatted shared libraries list from
 # core file into buffer READBUF with length LEN.  Return the number of bytes read
 # (zero indicates failure).
 # failed, otherwise, return the red length of READBUF.
-M:ULONGEST:core_xfer_shared_libraries:gdb_byte *readbuf, ULONGEST offset, ULONGEST len:readbuf, offset, len
+M;ULONGEST;core_xfer_shared_libraries;gdb_byte *readbuf, ULONGEST offset, ULONGEST len;readbuf, offset, len
 
 # Read offset OFFSET of TARGET_OBJECT_LIBRARIES_AIX formatted shared
 # libraries list from core file into buffer READBUF with length LEN.
 # Return the number of bytes read (zero indicates failure).
-M:ULONGEST:core_xfer_shared_libraries_aix:gdb_byte *readbuf, ULONGEST offset, ULONGEST len:readbuf, offset, len
+M;ULONGEST;core_xfer_shared_libraries_aix;gdb_byte *readbuf, ULONGEST offset, ULONGEST len;readbuf, offset, len
 
 # How the core target converts a PTID from a core file to a string.
-M:const char *:core_pid_to_str:ptid_t ptid:ptid
+M;const char *;core_pid_to_str;ptid_t ptid;ptid
 
 # How the core target extracts the name of a thread from a core file.
-M:const char *:core_thread_name:struct thread_info *thr:thr
+M;const char *;core_thread_name;struct thread_info *thr;thr
+
+# Read offset OFFSET of TARGET_OBJECT_SIGNAL_INFO signal information
+# from core file into buffer READBUF with length LEN.  Return the number
+# of bytes read (zero indicates EOF, a negative value indicates failure).
+M;LONGEST;core_xfer_siginfo;gdb_byte *readbuf, ULONGEST offset, ULONGEST len; readbuf, offset, len
 
 # BFD target to use when generating a core file.
-V:const char *:gcore_bfd_target:::0:0:::pstring (gdbarch->gcore_bfd_target)
+V;const char *;gcore_bfd_target;;;0;0;;;pstring (gdbarch->gcore_bfd_target)
 
 # If the elements of C++ vtables are in-place function descriptors rather
 # than normal function pointers (which may point to code or a descriptor),
 # set this to one.
-v:int:vtable_function_descriptors:::0:0::0
+v;int;vtable_function_descriptors;;;0;0;;0
 
 # Set if the least significant bit of the delta is used instead of the least
 # significant bit of the pfn for pointers to virtual member functions.
-v:int:vbit_in_delta:::0:0::0
+v;int;vbit_in_delta;;;0;0;;0
 
 # Advance PC to next instruction in order to skip a permanent breakpoint.
-f:void:skip_permanent_breakpoint:struct regcache *regcache:regcache:default_skip_permanent_breakpoint:default_skip_permanent_breakpoint::0
+f;void;skip_permanent_breakpoint;struct regcache *regcache;regcache;default_skip_permanent_breakpoint;default_skip_permanent_breakpoint;;0
 
 # The maximum length of an instruction on this architecture in bytes.
-V:ULONGEST:max_insn_length:::0:0
+V;ULONGEST;max_insn_length;;;0;0
 
 # Copy the instruction at FROM to TO, and make any adjustments
 # necessary to single-step it at that address.
@@ -796,14 +799,10 @@ V:ULONGEST:max_insn_length:::0:0
 # If you do not provide this function, GDB assumes that the
 # architecture does not support displaced stepping.
 #
-# If your architecture doesn't need to adjust instructions before
-# single-stepping them, consider using simple_displaced_step_copy_insn
-# here.
-#
 # If the instruction cannot execute out of line, return NULL.  The
 # core falls back to stepping past the instruction in-line instead in
 # that case.
-M:struct displaced_step_closure *:displaced_step_copy_insn:CORE_ADDR from, CORE_ADDR to, struct regcache *regs:from, to, regs
+M;struct displaced_step_closure *;displaced_step_copy_insn;CORE_ADDR from, CORE_ADDR to, struct regcache *regs;from, to, regs
 
 # Return true if GDB should use hardware single-stepping to execute
 # the displaced instruction identified by CLOSURE.  If false,
@@ -814,7 +813,7 @@ M:struct displaced_step_closure *:displa
 #
 # The default implementation returns false on all targets that
 # provide a gdbarch_software_single_step routine, and true otherwise.
-m:int:displaced_step_hw_singlestep:struct displaced_step_closure *closure:closure::default_displaced_step_hw_singlestep::0
+m;int;displaced_step_hw_singlestep;struct displaced_step_closure *closure;closure;;default_displaced_step_hw_singlestep;;0
 
 # Fix up the state resulting from successfully single-stepping a
 # displaced instruction, to give the result we would have gotten from
@@ -832,19 +831,7 @@ m:int:displaced_step_hw_singlestep:struc
 #
 # For a general explanation of displaced stepping and how GDB uses it,
 # see the comments in infrun.c.
-M:void:displaced_step_fixup:struct displaced_step_closure *closure, CORE_ADDR from, CORE_ADDR to, struct regcache *regs:closure, from, to, regs::NULL
-
-# Free a closure returned by gdbarch_displaced_step_copy_insn.
-#
-# If you provide gdbarch_displaced_step_copy_insn, you must provide
-# this function as well.
-#
-# If your architecture uses closures that don't need to be freed, then
-# you can use simple_displaced_step_free_closure here.
-#
-# For a general explanation of displaced stepping and how GDB uses it,
-# see the comments in infrun.c.
-m:void:displaced_step_free_closure:struct displaced_step_closure *closure:closure::NULL::(! gdbarch->displaced_step_free_closure) != (! gdbarch->displaced_step_copy_insn)
+M;void;displaced_step_fixup;struct displaced_step_closure *closure, CORE_ADDR from, CORE_ADDR to, struct regcache *regs;closure, from, to, regs;;NULL
 
 # Return the address of an appropriate place to put displaced
 # instructions while we step over them.  There need only be one such
@@ -853,7 +840,7 @@ m:void:displaced_step_free_closure:struc
 #
 # For a general explanation of displaced stepping and how GDB uses it,
 # see the comments in infrun.c.
-m:CORE_ADDR:displaced_step_location:void:::NULL::(! gdbarch->displaced_step_location) != (! gdbarch->displaced_step_copy_insn)
+m;CORE_ADDR;displaced_step_location;void;;;NULL;;(! gdbarch->displaced_step_location) != (! gdbarch->displaced_step_copy_insn)
 
 # Relocate an instruction to execute at a different address.  OLDLOC
 # is the address in the inferior memory where the instruction to
@@ -866,27 +853,27 @@ m:CORE_ADDR:displaced_step_location:void
 # should be adjusted to return to the instruction after OLDLOC;
 # relative branches, and other PC-relative instructions need the
 # offset adjusted; etc.
-M:void:relocate_instruction:CORE_ADDR *to, CORE_ADDR from:to, from::NULL
+M;void;relocate_instruction;CORE_ADDR *to, CORE_ADDR from;to, from;;NULL
 
 # Refresh overlay mapped state for section OSECT.
-F:void:overlay_update:struct obj_section *osect:osect
+F;void;overlay_update;struct obj_section *osect;osect
 
-M:const struct target_desc *:core_read_description:struct target_ops *target, bfd *abfd:target, abfd
+M;const struct target_desc *;core_read_description;struct target_ops *target, bfd *abfd;target, abfd
 
 # Handle special encoding of static variables in stabs debug info.
-F:const char *:static_transform_name:const char *name:name
+F;const char *;static_transform_name;const char *name;name
 # Set if the address in N_SO or N_FUN stabs may be zero.
-v:int:sofun_address_maybe_missing:::0:0::0
+v;int;sofun_address_maybe_missing;;;0;0;;0
 
 # Parse the instruction at ADDR storing in the record execution log
 # the registers REGCACHE and memory ranges that will be affected when
 # the instruction executes, along with their current values.
 # Return -1 if something goes wrong, 0 otherwise.
-M:int:process_record:struct regcache *regcache, CORE_ADDR addr:regcache, addr
+M;int;process_record;struct regcache *regcache, CORE_ADDR addr;regcache, addr
 
 # Save process state after a signal.
 # Return -1 if something goes wrong, 0 otherwise.
-M:int:process_record_signal:struct regcache *regcache, enum gdb_signal signal:regcache, signal
+M;int;process_record_signal;struct regcache *regcache, enum gdb_signal signal;regcache, signal
 
 # Signal translation: translate inferior's signal (target's) number
 # into GDB's representation.  The implementation of this method must
@@ -895,7 +882,7 @@ M:int:process_record_signal:struct regca
 # headers.  This is mainly used when cross-debugging core files ---
 # "Live" targets hide the translation behind the target interface
 # (target_wait, target_resume, etc.).
-M:enum gdb_signal:gdb_signal_from_target:int signo:signo
+M;enum gdb_signal;gdb_signal_from_target;int signo;signo
 
 # Signal translation: translate the GDB's internal signal number into
 # the inferior's signal (target's) representation.  The implementation
@@ -904,26 +891,26 @@ M:enum gdb_signal:gdb_signal_from_target
 # header, or similar headers.
 # Return the target signal number if found, or -1 if the GDB internal
 # signal number is invalid.
-M:int:gdb_signal_to_target:enum gdb_signal signal:signal
+M;int;gdb_signal_to_target;enum gdb_signal signal;signal
 
 # Extra signal info inspection.
 #
 # Return a type suitable to inspect extra signal information.
-M:struct type *:get_siginfo_type:void:
+M;struct type *;get_siginfo_type;void;
 
 # Record architecture-specific information from the symbol table.
-M:void:record_special_symbol:struct objfile *objfile, asymbol *sym:objfile, sym
+M;void;record_special_symbol;struct objfile *objfile, asymbol *sym;objfile, sym
 
 # Function for the 'catch syscall' feature.
 
 # Get architecture-specific system calls information from registers.
-M:LONGEST:get_syscall_number:ptid_t ptid:ptid
+M;LONGEST;get_syscall_number;ptid_t ptid;ptid
 
 # The filename of the XML syscall for this architecture.
-v:const char *:xml_syscall_file:::0:0::0:pstring (gdbarch->xml_syscall_file)
+v;const char *;xml_syscall_file;;;0;0;;0;pstring (gdbarch->xml_syscall_file)
 
 # Information about system calls from this architecture
-v:struct syscalls_info *:syscalls_info:::0:0::0:host_address_to_string (gdbarch->syscalls_info)
+v;struct syscalls_info *;syscalls_info;;;0;0;;0;host_address_to_string (gdbarch->syscalls_info)
 
 # SystemTap related fields and functions.
 
@@ -934,11 +921,11 @@ v:struct syscalls_info *:syscalls_info::
 #  \$10 ;; integer constant 10
 #
 # in this case, this prefix would be the character \`\$\'.
-v:const char *const *:stap_integer_prefixes:::0:0::0:pstring_list (gdbarch->stap_integer_prefixes)
+v;const char *const *;stap_integer_prefixes;;;0;0;;0;pstring_list (gdbarch->stap_integer_prefixes)
 
 # A NULL-terminated array of suffixes used to mark an integer constant
 # on the architecture's assembly.
-v:const char *const *:stap_integer_suffixes:::0:0::0:pstring_list (gdbarch->stap_integer_suffixes)
+v;const char *const *;stap_integer_suffixes;;;0;0;;0;pstring_list (gdbarch->stap_integer_suffixes)
 
 # A NULL-terminated array of prefixes used to mark a register name on
 # the architecture's assembly.
@@ -947,11 +934,11 @@ v:const char *const *:stap_integer_suffi
 #  \%eax ;; register eax
 #
 # in this case, this prefix would be the character \`\%\'.
-v:const char *const *:stap_register_prefixes:::0:0::0:pstring_list (gdbarch->stap_register_prefixes)
+v;const char *const *;stap_register_prefixes;;;0;0;;0;pstring_list (gdbarch->stap_register_prefixes)
 
 # A NULL-terminated array of suffixes used to mark a register name on
 # the architecture's assembly.
-v:const char *const *:stap_register_suffixes:::0:0::0:pstring_list (gdbarch->stap_register_suffixes)
+v;const char *const *;stap_register_suffixes;;;0;0;;0;pstring_list (gdbarch->stap_register_suffixes)
 
 # A NULL-terminated array of prefixes used to mark a register
 # indirection on the architecture's assembly.
@@ -963,7 +950,7 @@ v:const char *const *:stap_register_suff
 #
 # Please note that we use the indirection prefix also for register
 # displacement, e.g., \`4\(\%eax\)\' on x86.
-v:const char *const *:stap_register_indirection_prefixes:::0:0::0:pstring_list (gdbarch->stap_register_indirection_prefixes)
+v;const char *const *;stap_register_indirection_prefixes;;;0;0;;0;pstring_list (gdbarch->stap_register_indirection_prefixes)
 
 # A NULL-terminated array of suffixes used to mark a register
 # indirection on the architecture's assembly.
@@ -975,7 +962,7 @@ v:const char *const *:stap_register_indi
 #
 # Please note that we use the indirection suffix also for register
 # displacement, e.g., \`4\(\%eax\)\' on x86.
-v:const char *const *:stap_register_indirection_suffixes:::0:0::0:pstring_list (gdbarch->stap_register_indirection_suffixes)
+v;const char *const *;stap_register_indirection_suffixes;;;0;0;;0;pstring_list (gdbarch->stap_register_indirection_suffixes)
 
 # Prefix(es) used to name a register using GDB's nomenclature.
 #
@@ -983,10 +970,10 @@ v:const char *const *:stap_register_indi
 # language (e.g., \`10\' is the 10th general-purpose register).  However,
 # inside GDB this same register has an \`r\' appended to its name, so the 10th
 # register would be represented as \`r10\' internally.
-v:const char *:stap_gdb_register_prefix:::0:0::0:pstring (gdbarch->stap_gdb_register_prefix)
+v;const char *;stap_gdb_register_prefix;;;0;0;;0;pstring (gdbarch->stap_gdb_register_prefix)
 
 # Suffix used to name a register using GDB's nomenclature.
-v:const char *:stap_gdb_register_suffix:::0:0::0:pstring (gdbarch->stap_gdb_register_suffix)
+v;const char *;stap_gdb_register_suffix;;;0;0;;0;pstring (gdbarch->stap_gdb_register_suffix)
 
 # Check if S is a single operand.
 #
@@ -1000,7 +987,7 @@ v:const char *:stap_gdb_register_suffix:
 # and return 1 if some were found, or zero otherwise.  Please try to match
 # as much info as you can from the string, i.e., if you have to match
 # something like \`\(\%\', do not match just the \`\(\'.
-M:int:stap_is_single_operand:const char *s:s
+M;int;stap_is_single_operand;const char *s;s
 
 # Function used to handle a "special case" in the parser.
 #
@@ -1023,53 +1010,53 @@ M:int:stap_is_single_operand:const char 
 # if the token was not recognized as a special token (in this case, returning
 # zero means that the special parser is deferring the parsing to the generic
 # parser), and should advance the buffer pointer (p->arg).
-M:int:stap_parse_special_token:struct stap_parse_info *p:p
+M;int;stap_parse_special_token;struct stap_parse_info *p;p
 
 # DTrace related functions.
 
 # The expression to compute the NARTGth+1 argument to a DTrace USDT probe.
 # NARG must be >= 0.
-M:void:dtrace_parse_probe_argument:struct parser_state *pstate, int narg:pstate, narg
+M;void;dtrace_parse_probe_argument;struct parser_state *pstate, int narg;pstate, narg
 
 # True if the given ADDR does not contain the instruction sequence
 # corresponding to a disabled DTrace is-enabled probe.
-M:int:dtrace_probe_is_enabled:CORE_ADDR addr:addr
+M;int;dtrace_probe_is_enabled;CORE_ADDR addr;addr
 
 # Enable a DTrace is-enabled probe at ADDR.
-M:void:dtrace_enable_probe:CORE_ADDR addr:addr
+M;void;dtrace_enable_probe;CORE_ADDR addr;addr
 
 # Disable a DTrace is-enabled probe at ADDR.
-M:void:dtrace_disable_probe:CORE_ADDR addr:addr
+M;void;dtrace_disable_probe;CORE_ADDR addr;addr
 
 # True if the list of shared libraries is one and only for all
 # processes, as opposed to a list of shared libraries per inferior.
 # This usually means that all processes, although may or may not share
 # an address space, will see the same set of symbols at the same
 # addresses.
-v:int:has_global_solist:::0:0::0
+v;int;has_global_solist;;;0;0;;0
 
 # On some targets, even though each inferior has its own private
 # address space, the debug interface takes care of making breakpoints
 # visible to all address spaces automatically.  For such cases,
 # this property should be set to true.
-v:int:has_global_breakpoints:::0:0::0
+v;int;has_global_breakpoints;;;0;0;;0
 
 # True if inferiors share an address space (e.g., uClinux).
-m:int:has_shared_address_space:void:::default_has_shared_address_space::0
+m;int;has_shared_address_space;void;;;default_has_shared_address_space;;0
 
 # True if a fast tracepoint can be set at an address.
-m:int:fast_tracepoint_valid_at:CORE_ADDR addr, char **msg:addr, msg::default_fast_tracepoint_valid_at::0
+m;int;fast_tracepoint_valid_at;CORE_ADDR addr, char **msg;addr, msg;;default_fast_tracepoint_valid_at;;0
 
 # Guess register state based on tracepoint location.  Used for tracepoints
 # where no registers have been collected, but there's only one location,
 # allowing us to guess the PC value, and perhaps some other registers.
 # On entry, regcache has all registers marked as unavailable.
-m:void:guess_tracepoint_registers:struct regcache *regcache, CORE_ADDR addr:regcache, addr::default_guess_tracepoint_registers::0
+m;void;guess_tracepoint_registers;struct regcache *regcache, CORE_ADDR addr;regcache, addr;;default_guess_tracepoint_registers;;0
 
 # Return the "auto" target charset.
-f:const char *:auto_charset:void::default_auto_charset:default_auto_charset::0
+f;const char *;auto_charset;void;;default_auto_charset;default_auto_charset;;0
 # Return the "auto" target wide charset.
-f:const char *:auto_wide_charset:void::default_auto_wide_charset:default_auto_wide_charset::0
+f;const char *;auto_wide_charset;void;;default_auto_wide_charset;default_auto_wide_charset;;0
 
 # If non-empty, this is a file extension that will be opened in place
 # of the file extension reported by the shared library list.
@@ -1077,27 +1064,27 @@ f:const char *:auto_wide_charset:void::d
 # This is most useful for toolchains that use a post-linker tool,
 # where the names of the files run on the target differ in extension
 # compared to the names of the files GDB should load for debug info.
-v:const char *:solib_symbols_extension:::::::pstring (gdbarch->solib_symbols_extension)
+v;const char *;solib_symbols_extension;;;;;;;pstring (gdbarch->solib_symbols_extension)
 
 # If true, the target OS has DOS-based file system semantics.  That
 # is, absolute paths include a drive name, and the backslash is
 # considered a directory separator.
-v:int:has_dos_based_file_system:::0:0::0
+v;int;has_dos_based_file_system;;;0;0;;0
 
 # Generate bytecodes to collect the return address in a frame.
 # Since the bytecodes run on the target, possibly with GDB not even
 # connected, the full unwinding machinery is not available, and
 # typically this function will issue bytecodes for one or more likely
 # places that the return address may be found.
-m:void:gen_return_address:struct agent_expr *ax, struct axs_value *value, CORE_ADDR scope:ax, value, scope::default_gen_return_address::0
+m;void;gen_return_address;struct agent_expr *ax, struct axs_value *value, CORE_ADDR scope;ax, value, scope;;default_gen_return_address;;0
 
 # Implement the "info proc" command.
-M:void:info_proc:const char *args, enum info_proc_what what:args, what
+M;void;info_proc;const char *args, enum info_proc_what what;args, what
 
 # Implement the "info proc" command for core files.  Noe that there
 # are two "info_proc"-like methods on gdbarch -- one for core files,
 # one for live targets.
-M:void:core_info_proc:const char *args, enum info_proc_what what:args, what
+M;void;core_info_proc;const char *args, enum info_proc_what what;args, what
 
 # Iterate over all objfiles in the order that makes the most sense
 # for the architecture to make global symbol searches.
@@ -1112,66 +1099,66 @@ M:void:core_info_proc:const char *args, 
 #
 # If not NULL, CURRENT_OBJFILE corresponds to the objfile being
 # inspected when the symbol search was requested.
-m:void:iterate_over_objfiles_in_search_order:iterate_over_objfiles_in_search_order_cb_ftype *cb, void *cb_data, struct objfile *current_objfile:cb, cb_data, current_objfile:0:default_iterate_over_objfiles_in_search_order::0
+m;void;iterate_over_objfiles_in_search_order;iterate_over_objfiles_in_search_order_cb_ftype *cb, void *cb_data, struct objfile *current_objfile;cb, cb_data, current_objfile;0;default_iterate_over_objfiles_in_search_order;;0
 
 # Ravenscar arch-dependent ops.
-v:struct ravenscar_arch_ops *:ravenscar_ops:::NULL:NULL::0:host_address_to_string (gdbarch->ravenscar_ops)
+v;struct ravenscar_arch_ops *;ravenscar_ops;;;NULL;NULL;;0;host_address_to_string (gdbarch->ravenscar_ops)
 
 # Return non-zero if the instruction at ADDR is a call; zero otherwise.
-m:int:insn_is_call:CORE_ADDR addr:addr::default_insn_is_call::0
+m;int;insn_is_call;CORE_ADDR addr;addr;;default_insn_is_call;;0
 
 # Return non-zero if the instruction at ADDR is a return; zero otherwise.
-m:int:insn_is_ret:CORE_ADDR addr:addr::default_insn_is_ret::0
+m;int;insn_is_ret;CORE_ADDR addr;addr;;default_insn_is_ret;;0
 
 # Return non-zero if the instruction at ADDR is a jump; zero otherwise.
-m:int:insn_is_jump:CORE_ADDR addr:addr::default_insn_is_jump::0
+m;int;insn_is_jump;CORE_ADDR addr;addr;;default_insn_is_jump;;0
 
 # Read one auxv entry from *READPTR, not reading locations >= ENDPTR.
 # Return 0 if *READPTR is already at the end of the buffer.
 # Return -1 if there is insufficient buffer for a whole entry.
 # Return 1 if an entry was read into *TYPEP and *VALP.
-M:int:auxv_parse:gdb_byte **readptr, gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp:readptr, endptr, typep, valp
+M;int;auxv_parse;gdb_byte **readptr, gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp;readptr, endptr, typep, valp
 
 # Print the description of a single auxv entry described by TYPE and VAL
 # to FILE.
-m:void:print_auxv_entry:struct ui_file *file, CORE_ADDR type, CORE_ADDR val:file, type, val::default_print_auxv_entry::0
+m;void;print_auxv_entry;struct ui_file *file, CORE_ADDR type, CORE_ADDR val;file, type, val;;default_print_auxv_entry;;0
 
 # Find the address range of the current inferior's vsyscall/vDSO, and
 # write it to *RANGE.  If the vsyscall's length can't be determined, a
 # range with zero length is returned.  Returns true if the vsyscall is
 # found, false otherwise.
-m:int:vsyscall_range:struct mem_range *range:range::default_vsyscall_range::0
+m;int;vsyscall_range;struct mem_range *range;range;;default_vsyscall_range;;0
 
 # Allocate SIZE bytes of PROT protected page aligned memory in inferior.
 # PROT has GDB_MMAP_PROT_* bitmask format.
 # Throw an error if it is not possible.  Returned address is always valid.
-f:CORE_ADDR:infcall_mmap:CORE_ADDR size, unsigned prot:size, prot::default_infcall_mmap::0
+f;CORE_ADDR;infcall_mmap;CORE_ADDR size, unsigned prot;size, prot;;default_infcall_mmap;;0
 
 # Deallocate SIZE bytes of memory at ADDR in inferior from gdbarch_infcall_mmap.
 # Print a warning if it is not possible.
-f:void:infcall_munmap:CORE_ADDR addr, CORE_ADDR size:addr, size::default_infcall_munmap::0
+f;void;infcall_munmap;CORE_ADDR addr, CORE_ADDR size;addr, size;;default_infcall_munmap;;0
 
 # Return string (caller has to use xfree for it) with options for GCC
 # to produce code for this target, typically "-m64", "-m32" or "-m31".
 # These options are put before CU's DW_AT_producer compilation options so that
 # they can override it.  Method may also return NULL.
-m:char *:gcc_target_options:void:::default_gcc_target_options::0
+m;char *;gcc_target_options;void;;;default_gcc_target_options;;0
 
 # Return a regular expression that matches names used by this
 # architecture in GNU configury triplets.  The result is statically
 # allocated and must not be freed.  The default implementation simply
 # returns the BFD architecture name, which is correct in nearly every
 # case.
-m:const char *:gnu_triplet_regexp:void:::default_gnu_triplet_regexp::0
+m;const char *;gnu_triplet_regexp;void;;;default_gnu_triplet_regexp;;0
 
 # Return the size in 8-bit bytes of an addressable memory unit on this
 # architecture.  This corresponds to the number of 8-bit bytes associated to
 # each address in memory.
-m:int:addressable_memory_unit_size:void:::default_addressable_memory_unit_size::0
+m;int;addressable_memory_unit_size;void;;;default_addressable_memory_unit_size;;0
 
 # Functions for allowing a target to modify its disassembler options.
-v:char **:disassembler_options:::0:0::0:pstring_ptr (gdbarch->disassembler_options)
-v:const disasm_options_t *:valid_disassembler_options:::0:0::0:host_address_to_string (gdbarch->valid_disassembler_options)
+v;char **;disassembler_options;;;0;0;;0;pstring_ptr (gdbarch->disassembler_options)
+v;const disasm_options_t *;valid_disassembler_options;;;0;0;;0;host_address_to_string (gdbarch->valid_disassembler_options)
 
 EOF
 }
@@ -1226,7 +1213,7 @@ cat <<EOF
 
 /* Dynamic architecture support for GDB, the GNU debugger.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -1268,6 +1255,7 @@ cat <<EOF
 #ifndef GDBARCH_H
 #define GDBARCH_H
 
+#include <vector>
 #include "frame.h"
 #include "dis-asm.h"
 
@@ -1285,7 +1273,6 @@ struct target_ops;
 struct obstack;
 struct bp_target_info;
 struct target_desc;
-struct objfile;
 struct symbol;
 struct displaced_step_closure;
 struct syscall;
@@ -1294,7 +1281,6 @@ struct axs_value;
 struct stap_parse_info;
 struct parser_state;
 struct ravenscar_arch_ops;
-struct elf_internal_linux_prpsinfo;
 struct mem_range;
 struct syscalls_info;
 struct thread_info;
@@ -1481,7 +1467,21 @@ struct gdbarch_info
   bfd *abfd;
 
   /* Use default: NULL (ZERO).  */
-  void *tdep_info;
+  union
+    {
+      /* Architecture-specific information.  The generic form for targets
+	 that have extra requirements.  */
+      struct gdbarch_tdep_info *tdep_info;
+
+      /* Architecture-specific target description data.  Numerous targets
+	 need only this, so give them an easy way to hold it.  */
+      struct tdesc_arch_data *tdesc_data;
+
+      /* SPU file system ID.  This is a single integer, so using the
+	 generic form would only complicate code.  Other targets may
+	 reuse this member if suitable.  */
+      int *id;
+    };
 
   /* Use default: GDB_OSABI_UNINITIALIZED (-1).  */
   enum gdb_osabi osabi;
@@ -1963,7 +1963,7 @@ gdbarch_dump (struct gdbarch *gdbarch, s
                       "gdbarch_dump: GDB_NM_FILE = %s\\n",
                       gdb_nm_file);
 EOF
-function_list | sort -t: -k 3 | while do_read
+function_list | sort '-t;' -k 3 | while do_read
 do
     # First the predicate
     if class_is_predicate_p
@@ -2518,8 +2518,6 @@ target_gdbarch (void)
   return current_inferior ()->gdbarch;
 }
 
-extern void _initialize_gdbarch (void);
-
 void
 _initialize_gdbarch (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_bfd.c ./gdb/gdb_bfd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_bfd.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_bfd.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for BFD wrappers used by GDB.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -34,9 +34,6 @@
 #include "gdb/fileio.h"
 #include "inferior.h"
 
-typedef bfd *bfdp;
-DEF_VEC_P (bfdp);
-
 /* An object of this type is stored in the section's user data when
    mapping a section.  */
 
@@ -63,8 +60,34 @@ static htab_t all_bfds;
 
 struct gdb_bfd_data
 {
+  gdb_bfd_data (bfd *abfd)
+    : mtime (bfd_get_mtime (abfd)),
+      size (bfd_get_size (abfd)),
+      relocation_computed (0),
+      needs_relocations (0),
+      crc_computed (0)
+  {
+    struct stat buf;
+
+    if (bfd_stat (abfd, &buf) == 0)
+      {
+	inode = buf.st_ino;
+	device_id = buf.st_dev;
+      }
+    else
+      {
+	/* The stat failed.  */
+	inode = 0;
+	device_id = 0;
+      }
+  }
+
+  ~gdb_bfd_data ()
+  {
+  }
+
   /* The reference count.  */
-  int refc;
+  int refc = 1;
 
   /* The mtime of the BFD at the point the cache entry was made.  */
   time_t mtime;
@@ -89,17 +112,17 @@ struct gdb_bfd_data
   unsigned int crc_computed : 1;
 
   /* The file's CRC.  */
-  unsigned long crc;
+  unsigned long crc = 0;
 
   /* If the BFD comes from an archive, this points to the archive's
      BFD.  Otherwise, this is NULL.  */
-  bfd *archive_bfd;
+  bfd *archive_bfd = nullptr;
 
   /* Table of all the bfds this bfd has included.  */
-  VEC (bfdp) *included_bfds;
+  std::vector<gdb_bfd_ref_ptr> included_bfds;
 
   /* The registry.  */
-  REGISTRY_FIELDS;
+  REGISTRY_FIELDS = {};
 };
 
 #define GDB_BFD_DATA_ACCESSOR(ABFD) \
@@ -427,8 +450,7 @@ gdb_bfd_open (const char *name, const ch
 			    host_address_to_string (abfd),
 			    bfd_get_filename (abfd));
       close (fd);
-      gdb_bfd_ref (abfd);
-      return gdb_bfd_ref_ptr (abfd);
+      return new_bfd_ref (abfd);
     }
 
   abfd = bfd_fopen (name, target, FOPEN_RB, fd);
@@ -448,8 +470,7 @@ gdb_bfd_open (const char *name, const ch
       *slot = abfd;
     }
 
-  gdb_bfd_ref (abfd);
-  return gdb_bfd_ref_ptr (abfd);
+  return new_bfd_ref (abfd);
 }
 
 /* A helper function that releases any section data attached to the
@@ -501,7 +522,6 @@ gdb_bfd_close_or_warn (struct bfd *abfd)
 void
 gdb_bfd_ref (struct bfd *abfd)
 {
-  struct stat buf;
   struct gdb_bfd_data *gdata;
   void **slot;
 
@@ -525,25 +545,8 @@ gdb_bfd_ref (struct bfd *abfd)
   /* Ask BFD to decompress sections in bfd_get_full_section_contents.  */
   abfd->flags |= BFD_DECOMPRESS;
 
-  gdata
-    = (struct gdb_bfd_data *) bfd_zalloc (abfd, sizeof (struct gdb_bfd_data));
-  gdata->refc = 1;
-  gdata->mtime = bfd_get_mtime (abfd);
-  gdata->size = bfd_get_size (abfd);
-  gdata->archive_bfd = NULL;
-  if (bfd_stat (abfd, &buf) == 0)
-    {
-      gdata->inode = buf.st_ino;
-      gdata->device_id = buf.st_dev;
-    }
-  else
-    {
-      /* The stat failed.  */
-      gdata->inode = 0;
-      gdata->device_id = 0;
-    }
+  gdata = new gdb_bfd_data (abfd);
   bfd_usrdata (abfd) = gdata;
-
   bfd_alloc_data (abfd);
 
   /* This is the first we've seen it, so add it to the hash table.  */
@@ -557,10 +560,9 @@ gdb_bfd_ref (struct bfd *abfd)
 void
 gdb_bfd_unref (struct bfd *abfd)
 {
-  int ix;
   struct gdb_bfd_data *gdata;
   struct gdb_bfd_cache_search search;
-  bfd *archive_bfd, *included_bfd;
+  bfd *archive_bfd;
 
   if (abfd == NULL)
     return;
@@ -604,13 +606,8 @@ gdb_bfd_unref (struct bfd *abfd)
 	htab_clear_slot (gdb_bfd_cache, slot);
     }
 
-  for (ix = 0;
-       VEC_iterate (bfdp, gdata->included_bfds, ix, included_bfd);
-       ++ix)
-    gdb_bfd_unref (included_bfd);
-  VEC_free (bfdp, gdata->included_bfds);
-
   bfd_free_data (abfd);
+  delete gdata;
   bfd_usrdata (abfd) = NULL;  /* Paranoia.  */
 
   htab_remove_elt (all_bfds, abfd);
@@ -778,10 +775,7 @@ gdb_bfd_fopen (const char *filename, con
 {
   bfd *result = bfd_fopen (filename, target, mode, fd);
 
-  if (result)
-    gdb_bfd_ref (result);
-
-  return gdb_bfd_ref_ptr (result);
+  return new_bfd_ref (result);
 }
 
 /* See gdb_bfd.h.  */
@@ -791,10 +785,7 @@ gdb_bfd_openr (const char *filename, con
 {
   bfd *result = bfd_openr (filename, target);
 
-  if (result)
-    gdb_bfd_ref (result);
-
-  return gdb_bfd_ref_ptr (result);
+  return new_bfd_ref (result);
 }
 
 /* See gdb_bfd.h.  */
@@ -804,10 +795,7 @@ gdb_bfd_openw (const char *filename, con
 {
   bfd *result = bfd_openw (filename, target);
 
-  if (result)
-    gdb_bfd_ref (result);
-
-  return gdb_bfd_ref_ptr (result);
+  return new_bfd_ref (result);
 }
 
 /* See gdb_bfd.h.  */
@@ -832,10 +820,7 @@ gdb_bfd_openr_iovec (const char *filenam
 				 open_func, open_closure,
 				 pread_func, close_func, stat_func);
 
-  if (result)
-    gdb_bfd_ref (result);
-
-  return gdb_bfd_ref_ptr (result);
+  return new_bfd_ref (result);
 }
 
 /* See gdb_bfd.h.  */
@@ -879,9 +864,8 @@ gdb_bfd_record_inclusion (bfd *includer,
 {
   struct gdb_bfd_data *gdata;
 
-  gdb_bfd_ref (includee);
   gdata = (struct gdb_bfd_data *) bfd_usrdata (includer);
-  VEC_safe_push (bfdp, gdata->included_bfds, includee);
+  gdata->included_bfds.push_back (new_bfd_ref (includee));
 }
 
 /* See gdb_bfd.h.  */
@@ -891,10 +875,7 @@ gdb_bfd_fdopenr (const char *filename, c
 {
   bfd *result = bfd_fdopenr (filename, target, fd);
 
-  if (result)
-    gdb_bfd_ref (result);
-
-  return gdb_bfd_ref_ptr (result);
+  return new_bfd_ref (result);
 }
 
 
@@ -961,14 +942,12 @@ print_one_bfd (void **slot, void *data)
   bfd *abfd = (struct bfd *) *slot;
   struct gdb_bfd_data *gdata = (struct gdb_bfd_data *) bfd_usrdata (abfd);
   struct ui_out *uiout = (struct ui_out *) data;
-  struct cleanup *inner;
 
-  inner = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+  ui_out_emit_tuple tuple_emitter (uiout, NULL);
   uiout->field_int ("refcount", gdata->refc);
   uiout->field_string ("addr", host_address_to_string (abfd));
   uiout->field_string ("filename", bfd_get_filename (abfd));
   uiout->text ("\n");
-  do_cleanups (inner);
 
   return 1;
 }
@@ -976,25 +955,19 @@ print_one_bfd (void **slot, void *data)
 /* Implement the 'maint info bfd' command.  */
 
 static void
-maintenance_info_bfds (char *arg, int from_tty)
+maintenance_info_bfds (const char *arg, int from_tty)
 {
-  struct cleanup *cleanup;
   struct ui_out *uiout = current_uiout;
 
-  cleanup = make_cleanup_ui_out_table_begin_end (uiout, 3, -1, "bfds");
+  ui_out_emit_table table_emitter (uiout, 3, -1, "bfds");
   uiout->table_header (10, ui_left, "refcount", "Refcount");
   uiout->table_header (18, ui_left, "addr", "Address");
   uiout->table_header (40, ui_left, "filename", "Filename");
 
   uiout->table_body ();
   htab_traverse (all_bfds, print_one_bfd, uiout);
-
-  do_cleanups (cleanup);
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_gdb_bfd;
-
 void
 _initialize_gdb_bfd (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_bfd.h ./gdb/gdb_bfd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_bfd.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_bfd.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for BFD wrappers used by GDB.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -68,6 +68,16 @@ struct gdb_bfd_ref_policy
 /* A gdb::ref_ptr that has been specialized for BFD objects.  */
 typedef gdb::ref_ptr<struct bfd, gdb_bfd_ref_policy> gdb_bfd_ref_ptr;
 
+/* A helper function that calls gdb_bfd_ref and returns a
+   gdb_bfd_ref_ptr.  */
+
+static inline gdb_bfd_ref_ptr
+new_bfd_ref (struct bfd *abfd)
+{
+  gdb_bfd_ref (abfd);
+  return gdb_bfd_ref_ptr (abfd);
+}
+
 /* Open a read-only (FOPEN_RB) BFD given arguments like bfd_fopen.
    If NAME starts with TARGET_SYSROOT_PREFIX then the BFD will be
    opened using target fileio operations if necessary.  Returns NULL
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_buildall.sh ./gdb/gdb_buildall.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_buildall.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_buildall.sh	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
 
 # Build script to build GDB with all targets enabled.
 
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb.c ./gdb/gdb.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Main function for CLI gdb.  
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbcmd.h ./gdb/gdbcmd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbcmd.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbcmd.h	2018-01-09 02:04:57.000000000 +0000
@@ -6,7 +6,7 @@
    fnasser@redhat.com    */
 
 /* Header file for GDB-specific command-line stuff.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 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
@@ -26,6 +26,7 @@
 
 #include "command.h"
 #include "ui-out.h"
+#include "cli/cli-script.h"
 
 /* Chain containing all defined commands.  */
 
@@ -95,6 +96,10 @@ extern struct cmd_list_element *maintena
 
 extern struct cmd_list_element *maintenanceprintlist;
 
+/* Chain containing all defined "maintenance check" subcommands.  */
+
+extern struct cmd_list_element *maintenancechecklist;
+
 /* Chain containing all defined "maintenance set" subcommands.  */
 
 extern struct cmd_list_element *maintenance_set_cmdlist;
@@ -127,8 +132,8 @@ extern struct cmd_list_element *showchec
 
 extern struct cmd_list_element *save_cmdlist;
 
-extern void execute_command (char *, int);
-extern std::string execute_command_to_string (char *p, int from_tty);
+extern void execute_command (const char *, int);
+extern std::string execute_command_to_string (const char *p, int from_tty);
 
 enum command_control_type execute_control_command (struct command_line *);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb-code-style.el ./gdb/gdb-code-style.el
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb-code-style.el	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb-code-style.el	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 ;;; gdb-code-style.el --- code style checker for GDB contributors
 
-;; Copyright (C) 2012-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 ;; Author: Yao Qi <yao@codesourcery.com>
 ;; Created: 17 April 2012
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbcore.h ./gdb/gdbcore.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbcore.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbcore.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Machine independent variables that describe the core file under GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -29,12 +29,6 @@ struct regcache;
 #include "exec.h"
 #include "target.h"
 
-/* Return the name of the executable file as a string.
-   ERR nonzero means get error if there is none specified;
-   otherwise return 0 in that case.  */
-
-extern char *get_exec_file (int err);
-
 /* Nonzero if there is a core file.  */
 
 extern int have_core_file_p (void);
@@ -43,11 +37,11 @@ extern int have_core_file_p (void);
 
 extern void memory_error (enum target_xfer_status status, CORE_ADDR memaddr);
 
-/* The string 'memory_error' would use as exception message.  Space
-   for the result is malloc'd, caller must free.  */
+/* The string 'memory_error' would use as exception message.  */
 
-extern char *memory_error_message (enum target_xfer_status err,
-				   struct gdbarch *gdbarch, CORE_ADDR memaddr);
+extern std::string memory_error_message (enum target_xfer_status err,
+					 struct gdbarch *gdbarch,
+					 CORE_ADDR memaddr);
 
 /* Like target_read_memory, but report an error if can't read.  */
 
@@ -133,7 +127,7 @@ extern void (*deprecated_exec_file_displ
 /* Hook for "file_command", which is more useful than above
    (because it is invoked AFTER symbols are read, not before).  */
 
-extern void (*deprecated_file_changed_hook) (char *filename);
+extern void (*deprecated_file_changed_hook) (const char *filename);
 
 extern void specify_exec_file_hook (void (*hook) (const char *filename));
 
@@ -147,7 +141,7 @@ extern struct target_ops *core_target;
 
 extern int write_files;
 
-extern void core_file_command (char *filename, int from_tty);
+extern void core_file_command (const char *filename, int from_tty);
 
 extern void exec_file_attach (const char *filename, int from_tty);
 
@@ -232,6 +226,49 @@ struct core_fns
 
   };
 
+/* Build either a single-thread or multi-threaded section name for
+   PTID.
+
+   If ptid's lwp member is zero, we want to do the single-threaded
+   thing: look for a section named NAME (as passed to the
+   constructor).  If ptid's lwp member is non-zero, we'll want do the
+   multi-threaded thing: look for a section named "NAME/LWP", where
+   LWP is the shortest ASCII decimal representation of ptid's lwp
+   member.  */
+
+class thread_section_name
+{
+public:
+  /* NAME is the single-threaded section name.  If PTID represents an
+     LWP, then the build section name is "NAME/LWP", otherwise it's
+     just "NAME" unmodified.  */
+  thread_section_name (const char *name, ptid_t ptid)
+  {
+    if (ptid.lwp_p ())
+      {
+	m_storage = string_printf ("%s/%ld", name, ptid.lwp ());
+	m_section_name = m_storage.c_str ();
+      }
+    else
+      m_section_name = name;
+  }
+
+  /* Return the computed section name.  The result is valid as long as
+     this thread_section_name object is live.  */
+  const char *c_str () const
+  { return m_section_name; }
+
+  DISABLE_COPY_AND_ASSIGN (thread_section_name);
+
+private:
+  /* Either a pointer into M_STORAGE, or a pointer to the name passed
+     as parameter to the constructor.  */
+  const char *m_section_name;
+  /* If we need to build a new section name, this is where we store
+     it.  */
+  std::string m_storage;
+};
+
 /* NOTE: cagney/2004-04-05: Replaced by "regset.h" and
    regset_from_core_section().  */
 extern void deprecated_add_core_fns (struct core_fns *cf);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_curses.h ./gdb/gdb_curses.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_curses.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_curses.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Portable <curses.h>.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -39,7 +39,9 @@
 #define NOMACROS
 #define NCURSES_NOMACROS
 
-#if defined (HAVE_NCURSES_NCURSES_H)
+#if defined (HAVE_NCURSESW_NCURSES_H)
+#include <ncursesw/ncurses.h>
+#elif defined (HAVE_NCURSES_NCURSES_H)
 #include <ncurses/ncurses.h>
 #elif defined (HAVE_NCURSES_H)
 #include <ncurses.h>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb-demangle.h ./gdb/gdb-demangle.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb-demangle.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb-demangle.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Basic C++ demangling support for GDB.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb-dlfcn.c ./gdb/gdb-dlfcn.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb-dlfcn.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb-dlfcn.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Platform independent shared object routines for GDB.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb-dlfcn.h ./gdb/gdb-dlfcn.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb-dlfcn.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb-dlfcn.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Platform independent shared object routines for GDB.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_expat.h ./gdb/gdb_expat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_expat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_expat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Slightly more portable version of <expat.h>.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb-gdb.py ./gdb/gdb-gdb.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb-gdb.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb-gdb.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb.h ./gdb/gdb.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb.h	1970-01-01 00:00:00.000000000 +0000
@@ -1,58 +0,0 @@
-/* Library interface into GDB.
-   Copyright (C) 1999-2017 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 GDB_H
-#define GDB_H
-
-struct ui_out;
-
-/* Return-code (RC) from a gdb library call.  (The abreviation RC is
-   taken from the sim/common directory.) */
-
-enum gdb_rc {
-  /* The operation failed.  The failure message can be fetched by
-     calling ``char *error_last_message(void)''.  The value is
-     determined by the catch_errors() interface.  The MSG parameter is
-     set to a freshly allocated copy of the error message.  */
-  /* NOTE: Since ``defs.h:catch_errors()'' does not return an error /
-     internal / quit indication it is not possible to return that
-     here.  */
-  GDB_RC_FAIL = 0,
-  /* No error occured but nothing happened.  Due to the catch_errors()
-     interface, this must be non-zero.  */
-  GDB_RC_NONE = 1,
-  /* The operation was successful.  Due to the catch_errors()
-     interface, this must be non-zero.  */
-  GDB_RC_OK = 2
-};
-
-
-/* Print the specified breakpoint on GDB_STDOUT.  (Eventually this
-   function will ``print'' the object on ``output'').  */
-enum gdb_rc gdb_breakpoint_query (struct ui_out *uiout, int bnum,
-				  char **error_message);
-
-/* Switch thread and print notification.  */
-enum gdb_rc gdb_thread_select (struct ui_out *uiout, char *tidstr,
-			       char **error_message);
-
-/* Print a list of known thread ids.  */
-enum gdb_rc gdb_list_thread_ids (struct ui_out *uiout,
-				 char **error_message);
-
-#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_mbuild.sh ./gdb/gdb_mbuild.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_mbuild.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_mbuild.sh	2018-01-09 02:04:57.000000000 +0000
@@ -3,7 +3,7 @@
 #  Multi-build script for testing compilation of all maintained
 #  configs of GDB.
 
-#  Copyright (C) 2002-2017 Free Software Foundation, Inc.
+#  Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
 #  Contributed by Richard Earnshaw  (rearnsha@arm.com)
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_obstack.c ./gdb/gdb_obstack.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_obstack.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_obstack.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Obstack wrapper for GDB.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_obstack.h ./gdb/gdb_obstack.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_obstack.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_obstack.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Obstack wrapper for GDB.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -63,4 +63,19 @@ extern char *obconcat (struct obstack *o
 
 extern char *obstack_strdup (struct obstack *obstackp, const char *string);
 
+/* An obstack that frees itself on scope exit.  */
+struct auto_obstack : obstack
+{
+  auto_obstack ()
+  { obstack_init (this); }
+
+  ~auto_obstack ()
+  { obstack_free (this, NULL); }
+
+  /* Free all memory in the obstack but leave it valid for further
+     allocation.  */
+  void clear ()
+  { obstack_free (this, obstack_base (this)); }
+};
+
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_proc_service.h ./gdb/gdb_proc_service.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_proc_service.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_proc_service.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* <proc_service.h> replacement for systems that don't have it.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_regex.c ./gdb/gdb_regex.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_regex.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gdb_regex.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,57 @@
+/* Copyright (C) 2011-2018 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 "defs.h"
+#include "gdb_regex.h"
+#include "common/def-vector.h"
+
+compiled_regex::compiled_regex (const char *regex, int cflags,
+				const char *message)
+{
+  gdb_assert (regex != NULL);
+  gdb_assert (message != NULL);
+
+  int code = regcomp (&m_pattern, regex, cflags);
+  if (code != 0)
+    {
+      size_t length = regerror (code, &m_pattern, NULL, 0);
+      gdb::def_vector<char> err (length);
+
+      regerror (code, &m_pattern, err.data (), length);
+      error (("%s: %s"), message, err.data ());
+    }
+}
+
+compiled_regex::~compiled_regex ()
+{
+  regfree (&m_pattern);
+}
+
+int
+compiled_regex::exec (const char *string, size_t nmatch,
+		      regmatch_t pmatch[], int eflags) const
+{
+  return regexec (&m_pattern, string, nmatch, pmatch, eflags);
+}
+
+int
+compiled_regex::search (const char *string,
+			int length, int start, int range,
+			struct re_registers *regs)
+{
+  return re_search (&m_pattern, string, length, start, range, regs);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_regex.h ./gdb/gdb_regex.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_regex.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_regex.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Portable <regex.h>.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -27,10 +27,37 @@
 # include <regex.h>
 #endif
 
-/* From utils.c.  */
-struct cleanup *make_regfree_cleanup (regex_t *);
-char *get_regcomp_error (int, regex_t *);
-struct cleanup *compile_rx_or_error (regex_t *pattern, const char *rx,
-				     const char *message);
+/* A compiled regex.  This is mainly a wrapper around regex_t.  The
+   the constructor throws on regcomp error and the destructor is
+   responsible for calling regfree.  The former means that it's not
+   possible to create an instance of compiled_regex that isn't
+   compiled, hence the name.  */
+class compiled_regex
+{
+public:
+  /* Compile a regexp and throw an exception on error, including
+     MESSAGE.  REGEX and MESSAGE must not be NULL.  */
+  compiled_regex (const char *regex, int cflags,
+		  const char *message)
+    ATTRIBUTE_NONNULL (2) ATTRIBUTE_NONNULL (4);
+
+  ~compiled_regex ();
+
+  DISABLE_COPY_AND_ASSIGN (compiled_regex);
+
+  /* Wrapper around ::regexec.  */
+  int exec (const char *string,
+	    size_t nmatch, regmatch_t pmatch[],
+	    int eflags) const;
+
+  /* Wrapper around ::re_search.  (Not const because re_search's
+     regex_t parameter isn't either.)  */
+  int search (const char *string, int size, int startpos,
+	      int range, struct re_registers *regs);
+
+private:
+  /* The compiled pattern.  */
+  regex_t m_pattern;
+};
 
 #endif /* not GDB_REGEX_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_select.h ./gdb/gdb_select.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_select.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_select.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Slightly more portable version of <sys/select.h>.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/ax.c ./gdb/gdbserver/ax.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/ax.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/ax.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Agent expression code for remote server.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -95,9 +95,9 @@ gdb_agent_op_name (int op)
    of bytes in expression, a comma, and then the bytes.  */
 
 struct agent_expr *
-gdb_parse_agent_expr (char **actparm)
+gdb_parse_agent_expr (const char **actparm)
 {
-  char *act = *actparm;
+  const char *act = *actparm;
   ULONGEST xlen;
   struct agent_expr *aexpr;
 
@@ -816,30 +816,29 @@ ax_printf (CORE_ADDR fn, CORE_ADDR chan,
 	   int nargs, ULONGEST *args)
 {
   const char *f = format;
-  struct format_piece *fpieces;
-  int i, fp;
-  char *current_substring;
+  int i;
+  const char *current_substring;
   int nargs_wanted;
 
   ax_debug ("Printf of \"%s\" with %d args", format, nargs);
 
-  fpieces = parse_format_string (&f);
+  format_pieces fpieces (&f);
 
   nargs_wanted = 0;
-  for (fp = 0; fpieces[fp].string != NULL; fp++)
-    if (fpieces[fp].argclass != literal_piece)
+  for (auto &&piece : fpieces)
+    if (piece.argclass != literal_piece)
       ++nargs_wanted;
 
   if (nargs != nargs_wanted)
     error (_("Wrong number of arguments for specified format-string"));
 
   i = 0;
-  for (fp = 0; fpieces[fp].string != NULL; fp++)
+  for (auto &&piece : fpieces)
     {
-      current_substring = fpieces[fp].string;
+      current_substring = piece.string;
       ax_debug ("current substring is '%s', class is %d",
-		current_substring, fpieces[fp].argclass);
-      switch (fpieces[fp].argclass)
+		current_substring, piece.argclass);
+      switch (piece.argclass)
 	{
 	case string_arg:
 	  {
@@ -914,11 +913,10 @@ ax_printf (CORE_ADDR fn, CORE_ADDR chan,
 	}
 
       /* Maybe advance to the next argument.  */
-      if (fpieces[fp].argclass != literal_piece)
+      if (piece.argclass != literal_piece)
 	++i;
     }
 
-  free_format_pieces (fpieces);
   fflush (stdout);
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/ax.h ./gdb/gdbserver/ax.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/ax.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/ax.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Data structures and functions associated with agent expressions in GDB.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -55,7 +55,7 @@ struct agent_expr
 
 /* The packet form of an agent expression consists of an 'X', number
    of bytes in expression, a comma, and then the bytes.  */
-struct agent_expr *gdb_parse_agent_expr (char **actparm);
+struct agent_expr *gdb_parse_agent_expr (const char **actparm);
 
 /* Release an agent expression.  */
 void gdb_free_agent_expr (struct agent_expr *aexpr);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/ChangeLog ./gdb/gdbserver/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/ChangeLog	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/ChangeLog	2018-01-09 02:04:57.000000000 +0000
@@ -1,3 +1,1226 @@
+2018-01-08  Yao Qi  <yao.qi@linaro.org>
+	    Simon Marchi  <simon.marchi@ericsson.com>
+
+	* Makefile.in (OBS): Remove selftest.o.
+	* configure.ac: Set srv_selftest_objs if $development is true.
+	(GDBSERVER_DEPFILES): Append $srv_selftest_objs.
+	* configure: Re-generated.
+	* server.c (captured_main): Wrap variable selftest_filter with
+	GDB_SELF_TEST.
+
+2018-01-05  Pedro Alves  <palves@redhat.com>
+
+	PR gdb/18653
+	* server.c (captured_main): Pass quiet=false to
+	save_original_signals_state.
+
+2018-01-01  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdbreplay.c (gdbreplay_version): Update copyright year in
+	version message.
+	* server.c (gdbserver_version): Likewise.
+
+2017-12-08  Tom Tromey  <tom@tromey.com>
+
+	* ax.c (ax_printf): Update.
+
+2017-12-07  Yao Qi  <yao.qi@linaro.org>
+
+	* linux-aarch64-ipa.c (initialize_low_tracepoint): Call
+	aarch64_linux_read_description.
+	* linux-amd64-ipa.c (idx2mask): New array.
+	(get_ipa_tdesc): Move idx2mask out.
+	(initialize_low_tracepoint): Initialize target descriptions.
+	* linux-i386-ipa.c (idx2mask): New array.
+	(get_ipa_tdesc): Move idx2mask out.
+	(initialize_low_tracepoint): Initialize target descriptions.
+
+2017-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* tdesc.c (struct tdesc_type): Change return type.
+	(tdesc_add_flag): Change parameter type.
+	(tdesc_add_bitfield): Likewise.
+	(tdesc_add_field): Likewise.
+	(tdesc_set_struct_size): Likewise.
+
+2017-12-05  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* regcache.c (registers_to_string): Remove unused variable.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* inferiors.c (for_each_inferior_with_data): Remove.
+	* inferiors.h (for_each_inferior_with_data): Remove.
+	* server.c (handle_qxfer_threads_worker): Change parameter type.
+	(handle_qxfer_threads_proper): Use for_each_thread.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* inferiors.c (for_each_inferior): Remove.
+	(clear_inferiors): Use for_each_thread.
+	* inferiors.h (for_each_inferior): Remove.
+	* linux-low.c (linux_wait_for_event_filtered): Use
+	for_each_thread.
+	(linux_stabilize_threads): Likewise.
+	* regcache.c (regcache_release): Likewise.
+	* server.c (gdb_wants_all_threads_stopped): Likewise.
+	(clear_pending_status_callback): Remove.
+	(handle_status): Use for_each_thread.
+	(captured_main): Likewise.
+	* win32-low.c (child_init_thread_list): Likewise.
+	(win32_clear_inferiors): Likewise.
+	(fake_breakpoint_event): Likewise.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* inferiors.h (find_inferior): Remove.
+	* inferiors.c (find_inferior): Remove.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* linux-low.c (resume_status_pending_p): Update comment.
+	(need_step_over_p): Update comment.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* linux-low.c (proceed_one_lwp): Return void, change parameter
+	type.
+	(unsuspend_and_proceed_one_lwp): Likewise.
+	(proceed_all_lwps): Use for_each_thread.
+	(unstop_all_lwps): Likewise.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* linux-low.c (linux_resume_one_thread): Return void, take
+	parameter directly.
+	(linux_resume): Use for_each_thread.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* linux-low.c (send_sigstop_callback): Return void, change
+	parameter type.  Rename to...
+	(send_sigstop): ... this.
+	(suspend_and_send_sigstop_callback): Return void, change parameter
+	type.  Rename to...
+	(suspend_and_send_sigstop): ... this.
+	(stop_all_lwps): Use for_each_thread.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* linux-low.c (lwp_running): Return bool, remove unused
+	argument.
+	(linux_stabilize_threads): Use find_thread.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* linux-low.c (select_singlestep_lwp_callback): Remove.
+	(count_events_callback): Remove.
+	(select_event_lwp_callback): Remove.
+	(select_event_lwp): Use find_thread/for_each_thread.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* linux-low.c (not_stopped_callback): Return bool, take filter
+	argument directly.
+	(linux_wait_for_event_filtered): Use find_thread.
+	(linux_wait_1): Likewise.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* linux-low.c (same_lwp): Remove.
+	(find_lwp_pid): Use find_thread.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* linux-low.c (delete_lwp_callback): Remove.
+	(linux_mourn): Use for_each_thread.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* linux-low.c (linux_detach_lwp_callback): Return void, remove
+	args parameter, don't check for pid.
+	(linux_detach): Use for_each_thread.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* linux-low.c (struct counter): Remove.
+	(second_thread_of_pid_p): Remove.
+	(last_thread_of_process_p): Use find_thread.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* inferiors.c (find_inferior_in_random): Remove.
+	* inferiors.h (find_inferior_in_random): Remove.
+	* linux-low.c (status_pending_p_callback): Return bool, accept
+	parameter ptid directly.
+	(linux_wait_for_event_filtered): Use find_thread_in_random.
+	(linux_wait_1): Likewise.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* inferiors.c (find_inferior_id): Remove.
+	(find_thread_ptid): Move implemention from find_inferior_id to
+	here.
+	* inferiors.h (find_inferior_id): Remove.
+	* server.c (handle_status): Use find_thread_ptid.
+	(process_serial_event): Likewise.
+	* thread-db.c (find_one_thread): Likewise.
+	(thread_db_thread_handle): Likewise.
+	* win32-low.c (thread_rec): Likewise.
+	(child_delete_thread): Likewise.
+	(win32_thread_alive): Likewise.
+	(get_child_debug_event): Likewise.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* linux-mips-low.c (update_watch_registers_callback): Return
+	void, remove pid_p parameter, don't check for pid.
+	(mips_insert_point, mips_remove_point): Use for_each_thread.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* lynx.low (lynx_delete_thread_callback): Remove.
+	(lynx_mourn): Use for_each_thread.
+
+2017-12-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* regcache.c (regcache_invalidate_one): Remove.
+	(regcache_invalidate_pid): use for_each_thread.
+
+2017-11-26  Tom Tromey  <tom@tromey.com>
+
+	* linux-low.c (linux_create_inferior): Update.
+
+2017-11-24  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* spu-low.c (spu_create_inferior): Fix typo in argument name.
+
+2017-11-24  Alan Hayward  <alan.hayward@arm.com>
+
+	* configure.srv: Add linux-aarch64-tdesc-selftest.o.
+	* linux-aarch64-low.c (initialize_low_arch): Call init func.
+	* linux-aarch64-tdesc-selftest.c: New file.
+	* linux-aarch64-tdesc.h (initialize_low_tdesc): New declaration.
+
+2017-11-24  Alan Hayward  <alan.hayward@arm.com>
+
+	* configure.srv: Add new file.
+	* linux-aarch64-low.c (initialize_low_arch): Call init func.
+	* linux-aarch64-tdesc-selftest.c: New file.
+	* linux-aarch64-tdesc.h (initialize_low_tdesc): New declaration.
+
+2017-11-24  Alan Hayward  <alan.hayward@arm.com>
+
+	* linux-aarch64-ipa.c (initialize_low_tracepoint): Remove init.
+	* linux-aarch64-low.c (initialize_low_arch): Remove init.
+	* linux-aarch64-tdesc.c (aarch64_linux_read_description): Add init.
+
+2017-11-24  Alan Hayward  <alan.hayward@arm.com>
+
+	* configure.srv: Add new files.
+	* linux-aarch64-ipa.c (get_ipa_tdesc): Call
+	aarch64_linux_read_description.
+	* linux-aarch64-low.c (aarch64_linux_read_description):
+	Merge with aarch64_arch_setup.
+	(aarch64_arch_setup): Call aarch64_linux_read_description.
+	* linux-aarch64-tdesc.c: New file.
+	* linux-aarch64-tdesc.h: New file.
+
+2017-11-24  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.srv: Set $srv_regobj for tic6x-linux.
+	* linux-tic6x-low.c: Include "arch/tic6x.h" and "tdesc.h".
+	(tic6x_read_description): Move some code to tic6x_arch_setup.
+	(tic6x_tdesc_test): New function.
+	(initialize_low_arch): Call selftests::register_test.
+
+2017-11-22  Yao Qi  <yao.qi@linaro.org>
+
+	* remote-utils.c (prepare_resume_reply): Use memcpy.
+
+2017-11-19  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-low.c (kill_one_lwp_callback): Return void, take
+	argument directly, don't filter on pid.
+	(linux_kill): Use for_each_thread.
+
+2017-11-19  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-low.c (need_step_over_p): Return bool, remove dummy
+	argument.
+	(linux_resume, proceed_all_lwps): Use find_thread.
+
+2017-11-19  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-low.c (resume_status_pending_p): Return bool, remove
+	flag_p argument.
+	(linux_resume): Use find_thread.
+
+2017-11-19  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-low.c (struct thread_resume_array): Remove.
+	(linux_set_resume_request): Return void, take arguments
+	directly.
+	(linux_resume): Use for_each_thread.
+
+2017-11-19  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-low.c (stuck_in_jump_pad_callback): Change prototype,
+	return bool, remove data argument.
+	(linux_stabilize_threads): Use find_thread.
+
+2017-11-19  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-low.c (unsuspend_one_lwp): Remove.
+	(unsuspend_all_lwps): Use for_each_thread, inline code from
+	unsuspend_one_lwp.
+
+2017-11-19  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdbthread.h (find_thread): Add overload with ptid_t filter.
+	* linux-low.c (struct iterate_over_lwps_args): Remove.
+	(iterate_over_lwps_filter): Remove.
+	(iterate_over_lwps): Use find_thread.
+
+2017-11-19  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-low.c (reset_lwp_ptrace_options_callback): Remove.
+	(linux_handle_new_gdb_connection): Use for_each_thread, inline
+	code from reset_lwp_ptrace_options_callback.
+
+2017-11-19  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-arm-low.c (struct update_registers_data): Remove.
+	(update_registers_callback): Return void, take arguments
+	directly, don't check thread's pid.
+	(arm_insert_point, arm_remove_point): Use for_each_thread.
+
+2017-11-19  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* win32-low.c (continue_one_thread): Return void, take argument
+	directly.
+	(child_continue): Use for_each_thread.
+
+2017-11-19  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* win32-i386-low.c (update_debug_registers_callback): Rename
+	to ...
+	(update_debug_registers): ... this, return void, remove pid_p arg.
+	(x86_dr_low_set_addr, x86_dr_low_set_control): Use for_each_thread.
+
+2017-11-17  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* inferiors.h (struct process_info): Add constructor, initialize
+	fields..
+	<syscalls_to_catch>: Change type to std::vector<int>.
+	* inferiors.c (add_process): Allocate process_info with new.
+	(remove_process): Free process_info with delete.
+	* linux-low.c (handle_extended_wait): Adjust.
+	(gdb_catching_syscalls_p, gdb_catch_this_syscall_p): Adjust.
+	* server.c (handle_general_set): Adjust.
+
+2017-11-16  Pedro Alves  <palves@redhat.com>
+
+	* remote-utils.c (remote_close): Block SIGIO signals instead of
+	uninstalling the SIGIO handler.
+
+2017-11-16  Alan Hayward  <alan.hayward@arm.com>
+
+	* tdesc.c (tdesc_get_features_xml): Allow null osabi.
+
+2017-11-16  Yao Qi  <yao.qi@linaro.org>
+
+	* linux-tic6x-low.c (tic6x_fill_gregset): Cast buf.
+	(tic6x_store_gregset): Likewise.
+	(tic6x_usrregs_info): Move it up.
+
+2017-11-15  Alan Hayward  <alan.hayward@arm.com>
+
+	* Makefile.in: Update arch rules.
+	* configure.srv: Explicitly mark arch/ files.
+
+2017-11-13  Andreas Schwab  <schwab@suse.de>
+
+	* linux-m68k-low.c (m68k_supports_hardware_single_step): New
+	function.
+	(struct linux_target_ops) <supports_hardware_single_step>: Initialize.
+
+2017-11-06  Pedro Alves  <palves@redhat.com>
+
+	* config.in, configure: Regenerate.
+
+2017-10-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* target.c (struct thread_search): Remove.
+	(thread_search_callback): Remove.
+	(prepare_to_access_memory): Use for_each_thread instead of
+	find_inferior.  Inline code from thread_search_callback.
+
+2017-10-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* server.c (struct visit_actioned_threads_data): Remove.
+	(visit_actioned_threads): Change prototype to take arguments
+	directly.
+	(resume): Use find_thread instead of find_inferior.
+
+2017-10-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* server.c (queue_stop_reply_callback): Change prototype, return
+	void.
+	(find_status_pending_thread_callback): Remove.
+	(handle_status): Replace find_inferior with find_thread and
+	for_each_thread.
+
+2017-10-25  Alan Hayward  <alan.hayward@arm.com>
+
+	* linux-aarch64-low.c (aarch64_fill_gregset): Replace defines
+	with REGNO.
+	(aarch64_store_gregset): Likewise.
+	(aarch64_fill_fpregset): Likewise.
+	(aarch64_store_fpregset): Likewise.
+
+2017-10-21  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdbthread.h (find_thread, for_each_thread): New functions.
+	* inferiors.c (thread_of_pid): Remove.
+	(find_any_thread_of_pid): Use find_thread.
+	* linux-low.c (num_lwps): Use for_each_thread.
+
+2017-10-17  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in: Remove one rule.
+	* configure.srv: Rename aarch64-insn.o with arch/aarch64-insn.o.
+
+2017-10-17  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.srv: Rename arm-linux.o with arch/arm-linux.o.
+	Rename arm-get-next-pcs.o with arch/arm-get-next-pcs.o.
+
+2017-10-17  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.srv: Rename arm.o with arch/arm.o.
+
+2017-10-17  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (CONFIG_SRC_SUBDIR): New variable.
+	(clean): Remove .o files in CONFIG_SRC_SUBDIR.
+	(distclean): Remove DEPDIR in CONFIG_SRC_SUBDIR.
+	(arch-i386.o, arch-amd64.o): Remove rules.
+	(arch/%.o): New rule.
+	Update POSTCOMPILE and COMPILE.pre.
+	* configure.ac: Invoke AC_CONFIG_COMMANDS.
+	* configure: Re-generated.
+	* configure.srv: Replace arch-i386.o with arch/i386.o.
+	Replace arch-amd64.o with arch/amd64.o.
+
+2017-10-16  Yao Qi  <yao.qi@linaro.org>
+
+	* configure: Regenerated.
+
+2017-10-14  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* inferiors.h: (struct inferior_list): Remove.
+	(struct inferior_list_entry); Remove.
+	(add_inferior_to_list, clear_inferior_list, one_inferior_p,
+	A_I_NEXT, ALL_INFERIORS_TYPE, ALL_INFERIORS, remove_inferior,
+	get_first_inferior): Remove.
+	(for_each_inferior, for_each_inferior_with_data, find_inferior,
+	find_inferior_id, find_inferior_in_random): Change signature.
+	* inferiors.c (all_threads): Change type to
+	std::list<thread_info *>.
+	(get_thread): Remove macro.
+	(find_inferior, find_inferior_id): Change signature, implement
+	using find_thread.
+	(find_inferior_in_random): Change signature, implement using
+	find_thread_in_random.
+	(for_each_inferior, for_each_inferior_with_data): Change
+	signature, implement using for_each_thread.
+	(add_inferior_to_list, remove_inferior): Remove.
+	(add_thread, get_first_thread, thread_of_pid,
+	find_any_thread_of_pid, free_one_thread, remove_thread): Update.
+	(get_first_inferior, one_inferior_p, clear_inferior_list):
+	Remove.
+	(clear_inferiors, get_thread_process): Update.
+	* gdbthread.h: Include <list>.
+	(struct thread_info) <entry>: Remove field.
+	<id>: New field.
+	(all_threads): Change type to std::list<thread_info *>.
+	(get_first_inferior): Add doc.
+	(find_thread, for_each_thread, find_thread_in_random): New
+	functions.
+	(current_ptid, pid_of, ptid_of, lwpid_of): Update.
+	* linux-arm-low.c (update_registers_callback): Update.
+	* linux-low.c (second_thread_of_pid_p): Update.
+	(kill_one_lwp_callback, linux_detach_lwp_callback,
+	delete_lwp_callback, status_pending_p_callback, same_lwp,
+	find_lwp_pid, num_lwps, iterate_over_lwps_filter,
+	iterate_over_lwps, not_stopped_callback,
+	resume_stopped_resumed_lwps, count_events_callback,
+	select_singlestep_lwp_callback, select_event_lwp_callback,
+	unsuspend_one_lwp, linux_wait_1, send_sigstop_callback,
+	suspend_and_send_sigstop_callback, wait_for_sigstop,
+	stuck_in_jump_pad_callback, move_out_of_jump_pad_callback,
+	lwp_running, linux_set_resume_request, resume_status_pending_p,
+	need_step_over_p, start_step_over, linux_resume_one_thread,
+	proceed_one_lwp, unsuspend_and_proceed_one_lwp,
+	reset_lwp_ptrace_options_callback): Update.
+	* linux-mips-low.c (update_watch_registers_callback): Update.
+	* regcache.c (regcache_invalidate_one, regcache_invalidate):
+	Update.
+	(free_register_cache_thread_one): Remove.
+	(regcache_release): Update.
+	* server.c (handle_btrace_enable_bts, handle_btrace_enable_pt,
+	handle_qxfer_threads_worker): Update.
+	(handle_query): Update, use list iterator.
+	(visit_actioned_threads, handle_pending_status,
+	queue_stop_reply_callback, gdb_wants_all_threads_stopped,
+	clear_pending_status_callback, set_pending_status_callback,
+	find_status_pending_thread_callback, handle_status,
+	process_serial_event): Update.
+	* target.c (thread_search_callback): Update.
+	* thread-db.c (thread_db_get_tls_address): Update.
+	* tracepoint.c (tracepoint_finished_step, tracepoint_was_hit):
+	Update.
+	* win32-i386-low.c (update_debug_registers_callback): Update.
+	* win32-low.c (delete_thread_info, child_delete_thread,
+	continue_one_thread, suspend_one_thread,
+	get_child_debug_event): Adjust.
+
+2017-10-14  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* gdbthread.h (ptid_of, pid_of, lwpid_of): New functions.
+	* inferiors.h: Include <list>.
+	(struct process_info) <entry>: Remove field.
+	<pid>: New field.
+	(pid_of): Change macro to function.
+	(ptid_of, lwpid_of): Remove macro.
+	(all_processes): Change type to std::list<process_info *>.
+	(ALL_PROCESSES): Remove macro.
+	(for_each_process, find_process): New function.
+	* inferiors.c (all_processes): Change type to
+	std::list<process_info *>.
+	(find_thread_process): Adjust.
+	(add_process): Likewise.
+	(remove_process): Likewise.
+	(find_process_pid): Likewise.
+	(get_first_process): Likewise.
+	(started_inferior_callback): Remove.
+	(have_started_inferiors_p): Adjust.
+	(attached_inferior_callback): Remove.
+	(have_attached_inferiors_p): Adjust.
+	* linux-low.c (check_zombie_leaders): Likewise.
+	* linux-x86-low.c (x86_arch_setup_process_callback): Remove.
+	(x86_linux_update_xmltarget): Adjust.
+	* server.c (handle_query): Likewise.
+	(gdb_reattached_process): Remove.
+	(handle_status): Adjust.
+	(kill_inferior_callback): Likewise.
+	(detach_or_kill_inferior): Remove.
+	(print_started_pid): Likewise.
+	(print_attached_pid): Likewise.
+	(detach_or_kill_for_exit): Update.
+	(process_serial_event): Likewise.
+	* linux-arm-low.c (arm_new_fork): Likewise.
+
+2017-10-14  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* dll.h: Include <list>.
+	(struct dll_info): Add constructor.
+	<entry>: Remove field.
+	(all_dlls): Change type to std::list<dll_info>.
+	* dll.c: Include <algorithm>.
+	(get_dll): Remove macro.
+	(all_dlls): Change type to std::list<dll_info *>.
+	(free_one_dll): Remove.
+	(match_dll): Likewise.
+	(loaded_dll): Adjust.
+	(unloaded_dll): Adjust to all_dlls type change, use
+	std::find_if.  Inline code from match_dll.
+	(clear_dlls): Adjust to all_dlls type change.
+	* server.c (emit_dll_description): Remove.
+	(handle_qxfer_libraries): Adjust to all_dlls type change,
+	integrate emit_dll_description's functionality.
+
+2017-10-12  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-low.h (struct linux_target_ops) <delete_process>: New
+	field.
+	* linux-low.c (linux_mourn): Call the_low_target.delete_process.
+	* linux-aarch64-low.c (aarch64_linux_delete_process): New.
+	(struct linux_target_ops): Add delete_process callback.
+	* linux-arm-low.c (arm_delete_process): New.
+	(struct linux_target_ops): Add delete_process callback.
+	* linux-bfin-low.c (struct linux_target_ops): Likewise.
+	* linux-crisv32-low.c (struct linux_target_ops): Likewise.
+	* linux-m32r-low.c (struct linux_target_ops): Likewise.
+	* linux-mips-low.c (mips_linux_delete_process): New.
+	(struct linux_target_ops): Add delete_process callback.
+	* linux-ppc-low.c (struct linux_target_ops): Likewise.
+	* linux-s390-low.c (struct linux_target_ops): Likewise.
+	* linux-sh-low.c (struct linux_target_ops): Likewise.
+	* linux-tic6x-low.c (struct linux_target_ops): Likewise.
+	* linux-tile-low.c (struct linux_target_ops): Likewise.
+	* linux-x86-low.c (x86_linux_delete_process): New.
+	(struct linux_target_ops): Add delete_process callback.
+	* linux-xtensa-low.c (struct linux_target_ops): Likewise.
+
+2017-10-12  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-aarch64-low.c (the_low_target): Add thread delete
+	callback.
+	* linux-arm-low.c (arm_delete_thread): New function.
+	(the_low_target): Add thread delete callback.
+	* linux-bfin-low.c (the_low_target): Likewise.
+	* linux-crisv32-low.c (the_low_target): Likewise.
+	* linux-low.c (delete_lwp): Invoke delete_thread callback if
+	set.
+	* linux-low.h (struct linux_target_ops) <delete_thread>: New
+	field.
+	* linux-m32r-low.c (the_low_target): Add thread delete callback.
+	* linux-mips-low.c (mips_linux_delete_thread): New function.
+	(the_low_target): Add thread delete callback.
+	* linux-ppc-low.c (the_low_target): Likewise.
+	* linux-s390-low.c (the_low_target): Likewise.
+	* linux-sh-low.c (the_low_target): Likewise.
+	* linux-tic6x-low.c (the_low_target): Likewise.
+	* linux-tile-low.c (the_low_target): Likewise.
+	* linux-x86-low.c (the_low_target): Likewise.
+	* linux-xtensa-low.c (the_low_target): Likewise.
+
+2017-10-06  Yuanhui Zhang  <asmwarrior@gmail.com>
+
+	* win32-low.c: Include "common-inferior.h".
+
+2017-10-04  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* inferiors.c (set_inferior_cwd): New function.
+	* server.c (handle_general_set): Handle QSetWorkingDir packet.
+	(handle_query): Inform that QSetWorkingDir is supported.
+	* win32-low.c (create_process): Pass the inferior's cwd to
+	CreateProcess.
+
+2017-10-04  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* inferiors.c (current_inferior_cwd): New global variable.
+	(get_inferior_cwd): New function.
+	* inferiors.h (struct process_info) <cwd>: New field.
+
+2017-10-04  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile.in (SFILES): Add $(srcdir)/common/gdb_tilde_expand.c.
+	(OBS): Add gdb_tilde_expand.o.
+
+2017-10-02  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* lynx-i386-low.c (lynx_i386_arch_setup): Call init_target_desc.
+	* nto-x86-low.c (nto_x86_arch_setup): Likewise.
+
+2017-09-29  Pedro Alves  <palves@redhat.com>
+
+	* ax.c (gdb_parse_agent_expr): Constify.
+	* ax.h (gdb_parse_agent_expr): Constify.
+	* mem-break.c (add_breakpoint_condition, add_breakpoint_commands):
+	Constify.
+	* mem-break.h (add_breakpoint_condition, add_breakpoint_commands): Constify.
+	* remote-utils.c (hex_or_minus_one, read_ptid): Constify.
+	* remote-utils.h (read_ptid): Constify.
+	* server.c (handle_qxfer_exec_file, handle_query, handle_v_cont)
+	(process_point_options, process_serial_event): Constify.
+	* tracepoint.c (add_tracepoint_action, cmd_qtdp, cmd_qtdpsrc)
+	(cmd_qtdv, cmd_qtenable_disable, cmd_qtro, cmd_qtframe, cmd_qtp)
+	(cmd_qtbuffer): Constify.
+
+2017-09-29  Pedro Alves  <palves@redhat.com>
+
+	* proc-service.c (ps_pdread): Return PS_ERR if reading memory
+	fails.
+
+2017-09-29  Pedro Alves  <palves@redhat.com>
+
+	* linux-low.c (handle_extended_wait): Pass parent thread instead
+	of process to thread_db_notice_clone.
+	* linux-low.h (thread_db_notice_clone): Replace parent process
+	parameter with parent thread parameter.
+	* thread-db.c (find_one_thread): Add comment.
+	(thread_db_notice_clone): Replace parent process parameter with
+	parent thread parameter.  Temporarily switch to the parent thread.
+
+2017-09-26  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gdbthread.h: Include "common-gdbthread.h".
+	* inferiors.c (switch_to_thread): Use "gdb_assert" instead of
+	"if" when validating the ptid.
+	* remote-utils.c: Include "gdbthread.h".
+	(prepare_resume_reply): Use "switch_to_thread".
+	* target.c (done_accessing_memory): Likewise.
+
+2017-09-25  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* configure.srv (s390*-*-linux*): Add s390-gs-linux64.o and
+	s390x-gs-linux64.o to srv_regobj.  Add s390-gs-linux64.xml,
+	s390x-gs-linux64.xml, s390-gs.xml, and s390-gsbc.xml to
+	srv_xmlfiles.  Add s390-gs-linux64-ipa.o and
+	s390x-gs-linux64-ipa.o to ipa_obj.
+	* linux-s390-low.c (HWCAP_S390_GS): New define.
+	(s390_fill_gs, s390_store_gs, s390_fill_gsbc, s390_store_gsbc):
+	New functions.
+	(s390_regsets): Add regsets for NT_S390_GS_CB and NT_S390_GS_BC.
+	(s390_arch_setup): Check for guarded-storage support and choose
+	appropriate tdesc.
+	(initialize_low_arch): Invoke init_registers_s390_gs_linux64 and
+	init_registers_s390x_gs_linux64.
+	* linux-s390-tdesc.h (enum s390_linux_tdesc) <S390_TDESC_GS>: New
+	enum value.
+	(init_registers_s390x_gs_linux64, tdesc_s390x_gs_linux64)
+	(init_registers_s390_gs_linux64, tdesc_s390_gs_linux64): Declare.
+
+2017-09-22  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* win32-i386-low.c (i386_arch_setup): Call init_target_desc.
+
+2017-09-21  Kevin Buettner  <kevinb@redhat.com>
+
+	* linux-low.h (struct lwp_info): Add new field, thread_handle.
+	(thread_db_thread_handle): Declare.
+	* linux-low.c (linux_target_ops): Initialize thread_handle.
+	* server.c (handle_qxfer_threads_worker): Add support for
+	"handle" attribute.
+	* target.h (struct target_ops): Add new function pointer,
+	thread_handle.
+	(target_thread_handle): Define.
+	* thread-db.c (find_one_thread, attach_thread): Set thread_handle
+	field in lwp.
+	(thread_db_thread_handle): New function.
+
+2017-09-21  Kevin Buettner  <kevinb@redhat.com>
+
+	* linux-low.c (handle_extended_wait): Call thread_db_notice_clone().
+	* linux-low.h (thread_db_notice_clone): Declare.
+	* thread-db.c (thread_db_notice_clone): New function.
+
+2017-09-21  Pedro Alves  <palves@redhat.com>
+
+	* server.c (gdb_read_memory, handle_status, process_serial_event)
+	(handle_serial_event, handle_target_event): Adjust to
+	set_desired_thread prototype change.
+	* target.c (set_desired_thread): Remove 'use_general' parameter
+	and adjust.
+	* target.h (set_desired_thread): Remove 'use_general' parameter.
+
+2017-09-20  Tom Tromey  <tom@tromey.com>
+
+	* target.c (target_terminal::terminal_state): Define.
+	(target_terminal::init): Rename from target_terminal_init.
+	(target_terminal::inferior): Rename from
+	target_terminal_inferior.
+	(target_terminal::ours): Rename from target_terminal_ours.
+	(target_terminal::ours_for_output, target_terminal::info): New.
+
+2017-09-16  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* server.c (accumulate_file_name_length): Remove.
+	(emit_dll_description): Adjust to std::string change.
+	(handle_qxfer_libraries): Use std::string to hold document.
+
+2017-09-16  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-low.c (linux_qxfer_libraries_svr4): Adjust to change of
+	return type of xml_escape_text.
+	* server.c (emit_dll_description): Likewise.
+
+2017-09-16  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* server.c (captured_main): Accept argument for --selftest.
+	Update run_tests call.
+	* linux-x86-tdesc-selftest.c (initialize_low_tdesc): Add names
+	when registering selftests.
+
+2017-09-16  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* regcache.c (get_thread_regcache): Update code to use "std::vector"
+	instead of "VEC" for "target_desc.reg_defs".
+	(regcache_cpy): Likewise.
+	(registers_to_string): Likewise.
+	(registers_from_string): Likewise.
+	(find_regno): Likewise.
+	(supply_regblock): Likewise.
+	(regcache_raw_read_unsigned): Likewise.
+	* tdesc.c (init_target_desc): Likewise.
+	(tdesc_create_reg): Likewise.
+	* tdesc.h: Remove declaration of "tdesc_reg_p".  Include <vector>.
+	(struct target_desc) <reg_defs>: Convert to "std::vector".
+	(target_desc): Do not initialize "reg_defs".
+	(~target_desc): Update code to use "std::vector" instead of "VEC"
+	for "target_desc.reg_defs".
+	(operator==): Likewise.
+
+2017-09-15  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* inferiors.h (thread_to_gdb_id): Remove.
+	* inferiors.c (thread_to_gdb_id): Remove.
+	* server.c (handle_qxfer_threads_worker, handle_query): Adjust.
+	* lynx-low.c (lynx_resume, lynx_wait_1, lynx_fetch_registers,
+	lynx_store_registers, lynx_read_memory, lynx_write_memory):
+	Likewise.
+	* nto-low.c (nto_fetch_registers, nto_store_registers,
+	nto_stopped_by_watchpoint, nto_stopped_data_address): Likewise.
+
+2017-09-15  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* inferiors.h (gdb_id_to_thread_id): Remove.
+	* inferiors.c (gdb_id_to_thread_id): Remove.
+	* server.c (process_serial_event): Adjust to gdb_id_to_thread_id
+	removal.  Move pid declaration closer to where it's used.
+
+2017-09-15  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* server.c (handle_detach): New function.
+	(process_serial_event): Move code out, call handle_detach.
+
+2017-09-15  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* server.c (require_running): Rename to ...
+	(require_running_or_return): ... this ...
+	(require_running_or_break): ... and this.
+	(handle_query, process_serial_event): Adjust.
+
+2017-09-15  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-low.c (linux_set_resume_request): Remove unused
+	variables.
+
+2017-09-15  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* server.c (first_thread_of): Remove.
+	(process_serial_event): Replace usage of first_thread_of with
+	find_any_thread_of_pid.
+	* tracepoint.c (same_process_p): Remove.
+	(gdb_agent_about_to_close): Replace usage of same_process_p with
+	find_any_thread_of_pid.
+	* linux-x86-low.c (same_process_callback): Remove.
+	(x86_arch_setup_process_callback): Replace usage of
+	same_process_callback with find_any_thread_of_pid.
+	* thread-db.c (any_thread_of): Remove.
+	(switch_to_process): Replace usage of any_thread_of with
+	find_any_thread_of_pid.
+	* inferiors.c (thread_pid_matches_callback): Remove.
+	(find_thread_process): Adjust to use find_any_thread_of_pid.
+
+2017-09-10  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* regcache.c (get_thread_regcache): Guard calls to "memset"
+          with "!VEC_empty".
+
+2017-09-10  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* linux-low.c (handle_extended_wait): Use
+	"allocate_target_description" instead of "XNEW".
+	* linux-x86-low.c (initialize_low_arch): Likewise.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.srv (srv_i386_regobj): Remove.
+	(srv_amd64_regobj): Remove.
+	(srv_regobj): Set it to "" for x86 non-linux targets.
+	* linux-x86-tdesc.c (i386_linux_read_description):
+	* lynx-i386-low.c: Include x86-xstate.h and arch/i386.h.
+	(init_registers_i386): Remove the declaration.
+	(tdesc_i386): Remove the declaration.
+	(lynx_i386_arch_setup): Call i386_create_target_description.
+	* nto-x86-low.c: Likewise.
+	* win32-i386-low.c [__x86_64__]: include arch/amd64.h.
+	[!__x86_64__]: include arch/i386.h.
+	(i386_arch_setup) [__x86_64__]: Call amd64_create_target_description.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.srv (srv_amd64_linux_xmlfiles): Remove
+	i386/amd64-XXX-linux from it.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.srv: Empty srv_amd64_linux_regobj if $development is
+	false.
+	(ipa_amd64_linux_regobj): Remove.
+	(ipa_x32_linux_regobj): Remove.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (arch-amd64.o): New rule.
+	* configure.srv: Append arch-amd64.o.
+	* linux-amd64-ipa.c: Include common/x86-xstate.h.
+	(get_ipa_tdesc): Call amd64_linux_read_description.
+	(initialize_low_tracepoint): Don't call init_registers_x32_XXX
+	and init_registers_amd64_XXX.
+	* linux-x86-low.c (x86_linux_read_description): Call
+	amd64_linux_read_description.
+	(x86_get_ipa_tdesc_idx): Call amd64_get_ipa_tdesc_idx.
+	(initialize_low_arch): Don't call init_registers_x32_XXX and
+	init_registers_amd64_XXX.
+	* linux-x86-tdesc-selftest.c: Declare init_registers_amd64_XXX
+	and tdesc_amd64_XXX.
+	[__x86_64__] (amd64_tdesc_test): New function.
+	(initialize_low_tdesc) [__x86_64__]: Call init_registers_x32_XXX
+	and init_registers_amd64_XXX.
+	* linux-x86-tdesc.c: Include arch/amd64.h.
+	(xcr0_to_tdesc_idx): New function.
+	(i386_linux_read_description): New function.
+	(amd64_get_ipa_tdesc_idx): New function.
+	* linux-x86-tdesc.h (amd64_get_ipa_tdesc_idx): Declare.
+	(amd64_get_ipa_tdesc): Declare.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.srv (srv_i386_linux_xmlfiles): Remove
+	i386/i386-XXX-linux.xml from it.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.srv: Set srv_i386_linux_regobj empty if $development
+	is false.
+	* linux-i386-ipa.c (initialize_low_tracepoint): Don't call
+	initialize_low_tdesc.
+	* linux-x86-low.c (initialize_low_arch): Wrap initialize_low_tdesc
+	with #if initialize_low_tdesc.
+	* linux-x86-tdesc-selftest.c: New file.
+	* linux-x86-tdesc.c: Move code to linux-x86-tdesc-selftest.c.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (arch-i386.o): New rule.
+	* configure.srv (i[34567]86-*-linux*): Add arch-i386.o.
+	(x86_64-*-linux*): Likewise.
+	* linux-x86-tdesc.c: Don't include ../features/i386/32bit-XXX.c,
+	include arch/i386.h.
+	(i386_linux_read_description): Remove code and call
+	i386_create_target_description.
+	* tdesc.c (allocate_target_description): New function.
+	* tdesc.h (set_tdesc_architecture): Remove declaration.
+	(set_tdesc_osabi): Likewise.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* linux-x86-tdesc.c: Don't include <inttypes.h>.
+	(i386_linux_read_description) [!IN_PROCESS_AGENT]: Call
+	set_tdesc_architecture and set_tdesc_osabi.  Remove code setting
+	.xmltarget.
+	* server.c (get_features_xml): Call tdesc_get_features_xml.
+	* tdesc.c (set_tdesc_architecture): New function.
+	(set_tdesc_osabi): New function.
+	(tdesc_get_features_xml): New function.
+	(tdesc_create_feature): Add an argument.
+	* tdesc.h (struct target_desc) <features>: New field.
+	<arch, osabi>: New field.
+	(~target_desc): xfree features, arch, and osabi.
+	(target_desc::oerator==): Don't compare .xmltarget.
+	[!IN_PROCESS_AGENT] (set_tdesc_architecture): Declare.
+	(set_tdesc_osabi): Likewise.
+	(tdesc_get_features_xml): Likewise.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* linux-x86-tdesc.c: Include selftest.h.
+	(i386_tdesc_test): New function.
+	(initialize_low_tdesc): Call selftests::register_test.
+	* tdesc.h: Include regdef.h.
+	(target_desc): Override operator == and !=.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.srv (srv_tgtobj): Append linux-x86-tdesc.o.
+	(ipa_obj): Likewise.
+	* linux-i386-ipa.c: Include common/x86-xstate.h
+	(get_ipa_tdesc): Call i386_linux_read_description.
+	(initialize_low_tracepoint): Don't call  init_registers_XXX
+	functions, call initialize_low_tdesc instead.
+	* linux-x86-low.c (x86_linux_read_description): Call
+	i386_linux_read_description.
+	(initialize_low_arch): Don't call init_registers_i386_XXX
+	functions, call initialize_low_tdesc.
+	* linux-x86-tdesc.c: New file.
+	* linux-x86-tdesc.h (x86_linux_tdesc): New X86_TDESC_LAST.
+	(i386_get_ipa_tdesc_idx): Declare.
+	(i386_get_ipa_tdesc): Declare.
+	(initialize_low_tdesc): Declare.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* linux-x86-low.c (x86_get_ipa_tdesc_idx): Use X86_TDESC_MMX
+	instead of 0.
+
+2017-09-05  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (IPA_OBJS): Add vec-ipa.o
+	* regcache.c (get_thread_regcache): Use VEC_length.
+	(init_register_cache): Likewise.
+	(regcache_cpy): Likewise.
+	(registers_to_string): Iterate reg_defs via VEC_iterate.
+	(find_regno): Likewise.
+	(find_register_by_number): Use VEC_index.
+	(register_size): Call find_register_by_number.
+	(register_data): Call find_register_by_number.
+	(supply_regblock): Use VEC_length.
+	(regcache_raw_read_unsigned): Likewise.
+	* tdesc.c (init_target_desc): Iterate reg_defs via
+	VEC_iterate.
+	(default_description): Update initializer.
+	(copy_target_description): Don't update field num_registers.
+	* tdesc.h (struct target_desc) <reg_defs>: Change it to VEC.
+	<num_registers>: Remove.
+
+2017-09-04  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* Makefile.in (.SECONDARY): Define target.
+
+2017-09-03  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-low.c (linux_wait_1): Adjust.
+	* server.c (queue_stop_reply_callback): Adjust.
+
+2017-08-31  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* server.c (handle_general_set): Handle QEnvironmentHexEncoded,
+	QEnvironmentUnset and QEnvironmentReset packets.
+	(handle_query): Inform remote that QEnvironmentHexEncoded,
+	QEnvironmentUnset and QEnvironmentReset are supported.
+
+2017-08-25  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* inferiors.h (inferior_target_data): Rename to ...
+	(thread_target_data): ... this.
+	(inferior_regcache_data): Rename to ...
+	(thread_regcache_data): ... this.
+	(set_inferior_regcache_data): Rename to ...
+	(set_thread_regcache_data): ... this.
+	* inferiors.c (inferior_target_data): Rename to ...
+	(thread_target_data): ... this.
+	(inferior_regcache_data): Rename to ...
+	(thread_regcache_data): ... this.
+	(set_inferior_regcache_data): Rename to ...
+	(set_thread_regcache_data): ... this.
+	(free_one_thread): Update.
+	* linux-low.h (get_thread_lwp): Update.
+	* regcache.c (get_thread_regcache): Update.
+	(regcache_invalidate_thread): Update.
+	(free_register_cache_thread): Update.
+	* win32-i386-low.c (update_debug_registers_callback): Update.
+	(win32_get_current_dr): Update.
+	* win32-low.c (thread_rec): Update.
+	(delete_thread_info): Update.
+	(continue_one_thread): Update.
+	(suspend_one_thread): Update.
+
+2017-08-24  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* inferiors.c (set_inferior_target_data): Remove.
+	* inferiors.h (set_inferior_target_data): Remove.
+
+2017-08-18  Yao Qi  <yao.qi@linaro.org>
+
+	* Makefile.in (OBS): Add selftest.o.
+	* configure.ac: AC_DEFINE GDB_SELF_TEST if $development.
+	* configure, config.in: Re-generated.
+	* server.c: Include common/sefltest.h.
+	(captured_main): Handle option --selftest.
+
+2017-08-09  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.srv (srv_i386_regobj): Remove i386-avx.o,
+	i386-avx-avx512.o, i386-avx-mpx-avx512-pku.o, i386-mpx.o,
+	i386-avx-mpx.o and i386-mmx.o.
+	(srv_amd64_regobj): Remove amd64-avx.o, amd64-avx-avx512.o,
+	amd64-avx-mpx-avx512-pku.o, amd64-mpx.o and amd64-avx-mpx.o.
+	(srv_i386_xmlfiles): Remove i386/i386-avx.xml,
+	i386/i386-avx-avx512.xml, i386/i386-avx-mpx-avx512-pku.xml,
+	i386/i386-mpx.xml, i386/i386-avx-mpx.xml and i386/i386-mmx.xml.
+	(srv_amd64_xmlfile):i386/amd64-avx.xml, i386/amd64-avx-avx512.xml,
+	i386/amd64-avx-mpx-avx512-pku.xml, i386/amd64-mpx.xml,
+	i386/amd64-avx-mpx.xml.
+
+2017-08-09  Yao Qi  <yao.qi@linaro.org>
+
+	* configure.srv (srv_amd64_regobj): Remove x32.o, x32-avx.o
+	and x32-avx-avx512.o.
+	(srv_amd64_xmlfiles): Remove i386/x32.xml, i386/x32-avx.xml
+	i386/x32-avx-avx512.xml.
+
+2017-07-26  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* tracepoint.h (enum class fast_tpoint_collect_result): New
+	enumeration.
+	(fast_tracepoint_collecting): Change return type to
+	fast_tpoint_collect_result.
+	* tracepoint.c (fast_tracepoint_collecting): Likewise.
+	* linux-low.h: Include tracepoint.h.
+	(struct lwp_info) <collecting_fast_tracepoint>: Change type to
+	fast_tpoint_collect_result.
+	* linux-low.c (handle_tracepoints): Adjust.
+	(linux_fast_tracepoint_collecting): Change return type to
+	fast_tpoint_collect_result.
+	(maybe_move_out_of_jump_pad, linux_wait_for_event_filtered,
+	linux_wait_1, stuck_in_jump_pad_callback,
+	lwp_signal_can_be_delivered, linux_resume_one_lwp_throw,
+	proceed_one_lwp): Adjust to type change.
+
+2017-07-10  Yao Qi  <yao.qi@linaro.org>
+
+	* linux-x86-low.c (x86_linux_read_description): Re-indent the code.
+
+2017-06-29  Yao Qi  <yao.qi@linaro.org>
+
+	* tdesc.h (struct target_desc) [IN_PROCESS_AGENT] <expedite_regs>:
+	Remove.
+	[IN_PROCESS_AGENT] <xmltarget>: Likewise.
+
+2017-06-20  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* Makefile.in (IPA_OBJS): Sort and format one item per line.
+
+2017-06-20  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* linux-low.c (linux_create_inferior): Adjust code to access the
+	environment information via 'gdb_environ' class.
+	* lynx-low.c (lynx_create_inferior): Likewise.
+	* server.c (our_environ): Make it an instance of 'gdb_environ'.
+	(get_environ): Return a pointer to 'our_environ'.
+	(captured_main): Initialize 'our_environ'.
+	* server.h (get_environ): Adjust prototype.
+	* spu-low.c (spu_create_inferior): Adjust code to access the
+	environment information via 'gdb_environ' class.
+
+2017-06-17  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* linux-low.c (linux_read_memory, linux_write_memory): Remove
+	usage of "register" keyword.
+
+2017-06-17  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* configure: Re-generate.
+
+2017-06-17  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* configure: Re-generate.
+
+2017-06-17  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* Makefile.in (COMPILE.pre): Add "-x c++".
+
+2017-06-09  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* fork-child.c: Conditionally include <signal.h>.
+
+2017-06-07  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* server.c (handle_general_set): Handle new packet
+	"QStartupWithShell".
+	(handle_query): Add "QStartupWithShell" to the list of supported
+	packets.
+	(gdbserver_usage): Add help text explaining the
+	new "--startup-with-shell" and "--no-startup-with-shell" CLI
+	options.
+	(captured_main): Recognize and act upon the presence of the new
+	CLI options.
+
+2017-06-07  Sergio Durigan Junior  <sergiodj@redhat.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* Makefile.in (SFILES): Add "nat/fork-inferior.o".
+	* configure: Regenerate.
+	* configure.srv (srv_linux_obj): Add "fork-child.o" and
+	"fork-inferior.o".
+	(i[34567]86-*-lynxos*): Likewise.
+	(spu*-*-*): Likewise.
+	* fork-child.c: New file.
+	* linux-low.c: Include "common-inferior.h", "nat/fork-inferior.h"
+	and "environ.h".
+	(linux_ptrace_fun): New function.
+	(linux_create_inferior): Adjust function prototype to reflect
+	change on "target.h".  Adjust function code to use
+	"fork_inferior".
+	(linux_request_interrupt): Delete "signal_pid".
+	* lynx-low.c: Include "common-inferior.h" and "nat/fork-inferior.h".
+	(lynx_ptrace_fun): New function.
+	(lynx_create_inferior): Adjust function prototype to reflect
+	change on "target.h".  Adjust function code to use
+	"fork_inferior".
+	* nto-low.c (nto_create_inferior): Adjust function prototype and
+	code to reflect change on "target.h".  Update comments.
+	* server.c: Include "common-inferior.h", "nat/fork-inferior.h",
+	"common-terminal.h" and "environ.h".
+	(terminal_fd): Moved to fork-child.c.
+	(old_foreground_pgrp): Likewise.
+	(restore_old_foreground_pgrp): Likewise.
+	(last_status): Make it global.
+	(last_ptid): Likewise.
+	(our_environ): New variable.
+	(startup_with_shell): Likewise.
+	(program_name): Likewise.
+	(program_argv): Rename to...
+	(program_args): ...this.
+	(wrapper_argv): New variable.
+	(start_inferior): Delete function.
+	(get_exec_wrapper): New function.
+	(get_exec_file): Likewise.
+	(get_environ): Likewise.
+	(prefork_hook): Likewise.
+	(post_fork_inferior): Likewise.
+	(postfork_hook): Likewise.
+	(postfork_child_hook): Likewise.
+	(handle_v_run): Update code to deal with arguments coming from the
+	remote host.  Update calls from "start_inferior" to
+	"create_inferior".
+	(captured_main): Likewise.  Initialize environment variable.  Call
+	"have_job_control".
+	* server.h (post_fork_inferior): New prototype.
+	(get_environ): Likewise.
+	(last_status): Declare.
+	(last_ptid): Likewise.
+	(signal_pid): Likewise.
+	* spu-low.c: Include "common-inferior.h" and "nat/fork-inferior.h".
+	(spu_ptrace_fun): New function.
+	(spu_create_inferior): Adjust function prototype to reflect change
+	on "target.h".  Adjust function code to use "fork_inferior".
+	* target.c (target_terminal_init): New function.
+	(target_terminal_inferior): Likewise.
+	(target_terminal_ours): Likewise.
+	* target.h: Include <vector>.
+	(struct target_ops) <create_inferior>: Update prototype.
+	(create_inferior): Update macro.
+	* utils.c (gdb_flush_out_err): New function.
+	* win32-low.c (win32_create_inferior): Adjust function prototype
+	and code to reflect change on "target.h".
+
+2017-06-07  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* inferiors.c (switch_to_thread): New function.
+
+2017-06-07  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile.in (SFILE): Add "common/job-control.c".
+	(OBS): Add "job-control.o".
+
+2017-05-06  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* Makefile: Remove "@host_makefile_frag@".
+
+2017-05-05  Pedro Alves  <palves@redhat.com>
+
+	* configure: Regenerate.
+
+2017-05-03  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* configure: Regenerate.
+
+2017-05-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* linux-arm-low.c (arm_gdbserver_get_next_pcs): Adjust to
+	software_single_step change of return type to
+	std::vector<CORE_ADDR>.
+	* linux-low.c (install_software_single_step_breakpoints):
+	Likewise.
+	* linux-low.h (install_software_single_step_breakpoints):
+	Likewise.
+
 2017-04-12  Sergio Durigan Junior  <sergiodj@redhat.com>
 
 	* remote-utils.c: Include "gdb_termios.h" instead of
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/config.in ./gdb/gdbserver/config.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/config.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/config.in	2018-01-09 02:04:57.000000000 +0000
@@ -8,6 +8,9 @@
 /* Define to 1 if using `alloca.c'. */
 #undef C_ALLOCA
 
+/* Define if self-testing features should be enabled */
+#undef GDB_SELF_TEST
+
 /* Define to 1 if you have `alloca', as a function or macro. */
 #undef HAVE_ALLOCA
 
@@ -202,9 +205,6 @@
 /* Define to 1 if you have the `setns' function. */
 #undef HAVE_SETNS
 
-/* Define to 1 if you have the <sgtty.h> header file. */
-#undef HAVE_SGTTY_H
-
 /* Define to 1 if you have the `sigaction' function. */
 #undef HAVE_SIGACTION
 
@@ -271,9 +271,6 @@
 /* Define to 1 if you have the <sys/stat.h> header file. */
 #undef HAVE_SYS_STAT_H
 
-/* Define to 1 if you have the <sys/syscall.h> header file. */
-#undef HAVE_SYS_SYSCALL_H
-
 /* Define to 1 if you have the <sys/types.h> header file. */
 #undef HAVE_SYS_TYPES_H
 
@@ -289,9 +286,6 @@
 /* Define to 1 if you have the <termios.h> header file. */
 #undef HAVE_TERMIOS_H
 
-/* Define to 1 if you have the <termio.h> header file. */
-#undef HAVE_TERMIO_H
-
 /* Define to 1 if you have the <thread_db.h> header file. */
 #undef HAVE_THREAD_DB_H
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/configure ./gdb/gdbserver/configure
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/configure	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/configure	2018-01-09 02:04:57.000000000 +0000
@@ -607,6 +607,7 @@ ustinc
 ustlibs
 ALLOCA
 CCDEPMODE
+CONFIG_SRC_SUBDIR
 DEPDIR
 am__leading_dot
 host_noncanonical
@@ -5813,6 +5814,13 @@ fi
   fi
 
 
+if $development; then
+  srv_selftest_objs="selftest.o"
+
+$as_echo "#define GDB_SELF_TEST 1" >>confdefs.h
+
+fi
+
  case ${build_alias} in
   "") build_noncanonical=${build} ;;
   *) build_noncanonical=${build_alias} ;;
@@ -5848,6 +5856,14 @@ DEPDIR="${am__leading_dot}deps"
 ac_config_commands="$ac_config_commands depdir"
 
 
+
+# Create sub-directories for objects and dependencies.
+CONFIG_SRC_SUBDIR="arch"
+
+
+ac_config_commands="$ac_config_commands gdbdepdir"
+
+
 depcc="$CC"   am_compiler_list=
 
 am_depcomp=$ac_aux_dir/depcomp
@@ -6162,7 +6178,7 @@ fi
   cd "$ac_popdir"
 
 
-for ac_header in sgtty.h termio.h termios.h sys/reg.h string.h 		 proc_service.h sys/procfs.h linux/elf.h 		 fcntl.h signal.h sys/file.h 		 sys/ioctl.h netinet/in.h sys/socket.h netdb.h 		 netinet/tcp.h arpa/inet.h
+for ac_header in termios.h sys/reg.h string.h 		 proc_service.h sys/procfs.h linux/elf.h 		 fcntl.h signal.h sys/file.h 		 sys/ioctl.h netinet/in.h sys/socket.h netdb.h 		 netinet/tcp.h arpa/inet.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -6754,7 +6770,7 @@ fi
   fi
 
 
-  for ac_header in linux/perf_event.h locale.h memory.h signal.h 		   sys/resource.h sys/socket.h sys/syscall.h 		   sys/un.h sys/wait.h 		   thread_db.h wait.h
+  for ac_header in linux/perf_event.h locale.h memory.h signal.h 		   sys/resource.h sys/socket.h 		   sys/un.h sys/wait.h 		   thread_db.h wait.h 		   termios.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -7148,12 +7164,20 @@ build_warnings="-Wall -Wpointer-arith \
 -Wno-unused -Wunused-value -Wunused-function \
 -Wno-switch -Wno-char-subscripts \
 -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable \
--Wno-sign-compare -Wno-narrowing"
+-Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized \
+-Wno-mismatched-tags"
 
-# Enable -Wno-format by default when using gcc on mingw since many
-# GCC versions complain about %I64.
 case "${host}" in
-  *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
+  *-*-mingw32*)
+    # Enable -Wno-format by default when using gcc on mingw since many
+    # GCC versions complain about %I64.
+    build_warnings="$build_warnings -Wno-format" ;;
+  *-*-solaris*)
+    # Solaris 11.4 <python2.7/ceval.h> uses #pragma no_inline that GCC
+    # doesn't understand.
+    build_warnings="$build_warnings -Wno-unknown-pragmas"
+    # Solaris 11 <unistd.h> marks vfork deprecated.
+    build_warnings="$build_warnings -Wno-deprecated-declarations" ;;
   *) build_warnings="$build_warnings -Wformat-nonliteral" ;;
 esac
 
@@ -7219,9 +7243,9 @@ then
 	*)
 	    # Check whether GCC accepts it.
 	    saved_CFLAGS="$CFLAGS"
-	    CFLAGS="$CFLAGS $wtest"
+	    CFLAGS="$CFLAGS -Werror $wtest"
 	    saved_CXXFLAGS="$CXXFLAGS"
-	    CXXFLAGS="$CXXFLAGS $wtest"
+	    CXXFLAGS="$CXXFLAGS -Werror $wtest"
 	    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -7498,9 +7522,9 @@ _ACEOF
 fi
 
 
-# See if <sys/user.h> supports the %fs_base and %gs_base amd64 segment
-# registers.  Older amd64 Linux's don't have the fs_base and gs_base
-# members of `struct user_regs_struct'.
+# See if <sys/user.h> supports the %fs_base and %gs_bas amd64 segment registers.
+# Older amd64 Linux's don't have the fs_base and gs_base members of
+# `struct user_regs_struct'.
 ac_fn_c_check_member "$LINENO" "struct user_regs_struct" "fs_base" "ac_cv_member_struct_user_regs_struct_fs_base" "#include <sys/user.h>
 "
 if test "x$ac_cv_member_struct_user_regs_struct_fs_base" = x""yes; then :
@@ -8264,7 +8288,7 @@ if test "$srv_xmlfiles" != ""; then
   done
 fi
 
-GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles $srv_host_obs"
+GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles $srv_host_obs $srv_selftest_objs"
 GDBSERVER_LIBS="$srv_libs"
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the target supports __sync_*_compare_and_swap" >&5
@@ -9130,6 +9154,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ
 # INIT-COMMANDS
 #
 ac_aux_dir=$ac_aux_dir DEPDIR=$DEPDIR
+ac_aux_dir=$ac_aux_dir DEPDIR=$DEPDIR CONFIG_SRC_SUBDIR="$CONFIG_SRC_SUBDIR"
 
 _ACEOF
 
@@ -9141,6 +9166,7 @@ do
   case $ac_config_target in
     "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;;
     "depdir") CONFIG_COMMANDS="$CONFIG_COMMANDS depdir" ;;
+    "gdbdepdir") CONFIG_COMMANDS="$CONFIG_COMMANDS gdbdepdir" ;;
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
 
   *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
@@ -9687,6 +9713,11 @@ which seems to be undefined.  Please mak
 
   case $ac_file$ac_mode in
     "depdir":C) $SHELL $ac_aux_dir/mkinstalldirs $DEPDIR ;;
+    "gdbdepdir":C)
+  for subdir in ${CONFIG_SRC_SUBDIR}
+  do
+      $SHELL $ac_aux_dir/mkinstalldirs $subdir/$DEPDIR
+  done ;;
     "Makefile":F) case x$CONFIG_HEADERS in
 xconfig.h:config.in)
 echo > stamp-h ;;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/configure.ac ./gdb/gdbserver/configure.ac
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/configure.ac	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/configure.ac	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 dnl Autoconf configure script for GDB server.
-dnl Copyright (C) 2000-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2000-2018 Free Software Foundation, Inc.
 dnl
 dnl This file is part of GDB.
 dnl
@@ -56,11 +56,29 @@ else
 fi
 GDB_AC_LIBMCHECK(${libmcheck_default})
 
+if $development; then
+  srv_selftest_objs="selftest.o"
+  AC_DEFINE(GDB_SELF_TEST, 1,
+            [Define if self-testing features should be enabled])
+fi
+
 ACX_NONCANONICAL_TARGET
 ACX_NONCANONICAL_HOST
 
 # Dependency checking.
 ZW_CREATE_DEPDIR
+
+# Create sub-directories for objects and dependencies.
+CONFIG_SRC_SUBDIR="arch"
+AC_SUBST(CONFIG_SRC_SUBDIR)
+
+AC_CONFIG_COMMANDS([gdbdepdir],[
+  for subdir in ${CONFIG_SRC_SUBDIR}
+  do
+      $SHELL $ac_aux_dir/mkinstalldirs $subdir/$DEPDIR
+  done],
+  [ac_aux_dir=$ac_aux_dir DEPDIR=$DEPDIR CONFIG_SRC_SUBDIR="$CONFIG_SRC_SUBDIR"])
+
 ZW_PROG_COMPILER_DEPENDENCIES([CC])
 
 gnulib_extra_configure_args=
@@ -79,7 +97,7 @@ ACX_CONFIGURE_DIR(["../gnulib"], ["build
 
 ACX_CONFIGURE_DIR(["../../libiberty"], ["build-libiberty-gdbserver"])
 
-AC_CHECK_HEADERS(sgtty.h termio.h termios.h sys/reg.h string.h dnl
+AC_CHECK_HEADERS(termios.h sys/reg.h string.h dnl
 		 proc_service.h sys/procfs.h linux/elf.h dnl
 		 fcntl.h signal.h sys/file.h dnl
 		 sys/ioctl.h netinet/in.h sys/socket.h netdb.h dnl
@@ -393,7 +411,7 @@ if test "$srv_xmlfiles" != ""; then
   done
 fi
 
-GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles $srv_host_obs"
+GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles $srv_host_obs $srv_selftest_objs"
 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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/configure.srv ./gdb/gdbserver/configure.srv
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/configure.srv	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/configure.srv	2018-01-09 02:04:57.000000000 +0000
@@ -24,38 +24,44 @@
 # Default hostio_last_error implementation
 srv_hostio_err_objs="hostio-errno.o"
 
-srv_i386_regobj="i386.o i386-avx.o i386-avx-avx512.o i386-avx-mpx-avx512-pku.o i386-mpx.o i386-avx-mpx.o i386-mmx.o"
-srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-avx-avx512-linux.o i386-avx-mpx-avx512-pku-linux.o i386-mpx-linux.o i386-avx-mpx-linux.o i386-mmx-linux.o"
-srv_amd64_regobj="amd64.o amd64-avx.o amd64-avx-avx512.o amd64-avx-mpx-avx512-pku.o amd64-mpx.o amd64-avx-mpx.o x32.o x32-avx.o x32-avx-avx512.o"
-srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx-avx512-linux.o amd64-avx-mpx-avx512-pku-linux.o amd64-mpx-linux.o amd64-avx-mpx-linux.o x32-linux.o x32-avx-linux.o x32-avx-avx512-linux.o"
+if $development; then
+   srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-avx-avx512-linux.o i386-avx-mpx-avx512-pku-linux.o i386-mpx-linux.o i386-avx-mpx-linux.o i386-mmx-linux.o linux-x86-tdesc-selftest.o"
+   srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx-avx512-linux.o amd64-avx-mpx-avx512-pku-linux.o amd64-mpx-linux.o amd64-avx-mpx-linux.o x32-linux.o x32-avx-linux.o x32-avx-avx512-linux.o"
+else
+   srv_i386_linux_regobj=""
+   srv_amd64_linux_regobj=""
+fi
 
-ipa_i386_linux_regobj="i386-linux-ipa.o i386-avx-linux-ipa.o  i386-avx-mpx-linux-ipa.o i386-avx-avx512-linux-ipa.o i386-avx-mpx-avx512-pku-linux-ipa.o i386-mpx-linux-ipa.o i386-mmx-linux-ipa.o"
-ipa_amd64_linux_regobj="amd64-linux-ipa.o amd64-avx-linux-ipa.o amd64-avx-mpx-linux-ipa.o amd64-avx-avx512-linux-ipa.o amd64-avx-mpx-avx512-pku-linux-ipa.o amd64-mpx-linux-ipa.o"
 ipa_ppc_linux_regobj="powerpc-32l-ipa.o powerpc-altivec32l-ipa.o powerpc-cell32l-ipa.o powerpc-vsx32l-ipa.o powerpc-isa205-32l-ipa.o powerpc-isa205-altivec32l-ipa.o powerpc-isa205-vsx32l-ipa.o powerpc-e500l-ipa.o powerpc-64l-ipa.o powerpc-altivec64l-ipa.o powerpc-cell64l-ipa.o powerpc-vsx64l-ipa.o powerpc-isa205-64l-ipa.o powerpc-isa205-altivec64l-ipa.o powerpc-isa205-vsx64l-ipa.o"
 
 srv_i386_32bit_xmlfiles="i386/32bit-core.xml i386/32bit-sse.xml i386/32bit-avx.xml i386/32bit-avx512.xml i386/32bit-mpx.xml i386/32bit-pkeys.xml"
 srv_i386_64bit_xmlfiles="i386/64bit-core.xml i386/64bit-segments.xml i386/64bit-sse.xml i386/64bit-avx.xml i386/64bit-avx512.xml i386/x32-core.xml i386/64bit-mpx.xml i386/64bit-pkeys.xml"
-srv_i386_xmlfiles="i386/i386.xml i386/i386-avx.xml i386/i386-avx-avx512.xml i386/i386-avx-mpx-avx512-pku.xml i386/i386-mpx.xml i386/i386-avx-mpx.xml i386/i386-mmx.xml $srv_i386_32bit_xmlfiles"
-srv_amd64_xmlfiles="i386/amd64.xml i386/amd64-avx.xml i386/amd64-avx-avx512.xml i386/amd64-avx-mpx-avx512-pku.xml i386/x32.xml i386/x32-avx.xml i386/x32-avx-avx512.xml i386/amd64-mpx.xml i386/amd64-avx-mpx.xml  $srv_i386_64bit_xmlfiles"
-srv_i386_linux_xmlfiles="i386/i386-linux.xml i386/i386-avx-linux.xml i386/i386-avx-avx512-linux.xml i386/i386-avx-mpx-avx512-pku-linux.xml i386/i386-mmx-linux.xml i386/32bit-linux.xml i386/i386-mpx-linux.xml i386/i386-avx-mpx-linux.xml $srv_i386_32bit_xmlfiles"
-srv_amd64_linux_xmlfiles="i386/amd64-linux.xml i386/amd64-avx-linux.xml i386/amd64-avx-avx512.xml i386/amd64-avx-mpx-avx512-pku-linux.xml i386/64bit-linux.xml i386/amd64-mpx-linux.xml i386/amd64-avx-mpx-linux.xml i386/x32-linux.xml i386/x32-avx-linux.xml i386/x32-avx-avx512-linux.xml $srv_i386_64bit_xmlfiles"
+srv_i386_xmlfiles="i386/i386.xml $srv_i386_32bit_xmlfiles"
+srv_amd64_xmlfiles="i386/amd64.xml $srv_i386_64bit_xmlfiles"
+srv_i386_linux_xmlfiles="i386/32bit-linux.xml $srv_i386_32bit_xmlfiles"
+srv_amd64_linux_xmlfiles="i386/64bit-linux.xml $srv_i386_64bit_xmlfiles"
 
 
 # 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 linux-personality.o linux-namespaces.o"
+srv_linux_obj="linux-low.o linux-osdata.o linux-procfs.o linux-ptrace.o linux-waitpid.o linux-personality.o linux-namespaces.o fork-child.o fork-inferior.o"
 
 # Input is taken from the "${target}" variable.
 
 case "${target}" in
   aarch64*-*-linux*)
-			srv_regobj="aarch64.o"
-			srv_regobj="${srv_regobj} arm-with-neon.o"
+			srv_regobj="arm-with-neon.o"
+			if $development; then
+			  srv_regobj="${srv_regobj} aarch64.o"
+			  srv_regobj="${srv_regobj} linux-aarch64-tdesc-selftest.o"
+                        fi
 			srv_tgtobj="linux-aarch64-low.o aarch64-linux-hw-point.o"
 			srv_tgtobj="$srv_tgtobj linux-aarch32-low.o"
-			srv_tgtobj="${srv_tgtobj} arm.o"
+			srv_tgtobj="${srv_tgtobj} arch/arm.o"
 			srv_tgtobj="$srv_tgtobj aarch64-linux.o"
-			srv_tgtobj="$srv_tgtobj aarch64-insn.o"
+			srv_tgtobj="$srv_tgtobj arch/aarch64-insn.o"
+			srv_tgtobj="$srv_tgtobj arch/aarch64.o"
+			srv_tgtobj="$srv_tgtobj linux-aarch64-tdesc.o"
 			srv_tgtobj="${srv_tgtobj} $srv_linux_obj"
 			srv_xmlfiles="aarch64.xml"
 			srv_xmlfiles="${srv_xmlfiles} aarch64-core.xml"
@@ -64,7 +70,9 @@ case "${target}" in
 			srv_xmlfiles="${srv_xmlfiles} arm/arm-with-neon.xml"
 			srv_linux_regsets=yes
 			srv_linux_thread_db=yes
-			ipa_obj="linux-aarch64-ipa.o aarch64-ipa.o"
+			ipa_obj="linux-aarch64-ipa.o"
+			ipa_obj="${ipa_obj} linux-aarch64-tdesc-ipa.o"
+			ipa_obj="${ipa_obj} arch/aarch64-ipa.o"
 			;;
   arm*-*-linux*)	srv_regobj="reg-arm.o arm-with-iwmmxt.o"
 			srv_regobj="${srv_regobj} arm-with-vfpv2.o"
@@ -72,9 +80,9 @@ case "${target}" in
 			srv_regobj="${srv_regobj} arm-with-neon.o"
 			srv_tgtobj="$srv_linux_obj linux-arm-low.o"
 			srv_tgtobj="$srv_tgtobj linux-aarch32-low.o"
-			srv_tgtobj="${srv_tgtobj} arm.o"
-			srv_tgtobj="${srv_tgtobj} arm-linux.o"
-			srv_tgtobj="${srv_tgtobj} arm-get-next-pcs.o"
+			srv_tgtobj="${srv_tgtobj} arch/arm.o"
+			srv_tgtobj="${srv_tgtobj} arch/arm-linux.o"
+			srv_tgtobj="${srv_tgtobj} arch/arm-get-next-pcs.o"
 			srv_xmlfiles="arm/arm-with-iwmmxt.xml"
 			srv_xmlfiles="${srv_xmlfiles} arm/arm-with-vfpv2.xml"
 			srv_xmlfiles="${srv_xmlfiles} arm/arm-with-vfpv3.xml"
@@ -110,8 +118,9 @@ case "${target}" in
 			srv_linux_usrregs=yes
 			srv_linux_thread_db=yes
 			;;
-  i[34567]86-*-cygwin*)	srv_regobj="$srv_i386_regobj"
+  i[34567]86-*-cygwin*)	srv_regobj=""
 			srv_tgtobj="x86-low.o x86-dregs.o win32-low.o win32-i386-low.o"
+			srv_tgtobj="${srv_tgtobj} arch/i386.o"
 			srv_xmlfiles="$srv_i386_xmlfiles"
 			;;
   i[34567]86-*-linux*)	srv_regobj="$srv_i386_linux_regobj"
@@ -121,25 +130,30 @@ case "${target}" in
 			    srv_xmlfiles="${srv_xmlfiles} $srv_amd64_linux_xmlfiles"
 			    srv_tgtobj="amd64-linux-siginfo.o"
 			fi
+			srv_tgtobj="${srv_tgtobj} arch/i386.o"
 			srv_tgtobj="${srv_tgtobj} $srv_linux_obj linux-x86-low.o x86-low.o x86-dregs.o i387-fp.o"
+			srv_tgtobj="${srv_tgtobj} linux-x86-tdesc.o"
 			srv_tgtobj="${srv_tgtobj} linux-btrace.o x86-linux.o"
 			srv_tgtobj="${srv_tgtobj} x86-linux-dregs.o"
 			srv_linux_usrregs=yes
 			srv_linux_regsets=yes
 			srv_linux_thread_db=yes
 			srv_linux_btrace=yes
-			ipa_obj="${ipa_i386_linux_regobj} linux-i386-ipa.o"
+			ipa_obj="linux-i386-ipa.o linux-x86-tdesc-ipa.o"
+			ipa_obj="${ipa_obj} arch/i386-ipa.o"
 			;;
-  i[34567]86-*-lynxos*)	srv_regobj="i386.o"
-			srv_tgtobj="lynx-low.o lynx-i386-low.o"
+  i[34567]86-*-lynxos*)	srv_regobj=""
+			srv_tgtobj="lynx-low.o lynx-i386-low.o fork-child.o fork-inferior.o"
+			srv_tgtobj="${srv_tgtobj} arch/i386.o"
 			srv_xmlfiles="i386/i386.xml"
 			srv_xmlfiles="${srv_xmlfiles} i386/32bit-core.xml"
 			srv_xmlfiles="${srv_xmlfiles} i386/32bit-sse.xml"
 			srv_lynxos=yes
 			;;
   i[34567]86-*-mingw32ce*)
-			srv_regobj="$srv_i386_regobj"
+			srv_regobj=""
 			srv_tgtobj="x86-low.o x86-dregs.o win32-low.o win32-i386-low.o"
+			srv_tgtobj="${srv_tgtobj} arch/i386.o"
 			srv_tgtobj="${srv_tgtobj} wincecompat.o"
 			srv_xmlfiles="$srv_i386_xmlfiles"
 			# hostio_last_error implementation is in win32-low.c
@@ -147,13 +161,14 @@ case "${target}" in
 			srv_mingw=yes
 			srv_mingwce=yes
 			;;
-  i[34567]86-*-mingw*)	srv_regobj="$srv_i386_regobj"
+  i[34567]86-*-mingw*)	srv_regobj=""
 			srv_tgtobj="x86-low.o x86-dregs.o win32-low.o win32-i386-low.o"
+			srv_tgtobj="${srv_tgtobj} arch/i386.o"
 			srv_xmlfiles="$srv_i386_xmlfiles"
 			srv_mingw=yes
 			;;
-  i[34567]86-*-nto*)	srv_regobj="$srv_i386_regobj"
-			srv_tgtobj="nto-low.o nto-x86-low.o"
+  i[34567]86-*-nto*)	srv_regobj=""
+			srv_tgtobj="nto-low.o nto-x86-low.o arch/i386.o"
 			srv_xmlfiles="$srv_i386_xmlfiles"
 			srv_qnx="yes"
 			;;
@@ -277,12 +292,14 @@ case "${target}" in
 			srv_regobj="${srv_regobj} s390-te-linux64.o"
 			srv_regobj="${srv_regobj} s390-vx-linux64.o"
 			srv_regobj="${srv_regobj} s390-tevx-linux64.o"
+			srv_regobj="${srv_regobj} s390-gs-linux64.o"
 			srv_regobj="${srv_regobj} s390x-linux64.o"
 			srv_regobj="${srv_regobj} s390x-linux64v1.o"
 			srv_regobj="${srv_regobj} s390x-linux64v2.o"
 			srv_regobj="${srv_regobj} s390x-te-linux64.o"
 			srv_regobj="${srv_regobj} s390x-vx-linux64.o"
 			srv_regobj="${srv_regobj} s390x-tevx-linux64.o"
+			srv_regobj="${srv_regobj} s390x-gs-linux64.o"
 			srv_tgtobj="$srv_linux_obj linux-s390-low.o"
 			srv_xmlfiles="s390-linux32.xml"
 			srv_xmlfiles="${srv_xmlfiles} s390-linux32v1.xml"
@@ -293,12 +310,14 @@ case "${target}" in
 			srv_xmlfiles="${srv_xmlfiles} s390-te-linux64.xml"
 			srv_xmlfiles="${srv_xmlfiles} s390-vx-linux64.xml"
 			srv_xmlfiles="${srv_xmlfiles} s390-tevx-linux64.xml"
+			srv_xmlfiles="${srv_xmlfiles} s390-gs-linux64.xml"
 			srv_xmlfiles="${srv_xmlfiles} s390x-linux64.xml"
 			srv_xmlfiles="${srv_xmlfiles} s390x-linux64v1.xml"
 			srv_xmlfiles="${srv_xmlfiles} s390x-linux64v2.xml"
 			srv_xmlfiles="${srv_xmlfiles} s390x-te-linux64.xml"
 			srv_xmlfiles="${srv_xmlfiles} s390x-vx-linux64.xml"
 			srv_xmlfiles="${srv_xmlfiles} s390x-tevx-linux64.xml"
+			srv_xmlfiles="${srv_xmlfiles} s390x-gs-linux64.xml"
 			srv_xmlfiles="${srv_xmlfiles} s390-core32.xml"
 			srv_xmlfiles="${srv_xmlfiles} s390-core64.xml"
 			srv_xmlfiles="${srv_xmlfiles} s390x-core64.xml"
@@ -306,6 +325,8 @@ case "${target}" in
 			srv_xmlfiles="${srv_xmlfiles} s390-fpr.xml"
 			srv_xmlfiles="${srv_xmlfiles} s390-tdb.xml"
 			srv_xmlfiles="${srv_xmlfiles} s390-vx.xml"
+			srv_xmlfiles="${srv_xmlfiles} s390-gs.xml"
+			srv_xmlfiles="${srv_xmlfiles} s390-gsbc.xml"
 			srv_linux_usrregs=yes
 			srv_linux_regsets=yes
 			srv_linux_thread_db=yes
@@ -319,12 +340,14 @@ case "${target}" in
 			ipa_obj="${ipa_obj} s390-vx-linux64-ipa.o"
 			ipa_obj="${ipa_obj} s390-te-linux64-ipa.o"
 			ipa_obj="${ipa_obj} s390-tevx-linux64-ipa.o"
+			ipa_obj="${ipa_obj} s390-gs-linux64-ipa.o"
 			ipa_obj="${ipa_obj} s390x-linux64-ipa.o"
 			ipa_obj="${ipa_obj} s390x-linux64v1-ipa.o"
 			ipa_obj="${ipa_obj} s390x-linux64v2-ipa.o"
 			ipa_obj="${ipa_obj} s390x-vx-linux64-ipa.o"
 			ipa_obj="${ipa_obj} s390x-te-linux64-ipa.o"
 			ipa_obj="${ipa_obj} s390x-tevx-linux64-ipa.o"
+			ipa_obj="${ipa_obj} s390x-gs-linux64-ipa.o"
 			;;
   sh*-*-linux*)		srv_regobj=reg-sh.o
 			srv_tgtobj="$srv_linux_obj linux-sh-low.o"
@@ -338,24 +361,28 @@ case "${target}" in
 			srv_linux_thread_db=yes
 			;;
   spu*-*-*)		srv_regobj=reg-spu.o
-			srv_tgtobj="spu-low.o"
+			srv_tgtobj="spu-low.o fork-child.o fork-inferior.o"
 			;;
-  tic6x-*-uclinux)	srv_regobj="tic6x-c64xp-linux.o"
-			srv_regobj="${srv_regobj} tic6x-c64x-linux.o"
-			srv_regobj="${srv_regobj} tic6x-c62x-linux.o"
-			srv_xmlfiles="tic6x-c64xp-linux.xml"
-			srv_xmlfiles="${srv_xmlfiles} tic6x-c64x-linux.xml"
-			srv_xmlfiles="${srv_xmlfiles} tic6x-c62x-linux.xml"
+  tic6x-*-uclinux)	if $development; then
+			  srv_regobj="tic6x-c64xp-linux.o"
+			  srv_regobj="${srv_regobj} tic6x-c64x-linux.o"
+			  srv_regobj="${srv_regobj} tic6x-c62x-linux.o"
+                        else
+			  srv_regobj=""
+                        fi
 			srv_xmlfiles="${srv_xmlfiles} tic6x-core.xml"
 			srv_xmlfiles="${srv_xmlfiles} tic6x-gp.xml"
 			srv_xmlfiles="${srv_xmlfiles} tic6x-c6xp.xml"
 			srv_tgtobj="$srv_linux_obj linux-tic6x-low.o"
+			srv_tgtobj="${srv_tgtobj} arch/tic6x.o"
 			srv_linux_regsets=yes
 			srv_linux_usrregs=yes
 			srv_linux_thread_db=yes
 			;;
   x86_64-*-linux*)	srv_regobj="$srv_amd64_linux_regobj $srv_i386_linux_regobj"
 			srv_tgtobj="$srv_linux_obj linux-x86-low.o x86-low.o x86-dregs.o i387-fp.o"
+			srv_tgtobj="${srv_tgtobj} arch/i386.o arch/amd64.o"
+			srv_tgtobj="${srv_tgtobj} linux-x86-tdesc.o"
 			srv_tgtobj="${srv_tgtobj} linux-btrace.o x86-linux.o"
 			srv_tgtobj="${srv_tgtobj} x86-linux-dregs.o"
 			srv_tgtobj="${srv_tgtobj} amd64-linux-siginfo.o"
@@ -364,20 +391,18 @@ case "${target}" in
 			srv_linux_regsets=yes
 			srv_linux_thread_db=yes
 			srv_linux_btrace=yes
-			if test "$gdb_cv_x86_is_x32" = yes ; then
-			    ipa_obj="${ipa_x32_linux_regobj}"
-			else
-			    ipa_obj="${ipa_amd64_linux_regobj}"
-			fi
-			ipa_obj="${ipa_obj} linux-amd64-ipa.o"
+			ipa_obj="linux-amd64-ipa.o linux-x86-tdesc-ipa.o"
+			ipa_obj="${ipa_obj} arch/amd64-ipa.o"
 			;;
-  x86_64-*-mingw*)	srv_regobj="$srv_amd64_regobj"
+  x86_64-*-mingw*)	srv_regobj=""
 			srv_tgtobj="x86-low.o x86-dregs.o i387-fp.o win32-low.o win32-i386-low.o"
+			srv_tgtobj="${srv_tgtobj} arch/amd64.o"
 			srv_xmlfiles="$srv_i386_xmlfiles $srv_amd64_xmlfiles"
 			srv_mingw=yes
 			;;
-  x86_64-*-cygwin*)	srv_regobj="$srv_amd64_regobj"
+  x86_64-*-cygwin*)	srv_regobj=""
 			srv_tgtobj="x86-low.o x86-dregs.o i387-fp.o win32-low.o win32-i386-low.o"
+			srv_tgtobj="${srv_tgtobj} arch/amd64.o"
 			srv_xmlfiles="$srv_i386_xmlfiles"
 			;;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/debug.c ./gdb/gdbserver/debug.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/debug.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/debug.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Debugging routines for the remote server for GDB.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/debug.h ./gdb/gdbserver/debug.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/debug.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/debug.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Debugging routines for the remote server for GDB.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/dll.c ./gdb/gdbserver/dll.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/dll.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/dll.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -18,56 +18,20 @@
 #include "server.h"
 #include "dll.h"
 
-#define get_dll(inf) ((struct dll_info *)(inf))
+#include <algorithm>
 
 /* An "unspecified" CORE_ADDR, for match_dll.  */
 #define UNSPECIFIED_CORE_ADDR (~(CORE_ADDR) 0)
 
-struct inferior_list all_dlls;
+std::list<dll_info> all_dlls;
 int dlls_changed;
 
-static void
-free_one_dll (struct inferior_list_entry *inf)
-{
-  struct dll_info *dll = get_dll (inf);
-  if (dll->name != NULL)
-    free (dll->name);
-  free (dll);
-}
-
-/* Find a DLL with the same name and/or base address.  A NULL name in
-   the key is ignored; so is an all-ones base address.  */
-
-static int
-match_dll (struct inferior_list_entry *inf, void *arg)
-{
-  struct dll_info *iter = (struct dll_info *) inf;
-  struct dll_info *key = (struct dll_info *) arg;
-
-  if (key->base_addr != UNSPECIFIED_CORE_ADDR
-      && iter->base_addr == key->base_addr)
-    return 1;
-  else if (key->name != NULL
-	   && iter->name != NULL
-	   && strcmp (key->name, iter->name) == 0)
-    return 1;
-
-  return 0;
-}
-
 /* Record a newly loaded DLL at BASE_ADDR.  */
 
 void
 loaded_dll (const char *name, CORE_ADDR base_addr)
 {
-  struct dll_info *new_dll = XCNEW (struct dll_info);
-
-  new_dll->entry.id = minus_one_ptid;
-
-  new_dll->name = xstrdup (name);
-  new_dll->base_addr = base_addr;
-
-  add_inferior_to_list (&all_dlls, &new_dll->entry);
+  all_dlls.emplace_back (name != NULL ? name : "", base_addr);
   dlls_changed = 1;
 }
 
@@ -76,16 +40,21 @@ loaded_dll (const char *name, CORE_ADDR 
 void
 unloaded_dll (const char *name, CORE_ADDR base_addr)
 {
-  struct dll_info *dll;
-  struct dll_info key_dll;
+  auto pred = [&] (const dll_info &dll)
+    {
+      if (base_addr != UNSPECIFIED_CORE_ADDR
+	  && base_addr == dll.base_addr)
+	return true;
+
+      if (name != NULL && dll.name == name)
+	return true;
 
-  /* Be careful not to put the key DLL in any list.  */
-  key_dll.name = (char *) name;
-  key_dll.base_addr = base_addr;
+      return false;
+    };
 
-  dll = (struct dll_info *) find_inferior (&all_dlls, match_dll, &key_dll);
+  auto iter = std::find_if (all_dlls.begin (), all_dlls.end (), pred);
 
-  if (dll == NULL)
+  if (iter == all_dlls.end ())
     /* For some inferiors we might get unloaded_dll events without having
        a corresponding loaded_dll.  In that case, the dll cannot be found
        in ALL_DLL, and there is nothing further for us to do.
@@ -99,8 +68,7 @@ unloaded_dll (const char *name, CORE_ADD
     {
       /* DLL has been found so remove the entry and free associated
          resources.  */
-      remove_inferior (&all_dlls, &dll->entry);
-      free_one_dll (&dll->entry);
+      all_dlls.erase (iter);
       dlls_changed = 1;
     }
 }
@@ -108,6 +76,5 @@ unloaded_dll (const char *name, CORE_ADD
 void
 clear_dlls (void)
 {
-  for_each_inferior (&all_dlls, free_one_dll);
-  clear_inferior_list (&all_dlls);
+  all_dlls.clear ();
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/dll.h ./gdb/gdbserver/dll.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/dll.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/dll.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -18,17 +18,19 @@
 #ifndef DLL_H
 #define DLL_H
 
+#include <list>
+
 struct dll_info
 {
-  /* This must appear first.  See inferiors.h.
-     The list iterator functions assume it.  */
-  struct inferior_list_entry entry;
+  dll_info (const std::string &name_, CORE_ADDR base_addr_)
+  : name (name_), base_addr (base_addr_)
+  {}
 
-  char *name;
+  std::string name;
   CORE_ADDR base_addr;
 };
 
-extern struct inferior_list all_dlls;
+extern std::list<dll_info> all_dlls;
 extern int dlls_changed;
 
 extern void clear_dlls (void);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/event-loop.c ./gdb/gdbserver/event-loop.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/event-loop.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/event-loop.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Event loop machinery for the remote server for GDB.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/event-loop.h ./gdb/gdbserver/event-loop.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/event-loop.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/event-loop.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Event loop machinery for the remote server for GDB.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/fork-child.c ./gdb/gdbserver/fork-child.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/fork-child.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gdbserver/fork-child.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,116 @@
+/* Fork a Unix child process, and set up to debug it, for GDBserver.
+   Copyright (C) 1989-2018 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 "server.h"
+#include "job-control.h"
+#include "nat/fork-inferior.h"
+#ifdef HAVE_SIGNAL_H
+#include <signal.h>
+#endif
+
+#ifdef SIGTTOU
+/* A file descriptor for the controlling terminal.  */
+static int terminal_fd;
+
+/* TERMINAL_FD's original foreground group.  */
+static pid_t old_foreground_pgrp;
+
+/* Hand back terminal ownership to the original foreground group.  */
+
+static void
+restore_old_foreground_pgrp (void)
+{
+  tcsetpgrp (terminal_fd, old_foreground_pgrp);
+}
+#endif
+
+/* See nat/fork-inferior.h.  */
+
+void
+prefork_hook (const char *args)
+{
+  if (debug_threads)
+    {
+      debug_printf ("args: %s\n", args);
+      debug_flush ();
+    }
+
+#ifdef SIGTTOU
+  signal (SIGTTOU, SIG_DFL);
+  signal (SIGTTIN, SIG_DFL);
+#endif
+
+  /* Clear this so the backend doesn't get confused, thinking
+     CONT_THREAD died, and it needs to resume all threads.  */
+  cont_thread = null_ptid;
+}
+
+/* See nat/fork-inferior.h.  */
+
+void
+postfork_hook (pid_t pid)
+{
+}
+
+/* See nat/fork-inferior.h.  */
+
+void
+postfork_child_hook ()
+{
+  /* This is set to the result of setpgrp, which if vforked, will be
+     visible to you in the parent process.  It's only used by humans
+     for debugging.  */
+  static int debug_setpgrp = 657473;
+
+  debug_setpgrp = gdb_setpgid ();
+  if (debug_setpgrp == -1)
+    perror (_("setpgrp failed in child"));
+}
+
+/* See nat/fork-inferior.h.  */
+
+void
+gdb_flush_out_err ()
+{
+  fflush (stdout);
+  fflush (stderr);
+}
+
+/* See server.h.  */
+
+void
+post_fork_inferior (int pid, const char *program)
+{
+#ifdef SIGTTOU
+  signal (SIGTTOU, SIG_IGN);
+  signal (SIGTTIN, SIG_IGN);
+  terminal_fd = fileno (stderr);
+  old_foreground_pgrp = tcgetpgrp (terminal_fd);
+  tcsetpgrp (terminal_fd, pid);
+  atexit (restore_old_foreground_pgrp);
+#endif
+
+  startup_inferior (pid, START_INFERIOR_TRAPS_EXPECTED,
+		    &last_status, &last_ptid);
+  current_thread->last_resume_kind = resume_stop;
+  current_thread->last_status = last_status;
+  signal_pid = pid;
+  target_post_create_inferior ();
+  fprintf (stderr, "Process %s created; pid = %d\n", program, pid);
+  fflush (stderr);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/gdb_proc_service.h ./gdb/gdbserver/gdb_proc_service.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/gdb_proc_service.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/gdb_proc_service.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* <proc_service.h> replacement for systems that don't have it.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/gdbreplay.c ./gdb/gdbserver/gdbreplay.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/gdbreplay.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/gdbreplay.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Replay a remote debug session logfile for GDB.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Written by Fred Fish (fnf@cygnus.com) from pieces of gdbserver.
 
    This file is part of GDB.
@@ -407,7 +407,7 @@ static void
 gdbreplay_version (void)
 {
   printf ("GNU gdbreplay %s%s\n"
-	  "Copyright (C) 2017 Free Software Foundation, Inc.\n"
+	  "Copyright (C) 2018 Free Software Foundation, Inc.\n"
 	  "gdbreplay is free software, covered by "
 	  "the GNU General Public License.\n"
 	  "This gdbreplay was configured as \"%s\"\n",
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/gdbthread.h ./gdb/gdbserver/gdbthread.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/gdbthread.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/gdbthread.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Multi-thread control defs for remote server for GDB.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -19,16 +19,18 @@
 #ifndef GDB_THREAD_H
 #define GDB_THREAD_H
 
+#include "common-gdbthread.h"
 #include "inferiors.h"
 
+#include <list>
+
 struct btrace_target_info;
 struct regcache;
 
 struct thread_info
 {
-  /* This must appear first.  See inferiors.h.
-     The list iterator functions assume it.  */
-  struct inferior_list_entry entry;
+  /* The id of this thread.  */
+  ptid_t id;
 
   void *target_data;
   struct regcache *regcache_data;
@@ -71,11 +73,13 @@ struct thread_info
   struct btrace_target_info *btrace;
 };
 
-extern struct inferior_list all_threads;
+extern std::list<thread_info *> all_threads;
 
 void remove_thread (struct thread_info *thread);
 struct thread_info *add_thread (ptid_t ptid, void *target_data);
 
+/* Return a pointer to the first thread, or NULL if there isn't one.  */
+
 struct thread_info *get_first_thread (void);
 
 struct thread_info *find_thread_ptid (ptid_t ptid);
@@ -84,8 +88,141 @@ struct thread_info *find_thread_ptid (pt
    found.  */
 struct thread_info *find_any_thread_of_pid (int pid);
 
+/* Find the first thread for which FUNC returns true.  Return NULL if no thread
+   satisfying FUNC is found.  */
+
+template <typename Func>
+static thread_info *
+find_thread (Func func)
+{
+  std::list<thread_info *>::iterator next, cur = all_threads.begin ();
+
+  while (cur != all_threads.end ())
+    {
+      next = cur;
+      next++;
+
+      if (func (*cur))
+	return *cur;
+
+      cur = next;
+    }
+
+  return NULL;
+}
+
+/* Like the above, but only consider threads with pid PID.  */
+
+template <typename Func>
+static thread_info *
+find_thread (int pid, Func func)
+{
+  return find_thread ([&] (thread_info *thread)
+    {
+      return thread->id.pid () == pid && func (thread);
+    });
+}
+
+/* Find the first thread that matches FILTER for which FUNC returns true.
+   Return NULL if no thread satisfying these conditions is found.  */
+
+template <typename Func>
+static thread_info *
+find_thread (ptid_t filter, Func func)
+{
+  return find_thread ([&] (thread_info *thread) {
+    return thread->id.matches (filter) && func (thread);
+  });
+}
+
+/* Invoke FUNC for each thread.  */
+
+template <typename Func>
+static void
+for_each_thread (Func func)
+{
+  std::list<thread_info *>::iterator next, cur = all_threads.begin ();
+
+  while (cur != all_threads.end ())
+    {
+      next = cur;
+      next++;
+      func (*cur);
+      cur = next;
+    }
+}
+
+/* Like the above, but only consider threads with pid PID.  */
+
+template <typename Func>
+static void
+for_each_thread (int pid, Func func)
+{
+  for_each_thread ([&] (thread_info *thread)
+    {
+      if (pid == thread->id.pid ())
+	func (thread);
+    });
+}
+
+/* Find the a random thread for which FUNC (THREAD) returns true.  If
+   no entry is found then return NULL.  */
+
+template <typename Func>
+static thread_info *
+find_thread_in_random (Func func)
+{
+  int count = 0;
+  int random_selector;
+
+  /* First count how many interesting entries we have.  */
+  for_each_thread ([&] (thread_info *thread) {
+    if (func (thread))
+      count++;
+  });
+
+  if (count == 0)
+    return NULL;
+
+  /* Now randomly pick an entry out of those.  */
+  random_selector = (int)
+    ((count * (double) rand ()) / (RAND_MAX + 1.0));
+
+  thread_info *thread = find_thread ([&] (thread_info *thread) {
+    return func (thread) && (random_selector-- == 0);
+  });
+
+  gdb_assert (thread != NULL);
+
+  return thread;
+}
+
 /* Get current thread ID (Linux task ID).  */
-#define current_ptid (current_thread->entry.id)
+#define current_ptid (current_thread->id)
+
+/* Get the ptid of THREAD.  */
+
+static inline ptid_t
+ptid_of (const thread_info *thread)
+{
+  return thread->id;
+}
+
+/* Get the pid of THREAD.  */
+
+static inline int
+pid_of (const thread_info *thread)
+{
+  return thread->id.pid ();
+}
+
+/* Get the lwp of THREAD.  */
+
+static inline long
+lwpid_of (const thread_info *thread)
+{
+  return thread->id.lwp ();
+}
 
 /* Create a cleanup to restore current_thread.  */
 struct cleanup *make_cleanup_restore_current_thread (void);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/hostio.c ./gdb/gdbserver/hostio.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/hostio.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/hostio.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Host file transfer support for gdbserver.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    Contributed by CodeSourcery.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/hostio-errno.c ./gdb/gdbserver/hostio-errno.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/hostio-errno.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/hostio-errno.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Host file transfer support for gdbserver.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    Contributed by CodeSourcery.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/hostio.h ./gdb/gdbserver/hostio.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/hostio.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/hostio.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Host file transfer support for gdbserver.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/i387-fp.c ./gdb/gdbserver/i387-fp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/i387-fp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/i387-fp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* i387-specific utility functions, for the remote server for GDB.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/i387-fp.h ./gdb/gdbserver/i387-fp.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/i387-fp.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/i387-fp.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* i387-specific utility functions, for the remote server for GDB.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/inferiors.c ./gdb/gdbserver/inferiors.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/inferiors.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/inferiors.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Inferior process information for the remote server for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by MontaVista Software.
 
@@ -22,96 +22,24 @@
 #include "gdbthread.h"
 #include "dll.h"
 
-struct inferior_list all_processes;
-struct inferior_list all_threads;
+std::list<process_info *> all_processes;
+std::list<thread_info *> all_threads;
 
 struct thread_info *current_thread;
 
-#define get_thread(inf) ((struct thread_info *)(inf))
-
-void
-add_inferior_to_list (struct inferior_list *list,
-		      struct inferior_list_entry *new_inferior)
-{
-  new_inferior->next = NULL;
-  if (list->tail != NULL)
-    list->tail->next = new_inferior;
-  else
-    list->head = new_inferior;
-  list->tail = new_inferior;
-}
-
-/* Invoke ACTION for each inferior in LIST.  */
-
-void
-for_each_inferior (struct inferior_list *list,
-		   void (*action) (struct inferior_list_entry *))
-{
-  struct inferior_list_entry *cur = list->head, *next;
-
-  while (cur != NULL)
-    {
-      next = cur->next;
-      (*action) (cur);
-      cur = next;
-    }
-}
-
-/* Invoke ACTION for each inferior in LIST, passing DATA to ACTION.  */
-
-void
-for_each_inferior_with_data (struct inferior_list *list,
-			     void (*action) (struct inferior_list_entry *,
-					     void *),
-			     void *data)
-{
-  struct inferior_list_entry *cur = list->head, *next;
-
-  while (cur != NULL)
-    {
-      next = cur->next;
-      (*action) (cur, data);
-      cur = next;
-    }
-}
-
-void
-remove_inferior (struct inferior_list *list,
-		 struct inferior_list_entry *entry)
-{
-  struct inferior_list_entry **cur;
-
-  if (list->head == entry)
-    {
-      list->head = entry->next;
-      if (list->tail == entry)
-	list->tail = list->head;
-      return;
-    }
-
-  cur = &list->head;
-  while (*cur && (*cur)->next != entry)
-    cur = &(*cur)->next;
-
-  if (*cur == NULL)
-    return;
-
-  (*cur)->next = entry->next;
-
-  if (list->tail == entry)
-    list->tail = *cur;
-}
+/* The current working directory used to start the inferior.  */
+static const char *current_inferior_cwd = NULL;
 
 struct thread_info *
 add_thread (ptid_t thread_id, void *target_data)
 {
   struct thread_info *new_thread = XCNEW (struct thread_info);
 
-  new_thread->entry.id = thread_id;
+  new_thread->id = thread_id;
   new_thread->last_resume_kind = resume_continue;
   new_thread->last_status.kind = TARGET_WAITKIND_IGNORE;
 
-  add_inferior_to_list (&all_threads, &new_thread->entry);
+  all_threads.push_back (new_thread);
 
   if (current_thread == NULL)
     current_thread = new_thread;
@@ -121,33 +49,23 @@ add_thread (ptid_t thread_id, void *targ
   return new_thread;
 }
 
-ptid_t
-thread_to_gdb_id (struct thread_info *thread)
-{
-  return thread->entry.id;
-}
-
-/* Wrapper around get_first_inferior to return a struct thread_info *.  */
+/* See gdbthread.h.  */
 
 struct thread_info *
 get_first_thread (void)
 {
-  return (struct thread_info *) get_first_inferior (&all_threads);
+  if (!all_threads.empty ())
+    return all_threads.front ();
+  else
+    return NULL;
 }
 
 struct thread_info *
 find_thread_ptid (ptid_t ptid)
 {
-  return (struct thread_info *) find_inferior_id (&all_threads, ptid);
-}
-
-/* Predicate function for matching thread entry's pid to the given
-   pid value passed by address in ARGS.  */
-
-static int
-thread_pid_matches_callback (struct inferior_list_entry *entry, void *args)
-{
-  return (ptid_get_pid (entry->id) == *(pid_t *)args);
+  return find_thread ([&] (thread_info *thread) {
+    return thread->id == ptid;
+  });
 }
 
 /* Find a thread associated with the given PROCESS, or NULL if no
@@ -156,21 +74,7 @@ thread_pid_matches_callback (struct infe
 static struct thread_info *
 find_thread_process (const struct process_info *const process)
 {
-  pid_t pid = ptid_get_pid (ptid_of (process));
-
-  return (struct thread_info *)
-    find_inferior (&all_threads, thread_pid_matches_callback, &pid);
-}
-
-/* Helper for find_any_thread_of_pid.  Returns true if a thread
-   matches a PID.  */
-
-static int
-thread_of_pid (struct inferior_list_entry *entry, void *pid_p)
-{
-  int pid = *(int *) pid_p;
-
-  return (ptid_get_pid (entry->id) == pid);
+  return find_any_thread_of_pid (process->pid);
 }
 
 /* See gdbthread.h.  */
@@ -178,26 +82,15 @@ thread_of_pid (struct inferior_list_entr
 struct thread_info *
 find_any_thread_of_pid (int pid)
 {
-  struct inferior_list_entry *entry;
-
-  entry = find_inferior (&all_threads, thread_of_pid, &pid);
-
-  return (struct thread_info *) entry;
-}
-
-ptid_t
-gdb_id_to_thread_id (ptid_t gdb_id)
-{
-  struct thread_info *thread = find_thread_ptid (gdb_id);
-
-  return thread ? thread->entry.id : null_ptid;
+  return find_thread (pid, [] (thread_info *thread) {
+    return true;
+  });
 }
 
 static void
-free_one_thread (struct inferior_list_entry *inf)
+free_one_thread (thread_info *thread)
 {
-  struct thread_info *thread = get_thread (inf);
-  free_register_cache (inferior_regcache_data (thread));
+  free_register_cache (thread_regcache_data (thread));
   free (thread);
 }
 
@@ -208,152 +101,35 @@ remove_thread (struct thread_info *threa
     target_disable_btrace (thread->btrace);
 
   discard_queued_stop_replies (ptid_of (thread));
-  remove_inferior (&all_threads, (struct inferior_list_entry *) thread);
-  free_one_thread (&thread->entry);
+  all_threads.remove (thread);
+  free_one_thread (thread);
   if (current_thread == thread)
     current_thread = NULL;
 }
 
-/* Return a pointer to the first inferior in LIST, or NULL if there isn't one.
-   This is for cases where the caller needs a thread, but doesn't care
-   which one.  */
-
-struct inferior_list_entry *
-get_first_inferior (struct inferior_list *list)
-{
-  if (list->head != NULL)
-    return list->head;
-  return NULL;
-}
-
-/* Find the first inferior_list_entry E in LIST for which FUNC (E, ARG)
-   returns non-zero.  If no entry is found then return NULL.  */
-
-struct inferior_list_entry *
-find_inferior (struct inferior_list *list,
-	       int (*func) (struct inferior_list_entry *, void *), void *arg)
-{
-  struct inferior_list_entry *inf = list->head;
-
-  while (inf != NULL)
-    {
-      struct inferior_list_entry *next;
-
-      next = inf->next;
-      if ((*func) (inf, arg))
-	return inf;
-      inf = next;
-    }
-
-  return NULL;
-}
-
-/* Find the random inferior_list_entry E in LIST for which FUNC (E, ARG)
-   returns non-zero.  If no entry is found then return NULL.  */
-
-struct inferior_list_entry *
-find_inferior_in_random (struct inferior_list *list,
-			 int (*func) (struct inferior_list_entry *, void *),
-			 void *arg)
-{
-  struct inferior_list_entry *inf = list->head;
-  int count = 0;
-  int random_selector;
-
-  /* First count how many interesting entries we have.  */
-  while (inf != NULL)
-    {
-      struct inferior_list_entry *next;
-
-      next = inf->next;
-      if ((*func) (inf, arg))
-	count++;
-      inf = next;
-    }
-
-  if (count == 0)
-    return NULL;
-
-  /* Now randomly pick an entry out of those.  */
-  random_selector = (int)
-    ((count * (double) rand ()) / (RAND_MAX + 1.0));
-
-  inf = list->head;
-  while (inf != NULL)
-    {
-      struct inferior_list_entry *next;
-
-      next = inf->next;
-      if ((*func) (inf, arg) && (random_selector-- == 0))
-	return inf;
-      inf = next;
-    }
-
-  gdb_assert_not_reached ("failed to find an inferior in random.");
-  return NULL;
-}
-
-struct inferior_list_entry *
-find_inferior_id (struct inferior_list *list, ptid_t id)
-{
-  struct inferior_list_entry *inf = list->head;
-
-  while (inf != NULL)
-    {
-      if (ptid_equal (inf->id, id))
-	return inf;
-      inf = inf->next;
-    }
-
-  return NULL;
-}
-
 void *
-inferior_target_data (struct thread_info *inferior)
-{
-  return inferior->target_data;
-}
-
-void
-set_inferior_target_data (struct thread_info *inferior, void *data)
+thread_target_data (struct thread_info *thread)
 {
-  inferior->target_data = data;
+  return thread->target_data;
 }
 
 struct regcache *
-inferior_regcache_data (struct thread_info *inferior)
-{
-  return inferior->regcache_data;
-}
-
-void
-set_inferior_regcache_data (struct thread_info *inferior, struct regcache *data)
-{
-  inferior->regcache_data = data;
-}
-
-/* Return true if LIST has exactly one entry.  */
-
-int
-one_inferior_p (struct inferior_list *list)
+thread_regcache_data (struct thread_info *thread)
 {
-  return list->head != NULL && list->head == list->tail;
+  return thread->regcache_data;
 }
 
-/* Reset head,tail of LIST, assuming all entries have already been freed.  */
-
 void
-clear_inferior_list (struct inferior_list *list)
+set_thread_regcache_data (struct thread_info *thread, struct regcache *data)
 {
-  list->head = NULL;
-  list->tail = NULL;
+  thread->regcache_data = data;
 }
 
 void
 clear_inferiors (void)
 {
-  for_each_inferior (&all_threads, free_one_thread);
-  clear_inferior_list (&all_threads);
+  for_each_thread (free_one_thread);
+  all_threads.clear ();
 
   clear_dlls ();
 
@@ -363,12 +139,9 @@ clear_inferiors (void)
 struct process_info *
 add_process (int pid, int attached)
 {
-  struct process_info *process = XCNEW (struct process_info);
+  process_info *process = new process_info (pid, attached);
 
-  process->entry.id = pid_to_ptid (pid);
-  process->attached = attached;
-
-  add_inferior_to_list (&all_processes, &process->entry);
+  all_processes.push_back (process);
 
   return process;
 }
@@ -383,35 +156,27 @@ remove_process (struct process_info *pro
   clear_symbol_cache (&process->symbol_cache);
   free_all_breakpoints (process);
   gdb_assert (find_thread_process (process) == NULL);
-  remove_inferior (&all_processes, &process->entry);
-  VEC_free (int, process->syscalls_to_catch);
-  free (process);
+  all_processes.remove (process);
+  delete process;
 }
 
-struct process_info *
+process_info *
 find_process_pid (int pid)
 {
-  return (struct process_info *)
-    find_inferior_id (&all_processes, pid_to_ptid (pid));
+  return find_process ([&] (process_info *process) {
+    return process->pid == pid;
+  });
 }
 
-/* Wrapper around get_first_inferior to return a struct process_info *.  */
+/* Get the first process in the process list, or NULL if the list is empty.  */
 
-struct process_info *
+process_info *
 get_first_process (void)
 {
-  return (struct process_info *) get_first_inferior (&all_processes);
-}
-
-/* Return non-zero if INF, a struct process_info, was started by us,
-   i.e. not attached to.  */
-
-static int
-started_inferior_callback (struct inferior_list_entry *entry, void *args)
-{
-  struct process_info *process = (struct process_info *) entry;
-
-  return ! process->attached;
+  if (!all_processes.empty ())
+    return all_processes.front ();
+  else
+    return NULL;
 }
 
 /* Return non-zero if there are any inferiors that we have created
@@ -420,18 +185,9 @@ started_inferior_callback (struct inferi
 int
 have_started_inferiors_p (void)
 {
-  return (find_inferior (&all_processes, started_inferior_callback, NULL)
-	  != NULL);
-}
-
-/* Return non-zero if INF, a struct process_info, was attached to.  */
-
-static int
-attached_inferior_callback (struct inferior_list_entry *entry, void *args)
-{
-  struct process_info *process = (struct process_info *) entry;
-
-  return process->attached;
+  return find_process ([] (process_info *process) {
+    return !process->attached;
+  }) != NULL;
 }
 
 /* Return non-zero if there are any inferiors that we have attached to.  */
@@ -439,15 +195,15 @@ attached_inferior_callback (struct infer
 int
 have_attached_inferiors_p (void)
 {
-  return (find_inferior (&all_processes, attached_inferior_callback, NULL)
-	  != NULL);
+  return find_process ([] (process_info *process) {
+    return process->attached;
+  }) != NULL;
 }
 
 struct process_info *
 get_thread_process (const struct thread_info *thread)
 {
-  int pid = ptid_get_pid (thread->entry.id);
-  return find_process_pid (pid);
+  return find_process_pid (thread->id.pid ());
 }
 
 struct process_info *
@@ -468,3 +224,32 @@ make_cleanup_restore_current_thread (voi
 {
   return make_cleanup (do_restore_current_thread_cleanup, current_thread);
 }
+
+/* See common/common-gdbthread.h.  */
+
+void
+switch_to_thread (ptid_t ptid)
+{
+  gdb_assert (ptid != minus_one_ptid);
+  current_thread = find_thread_ptid (ptid);
+}
+
+/* See common/common-inferior.h.  */
+
+const char *
+get_inferior_cwd ()
+{
+  return current_inferior_cwd;
+}
+
+/* See common/common-inferior.h.  */
+
+void
+set_inferior_cwd (const char *cwd)
+{
+  xfree ((void *) current_inferior_cwd);
+  if (cwd != NULL)
+    current_inferior_cwd = xstrdup (cwd);
+  else
+    current_inferior_cwd = NULL;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/inferiors.h ./gdb/gdbserver/inferiors.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/inferiors.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/inferiors.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Inferior process information for the remote server for GDB.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,19 +20,7 @@
 #define INFERIORS_H
 
 #include "gdb_vecs.h"
-
-/* Generic information for tracking a list of ``inferiors'' - threads,
-   processes, etc.  */
-struct inferior_list
-{
-  struct inferior_list_entry *head;
-  struct inferior_list_entry *tail;
-};
-struct inferior_list_entry
-{
-  ptid_t id;
-  struct inferior_list_entry *next;
-};
+#include <list>
 
 struct thread_info;
 struct regcache;
@@ -45,9 +33,12 @@ struct process_info_private;
 
 struct process_info
 {
-  /* This must appear first.
-     The list iterator functions assume it.  */
-  struct inferior_list_entry entry;
+  process_info (int pid_, int attached_)
+  : pid (pid_), attached (attached_)
+  {}
+
+  /* This process' pid.  */
+  int pid;
 
   /* Nonzero if this child process was attached rather than
      spawned.  */
@@ -55,33 +46,37 @@ struct process_info
 
   /* True if GDB asked us to detach from this process, but we remained
      attached anyway.  */
-  int gdb_detached;
+  int gdb_detached = 0;
 
   /* The symbol cache.  */
-  struct sym_cache *symbol_cache;
+  struct sym_cache *symbol_cache = NULL;
 
   /* The list of memory breakpoints.  */
-  struct breakpoint *breakpoints;
+  struct breakpoint *breakpoints = NULL;
 
   /* The list of raw memory breakpoints.  */
-  struct raw_breakpoint *raw_breakpoints;
+  struct raw_breakpoint *raw_breakpoints = NULL;
 
   /* The list of installed fast tracepoints.  */
-  struct fast_tracepoint_jump *fast_tracepoint_jumps;
+  struct fast_tracepoint_jump *fast_tracepoint_jumps = NULL;
 
   /* The list of syscalls to report, or just a single element, ANY_SYSCALL,
      for unfiltered syscall reporting.  */
-  VEC (int) *syscalls_to_catch;
+  std::vector<int> syscalls_to_catch;
 
-  const struct target_desc *tdesc;
+  const struct target_desc *tdesc = NULL;
 
   /* Private target data.  */
-  struct process_info_private *priv;
+  struct process_info_private *priv = NULL;
 };
 
-#define ptid_of(inf) ((inf)->entry.id)
-#define pid_of(inf) ptid_get_pid ((inf)->entry.id)
-#define lwpid_of(inf) ptid_get_lwp ((inf)->entry.id)
+/* Get the pid of PROC.  */
+
+static inline int
+pid_of (const process_info *proc)
+{
+  return proc->pid;
+}
 
 /* Return a pointer to the process that corresponds to the current
    thread (current_thread).  It is an error to call this if there is
@@ -90,49 +85,49 @@ struct process_info
 struct process_info *current_process (void);
 struct process_info *get_thread_process (const struct thread_info *);
 
-extern struct inferior_list all_processes;
+extern std::list<process_info *> all_processes;
 
-void add_inferior_to_list (struct inferior_list *list,
-			   struct inferior_list_entry *new_inferior);
-void for_each_inferior (struct inferior_list *list,
-			void (*action) (struct inferior_list_entry *));
-
-void for_each_inferior_with_data
-  (struct inferior_list *list,
-   void (*action) (struct inferior_list_entry *, void *),
-   void *data);
-
-void clear_inferior_list (struct inferior_list *list);
-
-int one_inferior_p (struct inferior_list *list);
-
-/* Helper for ALL_INFERIORS_TYPE.  Gets the next element starting at
-   CUR, if CUR is not NULL.  */
-#define A_I_NEXT(type, list, cur)					\
-  ((cur) != NULL							\
-   ? (type *) ((struct inferior_list_entry *) cur)->next		\
-   : NULL)
-
-/* Iterate over all inferiors of type TYPE in LIST, open loop
-   style.  */
-#define ALL_INFERIORS_TYPE(type, list, cur, tmp)				\
-  for ((cur) = (type *) (list)->head, (tmp) = A_I_NEXT (type, list, cur); \
-       (cur) != NULL;							\
-       (cur) = (tmp), (tmp) = A_I_NEXT (type, list, cur))
-
-/* Iterate over all inferiors in LIST, open loop style.  */
-#define ALL_INFERIORS(list, cur, tmp)				\
-  ALL_INFERIORS_TYPE (struct inferior_list_entry, list, cur, tmp)
-
-/* Iterate over all processes, open loop style.  */
-#define ALL_PROCESSES(cur, tmp)					\
-  ALL_INFERIORS_TYPE (struct process_info, &all_processes, cur, tmp)
+/* Invoke FUNC for each process.  */
 
-extern struct thread_info *current_thread;
-void remove_inferior (struct inferior_list *list,
-		      struct inferior_list_entry *entry);
+template <typename Func>
+static void
+for_each_process (Func func)
+{
+  std::list<process_info *>::iterator next, cur = all_processes.begin ();
 
-struct inferior_list_entry *get_first_inferior (struct inferior_list *list);
+  while (cur != all_processes.end ())
+    {
+      next = cur;
+      next++;
+      func (*cur);
+      cur = next;
+    }
+}
+
+/* Find the first process for which FUNC returns true.  Return NULL if no
+   process satisfying FUNC is found.  */
+
+template <typename Func>
+static process_info *
+find_process (Func func)
+{
+  std::list<process_info *>::iterator next, cur = all_processes.begin ();
+
+  while (cur != all_processes.end ())
+    {
+      next = cur;
+      next++;
+
+      if (func (*cur))
+        return *cur;
+
+      cur = next;
+    }
+
+  return NULL;
+}
+
+extern struct thread_info *current_thread;
 
 /* Return the first process in the processes list.  */
 struct process_info *get_first_process (void);
@@ -143,26 +138,10 @@ struct process_info *find_process_pid (i
 int have_started_inferiors_p (void);
 int have_attached_inferiors_p (void);
 
-ptid_t thread_to_gdb_id (struct thread_info *);
-ptid_t gdb_id_to_thread_id (ptid_t);
-
 void clear_inferiors (void);
-struct inferior_list_entry *find_inferior
-     (struct inferior_list *,
-      int (*func) (struct inferior_list_entry *,
-		   void *),
-      void *arg);
-struct inferior_list_entry *find_inferior_id (struct inferior_list *list,
-					      ptid_t id);
-struct inferior_list_entry *
-  find_inferior_in_random (struct inferior_list *,
-			   int (*func) (struct inferior_list_entry *,
-					void *),
-			   void *arg);
-
-void *inferior_target_data (struct thread_info *);
-void set_inferior_target_data (struct thread_info *, void *);
-struct regcache *inferior_regcache_data (struct thread_info *);
-void set_inferior_regcache_data (struct thread_info *, struct regcache *);
+
+void *thread_target_data (struct thread_info *);
+struct regcache *thread_regcache_data (struct thread_info *);
+void set_thread_regcache_data (struct thread_info *, struct regcache *);
 
 #endif /* INFERIORS_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-aarch32-low.c ./gdb/gdbserver/linux-aarch32-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-aarch32-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-aarch32-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-aarch32-low.h ./gdb/gdbserver/linux-aarch32-low.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-aarch32-low.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-aarch32-low.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-aarch64-ipa.c ./gdb/gdbserver/linux-aarch64-ipa.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-aarch64-ipa.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-aarch64-ipa.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* GNU/Linux/AArch64 specific low level interface, for the in-process
    agent library for GDB.
 
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -25,10 +25,7 @@
 #ifdef HAVE_GETAUXVAL
 #include <sys/auxv.h>
 #endif
-
-/* Defined in auto-generated file aarch64.c.  */
-void init_registers_aarch64 (void);
-extern const struct target_desc *tdesc_aarch64;
+#include "linux-aarch64-tdesc.h"
 
 /* Each register saved by the jump pad is in a 16 byte cell.  */
 #define FT_CR_SIZE 16
@@ -155,7 +152,7 @@ get_raw_reg (const unsigned char *raw_re
 const struct target_desc *
 get_ipa_tdesc (int idx)
 {
-  return tdesc_aarch64;
+  return aarch64_linux_read_description ();
 }
 
 /* Allocate buffer for the jump pads.  The branch instruction has a reach
@@ -207,5 +204,5 @@ alloc_jump_pad_buffer (size_t size)
 void
 initialize_low_tracepoint (void)
 {
-  init_registers_aarch64 ();
+  aarch64_linux_read_description ();
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-aarch64-low.c ./gdb/gdbserver/linux-aarch64-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-aarch64-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-aarch64-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* GNU/Linux/AArch64 specific low level interface, for the remote server for
    GDB.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GDB.
@@ -38,27 +38,13 @@
 #include <sys/uio.h>
 
 #include "gdb_proc_service.h"
-
-/* Defined in auto-generated files.  */
-void init_registers_aarch64 (void);
-extern const struct target_desc *tdesc_aarch64;
+#include "arch/aarch64.h"
+#include "linux-aarch64-tdesc.h"
 
 #ifdef HAVE_SYS_REG_H
 #include <sys/reg.h>
 #endif
 
-#define AARCH64_X_REGS_NUM 31
-#define AARCH64_V_REGS_NUM 32
-#define AARCH64_X0_REGNO    0
-#define AARCH64_SP_REGNO   31
-#define AARCH64_PC_REGNO   32
-#define AARCH64_CPSR_REGNO 33
-#define AARCH64_V0_REGNO   34
-#define AARCH64_FPSR_REGNO (AARCH64_V0_REGNO + AARCH64_V_REGS_NUM)
-#define AARCH64_FPCR_REGNO (AARCH64_V0_REGNO + AARCH64_V_REGS_NUM + 1)
-
-#define AARCH64_NUM_REGS (AARCH64_V0_REGNO + AARCH64_V_REGS_NUM + 2)
-
 /* Per-process arch-specific data we want to keep.  */
 
 struct arch_process_info
@@ -109,10 +95,10 @@ aarch64_fill_gregset (struct regcache *r
   int i;
 
   for (i = 0; i < AARCH64_X_REGS_NUM; i++)
-    collect_register (regcache, AARCH64_X0_REGNO + i, &regset->regs[i]);
-  collect_register (regcache, AARCH64_SP_REGNO, &regset->sp);
-  collect_register (regcache, AARCH64_PC_REGNO, &regset->pc);
-  collect_register (regcache, AARCH64_CPSR_REGNO, &regset->pstate);
+    collect_register (regcache, AARCH64_X0_REGNUM + i, &regset->regs[i]);
+  collect_register (regcache, AARCH64_SP_REGNUM, &regset->sp);
+  collect_register (regcache, AARCH64_PC_REGNUM, &regset->pc);
+  collect_register (regcache, AARCH64_CPSR_REGNUM, &regset->pstate);
 }
 
 static void
@@ -122,10 +108,10 @@ aarch64_store_gregset (struct regcache *
   int i;
 
   for (i = 0; i < AARCH64_X_REGS_NUM; i++)
-    supply_register (regcache, AARCH64_X0_REGNO + i, &regset->regs[i]);
-  supply_register (regcache, AARCH64_SP_REGNO, &regset->sp);
-  supply_register (regcache, AARCH64_PC_REGNO, &regset->pc);
-  supply_register (regcache, AARCH64_CPSR_REGNO, &regset->pstate);
+    supply_register (regcache, AARCH64_X0_REGNUM + i, &regset->regs[i]);
+  supply_register (regcache, AARCH64_SP_REGNUM, &regset->sp);
+  supply_register (regcache, AARCH64_PC_REGNUM, &regset->pc);
+  supply_register (regcache, AARCH64_CPSR_REGNUM, &regset->pstate);
 }
 
 static void
@@ -135,9 +121,9 @@ aarch64_fill_fpregset (struct regcache *
   int i;
 
   for (i = 0; i < AARCH64_V_REGS_NUM; i++)
-    collect_register (regcache, AARCH64_V0_REGNO + i, &regset->vregs[i]);
-  collect_register (regcache, AARCH64_FPSR_REGNO, &regset->fpsr);
-  collect_register (regcache, AARCH64_FPCR_REGNO, &regset->fpcr);
+    collect_register (regcache, AARCH64_V0_REGNUM + i, &regset->vregs[i]);
+  collect_register (regcache, AARCH64_FPSR_REGNUM, &regset->fpsr);
+  collect_register (regcache, AARCH64_FPCR_REGNUM, &regset->fpcr);
 }
 
 static void
@@ -148,9 +134,9 @@ aarch64_store_fpregset (struct regcache 
   int i;
 
   for (i = 0; i < AARCH64_V_REGS_NUM; i++)
-    supply_register (regcache, AARCH64_V0_REGNO + i, &regset->vregs[i]);
-  supply_register (regcache, AARCH64_FPSR_REGNO, &regset->fpsr);
-  supply_register (regcache, AARCH64_FPCR_REGNO, &regset->fpcr);
+    supply_register (regcache, AARCH64_V0_REGNUM + i, &regset->vregs[i]);
+  supply_register (regcache, AARCH64_FPSR_REGNUM, &regset->fpsr);
+  supply_register (regcache, AARCH64_FPCR_REGNUM, &regset->fpcr);
 }
 
 /* Enable miscellaneous debugging output.  The name is historical - it
@@ -429,7 +415,7 @@ aarch64_linux_siginfo_fixup (siginfo_t *
   return 0;
 }
 
-/* Implementation of linux_target_ops method "linux_new_process".  */
+/* Implementation of linux_target_ops method "new_process".  */
 
 static struct arch_process_info *
 aarch64_linux_new_process (void)
@@ -441,6 +427,14 @@ aarch64_linux_new_process (void)
   return info;
 }
 
+/* Implementation of linux_target_ops method "delete_process".  */
+
+static void
+aarch64_linux_delete_process (struct arch_process_info *info)
+{
+  xfree (info);
+}
+
 /* Implementation of linux_target_ops method "linux_new_fork".  */
 
 static void
@@ -470,11 +464,10 @@ aarch64_linux_new_fork (struct process_i
   *child->priv->arch_private = *parent->priv->arch_private;
 }
 
-/* Return the right target description according to the ELF file of
-   current thread.  */
+/* Implementation of linux_target_ops method "arch_setup".  */
 
-static const struct target_desc *
-aarch64_linux_read_description (void)
+static void
+aarch64_arch_setup (void)
 {
   unsigned int machine;
   int is_elf64;
@@ -485,17 +478,9 @@ aarch64_linux_read_description (void)
   is_elf64 = linux_pid_exe_is_elf_64_file (tid, &machine);
 
   if (is_elf64)
-    return tdesc_aarch64;
+    current_process ()->tdesc = aarch64_linux_read_description ();
   else
-    return tdesc_arm_with_neon;
-}
-
-/* Implementation of linux_target_ops method "arch_setup".  */
-
-static void
-aarch64_arch_setup (void)
-{
-  current_process ()->tdesc = aarch64_linux_read_description ();
+    current_process ()->tdesc = tdesc_arm_with_neon;
 
   aarch64_linux_get_debug_reg_capacity (lwpid_of (current_thread));
 }
@@ -2990,7 +2975,9 @@ struct linux_target_ops the_low_target =
   NULL, /* supply_ptrace_register */
   aarch64_linux_siginfo_fixup,
   aarch64_linux_new_process,
+  aarch64_linux_delete_process,
   aarch64_linux_new_thread,
+  aarch64_linux_delete_thread,
   aarch64_linux_new_fork,
   aarch64_linux_prepare_to_resume,
   NULL, /* process_qsupported */
@@ -3008,9 +2995,11 @@ struct linux_target_ops the_low_target =
 void
 initialize_low_arch (void)
 {
-  init_registers_aarch64 ();
-
   initialize_low_arch_aarch32 ();
 
   initialize_regsets_info (&aarch64_regsets_info);
+
+#if GDB_SELF_TEST
+  initialize_low_tdesc ();
+#endif
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-aarch64-tdesc.c ./gdb/gdbserver/linux-aarch64-tdesc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-aarch64-tdesc.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gdbserver/linux-aarch64-tdesc.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,46 @@
+/* GNU/Linux/aarch64 specific target description, for the remote server
+   for GDB.
+   Copyright (C) 2017-2018 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 "server.h"
+#include "tdesc.h"
+#include "arch/aarch64.h"
+#include "linux-aarch32-low.h"
+
+/* Create the aarch64 target description.  */
+
+const target_desc *
+aarch64_linux_read_description ()
+{
+  static target_desc *aarch64_tdesc = NULL;
+  target_desc **tdesc = &aarch64_tdesc;
+
+  if (*tdesc == NULL)
+    {
+      *tdesc = aarch64_create_target_description ();
+
+      init_target_desc (*tdesc);
+
+#ifndef IN_PROCESS_AGENT
+      static const char *expedite_regs_aarch64[] = { "x29", "sp", "pc", NULL };
+      (*tdesc)->expedite_regs = expedite_regs_aarch64;
+#endif
+    }
+
+  return *tdesc;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-aarch64-tdesc.h ./gdb/gdbserver/linux-aarch64-tdesc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-aarch64-tdesc.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gdbserver/linux-aarch64-tdesc.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,24 @@
+/* Low level support for aarch64, shared between gdbserver and IPA.
+
+   Copyright (C) 2016-2018 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/>.  */
+
+const target_desc * aarch64_linux_read_description ();
+
+#if GDB_SELF_TEST
+void initialize_low_tdesc ();
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-aarch64-tdesc-selftest.c ./gdb/gdbserver/linux-aarch64-tdesc-selftest.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-aarch64-tdesc-selftest.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gdbserver/linux-aarch64-tdesc-selftest.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,45 @@
+/* Copyright (C) 2017-2018 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 "server.h"
+#include "tdesc.h"
+#include "common/selftest.h"
+#include "linux-aarch64-tdesc.h"
+
+/* Defined in auto-generated file features/aarch64.c.  */
+void init_registers_aarch64 (void);
+extern const struct target_desc *tdesc_aarch64;
+
+namespace selftests {
+namespace tdesc {
+static void
+aarch64_tdesc_test ()
+{
+  const target_desc *tdesc = aarch64_linux_read_description ();
+  SELF_CHECK (*tdesc == *tdesc_aarch64);
+}
+}
+} // namespace selftests
+
+void
+initialize_low_tdesc ()
+{
+  init_registers_aarch64 ();
+
+  selftests::register_test ("aarch64-tdesc",
+			    selftests::tdesc::aarch64_tdesc_test);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-amd64-ipa.c ./gdb/gdbserver/linux-amd64-ipa.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-amd64-ipa.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-amd64-ipa.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* GNU/Linux/x86-64 specific low level interface, for the in-process
    agent library for GDB.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -22,6 +22,7 @@
 #include <sys/mman.h>
 #include "tracepoint.h"
 #include "linux-x86-tdesc.h"
+#include "common/x86-xstate.h"
 
 /* Defined in auto-generated file amd64-linux.c.  */
 void init_registers_amd64_linux (void);
@@ -168,44 +169,45 @@ supply_static_tracepoint_registers (stru
 
 #endif /* HAVE_UST */
 
+#if !defined __ILP32__
+/* Map the tdesc index to xcr0 mask.  */
+static uint64_t idx2mask[X86_TDESC_LAST] = {
+  X86_XSTATE_X87_MASK,
+  X86_XSTATE_SSE_MASK,
+  X86_XSTATE_AVX_MASK,
+  X86_XSTATE_MPX_MASK,
+  X86_XSTATE_AVX_MPX_MASK,
+  X86_XSTATE_AVX_AVX512_MASK,
+  X86_XSTATE_AVX_MPX_AVX512_PKU_MASK,
+};
+#endif
+
 /* Return target_desc to use for IPA, given the tdesc index passed by
    gdbserver.  */
 
 const struct target_desc *
 get_ipa_tdesc (int idx)
 {
-#if defined __ILP32__
-  switch (idx)
+  if (idx >= X86_TDESC_LAST)
     {
-    case X86_TDESC_SSE:
-      return tdesc_x32_linux;
-    case X86_TDESC_AVX:
-      return tdesc_x32_avx_linux;
-    case X86_TDESC_AVX512:
-      return tdesc_x32_avx512_linux;
-    default:
-      break;
+      internal_error (__FILE__, __LINE__,
+		      "unknown ipa tdesc index: %d", idx);
     }
-#else
+
+#if defined __ILP32__
   switch (idx)
     {
     case X86_TDESC_SSE:
-      return tdesc_amd64_linux;
+      return amd64_linux_read_description (X86_XSTATE_SSE_MASK, true);
     case X86_TDESC_AVX:
-      return tdesc_amd64_avx_linux;
-    case X86_TDESC_MPX:
-      return tdesc_amd64_mpx_linux;
-    case X86_TDESC_AVX_MPX:
-      return tdesc_amd64_avx_mpx_linux;
-    case X86_TDESC_AVX_MPX_AVX512_PKU:
-      return tdesc_amd64_avx_mpx_avx512_pku_linux;
+      return amd64_linux_read_description (X86_XSTATE_AVX_MASK, true);
     case X86_TDESC_AVX_AVX512:
-      return tdesc_amd64_avx_avx512_linux;
+      return amd64_linux_read_description (X86_XSTATE_AVX_AVX512_MASK, true);
     default:
-      internal_error (__FILE__, __LINE__,
-		      "unknown ipa tdesc index: %d", idx);
-      return tdesc_amd64_linux;
+      break;
     }
+#else
+  return amd64_linux_read_description (idx2mask[idx], false);
 #endif
 
   internal_error (__FILE__, __LINE__,
@@ -277,15 +279,11 @@ void
 initialize_low_tracepoint (void)
 {
 #if defined __ILP32__
-  init_registers_x32_linux ();
-  init_registers_x32_avx_linux ();
-  init_registers_x32_avx512_linux ();
+  amd64_linux_read_description (X86_XSTATE_SSE_MASK, true);
+  amd64_linux_read_description (X86_XSTATE_AVX_MASK, true);
+  amd64_linux_read_description (X86_XSTATE_AVX_AVX512_MASK, true);
 #else
-  init_registers_amd64_linux ();
-  init_registers_amd64_avx_linux ();
-  init_registers_amd64_mpx_linux ();
-  init_registers_amd64_avx_mpx_linux ();
-  init_registers_amd64_avx_avx512_linux ();
-  init_registers_amd64_avx_mpx_avx512_pku_linux ();
+  for (auto i = 0; i < X86_TDESC_LAST; i++)
+    amd64_linux_read_description (idx2mask[i], false);
 #endif
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-arm-low.c ./gdb/gdbserver/linux-arm-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-arm-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-arm-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GNU/Linux/ARM specific low level interface, for the remote server for GDB.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -460,36 +460,22 @@ arm_linux_hw_point_initialize (enum raw_
 /* Callback to mark a watch-/breakpoint to be updated in all threads of
    the current process.  */
 
-struct update_registers_data
-{
-  int watch;
-  int i;
-};
-
-static int
-update_registers_callback (struct inferior_list_entry *entry, void *arg)
+static void
+update_registers_callback (thread_info *thread, int watch, int i)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lwp = get_thread_lwp (thread);
-  struct update_registers_data *data = (struct update_registers_data *) arg;
-
-  /* Only update the threads of the current process.  */
-  if (pid_of (thread) == pid_of (current_thread))
-    {
-      /* The actual update is done later just before resuming the lwp,
-         we just mark that the registers need updating.  */
-      if (data->watch)
-	lwp->arch_private->wpts_changed[data->i] = 1;
-      else
-	lwp->arch_private->bpts_changed[data->i] = 1;
 
-      /* If the lwp isn't stopped, force it to momentarily pause, so
-         we can update its breakpoint registers.  */
-      if (!lwp->stopped)
-        linux_stop_lwp (lwp);
-    }
+  /* The actual update is done later just before resuming the lwp,
+     we just mark that the registers need updating.  */
+  if (watch)
+    lwp->arch_private->wpts_changed[i] = 1;
+  else
+    lwp->arch_private->bpts_changed[i] = 1;
 
-  return 0;
+  /* If the lwp isn't stopped, force it to momentarily pause, so
+     we can update its breakpoint registers.  */
+  if (!lwp->stopped)
+    linux_stop_lwp (lwp);
 }
 
 static int
@@ -539,9 +525,14 @@ arm_insert_point (enum raw_bkpt_type typ
   for (i = 0; i < count; i++)
     if (!arm_hwbp_control_is_enabled (pts[i].control))
       {
-	struct update_registers_data data = { watch, i };
 	pts[i] = p;
-	find_inferior (&all_threads, update_registers_callback, &data);
+
+	/* Only update the threads of the current process.  */
+	for_each_thread (current_thread->id.pid (), [&] (thread_info *thread)
+	  {
+	    update_registers_callback (thread, watch, i);
+	  });
+
 	return 0;
       }
 
@@ -579,9 +570,14 @@ arm_remove_point (enum raw_bkpt_type typ
   for (i = 0; i < count; i++)
     if (arm_linux_hw_breakpoint_equal (&p, pts + i))
       {
-	struct update_registers_data data = { watch, i };
 	pts[i].control = arm_hwbp_control_disable (pts[i].control);
-	find_inferior (&all_threads, update_registers_callback, &data);
+
+	/* Only update the threads of the current process.  */
+	for_each_thread (current_thread->id.pid (), [&] (thread_info *thread)
+	  {
+	    update_registers_callback (thread, watch, i);
+	  });
+
 	return 0;
       }
 
@@ -640,6 +636,14 @@ arm_new_process (void)
   return info;
 }
 
+/* Called when a process is being deleted.  */
+
+static void
+arm_delete_process (struct arch_process_info *info)
+{
+  xfree (info);
+}
+
 /* Called when a new thread is detected.  */
 static void
 arm_new_thread (struct lwp_info *lwp)
@@ -655,6 +659,14 @@ arm_new_thread (struct lwp_info *lwp)
   lwp->arch_private = info;
 }
 
+/* Function to call when a thread is being deleted.  */
+
+static void
+arm_delete_thread (struct arch_lwp_info *arch_lwp)
+{
+  xfree (arch_lwp);
+}
+
 static void
 arm_new_fork (struct process_info *parent, struct process_info *child)
 {
@@ -691,7 +703,7 @@ arm_new_fork (struct process_info *paren
 
   /* Mark all the hardware breakpoints and watchpoints as changed to
      make sure that the registers will be updated.  */
-  child_lwp = find_lwp_pid (ptid_of (child));
+  child_lwp = find_lwp_pid (ptid_t (child->pid));
   child_lwp_info = child_lwp->arch_private;
   for (i = 0; i < MAX_BPTS; i++)
     child_lwp_info->bpts_changed[i] = 1;
@@ -925,11 +937,10 @@ arm_arch_setup (void)
 
 /* Fetch the next possible PCs after the current instruction executes.  */
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 arm_gdbserver_get_next_pcs (struct regcache *regcache)
 {
   struct arm_get_next_pcs next_pcs_ctx;
-  VEC (CORE_ADDR) *next_pcs = NULL;
 
   arm_get_next_pcs_ctor (&next_pcs_ctx,
 			 &get_next_pcs_ops,
@@ -939,9 +950,7 @@ arm_gdbserver_get_next_pcs (struct regca
 			 1,
 			 regcache);
 
-  next_pcs = arm_get_next_pcs (&next_pcs_ctx);
-
-  return next_pcs;
+  return arm_get_next_pcs (&next_pcs_ctx);
 }
 
 /* Support for hardware single step.  */
@@ -1055,7 +1064,9 @@ struct linux_target_ops the_low_target =
   NULL, /* supply_ptrace_register */
   NULL, /* siginfo_fixup */
   arm_new_process,
+  arm_delete_process,
   arm_new_thread,
+  arm_delete_thread,
   arm_new_fork,
   arm_prepare_to_resume,
   NULL, /* process_qsupported */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-bfin-low.c ./gdb/gdbserver/linux-bfin-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-bfin-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-bfin-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GNU/Linux/BFIN specific low level interface, for the remote server for GDB.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    Contributed by Analog Devices, Inc.
 
@@ -135,7 +135,9 @@ struct linux_target_ops the_low_target =
   NULL, /* supply_ptrace_register */
   NULL, /* siginfo_fixup */
   NULL, /* new_process */
+  NULL, /* delete_process */
   NULL, /* new_thread */
+  NULL, /* delete_thread */
   NULL, /* new_fork */
   NULL, /* prepare_to_resume */
   NULL, /* process_qsupported */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-cris-low.c ./gdb/gdbserver/linux-cris-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-cris-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-cris-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GNU/Linux/CRIS specific low level interface, for the remote server for GDB.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-crisv32-low.c ./gdb/gdbserver/linux-crisv32-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-crisv32-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-crisv32-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GNU/Linux/CRIS specific low level interface, for the remote server for GDB.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -415,7 +415,9 @@ struct linux_target_ops the_low_target =
   NULL, /* supply_ptrace_register */
   NULL, /* siginfo_fixup */
   NULL, /* new_process */
+  NULL, /* delete_process */
   NULL, /* new_thread */
+  NULL, /* delete_thread */
   NULL, /* new_fork */
   NULL, /* prepare_to_resume */
   NULL, /* process_qsupported */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-i386-ipa.c ./gdb/gdbserver/linux-i386-ipa.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-i386-ipa.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-i386-ipa.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* GNU/Linux/x86 specific low level interface, for the in-process
    agent library for GDB.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -22,6 +22,7 @@
 #include <sys/mman.h>
 #include "tracepoint.h"
 #include "linux-x86-tdesc.h"
+#include "common/x86-xstate.h"
 
 /* GDB register numbers.  */
 
@@ -244,33 +245,29 @@ initialize_fast_tracepoint_trampoline_bu
     }
 }
 
+/* Map the tdesc index to xcr0 mask.  */
+static uint64_t idx2mask[X86_TDESC_LAST] = {
+  X86_XSTATE_X87_MASK,
+  X86_XSTATE_SSE_MASK,
+  X86_XSTATE_AVX_MASK,
+  X86_XSTATE_MPX_MASK,
+  X86_XSTATE_AVX_MPX_MASK,
+  X86_XSTATE_AVX_AVX512_MASK,
+  X86_XSTATE_AVX_MPX_AVX512_PKU_MASK,
+};
+
 /* Return target_desc to use for IPA, given the tdesc index passed by
    gdbserver.  */
 
 const struct target_desc *
 get_ipa_tdesc (int idx)
 {
-  switch (idx)
+  if (idx >= X86_TDESC_LAST)
     {
-    case X86_TDESC_MMX:
-      return tdesc_i386_mmx_linux;
-    case X86_TDESC_SSE:
-      return tdesc_i386_linux;
-    case X86_TDESC_AVX:
-      return tdesc_i386_avx_linux;
-    case X86_TDESC_MPX:
-      return tdesc_i386_mpx_linux;
-    case X86_TDESC_AVX_MPX:
-      return tdesc_i386_avx_mpx_linux;
-    case X86_TDESC_AVX_AVX512:
-      return tdesc_i386_avx_avx512_linux;
-    case X86_TDESC_AVX_MPX_AVX512_PKU:
-      return tdesc_i386_avx_mpx_avx512_pku_linux;
-    default:
       internal_error (__FILE__, __LINE__,
 		      "unknown ipa tdesc index: %d", idx);
-      return tdesc_i386_linux;
     }
+  return i386_linux_read_description (idx2mask[idx]);
 }
 
 /* Allocate buffer for the jump pads.  On i386, we can reach an arbitrary
@@ -291,12 +288,7 @@ alloc_jump_pad_buffer (size_t size)
 void
 initialize_low_tracepoint (void)
 {
-  init_registers_i386_mmx_linux ();
-  init_registers_i386_linux ();
-  init_registers_i386_avx_linux ();
-  init_registers_i386_mpx_linux ();
-  init_registers_i386_avx_avx512_linux ();
-  init_registers_i386_avx_mpx_avx512_pku_linux ();
-
   initialize_fast_tracepoint_trampoline_buffer ();
+  for (auto i = 0; i < X86_TDESC_LAST; i++)
+    i386_linux_read_description (idx2mask[i]);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-ia64-low.c ./gdb/gdbserver/linux-ia64-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-ia64-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-ia64-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GNU/Linux/IA64 specific low level interface, for the remote server for GDB.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-low.c ./gdb/gdbserver/linux-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Low level interface to ptrace, for the remote server for GDB.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -47,6 +47,9 @@
 #include "tracepoint.h"
 #include "hostio.h"
 #include <inttypes.h>
+#include "common-inferior.h"
+#include "nat/fork-inferior.h"
+#include "environ.h"
 #ifndef ELFMAG0
 /* Don't include <linux/elf.h> here.  If it got included by gdb_proc_service.h
    then ELFMAG0 will have been defined.  If it didn't get included by
@@ -276,7 +279,7 @@ static void enqueue_pending_signal (stru
 static void complete_ongoing_step_over (void);
 static int linux_low_ptrace_options (int attached);
 static int check_ptrace_stopped_lwp_gone (struct lwp_info *lp);
-static int proceed_one_lwp (struct inferior_list_entry *entry, void *except);
+static void proceed_one_lwp (thread_info *thread, lwp_info *except);
 
 /* When the event-loop is doing a step-over, this points at the thread
    being stepped.  */
@@ -411,7 +414,12 @@ delete_lwp (struct lwp_info *lwp)
     debug_printf ("deleting %ld\n", lwpid_of (thr));
 
   remove_thread (thr);
-  free (lwp->arch_private);
+
+  if (the_low_target.delete_thread != NULL)
+    the_low_target.delete_thread (lwp->arch_private);
+  else
+    gdb_assert (lwp->arch_private == NULL);
+
   free (lwp);
 }
 
@@ -567,7 +575,7 @@ handle_extended_wait (struct lwp_info **
 
 	  clone_all_breakpoints (child_thr, event_thr);
 
-	  tdesc = XNEW (struct target_desc);
+	  tdesc = allocate_target_description ();
 	  copy_target_description (tdesc, parent_proc->tdesc);
 	  child_proc->tdesc = tdesc;
 
@@ -653,6 +661,8 @@ handle_extended_wait (struct lwp_info **
 	  new_lwp->status_pending = status;
 	}
 
+      thread_db_notice_clone (event_thr, ptid);
+
       /* Don't report the event.  */
       return 1;
     }
@@ -673,7 +683,7 @@ handle_extended_wait (struct lwp_info **
   else if (event == PTRACE_EVENT_EXEC && report_exec_events)
     {
       struct process_info *proc;
-      VEC (int) *syscalls_to_catch;
+      std::vector<int> syscalls_to_catch;
       ptid_t event_ptid;
       pid_t event_pid;
 
@@ -689,8 +699,7 @@ handle_extended_wait (struct lwp_info **
 
       /* Save the syscall list from the execing process.  */
       proc = get_thread_process (event_thr);
-      syscalls_to_catch = proc->syscalls_to_catch;
-      proc->syscalls_to_catch = NULL;
+      syscalls_to_catch = std::move (proc->syscalls_to_catch);
 
       /* Delete the execing process and all its threads.  */
       linux_mourn (proc);
@@ -721,7 +730,7 @@ handle_extended_wait (struct lwp_info **
       /* Restore the list to catch.  Don't rely on the client, which is free
 	 to avoid sending a new list when the architecture doesn't change.
 	 Also, for ANY_SYSCALL, the architecture doesn't really matter.  */
-      proc->syscalls_to_catch = syscalls_to_catch;
+      proc->syscalls_to_catch = std::move (syscalls_to_catch);
 
       /* Report the event.  */
       *orig_event_lwp = event_lwp;
@@ -946,61 +955,60 @@ add_lwp (ptid_t ptid)
   return lwp;
 }
 
+/* Callback to be used when calling fork_inferior, responsible for
+   actually initiating the tracing of the inferior.  */
+
+static void
+linux_ptrace_fun ()
+{
+  if (ptrace (PTRACE_TRACEME, 0, (PTRACE_TYPE_ARG3) 0,
+	      (PTRACE_TYPE_ARG4) 0) < 0)
+    trace_start_error_with_name ("ptrace");
+
+  if (setpgid (0, 0) < 0)
+    trace_start_error_with_name ("setpgid");
+
+  /* If GDBserver is connected to gdb via stdio, redirect the inferior's
+     stdout to stderr so that inferior i/o doesn't corrupt the connection.
+     Also, redirect stdin to /dev/null.  */
+  if (remote_connection_is_stdio ())
+    {
+      if (close (0) < 0)
+	trace_start_error_with_name ("close");
+      if (open ("/dev/null", O_RDONLY) < 0)
+	trace_start_error_with_name ("open");
+      if (dup2 (2, 1) < 0)
+	trace_start_error_with_name ("dup2");
+      if (write (2, "stdin/stdout redirected\n",
+		 sizeof ("stdin/stdout redirected\n") - 1) < 0)
+	{
+	  /* Errors ignored.  */;
+	}
+    }
+}
+
 /* Start an inferior process and returns its pid.
-   ALLARGS is a vector of program-name and args. */
+   PROGRAM is the name of the program to be started, and PROGRAM_ARGS
+   are its arguments.  */
 
 static int
-linux_create_inferior (char *program, char **allargs)
+linux_create_inferior (const char *program,
+		       const std::vector<char *> &program_args)
 {
   struct lwp_info *new_lwp;
   int pid;
   ptid_t ptid;
-  struct cleanup *restore_personality
-    = maybe_disable_address_space_randomization (disable_randomization);
-
-#if defined(__UCLIBC__) && defined(HAS_NOMMU)
-  pid = vfork ();
-#else
-  pid = fork ();
-#endif
-  if (pid < 0)
-    perror_with_name ("fork");
-
-  if (pid == 0)
-    {
-      close_most_fds ();
-      ptrace (PTRACE_TRACEME, 0, (PTRACE_TYPE_ARG3) 0, (PTRACE_TYPE_ARG4) 0);
-
-      setpgid (0, 0);
-
-      /* If gdbserver is connected to gdb via stdio, redirect the inferior's
-	 stdout to stderr so that inferior i/o doesn't corrupt the connection.
-	 Also, redirect stdin to /dev/null.  */
-      if (remote_connection_is_stdio ())
-	{
-	  close (0);
-	  open ("/dev/null", O_RDONLY);
-	  dup2 (2, 1);
-	  if (write (2, "stdin/stdout redirected\n",
-		     sizeof ("stdin/stdout redirected\n") - 1) < 0)
-	    {
-	      /* Errors ignored.  */;
-	    }
-	}
-
-      restore_original_signals_state ();
-
-      execv (program, allargs);
-      if (errno == ENOENT)
-	execvp (program, allargs);
 
-      fprintf (stderr, "Cannot exec %s: %s.\n", program,
-	       strerror (errno));
-      fflush (stderr);
-      _exit (0177);
-    }
-
-  do_cleanups (restore_personality);
+  {
+    maybe_disable_address_space_randomization restore_personality
+      (disable_randomization);
+    std::string str_program_args = stringify_argv (program_args);
+
+    pid = fork_inferior (program,
+			 str_program_args.c_str (),
+			 get_environ ()->envp (), linux_ptrace_fun,
+			 NULL, NULL, NULL, NULL);
+  }
 
   linux_add_process (pid, 0);
 
@@ -1008,6 +1016,8 @@ linux_create_inferior (char *program, ch
   new_lwp = add_lwp (ptid);
   new_lwp->must_set_ptrace_flags = 1;
 
+  post_fork_inferior (pid, program);
+
   return pid;
 }
 
@@ -1231,33 +1241,27 @@ linux_attach (unsigned long pid)
   return 0;
 }
 
-struct counter
-{
-  int pid;
-  int count;
-};
-
 static int
-second_thread_of_pid_p (struct inferior_list_entry *entry, void *args)
+last_thread_of_process_p (int pid)
 {
-  struct counter *counter = (struct counter *) args;
+  bool seen_one = false;
 
-  if (ptid_get_pid (entry->id) == counter->pid)
+  thread_info *thread = find_thread (pid, [&] (thread_info *thread)
     {
-      if (++counter->count > 1)
-	return 1;
-    }
-
-  return 0;
-}
-
-static int
-last_thread_of_process_p (int pid)
-{
-  struct counter counter = { pid , 0 };
+      if (!seen_one)
+	{
+	  /* This is the first thread of this process we see.  */
+	  seen_one = true;
+	  return false;
+	}
+      else
+	{
+	  /* This is the second thread of this process we see.  */
+	  return true;
+	}
+    });
 
-  return (find_inferior (&all_threads,
-			 second_thread_of_pid_p, &counter) == NULL);
+  return thread == NULL;
 }
 
 /* Kill LWP.  */
@@ -1347,18 +1351,13 @@ kill_wait_lwp (struct lwp_info *lwp)
     perror_with_name ("kill_wait_lwp");
 }
 
-/* Callback for `find_inferior'.  Kills an lwp of a given process,
+/* Callback for `for_each_thread'.  Kills an lwp of a given process,
    except the leader.  */
 
-static int
-kill_one_lwp_callback (struct inferior_list_entry *entry, void *args)
+static void
+kill_one_lwp_callback (thread_info *thread, int pid)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lwp = get_thread_lwp (thread);
-  int pid = * (int *) args;
-
-  if (ptid_get_pid (entry->id) != pid)
-    return 0;
 
   /* We avoid killing the first thread here, because of a Linux kernel (at
      least 2.6.0-test7 through 2.6.8-rc4) bug; if we kill the parent before
@@ -1369,12 +1368,11 @@ kill_one_lwp_callback (struct inferior_l
     {
       if (debug_threads)
 	debug_printf ("lkop: is last of process %s\n",
-		      target_pid_to_str (entry->id));
-      return 0;
+		      target_pid_to_str (thread->id));
+      return;
     }
 
   kill_wait_lwp (lwp);
-  return 0;
 }
 
 static int
@@ -1391,7 +1389,10 @@ linux_kill (int pid)
      first, as PTRACE_KILL will not work otherwise.  */
   stop_all_lwps (0, NULL);
 
-  find_inferior (&all_threads, kill_one_lwp_callback , &pid);
+  for_each_thread (pid, [&] (thread_info *thread)
+    {
+      kill_one_lwp_callback (thread, pid);
+    });
 
   /* See the comment in linux_kill_one_lwp.  We did not kill the first
      thread in the list, so do so now.  */
@@ -1580,29 +1581,20 @@ linux_detach_one_lwp (struct lwp_info *l
   delete_lwp (lwp);
 }
 
-/* Callback for find_inferior.  Detaches from non-leader threads of a
+/* Callback for for_each_thread.  Detaches from non-leader threads of a
    given process.  */
 
-static int
-linux_detach_lwp_callback (struct inferior_list_entry *entry, void *args)
+static void
+linux_detach_lwp_callback (thread_info *thread)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
-  struct lwp_info *lwp = get_thread_lwp (thread);
-  int pid = *(int *) args;
-  int lwpid = lwpid_of (thread);
-
-  /* Skip other processes.  */
-  if (ptid_get_pid (entry->id) != pid)
-    return 0;
-
   /* We don't actually detach from the thread group leader just yet.
      If the thread group exits, we must reap the zombie clone lwps
      before we're able to reap the leader.  */
-  if (ptid_get_pid (entry->id) == lwpid)
-    return 0;
+  if (thread->id.pid () == thread->id.lwp ())
+    return;
 
+  lwp_info *lwp = get_thread_lwp (thread);
   linux_detach_one_lwp (lwp);
-  return 0;
 }
 
 static int
@@ -1636,7 +1628,7 @@ linux_detach (int pid)
   /* Detach from the clone lwps first.  If the thread group exits just
      while we're detaching, we must reap the clone lwps before we're
      able to reap the leader.  */
-  find_inferior (&all_threads, linux_detach_lwp_callback, &pid);
+  for_each_thread (pid, linux_detach_lwp_callback);
 
   main_lwp = find_lwp_pid (pid_to_ptid (pid));
   linux_detach_one_lwp (main_lwp);
@@ -1651,19 +1643,6 @@ linux_detach (int pid)
 
 /* Remove all LWPs that belong to process PROC from the lwp list.  */
 
-static int
-delete_lwp_callback (struct inferior_list_entry *entry, void *proc)
-{
-  struct thread_info *thread = (struct thread_info *) entry;
-  struct lwp_info *lwp = get_thread_lwp (thread);
-  struct process_info *process = (struct process_info *) proc;
-
-  if (pid_of (thread) == pid_of (process))
-    delete_lwp (lwp);
-
-  return 0;
-}
-
 static void
 linux_mourn (struct process_info *process)
 {
@@ -1673,11 +1652,17 @@ linux_mourn (struct process_info *proces
   thread_db_mourn (process);
 #endif
 
-  find_inferior (&all_threads, delete_lwp_callback, process);
+  for_each_thread (process->pid, [] (thread_info *thread)
+    {
+      delete_lwp (get_thread_lwp (thread));
+    });
 
   /* Freeing all private data.  */
   priv = process->priv;
-  free (priv->arch_private);
+  if (the_low_target.delete_process != NULL)
+    the_low_target.delete_process (priv->arch_private);
+  else
+    gdb_assert (priv->arch_private == NULL);
   free (priv);
   process->priv = NULL;
 
@@ -1799,17 +1784,15 @@ lwp_resumed (struct lwp_info *lwp)
   return 0;
 }
 
-/* Return 1 if this lwp has an interesting status pending.  */
-static int
-status_pending_p_callback (struct inferior_list_entry *entry, void *arg)
+/* Return true if this lwp has an interesting status pending.  */
+static bool
+status_pending_p_callback (thread_info *thread, ptid_t ptid)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lp = get_thread_lwp (thread);
-  ptid_t ptid = * (ptid_t *) arg;
 
   /* Check if we're only interested in events from a specific process
      or a specific LWP.  */
-  if (!ptid_match (ptid_of (thread), ptid))
+  if (!thread->id.matches (ptid))
     return 0;
 
   if (!lwp_resumed (lp))
@@ -1825,33 +1808,19 @@ status_pending_p_callback (struct inferi
   return lp->status_pending_p;
 }
 
-static int
-same_lwp (struct inferior_list_entry *entry, void *data)
-{
-  ptid_t ptid = *(ptid_t *) data;
-  int lwp;
-
-  if (ptid_get_lwp (ptid) != 0)
-    lwp = ptid_get_lwp (ptid);
-  else
-    lwp = ptid_get_pid (ptid);
-
-  if (ptid_get_lwp (entry->id) == lwp)
-    return 1;
-
-  return 0;
-}
-
 struct lwp_info *
 find_lwp_pid (ptid_t ptid)
 {
-  struct inferior_list_entry *thread
-    = find_inferior (&all_threads, same_lwp, &ptid);
+  thread_info *thread = find_thread ([&] (thread_info *thread)
+    {
+      int lwp = ptid.lwp () != 0 ? ptid.lwp () : ptid.pid ();
+      return thread->id.lwp () == lwp;
+    });
 
   if (thread == NULL)
     return NULL;
 
-  return get_thread_lwp ((struct thread_info *) thread);
+  return get_thread_lwp (thread);
 }
 
 /* Return the number of known LWPs in the tgid given by PID.  */
@@ -1859,55 +1828,16 @@ find_lwp_pid (ptid_t ptid)
 static int
 num_lwps (int pid)
 {
-  struct inferior_list_entry *inf, *tmp;
   int count = 0;
 
-  ALL_INFERIORS (&all_threads, inf, tmp)
+  for_each_thread (pid, [&] (thread_info *thread)
     {
-      if (ptid_get_pid (inf->id) == pid)
-	count++;
-    }
+      count++;
+    });
 
   return count;
 }
 
-/* The arguments passed to iterate_over_lwps.  */
-
-struct iterate_over_lwps_args
-{
-  /* The FILTER argument passed to iterate_over_lwps.  */
-  ptid_t filter;
-
-  /* The CALLBACK argument passed to iterate_over_lwps.  */
-  iterate_over_lwps_ftype *callback;
-
-  /* The DATA argument passed to iterate_over_lwps.  */
-  void *data;
-};
-
-/* Callback for find_inferior used by iterate_over_lwps to filter
-   calls to the callback supplied to that function.  Returning a
-   nonzero value causes find_inferiors to stop iterating and return
-   the current inferior_list_entry.  Returning zero indicates that
-   find_inferiors should continue iterating.  */
-
-static int
-iterate_over_lwps_filter (struct inferior_list_entry *entry, void *args_p)
-{
-  struct iterate_over_lwps_args *args
-    = (struct iterate_over_lwps_args *) args_p;
-
-  if (ptid_match (entry->id, args->filter))
-    {
-      struct thread_info *thr = (struct thread_info *) entry;
-      struct lwp_info *lwp = get_thread_lwp (thr);
-
-      return (*args->callback) (lwp, args->data);
-    }
-
-  return 0;
-}
-
 /* See nat/linux-nat.h.  */
 
 struct lwp_info *
@@ -1915,14 +1845,17 @@ iterate_over_lwps (ptid_t filter,
 		   iterate_over_lwps_ftype callback,
 		   void *data)
 {
-  struct iterate_over_lwps_args args = {filter, callback, data};
-  struct inferior_list_entry *entry;
+  thread_info *thread = find_thread (filter, [&] (thread_info *thread)
+    {
+      lwp_info *lwp = get_thread_lwp (thread);
+
+      return callback (lwp, data);
+    });
 
-  entry = find_inferior (&all_threads, iterate_over_lwps_filter, &args);
-  if (entry == NULL)
+  if (thread == NULL)
     return NULL;
 
-  return get_thread_lwp ((struct thread_info *) entry);
+  return get_thread_lwp (thread);
 }
 
 /* Detect zombie thread group leaders, and "exit" them.  We can't reap
@@ -1931,83 +1864,74 @@ iterate_over_lwps (ptid_t filter,
 static void
 check_zombie_leaders (void)
 {
-  struct process_info *proc, *tmp;
-
-  ALL_PROCESSES (proc, tmp)
-    {
-      pid_t leader_pid = pid_of (proc);
-      struct lwp_info *leader_lp;
-
-      leader_lp = find_lwp_pid (pid_to_ptid (leader_pid));
-
-      if (debug_threads)
-	debug_printf ("leader_pid=%d, leader_lp!=NULL=%d, "
-		      "num_lwps=%d, zombie=%d\n",
-		      leader_pid, leader_lp!= NULL, num_lwps (leader_pid),
-		      linux_proc_pid_is_zombie (leader_pid));
-
-      if (leader_lp != NULL && !leader_lp->stopped
-	  /* Check if there are other threads in the group, as we may
-	     have raced with the inferior simply exiting.  */
-	  && !last_thread_of_process_p (leader_pid)
-	  && linux_proc_pid_is_zombie (leader_pid))
-	{
-	  /* A leader zombie can mean one of two things:
-
-	     - It exited, and there's an exit status pending
-	     available, or only the leader exited (not the whole
-	     program).  In the latter case, we can't waitpid the
-	     leader's exit status until all other threads are gone.
-
-	     - There are 3 or more threads in the group, and a thread
-	     other than the leader exec'd.  On an exec, the Linux
-	     kernel destroys all other threads (except the execing
-	     one) in the thread group, and resets the execing thread's
-	     tid to the tgid.  No exit notification is sent for the
-	     execing thread -- from the ptracer's perspective, it
-	     appears as though the execing thread just vanishes.
-	     Until we reap all other threads except the leader and the
-	     execing thread, the leader will be zombie, and the
-	     execing thread will be in `D (disc sleep)'.  As soon as
-	     all other threads are reaped, the execing thread changes
-	     it's tid to the tgid, and the previous (zombie) leader
-	     vanishes, giving place to the "new" leader.  We could try
-	     distinguishing the exit and exec cases, by waiting once
-	     more, and seeing if something comes out, but it doesn't
-	     sound useful.  The previous leader _does_ go away, and
-	     we'll re-add the new one once we see the exec event
-	     (which is just the same as what would happen if the
-	     previous leader did exit voluntarily before some other
-	     thread execs).  */
+  for_each_process ([] (process_info *proc) {
+    pid_t leader_pid = pid_of (proc);
+    struct lwp_info *leader_lp;
+
+    leader_lp = find_lwp_pid (pid_to_ptid (leader_pid));
+
+    if (debug_threads)
+      debug_printf ("leader_pid=%d, leader_lp!=NULL=%d, "
+		    "num_lwps=%d, zombie=%d\n",
+		    leader_pid, leader_lp!= NULL, num_lwps (leader_pid),
+		    linux_proc_pid_is_zombie (leader_pid));
+
+    if (leader_lp != NULL && !leader_lp->stopped
+	/* Check if there are other threads in the group, as we may
+	   have raced with the inferior simply exiting.  */
+	&& !last_thread_of_process_p (leader_pid)
+	&& linux_proc_pid_is_zombie (leader_pid))
+      {
+	/* A leader zombie can mean one of two things:
 
-	  if (debug_threads)
-	    debug_printf ("CZL: Thread group leader %d zombie "
-			  "(it exited, or another thread execd).\n",
-			  leader_pid);
+	   - It exited, and there's an exit status pending
+	   available, or only the leader exited (not the whole
+	   program).  In the latter case, we can't waitpid the
+	   leader's exit status until all other threads are gone.
+
+	   - There are 3 or more threads in the group, and a thread
+	   other than the leader exec'd.  On an exec, the Linux
+	   kernel destroys all other threads (except the execing
+	   one) in the thread group, and resets the execing thread's
+	   tid to the tgid.  No exit notification is sent for the
+	   execing thread -- from the ptracer's perspective, it
+	   appears as though the execing thread just vanishes.
+	   Until we reap all other threads except the leader and the
+	   execing thread, the leader will be zombie, and the
+	   execing thread will be in `D (disc sleep)'.  As soon as
+	   all other threads are reaped, the execing thread changes
+	   it's tid to the tgid, and the previous (zombie) leader
+	   vanishes, giving place to the "new" leader.  We could try
+	   distinguishing the exit and exec cases, by waiting once
+	   more, and seeing if something comes out, but it doesn't
+	   sound useful.  The previous leader _does_ go away, and
+	   we'll re-add the new one once we see the exec event
+	   (which is just the same as what would happen if the
+	   previous leader did exit voluntarily before some other
+	   thread execs).  */
+
+	if (debug_threads)
+	  debug_printf ("CZL: Thread group leader %d zombie "
+			"(it exited, or another thread execd).\n",
+			leader_pid);
 
-	  delete_lwp (leader_lp);
-	}
-    }
+	delete_lwp (leader_lp);
+      }
+    });
 }
 
-/* Callback for `find_inferior'.  Returns the first LWP that is not
-   stopped.  ARG is a PTID filter.  */
+/* Callback for `find_thread'.  Returns the first LWP that is not
+   stopped.  */
 
-static int
-not_stopped_callback (struct inferior_list_entry *entry, void *arg)
+static bool
+not_stopped_callback (thread_info *thread, ptid_t filter)
 {
-  struct thread_info *thr = (struct thread_info *) entry;
-  struct lwp_info *lwp;
-  ptid_t filter = *(ptid_t *) arg;
-
-  if (!ptid_match (ptid_of (thr), filter))
-    return 0;
+  if (!thread->id.matches (filter))
+    return false;
 
-  lwp = get_thread_lwp (thr);
-  if (!lwp->stopped)
-    return 1;
+  lwp_info *lwp = get_thread_lwp (thread);
 
-  return 0;
+  return !lwp->stopped;
 }
 
 /* Increment LWP's suspend count.  */
@@ -2079,7 +2003,9 @@ handle_tracepoints (struct lwp_info *lwp
   lwp_suspended_decr (lwp);
 
   gdb_assert (lwp->suspended == 0);
-  gdb_assert (!stabilizing_threads || lwp->collecting_fast_tracepoint);
+  gdb_assert (!stabilizing_threads
+	      || (lwp->collecting_fast_tracepoint
+		  != fast_tpoint_collect_result::not_collecting));
 
   if (tpoint_related_event)
     {
@@ -2091,10 +2017,10 @@ handle_tracepoints (struct lwp_info *lwp
   return 0;
 }
 
-/* Convenience wrapper.  Returns true if LWP is presently collecting a
-   fast tracepoint.  */
+/* Convenience wrapper.  Returns information about LWP's fast tracepoint
+   collection status.  */
 
-static int
+static fast_tpoint_collect_result
 linux_fast_tracepoint_collecting (struct lwp_info *lwp,
 				  struct fast_tpoint_collect_status *status)
 {
@@ -2102,14 +2028,14 @@ linux_fast_tracepoint_collecting (struct
   struct thread_info *thread = get_lwp_thread (lwp);
 
   if (the_low_target.get_thread_area == NULL)
-    return 0;
+    return fast_tpoint_collect_result::not_collecting;
 
   /* Get the thread area address.  This is used to recognize which
      thread is which when tracing with the in-process agent library.
      We don't read anything from the address, and treat it as opaque;
      it's the address itself that we assume is unique per-thread.  */
   if ((*the_low_target.get_thread_area) (lwpid_of (thread), &thread_area) == -1)
-    return 0;
+    return fast_tpoint_collect_result::not_collecting;
 
   return fast_tracepoint_collecting (thread_area, lwp->stop_pc, status);
 }
@@ -2133,14 +2059,14 @@ maybe_move_out_of_jump_pad (struct lwp_i
       && agent_loaded_p ())
     {
       struct fast_tpoint_collect_status status;
-      int r;
 
       if (debug_threads)
 	debug_printf ("Checking whether LWP %ld needs to move out of the "
 		      "jump pad.\n",
 		      lwpid_of (current_thread));
 
-      r = linux_fast_tracepoint_collecting (lwp, &status);
+      fast_tpoint_collect_result r
+	= linux_fast_tracepoint_collecting (lwp, &status);
 
       if (wstat == NULL
 	  || (WSTOPSIG (*wstat) != SIGILL
@@ -2150,9 +2076,10 @@ maybe_move_out_of_jump_pad (struct lwp_i
 	{
 	  lwp->collecting_fast_tracepoint = r;
 
-	  if (r != 0)
+	  if (r != fast_tpoint_collect_result::not_collecting)
 	    {
-	      if (r == 1 && lwp->exit_jump_pad_bkpt == NULL)
+	      if (r == fast_tpoint_collect_result::before_insn
+		  && lwp->exit_jump_pad_bkpt == NULL)
 		{
 		  /* Haven't executed the original instruction yet.
 		     Set breakpoint there, and wait till it's hit,
@@ -2178,9 +2105,10 @@ maybe_move_out_of_jump_pad (struct lwp_i
 	     reporting to GDB.  Otherwise, it's an IPA lib bug: just
 	     report the signal to GDB, and pray for the best.  */
 
-	  lwp->collecting_fast_tracepoint = 0;
+	  lwp->collecting_fast_tracepoint
+	    = fast_tpoint_collect_result::not_collecting;
 
-	  if (r != 0
+	  if (r != fast_tpoint_collect_result::not_collecting
 	      && (status.adjusted_insn_addr <= lwp->stop_pc
 		  && lwp->stop_pc < status.adjusted_insn_addr_end))
 	    {
@@ -2645,9 +2573,8 @@ maybe_hw_step (struct thread_info *threa
    to report, but are resumed from the core's perspective.  */
 
 static void
-resume_stopped_resumed_lwps (struct inferior_list_entry *entry)
+resume_stopped_resumed_lwps (thread_info *thread)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lp = get_thread_lwp (thread);
 
   if (lp->stopped
@@ -2698,9 +2625,11 @@ linux_wait_for_event_filtered (ptid_t wa
 
   if (ptid_equal (filter_ptid, minus_one_ptid) || ptid_is_pid (filter_ptid))
     {
-      event_thread = (struct thread_info *)
-	find_inferior_in_random (&all_threads, status_pending_p_callback,
-				 &filter_ptid);
+      event_thread = find_thread_in_random ([&] (thread_info *thread)
+	{
+	  return status_pending_p_callback (thread, filter_ptid);
+	});
+
       if (event_thread != NULL)
 	event_child = get_thread_lwp (event_thread);
       if (debug_threads && event_thread)
@@ -2712,7 +2641,8 @@ linux_wait_for_event_filtered (ptid_t wa
 
       if (stopping_threads == NOT_STOPPING_THREADS
 	  && requested_child->status_pending_p
-	  && requested_child->collecting_fast_tracepoint)
+	  && (requested_child->collecting_fast_tracepoint
+	      != fast_tpoint_collect_result::not_collecting))
 	{
 	  enqueue_one_deferred_signal (requested_child,
 				       &requested_child->status_pending);
@@ -2806,13 +2736,15 @@ linux_wait_for_event_filtered (ptid_t wa
       /* Now that we've pulled all events out of the kernel, resume
 	 LWPs that don't have an interesting event to report.  */
       if (stopping_threads == NOT_STOPPING_THREADS)
-	for_each_inferior (&all_threads, resume_stopped_resumed_lwps);
+	for_each_thread (resume_stopped_resumed_lwps);
 
       /* ... and find an LWP with a status to report to the core, if
 	 any.  */
-      event_thread = (struct thread_info *)
-	find_inferior_in_random (&all_threads, status_pending_p_callback,
-				 &filter_ptid);
+      event_thread = find_thread_in_random ([&] (thread_info *thread)
+	{
+	  return status_pending_p_callback (thread, filter_ptid);
+	});
+
       if (event_thread != NULL)
 	{
 	  event_child = get_thread_lwp (event_thread);
@@ -2826,6 +2758,11 @@ linux_wait_for_event_filtered (ptid_t wa
 	 until all other threads in the thread group are.  */
       check_zombie_leaders ();
 
+      auto not_stopped = [&] (thread_info *thread)
+	{
+	  return not_stopped_callback (thread, wait_ptid);
+	};
+
       /* If there are no resumed children left in the set of LWPs we
 	 want to wait for, bail.  We can't just block in
 	 waitpid/sigsuspend, because lwps might have been left stopped
@@ -2833,9 +2770,7 @@ linux_wait_for_event_filtered (ptid_t wa
 	 their status to change (which would only happen if we resumed
 	 them).  Even if WNOHANG is set, this return code is preferred
 	 over 0 (below), as it is more detailed.  */
-      if ((find_inferior (&all_threads,
-			  not_stopped_callback,
-			  &wait_ptid) == NULL))
+      if (find_thread (not_stopped) == NULL)
 	{
 	  if (debug_threads)
 	    debug_printf ("LLW: exit (no unwaited-for LWP)\n");
@@ -2883,67 +2818,11 @@ linux_wait_for_event (ptid_t ptid, int *
   return linux_wait_for_event_filtered (ptid, ptid, wstatp, options);
 }
 
-/* Count the LWP's that have had events.  */
-
-static int
-count_events_callback (struct inferior_list_entry *entry, void *data)
-{
-  struct thread_info *thread = (struct thread_info *) entry;
-  struct lwp_info *lp = get_thread_lwp (thread);
-  int *count = (int *) data;
-
-  gdb_assert (count != NULL);
-
-  /* Count only resumed LWPs that have an event pending. */
-  if (thread->last_status.kind == TARGET_WAITKIND_IGNORE
-      && lp->status_pending_p)
-    (*count)++;
-
-  return 0;
-}
-
-/* Select the LWP (if any) that is currently being single-stepped.  */
-
-static int
-select_singlestep_lwp_callback (struct inferior_list_entry *entry, void *data)
-{
-  struct thread_info *thread = (struct thread_info *) entry;
-  struct lwp_info *lp = get_thread_lwp (thread);
-
-  if (thread->last_status.kind == TARGET_WAITKIND_IGNORE
-      && thread->last_resume_kind == resume_step
-      && lp->status_pending_p)
-    return 1;
-  else
-    return 0;
-}
-
-/* Select the Nth LWP that has had an event.  */
-
-static int
-select_event_lwp_callback (struct inferior_list_entry *entry, void *data)
-{
-  struct thread_info *thread = (struct thread_info *) entry;
-  struct lwp_info *lp = get_thread_lwp (thread);
-  int *selector = (int *) data;
-
-  gdb_assert (selector != NULL);
-
-  /* Select only resumed LWPs that have an event pending. */
-  if (thread->last_status.kind == TARGET_WAITKIND_IGNORE
-      && lp->status_pending_p)
-    if ((*selector)-- == 0)
-      return 1;
-
-  return 0;
-}
-
 /* Select one LWP out of those that have events pending.  */
 
 static void
 select_event_lwp (struct lwp_info **orig_lp)
 {
-  int num_events = 0;
   int random_selector;
   struct thread_info *event_thread = NULL;
 
@@ -2957,10 +2836,15 @@ select_event_lwp (struct lwp_info **orig
      would report it to the user as a random signal.  */
   if (!non_stop)
     {
-      event_thread
-	= (struct thread_info *) find_inferior (&all_threads,
-						select_singlestep_lwp_callback,
-						NULL);
+      event_thread = find_thread ([] (thread_info *thread)
+	{
+	  lwp_info *lp = get_thread_lwp (thread);
+
+	  return (thread->last_status.kind == TARGET_WAITKIND_IGNORE
+		  && thread->last_resume_kind == resume_step
+		  && lp->status_pending_p);
+	});
+
       if (event_thread != NULL)
 	{
 	  if (debug_threads)
@@ -2974,7 +2858,16 @@ select_event_lwp (struct lwp_info **orig
          which have had events.  */
 
       /* First see how many events we have.  */
-      find_inferior (&all_threads, count_events_callback, &num_events);
+      int num_events = 0;
+      for_each_thread ([&] (thread_info *thread)
+	{
+	  lwp_info *lp = get_thread_lwp (thread);
+
+	  /* Count only resumed LWPs that have an event pending. */
+	  if (thread->last_status.kind == TARGET_WAITKIND_IGNORE
+	      && lp->status_pending_p)
+	    num_events++;
+	});
       gdb_assert (num_events > 0);
 
       /* Now randomly pick a LWP out of those that have had
@@ -2986,10 +2879,18 @@ select_event_lwp (struct lwp_info **orig
 	debug_printf ("SEL: Found %d SIGTRAP events, selecting #%d\n",
 		      num_events, random_selector);
 
-      event_thread
-	= (struct thread_info *) find_inferior (&all_threads,
-						select_event_lwp_callback,
-						&random_selector);
+      event_thread = find_thread ([&] (thread_info *thread)
+	{
+	  lwp_info *lp = get_thread_lwp (thread);
+
+	  /* Select only resumed LWPs that have an event pending.  */
+	  if (thread->last_status.kind == TARGET_WAITKIND_IGNORE
+	      && lp->status_pending_p)
+	    if (random_selector-- == 0)
+	      return true;
+
+	  return false;
+	});
     }
 
   if (event_thread != NULL)
@@ -3001,35 +2902,24 @@ select_event_lwp (struct lwp_info **orig
     }
 }
 
-/* Decrement the suspend count of an LWP.  */
-
-static int
-unsuspend_one_lwp (struct inferior_list_entry *entry, void *except)
-{
-  struct thread_info *thread = (struct thread_info *) entry;
-  struct lwp_info *lwp = get_thread_lwp (thread);
-
-  /* Ignore EXCEPT.  */
-  if (lwp == except)
-    return 0;
-
-  lwp_suspended_decr (lwp);
-  return 0;
-}
-
 /* Decrement the suspend count of all LWPs, except EXCEPT, if non
    NULL.  */
 
 static void
 unsuspend_all_lwps (struct lwp_info *except)
 {
-  find_inferior (&all_threads, unsuspend_one_lwp, except);
+  for_each_thread ([&] (thread_info *thread)
+    {
+      lwp_info *lwp = get_thread_lwp (thread);
+
+      if (lwp != except)
+	lwp_suspended_decr (lwp);
+    });
 }
 
-static void move_out_of_jump_pad_callback (struct inferior_list_entry *entry);
-static int stuck_in_jump_pad_callback (struct inferior_list_entry *entry,
-				       void *data);
-static int lwp_running (struct inferior_list_entry *entry, void *data);
+static void move_out_of_jump_pad_callback (thread_info *thread);
+static bool stuck_in_jump_pad_callback (thread_info *thread);
+static bool lwp_running (thread_info *thread);
 static ptid_t linux_wait_1 (ptid_t ptid,
 			    struct target_waitstatus *ourstatus,
 			    int target_options);
@@ -3067,13 +2957,8 @@ static ptid_t linux_wait_1 (ptid_t ptid,
 static void
 linux_stabilize_threads (void)
 {
-  struct thread_info *saved_thread;
-  struct thread_info *thread_stuck;
+  thread_info *thread_stuck = find_thread (stuck_in_jump_pad_callback);
 
-  thread_stuck
-    = (struct thread_info *) find_inferior (&all_threads,
-					    stuck_in_jump_pad_callback,
-					    NULL);
   if (thread_stuck != NULL)
     {
       if (debug_threads)
@@ -3082,15 +2967,15 @@ linux_stabilize_threads (void)
       return;
     }
 
-  saved_thread = current_thread;
+  thread_info *saved_thread = current_thread;
 
   stabilizing_threads = 1;
 
   /* Kick 'em all.  */
-  for_each_inferior (&all_threads, move_out_of_jump_pad_callback);
+  for_each_thread (move_out_of_jump_pad_callback);
 
   /* Loop until all are stopped out of the jump pads.  */
-  while (find_inferior (&all_threads, lwp_running, NULL) != NULL)
+  while (find_thread (lwp_running) != NULL)
     {
       struct target_waitstatus ourstatus;
       struct lwp_info *lwp;
@@ -3125,10 +3010,8 @@ linux_stabilize_threads (void)
 
   if (debug_threads)
     {
-      thread_stuck
-	= (struct thread_info *) find_inferior (&all_threads,
-						stuck_in_jump_pad_callback,
-						NULL);
+      thread_stuck = find_thread (stuck_in_jump_pad_callback);
+
       if (thread_stuck != NULL)
 	debug_printf ("couldn't stabilize, LWP %ld got stuck in jump pad\n",
 		      lwpid_of (thread_stuck));
@@ -3182,7 +3065,7 @@ gdb_catching_syscalls_p (struct lwp_info
   struct thread_info *thread = get_lwp_thread (event_child);
   struct process_info *proc = get_thread_process (thread);
 
-  return !VEC_empty (int, proc->syscalls_to_catch);
+  return !proc->syscalls_to_catch.empty ();
 }
 
 /* Returns 1 if GDB is interested in the event_child syscall.
@@ -3191,21 +3074,19 @@ gdb_catching_syscalls_p (struct lwp_info
 static int
 gdb_catch_this_syscall_p (struct lwp_info *event_child)
 {
-  int i, iter;
   int sysno;
   struct thread_info *thread = get_lwp_thread (event_child);
   struct process_info *proc = get_thread_process (thread);
 
-  if (VEC_empty (int, proc->syscalls_to_catch))
+  if (proc->syscalls_to_catch.empty ())
     return 0;
 
-  if (VEC_index (int, proc->syscalls_to_catch, 0) == ANY_SYSCALL)
+  if (proc->syscalls_to_catch[0] == ANY_SYSCALL)
     return 1;
 
   get_syscall_trapinfo (event_child, &sysno);
-  for (i = 0;
-       VEC_iterate (int, proc->syscalls_to_catch, i, iter);
-       i++)
+
+  for (int iter : proc->syscalls_to_catch)
     if (iter == sysno)
       return 1;
 
@@ -3246,14 +3127,20 @@ linux_wait_1 (ptid_t ptid,
   in_step_range = 0;
   ourstatus->kind = TARGET_WAITKIND_IGNORE;
 
+  auto status_pending_p_any = [&] (thread_info *thread)
+    {
+      return status_pending_p_callback (thread, minus_one_ptid);
+    };
+
+  auto not_stopped = [&] (thread_info *thread)
+    {
+      return not_stopped_callback (thread, minus_one_ptid);
+    };
+
   /* Find a resumed LWP, if any.  */
-  if (find_inferior (&all_threads,
-		     status_pending_p_callback,
-		     &minus_one_ptid) != NULL)
+  if (find_thread (status_pending_p_any) != NULL)
     any_resumed = 1;
-  else if ((find_inferior (&all_threads,
-			   not_stopped_callback,
-			   &minus_one_ptid) != NULL))
+  else if (find_thread (not_stopped) != NULL)
     any_resumed = 1;
   else
     any_resumed = 0;
@@ -3464,20 +3351,22 @@ linux_wait_1 (ptid_t ptid,
 	}
     }
 
-  if (event_child->collecting_fast_tracepoint)
+  if (event_child->collecting_fast_tracepoint
+      != fast_tpoint_collect_result::not_collecting)
     {
       if (debug_threads)
 	debug_printf ("LWP %ld was trying to move out of the jump pad (%d). "
 		      "Check if we're already there.\n",
 		      lwpid_of (current_thread),
-		      event_child->collecting_fast_tracepoint);
+		      (int) event_child->collecting_fast_tracepoint);
 
       trace_event = 1;
 
       event_child->collecting_fast_tracepoint
 	= linux_fast_tracepoint_collecting (event_child, NULL);
 
-      if (event_child->collecting_fast_tracepoint != 1)
+      if (event_child->collecting_fast_tracepoint
+	  != fast_tpoint_collect_result::before_insn)
 	{
 	  /* No longer need this breakpoint.  */
 	  if (event_child->exit_jump_pad_bkpt != NULL)
@@ -3504,7 +3393,8 @@ linux_wait_1 (ptid_t ptid,
 	    }
 	}
 
-      if (event_child->collecting_fast_tracepoint == 0)
+      if (event_child->collecting_fast_tracepoint
+	  == fast_tpoint_collect_result::not_collecting)
 	{
 	  if (debug_threads)
 	    debug_printf ("fast tracepoint finished "
@@ -3722,12 +3612,11 @@ linux_wait_1 (ptid_t ptid,
     {
       if (event_child->waitstatus.kind != TARGET_WAITKIND_IGNORE)
 	{
-	  char *str;
+	  std::string str
+	    = target_waitstatus_to_string (&event_child->waitstatus);
 
-	  str = target_waitstatus_to_string (&event_child->waitstatus);
 	  debug_printf ("LWP %ld: extended event with waitstatus %s\n",
-			lwpid_of (get_lwp_thread (event_child)), str);
-	  xfree (str);
+			lwpid_of (get_lwp_thread (event_child)), str.c_str ());
 	}
       if (current_thread->last_resume_kind == resume_step)
 	{
@@ -3763,18 +3652,16 @@ linux_wait_1 (ptid_t ptid,
 	{
 	  /* In all-stop, a stop reply cancels all previous resume
 	     requests.  Delete all single-step breakpoints.  */
-	  struct inferior_list_entry *inf, *tmp;
 
-	  ALL_INFERIORS (&all_threads, inf, tmp)
-	    {
-	      struct thread_info *thread = (struct thread_info *) inf;
+	  find_thread ([&] (thread_info *thread) {
+	    if (has_single_step_breakpoints (thread))
+	      {
+		remove_single_step_breakpoints_p = 1;
+		return true;
+	      }
 
-	      if (has_single_step_breakpoints (thread))
-		{
-		  remove_single_step_breakpoints_p = 1;
-		  break;
-		}
-	    }
+	    return false;
+	  });
 	}
 
       if (remove_single_step_breakpoints_p)
@@ -3791,15 +3678,10 @@ linux_wait_1 (ptid_t ptid,
 	    }
 	  else
 	    {
-	      struct inferior_list_entry *inf, *tmp;
-
-	      ALL_INFERIORS (&all_threads, inf, tmp)
-		{
-		  struct thread_info *thread = (struct thread_info *) inf;
-
-		  if (has_single_step_breakpoints (thread))
-		    delete_single_step_breakpoints (thread);
-		}
+	      for_each_thread ([] (thread_info *thread){
+		if (has_single_step_breakpoints (thread))
+		  delete_single_step_breakpoints (thread);
+	      });
 	    }
 
 	  unstop_all_lwps (0, event_child);
@@ -4051,39 +3933,35 @@ send_sigstop (struct lwp_info *lwp)
   kill_lwp (pid, SIGSTOP);
 }
 
-static int
-send_sigstop_callback (struct inferior_list_entry *entry, void *except)
+static void
+send_sigstop (thread_info *thread, lwp_info *except)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lwp = get_thread_lwp (thread);
 
   /* Ignore EXCEPT.  */
   if (lwp == except)
-    return 0;
+    return;
 
   if (lwp->stopped)
-    return 0;
+    return;
 
   send_sigstop (lwp);
-  return 0;
 }
 
 /* Increment the suspend count of an LWP, and stop it, if not stopped
    yet.  */
-static int
-suspend_and_send_sigstop_callback (struct inferior_list_entry *entry,
-				   void *except)
+static void
+suspend_and_send_sigstop (thread_info *thread, lwp_info *except)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lwp = get_thread_lwp (thread);
 
   /* Ignore EXCEPT.  */
   if (lwp == except)
-    return 0;
+    return;
 
   lwp_suspended_inc (lwp);
 
-  return send_sigstop_callback (entry, except);
+  send_sigstop (thread, except);
 }
 
 static void
@@ -4136,7 +4014,7 @@ wait_for_sigstop (void)
 
   saved_thread = current_thread;
   if (saved_thread != NULL)
-    saved_tid = saved_thread->entry.id;
+    saved_tid = saved_thread->id;
   else
     saved_tid = null_ptid; /* avoid bogus unused warning */
 
@@ -4164,15 +4042,14 @@ wait_for_sigstop (void)
     }
 }
 
-/* Returns true if LWP ENTRY is stopped in a jump pad, and we can't
+/* Returns true if THREAD is stopped in a jump pad, and we can't
    move it out, because we need to report the stop event to GDB.  For
    example, if the user puts a breakpoint in the jump pad, it's
    because she wants to debug it.  */
 
-static int
-stuck_in_jump_pad_callback (struct inferior_list_entry *entry, void *data)
+static bool
+stuck_in_jump_pad_callback (thread_info *thread)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lwp = get_thread_lwp (thread);
 
   if (lwp->suspended != 0)
@@ -4189,13 +4066,13 @@ stuck_in_jump_pad_callback (struct infer
 	  && (gdb_breakpoint_here (lwp->stop_pc)
 	      || lwp->stop_reason == TARGET_STOPPED_BY_WATCHPOINT
 	      || thread->last_resume_kind == resume_step)
-	  && linux_fast_tracepoint_collecting (lwp, NULL));
+	  && (linux_fast_tracepoint_collecting (lwp, NULL)
+	      != fast_tpoint_collect_result::not_collecting));
 }
 
 static void
-move_out_of_jump_pad_callback (struct inferior_list_entry *entry)
+move_out_of_jump_pad_callback (thread_info *thread)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct thread_info *saved_thread;
   struct lwp_info *lwp = get_thread_lwp (thread);
   int *wstat;
@@ -4243,17 +4120,15 @@ move_out_of_jump_pad_callback (struct in
   current_thread = saved_thread;
 }
 
-static int
-lwp_running (struct inferior_list_entry *entry, void *data)
+static bool
+lwp_running (thread_info *thread)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lwp = get_thread_lwp (thread);
 
   if (lwp_is_marked_dead (lwp))
-    return 0;
-  if (lwp->stopped)
-    return 0;
-  return 1;
+    return false;
+
+  return !lwp->stopped;
 }
 
 /* Stop all lwps that aren't stopped yet, except EXCEPT, if not NULL.
@@ -4281,9 +4156,16 @@ stop_all_lwps (int suspend, struct lwp_i
 		      : STOPPING_THREADS);
 
   if (suspend)
-    find_inferior (&all_threads, suspend_and_send_sigstop_callback, except);
+    for_each_thread ([&] (thread_info *thread)
+      {
+	suspend_and_send_sigstop (thread, except);
+      });
   else
-    find_inferior (&all_threads, send_sigstop_callback, except);
+    for_each_thread ([&] (thread_info *thread)
+      {
+	 send_sigstop (thread, except);
+      });
+
   wait_for_sigstop ();
   stopping_threads = NOT_STOPPING_THREADS;
 
@@ -4317,19 +4199,14 @@ enqueue_pending_signal (struct lwp_info 
 static void
 install_software_single_step_breakpoints (struct lwp_info *lwp)
 {
-  int i;
-  CORE_ADDR pc;
   struct thread_info *thread = get_lwp_thread (lwp);
   struct regcache *regcache = get_thread_regcache (thread, 1);
-  VEC (CORE_ADDR) *next_pcs = NULL;
   struct cleanup *old_chain = make_cleanup_restore_current_thread ();
 
-  make_cleanup (VEC_cleanup (CORE_ADDR), &next_pcs);
-
   current_thread = thread;
-  next_pcs = (*the_low_target.get_next_pcs) (regcache);
+  std::vector<CORE_ADDR> next_pcs = the_low_target.get_next_pcs (regcache);
 
-  for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, pc); ++i)
+  for (CORE_ADDR pc : next_pcs)
     set_single_step_breakpoint (pc, current_ptid);
 
   do_cleanups (old_chain);
@@ -4371,7 +4248,8 @@ single_step (struct lwp_info* lwp)
 static int
 lwp_signal_can_be_delivered (struct lwp_info *lwp)
 {
-  return !lwp->collecting_fast_tracepoint;
+  return (lwp->collecting_fast_tracepoint
+	  == fast_tpoint_collect_result::not_collecting);
 }
 
 /* Resume execution of LWP.  If STEP is nonzero, single-step it.  If
@@ -4383,7 +4261,6 @@ linux_resume_one_lwp_throw (struct lwp_i
 {
   struct thread_info *thread = get_lwp_thread (lwp);
   struct thread_info *saved_thread;
-  int fast_tp_collecting;
   int ptrace_request;
   struct process_info *proc = get_thread_process (thread);
 
@@ -4399,9 +4276,12 @@ linux_resume_one_lwp_throw (struct lwp_i
 
   gdb_assert (lwp->waitstatus.kind == TARGET_WAITKIND_IGNORE);
 
-  fast_tp_collecting = lwp->collecting_fast_tracepoint;
+  fast_tpoint_collect_result fast_tp_collecting
+    = lwp->collecting_fast_tracepoint;
 
-  gdb_assert (!stabilizing_threads || fast_tp_collecting);
+  gdb_assert (!stabilizing_threads
+	      || (fast_tp_collecting
+		  != fast_tpoint_collect_result::not_collecting));
 
   /* Cancel actions that rely on GDB not changing the PC (e.g., the
      user used the "jump" command, or "set $pc = foo").  */
@@ -4457,7 +4337,7 @@ linux_resume_one_lwp_throw (struct lwp_i
 
       if (can_hardware_single_step ())
 	{
-	  if (fast_tp_collecting == 0)
+	  if (fast_tp_collecting == fast_tpoint_collect_result::not_collecting)
 	    {
 	      if (step == 0)
 		warning ("BAD - reinserting but not stepping.");
@@ -4470,14 +4350,14 @@ linux_resume_one_lwp_throw (struct lwp_i
       step = maybe_hw_step (thread);
     }
 
-  if (fast_tp_collecting == 1)
+  if (fast_tp_collecting == fast_tpoint_collect_result::before_insn)
     {
       if (debug_threads)
 	debug_printf ("lwp %ld wants to get out of fast tracepoint jump pad"
 		      " (exit-jump-pad-bkpt)\n",
 		      lwpid_of (thread));
     }
-  else if (fast_tp_collecting == 2)
+  else if (fast_tp_collecting == fast_tpoint_collect_result::at_insn)
     {
       if (debug_threads)
 	debug_printf ("lwp %ld wants to get out of fast tracepoint jump pad"
@@ -4633,43 +4513,31 @@ linux_resume_one_lwp (struct lwp_info *l
   END_CATCH
 }
 
-struct thread_resume_array
-{
-  struct thread_resume *resume;
-  size_t n;
-};
-
-/* This function is called once per thread via find_inferior.
-   ARG is a pointer to a thread_resume_array struct.
-   We look up the thread specified by ENTRY in ARG, and mark the thread
-   with a pointer to the appropriate resume request.
+/* This function is called once per thread via for_each_thread.
+   We look up which resume request applies to THREAD and mark it with a
+   pointer to the appropriate resume request.
 
    This algorithm is O(threads * resume elements), but resume elements
    is small (and will remain small at least until GDB supports thread
    suspension).  */
 
-static int
-linux_set_resume_request (struct inferior_list_entry *entry, void *arg)
+static void
+linux_set_resume_request (thread_info *thread, thread_resume *resume, size_t n)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lwp = get_thread_lwp (thread);
-  int ndx;
-  struct thread_resume_array *r;
-
-  r = (struct thread_resume_array *) arg;
 
-  for (ndx = 0; ndx < r->n; ndx++)
+  for (int ndx = 0; ndx < n; ndx++)
     {
-      ptid_t ptid = r->resume[ndx].thread;
+      ptid_t ptid = resume[ndx].thread;
       if (ptid_equal (ptid, minus_one_ptid)
-	  || ptid_equal (ptid, entry->id)
+	  || ptid == thread->id
 	  /* Handle both 'pPID' and 'pPID.-1' as meaning 'all threads
 	     of PID'.  */
 	  || (ptid_get_pid (ptid) == pid_of (thread)
 	      && (ptid_is_pid (ptid)
 		  || ptid_get_lwp (ptid) == -1)))
 	{
-	  if (r->resume[ndx].kind == resume_stop
+	  if (resume[ndx].kind == resume_stop
 	      && thread->last_resume_kind == resume_stop)
 	    {
 	      if (debug_threads)
@@ -4685,7 +4553,7 @@ linux_set_resume_request (struct inferio
 
 	  /* Ignore (wildcard) resume requests for already-resumed
 	     threads.  */
-	  if (r->resume[ndx].kind != resume_stop
+	  if (resume[ndx].kind != resume_stop
 	      && thread->last_resume_kind != resume_stop)
 	    {
 	      if (debug_threads)
@@ -4702,7 +4570,6 @@ linux_set_resume_request (struct inferio
 	     does not yet know are new fork children.  */
 	  if (lwp->fork_relative != NULL)
 	    {
-	      struct inferior_list_entry *inf, *tmp;
 	      struct lwp_info *rel = lwp->fork_relative;
 
 	      if (rel->status_pending_p
@@ -4720,7 +4587,7 @@ linux_set_resume_request (struct inferio
 	     reported to GDBserver core, but GDB has not pulled the
 	     event out of the vStopped queue yet, likewise, ignore the
 	     (wildcard) resume request.  */
-	  if (in_queued_stop_replies (entry->id))
+	  if (in_queued_stop_replies (thread->id))
 	    {
 	      if (debug_threads)
 		debug_printf ("not resuming LWP %ld: has queued stop reply\n",
@@ -4728,7 +4595,7 @@ linux_set_resume_request (struct inferio
 	      continue;
 	    }
 
-	  lwp->resume = &r->resume[ndx];
+	  lwp->resume = &resume[ndx];
 	  thread->last_resume_kind = lwp->resume->kind;
 
 	  lwp->step_range_start = lwp->resume->step_range_start;
@@ -4750,34 +4617,28 @@ linux_set_resume_request (struct inferio
 			      lwpid_of (thread));
 	    }
 
-	  return 0;
+	  return;
 	}
     }
 
   /* No resume action for this thread.  */
   lwp->resume = NULL;
-
-  return 0;
 }
 
-/* find_inferior callback for linux_resume.
-   Set *FLAG_P if this lwp has an interesting status pending.  */
+/* find_thread callback for linux_resume.  Return true if this lwp has an
+   interesting status pending.  */
 
-static int
-resume_status_pending_p (struct inferior_list_entry *entry, void *flag_p)
+static bool
+resume_status_pending_p (thread_info *thread)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lwp = get_thread_lwp (thread);
 
   /* LWPs which will not be resumed are not interesting, because
      we might not wait for them next time through linux_wait.  */
   if (lwp->resume == NULL)
-    return 0;
+    return false;
 
-  if (thread_still_has_status_pending_p (thread))
-    * (int *) flag_p = 1;
-
-  return 0;
+  return thread_still_has_status_pending_p (thread);
 }
 
 /* Return 1 if this lwp that GDB wants running is stopped at an
@@ -4785,10 +4646,9 @@ resume_status_pending_p (struct inferior
    required STOP_PC adjustment has already been propagated to the
    inferior's regcache.  */
 
-static int
-need_step_over_p (struct inferior_list_entry *entry, void *dummy)
+static bool
+need_step_over_p (thread_info *thread)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lwp = get_thread_lwp (thread);
   struct thread_info *saved_thread;
   CORE_ADDR pc;
@@ -4797,7 +4657,7 @@ need_step_over_p (struct inferior_list_e
   /* GDBserver is skipping the extra traps from the wrapper program,
      don't have to do step over.  */
   if (proc->tdesc == NULL)
-    return 0;
+    return false;
 
   /* LWPs which will not be resumed are not interesting, because we
      might not wait for them next time through linux_wait.  */
@@ -4807,7 +4667,7 @@ need_step_over_p (struct inferior_list_e
       if (debug_threads)
 	debug_printf ("Need step over [LWP %ld]? Ignoring, not stopped\n",
 		      lwpid_of (thread));
-      return 0;
+      return false;
     }
 
   if (thread->last_resume_kind == resume_stop)
@@ -4816,7 +4676,7 @@ need_step_over_p (struct inferior_list_e
 	debug_printf ("Need step over [LWP %ld]? Ignoring, should remain"
 		      " stopped\n",
 		      lwpid_of (thread));
-      return 0;
+      return false;
     }
 
   gdb_assert (lwp->suspended >= 0);
@@ -4826,7 +4686,7 @@ need_step_over_p (struct inferior_list_e
       if (debug_threads)
 	debug_printf ("Need step over [LWP %ld]? Ignoring, suspended\n",
 		      lwpid_of (thread));
-      return 0;
+      return false;
     }
 
   if (lwp->status_pending_p)
@@ -4835,7 +4695,7 @@ need_step_over_p (struct inferior_list_e
 	debug_printf ("Need step over [LWP %ld]? Ignoring, has pending"
 		      " status.\n",
 		      lwpid_of (thread));
-      return 0;
+      return false;
     }
 
   /* Note: PC, not STOP_PC.  Either GDB has adjusted the PC already,
@@ -4854,7 +4714,7 @@ need_step_over_p (struct inferior_list_e
 		      "Old stop_pc was 0x%s, PC is now 0x%s\n",
 		      lwpid_of (thread),
 		      paddress (lwp->stop_pc), paddress (pc));
-      return 0;
+      return false;
     }
 
   /* On software single step target, resume the inferior with signal
@@ -4868,7 +4728,7 @@ need_step_over_p (struct inferior_list_e
 		      " signals.\n",
 		      lwpid_of (thread));
 
-      return 0;
+      return false;
     }
 
   saved_thread = current_thread;
@@ -4890,7 +4750,7 @@ need_step_over_p (struct inferior_list_e
 			  lwpid_of (thread), paddress (pc));
 
 	  current_thread = saved_thread;
-	  return 0;
+	  return false;
 	}
       else
 	{
@@ -4900,10 +4760,10 @@ need_step_over_p (struct inferior_list_e
 			  lwpid_of (thread), paddress (pc));
 
 	  /* We've found an lwp that needs stepping over --- return 1 so
-	     that find_inferior stops looking.  */
+	     that find_thread stops looking.  */
 	  current_thread = saved_thread;
 
-	  return 1;
+	  return true;
 	}
     }
 
@@ -4914,7 +4774,7 @@ need_step_over_p (struct inferior_list_e
 		  " at 0x%s\n",
 		  lwpid_of (thread), paddress (pc));
 
-  return 0;
+  return false;
 }
 
 /* Start a step-over operation on LWP.  When LWP stopped at a
@@ -4971,7 +4831,7 @@ start_step_over (struct lwp_info *lwp)
   linux_resume_one_lwp (lwp, step, 0, NULL);
 
   /* Require next event from this LWP.  */
-  step_over_bkpt = thread->entry.id;
+  step_over_bkpt = thread->id;
   return 1;
 }
 
@@ -5063,16 +4923,14 @@ complete_ongoing_step_over (void)
    event to report, so we don't need to preserve any step requests;
    they should be re-issued if necessary.  */
 
-static int
-linux_resume_one_thread (struct inferior_list_entry *entry, void *arg)
+static void
+linux_resume_one_thread (thread_info *thread, bool leave_all_stopped)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lwp = get_thread_lwp (thread);
-  int leave_all_stopped = * (int *) arg;
   int leave_pending;
 
   if (lwp->resume == NULL)
-    return 0;
+    return;
 
   if (lwp->resume->kind == resume_stop)
     {
@@ -5119,7 +4977,7 @@ linux_resume_one_thread (struct inferior
       /* For stop requests, we're done.  */
       lwp->resume = NULL;
       thread->last_status.kind = TARGET_WAITKIND_IGNORE;
-      return 0;
+      return;
     }
 
   /* If this thread which is about to be resumed has a pending status,
@@ -5157,7 +5015,7 @@ linux_resume_one_thread (struct inferior
       if (debug_threads)
 	debug_printf ("resuming LWP %ld\n", lwpid_of (thread));
 
-      proceed_one_lwp (entry, NULL);
+      proceed_one_lwp (thread, NULL);
     }
   else
     {
@@ -5167,16 +5025,12 @@ linux_resume_one_thread (struct inferior
 
   thread->last_status.kind = TARGET_WAITKIND_IGNORE;
   lwp->resume = NULL;
-  return 0;
 }
 
 static void
 linux_resume (struct thread_resume *resume_info, size_t n)
 {
-  struct thread_resume_array array = { resume_info, n };
   struct thread_info *need_step_over = NULL;
-  int any_pending;
-  int leave_all_stopped;
 
   if (debug_threads)
     {
@@ -5184,7 +5038,10 @@ linux_resume (struct thread_resume *resu
       debug_printf ("linux_resume:\n");
     }
 
-  find_inferior (&all_threads, linux_set_resume_request, &array);
+  for_each_thread ([&] (thread_info *thread)
+    {
+      linux_set_resume_request (thread, resume_info, n);
+    });
 
   /* If there is a thread which would otherwise be resumed, which has
      a pending status, then don't resume any threads - we can just
@@ -5192,9 +5049,9 @@ linux_resume (struct thread_resume *resu
      would otherwise be sent.  In non-stop mode, we'll apply this
      logic to each thread individually.  We consume all pending events
      before considering to start a step-over (in all-stop).  */
-  any_pending = 0;
+  bool any_pending = false;
   if (!non_stop)
-    find_inferior (&all_threads, resume_status_pending_p, &any_pending);
+    any_pending = find_thread (resume_status_pending_p) != NULL;
 
   /* If there is a thread which would otherwise be resumed, which is
      stopped at a breakpoint that needs stepping over, then don't
@@ -5203,11 +5060,9 @@ linux_resume (struct thread_resume *resu
      to queue any signals that would otherwise be delivered or
      queued.  */
   if (!any_pending && supports_breakpoints ())
-    need_step_over
-      = (struct thread_info *) find_inferior (&all_threads,
-					      need_step_over_p, NULL);
+    need_step_over = find_thread (need_step_over_p);
 
-  leave_all_stopped = (need_step_over != NULL || any_pending);
+  bool leave_all_stopped = (need_step_over != NULL || any_pending);
 
   if (debug_threads)
     {
@@ -5222,7 +5077,10 @@ linux_resume (struct thread_resume *resu
 
   /* Even if we're leaving threads stopped, queue all signals we'd
      otherwise deliver.  */
-  find_inferior (&all_threads, linux_resume_one_thread, &leave_all_stopped);
+  for_each_thread ([&] (thread_info *thread)
+    {
+      linux_resume_one_thread (thread, leave_all_stopped);
+    });
 
   if (need_step_over)
     start_step_over (get_thread_lwp (need_step_over));
@@ -5248,15 +5106,14 @@ linux_resume (struct thread_resume *resu
    breakpoint that needs stepping over, we start a step-over operation
    on that particular thread, and leave all others stopped.  */
 
-static int
-proceed_one_lwp (struct inferior_list_entry *entry, void *except)
+static void
+proceed_one_lwp (thread_info *thread, lwp_info *except)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lwp = get_thread_lwp (thread);
   int step;
 
   if (lwp == except)
-    return 0;
+    return;
 
   if (debug_threads)
     debug_printf ("proceed_one_lwp: lwp %ld\n", lwpid_of (thread));
@@ -5265,7 +5122,7 @@ proceed_one_lwp (struct inferior_list_en
     {
       if (debug_threads)
 	debug_printf ("   LWP %ld already running\n", lwpid_of (thread));
-      return 0;
+      return;
     }
 
   if (thread->last_resume_kind == resume_stop
@@ -5274,7 +5131,7 @@ proceed_one_lwp (struct inferior_list_en
       if (debug_threads)
 	debug_printf ("   client wants LWP to remain %ld stopped\n",
 		      lwpid_of (thread));
-      return 0;
+      return;
     }
 
   if (lwp->status_pending_p)
@@ -5282,7 +5139,7 @@ proceed_one_lwp (struct inferior_list_en
       if (debug_threads)
 	debug_printf ("   LWP %ld has pending status, leaving stopped\n",
 		      lwpid_of (thread));
-      return 0;
+      return;
     }
 
   gdb_assert (lwp->suspended >= 0);
@@ -5291,12 +5148,13 @@ proceed_one_lwp (struct inferior_list_en
     {
       if (debug_threads)
 	debug_printf ("   LWP %ld is suspended\n", lwpid_of (thread));
-      return 0;
+      return;
     }
 
   if (thread->last_resume_kind == resume_stop
       && lwp->pending_signals_to_report == NULL
-      && lwp->collecting_fast_tracepoint == 0)
+      && (lwp->collecting_fast_tracepoint
+	  == fast_tpoint_collect_result::not_collecting))
     {
       /* We haven't reported this LWP as stopped yet (otherwise, the
 	 last_status.kind check above would catch it, and we wouldn't
@@ -5343,21 +5201,19 @@ proceed_one_lwp (struct inferior_list_en
     step = 0;
 
   linux_resume_one_lwp (lwp, step, 0, NULL);
-  return 0;
 }
 
-static int
-unsuspend_and_proceed_one_lwp (struct inferior_list_entry *entry, void *except)
+static void
+unsuspend_and_proceed_one_lwp (thread_info *thread, lwp_info *except)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lwp = get_thread_lwp (thread);
 
   if (lwp == except)
-    return 0;
+    return;
 
   lwp_suspended_decr (lwp);
 
-  return proceed_one_lwp (entry, except);
+  proceed_one_lwp (thread, except);
 }
 
 /* When we finish a step-over, set threads running again.  If there's
@@ -5376,9 +5232,7 @@ proceed_all_lwps (void)
 
   if (supports_breakpoints ())
     {
-      need_step_over
-	= (struct thread_info *) find_inferior (&all_threads,
-						need_step_over_p, NULL);
+      need_step_over = find_thread (need_step_over_p);
 
       if (need_step_over != NULL)
 	{
@@ -5395,7 +5249,10 @@ proceed_all_lwps (void)
   if (debug_threads)
     debug_printf ("Proceeding, no step-over needed\n");
 
-  find_inferior (&all_threads, proceed_one_lwp, NULL);
+  for_each_thread ([] (thread_info *thread)
+    {
+      proceed_one_lwp (thread, NULL);
+    });
 }
 
 /* Stopped LWPs that the client wanted to be running, that don't have
@@ -5416,9 +5273,15 @@ unstop_all_lwps (int unsuspend, struct l
     }
 
   if (unsuspend)
-    find_inferior (&all_threads, unsuspend_and_proceed_one_lwp, except);
+    for_each_thread ([&] (thread_info *thread)
+      {
+	unsuspend_and_proceed_one_lwp (thread, except);
+      });
   else
-    find_inferior (&all_threads, proceed_one_lwp, except);
+    for_each_thread ([&] (thread_info *thread)
+      {
+	proceed_one_lwp (thread, except);
+      });
 
   if (debug_threads)
     {
@@ -5872,11 +5735,11 @@ static int
 linux_read_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)
 {
   int pid = lwpid_of (current_thread);
-  register PTRACE_XFER_TYPE *buffer;
-  register CORE_ADDR addr;
-  register int count;
+  PTRACE_XFER_TYPE *buffer;
+  CORE_ADDR addr;
+  int count;
   char filename[64];
-  register int i;
+  int i;
   int ret;
   int fd;
 
@@ -5960,16 +5823,16 @@ linux_read_memory (CORE_ADDR memaddr, un
 static int
 linux_write_memory (CORE_ADDR memaddr, const unsigned char *myaddr, int len)
 {
-  register int i;
+  int i;
   /* Round starting address down to longword boundary.  */
-  register CORE_ADDR addr = memaddr & -(CORE_ADDR) sizeof (PTRACE_XFER_TYPE);
+  CORE_ADDR addr = memaddr & -(CORE_ADDR) sizeof (PTRACE_XFER_TYPE);
   /* Round ending address up; get number of longwords that makes.  */
-  register int count
+  int count
     = (((memaddr + len) - addr) + sizeof (PTRACE_XFER_TYPE) - 1)
     / sizeof (PTRACE_XFER_TYPE);
 
   /* Allocate buffer of that many longwords.  */
-  register PTRACE_XFER_TYPE *buffer = XALLOCAVEC (PTRACE_XFER_TYPE, count);
+  PTRACE_XFER_TYPE *buffer = XALLOCAVEC (PTRACE_XFER_TYPE, count);
 
   int pid = lwpid_of (current_thread);
 
@@ -6060,8 +5923,6 @@ linux_look_up_symbols (void)
 static void
 linux_request_interrupt (void)
 {
-  extern unsigned long signal_pid;
-
   /* Send a SIGINT to the process group.  This acts just like the user
      typed a ^C on the controlling terminal.  */
   kill (-signal_pid, SIGINT);
@@ -6457,35 +6318,6 @@ linux_supports_exec_events (void)
   return linux_supports_traceexec ();
 }
 
-/* Callback for 'find_inferior'.  Set the (possibly changed) ptrace
-   options for the specified lwp.  */
-
-static int
-reset_lwp_ptrace_options_callback (struct inferior_list_entry *entry,
-				   void *args)
-{
-  struct thread_info *thread = (struct thread_info *) entry;
-  struct lwp_info *lwp = get_thread_lwp (thread);
-
-  if (!lwp->stopped)
-    {
-      /* Stop the lwp so we can modify its ptrace options.  */
-      lwp->must_set_ptrace_flags = 1;
-      linux_stop_lwp (lwp);
-    }
-  else
-    {
-      /* Already stopped; go ahead and set the ptrace options.  */
-      struct process_info *proc = find_process_pid (pid_of (thread));
-      int options = linux_low_ptrace_options (proc->attached);
-
-      linux_enable_event_reporting (lwpid_of (thread), options);
-      lwp->must_set_ptrace_flags = 0;
-    }
-
-  return 0;
-}
-
 /* Target hook for 'handle_new_gdb_connection'.  Causes a reset of the
    ptrace flags for all inferiors.  This is in case the new GDB connection
    doesn't support the same set of events that the previous one did.  */
@@ -6493,10 +6325,27 @@ reset_lwp_ptrace_options_callback (struc
 static void
 linux_handle_new_gdb_connection (void)
 {
-  pid_t pid;
-
   /* Request that all the lwps reset their ptrace options.  */
-  find_inferior (&all_threads, reset_lwp_ptrace_options_callback , &pid);
+  for_each_thread ([] (thread_info *thread)
+    {
+      struct lwp_info *lwp = get_thread_lwp (thread);
+
+      if (!lwp->stopped)
+	{
+	  /* Stop the lwp so we can modify its ptrace options.  */
+	  lwp->must_set_ptrace_flags = 1;
+	  linux_stop_lwp (lwp);
+	}
+      else
+	{
+	  /* Already stopped; go ahead and set the ptrace options.  */
+	  struct process_info *proc = find_process_pid (pid_of (thread));
+	  int options = linux_low_ptrace_options (proc->attached);
+
+	  linux_enable_event_reporting (lwpid_of (thread), options);
+	  lwp->must_set_ptrace_flags = 0;
+	}
+    });
 }
 
 static int
@@ -7281,7 +7130,6 @@ linux_qxfer_libraries_svr4 (const char *
 	    {
 	      /* 6x the size for xml_escape_text below.  */
 	      size_t len = 6 * strlen ((char *) libname);
-	      char *name;
 
 	      if (!header_done)
 		{
@@ -7300,12 +7148,11 @@ linux_qxfer_libraries_svr4 (const char *
 		  p = document + document_len;
 		}
 
-	      name = xml_escape_text ((char *) libname);
+	      std::string name = xml_escape_text ((char *) libname);
 	      p += sprintf (p, "<library name=\"%s\" lm=\"0x%lx\" "
 			    "l_addr=\"0x%lx\" l_ld=\"0x%lx\"/>",
-			    name, (unsigned long) lm_addr,
+			    name.c_str (), (unsigned long) lm_addr,
 			    (unsigned long) l_addr, (unsigned long) l_ld);
-	      free (name);
 	    }
 	}
 
@@ -7698,6 +7545,11 @@ static struct target_ops linux_target_op
   linux_supports_software_single_step,
   linux_supports_catch_syscall,
   linux_get_ipa_tdesc_idx,
+#if USE_THREAD_DB
+  thread_db_thread_handle,
+#else
+  NULL,
+#endif
 };
 
 #ifdef HAVE_LINUX_REGSETS
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-low.h ./gdb/gdbserver/linux-low.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-low.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-low.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Internal interfaces for the GNU/Linux specific target code for gdbserver.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -26,6 +26,7 @@
 /* Included for ptrace type definitions.  */
 #include "nat/linux-ptrace.h"
 #include "target/waitstatus.h" /* For enum target_stop_reason.  */
+#include "tracepoint.h"
 
 #define PTRACE_XFER_TYPE long
 
@@ -154,7 +155,7 @@ struct linux_target_ops
   const gdb_byte *(*sw_breakpoint_from_kind) (int kind, int *size);
 
   /* Find the next possible PCs after the current instruction executes.  */
-  VEC (CORE_ADDR) *(*get_next_pcs) (struct regcache *regcache);
+  std::vector<CORE_ADDR> (*get_next_pcs) (struct regcache *regcache);
 
   int decr_pc_after_break;
   int (*breakpoint_at) (CORE_ADDR pc);
@@ -188,11 +189,19 @@ struct linux_target_ops
      allocate it here.  */
   struct arch_process_info * (*new_process) (void);
 
+  /* Hook to call when a process is being deleted.  If extra per-process
+     architecture-specific data is needed, delete it here.  */
+  void (*delete_process) (struct arch_process_info *info);
+
   /* Hook to call when a new thread is detected.
      If extra per-thread architecture-specific data is needed,
      allocate it here.  */
   void (*new_thread) (struct lwp_info *);
 
+  /* Hook to call when a thread is being deleted.  If extra per-thread
+     architecture-specific data is needed, delete it here.  */
+  void (*delete_thread) (struct arch_lwp_info *);
+
   /* Hook to call, if any, when a new fork is attached.  */
   void (*new_fork) (struct process_info *parent, struct process_info *child);
 
@@ -251,7 +260,7 @@ struct linux_target_ops
 
 extern struct linux_target_ops the_low_target;
 
-#define get_thread_lwp(thr) ((struct lwp_info *) (inferior_target_data (thr)))
+#define get_thread_lwp(thr) ((struct lwp_info *) (thread_target_data (thr)))
 #define get_lwp_thread(lwp) ((lwp)->thread)
 
 /* This struct is recorded in the target_data field of struct thread_info.
@@ -353,12 +362,11 @@ struct lwp_info
      and then processed and cleared in linux_resume_one_lwp.  */
   struct thread_resume *resume;
 
-  /* True if it is known that this lwp is presently collecting a fast
-     tracepoint (it is in the jump pad or in some code that will
-     return to the jump pad.  Normally, we won't care about this, but
-     we will if a signal arrives to this lwp while it is
-     collecting.  */
-  int collecting_fast_tracepoint;
+  /* Information bout this lwp's fast tracepoint collection status (is it
+     currently stopped in the jump pad, and if so, before or at/after the
+     relocated instruction).  Normally, we won't care about this, but we will
+     if a signal arrives to this lwp while it is collecting.  */
+  fast_tpoint_collect_result collecting_fast_tracepoint;
 
   /* If this is non-zero, it points to a chain of signals which need
      to be reported to GDB.  These were deferred because the thread
@@ -374,6 +382,9 @@ struct lwp_info
   /* The thread handle, used for e.g. TLS access.  Only valid if
      THREAD_KNOWN is set.  */
   td_thrhandle_t th;
+
+  /* The pthread_t handle.  */
+  thread_t thread_handle;
 #endif
 
   /* Arch-specific additions.  */
@@ -410,4 +421,12 @@ int thread_db_get_tls_address (struct th
 			       CORE_ADDR load_module, CORE_ADDR *address);
 int thread_db_look_up_one_symbol (const char *name, CORE_ADDR *addrp);
 
+/* Called from linux-low.c when a clone event is detected.  Upon entry,
+   both the clone and the parent should be stopped.  This function does
+   whatever is required have the clone under thread_db's control.  */
+
+void thread_db_notice_clone (struct thread_info *parent_thr, ptid_t child_ptid);
+
+bool thread_db_thread_handle (ptid_t ptid, gdb_byte **handle, int *handle_len);
+
 extern int have_ptrace_getregset;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-m32r-low.c ./gdb/gdbserver/linux-m32r-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-m32r-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-m32r-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GNU/Linux/m32r specific low level interface, for the remote server for GDB.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -134,7 +134,9 @@ struct linux_target_ops the_low_target =
   NULL, /* supply_ptrace_register */
   NULL, /* siginfo_fixup */
   NULL, /* new_process */
+  NULL, /* delete_process */
   NULL, /* new_thread */
+  NULL, /* delete_thread */
   NULL, /* new_fork */
   NULL, /* prepare_to_resume */
   NULL, /* process_qsupported */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-m68k-low.c ./gdb/gdbserver/linux-m68k-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-m68k-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-m68k-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GNU/Linux/m68k specific low level interface, for the remote server for GDB.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -199,6 +199,14 @@ m68k_arch_setup (void)
   current_process ()->tdesc = tdesc_m68k;
 }
 
+/* Support for hardware single step.  */
+
+static int
+m68k_supports_hardware_single_step (void)
+{
+  return 1;
+}
+
 struct linux_target_ops the_low_target = {
   m68k_arch_setup,
   m68k_regs_info,
@@ -212,6 +220,29 @@ struct linux_target_ops the_low_target =
   NULL,
   2,
   m68k_breakpoint_at,
+  NULL, /* supports_z_point_type */
+  NULL, /* insert_point */
+  NULL, /* remove_point */
+  NULL, /* stopped_by_watchpoint */
+  NULL, /* stopped_data_address */
+  NULL, /* collect_ptrace_register */
+  NULL, /* supply_ptrace_register */
+  NULL, /* siginfo_fixup */
+  NULL, /* new_process */
+  NULL, /* delete_process */
+  NULL, /* new_thread */
+  NULL, /* delete_thread */
+  NULL, /* new_fork */
+  NULL, /* prepare_to_resume */
+  NULL, /* process_qsupported */
+  NULL, /* supports_tracepoints */
+  NULL, /* get_thread_area */
+  NULL, /* install_fast_tracepoint_jump_pad */
+  NULL, /* emit_ops */
+  NULL, /* get_min_fast_tracepoint_insn_len */
+  NULL, /* supports_range_stepping */
+  NULL, /* breakpoint_kind_from_current_state */
+  m68k_supports_hardware_single_step,
 };
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-mips-low.c ./gdb/gdbserver/linux-mips-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-mips-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-mips-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GNU/Linux/MIPS specific low level interface, for the remote server for GDB.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -289,31 +289,21 @@ mips_breakpoint_at (CORE_ADDR where)
   return 0;
 }
 
-/* Mark the watch registers of lwp, represented by ENTRY, as changed,
-   if the lwp's process id is *PID_P.  */
+/* Mark the watch registers of lwp, represented by ENTRY, as changed.  */
 
-static int
-update_watch_registers_callback (struct inferior_list_entry *entry,
-				 void *pid_p)
+static void
+update_watch_registers_callback (thread_info *thread)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
   struct lwp_info *lwp = get_thread_lwp (thread);
-  int pid = *(int *) pid_p;
-
-  /* Only update the threads of this process.  */
-  if (pid_of (thread) == pid)
-    {
-      /* The actual update is done later just before resuming the lwp,
-	 we just mark that the registers need updating.  */
-      lwp->arch_private->watch_registers_changed = 1;
-
-      /* If the lwp isn't stopped, force it to momentarily pause, so
-	 we can update its watch registers.  */
-      if (!lwp->stopped)
-	linux_stop_lwp (lwp);
-    }
 
-  return 0;
+  /* The actual update is done later just before resuming the lwp,
+     we just mark that the registers need updating.  */
+  lwp->arch_private->watch_registers_changed = 1;
+
+  /* If the lwp isn't stopped, force it to momentarily pause, so
+     we can update its watch registers.  */
+  if (!lwp->stopped)
+    linux_stop_lwp (lwp);
 }
 
 /* This is the implementation of linux_target_ops method
@@ -327,6 +317,15 @@ mips_linux_new_process (void)
   return info;
 }
 
+/* This is the implementation of linux_target_ops method
+   delete_process.  */
+
+static void
+mips_linux_delete_process (struct arch_process_info *info)
+{
+  xfree (info);
+}
+
 /* This is the implementation of linux_target_ops method new_thread.
    Mark the watch registers as changed, so the threads' copies will
    be updated.  */
@@ -341,6 +340,14 @@ mips_linux_new_thread (struct lwp_info *
   lwp->arch_private = info;
 }
 
+/* Function to call when a thread is being deleted.  */
+
+static void
+mips_linux_delete_thread (struct arch_lwp_info *arch_lwp)
+{
+  xfree (arch_lwp);
+}
+
 /* Create a new mips_watchpoint and add it to the list.  */
 
 static void
@@ -456,7 +463,6 @@ mips_insert_point (enum raw_bkpt_type ty
   struct process_info *proc = current_process ();
   struct arch_process_info *priv = proc->priv->arch_private;
   struct pt_watch_regs regs;
-  int pid;
   long lwpid;
   enum target_hw_bp_type watch_type;
   uint32_t irw;
@@ -487,8 +493,7 @@ mips_insert_point (enum raw_bkpt_type ty
   priv->watch_mirror = regs;
 
   /* Only update the threads of this process.  */
-  pid = pid_of (proc);
-  find_inferior (&all_threads, update_watch_registers_callback, &pid);
+  for_each_thread (proc->pid, update_watch_registers_callback);
 
   return 0;
 }
@@ -504,7 +509,6 @@ mips_remove_point (enum raw_bkpt_type ty
   struct arch_process_info *priv = proc->priv->arch_private;
 
   int deleted_one;
-  int pid;
   enum target_hw_bp_type watch_type;
 
   struct mips_watchpoint **pw;
@@ -538,8 +542,8 @@ mips_remove_point (enum raw_bkpt_type ty
 				  &priv->watch_mirror);
 
   /* Only update the threads of this process.  */
-  pid = pid_of (proc);
-  find_inferior (&all_threads, update_watch_registers_callback, &pid);
+  for_each_thread (proc->pid, update_watch_registers_callback);
+
   return 0;
 }
 
@@ -892,7 +896,9 @@ struct linux_target_ops the_low_target =
   NULL,
   NULL, /* siginfo_fixup */
   mips_linux_new_process,
+  mips_linux_delete_process,
   mips_linux_new_thread,
+  mips_linux_delete_thread,
   mips_linux_new_fork,
   mips_linux_prepare_to_resume
 };
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-nios2-low.c ./gdb/gdbserver/linux-nios2-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-nios2-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-nios2-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GNU/Linux/Nios II specific low level interface, for the remote server for
    GDB.
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    Contributed by Mentor Graphics, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-ppc-ipa.c ./gdb/gdbserver/linux-ppc-ipa.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-ppc-ipa.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-ppc-ipa.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* GNU/Linux/PowerPC specific low level interface, for the in-process
    agent library for GDB.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-ppc-low.c ./gdb/gdbserver/linux-ppc-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-ppc-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-ppc-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GNU/Linux/PowerPC specific low level interface, for the remote server for
    GDB.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -3124,7 +3124,9 @@ struct linux_target_ops the_low_target =
   ppc_supply_ptrace_register,
   NULL, /* siginfo_fixup */
   NULL, /* new_process */
+  NULL, /* delete_process */
   NULL, /* new_thread */
+  NULL, /* delete_thread */
   NULL, /* new_fork */
   NULL, /* prepare_to_resume */
   NULL, /* process_qsupported */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-ppc-tdesc.h ./gdb/gdbserver/linux-ppc-tdesc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-ppc-tdesc.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-ppc-tdesc.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low level support for ppc, shared between gdbserver and IPA.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-s390-ipa.c ./gdb/gdbserver/linux-s390-ipa.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-s390-ipa.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-s390-ipa.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* GNU/Linux S/390 specific low level interface, for the in-process
    agent library for GDB.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-s390-low.c ./gdb/gdbserver/linux-s390-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-s390-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-s390-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GNU/Linux S/390 specific low level interface, for the remote server
    for GDB.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -45,6 +45,10 @@
 #define HWCAP_S390_VX 2048
 #endif
 
+#ifndef HWCAP_S390_GS
+#define HWCAP_S390_GS 16384
+#endif
+
 #define s390_num_regs 52
 
 static int s390_regmap[] = {
@@ -370,6 +374,46 @@ s390_store_vxrs_high (struct regcache *r
     supply_register (regcache, v16 + i, (const char *) buf + 16 * i);
 }
 
+static void
+s390_fill_gs (struct regcache *regcache, void *buf)
+{
+  int gsd = find_regno (regcache->tdesc, "gsd");
+  int i;
+
+  for (i = 0; i < 3; i++)
+    collect_register (regcache, gsd + i, (char *) buf + 8 * (i + 1));
+}
+
+static void
+s390_store_gs (struct regcache *regcache, const void *buf)
+{
+  int gsd = find_regno (regcache->tdesc, "gsd");
+  int i;
+
+  for (i = 0; i < 3; i++)
+    supply_register (regcache, gsd + i, (const char *) buf + 8 * (i + 1));
+}
+
+static void
+s390_fill_gsbc (struct regcache *regcache, void *buf)
+{
+  int bc_gsd = find_regno (regcache->tdesc, "bc_gsd");
+  int i;
+
+  for (i = 0; i < 3; i++)
+    collect_register (regcache, bc_gsd + i, (char *) buf + 8 * (i + 1));
+}
+
+static void
+s390_store_gsbc (struct regcache *regcache, const void *buf)
+{
+  int bc_gsd = find_regno (regcache->tdesc, "bc_gsd");
+  int i;
+
+  for (i = 0; i < 3; i++)
+    supply_register (regcache, bc_gsd + i, (const char *) buf + 8 * (i + 1));
+}
+
 static struct regset_info s390_regsets[] = {
   { 0, 0, 0, 0, GENERAL_REGS, s390_fill_gregset, NULL },
 #ifndef __s390x__
@@ -388,6 +432,10 @@ static struct regset_info s390_regsets[]
     EXTENDED_REGS, s390_fill_vxrs_low, s390_store_vxrs_low },
   { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_S390_VXRS_HIGH, 0,
     EXTENDED_REGS, s390_fill_vxrs_high, s390_store_vxrs_high },
+  { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_S390_GS_CB, 0,
+    EXTENDED_REGS, s390_fill_gs, s390_store_gs },
+  { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_S390_GS_BC, 0,
+    EXTENDED_REGS, s390_fill_gsbc, s390_store_gsbc },
   NULL_REGSET
 };
 
@@ -501,6 +549,8 @@ s390_arch_setup (void)
   int have_regset_tdb = s390_check_regset (pid, NT_S390_TDB, 256);
   int have_regset_vxrs = s390_check_regset (pid, NT_S390_VXRS_LOW, 128)
     && s390_check_regset (pid, NT_S390_VXRS_HIGH, 256);
+  int have_regset_gs = s390_check_regset (pid, NT_S390_GS_CB, 32)
+    && s390_check_regset (pid, NT_S390_GS_BC, 32);
 
   /* Assume 31-bit inferior process.  */
   if (have_regset_system_call)
@@ -529,8 +579,13 @@ s390_arch_setup (void)
 	if (have_regset_vxrs)
 	  have_regset_vxrs =
 	    (s390_get_hwcap (tdesc_s390x_linux64v2) & HWCAP_S390_VX) != 0;
-
-	if (have_regset_vxrs)
+	if (have_regset_gs)
+	  have_regset_gs =
+	    (s390_get_hwcap (tdesc_s390x_linux64v2) & HWCAP_S390_GS) != 0;
+
+	if (have_regset_gs)
+	  tdesc = tdesc_s390x_gs_linux64;
+	else if (have_regset_vxrs)
 	  tdesc = (have_regset_tdb ? tdesc_s390x_tevx_linux64 :
 		   tdesc_s390x_vx_linux64);
 	else if (have_regset_tdb)
@@ -554,8 +609,12 @@ s390_arch_setup (void)
 	  have_regset_tdb = (s390_get_hwcap (tdesc) & HWCAP_S390_TE) != 0;
 	if (have_regset_vxrs)
 	  have_regset_vxrs = (s390_get_hwcap (tdesc) & HWCAP_S390_VX) != 0;
+	if (have_regset_gs)
+	  have_regset_gs = (s390_get_hwcap (tdesc) & HWCAP_S390_GS) != 0;
 
-	if (have_regset_vxrs)
+	if (have_regset_gs)
+	  tdesc = tdesc_s390_gs_linux64;
+	else if (have_regset_vxrs)
 	  tdesc = (have_regset_tdb ? tdesc_s390_tevx_linux64 :
 		   tdesc_s390_vx_linux64);
 	else if (have_regset_tdb)
@@ -596,6 +655,9 @@ s390_arch_setup (void)
 	case NT_S390_VXRS_HIGH:
 	  regset->size = have_regset_vxrs ? 256 : 0;
 	  break;
+	case NT_S390_GS_CB:
+	case NT_S390_GS_BC:
+	  regset->size = have_regset_gs ? 32 : 0;
 	default:
 	  break;
 	}
@@ -2767,7 +2829,9 @@ struct linux_target_ops the_low_target =
   s390_supply_ptrace_register,
   NULL, /* siginfo_fixup */
   NULL, /* new_process */
+  NULL, /* delete_process */
   NULL, /* new_thread */
+  NULL, /* delete_thread */
   NULL, /* new_fork */
   NULL, /* prepare_to_resume */
   NULL, /* process_qsupported */
@@ -2797,6 +2861,7 @@ initialize_low_arch (void)
   init_registers_s390_te_linux64 ();
   init_registers_s390_vx_linux64 ();
   init_registers_s390_tevx_linux64 ();
+  init_registers_s390_gs_linux64 ();
 #ifdef __s390x__
   init_registers_s390x_linux64 ();
   init_registers_s390x_linux64v1 ();
@@ -2804,6 +2869,7 @@ initialize_low_arch (void)
   init_registers_s390x_te_linux64 ();
   init_registers_s390x_vx_linux64 ();
   init_registers_s390x_tevx_linux64 ();
+  init_registers_s390x_gs_linux64 ();
 #endif
 
   initialize_regsets_info (&s390_regsets_info);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-s390-tdesc.h ./gdb/gdbserver/linux-s390-tdesc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-s390-tdesc.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-s390-tdesc.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low level support for s390, shared between gdbserver and IPA.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -31,6 +31,7 @@ enum s390_linux_tdesc {
   S390_TDESC_TE,
   S390_TDESC_VX,
   S390_TDESC_TEVX,
+  S390_TDESC_GS,
 };
 
 #ifdef __s390x__
@@ -59,6 +60,10 @@ extern const struct target_desc *tdesc_s
 void init_registers_s390x_tevx_linux64 (void);
 extern const struct target_desc *tdesc_s390x_tevx_linux64;
 
+/* Defined in auto-generated file s390x-gs-linux64.c.  */
+void init_registers_s390x_gs_linux64 (void);
+extern const struct target_desc *tdesc_s390x_gs_linux64;
+
 #endif
 
 #if !defined __s390x__ || !defined IN_PROCESS_AGENT
@@ -99,4 +104,8 @@ extern const struct target_desc *tdesc_s
 void init_registers_s390_tevx_linux64 (void);
 extern const struct target_desc *tdesc_s390_tevx_linux64;
 
+/* Defined in auto-generated file s390-gs-linux64.c.  */
+void init_registers_s390_gs_linux64 (void);
+extern const struct target_desc *tdesc_s390_gs_linux64;
+
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-sh-low.c ./gdb/gdbserver/linux-sh-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-sh-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-sh-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GNU/Linux/SH specific low level interface, for the remote server for GDB.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -164,7 +164,9 @@ struct linux_target_ops the_low_target =
   NULL, /* supply_ptrace_register */
   NULL, /* siginfo_fixup */
   NULL, /* new_process */
+  NULL, /* delete_process */
   NULL, /* new_thread */
+  NULL, /* delete_thread */
   NULL, /* new_fork */
   NULL, /* prepare_to_resume */
   NULL, /* process_qsupported */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-sparc-low.c ./gdb/gdbserver/linux-sparc-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-sparc-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-sparc-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Low level interface to ptrace, for the remote server for GDB.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-tic6x-low.c ./gdb/gdbserver/linux-tic6x-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-tic6x-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-tic6x-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target dependent code for GDB on TI C6x systems.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Contributed by Andrew Jenner <andrew@codesourcery.com>
    Contributed by Yao Qi <yao@codesourcery.com>
 
@@ -21,6 +21,8 @@
 
 #include "server.h"
 #include "linux-low.h"
+#include "arch/tic6x.h"
+#include "tdesc.h"
 
 #include "nat/gdb_ptrace.h"
 #include <endian.h>
@@ -182,49 +184,28 @@ tic6x_sw_breakpoint_from_kind (int kind,
   return (const gdb_byte *) &tic6x_breakpoint;
 }
 
-/* Forward definition.  */
-static struct usrregs_info tic6x_usrregs_info;
+static struct usrregs_info tic6x_usrregs_info =
+  {
+    TIC6X_NUM_REGS,
+    NULL, /* Set in tic6x_read_description.  */
+  };
 
 static const struct target_desc *
-tic6x_read_description (void)
+tic6x_read_description (enum c6x_feature feature)
 {
-  register unsigned int csr asm ("B2");
-  unsigned int cpuid;
-  const struct target_desc *tdesc;
+  static target_desc *tdescs[C6X_LAST] = { };
+  struct target_desc **tdesc = &tdescs[feature];
 
-  /* Determine the CPU we're running on to find the register order.  */
-  __asm__ ("MVC .S2 CSR,%0" : "=r" (csr) :);
-  cpuid = csr >> 24;
-  switch (cpuid)
+  if (*tdesc == NULL)
     {
-    case 0x00: /* C62x */
-    case 0x02: /* C67x */
-      tic6x_regmap = tic6x_regmap_c62x;
-      tic6x_breakpoint = 0x0000a122;  /* BNOP .S2 0,5 */
-      tdesc = tdesc_tic6x_c62x_linux;
-      break;
-    case 0x03: /* C67x+ */
-      tic6x_regmap = tic6x_regmap_c64x;
-      tic6x_breakpoint = 0x0000a122;  /* BNOP .S2 0,5 */
-      tdesc = tdesc_tic6x_c64x_linux;
-      break;
-    case 0x0c: /* C64x */
-      tic6x_regmap = tic6x_regmap_c64x;
-      tic6x_breakpoint = 0x0000a122;  /* BNOP .S2 0,5 */
-      tdesc = tdesc_tic6x_c64x_linux;
-      break;
-    case 0x10: /* C64x+ */
-    case 0x14: /* C674x */
-    case 0x15: /* C66x */
-      tic6x_regmap = tic6x_regmap_c64xp;
-      tic6x_breakpoint = 0x56454314;  /* illegal opcode */
-      tdesc = tdesc_tic6x_c64xp_linux;
-      break;
-    default:
-      error ("Unknown CPU ID 0x%02x", cpuid);
+      *tdesc = tic6x_create_target_description (feature);
+      init_target_desc (*tdesc);
+
+      static const char *expedite_regs[] = { "A15", "PC", NULL };
+      (*tdesc)->expedite_regs = expedite_regs;
     }
-  tic6x_usrregs_info.regmap = tic6x_regmap;
-  return tdesc;
+
+  return *tdesc;
 }
 
 static int
@@ -310,7 +291,7 @@ tic6x_supply_register (struct regcache *
 static void
 tic6x_fill_gregset (struct regcache *regcache, void *buf)
 {
-  union tic6x_register *regset = buf;
+  auto regset = static_cast<union tic6x_register *> (buf);
   int i;
 
   for (i = 0; i < TIC6X_NUM_REGS; i++)
@@ -321,7 +302,7 @@ tic6x_fill_gregset (struct regcache *reg
 static void
 tic6x_store_gregset (struct regcache *regcache, const void *buf)
 {
-  const union tic6x_register *regset = buf;
+  const auto regset = static_cast<const union tic6x_register *> (buf);
   int i;
 
   for (i = 0; i < TIC6X_NUM_REGS; i++)
@@ -338,7 +319,44 @@ static struct regset_info tic6x_regsets[
 static void
 tic6x_arch_setup (void)
 {
-  current_process ()->tdesc = tic6x_read_description ();
+  register unsigned int csr asm ("B2");
+  unsigned int cpuid;
+  enum c6x_feature feature = C6X_CORE;
+
+  /* Determine the CPU we're running on to find the register order.  */
+  __asm__ ("MVC .S2 CSR,%0" : "=r" (csr) :);
+  cpuid = csr >> 24;
+  switch (cpuid)
+    {
+    case 0x00: /* C62x */
+    case 0x02: /* C67x */
+      tic6x_regmap = tic6x_regmap_c62x;
+      tic6x_breakpoint = 0x0000a122;  /* BNOP .S2 0,5 */
+      feature = C6X_CORE;
+      break;
+    case 0x03: /* C67x+ */
+      tic6x_regmap = tic6x_regmap_c64x;
+      tic6x_breakpoint = 0x0000a122;  /* BNOP .S2 0,5 */
+      feature = C6X_GP;
+      break;
+    case 0x0c: /* C64x */
+      tic6x_regmap = tic6x_regmap_c64x;
+      tic6x_breakpoint = 0x0000a122;  /* BNOP .S2 0,5 */
+      feature = C6X_GP;
+      break;
+    case 0x10: /* C64x+ */
+    case 0x14: /* C674x */
+    case 0x15: /* C66x */
+      tic6x_regmap = tic6x_regmap_c64xp;
+      tic6x_breakpoint = 0x56454314;  /* illegal opcode */
+      feature = C6X_C6XP;
+      break;
+    default:
+      error ("Unknown CPU ID 0x%02x", cpuid);
+    }
+  tic6x_usrregs_info.regmap = tic6x_regmap;
+
+  current_process ()->tdesc = tic6x_read_description (feature);
 }
 
 /* Support for hardware single step.  */
@@ -356,12 +374,6 @@ static struct regsets_info tic6x_regsets
     NULL, /* disabled_regsets */
   };
 
-static struct usrregs_info tic6x_usrregs_info =
-  {
-    TIC6X_NUM_REGS,
-    NULL, /* Set in tic6x_read_description.  */
-  };
-
 static struct regs_info regs_info =
   {
     NULL, /* regset_bitmap */
@@ -397,7 +409,9 @@ struct linux_target_ops the_low_target =
   NULL, /* supply_ptrace_register */
   NULL, /* siginfo_fixup */
   NULL, /* new_process */
+  NULL, /* delete_process */
   NULL, /* new_thread */
+  NULL, /* delete_thread */
   NULL, /* new_fork */
   NULL, /* prepare_to_resume */
   NULL, /* process_qsupported */
@@ -411,13 +425,33 @@ struct linux_target_ops the_low_target =
   tic6x_supports_hardware_single_step,
 };
 
+#if GDB_SELF_TEST
+#include "common/selftest.h"
+
+namespace selftests {
+namespace tdesc {
+static void
+tic6x_tdesc_test ()
+{
+  SELF_CHECK (*tdesc_tic6x_c62x_linux == *tic6x_read_description (C6X_CORE));
+  SELF_CHECK (*tdesc_tic6x_c64x_linux == *tic6x_read_description (C6X_GP));
+  SELF_CHECK (*tdesc_tic6x_c64xp_linux == *tic6x_read_description (C6X_C6XP));
+}
+}
+}
+#endif
+
 void
 initialize_low_arch (void)
 {
+#if GDB_SELF_TEST
   /* Initialize the Linux target descriptions.  */
   init_registers_tic6x_c64xp_linux ();
   init_registers_tic6x_c64x_linux ();
   init_registers_tic6x_c62x_linux ();
 
+  selftests::register_test ("tic6x-tdesc", selftests::tdesc::tic6x_tdesc_test);
+#endif
+
   initialize_regsets_info (&tic6x_regsets_info);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-tile-low.c ./gdb/gdbserver/linux-tile-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-tile-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-tile-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GNU/Linux/TILE-Gx specific low level interface, GDBserver.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -196,7 +196,9 @@ struct linux_target_ops the_low_target =
   NULL, /* supply_ptrace_register */
   NULL, /* siginfo_fixup */
   NULL, /* new_process */
+  NULL, /* delete_process */
   NULL, /* new_thread */
+  NULL, /* delete_thread */
   NULL, /* new_fork */
   NULL, /* prepare_to_resume */
   NULL, /* process_qsupported */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-x86-low.c ./gdb/gdbserver/linux-x86-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-x86-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-x86-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GNU/Linux/x86-64 specific low level interface, for the remote server
    for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -617,6 +617,14 @@ x86_linux_new_process (void)
   return info;
 }
 
+/* Called when a process is being deleted.  */
+
+static void
+x86_linux_delete_process (struct arch_process_info *info)
+{
+  xfree (info);
+}
+
 /* Target routine for linux_new_fork.  */
 
 static void
@@ -757,7 +765,7 @@ x86_linux_read_description (void)
 	{
 	  have_ptrace_getfpxregs = 0;
 	  have_ptrace_getregset = 0;
-	  return tdesc_i386_mmx_linux;
+	  return i386_linux_read_description (X86_XSTATE_X87);
 	}
       else
 	have_ptrace_getfpxregs = 1;
@@ -809,7 +817,7 @@ x86_linux_read_description (void)
 
   /* Check the native XCR0 only if PTRACE_GETREGSET is available.  */
   xcr0_features = (have_ptrace_getregset
-         && (xcr0 & X86_XSTATE_ALL_MASK));
+		   && (xcr0 & X86_XSTATE_ALL_MASK));
 
   if (xcr0_features)
     x86_xcr0 = xcr0;
@@ -817,119 +825,35 @@ x86_linux_read_description (void)
   if (machine == EM_X86_64)
     {
 #ifdef __x86_64__
-      if (is_elf64)
-	{
-	  if (xcr0_features)
-	    {
-	      switch (xcr0 & X86_XSTATE_ALL_MASK)
-	        {
-		case X86_XSTATE_AVX_MPX_AVX512_PKU_MASK:
-		  return tdesc_amd64_avx_mpx_avx512_pku_linux;
+      const target_desc *tdesc = NULL;
 
-		case X86_XSTATE_AVX_AVX512_MASK:
-		  return tdesc_amd64_avx_avx512_linux;
-
-		case X86_XSTATE_AVX_MPX_MASK:
-		  return tdesc_amd64_avx_mpx_linux;
-
-		case X86_XSTATE_MPX_MASK:
-		  return tdesc_amd64_mpx_linux;
-
-		case X86_XSTATE_AVX_MASK:
-		  return tdesc_amd64_avx_linux;
-
-		default:
-		  return tdesc_amd64_linux;
-		}
-	    }
-	  else
-	    return tdesc_amd64_linux;
-	}
-      else
+      if (xcr0_features)
 	{
-	  if (xcr0_features)
-	    {
-	      switch (xcr0 & X86_XSTATE_ALL_MASK)
-	        {
-		case X86_XSTATE_AVX_MPX_AVX512_PKU_MASK:
-		  /* No x32 MPX and PKU, fall back to avx_avx512.  */
-		  return tdesc_x32_avx_avx512_linux;
-
-		case X86_XSTATE_AVX_AVX512_MASK:
-		  return tdesc_x32_avx_avx512_linux;
-
-		case X86_XSTATE_MPX_MASK: /* No MPX on x32.  */
-		case X86_XSTATE_AVX_MASK:
-		  return tdesc_x32_avx_linux;
-
-		default:
-		  return tdesc_x32_linux;
-		}
-	    }
-	  else
-	    return tdesc_x32_linux;
+	  tdesc = amd64_linux_read_description (xcr0 & X86_XSTATE_ALL_MASK,
+						!is_elf64);
 	}
+
+      if (tdesc == NULL)
+	tdesc = amd64_linux_read_description (X86_XSTATE_SSE_MASK, !is_elf64);
+      return tdesc;
 #endif
     }
   else
     {
-      if (xcr0_features)
-	{
-	  switch (xcr0 & X86_XSTATE_ALL_MASK)
-	    {
-	    case X86_XSTATE_AVX_MPX_AVX512_PKU_MASK:
-	      return tdesc_i386_avx_mpx_avx512_pku_linux;
-
-	    case (X86_XSTATE_AVX_AVX512_MASK):
-	      return tdesc_i386_avx_avx512_linux;
+      const target_desc *tdesc = NULL;
 
-	    case (X86_XSTATE_MPX_MASK):
-	      return tdesc_i386_mpx_linux;
-
-	    case (X86_XSTATE_AVX_MPX_MASK):
-	      return tdesc_i386_avx_mpx_linux;
+      if (xcr0_features)
+	  tdesc = i386_linux_read_description (xcr0 & X86_XSTATE_ALL_MASK);
 
-	    case (X86_XSTATE_AVX_MASK):
-	      return tdesc_i386_avx_linux;
+      if (tdesc == NULL)
+	tdesc = i386_linux_read_description (X86_XSTATE_SSE);
 
-	    default:
-	      return tdesc_i386_linux;
-	    }
-	}
-      else
-	return tdesc_i386_linux;
+      return tdesc;
     }
 
   gdb_assert_not_reached ("failed to return tdesc");
 }
 
-/* Callback for find_inferior.  Stops iteration when a thread with a
-   given PID is found.  */
-
-static int
-same_process_callback (struct inferior_list_entry *entry, void *data)
-{
-  int pid = *(int *) data;
-
-  return (ptid_get_pid (entry->id) == pid);
-}
-
-/* Callback for for_each_inferior.  Calls the arch_setup routine for
-   each process.  */
-
-static void
-x86_arch_setup_process_callback (struct inferior_list_entry *entry)
-{
-  int pid = ptid_get_pid (entry->id);
-
-  /* Look up any thread of this processes.  */
-  current_thread
-    = (struct thread_info *) find_inferior (&all_threads,
-					    same_process_callback, &pid);
-
-  the_low_target.arch_setup ();
-}
-
 /* Update all the target description of all processes; a new GDB
    connected, and it may or not support xml target descriptions.  */
 
@@ -943,7 +867,14 @@ x86_linux_update_xmltarget (void)
      release the current regcache objects.  */
   regcache_release ();
 
-  for_each_inferior (&all_processes, x86_arch_setup_process_callback);
+  for_each_process ([] (process_info *proc) {
+    int pid = proc->pid;
+
+    /* Look up any thread of this process.  */
+    current_thread = find_any_thread_of_pid (pid);
+
+    the_low_target.arch_setup ();
+  });
 
   current_thread = saved_thread;
 }
@@ -2897,37 +2828,13 @@ x86_get_ipa_tdesc_idx (void)
   const struct target_desc *tdesc = regcache->tdesc;
 
 #ifdef __x86_64__
-  if (tdesc == tdesc_amd64_linux || tdesc == tdesc_amd64_linux_no_xml
-      || tdesc == tdesc_x32_linux)
-    return X86_TDESC_SSE;
-  if (tdesc == tdesc_amd64_avx_linux || tdesc == tdesc_x32_avx_linux)
-    return X86_TDESC_AVX;
-  if (tdesc == tdesc_amd64_mpx_linux)
-    return X86_TDESC_MPX;
-  if (tdesc == tdesc_amd64_avx_mpx_linux)
-    return X86_TDESC_AVX_MPX;
-  if (tdesc == tdesc_amd64_avx_mpx_avx512_pku_linux || tdesc == tdesc_x32_avx_avx512_linux)
-    return X86_TDESC_AVX_MPX_AVX512_PKU;
-  if (tdesc == tdesc_amd64_avx_avx512_linux)
-    return X86_TDESC_AVX_AVX512;
+  return amd64_get_ipa_tdesc_idx (tdesc);
 #endif
 
-  if (tdesc == tdesc_i386_mmx_linux)
-    return X86_TDESC_MMX;
-  if (tdesc == tdesc_i386_linux || tdesc == tdesc_i386_linux_no_xml)
+  if (tdesc == tdesc_i386_linux_no_xml)
     return X86_TDESC_SSE;
-  if (tdesc == tdesc_i386_avx_linux)
-    return X86_TDESC_AVX;
-  if (tdesc == tdesc_i386_mpx_linux)
-    return X86_TDESC_MPX;
-  if (tdesc == tdesc_i386_avx_mpx_linux)
-    return X86_TDESC_AVX_MPX;
-  if (tdesc == tdesc_i386_avx_mpx_avx512_pku_linux)
-    return X86_TDESC_AVX_MPX_AVX512_PKU;
-  if (tdesc == tdesc_i386_avx_avx512_linux)
-    return X86_TDESC_AVX_AVX512;
 
-  return 0;
+  return i386_get_ipa_tdesc_idx (tdesc);
 }
 
 /* This is initialized assuming an amd64 target.
@@ -2960,7 +2867,9 @@ struct linux_target_ops the_low_target =
   /* need to fix up i386 siginfo if host is amd64 */
   x86_siginfo_fixup,
   x86_linux_new_process,
+  x86_linux_delete_process,
   x86_linux_new_thread,
+  x86_linux_delete_thread,
   x86_linux_new_fork,
   x86_linux_prepare_to_resume,
   x86_linux_process_qsupported,
@@ -2981,31 +2890,20 @@ initialize_low_arch (void)
 {
   /* Initialize the Linux target descriptions.  */
 #ifdef __x86_64__
-  init_registers_amd64_linux ();
-  init_registers_amd64_avx_linux ();
-  init_registers_amd64_mpx_linux ();
-  init_registers_amd64_avx_mpx_linux ();
-  init_registers_amd64_avx_avx512_linux ();
-  init_registers_amd64_avx_mpx_avx512_pku_linux ();
-
-  init_registers_x32_linux ();
-  init_registers_x32_avx_linux ();
-  init_registers_x32_avx_avx512_linux ();
-
-  tdesc_amd64_linux_no_xml = XNEW (struct target_desc);
-  copy_target_description (tdesc_amd64_linux_no_xml, tdesc_amd64_linux);
+  tdesc_amd64_linux_no_xml = allocate_target_description ();
+  copy_target_description (tdesc_amd64_linux_no_xml,
+			   amd64_linux_read_description (X86_XSTATE_SSE_MASK,
+							 false));
   tdesc_amd64_linux_no_xml->xmltarget = xmltarget_amd64_linux_no_xml;
 #endif
-  init_registers_i386_linux ();
-  init_registers_i386_mmx_linux ();
-  init_registers_i386_avx_linux ();
-  init_registers_i386_mpx_linux ();
-  init_registers_i386_avx_mpx_linux ();
-  init_registers_i386_avx_avx512_linux ();
-  init_registers_i386_avx_mpx_avx512_pku_linux ();
 
-  tdesc_i386_linux_no_xml = XNEW (struct target_desc);
-  copy_target_description (tdesc_i386_linux_no_xml, tdesc_i386_linux);
+#if GDB_SELF_TEST
+  initialize_low_tdesc ();
+#endif
+
+  tdesc_i386_linux_no_xml = allocate_target_description ();
+  copy_target_description (tdesc_i386_linux_no_xml,
+			   i386_linux_read_description (X86_XSTATE_SSE_MASK));
   tdesc_i386_linux_no_xml->xmltarget = xmltarget_i386_linux_no_xml;
 
   initialize_regsets_info (&x86_regsets_info);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-x86-tdesc.c ./gdb/gdbserver/linux-x86-tdesc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-x86-tdesc.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gdbserver/linux-x86-tdesc.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,173 @@
+/* GNU/Linux/x86-64 specific target description, for the remote server
+   for GDB.
+   Copyright (C) 2017-2018 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 "server.h"
+#include "tdesc.h"
+#include "linux-x86-tdesc.h"
+#include "arch/i386.h"
+#include "common/x86-xstate.h"
+#ifdef __x86_64__
+#include "arch/amd64.h"
+#endif
+
+/* Return the right x86_linux_tdesc index for a given XCR0.  Return
+   X86_TDESC_LAST if can't find a match.  */
+
+static enum x86_linux_tdesc
+xcr0_to_tdesc_idx (uint64_t xcr0, bool is_x32)
+{
+  if (xcr0 & X86_XSTATE_PKRU)
+    {
+      if (is_x32)
+	{
+	  /* No x32 MPX and PKU, fall back to avx_avx512.  */
+	  return X86_TDESC_AVX_AVX512;
+	}
+      else
+	return X86_TDESC_AVX_MPX_AVX512_PKU;
+    }
+  else if (xcr0 & X86_XSTATE_AVX512)
+    return X86_TDESC_AVX_AVX512;
+  else if ((xcr0 & X86_XSTATE_AVX_MPX_MASK) == X86_XSTATE_AVX_MPX_MASK)
+    {
+      if (is_x32) /* No MPX on x32.  */
+	return X86_TDESC_AVX;
+      else
+	return X86_TDESC_AVX_MPX;
+    }
+  else if (xcr0 & X86_XSTATE_MPX)
+    {
+      if (is_x32) /* No MPX on x32.  */
+	return X86_TDESC_AVX;
+      else
+	return X86_TDESC_MPX;
+    }
+  else if (xcr0 & X86_XSTATE_AVX)
+    return X86_TDESC_AVX;
+  else if (xcr0 & X86_XSTATE_SSE)
+    return X86_TDESC_SSE;
+  else if (xcr0 & X86_XSTATE_X87)
+    return X86_TDESC_MMX;
+  else
+    return X86_TDESC_LAST;
+}
+
+static struct target_desc *i386_tdescs[X86_TDESC_LAST] = { };
+
+#if defined __i386__ || !defined IN_PROCESS_AGENT
+
+/* Return the target description according to XCR0.  */
+
+const struct target_desc *
+i386_linux_read_description (uint64_t xcr0)
+{
+  enum x86_linux_tdesc idx = xcr0_to_tdesc_idx (xcr0, false);
+
+  if (idx == X86_TDESC_LAST)
+    return NULL;
+
+  struct target_desc **tdesc = &i386_tdescs[idx];
+
+  if (*tdesc == NULL)
+    {
+      *tdesc = i386_create_target_description (xcr0, true);
+
+      init_target_desc (*tdesc);
+
+#ifndef IN_PROCESS_AGENT
+      static const char *expedite_regs_i386[] = { "ebp", "esp", "eip", NULL };
+      (*tdesc)->expedite_regs = expedite_regs_i386;
+#endif
+    }
+
+  return *tdesc;;
+}
+#endif
+
+#ifdef __x86_64__
+
+static target_desc *amd64_tdescs[X86_TDESC_LAST] = { };
+static target_desc *x32_tdescs[X86_TDESC_LAST] = { };
+
+const struct target_desc *
+amd64_linux_read_description (uint64_t xcr0, bool is_x32)
+{
+  enum x86_linux_tdesc idx = xcr0_to_tdesc_idx (xcr0, is_x32);
+
+  if (idx == X86_TDESC_LAST)
+    return NULL;
+
+  struct target_desc **tdesc = NULL;
+
+  if (is_x32)
+    tdesc = &x32_tdescs[idx];
+  else
+    tdesc = &amd64_tdescs[idx];
+
+  if (*tdesc == NULL)
+    {
+      *tdesc = amd64_create_target_description (xcr0, is_x32, true);
+
+      init_target_desc (*tdesc);
+
+#ifndef IN_PROCESS_AGENT
+      static const char *expedite_regs_amd64[] = { "rbp", "rsp", "rip", NULL };
+      (*tdesc)->expedite_regs = expedite_regs_amd64;
+#endif
+    }
+  return *tdesc;
+}
+
+#endif
+
+#ifndef IN_PROCESS_AGENT
+
+int
+i386_get_ipa_tdesc_idx (const struct target_desc *tdesc)
+{
+  for (int i = 0; i < X86_TDESC_LAST; i++)
+    {
+      if (tdesc == i386_tdescs[i])
+	return i;
+    }
+
+  /* If none tdesc is found, return the one with minimum features.  */
+  return X86_TDESC_MMX;
+}
+
+#if defined __x86_64__
+int
+amd64_get_ipa_tdesc_idx (const struct target_desc *tdesc)
+{
+  for (int i = 0; i < X86_TDESC_LAST; i++)
+    {
+      if (tdesc == amd64_tdescs[i])
+	return i;
+    }
+  for (int i = 0; i < X86_TDESC_LAST; i++)
+    {
+      if (tdesc == x32_tdescs[i])
+	return i;
+    }
+
+  return X86_TDESC_SSE;
+}
+
+#endif
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-x86-tdesc.h ./gdb/gdbserver/linux-x86-tdesc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-x86-tdesc.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-x86-tdesc.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Low level support for x86 (i386 and x86-64), shared between gdbserver
    and IPA.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -30,78 +30,24 @@ enum x86_linux_tdesc {
   X86_TDESC_AVX_MPX = 4,
   X86_TDESC_AVX_AVX512 = 5,
   X86_TDESC_AVX_MPX_AVX512_PKU = 6,
+  X86_TDESC_LAST = 7,
 };
 
-#ifdef __x86_64__
-
-#if defined __LP64__  || !defined IN_PROCESS_AGENT
-/* Defined in auto-generated file amd64-linux.c.  */
-void init_registers_amd64_linux (void);
-extern const struct target_desc *tdesc_amd64_linux;
-
-/* Defined in auto-generated file amd64-avx-linux.c.  */
-void init_registers_amd64_avx_linux (void);
-extern const struct target_desc *tdesc_amd64_avx_linux;
-
-/* Defined in auto-generated file amd64-avx-avx512-linux.c.  */
-void init_registers_amd64_avx_avx512_linux (void);
-extern const struct target_desc *tdesc_amd64_avx_avx512_linux;
-
-/* Defined in auto-generated file amd64-avx-mpx-avx512-pku-linux.c.  */
-void init_registers_amd64_avx_mpx_avx512_pku_linux (void);
-extern const struct target_desc *tdesc_amd64_avx_mpx_avx512_pku_linux;
-
-/* Defined in auto-generated file amd64-avx-mpx-linux.c.  */
-void init_registers_amd64_avx_mpx_linux (void);
-extern const struct target_desc *tdesc_amd64_avx_mpx_linux;
-
-/* Defined in auto-generated file amd64-mpx-linux.c.  */
-void init_registers_amd64_mpx_linux (void);
-extern const struct target_desc *tdesc_amd64_mpx_linux;
+#if defined __i386__ || !defined IN_PROCESS_AGENT
+int i386_get_ipa_tdesc_idx (const struct target_desc *tdesc);
 #endif
 
-#if defined __ILP32__ || !defined IN_PROCESS_AGENT
-/* Defined in auto-generated file x32-linux.c.  */
-void init_registers_x32_linux (void);
-extern const struct target_desc *tdesc_x32_linux;
-
-/* Defined in auto-generated file x32-avx-linux.c.  */
-void init_registers_x32_avx_linux (void);
-extern const struct target_desc *tdesc_x32_avx_linux;
-
-/* Defined in auto-generated file x32-avx-avx512-linux.c.  */
-void init_registers_x32_avx_avx512_linux (void);
-extern const struct target_desc *tdesc_x32_avx_avx512_linux;
+#if defined __x86_64__ && !defined IN_PROCESS_AGENT
+int amd64_get_ipa_tdesc_idx (const struct target_desc *tdesc);
 #endif
 
-#endif
+const struct target_desc *i386_get_ipa_tdesc (int idx);
 
-#if defined __i386__ || !defined IN_PROCESS_AGENT
-/* Defined in auto-generated file i386-linux.c.  */
-void init_registers_i386_linux (void);
-extern const struct target_desc *tdesc_i386_linux;
-
-/* Defined in auto-generated file i386-mmx-linux.c.  */
-void init_registers_i386_mmx_linux (void);
-extern const struct target_desc *tdesc_i386_mmx_linux;
-
-/* Defined in auto-generated file i386-avx-linux.c.  */
-void init_registers_i386_avx_linux (void);
-extern const struct target_desc *tdesc_i386_avx_linux;
-
-/* Defined in auto-generated file i386-avx-mpx-linux.c.  */
-void init_registers_i386_avx_mpx_linux (void);
-extern const struct target_desc *tdesc_i386_avx_mpx_linux;
-
-/* Defined in auto-generated file i386-avx-avx512-linux.c.  */
-void init_registers_i386_avx_avx512_linux (void);
-extern const struct target_desc *tdesc_i386_avx_avx512_linux;
-
-/* Defined in auto-generated file i386-avx-mpx-avx512-linux.c.  */
-void init_registers_i386_avx_mpx_avx512_pku_linux (void);
-extern const struct target_desc *tdesc_i386_avx_mpx_avx512_pku_linux;
-
-/* Defined in auto-generated file i386-mpx-linux.c.  */
-void init_registers_i386_mpx_linux (void);
-extern const struct target_desc *tdesc_i386_mpx_linux;
+#ifdef __x86_64__
+const struct target_desc *amd64_linux_read_description (uint64_t xcr0,
+							bool is_x32);
 #endif
+
+const struct target_desc *i386_linux_read_description (uint64_t xcr0);
+
+void initialize_low_tdesc ();
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-x86-tdesc-selftest.c ./gdb/gdbserver/linux-x86-tdesc-selftest.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-x86-tdesc-selftest.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gdbserver/linux-x86-tdesc-selftest.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,183 @@
+/* Copyright (C) 2017-2018 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 "server.h"
+#include "linux-x86-tdesc.h"
+#include "tdesc.h"
+#include "common/selftest.h"
+#include "x86-xstate.h"
+
+/* Defined in auto-generated file i386-linux.c.  */
+void init_registers_i386_linux (void);
+extern const struct target_desc *tdesc_i386_linux;
+
+/* Defined in auto-generated file i386-mmx-linux.c.  */
+void init_registers_i386_mmx_linux (void);
+extern const struct target_desc *tdesc_i386_mmx_linux;
+
+/* Defined in auto-generated file i386-avx-linux.c.  */
+void init_registers_i386_avx_linux (void);
+extern const struct target_desc *tdesc_i386_avx_linux;
+
+/* Defined in auto-generated file i386-avx-mpx-linux.c.  */
+void init_registers_i386_avx_mpx_linux (void);
+extern const struct target_desc *tdesc_i386_avx_mpx_linux;
+
+/* Defined in auto-generated file i386-avx-avx512-linux.c.  */
+void init_registers_i386_avx_avx512_linux (void);
+extern const struct target_desc *tdesc_i386_avx_avx512_linux;
+
+/* Defined in auto-generated file i386-avx-mpx-avx512-linux.c.  */
+void init_registers_i386_avx_mpx_avx512_pku_linux (void);
+extern const struct target_desc *tdesc_i386_avx_mpx_avx512_pku_linux;
+
+/* Defined in auto-generated file i386-mpx-linux.c.  */
+void init_registers_i386_mpx_linux (void);
+extern const struct target_desc *tdesc_i386_mpx_linux;
+
+#ifdef __x86_64__
+
+/* Defined in auto-generated file amd64-linux.c.  */
+void init_registers_amd64_linux (void);
+extern const struct target_desc *tdesc_amd64_linux;
+
+/* Defined in auto-generated file amd64-avx-linux.c.  */
+void init_registers_amd64_avx_linux (void);
+extern const struct target_desc *tdesc_amd64_avx_linux;
+
+/* Defined in auto-generated file amd64-avx-avx512-linux.c.  */
+void init_registers_amd64_avx_avx512_linux (void);
+extern const struct target_desc *tdesc_amd64_avx_avx512_linux;
+
+/* Defined in auto-generated file amd64-avx-mpx-avx512-pku-linux.c.  */
+void init_registers_amd64_avx_mpx_avx512_pku_linux (void);
+extern const struct target_desc *tdesc_amd64_avx_mpx_avx512_pku_linux;
+
+/* Defined in auto-generated file amd64-avx-mpx-linux.c.  */
+void init_registers_amd64_avx_mpx_linux (void);
+extern const struct target_desc *tdesc_amd64_avx_mpx_linux;
+
+/* Defined in auto-generated file amd64-mpx-linux.c.  */
+void init_registers_amd64_mpx_linux (void);
+extern const struct target_desc *tdesc_amd64_mpx_linux;
+
+/* Defined in auto-generated file x32-linux.c.  */
+void init_registers_x32_linux (void);
+extern const struct target_desc *tdesc_x32_linux;
+
+/* Defined in auto-generated file x32-avx-linux.c.  */
+void init_registers_x32_avx_linux (void);
+extern const struct target_desc *tdesc_x32_avx_linux;
+
+/* Defined in auto-generated file x32-avx-avx512-linux.c.  */
+void init_registers_x32_avx_avx512_linux (void);
+extern const struct target_desc *tdesc_x32_avx_avx512_linux;
+
+#endif
+
+namespace selftests {
+namespace tdesc {
+static void
+i386_tdesc_test ()
+{
+  struct
+  {
+    unsigned int mask;
+    const target_desc *tdesc;
+  } tdesc_tests[] = {
+    { X86_XSTATE_X87, tdesc_i386_mmx_linux },
+    { X86_XSTATE_SSE_MASK, tdesc_i386_linux },
+    { X86_XSTATE_AVX_MASK, tdesc_i386_avx_linux },
+    { X86_XSTATE_MPX_MASK, tdesc_i386_mpx_linux },
+    { X86_XSTATE_AVX_MPX_MASK, tdesc_i386_avx_mpx_linux },
+    { X86_XSTATE_AVX_AVX512_MASK, tdesc_i386_avx_avx512_linux },
+    { X86_XSTATE_AVX_MPX_AVX512_PKU_MASK, tdesc_i386_avx_mpx_avx512_pku_linux }
+  };
+
+  for (auto &elem : tdesc_tests)
+    {
+      const target_desc *tdesc = i386_linux_read_description (elem.mask);
+
+      SELF_CHECK (*tdesc == *elem.tdesc);
+    }
+}
+
+#ifdef __x86_64__
+
+static void
+amd64_tdesc_test ()
+{
+  struct
+  {
+    unsigned int mask;
+    const target_desc *tdesc[2];
+  } tdesc_tests[] = {
+    { X86_XSTATE_SSE_MASK, { tdesc_amd64_linux, tdesc_x32_linux } },
+    { X86_XSTATE_AVX_MASK, { tdesc_amd64_avx_linux, tdesc_x32_avx_linux } },
+    { X86_XSTATE_MPX_MASK, { tdesc_amd64_mpx_linux, tdesc_x32_avx_linux } },
+    { X86_XSTATE_AVX_MPX_MASK, { tdesc_amd64_avx_mpx_linux,
+				 tdesc_x32_avx_linux } },
+    { X86_XSTATE_AVX_AVX512_MASK, { tdesc_amd64_avx_avx512_linux,
+      tdesc_x32_avx_avx512_linux } },
+    { X86_XSTATE_AVX_MPX_AVX512_PKU_MASK,
+      { tdesc_amd64_avx_mpx_avx512_pku_linux,  tdesc_x32_avx_avx512_linux } },
+  };
+
+  for (auto &elem : tdesc_tests)
+    {
+      for (int i = 0; i < 2; i++)
+	{
+	  const target_desc *tdesc = amd64_linux_read_description (elem.mask,
+								   i);
+
+	  SELF_CHECK (*tdesc == *elem.tdesc[i]);
+	}
+    }
+}
+
+#endif
+}
+} // namespace selftests
+
+void
+initialize_low_tdesc ()
+{
+  init_registers_i386_linux ();
+  init_registers_i386_mmx_linux ();
+  init_registers_i386_avx_linux ();
+  init_registers_i386_mpx_linux ();
+  init_registers_i386_avx_mpx_linux ();
+  init_registers_i386_avx_avx512_linux ();
+  init_registers_i386_avx_mpx_avx512_pku_linux ();
+
+  selftests::register_test ("i386-tdesc", selftests::tdesc::i386_tdesc_test);
+
+#ifdef __x86_64__
+  init_registers_x32_linux ();
+  init_registers_x32_avx_linux ();
+  init_registers_x32_avx_avx512_linux ();
+
+  init_registers_amd64_linux ();
+  init_registers_amd64_avx_linux ();
+  init_registers_amd64_mpx_linux ();
+  init_registers_amd64_avx_mpx_linux ();
+  init_registers_amd64_avx_avx512_linux ();
+  init_registers_amd64_avx_mpx_avx512_pku_linux ();
+
+  selftests::register_test ("amd64-tdesc", selftests::tdesc::amd64_tdesc_test);
+#endif
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-xtensa-low.c ./gdb/gdbserver/linux-xtensa-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/linux-xtensa-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/linux-xtensa-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GNU/Linux/Xtensa specific low level interface, for the remote server for GDB.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -288,7 +288,9 @@ struct linux_target_ops the_low_target =
   NULL, /* supply_ptrace_register */
   NULL, /* siginfo_fixup */
   NULL, /* new_process */
+  NULL, /* delete_process */
   NULL, /* new_thread */
+  NULL, /* delete_thread */
   NULL, /* new_fork */
   NULL, /* prepare_to_resume */
   NULL, /* process_qsupported */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/lynx-i386-low.c ./gdb/gdbserver/lynx-i386-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/lynx-i386-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/lynx-i386-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -19,6 +19,8 @@
 #include "lynx-low.h"
 #include <limits.h>
 #include <sys/ptrace.h>
+#include "x86-xstate.h"
+#include "arch/i386.h"
 
 /* The following two typedefs are defined in a .h file which is not
    in the standard include path (/sys/include/family/x86/ucontext.h),
@@ -118,10 +120,6 @@ enum lynx_i386_gdb_regnum
   I386_SENTINEL_REGUM
 };
 
-/* Defined in auto-generated file i386.c.  */
-extern void init_registers_i386 (void);
-extern const struct target_desc *tdesc_i386;
-
 /* The fill_function for the general-purpose register set.  */
 
 static void
@@ -295,8 +293,12 @@ lynx_i386_store_fpregset (struct regcach
 static void
 lynx_i386_arch_setup (void)
 {
-  init_registers_i386 ();
-  lynx_tdesc = tdesc_i386;
+  struct target_desc *tdesc
+    = i386_create_target_description (X86_XSTATE_SSE_MASK, false);
+
+  init_target_desc (tdesc);
+
+  lynx_tdesc = tdesc;
 }
 
 /* Description of all the x86-lynx register sets.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/lynx-low.c ./gdb/gdbserver/lynx-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/lynx-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/lynx-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,6 +28,8 @@
 #include "gdb_wait.h"
 #include <signal.h>
 #include "filestuff.h"
+#include "common-inferior.h"
+#include "nat/fork-inferior.h"
 
 int using_threads = 1;
 
@@ -224,36 +226,43 @@ lynx_add_process (int pid, int attached)
   return proc;
 }
 
+/* Callback used by fork_inferior to start tracing the inferior.  */
+
+static void
+lynx_ptrace_fun ()
+{
+  int pgrp;
+
+  /* Switch child to its own process group so that signals won't
+     directly affect GDBserver. */
+  pgrp = getpid();
+  if (pgrp < 0)
+    trace_start_error_with_name ("pgrp");
+  if (setpgid (0, pgrp) < 0)
+    trace_start_error_with_name ("setpgid");
+  if (ioctl (0, TIOCSPGRP, &pgrp) < 0)
+    trace_start_error_with_name ("ioctl");
+  if (lynx_ptrace (PTRACE_TRACEME, null_ptid, 0, 0, 0) < 0)
+    trace_start_error_with_name ("lynx_ptrace");
+}
+
 /* Implement the create_inferior method of the target_ops vector.  */
 
 static int
-lynx_create_inferior (char *program, char **allargs)
+lynx_create_inferior (const char *program,
+		      const std::vector<char *> &program_args)
 {
   int pid;
+  std::string str_program_args = stringify_argv (program_args);
 
   lynx_debug ("lynx_create_inferior ()");
 
-  pid = fork ();
-  if (pid < 0)
-    perror_with_name ("fork");
-
-  if (pid == 0)
-    {
-      int pgrp;
-
-      close_most_fds ();
-
-      /* Switch child to its own process group so that signals won't
-         directly affect gdbserver. */
-      pgrp = getpid();
-      setpgid (0, pgrp);
-      ioctl (0, TIOCSPGRP, &pgrp);
-      lynx_ptrace (PTRACE_TRACEME, null_ptid, 0, 0, 0);
-      execv (program, allargs);
-      fprintf (stderr, "Cannot exec %s: %s.\n", program, strerror (errno));
-      fflush (stderr);
-      _exit (0177);
-    }
+  pid = fork_inferior (program,
+		       str_program_args.c_str (),
+		       get_environ ()->envp (), lynx_ptrace_fun,
+		       NULL, NULL, NULL, NULL);
+
+  post_fork_inferior (pid, program);
 
   lynx_add_process (pid, 0);
   /* Do not add the process thread just yet, as we do not know its tid.
@@ -341,7 +350,7 @@ lynx_resume (struct thread_resume *resum
      the moment we resume its execution for the first time.  It is
      fine to use the current_thread's ptid in those cases.  */
   if (ptid_equal (ptid, minus_one_ptid))
-    ptid = thread_to_gdb_id (current_thread);
+    ptid = ptid_of (current_thread);
 
   regcache_invalidate_pid (ptid_get_pid (ptid));
 
@@ -414,7 +423,7 @@ lynx_wait_1 (ptid_t ptid, struct target_
   ptid_t new_ptid;
 
   if (ptid_equal (ptid, minus_one_ptid))
-    pid = lynx_ptid_get_pid (thread_to_gdb_id (current_thread));
+    pid = lynx_ptid_get_pid (ptid_of (current_thread));
   else
     pid = BUILDPID (lynx_ptid_get_pid (ptid), lynx_ptid_get_tid (ptid));
 
@@ -546,30 +555,12 @@ lynx_detach (int pid)
   return 0;
 }
 
-/* A callback for find_inferior which removes from the thread list
-   all threads belonging to process PROC.  */
-
-static int
-lynx_delete_thread_callback (struct inferior_list_entry *entry, void *proc)
-{
-  struct process_info *process = (struct process_info *) proc;
-
-  if (ptid_get_pid (entry->id) == pid_of (process))
-    {
-      struct thread_info *thr = find_thread_ptid (entry->id);
-
-      remove_thread (thr);
-    }
-
-  return 0;
-}
-
 /* Implement the mourn target_ops method.  */
 
 static void
 lynx_mourn (struct process_info *proc)
 {
-  find_inferior (&all_threads, lynx_delete_thread_callback, proc);
+  for_each_thread (proc->pid, remove_thread);
 
   /* Free our private data.  */
   free (proc->priv);
@@ -603,7 +594,7 @@ static void
 lynx_fetch_registers (struct regcache *regcache, int regno)
 {
   struct lynx_regset_info *regset = lynx_target_regsets;
-  ptid_t inferior_ptid = thread_to_gdb_id (current_thread);
+  ptid_t inferior_ptid = ptid_of (current_thread);
 
   lynx_debug ("lynx_fetch_registers (regno = %d)", regno);
 
@@ -628,7 +619,7 @@ static void
 lynx_store_registers (struct regcache *regcache, int regno)
 {
   struct lynx_regset_info *regset = lynx_target_regsets;
-  ptid_t inferior_ptid = thread_to_gdb_id (current_thread);
+  ptid_t inferior_ptid = ptid_of (current_thread);
 
   lynx_debug ("lynx_store_registers (regno = %d)", regno);
 
@@ -664,7 +655,7 @@ lynx_read_memory (CORE_ADDR memaddr, uns
   int buf;
   const int xfer_size = sizeof (buf);
   CORE_ADDR addr = memaddr & -(CORE_ADDR) xfer_size;
-  ptid_t inferior_ptid = thread_to_gdb_id (current_thread);
+  ptid_t inferior_ptid = ptid_of (current_thread);
 
   while (addr < memaddr + len)
     {
@@ -697,7 +688,7 @@ lynx_write_memory (CORE_ADDR memaddr, co
   int buf;
   const int xfer_size = sizeof (buf);
   CORE_ADDR addr = memaddr & -(CORE_ADDR) xfer_size;
-  ptid_t inferior_ptid = thread_to_gdb_id (current_thread);
+  ptid_t inferior_ptid = ptid_of (current_thread);
 
   while (addr < memaddr + len)
     {
@@ -733,7 +724,7 @@ lynx_write_memory (CORE_ADDR memaddr, co
 static void
 lynx_request_interrupt (void)
 {
-  ptid_t inferior_ptid = thread_to_gdb_id (get_first_thread ());
+  ptid_t inferior_ptid = ptid_of (get_first_thread ());
 
   kill (lynx_ptid_get_pid (inferior_ptid), SIGINT);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/lynx-low.h ./gdb/gdbserver/lynx-low.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/lynx-low.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/lynx-low.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/lynx-ppc-low.c ./gdb/gdbserver/lynx-ppc-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/lynx-ppc-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/lynx-ppc-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/Makefile.in ./gdb/gdbserver/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/Makefile.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/Makefile.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1989-2017 Free Software Foundation, Inc.
+# Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
 # This file is part of GDB.
 
@@ -43,6 +43,7 @@ man9dir = $(mandir)/man9
 infodir = @infodir@
 htmldir = $(prefix)/html
 includedir = @includedir@
+CONFIG_SRC_SUBDIR = @CONFIG_SRC_SUBDIR@
 
 SHELL = @SHELL@
 EXEEXT = @EXEEXT@
@@ -65,7 +66,7 @@ depcomp = $(SHELL) $(srcdir)/../depcomp
 
 # Note that these are overridden by GNU make-specific code below if
 # GNU make is used.  The overrides implement dependency tracking.
-COMPILE.pre = $(CXX) $(CXX_DIALECT)
+COMPILE.pre = $(CXX) -x c++ $(CXX_DIALECT)
 COMPILE.post = -c -o $@
 COMPILE = $(COMPILE.pre) $(INTERNAL_CFLAGS) $(COMPILE.post)
 POSTCOMPILE = @true
@@ -204,6 +205,8 @@ SFILES = \
 	$(srcdir)/common/environ.c \
 	$(srcdir)/common/fileio.c \
 	$(srcdir)/common/filestuff.c \
+	$(srcdir)/common/job-control.c \
+	$(srcdir)/common/gdb_tilde_expand.c \
 	$(srcdir)/common/gdb_vecs.c \
 	$(srcdir)/common/new-op.c \
 	$(srcdir)/common/print-utils.c \
@@ -217,6 +220,7 @@ SFILES = \
 	$(srcdir)/nat/linux-personality.c \
 	$(srcdir)/nat/mips-linux-watch.c \
 	$(srcdir)/nat/ppc-linux.c \
+	$(srcdir)/nat/fork-inferior.c \
 	$(srcdir)/target/waitstatus.c
 
 DEPFILES = @GDBSERVER_DEPFILES@
@@ -234,6 +238,7 @@ OBS = \
 	cleanups.o \
 	common-debug.o \
 	common-exceptions.o \
+	job-control.o \
 	common-regcache.o \
 	common-utils.o \
 	debug.o \
@@ -244,6 +249,7 @@ OBS = \
 	fileio.o \
 	filestuff.o \
 	format.o \
+	gdb_tilde_expand.o \
 	gdb_vecs.o \
 	hostio.o \
 	inferiors.o \
@@ -384,9 +390,19 @@ gdbreplay$(EXEEXT): $(GDBREPLAY_OBS) $(L
 	$(CC_LD) $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) -o gdbreplay$(EXEEXT) $(GDBREPLAY_OBS) \
 	  $(XM_CLIBS) $(LIBGNU) $(LIBIBERTY)
 
-IPA_OBJS = ax-ipa.o tracepoint-ipa.o format-ipa.o utils-ipa.o \
-	regcache-ipa.o remote-utils-ipa.o common-utils-ipa.o \
-	tdesc-ipa.o print-utils-ipa.o rsp-low-ipa.o errors-ipa.o \
+IPA_OBJS = \
+	ax-ipa.o \
+	common-utils-ipa.o \
+	errors-ipa.o \
+	format-ipa.o \
+	print-utils-ipa.o \
+	regcache-ipa.o \
+	remote-utils-ipa.o \
+	rsp-low-ipa.o \
+	tdesc-ipa.o \
+	tracepoint-ipa.o \
+	utils-ipa.o \
+	vec-ipa.o \
 	${IPA_DEPFILES}
 
 IPA_LIB = libinproctrace.so
@@ -418,6 +434,10 @@ clean:
 	rm -f *-generated.c
 	rm -f stamp-xml
 	rm -f $(DEPDIR)/*.Po
+	for i in $(CONFIG_SRC_SUBDIR); do \
+		rm -f $$i/*.o;	\
+		rm -f $$i/$(DEPDIR)/*; \
+	done
 	@$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
 
 maintainer-clean realclean distclean: clean
@@ -425,6 +445,9 @@ maintainer-clean realclean distclean: cl
 	rm -rf $(GNULIB_BUILDDIR)
 	rm -f Makefile config.status config.h stamp-h config.log
 	rm -f Makefile
+	for i in $(CONFIG_SRC_SUBDIR); do \
+		rmdir $$i/$(DEPDIR); \
+	done
 
 subdir_do: force
 	@for i in $(DODIRS); do \
@@ -514,6 +537,10 @@ ax.o: ax.c
 	$(COMPILE) $(WARN_CFLAGS_NO_FORMAT) $<
 	$(POSTCOMPILE)
 
+arch/%.o: ../arch/%.c
+	$(COMPILE) $<
+	$(POSTCOMPILE)
+
 # Rules for objects that go in the in-process agent.
 
 %-ipa.o: %-generated.c
@@ -539,6 +566,10 @@ ax.o: ax.c
 	$(IPAGENT_COMPILE) $<
 	$(POSTCOMPILE)
 
+arch/%-ipa.o: ../arch/%.c
+	$(IPAGENT_COMPILE) $<
+	$(POSTCOMPILE)
+
 # Rules for objects that go in the gdbserver binary.
 
 %.o: %-generated.c
@@ -549,10 +580,6 @@ ax.o: ax.c
 	$(COMPILE) $<
 	$(POSTCOMPILE)
 
-%.o: ../arch/%.c
-	$(COMPILE) $<
-	$(POSTCOMPILE)
-
 %.o: ../common/%.c
 	$(COMPILE) $<
 	$(POSTCOMPILE)
@@ -589,12 +616,13 @@ ifeq ($(DEPMODE),depmode=gcc3)
 # into place if the compile succeeds.  We need this because gcc does
 # not atomically write the dependency output file.
 override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \
-	-MF $(DEPDIR)/$(basename $(@F)).Tpo
-override POSTCOMPILE = @mv $(DEPDIR)/$(basename $(@F)).Tpo \
-	$(DEPDIR)/$(basename $(@F)).Po
+	-MF $(@D)/$(DEPDIR)/$(basename $(@F)).Tpo
+override POSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(basename $(@F)).Tpo \
+	$(@D)/$(DEPDIR)/$(basename $(@F)).Po
 else
 override COMPILE.pre = source='$<' object='$@' libtool=no \
-	DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC)
+	DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) \
+	$(CXX) -x c++ $(CXX_DIALECT)
 # depcomp handles atomicity for us, so we don't need a postcompile
 # step.
 override POSTCOMPILE =
@@ -619,4 +647,7 @@ endif
 # Disable implicit make rules.
 include $(srcdir)/../disable-implicit-rules.mk
 
+# Do not delete intermediate files (e.g. *-generated.c).
+.SECONDARY:
+
 # This is the end of "Makefile.in".
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/mem-break.c ./gdb/gdbserver/mem-break.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/mem-break.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/mem-break.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Memory breakpoint operations for the remote server for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by MontaVista Software.
 
@@ -1269,9 +1269,9 @@ add_condition_to_breakpoint (struct gdb_
 /* Add a target-side condition CONDITION to a breakpoint.  */
 
 int
-add_breakpoint_condition (struct gdb_breakpoint *bp, char **condition)
+add_breakpoint_condition (struct gdb_breakpoint *bp, const char **condition)
 {
-  char *actparm = *condition;
+  const char *actparm = *condition;
   struct agent_expr *cond;
 
   if (condition == NULL)
@@ -1367,10 +1367,10 @@ add_commands_to_breakpoint (struct gdb_b
 /* Add a target-side command COMMAND to the breakpoint at ADDR.  */
 
 int
-add_breakpoint_commands (struct gdb_breakpoint *bp, char **command,
+add_breakpoint_commands (struct gdb_breakpoint *bp, const char **command,
 			 int persist)
 {
-  char *actparm = *command;
+  const char *actparm = *command;
   struct agent_expr *cmd;
 
   if (command == NULL)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/mem-break.h ./gdb/gdbserver/mem-break.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/mem-break.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/mem-break.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Memory breakpoint interfaces for the remote server for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by MontaVista Software.
 
@@ -114,14 +114,15 @@ void clear_breakpoint_conditions_and_com
    Returns false on failure.  On success, advances CONDITION pointer
    past the condition and returns true.  */
 
-int add_breakpoint_condition (struct gdb_breakpoint *bp, char **condition);
+int add_breakpoint_condition (struct gdb_breakpoint *bp,
+			      const char **condition);
 
 /* Set target-side commands COMMANDS to the breakpoint at ADDR.
    Returns false on failure.  On success, advances COMMANDS past the
    commands and returns true.  If PERSIST, the commands should run
    even while GDB is disconnected.  */
 
-int add_breakpoint_commands (struct gdb_breakpoint *bp, char **commands,
+int add_breakpoint_commands (struct gdb_breakpoint *bp, const char **commands,
 			     int persist);
 
 int any_persistent_commands (void);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/notif.c ./gdb/gdbserver/notif.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/notif.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/notif.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Notification to GDB.
-   Copyright (C) 1989-2017 Free Software Foundation, Inc.
+   Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/notif.h ./gdb/gdbserver/notif.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/notif.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/notif.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Notification to GDB.
-   Copyright (C) 1989-2017 Free Software Foundation, Inc.
+   Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/nto-low.c ./gdb/gdbserver/nto-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/nto-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/nto-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* QNX Neutrino specific low level interface, for the remote server
    for GDB.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -347,14 +347,17 @@ nto_read_auxv_from_initial_stack (CORE_A
   return len_read;
 }
 
-/* Start inferior specified by PROGRAM passing arguments ALLARGS.  */
+/* Start inferior specified by PROGRAM, using PROGRAM_ARGS as its
+   arguments.  */
 
 static int
-nto_create_inferior (char *program, char **allargs)
+nto_create_inferior (const char *program,
+		     const std::vector<char *> &program_args)
 {
   struct inheritance inherit;
   pid_t pid;
   sigset_t set;
+  std::string str_program_args = stringify_argv (program_args);
 
   TRACE ("%s %s\n", __func__, program);
   /* Clear any pending SIGUSR1's but keep the behavior the same.  */
@@ -367,7 +370,8 @@ nto_create_inferior (char *program, char
   memset (&inherit, 0, sizeof (inherit));
   inherit.flags |= SPAWN_SETGROUP | SPAWN_HOLD;
   inherit.pgroup = SPAWN_NEWPGROUP;
-  pid = spawnp (program, 0, NULL, &inherit, allargs, 0);
+  pid = spawnp (program, 0, NULL, &inherit,
+		(char *) str_program_args.c_str (), 0);
   sigprocmask (SIG_BLOCK, &set, NULL);
 
   if (pid == -1)
@@ -616,7 +620,6 @@ nto_fetch_registers (struct regcache *re
 {
   int regsize;
   procfs_greg greg;
-  ptid_t ptid;
 
   TRACE ("%s (regno=%d)\n", __func__, regno);
   if (regno >= the_low_target.num_regs)
@@ -627,7 +630,7 @@ nto_fetch_registers (struct regcache *re
       TRACE ("current_thread is NULL\n");
       return;
     }
-  ptid = thread_to_gdb_id (current_thread);
+  ptid_t ptid = ptid_of (current_thread);
   if (!nto_set_thread (ptid))
     return;
 
@@ -665,7 +668,6 @@ nto_store_registers (struct regcache *re
 {
   procfs_greg greg;
   int err;
-  ptid_t ptid;
 
   TRACE ("%s (regno:%d)\n", __func__, regno);
 
@@ -674,7 +676,7 @@ nto_store_registers (struct regcache *re
       TRACE ("current_thread is NULL\n");
       return;
     }
-  ptid = thread_to_gdb_id (current_thread);
+  ptid_t ptid = ptid_of (current_thread);
   if (!nto_set_thread (ptid))
     return;
 
@@ -863,9 +865,7 @@ nto_stopped_by_watchpoint (void)
   TRACE ("%s\n", __func__);
   if (nto_inferior.ctl_fd != -1 && current_thread != NULL)
     {
-      ptid_t ptid;
-
-      ptid = thread_to_gdb_id (current_thread);
+      ptid_t ptid = ptid_of (current_thread);
       if (nto_set_thread (ptid))
 	{
 	  const int watchmask = _DEBUG_FLAG_TRACE_RD | _DEBUG_FLAG_TRACE_WR
@@ -895,9 +895,7 @@ nto_stopped_data_address (void)
   TRACE ("%s\n", __func__);
   if (nto_inferior.ctl_fd != -1 && current_thread != NULL)
     {
-      ptid_t ptid;
-
-      ptid = thread_to_gdb_id (current_thread);
+      ptid_t ptid = ptid_of (current_thread);
 
       if (nto_set_thread (ptid))
 	{
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/nto-low.h ./gdb/gdbserver/nto-low.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/nto-low.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/nto-low.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Internal interfaces for the QNX Neutrino specific target code for gdbserver.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/nto-x86-low.c ./gdb/gdbserver/nto-x86-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/nto-x86-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/nto-x86-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* QNX Neutrino specific low level interface, for the remote server
    for GDB.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -23,12 +23,8 @@
 #include "regcache.h"
 
 #include <x86/context.h>
-
-
-/* Defined in auto-generated build-time file gdb/gdbserver/i386.c.  */
-extern void init_registers_i386 ();
-extern struct reg *regs_i386;
-extern const struct target_desc *tdesc_i386;
+#include "x86-xstate.h"
+#include "arch/i386.h"
 
 const unsigned char x86_breakpoint[] = { 0xCC };
 #define x86_breakpoint_len 1
@@ -90,9 +86,13 @@ nto_x86_register_offset (int gdbregno)
 static void
 nto_x86_arch_setup (void)
 {
-  init_registers_i386 ();
   the_low_target.num_regs = 16;
-  nto_tdesc = tdesc_i386;
+  struct target_desc *tdesc
+    = i386_create_target_description (X86_XSTATE_SSE_MASK, false);
+
+  init_target_desc (tdesc);
+
+  nto_tdesc = tdesc;
 }
 
 struct nto_target_ops the_low_target =
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/proc-service.c ./gdb/gdbserver/proc-service.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/proc-service.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/proc-service.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* libthread_db helper functions for the remote server for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by MontaVista Software.
 
@@ -80,7 +80,8 @@ ps_err_e
 ps_pdread (gdb_ps_prochandle_t ph, psaddr_t addr,
 	   gdb_ps_read_buf_t buf, gdb_ps_size_t size)
 {
-  read_inferior_memory ((uintptr_t) addr, (gdb_byte *) buf, size);
+  if (read_inferior_memory ((uintptr_t) addr, (gdb_byte *) buf, size) != 0)
+    return PS_ERR;
   return PS_OK;
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/proc-service.list ./gdb/gdbserver/proc-service.list
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/proc-service.list	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/proc-service.list	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* -Wl,--dynamic-list symbols exported for libthread_db.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/regcache.c ./gdb/gdbserver/regcache.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/regcache.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/regcache.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Register support routines for the remote server for GDB.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,7 +28,7 @@ get_thread_regcache (struct thread_info 
 {
   struct regcache *regcache;
 
-  regcache = inferior_regcache_data (thread);
+  regcache = thread_regcache_data (thread);
 
   /* Threads' regcaches are created lazily, because biarch targets add
      the main thread/lwp before seeing it stop for the first time, and
@@ -44,7 +44,7 @@ get_thread_regcache (struct thread_info 
       gdb_assert (proc->tdesc != NULL);
 
       regcache = new_register_cache (proc->tdesc);
-      set_inferior_regcache_data (thread, regcache);
+      set_thread_regcache_data (thread, regcache);
     }
 
   if (fetch && regcache->registers_valid == 0)
@@ -54,7 +54,7 @@ get_thread_regcache (struct thread_info 
       current_thread = thread;
       /* Invalidate all registers, to prevent stale left-overs.  */
       memset (regcache->register_status, REG_UNAVAILABLE,
-	      regcache->tdesc->num_registers);
+	      regcache->tdesc->reg_defs.size ());
       fetch_inferior_registers (regcache, -1);
       current_thread = saved_thread;
       regcache->registers_valid = 1;
@@ -76,7 +76,7 @@ regcache_invalidate_thread (struct threa
 {
   struct regcache *regcache;
 
-  regcache = inferior_regcache_data (thread);
+  regcache = thread_regcache_data (thread);
 
   if (regcache == NULL)
     return;
@@ -93,26 +93,13 @@ regcache_invalidate_thread (struct threa
   regcache->registers_valid = 0;
 }
 
-static int
-regcache_invalidate_one (struct inferior_list_entry *entry,
-			 void *pid_p)
-{
-  struct thread_info *thread = (struct thread_info *) entry;
-  int pid = *(int *) pid_p;
-
-  /* Only invalidate the regcaches of threads of this process.  */
-  if (ptid_get_pid (entry->id) == pid)
-    regcache_invalidate_thread (thread);
-
-  return 0;
-}
-
 /* See regcache.h.  */
 
 void
 regcache_invalidate_pid (int pid)
 {
-  find_inferior (&all_threads, regcache_invalidate_one, &pid);
+  /* Only invalidate the regcaches of threads of this process.  */
+  for_each_thread (pid, regcache_invalidate_thread);
 }
 
 /* See regcache.h.  */
@@ -121,7 +108,7 @@ void
 regcache_invalidate (void)
 {
   /* Only update the threads of the current process.  */
-  int pid = ptid_get_pid (current_thread->entry.id);
+  int pid = current_thread->id.pid ();
 
   regcache_invalidate_pid (pid);
 }
@@ -145,9 +132,9 @@ init_register_cache (struct regcache *re
 	= (unsigned char *) xcalloc (1, tdesc->registers_size);
       regcache->registers_owned = 1;
       regcache->register_status
-	= (unsigned char *) xmalloc (tdesc->num_registers);
+	= (unsigned char *) xmalloc (tdesc->reg_defs.size ());
       memset ((void *) regcache->register_status, REG_UNAVAILABLE,
-	      tdesc->num_registers);
+	      tdesc->reg_defs.size ());
 #else
       gdb_assert_not_reached ("can't allocate memory from the heap");
 #endif
@@ -204,7 +191,7 @@ regcache_cpy (struct regcache *dst, stru
 #ifndef IN_PROCESS_AGENT
   if (dst->register_status != NULL && src->register_status != NULL)
     memcpy (dst->register_status, src->register_status,
-	    src->tdesc->num_registers);
+	    src->tdesc->reg_defs.size ());
 #endif
   dst->registers_valid = src->registers_valid;
 }
@@ -217,9 +204,8 @@ registers_to_string (struct regcache *re
 {
   unsigned char *registers = regcache->registers;
   const struct target_desc *tdesc = regcache->tdesc;
-  int i;
 
-  for (i = 0; i < tdesc->num_registers; i++)
+  for (int i = 0; i < tdesc->reg_defs.size (); ++i)
     {
       if (regcache->register_status[i] == REG_VALID)
 	{
@@ -256,50 +242,44 @@ registers_from_string (struct regcache *
 int
 find_regno (const struct target_desc *tdesc, const char *name)
 {
-  int i;
+  for (int i = 0; i < tdesc->reg_defs.size (); ++i)
+    {
+      struct reg *reg = tdesc->reg_defs[i];
 
-  for (i = 0; i < tdesc->num_registers; i++)
-    if (strcmp (name, tdesc->reg_defs[i].name) == 0)
-      return i;
+      if (strcmp (name, reg->name) == 0)
+	return i;
+    }
   internal_error (__FILE__, __LINE__, "Unknown register %s requested",
 		  name);
 }
 
+#endif
+
 struct reg *
 find_register_by_number (const struct target_desc *tdesc, int n)
 {
-  return &tdesc->reg_defs[n];
+  return tdesc->reg_defs[n];
 }
 
-#endif
-
 #ifndef IN_PROCESS_AGENT
 static void
 free_register_cache_thread (struct thread_info *thread)
 {
-  struct regcache *regcache = inferior_regcache_data (thread);
+  struct regcache *regcache = thread_regcache_data (thread);
 
   if (regcache != NULL)
     {
       regcache_invalidate_thread (thread);
       free_register_cache (regcache);
-      set_inferior_regcache_data (thread, NULL);
+      set_thread_regcache_data (thread, NULL);
     }
 }
 
-static void
-free_register_cache_thread_one (struct inferior_list_entry *entry)
-{
-  struct thread_info *thread = (struct thread_info *) entry;
-
-  free_register_cache_thread (thread);
-}
-
 void
 regcache_release (void)
 {
   /* Flush and release all pre-existing register caches.  */
-  for_each_inferior (&all_threads, free_register_cache_thread_one);
+  for_each_thread (free_register_cache_thread);
 }
 #endif
 
@@ -312,7 +292,7 @@ register_cache_size (const struct target
 int
 register_size (const struct target_desc *tdesc, int n)
 {
-  return tdesc->reg_defs[n].size / 8;
+  return find_register_by_number (tdesc, n)->size / 8;
 }
 
 /* See common/common-regcache.h.  */
@@ -326,7 +306,8 @@ regcache_register_size (const struct reg
 static unsigned char *
 register_data (struct regcache *regcache, int n, int fetch)
 {
-  return regcache->registers + regcache->tdesc->reg_defs[n].offset / 8;
+  return (regcache->registers
+	  + find_register_by_number (regcache->tdesc, n)->offset / 8);
 }
 
 /* Supply register N, whose contents are stored in BUF, to REGCACHE.
@@ -385,7 +366,7 @@ supply_regblock (struct regcache *regcac
       {
 	int i;
 
-	for (i = 0; i < tdesc->num_registers; i++)
+	for (i = 0; i < tdesc->reg_defs.size (); i++)
 	  regcache->register_status[i] = REG_VALID;
       }
 #endif
@@ -399,7 +380,7 @@ supply_regblock (struct regcache *regcac
       {
 	int i;
 
-	for (i = 0; i < tdesc->num_registers; i++)
+	for (i = 0; i < tdesc->reg_defs.size (); i++)
 	  regcache->register_status[i] = REG_UNAVAILABLE;
       }
 #endif
@@ -431,7 +412,8 @@ regcache_raw_read_unsigned (struct regca
   int size;
 
   gdb_assert (regcache != NULL);
-  gdb_assert (regnum >= 0 && regnum < regcache->tdesc->num_registers);
+  gdb_assert (regnum >= 0
+	      && regnum < regcache->tdesc->reg_defs.size ());
 
   size = register_size (regcache->tdesc, regnum);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/regcache.h ./gdb/gdbserver/regcache.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/regcache.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/regcache.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Register support routines for the remote server for GDB.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/remote-utils.c ./gdb/gdbserver/remote-utils.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/remote-utils.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/remote-utils.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Remote utility routines for the remote server for GDB.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -17,12 +17,15 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "server.h"
-#include "gdb_termios.h"
+#if HAVE_TERMIOS_H
+#include <termios.h>
+#endif
 #include "target.h"
 #include "gdbthread.h"
 #include "tdesc.h"
 #include "dll.h"
 #include "rsp-low.h"
+#include "gdbthread.h"
 #include <ctype.h>
 #if HAVE_SYS_IOCTL_H
 #include <sys/ioctl.h>
@@ -324,7 +327,7 @@ remote_open (const char *name)
       if (remote_desc < 0)
 	perror_with_name ("Could not open remote device");
 
-#ifdef HAVE_TERMIOS
+#if HAVE_TERMIOS_H
       {
 	struct termios termios;
 	tcgetattr (remote_desc, &termios);
@@ -341,33 +344,6 @@ remote_open (const char *name)
       }
 #endif
 
-#ifdef HAVE_TERMIO
-      {
-	struct termio termio;
-	ioctl (remote_desc, TCGETA, &termio);
-
-	termio.c_iflag = 0;
-	termio.c_oflag = 0;
-	termio.c_lflag = 0;
-	termio.c_cflag &= ~(CSIZE | PARENB);
-	termio.c_cflag |= CLOCAL | CS8;
-	termio.c_cc[VMIN] = 1;
-	termio.c_cc[VTIME] = 0;
-
-	ioctl (remote_desc, TCSETA, &termio);
-      }
-#endif
-
-#ifdef HAVE_SGTTY
-      {
-	struct sgttyb sg;
-
-	ioctl (remote_desc, TIOCGETP, &sg);
-	sg.sg_flags = RAW;
-	ioctl (remote_desc, TIOCSETP, &sg);
-      }
-#endif
-
       fprintf (stderr, "Remote debugging using %s\n", name);
 
       enable_async_notification (remote_desc);
@@ -402,10 +378,7 @@ remote_close (void)
 {
   delete_file_handler (remote_desc);
 
-#ifndef USE_WIN32API
-  /* Remove SIGIO handler.  */
-  signal (SIGIO, SIG_IGN);
-#endif
+  disable_async_io ();
 
 #ifdef USE_WIN32API
   closesocket (remote_desc);
@@ -532,7 +505,7 @@ write_ptid (char *buf, ptid_t ptid)
 }
 
 static ULONGEST
-hex_or_minus_one (char *buf, char **obuf)
+hex_or_minus_one (const char *buf, const char **obuf)
 {
   ULONGEST ret;
 
@@ -553,10 +526,10 @@ hex_or_minus_one (char *buf, char **obuf
 /* Extract a PTID from BUF.  If non-null, OBUF is set to the to one
    passed the last parsed char.  Returns null_ptid on error.  */
 ptid_t
-read_ptid (char *buf, char **obuf)
+read_ptid (const char *buf, const char **obuf)
 {
-  char *p = buf;
-  char *pp;
+  const char *p = buf;
+  const char *pp;
   ULONGEST pid = 0, tid = 0;
 
   if (*p == 'p')
@@ -1188,7 +1161,7 @@ prepare_resume_reply (char *buf, ptid_t 
 
 	saved_thread = current_thread;
 
-	current_thread = find_thread_ptid (ptid);
+	switch_to_thread (ptid);
 
 	regp = current_target_desc ()->expedite_regs;
 
@@ -1200,7 +1173,7 @@ prepare_resume_reply (char *buf, ptid_t 
 	    CORE_ADDR addr;
 	    int i;
 
-	    strncpy (buf, "watch:", 6);
+	    memcpy (buf, "watch:", 6);
 	    buf += 6;
 
 	    addr = (*the_target->stopped_data_address) ();
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/remote-utils.h ./gdb/gdbserver/remote-utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/remote-utils.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/remote-utils.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Remote utility routines for the remote server for GDB.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,7 +28,7 @@ int gdb_connected (void);
 #define STDIO_CONNECTION_NAME "stdio"
 int remote_connection_is_stdio (void);
 
-ptid_t read_ptid (char *buf, char **obuf);
+ptid_t read_ptid (const char *buf, const char **obuf);
 char *write_ptid (char *buf, ptid_t ptid);
 
 int putpkt (char *buf);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/server.c ./gdb/gdbserver/server.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/server.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/server.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Main code for remote server for GDB.
-   Copyright (C) 1989-2017 Free Software Foundation, Inc.
+   Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -36,6 +36,35 @@
 #include "dll.h"
 #include "hostio.h"
 #include <vector>
+#include "common-inferior.h"
+#include "job-control.h"
+#include "environ.h"
+
+#include "common/selftest.h"
+
+#define require_running_or_return(BUF)		\
+  if (!target_running ())			\
+    {						\
+      write_enn (BUF);				\
+      return;					\
+    }
+
+#define require_running_or_break(BUF)		\
+  if (!target_running ())			\
+    {						\
+      write_enn (BUF);				\
+      break;					\
+    }
+
+/* The environment to pass to the inferior when creating it.  */
+
+static gdb_environ our_environ;
+
+/* Start the inferior using a shell.  */
+
+/* We always try to start the inferior using a shell.  */
+
+int startup_with_shell = 1;
 
 /* The thread set with an `Hc' packet.  `Hc' is deprecated in favor of
    `vCont'.  Note the multi-process extensions made `vCont' a
@@ -79,8 +108,9 @@ static int vCont_supported;
    space randomization feature before starting an inferior.  */
 int disable_randomization = 1;
 
-static std::vector<char *> program_argv;
-static std::vector<char *> wrapper_argv;
+static char *program_name = NULL;
+static std::vector<char *> program_args;
+static std::string wrapper_argv;
 
 int pass_signals[GDB_SIGNAL_LAST];
 int program_signals[GDB_SIGNAL_LAST];
@@ -93,22 +123,6 @@ int program_signals_p;
 
 unsigned long signal_pid;
 
-#ifdef SIGTTOU
-/* A file descriptor for the controlling terminal.  */
-int terminal_fd;
-
-/* TERMINAL_FD's original foreground group.  */
-pid_t old_foreground_pgrp;
-
-/* Hand back terminal ownership to the original foreground group.  */
-
-static void
-restore_old_foreground_pgrp (void)
-{
-  tcsetpgrp (terminal_fd, old_foreground_pgrp);
-}
-#endif
-
 /* Set if you want to disable optional thread related packets support
    in gdbserver, for the sake of testing GDB against stubs that don't
    support them.  */
@@ -118,8 +132,8 @@ int disable_packet_qC;
 int disable_packet_qfThreadInfo;
 
 /* Last status reported to GDB.  */
-static struct target_waitstatus last_status;
-static ptid_t last_ptid;
+struct target_waitstatus last_status;
+ptid_t last_ptid;
 
 char *own_buf;
 static unsigned char *mem_buf;
@@ -238,94 +252,31 @@ target_running (void)
   return get_first_thread () != NULL;
 }
 
-static int
-start_inferior (char **argv)
-{
-  std::vector<char *> new_argv;
-
-  if (!wrapper_argv.empty ())
-    new_argv.insert (new_argv.begin (),
-		     wrapper_argv.begin (),
-		     wrapper_argv.end ());
-
-  for (int i = 0; argv[i] != NULL; ++i)
-    new_argv.push_back (argv[i]);
-
-  new_argv.push_back (NULL);
-
-  if (debug_threads)
-    {
-      for (int i = 0; i < new_argv.size (); ++i)
-	debug_printf ("new_argv[%d] = \"%s\"\n", i, new_argv[i]);
-      debug_flush ();
-    }
-
-#ifdef SIGTTOU
-  signal (SIGTTOU, SIG_DFL);
-  signal (SIGTTIN, SIG_DFL);
-#endif
-
-  signal_pid = create_inferior (new_argv[0], &new_argv[0]);
-
-  /* FIXME: we don't actually know at this point that the create
-     actually succeeded.  We won't know that until we wait.  */
-  fprintf (stderr, "Process %s created; pid = %ld\n", argv[0],
-	   signal_pid);
-  fflush (stderr);
-
-#ifdef SIGTTOU
-  signal (SIGTTOU, SIG_IGN);
-  signal (SIGTTIN, SIG_IGN);
-  terminal_fd = fileno (stderr);
-  old_foreground_pgrp = tcgetpgrp (terminal_fd);
-  tcsetpgrp (terminal_fd, signal_pid);
-  atexit (restore_old_foreground_pgrp);
-#endif
-
-  if (!wrapper_argv.empty ())
-    {
-      ptid_t ptid = pid_to_ptid (signal_pid);
-
-      last_ptid = mywait (pid_to_ptid (signal_pid), &last_status, 0, 0);
+/* See common/common-inferior.h.  */
 
-      if (last_status.kind == TARGET_WAITKIND_STOPPED)
-	{
-	  do
-	    {
-	      target_continue_no_signal (ptid);
+const char *
+get_exec_wrapper ()
+{
+  return !wrapper_argv.empty () ? wrapper_argv.c_str () : NULL;
+}
 
-	      last_ptid = mywait (pid_to_ptid (signal_pid), &last_status, 0, 0);
-	      if (last_status.kind != TARGET_WAITKIND_STOPPED)
-		break;
+/* See common/common-inferior.h.  */
 
-	      current_thread->last_resume_kind = resume_stop;
-	      current_thread->last_status = last_status;
-	    }
-	  while (last_status.value.sig != GDB_SIGNAL_TRAP);
-	}
-      target_post_create_inferior ();
-      return signal_pid;
-    }
+char *
+get_exec_file (int err)
+{
+  if (err && program_name == NULL)
+    error (_("No executable file specified."));
 
-  /* Wait till we are at 1st instruction in program, return new pid
-     (assuming success).  */
-  last_ptid = mywait (pid_to_ptid (signal_pid), &last_status, 0, 0);
+  return program_name;
+}
 
-  /* At this point, the target process, if it exits, is stopped.  Do not call
-     the function target_post_create_inferior if the process has already
-     exited, as the target implementation of the routine may rely on the
-     process being live. */
-  if (last_status.kind != TARGET_WAITKIND_EXITED
-      && last_status.kind != TARGET_WAITKIND_SIGNALLED)
-    {
-      target_post_create_inferior ();
-      current_thread->last_resume_kind = resume_stop;
-      current_thread->last_status = last_status;
-    }
-  else
-    target_mourn_inferior (last_ptid);
+/* See server.h.  */
 
-  return signal_pid;
+gdb_environ *
+get_environ ()
+{
+  return &our_environ;
 }
 
 static int
@@ -436,8 +387,7 @@ handle_btrace_enable_bts (struct thread_
     return "E.Btrace already enabled.";
 
   current_btrace_conf.format = BTRACE_FORMAT_BTS;
-  thread->btrace = target_enable_btrace (thread->entry.id,
-					 &current_btrace_conf);
+  thread->btrace = target_enable_btrace (thread->id, &current_btrace_conf);
   if (thread->btrace == NULL)
     return "E.Could not enable btrace.";
 
@@ -453,8 +403,7 @@ handle_btrace_enable_pt (struct thread_i
     return "E.Btrace already enabled.";
 
   current_btrace_conf.format = BTRACE_FORMAT_PT;
-  thread->btrace = target_enable_btrace (thread->entry.id,
-					 &current_btrace_conf);
+  thread->btrace = target_enable_btrace (thread->id, &current_btrace_conf);
   if (thread->btrace == NULL)
     return "E.Could not enable btrace.";
 
@@ -674,7 +623,7 @@ handle_general_set (char *own_buf)
 	}
 
       process = current_process ();
-      VEC_truncate (int, process->syscalls_to_catch, 0);
+      process->syscalls_to_catch.clear ();
 
       if (enabled)
 	{
@@ -685,13 +634,74 @@ handle_general_set (char *own_buf)
 	      while (*p != '\0')
 		{
 		  p = decode_address_to_semicolon (&sysno, p);
-		  VEC_safe_push (int, process->syscalls_to_catch, (int) sysno);
+		  process->syscalls_to_catch.push_back (sysno);
 		}
 	    }
 	  else
-	    VEC_safe_push (int, process->syscalls_to_catch, ANY_SYSCALL);
+	    process->syscalls_to_catch.push_back (ANY_SYSCALL);
+	}
+
+      write_ok (own_buf);
+      return;
+    }
+
+  if (strcmp (own_buf, "QEnvironmentReset") == 0)
+    {
+      our_environ = gdb_environ::from_host_environ ();
+
+      write_ok (own_buf);
+      return;
+    }
+
+  if (startswith (own_buf, "QEnvironmentHexEncoded:"))
+    {
+      const char *p = own_buf + sizeof ("QEnvironmentHexEncoded:") - 1;
+      /* The final form of the environment variable.  FINAL_VAR will
+	 hold the 'VAR=VALUE' format.  */
+      std::string final_var = hex2str (p);
+      std::string var_name, var_value;
+
+      if (remote_debug)
+	{
+	  debug_printf (_("[QEnvironmentHexEncoded received '%s']\n"), p);
+	  debug_printf (_("[Environment variable to be set: '%s']\n"),
+			final_var.c_str ());
+	  debug_flush ();
+	}
+
+      size_t pos = final_var.find ('=');
+      if (pos == std::string::npos)
+	{
+	  warning (_("Unexpected format for environment variable: '%s'"),
+		   final_var.c_str ());
+	  write_enn (own_buf);
+	  return;
+	}
+
+      var_name = final_var.substr (0, pos);
+      var_value = final_var.substr (pos + 1, std::string::npos);
+
+      our_environ.set (var_name.c_str (), var_value.c_str ());
+
+      write_ok (own_buf);
+      return;
+    }
+
+  if (startswith (own_buf, "QEnvironmentUnset:"))
+    {
+      const char *p = own_buf + sizeof ("QEnvironmentUnset:") - 1;
+      std::string varname = hex2str (p);
+
+      if (remote_debug)
+	{
+	  debug_printf (_("[QEnvironmentUnset received '%s']\n"), p);
+	  debug_printf (_("[Environment variable to be unset: '%s']\n"),
+			varname.c_str ());
+	  debug_flush ();
 	}
 
+      our_environ.unset (varname.c_str ());
+
       write_ok (own_buf);
       return;
     }
@@ -832,6 +842,60 @@ handle_general_set (char *own_buf)
       return;
     }
 
+  if (startswith (own_buf, "QStartupWithShell:"))
+    {
+      const char *value = own_buf + strlen ("QStartupWithShell:");
+
+      if (strcmp (value, "1") == 0)
+	startup_with_shell = true;
+      else if (strcmp (value, "0") == 0)
+	startup_with_shell = false;
+      else
+	{
+	  /* Unknown value.  */
+	  fprintf (stderr, "Unknown value to startup-with-shell: %s\n",
+		   own_buf);
+	  write_enn (own_buf);
+	  return;
+	}
+
+      if (remote_debug)
+	debug_printf (_("[Inferior will %s started with shell]"),
+		      startup_with_shell ? "be" : "not be");
+
+      write_ok (own_buf);
+      return;
+    }
+
+  if (startswith (own_buf, "QSetWorkingDir:"))
+    {
+      const char *p = own_buf + strlen ("QSetWorkingDir:");
+
+      if (*p != '\0')
+	{
+	  std::string path = hex2str (p);
+
+	  set_inferior_cwd (path.c_str ());
+
+	  if (remote_debug)
+	    debug_printf (_("[Set the inferior's current directory to %s]\n"),
+			  path.c_str ());
+	}
+      else
+	{
+	  /* An empty argument means that we should clear out any
+	     previously set cwd for the inferior.  */
+	  set_inferior_cwd (NULL);
+
+	  if (remote_debug)
+	    debug_printf (_("\
+[Unset the inferior's current directory; will use gdbserver's cwd]\n"));
+	}
+      write_ok (own_buf);
+
+      return;
+    }
+
   /* Otherwise we didn't know what packet it was.  Say we didn't
      understand it.  */
   own_buf[0] = 0;
@@ -850,12 +914,14 @@ get_features_xml (const char *annex)
      This variable is set up from the auto-generated
      init_registers_... routine for the current target.  */
 
-  if (desc->xmltarget != NULL && strcmp (annex, "target.xml") == 0)
+  if (strcmp (annex, "target.xml") == 0)
     {
-      if (*desc->xmltarget == '@')
-	return desc->xmltarget + 1;
+      const char *ret = tdesc_get_features_xml ((target_desc*) desc);
+
+      if (*ret == '@')
+	return ret + 1;
       else
-	annex = desc->xmltarget;
+	annex = ret;
     }
 
 #ifdef USE_XML
@@ -930,7 +996,7 @@ gdb_read_memory (CORE_ADDR memaddr, unsi
   res = prepare_to_access_memory ();
   if (res == 0)
     {
-      if (set_desired_thread (1))
+      if (set_desired_thread ())
 	res = read_inferior_memory (memaddr, myaddr, len);
       else
 	res = 1;
@@ -957,7 +1023,7 @@ gdb_write_memory (CORE_ADDR memaddr, con
       ret = prepare_to_access_memory ();
       if (ret == 0)
 	{
-	  if (set_desired_thread (1))
+	  if (set_desired_thread ())
 	    ret = write_inferior_memory (memaddr, myaddr, len);
 	  else
 	    ret = EIO;
@@ -1118,12 +1184,99 @@ handle_search_memory (char *own_buf, int
   free (pattern);
 }
 
-#define require_running(BUF)			\
-  if (!target_running ())			\
-    {						\
-      write_enn (BUF);				\
-      return;					\
+/* Handle the "D" packet.  */
+
+static void
+handle_detach (char *own_buf)
+{
+  require_running_or_return (own_buf);
+
+  int pid;
+
+  if (multi_process)
+    {
+      /* skip 'D;' */
+      pid = strtol (&own_buf[2], NULL, 16);
     }
+  else
+    pid = ptid_get_pid (current_ptid);
+
+  if ((tracing && disconnected_tracing) || any_persistent_commands ())
+    {
+      struct process_info *process = find_process_pid (pid);
+
+      if (process == NULL)
+	{
+	  write_enn (own_buf);
+	  return;
+	}
+
+      if (tracing && disconnected_tracing)
+	fprintf (stderr,
+		 "Disconnected tracing in effect, "
+		 "leaving gdbserver attached to the process\n");
+
+      if (any_persistent_commands ())
+	fprintf (stderr,
+		 "Persistent commands are present, "
+		 "leaving gdbserver attached to the process\n");
+
+      /* Make sure we're in non-stop/async mode, so we we can both
+	 wait for an async socket accept, and handle async target
+	 events simultaneously.  There's also no point either in
+	 having the target stop all threads, when we're going to
+	 pass signals down without informing GDB.  */
+      if (!non_stop)
+	{
+	  if (debug_threads)
+	    debug_printf ("Forcing non-stop mode\n");
+
+	  non_stop = 1;
+	  start_non_stop (1);
+	}
+
+      process->gdb_detached = 1;
+
+      /* Detaching implicitly resumes all threads.  */
+      target_continue_no_signal (minus_one_ptid);
+
+      write_ok (own_buf);
+      return;
+    }
+
+  fprintf (stderr, "Detaching from process %d\n", pid);
+  stop_tracing ();
+  if (detach_inferior (pid) != 0)
+    write_enn (own_buf);
+  else
+    {
+      discard_queued_stop_replies (pid_to_ptid (pid));
+      write_ok (own_buf);
+
+      if (extended_protocol || target_running ())
+	{
+	  /* There is still at least one inferior remaining or
+	     we are in extended mode, so don't terminate gdbserver,
+	     and instead treat this like a normal program exit.  */
+	  last_status.kind = TARGET_WAITKIND_EXITED;
+	  last_status.value.integer = 0;
+	  last_ptid = pid_to_ptid (pid);
+
+	  current_thread = NULL;
+	}
+      else
+	{
+	  putpkt (own_buf);
+	  remote_close ();
+
+	  /* If we are attached, then we can exit.  Otherwise, we
+	     need to hang around doing nothing, until the child is
+	     gone.  */
+	  join_inferior (pid);
+	  exit (0);
+	}
+    }
+}
 
 /* Parse options to --debug-format= and "monitor set debug-format".
    ARG is the text after "--debug-format=" or "monitor set debug-format".
@@ -1301,7 +1454,7 @@ handle_qxfer_auxv (const char *annex,
 /* Handle qXfer:exec-file:read.  */
 
 static int
-handle_qxfer_exec_file (const char *const_annex,
+handle_qxfer_exec_file (const char *annex,
 			gdb_byte *readbuf, const gdb_byte *writebuf,
 			ULONGEST offset, LONGEST len)
 {
@@ -1312,7 +1465,7 @@ handle_qxfer_exec_file (const char *cons
   if (the_target->pid_to_exec_file == NULL || writebuf != NULL)
     return -2;
 
-  if (const_annex[0] == '\0')
+  if (annex[0] == '\0')
     {
       if (current_thread == NULL)
 	return -1;
@@ -1321,11 +1474,7 @@ handle_qxfer_exec_file (const char *cons
     }
   else
     {
-      char *annex = (char *) alloca (strlen (const_annex) + 1);
-
-      strcpy (annex, const_annex);
       annex = unpack_varlen_hex (annex, &pid);
-
       if (annex[0] != '\0')
 	return -1;
     }
@@ -1382,48 +1531,6 @@ handle_qxfer_features (const char *annex
   return len;
 }
 
-/* Worker routine for handle_qxfer_libraries.
-   Add to the length pointed to by ARG a conservative estimate of the
-   length needed to transmit the file name of INF.  */
-
-static void
-accumulate_file_name_length (struct inferior_list_entry *inf, void *arg)
-{
-  struct dll_info *dll = (struct dll_info *) inf;
-  unsigned int *total_len = (unsigned int *) arg;
-
-  /* Over-estimate the necessary memory.  Assume that every character
-     in the library name must be escaped.  */
-  *total_len += 128 + 6 * strlen (dll->name);
-}
-
-/* Worker routine for handle_qxfer_libraries.
-   Emit the XML to describe the library in INF.  */
-
-static void
-emit_dll_description (struct inferior_list_entry *inf, void *arg)
-{
-  struct dll_info *dll = (struct dll_info *) inf;
-  char **p_ptr = (char **) arg;
-  char *p = *p_ptr;
-  char *name;
-
-  strcpy (p, "  <library name=\"");
-  p = p + strlen (p);
-  name = xml_escape_text (dll->name);
-  strcpy (p, name);
-  free (name);
-  p = p + strlen (p);
-  strcpy (p, "\"><segment address=\"");
-  p = p + strlen (p);
-  sprintf (p, "0x%lx", (long) dll->base_addr);
-  p = p + strlen (p);
-  strcpy (p, "\"/></library>\n");
-  p = p + strlen (p);
-
-  *p_ptr = p;
-}
-
 /* Handle qXfer:libraries:read.  */
 
 static int
@@ -1431,43 +1538,29 @@ handle_qxfer_libraries (const char *anne
 			gdb_byte *readbuf, const gdb_byte *writebuf,
 			ULONGEST offset, LONGEST len)
 {
-  unsigned int total_len;
-  char *document, *p;
-
   if (writebuf != NULL)
     return -2;
 
   if (annex[0] != '\0' || current_thread == NULL)
     return -1;
 
-  total_len = 64;
-  for_each_inferior_with_data (&all_dlls, accumulate_file_name_length,
-			       &total_len);
-
-  document = (char *) malloc (total_len);
-  if (document == NULL)
-    return -1;
-
-  strcpy (document, "<library-list version=\"1.0\">\n");
-  p = document + strlen (document);
+  std::string document = "<library-list version=\"1.0\">\n";
 
-  for_each_inferior_with_data (&all_dlls, emit_dll_description, &p);
+  for (const dll_info &dll : all_dlls)
+    document += string_printf
+      ("  <library name=\"%s\"><segment address=\"0x%lx\"/></library>\n",
+       dll.name.c_str (), (long) dll.base_addr);
 
-  strcpy (p, "</library-list>\n");
+  document += "</library-list>\n";
 
-  total_len = strlen (document);
+  if (offset > document.length ())
+    return -1;
 
-  if (offset > total_len)
-    {
-      free (document);
-      return -1;
-    }
+  if (offset + len > document.length ())
+    len = document.length () - offset;
 
-  if (offset + len > total_len)
-    len = total_len - offset;
+  memcpy (readbuf, &document[offset], len);
 
-  memcpy (readbuf, document + offset, len);
-  free (document);
   return len;
 }
 
@@ -1557,15 +1650,16 @@ handle_qxfer_statictrace (const char *an
    Emit the XML to describe the thread of INF.  */
 
 static void
-handle_qxfer_threads_worker (struct inferior_list_entry *inf, void *arg)
+handle_qxfer_threads_worker (thread_info *thread, struct buffer *buffer)
 {
-  struct thread_info *thread = (struct thread_info *) inf;
-  struct buffer *buffer = (struct buffer *) arg;
-  ptid_t ptid = thread_to_gdb_id (thread);
+  ptid_t ptid = ptid_of (thread);
   char ptid_s[100];
   int core = target_core_of_thread (ptid);
   char core_s[21];
   const char *name = target_thread_name (ptid);
+  int handle_len;
+  gdb_byte *handle;
+  bool handle_status = target_thread_handle (ptid, &handle, &handle_len);
 
   write_ptid (ptid_s, ptid);
 
@@ -1580,6 +1674,13 @@ handle_qxfer_threads_worker (struct infe
   if (name != NULL)
     buffer_xml_printf (buffer, " name=\"%s\"", name);
 
+  if (handle_status)
+    {
+      char *handle_s = (char *) alloca (handle_len * 2 + 1);
+      bin2hex (handle, handle_s, handle_len);
+      buffer_xml_printf (buffer, " handle=\"%s\"", handle_s);
+    }
+
   buffer_xml_printf (buffer, "/>\n");
 }
 
@@ -1590,8 +1691,10 @@ handle_qxfer_threads_proper (struct buff
 {
   buffer_grow_str (buffer, "<threads>\n");
 
-  for_each_inferior_with_data (&all_threads, handle_qxfer_threads_worker,
-			       buffer);
+  for_each_thread ([&] (thread_info *thread)
+    {
+      handle_qxfer_threads_worker (thread, buffer);
+    });
 
   buffer_grow_str0 (buffer, "</threads>\n");
 }
@@ -2040,26 +2143,25 @@ supported_btrace_packets (char *buf)
 static void
 handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
 {
-  static struct inferior_list_entry *thread_ptr;
+  static std::list<thread_info *>::const_iterator thread_iter;
 
   /* Reply the current thread id.  */
   if (strcmp ("qC", own_buf) == 0 && !disable_packet_qC)
     {
-      ptid_t gdb_id;
-      require_running (own_buf);
+      ptid_t ptid;
+      require_running_or_return (own_buf);
 
-      if (!ptid_equal (general_thread, null_ptid)
-	  && !ptid_equal (general_thread, minus_one_ptid))
-	gdb_id = general_thread;
+      if (general_thread != null_ptid && general_thread != minus_one_ptid)
+	ptid = general_thread;
       else
 	{
-	  thread_ptr = get_first_inferior (&all_threads);
-	  gdb_id = thread_to_gdb_id ((struct thread_info *)thread_ptr);
+	  thread_iter = all_threads.begin ();
+	  ptid = (*thread_iter)->id;
 	}
 
       sprintf (own_buf, "QC");
       own_buf += 2;
-      write_ptid (own_buf, gdb_id);
+      write_ptid (own_buf, ptid);
       return;
     }
 
@@ -2115,29 +2217,25 @@ handle_query (char *own_buf, int packet_
     {
       if (strcmp ("qfThreadInfo", own_buf) == 0)
 	{
-	  ptid_t gdb_id;
-
-	  require_running (own_buf);
-	  thread_ptr = get_first_inferior (&all_threads);
+	  require_running_or_return (own_buf);
+	  thread_iter = all_threads.begin ();
 
 	  *own_buf++ = 'm';
-	  gdb_id = thread_to_gdb_id ((struct thread_info *)thread_ptr);
-	  write_ptid (own_buf, gdb_id);
-	  thread_ptr = thread_ptr->next;
+	  ptid_t ptid = (*thread_iter)->id;
+	  write_ptid (own_buf, ptid);
+	  thread_iter++;
 	  return;
 	}
 
       if (strcmp ("qsThreadInfo", own_buf) == 0)
 	{
-	  ptid_t gdb_id;
-
-	  require_running (own_buf);
-	  if (thread_ptr != NULL)
+	  require_running_or_return (own_buf);
+	  if (thread_iter != all_threads.end ())
 	    {
 	      *own_buf++ = 'm';
-	      gdb_id = thread_to_gdb_id ((struct thread_info *)thread_ptr);
-	      write_ptid (own_buf, gdb_id);
-	      thread_ptr = thread_ptr->next;
+	      ptid_t ptid = (*thread_iter)->id;
+	      write_ptid (own_buf, ptid);
+	      thread_iter++;
 	      return;
 	    }
 	  else
@@ -2153,7 +2251,7 @@ handle_query (char *own_buf, int packet_
     {
       CORE_ADDR text, data;
 
-      require_running (own_buf);
+      require_running_or_return (own_buf);
       if (the_target->read_offsets (&text, &data))
 	sprintf (own_buf, "Text=%lX;Data=%lX;Bss=%lX",
 		 (long)text, (long)data, (long)data);
@@ -2268,7 +2366,10 @@ handle_query (char *own_buf, int packet_
 	}
 
       sprintf (own_buf,
-	       "PacketSize=%x;QPassSignals+;QProgramSignals+",
+	       "PacketSize=%x;QPassSignals+;QProgramSignals+;"
+	       "QStartupWithShell+;QEnvironmentHexEncoded+;"
+	       "QEnvironmentReset+;QEnvironmentUnset+;"
+	       "QSetWorkingDir+",
 	       PBUFSIZ - 1);
 
       if (target_supports_catch_syscall ())
@@ -2388,7 +2489,7 @@ handle_query (char *own_buf, int packet_
       int i, err;
       ptid_t ptid = null_ptid;
 
-      require_running (own_buf);
+      require_running_or_return (own_buf);
 
       for (i = 0; i < 3; i++)
 	{
@@ -2448,7 +2549,7 @@ handle_query (char *own_buf, int packet_
   if (the_target->get_tib_address != NULL
       && startswith (own_buf, "qGetTIBAddr:"))
     {
-      char *annex;
+      const char *annex;
       int n;
       CORE_ADDR tlb;
       ptid_t ptid = read_ptid (own_buf + 12, &annex);
@@ -2501,7 +2602,7 @@ handle_query (char *own_buf, int packet_
 
   if (startswith (own_buf, "qSearch:memory:"))
     {
-      require_running (own_buf);
+      require_running_or_return (own_buf);
       handle_search_memory (own_buf, packet_len);
       return;
     }
@@ -2514,12 +2615,11 @@ handle_query (char *own_buf, int packet_
       if (own_buf[sizeof ("qAttached") - 1])
 	{
 	  int pid = strtoul (own_buf + sizeof ("qAttached:") - 1, NULL, 16);
-	  process = (struct process_info *)
-	    find_inferior_id (&all_processes, pid_to_ptid (pid));
+	  process = find_process_pid (pid);
 	}
       else
 	{
-	  require_running (own_buf);
+	  require_running_or_return (own_buf);
 	  process = current_process ();
 	}
 
@@ -2536,12 +2636,12 @@ handle_query (char *own_buf, int packet_
   if (startswith (own_buf, "qCRC:"))
     {
       /* CRC check (compare-section).  */
-      char *comma;
+      const char *comma;
       ULONGEST base;
       int len;
       unsigned long long crc;
 
-      require_running (own_buf);
+      require_running_or_return (own_buf);
       comma = unpack_varlen_hex (own_buf + 5, &base);
       if (*comma++ != ',')
 	{
@@ -2578,48 +2678,33 @@ static void resume (struct thread_resume
 typedef int (visit_actioned_threads_callback_ftype)
   (const struct thread_resume *, struct thread_info *);
 
-/* Struct to pass data to visit_actioned_threads.  */
-
-struct visit_actioned_threads_data
-{
-  const struct thread_resume *actions;
-  size_t num_actions;
-  visit_actioned_threads_callback_ftype *callback;
-};
-
 /* Call CALLBACK for any thread to which ACTIONS applies to.  Returns
    true if CALLBACK returns true.  Returns false if no matching thread
    is found or CALLBACK results false.
-   Note: This function is itself a callback for find_inferior.  */
+   Note: This function is itself a callback for find_thread.  */
 
-static int
-visit_actioned_threads (struct inferior_list_entry *entry, void *datap)
+static bool
+visit_actioned_threads (thread_info *thread,
+			const struct thread_resume *actions,
+			size_t num_actions,
+			visit_actioned_threads_callback_ftype *callback)
 {
-  struct visit_actioned_threads_data *data
-    = (struct visit_actioned_threads_data *) datap;
-  const struct thread_resume *actions = data->actions;
-  size_t num_actions = data->num_actions;
-  visit_actioned_threads_callback_ftype *callback = data->callback;
-  size_t i;
-
-  for (i = 0; i < num_actions; i++)
+  for (size_t i = 0; i < num_actions; i++)
     {
       const struct thread_resume *action = &actions[i];
 
       if (ptid_equal (action->thread, minus_one_ptid)
-	  || ptid_equal (action->thread, entry->id)
+	  || ptid_equal (action->thread, thread->id)
 	  || ((ptid_get_pid (action->thread)
-	       == ptid_get_pid (entry->id))
+	       == thread->id.pid ())
 	      && ptid_get_lwp (action->thread) == -1))
 	{
-	  struct thread_info *thread = (struct thread_info *) entry;
-
 	  if ((*callback) (action, thread))
-	    return 1;
+	    return true;
 	}
     }
 
-  return 0;
+  return false;
 }
 
 /* Callback for visit_actioned_threads.  If the thread has a pending
@@ -2634,7 +2719,7 @@ handle_pending_status (const struct thre
       thread->status_pending_p = 0;
 
       last_status = thread->last_status;
-      last_ptid = thread->entry.id;
+      last_ptid = thread->id;
       prepare_resume_reply (own_buf, last_ptid, &last_status);
       return 1;
     }
@@ -2645,7 +2730,7 @@ handle_pending_status (const struct thre
 static void
 handle_v_cont (char *own_buf)
 {
-  char *p, *q;
+  const char *p;
   int n = 0, i = 0;
   struct thread_resume *resume_info;
   struct thread_resume default_action { null_ptid };
@@ -2684,8 +2769,8 @@ handle_v_cont (char *own_buf)
 
       if (p[0] == 'S' || p[0] == 'C')
 	{
-	  int sig;
-	  sig = strtol (p + 1, &q, 16);
+	  char *q;
+	  int sig = strtol (p + 1, &q, 16);
 	  if (p == q)
 	    goto err;
 	  p = q;
@@ -2722,6 +2807,7 @@ handle_v_cont (char *own_buf)
 	}
       else if (p[0] == ':')
 	{
+	  const char *q;
 	  ptid_t ptid = read_ptid (p + 1, &q);
 
 	  if (p == q)
@@ -2760,12 +2846,14 @@ resume (struct thread_resume *actions, s
 	 one with a pending status to report.  If so, skip actually
 	 resuming/stopping and report the pending event
 	 immediately.  */
-      struct visit_actioned_threads_data data;
 
-      data.actions = actions;
-      data.num_actions = num_actions;
-      data.callback = handle_pending_status;
-      if (find_inferior (&all_threads, visit_actioned_threads, &data) != NULL)
+      thread_info *thread_with_status = find_thread ([&] (thread_info *thread)
+	{
+	  return visit_actioned_threads (thread, actions, num_actions,
+					 handle_pending_status);
+	});
+
+      if (thread_with_status != NULL)
 	return;
 
       enable_async_io ();
@@ -2848,6 +2936,7 @@ handle_v_run (char *own_buf)
 {
   char *p, *next_p;
   std::vector<char *> new_argv;
+  char *new_program_name = NULL;
   int i, new_argc;
 
   new_argc = 0;
@@ -2866,42 +2955,94 @@ handle_v_run (char *own_buf)
       if (i == 0 && p == next_p)
 	{
 	  /* No program specified.  */
-	  new_argv.push_back (NULL);
+	  new_program_name = NULL;
+	}
+      else if (p == next_p)
+	{
+	  /* Empty argument.  */
+	  new_argv.push_back (xstrdup ("''"));
 	}
       else
 	{
 	  size_t len = (next_p - p) / 2;
+	  /* ARG is the unquoted argument received via the RSP.  */
 	  char *arg = (char *) xmalloc (len + 1);
+	  /* FULL_ARGS will contain the quoted version of ARG.  */
+	  char *full_arg = (char *) xmalloc ((len + 1) * 2);
+	  /* These are pointers used to navigate the strings above.  */
+	  char *tmp_arg = arg;
+	  char *tmp_full_arg = full_arg;
+	  int need_quote = 0;
 
 	  hex2bin (p, (gdb_byte *) arg, len);
 	  arg[len] = '\0';
-	  new_argv.push_back (arg);
-	}
 
+	  while (*tmp_arg != '\0')
+	    {
+	      switch (*tmp_arg)
+		{
+		case '\n':
+		  /* Quote \n.  */
+		  *tmp_full_arg = '\'';
+		  ++tmp_full_arg;
+		  need_quote = 1;
+		  break;
+
+		case '\'':
+		  /* Quote single quote.  */
+		  *tmp_full_arg = '\\';
+		  ++tmp_full_arg;
+		  break;
+
+		default:
+		  break;
+		}
+
+	      *tmp_full_arg = *tmp_arg;
+	      ++tmp_full_arg;
+	      ++tmp_arg;
+	    }
+
+	  if (need_quote)
+	    *tmp_full_arg++ = '\'';
+
+	  /* Finish FULL_ARG and push it into the vector containing
+	     the argv.  */
+	  *tmp_full_arg = '\0';
+	  if (i == 0)
+	    new_program_name = full_arg;
+	  else
+	    new_argv.push_back (full_arg);
+	  xfree (arg);
+	}
       if (*next_p)
 	next_p++;
     }
   new_argv.push_back (NULL);
 
-  if (new_argv[0] == NULL)
+  if (new_program_name == NULL)
     {
       /* GDB didn't specify a program to run.  Use the program from the
 	 last run with the new argument list.  */
-      if (program_argv.empty ())
+      if (program_name == NULL)
 	{
 	  write_enn (own_buf);
 	  free_vector_argv (new_argv);
 	  return 0;
 	}
-
-      new_argv.push_back (xstrdup (program_argv[0]));
+    }
+  else
+    {
+      xfree (program_name);
+      program_name = new_program_name;
     }
 
   /* Free the old argv and install the new one.  */
-  free_vector_argv (program_argv);
-  program_argv = new_argv;
+  free_vector_argv (program_args);
+  program_args = new_argv;
+
+  create_inferior (program_name, program_args);
 
-  start_inferior (&program_argv[0]);
   if (last_status.kind == TARGET_WAITKIND_STOPPED)
     {
       prepare_resume_reply (own_buf, last_ptid, &last_status);
@@ -3076,21 +3217,19 @@ myresume (char *own_buf, int step, int s
   resume (resume_info, n);
 }
 
-/* Callback for for_each_inferior.  Make a new stop reply for each
+/* Callback for for_each_thread.  Make a new stop reply for each
    stopped thread.  */
 
-static int
-queue_stop_reply_callback (struct inferior_list_entry *entry, void *arg)
+static void
+queue_stop_reply_callback (thread_info *thread)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
-
   /* For now, assume targets that don't have this callback also don't
      manage the thread's last_status field.  */
   if (the_target->thread_stopped == NULL)
     {
       struct vstop_notif *new_notif = XNEW (struct vstop_notif);
 
-      new_notif->ptid = entry->id;
+      new_notif->ptid = thread->id;
       new_notif->status = thread->last_status;
       /* Pass the last stop reply back to GDB, but don't notify
 	 yet.  */
@@ -3103,25 +3242,21 @@ queue_stop_reply_callback (struct inferi
 	{
 	  if (debug_threads)
 	    {
-	      char *status_string
+	      std::string status_string
 		= target_waitstatus_to_string (&thread->last_status);
 
 	      debug_printf ("Reporting thread %s as already stopped with %s\n",
-			    target_pid_to_str (entry->id),
-			    status_string);
-
-	      xfree (status_string);
+			    target_pid_to_str (thread->id),
+			    status_string.c_str ());
 	    }
 
 	  gdb_assert (thread->last_status.kind != TARGET_WAITKIND_IGNORE);
 
 	  /* Pass the last stop reply back to GDB, but don't notify
 	     yet.  */
-	  queue_stop_reply (entry->id, &thread->last_status);
+	  queue_stop_reply (thread->id, &thread->last_status);
 	}
     }
-
-  return 0;
 }
 
 /* Set this inferior threads's state as "want-stopped".  We won't
@@ -3129,10 +3264,8 @@ queue_stop_reply_callback (struct inferi
    it.  */
 
 static void
-gdb_wants_thread_stopped (struct inferior_list_entry *entry)
+gdb_wants_thread_stopped (thread_info *thread)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
-
   thread->last_resume_kind = resume_stop;
 
   if (thread->last_status.kind == TARGET_WAITKIND_IGNORE)
@@ -3149,38 +3282,15 @@ gdb_wants_thread_stopped (struct inferio
 static void
 gdb_wants_all_threads_stopped (void)
 {
-  for_each_inferior (&all_threads, gdb_wants_thread_stopped);
-}
-
-/* Clear the gdb_detached flag of every process.  */
-
-static void
-gdb_reattached_process (struct inferior_list_entry *entry)
-{
-  struct process_info *process = (struct process_info *) entry;
-
-  process->gdb_detached = 0;
+  for_each_thread (gdb_wants_thread_stopped);
 }
 
-/* Callback for for_each_inferior.  Clear the thread's pending status
-   flag.  */
-
-static void
-clear_pending_status_callback (struct inferior_list_entry *entry)
-{
-  struct thread_info *thread = (struct thread_info *) entry;
-
-  thread->status_pending_p = 0;
-}
-
-/* Callback for for_each_inferior.  If the thread is stopped with an
+/* Callback for for_each_thread.  If the thread is stopped with an
    interesting event, mark it as having a pending event.  */
 
 static void
-set_pending_status_callback (struct inferior_list_entry *entry)
+set_pending_status_callback (thread_info *thread)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
-
   if (thread->last_status.kind != TARGET_WAITKIND_STOPPED
       || (thread->last_status.value.sig != GDB_SIGNAL_0
 	  /* A breakpoint, watchpoint or finished step from a previous
@@ -3193,24 +3303,15 @@ set_pending_status_callback (struct infe
     thread->status_pending_p = 1;
 }
 
-/* Callback for find_inferior.  Return true if ENTRY (a thread) has a
-   pending status to report to GDB.  */
-
-static int
-find_status_pending_thread_callback (struct inferior_list_entry *entry, void *data)
-{
-  struct thread_info *thread = (struct thread_info *) entry;
-
-  return thread->status_pending_p;
-}
-
 /* Status handler for the '?' packet.  */
 
 static void
 handle_status (char *own_buf)
 {
   /* GDB is connected, don't forward events to the target anymore.  */
-  for_each_inferior (&all_processes, gdb_reattached_process);
+  for_each_process ([] (process_info *process) {
+    process->gdb_detached = 0;
+  });
 
   /* In non-stop mode, we must send a stop reply for each stopped
      thread.  In all-stop mode, just send one for the first stopped
@@ -3218,7 +3319,7 @@ handle_status (char *own_buf)
 
   if (non_stop)
     {
-      find_inferior (&all_threads, queue_stop_reply_callback, NULL);
+      for_each_thread (queue_stop_reply_callback);
 
       /* The first is sent immediatly.  OK is sent if there is no
 	 stopped thread, which is the same handling of the vStopped
@@ -3227,7 +3328,7 @@ handle_status (char *own_buf)
     }
   else
     {
-      struct inferior_list_entry *thread = NULL;
+      thread_info *thread = NULL;
 
       pause_all (0);
       stabilize_threads ();
@@ -3239,25 +3340,27 @@ handle_status (char *own_buf)
 	 reporting now pending.  They'll be reported the next time the
 	 threads are resumed.  Start by marking all interesting events
 	 as pending.  */
-      for_each_inferior (&all_threads, set_pending_status_callback);
+      for_each_thread (set_pending_status_callback);
 
       /* Prefer the last thread that reported an event to GDB (even if
 	 that was a GDB_SIGNAL_TRAP).  */
       if (last_status.kind != TARGET_WAITKIND_IGNORE
 	  && last_status.kind != TARGET_WAITKIND_EXITED
 	  && last_status.kind != TARGET_WAITKIND_SIGNALLED)
-	thread = find_inferior_id (&all_threads, last_ptid);
+	thread = find_thread_ptid (last_ptid);
 
       /* If the last event thread is not found for some reason, look
 	 for some other thread that might have an event to report.  */
       if (thread == NULL)
-	thread = find_inferior (&all_threads,
-				find_status_pending_thread_callback, NULL);
+	thread = find_thread ([] (thread_info *thread)
+	  {
+	    return thread->status_pending_p;
+	  });
 
       /* If we're still out of luck, simply pick the first thread in
 	 the thread list.  */
       if (thread == NULL)
-	thread = get_first_inferior (&all_threads);
+	thread = get_first_thread ();
 
       if (thread != NULL)
 	{
@@ -3270,10 +3373,10 @@ handle_status (char *own_buf)
 	  /* GDB assumes the current thread is the thread we're
 	     reporting the status for.  */
 	  general_thread = thread->id;
-	  set_desired_thread (1);
+	  set_desired_thread ();
 
 	  gdb_assert (tp->last_status.kind != TARGET_WAITKIND_IGNORE);
-	  prepare_resume_reply (own_buf, tp->entry.id, &tp->last_status);
+	  prepare_resume_reply (own_buf, tp->id, &tp->last_status);
 	}
       else
 	strcpy (own_buf, "W00");
@@ -3284,7 +3387,7 @@ static void
 gdbserver_version (void)
 {
   printf ("GNU gdbserver %s%s\n"
-	  "Copyright (C) 2017 Free Software Foundation, Inc.\n"
+	  "Copyright (C) 2018 Free Software Foundation, Inc.\n"
 	  "gdbserver is free software, covered by the "
 	  "GNU General Public License.\n"
 	  "This gdbserver was configured as \"%s\"\n",
@@ -3321,6 +3424,13 @@ gdbserver_usage (FILE *stream)
 	   "  --no-disable-randomization\n"
 	   "                        Don't disable address space randomization when\n"
 	   "                        starting PROG.\n"
+	   "  --startup-with-shell\n"
+	   "                        Start PROG using a shell.  I.e., execs a shell that\n"
+	   "                        then execs PROG.  (default)\n"
+	   "  --no-startup-with-shell\n"
+	   "                        Exec PROG directly instead of using a shell.\n"
+	   "                        Disables argument globbing and variable substitution\n"
+	   "                        on UNIX-like systems.\n"
 	   "\n"
 	   "Debug options:\n"
 	   "\n"
@@ -3356,85 +3466,15 @@ gdbserver_show_disableable (FILE *stream
 	   "  threads     \tAll of the above\n");
 }
 
-
-#undef require_running
-#define require_running(BUF)			\
-  if (!target_running ())			\
-    {						\
-      write_enn (BUF);				\
-      break;					\
-    }
-
-static int
-first_thread_of (struct inferior_list_entry *entry, void *args)
-{
-  int pid = * (int *) args;
-
-  if (ptid_get_pid (entry->id) == pid)
-    return 1;
-
-  return 0;
-}
-
 static void
-kill_inferior_callback (struct inferior_list_entry *entry)
+kill_inferior_callback (process_info *process)
 {
-  struct process_info *process = (struct process_info *) entry;
-  int pid = ptid_get_pid (process->entry.id);
+  int pid = process->pid;
 
   kill_inferior (pid);
   discard_queued_stop_replies (pid_to_ptid (pid));
 }
 
-/* Callback for for_each_inferior to detach or kill the inferior,
-   depending on whether we attached to it or not.
-   We inform the user whether we're detaching or killing the process
-   as this is only called when gdbserver is about to exit.  */
-
-static void
-detach_or_kill_inferior_callback (struct inferior_list_entry *entry)
-{
-  struct process_info *process = (struct process_info *) entry;
-  int pid = ptid_get_pid (process->entry.id);
-
-  if (process->attached)
-    detach_inferior (pid);
-  else
-    kill_inferior (pid);
-
-  discard_queued_stop_replies (pid_to_ptid (pid));
-}
-
-/* for_each_inferior callback for detach_or_kill_for_exit to print
-   the pids of started inferiors.  */
-
-static void
-print_started_pid (struct inferior_list_entry *entry)
-{
-  struct process_info *process = (struct process_info *) entry;
-
-  if (! process->attached)
-    {
-      int pid = ptid_get_pid (process->entry.id);
-      fprintf (stderr, " %d", pid);
-    }
-}
-
-/* for_each_inferior callback for detach_or_kill_for_exit to print
-   the pids of attached inferiors.  */
-
-static void
-print_attached_pid (struct inferior_list_entry *entry)
-{
-  struct process_info *process = (struct process_info *) entry;
-
-  if (process->attached)
-    {
-      int pid = ptid_get_pid (process->entry.id);
-      fprintf (stderr, " %d", pid);
-    }
-}
-
 /* Call this when exiting gdbserver with possible inferiors that need
    to be killed or detached from.  */
 
@@ -3449,19 +3489,37 @@ detach_or_kill_for_exit (void)
   if (have_started_inferiors_p ())
     {
       fprintf (stderr, "Killing process(es):");
-      for_each_inferior (&all_processes, print_started_pid);
+
+      for_each_process ([] (process_info *process) {
+	if (!process->attached)
+	  fprintf (stderr, " %d", process->pid);
+      });
+
       fprintf (stderr, "\n");
     }
   if (have_attached_inferiors_p ())
     {
       fprintf (stderr, "Detaching process(es):");
-      for_each_inferior (&all_processes, print_attached_pid);
+
+      for_each_process ([] (process_info *process) {
+	if (process->attached)
+	  fprintf (stderr, " %d", process->pid);
+      });
+
       fprintf (stderr, "\n");
     }
 
   /* Now we can kill or detach the inferiors.  */
+  for_each_process ([] (process_info *process) {
+    int pid = process->pid;
 
-  for_each_inferior (&all_processes, detach_or_kill_inferior_callback);
+    if (process->attached)
+      detach_inferior (pid);
+    else
+      kill_inferior (pid);
+
+    discard_queued_stop_replies (pid_to_ptid (pid));
+  });
 }
 
 /* Value that will be passed to exit(3) when gdbserver exits.  */
@@ -3501,6 +3559,10 @@ captured_main (int argc, char *argv[])
   volatile int multi_mode = 0;
   volatile int attach = 0;
   int was_running;
+  bool selftest = false;
+#if GDB_SELF_TEST
+  const char *selftest_filter = NULL;
+#endif
 
   while (*next_arg != NULL && **next_arg == '-')
     {
@@ -3527,10 +3589,17 @@ captured_main (int argc, char *argv[])
 	  tmp = next_arg;
 	  while (*next_arg != NULL && strcmp (*next_arg, "--") != 0)
 	    {
-	      wrapper_argv.push_back (*next_arg);
+	      wrapper_argv += *next_arg;
+	      wrapper_argv += ' ';
 	      next_arg++;
 	    }
 
+	  if (!wrapper_argv.empty ())
+	    {
+	      /* Erase the last whitespace.  */
+	      wrapper_argv.erase (wrapper_argv.end () - 1);
+	    }
+
 	  if (next_arg == tmp || *next_arg == NULL)
 	    {
 	      gdbserver_usage (stderr);
@@ -3606,8 +3675,21 @@ captured_main (int argc, char *argv[])
 	disable_randomization = 1;
       else if (strcmp (*next_arg, "--no-disable-randomization") == 0)
 	disable_randomization = 0;
+      else if (strcmp (*next_arg, "--startup-with-shell") == 0)
+	startup_with_shell = true;
+      else if (strcmp (*next_arg, "--no-startup-with-shell") == 0)
+	startup_with_shell = false;
       else if (strcmp (*next_arg, "--once") == 0)
 	run_once = 1;
+      else if (strcmp (*next_arg, "--selftest") == 0)
+	selftest = true;
+      else if (startswith (*next_arg, "--selftest="))
+	{
+	  selftest = true;
+#if GDB_SELF_TEST
+	  selftest_filter = *next_arg + strlen ("--selftest=");
+#endif
+	}
       else
 	{
 	  fprintf (stderr, "Unknown argument: %s\n", *next_arg);
@@ -3623,7 +3705,8 @@ captured_main (int argc, char *argv[])
       port = *next_arg;
       next_arg++;
     }
-  if (port == NULL || (!attach && !multi_mode && *next_arg == NULL))
+  if ((port == NULL || (!attach && !multi_mode && *next_arg == NULL))
+       && !selftest)
     {
       gdbserver_usage (stderr);
       exit (1);
@@ -3633,13 +3716,14 @@ captured_main (int argc, char *argv[])
      opened by remote_prepare.  */
   notice_open_fds ();
 
-  save_original_signals_state ();
+  save_original_signals_state (false);
 
   /* We need to know whether the remote connection is stdio before
      starting the inferior.  Inferiors created in this scenario have
      stdin,stdout redirected.  So do this here before we call
      start_inferior.  */
-  remote_prepare (port);
+  if (port != NULL)
+    remote_prepare (port);
 
   bad_attach = 0;
   pid = 0;
@@ -3666,8 +3750,12 @@ captured_main (int argc, char *argv[])
       exit (1);
     }
 
+  /* Gather information about the environment.  */
+  our_environ = gdb_environ::from_host_environ ();
+
   initialize_async_io ();
   initialize_low ();
+  have_job_control ();
   initialize_event_loop ();
   if (target_supports_tracepoints ())
     initialize_tracepoint ();
@@ -3676,17 +3764,28 @@ captured_main (int argc, char *argv[])
   own_buf = (char *) xmalloc (PBUFSIZ + 1);
   mem_buf = (unsigned char *) xmalloc (PBUFSIZ);
 
+  if (selftest)
+    {
+#if GDB_SELF_TEST
+      selftests::run_tests (selftest_filter);
+#else
+      printf (_("Selftests are not available in a non-development build.\n"));
+#endif
+      throw_quit ("Quit");
+    }
+
   if (pid == 0 && *next_arg != NULL)
     {
       int i, n;
 
       n = argc - (next_arg - argv);
-      for (i = 0; i < n; i++)
-	program_argv.push_back (xstrdup (next_arg[i]));
-      program_argv.push_back (NULL);
+      program_name = xstrdup (next_arg[0]);
+      for (i = 1; i < n; i++)
+	program_args.push_back (xstrdup (next_arg[i]));
+      program_args.push_back (NULL);
 
       /* Wait till we are at first instruction in program.  */
-      start_inferior (&program_argv[0]);
+      create_inferior (program_name, program_args);
 
       /* We are now (hopefully) stopped at the first instruction of
 	 the target process.  This assumes that the target process was
@@ -3770,8 +3869,10 @@ captured_main (int argc, char *argv[])
 	     (by the same GDB instance or another) will refresh all its
 	     state from scratch.  */
 	  discard_queued_stop_replies (minus_one_ptid);
-	  for_each_inferior (&all_threads,
-			     clear_pending_status_callback);
+	  for_each_thread ([] (thread_info *thread)
+	    {
+	      thread->status_pending_p = 0;
+	    });
 
 	  if (tracing)
 	    {
@@ -3851,9 +3952,9 @@ main (int argc, char *argv[])
    after the last processed option.  */
 
 static void
-process_point_options (struct gdb_breakpoint *bp, char **packet)
+process_point_options (struct gdb_breakpoint *bp, const char **packet)
 {
-  char *dataptr = *packet;
+  const char *dataptr = *packet;
   int persist;
 
   /* Check if data has the correct format.  */
@@ -3904,13 +4005,10 @@ process_point_options (struct gdb_breakp
 static int
 process_serial_event (void)
 {
-  char ch;
-  int i = 0;
   int signal;
   unsigned int len;
   int res;
   CORE_ADDR mem_addr;
-  int pid;
   unsigned char sig;
   int packet_len;
   int new_packet_len = -1;
@@ -3927,8 +4025,7 @@ process_serial_event (void)
     }
   response_needed = 1;
 
-  i = 0;
-  ch = own_buf[i++];
+  char ch = own_buf[0];
   switch (ch)
     {
     case 'q':
@@ -3938,91 +4035,7 @@ process_serial_event (void)
       handle_general_set (own_buf);
       break;
     case 'D':
-      require_running (own_buf);
-
-      if (multi_process)
-	{
-	  i++; /* skip ';' */
-	  pid = strtol (&own_buf[i], NULL, 16);
-	}
-      else
-	pid = ptid_get_pid (current_ptid);
-
-      if ((tracing && disconnected_tracing) || any_persistent_commands ())
-	{
-	  struct process_info *process = find_process_pid (pid);
-
-	  if (process == NULL)
-	    {
-	      write_enn (own_buf);
-	      break;
-	    }
-
-	  if (tracing && disconnected_tracing)
-	    fprintf (stderr,
-		     "Disconnected tracing in effect, "
-		     "leaving gdbserver attached to the process\n");
-
-	  if (any_persistent_commands ())
-	    fprintf (stderr,
-		     "Persistent commands are present, "
-		     "leaving gdbserver attached to the process\n");
-
-	  /* Make sure we're in non-stop/async mode, so we we can both
-	     wait for an async socket accept, and handle async target
-	     events simultaneously.  There's also no point either in
-	     having the target stop all threads, when we're going to
-	     pass signals down without informing GDB.  */
-	  if (!non_stop)
-	    {
-	      if (debug_threads)
-		debug_printf ("Forcing non-stop mode\n");
-
-	      non_stop = 1;
-	      start_non_stop (1);
-	    }
-
-	  process->gdb_detached = 1;
-
-	  /* Detaching implicitly resumes all threads.  */
-	  target_continue_no_signal (minus_one_ptid);
-
-	  write_ok (own_buf);
-	  break; /* from switch/case */
-	}
-
-      fprintf (stderr, "Detaching from process %d\n", pid);
-      stop_tracing ();
-      if (detach_inferior (pid) != 0)
-	write_enn (own_buf);
-      else
-	{
-	  discard_queued_stop_replies (pid_to_ptid (pid));
-	  write_ok (own_buf);
-
-	  if (extended_protocol || target_running ())
-	    {
-	      /* There is still at least one inferior remaining or
-		 we are in extended mode, so don't terminate gdbserver,
-		 and instead treat this like a normal program exit.  */
-	      last_status.kind = TARGET_WAITKIND_EXITED;
-	      last_status.value.integer = 0;
-	      last_ptid = pid_to_ptid (pid);
-
-	      current_thread = NULL;
-	    }
-	  else
-	    {
-	      putpkt (own_buf);
-	      remote_close ();
-
-	      /* If we are attached, then we can exit.  Otherwise, we
-		 need to hang around doing nothing, until the child is
-		 gone.  */
-	      join_inferior (pid);
-	      exit (0);
-	    }
-	}
+      handle_detach (own_buf);
       break;
     case '!':
       extended_protocol = 1;
@@ -4034,38 +4047,29 @@ process_serial_event (void)
     case 'H':
       if (own_buf[1] == 'c' || own_buf[1] == 'g' || own_buf[1] == 's')
 	{
-	  ptid_t gdb_id, thread_id;
-	  int pid;
-
-	  require_running (own_buf);
-
-	  gdb_id = read_ptid (&own_buf[2], NULL);
+	  require_running_or_break (own_buf);
 
-	  pid = ptid_get_pid (gdb_id);
+	  ptid_t thread_id = read_ptid (&own_buf[2], NULL);
 
-	  if (ptid_equal (gdb_id, null_ptid)
-	      || ptid_equal (gdb_id, minus_one_ptid))
+	  if (thread_id == null_ptid || thread_id == minus_one_ptid)
 	    thread_id = null_ptid;
-	  else if (pid != 0
-		   && ptid_equal (pid_to_ptid (pid),
-				  gdb_id))
+	  else if (thread_id.is_pid ())
 	    {
-	      struct thread_info *thread =
-		(struct thread_info *) find_inferior (&all_threads,
-						      first_thread_of,
-						      &pid);
-	      if (!thread)
+	      /* The ptid represents a pid.  */
+	      thread_info *thread = find_any_thread_of_pid (thread_id.pid ());
+
+	      if (thread == NULL)
 		{
 		  write_enn (own_buf);
 		  break;
 		}
 
-	      thread_id = thread->entry.id;
+	      thread_id = thread->id;
 	    }
 	  else
 	    {
-	      thread_id = gdb_id_to_thread_id (gdb_id);
-	      if (ptid_equal (thread_id, null_ptid))
+	      /* The ptid represents a lwp/tid.  */
+	      if (find_thread_ptid (thread_id) == NULL)
 		{
 		  write_enn (own_buf);
 		  break;
@@ -4079,16 +4083,14 @@ process_serial_event (void)
 		  /* GDB is telling us to choose any thread.  Check if
 		     the currently selected thread is still valid. If
 		     it is not, select the first available.  */
-		  struct thread_info *thread =
-		    (struct thread_info *) find_inferior_id (&all_threads,
-							     general_thread);
+		  thread_info *thread = find_thread_ptid (general_thread);
 		  if (thread == NULL)
 		    thread = get_first_thread ();
-		  thread_id = thread->entry.id;
+		  thread_id = thread->id;
 		}
 
 	      general_thread = thread_id;
-	      set_desired_thread (1);
+	      set_desired_thread ();
 	      gdb_assert (current_thread != NULL);
 	    }
 	  else if (own_buf[1] == 'c')
@@ -4104,7 +4106,7 @@ process_serial_event (void)
 	}
       break;
     case 'g':
-      require_running (own_buf);
+      require_running_or_break (own_buf);
       if (current_traceframe >= 0)
 	{
 	  struct regcache *regcache
@@ -4121,7 +4123,7 @@ process_serial_event (void)
 	{
 	  struct regcache *regcache;
 
-	  if (!set_desired_thread (1))
+	  if (!set_desired_thread ())
 	    write_enn (own_buf);
 	  else
 	    {
@@ -4131,14 +4133,14 @@ process_serial_event (void)
 	}
       break;
     case 'G':
-      require_running (own_buf);
+      require_running_or_break (own_buf);
       if (current_traceframe >= 0)
 	write_enn (own_buf);
       else
 	{
 	  struct regcache *regcache;
 
-	  if (!set_desired_thread (1))
+	  if (!set_desired_thread ())
 	    write_enn (own_buf);
 	  else
 	    {
@@ -4149,7 +4151,7 @@ process_serial_event (void)
 	}
       break;
     case 'm':
-      require_running (own_buf);
+      require_running_or_break (own_buf);
       decode_m_packet (&own_buf[1], &mem_addr, &len);
       res = gdb_read_memory (mem_addr, mem_buf, len);
       if (res < 0)
@@ -4158,7 +4160,7 @@ process_serial_event (void)
 	bin2hex (mem_buf, own_buf, res);
       break;
     case 'M':
-      require_running (own_buf);
+      require_running_or_break (own_buf);
       decode_M_packet (&own_buf[1], &mem_addr, &len, &mem_buf);
       if (gdb_write_memory (mem_addr, mem_buf, len) == 0)
 	write_ok (own_buf);
@@ -4166,7 +4168,7 @@ process_serial_event (void)
 	write_enn (own_buf);
       break;
     case 'X':
-      require_running (own_buf);
+      require_running_or_break (own_buf);
       if (decode_X_packet (&own_buf[1], packet_len - 1,
 			   &mem_addr, &len, &mem_buf) < 0
 	  || gdb_write_memory (mem_addr, mem_buf, len) != 0)
@@ -4175,7 +4177,7 @@ process_serial_event (void)
 	write_ok (own_buf);
       break;
     case 'C':
-      require_running (own_buf);
+      require_running_or_break (own_buf);
       hex2bin (own_buf + 1, &sig, 1);
       if (gdb_signal_to_host_p ((enum gdb_signal) sig))
 	signal = gdb_signal_to_host ((enum gdb_signal) sig);
@@ -4184,7 +4186,7 @@ process_serial_event (void)
       myresume (own_buf, 0, signal);
       break;
     case 'S':
-      require_running (own_buf);
+      require_running_or_break (own_buf);
       hex2bin (own_buf + 1, &sig, 1);
       if (gdb_signal_to_host_p ((enum gdb_signal) sig))
 	signal = gdb_signal_to_host ((enum gdb_signal) sig);
@@ -4193,12 +4195,12 @@ process_serial_event (void)
       myresume (own_buf, 1, signal);
       break;
     case 'c':
-      require_running (own_buf);
+      require_running_or_break (own_buf);
       signal = 0;
       myresume (own_buf, 0, signal);
       break;
     case 's':
-      require_running (own_buf);
+      require_running_or_break (own_buf);
       signal = 0;
       myresume (own_buf, 1, signal);
       break;
@@ -4212,7 +4214,7 @@ process_serial_event (void)
 	char type = own_buf[1];
 	int res;
 	const int insert = ch == 'Z';
-	char *p = &own_buf[3];
+	const char *p = &own_buf[3];
 
 	p = unpack_varlen_hex (p, &addr);
 	kind = strtol (p + 1, &dataptr, 16);
@@ -4232,7 +4234,8 @@ process_serial_event (void)
 		   is telling us to drop that list and use this one
 		   instead.  */
 		clear_breakpoint_conditions_and_commands (bp);
-		process_point_options (bp, &dataptr);
+		const char *options = dataptr;
+		process_point_options (bp, &options);
 	      }
 	  }
 	else
@@ -4255,7 +4258,8 @@ process_serial_event (void)
 	return 0;
 
       fprintf (stderr, "Killing all inferiors\n");
-      for_each_inferior (&all_processes, kill_inferior_callback);
+
+      for_each_process (kill_inferior_callback);
 
       /* When using the extended protocol, we wait with no program
 	 running.  The traditional protocol will exit instead.  */
@@ -4270,13 +4274,10 @@ process_serial_event (void)
 
     case 'T':
       {
-	ptid_t gdb_id, thread_id;
+	require_running_or_break (own_buf);
 
-	require_running (own_buf);
-
-	gdb_id = read_ptid (&own_buf[1], NULL);
-	thread_id = gdb_id_to_thread_id (gdb_id);
-	if (ptid_equal (thread_id, null_ptid))
+	ptid_t thread_id = read_ptid (&own_buf[1], NULL);
+	if (find_thread_ptid (thread_id) == NULL)
 	  {
 	    write_enn (own_buf);
 	    break;
@@ -4296,14 +4297,15 @@ process_serial_event (void)
       if (extended_protocol)
 	{
 	  if (target_running ())
-	    for_each_inferior (&all_processes,
-			       kill_inferior_callback);
+	    for_each_process (kill_inferior_callback);
+
 	  fprintf (stderr, "GDBserver restarting\n");
 
 	  /* Wait till we are at 1st instruction in prog.  */
-	  if (!program_argv.empty ())
+	  if (program_name != NULL)
 	    {
-	      start_inferior (&program_argv[0]);
+	      create_inferior (program_name, program_args);
+
 	      if (last_status.kind == TARGET_WAITKIND_STOPPED)
 		{
 		  /* Stopped at the first instruction of the target
@@ -4371,7 +4373,7 @@ handle_serial_event (int err, gdb_client
 
   /* Be sure to not change the selected thread behind GDB's back.
      Important in the non-stop mode asynchronous protocol.  */
-  set_desired_thread (1);
+  set_desired_thread ();
 
   return 0;
 }
@@ -4466,7 +4468,18 @@ handle_target_event (int err, gdb_client
 
   /* Be sure to not change the selected thread behind GDB's back.
      Important in the non-stop mode asynchronous protocol.  */
-  set_desired_thread (1);
+  set_desired_thread ();
 
   return 0;
 }
+
+#if GDB_SELF_TEST
+namespace selftests
+{
+
+void
+reset ()
+{}
+
+} // namespace selftests
+#endif /* GDB_SELF_TEST */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/server.h ./gdb/gdbserver/server.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/server.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/server.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Common definitions for remote server for GDB.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -62,6 +62,7 @@ int vsnprintf(char *str, size_t size, co
 #include "mem-break.h"
 #include "gdbthread.h"
 #include "inferiors.h"
+#include "environ.h"
 
 /* Target-specific functions */
 
@@ -148,4 +149,17 @@ extern int in_queued_stop_replies (ptid_
 /* Definition for any syscall, used for unfiltered syscall reporting.  */
 #define ANY_SYSCALL (-2)
 
+/* After fork_inferior has been called, we need to adjust a few
+   signals and call startup_inferior to start the inferior and consume
+   its first events.  This is done here.  PID is the pid of the new
+   inferior and PROGRAM is its name.  */
+extern void post_fork_inferior (int pid, const char *program);
+
+/* Get the gdb_environ being used in the current session.  */
+extern gdb_environ *get_environ ();
+
+extern target_waitstatus last_status;
+extern ptid_t last_ptid;
+extern unsigned long signal_pid;
+
 #endif /* SERVER_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/spu-low.c ./gdb/gdbserver/spu-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/spu-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/spu-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Low level interface to SPUs, for the remote server for GDB.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
 
@@ -27,6 +27,7 @@
 #include <sys/syscall.h>
 #include "filestuff.h"
 #include "hostio.h"
+#include "nat/fork-inferior.h"
 
 /* Some older glibc versions do not define this.  */
 #ifndef __WNOTHREAD
@@ -261,36 +262,37 @@ spu_proc_xfer_spu (const char *annex, un
   return ret;
 }
 
+/* Callback to be used when calling fork_inferior, responsible for
+   actually initiating the tracing of the inferior.  */
+
+static void
+spu_ptrace_fun ()
+{
+  if (ptrace (PTRACE_TRACEME, 0, 0, 0) < 0)
+    trace_start_error_with_name ("ptrace");
+  if (setpgid (0, 0) < 0)
+    trace_start_error_with_name ("setpgid");
+}
 
 /* Start an inferior process and returns its pid.
-   ALLARGS is a vector of program-name and args. */
+   PROGRAM is the name of the program to be started, and PROGRAM_ARGS
+   are its arguments.  */
+
 static int
-spu_create_inferior (char *program, char **allargs)
+spu_create_inferior (const char *program,
+		     const std::vector<char *> &program_args)
 {
   int pid;
   ptid_t ptid;
   struct process_info *proc;
+  std::string str_program_args = stringify_argv (program_args);
 
-  pid = fork ();
-  if (pid < 0)
-    perror_with_name ("fork");
-
-  if (pid == 0)
-    {
-      close_most_fds ();
-      ptrace (PTRACE_TRACEME, 0, 0, 0);
-
-      setpgid (0, 0);
-
-      execv (program, allargs);
-      if (errno == ENOENT)
-	execvp (program, allargs);
+  pid = fork_inferior (program,
+		       str_program_args.c_str (),
+		       get_environ ()->envp (), spu_ptrace_fun,
+		       NULL, NULL, NULL, NULL);
 
-      fprintf (stderr, "Cannot exec %s: %s.\n", program,
-	       strerror (errno));
-      fflush (stderr);
-      _exit (0177);
-    }
+  post_fork_inferior (pid, program);
 
   proc = add_process (pid, 0);
   proc->tdesc = tdesc_spu;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/symbol.c ./gdb/gdbserver/symbol.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/symbol.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/symbol.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Symbol manipulating routines for the remote server for GDB.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/target.c ./gdb/gdbserver/target.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/target.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/target.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target operations for the remote server for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by MontaVista Software.
 
@@ -24,65 +24,14 @@
 struct target_ops *the_target;
 
 int
-set_desired_thread (int use_general)
+set_desired_thread ()
 {
-  struct thread_info *found;
-
-  if (use_general == 1)
-    found = find_thread_ptid (general_thread);
-  else
-    found = find_thread_ptid (cont_thread);
+  thread_info *found = find_thread_ptid (general_thread);
 
   current_thread = found;
   return (current_thread != NULL);
 }
 
-/* Structure used to look up a thread to use as current when accessing
-   memory.  */
-
-struct thread_search
-{
-  /* The PTID of the current general thread.  This is an input
-     parameter.  */
-  ptid_t current_gen_ptid;
-
-  /* The first thread found.  */
-  struct thread_info *first;
-
-  /* The first stopped thread found.  */
-  struct thread_info *stopped;
-
-  /* The current general thread, if found.  */
-  struct thread_info *current;
-};
-
-/* Callback for find_inferior.  Search for a thread to use as current
-   when accessing memory.  */
-
-static int
-thread_search_callback (struct inferior_list_entry *entry, void *args)
-{
-  struct thread_info *thread = (struct thread_info *) entry;
-  struct thread_search *s = (struct thread_search *) args;
-
-  if (ptid_get_pid (entry->id) == ptid_get_pid (s->current_gen_ptid)
-      && mythread_alive (ptid_of (thread)))
-    {
-      if (s->stopped == NULL
-	  && the_target->thread_stopped != NULL
-	  && thread_stopped (thread))
-	s->stopped = thread;
-
-      if (s->first == NULL)
-	s->first = thread;
-
-      if (s->current == NULL && ptid_equal (s->current_gen_ptid, entry->id))
-	s->current = thread;
-    }
-
-  return 0;
-}
-
 /* The thread that was current before prepare_to_access_memory was
    called.  done_accessing_memory uses this to restore the previous
    selected thread.  */
@@ -93,11 +42,15 @@ static ptid_t prev_general_thread;
 int
 prepare_to_access_memory (void)
 {
-  struct thread_search search;
-  struct thread_info *thread;
+  /* The first thread found.  */
+  struct thread_info *first = NULL;
+  /* The first stopped thread found.  */
+  struct thread_info *stopped = NULL;
+  /* The current general thread, if found.  */
+  struct thread_info *current = NULL;
 
-  memset (&search, 0, sizeof (search));
-  search.current_gen_ptid = general_thread;
+  /* Save the general thread value, since prepare_to_access_memory could change
+     it.  */
   prev_general_thread = general_thread;
 
   if (the_target->prepare_to_access_memory != NULL)
@@ -109,18 +62,35 @@ prepare_to_access_memory (void)
 	return res;
     }
 
-  find_inferior (&all_threads, thread_search_callback, &search);
+  for_each_thread (prev_general_thread.pid (), [&] (thread_info *thread)
+    {
+      if (mythread_alive (thread->id))
+	{
+	  if (stopped == NULL && the_target->thread_stopped != NULL
+	      && thread_stopped (thread))
+	    stopped = thread;
+
+	  if (first == NULL)
+	    first = thread;
+
+	  if (current == NULL && prev_general_thread == thread->id)
+	    current = thread;
+	}
+    });
+
+  /* The thread we end up choosing.  */
+  struct thread_info *thread;
 
   /* Prefer a stopped thread.  If none is found, try the current
      thread.  Otherwise, take the first thread in the process.  If
      none is found, undo the effects of
      target->prepare_to_access_memory() and return error.  */
-  if (search.stopped != NULL)
-    thread = search.stopped;
-  else if (search.current != NULL)
-    thread = search.current;
-  else if (search.first != NULL)
-    thread = search.first;
+  if (stopped != NULL)
+    thread = stopped;
+  else if (current != NULL)
+    thread = current;
+  else if (first != NULL)
+    thread = first;
   else
     {
       done_accessing_memory ();
@@ -143,7 +113,7 @@ done_accessing_memory (void)
 
   /* Restore the previous selected thread.  */
   general_thread = prev_general_thread;
-  current_thread = find_thread_ptid (general_thread);
+  switch_to_thread (general_thread);
 }
 
 int
@@ -387,3 +357,51 @@ default_breakpoint_kind_from_pc (CORE_AD
   (*the_target->sw_breakpoint_from_kind) (0, &size);
   return size;
 }
+
+/* Define it.  */
+
+enum target_terminal::terminal_state target_terminal::terminal_state
+  = target_terminal::terminal_is_ours;
+
+/* See target/target.h.  */
+
+void
+target_terminal::init ()
+{
+  /* Placeholder needed because of fork_inferior.  Not necessary on
+     GDBserver.  */
+}
+
+/* See target/target.h.  */
+
+void
+target_terminal::inferior ()
+{
+  /* Placeholder needed because of fork_inferior.  Not necessary on
+     GDBserver.  */
+}
+
+/* See target/target.h.  */
+
+void
+target_terminal::ours ()
+{
+  /* Placeholder needed because of fork_inferior.  Not necessary on
+     GDBserver.  */
+}
+
+/* See target/target.h.  */
+
+void
+target_terminal::ours_for_output (void)
+{
+  /* Placeholder.  */
+}
+
+/* See target/target.h.  */
+
+void
+target_terminal::info (const char *arg, int from_tty)
+{
+  /* Placeholder.  */
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/target.h ./gdb/gdbserver/target.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/target.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/target.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target operations for the remote server for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by MontaVista Software.
 
@@ -28,6 +28,7 @@
 #include "target/waitstatus.h"
 #include "mem-break.h"
 #include "btrace-common.h"
+#include <vector>
 
 struct emit_ops;
 struct buffer;
@@ -67,13 +68,13 @@ struct target_ops
   /* Start a new process.
 
      PROGRAM is a path to the program to execute.
-     ARGS is a standard NULL-terminated array of arguments,
-     to be passed to the inferior as ``argv''.
+     PROGRAM_ARGS is a standard NULL-terminated array of arguments,
+     to be passed to the inferior as ``argv'' (along with PROGRAM).
 
      Returns the new PID on success, -1 on failure.  Registers the new
      process with the process list.  */
-
-  int (*create_inferior) (char *program, char **args);
+  int (*create_inferior) (const char *program,
+			  const std::vector<char *> &program_args);
 
   /* Do additional setup after a new process is created, including
      exec-wrapper completion.  */
@@ -474,14 +475,19 @@ struct target_ops
 
   /* Return tdesc index for IPA.  */
   int (*get_ipa_tdesc_idx) (void);
+
+  /* Thread ID to (numeric) thread handle: Return true on success and
+     false for failure.  Return pointer to thread handle via HANDLE
+     and the handle's length via HANDLE_LEN.  */
+  bool (*thread_handle) (ptid_t ptid, gdb_byte **handle, int *handle_len);
 };
 
 extern struct target_ops *the_target;
 
 void set_target_ops (struct target_ops *);
 
-#define create_inferior(program, args) \
-  (*the_target->create_inferior) (program, args)
+#define create_inferior(program, program_args)	\
+  (*the_target->create_inferior) (program, program_args)
 
 #define target_post_create_inferior()			 \
   do							 \
@@ -692,12 +698,17 @@ void done_accessing_memory (void);
   (the_target->thread_name ? (*the_target->thread_name) (ptid)  \
    : NULL)
 
+#define target_thread_handle(ptid, handle, handle_len) \
+   (the_target->thread_handle ? (*the_target->thread_handle) \
+                                  (ptid, handle, handle_len) \
+   : false)
+
 int read_inferior_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len);
 
 int write_inferior_memory (CORE_ADDR memaddr, const unsigned char *myaddr,
 			   int len);
 
-int set_desired_thread (int id);
+int set_desired_thread ();
 
 const char *target_pid_to_str (ptid_t);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/tdesc.c ./gdb/gdbserver/tdesc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/tdesc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/tdesc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -22,13 +22,12 @@
 void
 init_target_desc (struct target_desc *tdesc)
 {
-  int offset, i;
+  int offset = 0;
 
-  offset = 0;
-  for (i = 0; i < tdesc->num_registers; i++)
+  for (reg *reg : tdesc->reg_defs)
     {
-      tdesc->reg_defs[i].offset = offset;
-      offset += tdesc->reg_defs[i].size;
+      reg->offset = offset;
+      offset += reg->size;
     }
 
   tdesc->registers_size = offset / 8;
@@ -38,16 +37,21 @@ init_target_desc (struct target_desc *td
   gdb_assert (2 * tdesc->registers_size + 32 <= PBUFSIZ);
 }
 
+struct target_desc *
+allocate_target_description (void)
+{
+  return new target_desc ();
+}
+
 #ifndef IN_PROCESS_AGENT
 
-static const struct target_desc default_description = { 0 };
+static const struct target_desc default_description {};
 
 void
 copy_target_description (struct target_desc *dest,
 			 const struct target_desc *src)
 {
   dest->reg_defs = src->reg_defs;
-  dest->num_registers = src->num_registers;
   dest->expedite_regs = src->expedite_regs;
   dest->registers_size = src->registers_size;
   dest->xmltarget = src->xmltarget;
@@ -62,4 +66,176 @@ current_target_desc (void)
   return current_process ()->tdesc;
 }
 
+/* See arch/tdesc.h.  */
+
+void
+set_tdesc_architecture (struct target_desc *target_desc,
+			const char *name)
+{
+  target_desc->arch = xstrdup (name);
+}
+
+/* See arch/tdesc.h.  */
+
+void
+set_tdesc_osabi (struct target_desc *target_desc, const char *name)
+{
+  target_desc->osabi = xstrdup (name);
+}
+
+/* Return a string which is of XML format, including XML target
+   description to be sent to GDB.  */
+
+const char *
+tdesc_get_features_xml (target_desc *tdesc)
+{
+  /* Either .xmltarget or .features is not NULL.  */
+  gdb_assert (tdesc->xmltarget != NULL
+	      || (tdesc->features != NULL
+		  && tdesc->arch != NULL));
+
+  if (tdesc->xmltarget == NULL)
+    {
+      std::string buffer ("@<?xml version=\"1.0\"?>");
+
+      buffer += "<!DOCTYPE target SYSTEM \"gdb-target.dtd\">";
+      buffer += "<target>";
+      buffer += "<architecture>";
+      buffer += tdesc->arch;
+      buffer += "</architecture>";
+
+      if (tdesc->osabi != nullptr)
+	{
+	  buffer += "<osabi>";
+	  buffer += tdesc->osabi;
+	  buffer += "</osabi>";
+	}
+
+      char *xml;
+
+      for (int i = 0; VEC_iterate (char_ptr, tdesc->features, i, xml); i++)
+	{
+	  buffer += "<xi:include href=\"";
+	  buffer += xml;
+	  buffer += "\"/>";
+	}
+
+      buffer += "</target>";
+
+      tdesc->xmltarget = xstrdup (buffer.c_str ());
+    }
+
+  return tdesc->xmltarget;
+}
+#endif
+
+struct tdesc_type
+{};
+
+/* See arch/tdesc.h.  */
+
+struct tdesc_feature *
+tdesc_create_feature (struct target_desc *tdesc, const char *name,
+		      const char *xml)
+{
+#ifndef IN_PROCESS_AGENT
+  VEC_safe_push (char_ptr, tdesc->features, xstrdup (xml));
 #endif
+  return tdesc;
+}
+
+/* See arch/tdesc.h.  */
+
+tdesc_type_with_fields *
+tdesc_create_flags (struct tdesc_feature *feature, const char *name,
+		    int size)
+{
+  return NULL;
+}
+
+/* See arch/tdesc.h.  */
+
+void
+tdesc_add_flag (tdesc_type_with_fields *type, int start,
+		const char *flag_name)
+{}
+
+/* See arch/tdesc.h.  */
+
+struct tdesc_type *
+tdesc_named_type (const struct tdesc_feature *feature, const char *id)
+{
+  return NULL;
+}
+
+/* See arch/tdesc.h.  */
+
+tdesc_type_with_fields *
+tdesc_create_union (struct tdesc_feature *feature, const char *id)
+{
+  return NULL;
+}
+
+/* See arch/tdesc.h.  */
+
+tdesc_type_with_fields *
+tdesc_create_struct (struct tdesc_feature *feature, const char *id)
+{
+  return NULL;
+}
+
+/* See arch/tdesc.h.  */
+
+void
+tdesc_create_reg (struct tdesc_feature *feature, const char *name,
+		  int regnum, int save_restore, const char *group,
+		  int bitsize, const char *type)
+{
+  struct target_desc *tdesc = (struct target_desc *) feature;
+
+  while (tdesc->reg_defs.size () < regnum)
+    {
+      struct reg *reg = XCNEW (struct reg);
+
+      reg->name = "";
+      reg->size = 0;
+      tdesc->reg_defs.push_back (reg);
+    }
+
+  gdb_assert (regnum == 0
+	      || regnum == tdesc->reg_defs.size ());
+
+  struct reg *reg = XCNEW (struct reg);
+
+  reg->name = name;
+  reg->size = bitsize;
+  tdesc->reg_defs.push_back (reg);
+}
+
+/* See arch/tdesc.h.  */
+
+struct tdesc_type *
+tdesc_create_vector (struct tdesc_feature *feature, const char *name,
+		     struct tdesc_type *field_type, int count)
+{
+  return NULL;
+}
+
+void
+tdesc_add_bitfield (tdesc_type_with_fields *type, const char *field_name,
+		    int start, int end)
+{}
+
+/* See arch/tdesc.h.  */
+
+void
+tdesc_add_field (tdesc_type_with_fields *type, const char *field_name,
+		 struct tdesc_type *field_type)
+{}
+
+/* See arch/tdesc.h.  */
+
+void
+tdesc_set_struct_size (tdesc_type_with_fields *type, int size)
+{
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/tdesc.h ./gdb/gdbserver/tdesc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/tdesc.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/tdesc.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target description definitions for remote server for GDB.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -19,32 +19,103 @@
 #ifndef TDESC_H
 #define TDESC_H
 
-struct reg;
+#include "arch/tdesc.h"
 
-/* A target description.  */
+#include "regdef.h"
+#include <vector>
 
-struct target_desc
+struct tdesc_feature
+{};
+
+/* A target description.  Inherit from tdesc_feature so that target_desc
+   can be used as tdesc_feature.  */
+
+struct target_desc : tdesc_feature
 {
-  /* An array of NUM_REGISTERS elements of register definitions that
+  /* A vector of elements of register definitions that
      describe the inferior's register set.  */
-  struct reg *reg_defs;
-
-  /* The number of registers in inferior's register set (and thus in
-     the regcache).  */
-  int num_registers;
+  std::vector<struct reg *> reg_defs;
 
   /* The register cache size, in bytes.  */
   int registers_size;
 
+#ifndef IN_PROCESS_AGENT
   /* An array of register names.  These are the "expedite" registers:
      registers whose values are sent along with stop replies.  */
-  const char **expedite_regs;
+  const char **expedite_regs = NULL;
 
   /* Defines what to return when looking for the "target.xml" file in
      response to qXfer:features:read.  Its contents can either be
      verbatim XML code (prefixed with a '@') or else the name of the
-     actual XML file to be used in place of "target.xml".  */
-  const char *xmltarget;
+     actual XML file to be used in place of "target.xml".
+
+     It can be NULL, then, its content is got from the following three
+     fields features, arch, and osabi in tdesc_get_features_xml.  */
+  const char *xmltarget = NULL;
+
+  /* XML features in this target description.  */
+  VEC (char_ptr) *features = NULL;
+
+  /* The value of <architecture> element in the XML, replying GDB.  */
+  const char *arch = NULL;
+
+  /* The value of <osabi> element in the XML, replying GDB.  */
+  const char *osabi = NULL;
+
+public:
+  target_desc ()
+    : registers_size (0)
+  {}
+
+  ~target_desc ()
+  {
+    int i;
+
+    for (reg *reg : reg_defs)
+      xfree (reg);
+
+    xfree ((char *) arch);
+    xfree ((char *) osabi);
+
+    char *f;
+
+    for (i = 0; VEC_iterate (char_ptr, features, i, f); i++)
+      xfree (f);
+    VEC_free (char_ptr, features);
+  }
+
+  bool operator== (const target_desc &other) const
+  {
+    if (reg_defs.size () != other.reg_defs.size ())
+      return false;
+
+    for (int i = 0; i < reg_defs.size (); ++i)
+      {
+	struct reg *reg = reg_defs[i];
+	struct reg *reg2 = other.reg_defs[i];
+
+	if (reg != reg2 && *reg != *reg2)
+	  return false;
+      }
+
+    /* Compare expedite_regs.  */
+    int i = 0;
+    for (; expedite_regs[i] != NULL; i++)
+      {
+	if (strcmp (expedite_regs[i], other.expedite_regs[i]) != 0)
+	  return false;
+      }
+    if (other.expedite_regs[i] != NULL)
+      return false;
+
+    return true;
+  }
+
+  bool operator!= (const target_desc &other) const
+  {
+    return !(*this == other);
+  }
+#endif
 };
 
 /* Copy target description SRC to DEST.  */
@@ -61,4 +132,8 @@ void init_target_desc (struct target_des
 
 const struct target_desc *current_target_desc (void);
 
+#ifndef IN_PROCESS_AGENT
+const char *tdesc_get_features_xml (struct target_desc *tdesc);
+#endif
+
 #endif /* TDESC_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/thread-db.c ./gdb/gdbserver/thread-db.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/thread-db.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/thread-db.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Thread management interface, for the remote server for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by MontaVista Software.
 
@@ -28,6 +28,7 @@ extern int debug_threads;
 #include "nat/gdb_thread_db.h"
 #include "gdb_vecs.h"
 #include "nat/linux-procfs.h"
+#include "common/scoped_restore.h"
 
 #ifndef USE_LIBTHREAD_DB_DIRECTLY
 #include <dlfcn.h>
@@ -155,19 +156,21 @@ thread_db_state_str (td_thr_state_e stat
 }
 #endif
 
+/* Get thread info about PTID, accessing memory via the current
+   thread.  */
+
 static int
 find_one_thread (ptid_t ptid)
 {
   td_thrhandle_t th;
   td_thrinfo_t ti;
   td_err_e err;
-  struct thread_info *inferior;
   struct lwp_info *lwp;
   struct thread_db *thread_db = current_process ()->priv->thread_db;
   int lwpid = ptid_get_lwp (ptid);
 
-  inferior = (struct thread_info *) find_inferior_id (&all_threads, ptid);
-  lwp = get_thread_lwp (inferior);
+  thread_info *thread = find_thread_ptid (ptid);
+  lwp = get_thread_lwp (thread);
   if (lwp->thread_known)
     return 1;
 
@@ -200,6 +203,7 @@ find_one_thread (ptid_t ptid)
 
   lwp->thread_known = 1;
   lwp->th = th;
+  lwp->thread_handle = ti.ti_tid;
 
   return 1;
 }
@@ -231,6 +235,7 @@ attach_thread (const td_thrhandle_t *th_
   gdb_assert (lwp != NULL);
   lwp->thread_known = 1;
   lwp->th = *th_p;
+  lwp->thread_handle = ti_p->ti_tid;
 
   return 1;
 }
@@ -401,7 +406,7 @@ thread_db_get_tls_address (struct thread
 
   lwp = get_thread_lwp (thread);
   if (!lwp->thread_known)
-    find_one_thread (thread->entry.id);
+    find_one_thread (thread->id);
   if (!lwp->thread_known)
     return TD_NOTHR;
 
@@ -439,6 +444,35 @@ thread_db_get_tls_address (struct thread
     return err;
 }
 
+/* See linux-low.h.  */
+
+bool
+thread_db_thread_handle (ptid_t ptid, gdb_byte **handle, int *handle_len)
+{
+  struct thread_db *thread_db;
+  struct lwp_info *lwp;
+  thread_info *thread = find_thread_ptid (ptid);
+
+  if (thread == NULL)
+    return false;
+
+  thread_db = get_thread_process (thread)->priv->thread_db;
+
+  if (thread_db == NULL)
+    return false;
+
+  lwp = get_thread_lwp (thread);
+
+  if (!lwp->thread_known && !find_one_thread (thread->id))
+    return false;
+
+  gdb_assert (lwp->thread_known);
+
+  *handle = (gdb_byte *) &lwp->thread_handle;
+  *handle_len = sizeof (lwp->thread_handle);
+  return true;
+}
+
 #ifdef USE_LIBTHREAD_DB_DIRECTLY
 
 static int
@@ -733,25 +767,12 @@ thread_db_init (void)
   return 0;
 }
 
-static int
-any_thread_of (struct inferior_list_entry *entry, void *args)
-{
-  int *pid_p = (int *) args;
-
-  if (ptid_get_pid (entry->id) == *pid_p)
-    return 1;
-
-  return 0;
-}
-
 static void
 switch_to_process (struct process_info *proc)
 {
   int pid = pid_of (proc);
 
-  current_thread =
-    (struct thread_info *) find_inferior (&all_threads,
-					  any_thread_of, &pid);
+  current_thread = find_any_thread_of_pid (pid);
 }
 
 /* Disconnect from libthread_db and free resources.  */
@@ -864,3 +885,26 @@ thread_db_handle_monitor_command (char *
   /* Tell server.c to perform default processing.  */
   return 0;
 }
+
+/* See linux-low.h.  */
+
+void
+thread_db_notice_clone (struct thread_info *parent_thr, ptid_t child_ptid)
+{
+  process_info *parent_proc = get_thread_process (parent_thr);
+  struct thread_db *thread_db = parent_proc->priv->thread_db;
+
+  /* If the thread layer isn't initialized, return.  It may just
+     be that the program uses clone, but does not use libthread_db.  */
+  if (thread_db == NULL || !thread_db->all_symbols_looked_up)
+    return;
+
+  /* find_one_thread calls into libthread_db which accesses memory via
+     the current thread.  Temporarily switch to a thread we know is
+     stopped.  */
+  scoped_restore restore_current_thread
+    = make_scoped_restore (&current_thread, parent_thr);
+
+  if (!find_one_thread (child_ptid))
+    warning ("Cannot find thread after clone.\n");
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/tracepoint.c ./gdb/gdbserver/tracepoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/tracepoint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/tracepoint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Tracepoint code for remote server for GDB.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -1910,9 +1910,9 @@ find_next_tracepoint_by_number (struct t
 /* Append another action to perform when the tracepoint triggers.  */
 
 static void
-add_tracepoint_action (struct tracepoint *tpoint, char *packet)
+add_tracepoint_action (struct tracepoint *tpoint, const char *packet)
 {
-  char *act;
+  const char *act;
 
   if (*packet == 'S')
     {
@@ -1924,7 +1924,7 @@ add_tracepoint_action (struct tracepoint
 
   while (*act)
     {
-      char *act_start = act;
+      const char *act_start = act;
       struct tracepoint_action *action = NULL;
 
       switch (*act)
@@ -2485,8 +2485,7 @@ cmd_qtdp (char *own_buf)
   ULONGEST addr;
   ULONGEST count;
   struct tracepoint *tpoint;
-  char *actparm;
-  char *packet = own_buf;
+  const char *packet = own_buf;
 
   packet += strlen ("QTDP:");
 
@@ -2546,9 +2545,7 @@ cmd_qtdp (char *own_buf)
 	    }
 	  else if (*packet == 'X')
 	    {
-	      actparm = (char *) packet;
-	      tpoint->cond = gdb_parse_agent_expr (&actparm);
-	      packet = actparm;
+	      tpoint->cond = gdb_parse_agent_expr (&packet);
 	    }
 	  else if (*packet == '-')
 	    break;
@@ -2657,8 +2654,9 @@ cmd_qtdpsrc (char *own_buf)
 {
   ULONGEST num, addr, start, slen;
   struct tracepoint *tpoint;
-  char *packet = own_buf;
-  char *saved, *srctype, *src;
+  const char *packet = own_buf;
+  const char *saved;
+  char *srctype, *src;
   size_t nbytes;
   struct source_string *last, *newlast;
 
@@ -2720,7 +2718,7 @@ cmd_qtdv (char *own_buf)
   char *varname;
   size_t nbytes;
   struct trace_state_variable *tsv;
-  char *packet = own_buf;
+  const char *packet = own_buf;
 
   packet += strlen ("QTDV:");
 
@@ -2748,7 +2746,7 @@ cmd_qtdv (char *own_buf)
 static void
 cmd_qtenable_disable (char *own_buf, int enable)
 {
-  char *packet = own_buf;
+  const char *packet = own_buf;
   ULONGEST num, addr;
   struct tracepoint *tp;
 
@@ -2870,7 +2868,7 @@ cmd_qtro (char *own_buf)
 {
   ULONGEST start, end;
   struct readonly_region *roreg;
-  char *packet = own_buf;
+  const char *packet = own_buf;
 
   trace_debug ("Want to mark readonly regions");
 
@@ -3557,7 +3555,7 @@ cmd_qtframe (char *own_buf)
   ULONGEST frame, pc, lo, hi, num;
   int tfnum, tpnum;
   struct traceframe *tframe;
-  char *packet = own_buf;
+  const char *packet = own_buf;
 
   packet += strlen ("QTFrame:");
 
@@ -3712,7 +3710,7 @@ cmd_qtp (char *own_buf)
 {
   ULONGEST num, addr;
   struct tracepoint *tpoint;
-  char *packet = own_buf;
+  const char *packet = own_buf;
 
   packet += strlen ("qTP:");
 
@@ -3956,17 +3954,6 @@ cmd_qtstmat (char *packet)
     run_inferior_command (packet, strlen (packet) + 1);
 }
 
-/* Helper for gdb_agent_about_to_close.
-   Return non-zero if thread ENTRY is in the same process in DATA.  */
-
-static int
-same_process_p (struct inferior_list_entry *entry, void *data)
-{
-  int *pid = (int *) data;
-
-  return ptid_get_pid (entry->id) == *pid;
-}
-
 /* Sent the agent a command to close it.  */
 
 void
@@ -3981,8 +3968,7 @@ gdb_agent_about_to_close (int pid)
       saved_thread = current_thread;
 
       /* Find any thread which belongs to process PID.  */
-      current_thread = (struct thread_info *)
-	find_inferior (&all_threads, same_process_p, &pid);
+      current_thread = find_any_thread_of_pid (pid);
 
       strcpy (buf, "close");
 
@@ -4017,7 +4003,7 @@ cmd_qtbuffer (char *own_buf)
 {
   ULONGEST offset, num, tot;
   unsigned char *tbp;
-  char *packet = own_buf;
+  const char *packet = own_buf;
 
   packet += strlen ("qTBuffer:");
 
@@ -4410,7 +4396,7 @@ tracepoint_finished_step (struct thread_
   wstep_link = &tinfo->while_stepping;
 
   trace_debug ("Thread %s finished a single-step for tracepoint %d at 0x%s",
-	       target_pid_to_str (tinfo->entry.id),
+	       target_pid_to_str (tinfo->id),
 	       wstep->tp_number, paddress (wstep->tp_address));
 
   ctx.base.type = trap_tracepoint;
@@ -4423,7 +4409,7 @@ tracepoint_finished_step (struct thread_
 	{
 	  trace_debug ("NO TRACEPOINT %d at 0x%s FOR THREAD %s!",
 		       wstep->tp_number, paddress (wstep->tp_address),
-		       target_pid_to_str (tinfo->entry.id));
+		       target_pid_to_str (tinfo->id));
 
 	  /* Unlink.  */
 	  *wstep_link = wstep->next;
@@ -4443,7 +4429,7 @@ tracepoint_finished_step (struct thread_
 	{
 	  /* The requested numbers of steps have occurred.  */
 	  trace_debug ("Thread %s done stepping for tracepoint %d at 0x%s",
-		       target_pid_to_str (tinfo->entry.id),
+		       target_pid_to_str (tinfo->id),
 		       wstep->tp_number, paddress (wstep->tp_address));
 
 	  /* Unlink the wstep.  */
@@ -4590,7 +4576,7 @@ tracepoint_was_hit (struct thread_info *
 	  && tpoint->type != static_tracepoint)
 	{
 	  trace_debug ("Thread %s at address of tracepoint %d at 0x%s",
-		       target_pid_to_str (tinfo->entry.id),
+		       target_pid_to_str (tinfo->id),
 		       tpoint->number, paddress (tpoint->address));
 
 	  /* Test the condition if present, and collect if true.  */
@@ -5581,7 +5567,7 @@ force_unlock_trace_buffer (void)
    case, if we want to move the thread out of the jump pad, we need to
    single-step it until this function returns 0.  */
 
-int
+fast_tpoint_collect_result
 fast_tracepoint_collecting (CORE_ADDR thread_area,
 			    CORE_ADDR stop_pc,
 			    struct fast_tpoint_collect_status *status)
@@ -5656,7 +5642,7 @@ fast_tracepoint_collecting (CORE_ADDR th
       if (tpoint == NULL)
 	{
 	  warning ("in jump pad, but no matching tpoint?");
-	  return 0;
+	  return fast_tpoint_collect_result::not_collecting;
 	}
       else
 	{
@@ -5684,7 +5670,7 @@ fast_tracepoint_collecting (CORE_ADDR th
       if (tpoint == NULL)
 	{
 	  warning ("in trampoline, but no matching tpoint?");
-	  return 0;
+	  return fast_tpoint_collect_result::not_collecting;
 	}
       else
 	{
@@ -5712,14 +5698,14 @@ fast_tracepoint_collecting (CORE_ADDR th
 	{
 	  trace_debug ("fast_tracepoint_collecting:"
 		       " failed reading 'collecting' in the inferior");
-	  return 0;
+	  return fast_tpoint_collect_result::not_collecting;
 	}
 
       if (!ipa_collecting)
 	{
 	  trace_debug ("fast_tracepoint_collecting: not collecting"
 		       " (and nobody is).");
-	  return 0;
+	  return fast_tpoint_collect_result::not_collecting;
 	}
 
       /* Some thread is collecting.  Check which.  */
@@ -5732,7 +5718,7 @@ fast_tracepoint_collecting (CORE_ADDR th
 	{
 	  trace_debug ("fast_tracepoint_collecting: not collecting "
 		       "(another thread is)");
-	  return 0;
+	  return fast_tpoint_collect_result::not_collecting;
 	}
 
       tpoint
@@ -5742,7 +5728,7 @@ fast_tracepoint_collecting (CORE_ADDR th
 	  warning ("fast_tracepoint_collecting: collecting, "
 		   "but tpoint %s not found?",
 		   paddress ((CORE_ADDR) ipa_collecting_obj.tpoint));
-	  return 0;
+	  return fast_tpoint_collect_result::not_collecting;
 	}
 
       /* The thread is within `gdb_collect', skip over the rest of
@@ -5769,7 +5755,7 @@ fast_tracepoint_collecting (CORE_ADDR th
 fast_tracepoint_collecting, returning continue-until-break at %s",
 		   paddress (tpoint->adjusted_insn_addr));
 
-      return 1; /* continue */
+      return fast_tpoint_collect_result::before_insn; /* continue */
     }
   else
     {
@@ -5780,7 +5766,7 @@ fast_tracepoint_collecting, returning co
 		   paddress (tpoint->adjusted_insn_addr),
 		   paddress (tpoint->adjusted_insn_addr_end));
 
-      return 2; /* single-step */
+      return fast_tpoint_collect_result::at_insn; /* single-step */
     }
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/tracepoint.h ./gdb/gdbserver/tracepoint.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/tracepoint.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/tracepoint.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Tracepoint code for remote server for GDB.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -115,9 +115,25 @@ struct fast_tpoint_collect_status
   CORE_ADDR adjusted_insn_addr_end;
 };
 
-int fast_tracepoint_collecting (CORE_ADDR thread_area,
-				CORE_ADDR stop_pc,
-				struct fast_tpoint_collect_status *status);
+/* The possible states a thread can be in, related to the collection of fast
+   tracepoint.  */
+
+enum class fast_tpoint_collect_result
+{
+  /* Not collecting a fast tracepoint.  */
+  not_collecting,
+
+  /* In the jump pad, but before the relocated instruction.  */
+  before_insn,
+
+  /* In the jump pad, but at (or after) the relocated instruction.  */
+  at_insn,
+};
+
+fast_tpoint_collect_result fast_tracepoint_collecting
+  (CORE_ADDR thread_area, CORE_ADDR stop_pc,
+   struct fast_tpoint_collect_status *status);
+
 void force_unlock_trace_buffer (void);
 
 int handle_tracepoint_bkpts (struct thread_info *tinfo, CORE_ADDR stop_pc);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/utils.c ./gdb/gdbserver/utils.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/utils.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/utils.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* General utility routines for the remote server for GDB.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/utils.h ./gdb/gdbserver/utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/utils.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/utils.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* General utility routines for the remote server for GDB.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/win32-arm-low.c ./gdb/gdbserver/win32-arm-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/win32-arm-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/win32-arm-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/win32-i386-low.c ./gdb/gdbserver/win32-i386-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/win32-i386-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/win32-i386-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -18,6 +18,12 @@
 #include "server.h"
 #include "win32-low.h"
 #include "x86-low.h"
+#include "x86-xstate.h"
+#ifdef __x86_64__
+#include "arch/amd64.h"
+#endif
+#include "arch/i386.h"
+#include "tdesc.h"
 
 #ifndef CONTEXT_EXTENDED_REGISTERS
 #define CONTEXT_EXTENDED_REGISTERS 0
@@ -28,35 +34,16 @@
 
 #define FLAG_TRACE_BIT 0x100
 
-#ifdef __x86_64__
-/* Defined in auto-generated build-time file gdb/gdbserver/amd64.c.  */
-void init_registers_amd64 (void);
-extern const struct target_desc *tdesc_amd64;
-#else
-/* Defined in auto-generated build-time file gdb/gdbserver/i386.c.  */
-void init_registers_i386 (void);
-extern const struct target_desc *tdesc_i386;
-#endif
-
 static struct x86_debug_reg_state debug_reg_state;
 
-static int
-update_debug_registers_callback (struct inferior_list_entry *entry,
-				 void *pid_p)
+static void
+update_debug_registers (thread_info *thread)
 {
-  struct thread_info *thr = (struct thread_info *) entry;
-  win32_thread_info *th = (win32_thread_info *) inferior_target_data (thr);
-  int pid = *(int *) pid_p;
+  win32_thread_info *th = (win32_thread_info *) thread_target_data (thread);
 
-  /* Only update the threads of this process.  */
-  if (pid_of (thr) == pid)
-    {
-      /* The actual update is done later just before resuming the lwp,
-	 we just mark that the registers need updating.  */
-      th->debug_registers_changed = 1;
-    }
-
-  return 0;
+  /* The actual update is done later just before resuming the lwp,
+     we just mark that the registers need updating.  */
+  th->debug_registers_changed = 1;
 }
 
 /* Update the inferior's debug register REGNUM from STATE.  */
@@ -64,12 +51,10 @@ update_debug_registers_callback (struct 
 static void
 x86_dr_low_set_addr (int regnum, CORE_ADDR addr)
 {
-  /* Only update the threads of this process.  */
-  int pid = pid_of (current_thread);
-
   gdb_assert (DR_FIRSTADDR <= regnum && regnum <= DR_LASTADDR);
 
-  find_inferior (&all_threads, update_debug_registers_callback, &pid);
+  /* Only update the threads of this process.  */
+  for_each_thread (current_thread->id.pid (), update_debug_registers);
 }
 
 /* Update the inferior's DR7 debug control register from STATE.  */
@@ -78,9 +63,7 @@ static void
 x86_dr_low_set_control (unsigned long control)
 {
   /* Only update the threads of this process.  */
-  int pid = pid_of (current_thread);
-
-  find_inferior (&all_threads, update_debug_registers_callback, &pid);
+  for_each_thread (current_thread->id.pid (), update_debug_registers);
 }
 
 /* Return the current value of a DR register of the current thread's
@@ -90,7 +73,7 @@ static DWORD64
 win32_get_current_dr (int dr)
 {
   win32_thread_info *th
-    = (win32_thread_info *) inferior_target_data (current_thread);
+    = (win32_thread_info *) thread_target_data (current_thread);
 
   win32_require_context (th);
 
@@ -448,13 +431,18 @@ static const unsigned char i386_win32_br
 static void
 i386_arch_setup (void)
 {
+  struct target_desc *tdesc;
+
 #ifdef __x86_64__
-  init_registers_amd64 ();
-  win32_tdesc = tdesc_amd64;
+  tdesc = amd64_create_target_description (X86_XSTATE_SSE_MASK, false,
+						 false);
 #else
-  init_registers_i386 ();
-  win32_tdesc = tdesc_i386;
+  tdesc = i386_create_target_description (X86_XSTATE_SSE_MASK, false);
 #endif
+
+  init_target_desc (tdesc);
+
+  win32_tdesc = tdesc;
 }
 
 struct win32_target_ops the_low_target = {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/win32-low.c ./gdb/gdbserver/win32-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/win32-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/win32-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Low level interface to Windows debugging, for gdbserver.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    Contributed by Leo Zayas.  Based on "win32-nat.c" from GDB.
 
@@ -32,6 +32,8 @@
 #include <tlhelp32.h>
 #include <psapi.h>
 #include <process.h>
+#include "gdb_tilde_expand.h"
+#include "common-inferior.h"
 
 #ifndef USE_WIN32API
 #include <sys/cygwin.h>
@@ -191,14 +193,11 @@ win32_require_context (win32_thread_info
 static win32_thread_info *
 thread_rec (ptid_t ptid, int get_context)
 {
-  struct thread_info *thread;
-  win32_thread_info *th;
-
-  thread = (struct thread_info *) find_inferior_id (&all_threads, ptid);
+  thread_info *thread = find_thread_ptid (ptid);
   if (thread == NULL)
     return NULL;
 
-  th = (win32_thread_info *) inferior_target_data (thread);
+  win32_thread_info *th = (win32_thread_info *) thread_target_data (thread);
   if (get_context)
     win32_require_context (th);
   return th;
@@ -229,10 +228,9 @@ child_add_thread (DWORD pid, DWORD tid, 
 
 /* Delete a thread from the list of threads.  */
 static void
-delete_thread_info (struct inferior_list_entry *entry)
+delete_thread_info (thread_info *thread)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
-  win32_thread_info *th = (win32_thread_info *) inferior_target_data (thread);
+  win32_thread_info *th = (win32_thread_info *) thread_target_data (thread);
 
   remove_thread (thread);
   CloseHandle (th->h);
@@ -243,15 +241,11 @@ delete_thread_info (struct inferior_list
 static void
 child_delete_thread (DWORD pid, DWORD tid)
 {
-  struct inferior_list_entry *thread;
-  ptid_t ptid;
-
   /* If the last thread is exiting, just return.  */
-  if (one_inferior_p (&all_threads))
+  if (all_threads.size () == 1)
     return;
 
-  ptid = ptid_build (pid, tid, 0);
-  thread = find_inferior_id (&all_threads, ptid);
+  thread_info *thread = find_thread_ptid (ptid_t (pid, tid));
   if (thread == NULL)
     return;
 
@@ -345,7 +339,7 @@ child_xfer_memory (CORE_ADDR memaddr, ch
 static void
 child_init_thread_list (void)
 {
-  for_each_inferior (&all_threads, delete_thread_info);
+  for_each_thread (delete_thread_info);
 }
 
 /* Zero during the child initialization phase, and nonzero otherwise.  */
@@ -428,12 +422,10 @@ do_initial_child_stuff (HANDLE proch, DW
 
 /* Resume all artificially suspended threads if we are continuing
    execution.  */
-static int
-continue_one_thread (struct inferior_list_entry *this_thread, void *id_ptr)
+static void
+continue_one_thread (thread_info *thread, int thread_id)
 {
-  struct thread_info *thread = (struct thread_info *) this_thread;
-  int thread_id = * (int *) id_ptr;
-  win32_thread_info *th = (win32_thread_info *) inferior_target_data (thread);
+  win32_thread_info *th = (win32_thread_info *) thread_target_data (thread);
 
   if (thread_id == -1 || thread_id == th->tid)
     {
@@ -456,8 +448,6 @@ continue_one_thread (struct inferior_lis
 	  th->suspended = 0;
 	}
     }
-
-  return 0;
 }
 
 static BOOL
@@ -465,7 +455,10 @@ child_continue (DWORD continue_status, i
 {
   /* The inferior will only continue after the ContinueDebugEvent
      call.  */
-  find_inferior (&all_threads, continue_one_thread, &thread_id);
+  for_each_thread ([&] (thread_info *thread)
+    {
+      continue_one_thread (thread, thread_id);
+    });
   faked_breakpoint = 0;
 
   if (!ContinueDebugEvent (current_event.dwProcessId,
@@ -562,10 +555,12 @@ static BOOL
 create_process (const char *program, char *args,
 		DWORD flags, PROCESS_INFORMATION *pi)
 {
+  const char *inferior_cwd = get_inferior_cwd ();
+  std::string expanded_infcwd = gdb_tilde_expand (inferior_cwd);
   BOOL ret;
 
 #ifdef _WIN32_WCE
-  wchar_t *p, *wprogram, *wargs;
+  wchar_t *p, *wprogram, *wargs, *wcwd = NULL;
   size_t argslen;
 
   wprogram = alloca ((strlen (program) + 1) * sizeof (wchar_t));
@@ -579,6 +574,19 @@ create_process (const char *program, cha
   wargs = alloca ((argslen + 1) * sizeof (wchar_t));
   mbstowcs (wargs, args, argslen + 1);
 
+  if (inferior_cwd != NULL)
+    {
+      std::replace (expanded_infcwd.begin (), expanded_infcwd.end (),
+		    '/', '\\');
+      wcwd = alloca ((expanded_infcwd.size () + 1) * sizeof (wchar_t));
+      if (mbstowcs (wcwd, expanded_infcwd.c_str (),
+		    expanded_infcwd.size () + 1) == NULL)
+	{
+	  error (_("\
+Could not convert the expanded inferior cwd to wide-char."));
+	}
+    }
+
   ret = CreateProcessW (wprogram, /* image name */
 			wargs,    /* command line */
 			NULL,     /* security, not supported */
@@ -586,7 +594,7 @@ create_process (const char *program, cha
 			FALSE,    /* inherit handles, not supported */
 			flags,    /* start flags */
 			NULL,     /* environment, not supported */
-			NULL,     /* current directory, not supported */
+			wcwd,     /* current directory */
 			NULL,     /* start info, not supported */
 			pi);      /* proc info */
 #else
@@ -599,7 +607,7 @@ create_process (const char *program, cha
 			TRUE,     /* inherit handles */
 			flags,    /* start flags */
 			NULL,     /* environment */
-			NULL,     /* current directory */
+			expanded_infcwd.c_str (), /* current directory */
 			&si,      /* start info */
 			pi);      /* proc info */
 #endif
@@ -608,13 +616,13 @@ create_process (const char *program, cha
 }
 
 /* Start a new process.
-   PROGRAM is a path to the program to execute.
-   ARGS is a standard NULL-terminated array of arguments,
-   to be passed to the inferior as ``argv''.
+   PROGRAM is the program name.
+   PROGRAM_ARGS is the vector containing the inferior's args.
    Returns the new PID on success, -1 on failure.  Registers the new
    process with the process list.  */
 static int
-win32_create_inferior (char *program, char **program_args)
+win32_create_inferior (const char *program,
+		       const std::vector<char *> &program_args)
 {
 #ifndef USE_WIN32API
   char real_path[PATH_MAX];
@@ -622,11 +630,12 @@ win32_create_inferior (char *program, ch
 #endif
   BOOL ret;
   DWORD flags;
-  char *args;
   int argslen;
   int argc;
   PROCESS_INFORMATION pi;
   DWORD err;
+  std::string str_program_args = stringify_argv (program_args);
+  char *args = (char *) str_program_args.c_str ();
 
   /* win32_wait needs to know we're not attaching.  */
   attaching = 0;
@@ -652,18 +661,6 @@ win32_create_inferior (char *program, ch
   program = real_path;
 #endif
 
-  argslen = 1;
-  for (argc = 1; program_args[argc]; argc++)
-    argslen += strlen (program_args[argc]) + 1;
-  args = (char *) alloca (argslen);
-  args[0] = '\0';
-  for (argc = 1; program_args[argc]; argc++)
-    {
-      /* FIXME: Can we do better about quoting?  How does Cygwin
-	 handle this?  */
-      strcat (args, " ");
-      strcat (args, program_args[argc]);
-    }
   OUTMSG2 (("Command line is \"%s\"\n", args));
 
 #ifdef CREATE_NEW_PROCESS_GROUP
@@ -796,7 +793,7 @@ win32_clear_inferiors (void)
   if (current_process_handle != NULL)
     CloseHandle (current_process_handle);
 
-  for_each_inferior (&all_threads, delete_thread_info);
+  for_each_thread (delete_thread_info);
   clear_inferiors ();
 }
 
@@ -889,15 +886,9 @@ win32_join (int pid)
 static int
 win32_thread_alive (ptid_t ptid)
 {
-  int res;
-
   /* Our thread list is reliable; don't bother to poll target
      threads.  */
-  if (find_inferior_id (&all_threads, ptid) != NULL)
-    res = 1;
-  else
-    res = 0;
-  return res;
+  return find_thread_ptid (ptid) != NULL;
 }
 
 /* Resume the inferior process.  RESUME_INFO describes how we want
@@ -1341,10 +1332,9 @@ handle_exception (struct target_waitstat
 
 
 static void
-suspend_one_thread (struct inferior_list_entry *entry)
+suspend_one_thread (thread_info *thread)
 {
-  struct thread_info *thread = (struct thread_info *) entry;
-  win32_thread_info *th = (win32_thread_info *) inferior_target_data (thread);
+  win32_thread_info *th = (win32_thread_info *) thread_target_data (thread);
 
   if (!th->suspended)
     {
@@ -1372,7 +1362,7 @@ fake_breakpoint_event (void)
   current_event.u.Exception.ExceptionRecord.ExceptionCode
     = EXCEPTION_BREAKPOINT;
 
-  for_each_inferior (&all_threads, suspend_one_thread);
+  for_each_thread (suspend_one_thread);
 }
 
 #ifdef _WIN32_WCE
@@ -1482,7 +1472,7 @@ get_child_debug_event (struct target_wai
       child_delete_thread (current_event.dwProcessId,
 			   current_event.dwThreadId);
 
-      current_thread = (struct thread_info *) all_threads.head;
+      current_thread = get_first_thread ();
       return 1;
 
     case CREATE_PROCESS_DEBUG_EVENT:
@@ -1580,8 +1570,7 @@ get_child_debug_event (struct target_wai
     }
 
   ptid = debug_event_ptid (&current_event);
-  current_thread =
-    (struct thread_info *) find_inferior_id (&all_threads, ptid);
+  current_thread = find_thread_ptid (ptid);
   return 1;
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/win32-low.h ./gdb/gdbserver/win32-low.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/win32-low.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/win32-low.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Internal interfaces for the Win32 specific target code for gdbserver.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/wincecompat.c ./gdb/gdbserver/wincecompat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/wincecompat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/wincecompat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Compatibility routines for Windows CE.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/wincecompat.h ./gdb/gdbserver/wincecompat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/wincecompat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/wincecompat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Compatibility routines for Windows CE.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/x86-low.c ./gdb/gdbserver/x86-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/x86-low.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/x86-low.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low level support for x86 (i386 and x86-64).
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/x86-low.h ./gdb/gdbserver/x86-low.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/x86-low.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/x86-low.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low level support for x86 (i386 and x86-64).
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/xtensa-xtregs.c ./gdb/gdbserver/xtensa-xtregs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbserver/xtensa-xtregs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbserver/xtensa-xtregs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Table mapping between kernel xtregset and GDB register cache.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb-stabs.h ./gdb/gdb-stabs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb-stabs.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb-stabs.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Definitions for symbol-reading containing "stabs", for GDB.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Support.  Written by John Gilmore.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbthread.h ./gdb/gdbthread.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbthread.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbthread.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Multi-process/thread control defs for GDB, the GNU debugger.
-   Copyright (C) 1987-2017 Free Software Foundation, Inc.
+   Copyright (C) 1987-2018 Free Software Foundation, Inc.
    Contributed by Lynx Real-Time Systems, Inc.  Los Gatos, CA.
    
 
@@ -31,6 +31,8 @@ struct symtab;
 #include "common/vec.h"
 #include "target/waitstatus.h"
 #include "cli/cli-utils.h"
+#include "common/refcounted-object.h"
+#include "common-gdbthread.h"
 
 /* Frontend view of the thread state.  Possible extensions: stepping,
    finishing, until(ling),...  */
@@ -177,7 +179,30 @@ typedef struct value *value_ptr;
 DEF_VEC_P (value_ptr);
 typedef VEC (value_ptr) value_vec;
 
-struct thread_info
+/* Base class for target-specific thread data.  */
+struct private_thread_info
+{
+  virtual ~private_thread_info () = 0;
+};
+
+/* Threads are intrusively refcounted objects.  Being the
+   user-selected thread is normally considered an implicit strong
+   reference and is thus not accounted in the refcount, unlike
+   inferior objects.  This is necessary, because there's no "current
+   thread" pointer.  Instead the current thread is inferred from the
+   inferior_ptid global.  However, when GDB needs to remember the
+   selected thread to later restore it, GDB bumps the thread object's
+   refcount, to prevent something deleting the thread object before
+   reverting back (e.g., due to a "kill" command).  If the thread
+   meanwhile exits before being re-selected, then the thread object is
+   left listed in the thread list, but marked with state
+   THREAD_EXITED.  (See make_cleanup_restore_current_thread and
+   delete_thread).  All other thread references are considered weak
+   references.  Placing a thread in the thread list is an implicit
+   strong reference, and is thus not accounted for in the thread's
+   refcount.  */
+
+class thread_info : public refcounted_object
 {
 public:
   explicit thread_info (inferior *inf, ptid_t ptid);
@@ -186,22 +211,8 @@ public:
   bool deletable () const
   {
     /* If this is the current thread, or there's code out there that
-       relies on it existing (m_refcount > 0) we can't delete yet.  */
-    return (m_refcount == 0 && !ptid_equal (ptid, inferior_ptid));
-  }
-
-  /* Increase the refcount.  */
-  void incref ()
-  {
-    gdb_assert (m_refcount >= 0);
-    m_refcount++;
-  }
-
-  /* Decrease the refcount.  */
-  void decref ()
-  {
-    m_refcount--;
-    gdb_assert (m_refcount >= 0);
+       relies on it existing (refcount > 0) we can't delete yet.  */
+    return (refcount () == 0 && !ptid_equal (ptid, inferior_ptid));
   }
 
   struct thread_info *next = NULL;
@@ -340,11 +351,7 @@ public:
   struct frame_id initiating_frame = null_frame_id;
 
   /* Private data used by the target vector implementation.  */
-  struct private_thread_info *priv = NULL;
-
-  /* Function that is called to free PRIVATE.  If this is NULL, then
-     xfree will be called on PRIVATE.  */
-  void (*private_dtor) (struct private_thread_info *) = NULL;
+  std::unique_ptr<private_thread_info> priv;
 
   /* Branch trace information for this thread.  */
   struct btrace_thread_info btrace {};
@@ -362,13 +369,6 @@ public:
      fields point to self.  */
   struct thread_info *step_over_prev = NULL;
   struct thread_info *step_over_next = NULL;
-
-private:
-
-  /* If this is > 0, then it means there's code out there that relies
-     on this thread being listed.  Don't delete it from the lists even
-     if we detect it exiting.  */
-  int m_refcount = 0;
 };
 
 /* Create an empty thread list, or empty the existing one.  */
@@ -412,7 +412,7 @@ extern int thread_has_single_step_breakp
 /* Check whether the thread has software single stepping breakpoints
    set at PC.  */
 extern int thread_has_single_step_breakpoint_here (struct thread_info *tp,
-						   struct address_space *aspace,
+						   const address_space *aspace,
 						   CORE_ADDR addr);
 
 /* Translate the global integer thread id (GDB's homegrown id, not the
@@ -450,6 +450,10 @@ extern struct thread_info *find_thread_p
 /* Find thread by GDB global thread ID.  */
 struct thread_info *find_thread_global_id (int global_id);
 
+/* Find thread by thread library specific handle in inferior INF.  */
+struct thread_info *find_thread_by_handle (struct value *thread_handle,
+					   struct inferior *inf);
+
 /* Finds the first thread of the inferior given by PID.  If PID is -1,
    returns the first thread in the list.  */
 struct thread_info *first_thread_of_process (int pid);
@@ -496,10 +500,6 @@ extern struct thread_info *iterate_over_
 
 extern int thread_count (void);
 
-/* Switch from one thread to another.  Also sets the STOP_PC
-   global.  */
-extern void switch_to_thread (ptid_t ptid);
-
 /* Switch from one thread to another.  Does not read registers and
    sets STOP_PC to -1.  */
 extern void switch_to_thread_no_regs (struct thread_info *thread);
@@ -579,7 +579,7 @@ extern void finish_thread_state_cleanup 
 /* Commands with a prefix of `thread'.  */
 extern struct cmd_list_element *thread_cmd_list;
 
-extern void thread_command (char *tidstr, int from_tty);
+extern void thread_command (const char *tidstr, int from_tty);
 
 /* Print notices on thread events (attach, detach, etc.), set with
    `set print thread-events'.  */
@@ -595,7 +595,25 @@ extern int print_thread_events;
 extern void print_thread_info (struct ui_out *uiout, char *requested_threads,
 			       int pid);
 
-extern struct cleanup *make_cleanup_restore_current_thread (void);
+/* Save/restore current inferior/thread/frame.  */
+
+class scoped_restore_current_thread
+{
+public:
+  scoped_restore_current_thread ();
+  ~scoped_restore_current_thread ();
+
+  DISABLE_COPY_AND_ASSIGN (scoped_restore_current_thread);
+
+private:
+  /* Use the "class" keyword here, because of a clash with a "thread_info"
+     function in the Darwin API.  */
+  class thread_info *m_thread;
+  inferior *m_inf;
+  frame_id m_selected_frame_id;
+  int m_selected_frame_level;
+  bool m_was_stopped;
+};
 
 /* Returns a pointer into the thread_info corresponding to
    INFERIOR_PTID.  INFERIOR_PTID *must* be in the thread list.  */
@@ -665,6 +683,12 @@ extern int show_thread_that_caused_stop 
 extern void print_selected_thread_frame (struct ui_out *uiout,
 					 user_selected_what selection);
 
+/* Helper for the CLI's "thread" command and for MI's -thread-select.
+   Selects thread THR.  TIDSTR is the original string the thread ID
+   was parsed from.  This is used in the error message if THR is not
+   alive anymore.  */
+extern void thread_select (const char *tidstr, class thread_info *thr);
+
 extern struct thread_info *thread_list;
 
 #endif /* GDBTHREAD_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbtypes.c ./gdb/gdbtypes.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbtypes.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbtypes.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support routines for manipulating internal types for GDB.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support, using pieces from other GDB modules.
 
@@ -38,6 +38,7 @@
 #include "bcache.h"
 #include "dwarf2loc.h"
 #include "gdbcore.h"
+#include "floatformat.h"
 
 /* Initialize BADNESS constants.  */
 
@@ -547,6 +548,8 @@ lookup_function_type_with_arguments (str
 	  gdb_assert (nparams == 0);
 	  TYPE_PROTOTYPED (fn) = 1;
 	}
+      else
+	TYPE_PROTOTYPED (fn) = 1;
     }
 
   TYPE_NFIELDS (fn) = nparams;
@@ -1087,6 +1090,14 @@ discrete_position (struct type *type, LO
    Elements will be of type ELEMENT_TYPE, the indices will be of type
    RANGE_TYPE.
 
+   BYTE_STRIDE_PROP, when not NULL, provides the array's byte stride.
+   This byte stride property is added to the resulting array type
+   as a DYN_PROP_BYTE_STRIDE.  As a consequence, the BYTE_STRIDE_PROP
+   argument can only be used to create types that are objfile-owned
+   (see add_dyn_prop), meaning that either this function must be called
+   with an objfile-owned RESULT_TYPE, or an objfile-owned RANGE_TYPE.
+
+   BIT_STRIDE is taken into account only when BYTE_STRIDE_PROP is NULL.
    If BIT_STRIDE is not zero, build a packed array type whose element
    size is BIT_STRIDE.  Otherwise, ignore this parameter.
 
@@ -1098,14 +1109,27 @@ struct type *
 create_array_type_with_stride (struct type *result_type,
 			       struct type *element_type,
 			       struct type *range_type,
+			       struct dynamic_prop *byte_stride_prop,
 			       unsigned int bit_stride)
 {
+  if (byte_stride_prop != NULL
+      && byte_stride_prop->kind == PROP_CONST)
+    {
+      /* The byte stride is actually not dynamic.  Pretend we were
+	 called with bit_stride set instead of byte_stride_prop.
+	 This will give us the same result type, while avoiding
+	 the need to handle this as a special case.  */
+      bit_stride = byte_stride_prop->data.const_val * 8;
+      byte_stride_prop = NULL;
+    }
+
   if (result_type == NULL)
     result_type = alloc_type_copy (range_type);
 
   TYPE_CODE (result_type) = TYPE_CODE_ARRAY;
   TYPE_TARGET_TYPE (result_type) = element_type;
-  if (has_static_range (TYPE_RANGE_DATA (range_type))
+  if (byte_stride_prop == NULL
+      && has_static_range (TYPE_RANGE_DATA (range_type))
       && (!type_not_associated (result_type)
 	  && !type_not_allocated (result_type)))
     {
@@ -1141,7 +1165,10 @@ create_array_type_with_stride (struct ty
   TYPE_FIELDS (result_type) =
     (struct field *) TYPE_ZALLOC (result_type, sizeof (struct field));
   TYPE_INDEX_TYPE (result_type) = range_type;
-  if (bit_stride > 0)
+  if (byte_stride_prop != NULL)
+    add_dyn_prop (DYN_PROP_BYTE_STRIDE, *byte_stride_prop, result_type,
+		  TYPE_OBJFILE (result_type));
+  else if (bit_stride > 0)
     TYPE_FIELD_BITSIZE (result_type, 0) = bit_stride;
 
   /* TYPE_TARGET_STUB will take care of zero length arrays.  */
@@ -1160,7 +1187,7 @@ create_array_type (struct type *result_t
 		   struct type *range_type)
 {
   return create_array_type_with_stride (result_type, element_type,
-					range_type, 0);
+					range_type, NULL, 0);
 }
 
 struct type *
@@ -1821,6 +1848,17 @@ stub_noname_complaint (void)
   complaint (&symfile_complaints, _("stub type has NULL name"));
 }
 
+/* Return nonzero if TYPE has a DYN_PROP_BYTE_STRIDE dynamic property
+   attached to it, and that property has a non-constant value.  */
+
+static int
+array_type_has_dynamic_stride (struct type *type)
+{
+  struct dynamic_prop *prop = get_dyn_prop (DYN_PROP_BYTE_STRIDE, type);
+
+  return (prop != NULL && prop->kind != PROP_CONST);
+}
+
 /* Worker for is_dynamic_type.  */
 
 static int
@@ -1866,11 +1904,16 @@ is_dynamic_type_internal (struct type *t
       {
 	gdb_assert (TYPE_NFIELDS (type) == 1);
 
-	/* The array is dynamic if either the bounds are dynamic,
-	   or the elements it contains have a dynamic contents.  */
+	/* The array is dynamic if either the bounds are dynamic...  */
 	if (is_dynamic_type_internal (TYPE_INDEX_TYPE (type), 0))
 	  return 1;
-	return is_dynamic_type_internal (TYPE_TARGET_TYPE (type), 0);
+	/* ... or the elements it contains have a dynamic contents...  */
+	if (is_dynamic_type_internal (TYPE_TARGET_TYPE (type), 0))
+	  return 1;
+	/* ... or if it has a dynamic stride...  */
+	if (array_type_has_dynamic_stride (type))
+	  return 1;
+	return 0;
       }
 
     case TYPE_CODE_STRUCT:
@@ -1966,6 +2009,7 @@ resolve_dynamic_array (struct type *type
   struct type *range_type;
   struct type *ary_dim;
   struct dynamic_prop *prop;
+  unsigned int bit_stride = 0;
 
   gdb_assert (TYPE_CODE (type) == TYPE_CODE_ARRAY);
 
@@ -1997,8 +2041,31 @@ resolve_dynamic_array (struct type *type
   else
     elt_type = TYPE_TARGET_TYPE (type);
 
-  return create_array_type_with_stride (type, elt_type, range_type,
-                                        TYPE_FIELD_BITSIZE (type, 0));
+  prop = get_dyn_prop (DYN_PROP_BYTE_STRIDE, type);
+  if (prop != NULL)
+    {
+      int prop_eval_ok
+	= dwarf2_evaluate_property (prop, NULL, addr_stack, &value);
+
+      if (prop_eval_ok)
+	{
+	  remove_dyn_prop (DYN_PROP_BYTE_STRIDE, type);
+	  bit_stride = (unsigned int) (value * 8);
+	}
+      else
+	{
+	  /* Could be a bug in our code, but it could also happen
+	     if the DWARF info is not correct.  Issue a warning,
+	     and assume no byte/bit stride (leave bit_stride = 0).  */
+	  warning (_("cannot determine array stride for type %s"),
+		   TYPE_NAME (type) ? TYPE_NAME (type) : "<no name>");
+	}
+    }
+  else
+    bit_stride = TYPE_FIELD_BITSIZE (type, 0);
+
+  return create_array_type_with_stride (type, elt_type, range_type, NULL,
+                                        bit_stride);
 }
 
 /* Resolve dynamic bounds of members of the union TYPE to static
@@ -2732,22 +2799,30 @@ set_type_code (struct type *type, enum t
    determined by the floatformat.  Returns size to be used.  */
 
 static int
-verify_floatformat (int bit, const struct floatformat **floatformats)
+verify_floatformat (int bit, const struct floatformat *floatformat)
 {
-  gdb_assert (floatformats != NULL);
-  gdb_assert (floatformats[0] != NULL && floatformats[1] != NULL);
+  gdb_assert (floatformat != NULL);
 
   if (bit == -1)
-    bit = floatformats[0]->totalsize;
-  gdb_assert (bit >= 0);
+    bit = floatformat->totalsize;
 
-  size_t len = bit / TARGET_CHAR_BIT;
-  gdb_assert (len >= floatformat_totalsize_bytes (floatformats[0]));
-  gdb_assert (len >= floatformat_totalsize_bytes (floatformats[1]));
+  gdb_assert (bit >= 0);
+  gdb_assert (bit >= floatformat->totalsize);
 
   return bit;
 }
 
+/* Return the floating-point format for a floating-point variable of
+   type TYPE.  */
+
+const struct floatformat *
+floatformat_from_type (const struct type *type)
+{
+  gdb_assert (TYPE_CODE (type) == TYPE_CODE_FLT);
+  gdb_assert (TYPE_FLOATFORMAT (type));
+  return TYPE_FLOATFORMAT (type);
+}
+
 /* Helper function to initialize the standard scalar types.
 
    If NAME is non-NULL, then it is used to initialize the type name.
@@ -2755,19 +2830,30 @@ verify_floatformat (int bit, const struc
    least as long as OBJFILE.  */
 
 struct type *
-init_type (struct objfile *objfile, enum type_code code, int length,
+init_type (struct objfile *objfile, enum type_code code, int bit,
 	   const char *name)
 {
   struct type *type;
 
   type = alloc_type (objfile);
   set_type_code (type, code);
-  TYPE_LENGTH (type) = length;
+  gdb_assert ((bit % TARGET_CHAR_BIT) == 0);
+  TYPE_LENGTH (type) = bit / TARGET_CHAR_BIT;
   TYPE_NAME (type) = name;
 
   return type;
 }
 
+/* Allocate a TYPE_CODE_ERROR type structure associated with OBJFILE,
+   to use with variables that have no debug info.  NAME is the type
+   name.  */
+
+static struct type *
+init_nodebug_var_type (struct objfile *objfile, const char *name)
+{
+  return init_type (objfile, TYPE_CODE_ERROR, 0, name);
+}
+
 /* Allocate a TYPE_CODE_INT type structure associated with OBJFILE.
    BIT is the type size in bits.  If UNSIGNED_P is non-zero, set
    the type's TYPE_UNSIGNED flag.  NAME is the type name.  */
@@ -2778,7 +2864,7 @@ init_integer_type (struct objfile *objfi
 {
   struct type *t;
 
-  t = init_type (objfile, TYPE_CODE_INT, bit / TARGET_CHAR_BIT, name);
+  t = init_type (objfile, TYPE_CODE_INT, bit, name);
   if (unsigned_p)
     TYPE_UNSIGNED (t) = 1;
 
@@ -2795,7 +2881,7 @@ init_character_type (struct objfile *obj
 {
   struct type *t;
 
-  t = init_type (objfile, TYPE_CODE_CHAR, bit / TARGET_CHAR_BIT, name);
+  t = init_type (objfile, TYPE_CODE_CHAR, bit, name);
   if (unsigned_p)
     TYPE_UNSIGNED (t) = 1;
 
@@ -2812,7 +2898,7 @@ init_boolean_type (struct objfile *objfi
 {
   struct type *t;
 
-  t = init_type (objfile, TYPE_CODE_BOOL, bit / TARGET_CHAR_BIT, name);
+  t = init_type (objfile, TYPE_CODE_BOOL, bit, name);
   if (unsigned_p)
     TYPE_UNSIGNED (t) = 1;
 
@@ -2829,11 +2915,13 @@ init_float_type (struct objfile *objfile
 		 int bit, const char *name,
 		 const struct floatformat **floatformats)
 {
+  struct gdbarch *gdbarch = get_objfile_arch (objfile);
+  const struct floatformat *fmt = floatformats[gdbarch_byte_order (gdbarch)];
   struct type *t;
 
-  bit = verify_floatformat (bit, floatformats);
-  t = init_type (objfile, TYPE_CODE_FLT, bit / TARGET_CHAR_BIT, name);
-  TYPE_FLOATFORMAT (t) = floatformats;
+  bit = verify_floatformat (bit, fmt);
+  t = init_type (objfile, TYPE_CODE_FLT, bit, name);
+  TYPE_FLOATFORMAT (t) = fmt;
 
   return t;
 }
@@ -2846,7 +2934,7 @@ init_decfloat_type (struct objfile *objf
 {
   struct type *t;
 
-  t = init_type (objfile, TYPE_CODE_DECFLOAT, bit / TARGET_CHAR_BIT, name);
+  t = init_type (objfile, TYPE_CODE_DECFLOAT, bit, name);
   return t;
 }
 
@@ -2860,7 +2948,7 @@ init_complex_type (struct objfile *objfi
   struct type *t;
 
   t = init_type (objfile, TYPE_CODE_COMPLEX,
-		 2 * TYPE_LENGTH (target_type), name);
+		 2 * TYPE_LENGTH (target_type) * TARGET_CHAR_BIT, name);
   TYPE_TARGET_TYPE (t) = target_type;
   return t;
 }
@@ -2876,7 +2964,7 @@ init_pointer_type (struct objfile *objfi
 {
   struct type *t;
 
-  t = init_type (objfile, TYPE_CODE_PTR, bit / TARGET_CHAR_BIT, name);
+  t = init_type (objfile, TYPE_CODE_PTR, bit, name);
   TYPE_TARGET_TYPE (t) = target_type;
   TYPE_UNSIGNED (t) = 1;
   return t;
@@ -2911,6 +2999,16 @@ is_integral_type (struct type *t)
 	 || (TYPE_CODE (t) == TYPE_CODE_BOOL)));
 }
 
+int
+is_floating_type (struct type *t)
+{
+  t = check_typedef (t);
+  return
+    ((t != NULL)
+     && ((TYPE_CODE (t) == TYPE_CODE_FLT)
+	 || (TYPE_CODE (t) == TYPE_CODE_DECFLOAT)));
+}
+
 /* Return true if TYPE is scalar.  */
 
 int
@@ -4444,10 +4542,6 @@ recursive_dump_type (struct type *type, 
     {
       puts_filtered (" TYPE_TARGET_STUB");
     }
-  if (TYPE_STATIC (type))
-    {
-      puts_filtered (" TYPE_STATIC");
-    }
   if (TYPE_PROTOTYPED (type))
     {
       puts_filtered (" TYPE_PROTOTYPED");
@@ -4535,26 +4629,11 @@ recursive_dump_type (struct type *type, 
 
       case TYPE_SPECIFIC_FLOATFORMAT:
 	printfi_filtered (spaces, "floatformat ");
-	if (TYPE_FLOATFORMAT (type) == NULL)
+	if (TYPE_FLOATFORMAT (type) == NULL
+	    || TYPE_FLOATFORMAT (type)->name == NULL)
 	  puts_filtered ("(null)");
 	else
-	  {
-	    puts_filtered ("{ ");
-	    if (TYPE_FLOATFORMAT (type)[0] == NULL
-		|| TYPE_FLOATFORMAT (type)[0]->name == NULL)
-	      puts_filtered ("(null)");
-	    else
-	      puts_filtered (TYPE_FLOATFORMAT (type)[0]->name);
-
-	    puts_filtered (", ");
-	    if (TYPE_FLOATFORMAT (type)[1] == NULL
-		|| TYPE_FLOATFORMAT (type)[1]->name == NULL)
-	      puts_filtered ("(null)");
-	    else
-	      puts_filtered (TYPE_FLOATFORMAT (type)[1]->name);
-
-	    puts_filtered (" }");
-	  }
+	  puts_filtered (TYPE_FLOATFORMAT (type)->name);
 	puts_filtered ("\n");
 	break;
 
@@ -4823,13 +4902,14 @@ copy_type (const struct type *type)
 
 struct type *
 arch_type (struct gdbarch *gdbarch,
-	   enum type_code code, int length, const char *name)
+	   enum type_code code, int bit, const char *name)
 {
   struct type *type;
 
   type = alloc_type_arch (gdbarch);
   set_type_code (type, code);
-  TYPE_LENGTH (type) = length;
+  gdb_assert ((bit % TARGET_CHAR_BIT) == 0);
+  TYPE_LENGTH (type) = bit / TARGET_CHAR_BIT;
 
   if (name)
     TYPE_NAME (type) = gdbarch_obstack_strdup (gdbarch, name);
@@ -4847,7 +4927,7 @@ arch_integer_type (struct gdbarch *gdbar
 {
   struct type *t;
 
-  t = arch_type (gdbarch, TYPE_CODE_INT, bit / TARGET_CHAR_BIT, name);
+  t = arch_type (gdbarch, TYPE_CODE_INT, bit, name);
   if (unsigned_p)
     TYPE_UNSIGNED (t) = 1;
 
@@ -4864,7 +4944,7 @@ arch_character_type (struct gdbarch *gdb
 {
   struct type *t;
 
-  t = arch_type (gdbarch, TYPE_CODE_CHAR, bit / TARGET_CHAR_BIT, name);
+  t = arch_type (gdbarch, TYPE_CODE_CHAR, bit, name);
   if (unsigned_p)
     TYPE_UNSIGNED (t) = 1;
 
@@ -4881,7 +4961,7 @@ arch_boolean_type (struct gdbarch *gdbar
 {
   struct type *t;
 
-  t = arch_type (gdbarch, TYPE_CODE_BOOL, bit / TARGET_CHAR_BIT, name);
+  t = arch_type (gdbarch, TYPE_CODE_BOOL, bit, name);
   if (unsigned_p)
     TYPE_UNSIGNED (t) = 1;
 
@@ -4898,11 +4978,12 @@ arch_float_type (struct gdbarch *gdbarch
 		 int bit, const char *name,
 		 const struct floatformat **floatformats)
 {
+  const struct floatformat *fmt = floatformats[gdbarch_byte_order (gdbarch)];
   struct type *t;
 
-  bit = verify_floatformat (bit, floatformats);
-  t = arch_type (gdbarch, TYPE_CODE_FLT, bit / TARGET_CHAR_BIT, name);
-  TYPE_FLOATFORMAT (t) = floatformats;
+  bit = verify_floatformat (bit, fmt);
+  t = arch_type (gdbarch, TYPE_CODE_FLT, bit, name);
+  TYPE_FLOATFORMAT (t) = fmt;
 
   return t;
 }
@@ -4915,7 +4996,7 @@ arch_decfloat_type (struct gdbarch *gdba
 {
   struct type *t;
 
-  t = arch_type (gdbarch, TYPE_CODE_DECFLOAT, bit / TARGET_CHAR_BIT, name);
+  t = arch_type (gdbarch, TYPE_CODE_DECFLOAT, bit, name);
   return t;
 }
 
@@ -4929,7 +5010,7 @@ arch_complex_type (struct gdbarch *gdbar
   struct type *t;
 
   t = arch_type (gdbarch, TYPE_CODE_COMPLEX,
-		 2 * TYPE_LENGTH (target_type), name);
+		 2 * TYPE_LENGTH (target_type) * TARGET_CHAR_BIT, name);
   TYPE_TARGET_TYPE (t) = target_type;
   return t;
 }
@@ -4945,27 +5026,26 @@ arch_pointer_type (struct gdbarch *gdbar
 {
   struct type *t;
 
-  t = arch_type (gdbarch, TYPE_CODE_PTR, bit / TARGET_CHAR_BIT, name);
+  t = arch_type (gdbarch, TYPE_CODE_PTR, bit, name);
   TYPE_TARGET_TYPE (t) = target_type;
   TYPE_UNSIGNED (t) = 1;
   return t;
 }
 
 /* Allocate a TYPE_CODE_FLAGS type structure associated with GDBARCH.
-   NAME is the type name.  LENGTH is the size of the flag word in bytes.  */
+   NAME is the type name.  BIT is the size of the flag word in bits.  */
 
 struct type *
-arch_flags_type (struct gdbarch *gdbarch, const char *name, int length)
+arch_flags_type (struct gdbarch *gdbarch, const char *name, int bit)
 {
-  int max_nfields = length * TARGET_CHAR_BIT;
   struct type *type;
 
-  type = arch_type (gdbarch, TYPE_CODE_FLAGS, length, name);
+  type = arch_type (gdbarch, TYPE_CODE_FLAGS, bit, name);
   TYPE_UNSIGNED (type) = 1;
   TYPE_NFIELDS (type) = 0;
   /* Pre-allocate enough space assuming every field is one bit.  */
   TYPE_FIELDS (type)
-    = (struct field *) TYPE_ZALLOC (type, max_nfields * sizeof (struct field));
+    = (struct field *) TYPE_ZALLOC (type, bit * sizeof (struct field));
 
   return type;
 }
@@ -5110,7 +5190,7 @@ gdbtypes_post_init (struct gdbarch *gdba
 
   /* Basic types.  */
   builtin_type->builtin_void
-    = arch_type (gdbarch, TYPE_CODE_VOID, 1, "void");
+    = arch_type (gdbarch, TYPE_CODE_VOID, TARGET_CHAR_BIT, "void");
   builtin_type->builtin_char
     = arch_integer_type (gdbarch, TARGET_CHAR_BIT,
 			 !gdbarch_char_signed (gdbarch), "char");
@@ -5161,9 +5241,9 @@ gdbtypes_post_init (struct gdbarch *gdba
     = arch_complex_type (gdbarch, "double complex",
 			 builtin_type->builtin_double);
   builtin_type->builtin_string
-    = arch_type (gdbarch, TYPE_CODE_STRING, 1, "string");
+    = arch_type (gdbarch, TYPE_CODE_STRING, TARGET_CHAR_BIT, "string");
   builtin_type->builtin_bool
-    = arch_type (gdbarch, TYPE_CODE_BOOL, 1, "bool");
+    = arch_type (gdbarch, TYPE_CODE_BOOL, TARGET_CHAR_BIT, "bool");
 
   /* The following three are about decimal floating point types, which
      are 32-bits, 64-bits and 128-bits respectively.  */
@@ -5260,7 +5340,7 @@ objfile_type (struct objfile *objfile)
 
   /* Basic types.  */
   objfile_type->builtin_void
-    = init_type (objfile, TYPE_CODE_VOID, 1, "void");
+    = init_type (objfile, TYPE_CODE_VOID, TARGET_CHAR_BIT, "void");
   objfile_type->builtin_char
     = init_integer_type (objfile, TARGET_CHAR_BIT,
 			 !gdbarch_char_signed (gdbarch), "char");
@@ -5312,29 +5392,26 @@ objfile_type (struct objfile *objfile)
   /* The following set of types is used for symbols with no
      debug information.  */
   objfile_type->nodebug_text_symbol
-    = init_type (objfile, TYPE_CODE_FUNC, 1,
+    = init_type (objfile, TYPE_CODE_FUNC, TARGET_CHAR_BIT,
 		 "<text variable, no debug info>");
-  TYPE_TARGET_TYPE (objfile_type->nodebug_text_symbol)
-    = objfile_type->builtin_int;
   objfile_type->nodebug_text_gnu_ifunc_symbol
-    = init_type (objfile, TYPE_CODE_FUNC, 1,
+    = init_type (objfile, TYPE_CODE_FUNC, TARGET_CHAR_BIT,
 		 "<text gnu-indirect-function variable, no debug info>");
+  /* Ifunc resolvers return a function address.  */
   TYPE_TARGET_TYPE (objfile_type->nodebug_text_gnu_ifunc_symbol)
-    = objfile_type->nodebug_text_symbol;
+    = init_integer_type (objfile, gdbarch_addr_bit (gdbarch), 1,
+			 "__IFUNC_RESOLVER_RET");
   TYPE_GNU_IFUNC (objfile_type->nodebug_text_gnu_ifunc_symbol) = 1;
   objfile_type->nodebug_got_plt_symbol
     = init_pointer_type (objfile, gdbarch_addr_bit (gdbarch),
 			 "<text from jump slot in .got.plt, no debug info>",
 			 objfile_type->nodebug_text_symbol);
   objfile_type->nodebug_data_symbol
-    = init_integer_type (objfile, gdbarch_int_bit (gdbarch), 0,
-			 "<data variable, no debug info>");
+    = init_nodebug_var_type (objfile, "<data variable, no debug info>");
   objfile_type->nodebug_unknown_symbol
-    = init_integer_type (objfile, TARGET_CHAR_BIT, 0,
-			 "<variable (not text or data), no debug info>");
+    = init_nodebug_var_type (objfile, "<variable (not text or data), no debug info>");
   objfile_type->nodebug_tls_symbol
-    = init_integer_type (objfile, gdbarch_int_bit (gdbarch), 0,
-			 "<thread local variable, no debug info>");
+    = init_nodebug_var_type (objfile, "<thread local variable, no debug info>");
 
   /* NOTE: on some targets, addresses and pointers are not necessarily
      the same.
@@ -5363,8 +5440,6 @@ objfile_type (struct objfile *objfile)
   return objfile_type;
 }
 
-extern initialize_file_ftype _initialize_gdbtypes;
-
 void
 _initialize_gdbtypes (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbtypes.h ./gdb/gdbtypes.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdbtypes.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdbtypes.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 
 /* Internal type definitions for GDB.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support, using pieces from other GDB modules.
 
@@ -46,6 +46,7 @@
 
 #include "hashtab.h"
 #include "common/offset-type.h"
+#include "common/enum-flags.h"
 
 /* Forward declarations for prototypes.  */
 struct field;
@@ -196,6 +197,8 @@ enum type_instance_flag_value
   TYPE_INSTANCE_FLAG_ATOMIC = (1 << 8)
 };
 
+DEF_ENUM_FLAGS_TYPE (enum type_instance_flag_value, type_instance_flags);
+
 /* * Unsigned integer type.  If this is not set for a TYPE_CODE_INT,
    the type is signed (unless TYPE_NOSIGN (below) is set).  */
 
@@ -221,13 +224,6 @@ enum type_instance_flag_value
 
 #define TYPE_TARGET_STUB(t)	(TYPE_MAIN_TYPE (t)->flag_target_stub)
 
-/* * Static type.  If this is set, the corresponding type had 
-   a static modifier.
-   Note: This may be unnecessary, since static data members
-   are indicated by other means (bitpos == -1).  */
-
-#define TYPE_STATIC(t)		(TYPE_MAIN_TYPE (t)->flag_static)
-
 /* * This is a function type which appears to have a prototype.  We
    need this for function calls in order to tell us if it's necessary
    to coerce the args, or to just do the standard conversions.  This
@@ -311,25 +307,25 @@ enum type_instance_flag_value
 /* * Constant type.  If this is set, the corresponding type has a
    const modifier.  */
 
-#define TYPE_CONST(t) (TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_CONST)
+#define TYPE_CONST(t) ((TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_CONST) != 0)
 
 /* * Volatile type.  If this is set, the corresponding type has a
    volatile modifier.  */
 
 #define TYPE_VOLATILE(t) \
-  (TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_VOLATILE)
+  ((TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_VOLATILE) != 0)
 
 /* * Restrict type.  If this is set, the corresponding type has a
    restrict modifier.  */
 
 #define TYPE_RESTRICT(t) \
-  (TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_RESTRICT)
+  ((TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_RESTRICT) != 0)
 
 /* * Atomic type.  If this is set, the corresponding type has an
    _Atomic modifier.  */
 
 #define TYPE_ATOMIC(t) \
-  (TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_ATOMIC)
+  ((TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_ATOMIC) != 0)
 
 /* * True if this type represents either an lvalue or lvalue reference type.  */
 
@@ -356,10 +352,10 @@ enum type_instance_flag_value
    is instruction space, and for data objects is data memory.  */
 
 #define TYPE_CODE_SPACE(t) \
-  (TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_CODE_SPACE)
+  ((TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_CODE_SPACE) != 0)
 
 #define TYPE_DATA_SPACE(t) \
-  (TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_DATA_SPACE)
+  ((TYPE_INSTANCE_FLAGS (t) & TYPE_INSTANCE_FLAG_DATA_SPACE) != 0)
 
 /* * Address class flags.  Some environments provide for pointers
    whose size is different from that of a normal pointer or address
@@ -422,6 +418,9 @@ enum dynamic_prop_node_kind
   /* A property representing DW_AT_allocated.  The presence of this attribute
      indicated that the object of the type can be associated.  */
   DYN_PROP_ASSOCIATED,
+
+  /* A property providing an array's byte stride.  */
+  DYN_PROP_BYTE_STRIDE,
 };
 
 /* * List for dynamic type attributes.  */
@@ -575,12 +574,11 @@ union type_specific
 
   struct gnat_aux_type *gnat_stuff;
 
-  /* * FLOATFORMAT is for TYPE_CODE_FLT.  It is a pointer to two
-     floatformat objects that describe the floating-point value
-     that resides within the type.  The first is for big endian
-     targets and the second is for little endian targets.  */
+  /* * FLOATFORMAT is for TYPE_CODE_FLT.  It is a pointer to a
+     floatformat object that describes the floating-point value
+     that resides within the type.  */
 
-  const struct floatformat **floatformat;
+  const struct floatformat *floatformat;
 
   /* * For TYPE_CODE_FUNC and TYPE_CODE_METHOD types.  */
 
@@ -844,12 +842,6 @@ struct fn_field
   unsigned int is_volatile:1;
   unsigned int is_private:1;
   unsigned int is_protected:1;
-  unsigned int is_public:1;
-  unsigned int is_abstract:1;
-  unsigned int is_static:1;
-  unsigned int is_final:1;
-  unsigned int is_synchronized:1;
-  unsigned int is_native:1;
   unsigned int is_artificial:1;
 
   /* * A stub method only has some fields valid (but they are enough
@@ -863,7 +855,7 @@ struct fn_field
 
   /* * Unused.  */
 
-  unsigned int dummy:3;
+  unsigned int dummy:9;
 
   /* * Index into that baseclass's virtual function table, minus 2;
      else if static: VOFFSET_STATIC; else: 0.  */
@@ -874,7 +866,7 @@ struct fn_field
 
 };
 
-struct typedef_field
+struct decl_field
 {
   /* * Unqualified name to be prefixed by owning class qualified
      name.  */
@@ -884,6 +876,12 @@ struct typedef_field
   /* * Type this typedef named NAME represents.  */
 
   struct type *type;
+
+  /* * True if this field was declared protected, false otherwise.  */
+  unsigned int is_protected : 1;
+
+  /* * True if this field was declared private, false otherwise.  */
+  unsigned int is_private : 1;
 };
 
 /* * C++ language-specific information for TYPE_CODE_STRUCT and
@@ -983,10 +981,17 @@ struct cplus_struct_type
     /* * typedefs defined inside this class.  typedef_field points to
        an array of typedef_field_count elements.  */
 
-    struct typedef_field *typedef_field;
+    struct decl_field *typedef_field;
 
     unsigned typedef_field_count;
 
+    /* * The nested types defined by this type.  nested_types points to
+       an array of nested_types_count elements.  */
+
+    struct decl_field *nested_types;
+
+    unsigned nested_types_count;
+
     /* * The template arguments.  This is an array with
        N_TEMPLATE_ARGUMENTS elements.  This is NULL for non-template
        classes.  */
@@ -1405,13 +1410,7 @@ extern void set_type_vptr_basetype (stru
 #define TYPE_FN_FIELD_VOLATILE(thisfn, n) ((thisfn)[n].is_volatile)
 #define TYPE_FN_FIELD_PRIVATE(thisfn, n) ((thisfn)[n].is_private)
 #define TYPE_FN_FIELD_PROTECTED(thisfn, n) ((thisfn)[n].is_protected)
-#define TYPE_FN_FIELD_PUBLIC(thisfn, n) ((thisfn)[n].is_public)
-#define TYPE_FN_FIELD_STATIC(thisfn, n) ((thisfn)[n].is_static)
-#define TYPE_FN_FIELD_FINAL(thisfn, n) ((thisfn)[n].is_final)
-#define TYPE_FN_FIELD_SYNCHRONIZED(thisfn, n) ((thisfn)[n].is_synchronized)
-#define TYPE_FN_FIELD_NATIVE(thisfn, n) ((thisfn)[n].is_native)
 #define TYPE_FN_FIELD_ARTIFICIAL(thisfn, n) ((thisfn)[n].is_artificial)
-#define TYPE_FN_FIELD_ABSTRACT(thisfn, n) ((thisfn)[n].is_abstract)
 #define TYPE_FN_FIELD_STUB(thisfn, n) ((thisfn)[n].is_stub)
 #define TYPE_FN_FIELD_CONSTRUCTOR(thisfn, n) ((thisfn)[n].is_constructor)
 #define TYPE_FN_FIELD_FCONTEXT(thisfn, n) ((thisfn)[n].fcontext)
@@ -1419,6 +1418,7 @@ extern void set_type_vptr_basetype (stru
 #define TYPE_FN_FIELD_VIRTUAL_P(thisfn, n) ((thisfn)[n].voffset > 1)
 #define TYPE_FN_FIELD_STATIC_P(thisfn, n) ((thisfn)[n].voffset == VOFFSET_STATIC)
 
+/* Accessors for typedefs defined by a class.  */
 #define TYPE_TYPEDEF_FIELD_ARRAY(thistype) \
   TYPE_CPLUS_SPECIFIC (thistype)->typedef_field
 #define TYPE_TYPEDEF_FIELD(thistype, n) \
@@ -1429,6 +1429,25 @@ extern void set_type_vptr_basetype (stru
   TYPE_TYPEDEF_FIELD (thistype, n).type
 #define TYPE_TYPEDEF_FIELD_COUNT(thistype) \
   TYPE_CPLUS_SPECIFIC (thistype)->typedef_field_count
+#define TYPE_TYPEDEF_FIELD_PROTECTED(thistype, n) \
+  TYPE_TYPEDEF_FIELD (thistype, n).is_protected
+#define TYPE_TYPEDEF_FIELD_PRIVATE(thistype, n)        \
+  TYPE_TYPEDEF_FIELD (thistype, n).is_private
+
+#define TYPE_NESTED_TYPES_ARRAY(thistype)	\
+  TYPE_CPLUS_SPECIFIC (thistype)->nested_types
+#define TYPE_NESTED_TYPES_FIELD(thistype, n) \
+  TYPE_CPLUS_SPECIFIC (thistype)->nested_types[n]
+#define TYPE_NESTED_TYPES_FIELD_NAME(thistype, n) \
+  TYPE_NESTED_TYPES_FIELD (thistype, n).name
+#define TYPE_NESTED_TYPES_FIELD_TYPE(thistype, n) \
+  TYPE_NESTED_TYPES_FIELD (thistype, n).type
+#define TYPE_NESTED_TYPES_COUNT(thistype) \
+  TYPE_CPLUS_SPECIFIC (thistype)->nested_types_count
+#define TYPE_NESTED_TYPES_FIELD_PROTECTED(thistype, n) \
+  TYPE_NESTED_TYPES_FIELD (thistype, n).is_protected
+#define TYPE_NESTED_TYPES_FIELD_PRIVATE(thistype, n)	\
+  TYPE_NESTED_TYPES_FIELD (thistype, n).is_private
 
 #define TYPE_IS_OPAQUE(thistype) \
   (((TYPE_CODE (thistype) == TYPE_CODE_STRUCT) \
@@ -1450,6 +1469,9 @@ extern void set_type_vptr_basetype (stru
 #define TYPE_ERROR_NAME(type) \
   (TYPE_NAME (type) ? TYPE_NAME (type) : _("<error type>"))
 
+/* Given TYPE, return its floatformat.  */
+const struct floatformat *floatformat_from_type (const struct type *type);
+
 struct builtin_type
 {
   /* Integral types.  */
@@ -1699,7 +1721,7 @@ struct field *append_composite_type_fiel
    type is created using arch_flag_type().  Flags are then added using
    append_flag_type_field() and append_flag_type_flag().  */
 extern struct type *arch_flags_type (struct gdbarch *gdbarch,
-				     const char *name, int length);
+				     const char *name, int bit);
 extern void append_flags_type_field (struct type *type,
 				     int start_bitpos, int nr_bits,
 				     struct type *field_type, const char *name);
@@ -1772,7 +1794,8 @@ extern struct type *create_static_range_
 
 
 extern struct type *create_array_type_with_stride
-  (struct type *, struct type *, struct type *, unsigned int);
+  (struct type *, struct type *, struct type *,
+   struct dynamic_prop *, unsigned int);
 
 extern struct type *create_range_type (struct type *, struct type *,
 				       const struct dynamic_prop *,
@@ -1941,13 +1964,15 @@ extern int can_dereference (struct type 
 
 extern int is_integral_type (struct type *);
 
+extern int is_floating_type (struct type *);
+
 extern int is_scalar_type (struct type *type);
 
 extern int is_scalar_type_recursive (struct type *);
 
 extern int class_or_union_p (const struct type *);
 
-extern void maintenance_print_type (char *, int);
+extern void maintenance_print_type (const char *, int);
 
 extern htab_t create_copied_types_hash (struct objfile *objfile);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_usleep.c ./gdb/gdb_usleep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_usleep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_usleep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_usleep.h ./gdb/gdb_usleep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_usleep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_usleep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_vfork.h ./gdb/gdb_vfork.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_vfork.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_vfork.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GDB-friendly replacement for <vfork.h>.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_wchar.h ./gdb/gdb_wchar.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gdb_wchar.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gdb_wchar.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Wide characters for gdb
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/glibc-tdep.c ./gdb/glibc-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/glibc-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/glibc-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the GNU C Library (glibc).
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/glibc-tdep.h ./gdb/glibc-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/glibc-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/glibc-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the GNU C Library (glibc).
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/aclocal.m4 ./gdb/gnulib/aclocal.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/aclocal.m4	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gnulib/aclocal.m4	2018-01-09 02:04:57.000000000 +0000
@@ -1016,27 +1016,50 @@ m4_include([import/m4/00gnulib.m4])
 m4_include([import/m4/absolute-header.m4])
 m4_include([import/m4/alloca.m4])
 m4_include([import/m4/canonicalize.m4])
+m4_include([import/m4/chdir-long.m4])
+m4_include([import/m4/close.m4])
+m4_include([import/m4/closedir.m4])
 m4_include([import/m4/codeset.m4])
 m4_include([import/m4/configmake.m4])
+m4_include([import/m4/d-ino.m4])
+m4_include([import/m4/d-type.m4])
 m4_include([import/m4/dirent_h.m4])
 m4_include([import/m4/dirfd.m4])
 m4_include([import/m4/dirname.m4])
 m4_include([import/m4/double-slash-root.m4])
+m4_include([import/m4/dup.m4])
+m4_include([import/m4/dup2.m4])
 m4_include([import/m4/eealloc.m4])
+m4_include([import/m4/environ.m4])
 m4_include([import/m4/errno_h.m4])
+m4_include([import/m4/error.m4])
 m4_include([import/m4/exponentd.m4])
 m4_include([import/m4/exponentl.m4])
 m4_include([import/m4/extensions.m4])
 m4_include([import/m4/extern-inline.m4])
+m4_include([import/m4/fchdir.m4])
 m4_include([import/m4/fcntl-o.m4])
+m4_include([import/m4/fcntl.m4])
+m4_include([import/m4/fcntl_h.m4])
+m4_include([import/m4/fdopendir.m4])
+m4_include([import/m4/filenamecat.m4])
 m4_include([import/m4/flexmember.m4])
 m4_include([import/m4/float_h.m4])
 m4_include([import/m4/fnmatch.m4])
 m4_include([import/m4/fpieee.m4])
 m4_include([import/m4/frexp.m4])
 m4_include([import/m4/frexpl.m4])
+m4_include([import/m4/fstat.m4])
+m4_include([import/m4/fstatat.m4])
+m4_include([import/m4/getcwd-abort-bug.m4])
+m4_include([import/m4/getcwd-path-max.m4])
+m4_include([import/m4/getcwd.m4])
+m4_include([import/m4/getdtablesize.m4])
+m4_include([import/m4/getlogin_r.m4])
+m4_include([import/m4/getprogname.m4])
 m4_include([import/m4/gettimeofday.m4])
 m4_include([import/m4/glibc21.m4])
+m4_include([import/m4/glob.m4])
 m4_include([import/m4/gnulib-common.m4])
 m4_include([import/m4/gnulib-comp.m4])
 m4_include([import/m4/hard-locale.m4])
@@ -1062,15 +1085,28 @@ m4_include([import/m4/mbsrtowcs.m4])
 m4_include([import/m4/mbstate_t.m4])
 m4_include([import/m4/memchr.m4])
 m4_include([import/m4/memmem.m4])
+m4_include([import/m4/mempcpy.m4])
+m4_include([import/m4/memrchr.m4])
 m4_include([import/m4/mmap-anon.m4])
+m4_include([import/m4/mode_t.m4])
+m4_include([import/m4/msvc-inval.m4])
+m4_include([import/m4/msvc-nothrow.m4])
 m4_include([import/m4/multiarch.m4])
 m4_include([import/m4/nocrash.m4])
 m4_include([import/m4/off_t.m4])
+m4_include([import/m4/open.m4])
+m4_include([import/m4/openat.m4])
+m4_include([import/m4/opendir.m4])
 m4_include([import/m4/pathmax.m4])
 m4_include([import/m4/rawmemchr.m4])
+m4_include([import/m4/readdir.m4])
 m4_include([import/m4/readlink.m4])
+m4_include([import/m4/realloc.m4])
 m4_include([import/m4/rename.m4])
+m4_include([import/m4/rewinddir.m4])
 m4_include([import/m4/rmdir.m4])
+m4_include([import/m4/save-cwd.m4])
+m4_include([import/m4/setenv.m4])
 m4_include([import/m4/signal_h.m4])
 m4_include([import/m4/ssize_t.m4])
 m4_include([import/m4/stat.m4])
@@ -1080,6 +1116,8 @@ m4_include([import/m4/stdint.m4])
 m4_include([import/m4/stdio_h.m4])
 m4_include([import/m4/stdlib_h.m4])
 m4_include([import/m4/strchrnul.m4])
+m4_include([import/m4/strdup.m4])
+m4_include([import/m4/strerror.m4])
 m4_include([import/m4/string_h.m4])
 m4_include([import/m4/strstr.m4])
 m4_include([import/m4/strtok_r.m4])
@@ -1088,6 +1126,7 @@ m4_include([import/m4/sys_stat_h.m4])
 m4_include([import/m4/sys_time_h.m4])
 m4_include([import/m4/sys_types_h.m4])
 m4_include([import/m4/time_h.m4])
+m4_include([import/m4/unistd-safer.m4])
 m4_include([import/m4/unistd_h.m4])
 m4_include([import/m4/warn-on-use.m4])
 m4_include([import/m4/wchar_h.m4])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/config.in ./gdb/gnulib/config.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/config.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gnulib/config.in	2018-01-09 02:04:57.000000000 +0000
@@ -49,6 +49,12 @@
 /* Define to 1 if // is a file system root distinct from /. */
 #undef DOUBLE_SLASH_IS_DISTINCT_ROOT
 
+/* Define if struct dirent has a member d_ino that actually works. */
+#undef D_INO_IN_DIRENT
+
+/* Define this to 1 if F_DUPFD behavior does not match POSIX */
+#undef FCNTL_DUPFD_BUGGY
+
 /* Define to nothing if C supports flexible array members, and to 1 if it does
    not. That way, with a declaration like 'struct s { int n; double
    d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99
@@ -74,9 +80,21 @@
 #undef GNULIB_CANONICALIZE_LGPL
 
 /* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fdopendir shall be considered present. */
+#undef GNULIB_FDOPENDIR
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
    whether the gnulib module fscanf shall be considered present. */
 #undef GNULIB_FSCANF
 
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module getcwd shall be considered present. */
+#undef GNULIB_GETCWD
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module openat shall be considered present. */
+#undef GNULIB_OPENAT
+
 /* Define to 1 if printf and friends should be labeled with attribute
    "__gnu_printf__" instead of "__printf__" */
 #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU
@@ -85,6 +103,10 @@
    whether the gnulib module scanf shall be considered present. */
 #undef GNULIB_SCANF
 
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module strerror shall be considered present. */
+#undef GNULIB_STRERROR
+
 /* Define to 1 when the gnulib module canonicalize_file_name should be tested.
    */
 #undef GNULIB_TEST_CANONICALIZE_FILE_NAME
@@ -92,15 +114,57 @@
 /* Define to 1 when the gnulib module chdir should be tested. */
 #undef GNULIB_TEST_CHDIR
 
+/* Define to 1 when the gnulib module cloexec should be tested. */
+#undef GNULIB_TEST_CLOEXEC
+
+/* Define to 1 when the gnulib module close should be tested. */
+#undef GNULIB_TEST_CLOSE
+
+/* Define to 1 when the gnulib module closedir should be tested. */
+#undef GNULIB_TEST_CLOSEDIR
+
 /* Define to 1 when the gnulib module dirfd should be tested. */
 #undef GNULIB_TEST_DIRFD
 
+/* Define to 1 when the gnulib module dup should be tested. */
+#undef GNULIB_TEST_DUP
+
+/* Define to 1 when the gnulib module dup2 should be tested. */
+#undef GNULIB_TEST_DUP2
+
+/* Define to 1 when the gnulib module environ should be tested. */
+#undef GNULIB_TEST_ENVIRON
+
+/* Define to 1 when the gnulib module fchdir should be tested. */
+#undef GNULIB_TEST_FCHDIR
+
+/* Define to 1 when the gnulib module fcntl should be tested. */
+#undef GNULIB_TEST_FCNTL
+
+/* Define to 1 when the gnulib module fdopendir should be tested. */
+#undef GNULIB_TEST_FDOPENDIR
+
 /* Define to 1 when the gnulib module frexp should be tested. */
 #undef GNULIB_TEST_FREXP
 
 /* Define to 1 when the gnulib module frexpl should be tested. */
 #undef GNULIB_TEST_FREXPL
 
+/* Define to 1 when the gnulib module fstat should be tested. */
+#undef GNULIB_TEST_FSTAT
+
+/* Define to 1 when the gnulib module fstatat should be tested. */
+#undef GNULIB_TEST_FSTATAT
+
+/* Define to 1 when the gnulib module getcwd should be tested. */
+#undef GNULIB_TEST_GETCWD
+
+/* Define to 1 when the gnulib module getdtablesize should be tested. */
+#undef GNULIB_TEST_GETDTABLESIZE
+
+/* Define to 1 when the gnulib module getlogin_r should be tested. */
+#undef GNULIB_TEST_GETLOGIN_R
+
 /* Define to 1 when the gnulib module gettimeofday should be tested. */
 #undef GNULIB_TEST_GETTIMEOFDAY
 
@@ -125,33 +189,69 @@
 /* Define to 1 when the gnulib module memmem should be tested. */
 #undef GNULIB_TEST_MEMMEM
 
+/* Define to 1 when the gnulib module mempcpy should be tested. */
+#undef GNULIB_TEST_MEMPCPY
+
+/* Define to 1 when the gnulib module memrchr should be tested. */
+#undef GNULIB_TEST_MEMRCHR
+
+/* Define to 1 when the gnulib module open should be tested. */
+#undef GNULIB_TEST_OPEN
+
+/* Define to 1 when the gnulib module openat should be tested. */
+#undef GNULIB_TEST_OPENAT
+
+/* Define to 1 when the gnulib module opendir should be tested. */
+#undef GNULIB_TEST_OPENDIR
+
 /* Define to 1 when the gnulib module rawmemchr should be tested. */
 #undef GNULIB_TEST_RAWMEMCHR
 
+/* Define to 1 when the gnulib module readdir should be tested. */
+#undef GNULIB_TEST_READDIR
+
 /* Define to 1 when the gnulib module readlink should be tested. */
 #undef GNULIB_TEST_READLINK
 
+/* Define to 1 when the gnulib module realloc-posix should be tested. */
+#undef GNULIB_TEST_REALLOC_POSIX
+
 /* Define to 1 when the gnulib module realpath should be tested. */
 #undef GNULIB_TEST_REALPATH
 
 /* Define to 1 when the gnulib module rename should be tested. */
 #undef GNULIB_TEST_RENAME
 
+/* Define to 1 when the gnulib module rewinddir should be tested. */
+#undef GNULIB_TEST_REWINDDIR
+
 /* Define to 1 when the gnulib module rmdir should be tested. */
 #undef GNULIB_TEST_RMDIR
 
+/* Define to 1 when the gnulib module setenv should be tested. */
+#undef GNULIB_TEST_SETENV
+
 /* Define to 1 when the gnulib module stat should be tested. */
 #undef GNULIB_TEST_STAT
 
 /* Define to 1 when the gnulib module strchrnul should be tested. */
 #undef GNULIB_TEST_STRCHRNUL
 
+/* Define to 1 when the gnulib module strdup should be tested. */
+#undef GNULIB_TEST_STRDUP
+
+/* Define to 1 when the gnulib module strerror should be tested. */
+#undef GNULIB_TEST_STRERROR
+
 /* Define to 1 when the gnulib module strstr should be tested. */
 #undef GNULIB_TEST_STRSTR
 
 /* Define to 1 when the gnulib module strtok_r should be tested. */
 #undef GNULIB_TEST_STRTOK_R
 
+/* Define to 1 when the gnulib module unsetenv should be tested. */
+#undef GNULIB_TEST_UNSETENV
+
 /* Define to 1 if you have 'alloca' after including <alloca.h>, a header that
    may be supplied by this distribution. */
 #undef HAVE_ALLOCA
@@ -169,6 +269,9 @@
 /* Define to 1 if you have the `canonicalize_file_name' function. */
 #undef HAVE_CANONICALIZE_FILE_NAME
 
+/* Define to 1 if you have the `closedir' function. */
+#undef HAVE_CLOSEDIR
+
 /* Define to 1 if you have the declaration of `alarm', and to 0 if you don't.
    */
 #undef HAVE_DECL_ALARM
@@ -177,10 +280,34 @@
    */
 #undef HAVE_DECL_DIRFD
 
+/* Define to 1 if you have the declaration of `fchdir', and to 0 if you don't.
+   */
+#undef HAVE_DECL_FCHDIR
+
+/* Define to 1 if you have the declaration of `fdopendir', and to 0 if you
+   don't. */
+#undef HAVE_DECL_FDOPENDIR
+
+/* Define to 1 if you have the declaration of `getcwd', and to 0 if you don't.
+   */
+#undef HAVE_DECL_GETCWD
+
 /* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
    don't. */
 #undef HAVE_DECL_GETC_UNLOCKED
 
+/* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you
+   don't. */
+#undef HAVE_DECL_GETDTABLESIZE
+
+/* Define to 1 if you have the declaration of `getlogin', and to 0 if you
+   don't. */
+#undef HAVE_DECL_GETLOGIN
+
+/* Define to 1 if you have the declaration of `getlogin_r', and to 0 if you
+   don't. */
+#undef HAVE_DECL_GETLOGIN_R
+
 /* Define to 1 if you have the declaration of `isblank', and to 0 if you
    don't. */
 #undef HAVE_DECL_ISBLANK
@@ -201,6 +328,30 @@
    */
 #undef HAVE_DECL_MEMMEM
 
+/* Define to 1 if you have the declaration of `memrchr', and to 0 if you
+   don't. */
+#undef HAVE_DECL_MEMRCHR
+
+/* Define to 1 if you have the declaration of `program_invocation_name', and
+   to 0 if you don't. */
+#undef HAVE_DECL_PROGRAM_INVOCATION_NAME
+
+/* Define to 1 if you have the declaration of `program_invocation_short_name',
+   and to 0 if you don't. */
+#undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
+
+/* Define to 1 if you have the declaration of `setenv', and to 0 if you don't.
+   */
+#undef HAVE_DECL_SETENV
+
+/* Define to 1 if you have the declaration of `strdup', and to 0 if you don't.
+   */
+#undef HAVE_DECL_STRDUP
+
+/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
+   don't. */
+#undef HAVE_DECL_STRERROR_R
+
 /* Define to 1 if you have the declaration of `strtok_r', and to 0 if you
    don't. */
 #undef HAVE_DECL_STRTOK_R
@@ -209,12 +360,35 @@
    don't. */
 #undef HAVE_DECL_TOWLOWER
 
+/* Define to 1 if you have the declaration of `unsetenv', and to 0 if you
+   don't. */
+#undef HAVE_DECL_UNSETENV
+
+/* Define to 1 if you have the declaration of `__argv', and to 0 if you don't.
+   */
+#undef HAVE_DECL___ARGV
+
 /* Define to 1 if you have the <dirent.h> header file. */
 #undef HAVE_DIRENT_H
 
 /* Define to 1 if you have the `dirfd' function. */
 #undef HAVE_DIRFD
 
+/* Define to 1 if you have the 'dup2' function. */
+#undef HAVE_DUP2
+
+/* Define if you have the declaration of environ. */
+#undef HAVE_ENVIRON_DECL
+
+/* Define to 1 if you have the `fchdir' function. */
+#undef HAVE_FCHDIR
+
+/* Define to 1 if you have the `fcntl' function. */
+#undef HAVE_FCNTL
+
+/* Define to 1 if you have the `fdopendir' function. */
+#undef HAVE_FDOPENDIR
+
 /* Define to 1 if you have the <features.h> header file. */
 #undef HAVE_FEATURES_H
 
@@ -224,12 +398,40 @@
 /* Define if the frexpl() function is available. */
 #undef HAVE_FREXPL
 
+/* Define to 1 if you have the `fstatat' function. */
+#undef HAVE_FSTATAT
+
 /* Define to 1 if you have the `getcwd' function. */
 #undef HAVE_GETCWD
 
+/* Define to 1 if getcwd works, but with shorter paths than is generally
+   tested with the replacement. */
+#undef HAVE_GETCWD_SHORTER
+
+/* Define to 1 if you have the `getdtablesize' function. */
+#undef HAVE_GETDTABLESIZE
+
+/* Define to 1 if you have the `getexecname' function. */
+#undef HAVE_GETEXECNAME
+
+/* Define to 1 if you have the `getlogin_r' function. */
+#undef HAVE_GETLOGIN_R
+
+/* Define to 1 if you have the `getpagesize' function. */
+#undef HAVE_GETPAGESIZE
+
+/* Define to 1 if you have the `getprogname' function. */
+#undef HAVE_GETPROGNAME
+
+/* Define to 1 if you have the `getpwnam_r' function. */
+#undef HAVE_GETPWNAM_R
+
 /* Define to 1 if you have the `gettimeofday' function. */
 #undef HAVE_GETTIMEOFDAY
 
+/* Define to 1 if you have the <glob.h> header file. */
+#undef HAVE_GLOB_H
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
@@ -294,9 +496,33 @@
 /* Define to 1 if you have the `mempcpy' function. */
 #undef HAVE_MEMPCPY
 
+/* Define to 1 if you have the `memrchr' function. */
+#undef HAVE_MEMRCHR
+
+/* Define to 1 if getcwd minimally works, that is, its result can be trusted
+   when it succeeds. */
+#undef HAVE_MINIMALLY_WORKING_GETCWD
+
 /* Define to 1 if you have the `mprotect' function. */
 #undef HAVE_MPROTECT
 
+/* Define to 1 on MSVC platforms that have the "invalid parameter handler"
+   concept. */
+#undef HAVE_MSVC_INVALID_PARAMETER_HANDLER
+
+/* Define to 1 if you have the `openat' function. */
+#undef HAVE_OPENAT
+
+/* Define to 1 if you have the `opendir' function. */
+#undef HAVE_OPENDIR
+
+/* Define to 1 if getcwd works, except it sometimes fails when it shouldn't,
+   setting errno to ERANGE, ENAMETOOLONG, or ENOENT. */
+#undef HAVE_PARTLY_WORKING_GETCWD
+
+/* Define to 1 if you have the `pipe' function. */
+#undef HAVE_PIPE
+
 /* Define to 1 if you have the `rawmemchr' function. */
 #undef HAVE_RAWMEMCHR
 
@@ -439,6 +665,9 @@
 /* Define to 1 if fchownat is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_FCHOWNAT
 
+/* Define to 1 if fcntl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FCNTL
+
 /* Define to 1 if fdatasync is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_FDATASYNC
 
@@ -721,6 +950,9 @@
 /* Define to 1 if modfl is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_MODFL
 
+/* Define to 1 if openat is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_OPENAT
+
 /* Define to 1 if opendir is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_OPENDIR
 
@@ -1117,15 +1349,33 @@
 /* Define to 1 if _Exit is declared even after undefining macros. */
 #undef HAVE_RAW_DECL__EXIT
 
+/* Define to 1 if you have the `readdir' function. */
+#undef HAVE_READDIR
+
 /* Define to 1 if you have the `readlink' function. */
 #undef HAVE_READLINK
 
+/* Define if the 'realloc' function is POSIX compliant. */
+#undef HAVE_REALLOC_POSIX
+
 /* Define to 1 if you have the `realpath' function. */
 #undef HAVE_REALPATH
 
+/* Define to 1 if you have the `rewinddir' function. */
+#undef HAVE_REWINDDIR
+
 /* Define to 1 if 'long double' and 'double' have the same representation. */
 #undef HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
 
+/* Define to 1 if you have the <search.h> header file. */
+#undef HAVE_SEARCH_H
+
+/* Define to 1 if you have the `setdtablesize' function. */
+#undef HAVE_SETDTABLESIZE
+
+/* Define to 1 if you have the `setenv' function. */
+#undef HAVE_SETENV
+
 /* Define to 1 if 'sig_atomic_t' is a signed integer type. */
 #undef HAVE_SIGNED_SIG_ATOMIC_T
 
@@ -1147,6 +1397,12 @@
 /* Define to 1 if you have the `strchrnul' function. */
 #undef HAVE_STRCHRNUL
 
+/* Define to 1 if you have the `strdup' function. */
+#undef HAVE_STRDUP
+
+/* Define to 1 if you have the `strerror_r' function. */
+#undef HAVE_STRERROR_R
+
 /* Define to 1 if you have the <strings.h> header file. */
 #undef HAVE_STRINGS_H
 
@@ -1156,12 +1412,19 @@
 /* Define to 1 if you have the `strtok_r' function. */
 #undef HAVE_STRTOK_R
 
+/* Define if there is a member named d_type in the struct describing directory
+   headers. */
+#undef HAVE_STRUCT_DIRENT_D_TYPE
+
 /* Define to 1 if you have the `symlink' function. */
 #undef HAVE_SYMLINK
 
 /* Define to 1 if you have the <sys/bitypes.h> header file. */
 #undef HAVE_SYS_BITYPES_H
 
+/* Define to 1 if you have the <sys/cdefs.h> header file. */
+#undef HAVE_SYS_CDEFS_H
+
 /* Define to 1 if you have the <sys/inttypes.h> header file. */
 #undef HAVE_SYS_INTTYPES_H
 
@@ -1189,12 +1452,21 @@
 /* Define to 1 if you have the `towlower' function. */
 #undef HAVE_TOWLOWER
 
+/* Define to 1 if you have the `tsearch' function. */
+#undef HAVE_TSEARCH
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
+/* Define to 1 if you have the `unsetenv' function. */
+#undef HAVE_UNSETENV
+
 /* Define to 1 if the system has the type 'unsigned long long int'. */
 #undef HAVE_UNSIGNED_LONG_LONG_INT
 
+/* Define if you have a global __progname variable */
+#undef HAVE_VAR___PROGNAME
+
 /* Define to 1 if you have the <wchar.h> header file. */
 #undef HAVE_WCHAR_H
 
@@ -1219,6 +1491,10 @@
 /* Define to 1 if you have the `wmempcpy' function. */
 #undef HAVE_WMEMPCPY
 
+/* Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX
+   7.1. */
+#undef HAVE_WORKING_FSTATAT_ZERO_FLAG
+
 /* Define to 1 if O_NOATIME works. */
 #undef HAVE_WORKING_O_NOATIME
 
@@ -1231,6 +1507,9 @@
 /* Define to 1 if you have the `_ftime' function. */
 #undef HAVE__FTIME
 
+/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */
+#undef HAVE__SET_INVALID_PARAMETER_HANDLER
+
 /* Define as the bit index in the word where to find bit 0 of the exponent of
    'long double'. */
 #undef LDBL_EXPBIT0_BIT
@@ -1270,6 +1549,9 @@
 #endif
 
 
+/* Define to 1 if open() fails to recognize a trailing slash. */
+#undef OPEN_TRAILING_SLASH_BUG
+
 /* Define to the address where bug reports for this package should be sent. */
 #undef PACKAGE_BUGREPORT
 
@@ -1291,6 +1573,10 @@
 /* Define if <inttypes.h> exists and defines unusable PRI* macros. */
 #undef PRI_MACROS_BROKEN
 
+/* Define to the type that is the result of default argument promotions of
+   type mode_t. */
+#undef PROMOTED_MODE_T
+
 /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
    'ptrdiff_t'. */
 #undef PTRDIFF_T_SUFFIX
@@ -1317,6 +1603,9 @@
 /* Define to 1 if gnulib's dirfd() replacement is used. */
 #undef REPLACE_DIRFD
 
+/* Define to 1 if gnulib's fchdir() replacement is used. */
+#undef REPLACE_FCHDIR
+
 /* Define to 1 if stat needs help when passed a directory name with a trailing
    slash */
 #undef REPLACE_FUNC_STAT_DIR
@@ -1325,6 +1614,13 @@
    slash */
 #undef REPLACE_FUNC_STAT_FILE
 
+/* Define to 1 if open() should work around the inability to open a directory.
+   */
+#undef REPLACE_OPEN_DIRECTORY
+
+/* Define to 1 if strerror(0) does not return a message implying success. */
+#undef REPLACE_STRERROR_0
+
 /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
    'sig_atomic_t'. */
 #undef SIG_ATOMIC_T_SUFFIX
@@ -1347,6 +1643,9 @@
 /* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS
 
+/* Define to 1 if strerror_r returns char *. */
+#undef STRERROR_R_CHAR_P
+
 /* Enable extensions on AIX 3, Interix.  */
 #ifndef _ALL_SOURCE
 # undef _ALL_SOURCE
@@ -1407,6 +1706,9 @@
 #endif
 
 
+/* Define to 1 if unsetenv returns void instead of int. */
+#undef VOID_UNSETENV
+
 /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
    'wchar_t'. */
 #undef WCHAR_T_SUFFIX
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/configure ./gdb/gnulib/configure
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/configure	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gnulib/configure	2018-01-09 02:04:57.000000000 +0000
@@ -682,9 +682,6 @@ WINDOWS_64_BIT_OFF_T
 NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H
 NEXT_SYS_TYPES_H
 MKDIR_P
-WINDOWS_64_BIT_ST_SIZE
-NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H
-NEXT_SYS_STAT_H
 NEXT_AS_FIRST_DIRECTIVE_STRING_H
 NEXT_STRING_H
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H
@@ -992,39 +989,6 @@ GNULIB_WCTOB
 GNULIB_BTOWC
 NEXT_AS_FIRST_DIRECTIVE_MATH_H
 NEXT_MATH_H
-REPLACE_UTIMENSAT
-REPLACE_STAT
-REPLACE_MKNOD
-REPLACE_MKFIFO
-REPLACE_MKDIR
-REPLACE_LSTAT
-REPLACE_FUTIMENS
-REPLACE_FSTATAT
-REPLACE_FSTAT
-HAVE_UTIMENSAT
-HAVE_MKNODAT
-HAVE_MKNOD
-HAVE_MKFIFOAT
-HAVE_MKFIFO
-HAVE_MKDIRAT
-HAVE_LSTAT
-HAVE_LCHMOD
-HAVE_FUTIMENS
-HAVE_FSTATAT
-HAVE_FCHMODAT
-GNULIB_UTIMENSAT
-GNULIB_STAT
-GNULIB_MKNODAT
-GNULIB_MKNOD
-GNULIB_MKFIFOAT
-GNULIB_MKFIFO
-GNULIB_MKDIRAT
-GNULIB_LSTAT
-GNULIB_LCHMOD
-GNULIB_FUTIMENS
-GNULIB_FSTATAT
-GNULIB_FSTAT
-GNULIB_FCHMODAT
 LOCALCHARSET_TESTS_ENVIRONMENT
 GLIBC21
 NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H
@@ -1078,7 +1042,10 @@ GL_GENERATE_LIMITS_H_TRUE
 LIMITS_H
 NEXT_AS_FIRST_DIRECTIVE_LIMITS_H
 NEXT_LIMITS_H
-HAVE_WINSOCK2_H
+HAVE_SYS_CDEFS_H
+GL_GENERATE_GLOB_H_FALSE
+GL_GENERATE_GLOB_H_TRUE
+GLOB_H
 NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H
 NEXT_SYS_TIME_H
 REPLACE_STRUCT_TIMEVAL
@@ -1088,6 +1055,44 @@ HAVE_SYS_TIME_H
 HAVE_STRUCT_TIMEVAL
 HAVE_GETTIMEOFDAY
 GNULIB_GETTIMEOFDAY
+LTLIBINTL
+LIBINTL
+WINDOWS_64_BIT_ST_SIZE
+NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H
+NEXT_SYS_STAT_H
+REPLACE_UTIMENSAT
+REPLACE_STAT
+REPLACE_MKNOD
+REPLACE_MKFIFO
+REPLACE_MKDIR
+REPLACE_LSTAT
+REPLACE_FUTIMENS
+REPLACE_FSTATAT
+REPLACE_FSTAT
+HAVE_UTIMENSAT
+HAVE_MKNODAT
+HAVE_MKNOD
+HAVE_MKFIFOAT
+HAVE_MKFIFO
+HAVE_MKDIRAT
+HAVE_LSTAT
+HAVE_LCHMOD
+HAVE_FUTIMENS
+HAVE_FSTATAT
+HAVE_FCHMODAT
+GNULIB_UTIMENSAT
+GNULIB_STAT
+GNULIB_MKNODAT
+GNULIB_MKNOD
+GNULIB_MKFIFOAT
+GNULIB_MKFIFO
+GNULIB_MKDIRAT
+GNULIB_LSTAT
+GNULIB_LCHMOD
+GNULIB_FUTIMENS
+GNULIB_FSTATAT
+GNULIB_FSTAT
+GNULIB_FCHMODAT
 FREXPL_LIBM
 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
 FREXP_LIBM
@@ -1354,6 +1359,17 @@ GL_GENERATE_FLOAT_H_TRUE
 FLOAT_H
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H
 NEXT_FLOAT_H
+NEXT_AS_FIRST_DIRECTIVE_FCNTL_H
+NEXT_FCNTL_H
+REPLACE_OPENAT
+REPLACE_OPEN
+REPLACE_FCNTL
+HAVE_OPENAT
+HAVE_FCNTL
+GNULIB_OPENAT
+GNULIB_OPEN
+GNULIB_NONBLOCKING
+GNULIB_FCNTL
 EOVERFLOW_VALUE
 EOVERFLOW_HIDDEN
 ENOLINK_VALUE
@@ -1372,6 +1388,9 @@ PRAGMA_COLUMNS
 PRAGMA_SYSTEM_HEADER
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE
 INCLUDE_NEXT
+pkglibexecdir
+runstatedir
+lispdir
 REPLACE_FDOPENDIR
 REPLACE_DIRFD
 REPLACE_CLOSEDIR
@@ -1393,9 +1412,8 @@ GNULIB_CLOSEDIR
 GNULIB_REWINDDIR
 GNULIB_READDIR
 GNULIB_OPENDIR
-pkglibexecdir
-runstatedir
-lispdir
+HAVE_WINSOCK2_H
+HAVE_MSVC_INVALID_PARAMETER_HANDLER
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS
 UNISTD_H_HAVE_WINSOCK2_H
 REPLACE_WRITE
@@ -3306,34 +3324,49 @@ as_fn_append ac_func_list " getcwd"
 as_fn_append ac_func_list " readlink"
 as_fn_append ac_func_list " realpath"
 as_fn_append ac_header_list " sys/param.h"
+as_fn_append ac_header_list " unistd.h"
+as_fn_append ac_func_list " _set_invalid_parameter_handler"
+as_fn_append ac_header_list " sys/socket.h"
+as_fn_append ac_func_list " fchdir"
 as_fn_append ac_header_list " dirent.h"
+as_fn_append ac_func_list " fcntl"
+as_fn_append ac_func_list " symlink"
+as_fn_append ac_func_list " fdopendir"
+as_fn_append ac_func_list " mempcpy"
 as_fn_append ac_func_list " btowc"
 as_fn_append ac_func_list " isblank"
 as_fn_append ac_func_list " iswctype"
 as_fn_append ac_func_list " mbsrtowcs"
-as_fn_append ac_func_list " mempcpy"
 as_fn_append ac_func_list " wmemchr"
 as_fn_append ac_func_list " wmemcpy"
 as_fn_append ac_func_list " wmempcpy"
 as_fn_append ac_header_list " wctype.h"
 gl_fnmatch_required=GNU
+as_fn_append ac_header_list " sys/stat.h"
+as_fn_append ac_func_list " fstatat"
+as_fn_append ac_func_list " getdtablesize"
+as_fn_append ac_func_list " getlogin_r"
+as_fn_append ac_func_list " getprogname"
+as_fn_append ac_func_list " getexecname"
 as_fn_append ac_header_list " sys/time.h"
-as_fn_append ac_header_list " sys/socket.h"
 as_fn_append ac_func_list " gettimeofday"
+as_fn_append ac_header_list " sys/cdefs.h"
+as_fn_append ac_func_list " getpwnam_r"
 as_fn_append ac_header_list " limits.h"
 as_fn_append ac_header_list " wchar.h"
 as_fn_append ac_header_list " stdint.h"
 as_fn_append ac_header_list " inttypes.h"
-as_fn_append ac_header_list " unistd.h"
-as_fn_append ac_func_list " symlink"
 as_fn_append ac_func_list " lstat"
 as_fn_append ac_header_list " math.h"
 as_fn_append ac_func_list " mbsinit"
 as_fn_append ac_func_list " mbrtowc"
 as_fn_append ac_header_list " sys/mman.h"
 as_fn_append ac_func_list " mprotect"
+as_fn_append ac_func_list " openat"
 as_fn_append ac_func_list " link"
-as_fn_append ac_header_list " sys/stat.h"
+as_fn_append ac_func_list " setenv"
+as_fn_append ac_func_list " strdup"
+as_fn_append ac_func_list " pipe"
 as_fn_append ac_header_list " features.h"
 as_fn_append ac_func_list " iswcntrl"
 # Check that the precious variables saved in the cache have kept the same
@@ -5303,17 +5336,37 @@ fi
   # Code from module absolute-header:
   # Code from module alloca:
   # Code from module alloca-opt:
+  # Code from module assure:
+  # Code from module at-internal:
   # Code from module canonicalize-lgpl:
   # Code from module chdir:
+  # Code from module chdir-long:
+  # Code from module cloexec:
+  # Code from module close:
+  # Code from module closedir:
   # Code from module configmake:
+  # Code from module d-ino:
+  # Code from module d-type:
   # Code from module dirent:
   # Code from module dirfd:
   # Code from module dirname-lgpl:
   # Code from module dosname:
   # Code from module double-slash-root:
+  # Code from module dup:
+  # Code from module dup2:
+  # Code from module environ:
   # Code from module errno:
+  # Code from module error:
+  # Code from module exitfail:
   # Code from module extensions:
   # Code from module extern-inline:
+  # Code from module fchdir:
+  # Code from module fcntl:
+  # Code from module fcntl-h:
+  # Code from module fd-hook:
+  # Code from module fdopendir:
+  # Code from module filename:
+  # Code from module filenamecat-lgpl:
   # Code from module flexmember:
   # Code from module float:
   # Code from module fnmatch:
@@ -5323,9 +5376,19 @@ fi
   # Code from module fpucw:
   # Code from module frexp:
   # Code from module frexpl:
+  # Code from module fstat:
+  # Code from module fstatat:
+  # Code from module getcwd:
+  # Code from module getcwd-lgpl:
+  # Code from module getdtablesize:
+  # Code from module getlogin_r:
+  # Code from module getprogname:
+  # Code from module gettext-h:
   # Code from module gettimeofday:
+  # Code from module glob:
   # Code from module hard-locale:
   # Code from module include_next:
+  # Code from module intprops:
   # Code from module inttypes:
   # Code from module inttypes-incomplete:
   # Code from module isnand-nolibm:
@@ -5344,14 +5407,28 @@ fi
   # Code from module memchr:
   # Code from module memmem:
   # Code from module memmem-simple:
+  # Code from module mempcpy:
+  # Code from module memrchr:
+  # Code from module msvc-inval:
+  # Code from module msvc-nothrow:
   # Code from module multiarch:
   # Code from module nocrash:
+  # Code from module open:
+  # Code from module openat:
+  # Code from module openat-die:
+  # Code from module openat-h:
+  # Code from module opendir:
   # Code from module pathmax:
   # Code from module rawmemchr:
+  # Code from module readdir:
   # Code from module readlink:
+  # Code from module realloc-posix:
   # Code from module rename:
+  # Code from module rewinddir:
   # Code from module rmdir:
   # Code from module same-inode:
+  # Code from module save-cwd:
+  # Code from module setenv:
   # Code from module signal-h:
   # Code from module snippet/_Noreturn:
   # Code from module snippet/arg-nonnull:
@@ -5365,7 +5442,10 @@ fi
   # Code from module stdio:
   # Code from module stdlib:
   # Code from module strchrnul:
+  # Code from module strdup-posix:
   # Code from module streq:
+  # Code from module strerror:
+  # Code from module strerror-override:
   # Code from module string:
   # Code from module strnlen1:
   # Code from module strstr:
@@ -5376,6 +5456,8 @@ fi
   # Code from module sys_types:
   # Code from module time:
   # Code from module unistd:
+  # Code from module unistd-safer:
+  # Code from module unsetenv:
   # Code from module update-copyright:
   # Code from module verify:
   # Code from module wchar:
@@ -6686,6 +6768,29 @@ done
 
 
 
+
+
+
+
+
+
+
+
+  if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+
+$as_echo "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
+
+  else
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+  fi
+
+
+
+
+
+
+
      GNULIB_OPENDIR=0;
   GNULIB_READDIR=0;
   GNULIB_REWINDDIR=0;
@@ -6826,6 +6931,57 @@ fi
 
 
 
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5
+$as_echo_n "checking if environ is properly declared... " >&6; }
+  if test "${gt_cv_var_environ_declaration+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if HAVE_UNISTD_H
+     #include <unistd.h>
+     #endif
+     /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>.  */
+     #include <stdlib.h>
+
+           extern struct { int foo; } environ;
+int
+main ()
+{
+environ.foo = 1;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_var_environ_declaration=no
+else
+  gt_cv_var_environ_declaration=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5
+$as_echo "$gt_cv_var_environ_declaration" >&6; }
+  if test $gt_cv_var_environ_declaration = yes; then
+
+$as_echo "#define HAVE_ENVIRON_DECL 1" >>confdefs.h
+
+  fi
+
+
+  if test $gt_cv_var_environ_declaration != yes; then
+    HAVE_DECL_ENVIRON=0
+  fi
+
+
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5
 $as_echo_n "checking for complete errno.h... " >&6; }
 if test "${gl_cv_header_errno_h_complete+set}" = set; then :
@@ -7200,61 +7356,122 @@ fi
   fi
 
 
+ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strerror_r" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRERROR_R $ac_have_decl
+_ACEOF
 
+for ac_func in strerror_r
+do :
+  ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r"
+if test "x$ac_cv_func_strerror_r" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STRERROR_R 1
+_ACEOF
 
+fi
+done
 
-
-   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5
-$as_echo_n "checking for mbstate_t... " >&6; }
-if test "${ac_cv_type_mbstate_t+set}" = set; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
+$as_echo_n "checking whether strerror_r returns char *... " >&6; }
+if test "${ac_cv_func_strerror_r_char_p+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+    ac_cv_func_strerror_r_char_p=no
+    if test $ac_cv_have_decl_strerror_r = yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
 int
 main ()
 {
-mbstate_t x; return sizeof x;
+
+	  char buf[100];
+	  char x = *strerror_r (0, buf, sizeof buf);
+	  char *p = strerror_r (0, buf, sizeof buf);
+	  return !p || x;
+
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_type_mbstate_t=yes
-else
-  ac_cv_type_mbstate_t=no
+  ac_cv_func_strerror_r_char_p=yes
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    else
+      # strerror_r is not declared.  Choose between
+      # systems that have relatively inaccessible declarations for the
+      # function.  BeOS and DEC UNIX 4.0 fall in this category, but the
+      # former has a strerror_r that returns char*, while the latter
+      # has a strerror_r that returns `int'.
+      # This test should segfault on the DEC system.
+      if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+	extern char *strerror_r ();
+int
+main ()
+{
+char buf[100];
+	  char x = *strerror_r (0, buf, sizeof buf);
+	  return ! isalpha (x);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_func_strerror_r_char_p=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5
-$as_echo "$ac_cv_type_mbstate_t" >&6; }
-   if test $ac_cv_type_mbstate_t = yes; then
-
-$as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h
 
-   else
+    fi
 
-$as_echo "#define mbstate_t int" >>confdefs.h
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5
+$as_echo "$ac_cv_func_strerror_r_char_p" >&6; }
+if test $ac_cv_func_strerror_r_char_p = yes; then
 
-   fi
+$as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h
 
+fi
 
 
 
 
+ac_fn_c_check_decl "$LINENO" "fchdir" "ac_cv_have_decl_fchdir" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fchdir" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FCHDIR $ac_have_decl
+_ACEOF
 
 
+  GNULIB_FCNTL=0;
+  GNULIB_NONBLOCKING=0;
+  GNULIB_OPEN=0;
+  GNULIB_OPENAT=0;
+    HAVE_FCNTL=1;
+  HAVE_OPENAT=1;
+  REPLACE_FCNTL=0;
+  REPLACE_OPEN=0;
+  REPLACE_OPENAT=0;
 
 
 
@@ -7265,20 +7482,247 @@ fi
 
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5
+$as_echo_n "checking for working fcntl.h... " >&6; }
+if test "${gl_cv_header_working_fcntl_h+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  gl_cv_header_working_fcntl_h=cross-compiling
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+           #include <sys/stat.h>
+           #if HAVE_UNISTD_H
+           # include <unistd.h>
+           #else /* on Windows with MSVC */
+           # include <io.h>
+           # include <stdlib.h>
+           # defined sleep(n) _sleep ((n) * 1000)
+           #endif
+           #include <fcntl.h>
+           #ifndef O_NOATIME
+            #define O_NOATIME 0
+           #endif
+           #ifndef O_NOFOLLOW
+            #define O_NOFOLLOW 0
+           #endif
+           static int const constants[] =
+            {
+              O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND,
+              O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY
+            };
 
+int
+main ()
+{
 
-  GNULIB_ACOSF=0;
-  GNULIB_ACOSL=0;
-  GNULIB_ASINF=0;
-  GNULIB_ASINL=0;
-  GNULIB_ATANF=0;
-  GNULIB_ATANL=0;
-  GNULIB_ATAN2F=0;
-  GNULIB_CBRT=0;
-  GNULIB_CBRTF=0;
-  GNULIB_CBRTL=0;
-  GNULIB_CEIL=0;
-  GNULIB_CEILF=0;
+            int result = !constants;
+            #if HAVE_SYMLINK
+            {
+              static char const sym[] = "conftest.sym";
+              if (symlink ("/dev/null", sym) != 0)
+                result |= 2;
+              else
+                {
+                  int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0);
+                  if (fd >= 0)
+                    {
+                      close (fd);
+                      result |= 4;
+                    }
+                }
+              if (unlink (sym) != 0 || symlink (".", sym) != 0)
+                result |= 2;
+              else
+                {
+                  int fd = open (sym, O_RDONLY | O_NOFOLLOW);
+                  if (fd >= 0)
+                    {
+                      close (fd);
+                      result |= 4;
+                    }
+                }
+              unlink (sym);
+            }
+            #endif
+            {
+              static char const file[] = "confdefs.h";
+              int fd = open (file, O_RDONLY | O_NOATIME);
+              if (fd < 0)
+                result |= 8;
+              else
+                {
+                  struct stat st0;
+                  if (fstat (fd, &st0) != 0)
+                    result |= 16;
+                  else
+                    {
+                      char c;
+                      sleep (1);
+                      if (read (fd, &c, 1) != 1)
+                        result |= 24;
+                      else
+                        {
+                          if (close (fd) != 0)
+                            result |= 32;
+                          else
+                            {
+                              struct stat st1;
+                              if (stat (file, &st1) != 0)
+                                result |= 40;
+                              else
+                                if (st0.st_atime != st1.st_atime)
+                                  result |= 64;
+                            }
+                        }
+                    }
+                }
+            }
+            return result;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_header_working_fcntl_h=yes
+else
+  case $? in #(
+        4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
+        64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
+        68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
+         *) gl_cv_header_working_fcntl_h='no';;
+        esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5
+$as_echo "$gl_cv_header_working_fcntl_h" >&6; }
+
+  case $gl_cv_header_working_fcntl_h in #(
+  *O_NOATIME* | no | cross-compiling) ac_val=0;; #(
+  *) ac_val=1;;
+  esac
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_WORKING_O_NOATIME $ac_val
+_ACEOF
+
+
+  case $gl_cv_header_working_fcntl_h in #(
+  *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #(
+  *) ac_val=1;;
+  esac
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_WORKING_O_NOFOLLOW $ac_val
+_ACEOF
+
+
+ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
+if test "x$ac_cv_type_pid_t" = x""yes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define pid_t int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default"
+if test "x$ac_cv_type_mode_t" = x""yes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define mode_t int
+_ACEOF
+
+fi
+
+
+
+
+
+
+
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5
+$as_echo_n "checking for mbstate_t... " >&6; }
+if test "${ac_cv_type_mbstate_t+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int
+main ()
+{
+mbstate_t x; return sizeof x;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_type_mbstate_t=yes
+else
+  ac_cv_type_mbstate_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5
+$as_echo "$ac_cv_type_mbstate_t" >&6; }
+   if test $ac_cv_type_mbstate_t = yes; then
+
+$as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h
+
+   else
+
+$as_echo "#define mbstate_t int" >>confdefs.h
+
+   fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  GNULIB_ACOSF=0;
+  GNULIB_ACOSL=0;
+  GNULIB_ASINF=0;
+  GNULIB_ASINL=0;
+  GNULIB_ATANF=0;
+  GNULIB_ATANL=0;
+  GNULIB_ATAN2F=0;
+  GNULIB_CBRT=0;
+  GNULIB_CBRTF=0;
+  GNULIB_CBRTL=0;
+  GNULIB_CEIL=0;
+  GNULIB_CEILF=0;
   GNULIB_CEILL=0;
   GNULIB_COPYSIGN=0;
   GNULIB_COPYSIGNF=0;
@@ -7606,65 +8050,129 @@ fi
   fi
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
-$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
-if test "${ac_cv_c_restrict+set}" = set; then :
+
+     GNULIB_FCHMODAT=0;
+  GNULIB_FSTAT=0;
+  GNULIB_FSTATAT=0;
+  GNULIB_FUTIMENS=0;
+  GNULIB_LCHMOD=0;
+  GNULIB_LSTAT=0;
+  GNULIB_MKDIRAT=0;
+  GNULIB_MKFIFO=0;
+  GNULIB_MKFIFOAT=0;
+  GNULIB_MKNOD=0;
+  GNULIB_MKNODAT=0;
+  GNULIB_STAT=0;
+  GNULIB_UTIMENSAT=0;
+    HAVE_FCHMODAT=1;
+  HAVE_FSTATAT=1;
+  HAVE_FUTIMENS=1;
+  HAVE_LCHMOD=1;
+  HAVE_LSTAT=1;
+  HAVE_MKDIRAT=1;
+  HAVE_MKFIFO=1;
+  HAVE_MKFIFOAT=1;
+  HAVE_MKNOD=1;
+  HAVE_MKNODAT=1;
+  HAVE_UTIMENSAT=1;
+  REPLACE_FSTAT=0;
+  REPLACE_FSTATAT=0;
+  REPLACE_FUTIMENS=0;
+  REPLACE_LSTAT=0;
+  REPLACE_MKDIR=0;
+  REPLACE_MKFIFO=0;
+  REPLACE_MKNOD=0;
+  REPLACE_STAT=0;
+  REPLACE_UTIMENSAT=0;
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5
+$as_echo_n "checking whether stat file-mode macros are broken... " >&6; }
+if test "${ac_cv_header_stat_broken+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_c_restrict=no
-   # The order here caters to the fact that C++ does not require restrict.
-   for ac_kw in __restrict __restrict__ _Restrict restrict; do
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-typedef int *int_ptr;
-	   int foo (int_ptr $ac_kw ip) { return ip[0]; }
-	   int bar (int [$ac_kw]); /* Catch GCC bug 14050.  */
-	   int bar (int ip[$ac_kw]) { return ip[0]; }
-
-int
-main ()
-{
-int s[1];
-	   int *$ac_kw t = s;
-	   t[0] = 0;
-	   return foo (t) + bar (t);
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#if defined S_ISBLK && defined S_IFDIR
+extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1];
+#endif
+
+#if defined S_ISBLK && defined S_IFCHR
+extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1];
+#endif
+
+#if defined S_ISLNK && defined S_IFREG
+extern char c3[S_ISLNK (S_IFREG) ? -1 : 1];
+#endif
+
+#if defined S_ISSOCK && defined S_IFREG
+extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1];
+#endif
 
-  ;
-  return 0;
-}
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_restrict=$ac_kw
+  ac_cv_header_stat_broken=no
+else
+  ac_cv_header_stat_broken=yes
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     test "$ac_cv_c_restrict" != no && break
-   done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5
+$as_echo "$ac_cv_header_stat_broken" >&6; }
+if test $ac_cv_header_stat_broken = yes; then
+
+$as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
-$as_echo "$ac_cv_c_restrict" >&6; }
 
- case $ac_cv_c_restrict in
-   restrict) ;;
-   no) $as_echo "#define restrict /**/" >>confdefs.h
- ;;
-   *)  cat >>confdefs.h <<_ACEOF
-#define restrict $ac_cv_c_restrict
-_ACEOF
- ;;
- esac
 
 
-  GNULIB_GETTIMEOFDAY=0;
-    HAVE_GETTIMEOFDAY=1;
-  HAVE_STRUCT_TIMEVAL=1;
-  HAVE_SYS_TIME_H=1;
-  HAVE_TIMEZONE_T=0;
-  REPLACE_GETTIMEOFDAY=0;
-  REPLACE_STRUCT_TIMEVAL=0;
 
 
+  case "$host_os" in
+    mingw*)
+                        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5
+$as_echo_n "checking for 64-bit off_t... " >&6; }
+if test "${gl_cv_type_off_t_64+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+                int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1];
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_type_off_t_64=yes
+else
+  gl_cv_type_off_t_64=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_off_t_64" >&5
+$as_echo "$gl_cv_type_off_t_64" >&6; }
+      if test $gl_cv_type_off_t_64 = no; then
+        WINDOWS_64_BIT_OFF_T=1
+      else
+        WINDOWS_64_BIT_OFF_T=0
+      fi
+                  WINDOWS_64_BIT_ST_SIZE=1
+      ;;
+    *)
+                                                      WINDOWS_64_BIT_OFF_T=0
+      WINDOWS_64_BIT_ST_SIZE=0
+      ;;
+  esac
 
 
 
@@ -7681,22 +8189,22 @@ _ACEOF
 
 
      if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_sys_time_h='<'sys/time.h'>'
+       gl_cv_next_sys_stat_h='<'sys/stat.h'>'
      else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/time.h>" >&5
-$as_echo_n "checking absolute name of <sys/time.h>... " >&6; }
-if test "${gl_cv_next_sys_time_h+set}" = set; then :
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/stat.h>" >&5
+$as_echo_n "checking absolute name of <sys/stat.h>... " >&6; }
+if test "${gl_cv_next_sys_stat_h+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
-             if test $ac_cv_header_sys_time_h = yes; then
+             if test $ac_cv_header_sys_stat_h = yes; then
 
 
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/time.h>
+#include <sys/stat.h>
 _ACEOF
                 case "$host_os" in
     aix*) gl_absname_cpp="$ac_cpp -C" ;;
@@ -7712,7 +8220,7 @@ _ACEOF
       ;;
   esac
       gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'sys/time.h' \
+  gl_header_literal_regex=`echo 'sys/stat.h' \
                            | sed -e "$gl_make_literal_regex_sed"`
   gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
       s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
@@ -7721,146 +8229,61 @@ _ACEOF
       q
     }'
 
-        gl_cv_absolute_sys_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+        gl_cv_absolute_sys_stat_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_sys_time_h
-           gl_cv_next_sys_time_h='"'$gl_header'"'
+           gl_header=$gl_cv_absolute_sys_stat_h
+           gl_cv_next_sys_stat_h='"'$gl_header'"'
           else
-               gl_cv_next_sys_time_h='<'sys/time.h'>'
+               gl_cv_next_sys_stat_h='<'sys/stat.h'>'
              fi
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_time_h" >&5
-$as_echo "$gl_cv_next_sys_time_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5
+$as_echo "$gl_cv_next_sys_stat_h" >&6; }
      fi
-     NEXT_SYS_TIME_H=$gl_cv_next_sys_time_h
+     NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h
 
      if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'sys/time.h'>'
+       gl_next_as_first_directive='<'sys/stat.h'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_sys_time_h
+       gl_next_as_first_directive=$gl_cv_next_sys_stat_h
      fi
-     NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H=$gl_next_as_first_directive
+     NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive
 
 
 
 
 
-  if test $ac_cv_header_sys_time_h != yes; then
-    HAVE_SYS_TIME_H=0
-  fi
 
 
 
 
 
-  if test $ac_cv_header_sys_socket_h != yes; then
-                    for ac_header in winsock2.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
-if test "x$ac_cv_header_winsock2_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_WINSOCK2_H 1
-_ACEOF
 
-fi
+  if test $WINDOWS_64_BIT_ST_SIZE = 1; then
 
-done
+$as_echo "#define _GL_WINDOWS_64_BIT_ST_SIZE 1" >>confdefs.h
 
   fi
-  if test "$ac_cv_header_winsock2_h" = yes; then
-    HAVE_WINSOCK2_H=1
-    UNISTD_H_HAVE_WINSOCK2_H=1
-    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
-  else
-    HAVE_WINSOCK2_H=0
-  fi
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5
-$as_echo_n "checking for struct timeval... " >&6; }
-if test "${gl_cv_sys_struct_timeval+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if HAVE_SYS_TIME_H
-             #include <sys/time.h>
-            #endif
-            #include <time.h>
-            #if HAVE_WINSOCK2_H
-            # include <winsock2.h>
-            #endif
 
-int
-main ()
-{
-static struct timeval x; x.tv_sec = x.tv_usec;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_sys_struct_timeval=yes
-else
-  gl_cv_sys_struct_timeval=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include <sys/types.h>
+     #include <sys/stat.h>
+"
+if test "x$ac_cv_type_nlink_t" = x""yes; then :
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timeval" >&5
-$as_echo "$gl_cv_sys_struct_timeval" >&6; }
-  if test $gl_cv_sys_struct_timeval != yes; then
-    HAVE_STRUCT_TIMEVAL=0
-  else
-                            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wide-enough struct timeval.tv_sec member" >&5
-$as_echo_n "checking for wide-enough struct timeval.tv_sec member... " >&6; }
-if test "${gl_cv_sys_struct_timeval_tv_sec+set}" = set; then :
-  $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if HAVE_SYS_TIME_H
-               #include <sys/time.h>
-              #endif
-              #include <time.h>
-              #if HAVE_WINSOCK2_H
-              # include <winsock2.h>
-              #endif
 
-int
-main ()
-{
-static struct timeval x;
-              typedef int verify_tv_sec_type[
-                sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1
-              ];
+$as_echo "#define nlink_t int" >>confdefs.h
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_sys_struct_timeval_tv_sec=yes
-else
-  gl_cv_sys_struct_timeval_tv_sec=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timeval_tv_sec" >&5
-$as_echo "$gl_cv_sys_struct_timeval_tv_sec" >&6; }
-    if test $gl_cv_sys_struct_timeval_tv_sec != yes; then
-      REPLACE_STRUCT_TIMEVAL=1
-    fi
-  fi
 
 
-    for gl_func in gettimeofday; do
+    for gl_func in fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat     mknod mknodat stat utimensat; do
     as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
@@ -7869,11 +8292,7 @@ if { as_var=$as_gl_Symbol; eval "test \"
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#if HAVE_SYS_TIME_H
-# include <sys/time.h>
-#endif
-#include <time.h>
+#include <sys/stat.h>
 
 int
 main ()
@@ -7906,6 +8325,282 @@ fi
 
 
 
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5
+$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; }
+if test "${gl_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  rm -f conftest.sym conftest.file
+     echo >conftest.file
+     if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+          *-gnu*)
+            # Guess yes on glibc systems.
+            gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
+          *)
+            # If we don't know, assume the worst.
+            gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
+        esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+struct stat sbuf;
+            if (symlink ("conftest.file", "conftest.sym") != 0)
+              return 1;
+            /* Linux will dereference the symlink and fail, as required by
+               POSIX.  That is better in the sense that it means we will not
+               have to compile and use the lstat wrapper.  */
+            return lstat ("conftest.sym/", &sbuf) == 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_lstat_dereferences_slashed_symlink=yes
+else
+  gl_cv_func_lstat_dereferences_slashed_symlink=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+     rm -f conftest.sym conftest.file
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5
+$as_echo "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; }
+  case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
+    *yes)
+
+cat >>confdefs.h <<_ACEOF
+#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
+_ACEOF
+
+      ;;
+  esac
+
+
+
+
+
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd (NULL, 0) allocates memory for result" >&5
+$as_echo_n "checking whether getcwd (NULL, 0) allocates memory for result... " >&6; }
+if test "${gl_cv_func_getcwd_null+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                     # Guess yes on glibc systems.
+            *-gnu*)  gl_cv_func_getcwd_null="guessing yes";;
+                     # Guess yes on Cygwin.
+            cygwin*) gl_cv_func_getcwd_null="guessing yes";;
+                     # If we don't know, assume the worst.
+            *)       gl_cv_func_getcwd_null="guessing no";;
+          esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#	 include <stdlib.h>
+#        if HAVE_UNISTD_H
+#         include <unistd.h>
+#        else /* on Windows with MSVC */
+#         include <direct.h>
+#        endif
+#        ifndef getcwd
+         char *getcwd ();
+#        endif
+
+int
+main ()
+{
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* mingw cwd does not start with '/', but getcwd does allocate.
+   However, mingw fails to honor non-zero size.  */
+#else
+           if (chdir ("/") != 0)
+             return 1;
+           else
+             {
+               char *f = getcwd (NULL, 0);
+               if (! f)
+                 return 2;
+               if (f[0] != '/')
+                 return 3;
+               if (f[1] != '\0')
+                 return 4;
+               free (f);
+               return 0;
+             }
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_getcwd_null=yes
+else
+  gl_cv_func_getcwd_null=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_null" >&5
+$as_echo "$gl_cv_func_getcwd_null" >&6; }
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getcwd with POSIX signature" >&5
+$as_echo_n "checking for getcwd with POSIX signature... " >&6; }
+if test "${gl_cv_func_getcwd_posix_signature+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <unistd.h>
+int
+main ()
+{
+extern
+           #ifdef __cplusplus
+           "C"
+           #endif
+           char *getcwd (char *, size_t);
+
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_getcwd_posix_signature=yes
+else
+  gl_cv_func_getcwd_posix_signature=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_posix_signature" >&5
+$as_echo "$gl_cv_func_getcwd_posix_signature" >&6; }
+
+ac_fn_c_check_decl "$LINENO" "getcwd" "ac_cv_have_decl_getcwd" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getcwd" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETCWD $ac_have_decl
+_ACEOF
+
+
+
+ac_fn_c_check_decl "$LINENO" "getdtablesize" "ac_cv_have_decl_getdtablesize" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getdtablesize" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETDTABLESIZE $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "getlogin_r" "ac_cv_have_decl_getlogin_r" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getlogin_r" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETLOGIN_R $ac_have_decl
+_ACEOF
+
+
+
+ac_fn_c_check_decl "$LINENO" "getlogin" "ac_cv_have_decl_getlogin" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getlogin" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETLOGIN $ac_have_decl
+_ACEOF
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
+$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
+if test "${ac_cv_c_restrict+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_restrict=no
+   # The order here caters to the fact that C++ does not require restrict.
+   for ac_kw in __restrict __restrict__ _Restrict restrict; do
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+typedef int *int_ptr;
+	   int foo (int_ptr $ac_kw ip) { return ip[0]; }
+	   int bar (int [$ac_kw]); /* Catch GCC bug 14050.  */
+	   int bar (int ip[$ac_kw]) { return ip[0]; }
+
+int
+main ()
+{
+int s[1];
+	   int *$ac_kw t = s;
+	   t[0] = 0;
+	   return foo (t) + bar (t);
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_restrict=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     test "$ac_cv_c_restrict" != no && break
+   done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
+$as_echo "$ac_cv_c_restrict" >&6; }
+
+ case $ac_cv_c_restrict in
+   restrict) ;;
+   no) $as_echo "#define restrict /**/" >>confdefs.h
+ ;;
+   *)  cat >>confdefs.h <<_ACEOF
+#define restrict $ac_cv_c_restrict
+_ACEOF
+ ;;
+ esac
+
+
+  GNULIB_GETTIMEOFDAY=0;
+    HAVE_GETTIMEOFDAY=1;
+  HAVE_STRUCT_TIMEVAL=1;
+  HAVE_SYS_TIME_H=1;
+  HAVE_TIMEZONE_T=0;
+  REPLACE_GETTIMEOFDAY=0;
+  REPLACE_STRUCT_TIMEVAL=0;
 
 
 
@@ -7923,22 +8618,22 @@ fi
 
 
      if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_limits_h='<'limits.h'>'
+       gl_cv_next_sys_time_h='<'sys/time.h'>'
      else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <limits.h>" >&5
-$as_echo_n "checking absolute name of <limits.h>... " >&6; }
-if test "${gl_cv_next_limits_h+set}" = set; then :
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/time.h>" >&5
+$as_echo_n "checking absolute name of <sys/time.h>... " >&6; }
+if test "${gl_cv_next_sys_time_h+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
-             if test $ac_cv_header_limits_h = yes; then
+             if test $ac_cv_header_sys_time_h = yes; then
 
 
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <limits.h>
+#include <sys/time.h>
 _ACEOF
                 case "$host_os" in
     aix*) gl_absname_cpp="$ac_cpp -C" ;;
@@ -7954,7 +8649,7 @@ _ACEOF
       ;;
   esac
       gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'limits.h' \
+  gl_header_literal_regex=`echo 'sys/time.h' \
                            | sed -e "$gl_make_literal_regex_sed"`
   gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
       s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
@@ -7963,240 +8658,199 @@ _ACEOF
       q
     }'
 
-        gl_cv_absolute_limits_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+        gl_cv_absolute_sys_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_limits_h
-           gl_cv_next_limits_h='"'$gl_header'"'
+           gl_header=$gl_cv_absolute_sys_time_h
+           gl_cv_next_sys_time_h='"'$gl_header'"'
           else
-               gl_cv_next_limits_h='<'limits.h'>'
+               gl_cv_next_sys_time_h='<'sys/time.h'>'
              fi
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_limits_h" >&5
-$as_echo "$gl_cv_next_limits_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_time_h" >&5
+$as_echo "$gl_cv_next_sys_time_h" >&6; }
      fi
-     NEXT_LIMITS_H=$gl_cv_next_limits_h
+     NEXT_SYS_TIME_H=$gl_cv_next_sys_time_h
 
      if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'limits.h'>'
+       gl_next_as_first_directive='<'sys/time.h'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_limits_h
+       gl_next_as_first_directive=$gl_cv_next_sys_time_h
      fi
-     NEXT_AS_FIRST_DIRECTIVE_LIMITS_H=$gl_next_as_first_directive
+     NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H=$gl_next_as_first_directive
 
 
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether limits.h has ULLONG_WIDTH etc." >&5
-$as_echo_n "checking whether limits.h has ULLONG_WIDTH etc.... " >&6; }
-if test "${gl_cv_header_limits_width+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
-                           #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
-                          #endif
-                          #include <limits.h>
-                          int ullw = ULLONG_WIDTH;
-int
-main ()
-{
+  if test $ac_cv_header_sys_time_h != yes; then
+    HAVE_SYS_TIME_H=0
+  fi
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_limits_width=yes
-else
-  gl_cv_header_limits_width=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_limits_width" >&5
-$as_echo "$gl_cv_header_limits_width" >&6; }
-  if test "$gl_cv_header_limits_width" = yes; then
-    LIMITS_H=
-  else
-    LIMITS_H=limits.h
-  fi
 
-   if test -n "$LIMITS_H"; then
-  GL_GENERATE_LIMITS_H_TRUE=
-  GL_GENERATE_LIMITS_H_FALSE='#'
-else
-  GL_GENERATE_LIMITS_H_TRUE='#'
-  GL_GENERATE_LIMITS_H_FALSE=
+
+
+
+  if test $ac_cv_header_sys_socket_h != yes; then
+                    for ac_header in winsock2.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_WINSOCK2_H 1
+_ACEOF
+
 fi
 
+done
+
+  fi
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    HAVE_WINSOCK2_H=1
+    UNISTD_H_HAVE_WINSOCK2_H=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+  else
+    HAVE_WINSOCK2_H=0
+  fi
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
-$as_echo_n "checking for unsigned long long int... " >&6; }
-if test "${ac_cv_type_unsigned_long_long_int+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5
+$as_echo_n "checking for struct timeval... " >&6; }
+if test "${gl_cv_sys_struct_timeval+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_unsigned_long_long_int=yes
-     if test "x${ac_cv_prog_cc_c99-no}" = xno; then
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#if HAVE_SYS_TIME_H
+             #include <sys/time.h>
+            #endif
+            #include <time.h>
+            #if HAVE_WINSOCK2_H
+            # include <winsock2.h>
+            #endif
 
-  /* For now, do not test the preprocessor; as of 2007 there are too many
-         implementations with broken preprocessors.  Perhaps this can
-         be revisited in 2012.  In the meantime, code should not expect
-         #if to work with literals wider than 32 bits.  */
-      /* Test literals.  */
-      long long int ll = 9223372036854775807ll;
-      long long int nll = -9223372036854775807LL;
-      unsigned long long int ull = 18446744073709551615ULL;
-      /* Test constant expressions.   */
-      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
-                     ? 1 : -1)];
-      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
-                     ? 1 : -1)];
-      int i = 63;
 int
 main ()
 {
-/* Test availability of runtime routines for shift and division.  */
-      long long int llmax = 9223372036854775807ll;
-      unsigned long long int ullmax = 18446744073709551615ull;
-      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
-              | (llmax / ll) | (llmax % ll)
-              | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
-              | (ullmax / ull) | (ullmax % ull));
+static struct timeval x; x.tv_sec = x.tv_usec;
   ;
   return 0;
 }
-
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_sys_struct_timeval=yes
 else
-  ac_cv_type_unsigned_long_long_int=no
+  gl_cv_sys_struct_timeval=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
-$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timeval" >&5
+$as_echo "$gl_cv_sys_struct_timeval" >&6; }
+  if test $gl_cv_sys_struct_timeval != yes; then
+    HAVE_STRUCT_TIMEVAL=0
+  else
+                            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wide-enough struct timeval.tv_sec member" >&5
+$as_echo_n "checking for wide-enough struct timeval.tv_sec member... " >&6; }
+if test "${gl_cv_sys_struct_timeval_tv_sec+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if HAVE_SYS_TIME_H
+               #include <sys/time.h>
+              #endif
+              #include <time.h>
+              #if HAVE_WINSOCK2_H
+              # include <winsock2.h>
+              #endif
 
-$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
+int
+main ()
+{
+static struct timeval x;
+              typedef int verify_tv_sec_type[
+                sizeof (time_t) <= sizeof x.tv_sec ? 1 : -1
+              ];
 
-  fi
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_sys_struct_timeval_tv_sec=yes
+else
+  gl_cv_sys_struct_timeval_tv_sec=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timeval_tv_sec" >&5
+$as_echo "$gl_cv_sys_struct_timeval_tv_sec" >&6; }
+    if test $gl_cv_sys_struct_timeval_tv_sec != yes; then
+      REPLACE_STRUCT_TIMEVAL=1
+    fi
+  fi
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
-$as_echo_n "checking for long long int... " >&6; }
-if test "${ac_cv_type_long_long_int+set}" = set; then :
+    for gl_func in gettimeofday; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_long_long_int=yes
-      if test "x${ac_cv_prog_cc_c99-no}" = xno; then
-        ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
-        if test $ac_cv_type_long_long_int = yes; then
-                                        if test "$cross_compiling" = yes; then :
-  :
-else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <limits.h>
-                 #ifndef LLONG_MAX
-                 # define HALF \
-                          (1LL << (sizeof (long long int) * CHAR_BIT - 2))
-                 # define LLONG_MAX (HALF - 1 + HALF)
-                 #endif
+
+#if HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
+#include <time.h>
+
 int
 main ()
 {
-long long int n = 1;
-                 int i;
-                 for (i = 0; ; i++)
-                   {
-                     long long int m = n << i;
-                     if (m >> i != n)
-                       return 1;
-                     if (LLONG_MAX / 2 < m)
-                       break;
-                   }
-                 return 0;
+#undef $gl_func
+  (void) $gl_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
 else
-  ac_cv_type_long_long_int=no
+  eval "$as_gl_Symbol=no"
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+eval ac_res=\$$as_gl_Symbol
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    eval as_val=\$$as_gl_Symbol
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
 
-        fi
-      fi
+                     eval ac_cv_have_decl_$gl_func=yes
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5
-$as_echo "$ac_cv_type_long_long_int" >&6; }
-  if test $ac_cv_type_long_long_int = yes; then
+      done
 
-$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
 
-  fi
 
 
 
 
 
 
-    gl_cv_c_multiarch=no
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __APPLE_CC__
-         not a universal capable compiler
-        #endif
-        typedef int dummy;
 
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
 
-               arch=
-     prev=
-     for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
-       if test -n "$prev"; then
-         case $word in
-           i?86 | x86_64 | ppc | ppc64)
-             if test -z "$arch" || test "$arch" = "$word"; then
-               arch="$word"
-             else
-               gl_cv_c_multiarch=yes
-             fi
-             ;;
-         esac
-         prev=
-       else
-         if test "x$word" = "x-arch"; then
-           prev=arch
-         fi
-       fi
-     done
 
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  if test $gl_cv_c_multiarch = yes; then
-    APPLE_UNIVERSAL_BUILD=1
-  else
-    APPLE_UNIVERSAL_BUILD=0
-  fi
 
 
 
@@ -8204,68 +8858,28 @@ rm -f core conftest.err conftest.$ac_obj
 
 
 
-  if test $ac_cv_type_long_long_int = yes; then
-    HAVE_LONG_LONG_INT=1
-  else
-    HAVE_LONG_LONG_INT=0
-  fi
-
-
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
-    HAVE_UNSIGNED_LONG_LONG_INT=1
-  else
-    HAVE_UNSIGNED_LONG_LONG_INT=0
-  fi
-
-
-
-  if test $ac_cv_header_wchar_h = yes; then
-    HAVE_WCHAR_H=1
-  else
-    HAVE_WCHAR_H=0
-  fi
-
-
-      if test $ac_cv_header_inttypes_h = yes; then
-    HAVE_INTTYPES_H=1
-  else
-    HAVE_INTTYPES_H=0
-  fi
-
-
-      if test $ac_cv_header_sys_types_h = yes; then
-    HAVE_SYS_TYPES_H=1
-  else
-    HAVE_SYS_TYPES_H=0
-  fi
-
-
-
-
-
-
 
 
 
 
 
      if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_stdint_h='<'stdint.h'>'
+       gl_cv_next_limits_h='<'limits.h'>'
      else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdint.h>" >&5
-$as_echo_n "checking absolute name of <stdint.h>... " >&6; }
-if test "${gl_cv_next_stdint_h+set}" = set; then :
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <limits.h>" >&5
+$as_echo_n "checking absolute name of <limits.h>... " >&6; }
+if test "${gl_cv_next_limits_h+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
-             if test $ac_cv_header_stdint_h = yes; then
+             if test $ac_cv_header_limits_h = yes; then
 
 
 
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdint.h>
+#include <limits.h>
 _ACEOF
                 case "$host_os" in
     aix*) gl_absname_cpp="$ac_cpp -C" ;;
@@ -8281,7 +8895,7 @@ _ACEOF
       ;;
   esac
       gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'stdint.h' \
+  gl_header_literal_regex=`echo 'limits.h' \
                            | sed -e "$gl_make_literal_regex_sed"`
   gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
       s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
@@ -8290,548 +8904,389 @@ _ACEOF
       q
     }'
 
-        gl_cv_absolute_stdint_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+        gl_cv_absolute_limits_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_stdint_h
-           gl_cv_next_stdint_h='"'$gl_header'"'
+           gl_header=$gl_cv_absolute_limits_h
+           gl_cv_next_limits_h='"'$gl_header'"'
           else
-               gl_cv_next_stdint_h='<'stdint.h'>'
+               gl_cv_next_limits_h='<'limits.h'>'
              fi
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5
-$as_echo "$gl_cv_next_stdint_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_limits_h" >&5
+$as_echo "$gl_cv_next_limits_h" >&6; }
      fi
-     NEXT_STDINT_H=$gl_cv_next_stdint_h
+     NEXT_LIMITS_H=$gl_cv_next_limits_h
 
      if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'stdint.h'>'
+       gl_next_as_first_directive='<'limits.h'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_stdint_h
+       gl_next_as_first_directive=$gl_cv_next_limits_h
      fi
-     NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive
+     NEXT_AS_FIRST_DIRECTIVE_LIMITS_H=$gl_next_as_first_directive
 
 
 
 
-  if test $ac_cv_header_stdint_h = yes; then
-    HAVE_STDINT_H=1
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether limits.h has ULLONG_WIDTH etc." >&5
+$as_echo_n "checking whether limits.h has ULLONG_WIDTH etc.... " >&6; }
+if test "${gl_cv_header_limits_width+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+                           #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
+                          #endif
+                          #include <limits.h>
+                          int ullw = ULLONG_WIDTH;
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_limits_width=yes
+else
+  gl_cv_header_limits_width=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_limits_width" >&5
+$as_echo "$gl_cv_header_limits_width" >&6; }
+  if test "$gl_cv_header_limits_width" = yes; then
+    LIMITS_H=
   else
-    HAVE_STDINT_H=0
+    LIMITS_H=limits.h
   fi
 
+   if test -n "$LIMITS_H"; then
+  GL_GENERATE_LIMITS_H_TRUE=
+  GL_GENERATE_LIMITS_H_FALSE='#'
+else
+  GL_GENERATE_LIMITS_H_TRUE='#'
+  GL_GENERATE_LIMITS_H_FALSE=
+fi
+
 
-    if test $ac_cv_header_stdint_h = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5
-$as_echo_n "checking whether stdint.h conforms to C99... " >&6; }
-if test "${gl_cv_header_working_stdint_h+set}" = set; then :
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
+$as_echo_n "checking for unsigned long long int... " >&6; }
+if test "${ac_cv_type_unsigned_long_long_int+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  gl_cv_header_working_stdint_h=no
+  ac_cv_type_unsigned_long_long_int=yes
+     if test "x${ac_cv_prog_cc_c99-no}" = xno; then
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
+  /* For now, do not test the preprocessor; as of 2007 there are too many
+         implementations with broken preprocessors.  Perhaps this can
+         be revisited in 2012.  In the meantime, code should not expect
+         #if to work with literals wider than 32 bits.  */
+      /* Test literals.  */
+      long long int ll = 9223372036854775807ll;
+      long long int nll = -9223372036854775807LL;
+      unsigned long long int ull = 18446744073709551615ULL;
+      /* Test constant expressions.   */
+      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+                     ? 1 : -1)];
+      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+                     ? 1 : -1)];
+      int i = 63;
+int
+main ()
+{
+/* Test availability of runtime routines for shift and division.  */
+      long long int llmax = 9223372036854775807ll;
+      unsigned long long int ullmax = 18446744073709551615ull;
+      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+              | (llmax / ll) | (llmax % ll)
+              | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+              | (ullmax / ull) | (ullmax % ull));
+  ;
+  return 0;
+}
 
-#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
-#define __STDC_CONSTANT_MACROS 1
-#define __STDC_LIMIT_MACROS 1
-#include <stdint.h>
-/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
-#if !(defined WCHAR_MIN && defined WCHAR_MAX)
-#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
-#endif
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
 
+else
+  ac_cv_type_unsigned_long_long_int=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+     fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
+$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
 
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
+$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
 
+  fi
 
-#ifdef INT8_MAX
-int8_t a1 = INT8_MAX;
-int8_t a1min = INT8_MIN;
-#endif
-#ifdef INT16_MAX
-int16_t a2 = INT16_MAX;
-int16_t a2min = INT16_MIN;
-#endif
-#ifdef INT32_MAX
-int32_t a3 = INT32_MAX;
-int32_t a3min = INT32_MIN;
-#endif
-#ifdef INT64_MAX
-int64_t a4 = INT64_MAX;
-int64_t a4min = INT64_MIN;
-#endif
-#ifdef UINT8_MAX
-uint8_t b1 = UINT8_MAX;
-#else
-typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
-#endif
-#ifdef UINT16_MAX
-uint16_t b2 = UINT16_MAX;
-#endif
-#ifdef UINT32_MAX
-uint32_t b3 = UINT32_MAX;
-#endif
-#ifdef UINT64_MAX
-uint64_t b4 = UINT64_MAX;
-#endif
-int_least8_t c1 = INT8_C (0x7f);
-int_least8_t c1max = INT_LEAST8_MAX;
-int_least8_t c1min = INT_LEAST8_MIN;
-int_least16_t c2 = INT16_C (0x7fff);
-int_least16_t c2max = INT_LEAST16_MAX;
-int_least16_t c2min = INT_LEAST16_MIN;
-int_least32_t c3 = INT32_C (0x7fffffff);
-int_least32_t c3max = INT_LEAST32_MAX;
-int_least32_t c3min = INT_LEAST32_MIN;
-int_least64_t c4 = INT64_C (0x7fffffffffffffff);
-int_least64_t c4max = INT_LEAST64_MAX;
-int_least64_t c4min = INT_LEAST64_MIN;
-uint_least8_t d1 = UINT8_C (0xff);
-uint_least8_t d1max = UINT_LEAST8_MAX;
-uint_least16_t d2 = UINT16_C (0xffff);
-uint_least16_t d2max = UINT_LEAST16_MAX;
-uint_least32_t d3 = UINT32_C (0xffffffff);
-uint_least32_t d3max = UINT_LEAST32_MAX;
-uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
-uint_least64_t d4max = UINT_LEAST64_MAX;
-int_fast8_t e1 = INT_FAST8_MAX;
-int_fast8_t e1min = INT_FAST8_MIN;
-int_fast16_t e2 = INT_FAST16_MAX;
-int_fast16_t e2min = INT_FAST16_MIN;
-int_fast32_t e3 = INT_FAST32_MAX;
-int_fast32_t e3min = INT_FAST32_MIN;
-int_fast64_t e4 = INT_FAST64_MAX;
-int_fast64_t e4min = INT_FAST64_MIN;
-uint_fast8_t f1 = UINT_FAST8_MAX;
-uint_fast16_t f2 = UINT_FAST16_MAX;
-uint_fast32_t f3 = UINT_FAST32_MAX;
-uint_fast64_t f4 = UINT_FAST64_MAX;
-#ifdef INTPTR_MAX
-intptr_t g = INTPTR_MAX;
-intptr_t gmin = INTPTR_MIN;
-#endif
-#ifdef UINTPTR_MAX
-uintptr_t h = UINTPTR_MAX;
-#endif
-intmax_t i = INTMAX_MAX;
-uintmax_t j = UINTMAX_MAX;
 
-/* Check that SIZE_MAX has the correct type, if possible.  */
-#if 201112 <= __STDC_VERSION__
-int k = _Generic (SIZE_MAX, size_t: 0);
-#elif (2 <= __GNUC__ || defined __IBM__TYPEOF__ \
-       || (0x5110 <= __SUNPRO_C && !__STDC__))
-extern size_t k;
-extern __typeof__ (SIZE_MAX) k;
-#endif
-
-#include <limits.h> /* for CHAR_BIT */
-#define TYPE_MINIMUM(t) \
-  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
-#define TYPE_MAXIMUM(t) \
-  ((t) ((t) 0 < (t) -1 \
-        ? (t) -1 \
-        : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
-struct s {
-  int check_PTRDIFF:
-      PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
-      && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
-      ? 1 : -1;
-  /* Detect bug in FreeBSD 6.0 / ia64.  */
-  int check_SIG_ATOMIC:
-      SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
-      && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
-      ? 1 : -1;
-  int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
-  int check_WCHAR:
-      WCHAR_MIN == TYPE_MINIMUM (wchar_t)
-      && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
-      ? 1 : -1;
-  /* Detect bug in mingw.  */
-  int check_WINT:
-      WINT_MIN == TYPE_MINIMUM (wint_t)
-      && WINT_MAX == TYPE_MAXIMUM (wint_t)
-      ? 1 : -1;
-
-  /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
-  int check_UINT8_C:
-        (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
-  int check_UINT16_C:
-        (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
-
-  /* Detect bugs in OpenBSD 3.9 stdint.h.  */
-#ifdef UINT8_MAX
-  int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
-#endif
-#ifdef UINT16_MAX
-  int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
-#endif
-#ifdef UINT32_MAX
-  int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
-#endif
-#ifdef UINT64_MAX
-  int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
-#endif
-  int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
-  int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
-  int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
-  int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
-  int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
-  int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
-  int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
-  int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
-  int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
-  int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
-  int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
-};
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-                                                    if test "$cross_compiling" = yes; then :
-                 gl_cv_header_working_stdint_h=yes
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
+$as_echo_n "checking for long long int... " >&6; }
+if test "${ac_cv_type_long_long_int+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_type_long_long_int=yes
+      if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+        ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
+        if test $ac_cv_type_long_long_int = yes; then
+                                        if test "$cross_compiling" = yes; then :
+  :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-
-#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
-#define __STDC_CONSTANT_MACROS 1
-#define __STDC_LIMIT_MACROS 1
-#include <stdint.h>
-
-
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
-
-
-#include <stdio.h>
-#include <string.h>
-#define MVAL(macro) MVAL1(macro)
-#define MVAL1(expression) #expression
-static const char *macro_values[] =
-  {
-#ifdef INT8_MAX
-    MVAL (INT8_MAX),
-#endif
-#ifdef INT16_MAX
-    MVAL (INT16_MAX),
-#endif
-#ifdef INT32_MAX
-    MVAL (INT32_MAX),
-#endif
-#ifdef INT64_MAX
-    MVAL (INT64_MAX),
-#endif
-#ifdef UINT8_MAX
-    MVAL (UINT8_MAX),
-#endif
-#ifdef UINT16_MAX
-    MVAL (UINT16_MAX),
-#endif
-#ifdef UINT32_MAX
-    MVAL (UINT32_MAX),
-#endif
-#ifdef UINT64_MAX
-    MVAL (UINT64_MAX),
-#endif
-    NULL
-  };
-
+#include <limits.h>
+                 #ifndef LLONG_MAX
+                 # define HALF \
+                          (1LL << (sizeof (long long int) * CHAR_BIT - 2))
+                 # define LLONG_MAX (HALF - 1 + HALF)
+                 #endif
 int
 main ()
 {
-
-  const char **mv;
-  for (mv = macro_values; *mv != NULL; mv++)
-    {
-      const char *value = *mv;
-      /* Test whether it looks like a cast expression.  */
-      if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0
-          || strncmp (value, "((unsigned short)"/*)*/, 17) == 0
-          || strncmp (value, "((unsigned char)"/*)*/, 16) == 0
-          || strncmp (value, "((int)"/*)*/, 6) == 0
-          || strncmp (value, "((signed short)"/*)*/, 15) == 0
-          || strncmp (value, "((signed char)"/*)*/, 14) == 0)
-        return mv - macro_values + 1;
-    }
-  return 0;
-
+long long int n = 1;
+                 int i;
+                 for (i = 0; ; i++)
+                   {
+                     long long int m = n << i;
+                     if (m >> i != n)
+                       return 1;
+                     if (LLONG_MAX / 2 < m)
+                       break;
+                   }
+                 return 0;
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_header_working_stdint_h=yes
+
+else
+  ac_cv_type_long_long_int=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
+        fi
+      fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5
-$as_echo "$gl_cv_header_working_stdint_h" >&6; }
-  fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5
+$as_echo "$ac_cv_type_long_long_int" >&6; }
+  if test $ac_cv_type_long_long_int = yes; then
 
-  HAVE_C99_STDINT_H=0
-  HAVE_SYS_BITYPES_H=0
-  HAVE_SYS_INTTYPES_H=0
-  STDINT_H=stdint.h
-  if test "$gl_cv_header_working_stdint_h" = yes; then
-    HAVE_C99_STDINT_H=1
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h predates C++11" >&5
-$as_echo_n "checking whether stdint.h predates C++11... " >&6; }
-if test "${gl_cv_header_stdint_predates_cxx11_h+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  gl_cv_header_stdint_predates_cxx11_h=yes
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
 
+  fi
 
-#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
-#include <stdint.h>
 
 
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
 
 
-intmax_t im = INTMAX_MAX;
-int32_t i32 = INT32_C (0x7fffffff);
 
-int
-main ()
-{
+    gl_cv_c_multiarch=no
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+         not a universal capable compiler
+        #endif
+        typedef int dummy;
 
-  ;
-  return 0;
-}
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_stdint_predates_cxx11_h=no
+
+               arch=
+     prev=
+     for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
+       if test -n "$prev"; then
+         case $word in
+           i?86 | x86_64 | ppc | ppc64)
+             if test -z "$arch" || test "$arch" = "$word"; then
+               arch="$word"
+             else
+               gl_cv_c_multiarch=yes
+             fi
+             ;;
+         esac
+         prev=
+       else
+         if test "x$word" = "x-arch"; then
+           prev=arch
+         fi
+       fi
+     done
+
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_predates_cxx11_h" >&5
-$as_echo "$gl_cv_header_stdint_predates_cxx11_h" >&6; }
+  if test $gl_cv_c_multiarch = yes; then
+    APPLE_UNIVERSAL_BUILD=1
+  else
+    APPLE_UNIVERSAL_BUILD=0
+  fi
 
-    if test "$gl_cv_header_stdint_predates_cxx11_h" = yes; then
 
-$as_echo "#define __STDC_CONSTANT_MACROS 1" >>confdefs.h
 
 
-$as_echo "#define __STDC_LIMIT_MACROS 1" >>confdefs.h
-
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h has UINTMAX_WIDTH etc." >&5
-$as_echo_n "checking whether stdint.h has UINTMAX_WIDTH etc.... " >&6; }
-if test "${gl_cv_header_stdint_width+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  gl_cv_header_stdint_width=no
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-            /* Work if build is not clean.  */
-            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1
-            #ifndef __STDC_WANT_IEC_60559_BFP_EXT__
-             #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
-            #endif
-            #include <stdint.h>
 
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
 
-            int iw = UINTMAX_WIDTH;
+  if test $ac_cv_type_long_long_int = yes; then
+    HAVE_LONG_LONG_INT=1
+  else
+    HAVE_LONG_LONG_INT=0
+  fi
 
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_stdint_width=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_width" >&5
-$as_echo "$gl_cv_header_stdint_width" >&6; }
-    if test "$gl_cv_header_stdint_width" = yes; then
-      STDINT_H=
-    fi
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+    HAVE_UNSIGNED_LONG_LONG_INT=1
   else
-            for ac_header in sys/inttypes.h sys/bitypes.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
-   if test "x$as_val" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+    HAVE_UNSIGNED_LONG_LONG_INT=0
+  fi
 
-fi
 
-done
 
-    if test $ac_cv_header_sys_inttypes_h = yes; then
-      HAVE_SYS_INTTYPES_H=1
-    fi
-    if test $ac_cv_header_sys_bitypes_h = yes; then
-      HAVE_SYS_BITYPES_H=1
-    fi
+  if test $ac_cv_header_wchar_h = yes; then
+    HAVE_WCHAR_H=1
+  else
+    HAVE_WCHAR_H=0
+  fi
 
 
-  if test $APPLE_UNIVERSAL_BUILD = 0; then
+      if test $ac_cv_header_inttypes_h = yes; then
+    HAVE_INTTYPES_H=1
+  else
+    HAVE_INTTYPES_H=0
+  fi
 
 
-  for gltype in ptrdiff_t size_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
-$as_echo_n "checking for bit size of $gltype... " >&6; }
-if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
+      if test $ac_cv_header_sys_types_h = yes; then
+    HAVE_SYS_TYPES_H=1
+  else
+    HAVE_SYS_TYPES_H=0
+  fi
 
-#include <limits.h>"; then :
 
-else
-  result=unknown
-fi
 
-       eval gl_cv_bitsizeof_${gltype}=\$result
 
-fi
-eval ac_res=\$gl_cv_bitsizeof_${gltype}
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_bitsizeof_${gltype}
-    if test $result = unknown; then
-                                                result=0
-    fi
-    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    cat >>confdefs.h <<_ACEOF
-#define BITSIZEOF_${GLTYPE} $result
-_ACEOF
 
-    eval BITSIZEOF_${GLTYPE}=\$result
-  done
 
 
-  fi
 
 
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
-$as_echo_n "checking for bit size of $gltype... " >&6; }
-if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then :
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_stdint_h='<'stdint.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdint.h>" >&5
+$as_echo_n "checking absolute name of <stdint.h>... " >&6; }
+if test "${gl_cv_next_stdint_h+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
 
-#include <limits.h>"; then :
+             if test $ac_cv_header_stdint_h = yes; then
 
-else
-  result=unknown
-fi
 
-       eval gl_cv_bitsizeof_${gltype}=\$result
 
-fi
-eval ac_res=\$gl_cv_bitsizeof_${gltype}
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_bitsizeof_${gltype}
-    if test $result = unknown; then
-                                                result=0
-    fi
-    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    cat >>confdefs.h <<_ACEOF
-#define BITSIZEOF_${GLTYPE} $result
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdint.h>
 _ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-    eval BITSIZEOF_${GLTYPE}=\$result
-  done
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'stdint.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_stdint_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_stdint_h
+           gl_cv_next_stdint_h='"'$gl_header'"'
+          else
+               gl_cv_next_stdint_h='<'stdint.h'>'
+             fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5
+$as_echo "$gl_cv_next_stdint_h" >&6; }
+     fi
+     NEXT_STDINT_H=$gl_cv_next_stdint_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'stdint.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_stdint_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive
 
 
 
 
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5
-$as_echo_n "checking whether $gltype is signed... " >&6; }
-if { as_var=gl_cv_type_${gltype}_signed; eval "test \"\${$as_var+set}\" = set"; }; then :
+  if test $ac_cv_header_stdint_h = yes; then
+    HAVE_STDINT_H=1
+  else
+    HAVE_STDINT_H=0
+  fi
+
+
+    if test $ac_cv_header_stdint_h = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5
+$as_echo_n "checking whether stdint.h conforms to C99... " >&6; }
+if test "${gl_cv_header_working_stdint_h+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  gl_cv_header_working_stdint_h=no
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
+
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#define __STDC_CONSTANT_MACROS 1
+#define __STDC_LIMIT_MACROS 1
+#include <stdint.h>
+/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
+#if !(defined WCHAR_MIN && defined WCHAR_MAX)
+#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
+#endif
+
+
   /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
      included before <wchar.h>.  */
   #include <stddef.h>
@@ -8842,85 +9297,148 @@ else
   # include <wchar.h>
   #endif
 
-            int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  result=yes
-else
-  result=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-       eval gl_cv_type_${gltype}_signed=\$result
-
-fi
-eval ac_res=\$gl_cv_type_${gltype}_signed
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_type_${gltype}_signed
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    if test "$result" = yes; then
-      cat >>confdefs.h <<_ACEOF
-#define HAVE_SIGNED_${GLTYPE} 1
-_ACEOF
-
-      eval HAVE_SIGNED_${GLTYPE}=1
-    else
-      eval HAVE_SIGNED_${GLTYPE}=0
-    fi
-  done
 
+#ifdef INT8_MAX
+int8_t a1 = INT8_MAX;
+int8_t a1min = INT8_MIN;
+#endif
+#ifdef INT16_MAX
+int16_t a2 = INT16_MAX;
+int16_t a2min = INT16_MIN;
+#endif
+#ifdef INT32_MAX
+int32_t a3 = INT32_MAX;
+int32_t a3min = INT32_MIN;
+#endif
+#ifdef INT64_MAX
+int64_t a4 = INT64_MAX;
+int64_t a4min = INT64_MIN;
+#endif
+#ifdef UINT8_MAX
+uint8_t b1 = UINT8_MAX;
+#else
+typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
+#endif
+#ifdef UINT16_MAX
+uint16_t b2 = UINT16_MAX;
+#endif
+#ifdef UINT32_MAX
+uint32_t b3 = UINT32_MAX;
+#endif
+#ifdef UINT64_MAX
+uint64_t b4 = UINT64_MAX;
+#endif
+int_least8_t c1 = INT8_C (0x7f);
+int_least8_t c1max = INT_LEAST8_MAX;
+int_least8_t c1min = INT_LEAST8_MIN;
+int_least16_t c2 = INT16_C (0x7fff);
+int_least16_t c2max = INT_LEAST16_MAX;
+int_least16_t c2min = INT_LEAST16_MIN;
+int_least32_t c3 = INT32_C (0x7fffffff);
+int_least32_t c3max = INT_LEAST32_MAX;
+int_least32_t c3min = INT_LEAST32_MIN;
+int_least64_t c4 = INT64_C (0x7fffffffffffffff);
+int_least64_t c4max = INT_LEAST64_MAX;
+int_least64_t c4min = INT_LEAST64_MIN;
+uint_least8_t d1 = UINT8_C (0xff);
+uint_least8_t d1max = UINT_LEAST8_MAX;
+uint_least16_t d2 = UINT16_C (0xffff);
+uint_least16_t d2max = UINT_LEAST16_MAX;
+uint_least32_t d3 = UINT32_C (0xffffffff);
+uint_least32_t d3max = UINT_LEAST32_MAX;
+uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
+uint_least64_t d4max = UINT_LEAST64_MAX;
+int_fast8_t e1 = INT_FAST8_MAX;
+int_fast8_t e1min = INT_FAST8_MIN;
+int_fast16_t e2 = INT_FAST16_MAX;
+int_fast16_t e2min = INT_FAST16_MIN;
+int_fast32_t e3 = INT_FAST32_MAX;
+int_fast32_t e3min = INT_FAST32_MIN;
+int_fast64_t e4 = INT_FAST64_MAX;
+int_fast64_t e4min = INT_FAST64_MIN;
+uint_fast8_t f1 = UINT_FAST8_MAX;
+uint_fast16_t f2 = UINT_FAST16_MAX;
+uint_fast32_t f3 = UINT_FAST32_MAX;
+uint_fast64_t f4 = UINT_FAST64_MAX;
+#ifdef INTPTR_MAX
+intptr_t g = INTPTR_MAX;
+intptr_t gmin = INTPTR_MIN;
+#endif
+#ifdef UINTPTR_MAX
+uintptr_t h = UINTPTR_MAX;
+#endif
+intmax_t i = INTMAX_MAX;
+uintmax_t j = UINTMAX_MAX;
 
-  gl_cv_type_ptrdiff_t_signed=yes
-  gl_cv_type_size_t_signed=no
-  if test $APPLE_UNIVERSAL_BUILD = 0; then
+/* Check that SIZE_MAX has the correct type, if possible.  */
+#if 201112 <= __STDC_VERSION__
+int k = _Generic (SIZE_MAX, size_t: 0);
+#elif (2 <= __GNUC__ || defined __IBM__TYPEOF__ \
+       || (0x5110 <= __SUNPRO_C && !__STDC__))
+extern size_t k;
+extern __typeof__ (SIZE_MAX) k;
+#endif
 
+#include <limits.h> /* for CHAR_BIT */
+#define TYPE_MINIMUM(t) \
+  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+  ((t) ((t) 0 < (t) -1 \
+        ? (t) -1 \
+        : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+struct s {
+  int check_PTRDIFF:
+      PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+      && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+      ? 1 : -1;
+  /* Detect bug in FreeBSD 6.0 / ia64.  */
+  int check_SIG_ATOMIC:
+      SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+      && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+      ? 1 : -1;
+  int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
+  int check_WCHAR:
+      WCHAR_MIN == TYPE_MINIMUM (wchar_t)
+      && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
+      ? 1 : -1;
+  /* Detect bug in mingw.  */
+  int check_WINT:
+      WINT_MIN == TYPE_MINIMUM (wint_t)
+      && WINT_MAX == TYPE_MAXIMUM (wint_t)
+      ? 1 : -1;
 
-  for gltype in ptrdiff_t size_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
-$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
-if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval gl_cv_type_${gltype}_suffix=no
-       eval result=\$gl_cv_type_${gltype}_signed
-       if test "$result" = yes; then
-         glsufu=
-       else
-         glsufu=u
-       fi
-       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
-         case $glsuf in
-           '')  gltype1='int';;
-           l)   gltype1='long int';;
-           ll)  gltype1='long long int';;
-           i64) gltype1='__int64';;
-           u)   gltype1='unsigned int';;
-           ul)  gltype1='unsigned long int';;
-           ull) gltype1='unsigned long long int';;
-           ui64)gltype1='unsigned __int64';;
-         esac
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
+  int check_UINT8_C:
+        (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
+  int check_UINT16_C:
+        (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
 
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
+  /* Detect bugs in OpenBSD 3.9 stdint.h.  */
+#ifdef UINT8_MAX
+  int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
+#endif
+#ifdef UINT16_MAX
+  int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
+#endif
+#ifdef UINT32_MAX
+  int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
+#endif
+#ifdef UINT64_MAX
+  int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
+#endif
+  int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
+  int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
+  int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
+  int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
+  int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
+  int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
+  int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
+  int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
+  int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
+  int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
+  int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
+};
 
-              extern $gltype foo;
-              extern $gltype1 foo;
 int
 main ()
 {
@@ -8930,56 +9448,19 @@ main ()
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  eval gl_cv_type_${gltype}_suffix=\$glsuf
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-         eval result=\$gl_cv_type_${gltype}_suffix
-         test "$result" != no && break
-       done
-fi
-eval ac_res=\$gl_cv_type_${gltype}_suffix
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    eval result=\$gl_cv_type_${gltype}_suffix
-    test "$result" = no && result=
-    eval ${GLTYPE}_SUFFIX=\$result
-    cat >>confdefs.h <<_ACEOF
-#define ${GLTYPE}_SUFFIX $result
-_ACEOF
-
-  done
+                                                    if test "$cross_compiling" = yes; then :
+                 gl_cv_header_working_stdint_h=yes
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  fi
 
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#define __STDC_CONSTANT_MACROS 1
+#define __STDC_LIMIT_MACROS 1
+#include <stdint.h>
 
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
-$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
-if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval gl_cv_type_${gltype}_suffix=no
-       eval result=\$gl_cv_type_${gltype}_signed
-       if test "$result" = yes; then
-         glsufu=
-       else
-         glsufu=u
-       fi
-       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
-         case $glsuf in
-           '')  gltype1='int';;
-           l)   gltype1='long int';;
-           ll)  gltype1='long long int';;
-           i64) gltype1='__int64';;
-           u)   gltype1='unsigned int';;
-           ul)  gltype1='unsigned long int';;
-           ull) gltype1='unsigned long long int';;
-           ui64)gltype1='unsigned __int64';;
-         esac
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
   /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
      included before <wchar.h>.  */
@@ -8991,245 +9472,396 @@ else
   # include <wchar.h>
   #endif
 
-              extern $gltype foo;
-              extern $gltype1 foo;
-int
-main ()
-{
 
-  ;
+#include <stdio.h>
+#include <string.h>
+#define MVAL(macro) MVAL1(macro)
+#define MVAL1(expression) #expression
+static const char *macro_values[] =
+  {
+#ifdef INT8_MAX
+    MVAL (INT8_MAX),
+#endif
+#ifdef INT16_MAX
+    MVAL (INT16_MAX),
+#endif
+#ifdef INT32_MAX
+    MVAL (INT32_MAX),
+#endif
+#ifdef INT64_MAX
+    MVAL (INT64_MAX),
+#endif
+#ifdef UINT8_MAX
+    MVAL (UINT8_MAX),
+#endif
+#ifdef UINT16_MAX
+    MVAL (UINT16_MAX),
+#endif
+#ifdef UINT32_MAX
+    MVAL (UINT32_MAX),
+#endif
+#ifdef UINT64_MAX
+    MVAL (UINT64_MAX),
+#endif
+    NULL
+  };
+
+int
+main ()
+{
+
+  const char **mv;
+  for (mv = macro_values; *mv != NULL; mv++)
+    {
+      const char *value = *mv;
+      /* Test whether it looks like a cast expression.  */
+      if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0
+          || strncmp (value, "((unsigned short)"/*)*/, 17) == 0
+          || strncmp (value, "((unsigned char)"/*)*/, 16) == 0
+          || strncmp (value, "((int)"/*)*/, 6) == 0
+          || strncmp (value, "((signed short)"/*)*/, 15) == 0
+          || strncmp (value, "((signed char)"/*)*/, 14) == 0)
+        return mv - macro_values + 1;
+    }
+  return 0;
+
+  ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval gl_cv_type_${gltype}_suffix=\$glsuf
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_header_working_stdint_h=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-         eval result=\$gl_cv_type_${gltype}_suffix
-         test "$result" != no && break
-       done
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-eval ac_res=\$gl_cv_type_${gltype}_suffix
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    eval result=\$gl_cv_type_${gltype}_suffix
-    test "$result" = no && result=
-    eval ${GLTYPE}_SUFFIX=\$result
-    cat >>confdefs.h <<_ACEOF
-#define ${GLTYPE}_SUFFIX $result
-_ACEOF
-
-  done
-
 
 
-          if test $BITSIZEOF_WINT_T -lt 32; then
-    BITSIZEOF_WINT_T=32
-  fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5
+$as_echo "$gl_cv_header_working_stdint_h" >&6; }
   fi
 
-  # The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH.
-  LIMITS_H=limits.h
-   if test -n "$LIMITS_H"; then
-  GL_GENERATE_LIMITS_H_TRUE=
-  GL_GENERATE_LIMITS_H_FALSE='#'
+  HAVE_C99_STDINT_H=0
+  HAVE_SYS_BITYPES_H=0
+  HAVE_SYS_INTTYPES_H=0
+  STDINT_H=stdint.h
+  if test "$gl_cv_header_working_stdint_h" = yes; then
+    HAVE_C99_STDINT_H=1
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h predates C++11" >&5
+$as_echo_n "checking whether stdint.h predates C++11... " >&6; }
+if test "${gl_cv_header_stdint_predates_cxx11_h+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  GL_GENERATE_LIMITS_H_TRUE='#'
-  GL_GENERATE_LIMITS_H_FALSE=
-fi
-
+  gl_cv_header_stdint_predates_cxx11_h=yes
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
 
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#include <stdint.h>
 
 
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
-   if test -n "$STDINT_H"; then
-  GL_GENERATE_STDINT_H_TRUE=
-  GL_GENERATE_STDINT_H_FALSE='#'
-else
-  GL_GENERATE_STDINT_H_TRUE='#'
-  GL_GENERATE_STDINT_H_FALSE=
-fi
 
+intmax_t im = INTMAX_MAX;
+int32_t i32 = INT32_C (0x7fffffff);
 
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_stdint_predates_cxx11_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_predates_cxx11_h" >&5
+$as_echo "$gl_cv_header_stdint_predates_cxx11_h" >&6; }
 
+    if test "$gl_cv_header_stdint_predates_cxx11_h" = yes; then
 
-  GNULIB_IMAXABS=0;
-  GNULIB_IMAXDIV=0;
-  GNULIB_STRTOIMAX=0;
-  GNULIB_STRTOUMAX=0;
-    HAVE_DECL_IMAXABS=1;
-  HAVE_DECL_IMAXDIV=1;
-  HAVE_DECL_STRTOIMAX=1;
-  HAVE_DECL_STRTOUMAX=1;
-  REPLACE_STRTOIMAX=0;
-  REPLACE_STRTOUMAX=0;
-  INT32_MAX_LT_INTMAX_MAX=1;
-  INT64_MAX_EQ_LONG_MAX='defined _LP64';
-  PRI_MACROS_BROKEN=0;
-  PRIPTR_PREFIX=__PRIPTR_PREFIX;
-  UINT32_MAX_LT_UINTMAX_MAX=1;
-  UINT64_MAX_EQ_ULONG_MAX='defined _LP64';
+$as_echo "#define __STDC_CONSTANT_MACROS 1" >>confdefs.h
 
 
+$as_echo "#define __STDC_LIMIT_MACROS 1" >>confdefs.h
 
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h has UINTMAX_WIDTH etc." >&5
+$as_echo_n "checking whether stdint.h has UINTMAX_WIDTH etc.... " >&6; }
+if test "${gl_cv_header_stdint_width+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  gl_cv_header_stdint_width=no
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+            /* Work if build is not clean.  */
+            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1
+            #ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+             #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
+            #endif
+            #include <stdint.h>
 
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
+            int iw = UINTMAX_WIDTH;
 
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_stdint_width=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_width" >&5
+$as_echo "$gl_cv_header_stdint_width" >&6; }
+    if test "$gl_cv_header_stdint_width" = yes; then
+      STDINT_H=
+    fi
+  else
+            for ac_header in sys/inttypes.h sys/bitypes.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
+fi
 
+done
 
+    if test $ac_cv_header_sys_inttypes_h = yes; then
+      HAVE_SYS_INTTYPES_H=1
+    fi
+    if test $ac_cv_header_sys_bitypes_h = yes; then
+      HAVE_SYS_BITYPES_H=1
+    fi
 
 
+  if test $APPLE_UNIVERSAL_BUILD = 0; then
 
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_inttypes_h='<'inttypes.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <inttypes.h>" >&5
-$as_echo_n "checking absolute name of <inttypes.h>... " >&6; }
-if test "${gl_cv_next_inttypes_h+set}" = set; then :
+  for gltype in ptrdiff_t size_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
+$as_echo_n "checking for bit size of $gltype... " >&6; }
+if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
+  if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
-             if test $ac_cv_header_inttypes_h = yes; then
-
-
+#include <limits.h>"; then :
 
+else
+  result=unknown
+fi
 
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <inttypes.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
+       eval gl_cv_bitsizeof_${gltype}=\$result
 
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'inttypes.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
+fi
+eval ac_res=\$gl_cv_bitsizeof_${gltype}
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    eval result=\$gl_cv_bitsizeof_${gltype}
+    if test $result = unknown; then
+                                                result=0
+    fi
+    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    cat >>confdefs.h <<_ACEOF
+#define BITSIZEOF_${GLTYPE} $result
+_ACEOF
 
-        gl_cv_absolute_inttypes_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
+    eval BITSIZEOF_${GLTYPE}=\$result
+  done
 
-           gl_header=$gl_cv_absolute_inttypes_h
-           gl_cv_next_inttypes_h='"'$gl_header'"'
-          else
-               gl_cv_next_inttypes_h='<'inttypes.h'>'
-             fi
 
+  fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_inttypes_h" >&5
-$as_echo "$gl_cv_next_inttypes_h" >&6; }
-     fi
-     NEXT_INTTYPES_H=$gl_cv_next_inttypes_h
 
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'inttypes.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_inttypes_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H=$gl_next_as_first_directive
+  for gltype in sig_atomic_t wchar_t wint_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
+$as_echo_n "checking for bit size of $gltype... " >&6; }
+if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
+#include <limits.h>"; then :
+
+else
+  result=unknown
+fi
 
+       eval gl_cv_bitsizeof_${gltype}=\$result
 
+fi
+eval ac_res=\$gl_cv_bitsizeof_${gltype}
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    eval result=\$gl_cv_bitsizeof_${gltype}
+    if test $result = unknown; then
+                                                result=0
+    fi
+    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    cat >>confdefs.h <<_ACEOF
+#define BITSIZEOF_${GLTYPE} $result
+_ACEOF
 
+    eval BITSIZEOF_${GLTYPE}=\$result
+  done
 
 
 
 
-    for gl_func in imaxabs imaxdiv strtoimax strtoumax; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then :
+  for gltype in sig_atomic_t wchar_t wint_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5
+$as_echo_n "checking whether $gltype is signed... " >&6; }
+if { as_var=gl_cv_type_${gltype}_signed; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <inttypes.h>
 
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
+
+            int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
 int
 main ()
 {
-#undef $gl_func
-  (void) $gl_func;
+
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_gl_Symbol=yes"
+  result=yes
 else
-  eval "$as_gl_Symbol=no"
+  result=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+       eval gl_cv_type_${gltype}_signed=\$result
+
 fi
-eval ac_res=\$$as_gl_Symbol
+eval ac_res=\$gl_cv_type_${gltype}_signed
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-    eval as_val=\$$as_gl_Symbol
-   if test "x$as_val" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+    eval result=\$gl_cv_type_${gltype}_signed
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    if test "$result" = yes; then
+      cat >>confdefs.h <<_ACEOF
+#define HAVE_SIGNED_${GLTYPE} 1
 _ACEOF
 
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-      done
-
-
+      eval HAVE_SIGNED_${GLTYPE}=1
+    else
+      eval HAVE_SIGNED_${GLTYPE}=0
+    fi
+  done
 
-  for ac_header in inttypes.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
-if test "x$ac_cv_header_inttypes_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_INTTYPES_H 1
-_ACEOF
 
-fi
+  gl_cv_type_ptrdiff_t_signed=yes
+  gl_cv_type_size_t_signed=no
+  if test $APPLE_UNIVERSAL_BUILD = 0; then
 
-done
 
-  if test $ac_cv_header_inttypes_h = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5
-$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; }
-if test "${gt_cv_inttypes_pri_broken+set}" = set; then :
+  for gltype in ptrdiff_t size_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
+$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
+if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
-
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  eval gl_cv_type_${gltype}_suffix=no
+       eval result=\$gl_cv_type_${gltype}_signed
+       if test "$result" = yes; then
+         glsufu=
+       else
+         glsufu=u
+       fi
+       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
+         case $glsuf in
+           '')  gltype1='int';;
+           l)   gltype1='long int';;
+           ll)  gltype1='long long int';;
+           i64) gltype1='__int64';;
+           u)   gltype1='unsigned int';;
+           ul)  gltype1='unsigned long int';;
+           ull) gltype1='unsigned long long int';;
+           ui64)gltype1='unsigned __int64';;
+         esac
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <inttypes.h>
-#ifdef PRId32
-char *p = PRId32;
-#endif
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
+              extern $gltype foo;
+              extern $gltype1 foo;
 int
 main ()
 {
@@ -9239,469 +9871,452 @@ main ()
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_inttypes_pri_broken=no
-else
-  gt_cv_inttypes_pri_broken=yes
+  eval gl_cv_type_${gltype}_suffix=\$glsuf
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
+         eval result=\$gl_cv_type_${gltype}_suffix
+         test "$result" != no && break
+       done
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_inttypes_pri_broken" >&5
-$as_echo "$gt_cv_inttypes_pri_broken" >&6; }
-  fi
-  if test "$gt_cv_inttypes_pri_broken" = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define PRI_MACROS_BROKEN 1
+eval ac_res=\$gl_cv_type_${gltype}_suffix
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    eval result=\$gl_cv_type_${gltype}_suffix
+    test "$result" = no && result=
+    eval ${GLTYPE}_SUFFIX=\$result
+    cat >>confdefs.h <<_ACEOF
+#define ${GLTYPE}_SUFFIX $result
 _ACEOF
 
-    PRI_MACROS_BROKEN=1
-  else
-    PRI_MACROS_BROKEN=0
-  fi
+  done
 
 
+  fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5
-$as_echo_n "checking where to find the exponent in a 'double'... " >&6; }
-if test "${gl_cv_cc_double_expbit0+set}" = set; then :
+
+  for gltype in sig_atomic_t wchar_t wint_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
+$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
+if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
-
-      if test "$cross_compiling" = yes; then :
-
-                                                                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  eval gl_cv_type_${gltype}_suffix=no
+       eval result=\$gl_cv_type_${gltype}_signed
+       if test "$result" = yes; then
+         glsufu=
+       else
+         glsufu=u
+       fi
+       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
+         case $glsuf in
+           '')  gltype1='int';;
+           l)   gltype1='long int';;
+           ll)  gltype1='long long int';;
+           i64) gltype1='__int64';;
+           u)   gltype1='unsigned int';;
+           ul)  gltype1='unsigned long int';;
+           ull) gltype1='unsigned long long int';;
+           ui64)gltype1='unsigned __int64';;
+         esac
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#if defined arm || defined __arm || defined __arm__
-  mixed_endianness
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "mixed_endianness" >/dev/null 2>&1; then :
-  gl_cv_cc_double_expbit0="unknown"
-else
-
-                                                         :
-if test "${ac_cv_c_bigendian+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_c_bigendian=unknown
-    # See if we're dealing with a universal compiler.
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __APPLE_CC__
-	       not a universal capable compiler
-	     #endif
-	     typedef int dummy;
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-	# Check for potential -arch flags.  It is not universal unless
-	# there are at least two -arch flags with different values.
-	ac_arch=
-	ac_prev=
-	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
-	 if test -n "$ac_prev"; then
-	   case $ac_word in
-	     i?86 | x86_64 | ppc | ppc64)
-	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
-		 ac_arch=$ac_word
-	       else
-		 ac_cv_c_bigendian=universal
-		 break
-	       fi
-	       ;;
-	   esac
-	   ac_prev=
-	 elif test "x$ac_word" = "x-arch"; then
-	   ac_prev=arch
-	 fi
-       done
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if sys/param.h defines the BYTE_ORDER macro.
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-	     #include <sys/param.h>
-
-int
-main ()
-{
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
-		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
-		     && LITTLE_ENDIAN)
-	      bogus endian macros
-	     #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-		#include <sys/param.h>
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
+              extern $gltype foo;
+              extern $gltype1 foo;
 int
 main ()
 {
-#if BYTE_ORDER != BIG_ENDIAN
-		 not big endian
-		#endif
 
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
-else
-  ac_cv_c_bigendian=no
+  eval gl_cv_type_${gltype}_suffix=\$glsuf
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+         eval result=\$gl_cv_type_${gltype}_suffix
+         test "$result" != no && break
+       done
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
-
-int
-main ()
-{
-#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
-	      bogus endian macros
-	     #endif
-
-  ;
-  return 0;
-}
+eval ac_res=\$gl_cv_type_${gltype}_suffix
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    eval result=\$gl_cv_type_${gltype}_suffix
+    test "$result" = no && result=
+    eval ${GLTYPE}_SUFFIX=\$result
+    cat >>confdefs.h <<_ACEOF
+#define ${GLTYPE}_SUFFIX $result
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to _BIG_ENDIAN or not.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
 
-int
-main ()
-{
-#ifndef _BIG_ENDIAN
-		 not big endian
-		#endif
+  done
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
-else
-  ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # Compile a test program.
-      if test "$cross_compiling" = yes; then :
-  # Try to guess by grepping values from an object file.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-short int ascii_mm[] =
-		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
-		short int ascii_ii[] =
-		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
-		int use_ascii (int i) {
-		  return ascii_mm[i] + ascii_ii[i];
-		}
-		short int ebcdic_ii[] =
-		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
-		short int ebcdic_mm[] =
-		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
-		int use_ebcdic (int i) {
-		  return ebcdic_mm[i] + ebcdic_ii[i];
-		}
-		extern int foo;
 
-int
-main ()
-{
-return use_ascii (foo) == use_ebcdic (foo);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
-	      ac_cv_c_bigendian=yes
-	    fi
-	    if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
-	      if test "$ac_cv_c_bigendian" = unknown; then
-		ac_cv_c_bigendian=no
-	      else
-		# finding both strings is unlikely to happen, but who knows?
-		ac_cv_c_bigendian=unknown
-	      fi
-	    fi
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
 
-	     /* Are we little or big endian?  From Harbison&Steele.  */
-	     union
-	     {
-	       long int l;
-	       char c[sizeof (long int)];
-	     } u;
-	     u.l = 1;
-	     return u.c[sizeof (long int) - 1] == 1;
+          if test $BITSIZEOF_WINT_T -lt 32; then
+    BITSIZEOF_WINT_T=32
+  fi
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_c_bigendian=no
+  fi
+
+  # The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH.
+  LIMITS_H=limits.h
+   if test -n "$LIMITS_H"; then
+  GL_GENERATE_LIMITS_H_TRUE=
+  GL_GENERATE_LIMITS_H_FALSE='#'
 else
-  ac_cv_c_bigendian=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  GL_GENERATE_LIMITS_H_TRUE='#'
+  GL_GENERATE_LIMITS_H_FALSE=
 fi
 
-    fi
-fi
-:
- case $ac_cv_c_bigendian in #(
-   yes)
-     gl_cv_cc_double_expbit0="word 0 bit 20";; #(
-   no)
-     gl_cv_cc_double_expbit0="word 1 bit 20" ;; #(
-   universal)
 
-$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
 
-     ;; #(
-   *)
-     gl_cv_cc_double_expbit0="unknown" ;;
- esac
 
 
+
+   if test -n "$STDINT_H"; then
+  GL_GENERATE_STDINT_H_TRUE=
+  GL_GENERATE_STDINT_H_FALSE='#'
+else
+  GL_GENERATE_STDINT_H_TRUE='#'
+  GL_GENERATE_STDINT_H_FALSE=
 fi
-rm -f conftest*
 
 
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <float.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-#define NWORDS \
-  ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-typedef union { double value; unsigned int word[NWORDS]; } memory_double;
-static unsigned int ored_words[NWORDS];
-static unsigned int anded_words[NWORDS];
-static void add_to_ored_words (double x)
-{
-  memory_double m;
-  size_t i;
-  /* Clear it first, in case sizeof (double) < sizeof (memory_double).  */
-  memset (&m, 0, sizeof (memory_double));
-  m.value = x;
-  for (i = 0; i < NWORDS; i++)
-    {
-      ored_words[i] |= m.word[i];
-      anded_words[i] &= m.word[i];
-    }
-}
-int main ()
-{
-  size_t j;
-  FILE *fp = fopen ("conftest.out", "w");
-  if (fp == NULL)
-    return 1;
-  for (j = 0; j < NWORDS; j++)
-    anded_words[j] = ~ (unsigned int) 0;
-  add_to_ored_words (0.25);
-  add_to_ored_words (0.5);
-  add_to_ored_words (1.0);
-  add_to_ored_words (2.0);
-  add_to_ored_words (4.0);
-  /* Remove bits that are common (e.g. if representation of the first mantissa
-     bit is explicit).  */
-  for (j = 0; j < NWORDS; j++)
-    ored_words[j] &= ~anded_words[j];
-  /* Now find the nonzero word.  */
-  for (j = 0; j < NWORDS; j++)
-    if (ored_words[j] != 0)
-      break;
-  if (j < NWORDS)
-    {
-      size_t i;
-      for (i = j + 1; i < NWORDS; i++)
-        if (ored_words[i] != 0)
-          {
-            fprintf (fp, "unknown");
-            return (fclose (fp) != 0);
-          }
-      for (i = 0; ; i++)
-        if ((ored_words[j] >> i) & 1)
-          {
-            fprintf (fp, "word %d bit %d", (int) j, (int) i);
-            return (fclose (fp) != 0);
-          }
-    }
-  fprintf (fp, "unknown");
-  return (fclose (fp) != 0);
-}
 
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_cc_double_expbit0=`cat conftest.out`
+
+  GNULIB_IMAXABS=0;
+  GNULIB_IMAXDIV=0;
+  GNULIB_STRTOIMAX=0;
+  GNULIB_STRTOUMAX=0;
+    HAVE_DECL_IMAXABS=1;
+  HAVE_DECL_IMAXDIV=1;
+  HAVE_DECL_STRTOIMAX=1;
+  HAVE_DECL_STRTOUMAX=1;
+  REPLACE_STRTOIMAX=0;
+  REPLACE_STRTOUMAX=0;
+  INT32_MAX_LT_INTMAX_MAX=1;
+  INT64_MAX_EQ_LONG_MAX='defined _LP64';
+  PRI_MACROS_BROKEN=0;
+  PRIPTR_PREFIX=__PRIPTR_PREFIX;
+  UINT32_MAX_LT_UINTMAX_MAX=1;
+  UINT64_MAX_EQ_ULONG_MAX='defined _LP64';
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_inttypes_h='<'inttypes.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <inttypes.h>" >&5
+$as_echo_n "checking absolute name of <inttypes.h>... " >&6; }
+if test "${gl_cv_next_inttypes_h+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  gl_cv_cc_double_expbit0="unknown"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
-      rm -f conftest.out
+             if test $ac_cv_header_inttypes_h = yes; then
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5
-$as_echo "$gl_cv_cc_double_expbit0" >&6; }
-  case "$gl_cv_cc_double_expbit0" in
-    word*bit*)
-      word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
-      bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
 
-cat >>confdefs.h <<_ACEOF
-#define DBL_EXPBIT0_WORD $word
-_ACEOF
 
 
-cat >>confdefs.h <<_ACEOF
-#define DBL_EXPBIT0_BIT $bit
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <inttypes.h>
 _ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
       ;;
   esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'inttypes.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
 
+        gl_cv_absolute_inttypes_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
 
-   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
-$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if test "${ac_cv_c_bigendian+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_c_bigendian=unknown
-    # See if we're dealing with a universal compiler.
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __APPLE_CC__
-	       not a universal capable compiler
-	     #endif
-	     typedef int dummy;
+           gl_header=$gl_cv_absolute_inttypes_h
+           gl_cv_next_inttypes_h='"'$gl_header'"'
+          else
+               gl_cv_next_inttypes_h='<'inttypes.h'>'
+             fi
 
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
 
-	# Check for potential -arch flags.  It is not universal unless
-	# there are at least two -arch flags with different values.
-	ac_arch=
-	ac_prev=
-	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
-	 if test -n "$ac_prev"; then
-	   case $ac_word in
-	     i?86 | x86_64 | ppc | ppc64)
-	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
-		 ac_arch=$ac_word
-	       else
-		 ac_cv_c_bigendian=universal
-		 break
-	       fi
-	       ;;
-	   esac
-	   ac_prev=
-	 elif test "x$ac_word" = "x-arch"; then
-	   ac_prev=arch
-	 fi
-       done
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if sys/param.h defines the BYTE_ORDER macro.
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-	     #include <sys/param.h>
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_inttypes_h" >&5
+$as_echo "$gl_cv_next_inttypes_h" >&6; }
+     fi
+     NEXT_INTTYPES_H=$gl_cv_next_inttypes_h
 
-int
-main ()
-{
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
-		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
-		     && LITTLE_ENDIAN)
-	      bogus endian macros
-	     #endif
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'inttypes.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_inttypes_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H=$gl_next_as_first_directive
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+
+
+
+
+
+    for gl_func in imaxabs imaxdiv strtoimax strtoumax; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-		#include <sys/param.h>
+#include <inttypes.h>
 
 int
 main ()
 {
-#if BYTE_ORDER != BIG_ENDIAN
-		 not big endian
-		#endif
-
+#undef $gl_func
+  (void) $gl_func;
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
+  eval "$as_gl_Symbol=yes"
 else
-  ac_cv_c_bigendian=no
+  eval "$as_gl_Symbol=no"
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
-
-int
+eval ac_res=\$$as_gl_Symbol
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    eval as_val=\$$as_gl_Symbol
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
+
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
+
+
+
+  for ac_header in inttypes.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
+if test "x$ac_cv_header_inttypes_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_INTTYPES_H 1
+_ACEOF
+
+fi
+
+done
+
+  if test $ac_cv_header_inttypes_h = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5
+$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; }
+if test "${gt_cv_inttypes_pri_broken+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_inttypes_pri_broken=no
+else
+  gt_cv_inttypes_pri_broken=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_inttypes_pri_broken" >&5
+$as_echo "$gt_cv_inttypes_pri_broken" >&6; }
+  fi
+  if test "$gt_cv_inttypes_pri_broken" = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define PRI_MACROS_BROKEN 1
+_ACEOF
+
+    PRI_MACROS_BROKEN=1
+  else
+    PRI_MACROS_BROKEN=0
+  fi
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5
+$as_echo_n "checking where to find the exponent in a 'double'... " >&6; }
+if test "${gl_cv_cc_double_expbit0+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      if test "$cross_compiling" = yes; then :
+
+                                                                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#if defined arm || defined __arm || defined __arm__
+  mixed_endianness
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "mixed_endianness" >/dev/null 2>&1; then :
+  gl_cv_cc_double_expbit0="unknown"
+else
+
+                                                         :
+if test "${ac_cv_c_bigendian+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+	       not a universal capable compiler
+	     #endif
+	     typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+	# Check for potential -arch flags.  It is not universal unless
+	# there are at least two -arch flags with different values.
+	ac_arch=
+	ac_prev=
+	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+	 if test -n "$ac_prev"; then
+	   case $ac_word in
+	     i?86 | x86_64 | ppc | ppc64)
+	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+		 ac_arch=$ac_word
+	       else
+		 ac_cv_c_bigendian=universal
+		 break
+	       fi
+	       ;;
+	   esac
+	   ac_prev=
+	 elif test "x$ac_word" = "x-arch"; then
+	   ac_prev=arch
+	 fi
+       done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+	     #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+		     && LITTLE_ENDIAN)
+	      bogus endian macros
+	     #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+		#include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+		 not big endian
+		#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
 main ()
 {
 #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
@@ -9814,253 +10429,384 @@ fi
 
     fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
-$as_echo "$ac_cv_c_bigendian" >&6; }
+:
  case $ac_cv_c_bigendian in #(
    yes)
-     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
-;; #(
+     gl_cv_cc_double_expbit0="word 0 bit 20";; #(
    no)
-      ;; #(
+     gl_cv_cc_double_expbit0="word 1 bit 20" ;; #(
    universal)
 
 $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
 
      ;; #(
    *)
-     as_fn_error "unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+     gl_cv_cc_double_expbit0="unknown" ;;
  esac
 
 
+fi
+rm -f conftest*
 
 
-  case "$host_os" in
-    mingw*)
-                        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5
-$as_echo_n "checking for 64-bit off_t... " >&6; }
-if test "${gl_cv_type_off_t_64+set}" = set; then :
-  $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-                int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1];
 
-int
-main ()
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#define NWORDS \
+  ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (double x)
 {
-
-  ;
-  return 0;
+  memory_double m;
+  size_t i;
+  /* Clear it first, in case sizeof (double) < sizeof (memory_double).  */
+  memset (&m, 0, sizeof (memory_double));
+  m.value = x;
+  for (i = 0; i < NWORDS; i++)
+    {
+      ored_words[i] |= m.word[i];
+      anded_words[i] &= m.word[i];
+    }
 }
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_type_off_t_64=yes
-else
-  gl_cv_type_off_t_64=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_off_t_64" >&5
-$as_echo "$gl_cv_type_off_t_64" >&6; }
-      if test $gl_cv_type_off_t_64 = no; then
-        WINDOWS_64_BIT_OFF_T=1
-      else
-        WINDOWS_64_BIT_OFF_T=0
-      fi
-                  WINDOWS_64_BIT_ST_SIZE=1
-      ;;
-    *)
-                                                      WINDOWS_64_BIT_OFF_T=0
-      WINDOWS_64_BIT_ST_SIZE=0
-      ;;
-  esac
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
-$as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
-if test "${am_cv_langinfo_codeset+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <langinfo.h>
-int
-main ()
+int main ()
 {
-char* cs = nl_langinfo(CODESET); return !cs;
-  ;
-  return 0;
+  size_t j;
+  FILE *fp = fopen ("conftest.out", "w");
+  if (fp == NULL)
+    return 1;
+  for (j = 0; j < NWORDS; j++)
+    anded_words[j] = ~ (unsigned int) 0;
+  add_to_ored_words (0.25);
+  add_to_ored_words (0.5);
+  add_to_ored_words (1.0);
+  add_to_ored_words (2.0);
+  add_to_ored_words (4.0);
+  /* Remove bits that are common (e.g. if representation of the first mantissa
+     bit is explicit).  */
+  for (j = 0; j < NWORDS; j++)
+    ored_words[j] &= ~anded_words[j];
+  /* Now find the nonzero word.  */
+  for (j = 0; j < NWORDS; j++)
+    if (ored_words[j] != 0)
+      break;
+  if (j < NWORDS)
+    {
+      size_t i;
+      for (i = j + 1; i < NWORDS; i++)
+        if (ored_words[i] != 0)
+          {
+            fprintf (fp, "unknown");
+            return (fclose (fp) != 0);
+          }
+      for (i = 0; ; i++)
+        if ((ored_words[j] >> i) & 1)
+          {
+            fprintf (fp, "word %d bit %d", (int) j, (int) i);
+            return (fclose (fp) != 0);
+          }
+    }
+  fprintf (fp, "unknown");
+  return (fclose (fp) != 0);
 }
+
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  am_cv_langinfo_codeset=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_cc_double_expbit0=`cat conftest.out`
 else
-  am_cv_langinfo_codeset=no
+  gl_cv_cc_double_expbit0="unknown"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5
-$as_echo "$am_cv_langinfo_codeset" >&6; }
-  if test $am_cv_langinfo_codeset = yes; then
 
-$as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
+      rm -f conftest.out
 
-  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5
+$as_echo "$gl_cv_cc_double_expbit0" >&6; }
+  case "$gl_cv_cc_double_expbit0" in
+    word*bit*)
+      word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+      bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
 
+cat >>confdefs.h <<_ACEOF
+#define DBL_EXPBIT0_WORD $word
+_ACEOF
 
 
+cat >>confdefs.h <<_ACEOF
+#define DBL_EXPBIT0_BIT $bit
+_ACEOF
 
+      ;;
+  esac
 
 
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if test "${ac_cv_c_bigendian+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+	       not a universal capable compiler
+	     #endif
+	     typedef int dummy;
 
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
 
+	# Check for potential -arch flags.  It is not universal unless
+	# there are at least two -arch flags with different values.
+	ac_arch=
+	ac_prev=
+	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+	 if test -n "$ac_prev"; then
+	   case $ac_word in
+	     i?86 | x86_64 | ppc | ppc64)
+	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+		 ac_arch=$ac_word
+	       else
+		 ac_cv_c_bigendian=universal
+		 break
+	       fi
+	       ;;
+	   esac
+	   ac_prev=
+	 elif test "x$ac_word" = "x-arch"; then
+	   ac_prev=arch
+	 fi
+       done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+	     #include <sys/param.h>
 
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+		     && LITTLE_ENDIAN)
+	      bogus endian macros
+	     #endif
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5
-$as_echo_n "checking for working fcntl.h... " >&6; }
-if test "${gl_cv_header_working_fcntl_h+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-  gl_cv_header_working_fcntl_h=cross-compiling
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
-           #include <sys/stat.h>
-           #if HAVE_UNISTD_H
-           # include <unistd.h>
-           #else /* on Windows with MSVC */
-           # include <io.h>
-           # include <stdlib.h>
-           # defined sleep(n) _sleep ((n) * 1000)
-           #endif
-           #include <fcntl.h>
-           #ifndef O_NOATIME
-            #define O_NOATIME 0
-           #endif
-           #ifndef O_NOFOLLOW
-            #define O_NOFOLLOW 0
-           #endif
-           static int const constants[] =
-            {
-              O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND,
-              O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY
-            };
+		#include <sys/param.h>
 
 int
 main ()
 {
+#if BYTE_ORDER != BIG_ENDIAN
+		 not big endian
+		#endif
 
-            int result = !constants;
-            #if HAVE_SYMLINK
-            {
-              static char const sym[] = "conftest.sym";
-              if (symlink ("/dev/null", sym) != 0)
-                result |= 2;
-              else
-                {
-                  int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0);
-                  if (fd >= 0)
-                    {
-                      close (fd);
-                      result |= 4;
-                    }
-                }
-              if (unlink (sym) != 0 || symlink (".", sym) != 0)
-                result |= 2;
-              else
-                {
-                  int fd = open (sym, O_RDONLY | O_NOFOLLOW);
-                  if (fd >= 0)
-                    {
-                      close (fd);
-                      result |= 4;
-                    }
-                }
-              unlink (sym);
-            }
-            #endif
-            {
-              static char const file[] = "confdefs.h";
-              int fd = open (file, O_RDONLY | O_NOATIME);
-              if (fd < 0)
-                result |= 8;
-              else
-                {
-                  struct stat st0;
-                  if (fstat (fd, &st0) != 0)
-                    result |= 16;
-                  else
-                    {
-                      char c;
-                      sleep (1);
-                      if (read (fd, &c, 1) != 1)
-                        result |= 24;
-                      else
-                        {
-                          if (close (fd) != 0)
-                            result |= 32;
-                          else
-                            {
-                              struct stat st1;
-                              if (stat (file, &st1) != 0)
-                                result |= 40;
-                              else
-                                if (st0.st_atime != st1.st_atime)
-                                  result |= 64;
-                            }
-                        }
-                    }
-                }
-            }
-            return result;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_header_working_fcntl_h=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
 else
-  case $? in #(
-        4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
-        64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
-        68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
-         *) gl_cv_header_working_fcntl_h='no';;
-        esac
+  ac_cv_c_bigendian=no
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+	      bogus endian macros
+	     #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
 
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+		 not big endian
+		#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5
-$as_echo "$gl_cv_header_working_fcntl_h" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes; then :
+  # Try to guess by grepping values from an object file.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+short int ascii_mm[] =
+		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+		short int ascii_ii[] =
+		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+		int use_ascii (int i) {
+		  return ascii_mm[i] + ascii_ii[i];
+		}
+		short int ebcdic_ii[] =
+		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+		short int ebcdic_mm[] =
+		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+		int use_ebcdic (int i) {
+		  return ebcdic_mm[i] + ebcdic_ii[i];
+		}
+		extern int foo;
 
-  case $gl_cv_header_working_fcntl_h in #(
-  *O_NOATIME* | no | cross-compiling) ac_val=0;; #(
-  *) ac_val=1;;
-  esac
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+	      ac_cv_c_bigendian=yes
+	    fi
+	    if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+	      if test "$ac_cv_c_bigendian" = unknown; then
+		ac_cv_c_bigendian=no
+	      else
+		# finding both strings is unlikely to happen, but who knows?
+		ac_cv_c_bigendian=unknown
+	      fi
+	    fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WORKING_O_NOATIME $ac_val
+	     /* Are we little or big endian?  From Harbison&Steele.  */
+	     union
+	     {
+	       long int l;
+	       char c[sizeof (long int)];
+	     } u;
+	     u.l = 1;
+	     return u.c[sizeof (long int) - 1] == 1;
+
+  ;
+  return 0;
+}
 _ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_c_bigendian=no
+else
+  ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+    fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+   yes)
+     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+;; #(
+   no)
+      ;; #(
+   universal)
 
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
 
-  case $gl_cv_header_working_fcntl_h in #(
-  *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #(
-  *) ac_val=1;;
-  esac
+     ;; #(
+   *)
+     as_fn_error "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+ esac
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WORKING_O_NOFOLLOW $ac_val
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
+$as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
+if test "${am_cv_langinfo_codeset+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(CODESET); return !cs;
+  ;
+  return 0;
+}
 _ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  am_cv_langinfo_codeset=yes
+else
+  am_cv_langinfo_codeset=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5
+$as_echo "$am_cv_langinfo_codeset" >&6; }
+  if test $am_cv_langinfo_codeset = yes; then
+
+$as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
 
+  fi
 
 ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
 if test "x$ac_cv_have_decl_getc_unlocked" = x""yes; then :
@@ -10111,130 +10857,34 @@ fi
 
 
 
-     GNULIB_FCHMODAT=0;
-  GNULIB_FSTAT=0;
-  GNULIB_FSTATAT=0;
-  GNULIB_FUTIMENS=0;
-  GNULIB_LCHMOD=0;
-  GNULIB_LSTAT=0;
-  GNULIB_MKDIRAT=0;
-  GNULIB_MKFIFO=0;
-  GNULIB_MKFIFOAT=0;
-  GNULIB_MKNOD=0;
-  GNULIB_MKNODAT=0;
-  GNULIB_STAT=0;
-  GNULIB_UTIMENSAT=0;
-    HAVE_FCHMODAT=1;
-  HAVE_FSTATAT=1;
-  HAVE_FUTIMENS=1;
-  HAVE_LCHMOD=1;
-  HAVE_LSTAT=1;
-  HAVE_MKDIRAT=1;
-  HAVE_MKFIFO=1;
-  HAVE_MKFIFOAT=1;
-  HAVE_MKNOD=1;
-  HAVE_MKNODAT=1;
-  HAVE_UTIMENSAT=1;
-  REPLACE_FSTAT=0;
-  REPLACE_FSTATAT=0;
-  REPLACE_FUTIMENS=0;
-  REPLACE_LSTAT=0;
-  REPLACE_MKDIR=0;
-  REPLACE_MKFIFO=0;
-  REPLACE_MKNOD=0;
-  REPLACE_STAT=0;
-  REPLACE_UTIMENSAT=0;
-
-
 
 
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5
-$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; }
-if test "${gl_cv_func_lstat_dereferences_slashed_symlink+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5
+$as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; }
+if test "${gl_cv_func_malloc_posix+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  rm -f conftest.sym conftest.file
-     echo >conftest.file
-     if test "$cross_compiling" = yes; then :
-  case "$host_os" in
-          *-gnu*)
-            # Guess yes on glibc systems.
-            gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
-          *)
-            # If we don't know, assume the worst.
-            gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
-        esac
 
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+                        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
 int
 main ()
 {
-struct stat sbuf;
-            if (symlink ("conftest.file", "conftest.sym") != 0)
-              return 1;
-            /* Linux will dereference the symlink and fail, as required by
-               POSIX.  That is better in the sense that it means we will not
-               have to compile and use the lstat wrapper.  */
-            return lstat ("conftest.sym/", &sbuf) == 0;
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+             choke me
+             #endif
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_lstat_dereferences_slashed_symlink=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_malloc_posix=yes
 else
-  gl_cv_func_lstat_dereferences_slashed_symlink=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  gl_cv_func_malloc_posix=no
 fi
-
-     rm -f conftest.sym conftest.file
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5
-$as_echo "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; }
-  case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
-    *yes)
-
-cat >>confdefs.h <<_ACEOF
-#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
-_ACEOF
-
-      ;;
-  esac
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5
-$as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; }
-if test "${gl_cv_func_malloc_posix+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-             choke me
-             #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_func_malloc_posix=yes
-else
-  gl_cv_func_malloc_posix=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5
@@ -10944,688 +11594,3040 @@ _ACEOF
     rm -fr conftest*
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-$as_echo "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
+
+
+
+
+
+
+
+  GNULIB_FFSL=0;
+  GNULIB_FFSLL=0;
+  GNULIB_MEMCHR=0;
+  GNULIB_MEMMEM=0;
+  GNULIB_MEMPCPY=0;
+  GNULIB_MEMRCHR=0;
+  GNULIB_RAWMEMCHR=0;
+  GNULIB_STPCPY=0;
+  GNULIB_STPNCPY=0;
+  GNULIB_STRCHRNUL=0;
+  GNULIB_STRDUP=0;
+  GNULIB_STRNCAT=0;
+  GNULIB_STRNDUP=0;
+  GNULIB_STRNLEN=0;
+  GNULIB_STRPBRK=0;
+  GNULIB_STRSEP=0;
+  GNULIB_STRSTR=0;
+  GNULIB_STRCASESTR=0;
+  GNULIB_STRTOK_R=0;
+  GNULIB_MBSLEN=0;
+  GNULIB_MBSNLEN=0;
+  GNULIB_MBSCHR=0;
+  GNULIB_MBSRCHR=0;
+  GNULIB_MBSSTR=0;
+  GNULIB_MBSCASECMP=0;
+  GNULIB_MBSNCASECMP=0;
+  GNULIB_MBSPCASECMP=0;
+  GNULIB_MBSCASESTR=0;
+  GNULIB_MBSCSPN=0;
+  GNULIB_MBSPBRK=0;
+  GNULIB_MBSSPN=0;
+  GNULIB_MBSSEP=0;
+  GNULIB_MBSTOK_R=0;
+  GNULIB_STRERROR=0;
+  GNULIB_STRERROR_R=0;
+  GNULIB_STRSIGNAL=0;
+  GNULIB_STRVERSCMP=0;
+  HAVE_MBSLEN=0;
+    HAVE_FFSL=1;
+  HAVE_FFSLL=1;
+  HAVE_MEMCHR=1;
+  HAVE_DECL_MEMMEM=1;
+  HAVE_MEMPCPY=1;
+  HAVE_DECL_MEMRCHR=1;
+  HAVE_RAWMEMCHR=1;
+  HAVE_STPCPY=1;
+  HAVE_STPNCPY=1;
+  HAVE_STRCHRNUL=1;
+  HAVE_DECL_STRDUP=1;
+  HAVE_DECL_STRNDUP=1;
+  HAVE_DECL_STRNLEN=1;
+  HAVE_STRPBRK=1;
+  HAVE_STRSEP=1;
+  HAVE_STRCASESTR=1;
+  HAVE_DECL_STRTOK_R=1;
+  HAVE_DECL_STRERROR_R=1;
+  HAVE_DECL_STRSIGNAL=1;
+  HAVE_STRVERSCMP=1;
+  REPLACE_MEMCHR=0;
+  REPLACE_MEMMEM=0;
+  REPLACE_STPNCPY=0;
+  REPLACE_STRDUP=0;
+  REPLACE_STRSTR=0;
+  REPLACE_STRCASESTR=0;
+  REPLACE_STRCHRNUL=0;
+  REPLACE_STRERROR=0;
+  REPLACE_STRERROR_R=0;
+  REPLACE_STRNCAT=0;
+  REPLACE_STRNDUP=0;
+  REPLACE_STRNLEN=0;
+  REPLACE_STRSIGNAL=0;
+  REPLACE_STRTOK_R=0;
+  UNDEFINE_STRTOK_R=0;
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = x""yes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  if test $HAVE_MEMCHR = 1; then
+    # Detect platform-specific bugs in some versions of glibc:
+    # memchr should not dereference anything with length 0
+    #   http://bugzilla.redhat.com/499689
+    # memchr should not dereference overestimated length after a match
+    #   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
+    #   http://sourceware.org/bugzilla/show_bug.cgi?id=10162
+    # Assume that memchr works on platforms that lack mprotect.
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5
+$as_echo_n "checking whether memchr works... " >&6; }
+if test "${gl_cv_func_memchr_works+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+         gl_cv_func_memchr_works="guessing no"
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <string.h>
+#if HAVE_SYS_MMAN_H
+# include <fcntl.h>
+# include <unistd.h>
+# include <sys/types.h>
+# include <sys/mman.h>
+# ifndef MAP_FILE
+#  define MAP_FILE 0
+# endif
+#endif
+
+int
+main ()
+{
+
+  int result = 0;
+  char *fence = NULL;
+#if HAVE_SYS_MMAN_H && HAVE_MPROTECT
+# if HAVE_MAP_ANONYMOUS
+  const int flags = MAP_ANONYMOUS | MAP_PRIVATE;
+  const int fd = -1;
+# else /* !HAVE_MAP_ANONYMOUS */
+  const int flags = MAP_FILE | MAP_PRIVATE;
+  int fd = open ("/dev/zero", O_RDONLY, 0666);
+  if (fd >= 0)
+# endif
+    {
+      int pagesize = getpagesize ();
+      char *two_pages =
+        (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
+                       flags, fd, 0);
+      if (two_pages != (char *)(-1)
+          && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0)
+        fence = two_pages + pagesize;
+    }
+#endif
+  if (fence)
+    {
+      if (memchr (fence, 0, 0))
+        result |= 1;
+      strcpy (fence - 9, "12345678");
+      if (memchr (fence - 9, 0, 79) != fence - 1)
+        result |= 2;
+      if (memchr (fence - 1, 0, 3) != fence - 1)
+        result |= 4;
+    }
+  return result;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_memchr_works=yes
+else
+  gl_cv_func_memchr_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memchr_works" >&5
+$as_echo "$gl_cv_func_memchr_works" >&6; }
+    if test "$gl_cv_func_memchr_works" != yes; then
+      REPLACE_MEMCHR=1
+    fi
+  fi
+
+ac_fn_c_check_decl "$LINENO" "memmem" "ac_cv_have_decl_memmem" "$ac_includes_default"
+if test "x$ac_cv_have_decl_memmem" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MEMMEM $ac_have_decl
+_ACEOF
+
+
+
+
+
+  for ac_func in memmem
+do :
+  ac_fn_c_check_func "$LINENO" "memmem" "ac_cv_func_memmem"
+if test "x$ac_cv_func_memmem" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_MEMMEM 1
+_ACEOF
+
+fi
+done
+
+  if test $ac_cv_func_memmem = yes; then
+    HAVE_MEMMEM=1
+  else
+    HAVE_MEMMEM=0
+  fi
+
+  if test $ac_cv_have_decl_memmem = no; then
+    HAVE_DECL_MEMMEM=0
+  else
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memmem works" >&5
+$as_echo_n "checking whether memmem works... " >&6; }
+if test "${gl_cv_func_memmem_works_always+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+                                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#ifdef __GNU_LIBRARY__
+ #include <features.h>
+ #if ((__GLIBC__ == 2 && ((__GLIBC_MINOR > 0 && __GLIBC_MINOR__ < 9) \
+                          || __GLIBC_MINOR__ > 12)) \
+      || (__GLIBC__ > 2)) \
+     || defined __UCLIBC__
+  Lucky user
+ #endif
+#elif defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7)
+  Lucky user
+ #endif
+#else
+  Lucky user
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky user" >/dev/null 2>&1; then :
+  gl_cv_func_memmem_works_always="guessing yes"
+else
+  gl_cv_func_memmem_works_always="guessing no"
+fi
+rm -f conftest*
+
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <string.h> /* for memmem */
+#define P "_EF_BF_BD"
+#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P
+#define NEEDLE P P P P P
+
+int
+main ()
+{
+
+    int result = 0;
+    if (memmem (HAYSTACK, strlen (HAYSTACK), NEEDLE, strlen (NEEDLE)))
+      result |= 1;
+    /* Check for empty needle behavior.  */
+    {
+      const char *haystack = "AAA";
+      if (memmem (haystack, 3, NULL, 0) != haystack)
+        result |= 2;
+    }
+    return result;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_memmem_works_always=yes
+else
+  gl_cv_func_memmem_works_always=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_always" >&5
+$as_echo "$gl_cv_func_memmem_works_always" >&6; }
+    case "$gl_cv_func_memmem_works_always" in
+      *yes) ;;
+      *)
+        REPLACE_MEMMEM=1
+        ;;
+    esac
+  fi
+  :
+
+ac_fn_c_check_decl "$LINENO" "memrchr" "ac_cv_have_decl_memrchr" "$ac_includes_default"
+if test "x$ac_cv_have_decl_memrchr" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MEMRCHR $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5
+$as_echo_n "checking for promoted mode_t type... " >&6; }
+if test "${gl_cv_promoted_mode_t+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+int
+main ()
+{
+typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_promoted_mode_t='int'
+else
+  gl_cv_promoted_mode_t='mode_t'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_promoted_mode_t" >&5
+$as_echo "$gl_cv_promoted_mode_t" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define PROMOTED_MODE_T $gl_cv_promoted_mode_t
+_ACEOF
+
+
+
+
+
+  GNULIB_DPRINTF=0;
+  GNULIB_FCLOSE=0;
+  GNULIB_FDOPEN=0;
+  GNULIB_FFLUSH=0;
+  GNULIB_FGETC=0;
+  GNULIB_FGETS=0;
+  GNULIB_FOPEN=0;
+  GNULIB_FPRINTF=0;
+  GNULIB_FPRINTF_POSIX=0;
+  GNULIB_FPURGE=0;
+  GNULIB_FPUTC=0;
+  GNULIB_FPUTS=0;
+  GNULIB_FREAD=0;
+  GNULIB_FREOPEN=0;
+  GNULIB_FSCANF=0;
+  GNULIB_FSEEK=0;
+  GNULIB_FSEEKO=0;
+  GNULIB_FTELL=0;
+  GNULIB_FTELLO=0;
+  GNULIB_FWRITE=0;
+  GNULIB_GETC=0;
+  GNULIB_GETCHAR=0;
+  GNULIB_GETDELIM=0;
+  GNULIB_GETLINE=0;
+  GNULIB_OBSTACK_PRINTF=0;
+  GNULIB_OBSTACK_PRINTF_POSIX=0;
+  GNULIB_PCLOSE=0;
+  GNULIB_PERROR=0;
+  GNULIB_POPEN=0;
+  GNULIB_PRINTF=0;
+  GNULIB_PRINTF_POSIX=0;
+  GNULIB_PUTC=0;
+  GNULIB_PUTCHAR=0;
+  GNULIB_PUTS=0;
+  GNULIB_REMOVE=0;
+  GNULIB_RENAME=0;
+  GNULIB_RENAMEAT=0;
+  GNULIB_SCANF=0;
+  GNULIB_SNPRINTF=0;
+  GNULIB_SPRINTF_POSIX=0;
+  GNULIB_STDIO_H_NONBLOCKING=0;
+  GNULIB_STDIO_H_SIGPIPE=0;
+  GNULIB_TMPFILE=0;
+  GNULIB_VASPRINTF=0;
+  GNULIB_VFSCANF=0;
+  GNULIB_VSCANF=0;
+  GNULIB_VDPRINTF=0;
+  GNULIB_VFPRINTF=0;
+  GNULIB_VFPRINTF_POSIX=0;
+  GNULIB_VPRINTF=0;
+  GNULIB_VPRINTF_POSIX=0;
+  GNULIB_VSNPRINTF=0;
+  GNULIB_VSPRINTF_POSIX=0;
+    HAVE_DECL_FPURGE=1;
+  HAVE_DECL_FSEEKO=1;
+  HAVE_DECL_FTELLO=1;
+  HAVE_DECL_GETDELIM=1;
+  HAVE_DECL_GETLINE=1;
+  HAVE_DECL_OBSTACK_PRINTF=1;
+  HAVE_DECL_SNPRINTF=1;
+  HAVE_DECL_VSNPRINTF=1;
+  HAVE_DPRINTF=1;
+  HAVE_FSEEKO=1;
+  HAVE_FTELLO=1;
+  HAVE_PCLOSE=1;
+  HAVE_POPEN=1;
+  HAVE_RENAMEAT=1;
+  HAVE_VASPRINTF=1;
+  HAVE_VDPRINTF=1;
+  REPLACE_DPRINTF=0;
+  REPLACE_FCLOSE=0;
+  REPLACE_FDOPEN=0;
+  REPLACE_FFLUSH=0;
+  REPLACE_FOPEN=0;
+  REPLACE_FPRINTF=0;
+  REPLACE_FPURGE=0;
+  REPLACE_FREOPEN=0;
+  REPLACE_FSEEK=0;
+  REPLACE_FSEEKO=0;
+  REPLACE_FTELL=0;
+  REPLACE_FTELLO=0;
+  REPLACE_GETDELIM=0;
+  REPLACE_GETLINE=0;
+  REPLACE_OBSTACK_PRINTF=0;
+  REPLACE_PERROR=0;
+  REPLACE_POPEN=0;
+  REPLACE_PRINTF=0;
+  REPLACE_REMOVE=0;
+  REPLACE_RENAME=0;
+  REPLACE_RENAMEAT=0;
+  REPLACE_SNPRINTF=0;
+  REPLACE_SPRINTF=0;
+  REPLACE_STDIO_READ_FUNCS=0;
+  REPLACE_STDIO_WRITE_FUNCS=0;
+  REPLACE_TMPFILE=0;
+  REPLACE_VASPRINTF=0;
+  REPLACE_VDPRINTF=0;
+  REPLACE_VFPRINTF=0;
+  REPLACE_VPRINTF=0;
+  REPLACE_VSNPRINTF=0;
+  REPLACE_VSPRINTF=0;
+
+
+
+ac_fn_c_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_setenv" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SETENV $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+  if test $ac_cv_have_decl_setenv = no; then
+    HAVE_DECL_SETENV=0
+  fi
+
+
+
+
+
+  for ac_header in search.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "search.h" "ac_cv_header_search_h" "$ac_includes_default"
+if test "x$ac_cv_header_search_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SEARCH_H 1
+_ACEOF
+
+fi
+
+done
+
+  for ac_func in tsearch
+do :
+  ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch"
+if test "x$ac_cv_func_tsearch" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_TSEARCH 1
+_ACEOF
+
+fi
+done
+
+
+
+
+  GNULIB_PTHREAD_SIGMASK=0;
+  GNULIB_RAISE=0;
+  GNULIB_SIGNAL_H_SIGPIPE=0;
+  GNULIB_SIGPROCMASK=0;
+  GNULIB_SIGACTION=0;
+    HAVE_POSIX_SIGNALBLOCKING=1;
+  HAVE_PTHREAD_SIGMASK=1;
+  HAVE_RAISE=1;
+  HAVE_SIGSET_T=1;
+  HAVE_SIGINFO_T=1;
+  HAVE_SIGACTION=1;
+  HAVE_STRUCT_SIGACTION_SA_SIGACTION=1;
+
+  HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1;
+
+  HAVE_SIGHANDLER_T=1;
+  REPLACE_PTHREAD_SIGMASK=0;
+  REPLACE_RAISE=0;
+
+
+  ac_fn_c_check_type "$LINENO" "sigset_t" "ac_cv_type_sigset_t" "
+      #include <signal.h>
+      /* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>.  */
+      #include <sys/types.h>
+
+"
+if test "x$ac_cv_type_sigset_t" = x""yes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SIGSET_T 1
+_ACEOF
+
+gl_cv_type_sigset_t=yes
+else
+  gl_cv_type_sigset_t=no
+fi
+
+  if test $gl_cv_type_sigset_t != yes; then
+    HAVE_SIGSET_T=0
+  fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
+$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
+if test "${ac_cv_type_uid_t+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "uid_t" >/dev/null 2>&1; then :
+  ac_cv_type_uid_t=yes
+else
+  ac_cv_type_uid_t=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
+$as_echo "$ac_cv_type_uid_t" >&6; }
+if test $ac_cv_type_uid_t = no; then
+
+$as_echo "#define uid_t int" >>confdefs.h
+
+
+$as_echo "#define gid_t int" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
+$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
+if test "${ac_cv_header_stdbool_h+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+             #include <stdbool.h>
+
+             #ifdef __cplusplus
+              typedef bool Bool;
+             #else
+              typedef _Bool Bool;
+              #ifndef bool
+               "error: bool is not defined"
+              #endif
+              #ifndef false
+               "error: false is not defined"
+              #endif
+              #if false
+               "error: false is not 0"
+              #endif
+              #ifndef true
+               "error: true is not defined"
+              #endif
+              #if true != 1
+               "error: true is not 1"
+              #endif
+             #endif
+
+             #ifndef __bool_true_false_are_defined
+              "error: __bool_true_false_are_defined is not defined"
+             #endif
+
+             struct s { Bool s: 1; Bool t; bool u: 1; bool v; } s;
+
+             char a[true == 1 ? 1 : -1];
+             char b[false == 0 ? 1 : -1];
+             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+             char d[(bool) 0.5 == true ? 1 : -1];
+             /* See body of main program for 'e'.  */
+             char f[(Bool) 0.0 == false ? 1 : -1];
+             char g[true];
+             char h[sizeof (Bool)];
+             char i[sizeof s.t];
+             enum { j = false, k = true, l = false * true, m = true * 256 };
+             /* The following fails for
+                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
+             Bool n[m];
+             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
+             char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+             /* Catch a bug in an HP-UX C compiler.  See
+                http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+                http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+              */
+             Bool q = true;
+             Bool *pq = &q;
+             bool *qq = &q;
+
+int
+main ()
+{
+
+             bool e = &s;
+             *pq |= q; *pq |= ! q;
+             *qq |= q; *qq |= ! q;
+             /* Refer to every declared value, to avoid compiler optimizations.  */
+             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
+                     + !m + !n + !o + !p + !q + !pq + !qq);
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdbool_h=yes
+else
+  ac_cv_header_stdbool_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
+$as_echo "$ac_cv_header_stdbool_h" >&6; }
+   ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
+if test "x$ac_cv_type__Bool" = x""yes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE__BOOL 1
+_ACEOF
+
+
+fi
+
+
+
+    REPLACE_NULL=0;
+  HAVE_MAX_ALIGN_T=1;
+  HAVE_WCHAR_T=1;
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
+$as_echo_n "checking for wchar_t... " >&6; }
+if test "${gt_cv_c_wchar_t+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stddef.h>
+            wchar_t foo = (wchar_t)'\0';
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_c_wchar_t=yes
+else
+  gt_cv_c_wchar_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5
+$as_echo "$gt_cv_c_wchar_t" >&6; }
+  if test $gt_cv_c_wchar_t = yes; then
+
+$as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h
+
+  fi
+
+
+
+ac_fn_c_check_decl "$LINENO" "strdup" "ac_cv_have_decl_strdup" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strdup" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRDUP $ac_have_decl
+_ACEOF
+
+
+     REPLACE_STRERROR_0=0
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5
+$as_echo_n "checking whether strerror(0) succeeds... " >&6; }
+if test "${gl_cv_func_strerror_0_works+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_strerror_0_works="guessing no" ;;
+       esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+           #include <errno.h>
+
+int
+main ()
+{
+int result = 0;
+           char *str;
+           errno = 0;
+           str = strerror (0);
+           if (!*str) result |= 1;
+           if (errno) result |= 2;
+           if (strstr (str, "nknown") || strstr (str, "ndefined"))
+             result |= 4;
+           return result;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_strerror_0_works=yes
+else
+  gl_cv_func_strerror_0_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5
+$as_echo "$gl_cv_func_strerror_0_works" >&6; }
+  case "$gl_cv_func_strerror_0_works" in
+    *yes) ;;
+    *)
+      REPLACE_STRERROR_0=1
+
+$as_echo "#define REPLACE_STRERROR_0 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_string_h='<'string.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <string.h>" >&5
+$as_echo_n "checking absolute name of <string.h>... " >&6; }
+if test "${gl_cv_next_string_h+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'string.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_string_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_string_h
+           gl_cv_next_string_h='"'$gl_header'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5
+$as_echo "$gl_cv_next_string_h" >&6; }
+     fi
+     NEXT_STRING_H=$gl_cv_next_string_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'string.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_string_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive
+
+
+
+
+
+
+    for gl_func in ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul      strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r      strerror_r strsignal strverscmp; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+
+int
+main ()
+{
+#undef $gl_func
+  (void) $gl_func;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
+else
+  eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    eval as_val=\$$as_gl_Symbol
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
+
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
+
+
+
+
+
+  if test "$gl_cv_func_memchr_works" != yes; then
+    REPLACE_STRSTR=1
+  else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strstr works" >&5
+$as_echo_n "checking whether strstr works... " >&6; }
+if test "${gl_cv_func_strstr_works_always+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+                                               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#ifdef __GNU_LIBRARY__
+ #include <features.h>
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \
+     || defined __UCLIBC__
+  Lucky user
+ #endif
+#elif defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7)
+  Lucky user
+ #endif
+#else
+  Lucky user
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky user" >/dev/null 2>&1; then :
+  gl_cv_func_strstr_works_always="guessing yes"
+else
+  gl_cv_func_strstr_works_always="guessing no"
+fi
+rm -f conftest*
+
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <string.h> /* for strstr */
+#define P "_EF_BF_BD"
+#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P
+#define NEEDLE P P P P P
+
+int
+main ()
+{
+return !!strstr (HAYSTACK, NEEDLE);
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_strstr_works_always=yes
+else
+  gl_cv_func_strstr_works_always=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strstr_works_always" >&5
+$as_echo "$gl_cv_func_strstr_works_always" >&6; }
+    case "$gl_cv_func_strstr_works_always" in
+      *yes) ;;
+      *)
+        REPLACE_STRSTR=1
+        ;;
+    esac
+  fi
+
+ac_fn_c_check_decl "$LINENO" "strtok_r" "ac_cv_have_decl_strtok_r" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strtok_r" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRTOK_R $ac_have_decl
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+  if test "${ac_cv_path_mkdir+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in mkdir gmkdir; do
+	 for ac_exec_ext in '' $ac_executable_extensions; do
+	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+	     'mkdir (GNU coreutils) '* | \
+	     'mkdir (coreutils) '* | \
+	     'mkdir (fileutils) '4.1*)
+	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+	       break 3;;
+	   esac
+	 done
+       done
+  done
+IFS=$as_save_IFS
+
+fi
+
+  if test "${ac_cv_path_mkdir+set}" = set; then
+    MKDIR_P="$ac_cv_path_mkdir -p"
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for MKDIR_P within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    test -d ./--version && rmdir ./--version
+    MKDIR_P="$ac_install_sh -d"
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_sys_types_h='<'sys/types.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/types.h>" >&5
+$as_echo_n "checking absolute name of <sys/types.h>... " >&6; }
+if test "${gl_cv_next_sys_types_h+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'sys/types.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_sys_types_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_sys_types_h
+           gl_cv_next_sys_types_h='"'$gl_header'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5
+$as_echo "$gl_cv_next_sys_types_h" >&6; }
+     fi
+     NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'sys/types.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_sys_types_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive
+
+
+
+
+
+
+
+
+
+
+
+
+  GNULIB_MKTIME=0;
+  GNULIB_NANOSLEEP=0;
+  GNULIB_STRPTIME=0;
+  GNULIB_TIMEGM=0;
+  GNULIB_TIME_R=0;
+  GNULIB_TIME_RZ=0;
+    HAVE_DECL_LOCALTIME_R=1;
+  HAVE_NANOSLEEP=1;
+  HAVE_STRPTIME=1;
+  HAVE_TIMEGM=1;
+        REPLACE_LOCALTIME_R=GNULIB_PORTCHECK;
+  REPLACE_MKTIME=GNULIB_PORTCHECK;
+  REPLACE_NANOSLEEP=GNULIB_PORTCHECK;
+  REPLACE_TIMEGM=GNULIB_PORTCHECK;
+
+      : ${GNULIB_GETTIMEOFDAY=0};
+        REPLACE_GMTIME=0;
+  REPLACE_LOCALTIME=0;
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <time.h>" >&5
+$as_echo_n "checking for struct timespec in <time.h>... " >&6; }
+if test "${gl_cv_sys_struct_timespec_in_time_h+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <time.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_sys_struct_timespec_in_time_h=yes
+else
+  gl_cv_sys_struct_timespec_in_time_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_time_h" >&5
+$as_echo "$gl_cv_sys_struct_timespec_in_time_h" >&6; }
+
+  TIME_H_DEFINES_STRUCT_TIMESPEC=0
+  SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0
+  PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0
+  UNISTD_H_DEFINES_STRUCT_TIMESPEC=0
+  if test $gl_cv_sys_struct_timespec_in_time_h = yes; then
+    TIME_H_DEFINES_STRUCT_TIMESPEC=1
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <sys/time.h>" >&5
+$as_echo_n "checking for struct timespec in <sys/time.h>... " >&6; }
+if test "${gl_cv_sys_struct_timespec_in_sys_time_h+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/time.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_sys_struct_timespec_in_sys_time_h=yes
+else
+  gl_cv_sys_struct_timespec_in_sys_time_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5
+$as_echo "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; }
+    if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then
+      SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <pthread.h>" >&5
+$as_echo_n "checking for struct timespec in <pthread.h>... " >&6; }
+if test "${gl_cv_sys_struct_timespec_in_pthread_h+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <pthread.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_sys_struct_timespec_in_pthread_h=yes
+else
+  gl_cv_sys_struct_timespec_in_pthread_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5
+$as_echo "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; }
+      if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then
+        PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <unistd.h>" >&5
+$as_echo_n "checking for struct timespec in <unistd.h>... " >&6; }
+if test "${gl_cv_sys_struct_timespec_in_unistd_h+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <unistd.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_sys_struct_timespec_in_unistd_h=yes
+else
+  gl_cv_sys_struct_timespec_in_unistd_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_unistd_h" >&5
+$as_echo "$gl_cv_sys_struct_timespec_in_unistd_h" >&6; }
+        if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then
+          UNISTD_H_DEFINES_STRUCT_TIMESPEC=1
+        fi
+      fi
+    fi
+  fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_time_h='<'time.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <time.h>" >&5
+$as_echo_n "checking absolute name of <time.h>... " >&6; }
+if test "${gl_cv_next_time_h+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <time.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'time.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_time_h
+           gl_cv_next_time_h='"'$gl_header'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_time_h" >&5
+$as_echo "$gl_cv_next_time_h" >&6; }
+     fi
+     NEXT_TIME_H=$gl_cv_next_time_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'time.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_time_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_TIME_H=$gl_next_as_first_directive
+
+
+
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "unsetenv" "ac_cv_have_decl_unsetenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_unsetenv" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_UNSETENV $ac_have_decl
+_ACEOF
+
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <wchar.h> uses 'inline' correctly" >&5
+$as_echo_n "checking whether <wchar.h> uses 'inline' correctly... " >&6; }
+if test "${gl_cv_header_wchar_h_correct_inline+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  gl_cv_header_wchar_h_correct_inline=yes
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+       #define wcstod renamed_wcstod
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+extern int zero (void);
+int main () { return zero(); }
+
+_ACEOF
+                              save_ac_compile="$ac_compile"
+     ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/`
+     if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+         #define wcstod renamed_wcstod
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int zero (void) { return 0; }
+
+_ACEOF
+              ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/`
+       if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+         if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then
+           :
+         else
+           gl_cv_header_wchar_h_correct_inline=no
+         fi
+       fi
+     fi
+     ac_compile="$save_ac_compile"
+     rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5
+$as_echo "$gl_cv_header_wchar_h_correct_inline" >&6; }
+  if test $gl_cv_header_wchar_h_correct_inline = no; then
+    as_fn_error "<wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS).
+This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in
+C99 mode. You have four options:
+  - Add the flag -fgnu89-inline to CC and reconfigure, or
+  - Fix your include files, using parts of
+    <http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or
+  - Use a gcc version older than 4.3, or
+  - Don't use the flags -std=c99 or -std=gnu99.
+Configuration aborted." "$LINENO" 5
+  fi
+
+
+
+
+
+  if test $ac_cv_header_features_h = yes; then
+    HAVE_FEATURES_H=1
+  else
+    HAVE_FEATURES_H=0
+  fi
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
+$as_echo_n "checking for wint_t... " >&6; }
+if test "${gt_cv_c_wint_t+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+   before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+            wint_t foo = (wchar_t)'\0';
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_c_wint_t=yes
+else
+  gt_cv_c_wint_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5
+$as_echo "$gt_cv_c_wint_t" >&6; }
+  if test $gt_cv_c_wint_t = yes; then
+
+$as_echo "#define HAVE_WINT_T 1" >>confdefs.h
+
+  fi
+
+
+  GNULIB_ISWBLANK=0;
+  GNULIB_WCTYPE=0;
+  GNULIB_ISWCTYPE=0;
+  GNULIB_WCTRANS=0;
+  GNULIB_TOWCTRANS=0;
+    HAVE_ISWBLANK=1;
+  HAVE_WCTYPE_T=1;
+  HAVE_WCTRANS_T=1;
+  REPLACE_ISWBLANK=0;
+
+
+
+
+   if false; then
+  GL_COND_LIBTOOL_TRUE=
+  GL_COND_LIBTOOL_FALSE='#'
+else
+  GL_COND_LIBTOOL_TRUE='#'
+  GL_COND_LIBTOOL_FALSE=
+fi
+
+  gl_cond_libtool=false
+  gl_libdeps=
+  gl_ltlibdeps=
+  gl_m4_base='import/m4'
+
+
+
+
+
+
+
+
+
+  gl_source_base='import'
+
+
+  if test $ac_cv_func_alloca_works = no; then
+    :
+  fi
+
+  # Define an additional variable used in the Makefile substitution.
+  if test $ac_cv_working_alloca_h = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5
+$as_echo_n "checking for alloca as a compiler built-in... " >&6; }
+if test "${gl_cv_rpl_alloca+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#if defined __GNUC__ || defined _AIX || defined _MSC_VER
+        Need own alloca
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Need own alloca" >/dev/null 2>&1; then :
+  gl_cv_rpl_alloca=yes
+else
+  gl_cv_rpl_alloca=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5
+$as_echo "$gl_cv_rpl_alloca" >&6; }
+    if test $gl_cv_rpl_alloca = yes; then
+
+$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
+
+      ALLOCA_H=alloca.h
+    else
+                  ALLOCA_H=
+    fi
+  else
+    ALLOCA_H=alloca.h
+  fi
+
+   if test -n "$ALLOCA_H"; then
+  GL_GENERATE_ALLOCA_H_TRUE=
+  GL_GENERATE_ALLOCA_H_FALSE='#'
+else
+  GL_GENERATE_ALLOCA_H_TRUE='#'
+  GL_GENERATE_ALLOCA_H_FALSE=
+fi
+
+
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS openat-proc.$ac_objext"
+
+
+
+
+  if test $ac_cv_func_canonicalize_file_name = no; then
+    HAVE_CANONICALIZE_FILE_NAME=0
+    if test $ac_cv_func_realpath = no; then
+      HAVE_REALPATH=0
+    else
+      case "$gl_cv_func_realpath_works" in
+	*yes) ;;
+	*)    REPLACE_REALPATH=1 ;;
+      esac
+    fi
+  else
+    case "$gl_cv_func_realpath_works" in
+      *yes)
+        ;;
+      *)
+        REPLACE_CANONICALIZE_FILE_NAME=1
+        REPLACE_REALPATH=1
+        ;;
+    esac
+  fi
+
+  if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS canonicalize-lgpl.$ac_objext"
+
+  fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_CANONICALIZE_LGPL 1
+_ACEOF
+
+
+
+
+
+
+
+          GNULIB_CANONICALIZE_FILE_NAME=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_CANONICALIZE_FILE_NAME 1" >>confdefs.h
+
+
+
+
+
+
+
+
+          GNULIB_REALPATH=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_REALPATH 1" >>confdefs.h
+
+
+
+
+
+
+
+
+          GNULIB_CHDIR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_CHDIR 1" >>confdefs.h
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether this system has an arbitrary file name length limit" >&5
+$as_echo_n "checking whether this system has an arbitrary file name length limit... " >&6; }
+if test "${gl_cv_have_arbitrary_file_name_length_limit+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
+
+#ifdef PATH_MAX
+have_arbitrary_file_name_length_limit
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "have_arbitrary_file_name_length_limit" >/dev/null 2>&1; then :
+  gl_cv_have_arbitrary_file_name_length_limit=yes
+else
+  gl_cv_have_arbitrary_file_name_length_limit=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_arbitrary_file_name_length_limit" >&5
+$as_echo "$gl_cv_have_arbitrary_file_name_length_limit" >&6; }
+
+  if test $gl_cv_have_arbitrary_file_name_length_limit = yes; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS chdir-long.$ac_objext"
+
+    :
+  fi
+
+
+$as_echo "#define GNULIB_TEST_CLOEXEC 1" >>confdefs.h
+
+
+
+
+
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_CLOSE=1
+  fi
+
+
+
+
+
+  if test $ac_cv_header_sys_socket_h != yes; then
+                    for ac_header in winsock2.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_WINSOCK2_H 1
+_ACEOF
+
+fi
+
+done
+
+  fi
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    HAVE_WINSOCK2_H=1
+    UNISTD_H_HAVE_WINSOCK2_H=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+  else
+    HAVE_WINSOCK2_H=0
+  fi
+
+
+    if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then
+                        REPLACE_CLOSE=1
+    fi
+
+
+    if test $REPLACE_CLOSE = 0; then
+
+
+
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
+  fi
+
+      if test $HAVE_FCHDIR = 0; then
+        REPLACE_CLOSE=1
+      fi
+    fi
+
+
+  if test $REPLACE_CLOSE = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS close.$ac_objext"
+
+  fi
+
+
+
+
+
+          GNULIB_CLOSE=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_CLOSE 1" >>confdefs.h
+
+
+
+
+
+
+  for ac_func in closedir
+do :
+  ac_fn_c_check_func "$LINENO" "closedir" "ac_cv_func_closedir"
+if test "x$ac_cv_func_closedir" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_CLOSEDIR 1
+_ACEOF
+
+fi
+done
+
+  if test $ac_cv_func_closedir = no; then
+    HAVE_CLOSEDIR=0
+  fi
+
+
+
+
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
+  fi
+
+    if test $HAVE_FCHDIR = 0; then
+      if test $HAVE_CLOSEDIR = 1; then
+        REPLACE_CLOSEDIR=1
+      fi
+    fi
+
+    case $host_os,$HAVE_CLOSEDIR in
+    os2*,1)
+      REPLACE_CLOSEDIR=1;;
+  esac
+
+  if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS closedir.$ac_objext"
+
+  fi
+
+
+
+
+
+          GNULIB_CLOSEDIR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_CLOSEDIR 1" >>confdefs.h
+
+
+
+
+          if test "x$datarootdir" = x; then
+    datarootdir='${datadir}'
+
+  fi
+    if test "x$docdir" = x; then
+    docdir='${datarootdir}/doc/${PACKAGE}'
+
+  fi
+    if test "x$htmldir" = x; then
+    htmldir='${docdir}'
+
+  fi
+  if test "x$dvidir" = x; then
+    dvidir='${docdir}'
+
+  fi
+  if test "x$pdfdir" = x; then
+    pdfdir='${docdir}'
+
+  fi
+  if test "x$psdir" = x; then
+    psdir='${docdir}'
+
+  fi
+  if test "x$lispdir" = x; then
+    lispdir='${datarootdir}/emacs/site-lisp'
+
+  fi
+  if test "x$localedir" = x; then
+    localedir='${datarootdir}/locale'
+
+  fi
+    if test "x$runstatedir" = x; then
+    runstatedir='${localstatedir}/run'
+
+  fi
+
+      pkglibexecdir='${libexecdir}/${PACKAGE}'
+
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_ino member in directory struct" >&5
+$as_echo_n "checking for d_ino member in directory struct... " >&6; }
+if test "${gl_cv_struct_dirent_d_ino+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                           # Guess yes on glibc systems with Linux kernel.
+              linux*-gnu*) gl_cv_struct_dirent_d_ino="guessing yes" ;;
+                           # If we don't know, assume the worst.
+              *)           gl_cv_struct_dirent_d_ino="guessing no" ;;
+            esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+             #include <sys/stat.h>
+             #include <dirent.h>
+
+int
+main ()
+{
+DIR *dp = opendir (".");
+             struct dirent *e;
+             struct stat st;
+             if (! dp)
+               return 1;
+             e = readdir (dp);
+             if (! e)
+               return 2;
+             if (lstat (e->d_name, &st) != 0)
+               return 3;
+             if (e->d_ino != st.st_ino)
+               return 4;
+             closedir (dp);
+             return 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_struct_dirent_d_ino=yes
+else
+  gl_cv_struct_dirent_d_ino=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_ino" >&5
+$as_echo "$gl_cv_struct_dirent_d_ino" >&6; }
+   case "$gl_cv_struct_dirent_d_ino" in
+     *yes)
+
+$as_echo "#define D_INO_IN_DIRENT 1" >>confdefs.h
+
+       ;;
+   esac
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_type member in directory struct" >&5
+$as_echo_n "checking for d_type member in directory struct... " >&6; }
+if test "${gl_cv_struct_dirent_d_type+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/types.h>
+#include <dirent.h>
+
+int
+main ()
+{
+struct dirent dp; dp.d_type = 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_struct_dirent_d_type=yes
+else
+  gl_cv_struct_dirent_d_type=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_type" >&5
+$as_echo "$gl_cv_struct_dirent_d_type" >&6; }
+   if test $gl_cv_struct_dirent_d_type = yes; then
+
+$as_echo "#define HAVE_STRUCT_DIRENT_D_TYPE 1" >>confdefs.h
+
+   fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_dirent_h='<'dirent.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <dirent.h>" >&5
+$as_echo_n "checking absolute name of <dirent.h>... " >&6; }
+if test "${gl_cv_next_dirent_h+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+             if test $ac_cv_header_dirent_h = yes; then
+
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <dirent.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'dirent.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_dirent_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_dirent_h
+           gl_cv_next_dirent_h='"'$gl_header'"'
+          else
+               gl_cv_next_dirent_h='<'dirent.h'>'
+             fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_dirent_h" >&5
+$as_echo "$gl_cv_next_dirent_h" >&6; }
+     fi
+     NEXT_DIRENT_H=$gl_cv_next_dirent_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'dirent.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_dirent_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_DIRENT_H=$gl_next_as_first_directive
+
+
+
+
+  if test $ac_cv_header_dirent_h = yes; then
+    HAVE_DIRENT_H=1
+  else
+    HAVE_DIRENT_H=0
+  fi
+
+
+
+    for gl_func in alphasort closedir dirfd fdopendir opendir readdir rewinddir scandir; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <dirent.h>
+
+int
+main ()
+{
+#undef $gl_func
+  (void) $gl_func;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
+else
+  eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    eval as_val=\$$as_gl_Symbol
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
+
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
+
+
+
+
+
+
+
+  for ac_func in dirfd
+do :
+  ac_fn_c_check_func "$LINENO" "dirfd" "ac_cv_func_dirfd"
+if test "x$ac_cv_func_dirfd" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DIRFD 1
+_ACEOF
+
+fi
+done
+
+  ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h>
+      #include <dirent.h>
+"
+if test "x$ac_cv_have_decl_dirfd" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_DIRFD $ac_have_decl
+_ACEOF
+
+  if test $ac_cv_have_decl_dirfd = no; then
+    HAVE_DECL_DIRFD=0
+  fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dirfd is a macro" >&5
+$as_echo_n "checking whether dirfd is a macro... " >&6; }
+if test "${gl_cv_func_dirfd_macro+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/types.h>
+#include <dirent.h>
+#ifdef dirfd
+ dirent_header_defines_dirfd
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "dirent_header_defines_dirfd" >/dev/null 2>&1; then :
+  gl_cv_func_dirfd_macro=yes
+else
+  gl_cv_func_dirfd_macro=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dirfd_macro" >&5
+$as_echo "$gl_cv_func_dirfd_macro" >&6; }
+
+  # Use the replacement if we have no function or macro with that name,
+  # or if OS/2 kLIBC whose dirfd() does not work.
+  # Replace only if the system declares dirfd already.
+  case $ac_cv_func_dirfd,$gl_cv_func_dirfd_macro,$host_os,$ac_cv_have_decl_dirfd in
+    no,no,*,yes | *,*,os2*,yes)
+      REPLACE_DIRFD=1
+
+$as_echo "#define REPLACE_DIRFD 1" >>confdefs.h
+;;
+  esac
+
+  if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no \
+     || test $REPLACE_DIRFD = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS dirfd.$ac_objext"
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get the file descriptor associated with an open DIR*" >&5
+$as_echo_n "checking how to get the file descriptor associated with an open DIR*... " >&6; }
+if test "${gl_cv_sys_dir_fd_member_name+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      dirfd_save_CFLAGS=$CFLAGS
+      for ac_expr in d_fd dd_fd; do
+
+        CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+           #include <sys/types.h>
+           #include <dirent.h>
+int
+main ()
+{
+DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  dir_fd_found=yes
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        CFLAGS=$dirfd_save_CFLAGS
+        test "$dir_fd_found" = yes && break
+      done
+      test "$dir_fd_found" = yes || ac_expr=no_such_member
+
+      gl_cv_sys_dir_fd_member_name=$ac_expr
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_dir_fd_member_name" >&5
+$as_echo "$gl_cv_sys_dir_fd_member_name" >&6; }
+  if test $gl_cv_sys_dir_fd_member_name != no_such_member; then
+
+cat >>confdefs.h <<_ACEOF
+#define DIR_FD_MEMBER_NAME $gl_cv_sys_dir_fd_member_name
+_ACEOF
+
+  fi
+
+
+  fi
+
+
+
+
+
+          GNULIB_DIRFD=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_DIRFD 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5
+$as_echo_n "checking whether // is distinct from /... " >&6; }
+if test "${gl_cv_double_slash_root+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+   if test x"$cross_compiling" = xyes ; then
+        # When cross-compiling, there is no way to tell whether // is special
+        # short of a list of hosts.  However, the only known hosts to date
+        # that have a distinct // are Apollo DomainOS (too old to port to),
+        # Cygwin, and z/OS.  If anyone knows of another system for which // has
+        # special semantics and is distinct from /, please report it to
+        # <bug-gnulib@gnu.org>.
+        case $host in
+          *-cygwin | i370-ibm-openedition)
+            gl_cv_double_slash_root=yes ;;
+          *)
+            # Be optimistic and assume that / and // are the same when we
+            # don't know.
+            gl_cv_double_slash_root='unknown, assuming no' ;;
+        esac
+      else
+        set x `ls -di / // 2>/dev/null`
+        if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then
+          gl_cv_double_slash_root=no
+        else
+          gl_cv_double_slash_root=yes
+        fi
+      fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5
+$as_echo "$gl_cv_double_slash_root" >&6; }
+  if test "$gl_cv_double_slash_root" = yes; then
 
+$as_echo "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h
 
+  fi
 
 
 
 
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_DUP=1
+  fi
 
-  GNULIB_FFSL=0;
-  GNULIB_FFSLL=0;
-  GNULIB_MEMCHR=0;
-  GNULIB_MEMMEM=0;
-  GNULIB_MEMPCPY=0;
-  GNULIB_MEMRCHR=0;
-  GNULIB_RAWMEMCHR=0;
-  GNULIB_STPCPY=0;
-  GNULIB_STPNCPY=0;
-  GNULIB_STRCHRNUL=0;
-  GNULIB_STRDUP=0;
-  GNULIB_STRNCAT=0;
-  GNULIB_STRNDUP=0;
-  GNULIB_STRNLEN=0;
-  GNULIB_STRPBRK=0;
-  GNULIB_STRSEP=0;
-  GNULIB_STRSTR=0;
-  GNULIB_STRCASESTR=0;
-  GNULIB_STRTOK_R=0;
-  GNULIB_MBSLEN=0;
-  GNULIB_MBSNLEN=0;
-  GNULIB_MBSCHR=0;
-  GNULIB_MBSRCHR=0;
-  GNULIB_MBSSTR=0;
-  GNULIB_MBSCASECMP=0;
-  GNULIB_MBSNCASECMP=0;
-  GNULIB_MBSPCASECMP=0;
-  GNULIB_MBSCASESTR=0;
-  GNULIB_MBSCSPN=0;
-  GNULIB_MBSPBRK=0;
-  GNULIB_MBSSPN=0;
-  GNULIB_MBSSEP=0;
-  GNULIB_MBSTOK_R=0;
-  GNULIB_STRERROR=0;
-  GNULIB_STRERROR_R=0;
-  GNULIB_STRSIGNAL=0;
-  GNULIB_STRVERSCMP=0;
-  HAVE_MBSLEN=0;
-    HAVE_FFSL=1;
-  HAVE_FFSLL=1;
-  HAVE_MEMCHR=1;
-  HAVE_DECL_MEMMEM=1;
-  HAVE_MEMPCPY=1;
-  HAVE_DECL_MEMRCHR=1;
-  HAVE_RAWMEMCHR=1;
-  HAVE_STPCPY=1;
-  HAVE_STPNCPY=1;
-  HAVE_STRCHRNUL=1;
-  HAVE_DECL_STRDUP=1;
-  HAVE_DECL_STRNDUP=1;
-  HAVE_DECL_STRNLEN=1;
-  HAVE_STRPBRK=1;
-  HAVE_STRSEP=1;
-  HAVE_STRCASESTR=1;
-  HAVE_DECL_STRTOK_R=1;
-  HAVE_DECL_STRERROR_R=1;
-  HAVE_DECL_STRSIGNAL=1;
-  HAVE_STRVERSCMP=1;
-  REPLACE_MEMCHR=0;
-  REPLACE_MEMMEM=0;
-  REPLACE_STPNCPY=0;
-  REPLACE_STRDUP=0;
-  REPLACE_STRSTR=0;
-  REPLACE_STRCASESTR=0;
-  REPLACE_STRCHRNUL=0;
-  REPLACE_STRERROR=0;
-  REPLACE_STRERROR_R=0;
-  REPLACE_STRNCAT=0;
-  REPLACE_STRNDUP=0;
-  REPLACE_STRNLEN=0;
-  REPLACE_STRSIGNAL=0;
-  REPLACE_STRTOK_R=0;
-  UNDEFINE_STRTOK_R=0;
 
 
 
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
+  fi
 
+    if test $HAVE_FCHDIR = 0; then
+      REPLACE_DUP=1
+    fi
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup works" >&5
+$as_echo_n "checking whether dup works... " >&6; }
+if test "${gl_cv_func_dup_works+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  gl_have_mmap=no
-fi
-
-
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  if test "$cross_compiling" = yes; then :
+  gl_cv_func_dup_works='guessing yes'
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <unistd.h>
+                         #include <fcntl.h>
+                         #include <errno.h>
+int
+main ()
+{
+/* On OS/2 kLIBC, dup does not work on a directory fd.  */
+           int fd = open (".", O_RDONLY);
+           return fd < 0 ? 1 : dup (fd) < 0 ? 2 : 0;
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cannot identify this map
-#endif
+  ;
+  return 0;
+}
 
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_dup_works=yes
+else
+  gl_cv_func_dup_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f conftest*
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cannot identify this map
-#endif
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup_works" >&5
+$as_echo "$gl_cv_func_dup_works" >&6; }
+  case "$gl_cv_func_dup_works" in
+    *yes) ;;
+    *)
+      REPLACE_DUP=1
+      ;;
+  esac
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  if test $REPLACE_DUP = 1; then
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
-         gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
-    fi
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS dup.$ac_objext"
+
+    :
   fi
 
 
 
 
 
+          GNULIB_DUP=1
 
-  if test $HAVE_MEMCHR = 1; then
-    # Detect platform-specific bugs in some versions of glibc:
-    # memchr should not dereference anything with length 0
-    #   http://bugzilla.redhat.com/499689
-    # memchr should not dereference overestimated length after a match
-    #   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737
-    #   http://sourceware.org/bugzilla/show_bug.cgi?id=10162
-    # Assume that memchr works on platforms that lack mprotect.
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5
-$as_echo_n "checking whether memchr works... " >&6; }
-if test "${gl_cv_func_memchr_works+set}" = set; then :
+
+
+
+
+$as_echo "#define GNULIB_TEST_DUP 1" >>confdefs.h
+
+
+
+
+
+
+
+
+$as_echo "#define HAVE_DUP2 1" >>confdefs.h
+
+
+  if test $HAVE_DUP2 = 1; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5
+$as_echo_n "checking whether dup2 works... " >&6; }
+if test "${gl_cv_func_dup2_works+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then :
-         gl_cv_func_memchr_works="guessing no"
+  case "$host_os" in
+           mingw*) # on this platform, dup2 always returns 0 for success
+             gl_cv_func_dup2_works="guessing no" ;;
+           cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0
+             gl_cv_func_dup2_works="guessing no" ;;
+           aix* | freebsd*)
+                   # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE,
+                   # not EBADF.
+             gl_cv_func_dup2_works="guessing no" ;;
+           haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC.
+             gl_cv_func_dup2_works="guessing no" ;;
+           *-android*) # implemented using dup3(), which fails if oldfd == newfd
+             gl_cv_func_dup2_works="guessing no" ;;
+           os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd.
+             gl_cv_func_dup2_works="guessing no" ;;
+           *) gl_cv_func_dup2_works="guessing yes" ;;
+         esac
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <string.h>
-#if HAVE_SYS_MMAN_H
-# include <fcntl.h>
-# include <unistd.h>
-# include <sys/types.h>
-# include <sys/mman.h>
-# ifndef MAP_FILE
-#  define MAP_FILE 0
-# endif
-#endif
+         #include <errno.h>
+             #include <fcntl.h>
+             #include <limits.h>
+             #include <sys/resource.h>
+             #include <unistd.h>
+             #ifndef RLIM_SAVED_CUR
+             # define RLIM_SAVED_CUR RLIM_INFINITY
+             #endif
+             #ifndef RLIM_SAVED_MAX
+             # define RLIM_SAVED_MAX RLIM_INFINITY
+             #endif
 
 int
 main ()
 {
-
-  int result = 0;
-  char *fence = NULL;
-#if HAVE_SYS_MMAN_H && HAVE_MPROTECT
-# if HAVE_MAP_ANONYMOUS
-  const int flags = MAP_ANONYMOUS | MAP_PRIVATE;
-  const int fd = -1;
-# else /* !HAVE_MAP_ANONYMOUS */
-  const int flags = MAP_FILE | MAP_PRIVATE;
-  int fd = open ("/dev/zero", O_RDONLY, 0666);
-  if (fd >= 0)
-# endif
-    {
-      int pagesize = getpagesize ();
-      char *two_pages =
-        (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
-                       flags, fd, 0);
-      if (two_pages != (char *)(-1)
-          && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0)
-        fence = two_pages + pagesize;
-    }
-#endif
-  if (fence)
-    {
-      if (memchr (fence, 0, 0))
-        result |= 1;
-      strcpy (fence - 9, "12345678");
-      if (memchr (fence - 9, 0, 79) != fence - 1)
-        result |= 2;
-      if (memchr (fence - 1, 0, 3) != fence - 1)
-        result |= 4;
-    }
-  return result;
-
+int result = 0;
+             int bad_fd = INT_MAX;
+             struct rlimit rlim;
+             if (getrlimit (RLIMIT_NOFILE, &rlim) == 0
+                 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX
+                 && rlim.rlim_cur != RLIM_INFINITY
+                 && rlim.rlim_cur != RLIM_SAVED_MAX
+                 && rlim.rlim_cur != RLIM_SAVED_CUR)
+               bad_fd = rlim.rlim_cur;
+             #ifdef FD_CLOEXEC
+               if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
+                 result |= 1;
+             #endif
+             if (dup2 (1, 1) != 1)
+               result |= 2;
+             #ifdef FD_CLOEXEC
+               if (fcntl (1, F_GETFD) != FD_CLOEXEC)
+                 result |= 4;
+             #endif
+             close (0);
+             if (dup2 (0, 0) != -1)
+               result |= 8;
+             /* Many gnulib modules require POSIX conformance of EBADF.  */
+             if (dup2 (2, bad_fd) == -1 && errno != EBADF)
+               result |= 16;
+             /* Flush out some cygwin core dumps.  */
+             if (dup2 (2, -1) != -1 || errno != EBADF)
+               result |= 32;
+             dup2 (2, 255);
+             dup2 (2, 256);
+             /* On OS/2 kLIBC, dup2() does not work on a directory fd.  */
+             {
+               int fd = open (".", O_RDONLY);
+               if (fd == -1)
+                 result |= 64;
+               else if (dup2 (fd, fd + 1) == -1)
+                 result |= 128;
+
+               close (fd);
+             }
+             return result;
   ;
   return 0;
 }
+
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_memchr_works=yes
+  gl_cv_func_dup2_works=yes
 else
-  gl_cv_func_memchr_works=no
+  gl_cv_func_dup2_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memchr_works" >&5
-$as_echo "$gl_cv_func_memchr_works" >&6; }
-    if test "$gl_cv_func_memchr_works" != yes; then
-      REPLACE_MEMCHR=1
-    fi
-  fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5
+$as_echo "$gl_cv_func_dup2_works" >&6; }
+    case "$gl_cv_func_dup2_works" in
+      *yes) ;;
+      *)
+        REPLACE_DUP2=1
+        for ac_func in setdtablesize
+do :
+  ac_fn_c_check_func "$LINENO" "setdtablesize" "ac_cv_func_setdtablesize"
+if test "x$ac_cv_func_setdtablesize" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SETDTABLESIZE 1
+_ACEOF
 
-ac_fn_c_check_decl "$LINENO" "memmem" "ac_cv_have_decl_memmem" "$ac_includes_default"
-if test "x$ac_cv_have_decl_memmem" = x""yes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
 fi
+done
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MEMMEM $ac_have_decl
-_ACEOF
+        ;;
+    esac
+  fi
 
 
 
 
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
+  fi
 
-  for ac_func in memmem
-do :
-  ac_fn_c_check_func "$LINENO" "memmem" "ac_cv_func_memmem"
-if test "x$ac_cv_func_memmem" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_MEMMEM 1
-_ACEOF
+    if test $HAVE_FCHDIR = 0; then
+      if test $HAVE_DUP2 = 1; then
+        REPLACE_DUP2=1
+      fi
+    fi
+
+
+  if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext"
 
-fi
-done
 
-  if test $ac_cv_func_memmem = yes; then
-    HAVE_MEMMEM=1
-  else
-    HAVE_MEMMEM=0
   fi
 
-  if test $ac_cv_have_decl_memmem = no; then
-    HAVE_DECL_MEMMEM=0
-  else
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memmem works" >&5
-$as_echo_n "checking whether memmem works... " >&6; }
-if test "${gl_cv_func_memmem_works_always+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-                                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#ifdef __GNU_LIBRARY__
- #include <features.h>
- #if ((__GLIBC__ == 2 && ((__GLIBC_MINOR > 0 && __GLIBC_MINOR__ < 9) \
-                          || __GLIBC_MINOR__ > 12)) \
-      || (__GLIBC__ > 2)) \
-     || defined __UCLIBC__
-  Lucky user
- #endif
-#elif defined __CYGWIN__
- #include <cygwin/version.h>
- #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7)
-  Lucky user
- #endif
-#else
-  Lucky user
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky user" >/dev/null 2>&1; then :
-  gl_cv_func_memmem_works_always="guessing yes"
-else
-  gl_cv_func_memmem_works_always="guessing no"
-fi
-rm -f conftest*
 
 
+          GNULIB_DUP2=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_DUP2 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+          GNULIB_ENVIRON=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h
+
+
+
+
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
+$as_echo_n "checking for error_at_line... " >&6; }
+if test "${ac_cv_lib_error_at_line+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#include <string.h> /* for memmem */
-#define P "_EF_BF_BD"
-#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P
-#define NEEDLE P P P P P
-
+#include <error.h>
 int
 main ()
 {
-
-    int result = 0;
-    if (memmem (HAYSTACK, strlen (HAYSTACK), NEEDLE, strlen (NEEDLE)))
-      result |= 1;
-    /* Check for empty needle behavior.  */
-    {
-      const char *haystack = "AAA";
-      if (memmem (haystack, 3, NULL, 0) != haystack)
-        result |= 2;
-    }
-    return result;
-
+error_at_line (0, 0, "", 0, "an error occurred");
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_memmem_works_always=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_error_at_line=yes
 else
-  gl_cv_func_memmem_works_always=no
+  ac_cv_lib_error_at_line=no
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5
+$as_echo "$ac_cv_lib_error_at_line" >&6; }
 
+  if test $ac_cv_lib_error_at_line = no; then
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_always" >&5
-$as_echo "$gl_cv_func_memmem_works_always" >&6; }
-    case "$gl_cv_func_memmem_works_always" in
-      *yes) ;;
-      *)
-        REPLACE_MEMMEM=1
-        ;;
-    esac
-  fi
-  :
 
 
-  GNULIB_DPRINTF=0;
-  GNULIB_FCLOSE=0;
-  GNULIB_FDOPEN=0;
-  GNULIB_FFLUSH=0;
-  GNULIB_FGETC=0;
-  GNULIB_FGETS=0;
-  GNULIB_FOPEN=0;
-  GNULIB_FPRINTF=0;
-  GNULIB_FPRINTF_POSIX=0;
-  GNULIB_FPURGE=0;
-  GNULIB_FPUTC=0;
-  GNULIB_FPUTS=0;
-  GNULIB_FREAD=0;
-  GNULIB_FREOPEN=0;
-  GNULIB_FSCANF=0;
-  GNULIB_FSEEK=0;
-  GNULIB_FSEEKO=0;
-  GNULIB_FTELL=0;
-  GNULIB_FTELLO=0;
-  GNULIB_FWRITE=0;
-  GNULIB_GETC=0;
-  GNULIB_GETCHAR=0;
-  GNULIB_GETDELIM=0;
-  GNULIB_GETLINE=0;
-  GNULIB_OBSTACK_PRINTF=0;
-  GNULIB_OBSTACK_PRINTF_POSIX=0;
-  GNULIB_PCLOSE=0;
-  GNULIB_PERROR=0;
-  GNULIB_POPEN=0;
-  GNULIB_PRINTF=0;
-  GNULIB_PRINTF_POSIX=0;
-  GNULIB_PUTC=0;
-  GNULIB_PUTCHAR=0;
-  GNULIB_PUTS=0;
-  GNULIB_REMOVE=0;
-  GNULIB_RENAME=0;
-  GNULIB_RENAMEAT=0;
-  GNULIB_SCANF=0;
-  GNULIB_SNPRINTF=0;
-  GNULIB_SPRINTF_POSIX=0;
-  GNULIB_STDIO_H_NONBLOCKING=0;
-  GNULIB_STDIO_H_SIGPIPE=0;
-  GNULIB_TMPFILE=0;
-  GNULIB_VASPRINTF=0;
-  GNULIB_VFSCANF=0;
-  GNULIB_VSCANF=0;
-  GNULIB_VDPRINTF=0;
-  GNULIB_VFPRINTF=0;
-  GNULIB_VFPRINTF_POSIX=0;
-  GNULIB_VPRINTF=0;
-  GNULIB_VPRINTF_POSIX=0;
-  GNULIB_VSNPRINTF=0;
-  GNULIB_VSPRINTF_POSIX=0;
-    HAVE_DECL_FPURGE=1;
-  HAVE_DECL_FSEEKO=1;
-  HAVE_DECL_FTELLO=1;
-  HAVE_DECL_GETDELIM=1;
-  HAVE_DECL_GETLINE=1;
-  HAVE_DECL_OBSTACK_PRINTF=1;
-  HAVE_DECL_SNPRINTF=1;
-  HAVE_DECL_VSNPRINTF=1;
-  HAVE_DPRINTF=1;
-  HAVE_FSEEKO=1;
-  HAVE_FTELLO=1;
-  HAVE_PCLOSE=1;
-  HAVE_POPEN=1;
-  HAVE_RENAMEAT=1;
-  HAVE_VASPRINTF=1;
-  HAVE_VDPRINTF=1;
-  REPLACE_DPRINTF=0;
-  REPLACE_FCLOSE=0;
-  REPLACE_FDOPEN=0;
-  REPLACE_FFLUSH=0;
-  REPLACE_FOPEN=0;
-  REPLACE_FPRINTF=0;
-  REPLACE_FPURGE=0;
-  REPLACE_FREOPEN=0;
-  REPLACE_FSEEK=0;
-  REPLACE_FSEEKO=0;
-  REPLACE_FTELL=0;
-  REPLACE_FTELLO=0;
-  REPLACE_GETDELIM=0;
-  REPLACE_GETLINE=0;
-  REPLACE_OBSTACK_PRINTF=0;
-  REPLACE_PERROR=0;
-  REPLACE_POPEN=0;
-  REPLACE_PRINTF=0;
-  REPLACE_REMOVE=0;
-  REPLACE_RENAME=0;
-  REPLACE_RENAMEAT=0;
-  REPLACE_SNPRINTF=0;
-  REPLACE_SPRINTF=0;
-  REPLACE_STDIO_READ_FUNCS=0;
-  REPLACE_STDIO_WRITE_FUNCS=0;
-  REPLACE_TMPFILE=0;
-  REPLACE_VASPRINTF=0;
-  REPLACE_VDPRINTF=0;
-  REPLACE_VFPRINTF=0;
-  REPLACE_VPRINTF=0;
-  REPLACE_VSNPRINTF=0;
-  REPLACE_VSPRINTF=0;
 
 
 
 
-  GNULIB_PTHREAD_SIGMASK=0;
-  GNULIB_RAISE=0;
-  GNULIB_SIGNAL_H_SIGPIPE=0;
-  GNULIB_SIGPROCMASK=0;
-  GNULIB_SIGACTION=0;
-    HAVE_POSIX_SIGNALBLOCKING=1;
-  HAVE_PTHREAD_SIGMASK=1;
-  HAVE_RAISE=1;
-  HAVE_SIGSET_T=1;
-  HAVE_SIGINFO_T=1;
-  HAVE_SIGACTION=1;
-  HAVE_STRUCT_SIGACTION_SA_SIGACTION=1;
 
-  HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1;
+  gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext"
+
+
+
+  :
+
+  fi
+
+
+
 
-  HAVE_SIGHANDLER_T=1;
-  REPLACE_PTHREAD_SIGMASK=0;
-  REPLACE_RAISE=0;
 
 
-  ac_fn_c_check_type "$LINENO" "sigset_t" "ac_cv_type_sigset_t" "
-      #include <signal.h>
-      /* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>.  */
-      #include <sys/types.h>
 
-"
-if test "x$ac_cv_type_sigset_t" = x""yes; then :
+  if test $ac_cv_have_decl_fchdir = no; then
+    HAVE_DECL_FCHDIR=0
+  fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SIGSET_T 1
-_ACEOF
 
-gl_cv_type_sigset_t=yes
-else
-  gl_cv_type_sigset_t=no
-fi
+  if test $HAVE_FCHDIR = 0; then
 
-  if test $gl_cv_type_sigset_t != yes; then
-    HAVE_SIGSET_T=0
-  fi
 
-ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
-if test "x$ac_cv_type_pid_t" = x""yes; then :
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS fchdir.$ac_objext"
+
+    :
+
+$as_echo "#define REPLACE_FCHDIR 1" >>confdefs.h
+
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open can visit directories" >&5
+$as_echo_n "checking whether open can visit directories... " >&6; }
+if test "${gl_cv_func_open_directory_works+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_open_directory_works="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_open_directory_works="guessing no" ;;
+         esac
 
 else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <fcntl.h>
 
-cat >>confdefs.h <<_ACEOF
-#define pid_t int
+int
+main ()
+{
+return open(".", O_RDONLY) < 0;
+  ;
+  return 0;
+}
 _ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_open_directory_works=yes
+else
+  gl_cv_func_open_directory_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_directory_works" >&5
+$as_echo "$gl_cv_func_open_directory_works" >&6; }
+    case "$gl_cv_func_open_directory_works" in
+      *yes) ;;
+      *)
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
-$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
-if test "${ac_cv_type_uid_t+set}" = set; then :
+$as_echo "#define REPLACE_OPEN_DIRECTORY 1" >>confdefs.h
+
+        ;;
+    esac
+  fi
+
+
+
+
+
+
+          GNULIB_FCHDIR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_FCHDIR 1" >>confdefs.h
+
+
+
+
+
+
+
+
+  if test $ac_cv_func_fcntl = no; then
+
+
+
+  if test $ac_cv_func_fcntl = no; then
+    HAVE_FCNTL=0
+  else
+    REPLACE_FCNTL=1
+  fi
+
+  else
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5
+$as_echo_n "checking whether fcntl handles F_DUPFD correctly... " >&6; }
+if test "${gl_cv_func_fcntl_f_dupfd_works+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
+  if test "$cross_compiling" = yes; then :
+  case $host_os in
+            aix* | cygwin* | haiku*)
+               gl_cv_func_fcntl_f_dupfd_works="guessing no" ;;
+            *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;;
+          esac
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
+#include <errno.h>
+              #include <fcntl.h>
+              #include <limits.h>
+              #include <sys/resource.h>
+              #include <unistd.h>
+              #ifndef RLIM_SAVED_CUR
+              # define RLIM_SAVED_CUR RLIM_INFINITY
+              #endif
+              #ifndef RLIM_SAVED_MAX
+              # define RLIM_SAVED_MAX RLIM_INFINITY
+              #endif
+
+int
+main ()
+{
+int result = 0;
+              int bad_fd = INT_MAX;
+              struct rlimit rlim;
+              if (getrlimit (RLIMIT_NOFILE, &rlim) == 0
+                  && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX
+                  && rlim.rlim_cur != RLIM_INFINITY
+                  && rlim.rlim_cur != RLIM_SAVED_MAX
+                  && rlim.rlim_cur != RLIM_SAVED_CUR)
+                bad_fd = rlim.rlim_cur;
+              if (fcntl (0, F_DUPFD, -1) != -1) result |= 1;
+              if (errno != EINVAL) result |= 2;
+              if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4;
+              if (errno != EINVAL) result |= 8;
+              /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */
+              {
+                int fd;
+                fd = open (".", O_RDONLY);
+                if (fd == -1)
+                  result |= 16;
+                else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1)
+                  result |= 32;
 
+                close (fd);
+              }
+              return result;
+  ;
+  return 0;
+}
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "uid_t" >/dev/null 2>&1; then :
-  ac_cv_type_uid_t=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_fcntl_f_dupfd_works=yes
 else
-  ac_cv_type_uid_t=no
+  gl_cv_func_fcntl_f_dupfd_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f conftest*
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
-$as_echo "$ac_cv_type_uid_t" >&6; }
-if test $ac_cv_type_uid_t = no; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_works" >&5
+$as_echo "$gl_cv_func_fcntl_f_dupfd_works" >&6; }
+    case $gl_cv_func_fcntl_f_dupfd_works in
+      *yes) ;;
+      *)
 
-$as_echo "#define uid_t int" >>confdefs.h
 
+  if test $ac_cv_func_fcntl = no; then
+    HAVE_FCNTL=0
+  else
+    REPLACE_FCNTL=1
+  fi
 
-$as_echo "#define gid_t int" >>confdefs.h
 
-fi
+$as_echo "#define FCNTL_DUPFD_BUGGY 1" >>confdefs.h
+ ;;
+    esac
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
-$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
-if test "${ac_cv_header_stdbool_h+set}" = set; then :
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5
+$as_echo_n "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; }
+if test "${gl_cv_func_fcntl_f_dupfd_cloexec+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-             #include <stdbool.h>
-
-             #ifdef __cplusplus
-              typedef bool Bool;
-             #else
-              typedef _Bool Bool;
-              #ifndef bool
-               "error: bool is not defined"
-              #endif
-              #ifndef false
-               "error: false is not defined"
-              #endif
-              #if false
-               "error: false is not 0"
-              #endif
-              #ifndef true
-               "error: true is not defined"
-              #endif
-              #if true != 1
-               "error: true is not 1"
-              #endif
-             #endif
+#include <fcntl.h>
+#ifndef F_DUPFD_CLOEXEC
+choke me
+#endif
 
-             #ifndef __bool_true_false_are_defined
-              "error: __bool_true_false_are_defined is not defined"
-             #endif
+int
+main ()
+{
 
-             struct s { Bool s: 1; Bool t; bool u: 1; bool v; } s;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-             char a[true == 1 ? 1 : -1];
-             char b[false == 0 ? 1 : -1];
-             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
-             char d[(bool) 0.5 == true ? 1 : -1];
-             /* See body of main program for 'e'.  */
-             char f[(Bool) 0.0 == false ? 1 : -1];
-             char g[true];
-             char h[sizeof (Bool)];
-             char i[sizeof s.t];
-             enum { j = false, k = true, l = false * true, m = true * 256 };
-             /* The following fails for
-                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
-             Bool n[m];
-             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
-             char p[-1 - (Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
-             /* Catch a bug in an HP-UX C compiler.  See
-                http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-                http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
-              */
-             Bool q = true;
-             Bool *pq = &q;
-             bool *qq = &q;
+#ifdef __linux__
+/* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace
+   it to support the semantics on older kernels that failed with EINVAL.  */
+choke me
+#endif
 
 int
 main ()
 {
 
-             bool e = &s;
-             *pq |= q; *pq |= ! q;
-             *qq |= q; *qq |= ! q;
-             /* Refer to every declared value, to avoid compiler optimizations.  */
-             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
-                     + !m + !n + !o + !p + !q + !pq + !qq);
-
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdbool_h=yes
+  gl_cv_func_fcntl_f_dupfd_cloexec=yes
 else
-  ac_cv_header_stdbool_h=no
+  gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  gl_cv_func_fcntl_f_dupfd_cloexec=no
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
-$as_echo "$ac_cv_header_stdbool_h" >&6; }
-   ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
-if test "x$ac_cv_type__Bool" = x""yes; then :
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fcntl_f_dupfd_cloexec" >&5
+$as_echo "$gl_cv_func_fcntl_f_dupfd_cloexec" >&6; }
+    if test "$gl_cv_func_fcntl_f_dupfd_cloexec" != yes; then
+
+
+
+  if test $ac_cv_func_fcntl = no; then
+    HAVE_FCNTL=0
+  else
+    REPLACE_FCNTL=1
+  fi
+
+          fi
+  fi
+
+
+
+
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
+  fi
+
+    if test $HAVE_FCHDIR = 0; then
+
+
+
+  if test $ac_cv_func_fcntl = no; then
+    HAVE_FCNTL=0
+  else
+    REPLACE_FCNTL=1
+  fi
+
+    fi
+
+
+  if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext"
+
+  fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE__BOOL 1
-_ACEOF
 
 
-fi
 
 
+          GNULIB_FCNTL=1
 
-    REPLACE_NULL=0;
-  HAVE_MAX_ALIGN_T=1;
-  HAVE_WCHAR_T=1;
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
-$as_echo_n "checking for wchar_t... " >&6; }
-if test "${gt_cv_c_wchar_t+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stddef.h>
-            wchar_t foo = (wchar_t)'\0';
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_c_wchar_t=yes
-else
-  gt_cv_c_wchar_t=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5
-$as_echo "$gt_cv_c_wchar_t" >&6; }
-  if test $gt_cv_c_wchar_t = yes; then
 
-$as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h
+$as_echo "#define GNULIB_TEST_FCNTL 1" >>confdefs.h
+
 
-  fi
 
 
 
@@ -11639,11 +14641,11 @@ fi
 
 
      if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_string_h='<'string.h'>'
+       gl_cv_next_fcntl_h='<'fcntl.h'>'
      else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <string.h>" >&5
-$as_echo_n "checking absolute name of <string.h>... " >&6; }
-if test "${gl_cv_next_string_h+set}" = set; then :
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <fcntl.h>" >&5
+$as_echo_n "checking absolute name of <fcntl.h>... " >&6; }
+if test "${gl_cv_next_fcntl_h+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -11651,7 +14653,7 @@ else
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <string.h>
+#include <fcntl.h>
 _ACEOF
                 case "$host_os" in
     aix*) gl_absname_cpp="$ac_cpp -C" ;;
@@ -11667,7 +14669,7 @@ _ACEOF
       ;;
   esac
       gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'string.h' \
+  gl_header_literal_regex=`echo 'fcntl.h' \
                            | sed -e "$gl_make_literal_regex_sed"`
   gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
       s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
@@ -11676,34 +14678,38 @@ _ACEOF
       q
     }'
 
-        gl_cv_absolute_string_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+        gl_cv_absolute_fcntl_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_string_h
-           gl_cv_next_string_h='"'$gl_header'"'
+           gl_header=$gl_cv_absolute_fcntl_h
+           gl_cv_next_fcntl_h='"'$gl_header'"'
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5
-$as_echo "$gl_cv_next_string_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fcntl_h" >&5
+$as_echo "$gl_cv_next_fcntl_h" >&6; }
      fi
-     NEXT_STRING_H=$gl_cv_next_string_h
+     NEXT_FCNTL_H=$gl_cv_next_fcntl_h
 
      if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'string.h'>'
+       gl_next_as_first_directive='<'fcntl.h'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_string_h
+       gl_next_as_first_directive=$gl_cv_next_fcntl_h
      fi
-     NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive
+     NEXT_AS_FIRST_DIRECTIVE_FCNTL_H=$gl_next_as_first_directive
 
 
 
 
 
 
-    for gl_func in ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul      strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r      strerror_r strsignal strverscmp; do
+
+
+
+
+    for gl_func in fcntl openat; do
     as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
@@ -11712,7 +14718,7 @@ if { as_var=$as_gl_Symbol; eval "test \"
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <string.h>
+#include <fcntl.h>
 
 int
 main ()
@@ -11747,432 +14753,286 @@ fi
 
 
 
-  if test "$gl_cv_func_memchr_works" != yes; then
-    REPLACE_STRSTR=1
-  else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strstr works" >&5
-$as_echo_n "checking whether strstr works... " >&6; }
-if test "${gl_cv_func_strstr_works_always+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-                                               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#ifdef __GNU_LIBRARY__
- #include <features.h>
- #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \
-     || defined __UCLIBC__
-  Lucky user
- #endif
-#elif defined __CYGWIN__
- #include <cygwin/version.h>
- #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7)
-  Lucky user
- #endif
-#else
-  Lucky user
-#endif
 
+    ac_fn_c_check_decl "$LINENO" "fdopendir" "ac_cv_have_decl_fdopendir" "
+#include <dirent.h>
+
+"
+if test "x$ac_cv_have_decl_fdopendir" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FDOPENDIR $ac_have_decl
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky user" >/dev/null 2>&1; then :
-  gl_cv_func_strstr_works_always="guessing yes"
+if test $ac_have_decl = 1; then :
+
 else
-  gl_cv_func_strstr_works_always="guessing no"
+  HAVE_DECL_FDOPENDIR=0
 fi
-rm -f conftest*
 
 
+  if test $ac_cv_func_fdopendir = no; then
+    HAVE_FDOPENDIR=0
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fdopendir works" >&5
+$as_echo_n "checking whether fdopendir works... " >&6; }
+if test "${gl_cv_func_fdopendir_works+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_fdopendir_works="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_fdopendir_works="guessing no" ;;
+          esac
+
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <string.h> /* for strstr */
-#define P "_EF_BF_BD"
-#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P
-#define NEEDLE P P P P P
+#include <dirent.h>
+#include <fcntl.h>
+#include <unistd.h>
+#if !HAVE_DECL_FDOPENDIR
+extern
+# ifdef __cplusplus
+"C"
+# endif
+DIR *fdopendir (int);
+#endif
 
 int
 main ()
 {
-return !!strstr (HAYSTACK, NEEDLE);
-
+int result = 0;
+     int fd = open ("conftest.c", O_RDONLY);
+     if (fd < 0) result |= 1;
+     if (fdopendir (fd)) result |= 2;
+     if (close (fd)) result |= 4;
+     return result;
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_strstr_works_always=yes
-else
-  gl_cv_func_strstr_works_always=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strstr_works_always" >&5
-$as_echo "$gl_cv_func_strstr_works_always" >&6; }
-    case "$gl_cv_func_strstr_works_always" in
-      *yes) ;;
-      *)
-        REPLACE_STRSTR=1
-        ;;
-    esac
-  fi
-
-ac_fn_c_check_decl "$LINENO" "strtok_r" "ac_cv_have_decl_strtok_r" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strtok_r" = x""yes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRTOK_R $ac_have_decl
-_ACEOF
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5
-$as_echo_n "checking whether stat file-mode macros are broken... " >&6; }
-if test "${ac_cv_header_stat_broken+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#if defined S_ISBLK && defined S_IFDIR
-extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1];
-#endif
-
-#if defined S_ISBLK && defined S_IFCHR
-extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1];
-#endif
-
-#if defined S_ISLNK && defined S_IFREG
-extern char c3[S_ISLNK (S_IFREG) ? -1 : 1];
-#endif
-
-#if defined S_ISSOCK && defined S_IFREG
-extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1];
-#endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stat_broken=no
-else
-  ac_cv_header_stat_broken=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5
-$as_echo "$ac_cv_header_stat_broken" >&6; }
-if test $ac_cv_header_stat_broken = yes; then
-
-$as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h
-
-fi
-
-
-
-ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default"
-if test "x$ac_cv_type_mode_t" = x""yes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define mode_t int
-_ACEOF
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+  gl_cv_func_fdopendir_works=yes
 else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in mkdir gmkdir; do
-	 for ac_exec_ext in '' $ac_executable_extensions; do
-	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
-	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
-	     'mkdir (GNU coreutils) '* | \
-	     'mkdir (coreutils) '* | \
-	     'mkdir (fileutils) '4.1*)
-	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
-	       break 3;;
-	   esac
-	 done
-       done
-  done
-IFS=$as_save_IFS
-
-fi
-
-  if test "${ac_cv_path_mkdir+set}" = set; then
-    MKDIR_P="$ac_cv_path_mkdir -p"
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    test -d ./--version && rmdir ./--version
-    MKDIR_P="$ac_install_sh -d"
-  fi
+  gl_cv_func_fdopendir_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-
-
-
-
-
-
-
-
-
-
-
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fdopendir_works" >&5
+$as_echo "$gl_cv_func_fdopendir_works" >&6; }
+    case "$gl_cv_func_fdopendir_works" in
+      *yes) ;;
+      *)
+        REPLACE_FDOPENDIR=1
+        ;;
+    esac
+  fi
 
+  if test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1; then
 
 
 
 
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_sys_types_h='<'sys/types.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/types.h>" >&5
-$as_echo_n "checking absolute name of <sys/types.h>... " >&6; }
-if test "${gl_cv_next_sys_types_h+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
 
 
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
+  gl_LIBOBJS="$gl_LIBOBJS fdopendir.$ac_objext"
 
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'sys/types.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
+  fi
 
-        gl_cv_absolute_sys_types_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_sys_types_h
-           gl_cv_next_sys_types_h='"'$gl_header'"'
 
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5
-$as_echo "$gl_cv_next_sys_types_h" >&6; }
-     fi
-     NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h
 
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'sys/types.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_sys_types_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive
+          GNULIB_FDOPENDIR=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_FDOPENDIR 1" >>confdefs.h
 
 
 
 
 
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_FDOPENDIR 1
+_ACEOF
 
 
-  GNULIB_MKTIME=0;
-  GNULIB_NANOSLEEP=0;
-  GNULIB_STRPTIME=0;
-  GNULIB_TIMEGM=0;
-  GNULIB_TIME_R=0;
-  GNULIB_TIME_RZ=0;
-    HAVE_DECL_LOCALTIME_R=1;
-  HAVE_NANOSLEEP=1;
-  HAVE_STRPTIME=1;
-  HAVE_TIMEGM=1;
-        REPLACE_LOCALTIME_R=GNULIB_PORTCHECK;
-  REPLACE_MKTIME=GNULIB_PORTCHECK;
-  REPLACE_NANOSLEEP=GNULIB_PORTCHECK;
-  REPLACE_TIMEGM=GNULIB_PORTCHECK;
 
-      : ${GNULIB_GETTIMEOFDAY=0};
-        REPLACE_GMTIME=0;
-  REPLACE_LOCALTIME=0;
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <time.h>" >&5
-$as_echo_n "checking for struct timespec in <time.h>... " >&6; }
-if test "${gl_cv_sys_struct_timespec_in_time_h+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flexible array member" >&5
+$as_echo_n "checking for flexible array member... " >&6; }
+if test "${ac_cv_c_flexmember+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <time.h>
-
+#include <stdlib.h>
+            #include <stdio.h>
+            #include <stddef.h>
+            struct s { int n; double d[]; };
 int
 main ()
 {
-static struct timespec x; x.tv_sec = x.tv_nsec;
+int m = getchar ();
+            size_t nbytes = offsetof (struct s, d) + m * sizeof (double);
+            nbytes += sizeof (struct s) - 1;
+            nbytes -= nbytes % sizeof (struct s);
+            struct s *p = malloc (nbytes);
+            p->d[0] = 0.0;
+            return p->d != (double *) NULL;
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_sys_struct_timespec_in_time_h=yes
+  ac_cv_c_flexmember=yes
 else
-  gl_cv_sys_struct_timespec_in_time_h=no
+  ac_cv_c_flexmember=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_time_h" >&5
-$as_echo "$gl_cv_sys_struct_timespec_in_time_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_flexmember" >&5
+$as_echo "$ac_cv_c_flexmember" >&6; }
+  if test $ac_cv_c_flexmember = yes; then
+
+$as_echo "#define FLEXIBLE_ARRAY_MEMBER /**/" >>confdefs.h
 
-  TIME_H_DEFINES_STRUCT_TIMESPEC=0
-  SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0
-  PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0
-  UNISTD_H_DEFINES_STRUCT_TIMESPEC=0
-  if test $gl_cv_sys_struct_timespec_in_time_h = yes; then
-    TIME_H_DEFINES_STRUCT_TIMESPEC=1
   else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <sys/time.h>" >&5
-$as_echo_n "checking for struct timespec in <sys/time.h>... " >&6; }
-if test "${gl_cv_sys_struct_timespec_in_sys_time_h+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/time.h>
+    $as_echo "#define FLEXIBLE_ARRAY_MEMBER 1" >>confdefs.h
 
-int
-main ()
-{
-static struct timespec x; x.tv_sec = x.tv_nsec;
-  ;
-  return 0;
-}
+  fi
+
+
+
+
+  FLOAT_H=
+  REPLACE_FLOAT_LDBL=0
+  case "$host_os" in
+    aix* | beos* | openbsd* | mirbsd* | irix*)
+      FLOAT_H=float.h
+      ;;
+    freebsd*)
+      case "$host_cpu" in
+        i[34567]86 )
+          FLOAT_H=float.h
+          ;;
+        x86_64 )
+          # On x86_64 systems, the C compiler may still be generating
+          # 32-bit code.
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __LP64__ || defined __x86_64__ || defined __amd64__
+             yes
+             #endif
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_sys_struct_timespec_in_sys_time_h=yes
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then :
+
 else
-  gl_cv_sys_struct_timespec_in_sys_time_h=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  FLOAT_H=float.h
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5
-$as_echo "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; }
-    if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then
-      SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <pthread.h>" >&5
-$as_echo_n "checking for struct timespec in <pthread.h>... " >&6; }
-if test "${gl_cv_sys_struct_timespec_in_pthread_h+set}" = set; then :
+rm -f conftest*
+
+          ;;
+      esac
+      ;;
+    linux*)
+      case "$host_cpu" in
+        powerpc*)
+          FLOAT_H=float.h
+          ;;
+      esac
+      ;;
+  esac
+  case "$host_os" in
+    aix* | freebsd* | linux*)
+      if test -n "$FLOAT_H"; then
+        REPLACE_FLOAT_LDBL=1
+      fi
+      ;;
+  esac
+
+    REPLACE_ITOLD=0
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether conversion from 'int' to 'long double' works" >&5
+$as_echo_n "checking whether conversion from 'int' to 'long double' works... " >&6; }
+if test "${gl_cv_func_itold_works+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <pthread.h>
 
-int
-main ()
-{
-static struct timespec x; x.tv_sec = x.tv_nsec;
-  ;
-  return 0;
-}
+      if test "$cross_compiling" = yes; then :
+  case "$host" in
+           sparc*-*-linux*)
+             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __LP64__ || defined __arch64__
+                yes
+                #endif
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_sys_struct_timespec_in_pthread_h=yes
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then :
+  gl_cv_func_itold_works="guessing no"
 else
-  gl_cv_sys_struct_timespec_in_pthread_h=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  gl_cv_func_itold_works="guessing yes"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5
-$as_echo "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; }
-      if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then
-        PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1
-      else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <unistd.h>" >&5
-$as_echo_n "checking for struct timespec in <unistd.h>... " >&6; }
-if test "${gl_cv_sys_struct_timespec_in_unistd_h+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+rm -f conftest*
+
+             ;;
+           *) gl_cv_func_itold_works="guessing yes" ;;
+         esac
+
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <unistd.h>
 
-int
-main ()
+int i = -1;
+volatile long double ld;
+int main ()
 {
-static struct timespec x; x.tv_sec = x.tv_nsec;
-  ;
+  ld += i * 1.0L;
+  if (ld > 0)
+    return 1;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_sys_struct_timespec_in_unistd_h=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_itold_works=yes
 else
-  gl_cv_sys_struct_timespec_in_unistd_h=no
+  gl_cv_func_itold_works=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_unistd_h" >&5
-$as_echo "$gl_cv_sys_struct_timespec_in_unistd_h" >&6; }
-        if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then
-          UNISTD_H_DEFINES_STRUCT_TIMESPEC=1
-        fi
-      fi
-    fi
-  fi
-
-
-
-
-
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_itold_works" >&5
+$as_echo "$gl_cv_func_itold_works" >&6; }
+  case "$gl_cv_func_itold_works" in
+    *no)
+      REPLACE_ITOLD=1
+                  FLOAT_H=float.h
+      ;;
+  esac
 
+  if test -n "$FLOAT_H"; then
 
 
 
@@ -12182,11 +15042,11 @@ fi
 
 
      if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_time_h='<'time.h'>'
+       gl_cv_next_float_h='<'float.h'>'
      else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <time.h>" >&5
-$as_echo_n "checking absolute name of <time.h>... " >&6; }
-if test "${gl_cv_next_time_h+set}" = set; then :
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <float.h>" >&5
+$as_echo_n "checking absolute name of <float.h>... " >&6; }
+if test "${gl_cv_next_float_h+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -12194,7 +15054,7 @@ else
 
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <time.h>
+#include <float.h>
 _ACEOF
                 case "$host_os" in
     aix*) gl_absname_cpp="$ac_cpp -C" ;;
@@ -12210,7 +15070,7 @@ _ACEOF
       ;;
   esac
       gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'time.h' \
+  gl_header_literal_regex=`echo 'float.h' \
                            | sed -e "$gl_make_literal_regex_sed"`
   gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
       s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
@@ -12219,380 +15079,462 @@ _ACEOF
       q
     }'
 
-        gl_cv_absolute_time_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+        gl_cv_absolute_float_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
   sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_time_h
-           gl_cv_next_time_h='"'$gl_header'"'
+           gl_header=$gl_cv_absolute_float_h
+           gl_cv_next_float_h='"'$gl_header'"'
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_time_h" >&5
-$as_echo "$gl_cv_next_time_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_float_h" >&5
+$as_echo "$gl_cv_next_float_h" >&6; }
      fi
-     NEXT_TIME_H=$gl_cv_next_time_h
+     NEXT_FLOAT_H=$gl_cv_next_float_h
 
      if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'time.h'>'
+       gl_next_as_first_directive='<'float.h'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_time_h
+       gl_next_as_first_directive=$gl_cv_next_float_h
      fi
-     NEXT_AS_FIRST_DIRECTIVE_TIME_H=$gl_next_as_first_directive
+     NEXT_AS_FIRST_DIRECTIVE_FLOAT_H=$gl_next_as_first_directive
 
 
 
 
+  fi
 
+   if test -n "$FLOAT_H"; then
+  GL_GENERATE_FLOAT_H_TRUE=
+  GL_GENERATE_FLOAT_H_FALSE='#'
+else
+  GL_GENERATE_FLOAT_H_TRUE='#'
+  GL_GENERATE_FLOAT_H_FALSE=
+fi
 
 
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <wchar.h> uses 'inline' correctly" >&5
-$as_echo_n "checking whether <wchar.h> uses 'inline' correctly... " >&6; }
-if test "${gl_cv_header_wchar_h_correct_inline+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  gl_cv_header_wchar_h_correct_inline=yes
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-       #define wcstod renamed_wcstod
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-extern int zero (void);
-int main () { return zero(); }
+  if test $REPLACE_FLOAT_LDBL = 1; then
 
-_ACEOF
-                              save_ac_compile="$ac_compile"
-     ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/`
-     if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-         #define wcstod renamed_wcstod
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int zero (void) { return 0; }
 
-_ACEOF
-              ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/`
-       if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-         if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then
-           :
-         else
-           gl_cv_header_wchar_h_correct_inline=no
-         fi
-       fi
-     fi
-     ac_compile="$save_ac_compile"
-     rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5
-$as_echo "$gl_cv_header_wchar_h_correct_inline" >&6; }
-  if test $gl_cv_header_wchar_h_correct_inline = no; then
-    as_fn_error "<wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS).
-This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in
-C99 mode. You have four options:
-  - Add the flag -fgnu89-inline to CC and reconfigure, or
-  - Fix your include files, using parts of
-    <http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or
-  - Use a gcc version older than 4.3, or
-  - Don't use the flags -std=c99 or -std=gnu99.
-Configuration aborted." "$LINENO" 5
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS float.$ac_objext"
+
   fi
+  if test $REPLACE_ITOLD = 1; then
 
 
 
 
 
-  if test $ac_cv_header_features_h = yes; then
-    HAVE_FEATURES_H=1
-  else
-    HAVE_FEATURES_H=0
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS itold.$ac_objext"
+
   fi
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
-$as_echo_n "checking for wint_t... " >&6; }
-if test "${gt_cv_c_wint_t+set}" = set; then :
+
+
+  FNMATCH_H=
+  gl_fnmatch_required_lowercase=`
+    echo $gl_fnmatch_required | LC_ALL=C tr '[A-Z]' '[a-z]'
+  `
+  gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working $gl_fnmatch_required fnmatch" >&5
+$as_echo_n "checking for working $gl_fnmatch_required fnmatch... " >&6; }
+if { as_var=$gl_fnmatch_cache_var; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
+                           if test $gl_fnmatch_required = GNU; then
+       gl_fnmatch_gnu_start=
+       gl_fnmatch_gnu_end=
+     else
+       gl_fnmatch_gnu_start='#if 0'
+       gl_fnmatch_gnu_end='#endif'
+     fi
+     if test "$cross_compiling" = yes; then :
+  eval "$gl_fnmatch_cache_var=\"guessing no\""
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <fnmatch.h>
+            static int
+            y (char const *pattern, char const *string, int flags)
+            {
+              return fnmatch (pattern, string, flags) == 0;
+            }
+            static int
+            n (char const *pattern, char const *string, int flags)
+            {
+              return fnmatch (pattern, string, flags) == FNM_NOMATCH;
+            }
 
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
-   before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-            wint_t foo = (wchar_t)'\0';
 int
 main ()
 {
+char const *Apat = 'A' < '\\\\' ? "[A-\\\\\\\\]" : "[\\\\\\\\-A]";
+            char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]";
+            static char const A_1[] = { 'A' - 1, 0 };
+            static char const A01[] = { 'A' + 1, 0 };
+            static char const a_1[] = { 'a' - 1, 0 };
+            static char const a01[] = { 'a' + 1, 0 };
+            static char const bs_1[] = { '\\\\' - 1, 0 };
+            static char const bs01[] = { '\\\\' + 1, 0 };
+            int result = 0;
+            if (!n ("a*", "", 0))
+              return 1;
+            if (!y ("a*", "abc", 0))
+              return 1;
+            if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */
+              return 1;
+            if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
+              return 2;
+            if (!y ("a\\\\bc", "abc", 0))
+              return 3;
+            if (!n ("a\\\\bc", "abc", FNM_NOESCAPE))
+              return 3;
+            if (!y ("*x", ".x", 0))
+              return 4;
+            if (!n ("*x", ".x", FNM_PERIOD))
+              return 4;
+            if (!y (Apat, "\\\\", 0))
+              return 5;
+            if (!y (Apat, "A", 0))
+              return 5;
+            if (!y (apat, "\\\\", 0))
+              return 5;
+            if (!y (apat, "a", 0))
+              return 5;
+            if (!(n (Apat, A_1, 0) == ('A' < '\\\\')))
+              return 5;
+            if (!(n (apat, a_1, 0) == ('a' < '\\\\')))
+              return 5;
+            if (!(y (Apat, A01, 0) == ('A' < '\\\\')))
+              return 5;
+            if (!(y (apat, a01, 0) == ('a' < '\\\\')))
+              return 5;
+            if (!(y (Apat, bs_1, 0) == ('A' < '\\\\')))
+              return 5;
+            if (!(y (apat, bs_1, 0) == ('a' < '\\\\')))
+              return 5;
+            if (!(n (Apat, bs01, 0) == ('A' < '\\\\')))
+              return 5;
+            if (!(n (apat, bs01, 0) == ('a' < '\\\\')))
+              return 5;
+            $gl_fnmatch_gnu_start
+            if (!y ("xxXX", "xXxX", FNM_CASEFOLD))
+              result |= 8;
+            if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH))
+              result |= 16;
+            if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME))
+              result |= 32;
+            if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR))
+              result |= 64;
+            if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR))
+              result |= 64;
+            if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR))
+              result |= 64;
+            $gl_fnmatch_gnu_end
+            return result;
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_c_wint_t=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  eval "$gl_fnmatch_cache_var=yes"
 else
-  gt_cv_c_wint_t=no
+  eval "$gl_fnmatch_cache_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5
-$as_echo "$gt_cv_c_wint_t" >&6; }
-  if test $gt_cv_c_wint_t = yes; then
 
-$as_echo "#define HAVE_WINT_T 1" >>confdefs.h
 
+fi
+eval ac_res=\$$gl_fnmatch_cache_var
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\""
+  if test "$gl_fnmatch_result" = yes; then
+            rm -f "$gl_source_base/fnmatch.h"
+  else
+    FNMATCH_H=fnmatch.h
   fi
 
-
-  GNULIB_ISWBLANK=0;
-  GNULIB_WCTYPE=0;
-  GNULIB_ISWCTYPE=0;
-  GNULIB_WCTRANS=0;
-  GNULIB_TOWCTRANS=0;
-    HAVE_ISWBLANK=1;
-  HAVE_WCTYPE_T=1;
-  HAVE_WCTRANS_T=1;
-  REPLACE_ISWBLANK=0;
-
-
-
-
-   if false; then
-  GL_COND_LIBTOOL_TRUE=
-  GL_COND_LIBTOOL_FALSE='#'
+   if test -n "$FNMATCH_H"; then
+  GL_GENERATE_FNMATCH_H_TRUE=
+  GL_GENERATE_FNMATCH_H_FALSE='#'
 else
-  GL_COND_LIBTOOL_TRUE='#'
-  GL_COND_LIBTOOL_FALSE=
+  GL_GENERATE_FNMATCH_H_TRUE='#'
+  GL_GENERATE_FNMATCH_H_FALSE=
 fi
 
-  gl_cond_libtool=false
-  gl_libdeps=
-  gl_ltlibdeps=
-  gl_m4_base='import/m4'
-
-
-
 
+  if test -n "$FNMATCH_H"; then
 
 
 
 
 
-  gl_source_base='import'
 
 
-  if test $ac_cv_func_alloca_works = no; then
-    :
-  fi
 
-  # Define an additional variable used in the Makefile substitution.
-  if test $ac_cv_working_alloca_h = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5
-$as_echo_n "checking for alloca as a compiler built-in... " >&6; }
-if test "${gl_cv_rpl_alloca+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
+  gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
 
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#if defined __GNUC__ || defined _AIX || defined _MSC_VER
-        Need own alloca
-#endif
 
+cat >>confdefs.h <<_ACEOF
+#define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Need own alloca" >/dev/null 2>&1; then :
-  gl_cv_rpl_alloca=yes
-else
-  gl_cv_rpl_alloca=no
-fi
-rm -f conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5
-$as_echo "$gl_cv_rpl_alloca" >&6; }
-    if test $gl_cv_rpl_alloca = yes; then
-
-$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
 
-      ALLOCA_H=alloca.h
-    else
-                  ALLOCA_H=
-    fi
-  else
-    ALLOCA_H=alloca.h
-  fi
 
-   if test -n "$ALLOCA_H"; then
-  GL_GENERATE_ALLOCA_H_TRUE=
-  GL_GENERATE_ALLOCA_H_FALSE='#'
+  ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
+"
+if test "x$ac_cv_have_decl_isblank" = x""yes; then :
+  ac_have_decl=1
 else
-  GL_GENERATE_ALLOCA_H_TRUE='#'
-  GL_GENERATE_ALLOCA_H_FALSE=
+  ac_have_decl=0
 fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ISBLANK $ac_have_decl
+_ACEOF
 
 
 
 
-  if test $ac_cv_func_canonicalize_file_name = no; then
-    HAVE_CANONICALIZE_FILE_NAME=0
-    if test $ac_cv_func_realpath = no; then
-      HAVE_REALPATH=0
-    else
-      case "$gl_cv_func_realpath_works" in
-	*yes) ;;
-	*)    REPLACE_REALPATH=1 ;;
-      esac
-    fi
-  else
-    case "$gl_cv_func_realpath_works" in
-      *yes)
-        ;;
-      *)
-        REPLACE_CANONICALIZE_FILE_NAME=1
-        REPLACE_REALPATH=1
-        ;;
-    esac
   fi
 
-  if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then
-
-
-
 
 
 
 
-
-  gl_LIBOBJS="$gl_LIBOBJS canonicalize-lgpl.$ac_objext"
-
-  fi
+  if test -n "$FNMATCH_H"; then
 
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_CANONICALIZE_LGPL 1
-_ACEOF
 
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
 
-          GNULIB_CANONICALIZE_FILE_NAME=1
 
 
+cat >>confdefs.h <<_ACEOF
+#define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch
+_ACEOF
 
 
+  ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
+"
+if test "x$ac_cv_have_decl_isblank" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
-$as_echo "#define GNULIB_TEST_CANONICALIZE_FILE_NAME 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ISBLANK $ac_have_decl
+_ACEOF
 
 
 
 
+  fi
 
 
 
+  FREXP_LIBM=
+  if test $gl_cv_func_frexp_no_libm = no; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexp() can be used with libm" >&5
+$as_echo_n "checking whether frexp() can be used with libm... " >&6; }
+if test "${gl_cv_func_frexp_in_libm+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
 
-          GNULIB_REALPATH=1
+        save_LIBS="$LIBS"
+        LIBS="$LIBS -lm"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <math.h>
+               double x;
+int
+main ()
+{
+int e; return frexp (x, &e) > 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_frexp_in_libm=yes
+else
+  gl_cv_func_frexp_in_libm=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+        LIBS="$save_LIBS"
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexp_in_libm" >&5
+$as_echo "$gl_cv_func_frexp_in_libm" >&6; }
+    if test $gl_cv_func_frexp_in_libm = yes; then
+      FREXP_LIBM=-lm
+    fi
+  fi
+  if test $gl_cv_func_frexp_no_libm = yes \
+     || test $gl_cv_func_frexp_in_libm = yes; then
+    save_LIBS="$LIBS"
+    LIBS="$LIBS $FREXP_LIBM"
 
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexp works" >&5
+$as_echo_n "checking whether frexp works... " >&6; }
+if test "${gl_cv_func_frexp_works+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
 
-$as_echo "#define GNULIB_TEST_REALPATH 1" >>confdefs.h
+      if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+           netbsd* | irix* | mingw*) gl_cv_func_frexp_works="guessing no";;
+           *)                        gl_cv_func_frexp_works="guessing yes";;
+         esac
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <float.h>
+#include <math.h>
+#include <string.h>
+#if HAVE_DECL_ALARM
+# include <signal.h>
+# include <unistd.h>
+#endif
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
+   ICC 10.0 has a bug when optimizing the expression -zero.
+   The expression -DBL_MIN * DBL_MIN does not work when cross-compiling
+   to PowerPC on Mac OS X 10.5.  */
+#if defined __hpux || defined __sgi || defined __ICC
+static double
+compute_minus_zero (void)
+{
+  return -DBL_MIN * DBL_MIN;
+}
+# define minus_zero compute_minus_zero ()
+#else
+double minus_zero = -0.0;
+#endif
+int main()
+{
+  int result = 0;
+  int i;
+  volatile double x;
+  double zero = 0.0;
+#if HAVE_DECL_ALARM
+  /* NeXTstep 3.3 frexp() runs into an endless loop when called on an infinite
+     number.  Let the test fail in this case.  */
+  signal (SIGALRM, SIG_DFL);
+  alarm (5);
+#endif
+  /* Test on denormalized numbers.  */
+  for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5)
+    ;
+  if (x > 0.0)
+    {
+      int exp;
+      double y = frexp (x, &exp);
+      /* On machines with IEEE754 arithmetic: x = 1.11254e-308, exp = -1022.
+         On NetBSD: y = 0.75. Correct: y = 0.5.  */
+      if (y != 0.5)
+        result |= 1;
+    }
+  /* Test on infinite numbers.  */
+  x = 1.0 / zero;
+  {
+    int exp;
+    double y = frexp (x, &exp);
+    if (y != x)
+      result |= 2;
+  }
+  /* Test on negative zero.  */
+  x = minus_zero;
+  {
+    int exp;
+    double y = frexp (x, &exp);
+    if (memcmp (&y, &x, sizeof x))
+      result |= 4;
+  }
+  return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_frexp_works=yes
+else
+  gl_cv_func_frexp_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexp_works" >&5
+$as_echo "$gl_cv_func_frexp_works" >&6; }
 
+    LIBS="$save_LIBS"
+    case "$gl_cv_func_frexp_works" in
+      *yes) gl_func_frexp=yes ;;
+      *)    gl_func_frexp=no; REPLACE_FREXP=1; FREXP_LIBM= ;;
+    esac
+  else
+    gl_func_frexp=no
+  fi
+  if test $gl_func_frexp = yes; then
 
+$as_echo "#define HAVE_FREXP 1" >>confdefs.h
 
+  fi
 
-          GNULIB_CHDIR=1
 
+  if test $gl_func_frexp != yes; then
 
 
 
 
-$as_echo "#define GNULIB_TEST_CHDIR 1" >>confdefs.h
 
 
 
 
-          if test "x$datarootdir" = x; then
-    datarootdir='${datadir}'
+  gl_LIBOBJS="$gl_LIBOBJS frexp.$ac_objext"
 
   fi
-    if test "x$docdir" = x; then
-    docdir='${datarootdir}/doc/${PACKAGE}'
 
-  fi
-    if test "x$htmldir" = x; then
-    htmldir='${docdir}'
 
-  fi
-  if test "x$dvidir" = x; then
-    dvidir='${docdir}'
 
-  fi
-  if test "x$pdfdir" = x; then
-    pdfdir='${docdir}'
 
-  fi
-  if test "x$psdir" = x; then
-    psdir='${docdir}'
 
-  fi
-  if test "x$lispdir" = x; then
-    lispdir='${datarootdir}/emacs/site-lisp'
+          GNULIB_FREXP=1
 
-  fi
-  if test "x$localedir" = x; then
-    localedir='${datarootdir}/locale'
 
-  fi
-    if test "x$runstatedir" = x; then
-    runstatedir='${localstatedir}/run'
 
-  fi
 
-      pkglibexecdir='${libexecdir}/${PACKAGE}'
 
+$as_echo "#define GNULIB_TEST_FREXP 1" >>confdefs.h
 
 
 
@@ -12602,460 +15544,364 @@ _ACEOF
 
 
 
+      ac_fn_c_check_decl "$LINENO" "frexpl" "ac_cv_have_decl_frexpl" "#include <math.h>
+"
+if test "x$ac_cv_have_decl_frexpl" = x""yes; then :
 
+else
+  HAVE_DECL_FREXPL=0
+fi
 
 
+  FREXPL_LIBM=
+  if test $HAVE_DECL_FREXPL = 1; then
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_dirent_h='<'dirent.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <dirent.h>" >&5
-$as_echo_n "checking absolute name of <dirent.h>... " >&6; }
-if test "${gl_cv_next_dirent_h+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl() can be used without linking with libm" >&5
+$as_echo_n "checking whether frexpl() can be used without linking with libm... " >&6; }
+if test "${gl_cv_func_frexpl_no_libm+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
-             if test $ac_cv_header_dirent_h = yes; then
-
-
-
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <dirent.h>
+#include <math.h>
+             long double x;
+int
+main ()
+{
+int e; return frexpl (x, &e) > 0;
+  ;
+  return 0;
+}
 _ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
-
-  case "$host_os" in
-    mingw*)
-                                          gl_dirsep_regex='[/\\]'
-      ;;
-    *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'dirent.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
-
-        gl_cv_absolute_dirent_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
-
-           gl_header=$gl_cv_absolute_dirent_h
-           gl_cv_next_dirent_h='"'$gl_header'"'
-          else
-               gl_cv_next_dirent_h='<'dirent.h'>'
-             fi
-
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_frexpl_no_libm=yes
+else
+  gl_cv_func_frexpl_no_libm=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_dirent_h" >&5
-$as_echo "$gl_cv_next_dirent_h" >&6; }
-     fi
-     NEXT_DIRENT_H=$gl_cv_next_dirent_h
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_no_libm" >&5
+$as_echo "$gl_cv_func_frexpl_no_libm" >&6; }
 
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'dirent.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_dirent_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_DIRENT_H=$gl_next_as_first_directive
+    if test $gl_cv_func_frexpl_no_libm = no; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl() can be used with libm" >&5
+$as_echo_n "checking whether frexpl() can be used with libm... " >&6; }
+if test "${gl_cv_func_frexpl_in_libm+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
 
+          save_LIBS="$LIBS"
+          LIBS="$LIBS -lm"
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <math.h>
+                 long double x;
+int
+main ()
+{
+int e; return frexpl (x, &e) > 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_frexpl_in_libm=yes
+else
+  gl_cv_func_frexpl_in_libm=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+          LIBS="$save_LIBS"
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_in_libm" >&5
+$as_echo "$gl_cv_func_frexpl_in_libm" >&6; }
+      if test $gl_cv_func_frexpl_in_libm = yes; then
+        FREXPL_LIBM=-lm
+      fi
+    fi
+    if test $gl_cv_func_frexpl_no_libm = yes \
+       || test $gl_cv_func_frexpl_in_libm = yes; then
+      save_LIBS="$LIBS"
+      LIBS="$LIBS $FREXPL_LIBM"
 
 
-  if test $ac_cv_header_dirent_h = yes; then
-    HAVE_DIRENT_H=1
-  else
-    HAVE_DIRENT_H=0
-  fi
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl works" >&5
+$as_echo_n "checking whether frexpl works... " >&6; }
+if test "${gl_cv_func_frexpl_works+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
 
+      if test "$cross_compiling" = yes; then :
 
+         case "$host_os" in
+           aix | aix[3-6]* | beos* | darwin* | irix* | mingw* | pw*)
+              gl_cv_func_frexpl_works="guessing no";;
+           *) gl_cv_func_frexpl_works="guessing yes";;
+         esac
 
-    for gl_func in alphasort closedir dirfd fdopendir opendir readdir rewinddir scandir; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then :
-  $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <dirent.h>
 
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
+#include <float.h>
+#include <math.h>
+/* Override the values of <float.h>, like done in float.in.h.  */
+#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP    (-16381)
+#endif
+#if defined __i386__ && defined __FreeBSD__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP    (-16381)
+#endif
+#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP DBL_MIN_EXP
+#endif
+#if defined __sgi && (LDBL_MANT_DIG >= 106)
+# if defined __GNUC__
+#  undef LDBL_MIN_EXP
+#  define LDBL_MIN_EXP DBL_MIN_EXP
+# endif
+#endif
+extern
+#ifdef __cplusplus
+"C"
+#endif
+long double frexpl (long double, int *);
+int main()
+{
+  int result = 0;
+  volatile long double x;
+  /* Test on finite numbers that fails on AIX 5.1.  */
+  x = 16.0L;
+  {
+    int exp = -9999;
+    frexpl (x, &exp);
+    if (exp != 5)
+      result |= 1;
+  }
+  /* Test on finite numbers that fails on Mac OS X 10.4, because its frexpl
+     function returns an invalid (incorrectly normalized) value: it returns
+               y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 }
+     but the correct result is
+          0.505L = { 0x3fe028f5, 0xc28f5c29, 0xbc547ae1, 0x47ae1480 }  */
+  x = 1.01L;
+  {
+    int exp = -9999;
+    long double y = frexpl (x, &exp);
+    if (!(exp == 1 && y == 0.505L))
+      result |= 2;
+  }
+  /* Test on large finite numbers.  This fails on BeOS at i = 16322, while
+     LDBL_MAX_EXP = 16384.
+     In the loop end test, we test x against Infinity, rather than comparing
+     i with LDBL_MAX_EXP, because BeOS <float.h> has a wrong LDBL_MAX_EXP.  */
+  {
+    int i;
+    for (i = 1, x = 1.0L; x != x + x; i++, x *= 2.0L)
+      {
+        int exp = -9999;
+        frexpl (x, &exp);
+        if (exp != i)
+          {
+            result |= 4;
+            break;
+          }
+      }
+  }
+  /* Test on denormalized numbers.  */
+  {
+    int i;
+    for (i = 1, x = 1.0L; i >= LDBL_MIN_EXP; i--, x *= 0.5L)
+      ;
+    if (x > 0.0L)
+      {
+        int exp;
+        long double y = frexpl (x, &exp);
+        /* On machines with IEEE854 arithmetic: x = 1.68105e-4932,
+           exp = -16382, y = 0.5.  On Mac OS X 10.5: exp = -16384, y = 0.5.  */
+        if (exp != LDBL_MIN_EXP - 1)
+          result |= 8;
+      }
+  }
+  /* Test on infinite numbers.  */
+  x = 1.0L / 0.0L;
+  {
+    int exp;
+    long double y = frexpl (x, &exp);
+    if (y != x)
+      result |= 16;
+  }
+  return result;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_gl_Symbol=yes"
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_frexpl_works=yes
 else
-  eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  gl_cv_func_frexpl_works=no
 fi
-eval ac_res=\$$as_gl_Symbol
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval as_val=\$$as_gl_Symbol
-   if test "x$as_val" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-      done
-
-
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_works" >&5
+$as_echo "$gl_cv_func_frexpl_works" >&6; }
 
+      LIBS="$save_LIBS"
+      case "$gl_cv_func_frexpl_works" in
+        *yes) gl_func_frexpl=yes ;;
+        *)    gl_func_frexpl=no; REPLACE_FREXPL=1 ;;
+      esac
+    else
+      gl_func_frexpl=no
+    fi
+    if test $gl_func_frexpl = yes; then
 
+$as_echo "#define HAVE_FREXPL 1" >>confdefs.h
 
-  for ac_func in dirfd
-do :
-  ac_fn_c_check_func "$LINENO" "dirfd" "ac_cv_func_dirfd"
-if test "x$ac_cv_func_dirfd" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DIRFD 1
-_ACEOF
+    fi
+  fi
+  if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl = no; then
+        if test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1; then
 
-fi
-done
+      FREXPL_LIBM="$FREXP_LIBM"
+    else
+      FREXPL_LIBM=
+    fi
+  fi
 
-  ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h>
-      #include <dirent.h>
-"
-if test "x$ac_cv_have_decl_dirfd" = x""yes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_DIRFD $ac_have_decl
-_ACEOF
+  if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl = no; then
 
-  if test $ac_cv_have_decl_dirfd = no; then
-    HAVE_DECL_DIRFD=0
-  fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dirfd is a macro" >&5
-$as_echo_n "checking whether dirfd is a macro... " >&6; }
-if test "${gl_cv_func_dirfd_macro+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/types.h>
-#include <dirent.h>
-#ifdef dirfd
- dirent_header_defines_dirfd
-#endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "dirent_header_defines_dirfd" >/dev/null 2>&1; then :
-  gl_cv_func_dirfd_macro=yes
-else
-  gl_cv_func_dirfd_macro=no
-fi
-rm -f conftest*
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dirfd_macro" >&5
-$as_echo "$gl_cv_func_dirfd_macro" >&6; }
 
-  # Use the replacement if we have no function or macro with that name,
-  # or if OS/2 kLIBC whose dirfd() does not work.
-  # Replace only if the system declares dirfd already.
-  case $ac_cv_func_dirfd,$gl_cv_func_dirfd_macro,$host_os,$ac_cv_have_decl_dirfd in
-    no,no,*,yes | *,*,os2*,yes)
-      REPLACE_DIRFD=1
 
-$as_echo "#define REPLACE_DIRFD 1" >>confdefs.h
-;;
-  esac
 
-  if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no \
-     || test $REPLACE_DIRFD = 1; then
 
+  gl_LIBOBJS="$gl_LIBOBJS frexpl.$ac_objext"
 
+  fi
 
 
 
 
 
+          GNULIB_FREXPL=1
 
-  gl_LIBOBJS="$gl_LIBOBJS dirfd.$ac_objext"
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get the file descriptor associated with an open DIR*" >&5
-$as_echo_n "checking how to get the file descriptor associated with an open DIR*... " >&6; }
-if test "${gl_cv_sys_dir_fd_member_name+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-      dirfd_save_CFLAGS=$CFLAGS
-      for ac_expr in d_fd dd_fd; do
 
-        CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+$as_echo "#define GNULIB_TEST_FREXPL 1" >>confdefs.h
 
-           #include <sys/types.h>
-           #include <dirent.h>
-int
-main ()
-{
-DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  dir_fd_found=yes
 
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-        CFLAGS=$dirfd_save_CFLAGS
-        test "$dir_fd_found" = yes && break
-      done
-      test "$dir_fd_found" = yes || ac_expr=no_such_member
 
-      gl_cv_sys_dir_fd_member_name=$ac_expr
 
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_dir_fd_member_name" >&5
-$as_echo "$gl_cv_sys_dir_fd_member_name" >&6; }
-  if test $gl_cv_sys_dir_fd_member_name != no_such_member; then
 
-cat >>confdefs.h <<_ACEOF
-#define DIR_FD_MEMBER_NAME $gl_cv_sys_dir_fd_member_name
-_ACEOF
 
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_FSTAT=1
   fi
 
 
+  if test $WINDOWS_64_BIT_ST_SIZE = 1; then
+    REPLACE_FSTAT=1
   fi
 
 
 
 
 
-          GNULIB_DIRFD=1
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
+  fi
 
+    if test $HAVE_FCHDIR = 0; then
+      case "$gl_cv_func_open_directory_works" in
+        *yes) ;;
+        *)
+          REPLACE_FSTAT=1
+          ;;
+      esac
+    fi
 
 
+  if test $REPLACE_FSTAT = 1; then
 
 
-$as_echo "#define GNULIB_TEST_DIRFD 1" >>confdefs.h
 
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS fstat.$ac_objext"
 
+    :
+  fi
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5
-$as_echo_n "checking whether // is distinct from /... " >&6; }
-if test "${gl_cv_double_slash_root+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-   if test x"$cross_compiling" = xyes ; then
-        # When cross-compiling, there is no way to tell whether // is special
-        # short of a list of hosts.  However, the only known hosts to date
-        # that have a distinct // are Apollo DomainOS (too old to port to),
-        # Cygwin, and z/OS.  If anyone knows of another system for which // has
-        # special semantics and is distinct from /, please report it to
-        # <bug-gnulib@gnu.org>.
-        case $host in
-          *-cygwin | i370-ibm-openedition)
-            gl_cv_double_slash_root=yes ;;
-          *)
-            # Be optimistic and assume that / and // are the same when we
-            # don't know.
-            gl_cv_double_slash_root='unknown, assuming no' ;;
-        esac
-      else
-        set x `ls -di / // 2>/dev/null`
-        if test "$2" = "$4" && wc //dev/null >/dev/null 2>&1; then
-          gl_cv_double_slash_root=no
-        else
-          gl_cv_double_slash_root=yes
-        fi
-      fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_double_slash_root" >&5
-$as_echo "$gl_cv_double_slash_root" >&6; }
-  if test "$gl_cv_double_slash_root" = yes; then
 
-$as_echo "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h
 
-  fi
+
+          GNULIB_FSTAT=1
 
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flexible array member" >&5
-$as_echo_n "checking for flexible array member... " >&6; }
-if test "${ac_cv_c_flexmember+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-            #include <stdio.h>
-            #include <stddef.h>
-            struct s { int n; double d[]; };
-int
-main ()
-{
-int m = getchar ();
-            size_t nbytes = offsetof (struct s, d) + m * sizeof (double);
-            nbytes += sizeof (struct s) - 1;
-            nbytes -= nbytes % sizeof (struct s);
-            struct s *p = malloc (nbytes);
-            p->d[0] = 0.0;
-            return p->d != (double *) NULL;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_flexmember=yes
-else
-  ac_cv_c_flexmember=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_flexmember" >&5
-$as_echo "$ac_cv_c_flexmember" >&6; }
-  if test $ac_cv_c_flexmember = yes; then
 
-$as_echo "#define FLEXIBLE_ARRAY_MEMBER /**/" >>confdefs.h
+$as_echo "#define GNULIB_TEST_FSTAT 1" >>confdefs.h
 
-  else
-    $as_echo "#define FLEXIBLE_ARRAY_MEMBER 1" >>confdefs.h
 
-  fi
 
 
 
 
-  FLOAT_H=
-  REPLACE_FLOAT_LDBL=0
-  case "$host_os" in
-    aix* | beos* | openbsd* | mirbsd* | irix*)
-      FLOAT_H=float.h
-      ;;
-    freebsd*)
-      case "$host_cpu" in
-        i[34567]86 )
-          FLOAT_H=float.h
-          ;;
-        x86_64 )
-          # On x86_64 systems, the C compiler may still be generating
-          # 32-bit code.
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined __LP64__ || defined __x86_64__ || defined __amd64__
-             yes
-             #endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
 
-else
-  FLOAT_H=float.h
-fi
-rm -f conftest*
 
-          ;;
-      esac
-      ;;
-    linux*)
-      case "$host_cpu" in
-        powerpc*)
-          FLOAT_H=float.h
-          ;;
-      esac
-      ;;
-  esac
-  case "$host_os" in
-    aix* | freebsd* | linux*)
-      if test -n "$FLOAT_H"; then
-        REPLACE_FLOAT_LDBL=1
-      fi
-      ;;
-  esac
 
-    REPLACE_ITOLD=0
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether conversion from 'int' to 'long double' works" >&5
-$as_echo_n "checking whether conversion from 'int' to 'long double' works... " >&6; }
-if test "${gl_cv_func_itold_works+set}" = set; then :
+  if test $ac_cv_func_fstatat = no; then
+    HAVE_FSTATAT=0
+  else
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fstatat (..., 0) works" >&5
+$as_echo_n "checking whether fstatat (..., 0) works... " >&6; }
+if test "${gl_cv_func_fstatat_zero_flag+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-
-      if test "$cross_compiling" = yes; then :
-  case "$host" in
-           sparc*-*-linux*)
-             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined __LP64__ || defined __arch64__
-                yes
-                #endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
-  gl_cv_func_itold_works="guessing no"
-else
-  gl_cv_func_itold_works="guessing yes"
-fi
-rm -f conftest*
-
-             ;;
-           *) gl_cv_func_itold_works="guessing yes" ;;
-         esac
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+            aix*) gl_cv_func_fstatat_zero_flag="guessing no";;
+            *)    gl_cv_func_fstatat_zero_flag="guessing yes";;
+          esac
 
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-int i = -1;
-volatile long double ld;
-int main ()
-{
-  ld += i * 1.0L;
-  if (ld > 0)
-    return 1;
-  return 0;
-}
+              #include <fcntl.h>
+              #include <sys/stat.h>
+              int
+              main (void)
+              {
+                struct stat a;
+                return fstatat (AT_FDCWD, ".", &a, 0) != 0;
+              }
+
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_itold_works=yes
+  gl_cv_func_fstatat_zero_flag=yes
 else
-  gl_cv_func_itold_works=no
+  gl_cv_func_fstatat_zero_flag=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
@@ -13063,238 +15909,452 @@ fi
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_itold_works" >&5
-$as_echo "$gl_cv_func_itold_works" >&6; }
-  case "$gl_cv_func_itold_works" in
-    *no)
-      REPLACE_ITOLD=1
-                  FLOAT_H=float.h
-      ;;
-  esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fstatat_zero_flag" >&5
+$as_echo "$gl_cv_func_fstatat_zero_flag" >&6; }
 
-  if test -n "$FLOAT_H"; then
+    case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in
+    *yes+*yes) ;;
+    *) REPLACE_FSTATAT=1
+       case $gl_cv_func_fstatat_zero_flag in
+       *yes)
 
+$as_echo "#define HAVE_WORKING_FSTATAT_ZERO_FLAG 1" >>confdefs.h
 
+         ;;
+       esac
+       ;;
+    esac
+  fi
 
+  if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then
 
 
 
 
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_float_h='<'float.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <float.h>" >&5
-$as_echo_n "checking absolute name of <float.h>... " >&6; }
-if test "${gl_cv_next_float_h+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
 
 
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <float.h>
-_ACEOF
-                case "$host_os" in
-    aix*) gl_absname_cpp="$ac_cpp -C" ;;
-    *)    gl_absname_cpp="$ac_cpp" ;;
-  esac
+  gl_LIBOBJS="$gl_LIBOBJS fstatat.$ac_objext"
+
+  fi
+
+
+
+
 
+          GNULIB_FSTATAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_FSTATAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+  gl_abort_bug=no
   case "$host_os" in
     mingw*)
-                                          gl_dirsep_regex='[/\\]'
+      gl_cv_func_getcwd_path_max=yes
       ;;
     *)
-      gl_dirsep_regex='\/'
-      ;;
-  esac
-      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-  gl_header_literal_regex=`echo 'float.h' \
-                           | sed -e "$gl_make_literal_regex_sed"`
-  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-      s|^/[^/]|//&|
-      p
-      q
-    }'
 
-        gl_cv_absolute_float_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-  sed -n "$gl_absolute_header_sed"`
 
-           gl_header=$gl_cv_absolute_float_h
-           gl_cv_next_float_h='"'$gl_header'"'
 
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_float_h" >&5
-$as_echo "$gl_cv_next_float_h" >&6; }
-     fi
-     NEXT_FLOAT_H=$gl_cv_next_float_h
 
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'float.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_float_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_FLOAT_H=$gl_next_as_first_directive
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd handles long file names properly" >&5
+$as_echo_n "checking whether getcwd handles long file names properly... " >&6; }
+if test "${gl_cv_func_getcwd_path_max+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  # Arrange for deletion of the temporary directory this test creates.
+     ac_clean_files="$ac_clean_files confdir3"
+          if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+       aix*) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+       *) gl_cv_func_getcwd_path_max=no;;
+     esac
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <errno.h>
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else
+# include <direct.h>
+#endif
+#include <string.h>
+#include <limits.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+
+
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
+
+
+#ifndef AT_FDCWD
+# define AT_FDCWD 0
+#endif
+#ifdef ENAMETOOLONG
+# define is_ENAMETOOLONG(x) ((x) == ENAMETOOLONG)
+#else
+# define is_ENAMETOOLONG(x) 0
+#endif
+
+/* Use the getcwd function, not any macro.  */
+#undef getcwd
+
+/* Don't get link errors because mkdir is redefined to rpl_mkdir.  */
+#undef mkdir
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* The length of this name must be 8.  */
+#define DIR_NAME "confdir3"
+#define DIR_NAME_LEN 8
+#define DIR_NAME_SIZE (DIR_NAME_LEN + 1)
+
+/* The length of "../".  */
+#define DOTDOTSLASH_LEN 3
+
+/* Leftover bytes in the buffer, to work around library or OS bugs.  */
+#define BUF_SLOP 20
+
+int
+main ()
+{
+#ifndef PATH_MAX
+  /* The Hurd doesn't define this, so getcwd can't exhibit the bug --
+     at least not on a local file system.  And if we were to start worrying
+     about remote file systems, we'd have to enable the wrapper function
+     all of the time, just to be safe.  That's not worth the cost.  */
+  exit (0);
+#elif ((INT_MAX / (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) \
+        - DIR_NAME_SIZE - BUF_SLOP) \
+       <= PATH_MAX)
+  /* FIXME: Assuming there's a system for which this is true,
+     this should be done in a compile test.  */
+  exit (0);
+#else
+  char buf[PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1)
+           + DIR_NAME_SIZE + BUF_SLOP];
+  char *cwd = getcwd (buf, PATH_MAX);
+  size_t initial_cwd_len;
+  size_t cwd_len;
+  int fail = 0;
+  size_t n_chdirs = 0;
+
+  if (cwd == NULL)
+    exit (10);
+
+  cwd_len = initial_cwd_len = strlen (cwd);
+
+  while (1)
+    {
+      size_t dotdot_max = PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN);
+      char *c = NULL;
+
+      cwd_len += DIR_NAME_SIZE;
+      /* If mkdir or chdir fails, it could be that this system cannot create
+         any file with an absolute name longer than PATH_MAX, such as cygwin.
+         If so, leave fail as 0, because the current working directory can't
+         be too long for getcwd if it can't even be created.  For other
+         errors, be pessimistic and consider that as a failure, too.  */
+      if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0)
+        {
+          if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+            fail = 20;
+          break;
+        }
 
+      if (PATH_MAX <= cwd_len && cwd_len < PATH_MAX + DIR_NAME_SIZE)
+        {
+          struct stat sb;
 
+          c = getcwd (buf, PATH_MAX);
+          if (!c && errno == ENOENT)
+            {
+              fail = 11;
+              break;
+            }
+          if (c)
+            {
+              fail = 31;
+              break;
+            }
+          if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+            {
+              fail = 21;
+              break;
+            }
 
+          /* Our replacement needs to be able to stat() long ../../paths,
+             so generate a path larger than PATH_MAX to check,
+             avoiding the replacement if we can't stat().  */
+          c = getcwd (buf, cwd_len + 1);
+          if (c && !AT_FDCWD && stat (c, &sb) != 0 && is_ENAMETOOLONG (errno))
+            {
+              fail = 32;
+              break;
+            }
+        }
 
-  fi
+      if (dotdot_max <= cwd_len - initial_cwd_len)
+        {
+          if (dotdot_max + DIR_NAME_SIZE < cwd_len - initial_cwd_len)
+            break;
+          c = getcwd (buf, cwd_len + 1);
+          if (!c)
+            {
+              if (! (errno == ERANGE || errno == ENOENT
+                     || is_ENAMETOOLONG (errno)))
+                {
+                  fail = 22;
+                  break;
+                }
+              if (AT_FDCWD || errno == ERANGE || errno == ENOENT)
+                {
+                  fail = 12;
+                  break;
+                }
+            }
+        }
 
-   if test -n "$FLOAT_H"; then
-  GL_GENERATE_FLOAT_H_TRUE=
-  GL_GENERATE_FLOAT_H_FALSE='#'
-else
-  GL_GENERATE_FLOAT_H_TRUE='#'
-  GL_GENERATE_FLOAT_H_FALSE=
-fi
+      if (c && strlen (c) != cwd_len)
+        {
+          fail = 23;
+          break;
+        }
+      ++n_chdirs;
+    }
 
+  /* Leaving behind such a deep directory is not polite.
+     So clean up here, right away, even though the driving
+     shell script would also clean up.  */
+  {
+    size_t i;
 
+    /* Try rmdir first, in case the chdir failed.  */
+    rmdir (DIR_NAME);
+    for (i = 0; i <= n_chdirs; i++)
+      {
+        if (chdir ("..") < 0)
+          break;
+        if (rmdir (DIR_NAME) != 0)
+          break;
+      }
+  }
 
-  if test $REPLACE_FLOAT_LDBL = 1; then
+  exit (fail);
+#endif
+}
 
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_getcwd_path_max=yes
+else
+  case $? in
+     10|11|12) gl_cv_func_getcwd_path_max='no, but it is partly working';;
+     31) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+     32) gl_cv_func_getcwd_path_max='yes, but with shorter paths';;
+     *) gl_cv_func_getcwd_path_max=no;;
+     esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_path_max" >&5
+$as_echo "$gl_cv_func_getcwd_path_max" >&6; }
 
+      case "$gl_cv_func_getcwd_null" in
+        *yes)
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS float.$ac_objext"
+  for ac_func in getpagesize
+do :
+  ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
+if test "x$ac_cv_func_getpagesize" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_GETPAGESIZE 1
+_ACEOF
 
-  fi
-  if test $REPLACE_ITOLD = 1; then
+fi
+done
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd aborts when 4k < cwd_length < 16k" >&5
+$as_echo_n "checking whether getcwd aborts when 4k < cwd_length < 16k... " >&6; }
+if test "${gl_cv_func_getcwd_abort_bug+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  # Remove any remnants of a previous test.
+     rm -rf confdir-14B---
+     # Arrange for deletion of the temporary directory this test creates.
+     ac_clean_files="$ac_clean_files confdir-14B---"
+          if test "$cross_compiling" = yes; then :
+  gl_cv_func_getcwd_abort_bug=yes
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <errno.h>
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <direct.h>
+#endif
+#include <string.h>
+#include <sys/stat.h>
 
 
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
 
 
+/* Don't get link errors because mkdir is redefined to rpl_mkdir.  */
+#undef mkdir
 
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
 
-  gl_LIBOBJS="$gl_LIBOBJS itold.$ac_objext"
+/* FIXME: skip the run-test altogether on systems without getpagesize.  */
+#if ! HAVE_GETPAGESIZE
+# define getpagesize() 0
+#endif
 
-  fi
+/* This size is chosen to be larger than PATH_MAX (4k), yet smaller than
+   the 16kB pagesize on ia64 linux.  Those conditions make the code below
+   trigger a bug in glibc's getcwd implementation before 2.4.90-10.  */
+#define TARGET_LEN (5 * 1024)
 
+int
+main ()
+{
+  char *cwd;
+  size_t initial_cwd_len;
+  int fail = 0;
 
+  /* The bug is triggered when PATH_MAX < getpagesize (), so skip
+     this relatively expensive and invasive test if that's not true.  */
+#ifdef PATH_MAX
+  int bug_possible = PATH_MAX < getpagesize ();
+#else
+  int bug_possible = 0;
+#endif
+  if (! bug_possible)
+    return 0;
 
+  cwd = getcwd (NULL, 0);
+  if (cwd == NULL)
+    return 2;
 
+  initial_cwd_len = strlen (cwd);
+  free (cwd);
 
-  FNMATCH_H=
-  gl_fnmatch_required_lowercase=`
-    echo $gl_fnmatch_required | LC_ALL=C tr '[A-Z]' '[a-z]'
-  `
-  gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working $gl_fnmatch_required fnmatch" >&5
-$as_echo_n "checking for working $gl_fnmatch_required fnmatch... " >&6; }
-if { as_var=$gl_fnmatch_cache_var; eval "test \"\${$as_var+set}\" = set"; }; then :
-  $as_echo_n "(cached) " >&6
-else
-                           if test $gl_fnmatch_required = GNU; then
-       gl_fnmatch_gnu_start=
-       gl_fnmatch_gnu_end=
-     else
-       gl_fnmatch_gnu_start='#if 0'
-       gl_fnmatch_gnu_end='#endif'
-     fi
-     if test "$cross_compiling" = yes; then :
-  eval "$gl_fnmatch_cache_var=\"guessing no\""
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <fnmatch.h>
-            static int
-            y (char const *pattern, char const *string, int flags)
+  if (1)
+    {
+      static char const dir_name[] = "confdir-14B---";
+      size_t desired_depth = ((TARGET_LEN - 1 - initial_cwd_len)
+                              / sizeof dir_name);
+      size_t d;
+      for (d = 0; d < desired_depth; d++)
+        {
+          if (mkdir (dir_name, S_IRWXU) < 0 || chdir (dir_name) < 0)
             {
-              return fnmatch (pattern, string, flags) == 0;
+              if (! (errno == ERANGE || errno == ENAMETOOLONG
+                     || errno == ENOENT))
+                fail = 3; /* Unable to construct deep hierarchy.  */
+              break;
             }
-            static int
-            n (char const *pattern, char const *string, int flags)
+        }
+
+      /* If libc has the bug in question, this invocation of getcwd
+         results in a failed assertion.  */
+      cwd = getcwd (NULL, 0);
+      if (cwd == NULL)
+        fail = 4; /* getcwd didn't assert, but it failed for a long name
+                     where the answer could have been learned.  */
+      free (cwd);
+
+      /* Call rmdir first, in case the above chdir failed.  */
+      rmdir (dir_name);
+      while (0 < d--)
+        {
+          if (chdir ("..") < 0)
             {
-              return fnmatch (pattern, string, flags) == FNM_NOMATCH;
+              fail = 5;
+              break;
             }
+          rmdir (dir_name);
+        }
+    }
 
-int
-main ()
-{
-char const *Apat = 'A' < '\\\\' ? "[A-\\\\\\\\]" : "[\\\\\\\\-A]";
-            char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]";
-            static char const A_1[] = { 'A' - 1, 0 };
-            static char const A01[] = { 'A' + 1, 0 };
-            static char const a_1[] = { 'a' - 1, 0 };
-            static char const a01[] = { 'a' + 1, 0 };
-            static char const bs_1[] = { '\\\\' - 1, 0 };
-            static char const bs01[] = { '\\\\' + 1, 0 };
-            int result = 0;
-            if (!n ("a*", "", 0))
-              return 1;
-            if (!y ("a*", "abc", 0))
-              return 1;
-            if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */
-              return 1;
-            if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
-              return 2;
-            if (!y ("a\\\\bc", "abc", 0))
-              return 3;
-            if (!n ("a\\\\bc", "abc", FNM_NOESCAPE))
-              return 3;
-            if (!y ("*x", ".x", 0))
-              return 4;
-            if (!n ("*x", ".x", FNM_PERIOD))
-              return 4;
-            if (!y (Apat, "\\\\", 0))
-              return 5;
-            if (!y (Apat, "A", 0))
-              return 5;
-            if (!y (apat, "\\\\", 0))
-              return 5;
-            if (!y (apat, "a", 0))
-              return 5;
-            if (!(n (Apat, A_1, 0) == ('A' < '\\\\')))
-              return 5;
-            if (!(n (apat, a_1, 0) == ('a' < '\\\\')))
-              return 5;
-            if (!(y (Apat, A01, 0) == ('A' < '\\\\')))
-              return 5;
-            if (!(y (apat, a01, 0) == ('a' < '\\\\')))
-              return 5;
-            if (!(y (Apat, bs_1, 0) == ('A' < '\\\\')))
-              return 5;
-            if (!(y (apat, bs_1, 0) == ('a' < '\\\\')))
-              return 5;
-            if (!(n (Apat, bs01, 0) == ('A' < '\\\\')))
-              return 5;
-            if (!(n (apat, bs01, 0) == ('a' < '\\\\')))
-              return 5;
-            $gl_fnmatch_gnu_start
-            if (!y ("xxXX", "xXxX", FNM_CASEFOLD))
-              result |= 8;
-            if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH))
-              result |= 16;
-            if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME))
-              result |= 32;
-            if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR))
-              result |= 64;
-            if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR))
-              result |= 64;
-            if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR))
-              result |= 64;
-            $gl_fnmatch_gnu_end
-            return result;
-
-  ;
-  return 0;
+  return fail;
 }
+
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  eval "$gl_fnmatch_cache_var=yes"
+  gl_cv_func_getcwd_abort_bug=no
 else
-  eval "$gl_fnmatch_cache_var=no"
+                                ret=$?
+     if test $ret -ge 128 || test $ret = 4; then
+       gl_cv_func_getcwd_abort_bug=yes
+     else
+       gl_cv_func_getcwd_abort_bug=no
+     fi
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
@@ -13302,66 +16362,96 @@ fi
 
 
 fi
-eval ac_res=\$$gl_fnmatch_cache_var
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\""
-  if test "$gl_fnmatch_result" = yes; then
-            rm -f "$gl_source_base/fnmatch.h"
-  else
-    FNMATCH_H=fnmatch.h
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_abort_bug" >&5
+$as_echo "$gl_cv_func_getcwd_abort_bug" >&6; }
+  if test $gl_cv_func_getcwd_abort_bug = yes; then :
+  gl_abort_bug=yes
+fi
+
+          ;;
+      esac
+      ;;
+  esac
+      case "$gl_cv_func_getcwd_path_max" in
+    "no"|"no, it has the AIX bug") ;;
+    *)
+
+$as_echo "#define HAVE_MINIMALLY_WORKING_GETCWD 1" >>confdefs.h
+
+      ;;
+  esac
+  case "$gl_cv_func_getcwd_path_max" in
+    "no, but it is partly working")
+
+$as_echo "#define HAVE_PARTLY_WORKING_GETCWD 1" >>confdefs.h
+
+      ;;
+    "yes, but with shorter paths")
+
+$as_echo "#define HAVE_GETCWD_SHORTER 1" >>confdefs.h
+
+      ;;
+  esac
+
+  if { case "$gl_cv_func_getcwd_null" in *yes) false;; *) true;; esac; } \
+     || test $gl_cv_func_getcwd_posix_signature != yes \
+     || { case "$gl_cv_func_getcwd_path_max" in *yes*) false;; *) true;; esac; } \
+     || test $gl_abort_bug = yes; then
+    REPLACE_GETCWD=1
   fi
 
-   if test -n "$FNMATCH_H"; then
-  GL_GENERATE_FNMATCH_H_TRUE=
-  GL_GENERATE_FNMATCH_H_FALSE='#'
-else
-  GL_GENERATE_FNMATCH_H_TRUE='#'
-  GL_GENERATE_FNMATCH_H_FALSE=
-fi
+  if test $REPLACE_GETCWD = 1; then
 
 
-  if test -n "$FNMATCH_H"; then
 
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS getcwd.$ac_objext"
 
 
-  gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
 
 
+  :
+
+  fi
+
 
 cat >>confdefs.h <<_ACEOF
-#define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch
+#define GNULIB_GETCWD 1
 _ACEOF
 
 
-  ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
-"
-if test "x$ac_cv_have_decl_isblank" = x""yes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ISBLANK $ac_have_decl
-_ACEOF
 
 
 
 
-  fi
+          GNULIB_GETCWD=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_GETCWD 1" >>confdefs.h
+
+
+
 
 
 
 
 
-  if test -n "$FNMATCH_H"; then
+  case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in
+  *yes,yes) ;;
+  *)
+        REPLACE_GETCWD=1
+    ;;
+  esac
 
+  if test $REPLACE_GETCWD = 1; then
 
 
 
@@ -13369,163 +16459,68 @@ _ACEOF
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
 
+  gl_LIBOBJS="$gl_LIBOBJS getcwd-lgpl.$ac_objext"
 
+  fi
 
-cat >>confdefs.h <<_ACEOF
-#define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch
-_ACEOF
 
 
-  ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
-"
-if test "x$ac_cv_have_decl_isblank" = x""yes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ISBLANK $ac_have_decl
-_ACEOF
 
+          GNULIB_GETCWD=1
 
 
 
-  fi
 
 
+$as_echo "#define GNULIB_TEST_GETCWD 1" >>confdefs.h
 
-  FREXP_LIBM=
-  if test $gl_cv_func_frexp_no_libm = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexp() can be used with libm" >&5
-$as_echo_n "checking whether frexp() can be used with libm... " >&6; }
-if test "${gl_cv_func_frexp_in_libm+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-        save_LIBS="$LIBS"
-        LIBS="$LIBS -lm"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <math.h>
-               double x;
-int
-main ()
-{
-int e; return frexp (x, &e) > 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_func_frexp_in_libm=yes
-else
-  gl_cv_func_frexp_in_libm=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-        LIBS="$save_LIBS"
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexp_in_libm" >&5
-$as_echo "$gl_cv_func_frexp_in_libm" >&6; }
-    if test $gl_cv_func_frexp_in_libm = yes; then
-      FREXP_LIBM=-lm
-    fi
-  fi
-  if test $gl_cv_func_frexp_no_libm = yes \
-     || test $gl_cv_func_frexp_in_libm = yes; then
-    save_LIBS="$LIBS"
-    LIBS="$LIBS $FREXP_LIBM"
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexp works" >&5
-$as_echo_n "checking whether frexp works... " >&6; }
-if test "${gl_cv_func_frexp_works+set}" = set; then :
+
+
+  if test $ac_cv_func_getdtablesize = yes &&
+     test $ac_cv_have_decl_getdtablesize = yes; then
+    # Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft limit
+    # up to an unchangeable hard limit; all other platforms correctly
+    # require setrlimit before getdtablesize() can report a larger value.
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getdtablesize works" >&5
+$as_echo_n "checking whether getdtablesize works... " >&6; }
+if test "${gl_cv_func_getdtablesize_works+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-
-      if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes; then :
   case "$host_os" in
-           netbsd* | irix* | mingw*) gl_cv_func_frexp_works="guessing no";;
-           *)                        gl_cv_func_frexp_works="guessing yes";;
+          cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows
+            gl_cv_func_getdtablesize_works="guessing no" ;;
+          *) gl_cv_func_getdtablesize_works="guessing yes" ;;
          esac
-
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <float.h>
-#include <math.h>
-#include <string.h>
-#if HAVE_DECL_ALARM
-# include <signal.h>
-# include <unistd.h>
-#endif
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   ICC 10.0 has a bug when optimizing the expression -zero.
-   The expression -DBL_MIN * DBL_MIN does not work when cross-compiling
-   to PowerPC on Mac OS X 10.5.  */
-#if defined __hpux || defined __sgi || defined __ICC
-static double
-compute_minus_zero (void)
-{
-  return -DBL_MIN * DBL_MIN;
-}
-# define minus_zero compute_minus_zero ()
-#else
-double minus_zero = -0.0;
-#endif
-int main()
+        #include <unistd.h>
+int
+main ()
 {
-  int result = 0;
-  int i;
-  volatile double x;
-  double zero = 0.0;
-#if HAVE_DECL_ALARM
-  /* NeXTstep 3.3 frexp() runs into an endless loop when called on an infinite
-     number.  Let the test fail in this case.  */
-  signal (SIGALRM, SIG_DFL);
-  alarm (5);
-#endif
-  /* Test on denormalized numbers.  */
-  for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5)
-    ;
-  if (x > 0.0)
-    {
-      int exp;
-      double y = frexp (x, &exp);
-      /* On machines with IEEE754 arithmetic: x = 1.11254e-308, exp = -1022.
-         On NetBSD: y = 0.75. Correct: y = 0.5.  */
-      if (y != 0.5)
-        result |= 1;
-    }
-  /* Test on infinite numbers.  */
-  x = 1.0 / zero;
-  {
-    int exp;
-    double y = frexp (x, &exp);
-    if (y != x)
-      result |= 2;
-  }
-  /* Test on negative zero.  */
-  x = minus_zero;
-  {
-    int exp;
-    double y = frexp (x, &exp);
-    if (memcmp (&y, &x, sizeof x))
-      result |= 4;
-  }
-  return result;
+int size = getdtablesize();
+           if (dup2 (0, getdtablesize()) != -1)
+             return 1;
+           if (size != getdtablesize())
+             return 2;
+
+  ;
+  return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_frexp_works=yes
+  gl_cv_func_getdtablesize_works=yes
 else
-  gl_cv_func_frexp_works=no
+  gl_cv_func_getdtablesize_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
@@ -13533,25 +16528,17 @@ fi
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexp_works" >&5
-$as_echo "$gl_cv_func_frexp_works" >&6; }
-
-    LIBS="$save_LIBS"
-    case "$gl_cv_func_frexp_works" in
-      *yes) gl_func_frexp=yes ;;
-      *)    gl_func_frexp=no; REPLACE_FREXP=1; FREXP_LIBM= ;;
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getdtablesize_works" >&5
+$as_echo "$gl_cv_func_getdtablesize_works" >&6; }
+    case "$gl_cv_func_getdtablesize_works" in
+      *yes) ;;
+      *) REPLACE_GETDTABLESIZE=1 ;;
     esac
   else
-    gl_func_frexp=no
-  fi
-  if test $gl_func_frexp = yes; then
-
-$as_echo "#define HAVE_FREXP 1" >>confdefs.h
-
+    HAVE_GETDTABLESIZE=0
   fi
 
-
-  if test $gl_func_frexp != yes; then
+  if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then
 
 
 
@@ -13560,230 +16547,88 @@ fi
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS frexp.$ac_objext"
+  gl_LIBOBJS="$gl_LIBOBJS getdtablesize.$ac_objext"
 
+    :
   fi
 
 
 
 
 
-          GNULIB_FREXP=1
-
-
-
-
-
-$as_echo "#define GNULIB_TEST_FREXP 1" >>confdefs.h
-
-
-
+          GNULIB_GETDTABLESIZE=1
 
 
 
 
 
+$as_echo "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h
 
-      ac_fn_c_check_decl "$LINENO" "frexpl" "ac_cv_have_decl_frexpl" "#include <math.h>
-"
-if test "x$ac_cv_have_decl_frexpl" = x""yes; then :
 
-else
-  HAVE_DECL_FREXPL=0
-fi
 
 
-  FREXPL_LIBM=
-  if test $HAVE_DECL_FREXPL = 1; then
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl() can be used without linking with libm" >&5
-$as_echo_n "checking whether frexpl() can be used without linking with libm... " >&6; }
-if test "${gl_cv_func_frexpl_no_libm+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <math.h>
-             long double x;
-int
-main ()
-{
-int e; return frexpl (x, &e) > 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_func_frexpl_no_libm=yes
-else
-  gl_cv_func_frexpl_no_libm=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_no_libm" >&5
-$as_echo "$gl_cv_func_frexpl_no_libm" >&6; }
 
-    if test $gl_cv_func_frexpl_no_libm = no; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl() can be used with libm" >&5
-$as_echo_n "checking whether frexpl() can be used with libm... " >&6; }
-if test "${gl_cv_func_frexpl_in_libm+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-          save_LIBS="$LIBS"
-          LIBS="$LIBS -lm"
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <math.h>
-                 long double x;
-int
-main ()
-{
-int e; return frexpl (x, &e) > 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_func_frexpl_in_libm=yes
-else
-  gl_cv_func_frexpl_in_libm=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          LIBS="$save_LIBS"
+  if test $ac_cv_have_decl_getlogin_r = no; then
+    HAVE_DECL_GETLOGIN_R=0
+  fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_in_libm" >&5
-$as_echo "$gl_cv_func_frexpl_in_libm" >&6; }
-      if test $gl_cv_func_frexpl_in_libm = yes; then
-        FREXPL_LIBM=-lm
-      fi
-    fi
-    if test $gl_cv_func_frexpl_no_libm = yes \
-       || test $gl_cv_func_frexpl_in_libm = yes; then
-      save_LIBS="$LIBS"
-      LIBS="$LIBS $FREXPL_LIBM"
 
+  if test $ac_cv_func_getlogin_r = no; then
+    HAVE_GETLOGIN_R=0
+  else
+    HAVE_GETLOGIN_R=1
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl works" >&5
-$as_echo_n "checking whether frexpl works... " >&6; }
-if test "${gl_cv_func_frexpl_works+set}" = set; then :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getlogin_r works with small buffers" >&5
+$as_echo_n "checking whether getlogin_r works with small buffers... " >&6; }
+if test "${gl_cv_func_getlogin_r_works+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then :
-
-         case "$host_os" in
-           aix | aix[3-6]* | beos* | darwin* | irix* | mingw* | pw*)
-              gl_cv_func_frexpl_works="guessing no";;
-           *) gl_cv_func_frexpl_works="guessing yes";;
-         esac
-
+                case "$host_os" in
+                # Guess no on OSF/1.
+          osf*) gl_cv_func_getlogin_r_works="guessing no" ;;
+                # Guess yes otherwise.
+          *)    gl_cv_func_getlogin_r_works="guessing yes" ;;
+        esac
+        if test "$cross_compiling" = yes; then :
+  :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <float.h>
-#include <math.h>
-/* Override the values of <float.h>, like done in float.in.h.  */
-#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
-# undef LDBL_MIN_EXP
-# define LDBL_MIN_EXP    (-16381)
-#endif
-#if defined __i386__ && defined __FreeBSD__
-# undef LDBL_MIN_EXP
-# define LDBL_MIN_EXP    (-16381)
-#endif
-#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__
-# undef LDBL_MIN_EXP
-# define LDBL_MIN_EXP DBL_MIN_EXP
-#endif
-#if defined __sgi && (LDBL_MANT_DIG >= 106)
-# if defined __GNUC__
-#  undef LDBL_MIN_EXP
-#  define LDBL_MIN_EXP DBL_MIN_EXP
-# endif
-#endif
+#include <stddef.h>
+#include <unistd.h>
+#if !HAVE_DECL_GETLOGIN_R
 extern
-#ifdef __cplusplus
+# ifdef __cplusplus
 "C"
+# endif
+int getlogin_r (char *, size_t);
 #endif
-long double frexpl (long double, int *);
-int main()
+int
+main (void)
 {
   int result = 0;
-  volatile long double x;
-  /* Test on finite numbers that fails on AIX 5.1.  */
-  x = 16.0L;
-  {
-    int exp = -9999;
-    frexpl (x, &exp);
-    if (exp != 5)
-      result |= 1;
-  }
-  /* Test on finite numbers that fails on Mac OS X 10.4, because its frexpl
-     function returns an invalid (incorrectly normalized) value: it returns
-               y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 }
-     but the correct result is
-          0.505L = { 0x3fe028f5, 0xc28f5c29, 0xbc547ae1, 0x47ae1480 }  */
-  x = 1.01L;
-  {
-    int exp = -9999;
-    long double y = frexpl (x, &exp);
-    if (!(exp == 1 && y == 0.505L))
-      result |= 2;
-  }
-  /* Test on large finite numbers.  This fails on BeOS at i = 16322, while
-     LDBL_MAX_EXP = 16384.
-     In the loop end test, we test x against Infinity, rather than comparing
-     i with LDBL_MAX_EXP, because BeOS <float.h> has a wrong LDBL_MAX_EXP.  */
-  {
-    int i;
-    for (i = 1, x = 1.0L; x != x + x; i++, x *= 2.0L)
-      {
-        int exp = -9999;
-        frexpl (x, &exp);
-        if (exp != i)
-          {
-            result |= 4;
-            break;
-          }
-      }
-  }
-  /* Test on denormalized numbers.  */
-  {
-    int i;
-    for (i = 1, x = 1.0L; i >= LDBL_MIN_EXP; i--, x *= 0.5L)
-      ;
-    if (x > 0.0L)
-      {
-        int exp;
-        long double y = frexpl (x, &exp);
-        /* On machines with IEEE854 arithmetic: x = 1.68105e-4932,
-           exp = -16382, y = 0.5.  On Mac OS X 10.5: exp = -16384, y = 0.5.  */
-        if (exp != LDBL_MIN_EXP - 1)
-          result |= 8;
-      }
-  }
-  /* Test on infinite numbers.  */
-  x = 1.0L / 0.0L;
-  {
-    int exp;
-    long double y = frexpl (x, &exp);
-    if (y != x)
-      result |= 16;
-  }
+  char buf[100];
+
+  if (getlogin_r (buf, 0) == 0)
+    result |= 16;
+  if (getlogin_r (buf, 1) == 0)
+    result |= 17;
   return result;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_frexpl_works=yes
+  gl_cv_func_getlogin_r_works=yes
 else
-  gl_cv_func_frexpl_works=no
+  case $? in
+             16 | 17) gl_cv_func_getlogin_r_works=no ;;
+           esac
+
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
@@ -13791,57 +16636,134 @@ fi
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_works" >&5
-$as_echo "$gl_cv_func_frexpl_works" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getlogin_r_works" >&5
+$as_echo "$gl_cv_func_getlogin_r_works" >&6; }
+    case "$gl_cv_func_getlogin_r_works" in
+      *yes) ;;
+      *) REPLACE_GETLOGIN_R=1 ;;
+    esac
+  fi
+
+  if test $HAVE_GETLOGIN_R = 0 || test $REPLACE_GETLOGIN_R = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS getlogin_r.$ac_objext"
 
-      LIBS="$save_LIBS"
-      case "$gl_cv_func_frexpl_works" in
-        *yes) gl_func_frexpl=yes ;;
-        *)    gl_func_frexpl=no; REPLACE_FREXPL=1 ;;
-      esac
-    else
-      gl_func_frexpl=no
-    fi
-    if test $gl_func_frexpl = yes; then
 
-$as_echo "#define HAVE_FREXPL 1" >>confdefs.h
 
-    fi
-  fi
-  if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl = no; then
-        if test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1; then
 
-      FREXPL_LIBM="$FREXP_LIBM"
-    else
-      FREXPL_LIBM=
-    fi
   fi
 
 
-  if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl = no; then
 
 
 
+          GNULIB_GETLOGIN_R=1
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS frexpl.$ac_objext"
+$as_echo "#define GNULIB_TEST_GETLOGIN_R 1" >>confdefs.h
 
-  fi
 
 
 
 
 
-          GNULIB_FREXPL=1
+  ac_found=0
+  ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_name" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
+  ac_found=1
+fi
+
+  ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_short_name" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
+  ac_found=1
+fi
 
+  ac_fn_c_check_decl "$LINENO" "__argv" "ac_cv_have_decl___argv" "#include <stdlib.h>
+"
+if test "x$ac_cv_have_decl___argv" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL___ARGV $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
+  ac_found=1
+fi
 
 
-$as_echo "#define GNULIB_TEST_FREXPL 1" >>confdefs.h
+  # Incur the cost of this test only if none of the above worked.
+  if test $ac_found = 0; then
+    # On OpenBSD 5.1, using the global __progname variable appears to be
+    # the only way to implement getprogname.
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether __progname is defined in default libraries" >&5
+$as_echo_n "checking whether __progname is defined in default libraries... " >&6; }
+if test "${gl_cv_var___progname+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+        gl_cv_var___progname=
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+extern char *__progname;
+int
+main ()
+{
+return *__progname;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_var___progname=yes
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var___progname" >&5
+$as_echo "$gl_cv_var___progname" >&6; }
+    if test "$gl_cv_var___progname" = yes; then
+
+$as_echo "#define HAVE_VAR___PROGNAME 1" >>confdefs.h
+
+    fi
+  fi
 
 
 
@@ -14006,46 +16928,171 @@ _ACEOF
   gl_LIBOBJS="$gl_LIBOBJS gettimeofday.$ac_objext"
 
 
-  for ac_header in sys/timeb.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_timeb_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_TIMEB_H 1
+  for ac_header in sys/timeb.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_timeb_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_TIMEB_H 1
+_ACEOF
+
+fi
+
+done
+
+  for ac_func in _ftime
+do :
+  ac_fn_c_check_func "$LINENO" "_ftime" "ac_cv_func__ftime"
+if test "x$ac_cv_func__ftime" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE__FTIME 1
+_ACEOF
+
+fi
+done
+
+
+  fi
+
+
+
+
+
+          GNULIB_GETTIMEOFDAY=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_GETTIMEOFDAY 1" >>confdefs.h
+
+
+
+   GLOB_H=
+  for ac_header in glob.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "glob.h" "ac_cv_header_glob_h" "$ac_includes_default"
+if test "x$ac_cv_header_glob_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_GLOB_H 1
+_ACEOF
+
+else
+  GLOB_H=glob.h
+fi
+
+done
+
+
+  if test -z "$GLOB_H"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU glob interface version 1" >&5
+$as_echo_n "checking for GNU glob interface version 1... " >&6; }
+if test "${gl_cv_gnu_glob_interface_version_1+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <gnu-versions.h>
+char a[_GNU_GLOB_INTERFACE_VERSION == 1 ? 1 : -1];
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_gnu_glob_interface_version_1=yes
+else
+  gl_cv_gnu_glob_interface_version_1=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_gnu_glob_interface_version_1" >&5
+$as_echo "$gl_cv_gnu_glob_interface_version_1" >&6; }
+
+    if test "$gl_cv_gnu_glob_interface_version_1" = "no"; then
+      GLOB_H=glob.h
+    fi
+  fi
+
+  if test -z "$GLOB_H"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether glob lists broken symlinks" >&5
+$as_echo_n "checking whether glob lists broken symlinks... " >&6; }
+if test "${gl_cv_glob_lists_symlinks+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+       if ln -s conf-doesntexist conf$$-globtest 2>/dev/null; then
+        gl_cv_glob_lists_symlinks=maybe
+      else
+        # If we can't make a symlink, then we cannot test this issue.  Be
+        # pessimistic about this.
+        gl_cv_glob_lists_symlinks=no
+      fi
+
+      if test $gl_cv_glob_lists_symlinks = maybe; then
+        if test "$cross_compiling" = yes; then :
+  gl_cv_glob_lists_symlinks=no
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <stddef.h>
+#include <glob.h>
+int
+main ()
+{
+glob_t found;
+if (glob ("conf*-globtest", 0, NULL, &found) == GLOB_NOMATCH) return 1;
+  ;
+  return 0;
+}
 _ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_glob_lists_symlinks=yes
+else
+  gl_cv_glob_lists_symlinks=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
+      fi
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_glob_lists_symlinks" >&5
+$as_echo "$gl_cv_glob_lists_symlinks" >&6; }
 
-done
+    if test $gl_cv_glob_lists_symlinks = no; then
+      GLOB_H=glob.h
+    fi
+  fi
 
-  for ac_func in _ftime
-do :
-  ac_fn_c_check_func "$LINENO" "_ftime" "ac_cv_func__ftime"
-if test "x$ac_cv_func__ftime" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE__FTIME 1
-_ACEOF
+  rm -f conf$$-globtest
 
-fi
-done
 
+   if test -n "$GLOB_H"; then
+  GL_GENERATE_GLOB_H_TRUE=
+  GL_GENERATE_GLOB_H_FALSE='#'
+else
+  GL_GENERATE_GLOB_H_TRUE='#'
+  GL_GENERATE_GLOB_H_FALSE=
+fi
 
-  fi
 
+  if test -n "$GLOB_H"; then
 
 
 
 
-          GNULIB_GETTIMEOFDAY=1
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS glob.$ac_objext"
 
-$as_echo "#define GNULIB_TEST_GETTIMEOFDAY 1" >>confdefs.h
 
+          if test $ac_cv_header_sys_cdefs_h = yes; then
+    HAVE_SYS_CDEFS_H=1
+  else
+    HAVE_SYS_CDEFS_H=0
+  fi
 
 
+  fi
 
   :
 
@@ -15575,75 +18622,298 @@ main ()
               }
             return 0;
 
-  ;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_C_locale_sans_EILSEQ=yes
+else
+  gl_cv_C_locale_sans_EILSEQ=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_C_locale_sans_EILSEQ" >&5
+$as_echo "$gl_cv_C_locale_sans_EILSEQ" >&6; }
+
+      case "$gl_cv_func_mbrtowc_null_arg1" in
+        *yes) ;;
+        *)
+$as_echo "#define MBRTOWC_NULL_ARG1_BUG 1" >>confdefs.h
+
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case "$gl_cv_func_mbrtowc_null_arg2" in
+        *yes) ;;
+        *)
+$as_echo "#define MBRTOWC_NULL_ARG2_BUG 1" >>confdefs.h
+
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case "$gl_cv_func_mbrtowc_retval" in
+        *yes) ;;
+        *)
+$as_echo "#define MBRTOWC_RETVAL_BUG 1" >>confdefs.h
+
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case "$gl_cv_func_mbrtowc_nul_retval" in
+        *yes) ;;
+        *)
+$as_echo "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h
+
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case "$gl_cv_func_mbrtowc_empty_input" in
+        *yes) ;;
+        *)
+$as_echo "#define MBRTOWC_EMPTY_INPUT_BUG 1" >>confdefs.h
+
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case $gl_cv_C_locale_sans_EILSEQ in
+        *yes) ;;
+        *)
+$as_echo "#define C_LOCALE_MAYBE_EILSEQ 1" >>confdefs.h
+
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+    fi
+  fi
+
+  if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext"
+
+
+  :
+
+  fi
+
+
+
+
+
+          GNULIB_MBRTOWC=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+                  case "$host_os" in
+                     # Guess no on AIX and OSF/1.
+        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
+                     # Guess yes otherwise.
+        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
+      esac
+      if test $LOCALE_JA != none; then
+        if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    {
+      const char input[] = "B\217\253\344\217\251\316er"; /* "BÃ¼ÃŸer" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
+        if (mbsinit (&state))
+          return 1;
+    }
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_incomplete_state=yes
+else
+  gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+      fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+                  case "$host_os" in
+                    # Guess no on Solaris 8.
+        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
+                    # Guess yes otherwise.
+        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
+      esac
+      if test $LOCALE_ZH_CN != none; then
+        if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  /* This fails on Solaris 8:
+     mbrtowc returns 2, and sets wc to 0x00F0.
+     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
+  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+    {
+      char input[] = "B\250\271\201\060\211\070er"; /* "BÃ¼ÃŸer" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 6, &state) != 4
+          && mbtowc (&wc, input + 3, 6) == 4)
+        return 1;
+    }
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_C_locale_sans_EILSEQ=yes
+  gl_cv_func_mbrtowc_sanitycheck=yes
 else
-  gl_cv_C_locale_sans_EILSEQ=no
+  gl_cv_func_mbrtowc_sanitycheck=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+      fi
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_C_locale_sans_EILSEQ" >&5
-$as_echo "$gl_cv_C_locale_sans_EILSEQ" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
+$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
-      case "$gl_cv_func_mbrtowc_null_arg1" in
-        *yes) ;;
-        *)
-$as_echo "#define MBRTOWC_NULL_ARG1_BUG 1" >>confdefs.h
+    REPLACE_MBSTATE_T=0
+    case "$gl_cv_func_mbrtowc_incomplete_state" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+    case "$gl_cv_func_mbrtowc_sanitycheck" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+  else
+    REPLACE_MBSTATE_T=1
+  fi
 
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtowc_null_arg2" in
-        *yes) ;;
-        *)
-$as_echo "#define MBRTOWC_NULL_ARG2_BUG 1" >>confdefs.h
 
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtowc_retval" in
-        *yes) ;;
-        *)
-$as_echo "#define MBRTOWC_RETVAL_BUG 1" >>confdefs.h
 
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtowc_nul_retval" in
-        *yes) ;;
-        *)
-$as_echo "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h
+  if test $ac_cv_func_mbsinit = no; then
+    HAVE_MBSINIT=0
+    ac_fn_c_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" "
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
 
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtowc_empty_input" in
-        *yes) ;;
-        *)
-$as_echo "#define MBRTOWC_EMPTY_INPUT_BUG 1" >>confdefs.h
+"
+if test "x$ac_cv_have_decl_mbsinit" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-      case $gl_cv_C_locale_sans_EILSEQ in
-        *yes) ;;
-        *)
-$as_echo "#define C_LOCALE_MAYBE_EILSEQ 1" >>confdefs.h
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MBSINIT $ac_have_decl
+_ACEOF
 
-           REPLACE_MBRTOWC=1
-           ;;
+    if test $ac_cv_have_decl_mbsinit = yes; then
+                        REPLACE_MBSINIT=1
+    fi
+  else
+    if test $REPLACE_MBSTATE_T = 1; then
+      REPLACE_MBSINIT=1
+    else
+                        case "$host_os" in
+        mingw*) REPLACE_MBSINIT=1 ;;
       esac
     fi
   fi
 
-  if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
+  if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
 
 
 
@@ -15652,7 +18922,7 @@ fi
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext"
+  gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext"
 
 
   :
@@ -15663,14 +18933,13 @@ fi
 
 
 
-          GNULIB_MBRTOWC=1
-
+          GNULIB_MBSINIT=1
 
 
 
 
-$as_echo "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h
 
+$as_echo "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h
 
 
 
@@ -15770,40 +19039,198 @@ else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  /* This fails on Solaris 8:
-     mbrtowc returns 2, and sets wc to 0x00F0.
-     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  /* This fails on Solaris 8:
+     mbrtowc returns 2, and sets wc to 0x00F0.
+     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
+  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+    {
+      char input[] = "B\250\271\201\060\211\070er"; /* "BÃ¼ÃŸer" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 6, &state) != 4
+          && mbtowc (&wc, input + 3, 6) == 4)
+        return 1;
+    }
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_sanitycheck=yes
+else
+  gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+      fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
+$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
+
+    REPLACE_MBSTATE_T=0
+    case "$gl_cv_func_mbrtowc_incomplete_state" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+    case "$gl_cv_func_mbrtowc_sanitycheck" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+  else
+    REPLACE_MBSTATE_T=1
+  fi
+
+
+
+  if test $ac_cv_func_mbsrtowcs = no; then
+    HAVE_MBSRTOWCS=0
+    ac_fn_c_check_decl "$LINENO" "mbsrtowcs" "ac_cv_have_decl_mbsrtowcs" "
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+
+"
+if test "x$ac_cv_have_decl_mbsrtowcs" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MBSRTOWCS $ac_have_decl
+_ACEOF
+
+    if test $ac_cv_have_decl_mbsrtowcs = yes; then
+                        REPLACE_MBSRTOWCS=1
+    fi
+  else
+    if test $REPLACE_MBSTATE_T = 1; then
+      REPLACE_MBSRTOWCS=1
+    else
+
+
+
+
+
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbsrtowcs works" >&5
+$as_echo_n "checking whether mbsrtowcs works... " >&6; }
+if test "${gl_cv_func_mbsrtowcs_works+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+                  case "$host_os" in
+                                   # Guess no on HP-UX, Solaris, mingw.
+        hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;;
+                                   # Guess yes otherwise.
+        *)                         gl_cv_func_mbsrtowcs_works="guessing yes" ;;
+      esac
+      if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then
+        if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  int result = 0;
+  /* Test whether the function supports a NULL destination argument.
+     This fails on native Windows.  */
+  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+    {
+      const char input[] = "\337er";
+      const char *src = input;
+      mbstate_t state;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbsrtowcs (NULL, &src, 1, &state) != 3
+          || src != input)
+        result |= 1;
+    }
+  /* Test whether the function works when started with a conversion state
+     in non-initial state.  This fails on HP-UX 11.11 and Solaris 10.  */
+  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+    {
+      const char input[] = "B\303\274\303\237er";
+      mbstate_t state;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2))
+        if (!mbsinit (&state))
+          {
+            const char *src = input + 2;
+            if (mbsrtowcs (NULL, &src, 10, &state) != 4)
+              result |= 2;
+          }
+    }
+  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    {
+      const char input[] = "<\306\374\313\334\270\354>";
+      mbstate_t state;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (NULL, input + 3, 1, &state) == (size_t)(-2))
+        if (!mbsinit (&state))
+          {
+            const char *src = input + 4;
+            if (mbsrtowcs (NULL, &src, 10, &state) != 3)
+              result |= 4;
+          }
+    }
   if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
     {
-      char input[] = "B\250\271\201\060\211\070er"; /* "BÃ¼ÃŸer" */
+      const char input[] = "B\250\271\201\060\211\070er";
       mbstate_t state;
-      wchar_t wc;
 
       memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 6, &state) != 4
-          && mbtowc (&wc, input + 3, 6) == 4)
-        return 1;
+      if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2))
+        if (!mbsinit (&state))
+          {
+            const char *src = input + 2;
+            if (mbsrtowcs (NULL, &src, 10, &state) != 4)
+              result |= 8;
+          }
     }
-  return 0;
+  return result;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_sanitycheck=yes
+  gl_cv_func_mbsrtowcs_works=yes
 else
-  gl_cv_func_mbrtowc_sanitycheck=no
+  gl_cv_func_mbsrtowcs_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
@@ -15812,70 +19239,36 @@ fi
       fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
-$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbsrtowcs_works" >&5
+$as_echo "$gl_cv_func_mbsrtowcs_works" >&6; }
 
-    REPLACE_MBSTATE_T=0
-    case "$gl_cv_func_mbrtowc_incomplete_state" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-    case "$gl_cv_func_mbrtowc_sanitycheck" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-  else
-    REPLACE_MBSTATE_T=1
+      case "$gl_cv_func_mbsrtowcs_works" in
+        *yes) ;;
+        *) REPLACE_MBSRTOWCS=1 ;;
+      esac
+    fi
   fi
 
+  if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
 
 
-  if test $ac_cv_func_mbsinit = no; then
-    HAVE_MBSINIT=0
-    ac_fn_c_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" "
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
 
-"
-if test "x$ac_cv_have_decl_mbsinit" = x""yes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MBSINIT $ac_have_decl
-_ACEOF
 
-    if test $ac_cv_have_decl_mbsinit = yes; then
-                        REPLACE_MBSINIT=1
-    fi
-  else
-    if test $REPLACE_MBSTATE_T = 1; then
-      REPLACE_MBSINIT=1
-    else
-                        case "$host_os" in
-        mingw*) REPLACE_MBSINIT=1 ;;
-      esac
-    fi
-  fi
 
-  if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
 
 
+  gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs.$ac_objext"
 
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext"
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs-state.$ac_objext"
 
 
   :
@@ -15886,17 +19279,19 @@ _ACEOF
 
 
 
-          GNULIB_MBSINIT=1
+          GNULIB_MBSRTOWCS=1
 
 
 
 
 
-$as_echo "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h
+$as_echo "#define GNULIB_TEST_MBSRTOWCS 1" >>confdefs.h
 
 
 
 
+  if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
+
 
 
 
@@ -15904,315 +19299,279 @@ _ACEOF
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext"
 
 
-  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+  for ac_header in bp-sym.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default"
+if test "x$ac_cv_header_bp_sym_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_BP_SYM_H 1
+_ACEOF
 
+fi
 
+done
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
-$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
-if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-                  case "$host_os" in
-                     # Guess no on AIX and OSF/1.
-        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
-                     # Guess yes otherwise.
-        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
-      esac
-      if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  fi
 
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      const char input[] = "B\217\253\344\217\251\316er"; /* "BÃ¼ÃŸer" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 1;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_incomplete_state=yes
-else
-  gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
-      fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
-$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
 
+          GNULIB_MEMCHR=1
 
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
-$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
-if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then :
+
+
+$as_echo "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h
+
+
+
+
+
+  if test $HAVE_DECL_MEMMEM = 1 && test $REPLACE_MEMMEM = 0; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memmem works in linear time" >&5
+$as_echo_n "checking whether memmem works in linear time... " >&6; }
+if test "${gl_cv_func_memmem_works_fast+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
+  if test "$cross_compiling" = yes; then :
+                    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 9) || (__GLIBC__ > 2)) \
+     && !defined __UCLIBC__
+  Lucky user
+ #endif
+#endif
+#ifdef __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 0)
+  Lucky user
+ #endif
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky user" >/dev/null 2>&1; then :
+  gl_cv_func_memmem_works_fast="guessing yes"
+else
+  gl_cv_func_memmem_works_fast="guessing no"
+fi
+rm -f conftest*
+
 
-                  case "$host_os" in
-                    # Guess no on Solaris 8.
-        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
-                    # Guess yes otherwise.
-        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
-  :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
+#include <signal.h> /* for signal */
+#include <string.h> /* for memmem */
+#include <stdlib.h> /* for malloc */
+#include <unistd.h> /* for alarm */
+static void quit (int sig) { _exit (sig + 128); }
+
+int
+main ()
 {
-  /* This fails on Solaris 8:
-     mbrtowc returns 2, and sets wc to 0x00F0.
-     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      char input[] = "B\250\271\201\060\211\070er"; /* "BÃ¼ÃŸer" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 6, &state) != 4
-          && mbtowc (&wc, input + 3, 6) == 4)
-        return 1;
-    }
+    int result = 0;
+    size_t m = 1000000;
+    char *haystack = (char *) malloc (2 * m + 1);
+    char *needle = (char *) malloc (m + 1);
+    /* Failure to compile this test due to missing alarm is okay,
+       since all such platforms (mingw) also lack memmem.  */
+    signal (SIGALRM, quit);
+    alarm (5);
+    /* Check for quadratic performance.  */
+    if (haystack && needle)
+      {
+        memset (haystack, 'A', 2 * m);
+        haystack[2 * m] = 'B';
+        memset (needle, 'A', m);
+        needle[m] = 'B';
+        if (!memmem (haystack, 2 * m + 1, needle, m + 1))
+          result |= 1;
+      }
+    return result;
+
+  ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_sanitycheck=yes
+  gl_cv_func_memmem_works_fast=yes
 else
-  gl_cv_func_mbrtowc_sanitycheck=no
+  gl_cv_func_memmem_works_fast=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-      fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
-$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
-
-    REPLACE_MBSTATE_T=0
-    case "$gl_cv_func_mbrtowc_incomplete_state" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-    case "$gl_cv_func_mbrtowc_sanitycheck" in
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_fast" >&5
+$as_echo "$gl_cv_func_memmem_works_fast" >&6; }
+    case "$gl_cv_func_memmem_works_fast" in
       *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
+      *)
+        REPLACE_MEMMEM=1
+        ;;
     esac
-  else
-    REPLACE_MBSTATE_T=1
   fi
 
+  if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then
 
 
-  if test $ac_cv_func_mbsrtowcs = no; then
-    HAVE_MBSRTOWCS=0
-    ac_fn_c_check_decl "$LINENO" "mbsrtowcs" "ac_cv_have_decl_mbsrtowcs" "
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
 
-"
-if test "x$ac_cv_have_decl_mbsrtowcs" = x""yes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MBSRTOWCS $ac_have_decl
-_ACEOF
 
-    if test $ac_cv_have_decl_mbsrtowcs = yes; then
-                        REPLACE_MBSRTOWCS=1
-    fi
-  else
-    if test $REPLACE_MBSTATE_T = 1; then
-      REPLACE_MBSRTOWCS=1
-    else
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS memmem.$ac_objext"
 
+  fi
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbsrtowcs works" >&5
-$as_echo_n "checking whether mbsrtowcs works... " >&6; }
-if test "${gl_cv_func_mbsrtowcs_works+set}" = set; then :
+
+
+  for ac_func in memmem
+do :
+  ac_fn_c_check_func "$LINENO" "memmem" "ac_cv_func_memmem"
+if test "x$ac_cv_func_memmem" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_MEMMEM 1
+_ACEOF
+
+fi
+done
+
+  if test $ac_cv_func_memmem = yes; then
+    HAVE_MEMMEM=1
+  else
+    HAVE_MEMMEM=0
+  fi
+
+  if test $ac_cv_have_decl_memmem = no; then
+    HAVE_DECL_MEMMEM=0
+  else
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memmem works" >&5
+$as_echo_n "checking whether memmem works... " >&6; }
+if test "${gl_cv_func_memmem_works_always+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
+  if test "$cross_compiling" = yes; then :
+                                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#ifdef __GNU_LIBRARY__
+ #include <features.h>
+ #if ((__GLIBC__ == 2 && ((__GLIBC_MINOR > 0 && __GLIBC_MINOR__ < 9) \
+                          || __GLIBC_MINOR__ > 12)) \
+      || (__GLIBC__ > 2)) \
+     || defined __UCLIBC__
+  Lucky user
+ #endif
+#elif defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7)
+  Lucky user
+ #endif
+#else
+  Lucky user
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky user" >/dev/null 2>&1; then :
+  gl_cv_func_memmem_works_always="guessing yes"
+else
+  gl_cv_func_memmem_works_always="guessing no"
+fi
+rm -f conftest*
+
 
-                  case "$host_os" in
-                                   # Guess no on HP-UX, Solaris, mingw.
-        hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;;
-                                   # Guess yes otherwise.
-        *)                         gl_cv_func_mbsrtowcs_works="guessing yes" ;;
-      esac
-      if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
-  :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <locale.h>
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-int main ()
-{
-  int result = 0;
-  /* Test whether the function supports a NULL destination argument.
-     This fails on native Windows.  */
-  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
-    {
-      const char input[] = "\337er";
-      const char *src = input;
-      mbstate_t state;
+#include <string.h> /* for memmem */
+#define P "_EF_BF_BD"
+#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P
+#define NEEDLE P P P P P
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbsrtowcs (NULL, &src, 1, &state) != 3
-          || src != input)
-        result |= 1;
-    }
-  /* Test whether the function works when started with a conversion state
-     in non-initial state.  This fails on HP-UX 11.11 and Solaris 10.  */
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      const char input[] = "B\303\274\303\237er";
-      mbstate_t state;
+int
+main ()
+{
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2))
-        if (!mbsinit (&state))
-          {
-            const char *src = input + 2;
-            if (mbsrtowcs (NULL, &src, 10, &state) != 4)
-              result |= 2;
-          }
-    }
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    int result = 0;
+    if (memmem (HAYSTACK, strlen (HAYSTACK), NEEDLE, strlen (NEEDLE)))
+      result |= 1;
+    /* Check for empty needle behavior.  */
     {
-      const char input[] = "<\306\374\313\334\270\354>";
-      mbstate_t state;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (NULL, input + 3, 1, &state) == (size_t)(-2))
-        if (!mbsinit (&state))
-          {
-            const char *src = input + 4;
-            if (mbsrtowcs (NULL, &src, 10, &state) != 3)
-              result |= 4;
-          }
+      const char *haystack = "AAA";
+      if (memmem (haystack, 3, NULL, 0) != haystack)
+        result |= 2;
     }
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      const char input[] = "B\250\271\201\060\211\070er";
-      mbstate_t state;
+    return result;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (NULL, input + 1, 1, &state) == (size_t)(-2))
-        if (!mbsinit (&state))
-          {
-            const char *src = input + 2;
-            if (mbsrtowcs (NULL, &src, 10, &state) != 4)
-              result |= 8;
-          }
-    }
-  return result;
+  ;
+  return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbsrtowcs_works=yes
+  gl_cv_func_memmem_works_always=yes
 else
-  gl_cv_func_mbsrtowcs_works=no
+  gl_cv_func_memmem_works_always=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-      fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbsrtowcs_works" >&5
-$as_echo "$gl_cv_func_mbsrtowcs_works" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_always" >&5
+$as_echo "$gl_cv_func_memmem_works_always" >&6; }
+    case "$gl_cv_func_memmem_works_always" in
+      *yes) ;;
+      *)
+        REPLACE_MEMMEM=1
+        ;;
+    esac
+  fi
+  :
+
+  if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS memmem.$ac_objext"
 
-      case "$gl_cv_func_mbsrtowcs_works" in
-        *yes) ;;
-        *) REPLACE_MBSRTOWCS=1 ;;
-      esac
-    fi
   fi
 
-  if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
 
 
 
 
+          GNULIB_MEMMEM=1
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs.$ac_objext"
 
+$as_echo "#define GNULIB_TEST_MEMMEM 1" >>confdefs.h
 
 
 
@@ -16221,311 +19580,361 @@ fi
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs-state.$ac_objext"
 
+  for ac_func in mempcpy
+do :
+  ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy"
+if test "x$ac_cv_func_mempcpy" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_MEMPCPY 1
+_ACEOF
 
-  :
+fi
+done
 
+  if test $ac_cv_func_mempcpy = no; then
+    HAVE_MEMPCPY=0
   fi
 
+  if test $HAVE_MEMPCPY = 0; then
 
 
 
 
-          GNULIB_MBSRTOWCS=1
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS mempcpy.$ac_objext"
 
-$as_echo "#define GNULIB_TEST_MBSRTOWCS 1" >>confdefs.h
 
+  :
 
+  fi
 
 
-  if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
 
 
 
+          GNULIB_MEMPCPY=1
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext"
+$as_echo "#define GNULIB_TEST_MEMPCPY 1" >>confdefs.h
 
 
-  for ac_header in bp-sym.h
+
+
+
+
+
+
+  if test $ac_cv_have_decl_memrchr = no; then
+    HAVE_DECL_MEMRCHR=0
+  fi
+
+  for ac_func in memrchr
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default"
-if test "x$ac_cv_header_bp_sym_h" = x""yes; then :
+  ac_fn_c_check_func "$LINENO" "memrchr" "ac_cv_func_memrchr"
+if test "x$ac_cv_func_memrchr" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define HAVE_BP_SYM_H 1
+#define HAVE_MEMRCHR 1
 _ACEOF
 
 fi
-
 done
 
 
+  if test $ac_cv_func_memrchr = no; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS memrchr.$ac_objext"
+
+    :
   fi
 
 
 
 
 
-          GNULIB_MEMCHR=1
+          GNULIB_MEMRCHR=1
 
 
 
 
 
-$as_echo "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h
+$as_echo "#define GNULIB_TEST_MEMRCHR 1" >>confdefs.h
 
 
 
 
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
 
-  if test $HAVE_DECL_MEMMEM = 1 && test $REPLACE_MEMMEM = 0; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memmem works in linear time" >&5
-$as_echo_n "checking whether memmem works in linear time... " >&6; }
-if test "${gl_cv_func_memmem_works_fast+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-                    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 9) || (__GLIBC__ > 2)) \
-     && !defined __UCLIBC__
-  Lucky user
- #endif
-#endif
-#ifdef __CYGWIN__
- #include <cygwin/version.h>
- #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 0)
-  Lucky user
- #endif
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky user" >/dev/null 2>&1; then :
-  gl_cv_func_memmem_works_fast="guessing yes"
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS msvc-inval.$ac_objext"
+
+  fi
+
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS msvc-nothrow.$ac_objext"
+
+  fi
+
+
+
+  case "$host_os" in
+    mingw* | pw*)
+      REPLACE_OPEN=1
+      ;;
+    *)
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5
+$as_echo_n "checking whether open recognizes a trailing slash... " >&6; }
+if test "${gl_cv_func_open_slash+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  gl_cv_func_memmem_works_fast="guessing no"
-fi
-rm -f conftest*
+  # Assume that if we have lstat, we can also check symlinks.
+          if test $ac_cv_func_lstat = yes; then
+            touch conftest.tmp
+            ln -s conftest.tmp conftest.lnk
+          fi
+          if test "$cross_compiling" = yes; then :
 
+             case "$host_os" in
+               freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
+                 gl_cv_func_open_slash="guessing no" ;;
+               *)
+                 gl_cv_func_open_slash="guessing yes" ;;
+             esac
 
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <signal.h> /* for signal */
-#include <string.h> /* for memmem */
-#include <stdlib.h> /* for malloc */
-#include <unistd.h> /* for alarm */
-static void quit (int sig) { _exit (sig + 128); }
-
-int
-main ()
+#include <fcntl.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+int main ()
 {
-
-    int result = 0;
-    size_t m = 1000000;
-    char *haystack = (char *) malloc (2 * m + 1);
-    char *needle = (char *) malloc (m + 1);
-    /* Failure to compile this test due to missing alarm is okay,
-       since all such platforms (mingw) also lack memmem.  */
-    signal (SIGALRM, quit);
-    alarm (5);
-    /* Check for quadratic performance.  */
-    if (haystack && needle)
-      {
-        memset (haystack, 'A', 2 * m);
-        haystack[2 * m] = 'B';
-        memset (needle, 'A', m);
-        needle[m] = 'B';
-        if (!memmem (haystack, 2 * m + 1, needle, m + 1))
-          result |= 1;
-      }
-    return result;
-
-  ;
-  return 0;
+  int result = 0;
+#if HAVE_LSTAT
+  if (open ("conftest.lnk/", O_RDONLY) != -1)
+    result |= 1;
+#endif
+  if (open ("conftest.sl/", O_CREAT, 0600) >= 0)
+    result |= 2;
+  return result;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_memmem_works_fast=yes
+  gl_cv_func_open_slash=yes
 else
-  gl_cv_func_memmem_works_fast=no
+  gl_cv_func_open_slash=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+          rm -f conftest.sl conftest.tmp conftest.lnk
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_fast" >&5
-$as_echo "$gl_cv_func_memmem_works_fast" >&6; }
-    case "$gl_cv_func_memmem_works_fast" in
-      *yes) ;;
-      *)
-        REPLACE_MEMMEM=1
-        ;;
-    esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_slash" >&5
+$as_echo "$gl_cv_func_open_slash" >&6; }
+      case "$gl_cv_func_open_slash" in
+        *no)
+
+$as_echo "#define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+          REPLACE_OPEN=1
+          ;;
+      esac
+      ;;
+  esac
+
+    if test $REPLACE_OPEN = 0; then
+
+
+
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
   fi
 
-  if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then
+      if test $HAVE_FCHDIR = 0; then
+        REPLACE_OPEN=1
+      fi
+    fi
 
 
 
+  if test $REPLACE_OPEN = 1; then
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS memmem.$ac_objext"
 
-  fi
 
 
+  gl_LIBOBJS="$gl_LIBOBJS open.$ac_objext"
 
 
-  for ac_func in memmem
-do :
-  ac_fn_c_check_func "$LINENO" "memmem" "ac_cv_func_memmem"
-if test "x$ac_cv_func_memmem" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_MEMMEM 1
-_ACEOF
 
-fi
-done
+  :
 
-  if test $ac_cv_func_memmem = yes; then
-    HAVE_MEMMEM=1
-  else
-    HAVE_MEMMEM=0
   fi
 
-  if test $ac_cv_have_decl_memmem = no; then
-    HAVE_DECL_MEMMEM=0
-  else
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memmem works" >&5
-$as_echo_n "checking whether memmem works... " >&6; }
-if test "${gl_cv_func_memmem_works_always+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-                                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#ifdef __GNU_LIBRARY__
- #include <features.h>
- #if ((__GLIBC__ == 2 && ((__GLIBC_MINOR > 0 && __GLIBC_MINOR__ < 9) \
-                          || __GLIBC_MINOR__ > 12)) \
-      || (__GLIBC__ > 2)) \
-     || defined __UCLIBC__
-  Lucky user
- #endif
-#elif defined __CYGWIN__
- #include <cygwin/version.h>
- #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7)
-  Lucky user
- #endif
-#else
-  Lucky user
-#endif
 
+
+
+          GNULIB_OPEN=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_OPEN 1" >>confdefs.h
+
+
+
+
+
+
+
+
+  case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
+  yes+*yes)
+    ;;
+  yes+*)
+    # Solaris 9 has *at functions, but uniformly mishandles trailing
+    # slash in all of them.
+    REPLACE_OPENAT=1
+    ;;
+  *)
+    HAVE_OPENAT=0
+    ;;
+  esac
+
+  if test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS openat.$ac_objext"
+
+
+
+  :
+
+  fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_OPENAT 1
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky user" >/dev/null 2>&1; then :
-  gl_cv_func_memmem_works_always="guessing yes"
-else
-  gl_cv_func_memmem_works_always="guessing no"
-fi
-rm -f conftest*
 
 
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <string.h> /* for memmem */
-#define P "_EF_BF_BD"
-#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P
-#define NEEDLE P P P P P
 
-int
-main ()
-{
 
-    int result = 0;
-    if (memmem (HAYSTACK, strlen (HAYSTACK), NEEDLE, strlen (NEEDLE)))
-      result |= 1;
-    /* Check for empty needle behavior.  */
-    {
-      const char *haystack = "AAA";
-      if (memmem (haystack, 3, NULL, 0) != haystack)
-        result |= 2;
-    }
-    return result;
 
-  ;
-  return 0;
-}
+          GNULIB_OPENAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_OPENAT 1" >>confdefs.h
+
+
+
+
+
+
+  for ac_func in opendir
+do :
+  ac_fn_c_check_func "$LINENO" "opendir" "ac_cv_func_opendir"
+if test "x$ac_cv_func_opendir" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_OPENDIR 1
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_memmem_works_always=yes
-else
-  gl_cv_func_memmem_works_always=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+
 fi
+done
 
+  if test $ac_cv_func_opendir = no; then
+    HAVE_OPENDIR=0
+  fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_memmem_works_always" >&5
-$as_echo "$gl_cv_func_memmem_works_always" >&6; }
-    case "$gl_cv_func_memmem_works_always" in
-      *yes) ;;
-      *)
-        REPLACE_MEMMEM=1
-        ;;
-    esac
+
+
+
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
   fi
-  :
 
-  if test $HAVE_MEMMEM = 0 || test $REPLACE_MEMMEM = 1; then
+    if test $HAVE_FCHDIR = 0; then
+      if test $HAVE_OPENDIR = 1; then
+        REPLACE_OPENDIR=1
+      fi
+    fi
 
+      case $host_os,$HAVE_OPENDIR in
+    os2*,1)
+      REPLACE_OPENDIR=1;;
+  esac
 
+  if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then
 
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS memmem.$ac_objext"
 
-  fi
 
+  gl_LIBOBJS="$gl_LIBOBJS opendir.$ac_objext"
 
+  fi
 
 
 
-          GNULIB_MEMMEM=1
 
 
+          GNULIB_OPENDIR=1
+
 
 
 
-$as_echo "#define GNULIB_TEST_MEMMEM 1" >>confdefs.h
 
+$as_echo "#define GNULIB_TEST_OPENDIR 1" >>confdefs.h
 
 
 
@@ -16582,6 +19991,51 @@ done
 
 
 
+  for ac_func in readdir
+do :
+  ac_fn_c_check_func "$LINENO" "readdir" "ac_cv_func_readdir"
+if test "x$ac_cv_func_readdir" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_READDIR 1
+_ACEOF
+
+fi
+done
+
+  if test $ac_cv_func_readdir = no; then
+    HAVE_READDIR=0
+  fi
+
+  if test $HAVE_READDIR = 0; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS readdir.$ac_objext"
+
+  fi
+
+
+
+
+
+          GNULIB_READDIR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_READDIR 1" >>confdefs.h
+
+
+
+
+
+
   if test $ac_cv_func_readlink = no; then
     HAVE_READLINK=0
   else
@@ -16703,6 +20157,44 @@ fi
 
 
 
+  if test $gl_cv_func_malloc_posix = yes; then
+
+$as_echo "#define HAVE_REALLOC_POSIX 1" >>confdefs.h
+
+  else
+    REPLACE_REALLOC=1
+  fi
+
+  if test $REPLACE_REALLOC = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext"
+
+  fi
+
+
+
+
+
+          GNULIB_REALLOC_POSIX=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_REALLOC_POSIX 1" >>confdefs.h
+
+
+
+
+
+
 
 
                 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on destination" >&5
@@ -17008,6 +20500,51 @@ fi
 
 
 
+  for ac_func in rewinddir
+do :
+  ac_fn_c_check_func "$LINENO" "rewinddir" "ac_cv_func_rewinddir"
+if test "x$ac_cv_func_rewinddir" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_REWINDDIR 1
+_ACEOF
+
+fi
+done
+
+  if test $ac_cv_func_rewinddir = no; then
+    HAVE_REWINDDIR=0
+  fi
+
+  if test $HAVE_REWINDDIR = 0; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS rewinddir.$ac_objext"
+
+  fi
+
+
+
+
+
+          GNULIB_REWINDDIR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_REWINDDIR 1" >>confdefs.h
+
+
+
+
+
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rmdir works" >&5
 $as_echo_n "checking whether rmdir works... " >&6; }
 if test "${gl_cv_func_rmdir_works+set}" = set; then :
@@ -17070,7 +20607,106 @@ fi
       ;;
   esac
 
-  if test $REPLACE_RMDIR = 1; then
+  if test $REPLACE_RMDIR = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS rmdir.$ac_objext"
+
+  fi
+
+
+
+
+
+          GNULIB_RMDIR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_RMDIR 1" >>confdefs.h
+
+
+
+
+
+
+
+
+     if test $ac_cv_func_setenv = no; then
+    HAVE_SETENV=0
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setenv validates arguments" >&5
+$as_echo_n "checking whether setenv validates arguments... " >&6; }
+if test "${gl_cv_func_setenv_works+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_setenv_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_setenv_works="guessing no" ;;
+       esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+       #include <stdlib.h>
+       #include <errno.h>
+       #include <string.h>
+
+int
+main ()
+{
+
+       int result = 0;
+       {
+         if (setenv ("", "", 0) != -1)
+           result |= 1;
+         else if (errno != EINVAL)
+           result |= 2;
+       }
+       {
+         if (setenv ("a", "=", 1) != 0)
+           result |= 4;
+         else if (strcmp (getenv ("a"), "=") != 0)
+           result |= 8;
+       }
+       return result;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_setenv_works=yes
+else
+  gl_cv_func_setenv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setenv_works" >&5
+$as_echo "$gl_cv_func_setenv_works" >&6; }
+    case "$gl_cv_func_setenv_works" in
+      *yes) ;;
+      *)
+        REPLACE_SETENV=1
+        ;;
+    esac
+  fi
+
+  if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
 
 
 
@@ -17079,7 +20715,7 @@ fi
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS rmdir.$ac_objext"
+  gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext"
 
   fi
 
@@ -17087,13 +20723,13 @@ fi
 
 
 
-          GNULIB_RMDIR=1
+          GNULIB_SETENV=1
 
 
 
 
 
-$as_echo "#define GNULIB_TEST_RMDIR 1" >>confdefs.h
+$as_echo "#define GNULIB_TEST_SETENV 1" >>confdefs.h
 
 
 
@@ -17999,6 +21635,179 @@ fi
 
 
 
+  if test $ac_cv_func_strdup = yes; then
+    if test $gl_cv_func_malloc_posix != yes; then
+      REPLACE_STRDUP=1
+    fi
+  fi
+
+  if test $ac_cv_have_decl_strdup = no; then
+    HAVE_DECL_STRDUP=0
+  fi
+
+  if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext"
+
+    :
+  fi
+
+
+
+
+
+          GNULIB_STRDUP=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_STRDUP 1" >>confdefs.h
+
+
+
+
+
+
+
+
+  if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5
+$as_echo_n "checking for working strerror function... " >&6; }
+if test "${gl_cv_func_working_strerror+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_working_strerror="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_working_strerror="guessing no" ;;
+         esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+
+int
+main ()
+{
+if (!*strerror (-2)) return 1;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_working_strerror=yes
+else
+  gl_cv_func_working_strerror=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5
+$as_echo "$gl_cv_func_working_strerror" >&6; }
+    case "$gl_cv_func_working_strerror" in
+      *yes) ;;
+      *)
+                        REPLACE_STRERROR=1
+        ;;
+    esac
+
+  else
+            REPLACE_STRERROR=1
+  fi
+
+  if test $REPLACE_STRERROR = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext"
+
+  fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_STRERROR 1
+_ACEOF
+
+
+
+
+
+
+
+          GNULIB_STRERROR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_STRERROR 1" >>confdefs.h
+
+
+
+
+
+  if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS strerror-override.$ac_objext"
+
+
+
+
+
+  if test $ac_cv_header_sys_socket_h != yes; then
+                    for ac_header in winsock2.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_WINSOCK2_H 1
+_ACEOF
+
+fi
+
+done
+
+  fi
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    HAVE_WINSOCK2_H=1
+    UNISTD_H_HAVE_WINSOCK2_H=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+  else
+    HAVE_WINSOCK2_H=0
+  fi
+
+
+  fi
+
+
+
+
 
   if test $REPLACE_STRSTR = 0; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strstr works in linear time" >&5
@@ -18645,6 +22454,167 @@ fi
 
 
 
+  if test $ac_cv_have_decl_unsetenv = no; then
+    HAVE_DECL_UNSETENV=0
+  fi
+  for ac_func in unsetenv
+do :
+  ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv"
+if test "x$ac_cv_func_unsetenv" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_UNSETENV 1
+_ACEOF
+
+fi
+done
+
+  if test $ac_cv_func_unsetenv = no; then
+    HAVE_UNSETENV=0
+  else
+    HAVE_UNSETENV=1
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsetenv() return type" >&5
+$as_echo_n "checking for unsetenv() return type... " >&6; }
+if test "${gt_cv_func_unsetenv_ret+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#undef _BSD
+#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 <stdlib.h> */
+#include <stdlib.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+int unsetenv (const char *name);
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_func_unsetenv_ret='int'
+else
+  gt_cv_func_unsetenv_ret='void'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_unsetenv_ret" >&5
+$as_echo "$gt_cv_func_unsetenv_ret" >&6; }
+    if test $gt_cv_func_unsetenv_ret = 'void'; then
+
+$as_echo "#define VOID_UNSETENV 1" >>confdefs.h
+
+      REPLACE_UNSETENV=1
+    fi
+
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unsetenv obeys POSIX" >&5
+$as_echo_n "checking whether unsetenv obeys POSIX... " >&6; }
+if test "${gl_cv_func_unsetenv_works+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_unsetenv_works="guessing no" ;;
+       esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+       #include <stdlib.h>
+       #include <errno.h>
+       extern char **environ;
+
+int
+main ()
+{
+
+       char entry1[] = "a=1";
+       char entry2[] = "b=2";
+       char *env[] = { entry1, entry2, NULL };
+       if (putenv ((char *) "a=1")) return 1;
+       if (putenv (entry2)) return 2;
+       entry2[0] = 'a';
+       unsetenv ("a");
+       if (getenv ("a")) return 3;
+       if (!unsetenv ("") || errno != EINVAL) return 4;
+       entry2[0] = 'b';
+       environ = env;
+       if (!getenv ("a")) return 5;
+       entry2[0] = 'a';
+       unsetenv ("a");
+       if (getenv ("a")) return 6;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_unsetenv_works=yes
+else
+  gl_cv_func_unsetenv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unsetenv_works" >&5
+$as_echo "$gl_cv_func_unsetenv_works" >&6; }
+    case "$gl_cv_func_unsetenv_works" in
+      *yes) ;;
+      *)
+        REPLACE_UNSETENV=1
+        ;;
+    esac
+  fi
+
+  if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext"
+
+
+
+
+
+  fi
+
+
+
+
+
+          GNULIB_UNSETENV=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_UNSETENV 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
 
 
 
@@ -20141,6 +24111,10 @@ if test -z "${GL_GENERATE_FNMATCH_H_TRUE
   as_fn_error "conditional \"GL_GENERATE_FNMATCH_H\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${GL_GENERATE_GLOB_H_TRUE}" && test -z "${GL_GENERATE_GLOB_H_FALSE}"; then
+  as_fn_error "conditional \"GL_GENERATE_GLOB_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then
   as_fn_error "conditional \"GL_GENERATE_LIMITS_H\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/configure.ac ./gdb/gnulib/configure.ac
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/configure.ac	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gnulib/configure.ac	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 dnl Autoconf configure script for GDB, the GNU debugger.
-dnl Copyright (C) 1995-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 1995-2018 Free Software Foundation, Inc.
 dnl
 dnl This file is part of GDB.
 dnl
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/assure.h ./gdb/gnulib/import/assure.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/assure.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/assure.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,37 @@
+/* Run-time assert-like macros.
+
+   Copyright (C) 2014-2016 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/>.  */
+
+/* Written by Paul Eggert.  */
+
+#ifndef _GL_ASSURE_H
+#define _GL_ASSURE_H
+
+#include <assert.h>
+
+/* Check E's value at runtime, and report an error and abort if not.
+   However, do nothng if NDEBUG is defined.
+
+   Unlike standard 'assert', this macro always compiles E even when NDEBUG
+   is defined, so as to catch typos and avoid some GCC warnings.  */
+
+#ifdef NDEBUG
+# define assure(E) ((void) (0 && (E)))
+#else
+# define assure(E) assert (E)
+#endif
+
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/at-func.c ./gdb/gnulib/import/at-func.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/at-func.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/at-func.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,146 @@
+/* Define at-style functions like fstatat, unlinkat, fchownat, etc.
+   Copyright (C) 2006, 2009-2016 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/>.  */
+
+/* written by Jim Meyering */
+
+#include "dosname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
+
+#ifdef GNULIB_SUPPORT_ONLY_AT_FDCWD
+# include <errno.h>
+# ifndef ENOTSUP
+#  define ENOTSUP EINVAL
+# endif
+#else
+# include "openat.h"
+# include "openat-priv.h"
+# include "save-cwd.h"
+#endif
+
+#ifdef AT_FUNC_USE_F1_COND
+# define CALL_FUNC(F)                           \
+  (flag == AT_FUNC_USE_F1_COND                  \
+    ? AT_FUNC_F1 (F AT_FUNC_POST_FILE_ARGS)     \
+    : AT_FUNC_F2 (F AT_FUNC_POST_FILE_ARGS))
+# define VALIDATE_FLAG(F)                       \
+  if (flag & ~AT_FUNC_USE_F1_COND)              \
+    {                                           \
+      errno = EINVAL;                           \
+      return FUNC_FAIL;                         \
+    }
+#else
+# define CALL_FUNC(F) (AT_FUNC_F1 (F AT_FUNC_POST_FILE_ARGS))
+# define VALIDATE_FLAG(F) /* empty */
+#endif
+
+#ifdef AT_FUNC_RESULT
+# define FUNC_RESULT AT_FUNC_RESULT
+#else
+# define FUNC_RESULT int
+#endif
+
+#ifdef AT_FUNC_FAIL
+# define FUNC_FAIL AT_FUNC_FAIL
+#else
+# define FUNC_FAIL -1
+#endif
+
+/* Call AT_FUNC_F1 to operate on FILE, which is in the directory
+   open on descriptor FD.  If AT_FUNC_USE_F1_COND is defined to a value,
+   AT_FUNC_POST_FILE_PARAM_DECLS must include a parameter named flag;
+   call AT_FUNC_F2 if FLAG is 0 or fail if FLAG contains more bits than
+   AT_FUNC_USE_F1_COND.  Return int and fail with -1 unless AT_FUNC_RESULT
+   or AT_FUNC_FAIL are defined.  If possible, do it without changing the
+   working directory.  Otherwise, resort to using save_cwd/fchdir,
+   then AT_FUNC_F?/restore_cwd.  If either the save_cwd or the restore_cwd
+   fails, then give a diagnostic and exit nonzero.  */
+FUNC_RESULT
+AT_FUNC_NAME (int fd, char const *file AT_FUNC_POST_FILE_PARAM_DECLS)
+{
+  VALIDATE_FLAG (flag);
+
+  if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file))
+    return CALL_FUNC (file);
+
+#ifdef GNULIB_SUPPORT_ONLY_AT_FDCWD
+  errno = ENOTSUP;
+  return FUNC_FAIL;
+#else
+  {
+  /* Be careful to choose names unlikely to conflict with
+     AT_FUNC_POST_FILE_PARAM_DECLS.  */
+  struct saved_cwd saved_cwd;
+  int saved_errno;
+  FUNC_RESULT err;
+
+  {
+    char proc_buf[OPENAT_BUFFER_SIZE];
+    char *proc_file = openat_proc_name (proc_buf, fd, file);
+    if (proc_file)
+      {
+        FUNC_RESULT proc_result = CALL_FUNC (proc_file);
+        int proc_errno = errno;
+        if (proc_file != proc_buf)
+          free (proc_file);
+        /* If the syscall succeeds, or if it fails with an unexpected
+           errno value, then return right away.  Otherwise, fall through
+           and resort to using save_cwd/restore_cwd.  */
+        if (FUNC_FAIL != proc_result)
+          return proc_result;
+        if (! EXPECTED_ERRNO (proc_errno))
+          {
+            errno = proc_errno;
+            return proc_result;
+          }
+      }
+  }
+
+  if (save_cwd (&saved_cwd) != 0)
+    openat_save_fail (errno);
+  if (0 <= fd && fd == saved_cwd.desc)
+    {
+      /* If saving the working directory collides with the user's
+         requested fd, then the user's fd must have been closed to
+         begin with.  */
+      free_cwd (&saved_cwd);
+      errno = EBADF;
+      return FUNC_FAIL;
+    }
+
+  if (fchdir (fd) != 0)
+    {
+      saved_errno = errno;
+      free_cwd (&saved_cwd);
+      errno = saved_errno;
+      return FUNC_FAIL;
+    }
+
+  err = CALL_FUNC (file);
+  saved_errno = (err == FUNC_FAIL ? errno : 0);
+
+  if (restore_cwd (&saved_cwd) != 0)
+    openat_restore_fail (errno);
+
+  free_cwd (&saved_cwd);
+
+  if (saved_errno)
+    errno = saved_errno;
+  return err;
+  }
+#endif
+}
+#undef CALL_FUNC
+#undef FUNC_RESULT
+#undef FUNC_FAIL
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/chdir-long.c ./gdb/gnulib/import/chdir-long.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/chdir-long.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/chdir-long.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,264 @@
+/* provide a chdir function that tries not to fail due to ENAMETOOLONG
+   Copyright (C) 2004-2016 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/>.  */
+
+/* written by Jim Meyering */
+
+#include <config.h>
+
+#include "chdir-long.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
+#include <stdio.h>
+
+#include "assure.h"
+
+#ifndef PATH_MAX
+# error "compile this file only if your system defines PATH_MAX"
+#endif
+
+/* The results of openat() in this file are not leaked to any
+   single-threaded code that could use stdio.
+   FIXME - if the kernel ever adds support for multi-thread safety for
+   avoiding standard fds, then we should use openat_safer.  */
+
+struct cd_buf
+{
+  int fd;
+};
+
+static void
+cdb_init (struct cd_buf *cdb)
+{
+  cdb->fd = AT_FDCWD;
+}
+
+static int
+cdb_fchdir (struct cd_buf const *cdb)
+{
+  return fchdir (cdb->fd);
+}
+
+static void
+cdb_free (struct cd_buf const *cdb)
+{
+  if (0 <= cdb->fd)
+    {
+      bool close_fail = close (cdb->fd);
+      assure (! close_fail);
+    }
+}
+
+/* Given a file descriptor of an open directory (or AT_FDCWD), CDB->fd,
+   try to open the CDB->fd-relative directory, DIR.  If the open succeeds,
+   update CDB->fd with the resulting descriptor, close the incoming file
+   descriptor, and return zero.  Upon failure, return -1 and set errno.  */
+static int
+cdb_advance_fd (struct cd_buf *cdb, char const *dir)
+{
+  int new_fd = openat (cdb->fd, dir,
+                       O_SEARCH | O_DIRECTORY | O_NOCTTY | O_NONBLOCK);
+  if (new_fd < 0)
+    return -1;
+
+  cdb_free (cdb);
+  cdb->fd = new_fd;
+
+  return 0;
+}
+
+/* Return a pointer to the first non-slash in S.  */
+static char * _GL_ATTRIBUTE_PURE
+find_non_slash (char const *s)
+{
+  size_t n_slash = strspn (s, "/");
+  return (char *) s + n_slash;
+}
+
+/* This is a function much like chdir, but without the PATH_MAX limitation
+   on the length of the directory name.  A significant difference is that
+   it must be able to modify (albeit only temporarily) the directory
+   name.  It handles an arbitrarily long directory name by operating
+   on manageable portions of the name.  On systems without the openat
+   syscall, this means changing the working directory to more and more
+   "distant" points along the long directory name and then restoring
+   the working directory.  If any of those attempts to save or restore
+   the working directory fails, this function exits nonzero.
+
+   Note that this function may still fail with errno == ENAMETOOLONG, but
+   only if the specified directory name contains a component that is long
+   enough to provoke such a failure all by itself (e.g. if the component
+   has length PATH_MAX or greater on systems that define PATH_MAX).  */
+
+int
+chdir_long (char *dir)
+{
+  int e = chdir (dir);
+  if (e == 0 || errno != ENAMETOOLONG)
+    return e;
+
+  {
+    size_t len = strlen (dir);
+    char *dir_end = dir + len;
+    struct cd_buf cdb;
+    size_t n_leading_slash;
+
+    cdb_init (&cdb);
+
+    /* If DIR is the empty string, then the chdir above
+       must have failed and set errno to ENOENT.  */
+    assure (0 < len);
+    assure (PATH_MAX <= len);
+
+    /* Count leading slashes.  */
+    n_leading_slash = strspn (dir, "/");
+
+    /* Handle any leading slashes as well as any name that matches
+       the regular expression, m!^//hostname[/]*! .  Handling this
+       prefix separately usually results in a single additional
+       cdb_advance_fd call, but it's worthwhile, since it makes the
+       code in the following loop cleaner.  */
+    if (n_leading_slash == 2)
+      {
+        int err;
+        /* Find next slash.
+           We already know that dir[2] is neither a slash nor '\0'.  */
+        char *slash = memchr (dir + 3, '/', dir_end - (dir + 3));
+        if (slash == NULL)
+          {
+            errno = ENAMETOOLONG;
+            return -1;
+          }
+        *slash = '\0';
+        err = cdb_advance_fd (&cdb, dir);
+        *slash = '/';
+        if (err != 0)
+          goto Fail;
+        dir = find_non_slash (slash + 1);
+      }
+    else if (n_leading_slash)
+      {
+        if (cdb_advance_fd (&cdb, "/") != 0)
+          goto Fail;
+        dir += n_leading_slash;
+      }
+
+    assure (*dir != '/');
+    assure (dir <= dir_end);
+
+    while (PATH_MAX <= dir_end - dir)
+      {
+        int err;
+        /* Find a slash that is PATH_MAX or fewer bytes away from dir.
+           I.e. see if there is a slash that will give us a name of
+           length PATH_MAX-1 or less.  */
+        char *slash = memrchr (dir, '/', PATH_MAX);
+        if (slash == NULL)
+          {
+            errno = ENAMETOOLONG;
+            return -1;
+          }
+
+        *slash = '\0';
+        assure (slash - dir < PATH_MAX);
+        err = cdb_advance_fd (&cdb, dir);
+        *slash = '/';
+        if (err != 0)
+          goto Fail;
+
+        dir = find_non_slash (slash + 1);
+      }
+
+    if (dir < dir_end)
+      {
+        if (cdb_advance_fd (&cdb, dir) != 0)
+          goto Fail;
+      }
+
+    if (cdb_fchdir (&cdb) != 0)
+      goto Fail;
+
+    cdb_free (&cdb);
+    return 0;
+
+   Fail:
+    {
+      int saved_errno = errno;
+      cdb_free (&cdb);
+      errno = saved_errno;
+      return -1;
+    }
+  }
+}
+
+#if TEST_CHDIR
+
+# include "closeout.h"
+# include "error.h"
+
+int
+main (int argc, char *argv[])
+{
+  char *line = NULL;
+  size_t n = 0;
+  int len;
+
+  atexit (close_stdout);
+
+  len = getline (&line, &n, stdin);
+  if (len < 0)
+    {
+      int saved_errno = errno;
+      if (feof (stdin))
+        exit (0);
+
+      error (EXIT_FAILURE, saved_errno,
+             "reading standard input");
+    }
+  else if (len == 0)
+    exit (0);
+
+  if (line[len-1] == '\n')
+    line[len-1] = '\0';
+
+  if (chdir_long (line) != 0)
+    error (EXIT_FAILURE, errno,
+           "chdir_long failed: %s", line);
+
+  if (argc <= 1)
+    {
+      /* Using 'pwd' here makes sense only if it is a robust implementation,
+         like the one in coreutils after the 2004-04-19 changes.  */
+      char const *cmd = "pwd";
+      execlp (cmd, (char *) NULL);
+      error (EXIT_FAILURE, errno, "%s", cmd);
+    }
+
+  fclose (stdin);
+  fclose (stderr);
+
+  exit (EXIT_SUCCESS);
+}
+#endif
+
+/*
+Local Variables:
+compile-command: "gcc -DTEST_CHDIR=1 -g -O -W -Wall chdir-long.c libcoreutils.a"
+End:
+*/
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/chdir-long.h ./gdb/gnulib/import/chdir-long.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/chdir-long.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/chdir-long.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,30 @@
+/* provide a chdir function that tries not to fail due to ENAMETOOLONG
+   Copyright (C) 2004-2005, 2009-2016 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/>.  */
+
+/* Written by Jim Meyering.  */
+
+#include <unistd.h>
+#include <limits.h>
+
+#include "pathmax.h"
+
+/* On systems without PATH_MAX, presume that chdir accepts
+   arbitrarily long directory names.  */
+#ifndef PATH_MAX
+# define chdir_long(Dir) chdir (Dir)
+#else
+int chdir_long (char *dir);
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/cloexec.c ./gdb/gnulib/import/cloexec.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/cloexec.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/cloexec.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,83 @@
+/* closexec.c - set or clear the close-on-exec descriptor flag
+
+   Copyright (C) 1991, 2004-2006, 2009-2016 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/>.
+
+   The code is taken from glibc/manual/llio.texi  */
+
+#include <config.h>
+
+#include "cloexec.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true,
+   or clear the flag if VALUE is false.
+   Return 0 on success, or -1 on error with 'errno' set.
+
+   Note that on MingW, this function does NOT protect DESC from being
+   inherited into spawned children.  Instead, either use dup_cloexec
+   followed by closing the original DESC, or use interfaces such as
+   open or pipe2 that accept flags like O_CLOEXEC to create DESC
+   non-inheritable in the first place.  */
+
+int
+set_cloexec_flag (int desc, bool value)
+{
+#ifdef F_SETFD
+
+  int flags = fcntl (desc, F_GETFD, 0);
+
+  if (0 <= flags)
+    {
+      int newflags = (value ? flags | FD_CLOEXEC : flags & ~FD_CLOEXEC);
+
+      if (flags == newflags
+          || fcntl (desc, F_SETFD, newflags) != -1)
+        return 0;
+    }
+
+  return -1;
+
+#else /* !F_SETFD */
+
+  /* Use dup2 to reject invalid file descriptors; the cloexec flag
+     will be unaffected.  */
+  if (desc < 0)
+    {
+      errno = EBADF;
+      return -1;
+    }
+  if (dup2 (desc, desc) < 0)
+    /* errno is EBADF here.  */
+    return -1;
+
+  /* There is nothing we can do on this kind of platform.  Punt.  */
+  return 0;
+#endif /* !F_SETFD */
+}
+
+
+/* Duplicates a file handle FD, while marking the copy to be closed
+   prior to exec or spawn.  Returns -1 and sets errno if FD could not
+   be duplicated.  */
+
+int
+dup_cloexec (int fd)
+{
+  return fcntl (fd, F_DUPFD_CLOEXEC, 0);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/cloexec.h ./gdb/gnulib/import/cloexec.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/cloexec.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/cloexec.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,38 @@
+/* closexec.c - set or clear the close-on-exec descriptor flag
+
+   Copyright (C) 2004, 2009-2016 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/>.
+
+*/
+
+#include <stdbool.h>
+
+/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true,
+   or clear the flag if VALUE is false.
+   Return 0 on success, or -1 on error with 'errno' set.
+
+   Note that on MingW, this function does NOT protect DESC from being
+   inherited into spawned children.  Instead, either use dup_cloexec
+   followed by closing the original DESC, or use interfaces such as
+   open or pipe2 that accept flags like O_CLOEXEC to create DESC
+   non-inheritable in the first place.  */
+
+int set_cloexec_flag (int desc, bool value);
+
+/* Duplicates a file handle FD, while marking the copy to be closed
+   prior to exec or spawn.  Returns -1 and sets errno if FD could not
+   be duplicated.  */
+
+int dup_cloexec (int fd);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/close.c ./gdb/gnulib/import/close.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/close.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/close.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,69 @@
+/* close replacement.
+   Copyright (C) 2008-2016 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/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <unistd.h>
+
+#include <errno.h>
+
+#include "fd-hook.h"
+#include "msvc-inval.h"
+
+#undef close
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static int
+close_nothrow (int fd)
+{
+  int result;
+
+  TRY_MSVC_INVAL
+    {
+      result = close (fd);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = -1;
+      errno = EBADF;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+#else
+# define close_nothrow close
+#endif
+
+/* Override close() to call into other gnulib modules.  */
+
+int
+rpl_close (int fd)
+{
+#if WINDOWS_SOCKETS
+  int retval = execute_all_close_hooks (close_nothrow, fd);
+#else
+  int retval = close_nothrow (fd);
+#endif
+
+#if REPLACE_FCHDIR
+  if (retval >= 0)
+    _gl_unregister_fd (fd);
+#endif
+
+  return retval;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/closedir.c ./gdb/gnulib/import/closedir.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/closedir.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/closedir.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,71 @@
+/* Stop reading the entries of a directory.
+   Copyright (C) 2006-2016 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/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <dirent.h>
+
+#if REPLACE_FCHDIR
+# include <unistd.h>
+#endif
+
+#if HAVE_CLOSEDIR
+
+/* Override closedir(), to keep track of the open file descriptors.
+   Needed because there is a function dirfd().  */
+
+#else
+
+# include <stdlib.h>
+
+# include "dirent-private.h"
+
+#endif
+
+int
+closedir (DIR *dirp)
+{
+# if REPLACE_FCHDIR || REPLACE_DIRFD
+  int fd = dirfd (dirp);
+# endif
+  int retval;
+
+#if HAVE_CLOSEDIR
+# undef closedir
+
+  retval = closedir (dirp);
+
+# ifdef __KLIBC__
+  if (!retval)
+    _gl_unregister_dirp_fd (fd);
+# endif
+#else
+
+  if (dirp->current != INVALID_HANDLE_VALUE)
+    FindClose (dirp->current);
+  free (dirp);
+
+  retval = 0;
+
+#endif
+
+#if REPLACE_FCHDIR
+  if (retval >= 0)
+    _gl_unregister_fd (fd);
+#endif
+  return retval;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/dirent-private.h ./gdb/gnulib/import/dirent-private.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/dirent-private.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/dirent-private.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,40 @@
+/* Private details of the DIR type.
+   Copyright (C) 2011-2016 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/>.  */
+
+#ifndef _DIRENT_PRIVATE_H
+#define _DIRENT_PRIVATE_H 1
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+struct gl_directory
+{
+  /* Status, or error code to produce in next readdir() call.
+     -2 means the end of the directory is already reached,
+     -1 means the entry was already filled by FindFirstFile,
+     0 means the entry needs to be filled using FindNextFile.
+     A positive value is an error code.  */
+  int status;
+  /* Handle, reading the directory, at current position.  */
+  HANDLE current;
+  /* Found directory entry.  */
+  WIN32_FIND_DATA entry;
+  /* Argument to pass to FindFirstFile.  It consists of the absolutized
+     directory name, followed by a directory separator and the wildcards.  */
+  char dir_name_mask[1];
+};
+
+#endif /* _DIRENT_PRIVATE_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/dup2.c ./gdb/gnulib/import/dup2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/dup2.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/dup2.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,215 @@
+/* Duplicate an open file descriptor to a specified file descriptor.
+
+   Copyright (C) 1999, 2004-2007, 2009-2016 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/>.  */
+
+/* written by Paul Eggert */
+
+#include <config.h>
+
+/* Specification.  */
+#include <unistd.h>
+
+#include <errno.h>
+#include <fcntl.h>
+
+#if HAVE_DUP2
+
+# undef dup2
+
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+/* Get declarations of the native Windows API functions.  */
+#  define WIN32_LEAN_AND_MEAN
+#  include <windows.h>
+
+#  include "msvc-inval.h"
+
+/* Get _get_osfhandle.  */
+#  include "msvc-nothrow.h"
+
+static int
+ms_windows_dup2 (int fd, int desired_fd)
+{
+  int result;
+
+  /* If fd is closed, mingw hangs on dup2 (fd, fd).  If fd is open,
+     dup2 (fd, fd) returns 0, but all further attempts to use fd in
+     future dup2 calls will hang.  */
+  if (fd == desired_fd)
+    {
+      if ((HANDLE) _get_osfhandle (fd) == INVALID_HANDLE_VALUE)
+        {
+          errno = EBADF;
+          return -1;
+        }
+      return fd;
+    }
+
+  /* Wine 1.0.1 return 0 when desired_fd is negative but not -1:
+     http://bugs.winehq.org/show_bug.cgi?id=21289 */
+  if (desired_fd < 0)
+    {
+      errno = EBADF;
+      return -1;
+    }
+
+  TRY_MSVC_INVAL
+    {
+      result = dup2 (fd, desired_fd);
+    }
+  CATCH_MSVC_INVAL
+    {
+      errno = EBADF;
+      result = -1;
+    }
+  DONE_MSVC_INVAL;
+
+  if (result == 0)
+    result = desired_fd;
+
+  return result;
+}
+
+#  define dup2 ms_windows_dup2
+
+# elif defined __KLIBC__
+
+#  include <InnoTekLIBC/backend.h>
+
+static int
+klibc_dup2dirfd (int fd, int desired_fd)
+{
+  int tempfd;
+  int dupfd;
+
+  tempfd = open ("NUL", O_RDONLY);
+  if (tempfd == -1)
+    return -1;
+
+  if (tempfd == desired_fd)
+    {
+      close (tempfd);
+
+      char path[_MAX_PATH];
+      if (__libc_Back_ioFHToPath (fd, path, sizeof (path)))
+        return -1;
+
+      return open(path, O_RDONLY);
+    }
+
+  dupfd = klibc_dup2dirfd (fd, desired_fd);
+
+  close (tempfd);
+
+  return dupfd;
+}
+
+static int
+klibc_dup2 (int fd, int desired_fd)
+{
+  int dupfd;
+  struct stat sbuf;
+
+  dupfd = dup2 (fd, desired_fd);
+  if (dupfd == -1 && errno == ENOTSUP \
+      && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode))
+    {
+      close (desired_fd);
+
+      return klibc_dup2dirfd (fd, desired_fd);
+    }
+
+  return dupfd;
+}
+
+#  define dup2 klibc_dup2
+# endif
+
+int
+rpl_dup2 (int fd, int desired_fd)
+{
+  int result;
+
+# ifdef F_GETFL
+  /* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF.
+     On Cygwin 1.5.x, dup2 (1, 1) returns 0.
+     On Cygwin 1.7.17, dup2 (1, -1) dumps core.
+     On Cygwin 1.7.25, dup2 (1, 256) can dump core.
+     On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC.  */
+#  if HAVE_SETDTABLESIZE
+  setdtablesize (desired_fd + 1);
+#  endif
+  if (desired_fd < 0)
+    fd = desired_fd;
+  if (fd == desired_fd)
+    return fcntl (fd, F_GETFL) == -1 ? -1 : fd;
+# endif
+
+  result = dup2 (fd, desired_fd);
+
+  /* Correct an errno value on FreeBSD 6.1 and Cygwin 1.5.x.  */
+  if (result == -1 && errno == EMFILE)
+    errno = EBADF;
+# if REPLACE_FCHDIR
+  if (fd != desired_fd && result != -1)
+    result = _gl_register_dup (fd, result);
+# endif
+  return result;
+}
+
+#else /* !HAVE_DUP2 */
+
+/* On older platforms, dup2 did not exist.  */
+
+# ifndef F_DUPFD
+static int
+dupfd (int fd, int desired_fd)
+{
+  int duplicated_fd = dup (fd);
+  if (duplicated_fd < 0 || duplicated_fd == desired_fd)
+    return duplicated_fd;
+  else
+    {
+      int r = dupfd (fd, desired_fd);
+      int e = errno;
+      close (duplicated_fd);
+      errno = e;
+      return r;
+    }
+}
+# endif
+
+int
+dup2 (int fd, int desired_fd)
+{
+  int result = fcntl (fd, F_GETFL) < 0 ? -1 : fd;
+  if (result == -1 || fd == desired_fd)
+    return result;
+  close (desired_fd);
+# ifdef F_DUPFD
+  result = fcntl (fd, F_DUPFD, desired_fd);
+#  if REPLACE_FCHDIR
+  if (0 <= result)
+    result = _gl_register_dup (fd, result);
+#  endif
+# else
+  result = dupfd (fd, desired_fd);
+# endif
+  if (result == -1 && (errno == EMFILE || errno == EINVAL))
+    errno = EBADF;
+  return result;
+}
+#endif /* !HAVE_DUP2 */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/dup.c ./gdb/gnulib/import/dup.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/dup.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/dup.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,86 @@
+/* Duplicate an open file descriptor.
+
+   Copyright (C) 2011-2016 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/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <unistd.h>
+
+#include <errno.h>
+
+#include "msvc-inval.h"
+
+#undef dup
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static int
+dup_nothrow (int fd)
+{
+  int result;
+
+  TRY_MSVC_INVAL
+    {
+      result = dup (fd);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = -1;
+      errno = EBADF;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+#elif defined __KLIBC__
+# include <fcntl.h>
+# include <sys/stat.h>
+
+# include <InnoTekLIBC/backend.h>
+
+static int
+dup_nothrow (int fd)
+{
+  int dupfd;
+  struct stat sbuf;
+
+  dupfd = dup (fd);
+  if (dupfd == -1 && errno == ENOTSUP \
+      && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode))
+    {
+      char path[_MAX_PATH];
+
+      /* Get a path from fd */
+      if (!__libc_Back_ioFHToPath (fd, path, sizeof (path)))
+        dupfd = open (path, O_RDONLY);
+    }
+
+  return dupfd;
+}
+#else
+# define dup_nothrow dup
+#endif
+
+int
+rpl_dup (int fd)
+{
+  int result = dup_nothrow (fd);
+#if REPLACE_FCHDIR
+  if (result >= 0)
+    result = _gl_register_dup (fd, result);
+#endif
+  return result;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/dup-safer.c ./gdb/gnulib/import/dup-safer.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/dup-safer.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/dup-safer.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,34 @@
+/* Invoke dup, but avoid some glitches.
+
+   Copyright (C) 2001, 2004-2006, 2009-2016 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/>.  */
+
+/* Written by Paul Eggert.  */
+
+#include <config.h>
+
+#include "unistd-safer.h"
+
+#include <fcntl.h>
+#include <unistd.h>
+
+/* Like dup, but do not return STDIN_FILENO, STDOUT_FILENO, or
+   STDERR_FILENO.  */
+
+int
+dup_safer (int fd)
+{
+  return fcntl (fd, F_DUPFD, STDERR_FILENO + 1);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/error.c ./gdb/gnulib/import/error.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/error.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/error.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,406 @@
+/* Error handler for noninteractive utilities
+   Copyright (C) 1990-1998, 2000-2007, 2009-2016 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by David MacKenzie <djm@gnu.ai.mit.edu>.  */
+
+#if !_LIBC
+# include <config.h>
+#endif
+
+#include "error.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if !_LIBC && ENABLE_NLS
+# include "gettext.h"
+# define _(msgid) gettext (msgid)
+#endif
+
+#ifdef _LIBC
+# include <libintl.h>
+# include <stdbool.h>
+# include <stdint.h>
+# include <wchar.h>
+# define mbsrtowcs __mbsrtowcs
+# define USE_UNLOCKED_IO 0
+# define _GL_ATTRIBUTE_FORMAT_PRINTF(a, b)
+# define _GL_ARG_NONNULL(a)
+#else
+# include "getprogname.h"
+#endif
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
+#ifndef _
+# define _(String) String
+#endif
+
+/* If NULL, error will flush stdout, then print on stderr the program
+   name, a colon and a space.  Otherwise, error will call this
+   function without parameters instead.  */
+void (*error_print_progname) (void);
+
+/* This variable is incremented each time 'error' is called.  */
+unsigned int error_message_count;
+
+#ifdef _LIBC
+/* In the GNU C library, there is a predefined variable for this.  */
+
+# define program_name program_invocation_name
+# include <errno.h>
+# include <limits.h>
+# include <libio/libioP.h>
+
+/* In GNU libc we want do not want to use the common name 'error' directly.
+   Instead make it a weak alias.  */
+extern void __error (int status, int errnum, const char *message, ...)
+     __attribute__ ((__format__ (__printf__, 3, 4)));
+extern void __error_at_line (int status, int errnum, const char *file_name,
+                             unsigned int line_number, const char *message,
+                             ...)
+     __attribute__ ((__format__ (__printf__, 5, 6)));
+# define error __error
+# define error_at_line __error_at_line
+
+# include <libio/iolibio.h>
+# define fflush(s) _IO_fflush (s)
+# undef putc
+# define putc(c, fp) _IO_putc (c, fp)
+
+# include <bits/libc-lock.h>
+
+#else /* not _LIBC */
+
+# include <fcntl.h>
+# include <unistd.h>
+
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Get declarations of the native Windows API functions.  */
+#  define WIN32_LEAN_AND_MEAN
+#  include <windows.h>
+/* Get _get_osfhandle.  */
+#  include "msvc-nothrow.h"
+# endif
+
+/* The gnulib override of fcntl is not needed in this file.  */
+# undef fcntl
+
+# if !HAVE_DECL_STRERROR_R
+#  ifndef HAVE_DECL_STRERROR_R
+"this configure-time declaration test was not run"
+#  endif
+#  if STRERROR_R_CHAR_P
+char *strerror_r ();
+#  else
+int strerror_r ();
+#  endif
+# endif
+
+#define program_name getprogname ()
+
+# if HAVE_STRERROR_R || defined strerror_r
+#  define __strerror_r strerror_r
+# endif /* HAVE_STRERROR_R || defined strerror_r */
+#endif  /* not _LIBC */
+
+#if !_LIBC
+/* Return non-zero if FD is open.  */
+static int
+is_open (int fd)
+{
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+  /* On native Windows: The initial state of unassigned standard file
+     descriptors is that they are open but point to an INVALID_HANDLE_VALUE.
+     There is no fcntl, and the gnulib replacement fcntl does not support
+     F_GETFL.  */
+  return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE;
+# else
+#  ifndef F_GETFL
+#   error Please port fcntl to your platform
+#  endif
+  return 0 <= fcntl (fd, F_GETFL);
+# endif
+}
+#endif
+
+static void
+flush_stdout (void)
+{
+#if !_LIBC
+  int stdout_fd;
+
+# if GNULIB_FREOPEN_SAFER
+  /* Use of gnulib's freopen-safer module normally ensures that
+       fileno (stdout) == 1
+     whenever stdout is open.  */
+  stdout_fd = STDOUT_FILENO;
+# else
+  /* POSIX states that fileno (stdout) after fclose is unspecified.  But in
+     practice it is not a problem, because stdout is statically allocated and
+     the fd of a FILE stream is stored as a field in its allocated memory.  */
+  stdout_fd = fileno (stdout);
+# endif
+  /* POSIX states that fflush (stdout) after fclose is unspecified; it
+     is safe in glibc, but not on all other platforms.  fflush (NULL)
+     is always defined, but too draconian.  */
+  if (0 <= stdout_fd && is_open (stdout_fd))
+#endif
+    fflush (stdout);
+}
+
+static void
+print_errno_message (int errnum)
+{
+  char const *s;
+
+#if defined HAVE_STRERROR_R || _LIBC
+  char errbuf[1024];
+# if _LIBC || STRERROR_R_CHAR_P
+  s = __strerror_r (errnum, errbuf, sizeof errbuf);
+# else
+  if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
+    s = errbuf;
+  else
+    s = 0;
+# endif
+#else
+  s = strerror (errnum);
+#endif
+
+#if !_LIBC
+  if (! s)
+    s = _("Unknown system error");
+#endif
+
+#if _LIBC
+  __fxprintf (NULL, ": %s", s);
+#else
+  fprintf (stderr, ": %s", s);
+#endif
+}
+
+static void _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))
+error_tail (int status, int errnum, const char *message, va_list args)
+{
+#if _LIBC
+  if (_IO_fwide (stderr, 0) > 0)
+    {
+      size_t len = strlen (message) + 1;
+      wchar_t *wmessage = NULL;
+      mbstate_t st;
+      size_t res;
+      const char *tmp;
+      bool use_malloc = false;
+
+      while (1)
+        {
+          if (__libc_use_alloca (len * sizeof (wchar_t)))
+            wmessage = (wchar_t *) alloca (len * sizeof (wchar_t));
+          else
+            {
+              if (!use_malloc)
+                wmessage = NULL;
+
+              wchar_t *p = (wchar_t *) realloc (wmessage,
+                                                len * sizeof (wchar_t));
+              if (p == NULL)
+                {
+                  free (wmessage);
+                  fputws_unlocked (L"out of memory\n", stderr);
+                  return;
+                }
+              wmessage = p;
+              use_malloc = true;
+            }
+
+          memset (&st, '\0', sizeof (st));
+          tmp = message;
+
+          res = mbsrtowcs (wmessage, &tmp, len, &st);
+          if (res != len)
+            break;
+
+          if (__builtin_expect (len >= SIZE_MAX / sizeof (wchar_t) / 2, 0))
+            {
+              /* This really should not happen if everything is fine.  */
+              res = (size_t) -1;
+              break;
+            }
+
+          len *= 2;
+        }
+
+      if (res == (size_t) -1)
+        {
+          /* The string cannot be converted.  */
+          if (use_malloc)
+            {
+              free (wmessage);
+              use_malloc = false;
+            }
+          wmessage = (wchar_t *) L"???";
+        }
+
+      __vfwprintf (stderr, wmessage, args);
+
+      if (use_malloc)
+        free (wmessage);
+    }
+  else
+#endif
+    vfprintf (stderr, message, args);
+  va_end (args);
+
+  ++error_message_count;
+  if (errnum)
+    print_errno_message (errnum);
+#if _LIBC
+  __fxprintf (NULL, "\n");
+#else
+  putc ('\n', stderr);
+#endif
+  fflush (stderr);
+  if (status)
+    exit (status);
+}
+
+
+/* Print the program name and error message MESSAGE, which is a printf-style
+   format string with optional args.
+   If ERRNUM is nonzero, print its corresponding system error message.
+   Exit with status STATUS if it is nonzero.  */
+void
+error (int status, int errnum, const char *message, ...)
+{
+  va_list args;
+
+#if defined _LIBC && defined __libc_ptf_call
+  /* We do not want this call to be cut short by a thread
+     cancellation.  Therefore disable cancellation for now.  */
+  int state = PTHREAD_CANCEL_ENABLE;
+  __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state),
+                   0);
+#endif
+
+  flush_stdout ();
+#ifdef _LIBC
+  _IO_flockfile (stderr);
+#endif
+  if (error_print_progname)
+    (*error_print_progname) ();
+  else
+    {
+#if _LIBC
+      __fxprintf (NULL, "%s: ", program_name);
+#else
+      fprintf (stderr, "%s: ", program_name);
+#endif
+    }
+
+  va_start (args, message);
+  error_tail (status, errnum, message, args);
+
+#ifdef _LIBC
+  _IO_funlockfile (stderr);
+# ifdef __libc_ptf_call
+  __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);
+# endif
+#endif
+}
+
+/* Sometimes we want to have at most one error per line.  This
+   variable controls whether this mode is selected or not.  */
+int error_one_per_line;
+
+void
+error_at_line (int status, int errnum, const char *file_name,
+               unsigned int line_number, const char *message, ...)
+{
+  va_list args;
+
+  if (error_one_per_line)
+    {
+      static const char *old_file_name;
+      static unsigned int old_line_number;
+
+      if (old_line_number == line_number
+          && (file_name == old_file_name
+              || (old_file_name != NULL
+                  && file_name != NULL
+                  && strcmp (old_file_name, file_name) == 0)))
+
+        /* Simply return and print nothing.  */
+        return;
+
+      old_file_name = file_name;
+      old_line_number = line_number;
+    }
+
+#if defined _LIBC && defined __libc_ptf_call
+  /* We do not want this call to be cut short by a thread
+     cancellation.  Therefore disable cancellation for now.  */
+  int state = PTHREAD_CANCEL_ENABLE;
+  __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state),
+                   0);
+#endif
+
+  flush_stdout ();
+#ifdef _LIBC
+  _IO_flockfile (stderr);
+#endif
+  if (error_print_progname)
+    (*error_print_progname) ();
+  else
+    {
+#if _LIBC
+      __fxprintf (NULL, "%s:", program_name);
+#else
+      fprintf (stderr, "%s:", program_name);
+#endif
+    }
+
+#if _LIBC
+  __fxprintf (NULL, file_name != NULL ? "%s:%u: " : " ",
+              file_name, line_number);
+#else
+  fprintf (stderr, file_name != NULL ? "%s:%u: " : " ",
+           file_name, line_number);
+#endif
+
+  va_start (args, message);
+  error_tail (status, errnum, message, args);
+
+#ifdef _LIBC
+  _IO_funlockfile (stderr);
+# ifdef __libc_ptf_call
+  __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);
+# endif
+#endif
+}
+
+#ifdef _LIBC
+/* Make the weak alias.  */
+# undef error
+# undef error_at_line
+weak_alias (__error, error)
+weak_alias (__error_at_line, error_at_line)
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/error.h ./gdb/gnulib/import/error.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/error.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/error.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,75 @@
+/* Declaration for error-reporting function
+   Copyright (C) 1995-1997, 2003, 2006, 2008-2016 Free Software Foundation,
+   Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _ERROR_H
+#define _ERROR_H 1
+
+/* The __attribute__ feature is available in gcc versions 2.5 and later.
+   The __-protected variants of the attributes 'format' and 'printf' are
+   accepted by gcc versions 2.6.4 (effectively 2.7) and later.
+   We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because
+   gnulib and libintl do '#define printf __printf__' when they override
+   the 'printf' function.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
+#else
+# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
+#endif
+
+/* On mingw, the flavor of printf depends on whether the extensions module
+ * is in use; the check for <stdio.h> determines the witness macro.  */
+#ifndef _GL_ATTRIBUTE_SPEC_PRINTF
+# if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU
+#  define _GL_ATTRIBUTE_SPEC_PRINTF __gnu_printf__
+# else
+#  define _GL_ATTRIBUTE_SPEC_PRINTF __printf__
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Print a message with 'fprintf (stderr, FORMAT, ...)';
+   if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
+   If STATUS is nonzero, terminate the program with 'exit (STATUS)'.  */
+
+extern void error (int __status, int __errnum, const char *__format, ...)
+     _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF, 3, 4));
+
+extern void error_at_line (int __status, int __errnum, const char *__fname,
+                           unsigned int __lineno, const char *__format, ...)
+     _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF, 5, 6));
+
+/* If NULL, error will flush stdout, then print on stderr the program
+   name, a colon and a space.  Otherwise, error will call this
+   function without parameters instead.  */
+extern void (*error_print_progname) (void);
+
+/* This variable is incremented each time 'error' is called.  */
+extern unsigned int error_message_count;
+
+/* Sometimes we want to have at most one error per line.  This
+   variable controls whether this mode is selected or not.  */
+extern int error_one_per_line;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* error.h */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/exitfail.c ./gdb/gnulib/import/exitfail.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/exitfail.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/exitfail.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,24 @@
+/* Failure exit status
+
+   Copyright (C) 2002-2003, 2005-2007, 2009-2016 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/>.  */
+
+#include <config.h>
+
+#include "exitfail.h"
+
+#include <stdlib.h>
+
+int volatile exit_failure = EXIT_FAILURE;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/exitfail.h ./gdb/gnulib/import/exitfail.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/exitfail.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/exitfail.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,18 @@
+/* Failure exit status
+
+   Copyright (C) 2002, 2009-2016 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/>.  */
+
+extern int volatile exit_failure;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fchdir.c ./gdb/gnulib/import/fchdir.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fchdir.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/fchdir.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,208 @@
+/* fchdir replacement.
+   Copyright (C) 2006-2016 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/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <unistd.h>
+
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include "assure.h"
+#include "dosname.h"
+#include "filenamecat.h"
+
+#ifndef REPLACE_OPEN_DIRECTORY
+# define REPLACE_OPEN_DIRECTORY 0
+#endif
+
+/* This replacement assumes that a directory is not renamed while opened
+   through a file descriptor.
+
+   FIXME: On mingw, this would be possible to enforce if we were to
+   also open a HANDLE to each directory currently visited by a file
+   descriptor, since mingw refuses to rename any in-use file system
+   object.  */
+
+/* Array of file descriptors opened.  If REPLACE_OPEN_DIRECTORY or if it points
+   to a directory, it stores info about this directory.  */
+typedef struct
+{
+  char *name;       /* Absolute name of the directory, or NULL.  */
+  /* FIXME - add a DIR* member to make dirfd possible on mingw?  */
+} dir_info_t;
+static dir_info_t *dirs;
+static size_t dirs_allocated;
+
+/* Try to ensure dirs has enough room for a slot at index fd; free any
+   contents already in that slot.  Return false and set errno to
+   ENOMEM on allocation failure.  */
+static bool
+ensure_dirs_slot (size_t fd)
+{
+  if (fd < dirs_allocated)
+    free (dirs[fd].name);
+  else
+    {
+      size_t new_allocated;
+      dir_info_t *new_dirs;
+
+      new_allocated = 2 * dirs_allocated + 1;
+      if (new_allocated <= fd)
+        new_allocated = fd + 1;
+      new_dirs =
+        (dirs != NULL
+         ? (dir_info_t *) realloc (dirs, new_allocated * sizeof *dirs)
+         : (dir_info_t *) malloc (new_allocated * sizeof *dirs));
+      if (new_dirs == NULL)
+        return false;
+      memset (new_dirs + dirs_allocated, 0,
+              (new_allocated - dirs_allocated) * sizeof *dirs);
+      dirs = new_dirs;
+      dirs_allocated = new_allocated;
+    }
+  return true;
+}
+
+/* Return an absolute name of DIR in malloc'd storage.  */
+static char *
+get_name (char const *dir)
+{
+  char *cwd;
+  char *result;
+  int saved_errno;
+
+  if (IS_ABSOLUTE_FILE_NAME (dir))
+    return strdup (dir);
+
+  /* We often encounter "."; treat it as a special case.  */
+  cwd = getcwd (NULL, 0);
+  if (!cwd || (dir[0] == '.' && dir[1] == '\0'))
+    return cwd;
+
+  result = mfile_name_concat (cwd, dir, NULL);
+  saved_errno = errno;
+  free (cwd);
+  errno = saved_errno;
+  return result;
+}
+
+/* Hook into the gnulib replacements for open() and close() to keep track
+   of the open file descriptors.  */
+
+/* Close FD, cleaning up any fd to name mapping if fd was visiting a
+   directory.  */
+void
+_gl_unregister_fd (int fd)
+{
+  if (fd >= 0 && fd < dirs_allocated)
+    {
+      free (dirs[fd].name);
+      dirs[fd].name = NULL;
+    }
+}
+
+/* Mark FD as visiting FILENAME.  FD must be non-negative, and refer
+   to an open file descriptor.  If REPLACE_OPEN_DIRECTORY is non-zero,
+   this should only be called if FD is visiting a directory.  Close FD
+   and return -1 if there is insufficient memory to track the
+   directory name; otherwise return FD.  */
+int
+_gl_register_fd (int fd, const char *filename)
+{
+  struct stat statbuf;
+
+  assure (0 <= fd);
+  if (REPLACE_OPEN_DIRECTORY
+      || (fstat (fd, &statbuf) == 0 && S_ISDIR (statbuf.st_mode)))
+    {
+      if (!ensure_dirs_slot (fd)
+          || (dirs[fd].name = get_name (filename)) == NULL)
+        {
+          int saved_errno = errno;
+          close (fd);
+          errno = saved_errno;
+          return -1;
+        }
+    }
+  return fd;
+}
+
+/* Mark NEWFD as a duplicate of OLDFD; useful from dup, dup2, dup3,
+   and fcntl.  Both arguments must be valid and distinct file
+   descriptors.  Close NEWFD and return -1 if OLDFD is tracking a
+   directory, but there is insufficient memory to track the same
+   directory in NEWFD; otherwise return NEWFD.  */
+int
+_gl_register_dup (int oldfd, int newfd)
+{
+  assure (0 <= oldfd && 0 <= newfd && oldfd != newfd);
+  if (oldfd < dirs_allocated && dirs[oldfd].name)
+    {
+      /* Duplicated a directory; must ensure newfd is allocated.  */
+      if (!ensure_dirs_slot (newfd)
+          || (dirs[newfd].name = strdup (dirs[oldfd].name)) == NULL)
+        {
+          int saved_errno = errno;
+          close (newfd);
+          errno = saved_errno;
+          newfd = -1;
+        }
+    }
+  else if (newfd < dirs_allocated)
+    {
+      /* Duplicated a non-directory; ensure newfd is cleared.  */
+      free (dirs[newfd].name);
+      dirs[newfd].name = NULL;
+    }
+  return newfd;
+}
+
+/* If FD is currently visiting a directory, then return the name of
+   that directory.  Otherwise, return NULL and set errno.  */
+const char *
+_gl_directory_name (int fd)
+{
+  if (0 <= fd && fd < dirs_allocated && dirs[fd].name != NULL)
+    return dirs[fd].name;
+  /* At this point, fd is either invalid, or open but not a directory.
+     If dup2 fails, errno is correctly EBADF.  */
+  if (0 <= fd)
+    {
+      if (dup2 (fd, fd) == fd)
+        errno = ENOTDIR;
+    }
+  else
+    errno = EBADF;
+  return NULL;
+}
+
+
+/* Implement fchdir() in terms of chdir().  */
+
+int
+fchdir (int fd)
+{
+  const char *name = _gl_directory_name (fd);
+  return name ? chdir (name) : -1;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fcntl.c ./gdb/gnulib/import/fcntl.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fcntl.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/fcntl.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,414 @@
+/* Provide file descriptor control.
+
+   Copyright (C) 2009-2016 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/>.  */
+
+/* Written by Eric Blake <ebb9@byu.net>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <fcntl.h>
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <unistd.h>
+
+#if !HAVE_FCNTL
+# define rpl_fcntl fcntl
+#endif
+#undef fcntl
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Get declarations of the native Windows API functions.  */
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+
+/* Get _get_osfhandle.  */
+# include "msvc-nothrow.h"
+
+/* Upper bound on getdtablesize().  See lib/getdtablesize.c.  */
+# define OPEN_MAX_MAX 0x10000
+
+/* Duplicate OLDFD into the first available slot of at least NEWFD,
+   which must be positive, with FLAGS determining whether the duplicate
+   will be inheritable.  */
+static int
+dupfd (int oldfd, int newfd, int flags)
+{
+  /* Mingw has no way to create an arbitrary fd.  Iterate until all
+     file descriptors less than newfd are filled up.  */
+  HANDLE curr_process = GetCurrentProcess ();
+  HANDLE old_handle = (HANDLE) _get_osfhandle (oldfd);
+  unsigned char fds_to_close[OPEN_MAX_MAX / CHAR_BIT];
+  unsigned int fds_to_close_bound = 0;
+  int result;
+  BOOL inherit = flags & O_CLOEXEC ? FALSE : TRUE;
+  int mode;
+
+  if (newfd < 0 || getdtablesize () <= newfd)
+    {
+      errno = EINVAL;
+      return -1;
+    }
+  if (old_handle == INVALID_HANDLE_VALUE
+      || (mode = setmode (oldfd, O_BINARY)) == -1)
+    {
+      /* oldfd is not open, or is an unassigned standard file
+         descriptor.  */
+      errno = EBADF;
+      return -1;
+    }
+  setmode (oldfd, mode);
+  flags |= mode;
+
+  for (;;)
+    {
+      HANDLE new_handle;
+      int duplicated_fd;
+      unsigned int index;
+
+      if (!DuplicateHandle (curr_process,           /* SourceProcessHandle */
+                            old_handle,             /* SourceHandle */
+                            curr_process,           /* TargetProcessHandle */
+                            (PHANDLE) &new_handle,  /* TargetHandle */
+                            (DWORD) 0,              /* DesiredAccess */
+                            inherit,                /* InheritHandle */
+                            DUPLICATE_SAME_ACCESS)) /* Options */
+        {
+          switch (GetLastError ())
+            {
+              case ERROR_TOO_MANY_OPEN_FILES:
+                errno = EMFILE;
+                break;
+              case ERROR_INVALID_HANDLE:
+              case ERROR_INVALID_TARGET_HANDLE:
+              case ERROR_DIRECT_ACCESS_HANDLE:
+                errno = EBADF;
+                break;
+              case ERROR_INVALID_PARAMETER:
+              case ERROR_INVALID_FUNCTION:
+              case ERROR_INVALID_ACCESS:
+                errno = EINVAL;
+                break;
+              default:
+                errno = EACCES;
+                break;
+            }
+          result = -1;
+          break;
+        }
+      duplicated_fd = _open_osfhandle ((intptr_t) new_handle, flags);
+      if (duplicated_fd < 0)
+        {
+          CloseHandle (new_handle);
+          result = -1;
+          break;
+        }
+      if (newfd <= duplicated_fd)
+        {
+          result = duplicated_fd;
+          break;
+        }
+
+      /* Set the bit duplicated_fd in fds_to_close[].  */
+      index = (unsigned int) duplicated_fd / CHAR_BIT;
+      if (fds_to_close_bound <= index)
+        {
+          if (sizeof fds_to_close <= index)
+            /* Need to increase OPEN_MAX_MAX.  */
+            abort ();
+          memset (fds_to_close + fds_to_close_bound, '\0',
+                  index + 1 - fds_to_close_bound);
+          fds_to_close_bound = index + 1;
+        }
+      fds_to_close[index] |= 1 << ((unsigned int) duplicated_fd % CHAR_BIT);
+    }
+
+  /* Close the previous fds that turned out to be too small.  */
+  {
+    int saved_errno = errno;
+    unsigned int duplicated_fd;
+
+    for (duplicated_fd = 0;
+         duplicated_fd < fds_to_close_bound * CHAR_BIT;
+         duplicated_fd++)
+      if ((fds_to_close[duplicated_fd / CHAR_BIT]
+           >> (duplicated_fd % CHAR_BIT))
+          & 1)
+        close (duplicated_fd);
+
+    errno = saved_errno;
+  }
+
+# if REPLACE_FCHDIR
+  if (0 <= result)
+    result = _gl_register_dup (oldfd, result);
+# endif
+  return result;
+}
+#endif /* W32 */
+
+#ifdef __KLIBC__
+
+# define INCL_DOS
+# include <os2.h>
+
+static int
+klibc_fcntl (int fd, int action, /* arg */...)
+{
+  va_list arg_ptr;
+  int arg;
+  struct stat sbuf;
+  int result = -1;
+
+  va_start (arg_ptr, action);
+  arg = va_arg (arg_ptr, int);
+  result = fcntl (fd, action, arg);
+  /* EPERM for F_DUPFD, ENOTSUP for others */
+  if (result == -1 && (errno == EPERM || errno == ENOTSUP)
+      && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode))
+  {
+    ULONG ulMode;
+
+    switch (action)
+      {
+      case F_DUPFD:
+        /* Find available fd */
+        while (fcntl (arg, F_GETFL) != -1 || errno != EBADF)
+          arg++;
+
+        result = dup2 (fd, arg);
+        break;
+
+      /* Using underlying APIs is right ? */
+      case F_GETFD:
+        if (DosQueryFHState (fd, &ulMode))
+          break;
+
+        result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0;
+        break;
+
+      case F_SETFD:
+        if (arg & ~FD_CLOEXEC)
+          break;
+
+        if (DosQueryFHState (fd, &ulMode))
+          break;
+
+        if (arg & FD_CLOEXEC)
+          ulMode |= OPEN_FLAGS_NOINHERIT;
+        else
+          ulMode &= ~OPEN_FLAGS_NOINHERIT;
+
+        /* Filter supported flags.  */
+        ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR
+                   | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT);
+
+        if (DosSetFHState (fd, ulMode))
+          break;
+
+        result = 0;
+        break;
+
+      case F_GETFL:
+        result = 0;
+        break;
+
+      case F_SETFL:
+        if (arg != 0)
+          break;
+
+        result = 0;
+        break;
+
+      default :
+        errno = EINVAL;
+        break;
+      }
+  }
+
+  va_end (arg_ptr);
+
+  return result;
+}
+
+# define fcntl klibc_fcntl
+#endif
+
+/* Perform the specified ACTION on the file descriptor FD, possibly
+   using the argument ARG further described below.  This replacement
+   handles the following actions, and forwards all others on to the
+   native fcntl.  An unrecognized ACTION returns -1 with errno set to
+   EINVAL.
+
+   F_DUPFD - duplicate FD, with int ARG being the minimum target fd.
+   If successful, return the duplicate, which will be inheritable;
+   otherwise return -1 and set errno.
+
+   F_DUPFD_CLOEXEC - duplicate FD, with int ARG being the minimum
+   target fd.  If successful, return the duplicate, which will not be
+   inheritable; otherwise return -1 and set errno.
+
+   F_GETFD - ARG need not be present.  If successful, return a
+   non-negative value containing the descriptor flags of FD (only
+   FD_CLOEXEC is portable, but other flags may be present); otherwise
+   return -1 and set errno.  */
+
+int
+rpl_fcntl (int fd, int action, /* arg */...)
+{
+  va_list arg;
+  int result = -1;
+  va_start (arg, action);
+  switch (action)
+    {
+
+#if !HAVE_FCNTL
+    case F_DUPFD:
+      {
+        int target = va_arg (arg, int);
+        result = dupfd (fd, target, 0);
+        break;
+      }
+#elif FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR
+    case F_DUPFD:
+      {
+        int target = va_arg (arg, int);
+        /* Detect invalid target; needed for cygwin 1.5.x.  */
+        if (target < 0 || getdtablesize () <= target)
+          errno = EINVAL;
+        else
+          {
+            /* Haiku alpha 2 loses fd flags on original.  */
+            int flags = fcntl (fd, F_GETFD);
+            if (flags < 0)
+              {
+                result = -1;
+                break;
+              }
+            result = fcntl (fd, action, target);
+            if (0 <= result && fcntl (fd, F_SETFD, flags) == -1)
+              {
+                int saved_errno = errno;
+                close (result);
+                result = -1;
+                errno = saved_errno;
+              }
+# if REPLACE_FCHDIR
+            if (0 <= result)
+              result = _gl_register_dup (fd, result);
+# endif
+          }
+        break;
+      } /* F_DUPFD */
+#endif /* FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR */
+
+    case F_DUPFD_CLOEXEC:
+      {
+        int target = va_arg (arg, int);
+
+#if !HAVE_FCNTL
+        result = dupfd (fd, target, O_CLOEXEC);
+        break;
+#else /* HAVE_FCNTL */
+        /* Try the system call first, if the headers claim it exists
+           (that is, if GNULIB_defined_F_DUPFD_CLOEXEC is 0), since we
+           may be running with a glibc that has the macro but with an
+           older kernel that does not support it.  Cache the
+           information on whether the system call really works, but
+           avoid caching failure if the corresponding F_DUPFD fails
+           for any reason.  0 = unknown, 1 = yes, -1 = no.  */
+        static int have_dupfd_cloexec = GNULIB_defined_F_DUPFD_CLOEXEC ? -1 : 0;
+        if (0 <= have_dupfd_cloexec)
+          {
+            result = fcntl (fd, action, target);
+            if (0 <= result || errno != EINVAL)
+              {
+                have_dupfd_cloexec = 1;
+# if REPLACE_FCHDIR
+                if (0 <= result)
+                  result = _gl_register_dup (fd, result);
+# endif
+              }
+            else
+              {
+                result = rpl_fcntl (fd, F_DUPFD, target);
+                if (result < 0)
+                  break;
+                have_dupfd_cloexec = -1;
+              }
+          }
+        else
+          result = rpl_fcntl (fd, F_DUPFD, target);
+        if (0 <= result && have_dupfd_cloexec == -1)
+          {
+            int flags = fcntl (result, F_GETFD);
+            if (flags < 0 || fcntl (result, F_SETFD, flags | FD_CLOEXEC) == -1)
+              {
+                int saved_errno = errno;
+                close (result);
+                errno = saved_errno;
+                result = -1;
+              }
+          }
+        break;
+#endif /* HAVE_FCNTL */
+      } /* F_DUPFD_CLOEXEC */
+
+#if !HAVE_FCNTL
+    case F_GETFD:
+      {
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+        HANDLE handle = (HANDLE) _get_osfhandle (fd);
+        DWORD flags;
+        if (handle == INVALID_HANDLE_VALUE
+            || GetHandleInformation (handle, &flags) == 0)
+          errno = EBADF;
+        else
+          result = (flags & HANDLE_FLAG_INHERIT) ? 0 : FD_CLOEXEC;
+# else /* !W32 */
+        /* Use dup2 to reject invalid file descriptors.  No way to
+           access this information, so punt.  */
+        if (0 <= dup2 (fd, fd))
+          result = 0;
+# endif /* !W32 */
+        break;
+      } /* F_GETFD */
+#endif /* !HAVE_FCNTL */
+
+      /* Implementing F_SETFD on mingw is not trivial - there is no
+         API for changing the O_NOINHERIT bit on an fd, and merely
+         changing the HANDLE_FLAG_INHERIT bit on the underlying handle
+         can lead to odd state.  It may be possible by duplicating the
+         handle, using _open_osfhandle with the right flags, then
+         using dup2 to move the duplicate onto the original, but that
+         is not supported for now.  */
+
+    default:
+      {
+#if HAVE_FCNTL
+        void *p = va_arg (arg, void *);
+        result = fcntl (fd, action, p);
+#else
+        errno = EINVAL;
+#endif
+        break;
+      }
+    }
+  va_end (arg);
+  return result;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fcntl.in.h ./gdb/gnulib/import/fcntl.in.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fcntl.in.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/fcntl.in.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,363 @@
+/* Like <fcntl.h>, but with non-working flags defined to 0.
+
+   Copyright (C) 2006-2016 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/>.  */
+
+/* written by Paul Eggert */
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+#if defined __need_system_fcntl_h
+/* Special invocation convention.  */
+
+/* Needed before <sys/stat.h>.
+   May also define off_t to a 64-bit type on native Windows.  */
+#include <sys/types.h>
+/* On some systems other than glibc, <sys/stat.h> is a prerequisite of
+   <fcntl.h>.  On glibc systems, we would like to avoid namespace pollution.
+   But on glibc systems, <fcntl.h> includes <sys/stat.h> inside an
+   extern "C" { ... } block, which leads to errors in C++ mode with the
+   overridden <sys/stat.h> from gnulib.  These errors are known to be gone
+   with g++ version >= 4.3.  */
+#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))))
+# include <sys/stat.h>
+#endif
+#@INCLUDE_NEXT@ @NEXT_FCNTL_H@
+
+#else
+/* Normal invocation convention.  */
+
+#ifndef _@GUARD_PREFIX@_FCNTL_H
+
+/* Needed before <sys/stat.h>.
+   May also define off_t to a 64-bit type on native Windows.  */
+#include <sys/types.h>
+/* On some systems other than glibc, <sys/stat.h> is a prerequisite of
+   <fcntl.h>.  On glibc systems, we would like to avoid namespace pollution.
+   But on glibc systems, <fcntl.h> includes <sys/stat.h> inside an
+   extern "C" { ... } block, which leads to errors in C++ mode with the
+   overridden <sys/stat.h> from gnulib.  These errors are known to be gone
+   with g++ version >= 4.3.  */
+#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))))
+# include <sys/stat.h>
+#endif
+/* The include_next requires a split double-inclusion guard.  */
+#@INCLUDE_NEXT@ @NEXT_FCNTL_H@
+
+#ifndef _@GUARD_PREFIX@_FCNTL_H
+#define _@GUARD_PREFIX@_FCNTL_H
+
+#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems.  */
+# include <unistd.h>
+#endif
+
+/* Native Windows platforms declare open(), creat() in <io.h>.  */
+#if (@GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \
+    && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+# include <io.h>
+#endif
+
+
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
+
+/* The definition of _GL_ARG_NONNULL is copied here.  */
+
+/* The definition of _GL_WARN_ON_USE is copied here.  */
+
+
+/* Declare overridden functions.  */
+
+#if @GNULIB_FCNTL@
+# if @REPLACE_FCNTL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fcntl
+#   define fcntl rpl_fcntl
+#  endif
+_GL_FUNCDECL_RPL (fcntl, int, (int fd, int action, ...));
+_GL_CXXALIAS_RPL (fcntl, int, (int fd, int action, ...));
+# else
+#  if !@HAVE_FCNTL@
+_GL_FUNCDECL_SYS (fcntl, int, (int fd, int action, ...));
+#  endif
+_GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...));
+# endif
+_GL_CXXALIASWARN (fcntl);
+#elif defined GNULIB_POSIXCHECK
+# undef fcntl
+# if HAVE_RAW_DECL_FCNTL
+_GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - "
+                 "use gnulib module fcntl for portability");
+# endif
+#endif
+
+#if @GNULIB_OPEN@
+# if @REPLACE_OPEN@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef open
+#   define open rpl_open
+#  endif
+_GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
+                             _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
+# else
+_GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
+# endif
+/* On HP-UX 11, in C++ mode, open() is defined as an inline function with a
+   default argument.  _GL_CXXALIASWARN does not work in this case.  */
+# if !defined __hpux
+_GL_CXXALIASWARN (open);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef open
+/* Assume open is always declared.  */
+_GL_WARN_ON_USE (open, "open is not always POSIX compliant - "
+                 "use gnulib module open for portability");
+#endif
+
+#if @GNULIB_OPENAT@
+# if @REPLACE_OPENAT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef openat
+#   define openat rpl_openat
+#  endif
+_GL_FUNCDECL_RPL (openat, int,
+                  (int fd, char const *file, int flags, /* mode_t mode */ ...)
+                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (openat, int,
+                  (int fd, char const *file, int flags, /* mode_t mode */ ...));
+# else
+#  if !@HAVE_OPENAT@
+_GL_FUNCDECL_SYS (openat, int,
+                  (int fd, char const *file, int flags, /* mode_t mode */ ...)
+                  _GL_ARG_NONNULL ((2)));
+#  endif
+_GL_CXXALIAS_SYS (openat, int,
+                  (int fd, char const *file, int flags, /* mode_t mode */ ...));
+# endif
+_GL_CXXALIASWARN (openat);
+#elif defined GNULIB_POSIXCHECK
+# undef openat
+# if HAVE_RAW_DECL_OPENAT
+_GL_WARN_ON_USE (openat, "openat is not portable - "
+                 "use gnulib module openat for portability");
+# endif
+#endif
+
+
+/* Fix up the FD_* macros, only known to be missing on mingw.  */
+
+#ifndef FD_CLOEXEC
+# define FD_CLOEXEC 1
+#endif
+
+/* Fix up the supported F_* macros.  Intentionally leave other F_*
+   macros undefined.  Only known to be missing on mingw.  */
+
+#ifndef F_DUPFD_CLOEXEC
+# define F_DUPFD_CLOEXEC 0x40000000
+/* Witness variable: 1 if gnulib defined F_DUPFD_CLOEXEC, 0 otherwise.  */
+# define GNULIB_defined_F_DUPFD_CLOEXEC 1
+#else
+# define GNULIB_defined_F_DUPFD_CLOEXEC 0
+#endif
+
+#ifndef F_DUPFD
+# define F_DUPFD 1
+#endif
+
+#ifndef F_GETFD
+# define F_GETFD 2
+#endif
+
+/* Fix up the O_* macros.  */
+
+/* AIX 7.1 with XL C 12.1 defines O_CLOEXEC, O_NOFOLLOW, and O_TTY_INIT
+   to values outside 'int' range, so omit these misdefinitions.
+   But avoid namespace pollution on non-AIX systems.  */
+#ifdef _AIX
+# include <limits.h>
+# if defined O_CLOEXEC && ! (INT_MIN <= O_CLOEXEC && O_CLOEXEC <= INT_MAX)
+#  undef O_CLOEXEC
+# endif
+# if defined O_NOFOLLOW && ! (INT_MIN <= O_NOFOLLOW && O_NOFOLLOW <= INT_MAX)
+#  undef O_NOFOLLOW
+# endif
+# if defined O_TTY_INIT && ! (INT_MIN <= O_TTY_INIT && O_TTY_INIT <= INT_MAX)
+#  undef O_TTY_INIT
+# endif
+#endif
+
+#if !defined O_DIRECT && defined O_DIRECTIO
+/* Tru64 spells it 'O_DIRECTIO'.  */
+# define O_DIRECT O_DIRECTIO
+#endif
+
+#if !defined O_CLOEXEC && defined O_NOINHERIT
+/* Mingw spells it 'O_NOINHERIT'.  */
+# define O_CLOEXEC O_NOINHERIT
+#endif
+
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+
+#ifndef O_DIRECT
+# define O_DIRECT 0
+#endif
+
+#ifndef O_DIRECTORY
+# define O_DIRECTORY 0
+#endif
+
+#ifndef O_DSYNC
+# define O_DSYNC 0
+#endif
+
+#ifndef O_EXEC
+# define O_EXEC O_RDONLY /* This is often close enough in older systems.  */
+#endif
+
+#ifndef O_IGNORE_CTTY
+# define O_IGNORE_CTTY 0
+#endif
+
+#ifndef O_NDELAY
+# define O_NDELAY 0
+#endif
+
+#ifndef O_NOATIME
+# define O_NOATIME 0
+#endif
+
+#ifndef O_NONBLOCK
+# define O_NONBLOCK O_NDELAY
+#endif
+
+/* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero
+   value of O_NONBLOCK.  Otherwise, O_NONBLOCK is defined (above) to O_NDELAY
+   or to 0 as fallback.  */
+#if @GNULIB_NONBLOCKING@
+# if O_NONBLOCK
+#  define GNULIB_defined_O_NONBLOCK 0
+# else
+#  define GNULIB_defined_O_NONBLOCK 1
+#  undef O_NONBLOCK
+#  define O_NONBLOCK 0x40000000
+# endif
+#endif
+
+#ifndef O_NOCTTY
+# define O_NOCTTY 0
+#endif
+
+#ifndef O_NOFOLLOW
+# define O_NOFOLLOW 0
+#endif
+
+#ifndef O_NOLINK
+# define O_NOLINK 0
+#endif
+
+#ifndef O_NOLINKS
+# define O_NOLINKS 0
+#endif
+
+#ifndef O_NOTRANS
+# define O_NOTRANS 0
+#endif
+
+#ifndef O_RSYNC
+# define O_RSYNC 0
+#endif
+
+#ifndef O_SEARCH
+# define O_SEARCH O_RDONLY /* This is often close enough in older systems.  */
+#endif
+
+#ifndef O_SYNC
+# define O_SYNC 0
+#endif
+
+#ifndef O_TTY_INIT
+# define O_TTY_INIT 0
+#endif
+
+#if ~O_ACCMODE & (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH)
+# undef O_ACCMODE
+# define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH)
+#endif
+
+/* For systems that distinguish between text and binary I/O.
+   O_BINARY is usually declared in fcntl.h  */
+#if !defined O_BINARY && defined _O_BINARY
+  /* For MSC-compatible compilers.  */
+# define O_BINARY _O_BINARY
+# define O_TEXT _O_TEXT
+#endif
+
+#if defined __BEOS__ || defined __HAIKU__
+  /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect.  */
+# undef O_BINARY
+# undef O_TEXT
+#endif
+
+#ifndef O_BINARY
+# define O_BINARY 0
+# define O_TEXT 0
+#endif
+
+/* Fix up the AT_* macros.  */
+
+/* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive.  Its
+   value exceeds INT_MAX, so its use as an int doesn't conform to the
+   C standard, and GCC and Sun C complain in some cases.  If the bug
+   is present, undef AT_FDCWD here, so it can be redefined below.  */
+#if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553
+# undef AT_FDCWD
+#endif
+
+/* Use the same bit pattern as Solaris 9, but with the proper
+   signedness.  The bit pattern is important, in case this actually is
+   Solaris with the above workaround.  */
+#ifndef AT_FDCWD
+# define AT_FDCWD (-3041965)
+#endif
+
+/* Use the same values as Solaris 9.  This shouldn't matter, but
+   there's no real reason to differ.  */
+#ifndef AT_SYMLINK_NOFOLLOW
+# define AT_SYMLINK_NOFOLLOW 4096
+#endif
+
+#ifndef AT_REMOVEDIR
+# define AT_REMOVEDIR 1
+#endif
+
+/* Solaris 9 lacks these two, so just pick unique values.  */
+#ifndef AT_SYMLINK_FOLLOW
+# define AT_SYMLINK_FOLLOW 2
+#endif
+
+#ifndef AT_EACCESS
+# define AT_EACCESS 4
+#endif
+
+
+#endif /* _@GUARD_PREFIX@_FCNTL_H */
+#endif /* _@GUARD_PREFIX@_FCNTL_H */
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fd-hook.c ./gdb/gnulib/import/fd-hook.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fd-hook.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/fd-hook.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,116 @@
+/* Hook for making making file descriptor functions close(), ioctl() extensible.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+   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 <config.h>
+
+/* Specification.  */
+#include "fd-hook.h"
+
+#include <stdlib.h>
+
+/* Currently, this entire code is only needed for the handling of sockets
+   on native Windows platforms.  */
+#if WINDOWS_SOCKETS
+
+/* The first and last link in the doubly linked list.
+   Initially the list is empty.  */
+static struct fd_hook anchor = { &anchor, &anchor, NULL, NULL };
+
+int
+execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary,
+                     int fd)
+{
+  if (remaining_list == &anchor)
+    /* End of list reached.  */
+    return primary (fd);
+  else
+    return remaining_list->private_close_fn (remaining_list->private_next,
+                                             primary, fd);
+}
+
+int
+execute_all_close_hooks (gl_close_fn primary, int fd)
+{
+  return execute_close_hooks (anchor.private_next, primary, fd);
+}
+
+int
+execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary,
+                     int fd, int request, void *arg)
+{
+  if (remaining_list == &anchor)
+    /* End of list reached.  */
+    return primary (fd, request, arg);
+  else
+    return remaining_list->private_ioctl_fn (remaining_list->private_next,
+                                             primary, fd, request, arg);
+}
+
+int
+execute_all_ioctl_hooks (gl_ioctl_fn primary,
+                         int fd, int request, void *arg)
+{
+  return execute_ioctl_hooks (anchor.private_next, primary, fd, request, arg);
+}
+
+void
+register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link)
+{
+  if (close_hook == NULL)
+    close_hook = execute_close_hooks;
+  if (ioctl_hook == NULL)
+    ioctl_hook = execute_ioctl_hooks;
+
+  if (link->private_next == NULL && link->private_prev == NULL)
+    {
+      /* Add the link to the doubly linked list.  */
+      link->private_next = anchor.private_next;
+      link->private_prev = &anchor;
+      link->private_close_fn = close_hook;
+      link->private_ioctl_fn = ioctl_hook;
+      anchor.private_next->private_prev = link;
+      anchor.private_next = link;
+    }
+  else
+    {
+      /* The link is already in use.  */
+      if (link->private_close_fn != close_hook
+          || link->private_ioctl_fn != ioctl_hook)
+        abort ();
+    }
+}
+
+void
+unregister_fd_hook (struct fd_hook *link)
+{
+  struct fd_hook *next = link->private_next;
+  struct fd_hook *prev = link->private_prev;
+
+  if (next != NULL && prev != NULL)
+    {
+      /* The link is in use.  Remove it from the doubly linked list.  */
+      prev->private_next = next;
+      next->private_prev = prev;
+      /* Clear the link, to mark it unused.  */
+      link->private_next = NULL;
+      link->private_prev = NULL;
+      link->private_close_fn = NULL;
+      link->private_ioctl_fn = NULL;
+    }
+}
+
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fd-hook.h ./gdb/gnulib/import/fd-hook.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fd-hook.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/fd-hook.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,119 @@
+/* Hook for making making file descriptor functions close(), ioctl() extensible.
+   Copyright (C) 2009-2016 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/>.  */
+
+
+#ifndef FD_HOOK_H
+#define FD_HOOK_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Currently, this entire code is only needed for the handling of sockets
+   on native Windows platforms.  */
+#if WINDOWS_SOCKETS
+
+
+/* Type of function that closes FD.  */
+typedef int (*gl_close_fn) (int fd);
+
+/* Type of function that applies a control request to FD.  */
+typedef int (*gl_ioctl_fn) (int fd, int request, void *arg);
+
+/* An element of the list of file descriptor hooks.
+   In CLOS (Common Lisp Object System) speak, it consists of an "around"
+   method for the close() function and an "around" method for the ioctl()
+   function.
+   The fields of this structure are considered private.  */
+struct fd_hook
+{
+  /* Doubly linked list.  */
+  struct fd_hook *private_next;
+  struct fd_hook *private_prev;
+  /* Function that treats the types of FD that it knows about and calls
+     execute_close_hooks (REMAINING_LIST, PRIMARY, FD) as a fallback.  */
+  int (*private_close_fn) (const struct fd_hook *remaining_list,
+                           gl_close_fn primary,
+                           int fd);
+  /* Function that treats the types of FD that it knows about and calls
+     execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) as a
+     fallback.  */
+  int (*private_ioctl_fn) (const struct fd_hook *remaining_list,
+                           gl_ioctl_fn primary,
+                           int fd, int request, void *arg);
+};
+
+/* This type of function closes FD, applying special knowledge for the FD
+   types it knows about, and calls
+   execute_close_hooks (REMAINING_LIST, PRIMARY, FD)
+   for the other FD types.
+   In CLOS speak, REMAINING_LIST is the remaining list of "around" methods,
+   and PRIMARY is the "primary" method for close().  */
+typedef int (*close_hook_fn) (const struct fd_hook *remaining_list,
+                              gl_close_fn primary,
+                              int fd);
+
+/* Execute the close hooks in REMAINING_LIST, with PRIMARY as "primary" method.
+   Return 0 or -1, like close() would do.  */
+extern int execute_close_hooks (const struct fd_hook *remaining_list,
+                                gl_close_fn primary,
+                                int fd);
+
+/* Execute all close hooks, with PRIMARY as "primary" method.
+   Return 0 or -1, like close() would do.  */
+extern int execute_all_close_hooks (gl_close_fn primary, int fd);
+
+/* This type of function applies a control request to FD, applying special
+   knowledge for the FD types it knows about, and calls
+   execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG)
+   for the other FD types.
+   In CLOS speak, REMAINING_LIST is the remaining list of "around" methods,
+   and PRIMARY is the "primary" method for ioctl().  */
+typedef int (*ioctl_hook_fn) (const struct fd_hook *remaining_list,
+                              gl_ioctl_fn primary,
+                              int fd, int request, void *arg);
+
+/* Execute the ioctl hooks in REMAINING_LIST, with PRIMARY as "primary" method.
+   Return 0 or -1, like ioctl() would do.  */
+extern int execute_ioctl_hooks (const struct fd_hook *remaining_list,
+                                gl_ioctl_fn primary,
+                                int fd, int request, void *arg);
+
+/* Execute all ioctl hooks, with PRIMARY as "primary" method.
+   Return 0 or -1, like ioctl() would do.  */
+extern int execute_all_ioctl_hooks (gl_ioctl_fn primary,
+                                    int fd, int request, void *arg);
+
+/* Add a function pair to the list of file descriptor hooks.
+   CLOSE_HOOK and IOCTL_HOOK may be NULL, indicating no change.
+   The LINK variable points to a piece of memory which is guaranteed to be
+   accessible until the corresponding call to unregister_fd_hook.  */
+extern void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook,
+                              struct fd_hook *link);
+
+/* Removes a hook from the list of file descriptor hooks.  */
+extern void unregister_fd_hook (struct fd_hook *link);
+
+
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* FD_HOOK_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fdopendir.c ./gdb/gnulib/import/fdopendir.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fdopendir.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/fdopendir.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,249 @@
+/* provide a replacement fdopendir function
+   Copyright (C) 2004-2016 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/>.  */
+
+/* written by Jim Meyering */
+
+#include <config.h>
+
+#include <dirent.h>
+
+#include <stdlib.h>
+#include <unistd.h>
+
+#if !HAVE_FDOPENDIR
+
+# include "openat.h"
+# include "openat-priv.h"
+# include "save-cwd.h"
+
+# if GNULIB_DIRENT_SAFER
+#  include "dirent--.h"
+# endif
+
+# ifndef REPLACE_FCHDIR
+#  define REPLACE_FCHDIR 0
+# endif
+
+static DIR *fdopendir_with_dup (int, int, struct saved_cwd const *);
+static DIR *fd_clone_opendir (int, struct saved_cwd const *);
+
+/* Replacement for POSIX fdopendir.
+
+   First, try to simulate it via opendir ("/proc/self/fd/...").  Failing
+   that, simulate it by using fchdir metadata, or by doing
+   save_cwd/fchdir/opendir(".")/restore_cwd.
+   If either the save_cwd or the restore_cwd fails (relatively unlikely),
+   then give a diagnostic and exit nonzero.
+
+   If successful, the resulting stream is based on FD in
+   implementations where streams are based on file descriptors and in
+   applications where no other thread or signal handler allocates or
+   frees file descriptors.  In other cases, consult dirfd on the result
+   to find out whether FD is still being used.
+
+   Otherwise, this function works just like POSIX fdopendir.
+
+   W A R N I N G:
+
+   Unlike other fd-related functions, this one places constraints on FD.
+   If this function returns successfully, FD is under control of the
+   dirent.h system, and the caller should not close or modify the state of
+   FD other than by the dirent.h functions.  */
+# ifdef __KLIBC__
+#  include <InnoTekLIBC/backend.h>
+
+DIR *
+fdopendir (int fd)
+{
+  char path[_MAX_PATH];
+  DIR *dirp;
+
+  /* Get a path from fd */
+  if (__libc_Back_ioFHToPath (fd, path, sizeof (path)))
+    return NULL;
+
+  dirp = opendir (path);
+  if (!dirp)
+    return NULL;
+
+  /* Unregister fd registered by opendir() */
+  _gl_unregister_dirp_fd (dirfd (dirp));
+
+  /* Register our fd */
+  if (_gl_register_dirp_fd (fd, dirp))
+    {
+      int saved_errno = errno;
+
+      closedir (dirp);
+
+      errno = saved_errno;
+
+      dirp = NULL;
+    }
+
+  return dirp;
+}
+# else
+DIR *
+fdopendir (int fd)
+{
+  DIR *dir = fdopendir_with_dup (fd, -1, NULL);
+
+  if (! REPLACE_FCHDIR && ! dir)
+    {
+      int saved_errno = errno;
+      if (EXPECTED_ERRNO (saved_errno))
+        {
+          struct saved_cwd cwd;
+          if (save_cwd (&cwd) != 0)
+            openat_save_fail (errno);
+          dir = fdopendir_with_dup (fd, -1, &cwd);
+          saved_errno = errno;
+          free_cwd (&cwd);
+          errno = saved_errno;
+        }
+    }
+
+  return dir;
+}
+# endif
+
+/* Like fdopendir, except that if OLDER_DUPFD is not -1, it is known
+   to be a dup of FD which is less than FD - 1 and which will be
+   closed by the caller and not otherwise used by the caller.  This
+   function makes sure that FD is closed and all file descriptors less
+   than FD are open, and then calls fd_clone_opendir on a dup of FD.
+   That way, barring race conditions, fd_clone_opendir returns a
+   stream whose file descriptor is FD.
+
+   If REPLACE_FCHDIR or CWD is null, use opendir ("/proc/self/fd/...",
+   falling back on fchdir metadata.  Otherwise, CWD is a saved version
+   of the working directory; use fchdir/opendir(".")/restore_cwd(CWD).  */
+static DIR *
+fdopendir_with_dup (int fd, int older_dupfd, struct saved_cwd const *cwd)
+{
+  int dupfd = dup (fd);
+  if (dupfd < 0 && errno == EMFILE)
+    dupfd = older_dupfd;
+  if (dupfd < 0)
+    return NULL;
+  else
+    {
+      DIR *dir;
+      int saved_errno;
+      if (dupfd < fd - 1 && dupfd != older_dupfd)
+        {
+          dir = fdopendir_with_dup (fd, dupfd, cwd);
+          saved_errno = errno;
+        }
+      else
+        {
+          close (fd);
+          dir = fd_clone_opendir (dupfd, cwd);
+          saved_errno = errno;
+          if (! dir)
+            {
+              int fd1 = dup (dupfd);
+              if (fd1 != fd)
+                openat_save_fail (fd1 < 0 ? errno : EBADF);
+            }
+        }
+
+      if (dupfd != older_dupfd)
+        close (dupfd);
+      errno = saved_errno;
+      return dir;
+    }
+}
+
+/* Like fdopendir, except the result controls a clone of FD.  It is
+   the caller's responsibility both to close FD and (if the result is
+   not null) to closedir the result.  */
+static DIR *
+fd_clone_opendir (int fd, struct saved_cwd const *cwd)
+{
+  if (REPLACE_FCHDIR || ! cwd)
+    {
+      DIR *dir = NULL;
+      int saved_errno = EOPNOTSUPP;
+      char buf[OPENAT_BUFFER_SIZE];
+      char *proc_file = openat_proc_name (buf, fd, ".");
+      if (proc_file)
+        {
+          dir = opendir (proc_file);
+          saved_errno = errno;
+          if (proc_file != buf)
+            free (proc_file);
+        }
+# if REPLACE_FCHDIR
+      if (! dir && EXPECTED_ERRNO (saved_errno))
+        {
+          char const *name = _gl_directory_name (fd);
+          DIR *dp = name ? opendir (name) : NULL;
+
+          /* The caller has done an elaborate dance to arrange for opendir to
+             consume just the right file descriptor.  If dirfd returns -1,
+             though, we're on a system like mingw where opendir does not
+             consume a file descriptor.  Consume it via 'dup' instead.  */
+          if (dp && dirfd (dp) < 0)
+            dup (fd);
+
+          return dp;
+        }
+# endif
+      errno = saved_errno;
+      return dir;
+    }
+  else
+    {
+      if (fchdir (fd) != 0)
+        return NULL;
+      else
+        {
+          DIR *dir = opendir (".");
+          int saved_errno = errno;
+          if (restore_cwd (cwd) != 0)
+            openat_restore_fail (errno);
+          errno = saved_errno;
+          return dir;
+        }
+    }
+}
+
+#else /* HAVE_FDOPENDIR */
+
+# include <errno.h>
+# include <sys/stat.h>
+
+# undef fdopendir
+
+/* Like fdopendir, but work around GNU/Hurd bug by validating FD.  */
+
+DIR *
+rpl_fdopendir (int fd)
+{
+  struct stat st;
+  if (fstat (fd, &st))
+    return NULL;
+  if (!S_ISDIR (st.st_mode))
+    {
+      errno = ENOTDIR;
+      return NULL;
+    }
+  return fdopendir (fd);
+}
+
+#endif /* HAVE_FDOPENDIR */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fd-safer.c ./gdb/gnulib/import/fd-safer.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fd-safer.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/fd-safer.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,49 @@
+/* Return a safer copy of a file descriptor.
+
+   Copyright (C) 2005-2006, 2009-2016 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/>.  */
+
+/* Written by Paul Eggert.  */
+
+#include <config.h>
+
+#include "unistd-safer.h"
+
+#include <errno.h>
+#include <unistd.h>
+
+/* Return FD, unless FD would be a copy of standard input, output, or
+   error; in that case, return a duplicate of FD, closing FD.  On
+   failure to duplicate, close FD, set errno, and return -1.  Preserve
+   errno if FD is negative, so that the caller can always inspect
+   errno when the returned value is negative.
+
+   This function is usefully wrapped around functions that return file
+   descriptors, e.g., fd_safer (open ("file", O_RDONLY)).  */
+
+int
+fd_safer (int fd)
+{
+  if (STDIN_FILENO <= fd && fd <= STDERR_FILENO)
+    {
+      int f = dup_safer (fd);
+      int e = errno;
+      close (fd);
+      errno = e;
+      fd = f;
+    }
+
+  return fd;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/filenamecat.h ./gdb/gnulib/import/filenamecat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/filenamecat.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/filenamecat.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,27 @@
+/* Concatenate two arbitrary file names.
+
+   Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2016 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/>.  */
+
+/* Written by Jim Meyering.  */
+
+#if GNULIB_FILENAMECAT
+char *file_name_concat (char const *dir, char const *base,
+                        char **base_in_result);
+#endif
+
+char *mfile_name_concat (char const *dir, char const *base,
+                         char **base_in_result);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/filenamecat-lgpl.c ./gdb/gnulib/import/filenamecat-lgpl.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/filenamecat-lgpl.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/filenamecat-lgpl.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,88 @@
+/* Concatenate two arbitrary file names.
+
+   Copyright (C) 1996-2007, 2009-2016 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/>.  */
+
+/* Written by Jim Meyering.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "filenamecat.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "dirname.h"
+
+#if ! HAVE_MEMPCPY && ! defined mempcpy
+# define mempcpy(D, S, N) ((void *) ((char *) memcpy (D, S, N) + (N)))
+#endif
+
+/* Return the longest suffix of F that is a relative file name.
+   If it has no such suffix, return the empty string.  */
+
+static char const * _GL_ATTRIBUTE_PURE
+longest_relative_suffix (char const *f)
+{
+  for (f += FILE_SYSTEM_PREFIX_LEN (f); ISSLASH (*f); f++)
+    continue;
+  return f;
+}
+
+/* Concatenate two file name components, DIR and ABASE, in
+   newly-allocated storage and return the result.
+   The resulting file name F is such that the commands "ls F" and "(cd
+   DIR; ls BASE)" refer to the same file, where BASE is ABASE with any
+   file system prefixes and leading separators removed.
+   Arrange for a directory separator if necessary between DIR and BASE
+   in the result, removing any redundant separators.
+   In any case, if BASE_IN_RESULT is non-NULL, set
+   *BASE_IN_RESULT to point to the copy of ABASE in the returned
+   concatenation.  However, if ABASE begins with more than one slash,
+   set *BASE_IN_RESULT to point to the sole corresponding slash that
+   is copied into the result buffer.
+
+   Return NULL if malloc fails.  */
+
+char *
+mfile_name_concat (char const *dir, char const *abase, char **base_in_result)
+{
+  char const *dirbase = last_component (dir);
+  size_t dirbaselen = base_len (dirbase);
+  size_t dirlen = dirbase - dir + dirbaselen;
+  size_t needs_separator = (dirbaselen && ! ISSLASH (dirbase[dirbaselen - 1]));
+
+  char const *base = longest_relative_suffix (abase);
+  size_t baselen = strlen (base);
+
+  char *p_concat = malloc (dirlen + needs_separator + baselen + 1);
+  char *p;
+
+  if (p_concat == NULL)
+    return NULL;
+
+  p = mempcpy (p_concat, dir, dirlen);
+  *p = DIRECTORY_SEPARATOR;
+  p += needs_separator;
+
+  if (base_in_result)
+    *base_in_result = p - IS_ABSOLUTE_FILE_NAME (abase);
+
+  p = mempcpy (p, base, baselen);
+  *p = '\0';
+
+  return p_concat;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/filename.h ./gdb/gnulib/import/filename.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/filename.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/filename.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,54 @@
+/* Basic filename support macros.
+   Copyright (C) 2001-2004, 2007-2016 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/>.  */
+
+#ifndef _FILENAME_H
+#define _FILENAME_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Pathname support.
+   ISSLASH(C)           tests whether C is a directory separator character.
+   IS_ABSOLUTE_PATH(P)  tests whether P is an absolute path.  If it is not,
+                        it may be concatenated to a directory pathname.
+   IS_PATH_WITH_DIR(P)  tests whether P contains a directory specification.
+ */
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+  /* Native Windows, Cygwin, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+# define HAS_DEVICE(P) \
+    ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
+     && (P)[1] == ':')
+# define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P))
+# define IS_PATH_WITH_DIR(P) \
+    (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P))
+# define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0)
+#else
+  /* Unix */
+# define ISSLASH(C) ((C) == '/')
+# define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0])
+# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
+# define FILE_SYSTEM_PREFIX_LEN(P) 0
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FILENAME_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fstatat.c ./gdb/gnulib/import/fstatat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fstatat.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/fstatat.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,135 @@
+/* Work around an fstatat bug on Solaris 9.
+
+   Copyright (C) 2006, 2009-2016 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/>.  */
+
+/* Written by Paul Eggert and Jim Meyering.  */
+
+/* If the user's config.h happens to include <sys/stat.h>, let it include only
+   the system's <sys/stat.h> here, so that orig_fstatat doesn't recurse to
+   rpl_fstatat.  */
+#define __need_system_sys_stat_h
+#include <config.h>
+
+/* Get the original definition of fstatat.  It might be defined as a macro.  */
+#include <sys/types.h>
+#include <sys/stat.h>
+#undef __need_system_sys_stat_h
+
+#if HAVE_FSTATAT
+static int
+orig_fstatat (int fd, char const *filename, struct stat *buf, int flags)
+{
+  return fstatat (fd, filename, buf, flags);
+}
+#endif
+
+/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
+   eliminates this include because of the preliminary #include <sys/stat.h>
+   above.  */
+#include "sys/stat.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <string.h>
+
+#if HAVE_FSTATAT && HAVE_WORKING_FSTATAT_ZERO_FLAG
+
+# ifndef LSTAT_FOLLOWS_SLASHED_SYMLINK
+#  define LSTAT_FOLLOWS_SLASHED_SYMLINK 0
+# endif
+
+/* fstatat should always follow symbolic links that end in /, but on
+   Solaris 9 it doesn't if AT_SYMLINK_NOFOLLOW is specified.
+   Likewise, trailing slash on a non-directory should be an error.
+   These are the same problems that lstat.c and stat.c address, so
+   solve it in a similar way.
+
+   AIX 7.1 fstatat (AT_FDCWD, ..., 0) always fails, which is a bug.
+   Work around this bug if FSTATAT_AT_FDCWD_0_BROKEN is nonzero.  */
+
+int
+rpl_fstatat (int fd, char const *file, struct stat *st, int flag)
+{
+  int result = orig_fstatat (fd, file, st, flag);
+  size_t len;
+
+  if (LSTAT_FOLLOWS_SLASHED_SYMLINK || result != 0)
+    return result;
+  len = strlen (file);
+  if (flag & AT_SYMLINK_NOFOLLOW)
+    {
+      /* Fix lstat behavior.  */
+      if (file[len - 1] != '/' || S_ISDIR (st->st_mode))
+        return 0;
+      if (!S_ISLNK (st->st_mode))
+        {
+          errno = ENOTDIR;
+          return -1;
+        }
+      result = orig_fstatat (fd, file, st, flag & ~AT_SYMLINK_NOFOLLOW);
+    }
+  /* Fix stat behavior.  */
+  if (result == 0 && !S_ISDIR (st->st_mode) && file[len - 1] == '/')
+    {
+      errno = ENOTDIR;
+      return -1;
+    }
+  return result;
+}
+
+#else /* ! (HAVE_FSTATAT && HAVE_WORKING_FSTATAT_ZERO_FLAG) */
+
+/* On mingw, the gnulib <sys/stat.h> defines 'stat' as a function-like
+   macro; but using it in AT_FUNC_F2 causes compilation failure
+   because the preprocessor sees a use of a macro that requires two
+   arguments but is only given one.  Hence, we need an inline
+   forwarder to get past the preprocessor.  */
+static int
+stat_func (char const *name, struct stat *st)
+{
+  return stat (name, st);
+}
+
+/* Likewise, if there is no native 'lstat', then the gnulib
+   <sys/stat.h> defined it as stat, which also needs adjustment.  */
+# if !HAVE_LSTAT
+#  undef lstat
+#  define lstat stat_func
+# endif
+
+/* Replacement for Solaris' function by the same name.
+   <http://www.google.com/search?q=fstatat+site:docs.sun.com>
+   First, try to simulate it via l?stat ("/proc/self/fd/FD/FILE").
+   Failing that, simulate it via save_cwd/fchdir/(stat|lstat)/restore_cwd.
+   If either the save_cwd or the restore_cwd fails (relatively unlikely),
+   then give a diagnostic and exit nonzero.
+   Otherwise, this function works just like Solaris' fstatat.  */
+
+# define AT_FUNC_NAME fstatat
+# define AT_FUNC_F1 lstat
+# define AT_FUNC_F2 stat_func
+# define AT_FUNC_USE_F1_COND AT_SYMLINK_NOFOLLOW
+# define AT_FUNC_POST_FILE_PARAM_DECLS , struct stat *st, int flag
+# define AT_FUNC_POST_FILE_ARGS        , st
+# include "at-func.c"
+# undef AT_FUNC_NAME
+# undef AT_FUNC_F1
+# undef AT_FUNC_F2
+# undef AT_FUNC_USE_F1_COND
+# undef AT_FUNC_POST_FILE_PARAM_DECLS
+# undef AT_FUNC_POST_FILE_ARGS
+
+#endif /* !HAVE_FSTATAT */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fstat.c ./gdb/gnulib/import/fstat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/fstat.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/fstat.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,88 @@
+/* fstat() replacement.
+   Copyright (C) 2011-2016 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/>.  */
+
+/* If the user's config.h happens to include <sys/stat.h>, let it include only
+   the system's <sys/stat.h> here, so that orig_fstat doesn't recurse to
+   rpl_fstat.  */
+#define __need_system_sys_stat_h
+#include <config.h>
+
+/* Get the original definition of fstat.  It might be defined as a macro.  */
+#include <sys/types.h>
+#include <sys/stat.h>
+#if _GL_WINDOWS_64_BIT_ST_SIZE
+# undef stat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */
+# define stat _stati64
+# undef fstat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */
+# define fstat _fstati64
+#endif
+#undef __need_system_sys_stat_h
+
+static int
+orig_fstat (int fd, struct stat *buf)
+{
+  return fstat (fd, buf);
+}
+
+/* Specification.  */
+/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
+   eliminates this include because of the preliminary #include <sys/stat.h>
+   above.  */
+#include "sys/stat.h"
+
+#include <errno.h>
+#include <unistd.h>
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+# include "msvc-inval.h"
+#endif
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static int
+fstat_nothrow (int fd, struct stat *buf)
+{
+  int result;
+
+  TRY_MSVC_INVAL
+    {
+      result = orig_fstat (fd, buf);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = -1;
+      errno = EBADF;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+#else
+# define fstat_nothrow orig_fstat
+#endif
+
+int
+rpl_fstat (int fd, struct stat *buf)
+{
+#if REPLACE_FCHDIR && REPLACE_OPEN_DIRECTORY
+  /* Handle the case when rpl_open() used a dummy file descriptor to work
+     around an open() that can't normally visit directories.  */
+  const char *name = _gl_directory_name (fd);
+  if (name != NULL)
+    return stat (name, buf);
+#endif
+
+  return fstat_nothrow (fd, buf);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/getcwd.c ./gdb/gnulib/import/getcwd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/getcwd.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/getcwd.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,446 @@
+/* Copyright (C) 1991-1999, 2004-2016 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#if !_LIBC
+# include <config.h>
+# include <unistd.h>
+#endif
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdbool.h>
+#include <stddef.h>
+
+#include <fcntl.h> /* For AT_FDCWD on Solaris 9.  */
+
+/* If this host provides the openat function or if we're using the
+   gnulib replacement function with a native fdopendir, then enable
+   code below to make getcwd more efficient and robust.  */
+#if defined HAVE_OPENAT || (defined GNULIB_OPENAT && defined HAVE_FDOPENDIR)
+# define HAVE_OPENAT_SUPPORT 1
+#else
+# define HAVE_OPENAT_SUPPORT 0
+#endif
+
+#ifndef __set_errno
+# define __set_errno(val) (errno = (val))
+#endif
+
+#include <dirent.h>
+#ifndef _D_EXACT_NAMLEN
+# define _D_EXACT_NAMLEN(d) strlen ((d)->d_name)
+#endif
+#ifndef _D_ALLOC_NAMLEN
+# define _D_ALLOC_NAMLEN(d) (_D_EXACT_NAMLEN (d) + 1)
+#endif
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if _LIBC
+# ifndef mempcpy
+#  define mempcpy __mempcpy
+# endif
+#endif
+
+#ifndef MAX
+# define MAX(a, b) ((a) < (b) ? (b) : (a))
+#endif
+#ifndef MIN
+# define MIN(a, b) ((a) < (b) ? (a) : (b))
+#endif
+
+#include "pathmax.h"
+
+/* In this file, PATH_MAX only serves as a threshold for choosing among two
+   algorithms.  */
+#ifndef PATH_MAX
+# define PATH_MAX 8192
+#endif
+
+#if D_INO_IN_DIRENT
+# define MATCHING_INO(dp, ino) ((dp)->d_ino == (ino))
+#else
+# define MATCHING_INO(dp, ino) true
+#endif
+
+#if !_LIBC
+# define __getcwd rpl_getcwd
+# define __lstat lstat
+# define __closedir closedir
+# define __opendir opendir
+# define __readdir readdir
+#endif
+
+/* The results of opendir() in this file are not used with dirfd and fchdir,
+   and we do not leak fds to any single-threaded code that could use stdio,
+   therefore save some unnecessary recursion in fchdir.c.
+   FIXME - if the kernel ever adds support for multi-thread safety for
+   avoiding standard fds, then we should use opendir_safer and
+   openat_safer.  */
+#ifdef GNULIB_defined_opendir
+# undef opendir
+#endif
+#ifdef GNULIB_defined_closedir
+# undef closedir
+#endif
+
+/* Get the name of the current working directory, and put it in SIZE
+   bytes of BUF.  Returns NULL if the directory couldn't be determined or
+   SIZE was too small.  If successful, returns BUF.  In GNU, if BUF is
+   NULL, an array is allocated with 'malloc'; the array is SIZE bytes long,
+   unless SIZE == 0, in which case it is as big as necessary.  */
+
+char *
+__getcwd (char *buf, size_t size)
+{
+  /* Lengths of big file name components and entire file names, and a
+     deep level of file name nesting.  These numbers are not upper
+     bounds; they are merely large values suitable for initial
+     allocations, designed to be large enough for most real-world
+     uses.  */
+  enum
+    {
+      BIG_FILE_NAME_COMPONENT_LENGTH = 255,
+      BIG_FILE_NAME_LENGTH = MIN (4095, PATH_MAX - 1),
+      DEEP_NESTING = 100
+    };
+
+#if HAVE_OPENAT_SUPPORT
+  int fd = AT_FDCWD;
+  bool fd_needs_closing = false;
+#else
+  char dots[DEEP_NESTING * sizeof ".." + BIG_FILE_NAME_COMPONENT_LENGTH + 1];
+  char *dotlist = dots;
+  size_t dotsize = sizeof dots;
+  size_t dotlen = 0;
+#endif
+  DIR *dirstream = NULL;
+  dev_t rootdev, thisdev;
+  ino_t rootino, thisino;
+  char *dir;
+  register char *dirp;
+  struct stat st;
+  size_t allocated = size;
+  size_t used;
+
+#if HAVE_MINIMALLY_WORKING_GETCWD
+  /* If AT_FDCWD is not defined, the algorithm below is O(N**2) and
+     this is much slower than the system getcwd (at least on
+     GNU/Linux).  So trust the system getcwd's results unless they
+     look suspicious.
+
+     Use the system getcwd even if we have openat support, since the
+     system getcwd works even when a parent is unreadable, while the
+     openat-based approach does not.
+
+     But on AIX 5.1..7.1, the system getcwd is not even minimally
+     working: If the current directory name is slightly longer than
+     PATH_MAX, it omits the first directory component and returns
+     this wrong result with errno = 0.  */
+
+# undef getcwd
+  dir = getcwd (buf, size);
+  if (dir || (size && errno == ERANGE))
+    return dir;
+
+  /* Solaris getcwd (NULL, 0) fails with errno == EINVAL, but it has
+     internal magic that lets it work even if an ancestor directory is
+     inaccessible, which is better in many cases.  So in this case try
+     again with a buffer that's almost always big enough.  */
+  if (errno == EINVAL && buf == NULL && size == 0)
+    {
+      char big_buffer[BIG_FILE_NAME_LENGTH + 1];
+      dir = getcwd (big_buffer, sizeof big_buffer);
+      if (dir)
+        return strdup (dir);
+    }
+
+# if HAVE_PARTLY_WORKING_GETCWD
+  /* The system getcwd works, except it sometimes fails when it
+     shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT.    */
+  if (errno != ERANGE && errno != ENAMETOOLONG && errno != ENOENT)
+    return NULL;
+# endif
+#endif
+
+  if (size == 0)
+    {
+      if (buf != NULL)
+        {
+          __set_errno (EINVAL);
+          return NULL;
+        }
+
+      allocated = BIG_FILE_NAME_LENGTH + 1;
+    }
+
+  if (buf == NULL)
+    {
+      dir = malloc (allocated);
+      if (dir == NULL)
+        return NULL;
+    }
+  else
+    dir = buf;
+
+  dirp = dir + allocated;
+  *--dirp = '\0';
+
+  if (__lstat (".", &st) < 0)
+    goto lose;
+  thisdev = st.st_dev;
+  thisino = st.st_ino;
+
+  if (__lstat ("/", &st) < 0)
+    goto lose;
+  rootdev = st.st_dev;
+  rootino = st.st_ino;
+
+  while (!(thisdev == rootdev && thisino == rootino))
+    {
+      struct dirent *d;
+      dev_t dotdev;
+      ino_t dotino;
+      bool mount_point;
+      int parent_status;
+      size_t dirroom;
+      size_t namlen;
+      bool use_d_ino = true;
+
+      /* Look at the parent directory.  */
+#if HAVE_OPENAT_SUPPORT
+      fd = openat (fd, "..", O_RDONLY);
+      if (fd < 0)
+        goto lose;
+      fd_needs_closing = true;
+      parent_status = fstat (fd, &st);
+#else
+      dotlist[dotlen++] = '.';
+      dotlist[dotlen++] = '.';
+      dotlist[dotlen] = '\0';
+      parent_status = __lstat (dotlist, &st);
+#endif
+      if (parent_status != 0)
+        goto lose;
+
+      if (dirstream && __closedir (dirstream) != 0)
+        {
+          dirstream = NULL;
+          goto lose;
+        }
+
+      /* Figure out if this directory is a mount point.  */
+      dotdev = st.st_dev;
+      dotino = st.st_ino;
+      mount_point = dotdev != thisdev;
+
+      /* Search for the last directory.  */
+#if HAVE_OPENAT_SUPPORT
+      dirstream = fdopendir (fd);
+      if (dirstream == NULL)
+        goto lose;
+      fd_needs_closing = false;
+#else
+      dirstream = __opendir (dotlist);
+      if (dirstream == NULL)
+        goto lose;
+      dotlist[dotlen++] = '/';
+#endif
+      for (;;)
+        {
+          /* Clear errno to distinguish EOF from error if readdir returns
+             NULL.  */
+          __set_errno (0);
+          d = __readdir (dirstream);
+
+          /* When we've iterated through all directory entries without finding
+             one with a matching d_ino, rewind the stream and consider each
+             name again, but this time, using lstat.  This is necessary in a
+             chroot on at least one system (glibc-2.3.6 + linux 2.6.12), where
+             .., ../.., ../../.., etc. all had the same device number, yet the
+             d_ino values for entries in / did not match those obtained
+             via lstat.  */
+          if (d == NULL && errno == 0 && use_d_ino)
+            {
+              use_d_ino = false;
+              rewinddir (dirstream);
+              d = __readdir (dirstream);
+            }
+
+          if (d == NULL)
+            {
+              if (errno == 0)
+                /* EOF on dirstream, which can mean e.g., that the current
+                   directory has been removed.  */
+                __set_errno (ENOENT);
+              goto lose;
+            }
+          if (d->d_name[0] == '.' &&
+              (d->d_name[1] == '\0' ||
+               (d->d_name[1] == '.' && d->d_name[2] == '\0')))
+            continue;
+
+          if (use_d_ino)
+            {
+              bool match = (MATCHING_INO (d, thisino) || mount_point);
+              if (! match)
+                continue;
+            }
+
+          {
+            int entry_status;
+#if HAVE_OPENAT_SUPPORT
+            entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW);
+#else
+            /* Compute size needed for this file name, or for the file
+               name ".." in the same directory, whichever is larger.
+               Room for ".." might be needed the next time through
+               the outer loop.  */
+            size_t name_alloc = _D_ALLOC_NAMLEN (d);
+            size_t filesize = dotlen + MAX (sizeof "..", name_alloc);
+
+            if (filesize < dotlen)
+              goto memory_exhausted;
+
+            if (dotsize < filesize)
+              {
+                /* My, what a deep directory tree you have, Grandma.  */
+                size_t newsize = MAX (filesize, dotsize * 2);
+                size_t i;
+                if (newsize < dotsize)
+                  goto memory_exhausted;
+                if (dotlist != dots)
+                  free (dotlist);
+                dotlist = malloc (newsize);
+                if (dotlist == NULL)
+                  goto lose;
+                dotsize = newsize;
+
+                i = 0;
+                do
+                  {
+                    dotlist[i++] = '.';
+                    dotlist[i++] = '.';
+                    dotlist[i++] = '/';
+                  }
+                while (i < dotlen);
+              }
+
+            memcpy (dotlist + dotlen, d->d_name, _D_ALLOC_NAMLEN (d));
+            entry_status = __lstat (dotlist, &st);
+#endif
+            /* We don't fail here if we cannot stat() a directory entry.
+               This can happen when (network) file systems fail.  If this
+               entry is in fact the one we are looking for we will find
+               out soon as we reach the end of the directory without
+               having found anything.  */
+            if (entry_status == 0 && S_ISDIR (st.st_mode)
+                && st.st_dev == thisdev && st.st_ino == thisino)
+              break;
+          }
+        }
+
+      dirroom = dirp - dir;
+      namlen = _D_EXACT_NAMLEN (d);
+
+      if (dirroom <= namlen)
+        {
+          if (size != 0)
+            {
+              __set_errno (ERANGE);
+              goto lose;
+            }
+          else
+            {
+              char *tmp;
+              size_t oldsize = allocated;
+
+              allocated += MAX (allocated, namlen);
+              if (allocated < oldsize
+                  || ! (tmp = realloc (dir, allocated)))
+                goto memory_exhausted;
+
+              /* Move current contents up to the end of the buffer.
+                 This is guaranteed to be non-overlapping.  */
+              dirp = memcpy (tmp + allocated - (oldsize - dirroom),
+                             tmp + dirroom,
+                             oldsize - dirroom);
+              dir = tmp;
+            }
+        }
+      dirp -= namlen;
+      memcpy (dirp, d->d_name, namlen);
+      *--dirp = '/';
+
+      thisdev = dotdev;
+      thisino = dotino;
+    }
+
+  if (dirstream && __closedir (dirstream) != 0)
+    {
+      dirstream = NULL;
+      goto lose;
+    }
+
+  if (dirp == &dir[allocated - 1])
+    *--dirp = '/';
+
+#if ! HAVE_OPENAT_SUPPORT
+  if (dotlist != dots)
+    free (dotlist);
+#endif
+
+  used = dir + allocated - dirp;
+  memmove (dir, dirp, used);
+
+  if (size == 0)
+    /* Ensure that the buffer is only as large as necessary.  */
+    buf = realloc (dir, used);
+
+  if (buf == NULL)
+    /* Either buf was NULL all along, or 'realloc' failed but
+       we still have the original string.  */
+    buf = dir;
+
+  return buf;
+
+ memory_exhausted:
+  __set_errno (ENOMEM);
+ lose:
+  {
+    int save = errno;
+    if (dirstream)
+      __closedir (dirstream);
+#if HAVE_OPENAT_SUPPORT
+    if (fd_needs_closing)
+      close (fd);
+#else
+    if (dotlist != dots)
+      free (dotlist);
+#endif
+    if (buf == NULL)
+      free (dir);
+    __set_errno (save);
+  }
+  return NULL;
+}
+
+#ifdef weak_alias
+weak_alias (__getcwd, getcwd)
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/getcwd-lgpl.c ./gdb/gnulib/import/getcwd-lgpl.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/getcwd-lgpl.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/getcwd-lgpl.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,126 @@
+/* Copyright (C) 2011-2016 Free Software Foundation, Inc.
+   This file is part of gnulib.
+
+   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 <config.h>
+
+/* Specification */
+#include <unistd.h>
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if GNULIB_GETCWD
+/* Favor GPL getcwd.c if both getcwd and getcwd-lgpl modules are in use.  */
+typedef int dummy;
+#else
+
+/* Get the name of the current working directory, and put it in SIZE
+   bytes of BUF.  Returns NULL if the directory couldn't be determined
+   (perhaps because the absolute name was longer than PATH_MAX, or
+   because of missing read/search permissions on parent directories)
+   or SIZE was too small.  If successful, returns BUF.  If BUF is
+   NULL, an array is allocated with 'malloc'; the array is SIZE bytes
+   long, unless SIZE == 0, in which case it is as big as
+   necessary.  */
+
+# undef getcwd
+char *
+rpl_getcwd (char *buf, size_t size)
+{
+  char *ptr;
+  char *result;
+
+  /* Handle single size operations.  */
+  if (buf)
+    {
+      if (!size)
+        {
+          errno = EINVAL;
+          return NULL;
+        }
+      return getcwd (buf, size);
+    }
+
+  if (size)
+    {
+      buf = malloc (size);
+      if (!buf)
+        {
+          errno = ENOMEM;
+          return NULL;
+        }
+      result = getcwd (buf, size);
+      if (!result)
+        {
+          int saved_errno = errno;
+          free (buf);
+          errno = saved_errno;
+        }
+      return result;
+    }
+
+  /* Flexible sizing requested.  Avoid over-allocation for the common
+     case of a name that fits within a 4k page, minus some space for
+     local variables, to be sure we don't skip over a guard page.  */
+  {
+    char tmp[4032];
+    size = sizeof tmp;
+    ptr = getcwd (tmp, size);
+    if (ptr)
+      {
+        result = strdup (ptr);
+        if (!result)
+          errno = ENOMEM;
+        return result;
+      }
+    if (errno != ERANGE)
+      return NULL;
+  }
+
+  /* My what a large directory name we have.  */
+  do
+    {
+      size <<= 1;
+      ptr = realloc (buf, size);
+      if (ptr == NULL)
+        {
+          free (buf);
+          errno = ENOMEM;
+          return NULL;
+        }
+      buf = ptr;
+      result = getcwd (buf, size);
+    }
+  while (!result && errno == ERANGE);
+
+  if (!result)
+    {
+      int saved_errno = errno;
+      free (buf);
+      errno = saved_errno;
+    }
+  else
+    {
+      /* Trim to fit, if possible.  */
+      result = realloc (buf, strlen (buf) + 1);
+      if (!result)
+        result = buf;
+    }
+  return result;
+}
+
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/getdtablesize.c ./gdb/gnulib/import/getdtablesize.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/getdtablesize.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/getdtablesize.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,121 @@
+/* getdtablesize() function for platforms that don't have it.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2008.
+
+   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 <config.h>
+
+/* Specification.  */
+#include <unistd.h>
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+# include <stdio.h>
+
+# include "msvc-inval.h"
+
+# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static int
+_setmaxstdio_nothrow (int newmax)
+{
+  int result;
+
+  TRY_MSVC_INVAL
+    {
+      result = _setmaxstdio (newmax);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = -1;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+#  define _setmaxstdio _setmaxstdio_nothrow
+# endif
+
+/* Cache for the previous getdtablesize () result.  Safe to cache because
+   Windows also lacks setrlimit.  */
+static int dtablesize;
+
+int
+getdtablesize (void)
+{
+  if (dtablesize == 0)
+    {
+      /* We are looking for the number N such that the valid file descriptors
+         are 0..N-1.  It can be obtained through a loop as follows:
+           {
+             int fd;
+             for (fd = 3; fd < 65536; fd++)
+               if (dup2 (0, fd) == -1)
+                 break;
+             return fd;
+           }
+         On Windows XP, the result is 2048.
+         The drawback of this loop is that it allocates memory for a libc
+         internal array that is never freed.
+
+         The number N can also be obtained as the upper bound for
+         _getmaxstdio ().  _getmaxstdio () returns the maximum number of open
+         FILE objects.  The sanity check in _setmaxstdio reveals the maximum
+         number of file descriptors.  This too allocates memory, but it is
+         freed when we call _setmaxstdio with the original value.  */
+      int orig_max_stdio = _getmaxstdio ();
+      unsigned int bound;
+      for (bound = 0x10000; _setmaxstdio (bound) < 0; bound = bound / 2)
+        ;
+      _setmaxstdio (orig_max_stdio);
+      dtablesize = bound;
+    }
+  return dtablesize;
+}
+
+#else
+
+# include <limits.h>
+# include <sys/resource.h>
+
+# ifndef RLIM_SAVED_CUR
+#  define RLIM_SAVED_CUR RLIM_INFINITY
+# endif
+# ifndef RLIM_SAVED_MAX
+#  define RLIM_SAVED_MAX RLIM_INFINITY
+# endif
+
+# ifdef __CYGWIN__
+  /* Cygwin 1.7.25 auto-increases the RLIMIT_NOFILE soft limit until it
+     hits the compile-time constant hard limit of 3200.  We might as
+     well just report the hard limit.  */
+#  define rlim_cur rlim_max
+# endif
+
+int
+getdtablesize (void)
+{
+  struct rlimit lim;
+
+  if (getrlimit (RLIMIT_NOFILE, &lim) == 0
+      && 0 <= lim.rlim_cur && lim.rlim_cur <= INT_MAX
+      && lim.rlim_cur != RLIM_INFINITY
+      && lim.rlim_cur != RLIM_SAVED_CUR
+      && lim.rlim_cur != RLIM_SAVED_MAX)
+    return lim.rlim_cur;
+
+  return INT_MAX;
+}
+
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/getlogin_r.c ./gdb/gnulib/import/getlogin_r.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/getlogin_r.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/getlogin_r.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,87 @@
+/* Provide a working getlogin_r for systems which lack it.
+
+   Copyright (C) 2005-2007, 2010-2016 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, 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/>.  */
+
+/* Written by Paul Eggert, Derek Price, and Bruno Haible.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <unistd.h>
+
+#include <errno.h>
+#include <string.h>
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#else
+# if !HAVE_DECL_GETLOGIN
+extern char *getlogin (void);
+# endif
+#endif
+
+/* See unistd.in.h for documentation.  */
+int
+getlogin_r (char *name, size_t size)
+{
+#undef getlogin_r
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+  /* Native Windows platform.  */
+  DWORD sz;
+
+  /* When size > 0x7fff, the doc says that GetUserName will fail.
+     Actually, on Windows XP SP3, it succeeds.  But let's be safe,
+     for the sake of older Windows versions.  */
+  if (size > 0x7fff)
+    size = 0x7fff;
+  sz = size;
+  if (!GetUserName (name, &sz))
+    {
+      if (GetLastError () == ERROR_INSUFFICIENT_BUFFER)
+        /* In this case, the doc says that sz contains the required size, but
+           actually, on Windows XP SP3, it contains 2 * the required size.  */
+        return ERANGE;
+      else
+        return ENOENT;
+    }
+  return 0;
+#elif HAVE_GETLOGIN_R
+  /* Platform with a getlogin_r() function.  */
+  int ret = getlogin_r (name, size);
+
+  if (ret == 0 && memchr (name, '\0', size) == NULL)
+    /* name contains a truncated result.  */
+    return ERANGE;
+  return ret;
+#else
+  /* Platform with a getlogin() function.  */
+  char *n;
+  size_t nlen;
+
+  errno = 0;
+  n = getlogin ();
+  if (!n)
+    /* ENOENT is a reasonable errno value if getlogin returns NULL.  */
+    return (errno != 0 ? errno : ENOENT);
+
+  nlen = strlen (n);
+  if (size <= nlen)
+    return ERANGE;
+  memcpy (name, n, nlen + 1);
+  return 0;
+#endif
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/getprogname.c ./gdb/gnulib/import/getprogname.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/getprogname.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/getprogname.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,151 @@
+/* Program name management.
+   Copyright (C) 2016 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/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "getprogname.h"
+
+#include <errno.h> /* get program_invocation_name declaration */
+#include <stdlib.h> /* get __argv declaration */
+
+#ifdef _AIX
+# include <unistd.h>
+# include <procinfo.h>
+# include <string.h>
+#endif
+
+#ifdef __MVS__
+# ifndef _OPEN_SYS
+#  define _OPEN_SYS
+# endif
+# include <string.h>
+# include <sys/ps.h>
+#endif
+
+#ifdef __hpux
+# include <unistd.h>
+# include <sys/param.h>
+# include <sys/pstat.h>
+# include <string.h>
+#endif
+
+#include "dirname.h"
+
+#ifndef HAVE_GETPROGNAME             /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Cygwin */
+char const *
+getprogname (void)
+{
+# if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME                /* glibc, BeOS */
+  /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */
+  return program_invocation_short_name;
+# elif HAVE_DECL_PROGRAM_INVOCATION_NAME                    /* glibc, BeOS */
+  /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */
+  return last_component (program_invocation_name);
+# elif HAVE_GETEXECNAME                                     /* Solaris */
+  /* http://docs.oracle.com/cd/E19253-01/816-5168/6mbb3hrb1/index.html */
+  const char *p = getexecname ();
+  if (!p)
+    p = "?";
+  return last_component (p);
+# elif HAVE_DECL___ARGV                                     /* mingw, MSVC */
+  /* https://msdn.microsoft.com/en-us/library/dn727674.aspx */
+  const char *p = __argv && __argv[0] ? __argv[0] : "?";
+  return last_component (p);
+# elif HAVE_VAR___PROGNAME                                  /* OpenBSD, QNX */
+  /* http://man.openbsd.org/style.9 */
+  /* http://www.qnx.de/developers/docs/6.5.0/index.jsp?topic=%2Fcom.qnx.doc.neutrino_lib_ref%2Fp%2F__progname.html */
+  /* Be careful to declare this only when we absolutely need it
+     (OpenBSD 5.1), rather than when it's available.  Otherwise,
+     its mere declaration makes program_invocation_short_name
+     malfunction (have zero length) with Fedora 25's glibc.  */
+  extern char *__progname;
+  const char *p = __progname;
+  return p && p[0] ? p : "?";
+# elif _AIX                                                 /* AIX */
+  /* Idea by Bastien ROUCARIÃˆS,
+     http://lists.gnu.org/archive/html/bug-gnulib/2010-12/msg00095.html
+     Reference: http://
+   ibm.biz/knowctr#ssw_aix_53/com.ibm.aix.basetechref/doc/basetrf1/getprocs.htm
+  */
+  static char *p;
+  static int first = 1;
+  if (first)
+    {
+      first = 0;
+      pid_t pid = getpid ();
+      struct procentry64 procs;
+      p = (0 < getprocs64 (&procs, sizeof procs, NULL, 0, &pid, 1)
+           ? strdup (procs.pi_comm)
+           : NULL);
+      if (!p)
+        p = "?";
+    }
+  return p;
+# elif defined __hpux
+  static char *p;
+  static int first = 1;
+  if (first)
+    {
+      first = 0;
+      pid_t pid = getpid ();
+      struct pst_status status;
+      p = (0 < pstat_getproc (&status, sizeof status, 0, pid)
+           ? strdup (status.pst_ucomm)
+           : NULL);
+      if (!p)
+        p = "?";
+    }
+  return p;
+# elif __MVS__                                              /* z/OS */
+  /* https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/rtwgetp.htm */
+  static char *p = "?";
+  static int first = 1;
+  if (first)
+    {
+      pid_t pid = getpid ();
+      int token;
+      W_PSPROC buf;
+      first = 0;
+      memset (&buf, 0, sizeof(buf));
+      buf.ps_cmdptr    = (char *) malloc (buf.ps_cmdlen    = PS_CMDBLEN_LONG);
+      buf.ps_conttyptr = (char *) malloc (buf.ps_conttylen = PS_CONTTYBLEN);
+      buf.ps_pathptr   = (char *) malloc (buf.ps_pathlen   = PS_PATHBLEN);
+      if (buf.ps_cmdptr && buf.ps_conttyptr && buf.ps_pathptr)
+        {
+          for (token = 0; token >= 0;
+               token = w_getpsent (token, &buf, sizeof(buf)))
+            {
+              if (token > 0 && buf.ps_pid == pid)
+                {
+                  char *s = strdup (last_component (buf.ps_pathptr));
+                  if (s)
+                    p = s;
+                  break;
+                }
+            }
+        }
+      free (buf.ps_cmdptr);
+      free (buf.ps_conttyptr);
+      free (buf.ps_pathptr);
+    }
+  return p;
+# else
+#  error "getprogname module not ported to this OS"
+# endif
+}
+
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/getprogname.h ./gdb/gnulib/import/getprogname.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/getprogname.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/getprogname.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,40 @@
+/* Program name management.
+   Copyright (C) 2016 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/>.  */
+
+#ifndef _GL_GETPROGNAME_H
+#define _GL_GETPROGNAME_H
+
+#include <stdlib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Return the base name of the executing program.
+   On native Windows this will usually end in ".exe" or ".EXE". */
+#ifndef HAVE_GETPROGNAME
+extern char const *getprogname (void)
+# ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME
+  _GL_ATTRIBUTE_PURE
+# endif
+  ;
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/gettext.h ./gdb/gnulib/import/gettext.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/gettext.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/gettext.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,292 @@
+/* Convenience header for conditional use of GNU <libintl.h>.
+   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2016 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, 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 _LIBGETTEXT_H
+#define _LIBGETTEXT_H 1
+
+/* NLS can be disabled through the configure --disable-nls option.  */
+#if ENABLE_NLS
+
+/* Get declarations of GNU message catalog functions.  */
+# include <libintl.h>
+
+/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by
+   the gettext() and ngettext() macros.  This is an alternative to calling
+   textdomain(), and is useful for libraries.  */
+# ifdef DEFAULT_TEXT_DOMAIN
+#  undef gettext
+#  define gettext(Msgid) \
+     dgettext (DEFAULT_TEXT_DOMAIN, Msgid)
+#  undef ngettext
+#  define ngettext(Msgid1, Msgid2, N) \
+     dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N)
+# endif
+
+#else
+
+/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
+   chokes if dcgettext is defined as a macro.  So include it now, to make
+   later inclusions of <locale.h> a NOP.  We don't include <libintl.h>
+   as well because people using "gettext.h" will not include <libintl.h>,
+   and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
+   is OK.  */
+#if defined(__sun)
+# include <locale.h>
+#endif
+
+/* Many header files from the libstdc++ coming with g++ 3.3 or newer include
+   <libintl.h>, which chokes if dcgettext is defined as a macro.  So include
+   it now, to make later inclusions of <libintl.h> a NOP.  */
+#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
+# include <cstdlib>
+# if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H
+#  include <libintl.h>
+# endif
+#endif
+
+/* Disabled NLS.
+   The casts to 'const char *' serve the purpose of producing warnings
+   for invalid uses of the value returned from these functions.
+   On pre-ANSI systems without 'const', the config.h file is supposed to
+   contain "#define const".  */
+# undef gettext
+# define gettext(Msgid) ((const char *) (Msgid))
+# undef dgettext
+# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid))
+# undef dcgettext
+# define dcgettext(Domainname, Msgid, Category) \
+    ((void) (Category), dgettext (Domainname, Msgid))
+# undef ngettext
+# define ngettext(Msgid1, Msgid2, N) \
+    ((N) == 1 \
+     ? ((void) (Msgid2), (const char *) (Msgid1)) \
+     : ((void) (Msgid1), (const char *) (Msgid2)))
+# undef dngettext
+# define dngettext(Domainname, Msgid1, Msgid2, N) \
+    ((void) (Domainname), ngettext (Msgid1, Msgid2, N))
+# undef dcngettext
+# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
+    ((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N))
+# undef textdomain
+# define textdomain(Domainname) ((const char *) (Domainname))
+# undef bindtextdomain
+# define bindtextdomain(Domainname, Dirname) \
+    ((void) (Domainname), (const char *) (Dirname))
+# undef bind_textdomain_codeset
+# define bind_textdomain_codeset(Domainname, Codeset) \
+    ((void) (Domainname), (const char *) (Codeset))
+
+#endif
+
+/* Prefer gnulib's setlocale override over libintl's setlocale override.  */
+#ifdef GNULIB_defined_setlocale
+# undef setlocale
+# define setlocale rpl_setlocale
+#endif
+
+/* A pseudo function call that serves as a marker for the automated
+   extraction of messages, but does not call gettext().  The run-time
+   translation is done at a different place in the code.
+   The argument, String, should be a literal string.  Concatenated strings
+   and other string expressions won't work.
+   The macro's expansion is not parenthesized, so that it is suitable as
+   initializer for static 'char[]' or 'const char[]' variables.  */
+#define gettext_noop(String) String
+
+/* The separator between msgctxt and msgid in a .mo file.  */
+#define GETTEXT_CONTEXT_GLUE "\004"
+
+/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a
+   MSGID.  MSGCTXT and MSGID must be string literals.  MSGCTXT should be
+   short and rarely need to change.
+   The letter 'p' stands for 'particular' or 'special'.  */
+#ifdef DEFAULT_TEXT_DOMAIN
+# define pgettext(Msgctxt, Msgid) \
+   pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#else
+# define pgettext(Msgctxt, Msgid) \
+   pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#endif
+#define dpgettext(Domainname, Msgctxt, Msgid) \
+  pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \
+  pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category)
+#ifdef DEFAULT_TEXT_DOMAIN
+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+   npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#else
+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+   npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#endif
+#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+  npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \
+  npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+pgettext_aux (const char *domain,
+              const char *msg_ctxt_id, const char *msgid,
+              int category)
+{
+  const char *translation = dcgettext (domain, msg_ctxt_id, category);
+  if (translation == msg_ctxt_id)
+    return msgid;
+  else
+    return translation;
+}
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+npgettext_aux (const char *domain,
+               const char *msg_ctxt_id, const char *msgid,
+               const char *msgid_plural, unsigned long int n,
+               int category)
+{
+  const char *translation =
+    dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+  if (translation == msg_ctxt_id || translation == msgid_plural)
+    return (n == 1 ? msgid : msgid_plural);
+  else
+    return translation;
+}
+
+/* The same thing extended for non-constant arguments.  Here MSGCTXT and MSGID
+   can be arbitrary expressions.  But for string literals these macros are
+   less efficient than those above.  */
+
+#include <string.h>
+
+#if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
+     /* || __STDC_VERSION__ >= 199901L */ )
+# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1
+#else
+# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0
+#endif
+
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+#include <stdlib.h>
+#endif
+
+#define pgettext_expr(Msgctxt, Msgid) \
+  dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES)
+#define dpgettext_expr(Domainname, Msgctxt, Msgid) \
+  dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+dcpgettext_expr (const char *domain,
+                 const char *msgctxt, const char *msgid,
+                 int category)
+{
+  size_t msgctxt_len = strlen (msgctxt) + 1;
+  size_t msgid_len = strlen (msgid) + 1;
+  const char *translation;
+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+  char msg_ctxt_id[msgctxt_len + msgid_len];
+#else
+  char buf[1024];
+  char *msg_ctxt_id =
+    (msgctxt_len + msgid_len <= sizeof (buf)
+     ? buf
+     : (char *) malloc (msgctxt_len + msgid_len));
+  if (msg_ctxt_id != NULL)
+#endif
+    {
+      int found_translation;
+      memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+      msg_ctxt_id[msgctxt_len - 1] = '\004';
+      memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+      translation = dcgettext (domain, msg_ctxt_id, category);
+      found_translation = (translation != msg_ctxt_id);
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+      if (msg_ctxt_id != buf)
+        free (msg_ctxt_id);
+#endif
+      if (found_translation)
+        return translation;
+    }
+  return msgid;
+}
+
+#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \
+  dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+  dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+dcnpgettext_expr (const char *domain,
+                  const char *msgctxt, const char *msgid,
+                  const char *msgid_plural, unsigned long int n,
+                  int category)
+{
+  size_t msgctxt_len = strlen (msgctxt) + 1;
+  size_t msgid_len = strlen (msgid) + 1;
+  const char *translation;
+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+  char msg_ctxt_id[msgctxt_len + msgid_len];
+#else
+  char buf[1024];
+  char *msg_ctxt_id =
+    (msgctxt_len + msgid_len <= sizeof (buf)
+     ? buf
+     : (char *) malloc (msgctxt_len + msgid_len));
+  if (msg_ctxt_id != NULL)
+#endif
+    {
+      int found_translation;
+      memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+      msg_ctxt_id[msgctxt_len - 1] = '\004';
+      memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+      translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+      found_translation = !(translation == msg_ctxt_id || translation == msgid_plural);
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+      if (msg_ctxt_id != buf)
+        free (msg_ctxt_id);
+#endif
+      if (found_translation)
+        return translation;
+    }
+  return (n == 1 ? msgid : msgid_plural);
+}
+
+#endif /* _LIBGETTEXT_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/glob.c ./gdb/gnulib/import/glob.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/glob.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/glob.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,1808 @@
+/* Copyright (C) 1991-2016 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public
+   License as published by the Free Software Foundation; either
+   version 3 of the License, or (at your option) any later version.
+
+   The GNU C Library 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 the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _LIBC
+/* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
+   optimizes away the pattern == NULL || pglob == NULL tests below.  */
+# define _GL_ARG_NONNULL(params)
+# include <config.h>
+#endif
+
+#include <glob.h>
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+
+/* Outcomment the following line for production quality code.  */
+/* #define NDEBUG 1 */
+#include <assert.h>
+
+#include <stdio.h>              /* Needed on stupid SunOS for assert.  */
+
+#ifndef GLOB_ONLY_P
+
+#include <unistd.h>
+#if !defined POSIX && defined _POSIX_VERSION
+# define POSIX
+#endif
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# define WINDOWS32
+#endif
+
+#ifndef WINDOWS32
+# include <pwd.h>
+#endif
+
+#include <errno.h>
+#ifndef __set_errno
+# define __set_errno(val) errno = (val)
+#endif
+
+#include <dirent.h>
+#include <stdlib.h>
+#include <string.h>
+#include <alloca.h>
+
+#ifdef _LIBC
+# undef strdup
+# define strdup(str) __strdup (str)
+# define sysconf(id) __sysconf (id)
+# define closedir(dir) __closedir (dir)
+# define opendir(name) __opendir (name)
+# define readdir(str) __readdir64 (str)
+# define getpwnam_r(name, bufp, buf, len, res) \
+   __getpwnam_r (name, bufp, buf, len, res)
+# ifndef __stat64
+#  define __stat64(fname, buf) __xstat64 (_STAT_VER, fname, buf)
+# endif
+# define struct_stat64          struct stat64
+#else /* !_LIBC */
+# define __getlogin_r(buf, len) getlogin_r (buf, len)
+# define __stat64(fname, buf)   stat (fname, buf)
+# define __fxstatat64(_, d, f, st, flag) fstatat (d, f, st, flag)
+# define struct_stat64          struct stat
+# ifndef __MVS__
+#  define __alloca              alloca
+# endif
+# define __readdir              readdir
+# define __glob_pattern_p       glob_pattern_p
+# define COMPILE_GLOB64
+#endif /* _LIBC */
+
+#include <fnmatch.h>
+
+#include "flexmember.h"
+
+#ifdef _SC_GETPW_R_SIZE_MAX
+# define GETPW_R_SIZE_MAX()     sysconf (_SC_GETPW_R_SIZE_MAX)
+#else
+# define GETPW_R_SIZE_MAX()     (-1)
+#endif
+#ifdef _SC_LOGIN_NAME_MAX
+# define GET_LOGIN_NAME_MAX()   sysconf (_SC_LOGIN_NAME_MAX)
+#else
+# define GET_LOGIN_NAME_MAX()   (-1)
+#endif
+
+static const char *next_brace_sub (const char *begin, int flags) __THROWNL;
+
+/* A representation of a directory entry which does not depend on the
+   layout of struct dirent, or the size of ino_t.  */
+struct readdir_result
+{
+  const char *name;
+# if defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE
+  uint8_t type;
+# endif
+  bool skip_entry;
+};
+
+# if defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE
+/* Initializer based on the d_type member of struct dirent.  */
+#  define D_TYPE_TO_RESULT(source) (source)->d_type,
+
+/* True if the directory entry D might be a symbolic link.  */
+static bool
+readdir_result_might_be_symlink (struct readdir_result d)
+{
+  return d.type == DT_UNKNOWN || d.type == DT_LNK;
+}
+
+/* True if the directory entry D might be a directory.  */
+static bool
+readdir_result_might_be_dir (struct readdir_result d)
+{
+  return d.type == DT_DIR || readdir_result_might_be_symlink (d);
+}
+# else /* defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE */
+#  define D_TYPE_TO_RESULT(source)
+
+/* If we do not have type information, symbolic links and directories
+   are always a possibility.  */
+
+static bool
+readdir_result_might_be_symlink (struct readdir_result d)
+{
+  return true;
+}
+
+static bool
+readdir_result_might_be_dir (struct readdir_result d)
+{
+  return true;
+}
+
+# endif /* defined _DIRENT_HAVE_D_TYPE || defined HAVE_STRUCT_DIRENT_D_TYPE */
+
+# if (defined POSIX || defined WINDOWS32) && !defined __GNU_LIBRARY__
+/* Initializer for skip_entry.  POSIX does not require that the d_ino
+   field be present, and some systems do not provide it. */
+#  define D_INO_TO_RESULT(source) false,
+# else
+#  define D_INO_TO_RESULT(source) (source)->d_ino == 0,
+# endif
+
+/* Construct an initializer for a struct readdir_result object from a
+   struct dirent *.  No copy of the name is made.  */
+#define READDIR_RESULT_INITIALIZER(source) \
+  {                                        \
+    source->d_name,                        \
+    D_TYPE_TO_RESULT (source)              \
+    D_INO_TO_RESULT (source)               \
+  }
+
+#endif /* !defined GLOB_ONLY_P */
+
+/* Call gl_readdir on STREAM.  This macro can be overridden to reduce
+   type safety if an old interface version needs to be supported.  */
+#ifndef GL_READDIR
+# define GL_READDIR(pglob, stream) ((pglob)->gl_readdir (stream))
+#endif
+
+/* Extract name and type from directory entry.  No copy of the name is
+   made.  If SOURCE is NULL, result name is NULL.  Keep in sync with
+   convert_dirent64 below.  */
+static struct readdir_result
+convert_dirent (const struct dirent *source)
+{
+  if (source == NULL)
+    {
+      struct readdir_result result = { NULL, };
+      return result;
+    }
+  struct readdir_result result = READDIR_RESULT_INITIALIZER (source);
+  return result;
+}
+
+#ifndef COMPILE_GLOB64
+/* Like convert_dirent, but works on struct dirent64 instead.  Keep in
+   sync with convert_dirent above.  */
+static struct readdir_result
+convert_dirent64 (const struct dirent64 *source)
+{
+  if (source == NULL)
+    {
+      struct readdir_result result = { NULL, };
+      return result;
+    }
+  struct readdir_result result = READDIR_RESULT_INITIALIZER (source);
+  return result;
+}
+#endif
+
+
+#ifndef attribute_hidden
+# define attribute_hidden
+#endif
+
+#ifndef __attribute_noinline__
+# if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 1)
+#  define __attribute_noinline__ /* Ignore */
+#else
+#  define __attribute_noinline__ __attribute__ ((__noinline__))
+# endif
+#endif
+
+#if ! defined __builtin_expect && __GNUC__ < 3
+# define __builtin_expect(expr, expected) (expr)
+#endif
+
+#ifndef __glibc_unlikely
+# define __glibc_unlikely(expr) __builtin_expect (expr, 0)
+#endif
+
+#ifndef _LIBC
+/* The results of opendir() in this file are not used with dirfd and fchdir,
+   and we do not leak fds to any single-threaded code that could use stdio,
+   therefore save some unnecessary recursion in fchdir.c and opendir_safer.c.
+   FIXME - if the kernel ever adds support for multi-thread safety for
+   avoiding standard fds, then we should use opendir_safer.  */
+# ifdef GNULIB_defined_opendir
+#  undef opendir
+# endif
+# ifdef GNULIB_defined_closedir
+#  undef closedir
+# endif
+
+/* Just use malloc.  */
+# define __libc_use_alloca(n) false
+# define alloca_account(len, avar) ((void) (len), (void) (avar), (void *) 0)
+# define extend_alloca_account(buf, len, newlen, avar) \
+    ((void) (buf), (void) (len), (void) (newlen), (void) (avar), (void *) 0)
+#endif
+
+#ifndef __has_builtin
+# define __has_builtin(x) 0
+#endif
+
+/* Set *R = A + B.  Return true if the answer is mathematically
+   incorrect due to overflow; in this case, *R is the low order
+   bits of the correct answer..  */
+
+static bool
+size_add_wrapv (size_t a, size_t b, size_t *r)
+{
+#if 5 <= __GNUC__ || __has_builtin (__builtin_add_overflow)
+  return __builtin_add_overflow (a, b, r);
+#else
+  *r = a + b;
+  return *r < a;
+#endif
+}
+
+static bool
+glob_use_alloca (size_t alloca_used, size_t len)
+{
+  size_t size;
+  return (!size_add_wrapv (alloca_used, len, &size)
+          && __libc_use_alloca (size));
+}
+
+static int glob_in_dir (const char *pattern, const char *directory,
+                        int flags, int (*errfunc) (const char *, int),
+                        glob_t *pglob, size_t alloca_used);
+extern int __glob_pattern_type (const char *pattern, int quote)
+    attribute_hidden;
+
+#ifndef GLOB_ONLY_P
+static int prefix_array (const char *prefix, char **array, size_t n) __THROWNL;
+static int collated_compare (const void *, const void *) __THROWNL;
+
+
+/* Find the end of the sub-pattern in a brace expression.  */
+static const char *
+next_brace_sub (const char *cp, int flags)
+{
+  size_t depth = 0;
+  while (*cp != '\0')
+    if ((flags & GLOB_NOESCAPE) == 0 && *cp == '\\')
+      {
+        if (*++cp == '\0')
+          break;
+        ++cp;
+      }
+    else
+      {
+        if ((*cp == '}' && depth-- == 0) || (*cp == ',' && depth == 0))
+          break;
+
+        if (*cp++ == '{')
+          depth++;
+      }
+
+  return *cp != '\0' ? cp : NULL;
+}
+
+#endif /* !defined GLOB_ONLY_P */
+
+/* Do glob searching for PATTERN, placing results in PGLOB.
+   The bits defined above may be set in FLAGS.
+   If a directory cannot be opened or read and ERRFUNC is not nil,
+   it is called with the pathname that caused the error, and the
+   'errno' value from the failing call; if it returns non-zero
+   'glob' returns GLOB_ABORTED; if it returns zero, the error is ignored.
+   If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned.
+   Otherwise, 'glob' returns zero.  */
+int
+#ifdef GLOB_ATTRIBUTE
+GLOB_ATTRIBUTE
+#endif
+glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
+      glob_t *pglob)
+{
+  const char *filename;
+  char *dirname = NULL;
+  size_t dirlen;
+  int status;
+  size_t oldcount;
+  int meta;
+  int dirname_modified;
+  int malloc_dirname = 0;
+  glob_t dirs;
+  int retval = 0;
+  size_t alloca_used = 0;
+
+  if (pattern == NULL || pglob == NULL || (flags & ~__GLOB_FLAGS) != 0)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  /* POSIX requires all slashes to be matched.  This means that with
+     a trailing slash we must match only directories.  */
+  if (pattern[0] && pattern[strlen (pattern) - 1] == '/')
+    flags |= GLOB_ONLYDIR;
+
+  if (!(flags & GLOB_DOOFFS))
+    /* Have to do this so 'globfree' knows where to start freeing.  It
+       also makes all the code that uses gl_offs simpler. */
+    pglob->gl_offs = 0;
+
+  if (flags & GLOB_BRACE)
+    {
+      const char *begin;
+
+      if (flags & GLOB_NOESCAPE)
+        begin = strchr (pattern, '{');
+      else
+        {
+          begin = pattern;
+          while (1)
+            {
+              if (*begin == '\0')
+                {
+                  begin = NULL;
+                  break;
+                }
+
+              if (*begin == '\\' && begin[1] != '\0')
+                ++begin;
+              else if (*begin == '{')
+                break;
+
+              ++begin;
+            }
+        }
+
+      if (begin != NULL)
+        {
+          /* Allocate working buffer large enough for our work.  Note that
+            we have at least an opening and closing brace.  */
+          size_t firstc;
+          char *alt_start;
+          const char *p;
+          const char *next;
+          const char *rest;
+          size_t rest_len;
+          char *onealt;
+          size_t pattern_len = strlen (pattern) - 1;
+          int alloca_onealt = glob_use_alloca (alloca_used, pattern_len);
+          if (alloca_onealt)
+            onealt = alloca_account (pattern_len, alloca_used);
+          else
+            {
+              onealt = malloc (pattern_len);
+              if (onealt == NULL)
+                {
+                  if (!(flags & GLOB_APPEND))
+                    {
+                      pglob->gl_pathc = 0;
+                      pglob->gl_pathv = NULL;
+                    }
+                  return GLOB_NOSPACE;
+                }
+            }
+
+          /* We know the prefix for all sub-patterns.  */
+          alt_start = mempcpy (onealt, pattern, begin - pattern);
+
+          /* Find the first sub-pattern and at the same time find the
+             rest after the closing brace.  */
+          next = next_brace_sub (begin + 1, flags);
+          if (next == NULL)
+            {
+              /* It is an invalid expression.  */
+            illegal_brace:
+              if (__glibc_unlikely (!alloca_onealt))
+                free (onealt);
+              return glob (pattern, flags & ~GLOB_BRACE, errfunc, pglob);
+            }
+
+          /* Now find the end of the whole brace expression.  */
+          rest = next;
+          while (*rest != '}')
+            {
+              rest = next_brace_sub (rest + 1, flags);
+              if (rest == NULL)
+                /* It is an illegal expression.  */
+                goto illegal_brace;
+            }
+          /* Please note that we now can be sure the brace expression
+             is well-formed.  */
+          rest_len = strlen (++rest) + 1;
+
+          /* We have a brace expression.  BEGIN points to the opening {,
+             NEXT points past the terminator of the first element, and END
+             points past the final }.  We will accumulate result names from
+             recursive runs for each brace alternative in the buffer using
+             GLOB_APPEND.  */
+
+          if (!(flags & GLOB_APPEND))
+            {
+              /* This call is to set a new vector, so clear out the
+                 vector so we can append to it.  */
+              pglob->gl_pathc = 0;
+              pglob->gl_pathv = NULL;
+            }
+          firstc = pglob->gl_pathc;
+
+          p = begin + 1;
+          while (1)
+            {
+              int result;
+
+              /* Construct the new glob expression.  */
+              mempcpy (mempcpy (alt_start, p, next - p), rest, rest_len);
+
+              result = glob (onealt,
+                             ((flags & ~(GLOB_NOCHECK | GLOB_NOMAGIC))
+                              | GLOB_APPEND), errfunc, pglob);
+
+              /* If we got an error, return it.  */
+              if (result && result != GLOB_NOMATCH)
+                {
+                  if (__glibc_unlikely (!alloca_onealt))
+                    free (onealt);
+                  if (!(flags & GLOB_APPEND))
+                    {
+                      globfree (pglob);
+                      pglob->gl_pathc = 0;
+                    }
+                  return result;
+                }
+
+              if (*next == '}')
+                /* We saw the last entry.  */
+                break;
+
+              p = next + 1;
+              next = next_brace_sub (p, flags);
+              assert (next != NULL);
+            }
+
+          if (__glibc_unlikely (!alloca_onealt))
+            free (onealt);
+
+          if (pglob->gl_pathc != firstc)
+            /* We found some entries.  */
+            return 0;
+          else if (!(flags & (GLOB_NOCHECK|GLOB_NOMAGIC)))
+            return GLOB_NOMATCH;
+        }
+    }
+
+  if (!(flags & GLOB_APPEND))
+    {
+      pglob->gl_pathc = 0;
+      if (!(flags & GLOB_DOOFFS))
+        pglob->gl_pathv = NULL;
+      else
+        {
+          size_t i;
+
+          if (pglob->gl_offs >= SIZE_MAX / sizeof (char *))
+            return GLOB_NOSPACE;
+
+          pglob->gl_pathv = malloc ((pglob->gl_offs + 1) * sizeof (char *));
+          if (pglob->gl_pathv == NULL)
+            return GLOB_NOSPACE;
+
+          for (i = 0; i <= pglob->gl_offs; ++i)
+            pglob->gl_pathv[i] = NULL;
+        }
+    }
+
+  oldcount = pglob->gl_pathc + pglob->gl_offs;
+
+  /* Find the filename.  */
+  filename = strrchr (pattern, '/');
+#if defined __MSDOS__ || defined WINDOWS32
+  /* The case of "d:pattern".  Since ':' is not allowed in
+     file names, we can safely assume that wherever it
+     happens in pattern, it signals the filename part.  This
+     is so we could some day support patterns like "[a-z]:foo".  */
+  if (filename == NULL)
+    filename = strchr (pattern, ':');
+#endif /* __MSDOS__ || WINDOWS32 */
+  dirname_modified = 0;
+  if (filename == NULL)
+    {
+      /* This can mean two things: a simple name or "~name".  The latter
+         case is nothing but a notation for a directory.  */
+      if ((flags & (GLOB_TILDE|GLOB_TILDE_CHECK)) && pattern[0] == '~')
+        {
+          dirname = (char *) pattern;
+          dirlen = strlen (pattern);
+
+          /* Set FILENAME to NULL as a special flag.  This is ugly but
+             other solutions would require much more code.  We test for
+             this special case below.  */
+          filename = NULL;
+        }
+      else
+        {
+          if (__glibc_unlikely (pattern[0] == '\0'))
+            {
+              dirs.gl_pathv = NULL;
+              goto no_matches;
+            }
+
+          filename = pattern;
+#ifdef _AMIGA
+          dirname = (char *) "";
+#else
+          dirname = (char *) ".";
+#endif
+          dirlen = 0;
+        }
+    }
+  else if (filename == pattern
+           || (filename == pattern + 1 && pattern[0] == '\\'
+               && (flags & GLOB_NOESCAPE) == 0))
+    {
+      /* "/pattern" or "\\/pattern".  */
+      dirname = (char *) "/";
+      dirlen = 1;
+      ++filename;
+    }
+  else
+    {
+      char *newp;
+      dirlen = filename - pattern;
+#if defined __MSDOS__ || defined WINDOWS32
+      if (*filename == ':'
+          || (filename > pattern + 1 && filename[-1] == ':'))
+        {
+          char *drive_spec;
+
+          ++dirlen;
+          drive_spec = __alloca (dirlen + 1);
+          *((char *) mempcpy (drive_spec, pattern, dirlen)) = '\0';
+          /* For now, disallow wildcards in the drive spec, to
+             prevent infinite recursion in glob.  */
+          if (__glob_pattern_p (drive_spec, !(flags & GLOB_NOESCAPE)))
+            return GLOB_NOMATCH;
+          /* If this is "d:pattern", we need to copy ':' to DIRNAME
+             as well.  If it's "d:/pattern", don't remove the slash
+             from "d:/", since "d:" and "d:/" are not the same.*/
+        }
+#endif
+      if (glob_use_alloca (alloca_used, dirlen + 1))
+        newp = alloca_account (dirlen + 1, alloca_used);
+      else
+        {
+          newp = malloc (dirlen + 1);
+          if (newp == NULL)
+            return GLOB_NOSPACE;
+          malloc_dirname = 1;
+        }
+      *((char *) mempcpy (newp, pattern, dirlen)) = '\0';
+      dirname = newp;
+      ++filename;
+
+      if (filename[0] == '\0'
+#if defined __MSDOS__ || defined WINDOWS32
+          && dirname[dirlen - 1] != ':'
+          && (dirlen < 3 || dirname[dirlen - 2] != ':'
+              || dirname[dirlen - 1] != '/')
+#endif
+          && dirlen > 1)
+        /* "pattern/".  Expand "pattern", appending slashes.  */
+        {
+          int orig_flags = flags;
+          int val;
+          if (!(flags & GLOB_NOESCAPE) && dirname[dirlen - 1] == '\\')
+            {
+              /* "pattern\\/".  Remove the final backslash if it hasn't
+                 been quoted.  */
+              char *p = (char *) &dirname[dirlen - 1];
+
+              while (p > dirname && p[-1] == '\\') --p;
+              if ((&dirname[dirlen] - p) & 1)
+                {
+                  *(char *) &dirname[--dirlen] = '\0';
+                  flags &= ~(GLOB_NOCHECK | GLOB_NOMAGIC);
+                }
+            }
+          val = glob (dirname, flags | GLOB_MARK, errfunc, pglob);
+          if (val == 0)
+            pglob->gl_flags = ((pglob->gl_flags & ~GLOB_MARK)
+                               | (flags & GLOB_MARK));
+          else if (val == GLOB_NOMATCH && flags != orig_flags)
+            {
+              /* Make sure globfree (&dirs); is a nop.  */
+              dirs.gl_pathv = NULL;
+              flags = orig_flags;
+              oldcount = pglob->gl_pathc + pglob->gl_offs;
+              goto no_matches;
+            }
+          retval = val;
+          goto out;
+        }
+    }
+
+  if ((flags & (GLOB_TILDE|GLOB_TILDE_CHECK)) && dirname[0] == '~')
+    {
+      if (dirname[1] == '\0' || dirname[1] == '/'
+          || (!(flags & GLOB_NOESCAPE) && dirname[1] == '\\'
+              && (dirname[2] == '\0' || dirname[2] == '/')))
+        {
+          /* Look up home directory.  */
+          char *home_dir = getenv ("HOME");
+          int malloc_home_dir = 0;
+# ifdef _AMIGA
+          if (home_dir == NULL || home_dir[0] == '\0')
+            home_dir = "SYS:";
+# else
+#  ifdef WINDOWS32
+          /* Windows NT defines HOMEDRIVE and HOMEPATH.  But give preference
+             to HOME, because the user can change HOME.  */
+          if (home_dir == NULL || home_dir[0] == '\0')
+            {
+              const char *home_drive = getenv ("HOMEDRIVE");
+              const char *home_path = getenv ("HOMEPATH");
+
+              if (home_drive != NULL && home_path != NULL)
+                {
+                  size_t home_drive_len = strlen (home_drive);
+                  size_t home_path_len = strlen (home_path);
+                  char *mem = alloca (home_drive_len + home_path_len + 1);
+
+                  memcpy (mem, home_drive, home_drive_len);
+                  memcpy (mem + home_drive_len, home_path, home_path_len + 1);
+                  home_dir = mem;
+                }
+              else
+                home_dir = "c:/users/default"; /* poor default */
+            }
+#  else
+          if (home_dir == NULL || home_dir[0] == '\0')
+            {
+              int success;
+              char *name;
+              int malloc_name = 0;
+              size_t buflen = GET_LOGIN_NAME_MAX () + 1;
+
+              if (buflen == 0)
+                /* 'sysconf' does not support _SC_LOGIN_NAME_MAX.  Try
+                   a moderate value.  */
+                buflen = 20;
+              if (glob_use_alloca (alloca_used, buflen))
+                name = alloca_account (buflen, alloca_used);
+              else
+                {
+                  name = malloc (buflen);
+                  if (name == NULL)
+                    {
+                      retval = GLOB_NOSPACE;
+                      goto out;
+                    }
+                  malloc_name = 1;
+                }
+
+              success = __getlogin_r (name, buflen) == 0;
+              if (success)
+                {
+                  struct passwd *p;
+#   if defined HAVE_GETPWNAM_R || defined _LIBC
+                  long int pwbuflenmax = GETPW_R_SIZE_MAX ();
+                  size_t pwbuflen = pwbuflenmax;
+                  char *pwtmpbuf;
+                  struct passwd pwbuf;
+                  char *malloc_pwtmpbuf = NULL;
+                  int save = errno;
+
+#    ifndef _LIBC
+                  if (! (0 < pwbuflenmax && pwbuflenmax <= SIZE_MAX))
+                    /* Perhaps 'sysconf' does not support _SC_GETPW_R_SIZE_MAX.
+                       Try a moderate value.  */
+                    pwbuflen = 1024;
+#    endif
+                  if (glob_use_alloca (alloca_used, pwbuflen))
+                    pwtmpbuf = alloca_account (pwbuflen, alloca_used);
+                  else
+                    {
+                      pwtmpbuf = malloc (pwbuflen);
+                      if (pwtmpbuf == NULL)
+                        {
+                          retval = GLOB_NOSPACE;
+                          goto out;
+                        }
+                      malloc_pwtmpbuf = pwtmpbuf;
+                    }
+
+                  while (getpwnam_r (name, &pwbuf, pwtmpbuf, pwbuflen, &p)
+                         != 0)
+                    {
+                      size_t newlen;
+                      bool v;
+                      if (errno != ERANGE)
+                        {
+                          p = NULL;
+                          break;
+                        }
+                      v = size_add_wrapv (pwbuflen, pwbuflen, &newlen);
+                      if (!v && malloc_pwtmpbuf == NULL
+                          && glob_use_alloca (alloca_used, newlen))
+                        pwtmpbuf = extend_alloca_account (pwtmpbuf, pwbuflen,
+                                                          newlen, alloca_used);
+                      else
+                        {
+                          char *newp = (v ? NULL
+                                        : realloc (malloc_pwtmpbuf, newlen));
+                          if (newp == NULL)
+                            {
+                              free (malloc_pwtmpbuf);
+                              retval = GLOB_NOSPACE;
+                              goto out;
+                            }
+                          malloc_pwtmpbuf = pwtmpbuf = newp;
+                        }
+                      pwbuflen = newlen;
+                      __set_errno (save);
+                    }
+#   else
+                  p = getpwnam (name);
+#   endif
+                  if (__glibc_unlikely (malloc_name))
+                    free (name);
+                  if (p != NULL)
+                    {
+                      if (malloc_pwtmpbuf == NULL)
+                        home_dir = p->pw_dir;
+                      else
+                        {
+                          size_t home_dir_len = strlen (p->pw_dir) + 1;
+                          if (glob_use_alloca (alloca_used, home_dir_len))
+                            home_dir = alloca_account (home_dir_len,
+                                                       alloca_used);
+                          else
+                            {
+                              home_dir = malloc (home_dir_len);
+                              if (home_dir == NULL)
+                                {
+                                  free (pwtmpbuf);
+                                  retval = GLOB_NOSPACE;
+                                  goto out;
+                                }
+                              malloc_home_dir = 1;
+                            }
+                          memcpy (home_dir, p->pw_dir, home_dir_len);
+
+                          free (pwtmpbuf);
+                        }
+                    }
+                }
+            }
+          if (home_dir == NULL || home_dir[0] == '\0')
+            {
+              if (flags & GLOB_TILDE_CHECK)
+                {
+                  if (__glibc_unlikely (malloc_home_dir))
+                    free (home_dir);
+                  retval = GLOB_NOMATCH;
+                  goto out;
+                }
+              else
+                home_dir = (char *) "~"; /* No luck.  */
+            }
+#  endif /* WINDOWS32 */
+# endif
+          /* Now construct the full directory.  */
+          if (dirname[1] == '\0')
+            {
+              if (__glibc_unlikely (malloc_dirname))
+                free (dirname);
+
+              dirname = home_dir;
+              dirlen = strlen (dirname);
+              malloc_dirname = malloc_home_dir;
+            }
+          else
+            {
+              char *newp;
+              size_t home_len = strlen (home_dir);
+              int use_alloca = glob_use_alloca (alloca_used, home_len + dirlen);
+              if (use_alloca)
+                newp = alloca_account (home_len + dirlen, alloca_used);
+              else
+                {
+                  newp = malloc (home_len + dirlen);
+                  if (newp == NULL)
+                    {
+                      if (__glibc_unlikely (malloc_home_dir))
+                        free (home_dir);
+                      retval = GLOB_NOSPACE;
+                      goto out;
+                    }
+                }
+
+              mempcpy (mempcpy (newp, home_dir, home_len),
+                       &dirname[1], dirlen);
+
+              if (__glibc_unlikely (malloc_dirname))
+                free (dirname);
+
+              dirname = newp;
+              dirlen += home_len - 1;
+              malloc_dirname = !use_alloca;
+            }
+          dirname_modified = 1;
+        }
+# if !defined _AMIGA && !defined WINDOWS32
+      else
+        {
+          char *end_name = strchr (dirname, '/');
+          char *user_name;
+          int malloc_user_name = 0;
+          char *unescape = NULL;
+
+          if (!(flags & GLOB_NOESCAPE))
+            {
+              if (end_name == NULL)
+                {
+                  unescape = strchr (dirname, '\\');
+                  if (unescape)
+                    end_name = strchr (unescape, '\0');
+                }
+              else
+                unescape = memchr (dirname, '\\', end_name - dirname);
+            }
+          if (end_name == NULL)
+            user_name = dirname + 1;
+          else
+            {
+              char *newp;
+              if (glob_use_alloca (alloca_used, end_name - dirname))
+                newp = alloca_account (end_name - dirname, alloca_used);
+              else
+                {
+                  newp = malloc (end_name - dirname);
+                  if (newp == NULL)
+                    {
+                      retval = GLOB_NOSPACE;
+                      goto out;
+                    }
+                  malloc_user_name = 1;
+                }
+              if (unescape != NULL)
+                {
+                  char *p = mempcpy (newp, dirname + 1,
+                                     unescape - dirname - 1);
+                  char *q = unescape;
+                  while (*q != '\0')
+                    {
+                      if (*q == '\\')
+                        {
+                          if (q[1] == '\0')
+                            {
+                              /* "~fo\\o\\" unescape to user_name "foo\\",
+                                 but "~fo\\o\\/" unescape to user_name
+                                 "foo".  */
+                              if (filename == NULL)
+                                *p++ = '\\';
+                              break;
+                            }
+                          ++q;
+                        }
+                      *p++ = *q++;
+                    }
+                  *p = '\0';
+                }
+              else
+                *((char *) mempcpy (newp, dirname + 1, end_name - dirname))
+                  = '\0';
+              user_name = newp;
+            }
+
+          /* Look up specific user's home directory.  */
+          {
+            struct passwd *p;
+#  if defined HAVE_GETPWNAM_R || defined _LIBC
+            long int buflenmax = GETPW_R_SIZE_MAX ();
+            size_t buflen = buflenmax;
+            char *pwtmpbuf;
+            char *malloc_pwtmpbuf = NULL;
+            struct passwd pwbuf;
+            int save = errno;
+
+#   ifndef _LIBC
+            if (! (0 <= buflenmax && buflenmax <= SIZE_MAX))
+              /* Perhaps 'sysconf' does not support _SC_GETPW_R_SIZE_MAX.  Try a
+                 moderate value.  */
+              buflen = 1024;
+#   endif
+            if (glob_use_alloca (alloca_used, buflen))
+              pwtmpbuf = alloca_account (buflen, alloca_used);
+            else
+              {
+                pwtmpbuf = malloc (buflen);
+                if (pwtmpbuf == NULL)
+                  {
+                  nomem_getpw:
+                    if (__glibc_unlikely (malloc_user_name))
+                      free (user_name);
+                    retval = GLOB_NOSPACE;
+                    goto out;
+                  }
+                malloc_pwtmpbuf = pwtmpbuf;
+              }
+
+            while (getpwnam_r (user_name, &pwbuf, pwtmpbuf, buflen, &p) != 0)
+              {
+                size_t newlen;
+                bool v;
+                if (errno != ERANGE)
+                  {
+                    p = NULL;
+                    break;
+                  }
+                v = size_add_wrapv (buflen, buflen, &newlen);
+                if (!v && malloc_pwtmpbuf == NULL
+                    && glob_use_alloca (alloca_used, newlen))
+                  pwtmpbuf = extend_alloca_account (pwtmpbuf, buflen,
+                                                    newlen, alloca_used);
+                else
+                  {
+                    char *newp = v ? NULL : realloc (malloc_pwtmpbuf, newlen);
+                    if (newp == NULL)
+                      {
+                        free (malloc_pwtmpbuf);
+                        goto nomem_getpw;
+                      }
+                    malloc_pwtmpbuf = pwtmpbuf = newp;
+                  }
+                __set_errno (save);
+              }
+#  else
+            p = getpwnam (user_name);
+#  endif
+
+            if (__glibc_unlikely (malloc_user_name))
+              free (user_name);
+
+            /* If we found a home directory use this.  */
+            if (p != NULL)
+              {
+                size_t home_len = strlen (p->pw_dir);
+                size_t rest_len = end_name == NULL ? 0 : strlen (end_name);
+
+                if (__glibc_unlikely (malloc_dirname))
+                  free (dirname);
+                malloc_dirname = 0;
+
+                if (glob_use_alloca (alloca_used, home_len + rest_len + 1))
+                  dirname = alloca_account (home_len + rest_len + 1,
+                                            alloca_used);
+                else
+                  {
+                    dirname = malloc (home_len + rest_len + 1);
+                    if (dirname == NULL)
+                      {
+                        free (malloc_pwtmpbuf);
+                        retval = GLOB_NOSPACE;
+                        goto out;
+                      }
+                    malloc_dirname = 1;
+                  }
+                *((char *) mempcpy (mempcpy (dirname, p->pw_dir, home_len),
+                                    end_name, rest_len)) = '\0';
+
+                dirlen = home_len + rest_len;
+                dirname_modified = 1;
+
+                free (malloc_pwtmpbuf);
+              }
+            else
+              {
+                free (malloc_pwtmpbuf);
+
+                if (flags & GLOB_TILDE_CHECK)
+                  /* We have to regard it as an error if we cannot find the
+                     home directory.  */
+                  return GLOB_NOMATCH;
+              }
+          }
+        }
+# endif /* Not Amiga && not WINDOWS32.  */
+    }
+
+  /* Now test whether we looked for "~" or "~NAME".  In this case we
+     can give the answer now.  */
+  if (filename == NULL)
+    {
+      struct stat st;
+      struct_stat64 st64;
+
+      /* Return the directory if we don't check for error or if it exists.  */
+      if ((flags & GLOB_NOCHECK)
+          || (((__builtin_expect (flags & GLOB_ALTDIRFUNC, 0))
+               ? ((*pglob->gl_stat) (dirname, &st) == 0
+                  && S_ISDIR (st.st_mode))
+               : (__stat64 (dirname, &st64) == 0 && S_ISDIR (st64.st_mode)))))
+        {
+          size_t newcount = pglob->gl_pathc + pglob->gl_offs;
+          char **new_gl_pathv;
+
+          if (newcount > SIZE_MAX / sizeof (char *) - 2)
+            {
+            nospace:
+              free (pglob->gl_pathv);
+              pglob->gl_pathv = NULL;
+              pglob->gl_pathc = 0;
+              return GLOB_NOSPACE;
+            }
+
+          new_gl_pathv = realloc (pglob->gl_pathv,
+                                  (newcount + 2) * sizeof (char *));
+          if (new_gl_pathv == NULL)
+            goto nospace;
+          pglob->gl_pathv = new_gl_pathv;
+
+          if (flags & GLOB_MARK)
+            {
+              char *p;
+              pglob->gl_pathv[newcount] = malloc (dirlen + 2);
+              if (pglob->gl_pathv[newcount] == NULL)
+                goto nospace;
+              p = mempcpy (pglob->gl_pathv[newcount], dirname, dirlen);
+              p[0] = '/';
+              p[1] = '\0';
+            }
+          else
+            {
+              pglob->gl_pathv[newcount] = strdup (dirname);
+              if (pglob->gl_pathv[newcount] == NULL)
+                goto nospace;
+            }
+          pglob->gl_pathv[++newcount] = NULL;
+          ++pglob->gl_pathc;
+          pglob->gl_flags = flags;
+
+          return 0;
+        }
+
+      /* Not found.  */
+      return GLOB_NOMATCH;
+    }
+
+  meta = __glob_pattern_type (dirname, !(flags & GLOB_NOESCAPE));
+  /* meta is 1 if correct glob pattern containing metacharacters.
+     If meta has bit (1 << 2) set, it means there was an unterminated
+     [ which we handle the same, using fnmatch.  Broken unterminated
+     pattern bracket expressions ought to be rare enough that it is
+     not worth special casing them, fnmatch will do the right thing.  */
+  if (meta & 5)
+    {
+      /* The directory name contains metacharacters, so we
+         have to glob for the directory, and then glob for
+         the pattern in each directory found.  */
+      size_t i;
+
+      if (!(flags & GLOB_NOESCAPE) && dirlen > 0 && dirname[dirlen - 1] == '\\')
+        {
+          /* "foo\\/bar".  Remove the final backslash from dirname
+             if it has not been quoted.  */
+          char *p = (char *) &dirname[dirlen - 1];
+
+          while (p > dirname && p[-1] == '\\') --p;
+          if ((&dirname[dirlen] - p) & 1)
+            *(char *) &dirname[--dirlen] = '\0';
+        }
+
+      if (__glibc_unlikely ((flags & GLOB_ALTDIRFUNC) != 0))
+        {
+          /* Use the alternative access functions also in the recursive
+             call.  */
+          dirs.gl_opendir = pglob->gl_opendir;
+          dirs.gl_readdir = pglob->gl_readdir;
+          dirs.gl_closedir = pglob->gl_closedir;
+          dirs.gl_stat = pglob->gl_stat;
+          dirs.gl_lstat = pglob->gl_lstat;
+        }
+
+      status = glob (dirname,
+                     ((flags & (GLOB_ERR | GLOB_NOESCAPE
+                                | GLOB_ALTDIRFUNC))
+                      | GLOB_NOSORT | GLOB_ONLYDIR),
+                     errfunc, &dirs);
+      if (status != 0)
+        {
+          if ((flags & GLOB_NOCHECK) == 0 || status != GLOB_NOMATCH)
+            return status;
+          goto no_matches;
+        }
+
+      /* We have successfully globbed the preceding directory name.
+         For each name we found, call glob_in_dir on it and FILENAME,
+         appending the results to PGLOB.  */
+      for (i = 0; i < dirs.gl_pathc; ++i)
+        {
+          size_t old_pathc;
+
+#ifdef SHELL
+          {
+            /* Make globbing interruptible in the bash shell. */
+            extern int interrupt_state;
+
+            if (interrupt_state)
+              {
+                globfree (&dirs);
+                return GLOB_ABORTED;
+              }
+          }
+#endif /* SHELL.  */
+
+          old_pathc = pglob->gl_pathc;
+          status = glob_in_dir (filename, dirs.gl_pathv[i],
+                                ((flags | GLOB_APPEND)
+                                 & ~(GLOB_NOCHECK | GLOB_NOMAGIC)),
+                                errfunc, pglob, alloca_used);
+          if (status == GLOB_NOMATCH)
+            /* No matches in this directory.  Try the next.  */
+            continue;
+
+          if (status != 0)
+            {
+              globfree (&dirs);
+              globfree (pglob);
+              pglob->gl_pathc = 0;
+              return status;
+            }
+
+          /* Stick the directory on the front of each name.  */
+          if (prefix_array (dirs.gl_pathv[i],
+                            &pglob->gl_pathv[old_pathc + pglob->gl_offs],
+                            pglob->gl_pathc - old_pathc))
+            {
+              globfree (&dirs);
+              globfree (pglob);
+              pglob->gl_pathc = 0;
+              return GLOB_NOSPACE;
+            }
+        }
+
+      flags |= GLOB_MAGCHAR;
+
+      /* We have ignored the GLOB_NOCHECK flag in the 'glob_in_dir' calls.
+         But if we have not found any matching entry and the GLOB_NOCHECK
+         flag was set we must return the input pattern itself.  */
+      if (pglob->gl_pathc + pglob->gl_offs == oldcount)
+        {
+        no_matches:
+          /* No matches.  */
+          if (flags & GLOB_NOCHECK)
+            {
+              size_t newcount = pglob->gl_pathc + pglob->gl_offs;
+              char **new_gl_pathv;
+
+              if (newcount > SIZE_MAX / sizeof (char *) - 2)
+                {
+                nospace2:
+                  globfree (&dirs);
+                  return GLOB_NOSPACE;
+                }
+
+              new_gl_pathv = realloc (pglob->gl_pathv,
+                                      (newcount + 2) * sizeof (char *));
+              if (new_gl_pathv == NULL)
+                goto nospace2;
+              pglob->gl_pathv = new_gl_pathv;
+
+              pglob->gl_pathv[newcount] = strdup (pattern);
+              if (pglob->gl_pathv[newcount] == NULL)
+                {
+                  globfree (&dirs);
+                  globfree (pglob);
+                  pglob->gl_pathc = 0;
+                  return GLOB_NOSPACE;
+                }
+
+              ++pglob->gl_pathc;
+              ++newcount;
+
+              pglob->gl_pathv[newcount] = NULL;
+              pglob->gl_flags = flags;
+            }
+          else
+            {
+              globfree (&dirs);
+              return GLOB_NOMATCH;
+            }
+        }
+
+      globfree (&dirs);
+    }
+  else
+    {
+      size_t old_pathc = pglob->gl_pathc;
+      int orig_flags = flags;
+
+      if (meta & 2)
+        {
+          char *p = strchr (dirname, '\\'), *q;
+          /* We need to unescape the dirname string.  It is certainly
+             allocated by alloca, as otherwise filename would be NULL
+             or dirname wouldn't contain backslashes.  */
+          q = p;
+          do
+            {
+              if (*p == '\\')
+                {
+                  *q = *++p;
+                  --dirlen;
+                }
+              else
+                *q = *p;
+              ++q;
+            }
+          while (*p++ != '\0');
+          dirname_modified = 1;
+        }
+      if (dirname_modified)
+        flags &= ~(GLOB_NOCHECK | GLOB_NOMAGIC);
+      status = glob_in_dir (filename, dirname, flags, errfunc, pglob,
+                            alloca_used);
+      if (status != 0)
+        {
+          if (status == GLOB_NOMATCH && flags != orig_flags
+              && pglob->gl_pathc + pglob->gl_offs == oldcount)
+            {
+              /* Make sure globfree (&dirs); is a nop.  */
+              dirs.gl_pathv = NULL;
+              flags = orig_flags;
+              goto no_matches;
+            }
+          return status;
+        }
+
+      if (dirlen > 0)
+        {
+          /* Stick the directory on the front of each name.  */
+          if (prefix_array (dirname,
+                            &pglob->gl_pathv[old_pathc + pglob->gl_offs],
+                            pglob->gl_pathc - old_pathc))
+            {
+              globfree (pglob);
+              pglob->gl_pathc = 0;
+              return GLOB_NOSPACE;
+            }
+        }
+    }
+
+  if (flags & GLOB_MARK)
+    {
+      /* Append slashes to directory names.  */
+      size_t i;
+      struct stat st;
+      struct_stat64 st64;
+
+      for (i = oldcount; i < pglob->gl_pathc + pglob->gl_offs; ++i)
+        if ((__builtin_expect (flags & GLOB_ALTDIRFUNC, 0)
+             ? ((*pglob->gl_stat) (pglob->gl_pathv[i], &st) == 0
+                && S_ISDIR (st.st_mode))
+             : (__stat64 (pglob->gl_pathv[i], &st64) == 0
+                && S_ISDIR (st64.st_mode))))
+          {
+            size_t len = strlen (pglob->gl_pathv[i]) + 2;
+            char *new = realloc (pglob->gl_pathv[i], len);
+            if (new == NULL)
+              {
+                globfree (pglob);
+                pglob->gl_pathc = 0;
+                return GLOB_NOSPACE;
+              }
+            strcpy (&new[len - 2], "/");
+            pglob->gl_pathv[i] = new;
+          }
+    }
+
+  if (!(flags & GLOB_NOSORT))
+    {
+      /* Sort the vector.  */
+      qsort (&pglob->gl_pathv[oldcount],
+             pglob->gl_pathc + pglob->gl_offs - oldcount,
+             sizeof (char *), collated_compare);
+    }
+
+ out:
+  if (__glibc_unlikely (malloc_dirname))
+    free (dirname);
+
+  return retval;
+}
+#if defined _LIBC && !defined glob
+libc_hidden_def (glob)
+#endif
+
+
+#ifndef GLOB_ONLY_P
+
+/* Free storage allocated in PGLOB by a previous 'glob' call.  */
+void
+globfree (glob_t *pglob)
+{
+  if (pglob->gl_pathv != NULL)
+    {
+      size_t i;
+      for (i = 0; i < pglob->gl_pathc; ++i)
+        free (pglob->gl_pathv[pglob->gl_offs + i]);
+      free (pglob->gl_pathv);
+      pglob->gl_pathv = NULL;
+    }
+}
+#if defined _LIBC && !defined globfree
+libc_hidden_def (globfree)
+#endif
+
+
+/* Do a collated comparison of A and B.  */
+static int
+collated_compare (const void *a, const void *b)
+{
+  char *const *ps1 = a; char *s1 = *ps1;
+  char *const *ps2 = b; char *s2 = *ps2;
+
+  if (s1 == s2)
+    return 0;
+  if (s1 == NULL)
+    return 1;
+  if (s2 == NULL)
+    return -1;
+  return strcoll (s1, s2);
+}
+
+
+/* Prepend DIRNAME to each of N members of ARRAY, replacing ARRAY's
+   elements in place.  Return nonzero if out of memory, zero if successful.
+   A slash is inserted between DIRNAME and each elt of ARRAY,
+   unless DIRNAME is just "/".  Each old element of ARRAY is freed.  */
+static int
+prefix_array (const char *dirname, char **array, size_t n)
+{
+  size_t i;
+  size_t dirlen = strlen (dirname);
+#if defined __MSDOS__ || defined WINDOWS32
+  int sep_char = '/';
+# define DIRSEP_CHAR sep_char
+#else
+# define DIRSEP_CHAR '/'
+#endif
+
+  if (dirlen == 1 && dirname[0] == '/')
+    /* DIRNAME is just "/", so normal prepending would get us "//foo".
+       We want "/foo" instead, so don't prepend any chars from DIRNAME.  */
+    dirlen = 0;
+#if defined __MSDOS__ || defined WINDOWS32
+  else if (dirlen > 1)
+    {
+      if (dirname[dirlen - 1] == '/' && dirname[dirlen - 2] == ':')
+        /* DIRNAME is "d:/".  Don't prepend the slash from DIRNAME.  */
+        --dirlen;
+      else if (dirname[dirlen - 1] == ':')
+        {
+          /* DIRNAME is "d:".  Use ':' instead of '/'.  */
+          --dirlen;
+          sep_char = ':';
+        }
+    }
+#endif
+
+  for (i = 0; i < n; ++i)
+    {
+      size_t eltlen = strlen (array[i]) + 1;
+      char *new = malloc (dirlen + 1 + eltlen);
+      if (new == NULL)
+        {
+          while (i > 0)
+            free (array[--i]);
+          return 1;
+        }
+
+      {
+        char *endp = mempcpy (new, dirname, dirlen);
+        *endp++ = DIRSEP_CHAR;
+        mempcpy (endp, array[i], eltlen);
+      }
+      free (array[i]);
+      array[i] = new;
+    }
+
+  return 0;
+}
+
+
+/* We must not compile this function twice.  */
+#ifndef NO_GLOB_PATTERN_P
+int
+__glob_pattern_type (const char *pattern, int quote)
+{
+  const char *p;
+  int ret = 0;
+
+  for (p = pattern; *p != '\0'; ++p)
+    switch (*p)
+      {
+      case '?':
+      case '*':
+        return 1;
+
+      case '\\':
+        if (quote)
+          {
+            if (p[1] != '\0')
+              ++p;
+            ret |= 2;
+          }
+        break;
+
+      case '[':
+        ret |= 4;
+        break;
+
+      case ']':
+        if (ret & 4)
+          return 1;
+        break;
+      }
+
+  return ret;
+}
+
+/* Return nonzero if PATTERN contains any metacharacters.
+   Metacharacters can be quoted with backslashes if QUOTE is nonzero.  */
+int
+__glob_pattern_p (const char *pattern, int quote)
+{
+  return __glob_pattern_type (pattern, quote) == 1;
+}
+# ifdef _LIBC
+weak_alias (__glob_pattern_p, glob_pattern_p)
+# endif
+#endif
+
+
+/* We put this in a separate function mainly to allow the memory
+   allocated with alloca to be recycled.  */
+static int
+__attribute_noinline__
+link_exists2_p (const char *dir, size_t dirlen, const char *fname,
+               glob_t *pglob
+# if !defined _LIBC && !HAVE_FSTATAT
+                , int flags
+# endif
+                )
+{
+  size_t fnamelen = strlen (fname);
+  char *fullname = __alloca (dirlen + 1 + fnamelen + 1);
+  struct stat st;
+
+  mempcpy (mempcpy (mempcpy (fullname, dir, dirlen), "/", 1),
+           fname, fnamelen + 1);
+
+# if !defined _LIBC && !HAVE_FSTATAT
+  if (__builtin_expect ((flags & GLOB_ALTDIRFUNC) == 0, 1))
+    {
+      struct_stat64 st64;
+      return __stat64 (fullname, &st64) == 0;
+    }
+# endif
+  return (*pglob->gl_stat) (fullname, &st) == 0;
+}
+
+/* Return true if DIR/FNAME exists.  */
+static int
+link_exists_p (int dfd, const char *dir, size_t dirlen, const char *fname,
+               glob_t *pglob, int flags)
+{
+# if defined _LIBC || HAVE_FSTATAT
+  if (__builtin_expect (flags & GLOB_ALTDIRFUNC, 0))
+    return link_exists2_p (dir, dirlen, fname, pglob);
+  else
+    {
+      /* dfd cannot be -1 here, because dirfd never returns -1 on
+         glibc, or on hosts that have fstatat.  */
+      struct_stat64 st64;
+      return __fxstatat64 (_STAT_VER, dfd, fname, &st64, 0) == 0;
+    }
+# else
+  return link_exists2_p (dir, dirlen, fname, pglob, flags);
+# endif
+}
+#endif /* !defined GLOB_ONLY_P */
+
+
+/* Like 'glob', but PATTERN is a final pathname component,
+   and matches are searched for in DIRECTORY.
+   The GLOB_NOSORT bit in FLAGS is ignored.  No sorting is ever done.
+   The GLOB_APPEND flag is assumed to be set (always appends).  */
+static int
+glob_in_dir (const char *pattern, const char *directory, int flags,
+             int (*errfunc) (const char *, int),
+             glob_t *pglob, size_t alloca_used)
+{
+  size_t dirlen = strlen (directory);
+  void *stream = NULL;
+  struct globnames
+    {
+      struct globnames *next;
+      size_t count;
+      char *name[64];
+    };
+  struct globnames init_names;
+  struct globnames *names = &init_names;
+  struct globnames *names_alloca = &init_names;
+  size_t nfound = 0;
+  size_t cur = 0;
+  int meta;
+  int save;
+  int result;
+
+  alloca_used += sizeof (init_names);
+
+  init_names.next = NULL;
+  init_names.count = sizeof init_names.name / sizeof init_names.name[0];
+
+  meta = __glob_pattern_type (pattern, !(flags & GLOB_NOESCAPE));
+  if (meta == 0 && (flags & (GLOB_NOCHECK|GLOB_NOMAGIC)))
+    {
+      /* We need not do any tests.  The PATTERN contains no meta
+         characters and we must not return an error therefore the
+         result will always contain exactly one name.  */
+      flags |= GLOB_NOCHECK;
+    }
+  else if (meta == 0)
+    {
+      /* Since we use the normal file functions we can also use stat()
+         to verify the file is there.  */
+      union
+      {
+        struct stat st;
+        struct_stat64 st64;
+      } ust;
+      size_t patlen = strlen (pattern);
+      size_t fullsize;
+      bool alloca_fullname
+        = (! size_add_wrapv (dirlen + 1, patlen + 1, &fullsize)
+           && glob_use_alloca (alloca_used, fullsize));
+      char *fullname;
+      if (alloca_fullname)
+        fullname = alloca_account (fullsize, alloca_used);
+      else
+        {
+          fullname = malloc (fullsize);
+          if (fullname == NULL)
+            return GLOB_NOSPACE;
+        }
+
+      mempcpy (mempcpy (mempcpy (fullname, directory, dirlen),
+                        "/", 1),
+               pattern, patlen + 1);
+      if ((__builtin_expect (flags & GLOB_ALTDIRFUNC, 0)
+           ? (*pglob->gl_stat) (fullname, &ust.st)
+           : __stat64 (fullname, &ust.st64)) == 0)
+        /* We found this file to be existing.  Now tell the rest
+           of the function to copy this name into the result.  */
+        flags |= GLOB_NOCHECK;
+
+      if (__glibc_unlikely (!alloca_fullname))
+        free (fullname);
+    }
+  else
+    {
+      stream = (__builtin_expect (flags & GLOB_ALTDIRFUNC, 0)
+                ? (*pglob->gl_opendir) (directory)
+                : opendir (directory));
+      if (stream == NULL)
+        {
+          if (errno != ENOTDIR
+              && ((errfunc != NULL && (*errfunc) (directory, errno))
+                  || (flags & GLOB_ERR)))
+            return GLOB_ABORTED;
+        }
+      else
+        {
+          int dfd = (__builtin_expect (flags & GLOB_ALTDIRFUNC, 0)
+                     ? -1 : dirfd ((DIR *) stream));
+          int fnm_flags = ((!(flags & GLOB_PERIOD) ? FNM_PERIOD : 0)
+                           | ((flags & GLOB_NOESCAPE) ? FNM_NOESCAPE : 0)
+#if defined _AMIGA || defined VMS
+                           | FNM_CASEFOLD
+#endif
+                           );
+          flags |= GLOB_MAGCHAR;
+
+          while (1)
+            {
+              struct readdir_result d;
+              {
+                if (__builtin_expect (flags & GLOB_ALTDIRFUNC, 0))
+                  d = convert_dirent (GL_READDIR (pglob, stream));
+                else
+                  {
+#ifdef COMPILE_GLOB64
+                    d = convert_dirent (__readdir (stream));
+#else
+                    d = convert_dirent64 (__readdir64 (stream));
+#endif
+                  }
+              }
+              if (d.name == NULL)
+                break;
+              if (d.skip_entry)
+                continue;
+
+              /* If we shall match only directories use the information
+                 provided by the dirent call if possible.  */
+              if ((flags & GLOB_ONLYDIR) && !readdir_result_might_be_dir (d))
+                continue;
+
+              if (fnmatch (pattern, d.name, fnm_flags) == 0)
+                {
+                  /* If the file we found is a symlink we have to
+                     make sure the target file exists.  */
+                  if (!readdir_result_might_be_symlink (d)
+                      || link_exists_p (dfd, directory, dirlen, d.name,
+                                        pglob, flags))
+                    {
+                      if (cur == names->count)
+                        {
+                          struct globnames *newnames;
+                          size_t count = names->count * 2;
+                          size_t nameoff = offsetof (struct globnames, name);
+                          size_t size = FLEXSIZEOF (struct globnames, name,
+                                                    count * sizeof (char *));
+                          if ((SIZE_MAX - nameoff) / 2 / sizeof (char *)
+                              < names->count)
+                            goto memory_error;
+                          if (glob_use_alloca (alloca_used, size))
+                            newnames = names_alloca
+                              = alloca_account (size, alloca_used);
+                          else if ((newnames = malloc (size))
+                                   == NULL)
+                            goto memory_error;
+                          newnames->count = count;
+                          newnames->next = names;
+                          names = newnames;
+                          cur = 0;
+                        }
+                      names->name[cur] = strdup (d.name);
+                      if (names->name[cur] == NULL)
+                        goto memory_error;
+                      ++cur;
+                      ++nfound;
+                      if (SIZE_MAX - pglob->gl_offs <= nfound)
+                        goto memory_error;
+                    }
+                }
+            }
+        }
+    }
+
+  if (nfound == 0 && (flags & GLOB_NOCHECK))
+    {
+      size_t len = strlen (pattern);
+      nfound = 1;
+      names->name[cur] = malloc (len + 1);
+      if (names->name[cur] == NULL)
+        goto memory_error;
+      *((char *) mempcpy (names->name[cur++], pattern, len)) = '\0';
+    }
+
+  result = GLOB_NOMATCH;
+  if (nfound != 0)
+    {
+      char **new_gl_pathv;
+      result = 0;
+
+      if (SIZE_MAX / sizeof (char *) - pglob->gl_pathc
+          < pglob->gl_offs + nfound + 1)
+        goto memory_error;
+
+      new_gl_pathv
+        = realloc (pglob->gl_pathv,
+                   (pglob->gl_pathc + pglob->gl_offs + nfound + 1)
+                   * sizeof (char *));
+
+      if (new_gl_pathv == NULL)
+        {
+        memory_error:
+          while (1)
+            {
+              struct globnames *old = names;
+              size_t i;
+              for (i = 0; i < cur; ++i)
+                free (names->name[i]);
+              names = names->next;
+              /* NB: we will not leak memory here if we exit without
+                 freeing the current block assigned to OLD.  At least
+                 the very first block is always allocated on the stack
+                 and this is the block assigned to OLD here.  */
+              if (names == NULL)
+                {
+                  assert (old == &init_names);
+                  break;
+                }
+              cur = names->count;
+              if (old == names_alloca)
+                names_alloca = names;
+              else
+                free (old);
+            }
+          result = GLOB_NOSPACE;
+        }
+      else
+        {
+          while (1)
+            {
+              struct globnames *old = names;
+              size_t i;
+              for (i = 0; i < cur; ++i)
+                new_gl_pathv[pglob->gl_offs + pglob->gl_pathc++]
+                  = names->name[i];
+              names = names->next;
+              /* NB: we will not leak memory here if we exit without
+                 freeing the current block assigned to OLD.  At least
+                 the very first block is always allocated on the stack
+                 and this is the block assigned to OLD here.  */
+              if (names == NULL)
+                {
+                  assert (old == &init_names);
+                  break;
+                }
+              cur = names->count;
+              if (old == names_alloca)
+                names_alloca = names;
+              else
+                free (old);
+            }
+
+          pglob->gl_pathv = new_gl_pathv;
+
+          pglob->gl_pathv[pglob->gl_offs + pglob->gl_pathc] = NULL;
+
+          pglob->gl_flags = flags;
+        }
+    }
+
+  if (stream != NULL)
+    {
+      save = errno;
+      if (__glibc_unlikely (flags & GLOB_ALTDIRFUNC))
+        (*pglob->gl_closedir) (stream);
+      else
+        closedir (stream);
+      __set_errno (save);
+    }
+
+  return result;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/glob.in.h ./gdb/gnulib/import/glob.in.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/glob.in.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/glob.in.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,93 @@
+/* glob.h -- Find a path matching a pattern.
+
+   Copyright (C) 2005-2007, 2009-2016 Free Software Foundation, Inc.
+
+   Written by Derek Price <derek@ximbiot.com> & Paul Eggert <eggert@CS.UCLA.EDU>
+
+   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, 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 _GL_GLOB_H
+#define _GL_GLOB_H
+
+#if @HAVE_SYS_CDEFS_H@
+# include <sys/cdefs.h>
+#endif
+
+#include <stddef.h>
+
+/* On some systems, such as AIX 5.1, <sys/stat.h> does a "#define stat stat64".
+   Make sure this definition is seen before glob-libc.h defines types that
+   rely on 'struct stat'.  */
+#include <sys/stat.h>
+
+#ifndef __BEGIN_DECLS
+# ifdef __cplusplus
+#  define __BEGIN_DECLS  extern "C" {
+#  define __END_DECLS    }
+# else
+#  define __BEGIN_DECLS
+#  define __END_DECLS
+# endif
+#endif
+#ifndef __THROW
+# define __THROW
+#endif
+#ifndef __THROWNL
+# define __THROWNL
+#endif
+
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
+
+/* The definition of _GL_ARG_NONNULL is copied here.  */
+
+/* The definition of _GL_WARN_ON_USE is copied here.  */
+
+#ifndef __size_t
+# define __size_t       size_t
+#endif
+#ifndef __USE_GNU
+# define __USE_GNU    1
+#endif
+
+
+#define glob rpl_glob
+#define globfree rpl_globfree
+#define glob_pattern_p rpl_glob_pattern_p
+
+#define __GLOB_GNULIB 1
+
+/* Now the standard GNU C Library header should work.  */
+#include "glob-libc.h"
+
+__BEGIN_DECLS
+typedef int (*_gl_glob_errfunc_fn) (const char *, int);
+__END_DECLS
+
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# undef glob
+# undef globfree
+# undef glob_pattern_p
+_GL_CXXALIAS_RPL (glob, int, (const char *_Restrict_ __pattern, int __flags,
+                              _gl_glob_errfunc_fn __errfunc,
+                              glob_t *_Restrict_ __pglob));
+_GL_CXXALIAS_RPL (globfree, void, (glob_t *__pglob));
+_GL_CXXALIAS_RPL (glob_pattern_p, int, (const char *__pattern, int __quote));
+# if 0  /* The C function name is rpl_glob, not glob.  */
+_GL_CXXALIASWARN (glob);
+_GL_CXXALIASWARN (globfree);
+_GL_CXXALIASWARN (glob_pattern_p);
+# endif
+#endif
+
+#endif /* _GL_GLOB_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/glob-libc.h ./gdb/gnulib/import/glob-libc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/glob-libc.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/glob-libc.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,212 @@
+/* Copyright (C) 1991-1992, 1995-1998, 2000-2001, 2004-2007, 2009-2016 Free
+   Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _GLOB_H
+#define _GLOB_H 1
+
+#ifndef __GLOB_GNULIB
+# include <sys/cdefs.h>
+#endif
+
+/* GCC 2.95 and later have "__restrict"; C99 compilers have
+   "restrict", and "configure" may have defined "restrict".
+   Other compilers use __restrict, __restrict__, and _Restrict, and
+   'configure' might #define 'restrict' to those words, so pick a
+   different name.  */
+#ifndef _Restrict_
+# if 199901L <= __STDC_VERSION__
+#  define _Restrict_ restrict
+# elif 2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__)
+#  define _Restrict_ __restrict
+# else
+#  define _Restrict_
+# endif
+#endif
+
+__BEGIN_DECLS
+
+/* We need 'size_t' for the following definitions.  */
+#ifndef __size_t
+# if defined __GNUC__ && __GNUC__ >= 2
+typedef __SIZE_TYPE__ __size_t;
+#  ifdef __USE_XOPEN
+typedef __SIZE_TYPE__ size_t;
+#  endif
+# else
+#  include <stddef.h>
+#  ifndef __size_t
+#   define __size_t size_t
+#  endif
+# endif
+#else
+/* The GNU CC stddef.h version defines __size_t as empty.  We need a real
+   definition.  */
+# undef __size_t
+# define __size_t size_t
+#endif
+
+/* Bits set in the FLAGS argument to 'glob'.  */
+#define GLOB_ERR        (1 << 0)/* Return on read errors.  */
+#define GLOB_MARK       (1 << 1)/* Append a slash to each name.  */
+#define GLOB_NOSORT     (1 << 2)/* Don't sort the names.  */
+#define GLOB_DOOFFS     (1 << 3)/* Insert PGLOB->gl_offs NULLs.  */
+#define GLOB_NOCHECK    (1 << 4)/* If nothing matches, return the pattern.  */
+#define GLOB_APPEND     (1 << 5)/* Append to results of a previous call.  */
+#define GLOB_NOESCAPE   (1 << 6)/* Backslashes don't quote metacharacters.  */
+#define GLOB_PERIOD     (1 << 7)/* Leading '.' can be matched by metachars.  */
+
+#if !defined __USE_POSIX2 || defined __USE_BSD || defined __USE_GNU
+# define GLOB_MAGCHAR    (1 << 8)/* Set in gl_flags if any metachars seen.  */
+# define GLOB_ALTDIRFUNC (1 << 9)/* Use gl_opendir et al functions.  */
+# define GLOB_BRACE      (1 << 10)/* Expand "{a,b}" to "a" "b".  */
+# define GLOB_NOMAGIC    (1 << 11)/* If no magic chars, return the pattern.  */
+# define GLOB_TILDE      (1 << 12)/* Expand ~user and ~ to home directories. */
+# define GLOB_ONLYDIR    (1 << 13)/* Match only directories.  */
+# define GLOB_TILDE_CHECK (1 << 14)/* Like GLOB_TILDE but return an error
+                                      if the user name is not available.  */
+# define __GLOB_FLAGS   (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \
+                         GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND|     \
+                         GLOB_PERIOD|GLOB_ALTDIRFUNC|GLOB_BRACE|     \
+                         GLOB_NOMAGIC|GLOB_TILDE|GLOB_ONLYDIR|GLOB_TILDE_CHECK)
+#else
+# define __GLOB_FLAGS   (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \
+                         GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND|     \
+                         GLOB_PERIOD)
+#endif
+
+/* Error returns from 'glob'.  */
+#define GLOB_NOSPACE    1       /* Ran out of memory.  */
+#define GLOB_ABORTED    2       /* Read error.  */
+#define GLOB_NOMATCH    3       /* No matches found.  */
+#define GLOB_NOSYS      4       /* Not implemented.  */
+#ifdef __USE_GNU
+/* Previous versions of this file defined GLOB_ABEND instead of
+   GLOB_ABORTED.  Provide a compatibility definition here.  */
+# define GLOB_ABEND GLOB_ABORTED
+#endif
+
+/* Structure describing a globbing run.  */
+#ifdef __USE_GNU
+struct stat;
+#endif
+typedef struct
+  {
+    __size_t gl_pathc;          /* Count of paths matched by the pattern.  */
+    char **gl_pathv;            /* List of matched pathnames.  */
+    __size_t gl_offs;           /* Slots to reserve in 'gl_pathv'.  */
+    int gl_flags;               /* Set to FLAGS, maybe | GLOB_MAGCHAR.  */
+
+    /* If the GLOB_ALTDIRFUNC flag is set, the following functions
+       are used instead of the normal file access functions.  */
+    void (*gl_closedir) (void *);
+#ifdef __USE_GNU
+    struct dirent *(*gl_readdir) (void *);
+#else
+    void *(*gl_readdir) (void *);
+#endif
+    void *(*gl_opendir) (const char *);
+#ifdef __USE_GNU
+    int (*gl_lstat) (const char *_Restrict_, struct stat *_Restrict_);
+    int (*gl_stat) (const char *_Restrict_, struct stat *_Restrict_);
+#else
+    int (*gl_lstat) (const char *_Restrict_, void *_Restrict_);
+    int (*gl_stat) (const char *_Restrict_, void *_Restrict_);
+#endif
+  } glob_t;
+
+#if defined __USE_LARGEFILE64 && !defined __GLOB_GNULIB
+# ifdef __USE_GNU
+struct stat64;
+# endif
+typedef struct
+  {
+    __size_t gl_pathc;
+    char **gl_pathv;
+    __size_t gl_offs;
+    int gl_flags;
+
+    /* If the GLOB_ALTDIRFUNC flag is set, the following functions
+       are used instead of the normal file access functions.  */
+    void (*gl_closedir) (void *);
+# ifdef __USE_GNU
+    struct dirent64 *(*gl_readdir) (void *);
+# else
+    void *(*gl_readdir) (void *);
+# endif
+    void *(*gl_opendir) (const char *);
+# ifdef __USE_GNU
+    int (*gl_lstat) (const char *_Restrict_, struct stat64 *_Restrict_);
+    int (*gl_stat) (const char *_Restrict_, struct stat64 *_Restrict_);
+# else
+    int (*gl_lstat) (const char *_Restrict_, void *_Restrict_);
+    int (*gl_stat) (const char *_Restrict_, void *_Restrict_);
+# endif
+  } glob64_t;
+#endif
+
+#if __USE_FILE_OFFSET64 && __GNUC__ < 2 && !defined __GLOB_GNULIB
+# define glob glob64
+# define globfree globfree64
+#endif
+
+/* Do glob searching for PATTERN, placing results in PGLOB.
+   The bits defined above may be set in FLAGS.
+   If a directory cannot be opened or read and ERRFUNC is not nil,
+   it is called with the pathname that caused the error, and the
+   'errno' value from the failing call; if it returns non-zero
+   'glob' returns GLOB_ABEND; if it returns zero, the error is ignored.
+   If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned.
+   Otherwise, 'glob' returns zero.  */
+#if !defined __USE_FILE_OFFSET64 || __GNUC__ < 2 || defined __GLOB_GNULIB
+extern int glob (const char *_Restrict_ __pattern, int __flags,
+                 int (*__errfunc) (const char *, int),
+                 glob_t *_Restrict_ __pglob) __THROW _GL_ARG_NONNULL ((1, 4));
+
+/* Free storage allocated in PGLOB by a previous 'glob' call.  */
+extern void globfree (glob_t *__pglob) __THROW _GL_ARG_NONNULL ((1));
+#else
+extern int __REDIRECT_NTH (glob, (const char *_Restrict_ __pattern,
+                                  int __flags,
+                                  int (*__errfunc) (const char *, int),
+                                  glob_t *_Restrict_ __pglob), glob64);
+
+extern void __REDIRECT_NTH (globfree, (glob_t *__pglob), globfree64);
+#endif
+
+#if defined __USE_LARGEFILE64 && !defined __GLOB_GNULIB
+extern int glob64 (const char *_Restrict_ __pattern, int __flags,
+                   int (*__errfunc) (const char *, int),
+                   glob64_t *_Restrict_ __pglob)
+     __THROW _GL_ARG_NONNULL ((1, 4));
+
+extern void globfree64 (glob64_t *__pglob) __THROW _GL_ARG_NONNULL ((1));
+#endif
+
+
+#ifdef __USE_GNU
+/* Return nonzero if PATTERN contains any metacharacters.
+   Metacharacters can be quoted with backslashes if QUOTE is nonzero.
+
+   This function is not part of the interface specified by POSIX.2
+   but several programs want to use it.  */
+extern int glob_pattern_p (const char *__pattern, int __quote)
+     __THROW _GL_ARG_NONNULL ((1));
+#endif
+
+__END_DECLS
+
+#endif /* glob.h  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/intprops.h ./gdb/gnulib/import/intprops.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/intprops.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/intprops.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,464 @@
+/* intprops.h -- properties of integer types
+
+   Copyright (C) 2001-2016 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/>.  */
+
+/* Written by Paul Eggert.  */
+
+#ifndef _GL_INTPROPS_H
+#define _GL_INTPROPS_H
+
+#include <limits.h>
+#include <verify.h>
+
+#ifndef __has_builtin
+# define __has_builtin(x) 0
+#endif
+
+/* Return a value with the common real type of E and V and the value of V.  */
+#define _GL_INT_CONVERT(e, v) (0 * (e) + (v))
+
+/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see
+   <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html>.  */
+#define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v))
+
+/* The extra casts in the following macros work around compiler bugs,
+   e.g., in Cray C 5.0.3.0.  */
+
+/* True if the arithmetic type T is an integer type.  bool counts as
+   an integer.  */
+#define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
+
+/* True if the real type T is signed.  */
+#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+
+/* Return 1 if the real expression E, after promotion, has a
+   signed or floating type.  */
+#define EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
+
+
+/* Minimum and maximum values for integer types and expressions.  */
+
+/* The width in bits of the integer type or expression T.
+   Padding bits are not supported; this is checked at compile-time below.  */
+#define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT)
+
+/* The maximum and minimum values for the integer type T.  */
+#define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t))
+#define TYPE_MAXIMUM(t)                                                 \
+  ((t) (! TYPE_SIGNED (t)                                               \
+        ? (t) -1                                                        \
+        : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1)))
+
+/* The maximum and minimum values for the type of the expression E,
+   after integer promotion.  E should not have side effects.  */
+#define _GL_INT_MINIMUM(e)                                              \
+  (EXPR_SIGNED (e)                                                      \
+   ? ~ _GL_SIGNED_INT_MAXIMUM (e)                                       \
+   : _GL_INT_CONVERT (e, 0))
+#define _GL_INT_MAXIMUM(e)                                              \
+  (EXPR_SIGNED (e)                                                      \
+   ? _GL_SIGNED_INT_MAXIMUM (e)                                         \
+   : _GL_INT_NEGATE_CONVERT (e, 1))
+#define _GL_SIGNED_INT_MAXIMUM(e)                                       \
+  (((_GL_INT_CONVERT (e, 1) << (TYPE_WIDTH ((e) + 0) - 2)) - 1) * 2 + 1)
+
+/* Work around OpenVMS incompatibility with C99.  */
+#if !defined LLONG_MAX && defined __INT64_MAX
+# define LLONG_MAX __INT64_MAX
+# define LLONG_MIN __INT64_MIN
+#endif
+
+/* This include file assumes that signed types are two's complement without
+   padding bits; the above macros have undefined behavior otherwise.
+   If this is a problem for you, please let us know how to fix it for your host.
+   As a sanity check, test the assumption for some signed types that
+   <limits.h> bounds.  */
+verify (TYPE_MINIMUM (signed char) == SCHAR_MIN);
+verify (TYPE_MAXIMUM (signed char) == SCHAR_MAX);
+verify (TYPE_MINIMUM (short int) == SHRT_MIN);
+verify (TYPE_MAXIMUM (short int) == SHRT_MAX);
+verify (TYPE_MINIMUM (int) == INT_MIN);
+verify (TYPE_MAXIMUM (int) == INT_MAX);
+verify (TYPE_MINIMUM (long int) == LONG_MIN);
+verify (TYPE_MAXIMUM (long int) == LONG_MAX);
+#ifdef LLONG_MAX
+verify (TYPE_MINIMUM (long long int) == LLONG_MIN);
+verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
+#endif
+/* Similarly, sanity-check one ISO/IEC TS 18661-1:2014 macro if defined.  */
+#ifdef UINT_WIDTH
+verify (TYPE_WIDTH (unsigned int) == UINT_WIDTH);
+#endif
+
+/* Does the __typeof__ keyword work?  This could be done by
+   'configure', but for now it's easier to do it by hand.  */
+#if (2 <= __GNUC__ \
+     || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \
+     || (0x5110 <= __SUNPRO_C && !__STDC__))
+# define _GL_HAVE___TYPEOF__ 1
+#else
+# define _GL_HAVE___TYPEOF__ 0
+#endif
+
+/* Return 1 if the integer type or expression T might be signed.  Return 0
+   if it is definitely unsigned.  This macro does not evaluate its argument,
+   and expands to an integer constant expression.  */
+#if _GL_HAVE___TYPEOF__
+# define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t))
+#else
+# define _GL_SIGNED_TYPE_OR_EXPR(t) 1
+#endif
+
+/* Bound on length of the string representing an unsigned integer
+   value representable in B bits.  log10 (2.0) < 146/485.  The
+   smallest value of B where this bound is not tight is 2621.  */
+#define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485)
+
+/* Bound on length of the string representing an integer type or expression T.
+   Subtract 1 for the sign bit if T is signed, and then add 1 more for
+   a minus sign if needed.
+
+   Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 0 when its argument is
+   signed, this macro may overestimate the true bound by one byte when
+   applied to unsigned types of size 2, 4, 16, ... bytes.  */
+#define INT_STRLEN_BOUND(t)                                     \
+  (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \
+   + _GL_SIGNED_TYPE_OR_EXPR (t))
+
+/* Bound on buffer size needed to represent an integer type or expression T,
+   including the terminating null.  */
+#define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1)
+
+
+/* Range overflow checks.
+
+   The INT_<op>_RANGE_OVERFLOW macros return 1 if the corresponding C
+   operators might not yield numerically correct answers due to
+   arithmetic overflow.  They do not rely on undefined or
+   implementation-defined behavior.  Their implementations are simple
+   and straightforward, but they are a bit harder to use than the
+   INT_<op>_OVERFLOW macros described below.
+
+   Example usage:
+
+     long int i = ...;
+     long int j = ...;
+     if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX))
+       printf ("multiply would overflow");
+     else
+       printf ("product is %ld", i * j);
+
+   Restrictions on *_RANGE_OVERFLOW macros:
+
+   These macros do not check for all possible numerical problems or
+   undefined or unspecified behavior: they do not check for division
+   by zero, for bad shift counts, or for shifting negative numbers.
+
+   These macros may evaluate their arguments zero or multiple times,
+   so the arguments should not have side effects.  The arithmetic
+   arguments (including the MIN and MAX arguments) must be of the same
+   integer type after the usual arithmetic conversions, and the type
+   must have minimum value MIN and maximum MAX.  Unsigned types should
+   use a zero MIN of the proper type.
+
+   These macros are tuned for constant MIN and MAX.  For commutative
+   operations such as A + B, they are also tuned for constant B.  */
+
+/* Return 1 if A + B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  */
+#define INT_ADD_RANGE_OVERFLOW(a, b, min, max)          \
+  ((b) < 0                                              \
+   ? (a) < (min) - (b)                                  \
+   : (max) - (b) < (a))
+
+/* Return 1 if A - B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  */
+#define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max)     \
+  ((b) < 0                                              \
+   ? (max) + (b) < (a)                                  \
+   : (a) < (min) + (b))
+
+/* Return 1 if - A would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  */
+#define INT_NEGATE_RANGE_OVERFLOW(a, min, max)          \
+  ((min) < 0                                            \
+   ? (a) < - (max)                                      \
+   : 0 < (a))
+
+/* Return 1 if A * B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  Avoid && and || as they tickle
+   bugs in Sun C 5.11 2010/08/13 and other compilers; see
+   <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>.  */
+#define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max)     \
+  ((b) < 0                                              \
+   ? ((a) < 0                                           \
+      ? (a) < (max) / (b)                               \
+      : (b) == -1                                       \
+      ? 0                                               \
+      : (min) / (b) < (a))                              \
+   : (b) == 0                                           \
+   ? 0                                                  \
+   : ((a) < 0                                           \
+      ? (a) < (min) / (b)                               \
+      : (max) / (b) < (a)))
+
+/* Return 1 if A / B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  Do not check for division by zero.  */
+#define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max)       \
+  ((min) < 0 && (b) == -1 && (a) < - (max))
+
+/* Return 1 if A % B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  Do not check for division by zero.
+   Mathematically, % should never overflow, but on x86-like hosts
+   INT_MIN % -1 traps, and the C standard permits this, so treat this
+   as an overflow too.  */
+#define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max)    \
+  INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max)
+
+/* Return 1 if A << B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  Here, MIN and MAX are for A only, and B need
+   not be of the same type as the other arguments.  The C standard says that
+   behavior is undefined for shifts unless 0 <= B < wordwidth, and that when
+   A is negative then A << B has undefined behavior and A >> B has
+   implementation-defined behavior, but do not check these other
+   restrictions.  */
+#define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max)   \
+  ((a) < 0                                              \
+   ? (a) < (min) >> (b)                                 \
+   : (max) >> (b) < (a))
+
+/* True if __builtin_add_overflow (A, B, P) works when P is non-null.  */
+#define _GL_HAS_BUILTIN_OVERFLOW \
+  (5 <= __GNUC__ || __has_builtin (__builtin_add_overflow))
+
+/* True if __builtin_add_overflow_p (A, B, C) works.  */
+#define _GL_HAS_BUILTIN_OVERFLOW_P \
+  (7 <= __GNUC__ || __has_builtin (__builtin_add_overflow_p))
+
+/* The _GL*_OVERFLOW macros have the same restrictions as the
+   *_RANGE_OVERFLOW macros, except that they do not assume that operands
+   (e.g., A and B) have the same type as MIN and MAX.  Instead, they assume
+   that the result (e.g., A + B) has that type.  */
+#if _GL_HAS_BUILTIN_OVERFLOW_P
+# define _GL_ADD_OVERFLOW(a, b, min, max)                               \
+   __builtin_add_overflow_p (a, b, (__typeof__ ((a) + (b))) 0)
+# define _GL_SUBTRACT_OVERFLOW(a, b, min, max)                          \
+   __builtin_sub_overflow_p (a, b, (__typeof__ ((a) - (b))) 0)
+# define _GL_MULTIPLY_OVERFLOW(a, b, min, max)                          \
+   __builtin_mul_overflow_p (a, b, (__typeof__ ((a) * (b))) 0)
+#else
+# define _GL_ADD_OVERFLOW(a, b, min, max)                                \
+   ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max)                  \
+    : (a) < 0 ? (b) <= (a) + (b)                                         \
+    : (b) < 0 ? (a) <= (a) + (b)                                         \
+    : (a) + (b) < (b))
+# define _GL_SUBTRACT_OVERFLOW(a, b, min, max)                           \
+   ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max)             \
+    : (a) < 0 ? 1                                                        \
+    : (b) < 0 ? (a) - (b) <= (a)                                         \
+    : (a) < (b))
+# define _GL_MULTIPLY_OVERFLOW(a, b, min, max)                           \
+   (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a))))       \
+    || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max))
+#endif
+#define _GL_DIVIDE_OVERFLOW(a, b, min, max)                             \
+  ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max)  \
+   : (a) < 0 ? (b) <= (a) + (b) - 1                                     \
+   : (b) < 0 && (a) + (b) <= (a))
+#define _GL_REMAINDER_OVERFLOW(a, b, min, max)                          \
+  ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max)  \
+   : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b)                     \
+   : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max))
+
+/* Return a nonzero value if A is a mathematical multiple of B, where
+   A is unsigned, B is negative, and MAX is the maximum value of A's
+   type.  A's type must be the same as (A % B)'s type.  Normally (A %
+   -B == 0) suffices, but things get tricky if -B would overflow.  */
+#define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max)                            \
+  (((b) < -_GL_SIGNED_INT_MAXIMUM (b)                                   \
+    ? (_GL_SIGNED_INT_MAXIMUM (b) == (max)                              \
+       ? (a)                                                            \
+       : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1))   \
+    : (a) % - (b))                                                      \
+   == 0)
+
+/* Check for integer overflow, and report low order bits of answer.
+
+   The INT_<op>_OVERFLOW macros return 1 if the corresponding C operators
+   might not yield numerically correct answers due to arithmetic overflow.
+   The INT_<op>_WRAPV macros also store the low-order bits of the answer.
+   These macros work correctly on all known practical hosts, and do not rely
+   on undefined behavior due to signed arithmetic overflow.
+
+   Example usage, assuming A and B are long int:
+
+     if (INT_MULTIPLY_OVERFLOW (a, b))
+       printf ("result would overflow\n");
+     else
+       printf ("result is %ld (no overflow)\n", a * b);
+
+   Example usage with WRAPV flavor:
+
+     long int result;
+     bool overflow = INT_MULTIPLY_WRAPV (a, b, &result);
+     printf ("result is %ld (%s)\n", result,
+             overflow ? "after overflow" : "no overflow");
+
+   Restrictions on these macros:
+
+   These macros do not check for all possible numerical problems or
+   undefined or unspecified behavior: they do not check for division
+   by zero, for bad shift counts, or for shifting negative numbers.
+
+   These macros may evaluate their arguments zero or multiple times, so the
+   arguments should not have side effects.
+
+   The WRAPV macros are not constant expressions.  They support only
+   +, binary -, and *.  The result type must be signed.
+
+   These macros are tuned for their last argument being a constant.
+
+   Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B,
+   A % B, and A << B would overflow, respectively.  */
+
+#define INT_ADD_OVERFLOW(a, b) \
+  _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW)
+#define INT_SUBTRACT_OVERFLOW(a, b) \
+  _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW)
+#if _GL_HAS_BUILTIN_OVERFLOW_P
+# define INT_NEGATE_OVERFLOW(a) INT_SUBTRACT_OVERFLOW (0, a)
+#else
+# define INT_NEGATE_OVERFLOW(a) \
+   INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a))
+#endif
+#define INT_MULTIPLY_OVERFLOW(a, b) \
+  _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW)
+#define INT_DIVIDE_OVERFLOW(a, b) \
+  _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW)
+#define INT_REMAINDER_OVERFLOW(a, b) \
+  _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW)
+#define INT_LEFT_SHIFT_OVERFLOW(a, b) \
+  INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \
+                                 _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a))
+
+/* Return 1 if the expression A <op> B would overflow,
+   where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test,
+   assuming MIN and MAX are the minimum and maximum for the result type.
+   Arguments should be free of side effects.  */
+#define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow)        \
+  op_result_overflow (a, b,                                     \
+                      _GL_INT_MINIMUM (0 * (b) + (a)),          \
+                      _GL_INT_MAXIMUM (0 * (b) + (a)))
+
+/* Store the low-order bits of A + B, A - B, A * B, respectively, into *R.
+   Return 1 if the result overflows.  See above for restrictions.  */
+#define INT_ADD_WRAPV(a, b, r) \
+  _GL_INT_OP_WRAPV (a, b, r, +, __builtin_add_overflow, INT_ADD_OVERFLOW)
+#define INT_SUBTRACT_WRAPV(a, b, r) \
+  _GL_INT_OP_WRAPV (a, b, r, -, __builtin_sub_overflow, INT_SUBTRACT_OVERFLOW)
+#define INT_MULTIPLY_WRAPV(a, b, r) \
+  _GL_INT_OP_WRAPV (a, b, r, *, __builtin_mul_overflow, INT_MULTIPLY_OVERFLOW)
+
+/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390.  See:
+   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193
+   https://llvm.org/bugs/show_bug.cgi?id=25390
+   For now, assume all versions of GCC-like compilers generate bogus
+   warnings for _Generic.  This matters only for older compilers that
+   lack __builtin_add_overflow.  */
+#if __GNUC__
+# define _GL__GENERIC_BOGUS 1
+#else
+# define _GL__GENERIC_BOGUS 0
+#endif
+
+/* Store the low-order bits of A <op> B into *R, where OP specifies
+   the operation.  BUILTIN is the builtin operation, and OVERFLOW the
+   overflow predicate.  Return 1 if the result overflows.  See above
+   for restrictions.  */
+#if _GL_HAS_BUILTIN_OVERFLOW
+# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) builtin (a, b, r)
+#elif 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS
+# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \
+   (_Generic \
+    (*(r), \
+     signed char: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned char, \
+                        signed char, SCHAR_MIN, SCHAR_MAX), \
+     short int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned short int, \
+                        short int, SHRT_MIN, SHRT_MAX), \
+     int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
+                        int, INT_MIN, INT_MAX), \
+     long int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
+                        long int, LONG_MIN, LONG_MAX), \
+     long long int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
+                        long long int, LLONG_MIN, LLONG_MAX)))
+#else
+# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \
+   (sizeof *(r) == sizeof (signed char) \
+    ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned char, \
+                       signed char, SCHAR_MIN, SCHAR_MAX) \
+    : sizeof *(r) == sizeof (short int) \
+    ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned short int, \
+                       short int, SHRT_MIN, SHRT_MAX) \
+    : sizeof *(r) == sizeof (int) \
+    ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
+                       int, INT_MIN, INT_MAX) \
+    : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow))
+# ifdef LLONG_MAX
+#  define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
+    (sizeof *(r) == sizeof (long int) \
+     ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
+                        long int, LONG_MIN, LONG_MAX) \
+     : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
+                        long long int, LLONG_MIN, LLONG_MAX))
+# else
+#  define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
+    _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
+                     long int, LONG_MIN, LONG_MAX)
+# endif
+#endif
+
+/* Store the low-order bits of A <op> B into *R, where the operation
+   is given by OP.  Use the unsigned type UT for calculation to avoid
+   overflow problems.  *R's type is T, with extremal values TMIN and
+   TMAX.  T must be a signed integer type.  Return 1 if the result
+   overflows.  */
+#define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \
+  (sizeof ((a) op (b)) < sizeof (t) \
+   ? _GL_INT_OP_CALC1 ((t) (a), (t) (b), r, op, overflow, ut, t, tmin, tmax) \
+   : _GL_INT_OP_CALC1 (a, b, r, op, overflow, ut, t, tmin, tmax))
+#define _GL_INT_OP_CALC1(a, b, r, op, overflow, ut, t, tmin, tmax) \
+  ((overflow (a, b) \
+    || (EXPR_SIGNED ((a) op (b)) && ((a) op (b)) < (tmin)) \
+    || (tmax) < ((a) op (b))) \
+   ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t, tmin, tmax), 1) \
+   : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t, tmin, tmax), 0))
+
+/* Return A <op> B, where the operation is given by OP.  Use the
+   unsigned type UT for calculation to avoid overflow problems.
+   Convert the result to type T without overflow by subtracting TMIN
+   from large values before converting, and adding it afterwards.
+   Compilers can optimize all the operations except OP.  */
+#define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t, tmin, tmax) \
+  (((ut) (a) op (ut) (b)) <= (tmax) \
+   ? (t) ((ut) (a) op (ut) (b)) \
+   : ((t) (((ut) (a) op (ut) (b)) - (tmin)) + (tmin)))
+
+#endif /* _GL_INTPROPS_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/chdir-long.m4 ./gdb/gnulib/import/m4/chdir-long.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/chdir-long.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/chdir-long.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,30 @@
+#serial 15
+
+# Use Gnulib's robust chdir function.
+# It can handle arbitrarily long directory names, which means
+# that when it is given the name of an existing directory, it
+# never fails with ENAMETOOLONG.
+# Arrange to compile chdir-long.c only on systems that define PATH_MAX.
+
+dnl Copyright (C) 2004-2007, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Written by Jim Meyering.
+
+AC_DEFUN([gl_FUNC_CHDIR_LONG],
+[
+  AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
+  AC_CACHE_CHECK([whether this system has an arbitrary file name length limit],
+    gl_cv_have_arbitrary_file_name_length_limit,
+    [AC_EGREP_CPP([have_arbitrary_file_name_length_limit],
+                  gl_PATHMAX_SNIPPET[
+#ifdef PATH_MAX
+have_arbitrary_file_name_length_limit
+#endif],
+    gl_cv_have_arbitrary_file_name_length_limit=yes,
+    gl_cv_have_arbitrary_file_name_length_limit=no)])
+])
+
+AC_DEFUN([gl_PREREQ_CHDIR_LONG], [:])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/closedir.m4 ./gdb/gnulib/import/m4/closedir.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/closedir.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/closedir.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,30 @@
+# closedir.m4 serial 5
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_CLOSEDIR],
+[
+  AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+  AC_CHECK_FUNCS([closedir])
+  if test $ac_cv_func_closedir = no; then
+    HAVE_CLOSEDIR=0
+  fi
+  dnl Replace closedir() for supporting the gnulib-defined fchdir() function,
+  dnl to keep fchdir's bookkeeping up-to-date.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    gl_TEST_FCHDIR
+    if test $HAVE_FCHDIR = 0; then
+      if test $HAVE_CLOSEDIR = 1; then
+        REPLACE_CLOSEDIR=1
+      fi
+    fi
+  ])
+  dnl Replace closedir() for supporting the gnulib-defined dirfd() function.
+  case $host_os,$HAVE_CLOSEDIR in
+    os2*,1)
+      REPLACE_CLOSEDIR=1;;
+  esac
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/close.m4 ./gdb/gnulib/import/m4/close.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/close.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/close.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,33 @@
+# close.m4 serial 8
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_CLOSE],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([gl_MSVC_INVAL])
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_CLOSE=1
+  fi
+  m4_ifdef([gl_PREREQ_SYS_H_WINSOCK2], [
+    gl_PREREQ_SYS_H_WINSOCK2
+    if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then
+      dnl Even if the 'socket' module is not used here, another part of the
+      dnl application may use it and pass file descriptors that refer to
+      dnl sockets to the close() function. So enable the support for sockets.
+      REPLACE_CLOSE=1
+    fi
+  ])
+  dnl Replace close() for supporting the gnulib-defined fchdir() function,
+  dnl to keep fchdir's bookkeeping up-to-date.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    if test $REPLACE_CLOSE = 0; then
+      gl_TEST_FCHDIR
+      if test $HAVE_FCHDIR = 0; then
+        REPLACE_CLOSE=1
+      fi
+    fi
+  ])
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/d-ino.m4 ./gdb/gnulib/import/m4/d-ino.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/d-ino.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/d-ino.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,56 @@
+# serial 15
+
+dnl From Jim Meyering.
+dnl
+dnl Check whether struct dirent has a member named d_ino.
+dnl
+
+# Copyright (C) 1997, 1999-2001, 2003-2004, 2006-2007, 2009-2016 Free Software
+# Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO],
+  [AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+   AC_CACHE_CHECK([for d_ino member in directory struct],
+                  gl_cv_struct_dirent_d_ino,
+     [AC_RUN_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <sys/types.h>
+             #include <sys/stat.h>
+             #include <dirent.h>
+           ]],
+           [[DIR *dp = opendir (".");
+             struct dirent *e;
+             struct stat st;
+             if (! dp)
+               return 1;
+             e = readdir (dp);
+             if (! e)
+               return 2;
+             if (lstat (e->d_name, &st) != 0)
+               return 3;
+             if (e->d_ino != st.st_ino)
+               return 4;
+             closedir (dp);
+             return 0;
+           ]])],
+           [gl_cv_struct_dirent_d_ino=yes],
+           [gl_cv_struct_dirent_d_ino=no],
+           [case "$host_os" in
+                           # Guess yes on glibc systems with Linux kernel.
+              linux*-gnu*) gl_cv_struct_dirent_d_ino="guessing yes" ;;
+                           # If we don't know, assume the worst.
+              *)           gl_cv_struct_dirent_d_ino="guessing no" ;;
+            esac
+           ])])
+   case "$gl_cv_struct_dirent_d_ino" in
+     *yes)
+       AC_DEFINE([D_INO_IN_DIRENT], [1],
+         [Define if struct dirent has a member d_ino that actually works.])
+       ;;
+   esac
+  ]
+)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/d-type.m4 ./gdb/gnulib/import/m4/d-type.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/d-type.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/d-type.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,32 @@
+# serial 11
+
+dnl From Jim Meyering.
+dnl
+dnl Check whether struct dirent has a member named d_type.
+dnl
+
+# Copyright (C) 1997, 1999-2004, 2006, 2009-2016 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE],
+  [AC_CACHE_CHECK([for d_type member in directory struct],
+                  gl_cv_struct_dirent_d_type,
+     [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#include <sys/types.h>
+#include <dirent.h>
+         ]],
+         [[struct dirent dp; dp.d_type = 0;]])],
+       [gl_cv_struct_dirent_d_type=yes],
+       [gl_cv_struct_dirent_d_type=no])
+     ]
+   )
+   if test $gl_cv_struct_dirent_d_type = yes; then
+     AC_DEFINE([HAVE_STRUCT_DIRENT_D_TYPE], [1],
+       [Define if there is a member named d_type in the struct describing
+        directory headers.])
+   fi
+  ]
+)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/dup2.m4 ./gdb/gnulib/import/m4/dup2.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/dup2.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/dup2.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,117 @@
+#serial 25
+dnl Copyright (C) 2002, 2005, 2007, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_DUP2],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  m4_ifdef([gl_FUNC_DUP2_OBSOLETE], [
+    AC_CHECK_FUNCS_ONCE([dup2])
+    if test $ac_cv_func_dup2 = no; then
+      HAVE_DUP2=0
+    fi
+  ], [
+    AC_DEFINE([HAVE_DUP2], [1], [Define to 1 if you have the 'dup2' function.])
+  ])
+  if test $HAVE_DUP2 = 1; then
+    AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works],
+      [AC_RUN_IFELSE([
+         AC_LANG_PROGRAM(
+           [[#include <errno.h>
+             #include <fcntl.h>
+             #include <limits.h>
+             #include <sys/resource.h>
+             #include <unistd.h>
+             #ifndef RLIM_SAVED_CUR
+             # define RLIM_SAVED_CUR RLIM_INFINITY
+             #endif
+             #ifndef RLIM_SAVED_MAX
+             # define RLIM_SAVED_MAX RLIM_INFINITY
+             #endif
+           ]],
+           [[int result = 0;
+             int bad_fd = INT_MAX;
+             struct rlimit rlim;
+             if (getrlimit (RLIMIT_NOFILE, &rlim) == 0
+                 && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX
+                 && rlim.rlim_cur != RLIM_INFINITY
+                 && rlim.rlim_cur != RLIM_SAVED_MAX
+                 && rlim.rlim_cur != RLIM_SAVED_CUR)
+               bad_fd = rlim.rlim_cur;
+             #ifdef FD_CLOEXEC
+               if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
+                 result |= 1;
+             #endif
+             if (dup2 (1, 1) != 1)
+               result |= 2;
+             #ifdef FD_CLOEXEC
+               if (fcntl (1, F_GETFD) != FD_CLOEXEC)
+                 result |= 4;
+             #endif
+             close (0);
+             if (dup2 (0, 0) != -1)
+               result |= 8;
+             /* Many gnulib modules require POSIX conformance of EBADF.  */
+             if (dup2 (2, bad_fd) == -1 && errno != EBADF)
+               result |= 16;
+             /* Flush out some cygwin core dumps.  */
+             if (dup2 (2, -1) != -1 || errno != EBADF)
+               result |= 32;
+             dup2 (2, 255);
+             dup2 (2, 256);
+             /* On OS/2 kLIBC, dup2() does not work on a directory fd.  */
+             {
+               int fd = open (".", O_RDONLY);
+               if (fd == -1)
+                 result |= 64;
+               else if (dup2 (fd, fd + 1) == -1)
+                 result |= 128;
+
+               close (fd);
+             }
+             return result;]])
+        ],
+        [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no],
+        [case "$host_os" in
+           mingw*) # on this platform, dup2 always returns 0 for success
+             gl_cv_func_dup2_works="guessing no" ;;
+           cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0
+             gl_cv_func_dup2_works="guessing no" ;;
+           aix* | freebsd*)
+                   # on AIX 7.1 and FreeBSD 6.1, dup2 (1,toobig) gives EMFILE,
+                   # not EBADF.
+             gl_cv_func_dup2_works="guessing no" ;;
+           haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC.
+             gl_cv_func_dup2_works="guessing no" ;;
+           *-android*) # implemented using dup3(), which fails if oldfd == newfd
+             gl_cv_func_dup2_works="guessing no" ;;
+           os2*) # on OS/2 kLIBC, dup2() does not work on a directory fd.
+             gl_cv_func_dup2_works="guessing no" ;;
+           *) gl_cv_func_dup2_works="guessing yes" ;;
+         esac])
+      ])
+    case "$gl_cv_func_dup2_works" in
+      *yes) ;;
+      *)
+        REPLACE_DUP2=1
+        AC_CHECK_FUNCS([setdtablesize])
+        ;;
+    esac
+  fi
+  dnl Replace dup2() for supporting the gnulib-defined fchdir() function,
+  dnl to keep fchdir's bookkeeping up-to-date.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    gl_TEST_FCHDIR
+    if test $HAVE_FCHDIR = 0; then
+      if test $HAVE_DUP2 = 1; then
+        REPLACE_DUP2=1
+      fi
+    fi
+  ])
+])
+
+# Prerequisites of lib/dup2.c.
+AC_DEFUN([gl_PREREQ_DUP2], [])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/dup.m4 ./gdb/gnulib/import/m4/dup.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/dup.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/dup.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,45 @@
+# dup.m4 serial 4
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_DUP],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([gl_MSVC_INVAL])
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_DUP=1
+  fi
+  dnl Replace dup() for supporting the gnulib-defined fchdir() function,
+  dnl to keep fchdir's bookkeeping up-to-date.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    gl_TEST_FCHDIR
+    if test $HAVE_FCHDIR = 0; then
+      REPLACE_DUP=1
+    fi
+  ])
+  AC_CACHE_CHECK([whether dup works], [gl_cv_func_dup_works],
+    [AC_RUN_IFELSE(
+      [AC_LANG_PROGRAM([[#include <unistd.h>
+                         #include <fcntl.h>
+                         #include <errno.h>]],
+         [[/* On OS/2 kLIBC, dup does not work on a directory fd.  */
+           int fd = open (".", O_RDONLY);
+           return fd < 0 ? 1 : dup (fd) < 0 ? 2 : 0;
+         ]])
+      ],
+      [gl_cv_func_dup_works=yes],
+      [gl_cv_func_dup_works=no],
+      [gl_cv_func_dup_works='guessing yes'])
+    ])
+  case "$gl_cv_func_dup_works" in
+    *yes) ;;
+    *)
+      REPLACE_DUP=1
+      ;;
+  esac
+])
+
+# Prerequisites of lib/dup.c.
+AC_DEFUN([gl_PREREQ_DUP], [:])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/environ.m4 ./gdb/gnulib/import/m4/environ.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/environ.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/environ.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,47 @@
+# environ.m4 serial 6
+dnl Copyright (C) 2001-2004, 2006-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN_ONCE([gl_ENVIRON],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  dnl Persuade glibc <unistd.h> to declare environ.
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+  gt_CHECK_VAR_DECL(
+    [#if HAVE_UNISTD_H
+     #include <unistd.h>
+     #endif
+     /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>.  */
+     #include <stdlib.h>
+    ],
+    [environ])
+  if test $gt_cv_var_environ_declaration != yes; then
+    HAVE_DECL_ENVIRON=0
+  fi
+])
+
+# Check if a variable is properly declared.
+# gt_CHECK_VAR_DECL(includes,variable)
+AC_DEFUN([gt_CHECK_VAR_DECL],
+[
+  define([gt_cv_var], [gt_cv_var_]$2[_declaration])
+  AC_MSG_CHECKING([if $2 is properly declared])
+  AC_CACHE_VAL([gt_cv_var], [
+    AC_COMPILE_IFELSE(
+      [AC_LANG_PROGRAM(
+         [[$1
+           extern struct { int foo; } $2;]],
+         [[$2.foo = 1;]])],
+      [gt_cv_var=no],
+      [gt_cv_var=yes])])
+  AC_MSG_RESULT([$gt_cv_var])
+  if test $gt_cv_var = yes; then
+    AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1,
+              [Define if you have the declaration of $2.])
+  fi
+  undefine([gt_cv_var])
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/error.m4 ./gdb/gnulib/import/m4/error.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/error.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/error.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,27 @@
+#serial 14
+
+# Copyright (C) 1996-1998, 2001-2004, 2009-2016 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_ERROR],
+[
+  dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer
+  dnl maintained in Autoconf and because it invokes AC_LIBOBJ.
+  AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line],
+    [AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <error.h>]],
+          [[error_at_line (0, 0, "", 0, "an error occurred");]])],
+       [ac_cv_lib_error_at_line=yes],
+       [ac_cv_lib_error_at_line=no])])
+])
+
+# Prerequisites of lib/error.c.
+AC_DEFUN([gl_PREREQ_ERROR],
+[
+  AC_REQUIRE([AC_FUNC_STRERROR_R])
+  :
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/fchdir.m4 ./gdb/gnulib/import/m4/fchdir.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/fchdir.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/fchdir.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,61 @@
+# fchdir.m4 serial 21
+dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_FCHDIR],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+  AC_CHECK_DECLS_ONCE([fchdir])
+  if test $ac_cv_have_decl_fchdir = no; then
+    HAVE_DECL_FCHDIR=0
+  fi
+
+  AC_REQUIRE([gl_TEST_FCHDIR])
+  if test $HAVE_FCHDIR = 0; then
+    AC_LIBOBJ([fchdir])
+    gl_PREREQ_FCHDIR
+    AC_DEFINE([REPLACE_FCHDIR], [1],
+      [Define to 1 if gnulib's fchdir() replacement is used.])
+    dnl We must also replace anything that can manipulate a directory fd,
+    dnl to keep our bookkeeping up-to-date.  We don't have to replace
+    dnl fstatat, since no platform has fstatat but lacks fchdir.
+    AC_CACHE_CHECK([whether open can visit directories],
+      [gl_cv_func_open_directory_works],
+      [AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <fcntl.h>
+]], [return open(".", O_RDONLY) < 0;])],
+        [gl_cv_func_open_directory_works=yes],
+        [gl_cv_func_open_directory_works=no],
+        [case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_open_directory_works="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_open_directory_works="guessing no" ;;
+         esac
+        ])])
+    case "$gl_cv_func_open_directory_works" in
+      *yes) ;;
+      *)
+        AC_DEFINE([REPLACE_OPEN_DIRECTORY], [1], [Define to 1 if open() should
+work around the inability to open a directory.])
+        ;;
+    esac
+  fi
+])
+
+# Determine whether to use the overrides in lib/fchdir.c.
+AC_DEFUN([gl_TEST_FCHDIR],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_CHECK_FUNCS_ONCE([fchdir])
+  if test $ac_cv_func_fchdir = no; then
+    HAVE_FCHDIR=0
+  fi
+])
+
+# Prerequisites of lib/fchdir.c.
+AC_DEFUN([gl_PREREQ_FCHDIR], [:])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/fcntl_h.m4 ./gdb/gnulib/import/m4/fcntl_h.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/fcntl_h.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/fcntl_h.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,50 @@
+# serial 15
+# Configure fcntl.h.
+dnl Copyright (C) 2006-2007, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Written by Paul Eggert.
+
+AC_DEFUN([gl_FCNTL_H],
+[
+  AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
+  AC_REQUIRE([gl_FCNTL_O_FLAGS])
+  gl_NEXT_HEADERS([fcntl.h])
+
+  dnl Ensure the type pid_t gets defined.
+  AC_REQUIRE([AC_TYPE_PID_T])
+
+  dnl Ensure the type mode_t gets defined.
+  AC_REQUIRE([AC_TYPE_MODE_T])
+
+  dnl Check for declarations of anything we want to poison if the
+  dnl corresponding gnulib module is not in use, if it is not common
+  dnl enough to be declared everywhere.
+  gl_WARN_ON_USE_PREPARE([[#include <fcntl.h>
+    ]], [fcntl openat])
+])
+
+AC_DEFUN([gl_FCNTL_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
+  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+  dnl Define it also as a C macro, for the benefit of the unit tests.
+  gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_FCNTL_H_DEFAULTS],
+[
+  GNULIB_FCNTL=0;        AC_SUBST([GNULIB_FCNTL])
+  GNULIB_NONBLOCKING=0;  AC_SUBST([GNULIB_NONBLOCKING])
+  GNULIB_OPEN=0;         AC_SUBST([GNULIB_OPEN])
+  GNULIB_OPENAT=0;       AC_SUBST([GNULIB_OPENAT])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_FCNTL=1;          AC_SUBST([HAVE_FCNTL])
+  HAVE_OPENAT=1;         AC_SUBST([HAVE_OPENAT])
+  REPLACE_FCNTL=0;       AC_SUBST([REPLACE_FCNTL])
+  REPLACE_OPEN=0;        AC_SUBST([REPLACE_OPEN])
+  REPLACE_OPENAT=0;      AC_SUBST([REPLACE_OPENAT])
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/fcntl.m4 ./gdb/gnulib/import/m4/fcntl.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/fcntl.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/fcntl.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,126 @@
+# fcntl.m4 serial 9
+dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# For now, this module ensures that fcntl()
+# - supports F_DUPFD correctly
+# - supports or emulates F_DUPFD_CLOEXEC
+# - supports F_GETFD
+# Still to be ported to mingw:
+# - F_SETFD
+# - F_GETFL, F_SETFL
+# - F_GETOWN, F_SETOWN
+# - F_GETLK, F_SETLK, F_SETLKW
+AC_DEFUN([gl_FUNC_FCNTL],
+[
+  dnl Persuade glibc to expose F_DUPFD_CLOEXEC.
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_CHECK_FUNCS_ONCE([fcntl])
+  if test $ac_cv_func_fcntl = no; then
+    gl_REPLACE_FCNTL
+  else
+    dnl cygwin 1.5.x F_DUPFD has wrong errno, and allows negative target
+    dnl haiku alpha 2 F_DUPFD has wrong errno
+    AC_CACHE_CHECK([whether fcntl handles F_DUPFD correctly],
+      [gl_cv_func_fcntl_f_dupfd_works],
+      [AC_RUN_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[#include <errno.h>
+              #include <fcntl.h>
+              #include <limits.h>
+              #include <sys/resource.h>
+              #include <unistd.h>
+              #ifndef RLIM_SAVED_CUR
+              # define RLIM_SAVED_CUR RLIM_INFINITY
+              #endif
+              #ifndef RLIM_SAVED_MAX
+              # define RLIM_SAVED_MAX RLIM_INFINITY
+              #endif
+            ]],
+            [[int result = 0;
+              int bad_fd = INT_MAX;
+              struct rlimit rlim;
+              if (getrlimit (RLIMIT_NOFILE, &rlim) == 0
+                  && 0 <= rlim.rlim_cur && rlim.rlim_cur <= INT_MAX
+                  && rlim.rlim_cur != RLIM_INFINITY
+                  && rlim.rlim_cur != RLIM_SAVED_MAX
+                  && rlim.rlim_cur != RLIM_SAVED_CUR)
+                bad_fd = rlim.rlim_cur;
+              if (fcntl (0, F_DUPFD, -1) != -1) result |= 1;
+              if (errno != EINVAL) result |= 2;
+              if (fcntl (0, F_DUPFD, bad_fd) != -1) result |= 4;
+              if (errno != EINVAL) result |= 8;
+              /* On OS/2 kLIBC, F_DUPFD does not work on a directory fd */
+              {
+                int fd;
+                fd = open (".", O_RDONLY);
+                if (fd == -1)
+                  result |= 16;
+                else if (fcntl (fd, F_DUPFD, STDERR_FILENO + 1) == -1)
+                  result |= 32;
+
+                close (fd);
+              }
+              return result;]])],
+         [gl_cv_func_fcntl_f_dupfd_works=yes],
+         [gl_cv_func_fcntl_f_dupfd_works=no],
+         [case $host_os in
+            aix* | cygwin* | haiku*)
+               gl_cv_func_fcntl_f_dupfd_works="guessing no" ;;
+            *) gl_cv_func_fcntl_f_dupfd_works="guessing yes" ;;
+          esac])])
+    case $gl_cv_func_fcntl_f_dupfd_works in
+      *yes) ;;
+      *) gl_REPLACE_FCNTL
+        AC_DEFINE([FCNTL_DUPFD_BUGGY], [1], [Define this to 1 if F_DUPFD
+          behavior does not match POSIX]) ;;
+    esac
+
+    dnl Many systems lack F_DUPFD_CLOEXEC
+    AC_CACHE_CHECK([whether fcntl understands F_DUPFD_CLOEXEC],
+      [gl_cv_func_fcntl_f_dupfd_cloexec],
+      [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <fcntl.h>
+#ifndef F_DUPFD_CLOEXEC
+choke me
+#endif
+         ]])],
+         [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#ifdef __linux__
+/* The Linux kernel only added F_DUPFD_CLOEXEC in 2.6.24, so we always replace
+   it to support the semantics on older kernels that failed with EINVAL.  */
+choke me
+#endif
+           ]])],
+           [gl_cv_func_fcntl_f_dupfd_cloexec=yes],
+           [gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"])],
+         [gl_cv_func_fcntl_f_dupfd_cloexec=no])])
+    if test "$gl_cv_func_fcntl_f_dupfd_cloexec" != yes; then
+      gl_REPLACE_FCNTL
+      dnl No witness macro needed for this bug.
+    fi
+  fi
+  dnl Replace fcntl() for supporting the gnulib-defined fchdir() function,
+  dnl to keep fchdir's bookkeeping up-to-date.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    gl_TEST_FCHDIR
+    if test $HAVE_FCHDIR = 0; then
+      gl_REPLACE_FCNTL
+    fi
+  ])
+])
+
+AC_DEFUN([gl_REPLACE_FCNTL],
+[
+  AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
+  AC_CHECK_FUNCS_ONCE([fcntl])
+  if test $ac_cv_func_fcntl = no; then
+    HAVE_FCNTL=0
+  else
+    REPLACE_FCNTL=1
+  fi
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/fdopendir.m4 ./gdb/gnulib/import/m4/fdopendir.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/fdopendir.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/fdopendir.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,61 @@
+# serial 10
+# See if we need to provide fdopendir.
+
+dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Written by Eric Blake.
+
+AC_DEFUN([gl_FUNC_FDOPENDIR],
+[
+  AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+  dnl FreeBSD 7.3 has the function, but failed to declare it.
+  AC_CHECK_DECLS([fdopendir], [], [HAVE_DECL_FDOPENDIR=0], [[
+#include <dirent.h>
+    ]])
+  AC_CHECK_FUNCS_ONCE([fdopendir])
+  if test $ac_cv_func_fdopendir = no; then
+    HAVE_FDOPENDIR=0
+  else
+    AC_CACHE_CHECK([whether fdopendir works],
+      [gl_cv_func_fdopendir_works],
+      [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <dirent.h>
+#include <fcntl.h>
+#include <unistd.h>
+#if !HAVE_DECL_FDOPENDIR
+extern
+# ifdef __cplusplus
+"C"
+# endif
+DIR *fdopendir (int);
+#endif
+]], [int result = 0;
+     int fd = open ("conftest.c", O_RDONLY);
+     if (fd < 0) result |= 1;
+     if (fdopendir (fd)) result |= 2;
+     if (close (fd)) result |= 4;
+     return result;])],
+         [gl_cv_func_fdopendir_works=yes],
+         [gl_cv_func_fdopendir_works=no],
+         [case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_fdopendir_works="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_fdopendir_works="guessing no" ;;
+          esac
+         ])])
+    case "$gl_cv_func_fdopendir_works" in
+      *yes) ;;
+      *)
+        REPLACE_FDOPENDIR=1
+        ;;
+    esac
+  fi
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/filenamecat.m4 ./gdb/gnulib/import/m4/filenamecat.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/filenamecat.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/filenamecat.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,16 @@
+# filenamecat.m4 serial 11
+dnl Copyright (C) 2002-2006, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FILE_NAME_CONCAT],
+[
+  AC_REQUIRE([gl_FILE_NAME_CONCAT_LGPL])
+])
+
+AC_DEFUN([gl_FILE_NAME_CONCAT_LGPL],
+[
+  dnl Prerequisites of lib/filenamecat-lgpl.c.
+  AC_CHECK_FUNCS_ONCE([mempcpy])
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/fstatat.m4 ./gdb/gnulib/import/m4/fstatat.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/fstatat.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/fstatat.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,60 @@
+# fstatat.m4 serial 3
+dnl Copyright (C) 2004-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Written by Jim Meyering.
+
+# If we have the fstatat function, and it has the bug (in AIX 7.1)
+# that it does not fill in st_size correctly, use the replacement function.
+AC_DEFUN([gl_FUNC_FSTATAT],
+[
+  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CHECK_FUNCS_ONCE([fstatat])
+
+  if test $ac_cv_func_fstatat = no; then
+    HAVE_FSTATAT=0
+  else
+    dnl Test for an AIX 7.1 bug; see
+    dnl <http://lists.gnu.org/archive/html/bug-tar/2011-09/msg00015.html>.
+    AC_CACHE_CHECK([whether fstatat (..., 0) works],
+      [gl_cv_func_fstatat_zero_flag],
+      [AC_RUN_IFELSE(
+         [AC_LANG_SOURCE(
+            [[
+              #include <fcntl.h>
+              #include <sys/stat.h>
+              int
+              main (void)
+              {
+                struct stat a;
+                return fstatat (AT_FDCWD, ".", &a, 0) != 0;
+              }
+            ]])],
+         [gl_cv_func_fstatat_zero_flag=yes],
+         [gl_cv_func_fstatat_zero_flag=no],
+         [case "$host_os" in
+            aix*) gl_cv_func_fstatat_zero_flag="guessing no";;
+            *)    gl_cv_func_fstatat_zero_flag="guessing yes";;
+          esac
+         ])
+      ])
+
+    case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in
+    *yes+*yes) ;;
+    *) REPLACE_FSTATAT=1
+       case $gl_cv_func_fstatat_zero_flag in
+       *yes)
+         AC_DEFINE([HAVE_WORKING_FSTATAT_ZERO_FLAG], [1],
+           [Define to 1 if fstatat (..., 0) works.
+            For example, it does not work in AIX 7.1.])
+         ;;
+       esac
+       ;;
+    esac
+  fi
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/fstat.m4 ./gdb/gnulib/import/m4/fstat.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/fstat.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/fstat.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,36 @@
+# fstat.m4 serial 4
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_FSTAT],
+[
+  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+
+  AC_REQUIRE([gl_MSVC_INVAL])
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_FSTAT=1
+  fi
+
+  AC_REQUIRE([gl_HEADER_SYS_STAT_H])
+  if test $WINDOWS_64_BIT_ST_SIZE = 1; then
+    REPLACE_FSTAT=1
+  fi
+
+  dnl Replace fstat() for supporting the gnulib-defined open() on directories.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    gl_TEST_FCHDIR
+    if test $HAVE_FCHDIR = 0; then
+      case "$gl_cv_func_open_directory_works" in
+        *yes) ;;
+        *)
+          REPLACE_FSTAT=1
+          ;;
+      esac
+    fi
+  ])
+])
+
+# Prerequisites of lib/fstat.c.
+AC_DEFUN([gl_PREREQ_FSTAT], [:])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/getcwd-abort-bug.m4 ./gdb/gnulib/import/m4/getcwd-abort-bug.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/getcwd-abort-bug.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/getcwd-abort-bug.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,140 @@
+# serial 7
+# Determine whether getcwd aborts when the length of the working directory
+# name is unusually large.  Any length between 4k and 16k trigger the bug
+# when using glibc-2.4.90-9 or older.
+
+# Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# From Jim Meyering
+
+# gl_FUNC_GETCWD_ABORT_BUG([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+AC_DEFUN([gl_FUNC_GETCWD_ABORT_BUG],
+[
+  AC_CHECK_DECLS_ONCE([getcwd])
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+  AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
+  AC_CHECK_FUNCS([getpagesize])
+  AC_CACHE_CHECK([whether getcwd aborts when 4k < cwd_length < 16k],
+    gl_cv_func_getcwd_abort_bug,
+    [# Remove any remnants of a previous test.
+     rm -rf confdir-14B---
+     # Arrange for deletion of the temporary directory this test creates.
+     ac_clean_files="$ac_clean_files confdir-14B---"
+     dnl Please keep this in sync with tests/test-getcwd.c.
+     AC_RUN_IFELSE(
+       [AC_LANG_SOURCE(
+          [[
+#include <errno.h>
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <direct.h>
+#endif
+#include <string.h>
+#include <sys/stat.h>
+
+]gl_PATHMAX_SNIPPET[
+
+/* Don't get link errors because mkdir is redefined to rpl_mkdir.  */
+#undef mkdir
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* FIXME: skip the run-test altogether on systems without getpagesize.  */
+#if ! HAVE_GETPAGESIZE
+# define getpagesize() 0
+#endif
+
+/* This size is chosen to be larger than PATH_MAX (4k), yet smaller than
+   the 16kB pagesize on ia64 linux.  Those conditions make the code below
+   trigger a bug in glibc's getcwd implementation before 2.4.90-10.  */
+#define TARGET_LEN (5 * 1024)
+
+int
+main ()
+{
+  char *cwd;
+  size_t initial_cwd_len;
+  int fail = 0;
+
+  /* The bug is triggered when PATH_MAX < getpagesize (), so skip
+     this relatively expensive and invasive test if that's not true.  */
+#ifdef PATH_MAX
+  int bug_possible = PATH_MAX < getpagesize ();
+#else
+  int bug_possible = 0;
+#endif
+  if (! bug_possible)
+    return 0;
+
+  cwd = getcwd (NULL, 0);
+  if (cwd == NULL)
+    return 2;
+
+  initial_cwd_len = strlen (cwd);
+  free (cwd);
+
+  if (1)
+    {
+      static char const dir_name[] = "confdir-14B---";
+      size_t desired_depth = ((TARGET_LEN - 1 - initial_cwd_len)
+                              / sizeof dir_name);
+      size_t d;
+      for (d = 0; d < desired_depth; d++)
+        {
+          if (mkdir (dir_name, S_IRWXU) < 0 || chdir (dir_name) < 0)
+            {
+              if (! (errno == ERANGE || errno == ENAMETOOLONG
+                     || errno == ENOENT))
+                fail = 3; /* Unable to construct deep hierarchy.  */
+              break;
+            }
+        }
+
+      /* If libc has the bug in question, this invocation of getcwd
+         results in a failed assertion.  */
+      cwd = getcwd (NULL, 0);
+      if (cwd == NULL)
+        fail = 4; /* getcwd didn't assert, but it failed for a long name
+                     where the answer could have been learned.  */
+      free (cwd);
+
+      /* Call rmdir first, in case the above chdir failed.  */
+      rmdir (dir_name);
+      while (0 < d--)
+        {
+          if (chdir ("..") < 0)
+            {
+              fail = 5;
+              break;
+            }
+          rmdir (dir_name);
+        }
+    }
+
+  return fail;
+}
+          ]])],
+    [gl_cv_func_getcwd_abort_bug=no],
+    [dnl An abort will provoke an exit code of something like 134 (128 + 6).
+     dnl An exit code of 4 can also occur (in OpenBSD 4.9, NetBSD 5.1 for
+     dnl example): getcwd (NULL, 0) fails rather than returning a string
+     dnl longer than PATH_MAX.  This may be POSIX compliant (in some
+     dnl interpretations of POSIX).  But gnulib's getcwd module wants to
+     dnl provide a non-NULL value in this case.
+     ret=$?
+     if test $ret -ge 128 || test $ret = 4; then
+       gl_cv_func_getcwd_abort_bug=yes
+     else
+       gl_cv_func_getcwd_abort_bug=no
+     fi],
+    [gl_cv_func_getcwd_abort_bug=yes])
+  ])
+  AS_IF([test $gl_cv_func_getcwd_abort_bug = yes], [$1], [$2])
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/getcwd.m4 ./gdb/gnulib/import/m4/getcwd.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/getcwd.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/getcwd.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,162 @@
+# getcwd.m4 - check for working getcwd that is compatible with glibc
+
+# Copyright (C) 2001, 2003-2007, 2009-2016 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Written by Paul Eggert.
+# serial 13
+
+AC_DEFUN([gl_FUNC_GETCWD_NULL],
+  [
+   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+   AC_CHECK_HEADERS_ONCE([unistd.h])
+   AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result],
+     [gl_cv_func_getcwd_null],
+     [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#	 include <stdlib.h>
+#        if HAVE_UNISTD_H
+#         include <unistd.h>
+#        else /* on Windows with MSVC */
+#         include <direct.h>
+#        endif
+#        ifndef getcwd
+         char *getcwd ();
+#        endif
+]], [[
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* mingw cwd does not start with '/', but getcwd does allocate.
+   However, mingw fails to honor non-zero size.  */
+#else
+           if (chdir ("/") != 0)
+             return 1;
+           else
+             {
+               char *f = getcwd (NULL, 0);
+               if (! f)
+                 return 2;
+               if (f[0] != '/')
+                 return 3;
+               if (f[1] != '\0')
+                 return 4;
+               free (f);
+               return 0;
+             }
+#endif
+         ]])],
+        [gl_cv_func_getcwd_null=yes],
+        [gl_cv_func_getcwd_null=no],
+        [[case "$host_os" in
+                     # Guess yes on glibc systems.
+            *-gnu*)  gl_cv_func_getcwd_null="guessing yes";;
+                     # Guess yes on Cygwin.
+            cygwin*) gl_cv_func_getcwd_null="guessing yes";;
+                     # If we don't know, assume the worst.
+            *)       gl_cv_func_getcwd_null="guessing no";;
+          esac
+        ]])])
+])
+
+AC_DEFUN([gl_FUNC_GETCWD_SIGNATURE],
+[
+  AC_CACHE_CHECK([for getcwd with POSIX signature],
+    [gl_cv_func_getcwd_posix_signature],
+    [AC_COMPILE_IFELSE(
+      [AC_LANG_PROGRAM(
+         [[#include <unistd.h>]],
+         [[extern
+           #ifdef __cplusplus
+           "C"
+           #endif
+           char *getcwd (char *, size_t);
+         ]])
+      ],
+      [gl_cv_func_getcwd_posix_signature=yes],
+      [gl_cv_func_getcwd_posix_signature=no])
+   ])
+])
+
+dnl Guarantee that getcwd will malloc with a NULL first argument.  Assumes
+dnl that either the system getcwd is robust, or that calling code is okay
+dnl with spurious failures when run from a directory with an absolute name
+dnl larger than 4k bytes.
+dnl
+dnl Assumes that getcwd exists; if you are worried about obsolete
+dnl platforms that lacked getcwd(), then you need to use the GPL module.
+AC_DEFUN([gl_FUNC_GETCWD_LGPL],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([gl_FUNC_GETCWD_NULL])
+  AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE])
+
+  case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in
+  *yes,yes) ;;
+  *)
+    dnl Minimal replacement lib/getcwd-lgpl.c.
+    REPLACE_GETCWD=1
+    ;;
+  esac
+])
+
+dnl Check for all known getcwd bugs; useful for a program likely to be
+dnl executed from an arbitrary location.
+AC_DEFUN([gl_FUNC_GETCWD],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([gl_FUNC_GETCWD_NULL])
+  AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+  gl_abort_bug=no
+  case "$host_os" in
+    mingw*)
+      gl_cv_func_getcwd_path_max=yes
+      ;;
+    *)
+      gl_FUNC_GETCWD_PATH_MAX
+      case "$gl_cv_func_getcwd_null" in
+        *yes)
+          gl_FUNC_GETCWD_ABORT_BUG([gl_abort_bug=yes])
+          ;;
+      esac
+      ;;
+  esac
+  dnl Define HAVE_MINIMALLY_WORKING_GETCWD and HAVE_PARTLY_WORKING_GETCWD
+  dnl if appropriate.
+  case "$gl_cv_func_getcwd_path_max" in
+    "no"|"no, it has the AIX bug") ;;
+    *)
+      AC_DEFINE([HAVE_MINIMALLY_WORKING_GETCWD], [1],
+        [Define to 1 if getcwd minimally works, that is, its result can be
+         trusted when it succeeds.])
+      ;;
+  esac
+  case "$gl_cv_func_getcwd_path_max" in
+    "no, but it is partly working")
+      AC_DEFINE([HAVE_PARTLY_WORKING_GETCWD], [1],
+        [Define to 1 if getcwd works, except it sometimes fails when it
+         shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT.])
+      ;;
+    "yes, but with shorter paths")
+      AC_DEFINE([HAVE_GETCWD_SHORTER], [1],
+        [Define to 1 if getcwd works, but with shorter paths
+         than is generally tested with the replacement.])
+      ;;
+  esac
+
+  if { case "$gl_cv_func_getcwd_null" in *yes) false;; *) true;; esac; } \
+     || test $gl_cv_func_getcwd_posix_signature != yes \
+     || { case "$gl_cv_func_getcwd_path_max" in *yes*) false;; *) true;; esac; } \
+     || test $gl_abort_bug = yes; then
+    REPLACE_GETCWD=1
+  fi
+])
+
+# Prerequisites of lib/getcwd.c, when full replacement is in effect.
+AC_DEFUN([gl_PREREQ_GETCWD],
+[
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO])
+  :
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/getcwd-path-max.m4 ./gdb/gnulib/import/m4/getcwd-path-max.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/getcwd-path-max.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/getcwd-path-max.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,217 @@
+# serial 19
+# Check for several getcwd bugs with long file names.
+# If so, arrange to compile the wrapper function.
+
+# This is necessary for at least GNU libc on linux-2.4.19 and 2.4.20.
+# I've heard that this is due to a Linux kernel bug, and that it has
+# been fixed between 2.4.21-pre3 and 2.4.21-pre4.
+
+# Copyright (C) 2003-2007, 2009-2016 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# From Jim Meyering
+
+AC_DEFUN([gl_FUNC_GETCWD_PATH_MAX],
+[
+  AC_CHECK_DECLS_ONCE([getcwd])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+  AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
+  AC_CACHE_CHECK([whether getcwd handles long file names properly],
+    gl_cv_func_getcwd_path_max,
+    [# Arrange for deletion of the temporary directory this test creates.
+     ac_clean_files="$ac_clean_files confdir3"
+     dnl Please keep this in sync with tests/test-getcwd.c.
+     AC_RUN_IFELSE(
+       [AC_LANG_SOURCE(
+          [[
+#include <errno.h>
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else
+# include <direct.h>
+#endif
+#include <string.h>
+#include <limits.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+
+]gl_PATHMAX_SNIPPET[
+
+#ifndef AT_FDCWD
+# define AT_FDCWD 0
+#endif
+#ifdef ENAMETOOLONG
+# define is_ENAMETOOLONG(x) ((x) == ENAMETOOLONG)
+#else
+# define is_ENAMETOOLONG(x) 0
+#endif
+
+/* Use the getcwd function, not any macro.  */
+#undef getcwd
+
+/* Don't get link errors because mkdir is redefined to rpl_mkdir.  */
+#undef mkdir
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* The length of this name must be 8.  */
+#define DIR_NAME "confdir3"
+#define DIR_NAME_LEN 8
+#define DIR_NAME_SIZE (DIR_NAME_LEN + 1)
+
+/* The length of "../".  */
+#define DOTDOTSLASH_LEN 3
+
+/* Leftover bytes in the buffer, to work around library or OS bugs.  */
+#define BUF_SLOP 20
+
+int
+main ()
+{
+#ifndef PATH_MAX
+  /* The Hurd doesn't define this, so getcwd can't exhibit the bug --
+     at least not on a local file system.  And if we were to start worrying
+     about remote file systems, we'd have to enable the wrapper function
+     all of the time, just to be safe.  That's not worth the cost.  */
+  exit (0);
+#elif ((INT_MAX / (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) \
+        - DIR_NAME_SIZE - BUF_SLOP) \
+       <= PATH_MAX)
+  /* FIXME: Assuming there's a system for which this is true,
+     this should be done in a compile test.  */
+  exit (0);
+#else
+  char buf[PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1)
+           + DIR_NAME_SIZE + BUF_SLOP];
+  char *cwd = getcwd (buf, PATH_MAX);
+  size_t initial_cwd_len;
+  size_t cwd_len;
+  int fail = 0;
+  size_t n_chdirs = 0;
+
+  if (cwd == NULL)
+    exit (10);
+
+  cwd_len = initial_cwd_len = strlen (cwd);
+
+  while (1)
+    {
+      size_t dotdot_max = PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN);
+      char *c = NULL;
+
+      cwd_len += DIR_NAME_SIZE;
+      /* If mkdir or chdir fails, it could be that this system cannot create
+         any file with an absolute name longer than PATH_MAX, such as cygwin.
+         If so, leave fail as 0, because the current working directory can't
+         be too long for getcwd if it can't even be created.  For other
+         errors, be pessimistic and consider that as a failure, too.  */
+      if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0)
+        {
+          if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+            fail = 20;
+          break;
+        }
+
+      if (PATH_MAX <= cwd_len && cwd_len < PATH_MAX + DIR_NAME_SIZE)
+        {
+          struct stat sb;
+
+          c = getcwd (buf, PATH_MAX);
+          if (!c && errno == ENOENT)
+            {
+              fail = 11;
+              break;
+            }
+          if (c)
+            {
+              fail = 31;
+              break;
+            }
+          if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+            {
+              fail = 21;
+              break;
+            }
+
+          /* Our replacement needs to be able to stat() long ../../paths,
+             so generate a path larger than PATH_MAX to check,
+             avoiding the replacement if we can't stat().  */
+          c = getcwd (buf, cwd_len + 1);
+          if (c && !AT_FDCWD && stat (c, &sb) != 0 && is_ENAMETOOLONG (errno))
+            {
+              fail = 32;
+              break;
+            }
+        }
+
+      if (dotdot_max <= cwd_len - initial_cwd_len)
+        {
+          if (dotdot_max + DIR_NAME_SIZE < cwd_len - initial_cwd_len)
+            break;
+          c = getcwd (buf, cwd_len + 1);
+          if (!c)
+            {
+              if (! (errno == ERANGE || errno == ENOENT
+                     || is_ENAMETOOLONG (errno)))
+                {
+                  fail = 22;
+                  break;
+                }
+              if (AT_FDCWD || errno == ERANGE || errno == ENOENT)
+                {
+                  fail = 12;
+                  break;
+                }
+            }
+        }
+
+      if (c && strlen (c) != cwd_len)
+        {
+          fail = 23;
+          break;
+        }
+      ++n_chdirs;
+    }
+
+  /* Leaving behind such a deep directory is not polite.
+     So clean up here, right away, even though the driving
+     shell script would also clean up.  */
+  {
+    size_t i;
+
+    /* Try rmdir first, in case the chdir failed.  */
+    rmdir (DIR_NAME);
+    for (i = 0; i <= n_chdirs; i++)
+      {
+        if (chdir ("..") < 0)
+          break;
+        if (rmdir (DIR_NAME) != 0)
+          break;
+      }
+  }
+
+  exit (fail);
+#endif
+}
+          ]])],
+    [gl_cv_func_getcwd_path_max=yes],
+    [case $? in
+     10|11|12) gl_cv_func_getcwd_path_max='no, but it is partly working';;
+     31) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+     32) gl_cv_func_getcwd_path_max='yes, but with shorter paths';;
+     *) gl_cv_func_getcwd_path_max=no;;
+     esac],
+    [case "$host_os" in
+       aix*) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+       *) gl_cv_func_getcwd_path_max=no;;
+     esac])
+  ])
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/getdtablesize.m4 ./gdb/gnulib/import/m4/getdtablesize.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/getdtablesize.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/getdtablesize.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,46 @@
+# getdtablesize.m4 serial 6
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_GETDTABLESIZE],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_CHECK_FUNCS_ONCE([getdtablesize])
+  AC_CHECK_DECLS_ONCE([getdtablesize])
+  if test $ac_cv_func_getdtablesize = yes &&
+     test $ac_cv_have_decl_getdtablesize = yes; then
+    # Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft limit
+    # up to an unchangeable hard limit; all other platforms correctly
+    # require setrlimit before getdtablesize() can report a larger value.
+    AC_CACHE_CHECK([whether getdtablesize works],
+      [gl_cv_func_getdtablesize_works],
+      [AC_RUN_IFELSE([
+        AC_LANG_PROGRAM([[#include <unistd.h>]],
+          [int size = getdtablesize();
+           if (dup2 (0, getdtablesize()) != -1)
+             return 1;
+           if (size != getdtablesize())
+             return 2;
+          ])],
+        [gl_cv_func_getdtablesize_works=yes],
+        [gl_cv_func_getdtablesize_works=no],
+        [case "$host_os" in
+          cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows
+            gl_cv_func_getdtablesize_works="guessing no" ;;
+          *) gl_cv_func_getdtablesize_works="guessing yes" ;;
+         esac])
+      ])
+    case "$gl_cv_func_getdtablesize_works" in
+      *yes) ;;
+      *) REPLACE_GETDTABLESIZE=1 ;;
+    esac
+  else
+    HAVE_GETDTABLESIZE=0
+  fi
+])
+
+# Prerequisites of lib/getdtablesize.c.
+AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [:])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/getlogin_r.m4 ./gdb/gnulib/import/m4/getlogin_r.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/getlogin_r.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/getlogin_r.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,88 @@
+#serial 11
+
+# Copyright (C) 2005-2007, 2009-2016 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+dnl From Derek Price
+dnl
+dnl Provide getlogin_r when the system lacks it.
+dnl
+
+AC_DEFUN([gl_FUNC_GETLOGIN_R],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+
+  dnl Persuade glibc <unistd.h> to declare getlogin_r().
+  dnl Persuade Solaris <unistd.h> to provide the POSIX compliant declaration of
+  dnl getlogin_r().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+  AC_CHECK_DECLS_ONCE([getlogin_r])
+  if test $ac_cv_have_decl_getlogin_r = no; then
+    HAVE_DECL_GETLOGIN_R=0
+  fi
+
+  AC_CHECK_FUNCS_ONCE([getlogin_r])
+  if test $ac_cv_func_getlogin_r = no; then
+    HAVE_GETLOGIN_R=0
+  else
+    HAVE_GETLOGIN_R=1
+    dnl On OSF/1 5.1, getlogin_r returns a truncated result if the buffer is
+    dnl not large enough.
+    AC_REQUIRE([AC_CANONICAL_HOST])
+    AC_CACHE_CHECK([whether getlogin_r works with small buffers],
+      [gl_cv_func_getlogin_r_works],
+      [
+        dnl Initial guess, used when cross-compiling.
+changequote(,)dnl
+        case "$host_os" in
+                # Guess no on OSF/1.
+          osf*) gl_cv_func_getlogin_r_works="guessing no" ;;
+                # Guess yes otherwise.
+          *)    gl_cv_func_getlogin_r_works="guessing yes" ;;
+        esac
+changequote([,])dnl
+        AC_RUN_IFELSE(
+          [AC_LANG_SOURCE([[
+#include <stddef.h>
+#include <unistd.h>
+#if !HAVE_DECL_GETLOGIN_R
+extern
+# ifdef __cplusplus
+"C"
+# endif
+int getlogin_r (char *, size_t);
+#endif
+int
+main (void)
+{
+  int result = 0;
+  char buf[100];
+
+  if (getlogin_r (buf, 0) == 0)
+    result |= 16;
+  if (getlogin_r (buf, 1) == 0)
+    result |= 17;
+  return result;
+}]])],
+          [gl_cv_func_getlogin_r_works=yes],
+          [case $? in
+             16 | 17) gl_cv_func_getlogin_r_works=no ;;
+           esac
+          ],
+          [:])
+      ])
+    case "$gl_cv_func_getlogin_r_works" in
+      *yes) ;;
+      *) REPLACE_GETLOGIN_R=1 ;;
+    esac
+  fi
+])
+
+AC_DEFUN([gl_PREREQ_GETLOGIN_R],
+[
+  AC_CHECK_DECLS_ONCE([getlogin])
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/getprogname.m4 ./gdb/gnulib/import/m4/getprogname.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/getprogname.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/getprogname.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,43 @@
+# getprogname.m4 - check for getprogname or replacements for it
+
+# Copyright (C) 2016 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+AC_DEFUN([gl_FUNC_GETPROGNAME],
+[
+  AC_CHECK_FUNCS_ONCE([getprogname getexecname])
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  ac_found=0
+  AC_CHECK_DECLS([program_invocation_name], [ac_found=1], [],
+    [#include <errno.h>])
+  AC_CHECK_DECLS([program_invocation_short_name], [ac_found=1], [],
+    [#include <errno.h>])
+  AC_CHECK_DECLS([__argv], [ac_found=1], [], [#include <stdlib.h>])
+
+  # Incur the cost of this test only if none of the above worked.
+  if test $ac_found = 0; then
+    # On OpenBSD 5.1, using the global __progname variable appears to be
+    # the only way to implement getprogname.
+    AC_CACHE_CHECK([whether __progname is defined in default libraries],
+      [gl_cv_var___progname],
+      [
+        gl_cv_var___progname=
+        AC_LINK_IFELSE(
+          [AC_LANG_PROGRAM(
+            [[extern char *__progname;]],
+            [[return *__progname;]]
+          )],
+          [gl_cv_var___progname=yes]
+        )
+      ]
+    )
+    if test "$gl_cv_var___progname" = yes; then
+      AC_DEFINE([HAVE_VAR___PROGNAME], 1,
+        [Define if you have a global __progname variable])
+    fi
+  fi
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/glob.m4 ./gdb/gnulib/import/m4/glob.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/glob.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/glob.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,76 @@
+# glob.m4 serial 14
+dnl Copyright (C) 2005-2007, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# The glob module assumes you want GNU glob, with glob_pattern_p etc,
+# rather than vanilla POSIX glob.  This means your code should
+# always include <glob.h> for the glob prototypes.
+
+AC_DEFUN([gl_GLOB],
+[ GLOB_H=
+  AC_CHECK_HEADERS([glob.h], [], [GLOB_H=glob.h])
+
+  if test -z "$GLOB_H"; then
+    AC_CACHE_CHECK([for GNU glob interface version 1],
+      [gl_cv_gnu_glob_interface_version_1],
+[     AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+[[#include <gnu-versions.h>
+char a[_GNU_GLOB_INTERFACE_VERSION == 1 ? 1 : -1];]])],
+        [gl_cv_gnu_glob_interface_version_1=yes],
+        [gl_cv_gnu_glob_interface_version_1=no])])
+
+    if test "$gl_cv_gnu_glob_interface_version_1" = "no"; then
+      GLOB_H=glob.h
+    fi
+  fi
+
+  if test -z "$GLOB_H"; then
+    AC_CACHE_CHECK([whether glob lists broken symlinks],
+                   [gl_cv_glob_lists_symlinks],
+[     if ln -s conf-doesntexist conf$$-globtest 2>/dev/null; then
+        gl_cv_glob_lists_symlinks=maybe
+      else
+        # If we can't make a symlink, then we cannot test this issue.  Be
+        # pessimistic about this.
+        gl_cv_glob_lists_symlinks=no
+      fi
+
+      if test $gl_cv_glob_lists_symlinks = maybe; then
+        AC_RUN_IFELSE([
+AC_LANG_PROGRAM(
+[[#include <stddef.h>
+#include <glob.h>]],
+[[glob_t found;
+if (glob ("conf*-globtest", 0, NULL, &found) == GLOB_NOMATCH) return 1;]])],
+          [gl_cv_glob_lists_symlinks=yes],
+          [gl_cv_glob_lists_symlinks=no], [gl_cv_glob_lists_symlinks=no])
+      fi])
+
+    if test $gl_cv_glob_lists_symlinks = no; then
+      GLOB_H=glob.h
+    fi
+  fi
+
+  rm -f conf$$-globtest
+
+  AC_SUBST([GLOB_H])
+  AM_CONDITIONAL([GL_GENERATE_GLOB_H], [test -n "$GLOB_H"])
+])
+
+# Prerequisites of lib/glob.*.
+AC_DEFUN([gl_PREREQ_GLOB],
+[
+  AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE])dnl
+  AC_REQUIRE([AC_C_RESTRICT])dnl
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])dnl
+  AC_CHECK_HEADERS_ONCE([sys/cdefs.h unistd.h])dnl
+  if test $ac_cv_header_sys_cdefs_h = yes; then
+    HAVE_SYS_CDEFS_H=1
+  else
+    HAVE_SYS_CDEFS_H=0
+  fi
+  AC_SUBST([HAVE_SYS_CDEFS_H])
+  AC_CHECK_FUNCS_ONCE([fstatat getlogin_r getpwnam_r])dnl
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/gnulib-cache.m4 ./gdb/gnulib/import/m4/gnulib-cache.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/gnulib-cache.m4	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gnulib/import/m4/gnulib-cache.m4	2018-01-09 02:04:57.000000000 +0000
@@ -27,7 +27,7 @@
 
 
 # Specification in the form of a command-line invocation:
-#   gnulib-tool --import --lib=libgnu --source-base=import --m4-base=import/m4 --doc-base=doc --tests-base=tests --aux-dir=import/extra --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca canonicalize-lgpl dirent dirfd errno fnmatch-gnu frexpl inttypes limits-h lstat memchr memmem pathmax rawmemchr readlink rename signal-h strchrnul strstr strtok_r sys_stat unistd update-copyright wchar wctype-h
+#   gnulib-tool --import --lib=libgnu --source-base=import --m4-base=import/m4 --doc-base=doc --tests-base=tests --aux-dir=import/extra --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca canonicalize-lgpl dirent dirfd errno fnmatch-gnu frexpl getcwd glob inttypes limits-h lstat memchr memmem pathmax rawmemchr readlink rename setenv signal-h strchrnul strstr strtok_r sys_stat unistd unsetenv update-copyright wchar wctype-h
 
 # Specification in the form of a few gnulib-tool.m4 macro invocations:
 gl_LOCAL_DIR([])
@@ -39,6 +39,8 @@ gl_MODULES([
   errno
   fnmatch-gnu
   frexpl
+  getcwd
+  glob
   inttypes
   limits-h
   lstat
@@ -48,12 +50,14 @@ gl_MODULES([
   rawmemchr
   readlink
   rename
+  setenv
   signal-h
   strchrnul
   strstr
   strtok_r
   sys_stat
   unistd
+  unsetenv
   update-copyright
   wchar
   wctype-h
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/gnulib-comp.m4 ./gdb/gnulib/import/m4/gnulib-comp.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/gnulib-comp.m4	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gnulib/import/m4/gnulib-comp.m4	2018-01-09 02:04:57.000000000 +0000
@@ -45,17 +45,37 @@ AC_DEFUN([gl_EARLY],
   # Code from module absolute-header:
   # Code from module alloca:
   # Code from module alloca-opt:
+  # Code from module assure:
+  # Code from module at-internal:
   # Code from module canonicalize-lgpl:
   # Code from module chdir:
+  # Code from module chdir-long:
+  # Code from module cloexec:
+  # Code from module close:
+  # Code from module closedir:
   # Code from module configmake:
+  # Code from module d-ino:
+  # Code from module d-type:
   # Code from module dirent:
   # Code from module dirfd:
   # Code from module dirname-lgpl:
   # Code from module dosname:
   # Code from module double-slash-root:
+  # Code from module dup:
+  # Code from module dup2:
+  # Code from module environ:
   # Code from module errno:
+  # Code from module error:
+  # Code from module exitfail:
   # Code from module extensions:
   # Code from module extern-inline:
+  # Code from module fchdir:
+  # Code from module fcntl:
+  # Code from module fcntl-h:
+  # Code from module fd-hook:
+  # Code from module fdopendir:
+  # Code from module filename:
+  # Code from module filenamecat-lgpl:
   # Code from module flexmember:
   # Code from module float:
   # Code from module fnmatch:
@@ -65,9 +85,19 @@ AC_DEFUN([gl_EARLY],
   # Code from module fpucw:
   # Code from module frexp:
   # Code from module frexpl:
+  # Code from module fstat:
+  # Code from module fstatat:
+  # Code from module getcwd:
+  # Code from module getcwd-lgpl:
+  # Code from module getdtablesize:
+  # Code from module getlogin_r:
+  # Code from module getprogname:
+  # Code from module gettext-h:
   # Code from module gettimeofday:
+  # Code from module glob:
   # Code from module hard-locale:
   # Code from module include_next:
+  # Code from module intprops:
   # Code from module inttypes:
   # Code from module inttypes-incomplete:
   # Code from module isnand-nolibm:
@@ -86,14 +116,28 @@ AC_DEFUN([gl_EARLY],
   # Code from module memchr:
   # Code from module memmem:
   # Code from module memmem-simple:
+  # Code from module mempcpy:
+  # Code from module memrchr:
+  # Code from module msvc-inval:
+  # Code from module msvc-nothrow:
   # Code from module multiarch:
   # Code from module nocrash:
+  # Code from module open:
+  # Code from module openat:
+  # Code from module openat-die:
+  # Code from module openat-h:
+  # Code from module opendir:
   # Code from module pathmax:
   # Code from module rawmemchr:
+  # Code from module readdir:
   # Code from module readlink:
+  # Code from module realloc-posix:
   # Code from module rename:
+  # Code from module rewinddir:
   # Code from module rmdir:
   # Code from module same-inode:
+  # Code from module save-cwd:
+  # Code from module setenv:
   # Code from module signal-h:
   # Code from module snippet/_Noreturn:
   # Code from module snippet/arg-nonnull:
@@ -107,7 +151,10 @@ AC_DEFUN([gl_EARLY],
   # Code from module stdio:
   # Code from module stdlib:
   # Code from module strchrnul:
+  # Code from module strdup-posix:
   # Code from module streq:
+  # Code from module strerror:
+  # Code from module strerror-override:
   # Code from module string:
   # Code from module strnlen1:
   # Code from module strstr:
@@ -118,6 +165,8 @@ AC_DEFUN([gl_EARLY],
   # Code from module sys_types:
   # Code from module time:
   # Code from module unistd:
+  # Code from module unistd-safer:
+  # Code from module unsetenv:
   # Code from module update-copyright:
   # Code from module verify:
   # Code from module wchar:
@@ -141,6 +190,7 @@ AC_DEFUN([gl_INIT],
   gl_COMMON
   gl_source_base='import'
   gl_FUNC_ALLOCA
+  AC_LIBOBJ([openat-proc])
   gl_CANONICALIZE_LGPL
   if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then
     AC_LIBOBJ([canonicalize-lgpl])
@@ -149,7 +199,25 @@ AC_DEFUN([gl_INIT],
   gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name])
   gl_STDLIB_MODULE_INDICATOR([realpath])
   gl_UNISTD_MODULE_INDICATOR([chdir])
+  gl_FUNC_CHDIR_LONG
+  if test $gl_cv_have_arbitrary_file_name_length_limit = yes; then
+    AC_LIBOBJ([chdir-long])
+    gl_PREREQ_CHDIR_LONG
+  fi
+  gl_MODULE_INDICATOR_FOR_TESTS([cloexec])
+  gl_FUNC_CLOSE
+  if test $REPLACE_CLOSE = 1; then
+    AC_LIBOBJ([close])
+  fi
+  gl_UNISTD_MODULE_INDICATOR([close])
+  gl_FUNC_CLOSEDIR
+  if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then
+    AC_LIBOBJ([closedir])
+  fi
+  gl_DIRENT_MODULE_INDICATOR([closedir])
   gl_CONFIGMAKE_PREP
+  gl_CHECK_TYPE_STRUCT_DIRENT_D_INO
+  gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE
   gl_DIRENT_H
   gl_FUNC_DIRFD
   if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no \
@@ -160,8 +228,45 @@ AC_DEFUN([gl_INIT],
   gl_DIRENT_MODULE_INDICATOR([dirfd])
   gl_DIRNAME_LGPL
   gl_DOUBLE_SLASH_ROOT
+  gl_FUNC_DUP
+  if test $REPLACE_DUP = 1; then
+    AC_LIBOBJ([dup])
+    gl_PREREQ_DUP
+  fi
+  gl_UNISTD_MODULE_INDICATOR([dup])
+  gl_FUNC_DUP2
+  if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
+    AC_LIBOBJ([dup2])
+    gl_PREREQ_DUP2
+  fi
+  gl_UNISTD_MODULE_INDICATOR([dup2])
+  gl_ENVIRON
+  gl_UNISTD_MODULE_INDICATOR([environ])
   gl_HEADER_ERRNO_H
+  gl_ERROR
+  if test $ac_cv_lib_error_at_line = no; then
+    AC_LIBOBJ([error])
+    gl_PREREQ_ERROR
+  fi
+  m4_ifdef([AM_XGETTEXT_OPTION],
+    [AM_][XGETTEXT_OPTION([--flag=error:3:c-format])
+     AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])])
   AC_REQUIRE([gl_EXTERN_INLINE])
+  gl_FUNC_FCHDIR
+  gl_UNISTD_MODULE_INDICATOR([fchdir])
+  gl_FUNC_FCNTL
+  if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
+    AC_LIBOBJ([fcntl])
+  fi
+  gl_FCNTL_MODULE_INDICATOR([fcntl])
+  gl_FCNTL_H
+  gl_FUNC_FDOPENDIR
+  if test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1; then
+    AC_LIBOBJ([fdopendir])
+  fi
+  gl_DIRENT_MODULE_INDICATOR([fdopendir])
+  gl_MODULE_INDICATOR([fdopendir])
+  gl_FILE_NAME_CONCAT_LGPL
   AC_C_FLEXIBLE_ARRAY_MEMBER
   gl_FLOAT_H
   if test $REPLACE_FLOAT_LDBL = 1; then
@@ -190,12 +295,55 @@ AC_DEFUN([gl_INIT],
     AC_LIBOBJ([frexpl])
   fi
   gl_MATH_MODULE_INDICATOR([frexpl])
+  gl_FUNC_FSTAT
+  if test $REPLACE_FSTAT = 1; then
+    AC_LIBOBJ([fstat])
+    gl_PREREQ_FSTAT
+  fi
+  gl_SYS_STAT_MODULE_INDICATOR([fstat])
+  gl_FUNC_FSTATAT
+  if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then
+    AC_LIBOBJ([fstatat])
+  fi
+  gl_SYS_STAT_MODULE_INDICATOR([fstatat])
+  gl_FUNC_GETCWD
+  if test $REPLACE_GETCWD = 1; then
+    AC_LIBOBJ([getcwd])
+    gl_PREREQ_GETCWD
+  fi
+  gl_MODULE_INDICATOR([getcwd])
+  gl_UNISTD_MODULE_INDICATOR([getcwd])
+  gl_FUNC_GETCWD_LGPL
+  if test $REPLACE_GETCWD = 1; then
+    AC_LIBOBJ([getcwd-lgpl])
+  fi
+  gl_UNISTD_MODULE_INDICATOR([getcwd])
+  gl_FUNC_GETDTABLESIZE
+  if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then
+    AC_LIBOBJ([getdtablesize])
+    gl_PREREQ_GETDTABLESIZE
+  fi
+  gl_UNISTD_MODULE_INDICATOR([getdtablesize])
+  gl_FUNC_GETLOGIN_R
+  if test $HAVE_GETLOGIN_R = 0 || test $REPLACE_GETLOGIN_R = 1; then
+    AC_LIBOBJ([getlogin_r])
+    gl_PREREQ_GETLOGIN_R
+  fi
+  gl_UNISTD_MODULE_INDICATOR([getlogin_r])
+  gl_FUNC_GETPROGNAME
+  AC_SUBST([LIBINTL])
+  AC_SUBST([LTLIBINTL])
   gl_FUNC_GETTIMEOFDAY
   if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
     AC_LIBOBJ([gettimeofday])
     gl_PREREQ_GETTIMEOFDAY
   fi
   gl_SYS_TIME_MODULE_INDICATOR([gettimeofday])
+  gl_GLOB
+  if test -n "$GLOB_H"; then
+    AC_LIBOBJ([glob])
+    gl_PREREQ_GLOB
+  fi
   gl_HARD_LOCALE
   gl_INTTYPES_H
   gl_INTTYPES_INCOMPLETE
@@ -261,7 +409,45 @@ AC_DEFUN([gl_INIT],
     AC_LIBOBJ([memmem])
   fi
   gl_STRING_MODULE_INDICATOR([memmem])
+  gl_FUNC_MEMPCPY
+  if test $HAVE_MEMPCPY = 0; then
+    AC_LIBOBJ([mempcpy])
+    gl_PREREQ_MEMPCPY
+  fi
+  gl_STRING_MODULE_INDICATOR([mempcpy])
+  gl_FUNC_MEMRCHR
+  if test $ac_cv_func_memrchr = no; then
+    AC_LIBOBJ([memrchr])
+    gl_PREREQ_MEMRCHR
+  fi
+  gl_STRING_MODULE_INDICATOR([memrchr])
+  AC_REQUIRE([gl_MSVC_INVAL])
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    AC_LIBOBJ([msvc-inval])
+  fi
+  AC_REQUIRE([gl_MSVC_NOTHROW])
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    AC_LIBOBJ([msvc-nothrow])
+  fi
   gl_MULTIARCH
+  gl_FUNC_OPEN
+  if test $REPLACE_OPEN = 1; then
+    AC_LIBOBJ([open])
+    gl_PREREQ_OPEN
+  fi
+  gl_FCNTL_MODULE_INDICATOR([open])
+  gl_FUNC_OPENAT
+  if test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1; then
+    AC_LIBOBJ([openat])
+    gl_PREREQ_OPENAT
+  fi
+  gl_MODULE_INDICATOR([openat]) dnl for lib/getcwd.c
+  gl_FCNTL_MODULE_INDICATOR([openat])
+  gl_FUNC_OPENDIR
+  if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then
+    AC_LIBOBJ([opendir])
+  fi
+  gl_DIRENT_MODULE_INDICATOR([opendir])
   gl_PATHMAX
   gl_FUNC_RAWMEMCHR
   if test $HAVE_RAWMEMCHR = 0; then
@@ -269,22 +455,43 @@ AC_DEFUN([gl_INIT],
     gl_PREREQ_RAWMEMCHR
   fi
   gl_STRING_MODULE_INDICATOR([rawmemchr])
+  gl_FUNC_READDIR
+  if test $HAVE_READDIR = 0; then
+    AC_LIBOBJ([readdir])
+  fi
+  gl_DIRENT_MODULE_INDICATOR([readdir])
   gl_FUNC_READLINK
   if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then
     AC_LIBOBJ([readlink])
     gl_PREREQ_READLINK
   fi
   gl_UNISTD_MODULE_INDICATOR([readlink])
+  gl_FUNC_REALLOC_POSIX
+  if test $REPLACE_REALLOC = 1; then
+    AC_LIBOBJ([realloc])
+  fi
+  gl_STDLIB_MODULE_INDICATOR([realloc-posix])
   gl_FUNC_RENAME
   if test $REPLACE_RENAME = 1; then
     AC_LIBOBJ([rename])
   fi
   gl_STDIO_MODULE_INDICATOR([rename])
+  gl_FUNC_REWINDDIR
+  if test $HAVE_REWINDDIR = 0; then
+    AC_LIBOBJ([rewinddir])
+  fi
+  gl_DIRENT_MODULE_INDICATOR([rewinddir])
   gl_FUNC_RMDIR
   if test $REPLACE_RMDIR = 1; then
     AC_LIBOBJ([rmdir])
   fi
   gl_UNISTD_MODULE_INDICATOR([rmdir])
+  gl_SAVE_CWD
+  gl_FUNC_SETENV
+  if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+    AC_LIBOBJ([setenv])
+  fi
+  gl_STDLIB_MODULE_INDICATOR([setenv])
   gl_SIGNAL_H
   gt_TYPE_SSIZE_T
   gl_FUNC_STAT
@@ -304,6 +511,24 @@ AC_DEFUN([gl_INIT],
     gl_PREREQ_STRCHRNUL
   fi
   gl_STRING_MODULE_INDICATOR([strchrnul])
+  gl_FUNC_STRDUP_POSIX
+  if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
+    AC_LIBOBJ([strdup])
+    gl_PREREQ_STRDUP
+  fi
+  gl_STRING_MODULE_INDICATOR([strdup])
+  gl_FUNC_STRERROR
+  if test $REPLACE_STRERROR = 1; then
+    AC_LIBOBJ([strerror])
+  fi
+  gl_MODULE_INDICATOR([strerror])
+  gl_STRING_MODULE_INDICATOR([strerror])
+  AC_REQUIRE([gl_HEADER_ERRNO_H])
+  AC_REQUIRE([gl_FUNC_STRERROR_0])
+  if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+    AC_LIBOBJ([strerror-override])
+    gl_PREREQ_SYS_H_WINSOCK2
+  fi
   gl_HEADER_STRING_H
   gl_FUNC_STRSTR
   if test $REPLACE_STRSTR = 1; then
@@ -328,6 +553,13 @@ AC_DEFUN([gl_INIT],
   AC_PROG_MKDIR_P
   gl_HEADER_TIME_H
   gl_UNISTD_H
+  gl_UNISTD_SAFER
+  gl_FUNC_UNSETENV
+  if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+    AC_LIBOBJ([unsetenv])
+    gl_PREREQ_UNSETENV
+  fi
+  gl_STDLIB_MODULE_INDICATOR([unsetenv])
   gl_WCHAR_H
   gl_WCTYPE_H
   # End of code from modules
@@ -477,15 +709,41 @@ AC_DEFUN([gl_FILE_LIST], [
   build-aux/update-copyright
   lib/alloca.c
   lib/alloca.in.h
+  lib/assure.h
+  lib/at-func.c
   lib/basename-lgpl.c
   lib/canonicalize-lgpl.c
+  lib/chdir-long.c
+  lib/chdir-long.h
+  lib/cloexec.c
+  lib/cloexec.h
+  lib/close.c
+  lib/closedir.c
   lib/config.charset
+  lib/dirent-private.h
   lib/dirent.in.h
   lib/dirfd.c
   lib/dirname-lgpl.c
   lib/dirname.h
   lib/dosname.h
+  lib/dup-safer.c
+  lib/dup.c
+  lib/dup2.c
   lib/errno.in.h
+  lib/error.c
+  lib/error.h
+  lib/exitfail.c
+  lib/exitfail.h
+  lib/fchdir.c
+  lib/fcntl.c
+  lib/fcntl.in.h
+  lib/fd-hook.c
+  lib/fd-hook.h
+  lib/fd-safer.c
+  lib/fdopendir.c
+  lib/filename.h
+  lib/filenamecat-lgpl.c
+  lib/filenamecat.h
   lib/flexmember.h
   lib/float+.h
   lib/float.c
@@ -496,9 +754,22 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/fpucw.h
   lib/frexp.c
   lib/frexpl.c
+  lib/fstat.c
+  lib/fstatat.c
+  lib/getcwd-lgpl.c
+  lib/getcwd.c
+  lib/getdtablesize.c
+  lib/getlogin_r.c
+  lib/getprogname.c
+  lib/getprogname.h
+  lib/gettext.h
   lib/gettimeofday.c
+  lib/glob-libc.h
+  lib/glob.c
+  lib/glob.in.h
   lib/hard-locale.c
   lib/hard-locale.h
+  lib/intprops.h
   lib/inttypes.in.h
   lib/isnan.c
   lib/isnand-nolibm.h
@@ -524,15 +795,35 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/memchr.c
   lib/memchr.valgrind
   lib/memmem.c
+  lib/mempcpy.c
+  lib/memrchr.c
+  lib/msvc-inval.c
+  lib/msvc-inval.h
+  lib/msvc-nothrow.c
+  lib/msvc-nothrow.h
+  lib/open.c
+  lib/openat-die.c
+  lib/openat-priv.h
+  lib/openat-proc.c
+  lib/openat.c
+  lib/openat.h
+  lib/opendir.c
   lib/pathmax.h
+  lib/pipe-safer.c
   lib/rawmemchr.c
   lib/rawmemchr.valgrind
+  lib/readdir.c
   lib/readlink.c
+  lib/realloc.c
   lib/ref-add.sin
   lib/ref-del.sin
   lib/rename.c
+  lib/rewinddir.c
   lib/rmdir.c
   lib/same-inode.h
+  lib/save-cwd.c
+  lib/save-cwd.h
+  lib/setenv.c
   lib/signal.in.h
   lib/stat.c
   lib/stdbool.in.h
@@ -543,7 +834,11 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/str-two-way.h
   lib/strchrnul.c
   lib/strchrnul.valgrind
+  lib/strdup.c
   lib/streq.h
+  lib/strerror-override.c
+  lib/strerror-override.h
+  lib/strerror.c
   lib/string.in.h
   lib/stripslash.c
   lib/strnlen1.c
@@ -554,8 +849,11 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/sys_time.in.h
   lib/sys_types.in.h
   lib/time.in.h
+  lib/unistd--.h
+  lib/unistd-safer.h
   lib/unistd.c
   lib/unistd.in.h
+  lib/unsetenv.c
   lib/verify.h
   lib/wchar.in.h
   lib/wctype-h.c
@@ -564,27 +862,50 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/absolute-header.m4
   m4/alloca.m4
   m4/canonicalize.m4
+  m4/chdir-long.m4
+  m4/close.m4
+  m4/closedir.m4
   m4/codeset.m4
   m4/configmake.m4
+  m4/d-ino.m4
+  m4/d-type.m4
   m4/dirent_h.m4
   m4/dirfd.m4
   m4/dirname.m4
   m4/double-slash-root.m4
+  m4/dup.m4
+  m4/dup2.m4
   m4/eealloc.m4
+  m4/environ.m4
   m4/errno_h.m4
+  m4/error.m4
   m4/exponentd.m4
   m4/exponentl.m4
   m4/extensions.m4
   m4/extern-inline.m4
+  m4/fchdir.m4
   m4/fcntl-o.m4
+  m4/fcntl.m4
+  m4/fcntl_h.m4
+  m4/fdopendir.m4
+  m4/filenamecat.m4
   m4/flexmember.m4
   m4/float_h.m4
   m4/fnmatch.m4
   m4/fpieee.m4
   m4/frexp.m4
   m4/frexpl.m4
+  m4/fstat.m4
+  m4/fstatat.m4
+  m4/getcwd-abort-bug.m4
+  m4/getcwd-path-max.m4
+  m4/getcwd.m4
+  m4/getdtablesize.m4
+  m4/getlogin_r.m4
+  m4/getprogname.m4
   m4/gettimeofday.m4
   m4/glibc21.m4
+  m4/glob.m4
   m4/gnulib-common.m4
   m4/hard-locale.m4
   m4/include_next.m4
@@ -609,15 +930,28 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/mbstate_t.m4
   m4/memchr.m4
   m4/memmem.m4
+  m4/mempcpy.m4
+  m4/memrchr.m4
   m4/mmap-anon.m4
+  m4/mode_t.m4
+  m4/msvc-inval.m4
+  m4/msvc-nothrow.m4
   m4/multiarch.m4
   m4/nocrash.m4
   m4/off_t.m4
+  m4/open.m4
+  m4/openat.m4
+  m4/opendir.m4
   m4/pathmax.m4
   m4/rawmemchr.m4
+  m4/readdir.m4
   m4/readlink.m4
+  m4/realloc.m4
   m4/rename.m4
+  m4/rewinddir.m4
   m4/rmdir.m4
+  m4/save-cwd.m4
+  m4/setenv.m4
   m4/signal_h.m4
   m4/ssize_t.m4
   m4/stat.m4
@@ -627,6 +961,8 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/stdio_h.m4
   m4/stdlib_h.m4
   m4/strchrnul.m4
+  m4/strdup.m4
+  m4/strerror.m4
   m4/string_h.m4
   m4/strstr.m4
   m4/strtok_r.m4
@@ -635,6 +971,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/sys_time_h.m4
   m4/sys_types_h.m4
   m4/time_h.m4
+  m4/unistd-safer.m4
   m4/unistd_h.m4
   m4/warn-on-use.m4
   m4/wchar_h.m4
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/mempcpy.m4 ./gdb/gnulib/import/m4/mempcpy.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/mempcpy.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/mempcpy.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,26 @@
+# mempcpy.m4 serial 11
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2016 Free Software Foundation,
+dnl Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_MEMPCPY],
+[
+  dnl Persuade glibc <string.h> to declare mempcpy().
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+  dnl The mempcpy() declaration in lib/string.in.h uses 'restrict'.
+  AC_REQUIRE([AC_C_RESTRICT])
+
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  AC_CHECK_FUNCS([mempcpy])
+  if test $ac_cv_func_mempcpy = no; then
+    HAVE_MEMPCPY=0
+  fi
+])
+
+# Prerequisites of lib/mempcpy.c.
+AC_DEFUN([gl_PREREQ_MEMPCPY], [
+  :
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/memrchr.m4 ./gdb/gnulib/import/m4/memrchr.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/memrchr.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/memrchr.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,23 @@
+# memrchr.m4 serial 10
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2016 Free Software Foundation,
+dnl Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_MEMRCHR],
+[
+  dnl Persuade glibc <string.h> to declare memrchr().
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  AC_CHECK_DECLS_ONCE([memrchr])
+  if test $ac_cv_have_decl_memrchr = no; then
+    HAVE_DECL_MEMRCHR=0
+  fi
+
+  AC_CHECK_FUNCS([memrchr])
+])
+
+# Prerequisites of lib/memrchr.c.
+AC_DEFUN([gl_PREREQ_MEMRCHR], [:])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/mode_t.m4 ./gdb/gnulib/import/m4/mode_t.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/mode_t.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/mode_t.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,26 @@
+# mode_t.m4 serial 2
+dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# For using mode_t, it's sufficient to use AC_TYPE_MODE_T and
+# include <sys/types.h>.
+
+# Define PROMOTED_MODE_T to the type that is the result of "default argument
+# promotion" (ISO C 6.5.2.2.(6)) of the type mode_t.
+AC_DEFUN([gl_PROMOTED_TYPE_MODE_T],
+[
+  AC_REQUIRE([AC_TYPE_MODE_T])
+  AC_CACHE_CHECK([for promoted mode_t type], [gl_cv_promoted_mode_t], [
+    dnl Assume mode_t promotes to 'int' if and only if it is smaller than 'int',
+    dnl and to itself otherwise. This assumption is not guaranteed by the ISO C
+    dnl standard, but we don't know of any real-world counterexamples.
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]],
+      [[typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];]])],
+      [gl_cv_promoted_mode_t='int'],
+      [gl_cv_promoted_mode_t='mode_t'])
+  ])
+  AC_DEFINE_UNQUOTED([PROMOTED_MODE_T], [$gl_cv_promoted_mode_t],
+    [Define to the type that is the result of default argument promotions of type mode_t.])
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/msvc-inval.m4 ./gdb/gnulib/import/m4/msvc-inval.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/msvc-inval.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/msvc-inval.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,19 @@
+# msvc-inval.m4 serial 1
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_MSVC_INVAL],
+[
+  AC_CHECK_FUNCS_ONCE([_set_invalid_parameter_handler])
+  if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+    AC_DEFINE([HAVE_MSVC_INVALID_PARAMETER_HANDLER], [1],
+      [Define to 1 on MSVC platforms that have the "invalid parameter handler"
+       concept.])
+  else
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+  fi
+  AC_SUBST([HAVE_MSVC_INVALID_PARAMETER_HANDLER])
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/msvc-nothrow.m4 ./gdb/gnulib/import/m4/msvc-nothrow.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/msvc-nothrow.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/msvc-nothrow.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,10 @@
+# msvc-nothrow.m4 serial 1
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_MSVC_NOTHROW],
+[
+  AC_REQUIRE([gl_MSVC_INVAL])
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/openat.m4 ./gdb/gnulib/import/m4/openat.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/openat.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/openat.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,36 @@
+# serial 45
+# See if we need to use our replacement for Solaris' openat et al functions.
+
+dnl Copyright (C) 2004-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Written by Jim Meyering.
+
+AC_DEFUN([gl_FUNC_OPENAT],
+[
+  AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_CHECK_FUNCS_ONCE([openat])
+  AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+  case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
+  yes+*yes)
+    ;;
+  yes+*)
+    # Solaris 9 has *at functions, but uniformly mishandles trailing
+    # slash in all of them.
+    REPLACE_OPENAT=1
+    ;;
+  *)
+    HAVE_OPENAT=0
+    ;;
+  esac
+])
+
+# Prerequisites of lib/openat.c.
+AC_DEFUN([gl_PREREQ_OPENAT],
+[
+  AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T])
+  :
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/opendir.m4 ./gdb/gnulib/import/m4/opendir.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/opendir.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/opendir.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,31 @@
+# opendir.m4 serial 4
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_OPENDIR],
+[
+  AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+  AC_CHECK_FUNCS([opendir])
+  if test $ac_cv_func_opendir = no; then
+    HAVE_OPENDIR=0
+  fi
+  dnl Replace opendir() for supporting the gnulib-defined fchdir() function,
+  dnl to keep fchdir's bookkeeping up-to-date.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    gl_TEST_FCHDIR
+    if test $HAVE_FCHDIR = 0; then
+      if test $HAVE_OPENDIR = 1; then
+        REPLACE_OPENDIR=1
+      fi
+    fi
+  ])
+  dnl Replace opendir() on OS/2 kLIBC to support dirfd() function replaced
+  dnl by gnulib.
+  case $host_os,$HAVE_OPENDIR in
+    os2*,1)
+      REPLACE_OPENDIR=1;;
+  esac
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/open.m4 ./gdb/gnulib/import/m4/open.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/open.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/open.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,91 @@
+# open.m4 serial 14
+dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_OPEN],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  case "$host_os" in
+    mingw* | pw*)
+      REPLACE_OPEN=1
+      ;;
+    *)
+      dnl open("foo/") should not create a file when the file name has a
+      dnl trailing slash.  FreeBSD only has the problem on symlinks.
+      AC_CHECK_FUNCS_ONCE([lstat])
+      AC_CACHE_CHECK([whether open recognizes a trailing slash],
+        [gl_cv_func_open_slash],
+        [# Assume that if we have lstat, we can also check symlinks.
+          if test $ac_cv_func_lstat = yes; then
+            touch conftest.tmp
+            ln -s conftest.tmp conftest.lnk
+          fi
+          AC_RUN_IFELSE(
+            [AC_LANG_SOURCE([[
+#include <fcntl.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+int main ()
+{
+  int result = 0;
+#if HAVE_LSTAT
+  if (open ("conftest.lnk/", O_RDONLY) != -1)
+    result |= 1;
+#endif
+  if (open ("conftest.sl/", O_CREAT, 0600) >= 0)
+    result |= 2;
+  return result;
+}]])],
+            [gl_cv_func_open_slash=yes],
+            [gl_cv_func_open_slash=no],
+            [
+changequote(,)dnl
+             case "$host_os" in
+               freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
+                 gl_cv_func_open_slash="guessing no" ;;
+               *)
+                 gl_cv_func_open_slash="guessing yes" ;;
+             esac
+changequote([,])dnl
+            ])
+          rm -f conftest.sl conftest.tmp conftest.lnk
+        ])
+      case "$gl_cv_func_open_slash" in
+        *no)
+          AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1],
+            [Define to 1 if open() fails to recognize a trailing slash.])
+          REPLACE_OPEN=1
+          ;;
+      esac
+      ;;
+  esac
+  dnl Replace open() for supporting the gnulib-defined fchdir() function,
+  dnl to keep fchdir's bookkeeping up-to-date.
+  m4_ifdef([gl_FUNC_FCHDIR], [
+    if test $REPLACE_OPEN = 0; then
+      gl_TEST_FCHDIR
+      if test $HAVE_FCHDIR = 0; then
+        REPLACE_OPEN=1
+      fi
+    fi
+  ])
+  dnl Replace open() for supporting the gnulib-defined O_NONBLOCK flag.
+  m4_ifdef([gl_NONBLOCKING_IO], [
+    if test $REPLACE_OPEN = 0; then
+      gl_NONBLOCKING_IO
+      if test $gl_cv_have_open_O_NONBLOCK != yes; then
+        REPLACE_OPEN=1
+      fi
+    fi
+  ])
+])
+
+# Prerequisites of lib/open.c.
+AC_DEFUN([gl_PREREQ_OPEN],
+[
+  AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T])
+  :
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/readdir.m4 ./gdb/gnulib/import/m4/readdir.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/readdir.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/readdir.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,15 @@
+# readdir.m4 serial 1
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_READDIR],
+[
+  AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+  AC_CHECK_FUNCS([readdir])
+  if test $ac_cv_func_readdir = no; then
+    HAVE_READDIR=0
+  fi
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/realloc.m4 ./gdb/gnulib/import/m4/realloc.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/realloc.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/realloc.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,79 @@
+# realloc.m4 serial 14
+dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+m4_version_prereq([2.70], [] ,[
+
+# This is adapted with modifications from upstream Autoconf here:
+# http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=04be2b7a29d65d9a08e64e8e56e594c91749598c
+AC_DEFUN([_AC_FUNC_REALLOC_IF],
+[
+  AC_REQUIRE([AC_HEADER_STDC])dnl
+  AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
+  AC_CHECK_HEADERS([stdlib.h])
+  AC_CACHE_CHECK([for GNU libc compatible realloc],
+    [ac_cv_func_realloc_0_nonnull],
+    [AC_RUN_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+            # include <stdlib.h>
+            #else
+            char *realloc ();
+            #endif
+          ]],
+          [[char *p = realloc (0, 0);
+            int result = !p;
+            free (p);
+            return result;]])
+       ],
+       [ac_cv_func_realloc_0_nonnull=yes],
+       [ac_cv_func_realloc_0_nonnull=no],
+       [case "$host_os" in
+          # Guess yes on platforms where we know the result.
+          *-gnu* | freebsd* | netbsd* | openbsd* \
+          | hpux* | solaris* | cygwin* | mingw*)
+            ac_cv_func_realloc_0_nonnull=yes ;;
+          # If we don't know, assume the worst.
+          *) ac_cv_func_realloc_0_nonnull=no ;;
+        esac
+       ])
+    ])
+  AS_IF([test $ac_cv_func_realloc_0_nonnull = yes], [$1], [$2])
+])# AC_FUNC_REALLOC
+
+])
+
+# gl_FUNC_REALLOC_GNU
+# -------------------
+# Test whether 'realloc (0, 0)' is handled like in GNU libc, and replace
+# realloc if it is not.
+AC_DEFUN([gl_FUNC_REALLOC_GNU],
+[
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  dnl _AC_FUNC_REALLOC_IF is defined in Autoconf.
+  _AC_FUNC_REALLOC_IF(
+    [AC_DEFINE([HAVE_REALLOC_GNU], [1],
+               [Define to 1 if your system has a GNU libc compatible 'realloc'
+                function, and to 0 otherwise.])],
+    [AC_DEFINE([HAVE_REALLOC_GNU], [0])
+     REPLACE_REALLOC=1
+    ])
+])# gl_FUNC_REALLOC_GNU
+
+# gl_FUNC_REALLOC_POSIX
+# ---------------------
+# Test whether 'realloc' is POSIX compliant (sets errno to ENOMEM when it
+# fails), and replace realloc if it is not.
+AC_DEFUN([gl_FUNC_REALLOC_POSIX],
+[
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
+  if test $gl_cv_func_malloc_posix = yes; then
+    AC_DEFINE([HAVE_REALLOC_POSIX], [1],
+      [Define if the 'realloc' function is POSIX compliant.])
+  else
+    REPLACE_REALLOC=1
+  fi
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/rewinddir.m4 ./gdb/gnulib/import/m4/rewinddir.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/rewinddir.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/rewinddir.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,15 @@
+# rewinddir.m4 serial 1
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_REWINDDIR],
+[
+  AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+  AC_CHECK_FUNCS([rewinddir])
+  if test $ac_cv_func_rewinddir = no; then
+    HAVE_REWINDDIR=0
+  fi
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/save-cwd.m4 ./gdb/gnulib/import/m4/save-cwd.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/save-cwd.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/save-cwd.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,11 @@
+# serial 10
+dnl Copyright (C) 2002-2006, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Prerequisites for lib/save-cwd.c.
+AC_DEFUN([gl_SAVE_CWD],
+[
+  AC_CHECK_FUNCS_ONCE([fchdir])
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/setenv.m4 ./gdb/gnulib/import/m4/setenv.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/setenv.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/setenv.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,160 @@
+# setenv.m4 serial 26
+dnl Copyright (C) 2001-2004, 2006-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_SETENV],
+[
+  AC_REQUIRE([gl_FUNC_SETENV_SEPARATE])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  if test $ac_cv_func_setenv = no; then
+    HAVE_SETENV=0
+  else
+    AC_CACHE_CHECK([whether setenv validates arguments],
+      [gl_cv_func_setenv_works],
+      [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+       #include <stdlib.h>
+       #include <errno.h>
+       #include <string.h>
+      ]], [[
+       int result = 0;
+       {
+         if (setenv ("", "", 0) != -1)
+           result |= 1;
+         else if (errno != EINVAL)
+           result |= 2;
+       }
+       {
+         if (setenv ("a", "=", 1) != 0)
+           result |= 4;
+         else if (strcmp (getenv ("a"), "=") != 0)
+           result |= 8;
+       }
+       return result;
+      ]])],
+      [gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no],
+      [case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_setenv_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_setenv_works="guessing no" ;;
+       esac
+      ])])
+    case "$gl_cv_func_setenv_works" in
+      *yes) ;;
+      *)
+        REPLACE_SETENV=1
+        ;;
+    esac
+  fi
+])
+
+# Like gl_FUNC_SETENV, except prepare for separate compilation
+# (no REPLACE_SETENV, no AC_LIBOBJ).
+AC_DEFUN([gl_FUNC_SETENV_SEPARATE],
+[
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  AC_CHECK_DECLS_ONCE([setenv])
+  if test $ac_cv_have_decl_setenv = no; then
+    HAVE_DECL_SETENV=0
+  fi
+  AC_CHECK_FUNCS_ONCE([setenv])
+  gl_PREREQ_SETENV
+])
+
+AC_DEFUN([gl_FUNC_UNSETENV],
+[
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CHECK_DECLS_ONCE([unsetenv])
+  if test $ac_cv_have_decl_unsetenv = no; then
+    HAVE_DECL_UNSETENV=0
+  fi
+  AC_CHECK_FUNCS([unsetenv])
+  if test $ac_cv_func_unsetenv = no; then
+    HAVE_UNSETENV=0
+  else
+    HAVE_UNSETENV=1
+    dnl Some BSDs return void, failing to do error checking.
+    AC_CACHE_CHECK([for unsetenv() return type], [gt_cv_func_unsetenv_ret],
+      [AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[
+#undef _BSD
+#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 <stdlib.h> */
+#include <stdlib.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+int unsetenv (const char *name);
+            ]],
+            [[]])],
+         [gt_cv_func_unsetenv_ret='int'],
+         [gt_cv_func_unsetenv_ret='void'])])
+    if test $gt_cv_func_unsetenv_ret = 'void'; then
+      AC_DEFINE([VOID_UNSETENV], [1], [Define to 1 if unsetenv returns void
+       instead of int.])
+      REPLACE_UNSETENV=1
+    fi
+
+    dnl Solaris 10 unsetenv does not remove all copies of a name.
+    dnl Haiku alpha 2 unsetenv gets confused by assignment to environ.
+    dnl OpenBSD 4.7 unsetenv("") does not fail.
+    AC_CACHE_CHECK([whether unsetenv obeys POSIX],
+      [gl_cv_func_unsetenv_works],
+      [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+       #include <stdlib.h>
+       #include <errno.h>
+       extern char **environ;
+      ]], [[
+       char entry1[] = "a=1";
+       char entry2[] = "b=2";
+       char *env[] = { entry1, entry2, NULL };
+       if (putenv ((char *) "a=1")) return 1;
+       if (putenv (entry2)) return 2;
+       entry2[0] = 'a';
+       unsetenv ("a");
+       if (getenv ("a")) return 3;
+       if (!unsetenv ("") || errno != EINVAL) return 4;
+       entry2[0] = 'b';
+       environ = env;
+       if (!getenv ("a")) return 5;
+       entry2[0] = 'a';
+       unsetenv ("a");
+       if (getenv ("a")) return 6;
+      ]])],
+      [gl_cv_func_unsetenv_works=yes], [gl_cv_func_unsetenv_works=no],
+      [case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_unsetenv_works="guessing no" ;;
+       esac
+      ])])
+    case "$gl_cv_func_unsetenv_works" in
+      *yes) ;;
+      *)
+        REPLACE_UNSETENV=1
+        ;;
+    esac
+  fi
+])
+
+# Prerequisites of lib/setenv.c.
+AC_DEFUN([gl_PREREQ_SETENV],
+[
+  AC_REQUIRE([AC_FUNC_ALLOCA])
+  AC_REQUIRE([gl_ENVIRON])
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+  AC_CHECK_HEADERS([search.h])
+  AC_CHECK_FUNCS([tsearch])
+])
+
+# Prerequisites of lib/unsetenv.c.
+AC_DEFUN([gl_PREREQ_UNSETENV],
+[
+  AC_REQUIRE([gl_ENVIRON])
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/strdup.m4 ./gdb/gnulib/import/m4/strdup.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/strdup.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/strdup.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,36 @@
+# strdup.m4 serial 13
+
+dnl Copyright (C) 2002-2016 Free Software Foundation, Inc.
+
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_STRDUP],
+[
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  AC_CHECK_FUNCS_ONCE([strdup])
+  AC_CHECK_DECLS_ONCE([strdup])
+  if test $ac_cv_have_decl_strdup = no; then
+    HAVE_DECL_STRDUP=0
+  fi
+])
+
+AC_DEFUN([gl_FUNC_STRDUP_POSIX],
+[
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
+  AC_CHECK_FUNCS_ONCE([strdup])
+  if test $ac_cv_func_strdup = yes; then
+    if test $gl_cv_func_malloc_posix != yes; then
+      REPLACE_STRDUP=1
+    fi
+  fi
+  AC_CHECK_DECLS_ONCE([strdup])
+  if test $ac_cv_have_decl_strdup = no; then
+    HAVE_DECL_STRDUP=0
+  fi
+])
+
+# Prerequisites of lib/strdup.c.
+AC_DEFUN([gl_PREREQ_STRDUP], [:])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/strerror.m4 ./gdb/gnulib/import/m4/strerror.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/strerror.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/strerror.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,96 @@
+# strerror.m4 serial 17
+dnl Copyright (C) 2002, 2007-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_STRERROR],
+[
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  AC_REQUIRE([gl_HEADER_ERRNO_H])
+  AC_REQUIRE([gl_FUNC_STRERROR_0])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
+    AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS])
+  ])
+  if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+    AC_CACHE_CHECK([for working strerror function],
+     [gl_cv_func_working_strerror],
+     [AC_RUN_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <string.h>
+           ]],
+           [[if (!*strerror (-2)) return 1;]])],
+        [gl_cv_func_working_strerror=yes],
+        [gl_cv_func_working_strerror=no],
+        [case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_working_strerror="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_working_strerror="guessing no" ;;
+         esac
+        ])
+    ])
+    case "$gl_cv_func_working_strerror" in
+      *yes) ;;
+      *)
+        dnl The system's strerror() fails to return a string for out-of-range
+        dnl integers. Replace it.
+        REPLACE_STRERROR=1
+        ;;
+    esac
+    m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
+      dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's
+      dnl buffer, we must replace strerror.
+      case "$gl_cv_func_strerror_r_works" in
+        *no) REPLACE_STRERROR=1 ;;
+      esac
+    ])
+  else
+    dnl The system's strerror() cannot know about the new errno values we add
+    dnl to <errno.h>, or any fix for strerror(0). Replace it.
+    REPLACE_STRERROR=1
+  fi
+])
+
+dnl Detect if strerror(0) passes (that is, does not set errno, and does not
+dnl return a string that matches strerror(-1)).
+AC_DEFUN([gl_FUNC_STRERROR_0],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  REPLACE_STRERROR_0=0
+  AC_CACHE_CHECK([whether strerror(0) succeeds],
+   [gl_cv_func_strerror_0_works],
+   [AC_RUN_IFELSE(
+      [AC_LANG_PROGRAM(
+         [[#include <string.h>
+           #include <errno.h>
+         ]],
+         [[int result = 0;
+           char *str;
+           errno = 0;
+           str = strerror (0);
+           if (!*str) result |= 1;
+           if (errno) result |= 2;
+           if (strstr (str, "nknown") || strstr (str, "ndefined"))
+             result |= 4;
+           return result;]])],
+      [gl_cv_func_strerror_0_works=yes],
+      [gl_cv_func_strerror_0_works=no],
+      [case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_strerror_0_works="guessing no" ;;
+       esac
+      ])
+  ])
+  case "$gl_cv_func_strerror_0_works" in
+    *yes) ;;
+    *)
+      REPLACE_STRERROR_0=1
+      AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0)
+        does not return a message implying success.])
+      ;;
+  esac
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/unistd-safer.m4 ./gdb/gnulib/import/m4/unistd-safer.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/m4/unistd-safer.m4	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/m4/unistd-safer.m4	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,10 @@
+#serial 9
+dnl Copyright (C) 2002, 2005-2006, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_UNISTD_SAFER],
+[
+  AC_CHECK_FUNCS_ONCE([pipe])
+])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/Makefile.am ./gdb/gnulib/import/Makefile.am
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/Makefile.am	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gnulib/import/Makefile.am	2018-01-09 02:04:57.000000000 +0000
@@ -21,7 +21,7 @@
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --lib=libgnu --source-base=import --m4-base=import/m4 --doc-base=doc --tests-base=tests --aux-dir=import/extra --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca canonicalize-lgpl dirent dirfd errno fnmatch-gnu frexpl inttypes limits-h lstat memchr memmem pathmax rawmemchr readlink rename signal-h strchrnul strstr strtok_r sys_stat unistd update-copyright wchar wctype-h
+# Reproduce by: gnulib-tool --import --lib=libgnu --source-base=import --m4-base=import/m4 --doc-base=doc --tests-base=tests --aux-dir=import/extra --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca canonicalize-lgpl dirent dirfd errno fnmatch-gnu frexpl getcwd glob inttypes limits-h lstat memchr memmem pathmax rawmemchr readlink rename setenv signal-h strchrnul strstr strtok_r sys_stat unistd unsetenv update-copyright wchar wctype-h
 
 AUTOMAKE_OPTIONS = 1.9.6 gnits
 
@@ -92,6 +92,22 @@ EXTRA_DIST += alloca.in.h
 
 ## end   gnulib module alloca-opt
 
+## begin gnulib module assure
+
+
+EXTRA_DIST += assure.h
+
+## end   gnulib module assure
+
+## begin gnulib module at-internal
+
+
+EXTRA_DIST += openat-priv.h openat-proc.c
+
+EXTRA_libgnu_a_SOURCES += openat-proc.c
+
+## end   gnulib module at-internal
+
 ## begin gnulib module canonicalize-lgpl
 
 
@@ -101,6 +117,41 @@ EXTRA_libgnu_a_SOURCES += canonicalize-l
 
 ## end   gnulib module canonicalize-lgpl
 
+## begin gnulib module chdir-long
+
+
+EXTRA_DIST += chdir-long.c chdir-long.h
+
+EXTRA_libgnu_a_SOURCES += chdir-long.c
+
+## end   gnulib module chdir-long
+
+## begin gnulib module cloexec
+
+libgnu_a_SOURCES += cloexec.c
+
+EXTRA_DIST += cloexec.h
+
+## end   gnulib module cloexec
+
+## begin gnulib module close
+
+
+EXTRA_DIST += close.c
+
+EXTRA_libgnu_a_SOURCES += close.c
+
+## end   gnulib module close
+
+## begin gnulib module closedir
+
+
+EXTRA_DIST += closedir.c dirent-private.h
+
+EXTRA_libgnu_a_SOURCES += closedir.c
+
+## end   gnulib module closedir
+
 ## begin gnulib module configmake
 
 # Listed in the same order as the GNU makefile conventions, and
@@ -218,6 +269,24 @@ EXTRA_DIST += dosname.h
 
 ## end   gnulib module dosname
 
+## begin gnulib module dup
+
+
+EXTRA_DIST += dup.c
+
+EXTRA_libgnu_a_SOURCES += dup.c
+
+## end   gnulib module dup
+
+## begin gnulib module dup2
+
+
+EXTRA_DIST += dup2.c
+
+EXTRA_libgnu_a_SOURCES += dup2.c
+
+## end   gnulib module dup2
+
 ## begin gnulib module errno
 
 BUILT_SOURCES += $(ERRNO_H)
@@ -252,6 +321,108 @@ EXTRA_DIST += errno.in.h
 
 ## end   gnulib module errno
 
+## begin gnulib module error
+
+
+EXTRA_DIST += error.c error.h
+
+EXTRA_libgnu_a_SOURCES += error.c
+
+## end   gnulib module error
+
+## begin gnulib module exitfail
+
+libgnu_a_SOURCES += exitfail.c
+
+EXTRA_DIST += exitfail.h
+
+## end   gnulib module exitfail
+
+## begin gnulib module fchdir
+
+
+EXTRA_DIST += fchdir.c
+
+EXTRA_libgnu_a_SOURCES += fchdir.c
+
+## end   gnulib module fchdir
+
+## begin gnulib module fcntl
+
+
+EXTRA_DIST += fcntl.c
+
+EXTRA_libgnu_a_SOURCES += fcntl.c
+
+## end   gnulib module fcntl
+
+## begin gnulib module fcntl-h
+
+BUILT_SOURCES += fcntl.h
+
+# We need the following in order to create <fcntl.h> when the system
+# doesn't have one that works with the given compiler.
+fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+	$(AM_V_GEN)rm -f $@-t $@ && \
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+	      -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
+	      -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \
+	      -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \
+	      -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \
+	      -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \
+	      -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \
+	      -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \
+	      -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \
+	      -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \
+	      -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \
+	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+	      -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+	      < $(srcdir)/fcntl.in.h; \
+	} > $@-t && \
+	mv $@-t $@
+MOSTLYCLEANFILES += fcntl.h fcntl.h-t
+
+EXTRA_DIST += fcntl.in.h
+
+## end   gnulib module fcntl-h
+
+## begin gnulib module fd-hook
+
+libgnu_a_SOURCES += fd-hook.c
+
+EXTRA_DIST += fd-hook.h
+
+## end   gnulib module fd-hook
+
+## begin gnulib module fdopendir
+
+
+EXTRA_DIST += fdopendir.c
+
+EXTRA_libgnu_a_SOURCES += fdopendir.c
+
+## end   gnulib module fdopendir
+
+## begin gnulib module filename
+
+
+EXTRA_DIST += filename.h
+
+## end   gnulib module filename
+
+## begin gnulib module filenamecat-lgpl
+
+libgnu_a_SOURCES += filenamecat-lgpl.c
+
+EXTRA_DIST += filenamecat.h
+
+## end   gnulib module filenamecat-lgpl
+
 ## begin gnulib module flexmember
 
 
@@ -341,6 +512,72 @@ EXTRA_libgnu_a_SOURCES += frexp.c frexpl
 
 ## end   gnulib module frexpl
 
+## begin gnulib module fstat
+
+
+EXTRA_DIST += fstat.c
+
+EXTRA_libgnu_a_SOURCES += fstat.c
+
+## end   gnulib module fstat
+
+## begin gnulib module fstatat
+
+
+EXTRA_DIST += at-func.c fstatat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c fstatat.c
+
+## end   gnulib module fstatat
+
+## begin gnulib module getcwd
+
+
+EXTRA_DIST += getcwd.c
+
+EXTRA_libgnu_a_SOURCES += getcwd.c
+
+## end   gnulib module getcwd
+
+## begin gnulib module getcwd-lgpl
+
+
+EXTRA_DIST += getcwd-lgpl.c
+
+EXTRA_libgnu_a_SOURCES += getcwd-lgpl.c
+
+## end   gnulib module getcwd-lgpl
+
+## begin gnulib module getdtablesize
+
+
+EXTRA_DIST += getdtablesize.c
+
+EXTRA_libgnu_a_SOURCES += getdtablesize.c
+
+## end   gnulib module getdtablesize
+
+## begin gnulib module getlogin_r
+
+
+EXTRA_DIST += getlogin_r.c
+
+EXTRA_libgnu_a_SOURCES += getlogin_r.c
+
+## end   gnulib module getlogin_r
+
+## begin gnulib module getprogname
+
+libgnu_a_SOURCES += getprogname.h getprogname.c
+
+## end   gnulib module getprogname
+
+## begin gnulib module gettext-h
+
+libgnu_a_SOURCES += gettext.h
+
+## end   gnulib module gettext-h
+
 ## begin gnulib module gettimeofday
 
 
@@ -350,6 +587,35 @@ EXTRA_libgnu_a_SOURCES += gettimeofday.c
 
 ## end   gnulib module gettimeofday
 
+## begin gnulib module glob
+
+BUILT_SOURCES += $(GLOB_H)
+
+# We need the following in order to create <glob.h> when the system
+# doesn't have one that works with the given compiler.
+if GL_GENERATE_GLOB_H
+glob.h: glob.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+	$(AM_V_GEN)rm -f $@-t $@ && \
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \
+	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+	      -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+	      < $(srcdir)/glob.in.h; \
+	} > $@-t && \
+	mv -f $@-t $@
+else
+glob.h: $(top_builddir)/config.status
+	rm -f $@
+endif
+MOSTLYCLEANFILES += glob.h glob.h-t
+
+EXTRA_DIST += glob-libc.h glob.c glob.in.h
+
+EXTRA_libgnu_a_SOURCES += glob.c
+
+## end   gnulib module glob
+
 ## begin gnulib module hard-locale
 
 libgnu_a_SOURCES += hard-locale.c
@@ -358,6 +624,13 @@ EXTRA_DIST += hard-locale.h
 
 ## end   gnulib module hard-locale
 
+## begin gnulib module intprops
+
+
+EXTRA_DIST += intprops.h
+
+## end   gnulib module intprops
+
 ## begin gnulib module inttypes-incomplete
 
 BUILT_SOURCES += inttypes.h
@@ -878,6 +1151,82 @@ EXTRA_libgnu_a_SOURCES += memmem.c
 
 ## end   gnulib module memmem-simple
 
+## begin gnulib module mempcpy
+
+
+EXTRA_DIST += mempcpy.c
+
+EXTRA_libgnu_a_SOURCES += mempcpy.c
+
+## end   gnulib module mempcpy
+
+## begin gnulib module memrchr
+
+
+EXTRA_DIST += memrchr.c
+
+EXTRA_libgnu_a_SOURCES += memrchr.c
+
+## end   gnulib module memrchr
+
+## begin gnulib module msvc-inval
+
+
+EXTRA_DIST += msvc-inval.c msvc-inval.h
+
+EXTRA_libgnu_a_SOURCES += msvc-inval.c
+
+## end   gnulib module msvc-inval
+
+## begin gnulib module msvc-nothrow
+
+
+EXTRA_DIST += msvc-nothrow.c msvc-nothrow.h
+
+EXTRA_libgnu_a_SOURCES += msvc-nothrow.c
+
+## end   gnulib module msvc-nothrow
+
+## begin gnulib module open
+
+
+EXTRA_DIST += open.c
+
+EXTRA_libgnu_a_SOURCES += open.c
+
+## end   gnulib module open
+
+## begin gnulib module openat
+
+
+EXTRA_DIST += openat.c
+
+EXTRA_libgnu_a_SOURCES += openat.c
+
+## end   gnulib module openat
+
+## begin gnulib module openat-die
+
+libgnu_a_SOURCES += openat-die.c
+
+## end   gnulib module openat-die
+
+## begin gnulib module openat-h
+
+
+EXTRA_DIST += openat.h
+
+## end   gnulib module openat-h
+
+## begin gnulib module opendir
+
+
+EXTRA_DIST += dirent-private.h opendir.c
+
+EXTRA_libgnu_a_SOURCES += opendir.c
+
+## end   gnulib module opendir
+
 ## begin gnulib module pathmax
 
 
@@ -894,6 +1243,15 @@ EXTRA_libgnu_a_SOURCES += rawmemchr.c
 
 ## end   gnulib module rawmemchr
 
+## begin gnulib module readdir
+
+
+EXTRA_DIST += dirent-private.h readdir.c
+
+EXTRA_libgnu_a_SOURCES += readdir.c
+
+## end   gnulib module readdir
+
 ## begin gnulib module readlink
 
 
@@ -903,6 +1261,15 @@ EXTRA_libgnu_a_SOURCES += readlink.c
 
 ## end   gnulib module readlink
 
+## begin gnulib module realloc-posix
+
+
+EXTRA_DIST += realloc.c
+
+EXTRA_libgnu_a_SOURCES += realloc.c
+
+## end   gnulib module realloc-posix
+
 ## begin gnulib module rename
 
 
@@ -912,6 +1279,15 @@ EXTRA_libgnu_a_SOURCES += rename.c
 
 ## end   gnulib module rename
 
+## begin gnulib module rewinddir
+
+
+EXTRA_DIST += dirent-private.h rewinddir.c
+
+EXTRA_libgnu_a_SOURCES += rewinddir.c
+
+## end   gnulib module rewinddir
+
 ## begin gnulib module rmdir
 
 
@@ -928,6 +1304,23 @@ EXTRA_DIST += same-inode.h
 
 ## end   gnulib module same-inode
 
+## begin gnulib module save-cwd
+
+libgnu_a_SOURCES += save-cwd.c
+
+EXTRA_DIST += save-cwd.h
+
+## end   gnulib module save-cwd
+
+## begin gnulib module setenv
+
+
+EXTRA_DIST += setenv.c
+
+EXTRA_libgnu_a_SOURCES += setenv.c
+
+## end   gnulib module setenv
+
 ## begin gnulib module signal-h
 
 BUILT_SOURCES += signal.h
@@ -1408,6 +1801,15 @@ EXTRA_libgnu_a_SOURCES += strchrnul.c
 
 ## end   gnulib module strchrnul
 
+## begin gnulib module strdup-posix
+
+
+EXTRA_DIST += strdup.c
+
+EXTRA_libgnu_a_SOURCES += strdup.c
+
+## end   gnulib module strdup-posix
+
 ## begin gnulib module streq
 
 
@@ -1415,6 +1817,24 @@ EXTRA_DIST += streq.h
 
 ## end   gnulib module streq
 
+## begin gnulib module strerror
+
+
+EXTRA_DIST += strerror.c
+
+EXTRA_libgnu_a_SOURCES += strerror.c
+
+## end   gnulib module strerror
+
+## begin gnulib module strerror-override
+
+
+EXTRA_DIST += strerror-override.c strerror-override.h
+
+EXTRA_libgnu_a_SOURCES += strerror-override.c
+
+## end   gnulib module strerror-override
+
 ## begin gnulib module string
 
 BUILT_SOURCES += string.h
@@ -1862,6 +2282,23 @@ EXTRA_DIST += unistd.in.h
 
 ## end   gnulib module unistd
 
+## begin gnulib module unistd-safer
+
+libgnu_a_SOURCES += dup-safer.c fd-safer.c pipe-safer.c
+
+EXTRA_DIST += unistd--.h unistd-safer.h
+
+## end   gnulib module unistd-safer
+
+## begin gnulib module unsetenv
+
+
+EXTRA_DIST += unsetenv.c
+
+EXTRA_libgnu_a_SOURCES += unsetenv.c
+
+## end   gnulib module unsetenv
+
 ## begin gnulib module update-copyright
 
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/Makefile.in ./gdb/gnulib/import/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/Makefile.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gnulib/import/Makefile.in	2018-01-09 02:04:57.000000000 +0000
@@ -36,7 +36,7 @@
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --lib=libgnu --source-base=import --m4-base=import/m4 --doc-base=doc --tests-base=tests --aux-dir=import/extra --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca canonicalize-lgpl dirent dirfd errno fnmatch-gnu frexpl inttypes limits-h lstat memchr memmem pathmax rawmemchr readlink rename signal-h strchrnul strstr strtok_r sys_stat unistd update-copyright wchar wctype-h
+# Reproduce by: gnulib-tool --import --lib=libgnu --source-base=import --m4-base=import/m4 --doc-base=doc --tests-base=tests --aux-dir=import/extra --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca canonicalize-lgpl dirent dirfd errno fnmatch-gnu frexpl getcwd glob inttypes limits-h lstat memchr memmem pathmax rawmemchr readlink rename setenv signal-h strchrnul strstr strtok_r sys_stat unistd unsetenv update-copyright wchar wctype-h
 
 
 
@@ -67,27 +67,49 @@ am__aclocal_m4_deps = $(top_srcdir)/impo
 	$(top_srcdir)/import/m4/absolute-header.m4 \
 	$(top_srcdir)/import/m4/alloca.m4 \
 	$(top_srcdir)/import/m4/canonicalize.m4 \
+	$(top_srcdir)/import/m4/chdir-long.m4 \
+	$(top_srcdir)/import/m4/close.m4 \
+	$(top_srcdir)/import/m4/closedir.m4 \
 	$(top_srcdir)/import/m4/codeset.m4 \
 	$(top_srcdir)/import/m4/configmake.m4 \
+	$(top_srcdir)/import/m4/d-ino.m4 \
+	$(top_srcdir)/import/m4/d-type.m4 \
 	$(top_srcdir)/import/m4/dirent_h.m4 \
 	$(top_srcdir)/import/m4/dirfd.m4 \
 	$(top_srcdir)/import/m4/dirname.m4 \
 	$(top_srcdir)/import/m4/double-slash-root.m4 \
+	$(top_srcdir)/import/m4/dup.m4 $(top_srcdir)/import/m4/dup2.m4 \
 	$(top_srcdir)/import/m4/eealloc.m4 \
+	$(top_srcdir)/import/m4/environ.m4 \
 	$(top_srcdir)/import/m4/errno_h.m4 \
+	$(top_srcdir)/import/m4/error.m4 \
 	$(top_srcdir)/import/m4/exponentd.m4 \
 	$(top_srcdir)/import/m4/exponentl.m4 \
 	$(top_srcdir)/import/m4/extensions.m4 \
 	$(top_srcdir)/import/m4/extern-inline.m4 \
+	$(top_srcdir)/import/m4/fchdir.m4 \
 	$(top_srcdir)/import/m4/fcntl-o.m4 \
+	$(top_srcdir)/import/m4/fcntl.m4 \
+	$(top_srcdir)/import/m4/fcntl_h.m4 \
+	$(top_srcdir)/import/m4/fdopendir.m4 \
+	$(top_srcdir)/import/m4/filenamecat.m4 \
 	$(top_srcdir)/import/m4/flexmember.m4 \
 	$(top_srcdir)/import/m4/float_h.m4 \
 	$(top_srcdir)/import/m4/fnmatch.m4 \
 	$(top_srcdir)/import/m4/fpieee.m4 \
 	$(top_srcdir)/import/m4/frexp.m4 \
 	$(top_srcdir)/import/m4/frexpl.m4 \
+	$(top_srcdir)/import/m4/fstat.m4 \
+	$(top_srcdir)/import/m4/fstatat.m4 \
+	$(top_srcdir)/import/m4/getcwd-abort-bug.m4 \
+	$(top_srcdir)/import/m4/getcwd-path-max.m4 \
+	$(top_srcdir)/import/m4/getcwd.m4 \
+	$(top_srcdir)/import/m4/getdtablesize.m4 \
+	$(top_srcdir)/import/m4/getlogin_r.m4 \
+	$(top_srcdir)/import/m4/getprogname.m4 \
 	$(top_srcdir)/import/m4/gettimeofday.m4 \
 	$(top_srcdir)/import/m4/glibc21.m4 \
+	$(top_srcdir)/import/m4/glob.m4 \
 	$(top_srcdir)/import/m4/gnulib-common.m4 \
 	$(top_srcdir)/import/m4/gnulib-comp.m4 \
 	$(top_srcdir)/import/m4/hard-locale.m4 \
@@ -113,15 +135,28 @@ am__aclocal_m4_deps = $(top_srcdir)/impo
 	$(top_srcdir)/import/m4/mbstate_t.m4 \
 	$(top_srcdir)/import/m4/memchr.m4 \
 	$(top_srcdir)/import/m4/memmem.m4 \
+	$(top_srcdir)/import/m4/mempcpy.m4 \
+	$(top_srcdir)/import/m4/memrchr.m4 \
 	$(top_srcdir)/import/m4/mmap-anon.m4 \
+	$(top_srcdir)/import/m4/mode_t.m4 \
+	$(top_srcdir)/import/m4/msvc-inval.m4 \
+	$(top_srcdir)/import/m4/msvc-nothrow.m4 \
 	$(top_srcdir)/import/m4/multiarch.m4 \
 	$(top_srcdir)/import/m4/nocrash.m4 \
 	$(top_srcdir)/import/m4/off_t.m4 \
+	$(top_srcdir)/import/m4/open.m4 \
+	$(top_srcdir)/import/m4/openat.m4 \
+	$(top_srcdir)/import/m4/opendir.m4 \
 	$(top_srcdir)/import/m4/pathmax.m4 \
 	$(top_srcdir)/import/m4/rawmemchr.m4 \
+	$(top_srcdir)/import/m4/readdir.m4 \
 	$(top_srcdir)/import/m4/readlink.m4 \
+	$(top_srcdir)/import/m4/realloc.m4 \
 	$(top_srcdir)/import/m4/rename.m4 \
+	$(top_srcdir)/import/m4/rewinddir.m4 \
 	$(top_srcdir)/import/m4/rmdir.m4 \
+	$(top_srcdir)/import/m4/save-cwd.m4 \
+	$(top_srcdir)/import/m4/setenv.m4 \
 	$(top_srcdir)/import/m4/signal_h.m4 \
 	$(top_srcdir)/import/m4/ssize_t.m4 \
 	$(top_srcdir)/import/m4/stat.m4 \
@@ -131,6 +166,8 @@ am__aclocal_m4_deps = $(top_srcdir)/impo
 	$(top_srcdir)/import/m4/stdio_h.m4 \
 	$(top_srcdir)/import/m4/stdlib_h.m4 \
 	$(top_srcdir)/import/m4/strchrnul.m4 \
+	$(top_srcdir)/import/m4/strdup.m4 \
+	$(top_srcdir)/import/m4/strerror.m4 \
 	$(top_srcdir)/import/m4/string_h.m4 \
 	$(top_srcdir)/import/m4/strstr.m4 \
 	$(top_srcdir)/import/m4/strtok_r.m4 \
@@ -139,6 +176,7 @@ am__aclocal_m4_deps = $(top_srcdir)/impo
 	$(top_srcdir)/import/m4/sys_time_h.m4 \
 	$(top_srcdir)/import/m4/sys_types_h.m4 \
 	$(top_srcdir)/import/m4/time_h.m4 \
+	$(top_srcdir)/import/m4/unistd-safer.m4 \
 	$(top_srcdir)/import/m4/unistd_h.m4 \
 	$(top_srcdir)/import/m4/warn-on-use.m4 \
 	$(top_srcdir)/import/m4/wchar_h.m4 \
@@ -154,10 +192,14 @@ CONFIG_CLEAN_VPATH_FILES =
 LIBRARIES = $(noinst_LIBRARIES)
 libgnu_a_AR = $(AR) $(ARFLAGS)
 am__DEPENDENCIES_1 =
-am_libgnu_a_OBJECTS = dirname-lgpl.$(OBJEXT) basename-lgpl.$(OBJEXT) \
-	stripslash.$(OBJEXT) hard-locale.$(OBJEXT) \
-	localcharset.$(OBJEXT) malloca.$(OBJEXT) math.$(OBJEXT) \
-	strnlen1.$(OBJEXT) unistd.$(OBJEXT) wctype-h.$(OBJEXT)
+am_libgnu_a_OBJECTS = cloexec.$(OBJEXT) dirname-lgpl.$(OBJEXT) \
+	basename-lgpl.$(OBJEXT) stripslash.$(OBJEXT) \
+	exitfail.$(OBJEXT) fd-hook.$(OBJEXT) \
+	filenamecat-lgpl.$(OBJEXT) getprogname.$(OBJEXT) \
+	hard-locale.$(OBJEXT) localcharset.$(OBJEXT) malloca.$(OBJEXT) \
+	math.$(OBJEXT) openat-die.$(OBJEXT) save-cwd.$(OBJEXT) \
+	strnlen1.$(OBJEXT) unistd.$(OBJEXT) dup-safer.$(OBJEXT) \
+	fd-safer.$(OBJEXT) pipe-safer.$(OBJEXT) wctype-h.$(OBJEXT)
 libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS)
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
@@ -254,6 +296,7 @@ FNMATCH_H = @FNMATCH_H@
 FREXPL_LIBM = @FREXPL_LIBM@
 FREXP_LIBM = @FREXP_LIBM@
 GLIBC21 = @GLIBC21@
+GLOB_H = @GLOB_H@
 GNULIB_ACOSF = @GNULIB_ACOSF@
 GNULIB_ACOSL = @GNULIB_ACOSL@
 GNULIB_ALPHASORT = @GNULIB_ALPHASORT@
@@ -304,6 +347,7 @@ GNULIB_FCHDIR = @GNULIB_FCHDIR@
 GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
 GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
 GNULIB_FCLOSE = @GNULIB_FCLOSE@
+GNULIB_FCNTL = @GNULIB_FCNTL@
 GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
 GNULIB_FDOPEN = @GNULIB_FDOPEN@
 GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
@@ -441,8 +485,11 @@ GNULIB_MODF = @GNULIB_MODF@
 GNULIB_MODFF = @GNULIB_MODFF@
 GNULIB_MODFL = @GNULIB_MODFL@
 GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@
+GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@
 GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
 GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_OPEN = @GNULIB_OPEN@
+GNULIB_OPENAT = @GNULIB_OPENAT@
 GNULIB_OPENDIR = @GNULIB_OPENDIR@
 GNULIB_PCLOSE = @GNULIB_PCLOSE@
 GNULIB_PERROR = @GNULIB_PERROR@
@@ -712,6 +759,7 @@ HAVE_FACCESSAT = @HAVE_FACCESSAT@
 HAVE_FCHDIR = @HAVE_FCHDIR@
 HAVE_FCHMODAT = @HAVE_FCHMODAT@
 HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FCNTL = @HAVE_FCNTL@
 HAVE_FDATASYNC = @HAVE_FDATASYNC@
 HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
 HAVE_FEATURES_H = @HAVE_FEATURES_H@
@@ -786,7 +834,9 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
 HAVE_MODFF = @HAVE_MODFF@
 HAVE_MODFL = @HAVE_MODFL@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_OPENAT = @HAVE_OPENAT@
 HAVE_OPENDIR = @HAVE_OPENDIR@
 HAVE_OS_H = @HAVE_OS_H@
 HAVE_PCLOSE = @HAVE_PCLOSE@
@@ -854,6 +904,7 @@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
 HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
 HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
 HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
@@ -925,6 +976,7 @@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LO
 LDFLAGS = @LDFLAGS@
 LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
 LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
+LIBINTL = @LIBINTL@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIMITS_H = @LIMITS_H@
@@ -934,12 +986,14 @@ LOCALE_FR = @LOCALE_FR@
 LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
 LOCALE_JA = @LOCALE_JA@
 LOCALE_ZH_CN = @LOCALE_ZH_CN@
+LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
+NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
 NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
 NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@
@@ -959,6 +1013,7 @@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
 NEXT_DIRENT_H = @NEXT_DIRENT_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LIMITS_H = @NEXT_LIMITS_H@
@@ -1014,6 +1069,7 @@ REPLACE_EXPM1F = @REPLACE_EXPM1F@
 REPLACE_FABSL = @REPLACE_FABSL@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
 REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FCNTL = @REPLACE_FCNTL@
 REPLACE_FDOPEN = @REPLACE_FDOPEN@
 REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
 REPLACE_FFLUSH = @REPLACE_FFLUSH@
@@ -1109,6 +1165,8 @@ REPLACE_NAN = @REPLACE_NAN@
 REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
 REPLACE_NULL = @REPLACE_NULL@
 REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
+REPLACE_OPEN = @REPLACE_OPEN@
+REPLACE_OPENAT = @REPLACE_OPENAT@
 REPLACE_OPENDIR = @REPLACE_OPENDIR@
 REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
@@ -1278,28 +1336,39 @@ SUBDIRS = 
 noinst_HEADERS = 
 noinst_LIBRARIES = libgnu.a
 noinst_LTLIBRARIES = 
-EXTRA_DIST = m4/gnulib-cache.m4 alloca.c alloca.in.h \
-	canonicalize-lgpl.c dirent.in.h dirfd.c dirname.h dosname.h \
-	errno.in.h flexmember.h float.c float.in.h itold.c fnmatch.c \
-	fnmatch.in.h fnmatch_loop.c fpucw.h frexp.c frexp.c frexpl.c \
-	gettimeofday.c hard-locale.h inttypes.in.h float+.h isnan.c \
+EXTRA_DIST = m4/gnulib-cache.m4 alloca.c alloca.in.h assure.h \
+	openat-priv.h openat-proc.c canonicalize-lgpl.c chdir-long.c \
+	chdir-long.h cloexec.h close.c closedir.c dirent-private.h \
+	dirent.in.h dirfd.c dirname.h dosname.h dup.c dup2.c \
+	errno.in.h error.c error.h exitfail.h fchdir.c fcntl.c \
+	fcntl.in.h fd-hook.h fdopendir.c filename.h filenamecat.h \
+	flexmember.h float.c float.in.h itold.c fnmatch.c fnmatch.in.h \
+	fnmatch_loop.c fpucw.h frexp.c frexp.c frexpl.c fstat.c \
+	at-func.c fstatat.c getcwd.c getcwd-lgpl.c getdtablesize.c \
+	getlogin_r.c gettimeofday.c glob-libc.h glob.c glob.in.h \
+	hard-locale.h intprops.h inttypes.in.h float+.h isnan.c \
 	isnand-nolibm.h isnand.c float+.h isnan.c isnanl-nolibm.h \
 	isnanl.c limits.in.h config.charset ref-add.sin ref-del.sin \
 	lstat.c malloc.c malloca.h malloca.valgrind math.in.h \
 	mbrtowc.c mbsinit.c mbsrtowcs-impl.h mbsrtowcs-state.c \
 	mbsrtowcs.c memchr.c memchr.valgrind memmem.c str-two-way.h \
-	pathmax.h rawmemchr.c rawmemchr.valgrind readlink.c rename.c \
-	rmdir.c same-inode.h signal.in.h \
+	mempcpy.c memrchr.c msvc-inval.c msvc-inval.h msvc-nothrow.c \
+	msvc-nothrow.h open.c openat.c openat.h dirent-private.h \
+	opendir.c pathmax.h rawmemchr.c rawmemchr.valgrind \
+	dirent-private.h readdir.c readlink.c realloc.c rename.c \
+	dirent-private.h rewinddir.c rmdir.c same-inode.h save-cwd.h \
+	setenv.c signal.in.h \
 	$(top_srcdir)/import/extra/snippet/_Noreturn.h \
 	$(top_srcdir)/import/extra/snippet/arg-nonnull.h \
 	$(top_srcdir)/import/extra/snippet/c++defs.h \
 	$(top_srcdir)/import/extra/snippet/warn-on-use.h stat.c \
 	stdbool.in.h stddef.in.h stdint.in.h stdio.in.h stdlib.in.h \
-	strchrnul.c strchrnul.valgrind streq.h string.in.h \
+	strchrnul.c strchrnul.valgrind strdup.c streq.h strerror.c \
+	strerror-override.c strerror-override.h string.in.h \
 	str-two-way.h strstr.c strtok_r.c sys_stat.in.h sys_time.in.h \
-	sys_types.in.h time.in.h unistd.in.h \
-	$(top_srcdir)/import/extra/update-copyright verify.h \
-	wchar.in.h wctype.in.h
+	sys_types.in.h time.in.h unistd.in.h unistd--.h unistd-safer.h \
+	unsetenv.c $(top_srcdir)/import/extra/update-copyright \
+	verify.h wchar.in.h wctype.in.h
 
 # The BUILT_SOURCES created by this Makefile snippet are not used via #include
 # statements but through direct file reference. Therefore this snippet must be
@@ -1310,21 +1379,23 @@ EXTRA_DIST = m4/gnulib-cache.m4 alloca.c
 # statements but through direct file reference. Therefore this snippet must be
 # present in all Makefile.am that need it. This is ensured by the applicability
 # 'all' defined above.
-BUILT_SOURCES = $(ALLOCA_H) configmake.h dirent.h $(ERRNO_H) \
-	$(FLOAT_H) $(FNMATCH_H) inttypes.h $(LIMITS_H) math.h signal.h \
-	arg-nonnull.h c++defs.h warn-on-use.h $(STDBOOL_H) $(STDDEF_H) \
-	$(STDINT_H) stdio.h stdlib.h string.h sys/stat.h sys/time.h \
-	sys/types.h time.h unistd.h wchar.h wctype.h
+BUILT_SOURCES = $(ALLOCA_H) configmake.h dirent.h $(ERRNO_H) fcntl.h \
+	$(FLOAT_H) $(FNMATCH_H) $(GLOB_H) inttypes.h $(LIMITS_H) \
+	math.h signal.h arg-nonnull.h c++defs.h warn-on-use.h \
+	$(STDBOOL_H) $(STDDEF_H) $(STDINT_H) stdio.h stdlib.h string.h \
+	sys/stat.h sys/time.h sys/types.h time.h unistd.h wchar.h \
+	wctype.h
 SUFFIXES = .sed .sin
 MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t dirent.h \
-	dirent.h-t errno.h errno.h-t float.h float.h-t fnmatch.h \
-	fnmatch.h-t inttypes.h inttypes.h-t limits.h limits.h-t math.h \
-	math.h-t signal.h signal.h-t arg-nonnull.h arg-nonnull.h-t \
-	c++defs.h c++defs.h-t warn-on-use.h warn-on-use.h-t stdbool.h \
-	stdbool.h-t stddef.h stddef.h-t stdint.h stdint.h-t stdio.h \
-	stdio.h-t stdlib.h stdlib.h-t string.h string.h-t sys/stat.h \
-	sys/stat.h-t sys/time.h sys/time.h-t sys/types.h sys/types.h-t \
-	time.h time.h-t unistd.h unistd.h-t wchar.h wchar.h-t wctype.h \
+	dirent.h-t errno.h errno.h-t fcntl.h fcntl.h-t float.h \
+	float.h-t fnmatch.h fnmatch.h-t glob.h glob.h-t inttypes.h \
+	inttypes.h-t limits.h limits.h-t math.h math.h-t signal.h \
+	signal.h-t arg-nonnull.h arg-nonnull.h-t c++defs.h c++defs.h-t \
+	warn-on-use.h warn-on-use.h-t stdbool.h stdbool.h-t stddef.h \
+	stddef.h-t stdint.h stdint.h-t stdio.h stdio.h-t stdlib.h \
+	stdlib.h-t string.h string.h-t sys/stat.h sys/stat.h-t \
+	sys/time.h sys/time.h-t sys/types.h sys/types.h-t time.h \
+	time.h-t unistd.h unistd.h-t wchar.h wchar.h-t wctype.h \
 	wctype.h-t
 MOSTLYCLEANDIRS = sys
 CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \
@@ -1333,17 +1404,26 @@ DISTCLEANFILES = 
 MAINTAINERCLEANFILES = 
 AM_CPPFLAGS = 
 AM_CFLAGS = 
-libgnu_a_SOURCES = dirname-lgpl.c basename-lgpl.c stripslash.c \
-	hard-locale.c localcharset.h localcharset.c malloca.c math.c \
-	strnlen1.h strnlen1.c unistd.c wctype-h.c
+libgnu_a_SOURCES = cloexec.c dirname-lgpl.c basename-lgpl.c \
+	stripslash.c exitfail.c fd-hook.c filenamecat-lgpl.c \
+	getprogname.h getprogname.c gettext.h hard-locale.c \
+	localcharset.h localcharset.c malloca.c math.c openat-die.c \
+	save-cwd.c strnlen1.h strnlen1.c unistd.c dup-safer.c \
+	fd-safer.c pipe-safer.c wctype-h.c
 libgnu_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@
 libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@
-EXTRA_libgnu_a_SOURCES = alloca.c canonicalize-lgpl.c dirfd.c float.c \
-	itold.c fnmatch.c fnmatch_loop.c frexp.c frexp.c frexpl.c \
-	gettimeofday.c isnan.c isnand.c isnan.c isnanl.c lstat.c \
-	malloc.c mbrtowc.c mbsinit.c mbsrtowcs-state.c mbsrtowcs.c \
-	memchr.c memmem.c rawmemchr.c readlink.c rename.c rmdir.c \
-	stat.c strchrnul.c strstr.c strtok_r.c
+EXTRA_libgnu_a_SOURCES = alloca.c openat-proc.c canonicalize-lgpl.c \
+	chdir-long.c close.c closedir.c dirfd.c dup.c dup2.c error.c \
+	fchdir.c fcntl.c fdopendir.c float.c itold.c fnmatch.c \
+	fnmatch_loop.c frexp.c frexp.c frexpl.c fstat.c at-func.c \
+	fstatat.c getcwd.c getcwd-lgpl.c getdtablesize.c getlogin_r.c \
+	gettimeofday.c glob.c isnan.c isnand.c isnan.c isnanl.c \
+	lstat.c malloc.c mbrtowc.c mbsinit.c mbsrtowcs-state.c \
+	mbsrtowcs.c memchr.c memmem.c mempcpy.c memrchr.c msvc-inval.c \
+	msvc-nothrow.c open.c openat.c opendir.c rawmemchr.c readdir.c \
+	readlink.c realloc.c rename.c rewinddir.c rmdir.c setenv.c \
+	stat.c strchrnul.c strdup.c strerror.c strerror-override.c \
+	strstr.c strtok_r.c unsetenv.c
 
 # Use this preprocessor expression to decide whether #include_next works.
 # Do not rely on a 'configure'-time test for this, since the expression
@@ -1419,16 +1499,40 @@ distclean-compile:
 
 @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloca.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/at-func.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename-lgpl.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canonicalize-lgpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chdir-long.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cloexec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closedir.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirfd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname-lgpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup-safer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-hook.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-safer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdopendir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filenamecat-lgpl.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fnmatch.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fnmatch_loop.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/frexp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/frexpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstatat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd-lgpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdtablesize.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getlogin_r.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getprogname.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glob.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hard-locale.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isnan.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isnand.Po@am__quote@
@@ -1445,17 +1549,36 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsrtowcs.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memmem.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mempcpy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memrchr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-inval.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-nothrow.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-die.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-proc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opendir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe-safer.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rawmemchr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readdir.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlink.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/realloc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rename.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rewinddir.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rmdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/save-cwd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strchrnul.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strdup.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-override.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strstr.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtok_r.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsetenv.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctype-h.Po@am__quote@
 
 .c.o:
@@ -1903,6 +2026,32 @@ dirent.h: dirent.in.h $(top_builddir)/co
 @GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status
 @GL_GENERATE_ERRNO_H_FALSE@	rm -f $@
 
+# We need the following in order to create <fcntl.h> when the system
+# doesn't have one that works with the given compiler.
+fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+	$(AM_V_GEN)rm -f $@-t $@ && \
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+	      -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
+	      -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \
+	      -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \
+	      -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \
+	      -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \
+	      -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \
+	      -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \
+	      -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \
+	      -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \
+	      -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \
+	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+	      -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+	      < $(srcdir)/fcntl.in.h; \
+	} > $@-t && \
+	mv $@-t $@
+
 # We need the following in order to create <float.h> when the system
 # doesn't have one that works with the given compiler.
 @GL_GENERATE_FLOAT_H_TRUE@float.h: float.in.h $(top_builddir)/config.status
@@ -1932,6 +2081,21 @@ dirent.h: dirent.in.h $(top_builddir)/co
 @GL_GENERATE_FNMATCH_H_FALSE@fnmatch.h: $(top_builddir)/config.status
 @GL_GENERATE_FNMATCH_H_FALSE@	rm -f $@
 
+# We need the following in order to create <glob.h> when the system
+# doesn't have one that works with the given compiler.
+@GL_GENERATE_GLOB_H_TRUE@glob.h: glob.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+@GL_GENERATE_GLOB_H_TRUE@	$(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_GLOB_H_TRUE@	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_GLOB_H_TRUE@	  sed -e 's|@''HAVE_SYS_CDEFS_H''@|$(HAVE_SYS_CDEFS_H)|g' \
+@GL_GENERATE_GLOB_H_TRUE@	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+@GL_GENERATE_GLOB_H_TRUE@	      -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+@GL_GENERATE_GLOB_H_TRUE@	      -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+@GL_GENERATE_GLOB_H_TRUE@	      < $(srcdir)/glob.in.h; \
+@GL_GENERATE_GLOB_H_TRUE@	} > $@-t && \
+@GL_GENERATE_GLOB_H_TRUE@	mv -f $@-t $@
+@GL_GENERATE_GLOB_H_FALSE@glob.h: $(top_builddir)/config.status
+@GL_GENERATE_GLOB_H_FALSE@	rm -f $@
+
 # We need the following in order to create <inttypes.h> when the system
 # doesn't have one that works with the given compiler.
 inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/mempcpy.c ./gdb/gnulib/import/mempcpy.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/mempcpy.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/mempcpy.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,28 @@
+/* Copy memory area and return pointer after last written byte.
+   Copyright (C) 2003, 2007, 2009-2016 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, 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 <config.h>
+
+/* Specification.  */
+#include <string.h>
+
+/* Copy N bytes of SRC to DEST, return pointer to bytes after the
+   last written byte.  */
+void *
+mempcpy (void *dest, const void *src, size_t n)
+{
+  return (char *) memcpy (dest, src, n) + n;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/memrchr.c ./gdb/gnulib/import/memrchr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/memrchr.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/memrchr.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,161 @@
+/* memrchr -- find the last occurrence of a byte in a memory block
+
+   Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2016 Free Software
+   Foundation, Inc.
+
+   Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
+   with help from Dan Sahlin (dan@sics.se) and
+   commentary by Jim Blandy (jimb@ai.mit.edu);
+   adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
+   and implemented by Roland McGrath (roland@ai.mit.edu).
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#if defined _LIBC
+# include <memcopy.h>
+#else
+# include <config.h>
+# define reg_char char
+#endif
+
+#include <string.h>
+#include <limits.h>
+
+#undef __memrchr
+#ifdef _LIBC
+# undef memrchr
+#endif
+
+#ifndef weak_alias
+# define __memrchr memrchr
+#endif
+
+/* Search no more than N bytes of S for C.  */
+void *
+__memrchr (void const *s, int c_in, size_t n)
+{
+  /* On 32-bit hardware, choosing longword to be a 32-bit unsigned
+     long instead of a 64-bit uintmax_t tends to give better
+     performance.  On 64-bit hardware, unsigned long is generally 64
+     bits already.  Change this typedef to experiment with
+     performance.  */
+  typedef unsigned long int longword;
+
+  const unsigned char *char_ptr;
+  const longword *longword_ptr;
+  longword repeated_one;
+  longword repeated_c;
+  unsigned reg_char c;
+
+  c = (unsigned char) c_in;
+
+  /* Handle the last few bytes by reading one byte at a time.
+     Do this until CHAR_PTR is aligned on a longword boundary.  */
+  for (char_ptr = (const unsigned char *) s + n;
+       n > 0 && (size_t) char_ptr % sizeof (longword) != 0;
+       --n)
+    if (*--char_ptr == c)
+      return (void *) char_ptr;
+
+  longword_ptr = (const longword *) char_ptr;
+
+  /* All these elucidatory comments refer to 4-byte longwords,
+     but the theory applies equally well to any size longwords.  */
+
+  /* Compute auxiliary longword values:
+     repeated_one is a value which has a 1 in every byte.
+     repeated_c has c in every byte.  */
+  repeated_one = 0x01010101;
+  repeated_c = c | (c << 8);
+  repeated_c |= repeated_c << 16;
+  if (0xffffffffU < (longword) -1)
+    {
+      repeated_one |= repeated_one << 31 << 1;
+      repeated_c |= repeated_c << 31 << 1;
+      if (8 < sizeof (longword))
+        {
+          size_t i;
+
+          for (i = 64; i < sizeof (longword) * 8; i *= 2)
+            {
+              repeated_one |= repeated_one << i;
+              repeated_c |= repeated_c << i;
+            }
+        }
+    }
+
+  /* Instead of the traditional loop which tests each byte, we will test a
+     longword at a time.  The tricky part is testing if *any of the four*
+     bytes in the longword in question are equal to c.  We first use an xor
+     with repeated_c.  This reduces the task to testing whether *any of the
+     four* bytes in longword1 is zero.
+
+     We compute tmp =
+       ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7).
+     That is, we perform the following operations:
+       1. Subtract repeated_one.
+       2. & ~longword1.
+       3. & a mask consisting of 0x80 in every byte.
+     Consider what happens in each byte:
+       - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff,
+         and step 3 transforms it into 0x80.  A carry can also be propagated
+         to more significant bytes.
+       - If a byte of longword1 is nonzero, let its lowest 1 bit be at
+         position k (0 <= k <= 7); so the lowest k bits are 0.  After step 1,
+         the byte ends in a single bit of value 0 and k bits of value 1.
+         After step 2, the result is just k bits of value 1: 2^k - 1.  After
+         step 3, the result is 0.  And no carry is produced.
+     So, if longword1 has only non-zero bytes, tmp is zero.
+     Whereas if longword1 has a zero byte, call j the position of the least
+     significant zero byte.  Then the result has a zero at positions 0, ...,
+     j-1 and a 0x80 at position j.  We cannot predict the result at the more
+     significant bytes (positions j+1..3), but it does not matter since we
+     already have a non-zero bit at position 8*j+7.
+
+     So, the test whether any byte in longword1 is zero is equivalent to
+     testing whether tmp is nonzero.  */
+
+  while (n >= sizeof (longword))
+    {
+      longword longword1 = *--longword_ptr ^ repeated_c;
+
+      if ((((longword1 - repeated_one) & ~longword1)
+           & (repeated_one << 7)) != 0)
+        {
+          longword_ptr++;
+          break;
+        }
+      n -= sizeof (longword);
+    }
+
+  char_ptr = (const unsigned char *) longword_ptr;
+
+  /* At this point, we know that either n < sizeof (longword), or one of the
+     sizeof (longword) bytes starting at char_ptr is == c.  On little-endian
+     machines, we could determine the first such byte without any further
+     memory accesses, just by looking at the tmp result from the last loop
+     iteration.  But this does not work on big-endian machines.  Choose code
+     that works in both cases.  */
+
+  while (n-- > 0)
+    {
+      if (*--char_ptr == c)
+        return (void *) char_ptr;
+    }
+
+  return NULL;
+}
+#ifdef weak_alias
+weak_alias (__memrchr, memrchr)
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/msvc-inval.c ./gdb/gnulib/import/msvc-inval.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/msvc-inval.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/msvc-inval.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,129 @@
+/* Invalid parameter handler for MSVC runtime libraries.
+   Copyright (C) 2011-2016 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, 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 <config.h>
+
+/* Specification.  */
+#include "msvc-inval.h"
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \
+    && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING)
+
+/* Get _invalid_parameter_handler type and _set_invalid_parameter_handler
+   declaration.  */
+# include <stdlib.h>
+
+# if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
+
+static void __cdecl
+gl_msvc_invalid_parameter_handler (const wchar_t *expression,
+                                   const wchar_t *function,
+                                   const wchar_t *file,
+                                   unsigned int line,
+                                   uintptr_t dummy)
+{
+}
+
+# else
+
+/* Get declarations of the native Windows API functions.  */
+#  define WIN32_LEAN_AND_MEAN
+#  include <windows.h>
+
+#  if defined _MSC_VER
+
+static void __cdecl
+gl_msvc_invalid_parameter_handler (const wchar_t *expression,
+                                   const wchar_t *function,
+                                   const wchar_t *file,
+                                   unsigned int line,
+                                   uintptr_t dummy)
+{
+  RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL);
+}
+
+#  else
+
+/* An index to thread-local storage.  */
+static DWORD tls_index;
+static int tls_initialized /* = 0 */;
+
+/* Used as a fallback only.  */
+static struct gl_msvc_inval_per_thread not_per_thread;
+
+struct gl_msvc_inval_per_thread *
+gl_msvc_inval_current (void)
+{
+  if (!tls_initialized)
+    {
+      tls_index = TlsAlloc ();
+      tls_initialized = 1;
+    }
+  if (tls_index == TLS_OUT_OF_INDEXES)
+    /* TlsAlloc had failed.  */
+    return &not_per_thread;
+  else
+    {
+      struct gl_msvc_inval_per_thread *pointer =
+        (struct gl_msvc_inval_per_thread *) TlsGetValue (tls_index);
+      if (pointer == NULL)
+        {
+          /* First call.  Allocate a new 'struct gl_msvc_inval_per_thread'.  */
+          pointer =
+            (struct gl_msvc_inval_per_thread *)
+            malloc (sizeof (struct gl_msvc_inval_per_thread));
+          if (pointer == NULL)
+            /* Could not allocate memory.  Use the global storage.  */
+            pointer = &not_per_thread;
+          TlsSetValue (tls_index, pointer);
+        }
+      return pointer;
+    }
+}
+
+static void __cdecl
+gl_msvc_invalid_parameter_handler (const wchar_t *expression,
+                                   const wchar_t *function,
+                                   const wchar_t *file,
+                                   unsigned int line,
+                                   uintptr_t dummy)
+{
+  struct gl_msvc_inval_per_thread *current = gl_msvc_inval_current ();
+  if (current->restart_valid)
+    longjmp (current->restart, 1);
+  else
+    /* An invalid parameter notification from outside the gnulib code.
+       Give the caller a chance to intervene.  */
+    RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL);
+}
+
+#  endif
+
+# endif
+
+static int gl_msvc_inval_initialized /* = 0 */;
+
+void
+gl_msvc_inval_ensure_handler (void)
+{
+  if (gl_msvc_inval_initialized == 0)
+    {
+      _set_invalid_parameter_handler (gl_msvc_invalid_parameter_handler);
+      gl_msvc_inval_initialized = 1;
+    }
+}
+
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/msvc-inval.h ./gdb/gnulib/import/msvc-inval.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/msvc-inval.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/msvc-inval.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,222 @@
+/* Invalid parameter handler for MSVC runtime libraries.
+   Copyright (C) 2011-2016 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, 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 _MSVC_INVAL_H
+#define _MSVC_INVAL_H
+
+/* With MSVC runtime libraries with the "invalid parameter handler" concept,
+   functions like fprintf(), dup2(), or close() crash when the caller passes
+   an invalid argument.  But POSIX wants error codes (such as EINVAL or EBADF)
+   instead.
+   This file defines macros that turn such an invalid parameter notification
+   into a non-local exit.  An error code can then be produced at the target
+   of this exit.  You can thus write code like
+
+     TRY_MSVC_INVAL
+       {
+         <Code that can trigger an invalid parameter notification
+          but does not do 'return', 'break', 'continue', nor 'goto'.>
+       }
+     CATCH_MSVC_INVAL
+       {
+         <Code that handles an invalid parameter notification
+          but does not do 'return', 'break', 'continue', nor 'goto'.>
+       }
+     DONE_MSVC_INVAL;
+
+   This entire block expands to a single statement.
+
+   The handling of invalid parameters can be done in three ways:
+
+     * The default way, which is reasonable for programs (not libraries):
+       AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [DEFAULT_HANDLING])
+
+     * The way for libraries that make "hairy" calls (like close(-1), or
+       fclose(fp) where fileno(fp) is closed, or simply getdtablesize()):
+       AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [HAIRY_LIBRARY_HANDLING])
+
+     * The way for libraries that make no "hairy" calls:
+       AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [SANE_LIBRARY_HANDLING])
+ */
+
+#define DEFAULT_HANDLING       0
+#define HAIRY_LIBRARY_HANDLING 1
+#define SANE_LIBRARY_HANDLING  2
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \
+    && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING)
+/* A native Windows platform with the "invalid parameter handler" concept,
+   and either DEFAULT_HANDLING or HAIRY_LIBRARY_HANDLING.  */
+
+# if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
+/* Default handling.  */
+
+#  ifdef __cplusplus
+extern "C" {
+#  endif
+
+/* Ensure that the invalid parameter handler in installed that just returns.
+   Because we assume no other part of the program installs a different
+   invalid parameter handler, this solution is multithread-safe.  */
+extern void gl_msvc_inval_ensure_handler (void);
+
+#  ifdef __cplusplus
+}
+#  endif
+
+#  define TRY_MSVC_INVAL \
+     do                                                                        \
+       {                                                                       \
+         gl_msvc_inval_ensure_handler ();                                      \
+         if (1)
+#  define CATCH_MSVC_INVAL \
+         else
+#  define DONE_MSVC_INVAL \
+       }                                                                       \
+     while (0)
+
+# else
+/* Handling for hairy libraries.  */
+
+#  include <excpt.h>
+
+/* Gnulib can define its own status codes, as described in the page
+   "Raising Software Exceptions" on microsoft.com
+   <http://msdn.microsoft.com/en-us/library/het71c37.aspx>.
+   Our status codes are composed of
+     - 0xE0000000, mandatory for all user-defined status codes,
+     - 0x474E550, a API identifier ("GNU"),
+     - 0, 1, 2, ..., used to distinguish different status codes from the
+       same API.  */
+#  define STATUS_GNULIB_INVALID_PARAMETER (0xE0000000 + 0x474E550 + 0)
+
+#  if defined _MSC_VER
+/* A compiler that supports __try/__except, as described in the page
+   "try-except statement" on microsoft.com
+   <http://msdn.microsoft.com/en-us/library/s58ftw19.aspx>.
+   With __try/__except, we can use the multithread-safe exception handling.  */
+
+#   ifdef __cplusplus
+extern "C" {
+#   endif
+
+/* Ensure that the invalid parameter handler in installed that raises a
+   software exception with code STATUS_GNULIB_INVALID_PARAMETER.
+   Because we assume no other part of the program installs a different
+   invalid parameter handler, this solution is multithread-safe.  */
+extern void gl_msvc_inval_ensure_handler (void);
+
+#   ifdef __cplusplus
+}
+#   endif
+
+#   define TRY_MSVC_INVAL \
+      do                                                                       \
+        {                                                                      \
+          gl_msvc_inval_ensure_handler ();                                     \
+          __try
+#   define CATCH_MSVC_INVAL \
+          __except (GetExceptionCode () == STATUS_GNULIB_INVALID_PARAMETER     \
+                    ? EXCEPTION_EXECUTE_HANDLER                                \
+                    : EXCEPTION_CONTINUE_SEARCH)
+#   define DONE_MSVC_INVAL \
+        }                                                                      \
+      while (0)
+
+#  else
+/* Any compiler.
+   We can only use setjmp/longjmp.  */
+
+#   include <setjmp.h>
+
+#   ifdef __cplusplus
+extern "C" {
+#   endif
+
+struct gl_msvc_inval_per_thread
+{
+  /* The restart that will resume execution at the code between
+     CATCH_MSVC_INVAL and DONE_MSVC_INVAL.  It is enabled only between
+     TRY_MSVC_INVAL and CATCH_MSVC_INVAL.  */
+  jmp_buf restart;
+
+  /* Tells whether the contents of restart is valid.  */
+  int restart_valid;
+};
+
+/* Ensure that the invalid parameter handler in installed that passes
+   control to the gl_msvc_inval_restart if it is valid, or raises a
+   software exception with code STATUS_GNULIB_INVALID_PARAMETER otherwise.
+   Because we assume no other part of the program installs a different
+   invalid parameter handler, this solution is multithread-safe.  */
+extern void gl_msvc_inval_ensure_handler (void);
+
+/* Return a pointer to the per-thread data for the current thread.  */
+extern struct gl_msvc_inval_per_thread *gl_msvc_inval_current (void);
+
+#   ifdef __cplusplus
+}
+#   endif
+
+#   define TRY_MSVC_INVAL \
+      do                                                                       \
+        {                                                                      \
+          struct gl_msvc_inval_per_thread *msvc_inval_current;                 \
+          gl_msvc_inval_ensure_handler ();                                     \
+          msvc_inval_current = gl_msvc_inval_current ();                       \
+          /* First, initialize gl_msvc_inval_restart.  */                      \
+          if (setjmp (msvc_inval_current->restart) == 0)                       \
+            {                                                                  \
+              /* Then, mark it as valid.  */                                   \
+              msvc_inval_current->restart_valid = 1;
+#   define CATCH_MSVC_INVAL \
+              /* Execution completed.                                          \
+                 Mark gl_msvc_inval_restart as invalid.  */                    \
+              msvc_inval_current->restart_valid = 0;                           \
+            }                                                                  \
+          else                                                                 \
+            {                                                                  \
+              /* Execution triggered an invalid parameter notification.        \
+                 Mark gl_msvc_inval_restart as invalid.  */                    \
+              msvc_inval_current->restart_valid = 0;
+#   define DONE_MSVC_INVAL \
+            }                                                                  \
+        }                                                                      \
+      while (0)
+
+#  endif
+
+# endif
+
+#else
+/* A platform that does not need to the invalid parameter handler,
+   or when SANE_LIBRARY_HANDLING is desired.  */
+
+/* The braces here avoid GCC warnings like
+   "warning: suggest explicit braces to avoid ambiguous 'else'".  */
+# define TRY_MSVC_INVAL \
+    do                                                                         \
+      {                                                                        \
+        if (1)
+# define CATCH_MSVC_INVAL \
+        else
+# define DONE_MSVC_INVAL \
+      }                                                                        \
+    while (0)
+
+#endif
+
+#endif /* _MSVC_INVAL_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/msvc-nothrow.c ./gdb/gnulib/import/msvc-nothrow.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/msvc-nothrow.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/msvc-nothrow.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,49 @@
+/* Wrappers that don't throw invalid parameter notifications
+   with MSVC runtime libraries.
+   Copyright (C) 2011-2016 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, 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 <config.h>
+
+/* Specification.  */
+#include "msvc-nothrow.h"
+
+/* Get declarations of the native Windows API functions.  */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+#include "msvc-inval.h"
+
+#undef _get_osfhandle
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+intptr_t
+_gl_nothrow_get_osfhandle (int fd)
+{
+  intptr_t result;
+
+  TRY_MSVC_INVAL
+    {
+      result = _get_osfhandle (fd);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = (intptr_t) INVALID_HANDLE_VALUE;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/msvc-nothrow.h ./gdb/gnulib/import/msvc-nothrow.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/msvc-nothrow.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/msvc-nothrow.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,43 @@
+/* Wrappers that don't throw invalid parameter notifications
+   with MSVC runtime libraries.
+   Copyright (C) 2011-2016 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, 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 _MSVC_NOTHROW_H
+#define _MSVC_NOTHROW_H
+
+/* With MSVC runtime libraries with the "invalid parameter handler" concept,
+   functions like fprintf(), dup2(), or close() crash when the caller passes
+   an invalid argument.  But POSIX wants error codes (such as EINVAL or EBADF)
+   instead.
+   This file defines wrappers that turn such an invalid parameter notification
+   into an error code.  */
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+/* Get original declaration of _get_osfhandle.  */
+# include <io.h>
+
+# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+
+/* Override _get_osfhandle.  */
+extern intptr_t _gl_nothrow_get_osfhandle (int fd);
+#  define _get_osfhandle _gl_nothrow_get_osfhandle
+
+# endif
+
+#endif
+
+#endif /* _MSVC_NOTHROW_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/openat.c ./gdb/gnulib/import/openat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/openat.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/openat.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,286 @@
+/* provide a replacement openat function
+   Copyright (C) 2004-2016 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/>.  */
+
+/* written by Jim Meyering */
+
+/* If the user's config.h happens to include <fcntl.h>, let it include only
+   the system's <fcntl.h> here, so that orig_openat doesn't recurse to
+   rpl_openat.  */
+#define __need_system_fcntl_h
+#include <config.h>
+
+/* Get the original definition of open.  It might be defined as a macro.  */
+#include <fcntl.h>
+#include <sys/types.h>
+#undef __need_system_fcntl_h
+
+#if HAVE_OPENAT
+static int
+orig_openat (int fd, char const *filename, int flags, mode_t mode)
+{
+  return openat (fd, filename, flags, mode);
+}
+#endif
+
+/* Write "fcntl.h" here, not <fcntl.h>, otherwise OSF/1 5.1 DTK cc eliminates
+   this include because of the preliminary #include <fcntl.h> above.  */
+#include "fcntl.h"
+
+#include "openat.h"
+
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <errno.h>
+
+#if HAVE_OPENAT
+
+/* Like openat, but work around Solaris 9 bugs with trailing slash.  */
+int
+rpl_openat (int dfd, char const *filename, int flags, ...)
+{
+  mode_t mode;
+  int fd;
+
+  mode = 0;
+  if (flags & O_CREAT)
+    {
+      va_list arg;
+      va_start (arg, flags);
+
+      /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4
+         creates crashing code when 'mode_t' is smaller than 'int'.  */
+      mode = va_arg (arg, PROMOTED_MODE_T);
+
+      va_end (arg);
+    }
+
+# if OPEN_TRAILING_SLASH_BUG
+  /* If the filename ends in a slash and one of O_CREAT, O_WRONLY, O_RDWR
+     is specified, then fail.
+     Rationale: POSIX <http://www.opengroup.org/susv3/basedefs/xbd_chap04.html>
+     says that
+       "A pathname that contains at least one non-slash character and that
+        ends with one or more trailing slashes shall be resolved as if a
+        single dot character ( '.' ) were appended to the pathname."
+     and
+       "The special filename dot shall refer to the directory specified by
+        its predecessor."
+     If the named file already exists as a directory, then
+       - if O_CREAT is specified, open() must fail because of the semantics
+         of O_CREAT,
+       - if O_WRONLY or O_RDWR is specified, open() must fail because POSIX
+         <http://www.opengroup.org/susv3/functions/open.html> says that it
+         fails with errno = EISDIR in this case.
+     If the named file does not exist or does not name a directory, then
+       - if O_CREAT is specified, open() must fail since open() cannot create
+         directories,
+       - if O_WRONLY or O_RDWR is specified, open() must fail because the
+         file does not contain a '.' directory.  */
+  if (flags & (O_CREAT | O_WRONLY | O_RDWR))
+    {
+      size_t len = strlen (filename);
+      if (len > 0 && filename[len - 1] == '/')
+        {
+          errno = EISDIR;
+          return -1;
+        }
+    }
+# endif
+
+  fd = orig_openat (dfd, filename, flags, mode);
+
+# if OPEN_TRAILING_SLASH_BUG
+  /* If the filename ends in a slash and fd does not refer to a directory,
+     then fail.
+     Rationale: POSIX <http://www.opengroup.org/susv3/basedefs/xbd_chap04.html>
+     says that
+       "A pathname that contains at least one non-slash character and that
+        ends with one or more trailing slashes shall be resolved as if a
+        single dot character ( '.' ) were appended to the pathname."
+     and
+       "The special filename dot shall refer to the directory specified by
+        its predecessor."
+     If the named file without the slash is not a directory, open() must fail
+     with ENOTDIR.  */
+  if (fd >= 0)
+    {
+      /* We know len is positive, since open did not fail with ENOENT.  */
+      size_t len = strlen (filename);
+      if (filename[len - 1] == '/')
+        {
+          struct stat statbuf;
+
+          if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode))
+            {
+              close (fd);
+              errno = ENOTDIR;
+              return -1;
+            }
+        }
+    }
+# endif
+
+  return fd;
+}
+
+#else /* !HAVE_OPENAT */
+
+# include "dosname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
+# include "openat-priv.h"
+# include "save-cwd.h"
+
+/* Replacement for Solaris' openat function.
+   <http://www.google.com/search?q=openat+site:docs.sun.com>
+   First, try to simulate it via open ("/proc/self/fd/FD/FILE").
+   Failing that, simulate it by doing save_cwd/fchdir/open/restore_cwd.
+   If either the save_cwd or the restore_cwd fails (relatively unlikely),
+   then give a diagnostic and exit nonzero.
+   Otherwise, upon failure, set errno and return -1, as openat does.
+   Upon successful completion, return a file descriptor.  */
+int
+openat (int fd, char const *file, int flags, ...)
+{
+  mode_t mode = 0;
+
+  if (flags & O_CREAT)
+    {
+      va_list arg;
+      va_start (arg, flags);
+
+      /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4
+         creates crashing code when 'mode_t' is smaller than 'int'.  */
+      mode = va_arg (arg, PROMOTED_MODE_T);
+
+      va_end (arg);
+    }
+
+  return openat_permissive (fd, file, flags, mode, NULL);
+}
+
+/* Like openat (FD, FILE, FLAGS, MODE), but if CWD_ERRNO is
+   nonnull, set *CWD_ERRNO to an errno value if unable to save
+   or restore the initial working directory.  This is needed only
+   the first time remove.c's remove_dir opens a command-line
+   directory argument.
+
+   If a previous attempt to restore the current working directory
+   failed, then we must not even try to access a '.'-relative name.
+   It is the caller's responsibility not to call this function
+   in that case.  */
+
+int
+openat_permissive (int fd, char const *file, int flags, mode_t mode,
+                   int *cwd_errno)
+{
+  struct saved_cwd saved_cwd;
+  int saved_errno;
+  int err;
+  bool save_ok;
+
+  if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file))
+    return open (file, flags, mode);
+
+  {
+    char buf[OPENAT_BUFFER_SIZE];
+    char *proc_file = openat_proc_name (buf, fd, file);
+    if (proc_file)
+      {
+        int open_result = open (proc_file, flags, mode);
+        int open_errno = errno;
+        if (proc_file != buf)
+          free (proc_file);
+        /* If the syscall succeeds, or if it fails with an unexpected
+           errno value, then return right away.  Otherwise, fall through
+           and resort to using save_cwd/restore_cwd.  */
+        if (0 <= open_result || ! EXPECTED_ERRNO (open_errno))
+          {
+            errno = open_errno;
+            return open_result;
+          }
+      }
+  }
+
+  save_ok = (save_cwd (&saved_cwd) == 0);
+  if (! save_ok)
+    {
+      if (! cwd_errno)
+        openat_save_fail (errno);
+      *cwd_errno = errno;
+    }
+  if (0 <= fd && fd == saved_cwd.desc)
+    {
+      /* If saving the working directory collides with the user's
+         requested fd, then the user's fd must have been closed to
+         begin with.  */
+      free_cwd (&saved_cwd);
+      errno = EBADF;
+      return -1;
+    }
+
+  err = fchdir (fd);
+  saved_errno = errno;
+
+  if (! err)
+    {
+      err = open (file, flags, mode);
+      saved_errno = errno;
+      if (save_ok && restore_cwd (&saved_cwd) != 0)
+        {
+          if (! cwd_errno)
+            {
+              /* Don't write a message to just-created fd 2.  */
+              saved_errno = errno;
+              if (err == STDERR_FILENO)
+                close (err);
+              openat_restore_fail (saved_errno);
+            }
+          *cwd_errno = errno;
+        }
+    }
+
+  free_cwd (&saved_cwd);
+  errno = saved_errno;
+  return err;
+}
+
+/* Return true if our openat implementation must resort to
+   using save_cwd and restore_cwd.  */
+bool
+openat_needs_fchdir (void)
+{
+  bool needs_fchdir = true;
+  int fd = open ("/", O_SEARCH);
+
+  if (0 <= fd)
+    {
+      char buf[OPENAT_BUFFER_SIZE];
+      char *proc_file = openat_proc_name (buf, fd, ".");
+      if (proc_file)
+        {
+          needs_fchdir = false;
+          if (proc_file != buf)
+            free (proc_file);
+        }
+      close (fd);
+    }
+
+  return needs_fchdir;
+}
+
+#endif /* !HAVE_OPENAT */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/openat-die.c ./gdb/gnulib/import/openat-die.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/openat-die.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/openat-die.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,62 @@
+/* Report a save- or restore-cwd failure in our openat replacement and then exit.
+
+   Copyright (C) 2005-2006, 2008-2016 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/>.  */
+
+#include <config.h>
+
+#include "openat.h"
+
+#include <stdlib.h>
+
+#ifndef GNULIB_LIBPOSIX
+# include "error.h"
+#endif
+
+#include "exitfail.h"
+
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
+_Noreturn void
+openat_save_fail (int errnum)
+{
+#ifndef GNULIB_LIBPOSIX
+  error (exit_failure, errnum,
+         _("unable to record current working directory"));
+#endif
+  /* _Noreturn cannot be applied to error, since it returns
+     when its first argument is 0.  To help compilers understand that this
+     function does not return, call abort.  Also, the abort is a
+     safety feature if exit_failure is 0 (which shouldn't happen).  */
+  abort ();
+}
+
+
+/* Exit with an error about failure to restore the working directory
+   during an openat emulation.  The caller must ensure that fd 2 is
+   not a just-opened fd, even when openat_safer is not in use.  */
+
+_Noreturn void
+openat_restore_fail (int errnum)
+{
+#ifndef GNULIB_LIBPOSIX
+  error (exit_failure, errnum,
+         _("failed to return to initial working directory"));
+#endif
+
+  /* As above.  */
+  abort ();
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/openat.h ./gdb/gnulib/import/openat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/openat.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/openat.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,123 @@
+/* provide a replacement openat function
+   Copyright (C) 2004-2006, 2008-2016 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/>.  */
+
+/* written by Jim Meyering */
+
+#ifndef _GL_HEADER_OPENAT
+#define _GL_HEADER_OPENAT
+
+#include <fcntl.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <stdbool.h>
+
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+
+#if !HAVE_OPENAT
+
+int openat_permissive (int fd, char const *file, int flags, mode_t mode,
+                       int *cwd_errno);
+bool openat_needs_fchdir (void);
+
+#else
+
+# define openat_permissive(Fd, File, Flags, Mode, Cwd_errno) \
+    openat (Fd, File, Flags, Mode)
+# define openat_needs_fchdir() false
+
+#endif
+
+_Noreturn void openat_restore_fail (int);
+_Noreturn void openat_save_fail (int);
+
+/* Using these function names makes application code
+   slightly more readable than it would be with
+   fchownat (..., 0) or fchownat (..., AT_SYMLINK_NOFOLLOW).  */
+
+#if GNULIB_FCHOWNAT
+
+# ifndef FCHOWNAT_INLINE
+#  define FCHOWNAT_INLINE _GL_INLINE
+# endif
+
+FCHOWNAT_INLINE int
+chownat (int fd, char const *file, uid_t owner, gid_t group)
+{
+  return fchownat (fd, file, owner, group, 0);
+}
+
+FCHOWNAT_INLINE int
+lchownat (int fd, char const *file, uid_t owner, gid_t group)
+{
+  return fchownat (fd, file, owner, group, AT_SYMLINK_NOFOLLOW);
+}
+
+#endif
+
+#if GNULIB_FCHMODAT
+
+# ifndef FCHMODAT_INLINE
+#  define FCHMODAT_INLINE _GL_INLINE
+# endif
+
+FCHMODAT_INLINE int
+chmodat (int fd, char const *file, mode_t mode)
+{
+  return fchmodat (fd, file, mode, 0);
+}
+
+FCHMODAT_INLINE int
+lchmodat (int fd, char const *file, mode_t mode)
+{
+  return fchmodat (fd, file, mode, AT_SYMLINK_NOFOLLOW);
+}
+
+#endif
+
+#if GNULIB_STATAT
+
+# ifndef STATAT_INLINE
+#  define STATAT_INLINE _GL_INLINE
+# endif
+
+STATAT_INLINE int
+statat (int fd, char const *name, struct stat *st)
+{
+  return fstatat (fd, name, st, 0);
+}
+
+STATAT_INLINE int
+lstatat (int fd, char const *name, struct stat *st)
+{
+  return fstatat (fd, name, st, AT_SYMLINK_NOFOLLOW);
+}
+
+#endif
+
+/* For now, there are no wrappers named laccessat or leuidaccessat,
+   since gnulib doesn't support faccessat(,AT_SYMLINK_NOFOLLOW) and
+   since access rights on symlinks are of limited utility.  Likewise,
+   wrappers are not provided for accessat or euidaccessat, so as to
+   avoid dragging in -lgen on some platforms.  */
+
+_GL_INLINE_HEADER_END
+
+#endif /* _GL_HEADER_OPENAT */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/openat-priv.h ./gdb/gnulib/import/openat-priv.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/openat-priv.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/openat-priv.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,64 @@
+/* Internals for openat-like functions.
+
+   Copyright (C) 2005-2006, 2009-2016 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/>.  */
+
+/* written by Jim Meyering */
+
+#ifndef _GL_HEADER_OPENAT_PRIV
+#define _GL_HEADER_OPENAT_PRIV
+
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+
+/* Maximum number of bytes that it is safe to allocate as a single
+   array on the stack, and that is known as a compile-time constant.
+   The assumption is that we'll touch the array very quickly, or a
+   temporary very near the array, provoking an out-of-memory trap.  On
+   some operating systems, there is only one guard page for the stack,
+   and a page size can be as small as 4096 bytes.  Subtract 64 in the
+   hope that this will let the compiler touch a nearby temporary and
+   provoke a trap.  */
+#define SAFER_ALLOCA_MAX (4096 - 64)
+
+#define SAFER_ALLOCA(m) ((m) < SAFER_ALLOCA_MAX ? (m) : SAFER_ALLOCA_MAX)
+
+#if defined PATH_MAX
+# define OPENAT_BUFFER_SIZE SAFER_ALLOCA (PATH_MAX)
+#elif defined _XOPEN_PATH_MAX
+# define OPENAT_BUFFER_SIZE SAFER_ALLOCA (_XOPEN_PATH_MAX)
+#else
+# define OPENAT_BUFFER_SIZE SAFER_ALLOCA (1024)
+#endif
+
+char *openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file);
+
+/* Trying to access a BUILD_PROC_NAME file will fail on systems without
+   /proc support, and even on systems *with* ProcFS support.  Return
+   nonzero if the failure may be legitimate, e.g., because /proc is not
+   readable, or the particular .../fd/N directory is not present.  */
+#define EXPECTED_ERRNO(Errno)                   \
+  ((Errno) == ENOTDIR || (Errno) == ENOENT      \
+   || (Errno) == EPERM || (Errno) == EACCES     \
+   || (Errno) == ENOSYS /* Solaris 8 */         \
+   || (Errno) == EOPNOTSUPP /* FreeBSD */)
+
+/* Wrapper function shared among linkat and renameat.  */
+int at_func2 (int fd1, char const *file1,
+              int fd2, char const *file2,
+              int (*func) (char const *file1, char const *file2));
+
+#endif /* _GL_HEADER_OPENAT_PRIV */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/openat-proc.c ./gdb/gnulib/import/openat-proc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/openat-proc.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/openat-proc.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,134 @@
+/* Create /proc/self/fd-related names for subfiles of open directories.
+
+   Copyright (C) 2006, 2009-2016 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/>.  */
+
+/* Written by Paul Eggert.  */
+
+#include <config.h>
+
+#include "openat-priv.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#ifdef __KLIBC__
+# include <InnoTekLIBC/backend.h>
+#endif
+
+#include "intprops.h"
+
+/* Set BUF to the name of the subfile of the directory identified by
+   FD, where the subfile is named FILE.  If successful, return BUF if
+   the result fits in BUF, dynamically allocated memory otherwise.
+   Return NULL (setting errno) on error.  */
+char *
+openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file)
+{
+  char *result = buf;
+  int dirlen;
+
+  /* Make sure the caller gets ENOENT when appropriate.  */
+  if (!*file)
+    {
+      buf[0] = '\0';
+      return buf;
+    }
+
+#ifndef __KLIBC__
+# define PROC_SELF_FD_FORMAT "/proc/self/fd/%d/"
+  {
+    enum {
+      PROC_SELF_FD_DIR_SIZE_BOUND
+        = (sizeof PROC_SELF_FD_FORMAT - (sizeof "%d" - 1)
+           + INT_STRLEN_BOUND (int))
+    };
+
+    static int proc_status = 0;
+    if (! proc_status)
+      {
+        /* Set PROC_STATUS to a positive value if /proc/self/fd is
+           reliable, and a negative value otherwise.  Solaris 10
+           /proc/self/fd mishandles "..", and any file name might expand
+           to ".." after symbolic link expansion, so avoid /proc/self/fd
+           if it mishandles "..".  Solaris 10 has openat, but this
+           problem is exhibited on code that built on Solaris 8 and
+           running on Solaris 10.  */
+
+        int proc_self_fd = open ("/proc/self/fd",
+                                 O_SEARCH | O_DIRECTORY | O_NOCTTY | O_NONBLOCK);
+        if (proc_self_fd < 0)
+          proc_status = -1;
+        else
+          {
+            /* Detect whether /proc/self/fd/%i/../fd exists, where %i is the
+               number of a file descriptor open on /proc/self/fd.  On Linux,
+               that name resolves to /proc/self/fd, which was opened above.
+               However, on Solaris, it may resolve to /proc/self/fd/fd, which
+               cannot exist, since all names in /proc/self/fd are numeric.  */
+            char dotdot_buf[PROC_SELF_FD_DIR_SIZE_BOUND + sizeof "../fd" - 1];
+            sprintf (dotdot_buf, PROC_SELF_FD_FORMAT "../fd", proc_self_fd);
+            proc_status = access (dotdot_buf, F_OK) ? -1 : 1;
+            close (proc_self_fd);
+          }
+      }
+
+    if (proc_status < 0)
+      return NULL;
+    else
+      {
+        size_t bufsize = PROC_SELF_FD_DIR_SIZE_BOUND + strlen (file);
+        if (OPENAT_BUFFER_SIZE < bufsize)
+          {
+            result = malloc (bufsize);
+            if (! result)
+              return NULL;
+          }
+
+        dirlen = sprintf (result, PROC_SELF_FD_FORMAT, fd);
+      }
+  }
+#else
+  /* OS/2 kLIBC provides a function to retrieve a path from a fd.  */
+  {
+    char dir[_MAX_PATH];
+    size_t bufsize;
+
+    if (__libc_Back_ioFHToPath (fd, dir, sizeof dir))
+      return NULL;
+
+    dirlen = strlen (dir);
+    bufsize = dirlen + 1 + strlen (file) + 1; /* 1 for '/', 1 for null */
+    if (OPENAT_BUFFER_SIZE < bufsize)
+      {
+        result = malloc (bufsize);
+        if (! result)
+          return NULL;
+      }
+
+    strcpy (result, dir);
+    result[dirlen++] = '/';
+  }
+#endif
+
+  strcpy (result + dirlen, file);
+  return result;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/open.c ./gdb/gnulib/import/open.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/open.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/open.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,181 @@
+/* Open a descriptor to a file.
+   Copyright (C) 2007-2016 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/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+
+/* If the user's config.h happens to include <fcntl.h>, let it include only
+   the system's <fcntl.h> here, so that orig_open doesn't recurse to
+   rpl_open.  */
+#define __need_system_fcntl_h
+#include <config.h>
+
+/* Get the original definition of open.  It might be defined as a macro.  */
+#include <fcntl.h>
+#include <sys/types.h>
+#undef __need_system_fcntl_h
+
+static int
+orig_open (const char *filename, int flags, mode_t mode)
+{
+  return open (filename, flags, mode);
+}
+
+/* Specification.  */
+/* Write "fcntl.h" here, not <fcntl.h>, otherwise OSF/1 5.1 DTK cc eliminates
+   this include because of the preliminary #include <fcntl.h> above.  */
+#include "fcntl.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#ifndef REPLACE_OPEN_DIRECTORY
+# define REPLACE_OPEN_DIRECTORY 0
+#endif
+
+int
+open (const char *filename, int flags, ...)
+{
+  mode_t mode;
+  int fd;
+
+  mode = 0;
+  if (flags & O_CREAT)
+    {
+      va_list arg;
+      va_start (arg, flags);
+
+      /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4
+         creates crashing code when 'mode_t' is smaller than 'int'.  */
+      mode = va_arg (arg, PROMOTED_MODE_T);
+
+      va_end (arg);
+    }
+
+#if GNULIB_defined_O_NONBLOCK
+  /* The only known platform that lacks O_NONBLOCK is mingw, but it
+     also lacks named pipes and Unix sockets, which are the only two
+     file types that require non-blocking handling in open().
+     Therefore, it is safe to ignore O_NONBLOCK here.  It is handy
+     that mingw also lacks openat(), so that is also covered here.  */
+  flags &= ~O_NONBLOCK;
+#endif
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+  if (strcmp (filename, "/dev/null") == 0)
+    filename = "NUL";
+#endif
+
+#if OPEN_TRAILING_SLASH_BUG
+  /* If the filename ends in a slash and one of O_CREAT, O_WRONLY, O_RDWR
+     is specified, then fail.
+     Rationale: POSIX <http://www.opengroup.org/susv3/basedefs/xbd_chap04.html>
+     says that
+       "A pathname that contains at least one non-slash character and that
+        ends with one or more trailing slashes shall be resolved as if a
+        single dot character ( '.' ) were appended to the pathname."
+     and
+       "The special filename dot shall refer to the directory specified by
+        its predecessor."
+     If the named file already exists as a directory, then
+       - if O_CREAT is specified, open() must fail because of the semantics
+         of O_CREAT,
+       - if O_WRONLY or O_RDWR is specified, open() must fail because POSIX
+         <http://www.opengroup.org/susv3/functions/open.html> says that it
+         fails with errno = EISDIR in this case.
+     If the named file does not exist or does not name a directory, then
+       - if O_CREAT is specified, open() must fail since open() cannot create
+         directories,
+       - if O_WRONLY or O_RDWR is specified, open() must fail because the
+         file does not contain a '.' directory.  */
+  if (flags & (O_CREAT | O_WRONLY | O_RDWR))
+    {
+      size_t len = strlen (filename);
+      if (len > 0 && filename[len - 1] == '/')
+        {
+          errno = EISDIR;
+          return -1;
+        }
+    }
+#endif
+
+  fd = orig_open (filename, flags, mode);
+
+#if REPLACE_FCHDIR
+  /* Implementing fchdir and fdopendir requires the ability to open a
+     directory file descriptor.  If open doesn't support that (as on
+     mingw), we use a dummy file that behaves the same as directories
+     on Linux (ie. always reports EOF on attempts to read()), and
+     override fstat() in fchdir.c to hide the fact that we have a
+     dummy.  */
+  if (REPLACE_OPEN_DIRECTORY && fd < 0 && errno == EACCES
+      && ((flags & O_ACCMODE) == O_RDONLY
+          || (O_SEARCH != O_RDONLY && (flags & O_ACCMODE) == O_SEARCH)))
+    {
+      struct stat statbuf;
+      if (stat (filename, &statbuf) == 0 && S_ISDIR (statbuf.st_mode))
+        {
+          /* Maximum recursion depth of 1.  */
+          fd = open ("/dev/null", flags, mode);
+          if (0 <= fd)
+            fd = _gl_register_fd (fd, filename);
+        }
+      else
+        errno = EACCES;
+    }
+#endif
+
+#if OPEN_TRAILING_SLASH_BUG
+  /* If the filename ends in a slash and fd does not refer to a directory,
+     then fail.
+     Rationale: POSIX <http://www.opengroup.org/susv3/basedefs/xbd_chap04.html>
+     says that
+       "A pathname that contains at least one non-slash character and that
+        ends with one or more trailing slashes shall be resolved as if a
+        single dot character ( '.' ) were appended to the pathname."
+     and
+       "The special filename dot shall refer to the directory specified by
+        its predecessor."
+     If the named file without the slash is not a directory, open() must fail
+     with ENOTDIR.  */
+  if (fd >= 0)
+    {
+      /* We know len is positive, since open did not fail with ENOENT.  */
+      size_t len = strlen (filename);
+      if (filename[len - 1] == '/')
+        {
+          struct stat statbuf;
+
+          if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode))
+            {
+              close (fd);
+              errno = ENOTDIR;
+              return -1;
+            }
+        }
+    }
+#endif
+
+#if REPLACE_FCHDIR
+  if (!REPLACE_OPEN_DIRECTORY && 0 <= fd)
+    fd = _gl_register_fd (fd, filename);
+#endif
+
+  return fd;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/opendir.c ./gdb/gnulib/import/opendir.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/opendir.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/opendir.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,169 @@
+/* Start reading the entries of a directory.
+   Copyright (C) 2006-2016 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/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <dirent.h>
+
+#include <errno.h>
+#include <stddef.h>
+
+#if HAVE_OPENDIR
+
+/* Override opendir(), to keep track of the open file descriptors.
+   Needed because there is a function dirfd().  */
+
+#else
+
+# include <stdlib.h>
+
+# include "dirent-private.h"
+# include "filename.h"
+
+#endif
+
+#if REPLACE_FCHDIR
+# include <unistd.h>
+#endif
+
+#ifdef __KLIBC__
+# include <io.h>
+# include <fcntl.h>
+#endif
+
+DIR *
+opendir (const char *dir_name)
+{
+#if HAVE_OPENDIR
+# undef opendir
+  DIR *dirp;
+
+  dirp = opendir (dir_name);
+  if (dirp == NULL)
+    return NULL;
+
+# ifdef __KLIBC__
+  {
+    int fd = open (dir_name, O_RDONLY);
+    if (fd == -1 || _gl_register_dirp_fd (fd, dirp))
+      {
+        int saved_errno = errno;
+
+        close (fd);
+        closedir (dirp);
+
+        errno = saved_errno;
+
+        return NULL;
+      }
+  }
+# endif
+#else
+
+  char dir_name_mask[MAX_PATH + 1 + 1 + 1];
+  int status;
+  HANDLE current;
+  WIN32_FIND_DATA entry;
+  struct gl_directory *dirp;
+
+  if (dir_name[0] == '\0')
+    {
+      errno = ENOENT;
+      return NULL;
+    }
+
+  /* Make the dir_name absolute, so that we continue reading the same
+     directory if the current directory changed between this opendir()
+     call and a subsequent rewinddir() call.  */
+  if (!GetFullPathName (dir_name, MAX_PATH, dir_name_mask, NULL))
+    {
+      errno = EINVAL;
+      return NULL;
+    }
+
+  /* Append the mask.
+     "*" and "*.*" appear to be equivalent.  */
+  {
+    char *p;
+
+    p = dir_name_mask + strlen (dir_name_mask);
+    if (p > dir_name_mask && !ISSLASH (p[-1]))
+      *p++ = '\\';
+    *p++ = '*';
+    *p = '\0';
+  }
+
+  /* Start searching the directory.  */
+  status = -1;
+  current = FindFirstFile (dir_name_mask, &entry);
+  if (current == INVALID_HANDLE_VALUE)
+    {
+      switch (GetLastError ())
+        {
+        case ERROR_FILE_NOT_FOUND:
+          status = -2;
+          break;
+        case ERROR_PATH_NOT_FOUND:
+          errno = ENOENT;
+          return NULL;
+        case ERROR_DIRECTORY:
+          errno = ENOTDIR;
+          return NULL;
+        case ERROR_ACCESS_DENIED:
+          errno = EACCES;
+          return NULL;
+        default:
+          errno = EIO;
+          return NULL;
+        }
+    }
+
+  /* Allocate the result.  */
+  dirp =
+    (struct gl_directory *)
+    malloc (offsetof (struct gl_directory, dir_name_mask[0])
+            + strlen (dir_name_mask) + 1);
+  if (dirp == NULL)
+    {
+      if (current != INVALID_HANDLE_VALUE)
+        FindClose (current);
+      errno = ENOMEM;
+      return NULL;
+    }
+  dirp->status = status;
+  dirp->current = current;
+  if (status == -1)
+    memcpy (&dirp->entry, &entry, sizeof (WIN32_FIND_DATA));
+  strcpy (dirp->dir_name_mask, dir_name_mask);
+
+#endif
+
+#if REPLACE_FCHDIR
+  {
+    int fd = dirfd (dirp);
+    if (0 <= fd && _gl_register_fd (fd, dir_name) != fd)
+      {
+        int saved_errno = errno;
+        closedir (dirp);
+        errno = saved_errno;
+        return NULL;
+      }
+  }
+#endif
+
+  return dirp;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/pipe-safer.c ./gdb/gnulib/import/pipe-safer.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/pipe-safer.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/pipe-safer.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,56 @@
+/* Invoke pipe, but avoid some glitches.
+   Copyright (C) 2005-2006, 2009-2016 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/>.  */
+
+/* Written by Jim Meyering.  */
+
+#include <config.h>
+
+#include "unistd-safer.h"
+
+#include <unistd.h>
+#include <errno.h>
+
+/* Like pipe, but ensure that neither of the file descriptors is
+   STDIN_FILENO, STDOUT_FILENO, or STDERR_FILENO.  Fail with ENOSYS on
+   platforms that lack pipe.  */
+
+int
+pipe_safer (int fd[2])
+{
+#if HAVE_PIPE
+  if (pipe (fd) == 0)
+    {
+      int i;
+      for (i = 0; i < 2; i++)
+        {
+          fd[i] = fd_safer (fd[i]);
+          if (fd[i] < 0)
+            {
+              int e = errno;
+              close (fd[1 - i]);
+              errno = e;
+              return -1;
+            }
+        }
+
+      return 0;
+    }
+#else
+  errno = ENOSYS;
+#endif
+
+  return -1;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/readdir.c ./gdb/gnulib/import/readdir.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/readdir.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/readdir.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,98 @@
+/* Read the next entry of a directory.
+   Copyright (C) 2011-2016 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/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <dirent.h>
+
+#include <errno.h>
+#include <stddef.h>
+
+#include "dirent-private.h"
+
+struct dirent *
+readdir (DIR *dirp)
+{
+  char type;
+  struct dirent *result;
+
+  /* There is no need to add code to produce entries for "." and "..".
+     According to the POSIX:2008 section "4.12 Pathname Resolution"
+     <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html>
+     "." and ".." are syntactic entities.
+     POSIX also says:
+       "If entries for dot or dot-dot exist, one entry shall be returned
+        for dot and one entry shall be returned for dot-dot; otherwise,
+        they shall not be returned."  */
+
+  switch (dirp->status)
+    {
+    case -2:
+      /* End of directory already reached.  */
+      return NULL;
+    case -1:
+      break;
+    case 0:
+      if (!FindNextFile (dirp->current, &dirp->entry))
+        {
+          switch (GetLastError ())
+            {
+            case ERROR_NO_MORE_FILES:
+              dirp->status = -2;
+              return NULL;
+            default:
+              errno = EIO;
+              return NULL;
+            }
+        }
+      break;
+    default:
+      errno = dirp->status;
+      return NULL;
+    }
+
+  dirp->status = 0;
+
+  if (dirp->entry.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
+    type = DT_DIR;
+  else if (dirp->entry.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)
+    type = DT_LNK;
+  else if ((dirp->entry.dwFileAttributes
+            & ~(FILE_ATTRIBUTE_READONLY
+                | FILE_ATTRIBUTE_HIDDEN
+                | FILE_ATTRIBUTE_SYSTEM
+                | FILE_ATTRIBUTE_ARCHIVE
+                | FILE_ATTRIBUTE_NORMAL
+                | FILE_ATTRIBUTE_TEMPORARY
+                | FILE_ATTRIBUTE_SPARSE_FILE
+                | FILE_ATTRIBUTE_COMPRESSED
+                | FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
+                | FILE_ATTRIBUTE_ENCRYPTED)) == 0)
+    /* Devices like COM1, LPT1, NUL would also have the attributes 0x20 but
+       they cannot occur here.  */
+    type = DT_REG;
+  else
+    type = DT_UNKNOWN;
+
+  /* Reuse the memory of dirp->entry for the result.  */
+  result =
+    (struct dirent *)
+    ((char *) dirp->entry.cFileName - offsetof (struct dirent, d_name[0]));
+  result->d_type = type;
+
+  return result;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/realloc.c ./gdb/gnulib/import/realloc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/realloc.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/realloc.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,79 @@
+/* realloc() function that is glibc compatible.
+
+   Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2016 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/>.  */
+
+/* written by Jim Meyering and Bruno Haible */
+
+#define _GL_USE_STDLIB_ALLOC 1
+#include <config.h>
+
+/* Only the AC_FUNC_REALLOC macro defines 'realloc' already in config.h.  */
+#ifdef realloc
+# define NEED_REALLOC_GNU 1
+/* Whereas the gnulib module 'realloc-gnu' defines HAVE_REALLOC_GNU.  */
+#elif GNULIB_REALLOC_GNU && !HAVE_REALLOC_GNU
+# define NEED_REALLOC_GNU 1
+#endif
+
+/* Infer the properties of the system's malloc function.
+   The gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU.  */
+#if GNULIB_MALLOC_GNU && HAVE_MALLOC_GNU
+# define SYSTEM_MALLOC_GLIBC_COMPATIBLE 1
+#endif
+
+#include <stdlib.h>
+
+#include <errno.h>
+
+/* Change the size of an allocated block of memory P to N bytes,
+   with error checking.  If N is zero, change it to 1.  If P is NULL,
+   use malloc.  */
+
+void *
+rpl_realloc (void *p, size_t n)
+{
+  void *result;
+
+#if NEED_REALLOC_GNU
+  if (n == 0)
+    {
+      n = 1;
+
+      /* In theory realloc might fail, so don't rely on it to free.  */
+      free (p);
+      p = NULL;
+    }
+#endif
+
+  if (p == NULL)
+    {
+#if GNULIB_REALLOC_GNU && !NEED_REALLOC_GNU && !SYSTEM_MALLOC_GLIBC_COMPATIBLE
+      if (n == 0)
+        n = 1;
+#endif
+      result = malloc (n);
+    }
+  else
+    result = realloc (p, n);
+
+#if !HAVE_REALLOC_POSIX
+  if (result == NULL)
+    errno = ENOMEM;
+#endif
+
+  return result;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/rewinddir.c ./gdb/gnulib/import/rewinddir.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/rewinddir.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/rewinddir.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,49 @@
+/* Restart reading the entries of a directory from the beginning.
+   Copyright (C) 2011-2016 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/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <dirent.h>
+
+#include <errno.h>
+
+#include "dirent-private.h"
+
+void
+rewinddir (DIR *dirp)
+{
+  /* Like in closedir().  */
+  if (dirp->current != INVALID_HANDLE_VALUE)
+    FindClose (dirp->current);
+
+  /* Like in opendir().  */
+  dirp->status = -1;
+  dirp->current = FindFirstFile (dirp->dir_name_mask, &dirp->entry);
+  if (dirp->current == INVALID_HANDLE_VALUE)
+    {
+      switch (GetLastError ())
+        {
+        case ERROR_FILE_NOT_FOUND:
+          dirp->status = -2;
+          break;
+        default:
+          /* Save the error code for the next readdir() call.  */
+          dirp->status = ENOENT;
+          break;
+        }
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/save-cwd.c ./gdb/gnulib/import/save-cwd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/save-cwd.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/save-cwd.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,99 @@
+/* save-cwd.c -- Save and restore current working directory.
+
+   Copyright (C) 1995, 1997-1998, 2003-2006, 2009-2016 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/>.  */
+
+/* Written by Jim Meyering.  */
+
+#include <config.h>
+
+#include "save-cwd.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "chdir-long.h"
+#include "unistd--.h"
+#include "cloexec.h"
+
+#if GNULIB_FCNTL_SAFER
+# include "fcntl--.h"
+#else
+# define GNULIB_FCNTL_SAFER 0
+#endif
+
+/* Record the location of the current working directory in CWD so that
+   the program may change to other directories and later use restore_cwd
+   to return to the recorded location.  This function may allocate
+   space using malloc (via getcwd) or leave a file descriptor open;
+   use free_cwd to perform the necessary free or close.  Upon failure,
+   no memory is allocated, any locally opened file descriptors are
+   closed;  return non-zero -- in that case, free_cwd need not be
+   called, but doing so is ok.  Otherwise, return zero.
+
+   The _raison d'etre_ for this interface is that the working directory
+   is sometimes inaccessible, and getcwd is not robust or as efficient.
+   So, we prefer to use the open/fchdir approach, but fall back on
+   getcwd if necessary.  This module works for most cases with just
+   the getcwd-lgpl module, but to be truly robust, use the getcwd module.
+
+   Some systems lack fchdir altogether: e.g., OS/2, pre-2001 Cygwin,
+   SCO Xenix.  Also, SunOS 4 and Irix 5.3 provide the function, yet it
+   doesn't work for partitions on which auditing is enabled.  If
+   you're still using an obsolete system with these problems, please
+   send email to the maintainer of this code.  */
+
+int
+save_cwd (struct saved_cwd *cwd)
+{
+  cwd->name = NULL;
+
+  cwd->desc = open (".", O_SEARCH);
+  if (!GNULIB_FCNTL_SAFER)
+    cwd->desc = fd_safer (cwd->desc);
+  if (cwd->desc < 0)
+    {
+      cwd->name = getcwd (NULL, 0);
+      return cwd->name ? 0 : -1;
+    }
+
+  set_cloexec_flag (cwd->desc, true);
+  return 0;
+}
+
+/* Change to recorded location, CWD, in directory hierarchy.
+   Upon failure, return -1 (errno is set by chdir or fchdir).
+   Upon success, return zero.  */
+
+int
+restore_cwd (const struct saved_cwd *cwd)
+{
+  if (0 <= cwd->desc)
+    return fchdir (cwd->desc);
+  else
+    return chdir_long (cwd->name);
+}
+
+void
+free_cwd (struct saved_cwd *cwd)
+{
+  if (cwd->desc >= 0)
+    close (cwd->desc);
+  free (cwd->name);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/save-cwd.h ./gdb/gnulib/import/save-cwd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/save-cwd.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/save-cwd.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,34 @@
+/* Save and restore current working directory.
+
+   Copyright (C) 1995, 1997-1998, 2003, 2009-2016 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/>.  */
+
+/* Written by Jim Meyering.  */
+
+#ifndef SAVE_CWD_H
+# define SAVE_CWD_H 1
+
+struct saved_cwd
+  {
+    int desc;
+    char *name;
+  };
+
+int save_cwd (struct saved_cwd *cwd);
+int restore_cwd (const struct saved_cwd *cwd);
+void free_cwd (struct saved_cwd *cwd);
+
+#endif /* SAVE_CWD_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/setenv.c ./gdb/gnulib/import/setenv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/setenv.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/setenv.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,390 @@
+/* Copyright (C) 1992, 1995-2003, 2005-2016 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#if !_LIBC
+/* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
+   optimizes away the name == NULL test below.  */
+# define _GL_ARG_NONNULL(params)
+
+# define _GL_USE_STDLIB_ALLOC 1
+# include <config.h>
+#endif
+
+#include <alloca.h>
+
+/* Specification.  */
+#include <stdlib.h>
+
+#include <errno.h>
+#ifndef __set_errno
+# define __set_errno(ev) ((errno) = (ev))
+#endif
+
+#include <string.h>
+#if _LIBC || HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#if !_LIBC
+# include "malloca.h"
+#endif
+
+#if _LIBC || !HAVE_SETENV
+
+#if !_LIBC
+# define __environ      environ
+#endif
+
+#if _LIBC
+/* This lock protects against simultaneous modifications of 'environ'.  */
+# include <bits/libc-lock.h>
+__libc_lock_define_initialized (static, envlock)
+# define LOCK   __libc_lock_lock (envlock)
+# define UNLOCK __libc_lock_unlock (envlock)
+#else
+# define LOCK
+# define UNLOCK
+#endif
+
+/* In the GNU C library we must keep the namespace clean.  */
+#ifdef _LIBC
+# define setenv __setenv
+# define clearenv __clearenv
+# define tfind __tfind
+# define tsearch __tsearch
+#endif
+
+/* In the GNU C library implementation we try to be more clever and
+   allow arbitrarily many changes of the environment given that the used
+   values are from a small set.  Outside glibc this will eat up all
+   memory after a while.  */
+#if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \
+                      && defined __GNUC__)
+# define USE_TSEARCH    1
+# include <search.h>
+typedef int (*compar_fn_t) (const void *, const void *);
+
+/* This is a pointer to the root of the search tree with the known
+   values.  */
+static void *known_values;
+
+# define KNOWN_VALUE(Str) \
+  ({                                                                          \
+    void *value = tfind (Str, &known_values, (compar_fn_t) strcmp);           \
+    value != NULL ? *(char **) value : NULL;                                  \
+  })
+# define STORE_VALUE(Str) \
+  tsearch (Str, &known_values, (compar_fn_t) strcmp)
+
+#else
+# undef USE_TSEARCH
+
+# define KNOWN_VALUE(Str) NULL
+# define STORE_VALUE(Str) do { } while (0)
+
+#endif
+
+
+/* If this variable is not a null pointer we allocated the current
+   environment.  */
+static char **last_environ;
+
+
+/* This function is used by 'setenv' and 'putenv'.  The difference between
+   the two functions is that for the former must create a new string which
+   is then placed in the environment, while the argument of 'putenv'
+   must be used directly.  This is all complicated by the fact that we try
+   to reuse values once generated for a 'setenv' call since we can never
+   free the strings.  */
+int
+__add_to_environ (const char *name, const char *value, const char *combined,
+                  int replace)
+{
+  char **ep;
+  size_t size;
+  const size_t namelen = strlen (name);
+  const size_t vallen = value != NULL ? strlen (value) + 1 : 0;
+
+  LOCK;
+
+  /* We have to get the pointer now that we have the lock and not earlier
+     since another thread might have created a new environment.  */
+  ep = __environ;
+
+  size = 0;
+  if (ep != NULL)
+    {
+      for (; *ep != NULL; ++ep)
+        if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=')
+          break;
+        else
+          ++size;
+    }
+
+  if (ep == NULL || *ep == NULL)
+    {
+      char **new_environ;
+#ifdef USE_TSEARCH
+      char *new_value;
+#endif
+
+      /* We allocated this space; we can extend it.  */
+      new_environ =
+        (char **) (last_environ == NULL
+                   ? malloc ((size + 2) * sizeof (char *))
+                   : realloc (last_environ, (size + 2) * sizeof (char *)));
+      if (new_environ == NULL)
+        {
+          /* It's easier to set errno to ENOMEM than to rely on the
+             'malloc-posix' and 'realloc-posix' gnulib modules.  */
+          __set_errno (ENOMEM);
+          UNLOCK;
+          return -1;
+        }
+
+      /* If the whole entry is given add it.  */
+      if (combined != NULL)
+        /* We must not add the string to the search tree since it belongs
+           to the user.  */
+        new_environ[size] = (char *) combined;
+      else
+        {
+          /* See whether the value is already known.  */
+#ifdef USE_TSEARCH
+# ifdef _LIBC
+          new_value = (char *) alloca (namelen + 1 + vallen);
+          __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1),
+                     value, vallen);
+# else
+          new_value = (char *) malloca (namelen + 1 + vallen);
+          if (new_value == NULL)
+            {
+              __set_errno (ENOMEM);
+              UNLOCK;
+              return -1;
+            }
+          memcpy (new_value, name, namelen);
+          new_value[namelen] = '=';
+          memcpy (&new_value[namelen + 1], value, vallen);
+# endif
+
+          new_environ[size] = KNOWN_VALUE (new_value);
+          if (new_environ[size] == NULL)
+#endif
+            {
+              new_environ[size] = (char *) malloc (namelen + 1 + vallen);
+              if (new_environ[size] == NULL)
+                {
+#if defined USE_TSEARCH && !defined _LIBC
+                  freea (new_value);
+#endif
+                  __set_errno (ENOMEM);
+                  UNLOCK;
+                  return -1;
+                }
+
+#ifdef USE_TSEARCH
+              memcpy (new_environ[size], new_value, namelen + 1 + vallen);
+#else
+              memcpy (new_environ[size], name, namelen);
+              new_environ[size][namelen] = '=';
+              memcpy (&new_environ[size][namelen + 1], value, vallen);
+#endif
+              /* And save the value now.  We cannot do this when we remove
+                 the string since then we cannot decide whether it is a
+                 user string or not.  */
+              STORE_VALUE (new_environ[size]);
+            }
+#if defined USE_TSEARCH && !defined _LIBC
+          freea (new_value);
+#endif
+        }
+
+      if (__environ != last_environ)
+        memcpy ((char *) new_environ, (char *) __environ,
+                size * sizeof (char *));
+
+      new_environ[size + 1] = NULL;
+
+      last_environ = __environ = new_environ;
+    }
+  else if (replace)
+    {
+      char *np;
+
+      /* Use the user string if given.  */
+      if (combined != NULL)
+        np = (char *) combined;
+      else
+        {
+#ifdef USE_TSEARCH
+          char *new_value;
+# ifdef _LIBC
+          new_value = alloca (namelen + 1 + vallen);
+          __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1),
+                     value, vallen);
+# else
+          new_value = malloca (namelen + 1 + vallen);
+          if (new_value == NULL)
+            {
+              __set_errno (ENOMEM);
+              UNLOCK;
+              return -1;
+            }
+          memcpy (new_value, name, namelen);
+          new_value[namelen] = '=';
+          memcpy (&new_value[namelen + 1], value, vallen);
+# endif
+
+          np = KNOWN_VALUE (new_value);
+          if (np == NULL)
+#endif
+            {
+              np = (char *) malloc (namelen + 1 + vallen);
+              if (np == NULL)
+                {
+#if defined USE_TSEARCH && !defined _LIBC
+                  freea (new_value);
+#endif
+                  __set_errno (ENOMEM);
+                  UNLOCK;
+                  return -1;
+                }
+
+#ifdef USE_TSEARCH
+              memcpy (np, new_value, namelen + 1 + vallen);
+#else
+              memcpy (np, name, namelen);
+              np[namelen] = '=';
+              memcpy (&np[namelen + 1], value, vallen);
+#endif
+              /* And remember the value.  */
+              STORE_VALUE (np);
+            }
+#if defined USE_TSEARCH && !defined _LIBC
+          freea (new_value);
+#endif
+        }
+
+      *ep = np;
+    }
+
+  UNLOCK;
+
+  return 0;
+}
+
+int
+setenv (const char *name, const char *value, int replace)
+{
+  if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  return __add_to_environ (name, value, NULL, replace);
+}
+
+/* The 'clearenv' was planned to be added to POSIX.1 but probably
+   never made it.  Nevertheless the POSIX.9 standard (POSIX bindings
+   for Fortran 77) requires this function.  */
+int
+clearenv (void)
+{
+  LOCK;
+
+  if (__environ == last_environ && __environ != NULL)
+    {
+      /* We allocated this environment so we can free it.  */
+      free (__environ);
+      last_environ = NULL;
+    }
+
+  /* Clear the environment pointer removes the whole environment.  */
+  __environ = NULL;
+
+  UNLOCK;
+
+  return 0;
+}
+
+#ifdef _LIBC
+static void
+free_mem (void)
+{
+  /* Remove all traces.  */
+  clearenv ();
+
+  /* Now remove the search tree.  */
+  __tdestroy (known_values, free);
+  known_values = NULL;
+}
+text_set_element (__libc_subfreeres, free_mem);
+
+
+# undef setenv
+# undef clearenv
+weak_alias (__setenv, setenv)
+weak_alias (__clearenv, clearenv)
+#endif
+
+#endif /* _LIBC || !HAVE_SETENV */
+
+/* The rest of this file is called into use when replacing an existing
+   but buggy setenv.  Known bugs include failure to diagnose invalid
+   name, and consuming a leading '=' from value.  */
+#if HAVE_SETENV
+
+# undef setenv
+# if !HAVE_DECL_SETENV
+extern int setenv (const char *, const char *, int);
+# endif
+# define STREQ(a, b) (strcmp (a, b) == 0)
+
+int
+rpl_setenv (const char *name, const char *value, int replace)
+{
+  int result;
+  if (!name || !*name || strchr (name, '='))
+    {
+      errno = EINVAL;
+      return -1;
+    }
+  /* Call the real setenv even if replace is 0, in case implementation
+     has underlying data to update, such as when environ changes.  */
+  result = setenv (name, value, replace);
+  if (result == 0 && replace && *value == '=')
+    {
+      char *tmp = getenv (name);
+      if (!STREQ (tmp, value))
+        {
+          int saved_errno;
+          size_t len = strlen (value);
+          tmp = malloca (len + 2);
+          /* Since leading '=' is eaten, double it up.  */
+          *tmp = '=';
+          memcpy (tmp + 1, value, len + 1);
+          result = setenv (name, tmp, replace);
+          saved_errno = errno;
+          freea (tmp);
+          errno = saved_errno;
+        }
+    }
+  return result;
+}
+
+#endif /* HAVE_SETENV */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/strdup.c ./gdb/gnulib/import/strdup.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/strdup.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/strdup.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,54 @@
+/* Copyright (C) 1991, 1996-1998, 2002-2004, 2006-2007, 2009-2016 Free Software
+   Foundation, Inc.
+
+   This file is part of the GNU C Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, 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 _LIBC
+# include <config.h>
+#endif
+
+/* Get specification.  */
+#include <string.h>
+
+#include <stdlib.h>
+
+#undef __strdup
+#ifdef _LIBC
+# undef strdup
+#endif
+
+#ifndef weak_alias
+# define __strdup strdup
+#endif
+
+/* Duplicate S, returning an identical malloc'd string.  */
+char *
+__strdup (const char *s)
+{
+  size_t len = strlen (s) + 1;
+  void *new = malloc (len);
+
+  if (new == NULL)
+    return NULL;
+
+  return (char *) memcpy (new, s, len);
+}
+#ifdef libc_hidden_def
+libc_hidden_def (__strdup)
+#endif
+#ifdef weak_alias
+weak_alias (__strdup, strdup)
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/strerror.c ./gdb/gnulib/import/strerror.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/strerror.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/strerror.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,70 @@
+/* strerror.c --- POSIX compatible system error routine
+
+   Copyright (C) 2007-2016 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/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <string.h>
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "intprops.h"
+#include "strerror-override.h"
+#include "verify.h"
+
+/* Use the system functions, not the gnulib overrides in this file.  */
+#undef sprintf
+
+char *
+strerror (int n)
+#undef strerror
+{
+  static char buf[STACKBUF_LEN];
+  size_t len;
+
+  /* Cast away const, due to the historical signature of strerror;
+     callers should not be modifying the string.  */
+  const char *msg = strerror_override (n);
+  if (msg)
+    return (char *) msg;
+
+  msg = strerror (n);
+
+  /* Our strerror_r implementation might use the system's strerror
+     buffer, so all other clients of strerror have to see the error
+     copied into a buffer that we manage.  This is not thread-safe,
+     even if the system strerror is, but portable programs shouldn't
+     be using strerror if they care about thread-safety.  */
+  if (!msg || !*msg)
+    {
+      static char const fmt[] = "Unknown error %d";
+      verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n));
+      sprintf (buf, fmt, n);
+      errno = EINVAL;
+      return buf;
+    }
+
+  /* Fix STACKBUF_LEN if this ever aborts.  */
+  len = strlen (msg);
+  if (sizeof buf <= len)
+    abort ();
+
+  return memcpy (buf, msg, len + 1);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/strerror-override.c ./gdb/gnulib/import/strerror-override.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/strerror-override.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/strerror-override.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,302 @@
+/* strerror-override.c --- POSIX compatible system error routine
+
+   Copyright (C) 2010-2016 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/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2010.  */
+
+#include <config.h>
+
+#include "strerror-override.h"
+
+#include <errno.h>
+
+#if GNULIB_defined_EWINSOCK /* native Windows platforms */
+# if HAVE_WINSOCK2_H
+#  include <winsock2.h>
+# endif
+#endif
+
+/* If ERRNUM maps to an errno value defined by gnulib, return a string
+   describing the error.  Otherwise return NULL.  */
+const char *
+strerror_override (int errnum)
+{
+  /* These error messages are taken from glibc/sysdeps/gnu/errlist.c.  */
+  switch (errnum)
+    {
+#if REPLACE_STRERROR_0
+    case 0:
+      return "Success";
+#endif
+
+#if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */
+    case EINPROGRESS:
+      return "Operation now in progress";
+    case EALREADY:
+      return "Operation already in progress";
+    case ENOTSOCK:
+      return "Socket operation on non-socket";
+    case EDESTADDRREQ:
+      return "Destination address required";
+    case EMSGSIZE:
+      return "Message too long";
+    case EPROTOTYPE:
+      return "Protocol wrong type for socket";
+    case ENOPROTOOPT:
+      return "Protocol not available";
+    case EPROTONOSUPPORT:
+      return "Protocol not supported";
+    case EOPNOTSUPP:
+      return "Operation not supported";
+    case EAFNOSUPPORT:
+      return "Address family not supported by protocol";
+    case EADDRINUSE:
+      return "Address already in use";
+    case EADDRNOTAVAIL:
+      return "Cannot assign requested address";
+    case ENETDOWN:
+      return "Network is down";
+    case ENETUNREACH:
+      return "Network is unreachable";
+    case ECONNRESET:
+      return "Connection reset by peer";
+    case ENOBUFS:
+      return "No buffer space available";
+    case EISCONN:
+      return "Transport endpoint is already connected";
+    case ENOTCONN:
+      return "Transport endpoint is not connected";
+    case ETIMEDOUT:
+      return "Connection timed out";
+    case ECONNREFUSED:
+      return "Connection refused";
+    case ELOOP:
+      return "Too many levels of symbolic links";
+    case EHOSTUNREACH:
+      return "No route to host";
+    case EWOULDBLOCK:
+      return "Operation would block";
+#endif
+#if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> */
+    case ETXTBSY:
+      return "Text file busy";
+    case ENODATA:
+      return "No data available";
+    case ENOSR:
+      return "Out of streams resources";
+    case ENOSTR:
+      return "Device not a stream";
+    case ETIME:
+      return "Timer expired";
+    case EOTHER:
+      return "Other error";
+#endif
+#if GNULIB_defined_EWINSOCK /* native Windows platforms */
+    case ESOCKTNOSUPPORT:
+      return "Socket type not supported";
+    case EPFNOSUPPORT:
+      return "Protocol family not supported";
+    case ESHUTDOWN:
+      return "Cannot send after transport endpoint shutdown";
+    case ETOOMANYREFS:
+      return "Too many references: cannot splice";
+    case EHOSTDOWN:
+      return "Host is down";
+    case EPROCLIM:
+      return "Too many processes";
+    case EUSERS:
+      return "Too many users";
+    case EDQUOT:
+      return "Disk quota exceeded";
+    case ESTALE:
+      return "Stale NFS file handle";
+    case EREMOTE:
+      return "Object is remote";
+# if HAVE_WINSOCK2_H
+      /* WSA_INVALID_HANDLE maps to EBADF */
+      /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
+      /* WSA_INVALID_PARAMETER maps to EINVAL */
+    case WSA_OPERATION_ABORTED:
+      return "Overlapped operation aborted";
+    case WSA_IO_INCOMPLETE:
+      return "Overlapped I/O event object not in signaled state";
+    case WSA_IO_PENDING:
+      return "Overlapped operations will complete later";
+      /* WSAEINTR maps to EINTR */
+      /* WSAEBADF maps to EBADF */
+      /* WSAEACCES maps to EACCES */
+      /* WSAEFAULT maps to EFAULT */
+      /* WSAEINVAL maps to EINVAL */
+      /* WSAEMFILE maps to EMFILE */
+      /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
+      /* WSAEINPROGRESS maps to EINPROGRESS */
+      /* WSAEALREADY maps to EALREADY */
+      /* WSAENOTSOCK maps to ENOTSOCK */
+      /* WSAEDESTADDRREQ maps to EDESTADDRREQ */
+      /* WSAEMSGSIZE maps to EMSGSIZE */
+      /* WSAEPROTOTYPE maps to EPROTOTYPE */
+      /* WSAENOPROTOOPT maps to ENOPROTOOPT */
+      /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */
+      /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
+      /* WSAEOPNOTSUPP maps to EOPNOTSUPP */
+      /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
+      /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */
+      /* WSAEADDRINUSE maps to EADDRINUSE */
+      /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */
+      /* WSAENETDOWN maps to ENETDOWN */
+      /* WSAENETUNREACH maps to ENETUNREACH */
+      /* WSAENETRESET maps to ENETRESET */
+      /* WSAECONNABORTED maps to ECONNABORTED */
+      /* WSAECONNRESET maps to ECONNRESET */
+      /* WSAENOBUFS maps to ENOBUFS */
+      /* WSAEISCONN maps to EISCONN */
+      /* WSAENOTCONN maps to ENOTCONN */
+      /* WSAESHUTDOWN is ESHUTDOWN */
+      /* WSAETOOMANYREFS is ETOOMANYREFS */
+      /* WSAETIMEDOUT maps to ETIMEDOUT */
+      /* WSAECONNREFUSED maps to ECONNREFUSED */
+      /* WSAELOOP maps to ELOOP */
+      /* WSAENAMETOOLONG maps to ENAMETOOLONG */
+      /* WSAEHOSTDOWN is EHOSTDOWN */
+      /* WSAEHOSTUNREACH maps to EHOSTUNREACH */
+      /* WSAENOTEMPTY maps to ENOTEMPTY */
+      /* WSAEPROCLIM is EPROCLIM */
+      /* WSAEUSERS is EUSERS */
+      /* WSAEDQUOT is EDQUOT */
+      /* WSAESTALE is ESTALE */
+      /* WSAEREMOTE is EREMOTE */
+    case WSASYSNOTREADY:
+      return "Network subsystem is unavailable";
+    case WSAVERNOTSUPPORTED:
+      return "Winsock.dll version out of range";
+    case WSANOTINITIALISED:
+      return "Successful WSAStartup not yet performed";
+    case WSAEDISCON:
+      return "Graceful shutdown in progress";
+    case WSAENOMORE: case WSA_E_NO_MORE:
+      return "No more results";
+    case WSAECANCELLED: case WSA_E_CANCELLED:
+      return "Call was canceled";
+    case WSAEINVALIDPROCTABLE:
+      return "Procedure call table is invalid";
+    case WSAEINVALIDPROVIDER:
+      return "Service provider is invalid";
+    case WSAEPROVIDERFAILEDINIT:
+      return "Service provider failed to initialize";
+    case WSASYSCALLFAILURE:
+      return "System call failure";
+    case WSASERVICE_NOT_FOUND:
+      return "Service not found";
+    case WSATYPE_NOT_FOUND:
+      return "Class type not found";
+    case WSAEREFUSED:
+      return "Database query was refused";
+    case WSAHOST_NOT_FOUND:
+      return "Host not found";
+    case WSATRY_AGAIN:
+      return "Nonauthoritative host not found";
+    case WSANO_RECOVERY:
+      return "Nonrecoverable error";
+    case WSANO_DATA:
+      return "Valid name, no data record of requested type";
+      /* WSA_QOS_* omitted */
+# endif
+#endif
+
+#if GNULIB_defined_ENOMSG
+    case ENOMSG:
+      return "No message of desired type";
+#endif
+
+#if GNULIB_defined_EIDRM
+    case EIDRM:
+      return "Identifier removed";
+#endif
+
+#if GNULIB_defined_ENOLINK
+    case ENOLINK:
+      return "Link has been severed";
+#endif
+
+#if GNULIB_defined_EPROTO
+    case EPROTO:
+      return "Protocol error";
+#endif
+
+#if GNULIB_defined_EMULTIHOP
+    case EMULTIHOP:
+      return "Multihop attempted";
+#endif
+
+#if GNULIB_defined_EBADMSG
+    case EBADMSG:
+      return "Bad message";
+#endif
+
+#if GNULIB_defined_EOVERFLOW
+    case EOVERFLOW:
+      return "Value too large for defined data type";
+#endif
+
+#if GNULIB_defined_ENOTSUP
+    case ENOTSUP:
+      return "Not supported";
+#endif
+
+#if GNULIB_defined_ENETRESET
+    case ENETRESET:
+      return "Network dropped connection on reset";
+#endif
+
+#if GNULIB_defined_ECONNABORTED
+    case ECONNABORTED:
+      return "Software caused connection abort";
+#endif
+
+#if GNULIB_defined_ESTALE
+    case ESTALE:
+      return "Stale NFS file handle";
+#endif
+
+#if GNULIB_defined_EDQUOT
+    case EDQUOT:
+      return "Disk quota exceeded";
+#endif
+
+#if GNULIB_defined_ECANCELED
+    case ECANCELED:
+      return "Operation canceled";
+#endif
+
+#if GNULIB_defined_EOWNERDEAD
+    case EOWNERDEAD:
+      return "Owner died";
+#endif
+
+#if GNULIB_defined_ENOTRECOVERABLE
+    case ENOTRECOVERABLE:
+      return "State not recoverable";
+#endif
+
+#if GNULIB_defined_EILSEQ
+    case EILSEQ:
+      return "Invalid or incomplete multibyte or wide character";
+#endif
+
+    default:
+      return NULL;
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/strerror-override.h ./gdb/gnulib/import/strerror-override.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/strerror-override.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/strerror-override.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,56 @@
+/* strerror-override.h --- POSIX compatible system error routine
+
+   Copyright (C) 2010-2016 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/>.  */
+
+#ifndef _GL_STRERROR_OVERRIDE_H
+# define _GL_STRERROR_OVERRIDE_H
+
+# include <errno.h>
+# include <stddef.h>
+
+/* Reasonable buffer size that should never trigger ERANGE; if this
+   proves too small, we intentionally abort(), to remind us to fix
+   this value.  */
+# define STACKBUF_LEN 256
+
+/* If ERRNUM maps to an errno value defined by gnulib, return a string
+   describing the error.  Otherwise return NULL.  */
+# if REPLACE_STRERROR_0 \
+     || GNULIB_defined_ESOCK \
+     || GNULIB_defined_ESTREAMS \
+     || GNULIB_defined_EWINSOCK \
+     || GNULIB_defined_ENOMSG \
+     || GNULIB_defined_EIDRM \
+     || GNULIB_defined_ENOLINK \
+     || GNULIB_defined_EPROTO \
+     || GNULIB_defined_EMULTIHOP \
+     || GNULIB_defined_EBADMSG \
+     || GNULIB_defined_EOVERFLOW \
+     || GNULIB_defined_ENOTSUP \
+     || GNULIB_defined_ENETRESET \
+     || GNULIB_defined_ECONNABORTED \
+     || GNULIB_defined_ESTALE \
+     || GNULIB_defined_EDQUOT \
+     || GNULIB_defined_ECANCELED \
+     || GNULIB_defined_EOWNERDEAD \
+     || GNULIB_defined_ENOTRECOVERABLE \
+     || GNULIB_defined_EILSEQ
+extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST;
+# else
+#  define strerror_override(ignored) NULL
+# endif
+
+#endif /* _GL_STRERROR_OVERRIDE_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/unistd--.h ./gdb/gnulib/import/unistd--.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/unistd--.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/unistd--.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,32 @@
+/* Like unistd.h, but redefine some names to avoid glitches.
+
+   Copyright (C) 2005, 2009-2016 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/>.  */
+
+/* Written by Paul Eggert.  */
+
+#include <unistd.h>
+#include "unistd-safer.h"
+
+#undef dup
+#define dup dup_safer
+
+#undef pipe
+#define pipe pipe_safer
+
+#if GNULIB_PIPE2_SAFER
+# undef pipe2
+# define pipe2 pipe2_safer
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/unistd-safer.h ./gdb/gnulib/import/unistd-safer.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/unistd-safer.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/unistd-safer.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,31 @@
+/* Invoke unistd-like functions, but avoid some glitches.
+
+   Copyright (C) 2001, 2003, 2005, 2009-2016 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/>.  */
+
+/* Written by Paul Eggert and Eric Blake.  */
+
+int dup_safer (int);
+int fd_safer (int);
+int pipe_safer (int[2]);
+
+#if GNULIB_FD_SAFER_FLAG
+int dup_safer_flag (int, int);
+int fd_safer_flag (int, int);
+#endif
+
+#if GNULIB_PIPE2_SAFER
+int pipe2_safer (int[2], int);
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/unsetenv.c ./gdb/gnulib/import/unsetenv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/import/unsetenv.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gnulib/import/unsetenv.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,127 @@
+/* Copyright (C) 1992, 1995-2002, 2005-2016 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
+   optimizes away the name == NULL test below.  */
+#define _GL_ARG_NONNULL(params)
+
+#include <config.h>
+
+/* Specification.  */
+#include <stdlib.h>
+
+#include <errno.h>
+#if !_LIBC
+# define __set_errno(ev) ((errno) = (ev))
+#endif
+
+#include <string.h>
+#include <unistd.h>
+
+#if !_LIBC
+# define __environ      environ
+#endif
+
+#if _LIBC
+/* This lock protects against simultaneous modifications of 'environ'.  */
+# include <bits/libc-lock.h>
+__libc_lock_define_initialized (static, envlock)
+# define LOCK   __libc_lock_lock (envlock)
+# define UNLOCK __libc_lock_unlock (envlock)
+#else
+# define LOCK
+# define UNLOCK
+#endif
+
+/* In the GNU C library we must keep the namespace clean.  */
+#ifdef _LIBC
+# define unsetenv __unsetenv
+#endif
+
+#if _LIBC || !HAVE_UNSETENV
+
+int
+unsetenv (const char *name)
+{
+  size_t len;
+  char **ep;
+
+  if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  len = strlen (name);
+
+  LOCK;
+
+  ep = __environ;
+  while (*ep != NULL)
+    if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
+      {
+        /* Found it.  Remove this pointer by moving later ones back.  */
+        char **dp = ep;
+
+        do
+          dp[0] = dp[1];
+        while (*dp++);
+        /* Continue the loop in case NAME appears again.  */
+      }
+    else
+      ++ep;
+
+  UNLOCK;
+
+  return 0;
+}
+
+#ifdef _LIBC
+# undef unsetenv
+weak_alias (__unsetenv, unsetenv)
+#endif
+
+#else /* HAVE_UNSETENV */
+
+# undef unsetenv
+# if !HAVE_DECL_UNSETENV
+#  if VOID_UNSETENV
+extern void unsetenv (const char *);
+#  else
+extern int unsetenv (const char *);
+#  endif
+# endif
+
+/* Call the underlying unsetenv, in case there is hidden bookkeeping
+   that needs updating beyond just modifying environ.  */
+int
+rpl_unsetenv (const char *name)
+{
+  int result = 0;
+  if (!name || !*name || strchr (name, '='))
+    {
+      errno = EINVAL;
+      return -1;
+    }
+  while (getenv (name))
+# if !VOID_UNSETENV
+    result =
+# endif
+      unsetenv (name);
+  return result;
+}
+
+#endif /* HAVE_UNSETENV */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/Makefile.in ./gdb/gnulib/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/Makefile.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gnulib/Makefile.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1989-2017 Free Software Foundation, Inc.
+# Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
 # This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/update-gnulib.sh ./gdb/gnulib/update-gnulib.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnulib/update-gnulib.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gnulib/update-gnulib.sh	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
@@ -37,6 +37,8 @@ IMPORTED_GNULIB_MODULES="\
     errno \
     fnmatch-gnu \
     frexpl \
+    getcwd \
+    glob \
     inttypes \
     lstat \
     limits-h \
@@ -46,12 +48,14 @@ IMPORTED_GNULIB_MODULES="\
     rawmemchr \
     readlink \
     rename \
+    setenv \
     signal-h \
     strchrnul \
     strstr \
     strtok_r \
     sys_stat \
     unistd \
+    unsetenv \
     update-copyright \
     wchar \
     wctype-h \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnu-nat.c ./gdb/gnu-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnu-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gnu-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Interface GDB to the GNU Hurd.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -52,6 +52,8 @@ extern "C"
 #include <setjmp.h>
 #include <signal.h>
 #include <sys/ptrace.h>
+#include <elf.h>
+#include <link.h>
 
 #include "inferior.h"
 #include "symtab.h"
@@ -2143,6 +2145,11 @@ gnu_create_inferior (struct target_ops *
   pid = fork_inferior (exec_file, allargs, env, gnu_ptrace_me,
                        NULL, NULL, NULL, NULL);
 
+  /* We have something that executes now.  We'll be running through
+     the shell at this point (if startup-with-shell is true), but the
+     pid shouldn't change.  */
+  add_thread_silent (pid_to_ptid (pid));
+
   /* Attach to the now stopped child, which is actually a shell...  */
   inf_debug (inf, "attaching to child: %d", pid);
 
@@ -2162,7 +2169,8 @@ gnu_create_inferior (struct target_ops *
   thread_change_ptid (inferior_ptid,
 		      ptid_build (inf->pid, inf_pick_first_thread (), 0));
 
-  startup_inferior (START_INFERIOR_TRAPS_EXPECTED);
+  gdb_startup_inferior (pid, START_INFERIOR_TRAPS_EXPECTED);
+
   inf->pending_execs = 0;
   /* Get rid of the old shell threads.  */
   prune_threads ();
@@ -2224,7 +2232,7 @@ gnu_attach (struct target_ops *ops, cons
 
   /* We have to initialize the terminal settings now, since the code
      below might try to restore them.  */
-  target_terminal_init ();
+  target_terminal::init ();
 
   /* If the process was stopped before we attached, make it continue the next
      time the user does a continue.  */
@@ -2273,12 +2281,6 @@ gnu_detach (struct target_ops *ops, cons
   inf_child_maybe_unpush_target (ops);
 }
 
-static void
-gnu_terminal_init (struct target_ops *self)
-{
-  gdb_assert (gnu_current_inf);
-  child_terminal_init_with_pgrp (gnu_current_inf->pid);
-}
 
 static void
 gnu_stop (struct target_ops *self, ptid_t ptid)
@@ -2541,6 +2543,60 @@ gnu_xfer_memory (gdb_byte *readbuf, cons
     }
 }
 
+/* GNU does not have auxv, but we can at least fake the AT_ENTRY entry for PIE
+   binaries.  */
+static enum target_xfer_status
+gnu_xfer_auxv (gdb_byte *readbuf, const gdb_byte *writebuf,
+	       CORE_ADDR memaddr, ULONGEST len, ULONGEST *xfered_len)
+{
+  task_t task = (gnu_current_inf
+		 ? (gnu_current_inf->task
+		    ? gnu_current_inf->task->port : 0)
+		 : 0);
+  process_t proc;
+  int res;
+  kern_return_t err;
+  vm_address_t entry;
+  ElfW(auxv_t) auxv[2];
+
+  if (task == MACH_PORT_NULL)
+    return TARGET_XFER_E_IO;
+  if (writebuf != NULL)
+    return TARGET_XFER_E_IO;
+
+  if (memaddr == sizeof (auxv))
+    return TARGET_XFER_EOF;
+  if (memaddr > sizeof (auxv))
+    return TARGET_XFER_E_IO;
+
+  err = proc_task2proc (proc_server, task, &proc);
+  if (err != 0)
+    return TARGET_XFER_E_IO;
+
+  /* Get entry from proc server.  */
+  err = proc_get_entry (proc, &entry);
+  if (err != 0)
+    return TARGET_XFER_E_IO;
+
+  /* Fake auxv entry.  */
+  auxv[0].a_type = AT_ENTRY;
+  auxv[0].a_un.a_val = entry;
+  auxv[1].a_type = AT_NULL;
+  auxv[1].a_un.a_val = 0;
+
+  inf_debug (gnu_current_inf, "reading auxv %s[%s] --> %s",
+	     paddress (target_gdbarch (), memaddr), pulongest (len),
+	     host_address_to_string (readbuf));
+
+  if (memaddr + len > sizeof (auxv))
+    len = sizeof (auxv) - memaddr;
+
+  memcpy (readbuf, (gdb_byte *) &auxv + memaddr, len);
+  *xfered_len = len;
+
+  return TARGET_XFER_OK;
+}
+
 /* Target to_xfer_partial implementation.  */
 
 static enum target_xfer_status
@@ -2553,6 +2609,8 @@ gnu_xfer_partial (struct target_ops *ops
     {
     case TARGET_OBJECT_MEMORY:
       return gnu_xfer_memory (readbuf, writebuf, offset, len, xfered_len);
+    case TARGET_OBJECT_AUXV:
+      return gnu_xfer_auxv (readbuf, writebuf, offset, len, xfered_len);
     default:
       return TARGET_XFER_E_IO;
     }
@@ -2687,7 +2745,6 @@ gnu_target (void)
   t->to_wait = gnu_wait;
   t->to_xfer_partial = gnu_xfer_partial;
   t->to_find_memory_regions = gnu_find_memory_regions;
-  t->to_terminal_init = gnu_terminal_init;
   t->to_kill = gnu_kill_inferior;
   t->to_create_inferior = gnu_create_inferior;
   t->to_mourn_inferior = gnu_mourn_inferior;
@@ -2715,35 +2772,35 @@ struct cmd_list_element *set_thread_defa
 struct cmd_list_element *show_thread_default_cmd_list = NULL;
 
 static void
-set_thread_cmd (char *args, int from_tty)
+set_thread_cmd (const char *args, int from_tty)
 {
   printf_unfiltered ("\"set thread\" must be followed by the "
 		     "name of a thread property, or \"default\".\n");
 }
 
 static void
-show_thread_cmd (char *args, int from_tty)
+show_thread_cmd (const char *args, int from_tty)
 {
   printf_unfiltered ("\"show thread\" must be followed by the "
 		     "name of a thread property, or \"default\".\n");
 }
 
 static void
-set_thread_default_cmd (char *args, int from_tty)
+set_thread_default_cmd (const char *args, int from_tty)
 {
   printf_unfiltered ("\"set thread default\" must be followed "
 		     "by the name of a thread property.\n");
 }
 
 static void
-show_thread_default_cmd (char *args, int from_tty)
+show_thread_default_cmd (const char *args, int from_tty)
 {
   printf_unfiltered ("\"show thread default\" must be followed "
 		     "by the name of a thread property.\n");
 }
 
 static int
-parse_int_arg (char *args, char *cmd_prefix)
+parse_int_arg (const char *args, char *cmd_prefix)
 {
   if (args)
     {
@@ -2758,7 +2815,7 @@ parse_int_arg (char *args, char *cmd_pre
 }
 
 static int
-_parse_bool_arg (char *args, char *t_val, char *f_val, char *cmd_prefix)
+_parse_bool_arg (const char *args, char *t_val, char *f_val, char *cmd_prefix)
 {
   if (!args || strcmp (args, t_val) == 0)
     return 1;
@@ -2774,7 +2831,7 @@ _parse_bool_arg (char *args, char *t_val
   _parse_bool_arg (args, "on", "off", cmd_prefix)
 
 static void
-check_empty (char *args, char *cmd_prefix)
+check_empty (const char *args, char *cmd_prefix)
 {
   if (args)
     error (_("Garbage after \"%s\" command: `%s'"), cmd_prefix, args);
@@ -2819,13 +2876,13 @@ set_task_pause_cmd (int arg, int from_tt
 }
 
 static void
-set_task_pause_cmd (char *args, int from_tty)
+set_task_pause_cmd (const char *args, int from_tty)
 {
   set_task_pause_cmd (parse_bool_arg (args, "set task pause"), from_tty);
 }
 
 static void
-show_task_pause_cmd (char *args, int from_tty)
+show_task_pause_cmd (const char *args, int from_tty)
 {
   struct inf *inf = cur_inf ();
 
@@ -2837,14 +2894,14 @@ show_task_pause_cmd (char *args, int fro
 }
 
 static void
-set_task_detach_sc_cmd (char *args, int from_tty)
+set_task_detach_sc_cmd (const char *args, int from_tty)
 {
   cur_inf ()->detach_sc = parse_int_arg (args,
 					 "set task detach-suspend-count");
 }
 
 static void
-show_task_detach_sc_cmd (char *args, int from_tty)
+show_task_detach_sc_cmd (const char *args, int from_tty)
 {
   check_empty (args, "show task detach-suspend-count");
   printf_unfiltered ("The inferior task will be left with a "
@@ -2854,7 +2911,7 @@ show_task_detach_sc_cmd (char *args, int
 
 
 static void
-set_thread_default_pause_cmd (char *args, int from_tty)
+set_thread_default_pause_cmd (const char *args, int from_tty)
 {
   struct inf *inf = cur_inf ();
 
@@ -2863,7 +2920,7 @@ set_thread_default_pause_cmd (char *args
 }
 
 static void
-show_thread_default_pause_cmd (char *args, int from_tty)
+show_thread_default_pause_cmd (const char *args, int from_tty)
 {
   struct inf *inf = cur_inf ();
   int sc = inf->default_thread_pause_sc;
@@ -2875,7 +2932,7 @@ show_thread_default_pause_cmd (char *arg
 }
 
 static void
-set_thread_default_run_cmd (char *args, int from_tty)
+set_thread_default_run_cmd (const char *args, int from_tty)
 {
   struct inf *inf = cur_inf ();
 
@@ -2884,7 +2941,7 @@ set_thread_default_run_cmd (char *args, 
 }
 
 static void
-show_thread_default_run_cmd (char *args, int from_tty)
+show_thread_default_run_cmd (const char *args, int from_tty)
 {
   struct inf *inf = cur_inf ();
 
@@ -2894,14 +2951,14 @@ show_thread_default_run_cmd (char *args,
 }
 
 static void
-set_thread_default_detach_sc_cmd (char *args, int from_tty)
+set_thread_default_detach_sc_cmd (const char *args, int from_tty)
 {
   cur_inf ()->default_thread_detach_sc =
     parse_int_arg (args, "set thread default detach-suspend-count");
 }
 
 static void
-show_thread_default_detach_sc_cmd (char *args, int from_tty)
+show_thread_default_detach_sc_cmd (const char *args, int from_tty)
 {
   check_empty (args, "show thread default detach-suspend-count");
   printf_unfiltered ("New threads will get a detach-suspend-count of %d.\n",
@@ -2947,7 +3004,7 @@ steal_exc_port (struct proc *proc, mach_
 }
 
 static void
-set_task_exc_port_cmd (char *args, int from_tty)
+set_task_exc_port_cmd (const char *args, int from_tty)
 {
   struct inf *inf = cur_inf ();
 
@@ -2957,13 +3014,13 @@ set_task_exc_port_cmd (char *args, int f
 }
 
 static void
-set_stopped_cmd (char *args, int from_tty)
+set_stopped_cmd (const char *args, int from_tty)
 {
   cur_inf ()->stopped = _parse_bool_arg (args, "yes", "no", "set stopped");
 }
 
 static void
-show_stopped_cmd (char *args, int from_tty)
+show_stopped_cmd (const char *args, int from_tty)
 {
   struct inf *inf = active_inf ();
 
@@ -2973,7 +3030,7 @@ show_stopped_cmd (char *args, int from_t
 }
 
 static void
-set_sig_thread_cmd (char *args, int from_tty)
+set_sig_thread_cmd (const char *args, int from_tty)
 {
   struct inf *inf = cur_inf ();
 
@@ -2991,7 +3048,7 @@ set_sig_thread_cmd (char *args, int from
 }
 
 static void
-show_sig_thread_cmd (char *args, int from_tty)
+show_sig_thread_cmd (const char *args, int from_tty)
 {
   struct inf *inf = active_inf ();
 
@@ -3017,13 +3074,13 @@ set_signals_cmd (int arg, int from_tty)
 }
 
 static void
-set_signals_cmd (char *args, int from_tty)
+set_signals_cmd (const char *args, int from_tty)
 {
   set_signals_cmd(parse_bool_arg (args, "set signals"), from_tty);
 }
 
 static void
-show_signals_cmd (char *args, int from_tty)
+show_signals_cmd (const char *args, int from_tty)
 {
   struct inf *inf = cur_inf ();
 
@@ -3046,13 +3103,13 @@ set_exceptions_cmd (int arg, int from_tt
 }
 
 static void
-set_exceptions_cmd (char *args, int from_tty)
+set_exceptions_cmd (const char *args, int from_tty)
 {
   set_exceptions_cmd (parse_bool_arg (args, "set exceptions"), from_tty);
 }
 
 static void
-show_exceptions_cmd (char *args, int from_tty)
+show_exceptions_cmd (const char *args, int from_tty)
 {
   struct inf *inf = cur_inf ();
 
@@ -3065,14 +3122,14 @@ show_exceptions_cmd (char *args, int fro
 
 
 static void
-set_task_cmd (char *args, int from_tty)
+set_task_cmd (const char *args, int from_tty)
 {
   printf_unfiltered ("\"set task\" must be followed by the name"
 		     " of a task property.\n");
 }
 
 static void
-show_task_cmd (char *args, int from_tty)
+show_task_cmd (const char *args, int from_tty)
 {
   struct inf *inf = cur_inf ();
 
@@ -3100,7 +3157,7 @@ show_task_cmd (char *args, int from_tty)
 
 
 static void
-set_noninvasive_cmd (char *args, int from_tty)
+set_noninvasive_cmd (const char *args, int from_tty)
 {
   /* Invert the sense of the arg for each component.  */
   int inv_arg = parse_bool_arg (args, "set noninvasive") ? 0 : 1;
@@ -3146,31 +3203,31 @@ info_port_rights (const char *args, mach
 }
 
 static void
-info_send_rights_cmd (char *args, int from_tty)
+info_send_rights_cmd (const char *args, int from_tty)
 {
   info_port_rights (args, MACH_PORT_TYPE_SEND);
 }
 
 static void
-info_recv_rights_cmd (char *args, int from_tty)
+info_recv_rights_cmd (const char *args, int from_tty)
 {
   info_port_rights (args, MACH_PORT_TYPE_RECEIVE);
 }
 
 static void
-info_port_sets_cmd (char *args, int from_tty)
+info_port_sets_cmd (const char *args, int from_tty)
 {
   info_port_rights (args, MACH_PORT_TYPE_PORT_SET);
 }
 
 static void
-info_dead_names_cmd (char *args, int from_tty)
+info_dead_names_cmd (const char *args, int from_tty)
 {
   info_port_rights (args, MACH_PORT_TYPE_DEAD_NAME);
 }
 
 static void
-info_port_rights_cmd (char *args, int from_tty)
+info_port_rights_cmd (const char *args, int from_tty)
 {
   info_port_rights (args, ~0);
 }
@@ -3302,7 +3359,7 @@ This is the same as setting `task pause'
 
 
 static void
-set_thread_pause_cmd (char *args, int from_tty)
+set_thread_pause_cmd (const char *args, int from_tty)
 {
   struct proc *thread = cur_thread ();
   int old_sc = thread->pause_sc;
@@ -3315,7 +3372,7 @@ set_thread_pause_cmd (char *args, int fr
 }
 
 static void
-show_thread_pause_cmd (char *args, int from_tty)
+show_thread_pause_cmd (const char *args, int from_tty)
 {
   struct proc *thread = cur_thread ();
   int sc = thread->pause_sc;
@@ -3328,7 +3385,7 @@ show_thread_pause_cmd (char *args, int f
 }
 
 static void
-set_thread_run_cmd (char *args, int from_tty)
+set_thread_run_cmd (const char *args, int from_tty)
 {
   struct proc *thread = cur_thread ();
 
@@ -3336,7 +3393,7 @@ set_thread_run_cmd (char *args, int from
 }
 
 static void
-show_thread_run_cmd (char *args, int from_tty)
+show_thread_run_cmd (const char *args, int from_tty)
 {
   struct proc *thread = cur_thread ();
 
@@ -3347,14 +3404,14 @@ show_thread_run_cmd (char *args, int fro
 }
 
 static void
-set_thread_detach_sc_cmd (char *args, int from_tty)
+set_thread_detach_sc_cmd (const char *args, int from_tty)
 {
   cur_thread ()->detach_sc = parse_int_arg (args,
 					    "set thread detach-suspend-count");
 }
 
 static void
-show_thread_detach_sc_cmd (char *args, int from_tty)
+show_thread_detach_sc_cmd (const char *args, int from_tty)
 {
   struct proc *thread = cur_thread ();
 
@@ -3366,7 +3423,7 @@ show_thread_detach_sc_cmd (char *args, i
 }
 
 static void
-set_thread_exc_port_cmd (char *args, int from_tty)
+set_thread_exc_port_cmd (const char *args, int from_tty)
 {
   struct proc *thread = cur_thread ();
 
@@ -3390,7 +3447,7 @@ show_thread_cmd (char *args, int from_tt
 #endif
 
 static void
-thread_takeover_sc_cmd (char *args, int from_tty)
+thread_takeover_sc_cmd (const char *args, int from_tty)
 {
   struct proc *thread = cur_thread ();
 
@@ -3474,11 +3531,6 @@ to the thread's initial suspend-count wh
 	   &thread_cmd_list);
 }
 
-
-
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_gnu_nat;
-
 void
 _initialize_gnu_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnu-nat.h ./gdb/gnu-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnu-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gnu-nat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Common things used by the various *gnu-nat.c files
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    Written by Miles Bader <miles@gnu.ai.mit.edu>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnu-v2-abi.c ./gdb/gnu-v2-abi.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnu-v2-abi.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gnu-v2-abi.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Abstraction of GNU v2 abi.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    Contributed by Daniel Berlin <dberlin@redhat.com>
 
@@ -68,7 +68,7 @@ gnuv2_is_vtable_name (const char *name)
 static int
 gnuv2_is_operator_name (const char *name)
 {
-  return startswith (name, "operator");
+  return startswith (name, CP_OPERATOR_STR);
 }
 
 
@@ -413,8 +413,6 @@ init_gnuv2_ops (void)
   gnu_v2_abi_ops.baseclass_offset = gnuv2_baseclass_offset;
 }
 
-extern initialize_file_ftype _initialize_gnu_v2_abi; /* -Wmissing-prototypes */
-
 void
 _initialize_gnu_v2_abi (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnu-v3-abi.c ./gdb/gnu-v3-abi.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gnu-v3-abi.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gnu-v3-abi.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Abstraction of GNU v3 abi.
    Contributed by Jim Blandy <jimb@redhat.com>
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -46,7 +46,7 @@ gnuv3_is_vtable_name (const char *name)
 static int
 gnuv3_is_operator_name (const char *name)
 {
-  return startswith (name, "operator");
+  return startswith (name, CP_OPERATOR_STR);
 }
 
 
@@ -161,7 +161,7 @@ build_gdb_vtable_type (struct gdbarch *a
   /* We assumed in the allocation above that there were four fields.  */
   gdb_assert (field == (field_list + 4));
 
-  t = arch_type (arch, TYPE_CODE_STRUCT, offset, NULL);
+  t = arch_type (arch, TYPE_CODE_STRUCT, offset * TARGET_CHAR_BIT, NULL);
   TYPE_NFIELDS (t) = field - field_list;
   TYPE_FIELDS (t) = field_list;
   TYPE_TAG_NAME (t) = "gdb_gnu_v3_abi_vtable";
@@ -1024,7 +1024,7 @@ build_std_type_info_type (struct gdbarch
 
   gdb_assert (field == (field_list + 2));
 
-  t = arch_type (arch, TYPE_CODE_STRUCT, offset, NULL);
+  t = arch_type (arch, TYPE_CODE_STRUCT, offset * TARGET_CHAR_BIT, NULL);
   TYPE_NFIELDS (t) = field - field_list;
   TYPE_FIELDS (t) = field_list;
   TYPE_TAG_NAME (t) = "gdb_gnu_v3_type_info";
@@ -1358,8 +1358,6 @@ init_gnuv3_ops (void)
   gnu_v3_abi_ops.pass_by_reference = gnuv3_pass_by_reference;
 }
 
-extern initialize_file_ftype _initialize_gnu_v3_abi; /* -Wmissing-prototypes */
-
 void
 _initialize_gnu_v3_abi (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/go32-nat.c ./gdb/go32-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/go32-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/go32-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Native debugging support for Intel x86 running DJGPP.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
    Written by Robert Hoehne.
 
    This file is part of GDB.
@@ -493,7 +493,7 @@ go32_wait (struct target_ops *ops,
 static void
 fetch_register (struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   if (regno < gdbarch_fp0_regnum (gdbarch))
     regcache_raw_supply (regcache, regno,
 			 (char *) &a_tss + regno_mapping[regno].tss_ofs);
@@ -514,7 +514,7 @@ go32_fetch_registers (struct target_ops 
   else
     {
       for (regno = 0;
-	   regno < gdbarch_fp0_regnum (get_regcache_arch (regcache));
+	   regno < gdbarch_fp0_regnum (regcache->arch ());
 	   regno++)
 	fetch_register (regcache, regno);
       i387_supply_fsave (regcache, -1, &npx);
@@ -524,7 +524,7 @@ go32_fetch_registers (struct target_ops 
 static void
 store_register (const struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   if (regno < gdbarch_fp0_regnum (gdbarch))
     regcache_raw_collect (regcache, regno,
 			  (char *) &a_tss + regno_mapping[regno].tss_ofs);
@@ -546,7 +546,7 @@ go32_store_registers (struct target_ops 
     store_register (regcache, regno);
   else
     {
-      for (r = 0; r < gdbarch_fp0_regnum (get_regcache_arch (regcache)); r++)
+      for (r = 0; r < gdbarch_fp0_regnum (regcache->arch ()); r++)
 	store_register (regcache, r);
       i387_collect_fsave (regcache, -1, &npx);
     }
@@ -1061,7 +1061,7 @@ print_mem (unsigned long datum, const ch
 
 /* Display assorted information about the underlying OS.  */
 static void
-go32_sysinfo (char *arg, int from_tty)
+go32_sysinfo (const char *arg, int from_tty)
 {
   static const char test_pattern[] =
     "deadbeafdeadbeafdeadbeafdeadbeafdeadbeaf"
@@ -1658,7 +1658,7 @@ display_descriptor (unsigned type, unsig
 }
 
 static void
-go32_sldt (char *arg, int from_tty)
+go32_sldt (const char *arg, int from_tty)
 {
   struct dtr_reg gdtr;
   unsigned short ldtr = 0;
@@ -1731,7 +1731,7 @@ go32_sldt (char *arg, int from_tty)
 }
 
 static void
-go32_sgdt (char *arg, int from_tty)
+go32_sgdt (const char *arg, int from_tty)
 {
   struct dtr_reg gdtr;
   long gdt_entry = -1L;
@@ -1772,7 +1772,7 @@ go32_sgdt (char *arg, int from_tty)
 }
 
 static void
-go32_sidt (char *arg, int from_tty)
+go32_sidt (const char *arg, int from_tty)
 {
   struct dtr_reg idtr;
   long idt_entry = -1L;
@@ -1944,7 +1944,7 @@ display_ptable_entry (unsigned long entr
 }
 
 static void
-go32_pde (char *arg, int from_tty)
+go32_pde (const char *arg, int from_tty)
 {
   long pde_idx = -1, i;
 
@@ -1994,7 +1994,7 @@ display_page_table (long n, int force)
 }
 
 static void
-go32_pte (char *arg, int from_tty)
+go32_pte (const char *arg, int from_tty)
 {
   long pde_idx = -1L, i;
 
@@ -2021,7 +2021,7 @@ go32_pte (char *arg, int from_tty)
 }
 
 static void
-go32_pte_for_address (char *arg, int from_tty)
+go32_pte_for_address (const char *arg, int from_tty)
 {
   CORE_ADDR addr = 0, i;
 
@@ -2053,14 +2053,11 @@ go32_pte_for_address (char *arg, int fro
 static struct cmd_list_element *info_dos_cmdlist = NULL;
 
 static void
-go32_info_dos_command (char *args, int from_tty)
+go32_info_dos_command (const char *args, int from_tty)
 {
   help_list (info_dos_cmdlist, "info dos ", class_info, gdb_stdout);
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_go32_nat;
-
 void
 _initialize_go32_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/go-exp.c ./gdb/go-exp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/go-exp.c	2018-01-02 02:06:29.000000000 +0000
+++ ./gdb/go-exp.c	2018-01-09 02:08:07.000000000 +0000
@@ -237,7 +237,7 @@ typedef union YYSTYPE
       struct type *type;
     } typed_val_int;
     struct {
-      DOUBLEST dval;
+      gdb_byte val[16];
       struct type *type;
     } typed_val_float;
     struct stoken sval;
@@ -269,12 +269,10 @@ typedef union YYSTYPE
 /* YYSTYPE gets defined by %union.  */
 static int parse_number (struct parser_state *,
 			 const char *, int, int, YYSTYPE *);
-static int parse_go_float (struct gdbarch *gdbarch, const char *p, int len,
-			   DOUBLEST *d, struct type **t);
 
 
 /* Line 264 of yacc.c  */
-#line 278 "go-exp.c"
+#line 276 "go-exp.c"
 
 #ifdef short
 # undef short
@@ -586,13 +584,13 @@ static const yytype_int8 yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   193,   193,   194,   197,   204,   205,   210,   214,   218,
-     222,   226,   230,   234,   238,   244,   250,   257,   267,   274,
-     271,   282,   286,   289,   293,   297,   301,   307,   313,   319,
-     323,   327,   331,   335,   339,   343,   347,   351,   355,   359,
-     363,   367,   371,   375,   379,   383,   387,   391,   395,   399,
-     403,   409,   416,   425,   438,   445,   448,   454,   469,   476,
-     493,   511,   523,   529,   535,   551,   603,   605,   612,   625
+       0,   191,   191,   192,   195,   202,   203,   208,   212,   216,
+     220,   224,   228,   232,   236,   242,   248,   255,   265,   272,
+     269,   280,   284,   287,   291,   295,   299,   305,   311,   317,
+     321,   325,   329,   333,   337,   341,   345,   349,   353,   357,
+     361,   365,   369,   373,   377,   381,   385,   389,   393,   397,
+     401,   407,   414,   423,   436,   443,   446,   452,   467,   474,
+     491,   509,   521,   527,   533,   549,   601,   603,   610,   623
 };
 #endif
 
@@ -1643,7 +1641,7 @@ yyreduce:
         case 4:
 
 /* Line 1455 of yacc.c  */
-#line 198 "go-exp.y"
+#line 196 "go-exp.y"
     { write_exp_elt_opcode (pstate, OP_TYPE);
 			  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].tval));
 			  write_exp_elt_opcode (pstate, OP_TYPE); }
@@ -1652,70 +1650,70 @@ yyreduce:
   case 6:
 
 /* Line 1455 of yacc.c  */
-#line 206 "go-exp.y"
+#line 204 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_COMMA); }
     break;
 
   case 7:
 
 /* Line 1455 of yacc.c  */
-#line 211 "go-exp.y"
+#line 209 "go-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_IND); }
     break;
 
   case 8:
 
 /* Line 1455 of yacc.c  */
-#line 215 "go-exp.y"
+#line 213 "go-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_ADDR); }
     break;
 
   case 9:
 
 /* Line 1455 of yacc.c  */
-#line 219 "go-exp.y"
+#line 217 "go-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_NEG); }
     break;
 
   case 10:
 
 /* Line 1455 of yacc.c  */
-#line 223 "go-exp.y"
+#line 221 "go-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_PLUS); }
     break;
 
   case 11:
 
 /* Line 1455 of yacc.c  */
-#line 227 "go-exp.y"
+#line 225 "go-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT); }
     break;
 
   case 12:
 
 /* Line 1455 of yacc.c  */
-#line 231 "go-exp.y"
+#line 229 "go-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_COMPLEMENT); }
     break;
 
   case 13:
 
 /* Line 1455 of yacc.c  */
-#line 235 "go-exp.y"
+#line 233 "go-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_POSTINCREMENT); }
     break;
 
   case 14:
 
 /* Line 1455 of yacc.c  */
-#line 239 "go-exp.y"
+#line 237 "go-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_POSTDECREMENT); }
     break;
 
   case 15:
 
 /* Line 1455 of yacc.c  */
-#line 245 "go-exp.y"
+#line 243 "go-exp.y"
     { write_exp_elt_opcode (pstate, STRUCTOP_STRUCT);
 			  write_exp_string (pstate, (yyvsp[(3) - (3)].ssym).stoken);
 			  write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); }
@@ -1724,7 +1722,7 @@ yyreduce:
   case 16:
 
 /* Line 1455 of yacc.c  */
-#line 251 "go-exp.y"
+#line 249 "go-exp.y"
     { mark_struct_expression (pstate);
 			  write_exp_elt_opcode (pstate, STRUCTOP_STRUCT);
 			  write_exp_string (pstate, (yyvsp[(3) - (4)].ssym).stoken);
@@ -1734,7 +1732,7 @@ yyreduce:
   case 17:
 
 /* Line 1455 of yacc.c  */
-#line 258 "go-exp.y"
+#line 256 "go-exp.y"
     { struct stoken s;
 			  mark_struct_expression (pstate);
 			  write_exp_elt_opcode (pstate, STRUCTOP_STRUCT);
@@ -1747,21 +1745,21 @@ yyreduce:
   case 18:
 
 /* Line 1455 of yacc.c  */
-#line 268 "go-exp.y"
+#line 266 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_SUBSCRIPT); }
     break;
 
   case 19:
 
 /* Line 1455 of yacc.c  */
-#line 274 "go-exp.y"
+#line 272 "go-exp.y"
     { start_arglist (); }
     break;
 
   case 20:
 
 /* Line 1455 of yacc.c  */
-#line 276 "go-exp.y"
+#line 274 "go-exp.y"
     { write_exp_elt_opcode (pstate, OP_FUNCALL);
 			  write_exp_elt_longcst (pstate,
 						 (LONGEST) end_arglist ());
@@ -1771,35 +1769,35 @@ yyreduce:
   case 21:
 
 /* Line 1455 of yacc.c  */
-#line 283 "go-exp.y"
+#line 281 "go-exp.y"
     { start_arglist (); }
     break;
 
   case 23:
 
 /* Line 1455 of yacc.c  */
-#line 290 "go-exp.y"
+#line 288 "go-exp.y"
     { arglist_len = 1; }
     break;
 
   case 24:
 
 /* Line 1455 of yacc.c  */
-#line 294 "go-exp.y"
+#line 292 "go-exp.y"
     { arglist_len++; }
     break;
 
   case 25:
 
 /* Line 1455 of yacc.c  */
-#line 298 "go-exp.y"
+#line 296 "go-exp.y"
     { (yyval.lval) = end_arglist () - 1; }
     break;
 
   case 26:
 
 /* Line 1455 of yacc.c  */
-#line 302 "go-exp.y"
+#line 300 "go-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_MEMVAL);
 			  write_exp_elt_type (pstate, (yyvsp[(2) - (4)].tval));
 			  write_exp_elt_opcode (pstate, UNOP_MEMVAL); }
@@ -1808,7 +1806,7 @@ yyreduce:
   case 27:
 
 /* Line 1455 of yacc.c  */
-#line 308 "go-exp.y"
+#line 306 "go-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_CAST);
 			  write_exp_elt_type (pstate, (yyvsp[(1) - (4)].tval));
 			  write_exp_elt_opcode (pstate, UNOP_CAST); }
@@ -1817,161 +1815,161 @@ yyreduce:
   case 28:
 
 /* Line 1455 of yacc.c  */
-#line 314 "go-exp.y"
+#line 312 "go-exp.y"
     { }
     break;
 
   case 29:
 
 /* Line 1455 of yacc.c  */
-#line 320 "go-exp.y"
+#line 318 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_REPEAT); }
     break;
 
   case 30:
 
 /* Line 1455 of yacc.c  */
-#line 324 "go-exp.y"
+#line 322 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_MUL); }
     break;
 
   case 31:
 
 /* Line 1455 of yacc.c  */
-#line 328 "go-exp.y"
+#line 326 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_DIV); }
     break;
 
   case 32:
 
 /* Line 1455 of yacc.c  */
-#line 332 "go-exp.y"
+#line 330 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_REM); }
     break;
 
   case 33:
 
 /* Line 1455 of yacc.c  */
-#line 336 "go-exp.y"
+#line 334 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_ADD); }
     break;
 
   case 34:
 
 /* Line 1455 of yacc.c  */
-#line 340 "go-exp.y"
+#line 338 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_SUB); }
     break;
 
   case 35:
 
 /* Line 1455 of yacc.c  */
-#line 344 "go-exp.y"
+#line 342 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LSH); }
     break;
 
   case 36:
 
 /* Line 1455 of yacc.c  */
-#line 348 "go-exp.y"
+#line 346 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_RSH); }
     break;
 
   case 37:
 
 /* Line 1455 of yacc.c  */
-#line 352 "go-exp.y"
+#line 350 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_EQUAL); }
     break;
 
   case 38:
 
 /* Line 1455 of yacc.c  */
-#line 356 "go-exp.y"
+#line 354 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_NOTEQUAL); }
     break;
 
   case 39:
 
 /* Line 1455 of yacc.c  */
-#line 360 "go-exp.y"
+#line 358 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LEQ); }
     break;
 
   case 40:
 
 /* Line 1455 of yacc.c  */
-#line 364 "go-exp.y"
+#line 362 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_GEQ); }
     break;
 
   case 41:
 
 /* Line 1455 of yacc.c  */
-#line 368 "go-exp.y"
+#line 366 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LESS); }
     break;
 
   case 42:
 
 /* Line 1455 of yacc.c  */
-#line 372 "go-exp.y"
+#line 370 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_GTR); }
     break;
 
   case 43:
 
 /* Line 1455 of yacc.c  */
-#line 376 "go-exp.y"
+#line 374 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_AND); }
     break;
 
   case 44:
 
 /* Line 1455 of yacc.c  */
-#line 380 "go-exp.y"
+#line 378 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_XOR); }
     break;
 
   case 45:
 
 /* Line 1455 of yacc.c  */
-#line 384 "go-exp.y"
+#line 382 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_IOR); }
     break;
 
   case 46:
 
 /* Line 1455 of yacc.c  */
-#line 388 "go-exp.y"
+#line 386 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LOGICAL_AND); }
     break;
 
   case 47:
 
 /* Line 1455 of yacc.c  */
-#line 392 "go-exp.y"
+#line 390 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LOGICAL_OR); }
     break;
 
   case 48:
 
 /* Line 1455 of yacc.c  */
-#line 396 "go-exp.y"
+#line 394 "go-exp.y"
     { write_exp_elt_opcode (pstate, TERNOP_COND); }
     break;
 
   case 49:
 
 /* Line 1455 of yacc.c  */
-#line 400 "go-exp.y"
+#line 398 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_ASSIGN); }
     break;
 
   case 50:
 
 /* Line 1455 of yacc.c  */
-#line 404 "go-exp.y"
+#line 402 "go-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_ASSIGN_MODIFY);
 			  write_exp_elt_opcode (pstate, (yyvsp[(2) - (3)].opcode));
 			  write_exp_elt_opcode (pstate, BINOP_ASSIGN_MODIFY); }
@@ -1980,7 +1978,7 @@ yyreduce:
   case 51:
 
 /* Line 1455 of yacc.c  */
-#line 410 "go-exp.y"
+#line 408 "go-exp.y"
     { write_exp_elt_opcode (pstate, OP_LONG);
 			  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].typed_val_int).type);
 			  write_exp_elt_longcst (pstate, (LONGEST)((yyvsp[(1) - (1)].typed_val_int).val));
@@ -1990,7 +1988,7 @@ yyreduce:
   case 52:
 
 /* Line 1455 of yacc.c  */
-#line 417 "go-exp.y"
+#line 415 "go-exp.y"
     {
 			  struct stoken_vector vec;
 			  vec.len = 1;
@@ -2002,7 +2000,7 @@ yyreduce:
   case 53:
 
 /* Line 1455 of yacc.c  */
-#line 426 "go-exp.y"
+#line 424 "go-exp.y"
     { YYSTYPE val;
 			  parse_number (pstate, (yyvsp[(1) - (1)].ssym).stoken.ptr,
 					(yyvsp[(1) - (1)].ssym).stoken.length, 0, &val);
@@ -2017,17 +2015,17 @@ yyreduce:
   case 54:
 
 /* Line 1455 of yacc.c  */
-#line 439 "go-exp.y"
-    { write_exp_elt_opcode (pstate, OP_DOUBLE);
+#line 437 "go-exp.y"
+    { write_exp_elt_opcode (pstate, OP_FLOAT);
 			  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].typed_val_float).type);
-			  write_exp_elt_dblcst (pstate, (yyvsp[(1) - (1)].typed_val_float).dval);
-			  write_exp_elt_opcode (pstate, OP_DOUBLE); }
+			  write_exp_elt_floatcst (pstate, (yyvsp[(1) - (1)].typed_val_float).val);
+			  write_exp_elt_opcode (pstate, OP_FLOAT); }
     break;
 
   case 56:
 
 /* Line 1455 of yacc.c  */
-#line 449 "go-exp.y"
+#line 447 "go-exp.y"
     {
 			  write_dollar_variable (pstate, (yyvsp[(1) - (1)].sval));
 			}
@@ -2036,7 +2034,7 @@ yyreduce:
   case 57:
 
 /* Line 1455 of yacc.c  */
-#line 455 "go-exp.y"
+#line 453 "go-exp.y"
     {
 			  /* TODO(dje): Go objects in structs.  */
 			  write_exp_elt_opcode (pstate, OP_LONG);
@@ -2054,7 +2052,7 @@ yyreduce:
   case 58:
 
 /* Line 1455 of yacc.c  */
-#line 470 "go-exp.y"
+#line 468 "go-exp.y"
     {
 			  /* TODO(dje): Go objects in structs.  */
 			  write_exp_elt_opcode (pstate, UNOP_SIZEOF);
@@ -2064,7 +2062,7 @@ yyreduce:
   case 59:
 
 /* Line 1455 of yacc.c  */
-#line 477 "go-exp.y"
+#line 475 "go-exp.y"
     {
 			  /* We copy the string here, and not in the
 			     lexer, to guarantee that we do not leak a
@@ -2085,7 +2083,7 @@ yyreduce:
   case 60:
 
 /* Line 1455 of yacc.c  */
-#line 494 "go-exp.y"
+#line 492 "go-exp.y"
     {
 			  /* Note that we NUL-terminate here, but just
 			     for convenience.  */
@@ -2106,7 +2104,7 @@ yyreduce:
   case 61:
 
 /* Line 1455 of yacc.c  */
-#line 512 "go-exp.y"
+#line 510 "go-exp.y"
     {
 			  int i;
 
@@ -2121,7 +2119,7 @@ yyreduce:
   case 62:
 
 /* Line 1455 of yacc.c  */
-#line 524 "go-exp.y"
+#line 522 "go-exp.y"
     { write_exp_elt_opcode (pstate, OP_BOOL);
 			  write_exp_elt_longcst (pstate, (LONGEST) (yyvsp[(1) - (1)].lval));
 			  write_exp_elt_opcode (pstate, OP_BOOL); }
@@ -2130,7 +2128,7 @@ yyreduce:
   case 63:
 
 /* Line 1455 of yacc.c  */
-#line 530 "go-exp.y"
+#line 528 "go-exp.y"
     { write_exp_elt_opcode (pstate, OP_BOOL);
 			  write_exp_elt_longcst (pstate, (LONGEST) (yyvsp[(1) - (1)].lval));
 			  write_exp_elt_opcode (pstate, OP_BOOL); }
@@ -2139,7 +2137,7 @@ yyreduce:
   case 64:
 
 /* Line 1455 of yacc.c  */
-#line 536 "go-exp.y"
+#line 534 "go-exp.y"
     { struct symbol *sym = (yyvsp[(1) - (2)].ssym).sym.symbol;
 
 			  if (sym == NULL
@@ -2158,7 +2156,7 @@ yyreduce:
   case 65:
 
 /* Line 1455 of yacc.c  */
-#line 552 "go-exp.y"
+#line 550 "go-exp.y"
     { struct block_symbol sym = (yyvsp[(1) - (1)].ssym).sym;
 
 			  if (sym.symbol)
@@ -2205,21 +2203,21 @@ yyreduce:
   case 66:
 
 /* Line 1455 of yacc.c  */
-#line 604 "go-exp.y"
+#line 602 "go-exp.y"
     { (yyval.tval) = lookup_pointer_type ((yyvsp[(2) - (2)].tval)); }
     break;
 
   case 67:
 
 /* Line 1455 of yacc.c  */
-#line 606 "go-exp.y"
+#line 604 "go-exp.y"
     { (yyval.tval) = (yyvsp[(1) - (1)].tsym).type; }
     break;
 
   case 68:
 
 /* Line 1455 of yacc.c  */
-#line 613 "go-exp.y"
+#line 611 "go-exp.y"
     { (yyval.tval) = builtin_go_type (parse_gdbarch (pstate))
 			    ->builtin_uint8; }
     break;
@@ -2227,7 +2225,7 @@ yyreduce:
 
 
 /* Line 1455 of yacc.c  */
-#line 2232 "go-exp.c"
+#line 2230 "go-exp.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2439,26 +2437,8 @@ yyreturn:
 
 
 /* Line 1675 of yacc.c  */
-#line 635 "go-exp.y"
-
+#line 633 "go-exp.y"
 
-/* Wrapper on parse_c_float to get the type right for Go.  */
-
-static int
-parse_go_float (struct gdbarch *gdbarch, const char *p, int len,
-		DOUBLEST *d, struct type **t)
-{
-  int result = parse_c_float (gdbarch, p, len, d, t);
-  const struct builtin_type *builtin_types = builtin_type (gdbarch);
-  const struct builtin_go_type *builtin_go_types = builtin_go_type (gdbarch);
-
-  if (*t == builtin_types->builtin_float)
-    *t = builtin_go_types->builtin_float32;
-  else if (*t == builtin_types->builtin_double)
-    *t = builtin_go_types->builtin_float64;
-
-  return result;
-}
 
 /* Take care of parsing a number (anything that starts with a digit).
    Set yylval and return the token type; update lexptr.
@@ -2496,10 +2476,34 @@ parse_number (struct parser_state *par_s
 
   if (parsed_float)
     {
-      if (! parse_go_float (parse_gdbarch (par_state), p, len,
-			    &putithere->typed_val_float.dval,
-			    &putithere->typed_val_float.type))
-	return ERROR;
+      const struct builtin_go_type *builtin_go_types
+	= builtin_go_type (parse_gdbarch (par_state));
+
+      /* Handle suffixes: 'f' for float32, 'l' for long double.
+	 FIXME: This appears to be an extension -- do we want this?  */
+      if (len >= 1 && tolower (p[len - 1]) == 'f')
+	{
+	  putithere->typed_val_float.type
+	    = builtin_go_types->builtin_float32;
+	  len--;
+	}
+      else if (len >= 1 && tolower (p[len - 1]) == 'l')
+	{
+	  putithere->typed_val_float.type
+	    = parse_type (par_state)->builtin_long_double;
+	  len--;
+	}
+      /* Default type for floating-point literals is float64.  */
+      else
+        {
+	  putithere->typed_val_float.type
+	    = builtin_go_types->builtin_float64;
+        }
+
+      if (!parse_float (p, len,
+			putithere->typed_val_float.type,
+			putithere->typed_val_float.val))
+        return ERROR;
       return FLOAT;
     }
 
@@ -3105,7 +3109,7 @@ static int popping;
 
 /* Temporary storage for yylex; this holds symbol names as they are
    built up.  */
-static struct obstack name_obstack;
+static auto_obstack name_obstack;
 
 /* Build "package.name" in name_obstack.
    For convenience of the caller, the name is NUL-terminated,
@@ -3117,7 +3121,7 @@ build_packaged_name (const char *package
 {
   struct stoken result;
 
-  obstack_free (&name_obstack, obstack_base (&name_obstack));
+  name_obstack.clear ();
   obstack_grow (&name_obstack, package, package_len);
   obstack_grow_str (&name_obstack, ".");
   obstack_grow (&name_obstack, name, name_len);
@@ -3368,18 +3372,13 @@ yylex (void)
 int
 go_parse (struct parser_state *par_state)
 {
-  int result;
-  struct cleanup *back_to;
-
   /* Setting up the parser state.  */
+  scoped_restore pstate_restore = make_scoped_restore (&pstate);
   gdb_assert (par_state != NULL);
   pstate = par_state;
 
-  back_to = make_cleanup (null_cleanup, NULL);
-
   scoped_restore restore_yydebug = make_scoped_restore (&yydebug,
 							parser_debug);
-  make_cleanup_clear_parser_state (&pstate);
 
   /* Initialize some state used by the lexer.  */
   last_was_structop = 0;
@@ -3387,12 +3386,9 @@ go_parse (struct parser_state *par_state
 
   VEC_free (token_and_value, token_fifo);
   popping = 0;
-  obstack_init (&name_obstack);
-  make_cleanup_obstack_free (&name_obstack);
+  name_obstack.clear ();
 
-  result = yyparse ();
-  do_cleanups (back_to);
-  return result;
+  return yyparse ();
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/go-exp.y ./gdb/go-exp.y
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/go-exp.y	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/go-exp.y	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* YACC parser for Go expressions, for GDB.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -97,7 +97,7 @@ void yyerror (const char *);
       struct type *type;
     } typed_val_int;
     struct {
-      DOUBLEST dval;
+      gdb_byte val[16];
       struct type *type;
     } typed_val_float;
     struct stoken sval;
@@ -115,8 +115,6 @@ void yyerror (const char *);
 /* YYSTYPE gets defined by %union.  */
 static int parse_number (struct parser_state *,
 			 const char *, int, int, YYSTYPE *);
-static int parse_go_float (struct gdbarch *gdbarch, const char *p, int len,
-			   DOUBLEST *d, struct type **t);
 %}
 
 %type <voidval> exp exp1 type_exp start variable lcurly
@@ -436,10 +434,10 @@ exp	:	NAME_OR_INT
 
 
 exp	:	FLOAT
-			{ write_exp_elt_opcode (pstate, OP_DOUBLE);
+			{ write_exp_elt_opcode (pstate, OP_FLOAT);
 			  write_exp_elt_type (pstate, $1.type);
-			  write_exp_elt_dblcst (pstate, $1.dval);
-			  write_exp_elt_opcode (pstate, OP_DOUBLE); }
+			  write_exp_elt_floatcst (pstate, $1.val);
+			  write_exp_elt_opcode (pstate, OP_FLOAT); }
 	;
 
 exp	:	variable
@@ -634,24 +632,6 @@ name_not_typename
 
 %%
 
-/* Wrapper on parse_c_float to get the type right for Go.  */
-
-static int
-parse_go_float (struct gdbarch *gdbarch, const char *p, int len,
-		DOUBLEST *d, struct type **t)
-{
-  int result = parse_c_float (gdbarch, p, len, d, t);
-  const struct builtin_type *builtin_types = builtin_type (gdbarch);
-  const struct builtin_go_type *builtin_go_types = builtin_go_type (gdbarch);
-
-  if (*t == builtin_types->builtin_float)
-    *t = builtin_go_types->builtin_float32;
-  else if (*t == builtin_types->builtin_double)
-    *t = builtin_go_types->builtin_float64;
-
-  return result;
-}
-
 /* Take care of parsing a number (anything that starts with a digit).
    Set yylval and return the token type; update lexptr.
    LEN is the number of characters in it.  */
@@ -688,10 +668,34 @@ parse_number (struct parser_state *par_s
 
   if (parsed_float)
     {
-      if (! parse_go_float (parse_gdbarch (par_state), p, len,
-			    &putithere->typed_val_float.dval,
-			    &putithere->typed_val_float.type))
-	return ERROR;
+      const struct builtin_go_type *builtin_go_types
+	= builtin_go_type (parse_gdbarch (par_state));
+
+      /* Handle suffixes: 'f' for float32, 'l' for long double.
+	 FIXME: This appears to be an extension -- do we want this?  */
+      if (len >= 1 && tolower (p[len - 1]) == 'f')
+	{
+	  putithere->typed_val_float.type
+	    = builtin_go_types->builtin_float32;
+	  len--;
+	}
+      else if (len >= 1 && tolower (p[len - 1]) == 'l')
+	{
+	  putithere->typed_val_float.type
+	    = parse_type (par_state)->builtin_long_double;
+	  len--;
+	}
+      /* Default type for floating-point literals is float64.  */
+      else
+        {
+	  putithere->typed_val_float.type
+	    = builtin_go_types->builtin_float64;
+        }
+
+      if (!parse_float (p, len,
+			putithere->typed_val_float.type,
+			putithere->typed_val_float.val))
+        return ERROR;
       return FLOAT;
     }
 
@@ -1297,7 +1301,7 @@ static int popping;
 
 /* Temporary storage for yylex; this holds symbol names as they are
    built up.  */
-static struct obstack name_obstack;
+static auto_obstack name_obstack;
 
 /* Build "package.name" in name_obstack.
    For convenience of the caller, the name is NUL-terminated,
@@ -1309,7 +1313,7 @@ build_packaged_name (const char *package
 {
   struct stoken result;
 
-  obstack_free (&name_obstack, obstack_base (&name_obstack));
+  name_obstack.clear ();
   obstack_grow (&name_obstack, package, package_len);
   obstack_grow_str (&name_obstack, ".");
   obstack_grow (&name_obstack, name, name_len);
@@ -1560,18 +1564,13 @@ yylex (void)
 int
 go_parse (struct parser_state *par_state)
 {
-  int result;
-  struct cleanup *back_to;
-
   /* Setting up the parser state.  */
+  scoped_restore pstate_restore = make_scoped_restore (&pstate);
   gdb_assert (par_state != NULL);
   pstate = par_state;
 
-  back_to = make_cleanup (null_cleanup, NULL);
-
   scoped_restore restore_yydebug = make_scoped_restore (&yydebug,
 							parser_debug);
-  make_cleanup_clear_parser_state (&pstate);
 
   /* Initialize some state used by the lexer.  */
   last_was_structop = 0;
@@ -1579,12 +1578,9 @@ go_parse (struct parser_state *par_state
 
   VEC_free (token_and_value, token_fifo);
   popping = 0;
-  obstack_init (&name_obstack);
-  make_cleanup_obstack_free (&name_obstack);
+  name_obstack.clear ();
 
-  result = yyparse ();
-  do_cleanups (back_to);
-  return result;
+  return yyparse ();
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/go-lang.c ./gdb/go-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/go-lang.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/go-lang.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Go language support routines for GDB, the GNU debugger.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -565,7 +565,7 @@ go_language_arch_info (struct gdbarch *g
   lai->bool_type_default = builtin->builtin_bool;
 }
 
-static const struct language_defn go_language_defn =
+extern const struct language_defn go_language_defn =
 {
   "go",
   "Go",
@@ -600,13 +600,15 @@ static const struct language_defn go_lan
   1,				/* C-style arrays.  */
   0,				/* String lower bound.  */
   default_word_break_characters,
-  default_make_symbol_completion_list,
+  default_collect_symbol_completion_matches,
   go_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
   c_get_string,
-  NULL,
+  c_watch_location_expression,
+  NULL,				/* la_get_symbol_name_matcher */
   iterate_over_symbols,
+  default_search_name_hash,
   &default_varobj_ops,
   NULL,
   NULL,
@@ -620,7 +622,7 @@ build_go_types (struct gdbarch *gdbarch)
     = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct builtin_go_type);
 
   builtin_go_type->builtin_void
-    = arch_type (gdbarch, TYPE_CODE_VOID, 1, "void");
+    = arch_type (gdbarch, TYPE_CODE_VOID, TARGET_CHAR_BIT, "void");
   builtin_go_type->builtin_char
     = arch_character_type (gdbarch, 8, 1, "char");
   builtin_go_type->builtin_bool
@@ -669,12 +671,8 @@ builtin_go_type (struct gdbarch *gdbarch
   return (const struct builtin_go_type *) gdbarch_data (gdbarch, go_type_data);
 }
 
-extern initialize_file_ftype _initialize_go_language;
-
 void
 _initialize_go_language (void)
 {
   go_type_data = gdbarch_data_register_post_init (build_go_types);
-
-  add_language (&go_language_defn);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/go-lang.h ./gdb/go-lang.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/go-lang.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/go-lang.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Go language support definitions for GDB, the GNU debugger.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/go-typeprint.c ./gdb/go-typeprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/go-typeprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/go-typeprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support for printing Go types for GDB, the GNU debugger.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/go-valprint.c ./gdb/go-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/go-valprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/go-valprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support for printing Go values for GDB, the GNU debugger.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gregset.h ./gdb/gregset.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/gregset.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/gregset.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Interface for functions using gregset and fpregset types.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/guile.c ./gdb/guile/guile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/guile.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/guile.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* General GDB/Guile code.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -161,7 +161,7 @@ const struct extension_language_ops guil
 /* Implementation of the gdb "guile-repl" command.  */
 
 static void
-guile_repl_command (char *arg, int from_tty)
+guile_repl_command (const char *arg, int from_tty)
 {
   scoped_restore restore_async = make_scoped_restore (&current_ui->async, 0);
 
@@ -189,7 +189,7 @@ guile_repl_command (char *arg, int from_
    TODO: Add the result to Guile's history?  */
 
 static void
-guile_command (char *arg, int from_tty)
+guile_command (const char *arg, int from_tty)
 {
   scoped_restore restore_async = make_scoped_restore (&current_ui->async, 0);
 
@@ -390,7 +390,7 @@ gdbscm_target_config (void)
    commands. */
 
 static void
-guile_repl_command (char *arg, int from_tty)
+guile_repl_command (const char *arg, int from_tty)
 {
   arg = skip_spaces (arg);
   if (arg && *arg)
@@ -399,7 +399,7 @@ guile_repl_command (char *arg, int from_
 }
 
 static void
-guile_command (char *arg, int from_tty)
+guile_command (const char *arg, int from_tty)
 {
   arg = skip_spaces (arg);
   if (arg && *arg)
@@ -425,7 +425,7 @@ static struct cmd_list_element *info_gui
 /* Function for use by 'set guile' prefix command.  */
 
 static void
-set_guile_command (char *args, int from_tty)
+set_guile_command (const char *args, int from_tty)
 {
   help_list (set_guile_list, "set guile ", all_commands, gdb_stdout);
 }
@@ -433,7 +433,7 @@ set_guile_command (char *args, int from_
 /* Function for use by 'show guile' prefix command.  */
 
 static void
-show_guile_command (char *args, int from_tty)
+show_guile_command (const char *args, int from_tty)
 {
   cmd_show_list (show_guile_list, from_tty, "");
 }
@@ -443,7 +443,7 @@ show_guile_command (char *args, int from
    "info scheme" with no args.  */
 
 static void
-info_guile_command (char *args, int from_tty)
+info_guile_command (const char *args, int from_tty)
 {
   printf_unfiltered (_("\"info guile\" must be followed"
 		       " by the name of an info command.\n"));
@@ -605,7 +605,6 @@ static void
 initialize_scheme_side (void)
 {
   char *boot_scm_path;
-  char *msg;
 
   guile_datadir = concat (gdb_datadir, SLASH_STRING, "guile", (char *) NULL);
   boot_scm_path = concat (guile_datadir, SLASH_STRING, "gdb",
@@ -815,9 +814,6 @@ message == an error message without a st
 			&set_guile_list, &show_guile_list);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_guile;
-
 void
 _initialize_guile (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/guile.h ./gdb/guile/guile.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/guile.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/guile.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* General GDB/Scheme code.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/guile-internal.h ./gdb/guile/guile-internal.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/guile-internal.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/guile-internal.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Internal header for GDB/Scheme code.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb/boot.scm ./gdb/guile/lib/gdb/boot.scm
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb/boot.scm	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/lib/gdb/boot.scm	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 ;; Bootstrap the Scheme side of the gdb module.
 ;;
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2018 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GDB.
 ;;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb/experimental.scm ./gdb/guile/lib/gdb/experimental.scm
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb/experimental.scm	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/lib/gdb/experimental.scm	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 ;; Various experimental utilities.
 ;; Anything in this file can change or disappear.
 ;;
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2018 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GDB.
 ;;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb/init.scm ./gdb/guile/lib/gdb/init.scm
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb/init.scm	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/lib/gdb/init.scm	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 ;; Scheme side of the gdb module.
 ;;
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2018 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GDB.
 ;;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb/iterator.scm ./gdb/guile/lib/gdb/iterator.scm
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb/iterator.scm	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/lib/gdb/iterator.scm	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 ;; Iteration utilities.
 ;; Anything in this file can change or disappear.
 ;;
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2018 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GDB.
 ;;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb/printing.scm ./gdb/guile/lib/gdb/printing.scm
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb/printing.scm	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/lib/gdb/printing.scm	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 ;; Additional pretty-printer support.
 ;;
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2018 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GDB.
 ;;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb/support.scm ./gdb/guile/lib/gdb/support.scm
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb/support.scm	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/lib/gdb/support.scm	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 ;; Internal support routines.
 ;;
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2018 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GDB.
 ;;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb/types.scm ./gdb/guile/lib/gdb/types.scm
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb/types.scm	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/lib/gdb/types.scm	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 ;; Type utilities.
-;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2018 Free Software Foundation, Inc.
 ;;
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb.scm ./gdb/guile/lib/gdb.scm
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/lib/gdb.scm	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/lib/gdb.scm	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 ;; Scheme side of the gdb module.
 ;;
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2018 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GDB.
 ;;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-arch.c ./gdb/guile/scm-arch.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-arch.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-arch.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Scheme interface to architecture.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-auto-load.c ./gdb/guile/scm-auto-load.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-auto-load.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-auto-load.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB routines for supporting auto-loaded Guile scripts.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -53,7 +53,7 @@ gdbscm_auto_load_enabled (const struct e
 /* Wrapper for "info auto-load guile-scripts".  */
 
 static void
-info_auto_load_guile_scripts (char *pattern, int from_tty)
+info_auto_load_guile_scripts (const char *pattern, int from_tty)
 {
   auto_load_info_scripts (pattern, from_tty, &extension_language_guile);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-block.c ./gdb/guile/scm-block.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-block.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-block.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Scheme interface to blocks.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-breakpoint.c ./gdb/guile/scm-breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-breakpoint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-breakpoint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Scheme interface to breakpoints.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -412,7 +412,7 @@ gdbscm_register_breakpoint_x (SCM self)
   breakpoint_smob *bp_smob
     = bpscm_get_breakpoint_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
   struct gdb_exception except = exception_none;
-  char *location, *copy;
+  const char *location, *copy;
 
   /* We only support registering breakpoints created with make-breakpoint.  */
   if (!bp_smob->is_scheme_bkpt)
@@ -424,8 +424,10 @@ gdbscm_register_breakpoint_x (SCM self)
   pending_breakpoint_scm = self;
   location = bp_smob->spec.location;
   copy = skip_spaces (location);
-  event_location_up eloc = string_to_event_location_basic (&copy,
-							   current_language);
+  event_location_up eloc
+    = string_to_event_location_basic (&copy,
+				      current_language,
+				      symbol_name_match_type::WILD);
 
   TRY
     {
@@ -973,7 +975,6 @@ gdbscm_breakpoint_commands (SCM self)
   breakpoint_smob *bp_smob
     = bpscm_get_valid_breakpoint_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
   struct breakpoint *bp;
-  long length;
   SCM result;
 
   bp = bp_smob->bp;
@@ -988,13 +989,14 @@ gdbscm_breakpoint_commands (SCM self)
     {
       print_command_lines (current_uiout, breakpoint_commands (bp), 0);
     }
-  current_uiout->redirect (NULL);
   CATCH (except, RETURN_MASK_ALL)
     {
+      current_uiout->redirect (NULL);
       gdbscm_throw_gdb_exception (except);
     }
   END_CATCH
 
+  current_uiout->redirect (NULL);
   result = gdbscm_scm_from_c_string (buf.c_str ());
 
   return result;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-cmd.c ./gdb/guile/scm-cmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-cmd.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-cmd.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB commands implemented in Scheme.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -114,7 +114,7 @@ static const struct cmdscm_completer cmd
   { "COMPLETE_FILENAME", filename_completer },
   { "COMPLETE_LOCATION", location_completer },
   { "COMPLETE_COMMAND", command_completer },
-  { "COMPLETE_SYMBOL", make_symbol_completion_list_fn },
+  { "COMPLETE_SYMBOL", symbol_completer },
   { "COMPLETE_EXPRESSION", expression_completer },
 };
 
@@ -292,9 +292,8 @@ cmdscm_destroyer (struct cmd_list_elemen
 
 static void
 cmdscm_function (struct cmd_list_element *command,
-		 char *args_entry, int from_tty)
+		 const char *args, int from_tty)
 {
-  const char *args = args_entry;
   command_smob *c_smob/*obj*/ = (command_smob *) get_cmd_context (command);
   SCM arg_scm, tty_scm, result;
 
@@ -350,9 +349,8 @@ cmdscm_bad_completion_result (const char
    The result is a boolean indicating success.  */
 
 static int
-cmdscm_add_completion (SCM completion, VEC (char_ptr) **result)
+cmdscm_add_completion (SCM completion, completion_tracker &tracker)
 {
-  char *item;
   SCM except_scm;
 
   if (!scm_is_string (completion))
@@ -363,8 +361,9 @@ cmdscm_add_completion (SCM completion, V
       return 0;
     }
 
-  item = gdbscm_scm_to_string (completion, NULL, host_charset (), 1,
-			       &except_scm);
+  gdb::unique_xmalloc_ptr<char> item
+    (gdbscm_scm_to_string (completion, NULL, host_charset (), 1,
+			   &except_scm));
   if (item == NULL)
     {
       /* Inform the user, but otherwise ignore the entire result.  */
@@ -372,21 +371,21 @@ cmdscm_add_completion (SCM completion, V
       return 0;
     }
 
-  VEC_safe_push (char_ptr, *result, item);
+  tracker.add_completion (std::move (item));
 
   return 1;
 }
 
 /* Called by gdb for command completion.  */
 
-static VEC (char_ptr) *
+static void
 cmdscm_completer (struct cmd_list_element *command,
+		  completion_tracker &tracker,
 		  const char *text, const char *word)
 {
   command_smob *c_smob/*obj*/ = (command_smob *) get_cmd_context (command);
   SCM completer_result_scm;
-  SCM text_scm, word_scm, result_scm;
-  VEC (char_ptr) *result = NULL;
+  SCM text_scm, word_scm;
 
   gdb_assert (c_smob != NULL);
   gdb_assert (gdbscm_is_procedure (c_smob->complete));
@@ -408,7 +407,7 @@ cmdscm_completer (struct cmd_list_elemen
     {
       /* Inform the user, but otherwise ignore.  */
       gdbscm_print_gdb_exception (SCM_BOOL_F, completer_result_scm);
-      goto done;
+      return;
     }
 
   if (gdbscm_is_true (scm_list_p (completer_result_scm)))
@@ -419,11 +418,8 @@ cmdscm_completer (struct cmd_list_elemen
 	{
 	  SCM next = scm_car (list);
 
-	  if (!cmdscm_add_completion (next, &result))
-	    {
-	      VEC_free (char_ptr, result);
-	      goto done;
-	    }
+	  if (!cmdscm_add_completion (next, tracker))
+	    break;
 
 	  list = scm_cdr (list);
 	}
@@ -437,17 +433,13 @@ cmdscm_completer (struct cmd_list_elemen
 	{
 	  if (gdbscm_is_exception (next))
 	    {
-	      /* Inform the user, but otherwise ignore the entire result.  */
+	      /* Inform the user.  */
 	      gdbscm_print_gdb_exception (SCM_BOOL_F, completer_result_scm);
-	      VEC_free (char_ptr, result);
-	      goto done;
+	      break;
 	    }
 
-	  if (!cmdscm_add_completion (next, &result))
-	    {
-	      VEC_free (char_ptr, result);
-	      goto done;
-	    }
+	  if (cmdscm_add_completion (next, tracker))
+	    break;
 
 	  next = itscm_safe_call_next_x (iter, NULL);
 	}
@@ -458,9 +450,6 @@ cmdscm_completer (struct cmd_list_elemen
       cmdscm_bad_completion_result (_("Bad completer result: "),
 				    completer_result_scm);
     }
-
- done:
-  return result;
 }
 
 /* Helper for gdbscm_make_command which locates the command list to use and
@@ -757,7 +746,7 @@ gdbscm_register_command_x (SCM self)
 {
   command_smob *c_smob
     = cmdscm_get_command_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
-  char *cmd_name, *pfx_name;
+  char *cmd_name;
   struct cmd_list_element **cmd_list;
   struct cmd_list_element *cmd = NULL;
 
@@ -784,7 +773,7 @@ gdbscm_register_command_x (SCM self)
       else
 	{
 	  cmd = add_cmd (c_smob->cmd_name, c_smob->cmd_class,
-			 NULL, c_smob->doc, cmd_list);
+			 c_smob->doc, cmd_list);
 	}
     }
   CATCH (except, RETURN_MASK_ALL)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-disasm.c ./gdb/guile/scm-disasm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-disasm.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-disasm.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Scheme interface to architecture.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-exception.c ./gdb/guile/scm-exception.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-exception.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-exception.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB/Scheme exception support.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-frame.c ./gdb/guile/scm-frame.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-frame.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-frame.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Scheme interface to stack frames.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -418,7 +418,7 @@ static SCM
 gdbscm_frame_name (SCM self)
 {
   frame_smob *f_smob;
-  char *name = NULL;
+  gdb::unique_xmalloc_ptr<char> name;
   enum language lang = language_minimal;
   struct frame_info *frame = NULL;
   SCM result;
@@ -429,11 +429,10 @@ gdbscm_frame_name (SCM self)
     {
       frame = frscm_frame_smob_to_frame (f_smob);
       if (frame != NULL)
-	find_frame_funname (frame, &name, &lang, NULL);
+	name = find_frame_funname (frame, &lang, NULL);
     }
   CATCH (except, RETURN_MASK_ALL)
     {
-      xfree (name);
       GDBSCM_HANDLE_GDB_EXCEPTION (except);
     }
   END_CATCH
@@ -445,10 +444,7 @@ gdbscm_frame_name (SCM self)
     }
 
   if (name != NULL)
-    {
-      result = gdbscm_scm_from_c_string (name);
-      xfree (name);
-    }
+    result = gdbscm_scm_from_c_string (name.get ());
   else
     result = SCM_BOOL_F;
 
@@ -761,7 +757,7 @@ gdbscm_frame_sal (SCM self)
     {
       frame = frscm_frame_smob_to_frame (f_smob);
       if (frame != NULL)
-	find_frame_sal (frame, &sal);
+	sal = find_frame_sal (frame);
     }
   CATCH (except, RETURN_MASK_ALL)
     {
@@ -844,7 +840,6 @@ static SCM
 gdbscm_frame_read_var (SCM self, SCM symbol_scm, SCM rest)
 {
   SCM keywords[] = { block_keyword, SCM_BOOL_F };
-  int rc;
   frame_smob *f_smob;
   int block_arg_pos = -1;
   SCM block_scm = SCM_UNDEFINED;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-gsmob.c ./gdb/guile/scm-gsmob.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-gsmob.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-gsmob.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB/Scheme smobs (gsmob is pronounced "jee smob")
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-iterator.c ./gdb/guile/scm-iterator.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-iterator.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-iterator.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Simple iterators for GDB/Scheme.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-lazy-string.c ./gdb/guile/scm-lazy-string.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-lazy-string.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-lazy-string.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Scheme interface to lazy strings.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-math.c ./gdb/guile/scm-math.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-math.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-math.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB/Scheme support for math operations on values.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -24,9 +24,7 @@
 #include "arch-utils.h"
 #include "charset.h"
 #include "cp-abi.h"
-#include "doublest.h" /* Needed by dfp.h.  */
-#include "expression.h" /* Needed by dfp.h.  */
-#include "dfp.h"
+#include "target-float.h"
 #include "symtab.h" /* Needed by language.h.  */
 #include "language.h"
 #include "valprint.h"
@@ -599,7 +597,13 @@ vlscm_convert_typed_number (const char *
 	}
     }
   else if (TYPE_CODE (type) == TYPE_CODE_FLT)
-    return value_from_double (type, scm_to_double (obj));
+    {
+      struct value *value = allocate_value (type);
+      target_float_from_host_double (value_contents_raw (value),
+				     value_type (value),
+				     scm_to_double (obj));
+      return value;
+    }
   else
     {
       *except_scmp = gdbscm_make_type_error (func_name, obj_arg_pos, obj,
@@ -679,7 +683,13 @@ vlscm_convert_number (const char *func_n
 				   gdbscm_scm_to_ulongest (obj));
     }
   else if (scm_is_real (obj))
-    return value_from_double (bt->builtin_double, scm_to_double (obj));
+    {
+      struct value *value = allocate_value (bt->builtin_double);
+      target_float_from_host_double (value_contents_raw (value),
+				     value_type (value),
+				     scm_to_double (obj));
+      return value;
+    }
 
   *except_scmp = gdbscm_make_out_of_range_error (func_name, obj_arg_pos, obj,
 			_("value not a number representable on the target"));
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-objfile.c ./gdb/guile/scm-objfile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-objfile.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-objfile.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Scheme interface to objfiles.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-param.c ./gdb/guile/scm-param.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-param.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-param.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB parameters implemented in Guile.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -269,7 +269,7 @@ pascm_signal_setshow_error (SCM exceptio
    Note: ARGS is always passed as NULL.  */
 
 static void
-pascm_set_func (char *args, int from_tty, struct cmd_list_element *c)
+pascm_set_func (const char *args, int from_tty, struct cmd_list_element *c)
 {
   param_smob *p_smob = (param_smob *) get_cmd_context (c);
   SCM self, result, exception;
@@ -357,7 +357,7 @@ static void
 add_setshow_generic (enum var_types param_type, enum command_class cmd_class,
 		     char *cmd_name, param_smob *self,
 		     char *set_doc, char *show_doc, char *help_doc,
-		     cmd_sfunc_ftype *set_func,
+		     cmd_const_sfunc_ftype *set_func,
 		     show_value_ftype *show_func,
 		     struct cmd_list_element **set_list,
 		     struct cmd_list_element **show_list,
@@ -1062,7 +1062,6 @@ gdbscm_parameter_value (SCM self)
       char *name;
       SCM except_scm;
       struct cmd_list_element *alias, *prefix, *cmd;
-      const char *arg;
       char *newarg;
       int found = -1;
       struct gdb_exception except = exception_none;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-ports.c ./gdb/guile/scm-ports.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-ports.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-ports.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Support for connecting Guile's stdio to GDB's.
    as well as r/w memory via ports.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -26,6 +26,7 @@
 #include "top.h"
 #include "target.h"
 #include "guile-internal.h"
+#include "common/gdb_optional.h"
 
 #ifdef HAVE_POLL
 #if defined (HAVE_POLL_H)
@@ -97,10 +98,6 @@ static SCM input_port_scm;
 static SCM output_port_scm;
 static SCM error_port_scm;
 
-/* Magic number to identify port ui-files.
-   Actually, the address of this variable is the magic number.  */
-static int file_port_magic;
-
 /* Internal enum for specifying output port.  */
 enum oport { GDB_STDOUT, GDB_STDERR };
 
@@ -460,7 +457,6 @@ static SCM
 ioscm_with_output_to_port_worker (SCM port, SCM thunk, enum oport oport,
 				  const char *func_name)
 {
-  struct cleanup *cleanups;
   SCM result;
 
   SCM_ASSERT_TYPE (gdbscm_is_true (scm_output_port_p (port)), port,
@@ -468,7 +464,7 @@ ioscm_with_output_to_port_worker (SCM po
   SCM_ASSERT_TYPE (gdbscm_is_true (scm_thunk_p (thunk)), thunk,
 		   SCM_ARG2, func_name, _("thunk"));
 
-  cleanups = set_batch_flag_and_make_cleanup_restore_page_info ();
+  set_batch_flag_and_restore_page_info save_page_info;
 
   scoped_restore restore_async = make_scoped_restore (&current_ui->async, 0);
 
@@ -477,19 +473,20 @@ ioscm_with_output_to_port_worker (SCM po
   scoped_restore save_file = make_scoped_restore (oport == GDB_STDERR
 						  ? &gdb_stderr : &gdb_stdout);
 
-  if (oport == GDB_STDERR)
-    gdb_stderr = port_file.get ();
-  else
-    {
-      current_uiout->redirect (port_file.get ());
-      make_cleanup_ui_out_redirect_pop (current_uiout);
-
-      gdb_stdout = port_file.get ();
-    }
+  {
+    gdb::optional<ui_out_redirect_pop> redirect_popper;
+    if (oport == GDB_STDERR)
+      gdb_stderr = port_file.get ();
+    else
+      {
+	current_uiout->redirect (port_file.get ());
+	redirect_popper.emplace (current_uiout);
 
-  result = gdbscm_safe_call_0 (thunk, NULL);
+	gdb_stdout = port_file.get ();
+      }
 
-  do_cleanups (cleanups);
+    result = gdbscm_safe_call_0 (thunk, NULL);
+  }
 
   if (gdbscm_is_exception (result))
     gdbscm_throw (result);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-pretty-print.c ./gdb/guile/scm-pretty-print.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-pretty-print.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-pretty-print.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB/Scheme pretty-printing.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -381,7 +381,6 @@ ppscm_search_pp_list (SCM list, SCM valu
       SCM matcher = scm_car (list);
       SCM worker;
       pretty_printer_smob *pp_smob;
-      int rc;
 
       if (!ppscm_is_pretty_printer (matcher))
 	{
@@ -534,7 +533,6 @@ ppscm_pretty_print_one_value (SCM printe
   *out_value = NULL;
   TRY
     {
-      int rc;
       pretty_printer_worker_smob *w_smob
 	= (pretty_printer_worker_smob *) SCM_SMOB_DATA (printer);
 
@@ -744,7 +742,7 @@ ppscm_print_children (SCM printer, enum 
     = (pretty_printer_worker_smob *) SCM_SMOB_DATA (printer);
   int is_map, is_array, done_flag, pretty;
   unsigned int i;
-  SCM children, status;
+  SCM children;
   SCM iter = SCM_BOOL_F; /* -Wall */
   struct cleanup *cleanups;
 
@@ -799,7 +797,6 @@ ppscm_print_children (SCM printer, enum 
   done_flag = 0;
   for (i = 0; i < options->print_max; ++i)
     {
-      int rc;
       SCM scm_name, v_scm;
       char *name;
       SCM item = itscm_safe_call_next_x (iter, gdbscm_memory_error_p);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-progspace.c ./gdb/guile/scm-progspace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-progspace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-progspace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Guile interface to program spaces.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-safe-call.c ./gdb/guile/scm-safe-call.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-safe-call.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-safe-call.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB/Scheme support for safe calls into the Guile interpreter.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -438,19 +438,18 @@ gdbscm_safe_source_script (const char *f
      %load-path, but we don't want %load-path to be searched.  At least not
      by default.  This function is invoked by the "source" GDB command which
      already has its own path search support.  */
-  char *abs_filename = NULL;
+  gdb::unique_xmalloc_ptr<char> abs_filename;
   const char *result;
 
   if (!IS_ABSOLUTE_PATH (filename))
     {
       abs_filename = gdb_realpath (filename);
-      filename = abs_filename;
+      filename = abs_filename.get ();
     }
 
   result = gdbscm_with_guile (scscm_source_scheme_script,
 			      (void *) filename);
 
-  xfree (abs_filename);
   if (result != NULL)
     return xstrdup (result);
   return NULL;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-string.c ./gdb/guile/scm-string.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-string.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-string.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB/Scheme charset interface.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -241,8 +241,6 @@ static SCM
 gdbscm_string_to_argv (SCM string_scm)
 {
   char *string;
-  char **c_argv;
-  int i;
   SCM result = SCM_EOL;
 
   gdbscm_parse_function_args (FUNC_NAME, SCM_ARG1, NULL, "s",
@@ -254,11 +252,10 @@ gdbscm_string_to_argv (SCM string_scm)
       return SCM_EOL;
     }
 
-  c_argv = gdb_buildargv (string);
-  for (i = 0; c_argv[i] != NULL; ++i)
-    result = scm_cons (gdbscm_scm_from_c_string (c_argv[i]), result);
+  gdb_argv c_argv (string);
+  for (char *arg : c_argv)
+    result = scm_cons (gdbscm_scm_from_c_string (arg), result);
 
-  freeargv (c_argv);
   xfree (string);
 
   return scm_reverse_x (result, SCM_EOL);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-symbol.c ./gdb/guile/scm-symbol.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-symbol.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-symbol.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Scheme interface to symbols.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-symtab.c ./gdb/guile/scm-symtab.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-symtab.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-symtab.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Scheme interface to symbol tables.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -419,7 +419,7 @@ stscm_make_sal_smob (void)
   SCM s_scm;
 
   s_smob->symtab_scm = SCM_BOOL_F;
-  memset (&s_smob->sal, 0, sizeof (s_smob->sal));
+  new (&s_smob->sal) symtab_and_line ();
   s_scm = scm_new_smob (sal_smob_tag, (scm_t_bits) s_smob);
   gdbscm_init_gsmob (&s_smob->base);
 
@@ -578,7 +578,6 @@ static SCM
 gdbscm_sal_symtab (SCM self)
 {
   sal_smob *s_smob = stscm_get_valid_sal_smob_arg (self, SCM_ARG1, FUNC_NAME);
-  const struct symtab_and_line *sal = &s_smob->sal;
 
   return s_smob->symtab_scm;
 }
@@ -589,9 +588,7 @@ static SCM
 gdbscm_find_pc_line (SCM pc_scm)
 {
   ULONGEST pc_ull;
-  struct symtab_and_line sal;
-
-  init_sal (&sal); /* -Wall */
+  symtab_and_line sal;
 
   gdbscm_parse_function_args (FUNC_NAME, SCM_ARG1, NULL, "U", pc_scm, &pc_ull);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-type.c ./gdb/guile/scm-type.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-type.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-type.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Scheme interface to types.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -1090,7 +1090,7 @@ gdbscm_type_next_field_x (SCM self)
   type_smob *t_smob;
   struct type *type;
   SCM it_scm, result, progress, object;
-  int field, rc;
+  int field;
 
   it_scm = itscm_get_iterator_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
   i_smob = (iterator_smob *) SCM_SMOB_DATA (it_scm);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-utils.c ./gdb/guile/scm-utils.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-utils.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-utils.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* General utility routines for GDB/Scheme code.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -381,7 +381,7 @@ gdbscm_parse_function_args (const char *
 {
   va_list args;
   const char *p;
-  int i, have_rest, num_keywords, length, position;
+  int i, have_rest, num_keywords, position;
   int have_optional = 0;
   SCM status;
   SCM rest = SCM_EOL;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-value.c ./gdb/guile/scm-value.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/guile/scm-value.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/guile/scm-value.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Scheme interface to values.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -24,6 +24,7 @@
 #include "arch-utils.h"
 #include "charset.h"
 #include "cp-abi.h"
+#include "target-float.h"
 #include "infcall.h"
 #include "symtab.h" /* Needed by language.h.  */
 #include "language.h"
@@ -421,24 +422,19 @@ gdbscm_value_address (SCM self)
 
   if (SCM_UNBNDP (v_smob->address))
     {
-      struct value *res_val = NULL;
       struct cleanup *cleanup
 	= make_cleanup_value_free_to_mark (value_mark ());
-      SCM address;
+      SCM address = SCM_BOOL_F;
 
       TRY
 	{
-	  res_val = value_addr (value);
+	  address = vlscm_scm_from_value (value_addr (value));
 	}
       CATCH (except, RETURN_MASK_ALL)
 	{
-	  address = SCM_BOOL_F;
 	}
       END_CATCH
 
-      if (res_val != NULL)
-	address = vlscm_scm_from_value (res_val);
-
       do_cleanups (cleanup);
 
       if (gdbscm_is_exception (address))
@@ -864,7 +860,7 @@ gdbscm_value_call (SCM self, SCM args)
       struct cleanup *cleanup = make_cleanup_value_free_to_mark (mark);
       struct value *return_value;
 
-      return_value = call_function_by_hand (function, args_count, vargs);
+      return_value = call_function_by_hand (function, NULL, args_count, vargs);
       result = vlscm_scm_from_value (return_value);
       do_cleanups (cleanup);
     }
@@ -1024,7 +1020,8 @@ gdbscm_value_to_real (SCM self)
     = vlscm_get_value_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
   struct value *value = v_smob->value;
   struct type *type;
-  DOUBLEST d = 0;
+  double d = 0;
+  struct value *check = nullptr;
 
   type = value_type (value);
 
@@ -1043,7 +1040,22 @@ gdbscm_value_to_real (SCM self)
 
   TRY
     {
-      d = value_as_double (value);
+      if (is_floating_value (value))
+	{
+	  d = target_float_to_host_double (value_contents (value), type);
+	  check = allocate_value (type);
+	  target_float_from_host_double (value_contents_raw (check), type, d);
+	}
+      else if (TYPE_UNSIGNED (type))
+	{
+	  d = (ULONGEST) value_as_long (value);
+	  check = value_from_ulongest (type, (ULONGEST) d);
+	}
+      else
+	{
+	  d = value_as_long (value);
+	  check = value_from_longest (type, (LONGEST) d);
+	}
     }
   CATCH (except, RETURN_MASK_ALL)
     {
@@ -1052,7 +1064,7 @@ gdbscm_value_to_real (SCM self)
   END_CATCH
 
   /* TODO: Is there a better way to check if the value fits?  */
-  if (d != (double) d)
+  if (!value_equal (value, check))
     gdbscm_out_of_range_error (FUNC_NAME, SCM_ARG1, self,
 			       _("number can't be converted to a double"));
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/h8300-tdep.c ./gdb/h8300-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/h8300-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/h8300-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-machine dependent code for Renesas H8/300, for GDB.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -662,18 +662,17 @@ h8300_push_dummy_call (struct gdbarch *g
 
   for (argument = 0; argument < nargs; argument++)
     {
-      struct cleanup *back_to;
       struct type *type = value_type (args[argument]);
       int len = TYPE_LENGTH (type);
       char *contents = (char *) value_contents (args[argument]);
 
       /* Pad the argument appropriately.  */
       int padded_len = align_up (len, wordsize);
-      gdb_byte *padded = (gdb_byte *) xmalloc (padded_len);
-      back_to = make_cleanup (xfree, padded);
+      /* Use std::vector here to get zero initialization.  */
+      std::vector<gdb_byte> padded (padded_len);
 
-      memset (padded, 0, padded_len);
-      memcpy (len < wordsize ? padded + padded_len - len : padded,
+      memcpy ((len < wordsize ? padded.data () + padded_len - len
+	       : padded.data ()),
 	      contents, len);
 
       /* Could the argument fit in the remaining registers?  */
@@ -684,7 +683,7 @@ h8300_push_dummy_call (struct gdbarch *g
 	  if (len > wordsize && len % wordsize)
 	    {
 	      /* I feel so unclean.  */
-	      write_memory (sp + stack_offset, padded, padded_len);
+	      write_memory (sp + stack_offset, padded.data (), padded_len);
 	      stack_offset += padded_len;
 
 	      /* That's right --- even though we passed the argument
@@ -702,7 +701,7 @@ h8300_push_dummy_call (struct gdbarch *g
 	      for (offset = 0; offset < padded_len; offset += wordsize)
 		{
 		  ULONGEST word
-		    = extract_unsigned_integer (padded + offset,
+		    = extract_unsigned_integer (&padded[offset],
 						wordsize, byte_order);
 		  regcache_cooked_write_unsigned (regcache, reg++, word);
 		}
@@ -711,15 +710,13 @@ h8300_push_dummy_call (struct gdbarch *g
       else
 	{
 	  /* It doesn't fit in registers!  Onto the stack it goes.  */
-	  write_memory (sp + stack_offset, padded, padded_len);
+	  write_memory (sp + stack_offset, padded.data (), padded_len);
 	  stack_offset += padded_len;
 
 	  /* Once one argument has spilled onto the stack, all
 	     subsequent arguments go on the stack.  */
 	  reg = E_ARGLAST_REGNUM + 1;
 	}
-
-      do_cleanups (back_to);
     }
 
   /* Store return address.  */
@@ -742,7 +739,7 @@ static void
 h8300_extract_return_value (struct type *type, struct regcache *regcache,
 			    gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int len = TYPE_LENGTH (type);
   ULONGEST c, addr;
@@ -779,7 +776,7 @@ static void
 h8300h_extract_return_value (struct type *type, struct regcache *regcache,
 			     gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   ULONGEST c;
 
@@ -844,7 +841,7 @@ static void
 h8300_store_return_value (struct type *type, struct regcache *regcache,
 			  const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   ULONGEST val;
 
@@ -873,7 +870,7 @@ static void
 h8300h_store_return_value (struct type *type, struct regcache *regcache,
 			   const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   ULONGEST val;
 
@@ -1275,7 +1272,6 @@ h8300_gdbarch_init (struct gdbarch_info 
       set_gdbarch_ptr_bit (gdbarch, 2 * TARGET_CHAR_BIT);
       set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT);
       set_gdbarch_return_value (gdbarch, h8300_return_value);
-      set_gdbarch_print_insn (gdbarch, print_insn_h8300);
       break;
     case bfd_mach_h8300h:
     case bfd_mach_h8300hn:
@@ -1296,7 +1292,6 @@ h8300_gdbarch_init (struct gdbarch_info 
 	  set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT);
 	}
       set_gdbarch_return_value (gdbarch, h8300h_return_value);
-      set_gdbarch_print_insn (gdbarch, print_insn_h8300h);
       break;
     case bfd_mach_h8300s:
     case bfd_mach_h8300sn:
@@ -1317,7 +1312,6 @@ h8300_gdbarch_init (struct gdbarch_info 
 	  set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT);
 	}
       set_gdbarch_return_value (gdbarch, h8300h_return_value);
-      set_gdbarch_print_insn (gdbarch, print_insn_h8300s);
       break;
     case bfd_mach_h8300sx:
     case bfd_mach_h8300sxn:
@@ -1338,7 +1332,6 @@ h8300_gdbarch_init (struct gdbarch_info 
 	  set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT);
 	}
       set_gdbarch_return_value (gdbarch, h8300h_return_value);
-      set_gdbarch_print_insn (gdbarch, print_insn_h8300s);
       break;
     }
 
@@ -1400,8 +1393,6 @@ h8300_gdbarch_init (struct gdbarch_info 
 
 }
 
-extern initialize_file_ftype _initialize_h8300_tdep; /* -Wmissing-prototypes */
-
 void
 _initialize_h8300_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-bsd-tdep.c ./gdb/hppa-bsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-bsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/hppa-bsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for HP PA-RISC BSD's.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-bsd-tdep.h ./gdb/hppa-bsd-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-bsd-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/hppa-bsd-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for HP PA-RISC BSD's.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-linux-nat.c ./gdb/hppa-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/hppa-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Functions specific to running GDB native on HPPA running GNU/Linux.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -213,7 +213,7 @@ static const int greg_map[] =
 static void
 fetch_register (struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   pid_t tid;
   int val;
 
@@ -240,7 +240,7 @@ fetch_register (struct regcache *regcach
 static void
 store_register (const struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   pid_t tid;
   int val;
 
@@ -269,7 +269,7 @@ hppa_linux_fetch_inferior_registers (str
   if (-1 == regno)
     {
       for (regno = 0;
-	   regno < gdbarch_num_regs (get_regcache_arch (regcache));
+	   regno < gdbarch_num_regs (regcache->arch ());
 	   regno++)
         fetch_register (regcache, regno);
     }
@@ -290,7 +290,7 @@ hppa_linux_store_inferior_registers (str
   if (-1 == regno)
     {
       for (regno = 0;
-	   regno < gdbarch_num_regs (get_regcache_arch (regcache));
+	   regno < gdbarch_num_regs (regcache->arch ());
 	   regno++)
 	store_register (regcache, regno);
     }
@@ -377,8 +377,6 @@ fill_fpregset (const struct regcache *re
    }
 }
 
-void _initialize_hppa_linux_nat (void);
-
 void
 _initialize_hppa_linux_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-linux-offsets.h ./gdb/hppa-linux-offsets.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-linux-offsets.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/hppa-linux-offsets.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Register offsets for HPPA running GNU/Linux.
 
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-linux-tdep.c ./gdb/hppa-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/hppa-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux running on PA-RISC, for GDB.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -483,10 +483,6 @@ hppa_linux_iterate_over_regset_sections 
       NULL, cb_data);
   cb (".reg2", 64 * 4, &hppa_linux_fpregset, NULL, cb_data);
 }
-
-
-/* Forward declarations.  */
-extern initialize_file_ftype _initialize_hppa_linux_tdep;
 
 static void
 hppa_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-nbsd-nat.c ./gdb/hppa-nbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-nbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/hppa-nbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for NetBSD/hppa.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -222,10 +222,6 @@ hppanbsd_store_registers (struct target_
     }
 }
 
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_hppanbsd_nat (void);
-
 void
 _initialize_hppanbsd_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-nbsd-tdep.c ./gdb/hppa-nbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-nbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/hppa-nbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for NetBSD/hppa
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -205,10 +205,6 @@ hppanbsd_init_abi (struct gdbarch_info i
 
   tramp_frame_prepend_unwinder (gdbarch, &hppanbsd_sigtramp_si4);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_hppanbsd_tdep;
 
 void
 _initialize_hppanbsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-obsd-nat.c ./gdb/hppa-obsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-obsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/hppa-obsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for OpenBSD/hppa.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -246,9 +246,6 @@ hppaobsd_store_registers (struct target_
     }
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_hppaobsd_nat (void);
-
 void
 _initialize_hppaobsd_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-obsd-tdep.c ./gdb/hppa-obsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-obsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/hppa-obsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for OpenBSD/hppa
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -164,10 +164,6 @@ hppaobsd_init_abi (struct gdbarch_info i
   set_gdbarch_iterate_over_regset_sections
     (gdbarch, hppaobsd_iterate_over_regset_sections);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_hppabsd_tdep (void);
 
 void
 _initialize_hppabsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-tdep.c ./gdb/hppa-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/hppa-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the HP PA-RISC architecture.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    Contributed by the Center for Software Science at the
    University of Utah (pa-gdb-bugs@cs.utah.edu).
@@ -2572,7 +2572,7 @@ hppa_lookup_stub_minimal_symbol (const c
 }
 
 static void
-unwind_command (char *exp, int from_tty)
+unwind_command (const char *exp, int from_tty)
 {
   CORE_ADDR address;
   struct unwind_table_entry *u;
@@ -3122,8 +3122,6 @@ hppa_gdbarch_init (struct gdbarch_info i
   /* Helper for function argument information.  */
   set_gdbarch_fetch_pointer_argument (gdbarch, hppa_fetch_pointer_argument);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_hppa);
-
   /* When a hardware watchpoint triggers, we'll move the inferior past
      it by removing all eventpoints; stepping past the instruction
      that caused the trigger; reinserting eventpoints; and checking
@@ -3189,9 +3187,6 @@ hppa_dump_tdep (struct gdbarch *gdbarch,
   fprintf_unfiltered (file, "elf = %s\n", tdep->is_elf ? "yes" : "no");
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_hppa_tdep;
-
 void
 _initialize_hppa_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-tdep.h ./gdb/hppa-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/hppa-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/hppa-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the HP PA-RISC architecture.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-bsd-nat.c ./gdb/i386-bsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-bsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-bsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for modern i386 BSD's.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -280,10 +280,6 @@ i386bsd_target (void)
   t->to_store_registers = i386bsd_store_inferior_registers;
   return t;
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_i386bsd_nat (void);
 
 void
 _initialize_i386bsd_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-bsd-nat.h ./gdb/i386-bsd-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-bsd-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-bsd-nat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for modern i386 BSD's.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-bsd-tdep.c ./gdb/i386-bsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-bsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-bsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for i386 BSD's.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-cygwin-tdep.c ./gdb/i386-cygwin-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-cygwin-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-cygwin-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Cygwin running on i386's, for GDB.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -252,9 +252,6 @@ i386_cygwin_osabi_sniffer (bfd *abfd)
   return GDB_OSABI_UNKNOWN;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_i386_cygwin_tdep (void);
-
 void
 _initialize_i386_cygwin_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-darwin-nat.c ./gdb/i386-darwin-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-darwin-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-darwin-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Darwin support for GDB, the GNU debugger.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
 
    Contributed by Apple Computer, Inc.
 
@@ -52,7 +52,7 @@ i386_darwin_fetch_inferior_registers (st
 {
   thread_t current_thread = ptid_get_tid (regcache_get_ptid (regcache));
   int fetched = 0;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
 #ifdef BFD64
   if (gdbarch_ptr_bit (gdbarch) == 64)
@@ -168,7 +168,7 @@ i386_darwin_store_inferior_registers (st
 				      struct regcache *regcache, int regno)
 {
   thread_t current_thread = ptid_get_tid (regcache_get_ptid (regcache));
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
 #ifdef BFD64
   if (gdbarch_ptr_bit (gdbarch) == 64)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-darwin-tdep.c ./gdb/i386-darwin-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-darwin-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-darwin-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Darwin support for GDB, the GNU debugger.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
 
    Contributed by Apple Computer, Inc.
 
@@ -23,7 +23,6 @@
 #include "inferior.h"
 #include "gdbcore.h"
 #include "target.h"
-#include "floatformat.h"
 #include "symtab.h"
 #include "regcache.h"
 #include "objfiles.h"
@@ -287,9 +286,6 @@ i386_mach_o_osabi_sniffer (bfd *abfd)
   return GDB_OSABI_UNKNOWN;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_i386_darwin_tdep;
-
 void
 _initialize_i386_darwin_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-darwin-tdep.h ./gdb/i386-darwin-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-darwin-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-darwin-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Darwin x86.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-dicos-tdep.c ./gdb/i386-dicos-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-dicos-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-dicos-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for DICOS running on i386's, for GDB.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -40,9 +40,6 @@ i386_dicos_osabi_sniffer (bfd *abfd)
   return GDB_OSABI_UNKNOWN;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_i386_dicos_tdep (void);
-
 void
 _initialize_i386_dicos_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-fbsd-nat.c ./gdb/i386-fbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-fbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-fbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for FreeBSD/i386.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -30,6 +30,7 @@
 #include "fbsd-nat.h"
 #include "i386-tdep.h"
 #include "x86-nat.h"
+#include "x86-xstate.h"
 #include "x86-bsd-nat.h"
 #include "i386-bsd-nat.h"
 
@@ -139,18 +140,13 @@ i386fbsd_read_description (struct target
       xsave_probed = 1;
     }
 
-  if (x86bsd_xsave_len != 0)
-    {
-      return i386_target_description (xcr0);
-    }
-  else
-    return tdesc_i386;
+  if (x86bsd_xsave_len == 0)
+    xcr0 = X86_XSTATE_SSE_MASK;
+
+  return i386_target_description (xcr0);
 }
 #endif
 
-/* Prevent warning from -Wmissing-prototypes.  */
-void _initialize_i386fbsd_nat (void);
-
 void
 _initialize_i386fbsd_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-fbsd-tdep.c ./gdb/i386-fbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-fbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-fbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for FreeBSD/i386.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -248,14 +248,14 @@ i386fbsd_core_read_xcr0 (bfd *abfd)
 	    {
 	      warning (_("Couldn't read `xcr0' bytes from "
 			 "`.reg-xstate' section in core file."));
-	      return 0;
+	      return X86_XSTATE_SSE_MASK;
 	    }
 
 	  xcr0 = bfd_get_64 (abfd, contents);
 	}
     }
   else
-    xcr0 = 0;
+    xcr0 = X86_XSTATE_SSE_MASK;
 
   return xcr0;
 }
@@ -417,10 +417,6 @@ i386fbsd4_init_abi (struct gdbarch_info 
 				     i386fbsd_core_read_description);
 }
 
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_i386fbsd_tdep (void);
-
 void
 _initialize_i386fbsd_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-fbsd-tdep.h ./gdb/i386-fbsd-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-fbsd-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-fbsd-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for FreeBSD x86.
 
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-gnu-nat.c ./gdb/i386-gnu-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-gnu-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-gnu-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low level interface to i386 running the GNU Hurd.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -127,7 +127,7 @@ gnu_fetch_registers (struct target_ops *
       else
 	{
 	  proc_debug (thread, "fetching register %s",
-		      gdbarch_register_name (get_regcache_arch (regcache),
+		      gdbarch_register_name (regcache->arch (),
 					     regno));
 
 	  regcache_raw_supply (regcache, regno,
@@ -183,7 +183,7 @@ gnu_store_registers (struct target_ops *
 		     struct regcache *regcache, int regno)
 {
   struct proc *thread;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   ptid_t ptid = regcache_get_ptid (regcache);
 
   /* Make sure we know about new threads.  */
@@ -409,9 +409,6 @@ i386_gnu_dr_get_control (void)
 }
 #endif /* i386_DEBUG_STATE */
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_i386gnu_nat;
-
 void
 _initialize_i386gnu_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-gnu-tdep.c ./gdb/i386-gnu-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-gnu-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-gnu-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target-dependent code for the GNU Hurd.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -61,9 +61,6 @@ i386gnu_init_abi (struct gdbarch_info in
   tdep->jb_pc_offset = 20;	/* From <bits/setjmp.h>.  */
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern void _initialize_i386gnu_tdep (void);
-
 void
 _initialize_i386gnu_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-go32-tdep.c ./gdb/i386-go32-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-go32-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-go32-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for DJGPP/i386.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -19,6 +19,7 @@
 
 #include "defs.h"
 #include "i386-tdep.h"
+#include "x86-xstate.h"
 #include "target-descriptions.h"
 #include "osabi.h"
 
@@ -34,7 +35,7 @@ i386_go32_init_abi (struct gdbarch_info 
 
   /* DJGPP does not support the SSE registers.  */
   if (!tdesc_has_registers (info.target_desc))
-    tdep->tdesc = tdesc_i386_mmx;
+    tdep->tdesc = i386_target_description (X86_XSTATE_X87_MASK);
 
   /* Native compiler is GCC, which uses the SVR4 register numbering
      even in COFF and STABS.  See the comment in i386_gdbarch_init,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-linux-nat.c ./gdb/i386-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for GNU/Linux i386.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -112,7 +112,7 @@ fetch_register (struct regcache *regcach
 		i386_linux_gregset_reg_offset[regno], 0);
   if (errno != 0)
     error (_("Couldn't read register %s (#%d): %s."), 
-	   gdbarch_register_name (get_regcache_arch (regcache), regno),
+	   gdbarch_register_name (regcache->arch (), regno),
 	   regno, safe_strerror (errno));
 
   regcache_raw_supply (regcache, regno, &val);
@@ -138,7 +138,7 @@ store_register (const struct regcache *r
 	  i386_linux_gregset_reg_offset[regno], val);
   if (errno != 0)
     error (_("Couldn't write register %s (#%d): %s."),
-	   gdbarch_register_name (get_regcache_arch (regcache), regno),
+	   gdbarch_register_name (regcache->arch (), regno),
 	   regno, safe_strerror (errno));
 }
 
@@ -160,7 +160,7 @@ supply_gregset (struct regcache *regcach
 			 regp + i386_linux_gregset_reg_offset[i]);
 
   if (I386_LINUX_ORIG_EAX_REGNUM
-	< gdbarch_num_regs (get_regcache_arch (regcache)))
+	< gdbarch_num_regs (regcache->arch ()))
     regcache_raw_supply (regcache, I386_LINUX_ORIG_EAX_REGNUM, regp
 			 + i386_linux_gregset_reg_offset[I386_LINUX_ORIG_EAX_REGNUM]);
 }
@@ -183,7 +183,7 @@ fill_gregset (const struct regcache *reg
 
   if ((regno == -1 || regno == I386_LINUX_ORIG_EAX_REGNUM)
       && I386_LINUX_ORIG_EAX_REGNUM
-	   < gdbarch_num_regs (get_regcache_arch (regcache)))
+	   < gdbarch_num_regs (regcache->arch ()))
     regcache_raw_collect (regcache, I386_LINUX_ORIG_EAX_REGNUM, regp
 			  + i386_linux_gregset_reg_offset[I386_LINUX_ORIG_EAX_REGNUM]);
 }
@@ -458,7 +458,7 @@ i386_linux_fetch_inferior_registers (str
     {
       int i;
 
-      for (i = 0; i < gdbarch_num_regs (get_regcache_arch (regcache)); i++)
+      for (i = 0; i < gdbarch_num_regs (regcache->arch ()); i++)
 	if (regno == -1 || regno == i)
 	  fetch_register (regcache, i);
 
@@ -536,7 +536,7 @@ i386_linux_store_inferior_registers (str
     {
       int i;
 
-      for (i = 0; i < gdbarch_num_regs (get_regcache_arch (regcache)); i++)
+      for (i = 0; i < gdbarch_num_regs (regcache->arch ()); i++)
 	if (regno == -1 || regno == i)
 	  store_register (regcache, i);
 
@@ -650,7 +650,7 @@ i386_linux_resume (struct target_ops *op
   if (step)
     {
       struct regcache *regcache = get_thread_regcache (ptid);
-      struct gdbarch *gdbarch = get_regcache_arch (regcache);
+      struct gdbarch *gdbarch = regcache->arch ();
       enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
       ULONGEST pc;
       gdb_byte buf[LINUX_SYSCALL_LEN];
@@ -702,10 +702,6 @@ i386_linux_resume (struct target_ops *op
   if (ptrace (request, pid, 0, gdb_signal_to_host (signal)) == -1)
     perror_with_name (("ptrace"));
 }
-
-
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_i386_linux_nat;
 
 void
 _initialize_i386_linux_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-linux-nat.h ./gdb/i386-linux-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-linux-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-linux-nat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for GNU/Linux i386.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-linux-tdep.c ./gdb/i386-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux i386.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -45,13 +45,9 @@
 
 #include "record-full.h"
 #include "linux-record.h"
-#include "features/i386/i386-linux.c"
-#include "features/i386/i386-mmx-linux.c"
-#include "features/i386/i386-mpx-linux.c"
-#include "features/i386/i386-avx-mpx-linux.c"
-#include "features/i386/i386-avx-linux.c"
-#include "features/i386/i386-avx-avx512-linux.c"
-#include "features/i386/i386-avx-mpx-avx512-pku-linux.c"
+
+#include "arch/i386.h"
+#include "target-descriptions.h"
 
 /* Return non-zero, when the register is in the corresponding register
    group.  Put the LINUX_ORIG_EAX register in the system group.  */
@@ -541,7 +537,7 @@ i386_linux_record_signal (struct gdbarch
 static LONGEST
 i386_linux_get_syscall_number_from_regcache (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   /* The content of a register.  */
   gdb_byte buf[4];
@@ -678,6 +674,31 @@ i386_linux_core_read_xcr0 (bfd *abfd)
   return xcr0;
 }
 
+/* See i386-linux-tdep.h.  */
+
+const struct target_desc *
+i386_linux_read_description (uint64_t xcr0)
+{
+  if (xcr0 == 0)
+    return NULL;
+
+  static struct target_desc *i386_linux_tdescs \
+    [2/*X87*/][2/*SSE*/][2/*AVX*/][2/*MPX*/][2/*AVX512*/][2/*PKRU*/] = {};
+  struct target_desc **tdesc;
+
+  tdesc = &i386_linux_tdescs[(xcr0 & X86_XSTATE_X87) ? 1 : 0]
+    [(xcr0 & X86_XSTATE_SSE) ? 1 : 0]
+    [(xcr0 & X86_XSTATE_AVX) ? 1 : 0]
+    [(xcr0 & X86_XSTATE_MPX) ? 1 : 0]
+    [(xcr0 & X86_XSTATE_AVX512) ? 1 : 0]
+    [(xcr0 & X86_XSTATE_PKRU) ? 1 : 0];
+
+  if (*tdesc == NULL)
+    *tdesc = i386_create_target_description (xcr0, true);
+
+  return *tdesc;
+}
+
 /* Get Linux/x86 target description from core dump.  */
 
 static const struct target_desc *
@@ -687,31 +708,15 @@ i386_linux_core_read_description (struct
 {
   /* Linux/i386.  */
   uint64_t xcr0 = i386_linux_core_read_xcr0 (abfd);
+  const struct target_desc *tdesc = i386_linux_read_description (xcr0);
 
-  switch ((xcr0 & X86_XSTATE_ALL_MASK))
-    {
-    case X86_XSTATE_AVX_MPX_AVX512_PKU_MASK:
-      return tdesc_i386_avx_mpx_avx512_pku_linux;
-    case X86_XSTATE_AVX_AVX512_MASK:
-      return tdesc_i386_avx_avx512_linux;
-    case X86_XSTATE_MPX_MASK:
-      return tdesc_i386_mpx_linux;
-    case X86_XSTATE_AVX_MPX_MASK:
-      return tdesc_i386_avx_mpx_linux;
-    case X86_XSTATE_AVX_MASK:
-      return tdesc_i386_avx_linux;
-    case X86_XSTATE_SSE_MASK:
-      return tdesc_i386_linux;
-    case X86_XSTATE_X87_MASK:
-      return tdesc_i386_mmx_linux;
-    default:
-      break;
-    }
+  if (tdesc != NULL)
+    return tdesc;
 
   if (bfd_get_section_by_name (abfd, ".reg-xfp") != NULL)
-    return tdesc_i386_linux;
+    return i386_linux_read_description (X86_XSTATE_SSE_MASK);
   else
-    return tdesc_i386_mmx_linux;
+    return i386_linux_read_description (X86_XSTATE_X87_MASK);
 }
 
 /* Similar to i386_supply_fpregset, but use XSAVE extended state.  */
@@ -797,21 +802,21 @@ i386_linux_displaced_step_copy_insn (str
 				     CORE_ADDR from, CORE_ADDR to,
 				     struct regcache *regs)
 {
-  struct displaced_step_closure *closure;
-  
-  closure = i386_displaced_step_copy_insn (gdbarch, from, to, regs);
+  displaced_step_closure *closure_
+    =  i386_displaced_step_copy_insn (gdbarch, from, to, regs);
 
   if (i386_linux_get_syscall_number_from_regcache (regs) != -1)
     {
-      /* Since we use simple_displaced_step_copy_insn, our closure is a
-	 copy of the instruction.  */
-      gdb_byte *insn = (gdb_byte *) closure;
+      /* The closure returned by i386_displaced_step_copy_insn is simply a
+	 buffer with a copy of the instruction. */
+      i386_displaced_step_closure *closure
+	= (i386_displaced_step_closure *) closure_;
 
       /* Fake nop.  */
-      insn[0] = 0x90;
+      closure->buf[0] = 0x90;
     }
 
-  return closure;
+  return closure_;
 }
 
 static void
@@ -819,8 +824,7 @@ i386_linux_init_abi (struct gdbarch_info
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   const struct target_desc *tdesc = info.target_desc;
-  struct tdesc_arch_data *tdesc_data
-    = (struct tdesc_arch_data *) info.tdep_info;
+  struct tdesc_arch_data *tdesc_data = info.tdesc_data;
   const struct tdesc_feature *feature;
   int valid_p;
 
@@ -835,7 +839,7 @@ i386_linux_init_abi (struct gdbarch_info
   set_gdbarch_num_regs (gdbarch, I386_LINUX_NUM_REGS);
 
   if (! tdesc_has_registers (tdesc))
-    tdesc = tdesc_i386_linux;
+    tdesc = i386_linux_read_description (X86_XSTATE_SSE_MASK);
   tdep->tdesc = tdesc;
 
   feature = tdesc_find_feature (tdesc, "org.gnu.gdb.i386.linux");
@@ -1059,8 +1063,6 @@ i386_linux_init_abi (struct gdbarch_info
   set_gdbarch_displaced_step_copy_insn (gdbarch,
                                         i386_linux_displaced_step_copy_insn);
   set_gdbarch_displaced_step_fixup (gdbarch, i386_displaced_step_fixup);
-  set_gdbarch_displaced_step_free_closure (gdbarch,
-                                           simple_displaced_step_free_closure);
   set_gdbarch_displaced_step_location (gdbarch,
                                        linux_displaced_step_location);
 
@@ -1074,21 +1076,33 @@ i386_linux_init_abi (struct gdbarch_info
 					 i386_linux_handle_segmentation_fault);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern void _initialize_i386_linux_tdep (void);
-
 void
 _initialize_i386_linux_tdep (void)
 {
   gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_LINUX,
 			  i386_linux_init_abi);
 
-  /* Initialize the Linux target description.  */
-  initialize_tdesc_i386_linux ();
-  initialize_tdesc_i386_mmx_linux ();
-  initialize_tdesc_i386_avx_linux ();
-  initialize_tdesc_i386_mpx_linux ();
-  initialize_tdesc_i386_avx_mpx_linux ();
-  initialize_tdesc_i386_avx_avx512_linux ();
-  initialize_tdesc_i386_avx_mpx_avx512_pku_linux ();
+#if GDB_SELF_TEST
+  struct
+  {
+    const char *xml;
+    uint64_t mask;
+  } xml_masks[] = {
+    { "i386/i386-linux.xml", X86_XSTATE_SSE_MASK },
+    { "i386/i386-mmx-linux.xml", X86_XSTATE_X87_MASK },
+    { "i386/i386-avx-linux.xml", X86_XSTATE_AVX_MASK },
+    { "i386/i386-mpx-linux.xml", X86_XSTATE_MPX_MASK },
+    { "i386/i386-avx-mpx-linux.xml", X86_XSTATE_AVX_MPX_MASK },
+    { "i386/i386-avx-avx512-linux.xml", X86_XSTATE_AVX_AVX512_MASK },
+    { "i386/i386-avx-mpx-avx512-pku-linux.xml",
+      X86_XSTATE_AVX_MPX_AVX512_PKU_MASK },
+  };
+
+  for (auto &a : xml_masks)
+    {
+      auto tdesc = i386_linux_read_description (a.mask);
+
+      selftests::record_xml_tdesc (a.xml, tdesc);
+    }
+#endif /* GDB_SELF_TEST */
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-linux-tdep.h ./gdb/i386-linux-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-linux-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-linux-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux x86.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -42,14 +42,8 @@ extern uint64_t i386_linux_core_read_xcr
 extern void i386_linux_handle_segmentation_fault (struct gdbarch *gdbarch,
 						  struct ui_out *uiout);
 
-/* Linux target description.  */
-extern struct target_desc *tdesc_i386_linux;
-extern struct target_desc *tdesc_i386_mmx_linux;
-extern struct target_desc *tdesc_i386_avx_linux;
-extern struct target_desc *tdesc_i386_mpx_linux;
-extern struct target_desc *tdesc_i386_avx_mpx_linux;
-extern struct target_desc *tdesc_i386_avx_avx512_linux;
-extern struct target_desc *tdesc_i386_avx_mpx_avx512_pku_linux;
+/* Return the target description according to XCR0.  */
+extern const struct target_desc *i386_linux_read_description (uint64_t xcr0);
 
 /* Format of XSAVE extended state is:
  	struct
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-nbsd-nat.c ./gdb/i386-nbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-nbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-nbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for NetBSD/i386.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -70,10 +70,6 @@ i386nbsd_supply_pcb (struct regcache *re
 
   return 1;
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_i386nbsd_nat (void);
 
 void
 _initialize_i386nbsd_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-nbsd-tdep.c ./gdb/i386-nbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-nbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-nbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for NetBSD/i386.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -316,9 +316,6 @@ i386nbsdelf_init_abi (struct gdbarch_inf
   tdep->struct_return = pcc_struct_return;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_i386nbsd_tdep;
-
 void
 _initialize_i386nbsd_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-nto-tdep.c ./gdb/i386-nto-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-nto-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-nto-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for QNX Neutrino x86.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    Contributed by QNX Software Systems Ltd.
 
@@ -76,7 +76,7 @@ nto_reg_offset (int regnum)
 static void
 i386nto_supply_gregset (struct regcache *regcache, char *gpregs)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   gdb_assert (tdep->gregset_reg_offset == i386nto_gregset_reg_offset);
@@ -367,9 +367,6 @@ i386nto_init_abi (struct gdbarch_info in
   set_gdbarch_wchar_signed (gdbarch, 0);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_i386nto_tdep;
-
 void
 _initialize_i386nto_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-obsd-nat.c ./gdb/i386-obsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-obsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-obsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for OpenBSD/i386.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -34,7 +34,7 @@
 static int
 i386obsd_supply_pcb (struct regcache *regcache, struct pcb *pcb)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   struct switchframe sf;
 
@@ -87,10 +87,6 @@ i386obsd_supply_pcb (struct regcache *re
 
   return 1;
 }
-
-
-/* Prevent warning from -Wmissing-prototypes.  */
-void _initialize_i386obsd_nat (void);
 
 void
 _initialize_i386obsd_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-obsd-tdep.c ./gdb/i386-obsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-obsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-obsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for OpenBSD/i386.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -190,7 +190,7 @@ static void
 i386obsd_supply_uthread (struct regcache *regcache,
 			 int regnum, CORE_ADDR addr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR sp_addr = addr + I386OBSD_UTHREAD_ESP_OFFSET;
   CORE_ADDR sp = 0;
@@ -234,7 +234,7 @@ static void
 i386obsd_collect_uthread (const struct regcache *regcache,
 			  int regnum, CORE_ADDR addr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR sp_addr = addr + I386OBSD_UTHREAD_ESP_OFFSET;
   CORE_ADDR sp = 0;
@@ -442,10 +442,6 @@ i386obsd_init_abi (struct gdbarch_info i
   set_solib_svr4_fetch_link_map_offsets
     (gdbarch, svr4_ilp32_fetch_link_map_offsets);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_i386obsd_tdep (void);
 
 void
 _initialize_i386obsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-sol2-nat.c ./gdb/i386-sol2-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-sol2-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-sol2-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for Solaris x86.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -130,9 +130,6 @@ fill_fpregset (const struct regcache *re
 
 #endif
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern void _initialize_amd64_sol2_nat (void);
-
 void
 _initialize_amd64_sol2_nat (void)
 {
@@ -141,9 +138,7 @@ _initialize_amd64_sol2_nat (void)
   /* Fill in the generic procfs methods.  */
   t = procfs_target ();
 
-#ifdef NEW_PROC_API	/* Solaris 6 and above can do HW watchpoints.  */
   procfs_use_watchpoints (t);
-#endif
 
 #if defined (PR_MODEL_NATIVE) && (PR_MODEL_NATIVE == PR_MODEL_LP64)
   amd64_native_gregset32_reg_offset = amd64_sol2_gregset32_reg_offset;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-sol2-tdep.c ./gdb/i386-sol2-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-sol2-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-sol2-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Solaris x86.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -150,9 +150,6 @@ i386_sol2_osabi_sniffer (bfd *abfd)
   return GDB_OSABI_UNKNOWN;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_i386_sol2_tdep (void);
-
 void
 _initialize_i386_sol2_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-tdep.c ./gdb/i386-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Intel 386 target-dependent stuff.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -23,7 +23,6 @@
 #include "command.h"
 #include "dummy-frame.h"
 #include "dwarf2-frame.h"
-#include "doublest.h"
 #include "frame.h"
 #include "frame-base.h"
 #include "frame-unwind.h"
@@ -40,6 +39,7 @@
 #include "symfile.h"
 #include "symtab.h"
 #include "target.h"
+#include "target-float.h"
 #include "value.h"
 #include "dis-asm.h"
 #include "disasm.h"
@@ -50,13 +50,8 @@
 
 #include "record.h"
 #include "record-full.h"
-#include "features/i386/i386.c"
-#include "features/i386/i386-avx.c"
-#include "features/i386/i386-mpx.c"
-#include "features/i386/i386-avx-mpx.c"
-#include "features/i386/i386-avx-avx512.c"
-#include "features/i386/i386-avx-mpx-avx512-pku.c"
-#include "features/i386/i386-mmx.c"
+#include "target-descriptions.h"
+#include "arch/i386.h"
 
 #include "ax.h"
 #include "ax-gdb.h"
@@ -799,8 +794,7 @@ i386_insn_is_jump (struct gdbarch *gdbar
   return i386_jmp_p (insn);
 }
 
-/* Some kernels may run one past a syscall insn, so we have to cope.
-   Otherwise this is just simple_displaced_step_copy_insn.  */
+/* Some kernels may run one past a syscall insn, so we have to cope.  */
 
 struct displaced_step_closure *
 i386_displaced_step_copy_insn (struct gdbarch *gdbarch,
@@ -808,7 +802,8 @@ i386_displaced_step_copy_insn (struct gd
 			       struct regcache *regs)
 {
   size_t len = gdbarch_max_insn_length (gdbarch);
-  gdb_byte *buf = (gdb_byte *) xmalloc (len);
+  i386_displaced_step_closure *closure = new i386_displaced_step_closure (len);
+  gdb_byte *buf = closure->buf.data ();
 
   read_memory (from, buf, len);
 
@@ -833,7 +828,7 @@ i386_displaced_step_copy_insn (struct gd
       displaced_step_dump_bytes (gdb_stdlog, buf, len);
     }
 
-  return (struct displaced_step_closure *) buf;
+  return closure;
 }
 
 /* Fix up the state of registers and memory after having single-stepped
@@ -841,7 +836,7 @@ i386_displaced_step_copy_insn (struct gd
 
 void
 i386_displaced_step_fixup (struct gdbarch *gdbarch,
-                           struct displaced_step_closure *closure,
+                           struct displaced_step_closure *closure_,
                            CORE_ADDR from, CORE_ADDR to,
                            struct regcache *regs)
 {
@@ -853,9 +848,9 @@ i386_displaced_step_fixup (struct gdbarc
      applying it.  */
   ULONGEST insn_offset = to - from;
 
-  /* Since we use simple_displaced_step_copy_insn, our closure is a
-     copy of the instruction.  */
-  gdb_byte *insn = (gdb_byte *) closure;
+  i386_displaced_step_closure *closure
+    = (i386_displaced_step_closure *) closure_;
+  gdb_byte *insn = closure->buf.data ();
   /* The start of the insn, needed in case we see some prefixes.  */
   gdb_byte *insn_start = insn;
 
@@ -2807,7 +2802,7 @@ i386_extract_return_value (struct gdbarc
 	 exactly how it would happen on the target itself, but it is
 	 the best we can do.  */
       regcache_raw_read (regcache, I386_ST0_REGNUM, buf);
-      convert_typed_floating (buf, i387_ext_type (gdbarch), valbuf, type);
+      target_float_convert (buf, i387_ext_type (gdbarch), valbuf, type);
     }
   else
     {
@@ -2862,7 +2857,7 @@ i386_store_return_value (struct gdbarch 
 	 floating-point format used by the FPU.  This is probably
 	 not exactly how it would happen on the target itself, but
 	 it is the best we can do.  */
-      convert_typed_floating (valbuf, type, buf, i387_ext_type (gdbarch));
+      target_float_convert (valbuf, type, buf, i387_ext_type (gdbarch));
       regcache_raw_write (regcache, I386_ST0_REGNUM, buf);
 
       /* Set the top of the floating-point register stack to 7.  The
@@ -3255,7 +3250,7 @@ i386_pseudo_register_type (struct gdbarc
 static int
 i386_mmx_regnum_to_fp_regnum (struct regcache *regcache, int regnum)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
+  struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ());
   int mmxreg, fpreg;
   ULONGEST fstat;
   int tos;
@@ -3844,7 +3839,7 @@ void
 i386_supply_gregset (const struct regset *regset, struct regcache *regcache,
 		     int regnum, const void *gregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   const gdb_byte *regs = (const gdb_byte *) gregs;
   int i;
@@ -3869,7 +3864,7 @@ i386_collect_gregset (const struct regse
 		      const struct regcache *regcache,
 		      int regnum, void *gregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   gdb_byte *regs = (gdb_byte *) gregs;
   int i;
@@ -3892,7 +3887,7 @@ static void
 i386_supply_fpregset (const struct regset *regset, struct regcache *regcache,
 		      int regnum, const void *fpregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   if (len == I387_SIZEOF_FXSAVE)
@@ -3915,7 +3910,7 @@ i386_collect_fpregset (const struct regs
 		       const struct regcache *regcache,
 		       int regnum, void *fpregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   if (len == I387_SIZEOF_FXSAVE)
@@ -4011,7 +4006,7 @@ i386_print_insn (bfd_vma pc, struct disa
 
   info->disassembler_options = disassembly_flavor;
 
-  return print_insn_i386 (pc, info);
+  return default_print_insn (pc, info);
 }
 
 
@@ -4523,8 +4518,8 @@ i386_register_reggroup_p (struct gdbarch
   const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int fp_regnum_p, mmx_regnum_p, xmm_regnum_p, mxcsr_regnum_p,
       ymm_regnum_p, ymmh_regnum_p, ymm_avx512_regnum_p, ymmh_avx512_regnum_p,
-      bndr_regnum_p, bnd_regnum_p, k_regnum_p, zmm_regnum_p, zmmh_regnum_p,
-      zmm_avx512_regnum_p, mpx_ctrl_regnum_p, xmm_avx512_regnum_p,
+      bndr_regnum_p, bnd_regnum_p, zmm_regnum_p, zmmh_regnum_p,
+      mpx_ctrl_regnum_p, xmm_avx512_regnum_p,
       avx512_p, avx_p, sse_p, pkru_regnum_p;
 
   /* Don't include pseudo registers, except for MMX, in any register
@@ -8549,7 +8544,7 @@ i386_gdbarch_init (struct gdbarch_info i
   /* Get the x86 target description from INFO.  */
   tdesc = info.target_desc;
   if (! tdesc_has_registers (tdesc))
-    tdesc = tdesc_i386;
+    tdesc = i386_target_description (X86_XSTATE_SSE_MASK);
   tdep->tdesc = tdesc;
 
   tdep->num_core_regs = I386_NUM_GREGS + I387_NUM_REGS;
@@ -8604,7 +8599,7 @@ i386_gdbarch_init (struct gdbarch_info i
   /* Hook in ABI-specific overrides, if they have been registered.
      Note: If INFO specifies a 64 bit arch, this is where we turn
      a 32-bit i386 into a 64-bit amd64.  */
-  info.tdep_info = tdesc_data;
+  info.tdesc_data = tdesc_data;
   gdbarch_init_osabi (info, gdbarch);
 
   if (!i386_validate_tdesc_p (tdep, tdesc_data))
@@ -8718,21 +8713,20 @@ i386_gdbarch_init (struct gdbarch_info i
 const struct target_desc *
 i386_target_description (uint64_t xcr0)
 {
-  switch (xcr0 & X86_XSTATE_ALL_MASK)
-    {
-    case X86_XSTATE_AVX_MPX_AVX512_PKU_MASK:
-      return tdesc_i386_avx_mpx_avx512_pku;
-    case X86_XSTATE_AVX_AVX512_MASK:
-      return tdesc_i386_avx_avx512;
-    case X86_XSTATE_AVX_MPX_MASK:
-      return tdesc_i386_avx_mpx;
-    case X86_XSTATE_MPX_MASK:
-      return tdesc_i386_mpx;
-    case X86_XSTATE_AVX_MASK:
-      return tdesc_i386_avx;
-    default:
-      return tdesc_i386;
-    }
+  static target_desc *i386_tdescs \
+    [2/*SSE*/][2/*AVX*/][2/*MPX*/][2/*AVX512*/][2/*PKRU*/] = {};
+  target_desc **tdesc;
+
+  tdesc = &i386_tdescs[(xcr0 & X86_XSTATE_SSE) ? 1 : 0]
+    [(xcr0 & X86_XSTATE_AVX) ? 1 : 0]
+    [(xcr0 & X86_XSTATE_MPX) ? 1 : 0]
+    [(xcr0 & X86_XSTATE_AVX512) ? 1 : 0]
+    [(xcr0 & X86_XSTATE_PKRU) ? 1 : 0];
+
+  if (*tdesc == NULL)
+    *tdesc = i386_create_target_description (xcr0, false);
+
+  return *tdesc;
 }
 
 #define MPX_BASE_MASK (~(ULONGEST) 0xfff)
@@ -8748,7 +8742,7 @@ i386_mpx_bd_base (void)
   enum register_status regstatus;
 
   rcache = get_current_regcache ();
-  tdep = gdbarch_tdep (get_regcache_arch (rcache));
+  tdep = gdbarch_tdep (rcache->arch ());
 
   regstatus = regcache_raw_read_unsigned (rcache, tdep->bndcfgu_regnum, &ret);
 
@@ -8880,7 +8874,7 @@ i386_mpx_print_bounds (const CORE_ADDR b
 /* Implement the command "show mpx bound".  */
 
 static void
-i386_mpx_info_bounds (char *args, int from_tty)
+i386_mpx_info_bounds (const char *args, int from_tty)
 {
   CORE_ADDR bd_base = 0;
   CORE_ADDR addr;
@@ -8922,7 +8916,7 @@ i386_mpx_info_bounds (char *args, int fr
 /* Implement the command "set mpx bound".  */
 
 static void
-i386_mpx_set_bounds (char *args, int from_tty)
+i386_mpx_set_bounds (const char *args, int from_tty)
 {
   CORE_ADDR bd_base = 0;
   CORE_ADDR addr, lower, upper;
@@ -8977,7 +8971,7 @@ static struct cmd_list_element *mpx_set_
 /* Helper function for the CLI commands.  */
 
 static void
-set_mpx_cmd (char *args, int from_tty)
+set_mpx_cmd (const char *args, int from_tty)
 {
   help_list (mpx_set_cmdlist, "set mpx ", all_commands, gdb_stdout);
 }
@@ -8985,14 +8979,11 @@ set_mpx_cmd (char *args, int from_tty)
 /* Helper function for the CLI commands.  */
 
 static void
-show_mpx_cmd (char *args, int from_tty)
+show_mpx_cmd (const char *args, int from_tty)
 {
   cmd_show_list (mpx_show_cmdlist, from_tty, "");
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_i386_tdep (void);
-
 void
 _initialize_i386_tdep (void)
 {
@@ -9054,15 +9045,30 @@ Show Intel Memory Protection Extensions 
   /* Initialize the i386-specific register groups.  */
   i386_init_reggroups ();
 
-  /* Initialize the standard target descriptions.  */
-  initialize_tdesc_i386 ();
-  initialize_tdesc_i386_mmx ();
-  initialize_tdesc_i386_avx ();
-  initialize_tdesc_i386_mpx ();
-  initialize_tdesc_i386_avx_mpx ();
-  initialize_tdesc_i386_avx_avx512 ();
-  initialize_tdesc_i386_avx_mpx_avx512_pku ();
-
   /* Tell remote stub that we support XML target description.  */
   register_remote_support_xml ("i386");
+
+#if GDB_SELF_TEST
+  struct
+  {
+    const char *xml;
+    uint64_t mask;
+  } xml_masks[] = {
+    { "i386/i386.xml", X86_XSTATE_SSE_MASK },
+    { "i386/i386-mmx.xml", X86_XSTATE_X87_MASK },
+    { "i386/i386-avx.xml", X86_XSTATE_AVX_MASK },
+    { "i386/i386-mpx.xml", X86_XSTATE_MPX_MASK },
+    { "i386/i386-avx-mpx.xml", X86_XSTATE_AVX_MPX_MASK },
+    { "i386/i386-avx-avx512.xml", X86_XSTATE_AVX_AVX512_MASK },
+    { "i386/i386-avx-mpx-avx512-pku.xml",
+      X86_XSTATE_AVX_MPX_AVX512_PKU_MASK },
+  };
+
+  for (auto &a : xml_masks)
+    {
+      auto tdesc = i386_target_description (a.mask);
+
+      selftests::record_xml_tdesc (a.xml, tdesc);
+    }
+#endif /* GDB_SELF_TEST */
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-tdep.h ./gdb/i386-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the i386.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,6 +20,8 @@
 #ifndef I386_TDEP_H
 #define I386_TDEP_H
 
+#include "infrun.h"
+
 struct frame_info;
 struct gdbarch;
 struct reggroup;
@@ -339,9 +341,6 @@ enum record_i386_regnum
 /* Size of the largest register.  */
 #define I386_MAX_REGISTER_SIZE	64
 
-extern struct target_desc *tdesc_i386;
-extern struct target_desc *tdesc_i386_mmx;
-
 /* Types for i386-specific registers.  */
 extern struct type *i387_ext_type (struct gdbarch *gdbarch);
 
@@ -419,6 +418,8 @@ extern void
 				     void *cb_data,
 				     const struct regcache *regcache);
 
+typedef buf_displaced_step_closure i386_displaced_step_closure;
+
 extern struct displaced_step_closure *i386_displaced_step_copy_insn
   (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to,
    struct regcache *regs);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-v4-nat.c ./gdb/i386-v4-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-v4-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-v4-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for Unix SVR4 running on i386's.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -136,7 +136,7 @@ fill_gregset (const struct regcache *reg
 void
 supply_fpregset (struct regcache *regcache, const fpregset_t *fpregsetp)
 {
-  if (gdbarch_fp0_regnum (get_regcache_arch (regcache)) == 0)
+  if (gdbarch_fp0_regnum (regcache->arch ()) == 0)
     return;
 
   i387_supply_fsave (regcache, -1, fpregsetp);
@@ -150,7 +150,7 @@ void
 fill_fpregset (const struct regcache *regcache,
 	       fpregset_t *fpregsetp, int regno)
 {
-  if (gdbarch_fp0_regnum (get_regcache_arch (regcache)) == 0)
+  if (gdbarch_fp0_regnum (regcache->arch ()) == 0)
     return;
 
   i387_collect_fsave (regcache, regno, fpregsetp);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-windows-nat.c ./gdb/i386-windows-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i386-windows-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i386-windows-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -79,9 +79,6 @@ i386_windows_segment_register_p (int reg
   return regnum >= I386_CS_REGNUM && regnum <= I386_GS_REGNUM;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_i386_windows_nat;
-
 void
 _initialize_i386_windows_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i387-tdep.c ./gdb/i387-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i387-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i387-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Intel 387 floating point stuff.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -18,13 +18,12 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "defs.h"
-#include "doublest.h"
-#include "floatformat.h"
 #include "frame.h"
 #include "gdbcore.h"
 #include "inferior.h"
 #include "language.h"
 #include "regcache.h"
+#include "target-float.h"
 #include "value.h"
 
 #include "i386-tdep.h"
@@ -37,23 +36,13 @@ static void
 print_i387_value (struct gdbarch *gdbarch,
 		  const gdb_byte *raw, struct ui_file *file)
 {
-  DOUBLEST value;
-
-  /* Using extract_typed_floating here might affect the representation
-     of certain numbers such as NaNs, even if GDB is running natively.
-     This is fine since our caller already detects such special
-     numbers and we print the hexadecimal representation anyway.  */
-  value = extract_typed_floating (raw, i387_ext_type (gdbarch));
-
   /* We try to print 19 digits.  The last digit may or may not contain
      garbage, but we'd better print one too many.  We need enough room
      to print the value, 1 position for the sign, 1 for the decimal
      point, 19 for the digits and 6 for the exponent adds up to 27.  */
-#ifdef PRINTF_HAS_LONG_DOUBLE
-  fprintf_filtered (file, " %-+27.19Lg", (long double) value);
-#else
-  fprintf_filtered (file, " %-+27.19g", (double) value);
-#endif
+  const struct type *type = i387_ext_type (gdbarch);
+  std::string str = target_float_to_string (raw, type, " %-+27.19g");
+  fprintf_filtered (file, "%s", str.c_str ());
 }
 
 /* Print the classification for the register contents RAW.  */
@@ -341,8 +330,9 @@ i387_convert_register_p (struct gdbarch 
   if (i386_fp_regnum_p (gdbarch, regnum))
     {
       /* Floating point registers must be converted unless we are
-	 accessing them in their hardware type.  */
-      if (type == i387_ext_type (gdbarch))
+	 accessing them in their hardware type or TYPE is not float.  */
+      if (type == i387_ext_type (gdbarch)
+	  || TYPE_CODE (type) != TYPE_CODE_FLT)
 	return 0;
       else
 	return 1;
@@ -374,11 +364,12 @@ i387_register_to_value (struct frame_inf
     }
 
   /* Convert to TYPE.  */
-  if (!get_frame_register_bytes (frame, regnum, 0, TYPE_LENGTH (type),
+  if (!get_frame_register_bytes (frame, regnum, 0,
+				 register_size (gdbarch, regnum),
 				 from, optimizedp, unavailablep))
     return 0;
 
-  convert_typed_floating (from, i387_ext_type (gdbarch), to, type);
+  target_float_convert (from, i387_ext_type (gdbarch), to, type);
   *optimizedp = *unavailablep = 0;
   return 1;
 }
@@ -404,7 +395,7 @@ i387_value_to_register (struct frame_inf
     }
 
   /* Convert from TYPE.  */
-  convert_typed_floating (from, type, to, i387_ext_type (gdbarch));
+  target_float_convert (from, type, to, i387_ext_type (gdbarch));
   put_frame_register (frame, regnum, to);
 }
 
@@ -446,7 +437,7 @@ static int fsave_offset[] =
 void
 i387_supply_fsave (struct regcache *regcache, int regnum, const void *fsave)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   const gdb_byte *regs = (const gdb_byte *) fsave;
@@ -501,7 +492,7 @@ i387_supply_fsave (struct regcache *regc
 void
 i387_collect_fsave (const struct regcache *regcache, int regnum, void *fsave)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
+  struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ());
   gdb_byte *regs = (gdb_byte *) fsave;
   int i;
 
@@ -594,7 +585,7 @@ static int i387_tag (const gdb_byte *raw
 void
 i387_supply_fxsave (struct regcache *regcache, int regnum, const void *fxsave)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
+  struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ());
   const gdb_byte *regs = (const gdb_byte *) fxsave;
   int i;
 
@@ -677,7 +668,7 @@ i387_supply_fxsave (struct regcache *reg
 void
 i387_collect_fxsave (const struct regcache *regcache, int regnum, void *fxsave)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
+  struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ());
   gdb_byte *regs = (gdb_byte *) fxsave;
   int i;
 
@@ -907,7 +898,7 @@ void
 i387_supply_xsave (struct regcache *regcache, int regnum,
 		   const void *xsave)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   const gdb_byte *regs = (const gdb_byte *) xsave;
   int i;
@@ -1315,7 +1306,7 @@ void
 i387_collect_xsave (const struct regcache *regcache, int regnum,
 		    void *xsave, int gcore)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   gdb_byte *regs = (gdb_byte *) xsave;
   int i;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i387-tdep.h ./gdb/i387-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/i387-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/i387-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the i387.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ia64-libunwind-tdep.c ./gdb/ia64-libunwind-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ia64-libunwind-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ia64-libunwind-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Frame unwinder for ia64 frames using the libunwind library.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    Written by Jeff Johnston, contributed by Red Hat Inc.
 
@@ -36,6 +36,7 @@
 #include "ia64-libunwind-tdep.h"
 
 #include "complaints.h"
+#include "common/preprocessor.h"
 
 /* IA-64 is the only target that currently uses ia64-libunwind-tdep.
    Note how UNW_TARGET, UNW_OBJ, etc. are compile time constants below.
@@ -99,8 +100,6 @@ struct libunwind_frame_cache
 /* We need to qualify the function names with a platform-specific prefix
    to match the names used by the libunwind library.  The UNW_OBJ macro is
    provided by the libunwind.h header file.  */
-#define STRINGIFY2(name)	#name
-#define STRINGIFY(name)		STRINGIFY2(name)
 
 #ifndef LIBUNWIND_SO
 /* Use the stable ABI major version number.  `libunwind-ia64.so' is a link time
@@ -593,9 +592,6 @@ libunwind_is_initialized (void)
   return libunwind_initialized;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_libunwind_frame (void);
-
 void
 _initialize_libunwind_frame (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ia64-libunwind-tdep.h ./gdb/ia64-libunwind-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ia64-libunwind-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ia64-libunwind-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Frame unwinder for ia64 frames with libunwind frame information.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    Contributed by Jeff Johnston.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ia64-linux-nat.c ./gdb/ia64-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ia64-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ia64-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Functions specific to running gdb native on IA-64 running
    GNU/Linux.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -694,7 +694,7 @@ ia64_linux_can_use_hw_breakpoint (struct
 static void
 ia64_linux_fetch_register (struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   CORE_ADDR addr;
   size_t size;
   PTRACE_TYPE_RET *buf;
@@ -771,7 +771,7 @@ ia64_linux_fetch_registers (struct targe
 {
   if (regnum == -1)
     for (regnum = 0;
-	 regnum < gdbarch_num_regs (get_regcache_arch (regcache));
+	 regnum < gdbarch_num_regs (regcache->arch ());
 	 regnum++)
       ia64_linux_fetch_register (regcache, regnum);
   else
@@ -783,7 +783,7 @@ ia64_linux_fetch_registers (struct targe
 static void
 ia64_linux_store_register (const struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   CORE_ADDR addr;
   size_t size;
   PTRACE_TYPE_RET *buf;
@@ -826,7 +826,7 @@ ia64_linux_store_registers (struct targe
 {
   if (regnum == -1)
     for (regnum = 0;
-	 regnum < gdbarch_num_regs (get_regcache_arch (regcache));
+	 regnum < gdbarch_num_regs (regcache->arch ());
 	 regnum++)
       ia64_linux_store_register (regcache, regnum);
   else
@@ -891,8 +891,6 @@ ia64_linux_status_is_event (int status)
 				 || WSTOPSIG (status) == SIGILL);
 }
 
-void _initialize_ia64_linux_nat (void);
-
 void
 _initialize_ia64_linux_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ia64-linux-tdep.c ./gdb/ia64-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ia64-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ia64-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the IA-64 for GDB, the GNU debugger.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -256,9 +256,6 @@ ia64_linux_init_abi (struct gdbarch_info
 				      ia64_linux_stap_is_single_operand);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_ia64_linux_tdep;
-
 void
 _initialize_ia64_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ia64-tdep.c ./gdb/ia64-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ia64-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ia64-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the IA-64 for GDB, the GNU debugger.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,7 +28,7 @@
 #include "frame.h"
 #include "frame-base.h"
 #include "frame-unwind.h"
-#include "doublest.h"
+#include "target-float.h"
 #include "value.h"
 #include "objfiles.h"
 #include "elf/common.h"		/* for DT_PLTGOT value */
@@ -125,6 +125,9 @@ static CORE_ADDR ia64_find_global_pointe
 
 #define NUM_IA64_RAW_REGS 462
 
+/* Big enough to hold a FP register in bytes.  */
+#define IA64_FP_REGISTER_SIZE 16
+
 static int sp_regnum = IA64_GR12_REGNUM;
 
 /* NOTE: we treat the register stack registers r32-r127 as
@@ -641,7 +644,6 @@ ia64_memory_insert_breakpoint (struct gd
   long long instr_breakpoint;
   int val;
   int templ;
-  struct cleanup *cleanup;
 
   if (slotnum > 2)
     error (_("Can't insert breakpoint for slot numbers greater than 2."));
@@ -653,13 +655,11 @@ ia64_memory_insert_breakpoint (struct gd
      Otherwise, we could possibly store into the shadow parts of the adjacent
      placed breakpoints.  It is due to our SHADOW_CONTENTS overlapping the real
      breakpoint instruction bits region.  */
-  cleanup = make_show_memory_breakpoints_cleanup (0);
+  scoped_restore restore_memory_0
+    = make_scoped_restore_show_memory_breakpoints (0);
   val = target_read_memory (addr, bundle, BUNDLE_LEN);
   if (val != 0)
-    {
-      do_cleanups (cleanup);
-      return val;
-    }
+    return val;
 
   /* SHADOW_SLOTNUM saves the original slot number as expected by the caller
      for addressing the SHADOW_CONTENTS placement.  */
@@ -700,13 +700,11 @@ ia64_memory_insert_breakpoint (struct gd
      restoration mechanism kicks in and we would possibly remove parts of the
      adjacent placed breakpoints.  It is due to our SHADOW_CONTENTS overlapping
      the real breakpoint instruction bits region.  */
-  make_show_memory_breakpoints_cleanup (1);
+  scoped_restore restore_memory_1
+    = make_scoped_restore_show_memory_breakpoints (1);
   val = target_read_memory (addr, bundle, BUNDLE_LEN);
   if (val != 0)
-    {
-      do_cleanups (cleanup);
-      return val;
-    }
+    return val;
 
   /* Breakpoints already present in the code will get deteacted and not get
      reinserted by bp_loc_is_permanent.  Multiple breakpoints at the same
@@ -722,7 +720,6 @@ ia64_memory_insert_breakpoint (struct gd
   val = target_write_memory (addr + shadow_slotnum, bundle + shadow_slotnum,
 			     bp_tgt->shadow_len);
 
-  do_cleanups (cleanup);
   return val;
 }
 
@@ -736,7 +733,6 @@ ia64_memory_remove_breakpoint (struct gd
   long long instr_breakpoint, instr_saved;
   int val;
   int templ;
-  struct cleanup *cleanup;
 
   addr &= ~0x0f;
 
@@ -745,13 +741,11 @@ ia64_memory_remove_breakpoint (struct gd
      mechanism kicks in and we would possibly remove parts of the adjacent
      placed breakpoints.  It is due to our SHADOW_CONTENTS overlapping the real
      breakpoint instruction bits region.  */
-  cleanup = make_show_memory_breakpoints_cleanup (1);
+  scoped_restore restore_memory_1
+    = make_scoped_restore_show_memory_breakpoints (1);
   val = target_read_memory (addr, bundle_mem, BUNDLE_LEN);
   if (val != 0)
-    {
-      do_cleanups (cleanup);
-      return val;
-    }
+    return val;
 
   /* SHADOW_SLOTNUM saves the original slot number as expected by the caller
      for addressing the SHADOW_CONTENTS placement.  */
@@ -769,7 +763,6 @@ ia64_memory_remove_breakpoint (struct gd
       warning (_("Cannot remove breakpoint at address %s from non-existing "
 		 "X-type slot, memory has changed underneath"),
 	       paddress (gdbarch, bp_tgt->placed_address));
-      do_cleanups (cleanup);
       return -1;
     }
   if (template_encoding_table[templ][slotnum] == L)
@@ -789,7 +782,6 @@ ia64_memory_remove_breakpoint (struct gd
       warning (_("Cannot remove breakpoint at address %s, "
 		 "no break instruction at such address."),
 	       paddress (gdbarch, bp_tgt->placed_address));
-      do_cleanups (cleanup);
       return -1;
     }
 
@@ -805,7 +797,6 @@ ia64_memory_remove_breakpoint (struct gd
   replace_slotN_contents (bundle_mem, instr_saved, slotnum);
   val = target_write_raw_memory (addr, bundle_mem, BUNDLE_LEN);
 
-  do_cleanups (cleanup);
   return val;
 }
 
@@ -834,7 +825,6 @@ ia64_breakpoint_from_pc (struct gdbarch 
   long long instr_fetched;
   int val;
   int templ;
-  struct cleanup *cleanup;
 
   if (slotnum > 2)
     error (_("Can't insert breakpoint for slot numbers greater than 2."));
@@ -843,9 +833,11 @@ ia64_breakpoint_from_pc (struct gdbarch 
 
   /* Enable the automatic memory restoration from breakpoints while
      we read our instruction bundle to match bp_loc_is_permanent.  */
-  cleanup = make_show_memory_breakpoints_cleanup (0);
-  val = target_read_memory (addr, bundle, BUNDLE_LEN);
-  do_cleanups (cleanup);
+  {
+    scoped_restore restore_memory_0
+      = make_scoped_restore_show_memory_breakpoints (0);
+    val = target_read_memory (addr, bundle, BUNDLE_LEN);
+  }
 
   /* The memory might be unreachable.  This can happen, for instance,
      when the user inserts a breakpoint at an invalid address.  */
@@ -1218,6 +1210,7 @@ static int
 ia64_convert_register_p (struct gdbarch *gdbarch, int regno, struct type *type)
 {
   return (regno >= IA64_FR0_REGNUM && regno <= IA64_FR127_REGNUM
+	  && TYPE_CODE (type) == TYPE_CODE_FLT
 	  && type != ia64_ext_type (gdbarch));
 }
 
@@ -1227,7 +1220,7 @@ ia64_register_to_value (struct frame_inf
 			int *optimizedp, int *unavailablep)
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
-  gdb_byte in[MAX_REGISTER_SIZE];
+  gdb_byte in[IA64_FP_REGISTER_SIZE];
 
   /* Convert to TYPE.  */
   if (!get_frame_register_bytes (frame, regnum, 0,
@@ -1235,7 +1228,7 @@ ia64_register_to_value (struct frame_inf
 				 in, optimizedp, unavailablep))
     return 0;
 
-  convert_typed_floating (in, ia64_ext_type (gdbarch), out, valtype);
+  target_float_convert (in, ia64_ext_type (gdbarch), out, valtype);
   *optimizedp = *unavailablep = 0;
   return 1;
 }
@@ -1245,8 +1238,8 @@ ia64_value_to_register (struct frame_inf
                          struct type *valtype, const gdb_byte *in)
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
-  gdb_byte out[MAX_REGISTER_SIZE];
-  convert_typed_floating (in, valtype, out, ia64_ext_type (gdbarch));
+  gdb_byte out[IA64_FP_REGISTER_SIZE];
+  target_float_convert (in, valtype, out, ia64_ext_type (gdbarch));
   put_frame_register (frame, regnum, out);
 }
 
@@ -1516,7 +1509,6 @@ examine_prologue (CORE_ADDR pc, CORE_ADD
 	  else if (qp == 0 && rN == 2 
 	        && ((rM == fp_reg && fp_reg != 0) || rM == 12))
 	    {
-	      gdb_byte buf[MAX_REGISTER_SIZE];
 	      CORE_ADDR saved_sp = 0;
 	      /* adds r2, spilloffset, rFramePointer 
 	           or
@@ -1533,9 +1525,8 @@ examine_prologue (CORE_ADDR pc, CORE_ADD
 	      if (this_frame)
 		{
 		  struct gdbarch *gdbarch = get_frame_arch (this_frame);
-		  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-		  get_frame_register (this_frame, sp_regnum, buf);
-		  saved_sp = extract_unsigned_integer (buf, 8, byte_order);
+		  saved_sp = get_frame_register_unsigned (this_frame,
+							  sp_regnum);
 		}
 	      spill_addr  = saved_sp
 	                  + (rM == 12 ? 0 : mem_stack_frame_size) 
@@ -2289,10 +2280,6 @@ static struct value *
 ia64_sigtramp_frame_prev_register (struct frame_info *this_frame,
 				   void **this_cache, int regnum)
 {
-  gdb_byte buf[MAX_REGISTER_SIZE];
-
-  struct gdbarch *gdbarch = get_frame_arch (this_frame);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   struct ia64_frame_cache *cache =
     ia64_sigtramp_frame_cache (this_frame, this_cache);
 
@@ -2308,8 +2295,9 @@ ia64_sigtramp_frame_prev_register (struc
 
       if (addr != 0)
 	{
-	  read_memory (addr, buf, register_size (gdbarch, IA64_IP_REGNUM));
-	  pc = extract_unsigned_integer (buf, 8, byte_order);
+	  struct gdbarch *gdbarch = get_frame_arch (this_frame);
+	  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+	  pc = read_memory_unsigned_integer (addr, 8, byte_order);
 	}
       pc &= ~0xf;
       return frame_unwind_got_constant (this_frame, regnum, pc);
@@ -2490,12 +2478,11 @@ ia64_access_reg (unw_addr_space_t as, un
 		 int write, void *arg)
 {
   int regnum = ia64_uw2gdb_regnum (uw_regnum);
-  unw_word_t bsp, sof, sol, cfm, psr, ip;
+  unw_word_t bsp, sof, cfm, psr, ip;
   struct frame_info *this_frame = (struct frame_info *) arg;
   struct gdbarch *gdbarch = get_frame_arch (this_frame);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   long new_sof, old_sof;
-  gdb_byte buf[MAX_REGISTER_SIZE];
   
   /* We never call any libunwind routines that need to write registers.  */
   gdb_assert (!write);
@@ -2505,10 +2492,8 @@ ia64_access_reg (unw_addr_space_t as, un
       case UNW_REG_IP:
 	/* Libunwind expects to see the pc value which means the slot number
 	   from the psr must be merged with the ip word address.  */
-	get_frame_register (this_frame, IA64_IP_REGNUM, buf);
-	ip = extract_unsigned_integer (buf, 8, byte_order);
-	get_frame_register (this_frame, IA64_PSR_REGNUM, buf);
-	psr = extract_unsigned_integer (buf, 8, byte_order);
+	ip = get_frame_register_unsigned (this_frame, IA64_IP_REGNUM);
+	psr = get_frame_register_unsigned (this_frame, IA64_PSR_REGNUM);
 	*val = ip | ((psr >> 41) & 0x3);
 	break;
  
@@ -2517,10 +2502,8 @@ ia64_access_reg (unw_addr_space_t as, un
 	   register frame so we must account for the fact that
 	   ptrace() will return a value for bsp that points *after*
 	   the current register frame.  */
-	get_frame_register (this_frame, IA64_BSP_REGNUM, buf);
-	bsp = extract_unsigned_integer (buf, 8, byte_order);
-	get_frame_register (this_frame, IA64_CFM_REGNUM, buf);
-	cfm = extract_unsigned_integer (buf, 8, byte_order);
+	bsp = get_frame_register_unsigned (this_frame, IA64_BSP_REGNUM);
+	cfm = get_frame_register_unsigned (this_frame, IA64_CFM_REGNUM);
 	sof = gdbarch_tdep (gdbarch)->size_of_register_frame (this_frame, cfm);
 	*val = ia64_rse_skip_regs (bsp, -sof);
 	break;
@@ -2528,14 +2511,12 @@ ia64_access_reg (unw_addr_space_t as, un
       case UNW_IA64_AR_BSPSTORE:
 	/* Libunwind wants bspstore to be after the current register frame.
 	   This is what ptrace() and gdb treats as the regular bsp value.  */
-	get_frame_register (this_frame, IA64_BSP_REGNUM, buf);
-	*val = extract_unsigned_integer (buf, 8, byte_order);
+	*val = get_frame_register_unsigned (this_frame, IA64_BSP_REGNUM);
 	break;
 
       default:
 	/* For all other registers, just unwind the value directly.  */
-	get_frame_register (this_frame, regnum, buf);
-	*val = extract_unsigned_integer (buf, 8, byte_order);
+	*val = get_frame_register_unsigned (this_frame, regnum);
 	break;
     }
       
@@ -2570,12 +2551,11 @@ ia64_access_rse_reg (unw_addr_space_t as
 		     unw_word_t *val, int write, void *arg)
 {
   int regnum = ia64_uw2gdb_regnum (uw_regnum);
-  unw_word_t bsp, sof, sol, cfm, psr, ip;
+  unw_word_t bsp, sof, cfm, psr, ip;
   struct regcache *regcache = (struct regcache *) arg;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   long new_sof, old_sof;
-  gdb_byte buf[MAX_REGISTER_SIZE];
   
   /* We never call any libunwind routines that need to write registers.  */
   gdb_assert (!write);
@@ -2585,10 +2565,8 @@ ia64_access_rse_reg (unw_addr_space_t as
       case UNW_REG_IP:
 	/* Libunwind expects to see the pc value which means the slot number
 	   from the psr must be merged with the ip word address.  */
-	regcache_cooked_read (regcache, IA64_IP_REGNUM, buf);
-	ip = extract_unsigned_integer (buf, 8, byte_order);
-	regcache_cooked_read (regcache, IA64_PSR_REGNUM, buf);
-	psr = extract_unsigned_integer (buf, 8, byte_order);
+	regcache_cooked_read_unsigned (regcache, IA64_IP_REGNUM, &ip);
+	regcache_cooked_read_unsigned (regcache, IA64_PSR_REGNUM, &psr);
 	*val = ip | ((psr >> 41) & 0x3);
 	break;
 	  
@@ -2597,10 +2575,8 @@ ia64_access_rse_reg (unw_addr_space_t as
 	   register frame so we must account for the fact that
 	   ptrace() will return a value for bsp that points *after*
 	   the current register frame.  */
-	regcache_cooked_read (regcache, IA64_BSP_REGNUM, buf);
-	bsp = extract_unsigned_integer (buf, 8, byte_order);
-	regcache_cooked_read (regcache, IA64_CFM_REGNUM, buf);
-	cfm = extract_unsigned_integer (buf, 8, byte_order);
+	regcache_cooked_read_unsigned (regcache, IA64_BSP_REGNUM, &bsp);
+	regcache_cooked_read_unsigned (regcache, IA64_CFM_REGNUM, &cfm);
 	sof = (cfm & 0x7f);
 	*val = ia64_rse_skip_regs (bsp, -sof);
 	break;
@@ -2608,14 +2584,12 @@ ia64_access_rse_reg (unw_addr_space_t as
       case UNW_IA64_AR_BSPSTORE:
 	/* Libunwind wants bspstore to be after the current register frame.
 	   This is what ptrace() and gdb treats as the regular bsp value.  */
-	regcache_cooked_read (regcache, IA64_BSP_REGNUM, buf);
-	*val = extract_unsigned_integer (buf, 8, byte_order);
+	regcache_cooked_read_unsigned (regcache, IA64_BSP_REGNUM, val);
 	break;
 
       default:
         /* For all other registers, just unwind the value directly.  */
-	regcache_cooked_read (regcache, regnum, buf);
-	*val = extract_unsigned_integer (buf, 8, byte_order);
+	regcache_cooked_read_unsigned (regcache, regnum, val);
 	break;
     }
       
@@ -2982,12 +2956,10 @@ ia64_libunwind_frame_prev_register (stru
 	{
 	  int rrb_pr = 0;
 	  ULONGEST cfm;
-	  gdb_byte buf[MAX_REGISTER_SIZE];
 
 	  /* Fetch predicate register rename base from current frame
 	     marker for this frame.  */
-	  get_frame_register (this_frame, IA64_CFM_REGNUM, buf);
-	  cfm = extract_unsigned_integer (buf, 8, byte_order);
+	  cfm = get_frame_register_unsigned (this_frame, IA64_CFM_REGNUM);
 	  rrb_pr = (cfm >> 32) & 0x3f;
 	  
 	  /* Adjust the register number to account for register rotation.  */
@@ -3223,13 +3195,13 @@ static void
 ia64_extract_return_value (struct type *type, struct regcache *regcache,
 			   gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct type *float_elt_type;
 
   float_elt_type = is_float_or_hfa_type (type);
   if (float_elt_type != NULL)
     {
-      gdb_byte from[MAX_REGISTER_SIZE];
+      gdb_byte from[IA64_FP_REGISTER_SIZE];
       int offset = 0;
       int regnum = IA64_FR8_REGNUM;
       int n = TYPE_LENGTH (type) / TYPE_LENGTH (float_elt_type);
@@ -3237,8 +3209,8 @@ ia64_extract_return_value (struct type *
       while (n-- > 0)
 	{
 	  regcache_cooked_read (regcache, regnum, from);
-	  convert_typed_floating (from, ia64_ext_type (gdbarch),
-				  (char *)valbuf + offset, float_elt_type);
+	  target_float_convert (from, ia64_ext_type (gdbarch),
+				valbuf + offset, float_elt_type);
 	  offset += TYPE_LENGTH (float_elt_type);
 	  regnum++;
 	}
@@ -3288,21 +3260,21 @@ static void
 ia64_store_return_value (struct type *type, struct regcache *regcache, 
 			 const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct type *float_elt_type;
 
   float_elt_type = is_float_or_hfa_type (type);
   if (float_elt_type != NULL)
     {
-      gdb_byte to[MAX_REGISTER_SIZE];
+      gdb_byte to[IA64_FP_REGISTER_SIZE];
       int offset = 0;
       int regnum = IA64_FR8_REGNUM;
       int n = TYPE_LENGTH (type) / TYPE_LENGTH (float_elt_type);
 
       while (n-- > 0)
 	{
-	  convert_typed_floating ((char *)valbuf + offset, float_elt_type,
-				  to, ia64_ext_type (gdbarch));
+	  target_float_convert (valbuf + offset, float_elt_type,
+				to, ia64_ext_type (gdbarch));
 	  regcache_cooked_write (regcache, regnum, to);
 	  offset += TYPE_LENGTH (float_elt_type);
 	  regnum++;
@@ -3588,7 +3560,7 @@ find_extant_func_descr (struct gdbarch *
 static CORE_ADDR
 find_func_descr (struct regcache *regcache, CORE_ADDR faddr, CORE_ADDR *fdaptr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR fdesc;
 
@@ -3856,10 +3828,10 @@ ia64_push_dummy_call (struct gdbarch *gd
 	  len = TYPE_LENGTH (type);
 	  while (len > 0 && floatreg < IA64_FR16_REGNUM)
 	    {
-	      gdb_byte to[MAX_REGISTER_SIZE];
-	      convert_typed_floating (value_contents (arg) + argoffset,
-				      float_elt_type, to,
-				      ia64_ext_type (gdbarch));
+	      gdb_byte to[IA64_FP_REGISTER_SIZE];
+	      target_float_convert (value_contents (arg) + argoffset,
+				    float_elt_type, to,
+				    ia64_ext_type (gdbarch));
 	      regcache_cooked_write (regcache, floatreg, to);
 	      floatreg++;
 	      argoffset += TYPE_LENGTH (float_elt_type);
@@ -3943,7 +3915,7 @@ static int
 ia64_print_insn (bfd_vma memaddr, struct disassemble_info *info)
 {
   info->bytes_per_line = SLOT_MULTIPLIER;
-  return print_insn_ia64 (memaddr, info);
+  return default_print_insn (memaddr, info);
 }
 
 /* The default "size_of_register_frame" gdbarch_tdep routine for ia64.  */
@@ -4055,8 +4027,6 @@ ia64_gdbarch_init (struct gdbarch_info i
   return gdbarch;
 }
 
-extern initialize_file_ftype _initialize_ia64_tdep; /* -Wmissing-prototypes */
-
 void
 _initialize_ia64_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ia64-tdep.h ./gdb/ia64-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ia64-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ia64-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the ia64.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ia64-vms-tdep.c ./gdb/ia64-vms-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ia64-vms-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ia64-vms-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for OpenVMS IA-64.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -154,9 +154,6 @@ ia64_openvms_init_abi (struct gdbarch_in
 #endif
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_ia64_vms_tdep;
-
 void
 _initialize_ia64_vms_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/infcall.c ./gdb/infcall.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/infcall.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/infcall.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Perform an inferior function call, for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -340,6 +340,20 @@ push_dummy_code (struct gdbarch *gdbarch
 				  regcache);
 }
 
+/* See infcall.h.  */
+
+void
+error_call_unknown_return_type (const char *func_name)
+{
+  if (func_name != NULL)
+    error (_("'%s' has unknown return type; "
+	     "cast the call to its declared return type"),
+	   func_name);
+  else
+    error (_("function has unknown return type; "
+	     "cast the call to its declared return type"));
+}
+
 /* Fetch the name of the function at FUNADDR.
    This is used in printing an error message for call_function_by_hand.
    BUF is used to print FUNADDR in hex if the function name cannot be
@@ -530,7 +544,7 @@ call_thread_fsm_should_stop (struct thre
 
       /* Break out of wait_sync_command_done.  */
       scoped_restore save_ui = make_scoped_restore (&current_ui, f->waiting_ui);
-      target_terminal_ours ();
+      target_terminal::ours ();
       f->waiting_ui->prompt_state = PROMPT_NEEDED;
     }
 
@@ -673,9 +687,12 @@ cleanup_delete_std_terminate_breakpoint 
 /* See infcall.h.  */
 
 struct value *
-call_function_by_hand (struct value *function, int nargs, struct value **args)
+call_function_by_hand (struct value *function,
+		       type *default_return_type,
+		       int nargs, struct value **args)
 {
-  return call_function_by_hand_dummy (function, nargs, args, NULL, NULL);
+  return call_function_by_hand_dummy (function, default_return_type,
+				      nargs, args, NULL, NULL);
 }
 
 /* All this stuff with a dummy frame may seem unnecessarily complicated
@@ -698,6 +715,7 @@ call_function_by_hand (struct value *fun
 
 struct value *
 call_function_by_hand_dummy (struct value *function,
+			     type *default_return_type,
 			     int nargs, struct value **args,
 			     dummy_frame_dtor_ftype *dummy_dtor,
 			     void *dummy_dtor_data)
@@ -850,8 +868,16 @@ call_function_by_hand_dummy (struct valu
   }
 
   funaddr = find_function_addr (function, &values_type);
-  if (!values_type)
-    values_type = builtin_type (gdbarch)->builtin_int;
+  if (values_type == NULL)
+    values_type = default_return_type;
+  if (values_type == NULL)
+    {
+      const char *name = get_function_name (funaddr,
+					    name_buf, sizeof (name_buf));
+      error (_("'%s' has unknown return type; "
+	       "cast the call to its declared return type"),
+	     name);
+    }
 
   values_type = check_typedef (values_type);
 
@@ -955,6 +981,21 @@ call_function_by_hand_dummy (struct valu
 	   prototyped.  Can we respect TYPE_VARARGS?  Probably not.  */
 	if (TYPE_CODE (ftype) == TYPE_CODE_METHOD)
 	  prototyped = 1;
+	if (TYPE_TARGET_TYPE (ftype) == NULL && TYPE_NFIELDS (ftype) == 0
+	    && default_return_type != NULL)
+	  {
+	    /* Calling a no-debug function with the return type
+	       explicitly cast.  Assume the function is prototyped,
+	       with a prototype matching the types of the arguments.
+	       E.g., with:
+		 float mult (float v1, float v2) { return v1 * v2; }
+	       This:
+		 (gdb) p (float) mult (2.0f, 3.0f)
+	       Is a simpler alternative to:
+		 (gdb) p ((float (*) (float, float)) mult) (2.0f, 3.0f)
+	     */
+	    prototyped = 1;
+	  }
 	else if (i < TYPE_NFIELDS (ftype))
 	  prototyped = TYPE_PROTOTYPED (ftype);
 	else
@@ -1051,17 +1092,17 @@ call_function_by_hand_dummy (struct valu
      inferior.  That way it breaks when it returns.  */
 
   {
-    struct breakpoint *bpt, *longjmp_b;
-    struct symtab_and_line sal;
-
-    init_sal (&sal);		/* initialize to zeroes */
+    symtab_and_line sal;
     sal.pspace = current_program_space;
     sal.pc = bp_addr;
     sal.section = find_pc_overlay (sal.pc);
+
     /* Sanity.  The exact same SP value is returned by
        PUSH_DUMMY_CALL, saved as the dummy-frame TOS, and used by
        dummy_id to form the frame ID's stack address.  */
-    bpt = set_momentary_breakpoint (gdbarch, sal, dummy_id, bp_call_dummy);
+    breakpoint *bpt
+      = set_momentary_breakpoint (gdbarch, sal,
+				  dummy_id, bp_call_dummy).release ();
 
     /* set_momentary_breakpoint invalidates FRAME.  */
     frame = NULL;
@@ -1069,7 +1110,7 @@ call_function_by_hand_dummy (struct valu
     bpt->disposition = disp_del;
     gdb_assert (bpt->related_breakpoint == bpt);
 
-    longjmp_b = set_longjmp_breakpoint_for_call_dummy ();
+    breakpoint *longjmp_b = set_longjmp_breakpoint_for_call_dummy ();
     if (longjmp_b)
       {
 	/* Link BPT into the chain of LONGJMP_B.  */
@@ -1268,10 +1309,8 @@ When the function is done executing, GDB
 
     {
       /* Make a copy as NAME may be in an objfile freed by dummy_frame_pop.  */
-      char *name = xstrdup (get_function_name (funaddr,
-					       name_buf, sizeof (name_buf)));
-      make_cleanup (xfree, name);
-
+      std::string name = get_function_name (funaddr, name_buf,
+					    sizeof (name_buf));
 
       if (stopped_by_random_signal)
 	{
@@ -1299,7 +1338,7 @@ GDB has restored the context to what it 
 To change this behavior use \"set unwindonsignal off\".\n\
 Evaluation of the expression containing the function\n\
 (%s) will be abandoned."),
-		     name);
+		     name.c_str ());
 	    }
 	  else
 	    {
@@ -1318,7 +1357,7 @@ To change this behavior use \"set unwind
 Evaluation of the expression containing the function\n\
 (%s) will be abandoned.\n\
 When the function is done executing, GDB will silently stop."),
-		     name);
+		     name.c_str ());
 	    }
 	}
 
@@ -1340,7 +1379,7 @@ context to its original state before the
 To change this behaviour use \"set unwind-on-terminating-exception off\".\n\
 Evaluation of the expression containing the function (%s)\n\
 will be abandoned."),
-		 name);
+		 name.c_str ());
 	}
       else if (stop_stack_dummy == STOP_NONE)
 	{
@@ -1364,7 +1403,7 @@ The program being debugged stopped while
 Evaluation of the expression containing the function\n\
 (%s) will be abandoned.\n\
 When the function is done executing, GDB will silently stop."),
-		 name);
+		 name.c_str ());
 	}
 
     }
@@ -1372,10 +1411,6 @@ When the function is done executing, GDB
   /* The above code errors out, so ...  */
   gdb_assert_not_reached ("... should not be here");
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_infcall (void);
 
 void
 _initialize_infcall (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/infcall.h ./gdb/infcall.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/infcall.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/infcall.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Perform an inferior function call, for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -35,9 +35,15 @@ extern CORE_ADDR find_function_addr (str
    representing what the function returned.  May fail to return, if a
    breakpoint or signal is hit during the execution of the function.
 
+   DFEAULT_RETURN_TYPE is used as function return type if the return
+   type is unknown.  This is used when calling functions with no debug
+   info.
+
    ARGS is modified to contain coerced values.  */
 
-extern struct value *call_function_by_hand (struct value *function, int nargs,
+extern struct value *call_function_by_hand (struct value *function,
+					    type *default_return_type,
+					    int nargs,
 					    struct value **args);
 
 /* Similar to call_function_by_hand and additional call
@@ -45,9 +51,18 @@ extern struct value *call_function_by_ha
    created inferior call dummy frame.  */
 
 extern struct value *
-  call_function_by_hand_dummy (struct value *function, int nargs,
+  call_function_by_hand_dummy (struct value *function,
+			       type *default_return_type,
+			       int nargs,
 			       struct value **args,
 			       dummy_frame_dtor_ftype *dummy_dtor,
 			       void *dummy_dtor_data);
 
+/* Throw an error indicating that the user tried to call a function
+   that has unknown return type.  FUNC_NAME is the name of the
+   function to be included in the error message; may be NULL, in which
+   case the error message doesn't include a function name.  */
+
+extern void error_call_unknown_return_type (const char *func_name);
+
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inf-child.c ./gdb/inf-child.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inf-child.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/inf-child.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Base/prototype target for default child (native) targets.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -77,7 +77,7 @@ inf_child_fetch_inferior_registers (stru
   if (regnum == -1)
     {
       for (regnum = 0;
-	   regnum < gdbarch_num_regs (get_regcache_arch (regcache));
+	   regnum < gdbarch_num_regs (regcache->arch ());
 	   regnum++)
 	regcache_raw_supply (regcache, regnum, NULL);
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inf-child.h ./gdb/inf-child.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inf-child.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/inf-child.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Base/prototype target for default child (native) targets.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/infcmd.c ./gdb/infcmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/infcmd.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/infcmd.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Memory-access and commands for "inferior" process, for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -58,48 +58,13 @@
 #include "thread-fsm.h"
 #include "top.h"
 #include "interps.h"
+#include "common/gdb_optional.h"
 
 /* Local functions: */
 
-static void nofp_registers_info (char *, int);
-
 static void until_next_command (int);
 
-static void until_command (char *, int);
-
-static void path_info (char *, int);
-
-static void path_command (char *, int);
-
-static void unset_command (char *, int);
-
-static void float_info (char *, int);
-
-static void disconnect_command (char *, int);
-
-static void unset_environment_command (char *, int);
-
-static void set_environment_command (char *, int);
-
-static void environment_info (char *, int);
-
-static void program_info (char *, int);
-
-static void finish_command (char *, int);
-
-static void signal_command (char *, int);
-
-static void jump_command (char *, int);
-
-static void step_1 (int, int, char *);
-
-static void next_command (char *, int);
-
-static void step_command (char *, int);
-
-static void run_command (char *, int);
-
-void _initialize_infcmd (void);
+static void step_1 (int, int, const char *);
 
 #define ERROR_NO_INFERIOR \
    if (!target_has_execution) error (_("The program is not being run."));
@@ -112,6 +77,10 @@ void _initialize_infcmd (void);
 
 static char *inferior_args_scratch;
 
+/* Scratch area where the new cwd will be stored by 'set cwd'.  */
+
+static char *inferior_cwd_scratch;
+
 /* Scratch area where 'set inferior-tty' will store user-provided value.
    We'll immediate copy it into per-inferior storage.  */
 
@@ -165,7 +134,7 @@ get_inferior_io_terminal (void)
 }
 
 static void
-set_inferior_tty_command (char *args, int from_tty,
+set_inferior_tty_command (const char *args, int from_tty,
 			  struct cmd_list_element *c)
 {
   /* CLI has assigned the user-provided value to inferior_io_terminal_scratch.
@@ -211,7 +180,7 @@ get_inferior_args (void)
    NEWARGS is not transferred.  */
 
 void
-set_inferior_args (char *newargs)
+set_inferior_args (const char *newargs)
 {
   xfree (current_inferior ()->args);
   current_inferior ()->args = newargs ? xstrdup (newargs) : NULL;
@@ -229,7 +198,7 @@ set_inferior_args_vector (int argc, char
 /* Notice when `set args' is run.  */
 
 static void
-set_args_command (char *args, int from_tty, struct cmd_list_element *c)
+set_args_command (const char *args, int from_tty, struct cmd_list_element *c)
 {
   /* CLI has assigned the user-provided value to inferior_args_scratch.
      Now route it to current inferior.  */
@@ -247,6 +216,60 @@ show_args_command (struct ui_file *file,
   deprecated_show_value_hack (file, from_tty, c, get_inferior_args ());
 }
 
+/* See common/common-inferior.h.  */
+
+void
+set_inferior_cwd (const char *cwd)
+{
+  struct inferior *inf = current_inferior ();
+
+  gdb_assert (inf != NULL);
+
+  if (cwd == NULL)
+    inf->cwd.reset ();
+  else
+    inf->cwd.reset (xstrdup (cwd));
+}
+
+/* See common/common-inferior.h.  */
+
+const char *
+get_inferior_cwd ()
+{
+  return current_inferior ()->cwd.get ();
+}
+
+/* Handle the 'set cwd' command.  */
+
+static void
+set_cwd_command (const char *args, int from_tty, struct cmd_list_element *c)
+{
+  if (*inferior_cwd_scratch == '\0')
+    set_inferior_cwd (NULL);
+  else
+    set_inferior_cwd (inferior_cwd_scratch);
+}
+
+/* Handle the 'show cwd' command.  */
+
+static void
+show_cwd_command (struct ui_file *file, int from_tty,
+		  struct cmd_list_element *c, const char *value)
+{
+  const char *cwd = get_inferior_cwd ();
+
+  if (cwd == NULL)
+    fprintf_filtered (gdb_stdout,
+		      _("\
+You have not set the inferior's current working directory.\n\
+The inferior will inherit GDB's cwd if native debugging, or the remote\n\
+server's cwd if remote debugging.\n"));
+  else
+    fprintf_filtered (gdb_stdout,
+		      _("Current working directory that will be used "
+			"when starting the inferior is \"%s\".\n"), cwd);
+}
+
 
 /* Compute command-line string given argument vector.  This does the
    same shell processing as fork_inferior.  */
@@ -374,7 +397,7 @@ construct_inferior_arguments (int argc, 
    NULL is returned.  *BG_CHAR_P is an output boolean that indicates
    whether the '&' character was found.  */
 
-static char *
+static gdb::unique_xmalloc_ptr<char>
 strip_bg_char (const char *args, int *bg_char_p)
 {
   const char *p;
@@ -394,13 +417,14 @@ strip_bg_char (const char *args, int *bg
 
       *bg_char_p = 1;
       if (p != args)
-	return savestring (args, p - args);
+	return gdb::unique_xmalloc_ptr<char>
+	  (savestring (args, p - args));
       else
-	return NULL;
+	return gdb::unique_xmalloc_ptr<char> (nullptr);
     }
 
   *bg_char_p = 0;
-  return xstrdup (args);
+  return gdb::unique_xmalloc_ptr<char> (xstrdup (args));
 }
 
 /* Common actions to take after creating any sort of inferior, by any
@@ -412,7 +436,7 @@ post_create_inferior (struct target_ops 
 {
 
   /* Be sure we own the terminal in case write operations are performed.  */ 
-  target_terminal_ours_for_output ();
+  target_terminal::ours_for_output ();
 
   /* If the target hasn't taken care of this already, do it now.
      Targets which need to access registers during to_open,
@@ -519,12 +543,25 @@ prepare_execution_command (struct target
     }
 }
 
-/* Implement the "run" command.  If TBREAK_AT_MAIN is set, then insert
-   a temporary breakpoint at the begining of the main program before
-   running the program.  */
+/* Determine how the new inferior will behave.  */
+
+enum run_how
+  {
+    /* Run program without any explicit stop during startup.  */
+    RUN_NORMAL,
+
+    /* Stop at the beginning of the program's main function.  */
+    RUN_STOP_AT_MAIN,
+
+    /* Stop at the first instruction of the program.  */
+    RUN_STOP_AT_FIRST_INSN
+  };
+
+/* Implement the "run" command.  Force a stop during program start if
+   requested by RUN_HOW.  */
 
 static void
-run_command_1 (char *args, int from_tty, int tbreak_at_main)
+run_command_1 (const char *args, int from_tty, enum run_how run_how)
 {
   const char *exec_file;
   struct cleanup *old_chain;
@@ -532,7 +569,6 @@ run_command_1 (char *args, int from_tty,
   struct ui_out *uiout = current_uiout;
   struct target_ops *run_target;
   int async_exec;
-  struct cleanup *args_chain;
 
   dont_repeat ();
 
@@ -555,8 +591,8 @@ run_command_1 (char *args, int from_tty,
   reopen_exec_file ();
   reread_symbols ();
 
-  args = strip_bg_char (args, &async_exec);
-  args_chain = make_cleanup (xfree, args);
+  gdb::unique_xmalloc_ptr<char> stripped = strip_bg_char (args, &async_exec);
+  args = stripped.get ();
 
   /* Do validation and preparation before possibly changing anything
      in the inferior.  */
@@ -570,8 +606,8 @@ run_command_1 (char *args, int from_tty,
 
   /* Done.  Can now set breakpoints, change inferior args, etc.  */
 
-  /* Insert the temporary breakpoint if a location was specified.  */
-  if (tbreak_at_main)
+  /* Insert temporary breakpoint in main function if requested.  */
+  if (run_how == RUN_STOP_AT_MAIN)
     tbreak_command (main_name (), 0);
 
   exec_file = get_exec_file (0);
@@ -602,14 +638,11 @@ run_command_1 (char *args, int from_tty,
       uiout->flush ();
     }
 
-  /* Done with ARGS.  */
-  do_cleanups (args_chain);
-
   /* We call get_inferior_args() because we might need to compute
      the value now.  */
   run_target->to_create_inferior (run_target, exec_file,
 				  std::string (get_inferior_args ()),
-				  environ_vector (current_inferior ()->environment),
+				  current_inferior ()->environment.envp (),
 				  from_tty);
   /* to_create_inferior should push the target, so after this point we
      shouldn't refer to run_target again.  */
@@ -631,6 +664,15 @@ run_command_1 (char *args, int from_tty,
      has done its thing; now we are setting up the running program.  */
   post_create_inferior (&current_target, 0);
 
+  /* Queue a pending event so that the program stops immediately.  */
+  if (run_how == RUN_STOP_AT_FIRST_INSN)
+    {
+      thread_info *thr = inferior_thread ();
+      thr->suspend.waitstatus_pending_p = 1;
+      thr->suspend.waitstatus.kind = TARGET_WAITKIND_STOPPED;
+      thr->suspend.waitstatus.value.sig = GDB_SIGNAL_0;
+    }
+
   /* Start the target running.  Do not use -1 continuation as it would skip
      breakpoint right at the entry point.  */
   proceed (regcache_read_pc (get_current_regcache ()), GDB_SIGNAL_0);
@@ -641,16 +683,16 @@ run_command_1 (char *args, int from_tty,
 }
 
 static void
-run_command (char *args, int from_tty)
+run_command (const char *args, int from_tty)
 {
-  run_command_1 (args, from_tty, 0);
+  run_command_1 (args, from_tty, RUN_NORMAL);
 }
 
 /* Start the execution of the program up until the beginning of the main
    program.  */
 
 static void
-start_command (char *args, int from_tty)
+start_command (const char *args, int from_tty)
 {
   /* Some languages such as Ada need to search inside the program
      minimal symbols for the location where to put the temporary
@@ -659,7 +701,16 @@ start_command (char *args, int from_tty)
     error (_("No symbol table loaded.  Use the \"file\" command."));
 
   /* Run the program until reaching the main procedure...  */
-  run_command_1 (args, from_tty, 1);
+  run_command_1 (args, from_tty, RUN_STOP_AT_MAIN);
+}
+
+/* Start the execution of the program stopping at the first
+   instruction.  */
+
+static void
+starti_command (const char *args, int from_tty)
+{
+  run_command_1 (args, from_tty, RUN_STOP_AT_FIRST_INSN);
 } 
 
 static int
@@ -730,10 +781,10 @@ continue_1 (int all_threads)
     {
       /* Don't error out if the current thread is running, because
 	 there may be other stopped threads.  */
-      struct cleanup *old_chain;
 
-      /* Backup current thread and selected frame.  */
-      old_chain = make_cleanup_restore_current_thread ();
+      /* Backup current thread and selected frame and restore on scope
+	 exit.  */
+      scoped_restore_current_thread restore_thread;
 
       iterate_over_threads (proceed_thread_callback, NULL);
 
@@ -752,11 +803,8 @@ continue_1 (int all_threads)
 	      Continuing.
 	      <no thread was resumed, but the inferior now owns the terminal>
 	  */
-	  target_terminal_inferior ();
+	  target_terminal::inferior ();
 	}
-
-      /* Restore selected ptid.  */
-      do_cleanups (old_chain);
     }
   else
     {
@@ -770,17 +818,16 @@ continue_1 (int all_threads)
 /* continue [-a] [proceed-count] [&]  */
 
 static void
-continue_command (char *args, int from_tty)
+continue_command (const char *args, int from_tty)
 {
   int async_exec;
   int all_threads = 0;
-  struct cleanup *args_chain;
 
   ERROR_NO_INFERIOR;
 
   /* Find out whether we must run in the background.  */
-  args = strip_bg_char (args, &async_exec);
-  args_chain = make_cleanup (xfree, args);
+  gdb::unique_xmalloc_ptr<char> stripped = strip_bg_char (args, &async_exec);
+  args = stripped.get ();
 
   if (args != NULL)
     {
@@ -842,9 +889,6 @@ continue_command (char *args, int from_t
 	}
     }
 
-  /* Done with ARGS.  */
-  do_cleanups (args_chain);
-
   ERROR_NO_INFERIOR;
   ensure_not_tfind_mode ();
 
@@ -867,21 +911,20 @@ continue_command (char *args, int from_t
 static void
 set_step_frame (void)
 {
-  struct symtab_and_line sal;
-  CORE_ADDR pc;
-  struct frame_info *frame = get_current_frame ();
-  struct thread_info *tp = inferior_thread ();
+  frame_info *frame = get_current_frame ();
 
-  find_frame_sal (frame, &sal);
+  symtab_and_line sal = find_frame_sal (frame);
   set_step_info (frame, sal);
-  pc = get_frame_pc (frame);
+
+  CORE_ADDR pc = get_frame_pc (frame);
+  thread_info *tp = inferior_thread ();
   tp->control.step_start_function = find_pc_function (pc);
 }
 
 /* Step until outside of current statement.  */
 
 static void
-step_command (char *count_string, int from_tty)
+step_command (const char *count_string, int from_tty)
 {
   step_1 (0, 0, count_string);
 }
@@ -889,7 +932,7 @@ step_command (char *count_string, int fr
 /* Likewise, but skip over subroutine calls as if single instructions.  */
 
 static void
-next_command (char *count_string, int from_tty)
+next_command (const char *count_string, int from_tty)
 {
   step_1 (1, 0, count_string);
 }
@@ -897,13 +940,13 @@ next_command (char *count_string, int fr
 /* Likewise, but step only one instruction.  */
 
 static void
-stepi_command (char *count_string, int from_tty)
+stepi_command (const char *count_string, int from_tty)
 {
   step_1 (0, 1, count_string);
 }
 
 static void
-nexti_command (char *count_string, int from_tty)
+nexti_command (const char *count_string, int from_tty)
 {
   step_1 (1, 1, count_string);
 }
@@ -986,11 +1029,10 @@ step_command_fsm_prepare (struct step_co
 static int prepare_one_step (struct step_command_fsm *sm);
 
 static void
-step_1 (int skip_subroutines, int single_inst, char *count_string)
+step_1 (int skip_subroutines, int single_inst, const char *count_string)
 {
   int count;
   int async_exec;
-  struct cleanup *args_chain;
   struct thread_info *thr;
   struct step_command_fsm *step_sm;
 
@@ -999,16 +1041,14 @@ step_1 (int skip_subroutines, int single
   ensure_valid_thread ();
   ensure_not_running ();
 
-  count_string = strip_bg_char (count_string, &async_exec);
-  args_chain = make_cleanup (xfree, count_string);
+  gdb::unique_xmalloc_ptr<char> stripped
+    = strip_bg_char (count_string, &async_exec);
+  count_string = stripped.get ();
 
   prepare_execution_command (&current_target, async_exec);
 
   count = count_string ? parse_and_eval_long (count_string) : 1;
 
-  /* Done with ARGS.  */
-  do_cleanups (args_chain);
-
   clear_proceed_status (1);
 
   /* Setup the execution command state machine to handle all the COUNT
@@ -1145,7 +1185,7 @@ prepare_one_step (struct step_command_fs
 					    &tp->control.step_range_end) == 0)
 		error (_("Cannot find bounds of current function"));
 
-	      target_terminal_ours_for_output ();
+	      target_terminal::ours_for_output ();
 	      printf_filtered (_("Single stepping until exit from function %s,"
 				 "\nwhich has no line number information.\n"),
 			       name);
@@ -1177,16 +1217,13 @@ prepare_one_step (struct step_command_fs
 /* Continue program at specified address.  */
 
 static void
-jump_command (char *arg, int from_tty)
+jump_command (const char *arg, int from_tty)
 {
   struct gdbarch *gdbarch = get_current_arch ();
   CORE_ADDR addr;
-  struct symtabs_and_lines sals;
-  struct symtab_and_line sal;
   struct symbol *fn;
   struct symbol *sfn;
   int async_exec;
-  struct cleanup *args_chain;
 
   ERROR_NO_INFERIOR;
   ensure_not_tfind_mode ();
@@ -1194,25 +1231,20 @@ jump_command (char *arg, int from_tty)
   ensure_not_running ();
 
   /* Find out whether we must run in the background.  */
-  arg = strip_bg_char (arg, &async_exec);
-  args_chain = make_cleanup (xfree, arg);
+  gdb::unique_xmalloc_ptr<char> stripped = strip_bg_char (arg, &async_exec);
+  arg = stripped.get ();
 
   prepare_execution_command (&current_target, async_exec);
 
   if (!arg)
     error_no_arg (_("starting address"));
 
-  sals = decode_line_with_last_displayed (arg, DECODE_LINE_FUNFIRSTLINE);
-  if (sals.nelts != 1)
-    {
-      error (_("Unreasonable jump request"));
-    }
-
-  sal = sals.sals[0];
-  xfree (sals.sals);
+  std::vector<symtab_and_line> sals
+    = decode_line_with_last_displayed (arg, DECODE_LINE_FUNFIRSTLINE);
+  if (sals.size () != 1)
+    error (_("Unreasonable jump request"));
 
-  /* Done with ARGS.  */
-  do_cleanups (args_chain);
+  symtab_and_line &sal = sals[0];
 
   if (sal.symtab == 0 && sal.pc == 0)
     error (_("No source file has been specified."));
@@ -1266,11 +1298,10 @@ jump_command (char *arg, int from_tty)
 /* Continue program giving it specified signal.  */
 
 static void
-signal_command (char *signum_exp, int from_tty)
+signal_command (const char *signum_exp, int from_tty)
 {
   enum gdb_signal oursig;
   int async_exec;
-  struct cleanup *args_chain;
 
   dont_repeat ();		/* Too dangerous.  */
   ERROR_NO_INFERIOR;
@@ -1279,8 +1310,9 @@ signal_command (char *signum_exp, int fr
   ensure_not_running ();
 
   /* Find out whether we must run in the background.  */
-  signum_exp = strip_bg_char (signum_exp, &async_exec);
-  args_chain = make_cleanup (xfree, signum_exp);
+  gdb::unique_xmalloc_ptr<char> stripped
+    = strip_bg_char (signum_exp, &async_exec);
+  signum_exp = stripped.get ();
 
   prepare_execution_command (&current_target, async_exec);
 
@@ -1303,8 +1335,6 @@ signal_command (char *signum_exp, int fr
 	oursig = gdb_signal_from_command (num);
     }
 
-  do_cleanups (args_chain);
-
   /* Look for threads other than the current that this command ends up
      resuming too (due to schedlock off), and warn if they'll get a
      signal delivered.  "signal 0" is used to suppress a previous
@@ -1365,7 +1395,7 @@ signal_command (char *signum_exp, int fr
 /* Queue a signal to be delivered to the current thread.  */
 
 static void
-queue_signal_command (char *signum_exp, int from_tty)
+queue_signal_command (const char *signum_exp, int from_tty)
 {
   enum gdb_signal oursig;
   struct thread_info *tp;
@@ -1466,8 +1496,6 @@ until_next_fsm_should_stop (struct threa
 static void
 until_next_fsm_clean_up (struct thread_fsm *self, struct thread_info *thread)
 {
-  struct until_next_fsm *sm = (struct until_next_fsm *) self;
-
   delete_longjmp_breakpoint (thread->global_num);
 }
 
@@ -1546,10 +1574,9 @@ until_next_command (int from_tty)
 }
 
 static void
-until_command (char *arg, int from_tty)
+until_command (const char *arg, int from_tty)
 {
   int async_exec;
-  struct cleanup *args_chain;
 
   ERROR_NO_INFERIOR;
   ensure_not_tfind_mode ();
@@ -1557,8 +1584,8 @@ until_command (char *arg, int from_tty)
   ensure_not_running ();
 
   /* Find out whether we must run in the background.  */
-  arg = strip_bg_char (arg, &async_exec);
-  args_chain = make_cleanup (xfree, arg);
+  gdb::unique_xmalloc_ptr<char> stripped = strip_bg_char (arg, &async_exec);
+  arg = stripped.get ();
 
   prepare_execution_command (&current_target, async_exec);
 
@@ -1566,16 +1593,12 @@ until_command (char *arg, int from_tty)
     until_break_command (arg, from_tty, 0);
   else
     until_next_command (from_tty);
-
-  /* Done with ARGS.  */
-  do_cleanups (args_chain);
 }
 
 static void
-advance_command (char *arg, int from_tty)
+advance_command (const char *arg, int from_tty)
 {
   int async_exec;
-  struct cleanup *args_chain;
 
   ERROR_NO_INFERIOR;
   ensure_not_tfind_mode ();
@@ -1586,15 +1609,12 @@ advance_command (char *arg, int from_tty
     error_no_arg (_("a location"));
 
   /* Find out whether we must run in the background.  */
-  arg = strip_bg_char (arg, &async_exec);
-  args_chain = make_cleanup (xfree, arg);
+  gdb::unique_xmalloc_ptr<char> stripped = strip_bg_char (arg, &async_exec);
+  arg = stripped.get ();
 
   prepare_execution_command (&current_target, async_exec);
 
   until_break_command (arg, from_tty, 1);
-
-  /* Done with ARGS.  */
-  do_cleanups (args_chain);
 }
 
 /* Return the value of the result of a function at the end of a 'finish'
@@ -1604,15 +1624,9 @@ advance_command (char *arg, int from_tty
 struct value *
 get_return_value (struct value *function, struct type *value_type)
 {
-  struct regcache *stop_regs;
-  struct gdbarch *gdbarch;
+  regcache stop_regs (regcache::readonly, *get_current_regcache ());
+  struct gdbarch *gdbarch = stop_regs.arch ();
   struct value *value;
-  struct cleanup *cleanup;
-
-  stop_regs = regcache_dup (get_current_regcache ());
-  cleanup = make_cleanup_regcache_xfree (stop_regs);
-
-  gdbarch = get_regcache_arch (stop_regs);
 
   value_type = check_typedef (value_type);
   gdb_assert (TYPE_CODE (value_type) != TYPE_CODE_VOID);
@@ -1631,7 +1645,7 @@ get_return_value (struct value *function
     case RETURN_VALUE_ABI_RETURNS_ADDRESS:
     case RETURN_VALUE_ABI_PRESERVES_ADDRESS:
       value = allocate_value (value_type);
-      gdbarch_return_value (gdbarch, function, value_type, stop_regs,
+      gdbarch_return_value (gdbarch, function, value_type, &stop_regs,
 			    value_contents_raw (value), NULL);
       break;
     case RETURN_VALUE_STRUCT_CONVENTION:
@@ -1641,8 +1655,6 @@ get_return_value (struct value *function
       internal_error (__FILE__, __LINE__, _("bad switch"));
     }
 
-  do_cleanups (cleanup);
-
   return value;
 }
 
@@ -1887,11 +1899,10 @@ finish_backward (struct finish_command_f
     {
       struct frame_info *frame = get_selected_frame (NULL);
       struct gdbarch *gdbarch = get_frame_arch (frame);
-      struct symtab_and_line sr_sal;
 
       /* Set a step-resume at the function's entry point.  Once that's
 	 hit, we'll do one more step backwards.  */
-      init_sal (&sr_sal);
+      symtab_and_line sr_sal;
       sr_sal.pc = sal.pc;
       sr_sal.pspace = get_frame_program_space (frame);
       insert_step_resume_breakpoint_at_sal (gdbarch,
@@ -1924,7 +1935,7 @@ finish_forward (struct finish_command_fs
 
   sm->breakpoint = set_momentary_breakpoint (gdbarch, sal,
 					     get_stack_frame_id (frame),
-					     bp_finish);
+					     bp_finish).release ();
 
   /* set_momentary_breakpoint invalidates FRAME.  */
   frame = NULL;
@@ -1965,11 +1976,10 @@ skip_finish_frames (struct frame_info *f
    frame will return to, then continue.  */
 
 static void
-finish_command (char *arg, int from_tty)
+finish_command (const char *arg, int from_tty)
 {
   struct frame_info *frame;
   int async_exec;
-  struct cleanup *args_chain;
   struct finish_command_fsm *sm;
   struct thread_info *tp;
 
@@ -1979,17 +1989,14 @@ finish_command (char *arg, int from_tty)
   ensure_not_running ();
 
   /* Find out whether we must run in the background.  */
-  arg = strip_bg_char (arg, &async_exec);
-  args_chain = make_cleanup (xfree, arg);
+  gdb::unique_xmalloc_ptr<char> stripped = strip_bg_char (arg, &async_exec);
+  arg = stripped.get ();
 
   prepare_execution_command (&current_target, async_exec);
 
   if (arg)
     error (_("The \"finish\" command does not take any arguments."));
 
-  /* Done with ARGS.  */
-  do_cleanups (args_chain);
-
   frame = get_prev_frame (get_selected_frame (_("No selected frame.")));
   if (frame == 0)
     error (_("\"finish\" not meaningful in the outermost frame."));
@@ -2012,10 +2019,7 @@ finish_command (char *arg, int from_tty)
 	 called by that frame.  We don't use the magic "1" value for
 	 step_range_end, because then infrun will think this is nexti,
 	 and not step over the rest of this inlined function call.  */
-      struct symtab_and_line empty_sal;
-
-      init_sal (&empty_sal);
-      set_step_info (frame, empty_sal);
+      set_step_info (frame, {});
       tp->control.step_range_start = get_frame_pc (frame);
       tp->control.step_range_end = tp->control.step_range_start;
       tp->control.step_over_calls = STEP_OVER_ALL;
@@ -2070,7 +2074,7 @@ finish_command (char *arg, int from_tty)
 
 
 static void
-program_info (char *args, int from_tty)
+info_program_command (const char *args, int from_tty)
 {
   bpstat bs;
   int num, stat;
@@ -2137,11 +2141,11 @@ program_info (char *args, int from_tty)
 }
 
 static void
-environment_info (char *var, int from_tty)
+environment_info (const char *var, int from_tty)
 {
   if (var)
     {
-      char *val = get_in_environ (current_inferior ()->environment, var);
+      const char *val = current_inferior ()->environment.get (var);
 
       if (val)
 	{
@@ -2159,20 +2163,20 @@ environment_info (char *var, int from_tt
     }
   else
     {
-      char **vector = environ_vector (current_inferior ()->environment);
+      char **envp = current_inferior ()->environment.envp ();
 
-      while (*vector)
+      for (int idx = 0; envp[idx] != NULL; ++idx)
 	{
-	  puts_filtered (*vector++);
+	  puts_filtered (envp[idx]);
 	  puts_filtered ("\n");
 	}
     }
 }
 
 static void
-set_environment_command (char *arg, int from_tty)
+set_environment_command (const char *arg, int from_tty)
 {
-  char *p, *val, *var;
+  const char *p, *val;
   int nullset = 0;
 
   if (arg == 0)
@@ -2219,34 +2223,30 @@ set_environment_command (char *arg, int 
   while (p != arg && (p[-1] == ' ' || p[-1] == '\t'))
     p--;
 
-  var = savestring (arg, p - arg);
+  std::string var (arg, p - arg);
   if (nullset)
     {
       printf_filtered (_("Setting environment variable "
 			 "\"%s\" to null value.\n"),
-		       var);
-      set_in_environ (current_inferior ()->environment, var, "");
+		       var.c_str ());
+      current_inferior ()->environment.set (var.c_str (), "");
     }
   else
-    set_in_environ (current_inferior ()->environment, var, val);
-  xfree (var);
+    current_inferior ()->environment.set (var.c_str (), val);
 }
 
 static void
-unset_environment_command (char *var, int from_tty)
+unset_environment_command (const char *var, int from_tty)
 {
   if (var == 0)
     {
       /* If there is no argument, delete all environment variables.
          Ask for confirmation if reading from the terminal.  */
       if (!from_tty || query (_("Delete all environment variables? ")))
-	{
-	  free_environ (current_inferior ()->environment);
-	  current_inferior ()->environment = make_environ ();
-	}
+	current_inferior ()->environment.clear ();
     }
   else
-    unset_in_environ (current_inferior ()->environment, var);
+    current_inferior ()->environment.unset (var);
 }
 
 /* Handle the execution path (PATH variable).  */
@@ -2254,30 +2254,29 @@ unset_environment_command (char *var, in
 static const char path_var_name[] = "PATH";
 
 static void
-path_info (char *args, int from_tty)
+path_info (const char *args, int from_tty)
 {
   puts_filtered ("Executable and object file path: ");
-  puts_filtered (get_in_environ (current_inferior ()->environment,
-				 path_var_name));
+  puts_filtered (current_inferior ()->environment.get (path_var_name));
   puts_filtered ("\n");
 }
 
 /* Add zero or more directories to the front of the execution path.  */
 
 static void
-path_command (char *dirname, int from_tty)
+path_command (const char *dirname, int from_tty)
 {
   char *exec_path;
   const char *env;
 
   dont_repeat ();
-  env = get_in_environ (current_inferior ()->environment, path_var_name);
+  env = current_inferior ()->environment.get (path_var_name);
   /* Can be null if path is not set.  */
   if (!env)
     env = "";
   exec_path = xstrdup (env);
   mod_path (dirname, &exec_path);
-  set_in_environ (current_inferior ()->environment, path_var_name, exec_path);
+  current_inferior ()->environment.set (path_var_name, exec_path);
   xfree (exec_path);
   if (from_tty)
     path_info ((char *) NULL, from_tty);
@@ -2320,7 +2319,8 @@ default_print_one_register_info (struct 
       if (print_raw_format)
 	{
 	  fprintf_filtered (file, "\t(raw ");
-	  print_hex_chars (file, valaddr, TYPE_LENGTH (regtype), byte_order);
+	  print_hex_chars (file, valaddr, TYPE_LENGTH (regtype), byte_order,
+			   true);
 	  fprintf_filtered (file, ")");
 	}
     }
@@ -2407,7 +2407,7 @@ default_print_registers_info (struct gdb
 }
 
 void
-registers_info (char *addr_exp, int fpregs)
+registers_info (const char *addr_exp, int fpregs)
 {
   struct frame_info *frame;
   struct gdbarch *gdbarch;
@@ -2426,7 +2426,7 @@ registers_info (char *addr_exp, int fpre
 
   while (*addr_exp != '\0')
     {
-      char *start;
+      const char *start;
       const char *end;
 
       /* Skip leading white space.  */
@@ -2515,13 +2515,13 @@ registers_info (char *addr_exp, int fpre
 }
 
 static void
-all_registers_info (char *addr_exp, int from_tty)
+info_all_registers_command (const char *addr_exp, int from_tty)
 {
   registers_info (addr_exp, 1);
 }
 
 static void
-nofp_registers_info (char *addr_exp, int from_tty)
+info_registers_command (const char *addr_exp, int from_tty)
 {
   registers_info (addr_exp, 0);
 }
@@ -2556,7 +2556,7 @@ print_vector_info (struct ui_file *file,
 }
 
 static void
-vector_info (char *args, int from_tty)
+info_vector_command (const char *args, int from_tty)
 {
   if (!target_has_registers)
     error (_("The program has no registers now."));
@@ -2567,7 +2567,7 @@ vector_info (char *args, int from_tty)
 /* Kill the inferior process.  Make us have no inferior.  */
 
 static void
-kill_command (char *arg, int from_tty)
+kill_command (const char *arg, int from_tty)
 {
   /* FIXME:  This should not really be inferior_ptid (or target_has_execution).
      It should be a distinct flag that indicates that a target is active, cuz
@@ -2627,15 +2627,11 @@ proceed_after_attach (int pid)
 {
   /* Don't error out if the current thread is running, because
      there may be other stopped threads.  */
-  struct cleanup *old_chain;
 
   /* Backup current thread and selected frame.  */
-  old_chain = make_cleanup_restore_current_thread ();
+  scoped_restore_current_thread restore_thread;
 
   iterate_over_threads (proceed_after_attach_callback, &pid);
-
-  /* Restore selected ptid.  */
-  do_cleanups (old_chain);
 }
 
 /* See inferior.h.  */
@@ -2792,10 +2788,9 @@ attach_command_continuation_free_args (v
    and allows us to start debugging it.  */
 
 void
-attach_command (char *args, int from_tty)
+attach_command (const char *args, int from_tty)
 {
   int async_exec;
-  struct cleanup *args_chain;
   struct target_ops *attach_target;
   struct inferior *inferior = current_inferior ();
   enum attach_post_wait_mode mode;
@@ -2818,8 +2813,8 @@ attach_command (char *args, int from_tty
      this function should probably be moved into target_pre_inferior.  */
   target_pre_inferior (from_tty);
 
-  args = strip_bg_char (args, &async_exec);
-  args_chain = make_cleanup (xfree, args);
+  gdb::unique_xmalloc_ptr<char> stripped = strip_bg_char (args, &async_exec);
+  args = stripped.get ();
 
   attach_target = find_attach_target ();
 
@@ -2835,7 +2830,7 @@ attach_command (char *args, int from_tty
 
   /* Set up the "saved terminal modes" of the inferior
      based on what modes we are starting it with.  */
-  target_terminal_init ();
+  target_terminal::init ();
 
   /* Install inferior's terminal modes.  This may look like a no-op,
      as we've just saved them above, however, this does more than
@@ -2851,7 +2846,7 @@ attach_command (char *args, int from_tty
        while we're in the event loop waiting for that stop.  That is,
        before the attach continuation runs and the command is really
        finished.  */
-  target_terminal_inferior ();
+  target_terminal::inferior ();
 
   /* Set up execution context to know that we should return from
      wait_for_inferior as soon as the target reports a stop.  */
@@ -2897,17 +2892,12 @@ attach_command (char *args, int from_tty
       a->mode = mode;
       add_inferior_continuation (attach_command_continuation, a,
 				 attach_command_continuation_free_args);
-      /* Done with ARGS.  */
-      do_cleanups (args_chain);
 
       if (!target_is_async_p ())
 	mark_infrun_async_event_handler ();
       return;
     }
 
-  /* Done with ARGS.  */
-  do_cleanups (args_chain);
-
   attach_post_wait (args, from_tty, mode);
 }
 
@@ -2922,15 +2912,13 @@ attach_command (char *args, int from_tty
 void
 notice_new_inferior (ptid_t ptid, int leave_running, int from_tty)
 {
-  struct cleanup* old_chain;
-  enum attach_post_wait_mode mode;
-
-  old_chain = make_cleanup (null_cleanup, NULL);
+  enum attach_post_wait_mode mode
+    = leave_running ? ATTACH_POST_WAIT_RESUME : ATTACH_POST_WAIT_NOTHING;
 
-  mode = leave_running ? ATTACH_POST_WAIT_RESUME : ATTACH_POST_WAIT_NOTHING;
+  gdb::optional<scoped_restore_current_thread> restore_thread;
 
-  if (!ptid_equal (inferior_ptid, null_ptid))
-    make_cleanup_restore_current_thread ();
+  if (inferior_ptid != null_ptid)
+    restore_thread.emplace ();
 
   /* Avoid reading registers -- we haven't fetched the target
      description yet.  */
@@ -2959,13 +2947,10 @@ notice_new_inferior (ptid_t ptid, int le
       add_inferior_continuation (attach_command_continuation, a,
 				 attach_command_continuation_free_args);
 
-      do_cleanups (old_chain);
       return;
     }
 
   attach_post_wait ("" /* args */, from_tty, mode);
-
-  do_cleanups (old_chain);
 }
 
 /*
@@ -2980,7 +2965,7 @@ notice_new_inferior (ptid_t ptid, int le
  */
 
 void
-detach_command (char *args, int from_tty)
+detach_command (const char *args, int from_tty)
 {
   dont_repeat ();		/* Not for the faint of heart.  */
 
@@ -3023,7 +3008,7 @@ detach_command (char *args, int from_tty
    stopped processes on some native platforms (e.g. GNU/Linux).  */
 
 static void
-disconnect_command (char *args, int from_tty)
+disconnect_command (const char *args, int from_tty)
 {
   dont_repeat ();		/* Not for the faint of heart.  */
   query_if_trace_running (from_tty);
@@ -3067,7 +3052,7 @@ interrupt_target_1 (int all_threads)
    if the `-a' switch is used.  */
 
 static void
-interrupt_command (char *args, int from_tty)
+interrupt_command (const char *args, int from_tty)
 {
   if (target_can_async_p ())
     {
@@ -3112,7 +3097,7 @@ default_print_float_info (struct gdbarch
 }
 
 static void
-float_info (char *args, int from_tty)
+info_float_command (const char *args, int from_tty)
 {
   struct frame_info *frame;
 
@@ -3124,7 +3109,7 @@ float_info (char *args, int from_tty)
 }
 
 static void
-unset_command (char *args, int from_tty)
+unset_command (const char *args, int from_tty)
 {
   printf_filtered (_("\"unset\" must be followed by the "
 		     "name of an unset subcommand.\n"));
@@ -3134,7 +3119,7 @@ unset_command (char *args, int from_tty)
 /* Implement `info proc' family of commands.  */
 
 static void
-info_proc_cmd_1 (char *args, enum info_proc_what what, int from_tty)
+info_proc_cmd_1 (const char *args, enum info_proc_what what, int from_tty)
 {
   struct gdbarch *gdbarch = get_current_arch ();
 
@@ -3150,7 +3135,7 @@ info_proc_cmd_1 (char *args, enum info_p
 /* Implement `info proc' when given without any futher parameters.  */
 
 static void
-info_proc_cmd (char *args, int from_tty)
+info_proc_cmd (const char *args, int from_tty)
 {
   info_proc_cmd_1 (args, IP_MINIMAL, from_tty);
 }
@@ -3158,7 +3143,7 @@ info_proc_cmd (char *args, int from_tty)
 /* Implement `info proc mappings'.  */
 
 static void
-info_proc_cmd_mappings (char *args, int from_tty)
+info_proc_cmd_mappings (const char *args, int from_tty)
 {
   info_proc_cmd_1 (args, IP_MAPPINGS, from_tty);
 }
@@ -3166,7 +3151,7 @@ info_proc_cmd_mappings (char *args, int 
 /* Implement `info proc stat'.  */
 
 static void
-info_proc_cmd_stat (char *args, int from_tty)
+info_proc_cmd_stat (const char *args, int from_tty)
 {
   info_proc_cmd_1 (args, IP_STAT, from_tty);
 }
@@ -3174,7 +3159,7 @@ info_proc_cmd_stat (char *args, int from
 /* Implement `info proc status'.  */
 
 static void
-info_proc_cmd_status (char *args, int from_tty)
+info_proc_cmd_status (const char *args, int from_tty)
 {
   info_proc_cmd_1 (args, IP_STATUS, from_tty);
 }
@@ -3182,7 +3167,7 @@ info_proc_cmd_status (char *args, int fr
 /* Implement `info proc cwd'.  */
 
 static void
-info_proc_cmd_cwd (char *args, int from_tty)
+info_proc_cmd_cwd (const char *args, int from_tty)
 {
   info_proc_cmd_1 (args, IP_CWD, from_tty);
 }
@@ -3190,7 +3175,7 @@ info_proc_cmd_cwd (char *args, int from_
 /* Implement `info proc cmdline'.  */
 
 static void
-info_proc_cmd_cmdline (char *args, int from_tty)
+info_proc_cmd_cmdline (const char *args, int from_tty)
 {
   info_proc_cmd_1 (args, IP_CMDLINE, from_tty);
 }
@@ -3198,7 +3183,7 @@ info_proc_cmd_cmdline (char *args, int f
 /* Implement `info proc exe'.  */
 
 static void
-info_proc_cmd_exe (char *args, int from_tty)
+info_proc_cmd_exe (const char *args, int from_tty)
 {
   info_proc_cmd_1 (args, IP_EXE, from_tty);
 }
@@ -3206,11 +3191,27 @@ info_proc_cmd_exe (char *args, int from_
 /* Implement `info proc all'.  */
 
 static void
-info_proc_cmd_all (char *args, int from_tty)
+info_proc_cmd_all (const char *args, int from_tty)
 {
   info_proc_cmd_1 (args, IP_ALL, from_tty);
 }
 
+/* This help string is used for the run, start, and starti commands.
+   It is defined as a macro to prevent duplication.  */
+
+#define RUN_ARGS_HELP \
+"You may specify arguments to give it.\n\
+Args may include \"*\", or \"[...]\"; they are expanded using the\n\
+shell that will start the program (specified by the \"$SHELL\" environment\n\
+variable).  Input and output redirection with \">\", \"<\", or \">>\"\n\
+are also allowed.\n\
+\n\
+With no arguments, uses arguments last specified (with \"run\" or \n\
+\"set args\").  To cancel previous arguments and run with no arguments,\n\
+use \"set args\" without arguments.\n\
+\n\
+To start the inferior without using a shell, use \"set startup-with-shell off\"."
+
 void
 _initialize_infcmd (void)
 {
@@ -3247,6 +3248,25 @@ Follow this command with any number of a
   gdb_assert (c != NULL);
   set_cmd_completer (c, filename_completer);
 
+  cmd_name = "cwd";
+  add_setshow_string_noescape_cmd (cmd_name, class_run,
+				   &inferior_cwd_scratch, _("\
+Set the current working directory to be used when the inferior is started.\n\
+Changing this setting does not have any effect on inferiors that are\n\
+already running."),
+				   _("\
+Show the current working directory that is used when the inferior is started."),
+				   _("\
+Use this command to change the current working directory that will be used\n\
+when the inferior is started.  This setting does not affect GDB's current\n\
+working directory."),
+				   set_cwd_command,
+				   show_cwd_command,
+				   &setlist, &showlist);
+  c = lookup_cmd (&cmd_name, setlist, "", -1, 1);
+  gdb_assert (c != NULL);
+  set_cmd_completer (c, filename_completer);
+
   c = add_cmd ("environment", no_class, environment_info, _("\
 The environment to give the program, or one variable's value.\n\
 With an argument VAR, prints the value of environment variable VAR to\n\
@@ -3417,21 +3437,19 @@ Specifying -a and an ignore count simult
   add_com_alias ("fg", "cont", class_run, 1);
 
   c = add_com ("run", class_run, run_command, _("\
-Start debugged program.  You may specify arguments to give it.\n\
-Args may include \"*\", or \"[...]\"; they are expanded using \"sh\".\n\
-Input and output redirection with \">\", \"<\", or \">>\" are also \
-allowed.\n\n\
-With no arguments, uses arguments last specified (with \"run\" \
-or \"set args\").\n\
-To cancel previous arguments and run with no arguments,\n\
-use \"set args\" without arguments."));
+Start debugged program.\n"
+RUN_ARGS_HELP));
   set_cmd_completer (c, filename_completer);
   add_com_alias ("r", "run", class_run, 1);
 
   c = add_com ("start", class_run, start_command, _("\
-Run the debugged program until the beginning of the main procedure.\n\
-You may specify arguments to give to your program, just as with the\n\
-\"run\" command."));
+Start the debugged program stopping at the beginning of the main procedure.\n"
+RUN_ARGS_HELP));
+  set_cmd_completer (c, filename_completer);
+
+  c = add_com ("starti", class_run, starti_command, _("\
+Start the debugged program stopping at the first instruction.\n"
+RUN_ARGS_HELP));
   set_cmd_completer (c, filename_completer);
 
   add_com ("interrupt", class_run, interrupt_command,
@@ -3440,24 +3458,28 @@ If non-stop mode is enabled, interrupt o
 otherwise all the threads in the program are stopped.  To \n\
 interrupt all running threads in non-stop mode, use the -a option."));
 
-  c = add_info ("registers", nofp_registers_info, _("\
+  c = add_info ("registers", info_registers_command, _("\
 List of integer registers and their contents, for selected stack frame.\n\
-Register name as argument means describe only that register."));
+One or more register names as argument means describe the given registers.\n\
+One or more register group names as argument means describe the registers\n\
+in the named register groups."));
   add_info_alias ("r", "registers", 1);
   set_cmd_completer (c, reg_or_group_completer);
 
-  c = add_info ("all-registers", all_registers_info, _("\
+  c = add_info ("all-registers", info_all_registers_command, _("\
 List of all registers and their contents, for selected stack frame.\n\
-Register name as argument means describe only that register."));
+One or more register names as argument means describe the given registers.\n\
+One or more register group names as argument means describe the registers\n\
+in the named register groups."));
   set_cmd_completer (c, reg_or_group_completer);
 
-  add_info ("program", program_info,
+  add_info ("program", info_program_command,
 	    _("Execution status of the program."));
 
-  add_info ("float", float_info,
+  add_info ("float", info_float_command,
 	    _("Print the status of the floating point unit\n"));
 
-  add_info ("vector", vector_info,
+  add_info ("vector", info_vector_command,
 	    _("Print the status of the vector unit\n"));
 
   add_prefix_cmd ("proc", class_info, info_proc_cmd,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inferior.c ./gdb/inferior.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inferior.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/inferior.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Multi-process control for GDB, the GNU debugger.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -35,8 +35,7 @@
 #include "arch-utils.h"
 #include "target-descriptions.h"
 #include "readline/tilde.h"
-
-void _initialize_inferiors (void);
+#include "progspace-and-thread.h"
 
 /* Keep a registry of per-inferior data-pointers required by other GDB
    modules.  */
@@ -50,7 +49,9 @@ static int highest_inferior_num;
    `set print inferior-events'.  */
 static int print_inferior_events = 0;
 
-/* The Current Inferior.  */
+/* The Current Inferior.  This is a strong reference.  I.e., whenever
+   an inferior is the current inferior, its refcount is
+   incremented.  */
 static struct inferior *current_inferior_ = NULL;
 
 struct inferior*
@@ -65,32 +66,12 @@ set_current_inferior (struct inferior *i
   /* There's always an inferior.  */
   gdb_assert (inf != NULL);
 
+  inf->incref ();
+  current_inferior_->decref ();
   current_inferior_ = inf;
 }
 
-/* A cleanups callback, helper for save_current_program_space
-   below.  */
-
-static void
-restore_inferior (void *arg)
-{
-  struct inferior *saved_inferior = (struct inferior *) arg;
-
-  set_current_inferior (saved_inferior);
-}
-
-/* Save the current program space so that it may be restored by a later
-   call to do_cleanups.  Returns the struct cleanup pointer needed for
-   later doing the cleanup.  */
-
-struct cleanup *
-save_current_inferior (void)
-{
-  struct cleanup *old_chain = make_cleanup (restore_inferior,
-					    current_inferior_);
-
-  return old_chain;
-}
+private_inferior::~private_inferior () = default;
 
 inferior::~inferior ()
 {
@@ -100,18 +81,15 @@ inferior::~inferior ()
   inferior_free_data (inf);
   xfree (inf->args);
   xfree (inf->terminal);
-  free_environ (inf->environment);
   target_desc_info_free (inf->tdesc_info);
-  xfree (inf->priv);
 }
 
 inferior::inferior (int pid_)
   : num (++highest_inferior_num),
     pid (pid_),
-    environment (make_environ ()),
+    environment (gdb_environ::from_host_environ ()),
     registry_data ()
 {
-  init_environ (this->environment);
   inferior_alloc_data (this);
 }
 
@@ -232,7 +210,6 @@ exit_inferior_1 (struct inferior *inftoe
 
   inf->pid = 0;
   inf->fake_pid_p = 0;
-  xfree (inf->priv);
   inf->priv = NULL;
 
   if (inf->vfork_parent != NULL)
@@ -483,13 +460,12 @@ void
 prune_inferiors (void)
 {
   struct inferior *ss, **ss_link;
-  struct inferior *current = current_inferior ();
 
   ss = inferior_list;
   ss_link = &inferior_list;
   while (ss)
     {
-      if (ss == current
+      if (!ss->deletable ()
 	  || !ss->removable
 	  || ss->pid != 0)
 	{
@@ -553,10 +529,9 @@ print_selected_inferior (struct ui_out *
    printed.  */
 
 static void
-print_inferior (struct ui_out *uiout, char *requested_inferiors)
+print_inferior (struct ui_out *uiout, const char *requested_inferiors)
 {
   struct inferior *inf;
-  struct cleanup *old_chain;
   int inf_count = 0;
 
   /* Compute number of inferiors we will print.  */
@@ -574,8 +549,7 @@ print_inferior (struct ui_out *uiout, ch
       return;
     }
 
-  old_chain = make_cleanup_ui_out_table_begin_end (uiout, 4, inf_count,
-						   "inferiors");
+  ui_out_emit_table table_emitter (uiout, 4, inf_count, "inferiors");
   uiout->table_header (1, ui_left, "current", "");
   uiout->table_header (4, ui_left, "number", "Num");
   uiout->table_header (17, ui_left, "target-id", "Description");
@@ -584,12 +558,10 @@ print_inferior (struct ui_out *uiout, ch
   uiout->table_body ();
   for (inf = inferior_list; inf; inf = inf->next)
     {
-      struct cleanup *chain2;
-
       if (!number_is_in_list (requested_inferiors, inf->num))
 	continue;
 
-      chain2 = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+      ui_out_emit_tuple tuple_emitter (uiout, NULL);
 
       if (inf == current_inferior ())
 	uiout->field_string ("current", "*");
@@ -620,14 +592,11 @@ print_inferior (struct ui_out *uiout, ch
 	}
 
       uiout->text ("\n");
-      do_cleanups (chain2);
     }
-
-  do_cleanups (old_chain);
 }
 
 static void
-detach_inferior_command (char *args, int from_tty)
+detach_inferior_command (const char *args, int from_tty)
 {
   struct thread_info *tp;
 
@@ -666,7 +635,7 @@ detach_inferior_command (char *args, int
 }
 
 static void
-kill_inferior_command (char *args, int from_tty)
+kill_inferior_command (const char *args, int from_tty)
 {
   struct thread_info *tp;
 
@@ -707,7 +676,7 @@ kill_inferior_command (char *args, int f
 }
 
 static void
-inferior_command (char *args, int from_tty)
+inferior_command (const char *args, int from_tty)
 {
   struct inferior *inf;
   int num;
@@ -749,7 +718,7 @@ inferior_command (char *args, int from_t
 /* Print information about currently known inferiors.  */
 
 static void
-info_inferiors_command (char *args, int from_tty)
+info_inferiors_command (const char *args, int from_tty)
 {
   print_inferior (current_uiout, args);
 }
@@ -757,7 +726,7 @@ info_inferiors_command (char *args, int 
 /* remove-inferior ID */
 
 static void
-remove_inferior_command (char *args, int from_tty)
+remove_inferior_command (const char *args, int from_tty)
 {
   if (args == NULL || *args == '\0')
     error (_("Requires an argument (inferior id(s) to remove)"));
@@ -774,7 +743,7 @@ remove_inferior_command (char *args, int
 	  continue;
 	}
 
-      if (inf == current_inferior ())
+      if (!inf->deletable ())
 	{
 	  warning (_("Can not remove current inferior %d."), num);
 	  continue;
@@ -821,23 +790,20 @@ add_inferior_with_spaces (void)
 /* add-inferior [-copies N] [-exec FILENAME]  */
 
 static void
-add_inferior_command (char *args, int from_tty)
+add_inferior_command (const char *args, int from_tty)
 {
   int i, copies = 1;
-  char *exec = NULL;
-  char **argv;
+  gdb::unique_xmalloc_ptr<char> exec;
   symfile_add_flags add_flags = 0;
-  struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
 
   if (from_tty)
     add_flags |= SYMFILE_VERBOSE;
 
   if (args)
     {
-      argv = gdb_buildargv (args);
-      make_cleanup_freeargv (argv);
+      gdb_argv built_argv (args);
 
-      for (; *argv != NULL; argv++)
+      for (char **argv = built_argv.get (); *argv != NULL; argv++)
 	{
 	  if (**argv == '-')
 	    {
@@ -853,8 +819,7 @@ add_inferior_command (char *args, int fr
 		  ++argv;
 		  if (!*argv)
 		    error (_("No argument to -exec"));
-		  exec = tilde_expand (*argv);
-		  make_cleanup (xfree, exec);
+		  exec.reset (tilde_expand (*argv));
 		}
 	    }
 	  else
@@ -862,7 +827,7 @@ add_inferior_command (char *args, int fr
 	}
     }
 
-  save_current_space_and_thread ();
+  scoped_restore_current_pspace_and_thread restore_pspace_thread;
 
   for (i = 0; i < copies; ++i)
     {
@@ -878,29 +843,25 @@ add_inferior_command (char *args, int fr
 	  set_current_inferior (inf);
 	  switch_to_thread (null_ptid);
 
-	  exec_file_attach (exec, from_tty);
-	  symbol_file_add_main (exec, add_flags);
+	  exec_file_attach (exec.get (), from_tty);
+	  symbol_file_add_main (exec.get (), add_flags);
 	}
     }
-
-  do_cleanups (old_chain);
 }
 
 /* clone-inferior [-copies N] [ID] */
 
 static void
-clone_inferior_command (char *args, int from_tty)
+clone_inferior_command (const char *args, int from_tty)
 {
   int i, copies = 1;
-  char **argv;
   struct inferior *orginf = NULL;
-  struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
 
   if (args)
     {
-      argv = gdb_buildargv (args);
-      make_cleanup_freeargv (argv);
+      gdb_argv built_argv (args);
 
+      char **argv = built_argv.get ();
       for (; *argv != NULL; argv++)
 	{
 	  if (**argv == '-')
@@ -942,7 +903,7 @@ clone_inferior_command (char *args, int 
   if (orginf == NULL)
     orginf = current_inferior ();
 
-  save_current_space_and_thread ();
+  scoped_restore_current_pspace_and_thread restore_pspace_thread;
 
   for (i = 0; i < copies; ++i)
     {
@@ -971,8 +932,6 @@ clone_inferior_command (char *args, int 
       switch_to_thread (null_ptid);
       clone_program_space (pspace, orginf->pspace);
     }
-
-  do_cleanups (old_chain);
 }
 
 /* Print notices when new inferiors are created and die.  */
@@ -1017,6 +976,7 @@ initialize_inferiors (void)
      that.  Do this after initialize_progspace, due to the
      current_program_space reference.  */
   current_inferior_ = add_inferior (0);
+  current_inferior_->incref ();
   current_inferior_->pspace = current_program_space;
   current_inferior_->aspace = current_program_space->aspace;
   /* The architecture will be initialized shortly, by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inferior.h ./gdb/inferior.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inferior.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/inferior.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Variables that describe the inferior process running under GDB:
    Where it is, why it stopped, and how to step it.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -30,8 +30,8 @@ struct regcache;
 struct ui_out;
 struct terminal_info;
 struct target_desc_info;
-struct gdb_environ;
 struct continuation;
+struct inferior;
 
 /* For bpstat.  */
 #include "breakpoint.h"
@@ -42,10 +42,16 @@ struct continuation;
 /* For struct frame_id.  */
 #include "frame.h"
 
+/* For gdb_environ.  */
+#include "environ.h"
+
 #include "progspace.h"
 #include "registry.h"
 
 #include "symfile-add-flags.h"
+#include "common/refcounted-object.h"
+
+#include "common-inferior.h"
 
 struct infcall_suspend_state;
 struct infcall_control_state;
@@ -67,11 +73,6 @@ extern void discard_infcall_control_stat
 extern struct regcache *
   get_infcall_suspend_state_regcache (struct infcall_suspend_state *);
 
-/* Save value of inferior_ptid so that it may be restored by
-   a later call to do_cleanups().  Returns the struct cleanup
-   pointer needed for later doing the cleanup.  */
-extern struct cleanup * save_inferior_ptid (void);
-
 extern void set_sigint_trap (void);
 
 extern void clear_sigint_trap (void);
@@ -120,7 +121,7 @@ extern void default_print_float_info (st
 
 extern void child_terminal_info (struct target_ops *self, const char *, int);
 
-extern void term_info (char *, int);
+extern void info_terminal_command (char *, int);
 
 extern void child_terminal_ours (struct target_ops *self);
 
@@ -134,28 +135,10 @@ extern void child_terminal_init_with_pgr
 
 /* From fork-child.c */
 
-/* Report an error that happened when starting to trace the inferior
-   (i.e., when the "traceme_fun" callback is called on fork_inferior)
-   and bail out.  This function does not return.  */
-
-extern void trace_start_error (const char *fmt, ...)
-  ATTRIBUTE_NORETURN;
-
-/* Like "trace_start_error", but the error message is constructed by
-   combining STRING with the system error message for errno.  This
-   function does not return.  */
-
-extern void trace_start_error_with_name (const char *string)
-  ATTRIBUTE_NORETURN;
-
-extern int fork_inferior (const char *, const std::string &, char **,
-			  void (*)(void),
-			  void (*)(int), void (*)(void), char *,
-                          void (*)(const char *,
-                                   char * const *, char * const *));
-
-
-extern void startup_inferior (int);
+/* Helper function to call STARTUP_INFERIOR with PID and NUM_TRAPS.
+   This function already calls set_executing.  Return the ptid_t from
+   STARTUP_INFERIOR.  */
+extern ptid_t gdb_startup_inferior (pid_t pid, int num_traps);
 
 extern char *construct_inferior_arguments (int, char **);
 
@@ -169,15 +152,15 @@ extern void setup_inferior (int from_tty
 
 extern void post_create_inferior (struct target_ops *, int);
 
-extern void attach_command (char *, int);
+extern void attach_command (const char *, int);
 
 extern char *get_inferior_args (void);
 
-extern void set_inferior_args (char *);
+extern void set_inferior_args (const char *);
 
 extern void set_inferior_args_vector (int, char **);
 
-extern void registers_info (char *, int);
+extern void registers_info (const char *, int);
 
 extern void continue_1 (int all_threads);
 
@@ -185,7 +168,7 @@ extern void interrupt_target_1 (int all_
 
 extern void delete_longjmp_breakpoint_cleanup (void *arg);
 
-extern void detach_command (char *, int);
+extern void detach_command (const char *, int);
 
 extern void notice_new_inferior (ptid_t, int, int);
 
@@ -280,13 +263,12 @@ enum stop_kind
 #define ON_STACK 1
 #define AT_ENTRY_POINT 4
 
-/* Number of traps that happen between exec'ing the shell to run an
-   inferior and when we finally get to the inferior code, not counting
-   the exec for the shell.  This is 1 on all supported
-   implementations.  */
-#define START_INFERIOR_TRAPS_EXPECTED	1
+/* Base class for target-specific inferior data.  */
 
-struct private_inferior;
+struct private_inferior
+{
+  virtual ~private_inferior () = 0;
+};
 
 /* Inferior process specific part of `struct infcall_control_state'.
 
@@ -298,6 +280,11 @@ struct inferior_control_state
   enum stop_kind stop_soon;
 };
 
+/* Return a pointer to the current inferior.  */
+extern inferior *current_inferior ();
+
+extern void set_current_inferior (inferior *);
+
 /* GDB represents the state of each program execution with an object
    called an inferior.  An inferior typically corresponds to a process
    but is more general and applies also to targets that do not have a
@@ -305,14 +292,30 @@ struct inferior_control_state
    inferior, as does each attachment to an existing process.
    Inferiors have unique internal identifiers that are different from
    target process ids.  Each inferior may in turn have multiple
-   threads running in it.  */
+   threads running in it.
+
+   Inferiors are intrusively refcounted objects.  Unlike thread
+   objects, being the user-selected inferior is considered a strong
+   reference and is thus accounted for in the inferior object's
+   refcount (see set_current_inferior).  When GDB needs to remember
+   the selected inferior to later restore it, GDB temporarily bumps
+   the inferior object's refcount, to prevent something deleting the
+   inferior object before reverting back (e.g., due to a
+   "remove-inferiors" command (see
+   make_cleanup_restore_current_thread).  All other inferior
+   references are considered weak references.  Inferiors are always
+   listed exactly once in the inferior list, so placing an inferior in
+   the inferior list is an implicit, not counted strong reference.  */
 
-class inferior
+class inferior : public refcounted_object
 {
 public:
   explicit inferior (int pid);
   ~inferior ();
 
+  /* Returns true if we can delete this inferior.  */
+  bool deletable () const { return refcount () == 0; }
+
   /* Pointer to next inferior in singly-linked list of inferiors.  */
   struct inferior *next = NULL;
 
@@ -357,12 +360,16 @@ public:
      should never be freed.  */
   char **argv = NULL;
 
+  /* The current working directory that will be used when starting
+     this inferior.  */
+  gdb::unique_xmalloc_ptr<char> cwd;
+
   /* The name of terminal device to use for I/O.  */
   char *terminal = NULL;
 
   /* Environment to use for running inferior,
      in format described in environ.h.  */
-  gdb_environ *environment = NULL;
+  gdb_environ environment;
 
   /* True if this child process was attached rather than forked.  */
   bool attach_flag = false;
@@ -387,7 +394,7 @@ public:
   bool waiting_for_vfork_done = false;
 
   /* True if we're in the process of detaching from this inferior.  */
-  int detaching = 0;
+  bool detaching = false;
 
   /* What is left to do for an execution command after any thread of
      this inferior stops.  For continuations associated with a
@@ -401,7 +408,7 @@ public:
   bool needs_setup = false;
 
   /* Private data used by the target vector implementation.  */
-  private_inferior *priv = NULL;
+  std::unique_ptr<private_inferior> priv;
 
   /* HAS_EXIT_CODE is true if the inferior exited with an exit code.
      In this case, the EXIT_CODE field is also valid.  */
@@ -517,13 +524,24 @@ extern int number_of_live_inferiors (voi
    (not cores, not executables, real live processes).  */
 extern int have_live_inferiors (void);
 
-/* Return a pointer to the current inferior.  It is an error to call
-   this if there is no current inferior.  */
-extern struct inferior *current_inferior (void);
+/* Save/restore the current inferior.  */
 
-extern void set_current_inferior (struct inferior *);
+class scoped_restore_current_inferior
+{
+public:
+  scoped_restore_current_inferior ()
+    : m_saved_inf (current_inferior ())
+  {}
+
+  ~scoped_restore_current_inferior ()
+  { set_current_inferior (m_saved_inf); }
+
+  DISABLE_COPY_AND_ASSIGN (scoped_restore_current_inferior);
+
+private:
+  inferior *m_saved_inf;
+};
 
-extern struct cleanup *save_current_inferior (void);
 
 /* Traverse all inferiors.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inf-loop.c ./gdb/inf-loop.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inf-loop.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/inf-loop.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Handling of inferior events for the event loop for GDB, the GNU debugger.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
 
    This file is part of GDB.
@@ -73,7 +73,15 @@ inferior_event_handler (enum inferior_ev
 	    }
 	  CATCH (e, RETURN_MASK_ALL)
 	    {
-	      exception_print (gdb_stderr, e);
+	      /* If the user was running a foreground execution
+		 command, then propagate the error so that the prompt
+		 can be reenabled.  Otherwise, the user already has
+		 the prompt and is typing some unrelated command, so
+		 just inform the user and swallow the exception.  */
+	      if (current_ui->prompt_state == PROMPT_BLOCKED)
+		throw_exception (e);
+	      else
+		exception_print (gdb_stderr, e);
 	    }
 	  END_CATCH
 	}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inf-loop.h ./gdb/inf-loop.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inf-loop.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/inf-loop.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Interface to the inferior event handling code for GDB, the GNU debugger.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inflow.c ./gdb/inflow.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inflow.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/inflow.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Low level interface to ptrace, for GDB when running under Unix.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -31,7 +31,10 @@
 
 #include "inflow.h"
 #include "gdbcmd.h"
-#include "gdb_termios.h"
+#ifdef HAVE_TERMIOS_H
+#include <termios.h>
+#endif
+#include "job-control.h"
 
 #ifdef HAVE_SYS_IOCTL_H
 #include <sys/ioctl.h>
@@ -41,8 +44,6 @@
 #define O_NOCTTY 0
 #endif
 
-extern void _initialize_inflow (void);
-
 static void pass_signal (int);
 
 static void child_terminal_ours_1 (int);
@@ -65,9 +66,9 @@ struct terminal_info
      it when it resumes.  */
   serial_ttystate ttystate;
 
-#ifdef PROCESS_GROUP_TYPE
+#ifdef HAVE_TERMIOS_H
   /* Process group.  Saved and restored just like ttystate.  */
-  PROCESS_GROUP_TYPE process_group;
+  pid_t process_group;
 #endif
 
   /* fcntl flags.  Saved and restored just like ttystate.  */
@@ -90,11 +91,40 @@ static serial_ttystate initial_gdb_ttyst
 
 static struct terminal_info *get_inflow_inferior_data (struct inferior *);
 
-#ifdef PROCESS_GROUP_TYPE
+/* RAII class used to ignore SIGTTOU in a scope.  */
+
+class scoped_ignore_sigttou
+{
+public:
+  scoped_ignore_sigttou ()
+  {
+#ifdef SIGTTOU
+    if (job_control)
+      m_osigttou = signal (SIGTTOU, SIG_IGN);
+#endif
+  }
+
+  ~scoped_ignore_sigttou ()
+  {
+#ifdef SIGTTOU
+    if (job_control)
+      signal (SIGTTOU, m_osigttou);
+#endif
+  }
+
+  DISABLE_COPY_AND_ASSIGN (scoped_ignore_sigttou);
+
+private:
+#ifdef SIGTTOU
+  sighandler_t m_osigttou = NULL;
+#endif
+};
+
+#ifdef HAVE_TERMIOS_H
 
 /* Return the process group of the current inferior.  */
 
-PROCESS_GROUP_TYPE
+pid_t
 inferior_process_group (void)
 {
   return get_inflow_inferior_data (current_inferior ())->process_group;
@@ -122,25 +152,6 @@ static const char *inferior_thisrun_term
 
 int terminal_is_ours;
 
-#ifdef PROCESS_GROUP_TYPE
-static PROCESS_GROUP_TYPE
-gdb_getpgrp (void)
-{
-  int process_group = -1;
-
-#ifdef HAVE_TERMIOS
-  process_group = tcgetpgrp (0);
-#endif
-#ifdef HAVE_TERMIO
-  process_group = getpgrp ();
-#endif
-#ifdef HAVE_SGTTY
-  ioctl (0, TIOCGPGRP, &process_group);
-#endif
-  return process_group;
-}
-#endif
-
 /* See terminal.h.  */
 
 void
@@ -158,8 +169,8 @@ set_initial_gdb_ttystate (void)
 #ifdef F_GETFL
       our_terminal_info.tflags = fcntl (0, F_GETFL, 0);
 #endif
-#ifdef PROCESS_GROUP_TYPE
-      our_terminal_info.process_group = gdb_getpgrp ();
+#ifdef HAVE_TERMIOS_H
+      our_terminal_info.process_group = tcgetpgrp (0);
 #endif
     }
 }
@@ -183,16 +194,18 @@ gdb_has_a_terminal (void)
    before we actually run the inferior.  */
 
 void
-child_terminal_init_with_pgrp (int pgrp)
+child_terminal_init (struct target_ops *self)
 {
   struct inferior *inf = current_inferior ();
   struct terminal_info *tinfo = get_inflow_inferior_data (inf);
 
-#ifdef PROCESS_GROUP_TYPE
+#ifdef HAVE_TERMIOS_H
   /* Store the process group even without a terminal as it is used not
      only to reset the tty foreground process group, but also to
-     interrupt the inferior.  */
-  tinfo->process_group = pgrp;
+     interrupt the inferior.  A child we spawn should be a process
+     group leader (PGID==PID) at this point, though that may not be
+     true if we're attaching to an existing process.  */
+  tinfo->process_group = inf->pid;
 #endif
 
   if (gdb_has_a_terminal ())
@@ -222,20 +235,6 @@ gdb_save_tty_state (void)
     }
 }
 
-void
-child_terminal_init (struct target_ops *self)
-{
-#ifdef PROCESS_GROUP_TYPE
-  /* This is for Lynx, and should be cleaned up by having Lynx be a
-     separate debugging target with a version of target_terminal_init
-     which passes in the process group to a generic routine which does
-     all the work (and the non-threaded child_terminal_init can just
-     pass in inferior_ptid to the same routine).  */
-  /* We assume INFERIOR_PID is also the child's process group.  */
-  child_terminal_init_with_pgrp (ptid_get_pid (inferior_ptid));
-#endif /* PROCESS_GROUP_TYPE */
-}
-
 /* Put the inferior's terminal settings into effect.
    This is preparation for starting or resuming the inferior.
 
@@ -262,19 +261,11 @@ child_terminal_inferior (struct target_o
       int result;
 
 #ifdef F_GETFL
-      /* Is there a reason this is being done twice?  It happens both
-         places we use F_SETFL, so I'm inclined to think perhaps there
-         is some reason, however perverse.  Perhaps not though...  */
-      result = fcntl (0, F_SETFL, tinfo->tflags);
       result = fcntl (0, F_SETFL, tinfo->tflags);
       OOPSY ("fcntl F_SETFL");
 #endif
 
-      /* Because we were careful to not change in or out of raw mode in
-         terminal_ours, we will not change in our out of raw mode with
-         this call, so we don't flush any input.  */
-      result = serial_set_tty_state (stdin_serial,
-				     tinfo->ttystate);
+      result = serial_set_tty_state (stdin_serial, tinfo->ttystate);
       OOPSY ("setting tty state");
 
       if (!job_control)
@@ -299,19 +290,12 @@ child_terminal_inferior (struct target_o
 
       if (job_control)
 	{
-#ifdef HAVE_TERMIOS
+#ifdef HAVE_TERMIOS_H
 	  result = tcsetpgrp (0, tinfo->process_group);
 	  if (!inf->attach_flag)
 	    OOPSY ("tcsetpgrp");
 #endif
-
-#ifdef HAVE_SGTTY
-	  result = ioctl (0, TIOCSPGRP, &tinfo->process_group);
-	  if (!inf->attach_flag)
-	    OOPSY ("TIOCSPGRP");
-#endif
 	}
-
     }
   terminal_is_ours = 0;
 }
@@ -374,49 +358,29 @@ child_terminal_ours_1 (int output_only)
     return;
   else
     {
-#ifdef SIGTTOU
-      /* Ignore this signal since it will happen when we try to set the
-         pgrp.  */
-      sighandler_t osigttou = NULL;
-#endif
       int result ATTRIBUTE_UNUSED;
 
-#ifdef SIGTTOU
-      if (job_control)
-	osigttou = signal (SIGTTOU, SIG_IGN);
-#endif
+      /* Ignore SIGTTOU since it will happen when we try to set the
+	 terminal's pgrp.  */
+      scoped_ignore_sigttou ignore_sigttou;
 
       xfree (tinfo->ttystate);
       tinfo->ttystate = serial_get_tty_state (stdin_serial);
 
-#ifdef PROCESS_GROUP_TYPE
+#ifdef HAVE_TERMIOS_H
       if (!inf->attach_flag)
-	/* If setpgrp failed in terminal_inferior, this would give us
+	/* If tcsetpgrp failed in terminal_inferior, this would give us
 	   our process group instead of the inferior's.  See
 	   terminal_inferior for details.  */
-	tinfo->process_group = gdb_getpgrp ();
+	tinfo->process_group = tcgetpgrp (0);
 #endif
 
-      /* Here we used to set ICANON in our ttystate, but I believe this
-         was an artifact from before when we used readline.  Readline sets
-         the tty state when it needs to.
-         FIXME-maybe: However, query() expects non-raw mode and doesn't
-         use readline.  Maybe query should use readline (on the other hand,
-         this only matters for HAVE_SGTTY, not termio or termios, I think).  */
-
-      /* Set tty state to our_ttystate.  We don't change in our out of raw
-         mode, to avoid flushing input.  We need to do the same thing
-         regardless of output_only, because we don't have separate
-         terminal_is_ours and terminal_is_ours_for_output flags.  It's OK,
-         though, since readline will deal with raw mode when/if it needs
-         to.  */
-
-      serial_noflush_set_tty_state (stdin_serial, our_terminal_info.ttystate,
-				    tinfo->ttystate);
+      /* Set tty state to our_ttystate.  */
+      serial_set_tty_state (stdin_serial, our_terminal_info.ttystate);
 
       if (job_control)
 	{
-#ifdef HAVE_TERMIOS
+#ifdef HAVE_TERMIOS_H
 	  result = tcsetpgrp (0, our_terminal_info.process_group);
 #if 0
 	  /* This fails on Ultrix with EINVAL if you run the testsuite
@@ -429,17 +393,8 @@ child_terminal_ours_1 (int output_only)
 				safe_strerror (errno));
 #endif
 #endif /* termios */
-
-#ifdef HAVE_SGTTY
-	  result = ioctl (0, TIOCSPGRP, &our_terminal_info.process_group);
-#endif
 	}
 
-#ifdef SIGTTOU
-      if (job_control)
-	signal (SIGTTOU, osigttou);
-#endif
-
       if (!job_control)
 	{
 	  signal (SIGINT, sigint_ours);
@@ -450,11 +405,6 @@ child_terminal_ours_1 (int output_only)
 
 #ifdef F_GETFL
       tinfo->tflags = fcntl (0, F_GETFL, 0);
-
-      /* Is there a reason this is being done twice?  It happens both
-         places we use F_SETFL, so I'm inclined to think perhaps there
-         is some reason, however perverse.  Perhaps not though...  */
-      result = fcntl (0, F_SETFL, our_terminal_info.tflags);
       result = fcntl (0, F_SETFL, our_terminal_info.tflags);
 #endif
     }
@@ -535,9 +485,9 @@ copy_terminal_info (struct inferior *to,
 }
 
 void
-term_info (char *arg, int from_tty)
+info_terminal_command (const char *arg, int from_tty)
 {
-  target_terminal_info (arg, from_tty);
+  target_terminal::info (arg, from_tty);
 }
 
 void
@@ -617,7 +567,7 @@ child_terminal_info (struct target_ops *
     printf_filtered ("\n");
   }
 
-#ifdef PROCESS_GROUP_TYPE
+#ifdef HAVE_TERMIOS_H
   printf_filtered ("Process group = %d\n", (int) tinfo->process_group);
 #endif
 
@@ -671,12 +621,10 @@ new_tty (void)
   tty = open ("/dev/tty", O_RDWR);
   if (tty > 0)
     {
-      sighandler_t osigttou;
+      scoped_ignore_sigttou ignore_sigttou;
 
-      osigttou = signal (SIGTTOU, SIG_IGN);
       ioctl (tty, TIOCNOTTY, 0);
       close (tty);
-      signal (SIGTTOU, osigttou);
     }
 #endif
 
@@ -804,43 +752,6 @@ create_tty_session (void)
 #endif /* HAVE_SETSID */
 }
 
-/* This is here because this is where we figure out whether we (probably)
-   have job control.  Just using job_control only does part of it because
-   setpgid or setpgrp might not exist on a system without job control.
-   It might be considered misplaced (on the other hand, process groups and
-   job control are closely related to ttys).
-
-   For a more clean implementation, in libiberty, put a setpgid which merely
-   calls setpgrp and a setpgrp which does nothing (any system with job control
-   will have one or the other).  */
-int
-gdb_setpgid (void)
-{
-  int retval = 0;
-
-  if (job_control)
-    {
-#if defined (HAVE_TERMIOS) || defined (TIOCGPGRP)
-#ifdef HAVE_SETPGID
-      /* The call setpgid (0, 0) is supposed to work and mean the same
-         thing as this, but on Ultrix 4.2A it fails with EPERM (and
-         setpgid (getpid (), getpid ()) succeeds).  */
-      retval = setpgid (getpid (), getpid ());
-#else
-#ifdef HAVE_SETPGRP
-#ifdef SETPGRP_VOID 
-      retval = setpgrp ();
-#else
-      retval = setpgrp (getpid (), getpid ());
-#endif
-#endif /* HAVE_SETPGRP */
-#endif /* HAVE_SETPGID */
-#endif /* defined (HAVE_TERMIOS) || defined (TIOCGPGRP) */
-    }
-
-  return retval;
-}
-
 /* Get all the current tty settings (including whether we have a
    tty at all!).  We can't do this in _initialize_inflow because
    serial_fdopen() won't work until the serial_ops_list is
@@ -856,35 +767,13 @@ initialize_stdin_serial (void)
 void
 _initialize_inflow (void)
 {
-  add_info ("terminal", term_info,
+  add_info ("terminal", info_terminal_command,
 	    _("Print inferior's saved terminal status."));
 
   terminal_is_ours = 1;
 
-  /* OK, figure out whether we have job control.  If neither termios nor
-     sgtty (i.e. termio or go32), leave job_control 0.  */
-
-#if defined (HAVE_TERMIOS)
-  /* Do all systems with termios have the POSIX way of identifying job
-     control?  I hope so.  */
-#ifdef _POSIX_JOB_CONTROL
-  job_control = 1;
-#else
-#ifdef _SC_JOB_CONTROL
-  job_control = sysconf (_SC_JOB_CONTROL);
-#else
-  job_control = 0;		/* Have to assume the worst.  */
-#endif /* _SC_JOB_CONTROL */
-#endif /* _POSIX_JOB_CONTROL */
-#endif /* HAVE_TERMIOS */
-
-#ifdef HAVE_SGTTY
-#ifdef TIOCGPGRP
-  job_control = 1;
-#else
-  job_control = 0;
-#endif /* TIOCGPGRP */
-#endif /* sgtty */
+  /* OK, figure out whether we have job control.  */
+  have_job_control ();
 
   observer_attach_inferior_exit (inflow_inferior_exit);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inflow.h ./gdb/inflow.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inflow.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/inflow.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low level interface to ptrace, for GDB when running under Unix.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,17 +20,11 @@
 #ifndef INFLOW_H
 #define INFLOW_H
 
-#include "gdb_termios.h"
+#include <unistd.h>
 
-#ifdef HAVE_TERMIOS
-# define PROCESS_GROUP_TYPE pid_t
-#elif defined (HAVE_TERMIO) || defined (HAVE_SGTTY)
-# define PROCESS_GROUP_TYPE int
-#endif
-
-#ifdef PROCESS_GROUP_TYPE
 /* Process group of the current inferior.  */
-extern PROCESS_GROUP_TYPE inferior_process_group (void);
+#ifdef HAVE_TERMIOS_H
+extern pid_t inferior_process_group (void);
 #endif
 
 #endif /* inflow.h */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inf-ptrace.c ./gdb/inf-ptrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inf-ptrace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/inf-ptrace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low-level child interface to ptrace.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -31,6 +31,8 @@
 #include "inf-ptrace.h"
 #include "inf-child.h"
 #include "gdbthread.h"
+#include "nat/fork-inferior.h"
+#include "utils.h"
 
 
 
@@ -93,7 +95,8 @@ inf_ptrace_create_inferior (struct targe
 			    const char *exec_file, const std::string &allargs,
 			    char **env, int from_tty)
 {
-  int pid;
+  pid_t pid;
+  ptid_t ptid;
 
   /* Do not change either targets above or the same target if already present.
      The reason is the target stack is shared across multiple inferiors.  */
@@ -110,13 +113,19 @@ inf_ptrace_create_inferior (struct targe
   pid = fork_inferior (exec_file, allargs, env, inf_ptrace_me, NULL,
 		       NULL, NULL, NULL);
 
+  ptid = pid_to_ptid (pid);
+  /* We have something that executes now.  We'll be running through
+     the shell at this point (if startup-with-shell is true), but the
+     pid shouldn't change.  */
+  add_thread_silent (ptid);
+
   discard_cleanups (back_to);
 
-  startup_inferior (START_INFERIOR_TRAPS_EXPECTED);
+  gdb_startup_inferior (pid, START_INFERIOR_TRAPS_EXPECTED);
 
   /* On some targets, there must be some explicit actions taken after
      the inferior has been started up.  */
-  target_post_startup_inferior (pid_to_ptid (pid));
+  target_post_startup_inferior (ptid);
 }
 
 #ifdef PT_GET_PROCESS_STATE
@@ -704,7 +713,7 @@ static CORE_ADDR (*inf_ptrace_register_u
 static void
 inf_ptrace_fetch_register (struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   CORE_ADDR addr;
   size_t size;
   PTRACE_TYPE_RET *buf;
@@ -750,7 +759,7 @@ inf_ptrace_fetch_registers (struct targe
 {
   if (regnum == -1)
     for (regnum = 0;
-	 regnum < gdbarch_num_regs (get_regcache_arch (regcache));
+	 regnum < gdbarch_num_regs (regcache->arch ());
 	 regnum++)
       inf_ptrace_fetch_register (regcache, regnum);
   else
@@ -762,7 +771,7 @@ inf_ptrace_fetch_registers (struct targe
 static void
 inf_ptrace_store_register (const struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   CORE_ADDR addr;
   size_t size;
   PTRACE_TYPE_RET *buf;
@@ -805,7 +814,7 @@ inf_ptrace_store_registers (struct targe
 {
   if (regnum == -1)
     for (regnum = 0;
-	 regnum < gdbarch_num_regs (get_regcache_arch (regcache));
+	 regnum < gdbarch_num_regs (regcache->arch ());
 	 regnum++)
       inf_ptrace_store_register (regcache, regnum);
   else
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inf-ptrace.h ./gdb/inf-ptrace.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inf-ptrace.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/inf-ptrace.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low level child interface to ptrace.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/infrun.c ./gdb/infrun.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/infrun.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/infrun.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Target-struct-independent code to start (run) and stop an inferior
    process.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -64,37 +64,24 @@
 #include "event-loop.h"
 #include "thread-fsm.h"
 #include "common/enum-flags.h"
+#include "progspace-and-thread.h"
+#include "common/gdb_optional.h"
 #include "arch-utils.h"
 
 /* Prototypes for local functions */
 
-static void signals_info (char *, int);
-
-static void handle_command (char *, int);
-
 static void sig_print_info (enum gdb_signal);
 
 static void sig_print_header (void);
 
-static void resume_cleanups (void *);
-
-static int hook_stop_stub (void *);
-
-static int restore_selected_frame (void *);
-
 static int follow_fork (void);
 
 static int follow_fork_inferior (int follow_child, int detach_fork);
 
 static void follow_inferior_reset_breakpoints (void);
 
-static void set_schedlock_func (char *args, int from_tty,
-				struct cmd_list_element *c);
-
 static int currently_stepping (struct thread_info *tp);
 
-void _initialize_infrun (void);
-
 void nullify_last_target_wait_ptid (void);
 
 static void insert_hp_step_resume_breakpoint_at_frame (struct frame_info *);
@@ -203,7 +190,7 @@ show_disable_randomization (struct ui_fi
 }
 
 static void
-set_disable_randomization (char *args, int from_tty,
+set_disable_randomization (const char *args, int from_tty,
 			   struct cmd_list_element *c)
 {
   if (!target_supports_disable_randomization ())
@@ -218,7 +205,7 @@ int non_stop = 0;
 static int non_stop_1 = 0;
 
 static void
-set_non_stop (char *args, int from_tty,
+set_non_stop (const char *args, int from_tty,
 	      struct cmd_list_element *c)
 {
   if (target_has_execution)
@@ -247,7 +234,7 @@ int observer_mode = 0;
 static int observer_mode_1 = 0;
 
 static void
-set_observer_mode (char *args, int from_tty,
+set_observer_mode (const char *args, int from_tty,
 		   struct cmd_list_element *c)
 {
   if (target_has_execution)
@@ -372,7 +359,8 @@ int stop_on_solib_events;
    as appropriate when the above flag is changed.  */
 
 static void
-set_stop_on_solib_events (char *args, int from_tty, struct cmd_list_element *c)
+set_stop_on_solib_events (const char *args,
+			  int from_tty, struct cmd_list_element *c)
 {
   update_solib_breakpoints ();
 }
@@ -478,7 +466,7 @@ holding the child stopped.  Try \"set de
 	      /* Ensure that we have a process ptid.  */
 	      ptid_t process_ptid = pid_to_ptid (ptid_get_pid (child_ptid));
 
-	      target_terminal_ours_for_output ();
+	      target_terminal::ours_for_output ();
 	      fprintf_filtered (gdb_stdlog,
 				_("Detaching after %s from child %s.\n"),
 				has_vforked ? "vfork" : "fork",
@@ -488,7 +476,6 @@ holding the child stopped.  Try \"set de
       else
 	{
 	  struct inferior *parent_inf, *child_inf;
-	  struct cleanup *old_chain;
 
 	  /* Add process to GDB's tables.  */
 	  child_inf = add_inferior (ptid_get_pid (child_ptid));
@@ -499,7 +486,7 @@ holding the child stopped.  Try \"set de
 	  child_inf->gdbarch = parent_inf->gdbarch;
 	  copy_inferior_target_desc_info (child_inf, parent_inf);
 
-	  old_chain = save_current_space_and_thread ();
+	  scoped_restore_current_pspace_and_thread restore_pspace_thread;
 
 	  inferior_ptid = child_ptid;
 	  add_thread (inferior_ptid);
@@ -537,8 +524,6 @@ holding the child stopped.  Try \"set de
 		 required.  */
 	      solib_create_inferior_hook (0);
 	    }
-
-	  do_cleanups (old_chain);
 	}
 
       if (has_vforked)
@@ -566,7 +551,7 @@ holding the child stopped.  Try \"set de
 
       if (info_verbose || debug_infrun)
 	{
-	  target_terminal_ours_for_output ();
+	  target_terminal::ours_for_output ();
 	  fprintf_filtered (gdb_stdlog,
 			    _("Attaching after %s %s to child %s.\n"),
 			    target_pid_to_str (parent_ptid),
@@ -614,7 +599,7 @@ holding the child stopped.  Try \"set de
 	      /* Ensure that we have a process ptid.  */
 	      ptid_t process_ptid = pid_to_ptid (ptid_get_pid (child_ptid));
 
-	      target_terminal_ours_for_output ();
+	      target_terminal::ours_for_output ();
 	      fprintf_filtered (gdb_stdlog,
 				_("Detaching after fork from "
 				  "child %s.\n"),
@@ -896,6 +881,22 @@ proceed_after_vfork_done (struct thread_
   return 0;
 }
 
+/* Save/restore inferior_ptid, current program space and current
+   inferior.  Only use this if the current context points at an exited
+   inferior (and therefore there's no current thread to save).  */
+class scoped_restore_exited_inferior
+{
+public:
+  scoped_restore_exited_inferior ()
+    : m_saved_ptid (&inferior_ptid)
+  {}
+
+private:
+  scoped_restore_tmpl<ptid_t> m_saved_ptid;
+  scoped_restore_current_program_space m_pspace;
+  scoped_restore_current_inferior m_inferior;
+};
+
 /* Called whenever we notice an exec or exit event, to handle
    detaching or resuming a vfork parent.  */
 
@@ -915,7 +916,6 @@ handle_vfork_child_exec_or_exit (int exe
       if (inf->vfork_parent->pending_detach)
 	{
 	  struct thread_info *tp;
-	  struct cleanup *old_chain;
 	  struct program_space *pspace;
 	  struct address_space *aspace;
 
@@ -923,16 +923,17 @@ handle_vfork_child_exec_or_exit (int exe
 
 	  inf->vfork_parent->pending_detach = 0;
 
+	  gdb::optional<scoped_restore_exited_inferior>
+	    maybe_restore_inferior;
+	  gdb::optional<scoped_restore_current_pspace_and_thread>
+	    maybe_restore_thread;
+
+	  /* If we're handling a child exit, then inferior_ptid points
+	     at the inferior's pid, not to a thread.  */
 	  if (!exec)
-	    {
-	      /* If we're handling a child exit, then inferior_ptid
-		 points at the inferior's pid, not to a thread.  */
-	      old_chain = save_inferior_ptid ();
-	      save_current_program_space ();
-	      save_current_inferior ();
-	    }
+	    maybe_restore_inferior.emplace ();
 	  else
-	    old_chain = save_current_space_and_thread ();
+	    maybe_restore_thread.emplace ();
 
 	  /* We're letting loose of the parent.  */
 	  tp = any_live_thread_of_process (inf->vfork_parent->pid);
@@ -957,7 +958,7 @@ handle_vfork_child_exec_or_exit (int exe
 
 	  if (debug_infrun || info_verbose)
 	    {
-	      target_terminal_ours_for_output ();
+	      target_terminal::ours_for_output ();
 
 	      if (exec)
 		{
@@ -980,8 +981,6 @@ handle_vfork_child_exec_or_exit (int exe
 	  /* Put it back.  */
 	  inf->pspace = pspace;
 	  inf->aspace = aspace;
-
-	  do_cleanups (old_chain);
 	}
       else if (exec)
 	{
@@ -999,7 +998,6 @@ handle_vfork_child_exec_or_exit (int exe
 	}
       else
 	{
-	  struct cleanup *old_chain;
 	  struct program_space *pspace;
 
 	  /* If this is a vfork child exiting, then the pspace and
@@ -1011,10 +1009,11 @@ handle_vfork_child_exec_or_exit (int exe
 	     go ahead and create a new one for this exiting
 	     inferior.  */
 
-	  /* Switch to null_ptid, so that clone_program_space doesn't want
-	     to read the selected frame of a dead process.  */
-	  old_chain = save_inferior_ptid ();
-	  inferior_ptid = null_ptid;
+	  /* Switch to null_ptid while running clone_program_space, so
+	     that clone_program_space doesn't want to read the
+	     selected frame of a dead process.  */
+	  scoped_restore restore_ptid
+	    = make_scoped_restore (&inferior_ptid, null_ptid);
 
 	  /* This inferior is dead, so avoid giving the breakpoints
 	     module the option to write through to it (cloning a
@@ -1029,10 +1028,6 @@ handle_vfork_child_exec_or_exit (int exe
 	  inf->pspace = pspace;
 	  inf->aspace = pspace->aspace;
 
-	  /* Put back inferior_ptid.  We'll continue mourning this
-	     inferior.  */
-	  do_cleanups (old_chain);
-
 	  resume_parent = inf->vfork_parent->pid;
 	  /* Break the bonds.  */
 	  inf->vfork_parent->vfork_child = NULL;
@@ -1046,7 +1041,7 @@ handle_vfork_child_exec_or_exit (int exe
 	{
 	  /* If the user wanted the parent to be running, let it go
 	     free now.  */
-	  struct cleanup *old_chain = make_cleanup_restore_current_thread ();
+	  scoped_restore_current_thread restore_thread;
 
 	  if (debug_infrun)
 	    fprintf_unfiltered (gdb_stdlog,
@@ -1054,8 +1049,6 @@ handle_vfork_child_exec_or_exit (int exe
 				resume_parent);
 
 	  iterate_over_threads (proceed_after_vfork_done, &resume_parent);
-
-	  do_cleanups (old_chain);
 	}
     }
 }
@@ -1288,7 +1281,7 @@ struct step_over_info
      and address of the instruction the breakpoint is set at.  We'll
      skip inserting all breakpoints here.  Valid iff ASPACE is
      non-NULL.  */
-  struct address_space *aspace;
+  const address_space *aspace;
   CORE_ADDR address;
 
   /* The instruction being stepped over triggers a nonsteppable
@@ -1331,7 +1324,7 @@ static struct step_over_info step_over_i
    because when we need the info later the thread may be running.  */
 
 static void
-set_step_over_info (struct address_space *aspace, CORE_ADDR address,
+set_step_over_info (const address_space *aspace, CORE_ADDR address,
 		    int nonsteppable_watchpoint_p,
 		    int thread)
 {
@@ -1444,8 +1437,6 @@ step_over_info_valid_p (void)
      same effect the instruction would have had if we had executed it
      at its original address.  We use this in step n3.
 
-   - gdbarch_displaced_step_free_closure provides cleanup.
-
    The gdbarch_displaced_step_copy_insn and
    gdbarch_displaced_step_fixup functions must be written so that
    copying an instruction with gdbarch_displaced_step_copy_insn,
@@ -1483,6 +1474,10 @@ step_over_info_valid_p (void)
    displaced step operation on it.  See displaced_step_prepare and
    displaced_step_fixup for details.  */
 
+/* Default destructor for displaced_step_closure.  */
+
+displaced_step_closure::~displaced_step_closure () = default;
+
 /* Per-inferior displaced stepping state.  */
 struct displaced_step_inferior_state
 {
@@ -1687,7 +1682,7 @@ static int
 use_displaced_stepping (struct thread_info *tp)
 {
   struct regcache *regcache = get_thread_regcache (tp->ptid);
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct displaced_step_inferior_state *displaced_state;
 
   displaced_state = get_displaced_stepping_state (ptid_get_pid (tp->ptid));
@@ -1708,12 +1703,8 @@ displaced_step_clear (struct displaced_s
   /* Indicate that there is no cleanup pending.  */
   displaced->step_ptid = null_ptid;
 
-  if (displaced->step_closure)
-    {
-      gdbarch_displaced_step_free_closure (displaced->step_gdbarch,
-                                           displaced->step_closure);
-      displaced->step_closure = NULL;
-    }
+  delete displaced->step_closure;
+  displaced->step_closure = NULL;
 }
 
 static void
@@ -1757,11 +1748,11 @@ displaced_step_dump_bytes (struct ui_fil
 static int
 displaced_step_prepare_throw (ptid_t ptid)
 {
-  struct cleanup *old_cleanups, *ignore_cleanups;
+  struct cleanup *ignore_cleanups;
   struct thread_info *tp = find_thread_ptid (ptid);
   struct regcache *regcache = get_thread_regcache (ptid);
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
-  struct address_space *aspace = get_regcache_aspace (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
+  const address_space *aspace = regcache->aspace ();
   CORE_ADDR original, copy;
   ULONGEST len;
   struct displaced_step_closure *closure;
@@ -1809,7 +1800,7 @@ displaced_step_prepare_throw (ptid_t pti
 
   displaced_step_clear (displaced);
 
-  old_cleanups = save_inferior_ptid ();
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
   inferior_ptid = ptid;
 
   original = regcache_read_pc (regcache);
@@ -1835,7 +1826,6 @@ displaced_step_prepare_throw (ptid_t pti
 			      "Stepping over breakpoint in-line instead.\n");
 	}
 
-      do_cleanups (old_cleanups);
       return -1;
     }
 
@@ -1865,7 +1855,7 @@ displaced_step_prepare_throw (ptid_t pti
       /* The architecture doesn't know how or want to displaced step
 	 this instruction or instruction sequence.  Fallback to
 	 stepping over the breakpoint in-line.  */
-      do_cleanups (old_cleanups);
+      do_cleanups (ignore_cleanups);
       return -1;
     }
 
@@ -1884,8 +1874,6 @@ displaced_step_prepare_throw (ptid_t pti
 
   discard_cleanups (ignore_cleanups);
 
-  do_cleanups (old_cleanups);
-
   if (debug_displaced)
     fprintf_unfiltered (gdb_stdlog, "displaced: displaced pc to %s\n",
 			paddress (gdbarch, copy));
@@ -1942,11 +1930,10 @@ static void
 write_memory_ptid (ptid_t ptid, CORE_ADDR memaddr,
 		   const gdb_byte *myaddr, int len)
 {
-  struct cleanup *ptid_cleanup = save_inferior_ptid ();
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
 
   inferior_ptid = ptid;
   write_memory (memaddr, myaddr, len);
-  do_cleanups (ptid_cleanup);
 }
 
 /* Restore the contents of the copy area for thread PTID.  */
@@ -2203,17 +2190,6 @@ infrun_thread_ptid_changed (ptid_t old_p
 }
 
 
-/* Resuming.  */
-
-/* Things to clean up if we QUIT out of resume ().  */
-static void
-resume_cleanups (void *ignore)
-{
-  if (!ptid_equal (inferior_ptid, null_ptid))
-    delete_single_step_breakpoints (inferior_thread ());
-
-  normal_stop ();
-}
 
 static const char schedlock_off[] = "off";
 static const char schedlock_on[] = "on";
@@ -2238,7 +2214,7 @@ show_scheduler_mode (struct ui_file *fil
 }
 
 static void
-set_schedlock_func (char *args, int from_tty, struct cmd_list_element *c)
+set_schedlock_func (const char *args, int from_tty, struct cmd_list_element *c)
 {
   if (!target_can_lock_scheduler)
     {
@@ -2342,7 +2318,7 @@ do_target_resume (ptid_t resume_ptid, in
   gdb_assert (!tp->stop_requested);
 
   /* Install inferior's terminal modes.  */
-  target_terminal_inferior ();
+  target_terminal::inferior ();
 
   /* Avoid confusing the next resume, if the next stop/resume
      happens to apply to another thread.  */
@@ -2378,22 +2354,17 @@ do_target_resume (ptid_t resume_ptid, in
   target_commit_resume ();
 }
 
-/* Resume the inferior, but allow a QUIT.  This is useful if the user
-   wants to interrupt some lengthy single-stepping operation
-   (for child processes, the SIGINT goes to the inferior, and so
-   we get a SIGINT random_signal, but for remote debugging and perhaps
-   other targets, that's not true).
+/* Resume the inferior.  SIG is the signal to give the inferior
+   (GDB_SIGNAL_0 for none).  */
 
-   SIG is the signal to give the inferior (zero for none).  */
 void
 resume (enum gdb_signal sig)
 {
-  struct cleanup *old_cleanups = make_cleanup (resume_cleanups, 0);
   struct regcache *regcache = get_current_regcache ();
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct thread_info *tp = inferior_thread ();
   CORE_ADDR pc = regcache_read_pc (regcache);
-  struct address_space *aspace = get_regcache_aspace (regcache);
+  const address_space *aspace = regcache->aspace ();
   ptid_t resume_ptid;
   /* This represents the user's step vs continue request.  When
      deciding whether "set scheduler-locking step" applies, it's the
@@ -2408,21 +2379,18 @@ resume (enum gdb_signal sig)
   gdb_assert (!tp->stop_requested);
   gdb_assert (!thread_is_in_step_over_chain (tp));
 
-  QUIT;
-
   if (tp->suspend.waitstatus_pending_p)
     {
       if (debug_infrun)
 	{
-	  char *statstr;
+	  std::string statstr
+	    = target_waitstatus_to_string (&tp->suspend.waitstatus);
 
-	  statstr = target_waitstatus_to_string (&tp->suspend.waitstatus);
 	  fprintf_unfiltered (gdb_stdlog,
-			      "infrun: resume: thread %s has pending wait status %s "
-			      "(currently_stepping=%d).\n",
-			      target_pid_to_str (tp->ptid),  statstr,
+			      "infrun: resume: thread %s has pending wait "
+			      "status %s (currently_stepping=%d).\n",
+			      target_pid_to_str (tp->ptid), statstr.c_str (),
 			      currently_stepping (tp));
-	  xfree (statstr);
 	}
 
       tp->resumed = 1;
@@ -2437,7 +2405,6 @@ resume (enum gdb_signal sig)
 	}
 
       tp->suspend.stop_signal = GDB_SIGNAL_0;
-      discard_cleanups (old_cleanups);
 
       if (target_can_async_p ())
 	target_async (1);
@@ -2549,7 +2516,6 @@ resume (enum gdb_signal sig)
 
 	      resume_ptid = internal_resume_ptid (user_step);
 	      do_target_resume (resume_ptid, 0, GDB_SIGNAL_0);
-	      discard_cleanups (old_cleanups);
 	      tp->resumed = 1;
 	      return;
 	    }
@@ -2587,7 +2553,6 @@ resume (enum gdb_signal sig)
 				"Got placed in step-over queue\n");
 
 	  tp->control.trap_expected = 0;
-	  discard_cleanups (old_cleanups);
 	  return;
 	}
       else if (prepared < 0)
@@ -2597,7 +2562,7 @@ resume (enum gdb_signal sig)
 	  if (target_is_non_stop_p ())
 	    stop_all_threads ();
 
-	  set_step_over_info (get_regcache_aspace (regcache),
+	  set_step_over_info (regcache->aspace (),
 			      regcache_read_pc (regcache), 0, tp->global_num);
 
 	  step = maybe_software_singlestep (gdbarch, pc);
@@ -2742,7 +2707,7 @@ resume (enum gdb_signal sig)
       && !step_over_info_valid_p ())
     {
       struct regcache *resume_regcache = get_thread_regcache (tp->ptid);
-      struct gdbarch *resume_gdbarch = get_regcache_arch (resume_regcache);
+      struct gdbarch *resume_gdbarch = resume_regcache->arch ();
       CORE_ADDR actual_pc = regcache_read_pc (resume_regcache);
       gdb_byte buf[4];
 
@@ -2764,7 +2729,6 @@ resume (enum gdb_signal sig)
 
   do_target_resume (resume_ptid, step, sig);
   tp->resumed = 1;
-  discard_cleanups (old_cleanups);
 }
 
 /* Proceeding.  */
@@ -2825,16 +2789,15 @@ clear_proceed_status_thread (struct thre
 	}
       else if (debug_infrun)
 	{
-	  char *statstr;
+	  std::string statstr
+	    = target_waitstatus_to_string (&tp->suspend.waitstatus);
 
-	  statstr = target_waitstatus_to_string (&tp->suspend.waitstatus);
 	  fprintf_unfiltered (gdb_stdlog,
 			      "infrun: clear_proceed_status_thread: thread %s "
 			      "has pending wait status %s "
 			      "(currently_stepping=%d).\n",
-			      target_pid_to_str (tp->ptid), statstr,
+			      target_pid_to_str (tp->ptid), statstr.c_str (),
 			      currently_stepping (tp));
-	  xfree (statstr);
 	}
     }
 
@@ -2927,7 +2890,7 @@ thread_still_needs_step_over_bp (struct 
     {
       struct regcache *regcache = get_thread_regcache (tp->ptid);
 
-      if (breakpoint_here_p (get_regcache_aspace (regcache),
+      if (breakpoint_here_p (regcache->aspace (),
 			     regcache_read_pc (regcache))
 	  == ordinary_breakpoint_here)
 	return 1;
@@ -2990,12 +2953,10 @@ proceed (CORE_ADDR addr, enum gdb_signal
   struct gdbarch *gdbarch;
   struct thread_info *tp;
   CORE_ADDR pc;
-  struct address_space *aspace;
   ptid_t resume_ptid;
   struct execution_control_state ecss;
   struct execution_control_state *ecs = &ecss;
   struct cleanup *old_chain;
-  struct cleanup *defer_resume_cleanup;
   int started;
 
   /* If we're stopped at a fork/vfork, follow the branch set by the
@@ -3014,8 +2975,9 @@ proceed (CORE_ADDR addr, enum gdb_signal
   previous_inferior_ptid = inferior_ptid;
 
   regcache = get_current_regcache ();
-  gdbarch = get_regcache_arch (regcache);
-  aspace = get_regcache_aspace (regcache);
+  gdbarch = regcache->arch ();
+  const address_space *aspace = regcache->aspace ();
+
   pc = regcache_read_pc (regcache);
   tp = inferior_thread ();
 
@@ -3081,6 +3043,12 @@ proceed (CORE_ADDR addr, enum gdb_signal
      inferior.  */
   gdb_flush (gdb_stdout);
 
+  /* Since we've marked the inferior running, give it the terminal.  A
+     QUIT/Ctrl-C from here on is forwarded to the target (which can
+     still detect attempts to unblock a stuck connection with repeated
+     Ctrl-C from within target_pass_ctrlc).  */
+  target_terminal::inferior ();
+
   /* In a multi-threaded task we may select another thread and
      then continue or step.
 
@@ -3137,26 +3105,27 @@ proceed (CORE_ADDR addr, enum gdb_signal
      until the target stops again.  */
   tp->prev_pc = regcache_read_pc (regcache);
 
-  defer_resume_cleanup = make_cleanup_defer_target_commit_resume ();
+  {
+    scoped_restore save_defer_tc = make_scoped_defer_target_commit_resume ();
 
-  started = start_step_over ();
+    started = start_step_over ();
 
-  if (step_over_info_valid_p ())
-    {
-      /* Either this thread started a new in-line step over, or some
-	 other thread was already doing one.  In either case, don't
-	 resume anything else until the step-over is finished.  */
-    }
-  else if (started && !target_is_non_stop_p ())
-    {
-      /* A new displaced stepping sequence was started.  In all-stop,
-	 we can't talk to the target anymore until it next stops.  */
-    }
-  else if (!non_stop && target_is_non_stop_p ())
-    {
-      /* In all-stop, but the target is always in non-stop mode.
-	 Start all other threads that are implicitly resumed too.  */
-      ALL_NON_EXITED_THREADS (tp)
+    if (step_over_info_valid_p ())
+      {
+	/* Either this thread started a new in-line step over, or some
+	   other thread was already doing one.  In either case, don't
+	   resume anything else until the step-over is finished.  */
+      }
+    else if (started && !target_is_non_stop_p ())
+      {
+	/* A new displaced stepping sequence was started.  In all-stop,
+	   we can't talk to the target anymore until it next stops.  */
+      }
+    else if (!non_stop && target_is_non_stop_p ())
+      {
+	/* In all-stop, but the target is always in non-stop mode.
+	   Start all other threads that are implicitly resumed too.  */
+	ALL_NON_EXITED_THREADS (tp)
         {
 	  /* Ignore threads of processes we're not resuming.  */
 	  if (!ptid_match (tp->ptid, resume_ptid))
@@ -3192,18 +3161,18 @@ proceed (CORE_ADDR addr, enum gdb_signal
 	  if (!ecs->wait_some_more)
 	    error (_("Command aborted."));
 	}
-    }
-  else if (!tp->resumed && !thread_is_in_step_over_chain (tp))
-    {
-      /* The thread wasn't started, and isn't queued, run it now.  */
-      reset_ecs (ecs, tp);
-      switch_to_thread (tp->ptid);
-      keep_going_pass_signal (ecs);
-      if (!ecs->wait_some_more)
-	error (_("Command aborted."));
-    }
+      }
+    else if (!tp->resumed && !thread_is_in_step_over_chain (tp))
+      {
+	/* The thread wasn't started, and isn't queued, run it now.  */
+	reset_ecs (ecs, tp);
+	switch_to_thread (tp->ptid);
+	keep_going_pass_signal (ecs);
+	if (!ecs->wait_some_more)
+	  error (_("Command aborted."));
+      }
+  }
 
-  do_cleanups (defer_resume_cleanup);
   target_commit_resume ();
 
   discard_cleanups (old_chain);
@@ -3423,7 +3392,7 @@ void
 print_target_wait_results (ptid_t waiton_ptid, ptid_t result_ptid,
 			   const struct target_waitstatus *ws)
 {
-  char *status_string = target_waitstatus_to_string (ws);
+  std::string status_string = target_waitstatus_to_string (ws);
   string_file stb;
 
   /* The text is split over several lines because it was getting too long.
@@ -3443,13 +3412,11 @@ print_target_wait_results (ptid_t waiton
 	      ptid_get_lwp (result_ptid),
 	      ptid_get_tid (result_ptid),
 	      target_pid_to_str (result_ptid));
-  stb.printf ("infrun:   %s\n", status_string);
+  stb.printf ("infrun:   %s\n", status_string.c_str ());
 
   /* This uses %s in part to handle %'s in the text, but also to avoid
      a gcc error: the format attribute requires a string literal.  */
   fprintf_unfiltered (gdb_stdlog, "%s", stb.c_str ());
-
-  xfree (status_string);
 }
 
 /* Select a thread at random, out of those which are resumed and have
@@ -3528,7 +3495,7 @@ do_target_wait (ptid_t ptid, struct targ
 	  || tp->suspend.stop_reason == TARGET_STOPPED_BY_HW_BREAKPOINT))
     {
       struct regcache *regcache = get_thread_regcache (tp->ptid);
-      struct gdbarch *gdbarch = get_regcache_arch (regcache);
+      struct gdbarch *gdbarch = regcache->arch ();
       CORE_ADDR pc;
       int discard = 0;
 
@@ -3544,7 +3511,7 @@ do_target_wait (ptid_t ptid, struct targ
 				paddress (gdbarch, pc));
 	  discard = 1;
 	}
-      else if (!breakpoint_inserted_here_p (get_regcache_aspace (regcache), pc))
+      else if (!breakpoint_inserted_here_p (regcache->aspace (), pc))
 	{
 	  if (debug_infrun)
 	    fprintf_unfiltered (gdb_stdlog,
@@ -3571,14 +3538,13 @@ do_target_wait (ptid_t ptid, struct targ
     {
       if (debug_infrun)
 	{
-	  char *statstr;
+	  std::string statstr
+	    = target_waitstatus_to_string (&tp->suspend.waitstatus);
 
-	  statstr = target_waitstatus_to_string (&tp->suspend.waitstatus);
 	  fprintf_unfiltered (gdb_stdlog,
 			      "infrun: Using pending wait status %s for %s.\n",
-			      statstr,
+			      statstr.c_str (),
 			      target_pid_to_str (tp->ptid));
-	  xfree (statstr);
 	}
 
       /* Now that we've selected our final event LWP, un-adjust its PC
@@ -3592,7 +3558,7 @@ do_target_wait (ptid_t ptid, struct targ
 	  int decr_pc;
 
 	  regcache = get_thread_regcache (tp->ptid);
-	  gdbarch = get_regcache_arch (regcache);
+	  gdbarch = regcache->arch ();
 
 	  decr_pc = gdbarch_decr_pc_after_break (gdbarch);
 	  if (decr_pc != 0)
@@ -3635,7 +3601,6 @@ prepare_for_detach (void)
 {
   struct inferior *inf = current_inferior ();
   ptid_t pid_ptid = pid_to_ptid (inf->pid);
-  struct cleanup *old_chain_1;
   struct displaced_step_inferior_state *displaced;
 
   displaced = get_displaced_stepping_state (inf->pid);
@@ -3649,8 +3614,7 @@ prepare_for_detach (void)
     fprintf_unfiltered (gdb_stdlog,
 			"displaced-stepping in-process while detaching");
 
-  old_chain_1 = make_cleanup_restore_integer (&inf->detaching);
-  inf->detaching = 1;
+  scoped_restore restore_detaching = make_scoped_restore (&inf->detaching, true);
 
   while (!ptid_equal (displaced->step_ptid, null_ptid))
     {
@@ -3690,12 +3654,12 @@ prepare_for_detach (void)
 	 inferior, so this must mean the process is gone.  */
       if (!ecs->wait_some_more)
 	{
-	  discard_cleanups (old_chain_1);
+	  restore_detaching.release ();
 	  error (_("Program exited while detaching"));
 	}
     }
 
-  discard_cleanups (old_chain_1);
+  restore_detaching.release ();
 }
 
 /* Wait for control to return from inferior to debugger.
@@ -3828,7 +3792,7 @@ check_curr_ui_sync_execution_done (void)
       && ui->async
       && !gdb_in_secondary_prompt_p (ui))
     {
-      target_terminal_ours ();
+      target_terminal::ours ();
       observer_notify_sync_execution_done ();
       ui_register_input_event_handler (ui);
     }
@@ -3896,12 +3860,14 @@ fetch_inferior_event (void *client_data)
       set_current_traceframe (-1);
     }
 
+  gdb::optional<scoped_restore_current_thread> maybe_restore_thread;
+
   if (non_stop)
     /* In non-stop mode, the user/frontend should not notice a thread
        switch due to internal events.  Make sure we reverse to the
        user selected thread and frame after handling the event and
        running any breakpoint commands.  */
-    make_cleanup_restore_current_thread ();
+    maybe_restore_thread.emplace ();
 
   overlay_cache_invalid = 1;
   /* Flush target cache before starting to handle each event.  Target
@@ -4080,7 +4046,6 @@ adjust_pc_after_break (struct thread_inf
 {
   struct regcache *regcache;
   struct gdbarch *gdbarch;
-  struct address_space *aspace;
   CORE_ADDR breakpoint_pc, decr_pc;
 
   /* If we've hit a breakpoint, we'll normally be stopped with SIGTRAP.  If
@@ -4154,13 +4119,13 @@ adjust_pc_after_break (struct thread_inf
   /* If this target does not decrement the PC after breakpoints, then
      we have nothing to do.  */
   regcache = get_thread_regcache (thread->ptid);
-  gdbarch = get_regcache_arch (regcache);
+  gdbarch = regcache->arch ();
 
   decr_pc = gdbarch_decr_pc_after_break (gdbarch);
   if (decr_pc == 0)
     return;
 
-  aspace = get_regcache_aspace (regcache);
+  const address_space *aspace = regcache->aspace ();
 
   /* Find the location where (if we've hit a breakpoint) the
      breakpoint would be.  */
@@ -4186,10 +4151,11 @@ adjust_pc_after_break (struct thread_inf
       || (target_is_non_stop_p ()
 	  && moribund_breakpoint_here_p (aspace, breakpoint_pc)))
     {
-      struct cleanup *old_cleanups = make_cleanup (null_cleanup, NULL);
+      gdb::optional<scoped_restore_tmpl<int>> restore_operation_disable;
 
       if (record_full_is_used ())
-	record_full_gdb_operation_disable_set ();
+	restore_operation_disable.emplace
+	  (record_full_gdb_operation_disable_set ());
 
       /* When using hardware single-step, a SIGTRAP is reported for both
 	 a completed single-step and a software breakpoint.  Need to
@@ -4213,8 +4179,6 @@ adjust_pc_after_break (struct thread_inf
 	  || (thread->stepped_breakpoint
 	      && thread->prev_pc == breakpoint_pc))
 	regcache_write_pc (regcache, breakpoint_pc);
-
-      do_cleanups (old_cleanups);
     }
 }
 
@@ -4277,7 +4241,7 @@ handle_syscall_event (struct execution_c
                             syscall_number);
 
       ecs->event_thread->control.stop_bpstat
-	= bpstat_stop_status (get_regcache_aspace (regcache),
+	= bpstat_stop_status (regcache->aspace (),
 			      stop_pc, ecs->ptid, &ecs->ws);
 
       if (handle_stop_requested (ecs))
@@ -4367,17 +4331,10 @@ wait_one (struct target_waitstatus *ws)
 static int					\
 thread_stopped_by_ ## REASON (ptid_t ptid)	\
 {						\
-  struct cleanup *old_chain;			\
-  int res;					\
-						\
-  old_chain = save_inferior_ptid ();		\
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid); \
   inferior_ptid = ptid;				\
 						\
-  res = target_stopped_by_ ## REASON ();	\
-						\
-  do_cleanups (old_chain);			\
-						\
-  return res;					\
+  return target_stopped_by_ ## REASON ();	\
 }
 
 /* Generate thread_stopped_by_watchpoint.  */
@@ -4403,20 +4360,17 @@ static void
 save_waitstatus (struct thread_info *tp, struct target_waitstatus *ws)
 {
   struct regcache *regcache;
-  struct address_space *aspace;
 
   if (debug_infrun)
     {
-      char *statstr;
+      std::string statstr = target_waitstatus_to_string (ws);
 
-      statstr = target_waitstatus_to_string (ws);
       fprintf_unfiltered (gdb_stdlog,
 			  "infrun: saving status %s for %d.%ld.%ld\n",
-			  statstr,
+			  statstr.c_str (),
 			  ptid_get_pid (tp->ptid),
 			  ptid_get_lwp (tp->ptid),
 			  ptid_get_tid (tp->ptid));
-      xfree (statstr);
     }
 
   /* Record for later.  */
@@ -4424,7 +4378,7 @@ save_waitstatus (struct thread_info *tp,
   tp->suspend.waitstatus_pending_p = 1;
 
   regcache = get_thread_regcache (tp->ptid);
-  aspace = get_regcache_aspace (regcache);
+  const address_space *aspace = regcache->aspace ();
 
   if (ws->kind == TARGET_WAITKIND_STOPPED
       && ws->value.sig == GDB_SIGNAL_TRAP)
@@ -4646,17 +4600,15 @@ stop_all_threads (void)
 
 		  if (debug_infrun)
 		    {
-		      char *statstr;
+		      std::string statstr = target_waitstatus_to_string (&ws);
 
-		      statstr = target_waitstatus_to_string (&ws);
 		      fprintf_unfiltered (gdb_stdlog,
 					  "infrun: target_wait %s, saving "
 					  "status for %d.%ld.%ld\n",
-					  statstr,
+					  statstr.c_str (),
 					  ptid_get_pid (t->ptid),
 					  ptid_get_lwp (t->ptid),
 					  ptid_get_tid (t->ptid));
-		      xfree (statstr);
 		    }
 
 		  /* Record for later.  */
@@ -4910,7 +4862,7 @@ handle_inferior_event_1 (struct executio
     {
       struct regcache *regcache = get_thread_regcache (ecs->ptid);
 
-      if (breakpoint_inserted_here_p (get_regcache_aspace (regcache),
+      if (breakpoint_inserted_here_p (regcache->aspace (),
 				      regcache_read_pc (regcache)))
 	{
 	  if (debug_infrun)
@@ -4980,7 +4932,7 @@ handle_inferior_event_1 (struct executio
 	  handle_solib_event ();
 
 	  ecs->event_thread->control.stop_bpstat
-	    = bpstat_stop_status (get_regcache_aspace (regcache),
+	    = bpstat_stop_status (regcache->aspace (),
 				  stop_pc, ecs->ptid, &ecs->ws);
 
 	  if (handle_stop_requested (ecs))
@@ -5075,7 +5027,7 @@ handle_inferior_event_1 (struct executio
       set_current_inferior (find_inferior_ptid (ecs->ptid));
       set_current_program_space (current_inferior ()->pspace);
       handle_vfork_child_exec_or_exit (0);
-      target_terminal_ours ();	/* Must do this before mourn anyway.  */
+      target_terminal::ours ();	/* Must do this before mourn anyway.  */
 
       /* Clearing any previous state of convenience variables.  */
       clear_exit_convenience_vars ();
@@ -5099,7 +5051,7 @@ handle_inferior_event_1 (struct executio
       else
 	{
 	  struct regcache *regcache = get_thread_regcache (ecs->ptid);
-	  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+	  struct gdbarch *gdbarch = regcache->arch ();
 
 	  if (gdbarch_gdb_signal_to_target_p (gdbarch))
 	    {
@@ -5147,7 +5099,7 @@ Cannot fill $_exitsignal with the correc
       /* Check whether the inferior is displaced stepping.  */
       {
 	struct regcache *regcache = get_thread_regcache (ecs->ptid);
-	struct gdbarch *gdbarch = get_regcache_arch (regcache);
+	struct gdbarch *gdbarch = regcache->arch ();
 
 	/* If checking displaced stepping is supported, and thread
 	   ecs->ptid is displaced stepping.  */
@@ -5234,7 +5186,7 @@ Cannot fill $_exitsignal with the correc
       stop_pc = regcache_read_pc (get_thread_regcache (ecs->ptid));
 
       ecs->event_thread->control.stop_bpstat
-	= bpstat_stop_status (get_regcache_aspace (get_current_regcache ()),
+	= bpstat_stop_status (get_current_regcache ()->aspace (),
 			      stop_pc, ecs->ptid, &ecs->ws);
 
       if (handle_stop_requested (ecs))
@@ -5327,8 +5279,11 @@ Cannot fill $_exitsignal with the correc
       if (debug_infrun)
         fprintf_unfiltered (gdb_stdlog, "infrun: TARGET_WAITKIND_EXECD\n");
 
+      /* Note we can't read registers yet (the stop_pc), because we
+	 don't yet know the inferior's post-exec architecture.
+	 'stop_pc' is explicitly read below instead.  */
       if (!ptid_equal (ecs->ptid, inferior_ptid))
-	context_switch (ecs->ptid);
+	switch_to_thread_no_regs (ecs->event_thread);
 
       /* Do whatever is necessary to the parent branch of the vfork.  */
       handle_vfork_child_exec_or_exit (1);
@@ -5346,7 +5301,7 @@ Cannot fill $_exitsignal with the correc
       ecs->event_thread = inferior_thread ();
 
       ecs->event_thread->control.stop_bpstat
-	= bpstat_stop_status (get_regcache_aspace (get_current_regcache ()),
+	= bpstat_stop_status (get_current_regcache ()->aspace (),
 			      stop_pc, ecs->ptid, &ecs->ws);
 
       /* Note that this may be referenced from inside
@@ -5706,8 +5661,8 @@ handle_signal_stop (struct execution_con
   if (debug_infrun)
     {
       struct regcache *regcache = get_thread_regcache (ecs->ptid);
-      struct gdbarch *gdbarch = get_regcache_arch (regcache);
-      struct cleanup *old_chain = save_inferior_ptid ();
+      struct gdbarch *gdbarch = regcache->arch ();
+      scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
 
       inferior_ptid = ecs->ptid;
 
@@ -5727,8 +5682,6 @@ handle_signal_stop (struct execution_con
             fprintf_unfiltered (gdb_stdlog,
                                 "infrun: (no data address available)\n");
 	}
-
-      do_cleanups (old_chain);
     }
 
   /* This is originated from start_remote(), start_inferior() and
@@ -5797,11 +5750,11 @@ handle_signal_stop (struct execution_con
   if (ecs->event_thread->suspend.stop_signal == GDB_SIGNAL_TRAP)
     {
       struct regcache *regcache;
-      struct address_space *aspace;
       CORE_ADDR pc;
 
       regcache = get_thread_regcache (ecs->ptid);
-      aspace = get_regcache_aspace (regcache);
+      const address_space *aspace = regcache->aspace ();
+
       pc = regcache_read_pc (regcache);
 
       /* However, before doing so, if this single-step breakpoint was
@@ -5892,8 +5845,8 @@ handle_signal_stop (struct execution_con
      inline function call sites).  */
   if (ecs->event_thread->control.step_range_end != 1)
     {
-      struct address_space *aspace = 
-	get_regcache_aspace (get_thread_regcache (ecs->ptid));
+      const address_space *aspace =
+	get_thread_regcache (ecs->ptid)->aspace ();
 
       /* skip_inline_frames is expensive, so we avoid it if we can
 	 determine that the address is one where functions cannot have
@@ -5965,7 +5918,7 @@ handle_signal_stop (struct execution_con
   /* See if there is a breakpoint/watchpoint/catchpoint/etc. that
      handles this event.  */
   ecs->event_thread->control.stop_bpstat
-    = bpstat_stop_status (get_regcache_aspace (get_current_regcache ()),
+    = bpstat_stop_status (get_current_regcache ()->aspace (),
 			  stop_pc, ecs->ptid, &ecs->ws);
 
   /* Following in case break condition called a
@@ -6029,14 +5982,14 @@ handle_signal_stop (struct execution_con
 	  decr_pc = gdbarch_decr_pc_after_break (gdbarch);
 	  if (decr_pc != 0)
 	    {
-	      struct cleanup *old_cleanups = make_cleanup (null_cleanup, NULL);
+	      gdb::optional<scoped_restore_tmpl<int>>
+		restore_operation_disable;
 
 	      if (record_full_is_used ())
-		record_full_gdb_operation_disable_set ();
+		restore_operation_disable.emplace
+		  (record_full_gdb_operation_disable_set ());
 
 	      regcache_write_pc (regcache, stop_pc + decr_pc);
-
-	      do_cleanups (old_cleanups);
 	    }
 	}
       else
@@ -6119,9 +6072,9 @@ handle_signal_stop (struct execution_con
       if (signal_print[ecs->event_thread->suspend.stop_signal])
 	{
 	  /* The signal table tells us to print about this signal.  */
-	  target_terminal_ours_for_output ();
+	  target_terminal::ours_for_output ();
 	  observer_notify_signal_received (ecs->event_thread->suspend.stop_signal);
-	  target_terminal_inferior ();
+	  target_terminal::inferior ();
 	}
 
       /* Clear the signal if it should not be passed.  */
@@ -6581,9 +6534,7 @@ process_event_stop_test (struct executio
 	{
 	  /* Set up a step-resume breakpoint at the address
 	     indicated by SKIP_SOLIB_RESOLVER.  */
-	  struct symtab_and_line sr_sal;
-
-	  init_sal (&sr_sal);
+	  symtab_and_line sr_sal;
 	  sr_sal.pc = pc_after_resolver;
 	  sr_sal.pspace = get_frame_program_space (frame);
 
@@ -6634,9 +6585,7 @@ process_event_stop_test (struct executio
       if (real_stop_pc)
 	{
 	  /* And put the step-breakpoint there and go until there.  */
-	  struct symtab_and_line sr_sal;
-
-	  init_sal (&sr_sal);	/* initialize to zeroes */
+	  symtab_and_line sr_sal;
 	  sr_sal.pc = real_stop_pc;
 	  sr_sal.section = find_pc_overlay (sr_sal.pc);
 	  sr_sal.pspace = get_frame_program_space (frame);
@@ -6734,10 +6683,8 @@ process_event_stop_test (struct executio
 		 to the caller.  */
 	      if (ecs->stop_func_start != stop_pc && ecs->stop_func_start != 0)
 		{
-		  struct symtab_and_line sr_sal;
-
 		  /* Normal function call return (static or dynamic).  */
-		  init_sal (&sr_sal);
+		  symtab_and_line sr_sal;
 		  sr_sal.pc = ecs->stop_func_start;
 		  sr_sal.pspace = get_frame_program_space (frame);
 		  insert_step_resume_breakpoint_at_sal (gdbarch,
@@ -6764,9 +6711,7 @@ process_event_stop_test (struct executio
 
       if (real_stop_pc != 0 && in_solib_dynsym_resolve_code (real_stop_pc))
 	{
-	  struct symtab_and_line sr_sal;
-
-	  init_sal (&sr_sal);
+	  symtab_and_line sr_sal;
 	  sr_sal.pc = ecs->stop_func_start;
 	  sr_sal.pspace = get_frame_program_space (frame);
 
@@ -6789,7 +6734,7 @@ process_event_stop_test (struct executio
 	tmp_sal = find_pc_line (ecs->stop_func_start, 0);
 	if (tmp_sal.line != 0
 	    && !function_name_is_marked_for_skip (ecs->stop_func_name,
-						  &tmp_sal))
+						  tmp_sal))
 	  {
 	    if (execution_direction == EXEC_REVERSE)
 	      handle_step_into_function_backward (gdbarch, ecs);
@@ -6820,9 +6765,7 @@ process_event_stop_test (struct executio
 	    {
 	      /* Set a breakpoint at callee's start address.
 		 From there we can step once and be back in the caller.  */
-	      struct symtab_and_line sr_sal;
-
-	      init_sal (&sr_sal);
+	      symtab_and_line sr_sal;
 	      sr_sal.pc = ecs->stop_func_start;
 	      sr_sal.pspace = get_frame_program_space (frame);
 	      insert_step_resume_breakpoint_at_sal (gdbarch,
@@ -6860,9 +6803,7 @@ process_event_stop_test (struct executio
 	  /* Stepped backward into the solib dynsym resolver.
 	     Set a breakpoint at its start and continue, then
 	     one more step will take us out.  */
-	  struct symtab_and_line sr_sal;
-
-	  init_sal (&sr_sal);
+	  symtab_and_line sr_sal;
 	  sr_sal.pc = ecs->stop_func_start;
 	  sr_sal.pspace = get_frame_program_space (frame);
 	  insert_step_resume_breakpoint_at_sal (gdbarch, 
@@ -6942,13 +6883,11 @@ process_event_stop_test (struct executio
 		   ecs->event_thread->control.step_frame_id)
       && inline_skipped_frames (ecs->ptid))
     {
-      struct symtab_and_line call_sal;
-
       if (debug_infrun)
 	fprintf_unfiltered (gdb_stdlog,
 			    "infrun: stepped into inlined function\n");
 
-      find_frame_sal (get_current_frame (), &call_sal);
+      symtab_and_line call_sal = find_frame_sal (get_current_frame ());
 
       if (ecs->event_thread->control.step_over_calls != STEP_OVER_ALL)
 	{
@@ -7312,17 +7251,14 @@ static void
 handle_step_into_function (struct gdbarch *gdbarch,
 			   struct execution_control_state *ecs)
 {
-  struct compunit_symtab *cust;
-  struct symtab_and_line stop_func_sal, sr_sal;
-
   fill_in_stop_func (gdbarch, ecs);
 
-  cust = find_pc_compunit_symtab (stop_pc);
+  compunit_symtab *cust = find_pc_compunit_symtab (stop_pc);
   if (cust != NULL && compunit_language (cust) != language_asm)
     ecs->stop_func_start
       = gdbarch_skip_prologue_noexcept (gdbarch, ecs->stop_func_start);
 
-  stop_func_sal = find_pc_line (ecs->stop_func_start, 0);
+  symtab_and_line stop_func_sal = find_pc_line (ecs->stop_func_start, 0);
   /* Use the step_resume_break to step until the end of the prologue,
      even if that involves jumps (as it seems to on the vax under
      4.2).  */
@@ -7366,7 +7302,7 @@ handle_step_into_function (struct gdbarc
   else
     {
       /* Put the step-breakpoint there and go until there.  */
-      init_sal (&sr_sal);	/* initialize to zeroes */
+      symtab_and_line sr_sal;
       sr_sal.pc = ecs->stop_func_start;
       sr_sal.section = find_pc_overlay (ecs->stop_func_start);
       sr_sal.pspace = get_frame_program_space (get_current_frame ());
@@ -7442,7 +7378,7 @@ insert_step_resume_breakpoint_at_sal_1 (
 			paddress (gdbarch, sr_sal.pc));
 
   inferior_thread ()->control.step_resume_breakpoint
-    = set_momentary_breakpoint (gdbarch, sr_sal, sr_id, sr_type);
+    = set_momentary_breakpoint (gdbarch, sr_sal, sr_id, sr_type).release ();
 }
 
 void
@@ -7465,13 +7401,11 @@ insert_step_resume_breakpoint_at_sal (st
 static void
 insert_hp_step_resume_breakpoint_at_frame (struct frame_info *return_frame)
 {
-  struct symtab_and_line sr_sal;
-  struct gdbarch *gdbarch;
-
   gdb_assert (return_frame != NULL);
-  init_sal (&sr_sal);		/* initialize to zeros */
 
-  gdbarch = get_frame_arch (return_frame);
+  struct gdbarch *gdbarch = get_frame_arch (return_frame);
+
+  symtab_and_line sr_sal;
   sr_sal.pc = gdbarch_addr_bits_remove (gdbarch, get_frame_pc (return_frame));
   sr_sal.section = find_pc_overlay (sr_sal.pc);
   sr_sal.pspace = get_frame_program_space (return_frame);
@@ -7498,16 +7432,13 @@ insert_hp_step_resume_breakpoint_at_fram
 static void
 insert_step_resume_breakpoint_at_caller (struct frame_info *next_frame)
 {
-  struct symtab_and_line sr_sal;
-  struct gdbarch *gdbarch;
-
   /* We shouldn't have gotten here if we don't know where the call site
      is.  */
   gdb_assert (frame_id_p (frame_unwind_caller_id (next_frame)));
 
-  init_sal (&sr_sal);		/* initialize to zeros */
+  struct gdbarch *gdbarch = frame_unwind_caller_arch (next_frame);
 
-  gdbarch = frame_unwind_caller_arch (next_frame);
+  symtab_and_line sr_sal;
   sr_sal.pc = gdbarch_addr_bits_remove (gdbarch,
 					frame_unwind_caller_pc (next_frame));
   sr_sal.section = find_pc_overlay (sr_sal.pc);
@@ -7536,7 +7467,7 @@ insert_longjmp_resume_breakpoint (struct
 			paddress (gdbarch, pc));
 
   inferior_thread ()->control.exception_resume_breakpoint =
-    set_momentary_breakpoint_at_pc (gdbarch, pc, bp_longjmp_resume);
+    set_momentary_breakpoint_at_pc (gdbarch, pc, bp_longjmp_resume).release ();
 }
 
 /* Insert an exception resume breakpoint.  TP is the thread throwing
@@ -7558,7 +7489,8 @@ insert_exception_resume_breakpoint (stru
       CORE_ADDR handler;
       struct breakpoint *bp;
 
-      vsym = lookup_symbol (SYMBOL_LINKAGE_NAME (sym), b, VAR_DOMAIN, NULL);
+      vsym = lookup_symbol_search_name (SYMBOL_SEARCH_NAME (sym),
+					b, VAR_DOMAIN);
       value = read_var_value (vsym.symbol, vsym.block, frame);
       /* If the value was optimized out, revert to the old behavior.  */
       if (! value_optimized_out (value))
@@ -7571,7 +7503,8 @@ insert_exception_resume_breakpoint (stru
 				(unsigned long) handler);
 
 	  bp = set_momentary_breakpoint_at_pc (get_frame_arch (frame),
-					       handler, bp_exception_resume);
+					       handler,
+					       bp_exception_resume).release ();
 
 	  /* set_momentary_breakpoint_at_pc invalidates FRAME.  */
 	  frame = NULL;
@@ -7612,7 +7545,7 @@ insert_exception_resume_from_probe (stru
 				  handler));
 
   bp = set_momentary_breakpoint_at_pc (get_frame_arch (frame),
-				       handler, bp_exception_resume);
+				       handler, bp_exception_resume).release ();
   bp->thread = tp->global_num;
   inferior_thread ()->control.exception_resume_breakpoint = bp;
 }
@@ -7633,7 +7566,7 @@ check_exception_resume (struct execution
      CFA and the HANDLER.  We ignore the CFA, extract the handler, and
      set a breakpoint there.  */
   probe = find_probe_by_pc (get_frame_pc (frame));
-  if (probe.probe)
+  if (probe.prob)
     {
       insert_exception_resume_from_probe (ecs->event_thread, &probe, frame);
       return;
@@ -7707,10 +7640,6 @@ stop_waiting (struct execution_control_s
 static void
 keep_going_pass_signal (struct execution_control_state *ecs)
 {
-  /* Make sure normal_stop is called if we get a QUIT handled before
-     reaching resume.  */
-  struct cleanup *old_cleanups = make_cleanup (resume_cleanups, 0);
-
   gdb_assert (ptid_equal (ecs->event_thread->ptid, inferior_ptid));
   gdb_assert (!ecs->event_thread->resumed);
 
@@ -7732,7 +7661,6 @@ keep_going_pass_signal (struct execution
 	 non-signal event (e.g., a fork); or took a signal which we
 	 are supposed to pass through to the inferior.  Simply
 	 continue.  */
-      discard_cleanups (old_cleanups);
       resume (ecs->event_thread->suspend.stop_signal);
     }
   else if (step_over_info_valid_p ())
@@ -7760,8 +7688,6 @@ keep_going_pass_signal (struct execution
 				"resume of %s deferred\n",
 				target_pid_to_str (tp->ptid));
 	}
-
-      discard_cleanups (old_cleanups);
     }
   else
     {
@@ -7801,7 +7727,7 @@ keep_going_pass_signal (struct execution
       if (remove_bp
 	  && (remove_wps || !use_displaced_stepping (ecs->event_thread)))
 	{
-	  set_step_over_info (get_regcache_aspace (regcache),
+	  set_step_over_info (regcache->aspace (),
 			      regcache_read_pc (regcache), remove_wps,
 			      ecs->event_thread->global_num);
 	}
@@ -7825,14 +7751,12 @@ keep_going_pass_signal (struct execution
 	{
 	  exception_print (gdb_stderr, e);
 	  stop_waiting (ecs);
-	  discard_cleanups (old_cleanups);
 	  return;
 	}
       END_CATCH
 
       ecs->event_thread->control.trap_expected = (remove_bp || remove_wps);
 
-      discard_cleanups (old_cleanups);
       resume (ecs->event_thread->suspend.stop_signal);
     }
 
@@ -7965,7 +7889,7 @@ static void
 handle_segmentation_fault (struct ui_out *uiout)
 {
   struct regcache *regcache = get_current_regcache ();
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   if (gdbarch_handle_segmentation_fault_p (gdbarch))
     gdbarch_handle_segmentation_fault (gdbarch, uiout);
@@ -8127,7 +8051,7 @@ maybe_remove_breakpoints (void)
     {
       if (remove_breakpoints ())
 	{
-	  target_terminal_ours_for_output ();
+	  target_terminal::ours_for_output ();
 	  printf_filtered (_("Cannot remove breakpoints because "
 			     "program is no longer writable.\nFurther "
 			     "execution is probably impossible.\n"));
@@ -8284,7 +8208,7 @@ normal_stop (void)
     {
       SWITCH_THRU_ALL_UIS ()
 	{
-	  target_terminal_ours_for_output ();
+	  target_terminal::ours_for_output ();
 	  printf_filtered (_("[Switching to %s]\n"),
 			   target_pid_to_str (inferior_ptid));
 	  annotate_thread_changed ();
@@ -8297,7 +8221,7 @@ normal_stop (void)
       SWITCH_THRU_ALL_UIS ()
 	if (current_ui->prompt_state == PROMPT_BLOCKED)
 	  {
-	    target_terminal_ours_for_output ();
+	    target_terminal::ours_for_output ();
 	    printf_filtered (_("No unwaited-for children left.\n"));
 	  }
     }
@@ -8355,8 +8279,16 @@ normal_stop (void)
       struct cleanup *old_chain
 	= make_cleanup (release_stop_context_cleanup, saved_context);
 
-      catch_errors (hook_stop_stub, stop_command,
-		    "Error while running hook_stop:\n", RETURN_MASK_ALL);
+      TRY
+	{
+	  execute_cmd_pre_hook (stop_command);
+	}
+      CATCH (ex, RETURN_MASK_ALL)
+	{
+	  exception_fprintf (gdb_stderr, ex,
+			     "Error while running hook_stop:\n");
+	}
+      END_CATCH
 
       /* If the stop hook resumes the target, then there's no point in
 	 trying to notify about the previous stop; its context is
@@ -8397,13 +8329,6 @@ normal_stop (void)
 
   return 0;
 }
-
-static int
-hook_stop_stub (void *cmd)
-{
-  execute_cmd_pre_hook ((struct cmd_list_element *) cmd);
-  return (0);
-}
 
 int
 signal_stop_state (int signo)
@@ -8511,16 +8436,14 @@ sig_print_info (enum gdb_signal oursig)
 /* Specify how various signals in the inferior should be handled.  */
 
 static void
-handle_command (char *args, int from_tty)
+handle_command (const char *args, int from_tty)
 {
-  char **argv;
   int digits, wordlen;
   int sigfirst, signum, siglast;
   enum gdb_signal oursig;
   int allsigs;
   int nsigs;
   unsigned char *sigs;
-  struct cleanup *old_chain;
 
   if (args == NULL)
     {
@@ -8535,24 +8458,23 @@ handle_command (char *args, int from_tty
 
   /* Break the command line up into args.  */
 
-  argv = gdb_buildargv (args);
-  old_chain = make_cleanup_freeargv (argv);
+  gdb_argv built_argv (args);
 
   /* Walk through the args, looking for signal oursigs, signal names, and
      actions.  Signal numbers and signal names may be interspersed with
      actions, with the actions being performed for all signals cumulatively
      specified.  Signal ranges can be specified as <LOW>-<HIGH>.  */
 
-  while (*argv != NULL)
+  for (char *arg : built_argv)
     {
-      wordlen = strlen (*argv);
-      for (digits = 0; isdigit ((*argv)[digits]); digits++)
+      wordlen = strlen (arg);
+      for (digits = 0; isdigit (arg[digits]); digits++)
 	{;
 	}
       allsigs = 0;
       sigfirst = siglast = -1;
 
-      if (wordlen >= 1 && !strncmp (*argv, "all", wordlen))
+      if (wordlen >= 1 && !strncmp (arg, "all", wordlen))
 	{
 	  /* Apply action to all signals except those used by the
 	     debugger.  Silently skip those.  */
@@ -8560,37 +8482,37 @@ handle_command (char *args, int from_tty
 	  sigfirst = 0;
 	  siglast = nsigs - 1;
 	}
-      else if (wordlen >= 1 && !strncmp (*argv, "stop", wordlen))
+      else if (wordlen >= 1 && !strncmp (arg, "stop", wordlen))
 	{
 	  SET_SIGS (nsigs, sigs, signal_stop);
 	  SET_SIGS (nsigs, sigs, signal_print);
 	}
-      else if (wordlen >= 1 && !strncmp (*argv, "ignore", wordlen))
+      else if (wordlen >= 1 && !strncmp (arg, "ignore", wordlen))
 	{
 	  UNSET_SIGS (nsigs, sigs, signal_program);
 	}
-      else if (wordlen >= 2 && !strncmp (*argv, "print", wordlen))
+      else if (wordlen >= 2 && !strncmp (arg, "print", wordlen))
 	{
 	  SET_SIGS (nsigs, sigs, signal_print);
 	}
-      else if (wordlen >= 2 && !strncmp (*argv, "pass", wordlen))
+      else if (wordlen >= 2 && !strncmp (arg, "pass", wordlen))
 	{
 	  SET_SIGS (nsigs, sigs, signal_program);
 	}
-      else if (wordlen >= 3 && !strncmp (*argv, "nostop", wordlen))
+      else if (wordlen >= 3 && !strncmp (arg, "nostop", wordlen))
 	{
 	  UNSET_SIGS (nsigs, sigs, signal_stop);
 	}
-      else if (wordlen >= 3 && !strncmp (*argv, "noignore", wordlen))
+      else if (wordlen >= 3 && !strncmp (arg, "noignore", wordlen))
 	{
 	  SET_SIGS (nsigs, sigs, signal_program);
 	}
-      else if (wordlen >= 4 && !strncmp (*argv, "noprint", wordlen))
+      else if (wordlen >= 4 && !strncmp (arg, "noprint", wordlen))
 	{
 	  UNSET_SIGS (nsigs, sigs, signal_print);
 	  UNSET_SIGS (nsigs, sigs, signal_stop);
 	}
-      else if (wordlen >= 4 && !strncmp (*argv, "nopass", wordlen))
+      else if (wordlen >= 4 && !strncmp (arg, "nopass", wordlen))
 	{
 	  UNSET_SIGS (nsigs, sigs, signal_program);
 	}
@@ -8603,11 +8525,11 @@ handle_command (char *args, int from_tty
 	     SIGHUP, SIGINT, SIGALRM, etc. will work right anyway.  */
 
 	  sigfirst = siglast = (int)
-	    gdb_signal_from_command (atoi (*argv));
-	  if ((*argv)[digits] == '-')
+	    gdb_signal_from_command (atoi (arg));
+	  if (arg[digits] == '-')
 	    {
 	      siglast = (int)
-		gdb_signal_from_command (atoi ((*argv) + digits + 1));
+		gdb_signal_from_command (atoi (arg + digits + 1));
 	    }
 	  if (sigfirst > siglast)
 	    {
@@ -8619,7 +8541,7 @@ handle_command (char *args, int from_tty
 	}
       else
 	{
-	  oursig = gdb_signal_from_name (*argv);
+	  oursig = gdb_signal_from_name (arg);
 	  if (oursig != GDB_SIGNAL_UNKNOWN)
 	    {
 	      sigfirst = siglast = (int) oursig;
@@ -8627,7 +8549,7 @@ handle_command (char *args, int from_tty
 	  else
 	    {
 	      /* Not a number and not a recognized flag word => complain.  */
-	      error (_("Unrecognized or ambiguous flag word: \"%s\"."), *argv);
+	      error (_("Unrecognized or ambiguous flag word: \"%s\"."), arg);
 	    }
 	}
 
@@ -8665,8 +8587,6 @@ Are you sure you want to change it? "),
 	      break;
 	    }
 	}
-
-      argv++;
     }
 
   for (signum = 0; signum < nsigs; signum++)
@@ -8687,17 +8607,15 @@ Are you sure you want to change it? "),
 
 	break;
       }
-
-  do_cleanups (old_chain);
 }
 
 /* Complete the "handle" command.  */
 
-static VEC (char_ptr) *
+static void
 handle_completer (struct cmd_list_element *ignore,
+		  completion_tracker &tracker,
 		  const char *text, const char *word)
 {
-  VEC (char_ptr) *vec_signals, *vec_keywords, *return_val;
   static const char * const keywords[] =
     {
       "all",
@@ -8712,13 +8630,8 @@ handle_completer (struct cmd_list_elemen
       NULL,
     };
 
-  vec_signals = signal_completer (ignore, text, word);
-  vec_keywords = complete_on_enum (keywords, word, word);
-
-  return_val = VEC_merge (char_ptr, vec_signals, vec_keywords);
-  VEC_free (char_ptr, vec_signals);
-  VEC_free (char_ptr, vec_keywords);
-  return return_val;
+  signal_completer (ignore, tracker, text, word);
+  complete_on_enum (tracker, keywords, word, word);
 }
 
 enum gdb_signal
@@ -8736,7 +8649,7 @@ Use \"info signals\" for a list of symbo
    targets, all signals should be in the signal tables).  */
 
 static void
-signals_info (char *signum_exp, int from_tty)
+info_signals_command (const char *signum_exp, int from_tty)
 {
   enum gdb_signal oursig;
 
@@ -8885,7 +8798,7 @@ save_infcall_suspend_state (void)
   struct infcall_suspend_state *inf_state;
   struct thread_info *tp = inferior_thread ();
   struct regcache *regcache = get_current_regcache ();
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   gdb_byte *siginfo_data = NULL;
 
   if (gdbarch_get_siginfo_type_p (gdbarch))
@@ -8936,7 +8849,7 @@ restore_infcall_suspend_state (struct in
 {
   struct thread_info *tp = inferior_thread ();
   struct regcache *regcache = get_current_regcache ();
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   tp->suspend = inf_state->thread_suspend;
 
@@ -8976,7 +8889,7 @@ make_cleanup_restore_infcall_suspend_sta
 void
 discard_infcall_suspend_state (struct infcall_suspend_state *inf_state)
 {
-  regcache_xfree (inf_state->registers);
+  delete inf_state->registers;
   xfree (inf_state->siginfo_data);
   xfree (inf_state);
 }
@@ -9036,25 +8949,20 @@ save_infcall_control_state (void)
   return inf_status;
 }
 
-static int
-restore_selected_frame (void *args)
+static void
+restore_selected_frame (const frame_id &fid)
 {
-  struct frame_id *fid = (struct frame_id *) args;
-  struct frame_info *frame;
-
-  frame = frame_find_by_id (*fid);
+  frame_info *frame = frame_find_by_id (fid);
 
   /* If inf_status->selected_frame_id is NULL, there was no previously
      selected frame.  */
   if (frame == NULL)
     {
       warning (_("Unable to restore previously selected frame."));
-      return 0;
+      return;
     }
 
   select_frame (frame);
-
-  return (1);
 }
 
 /* Restore inferior session state to INF_STATUS.  */
@@ -9084,16 +8992,22 @@ restore_infcall_control_state (struct in
 
   if (target_has_stack)
     {
-      /* The point of catch_errors is that if the stack is clobbered,
+      /* The point of the try/catch is that if the stack is clobbered,
          walking the stack might encounter a garbage pointer and
          error() trying to dereference it.  */
-      if (catch_errors
-	  (restore_selected_frame, &inf_status->selected_frame_id,
-	   "Unable to restore previously selected frame:\n",
-	   RETURN_MASK_ERROR) == 0)
-	/* Error in restoring the selected frame.  Select the innermost
-	   frame.  */
-	select_frame (get_current_frame ());
+      TRY
+	{
+	  restore_selected_frame (inf_status->selected_frame_id);
+	}
+      CATCH (ex, RETURN_MASK_ERROR)
+	{
+	  exception_fprintf (gdb_stderr, ex,
+			     "Unable to restore previously selected frame:\n");
+	  /* Error in restoring the selected frame.  Select the
+	     innermost frame.  */
+	  select_frame (get_current_frame ());
+	}
+      END_CATCH
     }
 
   xfree (inf_status);
@@ -9129,32 +9043,6 @@ discard_infcall_control_state (struct in
   xfree (inf_status);
 }
 
-/* restore_inferior_ptid() will be used by the cleanup machinery
-   to restore the inferior_ptid value saved in a call to
-   save_inferior_ptid().  */
-
-static void
-restore_inferior_ptid (void *arg)
-{
-  ptid_t *saved_ptid_ptr = (ptid_t *) arg;
-
-  inferior_ptid = *saved_ptid_ptr;
-  xfree (arg);
-}
-
-/* Save the value of inferior_ptid so that it may be restored by a
-   later call to do_cleanups().  Returns the struct cleanup pointer
-   needed for later doing the cleanup.  */
-
-struct cleanup *
-save_inferior_ptid (void)
-{
-  ptid_t *saved_ptid_ptr = XNEW (ptid_t);
-
-  *saved_ptid_ptr = inferior_ptid;
-  return make_cleanup (restore_inferior_ptid, saved_ptid_ptr);
-}
-
 /* See infrun.h.  */
 
 void
@@ -9180,7 +9068,7 @@ static const char *const exec_direction_
 };
 
 static void
-set_exec_direction_func (char *args, int from_tty,
+set_exec_direction_func (const char *args, int from_tty,
 			 struct cmd_list_element *cmd)
 {
   if (target_can_execute_reverse)
@@ -9252,7 +9140,7 @@ _initialize_infrun (void)
   infrun_async_inferior_event_token
     = create_async_event_handler (infrun_async_inferior_event_handler, NULL);
 
-  add_info ("signals", signals_info, _("\
+  add_info ("signals", info_signals_command, _("\
 What debugger does when program gets various signals.\n\
 Specify a signal as argument to print info on that signal only."));
   add_info_alias ("handle", "signals", 0);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/infrun.h ./gdb/infrun.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/infrun.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/infrun.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1986-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -19,6 +19,7 @@
 #define INFRUN_H 1
 
 #include "symtab.h"
+#include "common/byte-vector.h"
 
 struct target_waitstatus;
 struct frame_info;
@@ -243,4 +244,22 @@ extern void all_uis_check_sync_execution
    started or re-started).  */
 extern void all_uis_on_sync_execution_starting (void);
 
+/* Base class for displaced stepping closures (the arch-specific data).  */
+
+struct displaced_step_closure
+{
+  virtual ~displaced_step_closure () = 0;
+};
+
+/* A simple displaced step closure that contains only a byte buffer.  */
+
+struct buf_displaced_step_closure : displaced_step_closure
+{
+  buf_displaced_step_closure (int buf_size)
+  : buf (buf_size)
+  {}
+
+  gdb::byte_vector buf;
+};
+
 #endif /* INFRUN_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inline-frame.c ./gdb/inline-frame.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inline-frame.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/inline-frame.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Inline frame unwinder for GDB.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inline-frame.h ./gdb/inline-frame.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/inline-frame.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/inline-frame.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for inline frame support.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/interps.c ./gdb/interps.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/interps.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/interps.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Manages interpreters for GDB, the GNU debugger.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    Written by Jim Ingham <jingham@apple.com> of Apple Computer, Inc.
 
@@ -74,8 +74,6 @@ get_current_interp_info (void)
 
 /* The magic initialization routine for this module.  */
 
-void _initialize_interpreter (void);
-
 static struct interp *interp_lookup_existing (struct ui *ui,
 					      const char *name);
 
@@ -93,6 +91,10 @@ interp::~interp ()
 
 struct interp_factory
 {
+  interp_factory (const char *name_, interp_factory_func func_)
+  : name (name_), func (func_)
+  {}
+
   /* This is the name in "-i=INTERP" and "interpreter-exec INTERP".  */
   const char *name;
 
@@ -100,35 +102,24 @@ struct interp_factory
   interp_factory_func func;
 };
 
-typedef struct interp_factory *interp_factory_p;
-DEF_VEC_P(interp_factory_p);
-
 /* The registered interpreter factories.  */
-static VEC(interp_factory_p) *interpreter_factories = NULL;
+static std::vector<interp_factory> interpreter_factories;
 
 /* See interps.h.  */
 
 void
 interp_factory_register (const char *name, interp_factory_func func)
 {
-  struct interp_factory *f;
-  int ix;
-
   /* Assert that no factory for NAME is already registered.  */
-  for (ix = 0;
-       VEC_iterate (interp_factory_p, interpreter_factories, ix, f);
-       ++ix)
-    if (strcmp (f->name, name) == 0)
+  for (const interp_factory &f : interpreter_factories)
+    if (strcmp (f.name, name) == 0)
       {
 	internal_error (__FILE__, __LINE__,
 			_("interpreter factory already registered: \"%s\"\n"),
 			name);
       }
 
-  f = XNEW (struct interp_factory);
-  f->name = name;
-  f->func = func;
-  VEC_safe_push (interp_factory_p, interpreter_factories, f);
+  interpreter_factories.emplace_back (name, func);
 }
 
 /* Add interpreter INTERP to the gdb interpreter list.  The
@@ -227,24 +218,18 @@ interp_lookup_existing (struct ui *ui, c
 struct interp *
 interp_lookup (struct ui *ui, const char *name)
 {
-  struct interp_factory *factory;
-  struct interp *interp;
-  int ix;
-
   if (name == NULL || strlen (name) == 0)
     return NULL;
 
   /* Only create each interpreter once per top level.  */
-  interp = interp_lookup_existing (ui, name);
+  struct interp *interp = interp_lookup_existing (ui, name);
   if (interp != NULL)
     return interp;
 
-  for (ix = 0;
-       VEC_iterate (interp_factory_p, interpreter_factories, ix, factory);
-       ++ix)
-    if (strcmp (factory->name, name) == 0)
+  for (const interp_factory &factory : interpreter_factories)
+    if (strcmp (factory.name, name) == 0)
       {
-	interp = factory->func (name);
+	interp = factory.func (name);
 	interp_add (ui, interp);
 	return interp;
       }
@@ -290,7 +275,7 @@ current_interp_set_logging (ui_file_up l
 
 /* Temporarily overrides the current interpreter.  */
 struct interp *
-interp_set_temp (const char *name)
+scoped_restore_interp::set_interp (const char *name)
 {
   struct ui_interp_info *ui_interp = get_current_interp_info ();
   struct interp *interp = interp_lookup (current_ui, name);
@@ -403,25 +388,18 @@ clear_interpreter_hooks (void)
 }
 
 static void
-interpreter_exec_cmd (char *args, int from_tty)
+interpreter_exec_cmd (const char *args, int from_tty)
 {
   struct ui_interp_info *ui_interp = get_current_interp_info ();
   struct interp *old_interp, *interp_to_use;
-  char **prules = NULL;
-  char **trule = NULL;
   unsigned int nrules;
   unsigned int i;
-  struct cleanup *cleanup;
 
   if (args == NULL)
     error_no_arg (_("interpreter-exec command"));
 
-  prules = gdb_buildargv (args);
-  cleanup = make_cleanup_freeargv (prules);
-
-  nrules = 0;
-  for (trule = prules; *trule != NULL; trule++)
-    nrules++;
+  gdb_argv prules (args);
+  nrules = prules.count ();
 
   if (nrules < 2)
     error (_("usage: interpreter-exec <interpreter> [ <command> ... ]"));
@@ -446,50 +424,25 @@ interpreter_exec_cmd (char *args, int fr
     }
 
   interp_set (old_interp, 0);
-
-  do_cleanups (cleanup);
 }
 
 /* See interps.h.  */
 
-VEC (char_ptr) *
+void
 interpreter_completer (struct cmd_list_element *ignore,
+		       completion_tracker &tracker,
 		       const char *text, const char *word)
 {
-  struct interp_factory *interp;
-  int textlen;
-  VEC (char_ptr) *matches = NULL;
-  int ix;
-
-  textlen = strlen (text);
-  for (ix = 0;
-       VEC_iterate (interp_factory_p, interpreter_factories, ix, interp);
-       ++ix)
+  int textlen = strlen (text);
+
+  for (const interp_factory &interp : interpreter_factories)
     {
-      if (strncmp (interp->name, text, textlen) == 0)
+      if (strncmp (interp.name, text, textlen) == 0)
 	{
-	  char *match;
-
-	  match = (char *) xmalloc (strlen (word) + strlen (interp->name) + 1);
-	  if (word == text)
-	    strcpy (match, interp->name);
-	  else if (word > text)
-	    {
-	      /* Return some portion of interp->name.  */
-	      strcpy (match, interp->name + (word - text));
-	    }
-	  else
-	    {
-	      /* Return some of text plus interp->name.  */
-	      strncpy (match, word, text - word);
-	      match[text - word] = '\0';
-	      strcat (match, interp->name);
-	    }
-	  VEC_safe_push (char_ptr, matches, match);
+	  tracker.add_completion
+	    (make_completion_match_str (interp.name, text, word));
 	}
     }
-
-  return matches;
 }
 
 struct interp *
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/interps.h ./gdb/interps.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/interps.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/interps.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Manages interpreters for GDB, the GNU debugger.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    Written by Jim Ingham <jingham@apple.com> of Apple Computer, Inc.
 
@@ -35,8 +35,6 @@ typedef struct interp *(*interp_factory_
 extern void interp_factory_register (const char *name,
 				     interp_factory_func func);
 
-extern int interp_resume (struct interp *interp);
-extern int interp_suspend (struct interp *interp);
 extern struct gdb_exception interp_exec (struct interp *interp,
 					 const char *command);
 
@@ -102,7 +100,32 @@ extern void set_top_level_interpreter (c
 
 extern struct ui_out *interp_ui_out (struct interp *interp);
 extern const char *interp_name (struct interp *interp);
-extern struct interp *interp_set_temp (const char *name);
+
+/* Temporarily set the current interpreter, and reset it on
+   destruction.  */
+class scoped_restore_interp
+{
+public:
+
+  scoped_restore_interp (const char *name)
+    : m_interp (set_interp (name))
+  {
+  }
+
+  ~scoped_restore_interp ()
+  {
+    set_interp (interp_name (m_interp));
+  }
+
+  scoped_restore_interp (const scoped_restore_interp &) = delete;
+  scoped_restore_interp &operator= (const scoped_restore_interp &) = delete;
+
+private:
+
+  struct interp *set_interp (const char *name);
+
+  struct interp *m_interp;
+};
 
 extern int current_interp_named_p (const char *name);
 
@@ -138,9 +161,10 @@ extern void interp_pre_command_loop (str
 
 /* List the possible interpreters which could complete the given
    text.  */
-extern VEC (char_ptr) *interpreter_completer (struct cmd_list_element *ignore,
-					      const char *text,
-					      const char *word);
+extern void interpreter_completer (struct cmd_list_element *ignore,
+				   completion_tracker &tracker,
+				   const char *text,
+				   const char *word);
 
 /* well-known interpreters */
 #define INTERP_CONSOLE		"console"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/iq2000-tdep.c ./gdb/iq2000-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/iq2000-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/iq2000-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Target-dependent code for the IQ2000 architecture, for GDB, the GNU
    Debugger.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat.
 
@@ -539,7 +539,7 @@ static void
 iq2000_extract_return_value (struct type *type, struct regcache *regcache,
 			     gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
   /* If the function's return value is 8 bytes or less, it is
@@ -838,7 +838,6 @@ iq2000_gdbarch_init (struct gdbarch_info
   set_gdbarch_frame_args_skip      (gdbarch, 0);
   set_gdbarch_skip_prologue        (gdbarch, iq2000_skip_prologue);
   set_gdbarch_inner_than           (gdbarch, core_addr_lessthan);
-  set_gdbarch_print_insn           (gdbarch, print_insn_iq2000);
   set_gdbarch_register_type (gdbarch, iq2000_register_type);
   set_gdbarch_frame_align (gdbarch, iq2000_frame_align);
   set_gdbarch_unwind_sp (gdbarch, iq2000_unwind_sp);
@@ -859,9 +858,6 @@ iq2000_gdbarch_init (struct gdbarch_info
    Initializer function for the iq2000 module.
    Called by gdb at start-up.  */
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_iq2000_tdep;
-
 void
 _initialize_iq2000_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/jit.c ./gdb/jit.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/jit.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/jit.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Handle JIT code generation in the inferior for GDB, the GNU Debugger.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -163,8 +163,7 @@ struct jit_reader
     functions->destroy (functions);
   }
 
-  jit_reader (const jit_reader &) = delete;
-  jit_reader &operator= (const jit_reader &) = delete;
+  DISABLE_COPY_AND_ASSIGN (jit_reader);
 
   struct gdb_reader_funcs *functions;
   gdb_dlhandle_up handle;
@@ -209,37 +208,28 @@ jit_reader_load (const char *file_name)
 /* Provides the jit-reader-load command.  */
 
 static void
-jit_reader_load_command (char *args, int from_tty)
+jit_reader_load_command (const char *args, int from_tty)
 {
-  char *so_name;
-  struct cleanup *prev_cleanup;
-
   if (args == NULL)
     error (_("No reader name provided."));
-  args = tilde_expand (args);
-  prev_cleanup = make_cleanup (xfree, args);
+  gdb::unique_xmalloc_ptr<char> file (tilde_expand (args));
 
   if (loaded_jit_reader != NULL)
     error (_("JIT reader already loaded.  Run jit-reader-unload first."));
 
-  if (IS_ABSOLUTE_PATH (args))
-    so_name = args;
-  else
-    {
-      so_name = xstrprintf ("%s%s%s", jit_reader_dir, SLASH_STRING, args);
-      make_cleanup (xfree, so_name);
-    }
+  if (!IS_ABSOLUTE_PATH (file.get ()))
+    file.reset (xstrprintf ("%s%s%s", jit_reader_dir, SLASH_STRING,
+			    file.get ()));
 
-  loaded_jit_reader = jit_reader_load (so_name);
+  loaded_jit_reader = jit_reader_load (file.get ());
   reinit_frame_cache ();
   jit_inferior_created_hook ();
-  do_cleanups (prev_cleanup);
 }
 
 /* Provides the jit-reader-unload command.  */
 
 static void
-jit_reader_unload_command (char *args, int from_tty)
+jit_reader_unload_command (const char *args, int from_tty)
 {
   if (!loaded_jit_reader)
     error (_("No JIT reader loaded."));
@@ -661,12 +651,14 @@ finalize_symtab (struct gdb_symtab *stab
   size_t blockvector_size;
   CORE_ADDR begin, end;
   struct blockvector *bv;
+  enum language language;
 
   actual_nblocks = FIRST_LOCAL_BLOCK + stab->nblocks;
 
   cust = allocate_compunit_symtab (objfile, stab->file_name);
   allocate_symtab (cust, stab->file_name);
   add_compunit_symtab_to_objfile (cust);
+  language = compunit_language (cust);
 
   /* JIT compilers compile in memory.  */
   COMPUNIT_DIRNAME (cust) = NULL;
@@ -707,11 +699,11 @@ finalize_symtab (struct gdb_symtab *stab
       struct symbol *block_name = allocate_symbol (objfile);
       struct type *block_type = arch_type (get_objfile_arch (objfile),
 					   TYPE_CODE_VOID,
-					   1,
+					   TARGET_CHAR_BIT,
 					   "void");
 
       BLOCK_DICT (new_block) = dict_create_linear (&objfile->objfile_obstack,
-                                                   NULL);
+						   language, NULL);
       /* The address range.  */
       BLOCK_START (new_block) = (CORE_ADDR) gdb_block_iter->begin;
       BLOCK_END (new_block) = (CORE_ADDR) gdb_block_iter->end;
@@ -749,7 +741,7 @@ finalize_symtab (struct gdb_symtab *stab
 		   ? allocate_global_block (&objfile->objfile_obstack)
 		   : allocate_block (&objfile->objfile_obstack));
       BLOCK_DICT (new_block) = dict_create_linear (&objfile->objfile_obstack,
-                                                   NULL);
+						   language, NULL);
       BLOCK_SUPERBLOCK (new_block) = block_iter;
       block_iter = new_block;
 
@@ -811,8 +803,8 @@ jit_object_close_impl (struct gdb_symbol
 
   priv_data = (jit_dbg_reader_data *) cb->priv_data;
 
-  objfile = allocate_objfile (NULL, "<< JIT compiled code >>",
-			      OBJF_NOT_FILENAME);
+  objfile = new struct objfile (NULL, "<< JIT compiled code >>",
+				OBJF_NOT_FILENAME);
   objfile->per_bfd->gdbarch = target_gdbarch ();
 
   terminate_minimal_symbol_table (objfile);
@@ -993,7 +985,7 @@ jit_register_code (struct gdbarch *gdbar
 static void
 jit_unregister_code (struct objfile *objfile)
 {
-  free_objfile (objfile);
+  delete objfile;
 }
 
 /* Look up the objfile with this code entry address.  */
@@ -1177,7 +1169,7 @@ jit_dealloc_cache (struct frame_info *th
   struct jit_unwind_private *priv_data = (struct jit_unwind_private *) cache;
 
   gdb_assert (priv_data->regcache != NULL);
-  regcache_xfree (priv_data->regcache);
+  delete priv_data->regcache;
   xfree (priv_data);
 }
 
@@ -1196,7 +1188,6 @@ jit_frame_sniffer (const struct frame_un
   struct jit_unwind_private *priv_data;
   struct gdb_unwind_callbacks callbacks;
   struct gdb_reader_funcs *funcs;
-  struct address_space *aspace;
   struct gdbarch *gdbarch;
 
   callbacks.reg_get = jit_unwind_reg_get_impl;
@@ -1210,12 +1201,11 @@ jit_frame_sniffer (const struct frame_un
 
   gdb_assert (!*cache);
 
-  aspace = get_frame_address_space (this_frame);
   gdbarch = get_frame_arch (this_frame);
 
   *cache = XCNEW (struct jit_unwind_private);
   priv_data = (struct jit_unwind_private *) *cache;
-  priv_data->regcache = regcache_xmalloc (gdbarch, aspace);
+  priv_data->regcache = new regcache (gdbarch);
   priv_data->this_frame = this_frame;
 
   callbacks.priv_data = priv_data;
@@ -1280,7 +1270,7 @@ jit_frame_prev_register (struct frame_in
   if (priv == NULL)
     return frame_unwind_got_optimized (this_frame, reg);
 
-  gdbarch = get_regcache_arch (priv->regcache);
+  gdbarch = priv->regcache->arch ();
   if (reg < gdbarch_num_regs (gdbarch))
     {
       gdb_byte *buf = (gdb_byte *) alloca (register_size (gdbarch, reg));
@@ -1510,10 +1500,6 @@ jit_gdbarch_data_init (struct obstack *o
   return data;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-
-extern void _initialize_jit (void);
-
 void
 _initialize_jit (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/jit.h ./gdb/jit.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/jit.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/jit.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* JIT declarations for GDB, the GNU Debugger.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/jit-reader.in ./gdb/jit-reader.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/jit-reader.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/jit-reader.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* JIT declarations for GDB, the GNU Debugger.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/language.c ./gdb/language.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/language.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/language.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Multiple source language support for GDB.
 
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
    Contributed by the Department of Computer Science at the State University
    of New York at Buffalo.
@@ -43,17 +43,13 @@
 #include "symfile.h"
 #include "cp-support.h"
 #include "frame.h"
-
-extern void _initialize_language (void);
+#include "c-lang.h"
+#include <algorithm>
 
 static void unk_lang_error (const char *);
 
 static int unk_lang_parser (struct parser_state *);
 
-static void show_check (char *, int);
-
-static void set_check (char *, int);
-
 static void set_range_case (void);
 
 static void unk_lang_emit_char (int c, struct type *type,
@@ -90,12 +86,26 @@ enum language_mode language_mode = langu
 
 const struct language_defn *expected_language;
 
-/* The list of supported languages.  The list itself is malloc'd.  */
+/* The list of supported languages.  Keep this in the same order as
+   the 'enum language' values.  */
 
-static const struct language_defn **languages;
-static unsigned languages_size;
-static unsigned languages_allocsize;
-#define	DEFAULT_ALLOCSIZE 4
+static const struct language_defn *languages[] = {
+  &unknown_language_defn,
+  &auto_language_defn,
+  &c_language_defn,
+  &objc_language_defn,
+  &cplus_language_defn,
+  &d_language_defn,
+  &go_language_defn,
+  &f_language_defn,
+  &m2_language_defn,
+  &asm_language_defn,
+  &pascal_language_defn,
+  &opencl_language_defn,
+  &rust_language_defn,
+  &minimal_language_defn,
+  &ada_language_defn,
+};
 
 /* The current values of the "set language/type/range" enum
    commands.  */
@@ -145,18 +155,22 @@ show_language_command (struct ui_file *f
 
 /* Set command.  Change the current working language.  */
 static void
-set_language_command (char *ignore, int from_tty, struct cmd_list_element *c)
+set_language_command (const char *ignore,
+		      int from_tty, struct cmd_list_element *c)
 {
-  int i;
   enum language flang = language_unknown;
 
+  /* "local" is a synonym of "auto".  */
+  if (strcmp (language, "local") == 0)
+    language = "auto";
+
   /* Search the list of languages for a match.  */
-  for (i = 0; i < languages_size; i++)
+  for (const auto &lang : languages)
     {
-      if (strcmp (languages[i]->la_name, language) == 0)
+      if (strcmp (lang->la_name, language) == 0)
 	{
 	  /* Found it!  Go into manual mode, and use this language.  */
-	  if (languages[i]->la_language == language_auto)
+	  if (lang->la_language == language_auto)
 	    {
 	      /* Enter auto mode.  Set to the current frame's language, if
                  known, or fallback to the initial language.  */
@@ -185,7 +199,7 @@ set_language_command (char *ignore, int 
 	    {
 	      /* Enter manual mode.  Set the specified language.  */
 	      language_mode = language_mode_manual;
-	      current_language = languages[i];
+	      current_language = lang;
 	      set_range_case ();
 	      expected_language = current_language;
 	      return;
@@ -239,7 +253,8 @@ show_range_command (struct ui_file *file
 
 /* Set command.  Change the setting for range checking.  */
 static void
-set_range_command (char *ignore, int from_tty, struct cmd_list_element *c)
+set_range_command (const char *ignore,
+		   int from_tty, struct cmd_list_element *c)
 {
   if (strcmp (range, "on") == 0)
     {
@@ -313,7 +328,7 @@ show_case_command (struct ui_file *file,
 /* Set command.  Change the setting for case sensitivity.  */
 
 static void
-set_case_command (char *ignore, int from_tty, struct cmd_list_element *c)
+set_case_command (const char *ignore, int from_tty, struct cmd_list_element *c)
 {
    if (strcmp (case_sensitive, "on") == 0)
      {
@@ -363,21 +378,11 @@ set_range_case (void)
 enum language
 set_language (enum language lang)
 {
-  int i;
   enum language prev_language;
 
   prev_language = current_language->la_language;
-
-  for (i = 0; i < languages_size; i++)
-    {
-      if (languages[i]->la_language == lang)
-	{
-	  current_language = languages[i];
-	  set_range_case ();
-	  break;
-	}
-    }
-
+  current_language = languages[lang];
+  set_range_case ();
   return prev_language;
 }
 
@@ -471,13 +476,14 @@ range_error (const char *string,...)
 /* Return the language enum for a given language string.  */
 
 enum language
-language_enum (char *str)
+language_enum (const char *str)
 {
-  int i;
+  for (const auto &lang : languages)
+    if (strcmp (lang->la_name, str) == 0)
+      return lang->la_language;
 
-  for (i = 0; i < languages_size; i++)
-    if (strcmp (languages[i]->la_name, str) == 0)
-      return languages[i]->la_language;
+  if (strcmp (str, "local") == 0)
+    return language_auto;
 
   return language_unknown;
 }
@@ -487,36 +493,19 @@ language_enum (char *str)
 const struct language_defn *
 language_def (enum language lang)
 {
-  int i;
-
-  for (i = 0; i < languages_size; i++)
-    {
-      if (languages[i]->la_language == lang)
-	{
-	  return languages[i];
-	}
-    }
-  return NULL;
+  return languages[lang];
 }
 
 /* Return the language as a string.  */
+
 const char *
 language_str (enum language lang)
 {
-  int i;
-
-  for (i = 0; i < languages_size; i++)
-    {
-      if (languages[i]->la_language == lang)
-	{
-	  return languages[i]->la_name;
-	}
-    }
-  return "Unknown";
+  return languages[lang]->la_name;
 }
 
 static void
-set_check (char *ignore, int from_tty)
+set_check (const char *ignore, int from_tty)
 {
   printf_unfiltered (
      "\"set check\" must be followed by the name of a check subcommand.\n");
@@ -524,60 +513,50 @@ set_check (char *ignore, int from_tty)
 }
 
 static void
-show_check (char *ignore, int from_tty)
+show_check (const char *ignore, int from_tty)
 {
   cmd_show_list (showchecklist, from_tty, "");
 }
 
-/* Add a language to the set of known languages.  */
 
-void
-add_language (const struct language_defn *lang)
-{
-  /* For the "set language" command.  */
-  static const char **language_names = NULL;
-  /* For the "help set language" command.  */
-
-  if (lang->la_magic != LANG_MAGIC)
-    {
-      fprintf_unfiltered (gdb_stderr,
-			  "Magic number of %s language struct wrong\n",
-			  lang->la_name);
-      internal_error (__FILE__, __LINE__,
-		      _("failed internal consistency check"));
-    }
+/* Build and install the "set language LANG" command.  */
 
-  if (!languages)
-    {
-      languages_allocsize = DEFAULT_ALLOCSIZE;
-      languages = XNEWVEC (const struct language_defn *, languages_allocsize);
-    }
-  if (languages_size >= languages_allocsize)
-    {
-      languages_allocsize *= 2;
-      languages = (const struct language_defn **) xrealloc ((char *) languages,
-				 languages_allocsize * sizeof (*languages));
-    }
-  languages[languages_size++] = lang;
+static void
+add_set_language_command ()
+{
+  static const char **language_names;
 
   /* Build the language names array, to be used as enumeration in the
-     set language" enum command.  */
-  language_names = XRESIZEVEC (const char *, language_names,
-			       languages_size + 1);
-
-  for (int i = 0; i < languages_size; ++i)
-    language_names[i] = languages[i]->la_name;
-  language_names[languages_size] = NULL;
+     "set language" enum command.  +1 for "local" and +1 for NULL
+     termination.  */
+  language_names = new const char *[ARRAY_SIZE (languages) + 2];
+
+  /* Display "auto", "local" and "unknown" first, and then the rest,
+     alpha sorted.  */
+  const char **language_names_p = language_names;
+  *language_names_p++ = auto_language_defn.la_name;
+  *language_names_p++ = "local";
+  *language_names_p++ = unknown_language_defn.la_name;
+  const char **sort_begin = language_names_p;
+  for (const auto &lang : languages)
+    {
+      /* Already handled above.  */
+      if (lang->la_language == language_auto
+	  || lang->la_language == language_unknown)
+	continue;
+      *language_names_p++ = lang->la_name;
+    }
+  *language_names_p = NULL;
+  std::sort (sort_begin, language_names_p, compare_cstrings);
 
   /* Add the filename extensions.  */
-  if (lang->la_filename_extensions != NULL)
-    {
-      int i;
-
-      for (i = 0; lang->la_filename_extensions[i] != NULL; ++i)
-	add_filename_language (lang->la_filename_extensions[i],
-			       lang->la_language);
-    }
+  for (const auto &lang : languages)
+    if (lang->la_filename_extensions != NULL)
+      {
+	for (size_t i = 0; lang->la_filename_extensions[i] != NULL; ++i)
+	  add_filename_language (lang->la_filename_extensions[i],
+				 lang->la_language);
+      }
 
   /* Build the "help set language" docs.  */
   string_file doc;
@@ -586,24 +565,24 @@ add_language (const struct language_defn
 		"The currently understood settings are:\n\nlocal or "
 		"auto    Automatic setting based on source file\n"));
 
-  for (int i = 0; i < languages_size; ++i)
+  for (const auto &lang : languages)
     {
       /* Already dealt with these above.  */
-      if (languages[i]->la_language == language_unknown
-	  || languages[i]->la_language == language_auto)
+      if (lang->la_language == language_unknown
+	  || lang->la_language == language_auto)
 	continue;
 
       /* FIXME: i18n: for now assume that the human-readable name is
 	 just a capitalization of the internal name.  */
       doc.printf ("%-16s Use the %c%s language\n",
-		  languages[i]->la_name,
+		  lang->la_name,
 		  /* Capitalize first letter of language name.  */
-		  toupper (languages[i]->la_name[0]),
-		  languages[i]->la_name + 1);
+		  toupper (lang->la_name[0]),
+		  lang->la_name + 1);
     }
 
   add_setshow_enum_cmd ("language", class_support,
-			(const char **) language_names,
+			language_names,
 			&language,
 			doc.c_str (),
 			_("Show the current source language."),
@@ -619,13 +598,11 @@ add_language (const struct language_defn
 CORE_ADDR 
 skip_language_trampoline (struct frame_info *frame, CORE_ADDR pc)
 {
-  int i;
-
-  for (i = 0; i < languages_size; i++)
+  for (const auto &lang : languages)
     {
-      if (languages[i]->skip_trampoline)
+      if (lang->skip_trampoline != NULL)
 	{
-	  CORE_ADDR real_pc = (languages[i]->skip_trampoline) (frame, pc);
+	  CORE_ADDR real_pc = lang->skip_trampoline (frame, pc);
 
 	  if (real_pc)
 	    return real_pc;
@@ -722,6 +699,42 @@ default_get_string (struct value *value,
   error (_("Getting a string is unsupported in this language."));
 }
 
+/* See language.h.  */
+
+bool
+default_symbol_name_matcher (const char *symbol_search_name,
+			     const lookup_name_info &lookup_name,
+			     completion_match_result *comp_match_res)
+{
+  const std::string &name = lookup_name.name ();
+  completion_match_for_lcd *match_for_lcd
+    = (comp_match_res != NULL ? &comp_match_res->match_for_lcd : NULL);
+  strncmp_iw_mode mode = (lookup_name.completion_mode ()
+			  ? strncmp_iw_mode::NORMAL
+			  : strncmp_iw_mode::MATCH_PARAMS);
+
+  if (strncmp_iw_with_mode (symbol_search_name, name.c_str (), name.size (),
+			    mode, language_minimal, match_for_lcd) == 0)
+    {
+      if (comp_match_res != NULL)
+	comp_match_res->set_match (symbol_search_name);
+      return true;
+    }
+  else
+    return false;
+}
+
+/* See language.h.  */
+
+symbol_name_matcher_ftype *
+language_get_symbol_name_matcher (const language_defn *lang,
+				  const lookup_name_info &lookup_name)
+{
+  if (lang->la_get_symbol_name_matcher != nullptr)
+    return lang->la_get_symbol_name_matcher (lookup_name);
+  return default_symbol_name_matcher;
+}
+
 /* Define the language that is no language.  */
 
 static int
@@ -854,13 +867,15 @@ const struct language_defn unknown_langu
   1,				/* c-style arrays */
   0,				/* String lower bound */
   default_word_break_characters,
-  default_make_symbol_completion_list,
+  default_collect_symbol_completion_matches,
   unknown_language_arch_info,	/* la_language_arch_info.  */
   default_print_array_index,
   default_pass_by_reference,
   default_get_string,
-  NULL,				/* la_get_symbol_name_cmp */
+  c_watch_location_expression,
+  NULL,				/* la_get_symbol_name_matcher */
   iterate_over_symbols,
+  default_search_name_hash,
   &default_varobj_ops,
   NULL,
   NULL,
@@ -903,65 +918,21 @@ const struct language_defn auto_language
   1,				/* c-style arrays */
   0,				/* String lower bound */
   default_word_break_characters,
-  default_make_symbol_completion_list,
+  default_collect_symbol_completion_matches,
   unknown_language_arch_info,	/* la_language_arch_info.  */
   default_print_array_index,
   default_pass_by_reference,
   default_get_string,
-  NULL,				/* la_get_symbol_name_cmp */
+  c_watch_location_expression,
+  NULL,				/* la_get_symbol_name_matcher */
   iterate_over_symbols,
+  default_search_name_hash,
   &default_varobj_ops,
   NULL,
   NULL,
   LANG_MAGIC
 };
 
-const struct language_defn local_language_defn =
-{
-  "local",
-  "Local",
-  language_auto,
-  range_check_off,
-  case_sensitive_on,
-  array_row_major,
-  macro_expansion_no,
-  NULL,
-  &exp_descriptor_standard,
-  unk_lang_parser,
-  unk_lang_error,
-  null_post_parser,
-  unk_lang_printchar,		/* Print character constant */
-  unk_lang_printstr,
-  unk_lang_emit_char,
-  unk_lang_print_type,		/* Print a type using appropriate syntax */
-  default_print_typedef,	/* Print a typedef using appropriate syntax */
-  unk_lang_val_print,		/* Print a value using appropriate syntax */
-  unk_lang_value_print,		/* Print a top-level value */
-  default_read_var_value,	/* la_read_var_value */
-  unk_lang_trampoline,		/* Language specific skip_trampoline */
-  "this", 		        /* name_of_this */
-  basic_lookup_symbol_nonlocal,	/* lookup_symbol_nonlocal */
-  basic_lookup_transparent_type,/* lookup_transparent_type */
-  unk_lang_demangle,		/* Language specific symbol demangler */
-  NULL,
-  unk_lang_class_name,		/* Language specific
-				   class_name_from_physname */
-  unk_op_print_tab,		/* expression operators for printing */
-  1,				/* c-style arrays */
-  0,				/* String lower bound */
-  default_word_break_characters,
-  default_make_symbol_completion_list,
-  unknown_language_arch_info,	/* la_language_arch_info.  */
-  default_print_array_index,
-  default_pass_by_reference,
-  default_get_string,
-  NULL,				/* la_get_symbol_name_cmp */
-  iterate_over_symbols,
-  &default_varobj_ops,
-  NULL,
-  NULL,
-  LANG_MAGIC
-};
 
 /* Per-architecture language information.  */
 
@@ -978,16 +949,15 @@ static void *
 language_gdbarch_post_init (struct gdbarch *gdbarch)
 {
   struct language_gdbarch *l;
-  int i;
 
   l = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct language_gdbarch);
-  for (i = 0; i < languages_size; i++)
-    {
-      if (languages[i] != NULL
-	  && languages[i]->la_language_arch_info != NULL)
-	languages[i]->la_language_arch_info
-	  (gdbarch, l->arch_info + languages[i]->la_language);
-    }
+  for (const auto &lang : languages)
+    if (lang != NULL && lang->la_language_arch_info != NULL)
+      {
+	lang->la_language_arch_info (gdbarch,
+				     l->arch_info + lang->la_language);
+      }
+
   return l;
 }
 
@@ -1201,9 +1171,7 @@ For Fortran the default is off; for othe
 			show_case_command,
 			&setlist, &showlist);
 
-  add_language (&auto_language_defn);
-  add_language (&local_language_defn);
-  add_language (&unknown_language_defn);
+  add_set_language_command ();
 
   language = xstrdup ("auto");
   type = xstrdup ("auto");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/language.h ./gdb/language.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/language.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/language.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Source-language-related definitions for GDB.
 
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
    Contributed by the Department of Computer Science at the State University
    of New York at Buffalo.
@@ -25,18 +25,19 @@
 
 #include "symtab.h"
 #include "common/function-view.h"
+#include "expression.h"
 
 /* Forward decls for prototypes.  */
 struct value;
 struct objfile;
 struct frame_info;
-struct expression;
 struct ui_file;
 struct value_print_options;
 struct type_print_options;
 struct lang_varobj_ops;
 struct parser_state;
 struct compile_instance;
+struct completion_match_for_lcd;
 
 #define MAX_FORTRAN_DIMS  7	/* Maximum number of F77 array dims.  */
 
@@ -126,16 +127,6 @@ struct language_arch_info
   struct type *bool_type_default;
 };
 
-/* A pointer to a function expected to return nonzero if
-   SYMBOL_SEARCH_NAME matches the given LOOKUP_NAME.
-
-   SYMBOL_SEARCH_NAME should be a symbol's "search" name.
-   LOOKUP_NAME should be the name of an entity after it has been
-   transformed for lookup.  */
-
-typedef int (*symbol_name_cmp_ftype) (const char *symbol_search_name,
-					  const char *lookup_name);
-
 /* Structure tying together assorted information about a language.  */
 
 struct language_defn
@@ -191,7 +182,7 @@ struct language_defn
        for releasing its previous contents, if necessary.  If 
        VOID_CONTEXT_P, then no value is expected from the expression.  */
 
-    void (*la_post_parser) (struct expression ** expp, int void_context_p);
+    void (*la_post_parser) (expression_up *expp, int void_context_p);
 
     void (*la_printchar) (int ch, struct type *chtype,
 			  struct ui_file * stream);
@@ -323,14 +314,18 @@ struct language_defn
     /* The list of characters forming word boundaries.  */
     const char *(*la_word_break_characters) (void);
 
-    /* Should return a vector of all symbols which are possible
+    /* Add to the completion tracker all symbols which are possible
        completions for TEXT.  WORD is the entire command on which the
        completion is being made.  If CODE is TYPE_CODE_UNDEF, then all
        symbols should be examined; otherwise, only STRUCT_DOMAIN
        symbols whose type has a code of CODE should be matched.  */
-    VEC (char_ptr) *(*la_make_symbol_completion_list) (const char *text,
-						       const char *word,
-						       enum type_code code);
+    void (*la_collect_symbol_completion_matches)
+      (completion_tracker &tracker,
+       complete_symbol_mode mode,
+       symbol_name_match_type match_type,
+       const char *text,
+       const char *word,
+       enum type_code code);
 
     /* The per-architecture (OS/ABI) language information.  */
     void (*la_language_arch_info) (struct gdbarch *,
@@ -358,13 +353,24 @@ struct language_defn
     void (*la_get_string) (struct value *value, gdb_byte **buffer, int *length,
 			   struct type **chartype, const char **charset);
 
-    /* Return a pointer to the function that should be used to match
-       a symbol name against LOOKUP_NAME. This is mostly for languages
-       such as Ada where the matching algorithm depends on LOOKUP_NAME.
-
-       This field may be NULL, in which case strcmp_iw will be used
-       to perform the matching.  */
-    symbol_name_cmp_ftype (*la_get_symbol_name_cmp) (const char *lookup_name);
+    /* Return an expression that can be used for a location
+       watchpoint.  TYPE is a pointer type that points to the memory
+       to watch, and ADDR is the address of the watched memory.  */
+    gdb::unique_xmalloc_ptr<char> (*la_watch_location_expression)
+         (struct type *type, CORE_ADDR addr);
+
+    /* Return a pointer to the function that should be used to match a
+       symbol name against LOOKUP_NAME, according to this language's
+       rules.  The matching algorithm depends on LOOKUP_NAME.  For
+       example, on Ada, the matching algorithm depends on the symbol
+       name (wild/full/verbatim matching), and on whether we're doing
+       a normal lookup or a completion match lookup.
+
+       This field may be NULL, in which case
+       default_symbol_name_matcher is used to perform the
+       matching.  */
+    symbol_name_matcher_ftype *(*la_get_symbol_name_matcher)
+      (const lookup_name_info &);
 
     /* Find all symbols in the current program space matching NAME in
        DOMAIN, according to this language's rules.
@@ -380,9 +386,15 @@ struct language_defn
        special processing here, 'iterate_over_symbols' should be
        used as the definition.  */
     void (*la_iterate_over_symbols)
-      (const struct block *block, const char *name, domain_enum domain,
+      (const struct block *block, const lookup_name_info &name,
+       domain_enum domain,
        gdb::function_view<symbol_found_callback_ftype> callback);
 
+    /* Hash the given symbol search name.  Use
+       default_search_name_hash if no special treatment is
+       required.  */
+    unsigned int (*la_search_name_hash) (const char *name);
+
     /* Various operations on varobj.  */
     const struct lang_varobj_ops *la_varobj_ops;
 
@@ -553,16 +565,12 @@ extern int value_true (struct value *);
 
 /* Misc:  The string representing a particular enum language.  */
 
-extern enum language language_enum (char *str);
+extern enum language language_enum (const char *str);
 
 extern const struct language_defn *language_def (enum language);
 
 extern const char *language_str (enum language);
 
-/* Add a language to the set known by GDB (at initialization time).  */
-
-extern void add_language (const struct language_defn *);
-
 /* Check for a language-specific trampoline.  */
 
 extern CORE_ADDR skip_language_trampoline (struct frame_info *, CORE_ADDR pc);
@@ -606,7 +614,72 @@ void default_print_typedef (struct type 
 void default_get_string (struct value *value, gdb_byte **buffer, int *length,
 			 struct type **char_type, const char **charset);
 
+/* Default name hashing function.  */
+
+/* Produce an unsigned hash value from SEARCH_NAME that is consistent
+   with strcmp_iw, strcmp, and, at least on Ada symbols, wild_match.
+   That is, two identifiers equivalent according to any of those three
+   comparison operators hash to the same value.  */
+extern unsigned int default_search_name_hash (const char *search_name);
+
 void c_get_string (struct value *value, gdb_byte **buffer, int *length,
 		   struct type **char_type, const char **charset);
 
+/* The default implementation of la_symbol_name_matcher.  Matches with
+   strncmp_iw.  */
+extern bool default_symbol_name_matcher
+  (const char *symbol_search_name,
+   const lookup_name_info &lookup_name,
+   completion_match_result *comp_match_res);
+
+/* Get LANG's symbol_name_matcher method for LOOKUP_NAME.  Returns
+   default_symbol_name_matcher if not set.  */
+symbol_name_matcher_ftype *language_get_symbol_name_matcher
+  (const language_defn *lang, const lookup_name_info &lookup_name);
+
+/* The languages supported by GDB.  */
+
+extern const struct language_defn auto_language_defn;
+extern const struct language_defn unknown_language_defn;
+extern const struct language_defn minimal_language_defn;
+
+extern const struct language_defn ada_language_defn;
+extern const struct language_defn asm_language_defn;
+extern const struct language_defn c_language_defn;
+extern const struct language_defn cplus_language_defn;
+extern const struct language_defn d_language_defn;
+extern const struct language_defn f_language_defn;
+extern const struct language_defn go_language_defn;
+extern const struct language_defn m2_language_defn;
+extern const struct language_defn objc_language_defn;
+extern const struct language_defn opencl_language_defn;
+extern const struct language_defn pascal_language_defn;
+extern const struct language_defn rust_language_defn;
+
+/* Save the current language and restore it upon destruction.  */
+
+class scoped_restore_current_language
+{
+public:
+
+  explicit scoped_restore_current_language ()
+    : m_lang (current_language->la_language)
+  {
+  }
+
+  ~scoped_restore_current_language ()
+  {
+    set_language (m_lang);
+  }
+
+  scoped_restore_current_language (const scoped_restore_current_language &)
+      = delete;
+  scoped_restore_current_language &operator=
+      (const scoped_restore_current_language &) = delete;
+
+private:
+
+  enum language m_lang;
+};
+
 #endif /* defined (LANGUAGE_H) */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/libiberty.m4 ./gdb/libiberty.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/libiberty.m4	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/libiberty.m4	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 dnl Bits libiberty clients must do on their autoconf step.
 dnl
-dnl Copyright (C) 2012-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2018 Free Software Foundation, Inc.
 dnl
 dnl This file is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/libmcheck.m4 ./gdb/libmcheck.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/libmcheck.m4	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/libmcheck.m4	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2012-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2018 Free Software Foundation, Inc.
 dnl
 dnl This file is part of GDB.
 dnl
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linespec.c ./gdb/linespec.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linespec.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/linespec.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Parser for linespec for the GNU debugger, GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -45,6 +45,36 @@
 #include "stack.h"
 #include "location.h"
 #include "common/function-view.h"
+#include "common/def-vector.h"
+
+/* An enumeration of the various things a user might attempt to
+   complete for a linespec location.  */
+
+enum class linespec_complete_what
+{
+  /* Nothing, no possible completion.  */
+  NOTHING,
+
+  /* A function/method name.  Due to ambiguity between
+
+       (gdb) b source[TAB]
+       source_file.c
+       source_function
+
+     this can also indicate a source filename, iff we haven't seen a
+     separate source filename component, as in "b source.c:function".  */
+  FUNCTION,
+
+  /* A label symbol.  E.g., break file.c:function:LABEL.  */
+  LABEL,
+
+  /* An expression.  E.g., "break foo if EXPR", or "break *EXPR".  */
+  EXPRESSION,
+
+  /* A linespec keyword ("if"/"thread"/"task").
+     E.g., "break func threa<tab>".  */
+  KEYWORD,
+};
 
 typedef struct symbol *symbolp;
 DEF_VEC_P (symbolp);
@@ -144,7 +174,7 @@ struct linespec_state
   /* The 'canonical' value passed to decode_line_full, or NULL.  */
   struct linespec_result *canonical;
 
-  /* Canonical strings that mirror the symtabs_and_lines result.  */
+  /* Canonical strings that mirror the std::vector<symtab_and_line> result.  */
   struct linespec_canonical_name *canonical_names;
 
   /* This is a set of address_entry objects which is used to prevent
@@ -216,9 +246,9 @@ enum ls_token_type
 };
 typedef enum ls_token_type linespec_token_type;
 
-/* List of keywords  */
-
-static const char * const linespec_keywords[] = { "if", "thread", "task" };
+/* List of keywords.  This is NULL-terminated so that it can be used
+   as enum completer.  */
+const char * const linespec_keywords[] = { "if", "thread", "task", NULL };
 #define IF_KEYWORD_INDEX 0
 
 /* A token of the linespec lexer  */
@@ -271,6 +301,29 @@ struct ls_parser
   /* The result of the parse.  */
   struct linespec result;
 #define PARSER_RESULT(PPTR) (&(PPTR)->result)
+
+  /* What the parser believes the current word point should complete
+     to.  */
+  linespec_complete_what complete_what;
+
+  /* The completion word point.  The parser advances this as it skips
+     tokens.  At some point the input string will end or parsing will
+     fail, and then we attempt completion at the captured completion
+     word point, interpreting the string at completion_word as
+     COMPLETE_WHAT.  */
+  const char *completion_word;
+
+  /* If the current token was a quoted string, then this is the
+     quoting character (either " or ').  */
+  int completion_quote_char;
+
+  /* If the current token was a quoted string, then this points at the
+     end of the quoted string.  */
+  const char *completion_quote_end;
+
+  /* If parsing for completion, then this points at the completion
+     tracker.  Otherwise, this is NULL.  */
+  struct completion_tracker *completion_tracker;
 };
 typedef struct ls_parser linespec_parser;
 
@@ -281,7 +334,8 @@ typedef struct ls_parser linespec_parser
 /* Prototypes for local functions.  */
 
 static void iterate_over_file_blocks
-  (struct symtab *symtab, const char *name, domain_enum domain,
+  (struct symtab *symtab, const lookup_name_info &name,
+   domain_enum domain,
    gdb::function_view<symbol_found_callback_ftype> callback);
 
 static void initialize_defaults (struct symtab **default_symtab,
@@ -289,9 +343,9 @@ static void initialize_defaults (struct 
 
 CORE_ADDR linespec_expression_to_pc (const char **exp_ptr);
 
-static struct symtabs_and_lines decode_objc (struct linespec_state *self,
-					     linespec_p ls,
-					     const char *arg);
+static std::vector<symtab_and_line> decode_objc (struct linespec_state *self,
+						 linespec_p ls,
+						 const char *arg);
 
 static VEC (symtab_ptr) *symtabs_from_filename (const char *,
 						struct program_space *pspace);
@@ -299,11 +353,13 @@ static VEC (symtab_ptr) *symtabs_from_fi
 static VEC (symbolp) *find_label_symbols (struct linespec_state *self,
 					  VEC (symbolp) *function_symbols,
 					  VEC (symbolp) **label_funcs_ret,
-					  const char *name);
+					  const char *name,
+					  bool completion_mode = false);
 
 static void find_linespec_symbols (struct linespec_state *self,
 				   VEC (symtab_ptr) *file_symtabs,
 				   const char *name,
+				   symbol_name_match_type name_match_type,
 				   VEC (symbolp) **symbols,
 				   VEC (bound_minimal_symbol_d) **minsyms);
 
@@ -315,31 +371,34 @@ static int symbol_to_sal (struct symtab_
 			  int funfirstline, struct symbol *sym);
 
 static void add_matching_symbols_to_info (const char *name,
+					  symbol_name_match_type name_match_type,
+					  enum search_domain search_domain,
 					  struct collect_info *info,
 					  struct program_space *pspace);
 
 static void add_all_symbol_names_from_pspace (struct collect_info *info,
 					      struct program_space *pspace,
-					      VEC (const_char_ptr) *names);
+					      VEC (const_char_ptr) *names,
+					      enum search_domain search_domain);
 
 static VEC (symtab_ptr) *
   collect_symtabs_from_filename (const char *file,
 				 struct program_space *pspace);
 
-static void decode_digits_ordinary (struct linespec_state *self,
-				    linespec_p ls,
-				    int line,
-				    struct symtabs_and_lines *sals,
-				    struct linetable_entry **best_entry);
-
-static void decode_digits_list_mode (struct linespec_state *self,
-				     linespec_p ls,
-				     struct symtabs_and_lines *values,
-				     struct symtab_and_line val);
+static std::vector<symtab_and_line> decode_digits_ordinary
+  (struct linespec_state *self,
+   linespec_p ls,
+   int line,
+   linetable_entry **best_entry);
+
+static std::vector<symtab_and_line> decode_digits_list_mode
+  (struct linespec_state *self,
+   linespec_p ls,
+   struct symtab_and_line val);
 
 static void minsym_found (struct linespec_state *self, struct objfile *objfile,
 			  struct minimal_symbol *msymbol,
-			  struct symtabs_and_lines *result);
+			  std::vector<symtab_and_line> *result);
 
 static int compare_symbols (const void *a, const void *b);
 
@@ -400,7 +459,7 @@ linespec_lexer_lex_keyword (const char *
 
   if (p != NULL)
     {
-      for (i = 0; i < ARRAY_SIZE (linespec_keywords); ++i)
+      for (i = 0; linespec_keywords[i] != NULL; ++i)
 	{
 	  int len = strlen (linespec_keywords[i]);
 
@@ -420,8 +479,8 @@ linespec_lexer_lex_keyword (const char *
 	      if (i != IF_KEYWORD_INDEX)
 		{
 		  p += len;
-		  p = skip_spaces_const (p);
-		  for (j = 0; j < ARRAY_SIZE (linespec_keywords); ++j)
+		  p = skip_spaces (p);
+		  for (j = 0; linespec_keywords[j] != NULL; ++j)
 		    {
 		      int nextlen = strlen (linespec_keywords[j]);
 
@@ -542,6 +601,30 @@ find_parameter_list_end (const char *inp
   return p;
 }
 
+/* If the [STRING, STRING_LEN) string ends with what looks like a
+   keyword, return the keyword start offset in STRING.  Return -1
+   otherwise.  */
+
+static size_t
+string_find_incomplete_keyword_at_end (const char * const *keywords,
+				       const char *string, size_t string_len)
+{
+  const char *end = string + string_len;
+  const char *p = end;
+
+  while (p > string && *p != ' ')
+    --p;
+  if (p > string)
+    {
+      p++;
+      size_t len = end - p;
+      for (size_t i = 0; keywords[i] != NULL; ++i)
+	if (strncmp (keywords[i], p, len) == 0)
+	  return p - string;
+    }
+
+  return -1;
+}
 
 /* Lex a string from the input in PARSER.  */
 
@@ -589,13 +672,31 @@ linespec_lexer_lex_string (linespec_pars
       /* Skip to the ending quote.  */
       end = skip_quote_char (PARSER_STREAM (parser), quote_char);
 
-      /* Error if the input did not terminate properly.  */
+      /* This helps the completer mode decide whether we have a
+	 complete string.  */
+      parser->completion_quote_char = quote_char;
+      parser->completion_quote_end = end;
+
+      /* Error if the input did not terminate properly, unless in
+	 completion mode.  */
       if (end == NULL)
-	error (_("unmatched quote"));
+	{
+	  if (parser->completion_tracker == NULL)
+	    error (_("unmatched quote"));
 
-      /* Skip over the ending quote and mark the length of the string.  */
-      PARSER_STREAM (parser) = (char *) ++end;
-      LS_TOKEN_STOKEN (token).length = PARSER_STREAM (parser) - 2 - start;
+	  /* In completion mode, we'll try to complete the incomplete
+	     token.  */
+	  token.type = LSTOKEN_STRING;
+	  while (*PARSER_STREAM (parser) != '\0')
+	    PARSER_STREAM (parser)++;
+	  LS_TOKEN_STOKEN (token).length = PARSER_STREAM (parser) - 1 - start;
+	}
+      else
+	{
+	  /* Skip over the ending quote and mark the length of the string.  */
+	  PARSER_STREAM (parser) = (char *) ++end;
+	  LS_TOKEN_STOKEN (token).length = PARSER_STREAM (parser) - 2 - start;
+	}
     }
   else
     {
@@ -613,7 +714,7 @@ linespec_lexer_lex_string (linespec_pars
 	{
 	  if (isspace (*PARSER_STREAM (parser)))
 	    {
-	      p = skip_spaces_const (PARSER_STREAM (parser));
+	      p = skip_spaces (PARSER_STREAM (parser));
 	      /* When we get here we know we've found something followed by
 		 a space (we skip over parens and templates below).
 		 So if we find a keyword now, we know it is a keyword and not,
@@ -644,6 +745,11 @@ linespec_lexer_lex_string (linespec_pars
 	      if (PARSER_STREAM (parser)[1] == ':')
 		++(PARSER_STREAM (parser));
 
+	      /* Do not tokenize ABI tags such as "[abi:cxx11]".  */
+	      else if (PARSER_STREAM (parser) - start > 4
+		       && startswith (PARSER_STREAM (parser) - 4, "[abi"))
+		++(PARSER_STREAM (parser));
+
 	      /* Do not tokenify if the input length so far is one
 		 (i.e, a single-letter drive name) and the next character
 		 is a directory separator.  This allows Windows-style
@@ -673,14 +779,50 @@ linespec_lexer_lex_string (linespec_pars
 	  else if (*PARSER_STREAM (parser) == '<'
 		   || *PARSER_STREAM (parser) == '(')
 	    {
-	      const char *p;
+	      /* Don't interpret 'operator<' / 'operator<<' as a
+		 template parameter list though.  */
+	      if (*PARSER_STREAM (parser) == '<'
+		  && (PARSER_STATE (parser)->language->la_language
+		      == language_cplus)
+		  && (PARSER_STREAM (parser) - start) >= CP_OPERATOR_LEN)
+		{
+		  const char *p = PARSER_STREAM (parser);
 
-	      p = find_parameter_list_end (PARSER_STREAM (parser));
-	      if (p != NULL)
+		  while (p > start && isspace (p[-1]))
+		    p--;
+		  if (p - start >= CP_OPERATOR_LEN)
+		    {
+		      p -= CP_OPERATOR_LEN;
+		      if (strncmp (p, CP_OPERATOR_STR, CP_OPERATOR_LEN) == 0
+			  && (p == start
+			      || !(isalnum (p[-1]) || p[-1] == '_')))
+			{
+			  /* This is an operator name.  Keep going.  */
+			  ++(PARSER_STREAM (parser));
+			  if (*PARSER_STREAM (parser) == '<')
+			    ++(PARSER_STREAM (parser));
+			  continue;
+			}
+		    }
+		}
+
+	      const char *p = find_parameter_list_end (PARSER_STREAM (parser));
+	      PARSER_STREAM (parser) = p;
+
+	      /* Don't loop around to the normal \0 case above because
+		 we don't want to misinterpret a potential keyword at
+		 the end of the token when the string isn't
+		 "()<>"-balanced.  This handles "b
+		 function(thread<tab>" in completion mode.  */
+	      if (*p == '\0')
 		{
-		  PARSER_STREAM (parser) = p;
-		  continue;
+		  LS_TOKEN_STOKEN (token).ptr = start;
+		  LS_TOKEN_STOKEN (token).length
+		    = PARSER_STREAM (parser) - start;
+		  return token;
 		}
+	      else
+		continue;
 	    }
 	  /* Commas are terminators, but not if they are part of an
 	     operator name.  */
@@ -688,10 +830,9 @@ linespec_lexer_lex_string (linespec_pars
 	    {
 	      if ((PARSER_STATE (parser)->language->la_language
 		   == language_cplus)
-		  && (PARSER_STREAM (parser) - start) > 8
-		  /* strlen ("operator") */)
+		  && (PARSER_STREAM (parser) - start) > CP_OPERATOR_LEN)
 		{
-		  const char *p = strstr (start, "operator");
+		  const char *p = strstr (start, CP_OPERATOR_STR);
 
 		  if (p != NULL && is_operator_name (p))
 		    {
@@ -725,7 +866,7 @@ linespec_lexer_lex_one (linespec_parser 
   if (parser->lexer.current.type == LSTOKEN_CONSUMED)
     {
       /* Skip any whitespace.  */
-      PARSER_STREAM (parser) = skip_spaces_const (PARSER_STREAM (parser));
+      PARSER_STREAM (parser) = skip_spaces (PARSER_STREAM (parser));
 
       /* Check for a keyword, they end the linespec.  */
       keyword = linespec_lexer_lex_keyword (PARSER_STREAM (parser));
@@ -799,13 +940,48 @@ linespec_lexer_lex_one (linespec_parser 
 }
 
 /* Consume the current token and return the next token in PARSER's
-   input stream.  */
+   input stream.  Also advance the completion word for completion
+   mode.  */
 
 static linespec_token
 linespec_lexer_consume_token (linespec_parser *parser)
 {
+  gdb_assert (parser->lexer.current.type != LSTOKEN_EOI);
+
+  bool advance_word = (parser->lexer.current.type != LSTOKEN_STRING
+		       || *PARSER_STREAM (parser) != '\0');
+
+  /* If we're moving past a string to some other token, it must be the
+     quote was terminated.  */
+  if (parser->completion_quote_char)
+    {
+      gdb_assert (parser->lexer.current.type == LSTOKEN_STRING);
+
+      /* If the string was the last (non-EOI) token, we're past the
+	 quote, but remember that for later.  */
+      if (*PARSER_STREAM (parser) != '\0')
+	{
+	  parser->completion_quote_char = '\0';
+	  parser->completion_quote_end = NULL;;
+	}
+    }
+
   parser->lexer.current.type = LSTOKEN_CONSUMED;
-  return linespec_lexer_lex_one (parser);
+  linespec_lexer_lex_one (parser);
+
+  if (parser->lexer.current.type == LSTOKEN_STRING)
+    {
+      /* Advance the completion word past a potential initial
+	 quote-char.  */
+      parser->completion_word = LS_TOKEN_STOKEN (parser->lexer.current).ptr;
+    }
+  else if (advance_word)
+    {
+      /* Advance the completion word past any whitespace.  */
+      parser->completion_word = PARSER_STREAM (parser);
+    }
+
+  return parser->lexer.current;
 }
 
 /* Return the next token without consuming the current token.  */
@@ -816,26 +992,21 @@ linespec_lexer_peek_token (linespec_pars
   linespec_token next;
   const char *saved_stream = PARSER_STREAM (parser);
   linespec_token saved_token = parser->lexer.current;
+  int saved_completion_quote_char = parser->completion_quote_char;
+  const char *saved_completion_quote_end = parser->completion_quote_end;
+  const char *saved_completion_word = parser->completion_word;
 
   next = linespec_lexer_consume_token (parser);
   PARSER_STREAM (parser) = saved_stream;
   parser->lexer.current = saved_token;
+  parser->completion_quote_char = saved_completion_quote_char;
+  parser->completion_quote_end = saved_completion_quote_end;
+  parser->completion_word = saved_completion_word;
   return next;
 }
 
 /* Helper functions.  */
 
-/* Add SAL to SALS.  */
-
-static void
-add_sal_to_sals_basic (struct symtabs_and_lines *sals,
-		       struct symtab_and_line *sal)
-{
-  ++sals->nelts;
-  sals->sals = XRESIZEVEC (struct symtab_and_line, sals->sals, sals->nelts);
-  sals->sals[sals->nelts - 1] = *sal;
-}
-
 /* Add SAL to SALS, and also update SELF->CANONICAL_NAMES to reflect
    the new sal, if needed.  If not NULL, SYMNAME is the name of the
    symbol to use when constructing the new canonical name.
@@ -845,19 +1016,20 @@ add_sal_to_sals_basic (struct symtabs_an
 
 static void
 add_sal_to_sals (struct linespec_state *self,
-		 struct symtabs_and_lines *sals,
+		 std::vector<symtab_and_line> *sals,
 		 struct symtab_and_line *sal,
 		 const char *symname, int literal_canonical)
 {
-  add_sal_to_sals_basic (sals, sal);
+  sals->push_back (*sal);
 
   if (self->canonical)
     {
       struct linespec_canonical_name *canonical;
 
       self->canonical_names = XRESIZEVEC (struct linespec_canonical_name,
-					  self->canonical_names, sals->nelts);
-      canonical = &self->canonical_names[sals->nelts - 1];
+					  self->canonical_names,
+					  sals->size ());
+      canonical = &self->canonical_names[sals->size () - 1];
       if (!literal_canonical && sal->symtab)
 	{
 	  symtab_to_fullname (sal->symtab);
@@ -939,19 +1111,16 @@ maybe_add_address (htab_t set, struct pr
 
 static void
 iterate_over_all_matching_symtabs
-  (struct linespec_state *state, const char *name, const domain_enum domain,
+  (struct linespec_state *state,
+   const lookup_name_info &lookup_name,
+   const domain_enum name_domain,
+   enum search_domain search_domain,
    struct program_space *search_pspace, bool include_inline,
    gdb::function_view<symbol_found_callback_ftype> callback)
 {
   struct objfile *objfile;
   struct program_space *pspace;
 
-  /* The routine to be used for comparison.  */
-  symbol_name_cmp_ftype symbol_name_cmp
-    = (state->language->la_get_symbol_name_cmp != NULL
-       ? state->language->la_get_symbol_name_cmp (name)
-       : strcmp_iw);
-
   ALL_PSPACES (pspace)
   {
     if (search_pspace != NULL && search_pspace != pspace)
@@ -966,21 +1135,17 @@ iterate_over_all_matching_symtabs
       struct compunit_symtab *cu;
 
       if (objfile->sf)
-	objfile->sf->qf->expand_symtabs_matching
-	  (objfile,
-	   NULL,
-	   [&] (const char *symbol_name)
-	   {
-	     return symbol_name_cmp (symbol_name, name) == 0;
-	   },
-	   NULL,
-	   ALL_DOMAIN);
+	objfile->sf->qf->expand_symtabs_matching (objfile,
+						  NULL,
+						  lookup_name,
+						  NULL, NULL,
+						  search_domain);
 
       ALL_OBJFILE_COMPUNITS (objfile, cu)
 	{
 	  struct symtab *symtab = COMPUNIT_FILETABS (cu);
 
-	  iterate_over_file_blocks (symtab, name, domain, callback);
+	  iterate_over_file_blocks (symtab, lookup_name, name_domain, callback);
 
 	  if (include_inline)
 	    {
@@ -993,7 +1158,7 @@ iterate_over_all_matching_symtabs
 		{
 		  block = BLOCKVECTOR_BLOCK (SYMTAB_BLOCKVECTOR (symtab), i);
 		  state->language->la_iterate_over_symbols
-		    (block, name, domain, [&] (symbol *sym)
+		    (block, lookup_name, name_domain, [&] (symbol *sym)
 		     {
 		       /* Restrict calls to CALLBACK to symbols
 			  representing inline symbols only.  */
@@ -1030,8 +1195,8 @@ get_current_search_block (void)
 
 static void
 iterate_over_file_blocks
-  (struct symtab *symtab, const char *name, domain_enum domain,
-   gdb::function_view<symbol_found_callback_ftype> callback)
+  (struct symtab *symtab, const lookup_name_info &name,
+   domain_enum domain, gdb::function_view<symbol_found_callback_ftype> callback)
 {
   struct block *block;
 
@@ -1041,12 +1206,12 @@ iterate_over_file_blocks
     LA_ITERATE_OVER_SYMBOLS (block, name, domain, callback);
 }
 
-/* A helper for find_method.  This finds all methods in type T which
-   match NAME.  It adds matching symbol names to RESULT_NAMES, and
-   adds T's direct superclasses to SUPERCLASSES.  */
+/* A helper for find_method.  This finds all methods in type T of
+   language T_LANG which match NAME.  It adds matching symbol names to
+   RESULT_NAMES, and adds T's direct superclasses to SUPERCLASSES.  */
 
 static void
-find_methods (struct type *t, const char *name,
+find_methods (struct type *t, enum language t_lang, const char *name,
 	      VEC (const_char_ptr) **result_names,
 	      VEC (typep) **superclasses)
 {
@@ -1059,6 +1224,9 @@ find_methods (struct type *t, const char
   if (class_name)
     {
       int method_counter;
+      lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
+      symbol_name_matcher_ftype *symbol_name_compare
+	= language_get_symbol_name_matcher (language_def (t_lang), lookup_name);
 
       t = check_typedef (t);
 
@@ -1083,7 +1251,7 @@ find_methods (struct type *t, const char
 		method_name = dem_opname;
 	    }
 
-	  if (strcmp_iw (method_name, name) == 0)
+	  if (symbol_name_compare (method_name, lookup_name, NULL))
 	    {
 	      int field_counter;
 
@@ -1112,7 +1280,7 @@ find_methods (struct type *t, const char
 /* Find an instance of the character C in the string S that is outside
    of all parenthesis pairs, single-quoted strings, and double-quoted
    strings.  Also, ignore the char within a template name, like a ','
-   within foo<int, int>.  */
+   within foo<int, int>, while considering C++ operator</operator<<.  */
 
 const char *
 find_toplevel_char (const char *s, char c)
@@ -1140,6 +1308,47 @@ find_toplevel_char (const char *s, char 
 	depth++;
       else if ((*scan == ')' || *scan == '>') && depth > 0)
 	depth--;
+      else if (*scan == 'o' && !quoted && depth == 0)
+	{
+	  /* Handle C++ operator names.  */
+	  if (strncmp (scan, CP_OPERATOR_STR, CP_OPERATOR_LEN) == 0)
+	    {
+	      scan += CP_OPERATOR_LEN;
+	      if (*scan == c)
+		return scan;
+	      while (isspace (*scan))
+		{
+		  ++scan;
+		  if (*scan == c)
+		    return scan;
+		}
+	      if (*scan == '\0')
+		break;
+
+	      switch (*scan)
+		{
+		  /* Skip over one less than the appropriate number of
+		     characters: the for loop will skip over the last
+		     one.  */
+		case '<':
+		  if (scan[1] == '<')
+		    {
+		      scan++;
+		      if (*scan == c)
+			return scan;
+		    }
+		  break;
+		case '>':
+		  if (scan[1] == '>')
+		    {
+		      scan++;
+		      if (*scan == c)
+			return scan;
+		    }
+		  break;
+		}
+	    }
+	}
     }
 
   return 0;
@@ -1193,7 +1402,7 @@ canonical_to_fullform (const struct line
 
 static void
 filter_results (struct linespec_state *self,
-		struct symtabs_and_lines *result,
+		std::vector<symtab_and_line> *result,
 		VEC (const_char_ptr) *filters)
 {
   int i;
@@ -1201,12 +1410,9 @@ filter_results (struct linespec_state *s
 
   for (i = 0; VEC_iterate (const_char_ptr, filters, i, name); ++i)
     {
-      struct linespec_sals lsal;
-      int j;
+      linespec_sals lsal;
 
-      memset (&lsal, 0, sizeof (lsal));
-
-      for (j = 0; j < result->nelts; ++j)
+      for (size_t j = 0; j < result->size (); ++j)
 	{
 	  const struct linespec_canonical_name *canonical;
 	  char *fullform;
@@ -1217,15 +1423,15 @@ filter_results (struct linespec_state *s
 	  cleanup = make_cleanup (xfree, fullform);
 
 	  if (strcmp (name, fullform) == 0)
-	    add_sal_to_sals_basic (&lsal.sals, &result->sals[j]);
+	    lsal.sals.push_back ((*result)[j]);
 
 	  do_cleanups (cleanup);
 	}
 
-      if (lsal.sals.nelts > 0)
+      if (!lsal.sals.empty ())
 	{
 	  lsal.canonical = xstrdup (name);
-	  VEC_safe_push (linespec_sals, self->canonical->sals, &lsal);
+	  self->canonical->lsals.push_back (std::move (lsal));
 	}
     }
 
@@ -1236,13 +1442,13 @@ filter_results (struct linespec_state *s
 
 static void
 convert_results_to_lsals (struct linespec_state *self,
-			  struct symtabs_and_lines *result)
+			  std::vector<symtab_and_line> *result)
 {
   struct linespec_sals lsal;
 
   lsal.canonical = NULL;
-  lsal.sals = *result;
-  VEC_safe_push (linespec_sals, self->canonical->sals, &lsal);
+  lsal.sals = std::move (*result);
+  self->canonical->lsals.push_back (std::move (lsal));
 }
 
 /* A structure that contains two string representations of a struct
@@ -1290,7 +1496,7 @@ decode_line_2_compare_items (const void 
 
 static void
 decode_line_2 (struct linespec_state *self,
-	       struct symtabs_and_lines *result,
+	       std::vector<symtab_and_line> *result,
 	       const char *select_mode)
 {
   char *args;
@@ -1303,12 +1509,12 @@ decode_line_2 (struct linespec_state *se
 
   gdb_assert (select_mode != multiple_symbols_all);
   gdb_assert (self->canonical != NULL);
-  gdb_assert (result->nelts >= 1);
+  gdb_assert (!result->empty ());
 
   old_chain = make_cleanup (VEC_cleanup (const_char_ptr), &filters);
 
   /* Prepare ITEMS array.  */
-  items_count = result->nelts;
+  items_count = result->size ();
   items = XNEWVEC (struct decode_line_2_item, items_count);
   make_cleanup (xfree, items);
   for (i = 0; i < items_count; ++i)
@@ -1522,6 +1728,17 @@ source_file_not_found_error (const char 
   throw_error (NOT_FOUND_ERROR, _("No source file named %s."), name);
 }
 
+/* Unless at EIO, save the current stream position as completion word
+   point, and consume the next token.  */
+
+static linespec_token
+save_stream_and_consume_token (linespec_parser *parser)
+{
+  if (linespec_lexer_peek_token (parser).type != LSTOKEN_EOI)
+    parser->completion_word = PARSER_STREAM (parser);
+  return linespec_lexer_consume_token (parser);
+}
+
 /* See description in linespec.h.  */
 
 struct line_offset
@@ -1549,6 +1766,26 @@ linespec_parse_line_offset (const char *
   return line_offset;
 }
 
+/* In completion mode, if the user is still typing the number, there's
+   no possible completion to offer.  But if there's already input past
+   the number, setup to expect NEXT.  */
+
+static void
+set_completion_after_number (linespec_parser *parser,
+			     linespec_complete_what next)
+{
+  if (*PARSER_STREAM (parser) == ' ')
+    {
+      parser->completion_word = skip_spaces (PARSER_STREAM (parser) + 1);
+      parser->complete_what = next;
+    }
+  else
+    {
+      parser->completion_word = PARSER_STREAM (parser);
+      parser->complete_what = linespec_complete_what::NOTHING;
+    }
+}
+
 /* Parse the basic_spec in PARSER's input.  */
 
 static void
@@ -1564,11 +1801,20 @@ linespec_parse_basic (linespec_parser *p
   token = linespec_lexer_lex_one (parser);
 
   /* If it is EOI or KEYWORD, issue an error.  */
-  if (token.type == LSTOKEN_KEYWORD || token.type == LSTOKEN_EOI)
-    unexpected_linespec_error (parser);
+  if (token.type == LSTOKEN_KEYWORD)
+    {
+      parser->complete_what = linespec_complete_what::NOTHING;
+      unexpected_linespec_error (parser);
+    }
+  else if (token.type == LSTOKEN_EOI)
+    {
+      unexpected_linespec_error (parser);
+    }
   /* If it is a LSTOKEN_NUMBER, we have an offset.  */
   else if (token.type == LSTOKEN_NUMBER)
     {
+      set_completion_after_number (parser, linespec_complete_what::KEYWORD);
+
       /* Record the line offset and get the next token.  */
       name = copy_token_string (token);
       cleanup = make_cleanup (xfree, name);
@@ -1580,7 +1826,10 @@ linespec_parse_basic (linespec_parser *p
 
       /* If the next token is a comma, stop parsing and return.  */
       if (token.type == LSTOKEN_COMMA)
-	return;
+	{
+	  parser->complete_what = linespec_complete_what::NOTHING;
+	  return;
+	}
 
       /* If the next token is anything but EOI or KEYWORD, issue
 	 an error.  */
@@ -1593,16 +1842,66 @@ linespec_parse_basic (linespec_parser *p
 
   /* Next token must be LSTOKEN_STRING.  */
   if (token.type != LSTOKEN_STRING)
-    unexpected_linespec_error (parser);
+    {
+      parser->complete_what = linespec_complete_what::NOTHING;
+      unexpected_linespec_error (parser);
+    }
 
   /* The current token will contain the name of a function, method,
      or label.  */
-  name  = copy_token_string (token);
-  cleanup = make_cleanup (xfree, name);
+  name = copy_token_string (token);
+  cleanup = make_cleanup (free_current_contents, &name);
+
+  if (parser->completion_tracker != NULL)
+    {
+      /* If the function name ends with a ":", then this may be an
+	 incomplete "::" scope operator instead of a label separator.
+	 E.g.,
+	   "b klass:<tab>"
+	 which should expand to:
+	   "b klass::method()"
+
+	 Do a tentative completion assuming the later.  If we find
+	 completions, advance the stream past the colon token and make
+	 it part of the function name/token.  */
+
+      if (!parser->completion_quote_char
+	  && strcmp (PARSER_STREAM (parser), ":") == 0)
+	{
+	  completion_tracker tmp_tracker;
+	  const char *source_filename
+	    = PARSER_EXPLICIT (parser)->source_filename;
+	  symbol_name_match_type match_type
+	    = PARSER_EXPLICIT (parser)->func_name_match_type;
+
+	  linespec_complete_function (tmp_tracker,
+				      parser->completion_word,
+				      match_type,
+				      source_filename);
+
+	  if (tmp_tracker.have_completions ())
+	    {
+	      PARSER_STREAM (parser)++;
+	      LS_TOKEN_STOKEN (token).length++;
+
+	      xfree (name);
+	      name = savestring (parser->completion_word,
+				 (PARSER_STREAM (parser)
+				  - parser->completion_word));
+	    }
+	}
+
+      PARSER_EXPLICIT (parser)->function_name = name;
+      discard_cleanups (cleanup);
+    }
+  else
+    {
+      /* XXX Reindent before pushing.  */
 
   /* Try looking it up as a function/method.  */
   find_linespec_symbols (PARSER_STATE (parser),
 			 PARSER_RESULT (parser)->file_symtabs, name,
+			 PARSER_EXPLICIT (parser)->func_name_match_type,
 			 &symbols, &minimal_symbols);
 
   if (symbols != NULL || minimal_symbols != NULL)
@@ -1658,11 +1957,19 @@ linespec_parse_basic (linespec_parser *p
 	  return;
 	}
     }
+    }
+
+  int previous_qc = parser->completion_quote_char;
 
   /* Get the next token.  */
   token = linespec_lexer_consume_token (parser);
 
-  if (token.type == LSTOKEN_COLON)
+  if (token.type == LSTOKEN_EOI)
+    {
+      if (previous_qc && !parser->completion_quote_char)
+	parser->complete_what = linespec_complete_what::KEYWORD;
+    }
+  else if (token.type == LSTOKEN_COLON)
     {
       /* User specified a label or a lineno.  */
       token = linespec_lexer_consume_token (parser);
@@ -1671,17 +1978,56 @@ linespec_parse_basic (linespec_parser *p
 	{
 	  /* User specified an offset.  Record the line offset and
 	     get the next token.  */
+	  set_completion_after_number (parser, linespec_complete_what::KEYWORD);
+
 	  name = copy_token_string (token);
 	  cleanup = make_cleanup (xfree, name);
 	  PARSER_EXPLICIT (parser)->line_offset
 	    = linespec_parse_line_offset (name);
 	  do_cleanups (cleanup);
 
-	  /* Ge the next token.  */
+	  /* Get the next token.  */
 	  token = linespec_lexer_consume_token (parser);
 	}
+      else if (token.type == LSTOKEN_EOI && parser->completion_tracker != NULL)
+	{
+	  parser->complete_what = linespec_complete_what::LABEL;
+	}
       else if (token.type == LSTOKEN_STRING)
 	{
+	  parser->complete_what = linespec_complete_what::LABEL;
+
+	  /* If we have text after the label separated by whitespace
+	     (e.g., "b func():lab i<tab>"), don't consider it part of
+	     the label.  In completion mode that should complete to
+	     "if", in normal mode, the 'i' should be treated as
+	     garbage.  */
+	  if (parser->completion_quote_char == '\0')
+	    {
+	      const char *ptr = LS_TOKEN_STOKEN (token).ptr;
+	      for (size_t i = 0; i < LS_TOKEN_STOKEN (token).length; i++)
+		{
+		  if (ptr[i] == ' ')
+		    {
+		      LS_TOKEN_STOKEN (token).length = i;
+		      PARSER_STREAM (parser) = skip_spaces (ptr + i + 1);
+		      break;
+		    }
+		}
+	    }
+
+	  if (parser->completion_tracker != NULL)
+	    {
+	      if (PARSER_STREAM (parser)[-1] == ' ')
+		{
+		  parser->completion_word = PARSER_STREAM (parser);
+		  parser->complete_what = linespec_complete_what::KEYWORD;
+		}
+	    }
+	  else
+	    {
+	      /* XXX Reindent before pushing.  */
+
 	  /* Grab a copy of the label's name and look it up.  */
 	  name = copy_token_string (token);
 	  cleanup = make_cleanup (xfree, name);
@@ -1704,8 +2050,10 @@ linespec_parse_basic (linespec_parser *p
 				     name);
 	    }
 
+	    }
+
 	  /* Check for a line offset.  */
-	  token = linespec_lexer_consume_token (parser);
+	  token = save_stream_and_consume_token (parser);
 	  if (token.type == LSTOKEN_COLON)
 	    {
 	      /* Get the next token.  */
@@ -1715,7 +2063,7 @@ linespec_parse_basic (linespec_parser *p
 	      if (token.type != LSTOKEN_NUMBER)
 		unexpected_linespec_error (parser);
 
-	      /* Record the lione offset and get the next token.  */
+	      /* Record the line offset and get the next token.  */
 	      name = copy_token_string (token);
 	      cleanup = make_cleanup (xfree, name);
 
@@ -1785,18 +2133,12 @@ canonicalize_linespec (struct linespec_s
 
 /* Given a line offset in LS, construct the relevant SALs.  */
 
-static struct symtabs_and_lines
+static std::vector<symtab_and_line>
 create_sals_line_offset (struct linespec_state *self,
 			 linespec_p ls)
 {
-  struct symtabs_and_lines values;
-  struct symtab_and_line val;
   int use_default = 0;
 
-  init_sal (&val);
-  values.sals = NULL;
-  values.nelts = 0;
-
   /* This is where we need to make sure we have good defaults.
      We must guarantee that this section of code is never executed
      when we are called with just a function name, since
@@ -1821,6 +2163,7 @@ create_sals_line_offset (struct linespec
       use_default = 1;
     }
 
+  symtab_and_line val;
   val.line = ls->explicit_loc.line_offset.offset;
   switch (ls->explicit_loc.line_offset.sign)
     {
@@ -1844,27 +2187,20 @@ create_sals_line_offset (struct linespec
       break;			/* No need to adjust val.line.  */
     }
 
+  std::vector<symtab_and_line> values;
   if (self->list_mode)
-    decode_digits_list_mode (self, ls, &values, val);
+    values = decode_digits_list_mode (self, ls, val);
   else
     {
       struct linetable_entry *best_entry = NULL;
-      int *filter;
-      const struct block **blocks;
-      struct cleanup *cleanup;
-      struct symtabs_and_lines intermediate_results;
       int i, j;
 
-      intermediate_results.sals = NULL;
-      intermediate_results.nelts = 0;
-
-      decode_digits_ordinary (self, ls, val.line, &intermediate_results,
-			      &best_entry);
-      if (intermediate_results.nelts == 0 && best_entry != NULL)
-	decode_digits_ordinary (self, ls, best_entry->line,
-				&intermediate_results, &best_entry);
-
-      cleanup = make_cleanup (xfree, intermediate_results.sals);
+      std::vector<symtab_and_line> intermediate_results
+	= decode_digits_ordinary (self, ls, val.line, &best_entry);
+      if (intermediate_results.empty () && best_entry != NULL)
+	intermediate_results = decode_digits_ordinary (self, ls,
+						       best_entry->line,
+						       &best_entry);
 
       /* For optimized code, the compiler can scatter one source line
 	 across disjoint ranges of PC values, even when no duplicate
@@ -1876,24 +2212,22 @@ create_sals_line_offset (struct linespec
 	 above, we see if there are other PCs that are in the same
 	 block.  If yes, the other PCs are filtered out.  */
 
-      filter = XNEWVEC (int, intermediate_results.nelts);
-      make_cleanup (xfree, filter);
-      blocks = XNEWVEC (const struct block *, intermediate_results.nelts);
-      make_cleanup (xfree, blocks);
+      gdb::def_vector<int> filter (intermediate_results.size ());
+      gdb::def_vector<const block *> blocks (intermediate_results.size ());
 
-      for (i = 0; i < intermediate_results.nelts; ++i)
+      for (i = 0; i < intermediate_results.size (); ++i)
 	{
-	  set_current_program_space (intermediate_results.sals[i].pspace);
+	  set_current_program_space (intermediate_results[i].pspace);
 
 	  filter[i] = 1;
-	  blocks[i] = block_for_pc_sect (intermediate_results.sals[i].pc,
-					 intermediate_results.sals[i].section);
+	  blocks[i] = block_for_pc_sect (intermediate_results[i].pc,
+					 intermediate_results[i].section);
 	}
 
-      for (i = 0; i < intermediate_results.nelts; ++i)
+      for (i = 0; i < intermediate_results.size (); ++i)
 	{
 	  if (blocks[i] != NULL)
-	    for (j = i + 1; j < intermediate_results.nelts; ++j)
+	    for (j = i + 1; j < intermediate_results.size (); ++j)
 	      {
 		if (blocks[j] == blocks[i])
 		  {
@@ -1903,7 +2237,7 @@ create_sals_line_offset (struct linespec
 	      }
 	}
 
-      for (i = 0; i < intermediate_results.nelts; ++i)
+      for (i = 0; i < intermediate_results.size (); ++i)
 	if (filter[i])
 	  {
 	    struct symbol *sym = (blocks[i]
@@ -1911,18 +2245,16 @@ create_sals_line_offset (struct linespec
 				  : NULL);
 
 	    if (self->funfirstline)
-	      skip_prologue_sal (&intermediate_results.sals[i]);
+	      skip_prologue_sal (&intermediate_results[i]);
 	    /* Make sure the line matches the request, not what was
 	       found.  */
-	    intermediate_results.sals[i].line = val.line;
-	    add_sal_to_sals (self, &values, &intermediate_results.sals[i],
+	    intermediate_results[i].line = val.line;
+	    add_sal_to_sals (self, &values, &intermediate_results[i],
 			     sym ? SYMBOL_NATURAL_NAME (sym) : NULL, 0);
 	  }
-
-      do_cleanups (cleanup);
     }
 
-  if (values.nelts == 0)
+  if (values.empty ())
     {
       if (ls->explicit_loc.source_filename)
 	throw_error (NOT_FOUND_ERROR, _("No line %d in file \"%s\"."),
@@ -1937,17 +2269,16 @@ create_sals_line_offset (struct linespec
 
 /* Convert the given ADDRESS into SaLs.  */
 
-static struct symtabs_and_lines
+static std::vector<symtab_and_line>
 convert_address_location_to_sals (struct linespec_state *self,
 				  CORE_ADDR address)
 {
-  struct symtab_and_line sal;
-  struct symtabs_and_lines sals = {NULL, 0};
-
-  sal = find_pc_line (address, 0);
+  symtab_and_line sal = find_pc_line (address, 0);
   sal.pc = address;
   sal.section = find_pc_overlay (address);
   sal.explicit_pc = 1;
+
+  std::vector<symtab_and_line> sals;
   add_sal_to_sals (self, &sals, &sal, core_addr_to_string (address), 1);
 
   return sals;
@@ -1955,10 +2286,10 @@ convert_address_location_to_sals (struct
 
 /* Create and return SALs from the linespec LS.  */
 
-static struct symtabs_and_lines
+static std::vector<symtab_and_line>
 convert_linespec_to_sals (struct linespec_state *state, linespec_p ls)
 {
-  struct symtabs_and_lines sals = {NULL, 0};
+  std::vector<symtab_and_line> sals;
 
   if (ls->labels.label_symbols != NULL)
     {
@@ -2048,37 +2379,42 @@ convert_linespec_to_sals (struct linespe
 
   canonicalize_linespec (state, ls);
 
-  if (sals.nelts > 0 && state->canonical != NULL)
+  if (!sals.empty () && state->canonical != NULL)
     state->canonical->pre_expanded = 1;
 
   return sals;
 }
 
-/* Convert the explicit location EXPLICIT_LOC into SaLs.  */
+/* Build RESULT from the explicit location components SOURCE_FILENAME,
+   FUNCTION_NAME, LABEL_NAME and LINE_OFFSET.  */
 
-static struct symtabs_and_lines
-convert_explicit_location_to_sals (struct linespec_state *self,
-				   linespec_p result,
-				   const struct explicit_location *explicit_loc)
+static void
+convert_explicit_location_to_linespec (struct linespec_state *self,
+				       linespec_p result,
+				       const char *source_filename,
+				       const char *function_name,
+				       symbol_name_match_type fname_match_type,
+				       const char *label_name,
+				       struct line_offset line_offset)
 {
   VEC (symbolp) *symbols, *labels;
   VEC (bound_minimal_symbol_d) *minimal_symbols;
 
-  if (explicit_loc->source_filename != NULL)
+  result->explicit_loc.func_name_match_type = fname_match_type;
+
+  if (source_filename != NULL)
     {
       TRY
 	{
 	  result->file_symtabs
-	    = symtabs_from_filename (explicit_loc->source_filename,
-				     self->search_pspace);
+	    = symtabs_from_filename (source_filename, self->search_pspace);
 	}
       CATCH (except, RETURN_MASK_ERROR)
 	{
-	  source_file_not_found_error (explicit_loc->source_filename);
+	  source_file_not_found_error (source_filename);
 	}
       END_CATCH
-      result->explicit_loc.source_filename
-	= xstrdup (explicit_loc->source_filename);
+      result->explicit_loc.source_filename = xstrdup (source_filename);
     }
   else
     {
@@ -2086,41 +2422,54 @@ convert_explicit_location_to_sals (struc
       VEC_safe_push (symtab_ptr, result->file_symtabs, NULL);
     }
 
-  if (explicit_loc->function_name != NULL)
+  if (function_name != NULL)
     {
       find_linespec_symbols (self, result->file_symtabs,
-			     explicit_loc->function_name, &symbols,
-			     &minimal_symbols);
+			     function_name, fname_match_type,
+			     &symbols, &minimal_symbols);
 
       if (symbols == NULL && minimal_symbols == NULL)
-	symbol_not_found_error (explicit_loc->function_name,
+	symbol_not_found_error (function_name,
 				result->explicit_loc.source_filename);
 
-      result->explicit_loc.function_name
-	= xstrdup (explicit_loc->function_name);
+      result->explicit_loc.function_name = xstrdup (function_name);
       result->function_symbols = symbols;
       result->minimal_symbols = minimal_symbols;
     }
 
-  if (explicit_loc->label_name != NULL)
+  if (label_name != NULL)
     {
       symbols = NULL;
       labels = find_label_symbols (self, result->function_symbols,
-				   &symbols, explicit_loc->label_name);
+				   &symbols, label_name);
 
       if (labels == NULL)
 	undefined_label_error (result->explicit_loc.function_name,
-			       explicit_loc->label_name);
+			       label_name);
 
-      result->explicit_loc.label_name = xstrdup (explicit_loc->label_name);
+      result->explicit_loc.label_name = xstrdup (label_name);
       result->labels.label_symbols = labels;
       result->labels.function_symbols = symbols;
     }
 
-  if (explicit_loc->line_offset.sign != LINE_OFFSET_UNKNOWN)
-    result->explicit_loc.line_offset = explicit_loc->line_offset;
+  if (line_offset.sign != LINE_OFFSET_UNKNOWN)
+    result->explicit_loc.line_offset = line_offset;
+}
 
-   return convert_linespec_to_sals (self, result);
+/* Convert the explicit location EXPLICIT_LOC into SaLs.  */
+
+static std::vector<symtab_and_line>
+convert_explicit_location_to_sals (struct linespec_state *self,
+				   linespec_p result,
+				   const struct explicit_location *explicit_loc)
+{
+  convert_explicit_location_to_linespec (self, result,
+					 explicit_loc->source_filename,
+					 explicit_loc->function_name,
+					 explicit_loc->func_name_match_type,
+					 explicit_loc->label_name,
+					 explicit_loc->line_offset);
+  return convert_linespec_to_sals (self, result);
 }
 
 /* Parse a string that specifies a linespec.
@@ -2171,13 +2520,14 @@ convert_explicit_location_to_sals (struc
    if no file is validly specified.  Callers must check that.
    Also, the line number returned may be invalid.  */
 
-/* Parse the linespec in ARG.  */
+/* Parse the linespec in ARG.  MATCH_TYPE indicates how function names
+   should be matched.  */
 
-static struct symtabs_and_lines
-parse_linespec (linespec_parser *parser, const char *arg)
+static std::vector<symtab_and_line>
+parse_linespec (linespec_parser *parser, const char *arg,
+		symbol_name_match_type match_type)
 {
   linespec_token token;
-  struct symtabs_and_lines values;
   struct gdb_exception file_exception = exception_none;
   struct cleanup *cleanup;
 
@@ -2185,7 +2535,8 @@ parse_linespec (linespec_parser *parser,
      IDEs to work around bugs in the previous parser by quoting
      the entire linespec, so we attempt to deal with this nicely.  */
   parser->is_quote_enclosed = 0;
-  if (!is_ada_operator (arg)
+  if (parser->completion_tracker == NULL
+      && !is_ada_operator (arg)
       && strchr (linespec_quote_characters, *arg) != NULL)
     {
       const char *end;
@@ -2202,20 +2553,36 @@ parse_linespec (linespec_parser *parser,
 
   parser->lexer.saved_arg = arg;
   parser->lexer.stream = arg;
+  parser->completion_word = arg;
+  parser->complete_what = linespec_complete_what::FUNCTION;
+  PARSER_EXPLICIT (parser)->func_name_match_type = match_type;
 
   /* Initialize the default symtab and line offset.  */
   initialize_defaults (&PARSER_STATE (parser)->default_symtab,
 		       &PARSER_STATE (parser)->default_line);
 
   /* Objective-C shortcut.  */
-  values = decode_objc (PARSER_STATE (parser), PARSER_RESULT (parser), arg);
-  if (values.sals != NULL)
-    return values;
+  if (parser->completion_tracker == NULL)
+    {
+      std::vector<symtab_and_line> values
+	= decode_objc (PARSER_STATE (parser), PARSER_RESULT (parser), arg);
+      if (!values.empty ())
+	return values;
+    }
+  else
+    {
+      /* "-"/"+" is either an objc selector, or a number.  There's
+	 nothing to complete the latter to, so just let the caller
+	 complete on functions, which finds objc selectors, if there's
+	 any.  */
+      if ((arg[0] == '-' || arg[0] == '+') && arg[1] == '\0')
+	return {};
+    }
 
   /* Start parsing.  */
 
   /* Get the first token.  */
-  token = linespec_lexer_lex_one (parser);
+  token = linespec_lexer_consume_token (parser);
 
   /* It must be either LSTOKEN_STRING or LSTOKEN_NUMBER.  */
   if (token.type == LSTOKEN_STRING && *LS_TOKEN_STOKEN (token).ptr == '$')
@@ -2223,7 +2590,8 @@ parse_linespec (linespec_parser *parser,
       char *var;
 
       /* A NULL entry means to use GLOBAL_DEFAULT_SYMTAB.  */
-      VEC_safe_push (symtab_ptr, PARSER_RESULT (parser)->file_symtabs, NULL);
+      if (parser->completion_tracker == NULL)
+	VEC_safe_push (symtab_ptr, PARSER_RESULT (parser)->file_symtabs, NULL);
 
       /* User specified a convenience variable or history value.  */
       var = copy_token_string (token);
@@ -2242,8 +2610,16 @@ parse_linespec (linespec_parser *parser,
 	  goto convert_to_sals;
 	}
     }
+  else if (token.type == LSTOKEN_EOI && parser->completion_tracker != NULL)
+    {
+      /* Let the default linespec_complete_what::FUNCTION kick in.  */
+      unexpected_linespec_error (parser);
+    }
   else if (token.type != LSTOKEN_STRING && token.type != LSTOKEN_NUMBER)
-    unexpected_linespec_error (parser);
+    {
+      parser->complete_what = linespec_complete_what::NOTHING;
+      unexpected_linespec_error (parser);
+    }
 
   /* Shortcut: If the next token is not LSTOKEN_COLON, we know that
      this token cannot represent a filename.  */
@@ -2291,8 +2667,9 @@ parse_linespec (linespec_parser *parser,
 	}
     }
   /* If the next token is not EOI, KEYWORD, or COMMA, issue an error.  */
-  else if (token.type != LSTOKEN_EOI && token.type != LSTOKEN_KEYWORD
-	   && token.type != LSTOKEN_COMMA)
+  else if (parser->completion_tracker == NULL
+	   && (token.type != LSTOKEN_EOI && token.type != LSTOKEN_KEYWORD
+	       && token.type != LSTOKEN_COMMA))
     {
       /* TOKEN is the _next_ token, not the one currently in the parser.
 	 Consuming the token will give the correct error message.  */
@@ -2308,7 +2685,8 @@ parse_linespec (linespec_parser *parser,
   /* Parse the rest of the linespec.  */
   linespec_parse_basic (parser);
 
-  if (PARSER_RESULT (parser)->function_symbols == NULL
+  if (parser->completion_tracker == NULL
+      && PARSER_RESULT (parser)->function_symbols == NULL
       && PARSER_RESULT (parser)->labels.label_symbols == NULL
       && PARSER_EXPLICIT (parser)->line_offset.sign == LINE_OFFSET_UNKNOWN
       && PARSER_RESULT (parser)->minimal_symbols == NULL)
@@ -2329,13 +2707,23 @@ parse_linespec (linespec_parser *parser,
      if necessary.  */
   token = linespec_lexer_lex_one (parser);
   if (token.type != LSTOKEN_EOI && token.type != LSTOKEN_KEYWORD)
-    PARSER_STREAM (parser) = LS_TOKEN_STOKEN (token).ptr;
+    unexpected_linespec_error (parser);
+  else if (token.type == LSTOKEN_KEYWORD)
+    {
+      /* Setup the completion word past the keyword.  Lexing never
+	 advances past a keyword automatically, so skip it
+	 manually.  */
+      parser->completion_word
+	= skip_spaces (skip_to_space (PARSER_STREAM (parser)));
+      parser->complete_what = linespec_complete_what::EXPRESSION;
+    }
 
   /* Convert the data in PARSER_RESULT to SALs.  */
-  values = convert_linespec_to_sals (PARSER_STATE (parser),
+  if (parser->completion_tracker == NULL)
+    return convert_linespec_to_sals (PARSER_STATE (parser),
 				     PARSER_RESULT (parser));
 
-  return values;
+  return {};
 }
 
 
@@ -2376,6 +2764,8 @@ linespec_parser_new (linespec_parser *pa
   memset (parser, 0, sizeof (linespec_parser));
   parser->lexer.current.type = LSTOKEN_CONSUMED;
   memset (PARSER_RESULT (parser), 0, sizeof (struct linespec));
+  PARSER_EXPLICIT (parser)->func_name_match_type
+    = symbol_name_match_type::WILD;
   PARSER_EXPLICIT (parser)->line_offset.sign = LINE_OFFSET_UNKNOWN;
   linespec_state_constructor (PARSER_STATE (parser), flags, language,
 			      search_pspace,
@@ -2422,7 +2812,7 @@ linespec_parser_delete (void *arg)
 /* See description in linespec.h.  */
 
 void
-linespec_lex_to_end (char **stringp)
+linespec_lex_to_end (const char **stringp)
 {
   linespec_parser parser;
   struct cleanup *cleanup;
@@ -2452,14 +2842,361 @@ linespec_lex_to_end (char **stringp)
   do_cleanups (cleanup);
 }
 
+/* See linespec.h.  */
+
+void
+linespec_complete_function (completion_tracker &tracker,
+			    const char *function,
+			    symbol_name_match_type func_match_type,
+			    const char *source_filename)
+{
+  complete_symbol_mode mode = complete_symbol_mode::LINESPEC;
+
+  if (source_filename != NULL)
+    {
+      collect_file_symbol_completion_matches (tracker, mode, func_match_type,
+					      function, function, source_filename);
+    }
+  else
+    {
+      collect_symbol_completion_matches (tracker, mode, func_match_type,
+					 function, function);
+
+    }
+}
+
+/* Helper for complete_linespec to simplify it.  SOURCE_FILENAME is
+   only meaningful if COMPONENT is FUNCTION.  */
+
+static void
+complete_linespec_component (linespec_parser *parser,
+			     completion_tracker &tracker,
+			     const char *text,
+			     linespec_complete_what component,
+			     const char *source_filename)
+{
+  if (component == linespec_complete_what::KEYWORD)
+    {
+      complete_on_enum (tracker, linespec_keywords, text, text);
+    }
+  else if (component == linespec_complete_what::EXPRESSION)
+    {
+      const char *word
+	= advance_to_expression_complete_word_point (tracker, text);
+      complete_expression (tracker, text, word);
+    }
+  else if (component == linespec_complete_what::FUNCTION)
+    {
+      completion_list fn_list;
+
+      symbol_name_match_type match_type
+	= PARSER_EXPLICIT (parser)->func_name_match_type;
+      linespec_complete_function (tracker, text, match_type, source_filename);
+      if (source_filename == NULL)
+	{
+	  /* Haven't seen a source component, like in "b
+	     file.c:function[TAB]".  Maybe this wasn't a function, but
+	     a filename instead, like "b file.[TAB]".  */
+	  fn_list = complete_source_filenames (text);
+	}
+
+      /* If we only have a single filename completion, append a ':' for
+	 the user, since that's the only thing that can usefully follow
+	 the filename.  */
+      if (fn_list.size () == 1 && !tracker.have_completions ())
+	{
+	  char *fn = fn_list[0].release ();
+
+	  /* If we also need to append a quote char, it needs to be
+	     appended before the ':'.  Append it now, and make ':' the
+	     new "quote" char.  */
+	  if (tracker.quote_char ())
+	    {
+	      char quote_char_str[2] = { tracker.quote_char () };
+
+	      fn = reconcat (fn, fn, quote_char_str, (char *) NULL);
+	      tracker.set_quote_char (':');
+	    }
+	  else
+	    fn = reconcat (fn, fn, ":", (char *) NULL);
+	  fn_list[0].reset (fn);
+
+	  /* Tell readline to skip appending a space.  */
+	  tracker.set_suppress_append_ws (true);
+	}
+      tracker.add_completions (std::move (fn_list));
+    }
+}
+
+/* Helper for linespec_complete_label.  Find labels that match
+   LABEL_NAME in the function symbols listed in the PARSER, and add
+   them to the tracker.  */
+
+static void
+complete_label (completion_tracker &tracker,
+		linespec_parser *parser,
+		const char *label_name)
+{
+  VEC (symbolp) *label_function_symbols = NULL;
+  VEC (symbolp) *labels
+    = find_label_symbols (PARSER_STATE (parser),
+			  PARSER_RESULT (parser)->function_symbols,
+			  &label_function_symbols,
+			  label_name, true);
+
+  symbol *label;
+  for (int ix = 0;
+       VEC_iterate (symbolp, labels, ix, label); ++ix)
+    {
+      char *match = xstrdup (SYMBOL_SEARCH_NAME (label));
+      tracker.add_completion (gdb::unique_xmalloc_ptr<char> (match));
+    }
+  VEC_free (symbolp, labels);
+}
+
+/* See linespec.h.  */
+
+void
+linespec_complete_label (completion_tracker &tracker,
+			 const struct language_defn *language,
+			 const char *source_filename,
+			 const char *function_name,
+			 symbol_name_match_type func_name_match_type,
+			 const char *label_name)
+{
+  linespec_parser parser;
+  struct cleanup *cleanup;
+
+  linespec_parser_new (&parser, 0, language, NULL, NULL, 0, NULL);
+  cleanup = make_cleanup (linespec_parser_delete, &parser);
+
+  line_offset unknown_offset = { 0, LINE_OFFSET_UNKNOWN };
+
+  TRY
+    {
+      convert_explicit_location_to_linespec (PARSER_STATE (&parser),
+					     PARSER_RESULT (&parser),
+					     source_filename,
+					     function_name,
+					     func_name_match_type,
+					     NULL, unknown_offset);
+    }
+  CATCH (ex, RETURN_MASK_ERROR)
+    {
+      do_cleanups (cleanup);
+      return;
+    }
+  END_CATCH
+
+  complete_label (tracker, &parser, label_name);
+
+  do_cleanups (cleanup);
+}
+
+/* See description in linespec.h.  */
+
+void
+linespec_complete (completion_tracker &tracker, const char *text,
+		   symbol_name_match_type match_type)
+{
+  linespec_parser parser;
+  struct cleanup *cleanup;
+  const char *orig = text;
+
+  linespec_parser_new (&parser, 0, current_language, NULL, NULL, 0, NULL);
+  cleanup = make_cleanup (linespec_parser_delete, &parser);
+  parser.lexer.saved_arg = text;
+  PARSER_EXPLICIT (&parser)->func_name_match_type = match_type;
+  PARSER_STREAM (&parser) = text;
+
+  parser.completion_tracker = &tracker;
+  PARSER_STATE (&parser)->is_linespec = 1;
+
+  /* Parse as much as possible.  parser.completion_word will hold
+     furthest completion point we managed to parse to.  */
+  TRY
+    {
+      parse_linespec (&parser, text, match_type);
+    }
+  CATCH (except, RETURN_MASK_ERROR)
+    {
+    }
+  END_CATCH
+
+  if (parser.completion_quote_char != '\0'
+      && parser.completion_quote_end != NULL
+      && parser.completion_quote_end[1] == '\0')
+    {
+      /* If completing a quoted string with the cursor right at
+	 terminating quote char, complete the completion word without
+	 interpretation, so that readline advances the cursor one
+	 whitespace past the quote, even if there's no match.  This
+	 makes these cases behave the same:
+
+	   before: "b function()"
+	   after:  "b function() "
+
+	   before: "b 'function()'"
+	   after:  "b 'function()' "
+
+	 and trusts the user in this case:
+
+	   before: "b 'not_loaded_function_yet()'"
+	   after:  "b 'not_loaded_function_yet()' "
+      */
+      parser.complete_what = linespec_complete_what::NOTHING;
+      parser.completion_quote_char = '\0';
+
+      gdb::unique_xmalloc_ptr<char> text_copy
+	(xstrdup (parser.completion_word));
+      tracker.add_completion (std::move (text_copy));
+    }
+
+  tracker.set_quote_char (parser.completion_quote_char);
+
+  if (parser.complete_what == linespec_complete_what::LABEL)
+    {
+      parser.complete_what = linespec_complete_what::NOTHING;
+
+      const char *func_name = PARSER_EXPLICIT (&parser)->function_name;
+
+      VEC (symbolp) *function_symbols;
+      VEC (bound_minimal_symbol_d) *minimal_symbols;
+      find_linespec_symbols (PARSER_STATE (&parser),
+			     PARSER_RESULT (&parser)->file_symtabs,
+			     func_name, match_type,
+			     &function_symbols, &minimal_symbols);
+
+      PARSER_RESULT (&parser)->function_symbols = function_symbols;
+      PARSER_RESULT (&parser)->minimal_symbols = minimal_symbols;
+
+      complete_label (tracker, &parser, parser.completion_word);
+    }
+  else if (parser.complete_what == linespec_complete_what::FUNCTION)
+    {
+      /* While parsing/lexing, we didn't know whether the completion
+	 word completes to a unique function/source name already or
+	 not.
+
+	 E.g.:
+	   "b function() <tab>"
+	 may need to complete either to:
+	   "b function() const"
+	 or to:
+	   "b function() if/thread/task"
+
+	 Or, this:
+	   "b foo t"
+	 may need to complete either to:
+	   "b foo template_fun<T>()"
+	 with "foo" being the template function's return type, or to:
+	   "b foo thread/task"
+
+	 Or, this:
+	   "b file<TAB>"
+	 may need to complete either to a source file name:
+	   "b file.c"
+	 or this, also a filename, but a unique completion:
+	   "b file.c:"
+	 or to a function name:
+	   "b file_function"
+
+	 Address that by completing assuming source or function, and
+	 seeing if we find a completion that matches exactly the
+	 completion word.  If so, then it must be a function (see note
+	 below) and we advance the completion word to the end of input
+	 and switch to KEYWORD completion mode.
+
+	 Note: if we find a unique completion for a source filename,
+	 then it won't match the completion word, because the LCD will
+	 contain a trailing ':'.  And if we're completing at or after
+	 the ':', then complete_linespec_component won't try to
+	 complete on source filenames.  */
+
+      const char *word = parser.completion_word;
+
+      complete_linespec_component (&parser, tracker,
+				   parser.completion_word,
+				   linespec_complete_what::FUNCTION,
+				   PARSER_EXPLICIT (&parser)->source_filename);
+
+      parser.complete_what = linespec_complete_what::NOTHING;
+
+      if (tracker.quote_char ())
+	{
+	  /* The function/file name was not close-quoted, so this
+	     can't be a keyword.  Note: complete_linespec_component
+	     may have swapped the original quote char for ':' when we
+	     get here, but that still indicates the same.  */
+	}
+      else if (!tracker.have_completions ())
+	{
+	  size_t key_start;
+	  size_t wordlen = strlen (parser.completion_word);
+
+	  key_start
+	    = string_find_incomplete_keyword_at_end (linespec_keywords,
+						     parser.completion_word,
+						     wordlen);
+
+	  if (key_start != -1
+	      || (wordlen > 0
+		  && parser.completion_word[wordlen - 1] == ' '))
+	    {
+	      parser.completion_word += key_start;
+	      parser.complete_what = linespec_complete_what::KEYWORD;
+	    }
+	}
+      else if (tracker.completes_to_completion_word (word))
+	{
+	  /* Skip the function and complete on keywords.  */
+	  parser.completion_word += strlen (word);
+	  parser.complete_what = linespec_complete_what::KEYWORD;
+	  tracker.discard_completions ();
+	}
+    }
+
+  tracker.advance_custom_word_point_by (parser.completion_word - orig);
+
+  complete_linespec_component (&parser, tracker,
+			       parser.completion_word,
+			       parser.complete_what,
+			       PARSER_EXPLICIT (&parser)->source_filename);
+
+  /* If we're past the "filename:function:label:offset" linespec, and
+     didn't find any match, then assume the user might want to create
+     a pending breakpoint anyway and offer the keyword
+     completions.  */
+  if (!parser.completion_quote_char
+      && (parser.complete_what == linespec_complete_what::FUNCTION
+	  || parser.complete_what == linespec_complete_what::LABEL
+	  || parser.complete_what == linespec_complete_what::NOTHING)
+      && !tracker.have_completions ())
+    {
+      const char *end
+	= parser.completion_word + strlen (parser.completion_word);
+
+      if (end > orig && end[-1] == ' ')
+	{
+	  tracker.advance_custom_word_point_by (end - parser.completion_word);
+
+	  complete_linespec_component (&parser, tracker, end,
+				       linespec_complete_what::KEYWORD,
+				       NULL);
+	}
+    }
+
+  do_cleanups (cleanup);
+}
+
 /* A helper function for decode_line_full and decode_line_1 to
-   turn LOCATION into symtabs_and_lines.  */
+   turn LOCATION into std::vector<symtab_and_line>.  */
 
-static struct symtabs_and_lines
+static std::vector<symtab_and_line>
 event_location_to_sals (linespec_parser *parser,
 			const struct event_location *location)
 {
-  struct symtabs_and_lines result = {NULL, 0};
+  std::vector<symtab_and_line> result;
 
   switch (event_location_type (location))
     {
@@ -2468,7 +3205,9 @@ event_location_to_sals (linespec_parser 
 	PARSER_STATE (parser)->is_linespec = 1;
 	TRY
 	  {
-	    result = parse_linespec (parser, get_linespec_location (location));
+	    const linespec_location *ls = get_linespec_location (location);
+	    result = parse_linespec (parser,
+				     ls->spec_string, ls->match_type);
 	  }
 	CATCH (except, RETURN_MASK_ERROR)
 	  {
@@ -2535,7 +3274,6 @@ decode_line_full (const struct event_loc
 		  const char *select_mode,
 		  const char *filter)
 {
-  struct symtabs_and_lines result;
   struct cleanup *cleanups;
   VEC (const_char_ptr) *filters = NULL;
   linespec_parser parser;
@@ -2554,21 +3292,23 @@ decode_line_full (const struct event_loc
 		       search_pspace, default_symtab,
 		       default_line, canonical);
   cleanups = make_cleanup (linespec_parser_delete, &parser);
-  save_current_program_space ();
 
-  result = event_location_to_sals (&parser, location);
+  scoped_restore_current_program_space restore_pspace;
+
+  std::vector<symtab_and_line> result = event_location_to_sals (&parser,
+								location);
   state = PARSER_STATE (&parser);
 
-  gdb_assert (result.nelts == 1 || canonical->pre_expanded);
+  gdb_assert (result.size () == 1 || canonical->pre_expanded);
   canonical->pre_expanded = 1;
 
   /* Arrange for allocated canonical names to be freed.  */
-  if (result.nelts > 0)
+  if (!result.empty ())
     {
       int i;
 
       make_cleanup (xfree, state->canonical_names);
-      for (i = 0; i < result.nelts; ++i)
+      for (i = 0; i < result.size (); ++i)
 	{
 	  gdb_assert (state->canonical_names[i].suffix != NULL);
 	  make_cleanup (xfree, state->canonical_names[i].suffix);
@@ -2602,13 +3342,12 @@ decode_line_full (const struct event_loc
 
 /* See linespec.h.  */
 
-struct symtabs_and_lines
+std::vector<symtab_and_line>
 decode_line_1 (const struct event_location *location, int flags,
 	       struct program_space *search_pspace,
 	       struct symtab *default_symtab,
 	       int default_line)
 {
-  struct symtabs_and_lines result;
   linespec_parser parser;
   struct cleanup *cleanups;
 
@@ -2616,9 +3355,11 @@ decode_line_1 (const struct event_locati
 		       search_pspace, default_symtab,
 		       default_line, NULL);
   cleanups = make_cleanup (linespec_parser_delete, &parser);
-  save_current_program_space ();
 
-  result = event_location_to_sals (&parser, location);
+  scoped_restore_current_program_space restore_pspace;
+
+  std::vector<symtab_and_line> result = event_location_to_sals (&parser,
+								location);
 
   do_cleanups (cleanups);
   return result;
@@ -2626,23 +3367,20 @@ decode_line_1 (const struct event_locati
 
 /* See linespec.h.  */
 
-struct symtabs_and_lines
-decode_line_with_current_source (char *string, int flags)
+std::vector<symtab_and_line>
+decode_line_with_current_source (const char *string, int flags)
 {
-  struct symtabs_and_lines sals;
-  struct symtab_and_line cursal;
-
   if (string == 0)
     error (_("Empty line specification."));
 
   /* We use whatever is set as the current source line.  We do not try
      and get a default source symtab+line or it will recursively call us!  */
-  cursal = get_current_source_symtab_and_line ();
+  symtab_and_line cursal = get_current_source_symtab_and_line ();
 
   event_location_up location = string_to_event_location (&string,
 							 current_language);
-  sals = decode_line_1 (location.get (), flags, NULL,
-			cursal.symtab, cursal.line);
+  std::vector<symtab_and_line> sals
+    = decode_line_1 (location.get (), flags, NULL, cursal.symtab, cursal.line);
 
   if (*string)
     error (_("Junk at end of line specification: %s"), string);
@@ -2652,23 +3390,21 @@ decode_line_with_current_source (char *s
 
 /* See linespec.h.  */
 
-struct symtabs_and_lines
-decode_line_with_last_displayed (char *string, int flags)
+std::vector<symtab_and_line>
+decode_line_with_last_displayed (const char *string, int flags)
 {
-  struct symtabs_and_lines sals;
-
   if (string == 0)
     error (_("Empty line specification."));
 
   event_location_up location = string_to_event_location (&string,
 							 current_language);
-  if (last_displayed_sal_is_valid ())
-    sals = decode_line_1 (location.get (), flags, NULL,
-			  get_last_displayed_symtab (),
-			  get_last_displayed_line ());
-  else
-    sals = decode_line_1 (location.get (), flags, NULL,
-			  (struct symtab *) NULL, 0);
+  std::vector<symtab_and_line> sals
+    = (last_displayed_sal_is_valid ()
+       ? decode_line_1 (location.get (), flags, NULL,
+			get_last_displayed_symtab (),
+			get_last_displayed_line ())
+       : decode_line_1 (location.get (), flags, NULL,
+			(struct symtab *) NULL, 0));
 
   if (*string)
     error (_("Junk at end of line specification: %s"), string);
@@ -2724,12 +3460,11 @@ linespec_expression_to_pc (const char **
    than one method that could represent the selector, then use some of
    the existing C++ code to let the user choose one.  */
 
-static struct symtabs_and_lines
+static std::vector<symtab_and_line>
 decode_objc (struct linespec_state *self, linespec_p ls, const char *arg)
 {
   struct collect_info info;
   VEC (const_char_ptr) *symbol_names = NULL;
-  struct symtabs_and_lines values;
   const char *new_argptr;
   struct cleanup *cleanup = make_cleanup (VEC_cleanup (const_char_ptr),
 					  &symbol_names);
@@ -2740,18 +3475,18 @@ decode_objc (struct linespec_state *self
   make_cleanup (VEC_cleanup (symtab_ptr), &info.file_symtabs);
   info.result.symbols = NULL;
   info.result.minimal_symbols = NULL;
-  values.nelts = 0;
-  values.sals = NULL;
 
   new_argptr = find_imps (arg, &symbol_names);
   if (VEC_empty (const_char_ptr, symbol_names))
     {
       do_cleanups (cleanup);
-      return values;
+      return {};
     }
 
-  add_all_symbol_names_from_pspace (&info, NULL, symbol_names);
+  add_all_symbol_names_from_pspace (&info, NULL, symbol_names,
+				    FUNCTIONS_DOMAIN);
 
+  std::vector<symtab_and_line> values;
   if (!VEC_empty (symbolp, info.result.symbols)
       || !VEC_empty (bound_minimal_symbol_d, info.result.minimal_symbols))
     {
@@ -2768,20 +3503,23 @@ decode_objc (struct linespec_state *self
 
       if (self->canonical)
 	{
-	  char *str;
+	  std::string holder;
+	  const char *str;
 
 	  self->canonical->pre_expanded = 1;
 
 	  if (ls->explicit_loc.source_filename)
 	    {
-	      str = xstrprintf ("%s:%s",
-				ls->explicit_loc.source_filename, saved_arg);
+	      holder = string_printf ("%s:%s",
+				      ls->explicit_loc.source_filename,
+				      saved_arg);
+	      str = holder.c_str ();
 	    }
 	  else
-	    str = xstrdup (saved_arg);
+	    str = saved_arg;
 
-	  make_cleanup (xfree, str);
-	  self->canonical->location = new_linespec_location (&str);
+	  self->canonical->location
+	    = new_linespec_location (&str, symbol_name_match_type::FULL);
 	}
     }
 
@@ -2870,13 +3608,17 @@ lookup_prefix_sym (struct linespec_state
   struct symtab *elt;
   decode_compound_collector collector;
 
+  lookup_name_info lookup_name (class_name, symbol_name_match_type::FULL);
+
   for (ix = 0; VEC_iterate (symtab_ptr, file_symtabs, ix, elt); ++ix)
     {
       if (elt == NULL)
 	{
-	  iterate_over_all_matching_symtabs (state, class_name, STRUCT_DOMAIN,
+	  iterate_over_all_matching_symtabs (state, lookup_name,
+					     STRUCT_DOMAIN, ALL_DOMAIN,
 					     NULL, false, collector);
-	  iterate_over_all_matching_symtabs (state, class_name, VAR_DOMAIN,
+	  iterate_over_all_matching_symtabs (state, lookup_name,
+					     VAR_DOMAIN, ALL_DOMAIN,
 					     NULL, false, collector);
 	}
       else
@@ -2885,8 +3627,8 @@ lookup_prefix_sym (struct linespec_state
 	     been filtered out earlier.  */
 	  gdb_assert (!SYMTAB_PSPACE (elt)->executing_startup);
 	  set_current_program_space (SYMTAB_PSPACE (elt));
-	  iterate_over_file_blocks (elt, class_name, STRUCT_DOMAIN, collector);
-	  iterate_over_file_blocks (elt, class_name, VAR_DOMAIN, collector);
+	  iterate_over_file_blocks (elt, lookup_name, STRUCT_DOMAIN, collector);
+	  iterate_over_file_blocks (elt, lookup_name, VAR_DOMAIN, collector);
 	}
     }
 
@@ -2961,18 +3703,21 @@ compare_msymbols (const void *a, const v
 static void
 add_all_symbol_names_from_pspace (struct collect_info *info,
 				  struct program_space *pspace,
-				  VEC (const_char_ptr) *names)
+				  VEC (const_char_ptr) *names,
+				  enum search_domain search_domain)
 {
   int ix;
   const char *iter;
 
   for (ix = 0; VEC_iterate (const_char_ptr, names, ix, iter); ++ix)
-    add_matching_symbols_to_info (iter, info, pspace);
+    add_matching_symbols_to_info (iter,
+				  symbol_name_match_type::FULL,
+				  search_domain, info, pspace);
 }
 
 static void
 find_superclass_methods (VEC (typep) *superclasses,
-			 const char *name,
+			 const char *name, enum language name_lang,
 			 VEC (const_char_ptr) **result_names)
 {
   int old_len = VEC_length (const_char_ptr, *result_names);
@@ -2988,7 +3733,7 @@ find_superclass_methods (VEC (typep) *su
 
       make_cleanup (VEC_cleanup (typep), &new_supers);
       for (ix = 0; VEC_iterate (typep, iter_classes, ix, t); ++ix)
-	find_methods (t, name, result_names, &new_supers);
+	find_methods (t, name_lang, name, result_names, &new_supers);
 
       if (VEC_length (const_char_ptr, *result_names) != old_len
 	  || VEC_empty (typep, new_supers))
@@ -3055,7 +3800,8 @@ find_method (struct linespec_state *self
       gdb_assert (!pspace->executing_startup);
       set_current_program_space (pspace);
       t = check_typedef (SYMBOL_TYPE (sym));
-      find_methods (t, method_name, &result_names, &superclass_vec);
+      find_methods (t, SYMBOL_LANGUAGE (sym),
+		    method_name, &result_names, &superclass_vec);
 
       /* Handle all items from a single program space at once; and be
 	 sure not to miss the last batch.  */
@@ -3068,12 +3814,13 @@ find_method (struct linespec_state *self
 	     this program space, consider superclasses.  */
 	  if (VEC_length (const_char_ptr, result_names) == last_result_len)
 	    find_superclass_methods (superclass_vec, method_name,
-				     &result_names);
+				     SYMBOL_LANGUAGE (sym), &result_names);
 
 	  /* We have a list of candidate symbol names, so now we
 	     iterate over the symbol tables looking for all
 	     matches in this pspace.  */
-	  add_all_symbol_names_from_pspace (&info, pspace, result_names);
+	  add_all_symbol_names_from_pspace (&info, pspace, result_names,
+					    FUNCTIONS_DOMAIN);
 
 	  VEC_truncate (typep, superclass_vec, 0);
 	  last_result_len = VEC_length (const_char_ptr, result_names);
@@ -3216,6 +3963,7 @@ symtabs_from_filename (const char *filen
 static void
 find_function_symbols (struct linespec_state *state,
 		       VEC (symtab_ptr) *file_symtabs, const char *name,
+		       symbol_name_match_type name_match_type,
 		       VEC (symbolp) **symbols,
 		       VEC (bound_minimal_symbol_d) **minsyms)
 {
@@ -3233,9 +3981,10 @@ find_function_symbols (struct linespec_s
   find_imps (name, &symbol_names);
   if (!VEC_empty (const_char_ptr, symbol_names))
     add_all_symbol_names_from_pspace (&info, state->search_pspace,
-				      symbol_names);
+				      symbol_names, FUNCTIONS_DOMAIN);
   else
-    add_matching_symbols_to_info (name, &info, state->search_pspace);
+    add_matching_symbols_to_info (name, name_match_type, FUNCTIONS_DOMAIN,
+				  &info, state->search_pspace);
 
   do_cleanups (cleanup);
 
@@ -3262,28 +4011,11 @@ find_function_symbols (struct linespec_s
 static void
 find_linespec_symbols (struct linespec_state *state,
 		       VEC (symtab_ptr) *file_symtabs,
-		       const char *name,
+		       const char *lookup_name,
+		       symbol_name_match_type name_match_type,
 		       VEC (symbolp) **symbols,
 		       VEC (bound_minimal_symbol_d) **minsyms)
 {
-  demangle_result_storage demangle_storage;
-  std::string ada_lookup_storage;
-  const char *lookup_name;
-
-  if (state->language->la_language == language_ada)
-    {
-      /* In Ada, the symbol lookups are performed using the encoded
-         name rather than the demangled name.  */
-      ada_lookup_storage = ada_name_for_lookup (name);
-      lookup_name = ada_lookup_storage.c_str ();
-    }
-  else
-    {
-      lookup_name = demangle_for_lookup (name,
-					 state->language->la_language,
-					 demangle_storage);
-    }
-
   std::string canon = cp_canonicalize_string_no_typedefs (lookup_name);
   if (!canon.empty ())
     lookup_name = canon.c_str ();
@@ -3298,6 +4030,7 @@ find_linespec_symbols (struct linespec_s
      2) break class::method where method is in class (and not a baseclass)  */
 
   find_function_symbols (state, file_symtabs, lookup_name,
+			 name_match_type,
 			 symbols, minsyms);
 
   /* If we were unable to locate a symbol of the same name, try dividing
@@ -3365,17 +4098,66 @@ find_linespec_symbols (struct linespec_s
     }
 }
 
-/* Return all labels named NAME in FUNCTION_SYMBOLS.  Return the
-   actual function symbol in which the label was found in LABEL_FUNC_RET.  */
+/* Helper for find_label_symbols.  Find all labels that match name
+   NAME in BLOCK.  Return all labels that match in FUNCTION_SYMBOLS.
+   Return the actual function symbol in which the label was found in
+   LABEL_FUNC_RET.  If COMPLETION_MODE is true, then NAME is
+   interpreted as a label name prefix.  Otherwise, only a label named
+   exactly NAME match.  */
+
+static void
+find_label_symbols_in_block (const struct block *block,
+			     const char *name, struct symbol *fn_sym,
+			     bool completion_mode,
+			     VEC (symbolp) **result,
+			     VEC (symbolp) **label_funcs_ret)
+{
+  if (completion_mode)
+    {
+      struct block_iterator iter;
+      struct symbol *sym;
+      size_t name_len = strlen (name);
+
+      int (*cmp) (const char *, const char *, size_t);
+      cmp = case_sensitivity == case_sensitive_on ? strncmp : strncasecmp;
+
+      ALL_BLOCK_SYMBOLS (block, iter, sym)
+	{
+	  if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
+				     SYMBOL_DOMAIN (sym), LABEL_DOMAIN)
+	      && cmp (SYMBOL_SEARCH_NAME (sym), name, name_len) == 0)
+	    {
+	      VEC_safe_push (symbolp, *result, sym);
+	      VEC_safe_push (symbolp, *label_funcs_ret, fn_sym);
+	    }
+	}
+    }
+  else
+    {
+      struct symbol *sym = lookup_symbol (name, block, LABEL_DOMAIN, 0).symbol;
+
+      if (sym != NULL)
+	{
+	  VEC_safe_push (symbolp, *result, sym);
+	  VEC_safe_push (symbolp, *label_funcs_ret, fn_sym);
+	}
+    }
+}
+
+/* Return all labels that match name NAME in FUNCTION_SYMBOLS.  Return
+   the actual function symbol in which the label was found in
+   LABEL_FUNC_RET.  If COMPLETION_MODE is true, then NAME is
+   interpreted as a label name prefix.  Otherwise, only labels named
+   exactly NAME match.  */
 
 static VEC (symbolp) *
 find_label_symbols (struct linespec_state *self,
 		    VEC (symbolp) *function_symbols,
-		    VEC (symbolp) **label_funcs_ret, const char *name)
+		    VEC (symbolp) **label_funcs_ret, const char *name,
+		    bool completion_mode)
 {
   int ix;
   const struct block *block;
-  struct symbol *sym;
   struct symbol *fn_sym;
   VEC (symbolp) *result = NULL;
 
@@ -3392,13 +4174,8 @@ find_label_symbols (struct linespec_stat
 	return NULL;
       fn_sym = BLOCK_FUNCTION (block);
 
-      sym = lookup_symbol (name, block, LABEL_DOMAIN, 0).symbol;
-
-      if (sym != NULL)
-	{
-	  VEC_safe_push (symbolp, result, sym);
-	  VEC_safe_push (symbolp, *label_funcs_ret, fn_sym);
-	}
+      find_label_symbols_in_block (block, name, fn_sym, completion_mode,
+				   &result, label_funcs_ret);
     }
   else
     {
@@ -3407,13 +4184,9 @@ find_label_symbols (struct linespec_stat
 	{
 	  set_current_program_space (SYMTAB_PSPACE (symbol_symtab (fn_sym)));
 	  block = SYMBOL_BLOCK_VALUE (fn_sym);
-	  sym = lookup_symbol (name, block, LABEL_DOMAIN, 0).symbol;
 
-	  if (sym != NULL)
-	    {
-	      VEC_safe_push (symbolp, result, sym);
-	      VEC_safe_push (symbolp, *label_funcs_ret, fn_sym);
-	    }
+	  find_label_symbols_in_block (block, name, fn_sym, completion_mode,
+				       &result, label_funcs_ret);
 	}
     }
 
@@ -3424,10 +4197,9 @@ find_label_symbols (struct linespec_stat
 
 /* A helper for create_sals_line_offset that handles the 'list_mode' case.  */
 
-static void
+static std::vector<symtab_and_line>
 decode_digits_list_mode (struct linespec_state *self,
 			 linespec_p ls,
-			 struct symtabs_and_lines *values,
 			 struct symtab_and_line val)
 {
   int ix;
@@ -3435,6 +4207,8 @@ decode_digits_list_mode (struct linespec
 
   gdb_assert (self->list_mode);
 
+  std::vector<symtab_and_line> values;
+
   for (ix = 0; VEC_iterate (symtab_ptr, ls->file_symtabs, ix, elt);
        ++ix)
     {
@@ -3451,23 +4225,25 @@ decode_digits_list_mode (struct linespec
       val.pc = 0;
       val.explicit_line = 1;
 
-      add_sal_to_sals (self, values, &val, NULL, 0);
+      add_sal_to_sals (self, &values, &val, NULL, 0);
     }
+
+  return values;
 }
 
 /* A helper for create_sals_line_offset that iterates over the symtabs,
    adding lines to the VEC.  */
 
-static void
+static std::vector<symtab_and_line>
 decode_digits_ordinary (struct linespec_state *self,
 			linespec_p ls,
 			int line,
-			struct symtabs_and_lines *sals,
 			struct linetable_entry **best_entry)
 {
   int ix;
   struct symtab *elt;
 
+  std::vector<symtab_and_line> sals;
   for (ix = 0; VEC_iterate (symtab_ptr, ls->file_symtabs, ix, elt); ++ix)
     {
       std::vector<CORE_ADDR> pcs;
@@ -3480,16 +4256,16 @@ decode_digits_ordinary (struct linespec_
       pcs = find_pcs_for_symtab_line (elt, line, best_entry);
       for (CORE_ADDR pc : pcs)
 	{
-	  struct symtab_and_line sal;
-
-	  init_sal (&sal);
+	  symtab_and_line sal;
 	  sal.pspace = SYMTAB_PSPACE (elt);
 	  sal.symtab = elt;
 	  sal.line = line;
 	  sal.pc = pc;
-	  add_sal_to_sals_basic (sals, &sal);
+	  sals.push_back (std::move (sal));
 	}
     }
+
+  return sals;
 }
 
 
@@ -3559,43 +4335,40 @@ linespec_parse_variable (struct linespec
 static void
 minsym_found (struct linespec_state *self, struct objfile *objfile,
 	      struct minimal_symbol *msymbol,
-	      struct symtabs_and_lines *result)
+	      std::vector<symtab_and_line> *result)
 {
-  struct gdbarch *gdbarch = get_objfile_arch (objfile);
-  CORE_ADDR pc;
   struct symtab_and_line sal;
 
-  sal = find_pc_sect_line (MSYMBOL_VALUE_ADDRESS (objfile, msymbol),
-			   (struct obj_section *) 0, 0);
-  sal.section = MSYMBOL_OBJ_SECTION (objfile, msymbol);
+  CORE_ADDR func_addr;
+  if (msymbol_is_function (objfile, msymbol, &func_addr))
+    {
+      sal = find_pc_sect_line (func_addr, NULL, 0);
+
+      if (self->funfirstline)
+	{
+	  if (sal.symtab != NULL
+	      && (COMPUNIT_LOCATIONS_VALID (SYMTAB_COMPUNIT (sal.symtab))
+		  || SYMTAB_LANGUAGE (sal.symtab) == language_asm))
+	    {
+	      struct gdbarch *gdbarch = get_objfile_arch (objfile);
 
-  /* The minimal symbol might point to a function descriptor;
-     resolve it to the actual code address instead.  */
-  pc = gdbarch_convert_from_func_ptr_addr (gdbarch, sal.pc, &current_target);
-  if (pc != sal.pc)
-    sal = find_pc_sect_line (pc, NULL, 0);
-
-  if (self->funfirstline)
-    {
-      if (sal.symtab != NULL
-	  && (COMPUNIT_LOCATIONS_VALID (SYMTAB_COMPUNIT (sal.symtab))
-	      || SYMTAB_LANGUAGE (sal.symtab) == language_asm))
-	{
-	  /* If gdbarch_convert_from_func_ptr_addr does not apply then
-	     sal.SECTION, sal.LINE&co. will stay correct from above.
-	     If gdbarch_convert_from_func_ptr_addr applies then
-	     sal.SECTION is cleared from above and sal.LINE&co. will
-	     stay correct from the last find_pc_sect_line above.  */
-	  sal.pc = MSYMBOL_VALUE_ADDRESS (objfile, msymbol);
-	  sal.pc = gdbarch_convert_from_func_ptr_addr (gdbarch, sal.pc,
-						       &current_target);
-	  if (gdbarch_skip_entrypoint_p (gdbarch))
-	    sal.pc = gdbarch_skip_entrypoint (gdbarch, sal.pc);
+	      sal.pc = func_addr;
+	      if (gdbarch_skip_entrypoint_p (gdbarch))
+		sal.pc = gdbarch_skip_entrypoint (gdbarch, sal.pc);
+	    }
+	  else
+	    skip_prologue_sal (&sal);
 	}
-      else
-	skip_prologue_sal (&sal);
+    }
+  else
+    {
+      sal.objfile = objfile;
+      sal.pc = MSYMBOL_VALUE_ADDRESS (objfile, msymbol);
+      sal.pspace = current_program_space;
     }
 
+  sal.section = MSYMBOL_OBJ_SECTION (objfile, msymbol);
+
   if (maybe_add_address (self->addr_set, objfile->pspace, sal.pc))
     add_sal_to_sals (self, result, &sal, MSYMBOL_NATURAL_NAME (msymbol), 0);
 }
@@ -3665,52 +4438,26 @@ static void
 add_minsym (struct minimal_symbol *minsym, void *d)
 {
   struct collect_minsyms *info = (struct collect_minsyms *) d;
-  bound_minimal_symbol_d mo;
-
-  mo.minsym = minsym;
-  mo.objfile = info->objfile;
 
   if (info->symtab != NULL)
     {
-      CORE_ADDR pc;
-      struct symtab_and_line sal;
-      struct gdbarch *gdbarch = get_objfile_arch (info->objfile);
-
-      sal = find_pc_sect_line (MSYMBOL_VALUE_ADDRESS (info->objfile, minsym),
-			       NULL, 0);
-      sal.section = MSYMBOL_OBJ_SECTION (info->objfile, minsym);
-      pc
-	= gdbarch_convert_from_func_ptr_addr (gdbarch, sal.pc, &current_target);
-      if (pc != sal.pc)
-	sal = find_pc_sect_line (pc, NULL, 0);
+      /* We're looking for a label for which we don't have debug
+	 info.  */
+      CORE_ADDR func_addr;
+      if (msymbol_is_function (info->objfile, minsym, &func_addr))
+	{
+	  symtab_and_line sal = find_pc_sect_line (func_addr, NULL, 0);
 
-      if (info->symtab != sal.symtab)
-	return;
+	  if (info->symtab != sal.symtab)
+	    return;
+	}
     }
 
-  /* Exclude data symbols when looking for breakpoint locations.   */
-  if (!info->list_mode)
-    switch (minsym->type)
-      {
-	case mst_slot_got_plt:
-	case mst_data:
-	case mst_bss:
-	case mst_abs:
-	case mst_file_data:
-	case mst_file_bss:
-	  {
-	    /* Make sure this minsym is not a function descriptor
-	       before we decide to discard it.  */
-	    struct gdbarch *gdbarch = get_objfile_arch (info->objfile);
-	    CORE_ADDR addr = gdbarch_convert_from_func_ptr_addr
-			       (gdbarch, BMSYMBOL_VALUE_ADDRESS (mo),
-				&current_target);
-
-	    if (addr == BMSYMBOL_VALUE_ADDRESS (mo))
-	      return;
-	  }
-      }
+  /* Exclude data symbols when looking for breakpoint locations.  */
+  if (!info->list_mode && !msymbol_is_function (info->objfile, minsym))
+    return;
 
+  bound_minimal_symbol_d mo = {minsym, info->objfile};
   VEC_safe_push (bound_minimal_symbol_d, info->msyms, &mo);
 }
 
@@ -3722,7 +4469,8 @@ add_minsym (struct minimal_symbol *minsy
    restrict results to the given SYMTAB.  */
 
 static void
-search_minsyms_for_name (struct collect_info *info, const char *name,
+search_minsyms_for_name (struct collect_info *info,
+			 const lookup_name_info &name,
 			 struct program_space *search_pspace,
 			 struct symtab *symtab)
 {
@@ -3764,8 +4512,7 @@ search_minsyms_for_name (struct collect_
 	{
 	  set_current_program_space (SYMTAB_PSPACE (symtab));
 	  local.objfile = SYMTAB_OBJFILE(symtab);
-	  iterate_over_minimal_symbols (local.objfile, name, add_minsym,
-					&local);
+	  iterate_over_minimal_symbols (local.objfile, name, add_minsym, &local);
 	}
     }
 
@@ -3807,20 +4554,25 @@ search_minsyms_for_name (struct collect_
 
 static void
 add_matching_symbols_to_info (const char *name,
+			      symbol_name_match_type name_match_type,
+			      enum search_domain search_domain,
 			      struct collect_info *info,
 			      struct program_space *pspace)
 {
   int ix;
   struct symtab *elt;
 
+  lookup_name_info lookup_name (name, name_match_type);
+
   for (ix = 0; VEC_iterate (symtab_ptr, info->file_symtabs, ix, elt); ++ix)
     {
       if (elt == NULL)
 	{
-	  iterate_over_all_matching_symtabs (info->state, name, VAR_DOMAIN,
+	  iterate_over_all_matching_symtabs (info->state, lookup_name,
+					     VAR_DOMAIN, search_domain,
 					     pspace, true, [&] (symbol *sym)
 	    { return info->add_symbol (sym); });
-	  search_minsyms_for_name (info, name, pspace, NULL);
+	  search_minsyms_for_name (info, lookup_name, pspace, NULL);
 	}
       else if (pspace == NULL || pspace == SYMTAB_PSPACE (elt))
 	{
@@ -3830,7 +4582,8 @@ add_matching_symbols_to_info (const char
 	     been filtered out earlier.  */
 	  gdb_assert (!SYMTAB_PSPACE (elt)->executing_startup);
 	  set_current_program_space (SYMTAB_PSPACE (elt));
-	  iterate_over_file_blocks (elt, name, VAR_DOMAIN, [&] (symbol *sym)
+	  iterate_over_file_blocks (elt, lookup_name, VAR_DOMAIN,
+				    [&] (symbol *sym)
 	    { return info->add_symbol (sym); });
 
 	  /* If no new symbols were found in this iteration and this symtab
@@ -3839,7 +4592,7 @@ add_matching_symbols_to_info (const char
 	     this case.  */
 	  if (prev_len == VEC_length (symbolp, info->result.symbols)
 	      && elt->language == language_asm)
-	    search_minsyms_for_name (info, name, pspace, elt);
+	    search_minsyms_for_name (info, lookup_name, pspace, elt);
 	}
     }
 }
@@ -3862,8 +4615,9 @@ symbol_to_sal (struct symtab_and_line *r
     {
       if (SYMBOL_CLASS (sym) == LOC_LABEL && SYMBOL_VALUE_ADDRESS (sym) != 0)
 	{
-	  init_sal (result);
+	  *result = {};
 	  result->symtab = symbol_symtab (sym);
+	  result->symbol = sym;
 	  result->line = SYMBOL_LINE (sym);
 	  result->pc = SYMBOL_VALUE_ADDRESS (sym);
 	  result->pspace = SYMTAB_PSPACE (result->symtab);
@@ -3877,9 +4631,11 @@ symbol_to_sal (struct symtab_and_line *r
       else if (SYMBOL_LINE (sym) != 0)
 	{
 	  /* We know its line number.  */
-	  init_sal (result);
+	  *result = {};
 	  result->symtab = symbol_symtab (sym);
+	  result->symbol = sym;
 	  result->line = SYMBOL_LINE (sym);
+	  result->pc = SYMBOL_VALUE_ADDRESS (sym);
 	  result->pspace = SYMTAB_PSPACE (result->symtab);
 	  return 1;
 	}
@@ -3890,15 +4646,8 @@ symbol_to_sal (struct symtab_and_line *r
 
 linespec_result::~linespec_result ()
 {
-  int i;
-  struct linespec_sals *lsal;
-
-  for (i = 0; VEC_iterate (linespec_sals, sals, i, lsal); ++i)
-    {
-      xfree (lsal->canonical);
-      xfree (lsal->sals.sals);
-    }
-  VEC_free (linespec_sals, sals);
+  for (linespec_sals &lsal : lsals)
+    xfree (lsal.canonical);
 }
 
 /* Return the quote characters permitted by the linespec parser.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linespec.h ./gdb/linespec.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linespec.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/linespec.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Header for GDB line completion.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 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
@@ -46,53 +46,42 @@ struct linespec_sals
      destructor.  */
   char *canonical;
 
-  /* Sals.  The 'sals' field is destroyed by the linespec_result
-     destructor.  */
-  struct symtabs_and_lines sals;
+  /* Sals.  */
+  std::vector<symtab_and_line> sals;
 };
 
-typedef struct linespec_sals linespec_sals;
-DEF_VEC_O (linespec_sals);
-
 /* An instance of this may be filled in by decode_line_1.  The caller
    must make copies of any data that it needs to keep.  */
 
 struct linespec_result
 {
-  linespec_result ()
-    : special_display (0),
-      pre_expanded (0),
-      sals (NULL)
-  {
-  }
-
+  linespec_result () = default;
   ~linespec_result ();
 
-  linespec_result (const linespec_result &) = delete;
-  linespec_result &operator= (const linespec_result &) = delete;
+  DISABLE_COPY_AND_ASSIGN (linespec_result);
 
-  /* If non-zero, the linespec should be displayed to the user.  This
+  /* If true, the linespec should be displayed to the user.  This
      is used by "unusual" linespecs where the ordinary `info break'
      display mechanism would do the wrong thing.  */
-  int special_display;
+  bool special_display = false;
 
-  /* If non-zero, the linespec result should be considered to be a
+  /* If true, the linespec result should be considered to be a
      "pre-expanded" multi-location linespec.  A pre-expanded linespec
      holds all matching locations in a single linespec_sals
      object.  */
-  int pre_expanded;
+  bool pre_expanded = false;
 
   /* If PRE_EXPANDED is non-zero, this is set to the location entered
      by the user.  */
   event_location_up location;
 
   /* The sals.  The vector will be freed by the destructor.  */
-  VEC (linespec_sals) *sals;
+  std::vector<linespec_sals> lsals;
 };
 
 /* Decode a linespec using the provided default symtab and line.  */
 
-extern struct symtabs_and_lines
+extern std::vector<symtab_and_line>
 	decode_line_1 (const struct event_location *location, int flags,
 		       struct program_space *search_pspace,
 		       struct symtab *default_symtab, int default_line);
@@ -147,12 +136,14 @@ extern void decode_line_full (const stru
    source symtab and line as defaults.
    This is for commands like "list" and "breakpoint".  */
 
-extern struct symtabs_and_lines decode_line_with_current_source (char *, int);
+extern std::vector<symtab_and_line> decode_line_with_current_source
+    (const char *, int);
 
 /* Given a string, return the line specified by it, using the last displayed
    codepoint's values as defaults, or nothing if they aren't valid.  */
 
-extern struct symtabs_and_lines decode_line_with_last_displayed (char *, int);
+extern std::vector<symtab_and_line> decode_line_with_last_displayed
+    (const char *, int);
 
 /* Does P represent one of the keywords?  If so, return
    the keyword.  If not, return NULL.  */
@@ -182,7 +173,37 @@ extern const char *find_toplevel_char (c
 /* Find the end of the (first) linespec pointed to by *STRINGP.
    STRINGP will be advanced to this point.  */
 
-extern void linespec_lex_to_end (char **stringp);
+extern void linespec_lex_to_end (const char **stringp);
+
+extern const char * const linespec_keywords[];
+
+/* Complete a linespec.  */
+
+extern void linespec_complete (completion_tracker &tracker,
+			       const char *text,
+			       symbol_name_match_type match_type);
+
+/* Complete a function symbol, in linespec mode, according to
+   FUNC_MATCH_TYPE.  If SOURCE_FILENAME is non-NULL, limits completion
+   to the list of functions defined in source files that match
+   SOURCE_FILENAME.  */
+
+extern void linespec_complete_function (completion_tracker &tracker,
+					const char *function,
+					symbol_name_match_type func_match_type,
+					const char *source_filename);
+
+/* Complete a label symbol, in linespec mode.  Only labels of
+   functions named FUNCTION_NAME are considered.  If SOURCE_FILENAME
+   is non-NULL, limits completion to labels of functions defined in
+   source files that match SOURCE_FILENAME.  */
+
+extern void linespec_complete_label (completion_tracker &tracker,
+				     const struct language_defn *language,
+				     const char *source_filename,
+				     const char *function_name,
+				     symbol_name_match_type name_match_type,
+				     const char *label_name);
 
 /* Evaluate the expression pointed to by EXP_PTR into a CORE_ADDR,
    advancing EXP_PTR past any parsed text.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-fork.c ./gdb/linux-fork.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-fork.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/linux-fork.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GNU/Linux native-dependent code for debugging multiple forks.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -38,9 +38,6 @@
 struct fork_info *fork_list;
 static int highest_fork_num;
 
-/* Prevent warning from -Wmissing-prototypes.  */
-extern void _initialize_linux_fork (void);
-
 /* Fork list data structure:  */
 struct fork_info
 {
@@ -129,7 +126,7 @@ free_fork (struct fork_info *fp)
   if (fp)
     {
       if (fp->savedregs)
-	regcache_xfree (fp->savedregs);
+	delete fp->savedregs;
       if (fp->filepos)
 	xfree (fp->filepos);
       xfree (fp);
@@ -248,7 +245,7 @@ call_lseek (int fd, off_t offset, int wh
 {
   char exp[80];
 
-  snprintf (&exp[0], sizeof (exp), "lseek (%d, %ld, %d)",
+  snprintf (&exp[0], sizeof (exp), "(long) lseek (%d, %ld, %d)",
 	    fd, (long) offset, whence);
   return (off_t) parse_and_eval_long (&exp[0]);
 }
@@ -295,7 +292,7 @@ fork_save_infrun_state (struct fork_info
   DIR *d;
 
   if (fp->savedregs)
-    regcache_xfree (fp->savedregs);
+    delete fp->savedregs;
 
   fp->savedregs = regcache_dup (get_current_regcache ());
   fp->clobber_regs = clobber_regs;
@@ -492,7 +489,7 @@ inferior_call_waitpid (ptid_t pptid, int
   argv[2] = value_from_longest (builtin_type (gdbarch)->builtin_int, 0);
   argv[3] = 0;
 
-  retv = call_function_by_hand (waitpid_fn, 3, argv);
+  retv = call_function_by_hand (waitpid_fn, NULL, 3, argv);
   if (value_as_long (retv) < 0)
     goto out;
 
@@ -506,7 +503,7 @@ out:
 /* Fork list <-> user interface.  */
 
 static void
-delete_checkpoint_command (char *args, int from_tty)
+delete_checkpoint_command (const char *args, int from_tty)
 {
   ptid_t ptid, pptid;
   struct fork_info *fi;
@@ -547,7 +544,7 @@ Please switch to another checkpoint befo
 }
 
 static void
-detach_checkpoint_command (char *args, int from_tty)
+detach_checkpoint_command (const char *args, int from_tty)
 {
   ptid_t ptid;
 
@@ -574,7 +571,7 @@ Please switch to another checkpoint befo
 /* Print information about currently known checkpoints.  */
 
 static void
-info_checkpoints_command (char *arg, int from_tty)
+info_checkpoints_command (const char *arg, int from_tty)
 {
   struct gdbarch *gdbarch = get_current_arch ();
   struct symtab_and_line sal;
@@ -671,7 +668,7 @@ inf_has_multiple_threads (void)
 }
 
 static void
-checkpoint_command (char *args, int from_tty)
+checkpoint_command (const char *args, int from_tty)
 {
   struct objfile *fork_objf;
   struct gdbarch *gdbarch;
@@ -707,7 +704,7 @@ checkpoint_command (char *args, int from
     scoped_restore save_pid
       = make_scoped_restore (&checkpointing_pid, ptid_get_pid (inferior_ptid));
 
-    ret = call_function_by_hand (fork_fn, 0, &ret);
+    ret = call_function_by_hand (fork_fn, NULL, 0, &ret);
   }
 
   if (!ret)	/* Probably can't happen.  */
@@ -764,7 +761,7 @@ linux_fork_context (struct fork_info *ne
 
 /* Switch inferior process (checkpoint) context, by checkpoint id.  */
 static void
-restart_command (char *args, int from_tty)
+restart_command (const char *args, int from_tty)
 {
   struct fork_info *fp;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-fork.h ./gdb/linux-fork.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-fork.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/linux-fork.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GNU/Linux native-dependent code for debugging multiple forks.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-nat.c ./gdb/linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GNU/Linux native-dependent code common to multiple platforms.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -197,6 +197,9 @@ static struct target_ops linux_ops_saved
 /* The method to call, if any, when a new thread is attached.  */
 static void (*linux_nat_new_thread) (struct lwp_info *);
 
+/* The method to call, if any, when a thread is destroyed.  */
+static void (*linux_nat_delete_thread) (struct arch_lwp_info *);
+
 /* The method to call, if any, when a new fork is attached.  */
 static linux_nat_new_fork_ftype *linux_nat_new_fork;
 
@@ -477,7 +480,6 @@ linux_child_follow_fork (struct target_o
     {
       struct lwp_info *child_lp = NULL;
       int status = W_STOPCODE (0);
-      struct cleanup *old_chain;
       int has_vforked;
       ptid_t parent_ptid, child_ptid;
       int parent_pid, child_pid;
@@ -490,16 +492,15 @@ linux_child_follow_fork (struct target_o
       child_pid = ptid_get_lwp (child_ptid);
 
       /* We're already attached to the parent, by default.  */
-      old_chain = save_inferior_ptid ();
-      inferior_ptid = child_ptid;
-      child_lp = add_lwp (inferior_ptid);
+      child_lp = add_lwp (child_ptid);
       child_lp->stopped = 1;
       child_lp->last_resume_kind = resume_stop;
 
       /* Detach new forked process?  */
       if (detach_fork)
 	{
-	  make_cleanup (delete_lwp_cleanup, child_lp);
+	  struct cleanup *old_chain = make_cleanup (delete_lwp_cleanup,
+						    child_lp);
 
 	  if (linux_nat_prepare_to_resume != NULL)
 	    linux_nat_prepare_to_resume (child_lp);
@@ -512,8 +513,11 @@ linux_child_follow_fork (struct target_o
 	     To work around this, single step the child process
 	     once before detaching to clear the flags.  */
 
+	  /* Note that we consult the parent's architecture instead of
+	     the child's because there's no inferior for the child at
+	     this point.  */
 	  if (!gdbarch_software_single_step_p (target_thread_architecture
-						   (child_lp->ptid)))
+					       (parent_ptid)))
 	    {
 	      linux_disable_event_reporting (child_pid);
 	      if (ptrace (PTRACE_SINGLESTEP, child_pid, 0, 0) < 0)
@@ -533,17 +537,18 @@ linux_child_follow_fork (struct target_o
 	      ptrace (PTRACE_DETACH, child_pid, 0, signo);
 	    }
 
-	  /* Resets value of inferior_ptid to parent ptid.  */
 	  do_cleanups (old_chain);
 	}
       else
 	{
+	  scoped_restore save_inferior_ptid
+	    = make_scoped_restore (&inferior_ptid);
+	  inferior_ptid = child_ptid;
+
 	  /* Let the thread_db layer learn about this new process.  */
 	  check_for_thread_db ();
 	}
 
-      do_cleanups (old_chain);
-
       if (has_vforked)
 	{
 	  struct lwp_info *parent_lp;
@@ -671,8 +676,8 @@ linux_child_remove_exec_catchpoint (stru
 
 static int
 linux_child_set_syscall_catchpoint (struct target_ops *self,
-				    int pid, int needed, int any_count,
-				    int table_size, int *table)
+				    int pid, bool needed, int any_count,
+				    gdb::array_view<const int> syscall_counts)
 {
   if (!linux_supports_tracesysgood ())
     return 1;
@@ -680,7 +685,7 @@ linux_child_set_syscall_catchpoint (stru
   /* On GNU/Linux, we ignore the arguments.  It means that we only
      enable the syscall catchpoints, but do not disable them.
 
-     Also, we do not use the `table' information because we do not
+     Also, we do not use the `syscall_counts' information because we do not
      filter system calls here.  We let GDB do the logic for us.  */
   return 0;
 }
@@ -837,7 +842,12 @@ static int check_ptrace_stopped_lwp_gone
 static void
 lwp_free (struct lwp_info *lp)
 {
-  xfree (lp->arch_private);
+  /* Let the arch specific bits release arch_lwp_info.  */
+  if (linux_nat_delete_thread != NULL)
+    linux_nat_delete_thread (lp->arch_private);
+  else
+    gdb_assert (lp->arch_private == NULL);
+
   xfree (lp);
 }
 
@@ -1045,7 +1055,7 @@ exit_lwp (struct lwp_info *lp)
    Returns a wait status for that LWP, to cache.  */
 
 static int
-linux_nat_post_attach_wait (ptid_t ptid, int first, int *signalled)
+linux_nat_post_attach_wait (ptid_t ptid, int *signalled)
 {
   pid_t new_pid, pid = ptid_get_lwp (ptid);
   int status;
@@ -1108,8 +1118,8 @@ linux_nat_create_inferior (struct target
 			   const char *exec_file, const std::string &allargs,
 			   char **env, int from_tty)
 {
-  struct cleanup *restore_personality
-    = maybe_disable_address_space_randomization (disable_randomization);
+  maybe_disable_address_space_randomization restore_personality
+    (disable_randomization);
 
   /* The fork_child mechanism is synchronous and calls target_wait, so
      we have to mask the async mode.  */
@@ -1118,8 +1128,6 @@ linux_nat_create_inferior (struct target
   linux_nat_pass_signals (ops, 0, NULL);
 
   linux_ops->to_create_inferior (ops, exec_file, allargs, env, from_tty);
-
-  do_cleanups (restore_personality);
 }
 
 /* Callback for linux_proc_attach_tgid_threads.  Attach to PTID if not
@@ -1245,14 +1253,14 @@ linux_nat_attach (struct target_ops *ops
   /* Add the initial process as the first LWP to the list.  */
   lp = add_initial_lwp (ptid);
 
-  status = linux_nat_post_attach_wait (lp->ptid, 1, &lp->signalled);
+  status = linux_nat_post_attach_wait (lp->ptid, &lp->signalled);
   if (!WIFSTOPPED (status))
     {
       if (WIFEXITED (status))
 	{
 	  int exit_code = WEXITSTATUS (status);
 
-	  target_terminal_ours ();
+	  target_terminal::ours ();
 	  target_mourn_inferior (inferior_ptid);
 	  if (exit_code == 0)
 	    error (_("Unable to attach: program exited normally."));
@@ -1264,7 +1272,7 @@ linux_nat_attach (struct target_ops *ops
 	{
 	  enum gdb_signal signo;
 
-	  target_terminal_ours ();
+	  target_terminal::ours ();
 	  target_mourn_inferior (inferior_ptid);
 
 	  signo = gdb_signal_from_host (WTERMSIG (status));
@@ -2458,12 +2466,10 @@ maybe_clear_ignore_sigint (struct lwp_in
 static int
 check_stopped_by_watchpoint (struct lwp_info *lp)
 {
-  struct cleanup *old_chain;
-
   if (linux_ops->to_stopped_by_watchpoint == NULL)
     return 0;
 
-  old_chain = save_inferior_ptid ();
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
   inferior_ptid = lp->ptid;
 
   if (linux_ops->to_stopped_by_watchpoint (linux_ops))
@@ -2478,8 +2484,6 @@ check_stopped_by_watchpoint (struct lwp_
 	lp->stopped_data_address_p = 0;
     }
 
-  do_cleanups (old_chain);
-
   return lp->stop_reason == TARGET_STOPPED_BY_WATCHPOINT;
 }
 
@@ -2636,7 +2640,7 @@ status_callback (struct lwp_info *lp, vo
 	}
 
 #if !USE_SIGTRAP_SIGINFO
-      else if (!breakpoint_inserted_here_p (get_regcache_aspace (regcache), pc))
+      else if (!breakpoint_inserted_here_p (regcache->aspace (), pc))
 	{
 	  if (debug_linux_nat)
 	    fprintf_unfiltered (gdb_stdlog,
@@ -2744,7 +2748,7 @@ save_stop_reason (struct lwp_info *lp)
     return;
 
   regcache = get_thread_regcache (lp->ptid);
-  gdbarch = get_regcache_arch (regcache);
+  gdbarch = regcache->arch ();
 
   pc = regcache_read_pc (regcache);
   sw_bp_pc = pc - gdbarch_decr_pc_after_break (gdbarch);
@@ -2796,7 +2800,7 @@ save_stop_reason (struct lwp_info *lp)
     }
 #else
   if ((!lp->step || lp->stop_pc == sw_bp_pc)
-      && software_breakpoint_inserted_here_p (get_regcache_aspace (regcache),
+      && software_breakpoint_inserted_here_p (regcache->aspace (),
 					      sw_bp_pc))
     {
       /* The LWP was either continued, or stepped a software
@@ -2804,7 +2808,7 @@ save_stop_reason (struct lwp_info *lp)
       lp->stop_reason = TARGET_STOPPED_BY_SW_BREAKPOINT;
     }
 
-  if (hardware_breakpoint_inserted_here_p (get_regcache_aspace (regcache), pc))
+  if (hardware_breakpoint_inserted_here_p (regcache->aspace (), pc))
     lp->stop_reason = TARGET_STOPPED_BY_HW_BREAKPOINT;
 
   if (lp->stop_reason == TARGET_STOPPED_BY_NO_REASON)
@@ -3454,7 +3458,7 @@ linux_nat_wait_1 (struct target_ops *ops
       && !USE_SIGTRAP_SIGINFO)
     {
       struct regcache *regcache = get_thread_regcache (lp->ptid);
-      struct gdbarch *gdbarch = get_regcache_arch (regcache);
+      struct gdbarch *gdbarch = regcache->arch ();
       int decr_pc = gdbarch_decr_pc_after_break (gdbarch);
 
       if (decr_pc != 0)
@@ -3557,7 +3561,7 @@ resume_stopped_resumed_lwps (struct lwp_
   else
     {
       struct regcache *regcache = get_thread_regcache (lp->ptid);
-      struct gdbarch *gdbarch = get_regcache_arch (regcache);
+      struct gdbarch *gdbarch = regcache->arch ();
 
       TRY
 	{
@@ -3568,7 +3572,7 @@ resume_stopped_resumed_lwps (struct lwp_
 	     immediately, and we're not waiting for this LWP.  */
 	  if (!ptid_match (lp->ptid, *wait_ptid_p))
 	    {
-	      if (breakpoint_inserted_here_p (get_regcache_aspace (regcache), pc))
+	      if (breakpoint_inserted_here_p (regcache->aspace (), pc))
 		leave_stopped = 1;
 	    }
 
@@ -4187,20 +4191,17 @@ void
 linux_proc_pending_signals (int pid, sigset_t *pending,
 			    sigset_t *blocked, sigset_t *ignored)
 {
-  FILE *procfile;
   char buffer[PATH_MAX], fname[PATH_MAX];
-  struct cleanup *cleanup;
 
   sigemptyset (pending);
   sigemptyset (blocked);
   sigemptyset (ignored);
   xsnprintf (fname, sizeof fname, "/proc/%d/status", pid);
-  procfile = gdb_fopen_cloexec (fname, "r");
+  gdb_file_up procfile = gdb_fopen_cloexec (fname, "r");
   if (procfile == NULL)
     error (_("Could not open %s"), fname);
-  cleanup = make_cleanup_fclose (procfile);
 
-  while (fgets (buffer, PATH_MAX, procfile) != NULL)
+  while (fgets (buffer, PATH_MAX, procfile.get ()) != NULL)
     {
       /* Normal queued signals are on the SigPnd line in the status
 	 file.  However, 2.6 kernels also have a "shared" pending
@@ -4219,8 +4220,6 @@ linux_proc_pending_signals (int pid, sig
       else if (startswith (buffer, "SigIgn:\t"))
 	add_line_to_sigset (buffer + 8, ignored);
     }
-
-  do_cleanups (cleanup);
 }
 
 static enum target_xfer_status
@@ -4301,7 +4300,7 @@ linux_child_static_tracepoint_markers_by
   int pid = ptid_get_pid (inferior_ptid);
   VEC(static_tracepoint_marker_p) *markers = NULL;
   struct static_tracepoint_marker *marker = NULL;
-  char *p = s;
+  const char *p = s;
   ptid_t ptid = ptid_build (pid, 0, 0);
 
   /* Pause all */
@@ -4468,13 +4467,13 @@ linux_nat_terminal_inferior (struct targ
   set_sigint_trap ();
 }
 
-/* target_terminal_ours implementation.
+/* target_terminal::ours implementation.
 
    This is a wrapper around child_terminal_ours to add async support (and
-   implement the target_terminal_ours vs target_terminal_ours_for_output
+   implement the target_terminal::ours vs target_terminal::ours_for_output
    distinction).  child_terminal_ours is currently no different than
    child_terminal_ours_for_output.
-   We leave target_terminal_ours_for_output alone, leaving it to
+   We leave target_terminal::ours_for_output alone, leaving it to
    child_terminal_ours_for_output.  */
 
 static void
@@ -4880,6 +4879,17 @@ linux_nat_set_new_thread (struct target_
   linux_nat_new_thread = new_thread;
 }
 
+/* Register a method to call whenever a new thread is attached.  */
+void
+linux_nat_set_delete_thread (struct target_ops *t,
+			     void (*delete_thread) (struct arch_lwp_info *))
+{
+  /* Save the pointer.  We only support a single registered instance
+     of the GNU/Linux native target, so we do not need to map this to
+     T.  */
+  linux_nat_delete_thread = delete_thread;
+}
+
 /* See declaration in linux-nat.h.  */
 
 void
@@ -4962,9 +4972,6 @@ current_lwp_ptid (void)
   return inferior_ptid;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_linux_nat;
-
 void
 _initialize_linux_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-nat.h ./gdb/linux-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/linux-nat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native debugging support for GNU/Linux (LWP layer).
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -165,6 +165,9 @@ void linux_nat_add_target (struct target
 /* Register a method to call whenever a new thread is attached.  */
 void linux_nat_set_new_thread (struct target_ops *, void (*) (struct lwp_info *));
 
+/* Register a method to call whenever a new thread is deleted.  */
+void linux_nat_set_delete_thread (struct target_ops *,
+				  void (*) (struct arch_lwp_info *));
 
 /* Register a method to call whenever a new fork is attached.  */
 typedef void (linux_nat_new_fork_ftype) (struct lwp_info *parent,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-record.c ./gdb/linux-record.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-record.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/linux-record.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Process record and replay target code for GNU/Linux.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -83,7 +83,7 @@
 #define RECORD_Q_XGETQUOTA	(('3' << 8) + 3)
 
 #define OUTPUT_REG(val, num)      phex_nz ((val), \
-    TYPE_LENGTH (gdbarch_register_type (get_regcache_arch (regcache), (num))))
+    TYPE_LENGTH (gdbarch_register_type (regcache->arch (), (num))))
 
 /* Record a memory area of length LEN pointed to by register
    REGNUM.  */
@@ -104,7 +104,7 @@ record_linux_sockaddr (struct regcache *
 {
   gdb_byte *a;
   int addrlen;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
   if (!addr)
@@ -141,7 +141,7 @@ record_linux_msghdr (struct regcache *re
 		     struct linux_record_tdep *tdep, ULONGEST addr)
 {
   gdb_byte *a;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR tmpaddr;
   int tmpint;
@@ -242,7 +242,7 @@ record_linux_system_call (enum gdb_sysca
 			  struct regcache *regcache,
 			  struct linux_record_tdep *tdep)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   ULONGEST tmpulongest;
   CORE_ADDR tmpaddr;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-record.h ./gdb/linux-record.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-record.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/linux-record.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Process record and replay target code for GNU/Linux.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-tdep.c ./gdb/linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux, architecture independent.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -38,6 +38,7 @@
 #include "gdbcmd.h"
 #include "gdb_regex.h"
 #include "common/enum-flags.h"
+#include "common/gdb_optional.h"
 
 #include <ctype.h>
 
@@ -92,6 +93,11 @@ struct smaps_vmflags
 
 static int use_coredump_filter = 1;
 
+/* Whether the value of smaps_vmflags->exclude_coredump should be
+   ignored, including mappings marked with the VM_DONTDUMP flag in
+   the dump.  */
+static int dump_excluded_mappings = 0;
+
 /* This enum represents the signals' numbers on a generic architecture
    running the Linux kernel.  The definition of "generic" comes from
    the file <include/uapi/asm-generic/signal.h>, from the Linux kernel
@@ -278,19 +284,20 @@ linux_get_siginfo_type_with_fields (stru
 
   /* __pid_t */
   pid_type = arch_type (gdbarch, TYPE_CODE_TYPEDEF,
-			TYPE_LENGTH (int_type), "__pid_t");
+			TYPE_LENGTH (int_type) * TARGET_CHAR_BIT, "__pid_t");
   TYPE_TARGET_TYPE (pid_type) = int_type;
   TYPE_TARGET_STUB (pid_type) = 1;
 
   /* __uid_t */
   uid_type = arch_type (gdbarch, TYPE_CODE_TYPEDEF,
-			TYPE_LENGTH (uint_type), "__uid_t");
+			TYPE_LENGTH (uint_type) * TARGET_CHAR_BIT, "__uid_t");
   TYPE_TARGET_TYPE (uid_type) = uint_type;
   TYPE_TARGET_STUB (uid_type) = 1;
 
   /* __clock_t */
   clock_type = arch_type (gdbarch, TYPE_CODE_TYPEDEF,
-			  TYPE_LENGTH (long_type), "__clock_t");
+			  TYPE_LENGTH (long_type) * TARGET_CHAR_BIT,
+			  "__clock_t");
   TYPE_TARGET_TYPE (clock_type) = long_type;
   TYPE_TARGET_STUB (clock_type) = 1;
 
@@ -439,7 +446,7 @@ read_mapping (const char *line,
     p++;
   *endaddr = strtoulst (p, &p, 16);
 
-  p = skip_spaces_const (p);
+  p = skip_spaces (p);
   *permissions = p;
   while (*p && !isspace (*p))
     p++;
@@ -447,7 +454,7 @@ read_mapping (const char *line,
 
   *offset = strtoulst (p, &p, 16);
 
-  p = skip_spaces_const (p);
+  p = skip_spaces (p);
   *device = p;
   while (*p && !isspace (*p))
     p++;
@@ -455,7 +462,7 @@ read_mapping (const char *line,
 
   *inode = strtoulst (p, &p, 10);
 
-  p = skip_spaces_const (p);
+  p = skip_spaces (p);
   *filename = p;
 }
 
@@ -493,6 +500,44 @@ decode_vmflags (char *p, struct smaps_vm
     }
 }
 
+/* Regexes used by mapping_is_anonymous_p.  Put in a structure because
+   they're initialized lazily.  */
+
+struct mapping_regexes
+{
+  /* Matches "/dev/zero" filenames (with or without the "(deleted)"
+     string in the end).  We know for sure, based on the Linux kernel
+     code, that memory mappings whose associated filename is
+     "/dev/zero" are guaranteed to be MAP_ANONYMOUS.  */
+  compiled_regex dev_zero
+    {"^/dev/zero\\( (deleted)\\)\\?$", REG_NOSUB,
+     _("Could not compile regex to match /dev/zero filename")};
+
+  /* Matches "/SYSV%08x" filenames (with or without the "(deleted)"
+     string in the end).  These filenames refer to shared memory
+     (shmem), and memory mappings associated with them are
+     MAP_ANONYMOUS as well.  */
+  compiled_regex shmem_file
+    {"^/\\?SYSV[0-9a-fA-F]\\{8\\}\\( (deleted)\\)\\?$", REG_NOSUB,
+     _("Could not compile regex to match shmem filenames")};
+
+  /* A heuristic we use to try to mimic the Linux kernel's 'n_link ==
+     0' code, which is responsible to decide if it is dealing with a
+     'MAP_SHARED | MAP_ANONYMOUS' mapping.  In other words, if
+     FILE_DELETED matches, it does not necessarily mean that we are
+     dealing with an anonymous shared mapping.  However, there is no
+     easy way to detect this currently, so this is the best
+     approximation we have.
+
+     As a result, GDB will dump readonly pages of deleted executables
+     when using the default value of coredump_filter (0x33), while the
+     Linux kernel will not dump those pages.  But we can live with
+     that.  */
+  compiled_regex file_deleted
+    {" (deleted)$", REG_NOSUB,
+     _("Could not compile regex to match '<file> (deleted)'")};
+};
+
 /* Return 1 if the memory mapping is anonymous, 0 otherwise.
 
    FILENAME is the name of the file present in the first line of the
@@ -506,52 +551,16 @@ decode_vmflags (char *p, struct smaps_vm
 static int
 mapping_is_anonymous_p (const char *filename)
 {
-  static regex_t dev_zero_regex, shmem_file_regex, file_deleted_regex;
+  static gdb::optional<mapping_regexes> regexes;
   static int init_regex_p = 0;
 
   if (!init_regex_p)
     {
-      struct cleanup *c = make_cleanup (null_cleanup, NULL);
-
       /* Let's be pessimistic and assume there will be an error while
 	 compiling the regex'es.  */
       init_regex_p = -1;
 
-      /* DEV_ZERO_REGEX matches "/dev/zero" filenames (with or
-	 without the "(deleted)" string in the end).  We know for
-	 sure, based on the Linux kernel code, that memory mappings
-	 whose associated filename is "/dev/zero" are guaranteed to be
-	 MAP_ANONYMOUS.  */
-      compile_rx_or_error (&dev_zero_regex, "^/dev/zero\\( (deleted)\\)\\?$",
-			   _("Could not compile regex to match /dev/zero "
-			     "filename"));
-      /* SHMEM_FILE_REGEX matches "/SYSV%08x" filenames (with or
-	 without the "(deleted)" string in the end).  These filenames
-	 refer to shared memory (shmem), and memory mappings
-	 associated with them are MAP_ANONYMOUS as well.  */
-      compile_rx_or_error (&shmem_file_regex,
-			   "^/\\?SYSV[0-9a-fA-F]\\{8\\}\\( (deleted)\\)\\?$",
-			   _("Could not compile regex to match shmem "
-			     "filenames"));
-      /* FILE_DELETED_REGEX is a heuristic we use to try to mimic the
-	 Linux kernel's 'n_link == 0' code, which is responsible to
-	 decide if it is dealing with a 'MAP_SHARED | MAP_ANONYMOUS'
-	 mapping.  In other words, if FILE_DELETED_REGEX matches, it
-	 does not necessarily mean that we are dealing with an
-	 anonymous shared mapping.  However, there is no easy way to
-	 detect this currently, so this is the best approximation we
-	 have.
-
-	 As a result, GDB will dump readonly pages of deleted
-	 executables when using the default value of coredump_filter
-	 (0x33), while the Linux kernel will not dump those pages.
-	 But we can live with that.  */
-      compile_rx_or_error (&file_deleted_regex, " (deleted)$",
-			   _("Could not compile regex to match "
-			     "'<file> (deleted)'"));
-      /* We will never release these regexes, so just discard the
-	 cleanups.  */
-      discard_cleanups (c);
+      regexes.emplace ();
 
       /* If we reached this point, then everything succeeded.  */
       init_regex_p = 1;
@@ -573,9 +582,9 @@ mapping_is_anonymous_p (const char *file
     }
 
   if (*filename == '\0'
-      || regexec (&dev_zero_regex, filename, 0, NULL, 0) == 0
-      || regexec (&shmem_file_regex, filename, 0, NULL, 0) == 0
-      || regexec (&file_deleted_regex, filename, 0, NULL, 0) == 0)
+      || regexes->dev_zero.exec (filename, 0, NULL, 0) == 0
+      || regexes->shmem_file.exec (filename, 0, NULL, 0) == 0
+      || regexes->file_deleted.exec (filename, 0, NULL, 0) == 0)
     return 1;
 
   return 0;
@@ -651,7 +660,7 @@ dump_mapping_p (filter_flags filterflags
 	return 0;
 
       /* Check if we should exclude this mapping.  */
-      if (v->exclude_coredump)
+      if (!dump_excluded_mappings && v->exclude_coredump)
 	return 0;
 
       /* Update our notion of whether this mapping is shared or
@@ -737,7 +746,7 @@ linux_info_proc (struct gdbarch *gdbarch
       pid = current_inferior ()->pid;
     }
 
-  args = skip_spaces_const (args);
+  args = skip_spaces (args);
   if (args && args[0])
     error (_("Too many parameters: %s"), args);
 
@@ -745,13 +754,10 @@ linux_info_proc (struct gdbarch *gdbarch
   if (cmdline_f)
     {
       xsnprintf (filename, sizeof filename, "/proc/%ld/cmdline", pid);
-      data = target_fileio_read_stralloc (NULL, filename);
-      if (data)
-	{
-	  struct cleanup *cleanup = make_cleanup (xfree, data);
-          printf_filtered ("cmdline = '%s'\n", data);
-	  do_cleanups (cleanup);
-	}
+      gdb::unique_xmalloc_ptr<char> cmdline
+	= target_fileio_read_stralloc (NULL, filename);
+      if (cmdline)
+	printf_filtered ("cmdline = '%s'\n", cmdline.get ());
       else
 	warning (_("unable to open /proc file '%s'"), filename);
     }
@@ -784,10 +790,10 @@ linux_info_proc (struct gdbarch *gdbarch
   if (mappings_f)
     {
       xsnprintf (filename, sizeof filename, "/proc/%ld/maps", pid);
-      data = target_fileio_read_stralloc (NULL, filename);
-      if (data)
+      gdb::unique_xmalloc_ptr<char> map
+	= target_fileio_read_stralloc (NULL, filename);
+      if (map != NULL)
 	{
-	  struct cleanup *cleanup = make_cleanup (xfree, data);
 	  char *line;
 
 	  printf_filtered (_("Mapped address spaces:\n\n"));
@@ -806,7 +812,9 @@ linux_info_proc (struct gdbarch *gdbarch
 			   "      Size", "    Offset", "objfile");
 	    }
 
-	  for (line = strtok (data, "\n"); line; line = strtok (NULL, "\n"))
+	  for (line = strtok (map.get (), "\n");
+	       line;
+	       line = strtok (NULL, "\n"))
 	    {
 	      ULONGEST addr, endaddr, offset, inode;
 	      const char *permissions, *device, *filename;
@@ -836,8 +844,6 @@ linux_info_proc (struct gdbarch *gdbarch
 				   *filename? filename : "");
 	        }
 	    }
-
-	  do_cleanups (cleanup);
 	}
       else
 	warning (_("unable to open /proc file '%s'"), filename);
@@ -845,29 +851,26 @@ linux_info_proc (struct gdbarch *gdbarch
   if (status_f)
     {
       xsnprintf (filename, sizeof filename, "/proc/%ld/status", pid);
-      data = target_fileio_read_stralloc (NULL, filename);
-      if (data)
-	{
-	  struct cleanup *cleanup = make_cleanup (xfree, data);
-          puts_filtered (data);
-	  do_cleanups (cleanup);
-	}
+      gdb::unique_xmalloc_ptr<char> status
+	= target_fileio_read_stralloc (NULL, filename);
+      if (status)
+	puts_filtered (status.get ());
       else
 	warning (_("unable to open /proc file '%s'"), filename);
     }
   if (stat_f)
     {
       xsnprintf (filename, sizeof filename, "/proc/%ld/stat", pid);
-      data = target_fileio_read_stralloc (NULL, filename);
-      if (data)
+      gdb::unique_xmalloc_ptr<char> statstr
+	= target_fileio_read_stralloc (NULL, filename);
+      if (statstr)
 	{
-	  struct cleanup *cleanup = make_cleanup (xfree, data);
-	  const char *p = data;
+	  const char *p = statstr.get ();
 
 	  printf_filtered (_("Process: %s\n"),
 			   pulongest (strtoulst (p, &p, 10)));
 
-	  p = skip_spaces_const (p);
+	  p = skip_spaces (p);
 	  if (*p == '(')
 	    {
 	      /* ps command also relies on no trailing fields
@@ -881,7 +884,7 @@ linux_info_proc (struct gdbarch *gdbarch
 		}
 	    }
 
-	  p = skip_spaces_const (p);
+	  p = skip_spaces (p);
 	  if (*p)
 	    printf_filtered (_("State: %c\n"), *p++);
 
@@ -987,7 +990,6 @@ linux_info_proc (struct gdbarch *gdbarch
 	    printf_filtered (_("wchan (system call): %s\n"),
 			     hex_string (strtoulst (p, &p, 10)));
 #endif
-	  do_cleanups (cleanup);
 	}
       else
 	warning (_("unable to open /proc file '%s'"), filename);
@@ -1001,10 +1003,9 @@ linux_core_info_proc_mappings (struct gd
 {
   asection *section;
   ULONGEST count, page_size;
-  unsigned char *descdata, *filenames, *descend, *contents;
+  unsigned char *descdata, *filenames, *descend;
   size_t note_size;
   unsigned int addr_size_bits, addr_size;
-  struct cleanup *cleanup;
   struct gdbarch *core_gdbarch = gdbarch_from_bfd (core_bfd);
   /* We assume this for reading 64-bit core files.  */
   gdb_static_assert (sizeof (ULONGEST) >= 8);
@@ -1023,12 +1024,12 @@ linux_core_info_proc_mappings (struct gd
   if (note_size < 2 * addr_size)
     error (_("malformed core note - too short for header"));
 
-  contents = (unsigned char *) xmalloc (note_size);
-  cleanup = make_cleanup (xfree, contents);
-  if (!bfd_get_section_contents (core_bfd, section, contents, 0, note_size))
+  gdb::def_vector<unsigned char> contents (note_size);
+  if (!bfd_get_section_contents (core_bfd, section, contents.data (),
+				 0, note_size))
     error (_("could not get core note contents"));
 
-  descdata = contents;
+  descdata = contents.data ();
   descend = descdata + note_size;
 
   if (descdata[note_size - 1] != '\0')
@@ -1093,8 +1094,6 @@ linux_core_info_proc_mappings (struct gd
 
       filenames += 1 + strlen ((char *) filenames);
     }
-
-  do_cleanups (cleanup);
 }
 
 /* Implement "info proc" for a corefile.  */
@@ -1124,6 +1123,26 @@ linux_core_info_proc (struct gdbarch *gd
     error (_("unable to handle request"));
 }
 
+/* Read siginfo data from the core, if possible.  Returns -1 on
+   failure.  Otherwise, returns the number of bytes read.  READBUF,
+   OFFSET, and LEN are all as specified by the to_xfer_partial
+   interface.  */
+
+static LONGEST
+linux_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf,
+			 ULONGEST offset, ULONGEST len)
+{
+  thread_section_name section_name (".note.linuxcore.siginfo", inferior_ptid);
+  asection *section = bfd_get_section_by_name (core_bfd, section_name.c_str ());
+  if (section == NULL)
+    return -1;
+
+  if (!bfd_get_section_contents (core_bfd, section, readbuf, offset, len))
+    return -1;
+
+  return len;
+}
+
 typedef int linux_find_memory_region_ftype (ULONGEST vaddr, ULONGEST size,
 					    ULONGEST offset, ULONGEST inode,
 					    int read, int write,
@@ -1140,7 +1159,6 @@ linux_find_memory_regions_full (struct g
 {
   char mapsfilename[100];
   char coredumpfilter_name[100];
-  char *data, *coredumpfilterdata;
   pid_t pid;
   /* Default dump behavior of coredump_filter (0x33), according to
      Documentation/filesystems/proc.txt from the Linux kernel
@@ -1160,20 +1178,20 @@ linux_find_memory_regions_full (struct g
     {
       xsnprintf (coredumpfilter_name, sizeof (coredumpfilter_name),
 		 "/proc/%d/coredump_filter", pid);
-      coredumpfilterdata = target_fileio_read_stralloc (NULL,
-							coredumpfilter_name);
+      gdb::unique_xmalloc_ptr<char> coredumpfilterdata
+	= target_fileio_read_stralloc (NULL, coredumpfilter_name);
       if (coredumpfilterdata != NULL)
 	{
 	  unsigned int flags;
 
-	  sscanf (coredumpfilterdata, "%x", &flags);
+	  sscanf (coredumpfilterdata.get (), "%x", &flags);
 	  filterflags = (enum filter_flag) flags;
-	  xfree (coredumpfilterdata);
 	}
     }
 
   xsnprintf (mapsfilename, sizeof mapsfilename, "/proc/%d/smaps", pid);
-  data = target_fileio_read_stralloc (NULL, mapsfilename);
+  gdb::unique_xmalloc_ptr<char> data
+    = target_fileio_read_stralloc (NULL, mapsfilename);
   if (data == NULL)
     {
       /* Older Linux kernels did not support /proc/PID/smaps.  */
@@ -1183,10 +1201,9 @@ linux_find_memory_regions_full (struct g
 
   if (data != NULL)
     {
-      struct cleanup *cleanup = make_cleanup (xfree, data);
       char *line, *t;
 
-      line = strtok_r (data, "\n", &t);
+      line = strtok_r (data.get (), "\n", &t);
       while (line != NULL)
 	{
 	  ULONGEST addr, endaddr, offset, inode;
@@ -1305,7 +1322,6 @@ linux_find_memory_regions_full (struct g
 		  filename, obfd);
 	}
 
-      do_cleanups (cleanup);
       return 0;
     }
 
@@ -1502,17 +1518,12 @@ static char *
 linux_make_mappings_corefile_notes (struct gdbarch *gdbarch, bfd *obfd,
 				    char *note_data, int *note_size)
 {
-  struct cleanup *cleanup;
-  struct obstack data_obstack, filename_obstack;
   struct linux_make_mappings_data mapping_data;
   struct type *long_type
     = arch_integer_type (gdbarch, gdbarch_long_bit (gdbarch), 0, "long");
   gdb_byte buf[sizeof (ULONGEST)];
 
-  obstack_init (&data_obstack);
-  cleanup = make_cleanup_obstack_free (&data_obstack);
-  obstack_init (&filename_obstack);
-  make_cleanup_obstack_free (&filename_obstack);
+  auto_obstack data_obstack, filename_obstack;
 
   mapping_data.file_count = 0;
   mapping_data.data_obstack = &data_obstack;
@@ -1545,7 +1556,6 @@ linux_make_mappings_corefile_notes (stru
 				      obstack_object_size (&data_obstack));
     }
 
-  do_cleanups (cleanup);
   return note_data;
 }
 
@@ -1609,7 +1619,7 @@ linux_collect_thread_registers (const st
 				char *note_data, int *note_size,
 				enum gdb_signal stop_signal)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct linux_collect_regset_section_cb_data data;
 
   data.gdbarch = gdbarch;
@@ -1631,40 +1641,30 @@ linux_collect_thread_registers (const st
   return data.note_data;
 }
 
-/* Fetch the siginfo data for the current thread, if it exists.  If
-   there is no data, or we could not read it, return NULL.  Otherwise,
-   return a newly malloc'd buffer holding the data and fill in *SIZE
-   with the size of the data.  The caller is responsible for freeing
-   the data.  */
+/* Fetch the siginfo data for the specified thread, if it exists.  If
+   there is no data, or we could not read it, return an empty
+   buffer.  */
 
-static gdb_byte *
-linux_get_siginfo_data (struct gdbarch *gdbarch, LONGEST *size)
+static gdb::byte_vector
+linux_get_siginfo_data (thread_info *thread, struct gdbarch *gdbarch)
 {
   struct type *siginfo_type;
-  gdb_byte *buf;
   LONGEST bytes_read;
-  struct cleanup *cleanups;
 
   if (!gdbarch_get_siginfo_type_p (gdbarch))
-    return NULL;
-  
+    return gdb::byte_vector ();
+
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
+  inferior_ptid = thread->ptid;
+
   siginfo_type = gdbarch_get_siginfo_type (gdbarch);
 
-  buf = (gdb_byte *) xmalloc (TYPE_LENGTH (siginfo_type));
-  cleanups = make_cleanup (xfree, buf);
+  gdb::byte_vector buf (TYPE_LENGTH (siginfo_type));
 
   bytes_read = target_read (&current_target, TARGET_OBJECT_SIGNAL_INFO, NULL,
-			    buf, 0, TYPE_LENGTH (siginfo_type));
-  if (bytes_read == TYPE_LENGTH (siginfo_type))
-    {
-      discard_cleanups (cleanups);
-      *size = bytes_read;
-    }
-  else
-    {
-      do_cleanups (cleanups);
-      buf = NULL;
-    }
+			    buf.data (), 0, TYPE_LENGTH (siginfo_type));
+  if (bytes_read != TYPE_LENGTH (siginfo_type))
+    buf.clear ();
 
   return buf;
 }
@@ -1685,20 +1685,12 @@ static void
 linux_corefile_thread (struct thread_info *info,
 		       struct linux_corefile_thread_data *args)
 {
-  struct cleanup *old_chain;
   struct regcache *regcache;
-  gdb_byte *siginfo_data;
-  LONGEST siginfo_size = 0;
 
   regcache = get_thread_arch_regcache (info->ptid, args->gdbarch);
 
-  old_chain = save_inferior_ptid ();
-  inferior_ptid = info->ptid;
   target_fetch_registers (regcache, -1);
-  siginfo_data = linux_get_siginfo_data (args->gdbarch, &siginfo_size);
-  do_cleanups (old_chain);
-
-  old_chain = make_cleanup (xfree, siginfo_data);
+  gdb::byte_vector siginfo_data = linux_get_siginfo_data (info, args->gdbarch);
 
   args->note_data = linux_collect_thread_registers
     (regcache, info->ptid, args->obfd, args->note_data,
@@ -1707,14 +1699,13 @@ linux_corefile_thread (struct thread_inf
   /* Don't return anything if we got no register information above,
      such a core file is useless.  */
   if (args->note_data != NULL)
-    if (siginfo_data != NULL)
+    if (!siginfo_data.empty ())
       args->note_data = elfcore_write_note (args->obfd,
 					    args->note_data,
 					    args->note_size,
 					    "CORE", NT_SIGINFO,
-					    siginfo_data, siginfo_size);
-
-  do_cleanups (old_chain);
+					    siginfo_data.data (),
+					    siginfo_data.size ());
 }
 
 /* Fill the PRPSINFO structure with information about the process being
@@ -1730,15 +1721,9 @@ linux_fill_prpsinfo (struct elf_internal
   /* The filename which we will use to obtain some info about the process.
      We will basically use this to store the `/proc/PID/FILENAME' file.  */
   char filename[100];
-  /* The full name of the program which generated the corefile.  */
-  char *fname;
   /* The basename of the executable.  */
   const char *basename;
-  /* The arguments of the program.  */
-  char *psargs;
   char *infargs;
-  /* The contents of `/proc/PID/stat' and `/proc/PID/status' files.  */
-  char *proc_stat, *proc_status;
   /* Temporary buffer.  */
   char *tmpstr;
   /* The valid states of a process, according to the Linux kernel.  */
@@ -1755,56 +1740,54 @@ linux_fill_prpsinfo (struct elf_internal
   long pr_nice;
   /* The number of fields read by `sscanf'.  */
   int n_fields = 0;
-  /* Cleanups.  */
-  struct cleanup *c;
 
   gdb_assert (p != NULL);
 
   /* Obtaining PID and filename.  */
   pid = ptid_get_pid (inferior_ptid);
   xsnprintf (filename, sizeof (filename), "/proc/%d/cmdline", (int) pid);
-  fname = target_fileio_read_stralloc (NULL, filename);
+  /* The full name of the program which generated the corefile.  */
+  gdb::unique_xmalloc_ptr<char> fname
+    = target_fileio_read_stralloc (NULL, filename);
 
-  if (fname == NULL || *fname == '\0')
+  if (fname == NULL || fname.get ()[0] == '\0')
     {
       /* No program name was read, so we won't be able to retrieve more
 	 information about the process.  */
-      xfree (fname);
       return 0;
     }
 
-  c = make_cleanup (xfree, fname);
   memset (p, 0, sizeof (*p));
 
   /* Defining the PID.  */
   p->pr_pid = pid;
 
   /* Copying the program name.  Only the basename matters.  */
-  basename = lbasename (fname);
+  basename = lbasename (fname.get ());
   strncpy (p->pr_fname, basename, sizeof (p->pr_fname));
   p->pr_fname[sizeof (p->pr_fname) - 1] = '\0';
 
   infargs = get_inferior_args ();
 
-  psargs = xstrdup (fname);
+  /* The arguments of the program.  */
+  std::string psargs = fname.get ();
   if (infargs != NULL)
-    psargs = reconcat (psargs, psargs, " ", infargs, (char *) NULL);
+    psargs = psargs + " " + infargs;
 
-  make_cleanup (xfree, psargs);
-
-  strncpy (p->pr_psargs, psargs, sizeof (p->pr_psargs));
+  strncpy (p->pr_psargs, psargs.c_str (), sizeof (p->pr_psargs));
   p->pr_psargs[sizeof (p->pr_psargs) - 1] = '\0';
 
   xsnprintf (filename, sizeof (filename), "/proc/%d/stat", (int) pid);
-  proc_stat = target_fileio_read_stralloc (NULL, filename);
-  make_cleanup (xfree, proc_stat);
+  /* The contents of `/proc/PID/stat'.  */
+  gdb::unique_xmalloc_ptr<char> proc_stat_contents
+    = target_fileio_read_stralloc (NULL, filename);
+  char *proc_stat = proc_stat_contents.get ();
 
   if (proc_stat == NULL || *proc_stat == '\0')
     {
       /* Despite being unable to read more information about the
 	 process, we return 1 here because at least we have its
 	 command line, PID and arguments.  */
-      do_cleanups (c);
       return 1;
     }
 
@@ -1826,10 +1809,7 @@ linux_fill_prpsinfo (struct elf_internal
   /* ps command also relies on no trailing fields ever contain ')'.  */
   proc_stat = strrchr (proc_stat, ')');
   if (proc_stat == NULL)
-    {
-      do_cleanups (c);
-      return 1;
-    }
+    return 1;
   proc_stat++;
 
   proc_stat = skip_spaces (proc_stat);
@@ -1855,7 +1835,6 @@ linux_fill_prpsinfo (struct elf_internal
       /* Again, we couldn't read the complementary information about
 	 the process state.  However, we already have minimal
 	 information, so we just return 1 here.  */
-      do_cleanups (c);
       return 1;
     }
 
@@ -1877,13 +1856,14 @@ linux_fill_prpsinfo (struct elf_internal
   /* Finally, obtaining the UID and GID.  For that, we read and parse the
      contents of the `/proc/PID/status' file.  */
   xsnprintf (filename, sizeof (filename), "/proc/%d/status", (int) pid);
-  proc_status = target_fileio_read_stralloc (NULL, filename);
-  make_cleanup (xfree, proc_status);
+  /* The contents of `/proc/PID/status'.  */
+  gdb::unique_xmalloc_ptr<char> proc_status_contents
+    = target_fileio_read_stralloc (NULL, filename);
+  char *proc_status = proc_status_contents.get ();
 
   if (proc_status == NULL || *proc_status == '\0')
     {
       /* Returning 1 since we already have a bunch of information.  */
-      do_cleanups (c);
       return 1;
     }
 
@@ -1913,8 +1893,6 @@ linux_fill_prpsinfo (struct elf_internal
 	p->pr_gid = strtol (tmpstr, &tmpstr, 10);
     }
 
-  do_cleanups (c);
-
   return 1;
 }
 
@@ -1936,23 +1914,14 @@ linux_make_corefile_notes (struct gdbarc
 
   if (linux_fill_prpsinfo (&prpsinfo))
     {
-      if (gdbarch_elfcore_write_linux_prpsinfo_p (gdbarch))
-	{
-	  note_data = gdbarch_elfcore_write_linux_prpsinfo (gdbarch, obfd,
-							    note_data, note_size,
-							    &prpsinfo);
-	}
+      if (gdbarch_ptr_bit (gdbarch) == 64)
+	note_data = elfcore_write_linux_prpsinfo64 (obfd,
+						    note_data, note_size,
+						    &prpsinfo);
       else
-	{
-	  if (gdbarch_ptr_bit (gdbarch) == 64)
-	    note_data = elfcore_write_linux_prpsinfo64 (obfd,
-							note_data, note_size,
-							&prpsinfo);
-	  else
-	    note_data = elfcore_write_linux_prpsinfo32 (obfd,
-							note_data, note_size,
-							&prpsinfo);
-	}
+	note_data = elfcore_write_linux_prpsinfo32 (obfd,
+						    note_data, note_size,
+						    &prpsinfo);
     }
 
   /* Thread register information.  */
@@ -2285,7 +2254,6 @@ linux_vsyscall_range_raw (struct gdbarch
 {
   char filename[100];
   long pid;
-  char *data;
 
   if (target_auxv_search (&current_target, AT_SYSINFO_EHDR, &range->start) <= 0)
     return 0;
@@ -2334,14 +2302,14 @@ linux_vsyscall_range_raw (struct gdbarch
      takes several seconds.  Also note that "smaps", what we read for
      determining core dump mappings, is even slower than "maps".  */
   xsnprintf (filename, sizeof filename, "/proc/%ld/task/%ld/maps", pid, pid);
-  data = target_fileio_read_stralloc (NULL, filename);
+  gdb::unique_xmalloc_ptr<char> data
+    = target_fileio_read_stralloc (NULL, filename);
   if (data != NULL)
     {
-      struct cleanup *cleanup = make_cleanup (xfree, data);
       char *line;
       char *saveptr = NULL;
 
-      for (line = strtok_r (data, "\n", &saveptr);
+      for (line = strtok_r (data.get (), "\n", &saveptr);
 	   line != NULL;
 	   line = strtok_r (NULL, "\n", &saveptr))
 	{
@@ -2355,12 +2323,9 @@ linux_vsyscall_range_raw (struct gdbarch
 		p++;
 	      endaddr = strtoulst (p, &p, 16);
 	      range->length = endaddr - addr;
-	      do_cleanups (cleanup);
 	      return 1;
 	    }
 	}
-
-      do_cleanups (cleanup);
     }
   else
     warning (_("unable to open /proc file '%s'"), filename);
@@ -2429,7 +2394,7 @@ linux_infcall_mmap (CORE_ADDR size, unsi
   arg[ARG_FD] = value_from_longest (builtin_type (gdbarch)->builtin_int, -1);
   arg[ARG_OFFSET] = value_from_longest (builtin_type (gdbarch)->builtin_int64,
 					0);
-  addr_val = call_function_by_hand (mmap_val, ARG_LAST, arg);
+  addr_val = call_function_by_hand (mmap_val, NULL, ARG_LAST, arg);
   retval = value_as_address (addr_val);
   if (retval == (CORE_ADDR) -1)
     error (_("Failed inferior mmap call for %s bytes, errno is changed."),
@@ -2458,7 +2423,7 @@ linux_infcall_munmap (CORE_ADDR addr, CO
   /* Assuming sizeof (unsigned long) == sizeof (size_t).  */
   arg[ARG_LENGTH] = value_from_ulongest
 		    (builtin_type (gdbarch)->builtin_unsigned_long, size);
-  retval_val = call_function_by_hand (munmap_val, ARG_LAST, arg);
+  retval_val = call_function_by_hand (munmap_val, NULL, ARG_LAST, arg);
   retval = value_as_long (retval_val);
   if (retval != 0)
     warning (_("Failed inferior munmap call at %s for %s bytes, "
@@ -2509,6 +2474,17 @@ show_use_coredump_filter (struct ui_file
 			    " corefiles is %s.\n"), value);
 }
 
+/* Display whether the gcore command is dumping mappings marked with
+   the VM_DONTDUMP flag.  */
+
+static void
+show_dump_excluded_mappings (struct ui_file *file, int from_tty,
+			     struct cmd_list_element *c, const char *value)
+{
+  fprintf_filtered (file, _("Dumping of mappings marked with the VM_DONTDUMP"
+			    " flag is %s.\n"), value);
+}
+
 /* To be called from the various GDB_OSABI_LINUX handlers for the
    various GNU/Linux architectures and machine types.  */
 
@@ -2518,6 +2494,7 @@ linux_init_abi (struct gdbarch_info info
   set_gdbarch_core_pid_to_str (gdbarch, linux_core_pid_to_str);
   set_gdbarch_info_proc (gdbarch, linux_info_proc);
   set_gdbarch_core_info_proc (gdbarch, linux_core_info_proc);
+  set_gdbarch_core_xfer_siginfo (gdbarch, linux_core_xfer_siginfo);
   set_gdbarch_find_memory_regions (gdbarch, linux_find_memory_regions);
   set_gdbarch_make_corefile_notes (gdbarch, linux_make_corefile_notes);
   set_gdbarch_has_shared_address_space (gdbarch,
@@ -2532,9 +2509,6 @@ linux_init_abi (struct gdbarch_info info
   set_gdbarch_get_siginfo_type (gdbarch, linux_get_siginfo_type);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_linux_tdep;
-
 void
 _initialize_linux_tdep (void)
 {
@@ -2559,4 +2533,16 @@ of /proc/PID/coredump_filter when genera
 about this file, refer to the manpage of core(5)."),
 			   NULL, show_use_coredump_filter,
 			   &setlist, &showlist);
+
+  add_setshow_boolean_cmd ("dump-excluded-mappings", class_files,
+			   &dump_excluded_mappings, _("\
+Set whether gcore should dump mappings marked with the VM_DONTDUMP flag."),
+			   _("\
+Show whether gcore should dump mappings marked with the VM_DONTDUMP flag."),
+			   _("\
+Use this command to set whether gcore should dump mappings marked with the\n\
+VM_DONTDUMP flag (\"dd\" in /proc/PID/smaps) when generating the corefile.  For\n\
+more information about this file, refer to the manpage of proc(5) and core(5)."),
+			   NULL, show_dump_excluded_mappings,
+			   &setlist, &showlist);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-tdep.h ./gdb/linux-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/linux-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux, architecture independent.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-thread-db.c ./gdb/linux-thread-db.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/linux-thread-db.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/linux-thread-db.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* libthread_db assisted debugging support, generic parts.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -92,7 +92,7 @@ show_auto_load_thread_db (struct ui_file
 }
 
 static void
-set_libthread_db_search_path (char *ignored, int from_tty,
+set_libthread_db_search_path (const char *ignored, int from_tty,
 			      struct cmd_list_element *c)
 {
   if (*libthread_db_search_path == '\0')
@@ -251,16 +251,21 @@ delete_thread_db_info (int pid)
 /* Use "struct private_thread_info" to cache thread state.  This is
    a substantial optimization.  */
 
-struct private_thread_info
+struct thread_db_thread_info : public private_thread_info
 {
   /* Flag set when we see a TD_DEATH event for this thread.  */
-  unsigned int dying:1;
+  bool dying = false;
 
   /* Cached thread state.  */
-  td_thrhandle_t th;
-  thread_t tid;
+  td_thrhandle_t th {};
+  thread_t tid {};
 };
-
+
+static thread_db_thread_info *
+get_thread_db_thread_info (thread_info *thread)
+{
+  return static_cast<thread_db_thread_info *> (thread->priv.get ());
+}
 
 static const char *
 thread_db_err_str (td_err_e err)
@@ -695,7 +700,7 @@ try_thread_db_load (const char *library,
 
   /* Do not save system library name, that one is always trusted.  */
   if (strchr (library, '/') != NULL)
-    info->filename = gdb_realpath (library);
+    info->filename = gdb_realpath (library).release ();
 
   if (try_thread_db_load_1 (info))
     return 1;
@@ -1040,7 +1045,7 @@ thread_db_inferior_created (struct targe
    from libthread_db thread state information.  */
 
 static void
-update_thread_state (struct private_thread_info *priv,
+update_thread_state (thread_db_thread_info *priv,
 		     const td_thrinfo_t *ti_p)
 {
   priv->dying = (ti_p->ti_state == TD_THR_UNKNOWN
@@ -1057,8 +1062,6 @@ record_thread (struct thread_db_info *in
 	       ptid_t ptid, const td_thrhandle_t *th_p,
 	       const td_thrinfo_t *ti_p)
 {
-  struct private_thread_info *priv;
-
   /* A thread ID of zero may mean the thread library has not
      initialized yet.  Leave private == NULL until the thread library
      has initialized.  */
@@ -1066,7 +1069,7 @@ record_thread (struct thread_db_info *in
     return tp;
 
   /* Construct the thread's private data.  */
-  priv = XCNEW (struct private_thread_info);
+  thread_db_thread_info *priv = new thread_db_thread_info;
 
   priv->th = *th_p;
   priv->tid = ti_p->ti_tid;
@@ -1078,7 +1081,7 @@ record_thread (struct thread_db_info *in
   if (tp == NULL || tp->state == THREAD_EXITED)
     tp = add_thread_with_info (ptid, priv);
   else
-    tp->priv = priv;
+    tp->priv.reset (priv);
 
   if (target_has_execution)
     check_thread_signals ();
@@ -1090,12 +1093,8 @@ static void
 thread_db_detach (struct target_ops *ops, const char *args, int from_tty)
 {
   struct target_ops *target_beneath = find_target_beneath (ops);
-  struct thread_db_info *info;
 
-  info = get_thread_db_info (ptid_get_pid (inferior_ptid));
-
-  if (info)
-    delete_thread_db_info (ptid_get_pid (inferior_ptid));
+  delete_thread_db_info (ptid_get_pid (inferior_ptid));
 
   target_beneath->to_detach (target_beneath, args, from_tty);
 
@@ -1381,11 +1380,10 @@ thread_db_pid_to_str (struct target_ops 
   if (thread_info != NULL && thread_info->priv != NULL)
     {
       static char buf[64];
-      thread_t tid;
+      thread_db_thread_info *priv = get_thread_db_thread_info (thread_info);
 
-      tid = thread_info->priv->tid;
       snprintf (buf, sizeof (buf), "Thread 0x%lx (LWP %ld)",
-		(unsigned long) tid, ptid_get_lwp (ptid));
+		(unsigned long) priv->tid, ptid_get_lwp (ptid));
 
       return buf;
     }
@@ -1404,12 +1402,47 @@ thread_db_extra_thread_info (struct targ
   if (info->priv == NULL)
     return NULL;
 
-  if (info->priv->dying)
+  thread_db_thread_info *priv = get_thread_db_thread_info (info);
+
+  if (priv->dying)
     return "Exiting";
 
   return NULL;
 }
 
+/* Return pointer to the thread_info struct which corresponds to
+   THREAD_HANDLE (having length HANDLE_LEN).  */
+
+static struct thread_info *
+thread_db_thread_handle_to_thread_info (struct target_ops *ops,
+					const gdb_byte *thread_handle,
+					int handle_len,
+					struct inferior *inf)
+{
+  struct thread_info *tp;
+  thread_t handle_tid;
+
+  /* Thread handle sizes must match in order to proceed.  We don't use an
+     assert here because the resulting internal error will cause GDB to
+     exit.  This isn't necessarily an internal error due to the possibility
+     of garbage being passed as the thread handle via the python interface.  */
+  if (handle_len != sizeof (handle_tid))
+    error (_("Thread handle size mismatch: %d vs %zu (from libthread_db)"),
+	   handle_len, sizeof (handle_tid));
+
+  handle_tid = * (const thread_t *) thread_handle;
+
+  ALL_NON_EXITED_THREADS (tp)
+    {
+      thread_db_thread_info *priv = get_thread_db_thread_info (tp);
+
+      if (tp->inf == inf && priv != NULL && handle_tid == priv->tid)
+        return tp;
+    }
+
+  return NULL;
+}
+
 /* Get the address of the thread local variable in load module LM which
    is stored at OFFSET within the thread local storage for thread PTID.  */
 
@@ -1433,9 +1466,8 @@ thread_db_get_thread_local_address (stru
     {
       td_err_e err;
       psaddr_t address;
-      struct thread_db_info *info;
-
-      info = get_thread_db_info (ptid_get_pid (ptid));
+      thread_db_info *info = get_thread_db_info (ptid_get_pid (ptid));
+      thread_db_thread_info *priv = get_thread_db_thread_info (thread_info);
 
       /* Finally, get the address of the variable.  */
       if (lm != 0)
@@ -1448,7 +1480,7 @@ thread_db_get_thread_local_address (stru
 	  /* Note the cast through uintptr_t: this interface only works if
 	     a target address fits in a psaddr_t, which is a host pointer.
 	     So a 32-bit debugger can not access 64-bit TLS through this.  */
-	  err = info->td_thr_tls_get_addr_p (&thread_info->priv->th,
+	  err = info->td_thr_tls_get_addr_p (&priv->th,
 					     (psaddr_t)(uintptr_t) lm,
 					     offset, &address);
 	}
@@ -1466,8 +1498,7 @@ thread_db_get_thread_local_address (stru
 	     PR libc/16831 due to GDB PR threads/16954 LOAD_MODULE is also NULL.
 	     The constant number 1 depends on GNU __libc_setup_tls
 	     initialization of l_tls_modid to 1.  */
-	  err = info->td_thr_tlsbase_p (&thread_info->priv->th,
-					1, &address);
+	  err = info->td_thr_tlsbase_p (&priv->th, 1, &address);
 	  address = (char *) address + offset;
 	}
 
@@ -1549,7 +1580,7 @@ info_auto_load_libthread_db_compare (con
 /* Implement 'info auto-load libthread-db'.  */
 
 static void
-info_auto_load_libthread_db (char *args, int from_tty)
+info_auto_load_libthread_db (const char *args, int from_tty)
 {
   struct ui_out *uiout = current_uiout;
   const char *cs = args ? args : "";
@@ -1560,7 +1591,7 @@ info_auto_load_libthread_db (char *args,
   char *pids;
   int i;
 
-  cs = skip_spaces_const (cs);
+  cs = skip_spaces (cs);
   if (*cs)
     error (_("'info auto-load libthread-db' does not accept any parameters"));
 
@@ -1623,46 +1654,49 @@ info_auto_load_libthread_db (char *args,
   if (info_count > 0 && args == auto_load_info_scripts_pattern_nl)
     uiout->text ("\n");
 
-  make_cleanup_ui_out_table_begin_end (uiout, 2, unique_filenames,
-				       "LinuxThreadDbTable");
-
-  uiout->table_header (max_filename_len, ui_left, "filename", "Filename");
-  uiout->table_header (pids_len, ui_left, "PIDs", "Pids");
-  uiout->table_body ();
+  {
+    ui_out_emit_table table_emitter (uiout, 2, unique_filenames,
+				     "LinuxThreadDbTable");
+
+    uiout->table_header (max_filename_len, ui_left, "filename", "Filename");
+    uiout->table_header (pids_len, ui_left, "PIDs", "Pids");
+    uiout->table_body ();
 
-  pids = (char *) xmalloc (max_pids_len + 1);
-  make_cleanup (xfree, pids);
+    pids = (char *) xmalloc (max_pids_len + 1);
+    make_cleanup (xfree, pids);
 
-  /* Note I is incremented inside the cycle, not at its end.  */
-  for (i = 0; i < info_count;)
-    {
-      struct cleanup *chain = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
-      char *pids_end;
+    /* Note I is incremented inside the cycle, not at its end.  */
+    for (i = 0; i < info_count;)
+      {
+	ui_out_emit_tuple tuple_emitter (uiout, NULL);
+	char *pids_end;
 
-      info = array[i];
-      uiout->field_string ("filename", info->filename);
-      pids_end = pids;
+	info = array[i];
+	uiout->field_string ("filename", info->filename);
+	pids_end = pids;
 
-      while (i < info_count && strcmp (info->filename, array[i]->filename) == 0)
-	{
-	  if (pids_end != pids)
-	    {
-	      *pids_end++ = ',';
-	      *pids_end++ = ' ';
-	    }
-	  pids_end += xsnprintf (pids_end, &pids[max_pids_len + 1] - pids_end,
-				 "%u", array[i]->pid);
-	  gdb_assert (pids_end < &pids[max_pids_len + 1]);
+	while (i < info_count && strcmp (info->filename,
+					 array[i]->filename) == 0)
+	  {
+	    if (pids_end != pids)
+	      {
+		*pids_end++ = ',';
+		*pids_end++ = ' ';
+	      }
+	    pids_end += xsnprintf (pids_end,
+				   &pids[max_pids_len + 1] - pids_end,
+				   "%u", array[i]->pid);
+	    gdb_assert (pids_end < &pids[max_pids_len + 1]);
 
-	  i++;
-	}
-      *pids_end = '\0';
+	    i++;
+	  }
+	*pids_end = '\0';
 
-      uiout->field_string ("pids", pids);
+	uiout->field_string ("pids", pids);
 
-      uiout->text ("\n");
-      do_cleanups (chain);
-    }
+	uiout->text ("\n");
+      }
+  }
 
   do_cleanups (back_to);
 
@@ -1688,14 +1722,12 @@ init_thread_db_ops (void)
     = thread_db_get_thread_local_address;
   thread_db_ops.to_extra_thread_info = thread_db_extra_thread_info;
   thread_db_ops.to_get_ada_task_ptid = thread_db_get_ada_task_ptid;
+  thread_db_ops.to_thread_handle_to_thread_info = thread_db_thread_handle_to_thread_info;
   thread_db_ops.to_magic = OPS_MAGIC;
 
   complete_target_initialization (&thread_db_ops);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_thread_db;
-
 void
 _initialize_thread_db (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/lm32-tdep.c ./gdb/lm32-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/lm32-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/lm32-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Target-dependent code for Lattice Mico32 processor, for GDB.
    Contributed by Jon Beniston <jon@beniston.com>
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -303,7 +303,7 @@ static void
 lm32_extract_return_value (struct type *type, struct regcache *regcache,
 			   gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   ULONGEST l;
   CORE_ADDR return_buffer;
@@ -340,7 +340,7 @@ static void
 lm32_store_return_value (struct type *type, struct regcache *regcache,
 			 const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   ULONGEST val;
   int len = TYPE_LENGTH (type);
@@ -521,7 +521,7 @@ lm32_gdbarch_init (struct gdbarch_info i
     return arches->gdbarch;
 
   /* None found, create a new architecture from the information provided.  */
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
 
   /* Type sizes.  */
@@ -565,18 +565,12 @@ lm32_gdbarch_init (struct gdbarch_info i
   set_gdbarch_push_dummy_call (gdbarch, lm32_push_dummy_call);
   set_gdbarch_return_value (gdbarch, lm32_return_value);
 
-  /* Instruction disassembler.  */
-  set_gdbarch_print_insn (gdbarch, print_insn_lm32);
-
   lm32_add_reggroups (gdbarch);
   set_gdbarch_register_reggroup_p (gdbarch, lm32_register_reggroup_p);
 
   return gdbarch;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_lm32_tdep;
-
 void
 _initialize_lm32_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/location.c ./gdb/location.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/location.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/location.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Data structures and API for event locations in GDB.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -24,6 +24,7 @@
 #include "linespec.h"
 #include "cli/cli-utils.h"
 #include "probe.h"
+#include "cp-support.h"
 
 #include <ctype.h>
 #include <string.h>
@@ -40,13 +41,14 @@ struct event_location
 
   union
   {
-    /* A generic "this is a string specification" for a location.
-       This representation is used by both "normal" linespecs and
-       probes.  */
+    /* A probe.  */
     char *addr_string;
-#define EL_LINESPEC(P) ((P)->u.addr_string)
 #define EL_PROBE(P) ((P)->u.addr_string)
 
+    /* A "normal" linespec.  */
+    struct linespec_location linespec_location;
+#define EL_LINESPEC(P) (&(P)->u.linespec_location)
+
     /* An address in the inferior.  */
     CORE_ADDR address;
 #define EL_ADDRESS(P) (P)->u.address
@@ -77,33 +79,36 @@ initialize_explicit_location (struct exp
 {
   memset (explicit_loc, 0, sizeof (struct explicit_location));
   explicit_loc->line_offset.sign = LINE_OFFSET_UNKNOWN;
+  explicit_loc->func_name_match_type = symbol_name_match_type::WILD;
 }
 
 /* See description in location.h.  */
 
 event_location_up
-new_linespec_location (char **linespec)
+new_linespec_location (const char **linespec,
+		       symbol_name_match_type match_type)
 {
   struct event_location *location;
 
   location = XCNEW (struct event_location);
   EL_TYPE (location) = LINESPEC_LOCATION;
+  EL_LINESPEC (location)->match_type = match_type;
   if (*linespec != NULL)
     {
-      char *p;
-      char *orig = *linespec;
+      const char *p;
+      const char *orig = *linespec;
 
       linespec_lex_to_end (linespec);
       p = remove_trailing_whitespace (orig, *linespec);
       if ((p - orig) > 0)
-	EL_LINESPEC (location) = savestring (orig, p - orig);
+	EL_LINESPEC (location)->spec_string = savestring (orig, p - orig);
     }
   return event_location_up (location);
 }
 
 /* See description in location.h.  */
 
-const char *
+const linespec_location *
 get_linespec_location (const struct event_location *location)
 {
   gdb_assert (EL_TYPE (location) == LINESPEC_LOCATION);
@@ -179,6 +184,9 @@ new_explicit_location (const struct expl
   initialize_explicit_location (EL_EXPLICIT (&tmp));
   if (explicit_loc != NULL)
     {
+      EL_EXPLICIT (&tmp)->func_name_match_type
+	= explicit_loc->func_name_match_type;
+
       if (explicit_loc->source_filename != NULL)
 	{
 	  EL_EXPLICIT (&tmp)->source_filename
@@ -243,6 +251,8 @@ explicit_to_string_internal (int as_line
     {
       if (need_space)
 	buf.putc (space);
+      if (explicit_loc->func_name_match_type == symbol_name_match_type::FULL)
+	buf.puts ("-qualified ");
       if (!as_linespec)
 	buf.puts ("-function ");
       buf.puts (explicit_loc->function_name);
@@ -306,8 +316,10 @@ copy_event_location (const struct event_
   switch (EL_TYPE (src))
     {
     case LINESPEC_LOCATION:
-      if (EL_LINESPEC (src) != NULL)
-	EL_LINESPEC (dst) = xstrdup (EL_LINESPEC (src));
+      EL_LINESPEC (dst)->match_type = EL_LINESPEC (src)->match_type;
+      if (EL_LINESPEC (src)->spec_string != NULL)
+	EL_LINESPEC (dst)->spec_string
+	  = xstrdup (EL_LINESPEC (src)->spec_string);
       break;
 
     case ADDRESS_LOCATION:
@@ -315,6 +327,8 @@ copy_event_location (const struct event_
       break;
 
     case EXPLICIT_LOCATION:
+      EL_EXPLICIT (dst)->func_name_match_type
+	= EL_EXPLICIT (src)->func_name_match_type;
       if (EL_EXPLICIT (src)->source_filename != NULL)
 	EL_EXPLICIT (dst)->source_filename
 	  = xstrdup (EL_EXPLICIT (src)->source_filename);
@@ -352,7 +366,7 @@ event_location_deleter::operator() (even
       switch (EL_TYPE (location))
 	{
 	case LINESPEC_LOCATION:
-	  xfree (EL_LINESPEC (location));
+	  xfree (EL_LINESPEC (location)->spec_string);
 	  break;
 
 	case ADDRESS_LOCATION:
@@ -387,8 +401,17 @@ event_location_to_string (struct event_l
       switch (EL_TYPE (location))
 	{
 	case LINESPEC_LOCATION:
-	  if (EL_LINESPEC (location) != NULL)
-	    EL_STRING (location) = xstrdup (EL_LINESPEC (location));
+	  if (EL_LINESPEC (location)->spec_string != NULL)
+	    {
+	      linespec_location *ls = EL_LINESPEC (location);
+	      if (ls->match_type == symbol_name_match_type::FULL)
+		{
+		  EL_STRING (location)
+		    = concat ("-qualified ", ls->spec_string, (char *) NULL);
+		}
+	      else
+		EL_STRING (location) = xstrdup (ls->spec_string);
+	    }
 	  break;
 
 	case ADDRESS_LOCATION:
@@ -414,13 +437,44 @@ event_location_to_string (struct event_l
   return EL_STRING (location);
 }
 
+/* Find an instance of the quote character C in the string S that is
+   outside of all single- and double-quoted strings (i.e., any quoting
+   other than C).  */
+
+static const char *
+find_end_quote (const char *s, char end_quote_char)
+{
+  /* zero if we're not in quotes;
+     '"' if we're in a double-quoted string;
+     '\'' if we're in a single-quoted string.  */
+  char nested_quote_char = '\0';
+
+  for (const char *scan = s; *scan != '\0'; scan++)
+    {
+      if (nested_quote_char != '\0')
+	{
+	  if (*scan == nested_quote_char)
+	    nested_quote_char = '\0';
+	  else if (scan[0] == '\\' && *(scan + 1) != '\0')
+	    scan++;
+	}
+      else if (*scan == end_quote_char && nested_quote_char == '\0')
+	return scan;
+      else if (*scan == '"' || *scan == '\'')
+	nested_quote_char = *scan;
+    }
+
+  return 0;
+}
+
 /* A lexer for explicit locations.  This function will advance INP
    past any strings that it lexes.  Returns a malloc'd copy of the
    lexed string or NULL if no lexing was done.  */
 
 static gdb::unique_xmalloc_ptr<char>
 explicit_location_lex_one (const char **inp,
-			   const struct language_defn *language)
+			   const struct language_defn *language,
+			   explicit_completion_info *completion_info)
 {
   const char *start = *inp;
 
@@ -430,21 +484,27 @@ explicit_location_lex_one (const char **
   /* If quoted, skip to the ending quote.  */
   if (strchr (get_gdb_linespec_parser_quote_characters (), *start))
     {
-      char quote_char = *start;
+      if (completion_info != NULL)
+	completion_info->quoted_arg_start = start;
 
-      /* If the input is not an Ada operator, skip to the matching
-	 closing quote and return the string.  */
-      if (!(language->la_language == language_ada
-	    && quote_char == '\"' && is_ada_operator (start)))
-	{
-	  const char *end = find_toplevel_char (start + 1, quote_char);
+      const char *end = find_end_quote (start + 1, *start);
 
-	  if (end == NULL)
+      if (end == NULL)
+	{
+	  if (completion_info == NULL)
 	    error (_("Unmatched quote, %s."), start);
-	  *inp = end + 1;
+
+	  end = start + strlen (start);
+	  *inp = end;
 	  return gdb::unique_xmalloc_ptr<char> (savestring (start + 1,
-							    *inp - start - 2));
+							    *inp - start - 1));
 	}
+
+      if (completion_info != NULL)
+	completion_info->quoted_arg_end = end;
+      *inp = end + 1;
+      return gdb::unique_xmalloc_ptr<char> (savestring (start + 1,
+							*inp - start - 2));
     }
 
   /* If the input starts with '-' or '+', the string ends with the next
@@ -473,8 +533,8 @@ explicit_location_lex_one (const char **
 	{
 	  /* Special case: C++ operator,.  */
 	  if (language->la_language == language_cplus
-	      && strncmp (*inp, "operator", 8) == 0)
-	    (*inp) += 8;
+	      && startswith (*inp, CP_OPERATOR_STR))
+	    (*inp) += CP_OPERATOR_LEN;
 	  ++(*inp);
 	}
     }
@@ -485,12 +545,180 @@ explicit_location_lex_one (const char **
   return NULL;
 }
 
+/* Return true if COMMA points past "operator".  START is the start of
+   the line that COMMAND points to, hence when reading backwards, we
+   must not read any character before START.  */
+
+static bool
+is_cp_operator (const char *start, const char *comma)
+{
+  if (comma != NULL
+      && (comma - start) >= CP_OPERATOR_LEN)
+    {
+      const char *p = comma;
+
+      while (p > start && isspace (p[-1]))
+	p--;
+      if (p - start >= CP_OPERATOR_LEN)
+	{
+	  p -= CP_OPERATOR_LEN;
+	  if (strncmp (p, CP_OPERATOR_STR, CP_OPERATOR_LEN) == 0
+	      && (p == start
+		  || !(isalnum (p[-1]) || p[-1] == '_')))
+	    {
+	      return true;
+	    }
+	}
+    }
+  return false;
+}
+
+/* When scanning the input string looking for the next explicit
+   location option/delimiter, we jump to the next option by looking
+   for ",", and "-".  Such a character can also appear in C++ symbols
+   like "operator," and "operator-".  So when we find such a
+   character, we call this function to check if we found such a
+   symbol, meaning we had a false positive for an option string.  In
+   that case, we keep looking for the next delimiter, until we find
+   one that is not a false positive, or we reach end of string.  FOUND
+   is the character that scanning found (either '-' or ','), and START
+   is the start of the line that FOUND points to, hence when reading
+   backwards, we must not read any character before START.  Returns a
+   pointer to the next non-false-positive delimiter character, or NULL
+   if none was found.  */
+
+static const char *
+skip_op_false_positives (const char *start, const char *found)
+{
+  while (found != NULL && is_cp_operator (start, found))
+    {
+      if (found[0] == '-' && found[1] == '-')
+	start = found + 2;
+      else
+	start = found + 1;
+      found = find_toplevel_char (start, *found);
+    }
+
+  return found;
+}
+
+/* Assuming both FIRST and NEW_TOK point into the same string, return
+   the pointer that is closer to the start of the string.  If FIRST is
+   NULL, returns NEW_TOK.  If NEW_TOK is NULL, returns FIRST.  */
+
+static const char *
+first_of (const char *first, const char *new_tok)
+{
+  if (first == NULL)
+    return new_tok;
+  else if (new_tok != NULL && new_tok < first)
+    return new_tok;
+  else
+    return first;
+}
+
+/* A lexer for functions in explicit locations.  This function will
+   advance INP past a function until the next option, or until end of
+   string.  Returns a malloc'd copy of the lexed string or NULL if no
+   lexing was done.  */
+
+static gdb::unique_xmalloc_ptr<char>
+explicit_location_lex_one_function (const char **inp,
+				    const struct language_defn *language,
+				    explicit_completion_info *completion_info)
+{
+  const char *start = *inp;
+
+  if (*start == '\0')
+    return NULL;
+
+  /* If quoted, skip to the ending quote.  */
+  if (strchr (get_gdb_linespec_parser_quote_characters (), *start))
+    {
+      char quote_char = *start;
+
+      /* If the input is not an Ada operator, skip to the matching
+	 closing quote and return the string.  */
+      if (!(language->la_language == language_ada
+	    && quote_char == '\"' && is_ada_operator (start)))
+	{
+	  if (completion_info != NULL)
+	    completion_info->quoted_arg_start = start;
+
+	  const char *end = find_toplevel_char (start + 1, quote_char);
+
+	  if (end == NULL)
+	    {
+	      if (completion_info == NULL)
+		error (_("Unmatched quote, %s."), start);
+
+	      end = start + strlen (start);
+	      *inp = end;
+	      char *saved = savestring (start + 1, *inp - start - 1);
+	      return gdb::unique_xmalloc_ptr<char> (saved);
+	    }
+
+	  if (completion_info != NULL)
+	    completion_info->quoted_arg_end = end;
+	  *inp = end + 1;
+	  char *saved = savestring (start + 1, *inp - start - 2);
+	  return gdb::unique_xmalloc_ptr<char> (saved);
+	}
+    }
+
+  const char *comma = find_toplevel_char (start, ',');
+
+  /* If we have "-function -myfunction", or perhaps better example,
+     "-function -[BasicClass doIt]" (objc selector), treat
+     "-myfunction" as the function name.  I.e., skip the first char if
+     it is an hyphen.  Don't skip the first char always, because we
+     may have C++ "operator<", and find_toplevel_char needs to see the
+     'o' in that case.  */
+  const char *hyphen
+    = (*start == '-'
+       ? find_toplevel_char (start + 1, '-')
+       : find_toplevel_char (start, '-'));
+
+  /* Check for C++ "operator," and "operator-".  */
+  comma = skip_op_false_positives (start, comma);
+  hyphen = skip_op_false_positives (start, hyphen);
+
+  /* Pick the one that appears first.  */
+  const char *end = first_of (hyphen, comma);
+
+  /* See if a linespec keyword appears first.  */
+  const char *s = start;
+  const char *ws = find_toplevel_char (start, ' ');
+  while (ws != NULL && linespec_lexer_lex_keyword (ws + 1) == NULL)
+    {
+      s = ws + 1;
+      ws = find_toplevel_char (s, ' ');
+    }
+  if (ws != NULL)
+    end = first_of (end, ws + 1);
+
+  /* If we don't have any terminator, then take the whole string.  */
+  if (end == NULL)
+    end = start + strlen (start);
+
+  /* Trim whitespace at the end.  */
+  while (end > start && end[-1] == ' ')
+    end--;
+
+  *inp = end;
+
+  if (*inp - start > 0)
+    return gdb::unique_xmalloc_ptr<char> (savestring (start, *inp - start));
+
+  return NULL;
+}
+
 /* See description in location.h.  */
 
 event_location_up
 string_to_explicit_location (const char **argp,
 			     const struct language_defn *language,
-			     int dont_throw)
+			     explicit_completion_info *completion_info)
 {
   event_location_up location;
 
@@ -513,6 +741,14 @@ string_to_explicit_location (const char 
       int len;
       const char *start;
 
+      /* Clear these on each iteration, since they should be filled
+	 with info about the last option.  */
+      if (completion_info != NULL)
+	{
+	  completion_info->quoted_arg_start = NULL;
+	  completion_info->quoted_arg_end = NULL;
+	}
+
       /* If *ARGP starts with a keyword, stop processing
 	 options.  */
       if (linespec_lexer_lex_keyword (*argp) != NULL)
@@ -521,40 +757,84 @@ string_to_explicit_location (const char 
       /* Mark the start of the string in case we need to rewind.  */
       start = *argp;
 
+      if (completion_info != NULL)
+	completion_info->last_option = start;
+
       /* Get the option string.  */
       gdb::unique_xmalloc_ptr<char> opt
-	= explicit_location_lex_one (argp, language);
+	= explicit_location_lex_one (argp, language, NULL);
 
-      *argp = skip_spaces_const (*argp);
+      /* Use the length of the option to allow abbreviations.  */
+      len = strlen (opt.get ());
 
       /* Get the argument string.  */
-      gdb::unique_xmalloc_ptr<char> oarg
-	= explicit_location_lex_one (argp, language);
-      bool have_oarg = oarg != NULL;
-      *argp = skip_spaces_const (*argp);
+      *argp = skip_spaces (*argp);
 
-      /* Use the length of the option to allow abbreviations.  */
-      len = strlen (opt.get ());
+      /* All options have a required argument.  Checking for this
+	 required argument is deferred until later.  */
+      gdb::unique_xmalloc_ptr<char> oarg;
+      /* True if we have an argument.  This is required because we'll
+	 move from OARG before checking whether we have an
+	 argument.  */
+      bool have_oarg = false;
+
+      /* True if the option needs an argument.  */
+      bool need_oarg = false;
+
+      /* Convenience to consistently set both OARG/HAVE_OARG from
+	 ARG.  */
+      auto set_oarg = [&] (gdb::unique_xmalloc_ptr<char> arg)
+	{
+	  if (completion_info != NULL)
+	    {
+	      /* We do this here because the set of options that take
+		 arguments matches the set of explicit location
+		 options.  */
+	      completion_info->saw_explicit_location_option = true;
+	    }
+	  oarg = std::move (arg);
+	  have_oarg = oarg != NULL;
+	  need_oarg = true;
+	};
 
-      /* All options have a required argument.  Checking for this required
-	 argument is deferred until later.  */
       if (strncmp (opt.get (), "-source", len) == 0)
-	EL_EXPLICIT (location)->source_filename = oarg.release ();
+	{
+	  set_oarg (explicit_location_lex_one (argp, language,
+					       completion_info));
+	  EL_EXPLICIT (location)->source_filename = oarg.release ();
+	}
       else if (strncmp (opt.get (), "-function", len) == 0)
-	EL_EXPLICIT (location)->function_name = oarg.release ();
+	{
+	  set_oarg (explicit_location_lex_one_function (argp, language,
+							completion_info));
+	  EL_EXPLICIT (location)->function_name = oarg.release ();
+	}
+      else if (strncmp (opt.get (), "-qualified", len) == 0)
+	{
+	  EL_EXPLICIT (location)->func_name_match_type
+	    = symbol_name_match_type::FULL;
+	}
       else if (strncmp (opt.get (), "-line", len) == 0)
 	{
+	  set_oarg (explicit_location_lex_one (argp, language, NULL));
+	  *argp = skip_spaces (*argp);
 	  if (have_oarg)
-	    EL_EXPLICIT (location)->line_offset
-	      = linespec_parse_line_offset (oarg.get ());
+	    {
+	      EL_EXPLICIT (location)->line_offset
+		= linespec_parse_line_offset (oarg.get ());
+	      continue;
+	    }
 	}
       else if (strncmp (opt.get (), "-label", len) == 0)
-	EL_EXPLICIT (location)->label_name = oarg.release ();
+	{
+	  set_oarg (explicit_location_lex_one (argp, language, completion_info));
+	  EL_EXPLICIT (location)->label_name = oarg.release ();
+	}
       /* Only emit an "invalid argument" error for options
 	 that look like option strings.  */
       else if (opt.get ()[0] == '-' && !isdigit (opt.get ()[1]))
 	{
-	  if (!dont_throw)
+	  if (completion_info == NULL)
 	    error (_("invalid explicit location argument, \"%s\""), opt.get ());
 	}
       else
@@ -563,14 +843,16 @@ string_to_explicit_location (const char 
 	     Stop parsing and return whatever explicit location was
 	     parsed.  */
 	  *argp = start;
-	  return location;
+	  break;
 	}
 
+      *argp = skip_spaces (*argp);
+
       /* It's a little lame to error after the fact, but in this
 	 case, it provides a much better user experience to issue
 	 the "invalid argument" error before any missing
 	 argument error.  */
-      if (!have_oarg && !dont_throw)
+      if (need_oarg && !have_oarg && completion_info == NULL)
 	error (_("missing argument for \"%s\""), opt.get ());
     }
 
@@ -580,7 +862,7 @@ string_to_explicit_location (const char 
       && EL_EXPLICIT (location)->function_name == NULL
       && EL_EXPLICIT (location)->label_name == NULL
       && (EL_EXPLICIT (location)->line_offset.sign == LINE_OFFSET_UNKNOWN)
-      && !dont_throw)
+      && completion_info == NULL)
     {
       error (_("Source filename requires function, label, or "
 	       "line offset."));
@@ -592,15 +874,16 @@ string_to_explicit_location (const char 
 /* See description in location.h.  */
 
 event_location_up
-string_to_event_location_basic (char **stringp,
-				const struct language_defn *language)
+string_to_event_location_basic (const char **stringp,
+				const struct language_defn *language,
+				symbol_name_match_type match_type)
 {
   event_location_up location;
   const char *cs;
 
   /* Try the input as a probe spec.  */
   cs = *stringp;
-  if (cs != NULL && probe_linespec_to_ops (&cs) != NULL)
+  if (cs != NULL && probe_linespec_to_static_ops (&cs) != NULL)
     {
       location = new_probe_location (*stringp);
       *stringp += strlen (*stringp);
@@ -621,7 +904,7 @@ string_to_event_location_basic (char **s
       else
 	{
 	  /* Everything else is a linespec.  */
-	  location = new_linespec_location (stringp);
+	  location = new_linespec_location (stringp, match_type);
 	}
     }
 
@@ -631,28 +914,35 @@ string_to_event_location_basic (char **s
 /* See description in location.h.  */
 
 event_location_up
-string_to_event_location (char **stringp,
-			  const struct language_defn *language)
+string_to_event_location (const char **stringp,
+			  const struct language_defn *language,
+			  symbol_name_match_type match_type)
 {
   const char *arg, *orig;
 
   /* Try an explicit location.  */
   orig = arg = *stringp;
-  event_location_up location = string_to_explicit_location (&arg, language, 0);
+  event_location_up location = string_to_explicit_location (&arg, language, NULL);
   if (location != NULL)
     {
       /* It was a valid explicit location.  Advance STRINGP to
 	 the end of input.  */
       *stringp += arg - orig;
-    }
-  else
-    {
-      /* Everything else is a "basic" linespec, address, or probe
-	 location.  */
-      location = string_to_event_location_basic (stringp, language);
+
+      /* If the user really specified a location, then we're done.  */
+      if (!event_location_empty_p (location.get ()))
+	return location;
+
+      /* Otherwise, the user _only_ specified optional flags like
+	 "-qualified", otherwise string_to_explicit_location would
+	 have thrown an error.  Save the flags for "basic" linespec
+	 parsing below and discard the explicit location.  */
+      match_type = EL_EXPLICIT (location)->func_name_match_type;
     }
 
-  return location;
+  /* Everything else is a "basic" linespec, address, or probe
+     location.  */
+  return string_to_event_location_basic (stringp, language, match_type);
 }
 
 /* See description in location.h.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/location.h ./gdb/location.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/location.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/location.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Data structures and API for event locations in GDB.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -66,6 +66,17 @@ enum event_location_type
   PROBE_LOCATION
 };
 
+/* A traditional linespec.  */
+
+struct linespec_location
+{
+  /* Whether the function name is fully-qualified or not.  */
+  symbol_name_match_type match_type;
+
+  /* The linespec.  */
+  char *spec_string;
+};
+
 /* An explicit location.  This structure is used to bypass the
    parsing done on linespecs.  It still has the same requirements
    as linespecs, though.  For example, source_filename requires
@@ -79,6 +90,9 @@ struct explicit_location
   /* The function name.  Malloc'd.  */
   char *function_name;
 
+  /* Whether the function name is fully-qualified or not.  */
+  symbol_name_match_type func_name_match_type;
+
   /* The name of a label.  Malloc'd.  */
   char *label_name;
 
@@ -107,7 +121,7 @@ extern char *
 
 /* Return a string representation of the LOCATION.
    This function may return NULL for unspecified linespecs,
-   e.g, LOCATION_LINESPEC and addr_string is NULL.
+   e.g, LINESPEC_LOCATION and spec_string is NULL.
 
    The result is cached in LOCATION.  */
 
@@ -127,12 +141,13 @@ typedef std::unique_ptr<event_location, 
 
 /* Create a new linespec location.  */
 
-extern event_location_up new_linespec_location (char **linespec);
+extern event_location_up new_linespec_location
+  (const char **linespec, symbol_name_match_type match_type);
 
-/* Return the linespec location (a string) of the given event_location
-   (which must be of type LINESPEC_LOCATION).  */
+/* Return the linespec location of the given event_location (which
+   must be of type LINESPEC_LOCATION).  */
 
-extern const char *
+extern const linespec_location *
   get_linespec_location (const struct event_location *location);
 
 /* Create a new address location.
@@ -205,33 +220,60 @@ extern event_location_up
    This function is intended to be used by CLI commands and will parse
    explicit locations in a CLI-centric way.  Other interfaces should use
    string_to_event_location_basic if they want to maintain support for
-   legacy specifications of probe, address, and linespec locations.  */
+   legacy specifications of probe, address, and linespec locations.
 
-extern event_location_up
-  string_to_event_location (char **argp,
-			    const struct language_defn *langauge);
+   MATCH_TYPE should be either WILD or FULL.  If -q/--qualified is specified
+   in the input string, it will take precedence over this parameter.  */
 
-/* Like string_to_event_location, but does not attempt to parse explicit
-   locations.  */
+extern event_location_up string_to_event_location
+  (const char **argp, const struct language_defn *langauge,
+   symbol_name_match_type match_type = symbol_name_match_type::WILD);
+
+/* Like string_to_event_location, but does not attempt to parse
+   explicit locations.  MATCH_TYPE indicates how function names should
+   be matched.  */
 
 extern event_location_up
-  string_to_event_location_basic (char **argp,
-				  const struct language_defn *language);
+  string_to_event_location_basic (const char **argp,
+				  const struct language_defn *language,
+				  symbol_name_match_type match_type);
+
+/* Structure filled in by string_to_explicit_location to aid the
+   completer.  */
+struct explicit_completion_info
+{
+  /* Pointer to the last option found.  E.g., in "b -sou src.c -fun
+     func", LAST_OPTION is left pointing at "-fun func".  */
+  const char *last_option = NULL;
+
+  /* These point to the start and end of a quoted argument, iff the
+     last argument was quoted.  If parsing finds an incomplete quoted
+     string (e.g., "break -function 'fun"), then QUOTED_ARG_START is
+     set to point to the opening \', and QUOTED_ARG_END is left NULL.
+     If the last option is not quoted, then both are set to NULL. */
+  const char *quoted_arg_start = NULL;
+  const char *quoted_arg_end = NULL;
+
+  /* True if we saw an explicit location option, as opposed to only
+     flags that affect both explicit locations and linespecs, like
+     "-qualified".  */
+  bool saw_explicit_location_option = false;
+};
 
 /* Attempt to convert the input string in *ARGP into an explicit location.
    ARGP is advanced past any processed input.  Returns an event_location
    (malloc'd) if an explicit location was successfully found in *ARGP,
    NULL otherwise.
 
-   IF !DONT_THROW, this function may call error() if *ARGP looks like
-   properly formed input, e.g., if it is called with missing argument
-   parameters or invalid options.  If DONT_THROW is non-zero, this function
-   will not throw any exceptions.  */
+   If COMPLETION_INFO is NULL, this function may call error() if *ARGP
+   looks like improperly formed input, e.g., if it is called with
+   missing argument parameters or invalid options.  If COMPLETION_INFO
+   is not NULL, this function will not throw any exceptions.  */
 
 extern event_location_up
   string_to_explicit_location (const char **argp,
-			       const struct language_defn *langauge,
-			       int dont_throw);
+			       const struct language_defn *language,
+			       explicit_completion_info *completion_info);
 
 /* A convenience function for testing for unset locations.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m2-exp.c ./gdb/m2-exp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m2-exp.c	2018-01-02 02:06:29.000000000 +0000
+++ ./gdb/m2-exp.c	2018-01-09 02:08:07.000000000 +0000
@@ -246,7 +246,7 @@ typedef union YYSTYPE
 
     LONGEST lval;
     ULONGEST ulval;
-    DOUBLEST dval;
+    gdb_byte val[16];
     struct symbol *sym;
     struct type *tval;
     struct stoken sval;
@@ -2261,12 +2261,12 @@ yyreduce:
 
 /* Line 1455 of yacc.c  */
 #line 477 "m2-exp.y"
-    { write_exp_elt_opcode (pstate, OP_DOUBLE);
+    { write_exp_elt_opcode (pstate, OP_FLOAT);
 			  write_exp_elt_type (pstate,
 					      parse_m2_type (pstate)
 					      ->builtin_real);
-			  write_exp_elt_dblcst (pstate, (yyvsp[(1) - (1)].dval));
-			  write_exp_elt_opcode (pstate, OP_DOUBLE); }
+			  write_exp_elt_floatcst (pstate, (yyvsp[(1) - (1)].val));
+			  write_exp_elt_opcode (pstate, OP_FLOAT); }
     break;
 
   case 73:
@@ -2665,7 +2665,11 @@ parse_number (int olen)
     if (p[c] == '.' && base == 10)
       {
 	/* It's a float since it contains a point.  */
-	yylval.dval = atof (p);
+	if (!parse_float (p, len,
+			  parse_m2_type (pstate)->builtin_real,
+			  yylval.val))
+	  return ERROR;
+
 	lexptr += len;
 	return FLOAT;
       }
@@ -3051,17 +3055,12 @@ yylex (void)
 int
 m2_parse (struct parser_state *par_state)
 {
-  int result;
-  struct cleanup *c = make_cleanup_clear_parser_state (&pstate);
-
   /* Setting up the parser state.  */
+  scoped_restore pstate_restore = make_scoped_restore (&pstate);
   gdb_assert (par_state != NULL);
   pstate = par_state;
 
-  result = yyparse ();
-  do_cleanups (c);
-
-  return result;
+  return yyparse ();
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m2-exp.y ./gdb/m2-exp.y
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m2-exp.y	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m2-exp.y	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* YACC grammar for Modula-2 expressions, for GDB.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
    Generated from expread.y (now c-exp.y) and contributed by the Department
    of Computer Science at the State University of New York at Buffalo, 1991.
 
@@ -82,7 +82,7 @@ static int number_sign = 1;
   {
     LONGEST lval;
     ULONGEST ulval;
-    DOUBLEST dval;
+    gdb_byte val[16];
     struct symbol *sym;
     struct type *tval;
     struct stoken sval;
@@ -103,7 +103,7 @@ static int number_sign = 1;
 
 %token <lval> INT HEX ERROR
 %token <ulval> UINT M2_TRUE M2_FALSE CHAR
-%token <dval> FLOAT
+%token <val> FLOAT
 
 /* Both NAME and TYPENAME tokens represent symbols in the input,
    and both convey their data as strings.
@@ -474,12 +474,12 @@ exp	:	CHAR
 
 
 exp	:	FLOAT
-			{ write_exp_elt_opcode (pstate, OP_DOUBLE);
+			{ write_exp_elt_opcode (pstate, OP_FLOAT);
 			  write_exp_elt_type (pstate,
 					      parse_m2_type (pstate)
 					      ->builtin_real);
-			  write_exp_elt_dblcst (pstate, $1);
-			  write_exp_elt_opcode (pstate, OP_DOUBLE); }
+			  write_exp_elt_floatcst (pstate, $1);
+			  write_exp_elt_opcode (pstate, OP_FLOAT); }
 	;
 
 exp	:	variable
@@ -650,7 +650,11 @@ parse_number (int olen)
     if (p[c] == '.' && base == 10)
       {
 	/* It's a float since it contains a point.  */
-	yylval.dval = atof (p);
+	if (!parse_float (p, len,
+			  parse_m2_type (pstate)->builtin_real,
+			  yylval.val))
+	  return ERROR;
+
 	lexptr += len;
 	return FLOAT;
       }
@@ -1036,17 +1040,12 @@ yylex (void)
 int
 m2_parse (struct parser_state *par_state)
 {
-  int result;
-  struct cleanup *c = make_cleanup_clear_parser_state (&pstate);
-
   /* Setting up the parser state.  */
+  scoped_restore pstate_restore = make_scoped_restore (&pstate);
   gdb_assert (par_state != NULL);
   pstate = par_state;
 
-  result = yyparse ();
-  do_cleanups (c);
-
-  return result;
+  return yyparse ();
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m2-lang.c ./gdb/m2-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m2-lang.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m2-lang.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Modula 2 language support routines for GDB, the GNU debugger.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,7 +28,6 @@
 #include "c-lang.h"
 #include "valprint.h"
 
-extern void _initialize_m2_language (void);
 static void m2_printchar (int, struct type *, struct ui_file *);
 static void m2_emit_char (int, struct type *, struct ui_file *, int);
 
@@ -354,7 +353,7 @@ const struct exp_descriptor exp_descript
   evaluate_subexp_modula2
 };
 
-const struct language_defn m2_language_defn =
+extern const struct language_defn m2_language_defn =
 {
   "modula-2",
   "Modula-2",
@@ -388,13 +387,15 @@ const struct language_defn m2_language_d
   0,				/* arrays are first-class (not c-style) */
   0,				/* String lower bound */
   default_word_break_characters,
-  default_make_symbol_completion_list,
+  default_collect_symbol_completion_matches,
   m2_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
   default_get_string,
-  NULL,				/* la_get_symbol_name_cmp */
+  c_watch_location_expression,
+  NULL,				/* la_get_symbol_name_matcher */
   iterate_over_symbols,
+  default_search_name_hash,
   &default_varobj_ops,
   NULL,
   NULL,
@@ -438,6 +439,4 @@ void
 _initialize_m2_language (void)
 {
   m2_type_data = gdbarch_data_register_post_init (build_m2_types);
-
-  add_language (&m2_language_defn);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m2-lang.h ./gdb/m2-lang.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m2-lang.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m2-lang.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Modula 2 language support definitions for GDB, the GNU debugger.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m2-typeprint.c ./gdb/m2-typeprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m2-typeprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m2-typeprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for printing Modula 2 types for GDB, the GNU debugger.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -280,7 +280,8 @@ m2_procedure (struct type *type, struct 
 {
   fprintf_filtered (stream, "PROCEDURE ");
   m2_type_name (type, stream);
-  if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_VOID)
+  if (TYPE_TARGET_TYPE (type) == NULL
+      || TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_VOID)
     {
       int i, len = TYPE_NFIELDS (type);
 
@@ -294,11 +295,11 @@ m2_procedure (struct type *type, struct 
 	    }
 	  m2_print_type (TYPE_FIELD_TYPE (type, i), "", stream, -1, 0, flags);
 	}
+      fprintf_filtered (stream, ") : ");
       if (TYPE_TARGET_TYPE (type) != NULL)
-	{
-	  fprintf_filtered (stream, " : ");
-	  m2_print_type (TYPE_TARGET_TYPE (type), "", stream, 0, 0, flags);
-	}
+	m2_print_type (TYPE_TARGET_TYPE (type), "", stream, 0, 0, flags);
+      else
+	type_print_unknown_return_type (stream);
     }
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m2-valprint.c ./gdb/m2-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m2-valprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m2-valprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support for printing Modula 2 values for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -313,7 +313,6 @@ m2_val_print (struct type *type, int emb
 	      struct value *original_value,
 	      const struct value_print_options *options)
 {
-  struct gdbarch *gdbarch = get_type_arch (type);
   unsigned len;
   struct type *elttype;
   CORE_ADDR addr;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m32c-tdep.c ./gdb/m32c-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m32c-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m32c-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Renesas M32C target-dependent code for GDB, the GNU debugger.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -190,7 +190,7 @@ make_types (struct gdbarch *arch)
 
   /* The builtin_type_mumble variables are sometimes uninitialized when
      this is called, so we avoid using them.  */
-  tdep->voyd = arch_type (arch, TYPE_CODE_VOID, 1, "void");
+  tdep->voyd = arch_type (arch, TYPE_CODE_VOID, TARGET_CHAR_BIT, "void");
   tdep->ptr_voyd
     = arch_pointer_type (arch, gdbarch_ptr_bit (arch), NULL, tdep->voyd);
   tdep->func_voyd = lookup_function_type (tdep->voyd);
@@ -331,7 +331,7 @@ m32c_raw_write (struct m32c_reg *reg, st
 static int
 m32c_read_flg (struct regcache *cache)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (cache));
+  struct gdbarch_tdep *tdep = gdbarch_tdep (cache->arch ());
   ULONGEST flg;
   regcache_raw_read_unsigned (cache, tdep->flg->num, &flg);
   return flg & 0xffff;
@@ -598,7 +598,7 @@ m32c_pseudo_register_read (struct gdbarc
   struct m32c_reg *reg;
 
   gdb_assert (0 <= cookednum && cookednum < tdep->num_regs);
-  gdb_assert (arch == get_regcache_arch (cache));
+  gdb_assert (arch == cache->arch ());
   gdb_assert (arch == tdep->regs[cookednum].arch);
   reg = &tdep->regs[cookednum];
 
@@ -616,7 +616,7 @@ m32c_pseudo_register_write (struct gdbar
   struct m32c_reg *reg;
 
   gdb_assert (0 <= cookednum && cookednum < tdep->num_regs);
-  gdb_assert (arch == get_regcache_arch (cache));
+  gdb_assert (arch == cache->arch ());
   gdb_assert (arch == tdep->regs[cookednum].arch);
   reg = &tdep->regs[cookednum];
 
@@ -1079,11 +1079,11 @@ struct m32c_pv_state
 static int
 m32c_pv_push (struct m32c_pv_state *state, pv_t value, int size)
 {
-  if (pv_area_store_would_trash (state->stack, state->sp))
+  if (state->stack->store_would_trash (state->sp))
     return 1;
 
   state->sp = pv_add_constant (state->sp, -size);
-  pv_area_store (state->stack, state->sp, size, value);
+  state->stack->store (state->sp, size, value);
 
   return 0;
 }
@@ -1114,7 +1114,7 @@ static pv_t
 m32c_srcdest_fetch (struct m32c_pv_state *state, struct srcdest loc, int size)
 {
   if (loc.kind == srcdest_mem)
-    return pv_area_fetch (state->stack, loc.addr, size);
+    return state->stack->fetch (loc.addr, size);
   else if (loc.kind == srcdest_partial_reg)
     return pv_unknown ();
   else
@@ -1131,9 +1131,9 @@ m32c_srcdest_store (struct m32c_pv_state
 {
   if (loc.kind == srcdest_mem)
     {
-      if (pv_area_store_would_trash (state->stack, loc.addr))
+      if (state->stack->store_would_trash (loc.addr))
 	return 1;
-      pv_area_store (state->stack, loc.addr, size, value);
+      state->stack->store (loc.addr, size, value);
     }
   else if (loc.kind == srcdest_partial_reg)
     *loc.reg = pv_unknown ();
@@ -1350,7 +1350,7 @@ m32c_pv_enter (struct m32c_pv_state *sta
   /* If simulating this store would require us to forget
      everything we know about the stack frame in the name of
      accuracy, it would be better to just quit now.  */
-  if (pv_area_store_would_trash (state->stack, state->sp))
+  if (state->stack->store_would_trash (state->sp))
     return 1;
 
   if (m32c_pv_push (state, state->fb, tdep->push_addr_bytes))
@@ -1441,7 +1441,7 @@ m32c_is_arg_spill (struct m32c_pv_state 
   return (m32c_is_arg_reg (st, value)
 	  && loc.kind == srcdest_mem
           && pv_is_register (loc.addr, tdep->sp->num)
-          && ! pv_area_find_reg (st->stack, st->arch, value.reg, 0));
+          && ! st->stack->find_reg (st->arch, value.reg, 0));
 }
 
 /* Return non-zero if a store of VALUE to LOC is probably 
@@ -1462,7 +1462,7 @@ m32c_is_struct_return (struct m32c_pv_st
   struct gdbarch_tdep *tdep = gdbarch_tdep (st->arch);
 
   return (m32c_is_1st_arg_reg (st, value)
-	  && !pv_area_find_reg (st->stack, st->arch, value.reg, 0)
+	  && !st->stack->find_reg (st->arch, value.reg, 0)
 	  && loc.kind == srcdest_reg
 	  && (pv_is_register (*loc.reg, tdep->a0->num)
 	      || pv_is_register (*loc.reg, tdep->a1->num)));
@@ -1493,7 +1493,7 @@ m32c_pushm_is_reg_save (struct m32c_pv_s
 
 
 /* Function for finding saved registers in a 'struct pv_area'; we pass
-   this to pv_area_scan.
+   this to pv_area::scan.
 
    If VALUE is a saved register, ADDR says it was saved at a constant
    offset from the frame base, and SIZE indicates that the whole
@@ -1546,7 +1546,6 @@ m32c_analyze_prologue (struct gdbarch *a
   struct gdbarch_tdep *tdep = gdbarch_tdep (arch);
   unsigned long mach = gdbarch_bfd_arch_info (arch)->mach;
   CORE_ADDR after_last_frame_related_insn;
-  struct cleanup *back_to;
   struct m32c_pv_state st;
 
   st.arch = arch;
@@ -1560,8 +1559,8 @@ m32c_analyze_prologue (struct gdbarch *a
   st.fb = pv_register (tdep->fb->num, 0);
   st.sp = pv_register (tdep->sp->num, 0);
   st.pc = pv_register (tdep->pc->num, 0);
-  st.stack = make_pv_area (tdep->sp->num, gdbarch_addr_bit (arch));
-  back_to = make_cleanup_free_pv_area (st.stack);
+  pv_area stack (tdep->sp->num, gdbarch_addr_bit (arch));
+  st.stack = &stack;
 
   /* Record that the call instruction has saved the return address on
      the stack.  */
@@ -1812,11 +1811,9 @@ m32c_analyze_prologue (struct gdbarch *a
     prologue->kind = prologue_first_frame;
 
   /* Record where all the registers were saved.  */
-  pv_area_scan (st.stack, check_for_saved, (void *) prologue);
+  st.stack->scan (check_for_saved, (void *) prologue);
 
   prologue->prologue_end = after_last_frame_related_insn;
-
-  do_cleanups (back_to);
 }
 
 
@@ -2639,9 +2636,6 @@ m32c_gdbarch_init (struct gdbarch_info i
   /* Register set.  */
   make_regs (gdbarch);
 
-  /* Disassembly.  */
-  set_gdbarch_print_insn (gdbarch, print_insn_m32c);
-
   /* Breakpoints.  */
   set_gdbarch_breakpoint_kind_from_pc (gdbarch, m32c_breakpoint::kind_from_pc);
   set_gdbarch_sw_breakpoint_from_kind (gdbarch, m32c_breakpoint::bp_from_kind);
@@ -2684,9 +2678,6 @@ m32c_gdbarch_init (struct gdbarch_info i
   return gdbarch;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_m32c_tdep;
-
 void
 _initialize_m32c_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m32r-linux-nat.c ./gdb/m32r-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m32r-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m32r-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for GNU/Linux m32r.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -231,8 +231,6 @@ m32r_linux_store_inferior_registers (str
 		  _("Got request to store bad register number %d."), regno);
 }
 
-void _initialize_m32r_linux_nat (void);
-
 void
 _initialize_m32r_linux_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m32r-linux-tdep.c ./gdb/m32r-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m32r-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m32r-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux m32r.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -353,7 +353,7 @@ m32r_linux_supply_gregset (const struct 
 {
   const gdb_byte *regs = (const gdb_byte *) gregs;
   enum bfd_endian byte_order =
-    gdbarch_byte_order (get_regcache_arch (regcache));
+    gdbarch_byte_order (regcache->arch ());
   ULONGEST psw, bbpsw;
   gdb_byte buf[4];
   const gdb_byte *p;
@@ -397,7 +397,7 @@ m32r_linux_collect_gregset (const struct
   gdb_byte *regs = (gdb_byte *) gregs;
   int i;
   enum bfd_endian byte_order =
-    gdbarch_byte_order (get_regcache_arch (regcache));
+    gdbarch_byte_order (regcache->arch ());
   ULONGEST psw;
   gdb_byte buf[4];
 
@@ -470,9 +470,6 @@ m32r_linux_init_abi (struct gdbarch_info
                                              svr4_fetch_objfile_link_map);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern void _initialize_m32r_linux_tdep (void);
-
 void
 _initialize_m32r_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m32r-tdep.c ./gdb/m32r-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m32r-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m32r-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Renesas M32R, for GDB.
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -44,8 +44,6 @@
 
 /* Local functions */
 
-extern void _initialize_m32r_tdep (void);
-
 static CORE_ADDR
 m32r_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
 {
@@ -247,7 +245,7 @@ static void
 m32r_store_return_value (struct type *type, struct regcache *regcache,
 			 const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR regval;
   int len = TYPE_LENGTH (type);
@@ -772,7 +770,7 @@ static void
 m32r_extract_return_value (struct type *type, struct regcache *regcache,
 			   gdb_byte *dst)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int len = TYPE_LENGTH (type);
   ULONGEST tmp;
@@ -908,7 +906,7 @@ m32r_gdbarch_init (struct gdbarch_info i
     return arches->gdbarch;
 
   /* Allocate space for the new architecture.  */
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
 
   set_gdbarch_wchar_bit (gdbarch, 16);
@@ -947,8 +945,6 @@ m32r_gdbarch_init (struct gdbarch_info i
   /* Return the unwound PC value.  */
   set_gdbarch_unwind_pc (gdbarch, m32r_unwind_pc);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_m32r);
-
   /* Hook in ABI-specific overrides, if they have been registered.  */
   gdbarch_init_osabi (info, gdbarch);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m32r-tdep.h ./gdb/m32r-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m32r-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m32r-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Renesas M32R, for GDB.
  
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m68hc11-tdep.c ./gdb/m68hc11-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m68hc11-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m68hc11-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Motorola 68HC11 & 68HC12
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    Contributed by Stephane Carrez, stcarrez@nerim.fr
 
@@ -112,7 +112,7 @@ enum insn_return_kind {
 #define SOFT_D32_REGNUM     (SOFT_D1_REGNUM+31)
 #define M68HC11_MAX_SOFT_REGS 32
 
-#define M68HC11_NUM_REGS        (8)
+#define M68HC11_NUM_REGS        (M68HC11_LAST_HARD_REG + 1)
 #define M68HC11_NUM_PSEUDO_REGS (M68HC11_MAX_SOFT_REGS+5)
 #define M68HC11_ALL_REGS        (M68HC11_NUM_REGS+M68HC11_NUM_PSEUDO_REGS)
 
@@ -1344,16 +1344,6 @@ m68hc11_elf_make_msymbol_special (asymbo
   if (flags & STO_M68HC12_INTERRUPT)
     MSYMBOL_SET_RTI (msym);
 }
-
-static int
-gdb_print_insn_m68hc11 (bfd_vma memaddr, disassemble_info *info)
-{
-  if (info->arch == bfd_arch_m68hc11)
-    return print_insn_m68hc11 (memaddr, info);
-  else
-    return print_insn_m68hc12 (memaddr, info);
-}
-
 
 
 /* 68HC11/68HC12 register groups.
@@ -1444,7 +1434,7 @@ m68hc11_gdbarch_init (struct gdbarch_inf
     }
 
   /* Need a new architecture.  Fill in a target specific vector.  */
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
   tdep->elf_flags = elf_flags;
 
@@ -1525,7 +1515,6 @@ m68hc11_gdbarch_init (struct gdbarch_inf
 				       m68hc11_breakpoint::kind_from_pc);
   set_gdbarch_sw_breakpoint_from_kind (gdbarch,
 				       m68hc11_breakpoint::bp_from_kind);
-  set_gdbarch_print_insn (gdbarch, gdb_print_insn_m68hc11);
 
   m68hc11_add_reggroups (gdbarch);
   set_gdbarch_register_reggroup_p (gdbarch, m68hc11_register_reggroup_p);
@@ -1554,9 +1543,6 @@ m68hc11_gdbarch_init (struct gdbarch_inf
   return gdbarch;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_m68hc11_tdep;
-
 void
 _initialize_m68hc11_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m68k-bsd-nat.c ./gdb/m68k-bsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m68k-bsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m68k-bsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for Motorola 68000 BSD's.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -58,7 +58,7 @@ m68kbsd_supply_gregset (struct regcache 
 static void
 m68kbsd_supply_fpregset (struct regcache *regcache, const void *fpregs)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   const char *regs = fpregs;
   int regnum;
 
@@ -91,7 +91,7 @@ static void
 m68kbsd_collect_fpregset (struct regcache *regcache,
 			  void *fpregs, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   char *regs = fpregs;
   int i;
 
@@ -215,10 +215,6 @@ m68kbsd_supply_pcb (struct regcache *reg
 
   return 1;
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_m68kbsd_nat (void);
 
 void
 _initialize_m68kbsd_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m68k-bsd-tdep.c ./gdb/m68k-bsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m68k-bsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m68k-bsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Motorola 68000 BSD's.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -58,7 +58,7 @@ m68kbsd_supply_fpregset (const struct re
 			 struct regcache *regcache,
 			 int regnum, const void *fpregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   const gdb_byte *regs = (const gdb_byte *) fpregs;
   int i;
 
@@ -150,10 +150,6 @@ m68kbsd_init_abi (struct gdbarch_info in
   set_solib_svr4_fetch_link_map_offsets
     (gdbarch, svr4_ilp32_fetch_link_map_offsets);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_m68kbsd_tdep (void);
 
 void
 _initialize_m68kbsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m68k-linux-nat.c ./gdb/m68k-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m68k-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m68k-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Motorola m68k native support for GNU/Linux.
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -104,7 +104,7 @@ static int have_ptrace_getregs =
 static void
 fetch_register (struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   long regaddr, val;
   int i;
   gdb_byte buf[M68K_MAX_REGISTER_SIZE];
@@ -139,7 +139,7 @@ old_fetch_inferior_registers (struct reg
   else
     {
       for (regno = 0;
-	   regno < gdbarch_num_regs (get_regcache_arch (regcache));
+	   regno < gdbarch_num_regs (regcache->arch ());
 	   regno++)
 	{
 	  fetch_register (regcache, regno);
@@ -152,7 +152,7 @@ old_fetch_inferior_registers (struct reg
 static void
 store_register (const struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   long regaddr, val;
   int i;
   gdb_byte buf[M68K_MAX_REGISTER_SIZE];
@@ -191,7 +191,7 @@ old_store_inferior_registers (const stru
   else
     {
       for (regno = 0;
-	   regno < gdbarch_num_regs (get_regcache_arch (regcache));
+	   regno < gdbarch_num_regs (regcache->arch ());
 	   regno++)
 	{
 	  store_register (regcache, regno);
@@ -206,7 +206,7 @@ old_store_inferior_registers (const stru
 void
 supply_gregset (struct regcache *regcache, const elf_gregset_t *gregsetp)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   const elf_greg_t *regp = (const elf_greg_t *) gregsetp;
   int regi;
 
@@ -302,7 +302,7 @@ static void store_regs (const struct reg
 void
 supply_fpregset (struct regcache *regcache, const elf_fpregset_t *fpregsetp)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int regi;
 
   for (regi = gdbarch_fp0_regnum (gdbarch);
@@ -323,7 +323,7 @@ void
 fill_fpregset (const struct regcache *regcache,
 	       elf_fpregset_t *fpregsetp, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int i;
 
   /* Fill in the floating-point registers.  */
@@ -505,9 +505,6 @@ ps_get_thread_area (struct ps_prochandle
 
   return PS_OK;
 }
-
-
-void _initialize_m68k_linux_nat (void);
 
 void
 _initialize_m68k_linux_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m68k-linux-tdep.c ./gdb/m68k-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m68k-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m68k-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Motorola m68k target-dependent support for GNU/Linux.
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -19,8 +19,6 @@
 
 #include "defs.h"
 #include "gdbcore.h"
-#include "doublest.h"
-#include "floatformat.h"
 #include "frame.h"
 #include "target.h"
 #include "gdbtypes.h"
@@ -423,9 +421,6 @@ m68k_linux_init_abi (struct gdbarch_info
                                              svr4_fetch_objfile_link_map);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_m68k_linux_tdep;
-
 void
 _initialize_m68k_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m68k-tdep.c ./gdb/m68k-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m68k-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m68k-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Motorola 68000 series.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -32,6 +32,8 @@
 #include "osabi.h"
 #include "dis-asm.h"
 #include "target-descriptions.h"
+#include "floatformat.h"
+#include "target-float.h"
 
 #include "m68k-tdep.h"
 
@@ -72,7 +74,7 @@ m68k_ps_type (struct gdbarch *gdbarch)
     {
       struct type *type;
 
-      type = arch_flags_type (gdbarch, "builtin_type_m68k_ps", 4);
+      type = arch_flags_type (gdbarch, "builtin_type_m68k_ps", 32);
       append_flags_type_flag (type, 0, "C");
       append_flags_type_flag (type, 1, "V");
       append_flags_type_flag (type, 2, "Z");
@@ -188,6 +190,8 @@ m68k_convert_register_p (struct gdbarch 
   if (!gdbarch_tdep (gdbarch)->fpregs_present)
     return 0;
   return (regnum >= M68K_FP0_REGNUM && regnum <= M68K_FP0_REGNUM + 7
+	  /* We only support floating-point values.  */
+	  && TYPE_CODE (type) == TYPE_CODE_FLT
 	  && type != register_type (gdbarch, M68K_FP0_REGNUM));
 }
 
@@ -199,27 +203,19 @@ m68k_register_to_value (struct frame_inf
 			struct type *type, gdb_byte *to,
 			int *optimizedp, int *unavailablep)
 {
+  struct gdbarch *gdbarch = get_frame_arch (frame);
   gdb_byte from[M68K_MAX_REGISTER_SIZE];
-  struct type *fpreg_type = register_type (get_frame_arch (frame),
-					   M68K_FP0_REGNUM);
+  struct type *fpreg_type = register_type (gdbarch, M68K_FP0_REGNUM);
 
-  /* We only support floating-point values.  */
-  if (TYPE_CODE (type) != TYPE_CODE_FLT)
-    {
-      warning (_("Cannot convert floating-point register value "
-	       "to non-floating-point type."));
-      *optimizedp = *unavailablep = 0;
-      return 0;
-    }
-
-  /* Convert to TYPE.  */
+  gdb_assert (TYPE_CODE (type) == TYPE_CODE_FLT);
 
   /* Convert to TYPE.  */
-  if (!get_frame_register_bytes (frame, regnum, 0, TYPE_LENGTH (type),
+  if (!get_frame_register_bytes (frame, regnum, 0,
+				 register_size (gdbarch, regnum),
 				 from, optimizedp, unavailablep))
     return 0;
 
-  convert_typed_floating (from, fpreg_type, to, type);
+  target_float_convert (from, fpreg_type, to, type);
   *optimizedp = *unavailablep = 0;
   return 1;
 }
@@ -244,7 +240,7 @@ m68k_value_to_register (struct frame_inf
     }
 
   /* Convert from TYPE.  */
-  convert_typed_floating (from, type, to, fpreg_type);
+  target_float_convert (from, type, to, fpreg_type);
   put_frame_register (frame, regnum, to);
 }
 
@@ -309,14 +305,14 @@ m68k_svr4_extract_return_value (struct t
 				gdb_byte *valbuf)
 {
   gdb_byte buf[M68K_MAX_REGISTER_SIZE];
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   if (tdep->float_return && TYPE_CODE (type) == TYPE_CODE_FLT)
     {
       struct type *fpreg_type = register_type (gdbarch, M68K_FP0_REGNUM);
       regcache_raw_read (regcache, M68K_FP0_REGNUM, buf);
-      convert_typed_floating (buf, fpreg_type, valbuf, type);
+      target_float_convert (buf, fpreg_type, valbuf, type);
     }
   else if (TYPE_CODE (type) == TYPE_CODE_PTR && TYPE_LENGTH (type) == 4)
     regcache_raw_read (regcache, M68K_A0_REGNUM, valbuf);
@@ -349,14 +345,14 @@ static void
 m68k_svr4_store_return_value (struct type *type, struct regcache *regcache,
 			      const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   if (tdep->float_return && TYPE_CODE (type) == TYPE_CODE_FLT)
     {
       struct type *fpreg_type = register_type (gdbarch, M68K_FP0_REGNUM);
       gdb_byte buf[M68K_MAX_REGISTER_SIZE];
-      convert_typed_floating (valbuf, type, buf, fpreg_type);
+      target_float_convert (valbuf, type, buf, fpreg_type);
       regcache_raw_write (regcache, M68K_FP0_REGNUM, buf);
     }
   else if (TYPE_CODE (type) == TYPE_CODE_PTR && TYPE_LENGTH (type) == 4)
@@ -1240,10 +1236,6 @@ m68k_gdbarch_init (struct gdbarch_info i
   set_gdbarch_return_in_first_hidden_param_p (gdbarch,
 					      m68k_return_in_first_hidden_param_p);
 
-
-  /* Disassembler.  */
-  set_gdbarch_print_insn (gdbarch, print_insn_m68k);
-
 #if defined JB_PC && defined JB_ELEMENT_SIZE
   tdep->jb_pc = JB_PC;
   tdep->jb_elt_size = JB_ELEMENT_SIZE;
@@ -1289,8 +1281,6 @@ m68k_dump_tdep (struct gdbarch *gdbarch,
     return;
 }
 
-extern initialize_file_ftype _initialize_m68k_tdep; /* -Wmissing-prototypes */
-
 void
 _initialize_m68k_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m68k-tdep.h ./gdb/m68k-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m68k-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m68k-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Motorola 68000 series.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m88k-bsd-nat.c ./gdb/m88k-bsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m88k-bsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m88k-bsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for Motorola 88000 BSD's.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -94,10 +94,6 @@ m88kbsd_store_inferior_registers (struct
 	      (PTRACE_TYPE_ARG3) &regs, 0) == -1)
     perror_with_name (_("Couldn't write registers"));
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_m88kbsd_nat (void);
 
 void
 _initialize_m88kbsd_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m88k-tdep.c ./gdb/m88k-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m88k-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m88k-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Motorola 88000 series.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -252,7 +252,7 @@ static CORE_ADDR
 m88k_store_arguments (struct regcache *regcache, int nargs,
 		      struct value **args, CORE_ADDR sp)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int num_register_words = 0;
   int num_stack_words = 0;
   int i;
@@ -838,8 +838,6 @@ m88k_gdbarch_init (struct gdbarch_info i
   set_gdbarch_iterate_over_regset_sections
     (gdbarch, m88k_iterate_over_regset_sections);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_m88k);
-
   set_gdbarch_skip_prologue (gdbarch, m88k_skip_prologue);
 
   /* Stack grows downward.  */
@@ -863,10 +861,6 @@ m88k_gdbarch_init (struct gdbarch_info i
 
   return gdbarch;
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_m88k_tdep (void);
 
 void
 _initialize_m88k_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m88k-tdep.h ./gdb/m88k-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/m88k-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/m88k-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Motorola 88000 series.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/machoread.c ./gdb/machoread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/machoread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/machoread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Darwin support for GDB, the GNU debugger.
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    Contributed by AdaCore.
 
@@ -994,9 +994,6 @@ static const struct sym_fns macho_sym_fn
   &psym_functions
 };
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_machoread;
-
 void
 _initialize_machoread (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/macrocmd.c ./gdb/macrocmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/macrocmd.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/macrocmd.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* C preprocessor macro expansion commands for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by Red Hat, Inc.
 
    This file is part of GDB.
@@ -33,7 +33,7 @@
 static struct cmd_list_element *macrolist;
 
 static void
-macro_command (char *arg, int from_tty)
+macro_command (const char *arg, int from_tty)
 {
   printf_unfiltered
     ("\"macro\" must be followed by the name of a macro command.\n");
@@ -53,7 +53,7 @@ macro_inform_no_debuginfo (void)
 }
 
 static void
-macro_expand_command (char *exp, int from_tty)
+macro_expand_command (const char *exp, int from_tty)
 {
   struct macro_scope *ms = NULL;
   char *expanded = NULL;
@@ -88,7 +88,7 @@ macro_expand_command (char *exp, int fro
 
 
 static void
-macro_expand_once_command (char *exp, int from_tty)
+macro_expand_once_command (const char *exp, int from_tty)
 {
   struct macro_scope *ms = NULL;
   char *expanded = NULL;
@@ -188,19 +188,19 @@ print_macro_definition (const char *name
 
 /* The implementation of the `info macro' command.  */
 static void
-info_macro_command (char *args, int from_tty)
+info_macro_command (const char *args, int from_tty)
 {
   struct macro_scope *ms = NULL;
   struct cleanup *cleanup_chain;
-  char *name;
+  const char *name;
   int show_all_macros_named = 0;
-  char *arg_start = args;
+  const char *arg_start = args;
   int processing_args = 1;
 
   while (processing_args
 	 && arg_start && *arg_start == '-' && *arg_start != '\0')
     {
-      char *p = skip_to_space (arg_start);
+      const char *p = skip_to_space (arg_start);
 
       if (strncmp (arg_start, "-a", p - arg_start) == 0
 	  || strncmp (arg_start, "-all", p - arg_start) == 0)
@@ -212,10 +212,9 @@ info_macro_command (char *args, int from
 	processing_args = 0;
       else
 	{
-	  /* Relies on modified 'args' not making it in to history */
-	  *p = '\0';
-	  error (_("Unrecognized option '%s' to info macro command.  "
-		   "Try \"help info macro\"."), arg_start);
+	  error (_("Unrecognized option '%.*s' to info macro command.  "
+		   "Try \"help info macro\"."),
+		 int (p - arg_start), arg_start);
 	}
 
         arg_start = skip_spaces (p);
@@ -270,7 +269,7 @@ info_macro_command (char *args, int from
 
 /* Implementation of the "info macros" command. */
 static void
-info_macros_command (char *args, int from_tty)
+info_macros_command (const char *args, int from_tty)
 {
   struct macro_scope *ms = NULL;
   struct cleanup *cleanup_chain = make_cleanup (free_current_contents, &ms);
@@ -279,11 +278,11 @@ info_macros_command (char *args, int fro
     ms = default_macro_scope ();
   else
     {
-      struct symtabs_and_lines sals =
-	decode_line_with_current_source (args, 0);
+      std::vector<symtab_and_line> sals
+	= decode_line_with_current_source (args, 0);
 
-      if (sals.nelts)
-        ms = sal_macro_scope (sals.sals[0]);
+      if (!sals.empty ())
+	ms = sal_macro_scope (sals[0]);
     }
 
   if (! ms || ! ms->file || ! ms->file->table)
@@ -298,7 +297,7 @@ info_macros_command (char *args, int fro
 /* User-defined macros.  */
 
 static void
-skip_ws (char **expp)
+skip_ws (const char **expp)
 {
   while (macro_is_whitespace (**expp))
     ++*expp;
@@ -312,10 +311,10 @@ skip_ws (char **expp)
    parameters.  */
 
 static char *
-extract_identifier (char **expp, int is_parameter)
+extract_identifier (const char **expp, int is_parameter)
 {
   char *result;
-  char *p = *expp;
+  const char *p = *expp;
   unsigned int len;
 
   if (is_parameter && startswith (p, "..."))
@@ -358,7 +357,7 @@ free_macro_definition_ptr (void *ptr)
 }
 
 static void
-macro_define_command (char *exp, int from_tty)
+macro_define_command (const char *exp, int from_tty)
 {
   struct macro_definition new_macro;
   char *name = NULL;
@@ -440,7 +439,7 @@ macro_define_command (char *exp, int fro
 
 
 static void
-macro_undef_command (char *exp, int from_tty)
+macro_undef_command (const char *exp, int from_tty)
 {
   char *name;
 
@@ -476,16 +475,13 @@ print_one_macro (const char *name, const
 
 
 static void
-macro_list_command (char *exp, int from_tty)
+macro_list_command (const char *exp, int from_tty)
 {
   macro_for_each (macro_user_macros, print_one_macro);
 }
 
-
 /* Initializing the `macrocmd' module.  */
 
-extern initialize_file_ftype _initialize_macrocmd; /* -Wmissing-prototypes */
-
 void
 _initialize_macrocmd (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/macroexp.c ./gdb/macroexp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/macroexp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/macroexp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* C preprocessor macro expansion for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by Red Hat, Inc.
 
    This file is part of GDB.
@@ -946,6 +946,30 @@ find_parameter (const struct macro_buffe
   return -1;
 }
  
+/* Helper function for substitute_args that gets the next token and
+   updates the passed-in state variables.  */
+
+static void
+get_next_token_for_substitution (struct macro_buffer *replacement_list,
+				 struct macro_buffer *token,
+				 char **start,
+				 struct macro_buffer *lookahead,
+				 char **lookahead_start,
+				 int *lookahead_valid,
+				 bool *keep_going)
+{
+  if (!*lookahead_valid)
+    *keep_going = false;
+  else
+    {
+      *keep_going = true;
+      *token = *lookahead;
+      *start = *lookahead_start;
+      *lookahead_start = replacement_list->text;
+      *lookahead_valid = get_token (lookahead, replacement_list);
+    }
+}
+
 /* Given the macro definition DEF, being invoked with the actual
    arguments given by ARGC and ARGV, substitute the arguments into the
    replacement list, and store the result in DEST.
@@ -996,8 +1020,64 @@ substitute_args (struct macro_buffer *de
   lookahead_rl_start = replacement_list.text;
   lookahead_valid = get_token (&lookahead, &replacement_list);
 
-  for (;;)
+  /* __VA_OPT__ state variable.  The states are:
+     0 - nothing happening
+     1 - saw __VA_OPT__
+     >= 2 in __VA_OPT__, the value encodes the parenthesis depth.  */
+  unsigned vaopt_state = 0;
+
+  for (bool keep_going = true;
+       keep_going;
+       get_next_token_for_substitution (&replacement_list,
+					&tok,
+					&original_rl_start,
+					&lookahead,
+					&lookahead_rl_start,
+					&lookahead_valid,
+					&keep_going))
     {
+      bool token_is_vaopt = (tok.len == 10
+			     && strncmp (tok.text, "__VA_OPT__", 10) == 0);
+
+      if (vaopt_state > 0)
+	{
+	  if (token_is_vaopt)
+	    error (_("__VA_OPT__ cannot appear inside __VA_OPT__"));
+	  else if (tok.len == 1 && tok.text[0] == '(')
+	    {
+	      ++vaopt_state;
+	      /* We just entered __VA_OPT__, so don't emit this
+		 token.  */
+	      continue;
+	    }
+	  else if (vaopt_state == 1)
+	    error (_("__VA_OPT__ must be followed by an open parenthesis"));
+	  else if (tok.len == 1 && tok.text[0] == ')')
+	    {
+	      --vaopt_state;
+	      if (vaopt_state == 1)
+		{
+		  /* Done with __VA_OPT__.  */
+		  vaopt_state = 0;
+		  /* Don't emit.  */
+		  continue;
+		}
+	    }
+
+	  /* If __VA_ARGS__ is empty, then drop the contents of
+	     __VA_OPT__.  */
+	  if (argv[argc - 1].len == 0)
+	    continue;
+	}
+      else if (token_is_vaopt)
+	{
+	  if (!is_varargs)
+	    error (_("__VA_OPT__ is only valid in a variadic macro"));
+	  vaopt_state = 1;
+	  /* Don't emit this token.  */
+	  continue;
+	}
+
       /* Just for aesthetics.  If we skipped some whitespace, copy
          that to DEST.  */
       if (tok.text > original_rl_start)
@@ -1157,16 +1237,10 @@ substitute_args (struct macro_buffer *de
 	  if (! substituted)
 	    append_tokens_without_splicing (dest, &tok);
 	}
-
-      if (! lookahead_valid)
-	break;
-
-      tok = lookahead;
-      original_rl_start = lookahead_rl_start;
-
-      lookahead_rl_start = replacement_list.text;
-      lookahead_valid = get_token (&lookahead, &replacement_list);
     }
+
+  if (vaopt_state > 0)
+    error (_("Unterminated __VA_OPT__"));
 }
 
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/macroexp.h ./gdb/macroexp.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/macroexp.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/macroexp.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Interface to C preprocessor macro expansion for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by Red Hat, Inc.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/macroscope.c ./gdb/macroscope.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/macroscope.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/macroscope.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Functions for deciding which macros are currently in scope.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by Red Hat, Inc.
 
    This file is part of GDB.
@@ -156,9 +156,6 @@ standard_macro_lookup (const char *name,
   return result;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_macroscope;
-
 void
 _initialize_macroscope (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/macroscope.h ./gdb/macroscope.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/macroscope.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/macroscope.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Interface to functions for deciding which macros are currently in scope.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by Red Hat, Inc.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/macrotab.c ./gdb/macrotab.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/macrotab.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/macrotab.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* C preprocessor macro tables for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by Red Hat, Inc.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/macrotab.h ./gdb/macrotab.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/macrotab.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/macrotab.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Interface to C preprocessor macro tables for GDB.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by Red Hat, Inc.
 
    This file is part of GDB.
@@ -230,9 +230,9 @@ void macro_define_special (struct macro_
    path.  e.g., `stdio.h', not `/usr/include/stdio.h'.  If NAME
    appears more than once in the inclusion tree, return the
    least-nested inclusion --- the one closest to the main source file.  */
-struct macro_source_file *(macro_lookup_inclusion
-                           (struct macro_source_file *source,
-                            const char *name));
+struct macro_source_file *macro_lookup_inclusion
+                          (struct macro_source_file *source,
+                           const char *name);
 
 
 /* Record an object-like #definition (i.e., one with no parameter list).
@@ -315,9 +315,9 @@ struct macro_definition
    effect at the end of the file.  The macro table owns the structure;
    the caller need not free it.  Return zero if NAME is not #defined
    at that point.  */
-struct macro_definition *(macro_lookup_definition
-                          (struct macro_source_file *source,
-                           int line, const char *name));
+struct macro_definition *macro_lookup_definition
+                         (struct macro_source_file *source,
+                          int line, const char *name);
 
 
 /* Return the source location of the definition for NAME in scope at
@@ -325,11 +325,11 @@ struct macro_definition *(macro_lookup_d
    number of the definition, and return a source file structure for
    the file.  Return zero if NAME has no definition in scope at that
    point, and leave *DEFINITION_LINE unchanged.  */
-struct macro_source_file *(macro_definition_location
-                           (struct macro_source_file *source,
-                            int line,
-                            const char *name,
-                            int *definition_line));
+struct macro_source_file *macro_definition_location
+                          (struct macro_source_file *source,
+                           int line,
+                           const char *name,
+                           int *definition_line);
 
 /* Prototype for a callback callable when walking a macro table.  NAME
    is the name of the macro, and DEFINITION is the definition.  SOURCE
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/main.c ./gdb/main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Top level stuff for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -120,7 +120,7 @@ set_gdb_data_directory (const char *new_
     warning (_("%s is not a directory."), new_datadir);
 
   xfree (gdb_datadir);
-  gdb_datadir = gdb_realpath (new_datadir);
+  gdb_datadir = gdb_realpath (new_datadir).release ();
 
   /* gdb_realpath won't return an absolute path if the path doesn't exist,
      but we still want to record an absolute path here.  If the user entered
@@ -128,10 +128,10 @@ set_gdb_data_directory (const char *new_
      isn't canonical, but that's ok.  */
   if (!IS_ABSOLUTE_PATH (gdb_datadir))
     {
-      char *abs_datadir = gdb_abspath (gdb_datadir);
+      gdb::unique_xmalloc_ptr<char> abs_datadir = gdb_abspath (gdb_datadir);
 
       xfree (gdb_datadir);
-      gdb_datadir = abs_datadir;
+      gdb_datadir = abs_datadir.release ();
     }
 }
 
@@ -224,7 +224,7 @@ get_init_files (const char **system_gdbi
 	    {
 	      /* Append the part of SYSTEM_GDBINIT that follows GDB_DATADIR
 		 to gdb_datadir.  */
-	      char *tmp_sys_gdbinit = xstrdup (SYSTEM_GDBINIT + datadir_len);
+	      char *tmp_sys_gdbinit = xstrdup (&SYSTEM_GDBINIT[datadir_len]);
 	      char *p;
 
 	      for (p = tmp_sys_gdbinit; IS_DIR_SEPARATOR (*p); ++p)
@@ -305,11 +305,15 @@ setup_alternate_signal_stack (void)
 #endif
 }
 
-/* Call command_loop.  If it happens to return, pass that through as a
-   non-zero return status.  */
+/* Call command_loop.  */
 
-static int
-captured_command_loop (void *data)
+/* Prevent inlining this function for the benefit of GDB's selftests
+   in the testsuite.  Those tests want to run GDB under GDB and stop
+   here.  */
+static void captured_command_loop () __attribute__((noinline));
+
+static void
+captured_command_loop ()
 {
   struct ui *ui = current_ui;
 
@@ -333,15 +337,12 @@ captured_command_loop (void *data)
      check to detect bad FUNCs code.  */
   do_cleanups (all_cleanups ());
   /* If the command_loop returned, normally (rather than threw an
-     error) we try to quit.  If the quit is aborted, catch_errors()
-     which called this catch the signal and restart the command
-     loop.  */
+     error) we try to quit.  If the quit is aborted, our caller
+     catches the signal and restarts the command loop.  */
   quit_command (NULL, ui->instream == ui->stdin_stream);
-  return 1;
 }
 
-/* Handle command errors thrown from within
-   catch_command_errors/catch_command_errors_const.  */
+/* Handle command errors thrown from within catch_command_errors.  */
 
 static int
 handle_command_errors (struct gdb_exception e)
@@ -359,42 +360,16 @@ handle_command_errors (struct gdb_except
   return 1;
 }
 
-/* Type of the command callback passed to catch_command_errors.  */
-
-typedef void (catch_command_errors_ftype) (char *, int);
-
-/* Wrap calls to commands run before the event loop is started.  */
-
-static int
-catch_command_errors (catch_command_errors_ftype *command,
-		      char *arg, int from_tty)
-{
-  TRY
-    {
-      int was_sync = current_ui->prompt_state == PROMPT_BLOCKED;
-
-      command (arg, from_tty);
-
-      maybe_wait_sync_command_done (was_sync);
-    }
-  CATCH (e, RETURN_MASK_ALL)
-    {
-      return handle_command_errors (e);
-    }
-  END_CATCH
-
-  return 1;
-}
-
-/* Type of the command callback passed to catch_command_errors_const.  */
+/* Type of the command callback passed to the const
+   catch_command_errors.  */
 
 typedef void (catch_command_errors_const_ftype) (const char *, int);
 
-/* Like catch_command_errors, but works with const command and args.  */
+/* Wrap calls to commands run before the event loop is started.  */
 
 static int
-catch_command_errors_const (catch_command_errors_const_ftype *command,
-			    const char *arg, int from_tty)
+catch_command_errors (catch_command_errors_const_ftype command,
+		      const char *arg, int from_tty)
 {
   TRY
     {
@@ -427,6 +402,19 @@ symbol_file_add_main_adapter (const char
   symbol_file_add_main (arg, add_flags);
 }
 
+/* Perform validation of the '--readnow' and '--readnever' flags.  */
+
+static void
+validate_readnow_readnever ()
+{
+  if (readnever_symbol_files && readnow_symbol_files)
+    {
+      error (_("%s: '--readnow' and '--readnever' cannot be "
+	       "specified simultaneously"),
+	     gdb_program_name);
+    }
+}
+
 /* Type of this option.  */
 enum cmdarg_kind
 {
@@ -498,8 +486,6 @@ captured_main_1 (struct captured_main_ar
   int save_auto_load;
   struct objfile *objfile;
 
-  struct cleanup *chain;
-
 #ifdef HAVE_SBRK
   /* Set this before constructing scoped_command_stats.  */
   lim_at_start = (char *) sbrk (0);
@@ -520,7 +506,6 @@ captured_main_1 (struct captured_main_ar
 
   bfd_init ();
   notice_open_fds ();
-  save_original_signals_state ();
 
   saved_command_line = (char *) xstrdup ("");
 
@@ -530,7 +515,7 @@ captured_main_1 (struct captured_main_ar
   setvbuf (stderr, NULL, _IONBF, BUFSIZ);
 #endif
 
-  main_ui = new_ui (stdin, stdout, stderr);
+  main_ui = new ui (stdin, stdout, stderr);
   current_ui = main_ui;
 
   gdb_stdtargerr = gdb_stderr;	/* for moment */
@@ -549,11 +534,10 @@ captured_main_1 (struct captured_main_ar
     (xstrprintf ("%s: warning: ", gdb_program_name));
   warning_pre_print = tmp_warn_preprint.get ();
 
-  if (! getcwd (gdb_dirbuf, sizeof (gdb_dirbuf)))
+  current_directory = getcwd (NULL, 0);
+  if (current_directory == NULL)
     perror_warning_with_name (_("error finding working directory"));
 
-  current_directory = gdb_dirbuf;
-
   /* Set the sysroot path.  */
   gdb_sysroot = relocate_gdb_directory (TARGET_SYSTEM_ROOT,
 					TARGET_SYSTEM_ROOT_RELOCATABLE);
@@ -607,14 +591,17 @@ captured_main_1 (struct captured_main_ar
       OPT_NOWINDOWS,
       OPT_WINDOWS,
       OPT_IX,
-      OPT_IEX
+      OPT_IEX,
+      OPT_READNOW,
+      OPT_READNEVER
     };
     static struct option long_options[] =
     {
       {"tui", no_argument, 0, OPT_TUI},
       {"dbx", no_argument, &dbx_commands, 1},
-      {"readnow", no_argument, &readnow_symbol_files, 1},
-      {"r", no_argument, &readnow_symbol_files, 1},
+      {"readnow", no_argument, NULL, OPT_READNOW},
+      {"readnever", no_argument, NULL, OPT_READNEVER},
+      {"r", no_argument, NULL, OPT_READNOW},
       {"quiet", no_argument, &quiet, 1},
       {"q", no_argument, &quiet, 1},
       {"silent", no_argument, &quiet, 1},
@@ -837,6 +824,20 @@ captured_main_1 (struct captured_main_ar
 	    }
 	    break;
 
+	  case OPT_READNOW:
+	    {
+	      readnow_symbol_files = 1;
+	      validate_readnow_readnever ();
+	    }
+	    break;
+
+	  case OPT_READNEVER:
+	    {
+	      readnever_symbol_files = 1;
+	      validate_readnow_readnever ();
+	    }
+	    break;
+
 	  case '?':
 	    error (_("Use `%s --help' for a complete list of options."),
 		   gdb_program_name);
@@ -847,6 +848,8 @@ captured_main_1 (struct captured_main_ar
       quiet = 1;
   }
 
+  save_original_signals_state (quiet);
+
   /* Try to set up an alternate signal stack for SIGSEGV handlers.  */
   setup_alternate_signal_stack ();
 
@@ -982,7 +985,7 @@ captured_main_1 (struct captured_main_ar
      processed; it sets global parameters, which are independent of
      what file you are debugging or what directory you are in.  */
   if (system_gdbinit && !inhibit_gdbinit)
-    catch_command_errors_const (source_script, system_gdbinit, 0);
+    catch_command_errors (source_script, system_gdbinit, 0);
 
   /* Read and execute $HOME/.gdbinit file, if it exists.  This is done
      *before* all the command line arguments are processed; it sets
@@ -990,7 +993,7 @@ captured_main_1 (struct captured_main_ar
      debugging or what directory you are in.  */
 
   if (home_gdbinit && !inhibit_gdbinit && !inhibit_home_gdbinit)
-    catch_command_errors_const (source_script, home_gdbinit, 0);
+    catch_command_errors (source_script, home_gdbinit, 0);
 
   /* Process '-ix' and '-iex' options early.  */
   for (i = 0; i < cmdarg_vec.size (); i++)
@@ -1000,8 +1003,8 @@ captured_main_1 (struct captured_main_ar
       switch (cmdarg_p.type)
 	{
 	case CMDARG_INIT_FILE:
-	  catch_command_errors_const (source_script, cmdarg_p.string,
-				      !batch_flag);
+	  catch_command_errors (source_script, cmdarg_p.string,
+				!batch_flag);
 	  break;
 	case CMDARG_INIT_COMMAND:
 	  catch_command_errors (execute_command, cmdarg_p.string,
@@ -1032,19 +1035,19 @@ captured_main_1 (struct captured_main_ar
       /* The exec file and the symbol-file are the same.  If we can't
          open it, better only print one error message.
          catch_command_errors returns non-zero on success!  */
-      if (catch_command_errors_const (exec_file_attach, execarg,
-				      !batch_flag))
-	catch_command_errors_const (symbol_file_add_main_adapter, symarg,
-				    !batch_flag);
+      if (catch_command_errors (exec_file_attach, execarg,
+				!batch_flag))
+	catch_command_errors (symbol_file_add_main_adapter, symarg,
+			      !batch_flag);
     }
   else
     {
       if (execarg != NULL)
-	catch_command_errors_const (exec_file_attach, execarg,
-				    !batch_flag);
+	catch_command_errors (exec_file_attach, execarg,
+			      !batch_flag);
       if (symarg != NULL)
-	catch_command_errors_const (symbol_file_add_main_adapter, symarg,
-				    !batch_flag);
+	catch_command_errors (symbol_file_add_main_adapter, symarg,
+			      !batch_flag);
     }
 
   if (corearg && pidarg)
@@ -1083,7 +1086,8 @@ captured_main_1 (struct captured_main_ar
      the same as the $HOME/.gdbinit file (it should exist, also).  */
   if (local_gdbinit)
     {
-      auto_load_local_gdbinit_pathname = gdb_realpath (local_gdbinit);
+      auto_load_local_gdbinit_pathname
+	= gdb_realpath (local_gdbinit).release ();
 
       if (!inhibit_gdbinit && auto_load_local_gdbinit
 	  && file_is_auto_load_safe (local_gdbinit,
@@ -1093,7 +1097,7 @@ captured_main_1 (struct captured_main_ar
 	{
 	  auto_load_local_gdbinit_loaded = 1;
 
-	  catch_command_errors_const (source_script, local_gdbinit, 0);
+	  catch_command_errors (source_script, local_gdbinit, 0);
 	}
     }
 
@@ -1113,8 +1117,8 @@ captured_main_1 (struct captured_main_ar
       switch (cmdarg_p.type)
 	{
 	case CMDARG_FILE:
-	  catch_command_errors_const (source_script, cmdarg_p.string,
-				      !batch_flag);
+	  catch_command_errors (source_script, cmdarg_p.string,
+				!batch_flag);
 	  break;
 	case CMDARG_COMMAND:
 	  catch_command_errors (execute_command, cmdarg_p.string,
@@ -1147,7 +1151,15 @@ captured_main (void *data)
      change - SET_TOP_LEVEL() - has been eliminated.  */
   while (1)
     {
-      catch_errors (captured_command_loop, 0, "", RETURN_MASK_ALL);
+      TRY
+	{
+	  captured_command_loop ();
+	}
+      CATCH (ex, RETURN_MASK_ALL)
+	{
+	  exception_print (gdb_stderr, ex);
+	}
+      END_CATCH
     }
   /* No exit -- exit is through quit_command.  */
 }
@@ -1202,6 +1214,7 @@ Selection of debuggee and its files:\n\n
   --se=FILE          Use FILE as symbol file and executable file.\n\
   --symbols=SYMFILE  Read symbols from SYMFILE.\n\
   --readnow          Fully read symbol files on first access.\n\
+  --readnever        Do not read symbol files.\n\
   --write            Set writing into executable and core files.\n\n\
 "), stream);
   fputs_unfiltered (_("\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/main.h ./gdb/main.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/main.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/main.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Main interface for GDB, the GNU debugger.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/MAINTAINERS ./gdb/MAINTAINERS
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/MAINTAINERS	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/MAINTAINERS	2018-01-09 02:04:56.000000000 +0000
@@ -151,15 +151,10 @@ The current global maintainers are (in a
 Pedro Alves                     palves@redhat.com
 Joel Brobecker			brobecker@adacore.com
 Kevin Buettner			kevinb@redhat.com
-Andrew Cagney			cagney@gnu.org
 Doug Evans			dje@google.com
-Daniel Jacobowitz		drow@false.org
-Mark Kettenis           	kettenis@gnu.org
 Simon Marchi			simon.marchi@ericsson.com
 Yao Qi				yao.qi@arm.com
-Stan Shebs			stanshebs@google.com
 Ulrich Weigand			Ulrich.Weigand@de.ibm.com
-Elena Zannoni			elena.zannoni@oracle.com
 Eli Zaretskii			eliz@gnu.org
 
 
@@ -188,8 +183,7 @@ patches; and ensure that contributors ar
 
 Current patch champions (in alphabetical order):
 
-	Randolph Chung     <tausq@debian.org>
-
+	<none>
 
 
 			Responsible Maintainers
@@ -254,7 +248,6 @@ the native maintainer when resolving ABI
 	h8300		--target=h8300-elf ,-Werror
 
 	i386		--target=i386-elf ,-Werror
-			Mark Kettenis           kettenis@gnu.org
 
 	ia64		--target=ia64-linux-gnu ,-Werror
 			(--target=ia64-elf broken)
@@ -266,12 +259,9 @@ the native maintainer when resolving ABI
 	m32r		--target=m32r-elf ,-Werror
 
 	m68hc11		--target=m68hc11-elf ,-Werror ,
-			Stephane Carrez		Stephane.Carrez@gmail.com
-
 	m68k		--target=m68k-elf ,-Werror
 
 	m88k		--target=m88k-openbsd ,-Werror
-			Mark Kettenis		kettenis@gnu.org
 
 	mcore		Deleted
 
@@ -312,8 +302,6 @@ the native maintainer when resolving ABI
 			Andreas Arnez		arnez@linux.vnet.ibm.com
 
 	score	--target=score-elf
-			Qinwei		qinwei@sunnorth.com.cn
-
 	sh		--target=sh-elf ,-Werror
 			--target=sh64-elf ,-Werror
 
@@ -333,10 +321,7 @@ the native maintainer when resolving ABI
 	x86-64		--target=x86_64-linux-gnu ,-Werror
 
 	xstormy16	--target=xstormy16-elf
-			Corinna Vinschen	vinschen@redhat.com
-
 	xtensa		--target=xtensa-elf
-			Maxim Grigoriev		maxim2405@gmail.com
 
 All developers recognized by this file can make arbitrary changes to
 OBSOLETE targets.
@@ -355,30 +340,20 @@ resolving more generic problems.
 The host maintainer ensures that gdb can be built as a cross debugger on
 their platform.
 
-Darwin			Tristan Gingold		gingold@adacore.com
+Darwin			Tristan Gingold		tgingold@free.fr
 djgpp native		Eli Zaretskii		eliz@gnu.org
-GNU Hurd		Alfred M. Szmidt	ams@gnu.org
-GNU/Linux/x86 native & host
-			Mark Kettenis		kettenis@gnu.org
-GNU/Linux MIPS native & host
-			Daniel Jacobowitz	drow@false.org
+FreeBSD			John Baldwin		jhb@freebsd.org
 GNU/Linux m68k		Andreas Schwab		schwab@linux-m68k.org
-FreeBSD native & host	Mark Kettenis		kettenis@gnu.org
 
 
 
 Core: Generic components used by all of GDB
 
-threads			Mark Kettenis		kettenis@gnu.org
-
 linespec		Keith Seitz             keiths@redhat.com
 
 language support
   Ada			Joel Brobecker		brobecker@adacore.com
-			Paul Hilfinger		hilfinger@gnat.com
-  C++			Daniel Jacobowitz	drow@false.org
   D			Iain Buclaw		ibuclaw@gdcproject.org
-  Objective C support   Adam Fedor		fedor@gnu.org
   Rust			Tom Tromey		tom@tromey.com
 shared libs		Kevin Buettner		kevinb@redhat.com
 MI interface		Vladimir Prus		vladimir@codesourcery.com
@@ -434,34 +409,19 @@ further review from a Global Maintainer 
 under no obligation to review posted patches - but, of course, are invited
 to do so!
 
-PowerPC			Andrew Cagney		cagney@gnu.org
 ARM			Richard Earnshaw	rearnsha@arm.com
 Blackfin		Mike Frysinger		vapier@gentoo.org
 CRIS			Hans-Peter Nilsson	hp@axis.com
 IA64			Jeff Johnston		jjohnstn@redhat.com
 MIPS			Joel Brobecker		brobecker@adacore.com
-m32r			Kei Sakamoto		sakamoto.kei@renesas.com
 PowerPC			Kevin Buettner		kevinb@redhat.com
-CRIS			Orjan Friberg		orjanf@axis.com
-HPPA			Randolph Chung		tausq@debian.org
 S390			Ulrich Weigand		uweigand@de.ibm.com
 djgpp			DJ Delorie		dj@delorie.com
 			[Please use this address to contact DJ about DJGPP]
-tui			Stephane Carrez		Stephane.Carrez@gmail.com
 ia64			Kevin Buettner		kevinb@redhat.com
 AIX			Kevin Buettner		kevinb@redhat.com
 GNU/Linux PPC native	Kevin Buettner		kevinb@redhat.com
-FreeBSD native & host	David O'Brien		obrien@freebsd.org
-event loop		Elena Zannoni		elena.zannoni@oracle.com
-generic symtabs		Elena Zannoni		elena.zannoni@oracle.com
-dwarf readers		Elena Zannoni		elena.zannoni@oracle.com
-elf reader		Elena Zannoni		elena.zannoni@oracle.com
-stabs reader		Elena Zannoni		elena.zannoni@oracle.com
-readline/		Elena Zannoni		elena.zannoni@oracle.com
-NetBSD native & host	Jason Thorpe		thorpej@netbsd.org
 Pascal support		Pierre Muller		muller@sourceware.org
-avr			Theodore A. Roth	troth@openavr.org
-Modula-2 support	Gaius Mulley		gaius@glam.ac.uk
 
 
 			Write After Approval
@@ -498,7 +458,6 @@ Julian Brown					julian@codesourcery.com
 Iain Buclaw					ibuclaw@gdcproject.org
 Kevin Buettner					kevinb@redhat.com
 Andrew Burgess					andrew.burgess@embecosm.com
-Andrew Cagney					cagney@gnu.org
 David Carlton					carlton@bactrian.org
 Stephane Carrez					Stephane.Carrez@gmail.com
 Michael Chastain				mec.gnu@mindspring.com
@@ -539,7 +498,7 @@ Martin Galvan					martingalvan@sourcewar
 Chen Gang					gang.chen.5i5j@gmail.com
 Mircea Gherzan					mircea.gherzan@intel.com
 Paul Gilliam					pgilliam@us.ibm.com
-Tristan Gingold					gingold@adacore.com
+Tristan Gingold					tgingold@free.fr
 Anton Gorenkov					xgsa@yandex.ru
 Raoul Gough					RaoulGough@yahoo.co.uk
 Anthony Green			 		green@redhat.com
@@ -551,11 +510,12 @@ Ben Harris					bjh21@netbsd.org
 Bernhard Heckel					heckel_bernhard@web.de
 Richard Henderson				rth@redhat.com
 Aldy Hernandez					aldyh@redhat.com
-Paul Hilfinger					hilfinger@gnat.com
+Paul Hilfinger					hilfingr@eecs.berkeley.edu
 Matt Hiller					hiller@redhat.com
 Kazu Hirata					kazu@cs.umass.edu
 James Hogan					james.hogan@imgtec.com
 Jeff Holcomb					jeffh@redhat.com
+Stafford Horne					shorne@gmail.com
 Don Howard					dhoward@redhat.com
 Nick Hudson					nick.hudson@dsl.pipex.com
 Martin Hunt					hunt@redhat.com
@@ -567,6 +527,7 @@ Daniel Jacobowitz				drow@false.org
 Andreas Jaeger					aj@suse.de
 Janis Johnson					janisjo@codesourcery.com
 Jeff Johnston					jjohnstn@redhat.com
+Ruslan Kabatsayev				b7.10110111@gmail.com
 Geoff Keating					geoffk@redhat.com
 Mark Kettenis					kettenis@gnu.org
 Marc Khouzam					marc.khouzam@ericsson.com
@@ -591,7 +552,7 @@ Carl Love                  cel@us.ibm.co
 H.J. Lu						hjl.tools@gmail.com
 Michal Ludvig                                   mludvig@suse.cz
 Edjunior B. Machado				emachado@linux.vnet.ibm.com
-Luis Machado					lgustavo@codesourcery.com
+Luis Machado					luis.machado@linaro.org
 Jose E. Marchesi                                jose.marchesi@oracle.com
 Glen McCready					gkm@redhat.com
 Greg McGary					greg@mcgary.org
@@ -638,10 +599,12 @@ Aleksandar Ristovski				aristovski@qnx.c
 Tom Rix						trix@redhat.com
 Nick Roberts					nickrob@snap.net.nz
 Pierre-Marie de Rodat				derodat@adacore.com
+Xavier Roirand 					roirand@adacore.com
 Bob Rossi 					bob_rossi@cox.net
 Theodore A. Roth				troth@openavr.org
 Ian Roxborough					irox@redhat.com
 Maciej W. Rozycki				macro@linux-mips.org
+Kamil Rytarowski				n54@gmx.com
 Grace Sainsbury					graces@redhat.com
 Kei Sakamoto					sakamoto.kei@renesas.com
 Mark Salter					msalter@redhat.com
@@ -667,6 +630,7 @@ Jackie Smith Cashion				jsmith@redhat.co
 Petr Sorfa					petrs@caldera.com
 Andrew Stubbs					ams@codesourcery.com
 Emi Suzuki					emi-suzuki@tjsys.co.jp
+Alfred M. Szmidt				ams@gnu.org
 David Taylor					david.taylor@emc.com
 Ian Lance Taylor				ian@airs.com
 Walfred Tedeschi				walfred.tedeschi@intel.com
@@ -697,7 +661,7 @@ Jim Wilson					wilson@tuliptree.org
 Andy Wingo					wingo@igalia.com
 Mike Wrighton					wrighton@codesourcery.com
 Kwok Cheung Yeung				kcy@codesourcery.com
-Elena Zannoni					elena.zannoni@oracle.com
+Elena Zannoni					ezannoni@gmail.com
 Eli Zaretskii					eliz@gnu.org
 Jie Zhang					jzhang918@gmail.com
 Wu Zhou						woodzltc@cn.ibm.com
@@ -724,7 +688,8 @@ Fernando Nasser (testsuite/, mi, cli, KO
 Mark Salter (testsuite/lib+config)		msalter at redhat dot com
 Jim Kingdon (web pages)				kingdon at panix dot com
 Jim Ingham (gdbtk, libgui)			jingham at apple dot com
-Mark Kettenis (hurd native)			kettenis at gnu dot org
+Mark Kettenis (global, i386-elf, m88k-openbsd,
+  GNU/Linux x86, FreeBSD, hurd native, threads) kettenis at gnu dot org
 Ian Roxborough (in-tree tcl, tk, itcl)		irox at redhat dot com
 Robert Lipe (SCO/Unixware)			rjl at sco dot com
 Peter Schauer (global, AIX, xcoffsolib,
@@ -736,6 +701,29 @@ Fred Fish (global)
 Jim Blandy (global)				jimb@red-bean.com
 Michael Snyder (global)
 Christopher Faylor (MS Windows, host & native)
+Daniel Jacobowitz (global, GNU/Linux MIPS,
+  C++, GDBserver)				drow at false dot org
+Maxim Grigoriev (xtensa)			maxim2405 at gmail dot com
+Andrew Cagney (acting head maintainer,
+  release manager, global, MIPS, PPC, d10v,
+  d30v, sim, mi, multi-arch, unwinder)		cagney at gnu dot org
+Paul Hilfinger (Ada)				hilfingr@eecs.berkeley.edu
+David O'Brien (FreeBSD, host & native)		obrien@freebsd.org
+Jason Thorpe (NetBSD, host & native)		thorpej@netbsd.org
+Gaius Mulley (Modula-2)				gaius@glam.ac.uk
+Kei Sakamoto (m32r)				sakamoto.kei@renesas.com
+Orjan Friberg (CRIS)				orjanf@axis.com
+Qinwei (score-elf)				qinwei@sunnorth.com.cn
+Randolph Chung (HPPA)				tausq@debian.org
+Elena Zannoni (Global, event loop, generic
+  symtabs, DWARF readers, ELF readers, stabs
+  readers, readline)				ezannoni@gmail.com
+Adam Fedor (Objective C)			fedor@gnu.org
+Corinna Vinschen (xstormy16-elf)		vinschen@redhat.com
+Theodore A. Roth (avr)				troth@openavr.org
+Stephane Carrez (m68hc11-elf, tui)		Stephane.Carrez@gmail.com
+Alfred M. Szmidt (GNU Hurd)			ams@gnu.org
+Stan Shebs (Global)				stanshebs@google.com
 
 
 Folks that have been caught up in a paper trail:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/maint.c ./gdb/maint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/maint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/maint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support for GDB maintenance commands.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    Written by Fred Fish at Cygnus Support.
 
@@ -44,25 +44,7 @@
 #include "cli/cli-utils.h"
 #include "cli/cli-setshow.h"
 
-extern void _initialize_maint_cmds (void);
-
-static void maintenance_command (char *, int);
-
-static void maintenance_internal_error (char *args, int from_tty);
-
-static void maintenance_demangle (char *, int);
-
-static void maintenance_time_display (char *, int);
-
-static void maintenance_space_display (char *, int);
-
-static void maintenance_info_command (char *, int);
-
-static void maintenance_info_sections (char *, int);
-
-static void maintenance_print_command (char *, int);
-
-static void maintenance_do_deprecate (char *, int);
+static void maintenance_do_deprecate (const char *, int);
 
 /* Set this to the maximum number of seconds to wait instead of waiting forever
    in target_wait().  If this timer times out, then it generates an error and
@@ -81,7 +63,7 @@ show_watchdog (struct ui_file *file, int
 /* Access the maintenance subcommands.  */
 
 static void
-maintenance_command (char *args, int from_tty)
+maintenance_command (const char *args, int from_tty)
 {
   printf_unfiltered (_("\"maintenance\" must be followed by "
 		       "the name of a maintenance command.\n"));
@@ -90,7 +72,7 @@ maintenance_command (char *args, int fro
 
 #ifndef _WIN32
 static void
-maintenance_dump_me (char *args, int from_tty)
+maintenance_dump_me (const char *args, int from_tty)
 {
   if (query (_("Should GDB dump core? ")))
     {
@@ -112,7 +94,7 @@ maintenance_dump_me (char *args, int fro
    GDB.  */
 
 static void
-maintenance_internal_error (char *args, int from_tty)
+maintenance_internal_error (const char *args, int from_tty)
 {
   internal_error (__FILE__, __LINE__, "%s", (args == NULL ? "" : args));
 }
@@ -123,7 +105,7 @@ maintenance_internal_error (char *args, 
    GDB.  */
 
 static void
-maintenance_internal_warning (char *args, int from_tty)
+maintenance_internal_warning (const char *args, int from_tty)
 {
   internal_warning (__FILE__, __LINE__, "%s", (args == NULL ? "" : args));
 }
@@ -132,7 +114,7 @@ maintenance_internal_warning (char *args
    demangler problem is detected.  Allows testing of the mechanism.  */
 
 static void
-maintenance_demangler_warning (char *args, int from_tty)
+maintenance_demangler_warning (const char *args, int from_tty)
 {
   demangler_warning (__FILE__, __LINE__, "%s", (args == NULL ? "" : args));
 }
@@ -142,13 +124,13 @@ maintenance_demangler_warning (char *arg
    "mt demangler-warning" which artificially creates an internal gdb error.  */
 
 static void
-maintenance_demangle (char *args, int from_tty)
+maintenance_demangle (const char *args, int from_tty)
 {
   printf_filtered (_("This command has been moved to \"demangle\".\n"));
 }
 
 static void
-maintenance_time_display (char *args, int from_tty)
+maintenance_time_display (const char *args, int from_tty)
 {
   if (args == NULL || *args == '\0')
     printf_unfiltered (_("\"maintenance time\" takes a numeric argument.\n"));
@@ -157,7 +139,7 @@ maintenance_time_display (char *args, in
 }
 
 static void
-maintenance_space_display (char *args, int from_tty)
+maintenance_space_display (const char *args, int from_tty)
 {
   if (args == NULL || *args == '\0')
     printf_unfiltered ("\"maintenance space\" takes a numeric argument.\n");
@@ -170,7 +152,7 @@ maintenance_space_display (char *args, i
    "maintenance info" with no args.  */
 
 static void
-maintenance_info_command (char *arg, int from_tty)
+maintenance_info_command (const char *arg, int from_tty)
 {
   printf_unfiltered (_("\"maintenance info\" must be followed "
 		       "by the name of an info command.\n"));
@@ -178,6 +160,19 @@ maintenance_info_command (char *arg, int
 	     gdb_stdout);
 }
 
+/* The "maintenance check" command is defined as a prefix, with
+   allow_unknown 0.  Therefore, its own definition is called only for
+   "maintenance check" with no args.  */
+
+static void
+maintenance_check_command (const char *arg, int from_tty)
+{
+  printf_unfiltered (_("\"maintenance check\" must be followed "
+		       "by the name of a check command.\n"));
+  help_list (maintenancechecklist, "maintenance check ", all_commands,
+	     gdb_stdout);
+}
+
 /* Mini tokenizing lexer for 'maint info sections' command.  */
 
 static int
@@ -343,7 +338,7 @@ print_objfile_section_info (bfd *abfd, 
 }
 
 static void
-maintenance_info_sections (char *arg, int from_tty)
+maintenance_info_sections (const char *arg, int from_tty)
 {
   if (exec_bfd)
     {
@@ -374,7 +369,7 @@ maintenance_info_sections (char *arg, in
 	    }
 	}
       else 
-	bfd_map_over_sections (exec_bfd, print_bfd_section_info, arg);
+	bfd_map_over_sections (exec_bfd, print_bfd_section_info, (void *) arg);
     }
 
   if (core_bfd)
@@ -383,19 +378,19 @@ maintenance_info_sections (char *arg, in
       printf_filtered ("    `%s', ", bfd_get_filename (core_bfd));
       wrap_here ("        ");
       printf_filtered (_("file type %s.\n"), bfd_get_target (core_bfd));
-      bfd_map_over_sections (core_bfd, print_bfd_section_info, arg);
+      bfd_map_over_sections (core_bfd, print_bfd_section_info, (void *) arg);
     }
 }
 
 static void
-maintenance_print_statistics (char *args, int from_tty)
+maintenance_print_statistics (const char *args, int from_tty)
 {
   print_objfile_statistics ();
   print_symbol_bcache_statistics ();
 }
 
 static void
-maintenance_print_architecture (char *args, int from_tty)
+maintenance_print_architecture (const char *args, int from_tty)
 {
   struct gdbarch *gdbarch = get_current_arch ();
 
@@ -416,7 +411,7 @@ maintenance_print_architecture (char *ar
    "maintenance print" with no args.  */
 
 static void
-maintenance_print_command (char *arg, int from_tty)
+maintenance_print_command (const char *arg, int from_tty)
 {
   printf_unfiltered (_("\"maintenance print\" must be followed "
 		       "by the name of a print command.\n"));
@@ -430,11 +425,11 @@ maintenance_print_command (char *arg, in
    or   maintenance translate-address <addr>.  */
 
 static void
-maintenance_translate_address (char *arg, int from_tty)
+maintenance_translate_address (const char *arg, int from_tty)
 {
   CORE_ADDR address;
   struct obj_section *sect;
-  char *p;
+  const char *p;
   struct bound_minimal_symbol sym;
   struct objfile *objfile;
 
@@ -450,12 +445,13 @@ maintenance_translate_address (char *arg
 	p++;
       if (*p == '\000')		/* End of command?  */
 	error (_("Need to specify <section-name> and <address>"));
-      *p++ = '\000';
-      p = skip_spaces (p);
+
+      int arg_len = p - arg;
+      p = skip_spaces (p + 1);
 
       ALL_OBJSECTIONS (objfile, sect)
       {
-	if (strcmp (sect->the_bfd_section->name, arg) == 0)
+	if (strncmp (sect->the_bfd_section->name, arg, arg_len) == 0)
 	  break;
       }
 
@@ -514,7 +510,7 @@ maintenance_translate_address (char *arg
    offered.  */
 
 static void
-maintenance_deprecate (char *args, int from_tty)
+maintenance_deprecate (const char *args, int from_tty)
 {
   if (args == NULL || *args == '\0')
     {
@@ -524,12 +520,11 @@ enclosed in quotes.\n"));
     }
 
   maintenance_do_deprecate (args, 1);
-
 }
 
 
 static void
-maintenance_undeprecate (char *args, int from_tty)
+maintenance_undeprecate (const char *args, int from_tty)
 {
   if (args == NULL || *args == '\0')
     {
@@ -538,7 +533,6 @@ the command you want to undeprecate.\n")
     }
 
   maintenance_do_deprecate (args, 0);
-
 }
 
 /* You really shouldn't be using this.  It is just for the testsuite.
@@ -549,14 +543,14 @@ the command you want to undeprecate.\n")
    replacement.  */
 
 static void
-maintenance_do_deprecate (char *text, int deprecate)
+maintenance_do_deprecate (const char *text, int deprecate)
 {
   struct cmd_list_element *alias = NULL;
   struct cmd_list_element *prefix_cmd = NULL;
   struct cmd_list_element *cmd = NULL;
 
-  char *start_ptr = NULL;
-  char *end_ptr = NULL;
+  const char *start_ptr = NULL;
+  const char *end_ptr = NULL;
   int len;
   char *replacement = NULL;
 
@@ -580,8 +574,7 @@ maintenance_do_deprecate (char *text, in
 	  if (end_ptr != NULL)
 	    {
 	      len = end_ptr - start_ptr;
-	      start_ptr[len] = '\0';
-	      replacement = xstrdup (start_ptr);
+	      replacement = savestring (start_ptr, len);
 	    }
 	}
     }
@@ -642,7 +635,7 @@ struct cmd_list_element *maintenance_set
 struct cmd_list_element *maintenance_show_cmdlist;
 
 static void
-maintenance_set_cmd (char *args, int from_tty)
+maintenance_set_cmd (const char *args, int from_tty)
 {
   printf_unfiltered (_("\"maintenance set\" must be followed "
 		       "by the name of a set command.\n"));
@@ -651,7 +644,7 @@ maintenance_set_cmd (char *args, int fro
 }
 
 static void
-maintenance_show_cmd (char *args, int from_tty)
+maintenance_show_cmd (const char *args, int from_tty)
 {
   cmd_show_list (maintenance_show_cmdlist, from_tty, "");
 }
@@ -691,7 +684,7 @@ EXTERN_C void monstartup (unsigned long,
 extern int main ();
 
 static void
-maintenance_set_profile_cmd (char *args, int from_tty,
+maintenance_set_profile_cmd (const char *args, int from_tty,
 			     struct cmd_list_element *c)
 {
   if (maintenance_profile_p == profiling_state)
@@ -722,7 +715,7 @@ maintenance_set_profile_cmd (char *args,
 }
 #else
 static void
-maintenance_set_profile_cmd (char *args, int from_tty,
+maintenance_set_profile_cmd (const char *args, int from_tty,
 			     struct cmd_list_element *c)
 {
   error (_("Profiling support is not available on this system."));
@@ -914,7 +907,7 @@ scoped_command_stats::scoped_command_sta
    In this case have "mt set per-command on|off" affect every setting.  */
 
 static void
-set_per_command_cmd (char *args, int from_tty)
+set_per_command_cmd (const char *args, int from_tty)
 {
   struct cmd_list_element *list;
   int val;
@@ -935,7 +928,7 @@ set_per_command_cmd (char *args, int fro
    "show per-command " settings.  */
 
 static void
-show_per_command_cmd (char *args, int from_tty)
+show_per_command_cmd (const char *args, int from_tty)
 {
   cmd_show_list (per_command_showlist, from_tty, "");
 }
@@ -944,9 +937,28 @@ show_per_command_cmd (char *args, int fr
 /* The "maintenance selftest" command.  */
 
 static void
-maintenance_selftest (char *args, int from_tty)
+maintenance_selftest (const char *args, int from_tty)
 {
-  run_self_tests ();
+#if GDB_SELF_TEST
+  selftests::run_tests (args);
+#else
+  printf_filtered (_("\
+Selftests are not available in a non-development build.\n"));
+#endif
+}
+
+static void
+maintenance_info_selftests (const char *arg, int from_tty)
+{
+#if GDB_SELF_TEST
+  printf_filtered ("Registered selftests:\n");
+  selftests::for_each_selftest ([] (const std::string &name) {
+    printf_filtered (" - %s\n", name.c_str ());
+  });
+#else
+  printf_filtered (_("\
+Selftests are not available in a non-development build.\n"));
+#endif
 }
 
 
@@ -1104,6 +1116,11 @@ Print the internal architecture configur
 Takes an optional file parameter."),
 	   &maintenanceprintlist);
 
+  add_prefix_cmd ("check", class_maintenance, maintenance_check_command, _("\
+Commands for checking internal gdb state."),
+		  &maintenancechecklist, "maintenance check ", 0,
+		  &maintenancelist);
+
   add_cmd ("translate-address", class_maintenance,
 	   maintenance_translate_address,
 	   _("Translate a section name and address to a symbol."),
@@ -1124,11 +1141,14 @@ If you decide you want to use it: mainte
 
   add_cmd ("selftest", class_maintenance, maintenance_selftest, _("\
 Run gdb's unit tests.\n\
-Usage: maintenance selftest\n\
+Usage: maintenance selftest [filter]\n\
 This will run any unit tests that were built in to gdb.\n\
-gdb will abort if any test fails."),
+If a filter is given, only the tests with that value in their name will ran."),
 	   &maintenancelist);
 
+  add_cmd ("selftests", class_maintenance, maintenance_info_selftests,
+	 _("List the registered selftests."), &maintenanceinfolist);
+
   add_setshow_zinteger_cmd ("watchdog", class_maintenance, &watchdog, _("\
 Set watchdog timer."), _("\
 Show watchdog timer."), _("\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/maint.h ./gdb/maint.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/maint.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/maint.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for GDB maintenance commands.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/Makefile.in ./gdb/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/Makefile.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/Makefile.in	2018-01-09 02:04:56.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1989-2017 Free Software Foundation, Inc.
+# Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
 # This file is part of GDB.
 
@@ -114,7 +114,7 @@ depcomp = $(SHELL) $(srcdir)/../depcomp
 
 # Note that these are overridden by GNU make-specific code below if
 # GNU make is used.  The overrides implement dependency tracking.
-COMPILE.pre = $(CXX) $(CXX_DIALECT)
+COMPILE.pre = $(CXX) -x c++ $(CXX_DIALECT)
 COMPILE.post = -c -o $@
 COMPILE = $(COMPILE.pre) $(INTERNAL_CFLAGS) $(COMPILE.post)
 POSTCOMPILE = @true
@@ -194,6 +194,9 @@ LIBBABELTRACE = @LIBBABELTRACE@
 # Where is libipt?  This will be empty if libipt was not available.
 LIBIPT = @LIBIPT@
 
+# Where is libmpfr?  This will be empty if libmpfr was not available.
+LIBMPFR = @LIBMPFR@
+
 WARN_CFLAGS = @WARN_CFLAGS@
 WERROR_CFLAGS = @WERROR_CFLAGS@
 GDB_WARN_CFLAGS = $(WARN_CFLAGS)
@@ -232,16 +235,6 @@ GNULIB_H = $(GNULIB_BUILDDIR)/import/str
 #
 # CLI sub directory definitons
 #
-SUBDIR_CLI_OBS = \
-	cli-cmds.o \
-	cli-decode.o \
-	cli-dump.o \
-	cli-interp.o \
-	cli-logging.o \
-	cli-script.o \
-	cli-setshow.o \
-	cli-utils.o
-
 SUBDIR_CLI_SRCS = \
 	cli/cli-cmds.c \
 	cli/cli-decode.c \
@@ -252,6 +245,8 @@ SUBDIR_CLI_SRCS = \
 	cli/cli-setshow.c \
 	cli/cli-utils.c
 
+SUBDIR_CLI_OBS = $(patsubst %.c,%.o,$(SUBDIR_CLI_SRCS))
+
 SUBDIR_CLI_DEPS =
 SUBDIR_CLI_LDFLAGS =
 SUBDIR_CLI_CFLAGS =
@@ -259,25 +254,6 @@ SUBDIR_CLI_CFLAGS =
 #
 # MI sub directory definitons
 #
-SUBDIR_MI_OBS = \
-	mi-cmd-break.o \
-	mi-cmd-catch.o \
-	mi-cmd-disas.o \
-	mi-cmd-env.o \
-	mi-cmd-file.o \
-	mi-cmd-info.o \
-	mi-cmd-stack.o \
-	mi-cmd-target.o \
-	mi-cmd-var.o \
-	mi-cmds.o \
-	mi-console.o \
-	mi-getopt.o \
-	mi-interp.o \
-	mi-main.o \
-	mi-out.o \
-	mi-parse.o \
-	mi-symbol-cmds.o
-
 SUBDIR_MI_SRCS = \
 	mi/mi-cmd-break.c \
 	mi/mi-cmd-catch.c \
@@ -297,6 +273,8 @@ SUBDIR_MI_SRCS = \
 	mi/mi-parse.c \
 	mi/mi-symbol-cmds.c
 
+SUBDIR_MI_OBS = $(patsubst %.c,%.o,$(SUBDIR_MI_SRCS))
+
 SUBDIR_MI_DEPS =
 SUBDIR_MI_LDFLAGS =
 SUBDIR_MI_CFLAGS =
@@ -304,25 +282,6 @@ SUBDIR_MI_CFLAGS =
 #
 # TUI sub directory definitions
 #
-SUBDIR_TUI_OBS = \
-	tui.o \
-	tui-command.o \
-	tui-data.o \
-	tui-disasm.o \
-	tui-file.o \
-	tui-hooks.o \
-	tui-interp.o \
-	tui-io.o \
-	tui-layout.o \
-	tui-out.o \
-	tui-regs.o \
-	tui-source.o \
-	tui-stack.o \
-	tui-win.o \
-	tui-windata.o \
-	tui-wingeneral.o \
-	tui-winsource.o
-
 SUBDIR_TUI_SRCS = \
 	tui/tui.c \
 	tui/tui-command.c \
@@ -342,6 +301,8 @@ SUBDIR_TUI_SRCS = \
 	tui/tui-wingeneral.c \
 	tui/tui-winsource.c
 
+SUBDIR_TUI_OBS = $(patsubst %.c,%.o,$(SUBDIR_TUI_SRCS))
+
 SUBDIR_TUI_DEPS =
 SUBDIR_TUI_LDFLAGS =
 SUBDIR_TUI_CFLAGS = -DTUI=1
@@ -349,15 +310,6 @@ SUBDIR_TUI_CFLAGS = -DTUI=1
 #
 # GCC Compile support sub-directory definitions
 #
-SUBDIR_GCC_COMPILE_OBS = \
-	compile.o \
-	compile-c-support.o \
-	compile-c-symbols.o \
-	compile-c-types.o \
-	compile-loc2c.o \
-	compile-object-load.o \
-	compile-object-run.o
-
 SUBDIR_GCC_COMPILE_SRCS = \
 	compile/compile.c \
 	compile/compile-c-support.c \
@@ -369,36 +321,11 @@ SUBDIR_GCC_COMPILE_SRCS = \
 	compile/compile-object-run.c \
 	compile/compile-object-run.h
 
+SUBDIR_GCC_COMPILE_OBS = $(patsubst %.c,%.o,$(filter %.c,$(SUBDIR_GCC_COMPILE_SRCS)))
+
 #
 # Guile sub directory definitons for guile support.
 #
-SUBDIR_GUILE_OBS = \
-	guile.o \
-	scm-arch.o \
-	scm-auto-load.o \
-	scm-block.o \
-	scm-breakpoint.o \
-	scm-cmd.o \
-	scm-disasm.o \
-	scm-exception.o \
-	scm-frame.o \
-	scm-gsmob.o \
-	scm-iterator.o \
-	scm-lazy-string.o \
-	scm-math.o \
-	scm-objfile.o \
-	scm-param.o \
-	scm-ports.o \
-	scm-pretty-print.o \
-	scm-progspace.o \
-	scm-safe-call.o \
-	scm-string.o \
-	scm-symbol.o \
-	scm-symtab.o \
-	scm-type.o \
-	scm-utils.o \
-	scm-value.o
-
 SUBDIR_GUILE_SRCS = \
 	guile/guile.c \
 	guile/scm-arch.c \
@@ -426,6 +353,8 @@ SUBDIR_GUILE_SRCS = \
 	guile/scm-utils.c \
 	guile/scm-value.c
 
+SUBDIR_GUILE_OBS = $(patsubst %.c,%.o,$(SUBDIR_GUILE_SRCS))
+
 SUBDIR_GUILE_DEPS =
 SUBDIR_GUILE_LDFLAGS =
 SUBDIR_GUILE_CFLAGS =
@@ -433,50 +362,6 @@ SUBDIR_GUILE_CFLAGS =
 #
 # python sub directory definitons
 #
-SUBDIR_PYTHON_OBS = \
-	py-arch.o \
-	py-auto-load.o \
-	py-block.o \
-	py-bpevent.o \
-	py-breakpoint.o \
-	py-cmd.o \
-	py-continueevent.o \
-	py-event.o \
-	py-evtregistry.o \
-	py-evts.o \
-	py-exitedevent.o \
-	py-finishbreakpoint.o \
-	py-frame.o \
-	py-framefilter.o \
-	py-function.o \
-	py-gdb-readline.o \
-	py-inferior.o \
-	py-infevents.o \
-	py-infthread.o \
-	py-instruction.o \
-	py-lazy-string.o \
-	py-linetable.o \
-	py-newobjfileevent.o \
-	py-objfile.o \
-	py-param.o \
-	py-prettyprint.o \
-	py-progspace.o \
-	py-record.o \
-	py-record-btrace.o \
-	py-record-full.o \
-	py-signalevent.o \
-	py-stopevent.o \
-	py-symbol.o \
-	py-symtab.o \
-	py-threadevent.o \
-	py-type.o \
-	py-unwind.o \
-	py-utils.o \
-	py-value.o \
-	py-varobj.o \
-	py-xmethods.o \
-	python.o
-
 SUBDIR_PYTHON_SRCS = \
 	python/py-arch.c \
 	python/py-auto-load.c \
@@ -521,19 +406,32 @@ SUBDIR_PYTHON_SRCS = \
 	python/py-xmethods.c \
 	python/python.c
 
+SUBDIR_PYTHON_OBS = $(patsubst %.c,%.o,$(SUBDIR_PYTHON_SRCS))
+
 SUBDIR_PYTHON_DEPS =
 SUBDIR_PYTHON_LDFLAGS =
 SUBDIR_PYTHON_CFLAGS =
 
 SUBDIR_UNITTESTS_SRCS = \
+	unittests/array-view-selftests.c \
+	unittests/common-utils-selftests.c \
+	unittests/environ-selftests.c \
 	unittests/function-view-selftests.c \
+	unittests/lookup_name_info-selftests.c \
+	unittests/memory-map-selftests.c \
+	unittests/memrange-selftests.c \
 	unittests/offset-type-selftests.c \
-	unittests/ptid-selftests.c
+	unittests/optional-selftests.c \
+	unittests/ptid-selftests.c \
+	unittests/rsp-low-selftests.c \
+	unittests/scoped_restore-selftests.c \
+	unittests/xml-utils-selftests.c
+
+SUBDIR_UNITTESTS_OBS = $(patsubst %.c,%.o,$(SUBDIR_UNITTESTS_SRCS))
+
+SUBDIR_TARGET_SRCS = target/waitstatus.c
+SUBDIR_TARGET_OBS = $(patsubst %.c,%.o,$(SUBDIR_TARGET_SRCS))
 
-SUBDIR_UNITTESTS_OBS = \
-	function-view-selftests.o \
-	offset-type-selftests.o \
-	ptid-selftests.o
 
 # Opcodes currently live in one of two places.  Either they are in the
 # opcode library, typically ../opcodes, or they are in a header file
@@ -624,6 +522,9 @@ CONFIG_INSTALL = @CONFIG_INSTALL@
 CONFIG_UNINSTALL = @CONFIG_UNINSTALL@
 HAVE_NATIVE_GCORE_TARGET = @HAVE_NATIVE_GCORE_TARGET@
 
+CONFIG_SRC_SUBDIR = arch cli mi compile tui unittests guile python target
+CONFIG_DEP_SUBDIR = $(addsuffix /$(DEPDIR),$(CONFIG_SRC_SUBDIR))
+
 # -I. for config files.
 # -I$(srcdir) for gdb internal headers.
 # -I$(srcdir)/config for more generic config files.
@@ -684,7 +585,7 @@ CLIBS = $(SIM) $(READLINE) $(OPCODES) $(
 	$(XM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) \
 	@LIBS@ @GUILE_LIBS@ @PYTHON_LIBS@ \
 	$(LIBEXPAT) $(LIBLZMA) $(LIBBABELTRACE) $(LIBIPT) \
-	$(LIBIBERTY) $(WIN32LIBS) $(LIBGNU) $(LIBICONV)
+	$(LIBIBERTY) $(WIN32LIBS) $(LIBGNU) $(LIBICONV) $(LIBMPFR)
 CDEPS = $(XM_CDEPS) $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE_DEPS) \
 	$(OPCODES) $(INTL_DEPS) $(LIBIBERTY) $(CONFIG_DEPS) $(LIBGNU)
 
@@ -714,28 +615,11 @@ XMLFILES = \
 	$(srcdir)/features/traceframe-info.dtd \
 	$(srcdir)/features/xinclude.dtd
 
-# This is ser-unix.o for any system which supports a v7/BSD/SYSV/POSIX
-# interface to the serial port.  Hopefully if get ported to OS/2, VMS,
-# etc., then there will be (as part of the C library or perhaps as
-# part of libiberty) a POSIX interface.  But at least for now the
-# host-dependent makefile fragment might need to use something else
-# besides ser-unix.o
+# Build the ser-*.o files the host supports.  This includes ser-unix.o
+# for any system that supports a POSIX interface to the serial port.
+# See configure.ac.
 SER_HARDWIRE = @SER_HARDWIRE@
 
-# The `remote' debugging target is supported for most architectures,
-# but not all (e.g. 960)
-REMOTE_OBS = \
-	ax-gdb.o \
-	ax-general.o \
-	ctf.o \
-	dcache.o \
-	remote.o \
-	remote-fileio.o \
-	remote-notif.o \
-	tracefile.o \
-	tracefile-tfile.o \
-	tracepoint.o
-
 # This is remote-sim.o if a simulator is to be linked in.
 SIM_OBS = @SIM_OBS@
 
@@ -745,7 +629,7 @@ TARGET_OBS = @TARGET_OBS@
 # All target-dependent objects files that require 64-bit CORE_ADDR
 # (used with --enable-targets=all --enable-64-bit-bfd).
 ALL_64_TARGET_OBS = \
-	aarch64-insn.o \
+	aarch64-fbsd-tdep.o \
 	aarch64-linux-tdep.o \
 	aarch64-newlib-tdep.o \
 	aarch64-tdep.o \
@@ -764,6 +648,9 @@ ALL_64_TARGET_OBS = \
 	amd64-sol2-tdep.o \
 	amd64-tdep.o \
 	amd64-windows-tdep.o \
+	arch/aarch64.o \
+	arch/aarch64-insn.o \
+	arch/amd64.o \
 	ia64-linux-tdep.o \
 	ia64-tdep.o \
 	ia64-vms-tdep.o \
@@ -778,10 +665,12 @@ ALL_64_TARGET_OBS = \
 # All other target-dependent objects files (used with --enable-targets=all).
 ALL_TARGET_OBS = \
 	arc-tdep.o \
-	arm.o \
+	arch/arm.o \
+	arch/arm-get-next-pcs.o \
+	arch/arm-linux.o \
+	arch/i386.o \
 	arm-bsd-tdep.o \
-	arm-get-next-pcs.o \
-	arm-linux.o \
+	arm-fbsd-tdep.o \
 	arm-linux-tdep.o \
 	arm-nbsd-tdep.o \
 	arm-obsd-tdep.o \
@@ -900,9 +789,21 @@ ALL_TARGET_OBS = \
 	xtensa-linux-tdep.o \
 	xtensa-tdep.o
 
-# Host-dependent makefile fragment comes in here.
-@host_makefile_frag@
-# End of host-dependent makefile fragment
+# The following native-target dependent variables are defined on
+# configure.nat.
+NAT_FILE = @NAT_FILE@
+NATDEPFILES = @NATDEPFILES@
+NAT_CDEPS = @NAT_CDEPS@
+LOADLIBES = @LOADLIBES@
+MH_CFLAGS = @MH_CFLAGS@
+XM_CLIBS = @XM_CLIBS@
+NAT_GENERATED_FILES = @NAT_GENERATED_FILES@
+HAVE_NATIVE_GCORE_HOST = @HAVE_NATIVE_GCORE_HOST@
+
+# Native-target dependent makefile fragment comes in here.
+@nat_makefile_frag@
+
+# End of native-target dependent variables.
 
 FLAGS_TO_PASS = \
 	"prefix=$(prefix)" \
@@ -998,11 +899,10 @@ TARGET_FLAGS_TO_PASS = \
 	"TESTS=$(TESTS)"
 
 # All source files that go into linking GDB.
-# Links made at configuration time should not be specified here, since
-# SFILES is used in building the distribution archive.
 
-SFILES = \
-	ada-exp.y \
+# Files that should wind up in SFILES and whose corresponding .o
+# should be in COMMON_OBS.
+COMMON_SFILES = \
 	ada-lang.c \
 	ada-tasks.c \
 	ada-typeprint.c \
@@ -1027,7 +927,6 @@ SFILES = \
 	btrace.c \
 	build-id.c \
 	buildsym.c \
-	c-exp.y \
 	c-lang.c \
 	c-typeprint.c \
 	c-valprint.c \
@@ -1043,40 +942,36 @@ SFILES = \
 	corefile.c \
 	corelow.c \
 	cp-abi.c \
-	cp-name-parser.y \
 	cp-namespace.c \
 	cp-support.c \
 	cp-valprint.c \
 	ctf.c \
-	d-exp.y \
 	d-lang.c \
 	d-namespace.c \
 	d-valprint.c \
 	dbxread.c \
+	dcache.c \
+	debug.c \
 	demangle.c \
-	dfp.c \
 	dictionary.c \
 	disasm.c \
 	disasm-selftests.c \
-	doublest.c \
-	dtrace-probe.c \
 	dummy-frame.c \
 	dwarf2-frame.c \
 	dwarf2-frame-tailcall.c \
 	dwarf2expr.c \
 	dwarf2loc.c \
 	dwarf2read.c \
-	elfread.c \
 	eval.c \
 	event-loop.c \
 	event-top.c \
 	exceptions.c \
 	expprint.c \
 	extension.c \
-	f-exp.y \
 	f-lang.c \
 	f-typeprint.c \
 	f-valprint.c \
+	filename-seen-cache.c \
 	filesystem.c \
 	findcmd.c \
 	findvar.c \
@@ -1084,16 +979,16 @@ SFILES = \
 	frame-base.c \
 	frame-unwind.c \
 	gcore.c \
-	gdb.c \
 	gdb_bfd.c \
 	gdb-dlfcn.c \
 	gdb_obstack.c \
+	gdb_regex.c \
 	gdb_usleep.c \
 	gdbarch.c \
+	gdbarch-selftests.c \
 	gdbtypes.c \
 	gnu-v2-abi.c \
 	gnu-v3-abi.c \
-	go-exp.y \
 	go-lang.c \
 	go-typeprint.c \
 	go-valprint.c \
@@ -1102,7 +997,6 @@ SFILES = \
 	infcall.c \
 	infcmd.c \
 	inferior.c \
-	inflow.c \
 	infrun.c \
 	inline-frame.c \
 	interps.c \
@@ -1110,7 +1004,6 @@ SFILES = \
 	language.c \
 	linespec.c \
 	location.c \
-	m2-exp.y \
 	m2-lang.c \
 	m2-typeprint.c \
 	m2-valprint.c \
@@ -1135,15 +1028,15 @@ SFILES = \
 	opencl-lang.c \
 	osabi.c \
 	osdata.c \
-	p-exp.y \
 	p-lang.c \
 	p-typeprint.c \
 	p-valprint.c \
 	parse.c \
 	printcmd.c \
 	probe.c \
-	proc-service.list \
+	producer.c \
 	progspace.c \
+	progspace-and-thread.c \
 	prologue-value.c \
 	psymtab.c \
 	record.c \
@@ -1151,32 +1044,24 @@ SFILES = \
 	record-full.c \
 	regcache.c \
 	reggroups.c \
+	registry.c \
 	remote.c \
 	remote-fileio.c \
 	remote-notif.c \
 	reverse.c \
-	rust-exp.y \
 	rust-lang.c \
-	selftest.c \
-	selftest-arch.c \
 	sentinel-frame.c \
-	ser-base.c \
 	ser-event.c \
-	ser-unix.c \
 	serial.c \
 	skip.c \
-	sol-thread.c \
 	solib.c \
 	solib-target.c \
 	source.c \
 	stabsread.c \
 	stack.c \
-	stap-probe.c \
 	std-regs.c \
-	stub-termcap.c \
 	symfile.c \
 	symfile-debug.c \
-	symfile-mem.c \
 	symmisc.c \
 	symtab.c \
 	target.c \
@@ -1184,14 +1069,17 @@ SFILES = \
 	target-descriptions.c \
 	target-memory.c \
 	thread.c \
+	thread-fsm.c \
 	tid-parse.c \
 	top.c \
+	tracefile.c \
+	tracefile-tfile.c \
 	tracepoint.c \
 	trad-frame.c \
 	tramp-frame.c \
+	target-float.c \
 	typeprint.c \
 	ui-file.c \
-	ui-file.h \
 	ui-out.c \
 	user-regs.c \
 	utils.c \
@@ -1202,7 +1090,33 @@ SFILES = \
 	varobj.c \
 	xml-support.c \
 	xml-syscall.c \
-	xml-tdesc.c \
+	xml-tdesc.c
+
+# Links made at configuration time should not be specified here, since
+# SFILES is used in building the distribution archive.
+SFILES = \
+	ada-exp.y \
+	arch/i386.c \
+	c-exp.y \
+	cp-name-parser.y \
+	d-exp.y \
+	dtrace-probe.c \
+	elfread.c \
+	f-exp.y \
+	gdb.c \
+	go-exp.y \
+	inflow.c \
+	m2-exp.y \
+	p-exp.y \
+	proc-service.list \
+	rust-exp.y \
+	ser-base.c \
+	ser-unix.c \
+	sol-thread.c \
+	stap-probe.c \
+	stub-termcap.c \
+	symfile-mem.c \
+	ui-file.h \
 	common/agent.c \
 	common/btrace-common.c \
 	common/buffer.c \
@@ -1216,6 +1130,8 @@ SFILES = \
 	common/fileio.c \
 	common/filestuff.c \
 	common/format.c \
+	common/job-control.c \
+	common/gdb_tilde_expand.c \
 	common/gdb_vecs.c \
 	common/new-op.c \
 	common/print-utils.c \
@@ -1227,7 +1143,8 @@ SFILES = \
 	common/vec.c \
 	common/xml-utils.c \
 	mi/mi-common.c \
-	target/waitstatus.c \
+	$(SUBDIR_TARGET_SRCS) \
+	$(COMMON_SFILES) \
 	$(SUBDIR_GCC_COMPILE_SRCS)
 
 LINTFILES = $(SFILES) $(YYFILES) $(CONFIG_SRCS) init.c
@@ -1281,11 +1198,9 @@ HFILES_NO_SRCDIR = \
 	darwin-nat.h \
 	dcache.h \
 	defs.h \
-	dfp.h \
 	dicos-tdep.h \
 	dictionary.h \
 	disasm.h \
-	doublest.h \
 	dummy-frame.h \
 	dwarf2-frame.h \
 	dwarf2-frame-tailcall.h \
@@ -1308,7 +1223,6 @@ HFILES_NO_SRCDIR = \
 	frv-tdep.h \
 	ft32-tdep.h \
 	gcore.h \
-	gdb.h \
 	gdb_bfd.h \
 	gdb_curses.h \
 	gdb-dlfcn.h \
@@ -1399,6 +1313,7 @@ HFILES_NO_SRCDIR = \
 	proc-utils.h \
 	procfs.h \
 	progspace.h \
+	progspace-and-thread.h \
 	prologue-value.h \
 	psympriv.h \
 	psymtab.h \
@@ -1454,6 +1369,7 @@ HFILES_NO_SRCDIR = \
 	tracefile.h \
 	tracepoint.h \
 	trad-frame.h \
+	target-float.h \
 	tramp-frame.h \
 	typeprint.h \
 	ui-file.h \
@@ -1475,8 +1391,10 @@ HFILES_NO_SRCDIR = \
 	xml-syscall.h \
 	xml-tdesc.h \
 	xtensa-tdep.h \
+	arch/aarch64.h \
 	arch/aarch64-insn.h \
 	arch/arm.h \
+	arch/i386.h \
 	cli/cli-cmds.h \
 	cli/cli-decode.h \
 	cli/cli-script.h \
@@ -1487,21 +1405,24 @@ HFILES_NO_SRCDIR = \
 	common/common-debug.h \
 	common/common-defs.h \
 	common/common-exceptions.h \
+	common/common-gdbthread.h \
 	common/common-regcache.h \
 	common/common-types.h \
 	common/common-utils.h \
+	common/job-control.h \
 	common/errors.h \
 	common/environ.h \
 	common/fileio.h \
 	common/format.h \
 	common/gdb_assert.h \
+	common/gdb_tilde_expand.h \
 	common/gdb_locale.h \
 	common/gdb_setjmp.h \
 	common/gdb_signals.h \
 	common/gdb_sys_time.h \
-	common/gdb_termios.h \
 	common/gdb_vecs.h \
 	common/gdb_wait.h \
+	common/common-inferior.h \
 	common/host-defs.h \
 	common/print-utils.h \
 	common/ptid.h \
@@ -1542,6 +1463,7 @@ HFILES_NO_SRCDIR = \
 	nat/amd64-linux-siginfo.h \
 	nat/gdb_ptrace.h \
 	nat/gdb_thread_db.h \
+	nat/fork-inferior.h \
 	nat/linux-btrace.h \
 	nat/linux-namespaces.h \
 	nat/linux-nat.h \
@@ -1608,211 +1530,37 @@ TAGFILES_NO_SRCDIR = $(SFILES) $(HFILES_
 TAGFILES_WITH_SRCDIR = $(HFILES_WITH_SRCDIR)
 
 COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
-	ada-lang.o \
-	ada-tasks.o \
-	ada-typeprint.o \
-	ada-valprint.o \
-	ada-varobj.o \
-	addrmap.o \
-	agent.o \
-	annotate.o \
-	arch-utils.o \
-	auto-load.o \
-	auxv.o \
-	bcache.o \
-	bfd-target.o \
-	block.o \
-	blockframe.o \
-	break-catch-sig.o \
-	break-catch-syscall.o \
-	break-catch-throw.o \
-	breakpoint.o \
-	btrace.o \
 	btrace-common.o \
 	buffer.o \
-	build-id.o \
-	buildsym.o \
-	c-lang.o \
-	c-typeprint.o \
-	c-valprint.o \
-	c-varobj.o \
-	charset.o \
 	cleanups.o \
-	cli-out.o \
-	coff-pe-read.o \
-	coffread.o \
 	common-agent.o \
 	common-debug.o \
 	common-exceptions.o \
+	job-control.o \
 	common-regcache.o \
 	common-utils.o \
-	complaints.o \
-	completer.o \
-	continuations.o \
-	copying.o \
-	corefile.o \
-	corelow.o \
-	cp-abi.o \
-	cp-namespace.o \
-	cp-support.o \
-	cp-valprint.o \
-	d-lang.o \
-	d-namespace.o \
-	d-valprint.o \
-	dbxread.o \
-	debug.o \
-	demangle.o \
-	dfp.o \
-	dictionary.o \
-	disasm.o \
-	disasm-selftests.o \
-	doublest.o \
-	dummy-frame.o \
-	dwarf2-frame.o \
-	dwarf2-frame-tailcall.o \
-	dwarf2expr.o \
-	dwarf2loc.o \
-	dwarf2read.o \
 	environ.o \
 	errors.o \
-	eval.o \
-	event-loop.o \
-	event-top.o \
-	exceptions.o \
 	exec.o \
-	expprint.o \
-	extension.o \
-	f-lang.o \
-	f-typeprint.o \
-	f-valprint.o \
 	fileio.o \
 	filestuff.o \
-	filesystem.o \
-	findcmd.o \
-	findvar.o \
 	format.o \
-	frame.o \
-	frame-base.o \
-	frame-unwind.o \
-	gcore.o \
-	gdb_bfd.o \
-	gdb-dlfcn.o \
-	gdb_obstack.o \
-	gdb_usleep.o \
+	gdb_tilde_expand.o \
 	gdb_vecs.o \
-	gdbarch.o \
-	gdbtypes.o \
-	gnu-v2-abi.o \
-	gnu-v3-abi.o \
-	go-lang.o \
-	go-typeprint.o \
-	go-valprint.o \
-	inf-child.o \
-	inf-loop.o \
-	infcall.o \
-	infcmd.o \
-	inferior.o \
-	infrun.o \
-	inline-frame.o \
-	interps.o \
-	jit.o \
-	language.o \
-	linespec.o \
-	location.o \
-	m2-lang.o \
-	m2-typeprint.o \
-	m2-valprint.o \
-	macrocmd.o \
-	macroexp.o \
-	macroscope.o \
-	macrotab.o \
-	main.o \
-	maint.o \
-	mdebugread.o \
-	mem-break.o \
-	memattr.o \
-	memory-map.o \
-	memrange.o \
-	mi-common.o \
-	minidebug.o \
-	minsyms.o \
-	mipsread.o \
-	namespace.o \
+	mi/mi-common.o \
 	new-op.o \
-	objc-lang.o \
-	objfiles.o \
-	observer.o \
-	opencl-lang.o \
-	osabi.o \
-	osdata.o \
-	p-lang.o \
-	p-typeprint.o \
-	p-valprint.o \
-	parse.o \
 	print-utils.o \
-	printcmd.o \
-	probe.o \
-	progspace.o \
-	prologue-value.o \
-	psymtab.o \
 	ptid.o \
-	record.o \
-	record-btrace.o \
-	record-full.o \
-	regcache.o \
-	reggroups.o \
-	registry.o \
-	reverse.o \
 	rsp-low.o \
 	run-time-clock.o \
-	rust-lang.o \
-	selftest.o \
-	selftest-arch.o \
-	sentinel-frame.o \
-	ser-event.o \
-	serial.o \
 	signals.o \
 	signals-state-save-restore.o \
-	skip.o \
-	solib.o \
-	solib-target.o \
-	source.o \
-	stabsread.o \
-	stack.o \
-	std-regs.o \
-	symfile.o \
-	symfile-debug.o \
-	symmisc.o \
-	symtab.o \
-	target.o \
-	target-dcache.o \
-	target-descriptions.o \
-	target-memory.o \
-	thread.o \
-	thread-fsm.o \
-	tid-parse.o \
-	top.o \
-	trad-frame.o \
-	tramp-frame.o \
-	typeprint.o \
-	ui-file.o \
-	ui-out.o \
-	user-regs.o \
-	utils.o \
-	utils-selftests.o \
-	valarith.o \
-	valops.o \
-	valprint.o \
-	value.o \
-	varobj.o \
 	vec.o \
 	version.o \
-	waitstatus.o \
 	xml-builtin.o \
-	xml-support.o \
-	xml-syscall.o \
-	xml-tdesc.o \
 	xml-utils.o \
+	$(patsubst %.c,%.o,$(COMMON_SFILES)) \
+	$(SUBDIR_TARGET_OBS) \
 	$(SUBDIR_GCC_COMPILE_OBS)
 
 TSOBS = inflow.o
@@ -1826,7 +1574,7 @@ CLEANDIRS = $(SUBDIRS)
 # The format here is for the `case' shell command.
 REQUIRED_SUBDIRS = doc | testsuite | $(GNULIB_BUILDDIR) | data-directory
 
-# For now, shortcut the "configure GDB for fewer languages" stuff.
+# Parser intermediate files.
 YYFILES = \
 	ada-exp.c \
 	ada-lex.c \
@@ -1839,16 +1587,9 @@ YYFILES = \
 	p-exp.c \
 	rust-exp.c
 
-YYOBJ = \
-	ada-exp.o \
-	c-exp.o \
-	cp-name-parser.o \
-	d-exp.o \
-	f-exp.o \
-	go-exp.o \
-	m2-exp.o \
-	p-exp.o \
-	rust-exp.o
+# ada-lex.c is included by another file, so it shouldn't wind up as a
+# .o itself.
+YYOBJ = $(filter-out ada-lex.o,$(patsubst %.c,%.o,$(YYFILES)))
 
 # Things which need to be built when making a distribution.
 
@@ -1873,59 +1614,30 @@ all: gdb$(EXEEXT) $(CONFIG_ALL)
 	@$(MAKE) $(FLAGS_TO_PASS) DO=all "DODIRS=`echo $(SUBDIRS) | sed 's/testsuite//'`" subdir_do
 
 # Rule for compiling .c files in the top-level gdb directory.
-%.o: %.c
+# The order-only dependencies ensure that we create the build subdirectories.
+%.o: %.c | $(CONFIG_DEP_SUBDIR)
 	$(COMPILE) $<
 	$(POSTCOMPILE)
 
-# Rules for compiling .c files in the various source subdirectories.
-%.o: ${srcdir}/arch/%.c
-	$(COMPILE) $<
-	$(POSTCOMPILE)
+$(CONFIG_DEP_SUBDIR):
+	$(SHELL) $(srcdir)/../mkinstalldirs $@
 
-%.o: $(srcdir)/cli/%.c
-	$(COMPILE) $<
-	$(POSTCOMPILE)
+# Python files need special flags.
+python/%.o: INTERNAL_CFLAGS += $(PYTHON_CFLAGS)
 
+# Rules for compiling .c files in the various source subdirectories.
 %.o: ${srcdir}/common/%.c
 	$(COMPILE) $<
 	$(POSTCOMPILE)
 
-%.o: $(srcdir)/compile/%.c
-	$(COMPILE) $<
-	$(POSTCOMPILE)
-
 %.o: $(srcdir)/gdbtk/generic/%.c
 	$(COMPILE) $(all_gdbtk_cflags) $<
 	$(POSTCOMPILE)
 
-%.o: $(srcdir)/guile/%.c
-	$(COMPILE) $<
-	$(POSTCOMPILE)
-
-%.o: $(srcdir)/mi/%.c
-	$(COMPILE) $<
-	$(POSTCOMPILE)
-
 %.o: ${srcdir}/nat/%.c
 	$(COMPILE) $<
 	$(POSTCOMPILE)
 
-%.o: $(srcdir)/python/%.c
-	$(COMPILE) $(PYTHON_CFLAGS) $<
-	$(POSTCOMPILE)
-
-%.o: ${srcdir}/target/%.c
-	$(COMPILE) $<
-	$(POSTCOMPILE)
-
-%.o: $(srcdir)/tui/%.c
-	$(COMPILE) $<
-	$(POSTCOMPILE)
-
-%.o: ${srcdir}/unittests/%.c
-	$(COMPILE) $<
-	$(POSTCOMPILE)
-
 # Specify an explicit rule for gdb/common/agent.c, to avoid a clash with the
 # object file generate by gdb/agent.c.
 common-agent.o: $(srcdir)/common/agent.c
@@ -2257,6 +1969,10 @@ clean mostlyclean: $(CONFIG_CLEAN)
 	rm -f test-cp-name-parser$(EXEEXT)
 	rm -f xml-builtin.c stamp-xml
 	rm -f $(DEPDIR)/*
+	for i in $(CONFIG_SRC_SUBDIR); do \
+		rm -f $$i/*.o;	\
+		rm -f $$i/$(DEPDIR)/*; \
+	done
 
 # This used to depend on c-exp.c m2-exp.c TAGS
 # I believe this is wrong; the makefile standards for distclean just
@@ -2275,6 +1991,9 @@ distclean: clean
 	rm -f config.log config.cache
 	rm -f Makefile
 	rm -rf $(DEPDIR)
+	for i in $(CONFIG_SRC_SUBDIR); do \
+		if test -d $$i/$(DEPDIR); then rmdir $$i/$(DEPDIR); fi \
+	done
 
 maintainer-clean: local-maintainer-clean do-maintainer-clean distclean
 realclean: maintainer-clean
@@ -2313,21 +2032,21 @@ subdir_do: force
 		else true ; fi ; \
 	done
 
-Makefile: Makefile.in config.status @frags@
+Makefile: Makefile.in config.status
 	# Regenerate the Makefile and the tm.h / nm.h links.
 	CONFIG_FILES="Makefile" \
 	  CONFIG_COMMANDS= \
 	  CONFIG_HEADERS= \
 	  $(SHELL) config.status
 
-$(GNULIB_BUILDDIR)/Makefile: gnulib/Makefile.in config.status @frags@
+$(GNULIB_BUILDDIR)/Makefile: gnulib/Makefile.in config.status
 	@cd $(GNULIB_BUILDDIR); CONFIG_FILES="Makefile" \
 	  CONFIG_COMMANDS="depfiles" \
 	  CONFIG_HEADERS= \
 	  CONFIG_LINKS= \
 	  $(SHELL) config.status
 
-data-directory/Makefile: data-directory/Makefile.in config.status @frags@
+data-directory/Makefile: data-directory/Makefile.in config.status
 	CONFIG_FILES="data-directory/Makefile" \
 	  CONFIG_COMMANDS="depfiles" \
 	  CONFIG_HEADERS= \
@@ -2458,6 +2177,8 @@ force_update:
 MAKEOVERRIDES =
 
 ALLDEPFILES = \
+	aarch64-fbsd-nat.c \
+	aarch64-fbsd-tdep.c \
 	aarch64-linux-nat.c \
 	aarch64-linux-tdep.c \
 	aarch64-newlib-tdep.c \
@@ -2488,6 +2209,8 @@ ALLDEPFILES = \
 	arc-tdep.c \
 	arm.c \
 	arm-bsd-tdep.c \
+	arm-fbsd-nat.c \
+	arm-fbsd-tdep.c \
 	arm-get-next-pcs.c \
 	arm-linux.c \
 	arm-linux-nat.c \
@@ -2502,10 +2225,7 @@ ALLDEPFILES = \
 	bfin-tdep.c \
 	bsd-kvm.c \
 	bsd-uthread.c \
-	core-regset.c \
 	darwin-nat.c \
-	dcache.c \
-	dcache.c \
 	dicos-tdep.c \
 	exec.c \
 	fbsd-nat.c \
@@ -2668,17 +2388,6 @@ ALLDEPFILES = \
 # Some files need explicit build rules (due to -Werror problems) or due
 # to sub-directory fun 'n' games.
 
-# FIXME: cagney/2003-08-10: "monitor.c" gets -Wformat-nonliteral
-# errors.  It turns out that that is the least of monitor.c's
-# problems.  The function print_vsprintf appears to be using
-# va_arg(long) to extract CORE_ADDR parameters - something that
-# definitly will not work.  "monitor.c" needs to be rewritten so that
-# it doesn't use format strings and instead uses callbacks.
-monitor.o: $(srcdir)/monitor.c
-	$(COMPILE.pre) $(INTERNAL_CFLAGS) $(GDB_WARN_CFLAGS_NO_FORMAT) \
-		$(COMPILE.post) $(srcdir)/monitor.c
-	$(POSTCOMPILE)
-
 # Do not try to build "printcmd.c" with -Wformat-nonliteral.  It manually
 # checks format strings.
 printcmd.o: $(srcdir)/printcmd.c
@@ -2686,6 +2395,11 @@ printcmd.o: $(srcdir)/printcmd.c
 		$(COMPILE.post) $(srcdir)/printcmd.c
 	$(POSTCOMPILE)
 
+# Same for "target-float.c".
+target-float.o: $(srcdir)/target-float.c
+	$(COMPILE.pre) $(INTERNAL_CFLAGS) $(GDB_WARN_CFLAGS_NO_FORMAT) \
+		$(COMPILE.post) $(srcdir)/target-float.c
+
 # ada-exp.c can appear in srcdir, for releases; or in ., for
 # development builds.
 ADA_EXP_C = `if test -f ada-exp.c; then echo ada-exp.c; else echo $(srcdir)/ada-exp.c; fi`
@@ -2910,12 +2624,13 @@ ifeq ($(DEPMODE),depmode=gcc3)
 # into place if the compile succeeds.  We need this because gcc does
 # not atomically write the dependency output file.
 override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \
-	-MF $(DEPDIR)/$(basename $(@F)).Tpo
-override POSTCOMPILE = @mv $(DEPDIR)/$(basename $(@F)).Tpo \
-	$(DEPDIR)/$(basename $(@F)).Po
+	-MF $(@D)/$(DEPDIR)/$(basename $(@F)).Tpo
+override POSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(basename $(@F)).Tpo \
+	$(@D)/$(DEPDIR)/$(basename $(@F)).Po
 else
 override COMPILE.pre = source='$<' object='$@' libtool=no \
-	DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC)
+	DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) \
+	$(CXX) -x c++ $(CXX_DIALECT)
 # depcomp handles atomicity for us, so we don't need a postcompile
 # step.
 override POSTCOMPILE =
@@ -2926,6 +2641,10 @@ endif
 all_object_files = gdb.o $(LIBGDB_OBS) gdbtk-main.o \
 	test-cp-name-parser.o
 
+# All the .deps files to include.
+all_deps_files = $(foreach dep,$(patsubst %.o,%.Po,$(all_object_files)),\
+    $(dir $(dep))/$(DEPDIR)/$(notdir $(dep)))
+
 # Ensure that generated files are created early.  Use order-only
 # dependencies if available.  They require GNU make 3.80 or newer,
 # and the .VARIABLES variable was introduced at the same time.
@@ -2936,7 +2655,7 @@ else
 endif
 
 # Dependencies.
--include $(patsubst %.o, $(DEPDIR)/%.Po, $(all_object_files))
+-include $(all_deps_files)
 
 # Disable implicit make rules.
 include $(srcdir)/disable-implicit-rules.mk
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/make-target-delegates ./gdb/make-target-delegates
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/make-target-delegates	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/make-target-delegates	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
@@ -232,8 +232,18 @@ sub munge_type($) {
 	$result = $1;
     } else {
 	($result = $typename) =~ s/\s+$//;
-	$result =~ s/[ ()]/_/g;
+	$result =~ s/[ ()<>:]/_/g;
 	$result =~ s/[*]/p/g;
+
+	# Identifers with double underscores are reserved to the C++
+	# implementation.
+	$result =~ s/_+/_/g;
+
+	# Avoid ending the function name with underscore, for
+	# cosmetics.  Trailing underscores appear after munging types
+	# with template parameters, like e.g. "foo<int>".
+	$result =~ s/_$//g;
+
 	$result = 'target_debug_print_' . $result;
     }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mdebugread.c ./gdb/mdebugread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mdebugread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mdebugread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Read a symbol table in ECOFF format (Third-Eye).
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    Original version contributed by Alessandro Forin (af@cs.cmu.edu) at
    CMU.  Major work by Per Bothner, John Gilmore and Ian Lance Taylor
@@ -68,8 +68,6 @@
 
 #include "expression.h"
 
-extern void _initialize_mdebugread (void);
-
 /* Provide a way to test if we have both ECOFF and ELF symbol tables.
    We use this define in order to know whether we should override a 
    symbol's ECOFF section with its ELF section.  This is necessary in 
@@ -236,7 +234,7 @@ static struct type *new_type (char *);
 
 enum block_type { FUNCTION_BLOCK, NON_FUNCTION_BLOCK };
 
-static struct block *new_block (enum block_type);
+static struct block *new_block (enum block_type, enum language);
 
 static struct compunit_symtab *new_symtab (const char *, int, struct objfile *);
 
@@ -811,7 +809,7 @@ parse_symbol (SYMR *sh, union aux_ext *a
 	TYPE_PROTOTYPED (SYMBOL_TYPE (s)) = 1;
 
       /* Create and enter a new lexical context.  */
-      b = new_block (FUNCTION_BLOCK);
+      b = new_block (FUNCTION_BLOCK, SYMBOL_LANGUAGE (s));
       SYMBOL_BLOCK_VALUE (s) = b;
       BLOCK_FUNCTION (b) = s;
       BLOCK_START (b) = BLOCK_END (b) = sh->value;
@@ -1144,7 +1142,7 @@ parse_symbol (SYMR *sh, union aux_ext *a
 	}
 
       top_stack->blocktype = stBlock;
-      b = new_block (NON_FUNCTION_BLOCK);
+      b = new_block (NON_FUNCTION_BLOCK, psymtab_language);
       BLOCK_START (b) = sh->value + top_stack->procadr;
       BLOCK_SUPERBLOCK (b) = top_stack->cur_block;
       top_stack->cur_block = b;
@@ -1471,14 +1469,13 @@ basic_type (int bt, struct objfile *objf
 
     case btFloatDec:
       tp = init_type (objfile, TYPE_CODE_ERROR,
-		      gdbarch_double_bit (gdbarch) / TARGET_CHAR_BIT,
-		      "floating decimal");
+		      gdbarch_double_bit (gdbarch), "floating decimal");
       break;
 
     case btString:
       /* Is a "string" the way btString means it the same as TYPE_CODE_STRING?
 	 FIXME.  */
-      tp = init_type (objfile, TYPE_CODE_STRING, 1, "string");
+      tp = init_type (objfile, TYPE_CODE_STRING, TARGET_CHAR_BIT, "string");
       break;
 
     case btVoid:
@@ -2660,8 +2657,8 @@ parse_partial_symbols (minimal_symbol_re
       pst = start_psymtab_common (objfile,
 				  fdr_name (fh),
 				  textlow,
-				  objfile->global_psymbols.next,
-				  objfile->static_psymbols.next);
+				  objfile->global_psymbols,
+				  objfile->static_psymbols);
       pst->read_symtab_private = obstack_alloc (&objfile->objfile_obstack,
 						sizeof (struct symloc));
       memset (pst->read_symtab_private, 0, sizeof (struct symloc));
@@ -4026,6 +4023,7 @@ psymtab_to_symtab_1 (struct objfile *obj
 	  if (ECOFF_IS_STAB (&sh) || (name[0] == '#'))
 	    {
 	      int type_code = ECOFF_UNMARK_STAB (sh.index);
+	      enum language language = PST_PRIVATE (pst)->pst_language;
 
 	      /* We should never get non N_STAB symbols here, but they
 	         should be harmless, so keep process_one_symbol from
@@ -4053,14 +4051,14 @@ psymtab_to_symtab_1 (struct objfile *obj
 		    {
 		      last_symtab_ended = 0;
 		      process_one_symbol (type_code, 0, valu, name,
-					  section_offsets, objfile);
+					  section_offsets, objfile, language);
 		    }
 		}
 	      /* Similarly a hack.  */
 	      else if (name[0] == '#')
 		{
 		  process_one_symbol (N_SLINE, 0, valu, name,
-				      section_offsets, objfile);
+				      section_offsets, objfile, language);
 		}
 	      if (type_code == N_FUN)
 		{
@@ -4721,16 +4719,18 @@ new_symtab (const char *name, int maxlin
   struct compunit_symtab *cust = allocate_compunit_symtab (objfile, name);
   struct symtab *symtab;
   struct blockvector *bv;
+  enum language lang;
 
   add_compunit_symtab_to_objfile (cust);
   symtab = allocate_symtab (cust, name);
 
   SYMTAB_LINETABLE (symtab) = new_linetable (maxlines);
+  lang = compunit_language (cust);
 
   /* All symtabs must have at least two blocks.  */
   bv = new_bvect (2);
-  BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK) = new_block (NON_FUNCTION_BLOCK);
-  BLOCKVECTOR_BLOCK (bv, STATIC_BLOCK) = new_block (NON_FUNCTION_BLOCK);
+  BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK) = new_block (NON_FUNCTION_BLOCK, lang);
+  BLOCKVECTOR_BLOCK (bv, STATIC_BLOCK) = new_block (NON_FUNCTION_BLOCK, lang);
   BLOCK_SUPERBLOCK (BLOCKVECTOR_BLOCK (bv, STATIC_BLOCK)) =
     BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK);
   COMPUNIT_BLOCKVECTOR (cust) = bv;
@@ -4812,13 +4812,13 @@ new_bvect (int nblocks)
   return bv;
 }
 
-/* Allocate and zero a new block, and set its BLOCK_DICT.  If function
-   is non-zero, assume the block is associated to a function, and make
-   sure that the symbols are stored linearly; otherwise, store them
-   hashed.  */
+/* Allocate and zero a new block of language LANGUAGE, and set its
+   BLOCK_DICT.  If function is non-zero, assume the block is
+   associated to a function, and make sure that the symbols are stored
+   linearly; otherwise, store them hashed.  */
 
 static struct block *
-new_block (enum block_type type)
+new_block (enum block_type type, enum language language)
 {
   /* FIXME: carlton/2003-09-11: This should use allocate_block to
      allocate the block.  Which, in turn, suggests that the block
@@ -4826,9 +4826,9 @@ new_block (enum block_type type)
   struct block *retval = XCNEW (struct block);
 
   if (type == FUNCTION_BLOCK)
-    BLOCK_DICT (retval) = dict_create_linear_expandable ();
+    BLOCK_DICT (retval) = dict_create_linear_expandable (language);
   else
-    BLOCK_DICT (retval) = dict_create_hashed_expandable ();
+    BLOCK_DICT (retval) = dict_create_hashed_expandable (language);
 
   return retval;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mdebugread.h ./gdb/mdebugread.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mdebugread.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mdebugread.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Read a symbol table in ECOFF format (Third-Eye).
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/memattr.c ./gdb/memattr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/memattr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/memattr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Memory attributes support, for GDB.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,40 +28,26 @@
 #include "vec.h"
 #include "breakpoint.h"
 #include "cli/cli-utils.h"
+#include <algorithm>
 
-const struct mem_attrib default_mem_attrib =
-{
-  MEM_RW,			/* mode */
-  MEM_WIDTH_UNSPECIFIED,
-  0,				/* hwbreak */
-  0,				/* cache */
-  0,				/* verify */
-  -1 /* Flash blocksize not specified.  */
-};
-
-const struct mem_attrib unknown_mem_attrib =
-{
-  MEM_NONE,			/* mode */
-  MEM_WIDTH_UNSPECIFIED,
-  0,				/* hwbreak */
-  0,				/* cache */
-  0,				/* verify */
-  -1 /* Flash blocksize not specified.  */
-};
-
-
-VEC(mem_region_s) *mem_region_list, *target_mem_region_list;
+static std::vector<mem_region> user_mem_region_list, target_mem_region_list;
+static std::vector<mem_region> *mem_region_list = &target_mem_region_list;
 static int mem_number = 0;
 
 /* If this flag is set, the memory region list should be automatically
    updated from the target.  If it is clear, the list is user-controlled
    and should be left alone.  */
-static int mem_use_target = 1;
+
+static bool
+mem_use_target ()
+{
+  return mem_region_list == &target_mem_region_list;
+}
 
 /* If this flag is set, we have tried to fetch the target memory regions
    since the last time it was invalidated.  If that list is still
    empty, then the target can't supply memory regions.  */
-static int target_mem_regions_valid;
+static bool target_mem_regions_valid;
 
 /* If this flag is set, gdb will assume that memory ranges not
    specified by the memory map have type MEM_NONE, and will
@@ -81,44 +67,6 @@ show_inaccessible_by_default (struct ui_
 			      "will be treated as RAM.\n"));          
 }
 
-
-/* Predicate function which returns true if LHS should sort before RHS
-   in a list of memory regions, useful for VEC_lower_bound.  */
-
-static int
-mem_region_lessthan (const struct mem_region *lhs,
-		     const struct mem_region *rhs)
-{
-  return lhs->lo < rhs->lo;
-}
-
-/* A helper function suitable for qsort, used to sort a
-   VEC(mem_region_s) by starting address.  */
-
-int
-mem_region_cmp (const void *untyped_lhs, const void *untyped_rhs)
-{
-  const struct mem_region *lhs = (const struct mem_region *) untyped_lhs;
-  const struct mem_region *rhs = (const struct mem_region *) untyped_rhs;
-
-  if (lhs->lo < rhs->lo)
-    return -1;
-  else if (lhs->lo == rhs->lo)
-    return 0;
-  else
-    return 1;
-}
-
-/* Allocate a new memory region, with default settings.  */
-
-void
-mem_region_init (struct mem_region *newobj)
-{
-  memset (newobj, 0, sizeof (struct mem_region));
-  newobj->enabled_p = 1;
-  newobj->attrib = default_mem_attrib;
-}
-
 /* This function should be called before any command which would
    modify the memory region list.  It will handle switching from
    a target-provided list to a local list, if necessary.  */
@@ -126,20 +74,17 @@ mem_region_init (struct mem_region *newo
 static void
 require_user_regions (int from_tty)
 {
-  struct mem_region *m;
-  int ix, length;
-
   /* If we're already using a user-provided list, nothing to do.  */
-  if (!mem_use_target)
+  if (!mem_use_target ())
     return;
 
   /* Switch to a user-provided list (possibly a copy of the current
      one).  */
-  mem_use_target = 0;
+  mem_region_list = &user_mem_region_list;
 
   /* If we don't have a target-provided region list yet, then
      no need to warn.  */
-  if (mem_region_list == NULL)
+  if (target_mem_region_list.empty ())
     return;
 
   /* Otherwise, let the user know how to get back.  */
@@ -147,11 +92,9 @@ require_user_regions (int from_tty)
     warning (_("Switching to manual control of memory regions; use "
 	       "\"mem auto\" to fetch regions from the target again."));
 
-  /* And create a new list for the user to modify.  */
-  length = VEC_length (mem_region_s, target_mem_region_list);
-  mem_region_list = VEC_alloc (mem_region_s, length);
-  for (ix = 0; VEC_iterate (mem_region_s, target_mem_region_list, ix, m); ix++)
-    VEC_quick_push (mem_region_s, mem_region_list, m);
+  /* And create a new list (copy of the target-supplied regions) for the user
+     to modify.  */
+  user_mem_region_list = target_mem_region_list;
 }
 
 /* This function should be called before any command which would
@@ -162,21 +105,19 @@ require_user_regions (int from_tty)
 static void
 require_target_regions (void)
 {
-  if (mem_use_target && !target_mem_regions_valid)
+  if (mem_use_target () && !target_mem_regions_valid)
     {
-      target_mem_regions_valid = 1;
+      target_mem_regions_valid = true;
       target_mem_region_list = target_memory_map ();
-      mem_region_list = target_mem_region_list;
     }
 }
 
+/* Create a new user-defined memory region.  */
+
 static void
-create_mem_region (CORE_ADDR lo, CORE_ADDR hi,
-		   const struct mem_attrib *attrib)
+create_user_mem_region (CORE_ADDR lo, CORE_ADDR hi,
+			const mem_attrib &attrib)
 {
-  struct mem_region newobj;
-  int i, ix;
-
   /* lo == hi is a useless empty region.  */
   if (lo >= hi && hi != 0)
     {
@@ -184,30 +125,28 @@ create_mem_region (CORE_ADDR lo, CORE_AD
       return;
     }
 
-  mem_region_init (&newobj);
-  newobj.lo = lo;
-  newobj.hi = hi;
+  mem_region newobj (lo, hi, attrib);
 
-  ix = VEC_lower_bound (mem_region_s, mem_region_list, &newobj,
-			mem_region_lessthan);
+  auto it = std::lower_bound (user_mem_region_list.begin (),
+			      user_mem_region_list.end (),
+			      newobj);
+  int ix = std::distance (user_mem_region_list.begin (), it);
 
   /* Check for an overlapping memory region.  We only need to check
      in the vicinity - at most one before and one after the
      insertion point.  */
-  for (i = ix - 1; i < ix + 1; i++)
+  for (int i = ix - 1; i < ix + 1; i++)
     {
-      struct mem_region *n;
-
       if (i < 0)
 	continue;
-      if (i >= VEC_length (mem_region_s, mem_region_list))
+      if (i >= user_mem_region_list.size ())
 	continue;
 
-      n = VEC_index (mem_region_s, mem_region_list, i);
+      mem_region &n = user_mem_region_list[i];
 
-      if ((lo >= n->lo && (lo < n->hi || n->hi == 0)) 
-	  || (hi > n->lo && (hi <= n->hi || n->hi == 0))
-	  || (lo <= n->lo && ((hi >= n->hi && n->hi != 0) || hi == 0)))
+      if ((lo >= n.lo && (lo < n.hi || n.hi == 0))
+	  || (hi > n.lo && (hi <= n.hi || n.hi == 0))
+	  || (lo <= n.lo && ((hi >= n.hi && n.hi != 0) || hi == 0)))
 	{
 	  printf_unfiltered (_("overlapping memory region\n"));
 	  return;
@@ -215,21 +154,17 @@ create_mem_region (CORE_ADDR lo, CORE_AD
     }
 
   newobj.number = ++mem_number;
-  newobj.attrib = *attrib;
-  VEC_safe_insert (mem_region_s, mem_region_list, ix, &newobj);
+  user_mem_region_list.insert (it, newobj);
 }
 
-/*
- * Look up the memory region cooresponding to ADDR.
- */
+/* Look up the memory region corresponding to ADDR.  */
+
 struct mem_region *
 lookup_mem_region (CORE_ADDR addr)
 {
-  static struct mem_region region;
-  struct mem_region *m;
+  static struct mem_region region (0, 0);
   CORE_ADDR lo;
   CORE_ADDR hi;
-  int ix;
 
   require_target_regions ();
 
@@ -244,32 +179,32 @@ lookup_mem_region (CORE_ADDR addr)
   lo = 0;
   hi = 0;
 
-  /* Either find memory range containing ADDRESS, or set LO and HI
+  /* Either find memory range containing ADDR, or set LO and HI
      to the nearest boundaries of an existing memory range.
      
      If we ever want to support a huge list of memory regions, this
      check should be replaced with a binary search (probably using
      VEC_lower_bound).  */
-  for (ix = 0; VEC_iterate (mem_region_s, mem_region_list, ix, m); ix++)
+  for (mem_region &m : *mem_region_list)
     {
-      if (m->enabled_p == 1)
+      if (m.enabled_p == 1)
 	{
 	  /* If the address is in the memory region, return that
 	     memory range.  */
-	  if (addr >= m->lo && (addr < m->hi || m->hi == 0))
-	    return m;
+	  if (addr >= m.lo && (addr < m.hi || m.hi == 0))
+	    return &m;
 
 	  /* This (correctly) won't match if m->hi == 0, representing
 	     the top of the address space, because CORE_ADDR is unsigned;
 	     no value of LO is less than zero.  */
-	  if (addr >= m->hi && lo < m->hi)
-	    lo = m->hi;
+	  if (addr >= m.hi && lo < m.hi)
+	    lo = m.hi;
 
 	  /* This will never set HI to zero; if we're here and ADDR
 	     is at or below M, and the region starts at zero, then ADDR
 	     would have been in the region.  */
-	  if (addr <= m->lo && (hi == 0 || hi > m->lo))
-	    hi = m->lo;
+	  if (addr <= m.lo && (hi == 0 || hi > m.lo))
+	    hi = m.lo;
 	}
     }
 
@@ -281,10 +216,10 @@ lookup_mem_region (CORE_ADDR addr)
   /* When no memory map is defined at all, we always return 
      'default_mem_attrib', so that we do not make all memory 
      inaccessible for targets that don't provide a memory map.  */
-  if (inaccessible_by_default && !VEC_empty (mem_region_s, mem_region_list))
-    region.attrib = unknown_mem_attrib;
+  if (inaccessible_by_default && !mem_region_list->empty ())
+    region.attrib = mem_attrib::unknown ();
   else
-    region.attrib = default_mem_attrib;
+    region.attrib = mem_attrib ();
 
   return &region;
 }
@@ -297,27 +232,23 @@ invalidate_target_mem_regions (void)
   if (!target_mem_regions_valid)
     return;
 
-  target_mem_regions_valid = 0;
-  VEC_free (mem_region_s, target_mem_region_list);
-  if (mem_use_target)
-    mem_region_list = NULL;
+  target_mem_regions_valid = false;
+  target_mem_region_list.clear ();
 }
 
-/* Clear memory region list.  */
+/* Clear user-defined memory region list.  */
 
 static void
-mem_clear (void)
+user_mem_clear (void)
 {
-  VEC_free (mem_region_s, mem_region_list);
+  user_mem_region_list.clear ();
 }
 
 
 static void
-mem_command (char *args, int from_tty)
+mem_command (const char *args, int from_tty)
 {
   CORE_ADDR lo, hi;
-  char *tok;
-  struct mem_attrib attrib;
 
   if (!args)
     error_no_arg (_("No mem"));
@@ -325,56 +256,52 @@ mem_command (char *args, int from_tty)
   /* For "mem auto", switch back to using a target provided list.  */
   if (strcmp (args, "auto") == 0)
     {
-      if (mem_use_target)
+      if (mem_use_target ())
 	return;
 
-      if (mem_region_list != target_mem_region_list)
-	{
-	  mem_clear ();
-	  mem_region_list = target_mem_region_list;
-	}
+      user_mem_clear ();
+      mem_region_list = &target_mem_region_list;
 
-      mem_use_target = 1;
       return;
     }
 
   require_user_regions (from_tty);
 
-  tok = strtok (args, " \t");
-  if (!tok)
+  std::string tok = extract_arg (&args);
+  if (tok == "")
     error (_("no lo address"));
-  lo = parse_and_eval_address (tok);
+  lo = parse_and_eval_address (tok.c_str ());
 
-  tok = strtok (NULL, " \t");
-  if (!tok)
+  tok = extract_arg (&args);
+  if (tok == "")
     error (_("no hi address"));
-  hi = parse_and_eval_address (tok);
+  hi = parse_and_eval_address (tok.c_str ());
 
-  attrib = default_mem_attrib;
-  while ((tok = strtok (NULL, " \t")) != NULL)
+  mem_attrib attrib;
+  while ((tok = extract_arg (&args)) != "")
     {
-      if (strcmp (tok, "rw") == 0)
+      if (tok == "rw")
 	attrib.mode = MEM_RW;
-      else if (strcmp (tok, "ro") == 0)
+      else if (tok == "ro")
 	attrib.mode = MEM_RO;
-      else if (strcmp (tok, "wo") == 0)
+      else if (tok == "wo")
 	attrib.mode = MEM_WO;
 
-      else if (strcmp (tok, "8") == 0)
+      else if (tok == "8")
 	attrib.width = MEM_WIDTH_8;
-      else if (strcmp (tok, "16") == 0)
+      else if (tok == "16")
 	{
 	  if ((lo % 2 != 0) || (hi % 2 != 0))
 	    error (_("region bounds not 16 bit aligned"));
 	  attrib.width = MEM_WIDTH_16;
 	}
-      else if (strcmp (tok, "32") == 0)
+      else if (tok == "32")
 	{
 	  if ((lo % 4 != 0) || (hi % 4 != 0))
 	    error (_("region bounds not 32 bit aligned"));
 	  attrib.width = MEM_WIDTH_32;
 	}
-      else if (strcmp (tok, "64") == 0)
+      else if (tok == "64")
 	{
 	  if ((lo % 8 != 0) || (hi % 8 != 0))
 	    error (_("region bounds not 64 bit aligned"));
@@ -382,47 +309,43 @@ mem_command (char *args, int from_tty)
 	}
 
 #if 0
-      else if (strcmp (tok, "hwbreak") == 0)
+      else if (tok == "hwbreak")
 	attrib.hwbreak = 1;
-      else if (strcmp (tok, "swbreak") == 0)
+      else if (tok == "swbreak")
 	attrib.hwbreak = 0;
 #endif
 
-      else if (strcmp (tok, "cache") == 0)
+      else if (tok == "cache")
 	attrib.cache = 1;
-      else if (strcmp (tok, "nocache") == 0)
+      else if (tok == "nocache")
 	attrib.cache = 0;
 
 #if 0
-      else if (strcmp (tok, "verify") == 0)
+      else if (tok == "verify")
 	attrib.verify = 1;
-      else if (strcmp (tok, "noverify") == 0)
+      else if (tok == "noverify")
 	attrib.verify = 0;
 #endif
 
       else
-	error (_("unknown attribute: %s"), tok);
+	error (_("unknown attribute: %s"), tok.c_str ());
     }
 
-  create_mem_region (lo, hi, &attrib);
+  create_user_mem_region (lo, hi, attrib);
 }
 
 
 static void
-mem_info_command (char *args, int from_tty)
+info_mem_command (const char *args, int from_tty)
 {
-  struct mem_region *m;
-  struct mem_attrib *attrib;
-  int ix;
-
-  if (mem_use_target)
+  if (mem_use_target ())
     printf_filtered (_("Using memory regions provided by the target.\n"));
   else
     printf_filtered (_("Using user-defined memory regions.\n"));
 
   require_target_regions ();
 
-  if (!mem_region_list)
+  if (mem_region_list->empty ())
     {
       printf_unfiltered (_("There are no memory regions defined.\n"));
       return;
@@ -439,33 +362,33 @@ mem_info_command (char *args, int from_t
   printf_filtered ("Attrs ");
   printf_filtered ("\n");
 
-  for (ix = 0; VEC_iterate (mem_region_s, mem_region_list, ix, m); ix++)
+  for (const mem_region &m : *mem_region_list)
     {
       const char *tmp;
 
       printf_filtered ("%-3d %-3c\t",
-		       m->number,
-		       m->enabled_p ? 'y' : 'n');
+		       m.number,
+		       m.enabled_p ? 'y' : 'n');
       if (gdbarch_addr_bit (target_gdbarch ()) <= 32)
-	tmp = hex_string_custom (m->lo, 8);
+	tmp = hex_string_custom (m.lo, 8);
       else
-	tmp = hex_string_custom (m->lo, 16);
+	tmp = hex_string_custom (m.lo, 16);
       
       printf_filtered ("%s ", tmp);
 
       if (gdbarch_addr_bit (target_gdbarch ()) <= 32)
 	{
-	  if (m->hi == 0)
+	  if (m.hi == 0)
 	    tmp = "0x100000000";
 	  else
-	    tmp = hex_string_custom (m->hi, 8);
+	    tmp = hex_string_custom (m.hi, 8);
 	}
       else
 	{
-	  if (m->hi == 0)
+	  if (m.hi == 0)
 	    tmp = "0x10000000000000000";
 	  else
-	    tmp = hex_string_custom (m->hi, 16);
+	    tmp = hex_string_custom (m.hi, 16);
 	}
 
       printf_filtered ("%s ", tmp);
@@ -482,8 +405,7 @@ mem_info_command (char *args, int from_t
        * time, we may want to consider printing tokens only if they
        * are different from the default attribute.  */
 
-      attrib = &m->attrib;
-      switch (attrib->mode)
+      switch (m.attrib.mode)
 	{
 	case MEM_RW:
 	  printf_filtered ("rw ");
@@ -495,11 +417,11 @@ mem_info_command (char *args, int from_t
 	  printf_filtered ("wo ");
 	  break;
 	case MEM_FLASH:
-	  printf_filtered ("flash blocksize 0x%x ", attrib->blocksize);
+	  printf_filtered ("flash blocksize 0x%x ", m.attrib.blocksize);
 	  break;
 	}
 
-      switch (attrib->width)
+      switch (m.attrib.width)
 	{
 	case MEM_WIDTH_8:
 	  printf_filtered ("8 ");
@@ -524,7 +446,7 @@ mem_info_command (char *args, int from_t
 	printf_filtered ("swbreak");
 #endif
 
-      if (attrib->cache)
+      if (m.attrib.cache)
 	printf_filtered ("cache ");
       else
 	printf_filtered ("nocache ");
@@ -548,40 +470,33 @@ mem_info_command (char *args, int from_t
 static void
 mem_enable (int num)
 {
-  struct mem_region *m;
-  int ix;
-
-  for (ix = 0; VEC_iterate (mem_region_s, mem_region_list, ix, m); ix++)
-    if (m->number == num)
+  for (mem_region &m : *mem_region_list)
+    if (m.number == num)
       {
-	m->enabled_p = 1;
+	m.enabled_p = 1;
 	return;
       }
   printf_unfiltered (_("No memory region number %d.\n"), num);
 }
 
 static void
-mem_enable_command (char *args, int from_tty)
+enable_mem_command (const char *args, int from_tty)
 {
-  int num;
-  struct mem_region *m;
-  int ix;
-
   require_user_regions (from_tty);
 
   target_dcache_invalidate ();
 
   if (args == NULL || *args == '\0')
     { /* Enable all mem regions.  */
-      for (ix = 0; VEC_iterate (mem_region_s, mem_region_list, ix, m); ix++)
-	m->enabled_p = 1;
+      for (mem_region &m : *mem_region_list)
+	m.enabled_p = 1;
     }
   else
     {
       number_or_range_parser parser (args);
       while (!parser.finished ())
 	{
-	  num = parser.get_number ();
+	  int num = parser.get_number ();
 	  mem_enable (num);
 	}
     }
@@ -593,20 +508,17 @@ mem_enable_command (char *args, int from
 static void
 mem_disable (int num)
 {
-  struct mem_region *m;
-  int ix;
-
-  for (ix = 0; VEC_iterate (mem_region_s, mem_region_list, ix, m); ix++)
-    if (m->number == num)
+  for (mem_region &m : *mem_region_list)
+    if (m.number == num)
       {
-	m->enabled_p = 0;
+	m.enabled_p = 0;
 	return;
       }
   printf_unfiltered (_("No memory region number %d.\n"), num);
 }
 
 static void
-mem_disable_command (char *args, int from_tty)
+disable_mem_command (const char *args, int from_tty)
 {
   require_user_regions (from_tty);
 
@@ -614,11 +526,8 @@ mem_disable_command (char *args, int fro
 
   if (args == NULL || *args == '\0')
     {
-      struct mem_region *m;
-      int ix;
-
-      for (ix = 0; VEC_iterate (mem_region_s, mem_region_list, ix, m); ix++)
-	m->enabled_p = 0;
+      for (mem_region &m : *mem_region_list)
+	m.enabled_p = false;
     }
   else
     {
@@ -636,30 +545,26 @@ mem_disable_command (char *args, int fro
 static void
 mem_delete (int num)
 {
-  struct mem_region *m;
-  int ix;
-
   if (!mem_region_list)
     {
       printf_unfiltered (_("No memory region number %d.\n"), num);
       return;
     }
 
-  for (ix = 0; VEC_iterate (mem_region_s, mem_region_list, ix, m); ix++)
-    if (m->number == num)
-      break;
-
-  if (m == NULL)
+  auto it = std::remove_if (mem_region_list->begin (), mem_region_list->end (),
+			    [num] (const mem_region &m)
     {
-      printf_unfiltered (_("No memory region number %d.\n"), num);
-      return;
-    }
+      return m.number == num;
+    });
 
-  VEC_ordered_remove (mem_region_s, mem_region_list, ix);
+  if (it != mem_region_list->end ())
+    mem_region_list->erase (it);
+  else
+    printf_unfiltered (_("No memory region number %d.\n"), num);
 }
 
 static void
-mem_delete_command (char *args, int from_tty)
+delete_mem_command (const char *args, int from_tty)
 {
   require_user_regions (from_tty);
 
@@ -668,7 +573,7 @@ mem_delete_command (char *args, int from
   if (args == NULL || *args == '\0')
     {
       if (query (_("Delete all memory regions? ")))
-	mem_clear ();
+	user_mem_clear ();
       dont_repeat ();
       return;
     }
@@ -684,11 +589,9 @@ mem_delete_command (char *args, int from
 }
 
 static void
-dummy_cmd (char *args, int from_tty)
+dummy_cmd (const char *args, int from_tty)
 {
 }
-
-extern initialize_file_ftype _initialize_mem; /* -Wmissing-prototype */
 
 static struct cmd_list_element *mem_set_cmdlist;
 static struct cmd_list_element *mem_show_cmdlist;
@@ -705,25 +608,25 @@ where <mode>  may be rw (read/write), ro
       <width> may be 8, 16, 32, or 64, and\n\
       <cache> may be cache or nocache"));
 
-  add_cmd ("mem", class_vars, mem_enable_command, _("\
+  add_cmd ("mem", class_vars, enable_mem_command, _("\
 Enable memory region.\n\
 Arguments are the code numbers of the memory regions to enable.\n\
 Usage: enable mem <code number>...\n\
 Do \"info mem\" to see current list of code numbers."), &enablelist);
 
-  add_cmd ("mem", class_vars, mem_disable_command, _("\
+  add_cmd ("mem", class_vars, disable_mem_command, _("\
 Disable memory region.\n\
 Arguments are the code numbers of the memory regions to disable.\n\
 Usage: disable mem <code number>...\n\
 Do \"info mem\" to see current list of code numbers."), &disablelist);
 
-  add_cmd ("mem", class_vars, mem_delete_command, _("\
+  add_cmd ("mem", class_vars, delete_mem_command, _("\
 Delete memory region.\n\
 Arguments are the code numbers of the memory regions to delete.\n\
 Usage: delete mem <code number>...\n\
 Do \"info mem\" to see current list of code numbers."), &deletelist);
 
-  add_info ("mem", mem_info_command,
+  add_info ("mem", info_mem_command,
 	    _("Memory region attributes"));
 
   add_prefix_cmd ("mem", class_vars, dummy_cmd, _("\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/memattr.h ./gdb/memattr.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/memattr.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/memattr.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Memory attributes support, for GDB.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,8 +20,6 @@
 #ifndef MEMATTR_H
 #define MEMATTR_H
 
-#include "vec.h"
-
 enum mem_access_mode
 {
   MEM_NONE,                     /* Memory that is not physically present.  */
@@ -54,27 +52,62 @@ enum mem_access_width
  
 struct mem_attrib 
 {
+  static mem_attrib unknown ()
+  {
+    mem_attrib attrib;
+
+    attrib.mode = MEM_NONE;
+
+    return attrib;
+  }
+
   /* read/write, read-only, or write-only */
-  enum mem_access_mode mode;
+  enum mem_access_mode mode = MEM_RW;
 
-  enum mem_access_width width;
+  enum mem_access_width width = MEM_WIDTH_UNSPECIFIED;
 
   /* enables hardware breakpoints */
-  int hwbreak;
+  int hwbreak = 0;
   
   /* enables host-side caching of memory region data */
-  int cache;
+  int cache = 0;
   
   /* Enables memory verification.  After a write, memory is re-read
      to verify that the write was successful.  */
-  int verify;
+  int verify = 0;
 
   /* Block size.  Only valid if mode == MEM_FLASH.  */
-  int blocksize;
+  int blocksize = -1;
 };
 
 struct mem_region 
 {
+  /* Create a mem_region with default attributes.  */
+
+  mem_region (CORE_ADDR lo_, CORE_ADDR hi_)
+    : lo (lo_), hi (hi_)
+  {}
+
+  /* Create a mem_region with access mode MODE_, but otherwise default
+     attributes.  */
+
+  mem_region (CORE_ADDR lo_, CORE_ADDR hi_, mem_access_mode mode_)
+    : lo (lo_), hi (hi_)
+  {
+    attrib.mode = mode_;
+  }
+
+  /* Create a mem_region with attributes ATTRIB_.  */
+
+  mem_region (CORE_ADDR lo_, CORE_ADDR hi_, const mem_attrib &attrib_)
+    : lo (lo_), hi (hi_), attrib (attrib_)
+  {}
+
+  bool operator< (const mem_region &other) const
+  {
+    return this->lo < other.lo;
+  }
+
   /* Lowest address in the region.  */
   CORE_ADDR lo;
   /* Address past the highest address of the region. 
@@ -82,28 +115,18 @@ struct mem_region 
   CORE_ADDR hi;
 
   /* Item number of this memory region.  */
-  int number;
+  int number = 0;
 
-  /* Status of this memory region (enabled if non-zero, otherwise
+  /* Status of this memory region (enabled if true, otherwise
      disabled).  */
-  int enabled_p;
+  bool enabled_p = true;
 
   /* Attributes for this region.  */
-  struct mem_attrib attrib;
+  mem_attrib attrib;
 };
 
-/* Declare a vector type for a group of mem_region structures.  The
-   typedef is necessary because vec.h can not handle a struct tag.
-   Except during construction, these vectors are kept sorted.  */
-typedef struct mem_region mem_region_s;
-DEF_VEC_O(mem_region_s);
-
-extern struct mem_region *lookup_mem_region(CORE_ADDR);
+extern struct mem_region *lookup_mem_region (CORE_ADDR);
 
 void invalidate_target_mem_regions (void);
 
-void mem_region_init (struct mem_region *);
-
-int mem_region_cmp (const void *, const void *);
-
 #endif	/* MEMATTR_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mem-break.c ./gdb/mem-break.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mem-break.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mem-break.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Simulate breakpoints by patching locations in the target system, for GDB.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.  Written by John Gilmore.
 
@@ -107,8 +107,6 @@ memory_validate_breakpoint (struct gdbar
   int val;
   int bplen;
   gdb_byte cur_contents[BREAKPOINT_MAX];
-  struct cleanup *cleanup;
-  int ret;
 
   /* Determine appropriate breakpoint contents and size for this
      address.  */
@@ -118,14 +116,12 @@ memory_validate_breakpoint (struct gdbar
     return 0;
 
   /* Make sure we see the memory breakpoints.  */
-  cleanup = make_show_memory_breakpoints_cleanup (1);
+  scoped_restore restore_memory
+    = make_scoped_restore_show_memory_breakpoints (1);
   val = target_read_memory (addr, cur_contents, bplen);
 
   /* If our breakpoint is no longer at the address, this means that
      the program modified the code on us, so it is wrong to put back
      the old value.  */
-  ret = (val == 0 && memcmp (bp, cur_contents, bplen) == 0);
-
-  do_cleanups (cleanup);
-  return ret;
+  return (val == 0 && memcmp (bp, cur_contents, bplen) == 0);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/memory-map.c ./gdb/memory-map.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/memory-map.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/memory-map.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Routines for handling XML memory maps provided by target.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -22,7 +22,7 @@
 
 #if !defined(HAVE_LIBEXPAT)
 
-VEC(mem_region_s) *
+std::vector<mem_region>
 parse_memory_map (const char *memory_map)
 {
   static int have_warned;
@@ -34,7 +34,7 @@ parse_memory_map (const char *memory_map
 		 "at compile time"));
     }
 
-  return NULL;
+  return std::vector<mem_region> ();
 }
 
 #else /* HAVE_LIBEXPAT */
@@ -43,10 +43,15 @@ parse_memory_map (const char *memory_map
 
 /* Internal parsing data passed to all XML callbacks.  */
 struct memory_map_parsing_data
-  {
-    VEC(mem_region_s) **memory_map;
-    char property_name[32];
-  };
+{
+  memory_map_parsing_data (std::vector<mem_region> *memory_map_)
+  : memory_map (memory_map_)
+  {}
+
+  std::vector<mem_region> *memory_map;
+
+  std::string property_name;
+};
 
 /* Handle the start of a <memory> element.  */
 
@@ -57,7 +62,6 @@ memory_map_start_memory (struct gdb_xml_
 {
   struct memory_map_parsing_data *data
     = (struct memory_map_parsing_data *) user_data;
-  struct mem_region *r = VEC_safe_push (mem_region_s, *data->memory_map, NULL);
   ULONGEST *start_p, *length_p, *type_p;
 
   start_p
@@ -67,11 +71,8 @@ memory_map_start_memory (struct gdb_xml_
   type_p
     = (ULONGEST *) xml_find_attribute (attributes, "type")->value;
 
-  mem_region_init (r);
-  r->lo = *start_p;
-  r->hi = r->lo + *length_p;
-  r->attrib.mode = (enum mem_access_mode) *type_p;
-  r->attrib.blocksize = -1;
+  data->memory_map->emplace_back (*start_p, *start_p + *length_p,
+				  (enum mem_access_mode) *type_p);
 }
 
 /* Handle the end of a <memory> element.  Verify that any necessary
@@ -84,9 +85,9 @@ memory_map_end_memory (struct gdb_xml_pa
 {
   struct memory_map_parsing_data *data
     = (struct memory_map_parsing_data *) user_data;
-  struct mem_region *r = VEC_last (mem_region_s, *data->memory_map);
+  const mem_region &r = data->memory_map->back ();
 
-  if (r->attrib.mode == MEM_FLASH && r->attrib.blocksize == -1)
+  if (r.attrib.mode == MEM_FLASH && r.attrib.blocksize == -1)
     gdb_xml_error (parser, _("Flash block size is not set"));
 }
 
@@ -103,7 +104,7 @@ memory_map_start_property (struct gdb_xm
   char *name;
 
   name = (char *) xml_find_attribute (attributes, "name")->value;
-  snprintf (data->property_name, sizeof (data->property_name), "%s", name);
+  data->property_name.assign (name);
 }
 
 /* Handle the end of a <property> element and its value.  */
@@ -115,26 +116,16 @@ memory_map_end_property (struct gdb_xml_
 {
   struct memory_map_parsing_data *data
     = (struct memory_map_parsing_data *) user_data;
-  char *name = data->property_name;
 
-  if (strcmp (name, "blocksize") == 0)
+  if (data->property_name == "blocksize")
     {
-      struct mem_region *r = VEC_last (mem_region_s, *data->memory_map);
+      mem_region &r = data->memory_map->back ();
 
-      r->attrib.blocksize = gdb_xml_parse_ulongest (parser, body_text);
+      r.attrib.blocksize = gdb_xml_parse_ulongest (parser, body_text);
     }
   else
-    gdb_xml_debug (parser, _("Unknown property \"%s\""), name);
-}
-
-/* Discard the constructed memory map (if an error occurs).  */
-
-static void
-clear_result (void *p)
-{
-  VEC(mem_region_s) **result = (VEC(mem_region_s) **) p;
-  VEC_free (mem_region_s, *result);
-  *result = NULL;
+    gdb_xml_debug (parser, _("Unknown property \"%s\""),
+		   data->property_name.c_str ());
 }
 
 /* The allowed elements and attributes for an XML memory map.  */
@@ -177,25 +168,20 @@ const struct gdb_xml_element memory_map_
   { NULL, NULL, NULL, GDB_XML_EF_NONE, NULL, NULL }
 };
 
-VEC(mem_region_s) *
+std::vector<mem_region>
 parse_memory_map (const char *memory_map)
 {
-  VEC(mem_region_s) *result = NULL;
-  struct cleanup *back_to;
-  struct memory_map_parsing_data data = { NULL };
+  std::vector<mem_region> ret;
+  memory_map_parsing_data data (&ret);
 
-  data.memory_map = &result;
-  back_to = make_cleanup (clear_result, &result);
   if (gdb_xml_parse_quick (_("target memory map"), NULL, memory_map_elements,
 			   memory_map, &data) == 0)
     {
       /* Parsed successfully, keep the result.  */
-      discard_cleanups (back_to);
-      return result;
+      return ret;
     }
 
-  do_cleanups (back_to);
-  return NULL;
+  return std::vector<mem_region> ();
 }
 
 #endif /* HAVE_LIBEXPAT */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/memory-map.h ./gdb/memory-map.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/memory-map.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/memory-map.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Routines for handling XML memory maps provided by target.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -25,8 +25,7 @@
 
 /* Parses XML memory map passed as argument and returns the memory
    regions it describes.  On any error, emits error message and
-   returns 0.  Does not throw.  Ownership of result is passed to the
-   caller.  */
-VEC(mem_region_s) *parse_memory_map (const char *memory_map);
+   return an empty vector.  Does not throw.  */
+std::vector<mem_region> parse_memory_map (const char *memory_map);
 
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/memrange.c ./gdb/memrange.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/memrange.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/memrange.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Memory ranges
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -41,58 +41,36 @@ address_in_mem_range (CORE_ADDR address,
 	  && (address - r->start) < r->length);
 }
 
-/* qsort comparison function, that compares mem_ranges.  Ranges are
-   sorted in ascending START order.  */
-
-static int
-compare_mem_ranges (const void *ap, const void *bp)
-{
-  const struct mem_range *r1 = (const struct mem_range *) ap;
-  const struct mem_range *r2 = (const struct mem_range *) bp;
-
-  if (r1->start > r2->start)
-    return 1;
-  else if (r1->start < r2->start)
-    return -1;
-  else
-    return 0;
-}
-
 void
-normalize_mem_ranges (VEC(mem_range_s) *ranges)
+normalize_mem_ranges (std::vector<mem_range> *memory)
 {
   /* This function must not use any VEC operation on RANGES that
      reallocates the memory block as that invalidates the RANGES
      pointer, which callers expect to remain valid.  */
 
-  if (!VEC_empty (mem_range_s, ranges))
+  if (!memory->empty ())
     {
-      struct mem_range *ra, *rb;
-      int a, b;
+      std::vector<mem_range> &m = *memory;
+
+      std::sort (m.begin (), m.end ());
 
-      qsort (VEC_address (mem_range_s, ranges),
-	     VEC_length (mem_range_s, ranges),
-	     sizeof (mem_range_s),
-	     compare_mem_ranges);
-
-      a = 0;
-      ra = VEC_index (mem_range_s, ranges, a);
-      for (b = 1; VEC_iterate (mem_range_s, ranges, b, rb); b++)
+      int a = 0;
+      for (int b = 1; b < m.size (); b++)
 	{
 	  /* If mem_range B overlaps or is adjacent to mem_range A,
 	     merge them.  */
-	  if (rb->start <= ra->start + ra->length)
+	  if (m[b].start <= m[a].start + m[a].length)
 	    {
-	      ra->length = std::max ((CORE_ADDR) ra->length,
-				(rb->start - ra->start) + rb->length);
+	      m[a].length = std::max ((CORE_ADDR) m[a].length,
+				      (m[b].start - m[a].start) + m[b].length);
 	      continue;		/* next b, same a */
 	    }
 	  a++;			/* next a */
-	  ra = VEC_index (mem_range_s, ranges, a);
 
 	  if (a != b)
-	    *ra = *rb;
+	    m[a] = m[b];
 	}
-      VEC_truncate (mem_range_s, ranges, a + 1);
+
+      m.resize (a + 1);
     }
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/memrange.h ./gdb/memrange.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/memrange.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/memrange.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* The memory range data structure, and associated utilities.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -26,6 +26,23 @@
 
 struct mem_range
 {
+  mem_range () = default;
+
+  mem_range (CORE_ADDR start_, int length_)
+  : start (start_), length (length_)
+  {}
+
+  bool operator< (const mem_range &other) const
+  {
+    return this->start < other.start;
+  }
+
+  bool operator== (const mem_range &other) const
+  {
+    return (this->start == other.start
+	    && this->length == other.length);
+  }
+
   /* Lowest address in the range.  */
   CORE_ADDR start;
 
@@ -33,10 +50,6 @@ struct mem_range
   int length;
 };
 
-typedef struct mem_range mem_range_s;
-
-DEF_VEC_O(mem_range_s);
-
 /* Returns true if the ranges defined by [start1, start1+len1) and
    [start2, start2+len2) overlap.  */
 
@@ -51,6 +64,6 @@ extern int address_in_mem_range (CORE_AD
 /* Sort ranges by start address, then coalesce contiguous or
    overlapping ranges.  */
 
-extern void normalize_mem_ranges (VEC(mem_range_s) *memory);
+extern void normalize_mem_ranges (std::vector<mem_range> *memory);
 
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mep-tdep.c ./gdb/mep-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mep-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mep-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Toshiba MeP for GDB, the GNU debugger.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat, Inc.
 
@@ -36,7 +36,6 @@
 #include "arch-utils.h"
 #include "regcache.h"
 #include "remote.h"
-#include "floatformat.h"
 #include "sim-regno.h"
 #include "disasm.h"
 #include "trad-frame.h"
@@ -928,8 +927,6 @@ current_ccr_names (void)
 static const char *
 mep_register_name (struct gdbarch *gdbarch, int regnr)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);  
-
   /* General-purpose registers.  */
   static const char *gpr_names[] = {
     "r0",   "r1",   "r2",   "r3",   /* 0 */
@@ -1641,12 +1638,12 @@ is_arg_spill (struct gdbarch *gdbarch, p
 {
   return (is_arg_reg (value)
           && pv_is_register (addr, MEP_SP_REGNUM)
-          && ! pv_area_find_reg (stack, gdbarch, value.reg, 0));
+          && ! stack->find_reg (gdbarch, value.reg, 0));
 }
 
 
 /* Function for finding saved registers in a 'struct pv_area'; we pass
-   this to pv_area_scan.
+   this to pv_area::scan.
 
    If VALUE is a saved register, ADDR says it was saved at a constant
    offset from the frame base, and SIZE indicates that the whole
@@ -1674,10 +1671,7 @@ mep_analyze_prologue (struct gdbarch *gd
   CORE_ADDR pc;
   unsigned long insn;
   int rn;
-  int found_lp = 0;
   pv_t reg[MEP_NUM_REGS];
-  struct pv_area *stack;
-  struct cleanup *back_to;
   CORE_ADDR after_last_frame_setup_insn = start_pc;
 
   memset (result, 0, sizeof (*result));
@@ -1689,8 +1683,7 @@ mep_analyze_prologue (struct gdbarch *gd
       result->reg_offset[rn] = 1;
     }
 
-  stack = make_pv_area (MEP_SP_REGNUM, gdbarch_addr_bit (gdbarch));
-  back_to = make_cleanup_free_pv_area (stack);
+  pv_area stack (MEP_SP_REGNUM, gdbarch_addr_bit (gdbarch));
 
   pc = start_pc;
   while (pc < limit_pc)
@@ -1742,13 +1735,13 @@ mep_analyze_prologue (struct gdbarch *gd
           /* If simulating this store would require us to forget
              everything we know about the stack frame in the name of
              accuracy, it would be better to just quit now.  */
-          if (pv_area_store_would_trash (stack, reg[rm]))
+          if (stack.store_would_trash (reg[rm]))
             break;
           
-          if (is_arg_spill (gdbarch, reg[rn], reg[rm], stack))
+          if (is_arg_spill (gdbarch, reg[rn], reg[rm], &stack))
             after_last_frame_setup_insn = next_pc;
 
-          pv_area_store (stack, reg[rm], 4, reg[rn]);
+          stack.store (reg[rm], 4, reg[rn]);
         }
       else if (IS_SW_IMMD (insn))
         {
@@ -1759,13 +1752,13 @@ mep_analyze_prologue (struct gdbarch *gd
           /* If simulating this store would require us to forget
              everything we know about the stack frame in the name of
              accuracy, it would be better to just quit now.  */
-          if (pv_area_store_would_trash (stack, addr))
+          if (stack.store_would_trash (addr))
             break;
 
-          if (is_arg_spill (gdbarch, reg[rn], addr, stack))
+          if (is_arg_spill (gdbarch, reg[rn], addr, &stack))
             after_last_frame_setup_insn = next_pc;
 
-          pv_area_store (stack, addr, 4, reg[rn]);
+          stack.store (addr, 4, reg[rn]);
         }
       else if (IS_MOV (insn))
 	{
@@ -1787,13 +1780,13 @@ mep_analyze_prologue (struct gdbarch *gd
                       : (gdb_assert (IS_SW (insn)), 4));
           pv_t addr = pv_add_constant (reg[rm], disp);
 
-          if (pv_area_store_would_trash (stack, addr))
+          if (stack.store_would_trash (addr))
             break;
 
-          if (is_arg_spill (gdbarch, reg[rn], addr, stack))
+          if (is_arg_spill (gdbarch, reg[rn], addr, &stack))
             after_last_frame_setup_insn = next_pc;
 
-          pv_area_store (stack, addr, size, reg[rn]);
+          stack.store (addr, size, reg[rn]);
 	}
       else if (IS_LDC (insn))
 	{
@@ -1809,7 +1802,7 @@ mep_analyze_prologue (struct gdbarch *gd
           int offset = LW_OFFSET (insn);
           pv_t addr = pv_add_constant (reg[rm], offset);
 
-          reg[rn] = pv_area_fetch (stack, addr, 4);
+          reg[rn] = stack.fetch (addr, 4);
         }
       else if (IS_BRA (insn) && BRA_DISP (insn) > 0)
 	{
@@ -1888,11 +1881,9 @@ mep_analyze_prologue (struct gdbarch *gd
     }
 
   /* Record where all the registers were saved.  */
-  pv_area_scan (stack, check_for_saved, (void *) result);
+  stack.scan (check_for_saved, (void *) result);
 
   result->prologue_end = after_last_frame_setup_insn;
-
-  do_cleanups (back_to);
 }
 
 
@@ -2437,7 +2428,7 @@ mep_gdbarch_init (struct gdbarch_info in
     if (gdbarch_tdep (arches->gdbarch)->me_module == me_module)
       return arches->gdbarch;
 
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
 
   /* Get a CGEN CPU descriptor for this architecture.  */
@@ -2503,9 +2494,6 @@ mep_gdbarch_init (struct gdbarch_info in
   return gdbarch;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_mep_tdep;
-
 void
 _initialize_mep_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-break.c ./gdb/mi/mi-cmd-break.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-break.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-cmd-break.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - breakpoint and watchpoint commands.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions (a Red Hat company).
 
    This file is part of GDB.
@@ -24,7 +24,6 @@
 #include "mi-out.h"
 #include "breakpoint.h"
 #include "mi-getopt.h"
-#include "gdb.h"
 #include "observer.h"
 #include "mi-main.h"
 #include "mi-cmd-break.h"
@@ -53,7 +52,17 @@ static void
 breakpoint_notify (struct breakpoint *b)
 {
   if (mi_can_breakpoint_notify)
-    gdb_breakpoint_query (current_uiout, b->number, NULL);
+    {
+      TRY
+	{
+	  print_breakpoint (b);
+	}
+      CATCH (ex, RETURN_MASK_ALL)
+	{
+	  exception_print (gdb_stderr, ex);
+	}
+      END_CATCH
+    }
 }
 
 enum bp_type
@@ -64,102 +73,91 @@ enum bp_type
   };
 
 /* Arrange for all new breakpoints and catchpoints to be reported to
-   CURRENT_UIOUT until the cleanup returned by this function is run.
+   CURRENT_UIOUT until the destructor of the returned scoped_restore
+   is run.
 
    Note that MI output will be probably invalid if more than one
    breakpoint is created inside one MI command.  */
 
-struct cleanup *
+scoped_restore_tmpl<int>
 setup_breakpoint_reporting (void)
 {
-  struct cleanup *rev_flag;
-
   if (! mi_breakpoint_observers_installed)
     {
       observer_attach_breakpoint_created (breakpoint_notify);
       mi_breakpoint_observers_installed = 1;
     }
 
-  rev_flag = make_cleanup_restore_integer (&mi_can_breakpoint_notify);
-  mi_can_breakpoint_notify = 1;
-
-  return rev_flag;
+  return make_scoped_restore (&mi_can_breakpoint_notify, 1);
 }
 
 
 /* Convert arguments in ARGV to the string in "format",argv,argv...
    and return it.  */
 
-static char *
+static std::string
 mi_argv_to_format (char **argv, int argc)
 {
   int i;
-  struct obstack obstack;
-  char *ret;
-
-  obstack_init (&obstack);
+  std::string result;
 
   /* Convert ARGV[OIND + 1] to format string and save to FORMAT.  */
-  obstack_1grow (&obstack, '\"');
+  result += '\"';
   for (i = 0; i < strlen (argv[0]); i++)
     {
       switch (argv[0][i])
 	{
 	case '\\':
-	  obstack_grow (&obstack, "\\\\", 2);
+	  result += "\\\\";
 	  break;
 	case '\a':
-	  obstack_grow (&obstack, "\\a", 2);
+	  result += "\\a";
 	  break;
 	case '\b':
-	  obstack_grow (&obstack, "\\b", 2);
+	  result += "\\b";
 	  break;
 	case '\f':
-	  obstack_grow (&obstack, "\\f", 2);
+	  result += "\\f";
 	  break;
 	case '\n':
-	  obstack_grow (&obstack, "\\n", 2);
+	  result += "\\n";
 	  break;
 	case '\r':
-	  obstack_grow (&obstack, "\\r", 2);
+	  result += "\\r";
 	  break;
 	case '\t':
-	  obstack_grow (&obstack, "\\t", 2);
+	  result += "\\t";
 	  break;
 	case '\v':
-	  obstack_grow (&obstack, "\\v", 2);
+	  result += "\\v";
 	  break;
 	case '"':
-	  obstack_grow (&obstack, "\\\"", 2);
+	  result += "\\\"";
 	  break;
 	default:
 	  if (isprint (argv[0][i]))
-	    obstack_grow (&obstack, argv[0] + i, 1);
+	    result += argv[0][i];
 	  else
 	    {
 	      char tmp[5];
 
 	      xsnprintf (tmp, sizeof (tmp), "\\%o",
 			 (unsigned char) argv[0][i]);
-	      obstack_grow (&obstack, tmp, strlen (tmp));
+	      result += tmp;
 	    }
 	  break;
 	}
     }
-  obstack_1grow (&obstack, '\"');
+  result += '\"';
 
   /* Apply other argv to FORMAT.  */
   for (i = 1; i < argc; i++)
     {
-      obstack_1grow (&obstack, ',');
-      obstack_grow (&obstack, argv[i], strlen (argv[i]));
+      result += ',';
+      result += argv[i];
     }
-  obstack_1grow (&obstack, '\0');
-
-  ret = xstrdup ((const char *) obstack_finish (&obstack));
-  obstack_free (&obstack, NULL);
 
-  return ret;
+  return result;
 }
 
 /* Insert breakpoint.
@@ -169,7 +167,7 @@ mi_argv_to_format (char **argv, int argc
 static void
 mi_cmd_break_insert_1 (int dprintf, const char *command, char **argv, int argc)
 {
-  char *address = NULL;
+  const char *address = NULL;
   int hardware = 0;
   int temp_p = 0;
   int thread = -1;
@@ -178,13 +176,12 @@ mi_cmd_break_insert_1 (int dprintf, cons
   int pending = 0;
   int enabled = 1;
   int tracepoint = 0;
-  struct cleanup *back_to = make_cleanup (null_cleanup, NULL);
   enum bptype type_wanted;
   event_location_up location;
   struct breakpoint_ops *ops;
   int is_explicit = 0;
   struct explicit_location explicit_loc;
-  char *extra_string = NULL;
+  std::string extra_string;
 
   enum opt
     {
@@ -282,7 +279,6 @@ mi_cmd_break_insert_1 (int dprintf, cons
 	error (_("-dprintf-insert: Missing <format>"));
 
       extra_string = mi_argv_to_format (argv + format_num, argc - format_num);
-      make_cleanup (xfree, extra_string);
       address = argv[oind];
     }
   else
@@ -301,7 +297,7 @@ mi_cmd_break_insert_1 (int dprintf, cons
     }
 
   /* Now we have what we need, let's insert the breakpoint!  */
-  setup_breakpoint_reporting ();
+  scoped_restore restore_breakpoint_reporting = setup_breakpoint_reporting ();
 
   if (tracepoint)
     {
@@ -341,19 +337,19 @@ mi_cmd_break_insert_1 (int dprintf, cons
     }
   else
     {
-      location = string_to_event_location_basic (&address, current_language);
+      location = string_to_event_location_basic (&address, current_language,
+						 symbol_name_match_type::WILD);
       if (*address)
 	error (_("Garbage '%s' at end of location"), address);
     }
 
   create_breakpoint (get_current_arch (), location.get (), condition, thread,
-		     extra_string,
+		     extra_string.c_str (),
 		     0 /* condition and thread are valid.  */,
 		     temp_p, type_wanted,
 		     ignore_count,
 		     pending ? AUTO_BOOLEAN_TRUE : AUTO_BOOLEAN_FALSE,
 		     ops, 0, enabled, 0, 0);
-  do_cleanups (back_to);
 }
 
 /* Implements the -break-insert command.
@@ -398,7 +394,7 @@ mi_cmd_break_passcount (const char *comm
   if (t)
     {
       t->pass_count = p;
-      observer_notify_breakpoint_modified (&t->base);
+      observer_notify_breakpoint_modified (t);
     }
   else
     {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-break.h ./gdb/mi/mi-cmd-break.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-break.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-cmd-break.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - breakpoint and watchpoint commands.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corporation.
 
@@ -21,10 +21,11 @@
 #ifndef MI_CMD_BREAK_H
 #define MI_CMD_BREAK_H
 
+#include "common/scoped_restore.h"
 
 /* Setup the reporting of the insertion of a new breakpoint or
    catchpoint.  */
-struct cleanup *setup_breakpoint_reporting (void);
+scoped_restore_tmpl<int> setup_breakpoint_reporting (void);
 
 #endif
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-catch.c ./gdb/mi/mi-cmd-catch.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-catch.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-cmd-catch.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - catch commands.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corporation.
 
@@ -21,7 +21,6 @@
 #include "defs.h"
 #include "arch-utils.h"
 #include "breakpoint.h"
-#include "gdb.h"
 #include "ada-lang.h"
 #include "mi-cmds.h"
 #include "mi-getopt.h"
@@ -79,7 +78,7 @@ mi_cmd_catch_assert (const char *cmd, ch
   if (oind != argc)
     error (_("Invalid argument: %s"), argv[oind]);
 
-  setup_breakpoint_reporting ();
+  scoped_restore restore_breakpoint_reporting = setup_breakpoint_reporting ();
   /* create_ada_exception_catchpoint needs CONDITION to be xstrdup'ed,
      and will assume control of its lifetime.  */
   if (condition != NULL)
@@ -156,7 +155,7 @@ mi_cmd_catch_exception (const char *cmd,
   if (ex_kind == ada_catch_exception_unhandled && exception_name != NULL)
     error (_("\"-e\" and \"-u\" are mutually exclusive"));
 
-  setup_breakpoint_reporting ();
+  scoped_restore restore_breakpoint_reporting = setup_breakpoint_reporting ();
   /* create_ada_exception_catchpoint needs EXCEPTION_NAME and CONDITION
      to be xstrdup'ed, and will assume control of their lifetime.  */
   if (exception_name != NULL)
@@ -173,7 +172,6 @@ mi_cmd_catch_exception (const char *cmd,
 static void
 mi_catch_load_unload (int load, char *argv[], int argc)
 {
-  struct cleanup *back_to;
   const char *actual_cmd = load ? "-catch-load" : "-catch-unload";
   int temp = 0;
   int enabled = 1;
@@ -215,11 +213,8 @@ mi_catch_load_unload (int load, char *ar
   if (oind < argc -1)
     error (_("-catch-load/unload: Garbage following the <library name>"));
 
-  back_to = setup_breakpoint_reporting ();
-
+  scoped_restore restore_breakpoint_reporting = setup_breakpoint_reporting ();
   add_solib_catchpoint (argv[oind], load, temp, enabled);
-
-  do_cleanups (back_to);
 }
 
 /* Handler for the -catch-load.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-disas.c ./gdb/mi/mi-cmd-disas.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-disas.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-cmd-disas.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - disassemble commands.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions (a Red Hat company).
 
    This file is part of GDB.
@@ -57,7 +57,8 @@ mi_cmd_disassemble (const char *command,
   struct ui_out *uiout = current_uiout;
   CORE_ADDR start;
 
-  int mode, disasm_flags;
+  int mode;
+  gdb_disassembly_flags disasm_flags;
   struct symtab *s;
 
   /* Which options have we processed ... */
@@ -73,7 +74,6 @@ mi_cmd_disassemble (const char *command,
   int how_many = -1;
   CORE_ADDR low = 0;
   CORE_ADDR high = 0;
-  struct cleanup *cleanups = make_cleanup (null_cleanup, NULL);
 
   /* Options processing stuff.  */
   int oind = 0;
@@ -103,9 +103,8 @@ mi_cmd_disassemble (const char *command,
       switch ((enum opt) opt)
 	{
 	case FILE_OPT:
-	  file_string = xstrdup (oarg);
+	  file_string = oarg;
 	  file_seen = 1;
-	  make_cleanup (xfree, file_string);
 	  break;
 	case LINE_OPT:
 	  line_num = atoi (oarg);
@@ -189,6 +188,4 @@ mi_cmd_disassemble (const char *command,
   gdb_disassembly (gdbarch, uiout,
   		   disasm_flags,
 		   how_many, low, high);
-
-  do_cleanups (cleanups);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-env.c ./gdb/mi/mi-cmd-env.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-env.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-cmd-env.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - environment commands.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat Inc.
 
@@ -32,10 +32,6 @@
 #include "top.h"
 #include <sys/stat.h>
 
-static void env_mod_path (char *dirname, char **which_path);
-
-extern void _initialize_mi_cmd_env (void);
-
 static const char path_var_name[] = "PATH";
 static char *orig_path = NULL;
 
@@ -48,17 +44,13 @@ env_execute_cli_command (const char *cmd
 {
   if (cmd != 0)
     {
-      struct cleanup *old_cleanups;
-      char *run;
+      gdb::unique_xmalloc_ptr<char> run;
 
       if (args != NULL)
-	run = xstrprintf ("%s %s", cmd, args);
+	run.reset (xstrprintf ("%s %s", cmd, args));
       else
-	run = xstrdup (cmd);
-      old_cleanups = make_cleanup (xfree, run);
-      execute_command ( /*ui */ run, 0 /*from_tty */ );
-      do_cleanups (old_cleanups);
-      return;
+	run.reset (xstrdup (cmd));
+      execute_command ( /*ui */ run.get (), 0 /*from_tty */ );
     }
 }
 
@@ -80,11 +72,12 @@ mi_cmd_env_pwd (const char *command, cha
      
   /* Otherwise the mi level is 2 or higher.  */
 
-  if (! getcwd (gdb_dirbuf, sizeof (gdb_dirbuf)))
+  gdb::unique_xmalloc_ptr<char> cwd (getcwd (NULL, 0));
+  if (cwd == NULL)
     error (_("-environment-pwd: error finding name of working directory: %s"),
            safe_strerror (errno));
-    
-  uiout->field_string ("cwd", gdb_dirbuf);
+
+  uiout->field_string ("cwd", cwd.get ());
 }
 
 /* Change working directory.  */
@@ -99,7 +92,7 @@ mi_cmd_env_cd (const char *command, char
 }
 
 static void
-env_mod_path (char *dirname, char **which_path)
+env_mod_path (const char *dirname, char **which_path)
 {
   if (dirname == 0 || dirname[0] == '\0')
     return;
@@ -167,7 +160,7 @@ mi_cmd_env_path (const char *command, ch
   else
     {
       /* Otherwise, get current path to modify.  */
-      env = get_in_environ (current_inferior ()->environment, path_var_name);
+      env = current_inferior ()->environment.get (path_var_name);
 
       /* Can be null if path is not set.  */
       if (!env)
@@ -178,9 +171,9 @@ mi_cmd_env_path (const char *command, ch
   for (i = argc - 1; i >= 0; --i)
     env_mod_path (argv[i], &exec_path);
 
-  set_in_environ (current_inferior ()->environment, path_var_name, exec_path);
+  current_inferior ()->environment.set (path_var_name, exec_path);
   xfree (exec_path);
-  env = get_in_environ (current_inferior ()->environment, path_var_name);
+  env = current_inferior ()->environment.get (path_var_name);
   uiout->field_string ("path", env);
 }
 
@@ -270,21 +263,17 @@ mi_cmd_inferior_tty_show (const char *co
 void 
 _initialize_mi_cmd_env (void)
 {
-  struct gdb_environ *environment;
   const char *env;
 
   /* We want original execution path to reset to, if desired later.
      At this point, current inferior is not created, so cannot use
-     current_inferior ()->environment.  Also, there's no obvious
-     place where this code can be moved such that it surely run
-     before any code possibly mangles original PATH.  */
-  environment = make_environ ();
-  init_environ (environment);
-  env = get_in_environ (environment, path_var_name);
+     current_inferior ()->environment.  We use getenv here because it
+     is not necessary to create a whole new gdb_environ just for one
+     variable.  */
+  env = getenv (path_var_name);
 
   /* Can be null if path is not set.  */
   if (!env)
     env = "";
   orig_path = xstrdup (env);
-  free_environ (environment);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-file.c ./gdb/mi/mi-cmd-file.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-file.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-cmd-file.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - file commands.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions (a Red Hat company).
 
    This file is part of GDB.
@@ -119,7 +119,6 @@ mi_cmd_file_list_shared_libraries (const
   struct ui_out *uiout = current_uiout;
   const char *pattern;
   struct so_list *so = NULL;
-  struct gdbarch *gdbarch = target_gdbarch ();
 
   switch (argc)
     {
@@ -144,8 +143,7 @@ mi_cmd_file_list_shared_libraries (const
   update_solib_list (1);
 
   /* Print the table header.  */
-  struct cleanup *cleanup
-    = make_cleanup_ui_out_list_begin_end (uiout, "shared-libraries");
+  ui_out_emit_list list_emitter (uiout, "shared-libraries");
 
   ALL_SO_LIBS (so)
     {
@@ -154,12 +152,7 @@ mi_cmd_file_list_shared_libraries (const
       if (pattern != NULL && !re_exec (so->so_name))
 	continue;
 
-      struct cleanup *tuple_clean_up
-        = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+      ui_out_emit_tuple tuple_emitter (uiout, NULL);
       mi_output_solib_attribs (uiout, so);
-
-      do_cleanups (tuple_clean_up);
     }
-
-  do_cleanups (cleanup);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-info.c ./gdb/mi/mi-cmd-info.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-info.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-cmd-info.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - information commands.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -30,10 +30,6 @@ mi_cmd_info_ada_exceptions (const char *
   struct ui_out *uiout = current_uiout;
   struct gdbarch *gdbarch = get_current_arch ();
   char *regexp;
-  struct cleanup *old_chain;
-  VEC(ada_exc_info) *exceptions;
-  int ix;
-  struct ada_exc_info *info;
 
   switch (argc)
     {
@@ -48,27 +44,21 @@ mi_cmd_info_ada_exceptions (const char *
       break;
     }
 
-  exceptions = ada_exceptions_list (regexp);
-  old_chain = make_cleanup (VEC_cleanup (ada_exc_info), &exceptions);
+  std::vector<ada_exc_info> exceptions = ada_exceptions_list (regexp);
 
-  make_cleanup_ui_out_table_begin_end
-    (uiout, 2, VEC_length (ada_exc_info, exceptions), "ada-exceptions");
+  ui_out_emit_table table_emitter (uiout, 2,
+				   exceptions.size (),
+				   "ada-exceptions");
   uiout->table_header (1, ui_left, "name", "Name");
   uiout->table_header (1, ui_left, "address", "Address");
   uiout->table_body ();
 
-  for (ix = 0; VEC_iterate(ada_exc_info, exceptions, ix, info); ix++)
+  for (const ada_exc_info &info : exceptions)
     {
-      struct cleanup *sub_chain;
-
-      sub_chain = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
-      uiout->field_string ("name", info->name);
-      uiout->field_core_addr ("address", gdbarch, info->addr);
-
-      do_cleanups (sub_chain);
+      ui_out_emit_tuple tuple_emitter (uiout, NULL);
+      uiout->field_string ("name", info.name);
+      uiout->field_core_addr ("address", gdbarch, info.addr);
     }
-
-  do_cleanups (old_chain);
 }
 
 /* Implement the "-info-gdb-mi-command" GDB/MI command.  */
@@ -79,7 +69,6 @@ mi_cmd_info_gdb_mi_command (const char *
   const char *cmd_name;
   struct mi_cmd *cmd;
   struct ui_out *uiout = current_uiout;
-  struct cleanup *old_chain;
 
   /* This command takes exactly one argument.  */
   if (argc != 1)
@@ -95,9 +84,8 @@ mi_cmd_info_gdb_mi_command (const char *
 
   cmd = mi_lookup (cmd_name);
 
-  old_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "command");
+  ui_out_emit_tuple tuple_emitter (uiout, "command");
   uiout->field_string ("exists", cmd != NULL ? "true" : "false");
-  do_cleanups (old_chain);
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmds.c ./gdb/mi/mi-cmds.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmds.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-cmds.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set for GDB, the GNU debugger.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions (a Red Hat company).
 
@@ -23,8 +23,6 @@
 #include "mi-cmds.h"
 #include "mi-main.h"
 
-extern void _initialize_mi_cmds (void);
-
 struct mi_cmd;
 static struct mi_cmd **lookup_table (const char *command);
 static void build_table (struct mi_cmd *commands);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmds.h ./gdb/mi/mi-cmds.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmds.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-cmds.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* MI Command Set for GDB, the GNU debugger.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions (a Red Hat company).
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-stack.c ./gdb/mi/mi-cmd-stack.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-stack.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-cmd-stack.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - stack commands.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions (a Red Hat company).
 
    This file is part of GDB.
@@ -34,6 +34,7 @@
 #include "extension.h"
 #include <ctype.h>
 #include "mi-parse.h"
+#include "common/gdb_optional.h"
 
 enum what_to_list { locals, arguments, all };
 
@@ -81,7 +82,6 @@ mi_cmd_stack_list_frames (const char *co
   int frame_low;
   int frame_high;
   int i;
-  struct cleanup *cleanup_stack;
   struct frame_info *fi;
   enum ext_lang_bt_status result = EXT_LANG_BT_ERROR;
   int raw_arg = 0;
@@ -142,7 +142,7 @@ mi_cmd_stack_list_frames (const char *co
   if (fi == NULL)
     error (_("-stack-list-frames: Not enough frames in stack."));
 
-  cleanup_stack = make_cleanup_ui_out_list_begin_end (current_uiout, "stack");
+  ui_out_emit_list list_emitter (current_uiout, "stack");
 
   if (! raw_arg && frame_filters)
     {
@@ -176,8 +176,6 @@ mi_cmd_stack_list_frames (const char *co
 	  print_frame_info (fi, 1, LOC_AND_ADDRESS, 0 /* args */, 0);
 	}
     }
-
-  do_cleanups (cleanup_stack);
 }
 
 void
@@ -290,7 +288,6 @@ mi_cmd_stack_list_args (const char *comm
   int frame_high;
   int i;
   struct frame_info *fi;
-  struct cleanup *cleanup_stack_args;
   enum print_values print_values;
   struct ui_out *uiout = current_uiout;
   int raw_arg = 0;
@@ -358,8 +355,7 @@ mi_cmd_stack_list_args (const char *comm
   if (fi == NULL)
     error (_("-stack-list-arguments: Not enough frames in stack."));
 
-  cleanup_stack_args
-    = make_cleanup_ui_out_list_begin_end (uiout, "stack-args");
+  ui_out_emit_list list_emitter (uiout, "stack-args");
 
   if (! raw_arg && frame_filters)
     {
@@ -387,16 +383,12 @@ mi_cmd_stack_list_args (const char *comm
 	   fi && (i <= frame_high || frame_high == -1);
 	   i++, fi = get_prev_frame (fi))
 	{
-	  struct cleanup *cleanup_frame;
-
 	  QUIT;
-	  cleanup_frame = make_cleanup_ui_out_tuple_begin_end (uiout, "frame");
+	  ui_out_emit_tuple tuple_emitter (uiout, "frame");
 	  uiout->field_int ("level", i);
 	  list_args_or_locals (arguments, print_values, fi, skip_unavailable);
-	  do_cleanups (cleanup_frame);
 	}
     }
-  do_cleanups (cleanup_stack_args);
 }
 
 /* Print a list of the local variables (including arguments) for the 
@@ -486,7 +478,6 @@ static void
 list_arg_or_local (const struct frame_arg *arg, enum what_to_list what,
 		   enum print_values values, int skip_unavailable)
 {
-  struct cleanup *old_chain;
   struct ui_out *uiout = current_uiout;
 
   gdb_assert (!arg->val || !arg->error);
@@ -510,10 +501,9 @@ list_arg_or_local (const struct frame_ar
 					 TYPE_LENGTH (value_type (arg->val))))))
     return;
 
-  old_chain = make_cleanup (null_cleanup, NULL);
-
+  gdb::optional<ui_out_emit_tuple> tuple_emitter;
   if (values != PRINT_NO_VALUES || what == all)
-    make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+    tuple_emitter.emplace (uiout, nullptr);
 
   string_file stb;
 
@@ -559,8 +549,6 @@ list_arg_or_local (const struct frame_ar
 	stb.printf (_("<error reading variable: %s>"), error_message);
       uiout->field_stream ("value", stb);
     }
-
-  do_cleanups (old_chain);
 }
 
 /* Print a list of the objects for the frame FI in a certain form,
@@ -576,7 +564,6 @@ list_args_or_locals (enum what_to_list w
   const struct block *block;
   struct symbol *sym;
   struct block_iterator iter;
-  struct cleanup *cleanup_list;
   struct type *type;
   const char *name_of_result;
   struct ui_out *uiout = current_uiout;
@@ -599,7 +586,7 @@ list_args_or_locals (enum what_to_list w
 		      "unexpected what_to_list: %d", (int) what);
     }
 
-  cleanup_list = make_cleanup_ui_out_list_begin_end (uiout, name_of_result);
+  ui_out_emit_list list_emitter (uiout, name_of_result);
 
   while (block != 0)
     {
@@ -687,7 +674,6 @@ list_args_or_locals (enum what_to_list w
       else
 	block = BLOCK_SUPERBLOCK (block);
     }
-  do_cleanups (cleanup_list);
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-target.c ./gdb/mi/mi-cmd-target.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-target.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-cmd-target.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - target commands.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-var.c ./gdb/mi/mi-cmd-var.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-cmd-var.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-cmd-var.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - varobj commands.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions (a Red Hat company).
 
@@ -30,12 +30,13 @@
 #include "mi-getopt.h"
 #include "gdbthread.h"
 #include "mi-parse.h"
+#include "common/gdb_optional.h"
 
 extern unsigned int varobjdebug;		/* defined in varobj.c.  */
 
 static void varobj_update_one (struct varobj *var,
 			       enum print_values print_values,
-			       int is_explicit);
+			       bool is_explicit);
 
 static int mi_print_value_p (struct varobj *var,
 			     enum print_values print_values);
@@ -94,32 +95,24 @@ mi_cmd_var_create (const char *command, 
   struct ui_out *uiout = current_uiout;
   CORE_ADDR frameaddr = 0;
   struct varobj *var;
-  char *name;
   char *frame;
   char *expr;
-  struct cleanup *old_cleanups;
   enum varobj_type var_type;
 
   if (argc != 3)
     error (_("-var-create: Usage: NAME FRAME EXPRESSION."));
 
-  name = xstrdup (argv[0]);
-  /* Add cleanup for name. Must be free_current_contents as name can
-     be reallocated.  */
-  old_cleanups = make_cleanup (free_current_contents, &name);
-
-  frame = xstrdup (argv[1]);
-  make_cleanup (xfree, frame);
-
-  expr = xstrdup (argv[2]);
-  make_cleanup (xfree, expr);
+  frame = argv[1];
+  expr = argv[2];
 
+  const char *name = argv[0];
+  std::string gen_name;
   if (strcmp (name, "-") == 0)
     {
-      xfree (name);
-      name = varobj_gen_name ();
+      gen_name = varobj_gen_name ();
+      name = gen_name.c_str ();
     }
-  else if (!isalpha (*name))
+  else if (!isalpha (name[0]))
     error (_("-var-create: name of object must begin with a letter"));
 
   if (strcmp (frame, "*") == 0)
@@ -134,7 +127,7 @@ mi_cmd_var_create (const char *command, 
 
   if (varobjdebug)
     fprintf_unfiltered (gdb_stdlog,
-		    "Name=\"%s\", Frame=\"%s\" (%s), Expression=\"%s\"\n",
+			"Name=\"%s\", Frame=\"%s\" (%s), Expression=\"%s\"\n",
 			name, frame, hex_string (frameaddr), expr);
 
   var = varobj_create (name, expr, frameaddr, var_type);
@@ -145,8 +138,6 @@ mi_cmd_var_create (const char *command, 
   print_varobj (var, PRINT_ALL_VALUES, 0 /* don't print expression */);
 
   uiout->field_int ("has_more", varobj_has_more (var, 0));
-
-  do_cleanups (old_cleanups);
 }
 
 void
@@ -156,16 +147,12 @@ mi_cmd_var_delete (const char *command, 
   struct varobj *var;
   int numdel;
   int children_only_p = 0;
-  struct cleanup *old_cleanups;
   struct ui_out *uiout = current_uiout;
 
   if (argc < 1 || argc > 2)
     error (_("-var-delete: Usage: [-c] EXPRESSION."));
 
-  name = xstrdup (argv[0]);
-  /* Add cleanup for name. Must be free_current_contents as name can
-     be reallocated.  */
-  old_cleanups = make_cleanup (free_current_contents, &name);
+  name = argv[0];
 
   /* If we have one single argument it cannot be '-c' or any string
      starting with '-'.  */
@@ -185,9 +172,7 @@ mi_cmd_var_delete (const char *command, 
       if (strcmp (name, "-c") != 0)
 	error (_("-var-delete: Invalid option."));
       children_only_p = 1;
-      do_cleanups (old_cleanups);
-      name = xstrdup (argv[1]);
-      old_cleanups = make_cleanup (free_current_contents, &name);
+      name = argv[1];
     }
 
   /* If we didn't error out, now NAME contains the name of the
@@ -198,8 +183,6 @@ mi_cmd_var_delete (const char *command, 
   numdel = varobj_delete (var, children_only_p);
 
   uiout->field_int ("ndeleted", numdel);
-
-  do_cleanups (old_cleanups);
 }
 
 /* Parse a string argument into a format value.  */
@@ -277,7 +260,7 @@ void
 mi_cmd_var_set_frozen (const char *command, char **argv, int argc)
 {
   struct varobj *var;
-  int frozen;
+  bool frozen;
 
   if (argc != 2)
     error (_("-var-set-format: Usage: NAME FROZEN_FLAG."));
@@ -285,9 +268,9 @@ mi_cmd_var_set_frozen (const char *comma
   var = varobj_get_handle (argv[0]);
 
   if (strcmp (argv[1], "0") == 0)
-    frozen = 0;
+    frozen = false;
   else if (strcmp (argv[1], "1") == 0)
-    frozen = 1;
+    frozen = true;
   else
     error (_("Invalid flag value"));
 
@@ -369,10 +352,7 @@ mi_cmd_var_list_children (const char *co
 {
   struct ui_out *uiout = current_uiout;
   struct varobj *var;  
-  VEC(varobj_p) *children;
-  struct varobj *child;
   enum print_values print_values;
-  int ix;
   int from, to;
 
   if (argc < 1 || argc > 4)
@@ -396,7 +376,9 @@ mi_cmd_var_list_children (const char *co
       to = -1;
     }
 
-  children = varobj_list_children (var, &from, &to);
+  const std::vector<varobj *> &children
+    = varobj_list_children (var, &from, &to);
+
   uiout->field_int ("numchild", to - from);
   if (argc == 2 || argc == 4)
     print_values = mi_parse_print_values (argv[0]);
@@ -409,25 +391,21 @@ mi_cmd_var_list_children (const char *co
 
   if (from < to)
     {
-      struct cleanup *cleanup_children;
+      /* For historical reasons this might emit a list or a tuple, so
+	 we construct one or the other.  */
+      gdb::optional<ui_out_emit_tuple> tuple_emitter;
+      gdb::optional<ui_out_emit_list> list_emitter;
 
       if (mi_version (uiout) == 1)
-	cleanup_children
-	  = make_cleanup_ui_out_tuple_begin_end (uiout, "children");
+	tuple_emitter.emplace (uiout, "children");
       else
-	cleanup_children
-	  = make_cleanup_ui_out_list_begin_end (uiout, "children");
-      for (ix = from;
-	   ix < to && VEC_iterate (varobj_p, children, ix, child);
-	   ++ix)
+	list_emitter.emplace (uiout, "children");
+      for (int ix = from; ix < to && ix < children.size (); ix++)
 	{
-	  struct cleanup *cleanup_child;
+	  ui_out_emit_tuple child_emitter (uiout, "child");
 
-	  cleanup_child = make_cleanup_ui_out_tuple_begin_end (uiout, "child");
-	  print_varobj (child, print_values, 1 /* print expression */);
-	  do_cleanups (cleanup_child);
+	  print_varobj (children[ix], print_values, 1 /* print expression */);
 	}
-      do_cleanups (cleanup_children);
     }
 
   uiout->field_int ("has_more", varobj_has_more (var, to));
@@ -642,14 +620,13 @@ mi_cmd_var_update_iter (struct varobj *v
 
   if (thread_stopped
       && (!data->only_floating || varobj_floating_p (var)))
-    varobj_update_one (var, data->print_values, 0 /* implicit */);
+    varobj_update_one (var, data->print_values, false /* implicit */);
 }
 
 void
 mi_cmd_var_update (const char *command, char **argv, int argc)
 {
   struct ui_out *uiout = current_uiout;
-  struct cleanup *cleanup;
   char *name;
   enum print_values print_values;
 
@@ -666,10 +643,15 @@ mi_cmd_var_update (const char *command, 
   else
     print_values = PRINT_NO_VALUES;
 
+  /* For historical reasons this might emit a list or a tuple, so we
+     construct one or the other.  */
+  gdb::optional<ui_out_emit_tuple> tuple_emitter;
+  gdb::optional<ui_out_emit_list> list_emitter;
+
   if (mi_version (uiout) <= 1)
-    cleanup = make_cleanup_ui_out_tuple_begin_end (uiout, "changelist");
+    tuple_emitter.emplace (uiout, "changelist");
   else
-    cleanup = make_cleanup_ui_out_list_begin_end (uiout, "changelist");
+    list_emitter.emplace (uiout, "changelist");
 
   /* Check if the parameter is a "*", which means that we want to
      update all variables.  */
@@ -692,40 +674,35 @@ mi_cmd_var_update (const char *command, 
       /* Get varobj handle, if a valid var obj name was specified.  */
       struct varobj *var = varobj_get_handle (name);
 
-      varobj_update_one (var, print_values, 1 /* explicit */);
+      varobj_update_one (var, print_values, true /* explicit */);
     }
-
-  do_cleanups (cleanup);
 }
 
 /* Helper for mi_cmd_var_update().  */
 
 static void
 varobj_update_one (struct varobj *var, enum print_values print_values,
-		   int is_explicit)
+		   bool is_explicit)
 {
   struct ui_out *uiout = current_uiout;
-  VEC (varobj_update_result) *changes;
-  varobj_update_result *r;
-  int i;
-  
-  changes = varobj_update (&var, is_explicit);
+
+  std::vector<varobj_update_result> changes = varobj_update (&var, is_explicit);
   
-  for (i = 0; VEC_iterate (varobj_update_result, changes, i, r); ++i)
+  for (const varobj_update_result &r : changes)
     {
       int from, to;
-      struct cleanup *cleanup = make_cleanup (null_cleanup, NULL);
 
+      gdb::optional<ui_out_emit_tuple> tuple_emitter;
       if (mi_version (uiout) > 1)
-	make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
-      uiout->field_string ("name", varobj_get_objname (r->varobj));
+	tuple_emitter.emplace (uiout, nullptr);
+      uiout->field_string ("name", varobj_get_objname (r.varobj));
 
-      switch (r->status)
+      switch (r.status)
 	{
 	case VAROBJ_IN_SCOPE:
-	  if (mi_print_value_p (r->varobj, print_values))
+	  if (mi_print_value_p (r.varobj, print_values))
 	    {
-	      std::string val = varobj_get_value (r->varobj);
+	      std::string val = varobj_get_value (r.varobj);
 
 	      uiout->field_string ("value", val.c_str ());
 	    }
@@ -739,61 +716,47 @@ varobj_update_one (struct varobj *var, e
  	  break;
 	}
 
-      if (r->status != VAROBJ_INVALID)
+      if (r.status != VAROBJ_INVALID)
 	{
-	  if (r->type_changed)
+	  if (r.type_changed)
 	    uiout->field_string ("type_changed", "true");
 	  else
 	    uiout->field_string ("type_changed", "false");
 	}
 
-      if (r->type_changed)
+      if (r.type_changed)
 	{
-	  std::string type_name = varobj_get_type (r->varobj);
+	  std::string type_name = varobj_get_type (r.varobj);
 
 	  uiout->field_string ("new_type", type_name.c_str ());
 	}
 
-      if (r->type_changed || r->children_changed)
+      if (r.type_changed || r.children_changed)
 	uiout->field_int ("new_num_children",
-			  varobj_get_num_children (r->varobj));
+			  varobj_get_num_children (r.varobj));
 
       gdb::unique_xmalloc_ptr<char> display_hint
-	= varobj_get_display_hint (r->varobj);
+	= varobj_get_display_hint (r.varobj);
       if (display_hint)
 	uiout->field_string ("displayhint", display_hint.get ());
 
-      if (varobj_is_dynamic_p (r->varobj))
+      if (varobj_is_dynamic_p (r.varobj))
 	uiout->field_int ("dynamic", 1);
 
-      varobj_get_child_range (r->varobj, &from, &to);
-      uiout->field_int ("has_more", varobj_has_more (r->varobj, to));
+      varobj_get_child_range (r.varobj, &from, &to);
+      uiout->field_int ("has_more", varobj_has_more (r.varobj, to));
 
-      if (r->newobj)
+      if (!r.newobj.empty ())
 	{
-	  int j;
-	  varobj_p child;
-	  struct cleanup *cleanup;
+	  ui_out_emit_list list_emitter (uiout, "new_children");
 
-	  cleanup = make_cleanup_ui_out_list_begin_end (uiout, "new_children");
-	  for (j = 0; VEC_iterate (varobj_p, r->newobj, j, child); ++j)
+	  for (varobj *child : r.newobj)
 	    {
-	      struct cleanup *cleanup_child;
-
-	      cleanup_child
-		= make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+	      ui_out_emit_tuple tuple_emitter (uiout, NULL);
 	      print_varobj (child, print_values, 1 /* print_expression */);
-	      do_cleanups (cleanup_child);
 	    }
-
-	  do_cleanups (cleanup);
-	  VEC_free (varobj_p, r->newobj);
-	  r->newobj = NULL;	/* Paranoia.  */
 	}
-
-      do_cleanups (cleanup);
     }
-  VEC_free (varobj_update_result, changes);
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-common.c ./gdb/mi/mi-common.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-common.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-common.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Interface for common GDB/MI data
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-common.h ./gdb/mi/mi-common.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-common.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-common.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Interface for common GDB/MI data
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-console.c ./gdb/mi/mi-console.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-console.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-console.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* MI Console code.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions (a Red Hat company).
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-console.h ./gdb/mi/mi-console.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-console.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-console.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - MI Console.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions (a Red Hat company).
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-getopt.c ./gdb/mi/mi-getopt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-getopt.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-getopt.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - MI Option Parser.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions (a Red Hat company).
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-getopt.h ./gdb/mi/mi-getopt.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-getopt.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-getopt.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Option Parser.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions (a Red Hat company).
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-interp.c ./gdb/mi/mi-interp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-interp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-interp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* MI Interpreter Definitions and Commands for GDB, the GNU debugger.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -33,7 +33,6 @@
 #include "observer.h"
 #include "gdbthread.h"
 #include "solist.h"
-#include "gdb.h"
 #include "objfiles.h"
 #include "tracepoint.h"
 #include "cli-out.h"
@@ -206,8 +205,6 @@ mi_cmd_interpreter_exec (const char *com
 {
   struct interp *interp_to_use;
   int i;
-  char *mi_error_message = NULL;
-  struct cleanup *old_chain;
 
   if (argc < 2)
     error (_("-interpreter-exec: "
@@ -231,24 +228,22 @@ mi_cmd_interpreter_exec (const char *com
 
   /* Now run the code.  */
 
-  old_chain = make_cleanup (null_cleanup, 0);
+  std::string mi_error_message;
   for (i = 1; i < argc; i++)
     {
       struct gdb_exception e = interp_exec (interp_to_use, argv[i]);
 
       if (e.reason < 0)
 	{
-	  mi_error_message = xstrdup (e.message);
-	  make_cleanup (xfree, mi_error_message);
+	  mi_error_message = e.message;
 	  break;
 	}
     }
 
   mi_remove_notify_hooks ();
 
-  if (mi_error_message != NULL)
-    error ("%s", mi_error_message);
-  do_cleanups (old_chain);
+  if (!mi_error_message.empty ())
+    error ("%s", mi_error_message.c_str ());
 }
 
 /* This inserts a number of hooks that are meant to produce
@@ -289,7 +284,6 @@ mi_execute_command_wrapper (const char *
 static void
 mi_on_sync_execution_done (void)
 {
-  struct ui *ui = current_ui;
   struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
 
   if (mi == NULL)
@@ -345,20 +339,17 @@ mi_new_thread (struct thread_info *t)
   SWITCH_THRU_ALL_UIS ()
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       fprintf_unfiltered (mi->event_channel,
 			  "thread-created,id=\"%d\",group-id=\"i%d\"",
 			  t->global_num, inf->num);
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -371,19 +362,16 @@ mi_thread_exit (struct thread_info *t, i
   SWITCH_THRU_ALL_UIS ()
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
       fprintf_unfiltered (mi->event_channel,
 			  "thread-exited,id=\"%d\",group-id=\"i%d\"",
 			  t->global_num, t->inf->num);
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -396,13 +384,12 @@ mi_record_changed (struct inferior *infe
   SWITCH_THRU_ALL_UIS ()
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       if (started)
 	{
@@ -429,8 +416,6 @@ mi_record_changed (struct inferior *infe
 	}
 
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -441,7 +426,6 @@ mi_inferior_added (struct inferior *inf)
     {
       struct interp *interp;
       struct mi_interp *mi;
-      struct cleanup *old_chain;
 
       /* We'll be called once for the initial inferior, before the top
 	 level interpreter is set.  */
@@ -453,15 +437,13 @@ mi_inferior_added (struct inferior *inf)
       if (mi == NULL)
 	continue;
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       fprintf_unfiltered (mi->event_channel,
 			  "thread-group-added,id=\"i%d\"",
 			  inf->num);
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -471,19 +453,17 @@ mi_inferior_appeared (struct inferior *i
   SWITCH_THRU_ALL_UIS ()
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       fprintf_unfiltered (mi->event_channel,
 			  "thread-group-started,id=\"i%d\",pid=\"%d\"",
 			  inf->num, inf->pid);
       gdb_flush (mi->event_channel);
-      do_cleanups (old_chain);
     }
 }
 
@@ -493,13 +473,12 @@ mi_inferior_exit (struct inferior *inf)
   SWITCH_THRU_ALL_UIS ()
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       if (inf->has_exit_code)
 	fprintf_unfiltered (mi->event_channel,
@@ -510,7 +489,6 @@ mi_inferior_exit (struct inferior *inf)
 			    "thread-group-exited,id=\"i%d\"", inf->num);
 
       gdb_flush (mi->event_channel);
-      do_cleanups (old_chain);
     }
 }
 
@@ -520,20 +498,17 @@ mi_inferior_removed (struct inferior *in
   SWITCH_THRU_ALL_UIS ()
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       fprintf_unfiltered (mi->event_channel,
 			  "thread-group-removed,id=\"i%d\"",
 			  inf->num);
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -680,11 +655,9 @@ mi_on_normal_stop_1 (struct bpstats *bs,
       mi_uiout->field_int ("thread-id", tp->global_num);
       if (non_stop)
 	{
-	  struct cleanup *back_to = make_cleanup_ui_out_list_begin_end 
-	    (mi_uiout, "stopped-threads");
+	  ui_out_emit_list list_emitter (mi_uiout, "stopped-threads");
 
 	  mi_uiout->field_int (NULL, tp->global_num);
-	  do_cleanups (back_to);
 	}
       else
 	mi_uiout->field_string ("stopped-threads", "all");
@@ -752,13 +725,12 @@ mi_traceframe_changed (int tfnum, int tp
   SWITCH_THRU_ALL_UIS ()
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       if (tfnum >= 0)
 	fprintf_unfiltered (mi->event_channel, "traceframe-changed,"
@@ -768,8 +740,6 @@ mi_traceframe_changed (int tfnum, int tp
 	fprintf_unfiltered (mi->event_channel, "traceframe-changed,end");
 
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -781,21 +751,18 @@ mi_tsv_created (const struct trace_state
   SWITCH_THRU_ALL_UIS ()
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       fprintf_unfiltered (mi->event_channel, "tsv-created,"
 			  "name=\"%s\",initial=\"%s\"\n",
 			  tsv->name, plongest (tsv->initial_value));
 
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -807,13 +774,12 @@ mi_tsv_deleted (const struct trace_state
   SWITCH_THRU_ALL_UIS ()
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       if (tsv != NULL)
 	fprintf_unfiltered (mi->event_channel, "tsv-deleted,"
@@ -822,8 +788,6 @@ mi_tsv_deleted (const struct trace_state
 	fprintf_unfiltered (mi->event_channel, "tsv-deleted\n");
 
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -836,15 +800,14 @@ mi_tsv_modified (const struct trace_stat
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
       struct ui_out *mi_uiout;
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
       mi_uiout = interp_ui_out (top_level_interpreter ());
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       fprintf_unfiltered (mi->event_channel,
 			  "tsv-modified");
@@ -860,9 +823,39 @@ mi_tsv_modified (const struct trace_stat
       mi_uiout->redirect (NULL);
 
       gdb_flush (mi->event_channel);
+    }
+}
+
+/* Print breakpoint BP on MI's event channel.  */
 
-      do_cleanups (old_chain);
+static void
+mi_print_breakpoint_for_event (struct mi_interp *mi, breakpoint *bp)
+{
+  ui_out *mi_uiout = interp_ui_out (mi);
+
+  /* We want the output from print_breakpoint to go to
+     mi->event_channel.  One approach would be to just call
+     print_breakpoint, and then use mi_out_put to send the current
+     content of mi_uiout into mi->event_channel.  However, that will
+     break if anything is output to mi_uiout prior to calling the
+     breakpoint_created notifications.  So, we use
+     ui_out_redirect.  */
+  mi_uiout->redirect (mi->event_channel);
+
+  TRY
+    {
+      scoped_restore restore_uiout
+	= make_scoped_restore (&current_uiout, mi_uiout);
+
+      print_breakpoint (bp);
     }
+  CATCH (ex, RETURN_MASK_ALL)
+    {
+      exception_print (gdb_stderr, ex);
+    }
+  END_CATCH
+
+  mi_uiout->redirect (NULL);
 }
 
 /* Emit notification about a created breakpoint.  */
@@ -879,41 +872,18 @@ mi_breakpoint_created (struct breakpoint
   SWITCH_THRU_ALL_UIS ()
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
-      struct ui_out *mi_uiout;
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
-      mi_uiout = interp_ui_out (top_level_interpreter ());
-
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       fprintf_unfiltered (mi->event_channel,
 			  "breakpoint-created");
-      /* We want the output from gdb_breakpoint_query to go to
-	 mi->event_channel.  One approach would be to just call
-	 gdb_breakpoint_query, and then use mi_out_put to send the current
-	 content of mi_uiout into mi->event_channel.  However, that will
-	 break if anything is output to mi_uiout prior to calling the
-	 breakpoint_created notifications.  So, we use
-	 ui_out_redirect.  */
-      mi_uiout->redirect (mi->event_channel);
-      TRY
-	{
-	  gdb_breakpoint_query (mi_uiout, b->number, NULL);
-	}
-      CATCH (e, RETURN_MASK_ERROR)
-	{
-	}
-      END_CATCH
-
-      mi_uiout->redirect (NULL);
+      mi_print_breakpoint_for_event (mi, b);
 
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -931,20 +901,17 @@ mi_breakpoint_deleted (struct breakpoint
   SWITCH_THRU_ALL_UIS ()
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       fprintf_unfiltered (mi->event_channel, "breakpoint-deleted,id=\"%d\"",
 			  b->number);
 
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -962,37 +929,17 @@ mi_breakpoint_modified (struct breakpoin
   SWITCH_THRU_ALL_UIS ()
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
       fprintf_unfiltered (mi->event_channel,
 			  "breakpoint-modified");
-      /* We want the output from gdb_breakpoint_query to go to
-	 mi->event_channel.  One approach would be to just call
-	 gdb_breakpoint_query, and then use mi_out_put to send the current
-	 content of mi_uiout into mi->event_channel.  However, that will
-	 break if anything is output to mi_uiout prior to calling the
-	 breakpoint_created notifications.  So, we use
-	 ui_out_redirect.  */
-      mi->mi_uiout->redirect (mi->event_channel);
-      TRY
-	{
-	  gdb_breakpoint_query (mi->mi_uiout, b->number, NULL);
-	}
-      CATCH (e, RETURN_MASK_ERROR)
-	{
-	}
-      END_CATCH
-
-      mi->mi_uiout->redirect (NULL);
+      mi_print_breakpoint_for_event (mi, b);
 
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -1100,17 +1047,14 @@ mi_on_resume (ptid_t ptid)
   SWITCH_THRU_ALL_UIS ()
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       mi_on_resume_1 (mi, ptid);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -1128,17 +1072,13 @@ mi_output_solib_attribs (ui_out *uiout, 
   if (!gdbarch_has_global_solist (target_gdbarch ()))
       uiout->field_fmt ("thread-group", "i%d", current_inferior ()->num);
 
-  struct cleanup *cleanup
-    = make_cleanup_ui_out_list_begin_end (uiout, "ranges");
-  struct cleanup *tuple_clean_up
-    = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+  ui_out_emit_list list_emitter (uiout, "ranges");
+  ui_out_emit_tuple tuple_emitter (uiout, NULL);
   if (solib->addr_high != 0)
     {
       uiout->field_core_addr ("from", gdbarch, solib->addr_low);
       uiout->field_core_addr ("to", gdbarch, solib->addr_high);
     }
-  do_cleanups (tuple_clean_up);
-  do_cleanups (cleanup);
 }
 
 static void
@@ -1148,15 +1088,14 @@ mi_solib_loaded (struct so_list *solib)
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
       struct ui_out *uiout;
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
       uiout = interp_ui_out (top_level_interpreter ());
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       fprintf_unfiltered (mi->event_channel, "library-loaded");
 
@@ -1167,8 +1106,6 @@ mi_solib_loaded (struct so_list *solib)
       uiout->redirect (NULL);
 
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -1179,15 +1116,14 @@ mi_solib_unloaded (struct so_list *solib
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
       struct ui_out *uiout;
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
       uiout = interp_ui_out (top_level_interpreter ());
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       fprintf_unfiltered (mi->event_channel, "library-unloaded");
 
@@ -1204,8 +1140,6 @@ mi_solib_unloaded (struct so_list *solib
       uiout->redirect (NULL);
 
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -1221,15 +1155,14 @@ mi_command_param_changed (const char *pa
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
       struct ui_out *mi_uiout;
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
       mi_uiout = interp_ui_out (top_level_interpreter ());
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       fprintf_unfiltered (mi->event_channel, "cmd-param-changed");
 
@@ -1241,8 +1174,6 @@ mi_command_param_changed (const char *pa
       mi_uiout->redirect (NULL);
 
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -1260,15 +1191,14 @@ mi_memory_changed (struct inferior *infe
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
       struct ui_out *mi_uiout;
       struct obj_section *sec;
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
 
       mi_uiout = interp_ui_out (top_level_interpreter ());
 
-      old_chain = make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       fprintf_unfiltered (mi->event_channel, "memory-changed");
 
@@ -1293,8 +1223,6 @@ mi_memory_changed (struct inferior *infe
       mi_uiout->redirect (NULL);
 
       gdb_flush (mi->event_channel);
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -1316,7 +1244,6 @@ mi_user_selected_context_changed (user_s
     {
       struct mi_interp *mi = as_mi_interp (top_level_interpreter ());
       struct ui_out *mi_uiout;
-      struct cleanup *old_chain;
 
       if (mi == NULL)
 	continue;
@@ -1324,11 +1251,10 @@ mi_user_selected_context_changed (user_s
       mi_uiout = interp_ui_out (top_level_interpreter ());
 
       mi_uiout->redirect (mi->event_channel);
+      ui_out_redirect_pop redirect_popper (mi_uiout);
 
-      old_chain = make_cleanup_ui_out_redirect_pop (mi_uiout);
-
-      make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
 
       if (selection & USER_SELECTED_INFERIOR)
 	print_selected_inferior (mi->cli_uiout);
@@ -1351,7 +1277,6 @@ mi_user_selected_context_changed (user_s
 	}
 
       gdb_flush (mi->event_channel);
-      do_cleanups (old_chain);
     }
 }
 
@@ -1363,17 +1288,15 @@ report_initial_inferior (struct inferior
      and top_level_interpreter_data is set, we cannot call
      it here.  */
   struct mi_interp *mi = (struct mi_interp *) closure;
-  struct cleanup *old_chain;
 
-  old_chain = make_cleanup_restore_target_terminal ();
-  target_terminal_ours_for_output ();
+  target_terminal::scoped_restore_terminal_state term_state;
+  target_terminal::ours_for_output ();
 
   fprintf_unfiltered (mi->event_channel,
 		      "thread-group-added,id=\"i%d\"",
 		      inf->num);
   gdb_flush (mi->event_channel);
 
-  do_cleanups (old_chain);
   return 0;
 }
 
@@ -1421,8 +1344,6 @@ mi_interp_factory (const char *name)
   return new mi_interp (name);
 }
 
-extern initialize_file_ftype _initialize_mi_interp; /* -Wmissing-prototypes */
-
 void
 _initialize_mi_interp (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-interp.h ./gdb/mi/mi-interp.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-interp.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-interp.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* MI Interpreter Definitions and Commands for GDB, the GNU debugger.
 
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-main.c ./gdb/mi/mi-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* MI Command Set.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions (a Red Hat company).
 
@@ -38,7 +38,6 @@
 #include "gdbcore.h"		/* For write_memory().  */
 #include "value.h"
 #include "regcache.h"
-#include "gdb.h"
 #include "frame.h"
 #include "mi-main.h"
 #include "mi-common.h"
@@ -46,7 +45,7 @@
 #include "valprint.h"
 #include "inferior.h"
 #include "osdata.h"
-#include "splay-tree.h"
+#include "common/gdb_splay_tree.h"
 #include "tracepoint.h"
 #include "ctf.h"
 #include "ada-lang.h"
@@ -55,10 +54,16 @@
 #include "gdbcmd.h"
 #include "observer.h"
 #include "common/gdb_optional.h"
+#include "common/byte-vector.h"
 
 #include <ctype.h>
 #include "run-time-clock.h"
 #include <chrono>
+#include "progspace-and-thread.h"
+#include "common/rsp-low.h"
+#include <algorithm>
+#include <set>
+#include <map>
 
 enum
   {
@@ -85,15 +90,14 @@ int running_result_record_printed = 1;
    command was issued.  */
 int mi_proceeded;
 
-extern void _initialize_mi_main (void);
 static void mi_cmd_execute (struct mi_parse *parse);
 
 static void mi_execute_cli_command (const char *cmd, int args_p,
 				    const char *args);
 static void mi_execute_async_cli_command (const char *cli_command,
 					  char **argv, int argc);
-static int register_changed_p (int regnum, struct regcache *,
-			       struct regcache *);
+static bool register_changed_p (int regnum, regcache *,
+				regcache *);
 static void output_register (struct frame_info *, int regnum, int format,
 			     int skip_unavailable);
 
@@ -105,7 +109,7 @@ static int mi_async = 0;
 static int mi_async_1 = 0;
 
 static void
-set_mi_async_command (char *args, int from_tty,
+set_mi_async_command (const char *args, int from_tty,
 		      struct cmd_list_element *c)
 {
   if (have_live_inferiors ())
@@ -274,8 +278,8 @@ exec_continue (char **argv, int argc)
 	 See comment on infcmd.c:proceed_thread_callback for rationale.  */
       if (current_context->all || current_context->thread_group != -1)
 	{
+	  scoped_restore_current_thread restore_thread;
 	  int pid = 0;
-	  struct cleanup *back_to = make_cleanup_restore_current_thread ();
 
 	  if (!current_context->all)
 	    {
@@ -285,7 +289,6 @@ exec_continue (char **argv, int argc)
 	      pid = inf->pid;
 	    }
 	  iterate_over_threads (proceed_thread_callback, &pid);
-	  do_cleanups (back_to);
 	}
       else
 	{
@@ -468,10 +471,9 @@ mi_cmd_exec_run (const char *command, ch
 
   if (current_context->all)
     {
-      struct cleanup *back_to = save_current_space_and_thread ();
+      scoped_restore_current_pspace_and_thread restore_pspace_thread;
 
       iterate_over_inferiors (run_one_inferior, &start_p);
-      do_cleanups (back_to);
     }
   else
     {
@@ -553,21 +555,17 @@ mi_cmd_target_flash_erase (const char *c
 void
 mi_cmd_thread_select (const char *command, char **argv, int argc)
 {
-  enum gdb_rc rc;
-  char *mi_error_message;
-  ptid_t previous_ptid = inferior_ptid;
-
   if (argc != 1)
     error (_("-thread-select: USAGE: threadnum."));
 
-  rc = gdb_thread_select (current_uiout, argv[0], &mi_error_message);
+  int num = value_as_long (parse_and_eval (argv[0]));
+  thread_info *thr = find_thread_global_id (num);
+  if (thr == NULL)
+    error (_("Thread ID %d not known."), num);
 
-  /* If thread switch did not succeed don't notify or print.  */
-  if (rc == GDB_RC_FAIL)
-    {
-      make_cleanup (xfree, mi_error_message);
-      error ("%s", mi_error_message);
-    }
+  ptid_t previous_ptid = inferior_ptid;
+
+  thread_select (argv[0], thr);
 
   print_selected_thread_frame (current_uiout,
 			       USER_SELECTED_THREAD | USER_SELECTED_FRAME);
@@ -583,19 +581,31 @@ mi_cmd_thread_select (const char *comman
 void
 mi_cmd_thread_list_ids (const char *command, char **argv, int argc)
 {
-  enum gdb_rc rc;
-  char *mi_error_message;
-
   if (argc != 0)
     error (_("-thread-list-ids: No arguments required."));
 
-  rc = gdb_list_thread_ids (current_uiout, &mi_error_message);
+  int num = 0;
+  int current_thread = -1;
 
-  if (rc == GDB_RC_FAIL)
-    {
-      make_cleanup (xfree, mi_error_message);
-      error ("%s", mi_error_message);
-    }
+  update_thread_list ();
+
+  {
+    ui_out_emit_tuple tuple_emitter (current_uiout, "thread-ids");
+
+    struct thread_info *tp;
+    ALL_NON_EXITED_THREADS (tp)
+      {
+	if (tp->ptid == inferior_ptid)
+	  current_thread = tp->global_num;
+
+	num++;
+	current_uiout->field_int ("thread-id", tp->global_num);
+      }
+  }
+
+  if (current_thread != -1)
+    current_uiout->field_int ("current-thread-id", current_thread);
+  current_uiout->field_int ("number-of-threads", num);
 }
 
 void
@@ -610,8 +620,7 @@ mi_cmd_thread_info (const char *command,
 struct collect_cores_data
 {
   int pid;
-
-  VEC (int) *cores;
+  std::set<int> cores;
 };
 
 static int
@@ -624,27 +633,16 @@ collect_cores (struct thread_info *ti, v
       int core = target_core_of_thread (ti->ptid);
 
       if (core != -1)
-	VEC_safe_push (int, data->cores, core);
+	data->cores.insert (core);
     }
 
   return 0;
 }
 
-static int *
-unique (int *b, int *e)
-{
-  int *d = b;
-
-  while (++b != e)
-    if (*d != *b)
-      *++d = *b;
-  return ++d;
-}
-
 struct print_one_inferior_data
 {
   int recurse;
-  VEC (int) *inferiors;
+  const std::set<int> *inferiors;
 };
 
 static int
@@ -654,14 +652,12 @@ print_one_inferior (struct inferior *inf
     = (struct print_one_inferior_data *) xdata;
   struct ui_out *uiout = current_uiout;
 
-  if (VEC_empty (int, top_data->inferiors)
-      || bsearch (&(inferior->pid), VEC_address (int, top_data->inferiors),
-		  VEC_length (int, top_data->inferiors), sizeof (int),
-		  compare_positive_ints))
+  if (top_data->inferiors->empty ()
+      || (top_data->inferiors->find (inferior->pid)
+	  != top_data->inferiors->end ()))
     {
       struct collect_cores_data data;
-      struct cleanup *back_to
-	= make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+      ui_out_emit_tuple tuple_emitter (uiout, NULL);
 
       uiout->field_fmt ("id", "i%d", inferior->num);
       uiout->field_string ("type", "process");
@@ -677,37 +673,22 @@ print_one_inferior (struct inferior *inf
 			       inferior->pspace->pspace_exec_filename);
 	}
 
-      data.cores = 0;
       if (inferior->pid != 0)
 	{
 	  data.pid = inferior->pid;
 	  iterate_over_threads (collect_cores, &data);
 	}
 
-      if (!VEC_empty (int, data.cores))
+      if (!data.cores.empty ())
 	{
-	  int *b, *e;
-	  struct cleanup *back_to_2 =
-	    make_cleanup_ui_out_list_begin_end (uiout, "cores");
-
-	  qsort (VEC_address (int, data.cores),
-		 VEC_length (int, data.cores), sizeof (int),
-		 compare_positive_ints);
-
-	  b = VEC_address (int, data.cores);
-	  e = b + VEC_length (int, data.cores);
-	  e = unique (b, e);
+	  ui_out_emit_list list_emitter (uiout, "cores");
 
-	  for (; b != e; ++b)
-	    uiout->field_int (NULL, *b);
-
-	  do_cleanups (back_to_2);
+	  for (int b : data.cores)
+	    uiout->field_int (NULL, b);
 	}
 
       if (top_data->recurse)
 	print_thread_info (uiout, NULL, inferior->pid);
-
-      do_cleanups (back_to);
     }
 
   return 0;
@@ -720,189 +701,98 @@ print_one_inferior (struct inferior *inf
 static void
 output_cores (struct ui_out *uiout, const char *field_name, const char *xcores)
 {
-  struct cleanup *back_to = make_cleanup_ui_out_list_begin_end (uiout,
-								field_name);
-  char *cores = xstrdup (xcores);
-  char *p = cores;
-
-  make_cleanup (xfree, cores);
+  ui_out_emit_list list_emitter (uiout, field_name);
+  gdb::unique_xmalloc_ptr<char> cores (xstrdup (xcores));
+  char *p = cores.get ();
 
   for (p = strtok (p, ","); p;  p = strtok (NULL, ","))
     uiout->field_string (NULL, p);
-
-  do_cleanups (back_to);
-}
-
-static void
-free_vector_of_ints (void *xvector)
-{
-  VEC (int) **vector = (VEC (int) **) xvector;
-
-  VEC_free (int, *vector);
-}
-
-static void
-do_nothing (splay_tree_key k)
-{
-}
-
-static void
-free_vector_of_osdata_items (splay_tree_value xvalue)
-{
-  VEC (osdata_item_s) *value = (VEC (osdata_item_s) *) xvalue;
-
-  /* We don't free the items itself, it will be done separately.  */
-  VEC_free (osdata_item_s, value);
-}
-
-static int
-splay_tree_int_comparator (splay_tree_key xa, splay_tree_key xb)
-{
-  int a = xa;
-  int b = xb;
-
-  return a - b;
-}
-
-static void
-free_splay_tree (void *xt)
-{
-  splay_tree t = (splay_tree) xt;
-  splay_tree_delete (t);
 }
 
 static void
-list_available_thread_groups (VEC (int) *ids, int recurse)
+list_available_thread_groups (const std::set<int> &ids, int recurse)
 {
-  struct osdata *data;
-  struct osdata_item *item;
-  int ix_items;
   struct ui_out *uiout = current_uiout;
-  struct cleanup *cleanup;
 
-  /* This keeps a map from integer (pid) to VEC (struct osdata_item *)*
-     The vector contains information about all threads for the given pid.
-     This is assigned an initial value to avoid "may be used uninitialized"
-     warning from gcc.  */
-  splay_tree tree = NULL;
+  /* This keeps a map from integer (pid) to vector of struct osdata_item.
+     The vector contains information about all threads for the given pid.  */
+  std::map<int, std::vector<osdata_item>> tree;
 
   /* get_osdata will throw if it cannot return data.  */
-  data = get_osdata ("processes");
-  cleanup = make_cleanup_osdata_free (data);
+  std::unique_ptr<osdata> data = get_osdata ("processes");
 
   if (recurse)
     {
-      struct osdata *threads = get_osdata ("threads");
+      std::unique_ptr<osdata> threads = get_osdata ("threads");
 
-      make_cleanup_osdata_free (threads);
-      tree = splay_tree_new (splay_tree_int_comparator,
-			     do_nothing,
-			     free_vector_of_osdata_items);
-      make_cleanup (free_splay_tree, tree);
-
-      for (ix_items = 0;
-	   VEC_iterate (osdata_item_s, threads->items,
-			ix_items, item);
-	   ix_items++)
-	{
-	  const char *pid = get_osdata_column (item, "pid");
-	  int pid_i = strtoul (pid, NULL, 0);
-	  VEC (osdata_item_s) *vec = 0;
+      for (const osdata_item &item : threads->items)
+	{
+	  const std::string *pid = get_osdata_column (item, "pid");
+	  int pid_i = strtoul (pid->c_str (), NULL, 0);
 
-	  splay_tree_node n = splay_tree_lookup (tree, pid_i);
-	  if (!n)
-	    {
-	      VEC_safe_push (osdata_item_s, vec, item);
-	      splay_tree_insert (tree, pid_i, (splay_tree_value)vec);
-	    }
-	  else
-	    {
-	      vec = (VEC (osdata_item_s) *) n->value;
-	      VEC_safe_push (osdata_item_s, vec, item);
-	      n->value = (splay_tree_value) vec;
-	    }
+	  tree[pid_i].push_back (item);
 	}
     }
 
-  make_cleanup_ui_out_list_begin_end (uiout, "groups");
+  ui_out_emit_list list_emitter (uiout, "groups");
 
-  for (ix_items = 0;
-       VEC_iterate (osdata_item_s, data->items,
-		    ix_items, item);
-       ix_items++)
+  for (const osdata_item &item : data->items)
     {
-      struct cleanup *back_to;
-
-      const char *pid = get_osdata_column (item, "pid");
-      const char *cmd = get_osdata_column (item, "command");
-      const char *user = get_osdata_column (item, "user");
-      const char *cores = get_osdata_column (item, "cores");
+      const std::string *pid = get_osdata_column (item, "pid");
+      const std::string *cmd = get_osdata_column (item, "command");
+      const std::string *user = get_osdata_column (item, "user");
+      const std::string *cores = get_osdata_column (item, "cores");
 
-      int pid_i = strtoul (pid, NULL, 0);
+      int pid_i = strtoul (pid->c_str (), NULL, 0);
 
       /* At present, the target will return all available processes
 	 and if information about specific ones was required, we filter
 	 undesired processes here.  */
-      if (ids && bsearch (&pid_i, VEC_address (int, ids),
-			  VEC_length (int, ids),
-			  sizeof (int), compare_positive_ints) == NULL)
+      if (!ids.empty () && ids.find (pid_i) == ids.end ())
 	continue;
 
+      ui_out_emit_tuple tuple_emitter (uiout, NULL);
 
-      back_to = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
-
-      uiout->field_fmt ("id", "%s", pid);
+      uiout->field_fmt ("id", "%s", pid->c_str ());
       uiout->field_string ("type", "process");
       if (cmd)
-	uiout->field_string ("description", cmd);
+	uiout->field_string ("description", cmd->c_str ());
       if (user)
-	uiout->field_string ("user", user);
+	uiout->field_string ("user", user->c_str ());
       if (cores)
-	output_cores (uiout, "cores", cores);
+	output_cores (uiout, "cores", cores->c_str ());
 
       if (recurse)
 	{
-	  splay_tree_node n = splay_tree_lookup (tree, pid_i);
-	  if (n)
+	  auto n = tree.find (pid_i);
+	  if (n != tree.end ())
 	    {
-	      VEC (osdata_item_s) *children = (VEC (osdata_item_s) *) n->value;
-	      struct osdata_item *child;
-	      int ix_child;
-
-	      make_cleanup_ui_out_list_begin_end (uiout, "threads");
-
-	      for (ix_child = 0;
-		   VEC_iterate (osdata_item_s, children, ix_child, child);
-		   ++ix_child)
+	      std::vector<osdata_item> &children = n->second;
+
+	      ui_out_emit_list thread_list_emitter (uiout, "threads");
+
+	      for (const osdata_item &child : children)
 		{
-		  struct cleanup *back_to_2 =
-		    make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
-		  const char *tid = get_osdata_column (child, "tid");
-		  const char *tcore = get_osdata_column (child, "core");
+		  ui_out_emit_tuple tuple_emitter (uiout, NULL);
+		  const std::string *tid = get_osdata_column (child, "tid");
+		  const std::string *tcore = get_osdata_column (child, "core");
 
-		  uiout->field_string ("id", tid);
+		  uiout->field_string ("id", tid->c_str ());
 		  if (tcore)
-		    uiout->field_string ("core", tcore);
-
-		  do_cleanups (back_to_2);
+		    uiout->field_string ("core", tcore->c_str ());
 		}
 	    }
 	}
-
-      do_cleanups (back_to);
     }
-
-  do_cleanups (cleanup);
 }
 
 void
 mi_cmd_list_thread_groups (const char *command, char **argv, int argc)
 {
   struct ui_out *uiout = current_uiout;
-  struct cleanup *back_to;
   int available = 0;
   int recurse = 0;
-  VEC (int) *ids = 0;
+  std::set<int> ids;
 
   enum opt
   {
@@ -954,23 +844,17 @@ mi_cmd_list_thread_groups (const char *c
 
       if (*end != '\0')
 	error (_("invalid syntax of group id '%s'"), argv[oind]);
-      VEC_safe_push (int, ids, inf);
+      ids.insert (inf);
     }
-  if (VEC_length (int, ids) > 1)
-    qsort (VEC_address (int, ids),
-	   VEC_length (int, ids),
-	   sizeof (int), compare_positive_ints);
-
-  back_to = make_cleanup (free_vector_of_ints, &ids);
 
   if (available)
     {
       list_available_thread_groups (ids, recurse);
     }
-  else if (VEC_length (int, ids) == 1)
+  else if (ids.size () == 1)
     {
       /* Local thread groups, single id.  */
-      int id = *VEC_address (int, ids);
+      int id = *(ids.begin ());
       struct inferior *inf = find_inferior_id (id);
 
       if (!inf)
@@ -983,18 +867,16 @@ mi_cmd_list_thread_groups (const char *c
       struct print_one_inferior_data data;
 
       data.recurse = recurse;
-      data.inferiors = ids;
+      data.inferiors = &ids;
 
       /* Local thread groups.  Either no explicit ids -- and we
 	 print everything, or several explicit ids.  In both cases,
 	 we print more than one group, and have to use 'groups'
 	 as the top-level element.  */
-      make_cleanup_ui_out_list_begin_end (uiout, "groups");
+      ui_out_emit_list list_emitter (uiout, "groups");
       update_thread_list ();
       iterate_over_inferiors (print_one_inferior, &data);
     }
-
-  do_cleanups (back_to);
 }
 
 void
@@ -1004,7 +886,6 @@ mi_cmd_data_list_register_names (const c
   struct ui_out *uiout = current_uiout;
   int regnum, numregs;
   int i;
-  struct cleanup *cleanup;
 
   /* Note that the test for a valid register must include checking the
      gdbarch_register_name because gdbarch_num_regs may be allocated
@@ -1016,7 +897,7 @@ mi_cmd_data_list_register_names (const c
   gdbarch = get_current_arch ();
   numregs = gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch);
 
-  cleanup = make_cleanup_ui_out_list_begin_end (uiout, "register-names");
+  ui_out_emit_list list_emitter (uiout, "register-names");
 
   if (argc == 0)		/* No args, just do all the regs.  */
     {
@@ -1045,28 +926,25 @@ mi_cmd_data_list_register_names (const c
       else
 	uiout->field_string (NULL, gdbarch_register_name (gdbarch, regnum));
     }
-  do_cleanups (cleanup);
 }
 
 void
 mi_cmd_data_list_changed_registers (const char *command, char **argv, int argc)
 {
-  static struct regcache *this_regs = NULL;
+  static std::unique_ptr<struct regcache> this_regs;
   struct ui_out *uiout = current_uiout;
-  struct regcache *prev_regs;
+  std::unique_ptr<struct regcache> prev_regs;
   struct gdbarch *gdbarch;
-  int regnum, numregs, changed;
+  int regnum, numregs;
   int i;
-  struct cleanup *cleanup;
 
   /* The last time we visited this function, the current frame's
      register contents were saved in THIS_REGS.  Move THIS_REGS over
      to PREV_REGS, and refresh THIS_REGS with the now-current register
      contents.  */
 
-  prev_regs = this_regs;
+  prev_regs = std::move (this_regs);
   this_regs = frame_save_as_regcache (get_selected_frame (NULL));
-  cleanup = make_cleanup_regcache_xfree (prev_regs);
 
   /* Note that the test for a valid register must include checking the
      gdbarch_register_name because gdbarch_num_regs may be allocated
@@ -1075,10 +953,10 @@ mi_cmd_data_list_changed_registers (cons
      will change depending upon the particular processor being
      debugged.  */
 
-  gdbarch = get_regcache_arch (this_regs);
+  gdbarch = this_regs->arch ();
   numregs = gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch);
 
-  make_cleanup_ui_out_list_begin_end (uiout, "changed-registers");
+  ui_out_emit_list list_emitter (uiout, "changed-registers");
 
   if (argc == 0)
     {
@@ -1090,11 +968,9 @@ mi_cmd_data_list_changed_registers (cons
 	  if (gdbarch_register_name (gdbarch, regnum) == NULL
 	      || *(gdbarch_register_name (gdbarch, regnum)) == '\0')
 	    continue;
-	  changed = register_changed_p (regnum, prev_regs, this_regs);
-	  if (changed < 0)
-	    error (_("-data-list-changed-registers: "
-		     "Unable to read register contents."));
-	  else if (changed)
+
+	  if (register_changed_p (regnum, prev_regs.get (),
+				  this_regs.get ()))
 	    uiout->field_int (NULL, regnum);
 	}
     }
@@ -1109,45 +985,41 @@ mi_cmd_data_list_changed_registers (cons
 	  && gdbarch_register_name (gdbarch, regnum) != NULL
 	  && *gdbarch_register_name (gdbarch, regnum) != '\000')
 	{
-	  changed = register_changed_p (regnum, prev_regs, this_regs);
-	  if (changed < 0)
-	    error (_("-data-list-changed-registers: "
-		     "Unable to read register contents."));
-	  else if (changed)
+	  if (register_changed_p (regnum, prev_regs.get (),
+				  this_regs.get ()))
 	    uiout->field_int (NULL, regnum);
 	}
       else
 	error (_("bad register number"));
     }
-  do_cleanups (cleanup);
 }
 
-static int
+static bool
 register_changed_p (int regnum, struct regcache *prev_regs,
 		    struct regcache *this_regs)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (this_regs);
-  gdb_byte prev_buffer[MAX_REGISTER_SIZE];
-  gdb_byte this_buffer[MAX_REGISTER_SIZE];
-  enum register_status prev_status;
-  enum register_status this_status;
+  struct gdbarch *gdbarch = this_regs->arch ();
+  struct value *prev_value, *this_value;
 
   /* First time through or after gdbarch change consider all registers
      as changed.  */
-  if (!prev_regs || get_regcache_arch (prev_regs) != gdbarch)
-    return 1;
+  if (!prev_regs || prev_regs->arch () != gdbarch)
+    return true;
 
   /* Get register contents and compare.  */
-  prev_status = regcache_cooked_read (prev_regs, regnum, prev_buffer);
-  this_status = regcache_cooked_read (this_regs, regnum, this_buffer);
-
-  if (this_status != prev_status)
-    return 1;
-  else if (this_status == REG_VALID)
-    return memcmp (prev_buffer, this_buffer,
-		   register_size (gdbarch, regnum)) != 0;
-  else
-    return 0;
+  prev_value = prev_regs->cooked_read_value (regnum);
+  this_value = this_regs->cooked_read_value (regnum);
+  gdb_assert (prev_value != NULL);
+  gdb_assert (this_value != NULL);
+
+  auto ret = !value_contents_eq (prev_value, 0, this_value, 0,
+				 register_size (gdbarch, regnum));
+
+  release_value (prev_value);
+  release_value (this_value);
+  value_free (prev_value);
+  value_free (this_value);
+  return ret;
 }
 
 /* Return a list of register number and value pairs.  The valid
@@ -1167,7 +1039,6 @@ mi_cmd_data_list_register_values (const 
   struct gdbarch *gdbarch;
   int regnum, numregs, format;
   int i;
-  struct cleanup *list_cleanup;
   int skip_unavailable = 0;
   int oind = 0;
   enum opt
@@ -1214,7 +1085,7 @@ mi_cmd_data_list_register_values (const 
   gdbarch = get_frame_arch (frame);
   numregs = gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch);
 
-  list_cleanup = make_cleanup_ui_out_list_begin_end (uiout, "register-values");
+  ui_out_emit_list list_emitter (uiout, "register-values");
 
   if (argc - oind == 1)
     {
@@ -1244,7 +1115,6 @@ mi_cmd_data_list_register_values (const 
       else
 	error (_("bad register number"));
     }
-  do_cleanups (list_cleanup);
 }
 
 /* Output one register REGNUM's contents in the desired FORMAT.  If
@@ -1257,13 +1127,12 @@ output_register (struct frame_info *fram
 {
   struct ui_out *uiout = current_uiout;
   struct value *val = value_of_register (regnum, frame);
-  struct cleanup *tuple_cleanup;
   struct value_print_options opts;
 
   if (skip_unavailable && !value_entirely_available (val))
     return;
 
-  tuple_cleanup = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+  ui_out_emit_tuple tuple_emitter (uiout, NULL);
   uiout->field_int ("number", regnum);
 
   if (format == 'N')
@@ -1280,8 +1149,6 @@ output_register (struct frame_info *fram
 	     value_embedded_offset (val), 0,
 	     &stb, 0, val, &opts, current_language);
   uiout->field_stream ("value", stb);
-
-  do_cleanups (tuple_cleanup);
 }
 
 /* Write given values into registers. The registers and values are
@@ -1303,7 +1170,7 @@ mi_cmd_data_write_register_values (const
      debugged.  */
 
   regcache = get_current_regcache ();
-  gdbarch = get_regcache_arch (regcache);
+  gdbarch = regcache->arch ();
   numregs = gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch);
 
   if (argc == 0)
@@ -1486,12 +1353,12 @@ mi_cmd_data_read_memory (const char *com
   /* Create a buffer and read it in.  */
   total_bytes = word_size * nr_rows * nr_cols;
 
-  std::unique_ptr<gdb_byte[]> mbuf (new gdb_byte[total_bytes]);
+  gdb::byte_vector mbuf (total_bytes);
 
   /* Dispatch memory reads to the topmost target, not the flattened
      current_target.  */
   nr_bytes = target_read (current_target.beneath,
-			  TARGET_OBJECT_MEMORY, NULL, mbuf.get (),
+			  TARGET_OBJECT_MEMORY, NULL, mbuf.data (),
 			  addr, total_bytes);
   if (nr_bytes <= 0)
     error (_("Unable to read memory."));
@@ -1509,44 +1376,43 @@ mi_cmd_data_read_memory (const char *com
   {
     int row;
     int row_byte;
-    struct cleanup *cleanup_list;
 
     string_file stream;
 
-    cleanup_list = make_cleanup_ui_out_list_begin_end (uiout, "memory");
+    ui_out_emit_list list_emitter (uiout, "memory");
     for (row = 0, row_byte = 0;
 	 row < nr_rows;
 	 row++, row_byte += nr_cols * word_size)
       {
 	int col;
 	int col_byte;
-	struct cleanup *cleanup_tuple;
-	struct cleanup *cleanup_list_data;
 	struct value_print_options opts;
 
-	cleanup_tuple = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+	ui_out_emit_tuple tuple_emitter (uiout, NULL);
 	uiout->field_core_addr ("addr", gdbarch, addr + row_byte);
 	/* ui_out_field_core_addr_symbolic (uiout, "saddr", addr +
 	   row_byte); */
-	cleanup_list_data = make_cleanup_ui_out_list_begin_end (uiout, "data");
-	get_formatted_print_options (&opts, word_format);
-	for (col = 0, col_byte = row_byte;
-	     col < nr_cols;
-	     col++, col_byte += word_size)
-	  {
-	    if (col_byte + word_size > nr_bytes)
-	      {
-		uiout->field_string (NULL, "N/A");
-	      }
-	    else
-	      {
-		stream.clear ();
-		print_scalar_formatted (&mbuf[col_byte], word_type, &opts,
-					word_asize, &stream);
-		uiout->field_stream (NULL, stream);
-	      }
-	  }
-	do_cleanups (cleanup_list_data);
+	{
+	  ui_out_emit_list list_data_emitter (uiout, "data");
+	  get_formatted_print_options (&opts, word_format);
+	  for (col = 0, col_byte = row_byte;
+	       col < nr_cols;
+	       col++, col_byte += word_size)
+	    {
+	      if (col_byte + word_size > nr_bytes)
+		{
+		  uiout->field_string (NULL, "N/A");
+		}
+	      else
+		{
+		  stream.clear ();
+		  print_scalar_formatted (&mbuf[col_byte], word_type, &opts,
+					  word_asize, &stream);
+		  uiout->field_stream (NULL, stream);
+		}
+	    }
+	}
+
 	if (aschar)
 	  {
 	    int byte;
@@ -1564,9 +1430,7 @@ mi_cmd_data_read_memory (const char *com
 	      }
 	    uiout->field_stream ("ascii", stream);
 	  }
-	do_cleanups (cleanup_tuple);
       }
-    do_cleanups (cleanup_list);
   }
 }
 
@@ -1575,12 +1439,8 @@ mi_cmd_data_read_memory_bytes (const cha
 {
   struct gdbarch *gdbarch = get_current_arch ();
   struct ui_out *uiout = current_uiout;
-  struct cleanup *cleanups;
   CORE_ADDR addr;
   LONGEST length;
-  memory_read_result_s *read_result;
-  int ix;
-  VEC(memory_read_result_s) *result;
   long offset = 0;
   int unit_size = gdbarch_addressable_memory_unit_size (gdbarch);
   int oind = 0;
@@ -1617,41 +1477,26 @@ mi_cmd_data_read_memory_bytes (const cha
   addr = parse_and_eval_address (argv[0]) + offset;
   length = atol (argv[1]);
 
-  result = read_memory_robust (current_target.beneath, addr, length);
-
-  cleanups = make_cleanup (free_memory_read_result_vector, &result);
+  std::vector<memory_read_result> result
+    = read_memory_robust (current_target.beneath, addr, length);
 
-  if (VEC_length (memory_read_result_s, result) == 0)
+  if (result.size () == 0)
     error (_("Unable to read memory."));
 
-  make_cleanup_ui_out_list_begin_end (uiout, "memory");
-  for (ix = 0;
-       VEC_iterate (memory_read_result_s, result, ix, read_result);
-       ++ix)
-    {
-      struct cleanup *t = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
-      char *data, *p;
-      int i;
-      int alloc_len;
-
-      uiout->field_core_addr ("begin", gdbarch, read_result->begin);
-      uiout->field_core_addr ("offset", gdbarch, read_result->begin - addr);
-      uiout->field_core_addr ("end", gdbarch, read_result->end);
-
-      alloc_len = (read_result->end - read_result->begin) * 2 * unit_size + 1;
-      data = (char *) xmalloc (alloc_len);
-
-      for (i = 0, p = data;
-	   i < ((read_result->end - read_result->begin) * unit_size);
-	   ++i, p += 2)
-	{
-	  sprintf (p, "%02x", read_result->data[i]);
-	}
-      uiout->field_string ("contents", data);
-      xfree (data);
-      do_cleanups (t);
+  ui_out_emit_list list_emitter (uiout, "memory");
+  for (const memory_read_result &read_result : result)
+    {
+      ui_out_emit_tuple tuple_emitter (uiout, NULL);
+
+      uiout->field_core_addr ("begin", gdbarch, read_result.begin);
+      uiout->field_core_addr ("offset", gdbarch, read_result.begin - addr);
+      uiout->field_core_addr ("end", gdbarch, read_result.end);
+
+      std::string data = bin2hex (read_result.data.get (),
+				  (read_result.end - read_result.begin)
+				  * unit_size);
+      uiout->field_string ("contents", data.c_str ());
     }
-  do_cleanups (cleanups);
 }
 
 /* Implementation of the -data-write_memory command.
@@ -1681,8 +1526,6 @@ mi_cmd_data_write_memory (const char *co
   /* FIXME: ezannoni 2000-02-17 LONGEST could possibly not be big
      enough when using a compiler other than GCC.  */
   LONGEST value;
-  gdb_byte *buffer;
-  struct cleanup *old_chain;
   long offset = 0;
   int oind = 0;
   char *oarg;
@@ -1729,13 +1572,10 @@ mi_cmd_data_write_memory (const char *co
   /* Get the value as a number.  */
   value = parse_and_eval_address (argv[3]);
   /* Get the value into an array.  */
-  buffer = (gdb_byte *) xmalloc (word_size);
-  old_chain = make_cleanup (xfree, buffer);
-  store_signed_integer (buffer, word_size, byte_order, value);
+  gdb::byte_vector buffer (word_size);
+  store_signed_integer (buffer.data (), word_size, byte_order, value);
   /* Write it down to memory.  */
-  write_memory_with_notification (addr, buffer, word_size);
-  /* Free the buffer.  */
-  do_cleanups (old_chain);
+  write_memory_with_notification (addr, buffer.data (), word_size);
 }
 
 /* Implementation of the -data-write-memory-bytes command.
@@ -1749,11 +1589,8 @@ mi_cmd_data_write_memory_bytes (const ch
 {
   CORE_ADDR addr;
   char *cdata;
-  gdb_byte *data;
-  gdb_byte *databuf;
   size_t len_hex, len_bytes, len_units, i, steps, remaining_units;
   long int count_units;
-  struct cleanup *back_to;
   int unit_size;
 
   if (argc != 2 && argc != 3)
@@ -1777,8 +1614,7 @@ mi_cmd_data_write_memory_bytes (const ch
   else
     count_units = len_units;
 
-  databuf = XNEWVEC (gdb_byte, len_bytes);
-  back_to = make_cleanup (xfree, databuf);
+  gdb::byte_vector databuf (len_bytes);
 
   for (i = 0; i < len_bytes; ++i)
     {
@@ -1788,34 +1624,32 @@ mi_cmd_data_write_memory_bytes (const ch
       databuf[i] = (gdb_byte) x;
     }
 
+  gdb::byte_vector data;
   if (len_units < count_units)
     {
       /* Pattern is made of less units than count:
          repeat pattern to fill memory.  */
-      data = (gdb_byte *) xmalloc (count_units * unit_size);
-      make_cleanup (xfree, data);
+      data = gdb::byte_vector (count_units * unit_size);
 
       /* Number of times the pattern is entirely repeated.  */
       steps = count_units / len_units;
       /* Number of remaining addressable memory units.  */
       remaining_units = count_units % len_units;
       for (i = 0; i < steps; i++)
-        memcpy (data + i * len_bytes, databuf, len_bytes);
+        memcpy (&data[i * len_bytes], &databuf[0], len_bytes);
 
       if (remaining_units > 0)
-        memcpy (data + steps * len_bytes, databuf,
+        memcpy (&data[steps * len_bytes], &databuf[0],
 		remaining_units * unit_size);
     }
   else
     {
       /* Pattern is longer than or equal to count:
          just copy count addressable memory units.  */
-      data = databuf;
+      data = std::move (databuf);
     }
 
-  write_memory_with_notification (addr, data, count_units);
-
-  do_cleanups (back_to);
+  write_memory_with_notification (addr, data.data (), count_units);
 }
 
 void
@@ -1846,10 +1680,9 @@ mi_cmd_list_features (const char *comman
 {
   if (argc == 0)
     {
-      struct cleanup *cleanup = NULL;
       struct ui_out *uiout = current_uiout;
 
-      cleanup = make_cleanup_ui_out_list_begin_end (uiout, "features");
+      ui_out_emit_list list_emitter (uiout, "features");
       uiout->field_string (NULL, "frozen-varobjs");
       uiout->field_string (NULL, "pending-breakpoints");
       uiout->field_string (NULL, "thread-info");
@@ -1864,7 +1697,6 @@ mi_cmd_list_features (const char *comman
       if (ext_lang_initialized_p (get_ext_lang_defn (EXT_LANG_PYTHON)))
 	uiout->field_string (NULL, "python");
 
-      do_cleanups (cleanup);
       return;
     }
 
@@ -1876,15 +1708,13 @@ mi_cmd_list_target_features (const char 
 {
   if (argc == 0)
     {
-      struct cleanup *cleanup = NULL;
       struct ui_out *uiout = current_uiout;
 
-      cleanup = make_cleanup_ui_out_list_begin_end (uiout, "features");
+      ui_out_emit_list list_emitter (uiout, "features");
       if (mi_async_p ())
 	uiout->field_string (NULL, "async");
       if (target_can_execute_reverse)
 	uiout->field_string (NULL, "reverse");
-      do_cleanups (cleanup);
       return;
     }
 
@@ -1960,20 +1790,19 @@ mi_cmd_remove_inferior (const char *comm
    Return <0 for error; >=0 for ok.
 
    args->action will tell mi_execute_command what action
-   to perfrom after the given command has executed (display/suppress
+   to perform after the given command has executed (display/suppress
    prompt, display error).  */
 
 static void
 captured_mi_execute_command (struct ui_out *uiout, struct mi_parse *context)
 {
   struct mi_interp *mi = (struct mi_interp *) command_interp ();
-  struct cleanup *cleanup;
 
   if (do_timings)
     current_command_ts = context->cmd_start;
 
-  current_token = xstrdup (context->token);
-  cleanup = make_cleanup (free_current_contents, &current_token);
+  scoped_restore save_token = make_scoped_restore (&current_token,
+						   context->token);
 
   running_result_record_printed = 0;
   mi_proceeded = 0;
@@ -2049,8 +1878,6 @@ captured_mi_execute_command (struct ui_o
 	break;
       }
     }
-
-  do_cleanups (cleanup);
 }
 
 /* Print a gdb exception to the MI output stream.  */
@@ -2207,9 +2034,7 @@ mi_execute_command (const char *cmd, int
 static void
 mi_cmd_execute (struct mi_parse *parse)
 {
-  struct cleanup *cleanup;
-
-  cleanup = prepare_execute_command ();
+  scoped_value_mark cleanup = prepare_execute_command ();
 
   if (parse->all && parse->thread_group != -1)
     error (_("Cannot specify --thread-group together with --all"));
@@ -2269,9 +2094,10 @@ mi_cmd_execute (struct mi_parse *parse)
 	error (_("Invalid frame id: %d"), frame);
     }
 
+  gdb::optional<scoped_restore_current_language> lang_saver;
   if (parse->language != language_unknown)
     {
-      make_cleanup_restore_current_language ();
+      lang_saver.emplace ();
       set_language (parse->language);
     }
 
@@ -2300,7 +2126,6 @@ mi_cmd_execute (struct mi_parse *parse)
 
       error_stream (stb);
     }
-  do_cleanups (cleanup);
 }
 
 /* FIXME: This is just a hack so we can get some extra commands going.
@@ -2312,41 +2137,29 @@ mi_execute_cli_command (const char *cmd,
 {
   if (cmd != 0)
     {
-      struct cleanup *old_cleanups;
-      char *run;
+      std::string run = cmd;
 
       if (args_p)
-	run = xstrprintf ("%s %s", cmd, args);
-      else
-	run = xstrdup (cmd);
+	run = run + " " + args;
       if (mi_debug_p)
 	/* FIXME: gdb_???? */
 	fprintf_unfiltered (gdb_stdout, "cli=%s run=%s\n",
-			    cmd, run);
-      old_cleanups = make_cleanup (xfree, run);
-      execute_command (run, 0 /* from_tty */ );
-      do_cleanups (old_cleanups);
-      return;
+			    cmd, run.c_str ());
+      execute_command (run.c_str (), 0 /* from_tty */ );
     }
 }
 
 void
 mi_execute_async_cli_command (const char *cli_command, char **argv, int argc)
 {
-  struct cleanup *old_cleanups;
-  char *run;
+  std::string run = cli_command;
 
+  if (argc)
+    run = run + " " + *argv;
   if (mi_async_p ())
-    run = xstrprintf ("%s %s&", cli_command, argc ? *argv : "");
-  else
-    run = xstrprintf ("%s %s", cli_command, argc ? *argv : "");
-  old_cleanups = make_cleanup (xfree, run);
-
-  execute_command (run, 0 /* from_tty */ );
+    run += "&";
 
-  /* Do this before doing any printing.  It would appear that some
-     print code leaves garbage around in the buffer.  */
-  do_cleanups (old_cleanups);
+  execute_command (run.c_str (), 0 /* from_tty */ );
 }
 
 void
@@ -2360,45 +2173,44 @@ mi_load_progress (const char *section_na
   static steady_clock::time_point last_update;
   static char *previous_sect_name = NULL;
   int new_section;
-  struct ui_out *saved_uiout;
-  struct ui_out *uiout;
   struct mi_interp *mi = (struct mi_interp *) current_interpreter ();
 
   /* This function is called through deprecated_show_load_progress
      which means uiout may not be correct.  Fix it for the duration
      of this function.  */
-  saved_uiout = current_uiout;
+
+  std::unique_ptr<ui_out> uiout;
 
   if (current_interp_named_p (INTERP_MI)
       || current_interp_named_p (INTERP_MI2))
-    current_uiout = mi_out_new (2);
+    uiout.reset (mi_out_new (2));
   else if (current_interp_named_p (INTERP_MI1))
-    current_uiout = mi_out_new (1);
+    uiout.reset (mi_out_new (1));
   else if (current_interp_named_p (INTERP_MI3))
-    current_uiout = mi_out_new (3);
+    uiout.reset (mi_out_new (3));
   else
     return;
 
-  uiout = current_uiout;
+  scoped_restore save_uiout
+    = make_scoped_restore (&current_uiout, uiout.get ());
 
   new_section = (previous_sect_name ?
 		 strcmp (previous_sect_name, section_name) : 1);
   if (new_section)
     {
-      struct cleanup *cleanup_tuple;
-
       xfree (previous_sect_name);
       previous_sect_name = xstrdup (section_name);
 
       if (current_token)
 	fputs_unfiltered (current_token, mi->raw_stdout);
       fputs_unfiltered ("+download", mi->raw_stdout);
-      cleanup_tuple = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
-      uiout->field_string ("section", section_name);
-      uiout->field_int ("section-size", total_section);
-      uiout->field_int ("total-size", grand_total);
-      do_cleanups (cleanup_tuple);
-      mi_out_put (uiout, mi->raw_stdout);
+      {
+	ui_out_emit_tuple tuple_emitter (uiout.get (), NULL);
+	uiout->field_string ("section", section_name);
+	uiout->field_int ("section-size", total_section);
+	uiout->field_int ("total-size", grand_total);
+      }
+      mi_out_put (uiout.get (), mi->raw_stdout);
       fputs_unfiltered ("\n", mi->raw_stdout);
       gdb_flush (mi->raw_stdout);
     }
@@ -2406,26 +2218,22 @@ mi_load_progress (const char *section_na
   steady_clock::time_point time_now = steady_clock::now ();
   if (time_now - last_update > milliseconds (500))
     {
-      struct cleanup *cleanup_tuple;
-
       last_update = time_now;
       if (current_token)
 	fputs_unfiltered (current_token, mi->raw_stdout);
       fputs_unfiltered ("+download", mi->raw_stdout);
-      cleanup_tuple = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
-      uiout->field_string ("section", section_name);
-      uiout->field_int ("section-sent", sent_so_far);
-      uiout->field_int ("section-size", total_section);
-      uiout->field_int ("total-sent", total_sent);
-      uiout->field_int ("total-size", grand_total);
-      do_cleanups (cleanup_tuple);
-      mi_out_put (uiout, mi->raw_stdout);
+      {
+	ui_out_emit_tuple tuple_emitter (uiout.get (), NULL);
+	uiout->field_string ("section", section_name);
+	uiout->field_int ("section-sent", sent_so_far);
+	uiout->field_int ("section-size", total_section);
+	uiout->field_int ("total-sent", total_sent);
+	uiout->field_int ("total-size", grand_total);
+      }
+      mi_out_put (uiout.get (), mi->raw_stdout);
       fputs_unfiltered ("\n", mi->raw_stdout);
       gdb_flush (mi->raw_stdout);
     }
-
-  xfree (uiout);
-  current_uiout = saved_uiout;
 }
 
 static void
@@ -2558,29 +2366,22 @@ mi_cmd_trace_find (const char *command, 
     }
   else if (strcmp (mode, "line") == 0)
     {
-      struct symtabs_and_lines sals;
-      struct symtab_and_line sal;
-      static CORE_ADDR start_pc, end_pc;
-      struct cleanup *back_to;
-
       if (argc != 2)
 	error (_("Line is required"));
 
-      sals = decode_line_with_current_source (argv[1],
-					      DECODE_LINE_FUNFIRSTLINE);
-      back_to = make_cleanup (xfree, sals.sals);
-
-      sal = sals.sals[0];
+      std::vector<symtab_and_line> sals
+	= decode_line_with_current_source (argv[1],
+					   DECODE_LINE_FUNFIRSTLINE);
+      const symtab_and_line &sal = sals[0];
 
       if (sal.symtab == 0)
 	error (_("Could not find the specified line"));
 
+      CORE_ADDR start_pc, end_pc;
       if (sal.line > 0 && find_line_pc_range (sal, &start_pc, &end_pc))
 	tfind_1 (tfind_range, 0, start_pc, end_pc - 1, 0);
       else
 	error (_("Could not find the specified line"));
-
-      do_cleanups (back_to);
     }
   else
     error (_("Invalid mode '%s'"), mode);
@@ -2674,7 +2475,6 @@ mi_cmd_ada_task_info (const char *comman
 static void
 print_variable_or_computed (const char *expression, enum print_values values)
 {
-  struct cleanup *old_chain;
   struct value *val;
   struct type *type;
   struct ui_out *uiout = current_uiout;
@@ -2688,9 +2488,9 @@ print_variable_or_computed (const char *
   else
     val = evaluate_expression (expr.get ());
 
-  old_chain = make_cleanup (null_cleanup, NULL);
+  gdb::optional<ui_out_emit_tuple> tuple_emitter;
   if (values != PRINT_NO_VALUES)
-    make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+    tuple_emitter.emplace (uiout, nullptr);
   uiout->field_string ("name", expression);
 
   switch (values)
@@ -2722,8 +2522,6 @@ print_variable_or_computed (const char *
       }
       break;
     }
-
-  do_cleanups (old_chain);
 }
 
 /* Implement the "-trace-frame-collected" command.  */
@@ -2731,7 +2529,6 @@ print_variable_or_computed (const char *
 void
 mi_cmd_trace_frame_collected (const char *command, char **argv, int argc)
 {
-  struct cleanup *old_chain;
   struct bp_location *tloc;
   int stepping_frame;
   struct collection_list *clist;
@@ -2794,7 +2591,7 @@ mi_cmd_trace_frame_collected (const char
 
   /* This command only makes sense for the current frame, not the
      selected frame.  */
-  old_chain = make_cleanup_restore_current_thread ();
+  scoped_restore_current_thread restore_thread;
   select_frame (get_current_frame ());
 
   encode_actions (tloc, &tracepoint_list, &stepping_list);
@@ -2808,12 +2605,7 @@ mi_cmd_trace_frame_collected (const char
 
   /* Explicitly wholly collected variables.  */
   {
-    struct cleanup *list_cleanup;
-    int i;
-
-    list_cleanup = make_cleanup_ui_out_list_begin_end (uiout,
-						       "explicit-variables");
-
+    ui_out_emit_list list_emitter (uiout, "explicit-variables");
     const std::vector<std::string> &wholly_collected
       = clist->wholly_collected ();
     for (size_t i = 0; i < wholly_collected.size (); i++)
@@ -2821,19 +2613,11 @@ mi_cmd_trace_frame_collected (const char
 	const std::string &str = wholly_collected[i];
 	print_variable_or_computed (str.c_str (), var_print_values);
       }
-
-    do_cleanups (list_cleanup);
   }
 
   /* Computed expressions.  */
   {
-    struct cleanup *list_cleanup;
-    char *p;
-    int i;
-
-    list_cleanup
-      = make_cleanup_ui_out_list_begin_end (uiout,
-					    "computed-expressions");
+    ui_out_emit_list list_emitter (uiout, "computed-expressions");
 
     const std::vector<std::string> &computed = clist->computed ();
     for (size_t i = 0; i < computed.size (); i++)
@@ -2841,8 +2625,6 @@ mi_cmd_trace_frame_collected (const char
 	const std::string &str = computed[i];
 	print_variable_or_computed (str.c_str (), comp_print_values);
       }
-
-    do_cleanups (list_cleanup);
   }
 
   /* Registers.  Given pseudo-registers, and that some architectures
@@ -2850,13 +2632,12 @@ mi_cmd_trace_frame_collected (const char
      the trace frame info, but instead consult the register cache for
      register availability.  */
   {
-    struct cleanup *list_cleanup;
     struct frame_info *frame;
     struct gdbarch *gdbarch;
     int regnum;
     int numregs;
 
-    list_cleanup = make_cleanup_ui_out_list_begin_end (uiout, "registers");
+    ui_out_emit_list list_emitter (uiout, "registers");
 
     frame = get_selected_frame (NULL);
     gdbarch = get_frame_arch (frame);
@@ -2870,37 +2651,23 @@ mi_cmd_trace_frame_collected (const char
 
 	output_register (frame, regnum, registers_format, 1);
       }
-
-    do_cleanups (list_cleanup);
   }
 
   /* Trace state variables.  */
   {
-    struct cleanup *list_cleanup;
-    int tvar;
-    char *tsvname;
-    int i;
-
-    list_cleanup = make_cleanup_ui_out_list_begin_end (uiout, "tvars");
+    ui_out_emit_list list_emitter (uiout, "tvars");
 
-    tsvname = NULL;
-    make_cleanup (free_current_contents, &tsvname);
-
-    for (i = 0; VEC_iterate (int, tinfo->tvars, i, tvar); i++)
+    for (int tvar : tinfo->tvars)
       {
-	struct cleanup *cleanup_child;
 	struct trace_state_variable *tsv;
 
 	tsv = find_trace_state_variable_by_number (tvar);
 
-	cleanup_child = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+	ui_out_emit_tuple tuple_emitter (uiout, NULL);
 
 	if (tsv != NULL)
 	  {
-	    tsvname = (char *) xrealloc (tsvname, strlen (tsv->name) + 2);
-	    tsvname[0] = '$';
-	    strcpy (tsvname + 1, tsv->name);
-	    uiout->field_string ("name", tsvname);
+	    uiout->field_fmt ("name", "$%s", tsv->name);
 
 	    tsv->value_known = target_get_trace_state_variable_value (tsv->number,
 								      &tsv->value);
@@ -2911,63 +2678,40 @@ mi_cmd_trace_frame_collected (const char
 	    uiout->field_skip ("name");
 	    uiout->field_skip ("current");
 	  }
-
-	do_cleanups (cleanup_child);
       }
-
-    do_cleanups (list_cleanup);
   }
 
   /* Memory.  */
   {
-    struct cleanup *list_cleanup;
-    VEC(mem_range_s) *available_memory = NULL;
-    struct mem_range *r;
-    int i;
+    std::vector<mem_range> available_memory;
 
     traceframe_available_memory (&available_memory, 0, ULONGEST_MAX);
-    make_cleanup (VEC_cleanup(mem_range_s), &available_memory);
 
-    list_cleanup = make_cleanup_ui_out_list_begin_end (uiout, "memory");
+    ui_out_emit_list list_emitter (uiout, "memory");
 
-    for (i = 0; VEC_iterate (mem_range_s, available_memory, i, r); i++)
+    for (const mem_range &r : available_memory)
       {
-	struct cleanup *cleanup_child;
-	gdb_byte *data;
 	struct gdbarch *gdbarch = target_gdbarch ();
 
-	cleanup_child = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+	ui_out_emit_tuple tuple_emitter (uiout, NULL);
 
-	uiout->field_core_addr ("address", gdbarch, r->start);
-	uiout->field_int ("length", r->length);
+	uiout->field_core_addr ("address", gdbarch, r.start);
+	uiout->field_int ("length", r.length);
 
-	data = (gdb_byte *) xmalloc (r->length);
-	make_cleanup (xfree, data);
+	gdb::byte_vector data (r.length);
 
 	if (memory_contents)
 	  {
-	    if (target_read_memory (r->start, data, r->length) == 0)
+	    if (target_read_memory (r.start, data.data (), r.length) == 0)
 	      {
-		int m;
-		char *data_str, *p;
-
-		data_str = (char *) xmalloc (r->length * 2 + 1);
-		make_cleanup (xfree, data_str);
-
-		for (m = 0, p = data_str; m < r->length; ++m, p += 2)
-		  sprintf (p, "%02x", data[m]);
-		uiout->field_string ("contents", data_str);
+		std::string data_str = bin2hex (data.data (), r.length);
+		uiout->field_string ("contents", data_str.c_str ());
 	      }
 	    else
 	      uiout->field_skip ("contents");
 	  }
-	do_cleanups (cleanup_child);
       }
-
-    do_cleanups (list_cleanup);
   }
-
-  do_cleanups (old_chain);
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-main.h ./gdb/mi/mi-main.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-main.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-main.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* MI Internal Functions for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-out.c ./gdb/mi/mi-out.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-out.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-out.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* MI Command Set - output generating routines.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions (a Red Hat company).
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-out.h ./gdb/mi/mi-out.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-out.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-out.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - MI output generating routines for GDB.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions (a Red Hat company).
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-parse.c ./gdb/mi/mi-parse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-parse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-parse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* MI Command Set - MI parser.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions (a Red Hat company).
 
@@ -119,7 +119,7 @@ mi_parse_argv (const char *args, struct 
       char *arg;
 
       /* Skip leading white space.  */
-      chp = skip_spaces_const (chp);
+      chp = skip_spaces (chp);
       /* Three possibilities: EOF, quoted string, or other text. */
       switch (*chp)
 	{
@@ -237,12 +237,11 @@ std::unique_ptr<struct mi_parse>
 mi_parse (const char *cmd, char **token)
 {
   const char *chp;
-  struct cleanup *cleanup;
 
   std::unique_ptr<struct mi_parse> parse (new struct mi_parse);
 
   /* Before starting, skip leading white space.  */
-  cmd = skip_spaces_const (cmd);
+  cmd = skip_spaces (cmd);
 
   /* Find/skip any token and then extract it.  */
   for (chp = cmd; *chp >= '0' && *chp <= '9'; chp++)
@@ -254,7 +253,7 @@ mi_parse (const char *cmd, char **token)
   /* This wasn't a real MI command.  Return it as a CLI_COMMAND.  */
   if (*chp != '-')
     {
-      chp = skip_spaces_const (chp);
+      chp = skip_spaces (chp);
       parse->command = xstrdup (chp);
       parse->op = CLI_COMMAND;
 
@@ -279,7 +278,7 @@ mi_parse (const char *cmd, char **token)
 		 _("Undefined MI command: %s"), parse->command);
 
   /* Skip white space following the command.  */
-  chp = skip_spaces_const (chp);
+  chp = skip_spaces (chp);
 
   /* Parse the --thread and --frame options, if present.  At present,
      some important commands, like '-break-*' are implemented by
@@ -347,27 +346,21 @@ mi_parse (const char *cmd, char **token)
 	}
       else if (strncmp (chp, "--language ", ls) == 0)
 	{
-	  char *lang_name;
-	  struct cleanup *old_chain;
-
 	  option = "--language";
 	  chp += ls;
-	  lang_name = extract_arg_const (&chp);
-	  old_chain = make_cleanup (xfree, lang_name);
+	  std::string lang_name = extract_arg (&chp);
 
-	  parse->language = language_enum (lang_name);
+	  parse->language = language_enum (lang_name.c_str ());
 	  if (parse->language == language_unknown
 	      || parse->language == language_auto)
-	    error (_("Invalid --language argument: %s"), lang_name);
-
-	  do_cleanups (old_chain);
+	    error (_("Invalid --language argument: %s"), lang_name.c_str ());
 	}
       else
 	break;
 
       if (*chp != '\0' && !isspace (*chp))
 	error (_("Invalid value for the '%s' option"), option);
-      chp = skip_spaces_const (chp);
+      chp = skip_spaces (chp);
     }
 
   /* For new argv commands, attempt to return the parsed argument
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-parse.h ./gdb/mi/mi-parse.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-parse.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-parse.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - MI Command Parser.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions (a Red Hat company).
 
    This file is part of GDB.
@@ -44,8 +44,7 @@ struct mi_parse
     mi_parse ();
     ~mi_parse ();
 
-    mi_parse (const mi_parse &) = delete;
-    mi_parse &operator= (const mi_parse &) = delete;
+    DISABLE_COPY_AND_ASSIGN (mi_parse);
 
     enum mi_command_type op;
     char *command;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-symbol-cmds.c ./gdb/mi/mi-symbol-cmds.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mi/mi-symbol-cmds.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mi/mi-symbol-cmds.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* MI Command Set - symbol commands.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -33,7 +33,6 @@ mi_cmd_symbol_list_lines (const char *co
   char *filename;
   struct symtab *s;
   int i;
-  struct cleanup *cleanup_stack, *cleanup_tuple;
   struct ui_out *uiout = current_uiout;
 
   if (argc != 1)
@@ -50,16 +49,13 @@ mi_cmd_symbol_list_lines (const char *co
      need to perform any other sorting.  */
 
   gdbarch = get_objfile_arch (SYMTAB_OBJFILE (s));
-  cleanup_stack = make_cleanup_ui_out_list_begin_end (uiout, "lines");
 
+  ui_out_emit_list list_emitter (uiout, "lines");
   if (SYMTAB_LINETABLE (s) != NULL && SYMTAB_LINETABLE (s)->nitems > 0)
     for (i = 0; i < SYMTAB_LINETABLE (s)->nitems; i++)
     {
-      cleanup_tuple = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+      ui_out_emit_tuple tuple_emitter (uiout, NULL);
       uiout->field_core_addr ("pc", gdbarch, SYMTAB_LINETABLE (s)->item[i].pc);
       uiout->field_int ("line", SYMTAB_LINETABLE (s)->item[i].line);
-      do_cleanups (cleanup_tuple);
     }
-
-  do_cleanups (cleanup_stack);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/microblaze-linux-tdep.c ./gdb/microblaze-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/microblaze-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/microblaze-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Xilinx MicroBlaze.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -119,8 +119,6 @@ static void
 microblaze_linux_init_abi (struct gdbarch_info info,
 			   struct gdbarch *gdbarch)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
   linux_init_abi (info, gdbarch);
 
   set_gdbarch_memory_remove_breakpoint (gdbarch,
@@ -135,9 +133,6 @@ microblaze_linux_init_abi (struct gdbarc
 				&microblaze_linux_sighandler_tramp_frame);
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_microblaze_linux_tdep;
-
 void
 _initialize_microblaze_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/microblaze-tdep.c ./gdb/microblaze-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/microblaze-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/microblaze-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Xilinx MicroBlaze.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -82,7 +82,7 @@ static const char *microblaze_register_n
 
 static unsigned int microblaze_debug_flag = 0;
 
-static void
+static void ATTRIBUTE_PRINTF (1, 2)
 microblaze_debug (const char *fmt, ...)
 { 
   if (microblaze_debug_flag)
@@ -703,7 +703,7 @@ microblaze_gdbarch_init (struct gdbarch_
     }
 
   /* Allocate space for the new architecture.  */
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
 
   set_gdbarch_long_double_bit (gdbarch, 128);
@@ -738,8 +738,6 @@ microblaze_gdbarch_init (struct gdbarch_
 
   set_gdbarch_frame_args_skip (gdbarch, 8);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_microblaze);
-
   set_gdbarch_write_pc (gdbarch, microblaze_write_pc);
 
   set_gdbarch_unwind_pc (gdbarch, microblaze_unwind_pc);
@@ -761,9 +759,6 @@ microblaze_gdbarch_init (struct gdbarch_
   return gdbarch;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_microblaze_tdep (void);
-
 void
 _initialize_microblaze_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/microblaze-tdep.h ./gdb/microblaze-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/microblaze-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/microblaze-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Xilinx MicroBlaze.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mingw-hdep.c ./gdb/mingw-hdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mingw-hdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mingw-hdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Host support routines for MinGW, for GDB, the GNU debugger.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/minidebug.c ./gdb/minidebug.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/minidebug.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/minidebug.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Read MiniDebugInfo data from an objfile.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -83,7 +83,6 @@ lzma_open (struct bfd *nbfd, void *open_
   gdb_byte footer[LZMA_STREAM_HEADER_SIZE];
   gdb_byte *indexdata;
   lzma_index *index;
-  int ret;
   uint64_t memlimit = UINT64_MAX;
   struct gdb_lzma_stream *lstream;
   size_t pos;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/minsyms.c ./gdb/minsyms.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/minsyms.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/minsyms.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GDB routines for manipulating the minimal symbol tables.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Support, using pieces from other GDB modules.
 
    This file is part of GDB.
@@ -51,6 +51,43 @@
 #include "language.h"
 #include "cli/cli-utils.h"
 #include "symbol.h"
+#include <algorithm>
+#include "safe-ctype.h"
+
+/* See minsyms.h.  */
+
+bool
+msymbol_is_function (struct objfile *objfile, minimal_symbol *minsym,
+		     CORE_ADDR *func_address_p)
+{
+  CORE_ADDR msym_addr = MSYMBOL_VALUE_ADDRESS (objfile, minsym);
+
+  switch (minsym->type)
+    {
+    case mst_slot_got_plt:
+    case mst_data:
+    case mst_bss:
+    case mst_abs:
+    case mst_file_data:
+    case mst_file_bss:
+      {
+	struct gdbarch *gdbarch = get_objfile_arch (objfile);
+	CORE_ADDR pc = gdbarch_convert_from_func_ptr_addr (gdbarch, msym_addr,
+							   &current_target);
+	if (pc != msym_addr)
+	  {
+	    if (func_address_p != NULL)
+	      *func_address_p = pc;
+	    return true;
+	  }
+	return false;
+      }
+    default:
+      if (func_address_p != NULL)
+	*func_address_p = msym_addr;
+      return true;
+    }
+}
 
 /* Accumulate the minimal symbols for each objfile in bunches of BUNCH_SIZE.
    At the end, copy them all into one newly allocated location on an objfile's
@@ -73,7 +110,7 @@ msymbol_hash_iw (const char *string)
 
   while (*string && *string != '(')
     {
-      string = skip_spaces_const (string);
+      string = skip_spaces (string);
       if (*string && *string != '(')
 	{
 	  hash = SYMBOL_HASH_NEXT (hash, *string);
@@ -114,15 +151,139 @@ add_minsym_to_hash_table (struct minimal
    TABLE.  */
 static void
 add_minsym_to_demangled_hash_table (struct minimal_symbol *sym,
-                                  struct minimal_symbol **table)
+				    struct objfile *objfile)
 {
   if (sym->demangled_hash_next == NULL)
     {
-      unsigned int hash = msymbol_hash_iw (MSYMBOL_SEARCH_NAME (sym))
-	% MINIMAL_SYMBOL_HASH_SIZE;
+      unsigned int hash = search_name_hash (MSYMBOL_LANGUAGE (sym),
+					    MSYMBOL_SEARCH_NAME (sym));
 
-      sym->demangled_hash_next = table[hash];
-      table[hash] = sym;
+      auto &vec = objfile->per_bfd->demangled_hash_languages;
+      auto it = std::lower_bound (vec.begin (), vec.end (),
+				  MSYMBOL_LANGUAGE (sym));
+      if (it == vec.end () || *it != MSYMBOL_LANGUAGE (sym))
+	vec.insert (it, MSYMBOL_LANGUAGE (sym));
+
+      struct minimal_symbol **table
+	= objfile->per_bfd->msymbol_demangled_hash;
+      unsigned int hash_index = hash % MINIMAL_SYMBOL_HASH_SIZE;
+      sym->demangled_hash_next = table[hash_index];
+      table[hash_index] = sym;
+    }
+}
+
+/* Worker object for lookup_minimal_symbol.  Stores temporary results
+   while walking the symbol tables.  */
+
+struct found_minimal_symbols
+{
+  /* External symbols are best.  */
+  bound_minimal_symbol external_symbol {};
+
+  /* File-local symbols are next best.  */
+  bound_minimal_symbol file_symbol {};
+
+  /* Symbols for shared library trampolines are next best.  */
+  bound_minimal_symbol trampoline_symbol {};
+
+  /* Called when a symbol name matches.  Check if the minsym is a
+     better type than what we had already found, and record it in one
+     of the members fields if so.  Returns true if we collected the
+     real symbol, in which case we can stop searching.  */
+  bool maybe_collect (const char *sfile, objfile *objf,
+		      minimal_symbol *msymbol);
+};
+
+/* See declaration above.  */
+
+bool
+found_minimal_symbols::maybe_collect (const char *sfile,
+				      struct objfile *objfile,
+				      minimal_symbol *msymbol)
+{
+  switch (MSYMBOL_TYPE (msymbol))
+    {
+    case mst_file_text:
+    case mst_file_data:
+    case mst_file_bss:
+      if (sfile == NULL
+	  || filename_cmp (msymbol->filename, sfile) == 0)
+	{
+	  file_symbol.minsym = msymbol;
+	  file_symbol.objfile = objfile;
+	}
+      break;
+
+    case mst_solib_trampoline:
+
+      /* If a trampoline symbol is found, we prefer to keep
+	 looking for the *real* symbol.  If the actual symbol
+	 is not found, then we'll use the trampoline
+	 entry.  */
+      if (trampoline_symbol.minsym == NULL)
+	{
+	  trampoline_symbol.minsym = msymbol;
+	  trampoline_symbol.objfile = objfile;
+	}
+      break;
+
+    case mst_unknown:
+    default:
+      external_symbol.minsym = msymbol;
+      external_symbol.objfile = objfile;
+      /* We have the real symbol.  No use looking further.  */
+      return true;
+    }
+
+  /* Keep looking.  */
+  return false;
+}
+
+/* Walk the mangled name hash table, and pass each symbol whose name
+   matches LOOKUP_NAME according to NAMECMP to FOUND.  */
+
+static void
+lookup_minimal_symbol_mangled (const char *lookup_name,
+			       const char *sfile,
+			       struct objfile *objfile,
+			       struct minimal_symbol **table,
+			       unsigned int hash,
+			       int (*namecmp) (const char *, const char *),
+			       found_minimal_symbols &found)
+{
+  for (minimal_symbol *msymbol = table[hash];
+       msymbol != NULL;
+       msymbol = msymbol->hash_next)
+    {
+      const char *symbol_name = MSYMBOL_LINKAGE_NAME (msymbol);
+
+      if (namecmp (symbol_name, lookup_name) == 0
+	  && found.maybe_collect (sfile, objfile, msymbol))
+	return;
+    }
+}
+
+/* Walk the demangled name hash table, and pass each symbol whose name
+   matches LOOKUP_NAME according to MATCHER to FOUND.  */
+
+static void
+lookup_minimal_symbol_demangled (const lookup_name_info &lookup_name,
+				 const char *sfile,
+				 struct objfile *objfile,
+				 struct minimal_symbol **table,
+				 unsigned int hash,
+				 symbol_name_matcher_ftype *matcher,
+				 found_minimal_symbols &found)
+{
+  for (minimal_symbol *msymbol = table[hash];
+       msymbol != NULL;
+       msymbol = msymbol->demangled_hash_next)
+    {
+      const char *symbol_name = MSYMBOL_SEARCH_NAME (msymbol);
+
+      if (matcher (symbol_name, lookup_name, NULL)
+	  && found.maybe_collect (sfile, objfile, msymbol))
+	return;
     }
 }
 
@@ -151,164 +312,116 @@ lookup_minimal_symbol (const char *name,
 		       struct objfile *objf)
 {
   struct objfile *objfile;
-  struct bound_minimal_symbol found_symbol = { NULL, NULL };
-  struct bound_minimal_symbol found_file_symbol = { NULL, NULL };
-  struct bound_minimal_symbol trampoline_symbol = { NULL, NULL };
+  found_minimal_symbols found;
 
-  unsigned int hash = msymbol_hash (name) % MINIMAL_SYMBOL_HASH_SIZE;
-  unsigned int dem_hash = msymbol_hash_iw (name) % MINIMAL_SYMBOL_HASH_SIZE;
+  unsigned int mangled_hash = msymbol_hash (name) % MINIMAL_SYMBOL_HASH_SIZE;
 
-  const char *modified_name = name;
+  auto *mangled_cmp
+    = (case_sensitivity == case_sensitive_on
+       ? strcmp
+       : strcasecmp);
 
   if (sfile != NULL)
     sfile = lbasename (sfile);
 
-  /* For C++, canonicalize the input name.  */
-  std::string modified_name_storage;
-  if (current_language->la_language == language_cplus)
-    {
-      std::string cname = cp_canonicalize_string (name);
-      if (!cname.empty ())
-	{
-	  std::swap (modified_name_storage, cname);
-	  modified_name = modified_name_storage.c_str ();
-	}
-    }
+  lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
 
   for (objfile = object_files;
-       objfile != NULL && found_symbol.minsym == NULL;
+       objfile != NULL && found.external_symbol.minsym == NULL;
        objfile = objfile->next)
     {
-      struct minimal_symbol *msymbol;
-
       if (objf == NULL || objf == objfile
 	  || objf == objfile->separate_debug_objfile_backlink)
 	{
+	  if (symbol_lookup_debug)
+	    {
+	      fprintf_unfiltered (gdb_stdlog,
+				  "lookup_minimal_symbol (%s, %s, %s)\n",
+				  name, sfile != NULL ? sfile : "NULL",
+				  objfile_debug_name (objfile));
+	    }
+
 	  /* Do two passes: the first over the ordinary hash table,
 	     and the second over the demangled hash table.  */
-        int pass;
+	  lookup_minimal_symbol_mangled (name, sfile, objfile,
+					 objfile->per_bfd->msymbol_hash,
+					 mangled_hash, mangled_cmp, found);
 
-	if (symbol_lookup_debug)
-	  {
-	    fprintf_unfiltered (gdb_stdlog,
-				"lookup_minimal_symbol (%s, %s, %s)\n",
-				name, sfile != NULL ? sfile : "NULL",
-				objfile_debug_name (objfile));
-	  }
-
-        for (pass = 1; pass <= 2 && found_symbol.minsym == NULL; pass++)
+	  /* If not found, try the demangled hash table.  */
+	  if (found.external_symbol.minsym == NULL)
 	    {
-            /* Select hash list according to pass.  */
-            if (pass == 1)
-              msymbol = objfile->per_bfd->msymbol_hash[hash];
-            else
-              msymbol = objfile->per_bfd->msymbol_demangled_hash[dem_hash];
-
-            while (msymbol != NULL && found_symbol.minsym == NULL)
+	      /* Once for each language in the demangled hash names
+		 table (usually just zero or one languages).  */
+	      for (auto lang : objfile->per_bfd->demangled_hash_languages)
 		{
-		  int match;
-
-		  if (pass == 1)
-		    {
-		      int (*cmp) (const char *, const char *);
+		  unsigned int hash
+		    = (lookup_name.search_name_hash (lang)
+		       % MINIMAL_SYMBOL_HASH_SIZE);
+
+		  symbol_name_matcher_ftype *match
+		    = language_get_symbol_name_matcher (language_def (lang),
+							lookup_name);
+		  struct minimal_symbol **msymbol_demangled_hash
+		    = objfile->per_bfd->msymbol_demangled_hash;
+
+		  lookup_minimal_symbol_demangled (lookup_name, sfile, objfile,
+						   msymbol_demangled_hash,
+						   hash, match, found);
 
-		      cmp = (case_sensitivity == case_sensitive_on
-		             ? strcmp : strcasecmp);
-		      match = cmp (MSYMBOL_LINKAGE_NAME (msymbol),
-				   modified_name) == 0;
-		    }
-		  else
-		    {
-		      /* The function respects CASE_SENSITIVITY.  */
-		      match = MSYMBOL_MATCHES_SEARCH_NAME (msymbol,
-							  modified_name);
-		    }
-
-		  if (match)
-		    {
-                    switch (MSYMBOL_TYPE (msymbol))
-                      {
-                      case mst_file_text:
-                      case mst_file_data:
-                      case mst_file_bss:
-                        if (sfile == NULL
-			    || filename_cmp (msymbol->filename, sfile) == 0)
-			  {
-			    found_file_symbol.minsym = msymbol;
-			    found_file_symbol.objfile = objfile;
-			  }
-                        break;
-
-                      case mst_solib_trampoline:
-
-                        /* If a trampoline symbol is found, we prefer to
-                           keep looking for the *real* symbol.  If the
-                           actual symbol is not found, then we'll use the
-                           trampoline entry.  */
-                        if (trampoline_symbol.minsym == NULL)
-			  {
-			    trampoline_symbol.minsym = msymbol;
-			    trampoline_symbol.objfile = objfile;
-			  }
-                        break;
-
-                      case mst_unknown:
-                      default:
-                        found_symbol.minsym = msymbol;
-			found_symbol.objfile = objfile;
-                        break;
-                      }
-		    }
-
-                /* Find the next symbol on the hash chain.  */
-                if (pass == 1)
-                  msymbol = msymbol->hash_next;
-                else
-                  msymbol = msymbol->demangled_hash_next;
+		  if (found.external_symbol.minsym != NULL)
+		    break;
 		}
 	    }
 	}
     }
 
   /* External symbols are best.  */
-  if (found_symbol.minsym != NULL)
+  if (found.external_symbol.minsym != NULL)
     {
       if (symbol_lookup_debug)
 	{
+	  minimal_symbol *minsym = found.external_symbol.minsym;
+
 	  fprintf_unfiltered (gdb_stdlog,
-			      "lookup_minimal_symbol (...) = %s"
-			      " (external)\n",
-			      host_address_to_string (found_symbol.minsym));
+			      "lookup_minimal_symbol (...) = %s (external)\n",
+			      host_address_to_string (minsym));
 	}
-      return found_symbol;
+      return found.external_symbol;
     }
 
   /* File-local symbols are next best.  */
-  if (found_file_symbol.minsym != NULL)
+  if (found.file_symbol.minsym != NULL)
     {
       if (symbol_lookup_debug)
 	{
+	  minimal_symbol *minsym = found.file_symbol.minsym;
+
 	  fprintf_unfiltered (gdb_stdlog,
-			      "lookup_minimal_symbol (...) = %s"
-			      " (file-local)\n",
-			      host_address_to_string
-			        (found_file_symbol.minsym));
+			      "lookup_minimal_symbol (...) = %s (file-local)\n",
+			      host_address_to_string (minsym));
 	}
-      return found_file_symbol;
+      return found.file_symbol;
     }
 
   /* Symbols for shared library trampolines are next best.  */
-  if (symbol_lookup_debug)
+  if (found.trampoline_symbol.minsym != NULL)
     {
-      fprintf_unfiltered (gdb_stdlog,
-			  "lookup_minimal_symbol (...) = %s%s\n",
-			  trampoline_symbol.minsym != NULL
-			  ? host_address_to_string (trampoline_symbol.minsym)
-			  : "NULL",
-			  trampoline_symbol.minsym != NULL
-			  ? " (trampoline)" : "");
+      if (symbol_lookup_debug)
+	{
+	  minimal_symbol *minsym = found.trampoline_symbol.minsym;
+
+	  fprintf_unfiltered (gdb_stdlog,
+			      "lookup_minimal_symbol (...) = %s (trampoline)\n",
+			      host_address_to_string (minsym));
+	}
+
+      return found.trampoline_symbol;
     }
-  return trampoline_symbol;
+
+  /* Not found.  */
+  if (symbol_lookup_debug)
+    fprintf_unfiltered (gdb_stdlog, "lookup_minimal_symbol (...) = NULL\n");
+  return {};
 }
 
 /* See minsyms.h.  */
@@ -337,34 +450,47 @@ find_minimal_symbol_address (const char 
 /* See minsyms.h.  */
 
 void
-iterate_over_minimal_symbols (struct objfile *objf, const char *name,
+iterate_over_minimal_symbols (struct objfile *objf,
+			      const lookup_name_info &lookup_name,
 			      void (*callback) (struct minimal_symbol *,
 						void *),
 			      void *user_data)
 {
-  unsigned int hash;
-  struct minimal_symbol *iter;
-  int (*cmp) (const char *, const char *);
 
   /* The first pass is over the ordinary hash table.  */
-  hash = msymbol_hash (name) % MINIMAL_SYMBOL_HASH_SIZE;
-  iter = objf->per_bfd->msymbol_hash[hash];
-  cmp = (case_sensitivity == case_sensitive_on ? strcmp : strcasecmp);
-  while (iter)
-    {
-      if (cmp (MSYMBOL_LINKAGE_NAME (iter), name) == 0)
-	(*callback) (iter, user_data);
-      iter = iter->hash_next;
-    }
-
-  /* The second pass is over the demangled table.  */
-  hash = msymbol_hash_iw (name) % MINIMAL_SYMBOL_HASH_SIZE;
-  iter = objf->per_bfd->msymbol_demangled_hash[hash];
-  while (iter)
-    {
-      if (MSYMBOL_MATCHES_SEARCH_NAME (iter, name))
-	(*callback) (iter, user_data);
-      iter = iter->demangled_hash_next;
+    {
+      const char *name = lookup_name.name ().c_str ();
+      unsigned int hash = msymbol_hash (name) % MINIMAL_SYMBOL_HASH_SIZE;
+      auto *mangled_cmp
+	= (case_sensitivity == case_sensitive_on
+	   ? strcmp
+	   : strcasecmp);
+
+      for (minimal_symbol *iter = objf->per_bfd->msymbol_hash[hash];
+	   iter != NULL;
+	   iter = iter->hash_next)
+	{
+	  if (mangled_cmp (MSYMBOL_LINKAGE_NAME (iter), name) == 0)
+	    (*callback) (iter, user_data);
+	}
+    }
+
+  /* The second pass is over the demangled table.  Once for each
+     language in the demangled hash names table (usually just zero or
+     one).  */
+  for (auto lang : objf->per_bfd->demangled_hash_languages)
+    {
+      const language_defn *lang_def = language_def (lang);
+      symbol_name_matcher_ftype *name_match
+	= language_get_symbol_name_matcher (lang_def, lookup_name);
+
+      unsigned int hash
+	= lookup_name.search_name_hash (lang) % MINIMAL_SYMBOL_HASH_SIZE;
+      for (minimal_symbol *iter = objf->per_bfd->msymbol_demangled_hash[hash];
+	   iter != NULL;
+	   iter = iter->demangled_hash_next)
+	if (name_match (MSYMBOL_SEARCH_NAME (iter), lookup_name, NULL))
+	  (*callback) (iter, user_data);
     }
 }
 
@@ -1170,8 +1296,7 @@ build_minimal_symbol_hash_tables (struct
 
       msym->demangled_hash_next = 0;
       if (MSYMBOL_SEARCH_NAME (msym) != MSYMBOL_LINKAGE_NAME (msym))
-	add_minsym_to_demangled_hash_table (msym,
-                                            objfile->per_bfd->msymbol_demangled_hash);
+	add_minsym_to_demangled_hash_table (msym, objfile);
     }
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/minsyms.h ./gdb/minsyms.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/minsyms.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/minsyms.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Minimal symbol table definitions for GDB.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,6 +20,8 @@
 #ifndef MINSYMS_H
 #define MINSYMS_H
 
+struct type;
+
 /* Several lookup functions return both a minimal symbol and the
    objfile in which it is found.  This structure is used in these
    cases.  */
@@ -157,6 +159,15 @@ void terminate_minimal_symbol_table (str
 
 
 
+/* Return whether MSYMBOL is a function/method.  If FUNC_ADDRESS_P is
+   non-NULL, and the MSYMBOL is a function, then *FUNC_ADDRESS_P is
+   set to the function's address, already resolved if MINSYM points to
+   a function descriptor.  */
+
+bool msymbol_is_function (struct objfile *objfile,
+			  minimal_symbol *minsym,
+			  CORE_ADDR *func_address_p = NULL);
+
 /* Compute a hash code for the string argument.  */
 
 unsigned int msymbol_hash (const char *);
@@ -171,7 +182,7 @@ unsigned int msymbol_hash_iw (const char
    requirements.  */
 
 #define SYMBOL_HASH_NEXT(hash, c)			\
-  ((hash) * 67 + tolower ((unsigned char) (c)) - 113)
+  ((hash) * 67 + TOLOWER ((unsigned char) (c)) - 113)
 
 
 
@@ -258,7 +269,7 @@ struct bound_minimal_symbol lookup_minim
    USER_DATA as arguments.  */
 
 void iterate_over_minimal_symbols (struct objfile *objf,
-				   const char *name,
+				   const lookup_name_info &name,
 				   void (*callback) (struct minimal_symbol *,
 						     void *),
 				   void *user_data);
@@ -271,4 +282,11 @@ void iterate_over_minimal_symbols (struc
 
 CORE_ADDR minimal_symbol_upper_bound (struct bound_minimal_symbol minsym);
 
+/* Return the type of MSYMBOL, a minimal symbol of OBJFILE.  If
+   ADDRESS_P is not NULL, set it to the MSYMBOL's resolved
+   address.  */
+
+type *find_minsym_type_and_address (minimal_symbol *msymbol, objfile *objf,
+				    CORE_ADDR *address_p);
+
 #endif /* MINSYMS_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips64-obsd-nat.c ./gdb/mips64-obsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips64-obsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mips64-obsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for OpenBSD/mips64.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -108,10 +108,6 @@ mips64obsd_store_inferior_registers (str
   if (ptrace (PT_SETREGS, pid, (PTRACE_TYPE_ARG3) &regs, 0) == -1)
     perror_with_name (_("Couldn't write registers"));
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_mips64obsd_nat (void);
 
 void
 _initialize_mips64obsd_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips64-obsd-tdep.c ./gdb/mips64-obsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips64-obsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mips64-obsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for OpenBSD/mips64.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -158,10 +158,6 @@ mips64obsd_init_abi (struct gdbarch_info
     (gdbarch, svr4_lp64_fetch_link_map_offsets);
 }
 
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_mips64obsd_tdep (void);
-
 void
 _initialize_mips64obsd_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-fbsd-nat.c ./gdb/mips-fbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-fbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mips-fbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for FreeBSD/mips.
 
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -31,13 +31,22 @@
 #include "mips-fbsd-tdep.h"
 #include "inf-ptrace.h"
 
-/* Determine if PT_GETREGS fetches this register.  */
+/* Determine if PT_GETREGS fetches REGNUM.  */
 
 static bool
 getregs_supplies (struct gdbarch *gdbarch, int regnum)
 {
   return (regnum >= MIPS_ZERO_REGNUM
-	  && regnum <= gdbarch_pc_regnum (gdbarch));
+	  && regnum <= mips_regnum (gdbarch)->pc);
+}
+
+/* Determine if PT_GETFPREGS fetches REGNUM.  */
+
+static bool
+getfpregs_supplies (struct gdbarch *gdbarch, int regnum)
+{
+  return (regnum >= mips_regnum (gdbarch)->fp0
+	  && regnum <= mips_regnum (gdbarch)->fp_implementation_revision);
 }
 
 /* Fetch register REGNUM from the inferior.  If REGNUM is -1, do this
@@ -49,7 +58,7 @@ mips_fbsd_fetch_inferior_registers (stru
 {
   pid_t pid = get_ptrace_pid (regcache_get_ptid (regcache));
 
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   if (regnum == -1 || getregs_supplies (gdbarch, regnum))
     {
       struct reg regs;
@@ -58,12 +67,9 @@ mips_fbsd_fetch_inferior_registers (stru
 	perror_with_name (_("Couldn't get registers"));
 
       mips_fbsd_supply_gregs (regcache, regnum, &regs, sizeof (register_t));
-      if (regnum != -1)
-	return;
     }
 
-  if (regnum == -1
-      || regnum >= gdbarch_fp0_regnum (get_regcache_arch (regcache)))
+  if (regnum == -1 || getfpregs_supplies (gdbarch, regnum))
     {
       struct fpreg fpregs;
 
@@ -84,7 +90,7 @@ mips_fbsd_store_inferior_registers (stru
 {
   pid_t pid = get_ptrace_pid (regcache_get_ptid (regcache));
 
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   if (regnum == -1 || getregs_supplies (gdbarch, regnum))
     {
       struct reg regs;
@@ -97,13 +103,9 @@ mips_fbsd_store_inferior_registers (stru
 
       if (ptrace (PT_SETREGS, pid, (PTRACE_TYPE_ARG3) &regs, 0) == -1)
 	perror_with_name (_("Couldn't write registers"));
-
-      if (regnum != -1)
-	return;
     }
 
-  if (regnum == -1
-      || regnum >= gdbarch_fp0_regnum (get_regcache_arch (regcache)))
+  if (regnum == -1 || getfpregs_supplies (gdbarch, regnum))
     {
       struct fpreg fpregs;
 
@@ -117,10 +119,6 @@ mips_fbsd_store_inferior_registers (stru
 	perror_with_name (_("Couldn't write floating point status"));
     }
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_mips_fbsd_nat (void);
 
 void
 _initialize_mips_fbsd_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-fbsd-tdep.c ./gdb/mips-fbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-fbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mips-fbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for FreeBSD/mips.
 
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -29,11 +29,6 @@
 
 #include "solib-svr4.h"
 
-/* Shorthand for some register numbers used below.  */
-#define MIPS_PC_REGNUM  MIPS_EMBED_PC_REGNUM
-#define MIPS_FP0_REGNUM MIPS_EMBED_FP0_REGNUM
-#define MIPS_FSR_REGNUM MIPS_EMBED_FP0_REGNUM + 32
-
 /* Core file support. */
 
 /* Number of registers in `struct reg' from <machine/reg.h>.  The
@@ -44,60 +39,28 @@
 
 /* Number of registers in `struct fpreg' from <machine/reg.h>.  The
    first 32 hold floating point registers.  33 holds the FSR.  The
-   34th is a dummy for padding.  */
+   34th holds FIR on FreeBSD 12.0 and newer kernels.  On older kernels
+   it was a zero-filled dummy for padding.  */
 #define MIPS_FBSD_NUM_FPREGS	34
 
-/* Supply a single register.  If the source register size matches the
-   size the regcache expects, this can use regcache_raw_supply().  If
-   they are different, this copies the source register into a buffer
-   that can be passed to regcache_raw_supply().  */
+/* Supply a single register.  The register size might not match, so use
+   regcache->raw_supply_integer ().  */
 
 static void
 mips_fbsd_supply_reg (struct regcache *regcache, int regnum, const void *addr,
 		      size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
-
-  if (register_size (gdbarch, regnum) == len)
-    regcache_raw_supply (regcache, regnum, addr);
-  else
-    {
-      enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-      gdb_byte buf[MAX_REGISTER_SIZE];
-      LONGEST val;
-
-      val = extract_signed_integer ((const gdb_byte *) addr, len, byte_order);
-      store_signed_integer (buf, register_size (gdbarch, regnum), byte_order,
-			    val);
-      regcache_raw_supply (regcache, regnum, buf);
-    }
+  regcache->raw_supply_integer (regnum, (const gdb_byte *) addr, len, true);
 }
 
-/* Collect a single register.  If the destination register size
-   matches the size the regcache expects, this can use
-   regcache_raw_supply().  If they are different, this fetches the
-   register via regcache_raw_supply() into a buffer and then copies it
-   into the final destination.  */
+/* Collect a single register.  The register size might not match, so use
+   regcache->raw_collect_integer ().  */
 
 static void
 mips_fbsd_collect_reg (const struct regcache *regcache, int regnum, void *addr,
 		       size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
-
-  if (register_size (gdbarch, regnum) == len)
-    regcache_raw_collect (regcache, regnum, addr);
-  else
-    {
-      enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-      gdb_byte buf[MAX_REGISTER_SIZE];
-      LONGEST val;
-
-      regcache_raw_collect (regcache, regnum, buf);
-      val = extract_signed_integer (buf, register_size (gdbarch, regnum),
-				    byte_order);
-      store_signed_integer ((gdb_byte *) addr, len, byte_order, val);
-    }
+  regcache->raw_collect_integer (regnum, (gdb_byte *) addr, len, true);
 }
 
 /* Supply the floating-point registers stored in FPREGS to REGCACHE.
@@ -108,13 +71,25 @@ void
 mips_fbsd_supply_fpregs (struct regcache *regcache, int regnum,
 			 const void *fpregs, size_t regsize)
 {
+  struct gdbarch *gdbarch = regcache->arch ();
   const gdb_byte *regs = (const gdb_byte *) fpregs;
-  int i;
+  int i, fp0num;
 
-  for (i = MIPS_FP0_REGNUM; i <= MIPS_FSR_REGNUM; i++)
-    if (regnum == i || regnum == -1)
-      mips_fbsd_supply_reg (regcache, i,
-			    regs + (i - MIPS_FP0_REGNUM) * regsize, regsize);
+  fp0num = mips_regnum (gdbarch)->fp0;
+  for (i = 0; i <= 32; i++)
+    if (regnum == fp0num + i || regnum == -1)
+      mips_fbsd_supply_reg (regcache, fp0num + i,
+			    regs + i * regsize, regsize);
+  if (regnum == mips_regnum (gdbarch)->fp_control_status || regnum == -1)
+    mips_fbsd_supply_reg (regcache, mips_regnum (gdbarch)->fp_control_status,
+			  regs + 32 * regsize, regsize);
+  if ((regnum == mips_regnum (gdbarch)->fp_implementation_revision
+       || regnum == -1)
+      && extract_unsigned_integer (regs + 33 * regsize, regsize,
+				   gdbarch_byte_order (gdbarch)) != 0)
+    mips_fbsd_supply_reg (regcache,
+			  mips_regnum (gdbarch)->fp_implementation_revision,
+			  regs + 33 * regsize, regsize);
 }
 
 /* Supply the general-purpose registers stored in GREGS to REGCACHE.
@@ -125,10 +100,11 @@ void
 mips_fbsd_supply_gregs (struct regcache *regcache, int regnum,
 			const void *gregs, size_t regsize)
 {
+  struct gdbarch *gdbarch = regcache->arch ();
   const gdb_byte *regs = (const gdb_byte *) gregs;
   int i;
 
-  for (i = 0; i <= MIPS_PC_REGNUM; i++)
+  for (i = 0; i <= mips_regnum (gdbarch)->pc; i++)
     if (regnum == i || regnum == -1)
       mips_fbsd_supply_reg (regcache, i, regs + i * regsize, regsize);
 }
@@ -141,13 +117,23 @@ void
 mips_fbsd_collect_fpregs (const struct regcache *regcache, int regnum,
 			  void *fpregs, size_t regsize)
 {
+  struct gdbarch *gdbarch = regcache->arch ();
   gdb_byte *regs = (gdb_byte *) fpregs;
-  int i;
+  int i, fp0num;
 
-  for (i = MIPS_FP0_REGNUM; i <= MIPS_FSR_REGNUM; i++)
-    if (regnum == i || regnum == -1)
-      mips_fbsd_collect_reg (regcache, i,
-			     regs + (i - MIPS_FP0_REGNUM) * regsize, regsize);
+  fp0num = mips_regnum (gdbarch)->fp0;
+  for (i = 0; i < 32; i++)
+    if (regnum == fp0num + i || regnum == -1)
+      mips_fbsd_collect_reg (regcache, fp0num + i,
+			     regs + i * regsize, regsize);
+  if (regnum == mips_regnum (gdbarch)->fp_control_status || regnum == -1)
+    mips_fbsd_collect_reg (regcache, mips_regnum (gdbarch)->fp_control_status,
+			   regs + 32 * regsize, regsize);
+  if (regnum == mips_regnum (gdbarch)->fp_implementation_revision
+      || regnum == -1)
+    mips_fbsd_collect_reg (regcache,
+			   mips_regnum (gdbarch)->fp_implementation_revision,
+			   regs + 33 * regsize, regsize);
 }
 
 /* Collect the general-purpose registers from REGCACHE and store them
@@ -158,10 +144,11 @@ void
 mips_fbsd_collect_gregs (const struct regcache *regcache, int regnum,
 			 void *gregs, size_t regsize)
 {
+  struct gdbarch *gdbarch = regcache->arch ();
   gdb_byte *regs = (gdb_byte *) gregs;
   int i;
 
-  for (i = 0; i <= MIPS_PC_REGNUM; i++)
+  for (i = 0; i <= mips_regnum (gdbarch)->pc; i++)
     if (regnum == i || regnum == -1)
       mips_fbsd_collect_reg (regcache, i, regs + i * regsize, regsize);
 }
@@ -175,7 +162,7 @@ mips_fbsd_supply_fpregset (const struct 
 			   struct regcache *regcache,
 			   int regnum, const void *fpregs, size_t len)
 {
-  size_t regsize = mips_abi_regsize (get_regcache_arch (regcache));
+  size_t regsize = mips_abi_regsize (regcache->arch ());
 
   gdb_assert (len >= MIPS_FBSD_NUM_FPREGS * regsize);
 
@@ -192,7 +179,7 @@ mips_fbsd_collect_fpregset (const struct
 			    const struct regcache *regcache,
 			    int regnum, void *fpregs, size_t len)
 {
-  size_t regsize = mips_abi_regsize (get_regcache_arch (regcache));
+  size_t regsize = mips_abi_regsize (regcache->arch ());
 
   gdb_assert (len >= MIPS_FBSD_NUM_FPREGS * regsize);
 
@@ -208,7 +195,7 @@ mips_fbsd_supply_gregset (const struct r
 			  struct regcache *regcache, int regnum,
 			  const void *gregs, size_t len)
 {
-  size_t regsize = mips_abi_regsize (get_regcache_arch (regcache));
+  size_t regsize = mips_abi_regsize (regcache->arch ());
 
   gdb_assert (len >= MIPS_FBSD_NUM_GREGS * regsize);
 
@@ -225,7 +212,7 @@ mips_fbsd_collect_gregset (const struct 
 			   const struct regcache *regcache,
 			   int regnum, void *gregs, size_t len)
 {
-  size_t regsize = mips_abi_regsize (get_regcache_arch (regcache));
+  size_t regsize = mips_abi_regsize (regcache->arch ());
 
   gdb_assert (len >= MIPS_FBSD_NUM_GREGS * regsize);
 
@@ -439,6 +426,23 @@ mips64_fbsd_sigframe_init (const struct 
   trad_frame_set_id (cache, frame_id_build (sp, func));
 }
 
+#define MIPS_INST_ADDIU_A0_SP_N32 (0x27a40000 \
+				   + N64_SIGFRAME_UCONTEXT_OFFSET)
+
+static const struct tramp_frame mipsn32_fbsd_sigframe =
+{
+  SIGTRAMP_FRAME,
+  MIPS_INSN32_SIZE,
+  {
+    { MIPS_INST_ADDIU_A0_SP_N32, -1 },	/* addiu   a0, sp, SIGF_UC */
+    { MIPS_INST_LI_V0_SIGRETURN, -1 },	/* li      v0, SYS_sigreturn */
+    { MIPS_INST_SYSCALL, -1 },		/* syscall */
+    { MIPS_INST_BREAK, -1 },		/* break */
+    { TRAMP_SENTINEL_INSN, -1 }
+  },
+  mips64_fbsd_sigframe_init
+};
+
 #define MIPS_INST_DADDIU_A0_SP_N64 (0x67a40000 \
 				    + N64_SIGFRAME_UCONTEXT_OFFSET)
 
@@ -532,6 +536,7 @@ mips_fbsd_init_abi (struct gdbarch_info 
 	tramp_frame_prepend_unwinder (gdbarch, &mips_fbsd_sigframe);
 	break;
       case MIPS_ABI_N32:
+	tramp_frame_prepend_unwinder (gdbarch, &mipsn32_fbsd_sigframe);
 	break;
       case MIPS_ABI_N64:
 	tramp_frame_prepend_unwinder (gdbarch, &mips64_fbsd_sigframe);
@@ -547,10 +552,6 @@ mips_fbsd_init_abi (struct gdbarch_info 
 	       mips_fbsd_ilp32_fetch_link_map_offsets :
 	       mips_fbsd_lp64_fetch_link_map_offsets));
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_mips_fbsd_tdep (void);
 
 void
 _initialize_mips_fbsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-fbsd-tdep.h ./gdb/mips-fbsd-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-fbsd-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mips-fbsd-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common target dependent code for GDB on MIPS systems running FreeBSD.
 
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-linux-nat.c ./gdb/mips-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mips-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for GNU/Linux on MIPS processors.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -38,11 +38,6 @@
 
 #include "nat/mips-linux-watch.h"
 
-#include "features/mips-linux.c"
-#include "features/mips-dsp-linux.c"
-#include "features/mips64-linux.c"
-#include "features/mips64-dsp-linux.c"
-
 #ifndef PTRACE_GET_THREAD_AREA
 #define PTRACE_GET_THREAD_AREA 25
 #endif
@@ -172,7 +167,7 @@ ps_get_thread_area (struct ps_prochandle
 void
 supply_gregset (struct regcache *regcache, const gdb_gregset_t *gregsetp)
 {
-  if (mips_isa_regsize (get_regcache_arch (regcache)) == 4)
+  if (mips_isa_regsize (regcache->arch ()) == 4)
     mips_supply_gregset (regcache, (const mips_elf_gregset_t *) gregsetp);
   else
     mips64_supply_gregset (regcache, (const mips64_elf_gregset_t *) gregsetp);
@@ -182,7 +177,7 @@ void
 fill_gregset (const struct regcache *regcache,
 	      gdb_gregset_t *gregsetp, int regno)
 {
-  if (mips_isa_regsize (get_regcache_arch (regcache)) == 4)
+  if (mips_isa_regsize (regcache->arch ()) == 4)
     mips_fill_gregset (regcache, (mips_elf_gregset_t *) gregsetp, regno);
   else
     mips64_fill_gregset (regcache, (mips64_elf_gregset_t *) gregsetp, regno);
@@ -191,7 +186,7 @@ fill_gregset (const struct regcache *reg
 void
 supply_fpregset (struct regcache *regcache, const gdb_fpregset_t *fpregsetp)
 {
-  if (mips_isa_regsize (get_regcache_arch (regcache)) == 4)
+  if (mips_isa_regsize (regcache->arch ()) == 4)
     mips_supply_fpregset (regcache, (const mips_elf_fpregset_t *) fpregsetp);
   else
     mips64_supply_fpregset (regcache,
@@ -202,7 +197,7 @@ void
 fill_fpregset (const struct regcache *regcache,
 	       gdb_fpregset_t *fpregsetp, int regno)
 {
-  if (mips_isa_regsize (get_regcache_arch (regcache)) == 4)
+  if (mips_isa_regsize (regcache->arch ()) == 4)
     mips_fill_fpregset (regcache, (mips_elf_fpregset_t *) fpregsetp, regno);
   else
     mips64_fill_fpregset (regcache,
@@ -217,7 +212,7 @@ static void
 mips64_linux_regsets_fetch_registers (struct target_ops *ops,
 				      struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int is_fp, is_dsp;
   int have_dsp;
   int regi;
@@ -303,7 +298,7 @@ static void
 mips64_linux_regsets_store_registers (struct target_ops *ops,
 				      struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int is_fp, is_dsp;
   int have_dsp;
   int regi;
@@ -761,8 +756,6 @@ mips_linux_close (struct target_ops *sel
     super_close (self);
 }
 
-void _initialize_mips_linux_nat (void);
-
 void
 _initialize_mips_linux_nat (void)
 {
@@ -803,10 +796,4 @@ triggers a breakpoint or watchpoint."),
 
   linux_nat_add_target (t);
   linux_nat_set_new_thread (t, mips_linux_new_thread);
-
-  /* Initialize the standard target descriptions.  */
-  initialize_tdesc_mips_linux ();
-  initialize_tdesc_mips_dsp_linux ();
-  initialize_tdesc_mips64_linux ();
-  initialize_tdesc_mips64_dsp_linux ();
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-linux-tdep.c ./gdb/mips-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mips-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux on MIPS processors.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -40,6 +40,11 @@
 #include "xml-syscall.h"
 #include "gdb_signals.h"
 
+#include "features/mips-linux.c"
+#include "features/mips-dsp-linux.c"
+#include "features/mips64-linux.c"
+#include "features/mips64-dsp-linux.c"
+
 static struct target_so_ops mips_svr4_so_ops;
 
 /* This enum represents the signals' numbers on the MIPS
@@ -116,13 +121,7 @@ mips_linux_get_longjmp_target (struct fr
 static void
 supply_32bit_reg (struct regcache *regcache, int regnum, const void *addr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  gdb_byte buf[MAX_REGISTER_SIZE];
-  store_signed_integer (buf, register_size (gdbarch, regnum), byte_order,
-			extract_signed_integer ((const gdb_byte *) addr, 4,
-						byte_order));
-  regcache_raw_supply (regcache, regnum, buf);
+  regcache->raw_supply_integer (regnum, (const gdb_byte *) addr, 4, true);
 }
 
 /* Unpack an elf_gregset_t into GDB's register cache.  */
@@ -133,10 +132,7 @@ mips_supply_gregset (struct regcache *re
 {
   int regi;
   const mips_elf_greg_t *regp = *gregsetp;
-  char zerobuf[MAX_REGISTER_SIZE];
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
-
-  memset (zerobuf, 0, MAX_REGISTER_SIZE);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   for (regi = EF_REG0 + 1; regi <= EF_REG31; regi++)
     supply_32bit_reg (regcache, regi - EF_REG0, regp + regi);
@@ -156,7 +152,7 @@ mips_supply_gregset (struct regcache *re
 		    regp + EF_CP0_CAUSE);
 
   /* Fill the inaccessible zero register with zero.  */
-  regcache_raw_supply (regcache, MIPS_ZERO_REGNUM, zerobuf);
+  regcache->raw_supply_zeroed (MIPS_ZERO_REGNUM);
 }
 
 static void
@@ -175,7 +171,7 @@ void
 mips_fill_gregset (const struct regcache *regcache,
 		   mips_elf_gregset_t *gregsetp, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int regaddr, regi;
   mips_elf_greg_t *regp = *gregsetp;
   void *dst;
@@ -243,11 +239,8 @@ void
 mips_supply_fpregset (struct regcache *regcache,
 		      const mips_elf_fpregset_t *fpregsetp)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int regi;
-  char zerobuf[MAX_REGISTER_SIZE];
-
-  memset (zerobuf, 0, MAX_REGISTER_SIZE);
 
   for (regi = 0; regi < 32; regi++)
     regcache_raw_supply (regcache,
@@ -259,9 +252,8 @@ mips_supply_fpregset (struct regcache *r
 		       *fpregsetp + 32);
 
   /* FIXME: how can we supply FCRIR?  The ABI doesn't tell us.  */
-  regcache_raw_supply (regcache,
-		       mips_regnum (gdbarch)->fp_implementation_revision,
-		       zerobuf);
+  regcache->raw_supply_zeroed
+    (mips_regnum (gdbarch)->fp_implementation_revision);
 }
 
 static void
@@ -281,7 +273,7 @@ void
 mips_fill_fpregset (const struct regcache *regcache,
 		    mips_elf_fpregset_t *fpregsetp, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   char *to;
 
   if ((regno >= gdbarch_fp0_regnum (gdbarch))
@@ -363,7 +355,7 @@ static void
 supply_64bit_reg (struct regcache *regcache, int regnum,
 		  const gdb_byte *buf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG
       && register_size (gdbarch, regnum) == 4)
     regcache_raw_supply (regcache, regnum, buf + 4);
@@ -379,10 +371,7 @@ mips64_supply_gregset (struct regcache *
 {
   int regi;
   const mips64_elf_greg_t *regp = *gregsetp;
-  gdb_byte zerobuf[MAX_REGISTER_SIZE];
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
-
-  memset (zerobuf, 0, MAX_REGISTER_SIZE);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   for (regi = MIPS64_EF_REG0 + 1; regi <= MIPS64_EF_REG31; regi++)
     supply_64bit_reg (regcache, regi - MIPS64_EF_REG0,
@@ -407,7 +396,7 @@ mips64_supply_gregset (struct regcache *
 		    (const gdb_byte *) (regp + MIPS64_EF_CP0_CAUSE));
 
   /* Fill the inaccessible zero register with zero.  */
-  regcache_raw_supply (regcache, MIPS_ZERO_REGNUM, zerobuf);
+  regcache->raw_supply_zeroed (MIPS_ZERO_REGNUM);
 }
 
 static void
@@ -426,8 +415,7 @@ void
 mips64_fill_gregset (const struct regcache *regcache,
 		     mips64_elf_gregset_t *gregsetp, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+  struct gdbarch *gdbarch = regcache->arch ();
   int regaddr, regi;
   mips64_elf_greg_t *regp = *gregsetp;
   void *dst;
@@ -470,14 +458,8 @@ mips64_fill_gregset (const struct regcac
 
   if (regaddr != -1)
     {
-      gdb_byte buf[MAX_REGISTER_SIZE];
-      LONGEST val;
-
-      regcache_raw_collect (regcache, regno, buf);
-      val = extract_signed_integer (buf, register_size (gdbarch, regno),
-				    byte_order);
       dst = regp + regaddr;
-      store_signed_integer ((gdb_byte *) dst, 8, byte_order, val);
+      regcache->raw_collect_integer (regno, (gdb_byte *) dst, 8, true);
     }
 }
 
@@ -497,7 +479,7 @@ void
 mips64_supply_fpregset (struct regcache *regcache,
 			const mips64_elf_fpregset_t *fpregsetp)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int regi;
 
   /* See mips_linux_o32_sigframe_init for a description of the
@@ -547,8 +529,7 @@ void
 mips64_fill_fpregset (const struct regcache *regcache,
 		      mips64_elf_fpregset_t *fpregsetp, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+  struct gdbarch *gdbarch = regcache->arch ();
   gdb_byte *to;
 
   if ((regno >= gdbarch_fp0_regnum (gdbarch))
@@ -574,25 +555,13 @@ mips64_fill_fpregset (const struct regca
     }
   else if (regno == mips_regnum (gdbarch)->fp_control_status)
     {
-      gdb_byte buf[MAX_REGISTER_SIZE];
-      LONGEST val;
-
-      regcache_raw_collect (regcache, regno, buf);
-      val = extract_signed_integer (buf, register_size (gdbarch, regno),
-				    byte_order);
       to = (gdb_byte *) (*fpregsetp + 32);
-      store_signed_integer (to, 4, byte_order, val);
+      regcache->raw_collect_integer (regno, to, 4, true);
     }
   else if (regno == mips_regnum (gdbarch)->fp_implementation_revision)
     {
-      gdb_byte buf[MAX_REGISTER_SIZE];
-      LONGEST val;
-
-      regcache_raw_collect (regcache, regno, buf);
-      val = extract_signed_integer (buf, register_size (gdbarch, regno),
-				    byte_order);
       to = (gdb_byte *) (*fpregsetp + 32) + 4;
-      store_signed_integer (to, 4, byte_order, val);
+      regcache->raw_collect_integer (regno, to, 4, true);
     }
   else if (regno == -1)
     {
@@ -1382,7 +1351,7 @@ micromips_linux_sigframe_validate (const
 static void
 mips_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   mips_write_pc (regcache, pc);
 
@@ -1646,8 +1615,7 @@ mips_linux_init_abi (struct gdbarch_info
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   enum mips_abi abi = mips_abi (gdbarch);
-  struct tdesc_arch_data *tdesc_data
-    = (struct tdesc_arch_data *) info.tdep_info;
+  struct tdesc_arch_data *tdesc_data = info.tdesc_data;
 
   linux_init_abi (info, gdbarch);
 
@@ -1758,9 +1726,6 @@ mips_linux_init_abi (struct gdbarch_info
     }
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_mips_linux_tdep;
-
 void
 _initialize_mips_linux_tdep (void)
 {
@@ -1774,4 +1739,10 @@ _initialize_mips_linux_tdep (void)
 			      GDB_OSABI_LINUX,
 			      mips_linux_init_abi);
     }
+
+  /* Initialize the standard target descriptions.  */
+  initialize_tdesc_mips_linux ();
+  initialize_tdesc_mips_dsp_linux ();
+  initialize_tdesc_mips64_linux ();
+  initialize_tdesc_mips64_dsp_linux ();
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-linux-tdep.h ./gdb/mips-linux-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-linux-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mips-linux-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux on MIPS processors.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -105,3 +105,9 @@ enum {
 /* Return 1 if MIPS_RESTART_REGNUM is usable.  */
 
 int mips_linux_restart_reg_p (struct gdbarch *gdbarch);
+
+/* Target descriptions.  */
+extern struct target_desc *tdesc_mips_linux;
+extern struct target_desc *tdesc_mips64_linux;
+extern struct target_desc *tdesc_mips_dsp_linux;
+extern struct target_desc *tdesc_mips64_dsp_linux;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-nbsd-nat.c ./gdb/mips-nbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-nbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mips-nbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for MIPS systems running NetBSD.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -44,7 +44,7 @@ mipsnbsd_fetch_inferior_registers (struc
 {
   pid_t pid = ptid_get_pid (regcache_get_ptid (regcache));
 
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   if (regno == -1 || getregs_supplies (gdbarch, regno))
     {
       struct reg regs;
@@ -58,7 +58,7 @@ mipsnbsd_fetch_inferior_registers (struc
     }
 
   if (regno == -1
-      || regno >= gdbarch_fp0_regnum (get_regcache_arch (regcache)))
+      || regno >= gdbarch_fp0_regnum (regcache->arch ()))
     {
       struct fpreg fpregs;
 
@@ -75,7 +75,7 @@ mipsnbsd_store_inferior_registers (struc
 {
   pid_t pid = ptid_get_pid (regcache_get_ptid (regcache));
 
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   if (regno == -1 || getregs_supplies (gdbarch, regno))
     {
       struct reg regs;
@@ -93,7 +93,7 @@ mipsnbsd_store_inferior_registers (struc
     }
 
   if (regno == -1
-      || regno >= gdbarch_fp0_regnum (get_regcache_arch (regcache)))
+      || regno >= gdbarch_fp0_regnum (regcache->arch ()))
     {
       struct fpreg fpregs; 
 
@@ -106,10 +106,6 @@ mipsnbsd_store_inferior_registers (struc
 	perror_with_name (_("Couldn't write floating point status"));
     }
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_mipsnbsd_nat (void);
 
 void
 _initialize_mipsnbsd_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-nbsd-tdep.c ./gdb/mips-nbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-nbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mips-nbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for NetBSD/mips.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Wasabi Systems, Inc.
 
@@ -55,7 +55,7 @@ mipsnbsd_supply_fpregset (const struct r
 			  struct regcache *regcache,
 			  int regnum, const void *fpregs, size_t len)
 {
-  size_t regsize = mips_isa_regsize (get_regcache_arch (regcache));
+  size_t regsize = mips_isa_regsize (regcache->arch ());
   const char *regs = (const char *) fpregs;
   int i;
 
@@ -78,7 +78,7 @@ mipsnbsd_supply_gregset (const struct re
 			 struct regcache *regcache, int regnum,
 			 const void *gregs, size_t len)
 {
-  size_t regsize = mips_isa_regsize (get_regcache_arch (regcache));
+  size_t regsize = mips_isa_regsize (regcache->arch ());
   const char *regs = (const char *) gregs;
   int i;
 
@@ -137,7 +137,7 @@ mipsnbsd_iterate_over_regset_sections (s
 void
 mipsnbsd_supply_reg (struct regcache *regcache, const char *regs, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int i;
 
   for (i = 0; i <= gdbarch_pc_regnum (gdbarch); i++)
@@ -156,7 +156,7 @@ mipsnbsd_supply_reg (struct regcache *re
 void
 mipsnbsd_fill_reg (const struct regcache *regcache, char *regs, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int i;
 
   for (i = 0; i <= gdbarch_pc_regnum (gdbarch); i++)
@@ -170,7 +170,7 @@ void
 mipsnbsd_supply_fpreg (struct regcache *regcache,
 		       const char *fpregs, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int i;
 
   for (i = gdbarch_fp0_regnum (gdbarch);
@@ -193,7 +193,7 @@ mipsnbsd_supply_fpreg (struct regcache *
 void
 mipsnbsd_fill_fpreg (const struct regcache *regcache, char *fpregs, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int i;
 
   for (i = gdbarch_fp0_regnum (gdbarch);
@@ -372,10 +372,6 @@ mipsnbsd_init_abi (struct gdbarch_info i
 	       mipsnbsd_ilp32_fetch_link_map_offsets :
 	       mipsnbsd_lp64_fetch_link_map_offsets));
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_mipsnbsd_tdep;
 
 void
 _initialize_mipsnbsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-nbsd-tdep.h ./gdb/mips-nbsd-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-nbsd-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mips-nbsd-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common target dependent code for GDB on MIPS systems running NetBSD.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mipsread.c ./gdb/mipsread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mipsread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mipsread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Read a symbol table in MIPS' format (Third-Eye).
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    Contributed by Alessandro Forin (af@cs.cmu.edu) at CMU.  Major work
    by Per Bothner, John Gilmore and Ian Lance Taylor at Cygnus Support.
@@ -413,9 +413,6 @@ static const struct sym_fns ecoff_sym_fn
   &psym_functions
 };
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_mipsread (void);
-
 void
 _initialize_mipsread (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-sde-tdep.c ./gdb/mips-sde-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-sde-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mips-sde-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for SDE on MIPS processors.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -256,9 +256,6 @@ mips_sde_init_abi (struct gdbarch_info i
   frame_base_append_sniffer (gdbarch, mips_sde_frame_base_sniffer);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_mips_sde_tdep;
-
 void
 _initialize_mips_sde_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-tdep.c ./gdb/mips-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mips-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the MIPS architecture, for GDB, the GNU Debugger.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    Contributed by Alessandro Forin(af@cs.cmu.edu) at CMU
    and by Per Bothner(bothner@cs.wisc.edu) at U.Wisconsin.
@@ -49,13 +49,13 @@
 #include "frame-base.h"
 #include "trad-frame.h"
 #include "infcall.h"
-#include "floatformat.h"
 #include "remote.h"
 #include "target-descriptions.h"
 #include "dwarf2-frame.h"
 #include "user-regs.h"
 #include "valprint.h"
 #include "ax.h"
+#include "target-float.h"
 #include <algorithm>
 
 static const struct objfile_data *mips_pdr_data;
@@ -271,6 +271,9 @@ mips_isa_regsize (struct gdbarch *gdbarc
 	  / gdbarch_bfd_arch_info (gdbarch)->bits_per_byte);
 }
 
+/* Max saved register size.  */
+#define MAX_MIPS_ABI_REGSIZE 8
+
 /* Return the currently configured (or set) saved register size.  */
 
 unsigned int
@@ -553,8 +556,6 @@ mips2_fp_compat (struct frame_info *fram
 
 static CORE_ADDR heuristic_proc_start (struct gdbarch *, CORE_ADDR);
 
-static void reinit_frame_cache_sfunc (char *, int, struct cmd_list_element *);
-
 /* The list of available "set mips " and "show mips " commands.  */
 
 static struct cmd_list_element *setmipscmdlist = NULL;
@@ -852,7 +853,7 @@ static int heuristic_fence_post = 0;
 static int mips64_transfers_32bit_regs_p = 0;
 
 static void
-set_mips64_transfers_32bit_regs (char *args, int from_tty,
+set_mips64_transfers_32bit_regs (const char *args, int from_tty,
 				 struct cmd_list_element *c)
 {
   struct gdbarch_info info;
@@ -1363,7 +1364,7 @@ mips_in_frame_stub (CORE_ADDR pc)
 static CORE_ADDR
 mips_read_pc (struct regcache *regcache)
 {
-  int regnum = gdbarch_pc_regnum (get_regcache_arch (regcache));
+  int regnum = gdbarch_pc_regnum (regcache->arch ());
   LONGEST pc;
 
   regcache_cooked_read_signed (regcache, regnum, &pc);
@@ -1419,7 +1420,7 @@ mips_dummy_id (struct gdbarch *gdbarch, 
 void
 mips_write_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  int regnum = gdbarch_pc_regnum (get_regcache_arch (regcache));
+  int regnum = gdbarch_pc_regnum (regcache->arch ());
 
   regcache_cooked_write_unsigned (regcache, regnum, pc);
 }
@@ -1605,7 +1606,7 @@ is_octeon_bbit_op (int op, struct gdbarc
 static CORE_ADDR
 mips32_next_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   unsigned long inst;
   int op;
   inst = mips_fetch_instruction (gdbarch, ISA_MIPS, pc, NULL);
@@ -1872,7 +1873,7 @@ micromips_bc1_pc (struct gdbarch *gdbarc
 static CORE_ADDR
 micromips_next_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   ULONGEST insn;
 
   insn = mips_fetch_instruction (gdbarch, ISA_MICROMIPS, pc, NULL);
@@ -2226,7 +2227,7 @@ static CORE_ADDR
 extended_mips16_next_pc (regcache *regcache, CORE_ADDR pc,
 			 unsigned int extension, unsigned int insn)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int op = (insn >> 11);
   switch (op)
     {
@@ -2330,7 +2331,7 @@ extended_mips16_next_pc (regcache *regca
 static CORE_ADDR
 mips16_next_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   unsigned int insn = fetch_mips_16 (gdbarch, pc);
   return extended_mips16_next_pc (regcache, pc, 0, insn);
 }
@@ -2343,7 +2344,7 @@ mips16_next_pc (struct regcache *regcach
 static CORE_ADDR
 mips_next_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   if (mips_pc_is_mips16 (gdbarch, pc))
     return mips16_next_pc (regcache, pc);
@@ -3780,7 +3781,6 @@ mips_stub_frame_sniffer (const struct fr
 			 struct frame_info *this_frame, void **this_cache)
 {
   gdb_byte dummy[4];
-  struct obj_section *s;
   CORE_ADDR pc = get_frame_address_in_block (this_frame);
   struct bound_minimal_symbol msym;
 
@@ -3879,7 +3879,7 @@ mips_addr_bits_remove (struct gdbarch *g
 #define SC_OPCODE 0x38
 #define SCD_OPCODE 0x3c
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 mips_deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
 {
   CORE_ADDR breaks[2] = {-1, -1};
@@ -3890,12 +3890,11 @@ mips_deal_with_atomic_sequence (struct g
   int index;
   int last_breakpoint = 0; /* Defaults to 0 (no breakpoints placed).  */  
   const int atomic_sequence_length = 16; /* Instruction sequence length.  */
-  VEC (CORE_ADDR) *next_pcs = NULL;
 
   insn = mips_fetch_instruction (gdbarch, ISA_MIPS, loc, NULL);
   /* Assume all atomic sequences start with a ll/lld instruction.  */
   if (itype_op (insn) != LL_OPCODE && itype_op (insn) != LLD_OPCODE)
-    return NULL;
+    return {};
 
   /* Assume that no atomic sequence is longer than "atomic_sequence_length" 
      instructions.  */
@@ -3912,7 +3911,7 @@ mips_deal_with_atomic_sequence (struct g
 	{
 	case 0: /* SPECIAL */
 	  if (rtype_funct (insn) >> 1 == 4) /* JR, JALR */
-	    return 0; /* fallback to the standard single-step code.  */
+	    return {}; /* fallback to the standard single-step code.  */
 	  break;
 	case 1: /* REGIMM */
 	  is_branch = ((itype_rt (insn) & 0xc) == 0 /* B{LT,GE}Z* */
@@ -3921,7 +3920,7 @@ mips_deal_with_atomic_sequence (struct g
 	  break;
 	case 2: /* J */
 	case 3: /* JAL */
-	  return 0; /* fallback to the standard single-step code.  */
+	  return {}; /* fallback to the standard single-step code.  */
 	case 4: /* BEQ */
 	case 5: /* BNE */
 	case 6: /* BLEZ */
@@ -3947,8 +3946,8 @@ mips_deal_with_atomic_sequence (struct g
 	{
 	  branch_bp = loc + mips32_relative_offset (insn) + 4;
 	  if (last_breakpoint >= 1)
-	    return 0; /* More than one branch found, fallback to the
-			 standard single-step code.  */
+	    return {}; /* More than one branch found, fallback to the
+			  standard single-step code.  */
 	  breaks[1] = branch_bp;
 	  last_breakpoint++;
 	}
@@ -3959,7 +3958,7 @@ mips_deal_with_atomic_sequence (struct g
 
   /* Assume that the atomic sequence ends with a sc/scd instruction.  */
   if (itype_op (insn) != SC_OPCODE && itype_op (insn) != SCD_OPCODE)
-    return NULL;
+    return {};
 
   loc += MIPS_INSN32_SIZE;
 
@@ -3971,14 +3970,16 @@ mips_deal_with_atomic_sequence (struct g
   if (last_breakpoint && pc <= breaks[1] && breaks[1] <= breaks[0])
     last_breakpoint = 0;
 
+  std::vector<CORE_ADDR> next_pcs;
+
   /* Effectively inserts the breakpoints.  */
   for (index = 0; index <= last_breakpoint; index++)
-    VEC_safe_push (CORE_ADDR, next_pcs, breaks[index]);
+    next_pcs.push_back (breaks[index]);
 
   return next_pcs;
 }
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 micromips_deal_with_atomic_sequence (struct gdbarch *gdbarch,
 				     CORE_ADDR pc)
 {
@@ -3992,17 +3993,16 @@ micromips_deal_with_atomic_sequence (str
   ULONGEST insn;
   int insn_count;
   int index;
-  VEC (CORE_ADDR) *next_pcs = NULL;
 
   /* Assume all atomic sequences start with a ll/lld instruction.  */
   insn = mips_fetch_instruction (gdbarch, ISA_MICROMIPS, loc, NULL);
   if (micromips_op (insn) != 0x18)	/* POOL32C: bits 011000 */
-    return NULL;
+    return {};
   loc += MIPS_INSN16_SIZE;
   insn <<= 16;
   insn |= mips_fetch_instruction (gdbarch, ISA_MICROMIPS, loc, NULL);
   if ((b12s4_op (insn) & 0xb) != 0x3)	/* LL, LLD: bits 011000 0x11 */
-    return NULL;
+    return {};
   loc += MIPS_INSN16_SIZE;
 
   /* Assume all atomic sequences end with an sc/scd instruction.  Assume
@@ -4072,7 +4072,7 @@ micromips_deal_with_atomic_sequence (str
 	    case 0x35: /* J: bits 110101 */
 	    case 0x3d: /* JAL: bits 111101 */
 	    case 0x3c: /* JALX: bits 111100 */
-	      return 0; /* Fall back to the standard single-step code. */
+	      return {}; /* Fall back to the standard single-step code. */
 
 	    case 0x18: /* POOL32C: bits 011000 */
 	      if ((b12s4_op (insn) & 0xb) == 0xb)
@@ -4099,24 +4099,24 @@ micromips_deal_with_atomic_sequence (str
 	          && b5s5_op (insn) != 0x18)
 				/* JRADDIUSP: bits 010001 11000 */
 	        break;
-	      return NULL; /* Fall back to the standard single-step code. */
+	      return {}; /* Fall back to the standard single-step code. */
 
 	    case 0x33: /* B16: bits 110011 */
-	      return NULL; /* Fall back to the standard single-step code. */
+	      return {}; /* Fall back to the standard single-step code. */
 	    }
 	  break;
 	}
       if (is_branch)
 	{
 	  if (last_breakpoint >= 1)
-	    return NULL; /* More than one branch found, fallback to the
-			 standard single-step code.  */
+	    return {}; /* More than one branch found, fallback to the
+			  standard single-step code.  */
 	  breaks[1] = branch_bp;
 	  last_breakpoint++;
 	}
     }
   if (!sc_found)
-    return NULL;
+    return {};
 
   /* Insert a breakpoint right after the end of the atomic sequence.  */
   breaks[0] = loc;
@@ -4126,14 +4126,16 @@ micromips_deal_with_atomic_sequence (str
   if (last_breakpoint && pc <= breaks[1] && breaks[1] <= breaks[0])
     last_breakpoint = 0;
 
+  std::vector<CORE_ADDR> next_pcs;
+
   /* Effectively inserts the breakpoints.  */
   for (index = 0; index <= last_breakpoint; index++)
-    VEC_safe_push (CORE_ADDR, next_pcs, breaks[index]);
+    next_pcs.push_back (breaks[index]);
 
   return next_pcs;
 }
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
 {
   if (mips_pc_is_mips (pc))
@@ -4141,7 +4143,7 @@ deal_with_atomic_sequence (struct gdbarc
   else if (mips_pc_is_micromips (gdbarch, pc))
     return micromips_deal_with_atomic_sequence (gdbarch, pc);
   else
-    return NULL;
+    return {};
 }
 
 /* mips_software_single_step() is called just before we want to resume
@@ -4149,22 +4151,21 @@ deal_with_atomic_sequence (struct gdbarc
    or kernel single-step support (MIPS on GNU/Linux for example).  We find
    the target of the coming instruction and breakpoint it.  */
 
-VEC (CORE_ADDR) *
+std::vector<CORE_ADDR>
 mips_software_single_step (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   CORE_ADDR pc, next_pc;
-  VEC (CORE_ADDR) *next_pcs;
 
   pc = regcache_read_pc (regcache);
-  next_pcs = deal_with_atomic_sequence (gdbarch, pc);
-  if (next_pcs != NULL)
+  std::vector<CORE_ADDR> next_pcs = deal_with_atomic_sequence (gdbarch, pc);
+
+  if (!next_pcs.empty ())
     return next_pcs;
 
   next_pc = mips_next_pc (regcache, pc);
 
-  VEC_safe_push (CORE_ADDR, next_pcs, next_pc);
-  return next_pcs;
+  return {next_pc};
 }
 
 /* Test whether the PC points to the return instruction at the
@@ -4475,7 +4476,7 @@ mips_eabi_push_dummy_call (struct gdbarc
   int stack_offset = 0;
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR func_addr = find_function_addr (function, NULL);
-  int regsize = mips_abi_regsize (gdbarch);
+  int abi_regsize = mips_abi_regsize (gdbarch);
 
   /* For shared libraries, "t9" needs to point at the function
      address.  */
@@ -4498,7 +4499,7 @@ mips_eabi_push_dummy_call (struct gdbarc
      than necessary for EABI, because the first few arguments are
      passed in registers, but that's OK.  */
   for (argnum = 0; argnum < nargs; argnum++)
-    len += align_up (TYPE_LENGTH (value_type (args[argnum])), regsize);
+    len += align_up (TYPE_LENGTH (value_type (args[argnum])), abi_regsize);
   sp -= align_up (len, 16);
 
   if (mips_debug)
@@ -4527,7 +4528,9 @@ mips_eabi_push_dummy_call (struct gdbarc
   for (argnum = 0; argnum < nargs; argnum++)
     {
       const gdb_byte *val;
-      gdb_byte valbuf[MAX_REGISTER_SIZE];
+      /* This holds the address of structures that are passed by
+	 reference.  */
+      gdb_byte ref_valbuf[MAX_MIPS_ABI_REGSIZE];
       struct value *arg = args[argnum];
       struct type *arg_type = check_typedef (value_type (arg));
       int len = TYPE_LENGTH (arg_type);
@@ -4540,14 +4543,15 @@ mips_eabi_push_dummy_call (struct gdbarc
 
       /* The EABI passes structures that do not fit in a register by
          reference.  */
-      if (len > regsize
+      if (len > abi_regsize
 	  && (typecode == TYPE_CODE_STRUCT || typecode == TYPE_CODE_UNION))
 	{
-	  store_unsigned_integer (valbuf, regsize, byte_order,
+	  gdb_assert (abi_regsize <= ARRAY_SIZE (ref_valbuf));
+	  store_unsigned_integer (ref_valbuf, abi_regsize, byte_order,
 				  value_address (arg));
 	  typecode = TYPE_CODE_PTR;
-	  len = regsize;
-	  val = valbuf;
+	  len = abi_regsize;
+	  val = ref_valbuf;
 	  if (mips_debug)
 	    fprintf_unfiltered (gdb_stdlog, " push");
 	}
@@ -4559,7 +4563,7 @@ mips_eabi_push_dummy_call (struct gdbarc
          up before the check to see if there are any FP registers
          left.  Non MIPS_EABI targets also pass the FP in the integer
          registers so also round up normal registers.  */
-      if (regsize < 8 && fp_register_arg_p (gdbarch, typecode, arg_type))
+      if (abi_regsize < 8 && fp_register_arg_p (gdbarch, typecode, arg_type))
 	{
 	  if ((float_argreg & 1))
 	    float_argreg++;
@@ -4625,12 +4629,12 @@ mips_eabi_push_dummy_call (struct gdbarc
 	  /* Copy the argument to general registers or the stack in
 	     register-sized pieces.  Large arguments are split between
 	     registers and stack.  */
-	  /* Note: structs whose size is not a multiple of regsize
+	  /* Note: structs whose size is not a multiple of abi_regsize
 	     are treated specially: Irix cc passes
 	     them in registers where gcc sometimes puts them on the
 	     stack.  For maximum compatibility, we will put them in
 	     both places.  */
-	  int odd_sized_struct = (len > regsize && len % regsize != 0);
+	  int odd_sized_struct = (len > abi_regsize && len % abi_regsize != 0);
 
 	  /* Note: Floating-point values that didn't fit into an FP
 	     register are only written to memory.  */
@@ -4638,7 +4642,7 @@ mips_eabi_push_dummy_call (struct gdbarc
 	    {
 	      /* Remember if the argument was written to the stack.  */
 	      int stack_used_p = 0;
-	      int partial_len = (len < regsize ? len : regsize);
+	      int partial_len = (len < abi_regsize ? len : abi_regsize);
 
 	      if (mips_debug)
 		fprintf_unfiltered (gdb_stdlog, " -- partial=%d",
@@ -4656,15 +4660,15 @@ mips_eabi_push_dummy_call (struct gdbarc
 		  stack_used_p = 1;
 		  if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG)
 		    {
-		      if (regsize == 8
+		      if (abi_regsize == 8
 			  && (typecode == TYPE_CODE_INT
 			      || typecode == TYPE_CODE_PTR
 			      || typecode == TYPE_CODE_FLT) && len <= 4)
-			longword_offset = regsize - len;
+			longword_offset = abi_regsize - len;
 		      else if ((typecode == TYPE_CODE_STRUCT
 				|| typecode == TYPE_CODE_UNION)
-			       && TYPE_LENGTH (arg_type) < regsize)
-			longword_offset = regsize - len;
+			       && TYPE_LENGTH (arg_type) < abi_regsize)
+			longword_offset = abi_regsize - len;
 		    }
 
 		  if (mips_debug)
@@ -4705,7 +4709,7 @@ mips_eabi_push_dummy_call (struct gdbarc
 		  if (mips_debug)
 		    fprintf_filtered (gdb_stdlog, " - reg=%d val=%s",
 				      argreg,
-				      phex (regval, regsize));
+				      phex (regval, abi_regsize));
 		  regcache_cooked_write_signed (regcache, argreg, regval);
 		  argreg++;
 		}
@@ -4720,7 +4724,7 @@ mips_eabi_push_dummy_call (struct gdbarc
 	         only needs to be adjusted when it has been used.  */
 
 	      if (stack_used_p)
-		stack_offset += align_up (partial_len, regsize);
+		stack_offset += align_up (partial_len, abi_regsize);
 	    }
 	}
       if (mips_debug)
@@ -5758,7 +5762,6 @@ mips_o32_return_value (struct gdbarch *g
       /* A struct that contains one or two floats.  Each value is part
          in the least significant part of their floating point
          register..  */
-      gdb_byte reg[MAX_REGISTER_SIZE];
       int regnum;
       int field;
       for (field = 0, regnum = mips_regnum (gdbarch)->fp0;
@@ -6070,7 +6073,6 @@ mips_o64_return_value (struct gdbarch *g
 {
   CORE_ADDR func_addr = function ? find_function_addr (function, NULL) : 0;
   int mips16 = mips_pc_is_mips16 (gdbarch, func_addr);
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   enum mips_fval_reg fval_reg;
 
   fval_reg = readbuf ? mips16 ? mips_fval_gpr : mips_fval_fpr : mips_fval_both;
@@ -6251,8 +6253,10 @@ mips_print_fp_register (struct ui_file *
 {				/* Do values for FP (float) regs.  */
   struct gdbarch *gdbarch = get_frame_arch (frame);
   gdb_byte *raw_buffer;
-  double doub, flt1;	/* Doubles extracted from raw hex data.  */
-  int inv1, inv2;
+  std::string flt_str, dbl_str;
+
+  const struct type *flt_type = builtin_type (gdbarch)->builtin_float;
+  const struct type *dbl_type = builtin_type (gdbarch)->builtin_double;
 
   raw_buffer
     = ((gdb_byte *)
@@ -6270,31 +6274,21 @@ mips_print_fp_register (struct ui_file *
       /* 4-byte registers: Print hex and floating.  Also print even
          numbered registers as doubles.  */
       mips_read_fp_register_single (frame, regnum, raw_buffer);
-      flt1 = unpack_double (builtin_type (gdbarch)->builtin_float,
-			    raw_buffer, &inv1);
+      flt_str = target_float_to_string (raw_buffer, flt_type, "%-17.9g");
 
       get_formatted_print_options (&opts, 'x');
       print_scalar_formatted (raw_buffer,
 			      builtin_type (gdbarch)->builtin_uint32,
 			      &opts, 'w', file);
 
-      fprintf_filtered (file, " flt: ");
-      if (inv1)
-	fprintf_filtered (file, " <invalid float> ");
-      else
-	fprintf_filtered (file, "%-17.9g", flt1);
+      fprintf_filtered (file, " flt: %s", flt_str.c_str ());
 
       if ((regnum - gdbarch_num_regs (gdbarch)) % 2 == 0)
 	{
 	  mips_read_fp_register_double (frame, regnum, raw_buffer);
-	  doub = unpack_double (builtin_type (gdbarch)->builtin_double,
-				raw_buffer, &inv2);
+	  dbl_str = target_float_to_string (raw_buffer, dbl_type, "%-24.17g");
 
-	  fprintf_filtered (file, " dbl: ");
-	  if (inv2)
-	    fprintf_filtered (file, "<invalid double>");
-	  else
-	    fprintf_filtered (file, "%-24.17g", doub);
+	  fprintf_filtered (file, " dbl: %s", dbl_str.c_str ());
 	}
     }
   else
@@ -6303,29 +6297,18 @@ mips_print_fp_register (struct ui_file *
 
       /* Eight byte registers: print each one as hex, float and double.  */
       mips_read_fp_register_single (frame, regnum, raw_buffer);
-      flt1 = unpack_double (builtin_type (gdbarch)->builtin_float,
-			    raw_buffer, &inv1);
+      flt_str = target_float_to_string (raw_buffer, flt_type, "%-17.9g");
 
       mips_read_fp_register_double (frame, regnum, raw_buffer);
-      doub = unpack_double (builtin_type (gdbarch)->builtin_double,
-			    raw_buffer, &inv2);
+      dbl_str = target_float_to_string (raw_buffer, dbl_type, "%-24.17g");
 
       get_formatted_print_options (&opts, 'x');
       print_scalar_formatted (raw_buffer,
 			      builtin_type (gdbarch)->builtin_uint64,
 			      &opts, 'g', file);
 
-      fprintf_filtered (file, " flt: ");
-      if (inv1)
-	fprintf_filtered (file, "<invalid float>");
-      else
-	fprintf_filtered (file, "%-17.9g", flt1);
-
-      fprintf_filtered (file, " dbl: ");
-      if (inv2)
-	fprintf_filtered (file, "<invalid double>");
-      else
-	fprintf_filtered (file, "%-24.17g", doub);
+      fprintf_filtered (file, " flt: %s", flt_str.c_str ());
+      fprintf_filtered (file, " dbl: %s", dbl_str.c_str ());
     }
 }
 
@@ -6473,7 +6456,8 @@ print_gp_register_row (struct ui_file *f
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
   /* Do values for GP (int) regs.  */
-  gdb_byte raw_buffer[MAX_REGISTER_SIZE];
+  const gdb_byte *raw_buffer;
+  struct value *value;
   int ncols = (mips_abi_regsize (gdbarch) == 8 ? 4 : 8);    /* display cols
 							       per row.  */
   int col, byte;
@@ -6532,14 +6516,23 @@ print_gp_register_row (struct ui_file *f
 	break;			/* End row: large register.  */
 
       /* OK: get the data in raw format.  */
-      if (!deprecated_frame_register_read (frame, regnum, raw_buffer))
-	error (_("can't read register %d (%s)"),
-	       regnum, gdbarch_register_name (gdbarch, regnum));
+      value = get_frame_register_value (frame, regnum);
+      if (value_optimized_out (value)
+	|| !value_entirely_available (value))
+	{
+	  fprintf_filtered (file, "%*s ",
+			    (int) mips_abi_regsize (gdbarch) * 2,
+			    (mips_abi_regsize (gdbarch) == 4 ? "<unavl>"
+			     : "<unavailable>"));
+	  col++;
+	  continue;
+	}
+      raw_buffer = value_contents_all (value);
       /* pad small registers */
       for (byte = 0;
 	   byte < (mips_abi_regsize (gdbarch)
 		   - register_size (gdbarch, regnum)); byte++)
-	printf_filtered ("  ");
+	fprintf_filtered (file, "  ");
       /* Now print the register value in hex, endian order.  */
       if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG)
 	for (byte =
@@ -6598,12 +6591,9 @@ static int
 mips_single_step_through_delay (struct gdbarch *gdbarch,
 				struct frame_info *frame)
 {
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR pc = get_frame_pc (frame);
-  struct address_space *aspace;
   enum mips_isa isa;
   ULONGEST insn;
-  int status;
   int size;
 
   if ((mips_pc_is_mips (pc)
@@ -6618,7 +6608,9 @@ mips_single_step_through_delay (struct g
   /* _has_delay_slot above will have validated the read.  */
   insn = mips_fetch_instruction (gdbarch, isa, pc, NULL);
   size = mips_insn_size (isa, insn);
-  aspace = get_frame_address_space (frame);
+
+  const address_space *aspace = get_frame_address_space (frame);
+
   return breakpoint_here_p (aspace, pc + size) != no_breakpoint_here;
 }
 
@@ -6862,13 +6854,13 @@ mips_stack_frame_destroyed_p (struct gdb
    used for all MIPS-specific commands.  */
 
 static void
-show_mips_command (char *args, int from_tty)
+show_mips_command (const char *args, int from_tty)
 {
   help_list (showmipscmdlist, "show mips ", all_commands, gdb_stdout);
 }
 
 static void
-set_mips_command (char *args, int from_tty)
+set_mips_command (const char *args, int from_tty)
 {
   printf_unfiltered
     ("\"set mips\" must be followed by an appropriate subcommand.\n");
@@ -6878,7 +6870,7 @@ set_mips_command (char *args, int from_t
 /* Commands to show/set the MIPS FPU type.  */
 
 static void
-show_mipsfpu_command (char *args, int from_tty)
+show_mipsfpu_command (const char *args, int from_tty)
 {
   const char *fpu;
 
@@ -6915,7 +6907,7 @@ show_mipsfpu_command (char *args, int fr
 
 
 static void
-set_mipsfpu_command (char *args, int from_tty)
+set_mipsfpu_command (const char *args, int from_tty)
 {
   printf_unfiltered ("\"set mipsfpu\" must be followed by \"double\", "
 		     "\"single\",\"none\" or \"auto\".\n");
@@ -6923,7 +6915,7 @@ set_mipsfpu_command (char *args, int fro
 }
 
 static void
-set_mipsfpu_single_command (char *args, int from_tty)
+set_mipsfpu_single_command (const char *args, int from_tty)
 {
   struct gdbarch_info info;
   gdbarch_info_init (&info);
@@ -6937,7 +6929,7 @@ set_mipsfpu_single_command (char *args, 
 }
 
 static void
-set_mipsfpu_double_command (char *args, int from_tty)
+set_mipsfpu_double_command (const char *args, int from_tty)
 {
   struct gdbarch_info info;
   gdbarch_info_init (&info);
@@ -6951,7 +6943,7 @@ set_mipsfpu_double_command (char *args, 
 }
 
 static void
-set_mipsfpu_none_command (char *args, int from_tty)
+set_mipsfpu_none_command (const char *args, int from_tty)
 {
   struct gdbarch_info info;
   gdbarch_info_init (&info);
@@ -6965,7 +6957,7 @@ set_mipsfpu_none_command (char *args, in
 }
 
 static void
-set_mipsfpu_auto_command (char *args, int from_tty)
+set_mipsfpu_auto_command (const char *args, int from_tty)
 {
   mips_fpu_type_auto = 1;
 }
@@ -6974,7 +6966,7 @@ set_mipsfpu_auto_command (char *args, in
    callable as an sfunc.  */
 
 static void
-reinit_frame_cache_sfunc (char *args, int from_tty,
+reinit_frame_cache_sfunc (const char *args, int from_tty,
 			  struct cmd_list_element *c)
 {
   reinit_frame_cache ();
@@ -7009,11 +7001,7 @@ gdb_print_insn_mips (bfd_vma memaddr, st
        register naming conventions specified by the user.  */
     info->disassembler_options = "gpr-names=32";
 
-  /* Call the appropriate disassembler based on the target endian-ness.  */
-  if (info->endian == BFD_ENDIAN_BIG)
-    return print_insn_big_mips (memaddr, info);
-  else
-    return print_insn_little_mips (memaddr, info);
+  return default_print_insn (memaddr, info);
 }
 
 static int
@@ -8439,7 +8427,7 @@ mips_gdbarch_init (struct gdbarch_info i
 	break;
       }
   else if (arches != NULL)
-    fpu_type = gdbarch_tdep (arches->gdbarch)->mips_fpu_type;
+    fpu_type = MIPS_FPU_TYPE (arches->gdbarch);
   else
     fpu_type = MIPS_FPU_DOUBLE;
   if (gdbarch_debug)
@@ -8479,7 +8467,7 @@ mips_gdbarch_init (struct gdbarch_info i
 	  != mips64_transfers_32bit_regs_p)
 	continue;
       /* Be pedantic about which FPU is selected.  */
-      if (gdbarch_tdep (arches->gdbarch)->mips_fpu_type != fpu_type)
+      if (MIPS_FPU_TYPE (arches->gdbarch) != fpu_type)
 	continue;
 
       if (tdesc_data != NULL)
@@ -8488,7 +8476,7 @@ mips_gdbarch_init (struct gdbarch_info i
     }
 
   /* Need a new architecture.  Fill in a target specific vector.  */
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
   tdep->elf_flags = elf_flags;
   tdep->mips64_transfers_32bit_regs_p = mips64_transfers_32bit_regs_p;
@@ -8773,7 +8761,7 @@ mips_gdbarch_init (struct gdbarch_info i
   mips_register_g_packet_guesses (gdbarch);
 
   /* Hook in OS ABI-specific overrides, if they have been registered.  */
-  info.tdep_info = tdesc_data;
+  info.tdesc_data = tdesc_data;
   gdbarch_init_osabi (info, gdbarch);
 
   /* The hook may have adjusted num_regs, fetch the final value and
@@ -8835,7 +8823,8 @@ mips_gdbarch_init (struct gdbarch_info i
 }
 
 static void
-mips_abi_update (char *ignore_args, int from_tty, struct cmd_list_element *c)
+mips_abi_update (const char *ignore_args,
+		 int from_tty, struct cmd_list_element *c)
 {
   struct gdbarch_info info;
 
@@ -8895,6 +8884,24 @@ show_mips_compression (struct ui_file *f
 		    value);
 }
 
+/* Return a textual name for MIPS FPU type FPU_TYPE.  */
+
+static const char *
+mips_fpu_type_str (enum mips_fpu_type fpu_type)
+{
+  switch (fpu_type)
+    {
+    case MIPS_FPU_NONE:
+      return "none";
+    case MIPS_FPU_SINGLE:
+      return "single";
+    case MIPS_FPU_DOUBLE:
+      return "double";
+    default:
+      return "???";
+    }
+}
+
 static void
 mips_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file)
 {
@@ -8945,28 +8952,19 @@ mips_dump_tdep (struct gdbarch *gdbarch,
   fprintf_unfiltered (file,
 		      "mips_dump_tdep: MIPS_DEFAULT_FPU_TYPE = %d (%s)\n",
 		      MIPS_DEFAULT_FPU_TYPE,
-		      (MIPS_DEFAULT_FPU_TYPE == MIPS_FPU_NONE ? "none"
-		       : MIPS_DEFAULT_FPU_TYPE == MIPS_FPU_SINGLE ? "single"
-		       : MIPS_DEFAULT_FPU_TYPE == MIPS_FPU_DOUBLE ? "double"
-		       : "???"));
+		      mips_fpu_type_str (MIPS_DEFAULT_FPU_TYPE));
   fprintf_unfiltered (file, "mips_dump_tdep: MIPS_EABI = %d\n",
 		      MIPS_EABI (gdbarch));
   fprintf_unfiltered (file,
 		      "mips_dump_tdep: MIPS_FPU_TYPE = %d (%s)\n",
 		      MIPS_FPU_TYPE (gdbarch),
-		      (MIPS_FPU_TYPE (gdbarch) == MIPS_FPU_NONE ? "none"
-		       : MIPS_FPU_TYPE (gdbarch) == MIPS_FPU_SINGLE ? "single"
-		       : MIPS_FPU_TYPE (gdbarch) == MIPS_FPU_DOUBLE ? "double"
-		       : "???"));
+		      mips_fpu_type_str (MIPS_FPU_TYPE (gdbarch)));
 }
 
-extern initialize_file_ftype _initialize_mips_tdep; /* -Wmissing-prototypes */
-
 void
 _initialize_mips_tdep (void)
 {
   static struct cmd_list_element *mipsfpulist = NULL;
-  struct cmd_list_element *c;
 
   mips_abi_string = mips_abi_strings[MIPS_ABI_UNKNOWN];
   if (MIPS_ABI_LAST + 1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-tdep.h ./gdb/mips-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mips-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mips-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent header for the MIPS architecture, for GDB, the GNU Debugger.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -154,7 +154,8 @@ enum
 };
 
 /* Single step based on where the current instruction will take us.  */
-extern VEC (CORE_ADDR) *mips_software_single_step (struct regcache *regcache);
+extern std::vector<CORE_ADDR> mips_software_single_step
+  (struct regcache *regcache);
 
 /* Strip the ISA (compression) bit off from ADDR.  */
 extern CORE_ADDR mips_unmake_compact_addr (CORE_ADDR addr);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mn10300-linux-tdep.c ./gdb/mn10300-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mn10300-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mn10300-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Matsushita MN10300 for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -86,7 +86,6 @@ am33_supply_gregset_method (const struct
 			    struct regcache *regcache, 
 			    int regnum, const void *gregs, size_t len)
 {
-  char zerobuf[MAX_REGISTER_SIZE];
   const mn10300_elf_greg_t *regp = (const mn10300_elf_greg_t *) gregs;
   int i;
 
@@ -188,17 +187,13 @@ am33_supply_gregset_method (const struct
 
     /* ssp, msp, and usp are inaccessible.  */
   case E_E8_REGNUM:
-    memset (zerobuf, 0, MAX_REGISTER_SIZE);
-    regcache_raw_supply (regcache, E_E8_REGNUM, zerobuf);
+    regcache->raw_supply_zeroed (E_E8_REGNUM);
     break;
   case E_E9_REGNUM:
-    memset (zerobuf, 0, MAX_REGISTER_SIZE);
-    regcache_raw_supply (regcache, E_E9_REGNUM, zerobuf);
+    regcache->raw_supply_zeroed (E_E9_REGNUM);
     break;
   case E_E10_REGNUM:
-    memset (zerobuf, 0, MAX_REGISTER_SIZE);
-    regcache_raw_supply (regcache, E_E10_REGNUM, zerobuf);
-
+    regcache->raw_supply_zeroed (E_E10_REGNUM);
     break;
   case E_MCRH_REGNUM:
     regcache_raw_supply (regcache, E_MCRH_REGNUM, 
@@ -218,12 +213,10 @@ am33_supply_gregset_method (const struct
     break;
   case E_FPCR_REGNUM + 1:
     /* The two unused registers beyond fpcr are inaccessible.  */
-    memset (zerobuf, 0, MAX_REGISTER_SIZE);
-    regcache_raw_supply (regcache, E_FPCR_REGNUM + 1, zerobuf);
+    regcache->raw_supply_zeroed (E_FPCR_REGNUM + 1);
     break;
   case E_FPCR_REGNUM + 2:
-    memset (zerobuf, 0, MAX_REGISTER_SIZE);
-    regcache_raw_supply (regcache, E_FPCR_REGNUM + 2, zerobuf);
+    regcache->raw_supply_zeroed (E_FPCR_REGNUM + 2);
     break;
   default:	/* An error, obviously, but should we error out?  */
     break;
@@ -725,9 +718,6 @@ am33_linux_init_osabi (struct gdbarch_in
   tramp_frame_prepend_unwinder (gdbarch, &am33_linux_rt_sigframe);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_mn10300_linux_tdep;
-
 void
 _initialize_mn10300_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mn10300-tdep.c ./gdb/mn10300-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mn10300-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mn10300-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Matsushita MN10300 for GDB, the GNU debugger.
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -40,6 +40,9 @@
 /* The am33-2 has 64 registers.  */
 #define MN10300_MAX_NUM_REGS 64
 
+/* Big enough to hold the size of the largest register in bytes.  */
+#define MN10300_MAX_REGISTER_SIZE      64
+
 /* This structure holds the results of a prologue analysis.  */
 struct mn10300_prologue
 {
@@ -196,7 +199,7 @@ static void
 mn10300_extract_return_value (struct gdbarch *gdbarch, struct type *type,
 			      struct regcache *regcache, void *valbuf)
 {
-  gdb_byte buf[MAX_REGISTER_SIZE];
+  gdb_byte buf[MN10300_MAX_REGISTER_SIZE];
   int len = TYPE_LENGTH (type);
   int reg, regsz;
 
@@ -206,6 +209,7 @@ mn10300_extract_return_value (struct gdb
     reg = 0;
 
   regsz = register_size (gdbarch, reg);
+  gdb_assert (regsz <= MN10300_MAX_REGISTER_SIZE);
   if (len <= regsz)
     {
       regcache_raw_read (regcache, reg, buf);
@@ -333,7 +337,7 @@ static void
 push_reg (pv_t *regs, struct pv_area *stack, int regnum)
 {
   regs[E_SP_REGNUM] = pv_add_constant (regs[E_SP_REGNUM], -4);
-  pv_area_store (stack, regs[E_SP_REGNUM], 4, regs[regnum]);
+  stack->store (regs[E_SP_REGNUM], 4, regs[regnum]);
 }
 
 /* Translate an "r" register number extracted from an instruction encoding
@@ -352,7 +356,7 @@ translate_rreg (int rreg)
     return E_E0_REGNUM + rreg;
 }
 
-/* Find saved registers in a 'struct pv_area'; we pass this to pv_area_scan.
+/* Find saved registers in a 'struct pv_area'; we pass this to pv_area::scan.
 
    If VALUE is a saved register, ADDR says it was saved at a constant
    offset from the frame base, and SIZE indicates that the whole
@@ -382,8 +386,6 @@ mn10300_analyze_prologue (struct gdbarch
   CORE_ADDR pc;
   int rn;
   pv_t regs[MN10300_MAX_NUM_REGS];
-  struct pv_area *stack;
-  struct cleanup *back_to;
   CORE_ADDR after_last_frame_setup_insn = start_pc;
   int am33_mode = AM33_MODE (gdbarch);
 
@@ -395,16 +397,15 @@ mn10300_analyze_prologue (struct gdbarch
       regs[rn] = pv_register (rn, 0);
       result->reg_offset[rn] = 1;
     }
-  stack = make_pv_area (E_SP_REGNUM, gdbarch_addr_bit (gdbarch));
-  back_to = make_cleanup_free_pv_area (stack);
+  pv_area stack (E_SP_REGNUM, gdbarch_addr_bit (gdbarch));
 
- /* The typical call instruction will have saved the return address on the
-    stack.  Space for the return address has already been preallocated in
-    the caller's frame.  It's possible, such as when using -mrelax with gcc
-    that other registers were saved as well.  If this happens, we really
-    have no chance of deciphering the frame.  DWARF info can save the day
-    when this happens.  */
-  pv_area_store (stack, regs[E_SP_REGNUM], 4, regs[E_PC_REGNUM]);
+  /* The typical call instruction will have saved the return address on the
+     stack.  Space for the return address has already been preallocated in
+     the caller's frame.  It's possible, such as when using -mrelax with gcc
+     that other registers were saved as well.  If this happens, we really
+     have no chance of deciphering the frame.  DWARF info can save the day
+     when this happens.  */
+  stack.store (regs[E_SP_REGNUM], 4, regs[E_PC_REGNUM]);
 
   pc = start_pc;
   while (pc < limit_pc)
@@ -428,42 +429,42 @@ mn10300_analyze_prologue (struct gdbarch
 
 	  if ((save_mask & movm_exreg0_bit) && am33_mode)
 	    {
-	      push_reg (regs, stack, E_E2_REGNUM);
-	      push_reg (regs, stack, E_E3_REGNUM);
+	      push_reg (regs, &stack, E_E2_REGNUM);
+	      push_reg (regs, &stack, E_E3_REGNUM);
 	    }
 	  if ((save_mask & movm_exreg1_bit) && am33_mode)
 	    {
-	      push_reg (regs, stack, E_E4_REGNUM);
-	      push_reg (regs, stack, E_E5_REGNUM);
-	      push_reg (regs, stack, E_E6_REGNUM);
-	      push_reg (regs, stack, E_E7_REGNUM);
+	      push_reg (regs, &stack, E_E4_REGNUM);
+	      push_reg (regs, &stack, E_E5_REGNUM);
+	      push_reg (regs, &stack, E_E6_REGNUM);
+	      push_reg (regs, &stack, E_E7_REGNUM);
 	    }
 	  if ((save_mask & movm_exother_bit) && am33_mode)
 	    {
-	      push_reg (regs, stack, E_E0_REGNUM);
-	      push_reg (regs, stack, E_E1_REGNUM);
-	      push_reg (regs, stack, E_MDRQ_REGNUM);
-	      push_reg (regs, stack, E_MCRH_REGNUM);
-	      push_reg (regs, stack, E_MCRL_REGNUM);
-	      push_reg (regs, stack, E_MCVF_REGNUM);
+	      push_reg (regs, &stack, E_E0_REGNUM);
+	      push_reg (regs, &stack, E_E1_REGNUM);
+	      push_reg (regs, &stack, E_MDRQ_REGNUM);
+	      push_reg (regs, &stack, E_MCRH_REGNUM);
+	      push_reg (regs, &stack, E_MCRL_REGNUM);
+	      push_reg (regs, &stack, E_MCVF_REGNUM);
 	    }
 	  if (save_mask & movm_d2_bit)
-	    push_reg (regs, stack, E_D2_REGNUM);
+	    push_reg (regs, &stack, E_D2_REGNUM);
 	  if (save_mask & movm_d3_bit)
-	    push_reg (regs, stack, E_D3_REGNUM);
+	    push_reg (regs, &stack, E_D3_REGNUM);
 	  if (save_mask & movm_a2_bit)
-	    push_reg (regs, stack, E_A2_REGNUM);
+	    push_reg (regs, &stack, E_A2_REGNUM);
 	  if (save_mask & movm_a3_bit)
-	    push_reg (regs, stack, E_A3_REGNUM);
+	    push_reg (regs, &stack, E_A3_REGNUM);
 	  if (save_mask & movm_other_bit)
 	    {
-	      push_reg (regs, stack, E_D0_REGNUM);
-	      push_reg (regs, stack, E_D1_REGNUM);
-	      push_reg (regs, stack, E_A0_REGNUM);
-	      push_reg (regs, stack, E_A1_REGNUM);
-	      push_reg (regs, stack, E_MDR_REGNUM);
-	      push_reg (regs, stack, E_LIR_REGNUM);
-	      push_reg (regs, stack, E_LAR_REGNUM);
+	      push_reg (regs, &stack, E_D0_REGNUM);
+	      push_reg (regs, &stack, E_D1_REGNUM);
+	      push_reg (regs, &stack, E_A0_REGNUM);
+	      push_reg (regs, &stack, E_A1_REGNUM);
+	      push_reg (regs, &stack, E_MDR_REGNUM);
+	      push_reg (regs, &stack, E_LIR_REGNUM);
+	      push_reg (regs, &stack, E_LAR_REGNUM);
 	      /* The `other' bit leaves a blank area of four bytes at
 		 the beginning of its block of saved registers, making
 		 it 32 bytes long in total.  */
@@ -649,8 +650,8 @@ mn10300_analyze_prologue (struct gdbarch
 	  rN = buf[0] & 0x0f;
 	  fsM = (Y << 4) | sM;
 
-	  pv_area_store (stack, regs[translate_rreg (rN)], 4,
-	                 regs[E_FS0_REGNUM + fsM]);
+	  stack.store (regs[translate_rreg (rN)], 4,
+		       regs[E_FS0_REGNUM + fsM]);
 
 	  pc += 3;
 	}
@@ -669,8 +670,8 @@ mn10300_analyze_prologue (struct gdbarch
 	  sM = (buf[0] & 0xf0) >> 4;
 	  fsM = (Y << 4) | sM;
 
-	  pv_area_store (stack, regs[E_SP_REGNUM], 4,
-	                 regs[E_FS0_REGNUM + fsM]);
+	  stack.store (regs[E_SP_REGNUM], 4,
+		       regs[E_FS0_REGNUM + fsM]);
 
 	  pc += 3;
 	}
@@ -691,10 +692,9 @@ mn10300_analyze_prologue (struct gdbarch
 	  Z = (buf[1] & 0x02) >> 1;
 	  fsM = (Z << 4) | sM;
 
-	  pv_area_store (stack,
-	                 pv_add (regs[translate_rreg (rN)],
-			         regs[translate_rreg (rI)]),
-			 4, regs[E_FS0_REGNUM + fsM]);
+	  stack.store (pv_add (regs[translate_rreg (rN)],
+			       regs[translate_rreg (rI)]),
+		       4, regs[E_FS0_REGNUM + fsM]);
 
 	  pc += 4;
 	}
@@ -716,9 +716,8 @@ mn10300_analyze_prologue (struct gdbarch
 	  fsM = (Y << 4) | sM;
 	  d8 = extract_signed_integer (&buf[1], 1, byte_order);
 
-	  pv_area_store (stack,
-	                 pv_add_constant (regs[translate_rreg (rN)], d8),
-	                 4, regs[E_FS0_REGNUM + fsM]);
+	  stack.store (pv_add_constant (regs[translate_rreg (rN)], d8),
+		       4, regs[E_FS0_REGNUM + fsM]);
 
 	  pc += 4;
 	}
@@ -740,9 +739,8 @@ mn10300_analyze_prologue (struct gdbarch
 	  fsM = (Y << 4) | sM;
 	  d24 = extract_signed_integer (&buf[1], 3, byte_order);
 
-	  pv_area_store (stack,
-	                 pv_add_constant (regs[translate_rreg (rN)], d24),
-	                 4, regs[E_FS0_REGNUM + fsM]);
+	  stack.store (pv_add_constant (regs[translate_rreg (rN)], d24),
+		       4, regs[E_FS0_REGNUM + fsM]);
 
 	  pc += 6;
 	}
@@ -764,9 +762,8 @@ mn10300_analyze_prologue (struct gdbarch
 	  fsM = (Y << 4) | sM;
 	  d32 = extract_signed_integer (&buf[1], 4, byte_order);
 
-	  pv_area_store (stack,
-	                 pv_add_constant (regs[translate_rreg (rN)], d32),
-	                 4, regs[E_FS0_REGNUM + fsM]);
+	  stack.store (pv_add_constant (regs[translate_rreg (rN)], d32),
+		       4, regs[E_FS0_REGNUM + fsM]);
 
 	  pc += 7;
 	}
@@ -787,9 +784,8 @@ mn10300_analyze_prologue (struct gdbarch
 	  fsM = (Y << 4) | sM;
 	  d8 = extract_signed_integer (&buf[1], 1, byte_order);
 
-	  pv_area_store (stack,
-	                 pv_add_constant (regs[E_SP_REGNUM], d8),
-	                 4, regs[E_FS0_REGNUM + fsM]);
+	  stack.store (pv_add_constant (regs[E_SP_REGNUM], d8),
+		       4, regs[E_FS0_REGNUM + fsM]);
 
 	  pc += 4;
 	}
@@ -810,9 +806,8 @@ mn10300_analyze_prologue (struct gdbarch
 	  fsM = (Y << 4) | sM;
 	  d24 = extract_signed_integer (&buf[1], 3, byte_order);
 
-	  pv_area_store (stack,
-	                 pv_add_constant (regs[E_SP_REGNUM], d24),
-	                 4, regs[E_FS0_REGNUM + fsM]);
+	  stack.store (pv_add_constant (regs[E_SP_REGNUM], d24),
+		       4, regs[E_FS0_REGNUM + fsM]);
 
 	  pc += 6;
 	}
@@ -833,9 +828,8 @@ mn10300_analyze_prologue (struct gdbarch
 	  fsM = (Y << 4) | sM;
 	  d32 = extract_signed_integer (&buf[1], 4, byte_order);
 
-	  pv_area_store (stack,
-	                 pv_add_constant (regs[E_SP_REGNUM], d32),
-	                 4, regs[E_FS0_REGNUM + fsM]);
+	  stack.store (pv_add_constant (regs[E_SP_REGNUM], d32),
+		       4, regs[E_FS0_REGNUM + fsM]);
 
 	  pc += 7;
 	}
@@ -857,8 +851,8 @@ mn10300_analyze_prologue (struct gdbarch
 
 	  rN_regnum = translate_rreg (rN);
 
-	  pv_area_store (stack, regs[rN_regnum], 4,
-	                 regs[E_FS0_REGNUM + fsM]);
+	  stack.store (regs[rN_regnum], 4,
+		       regs[E_FS0_REGNUM + fsM]);
 	  regs[rN_regnum] = pv_add_constant (regs[rN_regnum], 4);
 
 	  pc += 3;
@@ -883,7 +877,7 @@ mn10300_analyze_prologue (struct gdbarch
 
 	  rN_regnum = translate_rreg (rN);
 
-	  pv_area_store (stack, regs[rN_regnum], 4, regs[E_FS0_REGNUM + fsM]);
+	  stack.store (regs[rN_regnum], 4, regs[E_FS0_REGNUM + fsM]);
 	  regs[rN_regnum] = pv_add_constant (regs[rN_regnum], imm8);
 
 	  pc += 4;
@@ -908,7 +902,7 @@ mn10300_analyze_prologue (struct gdbarch
 
 	  rN_regnum = translate_rreg (rN);
 
-	  pv_area_store (stack, regs[rN_regnum], 4, regs[E_FS0_REGNUM + fsM]);
+	  stack.store (regs[rN_regnum], 4, regs[E_FS0_REGNUM + fsM]);
 	  regs[rN_regnum] = pv_add_constant (regs[rN_regnum], imm24);
 
 	  pc += 6;
@@ -933,7 +927,7 @@ mn10300_analyze_prologue (struct gdbarch
 
 	  rN_regnum = translate_rreg (rN);
 
-	  pv_area_store (stack, regs[rN_regnum], 4, regs[E_FS0_REGNUM + fsM]);
+	  stack.store (regs[rN_regnum], 4, regs[E_FS0_REGNUM + fsM]);
 	  regs[rN_regnum] = pv_add_constant (regs[rN_regnum], imm32);
 
 	  pc += 7;
@@ -1040,11 +1034,9 @@ mn10300_analyze_prologue (struct gdbarch
     }
 
   /* Record where all the registers were saved.  */
-  pv_area_scan (stack, check_for_saved, (void *) result);
+  stack.scan (check_for_saved, (void *) result);
 
   result->prologue_end = after_last_frame_setup_insn;
-
-  do_cleanups (back_to);
 }
 
 /* Function: skip_prologue
@@ -1224,7 +1216,7 @@ mn10300_push_dummy_call (struct gdbarch 
   int stack_offset = 0;
   int argnum;
   const gdb_byte *val;
-  gdb_byte valbuf[MAX_REGISTER_SIZE];
+  gdb_byte valbuf[MN10300_MAX_REGISTER_SIZE];
 
   /* This should be a nop, but align the stack just in case something
      went wrong.  Stacks are four byte aligned on the mn10300.  */
@@ -1266,6 +1258,7 @@ mn10300_push_dummy_call (struct gdbarch 
 	{
 	  /* Change to pointer-to-type.  */
 	  arg_len = push_size;
+	  gdb_assert (push_size <= MN10300_MAX_REGISTER_SIZE);
 	  store_unsigned_integer (valbuf, push_size, byte_order,
 				  value_address (*args));
 	  val = &valbuf[0];
@@ -1395,7 +1388,7 @@ mn10300_gdbarch_init (struct gdbarch_inf
   if (arches != NULL)
     return arches->gdbarch;
 
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
 
   switch (info.bfd_arch_info->mach)
@@ -1444,8 +1437,6 @@ mn10300_gdbarch_init (struct gdbarch_inf
   set_gdbarch_sw_breakpoint_from_kind (gdbarch,
 				       mn10300_breakpoint::bp_from_kind);
   /* decr_pc_after_break?  */
-  /* Disassembly.  */
-  set_gdbarch_print_insn (gdbarch, print_insn_mn10300);
 
   /* Stage 2 */
   set_gdbarch_return_value (gdbarch, mn10300_return_value);
@@ -1473,9 +1464,6 @@ mn10300_dump_tdep (struct gdbarch *gdbar
 		      tdep->am33_mode);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_mn10300_tdep;
-
 void
 _initialize_mn10300_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mn10300-tdep.h ./gdb/mn10300-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mn10300-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mn10300-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent interface for Matsushita MN10300 for GDB, the GNU debugger.
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/moxie-tdep.c ./gdb/moxie-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/moxie-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/moxie-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Moxie.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -41,10 +41,6 @@
 #include "moxie-tdep.h"
 #include <algorithm>
 
-/* Local functions.  */
-
-extern void _initialize_moxie_tdep (void);
-
 /* Use an invalid address value as 'not available' marker.  */
 enum { REG_UNAVAIL = (CORE_ADDR) -1 };
 
@@ -112,7 +108,7 @@ static void
 moxie_store_return_value (struct type *type, struct regcache *regcache,
 			 const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR regval;
   int len = TYPE_LENGTH (type);
@@ -299,17 +295,17 @@ moxie_process_readu (CORE_ADDR addr, gdb
 
 /* Insert a single step breakpoint.  */
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 moxie_software_single_step (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   CORE_ADDR addr;
   gdb_byte buf[4];
   uint16_t inst;
   uint32_t tmpu32;
   ULONGEST fp;
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  VEC (CORE_ADDR) *next_pcs = NULL;
+  std::vector<CORE_ADDR> next_pcs;
 
   addr = regcache_read_pc (regcache);
 
@@ -337,9 +333,8 @@ moxie_software_single_step (struct regca
 	    case 0x09: /* bleu */
 	      /* Insert breaks on both branches, because we can't currently tell
 		 which way things will go.  */
-	      VEC_safe_push (CORE_ADDR, next_pcs, addr + 2);
-	      VEC_safe_push (CORE_ADDR, next_pcs,
-			     addr + 2 + INST2OFFSET(inst));
+	      next_pcs.push_back (addr + 2);
+	      next_pcs.push_back (addr + 2 + INST2OFFSET(inst));
 	      break;
 	    default:
 	      {
@@ -351,7 +346,7 @@ moxie_software_single_step (struct regca
       else
 	{
 	  /* This is a Form 2 instruction.  They are all 16 bits.  */
-	  VEC_safe_push (CORE_ADDR, next_pcs, addr + 2);
+	  next_pcs.push_back (addr + 2);
 	}
     }
   else
@@ -398,7 +393,7 @@ moxie_software_single_step (struct regca
 	case 0x32: /* udiv.l */
 	case 0x33: /* mod.l */
 	case 0x34: /* umod.l */
-	  VEC_safe_push (CORE_ADDR, next_pcs, addr + 2);
+	  next_pcs.push_back (addr + 2);
 	  break;
 
 	  /* 32-bit instructions.  */
@@ -408,7 +403,7 @@ moxie_software_single_step (struct regca
 	case 0x37: /* sto.b */
 	case 0x38: /* ldo.s */
 	case 0x39: /* sto.s */
-	  VEC_safe_push (CORE_ADDR, next_pcs, addr + 4);
+	  next_pcs.push_back (addr + 4);
 	  break;
 
 	  /* 48-bit instructions.  */
@@ -421,27 +416,26 @@ moxie_software_single_step (struct regca
 	case 0x20: /* ldi.s (immediate) */
 	case 0x22: /* lda.s */
 	case 0x24: /* sta.s */
-	  VEC_safe_push (CORE_ADDR, next_pcs, addr + 6);
+	  next_pcs.push_back (addr + 6);
 	  break;
 
 	  /* Control flow instructions.	 */
 	case 0x03: /* jsra */
 	case 0x1a: /* jmpa */
-	  VEC_safe_push (CORE_ADDR, next_pcs,
-			 moxie_process_readu (addr + 2, buf, 4, byte_order));
+	  next_pcs.push_back (moxie_process_readu (addr + 2, buf, 4,
+						   byte_order));
 	  break;
 
 	case 0x04: /* ret */
 	  regcache_cooked_read_unsigned (regcache, MOXIE_FP_REGNUM, &fp);
-	  VEC_safe_push (CORE_ADDR, next_pcs,
-			 moxie_process_readu (fp + 4, buf, 4, byte_order));
+	  next_pcs.push_back (moxie_process_readu (fp + 4, buf, 4, byte_order));
 	  break;
 
 	case 0x19: /* jsr */
 	case 0x25: /* jmp */
 	  regcache_raw_read (regcache,
 			     (inst >> 4) & 0xf, (gdb_byte *) & tmpu32);
-	  VEC_safe_push (CORE_ADDR, next_pcs, tmpu32);
+	  next_pcs.push_back (tmpu32);
 	  break;
 
 	case 0x30: /* swi */
@@ -488,7 +482,7 @@ static void
 moxie_extract_return_value (struct type *type, struct regcache *regcache,
 			    gdb_byte *dst)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int len = TYPE_LENGTH (type);
   ULONGEST tmp;
@@ -1109,7 +1103,7 @@ moxie_gdbarch_init (struct gdbarch_info 
     return arches->gdbarch;
 
   /* Allocate space for the new architecture.  */
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
 
   set_gdbarch_wchar_bit (gdbarch, 32);
@@ -1144,8 +1138,6 @@ moxie_gdbarch_init (struct gdbarch_info 
 
   set_gdbarch_unwind_pc (gdbarch, moxie_unwind_pc);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_moxie);
-
   /* Hook in ABI-specific overrides, if they have been registered.  */
   gdbarch_init_osabi (info, gdbarch);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/moxie-tdep.h ./gdb/moxie-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/moxie-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/moxie-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Moxie
  
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/msp430-tdep.c ./gdb/msp430-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/msp430-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/msp430-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Target-dependent code for the Texas Instruments MSP430 for GDB, the
    GNU debugger.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat, Inc.
 
@@ -311,7 +311,7 @@ msp430_get_opcode_byte (void *handle)
 }
 
 /* Function for finding saved registers in a 'struct pv_area'; this
-   function is passed to pv_area_scan.
+   function is passed to pv_area::scan.
 
    If VALUE is a saved register, ADDR says it was saved at a constant
    offset from the frame base, and SIZE indicates that the whole
@@ -339,8 +339,6 @@ msp430_analyze_prologue (struct gdbarch 
   CORE_ADDR pc, next_pc;
   int rn;
   pv_t reg[MSP430_NUM_TOTAL_REGS];
-  struct pv_area *stack;
-  struct cleanup *back_to;
   CORE_ADDR after_last_frame_setup_insn = start_pc;
   int code_model = gdbarch_tdep (gdbarch)->code_model;
   int sz;
@@ -353,13 +351,12 @@ msp430_analyze_prologue (struct gdbarch 
       result->reg_offset[rn] = 1;
     }
 
-  stack = make_pv_area (MSP430_SP_REGNUM, gdbarch_addr_bit (gdbarch));
-  back_to = make_cleanup_free_pv_area (stack);
+  pv_area stack (MSP430_SP_REGNUM, gdbarch_addr_bit (gdbarch));
 
   /* The call instruction has saved the return address on the stack.  */
   sz = code_model == MSP_LARGE_CODE_MODEL ? 4 : 2;
   reg[MSP430_SP_REGNUM] = pv_add_constant (reg[MSP430_SP_REGNUM], -sz);
-  pv_area_store (stack, reg[MSP430_SP_REGNUM], sz, reg[MSP430_PC_REGNUM]);
+  stack.store (reg[MSP430_SP_REGNUM], sz, reg[MSP430_PC_REGNUM]);
 
   pc = start_pc;
   while (pc < limit_pc)
@@ -378,7 +375,7 @@ msp430_analyze_prologue (struct gdbarch 
 	  int rsrc = opc.op[0].reg;
 
 	  reg[MSP430_SP_REGNUM] = pv_add_constant (reg[MSP430_SP_REGNUM], -2);
-	  pv_area_store (stack, reg[MSP430_SP_REGNUM], 2, reg[rsrc]);
+	  stack.store (reg[MSP430_SP_REGNUM], 2, reg[rsrc]);
 	  after_last_frame_setup_insn = next_pc;
 	}
       else if (opc.id == MSO_push	/* PUSHM  */
@@ -393,7 +390,7 @@ msp430_analyze_prologue (struct gdbarch 
 	    {
 	      reg[MSP430_SP_REGNUM]
 		= pv_add_constant (reg[MSP430_SP_REGNUM], -size);
-	      pv_area_store (stack, reg[MSP430_SP_REGNUM], size, reg[rsrc]);
+	      stack.store (reg[MSP430_SP_REGNUM], size, reg[rsrc]);
 	      rsrc--;
 	      count--;
 	    }
@@ -428,11 +425,9 @@ msp430_analyze_prologue (struct gdbarch 
     result->frame_size = reg[MSP430_SP_REGNUM].k;
 
   /* Record where all the registers were saved.  */
-  pv_area_scan (stack, check_for_saved, result);
+  stack.scan (check_for_saved, result);
 
   result->prologue_end = after_last_frame_setup_insn;
-
-  do_cleanups (back_to);
 }
 
 /* Implement the "skip_prologue" gdbarch method.  */
@@ -944,7 +939,7 @@ msp430_gdbarch_init (struct gdbarch_info
 
   /* None found, create a new architecture from the information
      provided.  */
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
   tdep->elf_flags = elf_flags;
   tdep->isa = isa;
@@ -997,9 +992,6 @@ msp430_gdbarch_init (struct gdbarch_info
 				       msp430_breakpoint::bp_from_kind);
   set_gdbarch_decr_pc_after_break (gdbarch, 1);
 
-  /* Disassembly.  */
-  set_gdbarch_print_insn (gdbarch, print_insn_msp430);
-
   /* Frames, prologues, etc.  */
   set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
   set_gdbarch_skip_prologue (gdbarch, msp430_skip_prologue);
@@ -1024,9 +1016,6 @@ msp430_gdbarch_init (struct gdbarch_info
   return gdbarch;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_msp430_tdep;
-
 /* Register the initialization routine.  */
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mt-tdep.c ./gdb/mt-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/mt-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/mt-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Morpho mt processor, for GDB.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -36,6 +36,7 @@
 #include "infcall.h"
 #include "language.h"
 #include "valprint.h"
+#include "common/byte-vector.h"
 
 enum mt_arch_constants
 {
@@ -849,21 +850,17 @@ mt_push_dummy_call (struct gdbarch *gdba
   /* Next, the rest of the arguments go onto the stack, in reverse order.  */
   for (j = nargs - 1; j >= i; j--)
     {
-      gdb_byte *val;
-      struct cleanup *back_to;
       const gdb_byte *contents = value_contents (args[j]);
       
       /* Right-justify the value in an aligned-length buffer.  */
       typelen = TYPE_LENGTH (value_type (args[j]));
       slacklen = (wordsize - (typelen % wordsize)) % wordsize;
-      val = (gdb_byte *) xmalloc (typelen + slacklen);
-      back_to = make_cleanup (xfree, val);
-      memcpy (val, contents, typelen);
-      memset (val + typelen, 0, slacklen);
+      gdb::byte_vector val (typelen + slacklen);
+      memcpy (val.data (), contents, typelen);
+      memset (val.data () + typelen, 0, slacklen);
       /* Now write this data to the stack.  */
       stack_dest -= typelen + slacklen;
-      write_memory (stack_dest, val, typelen + slacklen);
-      do_cleanups (back_to);
+      write_memory (stack_dest, val.data (), typelen + slacklen);
     }
 
   /* Finally, if a param needs to be split between registers and stack, 
@@ -1174,7 +1171,6 @@ mt_gdbarch_init (struct gdbarch_info inf
   set_gdbarch_sw_breakpoint_from_kind (gdbarch, mt_sw_breakpoint_from_kind);
   set_gdbarch_decr_pc_after_break (gdbarch, 0);
   set_gdbarch_frame_args_skip (gdbarch, 0);
-  set_gdbarch_print_insn (gdbarch, print_insn_mt);
   set_gdbarch_register_type (gdbarch, mt_register_type);
   set_gdbarch_register_reggroup_p (gdbarch, mt_register_reggroup_p);
 
@@ -1215,9 +1211,6 @@ mt_gdbarch_init (struct gdbarch_info inf
   return gdbarch;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_mt_tdep;
-
 void
 _initialize_mt_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/namespace.c ./gdb/namespace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/namespace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/namespace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Code dealing with "using" directives for GDB.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -39,7 +39,7 @@ add_using_directive (struct using_direct
 		     const char *src,
 		     const char *alias,
 		     const char *declaration,
-		     VEC (const_char_ptr) *excludes,
+		     const std::vector<const char *> &excludes,
 		     int copy_names,
 		     struct obstack *obstack)
 {
@@ -52,7 +52,6 @@ add_using_directive (struct using_direct
   for (current = *using_directives; current != NULL; current = current->next)
     {
       int ix;
-      const char *param;
 
       if (strcmp (current->import_src, src) != 0)
 	continue;
@@ -70,12 +69,11 @@ add_using_directive (struct using_direct
 	continue;
 
       /* Compare the contents of EXCLUDES.  */
-      for (ix = 0; VEC_iterate (const_char_ptr, excludes, ix, param); ix++)
+      for (ix = 0; ix < excludes.size (); ++ix)
 	if (current->excludes[ix] == NULL
-	    || strcmp (param, current->excludes[ix]) != 0)
+	    || strcmp (excludes[ix], current->excludes[ix]) != 0)
 	  break;
-      if (ix < VEC_length (const_char_ptr, excludes)
-	  || current->excludes[ix] != NULL)
+      if (ix < excludes.size () || current->excludes[ix] != NULL)
 	continue;
 
       /* Parameters exactly match CURRENT.  */
@@ -83,8 +81,7 @@ add_using_directive (struct using_direct
     }
 
   alloc_len = (sizeof(*newobj)
-	       + (VEC_length (const_char_ptr, excludes)
-		  * sizeof(*newobj->excludes)));
+	       + (excludes.size () * sizeof(*newobj->excludes)));
   newobj = (struct using_direct *) obstack_alloc (obstack, alloc_len);
   memset (newobj, 0, sizeof (*newobj));
 
@@ -114,9 +111,9 @@ add_using_directive (struct using_direct
   else
     newobj->declaration = declaration;
 
-  memcpy (newobj->excludes, VEC_address (const_char_ptr, excludes),
-	  VEC_length (const_char_ptr, excludes) * sizeof (*newobj->excludes));
-  newobj->excludes[VEC_length (const_char_ptr, excludes)] = NULL;
+  memcpy (newobj->excludes, excludes.data (),
+	  excludes.size () * sizeof (*newobj->excludes));
+  newobj->excludes[excludes.size ()] = NULL;
 
   newobj->next = *using_directives;
   *using_directives = newobj;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/namespace.h ./gdb/namespace.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/namespace.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/namespace.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Code dealing with "using" directives for GDB.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -111,7 +111,7 @@ extern void add_using_directive (struct 
 				 const char *src,
 				 const char *alias,
 				 const char *declaration,
-				 VEC (const_char_ptr) *excludes,
+				 const std::vector<const char *> &excludes,
 				 int copy_names,
                                  struct obstack *obstack);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/aarch64-linux.c ./gdb/nat/aarch64-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/aarch64-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/aarch64-linux.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GDB.
@@ -84,6 +84,14 @@ aarch64_linux_new_thread (struct lwp_inf
   lwp_set_arch_private_info (lwp, info);
 }
 
+/* See nat/aarch64-linux.h.  */
+
+void
+aarch64_linux_delete_thread (struct arch_lwp_info *arch_lwp)
+{
+  xfree (arch_lwp);
+}
+
 /* Convert native siginfo FROM to the siginfo in the layout of the
    inferior's architecture TO.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/aarch64-linux.h ./gdb/nat/aarch64-linux.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/aarch64-linux.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/aarch64-linux.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GDB.
@@ -122,6 +122,9 @@ void aarch64_linux_prepare_to_resume (st
 
 void aarch64_linux_new_thread (struct lwp_info *lwp);
 
+/* Function to call when a thread is being deleted.  */
+void aarch64_linux_delete_thread (struct arch_lwp_info *arch_lwp);
+
 ps_err_e aarch64_ps_get_thread_area (struct ps_prochandle *ph,
 				       lwpid_t lwpid, int idx, void **base,
 				       int is_64bit_p);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/aarch64-linux-hw-point.c ./gdb/nat/aarch64-linux-hw-point.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/aarch64-linux-hw-point.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/aarch64-linux-hw-point.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/aarch64-linux-hw-point.h ./gdb/nat/aarch64-linux-hw-point.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/aarch64-linux-hw-point.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/aarch64-linux-hw-point.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/amd64-linux-siginfo.c ./gdb/nat/amd64-linux-siginfo.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/amd64-linux-siginfo.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/amd64-linux-siginfo.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low-level siginfo manipulation for amd64.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/amd64-linux-siginfo.h ./gdb/nat/amd64-linux-siginfo.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/amd64-linux-siginfo.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/amd64-linux-siginfo.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low-level siginfo manipulation for amd64.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/fork-inferior.c ./gdb/nat/fork-inferior.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/fork-inferior.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/nat/fork-inferior.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,616 @@
+/* Fork a Unix child process, and set up to debug it, for GDB and GDBserver.
+
+   Copyright (C) 1990-2018 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 "fork-inferior.h"
+#include "target/waitstatus.h"
+#include "filestuff.h"
+#include "target/target.h"
+#include "common-inferior.h"
+#include "common-gdbthread.h"
+#include "signals-state-save-restore.h"
+#include "gdb_tilde_expand.h"
+#include <vector>
+
+extern char **environ;
+
+/* Default shell file to be used if 'startup-with-shell' is set but
+   $SHELL is not.  */
+#define SHELL_FILE "/bin/sh"
+
+/* Build the argument vector for execv(3).  */
+
+class execv_argv
+{
+public:
+  /* EXEC_FILE is the file to run.  ALLARGS is a string containing the
+     arguments to the program.  If starting with a shell, SHELL_FILE
+     is the shell to run.  Otherwise, SHELL_FILE is NULL.  */
+  execv_argv (const char *exec_file, const std::string &allargs,
+	      const char *shell_file);
+
+  /* Return a pointer to the built argv, in the type expected by
+     execv.  The result is (only) valid for as long as this execv_argv
+     object is live.  We return a "char **" because that's the type
+     that the execv functions expect.  Note that it is guaranteed that
+     the execv functions do not modify the argv[] array nor the
+     strings to which the array point.  */
+  char **argv ()
+  {
+    return const_cast<char **> (&m_argv[0]);
+  }
+
+private:
+  DISABLE_COPY_AND_ASSIGN (execv_argv);
+
+  /* Helper methods for constructing the argument vector.  */
+
+  /* Used when building an argv for a straight execv call, without
+     going via the shell.  */
+  void init_for_no_shell (const char *exec_file,
+			  const std::string &allargs);
+
+  /* Used when building an argv for execing a shell that execs the
+     child program.  */
+  void init_for_shell (const char *exec_file,
+		       const std::string &allargs,
+		       const char *shell_file);
+
+  /* The argument vector built.  Holds non-owning pointers.  Elements
+     either point to the strings passed to the execv_argv ctor, or
+     inside M_STORAGE.  */
+  std::vector<const char *> m_argv;
+
+  /* Storage.  In the no-shell case, this contains a copy of the
+     arguments passed to the ctor, split by '\0'.  In the shell case,
+     this contains the quoted shell command.  I.e., SHELL_COMMAND in
+     {"$SHELL" "-c", SHELL_COMMAND, NULL}.  */
+  std::string m_storage;
+};
+
+/* Create argument vector for straight call to execvp.  Breaks up
+   ALLARGS into an argument vector suitable for passing to execvp and
+   stores it in M_ARGV.  E.g., on "run a b c d" this routine would get
+   as input the string "a b c d", and as output it would fill in
+   M_ARGV with the four arguments "a", "b", "c", "d".  Each argument
+   in M_ARGV points to a substring of a copy of ALLARGS stored in
+   M_STORAGE.  */
+
+void
+execv_argv::init_for_no_shell (const char *exec_file,
+			       const std::string &allargs)
+{
+
+  /* Save/work with a copy stored in our storage.  The pointers pushed
+     to M_ARGV point directly into M_STORAGE, which is modified in
+     place with the necessary NULL terminators.  This avoids N heap
+     allocations and string dups when 1 is sufficient.  */
+  std::string &args_copy = m_storage = allargs;
+
+  m_argv.push_back (exec_file);
+
+  for (size_t cur_pos = 0; cur_pos < args_copy.size ();)
+    {
+      /* Skip whitespace-like chars.  */
+      std::size_t pos = args_copy.find_first_not_of (" \t\n", cur_pos);
+
+      if (pos != std::string::npos)
+	cur_pos = pos;
+
+      /* Find the position of the next separator.  */
+      std::size_t next_sep = args_copy.find_first_of (" \t\n", cur_pos);
+
+      if (next_sep == std::string::npos)
+	{
+	  /* No separator found, which means this is the last
+	     argument.  */
+	  next_sep = args_copy.size ();
+	}
+      else
+	{
+	  /* Replace the separator with a terminator.  */
+	  args_copy[next_sep++] = '\0';
+	}
+
+      m_argv.push_back (&args_copy[cur_pos]);
+
+      cur_pos = next_sep;
+    }
+
+  /* NULL-terminate the vector.  */
+  m_argv.push_back (NULL);
+}
+
+/* When executing a command under the given shell, return true if the
+   '!' character should be escaped when embedded in a quoted
+   command-line argument.  */
+
+static bool
+escape_bang_in_quoted_argument (const char *shell_file)
+{
+  size_t shell_file_len = strlen (shell_file);
+
+  /* Bang should be escaped only in C Shells.  For now, simply check
+     that the shell name ends with 'csh', which covers at least csh
+     and tcsh.  This should be good enough for now.  */
+
+  if (shell_file_len < 3)
+    return false;
+
+  if (shell_file[shell_file_len - 3] == 'c'
+      && shell_file[shell_file_len - 2] == 's'
+      && shell_file[shell_file_len - 1] == 'h')
+    return true;
+
+  return false;
+}
+
+/* See declaration.  */
+
+execv_argv::execv_argv (const char *exec_file,
+			const std::string &allargs,
+			const char *shell_file)
+{
+  if (shell_file == NULL)
+    init_for_no_shell (exec_file, allargs);
+  else
+    init_for_shell (exec_file, allargs, shell_file);
+}
+
+/* See declaration.  */
+
+void
+execv_argv::init_for_shell (const char *exec_file,
+			    const std::string &allargs,
+			    const char *shell_file)
+{
+  const char *exec_wrapper = get_exec_wrapper ();
+
+  /* We're going to call a shell.  */
+  bool escape_bang = escape_bang_in_quoted_argument (shell_file);
+
+  /* We need to build a new shell command string, and make argv point
+     to it.  So build it in the storage.  */
+  std::string &shell_command = m_storage;
+
+  shell_command = "exec ";
+
+  /* Add any exec wrapper.  That may be a program name with arguments,
+     so the user must handle quoting.  */
+  if (exec_wrapper != NULL)
+    {
+      shell_command += exec_wrapper;
+      shell_command += ' ';
+    }
+
+  /* Now add exec_file, quoting as necessary.  */
+
+  /* Quoting in this style is said to work with all shells.  But csh
+     on IRIX 4.0.1 can't deal with it.  So we only quote it if we need
+     to.  */
+  bool need_to_quote;
+  const char *p = exec_file;
+  while (1)
+    {
+      switch (*p)
+	{
+	case '\'':
+	case '!':
+	case '"':
+	case '(':
+	case ')':
+	case '$':
+	case '&':
+	case ';':
+	case '<':
+	case '>':
+	case ' ':
+	case '\n':
+	case '\t':
+	  need_to_quote = true;
+	  goto end_scan;
+
+	case '\0':
+	  need_to_quote = false;
+	  goto end_scan;
+
+	default:
+	  break;
+	}
+      ++p;
+    }
+ end_scan:
+  if (need_to_quote)
+    {
+      shell_command += '\'';
+      for (p = exec_file; *p != '\0'; ++p)
+	{
+	  if (*p == '\'')
+	    shell_command += "'\\''";
+	  else if (*p == '!' && escape_bang)
+	    shell_command += "\\!";
+	  else
+	    shell_command += *p;
+	}
+      shell_command += '\'';
+    }
+  else
+    shell_command += exec_file;
+
+  shell_command += ' ' + allargs;
+
+  /* If we decided above to start up with a shell, we exec the shell.
+     "-c" says to interpret the next arg as a shell command to
+     execute, and this command is "exec <target-program> <args>".  */
+  m_argv.reserve (4);
+  m_argv.push_back (shell_file);
+  m_argv.push_back ("-c");
+  m_argv.push_back (shell_command.c_str ());
+  m_argv.push_back (NULL);
+}
+
+/* Return the shell that must be used to startup the inferior.  The
+   first attempt is the environment variable SHELL; if it is not set,
+   then we default to SHELL_FILE.  */
+
+static const char *
+get_startup_shell ()
+{
+  static const char *ret;
+
+  ret = getenv ("SHELL");
+  if (ret == NULL)
+    ret = SHELL_FILE;
+
+  return ret;
+}
+
+/* See nat/fork-inferior.h.  */
+
+pid_t
+fork_inferior (const char *exec_file_arg, const std::string &allargs,
+	       char **env, void (*traceme_fun) (),
+	       void (*init_trace_fun) (int), void (*pre_trace_fun) (),
+	       const char *shell_file_arg,
+               void (*exec_fun)(const char *file, char * const *argv,
+                                char * const *env))
+{
+  pid_t pid;
+  /* Set debug_fork then attach to the child while it sleeps, to debug.  */
+  int debug_fork = 0;
+  const char *shell_file;
+  const char *exec_file;
+  char **save_our_env;
+  int i;
+  int save_errno;
+  const char *inferior_cwd;
+  std::string expanded_inferior_cwd;
+
+  /* If no exec file handed to us, get it from the exec-file command
+     -- with a good, common error message if none is specified.  */
+  if (exec_file_arg == NULL)
+    exec_file = get_exec_file (1);
+  else
+    exec_file = exec_file_arg;
+
+  /* 'startup_with_shell' is declared in inferior.h and bound to the
+     "set startup-with-shell" option.  If 0, we'll just do a
+     fork/exec, no shell, so don't bother figuring out what shell.  */
+  if (startup_with_shell)
+    {
+      shell_file = shell_file_arg;
+
+      /* Figure out what shell to start up the user program under.  */
+      if (shell_file == NULL)
+	shell_file = get_startup_shell ();
+
+      gdb_assert (shell_file != NULL);
+    }
+  else
+    shell_file = NULL;
+
+  /* Build the argument vector.  */
+  execv_argv child_argv (exec_file, allargs, shell_file);
+
+  /* Retain a copy of our environment variables, since the child will
+     replace the value of environ and if we're vforked, we have to
+     restore it.  */
+  save_our_env = environ;
+
+  /* Perform any necessary actions regarding to TTY before the
+     fork/vfork call.  */
+  prefork_hook (allargs.c_str ());
+
+  /* It is generally good practice to flush any possible pending stdio
+     output prior to doing a fork, to avoid the possibility of both
+     the parent and child flushing the same data after the fork.  */
+  gdb_flush_out_err ();
+
+  /* Check if the user wants to set a different working directory for
+     the inferior.  */
+  inferior_cwd = get_inferior_cwd ();
+
+  if (inferior_cwd != NULL)
+    {
+      /* Expand before forking because between fork and exec, the child
+	 process may only execute async-signal-safe operations.  */
+      expanded_inferior_cwd = gdb_tilde_expand (inferior_cwd);
+      inferior_cwd = expanded_inferior_cwd.c_str ();
+    }
+
+  /* If there's any initialization of the target layers that must
+     happen to prepare to handle the child we're about fork, do it
+     now...  */
+  if (pre_trace_fun != NULL)
+    (*pre_trace_fun) ();
+
+  /* Create the child process.  Since the child process is going to
+     exec(3) shortly afterwards, try to reduce the overhead by
+     calling vfork(2).  However, if PRE_TRACE_FUN is non-null, it's
+     likely that this optimization won't work since there's too much
+     work to do between the vfork(2) and the exec(3).  This is known
+     to be the case on ttrace(2)-based HP-UX, where some handshaking
+     between parent and child needs to happen between fork(2) and
+     exec(2).  However, since the parent is suspended in the vforked
+     state, this doesn't work.  Also note that the vfork(2) call might
+     actually be a call to fork(2) due to the fact that autoconf will
+     ``#define vfork fork'' on certain platforms.  */
+#if !(defined(__UCLIBC__) && defined(HAS_NOMMU))
+  if (pre_trace_fun || debug_fork)
+    pid = fork ();
+  else
+#endif
+    pid = vfork ();
+
+  if (pid < 0)
+    perror_with_name (("vfork"));
+
+  if (pid == 0)
+    {
+      /* Close all file descriptors except those that gdb inherited
+	 (usually 0/1/2), so they don't leak to the inferior.  Note
+	 that this closes the file descriptors of all secondary
+	 UIs.  */
+      close_most_fds ();
+
+      /* Change to the requested working directory if the user
+	 requested it.  */
+      if (inferior_cwd != NULL)
+	{
+	  if (chdir (inferior_cwd) < 0)
+	    trace_start_error_with_name (inferior_cwd);
+	}
+
+      if (debug_fork)
+	sleep (debug_fork);
+
+      /* Execute any necessary post-fork actions before we exec.  */
+      postfork_child_hook ();
+
+      /* Changing the signal handlers for the inferior after
+         a vfork can also change them for the superior, so we don't mess
+         with signals here.  See comments in
+         initialize_signals for how we get the right signal handlers
+         for the inferior.  */
+
+      /* "Trace me, Dr. Memory!"  */
+      (*traceme_fun) ();
+
+      /* The call above set this process (the "child") as debuggable
+        by the original gdb process (the "parent").  Since processes
+        (unlike people) can have only one parent, if you are debugging
+        gdb itself (and your debugger is thus _already_ the
+        controller/parent for this child), code from here on out is
+        undebuggable.  Indeed, you probably got an error message
+        saying "not parent".  Sorry; you'll have to use print
+        statements!  */
+
+      restore_original_signals_state ();
+
+      /* There is no execlpe call, so we have to set the environment
+         for our child in the global variable.  If we've vforked, this
+         clobbers the parent, but environ is restored a few lines down
+         in the parent.  By the way, yes we do need to look down the
+         path to find $SHELL.  Rich Pixley says so, and I agree.  */
+      environ = env;
+
+      char **argv = child_argv.argv ();
+
+      if (exec_fun != NULL)
+        (*exec_fun) (argv[0], &argv[0], env);
+      else
+        execvp (argv[0], &argv[0]);
+
+      /* If we get here, it's an error.  */
+      save_errno = errno;
+      warning ("Cannot exec %s", argv[0]);
+
+      for (i = 1; argv[i] != NULL; i++)
+	warning (" %s", argv[i]);
+
+      warning ("Error: %s\n", safe_strerror (save_errno));
+
+      _exit (0177);
+    }
+
+  /* Restore our environment in case a vforked child clob'd it.  */
+  environ = save_our_env;
+
+  postfork_hook (pid);
+
+  /* Now that we have a child process, make it our target, and
+     initialize anything target-vector-specific that needs
+     initializing.  */
+  if (init_trace_fun)
+    (*init_trace_fun) (pid);
+
+  /* We are now in the child process of interest, having exec'd the
+     correct program, and are poised at the first instruction of the
+     new program.  */
+  return pid;
+}
+
+/* See nat/fork-inferior.h.  */
+
+ptid_t
+startup_inferior (pid_t pid, int ntraps,
+		  struct target_waitstatus *last_waitstatus,
+		  ptid_t *last_ptid)
+{
+  int pending_execs = ntraps;
+  int terminal_initted = 0;
+  ptid_t resume_ptid;
+
+  if (startup_with_shell)
+    {
+      /* One trap extra for exec'ing the shell.  */
+      pending_execs++;
+    }
+
+  if (target_supports_multi_process ())
+    resume_ptid = pid_to_ptid (pid);
+  else
+    resume_ptid = minus_one_ptid;
+
+  /* The process was started by the fork that created it, but it will
+     have stopped one instruction after execing the shell.  Here we
+     must get it up to actual execution of the real program.  */
+  if (get_exec_wrapper () != NULL)
+    pending_execs++;
+
+  while (1)
+    {
+      enum gdb_signal resume_signal = GDB_SIGNAL_0;
+      ptid_t event_ptid;
+
+      struct target_waitstatus ws;
+      memset (&ws, 0, sizeof (ws));
+      event_ptid = target_wait (resume_ptid, &ws, 0);
+
+      if (last_waitstatus != NULL)
+	*last_waitstatus = ws;
+      if (last_ptid != NULL)
+	*last_ptid = event_ptid;
+
+      if (ws.kind == TARGET_WAITKIND_IGNORE)
+	/* The inferior didn't really stop, keep waiting.  */
+	continue;
+
+      switch (ws.kind)
+	{
+	  case TARGET_WAITKIND_SPURIOUS:
+	  case TARGET_WAITKIND_LOADED:
+	  case TARGET_WAITKIND_FORKED:
+	  case TARGET_WAITKIND_VFORKED:
+	  case TARGET_WAITKIND_SYSCALL_ENTRY:
+	  case TARGET_WAITKIND_SYSCALL_RETURN:
+	    /* Ignore gracefully during startup of the inferior.  */
+	    switch_to_thread (event_ptid);
+	    break;
+
+	  case TARGET_WAITKIND_SIGNALLED:
+	    target_terminal::ours ();
+	    target_mourn_inferior (event_ptid);
+	    error (_("During startup program terminated with signal %s, %s."),
+		   gdb_signal_to_name (ws.value.sig),
+		   gdb_signal_to_string (ws.value.sig));
+	    return resume_ptid;
+
+	  case TARGET_WAITKIND_EXITED:
+	    target_terminal::ours ();
+	    target_mourn_inferior (event_ptid);
+	    if (ws.value.integer)
+	      error (_("During startup program exited with code %d."),
+		     ws.value.integer);
+	    else
+	      error (_("During startup program exited normally."));
+	    return resume_ptid;
+
+	  case TARGET_WAITKIND_EXECD:
+	    /* Handle EXEC signals as if they were SIGTRAP signals.  */
+	    xfree (ws.value.execd_pathname);
+	    resume_signal = GDB_SIGNAL_TRAP;
+	    switch_to_thread (event_ptid);
+	    break;
+
+	  case TARGET_WAITKIND_STOPPED:
+	    resume_signal = ws.value.sig;
+	    switch_to_thread (event_ptid);
+	    break;
+	}
+
+      if (resume_signal != GDB_SIGNAL_TRAP)
+	{
+	  /* Let shell child handle its own signals in its own way.  */
+	  target_continue (resume_ptid, resume_signal);
+	}
+      else
+	{
+	  /* We handle SIGTRAP, however; it means child did an exec.  */
+	  if (!terminal_initted)
+	    {
+	      /* Now that the child has exec'd we know it has already
+	         set its process group.  On POSIX systems, tcsetpgrp
+	         will fail with EPERM if we try it before the child's
+	         setpgid.  */
+
+	      /* Set up the "saved terminal modes" of the inferior
+	         based on what modes we are starting it with.  */
+	      target_terminal::init ();
+
+	      /* Install inferior's terminal modes.  */
+	      target_terminal::inferior ();
+
+	      terminal_initted = 1;
+	    }
+
+	  if (--pending_execs == 0)
+	    break;
+
+	  /* Just make it go on.  */
+	  target_continue_no_signal (resume_ptid);
+	}
+    }
+
+  return resume_ptid;
+}
+
+/* See nat/fork-inferior.h.  */
+
+void
+trace_start_error (const char *fmt, ...)
+{
+  va_list ap;
+
+  va_start (ap, fmt);
+  warning ("Could not trace the inferior process.\nError: ");
+  vwarning (fmt, ap);
+  va_end (ap);
+
+  gdb_flush_out_err ();
+  _exit (0177);
+}
+
+/* See nat/fork-inferior.h.  */
+
+void
+trace_start_error_with_name (const char *string)
+{
+  trace_start_error ("%s: %s", string, safe_strerror (errno));
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/fork-inferior.h ./gdb/nat/fork-inferior.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/fork-inferior.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/nat/fork-inferior.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,106 @@
+/* Functions and data responsible for forking the inferior process.
+
+   Copyright (C) 1986-2018 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 FORK_INFERIOR_H
+#define FORK_INFERIOR_H
+
+#include <string>
+
+/* Number of traps that happen between exec'ing the shell to run an
+   inferior and when we finally get to the inferior code, not counting
+   the exec for the shell.  This is 1 on all supported
+   implementations.  */
+#define START_INFERIOR_TRAPS_EXPECTED 1
+
+/* Start an inferior Unix child process and sets inferior_ptid to its
+   pid.  EXEC_FILE is the file to run.  ALLARGS is a string containing
+   the arguments to the program.  ENV is the environment vector to
+   pass.  SHELL_FILE is the shell file, or NULL if we should pick
+   one.  EXEC_FUN is the exec(2) function to use, or NULL for the default
+   one.  */
+
+/* This function is NOT reentrant.  Some of the variables have been
+   made static to ensure that they survive the vfork call.  */
+extern pid_t fork_inferior (const char *exec_file_arg,
+			    const std::string &allargs,
+			    char **env, void (*traceme_fun) (),
+			    void (*init_trace_fun) (int),
+			    void (*pre_trace_fun) (),
+			    const char *shell_file_arg,
+			    void (*exec_fun) (const char *file,
+					      char * const *argv,
+					      char * const *env));
+
+/* Accept NTRAPS traps from the inferior.
+
+   Return the ptid of the inferior being started.  */
+extern ptid_t startup_inferior (pid_t pid, int ntraps,
+				struct target_waitstatus *mystatus,
+				ptid_t *myptid);
+
+/* Whether to start up the debuggee under a shell.
+
+   If startup-with-shell is set, GDB's "run" will attempt to start up
+   the debuggee under a shell.  This also happens when using GDBserver
+   under extended remote mode.
+
+   This is in order for argument-expansion to occur.  E.g.,
+
+   (gdb) run *
+
+   The "*" gets expanded by the shell into a list of files.
+
+   While this is a nice feature, it may be handy to bypass the shell
+   in some cases.  To disable this feature, do "set startup-with-shell
+   false".
+
+   The catch-exec traps expected during start-up will be one more if
+   the target is started up with a shell.  */
+extern int startup_with_shell;
+
+/* Perform any necessary tasks before a fork/vfork takes place.  ARGS
+   is a string containing all the arguments received by the inferior.
+   This function is mainly used by fork_inferior.  */
+extern void prefork_hook (const char *args);
+
+/* Perform any necessary tasks after a fork/vfork takes place.  This
+   function is mainly used by fork_inferior.  */
+extern void postfork_hook (pid_t pid);
+
+/* Perform any necessary tasks *on the child* after a fork/vfork takes
+   place.  This function is mainly used by fork_inferior.  */
+extern void postfork_child_hook ();
+
+/* Flush both stdout and stderr.  This function needs to be
+   implemented differently on GDB and GDBserver.  */
+extern void gdb_flush_out_err ();
+
+/* Report an error that happened when starting to trace the inferior
+   (i.e., when the "traceme_fun" callback is called on fork_inferior)
+   and bail out.  This function does not return.  */
+extern void trace_start_error (const char *fmt, ...)
+  ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2);
+
+/* Like "trace_start_error", but the error message is constructed by
+   combining STRING with the system error message for errno.  This
+   function does not return.  */
+extern void trace_start_error_with_name (const char *string)
+  ATTRIBUTE_NORETURN;
+
+#endif /* ! FORK_INFERIOR_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/gdb_ptrace.h ./gdb/nat/gdb_ptrace.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/gdb_ptrace.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/gdb_ptrace.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Portable <sys/ptrace.h>
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/gdb_thread_db.h ./gdb/nat/gdb_thread_db.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/gdb_thread_db.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/gdb_thread_db.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-btrace.c ./gdb/nat/linux-btrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-btrace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-btrace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Linux-dependent part of branch trace support for GDB, and GDBserver.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
@@ -28,9 +28,7 @@
 
 #include <inttypes.h>
 
-#ifdef HAVE_SYS_SYSCALL_H
 #include <sys/syscall.h>
-#endif
 
 #if HAVE_LINUX_PERF_EVENT_H && defined(SYS_perf_event_open)
 #include <unistd.h>
@@ -204,24 +202,23 @@ linux_determine_kernel_start (void)
 {
   static uint64_t kernel_start;
   static int cached;
-  FILE *file;
 
   if (cached != 0)
     return kernel_start;
 
   cached = 1;
 
-  file = gdb_fopen_cloexec ("/proc/kallsyms", "r");
+  gdb_file_up file = gdb_fopen_cloexec ("/proc/kallsyms", "r");
   if (file == NULL)
     return kernel_start;
 
-  while (!feof (file))
+  while (!feof (file.get ()))
     {
       char buffer[1024], symbol[8], *line;
       uint64_t addr;
       int match;
 
-      line = fgets (buffer, sizeof (buffer), file);
+      line = fgets (buffer, sizeof (buffer), file.get ());
       if (line == NULL)
 	break;
 
@@ -236,8 +233,6 @@ linux_determine_kernel_start (void)
 	}
     }
 
-  fclose (file);
-
   return kernel_start;
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-btrace.h ./gdb/nat/linux-btrace.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-btrace.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-btrace.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Linux-dependent part of branch trace support for GDB, and GDBserver.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-namespaces.c ./gdb/nat/linux-namespaces.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-namespaces.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-namespaces.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Linux namespaces(7) support.
 
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-namespaces.h ./gdb/nat/linux-namespaces.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-namespaces.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-namespaces.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Linux namespaces(7) support.
 
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-nat.h ./gdb/nat/linux-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-nat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Code for native debugging support for GNU/Linux (LWP layer).
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-osdata.c ./gdb/nat/linux-osdata.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-osdata.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-osdata.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Linux-specific functions to retrieve OS data.
    
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -37,6 +37,7 @@
 #include <dirent.h>
 #include <sys/stat.h>
 #include "filestuff.h"
+#include <algorithm>
 
 #define NAMELEN(dirent) strlen ((dirent)->d_name)
 
@@ -61,7 +62,6 @@ int
 linux_common_core_of_thread (ptid_t ptid)
 {
   char filename[sizeof ("/proc//task//stat") + 2 * MAX_PID_T_STRLEN];
-  FILE *f;
   char *content = NULL;
   char *p;
   char *ts = 0;
@@ -71,7 +71,7 @@ linux_common_core_of_thread (ptid_t ptid
 
   sprintf (filename, "/proc/%lld/task/%lld/stat",
 	   (PID_T) ptid_get_pid (ptid), (PID_T) ptid_get_lwp (ptid));
-  f = gdb_fopen_cloexec (filename, "r");
+  gdb_file_up f = gdb_fopen_cloexec (filename, "r");
   if (!f)
     return -1;
 
@@ -79,7 +79,7 @@ linux_common_core_of_thread (ptid_t ptid
     {
       int n;
       content = (char *) xrealloc (content, content_read + 1024);
-      n = fread (content + content_read, 1, 1024, f);
+      n = fread (content + content_read, 1, 1024, f.get ());
       content_read += n;
       if (n < 1024)
 	{
@@ -104,7 +104,6 @@ linux_common_core_of_thread (ptid_t ptid
     core = -1;
 
   xfree (content);
-  fclose (f);
 
   return core;
 }
@@ -117,7 +116,7 @@ static void
 command_from_pid (char *command, int maxlen, PID_T pid)
 {
   char *stat_path = xstrprintf ("/proc/%lld/stat", pid); 
-  FILE *fp = gdb_fopen_cloexec (stat_path, "r");
+  gdb_file_up fp = gdb_fopen_cloexec (stat_path, "r");
   
   command[0] = '\0';
  
@@ -128,15 +127,13 @@ command_from_pid (char *command, int max
 	 (for the brackets).  */
       char cmd[18];
       PID_T stat_pid;
-      int items_read = fscanf (fp, "%lld %17s", &stat_pid, cmd);
+      int items_read = fscanf (fp.get (), "%lld %17s", &stat_pid, cmd);
 	  
       if (items_read == 2 && pid == stat_pid)
 	{
 	  cmd[strlen (cmd) - 1] = '\0'; /* Remove trailing parenthesis.  */
 	  strncpy (command, cmd + 1, maxlen); /* Ignore leading parenthesis.  */
 	}
-
-      fclose (fp);
     }
   else
     {
@@ -157,16 +154,16 @@ commandline_from_pid (PID_T pid)
 {
   char *pathname = xstrprintf ("/proc/%lld/cmdline", pid);
   char *commandline = NULL;
-  FILE *f = gdb_fopen_cloexec (pathname, "r");
+  gdb_file_up f = gdb_fopen_cloexec (pathname, "r");
 
   if (f)
     {
       size_t len = 0;
 
-      while (!feof (f))
+      while (!feof (f.get ()))
 	{
 	  char buf[1024];
-	  size_t read_bytes = fread (buf, 1, sizeof (buf), f);
+	  size_t read_bytes = fread (buf, 1, sizeof (buf), f.get ());
      
 	  if (read_bytes)
 	    {
@@ -176,8 +173,6 @@ commandline_from_pid (PID_T pid)
 	    }
 	}
 
-      fclose (f);
-
       if (commandline)
 	{
 	  size_t i;
@@ -397,41 +392,40 @@ linux_xfer_osdata_processes (gdb_byte *r
   return len;
 }
 
-/* Auxiliary function used by qsort to sort processes by process
-   group.  Compares two processes with ids PROCESS1 and PROCESS2.
-   PROCESS1 comes before PROCESS2 if it has a lower process group id.
-   If they belong to the same process group, PROCESS1 comes before
-   PROCESS2 if it has a lower process id or is the process group
-   leader.  */
+/* A simple PID/PGID pair.  */
 
-static int
-compare_processes (const void *process1, const void *process2)
+struct pid_pgid_entry
 {
-  PID_T pid1 = *((PID_T *) process1);
-  PID_T pid2 = *((PID_T *) process2);
-  PID_T pgid1 = *((PID_T *) process1 + 1);
-  PID_T pgid2 = *((PID_T *) process2 + 1);
+  pid_pgid_entry (PID_T pid_, PID_T pgid_)
+  : pid (pid_), pgid (pgid_)
+  {}
 
-  /* Sort by PGID.  */
-  if (pgid1 < pgid2)
-    return -1;
-  else if (pgid1 > pgid2)
-    return 1;
-  else
-    {
-      /* Process group leaders always come first, else sort by PID.  */
-      if (pid1 == pgid1)
-	return -1;
-      else if (pid2 == pgid2)
-	return 1;
-      else if (pid1 < pid2)
-	return -1;
-      else if (pid1 > pid2)
-	return 1;
-      else
-	return 0;
-    }
-}
+  /* Return true if this pid is the leader of its process group.  */
+
+  bool is_leader () const
+  {
+    return pid == pgid;
+  }
+
+  bool operator< (const pid_pgid_entry &other) const
+  {
+    /* Sort by PGID.  */
+    if (this->pgid != other.pgid)
+      return this->pgid < other.pgid;
+
+    /* Process group leaders always come first...  */
+    if (this->is_leader ())
+      return true;
+
+    if (other.is_leader ())
+      return false;
+
+    /* ...else sort by PID.  */
+    return this->pid < other.pid;
+  }
+
+  PID_T pid, pgid;
+};
 
 /* Collect all process groups from /proc.  */
 
@@ -458,11 +452,10 @@ linux_xfer_osdata_processgroups (gdb_byt
       dirp = opendir ("/proc");
       if (dirp)
 	{
+	  std::vector<pid_pgid_entry> process_list;
 	  struct dirent *dp;
-	  const size_t list_block_size = 512;
-	  PID_T *process_list = XNEWVEC (PID_T, list_block_size * 2);
-	  size_t process_count = 0;
-	  size_t i;
+
+	  process_list.reserve (512);
 
 	  /* Build list consisting of PIDs followed by their
 	     associated PGID.  */
@@ -478,30 +471,18 @@ linux_xfer_osdata_processgroups (gdb_byt
 	      pgid = getpgid (pid);
 
 	      if (pgid > 0)
-		{
-		  process_list[2 * process_count] = pid;
-		  process_list[2 * process_count + 1] = pgid;
-		  ++process_count;
-
-		  /* Increase the size of the list if necessary.  */
-		  if (process_count % list_block_size == 0)
-		    process_list = (PID_T *) xrealloc (
-			process_list,
-			(process_count + list_block_size)
-			* 2 * sizeof (PID_T));
-		}
+		process_list.emplace_back (pid, pgid);
 	    }
 
 	  closedir (dirp);
 
 	  /* Sort the process list.  */
-	  qsort (process_list, process_count, 2 * sizeof (PID_T),
-		 compare_processes);
+	  std::sort (process_list.begin (), process_list.end ());
 
-	  for (i = 0; i < process_count; ++i)
+	  for (const pid_pgid_entry &entry : process_list)
 	    {
-	      PID_T pid = process_list[2 * i];
-	      PID_T pgid = process_list[2 * i + 1];
+	      PID_T pid = entry.pid;
+	      PID_T pgid = entry.pgid;
 	      char leader_command[32];
 	      char *command_line;
 
@@ -523,8 +504,6 @@ linux_xfer_osdata_processgroups (gdb_byt
 
 	      xfree (command_line);
 	    }
-
-	  xfree (process_list);
 	}   
 
       buffer_grow_str0 (&buffer, "</osdata>\n");
@@ -675,7 +654,6 @@ linux_xfer_osdata_cpus (gdb_byte *readbu
 
   if (offset == 0)
     {
-      FILE *fp;
       int first_item = 1;
 
       if (len_avail != -1 && len_avail != 0)
@@ -685,14 +663,14 @@ linux_xfer_osdata_cpus (gdb_byte *readbu
       buffer_init (&buffer);
       buffer_grow_str (&buffer, "<osdata type=\"cpus\">\n");
 
-      fp = gdb_fopen_cloexec ("/proc/cpuinfo", "r");
+      gdb_file_up fp = gdb_fopen_cloexec ("/proc/cpuinfo", "r");
       if (fp != NULL)
 	{
 	  char buf[8192];
 
 	  do
 	    {
-	      if (fgets (buf, sizeof (buf), fp))
+	      if (fgets (buf, sizeof (buf), fp.get ()))
 		{
 		  char *key, *value;
 		  int i = 0;
@@ -732,12 +710,10 @@ linux_xfer_osdata_cpus (gdb_byte *readbu
 				     value);
 		}
 	    }
-	  while (!feof (fp));
+	  while (!feof (fp.get ()));
 
 	  if (first_item == 0)
 	    buffer_grow_str (&buffer, "</item>");
-
-	  fclose (fp);
 	}
 
       buffer_grow_str0 (&buffer, "</osdata>\n");
@@ -942,7 +918,6 @@ static void
 print_sockets (unsigned short family, int tcp, struct buffer *buffer)
 {
   const char *proc_file;
-  FILE *fp;
 
   if (family == AF_INET)
     proc_file = tcp ? "/proc/net/tcp" : "/proc/net/udp";
@@ -951,14 +926,14 @@ print_sockets (unsigned short family, in
   else
     return;
 
-  fp = gdb_fopen_cloexec (proc_file, "r");
+  gdb_file_up fp = gdb_fopen_cloexec (proc_file, "r");
   if (fp)
     {
       char buf[8192];
 
       do
 	{
-	  if (fgets (buf, sizeof (buf), fp))
+	  if (fgets (buf, sizeof (buf), fp.get ()))
 	    {
 	      uid_t uid;
 	      unsigned int local_port, remote_port, state;
@@ -1064,9 +1039,7 @@ print_sockets (unsigned short family, in
 		}
 	    }
 	}
-      while (!feof (fp));
-
-      fclose (fp);
+      while (!feof (fp.get ()));
     }
 }
 
@@ -1163,8 +1136,6 @@ linux_xfer_osdata_shm (gdb_byte *readbuf
 
   if (offset == 0)
     {
-      FILE *fp;
-
       if (len_avail != -1 && len_avail != 0)
 	buffer_free (&buffer);
       len_avail = 0;
@@ -1172,14 +1143,14 @@ linux_xfer_osdata_shm (gdb_byte *readbuf
       buffer_init (&buffer);
       buffer_grow_str (&buffer, "<osdata type=\"shared memory\">\n");
 
-      fp = gdb_fopen_cloexec ("/proc/sysvipc/shm", "r");
+      gdb_file_up fp = gdb_fopen_cloexec ("/proc/sysvipc/shm", "r");
       if (fp)
 	{
 	  char buf[8192];
 
 	  do
 	    {
-	      if (fgets (buf, sizeof (buf), fp))
+	      if (fgets (buf, sizeof (buf), fp.get ()))
 		{
 		  key_t key;
 		  uid_t uid, cuid;
@@ -1252,9 +1223,7 @@ linux_xfer_osdata_shm (gdb_byte *readbuf
 		    }
 		}
 	    }
-	  while (!feof (fp));
-
-	  fclose (fp);
+	  while (!feof (fp.get ()));
 	}
       
       buffer_grow_str0 (&buffer, "</osdata>\n");
@@ -1291,8 +1260,6 @@ linux_xfer_osdata_sem (gdb_byte *readbuf
 
   if (offset == 0)
     {
-      FILE *fp;
-      
       if (len_avail != -1 && len_avail != 0)
 	buffer_free (&buffer);
       len_avail = 0;
@@ -1300,14 +1267,14 @@ linux_xfer_osdata_sem (gdb_byte *readbuf
       buffer_init (&buffer);
       buffer_grow_str (&buffer, "<osdata type=\"semaphores\">\n");
 
-      fp = gdb_fopen_cloexec ("/proc/sysvipc/sem", "r");
+      gdb_file_up fp = gdb_fopen_cloexec ("/proc/sysvipc/sem", "r");
       if (fp)
 	{
 	  char buf[8192];
 	  
 	  do
 	    {
-	      if (fgets (buf, sizeof (buf), fp))
+	      if (fgets (buf, sizeof (buf), fp.get ()))
 		{
 		  key_t key;
 		  uid_t uid, cuid;
@@ -1364,9 +1331,7 @@ linux_xfer_osdata_sem (gdb_byte *readbuf
 		    }
 		}
 	    }
-	  while (!feof (fp));
-
-	  fclose (fp);
+	  while (!feof (fp.get ()));
 	}
 
       buffer_grow_str0 (&buffer, "</osdata>\n");
@@ -1403,8 +1368,6 @@ linux_xfer_osdata_msg (gdb_byte *readbuf
 
   if (offset == 0)
     {
-      FILE *fp;
-      
       if (len_avail != -1 && len_avail != 0)
 	buffer_free (&buffer);
       len_avail = 0;
@@ -1412,14 +1375,14 @@ linux_xfer_osdata_msg (gdb_byte *readbuf
       buffer_init (&buffer);
       buffer_grow_str (&buffer, "<osdata type=\"message queues\">\n");
       
-      fp = gdb_fopen_cloexec ("/proc/sysvipc/msg", "r");
+      gdb_file_up fp = gdb_fopen_cloexec ("/proc/sysvipc/msg", "r");
       if (fp)
 	{
 	  char buf[8192];
 	  
 	  do
 	    {
-	      if (fgets (buf, sizeof (buf), fp))
+	      if (fgets (buf, sizeof (buf), fp.get ()))
 		{
 		  key_t key;
 		  PID_T lspid, lrpid;
@@ -1490,9 +1453,7 @@ linux_xfer_osdata_msg (gdb_byte *readbuf
 		    }
 		}
 	    }
-	  while (!feof (fp));
-
-	  fclose (fp);
+	  while (!feof (fp.get ()));
 	}
 
       buffer_grow_str0 (&buffer, "</osdata>\n");
@@ -1529,8 +1490,6 @@ linux_xfer_osdata_modules (gdb_byte *rea
 
   if (offset == 0)
     {
-      FILE *fp;
-
       if (len_avail != -1 && len_avail != 0)
 	buffer_free (&buffer);
       len_avail = 0;
@@ -1538,14 +1497,14 @@ linux_xfer_osdata_modules (gdb_byte *rea
       buffer_init (&buffer);
       buffer_grow_str (&buffer, "<osdata type=\"modules\">\n");
 
-      fp = gdb_fopen_cloexec ("/proc/modules", "r");
+      gdb_file_up fp = gdb_fopen_cloexec ("/proc/modules", "r");
       if (fp)
 	{
 	  char buf[8192];
 	  
 	  do
 	    {
-	      if (fgets (buf, sizeof (buf), fp))
+	      if (fgets (buf, sizeof (buf), fp.get ()))
 		{
 		  char *name, *dependencies, *status, *tmp;
 		  unsigned int size;
@@ -1600,9 +1559,7 @@ linux_xfer_osdata_modules (gdb_byte *rea
 			address);
 		}
 	    }
-	  while (!feof (fp));
-
-	  fclose (fp);
+	  while (!feof (fp.get ()));
 	}
 
       buffer_grow_str0 (&buffer, "</osdata>\n");
@@ -1725,4 +1682,3 @@ linux_common_xfer_osdata (const char *an
       return 0;
     }
 }
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-osdata.h ./gdb/nat/linux-osdata.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-osdata.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-osdata.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Linux-specific functions to retrieve OS data.
    
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-personality.c ./gdb/nat/linux-personality.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-personality.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-personality.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Disable address space randomization based on inferior personality.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -27,68 +27,43 @@
 # 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::
 maybe_disable_address_space_randomization (int disable_randomization)
+  : m_personality_set (false),
+    m_personality_orig (0)
 {
-  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))
+      m_personality_orig = personality (0xffffffff);
+      if (errno == 0 && !(m_personality_orig & ADDR_NO_RANDOMIZE))
 	{
-	  personality_set = 1;
-	  personality (personality_orig | ADDR_NO_RANDOMIZE);
+	  m_personality_set = true;
+	  personality (m_personality_orig | ADDR_NO_RANDOMIZE);
 	}
-      if (errno != 0 || (personality_set
+      if (errno != 0 || (m_personality_set
 			 && !(personality (0xffffffff) & ADDR_NO_RANDOMIZE)))
 	warning (_("Error disabling address space randomization: %s"),
 		 safe_strerror (errno));
     }
 #endif /* HAVE_PERSONALITY */
+}
+
+maybe_disable_address_space_randomization::
+~maybe_disable_address_space_randomization ()
+{
+#ifdef HAVE_PERSONALITY
 
-  return make_disable_asr_cleanup (personality_set,
-				   personality_orig);
+  if (m_personality_set)
+    {
+      errno = 0;
+      personality (m_personality_orig);
+      if (errno != 0)
+	warning (_("Error restoring address space randomization: %s"),
+		 safe_strerror (errno));
+    }
+#endif /* HAVE_PERSONALITY */
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-personality.h ./gdb/nat/linux-personality.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-personality.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-personality.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Disable address space randomization based on inferior personality.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,12 +20,27 @@
 #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.  */
+class maybe_disable_address_space_randomization
+{
+public:
 
-extern struct cleanup *maybe_disable_address_space_randomization
-  (int disable_randomization);
+  /* Disable the inferior's address space randomization if
+     DISABLE_RANDOMIZATION is not zero and if we have
+     <sys/personality.h>. */
+  maybe_disable_address_space_randomization (int disable_randomization);
+
+  /* On destruction, re-enable address space randomization.  */
+  ~maybe_disable_address_space_randomization ();
+
+  DISABLE_COPY_AND_ASSIGN (maybe_disable_address_space_randomization);
+
+private:
+
+  /* True if the personality was set in the constructor.  */
+  bool m_personality_set;
+
+  /* If m_personality_set is true, the original personality value.  */
+  int m_personality_orig;
+};
 
 #endif /* ! NAT_LINUX_PERSONALITY_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-procfs.c ./gdb/nat/linux-procfs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-procfs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-procfs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Linux-specific PROCFS manipulation routines.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -29,12 +29,11 @@ static int
 linux_proc_get_int (pid_t lwpid, const char *field, int warn)
 {
   size_t field_len = strlen (field);
-  FILE *status_file;
   char buf[100];
   int retval = -1;
 
   snprintf (buf, sizeof (buf), "/proc/%d/status", (int) lwpid);
-  status_file = gdb_fopen_cloexec (buf, "r");
+  gdb_file_up status_file = gdb_fopen_cloexec (buf, "r");
   if (status_file == NULL)
     {
       if (warn)
@@ -42,14 +41,13 @@ linux_proc_get_int (pid_t lwpid, const c
       return -1;
     }
 
-  while (fgets (buf, sizeof (buf), status_file))
+  while (fgets (buf, sizeof (buf), status_file.get ()))
     if (strncmp (buf, field, field_len) == 0 && buf[field_len] == ':')
       {
 	retval = strtol (&buf[field_len + 1], NULL, 10);
 	break;
       }
 
-  fclose (status_file);
   return retval;
 }
 
@@ -98,7 +96,7 @@ enum proc_state
 static enum proc_state
 parse_proc_status_state (const char *state)
 {
-  state = skip_spaces_const (state);
+  state = skip_spaces (state);
 
   switch (state[0])
     {
@@ -128,12 +126,11 @@ parse_proc_status_state (const char *sta
 static int
 linux_proc_pid_get_state (pid_t pid, int warn, enum proc_state *state)
 {
-  FILE *procfile;
   int have_state;
   char buffer[100];
 
   xsnprintf (buffer, sizeof (buffer), "/proc/%d/status", (int) pid);
-  procfile = gdb_fopen_cloexec (buffer, "r");
+  gdb_file_up procfile = gdb_fopen_cloexec (buffer, "r");
   if (procfile == NULL)
     {
       if (warn)
@@ -142,14 +139,13 @@ linux_proc_pid_get_state (pid_t pid, int
     }
 
   have_state = 0;
-  while (fgets (buffer, sizeof (buffer), procfile) != NULL)
+  while (fgets (buffer, sizeof (buffer), procfile.get ()) != NULL)
     if (startswith (buffer, "State:"))
       {
 	have_state = 1;
 	*state = parse_proc_status_state (buffer + sizeof ("State:") - 1);
 	break;
       }
-  fclose (procfile);
   return have_state;
 }
 
@@ -242,7 +238,6 @@ linux_proc_tid_get_name (ptid_t ptid)
 
   static char comm_buf[TASK_COMM_LEN];
   char comm_path[100];
-  FILE *comm_file;
   const char *comm_val;
   pid_t pid = ptid_get_pid (ptid);
   pid_t tid = ptid_lwp_p (ptid) ? ptid_get_lwp (ptid) : ptid_get_pid (ptid);
@@ -250,12 +245,11 @@ linux_proc_tid_get_name (ptid_t ptid)
   xsnprintf (comm_path, sizeof (comm_path),
 	     "/proc/%ld/task/%ld/comm", (long) pid, (long) tid);
 
-  comm_file = gdb_fopen_cloexec (comm_path, "r");
+  gdb_file_up comm_file = gdb_fopen_cloexec (comm_path, "r");
   if (comm_file == NULL)
     return NULL;
 
-  comm_val = fgets (comm_buf, sizeof (comm_buf), comm_file);
-  fclose (comm_file);
+  comm_val = fgets (comm_buf, sizeof (comm_buf), comm_file.get ());
 
   if (comm_val != NULL)
     {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-procfs.h ./gdb/nat/linux-procfs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-procfs.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-procfs.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Linux-specific PROCFS manipulation routines.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-ptrace.c ./gdb/nat/linux-ptrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-ptrace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-ptrace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Linux-specific ptrace manipulation routines.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -272,7 +272,7 @@ linux_fork_to_function (gdb_byte *child_
 #define STACK_SIZE 4096
 
     if (child_stack == NULL)
-      child_stack = xmalloc (STACK_SIZE * 4);
+      child_stack = (gdb_byte *) xmalloc (STACK_SIZE * 4);
 
     /* Use CLONE_VM instead of fork, to support uClinux (no MMU).  */
 #ifdef __ia64__
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-ptrace.h ./gdb/nat/linux-ptrace.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-ptrace.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-ptrace.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -155,6 +155,8 @@ struct buffer;
    Beginning with Linux 4.6, the MIPS port reports proper TRAP_BRKPT and
    TRAP_HWBKPT codes, so we also match them.
 
+   The Alpha kernel uses TRAP_BRKPT for all traps.
+
    The generic Linux target code should use GDB_ARCH_IS_TRAP_* instead
    of TRAP_* to abstract out these peculiarities.  */
 #if defined __i386__ || defined __x86_64__
@@ -166,6 +168,9 @@ struct buffer;
 #elif defined __mips__
 # define GDB_ARCH_IS_TRAP_BRKPT(X) ((X) == SI_KERNEL || (X) == TRAP_BRKPT)
 # define GDB_ARCH_IS_TRAP_HWBKPT(X) ((X) == SI_KERNEL || (X) == TRAP_HWBKPT)
+#elif defined __alpha__
+# define GDB_ARCH_IS_TRAP_BRKPT(X) ((X) == TRAP_BRKPT)
+# define GDB_ARCH_IS_TRAP_HWBKPT(X) ((X) == TRAP_BRKPT)
 #else
 # define GDB_ARCH_IS_TRAP_BRKPT(X) ((X) == TRAP_BRKPT)
 # define GDB_ARCH_IS_TRAP_HWBKPT(X) ((X) == TRAP_HWBKPT)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-waitpid.c ./gdb/nat/linux-waitpid.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-waitpid.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-waitpid.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Wrapper implementation for waitpid for GNU/Linux (LWP layer).
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -34,7 +34,7 @@
 /* Print debugging output based on the format string FORMAT and
    its parameters.  */
 
-static inline void
+static inline void ATTRIBUTE_PRINTF (1,2)
 linux_debug (const char *format, ...)
 {
 #ifdef GDBSERVER
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-waitpid.h ./gdb/nat/linux-waitpid.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/linux-waitpid.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/linux-waitpid.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Wrapper for waitpid for GNU/Linux (LWP layer).
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/mips-linux-watch.c ./gdb/nat/mips-linux-watch.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/mips-linux-watch.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/mips-linux-watch.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/mips-linux-watch.h ./gdb/nat/mips-linux-watch.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/mips-linux-watch.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/mips-linux-watch.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/ppc-linux.c ./gdb/nat/ppc-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/ppc-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/ppc-linux.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/*Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/*Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/ppc-linux.h ./gdb/nat/ppc-linux.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/ppc-linux.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/ppc-linux.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-cpuid.h ./gdb/nat/x86-cpuid.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-cpuid.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/x86-cpuid.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* C API for x86 cpuid insn.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-dregs.c ./gdb/nat/x86-dregs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-dregs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/x86-dregs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Debug register code for x86 (i386 and x86-64).
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -193,20 +193,16 @@ x86_show_dr (struct x86_debug_reg_state 
 			      here.  */
 			   : "??unknown??"))));
   debug_printf (":\n");
-  debug_printf ("\tCONTROL (DR7): %s          STATUS (DR6): %s\n",
-		phex (state->dr_control_mirror, 8),
-		phex (state->dr_status_mirror, 8));
+
+  debug_printf ("\tCONTROL (DR7): 0x%s\n", phex (state->dr_control_mirror, 8));
+  debug_printf ("\tSTATUS (DR6): 0x%s\n", phex (state->dr_status_mirror, 8));
+
   ALL_DEBUG_ADDRESS_REGISTERS (i)
     {
-      debug_printf ("\
-\tDR%d: addr=0x%s, ref.count=%d  DR%d: addr=0x%s, ref.count=%d\n",
+      debug_printf ("\tDR%d: addr=0x%s, ref.count=%d\n",
 		    i, phex (state->dr_mirror[i],
 			     x86_get_debug_register_length ()),
-		    state->dr_ref_count[i],
-		    i + 1, phex (state->dr_mirror[i + 1],
-				 x86_get_debug_register_length ()),
-		    state->dr_ref_count[i + 1]);
-      i++;
+		    state->dr_ref_count[i]);
     }
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-dregs.h ./gdb/nat/x86-dregs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-dregs.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/x86-dregs.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Debug register code for x86 (i386 and x86-64).
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-gcc-cpuid.h ./gdb/nat/x86-gcc-cpuid.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-gcc-cpuid.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/x86-gcc-cpuid.h	2018-01-09 02:04:57.000000000 +0000
@@ -3,7 +3,7 @@
  * include this directly, but pull in x86-cpuid.h and use that func.
  */
 /*
- * Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ * Copyright (C) 2007-2018 Free Software Foundation, Inc.
  *
  * This file is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-linux.c ./gdb/nat/x86-linux.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-linux.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/x86-linux.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for GNU/Linux x86 (i386 and x86-64).
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -68,6 +68,14 @@ x86_linux_new_thread (struct lwp_info *l
 /* See nat/x86-linux.h.  */
 
 void
+x86_linux_delete_thread (struct arch_lwp_info *arch_lwp)
+{
+  xfree (arch_lwp);
+}
+
+/* See nat/x86-linux.h.  */
+
+void
 x86_linux_prepare_to_resume (struct lwp_info *lwp)
 {
   x86_linux_update_debug_registers (lwp);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-linux-dregs.c ./gdb/nat/x86-linux-dregs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-linux-dregs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/x86-linux-dregs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low-level debug register code for GNU/Linux x86 (i386 and x86-64).
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-linux-dregs.h ./gdb/nat/x86-linux-dregs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-linux-dregs.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/x86-linux-dregs.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low-level debug register code for GNU/Linux x86 (i386 and x86-64).
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-linux.h ./gdb/nat/x86-linux.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nat/x86-linux.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nat/x86-linux.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for GNU/Linux x86 (i386 and x86-64).
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -39,6 +39,10 @@ extern int lwp_debug_registers_changed (
 
 extern void x86_linux_new_thread (struct lwp_info *lwp);
 
+/* Function to call when a thread is being deleted.  */
+
+extern void x86_linux_delete_thread (struct arch_lwp_info *arch_lwp);
+
 /* Function to call prior to resuming a thread.  */
 
 extern void x86_linux_prepare_to_resume (struct lwp_info *lwp);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nbsd-nat.c ./gdb/nbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for NetBSD.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nbsd-nat.h ./gdb/nbsd-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nbsd-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nbsd-nat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for NetBSD.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nbsd-tdep.c ./gdb/nbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common target-dependent code for NetBSD systems.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Wasabi Systems, Inc.
   
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nbsd-tdep.h ./gdb/nbsd-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nbsd-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nbsd-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Common target-dependent definitions for NetBSD systems.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by Wasabi Systems, Inc.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nds32-tdep.c ./gdb/nds32-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nds32-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nds32-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the NDS32 architecture, for GDB.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Contributed by Andes Technology Corporation.
 
    This file is part of GDB.
@@ -55,8 +55,6 @@
 #define N32_FLDI_SP \
 	N32_TYPE2 (LDC, 0, REG_SP, 0)
 
-extern void _initialize_nds32_tdep (void);
-
 /* Use an invalid address value as 'not available' marker.  */
 enum { REG_UNAVAIL = (CORE_ADDR) -1 };
 
@@ -445,11 +443,12 @@ nds32_pseudo_register_read (struct gdbar
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   gdb_byte reg_buf[8];
   int offset, fdr_regnum;
-  enum register_status status = REG_UNKNOWN;
+  enum register_status status;
 
-  /* Sanity check.  */
-  if (tdep->fpu_freg == -1 || tdep->use_pseudo_fsrs == 0)
-    return status;
+  /* This function is registered in nds32_gdbarch_init only after these are
+     set.  */
+  gdb_assert (tdep->fpu_freg != -1);
+  gdb_assert (tdep->use_pseudo_fsrs != 0);
 
   regnum -= gdbarch_num_regs (gdbarch);
 
@@ -466,9 +465,11 @@ nds32_pseudo_register_read (struct gdbar
       status = regcache_raw_read (regcache, fdr_regnum, reg_buf);
       if (status == REG_VALID)
 	memcpy (buf, reg_buf + offset, 4);
+
+      return status;
     }
 
-  return status;
+  gdb_assert_not_reached ("invalid pseudo register number");
 }
 
 /* Implement the "pseudo_register_write" gdbarch method.  */
@@ -482,9 +483,10 @@ nds32_pseudo_register_write (struct gdba
   gdb_byte reg_buf[8];
   int offset, fdr_regnum;
 
-  /* Sanity check.  */
-  if (tdep->fpu_freg == -1 || tdep->use_pseudo_fsrs == 0)
-    return;
+  /* This function is registered in nds32_gdbarch_init only after these are
+     set.  */
+  gdb_assert (tdep->fpu_freg != -1);
+  gdb_assert (tdep->use_pseudo_fsrs != 0);
 
   regnum -= gdbarch_num_regs (gdbarch);
 
@@ -501,7 +503,10 @@ nds32_pseudo_register_write (struct gdba
       regcache_raw_read (regcache, fdr_regnum, reg_buf);
       memcpy (reg_buf + offset, buf, 4);
       regcache_raw_write (regcache, fdr_regnum, reg_buf);
+      return;
     }
+
+  gdb_assert_not_reached ("invalid pseudo register number");
 }
 
 /* Helper function for NDS32 ABI.  Return true if FPRs can be used
@@ -2127,7 +2132,7 @@ nds32_gdbarch_init (struct gdbarch_info 
   nds32_add_reggroups (gdbarch);
 
   /* Hook in ABI-specific overrides, if they have been registered.  */
-  info.tdep_info = (void *) tdesc_data;
+  info.tdesc_data = tdesc_data;
   gdbarch_init_osabi (info, gdbarch);
 
   /* Override tdesc_register callbacks for system registers.  */
@@ -2154,8 +2159,6 @@ nds32_gdbarch_init (struct gdbarch_info 
   set_gdbarch_frame_align (gdbarch, nds32_frame_align);
   frame_base_set_default (gdbarch, &nds32_frame_base);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_nds32);
-
   /* Handle longjmp.  */
   set_gdbarch_get_longjmp_target (gdbarch, nds32_get_longjmp_target);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nds32-tdep.h ./gdb/nds32-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nds32-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nds32-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the NDS32 architecture, for GDB.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Contributed by Andes Technology Corporation.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/NEWS ./gdb/NEWS
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/NEWS	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/NEWS	2018-01-09 02:04:56.000000000 +0000
@@ -1,6 +1,270 @@
 		What has changed in GDB?
 	     (Organized release by release)
 
+*** Changes since GDB 8.0
+
+* GDB now supports dynamically creating arbitrary register groups specified
+  in XML target descriptions.  This allows for finer grain grouping of
+  registers on systems with a large amount of registers.
+
+* The 'ptype' command now accepts a '/o' flag, which prints the
+  offsets and sizes of fields in a struct, like the pahole(1) tool.
+
+* New "--readnever" command line option instructs GDB to not read each
+  symbol file's symbolic debug information.  This makes startup faster
+  but at the expense of not being able to perform symbolic debugging.
+  This option is intended for use cases where symbolic debugging will
+  not be used, e.g., when you only need to dump the debuggee's core.
+
+* GDB now uses the GNU MPFR library, if available, to emulate target
+  floating-point arithmetic during expression evaluation when the target
+  uses different floating-point formats than the host.  At least version
+  3.1 of GNU MPFR is required.
+
+* GDB now supports access to the guarded-storage-control registers and the
+  software-based guarded-storage broadcast control registers on IBM z14.
+
+* On Unix systems, GDB now supports transmitting environment variables
+  that are to be set or unset to GDBserver.  These variables will
+  affect the environment to be passed to the remote inferior.
+
+  To inform GDB of environment variables that are to be transmitted to
+  GDBserver, use the "set environment" command.  Only user set
+  environment variables are sent to GDBserver.
+
+  To inform GDB of environment variables that are to be unset before
+  the remote inferior is started by the GDBserver, use the "unset
+  environment" command.
+
+* Completion improvements
+
+  ** GDB can now complete function parameters in linespecs and
+     explicit locations without quoting.  When setting breakpoints,
+     quoting around functions names to help with TAB-completion is
+     generally no longer necessary.  For example, this now completes
+     correctly:
+
+      (gdb) b function(in[TAB]
+      (gdb) b function(int)
+
+     Related, GDB is no longer confused with completing functions in
+     C++ anonymous namespaces:
+
+      (gdb) b (anon[TAB]
+      (gdb) b (anonymous namespace)::[TAB][TAB]
+      (anonymous namespace)::a_function()
+      (anonymous namespace)::b_function()
+
+  ** GDB now has much improved linespec and explicit locations TAB
+     completion support, that better understands what you're
+     completing and offers better suggestions.  For example, GDB no
+     longer offers data symbols as possible completions when you're
+     setting a breakpoint.
+
+  ** GDB now TAB-completes label symbol names.
+
+  ** The "complete" command now mimics TAB completion accurately.
+
+* New command line options (gcore)
+
+-a
+  Dump all memory mappings.
+
+* Breakpoints on C++ functions are now set on all scopes by default
+
+  By default, breakpoints on functions/methods are now interpreted as
+  specifying all functions with the given name ignoring missing
+  leading scopes (namespaces and classes).
+
+  For example, assuming a C++ program with symbols named:
+
+    A::B::func()
+    B::func()
+
+  both commands "break func()" and "break B::func()" set a breakpoint
+  on both symbols.
+
+  You can use the new flag "-qualified" to override this.  This makes
+  GDB interpret the specified function name as a complete
+  fully-qualified name instead.  For example, using the same C++
+  program, the "break -q B::func" command sets a breakpoint on
+  "B::func", only.  A parameter has been added to the Python
+  gdb.Breakpoint constructor to achieve the same result when creating
+  a breakpoint from Python.
+
+* Breakpoints on functions marked with C++ ABI tags
+
+  GDB can now set breakpoints on functions marked with C++ ABI tags
+  (e.g., [abi:cxx11]).  See here for a description of ABI tags:
+  https://developers.redhat.com/blog/2015/02/05/gcc5-and-the-c11-abi/
+
+  Functions with a C++11 abi tag are demangled/displayed like this:
+
+    function[abi:cxx11](int)
+            ^^^^^^^^^^^
+
+  You can now set a breakpoint on such functions simply as if they had
+  no tag, like:
+
+    (gdb) b function(int)
+
+  Or if you need to disambiguate between tags, like:
+
+    (gdb) b function[abi:other_tag](int)
+
+  Tab completion was adjusted accordingly as well.
+
+* Python Scripting
+
+  ** New events gdb.new_inferior, gdb.inferior_deleted, and
+     gdb.new_thread are emitted.  See the manual for further
+     description of these.
+
+  ** A new command, "rbreak" has been added to the Python API.  This
+     command allows the setting of a large number of breakpoints via a
+     regex pattern in Python.  See the manual for further details.
+
+  ** Python breakpoints can now accept explicit locations.  See the
+     manual for a further description of this feature.
+
+
+* New features in the GDB remote stub, GDBserver
+
+  ** GDBserver is now able to start inferior processes with a
+     specified initial working directory.
+
+     The user can set the desired working directory to be used from
+     GDB using the new "set cwd" command.
+
+  ** New "--selftest" command line option runs some GDBserver self
+     tests.  These self tests are disabled in releases.
+
+  ** On Unix systems, GDBserver now does globbing expansion and variable
+     substitution in inferior command line arguments.
+
+     This is done by starting inferiors using a shell, like GDB does.
+     See "set startup-with-shell" in the user manual for how to disable
+     this from GDB when using "target extended-remote".  When using
+     "target remote", you can disable the startup with shell by using the
+     new "--no-startup-with-shell" GDBserver command line option.
+
+  ** On Unix systems, GDBserver now supports receiving environment
+     variables that are to be set or unset from GDB.  These variables
+     will affect the environment to be passed to the inferior.
+
+* When catching an Ada exception raised with a message, GDB now prints
+  the message in the catchpoint hit notification. In GDB/MI mode, that
+  information is provided as an extra field named "exception-message"
+  in the *stopped notification.
+
+* Trait objects can now be inspected When debugging Rust code.  This
+  requires compiler support which will appear in Rust 1.24.
+
+* New remote packets
+
+QEnvironmentHexEncoded
+  Inform GDBserver of an environment variable that is to be passed to
+  the inferior when starting it.
+
+QEnvironmentUnset
+  Inform GDBserver of an environment variable that is to be unset
+  before starting the remote inferior.
+
+QEnvironmentReset
+  Inform GDBserver that the environment should be reset (i.e.,
+  user-set environment variables should be unset).
+
+QStartupWithShell
+  Indicates whether the inferior must be started with a shell or not.
+
+QSetWorkingDir
+  Tell GDBserver that the inferior to be started should use a specific
+  working directory.
+
+* The "maintenance print c-tdesc" command now takes an optional
+  argument which is the file name of XML target description.
+
+* The "maintenance selftest" command now takes an optional argument to
+  filter the tests to be run.
+
+* The "enable", and "disable" commands now accept a range of
+  breakpoint locations, e.g. "enable 1.3-5".
+
+* New commands
+
+set|show cwd
+  Set and show the current working directory for the inferior.
+
+set|show compile-gcc
+  Set and show compilation command used for compiling and injecting code
+  with the 'compile' commands.
+
+set debug separate-debug-file
+show debug separate-debug-file
+  Control the display of debug output about separate debug file search.
+
+set dump-excluded-mappings
+show dump-excluded-mappings
+  Control whether mappings marked with the VM_DONTDUMP flag should be
+  dumped when generating a core file.
+
+maint info selftests
+  List the registered selftests.
+
+starti
+  Start the debugged program stopping at the first instruction.
+
+set|show debug or1k
+  Control display of debugging messages related to OpenRISC targets.
+
+set|show print type nested-type-limit
+  Set and show the limit of nesting level for nested types that the
+  type printer will show.
+
+* TUI Single-Key mode now supports two new shortcut keys: `i' for stepi and
+  `o' for nexti.
+
+* Safer/improved support for debugging with no debug info
+
+  GDB no longer assumes functions with no debug information return
+  'int'.
+
+  This means that GDB now refuses to call such functions unless you
+  tell it the function's type, by either casting the call to the
+  declared return type, or by casting the function to a function
+  pointer of the right type, and calling that:
+
+    (gdb) p getenv ("PATH")
+    'getenv' has unknown return type; cast the call to its declared return type
+    (gdb) p (char *) getenv ("PATH")
+    $1 = 0x7fffffffe "/usr/local/bin:/"...
+    (gdb) p ((char * (*) (const char *)) getenv) ("PATH")
+    $2 = 0x7fffffffe "/usr/local/bin:/"...
+
+  Similarly, GDB no longer assumes that global variables with no debug
+  info have type 'int', and refuses to print the variable's value
+  unless you tell it the variable's type:
+
+    (gdb) p var
+    'var' has unknown type; cast it to its declared type
+    (gdb) p (float) var
+    $3 = 3.14
+
+* New native configurations
+
+FreeBSD/aarch64			aarch64*-*-freebsd*
+FreeBSD/arm			arm*-*-freebsd*
+
+* New targets
+
+FreeBSD/aarch64			aarch64*-*-freebsd*
+FreeBSD/arm			arm*-*-freebsd*
+OpenRISC ELF 			or1k*-*-elf
+
+* Removed targets and native configurations
+
+Solaris 2.0-9			i?86-*-solaris2.[0-9], sparc*-*-solaris2.[0-9]
+
 *** Changes in GDB 8.0
 
 * GDB now supports access to the PKU register on GNU/Linux. The register is
@@ -405,6 +669,9 @@ show max-value-size
 * Support for reading/writing memory and extracting values on architectures
   whose memory is addressable in units of any integral multiple of 8 bits.
 
+catch handlers
+  Allows to break when an Ada exception is handled.
+
 * New remote packets
 
 exec stop reason
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nios2-linux-tdep.c ./gdb/nios2-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nios2-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nios2-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target-dependent code for GNU/Linux on Nios II.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by Mentor Graphics, Inc.
 
    This file is part of GDB.
@@ -30,8 +30,6 @@
 #include "glibc-tdep.h"
 #include "nios2-tdep.h"
 
-#include "features/nios2-linux.c"
-
 /* Core file and register set support.  */
 
 /* Map from the normal register enumeration order to the order that
@@ -238,10 +236,6 @@ nios2_linux_init_abi (struct gdbarch_inf
   tdep->jb_pc = 10;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-
-extern initialize_file_ftype _initialize_nios2_linux_tdep;
-
 void
 _initialize_nios2_linux_tdep (void)
 {
@@ -253,6 +247,4 @@ _initialize_nios2_linux_tdep (void)
        arch_info = arch_info->next)
     gdbarch_register_osabi (bfd_arch_nios2, arch_info->mach,
 			    GDB_OSABI_LINUX, nios2_linux_init_abi);
-
-  initialize_tdesc_nios2_linux ();
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nios2-tdep.c ./gdb/nios2-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nios2-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nios2-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target-machine dependent code for Nios II, for GDB.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by Peter Brookes (pbrookes@altera.com)
    and Andrew Draper (adraper@altera.com).
    Contributed by Mentor Graphics, Inc.
@@ -37,7 +37,6 @@
 #include "value.h"
 #include "symfile.h"
 #include "arch-utils.h"
-#include "floatformat.h"
 #include "infcall.h"
 #include "regset.h"
 #include "target-descriptions.h"
@@ -1772,18 +1771,6 @@ nios2_sw_breakpoint_from_kind (struct gd
     }
 }
 
-/* Implement the print_insn gdbarch method.  */
-
-static int
-nios2_print_insn (bfd_vma memaddr, disassemble_info *info)
-{
-  if (info->endian == BFD_ENDIAN_BIG)
-    return print_insn_big_nios2 (memaddr, info);
-  else
-    return print_insn_little_nios2 (memaddr, info);
-}
-
-
 /* Implement the frame_align gdbarch method.  */
 
 static CORE_ADDR
@@ -1830,7 +1817,6 @@ nios2_push_dummy_call (struct gdbarch *g
                        int struct_return, CORE_ADDR struct_addr)
 {
   int argreg;
-  int float_argreg;
   int argnum;
   int len = 0;
   int stack_offset = 0;
@@ -2128,7 +2114,7 @@ static const struct frame_unwind nios2_s
 static CORE_ADDR
 nios2_get_next_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   unsigned long mach = gdbarch_bfd_arch_info (gdbarch)->mach;
   unsigned int insn;
@@ -2219,16 +2205,12 @@ nios2_get_next_pc (struct regcache *regc
 
 /* Implement the software_single_step gdbarch method.  */
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 nios2_software_single_step (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
   CORE_ADDR next_pc = nios2_get_next_pc (regcache, regcache_read_pc (regcache));
-  VEC (CORE_ADDR) *next_pcs = NULL;
-
-  VEC_safe_push (CORE_ADDR, next_pcs, next_pc);
 
-  return next_pcs;
+  return {next_pc};
 }
 
 /* Implement the get_longjump_target gdbarch method.  */
@@ -2360,8 +2342,6 @@ nios2_gdbarch_init (struct gdbarch_info 
 
   frame_base_set_default (gdbarch, &nios2_frame_base);
 
-  set_gdbarch_print_insn (gdbarch, nios2_print_insn);
-
   /* Enable inferior call support.  */
   set_gdbarch_push_dummy_call (gdbarch, nios2_push_dummy_call);
 
@@ -2371,8 +2351,6 @@ nios2_gdbarch_init (struct gdbarch_info 
   return gdbarch;
 }
 
-extern initialize_file_ftype _initialize_nios2_tdep; /* -Wmissing-prototypes */
-
 void
 _initialize_nios2_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nios2-tdep.h ./gdb/nios2-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nios2-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nios2-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target-dependent header for the Nios II architecture, for GDB.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by Mentor Graphics, Inc.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nto-procfs.c ./gdb/nto-procfs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nto-procfs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nto-procfs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Machine independent support for QNX Neutrino /proc (process file system)
    for GDB.  Written by Colin Burgess at QNX Software Systems Limited.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    Contributed by QNX Software Systems Ltd.
 
@@ -248,38 +248,24 @@ static void
 update_thread_private_data_name (struct thread_info *new_thread,
 				 const char *newname)
 {
-  int newnamelen;
-  struct private_thread_info *pti;
+  nto_thread_info *pti = get_nto_thread_info (new_thread);
 
   gdb_assert (newname != NULL);
   gdb_assert (new_thread != NULL);
-  newnamelen = strlen (newname);
-  if (!new_thread->priv)
+
+  if (pti)
     {
-      new_thread->priv = xmalloc (offsetof (struct private_thread_info,
-					       name)
-				     + newnamelen + 1);
-      memcpy (new_thread->priv->name, newname, newnamelen + 1);
-    }
-  else if (strcmp (newname, new_thread->priv->name) != 0)
-    {
-      /* Reallocate if neccessary.  */
-      int oldnamelen = strlen (new_thread->priv->name);
-
-      if (oldnamelen < newnamelen)
-	new_thread->priv = xrealloc (new_thread->priv,
-					offsetof (struct private_thread_info,
-						  name)
-					+ newnamelen + 1);
-      memcpy (new_thread->priv->name, newname, newnamelen + 1);
+      pti = new nto_thread_info;
+      new_thread->priv.reset (pti);
     }
+
+  pti->name = newname;
 }
 
 static void 
 update_thread_private_data (struct thread_info *new_thread, 
 			    pthread_t tid, int state, int flags)
 {
-  struct private_thread_info *pti;
   procfs_info pidinfo;
   struct _thread_name *tn;
   procfs_threadctl tctl;
@@ -306,7 +292,7 @@ update_thread_private_data (struct threa
 
   update_thread_private_data_name (new_thread, tn->name_buf);
 
-  pti = (struct private_thread_info *) new_thread->priv;
+  nto_thread_info *pti = get_nto_thread_info (new_thread);
   pti->tid = tid;
   pti->state = state;
   pti->flags = flags;
@@ -359,7 +345,7 @@ do_closedir_cleanup (void *dir)
 }
 
 static void
-procfs_pidlist (char *args, int from_tty)
+procfs_pidlist (const char *args, int from_tty)
 {
   DIR *dp = NULL;
   struct dirent *dirp = NULL;
@@ -461,7 +447,7 @@ procfs_pidlist (char *args, int from_tty
 }
 
 static void
-procfs_meminfo (char *args, int from_tty)
+procfs_meminfo (const char *args, int from_tty)
 {
   procfs_mapinfo *mapinfos = NULL;
   static int num_mapinfos = 0;
@@ -1285,7 +1271,7 @@ procfs_create_inferior (struct target_op
     }
   if (!target_is_pushed (ops))
     push_target (ops);
-  target_terminal_init ();
+  target_terminal::init ();
 
   if (exec_bfd != NULL
       || (symfile_objfile != NULL && symfile_objfile->obfd != NULL))
@@ -1386,7 +1372,7 @@ procfs_store_registers (struct target_op
       if (dev_set == -1)
 	return;
 
-      len = nto_register_area (get_regcache_arch (regcache),
+      len = nto_register_area (regcache->arch (),
 			       regno, regset, &off);
 
       if (len < 1)
@@ -1533,8 +1519,6 @@ init_procfs_targets (void)
 
 #define OSTYPE_NTO 1
 
-extern initialize_file_ftype _initialize_procfs;
-
 void
 _initialize_procfs (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nto-tdep.c ./gdb/nto-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nto-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nto-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* nto-tdep.c - general QNX Neutrino target functionality.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    Contributed by QNX Software Systems Ltd.
 
@@ -142,7 +142,7 @@ nto_find_and_open_solib (const char *sol
       if (temp_pathname)
 	{
 	  if (ret >= 0)
-	    *temp_pathname = gdb_realpath (arch_path);
+	    *temp_pathname = gdb_realpath (arch_path).release ();
 	  else
 	    *temp_pathname = NULL;
 	}
@@ -239,43 +239,12 @@ nto_parse_redirection (char *pargv[], co
   return argv;
 }
 
-/* The struct lm_info, lm_addr, and nto_truncate_ptr are copied from
-   solib-svr4.c to support nto_relocate_section_addresses
-   which is different from the svr4 version.  */
-
-/* Link map info to include in an allocated so_list entry */
-
-struct lm_info
-  {
-    /* Pointer to copy of link map from inferior.  The type is char *
-       rather than void *, so that we may use byte offsets to find the
-       various fields without the need for a cast.  */
-    gdb_byte *lm;
-
-    /* Amount by which addresses in the binary should be relocated to
-       match the inferior.  This could most often be taken directly
-       from lm, but when prelinking is involved and the prelink base
-       address changes, we may need a different offset, we want to
-       warn about the difference and compute it only once.  */
-    CORE_ADDR l_addr;
-
-    /* The target location of lm.  */
-    CORE_ADDR lm_addr;
-  };
-
-
 static CORE_ADDR
 lm_addr (struct so_list *so)
 {
-  if (so->lm_info->l_addr == (CORE_ADDR)-1)
-    {
-      struct link_map_offsets *lmo = nto_fetch_link_map_offsets ();
-      struct type *ptr_type = builtin_type (target_gdbarch ())->builtin_data_ptr;
+  lm_info_svr4 *li = (lm_info_svr4 *) so->lm_info;
 
-      so->lm_info->l_addr =
-	extract_typed_address (so->lm_info->lm + lmo->l_addr_offset, ptr_type);
-    }
-  return so->lm_info->l_addr;
+  return li->l_addr;
 }
 
 static CORE_ADDR
@@ -411,9 +380,13 @@ static const char *nto_thread_state_str[
 const char *
 nto_extra_thread_info (struct target_ops *self, struct thread_info *ti)
 {
-  if (ti && ti->priv
-      && ti->priv->state < ARRAY_SIZE (nto_thread_state_str))
-    return (char *)nto_thread_state_str [ti->priv->state];
+  if (ti != NULL && ti->priv != NULL)
+    {
+      nto_thread_info *priv = get_nto_thread_info (ti);
+
+      if (priv->state < ARRAY_SIZE (nto_thread_state_str))
+	return nto_thread_state_str [priv->state];
+    }
   return "";
 }
 
@@ -564,9 +537,6 @@ nto_inferior_data (struct inferior *cons
   return inf_data;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_nto_tdep;
-
 void
 _initialize_nto_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nto-tdep.h ./gdb/nto-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/nto-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/nto-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* nto-tdep.h - QNX Neutrino target header.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    Contributed by QNX Software Systems Ltd.
 
@@ -134,14 +134,20 @@ typedef struct _debug_regs
   qnx_reg64 padding[1024];
 } nto_regset_t;
 
-struct private_thread_info
+struct nto_thread_info : public private_thread_info
 {
-  short tid;
-  unsigned char state;
-  unsigned char flags;
-  char name[1];
+  short tid = 0;
+  unsigned char state = 0;
+  unsigned char flags = 0;
+  std::string name;
 };
 
+static inline nto_thread_info *
+get_nto_thread_info (thread_info *thread)
+{
+  return static_cast<nto_thread_info *> (thread->priv.get ());
+}
+
 /* Per-inferior data, common for both procfs and remote.  */
 struct nto_inferior_data
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/objc-lang.c ./gdb/objc-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/objc-lang.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/objc-lang.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Objective-C language support routines for GDB, the GNU debugger.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Apple Computer, Inc.
    Written by Michael Snyder.
@@ -130,7 +130,8 @@ lookup_objc_class (struct gdbarch *gdbar
 
   classval = value_string (classname, strlen (classname) + 1, char_type);
   classval = value_coerce_array (classval);
-  return (CORE_ADDR) value_as_long (call_function_by_hand (function, 
+  return (CORE_ADDR) value_as_long (call_function_by_hand (function,
+							   NULL,
 							   1, &classval));
 }
 
@@ -160,7 +161,7 @@ lookup_child_selector (struct gdbarch *g
   selstring = value_coerce_array (value_string (selname, 
 						strlen (selname) + 1,
 						char_type));
-  return value_as_long (call_function_by_hand (function, 1, &selstring));
+  return value_as_long (call_function_by_hand (function, NULL, 1, &selstring));
 }
 
 struct value * 
@@ -181,12 +182,13 @@ value_nsstring (struct gdbarch *gdbarch,
   if (lookup_minimal_symbol("_NSNewStringFromCString", 0, 0).minsym)
     {
       function = find_function_in_inferior("_NSNewStringFromCString", NULL);
-      nsstringValue = call_function_by_hand(function, 1, &stringValue[2]);
+      nsstringValue = call_function_by_hand(function,
+					    NULL, 1, &stringValue[2]);
     }
   else if (lookup_minimal_symbol("istr", 0, 0).minsym)
     {
       function = find_function_in_inferior("istr", NULL);
-      nsstringValue = call_function_by_hand(function, 1, &stringValue[2]);
+      nsstringValue = call_function_by_hand(function, NULL, 1, &stringValue[2]);
     }
   else if (lookup_minimal_symbol("+[NSString stringWithCString:]", 0, 0).minsym)
     {
@@ -198,7 +200,7 @@ value_nsstring (struct gdbarch *gdbarch,
 	(type, lookup_objc_class (gdbarch, "NSString"));
       stringValue[1] = value_from_longest 
 	(type, lookup_child_selector (gdbarch, "stringWithCString:"));
-      nsstringValue = call_function_by_hand(function, 3, &stringValue[0]);
+      nsstringValue = call_function_by_hand(function, NULL, 3, &stringValue[0]);
     }
   else
     error (_("NSString: internal error -- no way to create new NSString"));
@@ -364,7 +366,7 @@ static const char *objc_extensions[] =
   ".m", NULL
 };
 
-const struct language_defn objc_language_defn = {
+extern const struct language_defn objc_language_defn = {
   "objective-c",		/* Language name */
   "Objective-C",
   language_objc,
@@ -397,13 +399,15 @@ const struct language_defn objc_language
   1,				/* C-style arrays */
   0,				/* String lower bound */
   default_word_break_characters,
-  default_make_symbol_completion_list,
+  default_collect_symbol_completion_matches,
   c_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
   default_get_string,
-  NULL,				/* la_get_symbol_name_cmp */
+  c_watch_location_expression,
+  NULL,				/* la_get_symbol_name_matcher */
   iterate_over_symbols,
+  default_search_name_hash,
   &default_varobj_ops,
   NULL,
   NULL,
@@ -558,7 +562,7 @@ compare_selectors (const void *a, const 
  */
 
 static void
-selectors_info (char *regexp, int from_tty)
+info_selectors_command (const char *regexp, int from_tty)
 {
   struct objfile	*objfile;
   struct minimal_symbol *msymbol;
@@ -720,7 +724,7 @@ compare_classes (const void *a, const vo
  */
 
 static void
-classes_info (char *regexp, int from_tty)
+info_classes_command (const char *regexp, int from_tty)
 {
   struct objfile	*objfile;
   struct minimal_symbol *msymbol;
@@ -1181,7 +1185,7 @@ find_imps (const char *method, VEC (cons
 }
 
 static void 
-print_object_command (char *args, int from_tty)
+print_object_command (const char *args, int from_tty)
 {
   struct value *object, *function, *description;
   CORE_ADDR string_addr, object_addr;
@@ -1208,7 +1212,7 @@ print_object_command (char *args, int fr
   if (function == NULL)
     error (_("Unable to locate _NSPrintForDebugger in child process"));
 
-  description = call_function_by_hand (function, 1, &object);
+  description = call_function_by_hand (function, NULL, 1, &object);
 
   string_addr = value_as_long (description);
   if (string_addr == 0)
@@ -1307,43 +1311,25 @@ find_objc_msgsend (void)
  * dependent modules.
  */
 
-struct objc_submethod_helper_data {
-  int (*f) (CORE_ADDR, CORE_ADDR *);
-  CORE_ADDR pc;
-  CORE_ADDR *new_pc;
-};
-
-static int 
-find_objc_msgcall_submethod_helper (void * arg)
-{
-  struct objc_submethod_helper_data *s = 
-    (struct objc_submethod_helper_data *) arg;
-
-  if (s->f (s->pc, s->new_pc) == 0) 
-    return 1;
-  else 
-    return 0;
-}
-
 static int 
 find_objc_msgcall_submethod (int (*f) (CORE_ADDR, CORE_ADDR *),
 			     CORE_ADDR pc, 
 			     CORE_ADDR *new_pc)
 {
-  struct objc_submethod_helper_data s;
+  TRY
+    {
+      if (f (pc, new_pc) == 0)
+	return 1;
+    }
+  CATCH (ex, RETURN_MASK_ALL)
+    {
+      exception_fprintf (gdb_stderr, ex,
+			 "Unable to determine target of "
+			 "Objective-C method call (ignoring):\n");
+    }
+  END_CATCH
 
-  s.f = f;
-  s.pc = pc;
-  s.new_pc = new_pc;
-
-  if (catch_errors (find_objc_msgcall_submethod_helper,
-		    (void *) &s,
-		    "Unable to determine target of "
-		    "Objective-C method call (ignoring):\n",
-		    RETURN_MASK_ALL) == 0) 
-    return 1;
-  else 
-    return 0;
+  return 0;
 }
 
 int 
@@ -1370,16 +1356,12 @@ find_objc_msgcall (CORE_ADDR pc, CORE_AD
   return 0;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_objc_language;
-
 void
 _initialize_objc_language (void)
 {
-  add_language (&objc_language_defn);
-  add_info ("selectors", selectors_info,    /* INFO SELECTORS command.  */
+  add_info ("selectors", info_selectors_command,
 	    _("All Objective-C selectors, or those matching REGEXP."));
-  add_info ("classes", classes_info, 	    /* INFO CLASSES   command.  */
+  add_info ("classes", info_classes_command,
 	    _("All Objective-C classes, or those matching REGEXP."));
   add_com ("print-object", class_vars, print_object_command, 
 	   _("Ask an Objective-C object to print itself."));
@@ -1614,9 +1596,6 @@ resolve_msgsend_super_stret (CORE_ADDR p
   return 0;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_objc_lang;
-
 void
 _initialize_objc_lang (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/objc-lang.h ./gdb/objc-lang.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/objc-lang.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/objc-lang.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Objective-C language support definitions for GDB, the GNU debugger.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    Contributed by Apple Computer, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/objfile-flags.h ./gdb/objfile-flags.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/objfile-flags.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/objfile-flags.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definition of objfile flags.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -64,6 +64,10 @@ enum objfile_flag
        unrelated to filesystem names.  It can be for example
        "<image in memory>".  */
     OBJF_NOT_FILENAME = 1 << 6,
+
+    /* User requested that we do not read this objfile's symbolic
+       information.  */
+    OBJF_READNEVER = 1 << 7,
   };
 
 DEF_ENUM_FLAGS_TYPE (enum objfile_flag, objfile_flags);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/objfiles.c ./gdb/objfiles.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/objfiles.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/objfiles.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB routines for manipulating objfiles.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support, using pieces from other GDB modules.
 
@@ -142,18 +142,24 @@ get_objfile_bfd_data (struct objfile *ob
 	{
 	  storage
 	    = ((struct objfile_per_bfd_storage *)
-	       bfd_zalloc (abfd, sizeof (struct objfile_per_bfd_storage)));
+	       bfd_alloc (abfd, sizeof (struct objfile_per_bfd_storage)));
 	  set_bfd_data (abfd, objfiles_bfd_data, storage);
 	}
       else
-	storage = OBSTACK_ZALLOC (&objfile->objfile_obstack,
-				  struct objfile_per_bfd_storage);
+	{
+	  storage = (objfile_per_bfd_storage *)
+	    obstack_alloc (&objfile->objfile_obstack,
+			   sizeof (objfile_per_bfd_storage));
+	}
+
+      /* objfile_per_bfd_storage is not trivially constructible, must
+	 call the ctor manually.  */
+      storage = new (storage) objfile_per_bfd_storage ();
 
       /* Look up the gdbarch associated with the BFD.  */
       if (abfd != NULL)
 	storage->gdbarch = gdbarch_from_bfd (abfd);
 
-      obstack_init (&storage->storage_obstack);
       storage->filename_cache = bcache_xmalloc (NULL, NULL);
       storage->macro_cache = bcache_xmalloc (NULL, NULL);
       storage->language_of_main = language_unknown;
@@ -171,7 +177,7 @@ free_objfile_per_bfd_storage (struct obj
   bcache_xfree (storage->macro_cache);
   if (storage->demangled_names_hash)
     htab_delete (storage->demangled_names_hash);
-  obstack_free (&storage->storage_obstack, 0);
+  storage->~objfile_per_bfd_storage ();
 }
 
 /* A wrapper for free_objfile_per_bfd_storage that can be passed as a
@@ -351,10 +357,9 @@ build_objfile_section_table (struct objf
   add_to_objfile_sections_full (objfile->obfd, bfd_ind_section_ptr, objfile, 1);
 }
 
-/* Given a pointer to an initialized bfd (ABFD) and some flag bits
-   allocate a new objfile struct, fill it in as best we can, link it
-   into the list of all known objfiles, and return a pointer to the
-   new objfile struct.
+/* Given a pointer to an initialized bfd (ABFD) and some flag bits,
+   initialize the new objfile as best we can and link it into the list
+   of all known objfiles.
 
    NAME should contain original non-canonicalized filename or other
    identifier as entered by user.  If there is no better source use
@@ -365,69 +370,61 @@ build_objfile_section_table (struct objf
    requests for specific operations.  Other bits like OBJF_SHARED are
    simply copied through to the new objfile flags member.  */
 
-struct objfile *
-allocate_objfile (bfd *abfd, const char *name, objfile_flags flags)
+objfile::objfile (bfd *abfd, const char *name, objfile_flags flags_)
+  : flags (flags_),
+    pspace (current_program_space),
+    obfd (abfd),
+    psymbol_cache (psymbol_bcache_init ())
 {
-  struct objfile *objfile;
-  char *expanded_name;
+  const char *expanded_name;
 
-  objfile = XCNEW (struct objfile);
-  objfile->psymbol_cache = psymbol_bcache_init ();
   /* We could use obstack_specify_allocation here instead, but
      gdb_obstack.h specifies the alloc/dealloc functions.  */
-  obstack_init (&objfile->objfile_obstack);
+  obstack_init (&objfile_obstack);
 
-  objfile_alloc_data (objfile);
+  objfile_alloc_data (this);
 
+  gdb::unique_xmalloc_ptr<char> name_holder;
   if (name == NULL)
     {
       gdb_assert (abfd == NULL);
       gdb_assert ((flags & OBJF_NOT_FILENAME) != 0);
-      expanded_name = xstrdup ("<<anonymous objfile>>");
+      expanded_name = "<<anonymous objfile>>";
     }
   else if ((flags & OBJF_NOT_FILENAME) != 0
 	   || is_target_filename (name))
-    expanded_name = xstrdup (name);
+    expanded_name = name;
   else
-    expanded_name = gdb_abspath (name);
-  objfile->original_name
-    = (char *) obstack_copy0 (&objfile->objfile_obstack,
+    {
+      name_holder = gdb_abspath (name);
+      expanded_name = name_holder.get ();
+    }
+  original_name
+    = (char *) obstack_copy0 (&objfile_obstack,
 			      expanded_name,
 			      strlen (expanded_name));
-  xfree (expanded_name);
 
   /* Update the per-objfile information that comes from the bfd, ensuring
      that any data that is reference is saved in the per-objfile data
      region.  */
 
-  objfile->obfd = abfd;
   gdb_bfd_ref (abfd);
   if (abfd != NULL)
     {
-      objfile->mtime = bfd_get_mtime (abfd);
+      mtime = bfd_get_mtime (abfd);
 
       /* Build section table.  */
-      build_objfile_section_table (objfile);
+      build_objfile_section_table (this);
     }
 
-  objfile->per_bfd = get_objfile_bfd_data (objfile, abfd);
-  objfile->pspace = current_program_space;
+  per_bfd = get_objfile_bfd_data (this, abfd);
 
-  terminate_minimal_symbol_table (objfile);
-
-  /* Initialize the section indexes for this objfile, so that we can
-     later detect if they are used w/o being properly assigned to.  */
-
-  objfile->sect_index_text = -1;
-  objfile->sect_index_data = -1;
-  objfile->sect_index_bss = -1;
-  objfile->sect_index_rodata = -1;
+  terminate_minimal_symbol_table (this);
 
   /* Add this file onto the tail of the linked list of other such files.  */
 
-  objfile->next = NULL;
   if (object_files == NULL)
-    object_files = objfile;
+    object_files = this;
   else
     {
       struct objfile *last_one;
@@ -435,16 +432,11 @@ allocate_objfile (bfd *abfd, const char 
       for (last_one = object_files;
 	   last_one->next;
 	   last_one = last_one->next);
-      last_one->next = objfile;
+      last_one->next = this;
     }
 
-  /* Save passed in flag bits.  */
-  objfile->flags |= flags;
-
   /* Rebuild section map next time we need it.  */
-  get_objfile_pspace_data (objfile->pspace)->new_objfiles_available = 1;
-
-  return objfile;
+  get_objfile_pspace_data (pspace)->new_objfiles_available = 1;
 }
 
 /* Retrieve the gdbarch associated with OBJFILE.  */
@@ -614,45 +606,44 @@ free_objfile_separate_debug (struct objf
   for (child = objfile->separate_debug_objfile; child;)
     {
       struct objfile *next_child = child->separate_debug_objfile_link;
-      free_objfile (child);
+      delete child;
       child = next_child;
     }
 }
 
 /* Destroy an objfile and all the symtabs and psymtabs under it.  */
 
-void
-free_objfile (struct objfile *objfile)
+objfile::~objfile ()
 {
   /* First notify observers that this objfile is about to be freed.  */
-  observer_notify_free_objfile (objfile);
+  observer_notify_free_objfile (this);
 
   /* Free all separate debug objfiles.  */
-  free_objfile_separate_debug (objfile);
+  free_objfile_separate_debug (this);
 
-  if (objfile->separate_debug_objfile_backlink)
+  if (separate_debug_objfile_backlink)
     {
       /* We freed the separate debug file, make sure the base objfile
 	 doesn't reference it.  */
       struct objfile *child;
 
-      child = objfile->separate_debug_objfile_backlink->separate_debug_objfile;
+      child = separate_debug_objfile_backlink->separate_debug_objfile;
 
-      if (child == objfile)
+      if (child == this)
         {
-          /* OBJFILE is the first child.  */
-          objfile->separate_debug_objfile_backlink->separate_debug_objfile =
-            objfile->separate_debug_objfile_link;
+          /* THIS is the first child.  */
+          separate_debug_objfile_backlink->separate_debug_objfile =
+            separate_debug_objfile_link;
         }
       else
         {
-          /* Find OBJFILE in the list.  */
+          /* Find THIS in the list.  */
           while (1)
             {
-              if (child->separate_debug_objfile_link == objfile)
+              if (child->separate_debug_objfile_link == this)
                 {
                   child->separate_debug_objfile_link =
-                    objfile->separate_debug_objfile_link;
+                    separate_debug_objfile_link;
                   break;
                 }
               child = child->separate_debug_objfile_link;
@@ -660,17 +651,17 @@ free_objfile (struct objfile *objfile)
             }
         }
     }
-  
+
   /* Remove any references to this objfile in the global value
      lists.  */
-  preserve_values (objfile);
+  preserve_values (this);
 
   /* It still may reference data modules have associated with the objfile and
      the symbol file data.  */
-  forget_cached_source_info_for_objfile (objfile);
+  forget_cached_source_info_for_objfile (this);
 
-  breakpoint_free_objfile (objfile);
-  btrace_free_objfile (objfile);
+  breakpoint_free_objfile (this);
+  btrace_free_objfile (this);
 
   /* First do any symbol file specific actions required when we are
      finished with a particular symbol file.  Note that if the objfile
@@ -679,25 +670,23 @@ free_objfile (struct objfile *objfile)
      freeing things which are valid only during this particular gdb
      execution, or leaving them to be reused during the next one.  */
 
-  if (objfile->sf != NULL)
-    {
-      (*objfile->sf->sym_finish) (objfile);
-    }
+  if (sf != NULL)
+    (*sf->sym_finish) (this);
 
   /* Discard any data modules have associated with the objfile.  The function
-     still may reference objfile->obfd.  */
-  objfile_free_data (objfile);
+     still may reference obfd.  */
+  objfile_free_data (this);
 
-  if (objfile->obfd)
-    gdb_bfd_unref (objfile->obfd);
+  if (obfd)
+    gdb_bfd_unref (obfd);
   else
-    free_objfile_per_bfd_storage (objfile->per_bfd);
+    free_objfile_per_bfd_storage (per_bfd);
 
   /* Remove it from the chain of all objfiles.  */
 
-  unlink_objfile (objfile);
+  unlink_objfile (this);
 
-  if (objfile == symfile_objfile)
+  if (this == symfile_objfile)
     symfile_objfile = NULL;
 
   /* Before the symbol table code was redone to make it easier to
@@ -723,40 +712,21 @@ free_objfile (struct objfile *objfile)
   {
     struct symtab_and_line cursal = get_current_source_symtab_and_line ();
 
-    if (cursal.symtab && SYMTAB_OBJFILE (cursal.symtab) == objfile)
+    if (cursal.symtab && SYMTAB_OBJFILE (cursal.symtab) == this)
       clear_current_source_symtab_and_line ();
   }
 
-  if (objfile->global_psymbols.list)
-    xfree (objfile->global_psymbols.list);
-  if (objfile->static_psymbols.list)
-    xfree (objfile->static_psymbols.list);
   /* Free the obstacks for non-reusable objfiles.  */
-  psymbol_bcache_free (objfile->psymbol_cache);
-  obstack_free (&objfile->objfile_obstack, 0);
+  psymbol_bcache_free (psymbol_cache);
+  obstack_free (&objfile_obstack, 0);
 
   /* Rebuild section map next time we need it.  */
-  get_objfile_pspace_data (objfile->pspace)->section_map_dirty = 1;
+  get_objfile_pspace_data (pspace)->section_map_dirty = 1;
 
   /* Free the map for static links.  There's no need to free static link
      themselves since they were allocated on the objstack.  */
-  if (objfile->static_links != NULL)
-    htab_delete (objfile->static_links);
-
-  /* The last thing we do is free the objfile struct itself.  */
-  xfree (objfile);
-}
-
-static void
-do_free_objfile_cleanup (void *obj)
-{
-  free_objfile ((struct objfile *) obj);
-}
-
-struct cleanup *
-make_cleanup_free_objfile (struct objfile *obj)
-{
-  return make_cleanup (do_free_objfile_cleanup, obj);
+  if (static_links != NULL)
+    htab_delete (static_links);
 }
 
 /* Free all the object files at once and clean up their users.  */
@@ -773,7 +743,7 @@ free_all_objfiles (void)
 
   ALL_OBJFILES_SAFE (objfile, temp)
   {
-    free_objfile (objfile);
+    delete objfile;
   }
   clear_symtab_users (0);
 }
@@ -1096,7 +1066,7 @@ objfile_purge_solibs (void)
        be soon.  */
 
     if (!(objf->flags & OBJF_USERLOADED) && (objf->flags & OBJF_SHARED))
-      free_objfile (objf);
+      delete objf;
   }
 }
 
@@ -1621,9 +1591,6 @@ objfile_flavour_name (struct objfile *ob
   return NULL;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_objfiles;
-
 void
 _initialize_objfiles (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/objfiles.h ./gdb/objfiles.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/objfiles.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/objfiles.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for symbol file management in GDB.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -23,14 +23,16 @@
 #include "hashtab.h"
 #include "gdb_obstack.h"	/* For obstack internals.  */
 #include "objfile-flags.h"
-#include "symfile.h"		/* For struct psymbol_allocation_list.  */
+#include "symfile.h"
 #include "progspace.h"
 #include "registry.h"
 #include "gdb_bfd.h"
+#include <vector>
 
 struct bcache;
 struct htab;
 struct objfile_data;
+struct partial_symbol;
 
 /* This structure maintains information on a per-objfile basis about the
    "entry point" of the objfile, and the scope within which the entry point
@@ -154,19 +156,19 @@ struct obj_section
 struct objstats
 {
   /* Number of partial symbols read.  */
-  int n_psyms;
+  int n_psyms = 0;
 
   /* Number of full symbols read.  */
-  int n_syms;
+  int n_syms = 0;
 
   /* Number of ".stabs" read (if applicable).  */
-  int n_stabs;
+  int n_stabs = 0;
 
   /* Number of types.  */
-  int n_types;
+  int n_types = 0;
 
   /* Size of stringtable, (if applicable).  */
-  int sz_strtab;
+  int sz_strtab = 0;
 };
 
 #define OBJSTAT(objfile, expr) (objfile -> stats.expr)
@@ -184,24 +186,28 @@ extern void print_symbol_bcache_statisti
 
 struct objfile_per_bfd_storage
 {
+  objfile_per_bfd_storage ()
+    : minsyms_read (false)
+  {}
+
   /* The storage has an obstack of its own.  */
 
-  struct obstack storage_obstack;
+  auto_obstack storage_obstack;
 
   /* Byte cache for file names.  */
 
-  struct bcache *filename_cache;
+  bcache *filename_cache = NULL;
 
   /* Byte cache for macros.  */
 
-  struct bcache *macro_cache;
+  bcache *macro_cache = NULL;
 
   /* The gdbarch associated with the BFD.  Note that this gdbarch is
      determined solely from BFD information, without looking at target
      information.  The gdbarch determined from a running target may
      differ from this e.g. with respect to register types and names.  */
 
-  struct gdbarch *gdbarch;
+  struct gdbarch *gdbarch = NULL;
 
   /* Hash table for mapping symbol names to demangled names.  Each
      entry in the hash table is actually two consecutive strings,
@@ -209,19 +215,19 @@ struct objfile_per_bfd_storage
      name, and the second is the demangled name or just a zero byte
      if the name doesn't demangle.  */
 
-  struct htab *demangled_names_hash;
+  htab *demangled_names_hash = NULL;
 
   /* The per-objfile information about the entry point, the scope (file/func)
      containing the entry point, and the scope of the user's main() func.  */
 
-  struct entry_info ei;
+  entry_info ei {};
 
   /* The name and language of any "main" found in this objfile.  The
      name can be NULL, which means that the information was not
      recorded.  */
 
-  const char *name_of_main;
-  enum language language_of_main;
+  const char *name_of_main = NULL;
+  enum language language_of_main = language_unknown;
 
   /* Each file contains a pointer to an array of minimal symbols for all
      global symbols that are defined within the file.  The array is
@@ -233,15 +239,15 @@ struct objfile_per_bfd_storage
      as all the data that it points to, should be allocated on the
      objfile_obstack for this file.  */
 
-  struct minimal_symbol *msymbols;
-  int minimal_symbol_count;
+  minimal_symbol *msymbols = NULL;
+  int minimal_symbol_count = 0;
 
   /* The number of minimal symbols read, before any minimal symbol
      de-duplication is applied.  Note in particular that this has only
      a passing relationship with the actual size of the table above;
      use minimal_symbol_count if you need the true size.  */
 
-  int n_minsyms;
+  int n_minsyms = 0;
 
   /* This is true if minimal symbols have already been read.  Symbol
      readers can use this to bypass minimal symbol reading.  Also, the
@@ -251,16 +257,22 @@ struct objfile_per_bfd_storage
      for multiple readers to install minimal symbols into a given
      per-BFD.  */
 
-  unsigned int minsyms_read : 1;
+  bool minsyms_read : 1;
 
   /* This is a hash table used to index the minimal symbols by name.  */
 
-  struct minimal_symbol *msymbol_hash[MINIMAL_SYMBOL_HASH_SIZE];
+  minimal_symbol *msymbol_hash[MINIMAL_SYMBOL_HASH_SIZE] {};
 
   /* This hash table is used to index the minimal symbols by their
      demangled names.  */
 
-  struct minimal_symbol *msymbol_demangled_hash[MINIMAL_SYMBOL_HASH_SIZE];
+  minimal_symbol *msymbol_demangled_hash[MINIMAL_SYMBOL_HASH_SIZE] {};
+
+  /* All the different languages of symbols found in the demangled
+     hash table.  A flat/vector-based map is more efficient than a map
+     or hash table here, since this will only usually contain zero or
+     one entries.  */
+  std::vector<enum language> demangled_hash_languages;
 };
 
 /* Master structure for keeping track of each file from which
@@ -273,11 +285,16 @@ struct objfile_per_bfd_storage
 
 struct objfile
 {
+  objfile (bfd *, const char *, objfile_flags);
+  ~objfile ();
+
+  DISABLE_COPY_AND_ASSIGN (objfile);
+
   /* All struct objfile's are chained together by their next pointers.
      The program space field "objfiles"  (frequently referenced via
      the macro "object_files") points to the first link in this chain.  */
 
-  struct objfile *next;
+  struct objfile *next = nullptr;
 
   /* The object file's original name as specified by the user,
      made absolute, and tilde-expanded.  However, it is not canonicalized
@@ -285,9 +302,9 @@ struct objfile
      This pointer is never NULL.  This does not have to be freed; it is
      guaranteed to have a lifetime at least as long as the objfile.  */
 
-  char *original_name;
+  char *original_name = nullptr;
 
-  CORE_ADDR addr_low;
+  CORE_ADDR addr_low = 0;
 
   /* Some flag bits for this objfile.  */
 
@@ -300,24 +317,24 @@ struct objfile
   /* List of compunits.
      These are used to do symbol lookups and file/line-number lookups.  */
 
-  struct compunit_symtab *compunit_symtabs;
+  struct compunit_symtab *compunit_symtabs = nullptr;
 
   /* Each objfile points to a linked list of partial symtabs derived from
      this file, one partial symtab structure for each compilation unit
      (source file).  */
 
-  struct partial_symtab *psymtabs;
+  struct partial_symtab *psymtabs = nullptr;
 
   /* Map addresses to the entries of PSYMTABS.  It would be more efficient to
      have a map per the whole process but ADDRMAP cannot selectively remove
      its items during FREE_OBJFILE.  This mapping is already present even for
      PARTIAL_SYMTABs which still have no corresponding full SYMTABs read.  */
 
-  struct addrmap *psymtabs_addrmap;
+  struct addrmap *psymtabs_addrmap = nullptr;
 
   /* List of freed partial symtabs, available for re-use.  */
 
-  struct partial_symtab *free_psymtabs;
+  struct partial_symtab *free_psymtabs = nullptr;
 
   /* The object file's BFD.  Can be null if the objfile contains only
      minimal symbols, e.g. the run time common symbols for SunOS4.  */
@@ -327,28 +344,33 @@ struct objfile
   /* The per-BFD data.  Note that this is treated specially if OBFD
      is NULL.  */
 
-  struct objfile_per_bfd_storage *per_bfd;
+  struct objfile_per_bfd_storage *per_bfd = nullptr;
 
   /* The modification timestamp of the object file, as of the last time
      we read its symbols.  */
 
-  long mtime;
+  long mtime = 0;
 
   /* Obstack to hold objects that should be freed when we load a new symbol
      table from this object file.  */
 
-  struct obstack objfile_obstack;
+  struct obstack objfile_obstack {};
 
   /* A byte cache where we can stash arbitrary "chunks" of bytes that
      will not change.  */
 
-  struct psymbol_bcache *psymbol_cache; /* Byte cache for partial syms.  */
+  struct psymbol_bcache *psymbol_cache;
+
+  /* Map symbol addresses to the partial symtab that defines the
+     object at that address.  */
+
+  std::vector<std::pair<CORE_ADDR, partial_symtab *>> psymbol_map;
 
   /* Vectors of all partial symbols read in from file.  The actual data
      is stored in the objfile_obstack.  */
 
-  struct psymbol_allocation_list global_psymbols;
-  struct psymbol_allocation_list static_psymbols;
+  std::vector<partial_symbol *> global_psymbols;
+  std::vector<partial_symbol *> static_psymbols;
 
   /* Structure which keeps track of functions that manipulate objfile's
      of the same type as this objfile.  I.e. the function to read partial
@@ -356,11 +378,11 @@ struct objfile
      allocated memory, and is shared by all objfiles that use the
      object module reader of this type.  */
 
-  const struct sym_fns *sf;
+  const struct sym_fns *sf = nullptr;
 
   /* Per objfile data-pointers required by other GDB modules.  */
 
-  REGISTRY_FIELDS;
+  REGISTRY_FIELDS {};
 
   /* Set of relocation offsets to apply to each section.
      The table is indexed by the_bfd_section->index, thus it is generally
@@ -371,20 +393,23 @@ struct objfile
      minimal symbols) which have been read have been relocated by this
      much.  Symbols which are yet to be read need to be relocated by it.  */
 
-  struct section_offsets *section_offsets;
-  int num_sections;
+  struct section_offsets *section_offsets = nullptr;
+  int num_sections = 0;
 
   /* Indexes in the section_offsets array.  These are initialized by the
      *_symfile_offsets() family of functions (som_symfile_offsets,
      xcoff_symfile_offsets, default_symfile_offsets).  In theory they
      should correspond to the section indexes used by bfd for the
      current objfile.  The exception to this for the time being is the
-     SOM version.  */
+     SOM version.
+
+     These are initialized to -1 so that we can later detect if they
+     are used w/o being properly assigned to.  */
 
-  int sect_index_text;
-  int sect_index_data;
-  int sect_index_bss;
-  int sect_index_rodata;
+  int sect_index_text = -1;
+  int sect_index_data = -1;
+  int sect_index_bss = -1;
+  int sect_index_rodata = -1;
 
   /* These pointers are used to locate the section table, which
      among other things, is used to map pc addresses into sections.
@@ -395,7 +420,8 @@ struct objfile
      structure data is only valid for certain sections
      (e.g. non-empty, SEC_ALLOC).  */
 
-  struct obj_section *sections, *sections_end;
+  struct obj_section *sections = nullptr;
+  struct obj_section *sections_end = nullptr;
 
   /* GDB allows to have debug symbols in separate object files.  This is
      used by .gnu_debuglink, ELF build id note and Mach-O OSO.
@@ -407,17 +433,17 @@ struct objfile
 
   /* Link to the first separate debug object, if any.  */
 
-  struct objfile *separate_debug_objfile;
+  struct objfile *separate_debug_objfile = nullptr;
 
   /* If this is a separate debug object, this is used as a link to the
      actual executable objfile.  */
 
-  struct objfile *separate_debug_objfile_backlink;
+  struct objfile *separate_debug_objfile_backlink = nullptr;
 
   /* If this is a separate debug object, this is a link to the next one
      for the same executable objfile.  */
 
-  struct objfile *separate_debug_objfile_link;
+  struct objfile *separate_debug_objfile_link = nullptr;
 
   /* Place to stash various statistics about this objfile.  */
 
@@ -428,7 +454,7 @@ struct objfile
      table, so we have to keep them here to relocate them
      properly.  */
 
-  struct symbol *template_symbols;
+  struct symbol *template_symbols = nullptr;
 
   /* Associate a static link (struct dynamic_prop *) to all blocks (struct
      block *) that have one.
@@ -441,14 +467,11 @@ struct objfile
      Very few blocks have a static link, so it's more memory efficient to
      store these here rather than in struct block.  Static links must be
      allocated on the objfile's obstack.  */
-  htab_t static_links;
+  htab_t static_links {};
 };
 
 /* Declarations for functions defined in objfiles.c */
 
-extern struct objfile *allocate_objfile (bfd *, const char *name,
-					 objfile_flags);
-
 extern struct gdbarch *get_objfile_arch (const struct objfile *);
 
 extern int entry_point_address_query (CORE_ADDR *entry_p);
@@ -466,12 +489,8 @@ extern void add_separate_debug_objfile (
 
 extern void unlink_objfile (struct objfile *);
 
-extern void free_objfile (struct objfile *);
-
 extern void free_objfile_separate_debug (struct objfile *);
 
-extern struct cleanup *make_cleanup_free_objfile (struct objfile *);
-
 extern void free_all_objfiles (void);
 
 extern void objfile_relocate (struct objfile *, const struct section_offsets *);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/obsd-nat.c ./gdb/obsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/obsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/obsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for OpenBSD.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/obsd-nat.h ./gdb/obsd-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/obsd-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/obsd-nat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for OpenBSD.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/obsd-tdep.c ./gdb/obsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/obsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/obsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for OpenBSD.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/obsd-tdep.h ./gdb/obsd-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/obsd-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/obsd-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for OpenBSD.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/observer.c ./gdb/observer.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/observer.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/observer.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB Notifications to Observers.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -181,11 +181,6 @@ int observer_test_first_observer = 0;
 int observer_test_second_observer = 0;
 int observer_test_third_observer = 0;
 
-/* Provide prototypes to silence -Wmissing-prototypes.  */
-extern void observer_test_first_notification_function (int arg);
-extern void observer_test_second_notification_function (int arg);
-extern void observer_test_third_notification_function (int arg);
-
 void
 observer_test_first_notification_function (int arg)
 {
@@ -204,8 +199,6 @@ observer_test_third_notification_functio
   observer_test_third_observer++;
 }
 
-extern initialize_file_ftype _initialize_observer; /* -Wmissing-prototypes */
-
 void
 _initialize_observer (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/observer.sh ./gdb/observer.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/observer.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/observer.sh	2018-01-09 02:04:57.000000000 +0000
@@ -29,7 +29,7 @@ rm -f ${otmp}
 cat <<EOF >>${otmp}
 /* GDB Notifications to Observers.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/opencl-lang.c ./gdb/opencl-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/opencl-lang.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/opencl-lang.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* OpenCL language support for GDB, the GNU debugger.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    Contributed by Ken Werner <ken.werner@de.ibm.com>.
 
@@ -27,8 +27,6 @@
 #include "varobj.h"
 #include "c-lang.h"
 
-extern void _initialize_opencl_language (void);
-
 /* This macro generates enum values from a given type.  */
 
 #define OCL_P_TYPE(TYPE)\
@@ -1043,7 +1041,7 @@ const struct exp_descriptor exp_descript
   evaluate_subexp_opencl
 };
 
-const struct language_defn opencl_language_defn =
+extern const struct language_defn opencl_language_defn =
 {
   "opencl",			/* Language name */
   "OpenCL C",
@@ -1077,13 +1075,15 @@ const struct language_defn opencl_langua
   1,				/* c-style arrays */
   0,				/* String lower bound */
   default_word_break_characters,
-  default_make_symbol_completion_list,
+  default_collect_symbol_completion_matches,
   opencl_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
   c_get_string,
-  NULL,				/* la_get_symbol_name_cmp */
+  c_watch_location_expression,
+  NULL,				/* la_get_symbol_name_matcher */
   iterate_over_symbols,
+  default_search_name_hash,
   &default_varobj_ops,
   NULL,
   NULL,
@@ -1172,17 +1172,13 @@ build_opencl_types (struct gdbarch *gdba
   types[opencl_primitive_type_uintptr_t]
     = arch_integer_type (gdbarch, gdbarch_ptr_bit (gdbarch), 1, "uintptr_t");
   types[opencl_primitive_type_void]
-    = arch_type (gdbarch, TYPE_CODE_VOID, 1, "void");
+    = arch_type (gdbarch, TYPE_CODE_VOID, TARGET_CHAR_BIT, "void");
 
   return types;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_opencl_language;
-
 void
 _initialize_opencl_language (void)
 {
   opencl_type_data = gdbarch_data_register_post_init (build_opencl_types);
-  add_language (&opencl_language_defn);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/or1k-tdep.c ./gdb/or1k-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/or1k-tdep.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/or1k-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,1294 @@
+/* Target-dependent code for the 32-bit OpenRISC 1000, for the GDB.
+   Copyright (C) 2008-2018 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 "defs.h"
+#include "frame.h"
+#include "inferior.h"
+#include "symtab.h"
+#include "value.h"
+#include "gdbcmd.h"
+#include "language.h"
+#include "gdbcore.h"
+#include "symfile.h"
+#include "objfiles.h"
+#include "gdbtypes.h"
+#include "target.h"
+#include "regcache.h"
+#include "safe-ctype.h"
+#include "block.h"
+#include "reggroups.h"
+#include "arch-utils.h"
+#include "frame.h"
+#include "frame-unwind.h"
+#include "frame-base.h"
+#include "dwarf2-frame.h"
+#include "trad-frame.h"
+#include "regset.h"
+#include "remote.h"
+#include "target-descriptions.h"
+#include <inttypes.h>
+#include "dis-asm.h"
+
+/* OpenRISC specific includes.  */
+#include "or1k-tdep.h"
+#include "features/or1k.c"
+
+
+/* Global debug flag.  */
+
+static int or1k_debug = 0;
+
+static void
+show_or1k_debug (struct ui_file *file, int from_tty,
+		 struct cmd_list_element *c, const char *value)
+{
+  fprintf_filtered (file, _("OpenRISC debugging is %s.\n"), value);
+}
+
+
+/* The target-dependent structure for gdbarch.  */
+
+struct gdbarch_tdep
+{
+  int bytes_per_word;
+  int bytes_per_address;
+  CGEN_CPU_DESC gdb_cgen_cpu_desc;
+};
+
+/* Support functions for the architecture definition.  */
+
+/* Get an instruction from memory.  */
+
+static ULONGEST
+or1k_fetch_instruction (struct gdbarch *gdbarch, CORE_ADDR addr)
+{
+  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+  gdb_byte buf[OR1K_INSTLEN];
+
+  if (target_read_code (addr, buf, OR1K_INSTLEN)) {
+    memory_error (TARGET_XFER_E_IO, addr);
+  }
+
+  return extract_unsigned_integer (buf, OR1K_INSTLEN, byte_order);
+}
+
+/* Generic function to read bits from an instruction.  */
+
+static bool
+or1k_analyse_inst (uint32_t inst, const char *format, ...)
+{
+  /* Break out each field in turn, validating as we go.  */
+  va_list ap;
+  int i;
+  int iptr = 0; /* Instruction pointer */
+
+  va_start (ap, format);
+
+  for (i = 0; 0 != format[i];)
+    {
+      const char *start_ptr;
+      char *end_ptr;
+
+      uint32_t bits; /* Bit substring of interest */
+      uint32_t width; /* Substring width */
+      uint32_t *arg_ptr;
+
+      switch (format[i])
+	{
+	case ' ':
+	  i++;
+	  break; /* Formatting: ignored */
+
+	case '0':
+	case '1': /* Constant bit field */
+	  bits = (inst >> (OR1K_INSTBITLEN - iptr - 1)) & 0x1;
+
+	  if ((format[i] - '0') != bits)
+	    return false;
+
+	  iptr++;
+	  i++;
+	  break;
+
+	case '%': /* Bit field */
+	  i++;
+	  start_ptr = &(format[i]);
+	  width = strtoul (start_ptr, &end_ptr, 10);
+
+	  /* Check we got something, and if so skip on.  */
+	  if (start_ptr == end_ptr)
+	    error (_("bitstring \"%s\" at offset %d has no length field."),
+		   format, i);
+
+	  i += end_ptr - start_ptr;
+
+	  /* Look for and skip the terminating 'b'.  If it's not there, we
+	     still give a fatal error, because these are fixed strings that
+	     just should not be wrong.  */
+	  if ('b' != format[i++])
+	    error (_("bitstring \"%s\" at offset %d has no terminating 'b'."),
+		   format, i);
+
+	  /* Break out the field.  There is a special case with a bit width
+	     of 32.  */
+	  if (32 == width)
+	    bits = inst;
+	  else
+	    bits =
+	      (inst >> (OR1K_INSTBITLEN - iptr - width)) & ((1 << width) - 1);
+
+	  arg_ptr = va_arg (ap, uint32_t *);
+	  *arg_ptr = bits;
+	  iptr += width;
+	  break;
+
+	default:
+	  error (_("invalid character in bitstring \"%s\" at offset %d."),
+		 format, i);
+	  break;
+	}
+    }
+
+  /* Is the length OK?  */
+  gdb_assert (OR1K_INSTBITLEN == iptr);
+
+  return true; /* Success */
+}
+
+/* This is used to parse l.addi instructions during various prologue
+   analysis routines.  The l.addi instruction has semantics:
+
+     assembly:        l.addi  rD,rA,I
+     implementation:  rD = rA + sign_extend(Immediate)
+
+   The rd_ptr, ra_ptr and simm_ptr must be non NULL pointers and are used
+   to store the parse results.  Upon successful parsing true is returned,
+   false on failure. */
+
+static bool
+or1k_analyse_l_addi (uint32_t inst, unsigned int *rd_ptr,
+		     unsigned int *ra_ptr, int *simm_ptr)
+{
+  /* Instruction fields */
+  uint32_t rd, ra, i;
+
+  if (or1k_analyse_inst (inst, "10 0111 %5b %5b %16b", &rd, &ra, &i))
+    {
+      /* Found it.  Construct the result fields.  */
+      *rd_ptr = (unsigned int) rd;
+      *ra_ptr = (unsigned int) ra;
+      *simm_ptr = (int) (((i & 0x8000) == 0x8000) ? 0xffff0000 | i : i);
+
+      return true; /* Success */
+    }
+  else
+    return false; /* Failure */
+}
+
+/* This is used to to parse store instructions during various prologue
+   analysis routines.  The l.sw instruction has semantics:
+
+     assembly:        l.sw  I(rA),rB
+     implementation:  store rB contents to memory at effective address of
+		      rA + sign_extend(Immediate)
+
+   The simm_ptr, ra_ptr and rb_ptr must be non NULL pointers and are used
+   to store the parse results. Upon successful parsing true is returned,
+   false on failure. */
+
+static bool
+or1k_analyse_l_sw (uint32_t inst, int *simm_ptr, unsigned int *ra_ptr,
+		   unsigned int *rb_ptr)
+{
+  /* Instruction fields */
+  uint32_t ihi, ilo, ra, rb;
+
+  if (or1k_analyse_inst (inst, "11 0101 %5b %5b %5b %11b", &ihi, &ra, &rb,
+			 &ilo))
+
+    {
+      /* Found it.  Construct the result fields.  */
+      *simm_ptr = (int) ((ihi << 11) | ilo);
+      *simm_ptr |= ((ihi & 0x10) == 0x10) ? 0xffff0000 : 0;
+
+      *ra_ptr = (unsigned int) ra;
+      *rb_ptr = (unsigned int) rb;
+
+      return true; /* Success */
+    }
+  else
+    return false; /* Failure */
+}
+
+
+/* Functions defining the architecture.  */
+
+/* Implement the return_value gdbarch method.  */
+
+static enum return_value_convention
+or1k_return_value (struct gdbarch *gdbarch, struct value *functype,
+		   struct type *valtype, struct regcache *regcache,
+		   gdb_byte *readbuf, const gdb_byte *writebuf)
+{
+  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+  enum type_code rv_type = TYPE_CODE (valtype);
+  unsigned int rv_size = TYPE_LENGTH (valtype);
+  int bpw = (gdbarch_tdep (gdbarch))->bytes_per_word;
+
+  /* Deal with struct/union as addresses.  If an array won't fit in a
+     single register it is returned as address.  Anything larger than 2
+     registers needs to also be passed as address (matches gcc
+     default_return_in_memory).  */
+  if ((TYPE_CODE_STRUCT == rv_type) || (TYPE_CODE_UNION == rv_type)
+      || ((TYPE_CODE_ARRAY == rv_type) && (rv_size > bpw))
+      || (rv_size > 2 * bpw))
+    {
+      if (readbuf != NULL)
+	{
+	  ULONGEST tmp;
+
+	  regcache_cooked_read_unsigned (regcache, OR1K_RV_REGNUM, &tmp);
+	  read_memory (tmp, readbuf, rv_size);
+	}
+      if (writebuf != NULL)
+	{
+	  ULONGEST tmp;
+
+	  regcache_cooked_read_unsigned (regcache, OR1K_RV_REGNUM, &tmp);
+	  write_memory (tmp, writebuf, rv_size);
+	}
+
+      return RETURN_VALUE_ABI_RETURNS_ADDRESS;
+    }
+
+  if (rv_size <= bpw)
+    {
+      /* Up to one word scalars are returned in R11.  */
+      if (readbuf != NULL)
+	{
+	  ULONGEST tmp;
+
+	  regcache_cooked_read_unsigned (regcache, OR1K_RV_REGNUM, &tmp);
+	  store_unsigned_integer (readbuf, rv_size, byte_order, tmp);
+
+	}
+      if (writebuf != NULL)
+	{
+	  gdb_byte *buf = XCNEWVEC(gdb_byte, bpw);
+
+	  if (BFD_ENDIAN_BIG == byte_order)
+	    memcpy (buf + (sizeof (gdb_byte) * bpw) - rv_size, writebuf,
+		    rv_size);
+	  else
+	    memcpy (buf, writebuf, rv_size);
+
+	  regcache_cooked_write (regcache, OR1K_RV_REGNUM, buf);
+
+	  free (buf);
+	}
+    }
+  else
+    {
+      /* 2 word scalars are returned in r11/r12 (with the MS word in r11).  */
+      if (readbuf != NULL)
+	{
+	  ULONGEST tmp_lo;
+	  ULONGEST tmp_hi;
+	  ULONGEST tmp;
+
+	  regcache_cooked_read_unsigned (regcache, OR1K_RV_REGNUM,
+					 &tmp_hi);
+	  regcache_cooked_read_unsigned (regcache, OR1K_RV_REGNUM + 1,
+					 &tmp_lo);
+	  tmp = (tmp_hi << (bpw * 8)) | tmp_lo;
+
+	  store_unsigned_integer (readbuf, rv_size, byte_order, tmp);
+	}
+      if (writebuf != NULL)
+	{
+	  gdb_byte *buf_lo = XCNEWVEC(gdb_byte, bpw);
+	  gdb_byte *buf_hi = XCNEWVEC(gdb_byte, bpw);
+
+	  /* This is cheating.  We assume that we fit in 2 words exactly,
+	     which wouldn't work if we had (say) a 6-byte scalar type on a
+	     big endian architecture (with the OpenRISC 1000 usually is).  */
+	  memcpy (buf_hi, writebuf, rv_size - bpw);
+	  memcpy (buf_lo, writebuf + bpw, bpw);
+
+	  regcache_cooked_write (regcache, OR1K_RV_REGNUM, buf_hi);
+	  regcache_cooked_write (regcache, OR1K_RV_REGNUM + 1, buf_lo);
+
+	  free (buf_lo);
+	  free (buf_hi);
+	}
+    }
+
+  return RETURN_VALUE_REGISTER_CONVENTION;
+}
+
+/* OR1K always uses a l.trap instruction for breakpoints.  */
+
+constexpr gdb_byte or1k_break_insn[] = {0x21, 0x00, 0x00, 0x01};
+
+typedef BP_MANIPULATION (or1k_break_insn) or1k_breakpoint;
+
+/* Implement the single_step_through_delay gdbarch method.  */
+
+static int
+or1k_single_step_through_delay (struct gdbarch *gdbarch,
+				struct frame_info *this_frame)
+{
+  ULONGEST val;
+  CORE_ADDR ppc;
+  CORE_ADDR npc;
+  CGEN_FIELDS tmp_fields;
+  const CGEN_INSN *insn;
+  struct regcache *regcache = get_current_regcache ();
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+  /* Get the previous and current instruction addresses.  If they are not
+    adjacent, we cannot be in a delay slot.  */
+  regcache_cooked_read_unsigned (regcache, OR1K_PPC_REGNUM, &val);
+  ppc = (CORE_ADDR) val;
+  regcache_cooked_read_unsigned (regcache, OR1K_NPC_REGNUM, &val);
+  npc = (CORE_ADDR) val;
+
+  if (0x4 != (npc - ppc))
+    return 0;
+
+  insn = cgen_lookup_insn (tdep->gdb_cgen_cpu_desc,
+			   NULL,
+			   or1k_fetch_instruction (gdbarch, ppc),
+			   NULL, 32, &tmp_fields, 0);
+
+  /* NULL here would mean the last instruction was not understood by cgen.
+     This should not usually happen, but if does its not a delay slot.  */
+  if (insn == NULL)
+    return 0;
+
+  /* TODO: we should add a delay slot flag to the CGEN_INSN and remove
+     this hard coded test.  */
+  return ((CGEN_INSN_NUM (insn) == OR1K_INSN_L_J)
+	  || (CGEN_INSN_NUM (insn) == OR1K_INSN_L_JAL)
+	  || (CGEN_INSN_NUM (insn) == OR1K_INSN_L_JR)
+	  || (CGEN_INSN_NUM (insn) == OR1K_INSN_L_JALR)
+	  || (CGEN_INSN_NUM (insn) == OR1K_INSN_L_BNF)
+	  || (CGEN_INSN_NUM (insn) == OR1K_INSN_L_BF));
+}
+
+/* Name for or1k general registers.  */
+
+static const char *const or1k_reg_names[OR1K_NUM_REGS] = {
+  /* general purpose registers */
+  "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
+  "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
+  "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
+  "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31",
+
+  /* previous program counter, next program counter and status register */
+  "ppc", "npc", "sr"
+};
+
+static int
+or1k_is_arg_reg (unsigned int regnum)
+{
+  return (OR1K_FIRST_ARG_REGNUM <= regnum)
+    && (regnum <= OR1K_LAST_ARG_REGNUM);
+}
+
+static int
+or1k_is_callee_saved_reg (unsigned int regnum)
+{
+  return (OR1K_FIRST_SAVED_REGNUM <= regnum) && (0 == regnum % 2);
+}
+
+/* Implement the skip_prologue gdbarch method.  */
+
+static CORE_ADDR
+or1k_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
+{
+  CORE_ADDR start_pc;
+  CORE_ADDR addr;
+  uint32_t inst;
+
+  unsigned int ra, rb, rd; /* for instruction analysis */
+  int simm;
+
+  int frame_size = 0;
+
+  /* Try using SAL first if we have symbolic information available.  This
+     only works for DWARF 2, not STABS.  */
+
+  if (find_pc_partial_function (pc, NULL, &start_pc, NULL))
+    {
+      CORE_ADDR prologue_end = skip_prologue_using_sal (gdbarch, pc);
+
+      if (0 != prologue_end)
+	{
+	  struct symtab_and_line prologue_sal = find_pc_line (start_pc, 0);
+	  struct compunit_symtab *compunit
+	    = SYMTAB_COMPUNIT (prologue_sal.symtab);
+	  const char *debug_format = COMPUNIT_DEBUGFORMAT (compunit);
+
+	  if ((NULL != debug_format)
+	      && (strlen ("dwarf") <= strlen (debug_format))
+	      && (0 == strncasecmp ("dwarf", debug_format, strlen ("dwarf"))))
+	    return (prologue_end > pc) ? prologue_end : pc;
+	}
+    }
+
+  /* Look to see if we can find any of the standard prologue sequence.  All
+     quite difficult, since any or all of it may be missing.  So this is
+     just a best guess!  */
+
+  addr = pc; /* Where we have got to */
+  inst = or1k_fetch_instruction (gdbarch, addr);
+
+  /* Look for the new stack pointer being set up.  */
+  if (or1k_analyse_l_addi (inst, &rd, &ra, &simm)
+      && (OR1K_SP_REGNUM == rd) && (OR1K_SP_REGNUM == ra)
+      && (simm < 0) && (0 == (simm % 4)))
+    {
+      frame_size = -simm;
+      addr += OR1K_INSTLEN;
+      inst = or1k_fetch_instruction (gdbarch, addr);
+    }
+
+  /* Look for the frame pointer being manipulated.  */
+  if (or1k_analyse_l_sw (inst, &simm, &ra, &rb)
+      && (OR1K_SP_REGNUM == ra) && (OR1K_FP_REGNUM == rb)
+      && (simm >= 0) && (0 == (simm % 4)))
+    {
+      addr += OR1K_INSTLEN;
+      inst = or1k_fetch_instruction (gdbarch, addr);
+
+      gdb_assert (or1k_analyse_l_addi (inst, &rd, &ra, &simm)
+		  && (OR1K_FP_REGNUM == rd) && (OR1K_SP_REGNUM == ra)
+		  && (simm == frame_size));
+
+      addr += OR1K_INSTLEN;
+      inst = or1k_fetch_instruction (gdbarch, addr);
+    }
+
+  /* Look for the link register being saved.  */
+  if (or1k_analyse_l_sw (inst, &simm, &ra, &rb)
+      && (OR1K_SP_REGNUM == ra) && (OR1K_LR_REGNUM == rb)
+      && (simm >= 0) && (0 == (simm % 4)))
+    {
+      addr += OR1K_INSTLEN;
+      inst = or1k_fetch_instruction (gdbarch, addr);
+    }
+
+  /* Look for arguments or callee-saved register being saved.  The register
+     must be one of the arguments (r3-r8) or the 10 callee saved registers
+     (r10, r12, r14, r16, r18, r20, r22, r24, r26, r28, r30).  The base
+     register must be the FP (for the args) or the SP (for the callee_saved
+     registers).  */
+  while (1)
+    {
+      if (or1k_analyse_l_sw (inst, &simm, &ra, &rb)
+	  && (((OR1K_FP_REGNUM == ra) && or1k_is_arg_reg (rb))
+	      || ((OR1K_SP_REGNUM == ra) && or1k_is_callee_saved_reg (rb)))
+	  && (0 == (simm % 4)))
+	{
+	  addr += OR1K_INSTLEN;
+	  inst = or1k_fetch_instruction (gdbarch, addr);
+	}
+      else
+	{
+	  /* Nothing else to look for.  We have found the end of the
+	     prologue.  */
+	  break;
+	}
+    }
+  return addr;
+}
+
+/* Implement the frame_align gdbarch method.  */
+
+static CORE_ADDR
+or1k_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
+{
+  return align_down (sp, OR1K_STACK_ALIGN);
+}
+
+/* Implement the unwind_pc gdbarch method.  */
+
+static CORE_ADDR
+or1k_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
+{
+  CORE_ADDR pc;
+
+  if (or1k_debug)
+    fprintf_unfiltered (gdb_stdlog, "or1k_unwind_pc, next_frame=%d\n",
+			frame_relative_level (next_frame));
+
+  pc = frame_unwind_register_unsigned (next_frame, OR1K_NPC_REGNUM);
+
+  if (or1k_debug)
+    fprintf_unfiltered (gdb_stdlog, "or1k_unwind_pc, pc=%s\n",
+			paddress (gdbarch, pc));
+
+  return pc;
+}
+
+/* Implement the unwind_sp gdbarch method.  */
+
+static CORE_ADDR
+or1k_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
+{
+  CORE_ADDR sp;
+
+  if (or1k_debug)
+    fprintf_unfiltered (gdb_stdlog, "or1k_unwind_sp, next_frame=%d\n",
+			frame_relative_level (next_frame));
+
+  sp = frame_unwind_register_unsigned (next_frame, OR1K_SP_REGNUM);
+
+  if (or1k_debug)
+    fprintf_unfiltered (gdb_stdlog, "or1k_unwind_sp, sp=%s\n",
+			paddress (gdbarch, sp));
+
+  return sp;
+}
+
+/* Implement the push_dummy_code gdbarch method.  */
+
+static CORE_ADDR
+or1k_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp,
+		      CORE_ADDR function, struct value **args, int nargs,
+		      struct type *value_type, CORE_ADDR * real_pc,
+		      CORE_ADDR * bp_addr, struct regcache *regcache)
+{
+  CORE_ADDR bp_slot;
+
+  /* Reserve enough room on the stack for our breakpoint instruction.  */
+  bp_slot = sp - 4;
+  /* Store the address of that breakpoint.  */
+  *bp_addr = bp_slot;
+  /* keeping the stack aligned.  */
+  sp = or1k_frame_align (gdbarch, bp_slot);
+  /* The call starts at the callee's entry point.  */
+  *real_pc = function;
+
+  return sp;
+}
+
+/* Implement the push_dummy_call gdbarch method.  */
+
+static CORE_ADDR
+or1k_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
+		      struct regcache *regcache, CORE_ADDR bp_addr,
+		      int nargs, struct value **args, CORE_ADDR sp,
+		      int struct_return, CORE_ADDR struct_addr)
+{
+
+  int argreg;
+  int argnum;
+  int first_stack_arg;
+  int stack_offset = 0;
+  int heap_offset = 0;
+  CORE_ADDR heap_sp = sp - 128;
+  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+  int bpa = (gdbarch_tdep (gdbarch))->bytes_per_address;
+  int bpw = (gdbarch_tdep (gdbarch))->bytes_per_word;
+  struct type *func_type = value_type (function);
+
+  /* Return address */
+  regcache_cooked_write_unsigned (regcache, OR1K_LR_REGNUM, bp_addr);
+
+  /* Register for the next argument.  */
+  argreg = OR1K_FIRST_ARG_REGNUM;
+
+  /* Location for a returned structure.  This is passed as a silent first
+     argument.  */
+  if (struct_return)
+    {
+      regcache_cooked_write_unsigned (regcache, OR1K_FIRST_ARG_REGNUM,
+				      struct_addr);
+      argreg++;
+    }
+
+  /* Put as many args as possible in registers.  */
+  for (argnum = 0; argnum < nargs; argnum++)
+    {
+      const gdb_byte *val;
+      gdb_byte valbuf[sizeof (ULONGEST)];
+
+      struct value *arg = args[argnum];
+      struct type *arg_type = check_typedef (value_type (arg));
+      int len = TYPE_LENGTH (arg_type);
+      enum type_code typecode = TYPE_CODE (arg_type);
+
+      if (TYPE_VARARGS (func_type) && argnum >= TYPE_NFIELDS (func_type))
+	break; /* end or regular args, varargs go to stack.  */
+
+      /* Extract the value, either a reference or the data.  */
+      if ((TYPE_CODE_STRUCT == typecode) || (TYPE_CODE_UNION == typecode)
+	  || (len > bpw * 2))
+	{
+	  CORE_ADDR valaddr = value_address (arg);
+
+	  /* If the arg is fabricated (i.e. 3*i, instead of i) valaddr is
+	     undefined.  */
+	  if (valaddr == 0)
+	    {
+	      /* The argument needs to be copied into the target space.
+		 Since the bottom of the stack is reserved for function
+		 arguments we store this at the these at the top growing
+		 down.  */
+	      heap_offset += align_up (len, bpw);
+	      valaddr = heap_sp + heap_offset;
+
+	      write_memory (valaddr, value_contents (arg), len);
+	    }
+
+	  /* The ABI passes all structures by reference, so get its
+	     address.  */
+	  store_unsigned_integer (valbuf, bpa, byte_order, valaddr);
+	  len = bpa;
+	  val = valbuf;
+	}
+      else
+	{
+	  /* Everything else, we just get the value.  */
+	  val = value_contents (arg);
+	}
+
+      /* Stick the value in a register.  */
+      if (len > bpw)
+	{
+	  /* Big scalars use two registers, but need NOT be pair aligned.  */
+
+	  if (argreg <= (OR1K_LAST_ARG_REGNUM - 1))
+	    {
+	      ULONGEST regval =	extract_unsigned_integer (val, len,
+							  byte_order);
+
+	      unsigned int bits_per_word = bpw * 8;
+	      ULONGEST mask = (((ULONGEST) 1) << bits_per_word) - 1;
+	      ULONGEST lo = regval & mask;
+	      ULONGEST hi = regval >> bits_per_word;
+
+	      regcache_cooked_write_unsigned (regcache, argreg, hi);
+	      regcache_cooked_write_unsigned (regcache, argreg + 1, lo);
+	      argreg += 2;
+	    }
+	  else
+	    {
+	      /* Run out of regs */
+	      break;
+	    }
+	}
+      else if (argreg <= OR1K_LAST_ARG_REGNUM)
+	{
+	  /* Smaller scalars fit in a single register.  */
+	  regcache_cooked_write_unsigned
+	    (regcache, argreg, extract_unsigned_integer (val, len,
+							 byte_order));
+	  argreg++;
+	}
+      else
+	{
+	  /* Ran out of regs.  */
+	  break;
+	}
+    }
+
+  first_stack_arg = argnum;
+
+  /* If we get here with argnum < nargs, then arguments remain to be
+     placed on the stack.  This is tricky, since they must be pushed in
+     reverse order and the stack in the end must be aligned.  The only
+     solution is to do it in two stages, the first to compute the stack
+     size, the second to save the args.  */
+
+  for (argnum = first_stack_arg; argnum < nargs; argnum++)
+    {
+      struct value *arg = args[argnum];
+      struct type *arg_type = check_typedef (value_type (arg));
+      int len = TYPE_LENGTH (arg_type);
+      enum type_code typecode = TYPE_CODE (arg_type);
+
+      if ((TYPE_CODE_STRUCT == typecode) || (TYPE_CODE_UNION == typecode)
+	  || (len > bpw * 2))
+	{
+	  /* Structures are passed as addresses.  */
+	  sp -= bpa;
+	}
+      else
+	{
+	  /* Big scalars use more than one word.  Code here allows for
+	     future quad-word entities (e.g. long double.)  */
+	  sp -= align_up (len, bpw);
+	}
+
+      /* Ensure our dummy heap doesn't touch the stack, this could only
+	 happen if we have many arguments including fabricated arguments.  */
+      gdb_assert (heap_offset == 0 || ((heap_sp + heap_offset) < sp));
+    }
+
+  sp = gdbarch_frame_align (gdbarch, sp);
+  stack_offset = 0;
+
+  /* Push the remaining args on the stack.  */
+  for (argnum = first_stack_arg; argnum < nargs; argnum++)
+    {
+      const gdb_byte *val;
+      gdb_byte valbuf[sizeof (ULONGEST)];
+
+      struct value *arg = args[argnum];
+      struct type *arg_type = check_typedef (value_type (arg));
+      int len = TYPE_LENGTH (arg_type);
+      enum type_code typecode = TYPE_CODE (arg_type);
+      /* The EABI passes structures that do not fit in a register by
+         reference.  In all other cases, pass the structure by value.  */
+      if ((TYPE_CODE_STRUCT == typecode) || (TYPE_CODE_UNION == typecode)
+	  || (len > bpw * 2))
+	{
+	  store_unsigned_integer (valbuf, bpa, byte_order,
+				  value_address (arg));
+	  len = bpa;
+	  val = valbuf;
+	}
+      else
+	val = value_contents (arg);
+
+      while (len > 0)
+	{
+	  int partial_len = (len < bpw ? len : bpw);
+
+	  write_memory (sp + stack_offset, val, partial_len);
+	  stack_offset += align_up (partial_len, bpw);
+	  len -= partial_len;
+	  val += partial_len;
+	}
+    }
+
+  /* Save the updated stack pointer.  */
+  regcache_cooked_write_unsigned (regcache, OR1K_SP_REGNUM, sp);
+
+  if (heap_offset > 0)
+    sp = heap_sp;
+
+  return sp;
+}
+
+/* Implement the dummy_id gdbarch method.  */
+
+static struct frame_id
+or1k_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
+{
+  return frame_id_build (get_frame_sp (this_frame),
+			 get_frame_pc (this_frame));
+}
+
+
+/* Support functions for frame handling.  */
+
+/* Initialize a prologue cache
+
+   We build a cache, saying where registers of the prev frame can be found
+   from the data so far set up in this this.
+
+   We also compute a unique ID for this frame, based on the function start
+   address and the stack pointer (as it will be, even if it has yet to be
+   computed.
+
+   STACK FORMAT
+   ============
+
+   The OR1K has a falling stack frame and a simple prolog.  The Stack
+   pointer is R1 and the frame pointer R2.  The frame base is therefore the
+   address held in R2 and the stack pointer (R1) is the frame base of the
+   next frame.
+
+   l.addi  r1,r1,-frame_size	# SP now points to end of new stack frame
+
+   The stack pointer may not be set up in a frameless function (e.g. a
+   simple leaf function).
+
+   l.sw    fp_loc(r1),r2        # old FP saved in new stack frame
+   l.addi  r2,r1,frame_size     # FP now points to base of new stack frame
+
+   The frame pointer is not necessarily saved right at the end of the stack
+   frame - OR1K saves enough space for any args to called functions right
+   at the end (this is a difference from the Architecture Manual).
+
+   l.sw    lr_loc(r1),r9        # Link (return) address
+
+   The link register is usally saved at fp_loc - 4.  It may not be saved at
+   all in a leaf function.
+
+   l.sw    reg_loc(r1),ry       # Save any callee saved regs
+
+   The offsets x for the callee saved registers generally (always?) rise in
+   increments of 4, starting at fp_loc + 4.  If the frame pointer is
+   omitted (an option to GCC), then it may not be saved at all.  There may
+   be no callee saved registers.
+
+   So in summary none of this may be present.  However what is present
+   seems always to follow this fixed order, and occur before any
+   substantive code (it is possible for GCC to have more flexible
+   scheduling of the prologue, but this does not seem to occur for OR1K).
+
+   ANALYSIS
+   ========
+
+   This prolog is used, even for -O3 with GCC.
+
+   All this analysis must allow for the possibility that the PC is in the
+   middle of the prologue.  Data in the cache should only be set up insofar
+   as it has been computed.
+
+   HOWEVER.  The frame_id must be created with the SP *as it will be* at
+   the end of the Prologue.  Otherwise a recursive call, checking the frame
+   with the PC at the start address will end up with the same frame_id as
+   the caller.
+
+   A suite of "helper" routines are used, allowing reuse for
+   or1k_skip_prologue().
+
+   Reportedly, this is only valid for frames less than 0x7fff in size.  */
+
+static struct trad_frame_cache *
+or1k_frame_cache (struct frame_info *this_frame, void **prologue_cache)
+{
+  struct gdbarch *gdbarch;
+  struct trad_frame_cache *info;
+
+  CORE_ADDR this_pc;
+  CORE_ADDR this_sp;
+  CORE_ADDR this_sp_for_id;
+  int frame_size = 0;
+
+  CORE_ADDR start_addr;
+  CORE_ADDR end_addr;
+
+  if (or1k_debug)
+    fprintf_unfiltered (gdb_stdlog,
+			"or1k_frame_cache, prologue_cache = %s\n",
+			host_address_to_string (*prologue_cache));
+
+  /* Nothing to do if we already have this info.  */
+  if (NULL != *prologue_cache)
+    return (struct trad_frame_cache *) *prologue_cache;
+
+  /* Get a new prologue cache and populate it with default values.  */
+  info = trad_frame_cache_zalloc (this_frame);
+  *prologue_cache = info;
+
+  /* Find the start address of this function (which is a normal frame, even
+     if the next frame is the sentinel frame) and the end of its prologue.  */
+  this_pc = get_frame_pc (this_frame);
+  find_pc_partial_function (this_pc, NULL, &start_addr, NULL);
+
+  /* Get the stack pointer if we have one (if there's no process executing
+     yet we won't have a frame.  */
+  this_sp = (NULL == this_frame) ? 0 :
+    get_frame_register_unsigned (this_frame, OR1K_SP_REGNUM);
+
+  /* Return early if GDB couldn't find the function.  */
+  if (start_addr == 0)
+    {
+      if (or1k_debug)
+	fprintf_unfiltered (gdb_stdlog, "  couldn't find function\n");
+
+      /* JPB: 28-Apr-11.  This is a temporary patch, to get round GDB
+	 crashing right at the beginning.  Build the frame ID as best we
+	 can.  */
+      trad_frame_set_id (info, frame_id_build (this_sp, this_pc));
+
+      return info;
+    }
+
+  /* The default frame base of this frame (for ID purposes only - frame
+     base is an overloaded term) is its stack pointer.  For now we use the
+     value of the SP register in this frame.  However if the PC is in the
+     prologue of this frame, before the SP has been set up, then the value
+     will actually be that of the prev frame, and we'll need to adjust it
+     later.  */
+  trad_frame_set_this_base (info, this_sp);
+  this_sp_for_id = this_sp;
+
+  /* The default is to find the PC of the previous frame in the link
+     register of this frame.  This may be changed if we find the link
+     register was saved on the stack.  */
+  trad_frame_set_reg_realreg (info, OR1K_NPC_REGNUM, OR1K_LR_REGNUM);
+
+  /* We should only examine code that is in the prologue.  This is all code
+     up to (but not including) end_addr.  We should only populate the cache
+     while the address is up to (but not including) the PC or end_addr,
+     whichever is first.  */
+  gdbarch = get_frame_arch (this_frame);
+  end_addr = or1k_skip_prologue (gdbarch, start_addr);
+
+  /* All the following analysis only occurs if we are in the prologue and
+     have executed the code.  Check we have a sane prologue size, and if
+     zero we are frameless and can give up here.  */
+  if (end_addr < start_addr)
+    error (_("end addr %s is less than start addr %s"),
+	   paddress (gdbarch, end_addr), paddress (gdbarch, start_addr));
+
+  if (end_addr == start_addr)
+    frame_size = 0;
+  else
+    {
+      /* We have a frame.  Look for the various components.  */
+      CORE_ADDR addr = start_addr; /* Where we have got to */
+      uint32_t inst = or1k_fetch_instruction (gdbarch, addr);
+
+      unsigned int ra, rb, rd; /* for instruction analysis */
+      int simm;
+
+      /* Look for the new stack pointer being set up.  */
+      if (or1k_analyse_l_addi (inst, &rd, &ra, &simm)
+	  && (OR1K_SP_REGNUM == rd) && (OR1K_SP_REGNUM == ra)
+	  && (simm < 0) && (0 == (simm % 4)))
+	{
+	  frame_size = -simm;
+	  addr += OR1K_INSTLEN;
+	  inst = or1k_fetch_instruction (gdbarch, addr);
+
+	  /* If the PC has not actually got to this point, then the frame
+	     base will be wrong, and we adjust it.
+
+	     If we are past this point, then we need to populate the stack
+	     accordingly.  */
+	  if (this_pc <= addr)
+	    {
+	      /* Only do if executing.  */
+	      if (0 != this_sp)
+		{
+		  this_sp_for_id = this_sp + frame_size;
+		  trad_frame_set_this_base (info, this_sp_for_id);
+		}
+	    }
+	  else
+	    {
+	      /* We are past this point, so the stack pointer of the prev
+	         frame is frame_size greater than the stack pointer of this
+	         frame.  */
+	      trad_frame_set_reg_value (info, OR1K_SP_REGNUM,
+					this_sp + frame_size);
+	    }
+	}
+
+      /* From now on we are only populating the cache, so we stop once we
+	 get to either the end OR the current PC.  */
+      end_addr = (this_pc < end_addr) ? this_pc : end_addr;
+
+      /* Look for the frame pointer being manipulated.  */
+      if ((addr < end_addr)
+	  && or1k_analyse_l_sw (inst, &simm, &ra, &rb)
+	  && (OR1K_SP_REGNUM == ra) && (OR1K_FP_REGNUM == rb)
+	  && (simm >= 0) && (0 == (simm % 4)))
+	{
+	  addr += OR1K_INSTLEN;
+	  inst = or1k_fetch_instruction (gdbarch, addr);
+
+	  /* At this stage, we can find the frame pointer of the previous
+	     frame on the stack of the current frame.  */
+	  trad_frame_set_reg_addr (info, OR1K_FP_REGNUM, this_sp + simm);
+
+	  /* Look for the new frame pointer being set up.  */
+	  if ((addr < end_addr)
+	      && or1k_analyse_l_addi (inst, &rd, &ra, &simm)
+	      && (OR1K_FP_REGNUM == rd) && (OR1K_SP_REGNUM == ra)
+	      && (simm == frame_size))
+	    {
+	      addr += OR1K_INSTLEN;
+	      inst = or1k_fetch_instruction (gdbarch, addr);
+
+	      /* If we have got this far, the stack pointer of the previous
+	         frame is the frame pointer of this frame.  */
+	      trad_frame_set_reg_realreg (info, OR1K_SP_REGNUM,
+					  OR1K_FP_REGNUM);
+	    }
+	}
+
+      /* Look for the link register being saved.  */
+      if ((addr < end_addr)
+	  && or1k_analyse_l_sw (inst, &simm, &ra, &rb)
+	  && (OR1K_SP_REGNUM == ra) && (OR1K_LR_REGNUM == rb)
+	  && (simm >= 0) && (0 == (simm % 4)))
+	{
+	  addr += OR1K_INSTLEN;
+	  inst = or1k_fetch_instruction (gdbarch, addr);
+
+	  /* If the link register is saved in the this frame, it holds the
+	     value of the PC in the previous frame.  This overwrites the
+	     previous information about finding the PC in the link
+	     register.  */
+	  trad_frame_set_reg_addr (info, OR1K_NPC_REGNUM, this_sp + simm);
+	}
+
+      /* Look for arguments or callee-saved register being saved.  The
+	 register must be one of the arguments (r3-r8) or the 10 callee
+	 saved registers (r10, r12, r14, r16, r18, r20, r22, r24, r26, r28,
+	 r30).  The base register must be the FP (for the args) or the SP
+	 (for the callee_saved registers).  */
+      while (addr < end_addr)
+	{
+	  if (or1k_analyse_l_sw (inst, &simm, &ra, &rb)
+	      && (((OR1K_FP_REGNUM == ra) && or1k_is_arg_reg (rb))
+		  || ((OR1K_SP_REGNUM == ra)
+		      && or1k_is_callee_saved_reg (rb)))
+	      && (0 == (simm % 4)))
+	    {
+	      addr += OR1K_INSTLEN;
+	      inst = or1k_fetch_instruction (gdbarch, addr);
+
+	      /* The register in the previous frame can be found at this
+	         location in this frame.  */
+	      trad_frame_set_reg_addr (info, rb, this_sp + simm);
+	    }
+	  else
+	    break; /* Not a register save instruction.  */
+	}
+    }
+
+  /* Build the frame ID */
+  trad_frame_set_id (info, frame_id_build (this_sp_for_id, start_addr));
+
+  if (or1k_debug)
+    {
+      fprintf_unfiltered (gdb_stdlog, "  this_sp_for_id = %s\n",
+			  paddress (gdbarch, this_sp_for_id));
+      fprintf_unfiltered (gdb_stdlog, "  start_addr     = %s\n",
+			  paddress (gdbarch, start_addr));
+    }
+
+  return info;
+}
+
+/* Implement the this_id function for the stub unwinder.  */
+
+static void
+or1k_frame_this_id (struct frame_info *this_frame,
+		    void **prologue_cache, struct frame_id *this_id)
+{
+  struct trad_frame_cache *info = or1k_frame_cache (this_frame,
+						    prologue_cache);
+
+  trad_frame_get_id (info, this_id);
+}
+
+/* Implement the prev_register function for the stub unwinder.  */
+
+static struct value *
+or1k_frame_prev_register (struct frame_info *this_frame,
+			  void **prologue_cache, int regnum)
+{
+  struct trad_frame_cache *info = or1k_frame_cache (this_frame,
+						    prologue_cache);
+
+  return trad_frame_get_register (info, this_frame, regnum);
+}
+
+/* Data structures for the normal prologue-analysis-based unwinder.  */
+
+static const struct frame_unwind or1k_frame_unwind = {
+  NORMAL_FRAME,
+  default_frame_unwind_stop_reason,
+  or1k_frame_this_id,
+  or1k_frame_prev_register,
+  NULL,
+  default_frame_sniffer,
+  NULL,
+};
+
+/* Architecture initialization for OpenRISC 1000.  */
+
+static struct gdbarch *
+or1k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
+{
+  struct gdbarch *gdbarch;
+  struct gdbarch_tdep *tdep;
+  const struct bfd_arch_info *binfo;
+  struct tdesc_arch_data *tdesc_data = NULL;
+  const struct target_desc *tdesc = info.target_desc;
+
+  /* Find a candidate among the list of pre-declared architectures.  */
+  arches = gdbarch_list_lookup_by_info (arches, &info);
+  if (NULL != arches)
+    return arches->gdbarch;
+
+  /* None found, create a new architecture from the information
+     provided.  Can't initialize all the target dependencies until we
+     actually know which target we are talking to, but put in some defaults
+     for now.  */
+  binfo = info.bfd_arch_info;
+  tdep = XCNEW (struct gdbarch_tdep);
+  tdep->bytes_per_word = binfo->bits_per_word / binfo->bits_per_byte;
+  tdep->bytes_per_address = binfo->bits_per_address / binfo->bits_per_byte;
+  gdbarch = gdbarch_alloc (&info, tdep);
+
+  /* Target data types */
+  set_gdbarch_short_bit (gdbarch, 16);
+  set_gdbarch_int_bit (gdbarch, 32);
+  set_gdbarch_long_bit (gdbarch, 32);
+  set_gdbarch_long_long_bit (gdbarch, 64);
+  set_gdbarch_float_bit (gdbarch, 32);
+  set_gdbarch_float_format (gdbarch, floatformats_ieee_single);
+  set_gdbarch_double_bit (gdbarch, 64);
+  set_gdbarch_double_format (gdbarch, floatformats_ieee_double);
+  set_gdbarch_long_double_bit (gdbarch, 64);
+  set_gdbarch_long_double_format (gdbarch, floatformats_ieee_double);
+  set_gdbarch_ptr_bit (gdbarch, binfo->bits_per_address);
+  set_gdbarch_addr_bit (gdbarch, binfo->bits_per_address);
+  set_gdbarch_char_signed (gdbarch, 1);
+
+  /* Information about the target architecture */
+  set_gdbarch_return_value (gdbarch, or1k_return_value);
+  set_gdbarch_breakpoint_kind_from_pc (gdbarch,
+				       or1k_breakpoint::kind_from_pc);
+  set_gdbarch_sw_breakpoint_from_kind (gdbarch,
+				       or1k_breakpoint::bp_from_kind);
+  set_gdbarch_have_nonsteppable_watchpoint (gdbarch, 1);
+
+  /* Register architecture */
+  set_gdbarch_num_regs (gdbarch, OR1K_NUM_REGS);
+  set_gdbarch_num_pseudo_regs (gdbarch, OR1K_NUM_PSEUDO_REGS);
+  set_gdbarch_sp_regnum (gdbarch, OR1K_SP_REGNUM);
+  set_gdbarch_pc_regnum (gdbarch, OR1K_NPC_REGNUM);
+  set_gdbarch_ps_regnum (gdbarch, OR1K_SR_REGNUM);
+  set_gdbarch_deprecated_fp_regnum (gdbarch, OR1K_FP_REGNUM);
+
+  /* Functions to analyse frames */
+  set_gdbarch_skip_prologue (gdbarch, or1k_skip_prologue);
+  set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
+  set_gdbarch_frame_align (gdbarch, or1k_frame_align);
+  set_gdbarch_frame_red_zone_size (gdbarch, OR1K_FRAME_RED_ZONE_SIZE);
+
+  /* Functions to access frame data */
+  set_gdbarch_unwind_pc (gdbarch, or1k_unwind_pc);
+  set_gdbarch_unwind_sp (gdbarch, or1k_unwind_sp);
+
+  /* Functions handling dummy frames */
+  set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
+  set_gdbarch_push_dummy_code (gdbarch, or1k_push_dummy_code);
+  set_gdbarch_push_dummy_call (gdbarch, or1k_push_dummy_call);
+  set_gdbarch_dummy_id (gdbarch, or1k_dummy_id);
+
+  /* Frame unwinders.  Use DWARF debug info if available, otherwise use our
+     own unwinder.  */
+  dwarf2_append_unwinders (gdbarch);
+  frame_unwind_append_unwinder (gdbarch, &or1k_frame_unwind);
+
+  /* Get a CGEN CPU descriptor for this architecture.  */
+  {
+
+    const char *mach_name = binfo->printable_name;
+    enum cgen_endian endian = (info.byte_order == BFD_ENDIAN_BIG
+			       ? CGEN_ENDIAN_BIG : CGEN_ENDIAN_LITTLE);
+
+    tdep->gdb_cgen_cpu_desc =
+      or1k_cgen_cpu_open (CGEN_CPU_OPEN_BFDMACH, mach_name,
+			  CGEN_CPU_OPEN_ENDIAN, endian, CGEN_CPU_OPEN_END);
+
+    or1k_cgen_init_asm (tdep->gdb_cgen_cpu_desc);
+  }
+
+  /* If this mach has a delay slot.  */
+  if (binfo->mach == bfd_mach_or1k)
+    set_gdbarch_single_step_through_delay (gdbarch,
+					   or1k_single_step_through_delay);
+
+  if (!tdesc_has_registers (info.target_desc))
+    /* Pick a default target description.  */
+    tdesc = tdesc_or1k;
+
+  /* Check any target description for validity.  */
+  if (tdesc_has_registers (tdesc))
+    {
+      const struct tdesc_feature *feature;
+      int valid_p;
+      int i;
+
+      feature = tdesc_find_feature (tdesc, "org.gnu.gdb.or1k.group0");
+      if (feature == NULL)
+        return NULL;
+
+      tdesc_data = tdesc_data_alloc ();
+
+      valid_p = 1;
+
+      for (i = 0; i < OR1K_NUM_REGS; i++)
+        valid_p &= tdesc_numbered_register (feature, tdesc_data, i,
+                                            or1k_reg_names[i]);
+
+      if (!valid_p)
+        {
+          tdesc_data_cleanup (tdesc_data);
+          return NULL;
+        }
+    }
+
+  if (tdesc_data != NULL)
+    {
+      /* If we are using tdesc, register our own reggroups, otherwise we
+	 will used the defaults.  */
+      reggroup_add (gdbarch, general_reggroup);
+      reggroup_add (gdbarch, system_reggroup);
+      reggroup_add (gdbarch, float_reggroup);
+      reggroup_add (gdbarch, vector_reggroup);
+      reggroup_add (gdbarch, all_reggroup);
+      reggroup_add (gdbarch, save_reggroup);
+      reggroup_add (gdbarch, restore_reggroup);
+
+      tdesc_use_registers (gdbarch, tdesc, tdesc_data);
+    }
+
+  return gdbarch;
+}
+
+/* Dump the target specific data for this architecture.  */
+
+static void
+or1k_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+  if (NULL == tdep)
+    return; /* Nothing to report */
+
+  fprintf_unfiltered (file, "or1k_dump_tdep: %d bytes per word\n",
+		      tdep->bytes_per_word);
+  fprintf_unfiltered (file, "or1k_dump_tdep: %d bytes per address\n",
+		      tdep->bytes_per_address);
+}
+
+
+void
+_initialize_or1k_tdep (void)
+{
+  /* Register this architecture.  */
+  gdbarch_register (bfd_arch_or1k, or1k_gdbarch_init, or1k_dump_tdep);
+
+  initialize_tdesc_or1k ();
+
+  /* Debugging flag.  */
+  add_setshow_boolean_cmd ("or1k", class_maintenance, &or1k_debug,
+			   _("Set OpenRISC debugging."),
+			   _("Show OpenRISC debugging."),
+			   _("When on, OpenRISC specific debugging is enabled."),
+			   NULL,
+			   show_or1k_debug,
+			   &setdebuglist, &showdebuglist);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/or1k-tdep.h ./gdb/or1k-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/or1k-tdep.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/or1k-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,56 @@
+/* Definitions to target GDB to OpenRISC 1000 32-bit targets.
+   Copyright (C) 2008-2018 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 OR1K_TDEP__H
+#define OR1K_TDEP__H
+
+#ifndef TARGET_OR1K
+#define TARGET_OR1K
+#endif
+
+#include "opcodes/or1k-desc.h"
+#include "opcodes/or1k-opc.h"
+
+/* General Purpose Registers */
+#define OR1K_ZERO_REGNUM          0
+#define OR1K_SP_REGNUM            1
+#define OR1K_FP_REGNUM            2
+#define OR1K_FIRST_ARG_REGNUM     3
+#define OR1K_LAST_ARG_REGNUM      8
+#define OR1K_LR_REGNUM            9
+#define OR1K_FIRST_SAVED_REGNUM  10
+#define OR1K_RV_REGNUM           11
+#define OR1K_PPC_REGNUM          (OR1K_MAX_GPR_REGS + 0)
+#define OR1K_NPC_REGNUM          (OR1K_MAX_GPR_REGS + 1)
+#define OR1K_SR_REGNUM           (OR1K_MAX_GPR_REGS + 2)
+
+/* Properties of the architecture. GDB mapping of registers is all the GPRs
+   and SPRs followed by the PPC, NPC and SR at the end. Red zone is the area
+   past the end of the stack reserved for exception handlers etc.  */
+
+#define OR1K_MAX_GPR_REGS            32
+#define OR1K_NUM_PSEUDO_REGS         0
+#define OR1K_NUM_REGS               (OR1K_MAX_GPR_REGS + 3)
+#define OR1K_STACK_ALIGN             4
+#define OR1K_INSTLEN                 4
+#define OR1K_INSTBITLEN             (OR1K_INSTLEN * 8)
+#define OR1K_NUM_TAP_RECORDS         8
+#define OR1K_FRAME_RED_ZONE_SIZE     2536
+
+#endif /* OR1K_TDEP__H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/osabi.c ./gdb/osabi.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/osabi.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/osabi.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* OS ABI variant handling for GDB.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -592,7 +592,7 @@ generic_elf_osabi_sniffer (bfd *abfd)
 }
 
 static void
-set_osabi (char *args, int from_tty, struct cmd_list_element *c)
+set_osabi (const char *args, int from_tty, struct cmd_list_element *c)
 {
   struct gdbarch_info info;
 
@@ -653,8 +653,6 @@ show_osabi (struct ui_file *file, int fr
     fprintf_filtered (file, _("The default OS ABI is \"%s\".\n"),
 		      gdbarch_osabi_name (GDB_OSABI_DEFAULT));
 }
-
-extern initialize_file_ftype _initialize_gdb_osabi; /* -Wmissing-prototype */
 
 void
 _initialize_gdb_osabi (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/osabi.h ./gdb/osabi.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/osabi.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/osabi.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* OS ABI variant handling for GDB.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/osdata.c ./gdb/osdata.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/osdata.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/osdata.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Routines for handling XML generic OS data provided by target.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -27,7 +27,7 @@
 
 #if !defined(HAVE_LIBEXPAT)
 
-struct osdata *
+std::unique_ptr<osdata>
 osdata_parse (const char *xml)
 {
   static int have_warned;
@@ -46,10 +46,10 @@ osdata_parse (const char *xml)
 
 /* Internal parsing data passed to all XML callbacks.  */
 struct osdata_parsing_data
-  {
-    struct osdata *osdata;
-    char *property_name;
-  };
+{
+  std::unique_ptr<struct osdata> osdata;
+  std::string property_name;
+};
 
 /* Handle the start of a <osdata> element.  */
 
@@ -59,16 +59,12 @@ osdata_start_osdata (struct gdb_xml_pars
                         void *user_data, VEC(gdb_xml_value_s) *attributes)
 {
   struct osdata_parsing_data *data = (struct osdata_parsing_data *) user_data;
-  char *type;
-  struct osdata *osdata;
 
-  if (data->osdata)
+  if (data->osdata != NULL)
     gdb_xml_error (parser, _("Seen more than on osdata element"));
 
-  type = (char *) xml_find_attribute (attributes, "type")->value;
-  osdata = XCNEW (struct osdata);
-  osdata->type = xstrdup (type);
-  data->osdata = osdata;
+  char *type = (char *) xml_find_attribute (attributes, "type")->value;
+  data->osdata.reset (new struct osdata (std::string (type)));
 }
 
 /* Handle the start of a <item> element.  */
@@ -79,9 +75,7 @@ osdata_start_item (struct gdb_xml_parser
                   void *user_data, VEC(gdb_xml_value_s) *attributes)
 {
   struct osdata_parsing_data *data = (struct osdata_parsing_data *) user_data;
-  struct osdata_item item = { NULL };
-
-  VEC_safe_push (osdata_item_s, data->osdata->items, &item);
+  data->osdata->items.emplace_back ();
 }
 
 /* Handle the start of a <column> element.  */
@@ -95,7 +89,7 @@ osdata_start_column (struct gdb_xml_pars
   const char *name
     = (const char *) xml_find_attribute (attributes, "name")->value;
 
-  data->property_name = xstrdup (name);
+  data->property_name.assign (name);
 }
 
 /* Handle the end of a <column> element.  */
@@ -105,29 +99,12 @@ osdata_end_column (struct gdb_xml_parser
                   const struct gdb_xml_element *element,
                   void *user_data, const char *body_text)
 {
-  struct osdata_parsing_data *data = (struct osdata_parsing_data *) user_data;
-  struct osdata *osdata = data->osdata;
-  struct osdata_item *item = VEC_last (osdata_item_s, osdata->items);
-  struct osdata_column *col = VEC_safe_push (osdata_column_s,
-                                            item->columns, NULL);
-
-  /* Transfer memory ownership.  NAME was already strdup'ed.  */
-  col->name = data->property_name;
-  col->value = xstrdup (body_text);
-  data->property_name = NULL;
-}
-
-/* Discard the constructed osdata (if an error occurs).  */
+  osdata_parsing_data *data = (struct osdata_parsing_data *) user_data;
+  struct osdata *osdata = data->osdata.get ();
+  osdata_item &item = osdata->items.back ();
 
-static void
-clear_parsing_data (void *p)
-{
-  struct osdata_parsing_data *data = (struct osdata_parsing_data *) p;
-
-  osdata_free (data->osdata);
-  data->osdata = NULL;
-  xfree (data->property_name);
-  data->property_name = NULL;
+  item.columns.emplace_back (std::move (data->property_name),
+			     std::string (body_text));
 }
 
 /* The allowed elements and attributes for OS data object.
@@ -163,95 +140,31 @@ const struct gdb_xml_element osdata_elem
   { NULL, NULL, NULL, GDB_XML_EF_NONE, NULL, NULL }
 };
 
-struct osdata *
+std::unique_ptr<osdata>
 osdata_parse (const char *xml)
 {
-  struct cleanup *back_to;
-  struct osdata_parsing_data data = { NULL };
-
-  back_to = make_cleanup (clear_parsing_data, &data);
+  osdata_parsing_data data;
 
   if (gdb_xml_parse_quick (_("osdata"), "osdata.dtd",
 			   osdata_elements, xml, &data) == 0)
     {
       /* Parsed successfully, don't need to delete the result.  */
-      discard_cleanups (back_to);
-      return data.osdata;
+      return std::move (data.osdata);
     }
 
-  do_cleanups (back_to);
   return NULL;
 }
 #endif
 
-static void
-osdata_item_clear (struct osdata_item *item)
-{
-  if (item->columns != NULL)
-    {
-      struct osdata_column *col;
-      int ix;
-
-      for (ix = 0;
-	   VEC_iterate (osdata_column_s, item->columns,
-			ix, col);
-	   ix++)
-       {
-	 xfree (col->name);
-	 xfree (col->value);
-       }
-      VEC_free (osdata_column_s, item->columns);
-      item->columns = NULL;
-    }
-}
-
-void
-osdata_free (struct osdata *osdata)
-{
-  if (osdata == NULL)
-    return;
-
-  if (osdata->items != NULL)
-    {
-      struct osdata_item *item;
-      int ix;
-
-      for (ix = 0;
-          VEC_iterate (osdata_item_s, osdata->items,
-                       ix, item);
-          ix++)
-       osdata_item_clear (item);
-      VEC_free (osdata_item_s, osdata->items);
-    }
-
-  xfree (osdata);
-}
-
-static void
-osdata_free_cleanup (void *arg)
-{
-  struct osdata *osdata = (struct osdata *) arg;
-
-  osdata_free (osdata);
-}
-
-struct cleanup *
-make_cleanup_osdata_free (struct osdata *data)
-{
-  return make_cleanup (osdata_free_cleanup, data);
-}
-
-struct osdata *
+std::unique_ptr<osdata>
 get_osdata (const char *type)
 {
-  struct osdata *osdata = NULL;
-  char *xml = target_get_osdata (type);
+  std::unique_ptr<osdata> osdata;
+  gdb::unique_xmalloc_ptr<char> xml = target_get_osdata (type);
 
   if (xml)
     {
-      struct cleanup *old_chain = make_cleanup (xfree, xml);
-
-      if (xml[0] == '\0')
+      if (xml.get ()[0] == '\0')
 	{
 	  if (type)
 	    warning (_("Empty data returned by target.  Wrong osdata type?"));
@@ -259,29 +172,21 @@ get_osdata (const char *type)
 	    warning (_("Empty type list returned by target.  No type data?"));
 	}
       else
-	osdata = osdata_parse (xml);
-
-      do_cleanups (old_chain);
+	osdata = osdata_parse (xml.get ());
     }
 
-  if (!osdata)
+  if (osdata == NULL)
     error (_("Can not fetch data now."));
 
   return osdata;
 }
 
-const char *
-get_osdata_column (struct osdata_item *item, const char *name)
+const std::string *
+get_osdata_column (const osdata_item &item, const char *name)
 {
-  struct osdata_column *col;
-  int ix_cols; 
-  
-  for (ix_cols = 0;
-       VEC_iterate (osdata_column_s, item->columns,
-		    ix_cols, col);
-       ix_cols++)
-    if (strcmp (col->name, name) == 0)
-      return col->value;
+  for (const osdata_column &col : item.columns)
+    if (col.name == name)
+      return &col.value;
 
   return NULL;
 }
@@ -290,29 +195,24 @@ void
 info_osdata (const char *type)
 {
   struct ui_out *uiout = current_uiout;
-  struct osdata *osdata = NULL;
   struct osdata_item *last = NULL;
-  struct cleanup *old_chain;
   int ncols = 0;
-  int nrows;
   int col_to_skip = -1;
 
   if (type == NULL)
     type = "";
 
-  osdata = get_osdata (type);
-  old_chain = make_cleanup_osdata_free (osdata);
+  std::unique_ptr<osdata> osdata = get_osdata (type);
 
-  nrows = VEC_length (osdata_item_s, osdata->items);
+  int nrows = osdata->items.size ();
 
   if (*type == '\0' && nrows == 0)
     error (_("Available types of OS data not reported."));
   
-  if (!VEC_empty (osdata_item_s, osdata->items))
+  if (!osdata->items.empty ())
     {
-      last = VEC_last (osdata_item_s, osdata->items);
-      if (last->columns)
-        ncols = VEC_length (osdata_column_s, last->columns);
+      last = &osdata->items.back ();
+      ncols = last->columns.size ();
 
       /* As a special case, scan the listing of available data types
 	 for a column named "Title", and only include it with MI
@@ -320,14 +220,9 @@ info_osdata (const char *type)
 	 elements like menus, and it clutters up CLI output.  */
       if (*type == '\0' && !uiout->is_mi_like_p ())
 	{
-	  struct osdata_column *col;
-	  int ix;
-
-	  for (ix = 0;
-	       VEC_iterate (osdata_column_s, last->columns, ix, col);
-	       ix++)
+	  for (int ix = 0; ix < last->columns.size (); ix++)
 	    {
-	      if (strcmp (col->name, "Title") == 0)
+	      if (last->columns[ix].name == "Title")
 		col_to_skip = ix;
 	    }
 	  /* Be sure to reduce the total column count, otherwise
@@ -337,26 +232,16 @@ info_osdata (const char *type)
 	}
     }
 
-  make_cleanup_ui_out_table_begin_end (uiout, ncols, nrows,
-				       "OSDataTable");
+  ui_out_emit_table table_emitter (uiout, ncols, nrows, "OSDataTable");
 
   /* With no columns/items, we just output an empty table, but we
      still output the table.  This matters for MI.  */
   if (ncols == 0)
-    {
-      do_cleanups (old_chain);
-      return;
-    }
+    return;
 
-  if (last && last->columns)
+  if (last != NULL && !last->columns.empty ())
     {
-      struct osdata_column *col;
-      int ix;
-
-      for (ix = 0;
-          VEC_iterate (osdata_column_s, last->columns,
-                       ix, col);
-          ix++)
+      for (int ix = 0; ix < last->columns.size (); ix++)
 	{
 	  char col_name[32];
 
@@ -365,7 +250,7 @@ info_osdata (const char *type)
 
 	  snprintf (col_name, 32, "col%d", ix);
 	  uiout->table_header (10, ui_left,
-			       col_name, col->name);
+			       col_name, last->columns[ix].name.c_str ());
         }
     }
 
@@ -373,51 +258,35 @@ info_osdata (const char *type)
 
   if (nrows != 0)
     {
-      struct osdata_item *item;
-      int ix_items;
-
-      for (ix_items = 0;
-          VEC_iterate (osdata_item_s, osdata->items,
-                       ix_items, item);
-          ix_items++)
+      for (const osdata_item &item : osdata->items)
        {
-         struct cleanup *old_chain;
-         int ix_cols;
-         struct osdata_column *col;
-
-         old_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "item");
-
-         for (ix_cols = 0;
-              VEC_iterate (osdata_column_s, item->columns,
-                           ix_cols, col);
-              ix_cols++)
-	   {
-	     char col_name[32];
-
-	     if (ix_cols == col_to_skip)
-	       continue;
-
-	     snprintf (col_name, 32, "col%d", ix_cols);
-	     uiout->field_string (col_name, col->value);
-	   }
-	 
-         do_cleanups (old_chain);
+	 {
+	   ui_out_emit_tuple tuple_emitter (uiout, "item");
+
+	   for (int ix_cols = 0; ix_cols < item.columns.size (); ix_cols++)
+	     {
+	       char col_name[32];
+
+	       if (ix_cols == col_to_skip)
+		 continue;
+
+	       snprintf (col_name, 32, "col%d", ix_cols);
+	       uiout->field_string (col_name,
+				    item.columns[ix_cols].value.c_str ());
+	     }
+	 }
 
          uiout->text ("\n");
        }
     }
-
-  do_cleanups (old_chain);
 }
 
 static void
-info_osdata_command (char *arg, int from_tty)
+info_osdata_command (const char *arg, int from_tty)
 {
   info_osdata (arg);
 }
 
-extern initialize_file_ftype _initialize_osdata; /* -Wmissing-prototypes */
-
 void
 _initialize_osdata (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/osdata.h ./gdb/osdata.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/osdata.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/osdata.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Routines for handling XML generic OS data provided by target.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,35 +20,37 @@
 #ifndef OSDATA_H
 #define OSDATA_H
 
-#include "vec.h"
+#include <vector>
 
-typedef struct osdata_column
+struct osdata_column
 {
-  char *name;
-  char *value;
-} osdata_column_s;
-DEF_VEC_O(osdata_column_s);
+  osdata_column (std::string &&name_, std::string &&value_)
+  : name (std::move (name_)), value (std::move (value_))
+  {}
 
-typedef struct osdata_item
+  std::string name;
+  std::string value;
+};
+
+struct osdata_item
 {
-  VEC(osdata_column_s) *columns;
-} osdata_item_s;
-DEF_VEC_O(osdata_item_s);
+  std::vector<osdata_column> columns;
+};
 
 struct osdata
 {
-  char *type;
+  osdata (std::string &&type_)
+  : type (std::move (type_))
+  {}
 
-  VEC(osdata_item_s) *items;
+  std::string type;
+  std::vector<osdata_item> items;
 };
-typedef struct osdata *osdata_p;
-DEF_VEC_P(osdata_p);
 
-struct osdata *osdata_parse (const char *xml);
-void osdata_free (struct osdata *);
-struct cleanup *make_cleanup_osdata_free (struct osdata *data);
-struct osdata *get_osdata (const char *type);
-const char *get_osdata_column (struct osdata_item *item, const char *name);
+std::unique_ptr<osdata> osdata_parse (const char *xml);
+std::unique_ptr<osdata> get_osdata (const char *type);
+const std::string *get_osdata_column (const osdata_item &item,
+				      const char *name);
 
 /* Dump TYPE info to the current uiout builder.  If TYPE is either
    NULL or empty, then dump the top level table that lists the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/parse.c ./gdb/parse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/parse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/parse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Parse expressions for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    Modified from expread.y by the Department of Computer Science at the
    State University of New York at Buffalo, 1991.
@@ -44,12 +44,13 @@
 #include "gdbcmd.h"
 #include "symfile.h"		/* for overlay functions */
 #include "inferior.h"
-#include "doublest.h"
+#include "target-float.h"
 #include "block.h"
 #include "source.h"
 #include "objfiles.h"
 #include "user-regs.h"
 #include <algorithm>
+#include "common/gdb_optional.h"
 
 /* Standard set of definitions for printing, dumping, prefixifying,
  * and evaluating expressions.  */
@@ -110,8 +111,6 @@ show_parserdebug (struct ui_file *file, 
 }
 
 
-static void free_funcalls (void *ignore);
-
 static int prefixify_subexp (struct expression *, struct expression *, int,
 			     int);
 
@@ -122,18 +121,10 @@ static expression_up parse_exp_in_contex
 					     const struct block *, int,
 					     int, int *);
 
-void _initialize_parse (void);
-
 /* Data structure for saving values of arglist_len for function calls whose
    arguments contain other function calls.  */
 
-struct funcall
-  {
-    struct funcall *next;
-    int arglist_len;
-  };
-
-static struct funcall *funcall_chain;
+static std::vector<int> *funcall_chain;
 
 /* Begin counting arguments for a function call,
    saving the data about any containing call.  */
@@ -141,13 +132,8 @@ static struct funcall *funcall_chain;
 void
 start_arglist (void)
 {
-  struct funcall *newobj;
-
-  newobj = XNEW (struct funcall);
-  newobj->next = funcall_chain;
-  newobj->arglist_len = arglist_len;
+  funcall_chain->push_back (arglist_len);
   arglist_len = 0;
-  funcall_chain = newobj;
 }
 
 /* Return the number of arguments in a function call just terminated,
@@ -157,60 +143,41 @@ int
 end_arglist (void)
 {
   int val = arglist_len;
-  struct funcall *call = funcall_chain;
-
-  funcall_chain = call->next;
-  arglist_len = call->arglist_len;
-  xfree (call);
+  arglist_len = funcall_chain->back ();
+  funcall_chain->pop_back ();
   return val;
 }
 
-/* Free everything in the funcall chain.
-   Used when there is an error inside parsing.  */
-
-static void
-free_funcalls (void *ignore)
-{
-  struct funcall *call, *next;
-
-  for (call = funcall_chain; call; call = next)
-    {
-      next = call->next;
-      xfree (call);
-    }
-}
 
 
 /* See definition in parser-defs.h.  */
 
-void
-initialize_expout (struct parser_state *ps, size_t initial_size,
-		   const struct language_defn *lang,
-		   struct gdbarch *gdbarch)
-{
-  ps->expout_size = initial_size;
-  ps->expout_ptr = 0;
-  ps->expout
-    = (struct expression *) xmalloc (sizeof (struct expression)
-				     + EXP_ELEM_TO_BYTES (ps->expout_size));
-  ps->expout->language_defn = lang;
-  ps->expout->gdbarch = gdbarch;
+parser_state::parser_state (size_t initial_size,
+			    const struct language_defn *lang,
+			    struct gdbarch *gdbarch)
+  : expout_size (initial_size),
+    expout (XNEWVAR (expression,
+		     (sizeof (expression)
+		      + EXP_ELEM_TO_BYTES (expout_size)))),
+    expout_ptr (0)
+{
+  expout->language_defn = lang;
+  expout->gdbarch = gdbarch;
 }
 
-/* See definition in parser-defs.h.  */
-
-void
-reallocate_expout (struct parser_state *ps)
+expression_up
+parser_state::release ()
 {
   /* Record the actual number of expression elements, and then
      reallocate the expression memory so that we free up any
      excess elements.  */
 
-  ps->expout->nelts = ps->expout_ptr;
-  ps->expout = (struct expression *)
-     xrealloc (ps->expout,
-	       sizeof (struct expression)
-	       + EXP_ELEM_TO_BYTES (ps->expout_ptr));
+  expout->nelts = expout_ptr;
+  expout.reset (XRESIZEVAR (expression, expout.release (),
+			    (sizeof (expression)
+			     + EXP_ELEM_TO_BYTES (expout_ptr))));
+
+  return std::move (expout);
 }
 
 /* This page contains the functions for adding data to the struct expression
@@ -227,9 +194,9 @@ write_exp_elt (struct parser_state *ps, 
   if (ps->expout_ptr >= ps->expout_size)
     {
       ps->expout_size *= 2;
-      ps->expout = (struct expression *)
-	xrealloc (ps->expout, sizeof (struct expression)
-		  + EXP_ELEM_TO_BYTES (ps->expout_size));
+      ps->expout.reset (XRESIZEVAR (expression, ps->expout.release (),
+				    (sizeof (expression)
+				     + EXP_ELEM_TO_BYTES (ps->expout_size))));
     }
   ps->expout->elts[ps->expout_ptr++] = *expelt;
 }
@@ -255,53 +222,53 @@ write_exp_elt_sym (struct parser_state *
 }
 
 void
-write_exp_elt_block (struct parser_state *ps, const struct block *b)
+write_exp_elt_msym (struct parser_state *ps, minimal_symbol *expelt)
 {
   union exp_element tmp;
 
   memset (&tmp, 0, sizeof (union exp_element));
-  tmp.block = b;
+  tmp.msymbol = expelt;
   write_exp_elt (ps, &tmp);
 }
 
 void
-write_exp_elt_objfile (struct parser_state *ps, struct objfile *objfile)
+write_exp_elt_block (struct parser_state *ps, const struct block *b)
 {
   union exp_element tmp;
 
   memset (&tmp, 0, sizeof (union exp_element));
-  tmp.objfile = objfile;
+  tmp.block = b;
   write_exp_elt (ps, &tmp);
 }
 
 void
-write_exp_elt_longcst (struct parser_state *ps, LONGEST expelt)
+write_exp_elt_objfile (struct parser_state *ps, struct objfile *objfile)
 {
   union exp_element tmp;
 
   memset (&tmp, 0, sizeof (union exp_element));
-  tmp.longconst = expelt;
+  tmp.objfile = objfile;
   write_exp_elt (ps, &tmp);
 }
 
 void
-write_exp_elt_dblcst (struct parser_state *ps, DOUBLEST expelt)
+write_exp_elt_longcst (struct parser_state *ps, LONGEST expelt)
 {
   union exp_element tmp;
 
   memset (&tmp, 0, sizeof (union exp_element));
-  tmp.doubleconst = expelt;
+  tmp.longconst = expelt;
   write_exp_elt (ps, &tmp);
 }
 
 void
-write_exp_elt_decfloatcst (struct parser_state *ps, gdb_byte expelt[16])
+write_exp_elt_floatcst (struct parser_state *ps, const gdb_byte expelt[16])
 {
   union exp_element tmp;
   int index;
 
   for (index = 0; index < 16; index++)
-    tmp.decfloatconst[index] = expelt[index];
+    tmp.floatconst[index] = expelt[index];
 
   write_exp_elt (ps, &tmp);
 }
@@ -469,22 +436,30 @@ write_exp_bitstring (struct parser_state
   write_exp_elt_longcst (ps, (LONGEST) bits);
 }
 
-/* Add the appropriate elements for a minimal symbol to the end of
-   the expression.  */
-
-void
-write_exp_msymbol (struct parser_state *ps,
-		   struct bound_minimal_symbol bound_msym)
+/* Return the type of MSYMBOL, a minimal symbol of OBJFILE.  If
+   ADDRESS_P is not NULL, set it to the MSYMBOL's resolved
+   address.  */
+
+type *
+find_minsym_type_and_address (minimal_symbol *msymbol,
+			      struct objfile *objfile,
+			      CORE_ADDR *address_p)
 {
-  struct minimal_symbol *msymbol = bound_msym.minsym;
-  struct objfile *objfile = bound_msym.objfile;
+  bound_minimal_symbol bound_msym = {msymbol, objfile};
   struct gdbarch *gdbarch = get_objfile_arch (objfile);
-
-  CORE_ADDR addr = BMSYMBOL_VALUE_ADDRESS (bound_msym);
   struct obj_section *section = MSYMBOL_OBJ_SECTION (objfile, msymbol);
   enum minimal_symbol_type type = MSYMBOL_TYPE (msymbol);
   CORE_ADDR pc;
 
+  bool is_tls = (section != NULL
+		 && section->the_bfd_section->flags & SEC_THREAD_LOCAL);
+
+  /* Addresses of TLS symbols are really offsets into a
+     per-objfile/per-thread storage block.  */
+  CORE_ADDR addr = (is_tls
+		    ? MSYMBOL_VALUE_RAW_ADDRESS (bound_msym.minsym)
+		    : BMSYMBOL_VALUE_ADDRESS (bound_msym));
+
   /* The minimal symbol might point to a function descriptor;
      resolve it to the actual code address instead.  */
   pc = gdbarch_convert_from_func_ptr_addr (gdbarch, addr, &current_target);
@@ -514,51 +489,52 @@ write_exp_msymbol (struct parser_state *
   if (overlay_debugging)
     addr = symbol_overlayed_address (addr, section);
 
-  write_exp_elt_opcode (ps, OP_LONG);
-  /* Let's make the type big enough to hold a 64-bit address.  */
-  write_exp_elt_type (ps, objfile_type (objfile)->builtin_core_addr);
-  write_exp_elt_longcst (ps, (LONGEST) addr);
-  write_exp_elt_opcode (ps, OP_LONG);
-
-  if (section && section->the_bfd_section->flags & SEC_THREAD_LOCAL)
-    {
-      write_exp_elt_opcode (ps, UNOP_MEMVAL_TLS);
-      write_exp_elt_objfile (ps, objfile);
-      write_exp_elt_type (ps, objfile_type (objfile)->nodebug_tls_symbol);
-      write_exp_elt_opcode (ps, UNOP_MEMVAL_TLS);
-      return;
+  if (is_tls)
+    {
+      /* Skip translation if caller does not need the address.  */
+      if (address_p != NULL)
+	*address_p = target_translate_tls_address (objfile, addr);
+      return objfile_type (objfile)->nodebug_tls_symbol;
     }
 
-  write_exp_elt_opcode (ps, UNOP_MEMVAL);
+  if (address_p != NULL)
+    *address_p = addr;
+
   switch (type)
     {
     case mst_text:
     case mst_file_text:
     case mst_solib_trampoline:
-      write_exp_elt_type (ps, objfile_type (objfile)->nodebug_text_symbol);
-      break;
+      return objfile_type (objfile)->nodebug_text_symbol;
 
     case mst_text_gnu_ifunc:
-      write_exp_elt_type (ps, objfile_type (objfile)
-			  ->nodebug_text_gnu_ifunc_symbol);
-      break;
+      return objfile_type (objfile)->nodebug_text_gnu_ifunc_symbol;
 
     case mst_data:
     case mst_file_data:
     case mst_bss:
     case mst_file_bss:
-      write_exp_elt_type (ps, objfile_type (objfile)->nodebug_data_symbol);
-      break;
+      return objfile_type (objfile)->nodebug_data_symbol;
 
     case mst_slot_got_plt:
-      write_exp_elt_type (ps, objfile_type (objfile)->nodebug_got_plt_symbol);
-      break;
+      return objfile_type (objfile)->nodebug_got_plt_symbol;
 
     default:
-      write_exp_elt_type (ps, objfile_type (objfile)->nodebug_unknown_symbol);
-      break;
+      return objfile_type (objfile)->nodebug_unknown_symbol;
     }
-  write_exp_elt_opcode (ps, UNOP_MEMVAL);
+}
+
+/* Add the appropriate elements for a minimal symbol to the end of
+   the expression.  */
+
+void
+write_exp_msymbol (struct parser_state *ps,
+		   struct bound_minimal_symbol bound_msym)
+{
+  write_exp_elt_opcode (ps, OP_VAR_MSYM_VALUE);
+  write_exp_elt_objfile (ps, bound_msym.objfile);
+  write_exp_elt_msym (ps, bound_msym.minsym);
+  write_exp_elt_opcode (ps, OP_VAR_MSYM_VALUE);
 }
 
 /* Mark the current index as the starting location of a structure
@@ -880,12 +856,18 @@ operator_length_standard (const struct e
       break;
 
     case OP_LONG:
-    case OP_DOUBLE:
-    case OP_DECFLOAT:
+    case OP_FLOAT:
     case OP_VAR_VALUE:
+    case OP_VAR_MSYM_VALUE:
       oplen = 4;
       break;
 
+    case OP_FUNC_STATIC_VAR:
+      oplen = longest_to_int (expr->elts[endpos - 2].longconst);
+      oplen = 4 + BYTES_TO_EXP_ELEM (oplen + 1);
+      args = 1;
+      break;
+
     case OP_TYPE:
     case OP_BOOL:
     case OP_LAST:
@@ -906,7 +888,7 @@ operator_length_standard (const struct e
       break;
 
     case TYPE_INSTANCE:
-      oplen = 4 + longest_to_int (expr->elts[endpos - 2].longconst);
+      oplen = 5 + longest_to_int (expr->elts[endpos - 2].longconst);
       args = 1;
       break;
 
@@ -935,11 +917,6 @@ operator_length_standard (const struct e
       args = 1;
       break;
 
-    case UNOP_MEMVAL_TLS:
-      oplen = 4;
-      args = 1;
-      break;
-
     case UNOP_ABS:
     case UNOP_CAP:
     case UNOP_CHR:
@@ -1136,9 +1113,7 @@ parse_exp_in_context_1 (const char **str
 			const struct block *block,
 			int comma, int void_context_p, int *out_subexp)
 {
-  struct cleanup *old_chain, *inner_chain;
   const struct language_defn *lang = NULL;
-  struct parser_state ps;
   int subexp;
 
   lexptr = *stringptr;
@@ -1156,8 +1131,9 @@ parse_exp_in_context_1 (const char **str
   if (lexptr == 0 || *lexptr == 0)
     error_no_arg (_("expression to compute"));
 
-  old_chain = make_cleanup (free_funcalls, 0 /*ignore*/);
-  funcall_chain = 0;
+  std::vector<int> funcalls;
+  scoped_restore save_funcall_chain = make_scoped_restore (&funcall_chain,
+							   &funcalls);
 
   expression_context_block = block;
 
@@ -1213,8 +1189,9 @@ parse_exp_in_context_1 (const char **str
      and others called from *.y) ensure CURRENT_LANGUAGE gets restored
      to the value matching SELECTED_FRAME as set by get_current_arch.  */
 
-  initialize_expout (&ps, 10, lang, get_current_arch ());
-  inner_chain = make_cleanup_restore_current_language ();
+  parser_state ps (10, lang, get_current_arch ());
+
+  scoped_restore_current_language lang_saver;
   set_language (lang->la_language);
 
   TRY
@@ -1225,36 +1202,32 @@ parse_exp_in_context_1 (const char **str
   CATCH (except, RETURN_MASK_ALL)
     {
       if (! parse_completion)
-	{
-	  xfree (ps.expout);
-	  throw_exception (except);
-	}
+	throw_exception (except);
     }
   END_CATCH
 
-  reallocate_expout (&ps);
+  /* We have to operate on an "expression *", due to la_post_parser,
+     which explains this funny-looking double release.  */
+  expression_up result = ps.release ();
 
   /* Convert expression from postfix form as generated by yacc
      parser, to a prefix form.  */
 
   if (expressiondebug)
-    dump_raw_expression (ps.expout, gdb_stdlog,
+    dump_raw_expression (result.get (), gdb_stdlog,
 			 "before conversion to prefix form");
 
-  subexp = prefixify_expression (ps.expout);
+  subexp = prefixify_expression (result.get ());
   if (out_subexp)
     *out_subexp = subexp;
 
-  lang->la_post_parser (&ps.expout, void_context_p);
+  lang->la_post_parser (&result, void_context_p);
 
   if (expressiondebug)
-    dump_prefix_expression (ps.expout, gdb_stdlog);
-
-  do_cleanups (inner_chain);
-  discard_cleanups (old_chain);
+    dump_prefix_expression (result.get (), gdb_stdlog);
 
   *stringptr = lexptr;
-  return expression_up (ps.expout);
+  return result;
 }
 
 /* Parse STRING as an expression, and complain if this fails
@@ -1275,19 +1248,14 @@ parse_expression (const char *string)
 expression_up
 parse_expression_with_language (const char *string, enum language lang)
 {
-  struct cleanup *old_chain = NULL;
-
+  gdb::optional<scoped_restore_current_language> lang_saver;
   if (current_language->la_language != lang)
     {
-      old_chain = make_cleanup_restore_current_language ();
+      lang_saver.emplace ();
       set_language (lang);
     }
 
-  expression_up expr = parse_expression (string);
-
-  if (old_chain != NULL)
-    do_cleanups (old_chain);
-  return expr;
+  return parse_expression (string);
 }
 
 /* Parse STRING as an expression.  If parsing ends in the middle of a
@@ -1348,74 +1316,22 @@ parse_expression_for_completion (const c
 /* A post-parser that does nothing.  */
 
 void
-null_post_parser (struct expression **exp, int void_context_p)
+null_post_parser (expression_up *exp, int void_context_p)
 {
 }
 
 /* Parse floating point value P of length LEN.
-   Return 0 (false) if invalid, 1 (true) if valid.
-   The successfully parsed number is stored in D.
-   *SUFFIX points to the suffix of the number in P.
+   Return false if invalid, true if valid.
+   The successfully parsed number is stored in DATA in
+   target format for floating-point type TYPE.
 
    NOTE: This accepts the floating point syntax that sscanf accepts.  */
 
-int
-parse_float (const char *p, int len, DOUBLEST *d, const char **suffix)
+bool
+parse_float (const char *p, int len,
+	     const struct type *type, gdb_byte *data)
 {
-  char *copy;
-  int n, num;
-
-  copy = (char *) xmalloc (len + 1);
-  memcpy (copy, p, len);
-  copy[len] = 0;
-
-  num = sscanf (copy, "%" DOUBLEST_SCAN_FORMAT "%n", d, &n);
-  xfree (copy);
-
-  /* The sscanf man page suggests not making any assumptions on the effect
-     of %n on the result, so we don't.
-     That is why we simply test num == 0.  */
-  if (num == 0)
-    return 0;
-
-  *suffix = p + n;
-  return 1;
-}
-
-/* Parse floating point value P of length LEN, using the C syntax for floats.
-   Return 0 (false) if invalid, 1 (true) if valid.
-   The successfully parsed number is stored in *D.
-   Its type is taken from builtin_type (gdbarch) and is stored in *T.  */
-
-int
-parse_c_float (struct gdbarch *gdbarch, const char *p, int len,
-	       DOUBLEST *d, struct type **t)
-{
-  const char *suffix;
-  int suffix_len;
-  const struct builtin_type *builtin_types = builtin_type (gdbarch);
-
-  if (! parse_float (p, len, d, &suffix))
-    return 0;
-
-  suffix_len = p + len - suffix;
-
-  if (suffix_len == 0)
-    *t = builtin_types->builtin_double;
-  else if (suffix_len == 1)
-    {
-      /* Handle suffixes: 'f' for float, 'l' for long double.  */
-      if (tolower (*suffix) == 'f')
-	*t = builtin_types->builtin_float;
-      else if (tolower (*suffix) == 'l')
-	*t = builtin_types->builtin_long_double;
-      else
-	return 0;
-    }
-  else
-    return 0;
-
-  return 1;
+  return target_float_from_string (data, type, std::string (p, len));
 }
 
 /* Stuff for maintaining a stack of types.  Currently just used by C, but
@@ -1631,6 +1547,33 @@ push_typelist (VEC (type_ptr) *list)
   push_type (tp_function_with_arguments);
 }
 
+/* Pop the type stack and return a type_instance_flags that
+   corresponds the const/volatile qualifiers on the stack.  This is
+   called by the C++ parser when parsing methods types, and as such no
+   other kind of type in the type stack is expected.  */
+
+type_instance_flags
+follow_type_instance_flags ()
+{
+  type_instance_flags flags = 0;
+
+  for (;;)
+    switch (pop_type ())
+      {
+      case tp_end:
+	return flags;
+      case tp_const:
+	flags |= TYPE_INSTANCE_FLAG_CONST;
+	break;
+      case tp_volatile:
+	flags |= TYPE_INSTANCE_FLAG_VOLATILE;
+	break;
+      default:
+	gdb_assert_not_reached ("unrecognized tp_ value in follow_types");
+      }
+}
+
+
 /* Pop the type stack and return the type which corresponds to FOLLOW_TYPE
    as modified by all the stuff on the stack.  */
 struct type *
@@ -1796,8 +1739,7 @@ operator_check_standard (struct expressi
     {
     case BINOP_VAL:
     case OP_COMPLEX:
-    case OP_DECFLOAT:
-    case OP_DOUBLE:
+    case OP_FLOAT:
     case OP_LONG:
     case OP_SCOPE:
     case OP_TYPE:
@@ -1810,11 +1752,11 @@ operator_check_standard (struct expressi
 
     case TYPE_INSTANCE:
       {
-	LONGEST arg, nargs = elts[pos + 1].longconst;
+	LONGEST arg, nargs = elts[pos + 2].longconst;
 
 	for (arg = 0; arg < nargs; arg++)
 	  {
-	    struct type *type = elts[pos + 2 + arg].type;
+	    struct type *type = elts[pos + 3 + arg].type;
 	    struct objfile *objfile = TYPE_OBJFILE (type);
 
 	    if (objfile && (*objfile_func) (objfile, data))
@@ -1823,11 +1765,6 @@ operator_check_standard (struct expressi
       }
       break;
 
-    case UNOP_MEMVAL_TLS:
-      objfile = elts[pos + 1].objfile;
-      type = elts[pos + 2].type;
-      break;
-
     case OP_VAR_VALUE:
       {
 	const struct block *const block = elts[pos + 1].block;
@@ -1844,6 +1781,9 @@ operator_check_standard (struct expressi
 	type = SYMBOL_TYPE (symbol);
       }
       break;
+    case OP_VAR_MSYM_VALUE:
+      objfile = elts[pos + 1].objfile;
+      break;
     }
 
   /* Invoke callbacks for TYPE and OBJFILE if they were set as non-NULL.  */
@@ -1922,10 +1862,11 @@ increase_expout_size (struct parser_stat
   if ((ps->expout_ptr + lenelt) >= ps->expout_size)
     {
       ps->expout_size = std::max (ps->expout_size * 2,
-			     ps->expout_ptr + lenelt + 10);
-      ps->expout = (struct expression *)
-	xrealloc (ps->expout, (sizeof (struct expression)
-			       + EXP_ELEM_TO_BYTES (ps->expout_size)));
+				  ps->expout_ptr + lenelt + 10);
+      ps->expout.reset (XRESIZEVAR (expression,
+				    ps->expout.release (),
+				    (sizeof (struct expression)
+				     + EXP_ELEM_TO_BYTES (ps->expout_size))));
     }
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/parser-defs.h ./gdb/parser-defs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/parser-defs.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/parser-defs.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Parser definitions for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    Modified from expread.y by the Department of Computer Science at the
    State University of New York at Buffalo.
@@ -23,7 +23,6 @@
 #if !defined (PARSER_DEFS_H)
 #define PARSER_DEFS_H 1
 
-#include "doublest.h"
 #include "vec.h"
 #include "expression.h"
 
@@ -38,14 +37,27 @@ extern int parser_debug;
 
 struct parser_state
 {
-  /* The expression related to this parser state.  */
-
-  struct expression *expout;
+  /* Constructor.  INITIAL_SIZE is the initial size of the expout
+     array.  LANG is the language used to parse the expression.  And
+     GDBARCH is the gdbarch to use during parsing.  */
+
+  parser_state (size_t initial_size, const struct language_defn *lang,
+		struct gdbarch *gdbarch);
+
+  DISABLE_COPY_AND_ASSIGN (parser_state);
+
+  /* Resize the allocated expression to the correct size, and return
+     it as an expression_up -- passing ownership to the caller.  */
+  expression_up release ();
 
   /* The size of the expression above.  */
 
   size_t expout_size;
 
+  /* The expression related to this parser state.  */
+
+  expression_up expout;
+
   /* The number of elements already in the expression.  This is used
      to know where to put new elements.  */
 
@@ -157,23 +169,6 @@ struct type_stack
   int size;
 };
 
-/* Helper function to initialize the expout, expout_size, expout_ptr
-   trio inside PS before it is used to store expression elements created
-   during the parsing of an expression.  INITIAL_SIZE is the initial size of
-   the expout array.  LANG is the language used to parse the expression.
-   And GDBARCH is the gdbarch to use during parsing.  */
-
-extern void initialize_expout (struct parser_state *ps,
-			       size_t initial_size,
-			       const struct language_defn *lang,
-			       struct gdbarch *gdbarch);
-
-/* Helper function that reallocates the EXPOUT inside PS in order to
-   eliminate any unused space.  It is generally used when the expression
-   has just been parsed and created.  */
-
-extern void reallocate_expout (struct parser_state *ps);
-
 /* Reverse an expression from suffix form (in which it is constructed)
    to prefix form (in which we can conveniently print or execute it).
    Ordinarily this always returns -1.  However, if EXPOUT_LAST_STRUCT
@@ -189,9 +184,7 @@ extern void write_exp_elt_sym (struct pa
 
 extern void write_exp_elt_longcst (struct parser_state *, LONGEST);
 
-extern void write_exp_elt_dblcst (struct parser_state *, DOUBLEST);
-
-extern void write_exp_elt_decfloatcst (struct parser_state *, gdb_byte *);
+extern void write_exp_elt_floatcst (struct parser_state *, const gdb_byte *);
 
 extern void write_exp_elt_type (struct parser_state *, struct type *);
 
@@ -266,13 +259,12 @@ extern const char *op_name_standard (enu
 
 extern struct type *follow_types (struct type *);
 
-extern void null_post_parser (struct expression **, int);
+extern type_instance_flags follow_type_instance_flags ();
 
-extern int parse_float (const char *p, int len, DOUBLEST *d,
-			const char **suffix);
+extern void null_post_parser (expression_up *, int);
 
-extern int parse_c_float (struct gdbarch *gdbarch, const char *p, int len,
-			  DOUBLEST *d, struct type **t);
+extern bool parse_float (const char *p, int len,
+			 const struct type *type, gdb_byte *data);
 
 /* During parsing of a C expression, the pointer to the next character
    is in this variable.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/p-exp.c ./gdb/p-exp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/p-exp.c	2018-01-02 02:06:29.000000000 +0000
+++ ./gdb/p-exp.c	2018-01-09 02:08:07.000000000 +0000
@@ -223,7 +223,7 @@ typedef union YYSTYPE
       struct type *type;
     } typed_val_int;
     struct {
-      DOUBLEST dval;
+      gdb_byte val[16];
       struct type *type;
     } typed_val_float;
     struct symbol *sym;
@@ -2087,11 +2087,11 @@ yyreduce:
 
 /* Line 1455 of yacc.c  */
 #line 514 "p-exp.y"
-    { write_exp_elt_opcode (pstate, OP_DOUBLE);
+    { write_exp_elt_opcode (pstate, OP_FLOAT);
 			  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].typed_val_float).type);
 			  current_type = (yyvsp[(1) - (1)].typed_val_float).type;
-			  write_exp_elt_dblcst (pstate, (yyvsp[(1) - (1)].typed_val_float).dval);
-			  write_exp_elt_opcode (pstate, OP_DOUBLE); }
+			  write_exp_elt_floatcst (pstate, (yyvsp[(1) - (1)].typed_val_float).val);
+			  write_exp_elt_opcode (pstate, OP_FLOAT); }
     break;
 
   case 54:
@@ -2681,9 +2681,30 @@ parse_number (struct parser_state *par_s
 
   if (parsed_float)
     {
-      if (! parse_c_float (parse_gdbarch (par_state), p, len,
-			   &putithere->typed_val_float.dval,
-			   &putithere->typed_val_float.type))
+      /* Handle suffixes: 'f' for float, 'l' for long double.
+         FIXME: This appears to be an extension -- do we want this?  */
+      if (len >= 1 && tolower (p[len - 1]) == 'f')
+	{
+	  putithere->typed_val_float.type
+	    = parse_type (par_state)->builtin_float;
+	  len--;
+	}
+      else if (len >= 1 && tolower (p[len - 1]) == 'l')
+	{
+	  putithere->typed_val_float.type
+	    = parse_type (par_state)->builtin_long_double;
+	  len--;
+	}
+      /* Default type for floating-point literals is double.  */
+      else
+	{
+	  putithere->typed_val_float.type
+	    = parse_type (par_state)->builtin_double;
+	}
+
+      if (!parse_float (p, len,
+			putithere->typed_val_float.type,
+			putithere->typed_val_float.val))
 	return ERROR;
       return FLOAT;
     }
@@ -3528,16 +3549,12 @@ yylex (void)
 int
 pascal_parse (struct parser_state *par_state)
 {
-  int result;
-  struct cleanup *c = make_cleanup_clear_parser_state (&pstate);
-
   /* Setting up the parser state.  */
+  scoped_restore pstate_restore = make_scoped_restore (&pstate);
   gdb_assert (par_state != NULL);
   pstate = par_state;
 
-  result = yyparse ();
-  do_cleanups (c);
-  return result;
+  return yyparse ();
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/p-exp.y ./gdb/p-exp.y
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/p-exp.y	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/p-exp.y	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* YACC parser for Pascal expressions, for GDB.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -89,7 +89,7 @@ static char *uptok (const char *, int);
       struct type *type;
     } typed_val_int;
     struct {
-      DOUBLEST dval;
+      gdb_byte val[16];
       struct type *type;
     } typed_val_float;
     struct symbol *sym;
@@ -511,11 +511,11 @@ exp	:	NAME_OR_INT
 
 
 exp	:	FLOAT
-			{ write_exp_elt_opcode (pstate, OP_DOUBLE);
+			{ write_exp_elt_opcode (pstate, OP_FLOAT);
 			  write_exp_elt_type (pstate, $1.type);
 			  current_type = $1.type;
-			  write_exp_elt_dblcst (pstate, $1.dval);
-			  write_exp_elt_opcode (pstate, OP_DOUBLE); }
+			  write_exp_elt_floatcst (pstate, $1.val);
+			  write_exp_elt_opcode (pstate, OP_FLOAT); }
 	;
 
 exp	:	variable
@@ -854,9 +854,30 @@ parse_number (struct parser_state *par_s
 
   if (parsed_float)
     {
-      if (! parse_c_float (parse_gdbarch (par_state), p, len,
-			   &putithere->typed_val_float.dval,
-			   &putithere->typed_val_float.type))
+      /* Handle suffixes: 'f' for float, 'l' for long double.
+         FIXME: This appears to be an extension -- do we want this?  */
+      if (len >= 1 && tolower (p[len - 1]) == 'f')
+	{
+	  putithere->typed_val_float.type
+	    = parse_type (par_state)->builtin_float;
+	  len--;
+	}
+      else if (len >= 1 && tolower (p[len - 1]) == 'l')
+	{
+	  putithere->typed_val_float.type
+	    = parse_type (par_state)->builtin_long_double;
+	  len--;
+	}
+      /* Default type for floating-point literals is double.  */
+      else
+	{
+	  putithere->typed_val_float.type
+	    = parse_type (par_state)->builtin_double;
+	}
+
+      if (!parse_float (p, len,
+			putithere->typed_val_float.type,
+			putithere->typed_val_float.val))
 	return ERROR;
       return FLOAT;
     }
@@ -1701,16 +1722,12 @@ yylex (void)
 int
 pascal_parse (struct parser_state *par_state)
 {
-  int result;
-  struct cleanup *c = make_cleanup_clear_parser_state (&pstate);
-
   /* Setting up the parser state.  */
+  scoped_restore pstate_restore = make_scoped_restore (&pstate);
   gdb_assert (par_state != NULL);
   pstate = par_state;
 
-  result = yyparse ();
-  do_cleanups (c);
-  return result;
+  return yyparse ();
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/p-lang.c ./gdb/p-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/p-lang.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/p-lang.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Pascal language support routines for GDB, the GNU debugger.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -30,9 +30,7 @@
 #include "valprint.h"
 #include "value.h"
 #include <ctype.h>
-
-extern void _initialize_pascal_language (void);
-
+#include "c-lang.h"
 
 /* All GPC versions until now (2007-09-27) also define a symbol called
    '_p_initialize'.  Check for the presence of this symbol first.  */
@@ -417,7 +415,7 @@ static const char *p_extensions[] =
   ".pas", ".p", ".pp", NULL
 };
 
-const struct language_defn pascal_language_defn =
+extern const struct language_defn pascal_language_defn =
 {
   "pascal",			/* Language name */
   "Pascal",
@@ -450,21 +448,17 @@ const struct language_defn pascal_langua
   1,				/* c-style arrays */
   0,				/* String lower bound */
   default_word_break_characters,
-  default_make_symbol_completion_list,
+  default_collect_symbol_completion_matches,
   pascal_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
   default_get_string,
-  NULL,				/* la_get_symbol_name_cmp */
+  c_watch_location_expression,
+  NULL,				/* la_compare_symbol_for_completion */
   iterate_over_symbols,
+  default_search_name_hash,
   &default_varobj_ops,
   NULL,
   NULL,
   LANG_MAGIC
 };
-
-void
-_initialize_pascal_language (void)
-{
-  add_language (&pascal_language_defn);
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/p-lang.h ./gdb/p-lang.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/p-lang.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/p-lang.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Pascal language support definitions for GDB, the GNU debugger.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -59,7 +59,7 @@ extern void pascal_printstr (struct ui_f
 			     unsigned int, const char *, int,
 			     const struct value_print_options *);
 
-extern struct type **const (pascal_builtin_types[]);
+extern struct type **const pascal_builtin_types[];
 
 /* These are in p-typeprint.c: */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/po/gdb.pot ./gdb/po/gdb.pot
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/po/gdb.pot	2018-01-02 02:06:31.000000000 +0000
+++ ./gdb/po/gdb.pot	2018-01-09 02:08:08.000000000 +0000
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-02 02:06+0000\n"
+"POT-Creation-Date: 2018-01-09 02:08+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"
@@ -16,6 +16,58 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: aarch64-fbsd-nat.c:63 aarch64-fbsd-nat.c:96 alpha-bsd-nat.c:96
+#: alpha-bsd-nat.c:128 amd64-bsd-nat.c:53 amd64-bsd-nat.c:127
+#: amd64-fbsd-nat.c:158 amd64-linux-nat.c:150 amd64-linux-nat.c:229
+#: arm-fbsd-nat.c:67 arm-fbsd-nat.c:102 hppa-nbsd-nat.c:173
+#: hppa-nbsd-nat.c:203 hppa-obsd-nat.c:199 hppa-obsd-nat.c:227
+#: i386-bsd-nat.c:141 i386-bsd-nat.c:205 i386-linux-nat.c:212
+#: i386-linux-nat.c:227 m32r-linux-nat.c:113 m32r-linux-nat.c:162
+#: m68k-bsd-nat.c:121 m68k-bsd-nat.c:151 m68k-linux-nat.c:258
+#: m68k-linux-nat.c:273 m88k-bsd-nat.c:73 m88k-bsd-nat.c:89
+#: mips64-obsd-nat.c:88 mips64-obsd-nat.c:104 mips-fbsd-nat.c:67
+#: mips-fbsd-nat.c:99 mips-linux-nat.c:256 mips-linux-nat.c:336
+#: mips-nbsd-nat.c:53 mips-nbsd-nat.c:84 ppc-fbsd-nat.c:126 ppc-fbsd-nat.c:153
+#: ppc-nbsd-nat.c:91 ppc-nbsd-nat.c:121 ppc-obsd-nat.c:81 ppc-obsd-nat.c:116
+#: s390-linux-nat.c:243 s390-linux-nat.c:260 sh-nbsd-nat.c:56 sh-nbsd-nat.c:79
+#: sparc-nat.c:171 sparc-nat.c:205 tilegx-linux-nat.c:133
+#: tilegx-linux-nat.c:149 vax-bsd-nat.c:73 vax-bsd-nat.c:89
+#: xtensa-linux-nat.c:219 xtensa-linux-nat.c:238
+msgid "Couldn't get registers"
+msgstr ""
+
+#: aarch64-fbsd-nat.c:74 aarch64-fbsd-nat.c:110 alpha-bsd-nat.c:110
+#: alpha-bsd-nat.c:147 amd64-bsd-nat.c:106 amd64-bsd-nat.c:188
+#: amd64-linux-nat.c:177 amd64-linux-nat.c:264 arm-fbsd-nat.c:79
+#: arm-fbsd-nat.c:117 hppa-nbsd-nat.c:183 hppa-nbsd-nat.c:216
+#: hppa-obsd-nat.c:209 hppa-obsd-nat.c:240 i386-bsd-nat.c:182
+#: i386-bsd-nat.c:258 i386-linux-nat.c:276 i386-linux-nat.c:290
+#: m68k-bsd-nat.c:131 m68k-bsd-nat.c:164 m68k-linux-nat.c:355
+#: m68k-linux-nat.c:369 mips-fbsd-nat.c:77 mips-fbsd-nat.c:113
+#: mips-nbsd-nat.c:66 mips-nbsd-nat.c:101 ppc-obsd-nat.c:97 ppc-obsd-nat.c:135
+#: s390-linux-nat.c:280 s390-linux-nat.c:297 sparc-nat.c:183
+msgid "Couldn't get floating point status"
+msgstr ""
+
+#: aarch64-fbsd-nat.c:102 alpha-bsd-nat.c:134 amd64-bsd-nat.c:132
+#: amd64-linux-nat.c:234 arm-fbsd-nat.c:108 hppa-nbsd-nat.c:208
+#: hppa-obsd-nat.c:232 i386-bsd-nat.c:210 i386-linux-nat.c:232
+#: m32r-linux-nat.c:167 m68k-bsd-nat.c:156 m68k-linux-nat.c:278
+#: m88k-bsd-nat.c:95 mips64-obsd-nat.c:109 mips-fbsd-nat.c:105
+#: mips-nbsd-nat.c:89 ppc-fbsd-nat.c:158 ppc-nbsd-nat.c:127 ppc-obsd-nat.c:126
+#: s390-linux-nat.c:265 sparc-nat.c:210 tilegx-linux-nat.c:154
+#: vax-bsd-nat.c:94 xtensa-linux-nat.c:246
+msgid "Couldn't write registers"
+msgstr ""
+
+#: aarch64-fbsd-nat.c:116 alpha-bsd-nat.c:153 amd64-bsd-nat.c:193
+#: amd64-linux-nat.c:269 arm-fbsd-nat.c:123 hppa-nbsd-nat.c:221
+#: hppa-obsd-nat.c:245 i386-bsd-nat.c:263 i386-linux-nat.c:295
+#: m68k-bsd-nat.c:169 m68k-linux-nat.c:374 mips-fbsd-nat.c:119
+#: mips-nbsd-nat.c:106 ppc-obsd-nat.c:141 s390-linux-nat.c:302
+msgid "Couldn't write floating point status"
+msgstr ""
+
 #: aarch64-linux-nat.c:176 aarch64-linux-nat.c:213 arm-linux-nat.c:185
 #: arm-linux-nat.c:213
 msgid "Unable to fetch general registers."
@@ -53,7 +105,7 @@ msgstr ""
 msgid "Show whether to show variables that mirror the AArch64 debug registers."
 msgstr ""
 
-#: aarch64-linux-nat.c:793 mips-linux-nat.c:774 x86-nat.c:271
+#: aarch64-linux-nat.c:793 mips-linux-nat.c:767 x86-nat.c:271
 msgid ""
 "Use \"on\" to enable, \"off\" to disable.\n"
 "If enabled, the debug registers values are shown when GDB inserts\n"
@@ -61,614 +113,619 @@ msgid ""
 "triggers a breakpoint or watchpoint."
 msgstr ""
 
-#: aarch64-linux-tdep.c:288 arm-linux-tdep.c:1221 i386-tdep.c:4172
-#: i386-tdep.c:4281 i386-tdep.c:4296 ppc-linux-tdep.c:1090 stap-probe.c:679
+#: aarch64-linux-tdep.c:304 arm-linux-tdep.c:1208 i386-tdep.c:4167
+#: i386-tdep.c:4276 i386-tdep.c:4291 ppc-linux-tdep.c:1080 stap-probe.c:779
 #, possible-c-format
 msgid "Invalid register name `%s' on expression `%s'."
 msgstr ""
 
-#: aarch64-linux-tdep.c:956 amd64-linux-tdep.c:1502 arm-linux-tdep.c:1683
-#: i386-linux-tdep.c:473 s390-linux-tdep.c:2865
+#: aarch64-linux-tdep.c:972 amd64-linux-tdep.c:1498 arm-linux-tdep.c:1670
+#: i386-linux-tdep.c:469 s390-linux-tdep.c:2916
 #, possible-c-format
 msgid "Process record and replay target doesn't support syscall number %s\n"
 msgstr ""
 
-#: aarch64-tdep.c:196
+#: aarch64-tdep.c:192
 #, possible-c-format
 msgid "AArch64 debugging is %s.\n"
 msgstr ""
 
-#: aarch64-tdep.c:1040 arm-tdep.c:3145
+#: aarch64-tdep.c:1027 arm-tdep.c:3130
 #, possible-c-format
 msgid "Unexpected register %d"
 msgstr ""
 
 #. Should never happen.
-#: aarch64-tdep.c:1092 arm-tdep.c:3384 nds32-tdep.c:1451
+#: aarch64-tdep.c:1079 arm-tdep.c:3369 nds32-tdep.c:1456
 msgid "unknown type alignment"
 msgstr ""
 
-#: aarch64-tdep.c:2182
+#: aarch64-tdep.c:2169
 #, possible-c-format
 msgid "aarch64_pseudo_register_name: bad register number %d"
 msgstr ""
 
-#: aarch64-tdep.c:2209
+#: aarch64-tdep.c:2196
 #, possible-c-format
 msgid "aarch64_pseudo_register_type: bad register number %d"
 msgstr ""
 
-#: aarch64-tdep.c:3038
+#: aarch64-tdep.c:3046
 #, possible-c-format
 msgid "aarch64_dump_tdep: Lowest pc = 0x%s"
 msgstr ""
 
 #. Debug this file's internals.
-#: aarch64-tdep.c:3061
+#: aarch64-tdep.c:3064
 msgid "Set AArch64 debugging."
 msgstr ""
 
-#: aarch64-tdep.c:3062
+#: aarch64-tdep.c:3065
 msgid "Show AArch64 debugging."
 msgstr ""
 
-#: aarch64-tdep.c:3063
+#: aarch64-tdep.c:3066
 msgid "When on, AArch64 specific debugging is enabled."
 msgstr ""
 
 #. We need to save SPSR value, which is not yet done.
-#: aarch64-tdep.c:4037 arm-tdep.c:11088 arm-tdep.c:12053
+#: aarch64-tdep.c:4044 arm-tdep.c:11024 arm-tdep.c:11989
 #, possible-c-format
 msgid "Process record does not support instruction 0x%0x at address %s.\n"
 msgstr ""
 
-#: ada-exp.y:221
+#: ada-exp.y:217
 msgid "Invalid conversion"
 msgstr ""
 
-#: ada-exp.y:239
+#: ada-exp.y:235
 msgid "Type required for qualification"
 msgstr ""
 
-#: ada-exp.y:257
+#: ada-exp.y:253
 msgid "Cannot slice a type"
 msgstr ""
 
-#: ada-exp.y:325
+#: ada-exp.y:321
 msgid "Type required within braces in coercion"
 msgstr ""
 
-#: ada-exp.y:395 ada-exp.y:413
+#: ada-exp.y:391 ada-exp.y:409
 msgid "Right operand of 'in' must be type"
 msgstr ""
 
-#: ada-exp.y:527
+#: ada-exp.y:523
 msgid "Prefix must be type"
 msgstr ""
 
-#: ada-exp.y:580
+#: ada-exp.y:576
 msgid "NEW not implemented."
 msgstr ""
 
-#: ada-exp.y:756
+#: ada-exp.y:748
 #, possible-c-format
 msgid "Error in expression, near `%s'."
 msgstr ""
 
-#: ada-exp.y:823
+#: ada-exp.y:815
 msgid "Could not find renamed symbol"
 msgstr ""
 
-#: ada-exp.y:832
+#: ada-exp.y:824
 #, possible-c-format
 msgid "Could not find renamed variable: %s"
 msgstr ""
 
-#: ada-exp.y:906
+#: ada-exp.y:897
 #, possible-c-format
 msgid "Could not find %s"
 msgstr ""
 
-#: ada-exp.y:959
+#: ada-exp.y:950
 msgid "Internal error in encoding of renaming declaration"
 msgstr ""
 
-#: ada-exp.y:990 c-exp.y:874 p-exp.y:626
+#: ada-exp.y:985 c-exp.y:908 p-exp.y:626
 #, possible-c-format
 msgid "No file or function \"%s\"."
 msgstr ""
 
-#: ada-exp.y:992 c-exp.y:889 m2-exp.y:523 p-exp.y:638
+#: ada-exp.y:987 c-exp.y:923 m2-exp.y:523 p-exp.y:638
 #, possible-c-format
 msgid "No function \"%s\" in specified context."
 msgstr ""
 
-#: ada-exp.y:997
+#: ada-exp.y:992
 #, possible-c-format
 msgid "Function name \"%s\" ambiguous here"
 msgstr ""
 
-#: ada-exp.y:1289
+#: ada-exp.y:1290
 msgid "impossible value from ada_parse_renaming"
 msgstr ""
 
-#: ada-exp.y:1307
+#: ada-exp.y:1314
 #, possible-c-format
 msgid "Invalid attempt to select from type: \"%s\"."
 msgstr ""
 
-#: ada-exp.y:1341
+#: ada-exp.y:1352
 #, possible-c-format
 msgid "No definition of \"%s\" found."
 msgstr ""
 
-#: ada-exp.y:1355 c-exp.y:1000 c-exp.y:1049 cli/cli-cmds.c:974 d-exp.y:496
-#: f-exp.y:485 go-exp.y:586 linespec.c:1442 linespec.c:3204 p-exp.y:698
-#: p-exp.y:765 source.c:208 symtab.c:4107
+#: ada-exp.y:1367 c-exp.y:1034 c-exp.y:1082 cli/cli-cmds.c:930 d-exp.y:495
+#: f-exp.y:486 go-exp.y:584 linespec.c:1648 linespec.c:3951 p-exp.y:698
+#: p-exp.y:765 source.c:196 symtab.c:4173
 msgid "No symbol table is loaded.  Use the \"file\" command."
 msgstr ""
 
-#: ada-exp.y:1357
+#: ada-exp.y:1369
 #, possible-c-format
 msgid "No definition of \"%s\" in current context."
 msgstr ""
 
-#: ada-exp.y:1359
+#: ada-exp.y:1371
 #, possible-c-format
 msgid "No definition of \"%s\" in specified context."
 msgstr ""
 
-#: ada-exp.y:1364
+#: ada-exp.y:1376
 #, possible-c-format
 msgid "Could not find renamed symbol \"%s\""
 msgstr ""
 
-#: ada-exp.y:1399
+#: ada-exp.y:1414
 msgid "Invalid use of type."
 msgstr ""
 
-#: ada-lang.c:629
+#: ada-lang.c:630
 #, possible-c-format
 msgid "Unable to find field %s in struct %s.  Aborting"
 msgstr ""
 
-#: ada-lang.c:749
+#: ada-lang.c:750
 msgid "object size is larger than varsize-limit"
 msgstr ""
 
-#: ada-lang.c:814
+#: ada-lang.c:815
 msgid "Unexpected type in ada_discrete_type_high_bound."
 msgstr ""
 
-#: ada-lang.c:835
+#: ada-lang.c:836
 msgid "Unexpected type in ada_discrete_type_low_bound."
 msgstr ""
 
-#: ada-lang.c:934
+#: ada-lang.c:935
 msgid "Invalid address for Ada main program name."
 msgstr ""
 
-#: ada-lang.c:1013
+#: ada-lang.c:1018
 #, possible-c-format
 msgid "invalid Ada operator name: %s"
 msgstr ""
 
-#: ada-lang.c:1715 ada-lang.c:1733 ada-lang.c:1747 ada-lang.c:1815
+#: ada-lang.c:1707 ada-lang.c:1725 ada-lang.c:1739 ada-lang.c:1807
 msgid "Bad GNAT array descriptor"
 msgstr ""
 
-#: ada-lang.c:1852
+#: ada-lang.c:1844
 msgid "Bad GNAT array descriptor bounds"
 msgstr ""
 
-#: ada-lang.c:2095
+#: ada-lang.c:2087
 msgid "Bounds unavailable for null array pointer."
 msgstr ""
 
-#: ada-lang.c:2184
+#: ada-lang.c:2176
 msgid "could not understand bit size information on packed array"
 msgstr ""
 
-#: ada-lang.c:2282
+#: ada-lang.c:2274
 msgid "could not find bounds information on packed array"
 msgstr ""
 
-#: ada-lang.c:2289
+#: ada-lang.c:2281
 msgid "could not understand bounds information on packed array"
 msgstr ""
 
-#: ada-lang.c:2323
+#: ada-lang.c:2315
 msgid "can't unpack array"
 msgstr ""
 
-#: ada-lang.c:2376
+#: ada-lang.c:2368
 msgid "attempt to do packed indexing of something other than a packed array"
 msgstr ""
 
-#: ada-lang.c:2386
+#: ada-lang.c:2378
 msgid "don't know bounds of array"
 msgstr ""
 
-#: ada-lang.c:2392
+#: ada-lang.c:2384
 #, possible-c-format
 msgid "packed array index %ld out of bounds"
 msgstr ""
 
-#: ada-lang.c:2464
+#: ada-lang.c:2456
 #, possible-c-format
 msgid "Cannot unpack %d bits into buffer of %d bytes"
 msgstr ""
 
-#: ada-lang.c:2760 ada-lang.c:9909 valops.c:1010
+#: ada-lang.c:2751 ada-lang.c:10037 valops.c:1000
 msgid "Left operand of assignment is not a modifiable lvalue."
 msgstr ""
 
-#: ada-lang.c:2862 ada-lang.c:2898
+#: ada-lang.c:2853 ada-lang.c:2889
 #, possible-c-format
 msgid "too many subscripts (%d expected)"
 msgstr ""
 
-#: ada-lang.c:2931 ada-lang.c:2957
+#: ada-lang.c:2924 ada-lang.c:2952
 msgid "unable to get positions in slice, use bounds instead"
 msgstr ""
 
-#: ada-lang.c:3052
+#: ada-lang.c:3047
 #, possible-c-format
 msgid "invalid dimension number to '%s"
 msgstr ""
 
-#: ada-lang.c:3071
+#: ada-lang.c:3066
 msgid "attempt to take bound of something that is not an array"
 msgstr ""
 
-#: ada-lang.c:3233
+#: ada-lang.c:3228
 msgid "Could not find operator name for opcode"
 msgstr ""
 
-#: ada-lang.c:3423
+#: ada-lang.c:3420
 msgid "Unexpected operator during name resolution"
 msgstr ""
 
-#: ada-lang.c:3487
+#: ada-lang.c:3485
 #, possible-c-format
 msgid "No definition found for %s"
 msgstr ""
 
-#: ada-lang.c:3499 ada-lang.c:3551
+#: ada-lang.c:3497 ada-lang.c:3551
 #, possible-c-format
 msgid "Could not find a match for %s"
 msgstr ""
 
-#: ada-lang.c:3504 ada-lang.c:3789
+#: ada-lang.c:3502 ada-lang.c:3798
 #, possible-c-format
 msgid "Multiple matches for %s\n"
 msgstr ""
 
-#: ada-lang.c:3920
+#: ada-lang.c:3929
 msgid "Request to select 0 symbols!"
 msgstr ""
 
-#: ada-lang.c:3925 linespec.c:1357
+#: ada-lang.c:3934 linespec.c:1563
 msgid ""
 "canceled because the command is ambiguous\n"
 "See set/show multiple-symbol."
 msgstr ""
 
-#: ada-lang.c:3935
+#: ada-lang.c:3944
 msgid "[0] cancel\n"
 msgstr ""
 
-#: ada-lang.c:3937
+#: ada-lang.c:3946
 msgid "[1] all\n"
 msgstr ""
 
-#: ada-lang.c:3955
+#: ada-lang.c:3964
 #, possible-c-format
 msgid " at <no source file available>:%d\n"
 msgstr ""
 
-#: ada-lang.c:3958 ada-lang.c:3979
+#: ada-lang.c:3967 ada-lang.c:3988
 #, possible-c-format
 msgid " at %s:%d\n"
 msgstr ""
 
-#: ada-lang.c:3989
+#: ada-lang.c:3998
 #, possible-c-format
 msgid "'(%s) (enumeral)\n"
 msgstr ""
 
-#: ada-lang.c:4000
+#: ada-lang.c:4009
 #, possible-c-format
 msgid " in %s (enumeral)\n"
 msgstr ""
 
-#: ada-lang.c:4001
+#: ada-lang.c:4010
 #, possible-c-format
 msgid " at %s:?\n"
 msgstr ""
 
-#: ada-lang.c:4005
+#: ada-lang.c:4014
 msgid " (enumeral)\n"
 msgstr ""
 
-#: ada-lang.c:4006
+#: ada-lang.c:4015
 msgid " at ?\n"
 msgstr ""
 
-#: ada-lang.c:4052 ada-lang.c:4065 linespec.c:1379
+#: ada-lang.c:4061 ada-lang.c:4074 linespec.c:1585
 msgid "one or more choice numbers"
 msgstr ""
 
-#: ada-lang.c:4072
+#: ada-lang.c:4081
 msgid "Argument must be choice number"
 msgstr ""
 
-#: ada-lang.c:4076
+#: ada-lang.c:4085
 msgid "cancelled"
 msgstr ""
 
-#: ada-lang.c:4103
+#: ada-lang.c:4112
 #, 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:7464
+#: ada-lang.c:7537
 msgid "Cannot assign this kind of variant record"
 msgstr ""
 
-#: ada-lang.c:7561 valops.c:2199
+#: ada-lang.c:7656 valops.c:2185
 #, possible-c-format
 msgid "There is no member named %s."
 msgstr ""
 
-#: ada-lang.c:7567
+#: ada-lang.c:7662
 msgid "Attempt to extract a component of a value that is not a record."
 msgstr ""
 
-#: ada-lang.c:7626
+#: ada-lang.c:7725
 #, possible-c-format
 msgid "Type %s is not a structure or union type"
 msgstr ""
 
-#: ada-lang.c:7627
+#: ada-lang.c:7726
 msgid "(null)"
 msgstr ""
 
-#: ada-lang.c:7697 inferior.c:530
+#: ada-lang.c:7809 inferior.c:506
 msgid "<null>"
 msgstr ""
 
-#: ada-lang.c:7699
+#: ada-lang.c:7811
 #, possible-c-format
 msgid "Type %s has no component named %s"
 msgstr ""
 
-#: ada-lang.c:8056
+#: ada-lang.c:8167
 msgid "unexpected null name on descriptive type"
 msgstr ""
 
-#: ada-lang.c:8447
+#: ada-lang.c:8558
 #, possible-c-format
 msgid "Invalid type size for `%s' detected: %d."
 msgstr ""
 
-#: ada-lang.c:8450
+#: ada-lang.c:8561
 #, possible-c-format
 msgid "Invalid type size for <unnamed> detected: %d."
 msgstr ""
 
-#: ada-lang.c:8461
+#: ada-lang.c:8572
 msgid "record type with dynamic size is larger than varsize-limit"
 msgstr ""
 
-#: ada-lang.c:8904
+#: ada-lang.c:9014
 msgid "array type with dynamic size is larger than varsize-limit"
 msgstr ""
 
-#: ada-lang.c:9276
+#: ada-lang.c:9118
+#, possible-c-format
+msgid "unable to read value of %s (%s)"
+msgstr ""
+
+#: ada-lang.c:9402
 msgid "'POS only defined on discrete types"
 msgstr ""
 
-#: ada-lang.c:9279
+#: ada-lang.c:9405
 msgid "enumeration value is invalid: can't find 'POS"
 msgstr ""
 
-#: ada-lang.c:9296
+#: ada-lang.c:9422
 msgid "'VAL only defined on discrete types"
 msgstr ""
 
-#: ada-lang.c:9298
+#: ada-lang.c:9424
 msgid "'VAL requires integral argument"
 msgstr ""
 
-#: ada-lang.c:9305
+#: ada-lang.c:9431
 msgid "argument to 'VAL out of range"
 msgstr ""
 
-#: ada-lang.c:9627 ada-lang.c:9665
+#: ada-lang.c:9749 ada-lang.c:9787
 msgid "unable to determine array bounds"
 msgstr ""
 
-#: ada-lang.c:9706
+#: ada-lang.c:9828
 msgid "cannot assign arrays of different length"
 msgstr ""
 
-#: ada-lang.c:9720
+#: ada-lang.c:9842
 msgid "Incompatible types in assignment"
 msgstr ""
 
-#: ada-lang.c:9754
+#: ada-lang.c:9876
 #, possible-c-format
 msgid "second operand of %s must not be zero."
 msgstr ""
 
-#: ada-lang.c:9799
+#: ada-lang.c:9927
 msgid "Attempt to compare array with non-array"
 msgstr ""
 
-#: ada-lang.c:9925
+#: ada-lang.c:10053
 msgid "Left-hand side must be array or record."
 msgstr ""
 
-#: ada-lang.c:9950
+#: ada-lang.c:10078
 msgid "Misplaced 'others' clause"
 msgstr ""
 
-#: ada-lang.c:9955
+#: ada-lang.c:10083
 msgid "Internal error: bad aggregate clause"
 msgstr ""
 
-#: ada-lang.c:9977
+#: ada-lang.c:10105
 msgid "Extra components in aggregate ignored."
 msgstr ""
 
-#: ada-lang.c:10044
+#: ada-lang.c:10172
 msgid "Invalid record component association."
 msgstr ""
 
-#: ada-lang.c:10050
+#: ada-lang.c:10178
 #, possible-c-format
 msgid "Unknown component name: %s."
 msgstr ""
 
-#: ada-lang.c:10055
+#: ada-lang.c:10183
 msgid "Index in component association out of bounds."
 msgstr ""
 
-#: ada-lang.c:10131
+#: ada-lang.c:10259
 msgid "Internal error: miscounted aggregate components."
 msgstr ""
 
-#: ada-lang.c:10503
+#: ada-lang.c:10679
 msgid "Fixed-point values must be assigned to fixed-point variables"
 msgstr ""
 
-#: ada-lang.c:10524
+#: ada-lang.c:10700
 msgid "Operands of fixed-point addition must have the same type"
 msgstr ""
 
-#: ada-lang.c:10550
+#: ada-lang.c:10726
 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:10653 ada-lang.c:10743
+#: ada-lang.c:10829 ada-lang.c:10919
 #, possible-c-format
 msgid "Unexpected unresolved symbol, %s, during evaluation"
 msgstr ""
 
-#: ada-lang.c:10799
+#: ada-lang.c:10975
 #, possible-c-format
 msgid "cannot subscript or call something of type `%s'"
 msgstr ""
 
-#: ada-lang.c:10835
+#: ada-lang.c:11009
 msgid "cannot subscript or call a record"
 msgstr ""
 
-#: ada-lang.c:10837
+#: ada-lang.c:11011
 #, possible-c-format
 msgid "wrong number of subscripts; expecting %d"
 msgstr ""
 
-#: ada-lang.c:10849 ada-lang.c:10863
+#: ada-lang.c:11023 ada-lang.c:11037
 msgid "element type of array unknown"
 msgstr ""
 
-#: ada-lang.c:10872
+#: ada-lang.c:11046
 msgid "Attempt to index or call something other than an array or function"
 msgstr ""
 
-#: ada-lang.c:10902
+#: ada-lang.c:11076
 msgid "cannot slice a packed array"
 msgstr ""
 
-#: ada-lang.c:10930 valops.c:3797
+#: ada-lang.c:11104 valops.c:3788
 msgid "cannot take slice of non-array"
 msgstr ""
 
-#: ada-lang.c:10969
+#: ada-lang.c:11143
 msgid "Membership test incompletely implemented; always returns true"
 msgstr ""
 
-#: ada-lang.c:11058
+#: ada-lang.c:11232
 #, possible-c-format
 msgid "Invalid operand to '%s"
 msgstr ""
 
 #. Should never happen.
-#: ada-lang.c:11088 ada-lang.c:11113 ada-lang.c:11148
+#: ada-lang.c:11262 ada-lang.c:11287 ada-lang.c:11322
 msgid "unexpected attribute encountered"
 msgstr ""
 
-#: ada-lang.c:11121
+#: ada-lang.c:11295
 msgid "the 'length attribute applies only to array types"
 msgstr ""
 
-#: ada-lang.c:11125
+#: ada-lang.c:11299
 msgid "unimplemented type attribute"
 msgstr ""
 
-#: ada-lang.c:11198
+#: ada-lang.c:11372
 msgid "'modulus must be applied to modular type"
 msgstr ""
 
-#: ada-lang.c:11295
+#: ada-lang.c:11469
 msgid "Attempt to dereference null array pointer."
 msgstr ""
 
-#: ada-lang.c:11339 eval.c:2505 eval.c:3006 valops.c:1599
+#: ada-lang.c:11513 eval.c:2637 eval.c:3114 valops.c:1589
 msgid "Attempt to take contents of a non-pointer value."
 msgstr ""
 
-#: ada-lang.c:11418 eval.c:2743
+#: ada-lang.c:11592 eval.c:2836
 msgid "Attempt to use a type name as an expression"
 msgstr ""
 
-#: ada-lang.c:11430
+#: ada-lang.c:11604
 #, possible-c-format
 msgid ""
 "Undefined name, ambiguous name, or renaming used in component association: %"
 "s."
 msgstr ""
 
-#: ada-lang.c:11433
+#: ada-lang.c:11607
 msgid "Aggregates only allowed on the right of an assignment"
 msgstr ""
 
-#: ada-lang.c:11436
+#: ada-lang.c:11610
 msgid "aggregate apparently mangled"
 msgstr ""
 
-#: ada-lang.c:11734
+#: ada-lang.c:11892
 msgid "Unknown lower bound, using 1."
 msgstr ""
 
-#: ada-lang.c:11753
+#: ada-lang.c:11908
 #, possible-c-format
 msgid "Unknown upper bound, using %ld."
 msgstr ""
 
-#: ada-lang.c:11934
+#: ada-lang.c:12099
 msgid ""
 "Your Ada runtime appears to be missing some debugging information.\n"
 "Cannot insert Ada exception catchpoint in this configuration."
 msgstr ""
 
-#: ada-lang.c:11944
+#: ada-lang.c:12109
 #, possible-c-format
 msgid "Symbol \"%s\" is not a function (class = %d)"
 msgstr ""
 
-#: ada-lang.c:11986
+#: ada-lang.c:12151
 msgid "Unable to insert catchpoint.  Is this an Ada main program?"
 msgstr ""
 
-#: ada-lang.c:11994
+#: ada-lang.c:12159
 msgid "Unable to insert catchpoint. Try to start the program first."
 msgstr ""
 
@@ -678,115 +735,124 @@ 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:12003
+#: ada-lang.c:12168
 msgid "Cannot insert Ada exception catchpoints in this configuration."
 msgstr ""
 
-#: ada-lang.c:12178 ada-lang.c:12549 ada-lang.c:12593 ada-lang.c:12624
+#: ada-lang.c:12338 ada-lang.c:12791 ada-lang.c:12847 ada-lang.c:12882
 msgid "unexpected catchpoint type"
 msgstr ""
 
-#: ada-lang.c:12203
+#: ada-lang.c:12430
 #, possible-c-format
 msgid "failed to get exception name: %s"
 msgstr ""
 
-#: ada-lang.c:12317
+#: ada-lang.c:12544
 #, possible-c-format
 msgid "failed to reevaluate internal exception condition for catchpoint %d: %s"
 msgstr ""
 
-#: ada-lang.c:12410
+#: ada-lang.c:12626
 msgid "Error in testing exception condition:\n"
 msgstr ""
 
-#: ada-lang.c:12530 ada-lang.c:12574
+#: ada-lang.c:12761 ada-lang.c:12816
 #, possible-c-format
 msgid "`%s' Ada exception"
 msgstr ""
 
-#: ada-lang.c:12564 break-catch-throw.c:346
+#: ada-lang.c:12779 ada-lang.c:12834
+#, possible-c-format
+msgid "`%s' Ada exception handlers"
+msgstr ""
+
+#: ada-lang.c:12806 break-catch-throw.c:325
 msgid "Temporary catchpoint "
 msgstr ""
 
-#: ada-lang.c:12565 break-catch-throw.c:347
+#: ada-lang.c:12807 break-catch-throw.c:326
 msgid "Catchpoint "
 msgstr ""
 
-#: ada-lang.c:12581
+#: ada-lang.c:12823
 msgid "all Ada exceptions"
 msgstr ""
 
-#: ada-lang.c:12585
+#: ada-lang.c:12827
 msgid "unhandled Ada exceptions"
 msgstr ""
 
-#: ada-lang.c:12589
+#: ada-lang.c:12839
+msgid "all Ada exceptions handlers"
+msgstr ""
+
+#: ada-lang.c:12843
 msgid "failed Ada assertions"
 msgstr ""
 
-#: ada-lang.c:12861
+#: ada-lang.c:13152
 msgid "Condition missing after `if' keyword"
 msgstr ""
 
-#: ada-lang.c:12872 breakpoint.c:1021 breakpoint.c:1035
+#: ada-lang.c:13163 breakpoint.c:886 breakpoint.c:900
 msgid "Junk at end of expression"
 msgstr ""
 
-#: ada-lang.c:12920 ada-lang.c:12943
+#: ada-lang.c:13220 ada-lang.c:13246
 #, possible-c-format
 msgid "unexpected catchpoint kind (%d)"
 msgstr ""
 
-#: ada-lang.c:13122
+#: ada-lang.c:13472
 msgid "condition missing after `if' keyword"
 msgstr ""
 
-#: ada-lang.c:13129 break-catch-throw.c:476 breakpoint.c:9663
-#: breakpoint.c:11676 breakpoint.c:11807 breakpoint.c:11853 breakpoint.c:15482
+#: ada-lang.c:13479 break-catch-throw.c:447 breakpoint.c:9277
+#: breakpoint.c:11205 breakpoint.c:11336 breakpoint.c:11380 breakpoint.c:14991
 msgid "Junk at end of arguments."
 msgstr ""
 
-#: ada-lang.c:13458
+#: ada-lang.c:13795
 msgid "invalid regular expression"
 msgstr ""
 
-#: ada-lang.c:13483
+#: ada-lang.c:13810
 #, possible-c-format
 msgid "All Ada exceptions matching regular expression \"%s\":\n"
 msgstr ""
 
-#: ada-lang.c:13485
+#: ada-lang.c:13812
 msgid "All defined Ada exceptions:\n"
 msgstr ""
 
 #. XXX: gdb_sprint_host_address, type_sprint
-#: ada-lang.c:13667
+#: ada-lang.c:13992
 msgid "Type @"
 msgstr ""
 
-#: ada-lang.c:14075
+#: ada-lang.c:14536
 msgid "\"set ada\" must be followed by the name of a setting.\n"
 msgstr ""
 
-#: ada-lang.c:14153
+#: ada-lang.c:14619
 msgid "Prefix command for changing Ada-specfic settings"
 msgstr ""
 
-#: ada-lang.c:14157
+#: ada-lang.c:14623
 msgid "Generic command for showing Ada-specific settings."
 msgstr ""
 
-#: ada-lang.c:14161
+#: ada-lang.c:14627
 msgid "Enable or disable an optimization trusting PAD types over XVS types"
 msgstr ""
 
-#: ada-lang.c:14162
+#: ada-lang.c:14628
 msgid ""
 "Show whether an optimization trusting PAD types over XVS types is activated"
 msgstr ""
 
-#: ada-lang.c:14164
+#: ada-lang.c:14630
 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"
@@ -798,92 +864,98 @@ msgid ""
 "this option to \"off\" unless necessary."
 msgstr ""
 
-#: ada-lang.c:14175
+#: ada-lang.c:14641
 msgid ""
 "Enable or disable the output of formal and return types for functions in the "
 "overloads selection menu"
 msgstr ""
 
-#: ada-lang.c:14177
+#: ada-lang.c:14643
 msgid ""
 "Show whether the output of formal and return types for functions in the "
 "overloads selection menu is activated"
 msgstr ""
 
-#: ada-lang.c:14182
+#: ada-lang.c:14648
 msgid ""
 "Catch Ada exceptions, when raised.\n"
 "With an argument, catch only exceptions with the given name."
 msgstr ""
 
-#: ada-lang.c:14189
+#: ada-lang.c:14656
+msgid ""
+"Catch Ada exceptions, when handled.\n"
+"With an argument, catch only exceptions with the given name."
+msgstr ""
+
+#: ada-lang.c:14663
 msgid ""
 "Catch failed Ada assertions, when raised.\n"
 "With an argument, catch only exceptions with the given name."
 msgstr ""
 
-#: ada-lang.c:14200
+#: ada-lang.c:14674
 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:14206
+#: ada-lang.c:14680
 msgid "Set Ada maintenance-related variables."
 msgstr ""
 
-#: ada-lang.c:14211
+#: ada-lang.c:14685
 msgid "Show Ada maintenance-related variables"
 msgstr ""
 
-#: ada-lang.c:14218
+#: ada-lang.c:14692
 msgid "Set whether descriptive types generated by GNAT should be ignored."
 msgstr ""
 
-#: ada-lang.c:14219
+#: ada-lang.c:14693
 msgid "Show whether descriptive types generated by GNAT should be ignored."
 msgstr ""
 
-#: ada-lang.c:14220
+#: ada-lang.c:14694
 msgid ""
 "When enabled, the debugger will stop using the DW_AT_GNAT_descriptive_type\n"
 "DWARF attribute."
 msgstr ""
 
-#: ada-lex.l:132 ada-lex.l:136
+#: ada-lex.l:140 ada-lex.l:144
 msgid "Based real literals not implemented yet."
 msgstr ""
 
-#: ada-lex.l:159
+#: ada-lex.l:167
 msgid "ill-formed or non-terminated string literal"
 msgstr ""
 
-#: ada-lex.l:290
+#: ada-lex.l:298
 #, possible-c-format
 msgid "Invalid character '%s' in expression."
 msgstr ""
 
-#: ada-lex.l:343
+#: ada-lex.l:351
 #, possible-c-format
 msgid "Invalid base: %d."
 msgstr ""
 
-#: ada-lex.l:354 ada-lex.l:361
+#: ada-lex.l:362 ada-lex.l:369
 msgid "Integer literal out of range"
 msgstr ""
 
-#: ada-lex.l:356
+#: ada-lex.l:364
 #, possible-c-format
 msgid "Invalid digit `%c' in based literal"
 msgstr ""
 
-#: ada-lex.l:615
+#: ada-lex.l:609
 #, possible-c-format
 msgid "ambiguous attribute name: `%s'"
 msgstr ""
 
-#: ada-lex.l:618
+#: ada-lex.l:612
 #, possible-c-format
 msgid "unrecognized attribute: `%s'"
 msgstr ""
@@ -964,49 +1036,54 @@ msgstr ""
 msgid "Blocked in selective wait statement"
 msgstr ""
 
-#: ada-tasks.c:421
+#: ada-tasks.c:446
 msgid "Unknown task name format. Aborting"
 msgstr ""
 
-#: ada-tasks.c:496
-msgid "Cannot find Ada_Task_Control_Block type. Aborting"
+#: ada-tasks.c:520
+msgid "Cannot find Ada_Task_Control_Block type"
+msgstr ""
+
+#: ada-tasks.c:533
+msgid "Cannot find Common_ATCB type"
 msgstr ""
 
-#: ada-tasks.c:509
-msgid "Cannot find Common_ATCB type. Aborting"
+#: ada-tasks.c:535
+msgid "Cannot find Private_Data type"
 msgstr ""
 
-#: ada-tasks.c:511
-msgid "Cannot find Private_Data type. Aborting"
+#: ada-tasks.c:537
+msgid "Cannot find Entry_Call_Record type"
 msgstr ""
 
-#: ada-tasks.c:513
-msgid "Cannot find Entry_Call_Record type. Aborting"
+#: ada-tasks.c:637
+#, possible-c-format
+msgid "%s. Aborting"
 msgstr ""
 
-#: ada-tasks.c:989
+#: ada-tasks.c:1016
 msgid "Cannot inspect Ada tasks when program is not running"
 msgstr ""
 
-#: ada-tasks.c:1016 ada-tasks.c:1165 ada-tasks.c:1329
+#: ada-tasks.c:1042 ada-tasks.c:1186 ada-tasks.c:1354
 msgid "Your application does not use any Ada tasks.\n"
 msgstr ""
 
-#: ada-tasks.c:1127
+#: ada-tasks.c:1151
 #, possible-c-format
 msgid "Accepting RV with %-4d"
 msgstr ""
 
-#: ada-tasks.c:1133
+#: ada-tasks.c:1157
 #, possible-c-format
 msgid "Waiting on RV with %-3d"
 msgstr ""
 
-#: ada-tasks.c:1143
+#: ada-tasks.c:1167
 msgid "<no name>"
 msgstr ""
 
-#: ada-tasks.c:1170 ada-tasks.c:1281
+#: ada-tasks.c:1191 ada-tasks.c:1306
 #, possible-c-format
 msgid ""
 "Task ID %d not known.  Use the \"info tasks\" command to\n"
@@ -1014,144 +1091,150 @@ msgid ""
 msgstr ""
 
 #. Print the Ada task ID.
-#: ada-tasks.c:1175
+#: ada-tasks.c:1196
 #, possible-c-format
 msgid "Ada Task: %s\n"
 msgstr ""
 
-#: ada-tasks.c:1180
+#: ada-tasks.c:1201
 #, possible-c-format
 msgid "Name: %s\n"
 msgstr ""
 
-#: ada-tasks.c:1182
+#: ada-tasks.c:1203
 msgid "<no name>\n"
 msgstr ""
 
 #. Print the TID and LWP.
-#: ada-tasks.c:1185
+#: ada-tasks.c:1206
 #, possible-c-format
 msgid "Thread: %#lx\n"
 msgstr ""
 
-#: ada-tasks.c:1186
+#: ada-tasks.c:1207
 #, possible-c-format
 msgid "LWP: %#lx\n"
 msgstr ""
 
-#: ada-tasks.c:1196
+#: ada-tasks.c:1211
+#, possible-c-format
+msgid "Base CPU: %d\n"
+msgstr ""
+
+#: ada-tasks.c:1221
 #, possible-c-format
 msgid "Parent: %d"
 msgstr ""
 
-#: ada-tasks.c:1202
+#: ada-tasks.c:1227
 msgid "No parent\n"
 msgstr ""
 
 #. Print the base priority.
-#: ada-tasks.c:1205
+#: ada-tasks.c:1230
 #, possible-c-format
 msgid "Base Priority: %d\n"
 msgstr ""
 
-#: ada-tasks.c:1214
+#: ada-tasks.c:1239
 #, possible-c-format
 msgid "State: Accepting rendezvous with %d"
 msgstr ""
 
-#: ada-tasks.c:1220
+#: ada-tasks.c:1245
 #, possible-c-format
 msgid "State: Waiting on task %d's entry"
 msgstr ""
 
-#: ada-tasks.c:1224
+#: ada-tasks.c:1249
 #, possible-c-format
 msgid "State: %s"
 msgstr ""
 
-#: ada-tasks.c:1265
+#: ada-tasks.c:1290
 msgid "[Current task is unknown]\n"
 msgstr ""
 
-#: ada-tasks.c:1267
+#: ada-tasks.c:1292
 #, possible-c-format
 msgid "[Current task is %d]\n"
 msgstr ""
 
-#: ada-tasks.c:1286
+#: ada-tasks.c:1311
 #, possible-c-format
 msgid "Cannot switch to task %d: Task is no longer running"
 msgstr ""
 
-#: ada-tasks.c:1306
+#: ada-tasks.c:1331
 #, possible-c-format
 msgid ""
 "Unable to compute thread ID for task %d.\n"
 "Cannot switch to this task."
 msgstr ""
 
-#: ada-tasks.c:1312
+#: ada-tasks.c:1337
 #, possible-c-format
 msgid "[Switching to task %d]\n"
 msgstr ""
 
-#: ada-tasks.c:1348
-msgid ""
-"Task switching not supported when debugging from core files\n"
-"(use thread support instead)"
-msgstr ""
-
-#: ada-tasks.c:1446
+#: ada-tasks.c:1452
 msgid "Provide information about all known Ada tasks"
 msgstr ""
 
-#: ada-tasks.c:1448
+#: ada-tasks.c:1454
 msgid ""
 "Use this command to switch between Ada tasks.\n"
 "Without argument, this command simply prints the current task ID"
 msgstr ""
 
-#: ada-typeprint.c:399
+#: ada-typeprint.c:401
 msgid "<undecipherable array type>"
 msgstr ""
 
-#: ada-typeprint.c:727
+#: ada-typeprint.c:729
 msgid " <incomplete type> end record"
 msgstr ""
 
-#: ada-typeprint.c:894
+#: ada-typeprint.c:899
 #, possible-c-format
 msgid "<%d-byte integer>"
 msgstr ""
 
-#: ada-typeprint.c:916
+#: ada-typeprint.c:921
 #, possible-c-format
 msgid "<%d-byte float>"
 msgstr ""
 
-#: ada-typeprint.c:929
+#: ada-typeprint.c:934
 msgid "array (?) of ? (<mal-formed descriptor>)"
 msgstr ""
 
-#: ada-valprint.c:203 ada-valprint.c:494 valprint.c:2676
+#: ada-valprint.c:204 ada-valprint.c:495 valprint.c:2604
 #, possible-c-format
 msgid " <repeats %u times>"
 msgstr ""
 
-#: ada-valprint.c:425
+#: ada-valprint.c:426
 msgid "internal error: unhandled type in ada_print_scalar"
 msgstr ""
 
-#: ada-valprint.c:429 typeprint.c:579
+#: ada-valprint.c:430 typeprint.c:639
 msgid "Invalid type code in symbol table."
 msgstr ""
 
-#: ada-valprint.c:638
+#: ada-valprint.c:639
 msgid "<optimized out or zero length>"
 msgstr ""
 
+#: ada-valprint.c:1179 cp-valprint.c:327 guile/scm-pretty-print.c:638
+#: mi/mi-cmd-stack.c:549 python/py-framefilter.c:447
+#: python/py-prettyprint.c:271 stack.c:303
+#, possible-c-format
+msgid "<error reading variable: %s>"
+msgstr ""
+
 #. Could not get the array bounds.  Pretend this is an empty array.
-#: ada-varobj.c:251 valprint.c:2054
+#: ada-varobj.c:251 valprint.c:1988
 msgid "unable to get bounds of array, assuming null array"
 msgstr ""
 
@@ -1172,15 +1255,15 @@ msgstr ""
 msgid "Debugger's willingness to use agent in inferior as a helper is %s.\n"
 msgstr ""
 
-#: agent.c:76
+#: agent.c:73
 msgid "Set debugger's willingness to use agent as a helper."
 msgstr ""
 
-#: agent.c:77
+#: agent.c:74
 msgid "Show debugger's willingness to use agent as a helper."
 msgstr ""
 
-#: agent.c:78
+#: agent.c:75
 msgid ""
 "If on, GDB will delegate some of the debugging operations to the\n"
 "agent, if the target supports it.  This will speed up those\n"
@@ -1189,176 +1272,119 @@ msgid ""
 "target."
 msgstr ""
 
-#: aix-thread.c:228
+#: aix-thread.c:237
 #, possible-c-format
 msgid "aix-thread: ptrace (%d, %d) returned %d (errno = %d %s)"
 msgstr ""
 
 #. i18n: Like "Thread-Id %d, [state] idle"
-#: aix-thread.c:558
+#: aix-thread.c:567
 msgid "idle"
 msgstr ""
 
 #. i18n: Like "Thread-Id %d, [state] running"
-#: aix-thread.c:561
+#: aix-thread.c:570
 msgid "running"
 msgstr ""
 
 #. i18n: Like "Thread-Id %d, [state] sleeping"
-#: aix-thread.c:564
+#: aix-thread.c:573
 msgid "sleeping"
 msgstr ""
 
 #. i18n: Like "Thread-Id %d, [state] ready"
-#: aix-thread.c:567
+#: aix-thread.c:576
 msgid "ready"
 msgstr ""
 
 #. i18n: Like "Thread-Id %d, [state] finished"
-#: aix-thread.c:570
+#: aix-thread.c:579
 msgid "finished"
 msgstr ""
 
 #. i18n: Like "Thread-Id %d, [state] unknown"
-#: aix-thread.c:573 btrace.c:1772 source.c:680
+#: aix-thread.c:582 btrace.c:1872 source.c:663
 msgid "unknown"
 msgstr ""
 
-#: aix-thread.c:999
+#: aix-thread.c:1014
 #, possible-c-format
 msgid "aix-thread resume: unknown pthread %ld"
 msgstr ""
 
-#: aix-thread.c:1004
+#: aix-thread.c:1021
 #, possible-c-format
 msgid "aix-thread resume: no tid for pthread %ld"
 msgstr ""
 
-#: aix-thread.c:1178
+#: aix-thread.c:1197
 #, possible-c-format
 msgid "aix-thread: fetch_registers: pthdb_pthread_context returned %s"
 msgstr ""
 
-#: aix-thread.c:1472
+#: aix-thread.c:1492
 #, possible-c-format
 msgid "aix-thread: store_registers: pthdb_pthread_context returned %s"
 msgstr ""
 
-#: aix-thread.c:1536
+#: aix-thread.c:1556
 #, possible-c-format
 msgid "aix-thread: store_registers: pthdb_pthread_setcontext returned %s"
 msgstr ""
 
-#: aix-thread.c:1741
+#: aix-thread.c:1758
 #, possible-c-format
 msgid "Thread %ld"
 msgstr ""
 
 #. i18n: Like "thread-identifier %d, [state] running, suspended"
-#: aix-thread.c:1771
+#: aix-thread.c:1789
 #, c-format
 msgid "tid %d"
 msgstr ""
 
 #. i18n: Like "Thread-Id %d, [state] running, suspended"
-#: aix-thread.c:1782
+#: aix-thread.c:1800
 #, c-format
 msgid ", suspended"
 msgstr ""
 
 #. i18n: Like "Thread-Id %d, [state] running, detached"
-#: aix-thread.c:1788
+#: aix-thread.c:1806
 #, c-format
 msgid ", detached"
 msgstr ""
 
 #. i18n: Like "Thread-Id %d, [state] running, cancel pending"
-#: aix-thread.c:1793
+#: aix-thread.c:1811
 #, c-format
 msgid ", cancel pending"
 msgstr ""
 
-#: aix-thread.c:1816 aix-thread.c:1817
+#: aix-thread.c:1834 aix-thread.c:1835
 msgid "AIX pthread support"
 msgstr ""
 
-#: aix-thread.c:1853
+#: aix-thread.c:1869
 msgid "Set debugging of AIX thread module."
 msgstr ""
 
-#: aix-thread.c:1854
+#: aix-thread.c:1870
 msgid "Show debugging of AIX thread module."
 msgstr ""
 
-#: aix-thread.c:1855
+#: aix-thread.c:1871
 msgid "Enables debugging output (used to debug GDB)."
 msgstr ""
 
-#: alpha-bsd-nat.c:96 alpha-bsd-nat.c:128 amd64-bsd-nat.c:53
-#: amd64-bsd-nat.c:100 amd64-fbsd-nat.c:157 amd64-linux-nat.c:150
-#: amd64-linux-nat.c:229 hppa-nbsd-nat.c:173 hppa-nbsd-nat.c:203
-#: hppa-obsd-nat.c:199 hppa-obsd-nat.c:227 i386-bsd-nat.c:141
-#: i386-bsd-nat.c:205 i386-linux-nat.c:212 i386-linux-nat.c:227
-#: m32r-linux-nat.c:113 m32r-linux-nat.c:162 m68k-bsd-nat.c:121
-#: m68k-bsd-nat.c:151 m68k-linux-nat.c:258 m68k-linux-nat.c:273
-#: m88k-bsd-nat.c:73 m88k-bsd-nat.c:89 mips64-obsd-nat.c:88
-#: mips64-obsd-nat.c:104 mips-fbsd-nat.c:58 mips-fbsd-nat.c:93
-#: mips-linux-nat.c:261 mips-linux-nat.c:341 mips-nbsd-nat.c:53
-#: mips-nbsd-nat.c:84 ppc-fbsd-nat.c:126 ppc-fbsd-nat.c:153 ppc-nbsd-nat.c:91
-#: ppc-nbsd-nat.c:121 ppc-obsd-nat.c:81 ppc-obsd-nat.c:116
-#: s390-linux-nat.c:242 s390-linux-nat.c:259 sh-nbsd-nat.c:56 sh-nbsd-nat.c:79
-#: sparc-nat.c:171 sparc-nat.c:205 tilegx-linux-nat.c:133
-#: tilegx-linux-nat.c:149 vax-bsd-nat.c:73 vax-bsd-nat.c:89
-#: xtensa-linux-nat.c:219 xtensa-linux-nat.c:238
-msgid "Couldn't get registers"
-msgstr ""
-
-#: alpha-bsd-nat.c:110 alpha-bsd-nat.c:147 amd64-bsd-nat.c:79
-#: amd64-bsd-nat.c:134 amd64-linux-nat.c:177 amd64-linux-nat.c:264
-#: hppa-nbsd-nat.c:183 hppa-nbsd-nat.c:216 hppa-obsd-nat.c:209
-#: hppa-obsd-nat.c:240 i386-bsd-nat.c:182 i386-bsd-nat.c:258
-#: i386-linux-nat.c:276 i386-linux-nat.c:290 m68k-bsd-nat.c:131
-#: m68k-bsd-nat.c:164 m68k-linux-nat.c:355 m68k-linux-nat.c:369
-#: mips-fbsd-nat.c:71 mips-fbsd-nat.c:111 mips-nbsd-nat.c:66
-#: mips-nbsd-nat.c:101 ppc-obsd-nat.c:97 ppc-obsd-nat.c:135
-#: s390-linux-nat.c:279 s390-linux-nat.c:296 sparc-nat.c:183
-msgid "Couldn't get floating point status"
-msgstr ""
-
-#: alpha-bsd-nat.c:134 amd64-bsd-nat.c:105 amd64-linux-nat.c:234
-#: hppa-nbsd-nat.c:208 hppa-obsd-nat.c:232 i386-bsd-nat.c:210
-#: i386-linux-nat.c:232 m32r-linux-nat.c:167 m68k-bsd-nat.c:156
-#: m68k-linux-nat.c:278 m88k-bsd-nat.c:95 mips64-obsd-nat.c:109
-#: mips-fbsd-nat.c:99 mips-nbsd-nat.c:89 ppc-fbsd-nat.c:158 ppc-nbsd-nat.c:127
-#: ppc-obsd-nat.c:126 s390-linux-nat.c:264 sparc-nat.c:210
-#: tilegx-linux-nat.c:154 vax-bsd-nat.c:94 xtensa-linux-nat.c:246
-msgid "Couldn't write registers"
-msgstr ""
-
-#: alpha-bsd-nat.c:153 amd64-bsd-nat.c:139 amd64-linux-nat.c:269
-#: hppa-nbsd-nat.c:221 hppa-obsd-nat.c:245 i386-bsd-nat.c:263
-#: i386-linux-nat.c:295 m68k-bsd-nat.c:169 m68k-linux-nat.c:374
-#: mips-fbsd-nat.c:117 mips-nbsd-nat.c:106 ppc-obsd-nat.c:141
-#: s390-linux-nat.c:301
-msgid "Couldn't write floating point status"
-msgstr ""
-
-#: alpha-tdep.c:262
-msgid "Cannot retrieve value from floating point register"
-msgstr ""
-
-#: alpha-tdep.c:277
-msgid "Cannot store value in floating point register"
-msgstr ""
-
-#: alpha-tdep.c:502 alpha-tdep.c:526 alpha-tdep.c:571 alpha-tdep.c:596
+#: alpha-tdep.c:503 alpha-tdep.c:527 alpha-tdep.c:572 alpha-tdep.c:597
 msgid "unknown floating point width"
 msgstr ""
 
 #. FIXME: 128-bit long doubles are returned like structures:
 #. by writing into indirect storage provided by the caller
 #. as the first argument.
-#: alpha-tdep.c:567 alpha-tdep.c:592
+#: alpha-tdep.c:568 alpha-tdep.c:593
 msgid "Cannot set a 128-bit long double return value."
 msgstr ""
 
@@ -1386,76 +1412,76 @@ msgid ""
 "(more likely) you have encountered a bug in GDB.\n"
 msgstr ""
 
-#: alpha-tdep.c:1871 mips-tdep.c:9062
+#: alpha-tdep.c:1870 mips-tdep.c:9060
 msgid "Set the distance searched for the start of a function."
 msgstr ""
 
-#: alpha-tdep.c:1872 mips-tdep.c:9063
+#: alpha-tdep.c:1871 mips-tdep.c:9061
 msgid "Show the distance searched for the start of a function."
 msgstr ""
 
-#: alpha-tdep.c:1873 mips-tdep.c:9064
+#: alpha-tdep.c:1872 mips-tdep.c:9062
 msgid ""
 "If you are debugging a stripped executable, GDB needs to search through the\n"
 "program for the start of a function.  This command sets the distance of the\n"
 "search.  The only need to set it is when debugging a stripped executable."
 msgstr ""
 
-#: amd64-bsd-nat.c:71 amd64-bsd-nat.c:122 amd64-linux-nat.c:170
+#: amd64-bsd-nat.c:66 amd64-linux-nat.c:191
+msgid "Couldn't get segment register fs_base"
+msgstr ""
+
+#: amd64-bsd-nat.c:79 amd64-linux-nat.c:199
+msgid "Couldn't get segment register gs_base"
+msgstr ""
+
+#: amd64-bsd-nat.c:98 amd64-bsd-nat.c:176 amd64-linux-nat.c:170
 #: amd64-linux-nat.c:253 i386-bsd-nat.c:163 i386-bsd-nat.c:231
 msgid "Couldn't get extended state status"
 msgstr ""
 
-#: amd64-bsd-nat.c:128 amd64-linux-nat.c:259 i386-bsd-nat.c:237
+#: amd64-bsd-nat.c:146 amd64-linux-nat.c:284
+msgid "Couldn't write segment register fs_base"
+msgstr ""
+
+#: amd64-bsd-nat.c:159 amd64-linux-nat.c:291
+msgid "Couldn't write segment register gs_base"
+msgstr ""
+
+#: amd64-bsd-nat.c:182 amd64-linux-nat.c:259 i386-bsd-nat.c:237
 #: i386-linux-nat.c:361
 msgid "Couldn't write extended state status"
 msgstr ""
 
-#: amd64-fbsd-nat.c:230
+#: amd64-fbsd-nat.c:228
 #, possible-c-format
 msgid ""
 "offsetof (struct sigcontext, sc_rip) yields %d instead of %d.\n"
 "Please report this to <bug-gdb@gnu.org>."
 msgstr ""
 
-#: amd64-fbsd-nat.c:243
+#: amd64-fbsd-nat.c:241
 #, possible-c-format
 msgid ""
 "offsetof (struct sigcontext, sc_rsp) yields %d instead of %d.\n"
 "Please report this to <bug-gdb@gnu.org>."
 msgstr ""
 
-#: amd64-fbsd-nat.c:256
+#: amd64-fbsd-nat.c:254
 #, possible-c-format
 msgid ""
 "offsetof (struct sigcontext, sc_rbp) yields %d instead of %d.\n"
 "Please report this to <bug-gdb@gnu.org>."
 msgstr ""
 
-#: amd64-linux-nat.c:191
-msgid "Couldn't get segment register fs_base"
-msgstr ""
-
-#: amd64-linux-nat.c:199
-msgid "Couldn't get segment register gs_base"
-msgstr ""
-
-#: amd64-linux-nat.c:284
-msgid "Couldn't write segment register fs_base"
-msgstr ""
-
-#: amd64-linux-nat.c:291
-msgid "Couldn't write segment register gs_base"
-msgstr ""
-
 #. We shouldn't get here.
-#: amd64-tdep.c:1238
+#: amd64-tdep.c:1247
 msgid "unable to find free reg"
 msgstr ""
 
 #. multiply
-#: arch/arm.c:127 arch/arm-get-next-pcs.c:680 arch/arm-get-next-pcs.c:701
-#: arch/arm-get-next-pcs.c:817
+#: arch/arm.c:127 arch/arm-get-next-pcs.c:681 arch/arm-get-next-pcs.c:702
+#: arch/arm-get-next-pcs.c:818
 msgid "Invalid update to pc in instruction"
 msgstr ""
 
@@ -1463,47 +1489,47 @@ msgstr ""
 msgid "bad value in switch"
 msgstr ""
 
-#: arch/arm-get-next-pcs.c:897
+#: arch/arm-get-next-pcs.c:898
 msgid "Bad bit-field extraction"
 msgstr ""
 
-#: arch-utils.c:240 m32c-tdep.c:2585 m32c-tdep.c:2606
+#: arch-utils.c:221 m32c-tdep.c:2582 m32c-tdep.c:2603
 msgid "No virtual frame pointer available"
 msgstr ""
 
-#: arch-utils.c:339
+#: arch-utils.c:320
 msgid "The target endianness is set automatically (currently big endian)\n"
 msgstr ""
 
-#: arch-utils.c:342
+#: arch-utils.c:323
 msgid "The target endianness is set automatically (currently little endian)\n"
 msgstr ""
 
-#: arch-utils.c:347
+#: arch-utils.c:328
 msgid "The target is assumed to be big endian\n"
 msgstr ""
 
-#: arch-utils.c:350
+#: arch-utils.c:331
 msgid "The target is assumed to be little endian\n"
 msgstr ""
 
-#: arch-utils.c:365
+#: arch-utils.c:346
 msgid "set_endian: architecture update failed"
 msgstr ""
 
-#: arch-utils.c:371
+#: arch-utils.c:352
 msgid "Little endian target not supported by GDB\n"
 msgstr ""
 
-#: arch-utils.c:379
+#: arch-utils.c:360
 msgid "Big endian target not supported by GDB\n"
 msgstr ""
 
-#: arch-utils.c:385
+#: arch-utils.c:366
 msgid "set_endian: bad value"
 msgstr ""
 
-#: arch-utils.c:444
+#: arch-utils.c:425
 #, possible-c-format
 msgid ""
 "Selected architecture %s is not compatible with reported target architecture "
@@ -1512,127 +1538,127 @@ msgstr ""
 
 #. We have no idea which one is better.  This is a bug, but not
 #. a critical problem; warn the user.
-#: arch-utils.c:468
+#: arch-utils.c:449
 #, possible-c-format
 msgid ""
 "Selected architecture %s is ambiguous with reported target architecture %s"
 msgstr ""
 
-#: arch-utils.c:499
+#: arch-utils.c:480
 #, possible-c-format
 msgid "The target architecture is set automatically (currently %s)\n"
 msgstr ""
 
-#: arch-utils.c:503
+#: arch-utils.c:484
 #, possible-c-format
 msgid "The target architecture is assumed to be %s\n"
 msgstr ""
 
-#: arch-utils.c:523
+#: arch-utils.c:505
 msgid "could not select an architecture automatically"
 msgstr ""
 
-#: arch-utils.c:530
+#: arch-utils.c:512
 msgid "set_architecture: bfd_scan_arch failed"
 msgstr ""
 
-#: arch-utils.c:534
+#: arch-utils.c:516
 #, possible-c-format
 msgid "Architecture `%s' not recognized.\n"
 msgstr ""
 
-#: arch-utils.c:619
+#: arch-utils.c:601
 msgid "Architecture of file not recognized."
 msgstr ""
 
-#: arch-utils.c:666
+#: arch-utils.c:648
 msgid "initialize_current_architecture: No arch"
 msgstr ""
 
-#: arch-utils.c:670
+#: arch-utils.c:652
 msgid "initialize_current_architecture: Arch not found"
 msgstr ""
 
-#: arch-utils.c:713
+#: arch-utils.c:695
 msgid ""
 "initialize_current_architecture: Selection of initial architecture failed"
 msgstr ""
 
-#: arch-utils.c:727
+#: arch-utils.c:709
 msgid "Set architecture of target."
 msgstr ""
 
-#: arch-utils.c:728
+#: arch-utils.c:710
 msgid "Show architecture of target."
 msgstr ""
 
-#: arch-utils.c:865
+#: arch-utils.c:847
 msgid "This architecture has no method to collect a return address."
 msgstr ""
 
-#: arch-utils.c:908
+#: arch-utils.c:890
 msgid "This target does not support inferior memory allocation by mmap."
 msgstr ""
 
-#: arch-utils.c:993
+#: arch-utils.c:984
 msgid "Set endianness of target."
 msgstr ""
 
-#: arch-utils.c:994
+#: arch-utils.c:985
 msgid "Show endianness of target."
 msgstr ""
 
-#: arc-tdep.c:813
+#: arc-tdep.c:815
 #, possible-c-format
 msgid "arc: extract_return_value: type length %u too large"
 msgstr ""
 
-#: arc-tdep.c:867
+#: arc-tdep.c:869
 msgid "arc_store_return_value: type length too large."
 msgstr ""
 
-#: arc-tdep.c:1824 arc-tdep.c:1840
+#: arc-tdep.c:1844 arc-tdep.c:1860
 msgid "Error: ARC v2 target description supplied for non-ARCv2 target.\n"
 msgstr ""
 
-#: arc-tdep.c:1857
+#: arc-tdep.c:1877
 msgid ""
 "Error: ARCompact target description supplied for non-ARCompact target.\n"
 msgstr ""
 
-#: arc-tdep.c:1868
+#: arc-tdep.c:1888
 msgid ""
 "Error: Couldn't find core register feature in supplied target description."
 msgstr ""
 
-#: arc-tdep.c:1902 arc-tdep.c:1926
+#: arc-tdep.c:1922 arc-tdep.c:1946
 #, possible-c-format
 msgid "Error: Cannot find required register `%s' in feature `%s'.\n"
 msgstr ""
 
-#: arc-tdep.c:1914
+#: arc-tdep.c:1934
 #, possible-c-format
 msgid ""
 "Error: Cannot find required feature `%s' in supplied target description.\n"
 msgstr ""
 
-#: arc-tdep.c:2104
+#: arc-tdep.c:2176
 msgid "ARC-specific maintenance commands for printing GDB internal state."
 msgstr ""
 
-#: arc-tdep.c:2111
+#: arc-tdep.c:2183
 msgid "Dump arc_instruction structure for specified address."
 msgstr ""
 
-#: arc-tdep.c:2117
+#: arc-tdep.c:2189
 msgid "Set ARC specific debugging."
 msgstr ""
 
-#: arc-tdep.c:2118
+#: arc-tdep.c:2190
 msgid "Show ARC specific debugging."
 msgstr ""
 
-#: arc-tdep.c:2119
+#: arc-tdep.c:2191
 msgid "Non-zero enables ARC specific debugging."
 msgstr ""
 
@@ -1670,15 +1696,15 @@ msgid ""
 "target                       supports %d"
 msgstr ""
 
-#: arm-linux-nat.c:1232 arm-linux-nat.c:1237
+#: arm-linux-nat.c:1240 arm-linux-nat.c:1245
 msgid "Unexpected error setting breakpoint"
 msgstr ""
 
-#: arm-linux-nat.c:1249 arm-linux-nat.c:1254
+#: arm-linux-nat.c:1257 arm-linux-nat.c:1262
 msgid "Unexpected error setting watchpoint"
 msgstr ""
 
-#: arm-linux-tdep.c:1781
+#: arm-linux-tdep.c:1768
 msgid "arm_linux_init_abi: Floating point model not supported"
 msgstr ""
 
@@ -1719,158 +1745,158 @@ msgstr ""
 msgid "wrong size of FPA register set in core file"
 msgstr ""
 
-#: arm-nbsd-tdep.c:63 arm-tdep.c:9401
+#: arm-nbsd-tdep.c:63 arm-tdep.c:9341
 msgid "arm_gdbarch_init: bad byte order for float format"
 msgstr ""
 
-#: arm-tdep.c:3455 arm-tdep.c:3477
+#: arm-tdep.c:3440 arm-tdep.c:3462
 #, possible-c-format
 msgid "Invalid VFP CPRC type: %d."
 msgstr ""
 
-#: arm-tdep.c:3975
+#: arm-tdep.c:3960
 #, possible-c-format
 msgid "Hardware FPU type %d\n"
 msgstr ""
 
-#: arm-tdep.c:3977
+#: arm-tdep.c:3962
 #, possible-c-format
 msgid "Software FPU type %d\n"
 msgstr ""
 
 #. i18n: [floating point unit] mask
-#: arm-tdep.c:3979
+#: arm-tdep.c:3964
 msgid "mask: "
 msgstr ""
 
 #. i18n: [floating point unit] flags
-#: arm-tdep.c:3982
+#: arm-tdep.c:3967
 msgid "flags: "
 msgstr ""
 
-#: arm-tdep.c:4211
+#: arm-tdep.c:4196
 #, possible-c-format
 msgid "Bad REGNUM %d"
 msgstr ""
 
 #. Unpredictable behaviour.  Try to do something sensible (switch to ARM
 #. mode, align dest to 4 bytes).
-#: arm-tdep.c:4550
+#: arm-tdep.c:4502
 msgid "Single-stepping BX to non-word-aligned ARM instruction."
 msgstr ""
 
-#: arm-tdep.c:4612
+#: arm-tdep.c:4564
 msgid "Instruction wrote to PC in an unexpected way when single-stepping"
 msgstr ""
 
-#: arm-tdep.c:4618
+#: arm-tdep.c:4570
 msgid "Invalid argument to displaced_write_reg"
 msgstr ""
 
-#: arm-tdep.c:5578
+#: arm-tdep.c:5530
 msgid "copy_extra_ld_st: instruction decode error"
 msgstr ""
 
-#: arm-tdep.c:5892
+#: arm-tdep.c:5844
 msgid "Cannot single-step exception return"
 msgstr ""
 
-#: arm-tdep.c:6012
+#: arm-tdep.c:5964
 #, possible-c-format
 msgid "displaced: LDM: move loaded register r%d to r%d\n"
 msgstr ""
 
-#: arm-tdep.c:6017
+#: arm-tdep.c:5969
 #, possible-c-format
 msgid "displaced: LDM: register r%d already in the right place\n"
 msgstr ""
 
-#: arm-tdep.c:6037
+#: arm-tdep.c:5989
 #, possible-c-format
 msgid "displaced: LDM: restored clobbered register r%d\n"
 msgstr ""
 
-#: arm-tdep.c:6080 arm-tdep.c:6191
+#: arm-tdep.c:6032 arm-tdep.c:6143
 msgid "displaced: Unpredictable LDM or STM with base register r15"
 msgstr ""
 
-#: arm-tdep.c:6149 arm-tdep.c:6235
+#: arm-tdep.c:6101 arm-tdep.c:6187
 #, possible-c-format
 msgid ""
 "displaced: LDM r%d%s, {..., pc}: original reg list %.4x, modified list %.4x\n"
 msgstr ""
 
-#: arm-tdep.c:7259
+#: arm-tdep.c:7202
 #, possible-c-format
 msgid "displaced: POP {..., pc}: original reg list %.4x, modified list %.4x\n"
 msgstr ""
 
-#: arm-tdep.c:7376
+#: arm-tdep.c:7319
 msgid "thumb_process_displaced_16bit_insn: Instruction decode error"
 msgstr ""
 
-#: arm-tdep.c:7583
+#: arm-tdep.c:7526
 msgid "thumb_process_displaced_32bit_insn: Instruction decode error"
 msgstr ""
 
-#: arm-tdep.c:7667
+#: arm-tdep.c:7610
 msgid "arm_process_displaced_insn: Instruction decode error"
 msgstr ""
 
-#: arm-tdep.c:7982
+#: arm-tdep.c:7923
 msgid "arm_extract_return_value: Floating point model not supported"
 msgstr ""
 
-#: arm-tdep.c:8187
+#: arm-tdep.c:8127
 msgid "arm_store_return_value: Floating point model not supported"
 msgstr ""
 
-#: arm-tdep.c:8422
+#: arm-tdep.c:8362
 msgid "\"set arm\" must be followed by an apporpriate subcommand.\n"
 msgstr ""
 
-#: arm-tdep.c:8446 rs6000-tdep.c:6658 rs6000-tdep.c:6685
+#: arm-tdep.c:8386 rs6000-tdep.c:6664 rs6000-tdep.c:6691
 msgid "could not update architecture"
 msgstr ""
 
-#: arm-tdep.c:8463
+#: arm-tdep.c:8403
 #, possible-c-format
 msgid "Invalid fp model accepted: %s."
 msgstr ""
 
-#: arm-tdep.c:8477
+#: arm-tdep.c:8417
 #, possible-c-format
 msgid "The current ARM floating point model is \"auto\" (currently \"%s\").\n"
 msgstr ""
 
-#: arm-tdep.c:8481
+#: arm-tdep.c:8421
 #, possible-c-format
 msgid "The current ARM floating point model is \"%s\".\n"
 msgstr ""
 
-#: arm-tdep.c:8500
+#: arm-tdep.c:8440
 #, possible-c-format
 msgid "Invalid ABI accepted: %s."
 msgstr ""
 
-#: arm-tdep.c:8514
+#: arm-tdep.c:8454
 #, possible-c-format
 msgid "The current ARM ABI is \"auto\" (currently \"%s\").\n"
 msgstr ""
 
-#: arm-tdep.c:8518
+#: arm-tdep.c:8458
 #, possible-c-format
 msgid "The current ARM ABI is \"%s\".\n"
 msgstr ""
 
-#: arm-tdep.c:8527
+#: arm-tdep.c:8467
 #, possible-c-format
 msgid ""
 "The current execution mode assumed (when symbols are unavailable) is \"%s"
 "\".\n"
 msgstr ""
 
-#: arm-tdep.c:8537
+#: arm-tdep.c:8477
 #, possible-c-format
 msgid ""
 "The current execution mode assumed (even when symbols are available) is \"%s"
@@ -1878,57 +1904,57 @@ msgid ""
 msgstr ""
 
 #. Leave it as "auto".
-#: arm-tdep.c:9093
+#: arm-tdep.c:9033
 #, possible-c-format
 msgid "unknown ARM EABI version 0x%x"
 msgstr ""
 
-#: arm-tdep.c:9594
+#: arm-tdep.c:9534
 #, possible-c-format
 msgid "arm_dump_tdep: Lowest pc = 0x%lx"
 msgstr ""
 
-#: arm-tdep.c:9643 arm-tdep.c:9647
+#: arm-tdep.c:9579 arm-tdep.c:9583
 msgid "Various ARM-specific commands."
 msgstr ""
 
-#: arm-tdep.c:9677
+#: arm-tdep.c:9613
 msgid "The valid values are:\n"
 msgstr ""
 
-#: arm-tdep.c:9679
+#: arm-tdep.c:9615
 msgid "The default is \"std\"."
 msgstr ""
 
-#: arm-tdep.c:9683
+#: arm-tdep.c:9619
 msgid "Set the disassembly style."
 msgstr ""
 
-#: arm-tdep.c:9684
+#: arm-tdep.c:9620
 msgid "Show the disassembly style."
 msgstr ""
 
-#: arm-tdep.c:9691
+#: arm-tdep.c:9627
 msgid "Set usage of ARM 32-bit mode."
 msgstr ""
 
-#: arm-tdep.c:9692
+#: arm-tdep.c:9628
 msgid "Show usage of ARM 32-bit mode."
 msgstr ""
 
-#: arm-tdep.c:9693
+#: arm-tdep.c:9629
 msgid "When off, a 26-bit PC will be used."
 msgstr ""
 
-#: arm-tdep.c:9701
+#: arm-tdep.c:9637
 msgid "Set the floating point type."
 msgstr ""
 
-#: arm-tdep.c:9702
+#: arm-tdep.c:9638
 msgid "Show the floating point type."
 msgstr ""
 
-#: arm-tdep.c:9703
+#: arm-tdep.c:9639
 msgid ""
 "auto - Determine the FP typefrom the OS-ABI.\n"
 "softfpa - Software FP, mixed-endian doubles on little-endian ARMs.\n"
@@ -1937,47 +1963,47 @@ msgid ""
 "vfp - VFP co-processor."
 msgstr ""
 
-#: arm-tdep.c:9713
+#: arm-tdep.c:9649
 msgid "Set the ABI."
 msgstr ""
 
-#: arm-tdep.c:9714
+#: arm-tdep.c:9650
 msgid "Show the ABI."
 msgstr ""
 
-#: arm-tdep.c:9722
+#: arm-tdep.c:9658
 msgid "Set the mode assumed when symbols are unavailable."
 msgstr ""
 
-#: arm-tdep.c:9723
+#: arm-tdep.c:9659
 msgid "Show the mode assumed when symbols are unavailable."
 msgstr ""
 
-#: arm-tdep.c:9728
+#: arm-tdep.c:9664
 msgid "Set the mode assumed even when symbols are available."
 msgstr ""
 
-#: arm-tdep.c:9729
+#: arm-tdep.c:9665
 msgid "Show the mode assumed even when symbols are available."
 msgstr ""
 
-#: arm-tdep.c:9735
+#: arm-tdep.c:9671
 msgid "Set ARM debugging."
 msgstr ""
 
-#: arm-tdep.c:9736
+#: arm-tdep.c:9672
 msgid "Show ARM debugging."
 msgstr ""
 
-#: arm-tdep.c:9737
+#: arm-tdep.c:9673
 msgid "When on, arm-specific debugging is enabled."
 msgstr ""
 
-#: arm-tdep.c:11674 arm-tdep.c:12144 rs6000-tdep.c:5678
+#: arm-tdep.c:11610 arm-tdep.c:12080 rs6000-tdep.c:5672
 msgid "no syscall record support\n"
 msgstr ""
 
-#: arm-tdep.c:13055 arm-tdep.c:13270
+#: arm-tdep.c:12991 arm-tdep.c:13206
 #, possible-c-format
 msgid "Process record: error reading memory at addr %s len = %d.\n"
 msgstr ""
@@ -2022,7 +2048,7 @@ msgstr ""
 msgid "auto-load: Resolved directory \"%s\" as \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:249
+#: auto-load.c:245
 #, possible-c-format
 msgid "auto-load: And canonicalized as \"%s\".\n"
 msgstr ""
@@ -2066,24 +2092,24 @@ msgstr ""
 msgid "auto-load: Matched - file \"%s\" to pattern \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:444
+#: auto-load.c:443
 #, possible-c-format
 msgid "auto-load: Resolved file \"%s\" as \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:459
+#: auto-load.c:458
 #, possible-c-format
 msgid "auto-load: File \"%s\" matches directory \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:507
+#: auto-load.c:497
 #, possible-c-format
 msgid ""
 "File \"%s\" auto-loading has been declined by your `auto-load safe-path' set "
 "to \"%s\"."
 msgstr ""
 
-#: auto-load.c:521
+#: auto-load.c:509
 #, possible-c-format
 msgid ""
 "To enable execution of this file add\n"
@@ -2098,88 +2124,88 @@ msgid ""
 "\tinfo \"(gdb)Auto-loading safe path\"\n"
 msgstr ""
 
-#: auto-load.c:803 auto-load.c:834
+#: auto-load.c:790 auto-load.c:821
 #, possible-c-format
 msgid "auto-load: Attempted file \"%s\" %s.\n"
 msgstr ""
 
-#: auto-load.c:804 auto-load.c:837
+#: auto-load.c:791 auto-load.c:824
 msgid "exists"
 msgstr ""
 
-#: auto-load.c:804 auto-load.c:837
+#: auto-load.c:791 auto-load.c:824
 msgid "does not exist"
 msgstr ""
 
-#: auto-load.c:819
+#: auto-load.c:806
 #, possible-c-format
 msgid "auto-load: Searching 'set auto-load scripts-directory' path \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:852
+#: auto-load.c:837
 #, possible-c-format
 msgid "auto-load: Loading %s script \"%s\" by extension for objfile \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:913
+#: auto-load.c:898
 #, possible-c-format
 msgid "auto-load: Stripped .exe suffix, retrying with \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:969 auto-load.c:1074
+#: auto-load.c:945 auto-load.c:1051
 #, possible-c-format
 msgid ""
 "auto-load: Loading %s script \"%s\" from section \"%s\" of objfile \"%s\".\n"
 msgstr ""
 
 #. We don't throw an error, the program is still debuggable.
-#: auto-load.c:1044
+#: auto-load.c:1021
 #, possible-c-format
 msgid ""
 "Missing/bad script name in entry at offset %u in section %s\n"
 "of file %s."
 msgstr ""
 
-#: auto-load.c:1128
+#: auto-load.c:1105
 #, possible-c-format
 msgid "Invalid entry in %s section"
 msgstr ""
 
-#: auto-load.c:1139
+#: auto-load.c:1116
 #, possible-c-format
 msgid "Non-nul-terminated entry in %s at offset %u"
 msgstr ""
 
-#: auto-load.c:1151
+#: auto-load.c:1128
 #, possible-c-format
 msgid "Empty entry in %s at offset %u"
 msgstr ""
 
-#: auto-load.c:1182
+#: auto-load.c:1159
 #, possible-c-format
 msgid "Couldn't read %s section of %s"
 msgstr ""
 
-#: auto-load.c:1346 mi/mi-cmd-file.c:141 solib.c:978 solib.c:1058
+#: auto-load.c:1309 mi/mi-cmd-file.c:140 solib.c:983 solib.c:1062
 #, possible-c-format
 msgid "Invalid regexp: %s"
 msgstr ""
 
-#: auto-load.c:1425
+#: auto-load.c:1388
 msgid "Local .gdbinit file was not found.\n"
 msgstr ""
 
-#: auto-load.c:1427
+#: auto-load.c:1390
 #, possible-c-format
 msgid "Local .gdbinit file \"%s\" has been loaded.\n"
 msgstr ""
 
-#: auto-load.c:1430
+#: auto-load.c:1393
 #, possible-c-format
 msgid "Local .gdbinit file \"%s\" has not been loaded.\n"
 msgstr ""
 
-#: auto-load.c:1446
+#: auto-load.c:1409
 #, possible-c-format
 msgid ""
 "Unsupported auto-load script at offset %u in section %s\n"
@@ -2187,7 +2213,7 @@ msgid ""
 "Use `info auto-load %s-scripts [REGEXP]' to list them."
 msgstr ""
 
-#: auto-load.c:1468
+#: auto-load.c:1431
 #, possible-c-format
 msgid ""
 "Missing auto-load script at offset %u in section %s\n"
@@ -2195,65 +2221,65 @@ msgid ""
 "Use `info auto-load %s-scripts [REGEXP]' to list them."
 msgstr ""
 
-#: auto-load.c:1497
+#: auto-load.c:1460
 msgid ""
 "Valid is only global 'set auto-load no'; otherwise check the auto-load sub-"
 "commands."
 msgstr ""
 
-#: auto-load.c:1516
+#: auto-load.c:1479
 msgid ""
 "Auto-loading specific settings.\n"
 "Configure various auto-load-specific variables such as\n"
 "automatic loading of Python scripts."
 msgstr ""
 
-#: auto-load.c:1543
+#: auto-load.c:1506
 msgid ""
 "Show auto-loading specific settings.\n"
 "Show configuration of various auto-load-specific variables such as\n"
 "automatic loading of Python scripts."
 msgstr ""
 
-#: auto-load.c:1594
+#: auto-load.c:1549
 msgid ""
 "Print current status of auto-loaded files.\n"
 "Print whether various files like Python scripts or .gdbinit files have been\n"
 "found and/or loaded."
 msgstr ""
 
-#: auto-load.c:1621
+#: auto-load.c:1574
 msgid "Enable or disable auto-loading of canned sequences of commands scripts."
 msgstr ""
 
-#: auto-load.c:1622
+#: auto-load.c:1575
 msgid ""
 "Show whether auto-loading of canned sequences of commands scripts is enabled."
 msgstr ""
 
-#: auto-load.c:1624
+#: auto-load.c:1577
 msgid ""
 "If enabled, canned sequences of commands are loaded when the debugger reads\n"
 "an executable or shared library.\n"
 "This options has security implications for untrusted inferiors."
 msgstr ""
 
-#: auto-load.c:1633
+#: auto-load.c:1586
 msgid ""
 "Print the list of automatically loaded sequences of commands.\n"
 "Usage: info auto-load gdb-scripts [REGEXP]"
 msgstr ""
 
-#: auto-load.c:1638
+#: auto-load.c:1591
 msgid "Enable or disable auto-loading of .gdbinit script in current directory."
 msgstr ""
 
-#: auto-load.c:1639
+#: auto-load.c:1592
 msgid ""
 "Show whether auto-loading .gdbinit script in current directory is enabled."
 msgstr ""
 
-#: auto-load.c:1641
+#: auto-load.c:1594
 msgid ""
 "If enabled, canned sequences of commands are loaded when debugger starts\n"
 "from .gdbinit file in current directory.  Such files are deprecated,\n"
@@ -2261,28 +2287,28 @@ msgid ""
 "This options has security implications for untrusted inferiors."
 msgstr ""
 
-#: auto-load.c:1651
+#: auto-load.c:1604
 msgid ""
 "Print whether current directory .gdbinit file has been loaded.\n"
 "Usage: info auto-load local-gdbinit"
 msgstr ""
 
-#: auto-load.c:1659
+#: auto-load.c:1612
 #, possible-c-format
 msgid "GDB scripts:    OBJFILE%s\n"
 msgstr ""
 
-#: auto-load.c:1666
+#: auto-load.c:1619
 #, possible-c-format
 msgid "Python scripts: OBJFILE%s\n"
 msgstr ""
 
-#: auto-load.c:1674
+#: auto-load.c:1627
 #, possible-c-format
 msgid "Guile scripts:  OBJFILE%s\n"
 msgstr ""
 
-#: auto-load.c:1679
+#: auto-load.c:1632
 #, possible-c-format
 msgid ""
 "Automatically loaded scripts are located in one of the directories listed\n"
@@ -2297,23 +2323,23 @@ msgid ""
 "option."
 msgstr ""
 
-#: auto-load.c:1696
+#: auto-load.c:1649
 msgid "Set the list of directories from which to load auto-loaded scripts."
 msgstr ""
 
-#: auto-load.c:1697
+#: auto-load.c:1650
 msgid "Show the list of directories from which to load auto-loaded scripts."
 msgstr ""
 
-#: auto-load.c:1711
+#: auto-load.c:1664
 msgid "Set the list of files and directories that are safe for auto-loading."
 msgstr ""
 
-#: auto-load.c:1712
+#: auto-load.c:1665
 msgid "Show the list of files and directories that are safe for auto-loading."
 msgstr ""
 
-#: auto-load.c:1713
+#: auto-load.c:1666
 msgid ""
 "Various files loaded automatically for the 'set auto-load ...' options must\n"
 "be located in one of the directories listed by this option.  Warning will "
@@ -2329,7 +2355,7 @@ msgid ""
 "This options has security implications for untrusted inferiors."
 msgstr ""
 
-#: auto-load.c:1732
+#: auto-load.c:1685
 msgid ""
 "Add entries to the list of directories from which it is safe to auto-load "
 "files.\n"
@@ -2338,7 +2364,7 @@ msgid ""
 "access the current full list setting."
 msgstr ""
 
-#: auto-load.c:1741
+#: auto-load.c:1694
 msgid ""
 "Add entries to the list of directories from which to load auto-loaded "
 "scripts.\n"
@@ -2346,15 +2372,15 @@ msgid ""
 "'show auto-load scripts-directory' to access the current full list setting."
 msgstr ""
 
-#: auto-load.c:1749
+#: auto-load.c:1702
 msgid "Set auto-load verifications debugging."
 msgstr ""
 
-#: auto-load.c:1750
+#: auto-load.c:1703
 msgid "Show auto-load verifications debugging."
 msgstr ""
 
-#: auto-load.c:1751
+#: auto-load.c:1704
 msgid ""
 "When non-zero, debugging output for files of 'set auto-load ...'\n"
 "is displayed."
@@ -2428,7 +2454,7 @@ msgstr ""
 msgid "String identifying platform"
 msgstr ""
 
-#: auxv.c:473 auxv.c:505
+#: auxv.c:473 auxv.c:505 fbsd-tdep.c:396
 msgid "Machine-dependent CPU capability hints"
 msgstr ""
 
@@ -2556,17 +2582,17 @@ msgstr ""
 msgid "Auxiliary vector is empty."
 msgstr ""
 
-#: auxv.c:577
+#: auxv.c:574
 msgid ""
 "Display the inferior's auxiliary vector.\n"
 "This is information provided by the operating system at program startup."
 msgstr ""
 
-#: avr-tdep.c:401 avr-tdep.c:419 i386-tdep.c:478 i386-tdep.c:3249
-#: i386-tdep.c:3462 i386-tdep.c:3623 i386-tdep.c:3705 s390-linux-tdep.c:364
-#: s390-linux-tdep.c:384 s390-linux-tdep.c:458 s390-linux-tdep.c:513
-#: s390-linux-tdep.c:595 s390-linux-tdep.c:641 sparc64-tdep.c:395
-#: spu-tdep.c:179 spu-tdep.c:249 spu-tdep.c:310 spu-tdep.c:332 spu-tdep.c:354
+#: avr-tdep.c:401 avr-tdep.c:419 i386-tdep.c:473 i386-tdep.c:3244
+#: i386-tdep.c:3457 i386-tdep.c:3618 i386-tdep.c:3700 s390-linux-tdep.c:366
+#: s390-linux-tdep.c:386 s390-linux-tdep.c:460 s390-linux-tdep.c:515
+#: s390-linux-tdep.c:597 s390-linux-tdep.c:643 sparc64-tdep.c:897
+#: spu-tdep.c:178 spu-tdep.c:248 spu-tdep.c:309 spu-tdep.c:331 spu-tdep.c:353
 msgid "invalid regnum"
 msgstr ""
 
@@ -2590,258 +2616,258 @@ msgid ""
 "\n"
 msgstr ""
 
-#: avr-tdep.c:1634
+#: avr-tdep.c:1632
 msgid "query remote avr target for io space register values"
 msgstr ""
 
-#: ax-gdb.c:524
+#: ax-gdb.c:512
 msgid "gen_fetch: strange size"
 msgstr ""
 
 #. Our caller requested us to dereference a pointer from an unsupported
 #. type.  Error out and give callers a chance to handle the failure
 #. gracefully.
-#: ax-gdb.c:534
+#: ax-gdb.c:522
 #, possible-c-format
 msgid "gen_fetch: Unsupported type code `%s'."
 msgstr ""
 
-#: ax-gdb.c:658
+#: ax-gdb.c:645
 msgid "gen_var_ref: LOC_CONST_BYTES symbols are not supported"
 msgstr ""
 
-#: ax-gdb.c:690
+#: ax-gdb.c:677
 #, possible-c-format
 msgid "Cannot compute value of typedef `%s'."
 msgstr ""
 
-#: ax-gdb.c:722
+#: ax-gdb.c:711
 #, possible-c-format
 msgid "Couldn't resolve symbol `%s'."
 msgstr ""
 
-#: ax-gdb.c:731 findvar.c:357 findvar.c:739 printcmd.c:1539 tracepoint.c:2726
+#: ax-gdb.c:720 findvar.c:361 findvar.c:743 printcmd.c:1493 tracepoint.c:2643
 msgid "LOC_COMPUTED variable missing a method"
 msgstr ""
 
-#: ax-gdb.c:740
+#: ax-gdb.c:729
 #, possible-c-format
 msgid "Cannot find value of botched symbol `%s'."
 msgstr ""
 
-#: ax-gdb.c:776
+#: ax-gdb.c:782
 msgid "Value not scalar: cannot be an rvalue."
 msgstr ""
 
-#: ax-gdb.c:1015
+#: ax-gdb.c:1019
 msgid "Invalid type cast: intended type must be scalar."
 msgstr ""
 
-#: ax-gdb.c:1038
+#: ax-gdb.c:1042
 msgid "Casts to requested type are not yet implemented."
 msgstr ""
 
-#: ax-gdb.c:1106
+#: ax-gdb.c:1110
 msgid ""
 "First argument of `-' is a pointer, but second argument is neither\n"
 "an integer nor a pointer of the same type."
 msgstr ""
 
-#: ax-gdb.c:1159
+#: ax-gdb.c:1163
 #, possible-c-format
 msgid "Invalid combination of types in %s."
 msgstr ""
 
-#: ax-gdb.c:1176
+#: ax-gdb.c:1180
 msgid "Invalid type of operand to `!'."
 msgstr ""
 
-#: ax-gdb.c:1187
+#: ax-gdb.c:1191
 msgid "Invalid type of operand to `~'."
 msgstr ""
 
-#: ax-gdb.c:1205
+#: ax-gdb.c:1209
 msgid "gen_deref: expected a pointer"
 msgstr ""
 
-#: ax-gdb.c:1214 valops.c:918
+#: ax-gdb.c:1218 valops.c:907
 msgid "Attempt to dereference a generic pointer."
 msgstr ""
 
-#: ax-gdb.c:1235
+#: ax-gdb.c:1239
 msgid "Operand of `&' is an rvalue, which has no address."
 msgstr ""
 
-#: ax-gdb.c:1238
+#: ax-gdb.c:1242
 msgid "Operand of `&' is in a register, and has no address."
 msgstr ""
 
-#: ax-gdb.c:1310
+#: ax-gdb.c:1313
 msgid "gen_bitfield_ref: bitfield too wide"
 msgstr ""
 
-#: ax-gdb.c:1462 ax-gdb.c:1604
+#: ax-gdb.c:1463 ax-gdb.c:1601
 #, possible-c-format
 msgid "static field `%s' has been optimized out, cannot use"
 msgstr ""
 
-#: ax-gdb.c:1474
+#: ax-gdb.c:1475
 msgid "find_field: anonymous unions not supported"
 msgstr ""
 
-#: ax-gdb.c:1522
+#: ax-gdb.c:1523
 #, possible-c-format
 msgid "The left operand of `%s' is not a %s."
 msgstr ""
 
-#: ax-gdb.c:1528
+#: ax-gdb.c:1529
 msgid "Structure does not live in memory."
 msgstr ""
 
-#: ax-gdb.c:1534
+#: ax-gdb.c:1535
 #, possible-c-format
 msgid "Couldn't find member named `%s' in struct/union/class `%s'"
 msgstr ""
 
-#: ax-gdb.c:1592
+#: ax-gdb.c:1589
 msgid "non-aggregate type to gen_struct_elt_for_reference"
 msgstr ""
 
-#: ax-gdb.c:1610 valops.c:3351
+#: ax-gdb.c:1607 valops.c:3337
 msgid "pointers to bitfield members not allowed"
 msgstr ""
 
 #. FIXME we need a way to do "want_address" equivalent
-#: ax-gdb.c:1614 valops.c:3384
+#: ax-gdb.c:1611 valops.c:3370
 #, possible-c-format
 msgid "Cannot reference non-static field \"%s\""
 msgstr ""
 
-#: ax-gdb.c:1635 eval.c:1477 valops.c:3560
+#: ax-gdb.c:1631 eval.c:1000 valops.c:3551
 #, possible-c-format
 msgid "No symbol \"%s\" in namespace \"%s\"."
 msgstr ""
 
-#: ax-gdb.c:1665 ax-gdb.c:1984 ax-gdb.c:2208
+#: ax-gdb.c:1660 ax-gdb.c:1786 ax-gdb.c:2010 ax-gdb.c:2243
 #, possible-c-format
 msgid "`%s' has been optimized out, cannot use"
 msgstr ""
 
-#: ax-gdb.c:1690
+#: ax-gdb.c:1682
 msgid "non-aggregate type in gen_aggregate_elt_ref"
 msgstr ""
 
-#: ax-gdb.c:1717
+#: ax-gdb.c:1709
 msgid "Left operand of `@' must be an object in memory."
 msgstr ""
 
-#: ax-gdb.c:1725
+#: ax-gdb.c:1717
 msgid "Right operand of `@' must be a constant, in agent expressions."
 msgstr ""
 
-#: ax-gdb.c:1728
+#: ax-gdb.c:1720
 msgid "Right operand of `@' must be an integer."
 msgstr ""
 
-#: ax-gdb.c:1731
+#: ax-gdb.c:1723
 msgid "Right operand of `@' must be positive."
 msgstr ""
 
-#: ax-gdb.c:1910 ax-gdb.c:1946
+#: ax-gdb.c:1936 ax-gdb.c:1972
 #, possible-c-format
 msgid "$%s is not a trace state variable, may not assign to it"
 msgstr ""
 
-#: ax-gdb.c:1914 ax-gdb.c:1950
+#: ax-gdb.c:1940 ax-gdb.c:1976
 msgid "May only assign to trace state variables"
 msgstr ""
 
-#: ax-gdb.c:1999 tracepoint.c:1433
+#: ax-gdb.c:2037 tracepoint.c:1362
 #, possible-c-format
 msgid "Register $%s not available"
 msgstr ""
 
-#: ax-gdb.c:2003
+#: ax-gdb.c:2041
 #, possible-c-format
 msgid "'%s' is a user-register; GDB cannot yet trace user-register contents."
 msgstr ""
 
-#: ax-gdb.c:2030
+#: ax-gdb.c:2068
 #, possible-c-format
 msgid ""
 "$%s is not a trace state variable; GDB agent expressions cannot use "
 "convenience variables."
 msgstr ""
 
-#: ax-gdb.c:2151
+#: ax-gdb.c:2186
 msgid "Argument of unary `*' is not a pointer."
 msgstr ""
 
-#: ax-gdb.c:2187
+#: ax-gdb.c:2222
 msgid "gen_expr: unhandled struct case"
 msgstr ""
 
-#: ax-gdb.c:2203
+#: ax-gdb.c:2238
 #, possible-c-format
 msgid "no `%s' found"
 msgstr ""
 
-#: ax-gdb.c:2225 eval.c:715 eval.c:2903
+#: ax-gdb.c:2259 eval.c:1272 eval.c:3011
 #, possible-c-format
 msgid "There is no field named %s"
 msgstr ""
 
-#: ax-gdb.c:2233
+#: ax-gdb.c:2267
 msgid "Attempt to use a type name as an expression."
 msgstr ""
 
-#: ax-gdb.c:2236
+#: ax-gdb.c:2270
 #, possible-c-format
 msgid "Unsupported operator %s (%d) in expression."
 msgstr ""
 
-#: ax-gdb.c:2312
+#: ax-gdb.c:2346
 msgid "cannot subscript requested type: cannot call user defined functions"
 msgstr ""
 
-#: ax-gdb.c:2325 eval.c:2127 eval.c:2173 eval.c:2197 m2-lang.c:254
+#: ax-gdb.c:2359 eval.c:2265 eval.c:2306 eval.c:2330 m2-lang.c:253
 #, possible-c-format
 msgid "cannot subscript something of type `%s'"
 msgstr ""
 
-#: ax-gdb.c:2328 eval.c:2130 eval.c:2200 m2-lang.c:257
+#: ax-gdb.c:2362 eval.c:2268 eval.c:2333 m2-lang.c:256
 msgid "cannot subscript requested type"
 msgstr ""
 
-#: ax-gdb.c:2333 valarith.c:945
+#: ax-gdb.c:2367 valarith.c:927
 msgid "Argument to arithmetic operation not a number or boolean."
 msgstr ""
 
-#: ax-gdb.c:2388
+#: ax-gdb.c:2422
 msgid "gen_expr: op case sets don't match"
 msgstr ""
 
-#: ax-gdb.c:2596 ax-gdb.c:2668
+#: ax-gdb.c:2629 ax-gdb.c:2691
 msgid "GDB can't do agent expression translation with overlays."
 msgstr ""
 
-#: ax-gdb.c:2599 ax-gdb.c:2671
+#: ax-gdb.c:2632 ax-gdb.c:2694
 msgid "expression to translate"
 msgstr ""
 
-#: ax-gdb.c:2678
+#: ax-gdb.c:2699
 msgid "Must start with a format string."
 msgstr ""
 
-#: ax-gdb.c:2689 breakpoint.c:2419 printcmd.c:2519
+#: ax-gdb.c:2708 breakpoint.c:2252 printcmd.c:2445
 msgid "Bad format string, non-terminated '\"'."
 msgstr ""
 
-#: ax-gdb.c:2694 breakpoint.c:2424 printcmd.c:2524
+#: ax-gdb.c:2713 breakpoint.c:2257 printcmd.c:2450
 msgid "Invalid argument syntax"
 msgstr ""
 
-#: ax-gdb.c:2738
+#: ax-gdb.c:2753
 msgid ""
 "Translate an expression into remote agent bytecode for tracing.\n"
 "Usage: maint agent [-at location,] EXPRESSION\n"
@@ -2849,7 +2875,7 @@ msgid ""
 "If not, generate remote agent bytecode for current frame pc address."
 msgstr ""
 
-#: ax-gdb.c:2746
+#: ax-gdb.c:2761
 msgid ""
 "Translate an expression into remote agent bytecode for evaluation.\n"
 "Usage: maint agent-eval [-at location,] EXPRESSION\n"
@@ -2857,7 +2883,7 @@ msgid ""
 "If not, generate remote agent bytecode for current frame pc address."
 msgstr ""
 
-#: ax-gdb.c:2754
+#: ax-gdb.c:2769
 msgid ""
 "Translate an expression into remote agent bytecode for evaluation and "
 "display the bytecodes."
@@ -2931,8 +2957,8 @@ msgstr ""
 msgid " %02x"
 msgstr ""
 
-#: ax-general.c:371 darwin-nat.c:571 darwin-nat-info.c:293
-#: darwin-nat-info.c:586 darwin-nat-info.c:793
+#: ax-general.c:371 darwin-nat.c:556 darwin-nat-info.c:291
+#: darwin-nat-info.c:584 darwin-nat-info.c:789
 msgid "\n"
 msgstr ""
 
@@ -3074,8 +3100,8 @@ msgid ""
 "function"
 msgstr ""
 
-#: bfin-tdep.c:699 bfin-tdep.c:719 xtensa-tdep.c:337 xtensa-tdep.c:637
-#: xtensa-tdep.c:731
+#: bfin-tdep.c:699 bfin-tdep.c:719 xtensa-tdep.c:339 xtensa-tdep.c:636
+#: xtensa-tdep.c:726
 #, possible-c-format
 msgid "invalid register number %d"
 msgstr ""
@@ -3085,41 +3111,41 @@ msgstr ""
 msgid "DW_OP_entry_value resolving cannot find DW_TAG_call_site %s in %s"
 msgstr ""
 
-#: break-catch-sig.c:234
+#: break-catch-sig.c:195
 #, possible-c-format
 msgid "Catchpoint %d (signal %s), "
 msgstr ""
 
-#: break-catch-sig.c:306
+#: break-catch-sig.c:262
 #, possible-c-format
 msgid "Catchpoint %d (signals"
 msgstr ""
 
-#: break-catch-sig.c:308
+#: break-catch-sig.c:264
 #, possible-c-format
 msgid "Catchpoint %d (signal"
 msgstr ""
 
-#: break-catch-sig.c:321
+#: break-catch-sig.c:275
 #, possible-c-format
 msgid "Catchpoint %d (any signal)"
 msgstr ""
 
-#: break-catch-sig.c:323
+#: break-catch-sig.c:277
 #, possible-c-format
 msgid "Catchpoint %d (standard signals)"
 msgstr ""
 
-#: break-catch-sig.c:411
+#: break-catch-sig.c:355
 msgid "'all' cannot be caught with other signals"
 msgstr ""
 
-#: break-catch-sig.c:429
+#: break-catch-sig.c:371
 #, possible-c-format
 msgid "Unknown signal name '%s'."
 msgstr ""
 
-#: break-catch-sig.c:496
+#: break-catch-sig.c:433
 msgid ""
 "Catch signals by their names and/or numbers.\n"
 "Usage: catch signal [[NAME|NUMBER] [NAME|NUMBER]...|all]\n"
@@ -3130,22 +3156,22 @@ msgid ""
 "(if your system supports that), or signal numbers."
 msgstr ""
 
-#: break-catch-syscall.c:363
+#: break-catch-syscall.c:306
 #, possible-c-format
 msgid "Catchpoint %d (syscalls"
 msgstr ""
 
-#: break-catch-syscall.c:365
+#: break-catch-syscall.c:308
 #, possible-c-format
 msgid "Catchpoint %d (syscall"
 msgstr ""
 
-#: break-catch-syscall.c:382
+#: break-catch-syscall.c:323
 #, possible-c-format
 msgid "Catchpoint %d (any syscall)"
 msgstr ""
 
-#: break-catch-syscall.c:488
+#: break-catch-syscall.c:421
 #, possible-c-format
 msgid "Unknown syscall group '%s'."
 msgstr ""
@@ -3153,16 +3179,16 @@ msgstr ""
 #. Here we have to issue an error instead of a warning,
 #. because GDB cannot do anything useful if there's no
 #. syscall number to be caught.
-#: break-catch-syscall.c:509
+#: break-catch-syscall.c:442
 #, possible-c-format
 msgid "Unknown syscall name '%s'."
 msgstr ""
 
-#: break-catch-syscall.c:533
+#: break-catch-syscall.c:465
 msgid "The feature 'catch syscall' is not supported on this architecture yet."
 msgstr ""
 
-#: break-catch-syscall.c:726
+#: break-catch-syscall.c:640
 msgid ""
 "Catch system calls by their names, groups and/or numbers.\n"
 "Arguments say which system calls to catch.  If no arguments are given,\n"
@@ -3175,585 +3201,579 @@ msgstr ""
 #. block supposedly visible in this function.  Let us
 #. first make sure that it is visible and if so, let
 #. us display its contents.
-#: break-catch-throw.c:107 f-valprint.c:461 probe.c:967
+#: break-catch-throw.c:103 f-valprint.c:444 probe.c:812
 msgid "No frame selected"
 msgstr ""
 
-#: break-catch-throw.c:118
+#: break-catch-throw.c:114
 msgid "not stopped at a C++ exception catchpoint"
 msgstr ""
 
-#: break-catch-throw.c:122
+#: break-catch-throw.c:118
 msgid "C++ exception catchpoint has too few arguments"
 msgstr ""
 
-#: break-catch-throw.c:129
+#: break-catch-throw.c:125
 msgid "error computing probe argument at c++ exception catchpoint"
 msgstr ""
 
-#: break-catch-throw.c:332
+#: break-catch-throw.c:311
 msgid "\tmatching: "
 msgstr ""
 
-#: break-catch-throw.c:349
+#: break-catch-throw.c:328
 msgid " (throw)"
 msgstr ""
 
-#: break-catch-throw.c:350
+#: break-catch-throw.c:329
 msgid " (catch)"
 msgstr ""
 
-#: break-catch-throw.c:351
+#: break-catch-throw.c:330
 msgid " (rethrow)"
 msgstr ""
 
-#: break-catch-throw.c:394
+#: break-catch-throw.c:370
 msgid "invalid type-matching regexp"
 msgstr ""
 
-#: break-catch-throw.c:481
+#: break-catch-throw.c:452
 msgid "Unsupported or unknown exception event; cannot catch it"
 msgstr ""
 
 #. Add catch and tcatch sub-commands.
-#: break-catch-throw.c:579
+#: break-catch-throw.c:547
 msgid "Catch an exception, when caught."
 msgstr ""
 
-#: break-catch-throw.c:585
+#: break-catch-throw.c:553
 msgid "Catch an exception, when thrown."
 msgstr ""
 
-#: break-catch-throw.c:591
+#: break-catch-throw.c:559
 msgid "Catch an exception, when rethrown."
 msgstr ""
 
-#: breakpoint.c:407
+#: breakpoint.c:335
 #, possible-c-format
 msgid "Debugger's willingness to use watchpoint hardware is %s.\n"
 msgstr ""
 
-#: breakpoint.c:423
+#: breakpoint.c:351
 #, possible-c-format
 msgid "Debugger's behavior regarding pending breakpoints is %s.\n"
 msgstr ""
 
-#: breakpoint.c:439
+#: breakpoint.c:367
 #, possible-c-format
 msgid "Automatic usage of hardware breakpoints is %s.\n"
 msgstr ""
 
-#: breakpoint.c:456
+#: breakpoint.c:384
 #, possible-c-format
 msgid "Always inserted breakpoint mode is %s.\n"
 msgstr ""
 
-#: breakpoint.c:856
+#: breakpoint.c:722
 msgid ""
 "Target does not support breakpoint condition evaluation.\n"
 "Using host evaluation mode instead."
 msgstr ""
 
-#: breakpoint.c:912
+#: breakpoint.c:778
 #, possible-c-format
 msgid "Breakpoint condition evaluation mode is %s (currently %s).\n"
 msgstr ""
 
-#: breakpoint.c:917
+#: breakpoint.c:783
 #, possible-c-format
 msgid "Breakpoint condition evaluation mode is %s.\n"
 msgstr ""
 
-#: breakpoint.c:1002
+#: breakpoint.c:867
 #, possible-c-format
 msgid "Breakpoint %d now unconditional.\n"
 msgstr ""
 
-#: breakpoint.c:1099
+#: breakpoint.c:967
 msgid "breakpoint number"
 msgstr ""
 
-#: breakpoint.c:1104
+#: breakpoint.c:972
 #, possible-c-format
 msgid "Bad breakpoint argument: '%s'"
 msgstr ""
 
-#: breakpoint.c:1117 guile/scm-breakpoint.c:950 python/py-breakpoint.c:1032
+#: breakpoint.c:985 guile/scm-breakpoint.c:952 python/py-breakpoint.c:1145
 #, possible-c-format
 msgid ""
 "Only one stop condition allowed.  There is currently a %s stop condition "
 "defined for this breakpoint."
 msgstr ""
 
-#: breakpoint.c:1129 breakpoint.c:14642
+#: breakpoint.c:997 breakpoint.c:14055
 #, possible-c-format
 msgid "No breakpoint number %d."
 msgstr ""
 
-#: breakpoint.c:1146
+#: breakpoint.c:1014
 msgid "The 'while-stepping' command can only be used for tracepoints"
 msgstr ""
 
-#: breakpoint.c:1156
+#: breakpoint.c:1024
 msgid "The 'collect' command can only be used for tracepoints"
 msgstr ""
 
-#: breakpoint.c:1159
+#: breakpoint.c:1027
 msgid "The 'teval' command can only be used for tracepoints"
 msgstr ""
 
-#: breakpoint.c:1213
+#: breakpoint.c:1110
 msgid "The 'while-stepping' command cannot be used for fast tracepoint"
 msgstr ""
 
-#: breakpoint.c:1216
+#: breakpoint.c:1113
 msgid "The 'while-stepping' command cannot be used for static tracepoint"
 msgstr ""
 
-#: breakpoint.c:1220
+#: breakpoint.c:1117
 msgid "The 'while-stepping' command can be used only once"
 msgstr ""
 
-#: breakpoint.c:1237
+#: breakpoint.c:1134
 msgid "The 'while-stepping' command cannot be nested"
 msgstr ""
 
-#: breakpoint.c:1369
+#: breakpoint.c:1254
 #, possible-c-format
 msgid "Type commands for breakpoint(s) %s, one per line."
 msgstr ""
 
-#: breakpoint.c:1431
-msgid "No breakpoints specified."
-msgstr ""
-
-#: breakpoint.c:1646
+#: breakpoint.c:1487
 #, possible-c-format
 msgid "reading through apparently deleted breakpoint #%d?"
 msgstr ""
 
-#: breakpoint.c:1935 breakpoint.c:2116
+#: breakpoint.c:1774 breakpoint.c:1955
 msgid ""
 "Can't set read/access watchpoint when hardware watchpoints are disabled."
 msgstr ""
 
-#: breakpoint.c:2095
+#: breakpoint.c:1934
 msgid "Target does not support this type of hardware watchpoint."
 msgstr ""
 
-#: breakpoint.c:2098
+#: breakpoint.c:1937
 msgid "There are not enough available hardware resources for this watchpoint."
 msgstr ""
 
-#: breakpoint.c:2119
+#: breakpoint.c:1958
 msgid "Expression cannot be implemented with read/access watchpoint."
 msgstr ""
 
-#: breakpoint.c:2147
+#: breakpoint.c:1986
 #, possible-c-format
 msgid ""
 "Watchpoint %d deleted because the program has left the block\n"
 "in which its expression is valid.\n"
 msgstr ""
 
-#: breakpoint.c:2408
+#: breakpoint.c:2243
 msgid "No format string following the location"
 msgstr ""
 
-#: breakpoint.c:2695
+#: breakpoint.c:2522
 msgid ""
 "Note: automatically using hardware breakpoints for read-only addresses.\n"
 msgstr ""
 
-#: breakpoint.c:2706
+#: breakpoint.c:2533
 #, possible-c-format
 msgid ""
 "Cannot insert breakpoint %d.\n"
 "Cannot set software breakpoint at read-only address %s\n"
 msgstr ""
 
-#: breakpoint.c:2747
+#: breakpoint.c:2573
 #, possible-c-format
 msgid "hardware breakpoint %d not supported in overlay!"
 msgstr ""
 
-#: breakpoint.c:2952
+#: breakpoint.c:2779
 #, possible-c-format
 msgid ""
 "Error inserting catchpoint %d: Your system does not support this type\n"
 "of catchpoint."
 msgstr ""
 
-#: breakpoint.c:2956
+#: breakpoint.c:2783
 #, possible-c-format
 msgid "Error inserting catchpoint %d."
 msgstr ""
 
-#: breakpoint.c:3242
+#: breakpoint.c:3065
 #, possible-c-format
 msgid ""
 "Thread-specific breakpoint %d deleted - thread %s no longer in the thread "
 "list.\n"
 msgstr ""
 
-#: breakpoint.c:3900
+#: breakpoint.c:3653
 msgid "Cannot detach breakpoints of inferior_ptid"
 msgstr ""
 
-#: breakpoint.c:4058
+#: breakpoint.c:3810
 #, possible-c-format
 msgid "Could not remove hardware watchpoint %d."
 msgstr ""
 
-#: breakpoint.c:4780
+#: breakpoint.c:4519
 msgid "<unreadable>"
 msgstr ""
 
-#: breakpoint.c:4858
+#: breakpoint.c:4597
 msgid "print_bp_stop_message: unrecognized enum value"
 msgstr ""
 
-#: breakpoint.c:4876
+#: breakpoint.c:4615
 msgid "Stopped due to shared library event:\n"
 msgstr ""
 
-#: breakpoint.c:4878
+#: breakpoint.c:4617
 msgid "Stopped due to shared library event (no libraries added or removed)\n"
 msgstr ""
 
-#: breakpoint.c:4892
+#: breakpoint.c:4630
 msgid "  Inferior unloaded "
 msgstr ""
 
-#: breakpoint.c:4915
+#: breakpoint.c:4649
 msgid "  Inferior loaded "
 msgstr ""
 
-#: breakpoint.c:5428
+#: breakpoint.c:5071
 #, possible-c-format
 msgid "Watchpoint %d deleted.\n"
 msgstr ""
 
-#: breakpoint.c:5562
+#: breakpoint.c:5310
 msgid "Watchpoint condition cannot be tested in the current scope"
 msgstr ""
 
-#: breakpoint.c:5962
+#: breakpoint.c:5708
 msgid "bpstat_what: tracepoint encountered"
 msgstr ""
 
-#: breakpoint.c:5983
+#: breakpoint.c:5729
 #, possible-c-format
 msgid "bpstat_what: unhandled bptype %d"
 msgstr ""
 
-#: breakpoint.c:6259
+#: breakpoint.c:6007
 #, possible-c-format
 msgid "bptypes table does not describe type #%d."
 msgstr ""
 
-#: breakpoint.c:6392
+#: breakpoint.c:6135
 msgid "print_one_breakpoint: bp_none encountered\n"
 msgstr ""
 
-#: breakpoint.c:7042
+#: breakpoint.c:6741
 msgid "Note: breakpoint "
 msgstr ""
 
 #. if (others == ???)
-#: breakpoint.c:7044
+#: breakpoint.c:6743
 msgid "Note: breakpoints "
 msgstr ""
 
-#: breakpoint.c:7062
+#: breakpoint.c:6761
 msgid "also set at pc "
 msgstr ""
 
-#: breakpoint.c:7261
+#: breakpoint.c:6961
 #, possible-c-format
 msgid "Breakpoint %d address previously adjusted from %s to %s."
 msgstr ""
 
-#: breakpoint.c:7264
+#: breakpoint.c:6964
 #, possible-c-format
 msgid "Breakpoint address adjusted from %s to %s."
 msgstr ""
 
-#: breakpoint.c:7379
+#: breakpoint.c:7077
 msgid "unknown breakpoint type"
 msgstr ""
 
-#: breakpoint.c:7965
+#: breakpoint.c:7652
 #, possible-c-format
 msgid "Temporarily disabling breakpoints for unloaded shared library \"%s\""
 msgstr ""
 
-#: breakpoint.c:8165
+#: breakpoint.c:7847
 #, possible-c-format
 msgid "Catchpoint %d (fork)"
 msgstr ""
 
-#: breakpoint.c:8280
+#: breakpoint.c:7962
 #, possible-c-format
 msgid "Catchpoint %d (vfork)"
 msgstr ""
 
-#: breakpoint.c:8458
+#: breakpoint.c:8130
 #, possible-c-format
 msgid "load of library matching %s"
 msgstr ""
 
-#: breakpoint.c:8460
+#: breakpoint.c:8132
 msgid "load of library"
 msgstr ""
 
-#: breakpoint.c:8465
+#: breakpoint.c:8137
 #, possible-c-format
 msgid "unload of library matching %s"
 msgstr ""
 
-#: breakpoint.c:8467
+#: breakpoint.c:8139
 msgid "unload of library"
 msgstr ""
 
-#: breakpoint.c:8481
+#: breakpoint.c:8153
 #, possible-c-format
 msgid "Catchpoint %d (%s)"
 msgstr ""
 
-#: breakpoint.c:8531 objc-lang.c:604 objc-lang.c:755 symtab.c:4371
-#: thread.c:1996
-#, possible-c-format
-msgid "Invalid regexp (%s): %s"
+#: breakpoint.c:8193 symtab.c:4342
+msgid "Invalid regexp"
 msgstr ""
 
-#: breakpoint.c:8740
+#: breakpoint.c:8389
 #, possible-c-format
 msgid "Catchpoint %d (exec)"
 msgstr ""
 
-#: breakpoint.c:9148 printcmd.c:2512
+#: breakpoint.c:8785 printcmd.c:2440
 msgid "Bad format string, missing '\"'."
 msgstr ""
 
-#: breakpoint.c:9155
+#: breakpoint.c:8792
 msgid "No function supplied for dprintf call"
 msgstr ""
 
-#: breakpoint.c:9173
+#: breakpoint.c:8810
 msgid "Target cannot run dprintf commands, falling back to GDB printf"
 msgstr ""
 
-#: breakpoint.c:9179
+#: breakpoint.c:8816
 msgid "Invalid dprintf style."
 msgstr ""
 
-#: breakpoint.c:9240 breakpoint.c:14858
+#: breakpoint.c:8878 breakpoint.c:14434
 msgid "No hardware breakpoint support in the target."
 msgstr ""
 
-#: breakpoint.c:9242 breakpoint.c:10361 breakpoint.c:14860
+#: breakpoint.c:8880 breakpoint.c:9930 breakpoint.c:14436
 msgid "Hardware breakpoints used exceeds limit."
 msgstr ""
 
-#: breakpoint.c:9298 breakpoint.c:9307
+#: breakpoint.c:8935 breakpoint.c:8944
 #, possible-c-format
 msgid "Probed static tracepoint marker \"%s\"\n"
 msgstr ""
 
-#: breakpoint.c:9312
+#: breakpoint.c:8949
 msgid "Couldn't determine the static tracepoint marker to probe"
 msgstr ""
 
-#: breakpoint.c:9332
+#: breakpoint.c:8969
 #, possible-c-format
 msgid "Garbage '%s' follows condition"
 msgstr ""
 
-#: breakpoint.c:9342 breakpoint.c:10135
+#: breakpoint.c:8979 breakpoint.c:9707
 msgid "Format string required"
 msgstr ""
 
-#: breakpoint.c:9345
+#: breakpoint.c:8982
 #, possible-c-format
 msgid "Garbage '%s' at end of command"
 msgstr ""
 
-#: breakpoint.c:9503
+#: breakpoint.c:9122
 msgid "No default breakpoint address now."
 msgstr ""
 
-#: breakpoint.c:9583
+#: breakpoint.c:9197
 #, possible-c-format
 msgid "May not have a fast tracepoint at %s%s"
 msgstr ""
 
-#: breakpoint.c:9641
+#: breakpoint.c:9255
 msgid "Junk after thread keyword."
 msgstr ""
 
-#: breakpoint.c:9652
+#: breakpoint.c:9266
 msgid "Junk after task keyword."
 msgstr ""
 
-#: breakpoint.c:9654
+#: breakpoint.c:9268
 #, possible-c-format
 msgid "Unknown task %d."
 msgstr ""
 
-#: breakpoint.c:9689
+#: breakpoint.c:9299
 #, possible-c-format
 msgid "No known static tracepoint marker named %s"
 msgstr ""
 
-#: breakpoint.c:9761
+#: breakpoint.c:9370
 #, possible-c-format
 msgid "Make %s pending on future shared library load? "
 msgstr ""
 
-#: breakpoint.c:9838 mi/mi-cmd-break.c:346
+#: breakpoint.c:9438 mi/mi-cmd-break.c:343
 #, possible-c-format
 msgid "Garbage '%s' at end of location"
 msgstr ""
 
-#: breakpoint.c:9911
+#: breakpoint.c:9487
 msgid ""
 "Multiple breakpoints were set.\n"
 "Use the \"delete\" command to delete unwanted breakpoints."
 msgstr ""
 
-#: breakpoint.c:9974 linespec.c:1928
+#: breakpoint.c:9550 linespec.c:2260
 #, possible-c-format
 msgid "No line %d in file \"%s\"."
 msgstr ""
 
-#: breakpoint.c:10050
+#: breakpoint.c:9622
 msgid ""
 "Specify the type of breakpoint to set.\n"
 "Usage: stop in <function | address>\n"
 "       stop at <line>\n"
 msgstr ""
 
-#: breakpoint.c:10083
+#: breakpoint.c:9655
 msgid "Usage: stop in <function | address>\n"
 msgstr ""
 
-#: breakpoint.c:10115
+#: breakpoint.c:9687
 msgid "Usage: stop at <line>\n"
 msgstr ""
 
-#: breakpoint.c:10159
+#: breakpoint.c:9731
 msgid "May only run agent-printf on the target"
 msgstr ""
 
-#: breakpoint.c:10287
+#: breakpoint.c:9859
 #, possible-c-format
 msgid "Hardware assisted ranged breakpoint %d from %s to %s."
 msgstr ""
 
-#: breakpoint.c:10329 breakpoint.c:10406
+#: breakpoint.c:9901 breakpoint.c:9974
 msgid "Could not find location of the end of the range."
 msgstr ""
 
-#: breakpoint.c:10354
+#: breakpoint.c:9923
 msgid "This target does not support hardware ranged breakpoints."
 msgstr ""
 
-#: breakpoint.c:10365
+#: breakpoint.c:9934
 msgid "No address range specified."
 msgstr ""
 
-#: breakpoint.c:10373
+#: breakpoint.c:9942
 msgid "Too few arguments."
 msgstr ""
 
-#: breakpoint.c:10375
+#: breakpoint.c:9944
 msgid "Could not find location of the beginning of the range."
 msgstr ""
 
-#: breakpoint.c:10381 breakpoint.c:10411
+#: breakpoint.c:9950 breakpoint.c:9979
 msgid "Cannot create a ranged breakpoint with multiple locations."
 msgstr ""
 
-#: breakpoint.c:10417
+#: breakpoint.c:9985
 msgid "Invalid address range, end precedes start."
 msgstr ""
 
 #. Length overflowed.
-#: breakpoint.c:10422
+#: breakpoint.c:9990
 msgid "Address range too large."
 msgstr ""
 
-#: breakpoint.c:10810 breakpoint.c:10947 breakpoint.c:11003 breakpoint.c:11034
+#: breakpoint.c:10365 breakpoint.c:10502 breakpoint.c:10558 breakpoint.c:10589
 msgid "Invalid hardware watchpoint type."
 msgstr ""
 
-#: breakpoint.c:10841
+#: breakpoint.c:10396
 msgid "Invalid watchpoint type."
 msgstr ""
 
-#: breakpoint.c:10951
+#: breakpoint.c:10506
 msgid ""
 "\n"
 "Check the underlying instruction at PC for the memory\n"
 "address and value which triggered this watchpoint.\n"
 msgstr ""
 
-#: breakpoint.c:11125
+#: breakpoint.c:10677
 msgid "You can specify only one thread."
 msgstr ""
 
-#: breakpoint.c:11144
+#: breakpoint.c:10696
 msgid "You can specify only one mask."
 msgstr ""
 
-#: breakpoint.c:11188
+#: breakpoint.c:10739
 #, possible-c-format
 msgid "Cannot watch constant value `%.*s'."
 msgstr ""
 
-#: breakpoint.c:11215
+#: breakpoint.c:10766
 msgid "This target does not support masked watchpoints."
 msgstr ""
 
-#: breakpoint.c:11217
+#: breakpoint.c:10768
 msgid "Invalid mask or memory region."
 msgstr ""
 
-#: breakpoint.c:11240
+#: breakpoint.c:10791
 msgid "Junk at end of command."
 msgstr ""
 
-#: breakpoint.c:11670
+#: breakpoint.c:11200
 msgid "Couldn't get information on specified line."
 msgstr ""
 
-#: breakpoint.c:11824
+#: breakpoint.c:11353
 msgid "unsupported or unknown fork kind; cannot catch it"
 msgstr ""
 
-#: breakpoint.c:11903 breakpoint.c:11910
+#: breakpoint.c:11430 breakpoint.c:11437
 msgid "Catch requires an event name."
 msgstr ""
 
-#: breakpoint.c:11968
+#: breakpoint.c:11487
 msgid "No source file specified."
 msgstr ""
 
-#: breakpoint.c:12066
+#: breakpoint.c:11581
 #, possible-c-format
 msgid "No breakpoint at %s."
 msgstr ""
 
-#: breakpoint.c:12068
+#: breakpoint.c:11583
 msgid "No breakpoint at this line."
 msgstr ""
 
-#: breakpoint.c:12091
+#: breakpoint.c:11604
 msgid "Deleted breakpoint "
 msgstr ""
 
-#: breakpoint.c:12093
+#: breakpoint.c:11606
 msgid "Deleted breakpoints "
 msgstr ""
 
@@ -3765,197 +3785,237 @@ msgstr ""
 #. Note that at this point, old_loc->owner is still
 #. valid, as delete_breakpoint frees the breakpoint
 #. only after calling us.
-#: breakpoint.c:12527
+#: breakpoint.c:12033
 #, possible-c-format
 msgid "warning: Error removing breakpoint %d\n"
 msgstr ""
 
-#: breakpoint.c:12764
+#: breakpoint.c:12268
 #, possible-c-format
 msgid " (%s) pending."
 msgstr ""
 
-#: breakpoint.c:12769
+#: breakpoint.c:12273
 #, possible-c-format
 msgid " (%s,%s) pending."
 msgstr ""
 
-#: breakpoint.c:12775
+#: breakpoint.c:12279
 #, possible-c-format
 msgid " (%s %s) pending."
 msgstr ""
 
-#: breakpoint.c:13136
+#: breakpoint.c:12631
 msgid "Temporary breakpoint"
 msgstr ""
 
-#: breakpoint.c:13138
+#: breakpoint.c:12633
 msgid "Breakpoint"
 msgstr ""
 
-#: breakpoint.c:13139 breakpoint.c:13462 breakpoint.c:13466 breakpoint.c:13470
+#: breakpoint.c:12634 breakpoint.c:12948 breakpoint.c:12952 breakpoint.c:12956
 #, possible-c-format
 msgid " %d"
 msgstr ""
 
-#: breakpoint.c:13141
+#: breakpoint.c:12636
 msgid " at gnu-indirect-function resolver"
 msgstr ""
 
-#: breakpoint.c:13144
+#: breakpoint.c:12639
 #, possible-c-format
 msgid "Hardware assisted breakpoint %d"
 msgstr ""
 
-#: breakpoint.c:13147
+#: breakpoint.c:12642
 #, possible-c-format
 msgid "Dprintf %d"
 msgstr ""
 
-#: breakpoint.c:13168
+#: breakpoint.c:12663
 #, possible-c-format
 msgid "unhandled breakpoint type %d"
 msgstr ""
 
 #. Not sure how we will get here.
 #. GDB should not stop for these breakpoints.
-#: breakpoint.c:13281
+#: breakpoint.c:12776
 msgid "Thread Event Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. By analogy with the thread event, GDB should not stop for these.
-#: breakpoint.c:13286
+#: breakpoint.c:12781
 msgid "Overlay Event Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. These should never be enabled.
-#: breakpoint.c:13291
+#: breakpoint.c:12786
 msgid "Longjmp Master Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. These should never be enabled.
-#: breakpoint.c:13296
+#: breakpoint.c:12791
 msgid "std::terminate Master Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. These should never be enabled.
-#: breakpoint.c:13302
+#: breakpoint.c:12797
 msgid "Exception Master Breakpoint: gdb should not stop!\n"
 msgstr ""
 
-#: breakpoint.c:13415
+#: breakpoint.c:12900
 msgid "probe not found"
 msgstr ""
 
-#: breakpoint.c:13461
+#: breakpoint.c:12947
 msgid "Tracepoint"
 msgstr ""
 
-#: breakpoint.c:13465
+#: breakpoint.c:12951
 msgid "Fast tracepoint"
 msgstr ""
 
-#: breakpoint.c:13469
+#: breakpoint.c:12955
 msgid "Static tracepoint"
 msgstr ""
 
-#: breakpoint.c:13474 breakpoint.c:13493
+#: breakpoint.c:12960 breakpoint.c:12979
 #, possible-c-format
 msgid "unhandled tracepoint type %d"
 msgstr ""
 
-#: breakpoint.c:13738
+#: breakpoint.c:13211
 #, possible-c-format
 msgid "marker %s not found"
 msgstr ""
 
-#: breakpoint.c:13932
+#: breakpoint.c:13375
 msgid "Delete all breakpoints? "
 msgstr ""
 
-#: breakpoint.c:14046
+#: breakpoint.c:13493
 #, possible-c-format
 msgid "static tracepoint %d changed probed marker from %s to %s"
 msgstr ""
 
-#: breakpoint.c:14082
+#: breakpoint.c:13528
 #, possible-c-format
 msgid "marker for static tracepoint %d (%s) not found at previous line number"
 msgstr ""
 
-#: breakpoint.c:14217
+#: breakpoint.c:13658
 #, possible-c-format
 msgid "Could not reset ranged breakpoint %d: multiple locations found\n"
 msgstr ""
 
-#: breakpoint.c:14257
+#: breakpoint.c:13698
 #, possible-c-format
 msgid "failed to reevaluate condition for breakpoint %d: %s"
 msgstr ""
 
-#: breakpoint.c:14618
+#: breakpoint.c:14031
 #, possible-c-format
 msgid "Ignore count ignored for tracepoint %d."
 msgstr ""
 
-#: breakpoint.c:14627
+#: breakpoint.c:14040
 #, possible-c-format
 msgid "Will stop next time breakpoint %d is reached."
 msgstr ""
 
-#: breakpoint.c:14631
+#: breakpoint.c:14044
 #, possible-c-format
 msgid "Will ignore next crossing of breakpoint %d."
 msgstr ""
 
-#: breakpoint.c:14634
+#: breakpoint.c:14047
 #, possible-c-format
 msgid "Will ignore next %d crossings of breakpoint %d."
 msgstr ""
 
-#: breakpoint.c:14654
+#: breakpoint.c:14067
 msgid "a breakpoint number"
 msgstr ""
 
-#: breakpoint.c:14658
+#: breakpoint.c:14071
 #, possible-c-format
 msgid "bad breakpoint number: '%s'"
 msgstr ""
 
-#: breakpoint.c:14660
+#: breakpoint.c:14073
 msgid "Second argument (specified ignore-count) is missing."
 msgstr ""
 
-#: breakpoint.c:14682
+#: breakpoint.c:14092
+#, possible-c-format
+msgid "bad breakpoint number at or near '%d'"
+msgstr ""
+
+#: breakpoint.c:14111
+#, possible-c-format
+msgid "No breakpoint number %d.\n"
+msgstr ""
+
+#: breakpoint.c:14124
 msgid "one or more breakpoint numbers"
 msgstr ""
 
-#: breakpoint.c:14694
+#: breakpoint.c:14150
 #, possible-c-format
-msgid "bad breakpoint number at or near '%s'"
+msgid "Bad breakpoint number '%d'"
 msgstr ""
 
-#: breakpoint.c:14706
+#: breakpoint.c:14153 breakpoint.c:14160
 #, possible-c-format
-msgid "No breakpoint number %d.\n"
+msgid "Bad breakpoint location number '%d'"
+msgstr ""
+
+#: breakpoint.c:14187
+#, possible-c-format
+msgid "Negative breakpoint number '%.*s'"
+msgstr ""
+
+#: breakpoint.c:14188
+#, possible-c-format
+msgid "Negative breakpoint location number '%.*s'"
+msgstr ""
+
+#: breakpoint.c:14192
+#, possible-c-format
+msgid "Bad breakpoint number '%.*s'"
+msgstr ""
+
+#: breakpoint.c:14193
+#, possible-c-format
+msgid "Bad breakpoint location number '%.*s'"
+msgstr ""
+
+#: breakpoint.c:14219 breakpoint.c:14269
+#, possible-c-format
+msgid "Bad breakpoint number at or near: '%s'"
+msgstr ""
+
+#: breakpoint.c:14220
+#, possible-c-format
+msgid "Bad breakpoint location number at or near: '%s'"
 msgstr ""
 
-#: breakpoint.c:14726 breakpoint.c:14735
+#: breakpoint.c:14231
 #, possible-c-format
-msgid "Bad breakpoint number '%s'"
+msgid "Inverted breakpoint range at '%.*s'"
 msgstr ""
 
-#: breakpoint.c:14740 breakpoint.c:14747
+#: breakpoint.c:14232
 #, possible-c-format
-msgid "Bad breakpoint location number '%s'"
+msgid "Inverted breakpoint location range at '%.*s'"
 msgstr ""
 
-#: breakpoint.c:14879
+#: breakpoint.c:14455
 #, possible-c-format
 msgid "Cannot enable watchpoint %d: "
 msgstr ""
 
-#: breakpoint.c:15020
+#: breakpoint.c:14521
 msgid "hit count"
 msgstr ""
 
@@ -3963,72 +4023,72 @@ msgstr ""
 #. address.  Since there is no way to confirm that the address
 #. means the same thing as when the trace was started, warn the
 #. user.
-#: breakpoint.c:15301
+#: breakpoint.c:14806
 #, possible-c-format
 msgid "Uploaded tracepoint %d has no source location, using raw address"
 msgstr ""
 
-#: breakpoint.c:15310
+#: breakpoint.c:14815
 #, possible-c-format
 msgid "Uploaded tracepoint %d condition has no source form, ignoring it"
 msgstr ""
 
-#: breakpoint.c:15360
+#: breakpoint.c:14865
 #, possible-c-format
 msgid "Uploaded tracepoint %d actions have no source form, ignoring them"
 msgstr ""
 
-#: breakpoint.c:15434
+#: breakpoint.c:14939
 msgid "Delete all tracepoints? "
 msgstr ""
 
-#: breakpoint.c:15453
+#: breakpoint.c:14962
 #, possible-c-format
 msgid "Setting tracepoint %d's passcount to %d\n"
 msgstr ""
 
-#: breakpoint.c:15470
+#: breakpoint.c:14979
 msgid "passcount command requires an argument (count + optional TP num)"
 msgstr ""
 
-#: breakpoint.c:15566
+#: breakpoint.c:15075
 #, possible-c-format
 msgid "bad tracepoint number at or near '%s'\n"
 msgstr ""
 
-#: breakpoint.c:15569
+#: breakpoint.c:15078
 msgid "No previous tracepoint\n"
 msgstr ""
 
-#: breakpoint.c:15610
+#: breakpoint.c:15118
 msgid "Argument required (file name in which to save)"
 msgstr ""
 
-#: breakpoint.c:15636
+#: breakpoint.c:15144
 msgid "Nothing to save."
 msgstr ""
 
-#: breakpoint.c:15646
+#: breakpoint.c:15153
 #, possible-c-format
 msgid "Unable to open file '%s' for saving (%s)"
 msgstr ""
 
-#: breakpoint.c:15715
+#: breakpoint.c:15222
 #, possible-c-format
 msgid "Saved to file '%s'.\n"
 msgstr ""
 
-#: breakpoint.c:15828
+#: breakpoint.c:15341
 msgid "\"save\" must be followed by the name of a save subcommand.\n"
 msgstr ""
 
-#: breakpoint.c:16109
+#: breakpoint.c:15614
 msgid ""
 "Set ignore-count of breakpoint number N to COUNT.\n"
 "Usage is `ignore N COUNT'."
 msgstr ""
 
-#: breakpoint.c:16113
+#: breakpoint.c:15618
 msgid ""
 "Set commands to be executed when the given breakpoints are hit.\n"
 "Give a space-separated breakpoint list as argument after \"commands\".\n"
@@ -4041,14 +4101,14 @@ msgid ""
 "then no output is printed when it is hit, except what the commands print."
 msgstr ""
 
-#: breakpoint.c:16124
+#: breakpoint.c:15629
 msgid ""
 "Specify breakpoint number N to break only if COND is true.\n"
 "Usage is `condition N COND', where N is an integer and COND is an\n"
 "expression to be evaluated whenever breakpoint N is reached."
 msgstr ""
 
-#: breakpoint.c:16130
+#: breakpoint.c:15635
 msgid ""
 "Set a temporary breakpoint.\n"
 "Like \"break\" except the breakpoint is only temporary,\n"
@@ -4057,7 +4117,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:16139
+#: breakpoint.c:15644
 msgid ""
 "Set a hardware assisted breakpoint.\n"
 "Like \"break\" except the breakpoint requires hardware support,\n"
@@ -4065,7 +4125,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:16147
+#: breakpoint.c:15652
 msgid ""
 "Set a temporary hardware assisted breakpoint.\n"
 "Like \"hbreak\" except the breakpoint is only temporary,\n"
@@ -4073,7 +4133,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:16155
+#: breakpoint.c:15660
 msgid ""
 "Enable some breakpoints.\n"
 "Give breakpoint numbers (separated by spaces) as arguments.\n"
@@ -4082,7 +4142,7 @@ msgid ""
 "With a subcommand you can enable temporarily."
 msgstr ""
 
-#: breakpoint.c:16165
+#: breakpoint.c:15670
 msgid ""
 "Enable some breakpoints.\n"
 "Give breakpoint numbers (separated by spaces) as arguments.\n"
@@ -4090,26 +4150,26 @@ msgid ""
 "May be abbreviated to simply \"enable\".\n"
 msgstr ""
 
-#: breakpoint.c:16172 breakpoint.c:16193
+#: breakpoint.c:15677 breakpoint.c:15698
 msgid ""
 "Enable breakpoints for one hit.  Give breakpoint numbers.\n"
 "If a breakpoint is hit while enabled in this fashion, it becomes disabled."
 msgstr ""
 
-#: breakpoint.c:16177 breakpoint.c:16188
+#: breakpoint.c:15682 breakpoint.c:15693
 msgid ""
 "Enable breakpoints and delete when hit.  Give breakpoint numbers.\n"
 "If a breakpoint is hit while enabled in this fashion, it is deleted."
 msgstr ""
 
-#: breakpoint.c:16182 breakpoint.c:16198
+#: breakpoint.c:15687 breakpoint.c:15703
 msgid ""
 "Enable breakpoints for COUNT hits.  Give count and then breakpoint numbers.\n"
 "If a breakpoint is hit while enabled in this fashion,\n"
 "the count is decremented; when it reaches zero, the breakpoint is disabled."
 msgstr ""
 
-#: breakpoint.c:16204
+#: breakpoint.c:15709
 msgid ""
 "Disable some breakpoints.\n"
 "Arguments are breakpoint numbers with spaces in between.\n"
@@ -4117,7 +4177,7 @@ msgid ""
 "A disabled breakpoint is not forgotten, but has no effect until re-enabled."
 msgstr ""
 
-#: breakpoint.c:16213
+#: breakpoint.c:15718
 msgid ""
 "Disable some breakpoints.\n"
 "Arguments are breakpoint numbers with spaces in between.\n"
@@ -4126,7 +4186,7 @@ msgid ""
 "This command may be abbreviated \"disable\"."
 msgstr ""
 
-#: breakpoint.c:16221
+#: breakpoint.c:15726
 msgid ""
 "Delete some breakpoints or auto-display expressions.\n"
 "Arguments are breakpoint numbers with spaces in between.\n"
@@ -4136,7 +4196,7 @@ msgid ""
 "The \"unset\" command is also an alias for \"delete\"."
 msgstr ""
 
-#: breakpoint.c:16232
+#: breakpoint.c:15737
 msgid ""
 "Delete some breakpoints or auto-display expressions.\n"
 "Arguments are breakpoint numbers with spaces in between.\n"
@@ -4144,7 +4204,7 @@ msgid ""
 "This command may be abbreviated \"delete\"."
 msgstr ""
 
-#: breakpoint.c:16239
+#: breakpoint.c:15744
 msgid ""
 "Clear breakpoint at specified location.\n"
 "Argument may be a linespec, explicit, or address location as described "
@@ -4156,23 +4216,23 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:16249
+#: breakpoint.c:15754
 msgid "Set breakpoint at specified location.\n"
 msgstr ""
 
-#: breakpoint.c:16261
+#: breakpoint.c:15766
 msgid "Break in function/address or break at a line in the current file."
 msgstr ""
 
-#: breakpoint.c:16265
+#: breakpoint.c:15770
 msgid "Break in function or address."
 msgstr ""
 
-#: breakpoint.c:16267
+#: breakpoint.c:15772
 msgid "Break at a line in the current file."
 msgstr ""
 
-#: breakpoint.c:16268
+#: breakpoint.c:15773
 msgid ""
 "Status of user-settable breakpoints, or breakpoint number NUMBER.\n"
 "The \"Type\" column indicates one of:\n"
@@ -4194,7 +4254,7 @@ msgid ""
 "breakpoint set."
 msgstr ""
 
-#: breakpoint.c:16285
+#: breakpoint.c:15790
 msgid ""
 "Status of specified breakpoints (all user-settable breakpoints if no "
 "argument).\n"
@@ -4217,7 +4277,7 @@ msgid ""
 "breakpoint set."
 msgstr ""
 
-#: breakpoint.c:16303
+#: breakpoint.c:15808
 msgid ""
 "Status of all breakpoints, or breakpoint number NUMBER.\n"
 "The \"Type\" column indicates one of:\n"
@@ -4243,43 +4303,43 @@ msgid ""
 "breakpoint set."
 msgstr ""
 
-#: breakpoint.c:16324
+#: breakpoint.c:15829
 msgid "Set catchpoints to catch events."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:16329
+#: breakpoint.c:15834
 msgid "Set temporary catchpoints to catch events."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:16334
+#: breakpoint.c:15839
 msgid "Catch calls to fork."
 msgstr ""
 
-#: breakpoint.c:16339
+#: breakpoint.c:15844
 msgid "Catch calls to vfork."
 msgstr ""
 
-#: breakpoint.c:16344
+#: breakpoint.c:15849
 msgid "Catch calls to exec."
 msgstr ""
 
-#: breakpoint.c:16349
+#: breakpoint.c:15854
 msgid ""
 "Catch loads of shared libraries.\n"
 "Usage: catch load [REGEX]\n"
 "If REGEX is given, only stop for libraries matching the regular expression."
 msgstr ""
 
-#: breakpoint.c:16356
+#: breakpoint.c:15861
 msgid ""
 "Catch unloads of shared libraries.\n"
 "Usage: catch unload [REGEX]\n"
 "If REGEX is given, only stop for libraries matching the regular expression."
 msgstr ""
 
-#: breakpoint.c:16364
+#: breakpoint.c:15869
 msgid ""
 "Set a watchpoint for an expression.\n"
 "Usage: watch [-l|-location] EXPRESSION\n"
@@ -4289,7 +4349,7 @@ msgid ""
 "the memory to which it refers."
 msgstr ""
 
-#: breakpoint.c:16373
+#: breakpoint.c:15878
 msgid ""
 "Set a read watchpoint for an expression.\n"
 "Usage: rwatch [-l|-location] EXPRESSION\n"
@@ -4299,7 +4359,7 @@ msgid ""
 "the memory to which it refers."
 msgstr ""
 
-#: breakpoint.c:16382
+#: breakpoint.c:15887
 msgid ""
 "Set a watchpoint for an expression.\n"
 "Usage: awatch [-l|-location] EXPRESSION\n"
@@ -4309,19 +4369,19 @@ msgid ""
 "the memory to which it refers."
 msgstr ""
 
-#: breakpoint.c:16391
+#: breakpoint.c:15896
 msgid "Status of specified watchpoints (all watchpoints if no argument)."
 msgstr ""
 
-#: breakpoint.c:16397
+#: breakpoint.c:15902
 msgid "Set debugger's willingness to use watchpoint hardware."
 msgstr ""
 
-#: breakpoint.c:16398
+#: breakpoint.c:15903
 msgid "Show debugger's willingness to use watchpoint hardware."
 msgstr ""
 
-#: breakpoint.c:16399
+#: breakpoint.c:15904
 msgid ""
 "If zero, gdb will not use hardware for new watchpoints, even if\n"
 "such is available.  (However, any hardware watchpoints that were\n"
@@ -4330,19 +4390,19 @@ msgid ""
 msgstr ""
 
 #. Tracepoint manipulation commands.
-#: breakpoint.c:16412
+#: breakpoint.c:15917
 msgid ""
 "Set a tracepoint at specified location.\n"
 "\n"
 msgstr ""
 
-#: breakpoint.c:16424
+#: breakpoint.c:15929
 msgid ""
 "Set a fast tracepoint at specified location.\n"
 "\n"
 msgstr ""
 
-#: breakpoint.c:16431
+#: breakpoint.c:15936
 msgid ""
 "Set a static tracepoint at location or marker.\n"
 "\n"
@@ -4362,35 +4422,35 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:16453
+#: breakpoint.c:15958
 msgid ""
 "Status of specified tracepoints (all tracepoints if no argument).\n"
 "Convenience variable \"$tpnum\" contains the number of the\n"
 "last tracepoint set."
 msgstr ""
 
-#: breakpoint.c:16460
+#: breakpoint.c:15965
 msgid ""
 "Delete specified tracepoints.\n"
 "Arguments are tracepoint numbers, separated by spaces.\n"
 "No argument means delete all tracepoints."
 msgstr ""
 
-#: breakpoint.c:16467
+#: breakpoint.c:15972
 msgid ""
 "Disable specified tracepoints.\n"
 "Arguments are tracepoint numbers, separated by spaces.\n"
 "No argument means disable all tracepoints."
 msgstr ""
 
-#: breakpoint.c:16474
+#: breakpoint.c:15979
 msgid ""
 "Enable specified tracepoints.\n"
 "Arguments are tracepoint numbers, separated by spaces.\n"
 "No argument means enable all tracepoints."
 msgstr ""
 
-#: breakpoint.c:16481
+#: breakpoint.c:15986
 msgid ""
 "Set the passcount for a tracepoint.\n"
 "The trace will end when the tracepoint has been passed 'count' times.\n"
@@ -4398,12 +4458,12 @@ msgid ""
 "if TPNUM is omitted, passcount refers to the last tracepoint defined."
 msgstr ""
 
-#: breakpoint.c:16488
+#: breakpoint.c:15993
 msgid "Save breakpoint definitions as a script."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:16492
+#: breakpoint.c:15997
 msgid ""
 "Save current breakpoint definitions as a script.\n"
 "This includes all types of breakpoints (breakpoints, watchpoints,\n"
@@ -4411,29 +4471,29 @@ msgid ""
 "session to restore them."
 msgstr ""
 
-#: breakpoint.c:16500
+#: breakpoint.c:16005
 msgid ""
 "Save current tracepoint definitions as a script.\n"
 "Use the 'source' command in another debug session to restore them."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:16509 breakpoint.c:16515
+#: breakpoint.c:16014 breakpoint.c:16020
 msgid ""
 "Breakpoint specific settings\n"
 "Configure various breakpoint-specific variables such as\n"
 "pending breakpoint behavior"
 msgstr ""
 
-#: breakpoint.c:16523
+#: breakpoint.c:16028
 msgid "Set debugger's behavior regarding pending breakpoints."
 msgstr ""
 
-#: breakpoint.c:16524
+#: breakpoint.c:16029
 msgid "Show debugger's behavior regarding pending breakpoints."
 msgstr ""
 
-#: breakpoint.c:16525
+#: breakpoint.c:16030
 msgid ""
 "If on, an unrecognized breakpoint location will cause gdb to create a\n"
 "pending breakpoint.  If off, an unrecognized breakpoint location results in\n"
@@ -4441,15 +4501,15 @@ msgid ""
 "user-query to see if a pending breakpoint should be created."
 msgstr ""
 
-#: breakpoint.c:16538
+#: breakpoint.c:16043
 msgid "Set automatic usage of hardware breakpoints."
 msgstr ""
 
-#: breakpoint.c:16539
+#: breakpoint.c:16044
 msgid "Show automatic usage of hardware breakpoints."
 msgstr ""
 
-#: breakpoint.c:16540
+#: breakpoint.c:16045
 msgid ""
 "If set, the debugger will automatically use hardware breakpoints for\n"
 "breakpoints set with \"break\" but falling in read-only memory.  If not "
@@ -4457,15 +4517,15 @@ msgid ""
 "a warning will be emitted for such breakpoints."
 msgstr ""
 
-#: breakpoint.c:16550
+#: breakpoint.c:16055
 msgid "Set mode for inserting breakpoints."
 msgstr ""
 
-#: breakpoint.c:16551
+#: breakpoint.c:16056
 msgid "Show mode for inserting breakpoints."
 msgstr ""
 
-#: breakpoint.c:16552
+#: breakpoint.c:16057
 msgid ""
 "When this mode is on, breakpoints are inserted immediately as soon as\n"
 "they're created, kept inserted even when execution stops, and removed\n"
@@ -4474,15 +4534,15 @@ msgid ""
 "when execution stops."
 msgstr ""
 
-#: breakpoint.c:16565
+#: breakpoint.c:16070
 msgid "Set mode of breakpoint condition evaluation."
 msgstr ""
 
-#: breakpoint.c:16566
+#: breakpoint.c:16071
 msgid "Show mode of breakpoint condition evaluation."
 msgstr ""
 
-#: breakpoint.c:16567
+#: breakpoint.c:16072
 msgid ""
 "When this is set to \"host\", breakpoint conditions will be\n"
 "evaluated on the host's side by GDB.  When it is set to \"target\",\n"
@@ -4494,7 +4554,7 @@ msgid ""
 "be set to \"gdb\""
 msgstr ""
 
-#: breakpoint.c:16580
+#: breakpoint.c:16085
 msgid ""
 "Set a breakpoint for an address range.\n"
 "break-range START-LOCATION, END-LOCATION\n"
@@ -4512,7 +4572,7 @@ msgid ""
 "range (including START-LOCATION and END-LOCATION)."
 msgstr ""
 
-#: breakpoint.c:16596
+#: breakpoint.c:16101
 msgid ""
 "Set a dynamic printf at specified location.\n"
 "dprintf location,format string,arg1,arg2,...\n"
@@ -4520,15 +4580,15 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:16604
+#: breakpoint.c:16109
 msgid "Set the style of usage for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:16605
+#: breakpoint.c:16110
 msgid "Show the style of usage for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:16606
+#: breakpoint.c:16111
 msgid ""
 "This setting chooses how GDB will do a dynamic printf.\n"
 "If the value is \"gdb\", then the printing is done by GDB to its own\n"
@@ -4538,90 +4598,90 @@ msgid ""
 "output stream by setting dprintf-function and dprintf-channel."
 msgstr ""
 
-#: breakpoint.c:16618
+#: breakpoint.c:16123
 msgid "Set the function to use for dynamic printf"
 msgstr ""
 
-#: breakpoint.c:16619
+#: breakpoint.c:16124
 msgid "Show the function to use for dynamic printf"
 msgstr ""
 
-#: breakpoint.c:16626
+#: breakpoint.c:16131
 msgid "Set the channel to use for dynamic printf"
 msgstr ""
 
-#: breakpoint.c:16627
+#: breakpoint.c:16132
 msgid "Show the channel to use for dynamic printf"
 msgstr ""
 
-#: breakpoint.c:16633
+#: breakpoint.c:16138
 msgid "Set whether dprintf continues after GDB disconnects."
 msgstr ""
 
-#: breakpoint.c:16634
+#: breakpoint.c:16139
 msgid "Show whether dprintf continues after GDB disconnects."
 msgstr ""
 
-#: breakpoint.c:16635
+#: breakpoint.c:16140
 msgid ""
 "Use this to let dprintf commands continue to hit and produce output\n"
 "even if GDB disconnects or detaches from the target."
 msgstr ""
 
-#: breakpoint.c:16642
+#: breakpoint.c:16147
 msgid ""
 "agent-printf \"printf format string\", arg1, arg2, arg3, ..., argn\n"
 "(target agent only) This is useful for formatted output in user-defined "
 "commands."
 msgstr ""
 
-#: bsd-kvm.c:166
+#: bsd-kvm.c:169
 #, possible-c-format
 msgid "\tUsing the kernel crash dump %s.\n"
 msgstr ""
 
-#: bsd-kvm.c:169
+#: bsd-kvm.c:172
 msgid "\tUsing the currently running kernel.\n"
 msgstr ""
 
 #. i18n: PCB == "Process Control Block".
-#: bsd-kvm.c:263
+#: bsd-kvm.c:266
 msgid "Cannot find a valid PCB"
 msgstr ""
 
-#: bsd-kvm.c:284
+#: bsd-kvm.c:287
 msgid "proc address"
 msgstr ""
 
-#: bsd-kvm.c:287 bsd-kvm.c:315
+#: bsd-kvm.c:290 bsd-kvm.c:318
 msgid "No kernel memory image."
 msgstr ""
 
 #. i18n: PCB == "Process Control Block".
-#: bsd-kvm.c:312
+#: bsd-kvm.c:315
 msgid "pcb address"
 msgstr ""
 
-#: bsd-kvm.c:357
+#: bsd-kvm.c:360
 msgid "Kernel memory interface"
 msgstr ""
 
-#: bsd-kvm.c:358
+#: bsd-kvm.c:361
 msgid ""
 "Use a kernel virtual memory image as a target.\n"
 "Optionally specify the filename of a core dump."
 msgstr ""
 
-#: bsd-kvm.c:375
+#: bsd-kvm.c:378
 msgid "Generic command for manipulating the kernel memory interface."
 msgstr ""
 
-#: bsd-kvm.c:381
+#: bsd-kvm.c:384
 msgid "Set current context from proc address"
 msgstr ""
 
 #. i18n: PCB == "Process Control Block".
-#: bsd-kvm.c:385
+#: bsd-kvm.c:388
 msgid "Set current context from pcb address"
 msgstr ""
 
@@ -4629,245 +4689,255 @@ msgstr ""
 msgid "Bad magic"
 msgstr ""
 
-#: btrace.c:1016
+#: btrace.c:1074
 #, possible-c-format
 msgid "Recorded trace may be corrupted at instruction %u (pc = %s)."
 msgstr ""
 
-#: btrace.c:1062
+#: btrace.c:1116
 #, possible-c-format
 msgid "Recorded trace may be incomplete at instruction %u (pc = %s)."
 msgstr ""
 
-#: btrace.c:1148 btrace.c:2962
+#: btrace.c:1216
 #, possible-c-format
-msgid "Failed to synchronize onto the Intel Processor Trace stream: %s."
+msgid "Non-contiguous trace at instruction %u (offset = 0x%<PRIx64>)."
 msgstr ""
 
-#: btrace.c:1176
+#: btrace.c:1227
+#, possible-c-format
+msgid "Overflow at instruction %u (offset = 0x%<PRIx64>)."
+msgstr ""
+
+#: btrace.c:1261
 #, possible-c-format
 msgid ""
 "Non-contiguous trace at instruction %u (offset = 0x%<PRIx64>, pc = 0x%"
 "<PRIx64>)."
 msgstr ""
 
-#: btrace.c:1193
+#: btrace.c:1278
 #, possible-c-format
 msgid "Overflow at instruction %u (offset = 0x%<PRIx64>, pc = 0x%<PRIx64>)."
 msgstr ""
 
-#: btrace.c:1230
+#: btrace.c:1304 btrace.c:3013
+#, possible-c-format
+msgid "Failed to synchronize onto the Intel Processor Trace stream: %s."
+msgstr ""
+
+#: btrace.c:1339
 #, possible-c-format
 msgid ""
 "Decode error (%d) at instruction %u (offset = 0x%<PRIx64>, pc = 0x%"
 "<PRIx64>): %s."
 msgstr ""
 
-#: btrace.c:1326 btrace.c:1343 btrace.c:2996
+#: btrace.c:1438 btrace.c:1455 btrace.c:3046
 #, possible-c-format
 msgid "Failed to configure the Intel Processor Trace decoder: %s."
 msgstr ""
 
-#: btrace.c:1331 btrace.c:3001
+#: btrace.c:1443 btrace.c:3051
 msgid "Failed to allocate the Intel Processor Trace decoder."
 msgstr ""
 
-#: btrace.c:1339
+#: btrace.c:1451
 msgid "Failed to configure the Intel Processor Trace decoder."
 msgstr ""
 
-#: btrace.c:1374
+#: btrace.c:1482
 msgid "Unexpected branch trace format."
 msgstr ""
 
-#: btrace.c:1402 btrace.c:1682 common/btrace-common.c:92
+#: btrace.c:1510 btrace.c:1782 common/btrace-common.c:92
 #: common/btrace-common.c:112 common/btrace-common.c:199
-#: nat/linux-btrace.c:1152 record-btrace.c:403
+#: nat/linux-btrace.c:1147 record-btrace.c:403
 msgid "Unkown branch trace format."
 msgstr ""
 
-#: btrace.c:1480
+#: btrace.c:1582
 msgid "GDB does not support Intel Processor Trace."
 msgstr ""
 
-#: btrace.c:1484 remote.c:13286 remote.c:13337 remote.c:13382
+#: btrace.c:1586 remote.c:13273 remote.c:13324 remote.c:13367
 msgid "Target does not support branch tracing."
 msgstr ""
 
-#: btrace.c:1623
+#: btrace.c:1723
 msgid "Error while trying to read delta trace.  Falling back to a full read."
 msgstr ""
 
-#: btrace.c:1737
+#: btrace.c:1837
 msgid "instruction overflow"
 msgstr ""
 
-#: btrace.c:1740
+#: btrace.c:1840
 msgid "unknown instruction"
 msgstr ""
 
-#: btrace.c:1752
+#: btrace.c:1852
 msgid "trace decode cancelled"
 msgstr ""
 
-#: btrace.c:1755
+#: btrace.c:1855
 msgid "disabled"
 msgstr ""
 
-#: btrace.c:1758
+#: btrace.c:1858
 msgid "overflow"
 msgstr ""
 
-#: btrace.c:1843
+#: btrace.c:1943
 msgid "Failed to read branch trace."
 msgstr ""
 
-#: btrace.c:1930
+#: btrace.c:2011
 #, possible-c-format
 msgid "Unsupported btrace version: \"%s\""
 msgstr ""
 
-#: btrace.c:1957
+#: btrace.c:2038
 msgid "Btrace format error."
 msgstr ""
 
-#: btrace.c:1980
+#: btrace.c:2061
 msgid "Bad raw data size."
 msgstr ""
 
-#: btrace.c:1996
+#: btrace.c:2077
 msgid "Bad hex encoding."
 msgstr ""
 
-#: btrace.c:2126
+#: btrace.c:2207
 msgid "btrace"
 msgstr ""
 
-#: btrace.c:2129
+#: btrace.c:2210
 msgid "Error parsing branch trace."
 msgstr ""
 
-#: btrace.c:2136
+#: btrace.c:2217
 msgid "Cannot process branch trace.  XML parsing is not supported."
 msgstr ""
 
-#: btrace.c:2221
+#: btrace.c:2302
 msgid "btrace-conf"
 msgstr ""
 
-#: btrace.c:2224
+#: btrace.c:2305
 msgid "Error parsing branch trace configuration."
 msgstr ""
 
-#: btrace.c:2228
+#: btrace.c:2309
 msgid "XML parsing is not supported."
 msgstr ""
 
-#: btrace.c:2282 btrace.c:2299 btrace.c:2564 btrace.c:2580 record-btrace.c:125
-#: record-btrace.c:1961 record-btrace.c:2747
+#: btrace.c:2360 btrace.c:2377 btrace.c:2649 btrace.c:2662 record-btrace.c:125
+#: record-btrace.c:1950 record-btrace.c:2736
 msgid "No trace."
 msgstr ""
 
-#: btrace.c:2957
+#: btrace.c:3008
 #, possible-c-format
 msgid "Error at trace offset 0x%<PRIx64>: %s."
 msgstr ""
 
-#: btrace.c:3139 btrace.c:3161 record.c:437 record.c:457
+#: btrace.c:3190 btrace.c:3209 record.c:439 record.c:459
 #, possible-c-format
 msgid "Expected positive number, got: %s."
 msgstr ""
 
-#: btrace.c:3143
+#: btrace.c:3194
 msgid "Number too big."
 msgstr ""
 
-#: btrace.c:3172 record.c:407 record.c:419 record.c:468
+#: btrace.c:3223 record.c:409 record.c:421 record.c:472
 #, possible-c-format
 msgid "Junk after argument: %s."
 msgstr ""
 
-#: btrace.c:3186 btrace.c:3293 btrace.c:3315 btrace.c:3379 record-btrace.c:118
-#: record-btrace.c:420 record-btrace.c:1270
+#: btrace.c:3237 btrace.c:3344 btrace.c:3365 btrace.c:3429 record-btrace.c:118
+#: record-btrace.c:420 record-btrace.c:1255
 msgid "No thread."
 msgstr ""
 
-#: btrace.c:3194
+#: btrace.c:3245
 msgid "No trace.\n"
 msgstr ""
 
-#: btrace.c:3218
+#: btrace.c:3269
 #, possible-c-format
 msgid "'%u' is out of range."
 msgstr ""
 
-#: btrace.c:3289 btrace.c:3311 btrace.c:3375 record-btrace.c:2894
-#: record-btrace.c:2916 record-btrace.c:2938
+#: btrace.c:3340 btrace.c:3361 btrace.c:3425 record-btrace.c:2883
+#: record-btrace.c:2905 record-btrace.c:2927
 msgid "Invalid argument."
 msgstr ""
 
-#: btrace.c:3385
+#: btrace.c:3435
 msgid "No btrace configuration."
 msgstr ""
 
-#: btrace.c:3387
+#: btrace.c:3437
 #, possible-c-format
 msgid "Format: %s.\n"
 msgstr ""
 
-#: btrace.c:3396 btrace.c:3412
+#: btrace.c:3446 btrace.c:3462
 #, possible-c-format
 msgid "Number of packets: %u.\n"
 msgstr ""
 
-#: btrace.c:3407
+#: btrace.c:3457
 #, possible-c-format
 msgid "Version: %u.%u.%u%s.\n"
 msgstr ""
 
-#: btrace.c:3428
+#: btrace.c:3478
 #, possible-c-format
 msgid "Skip PAD packets is %s.\n"
 msgstr ""
 
-#: btrace.c:3439
+#: btrace.c:3488
 msgid "Info about branch tracing data."
 msgstr ""
 
-#: btrace.c:3442
+#: btrace.c:3491
 msgid "Branch tracing maintenance commands."
 msgstr ""
 
-#: btrace.c:3446
+#: btrace.c:3495
 msgid "Set branch tracing specific variables."
 msgstr ""
 
-#: btrace.c:3451
+#: btrace.c:3500
 msgid "Set Intel Processor Trace specific variables."
 msgstr ""
 
-#: btrace.c:3456
+#: btrace.c:3505
 msgid "Show branch tracing specific variables."
 msgstr ""
 
-#: btrace.c:3461
+#: btrace.c:3510
 msgid "Show Intel Processor Trace specific variables."
 msgstr ""
 
-#: btrace.c:3467
+#: btrace.c:3516
 msgid "Set whether PAD packets should be skipped in the btrace packet history."
 msgstr ""
 
-#: btrace.c:3468
+#: btrace.c:3517
 msgid ""
 "Show whether PAD packets should be skipped in the btrace packet history."
 msgstr ""
 
-#: btrace.c:3469
+#: btrace.c:3518
 msgid "When enabled, PAD packets are ignored in the btrace packet history."
 msgstr ""
 
-#: btrace.c:3476
+#: btrace.c:3525
 msgid ""
 "Print the raw branch tracing data.\n"
 "With no argument, print ten more packets after the previous ten-line print.\n"
@@ -4879,13 +4949,13 @@ msgid ""
 "first.\n"
 msgstr ""
 
-#: btrace.c:3488
+#: btrace.c:3537
 msgid ""
 "Clears the branch tracing packet history.\n"
 "Discards the raw branch tracing data but not the execution history data.\n"
 msgstr ""
 
-#: btrace.c:3494
+#: btrace.c:3543
 msgid ""
 "Clears the branch tracing data.\n"
 "Discards the raw branch tracing data and the execution history data.\n"
@@ -4902,154 +4972,166 @@ msgstr ""
 msgid "File \"%s\" has a different build-id, file skipped"
 msgstr ""
 
-#: build-id.c:156
+#: build-id.c:116 symfile.c:1354
+#, possible-c-format
+msgid "  Trying %s\n"
+msgstr ""
+
+#: build-id.c:154
+#, possible-c-format
+msgid ""
+"\n"
+"Looking for separate debug info (build-id) for %s\n"
+msgstr ""
+
+#: build-id.c:163
 #, possible-c-format
 msgid "\"%s\": separate debug info file has no debug info"
 msgstr ""
 
-#: buildsym.c:448
+#: buildsym.c:449
 #, possible-c-format
 msgid "block end address less than block start address in %s (patched it)"
 msgstr ""
 
-#: buildsym.c:455
+#: buildsym.c:456
 #, possible-c-format
 msgid "block end address %s less than block start address %s (patched it)"
 msgstr ""
 
-#: buildsym.c:488
+#: buildsym.c:489
 #, possible-c-format
 msgid "inner block not inside outer block in %s"
 msgstr ""
 
-#: buildsym.c:494
+#: buildsym.c:495
 #, possible-c-format
 msgid "inner block (%s-%s) not inside outer block (%s-%s)"
 msgstr ""
 
-#: buildsym.c:655
+#: buildsym.c:656
 #, possible-c-format
 msgid "block at %s out of order"
 msgstr ""
 
-#: buildsym.c:874 buildsym.c:888 common/print-utils.c:77
-#: common/print-utils.c:120 common/print-utils.c:288 dbxread.c:2845 exec.c:545
-#: exec.c:830 language.c:547 mdebugread.c:3657 printcmd.c:477 printcmd.c:1045
-#: printcmd.c:2692 psymtab.c:696 psymtab.c:709 target.c:711 target.c:795
-#: target.c:836 utils.c:1877 valprint.c:1421
+#: buildsym.c:877 buildsym.c:891 common/print-utils.c:77
+#: common/print-utils.c:120 common/print-utils.c:288 dbxread.c:2843 exec.c:522
+#: exec.c:790 mdebugread.c:3654 printcmd.c:1001 printcmd.c:2576 psymtab.c:720
+#: psymtab.c:733 target.c:654 target.c:738 target.c:779 utils.c:1601
+#: valprint.c:1329
 msgid "failed internal consistency check"
 msgstr ""
 
-#: buildsym.c:1247
+#: buildsym.c:1241
 msgid "Context stack not empty in end_symtab"
 msgstr ""
 
-#: buildsym.c:1598
+#: buildsym.c:1589
 msgid "Context stack not empty in augment_type_symtab"
 msgstr ""
 
-#: buildsym.c:1602
+#: buildsym.c:1593
 msgid "Blocks in a type symtab"
 msgstr ""
 
-#: buildsym.c:1604
+#: buildsym.c:1595
 msgid "Macro in a type symtab"
 msgstr ""
 
-#: buildsym.c:1607
+#: buildsym.c:1598
 msgid "Line numbers recorded in a type symtab"
 msgstr ""
 
-#: c-exp.y:432
+#: c-exp.y:426
 #, possible-c-format
 msgid "%s is not an ObjC Class"
 msgstr ""
 
-#: c-exp.y:825
+#: c-exp.y:859
 msgid "Undefined string concatenation."
 msgstr ""
 
-#: c-exp.y:899 go-exp.y:541
+#: c-exp.y:933 go-exp.y:539
 #, possible-c-format
 msgid "@entry can be used only for function parameters, not for \"%s\""
 msgstr ""
 
-#: c-exp.y:915 m2-exp.y:548 p-exp.y:649
+#: c-exp.y:949 eval.c:1352 m2-exp.y:548 p-exp.y:649
 #, possible-c-format
 msgid "No symbol \"%s\" in specified context."
 msgstr ""
 
-#: c-exp.y:936 c-exp.y:952 d-exp.y:504 p-exp.y:664
+#: c-exp.y:970 c-exp.y:986 d-exp.y:504 p-exp.y:664
 #, possible-c-format
 msgid "`%s' is not defined as an aggregate type."
 msgstr ""
 
-#: c-exp.y:971
+#: c-exp.y:1005
 #, possible-c-format
 msgid "No type \"%s\" within class or namespace \"%s\"."
 msgstr ""
 
-#: c-exp.y:1002 c-exp.y:1051 d-exp.y:458 d-exp.y:498 f-exp.y:487 go-exp.y:589
-#: m2-exp.y:601 p-exp.y:701 p-exp.y:768 printcmd.c:1494 valops.c:2712
+#: c-exp.y:1036 c-exp.y:1084 d-exp.y:458 d-exp.y:497 f-exp.y:488 go-exp.y:587
+#: m2-exp.y:601 p-exp.y:701 p-exp.y:768 printcmd.c:1448 valops.c:2698
 #, possible-c-format
 msgid "No symbol \"%s\" in current context."
 msgstr ""
 
-#: c-exp.y:1675
+#: c-exp.y:1734
 msgid "parameter types following 'void'"
 msgstr ""
 
-#: c-exp.y:1680
+#: c-exp.y:1739
 msgid "'void' invalid as parameter type"
 msgstr ""
 
-#: c-exp.y:1859 d-exp.y:826 go-exp.y:788 p-exp.y:944
+#: c-exp.y:1918 d-exp.y:821 go-exp.y:792 p-exp.y:965
 msgid "Numeric constant too large."
 msgstr ""
 
-#: c-exp.y:1961
+#: c-exp.y:2020
 msgid "\\x escape without a following hex digit"
 msgstr ""
 
-#: c-exp.y:2011
+#: c-exp.y:2070
 #, possible-c-format
 msgid "\\%c escape without a following hex digit"
 msgstr ""
 
-#: c-exp.y:2187 d-exp.y:937 go-exp.y:922 macroexp.c:412 p-exp.y:1348
+#: c-exp.y:2246 d-exp.y:932 go-exp.y:926 macroexp.c:412 p-exp.y:1369
 msgid "Unterminated string in expression."
 msgstr ""
 
-#: c-exp.y:2189 d-exp.y:939 go-exp.y:924 macroexp.c:355 p-exp.y:1179
+#: c-exp.y:2248 d-exp.y:934 go-exp.y:928 macroexp.c:355 p-exp.y:1200
 msgid "Unmatched single quote."
 msgstr ""
 
-#: c-exp.y:2589 d-exp.y:1181 f-exp.y:1069 go-exp.y:1147 m2-exp.y:918
-#: p-exp.y:1275
+#: c-exp.y:2648 d-exp.y:1176 f-exp.y:1076 go-exp.y:1151 m2-exp.y:922
+#: p-exp.y:1296
 #, possible-c-format
 msgid "Invalid number \"%s\"."
 msgstr ""
 
-#: c-exp.y:2662 d-exp.y:1233 go-exp.y:1199 p-exp.y:1166
+#: c-exp.y:2721 d-exp.y:1228 go-exp.y:1203 p-exp.y:1187
 msgid "Empty character constant."
 msgstr ""
 
-#: c-exp.y:2672 d-exp.y:1241 go-exp.y:1207 p-exp.y:1185
+#: c-exp.y:2731 d-exp.y:1236 go-exp.y:1211 p-exp.y:1206
 msgid "Invalid character constant."
 msgstr ""
 
 #. We must have come across a bad character (e.g. ';').
-#: c-exp.y:2681 f-exp.y:1103 go-exp.y:1216 m2-exp.y:927 p-exp.y:1360
+#: c-exp.y:2740 f-exp.y:1110 go-exp.y:1220 m2-exp.y:931 p-exp.y:1381
 #, possible-c-format
 msgid "Invalid character '%c' in expression."
 msgstr ""
 
-#: c-exp.y:2999
+#: c-exp.y:3058
 msgid "not reached"
 msgstr ""
 
-#: c-exp.y:3273 d-exp.y:1656 f-exp.y:1227 go-exp.y:1596 m2-exp.y:1058
-#: p-exp.y:1722
+#: c-exp.y:3334 d-exp.y:1643 f-exp.y:1230 go-exp.y:1592 m2-exp.y:1057
+#: p-exp.y:1739
 #, possible-c-format
 msgid "A %s in expression, near `%s'."
 msgstr ""
@@ -5103,19 +5185,19 @@ msgid "Internal error while converting c
 msgstr ""
 
 #. No valid charset found, generate error here.
-#: charset.c:994
+#: charset.c:988
 msgid "Unable to find a vaild charset for string conversions"
 msgstr ""
 
-#: charset.c:1037
+#: charset.c:1031
 msgid "Set the host and target character sets."
 msgstr ""
 
-#: charset.c:1038
+#: charset.c:1032
 msgid "Show the host and target character sets."
 msgstr ""
 
-#: charset.c:1039
+#: charset.c:1033
 msgid ""
 "The `host character set' is the one used by the system GDB is running on.\n"
 "The `target character set' is the one used by the program being debugged.\n"
@@ -5124,15 +5206,15 @@ msgid ""
 "To see a list of the character sets GDB supports, type `set charset <TAB>'."
 msgstr ""
 
-#: charset.c:1053
+#: charset.c:1047
 msgid "Set the host character set."
 msgstr ""
 
-#: charset.c:1054
+#: charset.c:1048
 msgid "Show the host character set."
 msgstr ""
 
-#: charset.c:1055
+#: charset.c:1049
 msgid ""
 "The `host character set' is the one used by the system GDB is running on.\n"
 "You may only use supersets of ASCII for your host character set; GDB does\n"
@@ -5141,15 +5223,15 @@ msgid ""
 "<TAB>'."
 msgstr ""
 
-#: charset.c:1065
+#: charset.c:1059
 msgid "Set the target character set."
 msgstr ""
 
-#: charset.c:1066
+#: charset.c:1060
 msgid "Show the target character set."
 msgstr ""
 
-#: charset.c:1067
+#: charset.c:1061
 msgid ""
 "The `target character set' is the one used by the program being debugged.\n"
 "GDB translates characters and strings between the host and target\n"
@@ -5158,15 +5240,15 @@ msgid ""
 "charset'<TAB>"
 msgstr ""
 
-#: charset.c:1078
+#: charset.c:1072
 msgid "Set the target wide character set."
 msgstr ""
 
-#: charset.c:1079
+#: charset.c:1073
 msgid "Show the target wide character set."
 msgstr ""
 
-#: charset.c:1080
+#: charset.c:1074
 msgid ""
 "The `target wide character set' is the one used by the program being "
 "debugged.\n"
@@ -5177,278 +5259,278 @@ msgid ""
 "`set target-wide-charset'<TAB>"
 msgstr ""
 
-#: c-lang.c:65 c-lang.c:609
+#: c-lang.c:63 c-lang.c:604
 msgid "unhandled c_string_type"
 msgstr ""
 
-#: c-lang.c:362
+#: c-lang.c:360
 #, possible-c-format
 msgid "Trying to read string with inappropriate type `%s'."
 msgstr ""
 
-#: c-lang.c:366
+#: c-lang.c:364
 msgid "Trying to read string with inappropriate type."
 msgstr ""
 
-#: c-lang.c:467
+#: c-lang.c:465
 msgid "Malformed escape sequence"
 msgstr ""
 
-#: c-lang.c:494
+#: c-lang.c:492
 msgid "\\x used with no following hex digits."
 msgstr ""
 
-#: c-lang.c:516
+#: c-lang.c:514
 msgid "\\u used with no following hex digits"
 msgstr ""
 
-#: c-lang.c:668
+#: c-lang.c:662
 msgid "Could not convert character constant to target character set"
 msgstr ""
 
 #. To avoid memory corruption.
-#: c-lang.c:694 eval.c:905
+#: c-lang.c:688 eval.c:1469
 msgid "Too many array elements"
 msgstr ""
 
-#: cli/cli-dump.c:72
+#: cli/cli-dump.c:65
 msgid "Missing filename."
 msgstr ""
 
-#: cli/cli-dump.c:111 cli/cli-dump.c:129
+#: cli/cli-dump.c:88 cli/cli-dump.c:106
 #, possible-c-format
 msgid "Failed to open %s: %s."
 msgstr ""
 
-#: cli/cli-dump.c:115
+#: cli/cli-dump.c:92
 #, possible-c-format
 msgid "'%s' is not a recognized file format."
 msgstr ""
 
-#: cli/cli-dump.c:132
+#: cli/cli-dump.c:109
 #, possible-c-format
 msgid "bfd_openw_or_error: %s."
 msgstr ""
 
 #. Append to existing file.
 #. FIXME -- doesn't work...
-#: cli/cli-dump.c:136
+#: cli/cli-dump.c:113
 msgid "bfd_openw does not work with append."
 msgstr ""
 
-#: cli/cli-dump.c:139
+#: cli/cli-dump.c:116
 #, possible-c-format
 msgid "bfd_openw_or_error: unknown mode %s."
 msgstr ""
 
-#: cli/cli-dump.c:156
+#: cli/cli-dump.c:133
 msgid ""
 "\"dump\" must be followed by a subcommand.\n"
 "\n"
 msgstr ""
 
-#: cli/cli-dump.c:163
+#: cli/cli-dump.c:140
 msgid ""
 "\"append\" must be followed by a subcommand.\n"
 "\n"
 msgstr ""
 
-#: cli/cli-dump.c:197
+#: cli/cli-dump.c:173
 #, possible-c-format
 msgid "writing dump file '%s' (%s)"
 msgstr ""
 
-#: cli/cli-dump.c:217
+#: cli/cli-dump.c:190
 msgid "Missing start address."
 msgstr ""
 
-#: cli/cli-dump.c:222
+#: cli/cli-dump.c:195
 msgid "Missing stop address."
 msgstr ""
 
-#: cli/cli-dump.c:228
+#: cli/cli-dump.c:201
 msgid "Invalid memory address range (start >= end)."
 msgstr ""
 
-#: cli/cli-dump.c:267
+#: cli/cli-dump.c:232
 #, possible-c-format
 msgid "No value to %s."
 msgstr ""
 
-#: cli/cli-dump.c:270
+#: cli/cli-dump.c:235
 msgid "Invalid expression."
 msgstr ""
 
-#: cli/cli-dump.c:289
+#: cli/cli-dump.c:252
 msgid "value is not an lval: address assumed to be zero"
 msgstr ""
 
 #. No, no useable data in this section.
-#: cli/cli-dump.c:462
+#: cli/cli-dump.c:421
 #, possible-c-format
 msgid "skipping section %s...\n"
 msgstr ""
 
-#: cli/cli-dump.c:481
+#: cli/cli-dump.c:439
 #, possible-c-format
 msgid "Failed to read bfd file %s: '%s'."
 msgstr ""
 
-#: cli/cli-dump.c:504 cli/cli-dump.c:556
+#: cli/cli-dump.c:462 cli/cli-dump.c:511
 #, possible-c-format
 msgid "restore: memory write failed (%s)."
 msgstr ""
 
-#: cli/cli-dump.c:527
+#: cli/cli-dump.c:482
 #, possible-c-format
 msgid "Start address is greater than length of binary file %s."
 msgstr ""
 
-#: cli/cli-dump.c:604
+#: cli/cli-dump.c:555
 msgid "Start must be less than end."
 msgstr ""
 
-#: cli/cli-dump.c:632
+#: cli/cli-dump.c:583
 msgid "\"dump srec\" must be followed by a subcommand.\n"
 msgstr ""
 
-#: cli/cli-dump.c:639
+#: cli/cli-dump.c:590
 msgid "\"dump ihex\" must be followed by a subcommand.\n"
 msgstr ""
 
-#: cli/cli-dump.c:646
+#: cli/cli-dump.c:597
 msgid "\"dump verilog\" must be followed by a subcommand.\n"
 msgstr ""
 
-#: cli/cli-dump.c:653
+#: cli/cli-dump.c:604
 msgid "\"dump tekhex\" must be followed by a subcommand.\n"
 msgstr ""
 
-#: cli/cli-dump.c:660
+#: cli/cli-dump.c:611
 msgid "\"dump binary\" must be followed by a subcommand.\n"
 msgstr ""
 
-#: cli/cli-dump.c:667
+#: cli/cli-dump.c:618
 msgid "\"append binary\" must be followed by a subcommand.\n"
 msgstr ""
 
-#: cli/cli-dump.c:680
+#: cli/cli-dump.c:629
 msgid "Dump target code/data to a local file."
 msgstr ""
 
-#: cli/cli-dump.c:685
+#: cli/cli-dump.c:634
 msgid "Append target code/data to a local file."
 msgstr ""
 
-#: cli/cli-dump.c:701
+#: cli/cli-dump.c:650
 msgid "Write target code/data to an srec file."
 msgstr ""
 
-#: cli/cli-dump.c:707
+#: cli/cli-dump.c:656
 msgid "Write target code/data to an intel hex file."
 msgstr ""
 
-#: cli/cli-dump.c:713
+#: cli/cli-dump.c:662
 msgid "Write target code/data to a verilog hex file."
 msgstr ""
 
-#: cli/cli-dump.c:719
+#: cli/cli-dump.c:668
 msgid "Write target code/data to a tekhex file."
 msgstr ""
 
-#: cli/cli-dump.c:725
+#: cli/cli-dump.c:674
 msgid "Write target code/data to a raw binary file."
 msgstr ""
 
-#: cli/cli-dump.c:731
+#: cli/cli-dump.c:680
 msgid "Append target code/data to a raw binary file."
 msgstr ""
 
-#: cli/cli-dump.c:736
+#: cli/cli-dump.c:685
 msgid ""
 "Write contents of memory to an srec file.\n"
 "Arguments are FILE START STOP.  Writes the contents of memory\n"
 "within the range [START .. STOP) to the specified FILE in srec format."
 msgstr ""
 
-#: cli/cli-dump.c:742
+#: cli/cli-dump.c:691
 msgid ""
 "Write the value of an expression to an srec file.\n"
 "Arguments are FILE EXPRESSION.  Writes the value of EXPRESSION\n"
 "to the specified FILE in srec format."
 msgstr ""
 
-#: cli/cli-dump.c:748
+#: cli/cli-dump.c:697
 msgid ""
 "Write contents of memory to an ihex file.\n"
 "Arguments are FILE START STOP.  Writes the contents of memory within\n"
 "the range [START .. STOP) to the specified FILE in intel hex format."
 msgstr ""
 
-#: cli/cli-dump.c:754
+#: cli/cli-dump.c:703
 msgid ""
 "Write the value of an expression to an ihex file.\n"
 "Arguments are FILE EXPRESSION.  Writes the value of EXPRESSION\n"
 "to the specified FILE in intel hex format."
 msgstr ""
 
-#: cli/cli-dump.c:760
+#: cli/cli-dump.c:709
 msgid ""
 "Write contents of memory to a verilog hex file.\n"
 "Arguments are FILE START STOP.  Writes the contents of memory within\n"
 "the range [START .. STOP) to the specified FILE in verilog hex format."
 msgstr ""
 
-#: cli/cli-dump.c:766
+#: cli/cli-dump.c:715
 msgid ""
 "Write the value of an expression to a verilog hex file.\n"
 "Arguments are FILE EXPRESSION.  Writes the value of EXPRESSION\n"
 "to the specified FILE in verilog hex format."
 msgstr ""
 
-#: cli/cli-dump.c:772
+#: cli/cli-dump.c:721
 msgid ""
 "Write contents of memory to a tekhex file.\n"
 "Arguments are FILE START STOP.  Writes the contents of memory\n"
 "within the range [START .. STOP) to the specified FILE in tekhex format."
 msgstr ""
 
-#: cli/cli-dump.c:778
+#: cli/cli-dump.c:727
 msgid ""
 "Write the value of an expression to a tekhex file.\n"
 "Arguments are FILE EXPRESSION.  Writes the value of EXPRESSION\n"
 "to the specified FILE in tekhex format."
 msgstr ""
 
-#: cli/cli-dump.c:784
+#: cli/cli-dump.c:733
 msgid ""
 "Write contents of memory to a raw binary file.\n"
 "Arguments are FILE START STOP.  Writes the contents of memory\n"
 "within the range [START .. STOP) to the specified FILE in binary format."
 msgstr ""
 
-#: cli/cli-dump.c:790
+#: cli/cli-dump.c:739
 msgid ""
 "Write the value of an expression to a raw binary file.\n"
 "Arguments are FILE EXPRESSION.  Writes the value of EXPRESSION\n"
 "to the specified FILE in raw target ordered bytes."
 msgstr ""
 
-#: cli/cli-dump.c:796
+#: cli/cli-dump.c:745
 msgid ""
 "Append contents of memory to a raw binary file.\n"
 "Arguments are FILE START STOP.  Writes the contents of memory within the\n"
 "range [START .. STOP) to the specified FILE in raw target ordered bytes."
 msgstr ""
 
-#: cli/cli-dump.c:802
+#: cli/cli-dump.c:751
 msgid ""
 "Append the value of an expression to a raw binary file.\n"
 "Arguments are FILE EXPRESSION.  Writes the value of EXPRESSION\n"
 "to the specified FILE in raw target ordered bytes."
 msgstr ""
 
-#: cli/cli-dump.c:808
+#: cli/cli-dump.c:757
 msgid ""
 "Restore the contents of FILE to target memory.\n"
 "Arguments are FILE OFFSET START END where all except FILE are optional.\n"
@@ -5469,7 +5551,7 @@ msgstr ""
 msgid "\"on\" or \"off\" expected."
 msgstr ""
 
-#: cli/cli-setshow.c:294 cli/cli-setshow.c:330 cli/cli-setshow.c:433
+#: cli/cli-setshow.c:294 cli/cli-setshow.c:330 cli/cli-setshow.c:425
 msgid "integer to set it to, or \"unlimited\"."
 msgstr ""
 
@@ -5477,273 +5559,286 @@ msgstr ""
 msgid "integer to set it to."
 msgstr ""
 
-#: cli/cli-setshow.c:312 cli/cli-setshow.c:348 cli/cli-setshow.c:441
+#: cli/cli-setshow.c:312 cli/cli-setshow.c:348 cli/cli-setshow.c:433
 #, possible-c-format
 msgid "integer %s out of range"
 msgstr ""
 
-#: cli/cli-setshow.c:386
+#: cli/cli-setshow.c:378
 #, possible-c-format
 msgid "Requires an argument. Valid arguments are %s."
 msgstr ""
 
-#: cli/cli-setshow.c:415
+#: cli/cli-setshow.c:407
 #, possible-c-format
 msgid "Undefined item: \"%s\"."
 msgstr ""
 
-#: cli/cli-setshow.c:418
+#: cli/cli-setshow.c:410
 #, possible-c-format
 msgid "Ambiguous item \"%s\"."
 msgstr ""
 
-#: cli/cli-setshow.c:443
+#: cli/cli-setshow.c:435
 msgid "only -1 is allowed to set as unlimited"
 msgstr ""
 
-#: cli/cli-setshow.c:453
+#: cli/cli-setshow.c:445
 msgid "gdb internal error: bad var_type in do_setshow_command"
 msgstr ""
 
-#: cli/cli-setshow.c:610
+#: cli/cli-setshow.c:602
 msgid "do_show_command: invalid var_auto_boolean"
 msgstr ""
 
-#: cli/cli-setshow.c:640
+#: cli/cli-setshow.c:632
 msgid "gdb internal error: bad var_type in do_show_command"
 msgstr ""
 
-#: cli/cli-decode.c:1469
+#: cli/cli-decode.c:1492
 #, possible-c-format
 msgid "Undefined %scommand: \"%s\".  Try \"help%s%.*s\"."
 msgstr ""
 
-#: cli/cli-decode.c:1503
+#: cli/cli-decode.c:1526
 #, possible-c-format
 msgid "Lack of needed %scommand"
 msgstr ""
 
-#: cli/cli-decode.c:1568
+#: cli/cli-decode.c:1591
 #, possible-c-format
 msgid "Ambiguous %scommand \"%s\": %s."
 msgstr ""
 
-#: cli/cli-decode.c:1576
+#: cli/cli-decode.c:1599
 msgid "Argument must be preceded by space."
 msgstr ""
 
-#: cli/cli-decode.c:1899
+#: cli/cli-decode.c:1889
 msgid "Invalid command"
 msgstr ""
 
-#: cli/cli-cmds.c:209
+#: cli/cli-cmds.c:187
 #, possible-c-format
 msgid "Argument required (%s)."
 msgstr ""
 
-#: cli/cli-cmds.c:219
+#: cli/cli-cmds.c:197
 msgid "\"info\" must be followed by the name of an info command.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:260
+#: cli/cli-cmds.c:235
 msgid "max-completions is zero, completion is disabled.\n"
 msgstr ""
 
-#. ARG_PREFIX and POINT are included in the output so that emacs
+#. ARG_PREFIX and WORD are included in the output so that emacs
 #. will include the message in the output.
-#: cli/cli-cmds.c:317
+#: cli/cli-cmds.c:302
 #, possible-c-format
 msgid "%s%s %s\n"
 msgstr ""
 
-#: cli/cli-cmds.c:360 cli/cli-script.c:1495 infcmd.c:1230 infcmd.c:1247
-#: infcmd.c:1349 infcmd.c:2051 infcmd.c:2579 symfile.c:1154 symfile.c:1323
-#: symfile.c:2349 symfile.c:2429 tracepoint.c:2157 tracepoint.c:2163
+#: cli/cli-cmds.c:345 cli/cli-script.c:1489 infcmd.c:1262 infcmd.c:1279
+#: infcmd.c:1379 infcmd.c:2055 infcmd.c:2579 symfile.c:1149 symfile.c:1318
+#: symfile.c:2328 symfile.c:2402 tracepoint.c:2078 tracepoint.c:2084
 msgid "Not confirmed."
 msgstr ""
 
-#: cli/cli-cmds.c:371
+#: cli/cli-cmds.c:356
 #, possible-c-format
 msgid "The \"pwd\" command does not take an argument: %s"
 msgstr ""
 
-#: cli/cli-cmds.c:373
+#: cli/cli-cmds.c:361
 #, possible-c-format
 msgid "Error finding name of working directory: %s"
 msgstr ""
 
-#: cli/cli-cmds.c:377
+#: cli/cli-cmds.c:365
 #, possible-c-format
 msgid ""
 "Working directory %s\n"
 " (canonically %s).\n"
 msgstr ""
 
-#: cli/cli-cmds.c:380
+#: cli/cli-cmds.c:368
 #, possible-c-format
 msgid "Working directory %s.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:492
+#: cli/cli-cmds.c:482
 #, possible-c-format
 msgid "Script filename extension recognition is \"%s\".\n"
 msgstr ""
 
-#: cli/cli-cmds.c:604
+#: cli/cli-cmds.c:581
 msgid "source command requires file name of file to source."
 msgstr ""
 
-#: cli/cli-cmds.c:792
+#: cli/cli-cmds.c:753
 msgid "Fork failed"
 msgstr ""
 
-#: cli/cli-cmds.c:826
+#: cli/cli-cmds.c:786
 msgid "No default source file yet."
 msgstr ""
 
-#: cli/cli-cmds.c:857 cli/cli-cmds.c:1044
+#: cli/cli-cmds.c:810
+msgid "Specified line is ambiguous:\n"
+msgstr ""
+
+#: cli/cli-cmds.c:817 cli/cli-cmds.c:1012
 msgid "Junk at end of line specification."
 msgstr ""
 
-#: cli/cli-cmds.c:868 cli/cli-cmds.c:1062
+#: cli/cli-cmds.c:828 cli/cli-cmds.c:1030
 #, possible-c-format
 msgid "No source file for address %s."
 msgstr ""
 
-#: cli/cli-cmds.c:890 cli/cli-cmds.c:1083
+#: cli/cli-cmds.c:850 cli/cli-cmds.c:1051
 #, possible-c-format
 msgid "No line number known for %s."
 msgstr ""
 
-#: cli/cli-cmds.c:956
+#: cli/cli-cmds.c:912
 #, possible-c-format
 msgid "Already at the start of %s."
 msgstr ""
 
-#: cli/cli-cmds.c:1048
-msgid "Specified start and end are in different files."
+#: cli/cli-cmds.c:972
+#, possible-c-format
+msgid "Specified first line '%.*s' is ambiguous:\n"
+msgstr ""
+
+#: cli/cli-cmds.c:1003
+#, possible-c-format
+msgid "Specified last line '%s' is ambiguous:\n"
+msgstr ""
+
+#: cli/cli-cmds.c:1016
+msgid "Specified first and last lines are in different files."
 msgstr ""
 
-#: cli/cli-cmds.c:1050
+#: cli/cli-cmds.c:1018
 msgid "Two empty args do not say what lines to list."
 msgstr ""
 
-#: cli/cli-cmds.c:1092 cli/cli-cmds.c:1098
+#: cli/cli-cmds.c:1060 cli/cli-cmds.c:1066
 msgid "No default source file yet.  Do \"help list\"."
 msgstr ""
 
-#: cli/cli-cmds.c:1164 dwarf2loc.c:2242 dwarf2loc.c:2278
-#: python/py-symbol.c:394 stack.c:2147 stack.c:2229 valops.c:1311
+#: cli/cli-cmds.c:1138 dwarf2loc.c:2226 dwarf2loc.c:2262
+#: python/py-symbol.c:394 stack.c:2112 stack.c:2194 valops.c:1301
 msgid "No frame selected."
 msgstr ""
 
-#: cli/cli-cmds.c:1168
+#: cli/cli-cmds.c:1142
 msgid "No function contains program counter for selected frame."
 msgstr ""
 
-#: cli/cli-cmds.c:1224 record.c:490 record.c:633
+#: cli/cli-cmds.c:1198 record.c:494 record.c:635
 msgid "Missing modifier."
 msgstr ""
 
-#: cli/cli-cmds.c:1240
+#: cli/cli-cmds.c:1214
 msgid "Invalid disassembly modifier."
 msgstr ""
 
-#: cli/cli-cmds.c:1249
+#: cli/cli-cmds.c:1223
 msgid "Cannot specify both /m and /s."
 msgstr ""
 
-#: cli/cli-cmds.c:1265
+#: cli/cli-cmds.c:1239
 msgid "No function contains specified address."
 msgstr ""
 
-#: cli/cli-cmds.c:1320
+#: cli/cli-cmds.c:1294
 msgid "Not a user command."
 msgstr ""
 
-#: cli/cli-cmds.c:1343
+#: cli/cli-cmds.c:1314
 msgid "REGEXP string is empty"
 msgstr ""
 
-#: cli/cli-cmds.c:1359
-#, possible-c-format
-msgid "Error in regular expression: %s"
+#: cli/cli-cmds.c:1317
+msgid "Error in regular expression"
 msgstr ""
 
-#: cli/cli-cmds.c:1415
+#: cli/cli-cmds.c:1374
 msgid "Usage: alias [-a] [--] ALIAS = COMMAND"
 msgstr ""
 
-#: cli/cli-cmds.c:1467
+#: cli/cli-cmds.c:1422
 #, possible-c-format
 msgid "Invalid command name: %s"
 msgstr ""
 
-#: cli/cli-cmds.c:1469
+#: cli/cli-cmds.c:1424
 #, possible-c-format
 msgid "Invalid command element name: %s"
 msgstr ""
 
-#: cli/cli-cmds.c:1482
+#: cli/cli-cmds.c:1438
 #, possible-c-format
 msgid "Invalid command to alias to: %s"
 msgstr ""
 
-#: cli/cli-cmds.c:1488
+#: cli/cli-cmds.c:1444
 #, possible-c-format
 msgid "Alias already exists: %s"
 msgstr ""
 
-#: cli/cli-cmds.c:1511
+#: cli/cli-cmds.c:1467
 msgid "Mismatched command length between ALIAS and COMMAND."
 msgstr ""
 
-#: cli/cli-cmds.c:1529
+#: cli/cli-cmds.c:1485
 msgid "ALIAS and COMMAND prefixes do not match."
 msgstr ""
 
-#: cli/cli-cmds.c:1551
+#: cli/cli-cmds.c:1506
 #, possible-c-format
-msgid "file: \"%s\", line number: %d\n"
+msgid "file: \"%s\", line number: %d, symbol: \"%s\"\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1641
+#: cli/cli-cmds.c:1594
 msgid "\"set debug\" must be followed by the name of a debug subcommand.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1665
+#: cli/cli-cmds.c:1618
 #, possible-c-format
 msgid "Verbose printing of informational messages is %s.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1668
+#: cli/cli-cmds.c:1621
 #, possible-c-format
 msgid "Verbosity is %s.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1675
+#: cli/cli-cmds.c:1628
 #, possible-c-format
 msgid "History expansion on command input is %s.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1683
+#: cli/cli-cmds.c:1636
 #, possible-c-format
 msgid "Debugging of remote protocol is %s.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1692
+#: cli/cli-cmds.c:1645
 #, possible-c-format
 msgid "Timeout limit to wait for target to respond is %s.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1701
+#: cli/cli-cmds.c:1654
 #, possible-c-format
 msgid "The max call depth for user-defined commands is %s.\n"
 msgstr ""
 
 #. Define the classes of commands.
 #. They will appear in the help list in alphabetical order.
-#: cli/cli-cmds.c:1717
+#: cli/cli-cmds.c:1666
 msgid ""
 "Maintenance commands.\n"
 "Some gdb commands are provided just for use by gdb maintainers.\n"
@@ -5751,42 +5846,42 @@ msgid ""
 "well documented as user commands."
 msgstr ""
 
-#: cli/cli-cmds.c:1723
+#: cli/cli-cmds.c:1672
 msgid "Obscure features."
 msgstr ""
 
-#: cli/cli-cmds.c:1725
+#: cli/cli-cmds.c:1674
 msgid "Aliases of other commands."
 msgstr ""
 
-#: cli/cli-cmds.c:1726
+#: cli/cli-cmds.c:1675
 msgid ""
 "User-defined commands.\n"
 "The commands in this class are those defined by the user.\n"
 "Use the \"define\" command to define a command."
 msgstr ""
 
-#: cli/cli-cmds.c:1730
+#: cli/cli-cmds.c:1679
 msgid "Support facilities."
 msgstr ""
 
-#: cli/cli-cmds.c:1732
+#: cli/cli-cmds.c:1681
 msgid "Status inquiries."
 msgstr ""
 
-#: cli/cli-cmds.c:1733
+#: cli/cli-cmds.c:1682
 msgid "Specifying and examining files."
 msgstr ""
 
-#: cli/cli-cmds.c:1736
+#: cli/cli-cmds.c:1685
 msgid "Making program stop at certain points."
 msgstr ""
 
-#: cli/cli-cmds.c:1737
+#: cli/cli-cmds.c:1686
 msgid "Examining data."
 msgstr ""
 
-#: cli/cli-cmds.c:1738
+#: cli/cli-cmds.c:1687
 msgid ""
 "Examining the stack.\n"
 "The stack is made up of stack frames.  Gdb assigns numbers to stack frames\n"
@@ -5798,23 +5893,26 @@ msgid ""
 "The commands below can be used to select other frames by number or address."
 msgstr ""
 
-#: cli/cli-cmds.c:1747
+#: cli/cli-cmds.c:1696
 msgid "Running the program."
 msgstr ""
 
 #. Define general commands.
-#: cli/cli-cmds.c:1751
+#: cli/cli-cmds.c:1700
 msgid "Print working directory.  This is used for your program as well."
 msgstr ""
 
-#: cli/cli-cmds.c:1754
+#: cli/cli-cmds.c:1703
 msgid ""
-"Set working directory to DIR for debugger and program being debugged.\n"
-"The change does not take effect for the program being debugged\n"
-"until the next time it is started."
+"Set working directory to DIR for debugger.\n"
+"The debugger's current working directory specifies where scripts and other\n"
+"files that can be loaded by GDB are located.\n"
+"In order to change the inferior's current working directory, the "
+"recommended\n"
+"way is to use the \"set cwd\" command."
 msgstr ""
 
-#: cli/cli-cmds.c:1760
+#: cli/cli-cmds.c:1711
 msgid ""
 "Print a constant string.  Give string as argument.\n"
 "C escape sequences may be used in the argument.\n"
@@ -5825,15 +5923,15 @@ msgid ""
 "to be printed or after trailing whitespace."
 msgstr ""
 
-#: cli/cli-cmds.c:1770
+#: cli/cli-cmds.c:1721
 msgid "Set mode for script filename extension recognition."
 msgstr ""
 
-#: cli/cli-cmds.c:1771
+#: cli/cli-cmds.c:1722
 msgid "Show mode for script filename extension recognition."
 msgstr ""
 
-#: cli/cli-cmds.c:1772
+#: cli/cli-cmds.c:1723
 msgid ""
 "off  == no filename extension recognition (all sourced files are GDB "
 "scripts)\n"
@@ -5843,7 +5941,7 @@ msgid ""
 "supported"
 msgstr ""
 
-#: cli/cli-cmds.c:1782
+#: cli/cli-cmds.c:1733
 msgid ""
 "Exit gdb.\n"
 "Usage: quit [EXPR]\n"
@@ -5851,113 +5949,113 @@ msgid ""
 "used as GDB's exit code.  The default is zero."
 msgstr ""
 
-#: cli/cli-cmds.c:1788
+#: cli/cli-cmds.c:1739
 msgid "Print list of commands."
 msgstr ""
 
-#: cli/cli-cmds.c:1793
+#: cli/cli-cmds.c:1744
 msgid "Set verbosity."
 msgstr ""
 
-#: cli/cli-cmds.c:1794
+#: cli/cli-cmds.c:1745
 msgid "Show verbosity."
 msgstr ""
 
-#: cli/cli-cmds.c:1801
+#: cli/cli-cmds.c:1752
 msgid "Generic command for setting command history parameters."
 msgstr ""
 
-#: cli/cli-cmds.c:1804
+#: cli/cli-cmds.c:1755
 msgid "Generic command for showing command history parameters."
 msgstr ""
 
-#: cli/cli-cmds.c:1807
+#: cli/cli-cmds.c:1758
 msgid "Set history expansion on command input."
 msgstr ""
 
-#: cli/cli-cmds.c:1808
+#: cli/cli-cmds.c:1759
 msgid "Show history expansion on command input."
 msgstr ""
 
-#: cli/cli-cmds.c:1809
+#: cli/cli-cmds.c:1760
 msgid "Without an argument, history expansion is enabled."
 msgstr ""
 
-#: cli/cli-cmds.c:1815
+#: cli/cli-cmds.c:1766
 msgid "Generic command for showing things about the program being debugged."
 msgstr ""
 
-#: cli/cli-cmds.c:1822
+#: cli/cli-cmds.c:1773
 msgid "List the completions for the rest of the line as a command."
 msgstr ""
 
-#: cli/cli-cmds.c:1824
+#: cli/cli-cmds.c:1775
 msgid "Generic command for showing things about the debugger."
 msgstr ""
 
 #. Another way to get at the same thing.
-#: cli/cli-cmds.c:1828
+#: cli/cli-cmds.c:1779
 msgid "Show all GDB settings."
 msgstr ""
 
-#: cli/cli-cmds.c:1830
+#: cli/cli-cmds.c:1781
 msgid ""
 "Show the history of commands you typed.\n"
 "You can supply a command number to start with, or a `+' to start after\n"
 "the previous command number shown."
 msgstr ""
 
-#: cli/cli-cmds.c:1837
+#: cli/cli-cmds.c:1788
 msgid "Show what version of GDB this is."
 msgstr ""
 
-#: cli/cli-cmds.c:1840
+#: cli/cli-cmds.c:1791
 msgid "Show how GDB was configured at build time."
 msgstr ""
 
-#: cli/cli-cmds.c:1842
+#: cli/cli-cmds.c:1793
 msgid "Set debugging of remote protocol."
 msgstr ""
 
-#: cli/cli-cmds.c:1843
+#: cli/cli-cmds.c:1794
 msgid "Show debugging of remote protocol."
 msgstr ""
 
-#: cli/cli-cmds.c:1844
+#: cli/cli-cmds.c:1795
 msgid ""
 "When enabled, each packet sent or received with the remote target\n"
 "is displayed."
 msgstr ""
 
-#: cli/cli-cmds.c:1852
+#: cli/cli-cmds.c:1803
 msgid "Set timeout limit to wait for target to respond."
 msgstr ""
 
-#: cli/cli-cmds.c:1853
+#: cli/cli-cmds.c:1804
 msgid "Show timeout limit to wait for target to respond."
 msgstr ""
 
-#: cli/cli-cmds.c:1854
+#: cli/cli-cmds.c:1805
 msgid ""
 "This value is used to set the time limit for gdb to wait for a response\n"
 "from the target."
 msgstr ""
 
-#: cli/cli-cmds.c:1862
+#: cli/cli-cmds.c:1813
 msgid "Generic command for setting gdb debugging flags"
 msgstr ""
 
-#: cli/cli-cmds.c:1866
+#: cli/cli-cmds.c:1817
 msgid "Generic command for showing gdb debugging flags"
 msgstr ""
 
-#: cli/cli-cmds.c:1869
+#: cli/cli-cmds.c:1820
 msgid ""
 "Execute the rest of the line as a shell command.\n"
 "With no arguments, run an inferior shell."
 msgstr ""
 
-#: cli/cli-cmds.c:1874
+#: cli/cli-cmds.c:1825
 msgid ""
 "Edit specified file or function.\n"
 "With no argument, edits file containing most recent line listed.\n"
@@ -5969,7 +6067,7 @@ msgid ""
 "Uses EDITOR environment variable contents as editor (or ex as default)."
 msgstr ""
 
-#: cli/cli-cmds.c:1886
+#: cli/cli-cmds.c:1837
 msgid ""
 "List specified function or line.\n"
 "With no argument, lists ten more lines after or around previous listing.\n"
@@ -5990,7 +6088,7 @@ msgid ""
 "can be shown using \"show listsize\"."
 msgstr ""
 
-#: cli/cli-cmds.c:1910
+#: cli/cli-cmds.c:1861
 msgid ""
 "Disassemble a specified section of memory.\n"
 "Default is the function surrounding the pc of the selected frame.\n"
@@ -6020,42 +6118,42 @@ msgid ""
 "you must type \"disassemble 'foo.c'::bar\" and not \"disassemble foo.c:bar\"."
 msgstr ""
 
-#: cli/cli-cmds.c:1940
+#: cli/cli-cmds.c:1891
 msgid "Run the ``make'' program using the rest of the line as arguments."
 msgstr ""
 
-#: cli/cli-cmds.c:1943
+#: cli/cli-cmds.c:1894
 msgid ""
 "Show definitions of non-python/scheme user defined commands.\n"
 "Argument is the name of the user defined command.\n"
 "With no argument, show definitions of all user defined commands."
 msgstr ""
 
-#: cli/cli-cmds.c:1948
+#: cli/cli-cmds.c:1899
 msgid "Search for commands matching a REGEXP"
 msgstr ""
 
-#: cli/cli-cmds.c:1951
+#: cli/cli-cmds.c:1902
 msgid "Set the max call depth for non-python/scheme user-defined commands."
 msgstr ""
 
-#: cli/cli-cmds.c:1952
+#: cli/cli-cmds.c:1903
 msgid "Show the max call depth for non-python/scheme user-defined commands."
 msgstr ""
 
-#: cli/cli-cmds.c:1958
+#: cli/cli-cmds.c:1909
 msgid "Set tracing of GDB CLI commands."
 msgstr ""
 
-#: cli/cli-cmds.c:1959
+#: cli/cli-cmds.c:1910
 msgid "Show state of GDB CLI command tracing."
 msgstr ""
 
-#: cli/cli-cmds.c:1960
+#: cli/cli-cmds.c:1911
 msgid "When 'on', each command is displayed as it is executed."
 msgstr ""
 
-#: cli/cli-cmds.c:1966
+#: cli/cli-cmds.c:1917
 msgid ""
 "Define a new command that is an alias of an existing command.\n"
 "Usage: alias [-a] [--] ALIAS = COMMAND\n"
@@ -6071,7 +6169,7 @@ msgid ""
 "  alias -a set print elms = set print elements"
 msgstr ""
 
-#: cli/cli-cmds.c:1987
+#: cli/cli-cmds.c:1938
 #, possible-c-format
 msgid ""
 "Read commands from a file named FILE.\n"
@@ -6085,116 +6183,116 @@ msgid ""
 "when GDB is started."
 msgstr ""
 
-#: cli/cli-script.c:151
+#: cli/cli-script.c:152
 msgid "if/while commands require arguments."
 msgstr ""
 
-#: cli/cli-script.c:178
+#: cli/cli-script.c:179
 msgid "Error reading in canned sequence of commands."
 msgstr ""
 
-#: cli/cli-script.c:405
+#: cli/cli-script.c:403
 msgid "Max user call depth exceeded -- command aborted."
 msgstr ""
 
-#: cli/cli-script.c:426
+#: cli/cli-script.c:419
 msgid "Error executing canned sequence of commands."
 msgstr ""
 
-#: cli/cli-script.c:649
+#: cli/cli-script.c:642
 msgid "Invalid control type in canned commands structure."
 msgstr ""
 
-#: cli/cli-script.c:822
+#: cli/cli-script.c:827
 #, possible-c-format
 msgid "Missing argument %ld in user function."
 msgstr ""
 
-#: cli/cli-script.c:875
+#: cli/cli-script.c:880
 msgid "Control nesting too deep!"
 msgstr ""
 
-#: cli/cli-script.c:1091
+#: cli/cli-script.c:1097
 msgid "Recursed on a simple control type."
 msgstr ""
 
-#: cli/cli-script.c:1094
+#: cli/cli-script.c:1100
 msgid "Allocated body is smaller than this command type needs."
 msgstr ""
 
-#: cli/cli-script.c:1377
+#: cli/cli-script.c:1375
 msgid "name of command to define"
 msgstr ""
 
-#: cli/cli-script.c:1400
+#: cli/cli-script.c:1396
 #, possible-c-format
 msgid "\"%s\" is not a prefix command."
 msgstr ""
 
-#: cli/cli-script.c:1411
+#: cli/cli-script.c:1406
 #, possible-c-format
 msgid "Junk in argument list: \"%s\""
 msgstr ""
 
-#: cli/cli-script.c:1460
+#: cli/cli-script.c:1454
 #, possible-c-format
 msgid "Redefine command \"%s\"? "
 msgstr ""
 
-#: cli/cli-script.c:1462
+#: cli/cli-script.c:1456
 #, possible-c-format
 msgid "Really redefine built-in command \"%s\"? "
 msgstr ""
 
-#: cli/cli-script.c:1464
+#: cli/cli-script.c:1458
 #, possible-c-format
 msgid "Command \"%s\" not redefined."
 msgstr ""
 
-#: cli/cli-script.c:1491
+#: cli/cli-script.c:1485
 #, possible-c-format
 msgid "Your new `%s' command does not hook any existing command."
 msgstr ""
 
-#: cli/cli-script.c:1494
+#: cli/cli-script.c:1488
 msgid "Proceed? "
 msgstr ""
 
 #. Should never come here as hookc would be 0.
-#: cli/cli-script.c:1530 common/common-exceptions.c:145
+#: cli/cli-script.c:1524 common/common-exceptions.c:145
 #: common/common-exceptions.c:161 common/common-exceptions.c:177
-#: complaints.c:302 hppa-tdep.c:3147 hppa-tdep.c:3160 infcall.c:940
-#: infcmd.c:1641 language.c:463 mi/mi-out.c:213 mi/mi-out.c:233
-#: mips-tdep.c:292 mips-tdep.c:496 mips-tdep.c:2208 mips-tdep.c:5726
-#: mips-tdep.c:6905 mn10300-tdep.c:124 reggroups.c:248 remote.c:1559
-#: remote.c:8260 remote.c:9588 utils.c:644 utils.c:671
+#: complaints.c:297 hppa-tdep.c:3145 hppa-tdep.c:3158 infcall.c:966
+#: infcmd.c:1655 language.c:468 mi/mi-out.c:213 mi/mi-out.c:233
+#: mips-tdep.c:295 mips-tdep.c:499 mips-tdep.c:2209 mips-tdep.c:5730
+#: mips-tdep.c:6897 mn10300-tdep.c:127 reggroups.c:272 remote.c:1548
+#: remote.c:8241 remote.c:9528 utils.c:460 utils.c:488
 msgid "bad switch"
 msgstr ""
 
-#: cli/cli-script.c:1550
+#: cli/cli-script.c:1544
 #, possible-c-format
 msgid "Command \"%s\" is built-in."
 msgstr ""
 
-#: cli/cli-script.c:1606
+#: cli/cli-script.c:1581
 msgid "called with NULL file pointer!"
 msgstr ""
 
-#: cli/cli-script.c:1626
+#: cli/cli-script.c:1599
 #, possible-c-format
 msgid ""
 "%s:%d: Error in sourced command file:\n"
 "%s"
 msgstr ""
 
-#: cli/cli-script.c:1671
+#: cli/cli-script.c:1637
 msgid ""
 "Document a user-defined command.\n"
 "Give command name as argument.  Give documentation on following lines.\n"
 "End with a line of just \"end\"."
 msgstr ""
 
-#: cli/cli-script.c:1675
+#: cli/cli-script.c:1641
 msgid ""
 "Define a new command name.  Command name is argument.\n"
 "Definition appears on following lines, one command per line.\n"
@@ -6203,7 +6301,7 @@ msgid ""
 "Commands defined in this way may have up to ten arguments."
 msgstr ""
 
-#: cli/cli-script.c:1682
+#: cli/cli-script.c:1648
 msgid ""
 "Execute nested commands WHILE the conditional expression is non zero.\n"
 "The conditional expression must follow the word `while' and must in turn be\n"
@@ -6211,7 +6309,7 @@ msgid ""
 "and should be terminated by the word `end'."
 msgstr ""
 
-#: cli/cli-script.c:1688
+#: cli/cli-script.c:1654
 msgid ""
 "Execute nested commands once IF the conditional expression is non zero.\n"
 "The conditional expression must follow the word `if' and must in turn be\n"
@@ -6232,21 +6330,21 @@ msgid ""
 "setting effective."
 msgstr ""
 
-#: cli/cli-logging.c:57
+#: cli/cli-logging.c:58
 #, possible-c-format
 msgid "Whether logging overwrites or appends to the log file is %s.\n"
 msgstr ""
 
-#: cli/cli-logging.c:75
+#: cli/cli-logging.c:77
 #, possible-c-format
 msgid "The logging output mode is %s.\n"
 msgstr ""
 
-#: cli/cli-logging.c:120
+#: cli/cli-logging.c:122
 msgid "set logging"
 msgstr ""
 
-#: cli/cli-logging.c:177
+#: cli/cli-logging.c:179
 msgid ""
 "\"set logging\" lets you log output to a file.\n"
 "Usage: set logging on [FILENAME]\n"
@@ -6256,103 +6354,103 @@ msgid ""
 "       set logging redirect [on|off]\n"
 msgstr ""
 
-#: cli/cli-logging.c:189
+#: cli/cli-logging.c:191
 #, possible-c-format
 msgid "Currently logging to \"%s\".\n"
 msgstr ""
 
-#: cli/cli-logging.c:192
+#: cli/cli-logging.c:194
 #, possible-c-format
 msgid "Future logs will be written to %s.\n"
 msgstr ""
 
-#: cli/cli-logging.c:196
+#: cli/cli-logging.c:198
 msgid "Logs will overwrite the log file.\n"
 msgstr ""
 
-#: cli/cli-logging.c:198
+#: cli/cli-logging.c:200
 msgid "Logs will be appended to the log file.\n"
 msgstr ""
 
-#: cli/cli-logging.c:201
+#: cli/cli-logging.c:203
 msgid "Output will be sent only to the log file.\n"
 msgstr ""
 
-#: cli/cli-logging.c:203
+#: cli/cli-logging.c:205
 msgid "Output will be logged and displayed.\n"
 msgstr ""
 
-#: cli/cli-logging.c:215
+#: cli/cli-logging.c:214
 msgid "Set logging options"
 msgstr ""
 
-#: cli/cli-logging.c:218
+#: cli/cli-logging.c:217
 msgid "Show logging options"
 msgstr ""
 
-#: cli/cli-logging.c:220
+#: cli/cli-logging.c:219
 msgid "Set whether logging overwrites or appends to the log file."
 msgstr ""
 
-#: cli/cli-logging.c:221
+#: cli/cli-logging.c:220
 msgid "Show whether logging overwrites or appends to the log file."
 msgstr ""
 
-#: cli/cli-logging.c:222
+#: cli/cli-logging.c:221
 msgid "If set, logging overrides the log file."
 msgstr ""
 
-#: cli/cli-logging.c:227
+#: cli/cli-logging.c:226
 msgid "Set the logging output mode."
 msgstr ""
 
-#: cli/cli-logging.c:228
+#: cli/cli-logging.c:227
 msgid "Show the logging output mode."
 msgstr ""
 
-#: cli/cli-logging.c:229
+#: cli/cli-logging.c:228
 msgid ""
 "If redirect is off, output will go to both the screen and the log file.\n"
 "If redirect is on, output will go only to the log file."
 msgstr ""
 
-#: cli/cli-logging.c:235
+#: cli/cli-logging.c:234
 msgid "Set the current logfile."
 msgstr ""
 
-#: cli/cli-logging.c:236
+#: cli/cli-logging.c:235
 msgid "Show the current logfile."
 msgstr ""
 
-#: cli/cli-logging.c:237
+#: cli/cli-logging.c:236
 msgid "The logfile is used when directing GDB's output."
 msgstr ""
 
-#: cli/cli-logging.c:243
+#: cli/cli-logging.c:242
 msgid "Enable logging."
 msgstr ""
 
-#: cli/cli-logging.c:245
+#: cli/cli-logging.c:244
 msgid "Disable logging."
 msgstr ""
 
-#: cli/cli-utils.c:44
+#: cli/cli-utils.c:51
 msgid "History value must have integer type.\n"
 msgstr ""
 
-#: cli/cli-utils.c:65
+#: cli/cli-utils.c:72
 msgid "Convenience variable must have integer value.\n"
 msgstr ""
 
-#: cli/cli-utils.c:179
+#: cli/cli-utils.c:185
 msgid "inverted range"
 msgstr ""
 
-#: cli/cli-utils.c:193
+#: cli/cli-utils.c:199
 msgid "negative value"
 msgstr ""
 
-#: cli/cli-utils.c:232
+#: cli/cli-utils.c:238
 msgid "Args must be numbers or '$' variables."
 msgstr ""
 
@@ -6409,15 +6507,15 @@ msgstr ""
 msgid "Coff PE read debugging is %s.\n"
 msgstr ""
 
-#: coff-pe-read.c:712
+#: coff-pe-read.c:708
 msgid "Set coff PE read debugging."
 msgstr ""
 
-#: coff-pe-read.c:713
+#: coff-pe-read.c:709
 msgid "Show coff PE read debugging."
 msgstr ""
 
-#: coff-pe-read.c:714
+#: coff-pe-read.c:710
 msgid ""
 "When set, debugging messages for coff reading of exported symbols are "
 "displayed."
@@ -6433,84 +6531,85 @@ msgstr ""
 msgid "\"%s\": can't get string table"
 msgstr ""
 
-#: coffread.c:708
+#: coffread.c:709
 #, possible-c-format
 msgid ""
 "The debugging information in `%s' is corrupted.\n"
 "The file has a `.stabs' section, but no `.stabstr' section."
 msgstr ""
 
-#: coffread.c:902
+#: coffread.c:903
 #, possible-c-format
 msgid "Bad n_sclass for symbol %s"
 msgstr ""
 
-#: coffread.c:1070
+#: coffread.c:1071
 #, possible-c-format
 msgid "`.bf' symbol %d has no aux entry"
 msgstr ""
 
-#: coffread.c:1088
+#: coffread.c:1089
 msgid "Bad coff function information."
 msgstr ""
 
-#: coffread.c:1097
+#: coffread.c:1098
 #, possible-c-format
 msgid ""
 "`.ef' symbol without matching `.bf' symbol ignored starting at symnum %d"
 msgstr ""
 
-#: coffread.c:1109
+#: coffread.c:1110
 #, possible-c-format
 msgid "Unmatched .ef symbol(s) ignored starting at symnum %d"
 msgstr ""
 
-#: coffread.c:1118
+#: coffread.c:1119
 #, possible-c-format
 msgid "`.ef' symbol %d has no aux entry"
 msgstr ""
 
-#: coffread.c:1164
+#: coffread.c:1165
 #, possible-c-format
 msgid ""
 "`.eb' symbol without matching `.bb' symbol ignored starting at symnum %d"
 msgstr ""
 
-#: coffread.c:1174 xcoffread.c:198
+#: coffread.c:1175 xcoffread.c:200
 #, possible-c-format
 msgid "Mismatched .eb symbol ignored starting at symnum %d"
 msgstr ""
 
-#: coffread.c:1240 coffread.c:1247 coffread.c:1257
+#: coffread.c:1241 coffread.c:1248 coffread.c:1258
 #, possible-c-format
 msgid "%s: error reading symbols"
 msgstr ""
 
-#: coffread.c:1271
+#: coffread.c:1272
 #, c-format
 msgid "thumb symbol %s, class 0x%x\n"
 msgstr ""
 
-#: coffread.c:1397
+#: coffread.c:1398
 msgid "coff file name too long"
 msgstr ""
 
-#: coffread.c:1484
+#: coffread.c:1485
 #, possible-c-format
 msgid "Line number pointer %ld lower than start of line numbers"
 msgstr ""
 
-#: coffread.c:1881
+#: coffread.c:1882
 #, possible-c-format
 msgid "Symbol table entry for %s has bad tagndx value"
 msgstr ""
 
-#: coffread.c:2051
+#: coffread.c:2052
 #, possible-c-format
 msgid "Unexpected type for symbol %s"
 msgstr ""
 
-#: common/common-regcache.c:34 frame.c:1167 frame.c:1285 regcache.c:769
+#: common/common-regcache.c:34 frame.c:1161 frame.c:1261 frame.c:1296
+#: regcache.c:656
 #, possible-c-format
 msgid "Register %d is not available"
 msgstr ""
@@ -6563,8 +6662,8 @@ msgstr ""
 msgid "Intel Processor Trace"
 msgstr ""
 
-#: common/btrace-common.c:41 common/btrace-common.c:61 nat/linux-btrace.c:662
-#: remote.c:13127
+#: common/btrace-common.c:41 common/btrace-common.c:61 nat/linux-btrace.c:657
+#: remote.c:13123
 msgid "Unknown branch trace format"
 msgstr ""
 
@@ -6583,96 +6682,130 @@ msgstr ""
 msgid "Signal %s does not exist on this system."
 msgstr ""
 
-#: common/filestuff.c:197
+#. Check that VALUE is true, and, if not, throw an exception.
+#: common/selftest.h:70
+#, possible-c-format
+msgid "self-test failed at %s:%d"
+msgstr ""
+
+#: common/filestuff.c:191
 msgid "fd not found in open_fds"
 msgstr ""
 
-#: common/filestuff.c:360
+#: common/filestuff.c:352
 msgid "socketpair not available on this host"
 msgstr ""
 
-#: common/filestuff.c:401
+#: common/filestuff.c:393
 msgid "pipe not available on this host"
 msgstr ""
 
-#: common/common-utils.c:135
+#: common/common-utils.c:129
 msgid "vasprintf call failed"
 msgstr ""
 
-#: common/gdb_assert.h:41
+#: common/gdb_assert.h:40
 #, possible-c-format
 msgid "%s: Assertion `%s' failed."
 msgstr ""
 
-#: common/gdb_assert.h:45
+#: common/gdb_assert.h:44
 #, possible-c-format
 msgid "Assertion `%s' failed."
 msgstr ""
 
+#: common/gdb_tilde_expand.c:39
+#, possible-c-format
+msgid "Could not find a match for '%s'."
+msgstr ""
+
+#: common/gdb_tilde_expand.c:41
+#, possible-c-format
+msgid "glob could not process pattern '%s'."
+msgstr ""
+
 #: common/rsp-low.c:35
 #, possible-c-format
 msgid "Reply contains invalid hex digit %d"
 msgstr ""
 
-#: common/rsp-low.c:228
+#: common/rsp-low.c:282
 msgid "Received too much data from the target."
 msgstr ""
 
-#: common/rsp-low.c:242
+#: common/rsp-low.c:296
 msgid "Unmatched escape character in target response."
 msgstr ""
 
+#: common/selftest.c:86
+#, possible-c-format
+msgid "Running selftest %s.\n"
+msgstr ""
+
+#: common/selftest.c:100
+#, possible-c-format
+msgid "Ran %d unit tests, %d failed\n"
+msgstr ""
+
 #: common/print-utils.c:241
 msgid "hex_string_custom: insufficient space to store result"
 msgstr ""
 
 #. ??? TODO: handle other escape sequences.
-#: common/format.c:83
+#: common/format.c:79
 #, possible-c-format
 msgid "Unrecognized escape character \\%c in format string."
 msgstr ""
 
-#: common/format.c:289
+#: common/format.c:282
 msgid "`*' not supported for precision or width in printf"
 msgstr ""
 
-#: common/format.c:292
+#: common/format.c:285
 msgid "Format specifier `n' not supported in printf"
 msgstr ""
 
-#: common/format.c:295
+#: common/format.c:288
 msgid "Incomplete format specifier at end of format string"
 msgstr ""
 
-#: common/format.c:298
+#: common/format.c:291
 #, possible-c-format
 msgid "Unrecognized format specifier '%c' in printf"
 msgstr ""
 
-#: common/format.c:302
+#: common/format.c:295
 #, possible-c-format
 msgid "Inappropriate modifiers to format specifier '%c' in printf"
 msgstr ""
 
-#: common/signals-state-save-restore.c:64
-msgid "unexpected signal handler"
+#: common/signals-state-save-restore.c:78
+#, c-format
+msgid "warning: Found custom handler for signal %d (%s) preinstalled.\n"
+msgstr ""
+
+#: common/signals-state-save-restore.c:86
+#, c-format
+msgid ""
+"Some signal dispositions inherited from the environment (SIG_DFL/SIG_IGN)\n"
+"won't be propagated to spawned programs.\n"
 msgstr ""
 
 #: compile/compile-loc2c.c:97
 msgid "inconsistent stack depths"
 msgstr ""
 
-#: compile/compile-loc2c.c:360 compile/compile-loc2c.c:1118
+#: compile/compile-loc2c.c:360 compile/compile-loc2c.c:1106
 #, possible-c-format
 msgid "unhandled DWARF op: %s"
 msgstr ""
 
-#: compile/compile-loc2c.c:633 compile/compile-c-symbols.c:246
+#: compile/compile-loc2c.c:621 compile/compile-c-symbols.c:245
 #, possible-c-format
 msgid "Symbol \"%s\" cannot be used because there is no selected frame"
 msgstr ""
 
-#: compile/compile-loc2c.c:639 compile/compile-c-symbols.c:253
+#: compile/compile-loc2c.c:627 compile/compile-c-symbols.c:252
 #, possible-c-format
 msgid ""
 "Symbol \"%s\" cannot be used for compilation evaluation as its address has "
@@ -6680,27 +6813,27 @@ msgid ""
 msgstr ""
 
 #. Probably TLS here.
-#: compile/compile-loc2c.c:643 compile/compile-c-symbols.c:228
+#: compile/compile-loc2c.c:631 compile/compile-c-symbols.c:227
 #, possible-c-format
 msgid ""
 "Symbol \"%s\" is thread-local and currently can only be referenced from the "
 "current thread in compiled code."
 msgstr ""
 
-#: compile/compile-loc2c.c:886 dwarf2loc.c:3296
+#: compile/compile-loc2c.c:874 dwarf2loc.c:3271
 msgid "No block found for address"
 msgstr ""
 
-#: compile/compile-loc2c.c:891 dwarf2loc.c:3301
+#: compile/compile-loc2c.c:879 dwarf2loc.c:3276
 msgid "No function found for block"
 msgstr ""
 
-#: compile/compile-loc2c.c:968 dwarf2loc.c:3358
+#: compile/compile-loc2c.c:956 dwarf2loc.c:3333
 #, possible-c-format
 msgid "Unsupported size %d in %s"
 msgstr ""
 
-#: compile/compile.c:63
+#: compile/compile.c:65
 #, possible-c-format
 msgid "Compile debugging is %s.\n"
 msgstr ""
@@ -6713,68 +6846,79 @@ msgstr ""
 msgid "You must provide a filename with the raw option set."
 msgstr ""
 
-#: compile/compile.c:113 compile/compile.c:147
+#: compile/compile.c:113 compile/compile.c:144
 msgid "Unknown argument specified."
 msgstr ""
 
-#: compile/compile.c:214
+#: compile/compile.c:210
 #, possible-c-format
 msgid "Could not remove temporary directory %s"
 msgstr ""
 
-#: compile/compile.c:237
+#: compile/compile.c:233
 msgid "Command not supported on this host."
 msgstr ""
 
-#: compile/compile.c:240
+#: compile/compile.c:236
 msgid "Could not make temporary directory"
 msgstr ""
 
-#: compile/compile.c:319
+#: compile/compile.c:317
 #, possible-c-format
 msgid "Compile command command-line arguments are \"%s\".\n"
 msgstr ""
 
-#: compile/compile.c:472
+#: compile/compile.c:346
+#, possible-c-format
+msgid "Compile command GCC driver filename is \"%s\".\n"
+msgstr ""
+
+#: compile/compile.c:470
 msgid "The program must be running for the compile command to work."
 msgstr ""
 
-#: compile/compile.c:480
+#: compile/compile.c:478
 #, possible-c-format
 msgid "No compiler support for language %s."
 msgstr ""
 
-#: compile/compile.c:511
+#: compile/compile.c:509
 msgid "Neither a simple expression, or a multi-line specified."
 msgstr ""
 
-#: compile/compile.c:552
+#: compile/compile.c:523
+msgid ""
+"Command 'set compile-gcc' requires GCC version 6 or higher (libcc1 interface "
+"version 1 or higher)"
+msgstr ""
+
+#: compile/compile.c:573
 msgid "Could not open source file for writing"
 msgstr ""
 
-#: compile/compile.c:556
+#: compile/compile.c:578
 msgid "Could not write to source file"
 msgstr ""
 
-#: compile/compile.c:568
+#: compile/compile.c:594
 msgid "Compilation failed."
 msgstr ""
 
-#: compile/compile.c:635
+#: compile/compile.c:666
 #, possible-c-format
 msgid "Invalid register name \"%s\"."
 msgstr ""
 
-#: compile/compile.c:642
+#: compile/compile.c:673
 #, possible-c-format
 msgid "Cannot find gdbarch register \"%s\"."
 msgstr ""
 
-#: compile/compile.c:653
+#: compile/compile.c:682
 msgid "Command to compile source code and inject it into the inferior."
 msgstr ""
 
-#: compile/compile.c:659
+#: compile/compile.c:688
 msgid ""
 "Compile, inject, and execute code.\n"
 "\n"
@@ -6793,7 +6937,7 @@ msgid ""
 "indicate the end of the expression."
 msgstr ""
 
-#: compile/compile.c:678
+#: compile/compile.c:707
 msgid ""
 "Evaluate a file containing source code.\n"
 "\n"
@@ -6801,7 +6945,7 @@ msgid ""
 "-r|-raw: Suppress automatic 'void _gdb_expr () { CODE }' wrapping."
 msgstr ""
 
-#: compile/compile.c:687
+#: compile/compile.c:716
 msgid ""
 "Evaluate EXPR by using the compiler and print result.\n"
 "\n"
@@ -6820,67 +6964,81 @@ msgid ""
 "but no count or size letter (see \"x\" command)."
 msgstr ""
 
-#: compile/compile.c:705
+#: compile/compile.c:734
 msgid "Set compile command debugging."
 msgstr ""
 
-#: compile/compile.c:706
+#: compile/compile.c:735
 msgid "Show compile command debugging."
 msgstr ""
 
-#: compile/compile.c:707
+#: compile/compile.c:736
 msgid "When on, compile command debugging is enabled."
 msgstr ""
 
-#: compile/compile.c:714
+#: compile/compile.c:743
 msgid "Set compile command GCC command-line arguments"
 msgstr ""
 
-#: compile/compile.c:715
+#: compile/compile.c:744
 msgid "Show compile command GCC command-line arguments"
 msgstr ""
 
-#: compile/compile.c:716
+#: compile/compile.c:745
 msgid ""
 "Use options like -I (include file directory) or ABI settings.\n"
 "String quoting is parsed like in shell, for example:\n"
 "  -mno-align-double \"-I/dir with a space/include\""
 msgstr ""
 
-#: compile/compile-c-symbols.c:123 utils.c:901
-#, possible-c-format
-msgid "%s"
+#: compile/compile.c:772
+msgid "Set compile command GCC driver filename"
 msgstr ""
 
-#: compile/compile-c-symbols.c:207
+#: compile/compile.c:774
+msgid "Show compile command GCC driver filename"
+msgstr ""
+
+#: compile/compile.c:776
+msgid ""
+"It should be absolute filename of the gcc executable.\n"
+"If empty the default target triplet will be searched in $PATH."
+msgstr ""
+
+#: compile/compile-c-symbols.c:121 utils.c:704
+#, possible-c-format
+msgid "%s"
+msgstr ""
+
+#: compile/compile-c-symbols.c:206
 #, possible-c-format
 msgid "Unsupported LOC_CONST_BYTES for symbol \"%s\"."
 msgstr ""
 
-#: compile/compile-c-symbols.c:211
+#: compile/compile-c-symbols.c:210
 #, possible-c-format
 msgid "LOC_UNDEF found for \"%s\"."
 msgstr ""
 
-#: compile/compile-c-symbols.c:215
+#: compile/compile-c-symbols.c:214
 #, possible-c-format
 msgid ""
 "Fortran common block is unsupported for compilation evaluaton of symbol \"%s"
 "\"."
 msgstr ""
 
-#: compile/compile-c-symbols.c:220
+#: compile/compile-c-symbols.c:219
 #, possible-c-format
 msgid ""
 "Symbol \"%s\" cannot be used for compilation evaluation as it is optimized "
 "out."
 msgstr ""
 
-#: compile/compile-c-symbols.c:689
+#: compile/compile-c-symbols.c:681
 msgid "Local symbol unhandled when generating C code."
 msgstr ""
 
-#: compile/compile-c-symbols.c:692
+#: compile/compile-c-symbols.c:684
 msgid "LOC_COMPUTED variable missing a method."
 msgstr ""
 
@@ -6916,218 +7074,226 @@ msgstr ""
 msgid "Compiled module \"%s\" section \"%s\": unattached relocation: %s\n"
 msgstr ""
 
-#: compile/compile-object-load.c:293
+#: compile/compile-object-load.c:290
 #, possible-c-format
 msgid "Compile module: warning: %s"
 msgstr ""
 
-#: compile/compile-object-load.c:391
+#: compile/compile-object-load.c:386
 #, possible-c-format
 msgid "Cannot map compiled module \"%s\" section \"%s\": %s"
 msgstr ""
 
-#: compile/compile-object-load.c:399
+#: compile/compile-object-load.c:394
 #, possible-c-format
 msgid ""
 "Cannot write compiled module \"%s\" section \"%s\" to inferior memory range %"
 "s-%s."
 msgstr ""
 
-#: compile/compile-object-load.c:468 compile/compile-object-load.c:476
+#: compile/compile-object-load.c:466 compile/compile-object-load.c:475
 #, possible-c-format
 msgid "No \"%s\" symbol found"
 msgstr ""
 
-#: compile/compile-object-load.c:480
+#: compile/compile-object-load.c:479
 #, possible-c-format
 msgid "Type of \"%s\" is not a pointer"
 msgstr ""
 
-#: compile/compile-object-load.c:486
+#: compile/compile-object-load.c:485
 #, possible-c-format
 msgid "Expected address scope in compiled module \"%s\"."
 msgstr ""
 
-#: compile/compile-object-load.c:492 compile/compile-object-load.c:506
+#: compile/compile-object-load.c:491 compile/compile-object-load.c:505
 #, possible-c-format
 msgid "Invalid type code %d of symbol \"%s\" in compiled module \"%s\"."
 msgstr ""
 
-#: compile/compile-object-load.c:513
+#: compile/compile-object-load.c:512
 #, possible-c-format
 msgid ""
 "Referenced types do not match for symbols \"%s\" and \"%s\" in compiled "
 "module \"%s\"."
 msgstr ""
 
-#: compile/compile-object-load.c:537
+#: compile/compile-object-load.c:536
 #, possible-c-format
 msgid ""
 "Invalid type code %d of first parameter of function \"%s\" in compiled "
 "module \"%s\"."
 msgstr ""
 
-#: compile/compile-object-load.c:544
+#: compile/compile-object-load.c:543
 #, possible-c-format
 msgid ""
 "Invalid type code %d of dereferenced first parameter of function \"%s\" in "
 "compiled module \"%s\"."
 msgstr ""
 
-#: compile/compile-object-load.c:579
+#: compile/compile-object-load.c:578
 #, possible-c-format
 msgid "Invalid register \"%s\" position %s bits or size %s bits"
 msgstr ""
 
-#: compile/compile-object-load.c:585
+#: compile/compile-object-load.c:584
 #, possible-c-format
 msgid "Invalid register \"%s\" type code %d"
 msgstr ""
 
-#: compile/compile-object-load.c:592
+#: compile/compile-object-load.c:591
 #, possible-c-format
 msgid "Register \"%s\" is optimized out."
 msgstr ""
 
-#: compile/compile-object-load.c:594
+#: compile/compile-object-load.c:593
 #, possible-c-format
 msgid "Register \"%s\" is not available."
 msgstr ""
 
-#: compile/compile-object-load.c:599
+#: compile/compile-object-load.c:598
 #, possible-c-format
 msgid "Cannot write register \"%s\" to inferior memory at %s."
 msgstr ""
 
-#: compile/compile-object-load.c:638
+#: compile/compile-object-load.c:635
 #, possible-c-format
 msgid "\"%s\": could not open as compiled module: %s"
 msgstr ""
 
-#: compile/compile-object-load.c:642
+#: compile/compile-object-load.c:639
 #, possible-c-format
 msgid "\"%s\": not in loadable format: %s"
 msgstr ""
 
-#: compile/compile-object-load.c:646
+#: compile/compile-object-load.c:643
 #, possible-c-format
 msgid "\"%s\": not in object format."
 msgstr ""
 
-#: compile/compile-object-load.c:659
+#: compile/compile-object-load.c:656
 #, possible-c-format
 msgid "Cannot read symbols of compiled module \"%s\": %s"
 msgstr ""
 
-#: compile/compile-object-load.c:671
+#: compile/compile-object-load.c:670
 #, possible-c-format
 msgid "Cannot find function \"%s\" in compiled module \"%s\"."
 msgstr ""
 
-#: compile/compile-object-load.c:675
+#: compile/compile-object-load.c:674
 #, possible-c-format
 msgid "Invalid type code %d of function \"%s\" in compiled module \"%s\"."
 msgstr ""
 
-#: compile/compile-object-load.c:696
+#: compile/compile-object-load.c:695
 #, possible-c-format
 msgid "invalid scope %d"
 msgstr ""
 
-#: compile/compile-object-load.c:699
+#: compile/compile-object-load.c:698
 #, possible-c-format
 msgid "Invalid %d parameters of function \"%s\" in compiled module \"%s\"."
 msgstr ""
 
-#: compile/compile-object-load.c:704
+#: compile/compile-object-load.c:703
 #, possible-c-format
 msgid "Invalid return type of function \"%s\" in compiled module \"%s\"."
 msgstr ""
 
-#: compile/compile-object-load.c:715
+#: compile/compile-object-load.c:714
 #, possible-c-format
 msgid "Cannot parse symbols of compiled module \"%s\": %s"
 msgstr ""
 
-#: compile/compile-object-load.c:763
+#: compile/compile-object-load.c:762
 #, possible-c-format
 msgid "Could not find symbol \"%s\" for compiled module \"%s\"."
 msgstr ""
 
-#: compile/compile-object-load.c:770
+#: compile/compile-object-load.c:769
 #, possible-c-format
 msgid "%ld symbols were missing, cannot continue."
 msgstr ""
 
-#: compile/compile-c-support.c:52
+#: compile/compile-c-support.c:53
 #, possible-c-format
 msgid "Invalid GCC mode size %d."
 msgstr ""
 
-#: compile/compile-c-support.c:87
+#: compile/compile-c-support.c:85
 #, possible-c-format
 msgid "could not find symbol %s in library %s"
 msgstr ""
 
-#: compile/compile-c-support.c:115
+#: compile/compile-c-support.c:113
 msgid ""
 "The loaded version of GCC does not support the required version of the API."
 msgstr ""
 
-#: compile/compile-c-support.c:224 compile/compile-c-support.c:245
+#: compile/compile-c-support.c:222 compile/compile-c-support.c:243
 msgid "Unknown compiler scope reached."
 msgstr ""
 
-#: compile/compile-c-types.c:82
+#: compile/compile-c-types.c:84
 msgid "Unexpected type id from GCC, check you use recent enough GCC."
 msgstr ""
 
-#: compile/compile-c-types.c:115
+#: compile/compile-c-types.c:117
 msgid "array type with non-constant lower bound is not supported"
 msgstr ""
 
-#: compile/compile-c-types.c:119
+#: compile/compile-c-types.c:121
 msgid "cannot convert array type with non-zero lower bound to C"
 msgstr ""
 
-#: compile/compile-c-types.c:130
+#: compile/compile-c-types.c:131
 msgid "variably-sized vector type is not supported"
 msgstr ""
 
-#: compile/compile-c-types.c:372
+#: compile/compile-c-types.c:251
+msgid "function has unknown return type; assuming int"
+msgstr ""
+
+#: compile/compile-c-types.c:398
+msgid "variable has unknown type; assuming int"
+msgstr ""
+
+#: compile/compile-c-types.c:404
 msgid "cannot convert gdb type to gcc type"
 msgstr ""
 
-#: complaints.c:317
+#: complaints.c:312
 #, possible-c-format
 msgid "Max number of complaints about incorrect symbols is %s.\n"
 msgstr ""
 
-#: complaints.c:326
+#: complaints.c:321
 msgid "Set max number of complaints about incorrect symbols."
 msgstr ""
 
-#: complaints.c:327
+#: complaints.c:322
 msgid "Show max number of complaints about incorrect symbols."
 msgstr ""
 
-#: completer.c:1044
+#: completer.c:1555
 msgid "Max completions reached."
 msgstr ""
 
-#: completer.c:1383
+#: completer.c:2289
 msgid "*** List may be truncated, max-completions reached. ***"
 msgstr ""
 
-#: completer.c:1966
+#: completer.c:2870
 msgid "Set maximum number of completion candidates."
 msgstr ""
 
-#: completer.c:1967
+#: completer.c:2871
 msgid "Show maximum number of completion candidates."
 msgstr ""
 
-#: completer.c:1968
+#: completer.c:2872
 msgid ""
 "Use this to limit the number of candidates considered\n"
 "during completion.  Specifying \"unlimited\" or -1\n"
@@ -7135,23 +7301,23 @@ msgid ""
 "a very large limit can make completion slow."
 msgstr ""
 
-#: copying.c:649 copying.c:657
+#: copying.c:647 copying.c:655
 msgid "Conditions for redistributing copies of GDB."
 msgstr ""
 
-#: copying.c:652 copying.c:659
+#: copying.c:650 copying.c:657
 msgid "Various kinds of warranty you do not have."
 msgstr ""
 
-#: corefile.c:167
+#: corefile.c:158
 msgid "core file may not match specified executable file."
 msgstr ""
 
-#: corefile.c:169
+#: corefile.c:160
 msgid "exec file is newer than core file."
 msgstr ""
 
-#: corefile.c:185
+#: corefile.c:174
 msgid ""
 "No executable file specified.\n"
 "Use the \"file\" or \"exec-file\" command."
@@ -7159,55 +7325,55 @@ msgstr ""
 
 #. Actually, address between memaddr and memaddr + len was out of
 #. bounds.
-#: corefile.c:200
+#: corefile.c:189
 #, possible-c-format
 msgid "Cannot access memory at address %s"
 msgstr ""
 
-#: corefile.c:203
+#: corefile.c:192
 #, possible-c-format
 msgid "Memory at address %s unavailable."
 msgstr ""
 
-#: corefile.c:465
+#: corefile.c:452
 #, possible-c-format
 msgid "The current BFD target is \"%s\".\n"
 msgstr ""
 
-#: corefile.c:525
+#: corefile.c:510
 msgid ""
 "Use FILE as core dump for examining memory and registers.\n"
 "No arg means have no core file.  This command has been superseded by the\n"
 "`target core' and `detach' commands."
 msgstr ""
 
-#: corefile.c:533
+#: corefile.c:518
 msgid "Set the current BFD target."
 msgstr ""
 
-#: corefile.c:534
+#: corefile.c:519
 msgid "Show the current BFD target."
 msgstr ""
 
-#: corefile.c:535
+#: corefile.c:520
 msgid "Use `set gnutarget auto' to specify automatic detection."
 msgstr ""
 
-#: corelow.c:149
+#: corelow.c:147
 #, possible-c-format
 msgid "\"%s\": ambiguous core format, %d handlers match"
 msgstr ""
 
-#: corelow.c:153
+#: corelow.c:151
 #, possible-c-format
 msgid "\"%s\": no core file handler recognizes format"
 msgstr ""
 
-#: corelow.c:286
+#: corelow.c:282
 msgid "No core file specified.  (Use `detach' to stop debugging a core file.)"
 msgstr ""
 
-#: corelow.c:289
+#: corelow.c:285
 msgid "No core file specified."
 msgstr ""
 
@@ -7215,79 +7381,71 @@ msgstr ""
 #. FIXME: should be checking for errors from bfd_close (for one
 #. thing, on error it does not free all the storage associated
 #. with the bfd).
-#: corelow.c:325
+#: corelow.c:315
 #, possible-c-format
 msgid "\"%s\" is not a core dump: %s"
 msgstr ""
 
-#: corelow.c:350 record-full.c:811
+#: corelow.c:339 record-full.c:794
 #, possible-c-format
 msgid "\"%s\": Can't find sections: %s"
 msgstr ""
 
-#: corelow.c:424
+#: corelow.c:413
 #, possible-c-format
 msgid "Core was generated by `%s'.\n"
 msgstr ""
 
-#: corelow.c:444
+#: corelow.c:433
 #, possible-c-format
 msgid "Program terminated with signal %s, %s.\n"
 msgstr ""
 
-#: corelow.c:481 guile/scm-utils.c:512
+#: corelow.c:470 guile/scm-utils.c:512
 msgid "Too many arguments"
 msgstr ""
 
-#: corelow.c:485
+#: corelow.c:474
 msgid "No core file now.\n"
 msgstr ""
 
-#: corelow.c:534
+#: corelow.c:515
 #, possible-c-format
 msgid "Couldn't find %s registers in core file."
 msgstr ""
 
-#: corelow.c:542
+#: corelow.c:523
 #, possible-c-format
 msgid "Section `%s' in core file too small."
 msgstr ""
 
-#: corelow.c:547
+#: corelow.c:529
 #, possible-c-format
 msgid "Unexpected size of section `%s' in core file."
 msgstr ""
 
-#: corelow.c:555
+#: corelow.c:537
 #, possible-c-format
 msgid "Couldn't read %s registers from `%s' section in core file."
 msgstr ""
 
-#: corelow.c:747
+#: corelow.c:700
 msgid "Couldn't read NT_AUXV note in core file."
 msgstr ""
 
-#: corelow.c:782
+#: corelow.c:735
 msgid "Couldn't read StackGhost cookie in core file."
 msgstr ""
 
-#: corelow.c:862
+#: corelow.c:815
 msgid "Couldn't read SPU section in core file."
 msgstr ""
 
-#: corelow.c:1071
+#: corelow.c:1032
 #, possible-c-format
 msgid "init_core_ops: core target already exists (\"%s\")."
 msgstr ""
 
-#: core-regset.c:73
-msgid "Wrong size gregset in core file."
-msgstr ""
-
-#: core-regset.c:83
-msgid "Wrong size fpregset in core file."
-msgstr ""
-
 #: cp-abi.c:39
 msgid "ABI doesn't define required function is_constructor_name"
 msgstr ""
@@ -7341,66 +7499,66 @@ msgstr ""
 msgid "Cannot find C++ ABI \"%s\" to set it as auto default."
 msgstr ""
 
-#: cp-abi.c:356
+#: cp-abi.c:353
 #, possible-c-format
 msgid "Could not find \"%s\" in ABI list"
 msgstr ""
 
-#: cp-abi.c:405
+#: cp-abi.c:401
 msgid ""
 "Set the ABI used for inspecting C++ objects.\n"
 "\"set cp-abi\" with no arguments will list the available ABIs."
 msgstr ""
 
-#: cp-abi.c:412
+#: cp-abi.c:408
 msgid "Show the ABI used for inspecting C++ objects."
 msgstr ""
 
-#: cp-name-parser.y:1583
+#: cp-name-parser.y:1605
 msgid "empty character constant"
 msgstr ""
 
-#: cp-name-parser.y:1590
+#: cp-name-parser.y:1612
 msgid "invalid character constant"
 msgstr ""
 
-#: cp-name-parser.y:1714
+#: cp-name-parser.y:1736
 msgid "invalid number"
 msgstr ""
 
 #. These can't occur in C++ names.
-#: cp-name-parser.y:1790
+#: cp-name-parser.y:1812
 msgid "unexpected string literal"
 msgstr ""
 
 #. We must have come across a bad character (e.g. ';').
-#: cp-name-parser.y:1797
+#: cp-name-parser.y:1819
 msgid "invalid character"
 msgstr ""
 
-#: cp-namespace.c:997
+#: cp-namespace.c:985
 msgid "cp_lookup_nested_symbol called on a non-aggregate type."
 msgstr ""
 
-#: cp-namespace.c:1078
+#: cp-namespace.c:1066
 msgid "The `maint namespace' command was removed.\n"
 msgstr ""
 
-#: cp-namespace.c:1091
+#: cp-namespace.c:1076
 msgid "Deprecated placeholder for removed functionality."
 msgstr ""
 
-#: cp-support.c:573
+#: cp-support.c:570
 #, possible-c-format
 msgid "internal error: string \"%s\" failed to be canonicalized"
 msgstr ""
 
-#: cp-support.c:1426
+#: cp-support.c:1451
 #, possible-c-format
 msgid "RTTI symbol not found for class '%s'"
 msgstr ""
 
-#: cp-support.c:1432
+#: cp-support.c:1457
 #, possible-c-format
 msgid "RTTI symbol for class '%s' is not a type"
 msgstr ""
@@ -7409,41 +7567,48 @@ msgstr ""
 #. symbols for namespaces with the same name as the struct.
 #. This warning is an indication of a bug in the lookup order
 #. or a bug in the way that the symbol tables are populated.
-#: cp-support.c:1447
+#: cp-support.c:1472
 #, possible-c-format
 msgid "RTTI symbol for class '%s' is a namespace"
 msgstr ""
 
-#: cp-support.c:1450
+#: cp-support.c:1475
 #, possible-c-format
 msgid "RTTI symbol for class '%s' has bad type"
 msgstr ""
 
-#: cp-support.c:1554
+#: cp-support.c:1577
 #, possible-c-format
 msgid "unable to demangle '%s' (demangler failed with signal %d)"
 msgstr ""
 
-#: cp-support.c:1569
+#: cp-support.c:1591
 #, possible-c-format
 msgid ""
 "%s\n"
 "Attempting to dump core.\n"
 msgstr ""
 
-#: cp-support.c:1603
+#: cp-support.c:2030
+#, possible-c-format
+msgid ""
+"%s:%d: make-paramless self-test failed: (completion=%d) \"%s\" -> %s, "
+"expected %s"
+msgstr ""
+
+#: cp-support.c:2125
 msgid "\"maintenance cplus\" must be followed by the name of a command.\n"
 msgstr ""
 
-#: cp-support.c:1651
+#: cp-support.c:2170
 msgid "C++ maintenance commands."
 msgstr ""
 
-#: cp-support.c:1662
+#: cp-support.c:2181
 msgid "Print the first class/namespace component of NAME."
 msgstr ""
 
-#: cp-support.c:1666
+#: cp-support.c:2185
 msgid ""
 "Show the virtual function table for a C++ object.\n"
 "Usage: info vtbl EXPRESSION\n"
@@ -7451,70 +7616,64 @@ msgid ""
 "resulting object."
 msgstr ""
 
-#: cp-support.c:1673
+#: cp-support.c:2192
 msgid "Set whether to attempt to catch demangler crashes."
 msgstr ""
 
-#: cp-support.c:1674
+#: cp-support.c:2193
 msgid "Show whether to attempt to catch demangler crashes."
 msgstr ""
 
-#: cp-support.c:1675
+#: cp-support.c:2194
 msgid ""
 "If enabled GDB will attempt to catch demangler crashes and\n"
 "display the offending symbol."
 msgstr ""
 
-#: cp-valprint.c:44
+#: cp-valprint.c:45
 #, possible-c-format
 msgid "Printing of C++ virtual function tables is %s.\n"
 msgstr ""
 
-#: cp-valprint.c:56
+#: cp-valprint.c:57
 #, possible-c-format
 msgid "Printing of object's derived type based on vtable info is %s.\n"
 msgstr ""
 
-#: cp-valprint.c:67
+#: cp-valprint.c:68
 #, possible-c-format
 msgid "Printing of C++ static members is %s.\n"
 msgstr ""
 
-#: cp-valprint.c:295 p-valprint.c:631 valprint.c:351
+#: cp-valprint.c:294 p-valprint.c:634 valprint.c:336
 msgid "<synthetic pointer>"
 msgstr ""
 
-#: cp-valprint.c:328 guile/scm-pretty-print.c:640 mi/mi-cmd-stack.c:559
-#: python/py-framefilter.c:447 python/py-prettyprint.c:271 stack.c:304
-#, possible-c-format
-msgid "<error reading variable: %s>"
-msgstr ""
-
-#: cp-valprint.c:817
+#: cp-valprint.c:807
 msgid "Set printing of C++ static members."
 msgstr ""
 
-#: cp-valprint.c:818
+#: cp-valprint.c:808
 msgid "Show printing of C++ static members."
 msgstr ""
 
-#: cp-valprint.c:825
+#: cp-valprint.c:815
 msgid "Set printing of C++ virtual function tables."
 msgstr ""
 
-#: cp-valprint.c:826
+#: cp-valprint.c:816
 msgid "Show printing of C++ virtual function tables."
 msgstr ""
 
-#: cp-valprint.c:833
+#: cp-valprint.c:823
 msgid "Set printing of object's derived type based on vtable info."
 msgstr ""
 
-#: cp-valprint.c:834
+#: cp-valprint.c:824
 msgid "Show printing of object's derived type based on vtable info."
 msgstr ""
 
-#: cris-tdep.c:283 i386-linux-tdep.c:319
+#: cris-tdep.c:283 i386-linux-tdep.c:315
 msgid "Couldn't recognize signal trampoline."
 msgstr ""
 
@@ -7539,51 +7698,51 @@ msgstr ""
 msgid "CRIS software single step could not find a step target."
 msgstr ""
 
-#: cris-tdep.c:3857
+#: cris-tdep.c:3844
 msgid "wrong size gregset struct in core file"
 msgstr ""
 
-#: cris-tdep.c:3892
+#: cris-tdep.c:3877
 msgid "Set the current CRIS version."
 msgstr ""
 
-#: cris-tdep.c:3893
+#: cris-tdep.c:3878
 msgid "Show the current CRIS version."
 msgstr ""
 
-#: cris-tdep.c:3894
+#: cris-tdep.c:3879
 msgid ""
 "Set to 10 for CRISv10 or 32 for CRISv32 if autodetection fails.\n"
 "Defaults to 10. "
 msgstr ""
 
-#: cris-tdep.c:3904
+#: cris-tdep.c:3889
 msgid "Set the current CRIS mode."
 msgstr ""
 
-#: cris-tdep.c:3905
+#: cris-tdep.c:3890
 msgid "Show the current CRIS mode."
 msgstr ""
 
-#: cris-tdep.c:3906
+#: cris-tdep.c:3891
 msgid ""
 "Set to CRIS_MODE_GURU when debugging in guru mode.\n"
 "Makes GDB use the NRP register instead of the ERP register in certain cases."
 msgstr ""
 
-#: cris-tdep.c:3915
+#: cris-tdep.c:3900
 msgid "Set the usage of Dwarf-2 CFI for CRIS."
 msgstr ""
 
-#: cris-tdep.c:3916
+#: cris-tdep.c:3901
 msgid "Show the usage of Dwarf-2 CFI for CRIS."
 msgstr ""
 
-#: cris-tdep.c:3917
+#: cris-tdep.c:3902
 msgid "Set this to \"off\" if using gcc-cris < R59."
 msgstr ""
 
-#: cris-tdep.c:3955 cris-tdep.c:3981
+#: cris-tdep.c:3940 cris-tdep.c:3966
 msgid "cris_gdbarch_update: failed to update architecture."
 msgstr ""
 
@@ -7602,127 +7761,127 @@ msgstr ""
 msgid "Unable to seek file for saving trace data (%s)"
 msgstr ""
 
-#: ctf.c:323
+#: ctf.c:320
 #, possible-c-format
 msgid "Unable to open directory '%s' for saving trace data (%s)"
 msgstr ""
 
-#: ctf.c:333 ctf.c:343 tracefile-tfile.c:94
+#: ctf.c:329 ctf.c:337 tracefile-tfile.c:94
 #, possible-c-format
 msgid "Unable to open file '%s' for saving trace data (%s)"
 msgstr ""
 
-#: ctf.c:874
+#: ctf.c:861
 msgid "Unable to create bt_context"
 msgstr ""
 
-#: ctf.c:879
+#: ctf.c:866
 #, possible-c-format
 msgid "Unable to use libbabeltrace on directory \"%s\""
 msgstr ""
 
-#: ctf.c:888
+#: ctf.c:875
 msgid "Unable to create bt_iterator"
 msgstr ""
 
-#: ctf.c:1103
+#: ctf.c:1089
 msgid "No CTF directory specified."
 msgstr ""
 
-#: ctf.c:1115
+#: ctf.c:1101
 msgid "Wrong event id of the first event"
 msgstr ""
 
-#: ctf.c:1122
+#: ctf.c:1108
 msgid "Wrong event id of the second event"
 msgstr ""
 
-#: ctf.c:1139
+#: ctf.c:1125
 msgid "Wrong event id of the first event of the second packet"
 msgstr ""
 
-#: ctf.c:1288
+#: ctf.c:1274
 msgid "ctf_xfer_partial: trace file is read-only"
 msgstr ""
 
-#: ctf.c:1615 tracefile-tfile.c:737
+#: ctf.c:1593 tracefile-tfile.c:728
 msgid "unknown tfind type"
 msgstr ""
 
-#: ctf.c:1695
+#: ctf.c:1673
 #, possible-c-format
 msgid "Unhandled trace block type (%s) while building trace frame info."
 msgstr ""
 
-#: c-typeprint.c:398
+#: c-typeprint.c:439
 msgid "type not handled in c_type_print_varspec_prefix()"
 msgstr ""
 
-#: c-typeprint.c:774
+#: c-typeprint.c:815
 msgid "type not handled in c_type_print_varspec_suffix()"
 msgstr ""
 
-#: c-typeprint.c:811
+#: c-typeprint.c:852
 #, possible-c-format
 msgid "[with %s = "
 msgstr ""
 
-#: c-typeprint.c:826
+#: c-typeprint.c:867
 msgid "] "
 msgstr ""
 
-#: c-typeprint.c:865 m2-typeprint.c:84
-msgid "<type unknown>"
-msgstr ""
-
-#: c-typeprint.c:893
-msgid "<unnamed typedef>"
-msgstr ""
-
-#: c-typeprint.c:986 c-typeprint.c:1428
+#: c-typeprint.c:1187 c-typeprint.c:1696
 msgid "<incomplete type>\n"
 msgstr ""
 
-#: c-typeprint.c:989 c-typeprint.c:1431
+#: c-typeprint.c:1190 c-typeprint.c:1699
 msgid "<no data fields>\n"
 msgstr ""
 
-#: c-typeprint.c:1221
+#: c-typeprint.c:1361
 #, possible-c-format
 msgid "<undefined type> %s;\n"
 msgstr ""
 
-#: c-typeprint.c:1271
+#: c-typeprint.c:1409
 #, possible-c-format
 msgid "<badly mangled name '%s'>"
 msgstr ""
 
-#: c-typeprint.c:1465
+#: c-typeprint.c:1556 m2-typeprint.c:84
+msgid "<type unknown>"
+msgstr ""
+
+#: c-typeprint.c:1584
+msgid "<unnamed typedef>"
+msgstr ""
+
+#: c-typeprint.c:1733
 msgid "struct <unknown>"
 msgstr ""
 
 #. This should not occur.
-#: c-typeprint.c:1474
+#: c-typeprint.c:1742
 msgid "<range type>"
 msgstr ""
 
 #. At least for dump_symtab, it is important that this not
 #. be an error ().
-#: c-typeprint.c:1496
+#: c-typeprint.c:1764
 #, possible-c-format
 msgid "<invalid type code %d>"
 msgstr ""
 
-#: c-valprint.c:253 valprint.c:440
+#: c-valprint.c:256 valprint.c:425
 msgid "Could not determine the array high bound"
 msgstr ""
 
-#: c-valprint.c:321
+#: c-valprint.c:324
 #, possible-c-format
 msgid "%d vtable entries"
 msgstr ""
 
-#: c-valprint.c:673
+#: c-valprint.c:676
 msgid " [incomplete object]"
 msgstr ""
 
@@ -7763,186 +7922,186 @@ msgstr ""
 msgid "no error"
 msgstr ""
 
-#: darwin-nat.c:342
+#: darwin-nat.c:339
 #, possible-c-format
 msgid " new_ix:%d/%d, old_ix:%d/%d, new_id:0x%x old_id:0x%x\n"
 msgstr ""
 
-#: darwin-nat.c:511
+#: darwin-nat.c:496
 msgid "message header:\n"
 msgstr ""
 
-#: darwin-nat.c:512
+#: darwin-nat.c:497
 #, possible-c-format
 msgid " bits: 0x%x\n"
 msgstr ""
 
-#: darwin-nat.c:513
+#: darwin-nat.c:498
 #, possible-c-format
 msgid " size: 0x%x\n"
 msgstr ""
 
-#: darwin-nat.c:514
+#: darwin-nat.c:499
 #, possible-c-format
 msgid " remote-port: 0x%x\n"
 msgstr ""
 
-#: darwin-nat.c:515
+#: darwin-nat.c:500
 #, possible-c-format
 msgid " local-port: 0x%x\n"
 msgstr ""
 
-#: darwin-nat.c:516
+#: darwin-nat.c:501
 #, possible-c-format
 msgid " reserved: 0x%x\n"
 msgstr ""
 
-#: darwin-nat.c:517
+#: darwin-nat.c:502
 #, possible-c-format
 msgid " id: 0x%x\n"
 msgstr ""
 
-#: darwin-nat.c:536
+#: darwin-nat.c:521
 #, possible-c-format
 msgid "body: descriptor_count=%u\n"
 msgstr ""
 
-#: darwin-nat.c:545
+#: darwin-nat.c:530
 #, possible-c-format
 msgid " descr %d: type=%u (port) name=0x%x, dispo=%d\n"
 msgstr ""
 
-#: darwin-nat.c:549
+#: darwin-nat.c:534
 #, possible-c-format
 msgid " descr %d: type=%u\n"
 msgstr ""
 
-#: darwin-nat.c:559
+#: darwin-nat.c:544
 #, possible-c-format
 msgid "NDR: mig=%02x if=%02x encod=%02x int=%02x char=%02x float=%02x\n"
 msgstr ""
 
-#: darwin-nat.c:567
+#: darwin-nat.c:552
 msgid "  data:"
 msgstr ""
 
-#: darwin-nat.c:719
+#: darwin-nat.c:706
 #, possible-c-format
 msgid "darwin_decode_exception_message: unknown task 0x%x\n"
 msgstr ""
 
-#: darwin-nat.c:855
+#: darwin-nat.c:845
 #, possible-c-format
 msgid "darwin_resume_thread: state=%d, thread=0x%x, step=%d nsignal=%d\n"
 msgstr ""
 
-#: darwin-nat.c:868
+#: darwin-nat.c:858
 #, possible-c-format
 msgid "ptrace THUP: res=%d\n"
 msgstr ""
 
-#: darwin-nat.c:875
+#: darwin-nat.c:865
 #, possible-c-format
 msgid "darwin_resume_thread: kill 0x%x %d: %d\n"
 msgstr ""
 
 #. Set or reset single step.
-#: darwin-nat.c:881
+#: darwin-nat.c:871
 #, possible-c-format
 msgid "darwin_set_sstep (thread=0x%x, enable=%d)\n"
 msgstr ""
 
-#: darwin-nat.c:970
+#: darwin-nat.c:957
 #, possible-c-format
 msgid "darwin_resume: pid=%d, tid=0x%lx, step=%d, signal=%d\n"
 msgstr ""
 
-#: darwin-nat.c:1051
+#: darwin-nat.c:1038
 #, possible-c-format
 msgid "darwin_wait: ill-formatted message (id=0x%x)\n"
 msgstr ""
 
-#: darwin-nat.c:1068
+#: darwin-nat.c:1058
 #, possible-c-format
 msgid "darwin_wait: thread=0x%x, got %s\n"
 msgstr ""
 
-#: darwin-nat.c:1091
+#: darwin-nat.c:1081
 #, possible-c-format
 msgid "  (signal %d: %s)\n"
 msgstr ""
 
-#: darwin-nat.c:1132
+#: darwin-nat.c:1122
 #, possible-c-format
 msgid "darwin_wait: ill-formatted message (id=0x%x, res=%d)\n"
 msgstr ""
 
-#: darwin-nat.c:1155
+#: darwin-nat.c:1147
 #, possible-c-format
 msgid "wait4: res=%d: %s\n"
 msgstr ""
 
-#: darwin-nat.c:1171
+#: darwin-nat.c:1163
 #, possible-c-format
 msgid "darwin_wait: pid=%d exit, status=0x%x\n"
 msgstr ""
 
-#: darwin-nat.c:1182
+#: darwin-nat.c:1174
 #, possible-c-format
 msgid "darwin_wait: pid=%d\n"
 msgstr ""
 
 #. Unknown message.
-#: darwin-nat.c:1191
+#: darwin-nat.c:1183
 #, possible-c-format
 msgid "darwin: got unknown message, id: 0x%x"
 msgstr ""
 
-#: darwin-nat.c:1241
+#: darwin-nat.c:1233
 #, possible-c-format
 msgid "darwin_wait: waiting for a message pid=%d thread=%lx\n"
 msgstr ""
 
-#: darwin-nat.c:1275
+#: darwin-nat.c:1269
 #, possible-c-format
 msgid "mach_msg: ret=0x%x\n"
 msgstr ""
 
-#: darwin-nat.c:1312
+#: darwin-nat.c:1306
 #, possible-c-format
 msgid "darwin_wait: mach_msg(pending) ret=0x%x\n"
 msgstr ""
 
-#: darwin-nat.c:1334
+#: darwin-nat.c:1328
 #, possible-c-format
 msgid "darwin_wait: thread 0x%x hit a non-gdb breakpoint\n"
 msgstr ""
 
-#: darwin-nat.c:1338
+#: darwin-nat.c:1332
 msgid "darwin_wait: unhandled pending message\n"
 msgstr ""
 
-#: darwin-nat.c:1466
+#: darwin-nat.c:1453
 #, possible-c-format
 msgid "cannot kill: %s"
 msgstr ""
 
-#: darwin-nat.c:1536
+#: darwin-nat.c:1524
 #, possible-c-format
 msgid "Unable to save exception ports, task_get_exception_portsreturned: %d"
 msgstr ""
 
-#: darwin-nat.c:1548
+#: darwin-nat.c:1536
 #, possible-c-format
 msgid "Unable to set exception ports, task_set_exception_portsreturned: %d"
 msgstr ""
 
-#: darwin-nat.c:1582
+#: darwin-nat.c:1571
 #, possible-c-format
 msgid "Failed to kill inferior: kill (%d, 9) returned [%s]"
 msgstr ""
 
-#: darwin-nat.c:1600
+#: darwin-nat.c:1590
 #, possible-c-format
 msgid ""
 "Termination notification request failed, mach_port_request_notification\n"
@@ -7952,172 +8111,172 @@ msgstr ""
 #. This is unexpected, as there should not be any previously
 #. registered notification request.  But this is not a fatal
 #. issue, so just emit a warning.
-#: darwin-nat.c:1609
+#: darwin-nat.c:1599
 msgid ""
 "A task termination request was registered before the debugger registered\n"
 "its own.  This is unexpected, but should otherwise not have any actual\n"
 "impact on the debugging session."
 msgstr ""
 
-#: darwin-nat.c:1638
+#: darwin-nat.c:1629
 #, possible-c-format
 msgid ""
 "Unable to find Mach task port for process-id %d: %s (0x%lx).\n"
 " (please check gdb is codesigned - see taskgated(8))"
 msgstr ""
 
-#: darwin-nat.c:1643
+#: darwin-nat.c:1634
 #, possible-c-format
 msgid "inferior task: 0x%x, pid: %d\n"
 msgstr ""
 
-#: darwin-nat.c:1652
+#: darwin-nat.c:1643
 #, possible-c-format
 msgid "Unable to create exception port, mach_port_allocate returned: %d"
 msgstr ""
 
-#: darwin-nat.c:1659
+#: darwin-nat.c:1650
 #, possible-c-format
 msgid "Unable to create exception port, mach_port_insert_right returned: %d"
 msgstr ""
 
-#: darwin-nat.c:1667
+#: darwin-nat.c:1658
 #, possible-c-format
 msgid "Unable to create port set, mach_port_allocate returned: %d"
 msgstr ""
 
-#: darwin-nat.c:1673
+#: darwin-nat.c:1664
 #, possible-c-format
 msgid ""
 "Unable to move exception port into new port set, mach_port_move_member\n"
 "returned: %d"
 msgstr ""
 
-#: darwin-nat.c:1683
+#: darwin-nat.c:1674
 #, possible-c-format
 msgid "Unable to create notification port, mach_port_allocate returned: %d"
 msgstr ""
 
-#: darwin-nat.c:1690
+#: darwin-nat.c:1681
 #, possible-c-format
 msgid ""
 "Unable to move notification port into new port set, mach_port_move_member\n"
 "returned: %d"
 msgstr ""
 
-#: darwin-nat.c:1740
+#: darwin-nat.c:1748
 #, possible-c-format
 msgid "unable to read from pipe, read returned: %d"
 msgstr ""
 
-#: darwin-nat.c:1766
+#: darwin-nat.c:1774
 #, possible-c-format
 msgid "unable to create a pipe: %s"
 msgstr ""
 
 #. Trying to masturbate?
-#: darwin-nat.c:1887 gnu-nat.c:2196 inf-ptrace.c:173
+#: darwin-nat.c:1893 gnu-nat.c:2204 inf-ptrace.c:182
 msgid "I refuse to debug myself!"
 msgstr ""
 
-#: darwin-nat.c:1894 inf-ptrace.c:188 remote.c:5325
+#: darwin-nat.c:1900 inf-ptrace.c:197 remote.c:5277
 #, possible-c-format
 msgid "Attaching to program: %s, %s\n"
 msgstr ""
 
-#: darwin-nat.c:1897 inf-ptrace.c:191 procfs.c:3048 remote.c:5328
+#: darwin-nat.c:1903 inf-ptrace.c:200 procfs.c:1916 remote.c:5280
 #, possible-c-format
 msgid "Attaching to %s\n"
 msgstr ""
 
-#: darwin-nat.c:1904
+#: darwin-nat.c:1910
 #, possible-c-format
 msgid "Can't attach to process %d: %s (%d)"
 msgstr ""
 
-#: darwin-nat.c:1957
+#: darwin-nat.c:1963
 #, possible-c-format
 msgid "Unable to detach from process-id %d: %s (%d)"
 msgstr ""
 
-#: darwin-nat.c:1985
+#: darwin-nat.c:1991
 #, c-format
 msgid "Thread 0x%lx of process %u"
 msgstr ""
 
-#: darwin-nat.c:2018
+#: darwin-nat.c:2024
 #, possible-c-format
 msgid "darwin_read_write_inferior(task=0x%x, %s, len=%s)\n"
 msgstr ""
 
-#: darwin-nat.c:2035
+#: darwin-nat.c:2041
 #, possible-c-format
 msgid "darwin_read_write_inferior: mach_vm_read failed at %s: %s"
 msgstr ""
 
-#: darwin-nat.c:2065
+#: darwin-nat.c:2071
 #, possible-c-format
 msgid "darwin_read_write_inferior: mach_vm_region_recurse failed at %s: %s\n"
 msgstr ""
 
-#: darwin-nat.c:2073
+#: darwin-nat.c:2079
 #, possible-c-format
 msgid ""
 "darwin_read_write_inferior: mach_vm_region_recurse addr=%s, start=%s, len=%"
 "s\n"
 msgstr ""
 
-#: darwin-nat.c:2082
+#: darwin-nat.c:2088
 #, possible-c-format
 msgid "No memory at %s (vs %s+0x%x).  Nothing written"
 msgstr ""
 
-#: darwin-nat.c:2109
+#: darwin-nat.c:2115
 #, possible-c-format
 msgid ""
 "darwin_read_write_inferior: mach_vm_protect failed at %s (len=0x%lx, prot=0x%"
 "x): %s"
 msgstr ""
 
-#: darwin-nat.c:2128
+#: darwin-nat.c:2134
 #, possible-c-format
 msgid "darwin_read_write_inferior: mach_vm_write failed: %s"
 msgstr ""
 
-#: darwin-nat.c:2140
+#: darwin-nat.c:2146
 #, possible-c-format
 msgid ""
 "darwin_read_write_inferior: mach_vm_protect restore failed at %s (len=0x%"
 "lx): %s"
 msgstr ""
 
-#: darwin-nat.c:2200
+#: darwin-nat.c:2207
 #, possible-c-format
 msgid "darwin_xfer_partial(%s, %s, rbuf=%s, wbuf=%s) pid=%u\n"
 msgstr ""
 
-#: darwin-nat.c:2389
+#: darwin-nat.c:2392
 #, possible-c-format
 msgid "GDB task: 0x%lx, pid: %d\n"
 msgstr ""
 
-#: darwin-nat.c:2393
+#: darwin-nat.c:2396
 msgid "Set if printing inferior communication debugging statements."
 msgstr ""
 
-#: darwin-nat.c:2394
+#: darwin-nat.c:2397
 msgid "Show if printing inferior communication debugging statements."
 msgstr ""
 
-#: darwin-nat.c:2400
+#: darwin-nat.c:2403
 msgid "Set if mach exceptions are caught."
 msgstr ""
 
-#: darwin-nat.c:2401
+#: darwin-nat.c:2404
 msgid "Show if mach exceptions are caught."
 msgstr ""
 
-#: darwin-nat.c:2402
+#: darwin-nat.c:2405
 msgid ""
 "When this mode is on, all low level exceptions are reported before being\n"
 "reported by the kernel."
@@ -8153,589 +8312,589 @@ msgstr ""
 msgid "    %s is %d unknown task port\n"
 msgstr ""
 
-#: darwin-nat-info.c:120 darwin-nat-info.c:812 darwin-nat-info.c:833
+#: darwin-nat-info.c:120 darwin-nat-info.c:808 darwin-nat-info.c:832
 msgid "No inferior running\n"
 msgstr ""
 
-#: darwin-nat-info.c:128
+#: darwin-nat-info.c:131
 #, possible-c-format
 msgid "cannot parse task id '%s'\n"
 msgstr ""
 
-#: darwin-nat-info.c:152
+#: darwin-nat-info.c:155
 #, possible-c-format
 msgid "TASK_BASIC_INFO for 0x%x:\n"
 msgstr ""
 
-#: darwin-nat-info.c:164
+#: darwin-nat-info.c:167
 msgid ""
 "\n"
 "TASK_EVENTS_INFO:\n"
 msgstr ""
 
-#: darwin-nat-info.c:180
+#: darwin-nat-info.c:183
 msgid ""
 "\n"
 "TASK_THREAD_TIMES_INFO:\n"
 msgstr ""
 
-#: darwin-nat-info.c:210
+#: darwin-nat-info.c:213
 #, possible-c-format
 msgid "Ports for task 0x%x:\n"
 msgstr ""
 
-#: darwin-nat-info.c:211
+#: darwin-nat-info.c:214
 msgid "port   type\n"
 msgstr ""
 
-#: darwin-nat-info.c:231
+#: darwin-nat-info.c:234
 #, possible-c-format
 msgid "%04x: %08x "
 msgstr ""
 
-#: darwin-nat-info.c:238
+#: darwin-nat-info.c:241
 #, possible-c-format
 msgid " %s("
 msgstr ""
 
-#: darwin-nat-info.c:241
+#: darwin-nat-info.c:244
 msgid "??"
 msgstr ""
 
-#: darwin-nat-info.c:243
+#: darwin-nat-info.c:246
 #, possible-c-format
 msgid "%u"
 msgstr ""
 
-#: darwin-nat-info.c:244
+#: darwin-nat-info.c:247
 msgid " refs)"
 msgstr ""
 
-#: darwin-nat-info.c:250
+#: darwin-nat-info.c:253
 msgid " gdb-task"
 msgstr ""
 
-#: darwin-nat-info.c:252
+#: darwin-nat-info.c:255
 msgid " host-self"
 msgstr ""
 
-#: darwin-nat-info.c:254
+#: darwin-nat-info.c:257
 msgid " gdb-exception"
 msgstr ""
 
-#: darwin-nat-info.c:256
+#: darwin-nat-info.c:259
 msgid " gdb-port_set"
 msgstr ""
 
-#: darwin-nat-info.c:262
+#: darwin-nat-info.c:266
 msgid " inferior-task"
 msgstr ""
 
-#: darwin-nat-info.c:264
+#: darwin-nat-info.c:268
 msgid " inferior-notify"
 msgstr ""
 
-#: darwin-nat-info.c:273
+#: darwin-nat-info.c:274
 msgid " inferior-excp-port"
 msgstr ""
 
-#: darwin-nat-info.c:285
+#: darwin-nat-info.c:282
 #, possible-c-format
 msgid " inferior-thread for 0x%x"
 msgstr ""
 
-#: darwin-nat-info.c:314
+#: darwin-nat-info.c:312
 #, possible-c-format
 msgid "Port 0x%lx in task 0x%lx:\n"
 msgstr ""
 
-#: darwin-nat-info.c:316
+#: darwin-nat-info.c:314
 #, possible-c-format
 msgid "  port set: 0x%x\n"
 msgstr ""
 
-#: darwin-nat-info.c:317
+#: darwin-nat-info.c:315
 #, possible-c-format
 msgid "     seqno: 0x%x\n"
 msgstr ""
 
-#: darwin-nat-info.c:318
+#: darwin-nat-info.c:316
 #, possible-c-format
 msgid "   mscount: 0x%x\n"
 msgstr ""
 
-#: darwin-nat-info.c:319
+#: darwin-nat-info.c:317
 #, possible-c-format
 msgid "    qlimit: 0x%x\n"
 msgstr ""
 
-#: darwin-nat-info.c:320
+#: darwin-nat-info.c:318
 #, possible-c-format
 msgid "  msgcount: 0x%x\n"
 msgstr ""
 
-#: darwin-nat-info.c:321
+#: darwin-nat-info.c:319
 #, possible-c-format
 msgid "  sorights: 0x%x\n"
 msgstr ""
 
-#: darwin-nat-info.c:322
+#: darwin-nat-info.c:320
 #, possible-c-format
 msgid "   srights: 0x%x\n"
 msgstr ""
 
-#: darwin-nat-info.c:323
+#: darwin-nat-info.c:321
 #, possible-c-format
 msgid " pdrequest: 0x%x\n"
 msgstr ""
 
-#: darwin-nat-info.c:324
+#: darwin-nat-info.c:322
 #, possible-c-format
 msgid " nsrequest: 0x%x\n"
 msgstr ""
 
-#: darwin-nat-info.c:325
+#: darwin-nat-info.c:323
 #, possible-c-format
 msgid "     flags: 0x%x\n"
 msgstr ""
 
-#: darwin-nat-info.c:334
+#: darwin-nat-info.c:332
 msgid "Task and port"
 msgstr ""
 
-#: darwin-nat-info.c:356
+#: darwin-nat-info.c:354
 #, possible-c-format
 msgid "Threads in task %#x:\n"
 msgstr ""
 
-#: darwin-nat-info.c:359
+#: darwin-nat-info.c:357
 #, possible-c-format
 msgid "    %#x\n"
 msgstr ""
 
-#: darwin-nat-info.c:379
+#: darwin-nat-info.c:377
 msgid "Thread"
 msgstr ""
 
-#: darwin-nat-info.c:382
+#: darwin-nat-info.c:380
 msgid "THREAD_BASIC_INFO\n"
 msgstr ""
 
-#: darwin-nat-info.c:433
+#: darwin-nat-info.c:431
 msgid "share"
 msgstr ""
 
-#: darwin-nat-info.c:435
+#: darwin-nat-info.c:433
 msgid "copy "
 msgstr ""
 
-#: darwin-nat-info.c:437
+#: darwin-nat-info.c:435
 msgid "none "
 msgstr ""
 
-#: darwin-nat-info.c:439
+#: darwin-nat-info.c:437
 msgid "???  "
 msgstr ""
 
-#: darwin-nat-info.c:449
+#: darwin-nat-info.c:447
 msgid "cow"
 msgstr ""
 
-#: darwin-nat-info.c:451
+#: darwin-nat-info.c:449
 msgid "private"
 msgstr ""
 
-#: darwin-nat-info.c:453
+#: darwin-nat-info.c:451
 msgid "empty"
 msgstr ""
 
-#: darwin-nat-info.c:455
+#: darwin-nat-info.c:453
 msgid "shared"
 msgstr ""
 
-#: darwin-nat-info.c:457
+#: darwin-nat-info.c:455
 msgid "true-shrd"
 msgstr ""
 
-#: darwin-nat-info.c:459
+#: darwin-nat-info.c:457
 msgid "prv-alias"
 msgstr ""
 
-#: darwin-nat-info.c:461
+#: darwin-nat-info.c:459
 msgid "shr-alias"
 msgstr ""
 
-#: darwin-nat-info.c:463
+#: darwin-nat-info.c:461
 msgid "???"
 msgstr ""
 
-#: darwin-nat-info.c:473 darwin-nat-info.c:761
+#: darwin-nat-info.c:471 darwin-nat-info.c:757
 msgid "default"
 msgstr ""
 
-#: darwin-nat-info.c:475
+#: darwin-nat-info.c:473
 msgid "malloc"
 msgstr ""
 
-#: darwin-nat-info.c:477
+#: darwin-nat-info.c:475
 msgid "malloc_small"
 msgstr ""
 
-#: darwin-nat-info.c:479
+#: darwin-nat-info.c:477
 msgid "malloc_large"
 msgstr ""
 
-#: darwin-nat-info.c:481
+#: darwin-nat-info.c:479
 msgid "malloc_huge"
 msgstr ""
 
-#: darwin-nat-info.c:483
+#: darwin-nat-info.c:481
 msgid "sbrk"
 msgstr ""
 
-#: darwin-nat-info.c:485
+#: darwin-nat-info.c:483
 msgid "realloc"
 msgstr ""
 
-#: darwin-nat-info.c:487
+#: darwin-nat-info.c:485
 msgid "malloc_tiny"
 msgstr ""
 
-#: darwin-nat-info.c:489
+#: darwin-nat-info.c:487
 msgid "analysis_tool"
 msgstr ""
 
-#: darwin-nat-info.c:491
+#: darwin-nat-info.c:489
 msgid "mach_msg"
 msgstr ""
 
-#: darwin-nat-info.c:493
+#: darwin-nat-info.c:491
 msgid "iokit"
 msgstr ""
 
-#: darwin-nat-info.c:495
+#: darwin-nat-info.c:493
 msgid "stack"
 msgstr ""
 
-#: darwin-nat-info.c:497
+#: darwin-nat-info.c:495
 msgid "guard"
 msgstr ""
 
-#: darwin-nat-info.c:499
+#: darwin-nat-info.c:497
 msgid "shared_pmap"
 msgstr ""
 
-#: darwin-nat-info.c:501
+#: darwin-nat-info.c:499
 msgid "dylib"
 msgstr ""
 
-#: darwin-nat-info.c:503
+#: darwin-nat-info.c:501
 msgid "appkit"
 msgstr ""
 
-#: darwin-nat-info.c:505
+#: darwin-nat-info.c:503
 msgid "foundation"
 msgstr ""
 
-#: darwin-nat-info.c:530
+#: darwin-nat-info.c:528
 msgid "No memory regions."
 msgstr ""
 
-#: darwin-nat-info.c:574
+#: darwin-nat-info.c:572
 #, possible-c-format
 msgid "%s-%s %s/%s  %s %s %s"
 msgstr ""
 
-#: darwin-nat-info.c:580
+#: darwin-nat-info.c:578
 msgid "shrd"
 msgstr ""
 
-#: darwin-nat-info.c:580
+#: darwin-nat-info.c:578
 msgid "priv"
 msgstr ""
 
-#: darwin-nat-info.c:581
+#: darwin-nat-info.c:579
 msgid "reserved"
 msgstr ""
 
-#: darwin-nat-info.c:581
+#: darwin-nat-info.c:579
 msgid "not-rsvd"
 msgstr ""
 
-#: darwin-nat-info.c:584
+#: darwin-nat-info.c:582
 #, possible-c-format
 msgid " (%d sub-rgn)"
 msgstr ""
 
-#: darwin-nat-info.c:673
+#: darwin-nat-info.c:671
 msgid "sm "
 msgstr ""
 
-#: darwin-nat-info.c:673
+#: darwin-nat-info.c:671
 msgid "obj"
 msgstr ""
 
-#: darwin-nat-info.c:741
+#: darwin-nat-info.c:736
 msgid "Inferior not available"
 msgstr ""
 
-#: darwin-nat-info.c:752
+#: darwin-nat-info.c:748
 #, possible-c-format
 msgid "%d exceptions:\n"
 msgstr ""
 
-#: darwin-nat-info.c:757
+#: darwin-nat-info.c:753
 #, possible-c-format
 msgid "port 0x%04x, behavior: "
 msgstr ""
 
-#: darwin-nat-info.c:764
+#: darwin-nat-info.c:760
 msgid "state"
 msgstr ""
 
-#: darwin-nat-info.c:767
+#: darwin-nat-info.c:763
 msgid "state-identity"
 msgstr ""
 
-#: darwin-nat-info.c:770
+#: darwin-nat-info.c:766
 #, possible-c-format
 msgid "0x%x"
 msgstr ""
 
-#: darwin-nat-info.c:772
+#: darwin-nat-info.c:768
 msgid ", masks:"
 msgstr ""
 
-#: darwin-nat-info.c:774
+#: darwin-nat-info.c:770
 msgid " BAD_ACCESS"
 msgstr ""
 
-#: darwin-nat-info.c:776
+#: darwin-nat-info.c:772
 msgid " BAD_INSTRUCTION"
 msgstr ""
 
-#: darwin-nat-info.c:778
+#: darwin-nat-info.c:774
 msgid " ARITHMETIC"
 msgstr ""
 
-#: darwin-nat-info.c:780
+#: darwin-nat-info.c:776
 msgid " EMULATION"
 msgstr ""
 
-#: darwin-nat-info.c:782
+#: darwin-nat-info.c:778
 msgid " SOFTWARE"
 msgstr ""
 
-#: darwin-nat-info.c:784
+#: darwin-nat-info.c:780
 msgid " BREAKPOINT"
 msgstr ""
 
-#: darwin-nat-info.c:786
+#: darwin-nat-info.c:782
 msgid " SYSCALL"
 msgstr ""
 
-#: darwin-nat-info.c:788
+#: darwin-nat-info.c:784
 msgid " MACH_SYSCALL"
 msgstr ""
 
-#: darwin-nat-info.c:790
+#: darwin-nat-info.c:786
 msgid " RPC_ALERT"
 msgstr ""
 
-#: darwin-nat-info.c:792
+#: darwin-nat-info.c:788
 msgid " CRASH"
 msgstr ""
 
-#: darwin-nat-info.c:826
+#: darwin-nat-info.c:825
 msgid "Parameter is saved, host or none"
 msgstr ""
 
-#: darwin-nat-info.c:851
+#: darwin-nat-info.c:849
 msgid "Get list of tasks in system."
 msgstr ""
 
-#: darwin-nat-info.c:853
+#: darwin-nat-info.c:851
 msgid "Get list of ports in a task."
 msgstr ""
 
-#: darwin-nat-info.c:855
+#: darwin-nat-info.c:853
 msgid "Get info on a specific port."
 msgstr ""
 
-#: darwin-nat-info.c:857
+#: darwin-nat-info.c:855
 msgid "Get info on a specific task."
 msgstr ""
 
-#: darwin-nat-info.c:859
+#: darwin-nat-info.c:857
 msgid "Get list of threads in a task."
 msgstr ""
 
-#: darwin-nat-info.c:861
+#: darwin-nat-info.c:859
 msgid "Get info on a specific thread."
 msgstr ""
 
-#: darwin-nat-info.c:864
+#: darwin-nat-info.c:862
 msgid "Get information on all mach region for the task."
 msgstr ""
 
-#: darwin-nat-info.c:866
+#: darwin-nat-info.c:864
 msgid "Get information on all mach sub region for the task."
 msgstr ""
 
-#: darwin-nat-info.c:868
+#: darwin-nat-info.c:866
 msgid "Get information on mach region at given address."
 msgstr ""
 
-#: darwin-nat-info.c:871
+#: darwin-nat-info.c:869
 msgid "Disp mach exceptions."
 msgstr ""
 
-#: dbxread.c:166 mdebugread.c:3396
+#: dbxread.c:167 mdebugread.c:3393
 #, possible-c-format
 msgid "unknown symbol type %s"
 msgstr ""
 
-#: dbxread.c:173
+#: dbxread.c:174
 #, possible-c-format
 msgid "N_LBRAC/N_RBRAC symbol mismatch at symtab pos %d"
 msgstr ""
 
-#: dbxread.c:180
+#: dbxread.c:181
 #, possible-c-format
 msgid "\"repeated\" header file %s not previously seen, at symtab pos %d"
 msgstr ""
 
-#: dbxread.c:225
+#: dbxread.c:226
 msgid "Can't find any code sections in symbol file"
 msgstr ""
 
-#: dbxread.c:613
+#: dbxread.c:610
 msgid "Can't find .text section in symbol file"
 msgstr ""
 
-#: dbxread.c:675
+#: dbxread.c:672
 #, possible-c-format
 msgid "ridiculous string table size (%d bytes)."
 msgstr ""
 
-#: dbxread.c:806
+#: dbxread.c:803
 msgid "Premature end of file reading symbol table"
 msgstr ""
 
-#: dbxread.c:947
+#: dbxread.c:944
 #, possible-c-format
 msgid "bad string table offset in symbol %d"
 msgstr ""
 
-#: dbxread.c:1006 mdebugread.c:2256 xcoffread.c:2178
+#: dbxread.c:1003 mdebugread.c:2253 xcoffread.c:2197
 #, possible-c-format
 msgid "function `%s' appears to be defined outside of all compilation units"
 msgstr ""
 
-#: dbxread.c:1247
+#: dbxread.c:1244
 #, possible-c-format
 msgid "string table offset backs up at %d"
 msgstr ""
 
-#: dbxread.c:1396
+#: dbxread.c:1393
 #, possible-c-format
 msgid "N_BINCL %s not in entries for any file, at symtab pos %d"
 msgstr ""
 
-#: dbxread.c:1846 mdebugread.c:3331 xcoffread.c:2886
+#: dbxread.c:1843 mdebugread.c:3328 xcoffread.c:2906
 #, possible-c-format
 msgid "unknown symbol descriptor `%c'"
 msgstr ""
 
-#: dbxread.c:2371
+#: dbxread.c:2366
 msgid "First symbol in segment of executable not a source symbol"
 msgstr ""
 
-#: dbxread.c:2641
+#: dbxread.c:2639
 msgid ""
 "misplaced N_LBRAC entry; discarding local symbols which have no enclosing "
 "block"
 msgstr ""
 
-#: dbxread.c:2662
+#: dbxread.c:2660
 msgid "block start larger than block end"
 msgstr ""
 
-#: dbxread.c:2943
+#: dbxread.c:2941
 #, possible-c-format
 msgid "unmatched N_LBRAC before symtab pos %d"
 msgstr ""
 
-#: dbxread.c:3086 dbxread.c:3175 dbxread.c:3270
+#: dbxread.c:3084 dbxread.c:3173 dbxread.c:3268
 #, possible-c-format
 msgid "ridiculous string table size: %d bytes"
 msgstr ""
 
-#: dbxread.c:3248
+#: dbxread.c:3246
 #, possible-c-format
 msgid "stabsect_build_psymtabs:  Found stabs (%s), but not string section (%s)"
 msgstr ""
 
-#: dbxread.c:3257
+#: dbxread.c:3255
 #, possible-c-format
 msgid "Can't find %s section in symbol file"
 msgstr ""
 
-#: dcache.c:138
+#: dcache.c:134
 #, possible-c-format
 msgid "Deprecated remotecache flag is %s.\n"
 msgstr ""
 
-#: dcache.c:552 dcache.c:617
+#: dcache.c:548 dcache.c:613
 msgid "No data cache available.\n"
 msgstr ""
 
-#: dcache.c:567
+#: dcache.c:563
 msgid "No such cache line exists.\n"
 msgstr ""
 
-#: dcache.c:573 dcache.c:633
+#: dcache.c:569 dcache.c:629
 #, possible-c-format
 msgid "Line %d: address %s [%d hits]\n"
 msgstr ""
 
-#: dcache.c:602
+#: dcache.c:598
 msgid "Usage: info dcache [linenumber]\n"
 msgstr ""
 
-#: dcache.c:610
+#: dcache.c:606
 #, possible-c-format
 msgid "Dcache %u lines of %u bytes each.\n"
 msgstr ""
 
-#: dcache.c:621
+#: dcache.c:617
 #, possible-c-format
 msgid "Contains data for %s\n"
 msgstr ""
 
-#: dcache.c:641
+#: dcache.c:637
 #, possible-c-format
 msgid "Cache state: %d active lines, %d hits\n"
 msgstr ""
 
-#: dcache.c:657
+#: dcache.c:653
 msgid "Dcache size must be greater than 0."
 msgstr ""
 
-#: dcache.c:671
+#: dcache.c:667
 #, possible-c-format
 msgid "Invalid dcache line size: %u (must be power of 2)."
 msgstr ""
 
-#: dcache.c:694
+#: dcache.c:690
 msgid "Set cache use for remote targets."
 msgstr ""
 
-#: dcache.c:695
+#: dcache.c:691
 msgid "Show cache use for remote targets."
 msgstr ""
 
-#: dcache.c:696
+#: dcache.c:692
 msgid ""
 "This used to enable the data cache for remote targets.  The cache\n"
 "functionality is now controlled by the memory region system and the\n"
@@ -8743,7 +8902,7 @@ msgid ""
 "exists only for compatibility reasons."
 msgstr ""
 
-#: dcache.c:706
+#: dcache.c:702
 msgid ""
 "Print information on the dcache performance.\n"
 "With no arguments, this command prints the cache configuration and a\n"
@@ -8751,95 +8910,95 @@ msgid ""
 "the contents of a given line."
 msgstr ""
 
-#: dcache.c:712
+#: dcache.c:708
 msgid "Use this command to set number of lines in dcache and line-size."
 msgstr ""
 
 #. allow_unknown
-#: dcache.c:715
+#: dcache.c:711
 msgid "Show dcachesettings."
 msgstr ""
 
-#: dcache.c:720
+#: dcache.c:716
 msgid "Set dcache line size in bytes (must be power of 2)."
 msgstr ""
 
-#: dcache.c:721
+#: dcache.c:717
 msgid "Show dcache line size."
 msgstr ""
 
-#: dcache.c:728
+#: dcache.c:724
 msgid "Set number of dcache lines."
 msgstr ""
 
-#: dcache.c:729
+#: dcache.c:725
 msgid "Show number of dcache lines."
 msgstr ""
 
-#: demangle.c:56
+#: demangle.c:54
 #, possible-c-format
 msgid "Demangling of encoded C++/ObjC names when displaying symbols is %s.\n"
 msgstr ""
 
-#: demangle.c:69
+#: demangle.c:67
 #, possible-c-format
 msgid "Demangling of C++/ObjC names in disassembly listings is %s.\n"
 msgstr ""
 
-#: demangle.c:88
+#: demangle.c:86
 #, possible-c-format
 msgid "The current C++ demangling style is \"%s\".\n"
 msgstr ""
 
-#: demangle.c:194
+#: demangle.c:185
 #, possible-c-format
 msgid "Unrecognized option '%s' to demangle command.  Try \"help demangle\"."
 msgstr ""
 
-#: demangle.c:204
+#: demangle.c:195
 msgid "Usage: demangle [-l language] [--] name"
 msgstr ""
 
-#: demangle.c:212
+#: demangle.c:203
 #, possible-c-format
 msgid "Unknown language \"%s\""
 msgstr ""
 
-#: demangle.c:225
+#: demangle.c:216
 #, possible-c-format
 msgid "Can't demangle \"%s\""
 msgstr ""
 
-#: demangle.c:256
+#: demangle.c:243
 msgid "Set demangling of encoded C++/ObjC names when displaying symbols."
 msgstr ""
 
-#: demangle.c:257
+#: demangle.c:244
 msgid "Show demangling of encoded C++/ObjC names when displaying symbols."
 msgstr ""
 
-#: demangle.c:263
+#: demangle.c:250
 msgid "Set demangling of C++/ObjC names in disassembly listings."
 msgstr ""
 
-#: demangle.c:264
+#: demangle.c:251
 msgid "Show demangling of C++/ObjC names in disassembly listings."
 msgstr ""
 
-#: demangle.c:272
+#: demangle.c:259
 msgid "Set the current C++ demangling style."
 msgstr ""
 
-#: demangle.c:273
+#: demangle.c:260
 msgid "Show the current C++ demangling style."
 msgstr ""
 
-#: demangle.c:274
+#: demangle.c:261
 msgid ""
 "Use `set demangle-style' without arguments for a list of demangling styles."
 msgstr ""
 
-#: demangle.c:280
+#: demangle.c:267
 msgid ""
 "Demangle a mangled name.\n"
 "Usage: demangle [-l language] [--] name\n"
@@ -8851,69 +9010,46 @@ msgid "No symbol table is loaded.  Use t
 msgstr ""
 
 #. We must have come across a bad character (e.g. ';').
-#: d-exp.y:1250
+#: d-exp.y:1245
 #, possible-c-format
 msgid "Invalid character '%c' in expression"
 msgstr ""
 
-#: dfp.c:92
-#, possible-c-format
-msgid "Cannot perform operation: %s"
-msgstr ""
-
-#: dfp.c:137 dfp.c:165 dfp.c:194
-msgid "Unknown decimal floating point type."
-msgstr ""
-
-#. libdecnumber can convert only 32-bit integers.
-#: dfp.c:221
-msgid ""
-"Conversion of large integer to a decimal floating type is not supported."
-msgstr ""
-
-#: dfp.c:306
-msgid "Unknown decimal floating point operation."
-msgstr ""
-
-#: dfp.c:359
-msgid "Comparison with an invalid number (NaN)."
-msgstr ""
-
 #: dicos-tdep.c:81 dicos-tdep.c:95
 #, possible-c-format
 msgid "Can't read elf symbols from %s: %s"
 msgstr ""
 
-#: dictionary.c:598
+#: dictionary.c:573
 msgid "dict_add_symbol: non-expandable dictionary"
 msgstr ""
 
-#: disasm.c:706
+#: disasm.c:677
 msgid "--- no source info for this pc ---\n"
 msgstr ""
 
-#: disasm.c:950
+#: disasm.c:914
 msgid "'set disassembler-options ...' is not supported on this architecture.\n"
 msgstr ""
 
-#: disasm.c:965
+#: disasm.c:929
 #, possible-c-format
 msgid "Invalid disassembler option value: '%s'.\n"
 msgstr ""
 
-#: disasm.c:993
+#: disasm.c:957
 #, possible-c-format
 msgid "The current disassembler options are '%s'\n"
 msgstr ""
 
-#: disasm.c:1001
+#: disasm.c:965
 msgid ""
 "\n"
 "The following disassembler options are supported for use with the\n"
 "'set disassembler-options <option>[,<option>...]' command:\n"
 msgstr ""
 
-#: disasm.c:1076
+#: disasm.c:1037
 msgid ""
 "Set the disassembler options.\n"
 "Usage: set disassembler-options <option>[,<option>...]\n"
@@ -8921,45 +9057,42 @@ msgid ""
 "See: 'show disassembler-options' for valid option values.\n"
 msgstr ""
 
-#: disasm.c:1079
+#: disasm.c:1040
 msgid "Show the disassembler options."
 msgstr ""
 
-#. If we don't know the floating-point format of FROM_TYPE or
-#. TO_TYPE, there's not much we can do.  We might make the
-#. assumption that if the length of FROM_TYPE and TO_TYPE match,
-#. their floating-point format would match too, but that
-#. assumption might be wrong on targets that support
-#. floating-point types that only differ in endianness for
-#. example.  So we warn instead, and zero out the target buffer.
-#: doublest.c:854
-msgid "Can't convert floating-point number to desired type."
-msgstr ""
-
-#: dtrace-probe.c:552
+#: dtrace-probe.c:611
 #, possible-c-format
 msgid "skipping section '%s' which does not contain valid DOF data."
 msgstr ""
 
-#: dtrace-probe.c:644
+#: dtrace-probe.c:663 stap-probe.c:188
 #, possible-c-format
-msgid "could not obtain the contents ofsection '%s' in objfile `%s'."
-msgstr ""
-
-#: dtrace-probe.c:785
-msgid "Enabled"
+msgid ""
+"Probe '%s' has %d arguments, but GDB is requesting\n"
+"argument %u.  This should not happen.  Please\n"
+"report this bug."
 msgstr ""
 
-#: dtrace-probe.c:828 dtrace-probe.c:860
+#: dtrace-probe.c:783 dtrace-probe.c:807
 msgid "No inferior running"
 msgstr ""
 
-#: dtrace-probe.c:869
+#: dtrace-probe.c:816
 #, possible-c-format
 msgid "Probe %s:%s cannot be disabled: no enablers."
 msgstr ""
 
-#: dtrace-probe.c:918
+#: dtrace-probe.c:862
+#, possible-c-format
+msgid "could not obtain the contents ofsection '%s' in objfile `%s'."
+msgstr ""
+
+#: dtrace-probe.c:889
+msgid "Enabled"
+msgstr ""
+
+#: dtrace-probe.c:908
 msgid ""
 "Show information about DTrace static probes.\n"
 "Usage: info probes dtrace [PROVIDER [NAME [OBJECT]]]\n"
@@ -8973,7 +9106,7 @@ msgstr ""
 msgid "maintenance print dummy-frames"
 msgstr ""
 
-#: dummy-frame.c:426
+#: dummy-frame.c:424
 msgid "Print the contents of the internal dummy-frame stack."
 msgstr ""
 
@@ -8982,113 +9115,113 @@ msgstr ""
 msgid "Unsupported address size in DWARF expressions: %d bits"
 msgstr ""
 
-#: dwarf2expr.c:160
+#: dwarf2expr.c:126
 msgid "dwarf expression stack underflow"
 msgstr ""
 
-#: dwarf2expr.c:170 dwarf2expr.c:270
+#: dwarf2expr.c:137 dwarf2expr.c:237
 #, possible-c-format
-msgid "Asked for position %d of stack, stack only has %d elements on it."
+msgid "Asked for position %d of stack, stack only has %zu elements on it."
 msgstr ""
 
-#: dwarf2expr.c:184
+#: dwarf2expr.c:151
 msgid "integral type expected in DWARF expression"
 msgstr ""
 
-#: dwarf2expr.c:204
+#: dwarf2expr.c:171
 msgid "no unsigned variant found for type, while evaluating DWARF expression"
 msgstr ""
 
-#: dwarf2expr.c:226
+#: dwarf2expr.c:193
 msgid "no signed variant found for type, while evaluating DWARF expression"
 msgstr ""
 
-#: dwarf2expr.c:354
+#: dwarf2expr.c:316
 msgid "DWARF expression error: ran off end of buffer reading uleb128 value"
 msgstr ""
 
-#: dwarf2expr.c:366
+#: dwarf2expr.c:328
 msgid "DWARF expression error: ran off end of buffer reading sleb128 value"
 msgstr ""
 
-#: dwarf2expr.c:375
+#: dwarf2expr.c:337
 msgid "DWARF expression error: ran off end of buffer reading leb128 value"
 msgstr ""
 
-#: dwarf2expr.c:390
+#: dwarf2expr.c:352
 #, possible-c-format
 msgid ""
 "DWARF-2 expression error: `%s' operations must be used either alone or in "
 "conjunction with DW_OP_piece or DW_OP_bit_piece."
 msgstr ""
 
-#: dwarf2expr.c:601
+#: dwarf2expr.c:563
 #, possible-c-format
 msgid "DWARF-2 expression error: Loop detected (%d)."
 msgstr ""
 
-#: dwarf2expr.c:794 dwarf2loc.c:3212
+#: dwarf2expr.c:756 dwarf2loc.c:3187
 msgid "DW_OP_implicit_value: too few bytes available."
 msgstr ""
 
-#: dwarf2expr.c:815
+#: dwarf2expr.c:777
 msgid ""
 "DWARF-2 expression error: DW_OP_implicit_pointer is not allowed in frame "
 "context"
 msgstr ""
 
-#: dwarf2expr.c:904
+#: dwarf2expr.c:868
 msgid "Not implemented: computing frame base using explicit value operator"
 msgstr ""
 
-#: dwarf2expr.c:934
+#: dwarf2expr.c:899
 #, possible-c-format
-msgid "Not enough elements for DW_OP_swap.  Need 2, have %d."
+msgid "Not enough elements for DW_OP_swap.  Need 2, have %zu."
 msgstr ""
 
-#: dwarf2expr.c:954
+#: dwarf2expr.c:917
 #, possible-c-format
-msgid "Not enough elements for DW_OP_rot.  Need 3, have %d."
+msgid "Not enough elements for DW_OP_rot.  Need 3, have %zu."
 msgstr ""
 
-#: dwarf2expr.c:1067
+#: dwarf2expr.c:1029
 msgid "Incompatible types on DWARF stack"
 msgstr ""
 
-#: dwarf2expr.c:1190
+#: dwarf2expr.c:1152
 msgid "Can't be reached."
 msgstr ""
 
-#: dwarf2expr.c:1277
+#: dwarf2expr.c:1239
 msgid ""
 "DWARF-2 expression error: DW_OP_GNU_uninit must always be the very last op."
 msgstr ""
 
-#: dwarf2expr.c:1310
+#: dwarf2expr.c:1272
 msgid "DW_OP_entry_value: too few bytes available."
 msgstr ""
 
-#: dwarf2expr.c:1335
+#: dwarf2expr.c:1297
 msgid ""
 "DWARF-2 expression error: DW_OP_entry_value is supported only for single "
 "DW_OP_reg* or for DW_OP_breg*(0)+DW_OP_deref*"
 msgstr ""
 
-#: dwarf2expr.c:1412
+#: dwarf2expr.c:1374
 msgid "DW_OP_reinterpret has wrong size"
 msgstr ""
 
-#: dwarf2expr.c:1427
+#: dwarf2expr.c:1389
 #, possible-c-format
 msgid "Unhandled dwarf expression opcode 0x%x"
 msgstr ""
 
-#: dwarf2expr.h:167 dwarf2-frame.c:396
+#: dwarf2expr.h:211 dwarf2-frame.c:292
 #, possible-c-format
 msgid "%s is invalid in this context"
 msgstr ""
 
-#: dwarf2-frame.c:323
+#: dwarf2-frame.c:219
 #, possible-c-format
 msgid ""
 "incomplete CFI data; DW_CFA_restore unspecified\n"
@@ -9098,192 +9231,199 @@ msgstr ""
 #. This is actually invalid DWARF, but if we ever do run across
 #. it somehow, we might as well support it.  So, instead, report
 #. it as unimplemented.
-#: dwarf2-frame.c:428
+#: dwarf2-frame.c:324
 msgid ""
 "Not implemented: computing unwound register using explicit value operator"
 msgstr ""
 
-#: dwarf2-frame.c:558
+#: dwarf2-frame.c:452
 #, possible-c-format
 msgid "bad CFI data; mismatched DW_CFA_restore_state at %s"
 msgstr ""
 
-#: dwarf2-frame.c:717
+#: dwarf2-frame.c:585
+#, possible-c-format
+msgid ""
+"Call Frame Instruction op %d in vendor extension space is not handled on "
+"this architecture."
+msgstr ""
+
+#: dwarf2-frame.c:591
 msgid "Unknown CFI encountered."
 msgstr ""
 
-#: dwarf2-frame.c:945
+#: dwarf2-frame.c:876
 msgid "Could not compute CFA; needed to translate this expression"
 msgstr ""
 
-#: dwarf2-frame.c:988 dwarf2-frame.c:1153
+#: dwarf2-frame.c:915 dwarf2-frame.c:1061
 msgid "Unknown CFA rule."
 msgstr ""
 
-#: dwarf2-frame.c:1208
+#: dwarf2-frame.c:1114
 #, possible-c-format
 msgid "incomplete CFI data; unspecified registers (e.g., %s) at %s"
 msgstr ""
 
-#: dwarf2-frame.c:1405
+#: dwarf2-frame.c:1309
 msgid "Unknown register rule."
 msgstr ""
 
-#: dwarf2-frame.c:1535
+#: dwarf2-frame.c:1439
 msgid "cfa not available for record btrace target"
 msgstr ""
 
-#: dwarf2-frame.c:1541
+#: dwarf2-frame.c:1445
 msgid ""
 "can't compute CFA for this frame: required registers or memory are "
 "unavailable"
 msgstr ""
 
-#: dwarf2-frame.c:1546
+#: dwarf2-frame.c:1450
 msgid "can't compute CFA for this frame: frame base not available"
 msgstr ""
 
-#: dwarf2-frame.c:1619
+#: dwarf2-frame.c:1523
 msgid "Unsupported address size"
 msgstr ""
 
-#: dwarf2-frame.c:1636
+#: dwarf2-frame.c:1540
 msgid "Unsupported encoding: DW_EH_PE_indirect"
 msgstr ""
 
-#: dwarf2-frame.c:1669 dwarf2-frame.c:1717
+#: dwarf2-frame.c:1573 dwarf2-frame.c:1621
 msgid "Invalid or unsupported encoding"
 msgstr ""
 
-#: dwarf2-frame.c:1930
+#: dwarf2-frame.c:1834
 msgid "Found a CIE when not expecting it."
 msgstr ""
 
-#: dwarf2-frame.c:2102
+#: dwarf2-frame.c:2006
 msgid "Found an FDE when not expecting it."
 msgstr ""
 
-#: dwarf2-frame.c:2243
+#: dwarf2-frame.c:2147
 #, possible-c-format
 msgid "Corrupt data in %s:%s; align 4 workaround apparently succeeded"
 msgstr ""
 
-#: dwarf2-frame.c:2250
+#: dwarf2-frame.c:2154
 #, possible-c-format
 msgid "Corrupt data in %s:%s; align 8 workaround apparently succeeded"
 msgstr ""
 
-#: dwarf2-frame.c:2258
+#: dwarf2-frame.c:2162
 #, possible-c-format
 msgid "Corrupt data in %s:%s"
 msgstr ""
 
-#: dwarf2-frame.c:2348
+#: dwarf2-frame.c:2252
 #, possible-c-format
 msgid "skipping .eh_frame info of %s: %s"
 msgstr ""
 
-#: dwarf2-frame.c:2389
+#: dwarf2-frame.c:2293
 #, possible-c-format
 msgid "skipping .debug_frame info of %s: %s"
 msgstr ""
 
-#: dwarf2loc.c:101
+#: dwarf2loc.c:102
 msgid "access outside bounds of object referenced via synthetic pointer"
 msgstr ""
 
-#: dwarf2loc.c:318
+#: dwarf2loc.c:319
 msgid "dwarf2_find_location_expression: Corrupted DWARF expression."
 msgstr ""
 
-#: dwarf2loc.c:520
+#: dwarf2loc.c:521
 #, possible-c-format
 msgid "Could not find the frame base for \"%s\"."
 msgstr ""
 
-#: dwarf2loc.c:593
+#: dwarf2loc.c:594
 msgid "Could not find type for DW_OP_const_type"
 msgstr ""
 
-#: dwarf2loc.c:595
+#: dwarf2loc.c:596
 msgid "DW_OP_const_type has different sizes for type and data"
 msgstr ""
 
-#: dwarf2loc.c:613
+#: dwarf2loc.c:614
 msgid "Location address is not set."
 msgstr ""
 
-#: dwarf2loc.c:645 dwarf2loc.c:1330
+#: dwarf2loc.c:646 dwarf2loc.c:1331
 msgid "Cannot resolve DW_AT_call_data_value"
 msgstr ""
 
-#: dwarf2loc.c:677
+#: dwarf2loc.c:678
 msgid "frame address is not available."
 msgstr ""
 
-#: dwarf2loc.c:733
+#: dwarf2loc.c:734
 #, possible-c-format
 msgid "Entry values and tail call frames debugging is %s.\n"
 msgstr ""
 
-#: dwarf2loc.c:762
+#: dwarf2loc.c:763
 #, possible-c-format
 msgid "DW_AT_call_target is not specified at %s in %s"
 msgstr ""
 
-#: dwarf2loc.c:774
+#: dwarf2loc.c:775
 #, possible-c-format
 msgid ""
 "DW_AT_call_target DWARF block resolving requires known frame which is "
 "currently not available at %s in %s"
 msgstr ""
 
-#: dwarf2loc.c:807
+#: dwarf2loc.c:808
 #, possible-c-format
 msgid "Cannot find function \"%s\" for a call site target at %s in %s"
 msgstr ""
 
-#: dwarf2loc.c:821
+#: dwarf2loc.c:822
 msgid "invalid call site target kind"
 msgstr ""
 
-#: dwarf2loc.c:837
+#: dwarf2loc.c:838
 #, possible-c-format
 msgid "DW_TAG_call_site resolving failed to find function name for address %s"
 msgstr ""
 
-#: dwarf2loc.c:895
+#: dwarf2loc.c:896
 #, possible-c-format
 msgid ""
 "DW_OP_entry_value resolving has found function \"%s\" at %s can call itself "
 "via tail calls"
 msgstr ""
 
-#: dwarf2loc.c:1047
+#: dwarf2loc.c:1048
 #, possible-c-format
 msgid "Unable to find function for PC %s"
 msgstr ""
 
-#: dwarf2loc.c:1134
+#: dwarf2loc.c:1135
 #, possible-c-format
 msgid ""
 "There are no unambiguously determinable intermediate callers or callees "
 "between caller function \"%s\" at %s and callee function \"%s\" at %s"
 msgstr ""
 
-#: dwarf2loc.c:1237
+#: dwarf2loc.c:1238
 #, possible-c-format
 msgid ""
 "DW_OP_entry_value resolving callee gdbarch %s (of %s (%s)) does not match "
 "caller gdbarch %s"
 msgstr ""
 
-#: dwarf2loc.c:1251
+#: dwarf2loc.c:1252
 #, possible-c-format
 msgid "DW_OP_entry_value resolving requires caller of %s (%s)"
 msgstr ""
 
-#: dwarf2loc.c:1268
+#: dwarf2loc.c:1269
 #, possible-c-format
 msgid ""
 "DW_OP_entry_value resolving expects callee %s at %s but the called frame is "
@@ -9292,302 +9432,358 @@ msgstr ""
 
 #. DW_TAG_call_site_parameter will be missing just if GCC could not
 #. determine its value.
-#: dwarf2loc.c:1294
+#: dwarf2loc.c:1295
 #, possible-c-format
 msgid "Cannot find matching parameter at DW_TAG_call_site %s at %s"
 msgstr ""
 
-#: dwarf2loc.c:1474
+#: dwarf2loc.c:1475
 msgid ""
 "DWARF-2 expression error: DW_OP_entry_value is supported only for single "
 "DW_OP_reg* or for DW_OP_fbreg(*)"
 msgstr ""
 
-#: dwarf2loc.c:1689
+#: dwarf2loc.c:1680
 #, possible-c-format
 msgid "copy_bitwise %s != %s (%u+%u -> %u)"
 msgstr ""
 
-#: dwarf2loc.c:1776
+#: dwarf2loc.c:1787
 msgid "Should not be able to create a lazy value with an enclosing type"
 msgstr ""
 
-#: dwarf2loc.c:1915 dwarf2loc.c:2547
-msgid "invalid location type"
-msgstr ""
-
-#: dwarf2loc.c:2027
+#: dwarf2loc.c:1881
 msgid ""
 "Can't do read-modify-write to update bitfield; containing word has been "
 "optimized out"
 msgstr ""
 
-#: dwarf2loc.c:2032
+#: dwarf2loc.c:1886
 msgid ""
 "Can't do read-modify-write to update bitfield; containing word is unavailable"
 msgstr ""
 
-#: dwarf2loc.c:2235
+#: dwarf2loc.c:2040 dwarf2loc.c:2526
+msgid "invalid location type"
+msgstr ""
+
+#: dwarf2loc.c:2219
 msgid "Invalid use of DW_OP_implicit_pointer"
 msgstr ""
 
-#: dwarf2loc.c:2434
+#: dwarf2loc.c:2416
 msgid "cannot use offset on synthetic pointer to register"
 msgstr ""
 
-#: dwarf2loc.c:2696
+#: dwarf2loc.c:2675
 msgid "cannot find reference address for offset property"
 msgstr ""
 
-#: dwarf2loc.c:2901
+#: dwarf2loc.c:2875
 #, possible-c-format
 msgid "DWARF operator %s cannot be translated to an agent expression"
 msgstr ""
 
-#: dwarf2loc.c:2904
+#: dwarf2loc.c:2878
 #, possible-c-format
 msgid ""
 "Unknown DWARF operator 0x%02x cannot be translated to an agent expression"
 msgstr ""
 
-#: dwarf2loc.c:2923
+#: dwarf2loc.c:2897
 #, possible-c-format
 msgid "bad DWARF register number %d"
 msgstr ""
 
-#: dwarf2loc.c:2938
+#: dwarf2loc.c:2912
 #, possible-c-format
 msgid "Unable to access DWARF register number %d"
 msgstr ""
 
-#: dwarf2loc.c:2939
+#: dwarf2loc.c:2913
 #, possible-c-format
 msgid "Unable to access DWARF register number %s"
 msgstr ""
 
-#: dwarf2loc.c:3214
+#: dwarf2loc.c:3189
 #, possible-c-format
 msgid "Cannot translate DW_OP_implicit_value of %d bytes"
 msgstr ""
 
-#: dwarf2loc.c:3577
+#: dwarf2loc.c:3552
 msgid "Cannot translate empty pieces to agent expressions"
 msgstr ""
 
-#: dwarf2loc.c:3590
+#: dwarf2loc.c:3565
 msgid "Expression pieces exceed word size"
 msgstr ""
 
-#: dwarf2loc.c:3677
+#: dwarf2loc.c:3651
 msgid "invalid label"
 msgstr ""
 
 #. The text is output as "$bad_register_number".
 #. That is why we use the underscores.
-#: dwarf2loc.c:3751
+#: dwarf2loc.c:3725
 msgid "bad_register_number"
 msgstr ""
 
-#: dwarf2loc.c:3774 dwarf2loc.c:3783
+#: dwarf2loc.c:3748 dwarf2loc.c:3757
 #, possible-c-format
 msgid "a variable in $%s"
 msgstr ""
 
-#: dwarf2loc.c:3804
+#: dwarf2loc.c:3778
 #, possible-c-format
 msgid "No block found for address for symbol \"%s\"."
 msgstr ""
 
-#: dwarf2loc.c:3810
+#: dwarf2loc.c:3784
 #, possible-c-format
 msgid "No function found for block for symbol \"%s\"."
 msgstr ""
 
-#: dwarf2loc.c:3823
+#: dwarf2loc.c:3797
 #, possible-c-format
 msgid "Unexpected opcode after DW_OP_breg%u for symbol \"%s\"."
 msgstr ""
 
-#: dwarf2loc.c:3841
+#: dwarf2loc.c:3815
 #, possible-c-format
 msgid "a variable at frame base reg $%s offset %s+%s"
 msgstr ""
 
-#: dwarf2loc.c:3853
+#: dwarf2loc.c:3827
 #, possible-c-format
 msgid "a variable at offset %s from base reg $%s"
 msgstr ""
 
-#: dwarf2loc.c:3885 dwarf2loc.c:3909
+#: dwarf2loc.c:3859 dwarf2loc.c:3883
 #, possible-c-format
 msgid ""
 "a thread-local variable at offset 0x%s in the thread-local storage for `%s'"
 msgstr ""
 
-#: dwarf2loc.c:3920
+#: dwarf2loc.c:3894
 #, possible-c-format
 msgid "the constant %d"
 msgstr ""
 
-#: dwarf2loc.c:3954
+#: dwarf2loc.c:3928
 #, possible-c-format
 msgid "Unrecognized DWARF opcode 0x%02x at %ld"
 msgstr ""
 
-#: dwarf2loc.c:4321
+#: dwarf2loc.c:4295
 msgid ", and "
 msgstr ""
 
-#: dwarf2loc.c:4337
+#: dwarf2loc.c:4311
 msgid "a complex DWARF expression:\n"
 msgstr ""
 
-#: dwarf2loc.c:4359
+#: dwarf2loc.c:4333
 #, possible-c-format
 msgid "an empty %s-byte piece"
 msgstr ""
 
-#: dwarf2loc.c:4362
+#: dwarf2loc.c:4336
 #, possible-c-format
 msgid " [%s-byte piece]"
 msgstr ""
 
-#: dwarf2loc.c:4374
+#: dwarf2loc.c:4348
 #, possible-c-format
 msgid "an empty %s-bit piece"
 msgstr ""
 
-#: dwarf2loc.c:4378
+#: dwarf2loc.c:4352
 #, possible-c-format
 msgid " [%s-bit piece, offset %s bits]"
 msgstr ""
 
-#: dwarf2loc.c:4390
+#: dwarf2loc.c:4364
 #, possible-c-format
 msgid "Corrupted DWARF2 expression for \"%s\"."
 msgstr ""
 
-#: dwarf2loc.c:4445 dwarf2loc.c:4658
+#: dwarf2loc.c:4418 dwarf2loc.c:4631
 #, possible-c-format
 msgid "symbol \"%s\" is optimized out"
 msgstr ""
 
-#: dwarf2loc.c:4555
+#: dwarf2loc.c:4528
 msgid "multi-location:\n"
 msgstr ""
 
-#: dwarf2loc.c:4582
+#: dwarf2loc.c:4555
 #, possible-c-format
 msgid "  Base address %s"
 msgstr ""
 
-#: dwarf2loc.c:4590
+#: dwarf2loc.c:4563
 #, possible-c-format
 msgid "Corrupted DWARF expression for symbol \"%s\"."
 msgstr ""
 
 #. (It would improve readability to print only the minimum
 #. necessary digits of the second number of the range.)
-#: dwarf2loc.c:4608
+#: dwarf2loc.c:4581
 #, possible-c-format
 msgid "  Range %s-%s: "
 msgstr ""
 
-#: dwarf2loc.c:4686
+#: dwarf2loc.c:4656
 msgid "Set entry values and tail call frames debugging."
 msgstr ""
 
-#: dwarf2loc.c:4688
+#: dwarf2loc.c:4658
 msgid "Show entry values and tail call frames debugging."
 msgstr ""
 
-#: dwarf2loc.c:4690
+#: dwarf2loc.c:4660
 msgid ""
 "When non-zero, the process of determining parameter values from function "
 "entry point and tail call frames will be printed."
 msgstr ""
 
-#: dwarf2read.c:1494
+#: dwarf2read.c:1691
 #, possible-c-format
 msgid "The upper bound on the age of cached DWARF compilation units is %s.\n"
 msgstr ""
 
-#: dwarf2read.c:2045
+#: dwarf2read.c:2245
 msgid "statement list doesn't fit in .debug_line section"
 msgstr ""
 
-#: dwarf2read.c:2052
+#: dwarf2read.c:2252
 msgid ".debug_line section has line data without a file"
 msgstr ""
 
-#: dwarf2read.c:2059
+#: dwarf2read.c:2259
 msgid ".debug_line section has line program sequence without an end"
 msgstr ""
 
-#: dwarf2read.c:2066
+#: dwarf2read.c:2266
 msgid "location expression too complex"
 msgstr ""
 
-#: dwarf2read.c:2074
+#: dwarf2read.c:2274
 #, possible-c-format
 msgid "const value length mismatch for '%s', got %d, expected %d"
 msgstr ""
 
-#: dwarf2read.c:2082
+#: dwarf2read.c:2282
 #, possible-c-format
 msgid "debug info runs off end of %s section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:2092
+#: dwarf2read.c:2292
 #, possible-c-format
 msgid ""
 "macro debug info contains a malformed macro definition:\n"
 "`%s'"
 msgstr ""
 
-#: dwarf2read.c:2101
+#: dwarf2read.c:2301
 #, possible-c-format
 msgid "invalid attribute class or form for '%s' in '%s'"
 msgstr ""
 
-#: dwarf2read.c:2472
+#: dwarf2read.c:2701
 #, possible-c-format
 msgid ""
 "Dwarf Error: DWP format V2 with relocations is not supported in section %s "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:2516
+#: dwarf2read.c:2745
 #, possible-c-format
 msgid "Dwarf Error: Can't read DWARF data in section %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:2646
+#: dwarf2read.c:2879
 #, possible-c-format
 msgid "could not read '.gnu_debugaltlink' section: %s"
 msgstr ""
 
-#: dwarf2read.c:2679
+#: dwarf2read.c:2912
 #, possible-c-format
 msgid "could not find '.gnu_debugaltlink' file for %s"
 msgstr ""
 
-#: dwarf2read.c:3092
+#: dwarf2read.c:3394
 #, possible-c-format
 msgid ".gdb_index address table has invalid range (%s - %s)"
 msgstr ""
 
-#: dwarf2read.c:3100
+#: dwarf2read.c:3402
 #, possible-c-format
 msgid ".gdb_index address table has invalid CU number %u"
 msgstr ""
 
-#: dwarf2read.c:3257
+#: dwarf2read.c:3442
+#, possible-c-format
+msgid ""
+"Section .debug_aranges in %s has duplicate debug_info_offset %u, ignoring ."
+"debug_aranges."
+msgstr ""
+
+#: dwarf2read.c:3469
+#, possible-c-format
+msgid ""
+"Section .debug_aranges in %s entry at offset %zu length %s exceeds section "
+"length %s, ignoring .debug_aranges."
+msgstr ""
+
+#: dwarf2read.c:3483
+#, possible-c-format
+msgid ""
+"Section .debug_aranges in %s entry at offset %zu has unsupported version %d, "
+"ignoring .debug_aranges."
+msgstr ""
+
+#: dwarf2read.c:3497
+#, possible-c-format
+msgid ""
+"Section .debug_aranges in %s entry at offset %zu debug_info_offset %s does "
+"not exists, ignoring .debug_aranges."
+msgstr ""
+
+#: dwarf2read.c:3509
+#, possible-c-format
+msgid ""
+"Section .debug_aranges in %s entry at offset %zu address_size %u is invalid, "
+"ignoring .debug_aranges."
+msgstr ""
+
+#: dwarf2read.c:3519
+#, possible-c-format
+msgid ""
+"Section .debug_aranges in %s entry at offset %zu segment_selector_size %u is "
+"not supported, ignoring .debug_aranges."
+msgstr ""
+
+#: dwarf2read.c:3535
+#, possible-c-format
+msgid ""
+"Section .debug_aranges in %s entry at offset %zu padding is not zero, "
+"ignoring .debug_aranges."
+msgstr ""
+
+#: dwarf2read.c:3545
+#, possible-c-format
+msgid ""
+"Section .debug_aranges in %s entry at offset %zu address list is not "
+"properly terminated, ignoring .debug_aranges."
+msgstr ""
+
+#: dwarf2read.c:3711
 #, possible-c-format
 msgid "Skipping obsolete .gdb_index section in %s."
 msgstr ""
 
-#: dwarf2read.c:3276
+#: dwarf2read.c:3730
 #, possible-c-format
 msgid ""
 "Skipping deprecated .gdb_index section in %s.\n"
@@ -9595,311 +9791,393 @@ msgid ""
 "to use the section anyway."
 msgstr ""
 
-#: dwarf2read.c:3370
+#: dwarf2read.c:3826
 #, possible-c-format
 msgid "could not read '.gdb_index' section from %s; skipping"
 msgstr ""
 
-#: dwarf2read.c:3766 dwarf2read.c:4180
+#: dwarf2read.c:4223 dwarf2read.c:5358
 #, possible-c-format
 msgid ".gdb_index entry has bad CU index [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:3886
+#: dwarf2read.c:4345
 #, possible-c-format
 msgid "  Number of read CUs: %d\n"
 msgstr ""
 
-#: dwarf2read.c:3887
+#: dwarf2read.c:4346
 #, possible-c-format
 msgid "  Number of unread CUs: %d\n"
 msgstr ""
 
-#: dwarf2read.c:4253
+#: dwarf2read.c:4900
+#, possible-c-format
+msgid "%s:%d: match_type=%s, looking-for=\"%s\", expected=\"%s\", got=\"%s\"\n"
+msgstr ""
+
+#: dwarf2read.c:5529
 #, possible-c-format
 msgid "(Internal error: pc %s in read in CU, but not in symtab.)"
 msgstr ""
 
-#: dwarf2read.c:4505
+#. There may be multiple per-CU indices.
+#: dwarf2read.c:5679
+#, possible-c-format
+msgid ""
+"Section .debug_names in %s length %s does not match section length %s, "
+"ignoring .debug_names."
+msgstr ""
+
+#: dwarf2read.c:5691
+#, possible-c-format
+msgid ""
+"Section .debug_names in %s has unsupported version %d, ignoring .debug_names."
+msgstr ""
+
+#: dwarf2read.c:5702
+#, possible-c-format
+msgid ""
+"Section .debug_names in %s has unsupported padding %d, ignoring .debug_names."
+msgstr ""
+
+#: dwarf2read.c:5723
+#, possible-c-format
+msgid ""
+"Section .debug_names in %s has unsupported %lu foreign TUs, ignoring ."
+"debug_names."
+msgstr ""
+
+#: dwarf2read.c:5787
+#, possible-c-format
+msgid ""
+"Section .debug_names in %s has duplicate index %s, ignoring .debug_names."
+msgstr ""
+
+#: dwarf2read.c:5816
+#, possible-c-format
+msgid ""
+"Section .debug_names in %s has abbreviation_table of size %zu vs. written as "
+"%u, ignoring .debug_names."
+msgstr ""
+
+#: dwarf2read.c:5913
+#, possible-c-format
+msgid "could not read '.debug_names' section from %s; skipping"
+msgstr ""
+
+#: dwarf2read.c:6070 dwarf2read.c:6124
+#, possible-c-format
+msgid "Wrong .debug_names with name index %u but name_count=%u [in module %s]"
+msgstr ""
+
+#: dwarf2read.c:6094
+#, possible-c-format
+msgid "Wrong .debug_names hash for string at index %u [in module %s]"
+msgstr ""
+
+#: dwarf2read.c:6160
+#, possible-c-format
+msgid "Wrong .debug_names undefined abbrev code %s [in module %s]"
+msgstr ""
+
+#: dwarf2read.c:6186
+#, possible-c-format
+msgid "Unsupported .debug_names form %s [in module %s]"
+msgstr ""
+
+#: dwarf2read.c:6198
+#, possible-c-format
+msgid ".debug_names entry has bad CU index %s [in module %s]"
+msgstr ""
+
+#: dwarf2read.c:6211
+#, possible-c-format
+msgid ".debug_names entry has bad TU index %s [in module %s]"
+msgstr ""
+
+#: dwarf2read.c:6627
 msgid "read_comp_unit_head: invalid section_kind"
 msgstr ""
 
-#: dwarf2read.c:4516
+#: dwarf2read.c:6638
 #, possible-c-format
 msgid ""
 "Dwarf Error: wrong unit_type in compilation unit header (is DW_UT_compile, "
 "should be DW_UT_type) [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:4524
+#: dwarf2read.c:6646
 #, possible-c-format
 msgid ""
 "Dwarf Error: wrong unit_type in compilation unit header (is %d, should be %d "
 "or %d) [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:4544
+#: dwarf2read.c:6666
 msgid "read_comp_unit_head: dwarf from non elf file"
 msgstr ""
 
-#: dwarf2read.c:4558
+#: dwarf2read.c:6680
 #, possible-c-format
 msgid ""
 "Dwarf Error: Too big type_offset in compilation unit header (is %s) [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:4594
+#: dwarf2read.c:6716
 #, possible-c-format
 msgid ""
 "Dwarf Error: wrong version in compilation unit header (is %d, should be 2, "
 "3, 4 or 5) [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:4600
+#: dwarf2read.c:6722
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad offset (0x%x) in compilation unit header (offset 0x%x + 6) "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:4610
+#: dwarf2read.c:6732
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad length (0x%x) in compilation unit header (offset 0x%x + 0) "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:4905
+#: dwarf2read.c:7026
 #, possible-c-format
 msgid ""
 "debug type entry at offset 0x%x is duplicate to the entry at offset 0x%x, "
 "signature %s"
 msgstr ""
 
-#: dwarf2read.c:5350
+#: dwarf2read.c:7470
 #, possible-c-format
 msgid ""
 "Dwarf Error: signature mismatch %s vs %s while reading TU at offset 0x%x [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:5485
+#: dwarf2read.c:7604
 #, possible-c-format
 msgid "Dwarf Error: missing dwo_id for dwo_name %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:5773
+#: dwarf2read.c:7892
 #, possible-c-format
 msgid ""
 "compilation unit with DW_AT_GNU_dwo_name has children (offset 0x%x) [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:6905 dwarf2read.c:8409
+#: dwarf2read.c:9014 dwarf2read.c:10557
 #, possible-c-format
 msgid ""
 "Dwarf Error: DW_TAG_imported_unit is not supported in type units [in module %"
 "s]"
 msgstr ""
 
-#: dwarf2read.c:7022
+#: dwarf2read.c:9131
 #, possible-c-format
 msgid "unhandled containing DIE tag %d for DIE at %d"
 msgstr ""
 
-#: dwarf2read.c:7376 dwarf2read.c:16057
+#: dwarf2read.c:9485 dwarf2read.c:18324
 msgid "malformed enumerator DIE ignored"
 msgstr ""
 
-#: dwarf2read.c:7414
+#: dwarf2read.c:9523
 #, possible-c-format
 msgid ""
 "Dwarf Error: Could not find abbrev number %d in %s at offset 0x%x [in module "
 "%s]"
 msgstr ""
 
-#: dwarf2read.c:7470 dwarf2read.c:16280
+#: dwarf2read.c:9579 dwarf2read.c:18547
 msgid "ignoring absolute DW_AT_sibling"
 msgstr ""
 
-#: dwarf2read.c:7478 dwarf2read.c:16288
+#: dwarf2read.c:9587 dwarf2read.c:18555
 msgid "DW_AT_sibling points backwards"
 msgstr ""
 
-#: dwarf2read.c:7567 dwarf2read.c:16831
+#: dwarf2read.c:9676 dwarf2read.c:19098
 #, possible-c-format
 msgid "Dwarf Error: Cannot handle %s in DWARF reader [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:7612
+#: dwarf2read.c:9721
 #, possible-c-format
 msgid "bug: psymtab for %s is already read in."
 msgstr ""
 
-#: dwarf2read.c:7619 mdebugread.c:283
+#: dwarf2read.c:9728 mdebugread.c:281
 #, possible-c-format
 msgid "Reading in symbols for %s..."
 msgstr ""
 
-#: dwarf2read.c:7650 mdebugread.c:296 psymtab.c:97 symfile.c:1209
+#: dwarf2read.c:9759 mdebugread.c:294 psymtab.c:105 symfile.c:1204
 msgid "done.\n"
 msgstr ""
 
-#: dwarf2read.c:8034
+#: dwarf2read.c:10186
 #, possible-c-format
 msgid "Symtab %s has objects from two different Go packages: %s and %s"
 msgstr ""
 
-#: dwarf2read.c:8530
+#: dwarf2read.c:10694
 #, possible-c-format
 msgid "Tag '%s' has unexpected children"
 msgstr ""
 
-#: dwarf2read.c:8735
+#: dwarf2read.c:10929
 msgid "template parameter missing DW_AT_type"
 msgstr ""
 
-#: dwarf2read.c:8751
+#: dwarf2read.c:10945
 msgid "template parameter missing DW_AT_const_value"
 msgstr ""
 
-#: dwarf2read.c:8952
+#: dwarf2read.c:11137
 #, possible-c-format
 msgid ""
 "Computed physname <%s> does not match demangled <%s> (from linkage <%s>) - "
 "DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9017
+#: dwarf2read.c:11201
 #, possible-c-format
 msgid "DIE at 0x%x has too many recursively imported declarations"
 msgstr ""
 
-#: dwarf2read.c:9080 dwarf2read.c:9172
+#: dwarf2read.c:11263 dwarf2read.c:11353
 #, possible-c-format
 msgid "Tag '%s' has no DW_AT_import"
 msgstr ""
 
-#: dwarf2read.c:9163
+#: dwarf2read.c:11344
 #, possible-c-format
 msgid "child DW_TAG_imported_declaration expected - DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9184
+#: dwarf2read.c:11365
 #, possible-c-format
 msgid ""
 "child DW_TAG_imported_declaration has unknown imported name - DIE at 0x%x "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9421
+#: dwarf2read.c:11614
 msgid "CU refers to both DW_AT_macros and DW_AT_macro_info"
 msgstr ""
 
-#: dwarf2read.c:9710
+#: dwarf2read.c:11904
 #, possible-c-format
 msgid ""
 "Dwarf Error: debug entry at offset 0x%x is missing its dwo_id [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9781
+#: dwarf2read.c:11984
 #, possible-c-format
-msgid "Multiple CUs in DWO file %s [in module %s]"
+msgid ""
+"debug cu entry at offset 0x%x is duplicate to the entry at offset 0x%x, "
+"signature %s"
 msgstr ""
 
-#: dwarf2read.c:9969
+#: dwarf2read.c:12166
 #, possible-c-format
 msgid "Dwarf Error: unsupported DWP file version (%s) [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9975
+#: dwarf2read.c:12172
 #, possible-c-format
 msgid ""
 "Dwarf Error: number of slots in DWP hash table (%s) is not power of 2 [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:9997
+#: dwarf2read.c:12194
 #, possible-c-format
 msgid "Empty DWP but nr_slots,nr_units,nr_columns not all zero [in modules %s]"
 msgstr ""
 
-#: dwarf2read.c:10021
+#: dwarf2read.c:12218
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, too few columns in section table [in module "
 "%s]"
 msgstr ""
 
-#: dwarf2read.c:10027
+#: dwarf2read.c:12224
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, too many columns in section table [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:10039
+#: dwarf2read.c:12236
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, bad section id %d in section table [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:10045
+#: dwarf2read.c:12242
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, duplicate section id %d in section table "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:10057
+#: dwarf2read.c:12254
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, missing/duplicate DWO info/types section "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:10064
+#: dwarf2read.c:12261
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, missing DWO abbrev section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:10076
+#: dwarf2read.c:12273
 #, possible-c-format
 msgid "Dwarf Error: DWP index section is corrupt (too small) [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:10227
+#: dwarf2read.c:12421
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, section number too large [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:10235
+#: dwarf2read.c:12429
 #, possible-c-format
 msgid "Dwarf Error: bad DWP hash table, invalid section found [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:10245
+#: dwarf2read.c:12439
 #, possible-c-format
 msgid "Dwarf Error: bad DWP hash table, missing DWO sections [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:10251
+#: dwarf2read.c:12445
 #, possible-c-format
 msgid "Dwarf Error: bad DWP hash table, too many DWO sections [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:10359
+#: dwarf2read.c:12549
 #, possible-c-format
 msgid ""
 "Dwarf Error: Bad DWP V2 section info, doesn't fit in section %s [in module %"
 "s]"
 msgstr ""
 
-#: dwarf2read.c:10604
+#: dwarf2read.c:12789
 #, possible-c-format
 msgid "Dwarf Error: bad DWP hash table, lookup didn't terminate [in module %s]"
 msgstr ""
@@ -9907,109 +10185,109 @@ msgstr ""
 #. Technically speaking, we should try to limp along, but this is
 #. pretty bizarre.  We use pulongest here because that's the established
 #. portability solution (e.g, we cannot use %u for uint32_t).
-#: dwarf2read.c:11043
+#: dwarf2read.c:13229
 #, possible-c-format
 msgid ""
 "Dwarf Error: DWP file CU version %s doesn't match TU version %s [in DWP file "
 "%s]"
 msgstr ""
 
-#: dwarf2read.c:11206
+#: dwarf2read.c:13401
 #, possible-c-format
 msgid ""
 "Could not find DWO %s %s(%s)%s referenced by %s at offset 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11388
+#: dwarf2read.c:13566
 #, possible-c-format
 msgid "DIE 0x%x and its abstract origin 0x%x have different tags"
 msgstr ""
 
-#: dwarf2read.c:11444
+#: dwarf2read.c:13613
 #, possible-c-format
 msgid "Child DIE 0x%x and its abstract origin 0x%x have different tags"
 msgstr ""
 
-#: dwarf2read.c:11450
+#: dwarf2read.c:13619
 #, possible-c-format
 msgid "Child DIE 0x%x and its abstract origin 0x%x have different parents"
 msgstr ""
 
-#: dwarf2read.c:11463
+#: dwarf2read.c:13632
 #, possible-c-format
 msgid ""
 "Multiple children of DIE 0x%x refer to DIE 0x%x as their abstract origin"
 msgstr ""
 
-#: dwarf2read.c:11532
+#: dwarf2read.c:13699
 #, possible-c-format
 msgid "missing name for subprogram DIE at %d"
 msgstr ""
 
-#: dwarf2read.c:11544
+#: dwarf2read.c:13711
 #, possible-c-format
 msgid "cannot get low and high bounds for subprogram DIE at %d"
 msgstr ""
 
-#: dwarf2read.c:11779
+#: dwarf2read.c:13945
 #, possible-c-format
 msgid ""
 "missing DW_AT_call_return_pc for DW_TAG_call_site DIE 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11796
+#: dwarf2read.c:13962
 #, possible-c-format
 msgid "Duplicate PC %s for DW_TAG_call_site DIE 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11813
+#: dwarf2read.c:13979
 #, possible-c-format
 msgid ""
 "Tag %d is not DW_TAG_call_site_parameter in DW_TAG_call_site child DIE 0x%x "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11876
+#: dwarf2read.c:14042
 #, possible-c-format
 msgid "Cannot find function owning DW_TAG_call_site DIE 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11929
+#: dwarf2read.c:14089
 #, possible-c-format
 msgid ""
 "DW_AT_call_target target DIE has invalid physname, for referencing DIE 0x%x "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11943
+#: dwarf2read.c:14103
 #, possible-c-format
 msgid ""
 "DW_AT_call_target target DIE has invalid low pc, for referencing DIE 0x%x "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11955
+#: dwarf2read.c:14115
 #, possible-c-format
 msgid ""
 "DW_TAG_call_site DW_AT_call_target is neither block nor reference, for DIE 0x"
 "%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12002
+#: dwarf2read.c:14162
 #, possible-c-format
 msgid ""
 "DW_AT_call_parameter offset is not in CU for DW_TAG_call_site child DIE 0x%x "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12014
+#: dwarf2read.c:14174
 #, possible-c-format
 msgid ""
 "No DW_FORM_block* DW_AT_location for DW_TAG_call_site child DIE 0x%x [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:12032
+#: dwarf2read.c:14192
 #, possible-c-format
 msgid ""
 "Only single DW_OP_reg or DW_OP_fbreg is supported for DW_FORM_block* "
@@ -10017,171 +10295,181 @@ msgid ""
 "s]"
 msgstr ""
 
-#: dwarf2read.c:12048
+#: dwarf2read.c:14208
 #, possible-c-format
 msgid ""
 "No DW_FORM_block* DW_AT_call_value for DW_TAG_call_site child DIE 0x%x [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:12069
+#: dwarf2read.c:14229
 #, possible-c-format
 msgid ""
 "No DW_FORM_block* DW_AT_call_data_value for DW_TAG_call_site child DIE 0x%x "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12117 dwarf2read.c:12290
+#: dwarf2read.c:14321 dwarf2read.c:14493
 #, possible-c-format
 msgid "Offset %d out of bounds for DW_AT_ranges attribute"
 msgstr ""
 
-#: dwarf2read.c:12199 dwarf2read.c:12212
+#: dwarf2read.c:14403 dwarf2read.c:14416
 msgid "Invalid .debug_rnglists data (no base address)"
 msgstr ""
 
-#: dwarf2read.c:12220
+#: dwarf2read.c:14424
 msgid "Invalid .debug_rnglists data (inverted range)"
 msgstr ""
 
-#: dwarf2read.c:12237
+#: dwarf2read.c:14441
 #, possible-c-format
 msgid ".debug_rnglists entry has start address of zero [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12248
+#: dwarf2read.c:14452
 #, possible-c-format
 msgid "Offset %d is not terminated for DW_AT_ranges attribute"
 msgstr ""
 
-#: dwarf2read.c:12330
+#: dwarf2read.c:14533
 msgid "Invalid .debug_ranges data (no base address)"
 msgstr ""
 
-#: dwarf2read.c:12338
+#: dwarf2read.c:14541
 msgid "Invalid .debug_ranges data (inverted range)"
 msgstr ""
 
-#: dwarf2read.c:12355
+#: dwarf2read.c:14558
 #, possible-c-format
 msgid ".debug_ranges entry has start address of zero [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:13098
+#: dwarf2read.c:15248
+#, possible-c-format
+msgid "Unhandled DW_AT_accessibility value (%x)"
+msgstr ""
+
+#: dwarf2read.c:15348
 #, possible-c-format
 msgid "unsupported accessibility %d"
 msgstr ""
 
-#: dwarf2read.c:13110
+#: dwarf2read.c:15360
 msgid "unexpected virtuality in component of Ada type"
 msgstr ""
 
-#: dwarf2read.c:13163
+#: dwarf2read.c:15413
 msgid "unexpected member function in Ada type"
 msgstr ""
 
-#: dwarf2read.c:13246
+#: dwarf2read.c:15496
 #, possible-c-format
 msgid "member function type missing for '%s'"
 msgstr ""
 
-#: dwarf2read.c:13319
+#: dwarf2read.c:15569
 #, possible-c-format
 msgid "cannot determine context for virtual member function \"%s\" (offset %d)"
 msgstr ""
 
-#: dwarf2read.c:13347
+#: dwarf2read.c:15597
 #, possible-c-format
 msgid ""
 "Member function \"%s\" (offset %d) is virtual but the vtable offset is not "
 "specified"
 msgstr ""
 
-#: dwarf2read.c:13366
+#: dwarf2read.c:15616
 msgid "unexpected member functions in Ada type"
 msgstr ""
 
-#: dwarf2read.c:13716
+#: dwarf2read.c:15952
 #, possible-c-format
 msgid "virtual function table pointer not found when defining class '%s'"
 msgstr ""
 
-#: dwarf2read.c:14157
+#: dwarf2read.c:16336
+#, possible-c-format
+msgid "unable to read array DW_AT_byte_stride  - DIE at 0x%x [in module %s]"
+msgstr ""
+
+#: dwarf2read.c:16421
 msgid "DW_AT_byte_size for array type smaller than the total size of elements"
 msgstr ""
 
-#: dwarf2read.c:14380
+#: dwarf2read.c:16642
 #, possible-c-format
 msgid ""
 "Variable in common block has DW_AT_data_member_location - DIE at 0x%x [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:14502
+#: dwarf2read.c:16765
 #, possible-c-format
 msgid "DW_TAG_module has no name, offset 0x%x"
 msgstr ""
 
-#: dwarf2read.c:14616
+#: dwarf2read.c:16879
 #, possible-c-format
 msgid "invalid pointer size %d"
 msgstr ""
 
-#: dwarf2read.c:15044
+#: dwarf2read.c:17307
 #, possible-c-format
 msgid "Self-referential DW_TAG_typedef - DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:15099
+#: dwarf2read.c:17362
 msgid "DW_AT_name missing from DW_TAG_base_type"
 msgstr ""
 
-#: dwarf2read.c:15161
+#: dwarf2read.c:17424
 #, possible-c-format
 msgid "unsupported DW_ATE_UTF bit size: '%d'"
 msgstr ""
 
-#: dwarf2read.c:15170
+#: dwarf2read.c:17433
 #, possible-c-format
 msgid "unsupported DW_AT_encoding: '%s'"
 msgstr ""
 
-#: dwarf2read.c:15351
+#: dwarf2read.c:17613
 #, possible-c-format
 msgid "Missing DW_AT_lower_bound - DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:15592
+#: dwarf2read.c:17859
 #, possible-c-format
 msgid "Dwarf Error: could not find abbrev number %d [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16041
+#: dwarf2read.c:18308
 #, possible-c-format
 msgid ""
 "DW_TAG_typedef has childen - GCC PR debug/47510 bug - DIE at 0x%x [in module "
 "%s]"
 msgstr ""
 
-#: dwarf2read.c:16362
+#: dwarf2read.c:18629
 #, possible-c-format
 msgid "DW_AT_low_pc %s is zero for DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16373
+#: dwarf2read.c:18640
 #, possible-c-format
 msgid ""
 "DW_AT_low_pc %s is not < DW_AT_high_pc %s for DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16430
+#: dwarf2read.c:18697
 #, possible-c-format
 msgid ""
 "Dwarf Error: Type Unit at offset 0x%x contains external reference to offset "
 "0x%x [in module %s].\n"
 msgstr ""
 
-#: dwarf2read.c:16465
+#: dwarf2read.c:18732
 #, possible-c-format
 msgid "could not find partial DIE 0x%x in cache [from module %s]\n"
 msgstr ""
@@ -10190,139 +10478,139 @@ msgstr ""
 #. Later we can turn this into a complaint.
 #. For now flag a hard error.
 #. Later we can turn this into a complaint if warranted.
-#: dwarf2read.c:16805 dwarf2read.c:16817
+#: dwarf2read.c:19072 dwarf2read.c:19084
 #, possible-c-format
 msgid "Dwarf Error: %s found in non-DWO CU [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16852
+#: dwarf2read.c:19119
 #, possible-c-format
 msgid "Suspicious DW_AT_byte_size value treated as zero instead of %s"
 msgstr ""
 
-#: dwarf2read.c:16938
+#: dwarf2read.c:19205
 #, possible-c-format
 msgid "read_address: bad switch, signed [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16957
+#: dwarf2read.c:19224
 #, possible-c-format
 msgid "read_address: bad switch, unsigned [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17051
+#: dwarf2read.c:19318
 msgid "intermixed 32-bit and 64-bit DWARF sections"
 msgstr ""
 
-#: dwarf2read.c:17088
+#: dwarf2read.c:19355
 #, possible-c-format
 msgid "read_offset_1: bad switch [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17133
+#: dwarf2read.c:19400
 #, possible-c-format
 msgid "%s used without %s section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17136
+#: dwarf2read.c:19403
 #, possible-c-format
 msgid "%s pointing outside of %s section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17176
+#: dwarf2read.c:19443
 #, possible-c-format
 msgid "DW_FORM_GNU_strp_alt used without .debug_str section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17180
+#: dwarf2read.c:19447
 #, possible-c-format
 msgid ""
 "DW_FORM_GNU_strp_alt pointing outside of .debug_str section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17287
+#: dwarf2read.c:19554
 #, possible-c-format
 msgid "DW_FORM_addr_index used without .debug_addr section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17290
+#: dwarf2read.c:19557
 #, possible-c-format
 msgid ""
 "DW_FORM_addr_index pointing outside of .debug_addr section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17420
+#: dwarf2read.c:19687
 #, possible-c-format
 msgid ""
 "%s used without .debug_str.dwo section in CU at offset 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17424
+#: dwarf2read.c:19691
 #, possible-c-format
 msgid ""
 "%s used without .debug_str_offsets.dwo section in CU at offset 0x%x [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:17428
+#: dwarf2read.c:19695
 #, possible-c-format
 msgid ""
 "%s pointing outside of .debug_str_offsets.dwo section in CU at offset 0x%x "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17438
+#: dwarf2read.c:19705
 #, possible-c-format
 msgid ""
 "Offset from %s pointing outside of .debug_str.dwo section in CU at offset 0x%"
 "x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17586
+#: dwarf2read.c:19853
 #, possible-c-format
 msgid "string type expected for attribute %s for DIE at 0x%x in module %s"
 msgstr ""
 
-#: dwarf2read.c:17816
+#: dwarf2read.c:20082
 #, possible-c-format
 msgid "Unknown format content type %s"
 msgstr ""
 
-#: dwarf2read.c:17852
+#: dwarf2read.c:20118
 msgid "missing .debug_line.dwo section"
 msgstr ""
 
-#: dwarf2read.c:17854
+#: dwarf2read.c:20120
 msgid "missing .debug_line section"
 msgstr ""
 
-#: dwarf2read.c:17895
+#: dwarf2read.c:20161
 msgid "unsupported version in .debug_line section"
 msgstr ""
 
-#: dwarf2read.c:17911
+#: dwarf2read.c:20177
 #, possible-c-format
 msgid "unsupported segment selector size %u in .debug_line section"
 msgstr ""
 
-#: dwarf2read.c:17933
+#: dwarf2read.c:20199
 msgid "invalid maximum_ops_per_instruction in `.debug_line' section"
 msgstr ""
 
-#: dwarf2read.c:18006
+#: dwarf2read.c:20272
 msgid "line number info header doesn't fit in `.debug_line' section"
 msgstr ""
 
-#: dwarf2read.c:18480
+#: dwarf2read.c:20746
 #, possible-c-format
 msgid ".debug_line address at offset 0x%lx is 0 [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:18608 dwarf2read.c:18617
+#: dwarf2read.c:20874 dwarf2read.c:20883
 msgid "mangled .debug_line section"
 msgstr ""
 
-#: dwarf2read.c:18992
+#: dwarf2read.c:21258
 msgid "file index out of range"
 msgstr ""
 
@@ -10330,58 +10618,58 @@ msgstr ""
 #. trash data, but since we must specifically ignore things
 #. we don't recognize, there is nothing else we should do at
 #. this point.
-#: dwarf2read.c:19278
+#: dwarf2read.c:21543
 #, possible-c-format
 msgid "unsupported tag: '%s'"
 msgstr ""
 
-#: dwarf2read.c:19445 dwarf2read.c:20873
+#: dwarf2read.c:21710 dwarf2read.c:23129
 #, possible-c-format
 msgid "unsupported const value attribute form: '%s'"
 msgstr ""
 
-#: dwarf2read.c:19563
+#: dwarf2read.c:21828
 #, possible-c-format
 msgid ""
 "Dwarf Error: Problem turning containing type into gdb type [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19577
+#: dwarf2read.c:21842
 #, possible-c-format
 msgid "<unknown type in %s, CU 0x%x, DIE 0x%x>"
 msgstr ""
 
-#: dwarf2read.c:19629
+#: dwarf2read.c:21894
 #, possible-c-format
 msgid "Dwarf Error: Bad type attribute %s in DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19758
+#: dwarf2read.c:22023
 #, possible-c-format
 msgid "unexpected tag in read_type_die: '%s'"
 msgstr ""
 
-#: dwarf2read.c:19975
+#: dwarf2read.c:22234
 #, possible-c-format
 msgid "template param type '%s' defined within parent '%s'"
 msgstr ""
 
-#: dwarf2read.c:20513
+#: dwarf2read.c:22769
 #, possible-c-format
 msgid "unsupported die ref attribute form: '%s'"
 msgstr ""
 
-#: dwarf2read.c:20536
+#: dwarf2read.c:22792
 #, possible-c-format
 msgid "Attribute value is not a constant (%s)"
 msgstr ""
 
-#: dwarf2read.c:20559
+#: dwarf2read.c:22815
 #, possible-c-format
 msgid "Dwarf Error: Expected reference attribute [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:20635
+#: dwarf2read.c:22891
 #, possible-c-format
 msgid ""
 "Dwarf Error: Cannot find DIE at 0x%x referenced from DIE at 0x%x [in module %"
@@ -10390,306 +10678,316 @@ msgstr ""
 
 #. We shouldn't get here for a dummy CU, but don't crash on the user.
 #. Instead just throw an error, not much else we can do.
-#: dwarf2read.c:20667 dwarf2read.c:20775
+#: dwarf2read.c:22923 dwarf2read.c:23031
 #, possible-c-format
 msgid "Dwarf Error: Dummy CU at 0x%x referenced in module %s"
 msgstr ""
 
-#: dwarf2read.c:20673 dwarf2read.c:20781
+#: dwarf2read.c:22929 dwarf2read.c:23037
 #, possible-c-format
 msgid "Dwarf Error: Cannot find DIE at 0x%x referenced in module %s"
 msgstr ""
 
-#: dwarf2read.c:20700
+#: dwarf2read.c:22956
 #, possible-c-format
 msgid ""
 "Dwarf Error: DIE at 0x%x referenced in module %s is neither DW_FORM_block* "
 "nor DW_FORM_exprloc"
 msgstr ""
 
-#: dwarf2read.c:20987 dwarf2read.c:21024
+#: dwarf2read.c:23243 dwarf2read.c:23280
 #, possible-c-format
 msgid ""
 "Dwarf Error: Cannot find signatured DIE %s referenced from DIE at 0x%x [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:20997 dwarf2read.c:21056
+#: dwarf2read.c:23253 dwarf2read.c:23312
 #, possible-c-format
 msgid ""
 "Dwarf Error: Problem reading signatured DIE %s referenced from DIE at 0x%x "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:21046
+#: dwarf2read.c:23302
 #, possible-c-format
 msgid ""
 "Dwarf Error: Cannot build signatured type %s referenced from DIE at 0x%x [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:21089
+#: dwarf2read.c:23345
 #, possible-c-format
 msgid ""
 "Dwarf Error: DW_AT_signature has bad form %s in DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:21409
+#: dwarf2read.c:23665
 #, possible-c-format
 msgid "unsupported stack op: '%s'"
 msgstr ""
 
-#: dwarf2read.c:21412
+#: dwarf2read.c:23668
 #, possible-c-format
 msgid "unsupported stack op: '%02x'"
 msgstr ""
 
-#: dwarf2read.c:21424
+#: dwarf2read.c:23680
 msgid "location description stack overflow"
 msgstr ""
 
-#: dwarf2read.c:21431
+#: dwarf2read.c:23687
 msgid "location description stack underflow"
 msgstr ""
 
-#: dwarf2read.c:21495
+#: dwarf2read.c:23751
 #, possible-c-format
 msgid "bad file number in macro information (%d)"
 msgstr ""
 
-#: dwarf2read.c:21572
+#: dwarf2read.c:23814
 #, possible-c-format
 msgid ""
 "macro definition contains spaces in formal argument list:\n"
 "`%s'"
 msgstr ""
 
-#: dwarf2read.c:21803
+#: dwarf2read.c:24044
 #, possible-c-format
 msgid "invalid form 0x%x in `%s'"
 msgstr ""
 
-#: dwarf2read.c:21831
+#: dwarf2read.c:24072
 #, possible-c-format
 msgid "unrecognized DW_MACFINO opcode 0x%x"
 msgstr ""
 
-#: dwarf2read.c:21877
+#: dwarf2read.c:24118
 #, possible-c-format
 msgid "unrecognized version `%d' in .debug_macro section"
 msgstr ""
 
-#: dwarf2read.c:22019
+#: dwarf2read.c:24262
 #, possible-c-format
 msgid "debug info with no main source gives macro %s on line %d: %s"
 msgstr ""
 
-#: dwarf2read.c:22021 dwarf2read.c:22030
+#: dwarf2read.c:24264 dwarf2read.c:24273
 msgid "definition"
 msgstr ""
 
-#: dwarf2read.c:22021 dwarf2read.c:22030
+#: dwarf2read.c:24264 dwarf2read.c:24273
 msgid "undefinition"
 msgstr ""
 
-#: dwarf2read.c:22028
+#: dwarf2read.c:24271
 #, possible-c-format
 msgid "debug info gives %s macro %s with %s line %d: %s"
 msgstr ""
 
-#: dwarf2read.c:22029 dwarf2read.c:22060
+#: dwarf2read.c:24272 dwarf2read.c:24303
 msgid "command-line"
 msgstr ""
 
-#: dwarf2read.c:22029
+#: dwarf2read.c:24272
 msgid "in-file"
 msgstr ""
 
-#: dwarf2read.c:22031 dwarf2read.c:22061
+#: dwarf2read.c:24274 dwarf2read.c:24304
 msgid "zero"
 msgstr ""
 
-#: dwarf2read.c:22031 dwarf2read.c:22061
+#: dwarf2read.c:24274 dwarf2read.c:24304
 msgid "non-zero"
 msgstr ""
 
-#: dwarf2read.c:22058
+#: dwarf2read.c:24301
 #, possible-c-format
 msgid "debug info gives source %d included from %s at %s line %d"
 msgstr ""
 
-#: dwarf2read.c:22060 skip.c:331
+#: dwarf2read.c:24303 skip.c:331
 msgid "file"
 msgstr ""
 
-#: dwarf2read.c:22077
+#: dwarf2read.c:24320
 msgid "macro debug info has an unmatched `close_file' directive"
 msgstr ""
 
-#: dwarf2read.c:22105
+#: dwarf2read.c:24348
 msgid "no terminating 0-type entry for macros in `.debug_macinfo' section"
 msgstr ""
 
-#: dwarf2read.c:22147
+#: dwarf2read.c:24390
 msgid "recursive DW_MACRO_import in .debug_macro section"
 msgstr ""
 
-#: dwarf2read.c:22239
+#: dwarf2read.c:24482
 #, possible-c-format
 msgid "missing %s section"
 msgstr ""
 
-#: dwarf2read.c:22527
+#: dwarf2read.c:24773
 msgid "Location list used without specifying the CU base address."
 msgstr ""
 
-#: dwarf2read.c:22702
+#: dwarf2read.c:24948
 #, possible-c-format
 msgid ""
 "Dwarf Error: could not find partial DIE containing offset 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:22715
+#: dwarf2read.c:24961
 #, possible-c-format
 msgid "invalid dwarf2 offset %u"
 msgstr ""
 
-#: dwarf2read.c:23002
+#: dwarf2read.c:25225
 #, possible-c-format
 msgid "DW_AT_allocated has the wrong form (%s) at DIE 0x%x"
 msgstr ""
 
-#: dwarf2read.c:23017
+#: dwarf2read.c:25240
 #, possible-c-format
 msgid "DW_AT_associated has the wrong form (%s) at DIE 0x%x"
 msgstr ""
 
-#: dwarf2read.c:23046
+#: dwarf2read.c:25269
 #, possible-c-format
 msgid "A problem internal to GDB: DIE 0x%x has type already set"
 msgstr ""
 
-#: dwarf2read.c:23796
+#: dwarf2read.c:25464
+msgid "couldn't data write to file"
+msgstr ""
+
+#: dwarf2read.c:25936 dwarf2read.c:26568
 msgid "Ada is not currently supported by the index"
 msgstr ""
 
-#: dwarf2read.c:23820
-msgid "couldn't data write to file"
+#: dwarf2read.c:26318
+#, possible-c-format
+msgid "Duplicate string \"%s\" in .debug_str section [in module %s]"
+msgstr ""
+
+#: dwarf2read.c:26920
+#, possible-c-format
+msgid "Can't get `%s' size"
 msgstr ""
 
-#: dwarf2read.c:23918
+#: dwarf2read.c:26931
 msgid "Cannot use an index to create the index"
 msgstr ""
 
-#: dwarf2read.c:23921
+#: dwarf2read.c:26934
 msgid "Cannot make an index when the file has multiple .debug_types sections"
 msgstr ""
 
-#: dwarf2read.c:23935
+#: dwarf2read.c:26950 dwarf2read.c:26967
 #, possible-c-format
 msgid "Can't open `%s' for writing"
 msgstr ""
 
-#: dwarf2read.c:24093
-msgid "usage: save gdb-index DIRECTORY"
+#: dwarf2read.c:27014
+msgid "usage: save gdb-index [-dwarf-5] DIRECTORY"
 msgstr ""
 
-#: dwarf2read.c:24116
+#: dwarf2read.c:27037
 #, possible-c-format
 msgid "Error while writing index for `%s': "
 msgstr ""
 
-#: dwarf2read.c:24133
+#: dwarf2read.c:27054
 #, possible-c-format
 msgid "Whether to always disassemble DWARF expressions is %s.\n"
 msgstr ""
 
-#: dwarf2read.c:24143
+#: dwarf2read.c:27064
 #, possible-c-format
 msgid "Whether to check \"physname\" is %s.\n"
 msgstr ""
 
-#: dwarf2read.c:24157
+#: dwarf2read.c:27076
 msgid ""
 "Set DWARF specific variables.\n"
 "Configure DWARF variables such as the cache size"
 msgstr ""
 
 #. allow-unknown
-#: dwarf2read.c:24163
+#: dwarf2read.c:27082
 msgid ""
 "Show DWARF specific variables\n"
 "Show DWARF variables such as the cache size"
 msgstr ""
 
-#: dwarf2read.c:24170
+#: dwarf2read.c:27089
 msgid "Set the upper bound on the age of cached DWARF compilation units."
 msgstr ""
 
-#: dwarf2read.c:24171
+#: dwarf2read.c:27090
 msgid "Show the upper bound on the age of cached DWARF compilation units."
 msgstr ""
 
-#: dwarf2read.c:24172
+#: dwarf2read.c:27091
 msgid ""
 "A higher limit means that cached compilation units will be stored\n"
 "in memory longer, and more total memory will be used.  Zero disables\n"
 "caching, which can slow down startup."
 msgstr ""
 
-#: dwarf2read.c:24182
+#: dwarf2read.c:27101
 msgid "Set whether `info address' always disassembles DWARF expressions."
 msgstr ""
 
-#: dwarf2read.c:24183
+#: dwarf2read.c:27102
 msgid "Show whether `info address' always disassembles DWARF expressions."
 msgstr ""
 
-#: dwarf2read.c:24184
+#: dwarf2read.c:27103
 msgid ""
 "When enabled, DWARF expressions are always printed in an assembly-like\n"
 "syntax.  When disabled, expressions will be printed in a more\n"
 "conversational style, when possible."
 msgstr ""
 
-#: dwarf2read.c:24193
+#: dwarf2read.c:27112
 msgid "Set debugging of the DWARF reader."
 msgstr ""
 
-#: dwarf2read.c:24194
+#: dwarf2read.c:27113
 msgid "Show debugging of the DWARF reader."
 msgstr ""
 
-#: dwarf2read.c:24195
+#: dwarf2read.c:27114
 msgid ""
 "When enabled (non-zero), debugging messages are printed during DWARF\n"
 "reading and symtab expansion.  A value of 1 (one) provides basic\n"
 "information.  A value greater than 1 provides more verbose information."
 msgstr ""
 
-#: dwarf2read.c:24203
+#: dwarf2read.c:27122
 msgid "Set debugging of the DWARF DIE reader."
 msgstr ""
 
-#: dwarf2read.c:24204
+#: dwarf2read.c:27123
 msgid "Show debugging of the DWARF DIE reader."
 msgstr ""
 
-#: dwarf2read.c:24205
+#: dwarf2read.c:27124
 msgid ""
 "When enabled (non-zero), DIEs are dumped after they are read in.\n"
 "The value is the maximum depth to print."
 msgstr ""
 
-#: dwarf2read.c:24212
+#: dwarf2read.c:27131
 msgid "Set debugging of the dwarf line reader."
 msgstr ""
 
-#: dwarf2read.c:24213
+#: dwarf2read.c:27132
 msgid "Show debugging of the dwarf line reader."
 msgstr ""
 
-#: dwarf2read.c:24214
+#: dwarf2read.c:27133
 msgid ""
 "When enabled (non-zero), line number entries are dumped as they are read "
 "in.\n"
@@ -10697,29 +10995,29 @@ msgid ""
 "A value greater than 1 provides more verbose information."
 msgstr ""
 
-#: dwarf2read.c:24222
+#: dwarf2read.c:27141
 msgid "Set cross-checking of \"physname\" code against demangler."
 msgstr ""
 
-#: dwarf2read.c:24223
+#: dwarf2read.c:27142
 msgid "Show cross-checking of \"physname\" code against demangler."
 msgstr ""
 
-#: dwarf2read.c:24224
+#: dwarf2read.c:27143
 msgid ""
 "When enabled, GDB's internal \"physname\" code is checked against\n"
 "the demangler."
 msgstr ""
 
-#: dwarf2read.c:24231
+#: dwarf2read.c:27150
 msgid "Set whether to use deprecated gdb_index sections."
 msgstr ""
 
-#: dwarf2read.c:24232
+#: dwarf2read.c:27151
 msgid "Show whether to use deprecated gdb_index sections."
 msgstr ""
 
-#: dwarf2read.c:24233
+#: dwarf2read.c:27152
 msgid ""
 "When enabled, deprecated .gdb_index sections are used anyway.\n"
 "Normally they are ignored either because of a missing feature or\n"
@@ -10727,154 +11025,158 @@ msgid ""
 "Warning: This option must be enabled before gdb reads the file."
 msgstr ""
 
-#: dwarf2read.c:24243
+#: dwarf2read.c:27162
 msgid ""
 "Save a gdb-index file.\n"
-"Usage: save gdb-index DIRECTORY"
+"Usage: save gdb-index [-dwarf-5] DIRECTORY\n"
+"\n"
+"No options create one file with .gdb-index extension for pre-DWARF-5\n"
+"compatible .gdb_index section.  With -dwarf-5 creates two files with\n"
+"extension .debug_names and .debug_str for DWARF-5 .debug_names section."
 msgstr ""
 
-#: elfread.c:151
+#: elfread.c:150
 #, possible-c-format
 msgid "Loadable section \"%s\" outside of ELF segments"
 msgstr ""
 
 #. This case indicates buggy inferior program, the resolved address
 #. should never change.
-#: elfread.c:725
+#: elfread.c:711
 #, possible-c-format
 msgid ""
 "gnu-indirect-function \"%s\" has changed its resolved function_address from %"
 "s to %s"
 msgstr ""
 
-#: elfread.c:986
+#: elfread.c:969
 #, possible-c-format
 msgid "handle_inferior_event: Invalid gnu-indirect-function breakpoint type %d"
 msgstr ""
 
-#: elfread.c:1066 elfread.c:1079 elfread.c:1105 machoread.c:829
+#: elfread.c:1045 elfread.c:1058 elfread.c:1084 machoread.c:829
 #: machoread.c:846
 #, possible-c-format
 msgid "Can't read symbols from %s: %s"
 msgstr ""
 
-#: eval.c:310
+#: eval.c:315
 msgid "too many initializers"
 msgstr ""
 
-#: eval.c:314
+#: eval.c:319
 msgid "don't know which variant you want to set"
 msgstr ""
 
-#: eval.c:375
+#: eval.c:380
 msgid "tuple index out of range"
 msgstr ""
 
-#: eval.c:784
+#: eval.c:779
+msgid "Cannot evaluate function -- may be inlined"
+msgstr ""
+
+#: eval.c:802 valarith.c:491 valarith.c:610
+msgid "Xmethod is missing return type."
+msgstr ""
+
+#: eval.c:819
+msgid ""
+"Expression of type other than \"Function returning ...\" used as function"
+msgstr ""
+
+#: eval.c:914
+msgid "Non-pointer-to-member value used in pointer-to-member construct"
+msgstr ""
+
+#. For the time being, we don't handle this.
+#: eval.c:1146
+#, possible-c-format
+msgid "Call to overloaded function %s requires `this' pointer"
+msgstr ""
+
+#: eval.c:1329
 #, possible-c-format
 msgid "Symbol \"%s\" does not have any specific entry value"
 msgstr ""
 
-#: eval.c:806
+#: eval.c:1372
 #, possible-c-format
 msgid "Register $%s not available."
 msgstr ""
 
-#: eval.c:820
+#: eval.c:1386
 #, possible-c-format
 msgid "Value of register %s not available."
 msgstr ""
 
-#: eval.c:931
+#: eval.c:1495
 msgid "(power)set type with unknown size"
 msgstr ""
 
 #. different element modes.
-#: eval.c:954
+#: eval.c:1518
 msgid "POWERSET tuple elements of different mode"
 msgstr ""
 
-#: eval.c:958
+#: eval.c:1522
 msgid "incompatible POWERSET tuple elements"
 msgstr ""
 
-#: eval.c:961
+#: eval.c:1525
 msgid "empty POWERSET tuple range"
 msgstr ""
 
-#: eval.c:965
+#: eval.c:1529
 msgid "POWERSET tuple element out of range"
 msgstr ""
 
-#: eval.c:1130
+#: eval.c:1694
 msgid "no 'respondsTo:' or 'respondsToSelector:' method"
 msgstr ""
 
-#: eval.c:1139
+#: eval.c:1703
 msgid "no 'methodFor:' or 'methodForSelector:' method"
 msgstr ""
 
-#: eval.c:1158
+#: eval.c:1722
 msgid "Target does not respond to this message selector."
 msgstr ""
 
-#: eval.c:1243
+#: eval.c:1807
 msgid "method address has symbol information with non-function type; skipping"
 msgstr ""
 
-#: eval.c:1296
+#: eval.c:1860
 msgid "Expression of type other than \"method returning ...\" used as a method"
 msgstr ""
 
-#: eval.c:1390
-msgid "Non-pointer-to-member value used in pointer-to-member construct"
-msgstr ""
-
-#. For the time being, we don't handle this.
-#: eval.c:1612
-#, possible-c-format
-msgid "Call to overloaded function %s requires `this' pointer"
-msgstr ""
-
-#: eval.c:1705
-msgid "Cannot evaluate function -- may be inlined"
-msgstr ""
-
-#: eval.c:1731 valarith.c:495 valarith.c:614
-msgid "Xmethod is missing return type."
-msgstr ""
-
-#: eval.c:1739
-msgid ""
-"Expression of type other than \"Function returning ...\" used as function"
-msgstr ""
-
-#: eval.c:1824
+#: eval.c:1962
 msgid "Cannot perform substring on this type"
 msgstr ""
 
-#: eval.c:1941
+#: eval.c:2079
 msgid "non-pointer-to-member value used in pointer-to-member construct"
 msgstr ""
 
-#: eval.c:2213
+#: eval.c:2346
 #, possible-c-format
 msgid "Too many subscripts for F77 (%d Max)"
 msgstr ""
 
-#: eval.c:2218
+#: eval.c:2351
 msgid "Wrong number of subscripts"
 msgstr ""
 
-#: eval.c:2413
+#: eval.c:2546
 msgid "Non-integral right operand for \"@\" operator."
 msgstr ""
 
-#: eval.c:2484
+#: eval.c:2616
 msgid "Attempt to dereference pointer to member without an object"
 msgstr ""
 
-#: eval.c:2782
+#: eval.c:2875
 msgid "Attempt to use a type as an expression"
 msgstr ""
 
@@ -10886,23 +11188,23 @@ msgstr ""
 #. If there are any cases landing here which mean a user error,
 #. then they should be separate cases, with more descriptive
 #. error messages.
-#: eval.c:2811
+#: eval.c:2904
 msgid "GDB does not (yet) know how to evaluate that kind of expression"
 msgstr ""
 
-#: eval.c:2888
+#: eval.c:2980
 msgid "Attempt to take address of register or constant."
 msgstr ""
 
-#: eval.c:2921 valops.c:1446 valops.c:1461 valops.c:1510
+#: eval.c:3029 valops.c:1436 valops.c:1451 valops.c:1500
 msgid "Attempt to take address of value not located in memory."
 msgstr ""
 
-#: eval.c:3095
+#: eval.c:3275
 msgid "Internal error in eval_type."
 msgstr ""
 
-#: eval.c:3106
+#: eval.c:3286
 msgid "Can't get dimensions for a non-array type"
 msgstr ""
 
@@ -10926,107 +11228,107 @@ msgstr ""
 msgid "Exception condition detected on fd %d\n"
 msgstr ""
 
-#: event-top.c:373
+#: event-top.c:370
 msgid "double prompt"
 msgstr ""
 
 #. If stdin died, we may as well kill gdb.
-#: event-top.c:491
+#: event-top.c:484
 msgid "error detected on stdin\n"
 msgstr ""
 
 #. This message is based on ANSI C, section 4.7.  Note that integer
 #. divide by zero causes this, so "float" is a misnomer.
-#: event-top.c:1221
+#: event-top.c:1166
 msgid "Erroneous arithmetic operation."
 msgstr ""
 
-#: exceptions.c:105
+#: exceptions.c:104
 msgid "Bad switch."
 msgstr ""
 
-#: exec.c:73
+#: exec.c:67
 #, possible-c-format
 msgid "Writing into executable and core files is %s.\n"
 msgstr ""
 
-#: exec.c:136 exec.c:273
+#: exec.c:127 exec.c:259
 msgid "No executable file now.\n"
 msgstr ""
 
-#: exec.c:214
+#: exec.c:205
 msgid ""
 "No executable has been specified and target does not support\n"
 "determining executable automatically.  Try using the \"file\" command."
 msgstr ""
 
-#: exec.c:297
+#: exec.c:284
 #, possible-c-format
 msgid "writing into executable files is not supported for %s sysroots"
 msgstr ""
 
-#: exec.c:348
+#: exec.c:335
 #, possible-c-format
 msgid "\"%s\": could not open as an executable file: %s."
 msgstr ""
 
-#: exec.c:365
+#: exec.c:352
 #, possible-c-format
 msgid "\"%s\": not in executable format: %s"
 msgstr ""
 
-#: exec.c:375
+#: exec.c:362
 #, possible-c-format
 msgid "\"%s\": can't find the file sections: %s"
 msgstr ""
 
-#: exec.c:417
+#: exec.c:399
 msgid ""
 "A program is being debugged already.\n"
 "Are you sure you want to change the file? "
 msgstr ""
 
-#: exec.c:419
+#: exec.c:401
 msgid "File not changed."
 msgstr ""
 
-#: exec.c:435
+#: exec.c:415
 msgid "No executable file name was specified"
 msgstr ""
 
-#: exec.c:927 maint.c:353 maint.c:385
+#: exec.c:887 maint.c:348 maint.c:380
 #, possible-c-format
 msgid "file type %s.\n"
 msgstr ""
 
-#: exec.c:953
+#: exec.c:913
 #, possible-c-format
 msgid "Cannot find section for the entry point of %s."
 msgstr ""
 
-#: exec.c:959
+#: exec.c:919
 #, possible-c-format
 msgid "\tEntry point: %s\n"
 msgstr ""
 
-#: exec.c:992
+#: exec.c:952
 msgid "\t<no file loaded>\n"
 msgstr ""
 
-#: exec.c:1007
+#: exec.c:967
 msgid "Must specify section name and its virtual address"
 msgstr ""
 
-#: exec.c:1035
+#: exec.c:995
 #, possible-c-format
 msgid "Section %s not found"
 msgstr ""
 
-#: exec.c:1092
+#: exec.c:1052
 msgid "Can't create a corefile"
 msgstr ""
 
-#: exec.c:1128
+#: exec.c:1088
 msgid ""
 "Use FILE as program to be debugged.\n"
 "It is read for its symbols, for getting the contents of pure memory,\n"
@@ -11036,7 +11338,7 @@ msgid ""
 "No arg means to have no executable file and no symbols."
 msgstr ""
 
-#: exec.c:1138
+#: exec.c:1098
 msgid ""
 "Use FILE as program for getting contents of pure memory.\n"
 "If FILE cannot be found as specified, your execution directory path\n"
@@ -11044,7 +11346,7 @@ msgid ""
 "No arg means have no executable file."
 msgstr ""
 
-#: exec.c:1145
+#: exec.c:1105
 msgid ""
 "Change the base address of section SECTION of the exec file to ADDR.\n"
 "This can be used if the exec file does not contain section addresses,\n"
@@ -11053,15 +11355,15 @@ msgid ""
 "``info files'' command lists all the sections and their addresses."
 msgstr ""
 
-#: exec.c:1152
+#: exec.c:1112
 msgid "Set writing into executable and core files."
 msgstr ""
 
-#: exec.c:1153
+#: exec.c:1113
 msgid "Show writing into executable and core files."
 msgstr ""
 
-#: expprint.c:236
+#: expprint.c:251
 msgid "bad selector"
 msgstr ""
 
@@ -11070,11 +11372,11 @@ msgstr ""
 #. Not found; don't try to keep going because we don't know how
 #. to interpret further elements.  For example, this happens
 #. if opcode is OP_TYPE.
-#: expprint.c:502 expprint.c:598
+#: expprint.c:505 expprint.c:611
 msgid "Invalid expression"
 msgstr ""
 
-#: expprint.c:512
+#: expprint.c:515
 #, possible-c-format
 msgid "<language %s has no 'this'>"
 msgstr ""
@@ -11099,79 +11401,83 @@ msgstr ""
 msgid "Error while fetching result type of an xmethod worker defined in %s."
 msgstr ""
 
-#: fbsd-nat.c:91
+#: fbsd-nat.c:105
 msgid "Couldn't fetch VM map entries."
 msgstr ""
 
-#: fbsd-nat.c:173
+#: fbsd-nat.c:179
 #, possible-c-format
 msgid "Couldn't open %s."
 msgstr ""
 
-#: fbsd-nat.c:297
+#: fbsd-nat.c:460
 #, possible-c-format
 msgid "Debugging of FreeBSD lwp module is %s.\n"
 msgstr ""
 
-#: fbsd-nat.c:766 linux-nat.c:1036 procfs.c:3639 procfs.c:3777
+#: fbsd-nat.c:894 linux-nat.c:1046 procfs.c:2321 procfs.c:2440
 #, possible-c-format
 msgid "[%s exited]\n"
 msgstr ""
 
-#: fbsd-nat.c:1099
+#: fbsd-nat.c:1225
 msgid "Set debugging of FreeBSD lwp module."
 msgstr ""
 
-#: fbsd-nat.c:1100
+#: fbsd-nat.c:1226
 msgid "Show debugging of FreeBSD lwp module."
 msgstr ""
 
-#: fbsd-nat.c:1101 linux-nat.c:4974 linux-nat.c:4983
+#: fbsd-nat.c:1227 linux-nat.c:4981 linux-nat.c:4990
 msgid "Enables printf debugging output."
 msgstr ""
 
-#: fbsd-tdep.c:300
+#: fbsd-tdep.c:386
 msgid "Executable path"
 msgstr ""
 
-#: fbsd-tdep.c:301
+#: fbsd-tdep.c:387
 msgid "Canary for SSP"
 msgstr ""
 
-#: fbsd-tdep.c:303
+#: fbsd-tdep.c:389
 msgid "OSRELDATE"
 msgstr ""
 
-#: fbsd-tdep.c:304
+#: fbsd-tdep.c:390
 msgid "Number of CPUs"
 msgstr ""
 
-#: fbsd-tdep.c:305
+#: fbsd-tdep.c:391
 msgid "Pagesizes"
 msgstr ""
 
-#: fbsd-tdep.c:306
+#: fbsd-tdep.c:392
 msgid "Number of pagesizes"
 msgstr ""
 
-#: fbsd-tdep.c:307
+#: fbsd-tdep.c:393
 msgid "Pointer to timehands"
 msgstr ""
 
-#: fbsd-tdep.c:308
+#: fbsd-tdep.c:394
 msgid "Initial stack protection"
 msgstr ""
 
+#: fbsd-tdep.c:395
+msgid "ELF header e_flags"
+msgstr ""
+
 #. FreeBSD doesn't use gdbarch_get_syscall_number since FreeBSD
 #. native targets fetch the system call number from the
 #. 'pl_syscall_code' member of struct ptrace_lwpinfo in fbsd_wait.
 #. However, system call catching requires this function to be
 #. set.
-#: fbsd-tdep.c:330
+#: fbsd-tdep.c:510
 msgid "fbsd_get_sycall_number called"
 msgstr ""
 
-#: f-exp.y:724 m2-exp.y:689
+#: f-exp.y:731 m2-exp.y:693
 msgid "Overflow on numeric constant."
 msgstr ""
 
@@ -11188,15 +11494,15 @@ msgid ""
 "The assumed file system kind for target reported file names is \"%s\".\n"
 msgstr ""
 
-#: filesystem.c:88
+#: filesystem.c:85
 msgid "Set assumed file system kind for target reported file names"
 msgstr ""
 
-#: filesystem.c:89
+#: filesystem.c:86
 msgid "Show assumed file system kind for target reported file names"
 msgstr ""
 
-#: filesystem.c:91
+#: filesystem.c:88
 msgid ""
 "If `unix', target file names (e.g., loaded shared library file names)\n"
 "starting the forward slash (`/') character are considered absolute,\n"
@@ -11208,44 +11514,44 @@ msgid ""
 "knowledge of the target operating system."
 msgstr ""
 
-#: findcmd.c:77
+#: findcmd.c:71
 msgid "Missing search parameters."
 msgstr ""
 
-#: findcmd.c:109
+#: findcmd.c:99
 msgid "Invalid size granularity."
 msgstr ""
 
-#: findcmd.c:135
+#: findcmd.c:124
 msgid "Empty search range.\n"
 msgstr ""
 
-#: findcmd.c:139 python/py-value.c:443 python/py-lazy-string.c:177
+#: findcmd.c:128 python/py-value.c:443 python/py-lazy-string.c:177
 #: python/py-lazy-string.c:210
 msgid "Invalid length."
 msgstr ""
 
-#: findcmd.c:143
+#: findcmd.c:132
 msgid "Search space too large."
 msgstr ""
 
-#: findcmd.c:153
+#: findcmd.c:142
 msgid "Invalid search space, end precedes start."
 msgstr ""
 
-#: findcmd.c:159
+#: findcmd.c:148
 msgid "Overflow in address range computation, choose smaller range."
 msgstr ""
 
-#: findcmd.c:227
+#: findcmd.c:199
 msgid "Missing search pattern."
 msgstr ""
 
-#: findcmd.c:232
+#: findcmd.c:202
 msgid "Search space too small to contain pattern."
 msgstr ""
 
-#: findcmd.c:326
+#: findcmd.c:286
 msgid ""
 "Search memory for a sequence of bytes.\n"
 "Usage:\n"
@@ -11257,115 +11563,103 @@ msgid ""
 "in the current language.\n"
 "Note that this means for example that in the case of C-like languages\n"
 "a search for an untyped 0x42 will search for \"(int) 0x42\"\n"
-"which is typically four bytes.\n"
+"which is typically four bytes, and a search for a string \"hello\" will\n"
+"include the trailing '\\0'.  The null terminator can be removed from\n"
+"searching by using casts, e.g.: {char[5]}\"hello\".\n"
 "\n"
 "The address of the last match is stored as the value of \"$_\".\n"
 "Convenience variable \"$numfound\" is set to the number of matches."
 msgstr ""
 
-#: findvar.c:59 findvar.c:94
+#: findvar.c:59
 #, possible-c-format
 msgid "That operation is not available on integers of more than %d bytes."
 msgstr ""
 
-#: findvar.c:174
+#: findvar.c:158
 msgid "extract_typed_address: type is not a pointer or reference"
 msgstr ""
 
-#: findvar.c:246
+#: findvar.c:211
 msgid "store_typed_address: type is not a pointer or reference"
 msgstr ""
 
-#: findvar.c:568
+#: findvar.c:572
 #, possible-c-format
 msgid "No frame is currently executing in block %s."
 msgstr ""
 
-#: findvar.c:571
+#: findvar.c:575
 msgid "No frame is currently executing in specified block"
 msgstr ""
 
-#: findvar.c:602
+#: findvar.c:606
 #, possible-c-format
 msgid "Cannot read `%s' without registers"
 msgstr ""
 
-#: findvar.c:668 findvar.c:680
+#: findvar.c:672 findvar.c:684
 #, possible-c-format
 msgid "Unknown argument list address for `%s'."
 msgstr ""
 
-#: findvar.c:694
+#: findvar.c:698
 #, possible-c-format
 msgid "Cannot look up value of a typedef `%s'."
 msgstr ""
 
-#: findvar.c:721 findvar.c:731
+#: findvar.c:725 findvar.c:735
 #, possible-c-format
 msgid "Value of register variable not available for `%s'."
 msgstr ""
 
-#: findvar.c:767
+#: findvar.c:771
 #, possible-c-format
 msgid "Missing %s symbol \"%s\"."
 msgstr ""
 
-#: findvar.c:791
+#: findvar.c:795
 #, possible-c-format
 msgid "Cannot look up value of a botched symbol `%s'."
 msgstr ""
 
-#: findvar.c:958
+#: findvar.c:962
 #, possible-c-format
 msgid "Invalid register #%d, expecting 0 <= # < %d"
 msgstr ""
 
-#: f-lang.c:67
+#: f-lang.c:65
 msgid "unrecognized character type"
 msgstr ""
 
-#: fork-child.c:429
+#: fork-child.c:122 gdbserver/fork-child.c:82
 msgid "setpgrp failed in child"
 msgstr ""
 
-#: fork-child.c:574
-#, possible-c-format
-msgid "During startup program terminated with signal %s, %s."
-msgstr ""
-
-#: fork-child.c:583
-#, possible-c-format
-msgid "During startup program exited with code %d."
-msgstr ""
-
-#: fork-child.c:586
-msgid "During startup program exited normally."
-msgstr ""
-
-#: fork-child.c:653
+#: fork-child.c:158
 #, possible-c-format
 msgid "Use of shell to start subprocesses is %s.\n"
 msgstr ""
 
-#: fork-child.c:663
+#: fork-child.c:165
 msgid ""
 "Set a wrapper for running programs.\n"
 "The wrapper prepares the system and environment for the new program."
 msgstr ""
 
-#: fork-child.c:666
+#: fork-child.c:168
 msgid "Show the wrapper for running programs."
 msgstr ""
 
-#: fork-child.c:672
+#: fork-child.c:174
 msgid "Disable use of an execution wrapper."
 msgstr ""
 
-#: fork-child.c:676
+#: fork-child.c:178
 msgid "Set use of shell to start subprocesses.  The default is on."
 msgstr ""
 
-#: fork-child.c:677
+#: fork-child.c:179
 msgid "Show use of shell to start subprocesses."
 msgstr ""
 
@@ -11402,122 +11696,122 @@ msgstr ""
 msgid "PC not saved"
 msgstr ""
 
-#: frame.c:1052
+#: frame.c:1047
 msgid "Cannot pop the initial frame."
 msgstr ""
 
-#: frame.c:1059 infcmd.c:2065
+#: frame.c:1054 infcmd.c:2069
 msgid "Cannot find the caller frame."
 msgstr ""
 
-#: frame.c:1164 frame.c:1280
+#: frame.c:1158 frame.c:1256 frame.c:1291
 #, possible-c-format
 msgid "Register %d was not saved"
 msgstr ""
 
-#: frame.c:1336
+#: frame.c:1347
 msgid "Attempt to assign to a register that was not saved."
 msgstr ""
 
-#: frame.c:1348
+#: frame.c:1359
 msgid "Attempt to assign to an unmodifiable value."
 msgstr ""
 
-#: frame.c:1406
+#: frame.c:1417
 #, possible-c-format
 msgid ""
 "Bad debug information detected: Attempt to read %d bytes from registers."
 msgstr ""
 
-#: frame.c:1562 ia64-libunwind-tdep.c:348 ia64-tdep.c:1927 ia64-tdep.c:2302
+#: frame.c:1573 ia64-libunwind-tdep.c:347 ia64-tdep.c:1918 ia64-tdep.c:2289
 msgid "No registers."
 msgstr ""
 
-#: frame.c:1564 stack.c:1334 stack.c:1738 thread.c:1936
+#: frame.c:1575 stack.c:1308 stack.c:1706 thread.c:1816
 msgid "No stack."
 msgstr ""
 
-#: frame.c:1566
+#: frame.c:1577
 msgid "No memory."
 msgstr ""
 
-#: frame.c:2789
+#: frame.c:2797
 msgid "Missing unwind SP method"
 msgstr ""
 
-#: frame.c:2926
+#: frame.c:2929
 msgid ""
 "Set backtrace specific variables.\n"
 "Configure backtrace variables such as the backtrace limit"
 msgstr ""
 
 #. allow-unknown
-#: frame.c:2931
+#: frame.c:2934
 msgid ""
 "Show backtrace specific variables\n"
 "Show backtrace variables such as the backtrace limit"
 msgstr ""
 
-#: frame.c:2938
+#: frame.c:2941
 msgid "Set whether backtraces should continue past \"main\"."
 msgstr ""
 
-#: frame.c:2939
+#: frame.c:2942
 msgid "Show whether backtraces should continue past \"main\"."
 msgstr ""
 
-#: frame.c:2940
+#: frame.c:2943
 msgid ""
 "Normally the caller of \"main\" is not of interest, so GDB will terminate\n"
 "the backtrace at \"main\".  Set this variable if you need to see the rest\n"
 "of the stack trace."
 msgstr ""
 
-#: frame.c:2950
+#: frame.c:2953
 msgid ""
 "Set whether backtraces should continue past the entry point of a program."
 msgstr ""
 
-#: frame.c:2952
+#: frame.c:2955
 msgid ""
 "Show whether backtraces should continue past the entry point of a program."
 msgstr ""
 
-#: frame.c:2954
+#: frame.c:2957
 msgid ""
 "Normally there are no callers beyond the entry point of a program, so GDB\n"
 "will terminate the backtrace there.  Set this variable if you need to see\n"
 "the rest of the stack trace."
 msgstr ""
 
-#: frame.c:2964
+#: frame.c:2967
 msgid "Set an upper bound on the number of backtrace levels."
 msgstr ""
 
-#: frame.c:2965
+#: frame.c:2968
 msgid "Show the upper bound on the number of backtrace levels."
 msgstr ""
 
-#: frame.c:2966
+#: frame.c:2969
 msgid ""
 "No more than the specified number of frames can be displayed or examined.\n"
 "Literal \"unlimited\" or zero means no limit."
 msgstr ""
 
 #. Debug this files internals.
-#: frame.c:2975
+#: frame.c:2978
 msgid "Set frame debugging."
 msgstr ""
 
-#: frame.c:2976
+#: frame.c:2979
 msgid "Show frame debugging."
 msgstr ""
 
-#: frame.c:2977
+#: frame.c:2980
 msgid "When non-zero, frame specific internal debugging is enabled."
 msgstr ""
 
-#: frame-unwind.c:166
+#: frame-unwind.c:167
 msgid "frame_unwind_find_by_frame failed"
 msgstr ""
 
@@ -11529,76 +11823,76 @@ msgstr ""
 msgid "not a signal trampoline"
 msgstr ""
 
-#: frv-tdep.c:424
+#: frv-tdep.c:422
 #, possible-c-format
 msgid "Bad register number %d"
 msgstr ""
 
-#: frv-tdep.c:1136
+#: frv-tdep.c:1134
 #, possible-c-format
 msgid "Illegal return value length: %d"
 msgstr ""
 
-#: frv-tdep.c:1341
+#: frv-tdep.c:1339
 #, possible-c-format
 msgid "Don't know how to return a %d-byte value."
 msgstr ""
 
-#: f-typeprint.c:402
+#: f-typeprint.c:407
 #, possible-c-format
 msgid "Invalid type code (%d) in symbol table."
 msgstr ""
 
-#: f-valprint.c:50
+#: f-valprint.c:48
 msgid "Lower bound may not be '*' in F77"
 msgstr ""
 
-#: f-valprint.c:186
+#: f-valprint.c:184
 #, possible-c-format
 msgid "Type node corrupt! F77 arrays cannot have %d subscripts (%d Max)"
 msgstr ""
 
-#: f-valprint.c:416
+#: f-valprint.c:399
 #, possible-c-format
 msgid "Contents of F77 COMMON block '%s':\n"
 msgstr ""
 
-#: f-valprint.c:419
+#: f-valprint.c:402
 msgid "Contents of blank COMMON block:\n"
 msgstr ""
 
-#: f-valprint.c:469 stack.c:2207
+#: f-valprint.c:452 stack.c:2172
 msgid "No symbol table info available.\n"
 msgstr ""
 
-#: f-valprint.c:486
+#: f-valprint.c:469
 #, possible-c-format
 msgid "No common block '%s'.\n"
 msgstr ""
 
-#: f-valprint.c:488
+#: f-valprint.c:471
 msgid "No common blocks.\n"
 msgstr ""
 
-#: f-valprint.c:496
+#: f-valprint.c:479
 msgid "Print out the values contained in a Fortran COMMON block."
 msgstr ""
 
-#: gcore.c:59
+#: gcore.c:60
 #, possible-c-format
 msgid "Failed to open '%s' for output."
 msgstr ""
 
-#: gcore.c:87
+#: gcore.c:86
 msgid "Target does not support core file generation."
 msgstr ""
 
-#: gcore.c:95
+#: gcore.c:94
 #, possible-c-format
 msgid "Failed to create 'note' section for corefile: %s"
 msgstr ""
 
-#: gcore.c:104
+#: gcore.c:103
 msgid "gcore: failed to get corefile memory sections from target."
 msgstr ""
 
@@ -11607,30 +11901,30 @@ msgstr ""
 msgid "writing note section (%s)"
 msgstr ""
 
-#: gcore.c:191
+#: gcore.c:189
 msgid "Can't find default bfd machine type (need execfile)."
 msgstr ""
 
-#: gcore.c:205
+#: gcore.c:203
 msgid "Can't find bfd architecture for corefile (need execfile)."
 msgstr ""
 
-#: gcore.c:472
+#: gcore.c:470
 #, possible-c-format
 msgid "Couldn't make gcore segment: %s"
 msgstr ""
 
-#: gcore.c:574
+#: gcore.c:569
 #, possible-c-format
 msgid "Memory read failed for corefile section, %s bytes at %s."
 msgstr ""
 
-#: gcore.c:582
+#: gcore.c:578
 #, possible-c-format
 msgid "Failed to write corefile contents (%s)."
 msgstr ""
 
-#: gcore.c:621
+#: gcore.c:612
 msgid ""
 "Save a core file with the current state of the debugged process.\n"
 "Argument is optional filename.  Default filename is 'core.<process_id>'."
@@ -11641,90 +11935,94 @@ msgstr ""
 msgid "Architecture debugging is %s.\n"
 msgstr ""
 
-#: gdbarch.c:716
+#: gdbarch.c:718
 #, possible-c-format
 msgid "verify_gdbarch: the following are invalid ...%s"
 msgstr ""
 
-#: gdbarch.c:5222
+#: gdbarch.c:5243
 msgid "gdbarch_architecture_names: multi-arch unknown"
 msgstr ""
 
-#: gdbarch.c:5248
+#: gdbarch.c:5269
 #, possible-c-format
 msgid "gdbarch: Attempt to register unknown architecture (%d)"
 msgstr ""
 
-#: gdbarch.c:5259
+#: gdbarch.c:5280
 #, possible-c-format
 msgid "gdbarch: Duplicate registration of architecture (%s)"
 msgstr ""
 
-#: gdbarch.c:5456
+#: gdbarch.c:5475
 msgid "Set architecture debugging."
 msgstr ""
 
-#: gdbarch.c:5457
+#: gdbarch.c:5476
 msgid "Show architecture debugging."
 msgstr ""
 
-#: gdbarch.c:5458
+#: gdbarch.c:5477
 msgid "When non-zero, architecture debugging is enabled."
 msgstr ""
 
-#: gdb_bfd.c:122
+#: gdbarch-selftests.c:75 regcache.c:1766
+msgid "target already pushed"
+msgstr ""
+
+#: gdb_bfd.c:145
 #, possible-c-format
 msgid "BFD sharing is %s.\n"
 msgstr ""
 
-#: gdb_bfd.c:132
+#: gdb_bfd.c:155
 #, possible-c-format
 msgid "BFD cache debugging is %s.\n"
 msgstr ""
 
-#: gdb_bfd.c:493
+#: gdb_bfd.c:514
 #, possible-c-format
 msgid "cannot close \"%s\": %s"
 msgstr ""
 
-#: gdb_bfd.c:708
+#: gdb_bfd.c:705
 #, possible-c-format
 msgid "Can't read data for section '%s' in file '%s'"
 msgstr ""
 
-#: gdb_bfd.c:730 gdb_bfd.c:743
+#: gdb_bfd.c:727 gdb_bfd.c:740
 #, possible-c-format
 msgid "Problem reading \"%s\" for CRC: %s"
 msgstr ""
 
-#: gdb_bfd.c:1004
+#: gdb_bfd.c:977
 msgid "List the BFDs that are currently open."
 msgstr ""
 
-#: gdb_bfd.c:1009
+#: gdb_bfd.c:982
 msgid "Set whether gdb will share bfds that appear to be the same file."
 msgstr ""
 
-#: gdb_bfd.c:1010
+#: gdb_bfd.c:983
 msgid "Show whether gdb will share bfds that appear to be the same file."
 msgstr ""
 
-#: gdb_bfd.c:1011
+#: gdb_bfd.c:984
 msgid ""
 "When enabled gdb will reuse existing bfds rather than reopening the\n"
 "same file.  To decide if two files are the same then gdb compares the\n"
 "filename, file size, file modification time, and file inode."
 msgstr ""
 
-#: gdb_bfd.c:1021
+#: gdb_bfd.c:994
 msgid "Set bfd cache debugging."
 msgstr ""
 
-#: gdb_bfd.c:1022
+#: gdb_bfd.c:995
 msgid "Show bfd cache debugging."
 msgstr ""
 
-#: gdb_bfd.c:1023
+#: gdb_bfd.c:996
 msgid "When non-zero, bfd cache specific debugging is enabled."
 msgstr ""
 
@@ -11733,432 +12031,504 @@ msgstr ""
 msgid "Could not load %s: %s"
 msgstr ""
 
-#: gdbserver/ax.c:834 printcmd.c:2562
+#: gdbserver/win32-low.c:585
+msgid "Could not convert the expanded inferior cwd to wide-char."
+msgstr ""
+
+#: gdbserver/ax.c:833 printcmd.c:2482
 msgid "Wrong number of arguments for specified format-string"
 msgstr ""
 
-#: gdbserver/ax.c:881
+#: gdbserver/ax.c:880
 msgid "long long not supported in agent printf"
 msgstr ""
 
-#: gdbserver/ax.c:912
+#: gdbserver/ax.c:911
 #, possible-c-format
 msgid "Format directive in '%s' not supported in agent printf"
 msgstr ""
 
-#: gdbserver/ax.c:1319
+#: gdbserver/ax.c:1317
 msgid "Unterminated format string in printf bytecode"
 msgstr ""
 
-#: gdbserver/regcache.c:439
+#: gdbserver/regcache.c:421
 #, possible-c-format
 msgid "That operation is not available on integers of more than%d bytes."
 msgstr ""
 
-#: gdbserver/linux-x86-low.c:744 gdbserver/linux-tile-low.c:159
+#: gdbserver/linux-x86-low.c:752 gdbserver/linux-tile-low.c:159
 msgid "Can't debug 64-bit process with 32-bit GDBserver"
 msgstr ""
 
-#: gdbserver/linux-x86-low.c:747
+#: gdbserver/linux-x86-low.c:755
 msgid "Can't debug x86-64 process with 32-bit GDBserver"
 msgstr ""
 
-#: gdbserver/thread-db.c:631
+#: gdbserver/server.c:269 remote-sim.c:612
+msgid "No executable file specified."
+msgstr ""
+
+#: gdbserver/server.c:666
+#, possible-c-format
+msgid "[QEnvironmentHexEncoded received '%s']\n"
+msgstr ""
+
+#: gdbserver/server.c:667
+#, possible-c-format
+msgid "[Environment variable to be set: '%s']\n"
+msgstr ""
+
+#: gdbserver/server.c:675
+#, possible-c-format
+msgid "Unexpected format for environment variable: '%s'"
+msgstr ""
+
+#: gdbserver/server.c:697
+#, possible-c-format
+msgid "[QEnvironmentUnset received '%s']\n"
+msgstr ""
+
+#: gdbserver/server.c:698
+#, possible-c-format
+msgid "[Environment variable to be unset: '%s']\n"
+msgstr ""
+
+#: gdbserver/server.c:863
+#, possible-c-format
+msgid "[Inferior will %s started with shell]"
+msgstr ""
+
+#: gdbserver/server.c:881
+#, possible-c-format
+msgid "[Set the inferior's current directory to %s]\n"
+msgstr ""
+
+#: gdbserver/server.c:891
+msgid "[Unset the inferior's current directory; will use gdbserver's cwd]\n"
+msgstr ""
+
+#: gdbserver/server.c:3772 maint.c:945 maint.c:959
+#, c-format
+msgid "Selftests are not available in a non-development build.\n"
+msgstr ""
+
+#: gdbserver/thread-db.c:665
 #, possible-c-format
 msgid "libthread-db-search-path component too long, ignored: %s."
 msgstr ""
 
-#: gdbserver/linux-low.c:731 linux-nat.c:2163
+#: gdbserver/linux-low.c:740 linux-nat.c:2171
 #, possible-c-format
 msgid "unknown ptrace event %d"
 msgstr ""
 
-#: gdbserver/linux-low.c:1152 linux-nat.c:1162
+#: gdbserver/linux-low.c:1162 linux-nat.c:1170
 #, possible-c-format
 msgid "Cannot attach to lwp %d: %s"
 msgstr ""
 
-#: gdbserver/linux-low.c:1556 linux-nat.c:1463
+#: gdbserver/linux-low.c:1557 linux-nat.c:1471
 #, possible-c-format
 msgid "Couldn't reap LWP %d while detaching: %s"
 msgstr ""
 
-#: gdbserver/linux-low.c:1561 linux-nat.c:1468
+#: gdbserver/linux-low.c:1562 linux-nat.c:1476
 #, possible-c-format
 msgid "Reaping LWP %d while detaching returned unexpected status 0x%x"
 msgstr ""
 
-#: gdbserver/linux-low.c:1568 linux-nat.c:1475
+#: gdbserver/linux-low.c:1569 linux-nat.c:1483
 #, possible-c-format
 msgid "Can't detach %s: %s"
 msgstr ""
 
-#: gdbtypes.c:136
+#: gdbtypes.c:137
 #, possible-c-format
 msgid ""
 "Resolution of opaque struct/class/union types (if set before loading "
 "symbols) is %s.\n"
 msgstr ""
 
-#: gdbtypes.c:147
+#: gdbtypes.c:148
 #, possible-c-format
 msgid "Debugging of C++ overloading is %s.\n"
 msgstr ""
 
-#: gdbtypes.c:157
+#: gdbtypes.c:158
 #, possible-c-format
 msgid "Strict type checking is %s.\n"
 msgstr ""
 
-#: gdbtypes.c:580
+#: gdbtypes.c:583
 #, possible-c-format
 msgid "Unknown address space specifier: \"%s\""
 msgstr ""
 
-#: gdbtypes.c:1434
+#: gdbtypes.c:1461
 #, possible-c-format
 msgid "Invalid anonymous type %s [in module %s], GCC PR debug/47510 bug?"
 msgstr ""
 
-#: gdbtypes.c:1457
+#: gdbtypes.c:1484
 #, possible-c-format
 msgid "No type named %s."
 msgstr ""
 
-#: gdbtypes.c:1499 objc-lang.c:95
+#: gdbtypes.c:1526 objc-lang.c:95
 #, possible-c-format
 msgid "No struct type named %s."
 msgstr ""
 
-#: gdbtypes.c:1503 gdbtypes.c:1578 objc-lang.c:102
+#: gdbtypes.c:1530 gdbtypes.c:1605 objc-lang.c:102
 #, possible-c-format
 msgid "This context has class, union or enum %s, not a struct."
 msgstr ""
 
-#: gdbtypes.c:1521
+#: gdbtypes.c:1548
 #, possible-c-format
 msgid "No union type named %s."
 msgstr ""
 
 #. If we get here, it's not a union.
-#: gdbtypes.c:1529
+#: gdbtypes.c:1556
 #, possible-c-format
 msgid "This context has class, struct or enum %s, not a union."
 msgstr ""
 
-#: gdbtypes.c:1544
+#: gdbtypes.c:1571
 #, possible-c-format
 msgid "No enum type named %s."
 msgstr ""
 
-#: gdbtypes.c:1548
+#: gdbtypes.c:1575
 #, possible-c-format
 msgid "This context has class, struct or union %s, not an enum."
 msgstr ""
 
-#: gdbtypes.c:1574
+#: gdbtypes.c:1601
 #, possible-c-format
 msgid "No template type named %s."
 msgstr ""
 
-#: gdbtypes.c:1614
+#: gdbtypes.c:1641
 #, possible-c-format
 msgid "Type %s is not a structure or union type."
 msgstr ""
 
-#: gdbtypes.c:1668
+#: gdbtypes.c:1695
 #, possible-c-format
 msgid "Type %s has no component named %s."
 msgstr ""
 
-#: gdbtypes.c:1821
+#: gdbtypes.c:1848
 msgid "stub type has NULL name"
 msgstr ""
 
-#: gdbtypes.c:2083
+#. Could be a bug in our code, but it could also happen
+#. if the DWARF info is not correct.  Issue a warning,
+#. and assume no byte/bit stride (leave bit_stride = 0).
+#: gdbtypes.c:2060
+#, possible-c-format
+msgid "cannot determine array stride for type %s"
+msgstr ""
+
+#: gdbtypes.c:2150
 msgid "Cannot determine struct field location (invalid location kind)"
 msgstr ""
 
-#: gdbtypes.c:2536
+#: gdbtypes.c:2603
 #, possible-c-format
 msgid "Internal: Cannot demangle mangled name `%s'."
 msgstr ""
 
-#: gdbtypes.c:3471
+#: gdbtypes.c:3569
 #, possible-c-format
 msgid "Unsupported field kind %d by check_types_equal"
 msgstr ""
 
-#: gdbtypes.c:4118
+#: gdbtypes.c:4216
 #, possible-c-format
 msgid ") length %d\n"
 msgstr ""
 
-#: gdbtypes.c:4267
+#: gdbtypes.c:4365
 msgid " <same as already seen type>\n"
 msgstr ""
 
-#: gdbtypes.c:4730
+#: gdbtypes.c:4809
 #, possible-c-format
 msgid "Unexpected type field location kind: %d"
 msgstr ""
 
-#: gdbtypes.c:5375
+#: gdbtypes.c:5450
 msgid "Set debugging of C++ overloading."
 msgstr ""
 
-#: gdbtypes.c:5376
+#: gdbtypes.c:5451
 msgid "Show debugging of C++ overloading."
 msgstr ""
 
-#: gdbtypes.c:5377
+#: gdbtypes.c:5452
 msgid "When enabled, ranking of the functions is displayed."
 msgstr ""
 
-#: gdbtypes.c:5386
+#: gdbtypes.c:5461
 msgid ""
 "Set resolution of opaque struct/class/union types (if set before loading "
 "symbols)."
 msgstr ""
 
-#: gdbtypes.c:5388
+#: gdbtypes.c:5463
 msgid ""
 "Show resolution of opaque struct/class/union types (if set before loading "
 "symbols)."
 msgstr ""
 
-#: gdbtypes.c:5397
+#: gdbtypes.c:5472
 msgid "Set strict type checking."
 msgstr ""
 
-#: gdbtypes.c:5398
+#: gdbtypes.c:5473
 msgid "Show strict type checking."
 msgstr ""
 
 #. * A helper macro that returns the name of a type or "unnamed type"
 #. if the type has no name.
-#: gdbtypes.h:1445
+#: gdbtypes.h:1464
 msgid "<unnamed type>"
 msgstr ""
 
 #. * A helper macro that returns the name of an error type.  If the
 #. type has a name, it is used; otherwise, a default is used.
-#: gdbtypes.h:1451
+#: gdbtypes.h:1470
 msgid "<error type>"
 msgstr ""
 
-#: gnu-nat.c:340
+#: gnulib/import/openat-die.c:38
+msgid "unable to record current working directory"
+msgstr ""
+
+#: gnulib/import/openat-die.c:57
+msgid "failed to return to initial working directory"
+msgstr ""
+
+#: gnulib/import/error.c:191
+msgid "Unknown system error"
+msgstr ""
+
+#: gnu-nat.c:342
 #, possible-c-format
 msgid "Stopped %s."
 msgstr ""
 
-#: gnu-nat.c:478 gnu-nat.c:508
+#: gnu-nat.c:480 gnu-nat.c:510
 #, possible-c-format
 msgid "Error setting exception port for %s: %s"
 msgstr ""
 
-#: gnu-nat.c:585
+#: gnu-nat.c:587
 #, possible-c-format
 msgid "Couldn't request notification for port %lu: %s"
 msgstr ""
 
-#: gnu-nat.c:735
+#: gnu-nat.c:737
 #, possible-c-format
 msgid "Error allocating event port: %s"
 msgstr ""
 
-#: gnu-nat.c:760
+#: gnu-nat.c:762
 #, possible-c-format
 msgid "Error getting task for pid %d: %s"
 msgstr ""
 
-#: gnu-nat.c:864
+#: gnu-nat.c:866
 #, possible-c-format
 msgid "Pid %d has an additional task suspend count of %d; clear it? "
 msgstr ""
 
-#: gnu-nat.c:867
+#: gnu-nat.c:869
 msgid "Additional task suspend count left untouched."
 msgstr ""
 
-#: gnu-nat.c:894 gnu-nat.c:899
+#: gnu-nat.c:896 gnu-nat.c:901
 #, possible-c-format
 msgid "Can't modify tracing state for pid %d: %s"
 msgstr ""
 
-#: gnu-nat.c:1371
+#: gnu-nat.c:1373
 #, possible-c-format
 msgid "Can't forward spontaneous exception (%s)."
 msgstr ""
 
 #. Can't do too much...
-#: gnu-nat.c:1411
+#: gnu-nat.c:1413
 #, possible-c-format
 msgid "Can't deliver signal %s: No signal thread."
 msgstr ""
 
-#: gnu-nat.c:1413
+#: gnu-nat.c:1415
 #, possible-c-format
 msgid "Delivering signal %s: %s"
 msgstr ""
 
-#: gnu-nat.c:1444
+#: gnu-nat.c:1446
 #, possible-c-format
 msgid "Can't continue process: %s"
 msgstr ""
 
-#: gnu-nat.c:1485
+#: gnu-nat.c:1487
 msgid "There are no threads; try again later."
 msgstr ""
 
-#: gnu-nat.c:1509
+#: gnu-nat.c:1511
 #, possible-c-format
 msgid "wait request failed: %s"
 msgstr ""
 
-#: gnu-nat.c:1545
+#: gnu-nat.c:1547
 #, possible-c-format
 msgid "Couldn't wait for an event: %s"
 msgstr ""
 
 #. Whatever it is, it's something strange.
-#: gnu-nat.c:1565
+#: gnu-nat.c:1567
 #, possible-c-format
 msgid "Got a strange event, msg id = %d."
 msgstr ""
 
-#: gnu-nat.c:1568
+#: gnu-nat.c:1570
 #, possible-c-format
 msgid "Handling event, msgid = %d: %s"
 msgstr ""
 
-#: gnu-nat.c:1749
+#: gnu-nat.c:1751
 #, possible-c-format
 msgid "Pid %d died with unknown exit status, using SIGKILL."
 msgstr ""
 
-#: gnu-nat.c:1802
+#: gnu-nat.c:1804
 #, possible-c-format
 msgid "illegal rpc: %s"
 msgstr ""
 
-#: gnu-nat.c:1847
+#: gnu-nat.c:1849
 #, possible-c-format
 msgid "Can't wait for pid %d: %s"
 msgstr ""
 
-#: gnu-nat.c:1951
+#: gnu-nat.c:1953
 #, possible-c-format
 msgid "Signal delivery failed: %s"
 msgstr ""
 
-#: gnu-nat.c:2024
+#: gnu-nat.c:2026
 #, possible-c-format
 msgid "Aborting %s with unforwarded exception %s."
 msgstr ""
 
-#: gnu-nat.c:2053
+#: gnu-nat.c:2055
 #, possible-c-format
 msgid "Can't run single thread id %s: no such thread!"
 msgstr ""
 
-#: gnu-nat.c:2063
+#: gnu-nat.c:2065
 #, possible-c-format
 msgid "Can't step thread id %s: no such thread."
 msgstr ""
 
-#: gnu-nat.c:2286
+#: gnu-nat.c:2288
 msgid "to_stop target function not implemented"
 msgstr ""
 
-#: gnu-nat.c:2320
+#: gnu-nat.c:2322
 #, possible-c-format
 msgid "Read from inferior faulted: %s"
 msgstr ""
 
-#: gnu-nat.c:2326
+#: gnu-nat.c:2328
 #, possible-c-format
 msgid "gnu_read_inferior vm_deallocate failed: %s"
 msgstr ""
 
-#: gnu-nat.c:2413
+#: gnu-nat.c:2415
 #, possible-c-format
 msgid "No memory at 0x%lx. Nothing written"
 msgstr ""
 
-#: gnu-nat.c:2422
+#: gnu-nat.c:2424
 #, possible-c-format
 msgid "Memory at address 0x%lx is unwritable. Nothing written"
 msgstr ""
 
-#: gnu-nat.c:2495 skip.c:220
+#: gnu-nat.c:2497
 #, possible-c-format
 msgid "%s: %s"
 msgstr ""
 
-#: gnu-nat.c:2603
+#: gnu-nat.c:2661
 #, possible-c-format
 msgid "vm_region failed: %s"
 msgstr ""
 
-#: gnu-nat.c:2756
+#: gnu-nat.c:2813
 #, possible-c-format
 msgid "Illegal argument for \"%s\" command, should be an integer."
 msgstr ""
 
-#: gnu-nat.c:2768
+#: gnu-nat.c:2825
 #, possible-c-format
 msgid "Illegal argument for \"%s\" command, should be \"%s\" or \"%s\"."
 msgstr ""
 
-#: gnu-nat.c:2780
+#: gnu-nat.c:2837
 #, possible-c-format
 msgid "Garbage after \"%s\" command: `%s'"
 msgstr ""
 
-#: gnu-nat.c:2791
+#: gnu-nat.c:2848
 msgid "No current thread."
 msgstr ""
 
-#: gnu-nat.c:2802
+#: gnu-nat.c:2859
 msgid "No current process."
 msgstr ""
 
-#: gnu-nat.c:2922
+#: gnu-nat.c:2979
 msgid "No inferior task."
 msgstr ""
 
-#: gnu-nat.c:2928
+#: gnu-nat.c:2985
 #, possible-c-format
 msgid "Couldn't extract send right %lu from inferior: %s"
 msgstr ""
 
-#: gnu-nat.c:2944
+#: gnu-nat.c:3001
 #, possible-c-format
 msgid "Can't set exception port for %s: %s"
 msgstr ""
 
-#: gnu-nat.c:2955
+#: gnu-nat.c:3012
 msgid "No argument to \"set task exception-port\" command."
 msgstr ""
 
-#: gnu-nat.c:2981
+#: gnu-nat.c:3038
 msgid ""
 "Illegal argument to \"set signal-thread\" command.\n"
 "Should be a thread ID, or \"none\"."
 msgstr ""
 
-#: gnu-nat.c:3132
+#: gnu-nat.c:3189
 #, possible-c-format
 msgid "%ld: %s."
 msgstr ""
 
-#: gnu-nat.c:3142 utils.c:881
+#: gnu-nat.c:3199 utils.c:686
 #, possible-c-format
 msgid "%s."
 msgstr ""
 
-#: gnu-nat.c:3182
+#: gnu-nat.c:3239
 msgid ""
 "Set whether the new threads are suspended while gdb has control.\n"
 "This property normally has no effect because the whole task is\n"
@@ -12166,78 +12536,78 @@ msgid ""
 "The default value is \"off\"."
 msgstr ""
 
-#: gnu-nat.c:3188
+#: gnu-nat.c:3245
 msgid "Show whether new threads are suspended while gdb has control."
 msgstr ""
 
-#: gnu-nat.c:3192
+#: gnu-nat.c:3249
 msgid "Set whether new threads are allowed to run (once gdb has noticed them)."
 msgstr ""
 
-#: gnu-nat.c:3195
+#: gnu-nat.c:3252
 msgid ""
 "Show whether new threads are allowed to run (once gdb has noticed them)."
 msgstr ""
 
-#: gnu-nat.c:3200
+#: gnu-nat.c:3257
 msgid "Set the default detach-suspend-count value for new threads."
 msgstr ""
 
-#: gnu-nat.c:3203
+#: gnu-nat.c:3260
 msgid "Show the default detach-suspend-count value for new threads."
 msgstr ""
 
-#: gnu-nat.c:3206
+#: gnu-nat.c:3263
 msgid ""
 "Set whether the inferior process's signals will be intercepted.\n"
 "Mach exceptions (such as breakpoint traps) are not affected."
 msgstr ""
 
-#: gnu-nat.c:3211
+#: gnu-nat.c:3268
 msgid "Show whether the inferior process's signals will be intercepted."
 msgstr ""
 
-#: gnu-nat.c:3216
+#: gnu-nat.c:3273
 msgid ""
 "Set the thread that gdb thinks is the libc signal thread.\n"
 "This thread is run when delivering a signal to a non-stopped process."
 msgstr ""
 
-#: gnu-nat.c:3221
+#: gnu-nat.c:3278
 msgid "Set the thread that gdb thinks is the libc signal thread."
 msgstr ""
 
-#: gnu-nat.c:3226
+#: gnu-nat.c:3283
 msgid ""
 "Set whether gdb thinks the inferior process is stopped as with SIGSTOP.\n"
 "Stopped process will be continued by sending them a signal."
 msgstr ""
 
-#: gnu-nat.c:3230
+#: gnu-nat.c:3287
 msgid ""
 "Show whether gdb thinks the inferior process is stopped as with SIGSTOP."
 msgstr ""
 
-#: gnu-nat.c:3234
+#: gnu-nat.c:3291
 msgid ""
 "Set whether exceptions in the inferior process will be trapped.\n"
 "When exceptions are turned off, neither breakpoints nor single-stepping\n"
 "will work."
 msgstr ""
 
-#: gnu-nat.c:3241
+#: gnu-nat.c:3298
 msgid "Show whether exceptions in the inferior process will be trapped."
 msgstr ""
 
-#: gnu-nat.c:3246
+#: gnu-nat.c:3303
 msgid "Command prefix for setting task attributes."
 msgstr ""
 
-#: gnu-nat.c:3249
+#: gnu-nat.c:3306
 msgid "Command prefix for showing task attributes."
 msgstr ""
 
-#: gnu-nat.c:3252
+#: gnu-nat.c:3309
 msgid ""
 "Set whether the task is suspended while gdb has control.\n"
 "A value of \"on\" takes effect immediately, otherwise nothing happens\n"
@@ -12246,19 +12616,19 @@ msgid ""
 "used to pause individual threads by default instead."
 msgstr ""
 
-#: gnu-nat.c:3260
+#: gnu-nat.c:3317
 msgid "Show whether the task is suspended while gdb has control."
 msgstr ""
 
-#: gnu-nat.c:3264
+#: gnu-nat.c:3321
 msgid "Set the suspend count will leave on the thread when detaching."
 msgstr ""
 
-#: gnu-nat.c:3267
+#: gnu-nat.c:3324
 msgid "Show the suspend count will leave on the thread when detaching."
 msgstr ""
 
-#: gnu-nat.c:3271
+#: gnu-nat.c:3328
 msgid ""
 "Set the task exception port to which we forward exceptions.\n"
 "The argument should be the value of the send right in the task."
@@ -12266,54 +12636,54 @@ msgstr ""
 
 #. A convenient way of turning on all options require to noninvasively
 #. debug running tasks.
-#: gnu-nat.c:3281
+#: gnu-nat.c:3338
 msgid ""
 "Set task options so that we interfere as little as possible.\n"
 "This is the same as setting `task pause', `exceptions', and\n"
 "`signals' to the opposite value."
 msgstr ""
 
-#: gnu-nat.c:3289
+#: gnu-nat.c:3346
 msgid "Show information about the task's send rights"
 msgstr ""
 
-#: gnu-nat.c:3291
+#: gnu-nat.c:3348
 msgid "Show information about the task's receive rights"
 msgstr ""
 
-#: gnu-nat.c:3293
+#: gnu-nat.c:3350
 msgid "Show information about the task's port rights"
 msgstr ""
 
-#: gnu-nat.c:3295
+#: gnu-nat.c:3352
 msgid "Show information about the task's port sets"
 msgstr ""
 
-#: gnu-nat.c:3297
+#: gnu-nat.c:3354
 msgid "Show information about the task's dead names"
 msgstr ""
 
-#: gnu-nat.c:3374
+#: gnu-nat.c:3431
 msgid "No argument to \"set thread exception-port\" command."
 msgstr ""
 
-#: gnu-nat.c:3417
+#: gnu-nat.c:3474
 msgid "Command prefix for setting thread properties."
 msgstr ""
 
-#: gnu-nat.c:3420
+#: gnu-nat.c:3477
 msgid "Command prefix for setting default thread properties."
 msgstr ""
 
-#: gnu-nat.c:3424
+#: gnu-nat.c:3481
 msgid "Command prefix for showing thread properties."
 msgstr ""
 
-#: gnu-nat.c:3427
+#: gnu-nat.c:3484
 msgid "Command prefix for showing default thread properties."
 msgstr ""
 
-#: gnu-nat.c:3431
+#: gnu-nat.c:3488
 msgid ""
 "Set whether the current thread is suspended while gdb has control.\n"
 "A value of \"on\" takes effect immediately, otherwise nothing happens\n"
@@ -12323,55 +12693,55 @@ msgid ""
 "The default value is \"off\"."
 msgstr ""
 
-#: gnu-nat.c:3439
+#: gnu-nat.c:3496
 msgid "Show whether the current thread is suspended while gdb has control."
 msgstr ""
 
-#: gnu-nat.c:3444
+#: gnu-nat.c:3501
 msgid "Set whether the current thread is allowed to run."
 msgstr ""
 
-#: gnu-nat.c:3447
+#: gnu-nat.c:3504
 msgid "Show whether the current thread is allowed to run."
 msgstr ""
 
-#: gnu-nat.c:3450
+#: gnu-nat.c:3507
 msgid ""
 "Set the suspend count will leave on the thread when detaching.\n"
 "Note that this is relative to suspend count when gdb noticed the thread;\n"
 "use the `thread takeover-suspend-count' to force it to an absolute value."
 msgstr ""
 
-#: gnu-nat.c:3455
+#: gnu-nat.c:3512
 msgid ""
 "Show the suspend count will leave on the thread when detaching.\n"
 "Note that this is relative to suspend count when gdb noticed the thread;\n"
 "use the `thread takeover-suspend-count' to force it to an absolute value."
 msgstr ""
 
-#: gnu-nat.c:3461
+#: gnu-nat.c:3518
 msgid ""
 "Set the thread exception port to which we forward exceptions.\n"
 "This overrides the task exception port.\n"
 "The argument should be the value of the send right in the task."
 msgstr ""
 
-#: gnu-nat.c:3470
+#: gnu-nat.c:3527
 msgid ""
 "Force the threads absolute suspend-count to be gdb's.\n"
 "Prior to giving this command, gdb's thread suspend-counts are relative\n"
 "to the thread's initial suspend-count when gdb notices the threads."
 msgstr ""
 
-#: gnu-nat.c:3491
+#: gnu-nat.c:3543
 msgid "Set debugging output for the gnu backend."
 msgstr ""
 
-#: gnu-nat.c:3492
+#: gnu-nat.c:3544
 msgid "Show debugging output for the gnu backend."
 msgstr ""
 
-#: gnu-nat.c:3519
+#: gnu-nat.c:3571
 #, possible-c-format
 msgid "Error flushing inferior's cache : %s"
 msgstr ""
@@ -12415,7 +12785,7 @@ msgstr ""
 msgid "vtable for '%s' @ %s (subobject @ %s):\n"
 msgstr ""
 
-#: gnu-v3-abi.c:914 printcmd.c:2047 stack.c:1535 value.c:2697
+#: gnu-v3-abi.c:914 printcmd.c:2000 stack.c:1505 value.c:2680
 #, possible-c-format
 msgid "<error: %s>"
 msgstr ""
@@ -12464,7 +12834,7 @@ msgstr ""
 msgid "Invalid register no. %d in store_register."
 msgstr ""
 
-#: go32-nat.c:662 go32-nat.c:2086
+#: go32-nat.c:662 go32-nat.c:2083
 msgid "Cannot allocate redirection storage: not enough memory.\n"
 msgstr ""
 
@@ -12540,47 +12910,47 @@ msgstr ""
 msgid "linear address"
 msgstr ""
 
-#: go32-nat.c:2092
+#: go32-nat.c:2089
 msgid "Print information specific to DJGPP (aka MS-DOS) debugging."
 msgstr ""
 
-#: go32-nat.c:2096
+#: go32-nat.c:2093
 msgid ""
 "Display information about the target system, including CPU, OS, DPMI, etc."
 msgstr ""
 
-#: go32-nat.c:2099
+#: go32-nat.c:2096
 msgid ""
 "Display entries in the LDT (Local Descriptor Table).\n"
 "Entry number (an expression) as an argument means display only that entry."
 msgstr ""
 
-#: go32-nat.c:2103
+#: go32-nat.c:2100
 msgid ""
 "Display entries in the GDT (Global Descriptor Table).\n"
 "Entry number (an expression) as an argument means display only that entry."
 msgstr ""
 
-#: go32-nat.c:2107
+#: go32-nat.c:2104
 msgid ""
 "Display entries in the IDT (Interrupt Descriptor Table).\n"
 "Entry number (an expression) as an argument means display only that entry."
 msgstr ""
 
-#: go32-nat.c:2111
+#: go32-nat.c:2108
 msgid ""
 "Display entries in the Page Directory.\n"
 "Entry number (an expression) as an argument means display only that entry."
 msgstr ""
 
-#: go32-nat.c:2115
+#: go32-nat.c:2112
 msgid ""
 "Display entries in Page Tables.\n"
 "Entry number (an expression) as an argument means display only entries\n"
 "from the Page Table pointed to by the specified Page Directory entry."
 msgstr ""
 
-#: go32-nat.c:2120
+#: go32-nat.c:2117
 msgid ""
 "Display a Page Table entry for a linear address.\n"
 "The address argument must be a linear address, after adding to\n"
@@ -12592,7 +12962,7 @@ msgid ""
 "the `info dos ldt' command."
 msgstr ""
 
-#: go-exp.y:1358
+#: go-exp.y:1362
 #, possible-c-format
 msgid "Unknown function in `unsafe' package: %s"
 msgstr ""
@@ -12625,11 +12995,11 @@ msgstr ""
 msgid "Symbol requires a frame to compute its value"
 msgstr ""
 
-#: guile/scm-symbol.c:613 valops.c:3750
+#: guile/scm-symbol.c:613 valops.c:3741
 msgid "no frame selected"
 msgstr ""
 
-#: guile/scm-param.c:241 guile/scm-cmd.c:696 python/py-cmd.c:583
+#: guile/scm-param.c:241 guile/scm-cmd.c:685 python/py-cmd.c:594
 #: python/py-param.c:320
 msgid "This command is not documented."
 msgstr ""
@@ -12656,7 +13026,7 @@ msgstr ""
 msgid "Error occurred showing parameter."
 msgstr ""
 
-#: guile/scm-param.c:497 guile/scm-objfile.c:290 guile/scm-value.c:835
+#: guile/scm-param.c:497 guile/scm-objfile.c:290 guile/scm-value.c:831
 #: guile/scm-pretty-print.c:255 guile/scm-progspace.c:331
 msgid "list"
 msgstr ""
@@ -12666,7 +13036,7 @@ msgid "enumeration list is empty"
 msgstr ""
 
 #: guile/scm-param.c:517 guile/scm-param.c:704 guile/scm-type.c:977
-#: guile/scm-type.c:1022 guile/scm-utils.c:207 guile/scm-value.c:708
+#: guile/scm-type.c:1022 guile/scm-utils.c:207 guile/scm-value.c:704
 #: guile/scm-pretty-print.c:156
 msgid "string"
 msgstr ""
@@ -12683,8 +13053,8 @@ msgstr ""
 msgid "not member of enumeration"
 msgstr ""
 
-#: guile/scm-param.c:725 guile/scm-utils.c:217 guile/scm-breakpoint.c:587
-#: guile/scm-breakpoint.c:625
+#: guile/scm-param.c:725 guile/scm-utils.c:217 guile/scm-breakpoint.c:589
+#: guile/scm-breakpoint.c:627
 msgid "boolean"
 msgstr ""
 
@@ -12696,9 +13066,9 @@ msgstr ""
 msgid "integer or #:unlimited"
 msgstr ""
 
-#: guile/scm-param.c:765 guile/scm-type.c:1107 guile/scm-ports.c:1181
-#: guile/scm-ports.c:1223 guile/scm-breakpoint.c:662
-#: guile/scm-breakpoint.c:702
+#: guile/scm-param.c:765 guile/scm-type.c:1107 guile/scm-ports.c:1178
+#: guile/scm-ports.c:1220 guile/scm-breakpoint.c:664
+#: guile/scm-breakpoint.c:704
 msgid "integer"
 msgstr ""
 
@@ -12706,7 +13076,7 @@ msgstr ""
 msgid "must be >= -1"
 msgstr ""
 
-#: guile/scm-param.c:897 guile/scm-cmd.c:723
+#: guile/scm-param.c:897 guile/scm-cmd.c:712
 msgid "invalid command class argument"
 msgstr ""
 
@@ -12723,7 +13093,7 @@ msgid "PARAM_ENUM requires an enum-value
 msgstr ""
 
 #: guile/scm-param.c:918 guile/scm-param.c:923 guile/scm-iterator.c:162
-#: guile/scm-cmd.c:716 guile/scm-pretty-print.c:158
+#: guile/scm-cmd.c:705 guile/scm-pretty-print.c:158
 msgid "procedure"
 msgstr ""
 
@@ -12743,11 +13113,11 @@ msgstr ""
 msgid "<gdb:parameter> or string"
 msgstr ""
 
-#: guile/scm-param.c:1090
+#: guile/scm-param.c:1089
 msgid "parameter not found"
 msgstr ""
 
-#: guile/scm-param.c:1095
+#: guile/scm-param.c:1094
 msgid "not a parameter"
 msgstr ""
 
@@ -12789,31 +13159,31 @@ msgstr ""
 msgid "inferior has changed"
 msgstr ""
 
-#: guile/scm-frame.c:444 guile/scm-frame.c:485 guile/scm-frame.c:515
-#: guile/scm-frame.c:546 guile/scm-frame.c:581 guile/scm-frame.c:614
-#: guile/scm-frame.c:665 guile/scm-frame.c:702 guile/scm-frame.c:739
-#: guile/scm-frame.c:775 guile/scm-frame.c:823 guile/scm-frame.c:871
-#: guile/scm-frame.c:980
+#: guile/scm-frame.c:443 guile/scm-frame.c:481 guile/scm-frame.c:511
+#: guile/scm-frame.c:542 guile/scm-frame.c:577 guile/scm-frame.c:610
+#: guile/scm-frame.c:661 guile/scm-frame.c:698 guile/scm-frame.c:735
+#: guile/scm-frame.c:771 guile/scm-frame.c:819 guile/scm-frame.c:866
+#: guile/scm-frame.c:975
 msgid "<gdb:frame>"
 msgstr ""
 
-#: guile/scm-frame.c:624
+#: guile/scm-frame.c:620
 msgid "cannot find block for frame"
 msgstr ""
 
-#: guile/scm-frame.c:829
+#: guile/scm-frame.c:825
 msgid "unknown register"
 msgstr ""
 
-#: guile/scm-frame.c:929
+#: guile/scm-frame.c:924
 msgid "variable not found"
 msgstr ""
 
-#: guile/scm-frame.c:938
+#: guile/scm-frame.c:933
 msgid "gdb:symbol or string"
 msgstr ""
 
-#: guile/scm-frame.c:1017
+#: guile/scm-frame.c:1012
 msgid "No frame is currently selected"
 msgstr ""
 
@@ -12976,7 +13346,7 @@ msgid ""
 "Suggest passing --data-directory=/path/to/gdb/data-directory.\n"
 msgstr ""
 
-#: guile/guile.c:736
+#: guile/guile.c:735
 msgid ""
 "Start an interactive Guile prompt.\n"
 "\n"
@@ -12984,7 +13354,7 @@ msgid ""
 "prompt) or ,quit."
 msgstr ""
 
-#: guile/guile.c:742
+#: guile/guile.c:741
 msgid ""
 "Start a Guile interactive prompt.\n"
 "\n"
@@ -12992,7 +13362,7 @@ msgid ""
 "This command is only a placeholder."
 msgstr ""
 
-#: guile/guile.c:755
+#: guile/guile.c:754
 msgid ""
 "Evaluate one or more Guile expressions.\n"
 "\n"
@@ -13017,7 +13387,7 @@ msgid ""
 "Type \",help\" once in a Guile interactive session."
 msgstr ""
 
-#: guile/guile.c:778
+#: guile/guile.c:777
 msgid ""
 "Evaluate a Guile expression.\n"
 "\n"
@@ -13025,78 +13395,78 @@ msgid ""
 "This command is only a placeholder."
 msgstr ""
 
-#: guile/guile.c:788 guile/guile.c:794
+#: guile/guile.c:787 guile/guile.c:793
 msgid "Prefix command for Guile preference settings."
 msgstr ""
 
-#: guile/guile.c:800
+#: guile/guile.c:799
 msgid "Prefix command for Guile info displays."
 msgstr ""
 
-#: guile/guile.c:808
+#: guile/guile.c:807
 msgid "Set mode for Guile exception printing on error."
 msgstr ""
 
-#: guile/guile.c:809
+#: guile/guile.c:808
 msgid "Show the mode of Guile exception printing on error."
 msgstr ""
 
-#: guile/guile.c:810 python/python.c:1764
+#: guile/guile.c:809 python/python.c:1884
 msgid ""
 "none  == no stack or message will be printed.\n"
 "full == a message and a stack will be printed.\n"
 "message == an error message without a stack will be printed."
 msgstr ""
 
-#: guile/scm-ports.c:467
+#: guile/scm-ports.c:463
 msgid "output port"
 msgstr ""
 
-#: guile/scm-ports.c:469
+#: guile/scm-ports.c:465
 msgid "thunk"
 msgstr ""
 
-#: guile/scm-ports.c:594
+#: guile/scm-ports.c:591
 msgid "error reading memory"
 msgstr ""
 
-#: guile/scm-ports.c:617
+#: guile/scm-ports.c:614
 msgid "overflow in offset calculation"
 msgstr ""
 
-#: guile/scm-ports.c:629
+#: guile/scm-ports.c:626
 msgid "bad offset"
 msgstr ""
 
-#: guile/scm-ports.c:654 guile/scm-ports.c:680
+#: guile/scm-ports.c:651 guile/scm-ports.c:677
 msgid "writing beyond end of memory range"
 msgstr ""
 
-#: guile/scm-ports.c:659 guile/scm-ports.c:687 guile/scm-ports.c:719
+#: guile/scm-ports.c:656 guile/scm-ports.c:684 guile/scm-ports.c:716
 msgid "error writing memory"
 msgstr ""
 
-#: guile/scm-ports.c:815
+#: guile/scm-ports.c:812
 msgid "bad seek"
 msgstr ""
 
-#: guile/scm-ports.c:903 guile/scm-ports.c:916
+#: guile/scm-ports.c:900 guile/scm-ports.c:913
 msgid "bad mode string"
 msgstr ""
 
-#: guile/scm-ports.c:1005
+#: guile/scm-ports.c:1002
 msgid "port is unbuffered: ~a"
 msgstr ""
 
-#: guile/scm-ports.c:1014
+#: guile/scm-ports.c:1011
 msgid "read buffer not empty: ~a"
 msgstr ""
 
-#: guile/scm-ports.c:1021
+#: guile/scm-ports.c:1018
 msgid "write buffer not empty: ~a"
 msgstr ""
 
-#: guile/scm-ports.c:1105 guile/scm-disasm.c:233
+#: guile/scm-ports.c:1102 guile/scm-disasm.c:233
 msgid "start+size overflows"
 msgstr ""
 
@@ -13104,55 +13474,55 @@ msgstr ""
 msgid "<gdb:command>"
 msgstr ""
 
-#: guile/scm-cmd.c:307
+#: guile/scm-cmd.c:306
 msgid "Could not convert arguments to Scheme string."
 msgstr ""
 
-#: guile/scm-cmd.c:328
+#: guile/scm-cmd.c:327
 msgid "Error occurred in Scheme-implemented GDB command."
 msgstr ""
 
 #. Inform the user, but otherwise ignore the entire result.
-#: guile/scm-cmd.c:361
+#: guile/scm-cmd.c:359
 msgid "Bad text from completer: "
 msgstr ""
 
-#: guile/scm-cmd.c:397
+#: guile/scm-cmd.c:396
 msgid "Could not convert \"text\" argument to Scheme string."
 msgstr ""
 
-#: guile/scm-cmd.c:401
+#: guile/scm-cmd.c:400
 msgid "Could not convert \"word\" argument to Scheme string."
 msgstr ""
 
 #. Inform the user, but otherwise ignore.
-#: guile/scm-cmd.c:458
+#: guile/scm-cmd.c:450
 msgid "Bad completer result: "
 msgstr ""
 
-#: guile/scm-cmd.c:501 guile/scm-cmd.c:710
+#: guile/scm-cmd.c:490 guile/scm-cmd.c:699
 msgid "no command name found"
 msgstr ""
 
-#: guile/scm-cmd.c:532
+#: guile/scm-cmd.c:521
 #, possible-c-format
 msgid "could not find command prefix '%s'"
 msgstr ""
 
-#: guile/scm-cmd.c:548
+#: guile/scm-cmd.c:537
 #, possible-c-format
 msgid "'%s' is not a prefix command"
 msgstr ""
 
-#: guile/scm-cmd.c:730
+#: guile/scm-cmd.c:719
 msgid "integer or procedure"
 msgstr ""
 
-#: guile/scm-cmd.c:736
+#: guile/scm-cmd.c:725
 msgid "invalid completion type argument"
 msgstr ""
 
-#: guile/scm-cmd.c:765
+#: guile/scm-cmd.c:754
 msgid "command is already registered"
 msgstr ""
 
@@ -13164,19 +13534,19 @@ msgstr ""
 msgid "<gdb:sal>"
 msgstr ""
 
-#: guile/scm-math.c:580 guile/scm-math.c:595
+#: guile/scm-math.c:578 guile/scm-math.c:593
 msgid "value out of range for type"
 msgstr ""
 
-#: guile/scm-math.c:685
+#: guile/scm-math.c:695
 msgid "value not a number representable on the target"
 msgstr ""
 
-#: guile/scm-math.c:719
+#: guile/scm-math.c:729
 msgid "size of type does not match size of bytevector"
 msgstr ""
 
-#: guile/scm-math.c:774 guile/scm-math.c:827 guile/scm-math.c:856
+#: guile/scm-math.c:784 guile/scm-math.c:837 guile/scm-math.c:866
 msgid "No type allowed"
 msgstr ""
 
@@ -13204,109 +13574,109 @@ msgstr ""
 msgid "breakpoint is already registered"
 msgstr ""
 
-#: guile/scm-breakpoint.c:711
+#: guile/scm-breakpoint.c:713
 msgid "hit-count must be zero"
 msgstr ""
 
-#: guile/scm-breakpoint.c:748
+#: guile/scm-breakpoint.c:750
 msgid "invalid thread id"
 msgstr ""
 
-#: guile/scm-breakpoint.c:754 guile/scm-breakpoint.c:808
+#: guile/scm-breakpoint.c:756 guile/scm-breakpoint.c:810
 msgid "integer or #f"
 msgstr ""
 
-#: guile/scm-breakpoint.c:802
+#: guile/scm-breakpoint.c:804
 msgid "invalid task id"
 msgstr ""
 
-#: guile/scm-breakpoint.c:894
+#: guile/scm-breakpoint.c:896
 msgid "string or #f"
 msgstr ""
 
-#: guile/scm-breakpoint.c:941
+#: guile/scm-breakpoint.c:943
 msgid "procedure or #f"
 msgstr ""
 
-#: guile/scm-value.c:520
+#: guile/scm-value.c:516
 msgid ""
 "Trying to get the referenced value from a value which is neither a pointer "
 "nor a reference"
 msgstr ""
 
-#: guile/scm-value.c:784
+#: guile/scm-value.c:780
 msgid "Cannot subscript requested type"
 msgstr ""
 
-#: guile/scm-value.c:832
+#: guile/scm-value.c:828
 msgid "function (value of TYPE_CODE_FUNC)"
 msgstr ""
 
-#: guile/scm-value.c:953 guile/scm-value.c:996
+#: guile/scm-value.c:949 guile/scm-value.c:992
 msgid "integer-like gdb value"
 msgstr ""
 
-#: guile/scm-value.c:1042
+#: guile/scm-value.c:1039
 msgid "number"
 msgstr ""
 
-#: guile/scm-value.c:1057
+#: guile/scm-value.c:1069
 msgid "number can't be converted to a double"
 msgstr ""
 
-#: guile/scm-value.c:1121
+#: guile/scm-value.c:1133
 msgid "invalid error kind"
 msgstr ""
 
-#: guile/scm-value.c:1207 guile/scm-lazy-string.c:162
+#: guile/scm-value.c:1219 guile/scm-lazy-string.c:162
 msgid "invalid length"
 msgstr ""
 
-#: guile/scm-value.c:1246
+#: guile/scm-value.c:1258
 msgid "length is larger than array size"
 msgstr ""
 
-#: guile/scm-pretty-print.c:376 guile/scm-pretty-print.c:422
+#: guile/scm-pretty-print.c:376 guile/scm-pretty-print.c:421
 msgid "pretty-printer list is not a list"
 msgstr ""
 
-#: guile/scm-pretty-print.c:389
+#: guile/scm-pretty-print.c:388
 msgid "pretty-printer list contains non-pretty-printer object"
 msgstr ""
 
-#: guile/scm-pretty-print.c:402
+#: guile/scm-pretty-print.c:401
 msgid "invalid lookup object in pretty-printer matcher"
 msgstr ""
 
-#: guile/scm-pretty-print.c:415
+#: guile/scm-pretty-print.c:414
 msgid "invalid result from pretty-printer lookup"
 msgstr ""
 
-#: guile/scm-pretty-print.c:567
+#: guile/scm-pretty-print.c:565
 msgid "invalid result from pretty-printer to-string"
 msgstr ""
 
-#: guile/scm-pretty-print.c:630 python/py-prettyprint.c:269 valprint.c:1125
+#: guile/scm-pretty-print.c:628 python/py-prettyprint.c:269 valprint.c:1070
 msgid "<error reading variable>"
 msgstr ""
 
-#: guile/scm-pretty-print.c:756
+#: guile/scm-pretty-print.c:754
 msgid "pretty-printer \"children\" object is not a procedure or #f"
 msgstr ""
 
-#: guile/scm-pretty-print.c:781
+#: guile/scm-pretty-print.c:779
 msgid ""
 "result of pretty-printer \"children\" procedure is not a <gdb:iterator> "
 "object"
 msgstr ""
 
-#: guile/scm-pretty-print.c:824
+#: guile/scm-pretty-print.c:821
 msgid ""
 "result of pretty-printer children iterator is not a pair or (end-of-"
 "iteration)"
 msgstr ""
 
-#: guile/scm-pretty-print.c:834
+#: guile/scm-pretty-print.c:831
 msgid "first element of pretty-printer children iterator is not a string"
 msgstr ""
 
@@ -13342,33 +13712,33 @@ msgstr ""
 msgid "cannot create a value from NULL"
 msgstr ""
 
-#: h8300-tdep.c:772 h8300-tdep.c:804
+#: h8300-tdep.c:769 h8300-tdep.c:801
 msgid "I don't know how this 8 byte value is returned."
 msgstr ""
 
 #. long long, double and long double
 #. are all defined as 4 byte types so
 #. far so this shouldn't happen.
-#: h8300-tdep.c:867
+#: h8300-tdep.c:864
 msgid "I don't know how to return an 8 byte value."
 msgstr ""
 
-#: h8300-tdep.c:965
+#: h8300-tdep.c:962
 #, possible-c-format
 msgid "h8300_register_name: illegal register number %d"
 msgstr ""
 
-#: h8300-tdep.c:983
+#: h8300-tdep.c:980
 #, possible-c-format
 msgid "h8300s_register_name: illegal register number %d"
 msgstr ""
 
-#: h8300-tdep.c:1001
+#: h8300-tdep.c:998
 #, possible-c-format
 msgid "h8300sx_register_name: illegal register number %d"
 msgstr ""
 
-#: h8300-tdep.c:1137
+#: h8300-tdep.c:1134
 #, possible-c-format
 msgid "h8300_register_type: illegal register number %d"
 msgstr ""
@@ -13379,13 +13749,13 @@ msgid "Invalid register number %d."
 msgstr ""
 
 #: hppa-linux-nat.c:231 i386-linux-nat.c:114 ia64-linux-nat.c:756
-#: inf-ptrace.c:735 m68k-linux-nat.c:121
+#: inf-ptrace.c:744 m68k-linux-nat.c:121
 #, possible-c-format
 msgid "Couldn't read register %s (#%d): %s."
 msgstr ""
 
 #: hppa-linux-nat.c:256 i386-linux-nat.c:140 ia64-linux-nat.c:812
-#: inf-ptrace.c:791 m68k-linux-nat.c:174
+#: inf-ptrace.c:800 m68k-linux-nat.c:174
 #, possible-c-format
 msgid "Couldn't write register %s (#%d): %s."
 msgstr ""
@@ -13413,21 +13783,21 @@ msgstr ""
 msgid "Unsupported address size: %d"
 msgstr ""
 
-#: hppa-tdep.c:3203
+#: hppa-tdep.c:3198
 msgid "Print unwind table entry at given address."
 msgstr ""
 
 #. Debug this files internals.
-#: hppa-tdep.c:3207
+#: hppa-tdep.c:3202
 msgid ""
 "Set whether hppa target specific debugging information should be displayed."
 msgstr ""
 
-#: hppa-tdep.c:3209
+#: hppa-tdep.c:3204
 msgid "Show whether hppa target specific debugging information is displayed."
 msgstr ""
 
-#: hppa-tdep.c:3210
+#: hppa-tdep.c:3205
 msgid ""
 "This flag controls whether hppa target specific debugging information is\n"
 "displayed.  This information is particularly useful for debugging frame\n"
@@ -13438,21 +13808,21 @@ msgstr ""
 msgid "Couldn't write XMM registers"
 msgstr ""
 
-#: i386-bsd-nat.c:327
+#: i386-bsd-nat.c:323
 #, possible-c-format
 msgid ""
 "offsetof (struct sigcontext, sc_pc) yields %d instead of %d.\n"
 "Please report this to <bug-gdb@gnu.org>."
 msgstr ""
 
-#: i386-bsd-nat.c:340
+#: i386-bsd-nat.c:336
 #, possible-c-format
 msgid ""
 "offsetof (struct sigcontext, sc_sp) yields %d instead of %d.\n"
 "Please report this to <bug-gdb@gnu.org>."
 msgstr ""
 
-#: i386-bsd-nat.c:353
+#: i386-bsd-nat.c:349
 #, possible-c-format
 msgid ""
 "offsetof (struct sigcontext, sc_fp) yields %d instead of %d.\n"
@@ -13484,7 +13854,7 @@ msgstr ""
 msgid "darwin_set_sstep: unknown flavour: %d"
 msgstr ""
 
-#: i386-fbsd-tdep.c:249 i386-linux-tdep.c:667
+#: i386-fbsd-tdep.c:249 i386-linux-tdep.c:663
 msgid "Couldn't read `xcr0' bytes from `.reg-xstate' section in core file."
 msgstr ""
 
@@ -13559,52 +13929,53 @@ msgstr ""
 msgid "Got request to store bad register number %d."
 msgstr ""
 
-#: i386-linux-tdep.c:435
+#: i386-linux-tdep.c:431
 msgid "Upper bound violation"
 msgstr ""
 
-#: i386-linux-tdep.c:437
+#: i386-linux-tdep.c:433
 msgid "Lower bound violation"
 msgstr ""
 
-#: i386-linux-tdep.c:439
+#: i386-linux-tdep.c:435 sparc64-linux-tdep.c:153 sparc64-linux-tdep.c:159
+#: sparc64-linux-tdep.c:165
 msgid " while accessing address "
 msgstr ""
 
-#: i386-linux-tdep.c:442
+#: i386-linux-tdep.c:438
 msgid ""
 "\n"
 "Bounds: [lower = "
 msgstr ""
 
-#: i386-linux-tdep.c:445
+#: i386-linux-tdep.c:441
 msgid ", upper = "
 msgstr ""
 
-#: i386-linux-tdep.c:448
+#: i386-linux-tdep.c:444
 msgid "]"
 msgstr ""
 
-#: i386-tdep.c:2800
+#: i386-tdep.c:2795
 msgid "Cannot find floating-point return value."
 msgstr ""
 
-#: i386-tdep.c:2831 m68k-tdep.c:304
+#: i386-tdep.c:2826 m68k-tdep.c:300
 #, possible-c-format
 msgid "Cannot extract return value of %d bytes long."
 msgstr ""
 
-#: i386-tdep.c:2853
+#: i386-tdep.c:2848
 msgid "Cannot set floating-point return value."
 msgstr ""
 
-#: i386-tdep.c:2896 m68k-tdep.c:345
+#: i386-tdep.c:2891 m68k-tdep.c:341
 #, possible-c-format
 msgid "Cannot store return value of %d bytes long."
 msgstr ""
 
-#: i386-tdep.c:4914 i386-tdep.c:5822 i386-tdep.c:6491 i386-tdep.c:7041
-#: i386-tdep.c:7093
+#: i386-tdep.c:4909 i386-tdep.c:5817 i386-tdep.c:6486 i386-tdep.c:7036
+#: i386-tdep.c:7088
 #, possible-c-format
 msgid ""
 "Process record ignores the memory change of instruction at address %s\n"
@@ -13614,203 +13985,203 @@ msgstr ""
 
 #. XXX
 #. int3
-#: i386-tdep.c:6830
+#: i386-tdep.c:6825
 msgid "Process record does not support instruction int3.\n"
 msgstr ""
 
-#: i386-tdep.c:6847
+#: i386-tdep.c:6842
 #, possible-c-format
 msgid "Process record does not support instruction int 0x%02x.\n"
 msgstr ""
 
 #. XXX
 #. into
-#: i386-tdep.c:6861
+#: i386-tdep.c:6856
 msgid "Process record does not support instruction into.\n"
 msgstr ""
 
 #. bound
-#: i386-tdep.c:6872
+#: i386-tdep.c:6867
 msgid "Process record does not support instruction bound.\n"
 msgstr ""
 
 #. wrmsr
-#: i386-tdep.c:6908
+#: i386-tdep.c:6903
 msgid "Process record does not support instruction wrmsr.\n"
 msgstr ""
 
 #. rdmsr
-#: i386-tdep.c:6915
+#: i386-tdep.c:6910
 msgid "Process record does not support instruction rdmsr.\n"
 msgstr ""
 
-#: i386-tdep.c:6936
+#: i386-tdep.c:6931
 msgid "Process record does not support instruction sysenter.\n"
 msgstr ""
 
 #. sysexit
-#: i386-tdep.c:6948
+#: i386-tdep.c:6943
 msgid "Process record does not support instruction sysexit.\n"
 msgstr ""
 
-#: i386-tdep.c:6959
+#: i386-tdep.c:6954
 msgid "Process record does not support instruction syscall.\n"
 msgstr ""
 
 #. sysret
-#: i386-tdep.c:6971
+#: i386-tdep.c:6966
 msgid "Process record does not support instruction sysret.\n"
 msgstr ""
 
 #. hlt
-#: i386-tdep.c:6985
+#: i386-tdep.c:6980
 msgid "Process record does not support instruction hlt.\n"
 msgstr ""
 
-#: i386-tdep.c:8103
+#: i386-tdep.c:8098
 #, possible-c-format
 msgid "Process record does not support instruction 0x%02x at address %s.\n"
 msgstr ""
 
-#: i386-tdep.c:8164
+#: i386-tdep.c:8159
 #, possible-c-format
 msgid ""
 "; instruction is only %d bytes long, need at least %d bytes for the jump"
 msgstr ""
 
-#: i386-tdep.c:8756
+#: i386-tdep.c:8750
 #, possible-c-format
 msgid "BNDCFGU register invalid, read status %d."
 msgstr ""
 
-#: i386-tdep.c:8802
+#: i386-tdep.c:8796
 msgid ""
 "bound table examination not supported for 64-bit process with 32-bit GDB"
 msgstr ""
 
-#: i386-tdep.c:8820
+#: i386-tdep.c:8814
 #, possible-c-format
 msgid "Invalid bounds directory entry at %s."
 msgstr ""
 
-#: i386-tdep.c:8896
+#: i386-tdep.c:8890
 msgid "Intel Memory Protection Extensions not supported on this target.\n"
 msgstr ""
 
-#: i386-tdep.c:8903
+#: i386-tdep.c:8897
 msgid "Address of pointer variable expected.\n"
 msgstr ""
 
-#: i386-tdep.c:8939
+#: i386-tdep.c:8933
 msgid "Intel Memory Protection Extensions not supported on this target."
 msgstr ""
 
-#: i386-tdep.c:8943
+#: i386-tdep.c:8937
 msgid "Pointer value expected."
 msgstr ""
 
-#: i386-tdep.c:8950
+#: i386-tdep.c:8944
 msgid "wrong number of arguments: missing lower and upper bound."
 msgstr ""
 
-#: i386-tdep.c:8956
+#: i386-tdep.c:8950
 msgid "Wrong number of arguments; Missing upper bound."
 msgstr ""
 
-#: i386-tdep.c:9003
+#: i386-tdep.c:8994
 msgid "Set the disassembly flavor."
 msgstr ""
 
-#: i386-tdep.c:9004
+#: i386-tdep.c:8995
 msgid "Show the disassembly flavor."
 msgstr ""
 
-#: i386-tdep.c:9005
+#: i386-tdep.c:8996
 msgid ""
 "The valid values are \"att\" and \"intel\", and the default value is \"att\"."
 msgstr ""
 
-#: i386-tdep.c:9014
+#: i386-tdep.c:9005
 msgid "Set the convention for returning small structs."
 msgstr ""
 
-#: i386-tdep.c:9015
+#: i386-tdep.c:9006
 msgid "Show the convention for returning small structs."
 msgstr ""
 
-#: i386-tdep.c:9016
+#: i386-tdep.c:9007
 msgid ""
 "Valid values are \"default\", \"pcc\" and \"reg\", and the default value\n"
 "is \"default\"."
 msgstr ""
 
 #. Add "mpx" prefix for the set commands.
-#: i386-tdep.c:9025
+#: i386-tdep.c:9016
 msgid "Set Intel Memory Protection Extensions specific variables."
 msgstr ""
 
 #. allow-unknown
 #. Add "mpx" prefix for the show commands.
-#: i386-tdep.c:9032
+#: i386-tdep.c:9023
 msgid "Show Intel Memory Protection Extensions specific variables."
 msgstr ""
 
-#: i387-tdep.c:122 i387-tdep.c:160 i387-tdep.c:308 i387-tdep.c:318
-#: i387-tdep.c:320 i387-tdep.c:322 i387-tdep.c:324 i387-tdep.c:326
-#: i387-tdep.c:330 tui/tui-stack.c:388 valprint.c:385
+#: i387-tdep.c:111 i387-tdep.c:149 i387-tdep.c:297 i387-tdep.c:307
+#: i387-tdep.c:309 i387-tdep.c:311 i387-tdep.c:313 i387-tdep.c:315
+#: i387-tdep.c:319 tui/tui-stack.c:387 valprint.c:370
 msgid "<unavailable>"
 msgstr ""
 
-#: i387-tdep.c:370 m68k-tdep.c:209
+#: i387-tdep.c:360
 msgid ""
 "Cannot convert floating-point register value to non-floating-point type."
 msgstr ""
 
-#: i387-tdep.c:401 m68k-tdep.c:241
+#: i387-tdep.c:392 m68k-tdep.c:237
 msgid ""
 "Cannot convert non-floating-point type to floating-point register value."
 msgstr ""
 
-#: i387-tdep.c:1600 i387-tdep.c:1716
+#: i387-tdep.c:1591 i387-tdep.c:1707
 msgid "invalid i387 regclass"
 msgstr ""
 
-#: ia64-libunwind-tdep.c:235
+#: ia64-libunwind-tdep.c:234
 msgid "Can't get libunwind sp register."
 msgstr ""
 
-#: ia64-libunwind-tdep.c:525 ia64-libunwind-tdep.c:528
+#: ia64-libunwind-tdep.c:524 ia64-libunwind-tdep.c:527
 #, possible-c-format
 msgid "[GDB failed to load %s: %s]\n"
 msgstr ""
 
-#: ia64-tdep.c:531
+#: ia64-tdep.c:534
 msgid ""
 "Can't fetch instructions for slot numbers greater than 2.\n"
 "Using slot 0 instead"
 msgstr ""
 
-#: ia64-tdep.c:647 ia64-tdep.c:840
+#: ia64-tdep.c:649 ia64-tdep.c:830
 msgid "Can't insert breakpoint for slot numbers greater than 2."
 msgstr ""
 
-#: ia64-tdep.c:680 ia64-tdep.c:868
+#: ia64-tdep.c:680 ia64-tdep.c:860
 msgid "Can't insert breakpoint for non-existing slot X"
 msgstr ""
 
-#: ia64-tdep.c:718
+#: ia64-tdep.c:716
 #, possible-c-format
 msgid "Address %s already contains a breakpoint."
 msgstr ""
 
-#: ia64-tdep.c:769
+#: ia64-tdep.c:763
 #, possible-c-format
 msgid ""
 "Cannot remove breakpoint at address %s from non-existing X-type slot, memory "
 "has changed underneath"
 msgstr ""
 
-#: ia64-tdep.c:789
+#: ia64-tdep.c:782
 #, possible-c-format
 msgid ""
 "Cannot remove breakpoint at address %s, no break instruction at such address."
@@ -13837,23 +14208,33 @@ msgstr ""
 msgid "Invalid data type for function to be called."
 msgstr ""
 
-#: infcall.c:733
+#: infcall.c:349 infcall.c:877
+#, possible-c-format
+msgid "'%s' has unknown return type; cast the call to its declared return type"
+msgstr ""
+
+#: infcall.c:353
+msgid ""
+"function has unknown return type; cast the call to its declared return type"
+msgstr ""
+
+#: infcall.c:751
 msgid "May not call functions while looking at trace frames."
 msgstr ""
 
-#: infcall.c:736
+#: infcall.c:754
 msgid "Cannot call functions in reverse mode."
 msgstr ""
 
-#: infcall.c:742
+#: infcall.c:760
 msgid "This target does not support function calls."
 msgstr ""
 
-#: infcall.c:944
+#: infcall.c:970
 msgid "Too few arguments in function call."
 msgstr ""
 
-#: infcall.c:1205
+#: infcall.c:1246
 #, possible-c-format
 msgid ""
 "%s\n"
@@ -13866,7 +14247,7 @@ msgstr ""
 #. We could discard the dummy frame here given that the program exited,
 #. but it will get garbage collected the next time the program is
 #. run anyway.
-#: infcall.c:1233
+#: infcall.c:1274
 #, possible-c-format
 msgid ""
 "The program being debugged exited while in a function called from GDB.\n"
@@ -13874,7 +14255,7 @@ msgid ""
 "(%s) will be abandoned."
 msgstr ""
 
-#: infcall.c:1253
+#: infcall.c:1294
 #, possible-c-format
 msgid ""
 "The program received a signal in another thread while\n"
@@ -13884,7 +14265,7 @@ msgid ""
 "When the function is done executing, GDB will silently stop."
 msgstr ""
 
-#: infcall.c:1261
+#: infcall.c:1302
 #, possible-c-format
 msgid ""
 "The program stopped in another thread while making a function call from "
@@ -13896,7 +14277,7 @@ msgstr ""
 
 #. FIXME: Insert a bunch of wrap_here; name can be very
 #. long if it's a C++ name with arguments and stuff.
-#: infcall.c:1296
+#: infcall.c:1335
 #, possible-c-format
 msgid ""
 "The program being debugged was signaled while in a function called from "
@@ -13909,7 +14290,7 @@ msgstr ""
 
 #. FIXME: Insert a bunch of wrap_here; name can be very
 #. long if it's a C++ name with arguments and stuff.
-#: infcall.c:1314
+#: infcall.c:1353
 #, possible-c-format
 msgid ""
 "The program being debugged was signaled while in a function called from "
@@ -13921,7 +14302,7 @@ msgid ""
 "When the function is done executing, GDB will silently stop."
 msgstr ""
 
-#: infcall.c:1335
+#: infcall.c:1374
 #, possible-c-format
 msgid ""
 "The program being debugged entered a std::terminate call, most likely\n"
@@ -13941,7 +14322,7 @@ msgstr ""
 #. someday this will be implemented (it would not be easy).
 #. FIXME: Insert a bunch of wrap_here; name can be very long if it's
 #. a C++ name with arguments and stuff.
-#: infcall.c:1362
+#: infcall.c:1401
 #, possible-c-format
 msgid ""
 "The program being debugged stopped while in a function called from GDB.\n"
@@ -13950,15 +14331,15 @@ msgid ""
 "When the function is done executing, GDB will silently stop."
 msgstr ""
 
-#: infcall.c:1384
+#: infcall.c:1419
 msgid "Set coercion of floats to doubles when calling functions."
 msgstr ""
 
-#: infcall.c:1385
+#: infcall.c:1420
 msgid "Show coercion of floats to doubles when calling functions"
 msgstr ""
 
-#: infcall.c:1386
+#: infcall.c:1421
 msgid ""
 "Variables of type float should generally be converted to doubles before\n"
 "calling an unprototyped function, and left alone when calling a prototyped\n"
@@ -13969,15 +14350,15 @@ msgid ""
 "The default is to perform the conversion.\n"
 msgstr ""
 
-#: infcall.c:1399
+#: infcall.c:1434
 msgid "Set unwinding of stack if a signal is received while in a call dummy."
 msgstr ""
 
-#: infcall.c:1400
+#: infcall.c:1435
 msgid "Show unwinding of stack if a signal is received while in a call dummy."
 msgstr ""
 
-#: infcall.c:1401
+#: infcall.c:1436
 msgid ""
 "The unwindonsignal lets the user determine what gdb should do if a signal\n"
 "is received while in a function called from gdb (call dummy).  If set, gdb\n"
@@ -13986,16 +14367,16 @@ msgid ""
 "The default is to stop in the frame where the signal was received."
 msgstr ""
 
-#: infcall.c:1411
+#: infcall.c:1446
 msgid "Set unwinding of stack if std::terminate is called while in call dummy."
 msgstr ""
 
-#: infcall.c:1412
+#: infcall.c:1447
 msgid ""
 "Show unwinding of stack if std::terminate() is called while in a call dummy."
 msgstr ""
 
-#: infcall.c:1414
+#: infcall.c:1449
 msgid ""
 "The unwind on terminating exception flag lets the user determine\n"
 "what gdb should do if a std::terminate() call is made from the\n"
@@ -14009,122 +14390,136 @@ msgstr ""
 msgid "Argument given to \"disconnect\"."
 msgstr ""
 
-#: infcmd.c:105 infcmd.c:2577 infcmd.c:2988 linux-fork.c:685
-#: record-btrace.c:239 remote-sim.c:898
+#: infcmd.c:70 infcmd.c:2577 infcmd.c:2973 linux-fork.c:682
+#: record-btrace.c:239 remote-sim.c:892
 msgid "The program is not being run."
 msgstr ""
 
-#: infcmd.c:187
+#: infcmd.c:156
 #, possible-c-format
 msgid "Terminal for future runs of program being debugged is \"%s\".\n"
 msgstr ""
 
-#: infcmd.c:351
+#: infcmd.c:263
+msgid ""
+"You have not set the inferior's current working directory.\n"
+"The inferior will inherit GDB's cwd if native debugging, or the remote\n"
+"server's cwd if remote debugging.\n"
+msgstr ""
+
+#: infcmd.c:269
+#, possible-c-format
+msgid ""
+"Current working directory that will be used when starting the inferior is \"%"
+"s\".\n"
+msgstr ""
+
+#: infcmd.c:374
 msgid "can't handle command-line argument containing whitespace"
 msgstr ""
 
-#: infcmd.c:455
+#: infcmd.c:479
 msgid ""
 "platform-specific solib_create_inferior_hook did not load initial shared "
 "libraries."
 msgstr ""
 
-#: infcmd.c:495
+#: infcmd.c:519
 msgid ""
 "The program being debugged has been started already.\n"
 "Start it from the beginning? "
 msgstr ""
 
-#: infcmd.c:497
+#: infcmd.c:521
 msgid "Program not restarted."
 msgstr ""
 
-#: infcmd.c:510
+#: infcmd.c:534
 msgid "Asynchronous execution not supported on this target."
 msgstr ""
 
-#: infcmd.c:569
+#: infcmd.c:605
 msgid "The target does not support running in non-stop mode."
 msgstr ""
 
-#: infcmd.c:659
+#: infcmd.c:701
 msgid "No symbol table loaded.  Use the \"file\" command."
 msgstr ""
 
-#: infcmd.c:691
+#: infcmd.c:742
 msgid "Cannot execute this command without a live selected thread."
 msgstr ""
 
-#: infcmd.c:702
+#: infcmd.c:753
 msgid "Cannot execute this command while looking at trace frames."
 msgstr ""
 
-#: infcmd.c:710
+#: infcmd.c:761
 msgid "Cannot execute this command while the selected thread is running."
 msgstr ""
 
-#: infcmd.c:797
+#: infcmd.c:844
 msgid "`-a' is meaningless in all-stop mode."
 msgstr ""
 
-#: infcmd.c:800
+#: infcmd.c:847
 msgid "Can't resume all threads and specify proceed count simultaneously."
 msgstr ""
 
-#: infcmd.c:860
+#: infcmd.c:904
 msgid "Continuing.\n"
 msgstr ""
 
-#: infcmd.c:1146 infcmd.c:1872
+#: infcmd.c:1186 infcmd.c:1884
 msgid "Cannot find bounds of current function"
 msgstr ""
 
-#: infcmd.c:1149
+#: infcmd.c:1189
 #, possible-c-format
 msgid ""
 "Single stepping until exit from function %s,\n"
 "which has no line number information.\n"
 msgstr ""
 
-#: infcmd.c:1203
+#: infcmd.c:1240
 msgid "starting address"
 msgstr ""
 
-#: infcmd.c:1208
+#: infcmd.c:1245
 msgid "Unreasonable jump request"
 msgstr ""
 
-#: infcmd.c:1218
+#: infcmd.c:1250
 msgid "No source file has been specified."
 msgstr ""
 
-#: infcmd.c:1227
+#: infcmd.c:1259
 #, possible-c-format
 msgid "Line %d is not in `%s'.  Jump anyway? "
 msgstr ""
 
-#: infcmd.c:1244
+#: infcmd.c:1276
 msgid "WARNING!!!  Destination is in unmapped overlay!  Jump anyway? "
 msgstr ""
 
-#: infcmd.c:1257
+#: infcmd.c:1289
 msgid "Continuing at "
 msgstr ""
 
-#: infcmd.c:1288 infcmd.c:1379
+#: infcmd.c:1320 infcmd.c:1409
 msgid "signal number"
 msgstr ""
 
-#: infcmd.c:1335
+#: infcmd.c:1365
 msgid "Note:\n"
 msgstr ""
 
-#: infcmd.c:1336
+#: infcmd.c:1366
 #, possible-c-format
 msgid "  Thread %s previously stopped with signal %s, %s.\n"
 msgstr ""
 
-#: infcmd.c:1345
+#: infcmd.c:1375
 #, possible-c-format
 msgid ""
 "Continuing thread %s (the current thread) with specified signal will\n"
@@ -14132,119 +14527,119 @@ msgid ""
 "Continue anyway? "
 msgstr ""
 
-#: infcmd.c:1355
+#: infcmd.c:1385
 msgid "Continuing with no signal.\n"
 msgstr ""
 
-#: infcmd.c:1357
+#: infcmd.c:1387
 #, possible-c-format
 msgid "Continuing with signal %s.\n"
 msgstr ""
 
-#: infcmd.c:1399
+#: infcmd.c:1429
 msgid "Signal handling set to not pass this signal to the program."
 msgstr ""
 
-#: infcmd.c:1520
+#: infcmd.c:1548
 msgid "Execution is not within a known function."
 msgstr ""
 
-#: infcmd.c:1586
+#: infcmd.c:1609
 msgid "a location"
 msgstr ""
 
-#: infcmd.c:1797
+#: infcmd.c:1809
 msgid "finish_command: function has no target type"
 msgstr ""
 
-#: infcmd.c:1988
+#: infcmd.c:1998
 msgid "The \"finish\" command does not take any arguments."
 msgstr ""
 
 #. Finishing from an inline frame is completely different.  We don't
 #. try to show the "return value" - no way to locate it.
-#: infcmd.c:1993 infcmd.c:2007
+#: infcmd.c:2000 infcmd.c:2014
 msgid "No selected frame."
 msgstr ""
 
-#: infcmd.c:1995
+#: infcmd.c:2002
 msgid "\"finish\" not meaningful in the outermost frame."
 msgstr ""
 
-#: infcmd.c:2027 infcmd.c:2052
+#: infcmd.c:2031 infcmd.c:2056
 msgid "Run till exit from "
 msgstr ""
 
-#: infcmd.c:2044
+#: infcmd.c:2048
 msgid "Run back to call of "
 msgstr ""
 
-#: infcmd.c:2048
+#: infcmd.c:2052
 #, possible-c-format
 msgid ""
 "warning: Function %s does not return normally.\n"
 "Try to finish anyway? "
 msgstr ""
 
-#: infcmd.c:2082
+#: infcmd.c:2086
 msgid "The program being debugged is not being run.\n"
 msgstr ""
 
-#: infcmd.c:2096
+#: infcmd.c:2100
 msgid "Invalid selected thread."
 msgstr ""
 
-#: infcmd.c:2098 thread.c:1164
+#: infcmd.c:2102 thread.c:1117
 msgid "Selected thread is running."
 msgstr ""
 
-#: infcmd.c:2105
+#: infcmd.c:2109
 #, possible-c-format
 msgid "Program stopped at %s.\n"
 msgstr ""
 
-#: infcmd.c:2108
+#: infcmd.c:2112
 msgid "It stopped after being stepped.\n"
 msgstr ""
 
-#: infcmd.c:2117
+#: infcmd.c:2121
 msgid "It stopped at a breakpoint that has since been deleted.\n"
 msgstr ""
 
-#: infcmd.c:2121
+#: infcmd.c:2125
 #, possible-c-format
 msgid "It stopped at breakpoint %d.\n"
 msgstr ""
 
-#: infcmd.c:2127
+#: infcmd.c:2131
 #, possible-c-format
 msgid "It stopped with signal %s, %s.\n"
 msgstr ""
 
-#: infcmd.c:2134
+#: infcmd.c:2138
 msgid "Type \"info stack\" or \"info registers\" for more information.\n"
 msgstr ""
 
-#: infcmd.c:2179
+#: infcmd.c:2183
 msgid "environment variable and value"
 msgstr ""
 
-#: infcmd.c:2203
+#: infcmd.c:2207
 msgid "environment variable to set"
 msgstr ""
 
-#: infcmd.c:2225
+#: infcmd.c:2229
 #, possible-c-format
 msgid "Setting environment variable \"%s\" to null value.\n"
 msgstr ""
 
 #. If there is no argument, delete all environment variables.
 #. Ask for confirmation if reading from the terminal.
-#: infcmd.c:2242
+#: infcmd.c:2245
 msgid "Delete all environment variables? "
 msgstr ""
 
-#: infcmd.c:2416 infcmd.c:2562 infcmd.c:3120
+#: infcmd.c:2416 infcmd.c:2562 infcmd.c:3105
 msgid "The program has no registers now."
 msgstr ""
 
@@ -14267,39 +14662,39 @@ msgstr ""
 msgid "In %s,\n"
 msgstr ""
 
-#: infcmd.c:2811 target.c:2242
+#: infcmd.c:2806 target.c:2129
 msgid "A program is being debugged already.  Kill it? "
 msgstr ""
 
-#: infcmd.c:2814
+#: infcmd.c:2809
 msgid "Not killed."
 msgstr ""
 
-#: infcmd.c:2829
+#: infcmd.c:2824
 msgid "Cannot attach to this target in non-stop mode"
 msgstr ""
 
-#: infcmd.c:3083
+#: infcmd.c:3068
 msgid "-a is meaningless in all-stop mode."
 msgstr ""
 
-#: infcmd.c:3129
+#: infcmd.c:3114
 msgid "\"unset\" must be followed by the name of an unset subcommand.\n"
 msgstr ""
 
-#: infcmd.c:3146 procfs.c:5115
+#: infcmd.c:3131 procfs.c:3629
 msgid "Not supported on this target."
 msgstr ""
 
-#: infcmd.c:3223
+#: infcmd.c:3224
 msgid "Set terminal for future runs of program being debugged."
 msgstr ""
 
-#: infcmd.c:3224
+#: infcmd.c:3225
 msgid "Show terminal for future runs of program being debugged."
 msgstr ""
 
-#: infcmd.c:3225
+#: infcmd.c:3226
 msgid ""
 "Usage: set inferior-tty [TTY]\n"
 "\n"
@@ -14307,20 +14702,39 @@ msgid ""
 "is restored."
 msgstr ""
 
-#: infcmd.c:3239
+#: infcmd.c:3240
 msgid "Set argument list to give program being debugged when it is started."
 msgstr ""
 
-#: infcmd.c:3240
+#: infcmd.c:3241
 msgid "Show argument list to give program being debugged when it is started."
 msgstr ""
 
-#: infcmd.c:3241
+#: infcmd.c:3242
 msgid ""
 "Follow this command with any number of args, to be passed to the program."
 msgstr ""
 
-#: infcmd.c:3250
+#: infcmd.c:3253
+msgid ""
+"Set the current working directory to be used when the inferior is started.\n"
+"Changing this setting does not have any effect on inferiors that are\n"
+"already running."
+msgstr ""
+
+#: infcmd.c:3257
+msgid ""
+"Show the current working directory that is used when the inferior is started."
+msgstr ""
+
+#: infcmd.c:3259
+msgid ""
+"Use this command to change the current working directory that will be used\n"
+"when the inferior is started.  This setting does not affect GDB's current\n"
+"working directory."
+msgstr ""
+
+#: infcmd.c:3270
 msgid ""
 "The environment to give the program, or one variable's value.\n"
 "With an argument VAR, prints the value of environment variable VAR to\n"
@@ -14328,17 +14742,17 @@ msgid ""
 "environment to be given to the program."
 msgstr ""
 
-#: infcmd.c:3258
+#: infcmd.c:3278
 msgid "Complement to certain \"set\" commands."
 msgstr ""
 
-#: infcmd.c:3261
+#: infcmd.c:3281
 msgid ""
 "Cancel environment variable VAR for the program.\n"
 "This does not affect the program until the next \"run\" command."
 msgstr ""
 
-#: infcmd.c:3267
+#: infcmd.c:3287
 msgid ""
 "Set environment variable value to give the program.\n"
 "Arguments are VAR VALUE where VAR is variable name and VALUE is value.\n"
@@ -14346,7 +14760,7 @@ msgid ""
 "This does not affect the program until the next \"run\" command."
 msgstr ""
 
-#: infcmd.c:3275
+#: infcmd.c:3295
 msgid ""
 "Add directory DIR(s) to beginning of search path for object files.\n"
 "$cwd in the path means the current working directory.\n"
@@ -14355,7 +14769,7 @@ msgid ""
 "fully linked executable files and separately compiled object files as needed."
 msgstr ""
 
-#: infcmd.c:3284
+#: infcmd.c:3304
 msgid ""
 "Current search path for finding object files.\n"
 "$cwd in the path means the current working directory.\n"
@@ -14364,11 +14778,11 @@ msgid ""
 "fully linked executable files and separately compiled object files as needed."
 msgstr ""
 
-#: infcmd.c:3295
+#: infcmd.c:3315
 msgid "Kill execution of program being debugged."
 msgstr ""
 
-#: infcmd.c:3298
+#: infcmd.c:3318
 msgid ""
 "Attach to a process or file outside of GDB.\n"
 "This command attaches to another target, of the same type as your last\n"
@@ -14383,21 +14797,21 @@ msgid ""
 "to specify the program, and to load its symbol table."
 msgstr ""
 
-#: infcmd.c:3311
+#: infcmd.c:3331
 msgid ""
 "Detach a process or file previously attached.\n"
 "If a process, it is no longer traced, and it continues its execution.  If\n"
 "you were debugging a file, the file is closed and gdb no longer accesses it."
 msgstr ""
 
-#: infcmd.c:3317
+#: infcmd.c:3337
 msgid ""
 "Disconnect from a target.\n"
 "The target will wait for another debugger to connect.  Not available for\n"
 "all targets."
 msgstr ""
 
-#: infcmd.c:3322
+#: infcmd.c:3342
 msgid ""
 "Continue program with the specified signal.\n"
 "Usage: signal SIGNAL\n"
@@ -14412,7 +14826,7 @@ msgid ""
 "the current thread only."
 msgstr ""
 
-#: infcmd.c:3335
+#: infcmd.c:3355
 msgid ""
 "Queue a signal to be delivered to the current thread when it is resumed.\n"
 "Usage: queue-signal SIGNAL\n"
@@ -14427,28 +14841,28 @@ msgid ""
 "the current thread only."
 msgstr ""
 
-#: infcmd.c:3349
+#: infcmd.c:3369
 msgid ""
 "Step one instruction exactly.\n"
 "Usage: stepi [N]\n"
 "Argument N means step N times (or till program stops for another reason)."
 msgstr ""
 
-#: infcmd.c:3356
+#: infcmd.c:3376
 msgid ""
 "Step one instruction, but proceed through subroutine calls.\n"
 "Usage: nexti [N]\n"
 "Argument N means step N times (or till program stops for another reason)."
 msgstr ""
 
-#: infcmd.c:3363
+#: infcmd.c:3383
 msgid ""
 "Execute until selected stack frame returns.\n"
 "Usage: finish\n"
 "Upon return, the value returned is printed and put in the value history."
 msgstr ""
 
-#: infcmd.c:3369
+#: infcmd.c:3389
 msgid ""
 "Step program, proceeding through subroutine calls.\n"
 "Usage: next [N]\n"
@@ -14457,28 +14871,28 @@ msgid ""
 "the call, in effect treating it as a single source line."
 msgstr ""
 
-#: infcmd.c:3377
+#: infcmd.c:3397
 msgid ""
 "Step program until it reaches a different source line.\n"
 "Usage: step [N]\n"
 "Argument N means step N times (or till program stops for another reason)."
 msgstr ""
 
-#: infcmd.c:3384
+#: infcmd.c:3404
 msgid ""
 "Execute until the program reaches a source line greater than the current\n"
 "or a specified location (same args as break command) within the current "
 "frame."
 msgstr ""
 
-#: infcmd.c:3391
+#: infcmd.c:3411
 msgid ""
 "Continue the program up to the given location (same form as args for break "
 "command).\n"
 "Execution will also stop upon exit from the current stack frame."
 msgstr ""
 
-#: infcmd.c:3397
+#: infcmd.c:3417
 msgid ""
 "Continue program being debugged at specified line or address.\n"
 "Usage: jump <location>\n"
@@ -14486,7 +14900,7 @@ msgid ""
 "for an address to start at."
 msgstr ""
 
-#: infcmd.c:3405
+#: infcmd.c:3425
 msgid ""
 "Continue program being debugged, after signal or breakpoint.\n"
 "Usage: continue [N]\n"
@@ -14500,26 +14914,20 @@ msgid ""
 "Specifying -a and an ignore count simultaneously is an error."
 msgstr ""
 
-#: infcmd.c:3419
-msgid ""
-"Start debugged program.  You may specify arguments to give it.\n"
-"Args may include \"*\", or \"[...]\"; they are expanded using \"sh\".\n"
-"Input and output redirection with \">\", \"<\", or \">>\" are also allowed.\n"
-"\n"
-"With no arguments, uses arguments last specified (with \"run\" or \"set args"
-"\").\n"
-"To cancel previous arguments and run with no arguments,\n"
-"use \"set args\" without arguments."
+#: infcmd.c:3439
+msgid "Start debugged program.\n"
 msgstr ""
 
-#: infcmd.c:3431
+#: infcmd.c:3445
 msgid ""
-"Run the debugged program until the beginning of the main procedure.\n"
-"You may specify arguments to give to your program, just as with the\n"
-"\"run\" command."
+"Start the debugged program stopping at the beginning of the main procedure.\n"
+msgstr ""
+
+#: infcmd.c:3450
+msgid "Start the debugged program stopping at the first instruction.\n"
 msgstr ""
 
-#: infcmd.c:3438
+#: infcmd.c:3456
 msgid ""
 "Interrupt the execution of the debugged program.\n"
 "If non-stop mode is enabled, interrupt only the current thread,\n"
@@ -14527,178 +14935,182 @@ msgid ""
 "interrupt all running threads in non-stop mode, use the -a option."
 msgstr ""
 
-#: infcmd.c:3443
+#: infcmd.c:3461
 msgid ""
 "List of integer registers and their contents, for selected stack frame.\n"
-"Register name as argument means describe only that register."
+"One or more register names as argument means describe the given registers.\n"
+"One or more register group names as argument means describe the registers\n"
+"in the named register groups."
 msgstr ""
 
-#: infcmd.c:3449
+#: infcmd.c:3469
 msgid ""
 "List of all registers and their contents, for selected stack frame.\n"
-"Register name as argument means describe only that register."
+"One or more register names as argument means describe the given registers.\n"
+"One or more register group names as argument means describe the registers\n"
+"in the named register groups."
 msgstr ""
 
-#: infcmd.c:3455
+#: infcmd.c:3477
 msgid "Execution status of the program."
 msgstr ""
 
-#: infcmd.c:3458
+#: infcmd.c:3480
 msgid "Print the status of the floating point unit\n"
 msgstr ""
 
-#: infcmd.c:3461
+#: infcmd.c:3483
 msgid "Print the status of the vector unit\n"
 msgstr ""
 
-#: infcmd.c:3464
+#: infcmd.c:3486
 msgid ""
 "Show /proc process information about any running process.\n"
 "Specify any process id, or use the program being debugged by default."
 msgstr ""
 
 #. allow-unknown
-#: infcmd.c:3470
+#: infcmd.c:3492
 msgid "List of mapped memory regions."
 msgstr ""
 
-#: infcmd.c:3474
+#: infcmd.c:3496
 msgid "List process info from /proc/PID/stat."
 msgstr ""
 
-#: infcmd.c:3478
+#: infcmd.c:3500
 msgid "List process info from /proc/PID/status."
 msgstr ""
 
-#: infcmd.c:3482
+#: infcmd.c:3504
 msgid "List current working directory of the process."
 msgstr ""
 
-#: infcmd.c:3486
+#: infcmd.c:3508
 msgid "List command line arguments of the process."
 msgstr ""
 
-#: infcmd.c:3490
+#: infcmd.c:3512
 msgid "List absolute filename for executable of the process."
 msgstr ""
 
-#: infcmd.c:3494
+#: infcmd.c:3516
 msgid "List all available /proc info."
 msgstr ""
 
-#: inferior.c:148
+#: inferior.c:126
 #, possible-c-format
 msgid "[New inferior %d]\n"
 msgstr ""
 
-#: inferior.c:260
+#: inferior.c:237
 #, possible-c-format
 msgid "[Inferior %d exited]\n"
 msgstr ""
 
-#: inferior.c:287
+#: inferior.c:264
 #, possible-c-format
 msgid "[Inferior %d detached]\n"
 msgstr ""
 
-#: inferior.c:542
+#: inferior.c:518
 msgid "<noexec>"
 msgstr ""
 
-#: inferior.c:544
+#: inferior.c:520
 #, possible-c-format
 msgid "[Switching to inferior %d [%s] (%s)]\n"
 msgstr ""
 
-#: inferior.c:613
+#: inferior.c:585
 msgid ""
 "\n"
 "\tis vfork child of inferior "
 msgstr ""
 
-#: inferior.c:618
+#: inferior.c:590
 msgid ""
 "\n"
 "\tis vfork parent of inferior "
 msgstr ""
 
-#: inferior.c:635
+#: inferior.c:604
 msgid "Requires argument (inferior id(s) to detach)"
 msgstr ""
 
-#: inferior.c:644 inferior.c:683 inferior.c:719 inferior.c:773 inferior.c:931
+#: inferior.c:613 inferior.c:652 inferior.c:688 inferior.c:742 inferior.c:892
 #, possible-c-format
 msgid "Inferior ID %d not known."
 msgstr ""
 
-#: inferior.c:651 inferior.c:690
+#: inferior.c:620 inferior.c:659
 #, possible-c-format
 msgid "Inferior ID %d is not running."
 msgstr ""
 
-#: inferior.c:658 inferior.c:697
+#: inferior.c:627 inferior.c:666
 #, possible-c-format
 msgid "Inferior ID %d has no threads."
 msgstr ""
 
-#: inferior.c:674
+#: inferior.c:643
 msgid "Requires argument (inferior id(s) to kill)"
 msgstr ""
 
-#: inferior.c:729 mi/mi-main.c:415
+#: inferior.c:698 mi/mi-main.c:418
 msgid "Inferior has no threads."
 msgstr ""
 
-#: inferior.c:763
+#: inferior.c:732
 msgid "Requires an argument (inferior id(s) to remove)"
 msgstr ""
 
-#: inferior.c:779
+#: inferior.c:748
 #, possible-c-format
 msgid "Can not remove current inferior %d."
 msgstr ""
 
-#: inferior.c:785
+#: inferior.c:754
 #, possible-c-format
 msgid "Can not remove active inferior %d."
 msgstr ""
 
-#: inferior.c:848 inferior.c:912
+#: inferior.c:814 inferior.c:873
 msgid "No argument to -copies"
 msgstr ""
 
-#: inferior.c:855
+#: inferior.c:821
 msgid "No argument to -exec"
 msgstr ""
 
-#: inferior.c:861 inferior.c:935 mi/mi-main.c:1787
+#: inferior.c:826 inferior.c:896 mi/mi-main.c:1623
 msgid "Invalid argument"
 msgstr ""
 
-#: inferior.c:871
+#: inferior.c:836
 #, possible-c-format
 msgid "Added inferior %d\n"
 msgstr ""
 
-#: inferior.c:916
+#: inferior.c:877
 msgid "Invalid copies number"
 msgstr ""
 
-#: inferior.c:968
+#: inferior.c:929
 #, possible-c-format
 msgid "Added inferior %d.\n"
 msgstr ""
 
-#: inferior.c:983
+#: inferior.c:942
 #, possible-c-format
 msgid "Printing of inferior events is %s.\n"
 msgstr ""
 
-#: inferior.c:1026
+#: inferior.c:986
 msgid "IDs of specified inferiors (all inferiors if no argument)."
 msgstr ""
 
-#: inferior.c:1028
+#: inferior.c:988
 msgid ""
 "Add a new inferior.\n"
 "Usage: add-inferior [-copies <N>] [-exec <FILENAME>]\n"
@@ -14707,13 +15119,13 @@ msgid ""
 "as main program."
 msgstr ""
 
-#: inferior.c:1036
+#: inferior.c:996
 msgid ""
 "Remove inferior ID (or list of IDs).\n"
 "Usage: remove-inferiors ID..."
 msgstr ""
 
-#: inferior.c:1040
+#: inferior.c:1000
 msgid ""
 "Clone inferior ID.\n"
 "Usage: clone-inferior [-copies <N>] [ID]\n"
@@ -14723,134 +15135,134 @@ msgid ""
 "that is cloned."
 msgstr ""
 
-#: inferior.c:1048
+#: inferior.c:1008
 msgid "Detach from inferior ID (or list of IDS)."
 msgstr ""
 
-#: inferior.c:1052
+#: inferior.c:1012
 msgid "Kill inferior ID (or list of IDs)."
 msgstr ""
 
-#: inferior.c:1056
+#: inferior.c:1016
 msgid ""
 "Use this command to switch between inferiors.\n"
 "The new inferior ID must be currently known."
 msgstr ""
 
-#: inferior.c:1062
+#: inferior.c:1022
 msgid "Set printing of inferior events (e.g., inferior start and exit)."
 msgstr ""
 
-#: inferior.c:1063
+#: inferior.c:1023
 msgid "Show printing of inferior events (e.g., inferior start and exit)."
 msgstr ""
 
-#: inf-loop.c:83
+#: inf-loop.c:91
 msgid "Event type not recognized.\n"
 msgstr ""
 
-#: inflow.c:551
+#: inflow.c:501
 msgid "This GDB does not control a terminal.\n"
 msgstr ""
 
-#: inflow.c:561
+#: inflow.c:511
 msgid "Inferior's terminal status (currently saved by GDB):\n"
 msgstr ""
 
 #. Mention GDB in warning because it will appear in the inferior's
 #. terminal instead of GDB's.
-#: inflow.c:709
+#: inflow.c:657
 #, possible-c-format
 msgid "GDB: Failed to set controlling terminal: %s"
 msgstr ""
 
-#: inflow.c:798
+#: inflow.c:746
 #, possible-c-format
 msgid "Failed to create new terminal session: setsid: %s"
 msgstr ""
 
-#: inflow.c:860
+#: inflow.c:771
 msgid "Print inferior's saved terminal status."
 msgstr ""
 
-#: inf-ptrace.c:203
+#: inf-ptrace.c:212
 msgid "This system does not support attaching to a process"
 msgstr ""
 
-#: inf-ptrace.c:258
+#: inf-ptrace.c:267
 msgid "This system does not support detaching from a process"
 msgstr ""
 
-#: inf-ptrace.c:392 obsd-nat.c:103 rs6000-nat.c:493
+#: inf-ptrace.c:401 obsd-nat.c:103 rs6000-nat.c:493
 #, possible-c-format
 msgid "Child process unexpectedly missing: %s.\n"
 msgstr ""
 
-#: inf-ptrace.c:617
+#: inf-ptrace.c:626
 #, possible-c-format
 msgid "\tUsing the running image of %s %s.\n"
 msgstr ""
 
-#: infrun.c:153
+#: infrun.c:140
 #, possible-c-format
 msgid "Mode of the step operation is %s.\n"
 msgstr ""
 
-#: infrun.c:174
+#: infrun.c:161
 #, possible-c-format
 msgid "Displace stepping debugging is %s.\n"
 msgstr ""
 
-#: infrun.c:182
+#: infrun.c:169
 #, possible-c-format
 msgid "Inferior debugging is %s.\n"
 msgstr ""
 
-#: infrun.c:196
+#: infrun.c:183
 #, possible-c-format
 msgid "Disabling randomization of debuggee's virtual address space is %s.\n"
 msgstr ""
 
-#: infrun.c:200
+#: infrun.c:187
 msgid ""
 "Disabling randomization of debuggee's virtual address space is unsupported "
 "on\n"
 "this platform.\n"
 msgstr ""
 
-#: infrun.c:210
+#: infrun.c:197
 msgid ""
 "Disabling randomization of debuggee's virtual address space is unsupported "
 "on\n"
 "this platform."
 msgstr ""
 
-#: infrun.c:227 infrun.c:256 mi/mi-main.c:114 target.c:4011 target.c:4064
-#: target.c:4120
+#: infrun.c:214 infrun.c:243 mi/mi-main.c:118 target.c:3889 target.c:3942
+#: target.c:3998
 msgid "Cannot change this setting while the inferior is running."
 msgstr ""
 
-#: infrun.c:238
+#: infrun.c:225
 #, possible-c-format
 msgid "Controlling the inferior in non-stop mode is %s.\n"
 msgstr ""
 
-#: infrun.c:281 infrun.c:311
+#: infrun.c:268 infrun.c:298
 #, possible-c-format
 msgid "Observer mode is now %s.\n"
 msgstr ""
 
-#: infrun.c:289
+#: infrun.c:276
 #, possible-c-format
 msgid "Observer mode is %s.\n"
 msgstr ""
 
-#: infrun.c:384
+#: infrun.c:372
 #, possible-c-format
 msgid "Stopping for shared library events is %s.\n"
 msgstr ""
 
-#: infrun.c:417
+#: infrun.c:405
 #, possible-c-format
 msgid "Debugger response to a program call of fork or vfork is \"%s\".\n"
 msgstr ""
@@ -14860,24 +15272,24 @@ msgstr ""
 #. the parent stays blocked.  If we're telling the parent to run
 #. in the foreground, the user will not be able to ctrl-c to get
 #. back the terminal, effectively hanging the debug session.
-#: infrun.c:450
+#: infrun.c:438
 msgid ""
 "Can not resume the parent process over vfork in the foreground while\n"
 "holding the child stopped.  Try \"set detach-on-fork\" or \"set schedule-"
 "multiple\".\n"
 msgstr ""
 
-#: infrun.c:483
+#: infrun.c:471
 #, possible-c-format
 msgid "Detaching after %s from child %s.\n"
 msgstr ""
 
-#: infrun.c:571
+#: infrun.c:556
 #, possible-c-format
 msgid "Attaching after %s %s to child %s.\n"
 msgstr ""
 
-#: infrun.c:619
+#: infrun.c:604
 #, possible-c-format
 msgid "Detaching after fork from child %s.\n"
 msgstr ""
@@ -14888,195 +15300,195 @@ msgstr ""
 #. forked.  In that case, the resume command
 #. issued is most likely not applicable to the
 #. child, so just warn, and refuse to resume.
-#: infrun.c:806
+#: infrun.c:791
 msgid "Not resuming: switched threads before following fork child."
 msgstr ""
 
-#: infrun.c:965
+#: infrun.c:966
 #, possible-c-format
 msgid "Detaching vfork parent process %d after child exec.\n"
 msgstr ""
 
-#: infrun.c:972
+#: infrun.c:973
 #, possible-c-format
 msgid "Detaching vfork parent process %d after child exit.\n"
 msgstr ""
 
-#: infrun.c:1079
+#: infrun.c:1072
 #, possible-c-format
 msgid "Follow exec mode is \"%s\".\n"
 msgstr ""
 
-#: infrun.c:1160
+#: infrun.c:1153
 #, possible-c-format
 msgid "%s is executing new program: %s\n"
 msgstr ""
 
-#: infrun.c:1179
+#: infrun.c:1172
 #, possible-c-format
 msgid ""
 "Could not load symbols for executable %s.\n"
 "Do you need \"set sysroot\"?"
 msgstr ""
 
-#: infrun.c:1674
+#: infrun.c:1669
 #, possible-c-format
 msgid ""
 "Debugger's willingness to use displaced stepping to step over breakpoints is "
 "%s (currently %s).\n"
 msgstr ""
 
-#: infrun.c:1679
+#: infrun.c:1674
 #, possible-c-format
 msgid ""
 "Debugger's willingness to use displaced stepping to step over breakpoints is "
 "%s.\n"
 msgstr ""
 
-#: infrun.c:1849
+#: infrun.c:1839
 #, possible-c-format
 msgid ""
 "Error accessing memory address %s (%s) for displaced-stepping scratch space."
 msgstr ""
 
-#: infrun.c:1927
+#: infrun.c:1915
 #, possible-c-format
 msgid "disabling displaced stepping: %s"
 msgstr ""
 
-#: infrun.c:2153 infrun.c:3193 infrun.c:3203 utils.c:703
+#: infrun.c:2140 infrun.c:3162 infrun.c:3172 utils.c:519
 msgid "Command aborted."
 msgstr ""
 
-#: infrun.c:2235
+#: infrun.c:2211
 #, possible-c-format
 msgid "Mode for locking scheduler during execution is \"%s\".\n"
 msgstr ""
 
-#: infrun.c:2246
+#: infrun.c:2222
 #, possible-c-format
 msgid "Target '%s' cannot support this command."
 msgstr ""
 
-#: infrun.c:2435
+#: infrun.c:2403
 #, possible-c-format
 msgid "Couldn't deliver signal %s to %s."
 msgstr ""
 
-#: infrun.c:3694
+#: infrun.c:3658
 msgid "Program exited while detaching"
 msgstr ""
 
-#: infrun.c:4002
+#: infrun.c:3968
 msgid "completed.\n"
 msgstr ""
 
-#: infrun.c:5038
+#: infrun.c:4990
 #, possible-c-format
 msgid "unhandled stop_soon: %d"
 msgstr ""
 
-#: infrun.c:5122
+#: infrun.c:5074
 msgid "Cannot fill $_exitsignal with the correct signal number.\n"
 msgstr ""
 
-#: infrun.c:8077
+#: infrun.c:8001
 msgid "Unknown value."
 msgstr ""
 
-#: infrun.c:8131
+#: infrun.c:8055
 msgid ""
 "Cannot remove breakpoints because program is no longer writable.\n"
 "Further execution is probably impossible.\n"
 msgstr ""
 
-#: infrun.c:8288 linux-fork.c:400 linux-fork.c:432
+#: infrun.c:8212 linux-fork.c:397 linux-fork.c:429
 #, possible-c-format
 msgid "[Switching to %s]\n"
 msgstr ""
 
-#: infrun.c:8301
+#: infrun.c:8225
 msgid "No unwaited-for children left.\n"
 msgstr ""
 
-#: infrun.c:8490
+#: infrun.c:8415
 msgid "Signal        Stop\tPrint\tPass to program\tDescription\n"
 msgstr ""
 
-#: infrun.c:8527
+#: infrun.c:8450
 msgid "signal to handle"
 msgstr ""
 
 #. Not a number and not a recognized flag word => complain.
-#: infrun.c:8630
+#: infrun.c:8552
 #, possible-c-format
 msgid "Unrecognized or ambiguous flag word: \"%s\"."
 msgstr ""
 
-#: infrun.c:8645
+#: infrun.c:8567
 #, possible-c-format
 msgid ""
 "%s is used by the debugger.\n"
 "Are you sure you want to change it? "
 msgstr ""
 
-#: infrun.c:8653
+#: infrun.c:8575
 msgid "Not confirmed, unchanged.\n"
 msgstr ""
 
-#: infrun.c:8729
+#: infrun.c:8642
 msgid ""
 "Only signals 1-15 are valid as numeric signals.\n"
 "Use \"info signals\" for a list of symbolic signals."
 msgstr ""
 
-#: infrun.c:8772
+#: infrun.c:8685
 msgid ""
 "\n"
 "Use the \"handle\" command to change these tables.\n"
 msgstr ""
 
-#: infrun.c:8806
+#: infrun.c:8719
 msgid "Unable to read siginfo"
 msgstr ""
 
-#: infrun.c:8829
+#: infrun.c:8742
 msgid "Unable to write siginfo"
 msgstr ""
 
-#: infrun.c:9051 stack.c:1851 stack.c:2070
+#: infrun.c:8961 stack.c:1819 stack.c:2035
 msgid "Unable to restore previously selected frame."
 msgstr ""
 
-#: infrun.c:9196
+#: infrun.c:9084
 msgid "Target does not support this operation."
 msgstr ""
 
-#: infrun.c:9206
+#: infrun.c:9094
 msgid "Forward.\n"
 msgstr ""
 
-#: infrun.c:9209
+#: infrun.c:9097
 msgid "Reverse.\n"
 msgstr ""
 
-#: infrun.c:9213
+#: infrun.c:9101
 #, possible-c-format
 msgid "bogus execution_direction value: %d"
 msgstr ""
 
-#: infrun.c:9222
+#: infrun.c:9110
 #, possible-c-format
 msgid "Resuming the execution of threads of all processes is %s.\n"
 msgstr ""
 
-#: infrun.c:9255
+#: infrun.c:9143
 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:9260
+#: infrun.c:9148
 msgid ""
 "Specify how to handle signals.\n"
 "Usage: handle SIGNAL [ACTIONS]\n"
@@ -15103,46 +15515,46 @@ msgid ""
 "all signals cumulatively specified."
 msgstr ""
 
-#: infrun.c:9288
+#: infrun.c:9176
 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:9293
+#: infrun.c:9181
 msgid "Set inferior debugging."
 msgstr ""
 
-#: infrun.c:9294
+#: infrun.c:9182
 msgid "Show inferior debugging."
 msgstr ""
 
-#: infrun.c:9295
+#: infrun.c:9183
 msgid "When non-zero, inferior specific debugging is enabled."
 msgstr ""
 
-#: infrun.c:9302
+#: infrun.c:9190
 msgid "Set displaced stepping debugging."
 msgstr ""
 
-#: infrun.c:9303
+#: infrun.c:9191
 msgid "Show displaced stepping debugging."
 msgstr ""
 
-#: infrun.c:9304
+#: infrun.c:9192
 msgid "When non-zero, displaced stepping specific debugging is enabled."
 msgstr ""
 
-#: infrun.c:9311
+#: infrun.c:9199
 msgid "Set whether gdb controls the inferior in non-stop mode."
 msgstr ""
 
-#: infrun.c:9312
+#: infrun.c:9200
 msgid "Show whether gdb controls the inferior in non-stop mode."
 msgstr ""
 
-#: infrun.c:9313
+#: infrun.c:9201
 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"
@@ -15157,30 +15569,30 @@ msgid ""
 "leave it stopped or free to run as needed."
 msgstr ""
 
-#: infrun.c:9397
+#: infrun.c:9285
 msgid "Set stopping for shared library events."
 msgstr ""
 
-#: infrun.c:9398
+#: infrun.c:9286
 msgid "Show stopping for shared library events."
 msgstr ""
 
-#: infrun.c:9399
+#: infrun.c:9287
 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:9409
+#: infrun.c:9297
 msgid "Set debugger response to a program call of fork or vfork."
 msgstr ""
 
-#: infrun.c:9410
+#: infrun.c:9298
 msgid "Show debugger response to a program call of fork or vfork."
 msgstr ""
 
-#: infrun.c:9411
+#: infrun.c:9299
 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"
@@ -15189,15 +15601,15 @@ msgid ""
 "By default, the debugger will follow the parent process."
 msgstr ""
 
-#: infrun.c:9423
+#: infrun.c:9311
 msgid "Set debugger response to a program call of exec."
 msgstr ""
 
-#: infrun.c:9424
+#: infrun.c:9312
 msgid "Show debugger response to a program call of exec."
 msgstr ""
 
-#: infrun.c:9425
+#: infrun.c:9313
 msgid ""
 "An exec call replaces the program image of a process.\n"
 "\n"
@@ -15216,15 +15628,15 @@ msgid ""
 "By default, the debugger will use the same inferior."
 msgstr ""
 
-#: infrun.c:9446
+#: infrun.c:9334
 msgid "Set mode for locking scheduler during execution."
 msgstr ""
 
-#: infrun.c:9447
+#: infrun.c:9335
 msgid "Show mode for locking scheduler during execution."
 msgstr ""
 
-#: infrun.c:9448
+#: infrun.c:9336
 msgid ""
 "off    == no locking (threads may preempt at any time)\n"
 "on     == full locking (no thread except the current thread may run)\n"
@@ -15237,15 +15649,15 @@ msgid ""
 "execution."
 msgstr ""
 
-#: infrun.c:9460
+#: infrun.c:9348
 msgid "Set mode for resuming threads of all processes."
 msgstr ""
 
-#: infrun.c:9461
+#: infrun.c:9349
 msgid "Show mode for resuming threads of all processes."
 msgstr ""
 
-#: infrun.c:9462
+#: infrun.c:9350
 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"
@@ -15254,30 +15666,30 @@ msgid ""
 "mode (see help set scheduler-locking)."
 msgstr ""
 
-#: infrun.c:9472
+#: infrun.c:9360
 msgid "Set mode of the step operation."
 msgstr ""
 
-#: infrun.c:9473
+#: infrun.c:9361
 msgid "Show mode of the step operation."
 msgstr ""
 
-#: infrun.c:9474
+#: infrun.c:9362
 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:9483
+#: infrun.c:9371
 msgid "Set debugger's willingness to use displaced stepping."
 msgstr ""
 
-#: infrun.c:9484
+#: infrun.c:9372
 msgid "Show debugger's willingness to use displaced stepping."
 msgstr ""
 
-#: infrun.c:9485
+#: infrun.c:9373
 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"
@@ -15289,57 +15701,57 @@ msgid ""
 "use it in all-stop mode (see help set non-stop)."
 msgstr ""
 
-#: infrun.c:9497
+#: infrun.c:9385
 msgid ""
 "Set direction of execution.\n"
 "Options are 'forward' or 'reverse'."
 msgstr ""
 
-#: infrun.c:9499
+#: infrun.c:9387
 msgid "Show direction of execution (forward/reverse)."
 msgstr ""
 
-#: infrun.c:9500
+#: infrun.c:9388
 msgid "Tells gdb whether to execute forward or backward."
 msgstr ""
 
 #. Set/show detach-on-fork: user-settable mode.
-#: infrun.c:9506
+#: infrun.c:9394
 msgid "Set whether gdb will detach the child of a fork."
 msgstr ""
 
-#: infrun.c:9507
+#: infrun.c:9395
 msgid "Show whether gdb will detach the child of a fork."
 msgstr ""
 
-#: infrun.c:9508
+#: infrun.c:9396
 msgid "Tells gdb whether to detach the child of a fork."
 msgstr ""
 
-#: infrun.c:9515
+#: infrun.c:9403
 msgid "Set disabling of debuggee's virtual address space randomization."
 msgstr ""
 
-#: infrun.c:9516
+#: infrun.c:9404
 msgid "Show disabling of debuggee's virtual address space randomization."
 msgstr ""
 
-#: infrun.c:9517
+#: infrun.c:9405
 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:9541
+#: infrun.c:9429
 msgid "Set whether gdb controls the inferior in observer mode."
 msgstr ""
 
-#: infrun.c:9542
+#: infrun.c:9430
 msgid "Show whether gdb controls the inferior in observer mode."
 msgstr ""
 
-#: infrun.c:9543
+#: infrun.c:9431
 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"
@@ -15347,35 +15759,35 @@ msgid ""
 "or signalled."
 msgstr ""
 
-#: interps.c:124
+#: interps.c:118
 #, possible-c-format
 msgid "interpreter factory already registered: \"%s\"\n"
 msgstr ""
 
-#: interps.c:264
+#: interps.c:249
 #, possible-c-format
 msgid "Interpreter `%s' unrecognized"
 msgstr ""
 
-#: interps.c:417
+#: interps.c:399
 msgid "interpreter-exec command"
 msgstr ""
 
-#: interps.c:427
+#: interps.c:405
 msgid "usage: interpreter-exec <interpreter> [ <command> ... ]"
 msgstr ""
 
-#: interps.c:433
+#: interps.c:411
 #, possible-c-format
 msgid "Could not find interpreter \"%s\"."
 msgstr ""
 
-#: interps.c:444
+#: interps.c:422
 #, possible-c-format
 msgid "error in command: \"%s\"."
 msgstr ""
 
-#: interps.c:520
+#: interps.c:473
 msgid ""
 "Execute a command in an interpreter.  It takes two arguments:\n"
 "The first argument is the name of the interpreter to use.\n"
@@ -15392,99 +15804,99 @@ msgstr ""
 msgid "JIT debugging is %s.\n"
 msgstr ""
 
-#: jit.c:190
+#: jit.c:189
 #, possible-c-format
 msgid "Opening shared object %s.\n"
 msgstr ""
 
-#: jit.c:196
+#: jit.c:195
 #, possible-c-format
 msgid "Could not locate initialization function: %s."
 msgstr ""
 
-#: jit.c:200
+#: jit.c:199
 msgid "Reader not GPL compatible."
 msgstr ""
 
-#: jit.c:204
+#: jit.c:203
 msgid "Reader version does not match GDB version."
 msgstr ""
 
-#: jit.c:218
+#: jit.c:214
 msgid "No reader name provided."
 msgstr ""
 
-#: jit.c:223
+#: jit.c:218
 msgid "JIT reader already loaded.  Run jit-reader-unload first."
 msgstr ""
 
-#: jit.c:245
+#: jit.c:235
 msgid "No JIT reader loaded."
 msgstr ""
 
-#: jit.c:392
+#: jit.c:382
 msgid "Unable to read JIT descriptor from remote memory\n"
 msgstr ""
 
-#: jit.c:437
+#: jit.c:427
 msgid "Unable to read JIT code entry from remote memory!"
 msgstr ""
 
-#: jit.c:918
+#: jit.c:910
 msgid "Error opening JITed symbol file, ignoring it.\n"
 msgstr ""
 
-#: jit.c:926
+#: jit.c:918
 msgid "JITed symbol file is not an object file, ignoring it.\n"
 msgstr ""
 
-#: jit.c:934
+#: jit.c:926
 #, possible-c-format
 msgid ""
 "JITed object file architecture %s is not compatible with target architecture "
 "%s."
 msgstr ""
 
-#: jit.c:1131
+#: jit.c:1123
 #, possible-c-format
 msgid "Could not recognize DWARF regnum %d"
 msgstr ""
 
-#: jit.c:1227
+#: jit.c:1217
 msgid "Successfully unwound frame using JIT reader.\n"
 msgstr ""
 
-#: jit.c:1232
+#: jit.c:1222
 msgid "Could not unwind frame using JIT reader.\n"
 msgstr ""
 
-#: jit.c:1366
+#: jit.c:1356
 #, possible-c-format
 msgid "Unsupported JIT protocol version %ld in descriptor (expected 1)\n"
 msgstr ""
 
-#: jit.c:1461
+#: jit.c:1451
 #, possible-c-format
 msgid "Unable to find JITed code entry at address: %s\n"
 msgstr ""
 
-#: jit.c:1469
+#: jit.c:1459
 msgid "Unknown action_flag value in JIT descriptor!"
 msgstr ""
 
-#: jit.c:1523
+#: jit.c:1509
 msgid "Set JIT debugging."
 msgstr ""
 
-#: jit.c:1524
+#: jit.c:1510
 msgid "Show JIT debugging."
 msgstr ""
 
-#: jit.c:1525
+#: jit.c:1511
 msgid "When non-zero, JIT debugging is enabled."
 msgstr ""
 
-#: jit.c:1544
+#: jit.c:1530
 msgid ""
 "Load FILE as debug info reader and unwinder for JIT compiled code.\n"
 "Usage: jit-reader-load FILE\n"
@@ -15492,7 +15904,7 @@ msgid ""
 "JIT compiled code.  The file is loaded from "
 msgstr ""
 
-#: jit.c:1553
+#: jit.c:1539
 msgid ""
 "Unload the currently loaded JIT debug info reader.\n"
 "Usage: jit-reader-unload\n"
@@ -15500,65 +15912,65 @@ msgid ""
 "Do \"help jit-reader-load\" for info on loading debug info readers."
 msgstr ""
 
-#: language.c:125
+#: language.c:135
 #, possible-c-format
 msgid "The current source language is \"auto; currently %s\".\n"
 msgstr ""
 
-#: language.c:130
+#: language.c:140
 #, possible-c-format
 msgid "The current source language is \"%s\".\n"
 msgstr ""
 
-#: language.c:228
+#: language.c:242
 #, possible-c-format
 msgid "Range checking is \"auto; currently %s\".\n"
 msgstr ""
 
-#: language.c:232
+#: language.c:246
 #, possible-c-format
 msgid "Range checking is \"%s\".\n"
 msgstr ""
 
-#: language.c:236 language.c:271
+#: language.c:250 language.c:286
 msgid "the current range check setting does not match the language.\n"
 msgstr ""
 
-#: language.c:268
+#: language.c:283
 #, possible-c-format
 msgid "Unrecognized range check setting: \"%s\""
 msgstr ""
 
-#: language.c:299
+#: language.c:314
 #, possible-c-format
 msgid "Case sensitivity in name search is \"auto; currently %s\".\n"
 msgstr ""
 
-#: language.c:305
+#: language.c:320
 #, possible-c-format
 msgid "Case sensitivity in name search is \"%s\".\n"
 msgstr ""
 
-#: language.c:309 language.c:342
+#: language.c:324 language.c:357
 msgid "the current case sensitivity setting does not match the language.\n"
 msgstr ""
 
-#: language.c:395
+#: language.c:400
 #, possible-c-format
 msgid "Current language:  %s\n"
 msgstr ""
 
-#: language.c:400
+#: language.c:405
 #, possible-c-format
 msgid "Range checking:    %s\n"
 msgstr ""
 
-#: language.c:402
+#: language.c:407
 #, possible-c-format
 msgid "Case sensitivity:  %s\n"
 msgstr ""
 
-#: language.c:585
+#: language.c:564
 #, c-format
 msgid ""
 "Set the current source language.\n"
@@ -15567,302 +15979,302 @@ msgid ""
 "local or auto    Automatic setting based on source file\n"
 msgstr ""
 
-#: language.c:609
+#: language.c:588
 msgid "Show the current source language."
 msgstr ""
 
-#: language.c:722
+#: language.c:699
 msgid "Getting a string is unsupported in this language."
 msgstr ""
 
-#: language.c:736
+#: language.c:749
 msgid "Attempted to parse an expression with unknown language"
 msgstr ""
 
-#: language.c:743
+#: language.c:756
 msgid "internal error - unimplemented function unk_lang_emit_char called."
 msgstr ""
 
-#: language.c:750
+#: language.c:763
 msgid "internal error - unimplemented function unk_lang_printchar called."
 msgstr ""
 
-#: language.c:760
+#: language.c:773
 msgid "internal error - unimplemented function unk_lang_printstr called."
 msgstr ""
 
-#: language.c:769
+#: language.c:782
 msgid "internal error - unimplemented function unk_lang_print_type called."
 msgstr ""
 
-#: language.c:780
+#: language.c:793
 msgid "internal error - unimplemented function unk_lang_val_print called."
 msgstr ""
 
-#: language.c:788
+#: language.c:801
 msgid "internal error - unimplemented function unk_lang_value_print called."
 msgstr ""
 
-#: language.c:1176
+#: language.c:1146
 msgid "Set the status of the type/range checker."
 msgstr ""
 
-#: language.c:1182
+#: language.c:1152
 msgid "Show the status of the type/range checker."
 msgstr ""
 
-#: language.c:1189
+#: language.c:1159
 msgid "Set range checking.  (on/warn/off/auto)"
 msgstr ""
 
-#: language.c:1190
+#: language.c:1160
 msgid "Show range checking.  (on/warn/off/auto)"
 msgstr ""
 
-#: language.c:1196
+#: language.c:1166
 msgid "Set case sensitivity in name search.  (on/off/auto)"
 msgstr ""
 
-#: language.c:1197
+#: language.c:1167
 msgid "Show case sensitivity in name search.  (on/off/auto)"
 msgstr ""
 
-#: language.c:1198
+#: language.c:1168
 msgid "For Fortran the default is off; for other languages the default is on."
 msgstr ""
 
-#: linespec.c:594
+#: linespec.c:685
 msgid "unmatched quote"
 msgstr ""
 
-#: linespec.c:1367
+#: linespec.c:1573
 msgid ""
 "[0] cancel\n"
 "[1] all\n"
 msgstr ""
 
-#: linespec.c:1387
+#: linespec.c:1593
 msgid "canceled"
 msgstr ""
 
-#: linespec.c:1403
+#: linespec.c:1609
 #, possible-c-format
 msgid "No choice number %d.\n"
 msgstr ""
 
-#: linespec.c:1415
+#: linespec.c:1621
 #, possible-c-format
 msgid "duplicate request for %d ignored.\n"
 msgstr ""
 
-#: linespec.c:1452
+#: linespec.c:1658
 #, possible-c-format
 msgid ""
 "Undefined convenience variable or function \"%s\" not defined in \"%s\"."
 msgstr ""
 
-#: linespec.c:1456
+#: linespec.c:1662
 #, possible-c-format
 msgid "Undefined convenience variable or function \"%s\" not defined."
 msgstr ""
 
-#: linespec.c:1463
+#: linespec.c:1669
 #, possible-c-format
 msgid "Function \"%s\" not defined in \"%s\"."
 msgstr ""
 
-#: linespec.c:1467
+#: linespec.c:1673
 #, possible-c-format
 msgid "Function \"%s\" not defined."
 msgstr ""
 
-#: linespec.c:1493
+#: linespec.c:1699
 #, possible-c-format
 msgid "malformed linespec error: unexpected %s, \"%s\""
 msgstr ""
 
-#: linespec.c:1498
+#: linespec.c:1704
 #, possible-c-format
 msgid "malformed linespec error: unexpected %s"
 msgstr ""
 
-#: linespec.c:1509
+#: linespec.c:1715
 #, possible-c-format
 msgid "No label \"%s\" defined in function \"%s\"."
 msgstr ""
 
-#: linespec.c:1513
+#: linespec.c:1719
 #, possible-c-format
 msgid "No label \"%s\" defined in current function."
 msgstr ""
 
-#: linespec.c:1522
+#: linespec.c:1728
 #, possible-c-format
 msgid "No source file named %s."
 msgstr ""
 
-#: linespec.c:1545
+#: linespec.c:1762
 #, possible-c-format
 msgid "malformed line offset: \"%s\""
 msgstr ""
 
-#: linespec.c:1931
+#: linespec.c:2263
 #, possible-c-format
 msgid "No line %d in the current file."
 msgstr ""
 
-#: linespec.c:2636 linespec.c:2661
+#: linespec.c:3374 linespec.c:3397
 msgid "Empty line specification."
 msgstr ""
 
-#: linespec.c:2648 linespec.c:2674
+#: linespec.c:3386 linespec.c:3410
 #, possible-c-format
 msgid "Junk at end of line specification: %s"
 msgstr ""
 
 #. The error message doesn't really matter, because this case
 #. should only hit during breakpoint reset.
-#: linespec.c:2711
+#: linespec.c:3447
 msgid "cannot evaluate expressions while program space is in startup"
 msgstr ""
 
 #. Throw an NOT_FOUND_ERROR.  This will be caught by the caller
 #. and other attempts to locate the symbol will be made.
-#: linespec.c:3094
+#: linespec.c:3841
 msgid "see caller, this text doesn't matter"
 msgstr ""
 
-#: linespec.c:3520
+#: linespec.c:4296
 msgid "History values used in line specs must have integer values."
 msgstr ""
 
-#: linespec.c:3543
+#: linespec.c:4319
 msgid "Convenience variables used in line specs must have integer values."
 msgstr ""
 
-#: linux-fork.c:420 linux-fork.c:566
+#: linux-fork.c:417 linux-fork.c:563
 #, possible-c-format
 msgid "Unable to detach %s"
 msgstr ""
 
-#: linux-fork.c:515
+#: linux-fork.c:512
 msgid "Requires argument (checkpoint id to delete)"
 msgstr ""
 
-#: linux-fork.c:519 linux-fork.c:559
+#: linux-fork.c:516 linux-fork.c:556
 #, possible-c-format
 msgid "No such checkpoint id, %s"
 msgstr ""
 
-#: linux-fork.c:522
+#: linux-fork.c:519
 msgid "Please switch to another checkpoint before deleting the current one"
 msgstr ""
 
-#: linux-fork.c:526
+#: linux-fork.c:523
 #, possible-c-format
 msgid "Unable to kill pid %s"
 msgstr ""
 
-#: linux-fork.c:533
+#: linux-fork.c:530
 #, possible-c-format
 msgid "Killed %s\n"
 msgstr ""
 
-#: linux-fork.c:545
+#: linux-fork.c:542
 #, possible-c-format
 msgid "Unable to wait pid %s"
 msgstr ""
 
-#: linux-fork.c:555
+#: linux-fork.c:552
 msgid "Requires argument (checkpoint id to detach)"
 msgstr ""
 
-#: linux-fork.c:562
+#: linux-fork.c:559
 msgid "Please switch to another checkpoint before detaching the current one"
 msgstr ""
 
-#: linux-fork.c:569
+#: linux-fork.c:566
 #, possible-c-format
 msgid "Detached %s\n"
 msgstr ""
 
-#: linux-fork.c:607
+#: linux-fork.c:604
 msgid " (main process)"
 msgstr ""
 
-#: linux-fork.c:608
+#: linux-fork.c:605
 msgid " at "
 msgstr ""
 
-#: linux-fork.c:613
+#: linux-fork.c:610
 #, possible-c-format
 msgid ", file %s"
 msgstr ""
 
-#: linux-fork.c:616
+#: linux-fork.c:613
 #, possible-c-format
 msgid ", line %d"
 msgstr ""
 
-#: linux-fork.c:631
+#: linux-fork.c:628
 #, possible-c-format
 msgid "No checkpoint number %d.\n"
 msgstr ""
 
-#: linux-fork.c:633
+#: linux-fork.c:630
 msgid "No checkpoints.\n"
 msgstr ""
 
-#: linux-fork.c:690
+#: linux-fork.c:687
 msgid "checkpoint: can't checkpoint multiple threads."
 msgstr ""
 
-#: linux-fork.c:700
+#: linux-fork.c:697
 msgid "checkpoint: can't find fork function in inferior."
 msgstr ""
 
 #. Probably can't happen.
-#: linux-fork.c:714
+#: linux-fork.c:711
 msgid "checkpoint: call_function_by_hand returned null."
 msgstr ""
 
-#: linux-fork.c:725
+#: linux-fork.c:722
 #, possible-c-format
 msgid "checkpoint %d: fork returned pid %ld.\n"
 msgstr ""
 
-#: linux-fork.c:732
+#: linux-fork.c:729
 #, possible-c-format
 msgid "   gdb says parent = %ld.\n"
 msgstr ""
 
-#: linux-fork.c:738
+#: linux-fork.c:735
 msgid "Failed to find new fork"
 msgstr ""
 
-#: linux-fork.c:759
+#: linux-fork.c:756
 #, possible-c-format
 msgid "Switching to %s\n"
 msgstr ""
 
-#: linux-fork.c:772
+#: linux-fork.c:769
 msgid "Requires argument (checkpoint id to restart)"
 msgstr ""
 
-#: linux-fork.c:775
+#: linux-fork.c:772
 #, possible-c-format
 msgid "Not found: checkpoint id %s"
 msgstr ""
 
 #. Checkpoint command: create a fork of the inferior process
 #. and set it aside for later debugging.
-#: linux-fork.c:788
+#: linux-fork.c:785
 msgid "Fork a duplicate process (experimental)."
 msgstr ""
 
 #. Restart command: restore the context of a specified checkpoint
 #. process.
-#: linux-fork.c:794
+#: linux-fork.c:791
 msgid ""
 "restart <n>: restore program context from a checkpoint.\n"
 "Argument 'n' is checkpoint ID, as displayed by 'info checkpoints'."
@@ -15870,89 +16282,89 @@ msgstr ""
 
 #. Delete checkpoint command: kill the process and remove it from
 #. the fork list.
-#: linux-fork.c:801
+#: linux-fork.c:798
 msgid "Delete a checkpoint (experimental)."
 msgstr ""
 
 #. Detach checkpoint command: release the process to run independently,
 #. and remove it from the fork list.
-#: linux-fork.c:808
+#: linux-fork.c:805
 msgid "Detach from a checkpoint (experimental)."
 msgstr ""
 
-#: linux-fork.c:816
+#: linux-fork.c:813
 msgid "IDs of currently known checkpoints."
 msgstr ""
 
-#: linux-nat.c:230
+#: linux-nat.c:233
 #, possible-c-format
 msgid "Debugging of GNU/Linux lwp module is %s.\n"
 msgstr ""
 
-#: linux-nat.c:520
+#: linux-nat.c:524
 msgid "Couldn't do single step"
 msgstr ""
 
-#: linux-nat.c:522
+#: linux-nat.c:526
 msgid "Couldn't wait vfork process"
 msgstr ""
 
-#: linux-nat.c:1258
+#: linux-nat.c:1266
 msgid "Unable to attach: program exited normally."
 msgstr ""
 
-#: linux-nat.c:1260
+#: linux-nat.c:1268
 #, possible-c-format
 msgid "Unable to attach: program exited with code %d."
 msgstr ""
 
-#: linux-nat.c:1271
+#: linux-nat.c:1279
 #, possible-c-format
 msgid "Unable to attach: program terminated with signal %s, %s."
 msgstr ""
 
-#: linux-nat.c:1278
+#: linux-nat.c:1286
 #, possible-c-format
 msgid "unexpected status %d for PID %ld"
 msgstr ""
 
-#: linux-nat.c:2005
+#: linux-nat.c:2013
 msgid "waiting for new child"
 msgstr ""
 
-#: linux-nat.c:2008
+#: linux-nat.c:2016
 #, possible-c-format
 msgid "wait returned unexpected PID %d"
 msgstr ""
 
-#: linux-nat.c:2011
+#: linux-nat.c:2019
 #, possible-c-format
 msgid "wait returned unexpected status 0x%x"
 msgstr ""
 
-#: linux-nat.c:4153 linux-nat.c:4166
+#: linux-nat.c:4157 linux-nat.c:4170
 #, possible-c-format
 msgid "Could not parse signal set: %s"
 msgstr ""
 
-#: linux-nat.c:4200
+#: linux-nat.c:4202
 #, possible-c-format
 msgid "Could not open %s"
 msgstr ""
 
-#: linux-nat.c:4972
+#: linux-nat.c:4979
 msgid "Set debugging of GNU/Linux lwp module."
 msgstr ""
 
-#: linux-nat.c:4973
+#: linux-nat.c:4980
 msgid "Show debugging of GNU/Linux lwp module."
 msgstr ""
 
-#: linux-nat.c:4981
+#: linux-nat.c:4988
 msgid "Set debugging of GNU/Linux namespaces module."
 msgstr ""
 
-#: linux-nat.c:4982
+#: linux-nat.c:4989
 msgid "Show debugging of GNU/Linux namespaces module."
 msgstr ""
 
@@ -16005,299 +16417,305 @@ msgid ""
 "Do you want to stop the program?"
 msgstr ""
 
-#: linux-record.c:2033 ppc-linux-tdep.c:814
+#: linux-record.c:2033 ppc-linux-tdep.c:804
 #, possible-c-format
 msgid "Process record and replay target doesn't support syscall number %d\n"
 msgstr ""
 
-#: linux-tdep.c:526
+#: linux-tdep.c:514
 msgid "Could not compile regex to match /dev/zero filename"
 msgstr ""
 
-#: linux-tdep.c:534
+#: linux-tdep.c:522
 msgid "Could not compile regex to match shmem filenames"
 msgstr ""
 
-#: linux-tdep.c:550
+#: linux-tdep.c:538
 msgid "Could not compile regex to match '<file> (deleted)'"
 msgstr ""
 
-#: linux-tdep.c:733 procfs.c:5141
+#: linux-tdep.c:742 procfs.c:3650
 msgid "No current process: you must name one."
 msgstr ""
 
-#: linux-tdep.c:735
+#: linux-tdep.c:744
 msgid "Can't determine the current process's PID: you must name one."
 msgstr ""
 
-#: linux-tdep.c:742
+#: linux-tdep.c:751
 #, possible-c-format
 msgid "Too many parameters: %s"
 msgstr ""
 
-#: linux-tdep.c:744
+#: linux-tdep.c:753
 #, possible-c-format
 msgid "process %ld\n"
 msgstr ""
 
-#: linux-tdep.c:756 linux-tdep.c:843 linux-tdep.c:856 linux-tdep.c:993
-#: linux-tdep.c:2366 nat/linux-procfs.c:41 nat/linux-procfs.c:140
+#: linux-tdep.c:762 linux-tdep.c:849 linux-tdep.c:859 linux-tdep.c:995
+#: linux-tdep.c:2331 nat/linux-procfs.c:40 nat/linux-procfs.c:137
+#: sparc64-tdep.c:335
 #, possible-c-format
 msgid "unable to open /proc file '%s'"
 msgstr ""
 
-#: linux-tdep.c:769 linux-tdep.c:782
+#: linux-tdep.c:775 linux-tdep.c:788
 #, possible-c-format
 msgid "unable to read link '%s'"
 msgstr ""
 
 #. No output for summary mode.
-#: linux-tdep.c:793 linux-tdep.c:1046 procfs.c:5069
+#: linux-tdep.c:799 linux-tdep.c:1047 procfs.c:3584
 msgid ""
 "Mapped address spaces:\n"
 "\n"
 msgstr ""
 
-#: linux-tdep.c:867
+#: linux-tdep.c:870
 #, possible-c-format
 msgid "Process: %s\n"
 msgstr ""
 
-#: linux-tdep.c:886
+#: linux-tdep.c:889
 #, possible-c-format
 msgid "State: %c\n"
 msgstr ""
 
-#: linux-tdep.c:889
+#: linux-tdep.c:892
 #, possible-c-format
 msgid "Parent process: %s\n"
 msgstr ""
 
-#: linux-tdep.c:892
+#: linux-tdep.c:895
 #, possible-c-format
 msgid "Process group: %s\n"
 msgstr ""
 
-#: linux-tdep.c:895
+#: linux-tdep.c:898
 #, possible-c-format
 msgid "Session id: %s\n"
 msgstr ""
 
-#: linux-tdep.c:898
+#: linux-tdep.c:901
 #, possible-c-format
 msgid "TTY: %s\n"
 msgstr ""
 
-#: linux-tdep.c:901
+#: linux-tdep.c:904
 #, possible-c-format
 msgid "TTY owner process group: %s\n"
 msgstr ""
 
-#: linux-tdep.c:905
+#: linux-tdep.c:908
 #, possible-c-format
 msgid "Flags: %s\n"
 msgstr ""
 
-#: linux-tdep.c:908
+#: linux-tdep.c:911
 #, possible-c-format
 msgid "Minor faults (no memory page): %s\n"
 msgstr ""
 
-#: linux-tdep.c:911
+#: linux-tdep.c:914
 #, possible-c-format
 msgid "Minor faults, children: %s\n"
 msgstr ""
 
-#: linux-tdep.c:914
+#: linux-tdep.c:917
 #, possible-c-format
 msgid "Major faults (memory page faults): %s\n"
 msgstr ""
 
-#: linux-tdep.c:917
+#: linux-tdep.c:920
 #, possible-c-format
 msgid "Major faults, children: %s\n"
 msgstr ""
 
-#: linux-tdep.c:920
+#: linux-tdep.c:923
 #, possible-c-format
 msgid "utime: %s\n"
 msgstr ""
 
-#: linux-tdep.c:923
+#: linux-tdep.c:926
 #, possible-c-format
 msgid "stime: %s\n"
 msgstr ""
 
-#: linux-tdep.c:926
+#: linux-tdep.c:929
 #, possible-c-format
 msgid "utime, children: %s\n"
 msgstr ""
 
-#: linux-tdep.c:929
+#: linux-tdep.c:932
 #, possible-c-format
 msgid "stime, children: %s\n"
 msgstr ""
 
-#: linux-tdep.c:932
+#: linux-tdep.c:935
 #, possible-c-format
 msgid "jiffies remaining in current time slice: %s\n"
 msgstr ""
 
-#: linux-tdep.c:936
+#: linux-tdep.c:939
 #, possible-c-format
 msgid "'nice' value: %s\n"
 msgstr ""
 
-#: linux-tdep.c:939
+#: linux-tdep.c:942
 #, possible-c-format
 msgid "jiffies until next timeout: %s\n"
 msgstr ""
 
-#: linux-tdep.c:942
+#: linux-tdep.c:945
 #, possible-c-format
 msgid "jiffies until next SIGALRM: %s\n"
 msgstr ""
 
-#: linux-tdep.c:945
+#: linux-tdep.c:948
 #, possible-c-format
 msgid "start time (jiffies since system boot): %s\n"
 msgstr ""
 
-#: linux-tdep.c:949
+#: linux-tdep.c:952
 #, possible-c-format
 msgid "Virtual memory size: %s\n"
 msgstr ""
 
-#: linux-tdep.c:952
+#: linux-tdep.c:955
 #, possible-c-format
 msgid "Resident set size: %s\n"
 msgstr ""
 
-#: linux-tdep.c:955
+#: linux-tdep.c:958
 #, possible-c-format
 msgid "rlim: %s\n"
 msgstr ""
 
-#: linux-tdep.c:958
+#: linux-tdep.c:961
 #, possible-c-format
 msgid "Start of text: %s\n"
 msgstr ""
 
-#: linux-tdep.c:961
+#: linux-tdep.c:964
 #, possible-c-format
 msgid "End of text: %s\n"
 msgstr ""
 
-#: linux-tdep.c:964
+#: linux-tdep.c:967
 #, possible-c-format
 msgid "Start of stack: %s\n"
 msgstr ""
 
-#: linux-tdep.c:969
+#: linux-tdep.c:972
 #, possible-c-format
 msgid "Kernel stack pointer: %s\n"
 msgstr ""
 
-#: linux-tdep.c:972
+#: linux-tdep.c:975
 #, possible-c-format
 msgid "Kernel instr pointer: %s\n"
 msgstr ""
 
-#: linux-tdep.c:975
+#: linux-tdep.c:978
 #, possible-c-format
 msgid "Pending signals bitmap: %s\n"
 msgstr ""
 
-#: linux-tdep.c:978
+#: linux-tdep.c:981
 #, possible-c-format
 msgid "Blocked signals bitmap: %s\n"
 msgstr ""
 
-#: linux-tdep.c:981
+#: linux-tdep.c:984
 #, possible-c-format
 msgid "Ignored signals bitmap: %s\n"
 msgstr ""
 
-#: linux-tdep.c:984
+#: linux-tdep.c:987
 #, possible-c-format
 msgid "Catched signals bitmap: %s\n"
 msgstr ""
 
-#: linux-tdep.c:987
+#: linux-tdep.c:990
 #, possible-c-format
 msgid "wchan (system call): %s\n"
 msgstr ""
 
-#: linux-tdep.c:1015
+#: linux-tdep.c:1016
 msgid "unable to find mappings in core file"
 msgstr ""
 
-#: linux-tdep.c:1024
+#: linux-tdep.c:1025
 msgid "malformed core note - too short for header"
 msgstr ""
 
-#: linux-tdep.c:1029
+#: linux-tdep.c:1030
 msgid "could not get core note contents"
 msgstr ""
 
-#: linux-tdep.c:1035
+#: linux-tdep.c:1036
 msgid "malformed note - does not end with \\0"
 msgstr ""
 
-#: linux-tdep.c:1044
+#: linux-tdep.c:1045
 msgid "malformed note - too short for supplied file count"
 msgstr ""
 
-#: linux-tdep.c:1068
+#: linux-tdep.c:1069
 msgid "malformed note - filenames end too early"
 msgstr ""
 
-#: linux-tdep.c:1117
+#: linux-tdep.c:1116
 msgid "unable to find command name in core file"
 msgstr ""
 
-#: linux-tdep.c:1124
+#: linux-tdep.c:1123
 msgid "unable to handle request"
 msgstr ""
 
-#: linux-tdep.c:1242
+#: linux-tdep.c:1259
 #, possible-c-format
 msgid "Error parsing {s,}maps file '%s'"
 msgstr ""
 
-#: linux-tdep.c:1262
+#: linux-tdep.c:1279
 #, possible-c-format
 msgid "Error parsing {s,}maps file '%s' number"
 msgstr ""
 
-#: linux-tdep.c:2435
+#: linux-tdep.c:2400
 #, possible-c-format
 msgid "Failed inferior mmap call for %s bytes, errno is changed."
 msgstr ""
 
-#: linux-tdep.c:2464
+#: linux-tdep.c:2429
 #, possible-c-format
 msgid "Failed inferior munmap call at %s for %s bytes, errno is changed."
 msgstr ""
 
-#: linux-tdep.c:2485
+#: linux-tdep.c:2450
 msgid "Cannot find AT_ENTRY auxiliary vector entry."
 msgstr ""
 
-#: linux-tdep.c:2508
+#: linux-tdep.c:2473
 #, possible-c-format
 msgid "Use of /proc/PID/coredump_filter file to generate corefiles is %s.\n"
 msgstr ""
 
-#: linux-tdep.c:2552
+#: linux-tdep.c:2484
+#, possible-c-format
+msgid "Dumping of mappings marked with the VM_DONTDUMP flag is %s.\n"
+msgstr ""
+
+#: linux-tdep.c:2526
 msgid "Set whether gcore should consider /proc/PID/coredump_filter."
 msgstr ""
 
-#: linux-tdep.c:2554
+#: linux-tdep.c:2528
 msgid "Show whether gcore should consider /proc/PID/coredump_filter."
 msgstr ""
 
-#: linux-tdep.c:2556
+#: linux-tdep.c:2530
 msgid ""
 "Use this command to set whether gcore should consider the contents\n"
 "of /proc/PID/coredump_filter when generating the corefile.  For more "
@@ -16305,6 +16723,25 @@ msgid ""
 "about this file, refer to the manpage of core(5)."
 msgstr ""
 
+#: linux-tdep.c:2538
+msgid ""
+"Set whether gcore should dump mappings marked with the VM_DONTDUMP flag."
+msgstr ""
+
+#: linux-tdep.c:2540
+msgid ""
+"Show whether gcore should dump mappings marked with the VM_DONTDUMP flag."
+msgstr ""
+
+#: linux-tdep.c:2542
+msgid ""
+"Use this command to set whether gcore should dump mappings marked with the\n"
+"VM_DONTDUMP flag (\"dd\" in /proc/PID/smaps) when generating the corefile.  "
+"For\n"
+"more information about this file, refer to the manpage of proc(5) and core"
+"(5)."
+msgstr ""
+
 #: linux-thread-db.c:89
 #, possible-c-format
 msgid "Auto-loading of inferior specific libthread_db is %s.\n"
@@ -16315,168 +16752,173 @@ msgstr ""
 msgid "libthread-db debugging is %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:357
+#: linux-thread-db.c:362
 #, possible-c-format
 msgid "Cannot find user-level thread for LWP %ld: %s"
 msgstr ""
 
-#: linux-thread-db.c:362
+#: linux-thread-db.c:367
 #, possible-c-format
 msgid "thread_get_info_callback: cannot get thread info: %s"
 msgstr ""
 
-#: linux-thread-db.c:396
+#: linux-thread-db.c:401
 #, possible-c-format
 msgid "Symbol \"%s\" not found in libthread_db: %s"
 msgstr ""
 
-#: linux-thread-db.c:472
+#: linux-thread-db.c:477
 msgid "Warning: couldn't activate thread debugging using libthread_db: "
 msgstr ""
 
-#: linux-thread-db.c:528
+#: linux-thread-db.c:533
 #, possible-c-format
 msgid "Cannot initialize libthread_db: %s"
 msgstr ""
 
-#: linux-thread-db.c:543
+#: linux-thread-db.c:548
 #, possible-c-format
 msgid "td_ta_new failed: %s\n"
 msgstr ""
 
-#: linux-thread-db.c:557
+#: linux-thread-db.c:562
 #, possible-c-format
 msgid "td_ta_new failed: %s"
 msgstr ""
 
-#: linux-thread-db.c:610 sol-thread.c:635
+#: linux-thread-db.c:615 sol-thread.c:623
 msgid "[Thread debugging using libthread_db enabled]\n"
 msgstr ""
 
-#: linux-thread-db.c:626
+#: linux-thread-db.c:631
 #, possible-c-format
 msgid "Using host libthread_db library \"%s\".\n"
 msgstr ""
 
-#: linux-thread-db.c:649
+#: linux-thread-db.c:654
 #, possible-c-format
 msgid "Trying host libthread_db library: %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:659
+#: linux-thread-db.c:664
 #, possible-c-format
 msgid "open failed: %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:664
+#: linux-thread-db.c:669
 #, possible-c-format
 msgid ""
 "auto-load: Loading libthread-db library \"%s\" from explicit directory.\n"
 msgstr ""
 
-#: linux-thread-db.c:675
+#: linux-thread-db.c:680
 #, possible-c-format
 msgid "dlopen failed: %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:689
+#: linux-thread-db.c:694
 #, possible-c-format
 msgid "Host %s resolved to: %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:724
+#: linux-thread-db.c:729
 #, possible-c-format
 msgid "Expected absolute pathname for libpthread in the inferior, but got %s."
 msgstr ""
 
-#: linux-thread-db.c:884
+#: linux-thread-db.c:889
 #, possible-c-format
 msgid "thread_db_load_search returning %d\n"
 msgstr ""
 
-#: linux-thread-db.c:931
+#: linux-thread-db.c:936
 msgid ""
 "Unable to find libthread_db matching inferior's thread library, thread "
 "debugging will not be available."
 msgstr ""
 
-#: linux-thread-db.c:1021
+#: linux-thread-db.c:1026
 msgid ""
 "Target and debugger are in different PID namespaces; thread lists and other "
 "data are likely unreliable.  Connect to gdbserver inside the container."
 msgstr ""
 
-#: linux-thread-db.c:1184
+#: linux-thread-db.c:1183
 #, possible-c-format
 msgid "find_new_threads_callback: cannot get thread info: %s"
 msgstr ""
 
-#: linux-thread-db.c:1276
+#: linux-thread-db.c:1275
 #, possible-c-format
 msgid "Found %d new threads in iteration %d.\n"
 msgstr ""
 
-#: linux-thread-db.c:1319
+#: linux-thread-db.c:1318
 #, possible-c-format
 msgid "Cannot find new threads: %s"
 msgstr ""
 
-#: linux-thread-db.c:1446
+#: linux-thread-db.c:1430
+#, possible-c-format
+msgid "Thread handle size mismatch: %d vs %zu (from libthread_db)"
+msgstr ""
+
+#: linux-thread-db.c:1478
 msgid "No TLS library support"
 msgstr ""
 
-#: linux-thread-db.c:1461
+#: linux-thread-db.c:1493
 msgid "TLS load module not found"
 msgstr ""
 
-#: linux-thread-db.c:1481
+#: linux-thread-db.c:1512
 msgid "TLS not allocated yet"
 msgstr ""
 
-#: linux-thread-db.c:1565
+#: linux-thread-db.c:1596
 msgid "'info auto-load libthread-db' does not accept any parameters"
 msgstr ""
 
-#: linux-thread-db.c:1670
+#: linux-thread-db.c:1704
 msgid "No auto-loaded libthread-db.\n"
 msgstr ""
 
-#: linux-thread-db.c:1714
+#: linux-thread-db.c:1746
 msgid "Set search path for libthread_db."
 msgstr ""
 
-#: linux-thread-db.c:1715
+#: linux-thread-db.c:1747
 msgid "Show the current search path or libthread_db."
 msgstr ""
 
-#: linux-thread-db.c:1716
+#: linux-thread-db.c:1748
 msgid ""
 "This path is used to search for libthread_db to be loaded into gdb itself.\n"
 "Its value is a colon (':') separate list of directories to search.\n"
 "Setting the search path to an empty list resets it to its default value."
 msgstr ""
 
-#: linux-thread-db.c:1726
+#: linux-thread-db.c:1758
 msgid "Set libthread-db debugging."
 msgstr ""
 
-#: linux-thread-db.c:1727
+#: linux-thread-db.c:1759
 msgid "Show libthread-db debugging."
 msgstr ""
 
-#: linux-thread-db.c:1728
+#: linux-thread-db.c:1760
 msgid "When non-zero, libthread-db debugging is enabled."
 msgstr ""
 
-#: linux-thread-db.c:1735
+#: linux-thread-db.c:1767
 msgid "Enable or disable auto-loading of inferior specific libthread_db."
 msgstr ""
 
-#: linux-thread-db.c:1736
+#: linux-thread-db.c:1768
 msgid "Show whether auto-loading inferior specific libthread_db is enabled."
 msgstr ""
 
-#: linux-thread-db.c:1737
+#: linux-thread-db.c:1769
 msgid ""
 "If enabled, libthread_db will be searched in 'set libthread-db-search-path'\n"
 "locations to load libthread_db compatible with the inferior.\n"
@@ -16484,7 +16926,7 @@ msgid ""
 "This options has security implications for untrusted inferiors."
 msgstr ""
 
-#: linux-thread-db.c:1747
+#: linux-thread-db.c:1779
 msgid ""
 "Print the list of loaded inferior specific libthread_db.\n"
 "Usage: info auto-load libthread-db"
@@ -16494,22 +16936,22 @@ msgstr ""
 msgid "lm32_store_return_value: type length too large."
 msgstr ""
 
-#: location.c:443
+#: location.c:495 location.c:653
 #, possible-c-format
 msgid "Unmatched quote, %s."
 msgstr ""
 
-#: location.c:558
+#: location.c:838
 #, possible-c-format
 msgid "invalid explicit location argument, \"%s\""
 msgstr ""
 
-#: location.c:574
+#: location.c:856
 #, possible-c-format
 msgid "missing argument for \"%s\""
 msgstr ""
 
-#: location.c:585
+#: location.c:867
 msgid "Source filename requires function, label, or line offset."
 msgstr ""
 
@@ -16521,49 +16963,49 @@ msgstr ""
 msgid "No symbol table is loaded.  Use the \"symbol-file\" command."
 msgstr ""
 
-#: m2-exp.y:658
+#: m2-exp.y:662
 msgid "Floating point numbers must be base 10."
 msgstr ""
 
-#: m2-exp.y:660
+#: m2-exp.y:664
 #, possible-c-format
 msgid "Invalid digit '%c' in number."
 msgstr ""
 
-#: m2-exp.y:668
+#: m2-exp.y:672
 #, possible-c-format
 msgid "Invalid digit '%c' in octal number."
 msgstr ""
 
-#: m2-exp.y:709
+#: m2-exp.y:713
 msgid "Overflow on numeric constant -- number too large."
 msgstr ""
 
-#: m2-exp.y:871
+#: m2-exp.y:875
 msgid "Unterminated string or character constant."
 msgstr ""
 
-#: m2-exp.y:1005
+#: m2-exp.y:1009
 msgid "internal:  Undefined class in m2lex()"
 msgstr ""
 
-#: m2-exp.y:1009
+#: m2-exp.y:1013
 msgid "internal:  Unforseen case in m2lex()"
 msgstr ""
 
-#: m2-exp.y:1012
+#: m2-exp.y:1016
 msgid "unhandled token in m2lex()"
 msgstr ""
 
-#: m2-lang.c:207
+#: m2-lang.c:206
 msgid "unbounded structure missing _m2_high field"
 msgstr ""
 
-#: m2-lang.c:235
+#: m2-lang.c:234
 msgid "internal error: unbounded array structure is unknown"
 msgstr ""
 
-#: m2-lang.c:241
+#: m2-lang.c:240
 msgid "unbounded structure missing _m2_contents field"
 msgstr ""
 
@@ -16584,21 +17026,21 @@ msgstr ""
 msgid "is unknown"
 msgstr ""
 
-#: m2-typeprint.c:422
+#: m2-typeprint.c:423
 msgid "long_set failed to find discrete bounds for its subtype"
 msgstr ""
 
-#: m2-typeprint.c:425 m2-valprint.c:64
+#: m2-typeprint.c:426 m2-valprint.c:64
 msgid "expecting long_set"
 msgstr ""
 
 #. i18n: Do not translate the "SET OF" part!
-#: m2-typeprint.c:478
+#: m2-typeprint.c:479
 msgid "SET OF <unknown>"
 msgstr ""
 
 #. i18n: Do not translate "CASE" and "OF".
-#: m2-typeprint.c:565
+#: m2-typeprint.c:566
 msgid "CASE <variant> OF\n"
 msgstr ""
 
@@ -16613,34 +17055,34 @@ msgstr ""
 #. This happens (without TYPE_STUB set) on systems which don't use
 #. dbx xrefs (NO_DBX_XREFS in gcc) if a file has a "struct foo *bar"
 #. and no complete type for struct foo in that file.
-#: m2-valprint.c:411 valprint.c:1032 valprint.c:1092
+#: m2-valprint.c:410 valprint.c:977 valprint.c:1037
 msgid "<incomplete type>"
 msgstr ""
 
-#: m2-valprint.c:428
+#: m2-valprint.c:427
 msgid "<error value>"
 msgstr ""
 
-#: m32c-tdep.c:2239
+#: m32c-tdep.c:2236
 msgid ""
 "The return value is stored in memory at 'mem0', but GDB cannot find\n"
 "its address."
 msgstr ""
 
-#: m32c-tdep.c:2271
+#: m32c-tdep.c:2268
 msgid ""
 "The return value is stored in memory at 'mem0', but GDB cannot find\n"
 " its address."
 msgstr ""
 
-#: m32c-tdep.c:2451
+#: m32c-tdep.c:2448
 #, possible-c-format
 msgid ""
 "Cannot convert code address %s to function pointer:\n"
 "couldn't find a symbol at that address, to find trampoline."
 msgstr ""
 
-#: m32c-tdep.c:2485
+#: m32c-tdep.c:2482
 #, possible-c-format
 msgid ""
 "Cannot convert code address %s to function pointer:\n"
@@ -16660,16 +17102,16 @@ msgstr ""
 msgid "return of value > 4 is not supported."
 msgstr ""
 
-#: m68hc11-tdep.c:1309 sh64-tdep.c:1275 sh-tdep.c:1332
+#: m68hc11-tdep.c:1309 sh64-tdep.c:1285 sh-tdep.c:1331
 msgid "bad size for return value"
 msgstr ""
 
-#: m68k-tdep.c:172
+#: m68k-tdep.c:174
 #, possible-c-format
 msgid "m68k_register_name: illegal register number %d"
 msgstr ""
 
-#: m68k-tdep.c:1022
+#: m68k-tdep.c:1018
 msgid "m68k_get_longjmp_target: not implemented"
 msgstr ""
 
@@ -16726,7 +17168,7 @@ msgstr ""
 msgid "Loading debugging symbols from oso: %s\n"
 msgstr ""
 
-#: machoread.c:453 symfile.c:1750
+#: machoread.c:453 symfile.c:1761
 #, possible-c-format
 msgid "`%s': can't read symbols: %s."
 msgstr ""
@@ -16776,7 +17218,7 @@ msgstr ""
 msgid "Could not find specified archive member for OSO name \"%s\""
 msgstr ""
 
-#: machoread.c:734 symfile.c:1743
+#: machoread.c:734 symfile.c:1754
 #, possible-c-format
 msgid "`%s': can't open to read symbols: %s."
 msgstr ""
@@ -16810,11 +17252,11 @@ msgstr ""
 msgid "Relocate section '%s' of %s\n"
 msgstr ""
 
-#: machoread.c:1007
+#: machoread.c:1004
 msgid "Set if printing Mach-O symbols processing."
 msgstr ""
 
-#: machoread.c:1008
+#: machoread.c:1005
 msgid "Show if printing Mach-O symbols processing."
 msgstr ""
 
@@ -16830,53 +17272,53 @@ msgid ""
 "you want to expand."
 msgstr ""
 
-#: macrocmd.c:217
+#: macrocmd.c:215
 #, possible-c-format
 msgid ""
-"Unrecognized option '%s' to info macro command.  Try \"help info macro\"."
+"Unrecognized option '%.*s' to info macro command.  Try \"help info macro\"."
 msgstr ""
 
-#: macrocmd.c:227
+#: macrocmd.c:226
 msgid ""
 "You must follow the `info macro' command with the name of the macro\n"
 "whose definition you want to see."
 msgstr ""
 
-#: macrocmd.c:368
+#: macrocmd.c:367
 msgid "usage: macro define NAME[(ARGUMENT-LIST)] [REPLACEMENT-LIST]"
 msgstr ""
 
-#: macrocmd.c:378 macrocmd.c:453
+#: macrocmd.c:377 macrocmd.c:452
 msgid "Invalid macro name."
 msgstr ""
 
-#: macrocmd.c:406
+#: macrocmd.c:405
 msgid "Macro is missing an argument."
 msgstr ""
 
-#: macrocmd.c:412
+#: macrocmd.c:411
 msgid "Two macro arguments with identical names."
 msgstr ""
 
-#: macrocmd.c:422
+#: macrocmd.c:421
 msgid "',' or ')' expected at end of macro arguments."
 msgstr ""
 
-#: macrocmd.c:448
+#: macrocmd.c:447
 msgid "usage: macro undef NAME"
 msgstr ""
 
-#: macrocmd.c:495
+#: macrocmd.c:491
 msgid "Prefix for commands dealing with C preprocessor macros."
 msgstr ""
 
-#: macrocmd.c:498
+#: macrocmd.c:494
 msgid ""
 "Fully expand any C/C++ preprocessor macro invocations in EXPRESSION.\n"
 "Show the expanded expression."
 msgstr ""
 
-#: macrocmd.c:503
+#: macrocmd.c:499
 msgid ""
 "Expand C/C++ preprocessor macro invocations appearing directly in "
 "EXPRESSION.\n"
@@ -16891,7 +17333,7 @@ msgid ""
 "expression work together to yield a pre-processed expression."
 msgstr ""
 
-#: macrocmd.c:518
+#: macrocmd.c:514
 msgid ""
 "Show the definition of MACRO, and it's source location.\n"
 "Usage: info macro [-a|-all] [--] MACRO\n"
@@ -16901,14 +17343,14 @@ msgid ""
 "  --           Specify the end of arguments and the beginning of the MACRO."
 msgstr ""
 
-#: macrocmd.c:526
+#: macrocmd.c:522
 msgid ""
 "Show the definitions of all macros at LINESPEC, or the current source "
 "location.\n"
 "Usage: info macros [LINESPEC]"
 msgstr ""
 
-#: macrocmd.c:530
+#: macrocmd.c:526
 msgid ""
 "Define a new C/C++ preprocessor macro.\n"
 "The GDB command `macro define DEFINITION' is equivalent to placing a\n"
@@ -16919,12 +17361,12 @@ msgid ""
 "  (gdb) macro define MIN(x,y) ((x) < (y) ? (x) : (y))"
 msgstr ""
 
-#: macrocmd.c:540
+#: macrocmd.c:536
 msgid ""
 "Remove the definition of the C/C++ preprocessor macro with the given name."
 msgstr ""
 
-#: macrocmd.c:545
+#: macrocmd.c:541
 msgid "List all the macros defined using the `macro define' command."
 msgstr ""
 
@@ -16949,32 +17391,48 @@ msgstr ""
 msgid "Malformed argument list for macro `%s'."
 msgstr ""
 
-#: macroexp.c:1016
+#: macroexp.c:1045
+msgid "__VA_OPT__ cannot appear inside __VA_OPT__"
+msgstr ""
+
+#: macroexp.c:1054
+msgid "__VA_OPT__ must be followed by an open parenthesis"
+msgstr ""
+
+#: macroexp.c:1075
+msgid "__VA_OPT__ is only valid in a variadic macro"
+msgstr ""
+
+#: macroexp.c:1096
 msgid "Stringification operator requires an argument."
 msgstr ""
 
-#: macroexp.c:1021
+#: macroexp.c:1101
 msgid "Argument to stringification operator must name a macro parameter."
 msgstr ""
 
-#: macroexp.c:1035
+#: macroexp.c:1115
 msgid "Stray splicing operator"
 msgstr ""
 
-#: macroexp.c:1067
+#: macroexp.c:1147
 msgid "Splicing operator at end of macro"
 msgstr ""
 
-#: macroexp.c:1276
+#: macroexp.c:1243
+msgid "Unterminated __VA_OPT__"
+msgstr ""
+
+#: macroexp.c:1350
 #, possible-c-format
 msgid "Wrong number of arguments to macro `%s' (expected %d, got %d)."
 msgstr ""
 
-#: macroexp.c:1310
+#: macroexp.c:1384
 msgid "bad macro definition kind"
 msgstr ""
 
-#: macroexp.c:1442
+#: macroexp.c:1516
 msgid "Expand-once not implemented yet."
 msgstr ""
 
@@ -17005,71 +17463,76 @@ msgstr ""
 msgid "no definition for macro `%s' in scope to #undef at %s:%d"
 msgstr ""
 
-#: main.c:120 source.c:582
+#: main.c:120 source.c:565
 #, possible-c-format
 msgid "%s is not a directory."
 msgstr ""
 
-#: main.c:553
+#: main.c:412
+#, possible-c-format
+msgid "%s: '--readnow' and '--readnever' cannot be specified simultaneously"
+msgstr ""
+
+#: main.c:539
 msgid "error finding working directory"
 msgstr ""
 
-#: main.c:722
+#: main.c:709
 #, possible-c-format
 msgid "%s: TUI mode is not supported"
 msgstr ""
 
-#: main.c:772
+#: main.c:759
 #, possible-c-format
 msgid "%s: empty path for `--data-directory'"
 msgstr ""
 
-#: main.c:783
+#: main.c:770
 #, possible-c-format
 msgid "%s: unable to load tclcommand file \"%s\""
 msgstr ""
 
-#: main.c:820
+#: main.c:807
 #, possible-c-format
 msgid "could not set baud rate to `%s'."
 msgstr ""
 
-#: main.c:833
+#: main.c:820
 #, possible-c-format
 msgid "could not set timeout limit to `%s'."
 msgstr ""
 
-#: main.c:841
+#: main.c:842
 #, possible-c-format
 msgid "Use `%s --help' for a complete list of options."
 msgstr ""
 
-#: main.c:864
+#: main.c:867
 #, possible-c-format
 msgid "%s: `--args' specified but no program specified"
 msgstr ""
 
-#: main.c:899
+#: main.c:902
 #, possible-c-format
 msgid "Excess command line arguments ignored. (%s%s)\n"
 msgstr ""
 
-#: main.c:978
+#: main.c:981
 msgid ""
 "\n"
 "warning: "
 msgstr ""
 
-#: main.c:1051
+#: main.c:1054
 msgid "Can't attach to process and specify a core file at the same time."
 msgstr ""
 
 #. Error messages should no longer be distinguished with extra output.
-#: main.c:1080
+#: main.c:1083
 msgid "warning: "
 msgstr ""
 
-#: main.c:1090
+#: main.c:1094
 #, possible-c-format
 msgid "auto-load: Loading .gdbinit file \"%s\".\n"
 msgstr ""
@@ -17077,7 +17540,7 @@ msgstr ""
 #. Note: The options in the list below are only approximately sorted
 #. in the alphabetical order, so as to group closely related options
 #. together.
-#: main.c:1190
+#: main.c:1202
 msgid ""
 "This is the GNU debugger.  Usage:\n"
 "\n"
@@ -17086,7 +17549,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: main.c:1195
+#: main.c:1207
 msgid ""
 "Selection of debuggee and its files:\n"
 "\n"
@@ -17098,11 +17561,12 @@ msgid ""
 "  --se=FILE          Use FILE as symbol file and executable file.\n"
 "  --symbols=SYMFILE  Read symbols from SYMFILE.\n"
 "  --readnow          Fully read symbol files on first access.\n"
+"  --readnever        Do not read symbol files.\n"
 "  --write            Set writing into executable and core files.\n"
 "\n"
 msgstr ""
 
-#: main.c:1207
+#: main.c:1220
 msgid ""
 "Initial commands and command files:\n"
 "\n"
@@ -17120,7 +17584,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: main.c:1221
+#: main.c:1234
 msgid ""
 "Output and user interface control:\n"
 "\n"
@@ -17133,11 +17597,11 @@ msgid ""
 "  --nw               Do not use the GUI interface.\n"
 msgstr ""
 
-#: main.c:1231
+#: main.c:1244
 msgid "  --tui              Use a terminal user interface.\n"
 msgstr ""
 
-#: main.c:1235
+#: main.c:1248
 msgid ""
 "  --dbx              DBX compatibility mode.\n"
 "  -q, --quiet, --silent\n"
@@ -17145,7 +17609,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: main.c:1240
+#: main.c:1253
 msgid ""
 "Operating modes:\n"
 "\n"
@@ -17169,198 +17633,203 @@ msgid ""
 "                     Set GDB's data-directory to DIR.\n"
 msgstr ""
 
-#: main.c:1257
+#: main.c:1270
 msgid ""
 "\n"
 "At startup, GDB reads the following init files and executes their commands:\n"
 msgstr ""
 
-#: main.c:1261
+#: main.c:1274
 #, possible-c-format
 msgid "   * system-wide init file: %s\n"
 msgstr ""
 
-#: main.c:1265
+#: main.c:1278
 #, possible-c-format
 msgid "   * user-specific init file: %s\n"
 msgstr ""
 
-#: main.c:1269
+#: main.c:1282
 #, possible-c-format
 msgid "   * local init file (see also 'set auto-load local-gdbinit'): ./%s\n"
 msgstr ""
 
-#: main.c:1272
+#: main.c:1285
 msgid ""
 "\n"
 "For more information, type \"help\" from within GDB, or consult the\n"
 "GDB manual (available as on-line info or a printed manual).\n"
 msgstr ""
 
-#: main.c:1277
+#: main.c:1290
 #, possible-c-format
 msgid "Report bugs to \"%s\".\n"
 msgstr ""
 
-#: maint.c:78
+#: maint.c:60
 #, possible-c-format
 msgid "Watchdog timer is %s.\n"
 msgstr ""
 
-#: maint.c:86
+#: maint.c:68
 msgid ""
 "\"maintenance\" must be followed by the name of a maintenance command.\n"
 msgstr ""
 
-#: maint.c:95
+#: maint.c:77
 msgid "Should GDB dump core? "
 msgstr ""
 
-#: maint.c:147
+#: maint.c:129
 msgid "This command has been moved to \"demangle\".\n"
 msgstr ""
 
-#: maint.c:154
+#: maint.c:136
 msgid "\"maintenance time\" takes a numeric argument.\n"
 msgstr ""
 
-#: maint.c:175
+#: maint.c:157
 msgid "\"maintenance info\" must be followed by the name of an info command.\n"
 msgstr ""
 
-#: maint.c:350
+#: maint.c:170
+msgid ""
+"\"maintenance check\" must be followed by the name of a check command.\n"
+msgstr ""
+
+#: maint.c:345
 msgid "Exec file:\n"
 msgstr ""
 
-#: maint.c:368
+#: maint.c:363
 #, possible-c-format
 msgid "  Object file: %s\n"
 msgstr ""
 
-#: maint.c:382
+#: maint.c:377
 msgid "Core file:\n"
 msgstr ""
 
-#: maint.c:409 regcache.c:1547
+#: maint.c:404 regcache.c:1562
 msgid "maintenance print architecture"
 msgstr ""
 
-#: maint.c:421
+#: maint.c:416
 msgid ""
 "\"maintenance print\" must be followed by the name of a print command.\n"
 msgstr ""
 
-#: maint.c:442
+#: maint.c:437
 msgid "requires argument (address or section + address)"
 msgstr ""
 
 #. End of command?
-#: maint.c:452
+#: maint.c:447
 msgid "Need to specify <section-name> and <address>"
 msgstr ""
 
-#: maint.c:463
+#: maint.c:459
 #, possible-c-format
 msgid "Unknown section %s."
 msgstr ""
 
-#: maint.c:492
+#: maint.c:488
 #, possible-c-format
 msgid "%s + %s in section %s of %s\n"
 msgstr ""
 
-#: maint.c:496
+#: maint.c:492
 #, possible-c-format
 msgid "%s + %s in section %s\n"
 msgstr ""
 
-#: maint.c:500
+#: maint.c:496
 #, possible-c-format
 msgid "%s + %s\n"
 msgstr ""
 
-#: maint.c:503
+#: maint.c:499
 #, possible-c-format
 msgid "no symbol at %s:%s\n"
 msgstr ""
 
-#: maint.c:506
+#: maint.c:502
 #, possible-c-format
 msgid "no symbol at %s\n"
 msgstr ""
 
-#: maint.c:521
+#: maint.c:517
 msgid ""
 "\"maintenance deprecate\" takes an argument,\n"
 "the command you want to deprecate, and optionally the replacement command\n"
 "enclosed in quotes.\n"
 msgstr ""
 
-#: maint.c:536
+#: maint.c:531
 msgid ""
 "\"maintenance undeprecate\" takes an argument, \n"
 "the command you want to undeprecate.\n"
 msgstr ""
 
-#: maint.c:568
+#: maint.c:562
 #, possible-c-format
 msgid "Can't find command '%s' to deprecate.\n"
 msgstr ""
 
-#: maint.c:647
+#: maint.c:640
 msgid "\"maintenance set\" must be followed by the name of a set command.\n"
 msgstr ""
 
-#: maint.c:666
+#: maint.c:659
 #, possible-c-format
 msgid "Internal profiling is %s.\n"
 msgstr ""
 
-#: maint.c:728
+#: maint.c:721
 msgid "Profiling support is not available on this system."
 msgstr ""
 
-#: maint.c:830
+#: maint.c:823
 #, possible-c-format
 msgid "Startup time: %.6f (cpu), %.6f (wall)\n"
 msgstr ""
 
-#: maint.c:831
+#: maint.c:824
 #, possible-c-format
 msgid "Command execution time: %.6f (cpu), %.6f (wall)\n"
 msgstr ""
 
-#: maint.c:845
+#: maint.c:838
 #, possible-c-format
 msgid "Space used: %ld (%s%ld during startup)\n"
 msgstr ""
 
-#: maint.c:846
+#: maint.c:839
 #, possible-c-format
 msgid "Space used: %ld (%s%ld for this command)\n"
 msgstr ""
 
-#: maint.c:858
+#: maint.c:851
 #, possible-c-format
 msgid "#symtabs: %d (+%d), #compunits: %d (+%d), #blocks: %d (+%d)\n"
 msgstr ""
 
-#: maint.c:924
+#: maint.c:917
 msgid "Bad value for 'mt set per-command no'."
 msgstr ""
 
-#: maint.c:958
+#: maint.c:970
 msgid ""
 "Commands for use by GDB maintainers.\n"
 "Includes commands to dump specific internal GDB structures in\n"
 "a human readable form, to cause GDB to deliberately dump core, etc."
 msgstr ""
 
-#: maint.c:967
+#: maint.c:979
 msgid "Commands for showing internal info about the program being debugged."
 msgstr ""
 
-#: maint.c:973
+#: maint.c:985
 msgid ""
 "List the BFD sections of the exec and core files. \n"
 "Arguments may be any combination of:\n"
@@ -17373,97 +17842,97 @@ msgid ""
 "lists all sections from all object files, including shared libraries."
 msgstr ""
 
-#: maint.c:986
+#: maint.c:998
 msgid "Maintenance command for printing GDB internal state."
 msgstr ""
 
-#: maint.c:990
+#: maint.c:1002
 msgid ""
 "Set GDB internal variables used by the GDB maintainer.\n"
 "Configure variables internal to GDB that aid in GDB's maintenance"
 msgstr ""
 
-#: maint.c:997
+#: maint.c:1009
 msgid ""
 "Show GDB internal variables used by the GDB maintainer.\n"
 "Configure variables internal to GDB that aid in GDB's maintenance"
 msgstr ""
 
-#: maint.c:1005
+#: maint.c:1017
 msgid ""
 "Get fatal error; make debugger dump its core.\n"
 "GDB sets its handling of SIGQUIT back to SIG_DFL and then sends\n"
 "itself a SIGQUIT signal."
 msgstr ""
 
-#: maint.c:1013
+#: maint.c:1025
 msgid ""
 "Give GDB an internal error.\n"
 "Cause GDB to behave as if an internal error was detected."
 msgstr ""
 
-#: maint.c:1019
+#: maint.c:1031
 msgid ""
 "Give GDB an internal warning.\n"
 "Cause GDB to behave as if an internal warning was reported."
 msgstr ""
 
-#: maint.c:1025
+#: maint.c:1037
 msgid ""
 "Give GDB a demangler warning.\n"
 "Cause GDB to behave as if a demangler warning was reported."
 msgstr ""
 
-#: maint.c:1030
+#: maint.c:1042
 msgid "This command has been moved to \"demangle\"."
 msgstr ""
 
-#: maint.c:1035
+#: maint.c:1047
 msgid "Per-command statistics settings."
 msgstr ""
 
 #. allow-unknown
-#: maint.c:1040
+#: maint.c:1052
 msgid "Show per-command statistics settings."
 msgstr ""
 
-#: maint.c:1046
+#: maint.c:1058
 msgid "Set whether to display per-command execution time."
 msgstr ""
 
-#: maint.c:1047
+#: maint.c:1059
 msgid "Show whether to display per-command execution time."
 msgstr ""
 
-#: maint.c:1049
+#: maint.c:1061
 msgid ""
 "If enabled, the execution time for each command will be\n"
 "displayed following the command's output."
 msgstr ""
 
-#: maint.c:1056
+#: maint.c:1068
 msgid "Set whether to display per-command space usage."
 msgstr ""
 
-#: maint.c:1057
+#: maint.c:1069
 msgid "Show whether to display per-command space usage."
 msgstr ""
 
-#: maint.c:1059
+#: maint.c:1071
 msgid ""
 "If enabled, the space usage for each command will be\n"
 "displayed following the command's output."
 msgstr ""
 
-#: maint.c:1066
+#: maint.c:1078
 msgid "Set whether to display per-command symtab statistics."
 msgstr ""
 
-#: maint.c:1067
+#: maint.c:1079
 msgid "Show whether to display per-command symtab statistics."
 msgstr ""
 
-#: maint.c:1069
+#: maint.c:1081
 msgid ""
 "If enabled, the basic symtab statistics for each command will be\n"
 "displayed following the command's output."
@@ -17471,7 +17940,7 @@ msgstr ""
 
 #. This is equivalent to "mt set per-command time on".
 #. Kept because some people are used to typing "mt time 1".
-#: maint.c:1077
+#: maint.c:1089
 msgid ""
 "Set the display of time usage.\n"
 "If nonzero, will cause the execution time for each command to be\n"
@@ -17480,35 +17949,39 @@ msgstr ""
 
 #. This is equivalent to "mt set per-command space on".
 #. Kept because some people are used to typing "mt space 1".
-#: maint.c:1085
+#: maint.c:1097
 msgid ""
 "Set the display of space usage.\n"
 "If nonzero, will cause the execution space for each command to be\n"
 "displayed, following the command's output."
 msgstr ""
 
-#: maint.c:1091
+#: maint.c:1103
 msgid ""
 "Print a type chain for a given symbol.\n"
 "For each node in a type chain, print the raw data for each member of\n"
 "the type structure, and the interpretation of the data."
 msgstr ""
 
-#: maint.c:1098
+#: maint.c:1110
 msgid "Print statistics about internal gdb state."
 msgstr ""
 
-#: maint.c:1102
+#: maint.c:1114
 msgid ""
 "Print the internal architecture configuration.\n"
 "Takes an optional file parameter."
 msgstr ""
 
-#: maint.c:1109
+#: maint.c:1119
+msgid "Commands for checking internal gdb state."
+msgstr ""
+
+#: maint.c:1126
 msgid "Translate a section name and address to a symbol."
 msgstr ""
 
-#: maint.c:1112
+#: maint.c:1129
 msgid ""
 "Deprecate a command.  Note that this is just in here so the \n"
 "testsuite can check the command deprecator. You probably shouldn't use "
@@ -17518,7 +17991,7 @@ msgid ""
 "replacement is optional."
 msgstr ""
 
-#: maint.c:1119
+#: maint.c:1136
 msgid ""
 "Undeprecate a command.  Note that this is just in here so the \n"
 "testsuite can check the command deprecator. You probably shouldn't use "
@@ -17526,205 +17999,209 @@ msgid ""
 "If you decide you want to use it: maintenance undeprecate 'commandname'"
 msgstr ""
 
-#: maint.c:1125
+#: maint.c:1142
 msgid ""
 "Run gdb's unit tests.\n"
-"Usage: maintenance selftest\n"
+"Usage: maintenance selftest [filter]\n"
 "This will run any unit tests that were built in to gdb.\n"
-"gdb will abort if any test fails."
+"If a filter is given, only the tests with that value in their name will ran."
+msgstr ""
+
+#: maint.c:1150
+msgid "List the registered selftests."
 msgstr ""
 
-#: maint.c:1132
+#: maint.c:1152
 msgid "Set watchdog timer."
 msgstr ""
 
-#: maint.c:1133
+#: maint.c:1153
 msgid "Show watchdog timer."
 msgstr ""
 
-#: maint.c:1134
+#: maint.c:1154
 msgid ""
 "When non-zero, this timeout is used instead of waiting forever for a target\n"
 "to finish a low-level step or continue operation.  If the specified amount\n"
 "of time passes without a response from the target, an error occurs."
 msgstr ""
 
-#: maint.c:1143
+#: maint.c:1163
 msgid "Set internal profiling."
 msgstr ""
 
-#: maint.c:1144
+#: maint.c:1164
 msgid "Show internal profiling."
 msgstr ""
 
-#: maint.c:1145
+#: maint.c:1165
 msgid "When enabled GDB is profiled."
 msgstr ""
 
-#: mdebugread.c:130
+#: mdebugread.c:128
 #, possible-c-format
 msgid "bad aux index at symbol %s"
 msgstr ""
 
-#: mdebugread.c:136
+#: mdebugread.c:134
 #, possible-c-format
 msgid "unknown external symbol %s"
 msgstr ""
 
-#: mdebugread.c:142
+#: mdebugread.c:140
 #, possible-c-format
 msgid "cannot map ECOFF basic type 0x%x for %s"
 msgstr ""
 
-#: mdebugread.c:150
+#: mdebugread.c:148
 #, possible-c-format
 msgid "guessed tag type of %s incorrectly"
 msgstr ""
 
-#: mdebugread.c:156
+#: mdebugread.c:154
 #, possible-c-format
 msgid "bad rfd entry for %s: file %d, index %d"
 msgstr ""
 
-#: mdebugread.c:163
+#: mdebugread.c:161
 #, possible-c-format
 msgid "unexpected type code for %s"
 msgstr ""
 
-#: mdebugread.c:380
+#: mdebugread.c:378
 #, possible-c-format
 msgid ""
 "\n"
 "%s not compiled with -g, debugging support is limited.\n"
 msgstr ""
 
-#: mdebugread.c:383
+#: mdebugread.c:381
 msgid "You should compile with -g2 or -g3 for best debugging support.\n"
 msgstr ""
 
-#: mdebugread.c:530 stabsread.c:176
+#: mdebugread.c:528 stabsread.c:174
 #, possible-c-format
 msgid "bad register number %d (max %d) in symbol %s"
 msgstr ""
 
-#: mdebugread.c:756 mdebugread.c:1368
+#: mdebugread.c:754 mdebugread.c:1366
 #, possible-c-format
 msgid "unknown symbol type 0x%x"
 msgstr ""
 
-#: mdebugread.c:974
+#: mdebugread.c:972
 #, possible-c-format
 msgid "declaration block contains unhandled symbol type %d"
 msgstr ""
 
-#: mdebugread.c:1256
+#: mdebugread.c:1254
 #, possible-c-format
 msgid "stEnd with storage class %d not handled"
 msgstr ""
 
-#: mdebugread.c:1611
+#: mdebugread.c:1608
 #, possible-c-format
 msgid "can't handle TIR fBitfield for %s"
 msgstr ""
 
-#: mdebugread.c:1641
+#: mdebugread.c:1638
 #, possible-c-format
 msgid "unable to cross ref btIndirect for %s"
 msgstr ""
 
-#: mdebugread.c:1761
+#: mdebugread.c:1758
 #, possible-c-format
 msgid "unable to cross ref btTypedef for %s"
 msgstr ""
 
-#: mdebugread.c:1808
+#: mdebugread.c:1805
 #, possible-c-format
 msgid "illegal TIR continued for %s"
 msgstr ""
 
-#: mdebugread.c:1871
+#: mdebugread.c:1868
 #, possible-c-format
 msgid "illegal array index type for %s, assuming int"
 msgstr ""
 
-#: mdebugread.c:1919
+#: mdebugread.c:1916
 #, possible-c-format
 msgid "unknown type qualifier 0x%x"
 msgstr ""
 
-#: mdebugread.c:1952
+#: mdebugread.c:1949
 #, possible-c-format
 msgid "can't handle PDR for static proc at 0x%lx"
 msgstr ""
 
-#: mdebugread.c:2015
+#: mdebugread.c:2012
 #, possible-c-format
 msgid "PDR for %s, but no symbol"
 msgstr ""
 
-#: mdebugread.c:2140
+#: mdebugread.c:2137
 #, possible-c-format
 msgid "Warning: %s `%s' is undefined (in %s)\n"
 msgstr ""
 
-#: mdebugread.c:2242
+#: mdebugread.c:2239
 #, possible-c-format
 msgid "guessed size of linetable for %s incorrectly"
 msgstr ""
 
-#: mdebugread.c:2504
+#: mdebugread.c:2501
 #, possible-c-format
 msgid "bad ifd for external symbol: %d (max %ld)"
 msgstr ""
 
-#: mdebugread.c:2511
+#: mdebugread.c:2508
 #, possible-c-format
 msgid "bad iss for external symbol: %ld (max %ld)"
 msgstr ""
 
-#: mdebugread.c:3498
+#: mdebugread.c:3495
 #, possible-c-format
 msgid "bad proc end in aux found from symbol %s"
 msgstr ""
 
-#: mdebugread.c:3608
+#: mdebugread.c:3605
 #, possible-c-format
 msgid "bad aux index at block symbol %s"
 msgstr ""
 
 #. Both complaints are valid:  one gives symbol name,
 #. the other the offending symbol type.
-#: mdebugread.c:3628
+#: mdebugread.c:3625
 #, possible-c-format
 msgid "unknown local symbol %s"
 msgstr ""
 
-#: mdebugread.c:3630
+#: mdebugread.c:3627
 #, possible-c-format
 msgid "with type %d"
 msgstr ""
 
-#: mdebugread.c:3794
+#: mdebugread.c:3791
 #, possible-c-format
 msgid "bad file number %ld"
 msgstr ""
 
-#: mdebugread.c:4107
+#: mdebugread.c:4105
 #, possible-c-format
 msgid "unknown stabs symbol %s"
 msgstr ""
 
-#: mdebugread.c:4301
+#: mdebugread.c:4299
 #, possible-c-format
 msgid "File %s contains %d unresolved references:"
 msgstr ""
 
-#: mdebugread.c:4478
+#: mdebugread.c:4476
 #, possible-c-format
 msgid "illegal tq0 in forward typedef for %s"
 msgstr ""
 
-#: mdebugread.c:4515
+#: mdebugread.c:4513
 #, possible-c-format
 msgid "illegal bt %d in forward typedef for %s"
 msgstr ""
@@ -17734,79 +18211,79 @@ msgstr ""
 msgid "Error reading ECOFF debugging information: %s"
 msgstr ""
 
-#: memattr.c:77
+#: memattr.c:63
 msgid "Unknown memory addresses will be treated as inaccessible.\n"
 msgstr ""
 
-#: memattr.c:80
+#: memattr.c:66
 msgid "Unknown memory addresses will be treated as RAM.\n"
 msgstr ""
 
-#: memattr.c:147
+#: memattr.c:92
 msgid ""
 "Switching to manual control of memory regions; use \"mem auto\" to fetch "
 "regions from the target again."
 msgstr ""
 
-#: memattr.c:183
+#: memattr.c:124
 msgid "invalid memory region: low >= high\n"
 msgstr ""
 
-#: memattr.c:212
+#: memattr.c:151
 msgid "overlapping memory region\n"
 msgstr ""
 
-#: memattr.c:323
+#: memattr.c:254
 msgid "No mem"
 msgstr ""
 
-#: memattr.c:345
+#: memattr.c:272
 msgid "no lo address"
 msgstr ""
 
-#: memattr.c:350
+#: memattr.c:277
 msgid "no hi address"
 msgstr ""
 
-#: memattr.c:368
+#: memattr.c:295
 msgid "region bounds not 16 bit aligned"
 msgstr ""
 
-#: memattr.c:374
+#: memattr.c:301
 msgid "region bounds not 32 bit aligned"
 msgstr ""
 
-#: memattr.c:380
+#: memattr.c:307
 msgid "region bounds not 64 bit aligned"
 msgstr ""
 
-#: memattr.c:404
+#: memattr.c:331
 #, possible-c-format
 msgid "unknown attribute: %s"
 msgstr ""
 
-#: memattr.c:419
+#: memattr.c:342
 msgid "Using memory regions provided by the target.\n"
 msgstr ""
 
-#: memattr.c:421
+#: memattr.c:344
 msgid "Using user-defined memory regions.\n"
 msgstr ""
 
-#: memattr.c:427
+#: memattr.c:350
 msgid "There are no memory regions defined.\n"
 msgstr ""
 
-#: memattr.c:560 memattr.c:605 memattr.c:644 memattr.c:654
+#: memattr.c:479 memattr.c:517 memattr.c:550 memattr.c:563
 #, possible-c-format
 msgid "No memory region number %d.\n"
 msgstr ""
 
-#: memattr.c:670
+#: memattr.c:575
 msgid "Delete all memory regions? "
 msgstr ""
 
-#: memattr.c:699
+#: memattr.c:602
 msgid ""
 "Define attributes for memory region or reset memory region handling to\n"
 "target-based.\n"
@@ -17817,7 +18294,7 @@ msgid ""
 "      <cache> may be cache or nocache"
 msgstr ""
 
-#: memattr.c:708
+#: memattr.c:611
 msgid ""
 "Enable memory region.\n"
 "Arguments are the code numbers of the memory regions to enable.\n"
@@ -17825,7 +18302,7 @@ msgid ""
 "Do \"info mem\" to see current list of code numbers."
 msgstr ""
 
-#: memattr.c:714
+#: memattr.c:617
 msgid ""
 "Disable memory region.\n"
 "Arguments are the code numbers of the memory regions to disable.\n"
@@ -17833,7 +18310,7 @@ msgid ""
 "Do \"info mem\" to see current list of code numbers."
 msgstr ""
 
-#: memattr.c:720
+#: memattr.c:623
 msgid ""
 "Delete memory region.\n"
 "Arguments are the code numbers of the memory regions to delete.\n"
@@ -17841,24 +18318,24 @@ msgid ""
 "Do \"info mem\" to see current list of code numbers."
 msgstr ""
 
-#: memattr.c:727
+#: memattr.c:630
 msgid "Memory region attributes"
 msgstr ""
 
 #. allow-unknown
-#: memattr.c:729 memattr.c:733
+#: memattr.c:632 memattr.c:636
 msgid "Memory regions settings"
 msgstr ""
 
-#: memattr.c:739
+#: memattr.c:642
 msgid "Set handling of unknown memory regions."
 msgstr ""
 
-#: memattr.c:740
+#: memattr.c:643
 msgid "Show handling of unknown memory regions."
 msgstr ""
 
-#: memattr.c:741
+#: memattr.c:644
 msgid ""
 "If on, and some memory map is defined, debugger will emit errors on\n"
 "accesses to memory not defined in the memory map. If off, accesses to all\n"
@@ -17869,7 +18346,7 @@ msgstr ""
 msgid "Can not parse XML memory map; XML support was disabled at compile time"
 msgstr ""
 
-#: memory-map.c:90
+#: memory-map.c:91
 msgid "Flash block size is not set"
 msgstr ""
 
@@ -17878,28 +18355,28 @@ msgstr ""
 msgid "Unknown property \"%s\""
 msgstr ""
 
-#: memory-map.c:189
+#: memory-map.c:177
 msgid "target memory map"
 msgstr ""
 
 #. Return values larger than a single register are returned in
 #. memory, pointed to by R0.  Unfortunately, we can't count on R0
 #. pointing to the return buffer, so we raise an error here.
-#: mep-tdep.c:2173 mep-tdep.c:2200
+#: mep-tdep.c:2164 mep-tdep.c:2191
 msgid ""
 "GDB cannot set return values larger than four bytes; the Media Processor's\n"
 "calling conventions do not provide enough information to do this.\n"
 "Try using the 'return' command with no argument."
 msgstr ""
 
-#: mep-tdep.c:2418
+#: mep-tdep.c:2409
 #, possible-c-format
 msgid ""
 "the MeP module '%s' is %s-endian, but the executable\n"
 "%s is %s-endian."
 msgstr ""
 
-#: mep-tdep.c:2423
+#: mep-tdep.c:2414
 #, possible-c-format
 msgid ""
 "the selected MeP module is %s-endian, but the executable\n"
@@ -17920,146 +18397,146 @@ msgstr ""
 msgid "%s: Unknown option ``%s''"
 msgstr ""
 
-#: mi/mi-cmd-info.c:47
+#: mi/mi-cmd-info.c:43
 msgid "Usage: -info-ada-exceptions [REGEXP]"
 msgstr ""
 
-#: mi/mi-cmd-info.c:86
+#: mi/mi-cmd-info.c:75
 msgid "Usage: -info-gdb-mi-command MI_COMMAND_NAME"
 msgstr ""
 
-#: mi/mi-cmd-info.c:115
+#: mi/mi-cmd-info.c:103
 msgid "Usage: -info-os [INFOTYPE]"
 msgstr ""
 
-#: mi/mi-cmd-env.c:73
+#: mi/mi-cmd-env.c:65
 msgid "-environment-pwd: No arguments allowed"
 msgstr ""
 
-#: mi/mi-cmd-env.c:84
+#: mi/mi-cmd-env.c:77
 #, possible-c-format
 msgid "-environment-pwd: error finding name of working directory: %s"
 msgstr ""
 
-#: mi/mi-cmd-env.c:96
+#: mi/mi-cmd-env.c:89
 msgid "-environment-cd: Usage DIRECTORY"
 msgstr ""
 
-#: mi/mi-cmd-env.c:264
+#: mi/mi-cmd-env.c:257
 msgid "-inferior-tty-show: Usage: No args"
 msgstr ""
 
-#: mi/mi-cmd-break.c:273
+#: mi/mi-cmd-break.c:270
 #, possible-c-format
 msgid "-%s-insert: Missing <location>"
 msgstr ""
 
-#: mi/mi-cmd-break.c:280
+#: mi/mi-cmd-break.c:277
 msgid "-dprintf-insert: does not support -h or -a"
 msgstr ""
 
-#: mi/mi-cmd-break.c:282
+#: mi/mi-cmd-break.c:279
 msgid "-dprintf-insert: Missing <format>"
 msgstr ""
 
-#: mi/mi-cmd-break.c:293
+#: mi/mi-cmd-break.c:289
 msgid "-break-insert: Garbage following explicit location"
 msgstr ""
 
-#: mi/mi-cmd-break.c:298
+#: mi/mi-cmd-break.c:294
 msgid "-break-insert: Garbage following <location>"
 msgstr ""
 
-#: mi/mi-cmd-break.c:337
+#: mi/mi-cmd-break.c:333
 #, possible-c-format
 msgid "-%s-insert: --source option requires --function, --label, or --line"
 msgstr ""
 
-#: mi/mi-cmd-break.c:392
+#: mi/mi-cmd-break.c:388
 msgid "Usage: tracepoint-number passcount"
 msgstr ""
 
-#: mi/mi-cmd-break.c:405
+#: mi/mi-cmd-break.c:401
 #, possible-c-format
 msgid "Could not find tracepoint %d"
 msgstr ""
 
-#: mi/mi-cmd-break.c:453
+#: mi/mi-cmd-break.c:449
 msgid "-break-watch: Missing <expression>"
 msgstr ""
 
-#: mi/mi-cmd-break.c:455
+#: mi/mi-cmd-break.c:451
 msgid "-break-watch: Garbage following <expression>"
 msgstr ""
 
-#: mi/mi-cmd-break.c:471
+#: mi/mi-cmd-break.c:467
 msgid "-break-watch: Unknown watchpoint type."
 msgstr ""
 
-#: mi/mi-cmd-break.c:502
+#: mi/mi-cmd-break.c:498
 #, possible-c-format
 msgid "USAGE: %s <BKPT> [<COMMAND> [<COMMAND>...]]"
 msgstr ""
 
-#: mi/mi-cmd-break.c:506
+#: mi/mi-cmd-break.c:502
 #, possible-c-format
 msgid "breakpoint number argument \"%s\" is not a number."
 msgstr ""
 
-#: mi/mi-cmd-break.c:509
+#: mi/mi-cmd-break.c:505
 #, possible-c-format
 msgid "junk at the end of breakpoint number argument \"%s\"."
 msgstr ""
 
-#: mi/mi-cmd-break.c:514
+#: mi/mi-cmd-break.c:510
 #, possible-c-format
 msgid "breakpoint %d not found."
 msgstr ""
 
-#: mi/mi-parse.c:279
+#: mi/mi-parse.c:278
 #, possible-c-format
 msgid "Undefined MI command: %s"
 msgstr ""
 
-#: mi/mi-parse.c:318
+#: mi/mi-parse.c:317
 msgid "Duplicate '--thread-group' option"
 msgstr ""
 
-#: mi/mi-parse.c:321
+#: mi/mi-parse.c:320
 msgid "Invalid thread group id"
 msgstr ""
 
-#: mi/mi-parse.c:332
+#: mi/mi-parse.c:331
 msgid "Duplicate '--thread' option"
 msgstr ""
 
-#: mi/mi-parse.c:343
+#: mi/mi-parse.c:342
 msgid "Duplicate '--frame' option"
 msgstr ""
 
-#: mi/mi-parse.c:361
+#: mi/mi-parse.c:356
 #, possible-c-format
 msgid "Invalid --language argument: %s"
 msgstr ""
 
-#: mi/mi-parse.c:369
+#: mi/mi-parse.c:362
 #, possible-c-format
 msgid "Invalid value for the '%s' option"
 msgstr ""
 
-#: mi/mi-parse.c:379
+#: mi/mi-parse.c:372
 #, possible-c-format
 msgid "Problem parsing arguments: %s %s"
 msgstr ""
 
-#: mi/mi-parse.c:406
+#: mi/mi-parse.c:399
 #, possible-c-format
 msgid ""
 "Unknown value for PRINT_VALUES: must be: 0 or \"%s\", 1 or \"%s\", 2 or \"%s"
 "\""
 msgstr ""
 
-#: mi/mi-cmd-stack.c:52
+#: mi/mi-cmd-stack.c:53
 msgid "-enable-frame-filters: no arguments allowed"
 msgstr ""
 
@@ -18071,99 +18548,99 @@ msgstr ""
 msgid "-stack-list-frames: Not enough frames in stack."
 msgstr ""
 
-#: mi/mi-cmd-stack.c:191
+#: mi/mi-cmd-stack.c:189
 msgid "-stack-info-depth: Usage: [MAX_DEPTH]"
 msgstr ""
 
-#: mi/mi-cmd-stack.c:259
+#: mi/mi-cmd-stack.c:257
 msgid ""
 "-stack-list-locals: Usage: [--no-frame-filters] [--skip-unavailable] "
 "PRINT_VALUES"
 msgstr ""
 
-#: mi/mi-cmd-stack.c:332
+#: mi/mi-cmd-stack.c:329
 msgid ""
 "-stack-list-arguments: Usage: [--no-frame-filters] [--skip-unavailable] "
 "PRINT_VALUES [FRAME_LOW FRAME_HIGH]"
 msgstr ""
 
-#: mi/mi-cmd-stack.c:359
+#: mi/mi-cmd-stack.c:356
 msgid "-stack-list-arguments: Not enough frames in stack."
 msgstr ""
 
-#: mi/mi-cmd-stack.c:454
+#: mi/mi-cmd-stack.c:446
 msgid ""
 "-stack-list-variables: Usage: [--no-frame-filters] [--skip-unavailable] "
 "PRINT_VALUES"
 msgstr ""
 
-#: mi/mi-cmd-stack.c:697
+#: mi/mi-cmd-stack.c:683
 msgid "-stack-select-frame: Usage: FRAME_SPEC"
 msgstr ""
 
-#: mi/mi-cmd-stack.c:706
+#: mi/mi-cmd-stack.c:692
 msgid "-stack-info-frame: No arguments allowed"
 msgstr ""
 
-#: mi/mi-cmd-catch.c:80 mi/mi-cmd-catch.c:152 mi/mi-main.c:467 skip.c:298
+#: mi/mi-cmd-catch.c:79 mi/mi-cmd-catch.c:151 mi/mi-main.c:470 skip.c:294
 #, possible-c-format
 msgid "Invalid argument: %s"
 msgstr ""
 
-#: mi/mi-cmd-catch.c:157
+#: mi/mi-cmd-catch.c:156
 msgid "\"-e\" and \"-u\" are mutually exclusive"
 msgstr ""
 
-#: mi/mi-cmd-catch.c:214
+#: mi/mi-cmd-catch.c:212
 msgid "-catch-load/unload: Missing <library name>"
 msgstr ""
 
-#: mi/mi-cmd-catch.c:216
+#: mi/mi-cmd-catch.c:214
 msgid "-catch-load/unload: Garbage following the <library name>"
 msgstr ""
 
-#: mi/mi-cmd-disas.c:137
+#: mi/mi-cmd-disas.c:136
 msgid ""
 "-data-disassemble: Usage: ( [-f filename -l linenum [-n howmany]] | [-s "
 "startaddr -e endaddr]) [--] mode."
 msgstr ""
 
-#: mi/mi-cmd-disas.c:141
+#: mi/mi-cmd-disas.c:140
 msgid ""
 "-data-disassemble: Usage: [-f filename -l linenum [-n howmany]] [-s "
 "startaddr -e endaddr] [--] mode."
 msgstr ""
 
-#: mi/mi-cmd-disas.c:146
+#: mi/mi-cmd-disas.c:145
 msgid "-data-disassemble: Mode argument must be in the range 0-5."
 msgstr ""
 
-#: mi/mi-cmd-disas.c:181
+#: mi/mi-cmd-disas.c:180
 msgid "-data-disassemble: Invalid filename."
 msgstr ""
 
-#: mi/mi-cmd-disas.c:183
+#: mi/mi-cmd-disas.c:182
 msgid "-data-disassemble: Invalid line number"
 msgstr ""
 
-#: mi/mi-cmd-disas.c:185
+#: mi/mi-cmd-disas.c:184
 msgid "-data-disassemble: No function contains specified address"
 msgstr ""
 
-#: mi/mi-interp.c:213
+#: mi/mi-interp.c:210
 msgid "-interpreter-exec: Usage: -interpreter-exec interp command"
 msgstr ""
 
-#: mi/mi-interp.c:218
+#: mi/mi-interp.c:215
 #, possible-c-format
 msgid "-interpreter-exec: could not find interpreter \"%s\""
 msgstr ""
 
-#: mi/mi-symbol-cmds.c:40
+#: mi/mi-symbol-cmds.c:39
 msgid "-symbol-list-lines: Usage: SOURCE_FILENAME"
 msgstr ""
 
-#: mi/mi-symbol-cmds.c:46
+#: mi/mi-symbol-cmds.c:45
 msgid "-symbol-list-lines: Unknown source file name."
 msgstr ""
 
@@ -18179,402 +18656,403 @@ msgstr ""
 msgid "-target-file-delete: Usage: REMOTE_FILE"
 msgstr ""
 
-#: mi/mi-cmd-var.c:104
+#: mi/mi-cmd-var.c:103
 msgid "-var-create: Usage: NAME FRAME EXPRESSION."
 msgstr ""
 
-#: mi/mi-cmd-var.c:123
+#: mi/mi-cmd-var.c:116
 msgid "-var-create: name of object must begin with a letter"
 msgstr ""
 
-#: mi/mi-cmd-var.c:143
+#: mi/mi-cmd-var.c:136
 msgid "-var-create: unable to create variable object"
 msgstr ""
 
-#: mi/mi-cmd-var.c:163
+#: mi/mi-cmd-var.c:153
 msgid "-var-delete: Usage: [-c] EXPRESSION."
 msgstr ""
 
-#: mi/mi-cmd-var.c:175
+#: mi/mi-cmd-var.c:162
 msgid "-var-delete: Missing required argument after '-c': variable object name"
 msgstr ""
 
-#: mi/mi-cmd-var.c:178
+#: mi/mi-cmd-var.c:165
 msgid "-var-delete: Illegal variable object name"
 msgstr ""
 
-#: mi/mi-cmd-var.c:186
+#: mi/mi-cmd-var.c:173
 msgid "-var-delete: Invalid option."
 msgstr ""
 
-#: mi/mi-cmd-var.c:230
+#: mi/mi-cmd-var.c:213
 msgid ""
 "Must specify the format as: \"natural\", \"binary\", \"decimal\", "
 "\"hexadecimal\", \"octal\" or \"zero-hexadecimal\""
 msgstr ""
 
-#: mi/mi-cmd-var.c:242
+#: mi/mi-cmd-var.c:225
 msgid "-var-set-format: Usage: NAME FORMAT."
 msgstr ""
 
-#: mi/mi-cmd-var.c:266
+#: mi/mi-cmd-var.c:249
 msgid "Usage: NAME VISUALIZER_FUNCTION."
 msgstr ""
 
-#: mi/mi-cmd-var.c:271 varobj.c:472
+#: mi/mi-cmd-var.c:254 varobj.c:450
 msgid "Variable object not found"
 msgstr ""
 
-#: mi/mi-cmd-var.c:283
+#: mi/mi-cmd-var.c:266
 msgid "-var-set-format: Usage: NAME FROZEN_FLAG."
 msgstr ""
 
-#: mi/mi-cmd-var.c:292
+#: mi/mi-cmd-var.c:275
 msgid "Invalid flag value"
 msgstr ""
 
-#: mi/mi-cmd-var.c:309
+#: mi/mi-cmd-var.c:292
 msgid "-var-show-format: Usage: NAME."
 msgstr ""
 
-#: mi/mi-cmd-var.c:327
+#: mi/mi-cmd-var.c:310
 msgid "-var-info-num-children: Usage: NAME."
 msgstr ""
 
-#: mi/mi-cmd-var.c:379
+#: mi/mi-cmd-var.c:359
 msgid "-var-list-children: Usage: [PRINT_VALUES] NAME [FROM TO]"
 msgstr ""
 
-#: mi/mi-cmd-var.c:443
+#: mi/mi-cmd-var.c:421
 msgid "-var-info-type: Usage: NAME."
 msgstr ""
 
-#: mi/mi-cmd-var.c:459
+#: mi/mi-cmd-var.c:437
 msgid "Usage: NAME."
 msgstr ""
 
-#: mi/mi-cmd-var.c:477
+#: mi/mi-cmd-var.c:455
 msgid "-var-info-expression: Usage: NAME."
 msgstr ""
 
-#: mi/mi-cmd-var.c:499
+#: mi/mi-cmd-var.c:477
 msgid "-var-show-attributes: Usage: NAME."
 msgstr ""
 
-#: mi/mi-cmd-var.c:550
+#: mi/mi-cmd-var.c:528
 msgid "Cannot specify format more than once"
 msgstr ""
 
-#: mi/mi-cmd-var.c:559
+#: mi/mi-cmd-var.c:537
 msgid "Usage: [-f FORMAT] NAME"
 msgstr ""
 
-#: mi/mi-cmd-var.c:562
+#: mi/mi-cmd-var.c:540
 msgid "Garbage at end of command"
 msgstr ""
 
-#: mi/mi-cmd-var.c:588
+#: mi/mi-cmd-var.c:566
 msgid "-var-assign: Usage: NAME EXPRESSION."
 msgstr ""
 
-#: mi/mi-cmd-var.c:594
+#: mi/mi-cmd-var.c:572
 msgid "-var-assign: Variable object is not editable"
 msgstr ""
 
-#: mi/mi-cmd-var.c:604
+#: mi/mi-cmd-var.c:582
 msgid "-var-assign: Could not assign expression to variable object"
 msgstr ""
 
-#: mi/mi-cmd-var.c:657
+#: mi/mi-cmd-var.c:634
 msgid "-var-update: Usage: [PRINT_VALUES] NAME."
 msgstr ""
 
-#: mi/mi-cmd-var.c:803
+#: mi/mi-cmd-var.c:766
 msgid "-enable-pretty-printing: no arguments allowed"
 msgstr ""
 
-#: mi/mi-cmd-var.c:815
+#: mi/mi-cmd-var.c:778
 msgid "-var-set-update-range: Usage: VAROBJ FROM TO"
 msgstr ""
 
-#: mi/mi-cmds.c:262
+#: mi/mi-cmds.c:260
 #, possible-c-format
 msgid "command `%s' appears to be duplicated"
 msgstr ""
 
-#: mi/mi-main.c:126
+#: mi/mi-main.c:130
 #, possible-c-format
 msgid "Whether MI is in asynchronous mode is %s.\n"
 msgstr ""
 
-#: mi/mi-main.c:321
+#: mi/mi-main.c:324
 msgid "Already in reverse mode."
 msgstr ""
 
-#: mi/mi-main.c:324 reverse.c:57
+#: mi/mi-main.c:327 reverse.c:48
 #, possible-c-format
 msgid "Target %s does not support this command."
 msgstr ""
 
-#: mi/mi-main.c:503
+#: mi/mi-main.c:505
 msgid "Usage: -target-detach [pid | thread-group]"
 msgstr ""
 
-#: mi/mi-main.c:518
+#: mi/mi-main.c:520
 #, possible-c-format
 msgid "Invalid syntax of thread-group id '%s'"
 msgstr ""
 
-#: mi/mi-main.c:522
+#: mi/mi-main.c:524
 #, possible-c-format
 msgid "Non-existent thread-group id '%d'"
 msgstr ""
 
-#: mi/mi-main.c:532
+#: mi/mi-main.c:534
 #, possible-c-format
 msgid "Invalid identifier '%s'"
 msgstr ""
 
-#: mi/mi-main.c:539
+#: mi/mi-main.c:541
 msgid "Thread group is empty"
 msgstr ""
 
-#: mi/mi-main.c:561
+#: mi/mi-main.c:559
 msgid "-thread-select: USAGE: threadnum."
 msgstr ""
 
-#: mi/mi-main.c:590
+#: mi/mi-main.c:564
+#, possible-c-format
+msgid "Thread ID %d not known."
+msgstr ""
+
+#: mi/mi-main.c:585
 msgid "-thread-list-ids: No arguments required."
 msgstr ""
 
-#: mi/mi-main.c:605 mi/mi-main.c:2667
+#: mi/mi-main.c:615 mi/mi-main.c:2468
 msgid "Invalid MI command"
 msgstr ""
 
-#: mi/mi-main.c:939
+#: mi/mi-main.c:829
 msgid "only '0' and '1' are valid values for the '--recurse' option"
 msgstr ""
 
-#: mi/mi-main.c:951 mi/mi-main.c:956
+#: mi/mi-main.c:841 mi/mi-main.c:846
 #, possible-c-format
 msgid "invalid syntax of group id '%s'"
 msgstr ""
 
-#: mi/mi-main.c:977
+#: mi/mi-main.c:861
 #, possible-c-format
 msgid "Non-existent thread group id '%d'"
 msgstr ""
 
-#: mi/mi-main.c:1040 mi/mi-main.c:1120 mi/mi-main.c:1245 mi/mi-main.c:1340
+#: mi/mi-main.c:921 mi/mi-main.c:993 mi/mi-main.c:1116 mi/mi-main.c:1207
 msgid "bad register number"
 msgstr ""
 
-#: mi/mi-main.c:1095 mi/mi-main.c:1114
-msgid "-data-list-changed-registers: Unable to read register contents."
-msgstr ""
-
-#: mi/mi-main.c:1207
+#: mi/mi-main.c:1078
 msgid ""
 "-data-list-register-values: Usage: -data-list-register-values [--skip-"
 "unavailable] <format> [<regnum1>...<regnumN>]"
 msgstr ""
 
-#: mi/mi-main.c:1310
+#: mi/mi-main.c:1177
 msgid ""
 "-data-write-register-values: Usage: -data-write-register-values <format> "
 "[<regnum1> <value1>...<regnumN> <valueN>]"
 msgstr ""
 
-#: mi/mi-main.c:1314
+#: mi/mi-main.c:1181
 msgid "-data-write-register-values: No registers."
 msgstr ""
 
-#: mi/mi-main.c:1317
+#: mi/mi-main.c:1184
 msgid "-data-write-register-values: No regs and values specified."
 msgstr ""
 
-#: mi/mi-main.c:1320
+#: mi/mi-main.c:1187
 msgid "-data-write-register-values: Regs and vals are not in pairs."
 msgstr ""
 
-#: mi/mi-main.c:1356
+#: mi/mi-main.c:1223
 msgid "-data-evaluate-expression: Usage: -data-evaluate-expression expression"
 msgstr ""
 
-#: mi/mi-main.c:1436
+#: mi/mi-main.c:1303
 msgid ""
 "-data-read-memory: Usage: ADDR WORD-FORMAT WORD-SIZE NR-ROWS NR-COLS "
 "[ASCHAR]."
 msgstr ""
 
-#: mi/mi-main.c:1473
+#: mi/mi-main.c:1340
 msgid "-data-read-memory: invalid number of rows."
 msgstr ""
 
-#: mi/mi-main.c:1478
+#: mi/mi-main.c:1345
 msgid "-data-read-memory: invalid number of columns."
 msgstr ""
 
-#: mi/mi-main.c:1497 mi/mi-main.c:1625
+#: mi/mi-main.c:1364 mi/mi-main.c:1484
 msgid "Unable to read memory."
 msgstr ""
 
-#: mi/mi-main.c:1615
+#: mi/mi-main.c:1475
 msgid "Usage: [ -o OFFSET ] ADDR LENGTH."
 msgstr ""
 
-#: mi/mi-main.c:1717
+#: mi/mi-main.c:1560
 msgid ""
 "-data-write-memory: Usage: [-o COLUMN_OFFSET] ADDR FORMAT WORD-SIZE VALUE."
 msgstr ""
 
-#: mi/mi-main.c:1760
+#: mi/mi-main.c:1597
 msgid "Usage: ADDR DATA [COUNT]."
 msgstr ""
 
-#: mi/mi-main.c:1768
+#: mi/mi-main.c:1605
 #, possible-c-format
 msgid ""
 "Hex-encoded '%s' must represent an integral number of addressable memory "
 "units."
 msgstr ""
 
-#: mi/mi-main.c:1841
+#: mi/mi-main.c:1675
 #, possible-c-format
 msgid "-enable-timings: Usage: %s {yes|no}"
 msgstr ""
 
-#: mi/mi-main.c:1871
+#: mi/mi-main.c:1703
 msgid "-list-features should be passed no arguments"
 msgstr ""
 
-#: mi/mi-main.c:1891
+#: mi/mi-main.c:1721
 msgid "-list-target-features should be passed no arguments"
 msgstr ""
 
-#: mi/mi-main.c:1900
+#: mi/mi-main.c:1730
 msgid "-add-inferior should be passed no arguments"
 msgstr ""
 
-#: mi/mi-main.c:1926
+#: mi/mi-main.c:1756
 msgid "-remove-inferior should be passed a single argument"
 msgstr ""
 
-#: mi/mi-main.c:1929
+#: mi/mi-main.c:1759
 msgid "the thread group id is syntactically invalid"
 msgstr ""
 
-#: mi/mi-main.c:1933
+#: mi/mi-main.c:1763
 msgid "the specified thread group does not exist"
 msgstr ""
 
-#: mi/mi-main.c:1936
+#: mi/mi-main.c:1766
 msgid "cannot remove an active inferior"
 msgstr ""
 
-#: mi/mi-main.c:1945
+#: mi/mi-main.c:1775
 msgid "Cannot remove last inferior"
 msgstr ""
 
-#: mi/mi-main.c:2215
+#: mi/mi-main.c:2040
 msgid "Cannot specify --thread-group together with --all"
 msgstr ""
 
-#: mi/mi-main.c:2218
+#: mi/mi-main.c:2043
 msgid "Cannot specify --thread together with --all"
 msgstr ""
 
-#: mi/mi-main.c:2221
+#: mi/mi-main.c:2046
 msgid "Cannot specify --thread together with --thread-group"
 msgstr ""
 
-#: mi/mi-main.c:2224
+#: mi/mi-main.c:2049
 msgid "Cannot specify --frame without --thread"
 msgstr ""
 
-#: mi/mi-main.c:2232
+#: mi/mi-main.c:2057
 msgid "Invalid thread group for the --thread-group option"
 msgstr ""
 
-#: mi/mi-main.c:2251
+#: mi/mi-main.c:2076
 #, possible-c-format
 msgid "Invalid thread id: %d"
 msgstr ""
 
-#: mi/mi-main.c:2254
+#: mi/mi-main.c:2079
 #, possible-c-format
 msgid "Thread id: %d has terminated"
 msgstr ""
 
-#: mi/mi-main.c:2269
+#: mi/mi-main.c:2094
 #, possible-c-format
 msgid "Invalid frame id: %d"
 msgstr ""
 
-#: mi/mi-main.c:2482
+#: mi/mi-main.c:2290
 msgid "Usage: -trace-define-variable VARIABLE [VALUE]"
 msgstr ""
 
-#: mi/mi-main.c:2486 tracepoint.c:401
+#: mi/mi-main.c:2294 tracepoint.c:370
 msgid "Name of trace variable should start with '$'"
 msgstr ""
 
-#: mi/mi-main.c:2504
+#: mi/mi-main.c:2312
 msgid "-trace-list-variables: no arguments allowed"
 msgstr ""
 
-#: mi/mi-main.c:2515
+#: mi/mi-main.c:2323
 msgid "trace selection mode is required"
 msgstr ""
 
-#: mi/mi-main.c:2530
+#: mi/mi-main.c:2338
 msgid "frame number is required"
 msgstr ""
 
-#: mi/mi-main.c:2536
+#: mi/mi-main.c:2344
 msgid "tracepoint number is required"
 msgstr ""
 
-#: mi/mi-main.c:2542
+#: mi/mi-main.c:2350
 msgid "PC is required"
 msgstr ""
 
-#: mi/mi-main.c:2548 mi/mi-main.c:2555
+#: mi/mi-main.c:2356 mi/mi-main.c:2363
 msgid "Start and end PC are required"
 msgstr ""
 
-#: mi/mi-main.c:2567
+#: mi/mi-main.c:2370
 msgid "Line is required"
 msgstr ""
 
-#: mi/mi-main.c:2576 mi/mi-main.c:2581
+#: mi/mi-main.c:2378 mi/mi-main.c:2384
 msgid "Could not find the specified line"
 msgstr ""
 
-#: mi/mi-main.c:2586
+#: mi/mi-main.c:2387
 #, possible-c-format
 msgid "Invalid mode '%s'"
 msgstr ""
 
-#: mi/mi-main.c:2631
+#: mi/mi-main.c:2432
 msgid "Exactly one argument required (file in which to save trace data)"
 msgstr ""
 
-#: mi/mi-main.c:2786
+#: mi/mi-main.c:2583
 msgid ""
 "Usage: -trace-frame-collected [--var-print-values PRINT_VALUES] [--comp-"
 "print-values PRINT_VALUES] [--registers-format FORMAT][--memory-contents]"
 msgstr ""
 
-#: mi/mi-main.c:2979
+#: mi/mi-main.c:2723
 msgid "Set whether MI asynchronous mode is enabled."
 msgstr ""
 
-#: mi/mi-main.c:2980
+#: mi/mi-main.c:2724
 msgid "Show whether MI asynchronous mode is enabled."
 msgstr ""
 
-#: mi/mi-main.c:2981
+#: mi/mi-main.c:2725
 msgid "Tells GDB whether MI should be in asynchronous mode."
 msgstr ""
 
@@ -18590,7 +19068,7 @@ msgstr ""
 msgid "-file-list-exec-source-files: Usage: No args"
 msgstr ""
 
-#: mi/mi-cmd-file.c:133
+#: mi/mi-cmd-file.c:132
 msgid "Usage: -file-list-shared-libraries [REGEXP]"
 msgstr ""
 
@@ -18598,81 +19076,81 @@ msgstr ""
 msgid "Unsupported return value size requested"
 msgstr ""
 
-#: microblaze-tdep.c:776
+#: microblaze-tdep.c:771
 msgid "Set microblaze debugging."
 msgstr ""
 
-#: microblaze-tdep.c:777
+#: microblaze-tdep.c:772
 msgid "Show microblaze debugging."
 msgstr ""
 
-#: microblaze-tdep.c:778
+#: microblaze-tdep.c:773
 msgid "When non-zero, microblaze specific debugging is enabled."
 msgstr ""
 
-#: minidebug.c:280
+#: minidebug.c:279
 msgid "Cannot parse .gnu_debugdata section; not a BFD object"
 msgstr ""
 
-#: minidebug.c:284
+#: minidebug.c:283
 msgid ""
 "Cannot parse .gnu_debugdata section; LZMA support was disabled at compile "
 "time"
 msgstr ""
 
-#: minsyms.c:812
+#: minsyms.c:938
 #, possible-c-format
 msgid ""
 "GDB cannot resolve STT_GNU_IFUNC symbol at address %s without the ELF "
 "support compiled in."
 msgstr ""
 
-#: minsyms.c:823
+#: minsyms.c:949
 #, possible-c-format
 msgid ""
 "GDB cannot resolve STT_GNU_IFUNC symbol \"%s\" without the ELF support "
 "compiled in."
 msgstr ""
 
-#: minsyms.c:834
+#: minsyms.c:960
 msgid "elf_gnu_ifunc_resolver_stop cannot be reached."
 msgstr ""
 
-#: minsyms.c:843
+#: minsyms.c:969
 msgid "elf_gnu_ifunc_resolver_return_stop cannot be reached."
 msgstr ""
 
-#: mips-linux-nat.c:77 mips-linux-nat.c:118
+#: mips-linux-nat.c:72 mips-linux-nat.c:113
 #, possible-c-format
 msgid "Bogon register number %d."
 msgstr ""
 
-#: mips-linux-nat.c:280 mips-linux-nat.c:355 ppc-fbsd-nat.c:136
+#: mips-linux-nat.c:275 mips-linux-nat.c:350 ppc-fbsd-nat.c:136
 #: ppc-fbsd-nat.c:165 ppc-nbsd-nat.c:102 ppc-nbsd-nat.c:135
 msgid "Couldn't get FP registers"
 msgstr ""
 
-#: mips-linux-nat.c:346 sh-nbsd-nat.c:87
+#: mips-linux-nat.c:341 sh-nbsd-nat.c:87
 msgid "Couldn't set registers"
 msgstr ""
 
-#: mips-linux-nat.c:361 ppc-fbsd-nat.c:170 ppc-nbsd-nat.c:141
+#: mips-linux-nat.c:356 ppc-fbsd-nat.c:170 ppc-nbsd-nat.c:141
 msgid "Couldn't set FP registers"
 msgstr ""
 
-#: mips-linux-nat.c:446
+#: mips-linux-nat.c:441
 msgid "Couldn't check DSP support"
 msgstr ""
 
-#: mips-linux-nat.c:616 mips-linux-nat.c:635 nat/x86-linux-dregs.c:70
+#: mips-linux-nat.c:611 mips-linux-nat.c:630 nat/x86-linux-dregs.c:70
 msgid "Couldn't write debug register"
 msgstr ""
 
-#: mips-linux-nat.c:772
+#: mips-linux-nat.c:765
 msgid "Set whether to show variables that mirror the mips debug registers."
 msgstr ""
 
-#: mips-linux-nat.c:773
+#: mips-linux-nat.c:766
 msgid "Show whether to show variables that mirror the mips debug registers."
 msgstr ""
 
@@ -18681,112 +19159,112 @@ msgstr ""
 msgid "Error reading symbol table: %s"
 msgstr ""
 
-#: mips-tdep.c:664
+#: mips-tdep.c:665
 #, possible-c-format
 msgid "mips_register_name: bad register number %d"
 msgstr ""
 
-#: mips-tdep.c:765 mips-tdep.c:794 mips-tdep.c:834
+#: mips-tdep.c:766 mips-tdep.c:795 mips-tdep.c:835
 msgid "bad register size"
 msgstr ""
 
-#: mips-tdep.c:866
+#: mips-tdep.c:867
 msgid "32-bit compatibility mode not supported"
 msgstr ""
 
-#: mips-tdep.c:946
+#: mips-tdep.c:947
 msgid "mips_register_to_value: unrecognized case"
 msgstr ""
 
-#: mips-tdep.c:994
+#: mips-tdep.c:995
 msgid "mips_value_to_register: unrecognized case"
 msgstr ""
 
-#: mips-tdep.c:1140
+#: mips-tdep.c:1141
 msgid "mips_mask_address_p: bad switch"
 msgstr ""
 
-#: mips-tdep.c:1166
+#: mips-tdep.c:1167
 msgid "show_mask_address: bad switch"
 msgstr ""
 
-#: mips-tdep.c:1450 mips-tdep.c:1534
+#: mips-tdep.c:1451 mips-tdep.c:1535
 msgid "invalid ISA"
 msgstr ""
 
-#: mips-tdep.c:2708
+#: mips-tdep.c:2709
 msgid "Invalid number of argument registers encoded in SAVE."
 msgstr ""
 
-#: mips-tdep.c:2713
+#: mips-tdep.c:2714
 msgid "Invalid number of static registers encoded in SAVE."
 msgstr ""
 
-#: mips-tdep.c:4227
+#: mips-tdep.c:4228
 #, possible-c-format
 msgid "GDB can't find the start of the function at %s."
 msgstr ""
 
-#: mips-tdep.c:6184 mips-tdep.c:6221 mips-tdep.c:6536 sh64-tdep.c:1930
+#: mips-tdep.c:6186 mips-tdep.c:6223 sh64-tdep.c:1927
 #, possible-c-format
 msgid "can't read register %d (%s)"
 msgstr ""
 
-#: mips-tdep.c:6230
+#: mips-tdep.c:6232
 msgid "mips_read_fp_register_double: bad access to odd-numbered FP register"
 msgstr ""
 
-#: mips-tdep.c:6572 sh64-tdep.c:2092 sh64-tdep.c:2150
+#: mips-tdep.c:6565 sh64-tdep.c:2084 sh64-tdep.c:2142
 msgid "Not a valid register for the current processor type"
 msgstr ""
 
-#: mips-tdep.c:6936 mips-tdep.c:6950 mips-tdep.c:6964
+#: mips-tdep.c:6928 mips-tdep.c:6942 mips-tdep.c:6956
 msgid "set mipsfpu failed"
 msgstr ""
 
-#: mips-tdep.c:8012
+#: mips-tdep.c:8000
 #, possible-c-format
 msgid "unsupported ABI %s."
 msgstr ""
 
-#: mips-tdep.c:8026
+#: mips-tdep.c:8014
 msgid "unrecognized .gcc_compiled_longXX"
 msgstr ""
 
-#: mips-tdep.c:8038
+#: mips-tdep.c:8026
 msgid "unknown ABI string"
 msgstr ""
 
-#: mips-tdep.c:8055
+#: mips-tdep.c:8043
 msgid "unknown compressed ISA string"
 msgstr ""
 
-#: mips-tdep.c:8615 mips-tdep.c:8664
+#: mips-tdep.c:8603 mips-tdep.c:8652
 msgid "unknown ABI in switch"
 msgstr ""
 
-#: mips-tdep.c:8894
+#: mips-tdep.c:8883
 #, possible-c-format
 msgid "The compressed ISA encoding used is %s.\n"
 msgstr ""
 
-#: mips-tdep.c:8974
+#: mips-tdep.c:8972
 msgid "mips_abi_strings out of sync"
 msgstr ""
 
-#: mips-tdep.c:8990 mips-tdep.c:8994
+#: mips-tdep.c:8988 mips-tdep.c:8992
 msgid "Various MIPS specific commands."
 msgstr ""
 
-#: mips-tdep.c:8999
+#: mips-tdep.c:8997
 msgid "Set the MIPS ABI used by this program."
 msgstr ""
 
-#: mips-tdep.c:9000
+#: mips-tdep.c:8998
 msgid "Show the MIPS ABI used by this program."
 msgstr ""
 
-#: mips-tdep.c:9001
+#: mips-tdep.c:8999
 msgid ""
 "This option can be set to one of:\n"
 "  auto  - the default ABI associated with the current binary\n"
@@ -18798,15 +19276,15 @@ msgid ""
 "  eabi64"
 msgstr ""
 
-#: mips-tdep.c:9019
+#: mips-tdep.c:9017
 msgid "Set the compressed ISA encoding used by MIPS code."
 msgstr ""
 
-#: mips-tdep.c:9020
+#: mips-tdep.c:9018
 msgid "Show the compressed ISA encoding used by MIPS code."
 msgstr ""
 
-#: mips-tdep.c:9021
+#: mips-tdep.c:9019
 msgid ""
 "Select the compressed ISA encoding used in functions that have no symbol\n"
 "information available.  The encoding can be set to either of:\n"
@@ -18815,101 +19293,101 @@ msgid ""
 "and is updated automatically from ELF file flags if available."
 msgstr ""
 
-#: mips-tdep.c:9035
+#: mips-tdep.c:9033
 msgid "Set use of MIPS floating-point coprocessor."
 msgstr ""
 
-#: mips-tdep.c:9038
+#: mips-tdep.c:9036
 msgid "Select single-precision MIPS floating-point coprocessor."
 msgstr ""
 
-#: mips-tdep.c:9041
+#: mips-tdep.c:9039
 msgid "Select double-precision MIPS floating-point coprocessor."
 msgstr ""
 
-#: mips-tdep.c:9047
+#: mips-tdep.c:9045
 msgid "Select no MIPS floating-point coprocessor."
 msgstr ""
 
-#: mips-tdep.c:9052
+#: mips-tdep.c:9050
 msgid "Select MIPS floating-point coprocessor automatically."
 msgstr ""
 
-#: mips-tdep.c:9055
+#: mips-tdep.c:9053
 msgid "Show current use of MIPS floating-point coprocessor target."
 msgstr ""
 
-#: mips-tdep.c:9076
+#: mips-tdep.c:9074
 msgid "Set zeroing of upper 32 bits of 64-bit addresses."
 msgstr ""
 
-#: mips-tdep.c:9077
+#: mips-tdep.c:9075
 msgid "Show zeroing of upper 32 bits of 64-bit addresses."
 msgstr ""
 
-#: mips-tdep.c:9078
+#: mips-tdep.c:9076
 msgid ""
 "Use \"on\" to enable the masking, \"off\" to disable it and \"auto\" to\n"
 "allow GDB to determine the correct value."
 msgstr ""
 
-#: mips-tdep.c:9087
+#: mips-tdep.c:9085
 msgid ""
 "Set compatibility with 64-bit MIPS target that transfers 32-bit quantities."
 msgstr ""
 
-#: mips-tdep.c:9089
+#: mips-tdep.c:9087
 msgid ""
 "Show compatibility with 64-bit MIPS target that transfers 32-bit quantities."
 msgstr ""
 
-#: mips-tdep.c:9091
+#: mips-tdep.c:9089
 msgid ""
 "Use \"on\" to enable backward compatibility with older MIPS 64 GDB+target\n"
 "that would transfer 32 bits for some registers (e.g. SR, FSR) and\n"
 "64 bits for others.  Use \"off\" to disable compatibility mode"
 msgstr ""
 
-#: mips-tdep.c:9103
+#: mips-tdep.c:9101
 msgid "Set mips debugging."
 msgstr ""
 
-#: mips-tdep.c:9104
+#: mips-tdep.c:9102
 msgid "Show mips debugging."
 msgstr ""
 
-#: mips-tdep.c:9105
+#: mips-tdep.c:9103
 msgid "When non-zero, mips specific debugging is enabled."
 msgstr ""
 
-#: mn10300-tdep.c:192
+#: mn10300-tdep.c:195
 #, possible-c-format
 msgid "Cannot store return value %d bytes long."
 msgstr ""
 
-#: mn10300-tdep.c:224
+#: mn10300-tdep.c:228
 #, possible-c-format
 msgid "Cannot extract return value %d bytes long."
 msgstr ""
 
-#: mn10300-tdep.c:1422
+#: mn10300-tdep.c:1415
 msgid "mn10300_gdbarch_init: Unknown mn10300 variant"
 msgstr ""
 
-#: moxie-tdep.c:286
+#: moxie-tdep.c:282
 #, possible-c-format
 msgid "Process record: error reading memory at addr 0x%s len = %d.\n"
 msgstr ""
 
-#: msp430-tdep.c:897
+#: msp430-tdep.c:892
 msgid "Unknown msp430x code memory model"
 msgstr ""
 
-#: msp430-tdep.c:919
+#: msp430-tdep.c:914
 msgid "Unknown msp430 isa"
 msgstr ""
 
-#: mt-tdep.c:301
+#: mt-tdep.c:302
 #, possible-c-format
 msgid "mt_register_type: illegal register number %d"
 msgstr ""
@@ -19092,138 +19570,152 @@ msgstr ""
 msgid "Unrecognized watch register style"
 msgstr ""
 
-#: nat/linux-btrace.c:361
+#: nat/linux-btrace.c:356
 msgid "Branch trace may be incomplete."
 msgstr ""
 
-#: nat/linux-btrace.c:401
+#: nat/linux-btrace.c:396
 #, possible-c-format
 msgid "test bts: cannot fork: %s."
 msgstr ""
 
-#: nat/linux-btrace.c:408
+#: nat/linux-btrace.c:403
 #, possible-c-format
 msgid "test bts: cannot PTRACE_TRACEME: %s."
 msgstr ""
 
-#: nat/linux-btrace.c:416
+#: nat/linux-btrace.c:411
 #, possible-c-format
 msgid "test bts: cannot raise SIGTRAP: %s."
 msgstr ""
 
-#: nat/linux-btrace.c:427 nat/linux-btrace.c:459
+#: nat/linux-btrace.c:422 nat/linux-btrace.c:454
 #, possible-c-format
 msgid "test bts: bad pid %ld, error: %s."
 msgstr ""
 
-#: nat/linux-btrace.c:434
+#: nat/linux-btrace.c:429
 #, possible-c-format
 msgid "test bts: expected stop. status: %d."
 msgstr ""
 
-#: nat/linux-btrace.c:462
+#: nat/linux-btrace.c:457
 #, possible-c-format
 msgid "test bts: expected killed. status: %d."
 msgstr ""
 
-#: nat/linux-btrace.c:484
+#: nat/linux-btrace.c:479
 #, possible-c-format
 msgid "test pt: cannot fork: %s."
 msgstr ""
 
-#: nat/linux-btrace.c:491
+#: nat/linux-btrace.c:486
 #, possible-c-format
 msgid "test pt: cannot PTRACE_TRACEME: %s."
 msgstr ""
 
-#: nat/linux-btrace.c:499
+#: nat/linux-btrace.c:494
 #, possible-c-format
 msgid "test pt: cannot raise SIGTRAP: %s."
 msgstr ""
 
-#: nat/linux-btrace.c:510 nat/linux-btrace.c:546
+#: nat/linux-btrace.c:505 nat/linux-btrace.c:541
 #, possible-c-format
 msgid "test pt: bad pid %ld, error: %s."
 msgstr ""
 
-#: nat/linux-btrace.c:517
+#: nat/linux-btrace.c:512
 #, possible-c-format
 msgid "test pt: expected stop. status: %d."
 msgstr ""
 
-#: nat/linux-btrace.c:549
+#: nat/linux-btrace.c:544
 #, possible-c-format
 msgid "test pt: expected killed. status: %d."
 msgstr ""
 
-#: nat/linux-btrace.c:1121
+#: nat/linux-btrace.c:1116
 msgid "Unkown btrace read type."
 msgstr ""
 
-#: nat/linux-procfs.c:296
+#: nat/linux-procfs.c:290
 #, possible-c-format
 msgid "Could not open /proc/%ld/task."
 msgstr ""
 
-#: nat/x86-dregs.c:232
+#: nat/x86-dregs.c:228
 msgid "The i386 doesn't support data-read watchpoints.\n"
 msgstr ""
 
-#: nat/x86-dregs.c:244
+#: nat/x86-dregs.c:240
 #, possible-c-format
 msgid "Invalid hardware breakpoint type %d in x86_length_and_rw_bits.\n"
 msgstr ""
 
-#: nat/x86-dregs.c:262
+#: nat/x86-dregs.c:258
 #, possible-c-format
 msgid "Invalid hardware breakpoint length %d in x86_length_and_rw_bits.\n"
 msgstr ""
 
-#: nat/x86-dregs.c:432
+#: nat/x86-dregs.c:428
 #, possible-c-format
 msgid "Invalid value %d of operation in x86_handle_nonaligned_watchpoint.\n"
 msgstr ""
 
-#: nat/linux-personality.c:44
+#: nat/fork-inferior.c:530
 #, possible-c-format
-msgid "Error restoring address space randomization: %s"
+msgid "During startup program terminated with signal %s, %s."
+msgstr ""
+
+#: nat/fork-inferior.c:539
+#, possible-c-format
+msgid "During startup program exited with code %d."
+msgstr ""
+
+#: nat/fork-inferior.c:542
+msgid "During startup program exited normally."
 msgstr ""
 
-#: nat/linux-personality.c:87
+#: nat/linux-personality.c:49
 #, possible-c-format
 msgid "Error disabling address space randomization: %s"
 msgstr ""
 
-#: nds32-tdep.c:419 nds32-tdep.c:434
+#: nat/linux-personality.c:65
+#, possible-c-format
+msgid "Error restoring address space randomization: %s"
+msgstr ""
+
+#: nds32-tdep.c:417 nds32-tdep.c:432
 #, possible-c-format
 msgid "Unknown nds32 pseudo register %d."
 msgstr ""
 
 #. If use_fpr, but no floating-point register exists,
 #. then it is an error.
-#: nds32-tdep.c:1716
+#: nds32-tdep.c:1721
 msgid "Fail to call. FPU registers are required."
 msgstr ""
 
-#: nds32-tdep.c:1743
+#: nds32-tdep.c:1748
 #, possible-c-format
 msgid "Cannot extract return value of %d bytes long floating-point."
 msgstr ""
 
-#: nds32-tdep.c:1833
+#: nds32-tdep.c:1838
 #, possible-c-format
 msgid "Cannot store return value of %d bytes long floating-point."
 msgstr ""
 
-#: nios2-tdep.c:2384
+#: nios2-tdep.c:2362
 msgid "Set Nios II debugging."
 msgstr ""
 
-#: nios2-tdep.c:2385
+#: nios2-tdep.c:2363
 msgid "Show Nios II debugging."
 msgstr ""
 
-#: nios2-tdep.c:2386
+#: nios2-tdep.c:2364
 msgid "When on, Nios II specific debugging is enabled."
 msgstr ""
 
@@ -19247,43 +19739,43 @@ msgstr ""
 msgid "Invalid target CPU."
 msgstr ""
 
-#: nto-procfs.c:658 procfs.c:3038
+#: nto-procfs.c:644 procfs.c:1906
 msgid "Attaching GDB to itself is not a good idea..."
 msgstr ""
 
-#: nto-procfs.c:702
+#: nto-procfs.c:688
 #, possible-c-format
 msgid "Couldn't open proc file %s, error %d (%s)"
 msgstr ""
 
-#: nto-procfs.c:705
+#: nto-procfs.c:691
 msgid "Couldn't stop process"
 msgstr ""
 
-#: nto-procfs.c:726
+#: nto-procfs.c:712
 msgid ""
 "Interrupted while waiting for the program.\n"
 "Give up (and stop debugging it)? "
 msgstr ""
 
-#: nto-procfs.c:1087
+#: nto-procfs.c:1073
 msgid "run error!\n"
 msgstr ""
 
-#: nto-procfs.c:1261
+#: nto-procfs.c:1247
 #, possible-c-format
 msgid "Error spawning %s: %d (%s)"
 msgstr ""
 
-#: nto-procfs.c:1558
+#: nto-procfs.c:1542
 msgid "pidlist"
 msgstr ""
 
-#: nto-procfs.c:1559
+#: nto-procfs.c:1543
 msgid "memory information"
 msgstr ""
 
-#: nto-procfs.c:1589
+#: nto-procfs.c:1573
 msgid "Failed to set hardware watchpoint"
 msgstr ""
 
@@ -19291,104 +19783,107 @@ msgstr ""
 msgid "no way to lookup Objective-C classes"
 msgstr ""
 
-#: objc-lang.c:156
+#: objc-lang.c:157
 msgid "no way to lookup Objective-C selectors"
 msgstr ""
 
-#: objc-lang.c:204
+#: objc-lang.c:206
 msgid "NSString: internal error -- no way to create new NSString"
 msgstr ""
 
-#: objc-lang.c:494
+#: objc-lang.c:498
 #, possible-c-format
 msgid "Can't find selector \"%s\""
 msgstr ""
 
-#: objc-lang.c:541
+#: objc-lang.c:545
 msgid "internal: compare_selectors(1)"
 msgstr ""
 
-#: objc-lang.c:546
+#: objc-lang.c:550
 msgid "internal: compare_selectors(2)"
 msgstr ""
 
-#: objc-lang.c:591 objc-lang.c:742
+#: objc-lang.c:595 objc-lang.c:746
 #, possible-c-format
 msgid "Regexp is too long: %s"
 msgstr ""
 
-#: objc-lang.c:624
+#: objc-lang.c:608 objc-lang.c:759 thread.c:1871
+#, possible-c-format
+msgid "Invalid regexp (%s): %s"
+msgstr ""
+
+#: objc-lang.c:628
 #, possible-c-format
 msgid "Bad method name '%s'"
 msgstr ""
 
-#: objc-lang.c:641
+#: objc-lang.c:645
 #, possible-c-format
 msgid ""
 "Selectors matching \"%s\":\n"
 "\n"
 msgstr ""
 
-#: objc-lang.c:688
+#: objc-lang.c:692
 #, possible-c-format
 msgid "No selectors matching \"%s\"\n"
 msgstr ""
 
-#: objc-lang.c:707
+#: objc-lang.c:711
 msgid "internal: compare_classes(1)"
 msgstr ""
 
-#: objc-lang.c:779
+#: objc-lang.c:783
 #, possible-c-format
 msgid ""
 "Classes matching \"%s\":\n"
 "\n"
 msgstr ""
 
-#: objc-lang.c:818
+#: objc-lang.c:822
 #, possible-c-format
 msgid "No classes matching \"%s\"\n"
 msgstr ""
 
-#: objc-lang.c:1209
+#: objc-lang.c:1213
 msgid "Unable to locate _NSPrintForDebugger in child process"
 msgstr ""
 
-#: objc-lang.c:1215
+#: objc-lang.c:1219
 msgid "object returns null description"
 msgstr ""
 
-#: objc-lang.c:1226
+#: objc-lang.c:1230
 msgid "<object returns empty description>"
 msgstr ""
 
-#. INFO SELECTORS command.
-#: objc-lang.c:1381
+#: objc-lang.c:1363
 msgid "All Objective-C selectors, or those matching REGEXP."
 msgstr ""
 
-#. INFO CLASSES   command.
-#: objc-lang.c:1383
+#: objc-lang.c:1365
 msgid "All Objective-C classes, or those matching REGEXP."
 msgstr ""
 
-#: objc-lang.c:1385
+#: objc-lang.c:1367
 msgid "Ask an Objective-C object to print itself."
 msgstr ""
 
-#: objfiles.c:482
+#: objfiles.c:474
 msgid "Entry point address is not known."
 msgstr ""
 
-#: objfiles.c:548
+#: objfiles.c:540
 msgid "put_objfile_before: before objfile not in list"
 msgstr ""
 
-#: objfiles.c:580
+#: objfiles.c:572
 msgid "unlink_objfile: objfile already unlinked"
 msgstr ""
 
-#: objfiles.c:1327
+#: objfiles.c:1297
 #, possible-c-format
 msgid ""
 "unexpected overlap between:\n"
@@ -19397,15 +19892,15 @@ msgid ""
 "Will ignore section B"
 msgstr ""
 
-#: objfiles.h:658
+#: objfiles.h:677
 msgid "sect_index_data not initialized"
 msgstr ""
 
-#: objfiles.h:664
+#: objfiles.h:683
 msgid "sect_index_rodata not initialized"
 msgstr ""
 
-#: objfiles.h:670
+#: objfiles.h:689
 msgid "sect_index_text not initialized"
 msgstr ""
 
@@ -19420,64 +19915,101 @@ msgstr ""
 msgid "Failed to detach observer"
 msgstr ""
 
-#: observer.c:213
+#: observer.c:206
 msgid "Set observer debugging."
 msgstr ""
 
-#: observer.c:214
+#: observer.c:207
 msgid "Show observer debugging."
 msgstr ""
 
-#: observer.c:215
+#: observer.c:208
 msgid "When non-zero, observer debugging is enabled."
 msgstr ""
 
-#: opencl-lang.c:91
+#: opencl-lang.c:89
 #, possible-c-format
 msgid "Invalid OpenCL vector size: %d"
 msgstr ""
 
-#: opencl-lang.c:183 opencl-lang.c:212 opencl-lang.c:391 opencl-lang.c:508
-#: opencl-lang.c:601 opencl-lang.c:912 valarith.c:1400 valarith.c:1446
-#: valarith.c:1804 valarith.c:1840 valops.c:886
+#: opencl-lang.c:181 opencl-lang.c:210 opencl-lang.c:389 opencl-lang.c:506
+#: opencl-lang.c:599 opencl-lang.c:910 valarith.c:1303 valarith.c:1349
+#: valarith.c:1657 valarith.c:1693 valops.c:875
 msgid "Could not determine the vector bounds"
 msgstr ""
 
-#: opencl-lang.c:399
+#: opencl-lang.c:397
 msgid "Invalid OpenCL vector size"
 msgstr ""
 
-#: opencl-lang.c:446 opencl-lang.c:466 opencl-lang.c:471 opencl-lang.c:475
-#: opencl-lang.c:485
+#: opencl-lang.c:444 opencl-lang.c:464 opencl-lang.c:469 opencl-lang.c:473
+#: opencl-lang.c:483
 #, possible-c-format
 msgid "Invalid OpenCL vector component accessor %s"
 msgstr ""
 
-#: opencl-lang.c:570
+#: opencl-lang.c:568
 msgid "Attempt to perform an unsupported operation"
 msgstr ""
 
-#: opencl-lang.c:594
+#: opencl-lang.c:592
 msgid "Vector operations are not supported on scalar types"
 msgstr ""
 
-#: opencl-lang.c:608 opencl-lang.c:919 valarith.c:1456
+#: opencl-lang.c:606 opencl-lang.c:917 valarith.c:1359
 msgid "Cannot perform operation on vectors with different types"
 msgstr ""
 
-#: opencl-lang.c:715 valarith.c:1499
+#: opencl-lang.c:713 valarith.c:1402
 msgid "Argument to operation not a number or boolean."
 msgstr ""
 
 #. Throw an error if arg2 or arg3 aren't vectors.
-#: opencl-lang.c:902
+#: opencl-lang.c:900
 msgid "Cannot perform conditional operation on incompatible types"
 msgstr ""
 
-#: opencl-lang.c:925
+#: opencl-lang.c:923
 msgid "Cannot perform conditional operation on vectors with different sizes"
 msgstr ""
 
+#: or1k-tdep.c:60
+#, possible-c-format
+msgid "OpenRISC debugging is %s.\n"
+msgstr ""
+
+#: or1k-tdep.c:135
+#, possible-c-format
+msgid "bitstring \"%s\" at offset %d has no length field."
+msgstr ""
+
+#: or1k-tdep.c:144
+#, possible-c-format
+msgid "bitstring \"%s\" at offset %d has no terminating 'b'."
+msgstr ""
+
+#: or1k-tdep.c:161
+#, possible-c-format
+msgid "invalid character in bitstring \"%s\" at offset %d."
+msgstr ""
+
+#: or1k-tdep.c:945
+#, possible-c-format
+msgid "end addr %s is less than start addr %s"
+msgstr ""
+
+#: or1k-tdep.c:1288
+msgid "Set OpenRISC debugging."
+msgstr ""
+
+#: or1k-tdep.c:1289
+msgid "Show OpenRISC debugging."
+msgstr ""
+
+#: or1k-tdep.c:1290
+msgid "When on, OpenRISC specific debugging is enabled."
+msgstr ""
+
 #: osabi.c:157
 #, possible-c-format
 msgid ""
@@ -19535,15 +20067,15 @@ msgstr ""
 msgid "The default OS ABI is \"%s\".\n"
 msgstr ""
 
-#: osabi.c:665
+#: osabi.c:663
 msgid "_initialize_gdb_osabi: gdb_osabi_names[] is inconsistent"
 msgstr ""
 
-#: osabi.c:675
+#: osabi.c:673
 msgid "Set OS ABI of target."
 msgstr ""
 
-#: osabi.c:676
+#: osabi.c:674
 msgid "Show OS ABI of target."
 msgstr ""
 
@@ -19551,78 +20083,78 @@ msgstr ""
 msgid "Can not parse XML OS data; XML support was disabled at compile time"
 msgstr ""
 
-#: osdata.c:66
+#: osdata.c:64
 msgid "Seen more than on osdata element"
 msgstr ""
 
-#: osdata.c:174
+#: osdata.c:148
 msgid "osdata"
 msgstr ""
 
-#: osdata.c:257
+#: osdata.c:170
 msgid "Empty data returned by target.  Wrong osdata type?"
 msgstr ""
 
-#: osdata.c:259
+#: osdata.c:172
 msgid "Empty type list returned by target.  No type data?"
 msgstr ""
 
-#: osdata.c:268
+#: osdata.c:179
 msgid "Can not fetch data now."
 msgstr ""
 
-#: osdata.c:309
+#: osdata.c:210
 msgid "Available types of OS data not reported."
 msgstr ""
 
-#: osdata.c:425
+#: osdata.c:294
 msgid "Show OS data ARG."
 msgstr ""
 
-#: parse.c:98
+#: parse.c:99
 #, possible-c-format
 msgid "Expression debugging is %s.\n"
 msgstr ""
 
-#: parse.c:109
+#: parse.c:110
 #, possible-c-format
 msgid "Parser debugging is %s.\n"
 msgstr ""
 
-#: parse.c:870
+#: parse.c:846
 msgid "?error in operator_length_standard"
 msgstr ""
 
-#: parse.c:1157
+#: parse.c:1132
 msgid "expression to compute"
 msgstr ""
 
-#: parse.c:1268
+#: parse.c:1241
 msgid "Junk after end of expression."
 msgstr ""
 
-#: parse.c:1941
+#: parse.c:1882
 msgid "Set expression debugging."
 msgstr ""
 
-#: parse.c:1942
+#: parse.c:1883
 msgid "Show expression debugging."
 msgstr ""
 
-#: parse.c:1943
+#: parse.c:1884
 msgid ""
 "When non-zero, the internal representation of expressions will be printed."
 msgstr ""
 
-#: parse.c:1950
+#: parse.c:1891
 msgid "Set parser debugging."
 msgstr ""
 
-#: parse.c:1951
+#: parse.c:1892
 msgid "Show parser debugging."
 msgstr ""
 
-#: parse.c:1952
+#: parse.c:1893
 msgid "When non-zero, expression parser tracing will be enabled."
 msgstr ""
 
@@ -19635,7 +20167,7 @@ msgid "Unable to fetch AltiVec register"
 msgstr ""
 
 #. Anything else needs to be reported.
-#: ppc-linux-nat.c:441 ppc-linux-nat.c:2410
+#: ppc-linux-nat.c:441 ppc-linux-nat.c:2405
 msgid "Unable to fetch SPE registers"
 msgstr ""
 
@@ -19644,11 +20176,11 @@ msgstr ""
 msgid "fetch_register: unexpected byte order: %d"
 msgstr ""
 
-#: ppc-linux-nat.c:636 ppc-linux-nat.c:2424
+#: ppc-linux-nat.c:636 ppc-linux-nat.c:2419
 msgid "Unable to fetch VSX registers"
 msgstr ""
 
-#: ppc-linux-nat.c:655 ppc-linux-nat.c:2438
+#: ppc-linux-nat.c:655 ppc-linux-nat.c:2433
 msgid "Unable to fetch AltiVec registers"
 msgstr ""
 
@@ -19697,43 +20229,43 @@ msgstr ""
 msgid "Couldn't set floating-point registers."
 msgstr ""
 
-#: ppc-linux-nat.c:1555
+#: ppc-linux-nat.c:1552
 msgid "Unexpected error setting breakpoint or watchpoint"
 msgstr ""
 
-#: ppc-linux-nat.c:1602
+#: ppc-linux-nat.c:1597
 msgid "Unexpected error deleting breakpoint or watchpoint"
 msgstr ""
 
-#: ppc-linux-nat.c:2277
+#: ppc-linux-nat.c:2272
 msgid "The given mask covers kernel address space and cannot be used.\n"
 msgstr ""
 
-#: ppc-linux-tdep.c:1550
+#: ppc-linux-tdep.c:1538
 msgid "unexpected wordsize"
 msgstr ""
 
 #. Can't happen.
-#: ppc-sysv-tdep.c:669
+#: ppc-sysv-tdep.c:670
 msgid "Unknown decimal float size."
 msgstr ""
 
-#: printcmd.c:91
+#: printcmd.c:92
 #, possible-c-format
 msgid "The largest offset that will be printed in <symbol+1234> form is %s.\n"
 msgstr ""
 
-#: printcmd.c:103
+#: printcmd.c:104
 #, possible-c-format
 msgid "Printing of source filename and line number with <symbol> is %s.\n"
 msgstr ""
 
-#: printcmd.c:429 printcmd.c:505
+#: printcmd.c:397
 #, possible-c-format
 msgid "Undefined output size \"%c\"."
 msgstr ""
 
-#: printcmd.c:531
+#: printcmd.c:491
 #, possible-c-format
 msgid "Undefined output format \"%c\"."
 msgstr ""
@@ -19741,251 +20273,243 @@ msgstr ""
 #. We reach here when line info is not available.  In this case,
 #. we print a message and just exit the loop.  The return value
 #. is calculated after the loop.
-#: printcmd.c:831
+#: printcmd.c:791
 msgid "No line number information available for address "
 msgstr ""
 
 #. The read was unsuccessful, so exit the loop.
-#: printcmd.c:917
+#: printcmd.c:877
 #, possible-c-format
 msgid "Cannot access memory at address %s\n"
 msgstr ""
 
-#: printcmd.c:1072
+#: printcmd.c:1028
 #, possible-c-format
 msgid "Unable to display strings with size '%c', using 'b' instead."
 msgstr ""
 
-#: printcmd.c:1175
+#: printcmd.c:1131
 #, possible-c-format
 msgid "Size letters are meaningless in \"%s\" command."
 msgstr ""
 
-#: printcmd.c:1177
+#: printcmd.c:1133
 #, possible-c-format
 msgid "Item count other than 1 is meaningless in \"%s\" command."
 msgstr ""
 
-#: printcmd.c:1180
+#: printcmd.c:1136
 #, possible-c-format
 msgid "Format letter \"%c\" is meaningless in \"%s\" command."
 msgstr ""
 
-#: printcmd.c:1336
+#: printcmd.c:1292
 msgid "Expression is not an assignment (and might have no effect)"
 msgstr ""
 
-#: printcmd.c:1353
+#: printcmd.c:1309
 msgid "address"
 msgstr ""
 
-#: printcmd.c:1376
+#: printcmd.c:1332
 msgid "mapped"
 msgstr ""
 
-#: printcmd.c:1376
+#: printcmd.c:1332
 msgid "unmapped"
 msgstr ""
 
-#: printcmd.c:1397
+#: printcmd.c:1353
 #, possible-c-format
 msgid "%s in load address range of %s overlay section %s of %s\n"
 msgstr ""
 
-#: printcmd.c:1401
+#: printcmd.c:1357
 #, possible-c-format
 msgid "%s in load address range of section %s of %s\n"
 msgstr ""
 
-#: printcmd.c:1406
+#: printcmd.c:1362
 #, possible-c-format
 msgid "%s in %s overlay section %s of %s\n"
 msgstr ""
 
-#: printcmd.c:1409
+#: printcmd.c:1365
 #, possible-c-format
 msgid "%s in section %s of %s\n"
 msgstr ""
 
-#: printcmd.c:1414
+#: printcmd.c:1370
 #, possible-c-format
 msgid "%s in load address range of %s overlay section %s\n"
 msgstr ""
 
-#: printcmd.c:1418
+#: printcmd.c:1374
 #, possible-c-format
 msgid "%s in load address range of section %s\n"
 msgstr ""
 
-#: printcmd.c:1422
+#: printcmd.c:1378
 #, possible-c-format
 msgid "%s in %s overlay section %s\n"
 msgstr ""
 
-#: printcmd.c:1425
+#: printcmd.c:1381
 #, possible-c-format
 msgid "%s in section %s\n"
 msgstr ""
 
-#: printcmd.c:1432
+#: printcmd.c:1386
 #, possible-c-format
 msgid "No symbol matches %s.\n"
 msgstr ""
 
-#: printcmd.c:1448
+#: printcmd.c:1402
 msgid "Argument required."
 msgstr ""
 
-#: printcmd.c:1551
+#: printcmd.c:1505
 #, possible-c-format
 msgid "an argument in register %s"
 msgstr ""
 
-#: printcmd.c:1554
+#: printcmd.c:1508
 #, possible-c-format
 msgid "a variable in register %s"
 msgstr ""
 
-#: printcmd.c:1559 printcmd.c:1632
+#: printcmd.c:1513 printcmd.c:1586
 msgid "static storage at address "
 msgstr ""
 
-#: printcmd.c:1565 printcmd.c:1602 printcmd.c:1637
+#: printcmd.c:1519 printcmd.c:1556 printcmd.c:1591
 msgid ""
 ",\n"
 " -- loaded at "
 msgstr ""
 
-#: printcmd.c:1567 printcmd.c:1604 printcmd.c:1639
+#: printcmd.c:1521 printcmd.c:1558 printcmd.c:1593
 #, possible-c-format
 msgid " in overlay section %s"
 msgstr ""
 
-#: printcmd.c:1575
+#: printcmd.c:1529
 #, possible-c-format
 msgid "address of an argument in register %s"
 msgstr ""
 
-#: printcmd.c:1580
+#: printcmd.c:1534
 #, possible-c-format
 msgid "an argument at offset %ld"
 msgstr ""
 
-#: printcmd.c:1584
+#: printcmd.c:1538
 #, possible-c-format
 msgid "a local variable at frame offset %ld"
 msgstr ""
 
-#: printcmd.c:1588
+#: printcmd.c:1542
 #, possible-c-format
 msgid "a reference argument at offset %ld"
 msgstr ""
 
-#: printcmd.c:1592
+#: printcmd.c:1546
 msgid "a typedef"
 msgstr ""
 
-#: printcmd.c:1596
+#: printcmd.c:1550
 msgid "a function at address "
 msgstr ""
 
-#: printcmd.c:1624
+#: printcmd.c:1578
 #, possible-c-format
 msgid ""
 "a thread-local variable at offset %s in the thread-local storage for `%s'"
 msgstr ""
 
-#: printcmd.c:1648
+#: printcmd.c:1602
 msgid "optimized out"
 msgstr ""
 
-#: printcmd.c:1652
+#: printcmd.c:1606
 msgid "of unknown (botched) type"
 msgstr ""
 
-#: printcmd.c:1705
+#: printcmd.c:1658
 msgid "starting display address"
 msgstr ""
 
-#: printcmd.c:1860
+#: printcmd.c:1813
 msgid "one or more display numbers"
 msgstr ""
 
-#: printcmd.c:1870
+#: printcmd.c:1823
 #, possible-c-format
 msgid "bad display number at or near '%s'"
 msgstr ""
 
-#: printcmd.c:1879 printcmd.c:2085
+#: printcmd.c:1832 printcmd.c:2038
 #, possible-c-format
 msgid "No display number %d.\n"
 msgstr ""
 
-#: printcmd.c:1901
+#: printcmd.c:1854
 msgid "Delete all auto-display expressions? "
 msgstr ""
 
-#: printcmd.c:1949
+#: printcmd.c:1902
 #, possible-c-format
 msgid "Unable to display \"%s\": %s"
 msgstr ""
 
-#: printcmd.c:2013
+#: printcmd.c:1966
 #, possible-c-format
 msgid "<error: %s>\n"
 msgstr ""
 
-#: printcmd.c:2095
+#: printcmd.c:2048
 #, possible-c-format
 msgid "Disabling display %d to avoid infinite recursion.\n"
 msgstr ""
 
-#: printcmd.c:2108
+#: printcmd.c:2061
 msgid "There are no auto-display expressions now.\n"
 msgstr ""
 
-#: printcmd.c:2110
+#: printcmd.c:2063
 msgid ""
 "Auto-display expressions now in effect:\n"
 "Num Enb Expression\n"
 msgstr ""
 
-#: printcmd.c:2123
+#: printcmd.c:2076
 msgid " (cannot be evaluated in the current context)"
 msgstr ""
 
-#: printcmd.c:2506
+#: printcmd.c:2434
 msgid "format-control string and values to print"
 msgstr ""
 
-#: printcmd.c:2591
+#: printcmd.c:2509
 #, possible-c-format
 msgid "expected wchar_t argument for %%lc"
 msgstr ""
 
-#: printcmd.c:2621 printcmd.c:2638 value.c:2783
-msgid "Invalid floating value found in program."
-msgstr ""
-
-#: printcmd.c:2645
-msgid "long double not supported in printf"
-msgstr ""
-
-#: printcmd.c:2656
+#: printcmd.c:2535
 msgid "long long not supported in printf"
 msgstr ""
 
-#: printcmd.c:2735
+#: printcmd.c:2618
 msgid "Describe where symbol SYM is stored."
 msgstr ""
 
-#: printcmd.c:2737
+#: printcmd.c:2620
 msgid ""
 "Describe what symbol is at location ADDR.\n"
 "Only for symbols with fixed locations (global or static scope)."
 msgstr ""
 
-#: printcmd.c:2741
+#: printcmd.c:2624
 msgid ""
 "Examine memory: x/FMT ADDRESS.\n"
 "ADDRESS is an expression for the memory address to examine.\n"
@@ -20003,15 +20527,15 @@ msgid ""
 "with this command or \"print\"."
 msgstr ""
 
-#: printcmd.c:2758
+#: printcmd.c:2641
 msgid "Print line number and file of definition of variable."
 msgstr ""
 
-#: printcmd.c:2761
+#: printcmd.c:2644
 msgid "Expressions to display when program stops, with code numbers."
 msgstr ""
 
-#: printcmd.c:2764
+#: printcmd.c:2647
 msgid ""
 "Cancel some expressions to be displayed when program stops.\n"
 "Arguments are the code numbers of the expressions to stop displaying.\n"
@@ -20020,7 +20544,7 @@ msgid ""
 "Do \"info display\" to see current list of code numbers."
 msgstr ""
 
-#: printcmd.c:2772
+#: printcmd.c:2655
 msgid ""
 "Print value of expression EXP each time the program stops.\n"
 "/FMT may be used before EXP as in the \"print\" command.\n"
@@ -20032,7 +20556,7 @@ msgid ""
 "Use \"undisplay\" to cancel display requests previously made."
 msgstr ""
 
-#: printcmd.c:2781
+#: printcmd.c:2664
 msgid ""
 "Enable some expressions to be displayed when program stops.\n"
 "Arguments are the code numbers of the expressions to resume displaying.\n"
@@ -20040,7 +20564,7 @@ msgid ""
 "Do \"info display\" to see current list of code numbers."
 msgstr ""
 
-#: printcmd.c:2787
+#: printcmd.c:2670
 msgid ""
 "Disable some expressions to be displayed when program stops.\n"
 "Arguments are the code numbers of the expressions to stop displaying.\n"
@@ -20048,7 +20572,7 @@ msgid ""
 "Do \"info display\" to see current list of code numbers."
 msgstr ""
 
-#: printcmd.c:2793
+#: printcmd.c:2676
 msgid ""
 "Cancel some expressions to be displayed when program stops.\n"
 "Arguments are the code numbers of the expressions to stop displaying.\n"
@@ -20056,19 +20580,19 @@ msgid ""
 "Do \"info display\" to see current list of code numbers."
 msgstr ""
 
-#: printcmd.c:2799
+#: printcmd.c:2682
 msgid ""
 "printf \"printf format string\", arg1, arg2, arg3, ..., argn\n"
 "This is useful for formatted output in user-defined commands."
 msgstr ""
 
-#: printcmd.c:2803
+#: printcmd.c:2686
 msgid ""
 "Like \"print\" but don't put in value history and don't print newline.\n"
 "This is useful in user-defined commands."
 msgstr ""
 
-#: printcmd.c:2807 printcmd.c:2819
+#: printcmd.c:2690 printcmd.c:2702
 msgid ""
 "Evaluate expression EXP and assign result to variable VAR, using assignment\n"
 "syntax appropriate for the current language (VAR = EXP or VAR := EXP for\n"
@@ -20082,7 +20606,7 @@ msgid ""
 msgstr ""
 
 #. "call" is the same as "set", but handy for dbx users to call fns.
-#: printcmd.c:2830
+#: printcmd.c:2713
 msgid ""
 "Call a function in the program.\n"
 "The argument is the function name and arguments, in the notation of the\n"
@@ -20090,7 +20614,7 @@ msgid ""
 "history, if it is not void."
 msgstr ""
 
-#: printcmd.c:2837
+#: printcmd.c:2720
 msgid ""
 "Evaluate expression EXP and assign result to variable VAR, using assignment\n"
 "syntax appropriate for the current language (VAR = EXP or VAR := EXP for\n"
@@ -20100,7 +20624,7 @@ msgid ""
 "This may usually be abbreviated to simply \"set\"."
 msgstr ""
 
-#: printcmd.c:2846
+#: printcmd.c:2729
 msgid ""
 "Print value of expression EXP.\n"
 "Variables accessible are those of the lexical environment of the selected\n"
@@ -20126,15 +20650,15 @@ msgid ""
 "but no count or size letter (see \"x\" command)."
 msgstr ""
 
-#: printcmd.c:2873
+#: printcmd.c:2756
 msgid "Set the largest offset that will be printed in <symbol+1234> form."
 msgstr ""
 
-#: printcmd.c:2874
+#: printcmd.c:2757
 msgid "Show the largest offset that will be printed in <symbol+1234> form."
 msgstr ""
 
-#: printcmd.c:2875
+#: printcmd.c:2758
 msgid ""
 "Tell GDB to only display the symbolic form of an address if the\n"
 "offset between the closest earlier symbol and the address is less than\n"
@@ -20144,112 +20668,112 @@ msgid ""
 "it.  Zero is equivalent to \"unlimited\"."
 msgstr ""
 
-#: printcmd.c:2885
+#: printcmd.c:2768
 msgid "Set printing of source filename and line number with <symbol>."
 msgstr ""
 
-#: printcmd.c:2886
+#: printcmd.c:2769
 msgid "Show printing of source filename and line number with <symbol>."
 msgstr ""
 
-#: printcmd.c:2892
+#: printcmd.c:2775
 msgid ""
 "Convert \"printf format string\", arg1, arg2, arg3, ..., argn to\n"
 "a command line, and call it."
 msgstr ""
 
-#: probe.c:128
+#: probe.c:133
 #, possible-c-format
 msgid "'%s' is not a probe linespec"
 msgstr ""
 
-#: probe.c:133
+#: probe.c:138
 #, possible-c-format
 msgid "argument to `%s' missing"
 msgstr ""
 
-#: probe.c:171
+#: probe.c:176
 msgid "no probe name specified"
 msgstr ""
 
-#: probe.c:173
+#: probe.c:178
 msgid "invalid provider name"
 msgstr ""
 
-#: probe.c:175
+#: probe.c:180
 msgid "invalid objfile name"
 msgstr ""
 
-#: probe.c:194
+#: probe.c:200
 #, possible-c-format
 msgid "No probe matching objfile=`%s', provider=`%s', name=`%s'"
 msgstr ""
 
-#: probe.c:195 probe.c:196
+#: probe.c:201 probe.c:202
 msgid "<any>"
 msgstr ""
 
-#: probe.c:298
+#: probe.c:293
 msgid "Invalid provider regexp"
 msgstr ""
 
-#: probe.c:300
+#: probe.c:296
 msgid "Invalid probe regexp"
 msgstr ""
 
-#: probe.c:302
+#: probe.c:299
 msgid "Invalid object file regexp"
 msgstr ""
 
-#: probe.c:468
+#: probe.c:414
 msgid "n/a"
 msgstr ""
 
-#: probe.c:655
+#: probe.c:552
 msgid "Type"
 msgstr ""
 
-#: probe.c:657
+#: probe.c:554
 msgid "Provider"
 msgstr ""
 
-#: probe.c:658
+#: probe.c:555
 msgid "Name"
 msgstr ""
 
-#: probe.c:659
+#: probe.c:556
 msgid "Where"
 msgstr ""
 
-#: probe.c:676
+#: probe.c:570
 msgid "Object"
 msgstr ""
 
-#: probe.c:719 probe.c:749 probe.c:793
+#: probe.c:609 probe.c:633 probe.c:668
 msgid "No probes matched.\n"
 msgstr ""
 
-#: probe.c:763
+#: probe.c:644
 #, possible-c-format
 msgid "Probe %s:%s enabled.\n"
 msgstr ""
 
-#: probe.c:767
+#: probe.c:649
 #, possible-c-format
 msgid "Probe %s:%s cannot be enabled.\n"
 msgstr ""
 
-#: probe.c:807
+#: probe.c:679
 #, possible-c-format
 msgid "Probe %s:%s disabled.\n"
 msgstr ""
 
-#: probe.c:811
+#: probe.c:684
 #, possible-c-format
 msgid "Probe %s:%s cannot be disabled.\n"
 msgstr ""
 
-#: probe.c:943
+#: probe.c:788
 msgid ""
 "Show available static probes.\n"
 "Usage: info probes [all|TYPE [ARGS]]\n"
@@ -20261,26 +20785,26 @@ msgid ""
 "will show information about all types of probes."
 msgstr ""
 
-#: probe.c:979 probe.c:1011
+#: probe.c:823 probe.c:854
 #, possible-c-format
 msgid "No probe at PC %s"
 msgstr ""
 
-#: probe.c:986
+#: probe.c:830
 #, possible-c-format
 msgid "Invalid probe argument %d -- probe has %u arguments available"
 msgstr ""
 
-#: probe.c:1025
+#: probe.c:868
 #, possible-c-format
 msgid "Invalid probe argument %d -- probe has %d arguments available"
 msgstr ""
 
-#: probe.c:1076
+#: probe.c:917
 msgid "Show information about all type of probes."
 msgstr ""
 
-#: probe.c:1080
+#: probe.c:921
 msgid ""
 "Enable probes.\n"
 "Usage: enable probes [PROVIDER [NAME [OBJECT]]]\n"
@@ -20292,7 +20816,7 @@ msgid ""
 "all defined probes."
 msgstr ""
 
-#: probe.c:1091
+#: probe.c:932
 msgid ""
 "Disable probes.\n"
 "Usage: disable probes [PROVIDER [NAME [OBJECT]]]\n"
@@ -20304,274 +20828,251 @@ msgid ""
 "all defined probes."
 msgstr ""
 
-#: proc-api.c:780
+#: proc-api.c:424
 msgid "Set tracing for /proc api calls."
 msgstr ""
 
-#: proc-api.c:781
+#: proc-api.c:425
 msgid "Show tracing for /proc api calls."
 msgstr ""
 
-#: proc-api.c:788
+#: proc-api.c:432
 msgid "Set filename for /proc tracefile."
 msgstr ""
 
-#: proc-api.c:789
+#: proc-api.c:433
 msgid "Show filename for /proc tracefile."
 msgstr ""
 
-#: procfs.c:483
+#: procfs.c:331
 #, possible-c-format
 msgid "procfs: couldn't find pid %d (kernel thread %d) in procinfo list."
 msgstr ""
 
-#: procfs.c:487
+#: procfs.c:335
 #, possible-c-format
 msgid "procfs: couldn't find pid %d in procinfo list."
 msgstr ""
 
-#: procfs.c:884
-#, possible-c-format
-msgid "load_syscalls: Can't open /proc/%d/sysent"
-msgstr ""
-
-#: procfs.c:891 procfs.c:905
-#, possible-c-format
-msgid "load_syscalls: Error reading /proc/%d/sysent"
-msgstr ""
-
-#: procfs.c:896
-#, possible-c-format
-msgid "load_syscalls: /proc/%d/sysent contains no syscalls!"
-msgstr ""
-
-#: procfs.c:1365
+#: procfs.c:812
 #, possible-c-format
 msgid "procfs: modify_flag failed to turn %s %s"
 msgstr ""
 
-#: procfs.c:1609
+#: procfs.c:1005
 msgid "procfs: set_traced_signals failed"
 msgstr ""
 
-#: procfs.c:2572
+#: procfs.c:1648
 #, possible-c-format
 msgid "procfs_find_LDT_entry: could not find procinfo for %d:%ld."
 msgstr ""
 
-#: procfs.c:2579
+#: procfs.c:1655
 #, possible-c-format
 msgid "procfs_find_LDT_entry: could not read gregs for %d:%ld."
 msgstr ""
 
-#: procfs.c:3045
+#: procfs.c:1913
 #, possible-c-format
 msgid "Attaching to program `%s', %s\n"
 msgstr ""
 
-#: procfs.c:3075 target.c:3304
+#: procfs.c:1943 target.c:3190
 #, possible-c-format
 msgid "Detaching from program: %s, %s\n"
 msgstr ""
 
-#: procfs.c:3096
+#: procfs.c:1964
 msgid "procfs: out of memory in 'attach'"
 msgstr ""
 
-#: procfs.c:3186
+#: procfs.c:2054
 msgid "Was stopped when attached, make it runnable again? "
 msgstr ""
 
-#: procfs.c:3230
+#: procfs.c:2098
 #, possible-c-format
 msgid "procfs: fetch_registers failed to find procinfo for %s"
 msgstr ""
 
-#: procfs.c:3280
+#: procfs.c:2148
 #, possible-c-format
 msgid "procfs: store_registers: failed to find procinfo for %s"
 msgstr ""
 
-#: procfs.c:3424
-#, possible-c-format
-msgid "Failed to create a bfd: %s."
-msgstr ""
-
-#: procfs.c:3446
-msgid "Failed to insert dbx_link breakpoint."
-msgstr ""
-
-#: procfs.c:3583
+#: procfs.c:2267
 #, possible-c-format
 msgid "procfs: couldn't stop process %d: wait returned %d."
 msgstr ""
 
-#: procfs.c:3691
+#: procfs.c:2373
 msgid "procfs: trapped on entry to "
 msgstr ""
 
-#: procfs.c:3701 procfs.c:3804
+#: procfs.c:2382 procfs.c:2466
 #, possible-c-format
 msgid "%ld syscall arguments:\n"
 msgstr ""
 
-#: procfs.c:3794
+#: procfs.c:2457
 msgid "procfs: trapped on exit from "
 msgstr ""
 
-#: procfs.c:3823
+#: procfs.c:2484
 #, possible-c-format
 msgid "Retry #%d:\n"
 msgstr ""
 
-#: procfs.c:3891 procfs.c:3899
+#: procfs.c:2537 procfs.c:2545
 msgid "child stopped for unknown reason:\n"
 msgstr ""
 
-#: procfs.c:3893 procfs.c:3901
+#: procfs.c:2539 procfs.c:2547
 msgid "... giving up..."
 msgstr ""
 
-#: procfs.c:3926
+#: procfs.c:2572
 msgid "procfs: ...giving up..."
 msgstr ""
 
-#: procfs.c:4162
+#: procfs.c:2804
 msgid ""
 "resume: target already running.  Pretend to resume, and hope for the best!"
 msgstr ""
 
-#: procfs.c:4199
+#: procfs.c:2841
 #, possible-c-format
 msgid "\tUsing the running image of %s %s via /proc.\n"
 msgstr ""
 
-#: procfs.c:4320
+#: procfs.c:2942
 msgid "procfs: out of memory in 'init_inferior'"
 msgstr ""
 
-#: procfs.c:4427
+#: procfs.c:3024
 msgid "procfs: create_procinfo failed in child."
 msgstr ""
 
 #. Not found.  This must be an error rather than merely passing
 #. the file to execlp(), because execlp() would try all the
 #. exec()s, causing GDB to get confused.
-#: procfs.c:4598
+#: procfs.c:3153
 #, possible-c-format
 msgid "procfs:%d -- Can't find shell %s in PATH"
 msgstr ""
 
-#: procfs.c:5162
+#: procfs.c:3671
 #, possible-c-format
 msgid "process %d flags:\n"
 msgstr ""
 
-#: procfs.c:5172
+#: procfs.c:3681
 #, possible-c-format
 msgid "thread %d flags:\n"
 msgstr ""
 
-#: procfs.c:5232
+#: procfs.c:3741
 msgid "you must be debugging a process to use this command."
 msgstr ""
 
-#: procfs.c:5235
+#: procfs.c:3744
 msgid "system call to trace"
 msgstr ""
 
-#: procfs.c:5280
+#: procfs.c:3785
 msgid "Give a trace of entries into the syscall."
 msgstr ""
 
-#: procfs.c:5282
+#: procfs.c:3787
 msgid "Give a trace of exits from the syscall."
 msgstr ""
 
-#: procfs.c:5284
+#: procfs.c:3789
 msgid "Cancel a trace of entries into the syscall."
 msgstr ""
 
-#: procfs.c:5286
+#: procfs.c:3791
 msgid "Cancel a trace of exits from the syscall."
 msgstr ""
 
-#: procfs.c:5480
-msgid "gcore not implemented for this host."
+#: producer.c:121
+#, possible-c-format
+msgid "Could not recognize version of Intel Compiler in: \"%s\""
 msgstr ""
 
-#: progspace.c:390
+#: progspace.c:344
 #, possible-c-format
 msgid "program space ID %d not known."
 msgstr ""
 
-#: progspace.c:517
+#: progspace.c:426
 msgid "Info about currently known program spaces."
 msgstr ""
 
-#: psymtab.c:83 symfile.c:1172
+#: psymtab.c:85 symfile.c:1167
 #, possible-c-format
 msgid "Reading symbols from %s..."
 msgstr ""
 
-#: psymtab.c:93 symfile.c:1200
+#: psymtab.c:101 symfile.c:1195
 msgid "(no debugging symbols found)..."
 msgstr ""
 
 #. Might want to error() here (in case symtab is corrupt and
 #. will cause a core dump), but maybe we can successfully
 #. continue, so let's not.
-#: psymtab.c:388
+#: psymtab.c:396
 #, possible-c-format
 msgid "(Internal error: pc %s in read in psymtab, but not in symtab.)\n"
 msgstr ""
 
-#: psymtab.c:842
+#: psymtab.c:854
 msgid "select_source_symtab: readin pst found and no symtabs."
 msgstr ""
 
-#: psymtab.c:1055
+#: psymtab.c:1065
 #, possible-c-format
 msgid "  Number of psym tables (not yet expanded): %d\n"
 msgstr ""
 
-#: psymtab.c:1928 symmisc.c:426
+#: psymtab.c:1969 symmisc.c:416
 msgid "Missing pc value"
 msgstr ""
 
-#: psymtab.c:1934 symmisc.c:432
+#: psymtab.c:1975 symmisc.c:422
 msgid "Missing source file"
 msgstr ""
 
-#: psymtab.c:1940 symmisc.c:438 symmisc.c:729
+#: psymtab.c:1981 symmisc.c:428 symmisc.c:706
 msgid "Missing objfile name"
 msgstr ""
 
 #. Future proofing: Don't allow OUTFILE to begin with "-".
-#: psymtab.c:1952 symmisc.c:450 symmisc.c:741
+#: psymtab.c:1993 symmisc.c:440 symmisc.c:718
 #, possible-c-format
 msgid "Unknown option: %s"
 msgstr ""
 
-#: psymtab.c:1960 symmisc.c:458
+#: psymtab.c:2001 symmisc.c:448
 msgid "Must specify at most one of -pc and -source"
 msgstr ""
 
-#: psymtab.c:1969 symmisc.c:467 symmisc.c:755
+#: psymtab.c:2008 symmisc.c:455 symmisc.c:730
 msgid "Junk at end of command"
 msgstr ""
 
-#: psymtab.c:2060
+#: psymtab.c:2099
 #, possible-c-format
 msgid "No partial symtab for address: %s"
 msgstr ""
 
-#: psymtab.c:2062
+#: psymtab.c:2101
 #, possible-c-format
 msgid "No partial symtab for source file: %s"
 msgstr ""
 
-#: psymtab.c:2273
+#: psymtab.c:2309
 msgid ""
 "Print dump of current partial symbol definitions.\n"
 "Usage: mt print psymbols [-objfile objfile] [-pc address] [--] [outfile]\n"
@@ -20583,99 +21084,99 @@ msgid ""
 "If OBJFILE is provided, dump only that file's minimal symbols."
 msgstr ""
 
-#: psymtab.c:2284
+#: psymtab.c:2320
 msgid ""
 "List the partial symbol tables for all object files.\n"
 "This does not include information about individual partial symbols,\n"
 "just the symbol table structures themselves."
 msgstr ""
 
-#: psymtab.c:2291
+#: psymtab.c:2327
 msgid "Check consistency of currently expanded psymtabs versus symtabs."
 msgstr ""
 
-#: p-typeprint.c:300
+#: p-typeprint.c:302
 msgid "type not handled in pascal_type_print_varspec_prefix()"
 msgstr ""
 
-#: p-typeprint.c:422
+#: p-typeprint.c:435
 msgid "type not handled in pascal_type_print_varspec_suffix()"
 msgstr ""
 
-#: p-valprint.c:413
+#: p-valprint.c:416
 #, possible-c-format
 msgid "Invalid pascal type code %d in symbol table."
 msgstr ""
 
-#: p-valprint.c:461
+#: p-valprint.c:464
 #, possible-c-format
 msgid "Printing of pascal static members is %s.\n"
 msgstr ""
 
-#: p-valprint.c:901
+#: p-valprint.c:897
 msgid "Set printing of pascal static members."
 msgstr ""
 
-#: p-valprint.c:902
+#: p-valprint.c:898
 msgid "Show printing of pascal static members."
 msgstr ""
 
-#: python/py-cmd.c:121 python/py-cmd.c:234
+#: python/py-cmd.c:120 python/py-cmd.c:233
 msgid "Invalid invocation of Python command object."
 msgstr ""
 
-#: python/py-cmd.c:129
+#: python/py-cmd.c:128
 msgid "Python command object missing 'invoke' method."
 msgstr ""
 
-#: python/py-cmd.c:139
+#: python/py-cmd.c:138
 msgid "Could not convert arguments to Python string."
 msgstr ""
 
 #. An error occurred computing the string representation of the
 #. error message.  This is rare, but we should inform the user.
-#: python/py-cmd.c:165
+#: python/py-cmd.c:164
 msgid ""
 "An error occurred in a Python command\n"
 "and then another occurred computing the error message.\n"
 msgstr ""
 
-#: python/py-cmd.c:184
+#: python/py-cmd.c:183
 #, possible-c-format
 msgid "Error occurred in Python command: %s"
 msgstr ""
 
-#: python/py-cmd.c:186
+#: python/py-cmd.c:185
 msgid "Error occurred in Python command."
 msgstr ""
 
-#: python/py-cmd.c:244 python/py-cmd.c:248
+#: python/py-cmd.c:243 python/py-cmd.c:257
 msgid "Could not convert argument to Python string."
 msgstr ""
 
-#: python/py-cmd.c:410
+#: python/py-cmd.c:421
 msgid "No command name found."
 msgstr ""
 
-#: python/py-cmd.c:442
+#: python/py-cmd.c:453
 #, possible-c-format
 msgid "Could not find command prefix %s."
 msgstr ""
 
-#: python/py-cmd.c:456
+#: python/py-cmd.c:467
 #, possible-c-format
 msgid "'%s' is not a prefix command."
 msgstr ""
 
-#: python/py-cmd.c:503
+#: python/py-cmd.c:514
 msgid "Command object already initialized."
 msgstr ""
 
-#: python/py-cmd.c:519 python/py-param.c:662
+#: python/py-cmd.c:530 python/py-param.c:652
 msgid "Invalid command class argument."
 msgstr ""
 
-#: python/py-cmd.c:526
+#: python/py-cmd.c:537
 msgid "Invalid completion type argument."
 msgstr ""
 
@@ -20721,7 +21222,7 @@ msgstr ""
 
 #: python/py-xmethods.c:573 python/py-xmethods.c:580 python/py-xmethods.c:594
 #: python/py-xmethods.c:605 python/py-xmethods.c:614 python/python.c:323
-#: python/python.c:416 python/python.c:432 python/py-function.c:141
+#: python/python.c:401 python/python.c:417 python/py-function.c:141
 #: python/py-prettyprint.c:623
 msgid "Error while executing Python code."
 msgstr ""
@@ -20777,28 +21278,28 @@ msgstr ""
 msgid "Frame is invalid."
 msgstr ""
 
-#: python/py-frame.c:273
+#: python/py-frame.c:272
 msgid "Unknown register."
 msgstr ""
 
-#: python/py-frame.c:312
+#: python/py-frame.c:311
 msgid "Cannot locate block for frame."
 msgstr ""
 
-#: python/py-frame.c:525 python/py-type.c:915
+#: python/py-frame.c:522 python/py-type.c:911
 msgid "Second argument must be block."
 msgstr ""
 
-#: python/py-frame.c:551
+#: python/py-frame.c:548
 #, possible-c-format
 msgid "Variable '%s' not found."
 msgstr ""
 
-#: python/py-frame.c:559
+#: python/py-frame.c:556
 msgid "Argument must be a symbol or string."
 msgstr ""
 
-#: python/py-frame.c:657
+#: python/py-frame.c:654
 msgid "Invalid frame stop reason."
 msgstr ""
 
@@ -20824,7 +21325,7 @@ msgstr ""
 msgid "Argument must be a type."
 msgstr ""
 
-#: python/py-value.c:629 python/py-value.c:1442 python/py-value.c:1473
+#: python/py-value.c:629 python/py-value.c:1439 python/py-value.c:1470
 msgid "Invalid operation on gdb.Value."
 msgstr ""
 
@@ -20852,58 +21353,58 @@ msgstr ""
 msgid "Setting of struct elements is not currently supported."
 msgstr ""
 
-#: python/py-value.c:893
+#: python/py-value.c:892
 msgid "Value is not callable (not TYPE_CODE_FUNC)."
 msgstr ""
 
-#: python/py-value.c:900
+#: python/py-value.c:899
 msgid "Inferior arguments must be provided in a tuple."
 msgstr ""
 
-#: python/py-value.c:1509
+#: python/py-value.c:1506
 msgid "Cannot convert value to int."
 msgstr ""
 
-#: python/py-value.c:1537
+#: python/py-value.c:1534
 msgid "Cannot convert value to long."
 msgstr ""
 
-#: python/py-value.c:1566
+#: python/py-value.c:1563
 msgid "Cannot convert value to float."
 msgstr ""
 
-#: python/py-value.c:1708
+#: python/py-value.c:1709
 #, possible-c-format
 msgid "Could not convert Python object: %S."
 msgstr ""
 
-#: python/py-value.c:1711
+#: python/py-value.c:1712
 #, possible-c-format
 msgid "Could not convert Python object: %s."
 msgstr ""
 
-#: python/py-unwind.c:188
+#: python/py-unwind.c:179
 #, possible-c-format
 msgid "The value of the '%s' attribute is not a pointer."
 msgstr ""
 
-#: python/py-unwind.c:442
+#: python/py-unwind.c:433
 msgid "frame_id should have 'sp' attribute."
 msgstr ""
 
-#: python/py-unwind.c:560
+#: python/py-unwind.c:558
 msgid "A Unwinder should return gdb.UnwindInfo instance."
 msgstr ""
 
-#: python/py-unwind.c:654
+#: python/py-unwind.c:658
 msgid "Set Python unwinder debugging."
 msgstr ""
 
-#: python/py-unwind.c:655
+#: python/py-unwind.c:659
 msgid "Show Python unwinder debugging."
 msgstr ""
 
-#: python/py-unwind.c:656
+#: python/py-unwind.c:660
 msgid "When non-zero, Python unwinder debugging is enabled."
 msgstr ""
 
@@ -20919,24 +21420,24 @@ msgstr ""
 msgid "Type does not have a target."
 msgstr ""
 
-#: python/py-type.c:843
+#: python/py-type.c:839
 msgid "Null type name."
 msgstr ""
 
-#: python/py-type.c:872
+#: python/py-type.c:868
 msgid "Type is not a template."
 msgstr ""
 
-#: python/py-type.c:884 python/py-type.c:940
+#: python/py-type.c:880 python/py-type.c:936
 #, possible-c-format
 msgid "No argument %d in template."
 msgstr ""
 
-#: python/py-type.c:951
+#: python/py-type.c:947
 msgid "Template argument is optimized out"
 msgstr ""
 
-#: python/py-type.c:1366
+#: python/py-type.c:1361
 msgid "'block' argument must be a Block."
 msgstr ""
 
@@ -20960,7 +21461,7 @@ msgstr ""
 msgid "Python not initialized"
 msgstr ""
 
-#: python/python.c:233 python/python.c:1857
+#: python/python.c:233 python/python.c:1977
 msgid "internal error: Unhandled Python exception"
 msgstr ""
 
@@ -20969,41 +21470,45 @@ msgstr ""
 msgid "Error while opening file: %s"
 msgstr ""
 
-#: python/python.c:408
+#: python/python.c:394
 msgid "Invalid \"python\" block structure."
 msgstr ""
 
-#: python/python.c:503
+#: python/python.c:488
 msgid "Programmer error: unhandled type."
 msgstr ""
 
-#: python/python.c:537
+#: python/python.c:522
 #, possible-c-format
 msgid "Could not find parameter `%s'."
 msgstr ""
 
-#: python/python.c:541
+#: python/python.c:526
 #, possible-c-format
 msgid "`%s' is not a parameter."
 msgstr ""
 
-#: python/python.c:919
+#: python/python.c:777
+msgid "Number of breakpoints exceeds throttled maximum."
+msgstr ""
+
+#: python/python.c:1056
 msgid "Posted event is not callable"
 msgstr ""
 
-#: python/python.c:1007
+#: python/python.c:1144
 msgid "Return from prompt_hook must be either a Python string, or None"
 msgstr ""
 
-#: python/python.c:1168
+#: python/python.c:1305
 msgid "Error occurred computing Python errormessage.\n"
 msgstr ""
 
-#: python/python.c:1450
+#: python/python.c:1587
 msgid "Python scripting is not supported in this copy of GDB."
 msgstr ""
 
-#: python/python.c:1705
+#: python/python.c:1825
 msgid ""
 "Start an interactive Python prompt.\n"
 "\n"
@@ -21018,7 +21523,7 @@ msgid ""
 "    5\n"
 msgstr ""
 
-#: python/python.c:1719
+#: python/python.c:1839
 msgid ""
 "Start a Python interactive prompt.\n"
 "\n"
@@ -21026,7 +21531,7 @@ msgid ""
 "This command is only a placeholder."
 msgstr ""
 
-#: python/python.c:1730
+#: python/python.c:1850
 msgid ""
 "Evaluate a Python command.\n"
 "\n"
@@ -21039,7 +21544,7 @@ msgid ""
 "the end of the command."
 msgstr ""
 
-#: python/python.c:1741
+#: python/python.c:1861
 msgid ""
 "Evaluate a Python command.\n"
 "\n"
@@ -21047,21 +21552,21 @@ msgid ""
 "This command is only a placeholder."
 msgstr ""
 
-#: python/python.c:1752 python/python.c:1757
+#: python/python.c:1872 python/python.c:1877
 msgid "Prefix command for python preference settings."
 msgstr ""
 
-#: python/python.c:1762
+#: python/python.c:1882
 msgid "Set mode for Python stack dump on error."
 msgstr ""
 
-#: python/python.c:1763
+#: python/python.c:1883
 msgid "Show the mode of Python stack printing on error."
 msgstr ""
 
 #. This is passed in one call to warning so that blank lines aren't
 #. inserted between each line of text.
-#: python/python.c:1830
+#: python/python.c:1950
 #, possible-c-format
 msgid ""
 "\n"
@@ -21075,27 +21580,31 @@ msgstr ""
 msgid "Inferior no longer exists."
 msgstr ""
 
-#: python/py-inferior.c:565
+#: python/py-inferior.c:628
 #, possible-c-format
 msgid "Memory buffer for address %s, which is %s bytes long."
 msgstr ""
 
-#: python/py-inferior.c:600
+#: python/py-inferior.c:663
 msgid "The memory buffer supports only one segment."
 msgstr ""
 
-#: python/py-inferior.c:679
+#: python/py-inferior.c:742
 msgid "The pattern is not a Python buffer."
 msgstr ""
 
-#: python/py-inferior.c:699
+#: python/py-inferior.c:762
 msgid "Search range is empty."
 msgstr ""
 
-#: python/py-inferior.c:707
+#: python/py-inferior.c:770
 msgid "The search range is too large."
 msgstr ""
 
+#: python/py-inferior.c:837
+msgid "Argument 'handle_obj' must be a thread handle object."
+msgstr ""
+
 #. Require a valid symbol.  All access to symbol_object->symbol should be
 #. gated by this call.
 #: python/py-symbol.c:48
@@ -21194,7 +21703,7 @@ msgid "Must be gdb.RecordInstruction"
 msgstr ""
 
 #: python/py-record-btrace.c:88 python/py-record-btrace.c:94
-#: record-btrace.c:2787
+#: record-btrace.c:2776
 msgid "No such instruction."
 msgstr ""
 
@@ -21214,96 +21723,118 @@ msgstr ""
 msgid "Not a valid function segment."
 msgstr ""
 
-#: python/py-record-btrace.c:471
+#: python/py-record-btrace.c:470
 #, possible-c-format
 msgid "Index out of range: %zd."
 msgstr ""
 
-#: python/py-record-btrace.c:503
+#: python/py-record-btrace.c:502
 msgid "Index must be int or slice."
 msgstr ""
 
-#: python/py-record-btrace.c:560
+#: python/py-record-btrace.c:559
 msgid "Not in list."
 msgstr ""
 
-#: python/py-record-btrace.c:781
+#: python/py-record-btrace.c:780
 msgid "Empty branch trace."
 msgstr ""
 
-#: python/py-record-btrace.c:787
+#: python/py-record-btrace.c:786
 msgid "Argument must be instruction."
 msgstr ""
 
-#: python/py-breakpoint.c:125
+#: python/py-breakpoint.c:126
 msgid "Cannot delete `enabled' attribute."
 msgstr ""
 
-#: python/py-breakpoint.c:132
+#: python/py-breakpoint.c:133
 msgid "The value of `enabled' must be a boolean."
 msgstr ""
 
-#: python/py-breakpoint.c:168
+#: python/py-breakpoint.c:169
 msgid "Cannot delete `silent' attribute."
 msgstr ""
 
-#: python/py-breakpoint.c:174
+#: python/py-breakpoint.c:175
 msgid "The value of `silent' must be a boolean."
 msgstr ""
 
-#: python/py-breakpoint.c:199
+#: python/py-breakpoint.c:200
 msgid "Cannot delete `thread' attribute."
 msgstr ""
 
-#: python/py-breakpoint.c:210
+#: python/py-breakpoint.c:211
 msgid "Invalid thread ID."
 msgstr ""
 
-#: python/py-breakpoint.c:219
+#: python/py-breakpoint.c:220
 msgid "The value of `thread' must be an integer or None."
 msgstr ""
 
-#: python/py-breakpoint.c:241
+#: python/py-breakpoint.c:242
 msgid "Cannot delete `task' attribute."
 msgstr ""
 
-#: python/py-breakpoint.c:262
+#: python/py-breakpoint.c:263
 msgid "Invalid task ID."
 msgstr ""
 
-#: python/py-breakpoint.c:271
+#: python/py-breakpoint.c:272
 msgid "The value of `task' must be an integer or None."
 msgstr ""
 
-#: python/py-breakpoint.c:318
+#: python/py-breakpoint.c:319
 msgid "Cannot delete `ignore_count' attribute."
 msgstr ""
 
-#: python/py-breakpoint.c:324
+#: python/py-breakpoint.c:325
 msgid "The value of `ignore_count' must be an integer."
 msgstr ""
 
-#: python/py-breakpoint.c:358
+#: python/py-breakpoint.c:359
 msgid "Cannot delete `hit_count' attribute."
 msgstr ""
 
-#: python/py-breakpoint.c:371
+#: python/py-breakpoint.c:372
 msgid "The value of `hit_count' must be zero."
 msgstr ""
 
-#: python/py-breakpoint.c:453
+#: python/py-breakpoint.c:454
 msgid "Cannot delete `condition' attribute."
 msgstr ""
 
-#: python/py-breakpoint.c:704
+#: python/py-breakpoint.c:650
+msgid ""
+"Breakpoints specified with spec cannot have source, function, label or line "
+"defined."
+msgstr ""
+
+#: python/py-breakpoint.c:662
+msgid "Watchpoints cannot be set by explicit location parameters."
+msgstr ""
+
+#: python/py-breakpoint.c:673
+msgid "Neither spec nor explicit location set."
+msgstr ""
+
+#: python/py-breakpoint.c:682
+msgid "Specifying a source must also include a line, label or function."
+msgstr ""
+
+#: python/py-breakpoint.c:730
+msgid "Line keyword should be an integer or a string. "
+msgstr ""
+
+#: python/py-breakpoint.c:820
 msgid "Cannot understand watchpoint access type."
 msgstr ""
 
-#: python/py-breakpoint.c:708
+#: python/py-breakpoint.c:824
 msgid "Do not understand breakpoint type to set."
 msgstr ""
 
-#: python/py-breakpoint.c:886
+#: python/py-breakpoint.c:1002
 msgid "Error while creating breakpoint from GDB."
 msgstr ""
 
@@ -21347,39 +21878,39 @@ msgstr ""
 msgid "Parameter must return a string value."
 msgstr ""
 
-#: python/py-param.c:563
+#: python/py-param.c:562
 msgid "An enumeration is required for PARAM_ENUM."
 msgstr ""
 
-#: python/py-param.c:570
+#: python/py-param.c:569
 msgid "The enumeration is not a sequence."
 msgstr ""
 
-#: python/py-param.c:580
+#: python/py-param.c:579
 msgid "The enumeration is empty."
 msgstr ""
 
-#: python/py-param.c:600
+#: python/py-param.c:595
 msgid "The enumeration item not a string."
 msgstr ""
 
-#: python/py-param.c:674
+#: python/py-param.c:664
 msgid "Invalid parameter class argument."
 msgstr ""
 
-#: python/py-param.c:681
+#: python/py-param.c:671
 msgid "Only PARAM_ENUM accepts a fourth argument."
 msgstr ""
 
-#: python/py-varobj.c:109
+#: python/py-varobj.c:108
 msgid "Invalid item from the child list"
 msgstr ""
 
-#: python/py-varobj.c:178
+#: python/py-varobj.c:177
 msgid "Null value returned for children"
 msgstr ""
 
-#: python/py-varobj.c:185
+#: python/py-varobj.c:184
 msgid "Could not get children iterator"
 msgstr ""
 
@@ -21487,35 +22018,40 @@ msgstr ""
 msgid "Argument must be a gdb.Value."
 msgstr ""
 
-#: ravenscar-thread.c:396
+#: ravenscar-thread.c:540
+#, possible-c-format
+msgid "%s. Task/thread support disabled."
+msgstr ""
+
+#: ravenscar-thread.c:596
 msgid "\"set ravenscar\" must be followed by the name of a setting.\n"
 msgstr ""
 
-#: ravenscar-thread.c:417
+#: ravenscar-thread.c:617
 msgid "Support for Ravenscar task/thread switching is enabled\n"
 msgstr ""
 
-#: ravenscar-thread.c:420
+#: ravenscar-thread.c:620
 msgid "Support for Ravenscar task/thread switching is disabled\n"
 msgstr ""
 
-#: ravenscar-thread.c:443
+#: ravenscar-thread.c:640
 msgid "Prefix command for changing Ravenscar-specific settings"
 msgstr ""
 
-#: ravenscar-thread.c:447
+#: ravenscar-thread.c:644
 msgid "Prefix command for showing Ravenscar-specific settings"
 msgstr ""
 
-#: ravenscar-thread.c:451
+#: ravenscar-thread.c:648
 msgid "Enable or disable support for GNAT Ravenscar tasks"
 msgstr ""
 
-#: ravenscar-thread.c:452
+#: ravenscar-thread.c:649
 msgid "Show whether support for GNAT Ravenscar tasks is enabled"
 msgstr ""
 
-#: ravenscar-thread.c:454
+#: ravenscar-thread.c:651
 msgid ""
 "Enable or disable support for task/thread switching with the GNAT\n"
 "Ravenscar run-time library for bareboard configuration."
@@ -21558,89 +22094,89 @@ msgstr ""
 msgid "]\n"
 msgstr ""
 
-#: record-btrace.c:737 record-btrace.c:869
+#: record-btrace.c:737 record-btrace.c:865
 msgid "Bad record instruction-history-size."
 msgstr ""
 
-#: record-btrace.c:797 record-btrace.c:1161
+#: record-btrace.c:797 record-btrace.c:1153
 msgid "At the start of the branch trace record.\n"
 msgstr ""
 
-#: record-btrace.c:799 record-btrace.c:1163
+#: record-btrace.c:799 record-btrace.c:1155
 msgid "At the end of the branch trace record.\n"
 msgstr ""
 
-#: record-btrace.c:830 record-btrace.c:833 record-btrace.c:1196
-#: record-btrace.c:1199
+#: record-btrace.c:827 record-btrace.c:830 record-btrace.c:1184
+#: record-btrace.c:1187
 msgid "Bad range."
 msgstr ""
 
-#: record-btrace.c:839 record-btrace.c:1205
+#: record-btrace.c:836 record-btrace.c:1193
 msgid "Range out of bounds."
 msgstr ""
 
-#: record-btrace.c:1066
+#: record-btrace.c:1060
 msgid "\tinst "
 msgstr ""
 
-#: record-btrace.c:1072
+#: record-btrace.c:1066
 msgid "\tat "
 msgstr ""
 
-#: record-btrace.c:1098 record-btrace.c:1237
+#: record-btrace.c:1090 record-btrace.c:1223
 msgid "Bad record function-call-history-size."
 msgstr ""
 
-#: record-btrace.c:1470
+#: record-btrace.c:1453
 msgid "Cannot write registers while replaying."
 msgstr ""
 
-#: record-btrace.c:1640
+#: record-btrace.c:1623
 msgid "Registers are not available in btrace record history"
 msgstr ""
 
-#: record-btrace.c:1649
+#: record-btrace.c:1631
 msgid "No caller in btrace record history"
 msgstr ""
 
-#: record-btrace.c:2373
+#: record-btrace.c:2362
 msgid "invalid stepping type."
 msgstr ""
 
-#: record-btrace.c:2779
+#: record-btrace.c:2768
 msgid "Instruction number out of range."
 msgstr ""
 
-#: record-btrace.c:2986
+#: record-btrace.c:2975
 #, possible-c-format
 msgid "Replay memory access is %s.\n"
 msgstr ""
 
-#: record-btrace.c:2995
+#: record-btrace.c:2984
 msgid ""
 "\"set record btrace bts\" must be followed by an appropriate subcommand.\n"
 msgstr ""
 
-#: record-btrace.c:3014
+#: record-btrace.c:3003
 msgid ""
 "\"set record btrace pt\" must be followed by an appropriate subcommand.\n"
 msgstr ""
 
-#: record-btrace.c:3035
+#: record-btrace.c:3024
 #, possible-c-format
 msgid "The record/replay bts buffer size is %s.\n"
 msgstr ""
 
-#: record-btrace.c:3046
+#: record-btrace.c:3035
 #, possible-c-format
 msgid "The record/replay pt buffer size is %s.\n"
 msgstr ""
 
-#: record-btrace.c:3058
+#: record-btrace.c:3045
 msgid "Start branch trace recording."
 msgstr ""
 
-#: record-btrace.c:3063
+#: record-btrace.c:3050
 msgid ""
 "Start branch trace recording in Branch Trace Store (BTS) format.\n"
 "\n"
@@ -21648,30 +22184,30 @@ msgid ""
 "This format may not be available on all processors."
 msgstr ""
 
-#: record-btrace.c:3071
+#: record-btrace.c:3058
 msgid ""
 "Start branch trace recording in Intel Processor Trace format.\n"
 "\n"
 "This format may not be available on all processors."
 msgstr ""
 
-#: record-btrace.c:3078 record.c:817 record-full.c:2864
+#: record-btrace.c:3065 record.c:816 record-full.c:2827
 msgid "Set record options"
 msgstr ""
 
-#: record-btrace.c:3082 record.c:821 record-full.c:2868
+#: record-btrace.c:3069 record.c:820 record-full.c:2831
 msgid "Show record options"
 msgstr ""
 
-#: record-btrace.c:3086
+#: record-btrace.c:3073
 msgid "Set what memory accesses are allowed during replay."
 msgstr ""
 
-#: record-btrace.c:3087
+#: record-btrace.c:3074
 msgid "Show what memory accesses are allowed during replay."
 msgstr ""
 
-#: record-btrace.c:3089
+#: record-btrace.c:3076
 msgid ""
 "Default is READ-ONLY.\n"
 "\n"
@@ -21684,23 +22220,23 @@ msgid ""
 "replay."
 msgstr ""
 
-#: record-btrace.c:3101
+#: record-btrace.c:3088
 msgid "Set record btrace bts options"
 msgstr ""
 
-#: record-btrace.c:3106
+#: record-btrace.c:3093
 msgid "Show record btrace bts options"
 msgstr ""
 
-#: record-btrace.c:3112
+#: record-btrace.c:3099
 msgid "Set the record/replay bts buffer size."
 msgstr ""
 
-#: record-btrace.c:3113
+#: record-btrace.c:3100
 msgid "Show the record/replay bts buffer size."
 msgstr ""
 
-#: record-btrace.c:3113
+#: record-btrace.c:3100
 msgid ""
 "When starting recording request a trace buffer of this size.  The actual "
 "buffer size may differ from the requested size.  Use \"info record\" to see "
@@ -21712,23 +22248,23 @@ msgid ""
 "The trace buffer size may not be changed while recording."
 msgstr ""
 
-#: record-btrace.c:3125
+#: record-btrace.c:3112
 msgid "Set record btrace pt options"
 msgstr ""
 
-#: record-btrace.c:3130
+#: record-btrace.c:3117
 msgid "Show record btrace pt options"
 msgstr ""
 
-#: record-btrace.c:3136
+#: record-btrace.c:3123
 msgid "Set the record/replay pt buffer size."
 msgstr ""
 
-#: record-btrace.c:3137
+#: record-btrace.c:3124
 msgid "Show the record/replay pt buffer size."
 msgstr ""
 
-#: record-btrace.c:3137
+#: record-btrace.c:3124
 msgid ""
 "Bigger buffers allow longer recording but also take more time to process the "
 "recorded execution.\n"
@@ -21756,131 +22292,131 @@ msgstr ""
 msgid "Invalid method."
 msgstr ""
 
-#: record.c:259
+#: record.c:260
 #, possible-c-format
 msgid "Debugging of process record target is %s.\n"
 msgstr ""
 
-#: record.c:281
+#: record.c:282
 msgid "Already at end of record list.\n"
 msgstr ""
 
-#: record.c:287
+#: record.c:288
 msgid "The current record target does not support this operation.\n"
 msgstr ""
 
-#: record.c:292
+#: record.c:293
 msgid ""
 "Delete the log from this point forward and begin to record the running "
 "message at current PC?"
 msgstr ""
 
-#: record.c:310
+#: record.c:311
 msgid "Process record is stopped and all execution logs are deleted.\n"
 msgstr ""
 
-#: record.c:321
+#: record.c:322
 msgid "\"set record\" must be followed by an apporpriate subcommand.\n"
 msgstr ""
 
-#: record.c:344
+#: record.c:345
 msgid "No record target is currently active.\n"
 msgstr ""
 
-#: record.c:348
+#: record.c:349
 #, possible-c-format
 msgid "Active record target: %s\n"
 msgstr ""
 
-#: record.c:382
+#: record.c:384
 msgid "Command requires an argument (insn number to go to)."
 msgstr ""
 
-#: record.c:517 record.c:655
+#: record.c:521 record.c:657
 #, possible-c-format
 msgid "Invalid modifier: %c."
 msgstr ""
 
-#: record.c:747
+#: record.c:749
 #, possible-c-format
 msgid "integer %u out of range"
 msgstr ""
 
-#: record.c:787
+#: record.c:786
 msgid "Set debugging of record/replay feature."
 msgstr ""
 
-#: record.c:788
+#: record.c:787
 msgid "Show debugging of record/replay feature."
 msgstr ""
 
-#: record.c:789
+#: record.c:788
 msgid "When enabled, debugging output for record/replay feature is displayed."
 msgstr ""
 
-#: record.c:795
+#: record.c:794
 msgid "Set number of instructions to print in \"record instruction-history\"."
 msgstr ""
 
-#: record.c:796
+#: record.c:795
 msgid "Show number of instructions to print in \"record instruction-history\"."
 msgstr ""
 
-#: record.c:797
+#: record.c:796
 msgid ""
 "A size of \"unlimited\" means unlimited instructions.  The default is 10."
 msgstr ""
 
-#: record.c:803
+#: record.c:802
 msgid "Set number of function to print in \"record function-call-history\"."
 msgstr ""
 
-#: record.c:804
+#: record.c:803
 msgid "Show number of functions to print in \"record function-call-history\"."
 msgstr ""
 
-#: record.c:805
+#: record.c:804
 msgid "A size of \"unlimited\" means unlimited lines.  The default is 10."
 msgstr ""
 
-#: record.c:811
+#: record.c:810
 msgid "Start recording."
 msgstr ""
 
-#: record.c:825
+#: record.c:824
 msgid "Info record options"
 msgstr ""
 
-#: record.c:830
+#: record.c:829
 msgid ""
 "Save the execution log to a file.\n"
 "Argument is optional filename.\n"
 "Default filename is 'gdb_record.<process_id>'."
 msgstr ""
 
-#: record.c:837
+#: record.c:836
 msgid "Delete the rest of execution log and start recording it anew."
 msgstr ""
 
-#: record.c:843
+#: record.c:842
 msgid "Stop the record/replay target."
 msgstr ""
 
-#: record.c:847
+#: record.c:846
 msgid ""
 "Restore the program to its state at instruction number N.\n"
 "Argument is instruction number, as shown by 'info record'."
 msgstr ""
 
-#: record.c:853
+#: record.c:852
 msgid "Go to the beginning of the execution log."
 msgstr ""
 
-#: record.c:858
+#: record.c:857
 msgid "Go to the end of the execution log."
 msgstr ""
 
-#: record.c:861
+#: record.c:860
 msgid ""
 "Print disassembled instructions stored in the execution log.\n"
 "With a /m or /s modifier, source lines are included (if available).\n"
@@ -21901,7 +22437,7 @@ msgid ""
 "instruction-history-size\"."
 msgstr ""
 
-#: record.c:881
+#: record.c:880
 msgid ""
 "Prints the execution history at function granularity.\n"
 "It prints one line for each sequence of instructions that belong to the same "
@@ -21923,201 +22459,201 @@ msgid ""
 "call-history-size\"."
 msgstr ""
 
-#: record-full.c:546
+#: record-full.c:547
 msgid ""
 "Do you want to auto delete previous execution log entries when record/replay "
 "buffer becomes full (record full stop-at-limit)?"
 msgstr ""
 
-#: record-full.c:549
+#: record-full.c:550
 msgid "Process record: stopped by user."
 msgstr ""
 
-#: record-full.c:621
+#: record-full.c:622
 msgid "Process record: inferior program stopped."
 msgstr ""
 
-#: record-full.c:623 record-full.c:1430 record-full.c:1439 record-full.c:1445
+#: record-full.c:624 record-full.c:1410 record-full.c:1419 record-full.c:1425
 msgid "Process record: failed to record execution log."
 msgstr ""
 
-#: record-full.c:744
+#: record-full.c:727
 #, possible-c-format
 msgid "Process record: error writing memory at addr = %s len = %d."
 msgstr ""
 
-#: record-full.c:829
+#: record-full.c:812
 msgid "Process record: the program is not being run."
 msgstr ""
 
-#: record-full.c:831
+#: record-full.c:814
 msgid "Process record target can't debug inferior in non-stop mode (non-stop)."
 msgstr ""
 
-#: record-full.c:835
+#: record-full.c:818
 msgid ""
 "Process record: the current architecture doesn't support record function."
 msgstr ""
 
-#: record-full.c:1473
+#: record-full.c:1453
 msgid ""
 "Because GDB is in replay mode, changing the value of a register will make "
 "the execution log unusable from this point onward.  Change all registers?"
 msgstr ""
 
-#: record-full.c:1479
+#: record-full.c:1459
 #, possible-c-format
 msgid ""
 "Because GDB is in replay mode, changing the value of a register will make "
 "the execution log unusable from this point onward.  Change register %s?"
 msgstr ""
 
-#: record-full.c:1501 record-full.c:1535
+#: record-full.c:1481 record-full.c:1515
 msgid "Process record canceled the operation."
 msgstr ""
 
 #. Let user choose if he wants to write memory or not.
-#: record-full.c:1531
+#: record-full.c:1511
 #, possible-c-format
 msgid ""
 "Because GDB is in replay mode, writing to memory will make the execution log "
 "unusable from this point onward.  Write memory at address %s?"
 msgstr ""
 
-#: record-full.c:1787 reverse.c:268
+#: record-full.c:1764 reverse.c:255
 #, possible-c-format
 msgid "Unbalanced quotes: %s"
 msgstr ""
 
-#: record-full.c:1820
+#: record-full.c:1797
 msgid "Replay mode:\n"
 msgstr ""
 
-#: record-full.c:1822
+#: record-full.c:1799
 msgid "Record mode:\n"
 msgstr ""
 
 #. Display instruction number for first instruction in the log.
-#: record-full.c:1834
+#: record-full.c:1811
 #, possible-c-format
 msgid "Lowest recorded instruction number is %s.\n"
 msgstr ""
 
-#: record-full.c:1839
+#: record-full.c:1816
 #, possible-c-format
 msgid "Current instruction number is %s.\n"
 msgstr ""
 
 #. Display instruction number for last instruction in the log.
-#: record-full.c:1843
+#: record-full.c:1820
 #, possible-c-format
 msgid "Highest recorded instruction number is %s.\n"
 msgstr ""
 
 #. Display log count.
-#: record-full.c:1847
+#: record-full.c:1824
 #, possible-c-format
 msgid "Log contains %u instructions.\n"
 msgstr ""
 
-#: record-full.c:1851
+#: record-full.c:1828
 msgid "No instructions have been logged.\n"
 msgstr ""
 
 #. Display max log size.
-#: record-full.c:1854
+#: record-full.c:1831
 #, possible-c-format
 msgid "Max logged instructions is %u.\n"
 msgstr ""
 
-#: record-full.c:1892
+#: record-full.c:1869
 msgid "Target insn not found."
 msgstr ""
 
-#: record-full.c:1894
+#: record-full.c:1871
 msgid "Already at target insn."
 msgstr ""
 
-#: record-full.c:1897
+#: record-full.c:1874
 #, possible-c-format
 msgid "Go forward to insn number %s\n"
 msgstr ""
 
-#: record-full.c:1903
+#: record-full.c:1880
 #, possible-c-format
 msgid "Go backward to insn number %s\n"
 msgstr ""
 
-#: record-full.c:2083 record-full.c:2175 target.c:607
+#: record-full.c:2060 record-full.c:2152 target.c:550
 msgid "You can't do that without a process to debug."
 msgstr ""
 
-#: record-full.c:2317
+#: record-full.c:2294
 #, possible-c-format
 msgid "Failed to read %d bytes from core file %s ('%s')."
 msgstr ""
 
-#: record-full.c:2389
+#: record-full.c:2356
 #, possible-c-format
 msgid "Version mis-match or file format error in core file %s."
 msgstr ""
 
-#: record-full.c:2494
+#: record-full.c:2461
 #, possible-c-format
 msgid "Bad entry type in core file %s."
 msgstr ""
 
-#: record-full.c:2515
+#: record-full.c:2482
 #, possible-c-format
 msgid "Auto increase record/replay buffer limit to %u."
 msgstr ""
 
 #. Succeeded.
-#: record-full.c:2520
+#: record-full.c:2487
 #, possible-c-format
 msgid "Restored records from core file %s.\n"
 msgstr ""
 
-#: record-full.c:2536
+#: record-full.c:2503
 #, possible-c-format
 msgid "Failed to write %d bytes to core file %s ('%s')."
 msgstr ""
 
-#: record-full.c:2622
+#: record-full.c:2589
 #, possible-c-format
 msgid "Failed to create 'precord' section for corefile %s: %s"
 msgstr ""
 
 #. Succeeded.
-#: record-full.c:2753
+#: record-full.c:2719
 #, possible-c-format
 msgid "Saved core file %s with execution log.\n"
 msgstr ""
 
-#: record-full.c:2814
-msgid "\"set record full\" must be followed by an apporpriate subcommand.\n"
+#: record-full.c:2780
+msgid "\"set record full\" must be followed by an appropriate subcommand.\n"
 msgstr ""
 
-#: record-full.c:2848
+#: record-full.c:2811
 msgid "Start full execution recording."
 msgstr ""
 
-#: record-full.c:2852
+#: record-full.c:2815
 msgid ""
 "Restore the execution log from a file.\n"
 "Argument is filename.  File must be created with 'record save'."
 msgstr ""
 
-#: record-full.c:2873
+#: record-full.c:2836
 msgid "Set whether record/replay stops when record/replay buffer becomes full."
 msgstr ""
 
-#: record-full.c:2874
+#: record-full.c:2837
 msgid ""
 "Show whether record/replay stops when record/replay buffer becomes full."
 msgstr ""
 
-#: record-full.c:2876
+#: record-full.c:2839
 msgid ""
 "Default is ON.\n"
 "When ON, if the record/replay buffer becomes full, ask user what to do.\n"
@@ -22125,93 +22661,93 @@ msgid ""
 "delete the oldest recorded instruction to make room for each new one."
 msgstr ""
 
-#: record-full.c:2893
+#: record-full.c:2856
 msgid "Set record/replay buffer limit."
 msgstr ""
 
-#: record-full.c:2894
+#: record-full.c:2857
 msgid "Show record/replay buffer limit."
 msgstr ""
 
-#: record-full.c:2894
+#: record-full.c:2857
 msgid ""
 "Set the maximum number of instructions to be stored in the\n"
 "record/replay buffer.  A value of either \"unlimited\" or zero means no\n"
 "limit.  Default is 200000."
 msgstr ""
 
-#: record-full.c:2911
+#: record-full.c:2874
 msgid ""
 "Set whether query if PREC cannot record memory change of next instruction."
 msgstr ""
 
-#: record-full.c:2913
+#: record-full.c:2876
 msgid ""
 "Show whether query if PREC cannot record memory change of next instruction."
 msgstr ""
 
-#: record-full.c:2915
+#: record-full.c:2878
 msgid ""
 "Default is OFF.\n"
 "When ON, query if PREC cannot record memory change of next instruction."
 msgstr ""
 
-#: regcache.c:1232
+#: regcache.c:1245
 msgid "PC register is not available"
 msgstr ""
 
-#: regcache.c:1238
+#: regcache.c:1251
 msgid "regcache_read_pc: Unable to find PC"
 msgstr ""
 
-#: regcache.c:1254
+#: regcache.c:1267
 msgid "regcache_write_pc: Unable to update PC"
 msgstr ""
 
-#: regcache.c:1303
+#: regcache.c:1321
 msgid "Register cache flushed.\n"
 msgstr ""
 
-#: regcache.c:1594
+#: regcache.c:1955
 msgid "Force gdb to flush its register cache (maintainer command)"
 msgstr ""
 
-#: regcache.c:1597
+#: regcache.c:1958
 msgid ""
 "Print the internal register configuration.\n"
 "Takes an optional file parameter."
 msgstr ""
 
-#: regcache.c:1601
+#: regcache.c:1962
 msgid ""
 "Print the internal register configuration including raw values.\n"
 "Takes an optional file parameter."
 msgstr ""
 
-#: regcache.c:1606
+#: regcache.c:1967
 msgid ""
 "Print the internal register configuration including cooked values.\n"
 "Takes an optional file parameter."
 msgstr ""
 
-#: regcache.c:1611
+#: regcache.c:1972
 msgid ""
 "Print the internal register configuration including each register's group.\n"
 "Takes an optional file parameter."
 msgstr ""
 
-#: regcache.c:1616
+#: regcache.c:1977
 msgid ""
 "Print the internal register configuration including each register's\n"
 "remote register number and buffer offset in the g/G packets.\n"
 "Takes an optional file parameter."
 msgstr ""
 
-#: reggroups.c:276
+#: reggroups.c:300
 msgid "maintenance print reggroups"
 msgstr ""
 
-#: reggroups.c:315
+#: reggroups.c:337
 msgid ""
 "Print the internal register group names.\n"
 "Takes an optional file parameter."
@@ -22219,115 +22755,115 @@ msgstr ""
 
 #. malformed packet error
 #. general case:
-#: remote.c:566
+#: remote.c:557
 msgid "remote.c: error in outgoing packet."
 msgstr ""
 
-#: remote.c:568
+#: remote.c:559
 #, possible-c-format
 msgid "remote.c: error in outgoing packet at field #%ld."
 msgstr ""
 
-#: remote.c:571
+#: remote.c:562
 #, possible-c-format
 msgid "Target returns error code '%s'."
 msgstr ""
 
-#: remote.c:600
+#: remote.c:593
 #, possible-c-format
 msgid "invalid qRelocInsn packet: %s"
 msgstr ""
 
-#: remote.c:629
+#: remote.c:622
 msgid "warning: relocating instruction: "
 msgstr ""
 
-#: remote.c:954
+#: remote.c:943
 msgid ""
 "Send the ASCII ETX character (Ctrl-c) to the remote target to interrupt the "
 "execution of the program.\n"
 msgstr ""
 
-#: remote.c:959
+#: remote.c:948
 msgid ""
 "send a break signal to the remote target to interrupt the execution of the "
 "program.\n"
 msgstr ""
 
-#: remote.c:963
+#: remote.c:952
 msgid ""
 "Send a break signal and 'g' a.k.a. Magic SysRq g to the remote target to "
 "interrupt the execution of Linux kernel.\n"
 msgstr ""
 
-#: remote.c:968 remote.c:3752
+#: remote.c:957 remote.c:3697
 #, possible-c-format
 msgid "Invalid value for interrupt_sequence_mode: %s."
 msgstr ""
 
-#: remote.c:1099
+#: remote.c:1083
 msgid "Argument required (integer, `fixed' or `limited')."
 msgstr ""
 
-#: remote.c:1112
+#: remote.c:1096
 #, possible-c-format
 msgid "Invalid %s (bad syntax)."
 msgstr ""
 
-#: remote.c:1126
+#: remote.c:1110
 #, possible-c-format
 msgid ""
 "The target may not be able to correctly handle a %s\n"
 "of %ld bytes. Change the packet size? "
 msgstr ""
 
-#: remote.c:1129
+#: remote.c:1113
 msgid "Packet size not changed."
 msgstr ""
 
-#: remote.c:1139
+#: remote.c:1123
 #, possible-c-format
 msgid "The %s is %ld. "
 msgstr ""
 
-#: remote.c:1141
+#: remote.c:1125
 #, possible-c-format
 msgid "Packets are fixed at %ld bytes.\n"
 msgstr ""
 
-#: remote.c:1144
+#: remote.c:1128
 #, possible-c-format
 msgid "Packets are limited to %ld bytes.\n"
 msgstr ""
 
-#: remote.c:1262
+#: remote.c:1246
 #, possible-c-format
 msgid "Support for the `%s' packet is auto-detected, currently %s.\n"
 msgstr ""
 
-#: remote.c:1268
+#: remote.c:1252
 #, possible-c-format
 msgid "Support for the `%s' packet is currently %s.\n"
 msgstr ""
 
-#: remote.c:1347
+#: remote.c:1331
 msgid "packet_ok: attempt to use a disabled packet"
 msgstr ""
 
 #. If the stub previously indicated that the packet was
 #. supported then there is a protocol error.
-#: remote.c:1371
+#: remote.c:1355
 #, possible-c-format
 msgid "Protocol error: %s (%s) conflicting enabled responses."
 msgstr ""
 
 #. The user set it wrong.
-#: remote.c:1377
+#: remote.c:1361
 #, possible-c-format
 msgid "Enabled packet %s (%s) not recognized by stub"
 msgstr ""
 
-#: remote.c:1591
+#: remote.c:1580
 #, possible-c-format
 msgid "Could not find config for %s"
 msgstr ""
@@ -22336,39 +22872,39 @@ msgstr ""
 #. We're out of sync with the target now.  Did it continue
 #. or not?  We can't tell which thread it was in non-stop,
 #. so just ignore this.
-#: remote.c:1767 remote.c:3453 remote.c:3480 remote.c:3601 remote.c:4813
-#: remote.c:7271 remote.c:7371 remote.c:8668 remote.c:10068 remote.c:13785
+#: remote.c:1756 remote.c:3398 remote.c:3425 remote.c:3546 remote.c:4768
+#: remote.c:7252 remote.c:7352 remote.c:8617 remote.c:10119 remote.c:13796
 #, possible-c-format
 msgid "Remote failure reply: %s"
 msgstr ""
 
-#: remote.c:2456
+#: remote.c:2425
 #, possible-c-format
 msgid "invalid remote ptid: %s"
 msgstr ""
 
-#: remote.c:2738
+#: remote.c:2707
 msgid "Incomplete response to threadinfo request."
 msgstr ""
 
 #. This is an answer to a different request.
-#: remote.c:2741
+#: remote.c:2710
 msgid "ERROR RMT Thread info mismatch."
 msgstr ""
 
-#: remote.c:2755
+#: remote.c:2724
 msgid "ERROR RMT: threadinfo tag mismatch."
 msgstr ""
 
-#: remote.c:2763
+#: remote.c:2732
 msgid "ERROR RMT: length of threadid is not 16."
 msgstr ""
 
-#: remote.c:2778
+#: remote.c:2747
 msgid "ERROR RMT: 'exists' length too long."
 msgstr ""
 
-#: remote.c:2802
+#: remote.c:2771
 msgid "ERROR RMT: unknown thread info tag."
 msgstr ""
 
@@ -22380,871 +22916,897 @@ msgstr ""
 #. exit
 #. wait for packet, then exit
 #.
-#: remote.c:2910
+#: remote.c:2879
 msgid "HMM: threadlist did not echo arg thread, dropping it."
 msgstr ""
 
-#: remote.c:2917
+#: remote.c:2886
 msgid "RMT ERROR : failed to get remote thread list."
 msgstr ""
 
-#: remote.c:2925
+#: remote.c:2894
 msgid "RMT ERROR: threadlist response longer than requested."
 msgstr ""
 
-#: remote.c:2953
+#: remote.c:2922
 msgid "Remote fetch threadlist -infinite loop-."
 msgstr ""
 
-#: remote.c:3188
+#: remote.c:3158
 msgid "threads"
 msgstr ""
 
-#: remote.c:3370
+#: remote.c:3312
 msgid "remote_threads_extra_info"
 msgstr ""
 
-#: remote.c:3636 remote.c:3663
+#: remote.c:3581 remote.c:3608
 #, possible-c-format
 msgid "Target reported unsupported offsets: %s"
 msgstr ""
 
-#: remote.c:3661
+#: remote.c:3606
 #, possible-c-format
 msgid "Malformed response to offset query, %s"
 msgstr ""
 
-#: remote.c:3709
+#: remote.c:3654
 msgid "Can not handle qOffsets TextSeg response with this symbol file"
 msgstr ""
 
-#: remote.c:4097
+#: remote.c:4042
 #, possible-c-format
 msgid "Remote replied unexpectedly to '%s': %s"
 msgstr ""
 
-#: remote.c:4150
+#: remote.c:4095
 msgid "Non-stop mode requested, but remote does not support non-stop"
 msgstr ""
 
-#: remote.c:4157
+#: remote.c:4102
 #, possible-c-format
 msgid "Remote refused setting non-stop mode with: %s"
 msgstr ""
 
-#: remote.c:4173
+#: remote.c:4118
 #, possible-c-format
 msgid "Remote refused setting all-stop mode with: %s"
 msgstr ""
 
-#: remote.c:4196 remote.c:4305
+#: remote.c:4141 remote.c:4250
 msgid "The target is not running (try extended-remote?)"
 msgstr ""
 
-#: remote.c:4342
+#: remote.c:4287
 msgid "Trace is already running on the target.\n"
 msgstr ""
 
-#: remote.c:4491
+#: remote.c:4435
 msgid ""
 "The remote protocol may be unreliable over UDP.\n"
 "Some events may be lost, rendering further debugging impossible."
 msgstr ""
 
-#: remote.c:4527
+#: remote.c:4471
 #, possible-c-format
 msgid "Remote refused setting permissions with: %s"
 msgstr ""
 
-#: remote.c:4564
+#: remote.c:4508
 #, possible-c-format
 msgid "Remote qSupported response supplied an unexpected value for \"%s\"."
 msgstr ""
 
-#: remote.c:4586
+#: remote.c:4530
 #, possible-c-format
 msgid "Remote target reported \"%s\" without a size."
 msgstr ""
 
-#: remote.c:4595
+#: remote.c:4539
 #, possible-c-format
 msgid "Remote target reported \"%s\" with a bad size: \"%s\"."
 msgstr ""
 
-#: remote.c:4843
+#: remote.c:4798
 msgid "empty item in \"qSupported\" response"
 msgstr ""
 
-#: remote.c:4874
+#: remote.c:4829
 #, possible-c-format
 msgid "unrecognized item \"%s\" in \"qSupported\" response"
 msgstr ""
 
-#: remote.c:4950
+#: remote.c:4905
 msgid ""
 "The target is not responding to GDB commands.\n"
 "Stop debugging it? "
 msgstr ""
 
-#: remote.c:4979 remote.c:6252
+#: remote.c:4934 remote.c:6215
 msgid "Disconnected from target."
 msgstr ""
 
-#: remote.c:4989
+#: remote.c:4944
 msgid ""
 "To open a remote debug connection, you need to specify what\n"
 "serial device is attached to the remote system\n"
 "(e.g. /dev/ttyS0, /dev/ttya, COM1, etc.)."
 msgstr ""
 
-#: remote.c:5003
+#: remote.c:4958
 msgid "Already connected to a remote target.  Disconnect? "
 msgstr ""
 
-#: remote.c:5004
+#: remote.c:4959
 msgid "Still connected."
 msgstr ""
 
-#: remote.c:5164
+#: remote.c:5116
 msgid "Remote doesn't know how to detach"
 msgstr ""
 
-#: remote.c:5166
+#: remote.c:5118
 msgid "Can't detach process."
 msgstr ""
 
-#: remote.c:5184
+#: remote.c:5136
 msgid "Argument given to \"detach\" when remotely debugging."
 msgstr ""
 
-#: remote.c:5187
+#: remote.c:5139
 msgid "No process to detach from."
 msgstr ""
 
-#: remote.c:5196
+#: remote.c:5148
 msgid "Ending remote debugging.\n"
 msgstr ""
 
-#: remote.c:5289
+#: remote.c:5241
 msgid "Argument given to \"disconnect\" when remotely debugging."
 msgstr ""
 
-#: remote.c:5318 remote.c:5354
+#: remote.c:5270 remote.c:5306
 msgid "This target does not support attaching to a process"
 msgstr ""
 
-#: remote.c:5349
+#: remote.c:5301
 #, possible-c-format
 msgid "Attaching to %s failed with: %s"
 msgstr ""
 
-#: remote.c:5356
+#: remote.c:5308
 #, possible-c-format
 msgid "Attaching to %s failed"
 msgstr ""
 
-#: remote.c:5632
+#: remote.c:5586
 #, possible-c-format
 msgid " - Can't pass signal %d to target in reverse: ignored."
 msgstr ""
 
-#: remote.c:5636
+#: remote.c:5590
 msgid "Remote reverse-step not supported."
 msgstr ""
 
-#: remote.c:5638
+#: remote.c:5592
 msgid "Remote reverse-continue not supported."
 msgstr ""
 
-#: remote.c:5734 remote.c:5861
+#: remote.c:5688 remote.c:5827
 #, possible-c-format
 msgid "Unexpected vCont reply in non-stop mode: %s"
 msgstr ""
 
-#: remote.c:6097
+#: remote.c:6062
 msgid "Remote server does not support stopping threads"
 msgstr ""
 
-#: remote.c:6130
+#: remote.c:6095
 #, possible-c-format
 msgid "Stopping %s failed: %s"
 msgstr ""
 
-#: remote.c:6178
+#: remote.c:6143
 msgid "No support for interrupting the remote target."
 msgstr ""
 
-#: remote.c:6180
+#: remote.c:6145
 #, possible-c-format
 msgid "Interrupting target failed: %s"
 msgstr ""
 
-#: remote.c:6248
+#: remote.c:6211
 msgid ""
 "The target is not responding to interrupt requests.\n"
 "Stop debugging it? "
 msgstr ""
 
-#: remote.c:6257
+#: remote.c:6220
 msgid ""
 "Interrupted while waiting for the program.\n"
 "Give up waiting? "
 msgstr ""
 
 #. We got an unknown stop reply.
-#: remote.c:6389
+#: remote.c:6336
 msgid "Unknown stop reply"
 msgstr ""
 
-#: remote.c:6838
+#: remote.c:6783
 #, possible-c-format
 msgid ""
 "Malformed packet(a) (missing colon): %s\n"
 "Packet: '%s'\n"
 msgstr ""
 
-#: remote.c:6842
+#: remote.c:6787
 #, possible-c-format
 msgid ""
 "Malformed packet(a) (missing register number): %s\n"
 "Packet: '%s'\n"
 msgstr ""
 
-#: remote.c:6886
+#: remote.c:6831
 msgid "Unexpected swbreak stop reason"
 msgstr ""
 
-#: remote.c:6900
+#: remote.c:6845
 msgid "Unexpected hwbreak stop reason"
 msgstr ""
 
-#: remote.c:6992
+#: remote.c:6975
 #, possible-c-format
 msgid ""
 "Remote sent bad register number %s: %s\n"
 "Packet: '%s'\n"
 msgstr ""
 
-#: remote.c:7005
+#: remote.c:6988
 #, possible-c-format
 msgid "Remote reply is too short: %s"
 msgstr ""
 
-#: remote.c:7018
+#: remote.c:7001
 #, possible-c-format
 msgid ""
 "Remote register badly formatted: %s\n"
 "here: %s"
 msgstr ""
 
-#: remote.c:7048
+#: remote.c:7031
 #, possible-c-format
 msgid "stop reply packet badly formatted: %s"
 msgstr ""
 
-#: remote.c:7099 remote.c:7102
+#: remote.c:7082 remote.c:7085
 #, possible-c-format
 msgid "unknown stop reply packet: %s"
 msgstr ""
 
-#: remote.c:7113
+#: remote.c:7096
 #, possible-c-format
 msgid "No process or thread specified in stop reply: %s"
 msgstr ""
 
-#: remote.c:7277 remote.c:7422
+#: remote.c:7258 remote.c:7403
 #, possible-c-format
 msgid "Invalid remote reply: %s"
 msgstr ""
 
-#: remote.c:7510
+#: remote.c:7491
 #, possible-c-format
 msgid "Could not fetch register \"%s\"; remote failure reply '%s'"
 msgstr ""
 
-#: remote.c:7529
+#: remote.c:7510
 msgid "fetch_register_using_p: early buf termination"
 msgstr ""
 
-#: remote.c:7567
+#: remote.c:7548
 #, possible-c-format
 msgid "Remote 'g' packet reply is of odd length: %s"
 msgstr ""
 
-#: remote.c:7586
+#: remote.c:7567
 #, possible-c-format
 msgid ""
 "Remote 'g' packet reply is too long (expected %ld bytes, got %d bytes): %s"
 msgstr ""
 
-#: remote.c:7614
+#: remote.c:7595
 #, possible-c-format
 msgid "Truncated register %d in remote 'g' packet"
 msgstr ""
 
-#: remote.c:7643 remote.c:7662
+#: remote.c:7624 remote.c:7643
 msgid "unexpected end of 'g' packet reply"
 msgstr ""
 
-#: remote.c:7704
+#: remote.c:7685
 msgid "could not set remote traceframe"
 msgstr ""
 
-#: remote.c:7811
+#: remote.c:7793
 #, possible-c-format
 msgid "Could not write register \"%s\"; remote failure reply '%s'"
 msgstr ""
 
-#: remote.c:7816 remote.c:9403
+#: remote.c:7798 remote.c:9347
 msgid "Bad result from packet_ok"
 msgstr ""
 
-#: remote.c:7857
+#: remote.c:7837
 #, possible-c-format
 msgid "Could not write registers; remote failure reply '%s'"
 msgstr ""
 
-#: remote.c:8093
+#: remote.c:8074
 msgid "remote_write_bytes_aux: bad packet format"
 msgstr ""
 
-#: remote.c:8143
+#: remote.c:8124
 msgid "minimum packet size too small to write data"
 msgstr ""
 
-#: remote.c:8258
+#: remote.c:8239
 msgid "remote_write_bytes: bad internal state"
 msgstr ""
 
-#: remote.c:8467
+#: remote.c:8440
 msgid "Too long remote packet."
 msgstr ""
 
-#: remote.c:8470 remote.c:10715
+#: remote.c:8443 remote.c:10762
 msgid "Communication problem with target."
 msgstr ""
 
-#: remote.c:8509
+#: remote.c:8471
 msgid "Remote target does not support flash erase"
 msgstr ""
 
-#: remote.c:8511
+#: remote.c:8473
 msgid "Error erasing flash with vFlashErase packet"
 msgstr ""
 
-#: remote.c:8552
+#: remote.c:8503
 msgid "Remote target does not support vFlashDone"
 msgstr ""
 
-#: remote.c:8554
+#: remote.c:8505
 msgid "Error finishing flash operation"
 msgstr ""
 
-#: remote.c:8615
+#: remote.c:8566
 msgid "Remote connection closed"
 msgstr ""
 
-#: remote.c:8618 remote.c:8645
+#: remote.c:8569 remote.c:8596
 msgid "Remote communication error.  Target disconnected."
 msgstr ""
 
-#: remote.c:8730
+#: remote.c:8679
 msgid ""
 "Cannot execute this command while the target is running.\n"
 "Use the \"interrupt\" command to stop the target\n"
 "and then try again."
 msgstr ""
 
-#: remote.c:9065
+#: remote.c:9009
 #, possible-c-format
 msgid "Invalid run length encoding: %s\n"
 msgstr ""
 
-#: remote.c:9171
+#: remote.c:9115
 msgid "Watchdog timeout has expired.  Target detached."
 msgstr ""
 
 #. We have tried hard enough, and just can't receive the
 #. packet/notification.  Give up.
-#: remote.c:9193
+#: remote.c:9137
 msgid "Ignoring packet error, continuing...\n"
 msgstr ""
 
-#: remote.c:9291 remote.c:9321
+#: remote.c:9235 remote.c:9265
 #, possible-c-format
 msgid "Can't kill fork child process %d"
 msgstr ""
 
-#: remote.c:9377
+#: remote.c:9321
 msgid "Can't kill process"
 msgstr ""
 
-#: remote.c:9524
+#: remote.c:9468
 msgid "Target does not support QDisableRandomization."
 msgstr ""
 
-#: remote.c:9526
+#: remote.c:9470
 #, possible-c-format
 msgid "Bogus QDisableRandomization reply from target: %s"
 msgstr ""
 
-#: remote.c:9545
+#: remote.c:9489
 msgid "Remote file name too long for run packet"
 msgstr ""
 
-#: remote.c:9560
+#: remote.c:9501
 msgid "Argument list too long for run packet"
 msgstr ""
 
-#: remote.c:9582
+#: remote.c:9522
 msgid ""
 "Running the default executable on the remote target failed; try \"set remote "
 "exec-file\"?"
 msgstr ""
 
-#: remote.c:9585
+#: remote.c:9525
 #, possible-c-format
 msgid "Running \"%s\" on the remote target failed"
 msgstr ""
 
-#: remote.c:9625
+#: remote.c:9554
+#, possible-c-format
+msgid "Unable to %s environment variable '%s' on remote."
+msgstr ""
+
+#: remote.c:9568
+msgid "Unable to reset environment on remote."
+msgstr ""
+
+#: remote.c:9614
+#, possible-c-format
+msgid ""
+"Remote replied unexpectedly while setting the inferior's working\n"
+"directory: %s"
+msgstr ""
+
+#: remote.c:9657
+#, possible-c-format
+msgid "Remote replied unexpectedly while setting startup-with-shell: %s"
+msgstr ""
+
+#: remote.c:9673
 msgid "Remote target does not support \"set remote exec-file\""
 msgstr ""
 
-#: remote.c:9627
+#: remote.c:9675
 msgid "Remote target does not support \"set args\" or run <ARGS>"
 msgstr ""
 
-#: remote.c:9764
+#: remote.c:9811
 msgid "Target doesn't support breakpoints that have target side commands."
 msgstr ""
 
-#: remote.c:9822
+#: remote.c:9869
 #, possible-c-format
 msgid "hw_bp_to_z: bad watchpoint type %d"
 msgstr ""
 
-#: remote.c:9862
+#: remote.c:9909
 msgid "remote_insert_watchpoint: reached end of function"
 msgstr ""
 
-#: remote.c:9909
+#: remote.c:9956
 msgid "remote_remove_watchpoint: reached end of function"
 msgstr ""
 
-#: remote.c:10077
+#: remote.c:10128
 msgid "remote_insert_hw_breakpoint: reached end of function"
 msgstr ""
 
-#: remote.c:10118
+#: remote.c:10169
 msgid "remote_remove_hw_breakpoint: reached end of function"
 msgstr ""
 
-#: remote.c:10188
+#: remote.c:10237
 msgid "command cannot be used without an exec file"
 msgstr ""
 
-#: remote.c:10225
+#: remote.c:10273
 #, possible-c-format
 msgid "target memory fault, section %s, range %s -- %s"
 msgstr ""
 
-#: remote.c:10243
+#: remote.c:10289
 msgid ""
 "One or more sections of the target image does not match\n"
 "the loaded file\n"
 msgstr ""
 
-#: remote.c:10246
+#: remote.c:10292
 #, possible-c-format
 msgid "No loaded section named '%s'.\n"
 msgstr ""
 
-#: remote.c:10346
+#: remote.c:10392
 #, possible-c-format
 msgid "Unknown remote qXfer reply: %s"
 msgstr ""
 
-#: remote.c:10352
+#: remote.c:10398
 msgid "Remote qXfer reply contained no data."
 msgstr ""
 
-#: remote.c:10554
+#: remote.c:10600
 msgid "remote query is only available after target open"
 msgstr ""
 
-#: remote.c:10657
+#: remote.c:10704
 msgid "Pattern is too large to transmit to remote target."
 msgstr ""
 
-#: remote.c:10679 remote.c:10684
+#: remote.c:10726 remote.c:10731
 #, possible-c-format
 msgid "Unknown qSearch:memory reply: %s"
 msgstr ""
 
-#: remote.c:10697
+#: remote.c:10744
 msgid "remote rcmd is only available after target open"
 msgstr ""
 
-#: remote.c:10709
+#: remote.c:10756
 #, possible-c-format
 msgid "\"monitor\" command ``%s'' is too long."
 msgstr ""
 
-#: remote.c:10736 remote.c:12211 remote.c:12491 remote.c:12587 remote.c:12695
-#: remote.c:12746 remote.c:12824 remote.c:12887 remote.c:12915
+#: remote.c:10783 remote.c:12233 remote.c:12486 remote.c:12586 remote.c:12698
+#: remote.c:12749 remote.c:12827 remote.c:12890 remote.c:12919
 msgid "Target does not support this command."
 msgstr ""
 
-#: remote.c:10747
+#: remote.c:10794
 msgid "Protocol error with Rcmd"
 msgstr ""
 
-#: remote.c:10783 remote.c:11905 remote.c:11996 remote.c:12051
+#: remote.c:10825 remote.c:11946 remote.c:12035 remote.c:12089
 msgid "command can only be used with remote target"
 msgstr ""
 
-#: remote.c:10786
+#: remote.c:10828
 msgid "remote-packet command requires packet text as argument"
 msgstr ""
 
-#: remote.c:10827
+#: remote.c:10869
 msgid "Remote threadset test\n"
 msgstr ""
 
-#: remote.c:10933
+#: remote.c:10975
 msgid "Fetch and print the remote list of thread identifiers, one pkt only"
 msgstr ""
 
-#: remote.c:10936
+#: remote.c:10978
 msgid "Fetch and display info about one thread"
 msgstr ""
 
-#: remote.c:10938
+#: remote.c:10980
 msgid "Test setting to a different thread"
 msgstr ""
 
-#: remote.c:10940
+#: remote.c:10982
 msgid "Iterate through updating all remote thread info"
 msgstr ""
 
-#: remote.c:10942
+#: remote.c:10984
 msgid " Remote thread alive test "
 msgstr ""
 
-#: remote.c:11032
+#: remote.c:11074
 msgid "Remote target doesn't support qGetTLSAddr packet"
 msgstr ""
 
-#: remote.c:11035
+#: remote.c:11077
 msgid "Remote target failed to process qGetTLSAddr request"
 msgstr ""
 
-#: remote.c:11039
+#: remote.c:11081
 msgid "TLS not supported or disabled on this target"
 msgstr ""
 
-#: remote.c:11076
+#: remote.c:11118
 msgid "Remote target doesn't support qGetTIBAddr packet"
 msgstr ""
 
-#: remote.c:11078
+#: remote.c:11120
 msgid "Remote target failed to process qGetTIBAddr request"
 msgstr ""
 
-#: remote.c:11081
+#: remote.c:11123
 msgid "qGetTIBAddr not supported or disabled on this target"
 msgstr ""
 
-#: remote.c:11130
+#: remote.c:11172
 #, possible-c-format
 msgid "Duplicate g packet description added for size %d"
 msgstr ""
 
-#: remote.c:11199 remote.c:11220 remote.c:11242
+#: remote.c:11241 remote.c:11262 remote.c:11284
 msgid "Packet too long for target."
 msgstr ""
 
-#: remote.c:11458
+#: remote.c:11500
 #, possible-c-format
 msgid "Reading %s from remote target...\n"
 msgstr ""
 
-#: remote.c:11463
+#: remote.c:11505
 msgid ""
 "File transfers from remote targets can be slow. Use \"set sysroot\" to "
 "access files locally instead."
 msgstr ""
 
-#: remote.c:11552
+#: remote.c:11594
 #, possible-c-format
 msgid "Read returned %d, but %d bytes."
 msgstr ""
 
-#: remote.c:11704
+#: remote.c:11746
 #, possible-c-format
 msgid "Readlink returned %d, but %d bytes."
 msgstr ""
 
-#: remote.c:11759
+#: remote.c:11801
 #, possible-c-format
 msgid "vFile:fstat returned %d, but %d bytes."
 msgstr ""
 
-#: remote.c:11762
+#: remote.c:11804
 #, possible-c-format
 msgid "vFile:fstat returned %d bytes, but expecting %d."
 msgstr ""
 
-#: remote.c:11808
+#: remote.c:11850
 msgid ""
 "remote target does not support file transfer, attempting to access files "
 "from local filesystem."
 msgstr ""
 
-#: remote.c:11878
+#: remote.c:11920
 #, possible-c-format
 msgid "Unknown remote I/O error %d"
 msgstr ""
 
-#: remote.c:11880
+#: remote.c:11922
 #, possible-c-format
 msgid "Remote I/O error: %s"
 msgstr ""
 
-#: remote.c:11940
+#: remote.c:11980
 #, possible-c-format
 msgid "Error reading %s."
 msgstr ""
 
-#: remote.c:11964
+#: remote.c:12004
 #, possible-c-format
 msgid "Remote write of %d bytes returned 0!"
 msgstr ""
 
-#: remote.c:11981
+#: remote.c:12021
 #, possible-c-format
 msgid "Successfully sent file \"%s\".\n"
 msgstr ""
 
-#: remote.c:12040
+#: remote.c:12078
 #, possible-c-format
 msgid "Successfully fetched file \"%s\".\n"
 msgstr ""
 
-#: remote.c:12059
+#: remote.c:12097
 #, possible-c-format
 msgid "Successfully deleted file \"%s\".\n"
 msgstr ""
 
-#: remote.c:12069
+#: remote.c:12104
 msgid "file to put"
 msgstr ""
 
-#: remote.c:12074
+#: remote.c:12108
 msgid "Invalid parameters to remote put"
 msgstr ""
 
-#: remote.c:12088
+#: remote.c:12117
 msgid "file to get"
 msgstr ""
 
-#: remote.c:12093
+#: remote.c:12121
 msgid "Invalid parameters to remote get"
 msgstr ""
 
-#: remote.c:12107
+#: remote.c:12130
 msgid "file to delete"
 msgstr ""
 
-#: remote.c:12112
+#: remote.c:12134
 msgid "Invalid parameters to remote delete"
 msgstr ""
 
-#: remote.c:12256 remote.c:12271 remote.c:12425 remote.c:12436
+#: remote.c:12256 remote.c:12271 remote.c:12422 remote.c:12433
 msgid "Target does not support source download."
 msgstr ""
 
-#: remote.c:12321
+#: remote.c:12316
 msgid "Fast tracepoint not valid during download"
 msgstr ""
 
 #. Fast tracepoints are functionally identical to regular
 #. tracepoints, so don't take lack of support as a reason to
 #. give up on the trace run.
-#: remote.c:12328
+#: remote.c:12323
 #, possible-c-format
 msgid ""
 "Target does not support fast tracepoints, downloading %d as regular "
 "tracepoint"
 msgstr ""
 
-#: remote.c:12342
+#: remote.c:12337
 msgid "Static tracepoint not valid during download"
 msgstr ""
 
 #. Fast tracepoints are functionally identical to regular
 #. tracepoints, so don't take lack of support as a reason
 #. to give up on the trace run.
-#: remote.c:12348
+#: remote.c:12343
 msgid "Target does not support static tracepoints"
 msgstr ""
 
-#: remote.c:12367
+#: remote.c:12362
 #, possible-c-format
 msgid "Target does not support conditional tracepoints, ignoring tp %d cond"
 msgstr ""
 
-#: remote.c:12376
+#: remote.c:12371
 msgid "Target does not support tracepoints."
 msgstr ""
 
-#: remote.c:12393 remote.c:12410
+#: remote.c:12389 remote.c:12408
 msgid "Error on target while setting tracepoints."
 msgstr ""
 
-#: remote.c:12485
+#: remote.c:12480
 msgid "Trace state variable name too long for tsv definition packet"
 msgstr ""
 
-#: remote.c:12493
+#: remote.c:12488
 msgid "Error on target while downloading trace state variable."
 msgstr ""
 
-#: remote.c:12509
+#: remote.c:12504
 msgid ""
 "Target does not support enabling tracepoints while a trace run is ongoing."
 msgstr ""
 
-#: remote.c:12511
+#: remote.c:12506
 msgid "Error on target while enabling tracepoint."
 msgstr ""
 
-#: remote.c:12527
+#: remote.c:12522
 msgid ""
 "Target does not support disabling tracepoints while a trace run is ongoing."
 msgstr ""
 
-#: remote.c:12529
+#: remote.c:12524
 msgid "Error on target while disabling tracepoint."
 msgstr ""
 
-#: remote.c:12566
+#: remote.c:12563
 msgid "Too many sections for read-only sections definition packet."
 msgstr ""
 
-#: remote.c:12589 remote.c:12697 remote.c:12771 remote.c:12774 remote.c:12826
-#: remote.c:12889 remote.c:12917 remote.c:13001 remote.c:13047
+#: remote.c:12588 remote.c:12700 remote.c:12774 remote.c:12777 remote.c:12829
+#: remote.c:12892 remote.c:12921 remote.c:12997 remote.c:13043
 #, possible-c-format
 msgid "Bogus reply from target: %s"
 msgstr ""
 
-#: remote.c:12633
+#: remote.c:12634
 #, possible-c-format
 msgid "Bogus trace status reply from target: %s"
 msgstr ""
 
-#: remote.c:12740
+#: remote.c:12743
 #, possible-c-format
 msgid "Unknown trace find type %d"
 msgstr ""
 
-#: remote.c:12755
+#: remote.c:12758
 msgid "Unable to parse trace frame number"
 msgstr ""
 
-#: remote.c:12765
+#: remote.c:12768
 msgid "Unable to parse tracepoint number"
 msgstr ""
 
-#: remote.c:12818
+#: remote.c:12821
 msgid "Remote file name too long for trace save packet"
 msgstr ""
 
-#: remote.c:12892
+#: remote.c:12895
 msgid "Target does not support disconnected tracing."
 msgstr ""
 
-#: remote.c:13157
+#: remote.c:13153
 #, possible-c-format
 msgid "Failed to configure the BTS buffer size: %s"
 msgstr ""
 
-#: remote.c:13159
+#: remote.c:13155
 msgid "Failed to configure the BTS buffer size."
 msgstr ""
 
-#: remote.c:13179
+#: remote.c:13175
 #, possible-c-format
 msgid "Failed to configure the trace buffer size: %s"
 msgstr ""
 
-#: remote.c:13181
+#: remote.c:13177
 msgid "Failed to configure the trace buffer size."
 msgstr ""
 
-#: remote.c:13236
+#: remote.c:13224
 msgid ""
 "GDB does not support Intel Processor Trace. \"record\" will not work in this "
 "session."
 msgstr ""
 
-#: remote.c:13251
+#: remote.c:13239
 #, possible-c-format
 msgid "Target is recording using %s.\n"
 msgstr ""
 
-#: remote.c:13299
+#: remote.c:13286
 #, possible-c-format
 msgid "Could not enable branch tracing for %s: %s"
 msgstr ""
 
-#: remote.c:13302
+#: remote.c:13289
 #, possible-c-format
 msgid "Could not enable branch tracing for %s."
 msgstr ""
 
-#: remote.c:13348
+#: remote.c:13335
 #, possible-c-format
 msgid "Could not disable branch tracing for %s: %s"
 msgstr ""
 
-#: remote.c:13351
+#: remote.c:13338
 #, possible-c-format
 msgid "Could not disable branch tracing for %s."
 msgstr ""
 
-#: remote.c:13385
+#: remote.c:13370
 msgid "Cannot process branch tracing result. XML parsing not supported."
 msgstr ""
 
-#: remote.c:13401
+#: remote.c:13386
 #, possible-c-format
 msgid "Bad branch tracing read type: %u."
 msgstr ""
 
-#: remote.c:13459
+#: remote.c:13439
 #, possible-c-format
 msgid "not currently attached to process %d"
 msgstr ""
 
-#: remote.c:13782
+#: remote.c:13507
+#, possible-c-format
+msgid "Thread handle size mismatch: %d vs %zu (from remote)"
+msgstr ""
+
+#: remote.c:13793
 #, possible-c-format
 msgid "Remote refused setting thread events: %s"
 msgstr ""
 
-#: remote.c:13901
+#: remote.c:13905
 #, possible-c-format
 msgid "Debugger's willingness to use range stepping is %s.\n"
 msgstr ""
 
-#: remote.c:13927
+#: remote.c:13931
 msgid "Range stepping is not supported by the current target"
 msgstr ""
 
 #. set/show remote ...
 #. allow-unknown
-#: remote.c:13971 remote.c:13977
+#: remote.c:13975 remote.c:13981
 msgid ""
 "Remote protocol specific variables\n"
 "Configure various remote-protocol specific variables such as\n"
@@ -23252,14 +23814,14 @@ msgid ""
 msgstr ""
 
 #. allow-unknown
-#: remote.c:13984
+#: remote.c:13988
 msgid ""
 "Compare section data on target to the exec file.\n"
 "Argument is a single section name (default: all loaded sections).\n"
 "To compare only read-only loaded sections, specify the -r option."
 msgstr ""
 
-#: remote.c:13990
+#: remote.c:13994
 msgid ""
 "Send an arbitrary packet to a remote target.\n"
 "   maintenance packet TEXT\n"
@@ -23269,57 +23831,57 @@ msgid ""
 "terminating `#' character and checksum."
 msgstr ""
 
-#: remote.c:13999
+#: remote.c:14003
 msgid "Set whether to send break if interrupted."
 msgstr ""
 
-#: remote.c:14000
+#: remote.c:14004
 msgid "Show whether to send break if interrupted."
 msgstr ""
 
-#: remote.c:14001
+#: remote.c:14005
 msgid "If set, a break, instead of a cntrl-c, is sent to the remote target."
 msgstr ""
 
-#: remote.c:14014
+#: remote.c:14018
 msgid "Set interrupt sequence to remote target."
 msgstr ""
 
-#: remote.c:14015
+#: remote.c:14019
 msgid "Show interrupt sequence to remote target."
 msgstr ""
 
-#: remote.c:14016
+#: remote.c:14020
 msgid ""
 "Valid value is \"Ctrl-C\", \"BREAK\" or \"BREAK-g\". The default is \"Ctrl-C"
 "\"."
 msgstr ""
 
-#: remote.c:14023
+#: remote.c:14027
 msgid ""
 "Set whether interrupt-sequence is sent to remote target when gdb connects to."
 msgstr ""
 
-#: remote.c:14024
+#: remote.c:14028
 msgid ""
 "\t\tShow whether interrupt-sequence is sent to remote target when gdb "
 "connects to."
 msgstr ""
 
-#: remote.c:14025
+#: remote.c:14029
 msgid "\t\tIf set, interrupt sequence is sent to remote target."
 msgstr ""
 
 #. Install commands for configuring memory read/write packets.
-#: remote.c:14032
+#: remote.c:14036
 msgid "Set the maximum number of bytes per memory write packet (deprecated)."
 msgstr ""
 
-#: remote.c:14035
+#: remote.c:14039
 msgid "Show the maximum number of bytes per memory write packet (deprecated)."
 msgstr ""
 
-#: remote.c:14039
+#: remote.c:14043
 msgid ""
 "Set the maximum number of bytes per memory-write packet.\n"
 "Specify the number of bytes in a packet or 0 (zero) for the\n"
@@ -23328,7 +23890,7 @@ msgid ""
 "further restriction and ``limit'' to enable that restriction."
 msgstr ""
 
-#: remote.c:14047
+#: remote.c:14051
 msgid ""
 "Set the maximum number of bytes per memory-read packet.\n"
 "Specify the number of bytes in a packet or 0 (zero) for the\n"
@@ -23337,99 +23899,99 @@ msgid ""
 "further restriction and ``limit'' to enable that restriction."
 msgstr ""
 
-#: remote.c:14056
+#: remote.c:14060
 msgid "Show the maximum number of bytes per memory-write packet."
 msgstr ""
 
-#: remote.c:14060
+#: remote.c:14064
 msgid "Show the maximum number of bytes per memory-read packet."
 msgstr ""
 
-#: remote.c:14064
+#: remote.c:14068
 msgid "Set the maximum number of target hardware watchpoints."
 msgstr ""
 
-#: remote.c:14065
+#: remote.c:14069
 msgid "Show the maximum number of target hardware watchpoints."
 msgstr ""
 
-#: remote.c:14066 remote.c:14075 remote.c:14084
+#: remote.c:14070 remote.c:14079 remote.c:14088
 msgid "Specify a negative limit for unlimited."
 msgstr ""
 
-#: remote.c:14073
+#: remote.c:14077
 msgid "Set the maximum length (in bytes) of a target hardware watchpoint."
 msgstr ""
 
-#: remote.c:14074
+#: remote.c:14078
 msgid "Show the maximum length (in bytes) of a target hardware watchpoint."
 msgstr ""
 
-#: remote.c:14082
+#: remote.c:14086
 msgid "Set the maximum number of target hardware breakpoints."
 msgstr ""
 
-#: remote.c:14083
+#: remote.c:14087
 msgid "Show the maximum number of target hardware breakpoints."
 msgstr ""
 
-#: remote.c:14092
+#: remote.c:14096
 msgid "Set the maximum size of the address (in bits) in a memory packet."
 msgstr ""
 
-#: remote.c:14093
+#: remote.c:14097
 msgid "Show the maximum size of the address (in bits) in a memory packet."
 msgstr ""
 
-#: remote.c:14377
+#: remote.c:14400
 msgid "Set use of remote protocol `Z' packets"
 msgstr ""
 
-#: remote.c:14378
+#: remote.c:14401
 msgid "Show use of remote protocol `Z' packets "
 msgstr ""
 
-#: remote.c:14379
+#: remote.c:14402
 msgid ""
 "When set, GDB will attempt to use the remote breakpoint and watchpoint\n"
 "packets."
 msgstr ""
 
-#: remote.c:14388
+#: remote.c:14411
 msgid ""
 "Manipulate files on the remote system\n"
 "Transfer files to and from the remote target system."
 msgstr ""
 
-#: remote.c:14395
+#: remote.c:14418
 msgid "Copy a local file to the remote system."
 msgstr ""
 
-#: remote.c:14399
+#: remote.c:14422
 msgid "Copy a remote file to the local system."
 msgstr ""
 
-#: remote.c:14403
+#: remote.c:14426
 msgid "Delete a remote file."
 msgstr ""
 
-#: remote.c:14407
+#: remote.c:14430
 msgid "Set the remote pathname for \"run\""
 msgstr ""
 
-#: remote.c:14408
+#: remote.c:14431
 msgid "Show the remote pathname for \"run\""
 msgstr ""
 
-#: remote.c:14416
+#: remote.c:14439
 msgid "Enable or disable range stepping."
 msgstr ""
 
-#: remote.c:14417
+#: remote.c:14440
 msgid "Show whether target-assisted range stepping is enabled."
 msgstr ""
 
-#: remote.c:14418
+#: remote.c:14441
 msgid ""
 "If on, and the target supports it, when stepping a source line, GDB\n"
 "tells the target to step the corresponding range of addresses itself "
@@ -23439,101 +24001,97 @@ msgid ""
 "stepping is supported by the target.  The default is on."
 msgstr ""
 
-#: remote-fileio.c:1288
+#: remote-fileio.c:1283
 msgid "Illegal argument for \"set remote system-call-allowed\" command"
 msgstr ""
 
-#: remote-fileio.c:1295
+#: remote-fileio.c:1290
 #, possible-c-format
 msgid "Garbage after \"show remote system-call-allowed\" command: `%s'"
 msgstr ""
 
-#: remote-fileio.c:1307
+#: remote-fileio.c:1302
 msgid "Set if the host system(3) call is allowed for the target."
 msgstr ""
 
-#: remote-fileio.c:1311
+#: remote-fileio.c:1306
 msgid "Show if the host system(3) call is allowed for the target."
 msgstr ""
 
-#: remote-notif.c:280
+#: remote-notif.c:277
 msgid "Set debugging of async remote notification."
 msgstr ""
 
-#: remote-notif.c:281
+#: remote-notif.c:278
 msgid "Show debugging of async remote notification."
 msgstr ""
 
-#: remote-notif.c:282
+#: remote-notif.c:279
 msgid ""
 "When non-zero, debugging output about async remote notifications is enabled."
 msgstr ""
 
-#: remote-sim.c:188
+#: remote-sim.c:187
 #, possible-c-format
 msgid "Unable to create simulator instance for inferior %d."
 msgstr ""
 
-#: remote-sim.c:203
+#: remote-sim.c:202
 #, possible-c-format
 msgid ""
 "Inferior %d and inferior %d would have identical simulator state.\n"
 "(This simulator does not support the running of more than one inferior.)"
 msgstr ""
 
-#: remote-sim.c:531
+#: remote-sim.c:525
 msgid "Register size different to expected"
 msgstr ""
 
-#: remote-sim.c:534
+#: remote-sim.c:528
 #, possible-c-format
 msgid "Register %d not updated"
 msgstr ""
 
-#: remote-sim.c:536
+#: remote-sim.c:530
 #, possible-c-format
 msgid "Register %s not updated"
 msgstr ""
 
-#: remote-sim.c:575
+#: remote-sim.c:568
 msgid "program to load"
 msgstr ""
 
-#: remote-sim.c:583
+#: remote-sim.c:575
 msgid "GDB sim does not yet support a load offset."
 msgstr ""
 
-#: remote-sim.c:592
+#: remote-sim.c:584
 msgid "unable to load program"
 msgstr ""
 
-#: remote-sim.c:620
-msgid "No executable file specified."
-msgstr ""
-
-#: remote-sim.c:622 remote-sim.c:1086
+#: remote-sim.c:614 remote-sim.c:1080
 msgid "No program loaded."
 msgstr ""
 
-#: remote-sim.c:654
+#: remote-sim.c:645
 msgid "Unable to create sim inferior."
 msgstr ""
 
-#: remote-sim.c:744
+#: remote-sim.c:736
 msgid "unable to create simulator instance"
 msgstr ""
 
-#: remote-sim.c:865
+#: remote-sim.c:859
 #, possible-c-format
 msgid "gdbsim_resume: pid %d, step %d, signal %d\n"
 msgstr ""
 
-#: remote-sim.c:944
+#: remote-sim.c:938
 #, possible-c-format
 msgid "Can't stop pid %d.  No inferior found."
 msgstr ""
 
-#: remote-sim.c:994
+#: remote-sim.c:988
 #, possible-c-format
 msgid "Unable to wait for pid %d.  Inferior not found."
 msgstr ""
@@ -23546,69 +24104,69 @@ msgstr ""
 #. Consistent with that model, access to the simulator, via sim
 #. commands, is restricted to the period when the channel to the
 #. simulator is open.
-#: remote-sim.c:1217
+#: remote-sim.c:1211
 msgid "Not connected to the simulator target"
 msgstr ""
 
-#: remote-sim.c:1353
+#: remote-sim.c:1365
 msgid "Send a command to the simulator."
 msgstr ""
 
-#: reverse.c:53
+#: reverse.c:44
 #, possible-c-format
 msgid "Already in reverse mode.  Use '%s' or 'set exec-dir forward'."
 msgstr ""
 
-#: reverse.c:142
+#: reverse.c:130
 msgid "target_get_bookmark failed."
 msgstr ""
 
-#: reverse.c:166
+#: reverse.c:153
 #, possible-c-format
 msgid "Saved bookmark %d at %s\n"
 msgstr ""
 
-#: reverse.c:221
+#: reverse.c:208
 msgid "No bookmarks."
 msgstr ""
 
-#: reverse.c:227
+#: reverse.c:214
 msgid "Delete all bookmarks? "
 msgstr ""
 
 #. Not found.
-#: reverse.c:239
+#: reverse.c:226
 #, possible-c-format
 msgid "No bookmark #%d."
 msgstr ""
 
-#: reverse.c:253 thread.c:1992
+#: reverse.c:240 thread.c:1867
 msgid "Command requires an argument."
 msgstr ""
 
-#: reverse.c:277
+#: reverse.c:264
 #, possible-c-format
 msgid "goto-bookmark: invalid bookmark number '%s'."
 msgstr ""
 
 #. Not found.
-#: reverse.c:290
+#: reverse.c:277
 #, possible-c-format
 msgid "goto-bookmark: no bookmark found for '%s'."
 msgstr ""
 
-#: reverse.c:324
+#: reverse.c:311
 msgid "No bookmarks.\n"
 msgstr ""
 
-#: reverse.c:345
+#: reverse.c:328
 msgid ""
 "Step program backward until it reaches the beginning of another source "
 "line.\n"
 "Argument N means do this N times (or till program stops for another reason)."
 msgstr ""
 
-#: reverse.c:351
+#: reverse.c:334
 msgid ""
 "Step program backward, proceeding through subroutine calls.\n"
 "Like the \"reverse-step\" command as long as subroutine calls do not "
@@ -23617,19 +24175,19 @@ msgid ""
 "Argument N means do this N times (or till program stops for another reason)."
 msgstr ""
 
-#: reverse.c:359
+#: reverse.c:342
 msgid ""
 "Step backward exactly one instruction.\n"
 "Argument N means do this N times (or till program stops for another reason)."
 msgstr ""
 
-#: reverse.c:365
+#: reverse.c:348
 msgid ""
 "Step backward one instruction, but proceed through called subroutines.\n"
 "Argument N means do this N times (or till program stops for another reason)."
 msgstr ""
 
-#: reverse.c:371
+#: reverse.c:354
 msgid ""
 "Continue program being debugged but run it in reverse.\n"
 "If proceeding from breakpoint, a number N may be used as an argument,\n"
@@ -23637,18 +24195,18 @@ msgid ""
 "the breakpoint won't break until the Nth time it is reached)."
 msgstr ""
 
-#: reverse.c:378
+#: reverse.c:361
 msgid "Execute backward until just before selected stack frame is called."
 msgstr ""
 
-#: reverse.c:381
+#: reverse.c:364
 msgid ""
 "Set a bookmark in the program's execution history.\n"
 "A bookmark represents a point in the execution history \n"
 "that can be returned to at a later point in the debug session."
 msgstr ""
 
-#: reverse.c:385
+#: reverse.c:368
 msgid ""
 "Status of user-settable bookmarks.\n"
 "Bookmarks are user-settable markers representing a point in the \n"
@@ -23656,14 +24214,14 @@ msgid ""
 "session."
 msgstr ""
 
-#: reverse.c:390
+#: reverse.c:373
 msgid ""
 "Delete a bookmark from the bookmark list.\n"
 "Argument is a bookmark number or numbers,\n"
 " or no argument to delete all bookmarks.\n"
 msgstr ""
 
-#: reverse.c:395
+#: reverse.c:378
 msgid ""
 "Go to an earlier-bookmarked point in the program's execution history.\n"
 "Argument is the bookmark number of a bookmark saved earlier by using \n"
@@ -23677,12 +24235,12 @@ msgstr ""
 msgid "Undefined mapping for opc reg %d"
 msgstr ""
 
-#: rs6000-aix-tdep.c:1020
+#: rs6000-aix-tdep.c:1016
 #, possible-c-format
 msgid "cannot find .ldinfo section from core file: %s"
 msgstr ""
 
-#: rs6000-aix-tdep.c:1029
+#: rs6000-aix-tdep.c:1025
 #, possible-c-format
 msgid "unable to read .ldinfo section from core file: %s"
 msgstr ""
@@ -23704,64 +24262,64 @@ msgstr ""
 msgid "ptrace ldinfo"
 msgstr ""
 
-#: rs6000-tdep.c:2906
+#: rs6000-tdep.c:2908
 #, possible-c-format
 msgid "rs6000_pseudo_register_read: called on unexpected register '%s' (%d)"
 msgstr ""
 
-#: rs6000-tdep.c:2931
+#: rs6000-tdep.c:2933
 #, possible-c-format
 msgid "rs6000_pseudo_register_write: called on unexpected register '%s' (%d)"
 msgstr ""
 
-#: rs6000-tdep.c:2973
+#: rs6000-tdep.c:2975
 #, possible-c-format
 msgid "rs6000_pseudo_register_collect: called on unexpected register '%s' (%d)"
 msgstr ""
 
-#: rs6000-tdep.c:6638
+#: rs6000-tdep.c:6644
 msgid "\"set powerpc\" must be followed by an appropriate subcommand.\n"
 msgstr ""
 
-#: rs6000-tdep.c:6679
+#: rs6000-tdep.c:6685
 #, possible-c-format
 msgid "Invalid vector ABI accepted: %s."
 msgstr ""
 
-#: rs6000-tdep.c:6695
+#: rs6000-tdep.c:6701
 #, possible-c-format
 msgid "Use of exact watchpoints is %s.\n"
 msgstr ""
 
-#: rs6000-tdep.c:6802 rs6000-tdep.c:6806
+#: rs6000-tdep.c:6805 rs6000-tdep.c:6809
 msgid "Various PowerPC-specific commands."
 msgstr ""
 
-#: rs6000-tdep.c:6812
+#: rs6000-tdep.c:6815
 msgid "Set whether to use a soft-float ABI."
 msgstr ""
 
-#: rs6000-tdep.c:6813
+#: rs6000-tdep.c:6816
 msgid "Show whether to use a soft-float ABI."
 msgstr ""
 
-#: rs6000-tdep.c:6820
+#: rs6000-tdep.c:6823
 msgid "Set the vector ABI."
 msgstr ""
 
-#: rs6000-tdep.c:6821
+#: rs6000-tdep.c:6824
 msgid "Show the vector ABI."
 msgstr ""
 
-#: rs6000-tdep.c:6827
+#: rs6000-tdep.c:6830
 msgid "Set whether to use just one debug register for watchpoints on scalars."
 msgstr ""
 
-#: rs6000-tdep.c:6829
+#: rs6000-tdep.c:6832
 msgid "Show whether to use just one debug register for watchpoints on scalars."
 msgstr ""
 
-#: rs6000-tdep.c:6831
+#: rs6000-tdep.c:6834
 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 "
@@ -23769,338 +24327,332 @@ msgid ""
 "of its first byte."
 msgstr ""
 
-#: rust-exp.y:385
+#: rust-exp.y:438
 msgid "Tuple expressions not supported yet"
 msgstr ""
 
-#: rust-exp.y:950
+#: rust-exp.y:990
 msgid "Could not find crate for current location"
 msgstr ""
 
-#: rust-exp.y:970
+#: rust-exp.y:1010
 msgid "Couldn't find namespace scope for self::"
 msgstr ""
 
-#: rust-exp.y:992
+#: rust-exp.y:1031
 #, possible-c-format
 msgid "Too many super:: uses from '%s'"
 msgstr ""
 
-#: rust-exp.y:1036
+#: rust-exp.y:1070
 #, possible-c-format
 msgid "Could not find Rust type %s"
 msgstr ""
 
-#: rust-exp.y:1068
+#: rust-exp.y:1102
 msgid "Not enough hex digits seen"
 msgstr ""
 
-#: rust-exp.y:1072
+#: rust-exp.y:1106
 msgid "Overlong hex escape"
 msgstr ""
 
-#: rust-exp.y:1097
+#: rust-exp.y:1131
 msgid "Unicode escape in byte literal"
 msgstr ""
 
-#: rust-exp.y:1100
+#: rust-exp.y:1134
 msgid "Missing '{' in Unicode escape"
 msgstr ""
 
-#: rust-exp.y:1105
+#: rust-exp.y:1139
 msgid "Missing '}' in Unicode escape"
 msgstr ""
 
-#: rust-exp.y:1139
+#: rust-exp.y:1173
 #, possible-c-format
 msgid "Invalid escape \\%c in literal"
 msgstr ""
 
-#: rust-exp.y:1170
+#: rust-exp.y:1204
 msgid "Unterminated character literal"
 msgstr ""
 
-#: rust-exp.y:1241 rust-exp.y:1268
+#: rust-exp.y:1274 rust-exp.y:1301
 msgid "Unexpected EOF in string"
 msgstr ""
 
-#: rust-exp.y:1245
+#: rust-exp.y:1278
 msgid "Non-ASCII value in raw byte string"
 msgstr ""
 
-#: rust-exp.y:1273
+#: rust-exp.y:1306
 msgid "Non-ASCII value in byte string"
 msgstr ""
 
-#: rust-exp.y:1982
+#: rust-exp.y:2016
 #, possible-c-format
 msgid "No typed name '%s' in current context"
 msgstr ""
 
-#: rust-exp.y:1993
+#: rust-exp.y:2027
 msgid "Negative array length"
 msgstr ""
 
-#: rust-exp.y:2056
+#: rust-exp.y:2089
 #, possible-c-format
 msgid "could not find tuple type '%s'"
 msgstr ""
 
-#: rust-exp.y:2260
+#: rust-exp.y:2297
 #, possible-c-format
 msgid "Type %s is not a tuple struct"
 msgstr ""
 
-#: rust-exp.y:2332
+#: rust-exp.y:2369
 #, possible-c-format
 msgid "No symbol '%s' in current context"
 msgstr ""
 
 #: rust-exp.y:2388
 #, possible-c-format
+msgid "Found type '%s', which can't be evaluated in this context"
+msgstr ""
+
+#: rust-exp.y:2427
+#, possible-c-format
 msgid "Could not find type '%s'"
 msgstr ""
 
-#: rust-exp.y:2393
+#: rust-exp.y:2432
 msgid "Struct expression applied to non-struct type"
 msgstr ""
 
-#: rust-exp.y:2477
+#: rust-exp.y:2507
 #, possible-c-format
 msgid "%s in expression, near `%s'."
 msgstr ""
 
-#: rust-lang.c:135
+#: rust-lang.c:134
 msgid "Encountered void enum value"
 msgstr ""
 
-#: rust-lang.c:152
+#: rust-lang.c:151
 #, possible-c-format
 msgid "Only expected one field in %s type"
 msgstr ""
 
-#: rust-lang.c:178
+#: rust-lang.c:177
 #, possible-c-format
 msgid "%s refers to field after end of member type"
 msgstr ""
 
-#: rust-lang.c:186
+#: rust-lang.c:185
 #, possible-c-format
 msgid "Invalid form for %s"
 msgstr ""
 
 #. This is a bounds check and should never be hit unless Rust
 #. has changed its debuginfo format.
-#: rust-lang.c:210
+#: rust-lang.c:209
 msgid "Could not find enum discriminant field"
 msgstr ""
 
-#: rust-lang.c:226
+#: rust-lang.c:225
 msgid "Rust debug format has changed"
 msgstr ""
 
 #. Somehow the discriminant wasn't found.
-#: rust-lang.c:265
+#: rust-lang.c:264
 #, possible-c-format
 msgid "Could not find variant of %s with discriminant %s"
 msgstr ""
 
-#: rust-lang.c:630
+#: rust-lang.c:685
 msgid "Could not determine the array bounds"
 msgstr ""
 
-#: rust-lang.c:1041
+#: rust-lang.c:1093
 msgid "Could not compute alignment of type"
 msgstr ""
 
-#: rust-lang.c:1270
+#: rust-lang.c:1322
 msgid "Method calls only supported on struct or enum types"
 msgstr ""
 
-#: rust-lang.c:1272
+#: rust-lang.c:1324
 msgid "Method call on nameless type"
 msgstr ""
 
-#: rust-lang.c:1279
+#: rust-lang.c:1331
 #, possible-c-format
 msgid "Could not find function named '%s'"
 msgstr ""
 
-#: rust-lang.c:1283
+#: rust-lang.c:1335
 #, possible-c-format
 msgid "Function '%s' takes no arguments"
 msgstr ""
 
-#: rust-lang.c:1348
+#: rust-lang.c:1400
 msgid "Range expression with different types"
 msgstr ""
 
-#: rust-lang.c:1454
+#: rust-lang.c:1506
 msgid "Can't take slice of array without '&'"
 msgstr ""
 
-#: rust-lang.c:1477
-msgid "Can't compute array bounds"
+#: rust-lang.c:1530
+msgid "Could not find 'data_ptr' in slice type"
 msgstr ""
 
-#: rust-lang.c:1479
-msgid "Found array with non-zero lower bound"
+#: rust-lang.c:1535 rust-lang.c:1586
+msgid "Cannot subscript non-array type"
 msgstr ""
 
-#: rust-lang.c:1498
-msgid "Cannot subscript non-array type"
+#: rust-lang.c:1565
+msgid "Can't compute array bounds"
 msgstr ""
 
-#: rust-lang.c:1504
+#: rust-lang.c:1567
+msgid "Found array with non-zero lower bound"
+msgstr ""
+
+#: rust-lang.c:1592
 msgid "Index less than zero"
 msgstr ""
 
-#: rust-lang.c:1506
+#: rust-lang.c:1594
 msgid "Index greater than length"
 msgstr ""
 
-#: rust-lang.c:1522
+#: rust-lang.c:1610
 msgid "High index less than zero"
 msgstr ""
 
-#: rust-lang.c:1524
+#: rust-lang.c:1612
 msgid "Low index greater than high index"
 msgstr ""
 
-#: rust-lang.c:1526
+#: rust-lang.c:1614
 msgid "High index greater than length"
 msgstr ""
 
-#: rust-lang.c:1667
+#: rust-lang.c:1777
 msgid "Array with negative number of elements"
 msgstr ""
 
-#: rust-lang.c:1726
+#: rust-lang.c:1835
 #, possible-c-format
 msgid "Cannot access field %d of variant %s, there are only %d fields"
 msgstr ""
 
-#: rust-lang.c:1735
+#: rust-lang.c:1844
 #, possible-c-format
 msgid "Variant %s is not a tuple variant"
 msgstr ""
 
-#: rust-lang.c:1746
+#: rust-lang.c:1855
 #, possible-c-format
 msgid "Cannot access field %d of %s, there are only %d fields"
 msgstr ""
 
-#: rust-lang.c:1751
+#: rust-lang.c:1860
 #, possible-c-format
 msgid ""
 "Attempting to access anonymous field %d of %s, which is not a tuple, tuple "
 "struct, or tuple-like variant"
 msgstr ""
 
-#: rust-lang.c:1758
+#: rust-lang.c:1867
 msgid ""
 "Anonymous field access is only allowed on tuples, tuple structs, and tuple-"
 "like enum variants"
 msgstr ""
 
 #. We didn't find it.
-#: rust-lang.c:1788 rust-lang.c:1813
+#: rust-lang.c:1897 rust-lang.c:1922
 #, possible-c-format
 msgid "Could not find field %s of struct variant %s"
 msgstr ""
 
-#: rust-lang.c:1797
+#: rust-lang.c:1906
 #, possible-c-format
 msgid ""
 "Attempting to access named field %s of tuple variant %s, which has only "
 "anonymous fields"
 msgstr ""
 
-#: s390-linux-nat.c:323 s390-linux-nat.c:343
+#: s390-linux-nat.c:324 s390-linux-nat.c:344
 msgid "Couldn't get register set"
 msgstr ""
 
-#: s390-linux-nat.c:348
+#: s390-linux-nat.c:349
 msgid "Couldn't set register set"
 msgstr ""
 
-#: s390-linux-nat.c:600
+#: s390-linux-nat.c:613
 msgid "Couldn't retrieve debug regs"
 msgstr ""
 
-#: s390-linux-nat.c:638
+#: s390-linux-nat.c:651
 msgid "Couldn't retrieve watchpoint status"
 msgstr ""
 
-#: s390-linux-nat.c:648
+#: s390-linux-nat.c:661
 msgid "Couldn't clear watchpoint status"
 msgstr ""
 
-#: s390-linux-nat.c:754
+#: s390-linux-nat.c:767
 msgid "Couldn't modify watchpoint status"
 msgstr ""
 
-#: s390-linux-nat.c:1042
+#: s390-linux-nat.c:1068
 msgid "Set whether to show the PER (debug) hardware state."
 msgstr ""
 
-#: s390-linux-nat.c:1043
+#: s390-linux-nat.c:1069
 msgid "Show whether to show the PER (debug) hardware state."
 msgstr ""
 
-#: s390-linux-nat.c:1044
+#: s390-linux-nat.c:1070
 msgid ""
 "Use \"on\" to enable, \"off\" to disable.\n"
 "If enabled, the PER state is shown after it is changed by GDB,\n"
 "and when the inferior triggers a breakpoint or watchpoint."
 msgstr ""
 
-#: s390-linux-tdep.c:3337
+#: s390-linux-tdep.c:3388
 msgid "Stack overflow"
 msgstr ""
 
-#: s390-linux-tdep.c:3459
+#: s390-linux-tdep.c:3510
 msgid "invalid return type"
 msgstr ""
 
-#: s390-linux-tdep.c:3498 spu-tdep.c:1549
+#: s390-linux-tdep.c:3549 spu-tdep.c:1548
 msgid "Cannot set function return value."
 msgstr ""
 
-#: s390-linux-tdep.c:3500 spu-tdep.c:1565
+#: s390-linux-tdep.c:3551 spu-tdep.c:1564
 msgid "Function return value unknown."
 msgstr ""
 
-#: score-tdep.c:158 score-tdep.c:250 score-tdep.c:321 score-tdep.c:835
+#: score-tdep.c:149 score-tdep.c:241 score-tdep.c:312 score-tdep.c:826
 #, possible-c-format
 msgid "Error: target_read_memory in file:%s, line:%d!"
 msgstr ""
 
-#: score-tdep.c:449
+#: score-tdep.c:440
 #, possible-c-format
 msgid "Error: score_xfer_register in file:%s, line:%d!"
 msgstr ""
 
-#: selftest-arch.c:81
+#: selftest-arch.c:79
 #, possible-c-format
 msgid "Self test failed: arch %s: "
 msgstr ""
 
-#: selftest.c:53
-msgid "Self test failed: "
-msgstr ""
-
-#: selftest.c:58
-#, possible-c-format
-msgid "Ran %lu unit tests, %d failed\n"
-msgstr ""
-
-#. Check that VALUE is true, and, if not, throw an exception.
-#: selftest.h:41
-#, possible-c-format
-msgid "self-test failed at %s:%d"
-msgstr ""
-
 #. The sentinel frame is used as a starting point for creating the
 #. previous (inner most) frame.  That frame's THIS_ID method will be
 #. called to determine the inner most frame's ID.  Not this one.
@@ -24112,339 +24664,339 @@ msgstr ""
 #. timer tick
 #. keyboard
 #. slave icu
-#: ser-go32.c:946
+#: ser-go32.c:931
 msgid "Set COM1 base i/o port address."
 msgstr ""
 
-#: ser-go32.c:947
+#: ser-go32.c:932
 msgid "Show COM1 base i/o port address."
 msgstr ""
 
-#: ser-go32.c:953
+#: ser-go32.c:938
 msgid "Set COM1 interrupt request."
 msgstr ""
 
-#: ser-go32.c:954
+#: ser-go32.c:939
 msgid "Show COM1 interrupt request."
 msgstr ""
 
-#: ser-go32.c:960
+#: ser-go32.c:945
 msgid "Set COM2 base i/o port address."
 msgstr ""
 
-#: ser-go32.c:961
+#: ser-go32.c:946
 msgid "Show COM2 base i/o port address."
 msgstr ""
 
-#: ser-go32.c:967
+#: ser-go32.c:952
 msgid "Set COM2 interrupt request."
 msgstr ""
 
-#: ser-go32.c:968
+#: ser-go32.c:953
 msgid "Show COM2 interrupt request."
 msgstr ""
 
-#: ser-go32.c:974
+#: ser-go32.c:959
 msgid "Set COM3 base i/o port address."
 msgstr ""
 
-#: ser-go32.c:975
+#: ser-go32.c:960
 msgid "Show COM3 base i/o port address."
 msgstr ""
 
-#: ser-go32.c:981
+#: ser-go32.c:966
 msgid "Set COM3 interrupt request."
 msgstr ""
 
-#: ser-go32.c:982
+#: ser-go32.c:967
 msgid "Show COM3 interrupt request."
 msgstr ""
 
-#: ser-go32.c:988
+#: ser-go32.c:973
 msgid "Set COM4 base i/o port address."
 msgstr ""
 
-#: ser-go32.c:989
+#: ser-go32.c:974
 msgid "Show COM4 base i/o port address."
 msgstr ""
 
-#: ser-go32.c:995
+#: ser-go32.c:980
 msgid "Set COM4 interrupt request."
 msgstr ""
 
-#: ser-go32.c:996
+#: ser-go32.c:981
 msgid "Show COM4 interrupt request."
 msgstr ""
 
-#: ser-go32.c:1003
+#: ser-go32.c:988
 msgid "Print DOS serial port status."
 msgstr ""
 
-#: serial.c:391
+#: serial.c:388
 msgid "serial_readchar: blocking read in async mode"
 msgstr ""
 
-#: serial.c:656
+#: serial.c:645
 #, possible-c-format
 msgid "Baud rate for remote serial I/O is %s.\n"
 msgstr ""
 
-#: serial.c:688
+#: serial.c:677
 msgid ""
 "Connect the terminal directly up to the command monitor.\n"
 "Use <CR>~. or <CR>~^D to break out."
 msgstr ""
 
-#: serial.c:693
+#: serial.c:682
 msgid "Set default serial/parallel port configuration."
 msgstr ""
 
-#: serial.c:699
+#: serial.c:688
 msgid "Show default serial/parallel port configuration."
 msgstr ""
 
 #. If target is open when baud changes, it doesn't take effect until
 #. the next open (I think, not sure).
-#: serial.c:707
+#: serial.c:696
 msgid "Set baud rate for remote serial I/O."
 msgstr ""
 
-#: serial.c:708
+#: serial.c:697
 msgid "Show baud rate for remote serial I/O."
 msgstr ""
 
-#: serial.c:709
+#: serial.c:698
 msgid ""
 "This value is used to set the speed of the serial port when debugging\n"
 "using remote targets."
 msgstr ""
 
-#: serial.c:717
+#: serial.c:706
 msgid "Set parity for remote serial I/O"
 msgstr ""
 
-#: serial.c:718
+#: serial.c:707
 msgid "Show parity for remote serial I/O"
 msgstr ""
 
-#: serial.c:724
+#: serial.c:713
 msgid "Set filename for remote session recording."
 msgstr ""
 
-#: serial.c:725
+#: serial.c:714
 msgid "Show filename for remote session recording."
 msgstr ""
 
-#: serial.c:726
+#: serial.c:715
 msgid ""
 "This file is used to record the remote session for future playback\n"
 "by gdbserver."
 msgstr ""
 
-#: serial.c:734
+#: serial.c:723
 msgid "Set numerical base for remote session logging"
 msgstr ""
 
-#: serial.c:735
+#: serial.c:724
 msgid "Show numerical base for remote session logging"
 msgstr ""
 
-#: serial.c:742
+#: serial.c:731
 msgid "Set serial debugging."
 msgstr ""
 
-#: serial.c:743
+#: serial.c:732
 msgid "Show serial debugging."
 msgstr ""
 
-#: serial.c:744
+#: serial.c:733
 msgid "When non-zero, serial port debugging is enabled."
 msgstr ""
 
-#: ser-mingw.c:167
+#: ser-mingw.c:165
 msgid "SetCommState failed"
 msgstr ""
 
-#: ser-mingw.c:294
+#: ser-mingw.c:292
 msgid "ser_windows_wait_handle: reseting mask failed"
 msgstr ""
 
-#: ser-mingw.c:297
+#: ser-mingw.c:295
 msgid "ser_windows_wait_handle: reseting mask failed (2)"
 msgstr ""
 
-#: ser-mingw.c:870
+#: ser-mingw.c:867
 msgid "child command"
 msgstr ""
 
-#: ser-mingw.c:876
+#: ser-mingw.c:872
 msgid "missing child command"
 msgstr ""
 
-#: ser-mingw.c:903
+#: ser-mingw.c:899
 #, possible-c-format
 msgid "error starting child process '%s': %s: %s"
 msgstr ""
 
-#: ser-mingw.c:906
+#: ser-mingw.c:902
 #, possible-c-format
 msgid "error starting child process '%s': %s"
 msgstr ""
 
-#: ser-tcp.c:184
+#: ser-tcp.c:186
 msgid "net_open: No colon in host name!"
 msgstr ""
 
 #. allow-unknown
-#: ser-tcp.c:422 ser-tcp.c:427
+#: ser-tcp.c:423 ser-tcp.c:428
 msgid ""
 "TCP protocol specific variables\n"
 "Configure variables specific to remote TCP connections"
 msgstr ""
 
-#: ser-tcp.c:434
+#: ser-tcp.c:435
 msgid "Set auto-retry on socket connect"
 msgstr ""
 
-#: ser-tcp.c:435
+#: ser-tcp.c:436
 msgid "Show auto-retry on socket connect"
 msgstr ""
 
-#: ser-tcp.c:441
+#: ser-tcp.c:442
 msgid "Set timeout limit in seconds for socket connection"
 msgstr ""
 
-#: ser-tcp.c:442
+#: ser-tcp.c:443
 msgid "Show timeout limit in seconds for socket connection"
 msgstr ""
 
-#: ser-tcp.c:443
+#: ser-tcp.c:444
 msgid ""
 "If set to \"unlimited\", GDB will keep attempting to establish a\n"
 "connection forever, unless interrupted with Ctrl-c.\n"
 "The default is 15 seconds."
 msgstr ""
 
-#: ser-unix.c:50
+#: ser-unix.c:48
 #, possible-c-format
 msgid "Hardware flow control is %s.\n"
 msgstr ""
 
-#: ser-unix.c:572
+#: ser-unix.c:350
 #, possible-c-format
 msgid "Invalid baud rate %d.  Closest values are %d and %d."
 msgstr ""
 
-#: ser-unix.c:578
+#: ser-unix.c:356
 #, possible-c-format
 msgid "Invalid baud rate %d.  Minimum value is %d."
 msgstr ""
 
 #. The requested speed was too large.
-#: ser-unix.c:587
+#: ser-unix.c:365
 #, possible-c-format
 msgid "Invalid baud rate %d.  Maximum value is %d."
 msgstr ""
 
-#: ser-unix.c:767
+#: ser-unix.c:504
 msgid "Set use of hardware flow control for remote serial I/O."
 msgstr ""
 
-#: ser-unix.c:768
+#: ser-unix.c:505
 msgid "Show use of hardware flow control for remote serial I/O."
 msgstr ""
 
-#: ser-unix.c:769
+#: ser-unix.c:506
 msgid ""
 "Enable or disable hardware flow control (RTS/CTS) on the serial port\n"
 "when debugging using remote targets."
 msgstr ""
 
-#: sh64-tdep.c:1470
+#: sh64-tdep.c:1476
 msgid "sh64_register_convert_to_virtual called with non DR register number"
 msgstr ""
 
-#: sh64-tdep.c:1495
+#: sh64-tdep.c:1498
 msgid "sh64_register_convert_to_raw called with non DR register number"
 msgstr ""
 
-#: sh64-tdep.c:1968
+#: sh64-tdep.c:1960
 #, possible-c-format
 msgid "Invalid pseudo register number %d\n"
 msgstr ""
 
-#: sh64-tdep.c:2069
+#: sh64-tdep.c:2061
 #, possible-c-format
 msgid "Invalid register number %d\n"
 msgstr ""
 
-#: sh64-tdep.c:2153
+#: sh64-tdep.c:2145
 msgid "Not a valid register for the current processor mode."
 msgstr ""
 
-#: sh-tdep.c:1596
+#: sh-tdep.c:1601
 msgid "sh_register_convert_to_raw called with non DR register number"
 msgstr ""
 
-#: sh-tdep.c:2460
+#: sh-tdep.c:2464
 msgid "Set calling convention used when calling target functions from GDB."
 msgstr ""
 
-#: sh-tdep.c:2462
+#: sh-tdep.c:2466
 msgid "Show calling convention used when calling target functions from GDB."
 msgstr ""
 
-#: sh-tdep.c:2464
+#: sh-tdep.c:2468
 msgid ""
 "gcc       - Use GCC calling convention (default).\n"
 "renesas   - Enforce Renesas calling convention."
 msgstr ""
 
-#: skip.c:148
+#: skip.c:145
+msgid "regexp"
+msgstr ""
+
+#: skip.c:175
 msgid "No default file now."
 msgstr ""
 
-#: skip.c:159
+#: skip.c:187
 #, possible-c-format
 msgid "File %s will be skipped when stepping.\n"
 msgstr ""
 
-#: skip.c:170
+#: skip.c:198
 #, possible-c-format
 msgid "Function %s will be skipped when stepping.\n"
 msgstr ""
 
-#: skip.c:183
+#: skip.c:211
 msgid "No default function now."
 msgstr ""
 
-#: skip.c:188
+#: skip.c:216
 #, possible-c-format
 msgid "No function found containing current program point %s."
 msgstr ""
 
-#: skip.c:257 skip.c:265 skip.c:273 skip.c:281
+#: skip.c:254 skip.c:262 skip.c:270 skip.c:278
 #, possible-c-format
 msgid "Missing value for %s option."
 msgstr ""
 
-#: skip.c:286
+#: skip.c:283
 #, possible-c-format
 msgid "Invalid skip option: %s"
 msgstr ""
 
-#: skip.c:302
+#: skip.c:298
 msgid "Cannot specify both -file and -gfile."
 msgstr ""
 
-#: skip.c:305
+#: skip.c:301
 msgid "Cannot specify both -function and -rfunction."
 msgstr ""
 
-#: skip.c:318
-msgid "regexp"
-msgstr ""
-
 #: skip.c:330
 msgid "File(s)"
 msgstr ""
@@ -24475,21 +25027,21 @@ msgstr ""
 msgid "%s %s in %s %s will be skipped when stepping.\n"
 msgstr ""
 
-#: skip.c:376
+#: skip.c:372
 msgid "Not skipping any files or functions.\n"
 msgstr ""
 
-#: skip.c:379
+#: skip.c:375
 #, possible-c-format
 msgid "No skiplist entries found with number %s.\n"
 msgstr ""
 
-#: skip.c:449 skip.c:466 skip.c:493
+#: skip.c:439 skip.c:455 skip.c:479
 #, possible-c-format
 msgid "No skiplist entries found with number %s."
 msgstr ""
 
-#: skip.c:685
+#: skip.c:609
 msgid ""
 "Ignore a function while stepping.\n"
 "\n"
@@ -24505,21 +25057,21 @@ msgid ""
 "       -rfu|-rfunction FUNCTION-NAME-REGULAR-EXPRESSION"
 msgstr ""
 
-#: skip.c:700
+#: skip.c:624
 msgid ""
 "Ignore a file while stepping.\n"
 "Usage: skip file [FILE-NAME]\n"
 "If no filename is given, ignore the current file."
 msgstr ""
 
-#: skip.c:707
+#: skip.c:631
 msgid ""
 "Ignore a function while stepping.\n"
 "Usage: skip function [FUNCTION-NAME]\n"
 "If no function name is given, skip the current function."
 msgstr ""
 
-#: skip.c:714
+#: skip.c:638
 msgid ""
 "Enable skip entries.  You can specify numbers (e.g. \"skip enable 1 3\"), "
 "ranges (e.g. \"skip enable 4-8\"), or both (e.g. \"skip enable 1 3 4-8\").\n"
@@ -24529,7 +25081,7 @@ msgid ""
 "Usage: skip enable [NUMBERS AND/OR RANGES]"
 msgstr ""
 
-#: skip.c:721
+#: skip.c:645
 msgid ""
 "Disable skip entries.  You can specify numbers (e.g. \"skip disable 1 3\"), "
 "ranges (e.g. \"skip disable 4-8\"), or both (e.g. \"skip disable 1 3 4-8"
@@ -24540,7 +25092,7 @@ msgid ""
 "Usage: skip disable [NUMBERS AND/OR RANGES]"
 msgstr ""
 
-#: skip.c:728
+#: skip.c:652
 msgid ""
 "Delete skip entries.  You can specify numbers (e.g. \"skip delete 1 3\"), "
 "ranges (e.g. \"skip delete 4-8\"), or both (e.g. \"skip delete 1 3 4-8\").\n"
@@ -24550,7 +25102,7 @@ msgid ""
 "Usage: skip delete [NUMBERS AND/OR RANGES]"
 msgstr ""
 
-#: skip.c:735
+#: skip.c:659
 msgid ""
 "Display the status of skips.  You can specify numbers (e.g. \"skip info 1 3"
 "\"), ranges (e.g. \"skip info 4-8\"), or both (e.g. \"skip info 1 3 4-8\").\n"
@@ -24563,86 +25115,86 @@ msgid ""
 "\tfunction    - ignored function"
 msgstr ""
 
-#: solib-aix.c:138 solib-target.c:65
+#: solib-aix.c:113 solib-target.c:66
 msgid ""
 "Can not parse XML library list; XML support was disabled at compile time"
 msgstr ""
 
-#: solib-aix.c:201 solib-target.c:161
+#: solib-aix.c:176 solib-target.c:160
 #, possible-c-format
 msgid "Library list has unsupported version \"%s\""
 msgstr ""
 
-#: solib-aix.c:270
+#: solib-aix.c:246
 msgid "aix library list"
 msgstr ""
 
-#: solib-aix.c:311
+#: solib-aix.c:285
 #, possible-c-format
 msgid "%s (failed to read TARGET_OBJECT_LIBRARIES_AIX)"
 msgstr ""
 
-#: solib-aix.c:325
+#: solib-aix.c:298
 #, possible-c-format
 msgid "%s (missing XML support?)"
 msgstr ""
 
-#: solib-aix.c:534
+#: solib-aix.c:508
 msgid "unable to relocate main executable (no info from loader)"
 msgstr ""
 
 #. Should never happen, but recover as best as we can (trying
 #. to open pathname without decoding, possibly leading to
 #. a failure), rather than triggering an assert failure).
-#: solib-aix.c:652
+#: solib-aix.c:627
 #, possible-c-format
 msgid "missing '(' in shared object pathname: %s"
 msgstr ""
 
-#: solib-aix.c:670 solib.c:485
+#: solib-aix.c:645 solib.c:484
 #, possible-c-format
 msgid "Could not open `%s' as an executable file: %s"
 msgstr ""
 
-#: solib-aix.c:680
+#: solib-aix.c:655
 #, possible-c-format
 msgid "\"%s\": not in executable format: %s."
 msgstr ""
 
-#: solib-aix.c:698
+#: solib-aix.c:673
 #, possible-c-format
 msgid "\"%s\": member \"%s\" missing."
 msgstr ""
 
-#: solib-aix.c:705
+#: solib-aix.c:680
 #, possible-c-format
 msgid "%s(%s): not in object format: %s."
 msgstr ""
 
-#: solib-aix.c:751
+#: solib-aix.c:726
 #, possible-c-format
 msgid "unable to find TOC entry for pc %s (no section contains this PC)"
 msgstr ""
 
-#: solib-aix.c:757
+#: solib-aix.c:732
 #, possible-c-format
 msgid "unable to find TOC entry for pc %s (%s has no data section)"
 msgstr ""
 
-#: solib-aix.c:792
+#: solib-aix.c:767
 #, possible-c-format
 msgid "solib-aix debugging is %s.\n"
 msgstr ""
 
-#: solib-aix.c:823
+#: solib-aix.c:795
 msgid "Control the debugging traces for the solib-aix module."
 msgstr ""
 
-#: solib-aix.c:824
+#: solib-aix.c:796
 msgid "Show whether solib-aix debugging traces are enabled."
 msgstr ""
 
-#: solib-aix.c:825
+#: solib-aix.c:797
 msgid "When on, solib-aix debugging traces are enabled."
 msgstr ""
 
@@ -24652,44 +25204,44 @@ msgid ""
 "The search path for loading non-absolute shared library symbol files is %s.\n"
 msgstr ""
 
-#: solib.c:520
+#: solib.c:519
 #, possible-c-format
 msgid "`%s': not in executable format: %s"
 msgstr ""
 
-#: solib.c:526
+#: solib.c:525
 #, possible-c-format
 msgid ""
 "`%s': Shared library architecture %s is not compatible with target "
 "architecture %s."
 msgstr ""
 
-#: solib.c:572
+#: solib.c:567
 msgid "Shared library file name is too long."
 msgstr ""
 
-#: solib.c:577
+#: solib.c:572
 #, possible-c-format
 msgid "Can't find the file sections in `%s': %s"
 msgstr ""
 
-#: solib.c:723
+#: solib.c:718
 #, possible-c-format
 msgid "Error while reading shared library symbols for %s:\n"
 msgstr ""
 
-#: solib.c:894 solib.c:1364
+#: solib.c:899 solib.c:1358
 msgid "Error while mapping shared library sections:\n"
 msgstr ""
 
-#: solib.c:912
+#: solib.c:917
 #, possible-c-format
 msgid ""
 "Could not load shared library symbols for %s.\n"
 "Do you need \"set solib-search-path\" or \"set sysroot\"?"
 msgstr ""
 
-#: solib.c:917
+#: solib.c:922
 #, possible-c-format
 msgid ""
 "Could not load shared library symbols for %d libraries, e.g. %s.\n"
@@ -24697,68 +25249,68 @@ msgid ""
 "Do you need \"set solib-search-path\" or \"set sysroot\"?"
 msgstr ""
 
-#: solib.c:964
+#: solib.c:969
 #, possible-c-format
 msgid "Loading symbols for shared libraries: %s\n"
 msgstr ""
 
-#: solib.c:968 solib.c:1315
+#: solib.c:973 solib.c:1312
 msgid "Loading symbols for shared libraries.\n"
 msgstr ""
 
-#: solib.c:1013
+#: solib.c:1018
 #, possible-c-format
 msgid "Symbols already loaded for %s\n"
 msgstr ""
 
-#: solib.c:1135
+#: solib.c:1133
 msgid "No shared libraries matched.\n"
 msgstr ""
 
-#: solib.c:1137
+#: solib.c:1135
 msgid "No shared libraries loaded at this time.\n"
 msgstr ""
 
-#: solib.c:1142
+#: solib.c:1140
 msgid "(*): Shared library is missing debugging information.\n"
 msgstr ""
 
-#: solib.c:1450
+#: solib.c:1442
 #, possible-c-format
 msgid "\"%s\" is deprecated, use \"%s\" instead."
 msgstr ""
 
-#: solib.c:1452
+#: solib.c:1444
 #, possible-c-format
 msgid "sysroot set to \"%s\"."
 msgstr ""
 
-#: solib.c:1465
+#: solib.c:1457
 #, possible-c-format
 msgid "Autoloading of shared library symbols is %s.\n"
 msgstr ""
 
-#: solib.c:1631
+#: solib.c:1621
 msgid "Load shared object library symbols for files matching REGEXP."
 msgstr ""
 
-#: solib.c:1633
+#: solib.c:1623
 msgid "Status of loaded shared object libraries."
 msgstr ""
 
-#: solib.c:1636
+#: solib.c:1626
 msgid "Unload all shared object library symbols."
 msgstr ""
 
-#: solib.c:1639
+#: solib.c:1629
 msgid "Set autoloading of shared library symbols."
 msgstr ""
 
-#: solib.c:1640
+#: solib.c:1630
 msgid "Show autoloading of shared library symbols."
 msgstr ""
 
-#: solib.c:1641
+#: solib.c:1631
 msgid ""
 "If \"on\", symbols from all shared object libraries will be loaded\n"
 "automatically when the inferior begins execution, when the dynamic linker\n"
@@ -24766,169 +25318,169 @@ msgid ""
 "inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'."
 msgstr ""
 
-#: solib.c:1652
+#: solib.c:1642
 msgid "Set an alternate system root."
 msgstr ""
 
-#: solib.c:1653
+#: solib.c:1643
 msgid "Show the current system root."
 msgstr ""
 
-#: solib.c:1654
+#: solib.c:1644
 msgid ""
 "The system root is used to load absolute shared library symbol files.\n"
 "For other (relative) files, you can add directories using\n"
 "`set solib-search-path'."
 msgstr ""
 
-#: solib.c:1668
+#: solib.c:1658
 msgid ""
 "Set the search path for loading non-absolute shared library symbol files."
 msgstr ""
 
-#: solib.c:1670
+#: solib.c:1660
 msgid ""
 "Show the search path for loading non-absolute shared library symbol files."
 msgstr ""
 
-#: solib.c:1672
+#: solib.c:1662
 msgid ""
 "This takes precedence over the environment variables PATH and "
 "LD_LIBRARY_PATH."
 msgstr ""
 
-#: solib-darwin.c:542
+#: solib-darwin.c:533
 #, possible-c-format
 msgid "unhandled dyld version (%d)"
 msgstr ""
 
-#: solib-darwin.c:641
+#: solib-darwin.c:637
 #, possible-c-format
 msgid "`%s': not a shared-library: %s"
 msgstr ""
 
-#: solib-dsbt.c:201
+#: solib-dsbt.c:206
 #, possible-c-format
 msgid "Unsupported map version: %d\n"
 msgstr ""
 
-#: solib-dsbt.c:297
+#: solib-dsbt.c:302
 msgid "Error reading DSBT exec loadmap"
 msgstr ""
 
-#: solib-dsbt.c:307
+#: solib-dsbt.c:312
 msgid "Error reading DSBT interp loadmap"
 msgstr ""
 
-#: solib-dsbt.c:673
+#: solib-dsbt.c:672
 msgid ""
 "dsbt_current_sos: Unable to read link map entry.  Shared object chain may be "
 "incomplete."
 msgstr ""
 
-#: solib-dsbt.c:687
+#: solib-dsbt.c:686
 msgid ""
 "dsbt_current_sos: Unable to read dsbt index.  Shared object chain may be "
 "incomplete."
 msgstr ""
 
-#: solib-dsbt.c:708
+#: solib-dsbt.c:707
 msgid ""
 "dsbt_current_sos: Unable to fetch load map.  Shared object chain may be "
 "incomplete."
 msgstr ""
 
-#: solib-dsbt.c:724 solib-frv.c:408
+#: solib-dsbt.c:724 solib-frv.c:415
 #, possible-c-format
 msgid "Can't read pathname for link map entry: %s."
 msgstr ""
 
-#: solib-dsbt.c:772 solib-frv.c:479 solib-svr4.c:2515
+#: solib-dsbt.c:772 solib-frv.c:486 solib-svr4.c:2475
 msgid ""
 "Unable to find dynamic linker breakpoint function.\n"
 "GDB will be unable to debug shared library initializers\n"
 "and track explicitly loaded dynamic code."
 msgstr ""
 
-#: solib-dsbt.c:996 solib-frv.c:849
+#: solib-dsbt.c:996 solib-frv.c:855
 msgid "shared library handler failed to enable breakpoint"
 msgstr ""
 
-#: solib-dsbt.c:1049
+#: solib-dsbt.c:1046
 #, possible-c-format
 msgid "solib-dsbt debugging is %s.\n"
 msgstr ""
 
-#: solib-dsbt.c:1074
+#: solib-dsbt.c:1068
 msgid "Set internal debugging of shared library code for DSBT ELF."
 msgstr ""
 
-#: solib-dsbt.c:1075
+#: solib-dsbt.c:1069
 msgid "Show internal debugging of shared library code for DSBT ELF."
 msgstr ""
 
-#: solib-dsbt.c:1076
+#: solib-dsbt.c:1070
 msgid "When non-zero, DSBT solib specific internal debugging is enabled."
 msgstr ""
 
-#: solib-frv.c:359
+#: solib-frv.c:365
 msgid ""
 "frv_current_sos: Unable to read link map entry.  Shared object chain may be "
 "incomplete."
 msgstr ""
 
-#: solib-frv.c:386
+#: solib-frv.c:392
 msgid ""
 "frv_current_sos: Unable to fetch load map.  Shared object chain may be "
 "incomplete."
 msgstr ""
 
-#: solib-frv.c:576
+#: solib-frv.c:583
 msgid "Unable to determine dynamic linker loadmap address."
 msgstr ""
 
-#: solib-frv.c:589
+#: solib-frv.c:596
 #, possible-c-format
 msgid "Unable to load dynamic linker loadmap at address %s."
 msgstr ""
 
-#: solib-frv.c:624
+#: solib-frv.c:631
 msgid "Could not find symbol _dl_debug_addr in dynamic linker"
 msgstr ""
 
-#: solib-frv.c:647
+#: solib-frv.c:654
 #, possible-c-format
 msgid ""
 "Unable to fetch contents of _dl_debug_addr (at address %s) from dynamic "
 "linker"
 msgstr ""
 
-#: solib-frv.c:673
+#: solib-frv.c:680
 #, possible-c-format
 msgid ""
 "Unable to fetch _dl_debug_addr->r_brk (at address %s) from dynamic linker"
 msgstr ""
 
-#: solib-frv.c:684
+#: solib-frv.c:691
 #, possible-c-format
 msgid ""
 "Unable to fetch _dl_debug_addr->.r_brk entry point (at address %s) from "
 "dynamic linker"
 msgstr ""
 
-#: solib-frv.c:782
+#: solib-frv.c:789
 msgid "Unable to load the executable's loadmap."
 msgstr ""
 
-#: solib-frv.c:1171
+#: solib-frv.c:1170
 msgid "Set internal debugging of shared library code for FR-V."
 msgstr ""
 
-#: solib-frv.c:1172
+#: solib-frv.c:1171
 msgid "Show internal debugging of shared library code for FR-V."
 msgstr ""
 
-#: solib-frv.c:1173
+#: solib-frv.c:1172
 msgid "When non-zero, FR-V solib specific internal debugging is enabled."
 msgstr ""
 
@@ -24937,12 +25489,12 @@ msgstr ""
 msgid "Cannot read SPE executable at %s"
 msgstr ""
 
-#: solib-svr4.c:205
+#: solib-svr4.c:184
 #, possible-c-format
 msgid "Error reading shared library list entry at %s"
 msgstr ""
 
-#: solib-svr4.c:313
+#: solib-svr4.c:294
 #, possible-c-format
 msgid ""
 "Using PIC (Position Independent Code) prelink displacement %s for \"%s\".\n"
@@ -24956,42 +25508,42 @@ msgstr ""
 #. verification if it they match.  One could do a verification
 #. of the DYNAMIC segment.  Still the found address is the best
 #. one GDB could find.
-#: solib-svr4.c:329
+#: solib-svr4.c:310
 #, possible-c-format
 msgid ""
 ".dynamic section for \"%s\" is not at the expected address (wrong library or "
 "version mismatch?)"
 msgstr ""
 
-#: solib-svr4.c:1031
+#: solib-svr4.c:1007
 msgid "Attempt to reload symbols from process? "
 msgstr ""
 
-#: solib-svr4.c:1071
+#: solib-svr4.c:1047
 #, possible-c-format
 msgid "failed to read exec filename from attached file: %s"
 msgstr ""
 
-#: solib-svr4.c:1208
+#: solib-svr4.c:1189
 #, possible-c-format
 msgid "SVR4 Library list has unsupported version \"%s\""
 msgstr ""
 
-#: solib-svr4.c:1265 solib-target.c:239
+#: solib-svr4.c:1246 solib-target.c:234
 msgid "target library list"
 msgstr ""
 
-#: solib-svr4.c:1385
+#: solib-svr4.c:1353
 #, possible-c-format
 msgid "Corrupted shared library list: %s != %s"
 msgstr ""
 
-#: solib-svr4.c:1417
+#: solib-svr4.c:1383
 #, possible-c-format
 msgid "Can't read pathname for load map: %s."
 msgstr ""
 
-#: solib-svr4.c:1903
+#: solib-svr4.c:1874
 msgid ""
 "Probes-based dynamic linker interface failed.\n"
 "Reverting to original interface.\n"
@@ -25000,32 +25552,32 @@ msgstr ""
 #. It can be printed repeatedly as there is no easy way to check
 #. the executable symbols/file has been already relocated to
 #. displacement.
-#: solib-svr4.c:2980
+#: solib-svr4.c:2940
 #, possible-c-format
 msgid ""
 "Using PIE (Position Independent Executable) displacement %s for \"%s\".\n"
 msgstr ""
 
-#: solib-target.c:91 solib-target.c:109
+#: solib-target.c:92 solib-target.c:110
 msgid "Library list with both segments and sections"
 msgstr ""
 
-#: solib-target.c:141
+#: solib-target.c:140
 msgid "No segment or section bases defined"
 msgstr ""
 
-#: solib-target.c:364
+#: solib-target.c:350
 #, possible-c-format
 msgid ""
 "Could not relocate shared library \"%s\": wrong number of ALLOC sections"
 msgstr ""
 
-#: solib-target.c:413
+#: solib-target.c:394
 #, possible-c-format
 msgid "Could not relocate shared library \"%s\": no segments"
 msgstr ""
 
-#: solib-target.c:429
+#: solib-target.c:404
 #, possible-c-format
 msgid "Could not relocate shared library \"%s\": bad offsets"
 msgstr ""
@@ -25061,211 +25613,211 @@ msgid "lwp_to_thread: td_thr_get_info: %
 msgstr ""
 
 #. Inactive thread.
-#: sol-thread.c:385 sol-thread.c:421
+#: sol-thread.c:384 sol-thread.c:417
 msgid "This version of Solaris can't start inactive threads."
 msgstr ""
 
-#: sol-thread.c:387 sol-thread.c:423
+#: sol-thread.c:386 sol-thread.c:419
 #, possible-c-format
 msgid "Specified thread %ld seems to have terminated"
 msgstr ""
 
-#: sol-thread.c:477
+#: sol-thread.c:471
 msgid "sol_thread_fetch_registers: thread == 0"
 msgstr ""
 
-#: sol-thread.c:481
+#: sol-thread.c:475
 #, possible-c-format
 msgid "sol_thread_fetch_registers: td_ta_map_id2thr: %s"
 msgstr ""
 
-#: sol-thread.c:488
+#: sol-thread.c:482
 #, possible-c-format
 msgid "sol_thread_fetch_registers: td_thr_getgregs %s"
 msgstr ""
 
-#: sol-thread.c:498
+#: sol-thread.c:492
 #, possible-c-format
 msgid "sol_thread_fetch_registers: td_thr_getfpregs %s"
 msgstr ""
 
-#: sol-thread.c:534
+#: sol-thread.c:528
 #, possible-c-format
 msgid "sol_thread_store_registers: td_ta_map_id2thr %s"
 msgstr ""
 
-#: sol-thread.c:541
+#: sol-thread.c:535
 #, possible-c-format
 msgid "sol_thread_store_registers: td_thr_getgregs %s"
 msgstr ""
 
-#: sol-thread.c:545
+#: sol-thread.c:539
 #, possible-c-format
 msgid "sol_thread_store_registers: td_thr_getfpregs %s"
 msgstr ""
 
-#: sol-thread.c:554
+#: sol-thread.c:548
 #, possible-c-format
 msgid "sol_thread_store_registers: td_thr_setgregs %s"
 msgstr ""
 
-#: sol-thread.c:558
+#: sol-thread.c:552
 #, possible-c-format
 msgid "sol_thread_store_registers: td_thr_setfpregs %s"
 msgstr ""
 
-#: sol-thread.c:622
+#: sol-thread.c:610
 #, possible-c-format
 msgid "sol_thread_new_objfile: td_init: %s"
 msgstr ""
 
-#: sol-thread.c:650
+#: sol-thread.c:638
 #, possible-c-format
 msgid "Cannot initialize thread debugging library: %s"
 msgstr ""
 
-#: sol-thread.c:1161
+#: sol-thread.c:1116
 msgid "info sol-thread: failed to get info for thread."
 msgstr ""
 
-#: sol-thread.c:1277
+#: sol-thread.c:1229
 msgid "Show info on Solaris user threads."
 msgstr ""
 
-#: source.c:105
+#: source.c:93
 #, possible-c-format
 msgid "Number of source lines gdb will list by default is %s.\n"
 msgstr ""
 
-#: source.c:128
+#: source.c:116
 #, possible-c-format
 msgid "Filenames are displayed as \"%s\".\n"
 msgstr ""
 
-#: source.c:323
+#: source.c:309
 msgid "Can't find a default source file"
 msgstr ""
 
-#: source.c:434
+#: source.c:421
 msgid "Reinitialize source path to empty? "
 msgstr ""
 
-#: source.c:663
+#: source.c:646
 msgid "No current source file.\n"
 msgstr ""
 
-#: source.c:668
+#: source.c:651
 #, possible-c-format
 msgid "Current source file is %s\n"
 msgstr ""
 
-#: source.c:670
+#: source.c:653
 #, possible-c-format
 msgid "Compilation directory is %s\n"
 msgstr ""
 
-#: source.c:672
+#: source.c:655
 #, possible-c-format
 msgid "Located in %s\n"
 msgstr ""
 
-#: source.c:674
+#: source.c:657
 #, possible-c-format
 msgid "Contains %d line%s.\n"
 msgstr ""
 
-#: source.c:677
+#: source.c:660
 #, possible-c-format
 msgid "Source language is %s.\n"
 msgstr ""
 
-#: source.c:678
+#: source.c:661
 #, possible-c-format
 msgid "Producer is %s.\n"
 msgstr ""
 
-#: source.c:681
+#: source.c:664
 #, possible-c-format
 msgid "Compiled with %s debugging format.\n"
 msgstr ""
 
-#: source.c:683
+#: source.c:666
 #, possible-c-format
 msgid "%s preprocessor macro info.\n"
 msgstr ""
 
-#: source.c:1208
+#: source.c:1177
 msgid "invalid filename_display_string"
 msgstr ""
 
-#: source.c:1238
+#: source.c:1207
 msgid "Source file is more recent than executable."
 msgstr ""
 
-#: source.c:1441
+#: source.c:1408
 #, possible-c-format
 msgid "Line number %d out of range; %s has %d lines."
 msgstr ""
 
-#: source.c:1560
+#: source.c:1519
 msgid "No line number information available"
 msgstr ""
 
 #. Is there any case in which we get here, and have an address
 #. which the user would want to see?  If we have debugging symbols
 #. and no line numbers?
-#: source.c:1620
+#: source.c:1579
 #, possible-c-format
 msgid "Line number %d is out of range for \"%s\".\n"
 msgstr ""
 
-#: source.c:1656 source.c:1745
+#: source.c:1613 source.c:1698
 msgid "Expression not found"
 msgstr ""
 
-#: source.c:1713 source.c:1799
+#: source.c:1668 source.c:1750
 msgid "Expression not found\n"
 msgstr ""
 
-#: source.c:1909
+#: source.c:1856
 msgid "Too many arguments in command"
 msgstr ""
 
-#: source.c:1918
+#: source.c:1865
 #, possible-c-format
 msgid "Source path substitution rule matching `%s':\n"
 msgstr ""
 
-#: source.c:1920
+#: source.c:1867
 msgid "List of all source path substitution rules:\n"
 msgstr ""
 
-#: source.c:1947 source.c:2003
+#: source.c:1890 source.c:1941
 msgid "Incorrect usage, too many arguments in command"
 msgstr ""
 
-#: source.c:1957
+#: source.c:1900
 msgid "Delete all source path substitution rules? "
 msgstr ""
 
-#: source.c:1958
+#: source.c:1901
 msgid "Canceled"
 msgstr ""
 
-#: source.c:1980
+#: source.c:1923
 #, possible-c-format
 msgid "No substitution rule defined for `%s'"
 msgstr ""
 
-#: source.c:2000
+#: source.c:1938
 msgid "Incorrect usage, too few arguments in command"
 msgstr ""
 
-#: source.c:2006
+#: source.c:1944
 msgid "First argument must be at least one character long"
 msgstr ""
 
-#: source.c:2043
+#: source.c:1979
 msgid ""
 "Add directory DIR to beginning of search path for source files.\n"
 "Forget cached info on source file locations and line positions.\n"
@@ -25274,15 +25826,15 @@ msgid ""
 "With no argument, reset the search path to $cdir:$cwd, the default."
 msgstr ""
 
-#: source.c:2059
+#: source.c:1995
 msgid "Set the search path for finding source files."
 msgstr ""
 
-#: source.c:2061
+#: source.c:1997
 msgid "Show the search path for finding source files."
 msgstr ""
 
-#: source.c:2063
+#: source.c:1999
 msgid ""
 "$cwd in the path means the current working directory.\n"
 "$cdir in the path means the compilation directory of the source file.\n"
@@ -25291,11 +25843,11 @@ msgid ""
 "Setting the value to an empty string sets it to $cdir:$cwd, the default."
 msgstr ""
 
-#: source.c:2074
+#: source.c:2010
 msgid "Information about the current source file."
 msgstr ""
 
-#: source.c:2076
+#: source.c:2012
 msgid ""
 "Core addresses of the code for a source line.\n"
 "Line can be specified as\n"
@@ -25310,80 +25862,135 @@ msgid ""
 "The address is also stored as the value of \"$_\"."
 msgstr ""
 
-#: source.c:2088
+#: source.c:2024
 msgid ""
 "Search for regular expression (see regex(3)) from last line listed.\n"
 "The matching line number is also stored as the value of \"$_\"."
 msgstr ""
 
-#: source.c:2094
+#: source.c:2030
 msgid ""
 "Search backward for regular expression (see regex(3)) from last line "
 "listed.\n"
 "The matching line number is also stored as the value of \"$_\"."
 msgstr ""
 
-#: source.c:2099
+#: source.c:2035
 msgid "Set number of source lines gdb will list by default."
 msgstr ""
 
-#: source.c:2100
+#: source.c:2036
 msgid "Show number of source lines gdb will list by default."
 msgstr ""
 
-#: source.c:2101
+#: source.c:2037
 msgid ""
 "Use this to choose how many source lines the \"list\" displays (unless\n"
 "the \"list\" argument explicitly specifies some other number).\n"
 "A value of \"unlimited\", or zero, means there's no limit."
 msgstr ""
 
-#: source.c:2110
-msgid ""
-"Usage: set substitute-path FROM TO\n"
-"Add a substitution rule replacing FROM into TO in source file names.\n"
-"If a substitution rule was previously set for FROM, the old rule\n"
-"is replaced by the new one."
+#: source.c:2046
+msgid ""
+"Usage: set substitute-path FROM TO\n"
+"Add a substitution rule replacing FROM into TO in source file names.\n"
+"If a substitution rule was previously set for FROM, the old rule\n"
+"is replaced by the new one."
+msgstr ""
+
+#: source.c:2054
+msgid ""
+"Usage: unset substitute-path [FROM]\n"
+"Delete the rule for substituting FROM in source file names.  If FROM\n"
+"is not specified, all substituting rules are deleted.\n"
+"If the debugger cannot find a rule for FROM, it will display a warning."
+msgstr ""
+
+#: source.c:2062
+msgid ""
+"Usage: show substitute-path [FROM]\n"
+"Print the rule for substituting FROM in source file names. If FROM\n"
+"is not specified, print all substitution rules."
+msgstr ""
+
+#: source.c:2070
+msgid "Set how to display filenames."
+msgstr ""
+
+#: source.c:2071
+msgid "Show how to display filenames."
+msgstr ""
+
+#: source.c:2072
+msgid ""
+"filename-display can be:\n"
+"  basename - display only basename of a filename\n"
+"  relative - display a filename relative to the compilation directory\n"
+"  absolute - display an absolute filename\n"
+"By default, relative filenames are displayed."
+msgstr ""
+
+#: sparc64-linux-tdep.c:152
+msgid "ADI disabled"
+msgstr ""
+
+#: sparc64-linux-tdep.c:158
+msgid "ADI deferred mismatch"
+msgstr ""
+
+#: sparc64-linux-tdep.c:164
+msgid "ADI precise mismatch"
+msgstr ""
+
+#: sparc64-tdep.c:353 sparc64-tdep.c:374
+#, possible-c-format
+msgid "Address at %s is not in ADI maps"
+msgstr ""
+
+#: sparc64-tdep.c:424 sparc64-tdep.c:442 sparc64-tdep.c:462 sparc64-tdep.c:497
+msgid "No ADI information"
+msgstr ""
+
+#: sparc64-tdep.c:426 sparc64-tdep.c:444
+#, possible-c-format
+msgid "No ADI information at %s"
+msgstr ""
+
+#: sparc64-tdep.c:459 sparc64-tdep.c:494
+msgid "ADI command requires a live process/thread"
+msgstr ""
+
+#: sparc64-tdep.c:478
+msgid "Usage: adi examine|x[/count] <addr>"
 msgstr ""
 
-#: source.c:2118
-msgid ""
-"Usage: unset substitute-path [FROM]\n"
-"Delete the rule for substituting FROM in source file names.  If FROM\n"
-"is not specified, all substituting rules are deleted.\n"
-"If the debugger cannot find a rule for FROM, it will display a warning."
+#: sparc64-tdep.c:501 sparc64-tdep.c:507 sparc64-tdep.c:521
+msgid "Usage: adi assign|a[/count] <addr> = <version>"
 msgstr ""
 
-#: source.c:2126
-msgid ""
-"Usage: show substitute-path [FROM]\n"
-"Print the rule for substituting FROM in source file names. If FROM\n"
-"is not specified, print all substitution rules."
+#: sparc64-tdep.c:529
+#, possible-c-format
+msgid "Invalid ADI version tag %d"
 msgstr ""
 
-#: source.c:2134
-msgid "Set how to display filenames."
+#: sparc64-tdep.c:540
+msgid "ADI version related commands."
 msgstr ""
 
-#: source.c:2135
-msgid "Show how to display filenames."
+#: sparc64-tdep.c:543
+msgid "Examine ADI versions."
 msgstr ""
 
-#: source.c:2136
-msgid ""
-"filename-display can be:\n"
-"  basename - display only basename of a filename\n"
-"  relative - display a filename relative to the compilation directory\n"
-"  absolute - display an absolute filename\n"
-"By default, relative filenames are displayed."
+#: sparc64-tdep.c:546
+msgid "Assign ADI versions."
 msgstr ""
 
-#: sparc64-tdep.c:314
+#: sparc64-tdep.c:816
 #, possible-c-format
 msgid "sparc64_pseudo_register_name: bad register number %d"
 msgstr ""
 
-#: sparc64-tdep.c:354
+#: sparc64-tdep.c:856
 #, possible-c-format
 msgid "sparc64_pseudo_register_type: bad register number %d"
 msgstr ""
@@ -25400,12 +26007,12 @@ msgstr ""
 msgid "Couldn't get StackGhost cookie"
 msgstr ""
 
-#: sparc-tdep.c:346
+#: sparc-tdep.c:383
 #, possible-c-format
 msgid "sparc32_pseudo_register_name: bad register number %d"
 msgstr ""
 
-#: sparc-tdep.c:433
+#: sparc-tdep.c:470
 #, possible-c-format
 msgid "sparc32_pseudo_register_type: bad register number %d"
 msgstr ""
@@ -25415,300 +26022,300 @@ msgstr ""
 msgid "Child process unexpectedly missing: %s"
 msgstr ""
 
-#: spu-tdep.c:1630
+#: spu-tdep.c:1629
 #, possible-c-format
 msgid "Could not read instruction at %s."
 msgstr ""
 
-#: spu-tdep.c:2075 spu-tdep.c:2132 spu-tdep.c:2253 spu-tdep.c:2494
-#: spu-tdep.c:2573
+#: spu-tdep.c:2076 spu-tdep.c:2130 spu-tdep.c:2245 spu-tdep.c:2478
+#: spu-tdep.c:2555
 msgid "\"info spu\" is only supported on the SPU architecture."
 msgstr ""
 
-#: spu-tdep.c:2083
+#: spu-tdep.c:2084
 msgid "Could not read event_status."
 msgstr ""
 
-#: spu-tdep.c:2091
+#: spu-tdep.c:2092
 msgid "Could not read event_mask."
 msgstr ""
 
-#: spu-tdep.c:2106
+#: spu-tdep.c:2107
 #, possible-c-format
 msgid "Event Status 0x%s\n"
 msgstr ""
 
-#: spu-tdep.c:2107
+#: spu-tdep.c:2108
 #, possible-c-format
 msgid "Event Mask   0x%s\n"
 msgstr ""
 
-#: spu-tdep.c:2139
+#: spu-tdep.c:2137
 msgid "Could not read signal1."
 msgstr ""
 
-#: spu-tdep.c:2150
+#: spu-tdep.c:2148
 msgid "Could not read signal1_type."
 msgstr ""
 
-#: spu-tdep.c:2157
+#: spu-tdep.c:2155
 msgid "Could not read signal2."
 msgstr ""
 
-#: spu-tdep.c:2168
+#: spu-tdep.c:2166
 msgid "Could not read signal2_type."
 msgstr ""
 
-#: spu-tdep.c:2186
+#: spu-tdep.c:2184
 #, possible-c-format
 msgid "Signal 1 control word 0x%s "
 msgstr ""
 
-#: spu-tdep.c:2188
+#: spu-tdep.c:2186
 msgid "Signal 1 not pending "
 msgstr ""
 
-#: spu-tdep.c:2191 spu-tdep.c:2201
+#: spu-tdep.c:2189 spu-tdep.c:2199
 msgid "(Type Or)\n"
 msgstr ""
 
-#: spu-tdep.c:2193 spu-tdep.c:2203
+#: spu-tdep.c:2191 spu-tdep.c:2201
 msgid "(Type Overwrite)\n"
 msgstr ""
 
-#: spu-tdep.c:2196
+#: spu-tdep.c:2194
 #, possible-c-format
 msgid "Signal 2 control word 0x%s "
 msgstr ""
 
-#: spu-tdep.c:2198
+#: spu-tdep.c:2196
 msgid "Signal 2 not pending "
 msgstr ""
 
-#: spu-tdep.c:2263
+#: spu-tdep.c:2255
 msgid "Could not read mbox_info."
 msgstr ""
 
-#: spu-tdep.c:2272
+#: spu-tdep.c:2264
 msgid "Could not read ibox_info."
 msgstr ""
 
-#: spu-tdep.c:2281
+#: spu-tdep.c:2273
 msgid "Could not read wbox_info."
 msgstr ""
 
-#: spu-tdep.c:2502
+#: spu-tdep.c:2486
 msgid "Could not read dma_info."
 msgstr ""
 
-#: spu-tdep.c:2532 spu-tdep.c:2605
+#: spu-tdep.c:2516 spu-tdep.c:2586
 msgid "no query pending"
 msgstr ""
 
-#: spu-tdep.c:2537 spu-tdep.c:2606
+#: spu-tdep.c:2521 spu-tdep.c:2587
 msgid "'any' query pending"
 msgstr ""
 
-#: spu-tdep.c:2538 spu-tdep.c:2607
+#: spu-tdep.c:2522 spu-tdep.c:2588
 msgid "'all' query pending"
 msgstr ""
 
-#: spu-tdep.c:2539 spu-tdep.c:2608
+#: spu-tdep.c:2523 spu-tdep.c:2589
 msgid "undefined query type"
 msgstr ""
 
-#: spu-tdep.c:2542 spu-tdep.c:2611
+#: spu-tdep.c:2526 spu-tdep.c:2592
 #, possible-c-format
 msgid "Tag-Group Status  0x%s\n"
 msgstr ""
 
-#: spu-tdep.c:2544 spu-tdep.c:2613
+#: spu-tdep.c:2528 spu-tdep.c:2594
 #, possible-c-format
 msgid "Tag-Group Mask    0x%s (%s)\n"
 msgstr ""
 
-#: spu-tdep.c:2546
+#: spu-tdep.c:2530
 #, possible-c-format
 msgid "Stall-and-Notify  0x%s\n"
 msgstr ""
 
-#: spu-tdep.c:2548
+#: spu-tdep.c:2532
 #, possible-c-format
 msgid "Atomic Cmd Status 0x%s\n"
 msgstr ""
 
-#: spu-tdep.c:2581
+#: spu-tdep.c:2563
 msgid "Could not read proxydma_info."
 msgstr ""
 
-#: spu-tdep.c:2625
+#: spu-tdep.c:2605
 msgid "\"info spu\" must be followed by the name of an SPU facility.\n"
 msgstr ""
 
-#: spu-tdep.c:2649
+#: spu-tdep.c:2629
 #, possible-c-format
 msgid "Stopping for new SPE threads is %s.\n"
 msgstr ""
 
-#: spu-tdep.c:2657
+#: spu-tdep.c:2637
 #, possible-c-format
 msgid "Automatic software-cache flush is %s.\n"
 msgstr ""
 
-#: spu-tdep.c:2804 spu-tdep.c:2807 spu-tdep.c:2842
+#: spu-tdep.c:2784 spu-tdep.c:2787 spu-tdep.c:2822
 msgid "Various SPU specific commands."
 msgstr ""
 
-#: spu-tdep.c:2813
+#: spu-tdep.c:2793
 msgid "Set whether to stop for new SPE threads."
 msgstr ""
 
-#: spu-tdep.c:2815
+#: spu-tdep.c:2795
 msgid "Show whether to stop for new SPE threads."
 msgstr ""
 
-#: spu-tdep.c:2817
+#: spu-tdep.c:2797
 msgid ""
 "Use \"on\" to give control to the user when a new SPE thread\n"
 "enters its \"main\" function.\n"
 "Use \"off\" to disable stopping for new SPE threads."
 msgstr ""
 
-#: spu-tdep.c:2828
+#: spu-tdep.c:2808
 msgid "Set whether to automatically flush the software-managed cache."
 msgstr ""
 
-#: spu-tdep.c:2830
+#: spu-tdep.c:2810
 msgid "Show whether to automatically flush the software-managed cache."
 msgstr ""
 
-#: spu-tdep.c:2832
+#: spu-tdep.c:2812
 msgid ""
 "Use \"on\" to automatically flush the software-managed cache\n"
 "whenever SPE execution stops.\n"
 "Use \"off\" to never automatically flush the software-managed cache."
 msgstr ""
 
-#: spu-tdep.c:2847
+#: spu-tdep.c:2827
 msgid "Display SPU event facility status.\n"
 msgstr ""
 
-#: spu-tdep.c:2850
+#: spu-tdep.c:2830
 msgid "Display SPU signal notification facility status.\n"
 msgstr ""
 
-#: spu-tdep.c:2853
+#: spu-tdep.c:2833
 msgid "Display SPU mailbox facility status.\n"
 msgstr ""
 
-#: spu-tdep.c:2856
+#: spu-tdep.c:2836
 msgid "Display MFC DMA status.\n"
 msgstr ""
 
-#: spu-tdep.c:2859
+#: spu-tdep.c:2839
 msgid "Display MFC Proxy-DMA status.\n"
 msgstr ""
 
-#: stabsread.c:169
+#: stabsread.c:167
 #, possible-c-format
 msgid "invalid C++ abbreviation `%s'"
 msgstr ""
 
-#: stabsread.c:255
+#: stabsread.c:253
 #, possible-c-format
 msgid "Invalid symbol data: type number (%d,%d) out of range at symtab pos %d."
 msgstr ""
 
-#: stabsread.c:306
+#: stabsread.c:304
 msgid "GDB internal error: bad real_filenum"
 msgstr ""
 
-#: stabsread.c:679
+#: stabsread.c:677
 #, possible-c-format
 msgid "Bad stabs string '%s'"
 msgstr ""
 
-#: stabsread.c:731
+#: stabsread.c:729
 #, possible-c-format
 msgid "Unknown C++ symbol name `%s'"
 msgstr ""
 
-#: stabsread.c:1499
+#: stabsread.c:1493
 msgid "couldn't parse type; debugger out of date?"
 msgstr ""
 
-#: stabsread.c:1620
+#: stabsread.c:1614
 #, possible-c-format
 msgid "Unrecognized cross-reference type `%c'"
 msgstr ""
 
-#: stabsread.c:1851
+#: stabsread.c:1845
 #, possible-c-format
 msgid ""
 "Prototyped function type didn't end arguments with `#':\n"
 "%s"
 msgstr ""
 
-#: stabsread.c:1964
+#: stabsread.c:1958
 #, possible-c-format
 msgid "invalid (minimal) member type data format at symtab pos %d."
 msgstr ""
 
-#: stabsread.c:2068
+#: stabsread.c:2062
 msgid "GDB internal error, type is NULL in stabsread.c."
 msgstr ""
 
-#: stabsread.c:2096
+#: stabsread.c:2090
 #, possible-c-format
 msgid "Unknown builtin type %d"
 msgstr ""
 
-#: stabsread.c:2263
+#: stabsread.c:2257
 #, possible-c-format
 msgid "Method has bad physname %s\n"
 msgstr ""
 
-#: stabsread.c:2455
+#: stabsread.c:2449
 #, possible-c-format
 msgid "const/volatile indicator missing, got '%c'"
 msgstr ""
 
-#: stabsread.c:2539
+#: stabsread.c:2533
 #, possible-c-format
 msgid "member function type missing, got '%c'"
 msgstr ""
 
-#: stabsread.c:2816
+#: stabsread.c:2810
 #, possible-c-format
 msgid "C++ abbreviated type name unknown at symtab pos %d"
 msgstr ""
 
-#: stabsread.c:3178
+#: stabsread.c:3172
 #, possible-c-format
 msgid "Unknown virtual character `%c' for baseclass"
 msgstr ""
 
-#: stabsread.c:3196
+#: stabsread.c:3190
 #, possible-c-format
 msgid "Unknown visibility `%c' for baseclass"
 msgstr ""
 
-#: stabsread.c:3305
+#: stabsread.c:3299
 #, possible-c-format
 msgid "virtual function table pointer not found when defining class `%s'"
 msgstr ""
 
-#: stabsread.c:3418
+#: stabsread.c:3412
 #, possible-c-format
 msgid "Unknown visibility `%c' for field"
 msgstr ""
 
-#: stabsread.c:3460
+#: stabsread.c:3454
 #, possible-c-format
 msgid "struct/union type gets multiply defined: %s%s"
 msgstr ""
 
-#: stabsread.c:4260
+#: stabsread.c:4256
 #, possible-c-format
 msgid "base type %d of range type is not defined"
 msgstr ""
@@ -25717,90 +26324,90 @@ msgstr ""
 #. output contained `(0,41),(0,42)=@s8;-16;,(0,43),(0,1);' where should
 #. have been present ";-16,(0,43)" reference instead.  This way the
 #. excessive ";" marker prematurely stops the parameters parsing.
-#: stabsread.c:4301
+#: stabsread.c:4297
 msgid "Invalid (empty) method arguments"
 msgstr ""
 
-#: stabsread.c:4344
+#: stabsread.c:4340
 msgid "Invalid symbol data: common block within common block"
 msgstr ""
 
-#: stabsread.c:4370
+#: stabsread.c:4366
 msgid "ECOMM symbol unmatched by BCOMM"
 msgstr ""
 
-#: stabsread.c:4572
+#: stabsread.c:4568
 msgid "need a type name"
 msgstr ""
 
-#: stabsread.c:4599
+#: stabsread.c:4595
 #, possible-c-format
 msgid "forward-referenced types left unresolved, type code %d."
 msgstr ""
 
-#: stabsread.c:4751
+#: stabsread.c:4747
 #, possible-c-format
 msgid "%s: common block `%s' from global_sym_chain unresolved"
 msgstr ""
 
-#: stabsread.c:4832 stabsread.c:4837
+#: stabsread.c:4828 stabsread.c:4833
 #, possible-c-format
 msgid "invalid symbol name \"%s\""
 msgstr ""
 
-#: stack.c:754
+#: stack.c:746
 #, possible-c-format
 msgid "Debugger's willingness to use disassemble-next-line is %s.\n"
 msgstr ""
 
-#: stack.c:961
+#: stack.c:950
 msgid "Trying to set NULL pspace."
 msgstr ""
 
-#: stack.c:1322 stack.c:1402
+#: stack.c:1298 stack.c:1376
 msgid "Too many args in frame specification"
 msgstr ""
 
-#: stack.c:1485
+#: stack.c:1455
 #, possible-c-format
 msgid "Stack level %d, frame at "
 msgstr ""
 
-#: stack.c:1490
+#: stack.c:1460
 msgid "Stack frame at "
 msgstr ""
 
-#: stack.c:1552
+#: stack.c:1522
 #, possible-c-format
 msgid " Outermost frame: %s\n"
 msgstr ""
 
-#: stack.c:1862
+#: stack.c:1830
 msgid "(More stack frames follow...)\n"
 msgstr ""
 
-#: stack.c:1872
+#: stack.c:1840
 #, possible-c-format
 msgid "Backtrace stopped: %s\n"
 msgstr ""
 
-#: stack.c:2099
+#: stack.c:2064
 msgid "PC unavailable, cannot determine locals.\n"
 msgstr ""
 
-#: stack.c:2141
+#: stack.c:2106
 msgid "No locals.\n"
 msgstr ""
 
-#: stack.c:2200
+#: stack.c:2165
 msgid "PC unavailable, cannot determine args.\n"
 msgstr ""
 
-#: stack.c:2223
+#: stack.c:2188
 msgid "No arguments.\n"
 msgstr ""
 
-#: stack.c:2344
+#: stack.c:2309
 msgid "Initial frame selected; you cannot go up."
 msgstr ""
 
@@ -25808,44 +26415,44 @@ msgstr ""
 #. "down" means to really go down (and let me know if that is
 #. impossible), but "down 9999" can be used to mean go all the
 #. way down without getting an error.
-#: stack.c:2381
+#: stack.c:2346
 msgid "Bottom (innermost) frame selected; you cannot go down."
 msgstr ""
 
-#: stack.c:2417
+#: stack.c:2382
 msgid "Can not force return from an inlined function."
 msgstr ""
 
-#: stack.c:2440
+#: stack.c:2405
 msgid ""
 "Return value type not available for selected stack frame.\n"
 "Please use an explicit cast of the value to return."
 msgstr ""
 
-#: stack.c:2487
+#: stack.c:2452
 #, possible-c-format
 msgid "%sMake selected stack frame return now? "
 msgstr ""
 
-#: stack.c:2492
+#: stack.c:2457
 msgid "Function does not return normally to caller."
 msgstr ""
 
-#: stack.c:2493
+#: stack.c:2458
 #, possible-c-format
 msgid "%sMake %s return now? "
 msgstr ""
 
-#: stack.c:2497
+#: stack.c:2462
 msgid "Not confirmed"
 msgstr ""
 
-#: stack.c:2583
+#: stack.c:2541
 #, possible-c-format
 msgid "'%s' not within current stack frame.\n"
 msgstr ""
 
-#: stack.c:2595
+#: stack.c:2549
 msgid ""
 "Make selected stack frame return to its caller.\n"
 "Control remains in the debugger, but when you continue\n"
@@ -25853,31 +26460,31 @@ msgid ""
 "If an argument is given, it is an expression for the value to return."
 msgstr ""
 
-#: stack.c:2601
+#: stack.c:2555
 msgid ""
 "Select and print stack frame that called this one.\n"
 "An argument says how many frames up to go."
 msgstr ""
 
-#: stack.c:2604
+#: stack.c:2558
 msgid ""
 "Same as the `up' command, but does not print anything.\n"
 "This is useful in command scripts."
 msgstr ""
 
-#: stack.c:2608
+#: stack.c:2562
 msgid ""
 "Select and print stack frame called by this one.\n"
 "An argument says how many frames down to go."
 msgstr ""
 
-#: stack.c:2613
+#: stack.c:2567
 msgid ""
 "Same as the `down' command, but does not print anything.\n"
 "This is useful in command scripts."
 msgstr ""
 
-#: stack.c:2617
+#: stack.c:2571
 msgid ""
 "Select and print a stack frame.\n"
 "With no argument, print the selected stack frame.  (See also \"info frame"
@@ -25886,14 +26493,14 @@ msgid ""
 "It can be a stack frame number or the address of the frame.\n"
 msgstr ""
 
-#: stack.c:2625
+#: stack.c:2579
 msgid ""
 "Select a stack frame without printing anything.\n"
 "An argument specifies the frame to select.\n"
 "It can be a stack frame number or the address of the frame.\n"
 msgstr ""
 
-#: stack.c:2631
+#: stack.c:2585
 msgid ""
 "Print backtrace of all stack frames, or innermost COUNT frames.\n"
 "With a negative argument, print outermost -COUNT frames.\n"
@@ -25902,61 +26509,61 @@ msgid ""
 "on this backtrace.\n"
 msgstr ""
 
-#: stack.c:2641
+#: stack.c:2595
 msgid "Backtrace of the stack, or innermost COUNT frames."
 msgstr ""
 
-#: stack.c:2644
+#: stack.c:2598
 msgid "All about selected stack frame, or frame at ADDR."
 msgstr ""
 
-#: stack.c:2647
+#: stack.c:2601
 msgid "Local variables of current stack frame."
 msgstr ""
 
-#: stack.c:2649
+#: stack.c:2603
 msgid "Argument variables of current stack frame."
 msgstr ""
 
-#: stack.c:2652
+#: stack.c:2606
 msgid ""
 "Select the stack frame that contains <func>.\n"
 "Usage: func <name>\n"
 msgstr ""
 
-#: stack.c:2658
+#: stack.c:2612
 msgid "Set printing of non-scalar frame arguments"
 msgstr ""
 
-#: stack.c:2659
+#: stack.c:2613
 msgid "Show printing of non-scalar frame arguments"
 msgstr ""
 
-#: stack.c:2663
+#: stack.c:2617
 msgid "Set whether to print frame arguments in raw form."
 msgstr ""
 
-#: stack.c:2664
+#: stack.c:2618
 msgid "Show whether to print frame arguments in raw form."
 msgstr ""
 
-#: stack.c:2665
+#: stack.c:2619
 msgid ""
 "If set, frame arguments are printed in raw form, bypassing any\n"
 "pretty-printers for that value."
 msgstr ""
 
-#: stack.c:2672
+#: stack.c:2626
 msgid ""
 "Set whether to disassemble next source line or insn when execution stops."
 msgstr ""
 
-#: stack.c:2674
+#: stack.c:2628
 msgid ""
 "Show whether to disassemble next source line or insn when execution stops."
 msgstr ""
 
-#: stack.c:2676
+#: stack.c:2630
 msgid ""
 "If ON, GDB will display disassembly of the next source line, in addition\n"
 "to displaying the source line itself.  If the next source line cannot\n"
@@ -25969,15 +26576,15 @@ msgid ""
 "source line."
 msgstr ""
 
-#: stack.c:2693
+#: stack.c:2647
 msgid "Set printing of function arguments at function entry"
 msgstr ""
 
-#: stack.c:2695
+#: stack.c:2649
 msgid "Show printing of function arguments at function entry"
 msgstr ""
 
-#: stack.c:2697
+#: stack.c:2651
 msgid ""
 "GDB can sometimes determine the values of function arguments at entry,\n"
 "in addition to their current values.  This option tells GDB whether\n"
@@ -25985,141 +26592,141 @@ msgid ""
 "or both.  Note that one or both of these values may be <optimized out>."
 msgstr ""
 
-#: stap-probe.c:172
+#: stap-probe.c:181
+#, possible-c-format
+msgid ""
+"Probe '%s' apparently does not have arguments, but \n"
+"GDB is requesting its argument number %u anyway.  This should not happen.  "
+"Please report this bug."
+msgstr ""
+
+#: stap-probe.c:273
 #, possible-c-format
 msgid "SystemTap Probe expression debugging is %s.\n"
 msgstr ""
 
-#: stap-probe.c:316
+#: stap-probe.c:417
 #, possible-c-format
 msgid "Invalid opcode in expression `%s' for SystemTapprobe"
 msgstr ""
 
-#: stap-probe.c:364
+#: stap-probe.c:465
 #, possible-c-format
 msgid "Undefined bitness for probe '%s'."
 msgstr ""
 
-#: stap-probe.c:639
+#: stap-probe.c:739
 #, possible-c-format
 msgid "Invalid register displacement syntax on expression `%s'."
 msgstr ""
 
-#: stap-probe.c:705
+#: stap-probe.c:805
 #, possible-c-format
 msgid "Missing register name suffix on expression `%s'."
 msgstr ""
 
-#: stap-probe.c:715
+#: stap-probe.c:815
 #, possible-c-format
 msgid "Missing indirection suffix on expression `%s'."
 msgstr ""
 
-#: stap-probe.c:791
+#: stap-probe.c:891
 #, possible-c-format
 msgid "Invalid operator `%c' for register displacement on expression `%s'."
 msgstr ""
 
-#: stap-probe.c:844 stap-probe.c:872
+#: stap-probe.c:944 stap-probe.c:972
 #, possible-c-format
 msgid "Invalid constant suffix on expression `%s'."
 msgstr ""
 
-#: stap-probe.c:850
+#: stap-probe.c:950
 #, possible-c-format
 msgid "Unknown numeric token on expression `%s'."
 msgstr ""
 
-#: stap-probe.c:879
+#: stap-probe.c:979
 #, possible-c-format
 msgid "Operator `%c' not recognized on expression `%s'."
 msgstr ""
 
-#: stap-probe.c:911
+#: stap-probe.c:1011
 #, possible-c-format
 msgid "Missign close-paren on expression `%s'."
 msgstr ""
 
-#: stap-probe.c:919
+#: stap-probe.c:1019
 #, possible-c-format
 msgid "Cannot parse expression `%s'."
 msgstr ""
 
-#: stap-probe.c:962
+#: stap-probe.c:1062
 #, possible-c-format
 msgid "Invalid operator `%c' on expression `%s'."
 msgstr ""
 
 #. We have an error, because we don't expect anything
 #. except 1, 2, 4 and 8.
-#: stap-probe.c:1161
+#: stap-probe.c:1233
 #, possible-c-format
 msgid "unrecognized bitness %s%c' for probe `%s'"
 msgstr ""
 
-#: stap-probe.c:1230
+#: stap-probe.c:1303
 msgid ""
 "The SystemTap SDT probe support is not fully implemented on this target;\n"
 "you will not be able to inspect the arguments of the probes.\n"
 "Please report a bug against GDB requesting a port to this target."
 msgstr ""
 
-#: stap-probe.c:1297
-#, possible-c-format
-msgid ""
-"Probe '%s' apparently does not have arguments, but \n"
-"GDB is requesting its argument number %u anyway.  This should not happen.  "
-"Please report this bug."
-msgstr ""
-
-#: stap-probe.c:1402
+#: stap-probe.c:1421
 msgid "Could not read the value of a SystemTap semaphore."
 msgstr ""
 
-#: stap-probe.c:1419
+#: stap-probe.c:1438
 msgid "Could not write the value of a SystemTap semaphore."
 msgstr ""
 
-#: stap-probe.c:1497
+#: stap-probe.c:1515
 #, possible-c-format
 msgid "corrupt probe name when reading `%s'"
 msgstr ""
 
-#: stap-probe.c:1534
+#: stap-probe.c:1552
 #, possible-c-format
 msgid "corrupt probe argument when reading `%s'"
 msgstr ""
 
-#: stap-probe.c:1575
+#: stap-probe.c:1593
 #, possible-c-format
 msgid "could not obtain base address for SystemTap section on objfile `%s'."
 msgstr ""
 
 #. If we are here, it means we have failed to parse every known
 #. probe.
-#: stap-probe.c:1635
+#: stap-probe.c:1663
 msgid "could not parse SystemTap probe(s) from inferior"
 msgstr ""
 
-#: stap-probe.c:1664
+#: stap-probe.c:1685
 msgid "Semaphore"
 msgstr ""
 
-#: stap-probe.c:1725
+#: stap-probe.c:1705
 msgid "Set SystemTap expression debugging."
 msgstr ""
 
-#: stap-probe.c:1726
+#: stap-probe.c:1706
 msgid "Show SystemTap expression debugging."
 msgstr ""
 
-#: stap-probe.c:1727
+#: stap-probe.c:1707
 msgid ""
 "When non-zero, the internal representation of SystemTap expressions will be "
 "printed."
 msgstr ""
 
-#: stap-probe.c:1734
+#: stap-probe.c:1714
 msgid ""
 "Show information about SystemTap static probes.\n"
 "Usage: info probes stap [PROVIDER [NAME [OBJECT]]]\n"
@@ -26137,111 +26744,128 @@ msgstr ""
 msgid "Standard register ``$ps'' is not available for this target"
 msgstr ""
 
-#: symfile.c:576
+#: symfile.c:563
 #, possible-c-format
 msgid "no loadable sections found in added symbol-file %s"
 msgstr ""
 
-#: symfile.c:690
+#: symfile.c:677
 #, possible-c-format
 msgid "section %s not found in %s"
 msgstr ""
 
-#: symfile.c:1153
+#: symfile.c:1148
 #, possible-c-format
 msgid "Load new symbol table from \"%s\"? "
 msgstr ""
 
-#: symfile.c:1188
+#: symfile.c:1183
 msgid "expanding to full symbols..."
 msgstr ""
 
-#: symfile.c:1320
+#: symfile.c:1315
 #, possible-c-format
 msgid "Discard symbol table from `%s'? "
 msgstr ""
 
-#: symfile.c:1322
+#: symfile.c:1317
 msgid "Discard symbol table? "
 msgstr ""
 
-#: symfile.c:1333
+#: symfile.c:1328
 msgid "No symbol file now.\n"
 msgstr ""
 
-#: symfile.c:1402
+#: symfile.c:1404
 #, possible-c-format
 msgid ""
 "the debug information found in \"%s\" does not match \"%s\" (CRC mismatch).\n"
 msgstr ""
 
-#: symfile.c:1418
+#: symfile.c:1420
 #, possible-c-format
 msgid ""
 "The directory where separate debug symbols are searched for is \"%s\".\n"
 msgstr ""
 
-#: symfile.c:1646 tracefile.c:331
+#: symfile.c:1450
 #, possible-c-format
-msgid "unknown option `%s'"
+msgid ""
+"\n"
+"Looking for separate debug info (debug link) for %s\n"
+msgstr ""
+
+#: symfile.c:1611
+msgid "-readnow and -readnever cannot be used simultaneously"
 msgstr ""
 
-#: symfile.c:1657
+#: symfile.c:1657 symfile.c:1666 symfile.c:2256 symfile.c:2277
+#, possible-c-format
+msgid "Unrecognized argument \"%s\""
+msgstr ""
+
+#: symfile.c:1670
 msgid "no symbol file name was specified"
 msgstr ""
 
-#: symfile.c:1807
+#: symfile.c:1814
 #, possible-c-format
 msgid "I'm sorry, Dave, I can't do that.  Symbol format `%s' unknown."
 msgstr ""
 
-#: symfile.c:1960
+#: symfile.c:1966
 #, possible-c-format
 msgid "Download verify read failed at %s"
 msgstr ""
 
-#: symfile.c:1963
+#: symfile.c:1969
 #, possible-c-format
 msgid "Download verify compare failed at %s"
 msgstr ""
 
-#: symfile.c:1976
+#: symfile.c:1981
 msgid "Canceled the download"
 msgstr ""
 
-#: symfile.c:2068
+#: symfile.c:2071
 msgid "file to load"
 msgstr ""
 
-#: symfile.c:2085
+#: symfile.c:2086
 #, possible-c-format
 msgid "Invalid download offset:%s."
 msgstr ""
 
-#: symfile.c:2088
+#: symfile.c:2089
 msgid "Too many parameters."
 msgstr ""
 
-#: symfile.c:2101
+#: symfile.c:2099
 #, possible-c-format
 msgid "\"%s\" is not an object file: %s"
 msgstr ""
 
-#: symfile.c:2116
+#: symfile.c:2114
 msgid "Load failed"
 msgstr ""
 
-#: symfile.c:2244
+#: symfile.c:2234
 msgid "add-symbol-file takes a file name and an address"
 msgstr ""
 
-#: symfile.c:2303
-msgid ""
-"USAGE: add-symbol-file <filename> <textaddress> [-readnow] [-s <secname> "
-"<addr>]*"
+#: symfile.c:2265
+msgid "Missing section name after \"-s\""
+msgstr ""
+
+#: symfile.c:2267
+msgid "Missing section address after \"-s\""
+msgstr ""
+
+#: symfile.c:2281
+msgid "You must provide a filename to be loaded."
 msgstr ""
 
-#: symfile.c:2313
+#: symfile.c:2290
 #, possible-c-format
 msgid "The address where %s has been loaded is missing"
 msgstr ""
@@ -26251,153 +26875,154 @@ msgstr ""
 #. functions.  We have to split this up into separate print
 #. statements because hex_string returns a local static
 #. string.
-#: symfile.c:2321
+#: symfile.c:2299
 #, possible-c-format
 msgid "add symbol table from file \"%s\" at\n"
 msgstr ""
 
-#: symfile.c:2375
+#: symfile.c:2352
 msgid "remove-symbol-file: no symbol file provided"
 msgstr ""
 
-#: symfile.c:2387
+#: symfile.c:2362
 msgid "Missing address argument"
 msgstr ""
 
-#: symfile.c:2390 symfile.c:2408
+#: symfile.c:2365 symfile.c:2382
 #, possible-c-format
 msgid "Junk after %s"
 msgstr ""
 
-#: symfile.c:2424
+#: symfile.c:2397
 msgid "No symbol file found"
 msgstr ""
 
-#: symfile.c:2427
+#: symfile.c:2400
 #, possible-c-format
 msgid "Remove symbol table from file \"%s\"? "
 msgstr ""
 
 #. FIXME, should use print_sys_errmsg but it's not filtered.
-#: symfile.c:2474
+#: symfile.c:2445
 #, possible-c-format
 msgid "`%s' has disappeared; keeping its symbols.\n"
 msgstr ""
 
-#: symfile.c:2486
+#: symfile.c:2457
 #, possible-c-format
 msgid "`%s' has changed; re-reading symbols.\n"
 msgstr ""
 
-#: symfile.c:2546
+#: symfile.c:2518
 #, possible-c-format
 msgid "Can't open %s to read symbols."
 msgstr ""
 
-#: symfile.c:2554
+#: symfile.c:2526
 #, possible-c-format
 msgid "Can't read symbols from %s: %s."
 msgstr ""
 
-#: symfile.c:2636
+#: symfile.c:2622
 msgid "(no debugging symbols found)\n"
 msgstr ""
 
-#: symfile.c:2710
+#: symfile.c:2691
 #, possible-c-format
 msgid "Mapping between filename extension and source language is \"%s\".\n"
 msgstr ""
 
-#: symfile.c:2725
+#: symfile.c:2705
 #, possible-c-format
 msgid "'%s': Filename extension must begin with '.'"
 msgstr ""
 
-#: symfile.c:2732 symfile.c:2743
+#: symfile.c:2712 symfile.c:2723
 #, possible-c-format
 msgid "'%s': two arguments required -- filename extension and language"
 msgstr ""
 
-#: symfile.c:2784
+#: symfile.c:2758
 msgid "Filename extensions and the languages they represent:"
 msgstr ""
 
-#: symfile.c:3291
+#: symfile.c:3256
 msgid "No sections are mapped.\n"
 msgstr ""
 
-#: symfile.c:3304 symfile.c:3349
+#: symfile.c:3269 symfile.c:3314
 msgid ""
 "Overlay debugging not enabled.  Use either the 'overlay auto' or\n"
 "the 'overlay manual' command."
 msgstr ""
 
-#: symfile.c:3309 symfile.c:3354
+#: symfile.c:3274 symfile.c:3319
 msgid "Argument required: name of an overlay section"
 msgstr ""
 
-#: symfile.c:3328
+#: symfile.c:3293
 #, possible-c-format
 msgid "Note: section %s unmapped by overlap\n"
 msgstr ""
 
-#: symfile.c:3335 symfile.c:3365
+#: symfile.c:3300 symfile.c:3330
 #, possible-c-format
 msgid "No overlay section called %s"
 msgstr ""
 
-#: symfile.c:3361
+#: symfile.c:3326
 #, possible-c-format
 msgid "Section %s is not mapped"
 msgstr ""
 
-#: symfile.c:3378
+#: symfile.c:3343
 msgid "Automatic overlay debugging enabled."
 msgstr ""
 
-#: symfile.c:3391
+#: symfile.c:3356
 msgid "Overlay debugging enabled."
 msgstr ""
 
-#: symfile.c:3404
+#: symfile.c:3369
 msgid "Overlay debugging disabled."
 msgstr ""
 
-#: symfile.c:3415
+#: symfile.c:3380
 msgid "This target does not know how to read its overlay state."
 msgstr ""
 
-#: symfile.c:3518
+#: symfile.c:3483
 msgid ""
 "Error reading inferior's overlay table: couldn't find `_novlys' variable\n"
 "in inferior.  Use `overlay manual' mode."
 msgstr ""
 
-#: symfile.c:3527 symfile.c:3610
+#: symfile.c:3492 symfile.c:3574
 msgid ""
 "Error reading inferior's overlay table: couldn't find `_ovly_table' array\n"
 "in inferior.  Use `overlay manual' mode."
 msgstr ""
 
-#: symfile.c:3881
+#: symfile.c:3912
 msgid ""
 "Load symbol table from executable file FILE.\n"
+"Usage: symbol-file [-readnow | -readnever] FILE\n"
 "The `file' command can also load symbol tables, as well as setting the file\n"
-"to execute."
+"to execute.\n"
 msgstr ""
 
-#: symfile.c:3887
+#: symfile.c:3919
 msgid ""
 "Load symbols from FILE, assuming FILE has been dynamically loaded.\n"
-"Usage: add-symbol-file FILE ADDR [-s <SECT> <SECT_ADDR> -s <SECT> "
-"<SECT_ADDR> ...]\n"
+"Usage: add-symbol-file FILE ADDR [-readnow | -readnever | -s SECT-NAME SECT-"
+"ADDR]...\n"
 "ADDR is the starting address of the file's text.\n"
-"The optional arguments are section-name section-address pairs and\n"
+"Each '-s' argument provides a section name and address, and\n"
 "should be specified if the data and bss segments are not contiguous\n"
-"with the text.  SECT is a section name to be loaded at SECT_ADDR."
+"with the text.  SECT-NAME is a section name to be loaded at SECT-ADDR.\n"
 msgstr ""
 
-#: symfile.c:3898
+#: symfile.c:3932
 msgid ""
 "Remove a symbol file added via the add-symbol-file command.\n"
 "Usage: remove-symbol-file FILENAME\n"
@@ -26406,87 +27031,87 @@ msgid ""
 "that lies within the boundaries of this symbol file in memory."
 msgstr ""
 
-#: symfile.c:3906
+#: symfile.c:3940
 msgid ""
 "Dynamically load FILE into the running program, and record its symbols\n"
 "for access from GDB.\n"
+"Usage: load [FILE] [OFFSET]\n"
 "An optional load OFFSET may also be given as a literal address.\n"
 "When OFFSET is provided, FILE must also be provided.  FILE can be provided\n"
-"on its own.\n"
-"Usage: load [FILE] [OFFSET]"
+"on its own."
 msgstr ""
 
-#: symfile.c:3916
+#: symfile.c:3950
 msgid "Commands for debugging overlays."
 msgstr ""
 
-#: symfile.c:3923
+#: symfile.c:3957
 msgid "Assert that an overlay section is mapped."
 msgstr ""
 
-#: symfile.c:3926
+#: symfile.c:3960
 msgid "Assert that an overlay section is unmapped."
 msgstr ""
 
-#: symfile.c:3929
+#: symfile.c:3963
 msgid "List mappings of overlay sections."
 msgstr ""
 
-#: symfile.c:3932
+#: symfile.c:3966
 msgid "Enable overlay debugging."
 msgstr ""
 
-#: symfile.c:3934
+#: symfile.c:3968
 msgid "Disable overlay debugging."
 msgstr ""
 
-#: symfile.c:3936
+#: symfile.c:3970
 msgid "Enable automatic overlay debugging."
 msgstr ""
 
-#: symfile.c:3938
+#: symfile.c:3972
 msgid "Read the overlay mapping state from the target."
 msgstr ""
 
-#: symfile.c:3942
+#: symfile.c:3976
 msgid "Set mapping between filename extension and source language."
 msgstr ""
 
-#: symfile.c:3943
+#: symfile.c:3977
 msgid "Show mapping between filename extension and source language."
 msgstr ""
 
-#: symfile.c:3944
+#: symfile.c:3978
 msgid "Usage: set extension-language .foo bar"
 msgstr ""
 
-#: symfile.c:3951
+#: symfile.c:3985
 msgid "All filename extensions associated with a source language."
 msgstr ""
 
-#: symfile.c:3954
+#: symfile.c:3988
 msgid "Set the directories where separate debug symbols are searched for."
 msgstr ""
 
-#: symfile.c:3955
+#: symfile.c:3989
 msgid "Show the directories where separate debug symbols are searched for."
 msgstr ""
 
-#: symfile.c:3956
+#: symfile.c:3990
 msgid ""
 "Separate debug symbols are first searched for in the same\n"
 "directory as the binary, then in the `"
 msgstr ""
 
-#: symfile.c:3967
+#: symfile.c:4001
 msgid "Set printing of symbol loading messages."
 msgstr ""
 
-#: symfile.c:3968
+#: symfile.c:4002
 msgid "Show printing of symbol loading messages."
 msgstr ""
 
-#: symfile.c:3969
+#: symfile.c:4003
 msgid ""
 "off   == turn all messages off\n"
 "brief == print messages for the executable,\n"
@@ -26495,20 +27120,34 @@ msgid ""
 "         and messages for each shared library."
 msgstr ""
 
-#: symfile-debug.c:673
+#: symfile.c:4014
+msgid "Set printing of separate debug info file search debug."
+msgstr ""
+
+#: symfile.c:4015
+msgid "Show printing of separate debug info file search debug."
+msgstr ""
+
+#: symfile.c:4016
+msgid ""
+"When on, GDB prints the searched locations while looking for separate debug "
+"info files."
+msgstr ""
+
+#: symfile-debug.c:703
 #, possible-c-format
 msgid "Symfile debugging is %s.\n"
 msgstr ""
 
-#: symfile-debug.c:684
+#: symfile-debug.c:712
 msgid "Set debugging of the symfile functions."
 msgstr ""
 
-#: symfile-debug.c:685
+#: symfile-debug.c:713
 msgid "Show debugging of the symfile functions."
 msgstr ""
 
-#: symfile-debug.c:686
+#: symfile-debug.c:714
 msgid "When enabled, all calls to the symfile functions are logged."
 msgstr ""
 
@@ -26520,181 +27159,181 @@ msgstr ""
 msgid "Failed to read a valid object file image from memory."
 msgstr ""
 
-#: symfile-mem.c:115
+#: symfile-mem.c:114
 #, possible-c-format
 msgid "Got object file from memory but can't read symbols: %s."
 msgstr ""
 
-#: symfile-mem.c:154
+#: symfile-mem.c:153
 msgid "add-symbol-file-from-memory requires an expression argument"
 msgstr ""
 
-#: symfile-mem.c:164
+#: symfile-mem.c:163
 msgid "Must use symbol-file or exec-file before add-symbol-file-from-memory."
 msgstr ""
 
-#: symfile-mem.c:220
+#: symfile-mem.c:193
 msgid "Could not load vsyscall page because no executable was specified"
 msgstr ""
 
-#: symfile-mem.c:249
+#: symfile-mem.c:224
 msgid ""
 "Load the symbols out of memory from a dynamically loaded object file.\n"
 "Give an expression for the address of the file's shared object file header."
 msgstr ""
 
-#: symmisc.c:80
+#: symmisc.c:71
 #, possible-c-format
 msgid "Byte cache statistics for '%s':\n"
 msgstr ""
 
-#: symmisc.c:104
+#: symmisc.c:95
 #, possible-c-format
 msgid "Statistics for '%s':\n"
 msgstr ""
 
-#: symmisc.c:106
+#: symmisc.c:97
 #, possible-c-format
 msgid "  Number of \"stab\" symbols read: %d\n"
 msgstr ""
 
-#: symmisc.c:109
+#: symmisc.c:100
 #, possible-c-format
 msgid "  Number of \"minimal\" symbols read: %d\n"
 msgstr ""
 
-#: symmisc.c:112
+#: symmisc.c:103
 #, possible-c-format
 msgid "  Number of \"partial\" symbols read: %d\n"
 msgstr ""
 
-#: symmisc.c:115
+#: symmisc.c:106
 #, possible-c-format
 msgid "  Number of \"full\" symbols read: %d\n"
 msgstr ""
 
-#: symmisc.c:118
+#: symmisc.c:109
 #, possible-c-format
 msgid "  Number of \"types\" defined: %d\n"
 msgstr ""
 
-#: symmisc.c:131
+#: symmisc.c:122
 #, possible-c-format
 msgid "  Number of symbol tables: %d\n"
 msgstr ""
 
-#: symmisc.c:132
+#: symmisc.c:123
 #, possible-c-format
 msgid "  Number of symbol tables with line tables: %d\n"
 msgstr ""
 
-#: symmisc.c:134
+#: symmisc.c:125
 #, possible-c-format
 msgid "  Number of symbol tables with blockvectors: %d\n"
 msgstr ""
 
-#: symmisc.c:138
+#: symmisc.c:129
 #, possible-c-format
 msgid "  Space used by string tables: %d\n"
 msgstr ""
 
-#: symmisc.c:140
+#: symmisc.c:131
 #, possible-c-format
 msgid "  Total memory used for objfile obstack: %s\n"
 msgstr ""
 
-#: symmisc.c:143
+#: symmisc.c:134
 #, possible-c-format
 msgid "  Total memory used for BFD obstack: %s\n"
 msgstr ""
 
-#: symmisc.c:146
+#: symmisc.c:137
 #, possible-c-format
 msgid "  Total memory used for psymbol cache: %d\n"
 msgstr ""
 
-#: symmisc.c:149
+#: symmisc.c:140
 #, possible-c-format
 msgid "  Total memory used for macro cache: %d\n"
 msgstr ""
 
-#: symmisc.c:151
+#: symmisc.c:142
 #, possible-c-format
 msgid "  Total memory used for file name cache: %d\n"
 msgstr ""
 
-#: symmisc.c:274
+#: symmisc.c:265
 #, possible-c-format
 msgid "internal error:  minimal symbol count %d != %d"
 msgstr ""
 
-#: symmisc.c:481
+#: symmisc.c:469
 #, possible-c-format
 msgid "No symtab for address: %s"
 msgstr ""
 
-#: symmisc.c:521
+#: symmisc.c:509
 #, possible-c-format
 msgid "No symtab for source file: %s"
 msgstr ""
 
-#: symmisc.c:962
+#: symmisc.c:932
 msgid "Extra arguments after regexp."
 msgstr ""
 
-#: symmisc.c:1021
+#: symmisc.c:990
 #, possible-c-format
 msgid "objfile: %s ((struct objfile *) %s)\n"
 msgstr ""
 
-#: symmisc.c:1024
+#: symmisc.c:993
 #, possible-c-format
 msgid "compunit_symtab: ((struct compunit_symtab *) %s)\n"
 msgstr ""
 
-#: symmisc.c:1026
+#: symmisc.c:995
 #, possible-c-format
 msgid "symtab: %s ((struct symtab *) %s)\n"
 msgstr ""
 
-#: symmisc.c:1030
+#: symmisc.c:999
 #, possible-c-format
 msgid "linetable: ((struct linetable *) %s):\n"
 msgstr ""
 
-#: symmisc.c:1034
+#: symmisc.c:1003
 msgid "No line table.\n"
 msgstr ""
 
-#: symmisc.c:1036
+#: symmisc.c:1005
 msgid "Line table has no lines.\n"
 msgstr ""
 
 #. Leave space for 6 digits of index and line number.  After that the
 #. tables will just not format as well.
-#: symmisc.c:1043
+#: symmisc.c:1012
 #, possible-c-format
 msgid "%-6s %6s %s\n"
 msgstr ""
 
-#: symmisc.c:1044
+#: symmisc.c:1013
 msgid "INDEX"
 msgstr ""
 
-#: symmisc.c:1044
+#: symmisc.c:1013
 msgid "LINE"
 msgstr ""
 
-#: symmisc.c:1044
+#: symmisc.c:1013
 msgid "ADDRESS"
 msgstr ""
 
-#: symmisc.c:1051
+#: symmisc.c:1020
 #, possible-c-format
 msgid "%-6d %6d %s\n"
 msgstr ""
 
-#: symmisc.c:1103
+#: symmisc.c:1072
 msgid ""
 "Print dump of current symbol definitions.\n"
 "Usage: mt print symbols [-pc address] [--] [outfile]\n"
@@ -26706,7 +27345,7 @@ msgid ""
 "If OBJFILE is provided, dump only that file's minimal symbols."
 msgstr ""
 
-#: symmisc.c:1114
+#: symmisc.c:1083
 msgid ""
 "Print dump of current minimal symbol definitions.\n"
 "Usage: mt print msymbols [-objfile objfile] [--] [outfile]\n"
@@ -26715,13 +27354,13 @@ msgid ""
 "If OBJFILE is provided, dump only that file's minimal symbols."
 msgstr ""
 
-#: symmisc.c:1123
+#: symmisc.c:1092
 msgid ""
 "Print dump of current object file definitions.\n"
 "With an argument REGEXP, list the object files with matching names."
 msgstr ""
 
-#: symmisc.c:1127
+#: symmisc.c:1096
 msgid ""
 "List the full symbol tables for all object files.\n"
 "This does not include information about individual symbols, blocks, or\n"
@@ -26729,48 +27368,48 @@ msgid ""
 "With an argument REGEXP, list the symbol tables with matching names."
 msgstr ""
 
-#: symmisc.c:1134
+#: symmisc.c:1103
 msgid ""
 "List the contents of all line tables, from all symbol tables.\n"
 "With an argument REGEXP, list just the line tables for the symbol\n"
 "tables with matching names."
 msgstr ""
 
-#: symmisc.c:1141
+#: symmisc.c:1110
 msgid "Check consistency of currently expanded symtabs."
 msgstr ""
 
-#: symmisc.c:1146
+#: symmisc.c:1115
 msgid ""
 "Expand symbol tables.\n"
 "With an argument REGEXP, only expand the symbol tables with matching names."
 msgstr ""
 
-#: symtab.c:1274
+#: symtab.c:1285
 #, possible-c-format
 msgid "Symbol cache size is too large, max is %u."
 msgstr ""
 
-#: symtab.c:1518
+#: symtab.c:1529
 #, possible-c-format
 msgid ""
 "Symbol cache for pspace %d\n"
 "%s:\n"
 msgstr ""
 
-#: symtab.c:1590
+#: symtab.c:1601
 #, possible-c-format
 msgid ""
 "Symbol cache statistics for pspace %d\n"
 "%s:\n"
 msgstr ""
 
-#: symtab.c:1998
+#: symtab.c:2074
 #, possible-c-format
 msgid "Internal error: `%s' is not an aggregate"
 msgstr ""
 
-#: symtab.c:2270
+#: symtab.c:2349
 #, possible-c-format
 msgid ""
 "Internal: %s symbol `%s' found in %s psymtab but not in symtab.\n"
@@ -26778,91 +27417,91 @@ msgid ""
 "\t (if a template, try specifying an instantiation: %s<type>)."
 msgstr ""
 
-#: symtab.c:3884
+#: symtab.c:4019
 msgid "mismatched quoting on brackets, try 'operator\\[\\]'"
 msgstr ""
 
-#: symtab.c:3892
+#: symtab.c:4027
 msgid "nothing is allowed between '[' and ']'"
 msgstr ""
 
-#: symtab.c:3948
+#: symtab.c:4083
 msgid "`operator ()' must be specified without whitespace in `()'"
 msgstr ""
 
-#: symtab.c:3954
+#: symtab.c:4089
 msgid "`operator ?:' must be specified without whitespace in `?:'"
 msgstr ""
 
-#: symtab.c:3960
+#: symtab.c:4095
 msgid "`operator []' must be specified without whitespace in `[]'"
 msgstr ""
 
-#: symtab.c:3965
+#: symtab.c:4100
 #, possible-c-format
 msgid "`operator %s' not supported"
 msgstr ""
 
-#: symtab.c:4646
+#: symtab.c:4580
 #, possible-c-format
 msgid "All %ss matching regular expression \"%s\":\n"
 msgstr ""
 
-#: symtab.c:4649
+#: symtab.c:4583
 #, possible-c-format
 msgid "All defined %ss:\n"
 msgstr ""
 
-#: symtab.c:4659
+#: symtab.c:4593
 msgid ""
 "\n"
 "Non-debugging symbols:\n"
 msgstr ""
 
-#: symtab.c:6056 symtab.c:6059
+#: symtab.c:5846 symtab.c:5849
 msgid "All global and static variable names, or those matching REGEXP."
 msgstr ""
 
-#: symtab.c:6063
+#: symtab.c:5853
 msgid "All function names, or those matching REGEXP."
 msgstr ""
 
-#: symtab.c:6074
+#: symtab.c:5864
 msgid "All type names, or those matching REGEXP."
 msgstr ""
 
-#: symtab.c:6077
+#: symtab.c:5867
 msgid "Source files in the program."
 msgstr ""
 
-#: symtab.c:6080
+#: symtab.c:5870
 msgid "Set a breakpoint for all functions matching REGEXP."
 msgstr ""
 
-#: symtab.c:6084
+#: symtab.c:5874
 msgid ""
 "Set the debugger behavior when more than one symbol are possible matches\n"
 "in an expression."
 msgstr ""
 
-#: symtab.c:6086
+#: symtab.c:5876
 msgid "Show how the debugger handles ambiguities in expressions."
 msgstr ""
 
-#: symtab.c:6087
+#: symtab.c:5877
 msgid ""
 "Valid values are \"ask\", \"all\", \"cancel\", and the default is \"all\"."
 msgstr ""
 
-#: symtab.c:6092
+#: symtab.c:5882
 msgid "Set whether a source file may have multiple base names."
 msgstr ""
 
-#: symtab.c:6093
+#: symtab.c:5883
 msgid "Show whether a source file may have multiple base names."
 msgstr ""
 
-#: symtab.c:6094
+#: symtab.c:5884
 msgid ""
 "(A \"base name\" is the name of a file with the directory part removed.\n"
 "Example: The base name of \"/home/user/hello.c\" is \"hello.c\".)\n"
@@ -26873,69 +27512,69 @@ msgid ""
 "one base name, and gdb will do file name comparisons more efficiently."
 msgstr ""
 
-#: symtab.c:6106
+#: symtab.c:5896
 msgid "Set debugging of symbol table creation."
 msgstr ""
 
-#: symtab.c:6107
+#: symtab.c:5897
 msgid "Show debugging of symbol table creation."
 msgstr ""
 
-#: symtab.c:6107
+#: symtab.c:5897
 msgid ""
 "When enabled (non-zero), debugging messages are printed when building\n"
 "symbol tables.  A value of 1 (one) normally provides enough information.\n"
 "A value greater than 1 provides more verbose information."
 msgstr ""
 
-#: symtab.c:6116
+#: symtab.c:5906
 msgid "Set debugging of symbol lookup."
 msgstr ""
 
-#: symtab.c:6117
+#: symtab.c:5907
 msgid "Show debugging of symbol lookup."
 msgstr ""
 
-#: symtab.c:6118
+#: symtab.c:5908
 msgid "When enabled (non-zero), symbol lookups are logged."
 msgstr ""
 
-#: symtab.c:6125
+#: symtab.c:5915
 msgid "Set the size of the symbol cache."
 msgstr ""
 
-#: symtab.c:6126
+#: symtab.c:5916
 msgid "Show the size of the symbol cache."
 msgstr ""
 
-#: symtab.c:6126
+#: symtab.c:5916
 msgid ""
 "The size of the symbol cache.\n"
 "If zero then the symbol cache is disabled."
 msgstr ""
 
-#: symtab.c:6134
+#: symtab.c:5924
 msgid "Dump the symbol cache for each program space."
 msgstr ""
 
-#: symtab.c:6139
+#: symtab.c:5929
 msgid "Print symbol cache statistics for each program space."
 msgstr ""
 
-#: symtab.c:6144
+#: symtab.c:5934
 msgid "Flush the symbol cache for each program space."
 msgstr ""
 
-#: symtab.h:970
+#: symtab.h:1275
 msgid "Section index is uninitialized"
 msgstr ""
 
-#: target.c:182
+#: target.c:179
 #, possible-c-format
 msgid "Target debugging is %s.\n"
 msgstr ""
 
-#: target.c:381
+#: target.c:378
 msgid ""
 "Connect to a target machine or process.\n"
 "The first argument is the type or protocol of the target machine.\n"
@@ -26944,38 +27583,38 @@ msgid ""
 "`help target ' followed by the protocol name."
 msgstr ""
 
-#: target.c:600
+#: target.c:543
 #, possible-c-format
 msgid "You can't do that when your target is `%s'"
 msgstr ""
 
-#: target.c:613
+#: target.c:556
 msgid "No saved terminal information.\n"
 msgstr ""
 
-#: target.c:753
+#: target.c:696
 msgid "Attempt to unpush the dummy target"
 msgstr ""
 
-#: target.c:852 target.c:934
+#: target.c:795 target.c:877
 msgid "Cannot find thread-local variables on this target"
 msgstr ""
 
-#: target.c:887
+#: target.c:830
 msgid "Cannot find thread-local variables in this thread library."
 msgstr ""
 
-#: target.c:892
+#: target.c:835
 #, possible-c-format
 msgid "Cannot find shared library `%s' in dynamic linker's load module list"
 msgstr ""
 
-#: target.c:895
+#: target.c:838
 #, possible-c-format
 msgid "Cannot find executable file `%s' in dynamic linker's load module list"
 msgstr ""
 
-#: target.c:900
+#: target.c:843
 #, possible-c-format
 msgid ""
 "The inferior has not yet allocated storage for thread-local variables in\n"
@@ -26983,7 +27622,7 @@ msgid ""
 "for %s"
 msgstr ""
 
-#: target.c:906
+#: target.c:849
 #, possible-c-format
 msgid ""
 "The inferior has not yet allocated storage for thread-local variables in\n"
@@ -26991,82 +27630,78 @@ msgid ""
 "for %s"
 msgstr ""
 
-#: target.c:914
+#: target.c:857
 #, possible-c-format
 msgid ""
 "Cannot find thread-local storage for %s, shared library %s:\n"
 "%s"
 msgstr ""
 
-#: target.c:919
+#: target.c:862
 #, possible-c-format
 msgid ""
 "Cannot find thread-local storage for %s, executable file %s:\n"
 "%s"
 msgstr ""
 
-#: target.c:1092
+#: target.c:1035
 msgid "Writing to flash memory forbidden in this context"
 msgstr ""
 
-#: target.c:1346
+#: target.c:1273
 #, possible-c-format
 msgid "Writing to memory is not allowed (addr %s, len %s)"
 msgstr ""
 
-#: target.c:1579
+#: target.c:1503
 msgid "Overlapping regions in memory map: ignoring"
 msgstr ""
 
-#: target.c:1606
+#: target.c:1530
 #, possible-c-format
 msgid "Mode for reading from readonly sections is %s.\n"
 msgstr ""
 
-#: target.c:2062
+#: target.c:1949
 #, possible-c-format
 msgid "target object %d, annex %s, contained unexpected null characters"
 msgstr ""
 
-#: target.c:2105
+#: target.c:1992
 msgid "May not insert breakpoints"
 msgstr ""
 
-#: target.c:2126
+#: target.c:2013
 msgid "May not remove breakpoints"
 msgstr ""
 
-#: target.c:2141
+#: target.c:2028
 #, possible-c-format
 msgid "Symbols from \"%s\".\n"
 msgstr ""
 
-#: target.c:2152
+#: target.c:2039
 msgid "\tWhile running this, GDB does not access memory from...\n"
 msgstr ""
 
-#: target.c:2245
+#: target.c:2132
 msgid "Program not killed."
 msgstr ""
 
-#: target.c:2379
+#: target.c:2269
 msgid "could not find a target to follow fork"
 msgstr ""
 
-#: target.c:2404
+#: target.c:2294
 msgid "could not find a target to follow mourn inferior"
 msgstr ""
 
-#: target.c:2454
-msgid "Unable to allocate memory to perform the search."
-msgstr ""
-
-#: target.c:2462 target.c:2519
+#: target.c:2348 target.c:2403
 #, possible-c-format
 msgid "Unable to access %s bytes of target memory at %s, halting search."
 msgstr ""
 
-#: target.c:2594
+#: target.c:2476
 #, possible-c-format
 msgid ""
 "The \"%s\" target does not support \"run\".  Try \"help target\" or "
@@ -27076,232 +27711,232 @@ msgstr ""
 #. This function is only called if the target is running.  In that
 #. case there should have been a process_stratum target and it
 #. should either know how to create inferiors, or not...
-#: target.c:2602
+#: target.c:2484
 msgid "No targets found"
 msgstr ""
 
-#: target.c:2614
+#: target.c:2496
 #, possible-c-format
 msgid "Whether GDB may automatically connect to the native target is %s.\n"
 msgstr ""
 
-#: target.c:2653
+#: target.c:2535
 #, possible-c-format
 msgid "Don't know how to %s.  Try \"help target\"."
 msgstr ""
 
-#: target.c:2795
+#: target.c:2679
 #, possible-c-format
 msgid "Can't determine the current address space of thread %s\n"
 msgstr ""
 
-#: target.c:3219
+#: target.c:3103
 #, possible-c-format
 msgid "target file %s contained unexpected null characters"
 msgstr ""
 
-#: target.c:3367 target.c:3376
+#: target.c:3253 target.c:3262
 msgid "Command not implemented for this target."
 msgstr ""
 
-#: target.c:3434 target.c:3446
+#: target.c:3320 target.c:3332
 msgid "May not interrupt or stop the target, ignoring attempt"
 msgstr ""
 
-#: target.c:3562
+#: target.c:3448
 #, possible-c-format
 msgid "Writing to registers is not allowed (regno %d)"
 msgstr ""
 
-#: target.c:3908
+#: target.c:3795
 msgid "\"monitor\" command not supported by this target."
 msgstr ""
 
-#: target.c:3947
+#: target.c:3827
 msgid "Erasing flash memory region at address "
 msgstr ""
 
-#: target.c:3961
+#: target.c:3839
 msgid "No flash memory regions found.\n"
 msgstr ""
 
-#: target.c:3971
+#: target.c:3849
 msgid "The current target stack is:\n"
 msgstr ""
 
-#: target.c:4023
+#: target.c:3901
 #, possible-c-format
 msgid "Controlling the inferior in asynchronous mode is %s.\n"
 msgstr ""
 
-#: target.c:4079
+#: target.c:3957
 #, possible-c-format
 msgid "Whether the target is always in non-stop mode is %s (currently %s).\n"
 msgstr ""
 
-#: target.c:4084
+#: target.c:3962
 #, possible-c-format
 msgid "Whether the target is always in non-stop mode is %s.\n"
 msgstr ""
 
-#: target.c:4153
+#: target.c:4078
 msgid "Set target debugging."
 msgstr ""
 
-#: target.c:4154
+#: target.c:4079
 msgid "Show target debugging."
 msgstr ""
 
-#: target.c:4155
+#: target.c:4080
 msgid ""
 "When non-zero, target debugging is enabled.  Higher numbers are more\n"
 "verbose."
 msgstr ""
 
-#: target.c:4163
+#: target.c:4088
 msgid "Set mode for reading from readonly sections."
 msgstr ""
 
-#: target.c:4164
+#: target.c:4089
 msgid "Show mode for reading from readonly sections."
 msgstr ""
 
-#: target.c:4165
+#: target.c:4090
 msgid ""
 "When this mode is on, memory reads from readonly sections (such as .text)\n"
 "will be read from the object file instead of from the target.  This will\n"
 "result in significant performance improvement for remote targets."
 msgstr ""
 
-#: target.c:4174
+#: target.c:4099
 msgid "Send a command to the remote monitor (remote targets only)."
 msgstr ""
 
-#: target.c:4177
+#: target.c:4102
 msgid "Print the name of each layer of the internal target stack."
 msgstr ""
 
-#: target.c:4181
+#: target.c:4106
 msgid "Set whether gdb controls the inferior in asynchronous mode."
 msgstr ""
 
-#: target.c:4182
+#: target.c:4107
 msgid "Show whether gdb controls the inferior in asynchronous mode."
 msgstr ""
 
-#: target.c:4183
+#: target.c:4108
 msgid "Tells gdb whether to control the inferior in asynchronous mode."
 msgstr ""
 
-#: target.c:4191
+#: target.c:4116
 msgid "Set whether gdb always controls the inferior in non-stop mode."
 msgstr ""
 
-#: target.c:4192
+#: target.c:4117
 msgid "Show whether gdb always controls the inferior in non-stop mode."
 msgstr ""
 
-#: target.c:4193
+#: target.c:4118
 msgid "Tells gdb whether to control the inferior in non-stop mode."
 msgstr ""
 
-#: target.c:4201
+#: target.c:4126
 msgid "Set permission to write into registers."
 msgstr ""
 
-#: target.c:4202
+#: target.c:4127
 msgid "Show permission to write into registers."
 msgstr ""
 
-#: target.c:4203
+#: target.c:4128
 msgid ""
 "When this permission is on, GDB may write into the target's registers.\n"
 "Otherwise, any sort of write attempt will result in an error."
 msgstr ""
 
-#: target.c:4210
+#: target.c:4135
 msgid "Set permission to write into target memory."
 msgstr ""
 
-#: target.c:4211
+#: target.c:4136
 msgid "Show permission to write into target memory."
 msgstr ""
 
-#: target.c:4212
+#: target.c:4137
 msgid ""
 "When this permission is on, GDB may write into the target's memory.\n"
 "Otherwise, any sort of write attempt will result in an error."
 msgstr ""
 
-#: target.c:4219
+#: target.c:4144
 msgid "Set permission to insert breakpoints in the target."
 msgstr ""
 
-#: target.c:4220
+#: target.c:4145
 msgid "Show permission to insert breakpoints in the target."
 msgstr ""
 
-#: target.c:4221
+#: target.c:4146
 msgid ""
 "When this permission is on, GDB may insert breakpoints in the program.\n"
 "Otherwise, any sort of insertion attempt will result in an error."
 msgstr ""
 
-#: target.c:4228
+#: target.c:4153
 msgid "Set permission to insert tracepoints in the target."
 msgstr ""
 
-#: target.c:4229
+#: target.c:4154
 msgid "Show permission to insert tracepoints in the target."
 msgstr ""
 
-#: target.c:4230
+#: target.c:4155
 msgid ""
 "When this permission is on, GDB may insert tracepoints in the program.\n"
 "Otherwise, any sort of insertion attempt will result in an error."
 msgstr ""
 
-#: target.c:4237
+#: target.c:4162
 msgid "Set permission to insert fast tracepoints in the target."
 msgstr ""
 
-#: target.c:4238
+#: target.c:4163
 msgid "Show permission to insert fast tracepoints in the target."
 msgstr ""
 
-#: target.c:4239
+#: target.c:4164
 msgid ""
 "When this permission is on, GDB may insert fast tracepoints.\n"
 "Otherwise, any sort of insertion attempt will result in an error."
 msgstr ""
 
-#: target.c:4246
+#: target.c:4171
 msgid "Set permission to interrupt or signal the target."
 msgstr ""
 
-#: target.c:4247
+#: target.c:4172
 msgid "Show permission to interrupt or signal the target."
 msgstr ""
 
-#: target.c:4248
+#: target.c:4173
 msgid ""
 "When this permission is on, GDB may interrupt/stop the target's execution.\n"
 "Otherwise, any attempt to interrupt or stop will be ignored."
 msgstr ""
 
-#: target.c:4255
+#: target.c:4180
 msgid "Erase all flash memory regions."
 msgstr ""
 
-#: target.c:4258
+#: target.c:4183
 msgid "Set whether GDB may automatically connect to the native target."
 msgstr ""
 
-#: target.c:4259
+#: target.c:4184
 msgid "Show whether GDB may automatically connect to the native target."
 msgstr ""
 
-#: target.c:4260
+#: target.c:4185
 msgid ""
 "When on, and GDB is not connected to a target yet, GDB\n"
 "attempts \"run\" and other commands with the native target."
@@ -27317,15 +27952,15 @@ msgstr ""
 msgid "Cache use for code accesses is %s.\n"
 msgstr ""
 
-#: target-dcache.c:178
+#: target-dcache.c:175
 msgid "Set cache use for stack access."
 msgstr ""
 
-#: target-dcache.c:179
+#: target-dcache.c:176
 msgid "Show cache use for stack access."
 msgstr ""
 
-#: target-dcache.c:180
+#: target-dcache.c:177
 msgid ""
 "When on, use the target memory cache for all stack access, regardless of "
 "any\n"
@@ -27333,15 +27968,15 @@ msgid ""
 "By default, caching for stack access is on."
 msgstr ""
 
-#: target-dcache.c:189
+#: target-dcache.c:186
 msgid "Set cache use for code segment access."
 msgstr ""
 
-#: target-dcache.c:190
+#: target-dcache.c:187
 msgid "Show cache use for code segment access."
 msgstr ""
 
-#: target-dcache.c:191
+#: target-dcache.c:188
 msgid ""
 "When on, use the target memory cache for all code segment accesses,\n"
 "regardless of any configured memory regions.  This improves remote\n"
@@ -27349,220 +27984,269 @@ msgid ""
 "access is on."
 msgstr ""
 
-#: target-descriptions.c:359
+#: target-descriptions.c:817
 msgid "Architecture rejected target-supplied description"
 msgstr ""
 
-#: target-descriptions.c:368
+#: target-descriptions.c:826
 msgid "Target-supplied registers are not supported by the current architecture"
 msgstr ""
 
-#: target-descriptions.c:395
+#: target-descriptions.c:853
 msgid "Could not remove target-supplied description"
 msgstr ""
 
-#: target-descriptions.c:1035 target-descriptions.c:1057
+#: target-descriptions.c:1232 target-descriptions.c:1254
 #, possible-c-format
 msgid "Register \"%s\" has an unsupported size (%d bits)"
 msgstr ""
 
-#: target-descriptions.c:1611
+#: target-descriptions.c:1645
 #, possible-c-format
 msgid "Attempted to add duplicate compatible architecture \"%s\""
 msgstr ""
 
-#: target-descriptions.c:1631
+#: target-descriptions.c:1660
 #, possible-c-format
 msgid "Attempted to add duplicate property \"%s\""
 msgstr ""
 
-#: target-descriptions.c:1694
+#: target-descriptions.c:1738
 #, possible-c-format
 msgid "The target description will be read from \"%s\".\n"
 msgstr ""
 
-#: target-descriptions.c:1697
+#: target-descriptions.c:1741
 msgid "The target description will be read from the target.\n"
 msgstr ""
 
-#: target-descriptions.c:1731
+#: target-descriptions.c:1852 target-descriptions.c:1973
+#, possible-c-format
+msgid "C output is not supported type \"%s\"."
+msgstr ""
+
+#: target-descriptions.c:2115
+#, possible-c-format
+msgid "\"regnum\" attribute %ld is not the largest number (%d)."
+msgstr ""
+
+#: target-descriptions.c:2164
 msgid "There is no target description to print."
 msgstr ""
 
-#: target-descriptions.c:1734
+#: target-descriptions.c:2167
 msgid "The current target description did not come from an XML file."
 msgstr ""
 
-#: target-descriptions.c:1960
+#: target-descriptions.c:2221
+msgid "Missing dir name"
+msgstr ""
+
+#: target-descriptions.c:2236
 #, possible-c-format
-msgid "C output is not supported type \"%s\"."
+msgid "Tested %lu XML files, %d failed\n"
 msgstr ""
 
-#: target-descriptions.c:1993
+#: target-descriptions.c:2245
 msgid "Set target description specific variables."
 msgstr ""
 
 #. allow-unknown
-#: target-descriptions.c:1997
+#: target-descriptions.c:2249
 msgid "Show target description specific variables."
 msgstr ""
 
 #. allow-unknown
-#: target-descriptions.c:2001
+#: target-descriptions.c:2253
 msgid "Unset target description specific variables."
 msgstr ""
 
-#: target-descriptions.c:2008
+#: target-descriptions.c:2260
 msgid "Set the file to read for an XML target description"
 msgstr ""
 
-#: target-descriptions.c:2009
+#: target-descriptions.c:2261
 msgid "Show the file to read for an XML target description"
 msgstr ""
 
-#: target-descriptions.c:2010
+#: target-descriptions.c:2262
 msgid ""
 "When set, GDB will read the target description from a local\n"
 "file instead of querying the remote target."
 msgstr ""
 
-#: target-descriptions.c:2017
+#: target-descriptions.c:2269
 msgid ""
 "Unset the file to read for an XML target description.  When unset,\n"
 "GDB will read the description from the target."
 msgstr ""
 
-#: target-descriptions.c:2022
+#: target-descriptions.c:2274
 msgid "Print the current target description as a C source file."
 msgstr ""
 
-#: target-memory.c:430
+#: target-descriptions.c:2281
+msgid ""
+"Check the target descriptions created in GDB equal the descriptions\n"
+"created from XML files in the directory.\n"
+"The parameter is the directory name."
+msgstr ""
+
+#: target-float.c:1105
+#, possible-c-format
+msgid "Cannot perform exponentiation: %s"
+msgstr ""
+
+#: target-float.c:1118 target-float.c:1680
+msgid "Integer-only operation on floating point number."
+msgstr ""
+
+#: target-float.c:1791
+#, possible-c-format
+msgid "Cannot perform operation: %s"
+msgstr ""
+
+#: target-float.c:1820 target-float.c:1848 target-float.c:1944
+#: target-float.c:1975
+msgid "Unknown decimal floating point type."
+msgstr ""
+
+#. libdecnumber can convert only 32-bit integers.
+#: target-float.c:1996 target-float.c:2013
+msgid ""
+"Conversion of large integer to a decimal floating type is not supported."
+msgstr ""
+
+#: target-float.c:2067
+msgid "Operation not valid for decimal floating point number."
+msgstr ""
+
+#: target-float.c:2101
+msgid "Comparison with an invalid number (NaN)."
+msgstr ""
+
+#: target-memory.c:434
 msgid "Error writing data to flash"
 msgstr ""
 
-#: thread.c:334
+#: thread.c:326
 #, possible-c-format
 msgid "[New %s]\n"
 msgstr ""
 
-#: thread.c:1152
+#: thread.c:1105
 msgid "No thread selected."
 msgstr ""
 
-#: thread.c:1156
+#: thread.c:1109
 msgid "The current thread has terminated"
 msgstr ""
 
-#: thread.c:1224
+#: thread.c:1177
 msgid "Requested thread not found in requested process"
 msgstr ""
 
-#: thread.c:1277
+#: thread.c:1230
 msgid "No threads.\n"
 msgstr ""
 
-#: thread.c:1279
+#: thread.c:1232
 #, possible-c-format
 msgid "No threads match '%s'.\n"
 msgstr ""
 
-#: thread.c:1562
+#: thread.c:1502
 #, possible-c-format
 msgid ""
 "Couldn't restore frame #%d in current thread.  Bottom (innermost) frame "
 "selected:"
 msgstr ""
 
-#: thread.c:1758 thread.c:1840
+#: thread.c:1659 thread.c:1730
 msgid "Please specify a command following the thread ID list"
 msgstr ""
 
-#: thread.c:1801 thread.c:1900
+#: thread.c:1697 thread.c:1785
 #, possible-c-format
 msgid ""
 "\n"
 "Thread %s (%s):\n"
 msgstr ""
 
-#: thread.c:1825
+#: thread.c:1715
 msgid "Please specify a thread ID list"
 msgstr ""
 
-#: thread.c:1868
+#: thread.c:1753
 #, possible-c-format
 msgid "Unknown inferior %d"
 msgstr ""
 
-#: thread.c:1886
+#: thread.c:1771
 #, possible-c-format
 msgid "Unknown thread %d.%d"
 msgstr ""
 
-#: thread.c:1888
+#: thread.c:1773
 #, possible-c-format
 msgid "Unknown thread %d"
 msgstr ""
 
-#: thread.c:1894
+#: thread.c:1779
 #, possible-c-format
 msgid "Thread %s has terminated."
 msgstr ""
 
-#: thread.c:1920 thread.c:1973
+#: thread.c:1800 thread.c:1848
 msgid "No thread selected"
 msgstr ""
 
-#: thread.c:1927
+#: thread.c:1807
 #, possible-c-format
 msgid "[Current thread is %s (%s) (exited)]\n"
 msgstr ""
 
-#: thread.c:1931
+#: thread.c:1811
 #, possible-c-format
 msgid "[Current thread is %s (%s)]\n"
 msgstr ""
 
-#: thread.c:2003
+#: thread.c:1878
 #, possible-c-format
 msgid "Thread %s has name '%s'\n"
 msgstr ""
 
-#: thread.c:2011
+#: thread.c:1886
 #, possible-c-format
 msgid "Thread %s has target name '%s'\n"
 msgstr ""
 
-#: thread.c:2019
+#: thread.c:1894
 #, possible-c-format
 msgid "Thread %s has target id '%s'\n"
 msgstr ""
 
-#: thread.c:2027
+#: thread.c:1902
 #, possible-c-format
 msgid "Thread %s has extra info '%s'\n"
 msgstr ""
 
-#: thread.c:2033
+#: thread.c:1908
 #, possible-c-format
 msgid "No threads match '%s'\n"
 msgstr ""
 
-#: thread.c:2043
+#: thread.c:1918
 #, possible-c-format
 msgid "Printing of thread events is %s.\n"
 msgstr ""
 
-#: thread.c:2059
-#, possible-c-format
-msgid "Thread ID %d not known."
-msgstr ""
-
-#: thread.c:2068
+#: thread.c:1928
 #, possible-c-format
 msgid "Thread ID %s has terminated."
 msgstr ""
 
-#: thread.c:2227
+#: thread.c:2075
 msgid ""
 "Display currently known threads.\n"
 "Usage: info threads [-gid] [ID]...\n"
@@ -27571,17 +28255,17 @@ msgid ""
 "Otherwise, all threads are displayed."
 msgstr ""
 
-#: thread.c:2233
+#: thread.c:2081
 msgid ""
 "Use this command to switch between threads.\n"
 "The new thread ID must be currently known."
 msgstr ""
 
-#: thread.c:2239
+#: thread.c:2087
 msgid "Apply a command to a list of threads."
 msgstr ""
 
-#: thread.c:2243
+#: thread.c:2091
 msgid ""
 "Apply a command to all threads.\n"
 "\n"
@@ -27590,39 +28274,39 @@ msgid ""
 "            The default is descending order."
 msgstr ""
 
-#: thread.c:2253
+#: thread.c:2101
 msgid ""
 "Set the current thread's name.\n"
 "Usage: thread name [NAME]\n"
 "If NAME is not given, then any existing name is removed."
 msgstr ""
 
-#: thread.c:2257
+#: thread.c:2105
 msgid ""
 "Find threads that match a regular expression.\n"
 "Usage: thread find REGEXP\n"
 "Will display thread ids whose name, target ID, or extra info matches REGEXP."
 msgstr ""
 
-#: thread.c:2266
+#: thread.c:2114
 msgid "Set printing of thread events (such as thread start and exit)."
 msgstr ""
 
-#: thread.c:2267
+#: thread.c:2115
 msgid "Show printing of thread events (such as thread start and exit)."
 msgstr ""
 
-#: tic6x-tdep.c:886
+#: tic6x-tdep.c:870
 #, possible-c-format
 msgid "unexpected length %d of type"
 msgstr ""
 
-#: tic6x-tdep.c:1110
+#: tic6x-tdep.c:1094
 #, possible-c-format
 msgid "unexpected type %d of arg %d"
 msgstr ""
 
-#: tic6x-tdep.c:1115
+#: tic6x-tdep.c:1099
 #, possible-c-format
 msgid "unexpected length %d of arg %d"
 msgstr ""
@@ -27661,234 +28345,234 @@ msgstr ""
 msgid "Whether to confirm potentially dangerous operations is %s.\n"
 msgstr ""
 
-#: top.c:355
+#: top.c:319
 msgid "opening terminal failed"
 msgstr ""
 
-#: top.c:384
+#: top.c:341
 msgid "usage: new-ui <interpreter> <tty>"
 msgstr ""
 
-#: top.c:670
+#: top.c:626
 msgid "That is not a command, just a help topic."
 msgstr ""
 
-#: top.c:855
+#: top.c:813
 #, possible-c-format
 msgid "Saving of the history record on exit is %s.\n"
 msgstr ""
 
-#: top.c:867
+#: top.c:825
 #, possible-c-format
 msgid "The size of the command history is %s.\n"
 msgstr ""
 
-#: top.c:880
+#: top.c:838
 #, possible-c-format
 msgid "The number of history entries to look back at for duplicates is %s.\n"
 msgstr ""
 
-#: top.c:890
+#: top.c:848
 #, possible-c-format
 msgid "The filename in which to record the command history is \"%s\".\n"
 msgstr ""
 
-#: top.c:1168 top.c:1197
+#: top.c:1123 top.c:1153
 #, possible-c-format
 msgid "Could not rename %s to %s: %s"
 msgstr ""
 
-#: top.c:1372
+#: top.c:1326
 msgid ""
 "\n"
 "For bug reporting instructions, please see:\n"
 msgstr ""
 
-#: top.c:1376
+#: top.c:1330
 msgid ""
 "Find the GDB manual and other documentation resources online at:\n"
 "<http://www.gnu.org/software/gdb/documentation/>.\n"
 msgstr ""
 
-#: top.c:1378
+#: top.c:1332
 msgid "For help, type \"help\".\n"
 msgstr ""
 
-#: top.c:1379
+#: top.c:1333
 msgid "Type \"apropos word\" to search for commands related to \"word\"."
 msgstr ""
 
-#: top.c:1387
+#: top.c:1341
 #, possible-c-format
 msgid ""
 "This GDB was configured as follows:\n"
 "   configure --host=%s --target=%s\n"
 msgstr ""
 
-#: top.c:1391
+#: top.c:1345
 #, possible-c-format
 msgid ""
 "             --with-auto-load-dir=%s\n"
 "             --with-auto-load-safe-path=%s\n"
 msgstr ""
 
-#: top.c:1396
+#: top.c:1350
 msgid "             --with-expat\n"
 msgstr ""
 
-#: top.c:1400
+#: top.c:1354
 msgid "             --without-expat\n"
 msgstr ""
 
-#: top.c:1405
+#: top.c:1359
 #, possible-c-format
 msgid "             --with-gdb-datadir=%s%s\n"
 msgstr ""
 
-#: top.c:1409
+#: top.c:1363
 #, possible-c-format
 msgid "             --with-iconv-bin=%s%s\n"
 msgstr ""
 
-#: top.c:1414
+#: top.c:1368
 #, possible-c-format
 msgid "             --with-jit-reader-dir=%s%s\n"
 msgstr ""
 
-#: top.c:1418
+#: top.c:1372
 msgid "             --with-libunwind-ia64\n"
 msgstr ""
 
-#: top.c:1422
+#: top.c:1376
 msgid "             --without-libunwind-ia64\n"
 msgstr ""
 
-#: top.c:1427
+#: top.c:1381
 msgid "             --with-lzma\n"
 msgstr ""
 
-#: top.c:1431
+#: top.c:1385
 msgid "             --without-lzma\n"
 msgstr ""
 
-#: top.c:1436
+#: top.c:1390
 #, possible-c-format
 msgid "             --with-python=%s%s\n"
 msgstr ""
 
-#: top.c:1441
+#: top.c:1395
 msgid "             --with-guile\n"
 msgstr ""
 
-#: top.c:1445
+#: top.c:1399
 msgid "             --without-guile\n"
 msgstr ""
 
-#: top.c:1450
+#: top.c:1404
 #, possible-c-format
 msgid "             --with-relocated-sources=%s\n"
 msgstr ""
 
-#: top.c:1455
+#: top.c:1409
 #, possible-c-format
 msgid "             --with-separate-debug-dir=%s%s\n"
 msgstr ""
 
-#: top.c:1459
+#: top.c:1413
 #, possible-c-format
 msgid "             --with-sysroot=%s%s\n"
 msgstr ""
 
-#: top.c:1463
+#: top.c:1417
 #, possible-c-format
 msgid "             --with-system-gdbinit=%s%s\n"
 msgstr ""
 
-#: top.c:1467
+#: top.c:1421
 msgid "             --with-babeltrace\n"
 msgstr ""
 
-#: top.c:1471
+#: top.c:1425
 msgid "             --without-babeltrace\n"
 msgstr ""
 
 #. We assume "relocatable" will be printed at least once, thus we always
 #. print this text.  It's a reasonably safe assumption for now.
-#: top.c:1477
+#: top.c:1431
 msgid ""
 "\n"
 "(\"Relocatable\" means the directory can be moved with the GDB installation\n"
 "tree, and GDB will still find it.)\n"
 msgstr ""
 
-#: top.c:1558
+#: top.c:1512
 #, possible-c-format
 msgid "\tInferior %d [%s] will be detached.\n"
 msgstr ""
 
-#: top.c:1562
+#: top.c:1516
 #, possible-c-format
 msgid "\tInferior %d [%s] will be killed.\n"
 msgstr ""
 
-#: top.c:1581
+#: top.c:1535
 msgid ""
 "A debugging session is active.\n"
 "\n"
 msgstr ""
 
-#: top.c:1583
+#: top.c:1537
 msgid ""
 "\n"
 "Quit anyway? "
 msgstr ""
 
-#: top.c:1828
+#: top.c:1780
 msgid "\"set history\" must be followed by the name of a history subcommand.\n"
 msgstr ""
 
-#: top.c:1937
+#: top.c:1889
 #, possible-c-format
 msgid "Gdb's prompt is \"%s\".\n"
 msgstr ""
 
-#: top.c:1955
+#: top.c:1907
 #, possible-c-format
 msgid "Editing of command lines as they are typed is %s.\n"
 msgstr ""
 
-#: top.c:1957
+#: top.c:1909
 msgid "on"
 msgstr ""
 
-#: top.c:1957
+#: top.c:1909
 msgid "off"
 msgstr ""
 
-#: top.c:1964
+#: top.c:1916
 #, possible-c-format
 msgid "Annotation_level is %s.\n"
 msgstr ""
 
-#: top.c:1971
+#: top.c:1923
 #, possible-c-format
 msgid "Notification of completion for asynchronous execution commands is %s.\n"
 msgstr ""
 
-#: top.c:1994
+#: top.c:1946
 #, possible-c-format
 msgid "GDB's data directory is \"%s\".\n"
 msgstr ""
 
-#: top.c:2038
+#: top.c:1991
 msgid "Set gdb's prompt"
 msgstr ""
 
-#: top.c:2039
+#: top.c:1992
 msgid "Show gdb's prompt"
 msgstr ""
 
-#: top.c:2044
+#: top.c:1997
 msgid ""
 "Don't repeat this command.\n"
 "Primarily used inside of user-defined commands that should not be repeated "
@@ -27896,44 +28580,44 @@ msgid ""
 "hitting return."
 msgstr ""
 
-#: top.c:2050
+#: top.c:2003
 msgid "Set editing of command lines as they are typed."
 msgstr ""
 
-#: top.c:2051
+#: top.c:2004
 msgid "Show editing of command lines as they are typed."
 msgstr ""
 
-#: top.c:2052
+#: top.c:2005
 msgid ""
 "Use \"on\" to enable the editing, and \"off\" to disable it.\n"
 "Without an argument, command line editing is enabled.  To edit, use\n"
 "EMACS-like or VI-like commands like control-P or ESC."
 msgstr ""
 
-#: top.c:2060
+#: top.c:2013
 msgid "Set saving of the history record on exit."
 msgstr ""
 
-#: top.c:2061
+#: top.c:2014
 msgid "Show saving of the history record on exit."
 msgstr ""
 
-#: top.c:2062
+#: top.c:2015
 msgid ""
 "Use \"on\" to enable the saving, and \"off\" to disable it.\n"
 "Without an argument, saving is enabled."
 msgstr ""
 
-#: top.c:2070
+#: top.c:2023
 msgid "Set the size of the command history,"
 msgstr ""
 
-#: top.c:2071
+#: top.c:2024
 msgid "Show the size of the command history,"
 msgstr ""
 
-#: top.c:2072
+#: top.c:2025
 msgid ""
 "ie. the number of previous commands to keep a record of.\n"
 "If set to \"unlimited\", the number of commands kept in the history\n"
@@ -27941,15 +28625,15 @@ msgid ""
 "variable \"GDBHISTSIZE\", or to 256 if this variable is not set."
 msgstr ""
 
-#: top.c:2082
+#: top.c:2035
 msgid "Set how far back in history to look for and remove duplicate entries."
 msgstr ""
 
-#: top.c:2083
+#: top.c:2036
 msgid "Show how far back in history to look for and remove duplicate entries."
 msgstr ""
 
-#: top.c:2084
+#: top.c:2037
 msgid ""
 "If set to a nonzero value N, GDB will look back at the last N history "
 "entries\n"
@@ -27961,73 +28645,73 @@ msgid ""
 "By default this option is set to 0."
 msgstr ""
 
-#: top.c:2096
+#: top.c:2049
 msgid "Set the filename in which to record the command history"
 msgstr ""
 
-#: top.c:2097
+#: top.c:2050
 msgid "Show the filename in which to record the command history"
 msgstr ""
 
-#: top.c:2098
+#: top.c:2051
 msgid "(the list of previous commands of which a record is kept)."
 msgstr ""
 
-#: top.c:2104
+#: top.c:2057
 msgid "Set whether to confirm potentially dangerous operations."
 msgstr ""
 
-#: top.c:2105
+#: top.c:2058
 msgid "Show whether to confirm potentially dangerous operations."
 msgstr ""
 
-#: top.c:2111
+#: top.c:2064
 msgid "Set annotation_level."
 msgstr ""
 
-#: top.c:2112
+#: top.c:2065
 msgid "Show annotation_level."
 msgstr ""
 
-#: top.c:2113
+#: top.c:2066
 msgid ""
 "0 == normal;     1 == fullname (for use when running under emacs)\n"
 "2 == output annotated suitably for use by programs that control GDB."
 msgstr ""
 
-#: top.c:2121
+#: top.c:2074
 msgid "Set notification of completion for asynchronous execution commands."
 msgstr ""
 
-#: top.c:2122
+#: top.c:2075
 msgid "Show notification of completion for asynchronous execution commands."
 msgstr ""
 
-#: top.c:2123
+#: top.c:2076
 msgid "Use \"on\" to enable the notification, and \"off\" to disable it."
 msgstr ""
 
-#: top.c:2130
+#: top.c:2083
 msgid "Set GDB's data directory."
 msgstr ""
 
-#: top.c:2131
+#: top.c:2084
 msgid "Show GDB's data directory."
 msgstr ""
 
-#: top.c:2132
+#: top.c:2085
 msgid "When set, GDB uses the specified path to search for data files."
 msgstr ""
 
-#: top.c:2139
+#: top.c:2092
 msgid "Set whether GDB's standard input is a terminal."
 msgstr ""
 
-#: top.c:2140
+#: top.c:2093
 msgid "Show whether GDB's standard input is a terminal."
 msgstr ""
 
-#: top.c:2141
+#: top.c:2094
 msgid ""
 "If on, GDB assumes that standard input is a terminal.  In practice, it\n"
 "means that GDB should wait for the user to answer queries associated to\n"
@@ -28037,7 +28721,7 @@ msgid ""
 "input settings."
 msgstr ""
 
-#: top.c:2152
+#: top.c:2105
 msgid ""
 "Create a new UI.  It takes two arguments:\n"
 "The first argument is the name of the interpreter to run.\n"
@@ -28054,7 +28738,7 @@ msgstr ""
 msgid "Failure to get requested trace buffer data"
 msgstr ""
 
-#: tracefile.c:289 tracefile-tfile.c:828
+#: tracefile.c:289 tracefile-tfile.c:819
 #, possible-c-format
 msgid "Unknown block type '%c' (0x%x) in trace frame"
 msgstr ""
@@ -28063,6 +28747,11 @@ msgstr ""
 msgid "file in which to save trace data"
 msgstr ""
 
+#: tracefile.c:331
+#, possible-c-format
+msgid "unknown option `%s'"
+msgstr ""
+
 #: tracefile.c:349
 #, possible-c-format
 msgid "Trace data saved to %s '%s'.\n"
@@ -28078,7 +28767,7 @@ msgstr ""
 msgid "Tracepoint %d does while-stepping, cannot infer $pc"
 msgstr ""
 
-#: tracefile.c:503
+#: tracefile.c:501
 msgid ""
 "Save the trace data to a file.\n"
 "Use the '-ctf' option to save the data to CTF format.\n"
@@ -28090,532 +28779,532 @@ msgstr ""
 msgid "Premature end of file while reading trace file"
 msgstr ""
 
-#: tracefile-tfile.c:440
+#: tracefile-tfile.c:437
 msgid "No trace file specified."
 msgstr ""
 
-#: tracefile-tfile.c:476
+#: tracefile-tfile.c:467
 msgid "File is not a valid trace file."
 msgstr ""
 
-#: tracefile-tfile.c:514
+#: tracefile-tfile.c:505
 msgid "Excessively long lines in trace file"
 msgstr ""
 
-#: tracefile-tfile.c:526
+#: tracefile-tfile.c:517
 msgid "No register block size recorded in trace file"
 msgstr ""
 
-#: tracefile-tfile.c:541
+#: tracefile-tfile.c:532
 msgid "No traceframes present in this file."
 msgstr ""
 
-#: tracefile-tfile.c:589
+#: tracefile-tfile.c:580
 #, possible-c-format
 msgid "Ignoring trace file definition \"%s\""
 msgstr ""
 
-#: tracefile-tfile.c:906
+#: tracefile-tfile.c:897
 msgid "tfile_xfer_partial: tdesc is read-only"
 msgstr ""
 
-#: tracefile-tfile.c:937
+#: tracefile-tfile.c:928
 msgid "tfile_xfer_partial: trace file is read-only"
 msgstr ""
 
-#: tracefile-tfile.c:1094
+#: tracefile-tfile.c:1081
 #, possible-c-format
 msgid "Unhandled trace block type (%d) '%c ' while building trace frame info."
 msgstr ""
 
-#: tracepoint.c:356
+#: tracepoint.c:326
 #, possible-c-format
 msgid "No trace variable named \"$%s\", not deleting"
 msgstr ""
 
-#: tracepoint.c:368
+#: tracepoint.c:338
 msgid "Must supply a non-empty variable name"
 msgstr ""
 
-#: tracepoint.c:375 tracepoint.c:380
+#: tracepoint.c:345 tracepoint.c:350
 #, possible-c-format
 msgid "$%s is not a valid trace state variable name"
 msgstr ""
 
-#: tracepoint.c:395
+#: tracepoint.c:364
 msgid "Syntax is $NAME [ = EXPR ]"
 msgstr ""
 
-#: tracepoint.c:411
+#: tracepoint.c:379
 msgid "Syntax must be $NAME [ = EXPR ]"
 msgstr ""
 
-#: tracepoint.c:427
+#: tracepoint.c:395
 #, possible-c-format
 msgid "Trace state variable $%s now has initial value %s.\n"
 msgstr ""
 
-#: tracepoint.c:440
+#: tracepoint.c:407
 #, possible-c-format
 msgid "Trace state variable $%s created, with initial value %s.\n"
 msgstr ""
 
-#: tracepoint.c:456
+#: tracepoint.c:417
 msgid "Delete all trace state variables? "
 msgstr ""
 
-#: tracepoint.c:471
+#: tracepoint.c:431
 #, possible-c-format
 msgid "Name \"%s\" not prefixed with '$', ignoring"
 msgstr ""
 
-#: tracepoint.c:490
+#: tracepoint.c:447
 msgid "No trace state variables.\n"
 msgstr ""
 
-#: tracepoint.c:582
+#: tracepoint.c:531
 msgid "This command cannot be used at the top level."
 msgstr ""
 
-#: tracepoint.c:588 tracepoint.c:594 tracepoint.c:600
+#: tracepoint.c:537 tracepoint.c:543 tracepoint.c:549
 msgid "This command can only be used in a tracepoint actions list."
 msgstr ""
 
-#: tracepoint.c:635
+#: tracepoint.c:584
 msgid "Target does not support \"/s\" option for string tracing."
 msgstr ""
 
-#: tracepoint.c:638
+#: tracepoint.c:587
 #, possible-c-format
 msgid "Undefined collection format \"%c\"."
 msgstr ""
 
-#: tracepoint.c:674
+#: tracepoint.c:623
 msgid "expression is malformed"
 msgstr ""
 
-#: tracepoint.c:680
+#: tracepoint.c:629
 msgid "expression has min height < 0"
 msgstr ""
 
-#: tracepoint.c:689 tracepoint.c:778 tracepoint.c:810
+#: tracepoint.c:638 tracepoint.c:726 tracepoint.c:758
 msgid "Expression is too complicated."
 msgstr ""
 
-#: tracepoint.c:718
+#: tracepoint.c:666
 #, possible-c-format
 msgid "`%s' is not a tracepoint action, or is ambiguous."
 msgstr ""
 
-#: tracepoint.c:756
+#: tracepoint.c:704
 #, possible-c-format
 msgid "constant `%s' (value %s) will not be collected."
 msgstr ""
 
-#: tracepoint.c:764
+#: tracepoint.c:712
 #, possible-c-format
 msgid "`%s' is optimized away and cannot be collected."
 msgstr ""
 
-#: tracepoint.c:826
+#: tracepoint.c:774
 #, possible-c-format
 msgid "while-stepping step count `%s' is malformed."
 msgstr ""
 
-#: tracepoint.c:834
+#: tracepoint.c:782
 #, possible-c-format
 msgid "`%s' is not a supported tracepoint action."
 msgstr ""
 
-#: tracepoint.c:897
+#: tracepoint.c:845
 #, possible-c-format
 msgid "Internal: register number %d too large for tracepoint"
 msgstr ""
 
-#: tracepoint.c:1132
+#: tracepoint.c:1078
 msgid "Can't collect locals; no symbol table info available.\n"
 msgstr ""
 
-#: tracepoint.c:1139
+#: tracepoint.c:1085
 msgid "No locals found in scope."
 msgstr ""
 
-#: tracepoint.c:1147
+#: tracepoint.c:1093
 msgid "Can't collect args; no symbol table info available."
 msgstr ""
 
-#: tracepoint.c:1153
+#: tracepoint.c:1099
 msgid "No args found in scope."
 msgstr ""
 
-#: tracepoint.c:1337 tracepoint.c:2772
+#: tracepoint.c:1267 tracepoint.c:2689
 #, possible-c-format
 msgid "Bad action list item: %s"
 msgstr ""
 
-#: tracepoint.c:1542
+#: tracepoint.c:1469
 #, possible-c-format
 msgid "Invalid tracepoint command '%s'"
 msgstr ""
 
-#: tracepoint.c:1631
+#: tracepoint.c:1556
 msgid "Pending tracepoints will not be resolved while GDB is disconnected\n"
 msgstr ""
 
-#: tracepoint.c:1662
+#: tracepoint.c:1587
 msgid "No tracepoints defined, not starting trace"
 msgstr ""
 
-#: tracepoint.c:1675
+#: tracepoint.c:1600
 #, possible-c-format
 msgid "May not insert %stracepoints, skipping tracepoint %d"
 msgstr ""
 
-#: tracepoint.c:1682
+#: tracepoint.c:1607
 msgid "No tracepoints enabled"
 msgstr ""
 
-#: tracepoint.c:1688
+#: tracepoint.c:1613
 msgid "No tracepoints enabled, not starting trace"
 msgstr ""
 
-#: tracepoint.c:1695
+#: tracepoint.c:1620
 msgid "No tracepoints that may be downloaded, not starting trace"
 msgstr ""
 
-#: tracepoint.c:1761
+#: tracepoint.c:1684
 msgid "Target does not support trace user/notes, info ignored"
 msgstr ""
 
-#: tracepoint.c:1785
+#: tracepoint.c:1708
 msgid "A trace is running already.  Start a new run? "
 msgstr ""
 
-#: tracepoint.c:1786
+#: tracepoint.c:1709
 msgid "New trace run not started."
 msgstr ""
 
-#: tracepoint.c:1801
+#: tracepoint.c:1724
 msgid "Trace is not running."
 msgstr ""
 
-#: tracepoint.c:1847 tracepoint.c:3020
+#: tracepoint.c:1768 tracepoint.c:2935
 msgid "Target does not support trace notes, note ignored"
 msgstr ""
 
-#: tracepoint.c:1867
+#: tracepoint.c:1788
 msgid "Using a trace file.\n"
 msgstr ""
 
-#: tracepoint.c:1870
+#: tracepoint.c:1791
 msgid "Trace can not be run on this target.\n"
 msgstr ""
 
-#: tracepoint.c:1877
+#: tracepoint.c:1798
 msgid "Run/stop status is unknown.\n"
 msgstr ""
 
-#: tracepoint.c:1881
+#: tracepoint.c:1802
 msgid "Trace is running on the target.\n"
 msgstr ""
 
-#: tracepoint.c:1888
+#: tracepoint.c:1809
 msgid "No trace has been run on the target.\n"
 msgstr ""
 
-#: tracepoint.c:1892
+#: tracepoint.c:1813
 #, possible-c-format
 msgid "Trace stopped by a tstop command (%s).\n"
 msgstr ""
 
-#: tracepoint.c:1895
+#: tracepoint.c:1816
 msgid "Trace stopped by a tstop command.\n"
 msgstr ""
 
-#: tracepoint.c:1898
+#: tracepoint.c:1819
 msgid "Trace stopped because the buffer was full.\n"
 msgstr ""
 
-#: tracepoint.c:1901
+#: tracepoint.c:1822
 msgid "Trace stopped because of disconnection.\n"
 msgstr ""
 
-#: tracepoint.c:1904
+#: tracepoint.c:1825
 #, possible-c-format
 msgid "Trace stopped by tracepoint %d.\n"
 msgstr ""
 
-#: tracepoint.c:1909
+#: tracepoint.c:1830
 #, possible-c-format
 msgid "Trace stopped by an error (%s, tracepoint %d).\n"
 msgstr ""
 
-#: tracepoint.c:1913
+#: tracepoint.c:1834
 #, possible-c-format
 msgid "Trace stopped by an error (%s).\n"
 msgstr ""
 
-#: tracepoint.c:1917
+#: tracepoint.c:1838
 msgid "Trace stopped for an unknown reason.\n"
 msgstr ""
 
-#: tracepoint.c:1920
+#: tracepoint.c:1841
 #, possible-c-format
 msgid "Trace stopped for some other reason (%d).\n"
 msgstr ""
 
-#: tracepoint.c:1929
+#: tracepoint.c:1850
 #, possible-c-format
 msgid "Buffer contains %d trace frames (of %d created total).\n"
 msgstr ""
 
-#: tracepoint.c:1935
+#: tracepoint.c:1856
 #, possible-c-format
 msgid "Collected %d trace frames.\n"
 msgstr ""
 
-#: tracepoint.c:1943
+#: tracepoint.c:1864
 #, possible-c-format
 msgid "Trace buffer has %d bytes of %d bytes free"
 msgstr ""
 
-#: tracepoint.c:1946
+#: tracepoint.c:1867
 #, possible-c-format
 msgid " (%d%% full)"
 msgstr ""
 
-#: tracepoint.c:1950
+#: tracepoint.c:1871
 msgid ".\n"
 msgstr ""
 
-#: tracepoint.c:1953
+#: tracepoint.c:1874
 #, possible-c-format
 msgid "Trace buffer has %d bytes free.\n"
 msgstr ""
 
-#: tracepoint.c:1958
+#: tracepoint.c:1879
 msgid "Trace will continue if GDB disconnects.\n"
 msgstr ""
 
-#: tracepoint.c:1960
+#: tracepoint.c:1881
 msgid "Trace will stop if GDB disconnects.\n"
 msgstr ""
 
-#: tracepoint.c:1963
+#: tracepoint.c:1884
 msgid "Trace buffer is circular.\n"
 msgstr ""
 
-#: tracepoint.c:1966
+#: tracepoint.c:1887
 #, possible-c-format
 msgid "Trace user is %s.\n"
 msgstr ""
 
-#: tracepoint.c:1969
+#: tracepoint.c:1890
 #, possible-c-format
 msgid "Trace notes: %s.\n"
 msgstr ""
 
-#: tracepoint.c:1973
+#: tracepoint.c:1894
 #, possible-c-format
 msgid "Looking at trace frame %d, tracepoint %d.\n"
 msgstr ""
 
-#: tracepoint.c:1976
+#: tracepoint.c:1897
 msgid "Not looking at any trace frame.\n"
 msgstr ""
 
 #. Reporting a run time is more readable than two long numbers.
-#: tracepoint.c:1986
+#: tracepoint.c:1907
 #, possible-c-format
 msgid "Trace started at %ld.%06ld secs, stopped %ld.%06ld secs later.\n"
 msgstr ""
 
-#: tracepoint.c:1993
+#: tracepoint.c:1914
 #, possible-c-format
 msgid "Trace started at %ld.%06ld secs.\n"
 msgstr ""
 
-#: tracepoint.c:1998
+#: tracepoint.c:1919
 #, possible-c-format
 msgid "Trace stopped at %ld.%06ld secs.\n"
 msgstr ""
 
-#: tracepoint.c:2155
+#: tracepoint.c:2076
 msgid "Trace is running and will continue after detach; detach anyway? "
 msgstr ""
 
-#: tracepoint.c:2161
+#: tracepoint.c:2082
 msgid "Trace is running but will stop on detach; detach anyway? "
 msgstr ""
 
-#: tracepoint.c:2236
+#: tracepoint.c:2157
 msgid "Target failed to find requested trace frame."
 msgstr ""
 
-#: tracepoint.c:2278
+#: tracepoint.c:2199
 #, possible-c-format
 msgid "Found trace frame %d, tracepoint %d\n"
 msgstr ""
 
-#: tracepoint.c:2287
+#: tracepoint.c:2208
 msgid "No longer looking at any trace frame\n"
 msgstr ""
 
 #. This case may never occur, check.
-#: tracepoint.c:2289
+#: tracepoint.c:2210
 msgid "No trace frame found\n"
 msgstr ""
 
-#: tracepoint.c:2323 tracepoint.c:2553
+#: tracepoint.c:2244 tracepoint.c:2468
 msgid "May not look at trace frames while trace is running."
 msgstr ""
 
-#: tracepoint.c:2358
+#: tracepoint.c:2279
 msgid "not debugging trace buffer"
 msgstr ""
 
-#: tracepoint.c:2360
+#: tracepoint.c:2281
 msgid "already at start of trace buffer"
 msgstr ""
 
-#: tracepoint.c:2371
+#: tracepoint.c:2292
 #, possible-c-format
 msgid "invalid input (%d is less than zero)"
 msgstr ""
 
-#: tracepoint.c:2424
+#: tracepoint.c:2345
 msgid "No current tracepoint -- please supply an argument."
 msgstr ""
 
-#: tracepoint.c:2474
+#: tracepoint.c:2388
 msgid "No line number information available."
 msgstr ""
 
-#: tracepoint.c:2495
+#: tracepoint.c:2410
 msgid "Cannot find a good line."
 msgstr ""
 
 #. Is there any case in which we get here, and have an address
 #. which the user would want to see?  If we have debugging
 #. symbols and no line numbers?
-#: tracepoint.c:2502
+#: tracepoint.c:2417
 #, possible-c-format
 msgid "Line number %d is out of range for \"%s\"."
 msgstr ""
 
-#: tracepoint.c:2593
+#: tracepoint.c:2509
 msgid "requires an argument (function, line or *addr) to define a scope"
 msgstr ""
 
-#: tracepoint.c:2861
+#: tracepoint.c:2778
 msgid "No current trace frame."
 msgstr ""
 
-#: tracepoint.c:2866
+#: tracepoint.c:2783
 #, possible-c-format
 msgid "No known tracepoint matches 'current' tracepoint #%d."
 msgstr ""
 
-#: tracepoint.c:2965
+#: tracepoint.c:2880
 msgid "Buffer too small for source encoding"
 msgstr ""
 
-#: tracepoint.c:2970
+#: tracepoint.c:2885
 msgid "Source string too long for buffer"
 msgstr ""
 
-#: tracepoint.c:3008
+#: tracepoint.c:2923
 msgid "Target does not support trace notes, user ignored"
 msgstr ""
 
-#: tracepoint.c:3032
+#: tracepoint.c:2947
 msgid "Target does not support trace notes, stop note ignored"
 msgstr ""
 
-#: tracepoint.c:3089
+#: tracepoint.c:3004
 msgid "could not change traceframe"
 msgstr ""
 
-#: tracepoint.c:3283
+#: tracepoint.c:3198
 #, possible-c-format
 msgid "Assuming tracepoint %d is same as target's tracepoint %d at %s.\n"
 msgstr ""
 
-#: tracepoint.c:3308
+#: tracepoint.c:3223
 #, possible-c-format
 msgid "Created tracepoint %d for target's tracepoint %d at %s.\n"
 msgstr ""
 
-#: tracepoint.c:3313
+#: tracepoint.c:3228
 #, possible-c-format
 msgid ""
 "Failed to create tracepoint for target's tracepoint %d at %s, skipping it.\n"
 msgstr ""
 
-#: tracepoint.c:3410
+#: tracepoint.c:3317
 #, possible-c-format
 msgid "Assuming trace state variable $%s is same as target's variable %d.\n"
 msgstr ""
 
-#: tracepoint.c:3418
+#: tracepoint.c:3325
 #, possible-c-format
 msgid "Created trace state variable $%s for target's variable %d.\n"
 msgstr ""
 
-#: tracepoint.c:3472
+#: tracepoint.c:3379
 #, possible-c-format
 msgid ""
 "Malformed trace status, at %s\n"
 "Status line: '%s'\n"
 msgstr ""
 
-#: tracepoint.c:3681
+#: tracepoint.c:3589
 #, possible-c-format
 msgid "Unrecognized char '%c' in tracepoint definition, skipping rest"
 msgstr ""
 
 #. Don't error out, the target might be sending us optional
 #. info that we don't care about.
-#: tracepoint.c:3735
+#: tracepoint.c:3643
 #, possible-c-format
 msgid "Unrecognized tracepoint piece '%c', ignoring"
 msgstr ""
 
-#: tracepoint.c:3805
+#: tracepoint.c:3714
 #, possible-c-format
 msgid "bad marker definition: %s"
 msgstr ""
 
-#: tracepoint.c:3916
+#: tracepoint.c:3821
 msgid "Data: \""
 msgstr ""
 
-#: tracepoint.c:3930
+#: tracepoint.c:3834
 msgid "Probed by static tracepoints: "
 msgstr ""
 
-#: tracepoint.c:4046
+#: tracepoint.c:3946
 msgid ""
 "Can not parse XML trace frame info; XML support was disabled at compile time"
 msgstr ""
 
-#: tracepoint.c:4143
+#: tracepoint.c:4027
 msgid "trace frame info"
 msgstr ""
 
-#: tracepoint.c:4241
+#: tracepoint.c:4115
 msgid "List the variables local to a scope"
 msgstr ""
 
-#: tracepoint.c:4244
+#: tracepoint.c:4118
 msgid "Tracing of program execution without stopping the program."
 msgstr ""
 
-#: tracepoint.c:4248
+#: tracepoint.c:4122
 msgid "Print everything collected at the current tracepoint."
 msgstr ""
 
-#: tracepoint.c:4250
+#: tracepoint.c:4124
 msgid ""
 "Define a trace state variable.\n"
 "Argument is a $-prefixed name, optionally followed\n"
@@ -28623,7 +29312,7 @@ msgid ""
 "at the start of tracing."
 msgstr ""
 
-#: tracepoint.c:4257
+#: tracepoint.c:4131
 msgid ""
 "Delete one or more trace state variables.\n"
 "Arguments are the names of the variables to delete.\n"
@@ -28631,33 +29320,33 @@ msgid ""
 msgstr ""
 
 #. FIXME add a trace variable completer.
-#: tracepoint.c:4263
+#: tracepoint.c:4137
 msgid "Status of trace state variables and their values.\n"
 msgstr ""
 
-#: tracepoint.c:4268
+#: tracepoint.c:4142
 msgid "List target static tracepoints markers.\n"
 msgstr ""
 
-#: tracepoint.c:4272
+#: tracepoint.c:4146
 msgid ""
 "Select a trace frame;\n"
 "No argument means forward by one frame; '-' means backward by one frame."
 msgstr ""
 
-#: tracepoint.c:4277
+#: tracepoint.c:4151
 msgid ""
 "Select a trace frame whose PC is outside the given range (exclusive).\n"
 "Usage: tfind outside addr1, addr2"
 msgstr ""
 
-#: tracepoint.c:4282
+#: tracepoint.c:4156
 msgid ""
 "Select a trace frame whose PC is in the given range (inclusive).\n"
 "Usage: tfind range addr1,addr2"
 msgstr ""
 
-#: tracepoint.c:4287
+#: tracepoint.c:4161
 msgid ""
 "Select a trace frame by source line.\n"
 "Argument can be a line number (with optional source file),\n"
@@ -28665,31 +29354,31 @@ msgid ""
 "Default argument is 'the next source line that was traced'."
 msgstr ""
 
-#: tracepoint.c:4294
+#: tracepoint.c:4168
 msgid ""
 "Select a trace frame by tracepoint number.\n"
 "Default is the tracepoint for the current trace frame."
 msgstr ""
 
-#: tracepoint.c:4299
+#: tracepoint.c:4173
 msgid ""
 "Select a trace frame by PC.\n"
 "Default is the current PC, or the PC of the current trace frame."
 msgstr ""
 
-#: tracepoint.c:4304
+#: tracepoint.c:4178
 msgid "De-select any trace frame and resume 'live' debugging."
 msgstr ""
 
-#: tracepoint.c:4311
+#: tracepoint.c:4185
 msgid "Select the first trace frame in the trace buffer."
 msgstr ""
 
-#: tracepoint.c:4315
+#: tracepoint.c:4189
 msgid "Display the status of the current trace data collection."
 msgstr ""
 
-#: tracepoint.c:4317
+#: tracepoint.c:4191
 msgid ""
 "Stop trace data collection.\n"
 "Usage: tstop [ <notes> ... ]\n"
@@ -28697,7 +29386,7 @@ msgid ""
 "reported by tstatus (if the target supports trace notes)."
 msgstr ""
 
-#: tracepoint.c:4323
+#: tracepoint.c:4197
 msgid ""
 "Start trace data collection.\n"
 "Usage: tstart [ <notes> ... ]\n"
@@ -28705,7 +29394,7 @@ msgid ""
 "reported by tstatus (if the target supports trace notes)."
 msgstr ""
 
-#: tracepoint.c:4329
+#: tracepoint.c:4203
 msgid ""
 "Ends a list of commands or actions.\n"
 "Several GDB commands allow you to enter a list of commands or actions.\n"
@@ -28715,7 +29404,7 @@ msgid ""
 "Note: the \"end\" command cannot be used at the gdb prompt."
 msgstr ""
 
-#: tracepoint.c:4336
+#: tracepoint.c:4210
 msgid ""
 "Specify single-stepping behavior at a tracepoint.\n"
 "Argument is number of instructions to trace in single-step mode\n"
@@ -28726,7 +29415,7 @@ msgid ""
 "Note: this command can only be used in a tracepoint \"actions\" list."
 msgstr ""
 
-#: tracepoint.c:4347
+#: tracepoint.c:4221
 msgid ""
 "Specify one or more data items to be collected at a tracepoint.\n"
 "Accepts a comma-separated list of (one or more) expressions.  GDB will\n"
@@ -28739,7 +29428,7 @@ msgid ""
 "Note: this command can only be used in a tracepoint \"actions\" list."
 msgstr ""
 
-#: tracepoint.c:4358
+#: tracepoint.c:4232
 msgid ""
 "Specify one or more expressions to be evaluated at a tracepoint.\n"
 "Accepts a comma-separated list of (one or more) expressions.\n"
@@ -28747,7 +29436,7 @@ msgid ""
 "Note: this command can only be used in a tracepoint \"actions\" list."
 msgstr ""
 
-#: tracepoint.c:4364
+#: tracepoint.c:4238
 msgid ""
 "Specify the actions to be taken at a tracepoint.\n"
 "Tracepoint actions may include collecting of specified data,\n"
@@ -28755,112 +29444,112 @@ msgid ""
 "depending on target's capabilities."
 msgstr ""
 
-#: tracepoint.c:4372
+#: tracepoint.c:4246
 msgid "Set the list of expressions to collect by default"
 msgstr ""
 
-#: tracepoint.c:4373
+#: tracepoint.c:4247
 msgid "Show the list of expressions to collect by default"
 msgstr ""
 
-#: tracepoint.c:4379
+#: tracepoint.c:4253
 msgid "Set whether tracing continues after GDB disconnects."
 msgstr ""
 
-#: tracepoint.c:4380
+#: tracepoint.c:4254
 msgid "Show whether tracing continues after GDB disconnects."
 msgstr ""
 
-#: tracepoint.c:4381
+#: tracepoint.c:4255
 msgid ""
 "Use this to continue a tracing run even if GDB disconnects\n"
 "or detaches from the target.  You can reconnect later and look at\n"
 "trace data collected in the meantime."
 msgstr ""
 
-#: tracepoint.c:4391
+#: tracepoint.c:4265
 msgid "Set target's use of circular trace buffer."
 msgstr ""
 
-#: tracepoint.c:4392
+#: tracepoint.c:4266
 msgid "Show target's use of circular trace buffer."
 msgstr ""
 
-#: tracepoint.c:4393
+#: tracepoint.c:4267
 msgid ""
 "Use this to make the trace buffer into a circular buffer,\n"
 "which will discard traceframes (oldest first) instead of filling\n"
 "up and stopping the trace run."
 msgstr ""
 
-#: tracepoint.c:4403
+#: tracepoint.c:4277
 msgid "Set requested size of trace buffer."
 msgstr ""
 
-#: tracepoint.c:4404
+#: tracepoint.c:4278
 msgid "Show requested size of trace buffer."
 msgstr ""
 
-#: tracepoint.c:4405
+#: tracepoint.c:4279
 msgid ""
 "Use this to choose a size for the trace buffer.  Some targets\n"
 "may have fixed or limited buffer sizes.  Specifying \"unlimited\" or -1\n"
 "disables any attempt to set the buffer size and lets the target choose."
 msgstr ""
 
-#: tracepoint.c:4413
+#: tracepoint.c:4287
 msgid "Set the user name to use for current and future trace runs"
 msgstr ""
 
-#: tracepoint.c:4414
+#: tracepoint.c:4288
 msgid "Show the user name to use for current and future trace runs"
 msgstr ""
 
-#: tracepoint.c:4420
+#: tracepoint.c:4294
 msgid "Set notes string to use for current and future trace runs"
 msgstr ""
 
-#: tracepoint.c:4421
+#: tracepoint.c:4295
 msgid "Show the notes string to use for current and future trace runs"
 msgstr ""
 
-#: tracepoint.c:4427
+#: tracepoint.c:4301
 msgid "Set notes string to use for future tstop commands"
 msgstr ""
 
-#: tracepoint.c:4428
+#: tracepoint.c:4302
 msgid "Show the notes string to use for future tstop commands"
 msgstr ""
 
-#: tui/tui.c:418
+#: tui/tui.c:420
 #, possible-c-format
 msgid "Cannot enable the TUI when the interpreter is '%s'"
 msgstr ""
 
-#: tui/tui.c:423
+#: tui/tui.c:425
 msgid "Cannot enable the TUI when output is not a terminal"
 msgstr ""
 
-#: tui/tui.c:434
+#: tui/tui.c:436
 #, possible-c-format
 msgid "Cannot enable the TUI: error opening terminal [TERM=%s]"
 msgstr ""
 
-#: tui/tui.c:447
+#: tui/tui.c:449
 #, possible-c-format
 msgid ""
 "Cannot enable the TUI: terminal doesn't support cursor addressing [TERM=%s]"
 msgstr ""
 
-#: tui/tui.c:683
+#: tui/tui.c:682
 msgid "Enable TUI display mode."
 msgstr ""
 
-#: tui/tui.c:686
+#: tui/tui.c:685
 msgid "Disable TUI display mode."
 msgstr ""
 
-#: tui/tui-stack.c:498
+#: tui/tui-stack.c:494
 msgid ""
 "Update the source window and locator to display the current execution "
 "point.\n"
@@ -28874,7 +29563,7 @@ msgstr ""
 msgid "Cannot redirect readline output"
 msgstr ""
 
-#: tui/tui-layout.c:377
+#: tui/tui-layout.c:375
 msgid ""
 "Change the layout of windows.\n"
 "Usage: layout prev | next | <layout_name> \n"
@@ -28890,11 +29579,11 @@ msgid ""
 "           the window that has current logical focus.\n"
 msgstr ""
 
-#: tui/tui-layout.c:422
+#: tui/tui-layout.c:418
 msgid "Ambiguous command input."
 msgstr ""
 
-#: tui/tui-layout.c:504
+#: tui/tui-layout.c:499
 #, possible-c-format
 msgid ""
 "Invalid layout specified.\n"
@@ -28921,7 +29610,7 @@ msgid ""
 "or one of 'next' or 'prev'.  Known register groups are:\n"
 msgstr ""
 
-#: tui/tui-regs.c:701
+#: tui/tui-regs.c:697
 msgid "TUI command to control the register window."
 msgstr ""
 
@@ -28948,21 +29637,21 @@ msgstr ""
 msgid "Text User Interface commands."
 msgstr ""
 
-#: tui/tui-win.c:452 tui/tui-win.c:456
+#: tui/tui-win.c:447 tui/tui-win.c:451
 msgid "TUI configuration variables"
 msgstr ""
 
-#: tui/tui-win.c:461
+#: tui/tui-win.c:456
 msgid "Refresh the terminal display.\n"
 msgstr ""
 
-#: tui/tui-win.c:462
+#: tui/tui-win.c:457
 msgid ""
 "Set the width (in characters) of tab stops.\n"
 "Usage: tabset <n>\n"
 msgstr ""
 
-#: tui/tui-win.c:465
+#: tui/tui-win.c:460
 msgid ""
 "Set or modify the height of a specified window.\n"
 "Usage: winheight <win_name> [+ | -] <#lines>\n"
@@ -28973,11 +29662,11 @@ msgid ""
 "regs : the register display\n"
 msgstr ""
 
-#: tui/tui-win.c:476
+#: tui/tui-win.c:471
 msgid "List of all displayed windows.\n"
 msgstr ""
 
-#: tui/tui-win.c:477
+#: tui/tui-win.c:472
 msgid ""
 "Set focus to named window or next/prev window.\n"
 "Usage: focus {<win> | next | prev}\n"
@@ -28988,39 +29677,39 @@ msgid ""
 "cmd  : the command window\n"
 msgstr ""
 
-#: tui/tui-win.c:487
+#: tui/tui-win.c:482
 msgid ""
 "Scroll window forward.\n"
 "Usage: + [win] [n]\n"
 msgstr ""
 
-#: tui/tui-win.c:490
+#: tui/tui-win.c:485
 msgid ""
 "Scroll window backward.\n"
 "Usage: - [win] [n]\n"
 msgstr ""
 
-#: tui/tui-win.c:493
+#: tui/tui-win.c:488
 msgid ""
 "Scroll window text to the left.\n"
 "Usage: < [win] [n]\n"
 msgstr ""
 
-#: tui/tui-win.c:496
+#: tui/tui-win.c:491
 msgid ""
 "Scroll window text to the right.\n"
 "Usage: > [win] [n]\n"
 msgstr ""
 
-#: tui/tui-win.c:502
+#: tui/tui-win.c:497
 msgid "Set the kind of border for TUI windows."
 msgstr ""
 
-#: tui/tui-win.c:503
+#: tui/tui-win.c:498
 msgid "Show the kind of border for TUI windows."
 msgstr ""
 
-#: tui/tui-win.c:504
+#: tui/tui-win.c:499
 msgid ""
 "This variable controls the border of TUI windows:\n"
 "space           use a white space\n"
@@ -29028,15 +29717,15 @@ msgid ""
 "acs             use the Alternate Character Set"
 msgstr ""
 
-#: tui/tui-win.c:514
+#: tui/tui-win.c:509
 msgid "Set the attribute mode to use for the TUI window borders."
 msgstr ""
 
-#: tui/tui-win.c:515
+#: tui/tui-win.c:510
 msgid "Show the attribute mode to use for the TUI window borders."
 msgstr ""
 
-#: tui/tui-win.c:516
+#: tui/tui-win.c:511
 msgid ""
 "This variable controls the attributes to use for the window borders:\n"
 "normal          normal display\n"
@@ -29048,15 +29737,15 @@ msgid ""
 "bold-standout   use extra bright or bold with standout mode"
 msgstr ""
 
-#: tui/tui-win.c:530
+#: tui/tui-win.c:525
 msgid "Set the attribute mode to use for the active TUI window border."
 msgstr ""
 
-#: tui/tui-win.c:531
+#: tui/tui-win.c:526
 msgid "Show the attribute mode to use for the active TUI window border."
 msgstr ""
 
-#: tui/tui-win.c:532
+#: tui/tui-win.c:527
 msgid ""
 "This variable controls the attributes to use for the active window border:\n"
 "normal          normal display\n"
@@ -29068,67 +29757,85 @@ msgid ""
 "bold-standout   use extra bright or bold with standout mode"
 msgstr ""
 
-#: tui/tui-win.c:1065 tui/tui-win.c:1192 tui/tui-win.c:1714
+#: tui/tui-win.c:1060 tui/tui-win.c:1186 tui/tui-win.c:1705
 msgid ""
 "Invalid window specified. \n"
 "The window name specified must be valid and visible.\n"
 msgstr ""
 
-#: tui/tui-win.c:1076
+#: tui/tui-win.c:1071
 #, possible-c-format
 msgid "Focus set to %s window.\n"
 msgstr ""
 
-#: tui/tui-win.c:1080
+#: tui/tui-win.c:1075
 #, possible-c-format
 msgid ""
 "Incorrect Number of Arguments.\n"
 "%s"
 msgstr ""
 
-#: tui/tui-win.c:1158
+#: tui/tui-win.c:1153
 msgid "Tab widths greater than 0 must be specified."
 msgstr ""
 
-#: tui/tui-win.c:1227 tui/tui-win.c:1233
+#: tui/tui-win.c:1221 tui/tui-win.c:1227
 #, possible-c-format
 msgid ""
 "Invalid window height specified.\n"
 "%s"
 msgstr ""
 
-#: typeprint.c:351
+#: typeprint.c:347
 msgid "Language not supported."
 msgstr ""
 
-#: typeprint.c:433
+#: typeprint.c:390
+msgid "<unknown return type>"
+msgstr ""
+
+#: typeprint.c:398
+#, possible-c-format
+msgid "'%s' has unknown type; cast it to its declared type"
+msgstr ""
+
+#: typeprint.c:460
 #, possible-c-format
 msgid "unrecognized flag '%c'"
 msgstr ""
 
-#: typeprint.c:439
+#: typeprint.c:466
 msgid "flag expected"
 msgstr ""
 
-#: typeprint.c:441
+#: typeprint.c:468
 msgid "expected space after format"
 msgstr ""
 
-#: typeprint.c:575
+#: typeprint.c:635
 msgid "internal error: unhandled type in print_type_scalar"
 msgstr ""
 
-#: typeprint.c:647
+#: typeprint.c:708
 #, possible-c-format
 msgid "Printing of methods defined in a class in %s\n"
 msgstr ""
 
-#: typeprint.c:663
+#: typeprint.c:725
 #, possible-c-format
 msgid "Printing of typedefs defined in a class in %s\n"
 msgstr ""
 
-#: typeprint.c:672
+#: typeprint.c:754
+msgid "Will not print nested types defined in a class\n"
+msgstr ""
+
+#: typeprint.c:759
+#, possible-c-format
+msgid "Will print %s nested types defined in a class\n"
+msgstr ""
+
+#: typeprint.c:769
 msgid ""
 "Print definition of type TYPE.\n"
 "Usage: ptype[/FLAGS] TYPE | EXPRESSION\n"
@@ -29143,44 +29850,55 @@ msgid ""
 "  /m    do not print methods defined in a class\n"
 "  /M    print methods defined in a class\n"
 "  /t    do not print typedefs defined in a class\n"
-"  /T    print typedefs defined in a class"
+"  /T    print typedefs defined in a class\n"
+"  /o    print offsets and sizes of fields in a struct (like pahole)\n"
 msgstr ""
 
-#: typeprint.c:690
+#: typeprint.c:788
 msgid ""
 "Print data type of expression EXP.\n"
 "Only one level of typedefs is unrolled.  See also \"ptype\"."
 msgstr ""
 
-#: typeprint.c:695
+#: typeprint.c:793
 msgid "Generic command for showing type-printing settings."
 msgstr ""
 
-#: typeprint.c:698
+#: typeprint.c:796
 msgid "Generic command for setting how types print."
 msgstr ""
 
-#: typeprint.c:702
+#: typeprint.c:800
 msgid "Set printing of methods defined in classes."
 msgstr ""
 
-#: typeprint.c:703
+#: typeprint.c:801
 msgid "Show printing of methods defined in classes."
 msgstr ""
 
-#: typeprint.c:709
+#: typeprint.c:807
 msgid "Set printing of typedefs defined in classes."
 msgstr ""
 
-#: typeprint.c:710
+#: typeprint.c:808
 msgid "Show printing of typedefs defined in classes."
 msgstr ""
 
-#: typeprint.c:722
+#: typeprint.c:816
+msgid ""
+"Set the number of recursive nested type definitions to print (\"unlimited\" "
+"or -1 to show all)."
+msgstr ""
+
+#: typeprint.c:818
+msgid "Show the number of recursive nested type definitions to print."
+msgstr ""
+
+#: typeprint.c:830
 msgid "<not allocated>"
 msgstr ""
 
-#: typeprint.c:730
+#: typeprint.c:838
 msgid "<not associated>"
 msgstr ""
 
@@ -29218,35 +29936,46 @@ msgstr ""
 msgid "misplaced table_end or missing table_begin."
 msgstr ""
 
-#: ui-out.c:657
+#: ui-out.c:641
 msgid ""
 "table_body missing; table fields must be specified after table_body and "
 "inside a list."
 msgstr ""
 
-#: ui-out.c:670
+#: ui-out.c:654
 msgid "ui-out internal error in handling headers."
 msgstr ""
 
-#: user-regs.c:249
+#: unittests/environ-selftests.c:273
+msgid "Could not set environment variable for testing."
+msgstr ""
+
+#: unittests/lookup_name_info-selftests.c:44
+#, possible-c-format
+msgid ""
+"%s:%d: make-paramless self-test failed: (completion=%d, lang=%d) \"%s\" -> "
+"\"%s\", expected \"%s\""
+msgstr ""
+
+#: user-regs.c:247
 msgid "List the names of the current user registers.\n"
 msgstr ""
 
-#: utils.c:118
+#: utils.c:119
 #, possible-c-format
 msgid "Printing of 8-bit characters in strings as \\nnn is %s.\n"
 msgstr ""
 
-#: utils.c:132
+#: utils.c:133
 #, possible-c-format
 msgid "State of pagination is %s.\n"
 msgstr ""
 
-#: utils.c:383
+#: utils.c:205
 msgid "free_current_contents: NULL pointer"
 msgstr ""
 
-#: utils.c:504
+#: utils.c:323
 #, possible-c-format
 msgid ""
 "%s\n"
@@ -29254,20 +29983,20 @@ msgid ""
 "time.\n"
 msgstr ""
 
-#: utils.c:637
+#: utils.c:452
 #, possible-c-format
 msgid ""
 "%s\n"
 "Quit this debugging session? "
 msgstr ""
 
-#: utils.c:646
+#: utils.c:462
 msgid ""
 "\n"
 "This is a bug, please report it."
 msgstr ""
 
-#: utils.c:648
+#: utils.c:464
 #, possible-c-format
 msgid ""
 "  For instructions, see:\n"
@@ -29277,69 +30006,69 @@ msgstr ""
 #. Default (yes/batch case) is to dump core.  This leaves a GDB
 #. `dropping' so that it is easier to see that something went
 #. wrong in GDB.
-#: utils.c:663
+#: utils.c:479
 #, possible-c-format
 msgid ""
 "%s\n"
 "Create a core file of GDB? "
 msgstr ""
 
-#: utils.c:776
+#: utils.c:592
 #, possible-c-format
 msgid "Configure what GDB does when %s is detected."
 msgstr ""
 
-#: utils.c:779
+#: utils.c:595
 #, possible-c-format
 msgid "Show what GDB does when %s is detected."
 msgstr ""
 
-#: utils.c:798
+#: utils.c:614
 #, possible-c-format
 msgid "Set whether GDB should quit when an %s is detected"
 msgstr ""
 
-#: utils.c:801
+#: utils.c:617
 #, possible-c-format
 msgid "Show whether GDB will quit when an %s is detected"
 msgstr ""
 
-#: utils.c:821
+#: utils.c:637
 #, possible-c-format
 msgid "Set whether GDB should create a core file of GDB when %s is detected"
 msgstr ""
 
-#: utils.c:824
+#: utils.c:640
 #, possible-c-format
 msgid "Show whether GDB will create a core file of GDB when %s is detected"
 msgstr ""
 
-#: utils.c:978
+#: utils.c:778
 #, possible-c-format
 msgid "virtual memory exhausted: can't allocate %ld bytes."
 msgstr ""
 
-#: utils.c:983
+#: utils.c:783
 msgid "virtual memory exhausted."
 msgstr ""
 
-#: utils.c:1189
+#: utils.c:943
 #, possible-c-format
 msgid "(%s or %s) [answered %c; input not from terminal]\n"
 msgstr ""
 
-#: utils.c:1211
+#: utils.c:960
 #, possible-c-format
 msgid "%s%s(%s or %s) %s"
 msgstr ""
 
 #. Invalid entries are not defaulted and require another selection.
-#: utils.c:1260
+#: utils.c:1008
 #, possible-c-format
 msgid "Please answer %s or %s.\n"
 msgstr ""
 
-#: utils.c:1441
+#: utils.c:1184
 #, possible-c-format
 msgid ""
 "The escape sequence `\\%c' is equivalent to plain `%c', which has no "
@@ -29347,471 +30076,458 @@ msgid ""
 "in the `%s' character set."
 msgstr ""
 
-#: utils.c:1552
+#: utils.c:1295
 #, possible-c-format
 msgid "Number of lines gdb thinks are in a page is %s.\n"
 msgstr ""
 
-#: utils.c:1563
+#: utils.c:1306
 #, possible-c-format
 msgid "Number of characters gdb thinks are in a line is %s.\n"
 msgstr ""
 
-#: utils.c:2628
+#: utils.c:2671
 #, possible-c-format
 msgid "Timestamping debugging messages is %s.\n"
 msgstr ""
 
-#: utils.c:2636
+#: utils.c:2679
 msgid "Set number of characters where GDB should wrap lines of its output."
 msgstr ""
 
-#: utils.c:2637
+#: utils.c:2680
 msgid "Show number of characters where GDB should wrap lines of its output."
 msgstr ""
 
-#: utils.c:2638
+#: utils.c:2681
 msgid ""
 "This affects where GDB wraps its output to fit the screen width.\n"
 "Setting this to \"unlimited\" or zero prevents GDB from wrapping its output."
 msgstr ""
 
-#: utils.c:2645
+#: utils.c:2688
 msgid "Set number of lines in a page for GDB output pagination."
 msgstr ""
 
-#: utils.c:2646
+#: utils.c:2689
 msgid "Show number of lines in a page for GDB output pagination."
 msgstr ""
 
-#: utils.c:2647
+#: utils.c:2690
 msgid ""
 "This affects the number of lines after which GDB will pause\n"
 "its output and ask you whether to continue.\n"
 "Setting this to \"unlimited\" or zero causes GDB never pause during output."
 msgstr ""
 
-#: utils.c:2656
+#: utils.c:2699
 msgid "Set state of GDB output pagination."
 msgstr ""
 
-#: utils.c:2657
+#: utils.c:2700
 msgid "Show state of GDB output pagination."
 msgstr ""
 
-#: utils.c:2658
+#: utils.c:2701
 msgid ""
 "When pagination is ON, GDB pauses at end of each screenful of\n"
 "its output and asks you whether to continue.\n"
 "Turning pagination off is an alternative to \"set height unlimited\"."
 msgstr ""
 
-#: utils.c:2667
+#: utils.c:2710
 msgid "Set printing of 8-bit characters in strings as \\nnn."
 msgstr ""
 
-#: utils.c:2668
+#: utils.c:2711
 msgid "Show printing of 8-bit characters in strings as \\nnn."
 msgstr ""
 
-#: utils.c:2675
+#: utils.c:2718
 msgid "Set timestamping of debugging messages."
 msgstr ""
 
-#: utils.c:2676
+#: utils.c:2719
 msgid "Show timestamping of debugging messages."
 msgstr ""
 
-#: utils.c:2677
+#: utils.c:2720
 msgid ""
 "When set, debugging messages will be marked with seconds and microseconds."
 msgstr ""
 
-#: utils.c:2761
+#: utils.c:2821
 #, possible-c-format
 msgid "invalid hex \"%s\""
 msgstr ""
 
-#: utils.c:2774
+#: utils.c:2834
 #, possible-c-format
 msgid "invalid decimal \"%s\""
 msgstr ""
 
-#: utils.c:3054
+#: utils.c:3145
 msgid "process-id to attach"
 msgstr ""
 
-#: utils.c:3060
+#: utils.c:3151
 #, possible-c-format
 msgid "Illegal process-id: %s."
 msgstr ""
 
-#: valarith.c:70
+#: valarith.c:66
 msgid ""
 "Cannot perform pointer math on incomplete types, try casting to a known "
 "type, or void *."
 msgstr ""
 
-#: valarith.c:73
+#: valarith.c:69
 #, possible-c-format
 msgid ""
 "Cannot perform pointer math on incomplete type \"%s\", try casting to a "
 "known type, or void *."
 msgstr ""
 
-#: valarith.c:120
+#: valarith.c:116
 msgid ""
 "First argument of `-' is a pointer and second argument is neither\n"
 "an integer nor a pointer of the same type."
 msgstr ""
 
-#: valarith.c:127
+#: valarith.c:123
 msgid "Type size unknown, assuming 1. Try casting to a known type, or void *."
 msgstr ""
 
-#: valarith.c:171
+#: valarith.c:167
 msgid "array or string index out of range"
 msgstr ""
 
-#: valarith.c:183
+#: valarith.c:179
 msgid "not an array or string"
 msgstr ""
 
-#: valarith.c:202
+#: valarith.c:198
 msgid "no such vector element (vector not associated)"
 msgstr ""
 
-#: valarith.c:204
+#: valarith.c:200
 msgid "no such vector element (vector not allocated)"
 msgstr ""
 
-#: valarith.c:206
+#: valarith.c:202
 msgid "no such vector element"
 msgstr ""
 
-#: valarith.c:311
+#: valarith.c:307
 #, possible-c-format
 msgid "Could not find %s."
 msgstr ""
 
-#: valarith.c:360
+#: valarith.c:356
 msgid "Can't do that binary op on that type"
 msgstr ""
 
-#: valarith.c:446 valarith.c:472
+#: valarith.c:442 valarith.c:468
 msgid "Invalid binary operation specified."
 msgstr ""
 
-#: valarith.c:512 valarith.c:630
+#: valarith.c:508 valarith.c:626
 #, possible-c-format
 msgid "member function %s not found"
 msgstr ""
 
-#: valarith.c:539
+#: valarith.c:535
 msgid "Can't do that unary op on that type"
 msgstr ""
 
-#: valarith.c:590
+#: valarith.c:586
 msgid "Invalid unary operation specified."
 msgstr ""
 
-#: valarith.c:732
+#: valarith.c:723
 msgid "unimplemented support for boolean repeats"
 msgstr ""
 
-#: valarith.c:736
+#: valarith.c:727
 msgid "can't repeat values of that type"
 msgstr ""
 
-#: valarith.c:748
+#: valarith.c:737
 msgid "Strings can only be concatenated with other strings."
 msgstr ""
 
-#: valarith.c:783
+#: valarith.c:770
 msgid "Booleans can only be concatenated with other bitstrings or booleans."
 msgstr ""
 
-#: valarith.c:786
+#: valarith.c:773
 msgid "unimplemented support for boolean concatenation."
 msgstr ""
 
 #. We don't know how to concatenate these operands.
-#: valarith.c:791
+#: valarith.c:778
 msgid "illegal operands for concatenation."
 msgstr ""
 
-#: valarith.c:805 valarith.c:836
+#: valarith.c:792 valarith.c:823
 msgid "Attempt to raise 0 to negative power."
 msgstr ""
 
 #. The DFP extension to the C language does not allow mixing of
 #. * decimal float types with other float types in expressions
 #. * (see WDTR 24732, page 12).
-#: valarith.c:879
+#: valarith.c:865
 msgid "Mixing decimal floating types with other floating types is not allowed."
 msgstr ""
 
-#: valarith.c:898 valarith.c:917
+#: valarith.c:884 valarith.c:903
 #, possible-c-format
 msgid "Don't know how to convert from %s to %s."
 msgstr ""
 
-#: valarith.c:985
-msgid "Operation not valid for decimal floating point number."
-msgstr ""
-
-#: valarith.c:1023
-#, possible-c-format
-msgid "Cannot perform exponentiation: %s"
-msgstr ""
-
-#: valarith.c:1036
-msgid "Integer-only operation on floating point number."
-msgstr ""
-
-#: valarith.c:1084
+#: valarith.c:987
 msgid "Invalid operation on booleans."
 msgstr ""
 
-#: valarith.c:1144 valarith.c:1155 valarith.c:1270 valarith.c:1281
+#: valarith.c:1047 valarith.c:1058 valarith.c:1173 valarith.c:1184
 msgid "Division by zero"
 msgstr ""
 
-#: valarith.c:1234 valarith.c:1364
+#: valarith.c:1137 valarith.c:1267
 msgid "Invalid binary operation on numbers."
 msgstr ""
 
-#: valarith.c:1411
+#: valarith.c:1314
 msgid "conversion of scalar to vector involves truncation"
 msgstr ""
 
-#: valarith.c:1442
+#: valarith.c:1345
 msgid "Vector operations are only supported among vectors"
 msgstr ""
 
-#: valarith.c:1646
+#: valarith.c:1539
 msgid "Invalid type combination in equality test."
 msgstr ""
 
-#: valarith.c:1728
+#: valarith.c:1614
 msgid "Invalid type combination in ordering comparison."
 msgstr ""
 
-#: valarith.c:1761
+#: valarith.c:1634
 msgid "Argument to positive operation not a number."
 msgstr ""
 
-#: valarith.c:1816
+#: valarith.c:1669
 msgid "Argument to negate operation not a number."
 msgstr ""
 
-#: valarith.c:1851
+#: valarith.c:1704
 msgid "Argument to complement operation not an integer, boolean."
 msgstr ""
 
-#: valarith.c:1892
+#: valarith.c:1745
 msgid "Second argument of 'IN' has wrong type"
 msgstr ""
 
-#: valarith.c:1897
+#: valarith.c:1750
 msgid "First argument of 'IN' has wrong type"
 msgstr ""
 
-#: valarith.c:1901
+#: valarith.c:1754
 msgid "First argument of 'IN' not in range"
 msgstr ""
 
-#: valops.c:118
+#: valops.c:117
 #, possible-c-format
 msgid "Overload resolution in evaluating C++ functions is %s.\n"
 msgstr ""
 
-#: valops.c:137
+#: valops.c:136
 #, possible-c-format
 msgid "\"%s\" exists in this program but is not a function."
 msgstr ""
 
-#: valops.c:171
+#: valops.c:170
 msgid "evaluation of this expression requires the target program to be active"
 msgstr ""
 
-#: valops.c:174
+#: valops.c:173
 #, possible-c-format
 msgid ""
 "evaluation of this expression requires the program to have a function \"%s\"."
 msgstr ""
 
-#: valops.c:198
+#: valops.c:197
 msgid "No memory available to program now: you need to start the target first"
 msgstr ""
 
-#: valops.c:201
+#: valops.c:200
 msgid "No memory available to program: call to malloc failed"
 msgstr ""
 
-#: valops.c:408
+#: valops.c:412
 msgid "array element type size does not divide object size in cast"
 msgstr ""
 
-#: valops.c:523
+#: valops.c:524
 msgid "value truncated"
 msgstr ""
 
-#: valops.c:545
+#: valops.c:546
 msgid "Cannot convert between vector values of different sizes"
 msgstr ""
 
-#: valops.c:548
+#: valops.c:549
 msgid "can only cast scalar to vector of same size"
 msgstr ""
 
-#: valops.c:568
+#: valops.c:569
 msgid "Invalid cast."
 msgstr ""
 
-#: valops.c:619
+#: valops.c:620
 msgid "Invalid reinterpret_cast"
 msgstr ""
 
-#: valops.c:736
+#: valops.c:737
 msgid "Argument to dynamic_cast must be a pointer or reference type"
 msgstr ""
 
-#: valops.c:739
+#: valops.c:740
 msgid "Argument to dynamic_cast must be pointer to class or `void *'"
 msgstr ""
 
-#: valops.c:747
+#: valops.c:748
 msgid "Argument to dynamic_cast does not have pointer type"
 msgstr ""
 
-#: valops.c:752
+#: valops.c:753
 msgid "Argument to dynamic_cast does not have pointer to class type"
 msgstr ""
 
-#: valops.c:765
+#: valops.c:766
 msgid "Argument to dynamic_cast does not have class type"
 msgstr ""
 
-#: valops.c:778
+#: valops.c:779
 msgid "Ambiguous dynamic_cast"
 msgstr ""
 
-#: valops.c:783
+#: valops.c:784
 msgid "Couldn't determine value's most derived type for dynamic_cast"
 msgstr ""
 
-#: valops.c:840
+#: valops.c:841
 msgid "dynamic_cast failed"
 msgstr ""
 
-#: valops.c:898
+#: valops.c:887
 msgid "Not a numeric type."
 msgstr ""
 
-#: valops.c:1090 valops.c:1146
+#: valops.c:1080 valops.c:1136
 #, possible-c-format
 msgid "Can't handle bitfields which don't fit in a %d bit word."
 msgstr ""
 
-#: valops.c:1128
+#: valops.c:1118
 msgid "Value being assigned to is no longer active."
 msgstr ""
 
-#: valops.c:1156 value.c:1237
+#: valops.c:1146 value.c:1227
 msgid "value has been optimized out"
 msgstr ""
 
-#: valops.c:1159 value.c:1256
+#: valops.c:1149 value.c:1246
 msgid "value is not available"
 msgstr ""
 
-#: valops.c:1206
+#: valops.c:1196
 msgid "Left operand of assignment is not an lvalue."
 msgstr ""
 
-#: valops.c:1289
+#: valops.c:1279
 msgid "Only values in memory can be extended with '@'."
 msgstr ""
 
-#: valops.c:1291
+#: valops.c:1281
 #, possible-c-format
 msgid "Invalid number %d of repetitions."
 msgstr ""
 
-#: valops.c:1351
+#: valops.c:1341
 #, possible-c-format
 msgid "Address requested for identifier \"%s\" which is in register $%s"
 msgstr ""
 
-#: valops.c:1358
+#: valops.c:1348
 #, possible-c-format
 msgid "Can't take address of \"%s\" which isn't an lvalue."
 msgstr ""
 
-#: valops.c:1628
+#: valops.c:1618
 #, possible-c-format
 msgid "bad array bounds (%d, %d)"
 msgstr ""
 
-#: valops.c:1636
+#: valops.c:1626
 msgid "array elements must all be the same size"
 msgstr ""
 
-#: valops.c:1724
+#: valops.c:1714
 msgid "typecmp: no argument list"
 msgstr ""
 
-#: valops.c:1802
+#: valops.c:1792
 #, possible-c-format
 msgid "base class '%s' is ambiguous in type '%s'"
 msgstr ""
 
-#: valops.c:1933 valops.c:2088
+#: valops.c:1923 valops.c:2075
 msgid "virtual baseclass botch"
 msgstr ""
 
-#: valops.c:2030
+#: valops.c:2020
 #, possible-c-format
 msgid "cannot resolve overloaded method `%s': no arguments supplied"
 msgstr ""
 
-#: valops.c:2170 valops.c:2256
+#: valops.c:2156 valops.c:2242
 #, possible-c-format
 msgid "Attempt to extract a component of a value that is not a %s."
 msgstr ""
 
-#: valops.c:2193
+#: valops.c:2179
 #, possible-c-format
 msgid "Cannot take address of method %s."
 msgstr ""
 
-#: valops.c:2197
+#: valops.c:2183
 #, possible-c-format
 msgid "There is no member or method named %s."
 msgstr ""
 
-#: valops.c:2209
+#: valops.c:2195
 #, possible-c-format
 msgid ""
 "One of the arguments you tried to pass to %s could not be converted to what "
 "the function wants."
 msgstr ""
 
-#: valops.c:2226
+#: valops.c:2212
 #, possible-c-format
 msgid "Structure has no component named %s."
 msgstr ""
 
-#: valops.c:2267
+#: valops.c:2253
 msgid "No field with matching bitpos and type."
 msgstr ""
 
-#: valops.c:2418
+#: valops.c:2404
 msgid "Attempt to extract a component of a value that is not a struct or union"
 msgstr ""
 
-#: valops.c:2553
+#: valops.c:2539
 #, possible-c-format
 msgid "Couldn't find method %s%s%s"
 msgstr ""
@@ -29820,354 +30536,354 @@ msgstr ""
 #. FIXME: GDB does not support the general ambiguous case.
 #. All candidates should be collected and presented the
 #. user.
-#: valops.c:2726
+#: valops.c:2712
 msgid "Ambiguous overload resolution"
 msgstr ""
 
 #. Incomparable top contenders.
 #. This is an error incompatible candidates
 #. should not have been proposed.
-#: valops.c:2731
+#: valops.c:2717
 msgid "Internal error: incompatible overload candidates proposed"
 msgstr ""
 
-#: valops.c:2743
+#: valops.c:2729
 msgid "Internal error: unexpected overload comparison result"
 msgstr ""
 
-#: valops.c:2759
+#: valops.c:2745
 #, possible-c-format
 msgid "Cannot resolve method %s%s%s to any overloaded instance"
 msgstr ""
 
-#: valops.c:2764
+#: valops.c:2750
 #, possible-c-format
 msgid "Cannot resolve function %s to any overloaded instance"
 msgstr ""
 
-#: valops.c:2770
+#: valops.c:2756
 #, possible-c-format
 msgid ""
 "Using non-standard conversion to match method %s%s%s to supplied arguments"
 msgstr ""
 
-#: valops.c:2776
+#: valops.c:2762
 #, possible-c-format
 msgid ""
 "Using non-standard conversion to match function %s to supplied arguments"
 msgstr ""
 
-#: valops.c:3188
+#: valops.c:3174
 msgid "name of destructor must equal name of class"
 msgstr ""
 
-#: valops.c:3227
+#: valops.c:3213
 #, possible-c-format
 msgid "no constant named \"%s\" in enum \"%s\""
 msgstr ""
 
-#: valops.c:3258
+#: valops.c:3244
 msgid "non-aggregate type in value_aggregate_elt"
 msgstr ""
 
-#: valops.c:3334
+#: valops.c:3320
 msgid "Internal error: non-aggregate type to value_struct_elt_for_reference"
 msgstr ""
 
-#: valops.c:3431
+#: valops.c:3422
 msgid "no member function matches that type instantiation"
 msgstr ""
 
-#: valops.c:3457
+#: valops.c:3448
 #, possible-c-format
 msgid "non-unique member `%s' requires type instantiation"
 msgstr ""
 
-#: valops.c:3464
+#: valops.c:3455
 msgid "no matching member function"
 msgstr ""
 
-#: valops.c:3495
+#: valops.c:3486
 #, possible-c-format
 msgid "Cannot reference virtual member function \"%s\""
 msgstr ""
 
-#: valops.c:3650
+#: valops.c:3641
 msgid "Unexpected value type."
 msgstr ""
 
-#: valops.c:3716
+#: valops.c:3707
 #, possible-c-format
 msgid ""
 "Couldn't retrieve complete object of RTTI type %s; object may be in register"
 "(s)."
 msgstr ""
 
-#: valops.c:3748
+#: valops.c:3739
 msgid "no `this' in current language"
 msgstr ""
 
-#: valops.c:3756
+#: valops.c:3747
 #, possible-c-format
 msgid "current stack frame does not contain a variable named `%s'"
 msgstr ""
 
-#: valops.c:3801
+#: valops.c:3792
 msgid "slice from bad array or bitstring"
 msgstr ""
 
-#: valops.c:3805
+#: valops.c:3796
 msgid "slice out of range"
 msgstr ""
 
-#: valops.c:3892
+#: valops.c:3883
 msgid "cannot cast non-number to complex"
 msgstr ""
 
-#: valops.c:3899
+#: valops.c:3890
 msgid "Set overload resolution in evaluating C++ functions."
 msgstr ""
 
-#: valops.c:3900
+#: valops.c:3891
 msgid "Show overload resolution in evaluating C++ functions."
 msgstr ""
 
-#: valprint.c:164
+#: valprint.c:149
 #, possible-c-format
 msgid "Limit on string chars or array elements to print is %s.\n"
 msgstr ""
 
-#: valprint.c:178
+#: valprint.c:163
 #, possible-c-format
 msgid "Default input radix for entering numbers is %s.\n"
 msgstr ""
 
-#: valprint.c:188
+#: valprint.c:173
 #, possible-c-format
 msgid "Default output radix for printing of values is %s.\n"
 msgstr ""
 
-#: valprint.c:199
+#: valprint.c:184
 #, possible-c-format
 msgid "Printing of array indexes is %s.\n"
 msgstr ""
 
-#: valprint.c:210
+#: valprint.c:195
 #, possible-c-format
 msgid "Threshold for repeated print elements is %s.\n"
 msgstr ""
 
-#: valprint.c:221
+#: valprint.c:206
 #, possible-c-format
 msgid "Printing of char arrays to stop at first null char is %s.\n"
 msgstr ""
 
-#: valprint.c:232
+#: valprint.c:217
 #, possible-c-format
 msgid "Pretty formatting of structures is %s.\n"
 msgstr ""
 
-#: valprint.c:241
+#: valprint.c:226
 #, possible-c-format
 msgid "Pretty formatting of arrays is %s.\n"
 msgstr ""
 
-#: valprint.c:252
+#: valprint.c:237
 #, possible-c-format
 msgid "Printing of unions interior to structures is %s.\n"
 msgstr ""
 
-#: valprint.c:262
+#: valprint.c:247
 #, possible-c-format
 msgid "Printing of addresses is %s.\n"
 msgstr ""
 
-#: valprint.c:270
+#: valprint.c:255
 #, possible-c-format
 msgid "Printing of symbols when printing pointers is %s.\n"
 msgstr ""
 
-#: valprint.c:373
+#: valprint.c:358
 msgid "<optimized out>"
 msgstr ""
 
-#: valprint.c:379
+#: valprint.c:364
 msgid "<not saved>"
 msgstr ""
 
-#: valprint.c:391
+#: valprint.c:376
 msgid "<invalid address>"
 msgstr ""
 
-#: valprint.c:1044
+#: valprint.c:989
 #, possible-c-format
 msgid "Unhandled type code %d in symbol table."
 msgstr ""
 
-#: valprint.c:1140
+#: valprint.c:1085
 msgid "<address of value unknown>"
 msgstr ""
 
-#: valprint.c:1164
+#: valprint.c:1109
 #, possible-c-format
 msgid "<internal function %s>"
 msgstr ""
 
-#: valprint.c:1443
+#: valprint.c:1351
 msgid "Value out of range."
 msgstr ""
 
-#: valprint.c:1686 valprint.c:1736
+#: valprint.c:1539 valprint.c:1589
 msgid "Internal error in octal conversion;"
 msgstr ""
 
-#: valprint.c:2037
+#: valprint.c:1971
 msgid "unable to get positions in array, use bounds instead"
 msgstr ""
 
-#: valprint.c:2991
+#: valprint.c:2913
 #, possible-c-format
 msgid "Nonsense input radix ``decimal %u''; input radix unchanged."
 msgstr ""
 
-#: valprint.c:2997
+#: valprint.c:2919
 #, possible-c-format
 msgid "Input radix now set to decimal %u, hex %x, octal %o.\n"
 msgstr ""
 
-#: valprint.c:3033
+#: valprint.c:2955
 #, possible-c-format
 msgid "Unsupported output radix ``decimal %u''; output radix unchanged."
 msgstr ""
 
-#: valprint.c:3040
+#: valprint.c:2962
 #, possible-c-format
 msgid "Output radix now set to decimal %u, hex %x, octal %o.\n"
 msgstr ""
 
-#: valprint.c:3064
+#: valprint.c:2986
 #, possible-c-format
 msgid "Input and output radices now set to decimal %u, hex %x, octal %o.\n"
 msgstr ""
 
-#: valprint.c:3079
+#: valprint.c:3001
 #, possible-c-format
 msgid "Input and output radices set to decimal %u, hex %x, octal %o.\n"
 msgstr ""
 
-#: valprint.c:3085
+#: valprint.c:3007
 #, possible-c-format
 msgid "Input radix set to decimal %u, hex %x, octal %o.\n"
 msgstr ""
 
-#: valprint.c:3088
+#: valprint.c:3010
 #, possible-c-format
 msgid "Output radix set to decimal %u, hex %x, octal %o.\n"
 msgstr ""
 
-#: valprint.c:3129
+#: valprint.c:3051
 msgid "Generic command for setting how things print."
 msgstr ""
 
-#: valprint.c:3136
+#: valprint.c:3058
 msgid "Generic command for showing print settings."
 msgstr ""
 
-#: valprint.c:3142
+#: valprint.c:3064
 msgid "Generic command for setting what things to print in \"raw\" mode."
 msgstr ""
 
-#: valprint.c:3146
+#: valprint.c:3068
 msgid "Generic command for showing \"print raw\" settings."
 msgstr ""
 
-#: valprint.c:3150
+#: valprint.c:3072
 msgid "Set limit on string chars or array elements to print."
 msgstr ""
 
-#: valprint.c:3151
+#: valprint.c:3073
 msgid "Show limit on string chars or array elements to print."
 msgstr ""
 
-#: valprint.c:3152
+#: valprint.c:3074
 msgid "\"set print elements unlimited\" causes there to be no limit."
 msgstr ""
 
-#: valprint.c:3159
+#: valprint.c:3081
 msgid "Set printing of char arrays to stop at first null char."
 msgstr ""
 
-#: valprint.c:3160
+#: valprint.c:3082
 msgid "Show printing of char arrays to stop at first null char."
 msgstr ""
 
-#: valprint.c:3167
+#: valprint.c:3089
 msgid "Set threshold for repeated print elements."
 msgstr ""
 
-#: valprint.c:3168
+#: valprint.c:3090
 msgid "Show threshold for repeated print elements."
 msgstr ""
 
-#: valprint.c:3169
+#: valprint.c:3091
 msgid ""
 "\"set print repeats unlimited\" causes all elements to be individually "
 "printed."
 msgstr ""
 
-#: valprint.c:3176
+#: valprint.c:3098
 msgid "Set pretty formatting of structures."
 msgstr ""
 
-#: valprint.c:3177
+#: valprint.c:3099
 msgid "Show pretty formatting of structures."
 msgstr ""
 
-#: valprint.c:3184
+#: valprint.c:3106
 msgid "Set printing of unions interior to structures."
 msgstr ""
 
-#: valprint.c:3185
+#: valprint.c:3107
 msgid "Show printing of unions interior to structures."
 msgstr ""
 
-#: valprint.c:3192
+#: valprint.c:3114
 msgid "Set pretty formatting of arrays."
 msgstr ""
 
-#: valprint.c:3193
+#: valprint.c:3115
 msgid "Show pretty formatting of arrays."
 msgstr ""
 
-#: valprint.c:3200
+#: valprint.c:3122
 msgid "Set printing of addresses."
 msgstr ""
 
-#: valprint.c:3201
+#: valprint.c:3123
 msgid "Show printing of addresses."
 msgstr ""
 
-#: valprint.c:3208
+#: valprint.c:3130
 msgid "Set printing of symbol names when printing pointers."
 msgstr ""
 
-#: valprint.c:3209
+#: valprint.c:3131
 msgid "Show printing of symbol names when printing pointers."
 msgstr ""
 
-#: valprint.c:3216
+#: valprint.c:3138
 msgid "Set default input radix for entering numbers."
 msgstr ""
 
-#: valprint.c:3217
+#: valprint.c:3139
 msgid "Show default input radix for entering numbers."
 msgstr ""
 
-#: valprint.c:3224
+#: valprint.c:3146
 msgid "Set default output radix for printing of values."
 msgstr ""
 
-#: valprint.c:3225
+#: valprint.c:3147
 msgid "Show default output radix for printing of values."
 msgstr ""
 
@@ -30178,91 +30894,91 @@ msgstr ""
 #. add_show_from_set() commands aren't really appropriate.
 #. FIXME: i18n: With the new add_setshow_integer command, that is no
 #. longer true - show can display anything.
-#: valprint.c:3238
+#: valprint.c:3160
 msgid ""
 "Set default input and output number radices.\n"
 "Use 'set input-radix' or 'set output-radix' to independently set each.\n"
 "Without an argument, sets both radices back to the default value of 10."
 msgstr ""
 
-#: valprint.c:3243
+#: valprint.c:3165
 msgid ""
 "Show the default input and output number radices.\n"
 "Use 'show input-radix' or 'show output-radix' to independently show each."
 msgstr ""
 
-#: valprint.c:3249
+#: valprint.c:3171
 msgid "Set printing of array indexes."
 msgstr ""
 
-#: valprint.c:3250
+#: valprint.c:3172
 msgid "Show printing of array indexes"
 msgstr ""
 
-#: value.c:990
+#: value.c:980
 #, possible-c-format
 msgid "max-value-size set too low, increasing to %d bytes"
 msgstr ""
 
-#: value.c:1002
+#: value.c:992
 msgid "Maximum value size is unlimited.\n"
 msgstr ""
 
-#: value.c:1004
+#: value.c:994
 #, possible-c-format
 msgid "Maximum value size is %d bytes.\n"
 msgstr ""
 
-#: value.c:1022
+#: value.c:1012
 #, possible-c-format
 msgid "value of type `%s' requires %u bytes, which is more than max-value-size"
 msgstr ""
 
-#: value.c:1025
+#: value.c:1015
 #, possible-c-format
 msgid "value requires %u bytes, which is more than max-value-size"
 msgstr ""
 
-#: value.c:1246
+#: value.c:1236
 msgid "register has not been saved in frame"
 msgstr ""
 
-#: value.c:1949
+#: value.c:1939
 msgid "The history is empty."
 msgstr ""
 
-#: value.c:1951
+#: value.c:1941
 msgid "There is only one value in the history."
 msgstr ""
 
-#: value.c:1953
+#: value.c:1943
 #, possible-c-format
 msgid "History does not go back to $$%d."
 msgstr ""
 
-#: value.c:1956
+#: value.c:1946
 #, possible-c-format
 msgid "History has not yet reached $%d."
 msgstr ""
 
-#: value.c:2113
+#: value.c:2100
 msgid "Init-if-undefined requires an assignment expression."
 msgstr ""
 
-#: value.c:2118
+#: value.c:2105
 msgid "The first parameter to init-if-undefined should be a GDB variable."
 msgstr ""
 
-#: value.c:2299
+#: value.c:2282
 msgid "bad kind"
 msgstr ""
 
 #. We can never get a component of any other kind.
-#: value.c:2393
+#: value.c:2376
 msgid "set_internalvar_component"
 msgstr ""
 
-#: value.c:2404
+#: value.c:2387
 #, possible-c-format
 msgid "Cannot overwrite convenience function %s"
 msgstr ""
@@ -30271,55 +30987,55 @@ msgstr ""
 #. The user can't create them except via Python, and if Python support
 #. is installed this message will never be printed ($_streq will
 #. exist).
-#: value.c:2709
+#: value.c:2692
 msgid ""
 "No debugger convenience variables now defined.\n"
 "Convenience variables have names starting with \"$\";\n"
 "use \"set\" as in \"set $foo = 5\" to define them.\n"
 msgstr ""
 
-#: value.c:2948
+#: value.c:2915
 msgid "Value can't be converted to integer."
 msgstr ""
 
+#: value.c:2949
+msgid "Invalid floating value found in program."
+msgstr ""
+
 #. FIXME: would like to include fieldval in the message, but
 #. we don't have a sprintf_longest.
-#: value.c:3503
+#: value.c:3425
 #, possible-c-format
 msgid "Value does not fit in %s bits."
 msgstr ""
 
-#: value.c:3555
+#: value.c:3482
 #, possible-c-format
 msgid "Unexpected type (%d) encountered for integer constant."
 msgstr ""
 
-#: value.c:3592
+#: value.c:3524
 #, possible-c-format
 msgid "Unexpected type (%d) encountered for unsigned integer constant."
 msgstr ""
 
-#: value.c:3712
-msgid "Unexpected type encountered for floating constant."
-msgstr ""
-
-#: value.c:3905
+#: value.c:3811
 msgid "Function return type unknown."
 msgstr ""
 
-#: value.c:4041
+#: value.c:3947
 msgid "infinite loop while fetching a register"
 msgstr ""
 
-#: value.c:4111
+#: value.c:4017
 msgid "Unexpected lazy value type."
 msgstr ""
 
-#: value.c:4126
+#: value.c:4032
 msgid "You must provide one argument for $_isvoid."
 msgstr ""
 
-#: value.c:4136
+#: value.c:4042
 msgid ""
 "Debugger convenience (\"$foo\") variables and functions.\n"
 "Convenience variables are created when you assign them values;\n"
@@ -30332,11 +31048,11 @@ msgid ""
 "Convenience functions are defined via the Python API."
 msgstr ""
 
-#: value.c:4151
+#: value.c:4057
 msgid "Elements of value history around item number IDX (or last ten)."
 msgstr ""
 
-#: value.c:4155
+#: value.c:4061
 msgid ""
 "Initialize a convenience variable if necessary.\n"
 "init-if-undefined VARIABLE = EXPRESSION\n"
@@ -30345,26 +31061,26 @@ msgid ""
 "VARIABLE is already initialized."
 msgstr ""
 
-#: value.c:4162
+#: value.c:4068
 msgid "Placeholder command for showing help on convenience functions."
 msgstr ""
 
-#: value.c:4166
+#: value.c:4072
 msgid ""
 "Check whether an expression is void.\n"
 "Usage: $_isvoid (expression)\n"
 "Return 1 if the expression is void, zero otherwise."
 msgstr ""
 
-#: value.c:4173
+#: value.c:4079
 msgid "Set maximum sized value gdb will load from the inferior."
 msgstr ""
 
-#: value.c:4174
+#: value.c:4080
 msgid "Show maximum sized value gdb will load from the inferior."
 msgstr ""
 
-#: value.c:4175
+#: value.c:4081
 msgid ""
 "Use this to control the maximum size, in bytes, of a value that gdb\n"
 "will load from the inferior.  Setting this value to 'unlimited'\n"
@@ -30378,59 +31094,59 @@ msgstr ""
 msgid "Varobj debugging is %s.\n"
 msgstr ""
 
-#: varobj.c:369
+#: varobj.c:354
 msgid "Failed to find the specified frame"
 msgstr ""
 
-#: varobj.c:715
+#: varobj.c:697
 msgid "requested an iterator from a non-dynamic varobj"
 msgstr ""
 
-#: varobj.c:1142
+#: varobj.c:1119
 msgid "Cannot instantiate printer for default visualizer"
 msgstr ""
 
-#: varobj.c:1490
+#: varobj.c:1465
 #, possible-c-format
 msgid "Could not evaluate visualizer expression: %s"
 msgstr ""
 
-#: varobj.c:1499
+#: varobj.c:1474
 msgid "Python support required"
 msgstr ""
 
-#: varobj.c:1875
+#: varobj.c:1814
 msgid "Duplicate variable object name"
 msgstr ""
 
-#: varobj.c:1958
+#: varobj.c:1897
 #, possible-c-format
 msgid "Assertion failed: Could not find varobj \"%s\" in root list"
 msgstr ""
 
-#: varobj.c:2653
+#: varobj.c:2532
 msgid "Set varobj debugging."
 msgstr ""
 
-#: varobj.c:2654
+#: varobj.c:2533
 msgid "Show varobj debugging."
 msgstr ""
 
-#: varobj.c:2655
+#: varobj.c:2534
 msgid "When non-zero, varobj debugging is enabled."
 msgstr ""
 
-#: windows-nat.c:355
+#: windows-nat.c:357
 #, possible-c-format
 msgid "SuspendThread (tid=0x%x) failed. (winerr %u)"
 msgstr ""
 
-#: windows-nat.c:444
+#: windows-nat.c:446
 #, possible-c-format
 msgid "[%s exited with code %u]\n"
 msgstr ""
 
-#: windows-nat.c:666
+#: windows-nat.c:669
 msgid "dll path too long"
 msgstr ""
 
@@ -30441,89 +31157,94 @@ msgstr ""
 #. 4 mysterious UNLOAD_DLL_DEBUG_EVENTs during the startup phase (these
 #. events are apparently caused by the WOW layer, the interface between
 #. 32bit and 64bit worlds).
-#: windows-nat.c:824
+#: windows-nat.c:832
 #, possible-c-format
 msgid "dll starting at %s not found."
 msgstr ""
 
-#: windows-nat.c:845
+#: windows-nat.c:868
 msgid "signal-event requires an argument (integer event id)"
 msgstr ""
 
-#: windows-nat.c:851
+#: windows-nat.c:874
 #, possible-c-format
 msgid "Failed to convert `%s' to event id"
 msgstr ""
 
-#: windows-nat.c:1262
+#: windows-nat.c:1285
 #, possible-c-format
 msgid ""
 "Failed to resume program execution (ContinueDebugEvent failed, error %u)"
 msgstr ""
 
-#: windows-nat.c:1281
+#: windows-nat.c:1304
 #, possible-c-format
 msgid "OpenProcess call failed, GetLastError = %u"
 msgstr ""
 
-#: windows-nat.c:1406
+#: windows-nat.c:1429
 msgid "Could not interrupt program.  Press Ctrl-c in the program console."
 msgstr ""
 
-#: windows-nat.c:1516
+#: windows-nat.c:1539
 #, possible-c-format
 msgid "During startup program exited with code 0x%x."
 msgstr ""
 
-#: windows-nat.c:1888
+#: windows-nat.c:1911
 msgid "Can't attach to process."
 msgstr ""
 
-#: windows-nat.c:1920
+#: windows-nat.c:1943
 #, possible-c-format
 msgid "Can't detach process %u (error %u)"
 msgstr ""
 
-#: windows-nat.c:1978 windows-nat.c:1988
+#: windows-nat.c:2001 windows-nat.c:2011
 #, possible-c-format
 msgid "Error getting executable filename: %u."
 msgstr ""
 
-#: windows-nat.c:1982
+#: windows-nat.c:2005
 #, possible-c-format
 msgid "Error converting executable filename to POSIX: %d."
 msgstr ""
 
-#: windows-nat.c:2458
+#: windows-nat.c:2482
 msgid "No executable specified, use `target exec'."
 msgstr ""
 
-#: windows-nat.c:2475 windows-nat.c:2480
+#: windows-nat.c:2510 windows-nat.c:2515
 #, possible-c-format
 msgid "Error starting executable: %d"
 msgstr ""
 
-#: windows-nat.c:2493
+#: windows-nat.c:2528
 #, possible-c-format
 msgid "Error starting executable via shell: %d"
 msgstr ""
 
-#: windows-nat.c:2605
+#: windows-nat.c:2547
+#, possible-c-format
+msgid "Error converting inferior cwd: %d"
+msgstr ""
+
+#: windows-nat.c:2646
 #, possible-c-format
 msgid "Error in redirection: %s."
 msgstr ""
 
-#: windows-nat.c:2622
+#: windows-nat.c:2663
 #, possible-c-format
 msgid "Warning: Failed to open TTY %s, error %#x."
 msgstr ""
 
-#: windows-nat.c:2706
+#: windows-nat.c:2747
 #, possible-c-format
 msgid "Error creating process %s, (error %u)."
 msgstr ""
 
-#: windows-nat.c:2978
+#: windows-nat.c:3020
 msgid ""
 "Signal a crashed process with event ID, to allow its debugging.\n"
 "This command is needed in support of setting up GDB as JIT debugger on MS-"
@@ -30532,184 +31253,184 @@ msgid ""
 "process will be supplied by the Windows JIT debugging mechanism."
 msgstr ""
 
-#: windows-nat.c:2986
+#: windows-nat.c:3028
 msgid "Set use of shell to start subprocess."
 msgstr ""
 
-#: windows-nat.c:2987
+#: windows-nat.c:3029
 msgid "Show use of shell to start subprocess."
 msgstr ""
 
-#: windows-nat.c:2994
+#: windows-nat.c:3036
 msgid "Break when an exception is detected in the Cygwin DLL itself."
 msgstr ""
 
-#: windows-nat.c:2995
+#: windows-nat.c:3037
 msgid "Show whether gdb breaks on exceptions in the Cygwin DLL itself."
 msgstr ""
 
-#: windows-nat.c:3002
+#: windows-nat.c:3044
 msgid "Set creation of new console when creating child process."
 msgstr ""
 
-#: windows-nat.c:3003
+#: windows-nat.c:3045
 msgid "Show creation of new console when creating child process."
 msgstr ""
 
-#: windows-nat.c:3009
+#: windows-nat.c:3051
 msgid "Set creation of new group when creating child process."
 msgstr ""
 
-#: windows-nat.c:3010
+#: windows-nat.c:3052
 msgid "Show creation of new group when creating child process."
 msgstr ""
 
-#: windows-nat.c:3016
+#: windows-nat.c:3058
 msgid "Set whether to display execution in child process."
 msgstr ""
 
-#: windows-nat.c:3017
+#: windows-nat.c:3059
 msgid "Show whether to display execution in child process."
 msgstr ""
 
-#: windows-nat.c:3023
+#: windows-nat.c:3065
 msgid "Set whether to display kernel events in child process."
 msgstr ""
 
-#: windows-nat.c:3024
+#: windows-nat.c:3066
 msgid "Show whether to display kernel events in child process."
 msgstr ""
 
-#: windows-nat.c:3030
+#: windows-nat.c:3072
 msgid "Set whether to display memory accesses in child process."
 msgstr ""
 
-#: windows-nat.c:3031
+#: windows-nat.c:3073
 msgid "Show whether to display memory accesses in child process."
 msgstr ""
 
-#: windows-nat.c:3038
+#: windows-nat.c:3080
 msgid "Set whether to display kernel exceptions in child process."
 msgstr ""
 
-#: windows-nat.c:3039
+#: windows-nat.c:3081
 msgid "Show whether to display kernel exceptions in child process."
 msgstr ""
 
-#: windows-nat.c:3048
+#: windows-nat.c:3090
 msgid "Display selectors infos."
 msgstr ""
 
-#: windows-nat.c:3062
+#: windows-nat.c:3104
 #, possible-c-format
 msgid "Invalid register %d in cygwin_set_dr.\n"
 msgstr ""
 
-#: windows-nat.c:3149
+#: windows-nat.c:3188
 #, possible-c-format
 msgid "obsolete '%s' found. Rename to '%s'."
 msgstr ""
 
 #. This will probably fail on Windows 9x/Me.  Let the user know
 #. that we're missing some functionality.
-#: windows-nat.c:3277
+#: windows-nat.c:3313
 msgid ""
 "cannot automatically find executable file or library to read symbols.\n"
 "Use \"file\" or \"dll\" command to load executable/libraries directly."
 msgstr ""
 
-#: windows-tdep.c:251
+#: windows-tdep.c:255
 msgid "Unable to read tlb"
 msgstr ""
 
-#: windows-tdep.c:261
+#: windows-tdep.c:265
 msgid "Impossible to change the Thread Local Base"
 msgstr ""
 
-#: windows-tdep.c:325
+#: windows-tdep.c:329
 #, possible-c-format
 msgid "Unable to get thread local base for %s\n"
 msgstr ""
 
-#: windows-tdep.c:333
+#: windows-tdep.c:337
 #, possible-c-format
 msgid "Unable to read thread information block for %s at address %s\n"
 msgstr ""
 
-#: windows-tdep.c:340
+#: windows-tdep.c:344
 #, possible-c-format
 msgid "Thread Information Block %s at %s\n"
 msgstr ""
 
-#: windows-tdep.c:352
+#: windows-tdep.c:356
 #, possible-c-format
 msgid "%s is 0x%s\n"
 msgstr ""
 
-#: windows-tdep.c:354
+#: windows-tdep.c:358
 #, possible-c-format
 msgid "TIB[0x%s] is 0x%s\n"
 msgstr ""
 
-#: windows-tdep.c:440
+#: windows-tdep.c:442
 #, possible-c-format
 msgid "Show all non-zero elements of Thread Information Block is %s.\n"
 msgstr ""
 
-#: windows-tdep.c:457
+#: windows-tdep.c:459
 msgid "Print information specific to Win32 debugging."
 msgstr ""
 
-#: windows-tdep.c:499
+#: windows-tdep.c:498
 msgid "Display thread information block."
 msgstr ""
 
-#: windows-tdep.c:505
+#: windows-tdep.c:504
 msgid "Set whether to display all non-zero fields of thread information block."
 msgstr ""
 
-#: windows-tdep.c:506
+#: windows-tdep.c:505
 msgid ""
 "Show whether to display all non-zero fields of thread information block."
 msgstr ""
 
-#: windows-tdep.c:507
+#: windows-tdep.c:506
 msgid ""
 "Use \"on\" to enable, \"off\" to disable.\n"
 "If enabled, all non-zero fields of thread information block are displayed,\n"
 "even if their meaning is unknown."
 msgstr ""
 
-#: x86-bsd-nat.c:67
+#: x86-bsd-nat.c:72
 msgid "Couldn't read debug registers"
 msgstr ""
 
-#: x86-bsd-nat.c:80
+#: x86-bsd-nat.c:85
 msgid "Couldn't get debug registers"
 msgstr ""
 
-#: x86-bsd-nat.c:94
+#: x86-bsd-nat.c:99
 msgid "Couldn't write debug registers"
 msgstr ""
 
-#: x86-linux-nat.c:141
+#: x86-linux-nat.c:131
 msgid "Couldn't get CS register"
 msgstr ""
 
-#: x86-linux-nat.c:150
+#: x86-linux-nat.c:140
 msgid "Couldn't get DS register"
 msgstr ""
 
-#: x86-linux-nat.c:155
+#: x86-linux-nat.c:145
 msgid "Can't debug 64-bit process with 32-bit GDB"
 msgstr ""
 
-#: x86-linux-nat.c:276
+#: x86-linux-nat.c:225
 #, possible-c-format
 msgid "Could not enable branch tracing for %s: %s."
 msgstr ""
 
-#: x86-linux-nat.c:291
+#: x86-linux-nat.c:240
 msgid "Could not disable branch tracing."
 msgstr ""
 
@@ -30721,11 +31442,11 @@ msgstr ""
 msgid "Show whether to show variables that mirror the x86 debug registers."
 msgstr ""
 
-#: xcoffread.c:184
+#: xcoffread.c:186
 msgid "line numbers off, `.bf' symbol not found"
 msgstr ""
 
-#: xcoffread.c:191
+#: xcoffread.c:193
 #, possible-c-format
 msgid "Mismatched .ef symbol ignored starting at symnum %d"
 msgstr ""
@@ -30735,203 +31456,207 @@ msgstr ""
 #. This can happen with old versions of GCC.
 #. GCC 2.3.3-930426 does not exhibit this on a test case which
 #. a user said produced the message for him.
-#: xcoffread.c:559
+#: xcoffread.c:561
 msgid "Nested C_BINCL symbols"
 msgstr ""
 
-#: xcoffread.c:576
+#: xcoffread.c:578
 msgid "Mismatched C_BINCL/C_EINCL pair"
 msgstr ""
 
-#: xcoffread.c:858
+#: xcoffread.c:860
 msgid "Bad line table offset in C_EINCL directive"
 msgstr ""
 
-#: xcoffread.c:979 xcoffread.c:993
+#: xcoffread.c:981 xcoffread.c:995
 msgid "Unexpected symbol continuation"
 msgstr ""
 
-#: xcoffread.c:1428
+#: xcoffread.c:1450
 #, possible-c-format
 msgid "Unrecognized storage class %d."
 msgstr ""
 
-#: xcoffread.c:1613
+#: xcoffread.c:1635
 #, possible-c-format
 msgid "Unexpected storage class: %d"
 msgstr ""
 
-#: xcoffread.c:1698
+#: xcoffread.c:1720
 msgid "Invalid symbol offset"
 msgstr ""
 
-#: xcoffread.c:1965
+#: xcoffread.c:1984
 #, possible-c-format
 msgid "cannot seek to string table in %s: %s"
 msgstr ""
 
-#: xcoffread.c:1992
+#: xcoffread.c:2011
 #, possible-c-format
 msgid "cannot read string table from %s: %s"
 msgstr ""
 
-#: xcoffread.c:1995
+#: xcoffread.c:2014
 msgid "bad symbol file: string table does not end with null character"
 msgstr ""
 
-#: xcoffread.c:2357
+#: xcoffread.c:2377
 msgid "More than one XMC_TC0 symbol found."
 msgstr ""
 
-#: xcoffread.c:2509
+#: xcoffread.c:2529
 #, possible-c-format
 msgid "Storage class %d not recognized during scan"
 msgstr ""
 
-#: xcoffread.c:2979
+#: xcoffread.c:3000
 #, possible-c-format
 msgid "Error reading .debug section of `%s': %s"
 msgstr ""
 
-#: xcoffread.c:2992
+#: xcoffread.c:3013
 #, possible-c-format
 msgid "Error reading symbols from %s: %s"
 msgstr ""
 
-#: xcoffread.c:3000
+#: xcoffread.c:3021
 msgid "reading symbol table"
 msgstr ""
 
-#: xml-support.c:193
+#: xml-support.c:286
 #, possible-c-format
 msgid "Entering element <%s>"
 msgstr ""
 
-#: xml-support.c:220
+#: xml-support.c:311
 #, possible-c-format
 msgid "Element <%s> unknown"
 msgstr ""
 
-#: xml-support.c:225
+#: xml-support.c:316
 #, possible-c-format
 msgid "Element <%s> only expected once"
 msgstr ""
 
-#: xml-support.c:249
+#: xml-support.c:340
 #, possible-c-format
 msgid "Attribute \"%s\" missing a value"
 msgstr ""
 
-#: xml-support.c:256
+#: xml-support.c:347
 #, possible-c-format
 msgid "Required attribute \"%s\" of <%s> not specified"
 msgstr ""
 
-#: xml-support.c:265
+#: xml-support.c:356
 #, possible-c-format
 msgid "Parsing attribute %s=\"%s\""
 msgstr ""
 
-#: xml-support.c:292
+#: xml-support.c:383
 #, possible-c-format
 msgid "Ignoring unknown attribute %s"
 msgstr ""
 
-#: xml-support.c:345
+#: xml-support.c:434
 #, possible-c-format
 msgid "Leaving element <%s>"
 msgstr ""
 
-#: xml-support.c:352
+#: xml-support.c:441
 #, possible-c-format
 msgid "Required element <%s> is missing"
 msgstr ""
 
-#: xml-support.c:505
+#: xml-support.c:552
 #, possible-c-format
 msgid "could not locate built-in DTD %s"
 msgstr ""
 
-#: xml-support.c:550
+#: xml-support.c:595
 #, possible-c-format
 msgid "XML_UseForeignDTD failed: %s"
 msgstr ""
 
-#: xml-support.c:567
+#: xml-support.c:612
 #, possible-c-format
 msgid ""
 "Starting:\n"
 "%s"
 msgstr ""
 
-#: xml-support.c:593
+#: xml-support.c:638
 #, possible-c-format
 msgid "while parsing %s (at line %d): %s"
 msgstr ""
 
-#: xml-support.c:596
+#: xml-support.c:641
 #, possible-c-format
 msgid "while parsing %s: %s"
 msgstr ""
 
-#: xml-support.c:653
+#: xml-support.c:689
 #, possible-c-format
 msgid "Can't convert \"%s\" to an integer"
 msgstr ""
 
-#: xml-support.c:669
+#: xml-support.c:705
 #, possible-c-format
 msgid "Can't convert %s=\"%s\" to an integer"
 msgstr ""
 
-#: xml-support.c:705
+#: xml-support.c:741
 #, possible-c-format
 msgid "Unknown attribute value %s=\"%s\""
 msgstr ""
 
-#: xml-support.c:768
+#: xml-support.c:812
 #, possible-c-format
 msgid "Processing XInclude of \"%s\""
 msgstr ""
 
-#: xml-support.c:771
+#: xml-support.c:815
 #, possible-c-format
 msgid "Maximum XInclude depth (%d) exceeded"
 msgstr ""
 
-#: xml-support.c:776
+#: xml-support.c:821
 #, possible-c-format
 msgid "Could not load XML document \"%s\""
 msgstr ""
 
-#: xml-support.c:783
+#: xml-support.c:827
 #, possible-c-format
 msgid "Parsing \"%s\" failed"
 msgstr ""
 
-#: xml-support.c:921
+#: xml-support.c:934
 msgid "XInclude processing succeeded."
 msgstr ""
 
-#: xml-support.c:982
+#: xml-support.c:993
 #, possible-c-format
 msgid "XML debugging is %s.\n"
 msgstr ""
 
-#: xml-support.c:1065
+#: xml-support.c:1022
+msgid "seek to end of file"
+msgstr ""
+
+#: xml-support.c:1031
 #, possible-c-format
 msgid "Read error from \"%s\""
 msgstr ""
 
-#: xml-support.c:1092
+#: xml-support.c:1043
 msgid "Set XML parser debugging."
 msgstr ""
 
-#: xml-support.c:1093
+#: xml-support.c:1044
 msgid "Show XML parser debugging."
 msgstr ""
 
-#: xml-support.c:1094
+#: xml-support.c:1045
 msgid "When set, debugging messages for XML parsers are displayed."
 msgstr ""
 
@@ -30941,167 +31666,166 @@ msgid ""
 "time."
 msgstr ""
 
-#: xml-syscall.c:303
+#: xml-syscall.c:252
 #, possible-c-format
 msgid "Unknown attribute name '%s'."
 msgstr ""
 
-#: xml-syscall.c:342
+#: xml-syscall.c:290
 msgid "syscalls info"
 msgstr ""
 
-#: xml-syscall.c:351
+#: xml-syscall.c:298
 msgid "Could not load XML syscalls info; ignoring"
 msgstr ""
 
-#: xml-syscall.c:417
+#: xml-syscall.c:356
 #, possible-c-format
 msgid "Could not load the syscall XML file `%s/%s'."
 msgstr ""
 
-#: xml-syscall.c:420
+#: xml-syscall.c:359
 msgid "There is no XML file to open."
 msgstr ""
 
-#: xml-syscall.c:422
+#: xml-syscall.c:361
 msgid ""
 "GDB will not be able to display syscall names nor to verify if\n"
 "any provided syscall numbers are valid."
 msgstr ""
 
-#: xml-tdesc.c:50
+#: xml-tdesc.c:52
 msgid ""
 "Can not parse XML target description; XML support was disabled at compile "
 "time"
 msgstr ""
 
-#: xml-tdesc.c:111
+#: xml-tdesc.c:105
 #, possible-c-format
 msgid "Target description specified unknown architecture \"%s\""
 msgstr ""
 
-#: xml-tdesc.c:128
+#: xml-tdesc.c:122
 #, possible-c-format
 msgid "Target description specified unknown osabi \"%s\""
 msgstr ""
 
-#: xml-tdesc.c:159
+#: xml-tdesc.c:153
 #, possible-c-format
 msgid "Target description has unsupported version \"%s\""
 msgstr ""
 
-#: xml-tdesc.c:219
+#: xml-tdesc.c:213
 #, possible-c-format
 msgid "Register \"%s\" has unknown type \"%s\""
 msgstr ""
 
-#: xml-tdesc.c:268
+#: xml-tdesc.c:262
 #, possible-c-format
 msgid "Struct size %s is larger than maximum (%d)"
 msgstr ""
 
-#: xml-tdesc.c:290
+#: xml-tdesc.c:283
 #, possible-c-format
 msgid "Flags size %s is larger than maximum (%d)"
 msgstr ""
 
-#: xml-tdesc.c:313
+#: xml-tdesc.c:304
 #, possible-c-format
 msgid "Enum size %s is larger than maximum (%d)"
 msgstr ""
 
-#: xml-tdesc.c:358
+#: xml-tdesc.c:348
 #, possible-c-format
 msgid "Field start %s is larger than maximum (%d)"
 msgstr ""
 
-#: xml-tdesc.c:374
+#: xml-tdesc.c:364
 #, possible-c-format
 msgid "Field end %s is larger than maximum (%d)"
 msgstr ""
 
-#: xml-tdesc.c:390
+#: xml-tdesc.c:380
 msgid "Missing end value"
 msgstr ""
 
-#: xml-tdesc.c:394
+#: xml-tdesc.c:384
 msgid "Bitfields must live in explicitly sized types"
 msgstr ""
 
-#: xml-tdesc.c:401
+#: xml-tdesc.c:391
 msgid "Boolean fields must be one bit in size"
 msgstr ""
 
-#: xml-tdesc.c:406
+#: xml-tdesc.c:396
 #, possible-c-format
 msgid "Bitfield \"%s\" goes past 64 bits (unsupported)"
 msgstr ""
 
-#: xml-tdesc.c:414
+#: xml-tdesc.c:404
 #, possible-c-format
 msgid "Bitfield \"%s\" has start after end"
 msgstr ""
 
-#: xml-tdesc.c:417
+#: xml-tdesc.c:407
 #, possible-c-format
 msgid "Bitfield \"%s\" does not fit in struct"
 msgstr ""
 
-#: xml-tdesc.c:428
+#: xml-tdesc.c:418
 msgid "End specified but not start"
 msgstr ""
 
-#: xml-tdesc.c:435
+#: xml-tdesc.c:425
 #, possible-c-format
 msgid "Explicitly sized type cannot contain non-bitfield \"%s\""
 msgstr ""
 
-#: xml-tdesc.c:440
+#: xml-tdesc.c:430
 #, possible-c-format
 msgid "Field \"%s\" references undefined type \"%s\""
 msgstr ""
 
-#: xml-tdesc.c:447
+#: xml-tdesc.c:437
 #, possible-c-format
 msgid "Field \"%s\" has neither type nor bit position"
 msgstr ""
 
-#: xml-tdesc.c:472
+#: xml-tdesc.c:462
 #, possible-c-format
 msgid "Enum value %s is larger than maximum (%d)"
 msgstr ""
 
-#: xml-tdesc.c:501
+#: xml-tdesc.c:491
 #, possible-c-format
 msgid "Vector size %s is larger than maximum (%d)"
 msgstr ""
 
-#: xml-tdesc.c:507
+#: xml-tdesc.c:497
 #, possible-c-format
 msgid "Vector \"%s\" references undefined type \"%s\""
 msgstr ""
 
-#. Expand all XInclude directives.
-#: xml-tdesc.c:641 xml-tdesc.c:666 xml-tdesc.c:787
+#: xml-tdesc.c:630 xml-tdesc.c:648 xml-tdesc.c:746
 msgid "target description"
 msgstr ""
 
-#: xml-tdesc.c:645 xml-tdesc.c:681 xml-tdesc.c:793
+#: xml-tdesc.c:633 xml-tdesc.c:658 xml-tdesc.c:750
 msgid "Could not load XML target description; ignoring"
 msgstr ""
 
-#: xml-tdesc.c:702
+#: xml-tdesc.c:676
 #, possible-c-format
 msgid "Could not open \"%s\""
 msgstr ""
 
-#: xml-tdesc.c:771
+#: xml-tdesc.c:733
 msgid ""
 "Can not fetch XML target description; XML support was disabled at compile "
 "time"
 msgstr ""
 
-#: xstormy16-tdep.c:114
+#: xstormy16-tdep.c:113
 #, possible-c-format
 msgid "xstormy16_register_name: illegal register number %d"
 msgstr ""
@@ -31114,129 +31838,129 @@ msgstr ""
 msgid "Couldn't write extended registers"
 msgstr ""
 
-#: xtensa-tdep.c:254
+#: xtensa-tdep.c:256
 #, possible-c-format
 msgid "invalid register %d"
 msgstr ""
 
-#: xtensa-tdep.c:422 xtensa-tdep.c:501
+#: xtensa-tdep.c:424 xtensa-tdep.c:503
 msgid "size of all masks is larger than the register"
 msgstr ""
 
-#: xtensa-tdep.c:604
+#: xtensa-tdep.c:603
 #, possible-c-format
 msgid "cannot read register %s"
 msgstr ""
 
-#: xtensa-tdep.c:616 xtensa-tdep.c:623
+#: xtensa-tdep.c:615 xtensa-tdep.c:622
 msgid "cannot read register"
 msgstr ""
 
-#: xtensa-tdep.c:694
+#: xtensa-tdep.c:689
 #, possible-c-format
 msgid "cannot write register %s"
 msgstr ""
 
-#: xtensa-tdep.c:706 xtensa-tdep.c:714
+#: xtensa-tdep.c:701 xtensa-tdep.c:709
 msgid "cannot write register"
 msgstr ""
 
-#: xtensa-tdep.c:1418
+#: xtensa-tdep.c:1409
 msgid ""
 "\n"
 "Unrecognised function prologue. Stack trace cannot be resolved. This message "
 "will not be repeated in this session.\n"
 msgstr ""
 
-#: xtensa-tdep.c:1585
+#: xtensa-tdep.c:1576
 #, possible-c-format
 msgid "cannot extract return value of %d bytes long"
 msgstr ""
 
-#: xtensa-tdep.c:1640
+#: xtensa-tdep.c:1631
 #, possible-c-format
 msgid "unimplemented for this length: %d"
 msgstr ""
 
-#: xtensa-tdep.c:2444
+#: xtensa-tdep.c:2435
 msgid "Unable to read target memory ..."
 msgstr ""
 
-#: xtensa-tdep.c:2940
+#: xtensa-tdep.c:2931
 msgid "Unable to decode Xtensa Window Interrupt Handler's code."
 msgstr ""
 
-#: xtensa-tdep.c:2971
+#: xtensa-tdep.c:2962
 msgid "Unable to read Xtensa register EPC1"
 msgstr ""
 
-#: xtensa-tdep.c:3067
+#: xtensa-tdep.c:3058
 #, c-format
 msgid ""
 "\n"
 "\tnum_aregs: Number of AR registers (%d) is not a power of two!"
 msgstr ""
 
-#: xtensa-tdep.c:3074
+#: xtensa-tdep.c:3065
 #, c-format
 msgid ""
 "\n"
 "\tpc_regnum: No PC register"
 msgstr ""
 
-#: xtensa-tdep.c:3076
+#: xtensa-tdep.c:3067
 #, c-format
 msgid ""
 "\n"
 "\tps_regnum: No PS register"
 msgstr ""
 
-#: xtensa-tdep.c:3081
+#: xtensa-tdep.c:3072
 #, c-format
 msgid ""
 "\n"
 "\twb_regnum: No WB register"
 msgstr ""
 
-#: xtensa-tdep.c:3083
+#: xtensa-tdep.c:3074
 #, c-format
 msgid ""
 "\n"
 "\tws_regnum: No WS register"
 msgstr ""
 
-#: xtensa-tdep.c:3085
+#: xtensa-tdep.c:3076
 #, c-format
 msgid ""
 "\n"
 "\tar_base: No AR registers"
 msgstr ""
 
-#: xtensa-tdep.c:3089
+#: xtensa-tdep.c:3080
 #, c-format
 msgid ""
 "\n"
 "\ta0_base: No Ax registers"
 msgstr ""
 
-#: xtensa-tdep.c:3093
+#: xtensa-tdep.c:3084
 #, possible-c-format
 msgid "the following are invalid: %s"
 msgstr ""
 
-#: xtensa-tdep.c:3284
+#: xtensa-tdep.c:3273
 msgid "xtensa_dump_tdep(): not implemented"
 msgstr ""
 
-#: xtensa-tdep.c:3299
+#: xtensa-tdep.c:3285
 msgid "Set Xtensa debugging."
 msgstr ""
 
-#: xtensa-tdep.c:3300
+#: xtensa-tdep.c:3286
 msgid "Show Xtensa debugging."
 msgstr ""
 
-#: xtensa-tdep.c:3300
+#: xtensa-tdep.c:3286
 msgid ""
 "When non-zero, Xtensa-specific debugging is enabled. Can be 1, 2, 3, or 4 "
 "indicating the level of debugging."
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/posix-hdep.c ./gdb/posix-hdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/posix-hdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/posix-hdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Host support routines for MinGW, for GDB, the GNU debugger.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc64-tdep.c ./gdb/ppc64-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc64-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc64-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common target-dependent code for ppc64 GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -49,15 +49,30 @@
    | (((spr) & 0x3e0) << 6)                     \
    | (((xo) & 0x3ff) << 1))
 
-/* If PLT is the address of a 64-bit PowerPC PLT entry,
-   return the function's entry point.  */
+/* PLT_OFF is the TOC-relative offset of a 64-bit PowerPC PLT entry.
+   Return the function's entry point.  */
 
 static CORE_ADDR
-ppc64_plt_entry_point (struct gdbarch *gdbarch, CORE_ADDR plt)
+ppc64_plt_entry_point (struct frame_info *frame, CORE_ADDR plt_off)
 {
+  struct gdbarch *gdbarch = get_frame_arch (frame);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  CORE_ADDR tocp;
+
+  if (execution_direction == EXEC_REVERSE)
+    {
+      /* If executing in reverse, r2 will have been stored to the stack.  */
+      CORE_ADDR sp = get_frame_register_unsigned (frame,
+						  tdep->ppc_gp0_regnum + 1);
+      unsigned int sp_off = tdep->elf_abi == POWERPC_ELF_V1 ? 40 : 24;
+      tocp = read_memory_unsigned_integer (sp + sp_off, 8, byte_order);
+    }
+  else
+    tocp = get_frame_register_unsigned (frame, tdep->ppc_gp0_regnum + 2);
+
   /* The first word of the PLT entry is the function entry point.  */
-  return (CORE_ADDR) read_memory_unsigned_integer (plt, 8, byte_order);
+  return read_memory_unsigned_integer (tocp + plt_off, 8, byte_order);
 }
 
 /* Patterns for the standard linkage functions.  These are built by
@@ -377,74 +392,44 @@ static struct ppc_insn_pattern ppc64_sta
    the linkage function.  */
 
 /* If the current thread is about to execute a series of instructions
-   at PC matching the ppc64_standard_linkage pattern, and INSN is the result
+   matching the ppc64_standard_linkage pattern, and INSN is the result
    from that pattern match, return the code address to which the
    standard linkage function will send them.  (This doesn't deal with
    dynamic linker lazy symbol resolution stubs.)  */
 
 static CORE_ADDR
-ppc64_standard_linkage1_target (struct frame_info *frame,
-				CORE_ADDR pc, unsigned int *insn)
+ppc64_standard_linkage1_target (struct frame_info *frame, unsigned int *insn)
 {
-  struct gdbarch *gdbarch = get_frame_arch (frame);
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
-  /* The address of the PLT entry this linkage function references.  */
-  CORE_ADDR plt
-    = ((CORE_ADDR) get_frame_register_unsigned (frame,
-						tdep->ppc_gp0_regnum + 2)
-       + (ppc_insn_d_field (insn[0]) << 16)
-       + ppc_insn_ds_field (insn[2]));
+  CORE_ADDR plt_off = ((ppc_insn_d_field (insn[0]) << 16)
+		       + ppc_insn_ds_field (insn[2]));
 
-  return ppc64_plt_entry_point (gdbarch, plt);
+  return ppc64_plt_entry_point (frame, plt_off);
 }
 
 static CORE_ADDR
-ppc64_standard_linkage2_target (struct frame_info *frame,
-				CORE_ADDR pc, unsigned int *insn)
+ppc64_standard_linkage2_target (struct frame_info *frame, unsigned int *insn)
 {
-  struct gdbarch *gdbarch = get_frame_arch (frame);
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
-  /* The address of the PLT entry this linkage function references.  */
-  CORE_ADDR plt
-    = ((CORE_ADDR) get_frame_register_unsigned (frame,
-						tdep->ppc_gp0_regnum + 2)
-       + (ppc_insn_d_field (insn[1]) << 16)
-       + ppc_insn_ds_field (insn[3]));
+  CORE_ADDR plt_off = ((ppc_insn_d_field (insn[1]) << 16)
+		       + ppc_insn_ds_field (insn[3]));
 
-  return ppc64_plt_entry_point (gdbarch, plt);
+  return ppc64_plt_entry_point (frame, plt_off);
 }
 
 static CORE_ADDR
-ppc64_standard_linkage3_target (struct frame_info *frame,
-				CORE_ADDR pc, unsigned int *insn)
+ppc64_standard_linkage3_target (struct frame_info *frame, unsigned int *insn)
 {
-  struct gdbarch *gdbarch = get_frame_arch (frame);
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  CORE_ADDR plt_off = ppc_insn_ds_field (insn[1]);
 
-  /* The address of the PLT entry this linkage function references.  */
-  CORE_ADDR plt
-    = ((CORE_ADDR) get_frame_register_unsigned (frame,
-						tdep->ppc_gp0_regnum + 2)
-       + ppc_insn_ds_field (insn[1]));
-
-  return ppc64_plt_entry_point (gdbarch, plt);
+  return ppc64_plt_entry_point (frame, plt_off);
 }
 
 static CORE_ADDR
-ppc64_standard_linkage4_target (struct frame_info *frame,
-				CORE_ADDR pc, unsigned int *insn)
+ppc64_standard_linkage4_target (struct frame_info *frame, unsigned int *insn)
 {
-  struct gdbarch *gdbarch = get_frame_arch (frame);
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
-  CORE_ADDR plt
-    = ((CORE_ADDR) get_frame_register_unsigned (frame, tdep->ppc_gp0_regnum + 2)
-       + (ppc_insn_d_field (insn[1]) << 16)
-       + ppc_insn_ds_field (insn[2]));
+  CORE_ADDR plt_off = ((ppc_insn_d_field (insn[1]) << 16)
+		       + ppc_insn_ds_field (insn[2]));
 
-  return ppc64_plt_entry_point (gdbarch, plt);
+  return ppc64_plt_entry_point (frame, plt_off);
 }
 
 
@@ -480,39 +465,39 @@ ppc64_skip_trampoline_code_1 (struct fra
     {
       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);
+	pc = ppc64_standard_linkage4_target (frame, 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);
+	pc = ppc64_standard_linkage3_target (frame, 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);
+	pc = ppc64_standard_linkage4_target (frame, 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);
+	pc = ppc64_standard_linkage3_target (frame, 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);
+	pc = ppc64_standard_linkage4_target (frame, 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);
+	pc = ppc64_standard_linkage3_target (frame, 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);
+	pc = ppc64_standard_linkage2_target (frame, 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);
+	pc = ppc64_standard_linkage1_target (frame, insns);
       else
 	{
 	  /* Scan backward one more instructions if doesn't match.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc64-tdep.h ./gdb/ppc64-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc64-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc64-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Common target-dependent code for ppc64.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-fbsd-nat.c ./gdb/ppc-fbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-fbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-fbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for PowerPC's running FreeBSD, for GDB.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -127,7 +127,7 @@ ppcfbsd_fetch_inferior_registers (struct
 
   supply_gregset (regcache, &regs);
 
-  if (regno == -1 || getfpregs_supplies (get_regcache_arch (regcache), regno))
+  if (regno == -1 || getfpregs_supplies (regcache->arch (), regno))
     {
       const struct regset *fpregset = ppc_fbsd_fpregset ();
       gdb_fpregset_t fpregs;
@@ -157,7 +157,7 @@ ppcfbsd_store_inferior_registers (struct
   if (ptrace (PT_SETREGS, pid, (PTRACE_TYPE_ARG3) &regs, 0) == -1)
     perror_with_name (_("Couldn't write registers"));
 
-  if (regno == -1 || getfpregs_supplies (get_regcache_arch (regcache), regno))
+  if (regno == -1 || getfpregs_supplies (regcache->arch (), regno))
     {
       gdb_fpregset_t fpregs;
 
@@ -178,7 +178,7 @@ ppcfbsd_store_inferior_registers (struct
 static int
 ppcfbsd_supply_pcb (struct regcache *regcache, struct pcb *pcb)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int i, regnum;
 
@@ -195,10 +195,6 @@ ppcfbsd_supply_pcb (struct regcache *reg
   return 1;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-
-void _initialize_ppcfbsd_nat (void);
-
 void
 _initialize_ppcfbsd_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-fbsd-tdep.c ./gdb/ppc-fbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-fbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-fbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for PowerPC systems running FreeBSD.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -336,10 +336,6 @@ ppcfbsd_init_abi (struct gdbarch_info in
 					     svr4_fetch_objfile_link_map);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-
-void _initialize_ppcfbsd_tdep (void);
-
 void
 _initialize_ppcfbsd_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-fbsd-tdep.h ./gdb/ppc-fbsd-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-fbsd-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-fbsd-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GDB on PowerPC systems running FreeBSD.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-linux-nat.c ./gdb/ppc-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* PPC GNU/Linux native support.
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -359,7 +359,7 @@ fetch_vsx_register (struct regcache *reg
 {
   int ret;
   gdb_vsxregset_t regs;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int vsxregsize = register_size (gdbarch, tdep->ppc_vsr0_upper_regnum);
 
@@ -388,7 +388,7 @@ fetch_altivec_register (struct regcache 
   int ret;
   int offset = 0;
   gdb_vrregset_t regs;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int vrregsize = register_size (gdbarch, tdep->ppc_vr0_regnum);
 
@@ -452,7 +452,7 @@ get_spe_registers (int tid, struct gdb_e
 static void
 fetch_spe_register (struct regcache *regcache, int tid, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   struct gdb_evrregset_t evrregs;
 
@@ -491,13 +491,13 @@ fetch_spe_register (struct regcache *reg
 static void
 fetch_register (struct regcache *regcache, int tid, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   /* This isn't really an address.  But ptrace thinks of it as one.  */
   CORE_ADDR regaddr = ppc_register_u_addr (gdbarch, regno);
   int bytes_transferred;
   unsigned int offset;         /* Offset of registers within the u area.  */
-  gdb_byte buf[MAX_REGISTER_SIZE];
+  gdb_byte buf[PPC_MAX_REGISTER_SIZE];
 
   if (altivec_register_p (gdbarch, regno))
     {
@@ -583,7 +583,7 @@ static void
 supply_vsxregset (struct regcache *regcache, gdb_vsxregset_t *vsxregsetp)
 {
   int i;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int vsxregsize = register_size (gdbarch, tdep->ppc_vsr0_upper_regnum);
 
@@ -598,7 +598,7 @@ static void
 supply_vrregset (struct regcache *regcache, gdb_vrregset_t *vrregsetp)
 {
   int i;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int num_of_vrregs = tdep->ppc_vrsave_regnum - tdep->ppc_vr0_regnum + 1;
   int vrregsize = register_size (gdbarch, tdep->ppc_vr0_regnum);
@@ -668,7 +668,7 @@ fetch_altivec_registers (struct regcache
 static int
 fetch_all_gp_regs (struct regcache *regcache, int tid)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   gdb_gregset_t gregset;
 
@@ -696,7 +696,7 @@ fetch_all_gp_regs (struct regcache *regc
 static void
 fetch_gp_regs (struct regcache *regcache, int tid)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int i;
 
@@ -748,7 +748,7 @@ fetch_all_fp_regs (struct regcache *regc
 static void
 fetch_fp_regs (struct regcache *regcache, int tid)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int i;
 
@@ -767,7 +767,7 @@ static void 
 fetch_ppc_registers (struct regcache *regcache, int tid)
 {
   int i;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   fetch_gp_regs (regcache, tid);
@@ -824,7 +824,7 @@ store_vsx_register (const struct regcach
 {
   int ret;
   gdb_vsxregset_t regs;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int vsxregsize = register_size (gdbarch, tdep->ppc_vsr0_upper_regnum);
 
@@ -854,7 +854,7 @@ store_altivec_register (const struct reg
   int ret;
   int offset = 0;
   gdb_vrregset_t regs;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int vrregsize = register_size (gdbarch, tdep->ppc_vr0_regnum);
 
@@ -918,7 +918,7 @@ set_spe_registers (int tid, struct gdb_e
 static void
 store_spe_register (const struct regcache *regcache, int tid, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   struct gdb_evrregset_t evrregs;
 
@@ -973,13 +973,13 @@ store_spe_register (const struct regcach
 static void
 store_register (const struct regcache *regcache, int tid, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   /* This isn't really an address.  But ptrace thinks of it as one.  */
   CORE_ADDR regaddr = ppc_register_u_addr (gdbarch, regno);
   int i;
   size_t bytes_to_transfer;
-  gdb_byte buf[MAX_REGISTER_SIZE];
+  gdb_byte buf[PPC_MAX_REGISTER_SIZE];
 
   if (altivec_register_p (gdbarch, regno))
     {
@@ -1050,7 +1050,7 @@ static void
 fill_vsxregset (const struct regcache *regcache, gdb_vsxregset_t *vsxregsetp)
 {
   int i;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int vsxregsize = register_size (gdbarch, tdep->ppc_vsr0_upper_regnum);
 
@@ -1063,7 +1063,7 @@ static void
 fill_vrregset (const struct regcache *regcache, gdb_vrregset_t *vrregsetp)
 {
   int i;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int num_of_vrregs = tdep->ppc_vrsave_regnum - tdep->ppc_vr0_regnum + 1;
   int vrregsize = register_size (gdbarch, tdep->ppc_vr0_regnum);
@@ -1139,7 +1139,7 @@ store_altivec_registers (const struct re
 static int
 store_all_gp_regs (const struct regcache *regcache, int tid, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   gdb_gregset_t gregset;
 
@@ -1177,7 +1177,7 @@ store_all_gp_regs (const struct regcache
 static void
 store_gp_regs (const struct regcache *regcache, int tid, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int i;
 
@@ -1239,7 +1239,7 @@ store_all_fp_regs (const struct regcache
 static void
 store_fp_regs (const struct regcache *regcache, int tid, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int i;
 
@@ -1258,7 +1258,7 @@ static void
 store_ppc_registers (const struct regcache *regcache, int tid)
 {
   int i;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
  
   store_gp_regs (regcache, tid, -1);
@@ -1541,16 +1541,13 @@ hwdebug_insert_point (struct ppc_hw_brea
 {
   int i;
   long slot;
-  struct ppc_hw_breakpoint *p = XNEW (struct ppc_hw_breakpoint);
+  gdb::unique_xmalloc_ptr<ppc_hw_breakpoint> p (XDUP (ppc_hw_breakpoint, b));
   struct hw_break_tuple *hw_breaks;
-  struct cleanup *c = make_cleanup (xfree, p);
   struct thread_points *t;
   struct hw_break_tuple *tuple;
 
-  memcpy (p, b, sizeof (struct ppc_hw_breakpoint));
-
   errno = 0;
-  slot = ptrace (PPC_PTRACE_SETHWDEBUG, tid, 0, p);
+  slot = ptrace (PPC_PTRACE_SETHWDEBUG, tid, 0, p.get ());
   if (slot < 0)
     perror_with_name (_("Unexpected error setting breakpoint or watchpoint"));
 
@@ -1564,13 +1561,11 @@ hwdebug_insert_point (struct ppc_hw_brea
     if (hw_breaks[i].hw_break == NULL)
       {
 	hw_breaks[i].slot = slot;
-	hw_breaks[i].hw_break = p;
+	hw_breaks[i].hw_break = p.release ();
 	break;
       }
 
   gdb_assert (i != max_slots_number);
-
-  discard_cleanups (c);
 }
 
 /* This function is a generic wrapper that is responsible for removing a
@@ -2473,8 +2468,6 @@ ppc_linux_read_description (struct targe
   return isa205? tdesc_powerpc_isa205_32l : tdesc_powerpc_32l;
 }
 
-void _initialize_ppc_linux_nat (void);
-
 void
 _initialize_ppc_linux_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-linux-tdep.c ./gdb/ppc-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -60,7 +60,7 @@
 #include "parser-defs.h"
 #include "user-regs.h"
 #include <ctype.h>
-#include "elf-bfd.h"            /* for elfcore_write_* */
+#include "elf-bfd.h"
 
 #include "features/rs6000/powerpc-32l.c"
 #include "features/rs6000/powerpc-altivec32l.c"
@@ -218,13 +218,13 @@ ppc_linux_memory_remove_breakpoint (stru
   int val;
   int bplen;
   gdb_byte old_contents[BREAKPOINT_MAX];
-  struct cleanup *cleanup;
 
   /* Determine appropriate breakpoint contents and size for this address.  */
   bp = gdbarch_breakpoint_from_pc (gdbarch, &addr, &bplen);
 
   /* Make sure we see the memory breakpoints.  */
-  cleanup = make_show_memory_breakpoints_cleanup (1);
+  scoped_restore restore_memory
+    = make_scoped_restore_show_memory_breakpoints (1);
   val = target_read_memory (addr, old_contents, bplen);
 
   /* If our breakpoint is no longer at the address, this means that the
@@ -233,7 +233,6 @@ ppc_linux_memory_remove_breakpoint (stru
   if (val == 0 && memcmp (bp, old_contents, bplen) == 0)
     val = target_write_raw_memory (addr, bp_tgt->shadow_contents, bplen);
 
-  do_cleanups (cleanup);
   return val;
 }
 
@@ -376,7 +375,7 @@ ppc_linux_supply_gregset (const struct r
 
   ppc_supply_gregset (regset, regcache, regnum, gregs, len);
 
-  if (ppc_linux_trap_reg_p (get_regcache_arch (regcache)))
+  if (ppc_linux_trap_reg_p (regcache->arch ()))
     {
       /* "orig_r3" is stored 2 slots after "pc".  */
       if (regnum == -1 || regnum == PPC_ORIG_R3_REGNUM)
@@ -406,7 +405,7 @@ ppc_linux_collect_gregset (const struct 
 
   ppc_collect_gregset (regset, regcache, regnum, gregs, len);
 
-  if (ppc_linux_trap_reg_p (get_regcache_arch (regcache)))
+  if (ppc_linux_trap_reg_p (regcache->arch ()))
     {
       /* "orig_r3" is stored 2 slots after "pc".  */
       if (regnum == -1 || regnum == PPC_ORIG_R3_REGNUM)
@@ -726,28 +725,19 @@ ppc_linux_get_syscall_number (struct gdb
   struct regcache *regcache = get_thread_regcache (ptid);
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  struct cleanup *cleanbuf;
-  /* The content of a register */
-  gdb_byte *buf;
-  /* The result */
-  LONGEST ret;
 
   /* Make sure we're in a 32- or 64-bit machine */
   gdb_assert (tdep->wordsize == 4 || tdep->wordsize == 8);
 
-  buf = (gdb_byte *) xmalloc (tdep->wordsize * sizeof (gdb_byte));
-
-  cleanbuf = make_cleanup (xfree, buf);
+  /* The content of a register */
+  gdb::byte_vector buf (tdep->wordsize);
 
   /* Getting the system call number from the register.
      When dealing with PowerPC architecture, this information
      is stored at 0th register.  */
-  regcache_cooked_read (regcache, tdep->ppc_gp0_regnum, buf);
+  regcache_cooked_read (regcache, tdep->ppc_gp0_regnum, buf.data ());
 
-  ret = extract_signed_integer (buf, tdep->wordsize, byte_order);
-  do_cleanups (cleanbuf);
-
-  return ret;
+  return extract_signed_integer (buf.data (), tdep->wordsize, byte_order);
 }
 
 /* PPC process record-replay */
@@ -799,7 +789,7 @@ ppc_canonicalize_syscall (int syscall)
 static int
 ppc_linux_syscall_record (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   ULONGEST scnum;
   enum gdb_syscall syscall_gdb;
@@ -928,7 +918,7 @@ ppc_linux_record_signal (struct gdbarch 
 static void
 ppc_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   regcache_cooked_write_unsigned (regcache, gdbarch_pc_regnum (gdbarch), pc);
 
@@ -1258,7 +1248,7 @@ static struct gdbarch *
 ppu2spu_prev_arch (struct frame_info *this_frame, void **this_cache)
 {
   struct ppu2spu_cache *cache = (struct ppu2spu_cache *) *this_cache;
-  return get_regcache_arch (cache->regcache);
+  return cache->regcache->arch ();
 }
 
 static void
@@ -1274,7 +1264,7 @@ ppu2spu_prev_register (struct frame_info
 		       void **this_cache, int regnum)
 {
   struct ppu2spu_cache *cache = (struct ppu2spu_cache *) *this_cache;
-  struct gdbarch *gdbarch = get_regcache_arch (cache->regcache);
+  struct gdbarch *gdbarch = cache->regcache->arch ();
   gdb_byte *buf;
 
   buf = (gdb_byte *) alloca (register_size (gdbarch, regnum));
@@ -1350,7 +1340,7 @@ ppu2spu_sniffer (const struct frame_unwi
       info.bfd_arch_info = bfd_lookup_arch (bfd_arch_spu, bfd_mach_spu);
       info.byte_order = BFD_ENDIAN_BIG;
       info.osabi = GDB_OSABI_LINUX;
-      info.tdep_info = &data.id;
+      info.id = &data.id;
       data.gdbarch = gdbarch_find_by_info (info);
       if (!data.gdbarch)
 	return 0;
@@ -1362,15 +1352,13 @@ ppu2spu_sniffer (const struct frame_unwi
 	{
 	  struct ppu2spu_cache *cache
 	    = FRAME_OBSTACK_CALLOC (1, struct ppu2spu_cache);
+	  std::unique_ptr<struct regcache> regcache
+	    (new struct regcache (data.gdbarch));
 
-	  struct address_space *aspace = get_frame_address_space (this_frame);
-	  struct regcache *regcache = regcache_xmalloc (data.gdbarch, aspace);
-	  struct cleanup *cleanups = make_cleanup_regcache_xfree (regcache);
-	  regcache_save (regcache, ppu2spu_unwind_register, &data);
-	  discard_cleanups (cleanups);
+	  regcache_save (regcache.get (), ppu2spu_unwind_register, &data);
 
 	  cache->frame_id = frame_id_build (base, func);
-	  cache->regcache = regcache;
+	  cache->regcache = regcache.release ();
 	  *this_prologue_cache = cache;
 	  return 1;
 	}
@@ -1383,7 +1371,7 @@ static void
 ppu2spu_dealloc_cache (struct frame_info *self, void *this_cache)
 {
   struct ppu2spu_cache *cache = (struct ppu2spu_cache *) this_cache;
-  regcache_xfree (cache->regcache);
+  delete cache->regcache;
 }
 
 static const struct frame_unwind ppu2spu_unwind = {
@@ -1635,12 +1623,17 @@ ppc_floatformat_for_type (struct gdbarch
                           const char *name, int len)
 {
   if (len == 128 && name)
-    if (strcmp (name, "__float128") == 0
-        || strcmp (name, "_Float128") == 0
-        || strcmp (name, "_Float64x") == 0
-        || strcmp (name, "complex _Float128") == 0
-        || strcmp (name, "complex _Float64x") == 0)
-      return floatformats_ia64_quad;
+    {
+      if (strcmp (name, "__float128") == 0
+	  || strcmp (name, "_Float128") == 0
+	  || strcmp (name, "_Float64x") == 0
+	  || strcmp (name, "complex _Float128") == 0
+	  || strcmp (name, "complex _Float64x") == 0)
+	return floatformats_ia64_quad;
+
+      if (strcmp (name, "__ibm128") == 0)
+	return floatformats_ibm_long_double;
+    }
 
   return default_floatformat_for_type (gdbarch, name, len);
 }
@@ -1650,8 +1643,7 @@ ppc_linux_init_abi (struct gdbarch_info 
                     struct gdbarch *gdbarch)
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-  struct tdesc_arch_data *tdesc_data
-    = (struct tdesc_arch_data *) info.tdep_info;
+  struct tdesc_arch_data *tdesc_data = info.tdesc_data;
   static const char *const stap_integer_prefixes[] = { "i", NULL };
   static const char *const stap_register_indirection_prefixes[] = { "(",
 								    NULL };
@@ -1661,12 +1653,15 @@ ppc_linux_init_abi (struct gdbarch_info 
   linux_init_abi (info, gdbarch);
 
   /* PPC GNU/Linux uses either 64-bit or 128-bit long doubles; where
-     128-bit, they are IBM long double, not IEEE quad long double as
-     in the System V ABI PowerPC Processor Supplement.  We can safely
-     let them default to 128-bit, since the debug info will give the
-     size of type actually used in each case.  */
+     128-bit, they can be either IBM long double or IEEE quad long double.
+     The 64-bit long double case will be detected automatically using
+     the size specified in debug info.  We use a .gnu.attribute flag
+     to distinguish between the IBM long double and IEEE quad cases.  */
   set_gdbarch_long_double_bit (gdbarch, 16 * TARGET_CHAR_BIT);
-  set_gdbarch_long_double_format (gdbarch, floatformats_ibm_long_double);
+  if (tdep->long_double_abi == POWERPC_LONG_DOUBLE_IEEE128)
+    set_gdbarch_long_double_format (gdbarch, floatformats_ia64_quad);
+  else
+    set_gdbarch_long_double_format (gdbarch, floatformats_ibm_long_double);
 
   /* Support for floating-point data type variants.  */
   set_gdbarch_floatformat_for_type (gdbarch, ppc_floatformat_for_type);
@@ -1775,12 +1770,6 @@ ppc_linux_init_abi (struct gdbarch_info 
 	set_gdbarch_gcore_bfd_target (gdbarch, "elf64-powerpc");
     }
 
-  /* PPC32 uses a different prpsinfo32 compared to most other Linux
-     archs.  */
-  if (tdep->wordsize == 4)
-    set_gdbarch_elfcore_write_linux_prpsinfo (gdbarch,
-					      elfcore_write_ppc_linux_prpsinfo32);
-
   set_gdbarch_core_read_description (gdbarch, ppc_linux_core_read_description);
   set_gdbarch_iterate_over_regset_sections (gdbarch,
 					    ppc_linux_iterate_over_regset_sections);
@@ -1820,6 +1809,10 @@ ppc_linux_init_abi (struct gdbarch_info 
 
       /* Cell/B.E. cross-architecture unwinder support.  */
       frame_unwind_prepend_unwinder (gdbarch, &ppu2spu_unwind);
+
+      /* We need to support more than "addr_bit" significant address bits
+         in order to support SPUADDR_ADDR encoded values.  */
+      set_gdbarch_significant_addr_bit (gdbarch, 64);
     }
 
   set_gdbarch_displaced_step_location (gdbarch,
@@ -1834,9 +1827,6 @@ ppc_linux_init_abi (struct gdbarch_info 
   ppc_init_linux_record_tdep (&ppc64_linux_record_tdep, 8);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_ppc_linux_tdep;
-
 void
 _initialize_ppc_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-linux-tdep.h ./gdb/ppc-linux-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-linux-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-linux-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GDB, the GNU debugger.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-nbsd-nat.c ./gdb/ppc-nbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-nbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-nbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for NetBSD/powerpc.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Wasabi Systems, Inc.
 
@@ -80,7 +80,7 @@ static void
 ppcnbsd_fetch_inferior_registers (struct target_ops *ops,
 				  struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   pid_t pid = ptid_get_pid (regcache_get_ptid (regcache));
 
   if (regnum == -1 || getregs_supplies (gdbarch, regnum))
@@ -110,7 +110,7 @@ static void
 ppcnbsd_store_inferior_registers (struct target_ops *ops,
 				  struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   pid_t pid = ptid_get_pid (regcache_get_ptid (regcache));
 
   if (regnum == -1 || getregs_supplies (gdbarch, regnum))
@@ -147,7 +147,7 @@ ppcnbsd_supply_pcb (struct regcache *reg
 {
   struct switchframe sf;
   struct callframe cf;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int i;
 
@@ -174,9 +174,6 @@ ppcnbsd_supply_pcb (struct regcache *reg
   return 1;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_ppcnbsd_nat (void);
-
 void
 _initialize_ppcnbsd_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-nbsd-tdep.c ./gdb/ppc-nbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-nbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-nbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for NetBSD/powerpc.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Wasabi Systems, Inc.
 
@@ -187,10 +187,6 @@ ppcnbsd_init_abi (struct gdbarch_info in
   tramp_frame_prepend_unwinder (gdbarch, &ppcnbsd_sigtramp);
   tramp_frame_prepend_unwinder (gdbarch, &ppcnbsd2_sigtramp);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_ppcnbsd_tdep (void);
 
 void
 _initialize_ppcnbsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-nbsd-tdep.h ./gdb/ppc-nbsd-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-nbsd-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-nbsd-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for NetBSD/powerpc.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-obsd-nat.c ./gdb/ppc-obsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-obsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-obsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for OpenBSD/powerpc.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -89,7 +89,7 @@ ppcobsd_fetch_registers (struct target_o
 
 #ifdef PT_GETFPREGS
   if (regnum == -1
-      || getfpregs_supplies (get_regcache_arch (regcache), regnum))
+      || getfpregs_supplies (regcache->arch (), regnum))
     {
       struct fpreg fpregs;
 
@@ -127,7 +127,7 @@ ppcobsd_store_registers (struct target_o
 
 #ifdef PT_GETFPREGS
   if (regnum == -1
-      || getfpregs_supplies (get_regcache_arch (regcache), regnum))
+      || getfpregs_supplies (regcache->arch (), regnum))
     {
       struct fpreg fpregs;
 
@@ -147,7 +147,7 @@ ppcobsd_store_registers (struct target_o
 static int
 ppcobsd_supply_pcb (struct regcache *regcache, struct pcb *pcb)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   struct switchframe sf;
   struct callframe cf;
@@ -180,10 +180,6 @@ ppcobsd_supply_pcb (struct regcache *reg
 
   return 1;
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_ppcobsd_nat (void);
 
 void
 _initialize_ppcobsd_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-obsd-tdep.c ./gdb/ppc-obsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-obsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-obsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for OpenBSD/powerpc.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -260,10 +260,6 @@ ppcobsd_init_abi (struct gdbarch_info in
 
   frame_unwind_append_unwinder (gdbarch, &ppcobsd_sigtramp_frame_unwind);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_ppcobsd_tdep (void);
 
 void
 _initialize_ppcobsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-obsd-tdep.h ./gdb/ppc-obsd-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-obsd-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-obsd-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for OpenBSD/powerpc.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-ravenscar-thread.c ./gdb/ppc-ravenscar-thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-ravenscar-thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-ravenscar-thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Ravenscar PowerPC target support.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -119,7 +119,7 @@ static void
 supply_register_at_address (struct regcache *regcache, int regnum,
                             CORE_ADDR register_addr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int buf_size = register_size (gdbarch, regnum);
   gdb_byte *buf;
 
@@ -147,7 +147,7 @@ ppc_ravenscar_generic_fetch_registers
   (const struct ravenscar_reg_info *reg_info,
    struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   const int num_regs = gdbarch_num_regs (gdbarch);
   int current_regnum;
   CORE_ADDR current_address;
@@ -186,7 +186,7 @@ ppc_ravenscar_generic_store_registers
   (const struct ravenscar_reg_info *reg_info,
    struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int buf_size = register_size (gdbarch, regnum);
   gdb_byte buf[buf_size];
   ULONGEST register_address;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-ravenscar-thread.h ./gdb/ppc-ravenscar-thread.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-ravenscar-thread.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-ravenscar-thread.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Ravenscar PowerPC target support.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-sysv-tdep.c ./gdb/ppc-sysv-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-sysv-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-sysv-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Target-dependent code for PowerPC systems using the SVR4 ABI
    for GDB, the GNU debugger.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,6 +28,7 @@
 #include "objfiles.h"
 #include "infcall.h"
 #include "dwarf2.h"
+#include "target-float.h"
 #include <algorithm>
 
 
@@ -134,10 +135,10 @@ ppc_sysv_abi_push_dummy_call (struct gdb
 		    {
 		      /* Always store the floating point value using
 		         the register's floating-point format.  */
-		      gdb_byte regval[MAX_REGISTER_SIZE];
+		      gdb_byte regval[PPC_MAX_REGISTER_SIZE];
 		      struct type *regtype
 			= register_type (gdbarch, tdep->ppc_fp0_regnum + freg);
-		      convert_typed_floating (val, type, regval, regtype);
+		      target_float_convert (val, type, regval, regtype);
 		      regcache_cooked_write (regcache,
                                              tdep->ppc_fp0_regnum + freg,
 					     regval);
@@ -278,7 +279,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
 		{
 		  if (write_pass)
 		    {
-		      gdb_byte regval[MAX_REGISTER_SIZE];
+		      gdb_byte regval[PPC_MAX_REGISTER_SIZE];
 		      const gdb_byte *p;
 
 		      /* 32-bit decimal floats are right aligned in the
@@ -364,11 +365,11 @@ ppc_sysv_abi_push_dummy_call (struct gdb
 			  if (write_pass)
 			    {
 			      int regnum = tdep->ppc_fp0_regnum + freg;
-			      gdb_byte regval[MAX_REGISTER_SIZE];
+			      gdb_byte regval[PPC_MAX_REGISTER_SIZE];
 			      struct type *regtype
 				= register_type (gdbarch, regnum);
-			      convert_typed_floating (elval, eltype,
-						      regval, regtype);
+			      target_float_convert (elval, eltype,
+						    regval, regtype);
 			      regcache_cooked_write (regcache, regnum, regval);
 			    }
 			  freg++;
@@ -411,7 +412,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
 		    }
 		  else
 		    {
-		      gdb_byte word[MAX_REGISTER_SIZE];
+		      gdb_byte word[PPC_MAX_REGISTER_SIZE];
 		      store_unsigned_integer (word, tdep->wordsize, byte_order,
 					      unpack_long (eltype, elval));
 
@@ -516,8 +517,8 @@ ppc_sysv_abi_push_dummy_call (struct gdb
 	    {
 	      /* Reduce the parameter down to something that fits in a
 	         "word".  */
-	      gdb_byte word[MAX_REGISTER_SIZE];
-	      memset (word, 0, MAX_REGISTER_SIZE);
+	      gdb_byte word[PPC_MAX_REGISTER_SIZE];
+	      memset (word, 0, PPC_MAX_REGISTER_SIZE);
 	      if (len > tdep->wordsize
 		  || TYPE_CODE (type) == TYPE_CODE_STRUCT
 		  || TYPE_CODE (type) == TYPE_CODE_UNION)
@@ -623,7 +624,7 @@ get_decimal_float_return_value (struct g
     {
       if (writebuf != NULL)
 	{
-	  gdb_byte regval[MAX_REGISTER_SIZE];
+	  gdb_byte regval[PPC_MAX_REGISTER_SIZE];
 	  const gdb_byte *p;
 
 	  /* 32-bit decimal float is right aligned in the doubleword.  */
@@ -706,19 +707,19 @@ do_ppc_sysv_return_value (struct gdbarch
 	{
 	  /* Floats and doubles stored in "f1".  Convert the value to
 	     the required type.  */
-	  gdb_byte regval[MAX_REGISTER_SIZE];
+	  gdb_byte regval[PPC_MAX_REGISTER_SIZE];
 	  struct type *regtype = register_type (gdbarch,
                                                 tdep->ppc_fp0_regnum + 1);
 	  regcache_cooked_read (regcache, tdep->ppc_fp0_regnum + 1, regval);
-	  convert_typed_floating (regval, regtype, readbuf, type);
+	  target_float_convert (regval, regtype, readbuf, type);
 	}
       if (writebuf)
 	{
 	  /* Floats and doubles stored in "f1".  Convert the value to
 	     the register's "double" type.  */
-	  gdb_byte regval[MAX_REGISTER_SIZE];
+	  gdb_byte regval[PPC_MAX_REGISTER_SIZE];
 	  struct type *regtype = register_type (gdbarch, tdep->ppc_fp0_regnum);
-	  convert_typed_floating (writebuf, type, regval, regtype);
+	  target_float_convert (writebuf, type, regval, regtype);
 	  regcache_cooked_write (regcache, tdep->ppc_fp0_regnum + 1, regval);
 	}
       return RETURN_VALUE_REGISTER_CONVENTION;
@@ -847,20 +848,20 @@ do_ppc_sysv_return_value (struct gdbarch
 	  if (TYPE_CODE (eltype) == TYPE_CODE_FLT)
 	    {
 	      int regnum = tdep->ppc_fp0_regnum + 1 + i;
-	      gdb_byte regval[MAX_REGISTER_SIZE];
+	      gdb_byte regval[PPC_MAX_REGISTER_SIZE];
 	      struct type *regtype = register_type (gdbarch, regnum);
 
 	      if (writebuf != NULL)
 		{
-		  convert_typed_floating (writebuf + offset, eltype,
-					  regval, regtype);
+		  target_float_convert (writebuf + offset, eltype,
+					regval, regtype);
 		  regcache_cooked_write (regcache, regnum, regval);
 		}
 	      if (readbuf != NULL)
 		{
 		  regcache_cooked_read (regcache, regnum, regval);
-		  convert_typed_floating (regval, regtype,
-					  readbuf + offset, eltype);
+		  target_float_convert (regval, regtype,
+					readbuf + offset, eltype);
 		}
 	    }
 	  else
@@ -977,7 +978,7 @@ do_ppc_sysv_return_value (struct gdbarch
       /* GCC screwed up for structures or unions whose size is less
 	 than or equal to 8 bytes..  Instead of left-aligning, it
 	 right-aligns the data into the buffer formed by r3, r4.  */
-      gdb_byte regvals[MAX_REGISTER_SIZE * 2];
+      gdb_byte regvals[PPC_MAX_REGISTER_SIZE * 2];
       int len = TYPE_LENGTH (type);
       int offset = (2 * tdep->wordsize - len) % tdep->wordsize;
 
@@ -1010,7 +1011,7 @@ do_ppc_sysv_return_value (struct gdbarch
 	  /* This matches SVr4 PPC, it does not match GCC.  */
 	  /* The value is right-padded to 8 bytes and then loaded, as
 	     two "words", into r3/r4.  */
-	  gdb_byte regvals[MAX_REGISTER_SIZE * 2];
+	  gdb_byte regvals[PPC_MAX_REGISTER_SIZE * 2];
 	  regcache_cooked_read (regcache, tdep->ppc_gp0_regnum + 3,
 				regvals + 0 * tdep->wordsize);
 	  if (TYPE_LENGTH (type) > tdep->wordsize)
@@ -1023,7 +1024,7 @@ do_ppc_sysv_return_value (struct gdbarch
 	  /* This matches SVr4 PPC, it does not match GCC.  */
 	  /* The value is padded out to 8 bytes and then loaded, as
 	     two "words" into r3/r4.  */
-	  gdb_byte regvals[MAX_REGISTER_SIZE * 2];
+	  gdb_byte regvals[PPC_MAX_REGISTER_SIZE * 2];
 	  memset (regvals, 0, sizeof regvals);
 	  memcpy (regvals, writebuf, TYPE_LENGTH (type));
 	  regcache_cooked_write (regcache, tdep->ppc_gp0_regnum + 3,
@@ -1340,7 +1341,7 @@ ppc64_sysv_abi_push_integer (struct gdba
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  gdb_byte buf[MAX_REGISTER_SIZE];
+  gdb_byte buf[PPC_MAX_REGISTER_SIZE];
 
   if (argpos->regcache)
     store_unsigned_integer (buf, tdep->wordsize, byte_order, val);
@@ -1369,9 +1370,9 @@ ppc64_sysv_abi_push_freg (struct gdbarch
 	{
 	  int regnum = tdep->ppc_fp0_regnum + argpos->freg;
 	  struct type *regtype = register_type (gdbarch, regnum);
-	  gdb_byte regval[MAX_REGISTER_SIZE];
+	  gdb_byte regval[PPC_MAX_REGISTER_SIZE];
 
-	  convert_typed_floating (val, type, regval, regtype);
+	  target_float_convert (val, type, regval, regtype);
 	  regcache_cooked_write (argpos->regcache, regnum, regval);
 	}
 
@@ -1814,17 +1815,17 @@ ppc64_sysv_abi_return_value_base (struct
     {
       int regnum = tdep->ppc_fp0_regnum + 1 + index;
       struct type *regtype = register_type (gdbarch, regnum);
-      gdb_byte regval[MAX_REGISTER_SIZE];
+      gdb_byte regval[PPC_MAX_REGISTER_SIZE];
 
       if (writebuf != NULL)
 	{
-	  convert_typed_floating (writebuf, valtype, regval, regtype);
+	  target_float_convert (writebuf, valtype, regval, regtype);
 	  regcache_cooked_write (regcache, regnum, regval);
 	}
       if (readbuf != NULL)
 	{
 	  regcache_cooked_read (regcache, regnum, regval);
-	  convert_typed_floating (regval, regtype, readbuf, valtype);
+	  target_float_convert (regval, regtype, readbuf, valtype);
 	}
       return 1;
     }
@@ -2071,7 +2072,7 @@ ppc64_sysv_abi_return_value (struct gdba
 
       for (i = 0; i < n_regs; i++)
 	{
-	  gdb_byte regval[MAX_REGISTER_SIZE];
+	  gdb_byte regval[PPC_MAX_REGISTER_SIZE];
 	  int regnum = tdep->ppc_gp0_regnum + 3 + i;
 	  int offset = i * tdep->wordsize;
 	  int len = TYPE_LENGTH (valtype) - offset;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-tdep.h ./gdb/ppc-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ppc-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ppc-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GDB, the GNU debugger.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -76,7 +76,8 @@ int ppc_altivec_support_p (struct gdbarc
 /* Return non-zero if the architecture described by GDBARCH has
    VSX registers (vsr0 --- vsr63).  */
 int vsx_support_p (struct gdbarch *gdbarch);
-VEC (CORE_ADDR) *ppc_deal_with_atomic_sequence (struct regcache *regcache);
+std::vector<CORE_ADDR> ppc_deal_with_atomic_sequence
+  (struct regcache *regcache);
 
 
 /* Register set description.  */
@@ -201,6 +202,15 @@ enum powerpc_vector_abi
   POWERPC_VEC_LAST
 };
 
+/* long double ABI version used by the inferior.  */
+enum powerpc_long_double_abi
+{
+  POWERPC_LONG_DOUBLE_AUTO,
+  POWERPC_LONG_DOUBLE_IBM128,
+  POWERPC_LONG_DOUBLE_IEEE128,
+  POWERPC_LONG_DOUBLE_LAST
+};
+
 struct gdbarch_tdep
   {
     int wordsize;		/* Size in bytes of fixed-point word.  */
@@ -208,6 +218,9 @@ struct gdbarch_tdep
 
     enum powerpc_elf_abi elf_abi;	/* ELF ABI version.  */
 
+    /* Format to use for the "long double" data type.  */
+    enum powerpc_long_double_abi long_double_abi;
+
     /* How to pass vector arguments.  Never set to AUTO or LAST.  */
     enum powerpc_vector_abi vector_abi;
 
@@ -304,6 +317,9 @@ enum {
   PPC_NUM_REGS
 };
 
+/* Big enough to hold the size of the largest register in bytes.  */
+#define PPC_MAX_REGISTER_SIZE	64
+
 /* An instruction to match.  */
 
 struct ppc_insn_pattern
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/printcmd.c ./gdb/printcmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/printcmd.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/printcmd.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Print values for GNU debugger GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -38,7 +38,7 @@
 #include "ui-out.h"
 #include "block.h"
 #include "disasm.h"
-#include "dfp.h"
+#include "target-float.h"
 #include "observer.h"
 #include "solist.h"
 #include "parser-defs.h"
@@ -48,6 +48,7 @@
 #include "cli/cli-script.h"
 #include "format.h"
 #include "source.h"
+#include "common/byte-vector.h"
 
 #ifdef TUI
 #include "tui/tui.h"		/* For tui_active et al.   */
@@ -157,10 +158,6 @@ static int display_number;
        B ? (TMP = B->next, 1): 0;		\
        B = TMP)
 
-/* Prototypes for exported functions.  */
-
-void _initialize_printcmd (void);
-
 /* Prototypes for local functions.  */
 
 static void do_one_display (struct display *);
@@ -356,43 +353,12 @@ print_scalar_formatted (const gdb_byte *
 			int size, struct ui_file *stream)
 {
   struct gdbarch *gdbarch = get_type_arch (type);
-  LONGEST val_long = 0;
   unsigned int len = TYPE_LENGTH (type);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
   /* String printing should go through val_print_scalar_formatted.  */
   gdb_assert (options->format != 's');
 
-  if (len > sizeof(LONGEST)
-      && (TYPE_CODE (type) == TYPE_CODE_INT
-	  || TYPE_CODE (type) == TYPE_CODE_ENUM))
-    {
-      switch (options->format)
-	{
-	case 'o':
-	  print_octal_chars (stream, valaddr, len, byte_order);
-	  return;
-	case 'u':
-	case 'd':
-	  print_decimal_chars (stream, valaddr, len, byte_order);
-	  return;
-	case 't':
-	  print_binary_chars (stream, valaddr, len, byte_order);
-	  return;
-	case 'x':
-	  print_hex_chars (stream, valaddr, len, byte_order);
-	  return;
-	case 'c':
-	  print_char_chars (stream, type, valaddr, len, byte_order);
-	  return;
-	default:
-	  break;
-	};
-    }
-
-  if (options->format != 'f')
-    val_long = unpack_long (type, valaddr);
-
   /* If the value is a pointer, and pointers and addresses are not the
      same, then at this point, the value's length (in target bytes) is
      gdbarch_addr_bit/TARGET_CHAR_BIT, not TYPE_LENGTH (type).  */
@@ -402,61 +368,107 @@ print_scalar_formatted (const gdb_byte *
   /* If we are printing it as unsigned, truncate it in case it is actually
      a negative signed value (e.g. "print/u (short)-1" should print 65535
      (if shorts are 16 bits) instead of 4294967295).  */
-  if (options->format != 'd' || TYPE_UNSIGNED (type))
+  if (options->format != 'c'
+      && (options->format != 'd' || TYPE_UNSIGNED (type)))
     {
-      if (len < sizeof (LONGEST))
-	val_long &= ((LONGEST) 1 << HOST_CHAR_BIT * len) - 1;
+      if (len < TYPE_LENGTH (type) && byte_order == BFD_ENDIAN_BIG)
+	valaddr += TYPE_LENGTH (type) - len;
     }
 
-  switch (options->format)
+  if (size != 0 && (options->format == 'x' || options->format == 't'))
     {
-    case 'x':
-      if (!size)
+      /* Truncate to fit.  */
+      unsigned newlen;
+      switch (size)
 	{
-	  /* No size specified, like in print.  Print varying # of digits.  */
-	  print_longest (stream, 'x', 1, val_long);
+	case 'b':
+	  newlen = 1;
+	  break;
+	case 'h':
+	  newlen = 2;
+	  break;
+	case 'w':
+	  newlen = 4;
+	  break;
+	case 'g':
+	  newlen = 8;
+	  break;
+	default:
+	  error (_("Undefined output size \"%c\"."), size);
 	}
-      else
-	switch (size)
-	  {
-	  case 'b':
-	  case 'h':
-	  case 'w':
-	  case 'g':
-	    print_longest (stream, size, 1, val_long);
-	    break;
-	  default:
-	    error (_("Undefined output size \"%c\"."), size);
-	  }
-      break;
+      if (newlen < len && byte_order == BFD_ENDIAN_BIG)
+	valaddr += len - newlen;
+      len = newlen;
+    }
+
+  /* Historically gdb has printed floats by first casting them to a
+     long, and then printing the long.  PR cli/16242 suggests changing
+     this to using C-style hex float format.  */
+  gdb::byte_vector converted_float_bytes;
+  if (TYPE_CODE (type) == TYPE_CODE_FLT
+      && (options->format == 'o'
+	  || options->format == 'x'
+	  || options->format == 't'
+	  || options->format == 'z'
+	  || options->format == 'd'
+	  || options->format == 'u'))
+    {
+      LONGEST val_long = unpack_long (type, valaddr);
+      converted_float_bytes.resize (TYPE_LENGTH (type));
+      store_signed_integer (converted_float_bytes.data (), TYPE_LENGTH (type),
+			    byte_order, val_long);
+      valaddr = converted_float_bytes.data ();
+    }
+
+  /* Printing a non-float type as 'f' will interpret the data as if it were
+     of a floating-point type of the same length, if that exists.  Otherwise,
+     the data is printed as integer.  */
+  char format = options->format;
+  if (format == 'f' && TYPE_CODE (type) != TYPE_CODE_FLT)
+    {
+      type = float_type_from_length (type);
+      if (TYPE_CODE (type) != TYPE_CODE_FLT)
+        format = 0;
+    }
 
+  switch (format)
+    {
+    case 'o':
+      print_octal_chars (stream, valaddr, len, byte_order);
+      break;
     case 'd':
-      print_longest (stream, 'd', 1, val_long);
+      print_decimal_chars (stream, valaddr, len, true, byte_order);
       break;
-
     case 'u':
-      print_longest (stream, 'u', 0, val_long);
+      print_decimal_chars (stream, valaddr, len, false, byte_order);
       break;
-
-    case 'o':
-      if (val_long)
-	print_longest (stream, 'o', 1, val_long);
-      else
-	fprintf_filtered (stream, "0");
+    case 0:
+      if (TYPE_CODE (type) != TYPE_CODE_FLT)
+	{
+	  print_decimal_chars (stream, valaddr, len, !TYPE_UNSIGNED (type),
+			       byte_order);
+	  break;
+	}
+      /* FALLTHROUGH */
+    case 'f':
+      print_floating (valaddr, type, stream);
       break;
 
-    case 'a':
-      {
-	CORE_ADDR addr = unpack_pointer (type, valaddr);
-
-	print_address (gdbarch, addr, stream);
-      }
+    case 't':
+      print_binary_chars (stream, valaddr, len, byte_order, size > 0);
+      break;
+    case 'x':
+      print_hex_chars (stream, valaddr, len, byte_order, size > 0);
+      break;
+    case 'z':
+      print_hex_chars (stream, valaddr, len, byte_order, true);
       break;
-
     case 'c':
       {
 	struct value_print_options opts = *options;
 
+	LONGEST val_long = unpack_long (type, valaddr);
+
 	opts.format = 0;
 	if (TYPE_UNSIGNED (type))
 	  type = builtin_type (gdbarch)->builtin_true_unsigned_char;
@@ -467,68 +479,16 @@ print_scalar_formatted (const gdb_byte *
       }
       break;
 
-    case 'f':
-      type = float_type_from_length (type);
-      print_floating (valaddr, type, stream);
-      break;
-
-    case 0:
-      internal_error (__FILE__, __LINE__,
-		      _("failed internal consistency check"));
-
-    case 't':
-      /* Binary; 't' stands for "two".  */
+    case 'a':
       {
-	char bits[8 * (sizeof val_long) + 1];
-	char buf[8 * (sizeof val_long) + 32];
-	char *cp = bits;
-	int width;
-
-	if (!size)
-	  width = 8 * (sizeof val_long);
-	else
-	  switch (size)
-	    {
-	    case 'b':
-	      width = 8;
-	      break;
-	    case 'h':
-	      width = 16;
-	      break;
-	    case 'w':
-	      width = 32;
-	      break;
-	    case 'g':
-	      width = 64;
-	      break;
-	    default:
-	      error (_("Undefined output size \"%c\"."), size);
-	    }
+	CORE_ADDR addr = unpack_pointer (type, valaddr);
 
-	bits[width] = '\0';
-	while (width-- > 0)
-	  {
-	    bits[width] = (val_long & 1) ? '1' : '0';
-	    val_long >>= 1;
-	  }
-	if (!size)
-	  {
-	    while (*cp && *cp == '0')
-	      cp++;
-	    if (*cp == '\0')
-	      cp--;
-	  }
-	strncpy (buf, cp, sizeof (bits));
-	fputs_filtered (buf, stream);
+	print_address (gdbarch, addr, stream);
       }
       break;
 
-    case 'z':
-      print_hex_chars (stream, valaddr, len, byte_order);
-      break;
-
     default:
-      error (_("Undefined output format \"%c\"."), options->format);
+      error (_("Undefined output format \"%c\"."), format);
     }
 }
 
@@ -948,8 +908,6 @@ find_string_backward (struct gdbarch *gd
                       int *strings_counted)
 {
   const int chunk_size = 0x20;
-  gdb_byte *buffer = NULL;
-  struct cleanup *cleanup = NULL;
   int read_error = 0;
   int chars_read = 0;
   int chars_to_read = chunk_size;
@@ -958,14 +916,13 @@ find_string_backward (struct gdbarch *gd
   CORE_ADDR string_start_addr = addr;
 
   gdb_assert (char_size == 1 || char_size == 2 || char_size == 4);
-  buffer = (gdb_byte *) xmalloc (chars_to_read * char_size);
-  cleanup = make_cleanup (xfree, buffer);
+  gdb::byte_vector buffer (chars_to_read * char_size);
   while (count > 0 && read_error == 0)
     {
       int i;
 
       addr -= chars_to_read * char_size;
-      chars_read = read_memory_backward (gdbarch, addr, buffer,
+      chars_read = read_memory_backward (gdbarch, addr, buffer.data (),
                                          chars_to_read * char_size);
       chars_read /= char_size;
       read_error = (chars_read == chars_to_read) ? 0 : 1;
@@ -974,7 +931,7 @@ find_string_backward (struct gdbarch *gd
         {
           int offset = (chars_to_read - i - 1) * char_size;
 
-          if (integer_is_zero (buffer + offset, char_size)
+          if (integer_is_zero (&buffer[offset], char_size)
               || chars_counted == options->print_max)
             {
               /* Found '\0' or reached print_max.  As OFFSET is the offset to
@@ -997,7 +954,6 @@ find_string_backward (struct gdbarch *gd
       string_start_addr -= chars_counted * char_size;
     }
 
-  do_cleanups (cleanup);
   return string_start_addr;
 }
 
@@ -1258,14 +1214,14 @@ print_command_1 (const char *exp, int vo
 }
 
 static void
-print_command (char *exp, int from_tty)
+print_command (const char *exp, int from_tty)
 {
   print_command_1 (exp, 1);
 }
 
 /* Same as print, except it doesn't print void results.  */
 static void
-call_command (char *exp, int from_tty)
+call_command (const char *exp, int from_tty)
 {
   print_command_1 (exp, 0);
 }
@@ -1273,7 +1229,7 @@ call_command (char *exp, int from_tty)
 /* Implementation of the "output" command.  */
 
 static void
-output_command (char *exp, int from_tty)
+output_command (const char *exp, int from_tty)
 {
   output_command_const (exp, from_tty);
 }
@@ -1316,7 +1272,7 @@ output_command_const (const char *exp, i
 }
 
 static void
-set_command (char *exp, int from_tty)
+set_command (const char *exp, int from_tty)
 {
   expression_up expr = parse_expression (exp);
 
@@ -1340,7 +1296,7 @@ set_command (char *exp, int from_tty)
 }
 
 static void
-sym_info (char *arg, int from_tty)
+info_symbol_command (const char *arg, int from_tty)
 {
   struct minimal_symbol *msymbol;
   struct objfile *objfile;
@@ -1368,7 +1324,7 @@ sym_info (char *arg, int from_tty)
 	    = lookup_minimal_symbol_by_pc_section (sect_addr, osect).minsym))
       {
 	const char *obj_name, *mapped, *sec_name, *msym_name;
-	char *loc_string;
+	const char *loc_string;
 	struct cleanup *old_chain;
 
 	matches = 1;
@@ -1379,14 +1335,14 @@ sym_info (char *arg, int from_tty)
 
 	/* Don't print the offset if it is zero.
 	   We assume there's no need to handle i18n of "sym + offset".  */
+	std::string string_holder;
 	if (offset)
-	  loc_string = xstrprintf ("%s + %u", msym_name, offset);
+	  {
+	    string_holder = string_printf ("%s + %u", msym_name, offset);
+	    loc_string = string_holder.c_str ();
+	  }
 	else
-	  loc_string = xstrprintf ("%s", msym_name);
-
-	/* Use a cleanup to free loc_string in case the user quits
-	   a pagination request inside printf_filtered.  */
-	old_chain = make_cleanup (xfree, loc_string);
+	  loc_string = msym_name;
 
 	gdb_assert (osect->objfile && objfile_name (osect->objfile));
 	obj_name = objfile_name (osect->objfile);
@@ -1424,8 +1380,6 @@ sym_info (char *arg, int from_tty)
 	    else
 	      printf_filtered (_("%s in section %s\n"),
 			       loc_string, sec_name);
-
-	do_cleanups (old_chain);
       }
   }
   if (matches == 0)
@@ -1433,7 +1387,7 @@ sym_info (char *arg, int from_tty)
 }
 
 static void
-address_info (char *exp, int from_tty)
+info_address_command (const char *exp, int from_tty)
 {
   struct gdbarch *gdbarch;
   int regno;
@@ -1657,10 +1611,9 @@ address_info (char *exp, int from_tty)
 
 
 static void
-x_command (char *exp, int from_tty)
+x_command (const char *exp, int from_tty)
 {
   struct format_data fmt;
-  struct cleanup *old_chain;
   struct value *val;
 
   fmt.format = last_format ? last_format : 'x';
@@ -1685,7 +1638,7 @@ x_command (char *exp, int from_tty)
          repeated with Newline.  But don't clobber a user-defined
          command's definition.  */
       if (from_tty)
-	*exp = 0;
+	set_repeat_arguments ("");
       val = evaluate_expression (expr.get ());
       if (TYPE_IS_REFERENCE (value_type (val)))
 	val = coerce_ref (val);
@@ -1741,7 +1694,7 @@ x_command (char *exp, int from_tty)
    Specify the expression.  */
 
 static void
-display_command (char *arg, int from_tty)
+display_command (const char *arg, int from_tty)
 {
   struct format_data fmt;
   struct display *newobj;
@@ -1849,7 +1802,7 @@ delete_display (struct display *display)
    ARGS.  DATA is passed unmodified to FUNCTION.  */
 
 static void
-map_display_numbers (char *args,
+map_display_numbers (const char *args,
 		     void (*function) (struct display *,
 				       void *),
 		     void *data)
@@ -1894,7 +1847,7 @@ do_delete_display (struct display *d, vo
 /* "undisplay" command.  */
 
 static void
-undisplay_command (char *args, int from_tty)
+undisplay_command (const char *args, int from_tty)
 {
   if (args == NULL)
     {
@@ -2100,7 +2053,7 @@ disable_current_display (void)
 }
 
 static void
-display_info (char *ignore, int from_tty)
+info_display_command (const char *ignore, int from_tty)
 {
   struct display *d;
 
@@ -2139,7 +2092,7 @@ do_enable_disable_display (struct displa
    commands.  ENABLE decides what to do.  */
 
 static void
-enable_disable_display_command (char *args, int from_tty, int enable)
+enable_disable_display_command (const char *args, int from_tty, int enable)
 {
   if (args == NULL)
     {
@@ -2156,7 +2109,7 @@ enable_disable_display_command (char *ar
 /* The "enable display" command.  */
 
 static void
-enable_display_command (char *args, int from_tty)
+enable_display_command (const char *args, int from_tty)
 {
   enable_disable_display_command (args, from_tty, 1);
 }
@@ -2164,7 +2117,7 @@ enable_display_command (char *args, int 
 /* The "disable display" command.  */
 
 static void
-disable_display_command (char *args, int from_tty)
+disable_display_command (const char *args, int from_tty)
 {
   enable_disable_display_command (args, from_tty, 0);
 }
@@ -2305,8 +2258,6 @@ printf_wide_c_string (struct ui_file *st
 					 "wchar_t", NULL, 0);
   int wcwidth = TYPE_LENGTH (wctype);
   gdb_byte *buf = (gdb_byte *) alloca (wcwidth);
-  struct obstack output;
-  struct cleanup *inner_cleanup;
 
   tem = value_as_address (value);
 
@@ -2325,8 +2276,7 @@ printf_wide_c_string (struct ui_file *st
     read_memory (tem, str, j);
   memset (&str[j], 0, wcwidth);
 
-  obstack_init (&output);
-  inner_cleanup = make_cleanup_obstack_free (&output);
+  auto_obstack output;
 
   convert_between_encodings (target_wide_charset (gdbarch),
 			     host_charset (),
@@ -2335,92 +2285,76 @@ printf_wide_c_string (struct ui_file *st
   obstack_grow_str0 (&output, "");
 
   fprintf_filtered (stream, format, obstack_base (&output));
-  do_cleanups (inner_cleanup);
 }
 
 /* Subroutine of ui_printf to simplify it.
-   Print VALUE, a decimal floating point value, to STREAM using FORMAT.  */
+   Print VALUE, a floating point value, to STREAM using FORMAT.  */
 
 static void
-printf_decfloat (struct ui_file *stream, const char *format,
-		 struct value *value)
+printf_floating (struct ui_file *stream, const char *format,
+		 struct value *value, enum argclass argclass)
 {
-  const gdb_byte *param_ptr = value_contents (value);
-
-#if defined (PRINTF_HAS_DECFLOAT)
-  /* If we have native support for Decimal floating
-     printing, handle it here.  */
-  fprintf_filtered (stream, format, param_ptr);
-#else
-  /* As a workaround until vasprintf has native support for DFP
-     we convert the DFP values to string and print them using
-     the %s format specifier.  */
-  const char *p;
-
   /* Parameter data.  */
   struct type *param_type = value_type (value);
   struct gdbarch *gdbarch = get_type_arch (param_type);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
-  /* DFP output data.  */
-  struct value *dfp_value = NULL;
-  gdb_byte *dfp_ptr;
-  int dfp_len = 16;
-  gdb_byte dec[16];
-  struct type *dfp_type = NULL;
-  char decstr[MAX_DECIMAL_STRING];
-
-  /* Points to the end of the string so that we can go back
-     and check for DFP length modifiers.  */
-  p = format + strlen (format);
-
-  /* Look for the float/double format specifier.  */
-  while (*p != 'f' && *p != 'e' && *p != 'E'
-	 && *p != 'g' && *p != 'G')
-    p--;
-
-  /* Search for the '%' char and extract the size and type of
-     the output decimal value based on its modifiers
-     (%Hf, %Df, %DDf).  */
-  while (*--p != '%')
+  /* Determine target type corresponding to the format string.  */
+  struct type *fmt_type;
+  switch (argclass)
     {
-      if (*p == 'H')
-	{
-	  dfp_len = 4;
-	  dfp_type = builtin_type (gdbarch)->builtin_decfloat;
-	}
-      else if (*p == 'D' && *(p - 1) == 'D')
-	{
-	  dfp_len = 16;
-	  dfp_type = builtin_type (gdbarch)->builtin_declong;
-	  p--;
-	}
-      else
-	{
-	  dfp_len = 8;
-	  dfp_type = builtin_type (gdbarch)->builtin_decdouble;
-	}
+      case double_arg:
+	fmt_type = builtin_type (gdbarch)->builtin_double;
+	break;
+      case long_double_arg:
+	fmt_type = builtin_type (gdbarch)->builtin_long_double;
+	break;
+      case dec32float_arg:
+	fmt_type = builtin_type (gdbarch)->builtin_decfloat;
+	break;
+      case dec64float_arg:
+	fmt_type = builtin_type (gdbarch)->builtin_decdouble;
+	break;
+      case dec128float_arg:
+	fmt_type = builtin_type (gdbarch)->builtin_declong;
+	break;
+      default:
+	gdb_assert_not_reached ("unexpected argument class");
     }
 
-  /* Conversion between different DFP types.  */
-  if (TYPE_CODE (param_type) == TYPE_CODE_DECFLOAT)
-    decimal_convert (param_ptr, TYPE_LENGTH (param_type),
-		     byte_order, dec, dfp_len, byte_order);
-  else
-    /* If this is a non-trivial conversion, just output 0.
-       A correct converted value can be displayed by explicitly
-       casting to a DFP type.  */
-    decimal_from_string (dec, dfp_len, byte_order, "0");
+  /* To match the traditional GDB behavior, the conversion is
+     done differently depending on the type of the parameter:
 
-  dfp_value = value_from_decfloat (dfp_type, dec);
+     - if the parameter has floating-point type, it's value
+       is converted to the target type;
 
-  dfp_ptr = (gdb_byte *) value_contents (dfp_value);
+     - otherwise, if the parameter has a type that is of the
+       same size as a built-in floating-point type, the value
+       bytes are interpreted as if they were of that type, and
+       then converted to the target type (this is not done for
+       decimal floating-point argument classes);
 
-  decimal_to_string (dfp_ptr, dfp_len, byte_order, decstr);
+     - otherwise, if the source value has an integer value,
+       it's value is converted to the target type;
 
-  /* Print the DFP value.  */
-  fprintf_filtered (stream, "%s", decstr);
-#endif
+     - otherwise, an error is raised.
+
+     In either case, the result of the conversion is a byte buffer
+     formatted in the target format for the target type.  */
+
+  if (TYPE_CODE (fmt_type) == TYPE_CODE_FLT)
+    {
+      param_type = float_type_from_length (param_type);
+      if (param_type != value_type (value))
+	value = value_from_contents (param_type, value_contents (value));
+    }
+
+  value = value_cast (fmt_type, value);
+
+  /* Convert the value to a string and print it.  */
+  std::string str
+    = target_float_to_string (value_contents (value), fmt_type, format);
+  fputs_filtered (str.c_str (), stream);
 }
 
 /* Subroutine of ui_printf to simplify it.
@@ -2493,49 +2427,40 @@ printf_pointer (struct ui_file *stream, 
 static void
 ui_printf (const char *arg, struct ui_file *stream)
 {
-  struct format_piece *fpieces;
   const char *s = arg;
-  struct value **val_args;
-  int allocated_args = 20;
-  struct cleanup *old_cleanups;
-
-  val_args = XNEWVEC (struct value *, allocated_args);
-  old_cleanups = make_cleanup (free_current_contents, &val_args);
+  std::vector<struct value *> val_args;
 
   if (s == 0)
     error_no_arg (_("format-control string and values to print"));
 
-  s = skip_spaces_const (s);
+  s = skip_spaces (s);
 
   /* A format string should follow, enveloped in double quotes.  */
   if (*s++ != '"')
     error (_("Bad format string, missing '\"'."));
 
-  fpieces = parse_format_string (&s);
-
-  make_cleanup (free_format_pieces_cleanup, &fpieces);
+  format_pieces fpieces (&s);
 
   if (*s++ != '"')
     error (_("Bad format string, non-terminated '\"'."));
   
-  s = skip_spaces_const (s);
+  s = skip_spaces (s);
 
   if (*s != ',' && *s != 0)
     error (_("Invalid argument syntax"));
 
   if (*s == ',')
     s++;
-  s = skip_spaces_const (s);
+  s = skip_spaces (s);
 
   {
-    int nargs = 0;
     int nargs_wanted;
-    int i, fr;
-    char *current_substring;
+    int i;
+    const char *current_substring;
 
     nargs_wanted = 0;
-    for (fr = 0; fpieces[fr].string != NULL; fr++)
-      if (fpieces[fr].argclass != literal_piece)
+    for (auto &&piece : fpieces)
+      if (piece.argclass != literal_piece)
 	++nargs_wanted;
 
     /* Now, parse all arguments and evaluate them.
@@ -2545,28 +2470,23 @@ ui_printf (const char *arg, struct ui_fi
       {
 	const char *s1;
 
-	if (nargs == allocated_args)
-	  val_args = (struct value **) xrealloc ((char *) val_args,
-						 (allocated_args *= 2)
-						 * sizeof (struct value *));
 	s1 = s;
-	val_args[nargs] = parse_to_comma_and_eval (&s1);
+	val_args.push_back (parse_to_comma_and_eval (&s1));
 
-	nargs++;
 	s = s1;
 	if (*s == ',')
 	  s++;
       }
 
-    if (nargs != nargs_wanted)
+    if (val_args.size () != nargs_wanted)
       error (_("Wrong number of arguments for specified format-string"));
 
     /* Now actually print them.  */
     i = 0;
-    for (fr = 0; fpieces[fr].string != NULL; fr++)
+    for (auto &&piece : fpieces)
       {
-	current_substring = fpieces[fr].string;
-	switch (fpieces[fr].argclass)
+	current_substring = piece.string;
+	switch (piece.argclass)
 	  {
 	  case string_arg:
 	    printf_c_string (stream, current_substring, val_args[i]);
@@ -2581,8 +2501,6 @@ ui_printf (const char *arg, struct ui_fi
 	      struct type *wctype = lookup_typename (current_language, gdbarch,
 						     "wchar_t", NULL, 0);
 	      struct type *valtype;
-	      struct obstack output;
-	      struct cleanup *inner_cleanup;
 	      const gdb_byte *bytes;
 
 	      valtype = value_type (val_args[i]);
@@ -2592,8 +2510,7 @@ ui_printf (const char *arg, struct ui_fi
 
 	      bytes = value_contents (val_args[i]);
 
-	      obstack_init (&output);
-	      inner_cleanup = make_cleanup_obstack_free (&output);
+	      auto_obstack output;
 
 	      convert_between_encodings (target_wide_charset (gdbarch),
 					 host_charset (),
@@ -2604,46 +2521,8 @@ ui_printf (const char *arg, struct ui_fi
 
 	      fprintf_filtered (stream, current_substring,
                                 obstack_base (&output));
-	      do_cleanups (inner_cleanup);
 	    }
 	    break;
-	  case double_arg:
-	    {
-	      struct type *type = value_type (val_args[i]);
-	      DOUBLEST val;
-	      int inv;
-
-	      /* If format string wants a float, unchecked-convert the value
-		 to floating point of the same size.  */
-	      type = float_type_from_length (type);
-	      val = unpack_double (type, value_contents (val_args[i]), &inv);
-	      if (inv)
-		error (_("Invalid floating value found in program."));
-
-              fprintf_filtered (stream, current_substring, (double) val);
-	      break;
-	    }
-	  case long_double_arg:
-#ifdef HAVE_LONG_DOUBLE
-	    {
-	      struct type *type = value_type (val_args[i]);
-	      DOUBLEST val;
-	      int inv;
-
-	      /* If format string wants a float, unchecked-convert the value
-		 to floating point of the same size.  */
-	      type = float_type_from_length (type);
-	      val = unpack_double (type, value_contents (val_args[i]), &inv);
-	      if (inv)
-		error (_("Invalid floating value found in program."));
-
-	      fprintf_filtered (stream, current_substring,
-                                (long double) val);
-	      break;
-	    }
-#else
-	    error (_("long double not supported in printf"));
-#endif
 	  case long_long_arg:
 #ifdef PRINTF_HAS_LONG_LONG
 	    {
@@ -2669,9 +2548,14 @@ ui_printf (const char *arg, struct ui_fi
               fprintf_filtered (stream, current_substring, val);
 	      break;
 	    }
-	  /* Handles decimal floating values.  */
-	  case decfloat_arg:
-	    printf_decfloat (stream, current_substring, val_args[i]);
+	  /* Handles floating-point values.  */
+	  case double_arg:
+	  case long_double_arg:
+	  case dec32float_arg:
+	  case dec64float_arg:
+	  case dec128float_arg:
+	    printf_floating (stream, current_substring, val_args[i],
+			     piece.argclass);
 	    break;
 	  case ptr_arg:
 	    printf_pointer (stream, current_substring, val_args[i]);
@@ -2692,17 +2576,16 @@ ui_printf (const char *arg, struct ui_fi
 			    _("failed internal consistency check"));
 	  }
 	/* Maybe advance to the next argument.  */
-	if (fpieces[fr].argclass != literal_piece)
+	if (piece.argclass != literal_piece)
 	  ++i;
       }
   }
-  do_cleanups (old_cleanups);
 }
 
 /* Implement the "printf" command.  */
 
 static void
-printf_command (char *arg, int from_tty)
+printf_command (const char *arg, int from_tty)
 {
   ui_printf (arg, gdb_stdout);
   gdb_flush (gdb_stdout);
@@ -2711,7 +2594,7 @@ printf_command (char *arg, int from_tty)
 /* Implement the "eval" command.  */
 
 static void
-eval_command (char *arg, int from_tty)
+eval_command (const char *arg, int from_tty)
 {
   string_file stb;
 
@@ -2719,7 +2602,7 @@ eval_command (char *arg, int from_tty)
 
   std::string expanded = insert_user_defined_cmd_args (stb.c_str ());
 
-  execute_command (&expanded[0], from_tty);
+  execute_command (expanded.c_str (), from_tty);
 }
 
 void
@@ -2731,10 +2614,10 @@ _initialize_printcmd (void)
 
   observer_attach_free_objfile (clear_dangling_display_expressions);
 
-  add_info ("address", address_info,
+  add_info ("address", info_address_command,
 	    _("Describe where symbol SYM is stored."));
 
-  add_info ("symbol", sym_info, _("\
+  add_info ("symbol", info_symbol_command, _("\
 Describe what symbol is at location ADDR.\n\
 Only for symbols with fixed locations (global or static scope)."));
 
@@ -2758,7 +2641,7 @@ with this command or \"print\"."));
 	   _("Print line number and file of definition of variable."));
 #endif
 
-  add_info ("display", display_info, _("\
+  add_info ("display", info_display_command, _("\
 Expressions to display when program stops, with code numbers."));
 
   add_cmd ("undisplay", class_vars, undisplay_command, _("\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/probe.c ./gdb/probe.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/probe.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/probe.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Generic static probe support for GDB.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -36,31 +36,47 @@
 #include "location.h"
 #include <ctype.h>
 #include <algorithm>
+#include "common/gdb_optional.h"
 
-typedef struct bound_probe bound_probe_s;
-DEF_VEC_O (bound_probe_s);
+/* Class that implements the static probe methods for "any" probe.  */
 
-
+class any_static_probe_ops : public static_probe_ops
+{
+public:
+  /* See probe.h.  */
+  bool is_linespec (const char **linespecp) const override;
+
+  /* See probe.h.  */
+  void get_probes (std::vector<probe *> *probesp,
+		   struct objfile *objfile) const override;
+
+  /* See probe.h.  */
+  const char *type_name () const override;
+
+  /* See probe.h.  */
+  std::vector<struct info_probe_column> gen_info_probes_table_header
+    () const override;
+};
+
+/* Static operations associated with a generic probe.  */
+
+const any_static_probe_ops any_static_probe_ops;
 
 /* A helper for parse_probes that decodes a probe specification in
    SEARCH_PSPACE.  It appends matching SALs to RESULT.  */
 
 static void
-parse_probes_in_pspace (const struct probe_ops *probe_ops,
+parse_probes_in_pspace (const static_probe_ops *spops,
 			struct program_space *search_pspace,
 			const char *objfile_namestr,
 			const char *provider,
 			const char *name,
-			struct symtabs_and_lines *result)
+			std::vector<symtab_and_line> *result)
 {
   struct objfile *objfile;
 
   ALL_PSPACE_OBJFILES (search_pspace, objfile)
     {
-      VEC (probe_p) *probes;
-      struct probe *probe;
-      int ix;
-
       if (!objfile->sf || !objfile->sf->sym_probe_fns)
 	continue;
 
@@ -70,61 +86,50 @@ parse_probes_in_pspace (const struct pro
 			   objfile_namestr) != 0)
 	continue;
 
-      probes = objfile->sf->sym_probe_fns->sym_get_probes (objfile);
+      const std::vector<probe *> &probes
+	= objfile->sf->sym_probe_fns->sym_get_probes (objfile);
 
-      for (ix = 0; VEC_iterate (probe_p, probes, ix, probe); ix++)
+      for (probe *p : probes)
 	{
-	  struct symtab_and_line *sal;
-
-	  if (probe_ops != &probe_ops_any && probe->pops != probe_ops)
+	  if (spops != &any_static_probe_ops && p->get_static_ops () != spops)
 	    continue;
 
-	  if (provider && strcmp (probe->provider, provider) != 0)
+	  if (provider != NULL && p->get_provider () != provider)
 	    continue;
 
-	  if (strcmp (probe->name, name) != 0)
+	  if (p->get_name () != name)
 	    continue;
 
-	  ++result->nelts;
-	  result->sals = XRESIZEVEC (struct symtab_and_line, result->sals,
-				     result->nelts);
-	  sal = &result->sals[result->nelts - 1];
-
-	  init_sal (sal);
-
-	  sal->pc = get_probe_address (probe, objfile);
-	  sal->explicit_pc = 1;
-	  sal->section = find_pc_overlay (sal->pc);
-	  sal->pspace = search_pspace;
-	  sal->probe = probe;
-	  sal->objfile = objfile;
+	  symtab_and_line sal;
+	  sal.pc = p->get_relocated_address (objfile);
+	  sal.explicit_pc = 1;
+	  sal.section = find_pc_overlay (sal.pc);
+	  sal.pspace = search_pspace;
+	  sal.prob = p;
+	  sal.objfile = objfile;
+
+	  result->push_back (std::move (sal));
 	}
     }
 }
 
 /* See definition in probe.h.  */
 
-struct symtabs_and_lines
+std::vector<symtab_and_line>
 parse_probes (const struct event_location *location,
 	      struct program_space *search_pspace,
 	      struct linespec_result *canonical)
 {
   char *arg_end, *arg;
   char *objfile_namestr = NULL, *provider = NULL, *name, *p;
-  struct cleanup *cleanup;
-  struct symtabs_and_lines result;
-  const struct probe_ops *probe_ops;
   const char *arg_start, *cs;
 
-  result.sals = NULL;
-  result.nelts = 0;
-
   gdb_assert (event_location_type (location) == PROBE_LOCATION);
   arg_start = get_probe_location (location);
 
   cs = arg_start;
-  probe_ops = probe_linespec_to_ops (&cs);
-  if (probe_ops == NULL)
+  const static_probe_ops *spops = probe_linespec_to_static_ops (&cs);
+  if (spops == NULL)
     error (_("'%s' is not a probe linespec"), arg_start);
 
   arg = (char *) cs;
@@ -135,8 +140,8 @@ parse_probes (const struct event_locatio
   arg_end = skip_to_space (arg);
 
   /* We make a copy here so we can write over parts with impunity.  */
-  arg = savestring (arg, arg_end - arg);
-  cleanup = make_cleanup (xfree, arg);
+  std::string copy (arg, arg_end - arg);
+  arg = &copy[0];
 
   /* Extract each word from the argument, separated by ":"s.  */
   p = strchr (arg, ':');
@@ -174,9 +179,10 @@ parse_probes (const struct event_locatio
   if (objfile_namestr && *objfile_namestr == '\0')
     error (_("invalid objfile name"));
 
+  std::vector<symtab_and_line> result;
   if (search_pspace != NULL)
     {
-      parse_probes_in_pspace (probe_ops, search_pspace, objfile_namestr,
+      parse_probes_in_pspace (spops, search_pspace, objfile_namestr,
 			      provider, name, &result);
     }
   else
@@ -184,11 +190,11 @@ parse_probes (const struct event_locatio
       struct program_space *pspace;
 
       ALL_PSPACES (pspace)
-	parse_probes_in_pspace (probe_ops, pspace, objfile_namestr,
+	parse_probes_in_pspace (spops, pspace, objfile_namestr,
 				provider, name, &result);
     }
 
-  if (result.nelts == 0)
+  if (result.empty ())
     {
       throw_error (NOT_FOUND_ERROR,
 		   _("No probe matching objfile=`%s', provider=`%s', name=`%s'"),
@@ -199,43 +205,37 @@ parse_probes (const struct event_locatio
 
   if (canonical)
     {
-      char *canon;
-
-      canon = savestring (arg_start, arg_end - arg_start);
-      make_cleanup (xfree, canon);
+      std::string canon (arg_start, arg_end - arg_start);
       canonical->special_display = 1;
       canonical->pre_expanded = 1;
-      canonical->location = new_probe_location (canon);
+      canonical->location = new_probe_location (canon.c_str ());
     }
 
-  do_cleanups (cleanup);
-
   return result;
 }
 
 /* See definition in probe.h.  */
 
-VEC (probe_p) *
+std::vector<probe *>
 find_probes_in_objfile (struct objfile *objfile, const char *provider,
 			const char *name)
 {
-  VEC (probe_p) *probes, *result = NULL;
-  int ix;
-  struct probe *probe;
+  std::vector<probe *> result;
 
   if (!objfile->sf || !objfile->sf->sym_probe_fns)
-    return NULL;
+    return result;
 
-  probes = objfile->sf->sym_probe_fns->sym_get_probes (objfile);
-  for (ix = 0; VEC_iterate (probe_p, probes, ix, probe); ix++)
+  const std::vector<probe *> &probes
+    = objfile->sf->sym_probe_fns->sym_get_probes (objfile);
+  for (probe *p : probes)
     {
-      if (strcmp (probe->provider, provider) != 0)
+      if (p->get_provider () != provider)
 	continue;
 
-      if (strcmp (probe->name, name) != 0)
+      if (p->get_name () != name)
 	continue;
 
-      VEC_safe_push (probe_p, result, probe);
+      result.push_back (p);
     }
 
   return result;
@@ -250,25 +250,22 @@ find_probe_by_pc (CORE_ADDR pc)
   struct bound_probe result;
 
   result.objfile = NULL;
-  result.probe = NULL;
+  result.prob = NULL;
 
   ALL_OBJFILES (objfile)
   {
-    VEC (probe_p) *probes;
-    int ix;
-    struct probe *probe;
-
     if (!objfile->sf || !objfile->sf->sym_probe_fns
 	|| objfile->sect_index_text == -1)
       continue;
 
     /* If this proves too inefficient, we can replace with a hash.  */
-    probes = objfile->sf->sym_probe_fns->sym_get_probes (objfile);
-    for (ix = 0; VEC_iterate (probe_p, probes, ix, probe); ix++)
-      if (get_probe_address (probe, objfile) == pc)
+    const std::vector<probe *> &probes
+      = objfile->sf->sym_probe_fns->sym_get_probes (objfile);
+    for (probe *p : probes)
+      if (p->get_relocated_address (objfile) == pc)
 	{
 	  result.objfile = objfile;
-	  result.probe = probe;
+	  result.prob = p;
 	  return result;
 	}
   }
@@ -279,153 +276,115 @@ find_probe_by_pc (CORE_ADDR pc)
 
 
 /* Make a vector of probes matching OBJNAME, PROVIDER, and PROBE_NAME.
-   If POPS is not NULL, only probes of this certain probe_ops will match.
-   Each argument is a regexp, or NULL, which matches anything.  */
-
-static VEC (bound_probe_s) *
-collect_probes (char *objname, char *provider, char *probe_name,
-		const struct probe_ops *pops)
+   If SPOPS is not &any_static_probe_ops, only probes related to this
+   specific static probe ops will match.  Each argument is a regexp,
+   or NULL, which matches anything.  */
+
+static std::vector<bound_probe>
+collect_probes (const std::string &objname, const std::string &provider,
+		const std::string &probe_name, const static_probe_ops *spops)
 {
   struct objfile *objfile;
-  VEC (bound_probe_s) *result = NULL;
-  struct cleanup *cleanup, *cleanup_temps;
-  regex_t obj_pat, prov_pat, probe_pat;
-
-  cleanup = make_cleanup (VEC_cleanup (bound_probe_s), &result);
-
-  cleanup_temps = make_cleanup (null_cleanup, NULL);
-  if (provider != NULL)
-    compile_rx_or_error (&prov_pat, provider, _("Invalid provider regexp"));
-  if (probe_name != NULL)
-    compile_rx_or_error (&probe_pat, probe_name, _("Invalid probe regexp"));
-  if (objname != NULL)
-    compile_rx_or_error (&obj_pat, objname, _("Invalid object file regexp"));
+  std::vector<bound_probe> result;
+  gdb::optional<compiled_regex> obj_pat, prov_pat, probe_pat;
+
+  if (!provider.empty ())
+    prov_pat.emplace (provider.c_str (), REG_NOSUB,
+		      _("Invalid provider regexp"));
+  if (!probe_name.empty ())
+    probe_pat.emplace (probe_name.c_str (), REG_NOSUB,
+		       _("Invalid probe regexp"));
+  if (!objname.empty ())
+    obj_pat.emplace (objname.c_str (), REG_NOSUB,
+		     _("Invalid object file regexp"));
 
   ALL_OBJFILES (objfile)
     {
-      VEC (probe_p) *probes;
-      struct probe *probe;
-      int ix;
-
       if (! objfile->sf || ! objfile->sf->sym_probe_fns)
 	continue;
 
-      if (objname)
+      if (obj_pat)
 	{
-	  if (regexec (&obj_pat, objfile_name (objfile), 0, NULL, 0) != 0)
+	  if (obj_pat->exec (objfile_name (objfile), 0, NULL, 0) != 0)
 	    continue;
 	}
 
-      probes = objfile->sf->sym_probe_fns->sym_get_probes (objfile);
+      const std::vector<probe *> &probes
+	= objfile->sf->sym_probe_fns->sym_get_probes (objfile);
 
-      for (ix = 0; VEC_iterate (probe_p, probes, ix, probe); ix++)
+      for (probe *p : probes)
 	{
-	  struct bound_probe bound;
-
-	  if (pops != NULL && probe->pops != pops)
+	  if (spops != &any_static_probe_ops && p->get_static_ops () != spops)
 	    continue;
 
-	  if (provider
-	      && regexec (&prov_pat, probe->provider, 0, NULL, 0) != 0)
+	  if (prov_pat
+	      && prov_pat->exec (p->get_provider ().c_str (), 0, NULL, 0) != 0)
 	    continue;
 
-	  if (probe_name
-	      && regexec (&probe_pat, probe->name, 0, NULL, 0) != 0)
+	  if (probe_pat
+	      && probe_pat->exec (p->get_name ().c_str (), 0, NULL, 0) != 0)
 	    continue;
 
-	  bound.objfile = objfile;
-	  bound.probe = probe;
-	  VEC_safe_push (bound_probe_s, result, &bound);
+	  result.emplace_back (p, objfile);
 	}
     }
 
-  do_cleanups (cleanup_temps);
-  discard_cleanups (cleanup);
   return result;
 }
 
 /* A qsort comparison function for bound_probe_s objects.  */
 
-static int
-compare_probes (const void *a, const void *b)
+static bool
+compare_probes (const bound_probe &a, const bound_probe &b)
 {
-  const struct bound_probe *pa = (const struct bound_probe *) a;
-  const struct bound_probe *pb = (const struct bound_probe *) b;
   int v;
 
-  v = strcmp (pa->probe->provider, pb->probe->provider);
-  if (v)
-    return v;
-
-  v = strcmp (pa->probe->name, pb->probe->name);
-  if (v)
-    return v;
-
-  if (pa->probe->address < pb->probe->address)
-    return -1;
-  if (pa->probe->address > pb->probe->address)
-    return 1;
+  v = a.prob->get_provider ().compare (b.prob->get_provider ());
+  if (v != 0)
+    return v < 0;
+
+  v = a.prob->get_name ().compare (b.prob->get_name ());
+  if (v != 0)
+    return v < 0;
 
-  return strcmp (objfile_name (pa->objfile), objfile_name (pb->objfile));
+  if (a.prob->get_address () != b.prob->get_address ())
+    return a.prob->get_address () < b.prob->get_address ();
+
+  return strcmp (objfile_name (a.objfile), objfile_name (b.objfile)) < 0;
 }
 
 /* Helper function that generate entries in the ui_out table being
    crafted by `info_probes_for_ops'.  */
 
 static void
-gen_ui_out_table_header_info (VEC (bound_probe_s) *probes,
-			      const struct probe_ops *p)
+gen_ui_out_table_header_info (const std::vector<bound_probe> &probes,
+			      const static_probe_ops *spops)
 {
   /* `headings' refers to the names of the columns when printing `info
      probes'.  */
-  VEC (info_probe_column_s) *headings = NULL;
-  struct cleanup *c;
-  info_probe_column_s *column;
-  size_t headings_size;
-  int ix;
-
-  gdb_assert (p != NULL);
-
-  if (p->gen_info_probes_table_header == NULL
-      && p->gen_info_probes_table_values == NULL)
-    return;
+  gdb_assert (spops != NULL);
 
-  gdb_assert (p->gen_info_probes_table_header != NULL
-	      && p->gen_info_probes_table_values != NULL);
+  std::vector<struct info_probe_column> headings
+    = spops->gen_info_probes_table_header ();
 
-  c = make_cleanup (VEC_cleanup (info_probe_column_s), &headings);
-  p->gen_info_probes_table_header (&headings);
-
-  headings_size = VEC_length (info_probe_column_s, headings);
-
-  for (ix = 0;
-       VEC_iterate (info_probe_column_s, headings, ix, column);
-       ++ix)
+  for (const info_probe_column &column : headings)
     {
-      struct bound_probe *probe;
-      int jx;
-      size_t size_max = strlen (column->print_name);
+      size_t size_max = strlen (column.print_name);
 
-      for (jx = 0; VEC_iterate (bound_probe_s, probes, jx, probe); ++jx)
+      for (const bound_probe &probe : probes)
 	{
 	  /* `probe_fields' refers to the values of each new field that this
 	     probe will display.  */
-	  VEC (const_char_ptr) *probe_fields = NULL;
-	  struct cleanup *c2;
-	  const char *val;
-	  int kx;
 
-	  if (probe->probe->pops != p)
+	  if (probe.prob->get_static_ops () != spops)
 	    continue;
 
-	  c2 = make_cleanup (VEC_cleanup (const_char_ptr), &probe_fields);
-	  p->gen_info_probes_table_values (probe->probe, &probe_fields);
+	  std::vector<const char *> probe_fields
+	    = probe.prob->gen_info_probes_table_values ();
 
-	  gdb_assert (VEC_length (const_char_ptr, probe_fields)
-		      == headings_size);
+	  gdb_assert (probe_fields.size () == headings.size ());
 
-	  for (kx = 0; VEC_iterate (const_char_ptr, probe_fields, kx, val);
-	       ++kx)
+	  for (const char *val : probe_fields)
 	    {
 	      /* It is valid to have a NULL value here, which means that the
 		 backend does not have something to write and this particular
@@ -435,285 +394,216 @@ gen_ui_out_table_header_info (VEC (bound
 
 	      size_max = std::max (strlen (val), size_max);
 	    }
-	  do_cleanups (c2);
 	}
 
       current_uiout->table_header (size_max, ui_left,
-				   column->field_name, column->print_name);
+				   column.field_name, column.print_name);
     }
-
-  do_cleanups (c);
 }
 
 /* Helper function to print not-applicable strings for all the extra
-   columns defined in a probe_ops.  */
+   columns defined in a static_probe_ops.  */
 
 static void
-print_ui_out_not_applicables (const struct probe_ops *pops)
+print_ui_out_not_applicables (const static_probe_ops *spops)
 {
-  struct cleanup *c;
-  VEC (info_probe_column_s) *headings = NULL;
-  info_probe_column_s *column;
-  int ix;
+   std::vector<struct info_probe_column> headings
+     = spops->gen_info_probes_table_header ();
 
-  if (pops->gen_info_probes_table_header == NULL)
-    return;
-
-  c = make_cleanup (VEC_cleanup (info_probe_column_s), &headings);
-  pops->gen_info_probes_table_header (&headings);
-
-  for (ix = 0;
-       VEC_iterate (info_probe_column_s, headings, ix, column);
-       ++ix)
-    current_uiout->field_string (column->field_name, _("n/a"));
-
-  do_cleanups (c);
+  for (const info_probe_column &column : headings)
+    current_uiout->field_string (column.field_name, _("n/a"));
 }
 
 /* Helper function to print extra information about a probe and an objfile
    represented by PROBE.  */
 
 static void
-print_ui_out_info (struct probe *probe)
+print_ui_out_info (probe *probe)
 {
-  int ix;
-  int j = 0;
   /* `values' refers to the actual values of each new field in the output
      of `info probe'.  `headings' refers to the names of each new field.  */
-  VEC (const_char_ptr) *values = NULL;
-  VEC (info_probe_column_s) *headings = NULL;
-  info_probe_column_s *column;
-  struct cleanup *c;
-
   gdb_assert (probe != NULL);
-  gdb_assert (probe->pops != NULL);
-
-  if (probe->pops->gen_info_probes_table_header == NULL
-      && probe->pops->gen_info_probes_table_values == NULL)
-    return;
-
-  gdb_assert (probe->pops->gen_info_probes_table_header != NULL
-	      && probe->pops->gen_info_probes_table_values != NULL);
-
-  c = make_cleanup (VEC_cleanup (info_probe_column_s), &headings);
-  make_cleanup (VEC_cleanup (const_char_ptr), &values);
+  std::vector<struct info_probe_column> headings
+    = probe->get_static_ops ()->gen_info_probes_table_header ();
+  std::vector<const char *> values
+    = probe->gen_info_probes_table_values ();
 
-  probe->pops->gen_info_probes_table_header (&headings);
-  probe->pops->gen_info_probes_table_values (probe, &values);
+  gdb_assert (headings.size () == values.size ());
 
-  gdb_assert (VEC_length (info_probe_column_s, headings)
-	      == VEC_length (const_char_ptr, values));
-
-  for (ix = 0;
-       VEC_iterate (info_probe_column_s, headings, ix, column);
-       ++ix)
+  for (int ix = 0; ix < headings.size (); ++ix)
     {
-      const char *val = VEC_index (const_char_ptr, values, j++);
+      struct info_probe_column column = headings[ix];
+      const char *val = values[ix];
 
       if (val == NULL)
-	current_uiout->field_skip (column->field_name);
+	current_uiout->field_skip (column.field_name);
       else
-	current_uiout->field_string (column->field_name, val);
+	current_uiout->field_string (column.field_name, val);
     }
-
-  do_cleanups (c);
 }
 
 /* Helper function that returns the number of extra fields which POPS will
    need.  */
 
 static int
-get_number_extra_fields (const struct probe_ops *pops)
+get_number_extra_fields (const static_probe_ops *spops)
 {
-  VEC (info_probe_column_s) *headings = NULL;
-  struct cleanup *c;
-  int n;
-
-  if (pops->gen_info_probes_table_header == NULL)
-    return 0;
-
-  c = make_cleanup (VEC_cleanup (info_probe_column_s), &headings);
-  pops->gen_info_probes_table_header (&headings);
-
-  n = VEC_length (info_probe_column_s, headings);
-
-  do_cleanups (c);
-
-  return n;
+  return spops->gen_info_probes_table_header ().size ();
 }
 
-/* Helper function that returns 1 if there is a probe in PROBES
-   featuring the given POPS.  It returns 0 otherwise.  */
+/* Helper function that returns true if there is a probe in PROBES
+   featuring the given SPOPS.  It returns false otherwise.  */
 
-static int
-exists_probe_with_pops (VEC (bound_probe_s) *probes,
-			const struct probe_ops *pops)
+static bool
+exists_probe_with_spops (const std::vector<bound_probe> &probes,
+			 const static_probe_ops *spops)
 {
-  struct bound_probe *probe;
-  int ix;
-
-  for (ix = 0; VEC_iterate (bound_probe_s, probes, ix, probe); ++ix)
-    if (probe->probe->pops == pops)
-      return 1;
+  for (const bound_probe &probe : probes)
+    if (probe.prob->get_static_ops () == spops)
+      return true;
 
-  return 0;
+  return false;
 }
 
 /* Helper function that parses a probe linespec of the form [PROVIDER
    [PROBE [OBJNAME]]] from the provided string STR.  */
 
 static void
-parse_probe_linespec (const char *str, char **provider,
-		      char **probe_name, char **objname)
+parse_probe_linespec (const char *str, std::string *provider,
+		      std::string *probe_name, std::string *objname)
 {
-  *probe_name = *objname = NULL;
+  *probe_name = *objname = "";
 
-  *provider = extract_arg_const (&str);
-  if (*provider != NULL)
+  *provider = extract_arg (&str);
+  if (!provider->empty ())
     {
-      *probe_name = extract_arg_const (&str);
-      if (*probe_name != NULL)
-	*objname = extract_arg_const (&str);
+      *probe_name = extract_arg (&str);
+      if (!probe_name->empty ())
+	*objname = extract_arg (&str);
     }
 }
 
 /* See comment in probe.h.  */
 
 void
-info_probes_for_ops (const char *arg, int from_tty,
-		     const struct probe_ops *pops)
+info_probes_for_spops (const char *arg, int from_tty,
+		       const static_probe_ops *spops)
 {
-  char *provider, *probe_name = NULL, *objname = NULL;
-  struct cleanup *cleanup = make_cleanup (null_cleanup, NULL);
-  VEC (bound_probe_s) *probes;
-  int i, any_found;
+  std::string provider, probe_name, objname;
+  int any_found;
   int ui_out_extra_fields = 0;
   size_t size_addr;
   size_t size_name = strlen ("Name");
   size_t size_objname = strlen ("Object");
   size_t size_provider = strlen ("Provider");
   size_t size_type = strlen ("Type");
-  struct bound_probe *probe;
   struct gdbarch *gdbarch = get_current_arch ();
 
   parse_probe_linespec (arg, &provider, &probe_name, &objname);
-  make_cleanup (xfree, provider);
-  make_cleanup (xfree, probe_name);
-  make_cleanup (xfree, objname);
 
-  probes = collect_probes (objname, provider, probe_name, pops);
-  make_cleanup (VEC_cleanup (probe_p), &probes);
+  std::vector<bound_probe> probes
+    = collect_probes (objname, provider, probe_name, spops);
 
-  if (pops == NULL)
+  if (spops == &any_static_probe_ops)
     {
-      const struct probe_ops *po;
-      int ix;
-
-      /* If the probe_ops is NULL, it means the user has requested a "simple"
-	 `info probes', i.e., she wants to print all information about all
-	 probes.  For that, we have to identify how many extra fields we will
-	 need to add in the ui_out table.
-
-	 To do that, we iterate over all probe_ops, querying each one about
-	 its extra fields, and incrementing `ui_out_extra_fields' to reflect
-	 that number.  But note that we ignore the probe_ops for which no probes
-	 are defined with the given search criteria.  */
+      /* If SPOPS is &any_static_probe_ops, it means the user has
+	 requested a "simple" `info probes', i.e., she wants to print
+	 all information about all probes.  For that, we have to
+	 identify how many extra fields we will need to add in the
+	 ui_out table.
+
+	 To do that, we iterate over all static_probe_ops, querying
+	 each one about its extra fields, and incrementing
+	 `ui_out_extra_fields' to reflect that number.  But note that
+	 we ignore the static_probe_ops for which no probes are
+	 defined with the given search criteria.  */
 
-      for (ix = 0; VEC_iterate (probe_ops_cp, all_probe_ops, ix, po); ++ix)
-	if (exists_probe_with_pops (probes, po))
+      for (const static_probe_ops *po : all_static_probe_ops)
+	if (exists_probe_with_spops (probes, po))
 	  ui_out_extra_fields += get_number_extra_fields (po);
     }
   else
-    ui_out_extra_fields = get_number_extra_fields (pops);
+    ui_out_extra_fields = get_number_extra_fields (spops);
 
-  make_cleanup_ui_out_table_begin_end (current_uiout,
-				       5 + ui_out_extra_fields,
-				       VEC_length (bound_probe_s, probes),
-				       "StaticProbes");
-
-  if (!VEC_empty (bound_probe_s, probes))
-    qsort (VEC_address (bound_probe_s, probes),
-	   VEC_length (bound_probe_s, probes),
-	   sizeof (bound_probe_s), compare_probes);
-
-  /* What's the size of an address in our architecture?  */
-  size_addr = gdbarch_addr_bit (gdbarch) == 64 ? 18 : 10;
-
-  /* Determining the maximum size of each field (`type', `provider',
-     `name' and `objname').  */
-  for (i = 0; VEC_iterate (bound_probe_s, probes, i, probe); ++i)
-    {
-      const char *probe_type = probe->probe->pops->type_name (probe->probe);
-
-      size_type = std::max (strlen (probe_type), size_type);
-      size_name = std::max (strlen (probe->probe->name), size_name);
-      size_provider = std::max (strlen (probe->probe->provider), size_provider);
-      size_objname = std::max (strlen (objfile_name (probe->objfile)),
-			       size_objname);
-    }
-
-  current_uiout->table_header (size_type, ui_left, "type", _("Type"));
-  current_uiout->table_header (size_provider, ui_left, "provider",
-			       _("Provider"));
-  current_uiout->table_header (size_name, ui_left, "name", _("Name"));
-  current_uiout->table_header (size_addr, ui_left, "addr", _("Where"));
-
-  if (pops == NULL)
-    {
-      const struct probe_ops *po;
-      int ix;
-
-      /* We have to generate the table header for each new probe type
-	 that we will print.  Note that this excludes probe types not
-	 having any defined probe with the search criteria.  */
-      for (ix = 0; VEC_iterate (probe_ops_cp, all_probe_ops, ix, po); ++ix)
-	if (exists_probe_with_pops (probes, po))
-	  gen_ui_out_table_header_info (probes, po);
-    }
-  else
-    gen_ui_out_table_header_info (probes, pops);
-
-  current_uiout->table_header (size_objname, ui_left, "object", _("Object"));
-  current_uiout->table_body ();
-
-  for (i = 0; VEC_iterate (bound_probe_s, probes, i, probe); ++i)
-    {
-      struct cleanup *inner;
-      const char *probe_type = probe->probe->pops->type_name (probe->probe);
-
-      inner = make_cleanup_ui_out_tuple_begin_end (current_uiout, "probe");
-
-      current_uiout->field_string ("type",probe_type);
-      current_uiout->field_string ("provider", probe->probe->provider);
-      current_uiout->field_string ("name", probe->probe->name);
-      current_uiout->field_core_addr (
-	"addr", probe->probe->arch,
-	get_probe_address (probe->probe, probe->objfile));
-
-      if (pops == NULL)
-	{
-	  const struct probe_ops *po;
-	  int ix;
-
-	  for (ix = 0; VEC_iterate (probe_ops_cp, all_probe_ops, ix, po);
-	       ++ix)
-	    if (probe->probe->pops == po)
-	      print_ui_out_info (probe->probe);
-	    else if (exists_probe_with_pops (probes, po))
-	      print_ui_out_not_applicables (po);
-	}
-      else
-	print_ui_out_info (probe->probe);
-
-      current_uiout->field_string ("object",
-			   objfile_name (probe->objfile));
-      current_uiout->text ("\n");
-
-      do_cleanups (inner);
-    }
+  {
+    ui_out_emit_table table_emitter (current_uiout,
+				     5 + ui_out_extra_fields,
+				     probes.size (), "StaticProbes");
+
+    std::sort (probes.begin (), probes.end (), compare_probes);
+
+    /* What's the size of an address in our architecture?  */
+    size_addr = gdbarch_addr_bit (gdbarch) == 64 ? 18 : 10;
+
+    /* Determining the maximum size of each field (`type', `provider',
+       `name' and `objname').  */
+    for (const bound_probe &probe : probes)
+      {
+	const char *probe_type = probe.prob->get_static_ops ()->type_name ();
+
+	size_type = std::max (strlen (probe_type), size_type);
+	size_name = std::max (probe.prob->get_name ().size (), size_name);
+	size_provider = std::max (probe.prob->get_provider ().size (),
+				  size_provider);
+	size_objname = std::max (strlen (objfile_name (probe.objfile)),
+				 size_objname);
+      }
+
+    current_uiout->table_header (size_type, ui_left, "type", _("Type"));
+    current_uiout->table_header (size_provider, ui_left, "provider",
+				 _("Provider"));
+    current_uiout->table_header (size_name, ui_left, "name", _("Name"));
+    current_uiout->table_header (size_addr, ui_left, "addr", _("Where"));
+
+    if (spops == &any_static_probe_ops)
+      {
+	/* We have to generate the table header for each new probe type
+	   that we will print.  Note that this excludes probe types not
+	   having any defined probe with the search criteria.  */
+	for (const static_probe_ops *po : all_static_probe_ops)
+	  if (exists_probe_with_spops (probes, po))
+	    gen_ui_out_table_header_info (probes, po);
+      }
+    else
+      gen_ui_out_table_header_info (probes, spops);
+
+    current_uiout->table_header (size_objname, ui_left, "object", _("Object"));
+    current_uiout->table_body ();
+
+    for (const bound_probe &probe : probes)
+      {
+	const char *probe_type = probe.prob->get_static_ops ()->type_name ();
+
+	ui_out_emit_tuple tuple_emitter (current_uiout, "probe");
+
+	current_uiout->field_string ("type", probe_type);
+	current_uiout->field_string ("provider",
+				     probe.prob->get_provider ().c_str ());
+	current_uiout->field_string ("name", probe.prob->get_name ().c_str ());
+	current_uiout->field_core_addr ("addr", probe.prob->get_gdbarch (),
+					probe.prob->get_relocated_address
+					(probe.objfile));
+
+	if (spops == &any_static_probe_ops)
+	  {
+	    for (const static_probe_ops *po : all_static_probe_ops)
+	      {
+		if (probe.prob->get_static_ops () == po)
+		  print_ui_out_info (probe.prob);
+		else if (exists_probe_with_spops (probes, po))
+		  print_ui_out_not_applicables (po);
+	      }
+	  }
+	else
+	  print_ui_out_info (probe.prob);
+
+	current_uiout->field_string ("object",
+				     objfile_name (probe.objfile));
+	current_uiout->text ("\n");
+      }
 
-  any_found = !VEC_empty (bound_probe_s, probes);
-  do_cleanups (cleanup);
+    any_found = !probes.empty ();
+  }
 
   if (!any_found)
     current_uiout->message (_("No probes matched.\n"));
@@ -722,130 +612,79 @@ info_probes_for_ops (const char *arg, in
 /* Implementation of the `info probes' command.  */
 
 static void
-info_probes_command (char *arg, int from_tty)
+info_probes_command (const char *arg, int from_tty)
 {
-  info_probes_for_ops (arg, from_tty, NULL);
+  info_probes_for_spops (arg, from_tty, &any_static_probe_ops);
 }
 
 /* Implementation of the `enable probes' command.  */
 
 static void
-enable_probes_command (char *arg, int from_tty)
+enable_probes_command (const char *arg, int from_tty)
 {
-  char *provider, *probe_name = NULL, *objname = NULL;
-  struct cleanup *cleanup = make_cleanup (null_cleanup, NULL);
-  VEC (bound_probe_s) *probes;
-  struct bound_probe *probe;
-  int i;
+  std::string provider, probe_name, objname;
 
   parse_probe_linespec ((const char *) arg, &provider, &probe_name, &objname);
-  make_cleanup (xfree, provider);
-  make_cleanup (xfree, probe_name);
-  make_cleanup (xfree, objname);
 
-  probes = collect_probes (objname, provider, probe_name, NULL);
-  if (VEC_empty (bound_probe_s, probes))
+  std::vector<bound_probe> probes
+    = collect_probes (objname, provider, probe_name, &any_static_probe_ops);
+  if (probes.empty ())
     {
       current_uiout->message (_("No probes matched.\n"));
-      do_cleanups (cleanup);
       return;
     }
 
   /* Enable the selected probes, provided their backends support the
      notion of enabling a probe.  */
-  for (i = 0; VEC_iterate (bound_probe_s, probes, i, probe); ++i)
+  for (const bound_probe &probe: probes)
     {
-      const struct probe_ops *pops = probe->probe->pops;
-
-      if (pops->enable_probe != NULL)
+      if (probe.prob->get_static_ops ()->can_enable ())
 	{
-	  pops->enable_probe (probe->probe);
+	  probe.prob->enable ();
 	  current_uiout->message (_("Probe %s:%s enabled.\n"),
-				  probe->probe->provider, probe->probe->name);
+				  probe.prob->get_provider ().c_str (),
+				  probe.prob->get_name ().c_str ());
 	}
       else
 	current_uiout->message (_("Probe %s:%s cannot be enabled.\n"),
-				probe->probe->provider, probe->probe->name);
+				probe.prob->get_provider ().c_str (),
+				probe.prob->get_name ().c_str ());
     }
-
-  do_cleanups (cleanup);
 }
 
 /* Implementation of the `disable probes' command.  */
 
 static void
-disable_probes_command (char *arg, int from_tty)
+disable_probes_command (const char *arg, int from_tty)
 {
-  char *provider, *probe_name = NULL, *objname = NULL;
-  struct cleanup *cleanup = make_cleanup (null_cleanup, NULL);
-  VEC (bound_probe_s) *probes;
-  struct bound_probe *probe;
-  int i;
+  std::string provider, probe_name, objname;
 
   parse_probe_linespec ((const char *) arg, &provider, &probe_name, &objname);
-  make_cleanup (xfree, provider);
-  make_cleanup (xfree, probe_name);
-  make_cleanup (xfree, objname);
 
-  probes = collect_probes (objname, provider, probe_name, NULL /* pops */);
-  if (VEC_empty (bound_probe_s, probes))
+  std::vector<bound_probe> probes
+    = collect_probes (objname, provider, probe_name, &any_static_probe_ops);
+  if (probes.empty ())
     {
       current_uiout->message (_("No probes matched.\n"));
-      do_cleanups (cleanup);
       return;
     }
 
   /* Disable the selected probes, provided their backends support the
      notion of enabling a probe.  */
-  for (i = 0; VEC_iterate (bound_probe_s, probes, i, probe); ++i)
+  for (const bound_probe &probe : probes)
     {
-      const struct probe_ops *pops = probe->probe->pops;
-
-      if (pops->disable_probe != NULL)
+      if (probe.prob->get_static_ops ()->can_enable ())
 	{
-	  pops->disable_probe (probe->probe);
+	  probe.prob->disable ();
 	  current_uiout->message (_("Probe %s:%s disabled.\n"),
-				  probe->probe->provider, probe->probe->name);
+				  probe.prob->get_provider ().c_str (),
+				  probe.prob->get_name ().c_str ());
 	}
       else
 	current_uiout->message (_("Probe %s:%s cannot be disabled.\n"),
-				probe->probe->provider, probe->probe->name);
+				probe.prob->get_provider ().c_str (),
+				probe.prob->get_name ().c_str ());
     }
-
-  do_cleanups (cleanup);
-}
-
-/* See comments in probe.h.  */
-
-CORE_ADDR
-get_probe_address (struct probe *probe, struct objfile *objfile)
-{
-  return probe->pops->get_probe_address (probe, objfile);
-}
-
-/* See comments in probe.h.  */
-
-unsigned
-get_probe_argument_count (struct probe *probe, struct frame_info *frame)
-{
-  return probe->pops->get_probe_argument_count (probe, frame);
-}
-
-/* See comments in probe.h.  */
-
-int
-can_evaluate_probe_arguments (struct probe *probe)
-{
-  return probe->pops->can_evaluate_probe_arguments (probe);
-}
-
-/* See comments in probe.h.  */
-
-struct value *
-evaluate_probe_argument (struct probe *probe, unsigned n,
-			 struct frame_info *frame)
-{
-  return probe->pops->evaluate_probe_argument (probe, n, frame);
 }
 
 /* See comments in probe.h.  */
@@ -857,27 +696,24 @@ probe_safe_evaluate_at_pc (struct frame_
   unsigned n_args;
 
   probe = find_probe_by_pc (get_frame_pc (frame));
-  if (!probe.probe)
+  if (!probe.prob)
     return NULL;
 
-  n_args = get_probe_argument_count (probe.probe, frame);
+  n_args = probe.prob->get_argument_count (frame);
   if (n >= n_args)
     return NULL;
 
-  return evaluate_probe_argument (probe.probe, n, frame);
+  return probe.prob->evaluate_argument (n, frame);
 }
 
 /* See comment in probe.h.  */
 
-const struct probe_ops *
-probe_linespec_to_ops (const char **linespecp)
+const struct static_probe_ops *
+probe_linespec_to_static_ops (const char **linespecp)
 {
-  int ix;
-  const struct probe_ops *probe_ops;
-
-  for (ix = 0; VEC_iterate (probe_ops_cp, all_probe_ops, ix, probe_ops); ix++)
-    if (probe_ops->is_linespec (linespecp))
-      return probe_ops;
+  for (const static_probe_ops *ops : all_static_probe_ops)
+    if (ops->is_linespec (linespecp))
+      return ops;
 
   return NULL;
 }
@@ -905,31 +741,40 @@ probe_is_linespec_by_keyword (const char
   return 0;
 }
 
-/* Implementation of `is_linespec' method for `struct probe_ops'.  */
+/* Implementation of `is_linespec' method.  */
 
-static int
-probe_any_is_linespec (const char **linespecp)
+bool
+any_static_probe_ops::is_linespec (const char **linespecp) const
 {
   static const char *const keywords[] = { "-p", "-probe", NULL };
 
   return probe_is_linespec_by_keyword (linespecp, keywords);
 }
 
-/* Dummy method used for `probe_ops_any'.  */
+/* Implementation of 'get_probes' method.  */
 
-static void
-probe_any_get_probes (VEC (probe_p) **probesp, struct objfile *objfile)
+void
+any_static_probe_ops::get_probes (std::vector<probe *> *probesp,
+				  struct objfile *objfile) const
 {
   /* No probes can be provided by this dummy backend.  */
 }
 
-/* Operations associated with a generic probe.  */
+/* Implementation of the 'type_name' method.  */
 
-const struct probe_ops probe_ops_any =
+const char *
+any_static_probe_ops::type_name () const
 {
-  probe_any_is_linespec,
-  probe_any_get_probes,
-};
+  return NULL;
+}
+
+/* Implementation of the 'gen_info_probes_table_header' method.  */
+
+std::vector<struct info_probe_column>
+any_static_probe_ops::gen_info_probes_table_header () const
+{
+  return std::vector<struct info_probe_column> ();
+}
 
 /* See comments in probe.h.  */
 
@@ -968,17 +813,16 @@ compute_probe_arg (struct gdbarch *arch,
   CORE_ADDR pc = get_frame_pc (frame);
   int sel = (int) (uintptr_t) data;
   struct bound_probe pc_probe;
-  const struct sym_probe_fns *pc_probe_fns;
   unsigned n_args;
 
   /* SEL == -1 means "_probe_argc".  */
   gdb_assert (sel >= -1);
 
   pc_probe = find_probe_by_pc (pc);
-  if (pc_probe.probe == NULL)
+  if (pc_probe.prob == NULL)
     error (_("No probe at PC %s"), core_addr_to_string (pc));
 
-  n_args = get_probe_argument_count (pc_probe.probe, frame);
+  n_args = pc_probe.prob->get_argument_count (frame);
   if (sel == -1)
     return value_from_longest (builtin_type (arch)->builtin_int, n_args);
 
@@ -986,7 +830,7 @@ compute_probe_arg (struct gdbarch *arch,
     error (_("Invalid probe argument %d -- probe has %u arguments available"),
 	   sel, n_args);
 
-  return evaluate_probe_argument (pc_probe.probe, sel, frame);
+  return pc_probe.prob->evaluate_argument (sel, frame);
 }
 
 /* This is called to compile one of the $_probe_arg* convenience
@@ -999,7 +843,6 @@ compile_probe_arg (struct internalvar *i
   CORE_ADDR pc = expr->scope;
   int sel = (int) (uintptr_t) data;
   struct bound_probe pc_probe;
-  const struct sym_probe_fns *pc_probe_fns;
   int n_args;
   struct frame_info *frame = get_selected_frame (NULL);
 
@@ -1007,10 +850,10 @@ compile_probe_arg (struct internalvar *i
   gdb_assert (sel >= -1);
 
   pc_probe = find_probe_by_pc (pc);
-  if (pc_probe.probe == NULL)
+  if (pc_probe.prob == NULL)
     error (_("No probe at PC %s"), core_addr_to_string (pc));
 
-  n_args = get_probe_argument_count (pc_probe.probe, frame);
+  n_args = pc_probe.prob->get_argument_count (frame);
 
   if (sel == -1)
     {
@@ -1025,7 +868,7 @@ compile_probe_arg (struct internalvar *i
     error (_("Invalid probe argument %d -- probe has %d arguments available"),
 	   sel, n_args);
 
-  pc_probe.probe->pops->compile_to_ax (pc_probe.probe, expr, value, sel);
+  pc_probe.prob->compile_to_ax (expr, value, sel);
 }
 
 static const struct internalvar_funcs probe_funcs =
@@ -1036,14 +879,12 @@ static const struct internalvar_funcs pr
 };
 
 
-VEC (probe_ops_cp) *all_probe_ops;
-
-void _initialize_probe (void);
+std::vector<const static_probe_ops *> all_static_probe_ops;
 
 void
 _initialize_probe (void)
 {
-  VEC_safe_push (probe_ops_cp, all_probe_ops, &probe_ops_any);
+  all_static_probe_ops.push_back (&any_static_probe_ops);
 
   create_internalvar_type_lazy ("_probe_argc", &probe_funcs,
 				(void *) (uintptr_t) -1);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/probe.h ./gdb/probe.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/probe.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/probe.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Generic SDT probe support for GDB.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -21,14 +21,6 @@
 #define PROBE_H 1
 
 struct event_location;
-
-#include "gdb_vecs.h"
-
-/* Definition of a vector of probes.  */
-
-typedef struct probe *probe_p;
-DEF_VEC_P (probe_p);
-
 struct linespec_result;
 
 /* Structure useful for passing the header names in the method
@@ -38,7 +30,6 @@ struct info_probe_column
   {
     /* The internal name of the field.  This string cannot be capitalized nor
        localized, e.g., "extra_field".  */
-
     const char *field_name;
 
     /* The field name to be printed in the `info probes' command.  This
@@ -46,127 +37,57 @@ struct info_probe_column
     const char *print_name;
   };
 
-typedef struct info_probe_column info_probe_column_s;
-DEF_VEC_O (info_probe_column_s);
-
-/* Operations associated with a probe.  */
+/* Operations that act on probes, but are specific to each backend.
+   These methods do not go into the 'class probe' because they do not
+   act on a single probe; instead, they are used to operate on many
+   probes at once, or to provide information about the probe backend
+   itself, instead of a single probe.
+
+   Each probe backend needs to inherit this class and implement all of
+   the virtual functions specified here.  Then, an object shall be
+   instantiated and added (or "registered") to the
+   ALL_STATIC_PROBE_OPS vector so that the frontend probe interface
+   can use it in the generic probe functions.  */
+
+class static_probe_ops
+{
+public:
+  /* Method responsible for verifying if LINESPECP is a valid linespec
+     for a probe breakpoint.  It should return true if it is, or false
+     if it is not.  It also should update LINESPECP in order to
+     discard the breakpoint option associated with this linespec.  For
+     example, if the option is `-probe', and the LINESPECP is `-probe
+     abc', the function should return 1 and set LINESPECP to
+     `abc'.  */
+  virtual bool is_linespec (const char **linespecp) const = 0;
+
+  /* Function that should fill PROBES with known probes from OBJFILE.  */
+  virtual void get_probes (std::vector<probe *> *probes,
+			    struct objfile *objfile) const = 0;
+
+  /* Return a pointer to a name identifying the probe type.  This is
+     the string that will be displayed in the "Type" column of the
+     `info probes' command.  */
+  virtual const char *type_name () const = 0;
 
-struct probe_ops
+  /* Return true if the probe can be enabled; false otherwise.  */
+  virtual bool can_enable () const
   {
-    /* Method responsible for verifying if LINESPECP is a valid linespec for
-       a probe breakpoint.  It should return 1 if it is, or zero if it is not.
-       It also should update LINESPECP in order to discard the breakpoint
-       option associated with this linespec.  For example, if the option is
-       `-probe', and the LINESPECP is `-probe abc', the function should
-       return 1 and set LINESPECP to `abc'.  */
-
-    int (*is_linespec) (const char **linespecp);
-
-    /* Function that should fill PROBES with known probes from OBJFILE.  */
-
-    void (*get_probes) (VEC (probe_p) **probes, struct objfile *objfile);
-
-    /* Compute the probe's relocated address.  OBJFILE is the objfile
-       in which the probe originated.  */
-
-    CORE_ADDR (*get_probe_address) (struct probe *probe,
-				    struct objfile *objfile);
-
-    /* Return the number of arguments of PROBE.  This function can
-       throw an exception.  */
-
-    unsigned (*get_probe_argument_count) (struct probe *probe,
-					  struct frame_info *frame);
-
-    /* Return 1 if the probe interface can evaluate the arguments of probe
-       PROBE, zero otherwise.  See the comments on
-       sym_probe_fns:can_evaluate_probe_arguments for more details.  */
-
-    int (*can_evaluate_probe_arguments) (struct probe *probe);
-
-    /* Evaluate the Nth argument from the PROBE, returning a value
-       corresponding to it.  The argument number is represented N.
-       This function can throw an exception.  */
+    return false;
+  }
 
-    struct value *(*evaluate_probe_argument) (struct probe *probe,
-					      unsigned n,
-					      struct frame_info *frame);
+  /* Function responsible for providing the extra fields that will be
+     printed in the `info probes' command.  It should fill HEADS
+     with whatever extra fields it needs.  If no extra fields are
+     required by the probe backend, the method EMIT_INFO_PROBES_FIELDS
+     should return false.  */
+  virtual std::vector<struct info_probe_column>
+    gen_info_probes_table_header () const = 0;
+};
 
-    /* Compile the Nth argument of the PROBE to an agent expression.
-       The argument number is represented by N.  */
+/* Definition of a vector of static_probe_ops.  */
 
-    void (*compile_to_ax) (struct probe *probe, struct agent_expr *aexpr,
-			   struct axs_value *axs_value, unsigned n);
-
-    /* Set the semaphore associated with the PROBE.  This function only makes
-       sense if the probe has a concept of semaphore associated to a
-       probe, otherwise it can be set to NULL.  */
-
-    void (*set_semaphore) (struct probe *probe, struct objfile *objfile,
-			   struct gdbarch *gdbarch);
-
-    /* Clear the semaphore associated with the PROBE.  This function only
-       makes sense if the probe has a concept of semaphore associated to
-       a probe, otherwise it can be set to NULL.  */
-
-    void (*clear_semaphore) (struct probe *probe, struct objfile *objfile,
-			     struct gdbarch *gdbarch);
-
-    /* Function called to destroy PROBE's specific data.  This function
-       shall not free PROBE itself.  */
-
-    void (*destroy) (struct probe *probe);
-
-    /* Return a pointer to a name identifying the probe type.  This is
-       the string that will be displayed in the "Type" column of the
-       `info probes' command.  */
-
-    const char *(*type_name) (struct probe *probe);
-
-    /* Function responsible for providing the extra fields that will be
-       printed in the `info probes' command.  It should fill HEADS
-       with whatever extra fields it needs.  If the backend doesn't need
-       to print extra fields, it can set this method to NULL.  */
-
-    void (*gen_info_probes_table_header) (VEC (info_probe_column_s) **heads);
-
-    /* Function that will fill VALUES with the values of the extra fields
-       to be printed for PROBE.  If the backend implements the
-       `gen_ui_out_table_header' method, then it should implement
-       this method as well.  The backend should also guarantee that the
-       order and the number of values in the vector is exactly the same
-       as the order of the extra fields provided in the method
-       `gen_ui_out_table_header'.  If a certain field is to be skipped
-       when printing the information, you can push a NULL value in that
-       position in the vector.  */
-
-    void (*gen_info_probes_table_values) (struct probe *probe,
-					  VEC (const_char_ptr) **values);
-
-    /* Enable a probe.  The semantics of "enabling" a probe depend on
-       the specific backend and the field can be NULL in case enabling
-       probes is not supported.  This function can throw an
-       exception.  */
-
-    void (*enable_probe) (struct probe *probe);
-
-    /* Disable a probe.  The semantics of "disabling" a probe depend
-       on the specific backend and the field can be NULL in case
-       disabling probes is not supported.  This function can throw an
-       exception.  */
-
-    void (*disable_probe) (struct probe *probe);
-  };
-
-/* Definition of a vector of probe_ops.  */
-
-typedef const struct probe_ops *probe_ops_cp;
-DEF_VEC_P (probe_ops_cp);
-extern VEC (probe_ops_cp) *all_probe_ops;
-
-/* The probe_ops associated with the generic probe.  */
-
-extern const struct probe_ops probe_ops_any;
+extern std::vector<const static_probe_ops *> all_static_probe_ops;
 
 /* Helper function that, given KEYWORDS, iterate over it trying to match
    each keyword with LINESPECP.  If it succeeds, it updates the LINESPECP
@@ -176,37 +97,141 @@ extern const struct probe_ops probe_ops_
 extern int probe_is_linespec_by_keyword (const char **linespecp,
 					 const char *const *keywords);
 
-/* Return specific PROBE_OPS * matching *LINESPECP and possibly updating
-   *LINESPECP to skip its "-probe-type " prefix.  Return &probe_ops_any if
-   *LINESPECP matches "-probe ", that is any unspecific probe.  Return NULL if
-   *LINESPECP is not identified as any known probe type, *LINESPECP is not
-   modified in such case.  */
-
-extern const struct probe_ops *probe_linespec_to_ops (const char **linespecp);
-
-/* The probe itself.  The struct contains generic information about the
-   probe, and then some specific information which should be stored in
-   the `probe_info' field.  */
+/* Return specific STATIC_PROBE_OPS * matching *LINESPECP and possibly
+   updating LINESPECP to skip its "-probe-type " prefix.  Return
+   &static_probe_ops_any if LINESPECP matches "-probe ", that is any
+   unspecific probe.  Return NULL if LINESPECP is not identified as
+   any known probe type, *LINESPECP is not modified in such case.  */
+
+extern const static_probe_ops *
+  probe_linespec_to_static_ops (const char **linespecp);
+
+/* The probe itself.  The class contains generic information about the
+   probe.  */
+
+class probe
+{
+public:
+  /* Default constructor for a probe.  */
+  probe (std::string &&name_, std::string &&provider_, CORE_ADDR address_,
+	 struct gdbarch *arch_)
+    : m_name (std::move (name_)), m_provider (std::move (provider_)),
+      m_address (address_), m_arch (arch_)
+  {}
+
+  /* Virtual destructor.  */
+  virtual ~probe ()
+  {}
+
+  /* Compute the probe's relocated address.  OBJFILE is the objfile
+     in which the probe originated.  */
+  virtual CORE_ADDR get_relocated_address (struct objfile *objfile) = 0;
+
+  /* Return the number of arguments of the probe.  This function can
+     throw an exception.  */
+  virtual unsigned get_argument_count (struct frame_info *frame) = 0;
+
+  /* Return 1 if the probe interface can evaluate the arguments of
+     probe, zero otherwise.  See the comments on
+     sym_probe_fns:can_evaluate_probe_arguments for more
+     details.  */
+  virtual bool can_evaluate_arguments () const = 0;
+
+  /* Evaluate the Nth argument from the probe, returning a value
+     corresponding to it.  The argument number is represented N.
+     This function can throw an exception.  */
+  virtual struct value *evaluate_argument (unsigned n,
+					   struct frame_info *frame) = 0;
+
+  /* Compile the Nth argument of the probe to an agent expression.
+     The argument number is represented by N.  */
+  virtual void compile_to_ax (struct agent_expr *aexpr,
+			      struct axs_value *axs_value,
+			      unsigned n) = 0;
+
+  /* Set the semaphore associated with the probe.  This function only
+     makes sense if the probe has a concept of semaphore associated to
+     a probe.  */
+  virtual void set_semaphore (struct objfile *objfile,
+			      struct gdbarch *gdbarch)
+  {}
+
+  /* Clear the semaphore associated with the probe.  This function
+     only makes sense if the probe has a concept of semaphore
+     associated to a probe.  */
+  virtual void clear_semaphore (struct objfile *objfile,
+				struct gdbarch *gdbarch)
+  {}
+
+  /* Return the pointer to the static_probe_ops instance related to
+     the probe type.  */
+  virtual const static_probe_ops *get_static_ops () const = 0;
+
+  /* Function that will fill VALUES with the values of the extra
+     fields to be printed for the probe.
+
+     If the backend implements the `gen_ui_out_table_header' method,
+     then it should implement this method as well.  The backend should
+     also guarantee that the order and the number of values in the
+     vector is exactly the same as the order of the extra fields
+     provided in the method `gen_ui_out_table_header'.  If a certain
+     field is to be skipped when printing the information, you can
+     push a NULL value in that position in the vector.  */
+  virtual std::vector<const char *> gen_info_probes_table_values () const
+  {
+    return std::vector<const char *> ();
+  }
+
+  /* Enable the probe.  The semantics of "enabling" a probe depend on
+     the specific backend.  This function can throw an exception.  */
+  virtual void enable ()
+  {}
+
+  /* Disable the probe.  The semantics of "disabling" a probe depend
+     on the specific backend.  This function can throw an
+     exception.  */
+  virtual void disable ()
+  {}
+
+  /* Getter for M_NAME.  */
+  const std::string &get_name () const
+  {
+    return m_name;
+  }
 
-struct probe
+  /* Getter for M_PROVIDER.  */
+  const std::string &get_provider () const
   {
-    /* The operations associated with this probe.  */
-    const struct probe_ops *pops;
+    return m_provider;
+  }
 
-    /* The probe's architecture.  */
-    struct gdbarch *arch;
+  /* Getter for M_ADDRESS.  */
+  CORE_ADDR get_address () const
+  {
+    return m_address;
+  }
 
-    /* The name of the probe.  */
-    const char *name;
+  /* Getter for M_ARCH.  */
+  struct gdbarch *get_gdbarch () const
+  {
+    return m_arch;
+  }
 
-    /* The provider of the probe.  It generally defaults to the name of
-       the objfile which contains the probe.  */
-    const char *provider;
-
-    /* The address where the probe is inserted, relative to
-       SECT_OFF_TEXT.  */
-    CORE_ADDR address;
-  };
+private:
+  /* The name of the probe.  */
+  std::string m_name;
+
+  /* The provider of the probe.  It generally defaults to the name of
+     the objfile which contains the probe.  */
+  std::string m_provider;
+
+  /* The address where the probe is inserted, relative to
+     SECT_OFF_TEXT.  */
+  CORE_ADDR m_address;
+
+  /* The probe's architecture.  */
+  struct gdbarch *m_arch;
+};
 
 /* A bound probe holds a pointer to a probe and a pointer to the
    probe's defining objfile.  This is needed because probes are
@@ -214,27 +239,31 @@ struct probe
    their point of use.  */
 
 struct bound_probe
-  {
-    /* The probe.  */
-
-    struct probe *probe;
-
-    /* The objfile in which the probe originated.  */
-
-    struct objfile *objfile;
-  };
-
-/* A helper for linespec that decodes a probe specification.  It returns a
-   symtabs_and_lines object and updates LOC or throws an error.  */
-
-extern struct symtabs_and_lines parse_probes (const struct event_location *loc,
-					      struct program_space *pspace,
-					      struct linespec_result *canon);
-
-/* Helper function to register the proper probe_ops to a newly created probe.
-   This function is mainly called from `sym_get_probes'.  */
-
-extern void register_probe_ops (struct probe *probe);
+{
+  /* Create an empty bound_probe object.  */
+  bound_probe ()
+  {}
+
+  /* Create and initialize a bound_probe object using PROBE and OBJFILE.  */
+  bound_probe (probe *probe_, struct objfile *objfile_)
+  : prob (probe_), objfile (objfile_)
+  {}
+
+  /* The probe.  */
+  probe *prob = NULL;
+
+  /* The objfile in which the probe originated.  */
+  struct objfile *objfile = NULL;
+};
+
+/* A helper for linespec that decodes a probe specification.  It
+   returns a std::vector<symtab_and_line> object and updates LOC or
+   throws an error.  */
+
+extern std::vector<symtab_and_line> parse_probes
+  (const struct event_location *loc,
+   struct program_space *pspace,
+   struct linespec_result *canon);
 
 /* Given a PC, find an associated probe.  If a probe is found, return
    it.  If no probe is found, return a bound probe whose fields are
@@ -244,19 +273,19 @@ extern struct bound_probe find_probe_by_
 
 /* Search OBJFILE for a probe with the given PROVIDER, NAME.  Return a
    VEC of all probes that were found.  If no matching probe is found,
-   return NULL.  The caller must free the VEC.  */
+   return an empty vector.  */
 
-extern VEC (probe_p) *find_probes_in_objfile (struct objfile *objfile,
-					      const char *provider,
-					      const char *name);
-
-/* Generate a `info probes' command output for probe_ops represented by
-   POPS.  If POPS is NULL it considers any probes types.  It is a helper
-   function that can be used by the probe backends to print their
-   `info probe TYPE'.  */
+extern std::vector<probe *> find_probes_in_objfile (struct objfile *objfile,
+						    const char *provider,
+						    const char *name);
+
+/* Generate a `info probes' command output for probes associated with
+   SPOPS.  If SPOPS is related to the "any probe" type, then all probe
+   types are considered.  It is a helper function that can be used by
+   the probe backends to print their `info probe TYPE'.  */
 
-extern void info_probes_for_ops (const char *arg, int from_tty,
-				 const struct probe_ops *pops);
+extern void info_probes_for_spops (const char *arg, int from_tty,
+				   const static_probe_ops *spops);
 
 /* Return the `cmd_list_element' associated with the `info probes' command,
    or create a new one if it doesn't exist.  Helper function that serves the
@@ -265,34 +294,6 @@ extern void info_probes_for_ops (const c
 
 extern struct cmd_list_element **info_probes_cmdlist_get (void);
 
-/* Compute the probe's relocated address.  OBJFILE is the objfile in
-   which the probe originated.  */
-
-extern CORE_ADDR get_probe_address (struct probe *probe,
-				    struct objfile *objfile);
-
-/* Return the argument count of the specified probe.
-
-   This function can throw an exception.  */
-
-extern unsigned get_probe_argument_count (struct probe *probe,
-					  struct frame_info *frame);
-
-/* Return 1 if the probe interface associated with PROBE can evaluate
-   arguments, zero otherwise.  See the comments on the definition of
-   sym_probe_fns:can_evaluate_probe_arguments for more details.  */
-
-extern int can_evaluate_probe_arguments (struct probe *probe);
-
-/* Evaluate argument N of the specified probe.  N must be between 0
-   inclusive and get_probe_argument_count exclusive.
-
-   This function can throw an exception.  */
-
-extern struct value *evaluate_probe_argument (struct probe *probe,
-					      unsigned n,
-					      struct frame_info *frame);
-
 /* A convenience function that finds a probe at the PC in FRAME and
    evaluates argument N, with 0 <= N < number_of_args.  If there is no
    probe at that location, or if the probe does not have enough arguments,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/PROBLEMS ./gdb/PROBLEMS
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/PROBLEMS	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/PROBLEMS	2018-01-09 02:04:56.000000000 +0000
@@ -1,5 +1,5 @@
 
-			Known problems in GDB 8.0.1.DATE-git
+			Known problems in GDB 7.2.50
 
 		See also: http://www.gnu.org/software/gdb/bugs/
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/proc-api.c ./gdb/proc-api.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/proc-api.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/proc-api.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
-/* Machine independent support for SVR4 /proc (process file system) for GDB.
+/* Machine independent support for Solaris /proc (process file system) for GDB.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    Written by Michael Snyder at Cygnus Solutions.
    Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others.
@@ -22,26 +22,18 @@
 
 /*
  * Pretty-print trace of api calls to the /proc api
- * (ioctl or read/write calls).
- * 
  */
 
 #include "defs.h"
 #include "gdbcmd.h"
 #include "completer.h"
 
-#if defined (NEW_PROC_API)
 #define _STRUCTURED_PROC 1
-#endif
 
 #include <sys/types.h>
 #include <sys/procfs.h>
-#ifdef HAVE_SYS_PROC_H
 #include <sys/proc.h>	/* for struct proc */
-#endif
-#ifdef HAVE_SYS_USER_H
 #include <sys/user.h>	/* for struct user */
-#endif
 #include <fcntl.h>	/* for O_RDWR etc.  */
 #include "gdb_wait.h"
 
@@ -71,7 +63,8 @@ prepare_to_trace (void)
 }
 
 static void
-set_procfs_trace_cmd (char *args, int from_tty, struct cmd_list_element *c)
+set_procfs_trace_cmd (const char *args,
+		      int from_tty, struct cmd_list_element *c)
 {
 #if 0	/* not sure what I might actually need to do here, if anything */
   if (procfs_file)
@@ -80,7 +73,8 @@ set_procfs_trace_cmd (char *args, int fr
 }
 
 static void
-set_procfs_file_cmd (char *args, int from_tty, struct cmd_list_element *c)
+set_procfs_file_cmd (const char *args,
+		     int from_tty, struct cmd_list_element *c)
 {
   /* Just changed the filename for procfs tracing.
      If a file was already open, close it.  */
@@ -89,361 +83,34 @@ set_procfs_file_cmd (char *args, int fro
   procfs_file = NULL;
 }
 
-
-#ifndef NEW_PROC_API
-
-static struct trans ioctl_table[] = {
-#ifdef PIOCACINFO			/* irix */
-  { PIOCACINFO,    "PIOCACINFO",   "get process account info" },
-#endif
-  { PIOCACTION,    "PIOCACTION",   "get signal action structs" },
-#ifdef PIOCARGUMENTS			/* osf */
-  { PIOCARGUMENTS, "PIOCARGUMENTS", "command line args" },
-#endif
-#ifdef PIOCAUXV				/* solaris aux vectors */
-  { PIOCAUXV,      "PIOCAUXV",     "get aux vector" },
-  { PIOCNAUXV,     "PIOCNAUXV",    "get number of aux vector entries" },
-#endif /* AUXV */
-  { PIOCCFAULT,    "PIOCCFAULT",   "clear current fault" },
-  { PIOCCRED,      "PIOCCRED",     "get process credentials" },
-#ifdef PIOCENEVCTRS			/* irix event counters */
-  { PIOCENEVCTRS,    "PIOCENEVCTRS",    "acquire and start event counters" },
-  { PIOCGETEVCTRL,   "PIOCGETEVCTRL",   "get control info of event counters" },
-  { PIOCGETEVCTRS,   "PIOCGETEVCTRS",   "dump event counters" },
-  { PIOCGETPREVCTRS, "PIOCGETPREVCTRS", "dump event counters & prusage info" },
-  { PIOCRELEVCTRS,   "PIOCRELEVCTRS",   "release/stop event counters" },
-  { PIOCSETEVCTRL,   "PIOCSETEVCTRL",   "set control info of event counters" },
-  { PIOCGETPTIMER,   "PIOCGETPTIMER",   "get process timers" },
-#endif	/* irix event counters */
-  { PIOCGENTRY,    "PIOCGENTRY",   "get traced syscall entry set" },
-#if defined (PIOCGETPR)
-  { PIOCGETPR,     "PIOCGETPR",    "read struct proc" },
-#endif
-#if defined (PIOCGETU)
-  { PIOCGETU,      "PIOCGETU",     "read user area" },
-#endif
-#if defined (PIOCGETUTK) && (defined(KERNEL) || defined(SHOW_UTT)) /* osf */
-  { PIOCGETUTK,  "PIOCGETUTK", "get the utask struct" },
-#endif
-  { PIOCGEXIT,     "PIOCGEXIT",    "get traced syscall exit  set" },
-  { PIOCGFAULT,    "PIOCGFAULT",   "get traced fault set" },
-#ifdef PIOCGFPCR			/* osf */
-  { PIOCGFPCR,     "PIOCGFPCR",    "get FP control register" },
-  { PIOCSFPCR,     "PIOCSFPCR",    "set FP conrtol register" },
-#endif
-  { PIOCGFPREG,    "PIOCGFPREG",   "get floating point registers" },
-  { PIOCGHOLD,     "PIOCGHOLD",    "get held signal set" },
-  { PIOCGREG,      "PIOCGREG",     "get general registers" },
-  { PIOCGROUPS,    "PIOCGROUPS",   "get supplementary groups" },
-#ifdef PIOCGSPCACT			/* osf */
-  { PIOCGSPCACT,   "PIOCGSPCACT",  "get special action" },
-  { PIOCSSPCACT,   "PIOCSSPCACT",  "set special action" },
-#endif
-  { PIOCGTRACE,    "PIOCGTRACE",   "get traced signal set" },
-#ifdef PIOCGWATCH			/* irix watchpoints */
-  { PIOCGWATCH,    "PIOCGWATCH",   "get watchpoint" },
-  { PIOCSWATCH,    "PIOCSWATCH",   "set watchpoint" },
-  { PIOCNWATCH,    "PIOCNWATCH",   "get number of watchpoints" },
-#endif	/* irix watchpoints */
-#ifdef PIOCGWIN				/* solaris sparc */
-  { PIOCGWIN,      "PIOCGWIN",     "get gwindows_t" },
-#endif
-#ifdef PIOCGXREG			/* solaris sparc extra regs */
-  { PIOCGXREGSIZE, "PIOCXREGSIZE", "get extra register state size" },
-  { PIOCGXREG,     "PIOCGXREG",    "get extra register state" },
-  { PIOCSXREG,     "PIOCSXREG",    "set extra register state" },
-#endif /* XREG */
-  { PIOCKILL,      "PIOCKILL",     "send signal" },
-#ifdef PIOCLDT				/* solaris i386 */
-  { PIOCLDT,       "PIOCLDT",      "get LDT" },
-  { PIOCNLDT,      "PIOCNLDT",     "get number of LDT entries" },
-#endif
-#ifdef PIOCLSTATUS			/* solaris */
-  { PIOCLSTATUS,   "PIOCLSTATUS",  "get status of all lwps" },
-  { PIOCLUSAGE,    "PIOCLUSAGE",   "get resource usage of all lwps" },
-  { PIOCOPENLWP,   "PIOCOPENLWP",  "get lwp file descriptor" },
-  { PIOCLWPIDS,    "PIOCLWPIDS",   "get lwp identifiers" },
-#endif /* LWP */
-  { PIOCMAP,       "PIOCMAP",      "get memory map information" },
-  { PIOCMAXSIG,    "PIOCMAXSIG",   "get max signal number" },
-  { PIOCNICE,      "PIOCNICE",     "set nice priority" },
-  { PIOCNMAP,      "PIOCNMAP",     "get number of memory mappings" },
-  { PIOCOPENM,     "PIOCOPENM",    "open mapped object for reading" },
-#ifdef PIOCOPENMOBS			/* osf */
-  { PIOCOPENMOBS,  "PIOCOPENMOBS", "open mapped object" },
-#endif
-#ifdef PIOCOPENPD	/* solaris */
-  { PIOCOPENPD,    "PIOCOPENPD",   "get page data file descriptor" },
-#endif
-  { PIOCPSINFO,    "PIOCPSINFO",   "get ps(1) information" },
-  { PIOCRESET,     "PIOCRESET",    "reset process flags" },
-  { PIOCRFORK,     "PIOCRFORK",    "reset inherit-on-fork flag" },
-  { PIOCRRLC,      "PIOCRRLC",     "reset run-on-last-close flag" },
-  { PIOCRUN,       "PIOCRUN",      "make process runnable" },
-#ifdef PIOCSAVECCNTRS			/* irix */
-  { PIOCSAVECCNTRS, "PIOCSAVECCNTRS", "parent gets child cntrs" },
-#endif
-  { PIOCSENTRY,    "PIOCSENTRY",   "set traced syscall entry set" },
-  { PIOCSET,       "PIOCSET",      "set process flags" },
-  { PIOCSEXIT,     "PIOCSEXIT",    "set traced syscall exit  set" },
-  { PIOCSFAULT,    "PIOCSFAULT",   "set traced fault set" },
-  { PIOCSFORK,     "PIOCSFORK",    "set inherit-on-fork flag" },
-  { PIOCSFPREG,    "PIOCSFPREG",   "set floating point registers" },
-  { PIOCSHOLD,     "PIOCSHOLD",    "set held signal set" },
-  { PIOCSREG,      "PIOCSREG",     "set general registers" },
-  { PIOCSRLC,      "PIOCSRLC",     "set run-on-last-close flag" },
-  { PIOCSSIG,      "PIOCSSIG",     "set current signal" },
-  { PIOCSTATUS,    "PIOCSTATUS",   "get process status" },
-  { PIOCSTOP,      "PIOCSTOP",     "post stop request" },
-  { PIOCSTRACE,    "PIOCSTRACE",   "set traced signal set" },
-  { PIOCUNKILL,    "PIOCUNKILL",   "delete a signal" },
-#ifdef PIOCUSAGE	/* solaris */
-  { PIOCUSAGE,     "PIOCUSAGE",    "get resource usage" },
-#endif
-  { PIOCWSTOP,     "PIOCWSTOP",    "wait for process to stop" },
-
-#ifdef PIOCNTHR				/* osf threads */
-  { PIOCNTHR,      "PIOCNTHR",     "get thread count" },
-  { PIOCRTINH,     "PIOCRTINH",    "reset inherit-on-thread-creation" },
-  { PIOCSTINH,     "PIOCSTINH",    "set   inherit-on-thread-creation" },
-  { PIOCTLIST,     "PIOCTLIST",    "get thread ids" },
-  { PIOCXPTH,      "PIOCXPTH",     "translate port to thread handle" },
-  { PIOCTRUN,      "PIOCTRUN",     "make thread runnable" },
-  { PIOCTSTATUS,   "PIOCTSTATUS",  "get thread status" },
-  { PIOCTSTOP,     "PIOCTSTOP",    "stop a thread" },
-  /* ... TGTRACE TSTRACE TSSIG TKILL TUNKILL TCFAULT TGFAULT TSFAULT
-     TGFPREG TSFPREG TGREG TSREG TACTION TTERM TABRUN TGENTRY TSENTRY
-     TGEXIT TSEXIT TSHOLD ... thread functions */
-#endif /* osf threads */
-  { -1,            NULL,           NULL }
-};
-
-int
-ioctl_with_trace (int fd, long opcode, void *ptr, char *file, int line)
-{
-  int i = 0;
-  int ret;
-  int arg1;
-
-  prepare_to_trace ();
-
-  if (procfs_trace)
-    {
-      for (i = 0; ioctl_table[i].name != NULL; i++)
-	if (ioctl_table[i].value == opcode)
-	  break;
-
-      if (info_verbose)
-	fprintf (procfs_file ? procfs_file : stdout, 
-		 "%s:%d -- ", file, line);
-      switch (opcode) {
-      case PIOCSET:
-	arg1 = ptr ? *(long *) ptr : 0;
-	fprintf (procfs_file ? procfs_file : stdout, 
-		 "ioctl (PIOCSET,   %s) %s\n", 
-		 arg1 == PR_FORK  ? "PR_FORK"  :
-		 arg1 == PR_RLC   ? "PR_RLC"   :
-#ifdef PR_ASYNC
-		 arg1 == PR_ASYNC ? "PR_ASYNC" :
-#endif
-		 "<unknown flag>",
-		 info_verbose ? ioctl_table[i].desc : "");
-	break;
-      case PIOCRESET:
-	arg1 = ptr ? *(long *) ptr : 0;
-	fprintf (procfs_file ? procfs_file : stdout, 
-		 "ioctl (PIOCRESET, %s) %s\n", 
-		 arg1 == PR_FORK  ? "PR_FORK"  :
-		 arg1 == PR_RLC   ? "PR_RLC"   :
-#ifdef PR_ASYNC
-		 arg1 == PR_ASYNC ? "PR_ASYNC" :
-#endif
-		 "<unknown flag>",
-		 info_verbose ? ioctl_table[i].desc : "");
-	break;
-      case PIOCSTRACE:
-	fprintf (procfs_file ? procfs_file : stdout, 
-		 "ioctl (PIOCSTRACE) ");
-	proc_prettyfprint_signalset (procfs_file ? procfs_file : stdout,
-				     (sigset_t *) ptr, 0);
-	break;
-      case PIOCSFAULT:
-	fprintf (procfs_file ? procfs_file : stdout, 
-		 "ioctl (%s) ", 
-		 opcode == PIOCSFAULT ? "PIOCSFAULT" : "PIOCGFAULT");
-	proc_prettyfprint_faultset (procfs_file ? procfs_file : stdout,
-				    (fltset_t *) ptr, 0);
-	break;
-      case PIOCSENTRY:
-	fprintf (procfs_file ? procfs_file : stdout, 
-		 "ioctl (%s) ", 
-		 opcode == PIOCSENTRY ? "PIOCSENTRY" : "PIOCGENTRY");
-	proc_prettyfprint_syscalls (procfs_file ? procfs_file : stdout,
-				    (sysset_t *) ptr, 0);
-	break;
-      case PIOCSEXIT:
-	fprintf (procfs_file ? procfs_file : stdout, 
-		 "ioctl (%s) ", 
-		 opcode == PIOCSEXIT ? "PIOCSEXIT" : "PIOCGEXIT");
-	proc_prettyfprint_syscalls (procfs_file ? procfs_file : stdout,
-				    (sysset_t *) ptr, 0);
-	break;
-      case PIOCSHOLD:
-	fprintf (procfs_file ? procfs_file : stdout, 
-		 "ioctl (%s) ", 
-		 opcode == PIOCSHOLD ? "PIOCSHOLD" : "PIOCGHOLD");
-	proc_prettyfprint_signalset (procfs_file ? procfs_file : stdout,
-				     (sigset_t *) ptr, 0);
-	break;
-      case PIOCSSIG:
-	fprintf (procfs_file ? procfs_file : stdout, 
-		 "ioctl (PIOCSSIG) ");
-	proc_prettyfprint_signal (procfs_file ? procfs_file : stdout,
-				  ptr ? ((siginfo_t *) ptr)->si_signo : 0, 
-				  0);
-	fprintf (procfs_file ? procfs_file : stdout, "\n");
-	break;
-      case PIOCRUN:
-	fprintf (procfs_file ? procfs_file : stdout, 
-		 "ioctl (PIOCRUN) ");
-	
-	arg1 = ptr ? *(long *) ptr : 0;
-	if (arg1 & PRCSIG)
-	  fprintf (procfs_file ? procfs_file : stdout, "clearSig ");
-	if (arg1 & PRCFAULT)
-	  fprintf (procfs_file ? procfs_file : stdout, "clearFlt ");
-	if (arg1 & PRSTRACE)
-	  fprintf (procfs_file ? procfs_file : stdout, "setTrace ");
-	if (arg1 & PRSHOLD)
-	  fprintf (procfs_file ? procfs_file : stdout, "setHold ");
-	if (arg1 & PRSFAULT)
-	  fprintf (procfs_file ? procfs_file : stdout, "setFlt ");
-	if (arg1 & PRSVADDR)
-	  fprintf (procfs_file ? procfs_file : stdout, "setVaddr ");
-	if (arg1 & PRSTEP)
-	  fprintf (procfs_file ? procfs_file : stdout, "step ");
-	if (arg1 & PRSABORT)
-	  fprintf (procfs_file ? procfs_file : stdout, "syscallAbort ");
-	if (arg1 & PRSTOP)
-	  fprintf (procfs_file ? procfs_file : stdout, "stopReq ");
-	  
-	fprintf (procfs_file ? procfs_file : stdout, "\n");
-	break;
-      case PIOCKILL:
-	fprintf (procfs_file ? procfs_file : stdout, 
-		 "ioctl (PIOCKILL) ");
-	proc_prettyfprint_signal (procfs_file ? procfs_file : stdout,
-				  ptr ? *(long *) ptr : 0, 0);
-	fprintf (procfs_file ? procfs_file : stdout, "\n");
-	break;
-#ifdef PIOCSSPCACT
-      case PIOCSSPCACT:
-	fprintf (procfs_file ? procfs_file : stdout, 
-		 "ioctl (PIOCSSPCACT) ");
-	arg1 = ptr ? *(long *) ptr : 0;
-	if (arg1 & PRFS_STOPFORK)
-	  fprintf (procfs_file ? procfs_file : stdout, "stopFork ");
-	if (arg1 & PRFS_STOPEXEC)
-	  fprintf (procfs_file ? procfs_file : stdout, "stopExec ");
-	if (arg1 & PRFS_STOPTERM)
-	  fprintf (procfs_file ? procfs_file : stdout, "stopTerm ");
-	if (arg1 & PRFS_STOPTCR)
-	  fprintf (procfs_file ? procfs_file : stdout, "stopThreadCreate ");
-	if (arg1 & PRFS_STOPTTERM)
-	  fprintf (procfs_file ? procfs_file : stdout, "stopThreadTerm ");
-	if (arg1 & PRFS_KOLC)
-	  fprintf (procfs_file ? procfs_file : stdout, "killOnLastClose ");
-	fprintf (procfs_file ? procfs_file : stdout, "\n");
-	break;
-#endif /* PIOCSSPCACT */
-      default:
-	if (ioctl_table[i].name)
-	  fprintf (procfs_file ? procfs_file : stdout, 
-		   "ioctl (%s) %s\n", 
-		   ioctl_table[i].name,
-		   info_verbose ? ioctl_table[i].desc : "");
-	else
-	  fprintf (procfs_file ? procfs_file : stdout, 
-		   "ioctl (<unknown %ld (0x%lx)) \n", opcode, opcode);
-	break;
-      }
-      if (procfs_file)
-	fflush (procfs_file);
-    }
-  errno = 0;
-  ret = ioctl (fd, opcode, ptr);
-  if (procfs_trace && ret < 0)
-    {
-      fprintf (procfs_file ? procfs_file : stdout, 
-	       "[ioctl (%s) FAILED! (%s)]\n",
-	       ioctl_table[i].name != NULL ? 
-	       ioctl_table[i].name : "<unknown>",
-	       safe_strerror (errno));
-      if (procfs_file)
-	fflush (procfs_file);
-    }
-
-  return ret;
-}
-
-#else	/* NEW_PROC_API */
-
 static struct trans rw_table[] = {
-#ifdef PCAGENT			/* solaris */
   { PCAGENT,  "PCAGENT",  "create agent lwp with regs from argument" },
-#endif
   { PCCFAULT, "PCCFAULT", "clear current fault" },
-#ifdef PCCSIG			/* solaris */
   { PCCSIG,   "PCCSIG",   "clear current signal" },
-#endif
-#ifdef PCDSTOP			/* solaris */
   { PCDSTOP,  "PCDSTOP",  "post stop request" },
-#endif
   { PCKILL,   "PCKILL",   "post a signal" },
-#ifdef PCNICE			/* solaris */
   { PCNICE,   "PCNICE",   "set nice priority" },
-#endif
-#ifdef PCREAD			/* solaris */
   { PCREAD,   "PCREAD",   "read from the address space" },
   { PCWRITE,  "PCWRITE",  "write to the address space" },
-#endif
   { PCRUN,    "PCRUN",    "make process/lwp runnable" },
-#ifdef PCSASRS			/* solaris 2.7 only */
   { PCSASRS,  "PCSASRS",  "set ancillary state registers" },
-#endif
-#ifdef PCSCRED			/* solaris */
   { PCSCRED,  "PCSCRED",  "set process credentials" },
-#endif
   { PCSENTRY, "PCSENTRY", "set traced syscall entry set" },
   { PCSET,    "PCSET",    "set modes" },
   { PCSEXIT,  "PCSEXIT",  "set traced syscall exit  set" },
   { PCSFAULT, "PCSFAULT", "set traced fault set" },
   { PCSFPREG, "PCSFPREG", "set floating point registers" },
-#ifdef PCSHOLD			/* solaris */
   { PCSHOLD,  "PCSHOLD",  "set signal mask" },
-#endif
   { PCSREG,   "PCSREG",   "set general registers" },
   { PCSSIG,   "PCSSIG",   "set current signal" },
   { PCSTOP,   "PCSTOP",   "post stop request and wait" },
   { PCSTRACE, "PCSTRACE", "set traced signal set" },
-#ifdef PCSVADDR			/* solaris */
   { PCSVADDR, "PCSVADDR", "set pc virtual address" },
-#endif
-#ifdef PCSXREG			/* solaris sparc only */
   { PCSXREG,  "PCSXREG",  "set extra registers" },
-#endif
-#ifdef PCTWSTOP			/* solaris */
   { PCTWSTOP, "PCTWSTOP", "wait for stop, with timeout arg" },
-#endif
-#ifdef PCUNKILL			/* solaris */
   { PCUNKILL, "PCUNKILL", "delete a pending signal" },
-#endif
-#ifdef PCUNSET			/* solaris */
   { PCUNSET,  "PCUNSET",  "unset modes" },
-#endif
-#ifdef PCWATCH			/* solaris */
   { PCWATCH,  "PCWATCH",  "set/unset watched memory area" },
-#endif
   { PCWSTOP,  "PCWSTOP",  "wait for process/lwp to stop, no timeout" },
   { 0,        NULL,      NULL }
 };
@@ -474,27 +141,16 @@ write_with_trace (int fd, void *varg, si
 		 "write (PCSET,   %s) %s\n", 
 		 arg[1] == PR_FORK  ? "PR_FORK"  :
 		 arg[1] == PR_RLC   ? "PR_RLC"   :
-#ifdef PR_ASYNC
 		 arg[1] == PR_ASYNC ? "PR_ASYNC" :
-#endif
 		 "<unknown flag>",
 		 info_verbose ? rw_table[i].desc : "");
 	break;
-#ifdef PCUNSET
       case PCUNSET:
-#endif
-#ifdef PCRESET
-#if PCRESET != PCUNSET
-      case PCRESET:
-#endif
-#endif
 	fprintf (procfs_file ? procfs_file : stdout, 
 		 "write (PCRESET, %s) %s\n", 
 		 arg[1] == PR_FORK  ? "PR_FORK"  :
 		 arg[1] == PR_RLC   ? "PR_RLC"   :
-#ifdef PR_ASYNC
 		 arg[1] == PR_ASYNC ? "PR_ASYNC" :
-#endif
 		 "<unknown flag>",
 		 info_verbose ? rw_table[i].desc : "");
 	break;
@@ -522,14 +178,12 @@ write_with_trace (int fd, void *varg, si
 	proc_prettyfprint_syscalls (procfs_file ? procfs_file : stdout,
 				    (sysset_t *) &arg[1], 0);
 	break;
-#ifdef PCSHOLD
       case PCSHOLD:
 	fprintf (procfs_file ? procfs_file : stdout, 
 		 "write (PCSHOLD) ");
 	proc_prettyfprint_signalset (procfs_file ? procfs_file : stdout,
 				     (sigset_t *) &arg[1], 0);
 	break;
-#endif
       case PCSSIG:
 	fprintf (procfs_file ? procfs_file : stdout, 
 		 "write (PCSSIG) ");
@@ -548,14 +202,10 @@ write_with_trace (int fd, void *varg, si
 	  fprintf (procfs_file ? procfs_file : stdout, "clearFlt ");
 	if (arg[1] & PRSTEP)
 	  fprintf (procfs_file ? procfs_file : stdout, "step ");
-#ifdef PRSABORT
 	if (arg[1] & PRSABORT)
 	  fprintf (procfs_file ? procfs_file : stdout, "syscallAbort ");
-#endif
-#ifdef PRSTOP
 	if (arg[1] & PRSTOP)
 	  fprintf (procfs_file ? procfs_file : stdout, "stopReq ");
-#endif
 	  
 	fprintf (procfs_file ? procfs_file : stdout, "\n");
 	break;
@@ -628,8 +278,6 @@ lseek_with_trace (int fd, off_t offset, 
   return ret;
 }
 
-#endif /* NEW_PROC_API */
-
 int
 open_with_trace (char *filename, int mode, char *file, int line)
 {
@@ -768,10 +416,6 @@ proc_prettyfprint_status (long flags, in
     }
 }
 
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern void _initialize_proc_api (void);
-
 void
 _initialize_proc_api (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/proc-events.c ./gdb/proc-events.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/proc-events.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/proc-events.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
-/* Machine-independent support for SVR4 /proc (process file system)
+/* Machine-independent support for Solaris /proc (process file system)
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    Written by Michael Snyder at Cygnus Solutions.
    Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others.
@@ -30,18 +30,12 @@
 
 #include "defs.h"
 
-#ifdef NEW_PROC_API
 #define _STRUCTURED_PROC 1
-#endif
 
 #include <sys/types.h>
 #include <sys/procfs.h>
-#ifdef HAVE_SYS_SYSCALL_H
 #include <sys/syscall.h>
-#endif
-#ifdef HAVE_SYS_FAULT_H
 #include <sys/fault.h>
-#endif
 
 #include "proc-utils.h"
 
@@ -69,248 +63,97 @@ static const char *syscall_table[MAX_SYS
 static void
 init_syscall_table (void)
 {
-#ifdef SYS_BSD_getime
-  syscall_table[SYS_BSD_getime] = "BSD_getime";
-#endif
-#ifdef SYS_BSDgetpgrp
-  syscall_table[SYS_BSDgetpgrp] = "BSDgetpgrp";
-#endif
-#ifdef SYS_BSDsetpgrp
-  syscall_table[SYS_BSDsetpgrp] = "BSDsetpgrp";
-#endif
-#ifdef SYS_acancel
-  syscall_table[SYS_acancel] = "acancel";
-#endif
-#ifdef SYS_accept
   syscall_table[SYS_accept] = "accept";
-#endif
 #ifdef SYS_access
   syscall_table[SYS_access] = "access";
 #endif
-#ifdef SYS_acct
   syscall_table[SYS_acct] = "acct";
-#endif
-#ifdef SYS_acl
+  syscall_table[SYS_acctctl] = "acctctl";
   syscall_table[SYS_acl] = "acl";
+#ifdef SYS_adi
+  syscall_table[SYS_adi] = "adi";
 #endif
-#ifdef SYS_aclipc
-  syscall_table[SYS_aclipc] = "aclipc";
-#endif
-#ifdef SYS_adjtime
   syscall_table[SYS_adjtime] = "adjtime";
-#endif
-#ifdef SYS_afs_syscall
-  syscall_table[SYS_afs_syscall] = "afs_syscall";
-#endif
-#ifdef SYS_alarm
   syscall_table[SYS_alarm] = "alarm";
-#endif
-#ifdef SYS_alt_plock
-  syscall_table[SYS_alt_plock] = "alt_plock";
-#endif
-#ifdef SYS_alt_sigpending
-  syscall_table[SYS_alt_sigpending] = "alt_sigpending";
-#endif
-#ifdef SYS_async
-  syscall_table[SYS_async] = "async";
-#endif
-#ifdef SYS_async_daemon
-  syscall_table[SYS_async_daemon] = "async_daemon";
-#endif
-#ifdef SYS_audcntl
-  syscall_table[SYS_audcntl] = "audcntl";
-#endif
-#ifdef SYS_audgen
-  syscall_table[SYS_audgen] = "audgen";
-#endif
-#ifdef SYS_auditbuf
-  syscall_table[SYS_auditbuf] = "auditbuf";
-#endif
-#ifdef SYS_auditctl
-  syscall_table[SYS_auditctl] = "auditctl";
-#endif
-#ifdef SYS_auditdmp
-  syscall_table[SYS_auditdmp] = "auditdmp";
-#endif
-#ifdef SYS_auditevt
-  syscall_table[SYS_auditevt] = "auditevt";
-#endif
-#ifdef SYS_auditlog
-  syscall_table[SYS_auditlog] = "auditlog";
-#endif
-#ifdef SYS_auditsys
   syscall_table[SYS_auditsys] = "auditsys";
-#endif
-#ifdef SYS_bind
+  syscall_table[SYS_autofssys] = "autofssys";
   syscall_table[SYS_bind] = "bind";
-#endif
-#ifdef SYS_block
-  syscall_table[SYS_block] = "block";
-#endif
-#ifdef SYS_brk
+  syscall_table[SYS_brand] = "brand";
   syscall_table[SYS_brk] = "brk";
-#endif
-#ifdef SYS_cachectl
-  syscall_table[SYS_cachectl] = "cachectl";
-#endif
-#ifdef SYS_cacheflush
-  syscall_table[SYS_cacheflush] = "cacheflush";
-#endif
-#ifdef SYS_cancelblock
-  syscall_table[SYS_cancelblock] = "cancelblock";
-#endif
-#ifdef SYS_cg_bind
-  syscall_table[SYS_cg_bind] = "cg_bind";
-#endif
-#ifdef SYS_cg_current
-  syscall_table[SYS_cg_current] = "cg_current";
-#endif
-#ifdef SYS_cg_ids
-  syscall_table[SYS_cg_ids] = "cg_ids";
-#endif
-#ifdef SYS_cg_info
-  syscall_table[SYS_cg_info] = "cg_info";
-#endif
-#ifdef SYS_cg_memloc
-  syscall_table[SYS_cg_memloc] = "cg_memloc";
-#endif
-#ifdef SYS_cg_processors
-  syscall_table[SYS_cg_processors] = "cg_processors";
-#endif
-#ifdef SYS_chdir
   syscall_table[SYS_chdir] = "chdir";
-#endif
-#ifdef SYS_chflags
-  syscall_table[SYS_chflags] = "chflags";
-#endif
 #ifdef SYS_chmod
   syscall_table[SYS_chmod] = "chmod";
 #endif
 #ifdef SYS_chown
   syscall_table[SYS_chown] = "chown";
 #endif
-#ifdef SYS_chroot
   syscall_table[SYS_chroot] = "chroot";
-#endif
-#ifdef SYS_clocal
-  syscall_table[SYS_clocal] = "clocal";
-#endif
-#ifdef SYS_clock_getres
+  syscall_table[SYS_cladm] = "cladm";
   syscall_table[SYS_clock_getres] = "clock_getres";
-#endif
-#ifdef SYS_clock_gettime
   syscall_table[SYS_clock_gettime] = "clock_gettime";
-#endif
-#ifdef SYS_clock_settime
   syscall_table[SYS_clock_settime] = "clock_settime";
-#endif
-#ifdef SYS_close
   syscall_table[SYS_close] = "close";
-#endif
-#ifdef SYS_connect
   syscall_table[SYS_connect] = "connect";
-#endif
-#ifdef SYS_context
   syscall_table[SYS_context] = "context";
-#endif
+  syscall_table[SYS_corectl] = "corectl";
+  syscall_table[SYS_cpc] = "cpc";
 #ifdef SYS_creat
   syscall_table[SYS_creat] = "creat";
 #endif
 #ifdef SYS_creat64
   syscall_table[SYS_creat64] = "creat64";
 #endif
-#ifdef SYS_devstat
-  syscall_table[SYS_devstat] = "devstat";
-#endif
-#ifdef SYS_dmi
-  syscall_table[SYS_dmi] = "dmi";
-#endif
-#ifdef SYS_door
   syscall_table[SYS_door] = "door";
-#endif
-#ifdef SYS_dshmsys
-  syscall_table[SYS_dshmsys] = "dshmsys";
-#endif
 #ifdef SYS_dup
   syscall_table[SYS_dup] = "dup";
 #endif
-#ifdef SYS_dup2
-  syscall_table[SYS_dup2] = "dup2";
-#endif
 #ifdef SYS_evsys
   syscall_table[SYS_evsys] = "evsys";
 #endif
 #ifdef SYS_evtrapret
   syscall_table[SYS_evtrapret] = "evtrapret";
 #endif
+  syscall_table[SYS_exacctsys] = "exacctsys";
 #ifdef SYS_exec
   syscall_table[SYS_exec] = "exec";
 #endif
-#ifdef SYS_exec_with_loader
-  syscall_table[SYS_exec_with_loader] = "exec_with_loader";
-#endif
-#ifdef SYS_execv
-  syscall_table[SYS_execv] = "execv";
-#endif
-#ifdef SYS_execve
   syscall_table[SYS_execve] = "execve";
-#endif
-#ifdef SYS_exit
   syscall_table[SYS_exit] = "exit";
+#ifdef SYS_faccessat
+  syscall_table[SYS_faccessat] = "faccessat";
 #endif
-#ifdef SYS_exportfs
-  syscall_table[SYS_exportfs] = "exportfs";
-#endif
-#ifdef SYS_facl
   syscall_table[SYS_facl] = "facl";
-#endif
-#ifdef SYS_fchdir
   syscall_table[SYS_fchdir] = "fchdir";
-#endif
-#ifdef SYS_fchflags
-  syscall_table[SYS_fchflags] = "fchflags";
-#endif
 #ifdef SYS_fchmod
   syscall_table[SYS_fchmod] = "fchmod";
 #endif
+#ifdef SYS_fchmodat
+  syscall_table[SYS_fchmodat] = "fchmodat";
+#endif
 #ifdef SYS_fchown
   syscall_table[SYS_fchown] = "fchown";
 #endif
-#ifdef SYS_fchroot
-  syscall_table[SYS_fchroot] = "fchroot";
+#ifdef SYS_fchownat
+  syscall_table[SYS_fchownat] = "fchownat";
 #endif
-#ifdef SYS_fcntl
+  syscall_table[SYS_fchroot] = "fchroot";
   syscall_table[SYS_fcntl] = "fcntl";
-#endif
-#ifdef SYS_fdatasync
-  syscall_table[SYS_fdatasync] = "fdatasync";
-#endif
-#ifdef SYS_fdevstat
-  syscall_table[SYS_fdevstat] = "fdevstat";
-#endif
-#ifdef SYS_fdsync
   syscall_table[SYS_fdsync] = "fdsync";
-#endif
-#ifdef SYS_filepriv
-  syscall_table[SYS_filepriv] = "filepriv";
-#endif
-#ifdef SYS_flock
-  syscall_table[SYS_flock] = "flock";
-#endif
-#ifdef SYS_flvlfile
-  syscall_table[SYS_flvlfile] = "flvlfile";
-#endif
-#ifdef SYS_fork
-  syscall_table[SYS_fork] = "fork";
-#endif
 #ifdef SYS_fork1
   syscall_table[SYS_fork1] = "fork1";
 #endif
 #ifdef SYS_forkall
   syscall_table[SYS_forkall] = "forkall";
 #endif
-#ifdef SYS_fpathconf
+#ifdef SYS_forksys
+  syscall_table[SYS_forksys] = "forksys";
+#endif
   syscall_table[SYS_fpathconf] = "fpathconf";
+#ifdef SYS_frealpathat
+  syscall_table[SYS_frealpathat] = "frealpathat";
+#endif
+#ifdef SYS_fsat
+  syscall_table[SYS_fsat] = "fsat";
 #endif
 #ifdef SYS_fstat
   syscall_table[SYS_fstat] = "fstat";
@@ -318,860 +161,270 @@ init_syscall_table (void)
 #ifdef SYS_fstat64
   syscall_table[SYS_fstat64] = "fstat64";
 #endif
-#ifdef SYS_fstatfs
-  syscall_table[SYS_fstatfs] = "fstatfs";
+#ifdef SYS_fstatat
+  syscall_table[SYS_fstatat] = "fstatat";
 #endif
-#ifdef SYS_fstatvfs
-  syscall_table[SYS_fstatvfs] = "fstatvfs";
+#ifdef SYS_fstatat64
+  syscall_table[SYS_fstatat64] = "fstatat64";
 #endif
-#ifdef SYS_fstatvfs64
+  syscall_table[SYS_fstatfs] = "fstatfs";
+  syscall_table[SYS_fstatvfs] = "fstatvfs";
   syscall_table[SYS_fstatvfs64] = "fstatvfs64";
-#endif
-#ifdef SYS_fsync
-  syscall_table[SYS_fsync] = "fsync";
-#endif
-#ifdef SYS_ftruncate
-  syscall_table[SYS_ftruncate] = "ftruncate";
-#endif
-#ifdef SYS_ftruncate64
-  syscall_table[SYS_ftruncate64] = "ftruncate64";
-#endif
-#ifdef SYS_fuser
-  syscall_table[SYS_fuser] = "fuser";
-#endif
 #ifdef SYS_fxstat
   syscall_table[SYS_fxstat] = "fxstat";
 #endif
-#ifdef SYS_get_sysinfo
-  syscall_table[SYS_get_sysinfo] = "get_sysinfo";
-#endif
-#ifdef SYS_getaddressconf
-  syscall_table[SYS_getaddressconf] = "getaddressconf";
-#endif
-#ifdef SYS_getcontext
-  syscall_table[SYS_getcontext] = "getcontext";
-#endif
-#ifdef SYS_getdents
+  syscall_table[SYS_getcwd] = "getcwd";
   syscall_table[SYS_getdents] = "getdents";
-#endif
-#ifdef SYS_getdents64
   syscall_table[SYS_getdents64] = "getdents64";
-#endif
-#ifdef SYS_getdirentries
-  syscall_table[SYS_getdirentries] = "getdirentries";
-#endif
-#ifdef SYS_getdomainname
-  syscall_table[SYS_getdomainname] = "getdomainname";
-#endif
-#ifdef SYS_getdtablesize
-  syscall_table[SYS_getdtablesize] = "getdtablesize";
-#endif
-#ifdef SYS_getfh
-  syscall_table[SYS_getfh] = "getfh";
-#endif
-#ifdef SYS_getfsstat
-  syscall_table[SYS_getfsstat] = "getfsstat";
-#endif
-#ifdef SYS_getgid
   syscall_table[SYS_getgid] = "getgid";
-#endif
-#ifdef SYS_getgroups
   syscall_table[SYS_getgroups] = "getgroups";
-#endif
-#ifdef SYS_gethostid
-  syscall_table[SYS_gethostid] = "gethostid";
-#endif
-#ifdef SYS_gethostname
-  syscall_table[SYS_gethostname] = "gethostname";
-#endif
-#ifdef SYS_getitimer
   syscall_table[SYS_getitimer] = "getitimer";
-#endif
-#ifdef SYS_getksym
-  syscall_table[SYS_getksym] = "getksym";
-#endif
-#ifdef SYS_getlogin
-  syscall_table[SYS_getlogin] = "getlogin";
-#endif
-#ifdef SYS_getmnt
-  syscall_table[SYS_getmnt] = "getmnt";
-#endif
-#ifdef SYS_getmsg
+  syscall_table[SYS_getloadavg] = "getloadavg";
   syscall_table[SYS_getmsg] = "getmsg";
-#endif
-#ifdef SYS_getpagesize
-  syscall_table[SYS_getpagesize] = "getpagesize";
-#endif
-#ifdef SYS_getpeername
+  syscall_table[SYS_getpagesizes] = "getpagesizes";
   syscall_table[SYS_getpeername] = "getpeername";
-#endif
-#ifdef SYS_getpgid
-  syscall_table[SYS_getpgid] = "getpgid";
-#endif
-#ifdef SYS_getpgrp
-  syscall_table[SYS_getpgrp] = "getpgrp";
-#endif
-#ifdef SYS_getpid
   syscall_table[SYS_getpid] = "getpid";
-#endif
-#ifdef SYS_getpmsg
   syscall_table[SYS_getpmsg] = "getpmsg";
+#ifdef SYS_getrandom
+  syscall_table[SYS_getrandom] = "getrandom";
 #endif
-#ifdef SYS_getpriority
-  syscall_table[SYS_getpriority] = "getpriority";
-#endif
-#ifdef SYS_getrlimit
   syscall_table[SYS_getrlimit] = "getrlimit";
-#endif
-#ifdef SYS_getrlimit64
   syscall_table[SYS_getrlimit64] = "getrlimit64";
-#endif
-#ifdef SYS_getrusage
-  syscall_table[SYS_getrusage] = "getrusage";
-#endif
-#ifdef SYS_getsid
-  syscall_table[SYS_getsid] = "getsid";
-#endif
-#ifdef SYS_getsockname
   syscall_table[SYS_getsockname] = "getsockname";
-#endif
-#ifdef SYS_getsockopt
   syscall_table[SYS_getsockopt] = "getsockopt";
-#endif
-#ifdef SYS_gettimeofday
   syscall_table[SYS_gettimeofday] = "gettimeofday";
-#endif
-#ifdef SYS_getuid
   syscall_table[SYS_getuid] = "getuid";
-#endif
-#ifdef SYS_gtty
   syscall_table[SYS_gtty] = "gtty";
-#endif
-#ifdef SYS_hrtsys
   syscall_table[SYS_hrtsys] = "hrtsys";
-#endif
-#ifdef SYS_inst_sync
   syscall_table[SYS_inst_sync] = "inst_sync";
-#endif
-#ifdef SYS_install_utrap
   syscall_table[SYS_install_utrap] = "install_utrap";
-#endif
-#ifdef SYS_invlpg
-  syscall_table[SYS_invlpg] = "invlpg";
-#endif
-#ifdef SYS_ioctl
   syscall_table[SYS_ioctl] = "ioctl";
+#ifdef SYS_issetugid
+  syscall_table[SYS_issetugid] = "issetugid";
 #endif
-#ifdef SYS_kaio
   syscall_table[SYS_kaio] = "kaio";
-#endif
-#ifdef SYS_keyctl
-  syscall_table[SYS_keyctl] = "keyctl";
-#endif
-#ifdef SYS_kill
   syscall_table[SYS_kill] = "kill";
-#endif
-#ifdef SYS_killpg
-  syscall_table[SYS_killpg] = "killpg";
-#endif
-#ifdef SYS_kloadcall
-  syscall_table[SYS_kloadcall] = "kloadcall";
-#endif
-#ifdef SYS_kmodcall
-  syscall_table[SYS_kmodcall] = "kmodcall";
-#endif
-#ifdef SYS_ksigaction
-  syscall_table[SYS_ksigaction] = "ksigaction";
-#endif
-#ifdef SYS_ksigprocmask
-  syscall_table[SYS_ksigprocmask] = "ksigprocmask";
-#endif
-#ifdef SYS_ksigqueue
-  syscall_table[SYS_ksigqueue] = "ksigqueue";
-#endif
+  syscall_table[SYS_labelsys] = "labelsys";
 #ifdef SYS_lchown
   syscall_table[SYS_lchown] = "lchown";
 #endif
+  syscall_table[SYS_lgrpsys] = "lgrpsys";
 #ifdef SYS_link
   syscall_table[SYS_link] = "link";
 #endif
-#ifdef SYS_listen
-  syscall_table[SYS_listen] = "listen";
+#ifdef SYS_linkat
+  syscall_table[SYS_linkat] = "linkat";
 #endif
-#ifdef SYS_llseek
+  syscall_table[SYS_listen] = "listen";
   syscall_table[SYS_llseek] = "llseek";
-#endif
-#ifdef SYS_lseek
   syscall_table[SYS_lseek] = "lseek";
-#endif
-#ifdef SYS_lseek64
-  syscall_table[SYS_lseek64] = "lseek64";
-#endif
 #ifdef SYS_lstat
   syscall_table[SYS_lstat] = "lstat";
 #endif
 #ifdef SYS_lstat64
   syscall_table[SYS_lstat64] = "lstat64";
 #endif
-#ifdef SYS_lvldom
-  syscall_table[SYS_lvldom] = "lvldom";
-#endif
-#ifdef SYS_lvlequal
-  syscall_table[SYS_lvlequal] = "lvlequal";
-#endif
-#ifdef SYS_lvlfile
-  syscall_table[SYS_lvlfile] = "lvlfile";
-#endif
-#ifdef SYS_lvlipc
-  syscall_table[SYS_lvlipc] = "lvlipc";
-#endif
-#ifdef SYS_lvlproc
-  syscall_table[SYS_lvlproc] = "lvlproc";
-#endif
-#ifdef SYS_lvlvfs
-  syscall_table[SYS_lvlvfs] = "lvlvfs";
-#endif
-#ifdef SYS_lwp_alarm
-  syscall_table[SYS_lwp_alarm] = "lwp_alarm";
-#endif
-#ifdef SYS_lwp_cond_broadcast
   syscall_table[SYS_lwp_cond_broadcast] = "lwp_cond_broadcast";
-#endif
-#ifdef SYS_lwp_cond_signal
   syscall_table[SYS_lwp_cond_signal] = "lwp_cond_signal";
-#endif
-#ifdef SYS_lwp_cond_wait
   syscall_table[SYS_lwp_cond_wait] = "lwp_cond_wait";
-#endif
-#ifdef SYS_lwp_continue
   syscall_table[SYS_lwp_continue] = "lwp_continue";
-#endif
-#ifdef SYS_lwp_create
   syscall_table[SYS_lwp_create] = "lwp_create";
-#endif
-#ifdef SYS_lwp_exit
+  syscall_table[SYS_lwp_detach] = "lwp_detach";
   syscall_table[SYS_lwp_exit] = "lwp_exit";
-#endif
-#ifdef SYS_lwp_getprivate
-  syscall_table[SYS_lwp_getprivate] = "lwp_getprivate";
-#endif
-#ifdef SYS_lwp_info
   syscall_table[SYS_lwp_info] = "lwp_info";
-#endif
 #ifdef SYS_lwp_kill
   syscall_table[SYS_lwp_kill] = "lwp_kill";
 #endif
-#ifdef SYS_lwp_mutex_init
-  syscall_table[SYS_lwp_mutex_init] = "lwp_mutex_init";
-#endif
 #ifdef SYS_lwp_mutex_lock
   syscall_table[SYS_lwp_mutex_lock] = "lwp_mutex_lock";
 #endif
-#ifdef SYS_lwp_mutex_trylock
+  syscall_table[SYS_lwp_mutex_register] = "lwp_mutex_register";
+  syscall_table[SYS_lwp_mutex_timedlock] = "lwp_mutex_timedlock";
   syscall_table[SYS_lwp_mutex_trylock] = "lwp_mutex_trylock";
-#endif
-#ifdef SYS_lwp_mutex_unlock
   syscall_table[SYS_lwp_mutex_unlock] = "lwp_mutex_unlock";
+  syscall_table[SYS_lwp_mutex_wakeup] = "lwp_mutex_wakeup";
+#ifdef SYS_lwp_name
+  syscall_table[SYS_lwp_name] = "lwp_name";
 #endif
-#ifdef SYS_lwp_private
+  syscall_table[SYS_lwp_park] = "lwp_park";
   syscall_table[SYS_lwp_private] = "lwp_private";
-#endif
-#ifdef SYS_lwp_self
+  syscall_table[SYS_lwp_rwlock_sys] = "lwp_rwlock_sys";
   syscall_table[SYS_lwp_self] = "lwp_self";
-#endif
-#ifdef SYS_lwp_sema_post
   syscall_table[SYS_lwp_sema_post] = "lwp_sema_post";
-#endif
-#ifdef SYS_lwp_sema_trywait
+  syscall_table[SYS_lwp_sema_timedwait] = "lwp_sema_timedwait";
   syscall_table[SYS_lwp_sema_trywait] = "lwp_sema_trywait";
-#endif
 #ifdef SYS_lwp_sema_wait
   syscall_table[SYS_lwp_sema_wait] = "lwp_sema_wait";
 #endif
-#ifdef SYS_lwp_setprivate
-  syscall_table[SYS_lwp_setprivate] = "lwp_setprivate";
+  syscall_table[SYS_lwp_sigmask] = "lwp_sigmask";
+#ifdef SYS_lwp_sigqueue
+  syscall_table[SYS_lwp_sigqueue] = "lwp_sigqueue";
 #endif
-#ifdef SYS_lwp_sigredirect
-  syscall_table[SYS_lwp_sigredirect] = "lwp_sigredirect";
-#endif
-#ifdef SYS_lwp_suspend
   syscall_table[SYS_lwp_suspend] = "lwp_suspend";
-#endif
-#ifdef SYS_lwp_wait
   syscall_table[SYS_lwp_wait] = "lwp_wait";
-#endif
 #ifdef SYS_lxstat
   syscall_table[SYS_lxstat] = "lxstat";
 #endif
-#ifdef SYS_madvise
-  syscall_table[SYS_madvise] = "madvise";
-#endif
-#ifdef SYS_memcntl
   syscall_table[SYS_memcntl] = "memcntl";
+#ifdef SYS_memsys
+  syscall_table[SYS_memsys] = "memsys";
 #endif
-#ifdef SYS_mincore
-  syscall_table[SYS_mincore] = "mincore";
-#endif
-#ifdef SYS_mincore
   syscall_table[SYS_mincore] = "mincore";
-#endif
 #ifdef SYS_mkdir
   syscall_table[SYS_mkdir] = "mkdir";
 #endif
-#ifdef SYS_mkmld
-  syscall_table[SYS_mkmld] = "mkmld";
+#ifdef SYS_mkdirat
+  syscall_table[SYS_mkdirat] = "mkdirat";
 #endif
 #ifdef SYS_mknod
   syscall_table[SYS_mknod] = "mknod";
 #endif
-#ifdef SYS_mldmode
-  syscall_table[SYS_mldmode] = "mldmode";
+#ifdef SYS_mknodat
+  syscall_table[SYS_mknodat] = "mknodat";
 #endif
-#ifdef SYS_mmap
   syscall_table[SYS_mmap] = "mmap";
-#endif
-#ifdef SYS_mmap64
   syscall_table[SYS_mmap64] = "mmap64";
+#ifdef SYS_mmapobj
+  syscall_table[SYS_mmapobj] = "mmapobj";
 #endif
-#ifdef SYS_modadm
-  syscall_table[SYS_modadm] = "modadm";
-#endif
-#ifdef SYS_modctl
   syscall_table[SYS_modctl] = "modctl";
-#endif
-#ifdef SYS_modload
-  syscall_table[SYS_modload] = "modload";
-#endif
-#ifdef SYS_modpath
-  syscall_table[SYS_modpath] = "modpath";
-#endif
-#ifdef SYS_modstat
-  syscall_table[SYS_modstat] = "modstat";
-#endif
-#ifdef SYS_moduload
-  syscall_table[SYS_moduload] = "moduload";
-#endif
-#ifdef SYS_mount
   syscall_table[SYS_mount] = "mount";
-#endif
-#ifdef SYS_mprotect
   syscall_table[SYS_mprotect] = "mprotect";
-#endif
-#ifdef SYS_mremap
-  syscall_table[SYS_mremap] = "mremap";
-#endif
-#ifdef SYS_msfs_syscall
-  syscall_table[SYS_msfs_syscall] = "msfs_syscall";
-#endif
-#ifdef SYS_msgctl
-  syscall_table[SYS_msgctl] = "msgctl";
-#endif
-#ifdef SYS_msgget
-  syscall_table[SYS_msgget] = "msgget";
-#endif
-#ifdef SYS_msgrcv
-  syscall_table[SYS_msgrcv] = "msgrcv";
-#endif
-#ifdef SYS_msgsnd
-  syscall_table[SYS_msgsnd] = "msgsnd";
-#endif
-#ifdef SYS_msgsys
   syscall_table[SYS_msgsys] = "msgsys";
-#endif
-#ifdef SYS_msleep
-  syscall_table[SYS_msleep] = "msleep";
-#endif
-#ifdef SYS_msync
-  syscall_table[SYS_msync] = "msync";
-#endif
-#ifdef SYS_munmap
   syscall_table[SYS_munmap] = "munmap";
-#endif
-#ifdef SYS_mvalid
-  syscall_table[SYS_mvalid] = "mvalid";
-#endif
-#ifdef SYS_mwakeup
-  syscall_table[SYS_mwakeup] = "mwakeup";
-#endif
-#ifdef SYS_naccept
-  syscall_table[SYS_naccept] = "naccept";
-#endif
-#ifdef SYS_nanosleep
   syscall_table[SYS_nanosleep] = "nanosleep";
-#endif
-#ifdef SYS_nfssvc
-  syscall_table[SYS_nfssvc] = "nfssvc";
-#endif
-#ifdef SYS_nfssys
   syscall_table[SYS_nfssys] = "nfssys";
-#endif
-#ifdef SYS_ngetpeername
-  syscall_table[SYS_ngetpeername] = "ngetpeername";
-#endif
-#ifdef SYS_ngetsockname
-  syscall_table[SYS_ngetsockname] = "ngetsockname";
-#endif
-#ifdef SYS_nice
   syscall_table[SYS_nice] = "nice";
-#endif
-#ifdef SYS_nrecvfrom
-  syscall_table[SYS_nrecvfrom] = "nrecvfrom";
-#endif
-#ifdef SYS_nrecvmsg
-  syscall_table[SYS_nrecvmsg] = "nrecvmsg";
-#endif
-#ifdef SYS_nsendmsg
-  syscall_table[SYS_nsendmsg] = "nsendmsg";
-#endif
-#ifdef SYS_ntp_adjtime
   syscall_table[SYS_ntp_adjtime] = "ntp_adjtime";
-#endif
-#ifdef SYS_ntp_gettime
   syscall_table[SYS_ntp_gettime] = "ntp_gettime";
-#endif
-#ifdef SYS_nuname
-  syscall_table[SYS_nuname] = "nuname";
-#endif
-#ifdef SYS_obreak
-  syscall_table[SYS_obreak] = "obreak";
-#endif
-#ifdef SYS_old_accept
-  syscall_table[SYS_old_accept] = "old_accept";
-#endif
-#ifdef SYS_old_fstat
-  syscall_table[SYS_old_fstat] = "old_fstat";
-#endif
-#ifdef SYS_old_getpeername
-  syscall_table[SYS_old_getpeername] = "old_getpeername";
-#endif
-#ifdef SYS_old_getpgrp
-  syscall_table[SYS_old_getpgrp] = "old_getpgrp";
-#endif
-#ifdef SYS_old_getsockname
-  syscall_table[SYS_old_getsockname] = "old_getsockname";
-#endif
-#ifdef SYS_old_killpg
-  syscall_table[SYS_old_killpg] = "old_killpg";
-#endif
-#ifdef SYS_old_lstat
-  syscall_table[SYS_old_lstat] = "old_lstat";
-#endif
-#ifdef SYS_old_recv
-  syscall_table[SYS_old_recv] = "old_recv";
-#endif
-#ifdef SYS_old_recvfrom
-  syscall_table[SYS_old_recvfrom] = "old_recvfrom";
-#endif
-#ifdef SYS_old_recvmsg
-  syscall_table[SYS_old_recvmsg] = "old_recvmsg";
-#endif
-#ifdef SYS_old_send
-  syscall_table[SYS_old_send] = "old_send";
-#endif
-#ifdef SYS_old_sendmsg
-  syscall_table[SYS_old_sendmsg] = "old_sendmsg";
-#endif
-#ifdef SYS_old_sigblock
-  syscall_table[SYS_old_sigblock] = "old_sigblock";
-#endif
-#ifdef SYS_old_sigsetmask
-  syscall_table[SYS_old_sigsetmask] = "old_sigsetmask";
-#endif
-#ifdef SYS_old_sigvec
-  syscall_table[SYS_old_sigvec] = "old_sigvec";
-#endif
-#ifdef SYS_old_stat
-  syscall_table[SYS_old_stat] = "old_stat";
-#endif
-#ifdef SYS_old_vhangup
-  syscall_table[SYS_old_vhangup] = "old_vhangup";
-#endif
-#ifdef SYS_old_wait
-  syscall_table[SYS_old_wait] = "old_wait";
-#endif
-#ifdef SYS_oldquota
-  syscall_table[SYS_oldquota] = "oldquota";
-#endif
-#ifdef SYS_online
-  syscall_table[SYS_online] = "online";
-#endif
 #ifdef SYS_open
   syscall_table[SYS_open] = "open";
 #endif
 #ifdef SYS_open64
   syscall_table[SYS_open64] = "open64";
 #endif
-#ifdef SYS_ovadvise
-  syscall_table[SYS_ovadvise] = "ovadvise";
-#endif
-#ifdef SYS_p_online
-  syscall_table[SYS_p_online] = "p_online";
+#ifdef SYS_openat
+  syscall_table[SYS_openat] = "openat";
 #endif
-#ifdef SYS_pagelock
-  syscall_table[SYS_pagelock] = "pagelock";
+#ifdef SYS_openat64
+  syscall_table[SYS_openat64] = "openat64";
 #endif
-#ifdef SYS_pathconf
+  syscall_table[SYS_p_online] = "p_online";
   syscall_table[SYS_pathconf] = "pathconf";
-#endif
-#ifdef SYS_pause
   syscall_table[SYS_pause] = "pause";
-#endif
-#ifdef SYS_pgrpsys
+  syscall_table[SYS_pcsample] = "pcsample";
   syscall_table[SYS_pgrpsys] = "pgrpsys";
-#endif
-#ifdef SYS_pid_block
-  syscall_table[SYS_pid_block] = "pid_block";
-#endif
-#ifdef SYS_pid_unblock
-  syscall_table[SYS_pid_unblock] = "pid_unblock";
-#endif
-#ifdef SYS_pipe
   syscall_table[SYS_pipe] = "pipe";
-#endif
 #ifdef SYS_plock
   syscall_table[SYS_plock] = "plock";
 #endif
 #ifdef SYS_poll
   syscall_table[SYS_poll] = "poll";
 #endif
-#ifdef SYS_prctl
-  syscall_table[SYS_prctl] = "prctl";
-#endif
-#ifdef SYS_pread
+  syscall_table[SYS_pollsys] = "pollsys";
+  syscall_table[SYS_port] = "port";
   syscall_table[SYS_pread] = "pread";
-#endif
-#ifdef SYS_pread64
   syscall_table[SYS_pread64] = "pread64";
-#endif
-#ifdef SYS_pread64
-  syscall_table[SYS_pread64] = "pread64";
-#endif
-#ifdef SYS_prepblock
-  syscall_table[SYS_prepblock] = "prepblock";
-#endif
-#ifdef SYS_priocntl
-  syscall_table[SYS_priocntl] = "priocntl";
-#endif
-#ifdef SYS_priocntllst
-  syscall_table[SYS_priocntllst] = "priocntllst";
-#endif
-#ifdef SYS_priocntlset
-  syscall_table[SYS_priocntlset] = "priocntlset";
-#endif
-#ifdef SYS_priocntlsys
   syscall_table[SYS_priocntlsys] = "priocntlsys";
-#endif
-#ifdef SYS_procblk
-  syscall_table[SYS_procblk] = "procblk";
-#endif
+  syscall_table[SYS_privsys] = "privsys";
 #ifdef SYS_processor_bind
   syscall_table[SYS_processor_bind] = "processor_bind";
 #endif
-#ifdef SYS_processor_exbind
-  syscall_table[SYS_processor_exbind] = "processor_exbind";
-#endif
 #ifdef SYS_processor_info
   syscall_table[SYS_processor_info] = "processor_info";
 #endif
-#ifdef SYS_procpriv
-  syscall_table[SYS_procpriv] = "procpriv";
+#ifdef SYS_processor_sys
+  syscall_table[SYS_processor_sys] = "processor_sys";
 #endif
-#ifdef SYS_profil
   syscall_table[SYS_profil] = "profil";
-#endif
-#ifdef SYS_proplist_syscall
-  syscall_table[SYS_proplist_syscall] = "proplist_syscall";
-#endif
-#ifdef SYS_pset
   syscall_table[SYS_pset] = "pset";
-#endif
-#ifdef SYS_ptrace
-  syscall_table[SYS_ptrace] = "ptrace";
-#endif
-#ifdef SYS_putmsg
   syscall_table[SYS_putmsg] = "putmsg";
-#endif
-#ifdef SYS_putpmsg
   syscall_table[SYS_putpmsg] = "putpmsg";
-#endif
-#ifdef SYS_pwrite
   syscall_table[SYS_pwrite] = "pwrite";
-#endif
-#ifdef SYS_pwrite64
   syscall_table[SYS_pwrite64] = "pwrite64";
-#endif
-#ifdef SYS_quotactl
-  syscall_table[SYS_quotactl] = "quotactl";
-#endif
-#ifdef SYS_rdblock
-  syscall_table[SYS_rdblock] = "rdblock";
-#endif
-#ifdef SYS_read
+  syscall_table[SYS_rctlsys] = "rctlsys";
   syscall_table[SYS_read] = "read";
-#endif
 #ifdef SYS_readlink
   syscall_table[SYS_readlink] = "readlink";
 #endif
-#ifdef SYS_readv
-  syscall_table[SYS_readv] = "readv";
+#ifdef SYS_readlinkat
+  syscall_table[SYS_readlinkat] = "readlinkat";
 #endif
-#ifdef SYS_reboot
-  syscall_table[SYS_reboot] = "reboot";
-#endif
-#ifdef SYS_recv
+  syscall_table[SYS_readv] = "readv";
   syscall_table[SYS_recv] = "recv";
-#endif
-#ifdef SYS_recvfrom
   syscall_table[SYS_recvfrom] = "recvfrom";
+#ifdef SYS_recvmmsg
+  syscall_table[SYS_recvmmsg] = "recvmmsg";
 #endif
-#ifdef SYS_recvmsg
   syscall_table[SYS_recvmsg] = "recvmsg";
+#ifdef SYS_reflinkat
+  syscall_table[SYS_reflinkat] = "reflinkat";
 #endif
 #ifdef SYS_rename
   syscall_table[SYS_rename] = "rename";
 #endif
-#ifdef SYS_resolvepath
-  syscall_table[SYS_resolvepath] = "resolvepath";
-#endif
-#ifdef SYS_revoke
-  syscall_table[SYS_revoke] = "revoke";
-#endif
-#ifdef SYS_rfsys
-  syscall_table[SYS_rfsys] = "rfsys";
+#ifdef SYS_renameat
+  syscall_table[SYS_renameat] = "renameat";
 #endif
+  syscall_table[SYS_resolvepath] = "resolvepath";
 #ifdef SYS_rmdir
   syscall_table[SYS_rmdir] = "rmdir";
 #endif
-#ifdef SYS_rpcsys
   syscall_table[SYS_rpcsys] = "rpcsys";
-#endif
-#ifdef SYS_sbrk
-  syscall_table[SYS_sbrk] = "sbrk";
-#endif
-#ifdef SYS_schedctl
+  syscall_table[SYS_rusagesys] = "rusagesys";
   syscall_table[SYS_schedctl] = "schedctl";
-#endif
-#ifdef SYS_secadvise
-  syscall_table[SYS_secadvise] = "secadvise";
-#endif
 #ifdef SYS_secsys
   syscall_table[SYS_secsys] = "secsys";
 #endif
-#ifdef SYS_security
-  syscall_table[SYS_security] = "security";
-#endif
-#ifdef SYS_select
-  syscall_table[SYS_select] = "select";
-#endif
-#ifdef SYS_semctl
-  syscall_table[SYS_semctl] = "semctl";
-#endif
-#ifdef SYS_semget
-  syscall_table[SYS_semget] = "semget";
-#endif
-#ifdef SYS_semop
-  syscall_table[SYS_semop] = "semop";
-#endif
-#ifdef SYS_semsys
   syscall_table[SYS_semsys] = "semsys";
-#endif
-#ifdef SYS_send
   syscall_table[SYS_send] = "send";
+  syscall_table[SYS_sendfilev] = "sendfilev";
+#ifdef SYS_sendmmsg
+  syscall_table[SYS_sendmmsg] = "sendmmsg";
 #endif
-#ifdef SYS_sendmsg
   syscall_table[SYS_sendmsg] = "sendmsg";
-#endif
-#ifdef SYS_sendto
   syscall_table[SYS_sendto] = "sendto";
-#endif
-#ifdef SYS_set_program_attributes
-  syscall_table[SYS_set_program_attributes] = "set_program_attributes";
-#endif
-#ifdef SYS_set_speculative
-  syscall_table[SYS_set_speculative] = "set_speculative";
-#endif
-#ifdef SYS_set_sysinfo
-  syscall_table[SYS_set_sysinfo] = "set_sysinfo";
-#endif
-#ifdef SYS_setcontext
-  syscall_table[SYS_setcontext] = "setcontext";
-#endif
-#ifdef SYS_setdomainname
-  syscall_table[SYS_setdomainname] = "setdomainname";
-#endif
-#ifdef SYS_setegid
   syscall_table[SYS_setegid] = "setegid";
-#endif
-#ifdef SYS_seteuid
   syscall_table[SYS_seteuid] = "seteuid";
-#endif
-#ifdef SYS_setgid
   syscall_table[SYS_setgid] = "setgid";
-#endif
-#ifdef SYS_setgroups
   syscall_table[SYS_setgroups] = "setgroups";
-#endif
-#ifdef SYS_sethostid
-  syscall_table[SYS_sethostid] = "sethostid";
-#endif
-#ifdef SYS_sethostname
-  syscall_table[SYS_sethostname] = "sethostname";
-#endif
-#ifdef SYS_setitimer
   syscall_table[SYS_setitimer] = "setitimer";
-#endif
-#ifdef SYS_setlogin
-  syscall_table[SYS_setlogin] = "setlogin";
-#endif
-#ifdef SYS_setpgid
-  syscall_table[SYS_setpgid] = "setpgid";
-#endif
-#ifdef SYS_setpgrp
-  syscall_table[SYS_setpgrp] = "setpgrp";
-#endif
-#ifdef SYS_setpriority
-  syscall_table[SYS_setpriority] = "setpriority";
-#endif
-#ifdef SYS_setregid
   syscall_table[SYS_setregid] = "setregid";
-#endif
-#ifdef SYS_setreuid
   syscall_table[SYS_setreuid] = "setreuid";
-#endif
-#ifdef SYS_setrlimit
   syscall_table[SYS_setrlimit] = "setrlimit";
-#endif
-#ifdef SYS_setrlimit64
   syscall_table[SYS_setrlimit64] = "setrlimit64";
-#endif
-#ifdef SYS_setsid
-  syscall_table[SYS_setsid] = "setsid";
-#endif
-#ifdef SYS_setsockopt
   syscall_table[SYS_setsockopt] = "setsockopt";
-#endif
-#ifdef SYS_settimeofday
-  syscall_table[SYS_settimeofday] = "settimeofday";
-#endif
-#ifdef SYS_setuid
   syscall_table[SYS_setuid] = "setuid";
-#endif
-#ifdef SYS_sgi
-  syscall_table[SYS_sgi] = "sgi";
-#endif
-#ifdef SYS_sgifastpath
-  syscall_table[SYS_sgifastpath] = "sgifastpath";
-#endif
-#ifdef SYS_sgikopt
-  syscall_table[SYS_sgikopt] = "sgikopt";
-#endif
-#ifdef SYS_sginap
-  syscall_table[SYS_sginap] = "sginap";
-#endif
-#ifdef SYS_shmat
-  syscall_table[SYS_shmat] = "shmat";
-#endif
-#ifdef SYS_shmctl
-  syscall_table[SYS_shmctl] = "shmctl";
-#endif
-#ifdef SYS_shmdt
-  syscall_table[SYS_shmdt] = "shmdt";
-#endif
-#ifdef SYS_shmget
-  syscall_table[SYS_shmget] = "shmget";
-#endif
-#ifdef SYS_shmsys
+  syscall_table[SYS_sharefs] = "sharefs";
   syscall_table[SYS_shmsys] = "shmsys";
-#endif
-#ifdef SYS_shutdown
   syscall_table[SYS_shutdown] = "shutdown";
+#ifdef SYS_sidsys
+  syscall_table[SYS_sidsys] = "sidsys";
 #endif
-#ifdef SYS_sigaction
   syscall_table[SYS_sigaction] = "sigaction";
-#endif
-#ifdef SYS_sigaltstack
   syscall_table[SYS_sigaltstack] = "sigaltstack";
-#endif
-#ifdef SYS_sigaltstack
-  syscall_table[SYS_sigaltstack] = "sigaltstack";
-#endif
-#ifdef SYS_sigblock
-  syscall_table[SYS_sigblock] = "sigblock";
-#endif
 #ifdef SYS_signal
   syscall_table[SYS_signal] = "signal";
 #endif
-#ifdef SYS_signotify
   syscall_table[SYS_signotify] = "signotify";
-#endif
-#ifdef SYS_signotifywait
-  syscall_table[SYS_signotifywait] = "signotifywait";
-#endif
-#ifdef SYS_sigpending
   syscall_table[SYS_sigpending] = "sigpending";
-#endif
-#ifdef SYS_sigpoll
-  syscall_table[SYS_sigpoll] = "sigpoll";
-#endif
-#ifdef SYS_sigprocmask
   syscall_table[SYS_sigprocmask] = "sigprocmask";
-#endif
-#ifdef SYS_sigqueue
   syscall_table[SYS_sigqueue] = "sigqueue";
+#ifdef SYS_sigresend
+  syscall_table[SYS_sigresend] = "sigresend";
 #endif
-#ifdef SYS_sigreturn
-  syscall_table[SYS_sigreturn] = "sigreturn";
-#endif
-#ifdef SYS_sigsendset
-  syscall_table[SYS_sigsendset] = "sigsendset";
-#endif
-#ifdef SYS_sigsendsys
   syscall_table[SYS_sigsendsys] = "sigsendsys";
-#endif
-#ifdef SYS_sigsetmask
-  syscall_table[SYS_sigsetmask] = "sigsetmask";
-#endif
-#ifdef SYS_sigstack
-  syscall_table[SYS_sigstack] = "sigstack";
-#endif
-#ifdef SYS_sigsuspend
   syscall_table[SYS_sigsuspend] = "sigsuspend";
-#endif
-#ifdef SYS_sigvec
-  syscall_table[SYS_sigvec] = "sigvec";
-#endif
-#ifdef SYS_sigwait
-  syscall_table[SYS_sigwait] = "sigwait";
-#endif
-#ifdef SYS_sigwaitprim
-  syscall_table[SYS_sigwaitprim] = "sigwaitprim";
-#endif
-#ifdef SYS_sleep
-  syscall_table[SYS_sleep] = "sleep";
-#endif
-#ifdef SYS_so_socket
+  syscall_table[SYS_sigtimedwait] = "sigtimedwait";
   syscall_table[SYS_so_socket] = "so_socket";
-#endif
-#ifdef SYS_so_socketpair
   syscall_table[SYS_so_socketpair] = "so_socketpair";
-#endif
-#ifdef SYS_sockconfig
   syscall_table[SYS_sockconfig] = "sockconfig";
+#ifdef SYS_sparc_fixalign
+  syscall_table[SYS_sparc_fixalign] = "sparc_fixalign";
 #endif
-#ifdef SYS_socket
-  syscall_table[SYS_socket] = "socket";
-#endif
-#ifdef SYS_socketpair
-  syscall_table[SYS_socketpair] = "socketpair";
-#endif
-#ifdef SYS_sproc
-  syscall_table[SYS_sproc] = "sproc";
-#endif
-#ifdef SYS_sprocsp
-  syscall_table[SYS_sprocsp] = "sprocsp";
-#endif
-#ifdef SYS_sstk
-  syscall_table[SYS_sstk] = "sstk";
+  syscall_table[SYS_sparc_utrap_install] = "sparc_utrap_install";
+#ifdef SYS_spawn
+  syscall_table[SYS_spawn] = "spawn";
 #endif
 #ifdef SYS_stat
   syscall_table[SYS_stat] = "stat";
@@ -1179,153 +432,73 @@ init_syscall_table (void)
 #ifdef SYS_stat64
   syscall_table[SYS_stat64] = "stat64";
 #endif
-#ifdef SYS_statfs
   syscall_table[SYS_statfs] = "statfs";
-#endif
-#ifdef SYS_statvfs
   syscall_table[SYS_statvfs] = "statvfs";
-#endif
-#ifdef SYS_statvfs64
   syscall_table[SYS_statvfs64] = "statvfs64";
-#endif
-#ifdef SYS_stime
   syscall_table[SYS_stime] = "stime";
-#endif
-#ifdef SYS_stty
   syscall_table[SYS_stty] = "stty";
-#endif
-#ifdef SYS_subsys_info
-  syscall_table[SYS_subsys_info] = "subsys_info";
-#endif
-#ifdef SYS_swapctl
-  syscall_table[SYS_swapctl] = "swapctl";
-#endif
-#ifdef SYS_swapon
-  syscall_table[SYS_swapon] = "swapon";
-#endif
 #ifdef SYS_symlink
   syscall_table[SYS_symlink] = "symlink";
 #endif
-#ifdef SYS_sync
-  syscall_table[SYS_sync] = "sync";
-#endif
-#ifdef SYS_sys3b
-  syscall_table[SYS_sys3b] = "sys3b";
+#ifdef SYS_symlinkat
+  syscall_table[SYS_symlinkat] = "symlinkat";
 #endif
-#ifdef SYS_syscall
+  syscall_table[SYS_sync] = "sync";
   syscall_table[SYS_syscall] = "syscall";
-#endif
-#ifdef SYS_sysconfig
   syscall_table[SYS_sysconfig] = "sysconfig";
-#endif
-#ifdef SYS_sysfs
   syscall_table[SYS_sysfs] = "sysfs";
-#endif
-#ifdef SYS_sysi86
   syscall_table[SYS_sysi86] = "sysi86";
-#endif
-#ifdef SYS_sysinfo
-  syscall_table[SYS_sysinfo] = "sysinfo";
-#endif
-#ifdef SYS_sysmips
-  syscall_table[SYS_sysmips] = "sysmips";
-#endif
 #ifdef SYS_syssun
   syscall_table[SYS_syssun] = "syssun";
 #endif
-#ifdef SYS_systeminfo
-  syscall_table[SYS_systeminfo] = "systeminfo";
-#endif
-#ifdef SYS_table
-  syscall_table[SYS_table] = "table";
+#ifdef SYS_system_stats
+  syscall_table[SYS_system_stats] = "system_stats";
 #endif
-#ifdef SYS_time
+  syscall_table[SYS_systeminfo] = "systeminfo";
+  syscall_table[SYS_tasksys] = "tasksys";
   syscall_table[SYS_time] = "time";
-#endif
-#ifdef SYS_timedwait
-  syscall_table[SYS_timedwait] = "timedwait";
-#endif
-#ifdef SYS_timer_create
   syscall_table[SYS_timer_create] = "timer_create";
-#endif
-#ifdef SYS_timer_delete
   syscall_table[SYS_timer_delete] = "timer_delete";
-#endif
-#ifdef SYS_timer_getoverrun
   syscall_table[SYS_timer_getoverrun] = "timer_getoverrun";
-#endif
-#ifdef SYS_timer_gettime
   syscall_table[SYS_timer_gettime] = "timer_gettime";
-#endif
-#ifdef SYS_timer_settime
   syscall_table[SYS_timer_settime] = "timer_settime";
-#endif
-#ifdef SYS_times
   syscall_table[SYS_times] = "times";
-#endif
-#ifdef SYS_truncate
-  syscall_table[SYS_truncate] = "truncate";
-#endif
-#ifdef SYS_truncate64
-  syscall_table[SYS_truncate64] = "truncate64";
-#endif
-#ifdef SYS_tsolsys
-  syscall_table[SYS_tsolsys] = "tsolsys";
-#endif
-#ifdef SYS_uadmin
   syscall_table[SYS_uadmin] = "uadmin";
-#endif
-#ifdef SYS_ulimit
+  syscall_table[SYS_ucredsys] = "ucredsys";
   syscall_table[SYS_ulimit] = "ulimit";
-#endif
-#ifdef SYS_umask
   syscall_table[SYS_umask] = "umask";
-#endif
 #ifdef SYS_umount
   syscall_table[SYS_umount] = "umount";
 #endif
-#ifdef SYS_uname
+  syscall_table[SYS_umount2] = "umount2";
   syscall_table[SYS_uname] = "uname";
-#endif
-#ifdef SYS_unblock
-  syscall_table[SYS_unblock] = "unblock";
-#endif
 #ifdef SYS_unlink
   syscall_table[SYS_unlink] = "unlink";
 #endif
-#ifdef SYS_unmount
-  syscall_table[SYS_unmount] = "unmount";
-#endif
-#ifdef SYS_usleep_thread
-  syscall_table[SYS_usleep_thread] = "usleep_thread";
-#endif
-#ifdef SYS_uswitch
-  syscall_table[SYS_uswitch] = "uswitch";
-#endif
-#ifdef SYS_utc_adjtime
-  syscall_table[SYS_utc_adjtime] = "utc_adjtime";
-#endif
-#ifdef SYS_utc_gettime
-  syscall_table[SYS_utc_gettime] = "utc_gettime";
+#ifdef SYS_unlinkat
+  syscall_table[SYS_unlinkat] = "unlinkat";
 #endif
 #ifdef SYS_utime
   syscall_table[SYS_utime] = "utime";
 #endif
+#ifdef SYS_utimensat
+  syscall_table[SYS_utimensat] = "utimensat";
+#endif
 #ifdef SYS_utimes
   syscall_table[SYS_utimes] = "utimes";
 #endif
-#ifdef SYS_utssys
+#ifdef SYS_utimesys
+  syscall_table[SYS_utimesys] = "utimesys";
+#endif
   syscall_table[SYS_utssys] = "utssys";
+  syscall_table[SYS_uucopy] = "uucopy";
+  syscall_table[SYS_uucopystr] = "uucopystr";
+  syscall_table[SYS_uuidsys] = "uuidsys";
+#ifdef SYS_va_mask
+  syscall_table[SYS_va_mask] = "va_mask";
 #endif
-#ifdef SYS_vfork
   syscall_table[SYS_vfork] = "vfork";
-#endif
-#ifdef SYS_vhangup
   syscall_table[SYS_vhangup] = "vhangup";
-#endif
-#ifdef SYS_vtrace
-  syscall_table[SYS_vtrace] = "vtrace";
-#endif
 #ifdef SYS_wait
   syscall_table[SYS_wait] = "wait";
 #endif
@@ -1335,24 +508,16 @@ init_syscall_table (void)
 #ifdef SYS_waitsys
   syscall_table[SYS_waitsys] = "waitsys";
 #endif
-#ifdef SYS_write
   syscall_table[SYS_write] = "write";
-#endif
-#ifdef SYS_writev
   syscall_table[SYS_writev] = "writev";
-#endif
-#ifdef SYS_xenix
-  syscall_table[SYS_xenix] = "xenix";
-#endif
 #ifdef SYS_xmknod
   syscall_table[SYS_xmknod] = "xmknod";
 #endif
 #ifdef SYS_xstat
   syscall_table[SYS_xstat] = "xstat";
 #endif
-#ifdef SYS_yield
   syscall_table[SYS_yield] = "yield";
-#endif
+  syscall_table[SYS_zone] = "zone";
 }
 
 /* Prettyprint syscall NUM.  */
@@ -1415,130 +580,41 @@ static struct trans signal_table[] = 
 
   /* All other signals need preprocessor conditionals.  */
 
-#ifdef SIGHUP
   { SIGHUP, "SIGHUP", "Hangup" },
-#endif
-#ifdef SIGQUIT
   { SIGQUIT, "SIGQUIT", "Quit (ASCII FS)" },
-#endif
-#ifdef SIGTRAP
   { SIGTRAP, "SIGTRAP", "Trace trap" },		/* not reset when caught */
-#endif
-#ifdef SIGIOT
   { SIGIOT, "SIGIOT", "IOT instruction" },
-#endif
-#ifdef SIGEMT
   { SIGEMT, "SIGEMT", "EMT instruction" },
-#endif
-#ifdef SIGKILL
   { SIGKILL, "SIGKILL", "Kill" },	/* Solaris: cannot be caught/ignored */
-#endif
-#ifdef SIGBUS
   { SIGBUS, "SIGBUS", "Bus error" },
-#endif
-#ifdef SIGSYS
   { SIGSYS, "SIGSYS", "Bad argument to system call" },
-#endif
-#ifdef SIGPIPE
   { SIGPIPE, "SIGPIPE", "Write to pipe with no one to read it" },
-#endif
-#ifdef SIGALRM
   { SIGALRM, "SIGALRM", "Alarm clock" },
-#endif
-#ifdef SIGUSR1
   { SIGUSR1, "SIGUSR1", "User defined signal 1" },
-#endif
-#ifdef SIGUSR2
   { SIGUSR2, "SIGUSR2", "User defined signal 2" },
-#endif
-#ifdef SIGCHLD
   { SIGCHLD, "SIGCHLD", "Child status changed" },	/* Posix version */
-#endif
-#ifdef SIGCLD
   { SIGCLD, "SIGCLD", "Child status changed" },		/* Solaris version */
-#endif
-#ifdef SIGPWR
   { SIGPWR, "SIGPWR", "Power-fail restart" },
-#endif
-#ifdef SIGWINCH
   { SIGWINCH, "SIGWINCH", "Window size change" },
-#endif
-#ifdef SIGURG
   { SIGURG, "SIGURG", "Urgent socket condition" },
-#endif
-#ifdef SIGPOLL
   { SIGPOLL, "SIGPOLL", "Pollable event" },
-#endif
-#ifdef SIGIO
   { SIGIO, "SIGIO", "Socket I/O possible" },	/* alias for SIGPOLL */
-#endif
-#ifdef SIGSTOP
   { SIGSTOP, "SIGSTOP", "Stop, not from tty" },	/* cannot be caught or
 						   ignored */
-#endif
-#ifdef SIGTSTP
   { SIGTSTP, "SIGTSTP", "User stop from tty" },
-#endif
-#ifdef SIGCONT
   { SIGCONT, "SIGCONT", "Stopped process has been continued" },
-#endif
-#ifdef SIGTTIN
   { SIGTTIN, "SIGTTIN", "Background tty read attempted" },
-#endif
-#ifdef SIGTTOU
   { SIGTTOU, "SIGTTOU", "Background tty write attempted" },
-#endif
-#ifdef SIGVTALRM
   { SIGVTALRM, "SIGVTALRM", "Virtual timer expired" },
-#endif
-#ifdef SIGPROF
   { SIGPROF, "SIGPROF", "Profiling timer expired" },
-#endif
-#ifdef SIGXCPU
   { SIGXCPU, "SIGXCPU", "Exceeded CPU limit" },
-#endif
-#ifdef SIGXFSZ
   { SIGXFSZ, "SIGXFSZ", "Exceeded file size limit" },
-#endif
-#ifdef SIGWAITING
   { SIGWAITING, "SIGWAITING", "Process's LWPs are blocked" },
-#endif
-#ifdef SIGLWP
   { SIGLWP, "SIGLWP", "Used by thread library" },
-#endif
-#ifdef SIGFREEZE
   { SIGFREEZE, "SIGFREEZE", "Used by CPR" },
-#endif
-#ifdef SIGTHAW
   { SIGTHAW, "SIGTHAW", "Used by CPR" },
-#endif
-#ifdef SIGCANCEL
   { SIGCANCEL, "SIGCANCEL", "Used by libthread" },
-#endif
-#ifdef SIGLOST
   { SIGLOST, "SIGLOST", "Resource lost" },
-#endif
-#ifdef SIG32
-  { SIG32, "SIG32", "Reserved for kernel usage (Irix)" },
-#endif
-#ifdef SIGPTINTR
-  { SIGPTINTR, "SIGPTINTR", "Posix 1003.1b" },
-#endif
-#ifdef SIGTRESCHED
-  { SIGTRESCHED, "SIGTRESCHED", "Posix 1003.1b" },
-#endif
-#ifdef SIGINFO
-  { SIGINFO, "SIGINFO", "Information request" },
-#endif
-#ifdef SIGRESV
-  { SIGRESV, "SIGRESV", "Reserved by Digital for future use" },
-#endif
-#ifdef SIGAIO
-  { SIGAIO, "SIGAIO", "Asynchronous I/O signal" },
-#endif
-#ifdef SIGLIBRT
-  { SIGLIBRT, "SIGLIBRT", "Used by librt" },
-#endif
 
   /* FIXME: add real-time signals.  */
 };
@@ -1601,51 +677,18 @@ proc_prettyprint_signalset (sigset_t *si
 
 static struct trans fault_table[] =
 {
-#ifdef FLTILL
   { FLTILL, "FLTILL", "Illegal instruction" },
-#endif
-#ifdef FLTPRIV
   { FLTPRIV, "FLTPRIV", "Privileged instruction" },
-#endif
-#ifdef FLTBPT
   { FLTBPT, "FLTBPT", "Breakpoint trap" },
-#endif
-#ifdef FLTTRACE
   { FLTTRACE, "FLTTRACE", "Trace trap" },
-#endif
-#ifdef FLTACCESS
   { FLTACCESS, "FLTACCESS", "Memory access fault" },
-#endif
-#ifdef FLTBOUNDS
   { FLTBOUNDS, "FLTBOUNDS", "Memory bounds violation" },
-#endif
-#ifdef FLTIOVF
   { FLTIOVF, "FLTIOVF", "Integer overflow" },
-#endif
-#ifdef FLTIZDIV
   { FLTIZDIV, "FLTIZDIV", "Integer zero divide" },
-#endif
-#ifdef FLTFPE
   { FLTFPE, "FLTFPE", "Floating-point exception" },
-#endif
-#ifdef FLTSTACK
   { FLTSTACK, "FLTSTACK", "Unrecoverable stack fault" },
-#endif
-#ifdef FLTPAGE
   { FLTPAGE, "FLTPAGE", "Recoverable page fault" },
-#endif
-#ifdef FLTPCINVAL
-  { FLTPCINVAL, "FLTPCINVAL", "Invalid PC exception" },
-#endif
-#ifdef FLTWATCH
   { FLTWATCH, "FLTWATCH", "User watchpoint" },
-#endif
-#ifdef FLTKWATCH
-  { FLTKWATCH, "FLTKWATCH", "Kernel watchpoint" },
-#endif
-#ifdef FLTSCWATCH
-  { FLTSCWATCH, "FLTSCWATCH", "Hit a store conditional on a watched page" },
-#endif
 };
 
 /* Work horse.  Accepts an index into the fault table, prints it
@@ -1716,10 +759,6 @@ void
 proc_prettyprint_actionset (struct sigaction *actions, int verbose)
 {
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_proc_events (void);
 
 void
 _initialize_proc_events (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/proc-flags.c ./gdb/proc-flags.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/proc-flags.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/proc-flags.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
-/* Machine independent support for SVR4 /proc (process file system) for GDB.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+/* Machine independent support for Solaris /proc (process file system) for GDB.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Written by Michael Snyder at Cygnus Solutions.
    Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others.
 
@@ -27,9 +27,7 @@
 
 #include "defs.h"
 
-#if defined (NEW_PROC_API)
 #define _STRUCTURED_PROC 1
-#endif
 
 #include <sys/types.h>
 #include <sys/procfs.h>
@@ -52,220 +50,44 @@ struct trans {
 
 static struct trans pr_flag_table[] =
 {
-#if defined (PR_STOPPED)
-  /* Sol2.5: lwp is stopped
-   * Sol2.6: lwp is stopped
-   * Sol2.7: lwp is stopped
-   * IRIX6:  process is stopped
-   * OSF:    task/thread is stopped
-   * UW:     LWP is stopped
-   */
+  /* lwp is stopped */
   { PR_STOPPED, "PR_STOPPED", "Process (LWP) is stopped" },
-#endif
-#if defined (PR_ISTOP)
-  /* Sol2.5: lwp is stopped on an event of interest
-   * Sol2.6: lwp is stopped on an event of interest
-   * Sol2.7: lwp is stopped on an event of interest
-   * IRIX6:  process is stopped on event of interest
-   * OSF:    task/thread stopped on event of interest
-   * UW:     LWP stopped on an event of interest
-   */
+  /* lwp is stopped on an event of interest */
   { PR_ISTOP, "PR_ISTOP", "Stopped on an event of interest" },
-#endif
-#if defined (PR_DSTOP)
-  /* Sol2.5: lwp has a stop directive in effect
-   * Sol2.6: lwp has a stop directive in effect
-   * Sol2.7: lwp has a stop directive in effect
-   * IRIX6:  process has stop directive in effect
-   * OSF:    task/thread has stop directive in effect
-   * UW:     A stop directive is in effect
-   */
+  /* lwp has a stop directive in effect */
   { PR_DSTOP, "PR_DSTOP", "A stop directive is in effect" },
-#endif
-#if defined (PR_STEP)
-  /* Sol2.5: lwp has a single-step directive in effect
-   * Sol2.6: lwp has a single-step directive in effect
-   * Sol2.7: lwp has a single-step directive in effect
-   * IRIX6:  process has single step pending
-   */
+  /* lwp has a single-step directive in effect */
   { PR_STEP, "PR_STEP", "A single step directive is in effect" },
-#endif
-#if defined (PR_ASLEEP)
-  /* Sol2.5: lwp is sleeping in a system call
-   * Sol2.6: lwp is sleeping in a system call
-   * Sol2.7: lwp is sleeping in a system call
-   * IRIX6:  process is in an interruptible sleep
-   * OSF:    task/thread is asleep within a system call
-   * UW:     LWP is sleep()ing in a system call
-   */
+  /* lwp is sleeping in a system call */
   { PR_ASLEEP, "PR_ASLEEP", "Sleeping in an (interruptible) system call" },
-#endif
-#if defined (PR_PCINVAL)
-  /* Sol2.5: contents of pr_instr undefined
-   * Sol2.6: contents of pr_instr undefined
-   * Sol2.7: contents of pr_instr undefined
-   * IRIX6:  current pc is invalid
-   * OSF:    program counter contains invalid address
-   * UW:     %pc refers to an invalid virtual address
-   */
+  /* contents of pr_instr undefined */
   { PR_PCINVAL, "PR_PCINVAL", "PC (pr_instr) is invalid" },
-#endif
-#if defined (PR_ASLWP)
-  /* Sol2.5: this lwp is the aslwp
-   * Sol2.6: this lwp is the aslwp
-   * Sol2.7: this lwp is the aslwp
-   */
+  /* this lwp is the aslwp */
   { PR_ASLWP, "PR_ASLWP", "This is the asynchronous signal LWP" },
-#endif
-#if defined (PR_AGENT)
-  /* Sol2.6: this lwp is the /proc agent lwp
-   * Sol2.7: this lwp is the /proc agent lwp
-   */
+  /* this lwp is the /proc agent lwp */
   { PR_AGENT, "PR_AGENT", "This is the /proc agent LWP" },
-#endif
-#if defined (PR_ISSYS)
-  /* Sol2.5: system process
-   * Sol2.6: this is a system process
-   * Sol2.7: this is a system process
-   * IRIX6:  process is a system process
-   * OSF:    task/thread is a system task/thread
-   * UW:     System process
-   */
+  /* this is a system process */
   { PR_ISSYS, "PR_ISSYS", "Is a system process/thread" },
-#endif
-#if defined (PR_VFORKP)
-  /* Sol2.6: process is the parent of a vfork()d child
-   * Sol2.7: process is the parent of a vfork()d child
-   */
+  /* process is the parent of a vfork()d child */
   { PR_VFORKP, "PR_VFORKP", "Process is the parent of a vforked child" },
-#endif
-#ifdef PR_ORPHAN
-  /* Sol2.6: process's process group is orphaned
-   * Sol2.7: process's process group is orphaned
-   */
+  /* process's process group is orphaned */
   { PR_ORPHAN, "PR_ORPHAN", "Process's process group is orphaned" },
-#endif
-#if defined (PR_FORK)
-  /* Sol2.5: inherit-on-fork is in effect
-   * Sol2.6: inherit-on-fork is in effect
-   * Sol2.7: inherit-on-fork is in effect
-   * IRIX6:  process has inherit-on-fork flag set
-   * OSF:    task/thread has inherit-on-fork flag set
-   * UW:     inherit-on-fork is in effect
-   */
+  /* inherit-on-fork is in effect */
   { PR_FORK, "PR_FORK", "Inherit-on-fork is in effect" },
-#endif
-#if defined (PR_RLC)
-  /* Sol2.5: run-on-last-close is in effect
-   * Sol2.6: run-on-last-close is in effect
-   * Sol2.7: run-on-last-close is in effect
-   * IRIX6:  process has run-on-last-close flag set
-   * OSF:    task/thread has run-on-last-close flag set
-   * UW:     Run-on-last-close is in effect
-   */
+  /* run-on-last-close is in effect */
   { PR_RLC, "PR_RLC", "Run-on-last-close is in effect" },
-#endif
-#if defined (PR_KLC)
-  /* Sol2.5: kill-on-last-close is in effect
-   * Sol2.6: kill-on-last-close is in effect
-   * Sol2.7: kill-on-last-close is in effect
-   * IRIX6:  process has kill-on-last-close flag set
-   * OSF:    kill-on-last-close, superceeds RLC
-   * UW:     kill-on-last-close is in effect
-   */
+  /* kill-on-last-close is in effect */
   { PR_KLC, "PR_KLC", "Kill-on-last-close is in effect" },
-#endif
-#if defined (PR_ASYNC)
-  /* Sol2.5: asynchronous-stop is in effect
-   * Sol2.6: asynchronous-stop is in effect
-   * Sol2.7: asynchronous-stop is in effect
-   * OSF:    asynchronous stop mode is in effect
-   * UW:     asynchronous stop mode is in effect
-   */
+  /* asynchronous-stop is in effect */
   { PR_ASYNC, "PR_ASYNC", "Asynchronous stop is in effect" },
-#endif
-#if defined (PR_MSACCT)
-  /* Sol2.5: micro-state usage accounting is in effect
-   * Sol2.6: micro-state usage accounting is in effect
-   * Sol2.7: micro-state usage accounting is in effect
-   */
+  /* micro-state usage accounting is in effect */
   { PR_MSACCT, "PR_MSACCT", "Microstate accounting enabled" },
-#endif
-#if defined (PR_BPTADJ)
-  /* Sol2.5: breakpoint trap pc adjustment is in effect
-   * Sol2.6: breakpoint trap pc adjustment is in effect
-   * Sol2.7: breakpoint trap pc adjustment is in effect
-   */
+  /* breakpoint trap pc adjustment is in effect */
   { PR_BPTADJ, "PR_BPTADJ", "Breakpoint PC adjustment in effect" },
-#endif
-#if defined (PR_PTRACE)
-  /* Note: different meanings on Solaris and Irix 6
-   * Sol2.5: obsolete, never set in SunOS5.0
-   * Sol2.6: ptrace-compatibility mode is in effect
-   * Sol2.7: ptrace-compatibility mode is in effect
-   * IRIX6:  process is traced with ptrace() too
-   * OSF:    task/thread is being traced by ptrace
-   * UW:     Process is being controlled by ptrace(2)
-   */
+  /* ptrace-compatibility mode is in effect */
   { PR_PTRACE, "PR_PTRACE", "Process is being controlled by ptrace" },
-#endif
-#if defined (PR_PCOMPAT)
-  /* Note: PCOMPAT on Sol2.5 means same thing as PTRACE on Sol2.6
-   * Sol2.5 (only): ptrace-compatibility mode is in effect
-   */
-  { PR_PCOMPAT, "PR_PCOMPAT", "Ptrace compatibility mode in effect" },
-#endif
-#ifdef PR_MSFORK
-  /* Sol2.6: micro-state accounting inherited on fork
-   * Sol2.7: micro-state accounting inherited on fork
-   */
+  /* micro-state accounting inherited on fork */
   { PR_MSFORK, "PR_PCOMPAT", "Micro-state accounting inherited on fork" },
-#endif
-
-#ifdef PR_ISKTHREAD
-  /* Irix6: process is a kernel thread */
-  { PR_ISKTHREAD, "PR_KTHREAD", "Process is a kernel thread" },
-#endif
-
-#ifdef PR_ABORT
-  /* OSF (only): abort the current stop condition */
-  { PR_ABORT, "PR_ABORT", "Abort the current stop condition" },
-#endif
-
-#ifdef PR_TRACING
-  /* OSF: task is traced */
-  { PR_TRACING, "PR_TRACING", "Task is traced" },
-#endif
-
-#ifdef PR_STOPFORK
-  /* OSF: stop child on fork */
-  { PR_STOPFORK, "PR_STOPFORK", "Stop child on fork" },
-#endif
-
-#ifdef PR_STOPEXEC
-  /* OSF: stop on exec */
-  { PR_STOPEXEC, "PR_STOPEXEC", "Stop on exec" },
-#endif
-
-#ifdef PR_STOPTERM
-  /* OSF: stop on task exit */
-  { PR_STOPTERM, "PR_STOPTERM", "Stop on task exit" },
-#endif
-
-#ifdef PR_STOPTCR
-  /* OSF: stop on thread creation */
-  { PR_STOPTCR, "PR_STOPTCR", "Stop on thread creation" },
-#endif
-
-#ifdef PR_STOPTTERM
-  /* OSF: stop on thread exit */
-  { PR_STOPTTERM, "PR_STOPTTERM", "Stop on thread exit" },
-#endif
-
-#ifdef PR_USCHED
-  /* OSF: user level scheduling is in effect */
-  { PR_USCHED, "PR_USCHED", "User level scheduling is in effect" },
-#endif
 };
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/procfs.c ./gdb/procfs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/procfs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/procfs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
-/* Machine independent support for SVR4 /proc (process file system) for GDB.
+/* Machine independent support for Solaris /proc (process file system) for GDB.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    Written by Michael Snyder at Cygnus Solutions.
    Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others.
@@ -30,19 +30,14 @@
 #include "gdbthread.h"
 #include "regcache.h"
 #include "inf-child.h"
+#include "nat/fork-inferior.h"
 #include "filestuff.h"
 
-#if defined (NEW_PROC_API)
 #define _STRUCTURED_PROC 1	/* Should be done by configure script.  */
-#endif
 
 #include <sys/procfs.h>
-#ifdef HAVE_SYS_FAULT_H
 #include <sys/fault.h>
-#endif
-#ifdef HAVE_SYS_SYSCALL_H
 #include <sys/syscall.h>
-#endif
 #include "gdb_wait.h"
 #include <signal.h>
 #include <ctype.h>
@@ -56,13 +51,6 @@
    /proc file system, which is used on many versions of Unix
    as a means for debuggers to control other processes.
 
-   Examples of the systems that use this interface are:
-
-     Irix
-     Solaris
-     OSF
-     AIX5
-
    /proc works by imitating a file system: you open a simulated file
    that represents the process you wish to interact with, and perform
    operations on that "file" in order to examine or change the state
@@ -74,22 +62,11 @@
      One that uses the ioctl system call, and another that uses read
      and write system calls.
 
-   This module has to support both /proc interfaces.  This means that
-   there are two different ways of doing every basic operation.
-
-   In order to keep most of the code simple and clean, I have defined
-   an interface "layer" which hides all these system calls.  An ifdef
-   (NEW_PROC_API) determines which interface we are using, and most or
-   all occurrances of this ifdef should be confined to this interface
-   layer.  */
+   This module supports only the Solaris version of the read/write
+   interface.  */
 
-/* Determine which /proc API we are using: The ioctl API defines
-   PIOCSTATUS, while the read/write (multiple fd) API never does.  */
-
-#ifdef NEW_PROC_API
 #include <sys/types.h>
 #include <dirent.h>	/* opendir/readdir, for listing the LWP's */
-#endif
 
 #include <fcntl.h>	/* for O_RDONLY */
 #include <unistd.h>	/* for "X_OK" */
@@ -140,8 +117,8 @@ static const char *procfs_pid_to_str (st
 static int proc_find_memory_regions (struct target_ops *self,
 				     find_memory_region_ftype, void *);
 
-static char * procfs_make_note_section (struct target_ops *self,
-					bfd *, int *);
+static char *procfs_make_note_section (struct target_ops *self,
+				       bfd *, int *);
 
 static int procfs_can_use_hw_breakpoint (struct target_ops *self,
 					 enum bptype, int, int);
@@ -222,94 +199,11 @@ procfs_target (void)
    Put any typedefs, defines etc. here that are required for the
    unification of code that handles different versions of /proc.  */
 
-#ifdef NEW_PROC_API		/* Solaris 7 && 8 method for watchpoints */
-#ifdef WA_READ
-     enum { READ_WATCHFLAG  = WA_READ,
-	    WRITE_WATCHFLAG = WA_WRITE,
-	    EXEC_WATCHFLAG  = WA_EXEC,
-	    AFTER_WATCHFLAG = WA_TRAPAFTER
-     };
-#endif
-#else				/* Irix method for watchpoints */
-     enum { READ_WATCHFLAG  = MA_READ,
-	    WRITE_WATCHFLAG = MA_WRITE,
-	    EXEC_WATCHFLAG  = MA_EXEC,
-	    AFTER_WATCHFLAG = 0		/* trapafter not implemented */
-     };
-#endif
-
-/* gdb_sigset_t */
-#ifdef HAVE_PR_SIGSET_T
-typedef pr_sigset_t gdb_sigset_t;
-#else
-typedef sigset_t gdb_sigset_t;
-#endif
-
-/* sigaction */
-#ifdef HAVE_PR_SIGACTION64_T
-typedef pr_sigaction64_t gdb_sigaction_t;
-#else
-typedef struct sigaction gdb_sigaction_t;
-#endif
-
-/* siginfo */
-#ifdef HAVE_PR_SIGINFO64_T
-typedef pr_siginfo64_t gdb_siginfo_t;
-#else
-typedef siginfo_t gdb_siginfo_t;
-#endif
-
-/* On mips-irix, praddset and prdelset are defined in such a way that
-   they return a value, which causes GCC to emit a -Wunused error
-   because the returned value is not used.  Prevent this warning
-   by casting the return value to void.  On sparc-solaris, this issue
-   does not exist because the definition of these macros already include
-   that cast to void.  */
-#define gdb_praddset(sp, flag) ((void) praddset (sp, flag))
-#define gdb_prdelset(sp, flag) ((void) prdelset (sp, flag))
-
-/* gdb_premptysysset */
-#ifdef premptysysset
-#define gdb_premptysysset premptysysset
-#else
-#define gdb_premptysysset premptyset
-#endif
-
-/* praddsysset */
-#ifdef praddsysset
-#define gdb_praddsysset praddsysset
-#else
-#define gdb_praddsysset gdb_praddset
-#endif
-
-/* prdelsysset */
-#ifdef prdelsysset
-#define gdb_prdelsysset prdelsysset
-#else
-#define gdb_prdelsysset gdb_prdelset
-#endif
-
-/* prissyssetmember */
-#ifdef prissyssetmember
-#define gdb_pr_issyssetmember prissyssetmember
-#else
-#define gdb_pr_issyssetmember prismember
-#endif
-
-/* As a feature test, saying ``#if HAVE_PRSYSENT_T'' everywhere isn't
-   as intuitively descriptive as it could be, so we'll define
-   DYNAMIC_SYSCALLS to mean the same thing.  Anyway, at the time of
-   this writing, this feature is only found on AIX5 systems and
-   basically means that the set of syscalls is not fixed.  I.e,
-   there's no nice table that one can #include to get all of the
-   syscall numbers.  Instead, they're stored in /proc/PID/sysent
-   for each process.  We are at least guaranteed that they won't
-   change over the lifetime of the process.  But each process could
-   (in theory) have different syscall numbers.  */
-#ifdef HAVE_PRSYSENT_T
-#define DYNAMIC_SYSCALLS
-#endif
-
+enum { READ_WATCHFLAG  = WA_READ,
+       WRITE_WATCHFLAG = WA_WRITE,
+       EXEC_WATCHFLAG  = WA_EXEC,
+       AFTER_WATCHFLAG = WA_TRAPAFTER
+};
 
 
 /* =================== STRUCT PROCINFO "MODULE" =================== */
@@ -333,33 +227,13 @@ typedef siginfo_t gdb_siginfo_t;
    information about any random process without interfering with the
    inferior's procinfo information.  */
 
-#ifdef NEW_PROC_API
-/* format strings for /proc paths */
-# ifndef CTL_PROC_NAME_FMT
-#  define MAIN_PROC_NAME_FMT   "/proc/%d"
-#  define CTL_PROC_NAME_FMT    "/proc/%d/ctl"
-#  define AS_PROC_NAME_FMT     "/proc/%d/as"
-#  define MAP_PROC_NAME_FMT    "/proc/%d/map"
-#  define STATUS_PROC_NAME_FMT "/proc/%d/status"
-#  define MAX_PROC_NAME_SIZE sizeof("/proc/99999/lwp/8096/lstatus")
-# endif
-/* the name of the proc status struct depends on the implementation */
-typedef pstatus_t   gdb_prstatus_t;
-typedef lwpstatus_t gdb_lwpstatus_t;
-#else /* ! NEW_PROC_API */
 /* format strings for /proc paths */
-# ifndef CTL_PROC_NAME_FMT
-#  define MAIN_PROC_NAME_FMT   "/proc/%05d"
-#  define CTL_PROC_NAME_FMT    "/proc/%05d"
-#  define AS_PROC_NAME_FMT     "/proc/%05d"
-#  define MAP_PROC_NAME_FMT    "/proc/%05d"
-#  define STATUS_PROC_NAME_FMT "/proc/%05d"
-#  define MAX_PROC_NAME_SIZE sizeof("/proc/ttttppppp")
-# endif
-/* The name of the proc status struct depends on the implementation.  */
-typedef prstatus_t gdb_prstatus_t;
-typedef prstatus_t gdb_lwpstatus_t;
-#endif /* NEW_PROC_API */
+#define MAIN_PROC_NAME_FMT   "/proc/%d"
+#define CTL_PROC_NAME_FMT    "/proc/%d/ctl"
+#define AS_PROC_NAME_FMT     "/proc/%d/as"
+#define MAP_PROC_NAME_FMT    "/proc/%d/map"
+#define STATUS_PROC_NAME_FMT "/proc/%d/status"
+#define MAX_PROC_NAME_SIZE sizeof("/proc/99999/lwp/8096/lstatus")
 
 typedef struct procinfo {
   struct procinfo *next;
@@ -370,39 +244,19 @@ typedef struct procinfo {
   int was_stopped;
   int ignore_next_sigstop;
 
-  /* The following four fd fields may be identical, or may contain
-     several different fd's, depending on the version of /proc
-     (old ioctl or new read/write).  */
-
   int ctl_fd;			/* File descriptor for /proc control file */
-
-  /* The next three file descriptors are actually only needed in the
-     read/write, multiple-file-descriptor implemenation
-     (NEW_PROC_API).  However, to avoid a bunch of #ifdefs in the
-     code, we will use them uniformly by (in the case of the ioctl
-     single-file-descriptor implementation) filling them with copies
-     of the control fd.  */
   int status_fd;		/* File descriptor for /proc status file */
   int as_fd;			/* File descriptor for /proc as file */
 
   char pathname[MAX_PROC_NAME_SIZE];	/* Pathname to /proc entry */
 
   fltset_t saved_fltset;	/* Saved traced hardware fault set */
-  gdb_sigset_t saved_sigset;	/* Saved traced signal set */
-  gdb_sigset_t saved_sighold;	/* Saved held signal set */
+  sigset_t saved_sigset;	/* Saved traced signal set */
+  sigset_t saved_sighold;	/* Saved held signal set */
   sysset_t *saved_exitset;	/* Saved traced system call exit set */
   sysset_t *saved_entryset;	/* Saved traced system call entry set */
 
-  gdb_prstatus_t prstatus;	/* Current process status info */
-
-#ifndef NEW_PROC_API
-  gdb_fpregset_t fpregset;	/* Current floating point registers */
-#endif
-
-#ifdef DYNAMIC_SYSCALLS
-  int num_syscalls;		/* Total number of syscalls */
-  char **syscall_names;		/* Syscall number to name map */
-#endif
+  pstatus_t prstatus;		/* Current process status info */
 
   struct procinfo *thread_list;
 
@@ -419,18 +273,12 @@ static char errmsg[128];	/* shared error
 static procinfo *find_procinfo_or_die (int pid, int tid);
 static procinfo *find_procinfo (int pid, int tid);
 static procinfo *create_procinfo (int pid, int tid);
-static void destroy_procinfo (procinfo * p);
+static void destroy_procinfo (procinfo *p);
 static void do_destroy_procinfo_cleanup (void *);
-static void dead_procinfo (procinfo * p, const char *msg, int killp);
-static int open_procinfo_files (procinfo * p, int which);
-static void close_procinfo_files (procinfo * p);
-static int sysset_t_size (procinfo *p);
-static sysset_t *sysset_t_alloc (procinfo * pi);
-#ifdef DYNAMIC_SYSCALLS
-static void load_syscalls (procinfo *pi);
-static void free_syscalls (procinfo *pi);
-static int find_syscall (procinfo *pi, const char *name);
-#endif /* DYNAMIC_SYSCALLS */
+static void dead_procinfo (procinfo *p, const char *msg, int killp);
+static int open_procinfo_files (procinfo *p, int which);
+static void close_procinfo_files (procinfo *p);
+static sysset_t *sysset_t_alloc (procinfo *pi);
 
 static int iterate_over_mappings
   (procinfo *pi, find_memory_region_ftype child_func, void *data,
@@ -438,7 +286,7 @@ static int iterate_over_mappings
 		void *data));
 
 /* The head of the procinfo list: */
-static procinfo * procinfo_list;
+static procinfo *procinfo_list;
 
 /* Search the procinfo list.  Return a pointer to procinfo, or NULL if
    not found.  */
@@ -522,11 +370,8 @@ open_with_retry (const char *pathname, i
   return status;
 }
 
-/* Open the file descriptor for the process or LWP.  If NEW_PROC_API
-   is defined, we only open the control file descriptor; the others
-   are opened lazily as needed.  Otherwise (if not NEW_PROC_API),
-   there is only one real file descriptor, but we keep multiple copies
-   of it so that the code that uses them does not have to be #ifdef'd.
+/* Open the file descriptor for the process or LWP.  We only open the
+   control file descriptor; the others are opened lazily as needed.
    Returns the file descriptor, or zero for failure.  */
 
 enum { FD_CTL, FD_STATUS, FD_AS };
@@ -534,15 +379,12 @@ enum { FD_CTL, FD_STATUS, FD_AS };
 static int
 open_procinfo_files (procinfo *pi, int which)
 {
-#ifdef NEW_PROC_API
   char tmp[MAX_PROC_NAME_SIZE];
-#endif
   int  fd;
 
   /* This function is getting ALMOST long enough to break up into
      several.  Here is some rationale:
 
-     NEW_PROC_API (Solaris 2.6, Solaris 2.7):
      There are several file descriptors that may need to be open
        for any given process or LWP.  The ones we're intereted in are:
 	 - control	 (ctl)	  write-only	change the state
@@ -561,30 +403,8 @@ open_procinfo_files (procinfo *pi, int w
 	   /proc/<proc-id>/lwp/<lwp-id>/lwpctl
 	   /proc/<proc-id>/lwp/<lwp-id>/lwpstatus
        An LWP has no map or address space file descriptor, since
-       the memory map and address space are shared by all LWPs.
+       the memory map and address space are shared by all LWPs.  */
 
-     Everyone else (Solaris 2.5, Irix, OSF)
-       There is only one file descriptor for each process or LWP.
-       For convenience, we copy the same file descriptor into all
-       three fields of the procinfo struct (ctl_fd, status_fd, and
-       as_fd, see NEW_PROC_API above) so that code that uses them
-       doesn't need any #ifdef's.
-	 Pathname for all:
-	   /proc/<proc-id>
-
-       Solaris 2.5 LWP's:
-	 Each LWP has an independent file descriptor, but these
-	 are not obtained via the 'open' system call like the rest:
-	 instead, they're obtained thru an ioctl call (PIOCOPENLWP)
-	 to the file descriptor of the parent process.
-
-       OSF threads:
-	 These do not even have their own independent file descriptor.
-	 All operations are carried out on the file descriptor of the
-	 parent process.  Therefore we just call open again for each
-	 thread, getting a new handle for the same 'file'.  */
-
-#ifdef NEW_PROC_API
   /* In this case, there are several different file descriptors that
      we might be asked to open.  The control file descriptor will be
      opened early, but the others will be opened lazily as they are
@@ -624,50 +444,6 @@ open_procinfo_files (procinfo *pi, int w
   default:
     return 0;		/* unknown file descriptor */
   }
-#else  /* not NEW_PROC_API */
-  /* In this case, there is only one file descriptor for each procinfo
-     (ie. each process or LWP).  In fact, only the file descriptor for
-     the process can actually be opened by an 'open' system call.  The
-     ones for the LWPs have to be obtained thru an IOCTL call on the
-     process's file descriptor.
-
-     For convenience, we copy each procinfo's single file descriptor
-     into all of the fields occupied by the several file descriptors
-     of the NEW_PROC_API implementation.  That way, the code that uses
-     them can be written without ifdefs.  */
-
-
-#ifdef PIOCTSTATUS	/* OSF */
-  /* Only one FD; just open it.  */
-  if ((fd = open_with_retry (pi->pathname, O_RDWR)) < 0)
-    return 0;
-#else			/* Sol 2.5, Irix, other?  */
-  if (pi->tid == 0)	/* Master procinfo for the process */
-    {
-      fd = open_with_retry (pi->pathname, O_RDWR);
-      if (fd < 0)
-	return 0;	/* fail */
-    }
-  else			/* LWP thread procinfo */
-    {
-#ifdef PIOCOPENLWP	/* Sol 2.5, thread/LWP */
-      procinfo *process;
-      int lwpid = pi->tid;
-
-      /* Find the procinfo for the entire process.  */
-      if ((process = find_procinfo (pi->pid, 0)) == NULL)
-	return 0;	/* fail */
-
-      /* Now obtain the file descriptor for the LWP.  */
-      if ((fd = ioctl (process->ctl_fd, PIOCOPENLWP, &lwpid)) < 0)
-	return 0;	/* fail */
-#else			/* Irix, other?  */
-      return 0;		/* Don't know how to open threads.  */
-#endif	/* Sol 2.5 PIOCOPENLWP */
-    }
-#endif	/* OSF     PIOCTSTATUS */
-  pi->ctl_fd = pi->as_fd = pi->status_fd = fd;
-#endif	/* NEW_PROC_API */
 
   return 1;		/* success */
 }
@@ -695,10 +471,6 @@ create_procinfo (int pid, int tid)
   pi->pid = pid;
   pi->tid = tid;
 
-#ifdef DYNAMIC_SYSCALLS
-  load_syscalls (pi);
-#endif
-
   pi->saved_entryset = sysset_t_alloc (pi);
   pi->saved_exitset = sysset_t_alloc (pi);
 
@@ -711,11 +483,7 @@ create_procinfo (int pid, int tid)
     }
   else
     {
-#ifdef NEW_PROC_API
       sprintf (pi->pathname, "/proc/%05d/lwp/%d", pid, tid);
-#else
-      sprintf (pi->pathname, MAIN_PROC_NAME_FMT, pid);
-#endif
       pi->next = parent->thread_list;
       parent->thread_list = pi;
     }
@@ -729,12 +497,10 @@ close_procinfo_files (procinfo *pi)
 {
   if (pi->ctl_fd > 0)
     close (pi->ctl_fd);
-#ifdef NEW_PROC_API
   if (pi->as_fd > 0)
     close (pi->as_fd);
   if (pi->status_fd > 0)
     close (pi->status_fd);
-#endif
   pi->ctl_fd = pi->as_fd = pi->status_fd = 0;
 }
 
@@ -760,9 +526,6 @@ destroy_one_procinfo (procinfo **list, p
   close_procinfo_files (pi);
 
   /* Step three: free the memory.  */
-#ifdef DYNAMIC_SYSCALLS
-  free_syscalls (pi);
-#endif
   xfree (pi->saved_entryset);
   xfree (pi->saved_exitset);
   xfree (pi);
@@ -821,180 +584,14 @@ dead_procinfo (procinfo *pi, const char 
   error ("%s", msg);
 }
 
-/* Returns the (complete) size of a sysset_t struct.  Normally, this
-   is just sizeof (sysset_t), but in the case of Monterey/64, the
-   actual size of sysset_t isn't known until runtime.  */
-
-static int
-sysset_t_size (procinfo * pi)
-{
-#ifndef DYNAMIC_SYSCALLS
-  return sizeof (sysset_t);
-#else
-  return sizeof (sysset_t) - sizeof (uint64_t)
-    + sizeof (uint64_t) * ((pi->num_syscalls + (8 * sizeof (uint64_t) - 1))
-			   / (8 * sizeof (uint64_t)));
-#endif
-}
-
 /* Allocate and (partially) initialize a sysset_t struct.  */
 
 static sysset_t *
-sysset_t_alloc (procinfo * pi)
-{
-  sysset_t *ret;
-  int size = sysset_t_size (pi);
-
-  ret = (sysset_t *) xmalloc (size);
-#ifdef DYNAMIC_SYSCALLS
-  ret->pr_size = ((pi->num_syscalls + (8 * sizeof (uint64_t) - 1))
-		  / (8 * sizeof (uint64_t)));
-#endif
-  return ret;
-}
-
-#ifdef DYNAMIC_SYSCALLS
-
-/* Extract syscall numbers and names from /proc/<pid>/sysent.  Initialize
-   pi->num_syscalls with the number of syscalls and pi->syscall_names
-   with the names.  (Certain numbers may be skipped in which case the
-   names for these numbers will be left as NULL.)  */
-
-#define MAX_SYSCALL_NAME_LENGTH 256
-#define MAX_SYSCALLS 65536
-
-static void
-load_syscalls (procinfo *pi)
-{
-  char pathname[MAX_PROC_NAME_SIZE];
-  int sysent_fd;
-  prsysent_t header;
-  prsyscall_t *syscalls;
-  int i, size, maxcall;
-  struct cleanup *cleanups;
-
-  pi->num_syscalls = 0;
-  pi->syscall_names = 0;
-
-  /* Open the file descriptor for the sysent file.  */
-  sprintf (pathname, "/proc/%d/sysent", pi->pid);
-  sysent_fd = open_with_retry (pathname, O_RDONLY);
-  if (sysent_fd < 0)
-    {
-      error (_("load_syscalls: Can't open /proc/%d/sysent"), pi->pid);
-    }
-  cleanups = make_cleanup_close (sysent_fd);
-
-  size = sizeof header - sizeof (prsyscall_t);
-  if (read (sysent_fd, &header, size) != size)
-    {
-      error (_("load_syscalls: Error reading /proc/%d/sysent"), pi->pid);
-    }
-
-  if (header.pr_nsyscalls == 0)
-    {
-      error (_("load_syscalls: /proc/%d/sysent contains no syscalls!"),
-	     pi->pid);
-    }
-
-  size = header.pr_nsyscalls * sizeof (prsyscall_t);
-  syscalls = xmalloc (size);
-  make_cleanup (free_current_contents, &syscalls);
-
-  if (read (sysent_fd, syscalls, size) != size)
-    error (_("load_syscalls: Error reading /proc/%d/sysent"), pi->pid);
-
-  /* Find maximum syscall number.  This may not be the same as
-     pr_nsyscalls since that value refers to the number of entries
-     in the table.  (Also, the docs indicate that some system
-     call numbers may be skipped.)  */
-
-  maxcall = syscalls[0].pr_number;
-
-  for (i = 1; i <  header.pr_nsyscalls; i++)
-    if (syscalls[i].pr_number > maxcall
-	&& syscalls[i].pr_nameoff > 0
-	&& syscalls[i].pr_number < MAX_SYSCALLS)
-      maxcall = syscalls[i].pr_number;
-
-  pi->num_syscalls = maxcall+1;
-  pi->syscall_names = XNEWVEC (char *, pi->num_syscalls);
-
-  for (i = 0; i < pi->num_syscalls; i++)
-    pi->syscall_names[i] = NULL;
-
-  /* Read the syscall names in.  */
-  for (i = 0; i < header.pr_nsyscalls; i++)
-    {
-      char namebuf[MAX_SYSCALL_NAME_LENGTH];
-      int nread;
-      int callnum;
-
-      if (syscalls[i].pr_number >= MAX_SYSCALLS
-	  || syscalls[i].pr_number < 0
-	  || syscalls[i].pr_nameoff <= 0
-	  || (lseek (sysent_fd, (off_t) syscalls[i].pr_nameoff, SEEK_SET)
-				       != (off_t) syscalls[i].pr_nameoff))
-	continue;
-
-      nread = read (sysent_fd, namebuf, sizeof namebuf);
-      if (nread <= 0)
-	continue;
-
-      callnum = syscalls[i].pr_number;
-
-      if (pi->syscall_names[callnum] != NULL)
-	{
-	  /* FIXME: Generate warning.  */
-	  continue;
-	}
-
-      namebuf[nread-1] = '\0';
-      size = strlen (namebuf) + 1;
-      pi->syscall_names[callnum] = xmalloc (size);
-      strncpy (pi->syscall_names[callnum], namebuf, size-1);
-      pi->syscall_names[callnum][size-1] = '\0';
-    }
-
-  do_cleanups (cleanups);
-}
-
-/* Free the space allocated for the syscall names from the procinfo
-   structure.  */
-
-static void
-free_syscalls (procinfo *pi)
+sysset_t_alloc (procinfo *pi)
 {
-  if (pi->syscall_names)
-    {
-      int i;
-
-      for (i = 0; i < pi->num_syscalls; i++)
-	if (pi->syscall_names[i] != NULL)
-	  xfree (pi->syscall_names[i]);
-
-      xfree (pi->syscall_names);
-      pi->syscall_names = 0;
-    }
+  return (sysset_t *) xmalloc (sizeof (sysset_t));
 }
 
-/* Given a name, look up (and return) the corresponding syscall number.
-   If no match is found, return -1.  */
-
-static int
-find_syscall (procinfo *pi, const char *name)
-{
-  int i;
-
-  for (i = 0; i < pi->num_syscalls; i++)
-    {
-      if (pi->syscall_names[i] && strcmp (name, pi->syscall_names[i]) == 0)
-	return i;
-    }
-  return -1;
-}
-#endif
-
 /* =================== END, STRUCT PROCINFO "MODULE" =================== */
 
 /* ===================  /proc  "MODULE" =================== */
@@ -1009,13 +606,13 @@ find_syscall (procinfo *pi, const char *
    than have a bunch of #ifdefs all thru the gdb target vector
    functions, we do our best to hide them all in here.  */
 
-static long proc_flags (procinfo * pi);
-static int proc_why (procinfo * pi);
-static int proc_what (procinfo * pi);
-static int proc_set_current_signal (procinfo * pi, int signo);
-static int proc_get_current_thread (procinfo * pi);
+static long proc_flags (procinfo *pi);
+static int proc_why (procinfo *pi);
+static int proc_what (procinfo *pi);
+static int proc_set_current_signal (procinfo *pi, int signo);
+static int proc_get_current_thread (procinfo *pi);
 static int proc_iterate_over_threads
-  (procinfo * pi,
+  (procinfo *pi,
    int (*func) (procinfo *, procinfo *, void *),
    void *ptr);
 
@@ -1050,7 +647,6 @@ proc_get_status (procinfo *pi)
       return 0;
     }
 
-#ifdef NEW_PROC_API
   if (lseek (pi->status_fd, 0, SEEK_SET) < 0)
     pi->status_valid = 0;			/* fail */
   else
@@ -1066,42 +662,10 @@ proc_get_status (procinfo *pi)
 	{
 	  pi->status_valid = (read (pi->status_fd,
 				    (char *) &pi->prstatus,
-				    sizeof (gdb_prstatus_t))
-			      == sizeof (gdb_prstatus_t));
-	}
-    }
-#else	/* ioctl method */
-#ifdef PIOCTSTATUS	/* osf */
-  if (pi->tid == 0)	/* main process */
-    {
-      /* Just read the danged status.  Now isn't that simple?  */
-      pi->status_valid =
-	(ioctl (pi->status_fd, PIOCSTATUS, &pi->prstatus) >= 0);
-    }
-  else
-    {
-      int win;
-      struct {
-	long pr_count;
-	tid_t pr_error_thread;
-	struct prstatus status;
-      } thread_status;
-
-      thread_status.pr_count = 1;
-      thread_status.status.pr_tid = pi->tid;
-      win = (ioctl (pi->status_fd, PIOCTSTATUS, &thread_status) >= 0);
-      if (win)
-	{
-	  memcpy (&pi->prstatus, &thread_status.status,
-		  sizeof (pi->prstatus));
-	  pi->status_valid = 1;
+				    sizeof (pstatus_t))
+			      == sizeof (pstatus_t));
 	}
     }
-#else
-  /* Just read the danged status.  Now isn't that simple?  */
-  pi->status_valid = (ioctl (pi->status_fd, PIOCSTATUS, &pi->prstatus) >= 0);
-#endif
-#endif
 
   if (pi->status_valid)
     {
@@ -1113,11 +677,9 @@ proc_get_status (procinfo *pi)
 
   /* The status struct includes general regs, so mark them valid too.  */
   pi->gregs_valid  = pi->status_valid;
-#ifdef NEW_PROC_API
   /* In the read/write multiple-fd model, the status struct includes
      the fp regs too, so mark them valid too.  */
   pi->fpregs_valid = pi->status_valid;
-#endif
   return pi->status_valid;	/* True if success, false if failure.  */
 }
 
@@ -1130,11 +692,7 @@ proc_flags (procinfo *pi)
     if (!proc_get_status (pi))
       return 0;	/* FIXME: not a good failure value (but what is?)  */
 
-#ifdef NEW_PROC_API
   return pi->prstatus.pr_lwp.pr_flags;
-#else
-  return pi->prstatus.pr_flags;
-#endif
 }
 
 /* Returns the pr_why field (why the process stopped).  */
@@ -1146,11 +704,7 @@ proc_why (procinfo *pi)
     if (!proc_get_status (pi))
       return 0;	/* FIXME: not a good failure value (but what is?)  */
 
-#ifdef NEW_PROC_API
   return pi->prstatus.pr_lwp.pr_why;
-#else
-  return pi->prstatus.pr_why;
-#endif
 }
 
 /* Returns the pr_what field (details of why the process stopped).  */
@@ -1162,11 +716,7 @@ proc_what (procinfo *pi)
     if (!proc_get_status (pi))
       return 0;	/* FIXME: not a good failure value (but what is?)  */
 
-#ifdef NEW_PROC_API
   return pi->prstatus.pr_lwp.pr_what;
-#else
-  return pi->prstatus.pr_what;
-#endif
 }
 
 /* This function is only called when PI is stopped by a watchpoint.
@@ -1181,20 +731,12 @@ proc_watchpoint_address (procinfo *pi, C
     if (!proc_get_status (pi))
       return 0;
 
-#ifdef NEW_PROC_API
   *addr = (CORE_ADDR) gdbarch_pointer_to_address (target_gdbarch (),
 	    builtin_type (target_gdbarch ())->builtin_data_ptr,
 	    (gdb_byte *) &pi->prstatus.pr_lwp.pr_info.si_addr);
-#else
-  *addr = (CORE_ADDR) gdbarch_pointer_to_address (target_gdbarch (),
-	    builtin_type (target_gdbarch ())->builtin_data_ptr,
-	    (gdb_byte *) &pi->prstatus.pr_info.si_addr);
-#endif
   return 1;
 }
 
-#ifndef PIOCSSPCACT	/* The following is not supported on OSF.  */
-
 /* Returns the pr_nsysarg field (number of args to the current
    syscall).  */
 
@@ -1205,11 +747,7 @@ proc_nsysarg (procinfo *pi)
     if (!proc_get_status (pi))
       return 0;
 
-#ifdef NEW_PROC_API
   return pi->prstatus.pr_lwp.pr_nsysarg;
-#else
-  return pi->prstatus.pr_nsysarg;
-#endif
 }
 
 /* Returns the pr_sysarg field (pointer to the arguments of current
@@ -1222,53 +760,16 @@ proc_sysargs (procinfo *pi)
     if (!proc_get_status (pi))
       return NULL;
 
-#ifdef NEW_PROC_API
   return (long *) &pi->prstatus.pr_lwp.pr_sysarg;
-#else
-  return (long *) &pi->prstatus.pr_sysarg;
-#endif
 }
-#endif /* PIOCSSPCACT */
 
-#ifdef PROCFS_DONT_PIOCSSIG_CURSIG
-/* Returns the pr_cursig field (current signal).  */
-
-static long
-proc_cursig (struct procinfo *pi)
-{
-  if (!pi->status_valid)
-    if (!proc_get_status (pi))
-      return 0;	/* FIXME: not a good failure value (but what is?)  */
-
-#ifdef NEW_PROC_API
-  return pi->prstatus.pr_lwp.pr_cursig;
-#else
-  return pi->prstatus.pr_cursig;
-#endif
-}
-#endif /* PROCFS_DONT_PIOCSSIG_CURSIG */
-
-/* === I appologize for the messiness of this function.
-   === This is an area where the different versions of
-   === /proc are more inconsistent than usual.
-
-   Set or reset any of the following process flags:
+/* Set or reset any of the following process flags:
       PR_FORK	-- forked child will inherit trace flags
       PR_RLC	-- traced process runs when last /proc file closed.
       PR_KLC    -- traced process is killed when last /proc file closed.
       PR_ASYNC	-- LWP's get to run/stop independently.
 
-   There are three methods for doing this function:
-   1) Newest: read/write [PCSET/PCRESET/PCUNSET]
-      [Sol6, Sol7, UW]
-   2) Middle: PIOCSET/PIOCRESET
-      [Irix, Sol5]
-   3) Oldest: PIOCSFORK/PIOCRFORK/PIOCSRLC/PIOCRRLC
-      [OSF, Sol5]
-
-   Note: Irix does not define PR_ASYNC.
-   Note: OSF  does not define PR_KLC.
-   Note: OSF  is the only one that can ONLY use the oldest method.
+   This function is done using read/write [PCSET/PCRESET/PCUNSET].
 
    Arguments:
       pi   -- the procinfo
@@ -1293,70 +794,16 @@ proc_modify_flag (procinfo *pi, long fla
   if (pi->pid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef NEW_PROC_API	/* Newest method: Newer Solarii.  */
-  /* First normalize the PCUNSET/PCRESET command opcode
-     (which for no obvious reason has a different definition
-     from one operating system to the next...)  */
-#ifdef  PCUNSET
-#define GDBRESET PCUNSET
-#else
-#ifdef  PCRESET
-#define GDBRESET PCRESET
-#endif
-#endif
-  {
-    procfs_ctl_t arg[2];
-
-    if (mode == FLAG_SET)	/* Set the flag (RLC, FORK, or ASYNC).  */
-      arg[0] = PCSET;
-    else			/* Reset the flag.  */
-      arg[0] = GDBRESET;
+  procfs_ctl_t arg[2];
 
-    arg[1] = flag;
-    win = (write (pi->ctl_fd, (void *) &arg, sizeof (arg)) == sizeof (arg));
-  }
-#else
-#ifdef PIOCSET		/* Irix/Sol5 method */
-  if (mode == FLAG_SET)	/* Set the flag (hopefully RLC, FORK, or ASYNC).  */
-    {
-      win = (ioctl (pi->ctl_fd, PIOCSET, &flag)   >= 0);
-    }
+  if (mode == FLAG_SET)	/* Set the flag (RLC, FORK, or ASYNC).  */
+    arg[0] = PCSET;
   else			/* Reset the flag.  */
-    {
-      win = (ioctl (pi->ctl_fd, PIOCRESET, &flag) >= 0);
-    }
+    arg[0] = PCUNSET;
+
+  arg[1] = flag;
+  win = (write (pi->ctl_fd, (void *) &arg, sizeof (arg)) == sizeof (arg));
 
-#else
-#ifdef PIOCSRLC		/* Oldest method: OSF */
-  switch (flag) {
-  case PR_RLC:
-    if (mode == FLAG_SET)	/* Set run-on-last-close */
-      {
-	win = (ioctl (pi->ctl_fd, PIOCSRLC, NULL) >= 0);
-      }
-    else			/* Clear run-on-last-close */
-      {
-	win = (ioctl (pi->ctl_fd, PIOCRRLC, NULL) >= 0);
-      }
-    break;
-  case PR_FORK:
-    if (mode == FLAG_SET)	/* Set inherit-on-fork */
-      {
-	win = (ioctl (pi->ctl_fd, PIOCSFORK, NULL) >= 0);
-      }
-    else			/* Clear inherit-on-fork */
-      {
-	win = (ioctl (pi->ctl_fd, PIOCRFORK, NULL) >= 0);
-      }
-    break;
-  default:
-    win = 0;		/* Fail -- unknown flag (can't do PR_ASYNC).  */
-    break;
-  }
-#endif
-#endif
-#endif
-#undef GDBRESET
   /* The above operation renders the procinfo's cached pstatus
      obsolete.  */
   pi->status_valid = 0;
@@ -1365,12 +812,8 @@ proc_modify_flag (procinfo *pi, long fla
     warning (_("procfs: modify_flag failed to turn %s %s"),
 	     flag == PR_FORK  ? "PR_FORK"  :
 	     flag == PR_RLC   ? "PR_RLC"   :
-#ifdef PR_ASYNC
 	     flag == PR_ASYNC ? "PR_ASYNC" :
-#endif
-#ifdef PR_KLC
 	     flag == PR_KLC   ? "PR_KLC"   :
-#endif
 	     "<unknown flag>",
 	     mode == FLAG_RESET ? "off" : "on");
 
@@ -1408,7 +851,6 @@ proc_unset_inherit_on_fork (procinfo *pi
   return proc_modify_flag (pi, PR_FORK, FLAG_RESET);
 }
 
-#ifdef PR_ASYNC
 /* Set PR_ASYNC flag.  If one LWP stops because of a debug event
    (signal etc.), the remaining LWPs will continue to run.  Returns
    non-zero for success, zero for failure.  */
@@ -1428,7 +870,6 @@ proc_unset_async (procinfo *pi)
 {
   return proc_modify_flag (pi, PR_ASYNC, FLAG_RESET);
 }
-#endif /* PR_ASYNC */
 
 /* Request the process/LWP to stop.  Does not wait.  Returns non-zero
    for success, zero for failure.  */
@@ -1446,22 +887,9 @@ proc_stop_process (procinfo *pi)
     return 0;
   else
     {
-#ifdef NEW_PROC_API
       procfs_ctl_t cmd = PCSTOP;
 
       win = (write (pi->ctl_fd, (char *) &cmd, sizeof (cmd)) == sizeof (cmd));
-#else	/* ioctl method */
-      win = (ioctl (pi->ctl_fd, PIOCSTOP, &pi->prstatus) >= 0);
-      /* Note: the call also reads the prstatus.  */
-      if (win)
-	{
-	  pi->status_valid = 1;
-	  PROC_PRETTYFPRINT_STATUS (proc_flags (pi),
-				    proc_why (pi),
-				    proc_what (pi),
-				    proc_get_current_thread (pi));
-	}
-#endif
     }
 
   return win;
@@ -1483,26 +911,11 @@ proc_wait_for_stop (procinfo *pi)
   if (pi->tid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef NEW_PROC_API
-  {
-    procfs_ctl_t cmd = PCWSTOP;
-
-    win = (write (pi->ctl_fd, (char *) &cmd, sizeof (cmd)) == sizeof (cmd));
-    /* We been runnin' and we stopped -- need to update status.  */
-    pi->status_valid = 0;
-  }
-#else	/* ioctl method */
-  win = (ioctl (pi->ctl_fd, PIOCWSTOP, &pi->prstatus) >= 0);
-  /* Above call also refreshes the prstatus.  */
-  if (win)
-    {
-      pi->status_valid = 1;
-      PROC_PRETTYFPRINT_STATUS (proc_flags (pi),
-				proc_why (pi),
-				proc_what (pi),
-				proc_get_current_thread (pi));
-    }
-#endif
+  procfs_ctl_t cmd = PCWSTOP;
+
+  win = (write (pi->ctl_fd, (char *) &cmd, sizeof (cmd)) == sizeof (cmd));
+  /* We been runnin' and we stopped -- need to update status.  */
+  pi->status_valid = 0;
 
   return win;
 }
@@ -1549,23 +962,11 @@ proc_run_process (procinfo *pi, int step
   else if (signo != -1)		/* -1 means do nothing W.R.T. signals.  */
     proc_set_current_signal (pi, signo);
 
-#ifdef NEW_PROC_API
-  {
-    procfs_ctl_t cmd[2];
-
-    cmd[0]  = PCRUN;
-    cmd[1]  = runflags;
-    win = (write (pi->ctl_fd, (char *) &cmd, sizeof (cmd)) == sizeof (cmd));
-  }
-#else	/* ioctl method */
-  {
-    prrun_t prrun;
-
-    memset (&prrun, 0, sizeof (prrun));
-    prrun.pr_flags  = runflags;
-    win = (ioctl (pi->ctl_fd, PIOCRUN, &prrun) >= 0);
-  }
-#endif
+  procfs_ctl_t cmd[2];
+
+  cmd[0]  = PCRUN;
+  cmd[1]  = runflags;
+  win = (write (pi->ctl_fd, (char *) &cmd, sizeof (cmd)) == sizeof (cmd));
 
   return win;
 }
@@ -1574,7 +975,7 @@ proc_run_process (procinfo *pi, int step
    for success, zero for failure.  */
 
 static int
-proc_set_traced_signals (procinfo *pi, gdb_sigset_t *sigset)
+proc_set_traced_signals (procinfo *pi, sigset_t *sigset)
 {
   int win;
 
@@ -1586,22 +987,17 @@ proc_set_traced_signals (procinfo *pi, g
   if (pi->tid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef NEW_PROC_API
-  {
-    struct {
-      procfs_ctl_t cmd;
-      /* Use char array to avoid alignment issues.  */
-      char sigset[sizeof (gdb_sigset_t)];
-    } arg;
+  struct {
+    procfs_ctl_t cmd;
+    /* Use char array to avoid alignment issues.  */
+    char sigset[sizeof (sigset_t)];
+  } arg;
 
-    arg.cmd = PCSTRACE;
-    memcpy (&arg.sigset, sigset, sizeof (gdb_sigset_t));
+  arg.cmd = PCSTRACE;
+  memcpy (&arg.sigset, sigset, sizeof (sigset_t));
+
+  win = (write (pi->ctl_fd, (char *) &arg, sizeof (arg)) == sizeof (arg));
 
-    win = (write (pi->ctl_fd, (char *) &arg, sizeof (arg)) == sizeof (arg));
-  }
-#else	/* ioctl method */
-  win = (ioctl (pi->ctl_fd, PIOCSTRACE, sigset) >= 0);
-#endif
   /* The above operation renders the procinfo's cached pstatus obsolete.  */
   pi->status_valid = 0;
 
@@ -1626,22 +1022,17 @@ proc_set_traced_faults (procinfo *pi, fl
   if (pi->tid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef NEW_PROC_API
-  {
-    struct {
-      procfs_ctl_t cmd;
-      /* Use char array to avoid alignment issues.  */
-      char fltset[sizeof (fltset_t)];
-    } arg;
+  struct {
+    procfs_ctl_t cmd;
+    /* Use char array to avoid alignment issues.  */
+    char fltset[sizeof (fltset_t)];
+  } arg;
+
+  arg.cmd = PCSFAULT;
+  memcpy (&arg.fltset, fltset, sizeof (fltset_t));
 
-    arg.cmd = PCSFAULT;
-    memcpy (&arg.fltset, fltset, sizeof (fltset_t));
+  win = (write (pi->ctl_fd, (char *) &arg, sizeof (arg)) == sizeof (arg));
 
-    win = (write (pi->ctl_fd, (char *) &arg, sizeof (arg)) == sizeof (arg));
-  }
-#else	/* ioctl method */
-  win = (ioctl (pi->ctl_fd, PIOCSFAULT, fltset) >= 0);
-#endif
   /* The above operation renders the procinfo's cached pstatus obsolete.  */
   pi->status_valid = 0;
 
@@ -1664,28 +1055,21 @@ proc_set_traced_sysentry (procinfo *pi, 
   if (pi->tid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef NEW_PROC_API
-  {
-    struct gdb_proc_ctl_pcsentry {
-      procfs_ctl_t cmd;
-      /* Use char array to avoid alignment issues.  */
-      char sysset[sizeof (sysset_t)];
-    } *argp;
-    int argp_size = sizeof (struct gdb_proc_ctl_pcsentry)
-		  - sizeof (sysset_t)
-		  + sysset_t_size (pi);
+  struct gdb_proc_ctl_pcsentry {
+    procfs_ctl_t cmd;
+    /* Use char array to avoid alignment issues.  */
+    char sysset[sizeof (sysset_t)];
+  } *argp;
+  int argp_size = sizeof (struct gdb_proc_ctl_pcsentry);
 
-    argp = (struct gdb_proc_ctl_pcsentry *) xmalloc (argp_size);
+  argp = (struct gdb_proc_ctl_pcsentry *) xmalloc (argp_size);
 
-    argp->cmd = PCSENTRY;
-    memcpy (&argp->sysset, sysset, sysset_t_size (pi));
+  argp->cmd = PCSENTRY;
+  memcpy (&argp->sysset, sysset, sizeof (sysset_t));
+
+  win = (write (pi->ctl_fd, (char *) argp, argp_size) == argp_size);
+  xfree (argp);
 
-    win = (write (pi->ctl_fd, (char *) argp, argp_size) == argp_size);
-    xfree (argp);
-  }
-#else	/* ioctl method */
-  win = (ioctl (pi->ctl_fd, PIOCSENTRY, sysset) >= 0);
-#endif
   /* The above operation renders the procinfo's cached pstatus
      obsolete.  */
   pi->status_valid = 0;
@@ -1709,28 +1093,21 @@ proc_set_traced_sysexit (procinfo *pi, s
   if (pi->tid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef NEW_PROC_API
-  {
-    struct gdb_proc_ctl_pcsexit {
-      procfs_ctl_t cmd;
-      /* Use char array to avoid alignment issues.  */
-      char sysset[sizeof (sysset_t)];
-    } *argp;
-    int argp_size = sizeof (struct gdb_proc_ctl_pcsexit)
-		  - sizeof (sysset_t)
-		  + sysset_t_size (pi);
+  struct gdb_proc_ctl_pcsexit {
+    procfs_ctl_t cmd;
+    /* Use char array to avoid alignment issues.  */
+    char sysset[sizeof (sysset_t)];
+  } *argp;
+  int argp_size = sizeof (struct gdb_proc_ctl_pcsexit);
 
-    argp = (struct gdb_proc_ctl_pcsexit *) xmalloc (argp_size);
+  argp = (struct gdb_proc_ctl_pcsexit *) xmalloc (argp_size);
 
-    argp->cmd = PCSEXIT;
-    memcpy (&argp->sysset, sysset, sysset_t_size (pi));
+  argp->cmd = PCSEXIT;
+  memcpy (&argp->sysset, sysset, sizeof (sysset_t));
+
+  win = (write (pi->ctl_fd, (char *) argp, argp_size) == argp_size);
+  xfree (argp);
 
-    win = (write (pi->ctl_fd, (char *) argp, argp_size) == argp_size);
-    xfree (argp);
-  }
-#else	/* ioctl method */
-  win = (ioctl (pi->ctl_fd, PIOCSEXIT, sysset) >= 0);
-#endif
   /* The above operation renders the procinfo's cached pstatus
      obsolete.  */
   pi->status_valid = 0;
@@ -1742,7 +1119,7 @@ proc_set_traced_sysexit (procinfo *pi, s
    Returns non-zero for success, zero for failure.  */
 
 static int
-proc_set_held_signals (procinfo *pi, gdb_sigset_t *sighold)
+proc_set_held_signals (procinfo *pi, sigset_t *sighold)
 {
   int win;
 
@@ -1754,21 +1131,16 @@ proc_set_held_signals (procinfo *pi, gdb
   if (pi->tid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef NEW_PROC_API
-  {
-    struct {
-      procfs_ctl_t cmd;
-      /* Use char array to avoid alignment issues.  */
-      char hold[sizeof (gdb_sigset_t)];
-    } arg;
-
-    arg.cmd  = PCSHOLD;
-    memcpy (&arg.hold, sighold, sizeof (gdb_sigset_t));
-    win = (write (pi->ctl_fd, (void *) &arg, sizeof (arg)) == sizeof (arg));
-  }
-#else
-  win = (ioctl (pi->ctl_fd, PIOCSHOLD, sighold) >= 0);
-#endif
+  struct {
+    procfs_ctl_t cmd;
+    /* Use char array to avoid alignment issues.  */
+    char hold[sizeof (sigset_t)];
+  } arg;
+
+  arg.cmd  = PCSHOLD;
+  memcpy (&arg.hold, sighold, sizeof (sigset_t));
+  win = (write (pi->ctl_fd, (void *) &arg, sizeof (arg)) == sizeof (arg));
+
   /* The above operation renders the procinfo's cached pstatus
      obsolete.  */
   pi->status_valid = 0;
@@ -1779,10 +1151,10 @@ proc_set_held_signals (procinfo *pi, gdb
 /* Returns the set of signals that are held / blocked.  Will also copy
    the sigset if SAVE is non-zero.  */
 
-static gdb_sigset_t *
-proc_get_held_signals (procinfo *pi, gdb_sigset_t *save)
+static sigset_t *
+proc_get_held_signals (procinfo *pi, sigset_t *save)
 {
-  gdb_sigset_t *ret = NULL;
+  sigset_t *ret = NULL;
 
   /* We should never have to apply this operation to any procinfo
      except the one for the main process.  If that ever changes for
@@ -1792,22 +1164,13 @@ proc_get_held_signals (procinfo *pi, gdb
   if (pi->tid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef NEW_PROC_API
   if (!pi->status_valid)
     if (!proc_get_status (pi))
       return NULL;
 
   ret = &pi->prstatus.pr_lwp.pr_lwphold;
-#else  /* not NEW_PROC_API */
-  {
-    static gdb_sigset_t sigheld;
-
-    if (ioctl (pi->ctl_fd, PIOCGHOLD, &sigheld) >= 0)
-      ret = &sigheld;
-  }
-#endif /* NEW_PROC_API */
   if (save && ret)
-    memcpy (save, ret, sizeof (gdb_sigset_t));
+    memcpy (save, ret, sizeof (sigset_t));
 
   return ret;
 }
@@ -1815,10 +1178,10 @@ proc_get_held_signals (procinfo *pi, gdb
 /* Returns the set of signals that are traced / debugged.  Will also
    copy the sigset if SAVE is non-zero.  */
 
-static gdb_sigset_t *
-proc_get_traced_signals (procinfo *pi, gdb_sigset_t *save)
+static sigset_t *
+proc_get_traced_signals (procinfo *pi, sigset_t *save)
 {
-  gdb_sigset_t *ret = NULL;
+  sigset_t *ret = NULL;
 
   /* We should never have to apply this operation to any procinfo
      except the one for the main process.  If that ever changes for
@@ -1828,22 +1191,13 @@ proc_get_traced_signals (procinfo *pi, g
   if (pi->tid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef NEW_PROC_API
   if (!pi->status_valid)
     if (!proc_get_status (pi))
       return NULL;
 
   ret = &pi->prstatus.pr_sigtrace;
-#else
-  {
-    static gdb_sigset_t sigtrace;
-
-    if (ioctl (pi->ctl_fd, PIOCGTRACE, &sigtrace) >= 0)
-      ret = &sigtrace;
-  }
-#endif
   if (save && ret)
-    memcpy (save, ret, sizeof (gdb_sigset_t));
+    memcpy (save, ret, sizeof (sigset_t));
 
   return ret;
 }
@@ -1864,20 +1218,11 @@ proc_get_traced_faults (procinfo *pi, fl
   if (pi->tid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef NEW_PROC_API
   if (!pi->status_valid)
     if (!proc_get_status (pi))
       return NULL;
 
   ret = &pi->prstatus.pr_flttrace;
-#else
-  {
-    static fltset_t flttrace;
-
-    if (ioctl (pi->ctl_fd, PIOCGFAULT, &flttrace) >= 0)
-      ret = &flttrace;
-  }
-#endif
   if (save && ret)
     memcpy (save, ret, sizeof (fltset_t));
 
@@ -1900,53 +1245,13 @@ proc_get_traced_sysentry (procinfo *pi, 
   if (pi->tid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef NEW_PROC_API
   if (!pi->status_valid)
     if (!proc_get_status (pi))
       return NULL;
 
-#ifndef DYNAMIC_SYSCALLS
   ret = &pi->prstatus.pr_sysentry;
-#else /* DYNAMIC_SYSCALLS */
-  {
-    static sysset_t *sysentry;
-    size_t size;
-
-    if (!sysentry)
-      sysentry = sysset_t_alloc (pi);
-    ret = sysentry;
-    if (pi->status_fd == 0 && open_procinfo_files (pi, FD_STATUS) == 0)
-      return NULL;
-    if (pi->prstatus.pr_sysentry_offset == 0)
-      {
-	gdb_premptysysset (sysentry);
-      }
-    else
-      {
-	int rsize;
-
-	if (lseek (pi->status_fd, (off_t) pi->prstatus.pr_sysentry_offset,
-		   SEEK_SET)
-	    != (off_t) pi->prstatus.pr_sysentry_offset)
-	  return NULL;
-	size = sysset_t_size (pi);
-	gdb_premptysysset (sysentry);
-	rsize = read (pi->status_fd, sysentry, size);
-	if (rsize < 0)
-	  return NULL;
-      }
-  }
-#endif /* DYNAMIC_SYSCALLS */
-#else /* !NEW_PROC_API */
-  {
-    static sysset_t sysentry;
-
-    if (ioctl (pi->ctl_fd, PIOCGENTRY, &sysentry) >= 0)
-      ret = &sysentry;
-  }
-#endif /* NEW_PROC_API */
   if (save && ret)
-    memcpy (save, ret, sysset_t_size (pi));
+    memcpy (save, ret, sizeof (sysset_t));
 
   return ret;
 }
@@ -1957,7 +1262,7 @@ proc_get_traced_sysentry (procinfo *pi, 
 static sysset_t *
 proc_get_traced_sysexit (procinfo *pi, sysset_t *save)
 {
-  sysset_t * ret = NULL;
+  sysset_t *ret = NULL;
 
   /* We should never have to apply this operation to any procinfo
      except the one for the main process.  If that ever changes for
@@ -1967,53 +1272,13 @@ proc_get_traced_sysexit (procinfo *pi, s
   if (pi->tid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef NEW_PROC_API
   if (!pi->status_valid)
     if (!proc_get_status (pi))
       return NULL;
 
-#ifndef DYNAMIC_SYSCALLS
   ret = &pi->prstatus.pr_sysexit;
-#else /* DYNAMIC_SYSCALLS */
-  {
-    static sysset_t *sysexit;
-    size_t size;
-
-    if (!sysexit)
-      sysexit = sysset_t_alloc (pi);
-    ret = sysexit;
-    if (pi->status_fd == 0 && open_procinfo_files (pi, FD_STATUS) == 0)
-      return NULL;
-    if (pi->prstatus.pr_sysexit_offset == 0)
-      {
-	gdb_premptysysset (sysexit);
-      }
-    else
-      {
-	int rsize;
-
-	if (lseek (pi->status_fd, (off_t) pi->prstatus.pr_sysexit_offset,
-		   SEEK_SET)
-	    != (off_t) pi->prstatus.pr_sysexit_offset)
-	  return NULL;
-	size = sysset_t_size (pi);
-	gdb_premptysysset (sysexit);
-	rsize = read (pi->status_fd, sysexit, size);
-	if (rsize < 0)
-	  return NULL;
-      }
-  }
-#endif /* DYNAMIC_SYSCALLS */
-#else
-  {
-    static sysset_t sysexit;
-
-    if (ioctl (pi->ctl_fd, PIOCGEXIT, &sysexit) >= 0)
-      ret = &sysexit;
-  }
-#endif
   if (save && ret)
-    memcpy (save, ret, sysset_t_size (pi));
+    memcpy (save, ret, sizeof (sysset_t));
 
   return ret;
 }
@@ -2035,15 +1300,9 @@ proc_clear_current_fault (procinfo *pi)
   if (pi->tid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef NEW_PROC_API
-  {
-    procfs_ctl_t cmd = PCCFAULT;
+  procfs_ctl_t cmd = PCCFAULT;
 
-    win = (write (pi->ctl_fd, (void *) &cmd, sizeof (cmd)) == sizeof (cmd));
-  }
-#else
-  win = (ioctl (pi->ctl_fd, PIOCCFAULT, 0) >= 0);
-#endif
+  win = (write (pi->ctl_fd, (void *) &cmd, sizeof (cmd)) == sizeof (cmd));
 
   return win;
 }
@@ -2063,9 +1322,9 @@ proc_set_current_signal (procinfo *pi, i
   struct {
     procfs_ctl_t cmd;
     /* Use char array to avoid alignment issues.  */
-    char sinfo[sizeof (gdb_siginfo_t)];
+    char sinfo[sizeof (siginfo_t)];
   } arg;
-  gdb_siginfo_t mysinfo;
+  siginfo_t mysinfo;
   ptid_t wait_ptid;
   struct target_waitstatus wait_status;
 
@@ -2077,50 +1336,28 @@ proc_set_current_signal (procinfo *pi, i
   if (pi->tid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef PROCFS_DONT_PIOCSSIG_CURSIG
-  /* With Alpha OSF/1 procfs, the kernel gets really confused if it
-     receives a PIOCSSIG with a signal identical to the current
-     signal, it messes up the current signal.  Work around the kernel
-     bug.  */
-  if (signo > 0 &&
-      signo == proc_cursig (pi))
-    return 1;           /* I assume this is a success?  */
-#endif
-
   /* The pointer is just a type alias.  */
   get_last_target_status (&wait_ptid, &wait_status);
   if (ptid_equal (wait_ptid, inferior_ptid)
       && wait_status.kind == TARGET_WAITKIND_STOPPED
       && wait_status.value.sig == gdb_signal_from_host (signo)
       && proc_get_status (pi)
-#ifdef NEW_PROC_API
       && pi->prstatus.pr_lwp.pr_info.si_signo == signo
-#else
-      && pi->prstatus.pr_info.si_signo == signo
-#endif
       )
     /* Use the siginfo associated with the signal being
        redelivered.  */
-#ifdef NEW_PROC_API
-    memcpy (arg.sinfo, &pi->prstatus.pr_lwp.pr_info, sizeof (gdb_siginfo_t));
-#else
-    memcpy (arg.sinfo, &pi->prstatus.pr_info, sizeof (gdb_siginfo_t));
-#endif
+    memcpy (arg.sinfo, &pi->prstatus.pr_lwp.pr_info, sizeof (siginfo_t));
   else
     {
       mysinfo.si_signo = signo;
       mysinfo.si_code  = 0;
       mysinfo.si_pid   = getpid ();       /* ?why? */
       mysinfo.si_uid   = getuid ();       /* ?why? */
-      memcpy (arg.sinfo, &mysinfo, sizeof (gdb_siginfo_t));
+      memcpy (arg.sinfo, &mysinfo, sizeof (siginfo_t));
     }
 
-#ifdef NEW_PROC_API
   arg.cmd = PCSSIG;
   win = (write (pi->ctl_fd, (void *) &arg, sizeof (arg))  == sizeof (arg));
-#else
-  win = (ioctl (pi->ctl_fd, PIOCSSIG, (void *) &arg.sinfo) >= 0);
-#endif
 
   return win;
 }
@@ -2142,29 +1379,23 @@ proc_clear_current_signal (procinfo *pi)
   if (pi->tid != 0)
     pi = find_procinfo_or_die (pi->pid, 0);
 
-#ifdef NEW_PROC_API
-  {
-    struct {
-      procfs_ctl_t cmd;
-      /* Use char array to avoid alignment issues.  */
-      char sinfo[sizeof (gdb_siginfo_t)];
-    } arg;
-    gdb_siginfo_t mysinfo;
-
-    arg.cmd = PCSSIG;
-    /* The pointer is just a type alias.  */
-    mysinfo.si_signo = 0;
-    mysinfo.si_code  = 0;
-    mysinfo.si_errno = 0;
-    mysinfo.si_pid   = getpid ();       /* ?why? */
-    mysinfo.si_uid   = getuid ();       /* ?why? */
-    memcpy (arg.sinfo, &mysinfo, sizeof (gdb_siginfo_t));
+  struct {
+    procfs_ctl_t cmd;
+    /* Use char array to avoid alignment issues.  */
+    char sinfo[sizeof (siginfo_t)];
+  } arg;
+  siginfo_t mysinfo;
 
-    win = (write (pi->ctl_fd, (void *) &arg, sizeof (arg)) == sizeof (arg));
-  }
-#else
-  win = (ioctl (pi->ctl_fd, PIOCSSIG, 0) >= 0);
-#endif
+  arg.cmd = PCSSIG;
+  /* The pointer is just a type alias.  */
+  mysinfo.si_signo = 0;
+  mysinfo.si_code  = 0;
+  mysinfo.si_errno = 0;
+  mysinfo.si_pid   = getpid ();       /* ?why? */
+  mysinfo.si_uid   = getuid ();       /* ?why? */
+  memcpy (arg.sinfo, &mysinfo, sizeof (siginfo_t));
+
+  win = (write (pi->ctl_fd, (void *) &arg, sizeof (arg)) == sizeof (arg));
 
   return win;
 }
@@ -2179,11 +1410,7 @@ proc_get_gregs (procinfo *pi)
     if (!proc_get_status (pi))
       return NULL;
 
-#ifdef NEW_PROC_API
   return &pi->prstatus.pr_lwp.pr_reg;
-#else
-  return &pi->prstatus.pr_reg;
-#endif
 }
 
 /* Return the general-purpose registers for the process or LWP
@@ -2192,66 +1419,11 @@ proc_get_gregs (procinfo *pi)
 static gdb_fpregset_t *
 proc_get_fpregs (procinfo *pi)
 {
-#ifdef NEW_PROC_API
   if (!pi->status_valid || !pi->fpregs_valid)
     if (!proc_get_status (pi))
       return NULL;
 
   return &pi->prstatus.pr_lwp.pr_fpreg;
-
-#else  /* not NEW_PROC_API */
-  if (pi->fpregs_valid)
-    return &pi->fpregset;	/* Already got 'em.  */
-  else
-    {
-      if (pi->ctl_fd == 0 && open_procinfo_files (pi, FD_CTL) == 0)
-	{
-	  return NULL;
-	}
-      else
-	{
-# ifdef PIOCTGFPREG
-	  struct {
-	    long pr_count;
-	    tid_t pr_error_thread;
-	    tfpregset_t thread_1;
-	  } thread_fpregs;
-
-	  thread_fpregs.pr_count = 1;
-	  thread_fpregs.thread_1.tid = pi->tid;
-
-	  if (pi->tid == 0
-	      && ioctl (pi->ctl_fd, PIOCGFPREG, &pi->fpregset) >= 0)
-	    {
-	      pi->fpregs_valid = 1;
-	      return &pi->fpregset; /* Got 'em now!  */
-	    }
-	  else if (pi->tid != 0
-		   && ioctl (pi->ctl_fd, PIOCTGFPREG, &thread_fpregs) >= 0)
-	    {
-	      memcpy (&pi->fpregset, &thread_fpregs.thread_1.pr_fpregs,
-		      sizeof (pi->fpregset));
-	      pi->fpregs_valid = 1;
-	      return &pi->fpregset; /* Got 'em now!  */
-	    }
-	  else
-	    {
-	      return NULL;
-	    }
-# else
-	  if (ioctl (pi->ctl_fd, PIOCGFPREG, &pi->fpregset) >= 0)
-	    {
-	      pi->fpregs_valid = 1;
-	      return &pi->fpregset; /* Got 'em now!  */
-	    }
-	  else
-	    {
-	      return NULL;
-	    }
-# endif
-	}
-    }
-#endif /* NEW_PROC_API */
 }
 
 /* Write the general-purpose registers back to the process or LWP
@@ -2274,7 +1446,6 @@ proc_set_gregs (procinfo *pi)
     }
   else
     {
-#ifdef NEW_PROC_API
       struct {
 	procfs_ctl_t cmd;
 	/* Use char array to avoid alignment issues.  */
@@ -2284,9 +1455,6 @@ proc_set_gregs (procinfo *pi)
       arg.cmd = PCSREG;
       memcpy (&arg.gregs, gregs, sizeof (arg.gregs));
       win = (write (pi->ctl_fd, (void *) &arg, sizeof (arg)) == sizeof (arg));
-#else
-      win = (ioctl (pi->ctl_fd, PIOCSREG, gregs) >= 0);
-#endif
     }
 
   /* Policy: writing the registers invalidates our cache.  */
@@ -2314,7 +1482,6 @@ proc_set_fpregs (procinfo *pi)
     }
   else
     {
-#ifdef NEW_PROC_API
       struct {
 	procfs_ctl_t cmd;
 	/* Use char array to avoid alignment issues.  */
@@ -2324,28 +1491,6 @@ proc_set_fpregs (procinfo *pi)
       arg.cmd = PCSFPREG;
       memcpy (&arg.fpregs, fpregs, sizeof (arg.fpregs));
       win = (write (pi->ctl_fd, (void *) &arg, sizeof (arg)) == sizeof (arg));
-#else
-# ifdef PIOCTSFPREG
-      if (pi->tid == 0)
-	win = (ioctl (pi->ctl_fd, PIOCSFPREG, fpregs) >= 0);
-      else
-	{
-	  struct {
-	    long pr_count;
-	    tid_t pr_error_thread;
-	    tfpregset_t thread_1;
-	  } thread_fpregs;
-
-	  thread_fpregs.pr_count = 1;
-	  thread_fpregs.thread_1.tid = pi->tid;
-	  memcpy (&thread_fpregs.thread_1.pr_fpregs, fpregs,
-		  sizeof (*fpregs));
-	  win = (ioctl (pi->ctl_fd, PIOCTSFPREG, &thread_fpregs) >= 0);
-	}
-# else
-      win = (ioctl (pi->ctl_fd, PIOCSFPREG, fpregs) >= 0);
-# endif
-#endif /* NEW_PROC_API */
     }
 
   /* Policy: writing the registers invalidates our cache.  */
@@ -2371,17 +1516,11 @@ proc_kill (procinfo *pi, int signo)
     }
   else
     {
-#ifdef NEW_PROC_API
       procfs_ctl_t cmd[2];
 
       cmd[0] = PCKILL;
       cmd[1] = signo;
       win = (write (pi->ctl_fd, (char *) &cmd, sizeof (cmd)) == sizeof (cmd));
-#else   /* ioctl method */
-      /* FIXME: do I need the Alpha OSF fixups present in
-	 procfs.c/unconditionally_kill_inferior?  Perhaps only for SIGKILL?  */
-      win = (ioctl (pi->ctl_fd, PIOCKILL, &signo) >= 0);
-#endif
   }
 
   return win;
@@ -2411,8 +1550,6 @@ proc_parent_pid (procinfo *pi)
 /* Convert a target address (a.k.a. CORE_ADDR) into a host address
    (a.k.a void pointer)!  */
 
-#if (defined (PCWATCH) || defined (PIOCSWATCH)) \
-    && !(defined (PIOCOPENLWP))
 static void *
 procfs_address_to_host_pointer (CORE_ADDR addr)
 {
@@ -2424,21 +1561,10 @@ procfs_address_to_host_pointer (CORE_ADD
 			      (gdb_byte *) &ptr, addr);
   return ptr;
 }
-#endif
 
 static int
 proc_set_watchpoint (procinfo *pi, CORE_ADDR addr, int len, int wflags)
 {
-#if !defined (PCWATCH) && !defined (PIOCSWATCH)
-  /* If neither or these is defined, we can't support watchpoints.
-     This just avoids possibly failing to compile the below on such
-     systems.  */
-  return 0;
-#else
-/* Horrible hack!  Detect Solaris 2.5, because this doesn't work on 2.5.  */
-#if defined (PIOCOPENLWP)	/* Solaris 2.5: bail out.  */
-  return 0;
-#else
   struct {
     procfs_ctl_t cmd;
     char watch[sizeof (prwatch_t)];
@@ -2448,26 +1574,12 @@ proc_set_watchpoint (procinfo *pi, CORE_
   /* NOTE: cagney/2003-02-01: Even more horrible hack.  Need to
      convert a target address into something that can be stored in a
      native data structure.  */
-#ifdef PCAGENT	/* Horrible hack: only defined on Solaris 2.6+ */
   pwatch.pr_vaddr  = (uintptr_t) procfs_address_to_host_pointer (addr);
-#else
-  pwatch.pr_vaddr  = (caddr_t) procfs_address_to_host_pointer (addr);
-#endif
   pwatch.pr_size   = len;
   pwatch.pr_wflags = wflags;
-#if defined(NEW_PROC_API) && defined (PCWATCH)
   arg.cmd = PCWATCH;
   memcpy (arg.watch, &pwatch, sizeof (prwatch_t));
   return (write (pi->ctl_fd, &arg, sizeof (arg)) == sizeof (arg));
-#else
-#if defined (PIOCSWATCH)
-  return (ioctl (pi->ctl_fd, PIOCSWATCH, &pwatch) >= 0);
-#else
-  return 0;	/* Fail */
-#endif
-#endif
-#endif
-#endif
 }
 
 #if (defined(__i386__) || defined(__x86_64__)) && defined (sun)
@@ -2482,7 +1594,6 @@ static struct ssd *
 proc_get_LDT_entry (procinfo *pi, int key)
 {
   static struct ssd *ldt_entry = NULL;
-#ifdef NEW_PROC_API
   char pathname[MAX_PROC_NAME_SIZE];
   struct cleanup *old_chain = NULL;
   int  fd;
@@ -2520,41 +1631,6 @@ proc_get_LDT_entry (procinfo *pi, int ke
   /* Loop ended, match not found.  */
   do_cleanups (old_chain);
   return NULL;
-#else
-  int nldt, i;
-  static int nalloc = 0;
-
-  /* Get the number of LDT entries.  */
-  if (ioctl (pi->ctl_fd, PIOCNLDT, &nldt) < 0)
-    {
-      proc_warn (pi, "proc_get_LDT_entry (PIOCNLDT)", __LINE__);
-      return NULL;
-    }
-
-  /* Allocate space for the number of LDT entries.  */
-  /* This alloc has to persist, 'cause we return a pointer to it.  */
-  if (nldt > nalloc)
-    {
-      ldt_entry = (struct ssd *)
-	xrealloc (ldt_entry, (nldt + 1) * sizeof (struct ssd));
-      nalloc = nldt;
-    }
-
-  /* Read the whole table in one gulp.  */
-  if (ioctl (pi->ctl_fd, PIOCLDT, ldt_entry) < 0)
-    {
-      proc_warn (pi, "proc_get_LDT_entry (PIOCLDT)", __LINE__);
-      return NULL;
-    }
-
-  /* Search the table and return the (first) entry matching 'key'.  */
-  for (i = 0; i < nldt; i++)
-    if (ldt_entry[i].sel == key)
-      return &ldt_entry[i];
-
-  /* Loop ended, match not found.  */
-  return NULL;
-#endif
 }
 
 /* Returns the pointer to the LDT entry of PTID.  */
@@ -2598,22 +1674,6 @@ procfs_find_LDT_entry (ptid_t ptid)
 
 /* Returns the number of threads for the process.  */
 
-#if defined (PIOCNTHR) && defined (PIOCTLIST)
-/* OSF version */
-static int
-proc_get_nthreads (procinfo *pi)
-{
-  int nthreads = 0;
-
-  if (ioctl (pi->ctl_fd, PIOCNTHR, &nthreads) < 0)
-    proc_warn (pi, "procfs: PIOCNTHR failed", __LINE__);
-
-  return nthreads;
-}
-
-#else
-#if defined (SYS_lwpcreate) || defined (SYS_lwp_create) /* FIXME: multiple */
-/* Solaris version */
 static int
 proc_get_nthreads (procinfo *pi)
 {
@@ -2621,25 +1681,13 @@ proc_get_nthreads (procinfo *pi)
     if (!proc_get_status (pi))
       return 0;
 
-  /* NEW_PROC_API: only works for the process procinfo, because the
-     LWP procinfos do not get prstatus filled in.  */
-#ifdef NEW_PROC_API
+  /* Only works for the process procinfo, because the LWP procinfos do not
+     get prstatus filled in.  */
   if (pi->tid != 0)	/* Find the parent process procinfo.  */
     pi = find_procinfo_or_die (pi->pid, 0);
-#endif
   return pi->prstatus.pr_nlwp;
 }
 
-#else
-/* Default version */
-static int
-proc_get_nthreads (procinfo *pi)
-{
-  return 0;
-}
-#endif
-#endif
-
 /* LWP version.
 
    Return the ID of the thread that had an event of interest.
@@ -2647,8 +1695,6 @@ proc_get_nthreads (procinfo *pi)
    other things being equal, this should be the ID of a thread that is
    currently executing.  */
 
-#if defined (SYS_lwpcreate) || defined (SYS_lwp_create) /* FIXME: multiple */
-/* Solaris version */
 static int
 proc_get_current_thread (procinfo *pi)
 {
@@ -2664,37 +1710,9 @@ proc_get_current_thread (procinfo *pi)
     if (!proc_get_status (pi))
       return 0;
 
-#ifdef NEW_PROC_API
   return pi->prstatus.pr_lwp.pr_lwpid;
-#else
-  return pi->prstatus.pr_who;
-#endif
-}
-
-#else
-#if defined (PIOCNTHR) && defined (PIOCTLIST)
-/* OSF version */
-static int
-proc_get_current_thread (procinfo *pi)
-{
-#if 0	/* FIXME: not ready for prime time?  */
-  return pi->prstatus.pr_tid;
-#else
-  return 0;
-#endif
-}
-
-#else
-/* Default version */
-static int
-proc_get_current_thread (procinfo *pi)
-{
-  return 0;
 }
 
-#endif
-#endif
-
 /* Discover the IDs of all the threads within the process, and create
    a procinfo for each of them (chained to the parent).  This
    unfortunately requires a different method on every OS.  Returns
@@ -2712,51 +1730,6 @@ proc_delete_dead_threads (procinfo *pare
   return 0;	/* keep iterating */
 }
 
-#if defined (PIOCLSTATUS)
-/* Solaris 2.5 (ioctl) version */
-static int
-proc_update_threads (procinfo *pi)
-{
-  gdb_prstatus_t *prstatus;
-  struct cleanup *old_chain = NULL;
-  procinfo *thread;
-  int nlwp, i;
-
-  /* We should never have to apply this operation to any procinfo
-     except the one for the main process.  If that ever changes for
-     any reason, then take out the following clause and replace it
-     with one that makes sure the ctl_fd is open.  */
-
-  if (pi->tid != 0)
-    pi = find_procinfo_or_die (pi->pid, 0);
-
-  proc_iterate_over_threads (pi, proc_delete_dead_threads, NULL);
-
-  if ((nlwp = proc_get_nthreads (pi)) <= 1)
-    return 1;	/* Process is not multi-threaded; nothing to do.  */
-
-  prstatus = XNEWVEC (gdb_prstatus_t, nlwp + 1);
-
-  old_chain = make_cleanup (xfree, prstatus);
-  if (ioctl (pi->ctl_fd, PIOCLSTATUS, prstatus) < 0)
-    proc_error (pi, "update_threads (PIOCLSTATUS)", __LINE__);
-
-  /* Skip element zero, which represents the process as a whole.  */
-  for (i = 1; i < nlwp + 1; i++)
-    {
-      if ((thread = create_procinfo (pi->pid, prstatus[i].pr_who)) == NULL)
-	proc_error (pi, "update_threads, create_procinfo", __LINE__);
-
-      memcpy (&thread->prstatus, &prstatus[i], sizeof (*prstatus));
-      thread->status_valid = 1;
-    }
-  pi->threads_valid = 1;
-  do_cleanups (old_chain);
-  return 1;
-}
-#else
-#ifdef NEW_PROC_API
-/* Solaris 6 (and later) version.  */
 static void
 do_closedir_cleanup (void *dir)
 {
@@ -2806,53 +1779,6 @@ proc_update_threads (procinfo *pi)
   do_cleanups (old_chain);
   return 1;
 }
-#else
-#ifdef PIOCTLIST
-/* OSF version */
-static int
-proc_update_threads (procinfo *pi)
-{
-  int nthreads, i;
-  tid_t *threads;
-
-  /* We should never have to apply this operation to any procinfo
-     except the one for the main process.  If that ever changes for
-     any reason, then take out the following clause and replace it
-     with one that makes sure the ctl_fd is open.  */
-
-  if (pi->tid != 0)
-    pi = find_procinfo_or_die (pi->pid, 0);
-
-  proc_iterate_over_threads (pi, proc_delete_dead_threads, NULL);
-
-  nthreads = proc_get_nthreads (pi);
-  if (nthreads < 2)
-    return 0;		/* Nothing to do for 1 or fewer threads.  */
-
-  threads = XNEWVEC (tid_t, nthreads);
-
-  if (ioctl (pi->ctl_fd, PIOCTLIST, threads) < 0)
-    proc_error (pi, "procfs: update_threads (PIOCTLIST)", __LINE__);
-
-  for (i = 0; i < nthreads; i++)
-    {
-      if (!find_procinfo (pi->pid, threads[i]))
-	if (!create_procinfo  (pi->pid, threads[i]))
-	  proc_error (pi, "update_threads, create_procinfo", __LINE__);
-    }
-  pi->threads_valid = 1;
-  return 1;
-}
-#else
-/* Default version */
-static int
-proc_update_threads (procinfo *pi)
-{
-  return 0;
-}
-#endif	/* OSF PIOCTLIST */
-#endif  /* NEW_PROC_API   */
-#endif  /* SOL 2.5 PIOCLSTATUS */
 
 /* Given a pointer to a function, call that function once for each lwp
    in the procinfo list, until the function returns non-zero, in which
@@ -2917,14 +1843,14 @@ static int
 procfs_debug_inferior (procinfo *pi)
 {
   fltset_t traced_faults;
-  gdb_sigset_t traced_signals;
+  sigset_t traced_signals;
   sysset_t *traced_syscall_entries;
   sysset_t *traced_syscall_exits;
   int status;
 
   /* Register to trace hardware faults in the child.  */
   prfillset (&traced_faults);		/* trace all faults...  */
-  gdb_prdelset  (&traced_faults, FLTPAGE);	/* except page fault.  */
+  prdelset  (&traced_faults, FLTPAGE);	/* except page fault.  */
   if (!proc_set_traced_faults  (pi, &traced_faults))
     return __LINE__;
 
@@ -2936,93 +1862,35 @@ procfs_debug_inferior (procinfo *pi)
 
   /* Register to trace the 'exit' system call (on entry).  */
   traced_syscall_entries = sysset_t_alloc (pi);
-  gdb_premptysysset (traced_syscall_entries);
-#ifdef SYS_exit
-  gdb_praddsysset (traced_syscall_entries, SYS_exit);
-#endif
-#ifdef SYS_lwpexit
-  gdb_praddsysset (traced_syscall_entries, SYS_lwpexit);/* And _lwp_exit...  */
-#endif
-#ifdef SYS_lwp_exit
-  gdb_praddsysset (traced_syscall_entries, SYS_lwp_exit);
-#endif
-#ifdef DYNAMIC_SYSCALLS
-  {
-    int callnum = find_syscall (pi, "_exit");
-
-    if (callnum >= 0)
-      gdb_praddsysset (traced_syscall_entries, callnum);
-  }
-#endif
+  premptyset (traced_syscall_entries);
+  praddset (traced_syscall_entries, SYS_exit);
+  praddset (traced_syscall_entries, SYS_lwp_exit);
 
   status = proc_set_traced_sysentry (pi, traced_syscall_entries);
   xfree (traced_syscall_entries);
   if (!status)
     return __LINE__;
 
-#ifdef PRFS_STOPEXEC	/* defined on OSF */
-  /* OSF method for tracing exec syscalls.  Quoting:
-     Under Alpha OSF/1 we have to use a PIOCSSPCACT ioctl to trace
-     exits from exec system calls because of the user level loader.  */
-  /* FIXME: make nice and maybe move into an access function.  */
-  {
-    int prfs_flags;
-
-    if (ioctl (pi->ctl_fd, PIOCGSPCACT, &prfs_flags) < 0)
-      return __LINE__;
-
-    prfs_flags |= PRFS_STOPEXEC;
-
-    if (ioctl (pi->ctl_fd, PIOCSSPCACT, &prfs_flags) < 0)
-      return __LINE__;
-  }
-#else /* not PRFS_STOPEXEC */
-  /* Everyone else's (except OSF) method for tracing exec syscalls.  */
+  /* Method for tracing exec syscalls.  */
   /* GW: Rationale...
      Not all systems with /proc have all the exec* syscalls with the same
      names.  On the SGI, for example, there is no SYS_exec, but there
      *is* a SYS_execv.  So, we try to account for that.  */
 
   traced_syscall_exits = sysset_t_alloc (pi);
-  gdb_premptysysset (traced_syscall_exits);
+  premptyset (traced_syscall_exits);
 #ifdef SYS_exec
-  gdb_praddsysset (traced_syscall_exits, SYS_exec);
-#endif
-#ifdef SYS_execve
-  gdb_praddsysset (traced_syscall_exits, SYS_execve);
-#endif
-#ifdef SYS_execv
-  gdb_praddsysset (traced_syscall_exits, SYS_execv);
-#endif
-
-#ifdef SYS_lwpcreate
-  gdb_praddsysset (traced_syscall_exits, SYS_lwpcreate);
-  gdb_praddsysset (traced_syscall_exits, SYS_lwpexit);
-#endif
-
-#ifdef SYS_lwp_create	/* FIXME: once only, please.  */
-  gdb_praddsysset (traced_syscall_exits, SYS_lwp_create);
-  gdb_praddsysset (traced_syscall_exits, SYS_lwp_exit);
-#endif
-
-#ifdef DYNAMIC_SYSCALLS
-  {
-    int callnum = find_syscall (pi, "execve");
-
-    if (callnum >= 0)
-      gdb_praddsysset (traced_syscall_exits, callnum);
-    callnum = find_syscall (pi, "ra_execve");
-    if (callnum >= 0)
-      gdb_praddsysset (traced_syscall_exits, callnum);
-  }
+  praddset (traced_syscall_exits, SYS_exec);
 #endif
+  praddset (traced_syscall_exits, SYS_execve);
+  praddset (traced_syscall_exits, SYS_lwp_create);
+  praddset (traced_syscall_exits, SYS_lwp_exit);
 
   status = proc_set_traced_sysexit (pi, traced_syscall_exits);
   xfree (traced_syscall_exits);
   if (!status)
     return __LINE__;
 
-#endif /* PRFS_STOPEXEC */
   return 0;
 }
 
@@ -3222,7 +2090,7 @@ procfs_fetch_registers (struct target_op
   ptid_t ptid = regcache_get_ptid (regcache);
   int pid = ptid_get_pid (ptid);
   int tid = ptid_get_lwp (ptid);
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   pi = find_procinfo_or_die (pid, tid);
 
@@ -3272,7 +2140,7 @@ procfs_store_registers (struct target_op
   ptid_t ptid = regcache_get_ptid (regcache);
   int pid = ptid_get_pid (ptid);
   int tid = ptid_get_lwp (ptid);
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   pi = find_procinfo_or_die (pid, tid);
 
@@ -3310,28 +2178,16 @@ procfs_store_registers (struct target_op
 static int
 syscall_is_lwp_exit (procinfo *pi, int scall)
 {
-#ifdef SYS_lwp_exit
   if (scall == SYS_lwp_exit)
     return 1;
-#endif
-#ifdef SYS_lwpexit
-  if (scall == SYS_lwpexit)
-    return 1;
-#endif
   return 0;
 }
 
 static int
 syscall_is_exit (procinfo *pi, int scall)
 {
-#ifdef SYS_exit
   if (scall == SYS_exit)
     return 1;
-#endif
-#ifdef DYNAMIC_SYSCALLS
-  if (find_syscall (pi, "_exit") == scall)
-    return 1;
-#endif
   return 0;
 }
 
@@ -3342,191 +2198,19 @@ syscall_is_exec (procinfo *pi, int scall
   if (scall == SYS_exec)
     return 1;
 #endif
-#ifdef SYS_execv
-  if (scall == SYS_execv)
-    return 1;
-#endif
-#ifdef SYS_execve
   if (scall == SYS_execve)
     return 1;
-#endif
-#ifdef DYNAMIC_SYSCALLS
-  if (find_syscall (pi, "_execve"))
-    return 1;
-  if (find_syscall (pi, "ra_execve"))
-    return 1;
-#endif
   return 0;
 }
 
 static int
 syscall_is_lwp_create (procinfo *pi, int scall)
 {
-#ifdef SYS_lwp_create
   if (scall == SYS_lwp_create)
     return 1;
-#endif
-#ifdef SYS_lwpcreate
-  if (scall == SYS_lwpcreate)
-    return 1;
-#endif
-  return 0;
-}
-
-#ifdef SYS_syssgi
-/* Return the address of the __dbx_link() function in the file
-   refernced by ABFD by scanning its symbol table.  Return 0 if
-   the symbol was not found.  */
-
-static CORE_ADDR
-dbx_link_addr (bfd *abfd)
-{
-  long storage_needed;
-  asymbol **symbol_table;
-  long number_of_symbols;
-  long i;
-
-  storage_needed = bfd_get_symtab_upper_bound (abfd);
-  if (storage_needed <= 0)
-    return 0;
-
-  symbol_table = (asymbol **) xmalloc (storage_needed);
-  make_cleanup (xfree, symbol_table);
-
-  number_of_symbols = bfd_canonicalize_symtab (abfd, symbol_table);
-
-  for (i = 0; i < number_of_symbols; i++)
-    {
-      asymbol *sym = symbol_table[i];
-
-      if ((sym->flags & BSF_GLOBAL)
-	  && sym->name != NULL && strcmp (sym->name, "__dbx_link") == 0)
-	return (sym->value + sym->section->vma);
-    }
-
-  /* Symbol not found, return NULL.  */
-  return 0;
-}
-
-/* Search the symbol table of the file referenced by FD for a symbol
-   named __dbx_link().  If found, then insert a breakpoint at this location,
-   and return nonzero.  Return zero otherwise.  */
-
-static int
-insert_dbx_link_bpt_in_file (int fd, CORE_ADDR ignored)
-{
-  long storage_needed;
-  CORE_ADDR sym_addr;
-
-  gdb_bfd_ref_ptr abfd (gdb_bfd_fdopenr ("unamed", 0, fd));
-  if (abfd == NULL)
-    {
-      warning (_("Failed to create a bfd: %s."), bfd_errmsg (bfd_get_error ()));
-      return 0;
-    }
-
-  if (!bfd_check_format (abfd.get (), bfd_object))
-    {
-      /* Not the correct format, so we can not possibly find the dbx_link
-	 symbol in it.	*/
-      return 0;
-    }
-
-  sym_addr = dbx_link_addr (abfd.get ());
-  if (sym_addr != 0)
-    {
-      struct breakpoint *dbx_link_bpt;
-
-      /* Insert the breakpoint.  */
-      dbx_link_bpt
-	= create_and_insert_solib_event_breakpoint (target_gdbarch (),
-						    sym_addr);
-      if (dbx_link_bpt == NULL)
-	{
-	  warning (_("Failed to insert dbx_link breakpoint."));
-	  return 0;
-	}
-      return 1;
-    }
-
-  return 0;
-}
-
-/* Calls the supplied callback function once for each mapped address
-   space in the process.  The callback function receives an open file
-   descriptor for the file corresponding to that mapped address space
-   (if there is one), and the base address of the mapped space.  Quit
-   when the callback function returns a nonzero value, or at teh end
-   of the mappings.  Returns the first non-zero return value of the
-   callback function, or zero.  */
-
-static int
-solib_mappings_callback (struct prmap *map, int (*func) (int, CORE_ADDR),
-			 void *data)
-{
-  procinfo *pi = data;
-  int fd;
-
-#ifdef NEW_PROC_API
-  char name[MAX_PROC_NAME_SIZE + sizeof (map->pr_mapname)];
-
-  if (map->pr_vaddr == 0 && map->pr_size == 0)
-    return -1;		/* sanity */
-
-  if (map->pr_mapname[0] == 0)
-    {
-      fd = -1;	/* no map file */
-    }
-  else
-    {
-      sprintf (name, "/proc/%d/object/%s", pi->pid, map->pr_mapname);
-      /* Note: caller's responsibility to close this fd!  */
-      fd = open_with_retry (name, O_RDONLY);
-      /* Note: we don't test the above call for failure;
-	 we just pass the FD on as given.  Sometimes there is
-	 no file, so the open may return failure, but that's
-	 not a problem.  */
-    }
-#else
-  fd = ioctl (pi->ctl_fd, PIOCOPENM, &map->pr_vaddr);
-  /* Note: we don't test the above call for failure;
-     we just pass the FD on as given.  Sometimes there is
-     no file, so the ioctl may return failure, but that's
-     not a problem.  */
-#endif
-  return (*func) (fd, (CORE_ADDR) map->pr_vaddr);
-}
-
-/* If the given memory region MAP contains a symbol named __dbx_link,
-   insert a breakpoint at this location and return nonzero.  Return
-   zero otherwise.  */
-
-static int
-insert_dbx_link_bpt_in_region (struct prmap *map,
-			       find_memory_region_ftype child_func,
-			       void *data)
-{
-  procinfo *pi = (procinfo *) data;
-
-  /* We know the symbol we're looking for is in a text region, so
-     only look for it if the region is a text one.  */
-  if (map->pr_mflags & MA_EXEC)
-    return solib_mappings_callback (map, insert_dbx_link_bpt_in_file, pi);
-
   return 0;
 }
 
-/* Search all memory regions for a symbol named __dbx_link.  If found,
-   insert a breakpoint at its location, and return nonzero.  Return zero
-   otherwise.  */
-
-static int
-insert_dbx_link_breakpoint (procinfo *pi)
-{
-  return iterate_over_mappings (pi, NULL, pi, insert_dbx_link_bpt_in_region);
-}
-#endif
-
 /* Retrieve the next stop event from the child process.  If child has
    not stopped yet, wait for it to stop.  Translate /proc eventcodes
    (or possibly wait eventcodes) into gdb internal event codes.
@@ -3613,13 +2297,11 @@ wait_again:
 
 	  if (flags & (PR_STOPPED | PR_ISTOP))
 	    {
-#ifdef PR_ASYNC
 	      /* If it's running async (for single_thread control),
 		 set it back to normal again.  */
 	      if (flags & PR_ASYNC)
 		if (!proc_unset_async (pi))
 		  proc_error (pi, "target_wait, unset_async", __LINE__);
-#endif
 
 	      if (info_verbose)
 		proc_prettyprint_why (why, what, 1);
@@ -3691,22 +2373,19 @@ wait_again:
 		    printf_filtered (_("procfs: trapped on entry to "));
 		    proc_prettyprint_syscall (proc_what (pi), 0);
 		    printf_filtered ("\n");
-#ifndef PIOCSSPCACT
-		    {
-		      long i, nsysargs, *sysargs;
-
-		      if ((nsysargs = proc_nsysarg (pi)) > 0 &&
-			  (sysargs  = proc_sysargs (pi)) != NULL)
-			{
-			  printf_filtered (_("%ld syscall arguments:\n"),
-					   nsysargs);
-			  for (i = 0; i < nsysargs; i++)
-			    printf_filtered ("#%ld: 0x%08lx\n",
-					     i, sysargs[i]);
-			}
 
-		    }
-#endif
+		    long i, nsysargs, *sysargs;
+
+		    if ((nsysargs = proc_nsysarg (pi)) > 0 &&
+			(sysargs  = proc_sysargs (pi)) != NULL)
+		      {
+			printf_filtered (_("%ld syscall arguments:\n"),
+					 nsysargs);
+			for (i = 0; i < nsysargs; i++)
+			  printf_filtered ("#%ld: 0x%08lx\n",
+					   i, sysargs[i]);
+		      }
+
 		    if (status)
 		      {
 			/* How to exit gracefully, returning "unknown
@@ -3731,22 +2410,6 @@ wait_again:
 		       address.  */
 		    wstat = (SIGTRAP << 8) | 0177;
 		  }
-#ifdef SYS_syssgi
-		else if (what == SYS_syssgi)
-		  {
-		    /* see if we can break on dbx_link().  If yes, then
-		       we no longer need the SYS_syssgi notifications.	*/
-		    if (insert_dbx_link_breakpoint (pi))
-		      proc_trace_syscalls_1 (pi, SYS_syssgi, PR_SYSEXIT,
-					     FLAG_RESET, 0);
-
-		    /* This is an internal event and should be transparent
-		       to wfi, so resume the execution and wait again.	See
-		       comment in procfs_init_inferior() for more details.  */
-		    target_continue_no_signal (ptid);
-		    goto wait_again;
-		  }
-#endif
 		else if (syscall_is_lwp_create (pi, what))
 		  {
 		    /* This syscall is somewhat like fork/exec.  We
@@ -3794,21 +2457,19 @@ wait_again:
 		    printf_filtered (_("procfs: trapped on exit from "));
 		    proc_prettyprint_syscall (proc_what (pi), 0);
 		    printf_filtered ("\n");
-#ifndef PIOCSSPCACT
-		    {
-		      long i, nsysargs, *sysargs;
-
-		      if ((nsysargs = proc_nsysarg (pi)) > 0 &&
-			  (sysargs  = proc_sysargs (pi)) != NULL)
-			{
-			  printf_filtered (_("%ld syscall arguments:\n"),
-					   nsysargs);
-			  for (i = 0; i < nsysargs; i++)
-			    printf_filtered ("#%ld: 0x%08lx\n",
-					     i, sysargs[i]);
-			}
-		    }
-#endif
+
+		    long i, nsysargs, *sysargs;
+
+		    if ((nsysargs = proc_nsysarg (pi)) > 0 &&
+			(sysargs  = proc_sysargs (pi)) != NULL)
+		      {
+			printf_filtered (_("%ld syscall arguments:\n"),
+					 nsysargs);
+			for (i = 0; i < nsysargs; i++)
+			  printf_filtered ("#%ld: 0x%08lx\n",
+					   i, sysargs[i]);
+		      }
+
 		    status->kind = TARGET_WAITKIND_SPURIOUS;
 		    return inferior_ptid;
 		  }
@@ -3846,41 +2507,26 @@ wait_again:
 		break;
 	      case PR_FAULTED:
 		switch (what) {
-#ifdef FLTWATCH
 		case FLTWATCH:
 		  wstat = (SIGTRAP << 8) | 0177;
 		  break;
-#endif
-#ifdef FLTKWATCH
-		case FLTKWATCH:
-		  wstat = (SIGTRAP << 8) | 0177;
-		  break;
-#endif
 		  /* FIXME: use si_signo where possible.  */
 		case FLTPRIV:
-#if (FLTILL != FLTPRIV)		/* Avoid "duplicate case" error.  */
 		case FLTILL:
-#endif
 		  wstat = (SIGILL << 8) | 0177;
 		  break;
 		case FLTBPT:
-#if (FLTTRACE != FLTBPT)	/* Avoid "duplicate case" error.  */
 		case FLTTRACE:
-#endif
 		  wstat = (SIGTRAP << 8) | 0177;
 		  break;
 		case FLTSTACK:
 		case FLTACCESS:
-#if (FLTBOUNDS != FLTSTACK)	/* Avoid "duplicate case" error.  */
 		case FLTBOUNDS:
-#endif
 		  wstat = (SIGSEGV << 8) | 0177;
 		  break;
 		case FLTIOVF:
 		case FLTIZDIV:
-#if (FLTFPE != FLTIOVF)		/* Avoid "duplicate case" error.  */
 		case FLTFPE:
-#endif
 		  wstat = (SIGFPE << 8) | 0177;
 		  break;
 		case FLTPAGE:	/* Recoverable page fault */
@@ -3948,11 +2594,9 @@ procfs_xfer_partial (struct target_ops *
     case TARGET_OBJECT_MEMORY:
       return procfs_xfer_memory (readbuf, writebuf, offset, len, xfered_len);
 
-#ifdef NEW_PROC_API
     case TARGET_OBJECT_AUXV:
       return memory_xfer_auxv (ops, object, annex, readbuf, writebuf,
 			       offset, len, xfered_len);
-#endif
 
     default:
       return ops->beneath->to_xfer_partial (ops->beneath, object, annex,
@@ -4141,10 +2785,8 @@ procfs_resume (struct target_ops *ops,
 	    {
 	      /* We're to resume a specific thread, and not the
 		 others.  Set the child process's PR_ASYNC flag.  */
-#ifdef PR_ASYNC
 	      if (!proc_set_async (pi))
 		proc_error (pi, "target_resume, set_async", __LINE__);
-#endif
 #if 0
 	      proc_iterate_over_threads (pi,
 					 make_signal_thread_runnable,
@@ -4172,7 +2814,7 @@ static void
 procfs_pass_signals (struct target_ops *self,
 		     int numsigs, unsigned char *pass_signals)
 {
-  gdb_sigset_t signals;
+  sigset_t signals;
   procinfo *pi = find_procinfo_or_die (ptid_get_pid (inferior_ptid), 0);
   int signo;
 
@@ -4182,7 +2824,7 @@ procfs_pass_signals (struct target_ops *
     {
       int target_signo = gdb_signal_from_host (signo);
       if (target_signo < numsigs && pass_signals[target_signo])
-	gdb_prdelset (&signals, signo);
+	prdelset (&signals, signo);
     }
 
   if (!proc_set_traced_signals (pi, &signals))
@@ -4222,28 +2864,8 @@ unconditionally_kill_inferior (procinfo 
   int parent_pid;
 
   parent_pid = proc_parent_pid (pi);
-#ifdef PROCFS_NEED_PIOCSSIG_FOR_KILL
-  /* Alpha OSF/1-2.x procfs needs a PIOCSSIG call with a SIGKILL signal
-     to kill the inferior, otherwise it might remain stopped with a
-     pending SIGKILL.
-     We do not check the result of the PIOCSSIG, the inferior might have
-     died already.  */
-  {
-    gdb_siginfo_t newsiginfo;
-
-    memset ((char *) &newsiginfo, 0, sizeof (newsiginfo));
-    newsiginfo.si_signo = SIGKILL;
-    newsiginfo.si_code = 0;
-    newsiginfo.si_errno = 0;
-    newsiginfo.si_pid = getpid ();
-    newsiginfo.si_uid = getuid ();
-    /* FIXME: use proc_set_current_signal.  */
-    ioctl (pi->ctl_fd, PIOCSSIG, &newsiginfo);
-  }
-#else /* PROCFS_NEED_PIOCSSIG_FOR_KILL */
   if (!proc_kill (pi, SIGKILL))
     proc_error (pi, "unconditionally_kill, proc_kill", __LINE__);
-#endif /* PROCFS_NEED_PIOCSSIG_FOR_KILL */
   destroy_procinfo (pi);
 
   /* If pi is GDB's child, wait for it to die.  */
@@ -4307,7 +2929,7 @@ static void
 procfs_init_inferior (struct target_ops *ops, int pid)
 {
   procinfo *pi;
-  gdb_sigset_t signals;
+  sigset_t signals;
   int fail;
   int lwpid;
 
@@ -4377,32 +2999,7 @@ procfs_init_inferior (struct target_ops 
   thread_change_ptid (pid_to_ptid (pid),
 		      ptid_build (pid, lwpid, 0));
 
-  startup_inferior (START_INFERIOR_TRAPS_EXPECTED);
-
-#ifdef SYS_syssgi
-  /* On mips-irix, we need to stop the inferior early enough during
-     the startup phase in order to be able to load the shared library
-     symbols and insert the breakpoints that are located in these shared
-     libraries.  Stopping at the program entry point is not good enough
-     because the -init code is executed before the execution reaches
-     that point.
-
-     So what we need to do is to insert a breakpoint in the runtime
-     loader (rld), more precisely in __dbx_link().  This procedure is
-     called by rld once all shared libraries have been mapped, but before
-     the -init code is executed.  Unfortuantely, this is not straightforward,
-     as rld is not part of the executable we are running, and thus we need
-     the inferior to run until rld itself has been mapped in memory.
-
-     For this, we trace all syssgi() syscall exit events.  Each time
-     we detect such an event, we iterate over each text memory maps,
-     get its associated fd, and scan the symbol table for __dbx_link().
-     When found, we know that rld has been mapped, and that we can insert
-     the breakpoint at the symbol address.  Once the dbx_link() breakpoint
-     has been inserted, the syssgi() notifications are no longer necessary,
-     so they should be canceled.  */
-  proc_trace_syscalls_1 (pi, SYS_syssgi, PR_SYSEXIT, FLAG_SET, 0);
-#endif
+  gdb_startup_inferior (pid, START_INFERIOR_TRAPS_EXPECTED);
 }
 
 /* When GDB forks to create a new process, this function is called on
@@ -4435,59 +3032,18 @@ procfs_set_exec_trap (void)
       _exit (127);
     }
 
-#ifdef PRFS_STOPEXEC	/* defined on OSF */
-  /* OSF method for tracing exec syscalls.  Quoting:
-     Under Alpha OSF/1 we have to use a PIOCSSPCACT ioctl to trace
-     exits from exec system calls because of the user level loader.  */
-  /* FIXME: make nice and maybe move into an access function.  */
-  {
-    int prfs_flags;
-
-    if (ioctl (pi->ctl_fd, PIOCGSPCACT, &prfs_flags) < 0)
-      {
-	proc_warn (pi, "set_exec_trap (PIOCGSPCACT)", __LINE__);
-	gdb_flush (gdb_stderr);
-	_exit (127);
-      }
-    prfs_flags |= PRFS_STOPEXEC;
-
-    if (ioctl (pi->ctl_fd, PIOCSSPCACT, &prfs_flags) < 0)
-      {
-	proc_warn (pi, "set_exec_trap (PIOCSSPCACT)", __LINE__);
-	gdb_flush (gdb_stderr);
-	_exit (127);
-      }
-  }
-#else /* not PRFS_STOPEXEC */
-  /* Everyone else's (except OSF) method for tracing exec syscalls.  */
+  /* Method for tracing exec syscalls.  */
   /* GW: Rationale...
      Not all systems with /proc have all the exec* syscalls with the same
      names.  On the SGI, for example, there is no SYS_exec, but there
      *is* a SYS_execv.  So, we try to account for that.  */
 
   exitset = sysset_t_alloc (pi);
-  gdb_premptysysset (exitset);
+  premptyset (exitset);
 #ifdef SYS_exec
-  gdb_praddsysset (exitset, SYS_exec);
-#endif
-#ifdef SYS_execve
-  gdb_praddsysset (exitset, SYS_execve);
-#endif
-#ifdef SYS_execv
-  gdb_praddsysset (exitset, SYS_execv);
+  praddset (exitset, SYS_exec);
 #endif
-#ifdef DYNAMIC_SYSCALLS
-  {
-    int callnum = find_syscall (pi, "execve");
-
-    if (callnum >= 0)
-      gdb_praddsysset (exitset, callnum);
-
-    callnum = find_syscall (pi, "ra_execve");
-    if (callnum >= 0)
-      gdb_praddsysset (exitset, callnum);
-  }
-#endif /* DYNAMIC_SYSCALLS */
+  praddset (exitset, SYS_execve);
 
   if (!proc_set_traced_sysexit (pi, exitset))
     {
@@ -4495,7 +3051,6 @@ procfs_set_exec_trap (void)
       gdb_flush (gdb_stderr);
       _exit (127);
     }
-#endif /* PRFS_STOPEXEC */
 
   /* FIXME: should this be done in the parent instead?  */
   /* Turn off inherit on fork flag so that all grand-children
@@ -4604,6 +3159,11 @@ procfs_create_inferior (struct target_op
   pid = fork_inferior (exec_file, allargs, env, procfs_set_exec_trap,
 		       NULL, NULL, shell_file, NULL);
 
+  /* We have something that executes now.  We'll be running through
+     the shell at this point (if startup-with-shell is true), but the
+     pid shouldn't change.  */
+  add_thread_silent (pid_to_ptid (pid));
+
   procfs_init_inferior (ops, pid);
 }
 
@@ -4612,23 +3172,6 @@ procfs_create_inferior (struct target_op
 static void
 procfs_inferior_created (struct target_ops *ops, int from_tty)
 {
-#ifdef SYS_syssgi
-  /* Make sure to cancel the syssgi() syscall-exit notifications.
-     They should normally have been removed by now, but they may still
-     be activated if the inferior doesn't use shared libraries, or if
-     we didn't locate __dbx_link, or if we never stopped in __dbx_link.
-     See procfs_init_inferior() for more details.
-
-     Since these notifications are only ever enabled when we spawned
-     the inferior ourselves, there is nothing to do when the inferior
-     was created by attaching to an already running process, or when
-     debugging a core file.  */
-  if (current_inferior ()->attach_flag || !target_can_run (&current_target))
-    return;
-
-  proc_trace_syscalls_1 (find_procinfo_or_die (ptid_get_pid (inferior_ptid),
-			 0), SYS_syssgi, PR_SYSEXIT, FLAG_RESET, 0);
-#endif
 }
 
 /* Callback for update_thread_list.  Calls "add_thread".  */
@@ -4710,7 +3253,6 @@ static int
 procfs_set_watchpoint (ptid_t ptid, CORE_ADDR addr, int len, int rwflag,
 		       int after)
 {
-#ifndef AIX5
   int       pflags = 0;
   procinfo *pi;
 
@@ -4751,7 +3293,6 @@ procfs_set_watchpoint (ptid_t ptid, CORE
 	return 0;		/* ignore */
       proc_error (pi, "set_watchpoint", __LINE__);
     }
-#endif /* AIX5 */
   return 0;
 }
 
@@ -4801,14 +3342,8 @@ procfs_stopped_by_watchpoint (struct tar
     {
       if (proc_why (pi) == PR_FAULTED)
 	{
-#ifdef FLTWATCH
 	  if (proc_what (pi) == FLTWATCH)
 	    return 1;
-#endif
-#ifdef FLTKWATCH
-	  if (proc_what (pi) == FLTKWATCH)
-	    return 1;
-#endif
 	}
     }
   return 0;
@@ -4913,13 +3448,10 @@ iterate_over_mappings (procinfo *pi, fin
   int map_fd;
   int nmap;
   struct cleanup *cleanups = make_cleanup (null_cleanup, NULL);
-#ifdef NEW_PROC_API
   struct stat sbuf;
-#endif
 
   /* Get the number of mappings, allocate space,
      and read the mappings into prmaps.  */
-#ifdef NEW_PROC_API
   /* Open map fd.  */
   sprintf (pathname, "/proc/%d/map", pi->pid);
   if ((map_fd = open (pathname, O_RDONLY)) < 0)
@@ -4938,15 +3470,6 @@ iterate_over_mappings (procinfo *pi, fin
   if (read (map_fd, (char *) prmaps, nmap * sizeof (*prmaps))
       != (nmap * sizeof (*prmaps)))
     proc_error (pi, "iterate_over_mappings (read)", __LINE__);
-#else
-  /* Use ioctl command PIOCNMAP to get number of mappings.  */
-  if (ioctl (pi->ctl_fd, PIOCNMAP, &nmap) != 0)
-    proc_error (pi, "iterate_over_mappings (PIOCNMAP)", __LINE__);
-
-  prmaps = (struct prmap *) alloca ((nmap + 1) * sizeof (*prmaps));
-  if (ioctl (pi->ctl_fd, PIOCMAP, prmaps) != 0)
-    proc_error (pi, "iterate_over_mappings (PIOCMAP)", __LINE__);
-#endif
 
   for (prmap = prmaps; nmap > 0; prmap++, nmap--)
     if ((funcstat = (*func) (prmap, child_func, data)) != 0)
@@ -5006,10 +3529,6 @@ mappingflags (long flags)
   static char asciiflags[8];
 
   strcpy (asciiflags, "-------");
-#if defined (MA_PHYS)
-  if (flags & MA_PHYS)
-    asciiflags[0] = 'd';
-#endif
   if (flags & MA_STACK)
     asciiflags[1] = 's';
   if (flags & MA_BREAK)
@@ -5034,11 +3553,7 @@ info_mappings_callback (struct prmap *ma
 {
   unsigned int pr_off;
 
-#ifdef PCAGENT	/* Horrible hack: only defined on Solaris 2.6+ */
   pr_off = (unsigned int) map->pr_offset;
-#else
-  pr_off = map->pr_off;
-#endif
 
   if (gdbarch_addr_bit (target_gdbarch ()) == 32)
     printf_filtered ("\t%#10lx %#10lx %#10lx %#10x %7s\n",
@@ -5095,7 +3610,6 @@ procfs_info_proc (struct target_ops *ops
   struct cleanup *old_chain;
   procinfo *process  = NULL;
   procinfo *thread   = NULL;
-  char    **argv     = NULL;
   char     *tmp      = NULL;
   int       pid      = 0;
   int       tid      = 0;
@@ -5116,24 +3630,19 @@ procfs_info_proc (struct target_ops *ops
     }
 
   old_chain = make_cleanup (null_cleanup, 0);
-  if (args)
+  gdb_argv built_argv (args);
+  for (char *arg : built_argv)
     {
-      argv = gdb_buildargv (args);
-      make_cleanup_freeargv (argv);
-    }
-  while (argv != NULL && *argv != NULL)
-    {
-      if (isdigit (argv[0][0]))
+      if (isdigit (arg[0]))
 	{
-	  pid = strtoul (argv[0], &tmp, 10);
+	  pid = strtoul (arg, &tmp, 10);
 	  if (*tmp == '/')
 	    tid = strtoul (++tmp, NULL, 10);
 	}
-      else if (argv[0][0] == '/')
+      else if (arg[0] == '/')
 	{
-	  tid = strtoul (argv[0] + 1, NULL, 10);
+	  tid = strtoul (arg + 1, NULL, 10);
 	}
-      argv++;
     }
   if (pid == 0)
     pid = ptid_get_pid (inferior_ptid);
@@ -5207,9 +3716,9 @@ proc_trace_syscalls_1 (procinfo *pi, int
     proc_error (pi, "proc-trace, get_traced_sysset", __LINE__);
 
   if (mode == FLAG_SET)
-    gdb_praddsysset (sysset, syscallnum);
+    praddset (sysset, syscallnum);
   else
-    gdb_prdelsysset (sysset, syscallnum);
+    prdelset (sysset, syscallnum);
 
   if (entry_or_exit == PR_SYSENTRY)
     {
@@ -5224,7 +3733,7 @@ proc_trace_syscalls_1 (procinfo *pi, int
 }
 
 static void
-proc_trace_syscalls (char *args, int from_tty, int entry_or_exit, int mode)
+proc_trace_syscalls (const char *args, int from_tty, int entry_or_exit, int mode)
 {
   procinfo *pi;
 
@@ -5244,33 +3753,29 @@ proc_trace_syscalls (char *args, int fro
 }
 
 static void
-proc_trace_sysentry_cmd (char *args, int from_tty)
+proc_trace_sysentry_cmd (const char *args, int from_tty)
 {
   proc_trace_syscalls (args, from_tty, PR_SYSENTRY, FLAG_SET);
 }
 
 static void
-proc_trace_sysexit_cmd (char *args, int from_tty)
+proc_trace_sysexit_cmd (const char *args, int from_tty)
 {
   proc_trace_syscalls (args, from_tty, PR_SYSEXIT, FLAG_SET);
 }
 
 static void
-proc_untrace_sysentry_cmd (char *args, int from_tty)
+proc_untrace_sysentry_cmd (const char *args, int from_tty)
 {
   proc_trace_syscalls (args, from_tty, PR_SYSENTRY, FLAG_RESET);
 }
 
 static void
-proc_untrace_sysexit_cmd (char *args, int from_tty)
+proc_untrace_sysexit_cmd (const char *args, int from_tty)
 {
   proc_trace_syscalls (args, from_tty, PR_SYSEXIT, FLAG_RESET);
 }
 
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern void _initialize_procfs (void);
-
 void
 _initialize_procfs (void)
 {
@@ -5305,8 +3810,6 @@ procfs_first_available (void)
 }
 
 /* ===================  GCORE .NOTE "MODULE" =================== */
-#if defined (PIOCOPENLWP) || defined (PCAGENT)
-/* gcore only implemented on solaris (so far) */
 
 static char *
 procfs_do_thread_registers (bfd *obfd, ptid_t ptid,
@@ -5317,7 +3820,6 @@ procfs_do_thread_registers (bfd *obfd, p
   gdb_gregset_t gregs;
   gdb_fpregset_t fpregs;
   unsigned long merged_pid;
-  struct cleanup *old_chain;
 
   merged_pid = ptid_get_lwp (ptid) << 16 | ptid_get_pid (ptid);
 
@@ -5326,26 +3828,17 @@ procfs_do_thread_registers (bfd *obfd, p
      once it is implemented in this platform:
      gdbarch_iterate_over_regset_sections().  */
 
-  old_chain = save_inferior_ptid ();
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
   inferior_ptid = ptid;
   target_fetch_registers (regcache, -1);
 
   fill_gregset (regcache, &gregs, -1);
-#if defined (NEW_PROC_API)
   note_data = (char *) elfcore_write_lwpstatus (obfd,
 						note_data,
 						note_size,
 						merged_pid,
 						stop_signal,
 						&gregs);
-#else
-  note_data = (char *) elfcore_write_prstatus (obfd,
-					       note_data,
-					       note_size,
-					       merged_pid,
-					       stop_signal,
-					       &gregs);
-#endif
   fill_fpregset (regcache, &fpregs, -1);
   note_data = (char *) elfcore_write_prfpreg (obfd,
 					      note_data,
@@ -5353,8 +3846,6 @@ procfs_do_thread_registers (bfd *obfd, p
 					      &fpregs,
 					      sizeof (fpregs));
 
-  do_cleanups (old_chain);
-
   return note_data;
 }
 
@@ -5447,12 +3938,10 @@ procfs_make_note_section (struct target_
 
   stop_signal = find_stop_signal ();
 
-#ifdef NEW_PROC_API
   fill_gregset (get_current_regcache (), &gregs, -1);
   note_data = elfcore_write_pstatus (obfd, note_data, note_size,
 				     ptid_get_pid (inferior_ptid),
 				     stop_signal, &gregs);
-#endif
 
   thread_args.obfd = obfd;
   thread_args.note_data = note_data;
@@ -5473,12 +3962,4 @@ procfs_make_note_section (struct target_
 
   return note_data;
 }
-#else /* !Solaris */
-static char *
-procfs_make_note_section (struct target_ops *self, bfd *obfd, int *note_size)
-{
-  error (_("gcore not implemented for this host."));
-  return NULL;	/* lint */
-}
-#endif /* Solaris */
 /* ===================  END GCORE .NOTE "MODULE" =================== */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/procfs.h ./gdb/procfs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/procfs.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/procfs.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native debugging support for procfs targets.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/proc-service.c ./gdb/proc-service.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/proc-service.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/proc-service.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* <proc_service.h> implementation.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -34,24 +34,6 @@
 #include "gregset.h"
 
 
-/* Fix-up some broken systems.  */
-
-/* The prototypes in <proc_service.h> are slightly different on older
-   systems.  Compensate for the discrepancies.  */
-
-#ifdef PROC_SERVICE_IS_OLD
-typedef const struct ps_prochandle *gdb_ps_prochandle_t;
-typedef char *gdb_ps_read_buf_t;
-typedef char *gdb_ps_write_buf_t;
-typedef int gdb_ps_size_t;
-#else
-typedef struct ps_prochandle *gdb_ps_prochandle_t;
-typedef void *gdb_ps_read_buf_t;
-typedef const void *gdb_ps_write_buf_t;
-typedef size_t gdb_ps_size_t;
-#endif
-
-
 /* Helper functions.  */
 
 /* Convert a psaddr_t to a CORE_ADDR.  */
@@ -87,7 +69,7 @@ static ps_err_e
 ps_xfer_memory (const struct ps_prochandle *ph, psaddr_t addr,
 		gdb_byte *buf, size_t len, int write)
 {
-  struct cleanup *old_chain = save_inferior_ptid ();
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
   int ret;
   CORE_ADDR core_addr = ps_addr_to_core_addr (addr);
 
@@ -98,8 +80,6 @@ ps_xfer_memory (const struct ps_prochand
   else
     ret = target_read_memory (core_addr, buf, len);
 
-  do_cleanups (old_chain);
-
   return (ret == 0 ? PS_OK : PS_ERR);
 }
 
@@ -109,36 +89,29 @@ ps_xfer_memory (const struct ps_prochand
    symbol is stored in SYM_ADDR.  */
 
 ps_err_e
-ps_pglobal_lookup (gdb_ps_prochandle_t ph, const char *obj,
+ps_pglobal_lookup (struct ps_prochandle *ph, const char *obj,
 		   const char *name, psaddr_t *sym_addr)
 {
-  struct bound_minimal_symbol ms;
-  struct cleanup *old_chain = save_current_program_space ();
   struct inferior *inf = find_inferior_ptid (ph->ptid);
-  ps_err_e result;
+
+  scoped_restore_current_program_space restore_pspace;
 
   set_current_program_space (inf->pspace);
 
   /* FIXME: kettenis/2000-09-03: What should we do with OBJ?  */
-  ms = lookup_minimal_symbol (name, NULL, NULL);
+  bound_minimal_symbol ms = lookup_minimal_symbol (name, NULL, NULL);
   if (ms.minsym == NULL)
-    result = PS_NOSYM;
-  else
-    {
-      *sym_addr = core_addr_to_ps_addr (BMSYMBOL_VALUE_ADDRESS (ms));
-      result = PS_OK;
-    }
+    return PS_NOSYM;
 
-  do_cleanups (old_chain);
-  return result;
+  *sym_addr = core_addr_to_ps_addr (BMSYMBOL_VALUE_ADDRESS (ms));
+  return PS_OK;
 }
 
 /* Read SIZE bytes from the target process PH at address ADDR and copy
    them into BUF.  */
 
 ps_err_e
-ps_pdread (gdb_ps_prochandle_t ph, psaddr_t addr,
-	   gdb_ps_read_buf_t buf, gdb_ps_size_t size)
+ps_pdread (struct ps_prochandle *ph, psaddr_t addr, void *buf, size_t size)
 {
   return ps_xfer_memory (ph, addr, (gdb_byte *) buf, size, 0);
 }
@@ -146,8 +119,8 @@ ps_pdread (gdb_ps_prochandle_t ph, psadd
 /* Write SIZE bytes from BUF into the target process PH at address ADDR.  */
 
 ps_err_e
-ps_pdwrite (gdb_ps_prochandle_t ph, psaddr_t addr,
-	    gdb_ps_write_buf_t buf, gdb_ps_size_t size)
+ps_pdwrite (struct ps_prochandle *ph, psaddr_t addr,
+	    const void *buf, size_t size)
 {
   return ps_xfer_memory (ph, addr, (gdb_byte *) buf, size, 1);
 }
@@ -156,7 +129,7 @@ ps_pdwrite (gdb_ps_prochandle_t ph, psad
    and store them in GREGSET.  */
 
 ps_err_e
-ps_lgetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, prgregset_t gregset)
+ps_lgetregs (struct ps_prochandle *ph, lwpid_t lwpid, prgregset_t gregset)
 {
   ptid_t ptid = ptid_build (ptid_get_pid (ph->ptid), lwpid, 0);
   struct regcache *regcache
@@ -172,7 +145,7 @@ ps_lgetregs (gdb_ps_prochandle_t ph, lwp
    from GREGSET.  */
 
 ps_err_e
-ps_lsetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, const prgregset_t gregset)
+ps_lsetregs (struct ps_prochandle *ph, lwpid_t lwpid, const prgregset_t gregset)
 {
   ptid_t ptid = ptid_build (ptid_get_pid (ph->ptid), lwpid, 0);
   struct regcache *regcache
@@ -188,8 +161,7 @@ ps_lsetregs (gdb_ps_prochandle_t ph, lwp
    process PH and store them in FPREGSET.  */
 
 ps_err_e
-ps_lgetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
-	       gdb_prfpregset_t *fpregset)
+ps_lgetfpregs (struct ps_prochandle *ph, lwpid_t lwpid, gdb_prfpregset_t *fpregset)
 {
   ptid_t ptid = ptid_build (ptid_get_pid (ph->ptid), lwpid, 0);
   struct regcache *regcache
@@ -205,7 +177,7 @@ ps_lgetfpregs (gdb_ps_prochandle_t ph, l
    process PH from FPREGSET.  */
 
 ps_err_e
-ps_lsetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
+ps_lsetfpregs (struct ps_prochandle *ph, lwpid_t lwpid,
 	       const gdb_prfpregset_t *fpregset)
 {
   ptid_t ptid = ptid_build (ptid_get_pid (ph->ptid), lwpid, 0);
@@ -222,14 +194,11 @@ ps_lsetfpregs (gdb_ps_prochandle_t ph, l
    -- not used on Solaris.  */
 
 pid_t
-ps_getpid (gdb_ps_prochandle_t ph)
+ps_getpid (struct ps_prochandle *ph)
 {
   return ptid_get_pid (ph->ptid);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_proc_service;
-
 void
 _initialize_proc_service (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/proc-service.list ./gdb/proc-service.list
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/proc-service.list	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/proc-service.list	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* -Wl,--dynamic-list symbols exported for libthread_db.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/proc-utils.h ./gdb/proc-utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/proc-utils.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/proc-utils.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Machine independent support for SVR4 /proc (process file system) for GDB.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/proc-why.c ./gdb/proc-why.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/proc-why.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/proc-why.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
-/* Machine-independent support for SVR4 /proc (process file system)
+/* Machine-independent support for Solaris /proc (process file system)
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    Written by Michael Snyder at Cygnus Solutions.
    Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others.
@@ -20,9 +20,7 @@
 
 #include "defs.h"
 
-#ifdef NEW_PROC_API
 #define _STRUCTURED_PROC 1
-#endif
 
 #include <sys/types.h>
 #include <sys/procfs.h>
@@ -47,55 +45,15 @@ struct trans
 
 static struct trans pr_why_table[] =
 {
-#if defined (PR_REQUESTED)
-  /* All platforms.  */
   { PR_REQUESTED, "PR_REQUESTED", 
     "Directed to stop by debugger via P(IO)CSTOP or P(IO)CWSTOP" },
-#endif
-#if defined (PR_SIGNALLED)
-  /* All platforms.  */
   { PR_SIGNALLED, "PR_SIGNALLED", "Receipt of a traced signal" },
-#endif
-#if defined (PR_SYSENTRY)
-  /* All platforms.  */
   { PR_SYSENTRY, "PR_SYSENTRY", "Entry to a traced system call" },
-#endif
-#if defined (PR_SYSEXIT)
-  /* All platforms.  */
   { PR_SYSEXIT, "PR_SYSEXIT", "Exit from a traced system call" },
-#endif
-#if defined (PR_JOBCONTROL)
-  /* All platforms.  */
   { PR_JOBCONTROL, "PR_JOBCONTROL", "Default job control stop signal action" },
-#endif
-#if defined (PR_FAULTED)
-  /* All platforms.  */
   { PR_FAULTED, "PR_FAULTED", "Incurred a traced hardware fault" },
-#endif
-#if defined (PR_SUSPENDED)
-  /* Solaris only.  */
   { PR_SUSPENDED, "PR_SUSPENDED", "Process suspended" },
-#endif
-#if defined (PR_CHECKPOINT)
-  /* Solaris only.  */
   { PR_CHECKPOINT, "PR_CHECKPOINT", "Process stopped at checkpoint" },
-#endif
-#if defined (PR_FORKSTOP)
-  /* OSF/1 only.  */
-  { PR_FORKSTOP, "PR_FORKSTOP", "Process stopped at end of fork call" },
-#endif
-#if defined (PR_TCRSTOP)
-  /* OSF/1 only.  */
-  { PR_TCRSTOP, "PR_TCRSTOP", "Process stopped on thread creation" },
-#endif
-#if defined (PR_TTSTOP)
-  /* OSF/1 only.  */
-  { PR_TTSTOP, "PR_TTSTOP", "Process stopped on thread termination" },
-#endif
-#if defined (PR_DEAD)
-  /* OSF/1 only.  */
-  { PR_DEAD, "PR_DEAD", "Process stopped in exit system call" },
-#endif
 };
 
 /* Pretty-print the pr_why field of a `struct prstatus' or `struct
@@ -118,42 +76,25 @@ proc_prettyfprint_why (FILE *file, unsig
 	  fprintf (file, ": %s ", pr_why_table[i].desc);
 
 	switch (why) {
-#ifdef PR_REQUESTED
 	case PR_REQUESTED:
 	  break;		/* Nothing more to print.  */
-#endif
-#ifdef PR_SIGNALLED
 	case PR_SIGNALLED:
 	  proc_prettyfprint_signal (file, what, verbose);
 	  break;
-#endif
-#ifdef PR_FAULTED
 	case PR_FAULTED:
 	  proc_prettyfprint_fault (file, what, verbose);
 	  break;
-#endif
-#ifdef PR_SYSENTRY
 	case PR_SYSENTRY:
 	  fprintf (file, "Entry to ");
 	  proc_prettyfprint_syscall (file, what, verbose);
 	  break;
-#endif
-#ifdef PR_SYSEXIT
 	case PR_SYSEXIT:
 	  fprintf (file, "Exit from ");
 	  proc_prettyfprint_syscall (file, what, verbose);
 	  break;
-#endif
-#ifdef PR_JOBCONTROL
 	case PR_JOBCONTROL:
 	  proc_prettyfprint_signal (file, what, verbose);
 	  break;
-#endif
-#ifdef PR_DEAD
-	case PR_DEAD:
-	  fprintf (file, "Exit status: %ld\n", what);
-	  break;
-#endif
 	default:
 	  fprintf (file, "Unknown why %ld, what %ld\n", why, what);
 	  break;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/producer.c ./gdb/producer.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/producer.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/producer.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,218 @@
+/* Producer string parsers for GDB.
+
+   Copyright (C) 2012-2018 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 "defs.h"
+#include "producer.h"
+#include "selftest.h"
+
+/* See producer.h.  */
+
+int
+producer_is_gcc_ge_4 (const char *producer)
+{
+  int major, minor;
+
+  if (! producer_is_gcc (producer, &major, &minor))
+    return -1;
+  if (major < 4)
+    return -1;
+  if (major > 4)
+    return INT_MAX;
+  return minor;
+}
+
+/* See producer.h.  */
+
+int
+producer_is_gcc (const char *producer, int *major, int *minor)
+{
+  const char *cs;
+
+  if (producer != NULL && startswith (producer, "GNU "))
+    {
+      int maj, min;
+
+      if (major == NULL)
+	major = &maj;
+      if (minor == NULL)
+	minor = &min;
+
+      /* Skip any identifier after "GNU " - such as "C11" "C++" or "Java".
+	 A full producer string might look like:
+	 "GNU C 4.7.2"
+	 "GNU Fortran 4.8.2 20140120 (Red Hat 4.8.2-16) -mtune=generic ..."
+	 "GNU C++14 5.0.0 20150123 (experimental)"
+      */
+      cs = &producer[strlen ("GNU ")];
+      while (*cs && !isspace (*cs))
+        cs++;
+      if (*cs && isspace (*cs))
+        cs++;
+      if (sscanf (cs, "%d.%d", major, minor) == 2)
+	return 1;
+    }
+
+  /* Not recognized as GCC.  */
+  return 0;
+}
+
+
+/* See producer.h.  */
+
+bool
+producer_is_icc (const char *producer, int *major, int *minor)
+{
+  if (producer == NULL || !startswith (producer, "Intel(R)"))
+    return false;
+
+  /* Prepare the used fields.  */
+  int maj, min;
+  if (major == NULL)
+    major = &maj;
+  if (minor == NULL)
+    minor = &min;
+
+  *minor = 0;
+  *major = 0;
+
+  /* Consumes the string till a "Version" is found.  */
+  const char *cs = strstr (producer, "Version");
+  if (cs != NULL)
+    {
+      cs = skip_to_space (cs);
+
+      int intermediate = 0;
+      int nof = sscanf (cs, "%d.%d.%d.%*d", major, &intermediate, minor);
+
+      /* Internal versions are represented only as MAJOR.MINOR, where
+	 minor is usually 0.
+	 Public versions have 3 fields as described with the command
+	 above.  */
+      if (nof == 3)
+	return true;
+
+      if (nof == 2)
+	{
+	  *minor = intermediate;
+	  return true;
+	}
+    }
+
+  static bool warning_printed = false;
+  /* Not recognized as Intel, let the user know.  */
+  if (!warning_printed)
+    {
+      warning (_("Could not recognize version of Intel Compiler in: \"%s\""),
+	       producer);
+      warning_printed = true;
+    }
+  return false;
+}
+
+#if defined GDB_SELF_TEST
+namespace selftests {
+namespace producer {
+
+static void
+producer_parsing_tests ()
+{
+  {
+    /* Check that we don't crash if "Version" is not found in what
+       looks like an ICC producer string.  */
+    static const char icc_no_version[] = "Intel(R) foo bar";
+
+    int major = 0, minor = 0;
+    SELF_CHECK (!producer_is_icc (icc_no_version, &major, &minor));
+    SELF_CHECK (!producer_is_gcc (icc_no_version, &major, &minor));
+  }
+
+  {
+    static const char extern_f_14_1[] = "\
+Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on \
+Intel(R) 64, \
+Version 14.0.1.074 Build 20130716";
+
+    int major = 0, minor = 0;
+    SELF_CHECK (producer_is_icc (extern_f_14_1, &major, &minor)
+		&& major == 14 && minor == 1);
+    SELF_CHECK (!producer_is_gcc (extern_f_14_1, &major, &minor));
+  }
+
+  {
+    static const char intern_f_14[] = "\
+Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on \
+Intel(R) 64, \
+Version 14.0";
+
+    int major = 0, minor = 0;
+    SELF_CHECK (producer_is_icc (intern_f_14, &major, &minor)
+		&& major == 14 && minor == 0);
+    SELF_CHECK (!producer_is_gcc (intern_f_14, &major, &minor));
+  }
+
+  {
+    static const char intern_c_14[] = "\
+Intel(R) C++ Intel(R) 64 Compiler XE for applications running on \
+Intel(R) 64, \
+Version 14.0";
+    int major = 0, minor = 0;
+    SELF_CHECK (producer_is_icc (intern_c_14, &major, &minor)
+		&& major == 14 && minor == 0);
+    SELF_CHECK (!producer_is_gcc (intern_c_14, &major, &minor));
+  }
+
+  {
+    static const char intern_c_18[] = "\
+Intel(R) C++ Intel(R) 64 Compiler for applications running on \
+Intel(R) 64, \
+Version 18.0 Beta";
+    int major = 0, minor = 0;
+    SELF_CHECK (producer_is_icc (intern_c_18, &major, &minor)
+		&& major == 18 && minor == 0);
+  }
+
+  {
+    static const char gnu[] = "GNU C 4.7.2";
+    SELF_CHECK (!producer_is_icc (gnu, NULL, NULL));
+
+    int major = 0, minor = 0;
+    SELF_CHECK (producer_is_gcc (gnu, &major, &minor)
+		&& major == 4 && minor == 7);
+  }
+
+  {
+    static const char gnu_exp[] = "GNU C++14 5.0.0 20150123 (experimental)";
+    int major = 0, minor = 0;
+    SELF_CHECK (!producer_is_icc (gnu_exp, NULL, NULL));
+    SELF_CHECK (producer_is_gcc (gnu_exp, &major, &minor)
+		&& major == 5 && minor == 0);
+  }
+}
+}
+}
+#endif
+
+void
+_initialize_producer ()
+{
+#if defined GDB_SELF_TEST
+  selftests::register_test
+    ("producer-parser", selftests::producer::producer_parsing_tests);
+#endif
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/producer.h ./gdb/producer.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/producer.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/producer.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,55 @@
+/* Producer string parsers for GDB.
+
+   Copyright (C) 2012-2018 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 PRODUCER_H
+#define PRODUCER_H
+
+/* Check for GCC >= 4.x according to the symtab->producer string.  Return minor
+   version (x) of 4.x in such case.  If it is not GCC or it is GCC older than
+   4.x return -1.  If it is GCC 5.x or higher return INT_MAX.  */
+extern int producer_is_gcc_ge_4 (const char *producer);
+
+/* Returns nonzero if the given PRODUCER string is GCC and sets the MAJOR
+   and MINOR versions when not NULL.  Returns zero if the given PRODUCER
+   is NULL or it isn't GCC.  */
+extern int producer_is_gcc (const char *producer, int *major, int *minor);
+
+/* Returns true if the given PRODUCER string is Intel or false
+   otherwise.  Sets the MAJOR and MINOR versions when not NULL.
+
+   Internal and external ICC versions have to be taken into account.
+   PRODUCER strings for internal releases are slightly different than
+   for public ones.  Internal releases have a major release number and
+   0 as minor release.  External releases have 4 fields, 3 of them are
+   not 0 and only two are of interest, major and update.
+
+   Examples are:
+
+     Public release:
+       "Intel(R) Fortran Intel(R) 64 Compiler XE for applications
+        running on Intel(R) 64, Version 14.0.1.074 Build 20130716";
+        "Intel(R) C++ Intel(R) 64 Compiler XE for applications
+        running on Intel(R) 64, Version 14.0.1.074 Build 20130716";
+
+    Internal releases:
+      "Intel(R) C++ Intel(R) 64 Compiler for applications
+       running on Intel(R) 64, Version 18.0 Beta ....".  */
+extern bool producer_is_icc (const char *producer, int *major, int *minor);
+
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/progspace-and-thread.c ./gdb/progspace-and-thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/progspace-and-thread.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/progspace-and-thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,43 @@
+/* Copyright (C) 2009-2018 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 "defs.h"
+#include "progspace-and-thread.h"
+
+/* See progspace-and-thread.h  */
+
+void
+switch_to_program_space_and_thread (program_space *pspace)
+{
+  inferior *inf = find_inferior_for_program_space (pspace);
+
+  if (inf != NULL && inf->pid != 0)
+    {
+      thread_info *tp = any_live_thread_of_process (inf->pid);
+
+      if (tp != NULL)
+	{
+	  switch_to_thread (tp->ptid);
+	  /* Switching thread switches pspace implicitly.  We're
+	     done.  */
+	  return;
+	}
+    }
+
+  switch_to_thread (null_ptid);
+  set_current_program_space (pspace);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/progspace-and-thread.h ./gdb/progspace-and-thread.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/progspace-and-thread.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/progspace-and-thread.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,40 @@
+/* Copyright (C) 2009-2018 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 PROGSPACE_AND_THREAD_H
+#define PROGSPACE_AND_THREAD_H
+
+#include "progspace.h"
+#include "gdbthread.h"
+
+/* Save/restore the current program space, thread, inferior and frame.
+   Use this when you need to call
+   switch_to_program_space_and_thread.  */
+
+class scoped_restore_current_pspace_and_thread
+{
+  scoped_restore_current_program_space m_restore_pspace;
+  scoped_restore_current_thread m_restore_thread;
+};
+
+/* Switches full context to program space PSPACE.  Switches to the
+   first thread found bound to PSPACE, giving preference to the
+   current thread, if there's one and it isn't executing.  */
+void switch_to_program_space_and_thread (program_space *pspace);
+
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/progspace.c ./gdb/progspace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/progspace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/progspace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Program and address space management, for GDB, the GNU debugger.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -44,18 +44,6 @@ static int highest_address_space_num;
 
 DEFINE_REGISTRY (program_space, REGISTRY_ACCESS_FIELD)
 
-/* An address space.  It is used for comparing if pspaces/inferior/threads
-   see the same address space and for associating caches to each address
-   space.  */
-
-struct address_space
-{
-  int num;
-
-  /* Per aspace data-pointers required by other GDB modules.  */
-  REGISTRY_FIELDS;
-};
-
 /* Keep a registry of per-address_space data-pointers required by other GDB
    modules.  */
 
@@ -156,10 +144,10 @@ add_program_space (struct address_space 
 static void
 release_program_space (struct program_space *pspace)
 {
-  struct cleanup *old_chain = save_current_program_space ();
-
   gdb_assert (pspace != current_program_space);
 
+  scoped_restore_current_program_space restore_pspace;
+
   set_current_program_space (pspace);
 
   breakpoint_program_space_exit (pspace);
@@ -173,8 +161,6 @@ release_program_space (struct program_sp
     /* Discard any data modules have associated with the PSPACE.  */
   program_space_free_data (pspace);
   xfree (pspace);
-
-  do_cleanups (old_chain);
 }
 
 /* Copies program space SRC to DEST.  Copies the main executable file,
@@ -183,9 +169,7 @@ release_program_space (struct program_sp
 struct program_space *
 clone_program_space (struct program_space *dest, struct program_space *src)
 {
-  struct cleanup *old_chain;
-
-  old_chain = save_current_program_space ();
+  scoped_restore_current_program_space restore_pspace;
 
   set_current_program_space (dest);
 
@@ -195,7 +179,6 @@ clone_program_space (struct program_spac
   if (src->symfile_object_file != NULL)
     symbol_file_add_main (objfile_name (src->symfile_object_file), 0);
 
-  do_cleanups (old_chain);
   return dest;
 }
 
@@ -217,30 +200,6 @@ set_current_program_space (struct progra
   reinit_frame_cache ();
 }
 
-/* A cleanups callback, helper for save_current_program_space
-   below.  */
-
-static void
-restore_program_space (void *arg)
-{
-  struct program_space *saved_pspace = (struct program_space *) arg;
-
-  set_current_program_space (saved_pspace);
-}
-
-/* Save the current program space so that it may be restored by a later
-   call to do_cleanups.  Returns the struct cleanup pointer needed for
-   later doing the cleanup.  */
-
-struct cleanup *
-save_current_program_space (void)
-{
-  struct cleanup *old_chain = make_cleanup (restore_program_space,
-					    current_program_space);
-
-  return old_chain;
-}
-
 /* Returns true iff there's no inferior bound to PSPACE.  */
 
 int
@@ -288,7 +247,6 @@ print_program_space (struct ui_out *uiou
 {
   struct program_space *pspace;
   int count = 0;
-  struct cleanup *old_chain;
 
   /* Compute number of pspaces we will print.  */
   ALL_PSPACES (pspace)
@@ -302,7 +260,7 @@ print_program_space (struct ui_out *uiou
   /* There should always be at least one.  */
   gdb_assert (count > 0);
 
-  old_chain = make_cleanup_ui_out_table_begin_end (uiout, 3, count, "pspaces");
+  ui_out_emit_table table_emitter (uiout, 3, count, "pspaces");
   uiout->table_header (1, ui_left, "current", "");
   uiout->table_header (4, ui_left, "id", "Id");
   uiout->table_header (17, ui_left, "exec", "Executable");
@@ -310,14 +268,13 @@ print_program_space (struct ui_out *uiou
 
   ALL_PSPACES (pspace)
     {
-      struct cleanup *chain2;
       struct inferior *inf;
       int printed_header;
 
       if (requested != -1 && requested != pspace->num)
 	continue;
 
-      chain2 = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+      ui_out_emit_tuple tuple_emitter (uiout, NULL);
 
       if (pspace == current_program_space)
 	uiout->field_string ("current", "*");
@@ -354,10 +311,7 @@ print_program_space (struct ui_out *uiou
 	  }
 
       uiout->text ("\n");
-      do_cleanups (chain2);
     }
-
-  do_cleanups (old_chain);
 }
 
 /* Boolean test for an already-known program space id.  */
@@ -379,7 +333,7 @@ valid_program_space_id (int num)
    indicating which the program space to print information about.  */
 
 static void
-maintenance_info_program_spaces_command (char *args, int from_tty)
+maintenance_info_program_spaces_command (const char *args, int from_tty)
 {
   int requested = -1;
 
@@ -449,51 +403,6 @@ update_address_spaces (void)
       inf->aspace = inf->pspace->aspace;
 }
 
-/* Save the current program space so that it may be restored by a later
-   call to do_cleanups.  Returns the struct cleanup pointer needed for
-   later doing the cleanup.  */
-
-struct cleanup *
-save_current_space_and_thread (void)
-{
-  struct cleanup *old_chain;
-
-  /* If restoring to null thread, we need to restore the pspace as
-     well, hence, we need to save the current program space first.  */
-  old_chain = save_current_program_space ();
-  /* There's no need to save the current inferior here.
-     That is handled by make_cleanup_restore_current_thread.  */
-  make_cleanup_restore_current_thread ();
-
-  return old_chain;
-}
-
-/* See progspace.h  */
-
-void
-switch_to_program_space_and_thread (struct program_space *pspace)
-{
-  struct inferior *inf;
-
-  inf = find_inferior_for_program_space (pspace);
-  if (inf != NULL && inf->pid != 0)
-    {
-      struct thread_info *tp;
-
-      tp = any_live_thread_of_process (inf->pid);
-      if (tp != NULL)
-	{
-	  switch_to_thread (tp->ptid);
-	  /* Switching thread switches pspace implicitly.  We're
-	     done.  */
-	  return;
-	}
-    }
-
-  switch_to_thread (null_ptid);
-  set_current_program_space (pspace);
-}
-
 
 
 /* See progspace.h.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/progspace.h ./gdb/progspace.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/progspace.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/progspace.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Program and address space management, for GDB, the GNU debugger.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -210,6 +210,17 @@ struct program_space
     REGISTRY_FIELDS;
   };
 
+/* An address space.  It is used for comparing if
+   pspaces/inferior/threads see the same address space and for
+   associating caches to each address space.  */
+struct address_space
+{
+  int num;
+
+  /* Per aspace data-pointers required by other GDB modules.  */
+  REGISTRY_FIELDS;
+};
+
 /* The object file that the main symbol table was loaded from (e.g. the
    argument to the "symbol-file" or "file" command).  */
 
@@ -251,11 +262,6 @@ extern int program_space_empty_p (struct
 extern struct program_space *clone_program_space (struct program_space *dest,
 						struct program_space *src);
 
-/* Save the current program space so that it may be restored by a later
-   call to do_cleanups.  Returns the struct cleanup pointer needed for
-   later doing the cleanup.  */
-extern struct cleanup *save_current_program_space (void);
-
 /* Sets PSPACE as the current program space.  This is usually used
    instead of set_current_space_and_thread when the current
    thread/inferior is not important for the operations that follow.
@@ -266,14 +272,23 @@ extern struct cleanup *save_current_prog
    space.  */
 extern void set_current_program_space (struct program_space *pspace);
 
-/* Saves the current thread (may be null), frame and program space in
-   the current cleanup chain.  */
-extern struct cleanup *save_current_space_and_thread (void);
-
-/* Switches full context to program space PSPACE.  Switches to the
-   first thread found bound to PSPACE, giving preference to the
-   current thread, if there's one and it isn't executing.  */
-extern void switch_to_program_space_and_thread (struct program_space *pspace);
+/* Save/restore the current program space.  */
+
+class scoped_restore_current_program_space
+{
+public:
+  scoped_restore_current_program_space ()
+    : m_saved_pspace (current_program_space)
+  {}
+
+  ~scoped_restore_current_program_space ()
+  { set_current_program_space (m_saved_pspace); }
+
+  DISABLE_COPY_AND_ASSIGN (scoped_restore_current_program_space);
+
+private:
+  program_space *m_saved_pspace;
+};
 
 /* Create a new address space object, and add it to the list.  */
 extern struct address_space *new_address_space (void);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/prologue-value.c ./gdb/prologue-value.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/prologue-value.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/prologue-value.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Prologue value handling for GDB.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -278,7 +278,7 @@ pv_is_array_ref (pv_t addr, CORE_ADDR si
    The entry with the lowest offset simply follows the entry with the
    highest offset.  Entries may abut, but never overlap.  The area's
    'entry' pointer points to an arbitrary node in the ring.  */
-struct area_entry
+struct pv_area::area_entry
 {
   /* Links in the doubly-linked ring.  */
   struct area_entry *prev, *next;
@@ -296,44 +296,23 @@ struct area_entry
 };
 
 
-struct pv_area
-{
-  /* This area's base register.  */
-  int base_reg;
-
-  /* The mask to apply to addresses, to make the wrap-around happen at
-     the right place.  */
-  CORE_ADDR addr_mask;
-
-  /* An element of the doubly-linked ring of entries, or zero if we
-     have none.  */
-  struct area_entry *entry;
-};
-
+/* See prologue-value.h.  */
 
-struct pv_area *
-make_pv_area (int base_reg, int addr_bit)
+pv_area::pv_area (int base_reg, int addr_bit)
+  : m_base_reg (base_reg),
+    /* Remember that shift amounts equal to the type's width are
+       undefined.  */
+    m_addr_mask (((((CORE_ADDR) 1 << (addr_bit - 1)) - 1) << 1) | 1),
+    m_entry (nullptr)
 {
-  struct pv_area *a = XNEW (struct pv_area);
-
-  memset (a, 0, sizeof (*a));
-
-  a->base_reg = base_reg;
-  a->entry = 0;
-
-  /* Remember that shift amounts equal to the type's width are
-     undefined.  */
-  a->addr_mask = ((((CORE_ADDR) 1 << (addr_bit - 1)) - 1) << 1) | 1;
-
-  return a;
 }
 
+/* See prologue-value.h.  */
 
-/* Delete all entries from AREA.  */
-static void
-clear_entries (struct pv_area *area)
+void
+pv_area::clear_entries ()
 {
-  struct area_entry *e = area->entry;
+  struct area_entry *e = m_entry;
 
   if (e)
     {
@@ -347,37 +326,23 @@ clear_entries (struct pv_area *area)
           xfree (e);
           e = next;
         }
-      while (e != area->entry);
+      while (e != m_entry);
 
-      area->entry = 0;
+      m_entry = 0;
     }
 }
 
 
-void
-free_pv_area (struct pv_area *area)
-{
-  clear_entries (area);
-  xfree (area);
-}
-
-
-static void
-do_free_pv_area_cleanup (void *arg)
+pv_area::~pv_area ()
 {
-  free_pv_area ((struct pv_area *) arg);
+  clear_entries ();
 }
 
 
-struct cleanup *
-make_cleanup_free_pv_area (struct pv_area *area)
-{
-  return make_cleanup (do_free_pv_area_cleanup, (void *) area);
-}
+/* See prologue-value.h.  */
 
-
-int
-pv_area_store_would_trash (struct pv_area *area, pv_t addr)
+bool
+pv_area::store_would_trash (pv_t addr)
 {
   /* It may seem odd that pvk_constant appears here --- after all,
      that's the case where we know the most about the address!  But
@@ -386,23 +351,16 @@ pv_area_store_would_trash (struct pv_are
      constants.  */
   return (addr.kind == pvk_unknown
           || addr.kind == pvk_constant
-          || (addr.kind == pvk_register && addr.reg != area->base_reg));
+          || (addr.kind == pvk_register && addr.reg != m_base_reg));
 }
 
 
-/* Return a pointer to the first entry we hit in AREA starting at
-   OFFSET and going forward.
-
-   This may return zero, if AREA has no entries.
+/* See prologue-value.h.  */
 
-   And since the entries are a ring, this may return an entry that
-   entirely precedes OFFSET.  This is the correct behavior: depending
-   on the sizes involved, we could still overlap such an area, with
-   wrap-around.  */
-static struct area_entry *
-find_entry (struct pv_area *area, CORE_ADDR offset)
+struct pv_area::area_entry *
+pv_area::find_entry (CORE_ADDR offset)
 {
-  struct area_entry *e = area->entry;
+  struct area_entry *e = m_entry;
 
   if (! e)
     return 0;
@@ -416,54 +374,50 @@ find_entry (struct pv_area *area, CORE_A
      with wrap-around.  We have to subtract offset from both sides to
      make sure both things we're comparing are on the same side of the
      discontinuity.  */
-  while (((e->next->offset - offset) & area->addr_mask)
-         < ((e->offset - offset) & area->addr_mask))
+  while (((e->next->offset - offset) & m_addr_mask)
+         < ((e->offset - offset) & m_addr_mask))
     e = e->next;
 
   /* If the previous entry would be better than the current one, then
      scan backwards.  */
-  while (((e->prev->offset - offset) & area->addr_mask)
-         < ((e->offset - offset) & area->addr_mask))
+  while (((e->prev->offset - offset) & m_addr_mask)
+         < ((e->offset - offset) & m_addr_mask))
     e = e->prev;
 
   /* In case there's some locality to the searches, set the area's
      pointer to the entry we've found.  */
-  area->entry = e;
+  m_entry = e;
 
   return e;
 }
 
 
-/* Return non-zero if the SIZE bytes at OFFSET would overlap ENTRY;
-   return zero otherwise.  AREA is the area to which ENTRY belongs.  */
-static int
-overlaps (struct pv_area *area,
-          struct area_entry *entry,
-          CORE_ADDR offset,
-          CORE_ADDR size)
+/* See prologue-value.h.  */
+
+int
+pv_area::overlaps (struct area_entry *entry, CORE_ADDR offset, CORE_ADDR size)
 {
   /* Think carefully about wrap-around before simplifying this.  */
-  return (((entry->offset - offset) & area->addr_mask) < size
-          || ((offset - entry->offset) & area->addr_mask) < entry->size);
+  return (((entry->offset - offset) & m_addr_mask) < size
+          || ((offset - entry->offset) & m_addr_mask) < entry->size);
 }
 
 
+/* See prologue-value.h.  */
+
 void
-pv_area_store (struct pv_area *area,
-               pv_t addr,
-               CORE_ADDR size,
-               pv_t value)
+pv_area::store (pv_t addr, CORE_ADDR size, pv_t value)
 {
   /* Remove any (potentially) overlapping entries.  */
-  if (pv_area_store_would_trash (area, addr))
-    clear_entries (area);
+  if (store_would_trash (addr))
+    clear_entries ();
   else
     {
       CORE_ADDR offset = addr.k;
-      struct area_entry *e = find_entry (area, offset);
+      struct area_entry *e = find_entry (offset);
 
       /* Delete all entries that we would overlap.  */
-      while (e && overlaps (area, e, offset, size))
+      while (e && overlaps (e, offset, size))
         {
           struct area_entry *next = (e->next == e) ? 0 : e->next;
 
@@ -476,10 +430,10 @@ pv_area_store (struct pv_area *area,
 
       /* Move the area's pointer to the next remaining entry.  This
          will also zero the pointer if we've deleted all the entries.  */
-      area->entry = e;
+      m_entry = e;
     }
 
-  /* Now, there are no entries overlapping us, and area->entry is
+  /* Now, there are no entries overlapping us, and m_entry is
      either zero or pointing at the closest entry after us.  We can
      just insert ourselves before that.
 
@@ -496,33 +450,35 @@ pv_area_store (struct pv_area *area,
       e->size = size;
       e->value = value;
 
-      if (area->entry)
+      if (m_entry)
         {
-          e->prev = area->entry->prev;
-          e->next = area->entry;
+          e->prev = m_entry->prev;
+          e->next = m_entry;
           e->prev->next = e->next->prev = e;
         }
       else
         {
           e->prev = e->next = e;
-          area->entry = e;
+          m_entry = e;
         }
     }
 }
 
 
+/* See prologue-value.h.  */
+
 pv_t
-pv_area_fetch (struct pv_area *area, pv_t addr, CORE_ADDR size)
+pv_area::fetch (pv_t addr, CORE_ADDR size)
 {
   /* If we have no entries, or we can't decide how ADDR relates to the
      entries we do have, then the value is unknown.  */
-  if (! area->entry
-      || pv_area_store_would_trash (area, addr))
+  if (! m_entry
+      || store_would_trash (addr))
     return pv_unknown ();
   else
     {
       CORE_ADDR offset = addr.k;
-      struct area_entry *e = find_entry (area, offset);
+      struct area_entry *e = find_entry (offset);
 
       /* If this entry exactly matches what we're looking for, then
          we're set.  Otherwise, say it's unknown.  */
@@ -534,13 +490,12 @@ pv_area_fetch (struct pv_area *area, pv_
 }
 
 
-int
-pv_area_find_reg (struct pv_area *area,
-                  struct gdbarch *gdbarch,
-                  int reg,
-                  CORE_ADDR *offset_p)
+/* See prologue-value.h.  */
+
+bool
+pv_area::find_reg (struct gdbarch *gdbarch, int reg, CORE_ADDR *offset_p)
 {
-  struct area_entry *e = area->entry;
+  struct area_entry *e = m_entry;
 
   if (e)
     do
@@ -552,30 +507,31 @@ pv_area_find_reg (struct pv_area *area,
           {
             if (offset_p)
               *offset_p = e->offset;
-            return 1;
+            return true;
           }
 
         e = e->next;
       }
-    while (e != area->entry);
+    while (e != m_entry);
 
-  return 0;
+  return false;
 }
 
 
+/* See prologue-value.h.  */
+
 void
-pv_area_scan (struct pv_area *area,
-              void (*func) (void *closure,
-                            pv_t addr,
-                            CORE_ADDR size,
-                            pv_t value),
-              void *closure)
+pv_area::scan (void (*func) (void *closure,
+			     pv_t addr,
+			     CORE_ADDR size,
+			     pv_t value),
+	       void *closure)
 {
-  struct area_entry *e = area->entry;
+  struct area_entry *e = m_entry;
   pv_t addr;
 
   addr.kind = pvk_register;
-  addr.reg = area->base_reg;
+  addr.reg = m_base_reg;
 
   if (e)
     do
@@ -584,5 +540,5 @@ pv_area_scan (struct pv_area *area,
         func (closure, addr, e->size, e->value);
         e = e->next;
       }
-    while (e != area->entry);
+    while (e != m_entry);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/prologue-value.h ./gdb/prologue-value.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/prologue-value.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/prologue-value.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Interface to prologue value handling for GDB.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -221,83 +221,110 @@ enum pv_boolean pv_is_array_ref (pv_t ad
                                  int *i);
 
 
-/* A 'struct pv_area' keeps track of values stored in a particular
-   region of memory.  */
-struct pv_area;
-
-/* Create a new area, tracking stores relative to the original value
-   of BASE_REG.  If BASE_REG is SP, then this effectively records the
-   contents of the stack frame: the original value of the SP is the
-   frame's CFA, or some constant offset from it.
-
-   Stores to constant addresses, unknown addresses, or to addresses
-   relative to registers other than BASE_REG will trash this area; see
-   pv_area_store_would_trash.
-
-   To check whether a pointer refers to this area, only the low
-   ADDR_BIT bits will be compared.  */
-struct pv_area *make_pv_area (int base_reg, int addr_bit);
-
-/* Free AREA.  */
-void free_pv_area (struct pv_area *area);
-
-
-/* Register a cleanup to free AREA.  */
-struct cleanup *make_cleanup_free_pv_area (struct pv_area *area);
-
-
-/* Store the SIZE-byte value VALUE at ADDR in AREA.
-
-   If ADDR is not relative to the same base register we used in
-   creating AREA, then we can't tell which values here the stored
-   value might overlap, and we'll have to mark everything as
-   unknown.  */
-void pv_area_store (struct pv_area *area,
-                    pv_t addr,
-                    CORE_ADDR size,
-                    pv_t value);
-
-/* Return the SIZE-byte value at ADDR in AREA.  This may return
-   pv_unknown ().  */
-pv_t pv_area_fetch (struct pv_area *area, pv_t addr, CORE_ADDR size);
-
-/* Return true if storing to address ADDR in AREA would force us to
-   mark the contents of the entire area as unknown.  This could happen
-   if, say, ADDR is unknown, since we could be storing anywhere.  Or,
-   it could happen if ADDR is relative to a different register than
-   the other stores base register, since we don't know the relative
-   values of the two registers.
-
-   If you've reached such a store, it may be better to simply stop the
-   prologue analysis, and return the information you've gathered,
-   instead of losing all that information, most of which is probably
-   okay.  */
-int pv_area_store_would_trash (struct pv_area *area, pv_t addr);
-
-
-/* Search AREA for the original value of REGISTER.  If we can't find
-   it, return zero; if we can find it, return a non-zero value, and if
-   OFFSET_P is non-zero, set *OFFSET_P to the register's offset within
-   AREA.  GDBARCH is the architecture of which REGISTER is a member.
-
-   In the worst case, this takes time proportional to the number of
-   items stored in AREA.  If you plan to gather a lot of information
-   about registers saved in AREA, consider calling pv_area_scan
-   instead, and collecting all your information in one pass.  */
-int pv_area_find_reg (struct pv_area *area,
-                      struct gdbarch *gdbarch,
-                      int reg,
-                      CORE_ADDR *offset_p);
-
-
-/* For every part of AREA whose value we know, apply FUNC to CLOSURE,
-   the value's address, its size, and the value itself.  */
-void pv_area_scan (struct pv_area *area,
-                   void (*func) (void *closure,
-                                 pv_t addr,
-                                 CORE_ADDR size,
-                                 pv_t value),
-                   void *closure);
+/* A 'pv_area' keeps track of values stored in a particular region of
+   memory.  */
+class pv_area
+{
+public:
 
+  /* Create a new area, tracking stores relative to the original value
+     of BASE_REG.  If BASE_REG is SP, then this effectively records the
+     contents of the stack frame: the original value of the SP is the
+     frame's CFA, or some constant offset from it.
+
+     Stores to constant addresses, unknown addresses, or to addresses
+     relative to registers other than BASE_REG will trash this area; see
+     pv_area::store_would_trash.
+
+     To check whether a pointer refers to this area, only the low
+     ADDR_BIT bits will be compared.  */
+  pv_area (int base_reg, int addr_bit);
+
+  ~pv_area ();
+
+  DISABLE_COPY_AND_ASSIGN (pv_area);
+
+  /* Store the SIZE-byte value VALUE at ADDR in AREA.
+
+     If ADDR is not relative to the same base register we used in
+     creating AREA, then we can't tell which values here the stored
+     value might overlap, and we'll have to mark everything as
+     unknown.  */
+  void store (pv_t addr,
+	      CORE_ADDR size,
+	      pv_t value);
+
+  /* Return the SIZE-byte value at ADDR in AREA.  This may return
+     pv_unknown ().  */
+  pv_t fetch (pv_t addr, CORE_ADDR size);
+
+  /* Return true if storing to address ADDR in AREA would force us to
+     mark the contents of the entire area as unknown.  This could happen
+     if, say, ADDR is unknown, since we could be storing anywhere.  Or,
+     it could happen if ADDR is relative to a different register than
+     the other stores base register, since we don't know the relative
+     values of the two registers.
+
+     If you've reached such a store, it may be better to simply stop the
+     prologue analysis, and return the information you've gathered,
+     instead of losing all that information, most of which is probably
+     okay.  */
+  bool store_would_trash (pv_t addr);
+
+  /* Search AREA for the original value of REGISTER.  If we can't find
+     it, return zero; if we can find it, return a non-zero value, and if
+     OFFSET_P is non-zero, set *OFFSET_P to the register's offset within
+     AREA.  GDBARCH is the architecture of which REGISTER is a member.
+
+     In the worst case, this takes time proportional to the number of
+     items stored in AREA.  If you plan to gather a lot of information
+     about registers saved in AREA, consider calling pv_area::scan
+     instead, and collecting all your information in one pass.  */
+  bool find_reg (struct gdbarch *gdbarch, int reg, CORE_ADDR *offset_p);
+
+
+  /* For every part of AREA whose value we know, apply FUNC to CLOSURE,
+     the value's address, its size, and the value itself.  */
+  void scan (void (*func) (void *closure,
+			   pv_t addr,
+			   CORE_ADDR size,
+			   pv_t value),
+	     void *closure);
+
+private:
+
+  struct area_entry;
+
+  /* Delete all entries from AREA.  */
+  void clear_entries ();
+
+  /* Return a pointer to the first entry we hit in AREA starting at
+     OFFSET and going forward.
+
+     This may return zero, if AREA has no entries.
+
+     And since the entries are a ring, this may return an entry that
+     entirely precedes OFFSET.  This is the correct behavior: depending
+     on the sizes involved, we could still overlap such an area, with
+     wrap-around.  */
+  struct area_entry *find_entry (CORE_ADDR offset);
+
+  /* Return non-zero if the SIZE bytes at OFFSET would overlap ENTRY;
+     return zero otherwise.  AREA is the area to which ENTRY belongs.  */
+  int overlaps (struct area_entry *entry,
+		CORE_ADDR offset,
+		CORE_ADDR size);
+
+  /* This area's base register.  */
+  int m_base_reg;
+
+  /* The mask to apply to addresses, to make the wrap-around happen at
+     the right place.  */
+  CORE_ADDR m_addr_mask;
+
+  /* An element of the doubly-linked ring of entries, or zero if we
+     have none.  */
+  struct area_entry *m_entry;
+};
 
 #endif /* PROLOGUE_VALUE_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/psympriv.h ./gdb/psympriv.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/psympriv.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/psympriv.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Private partial symbol table definitions.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -23,8 +23,6 @@
 #include "psymtab.h"
 #include "objfiles.h"
 
-struct psymbol_allocation_list;
-
 /* A partial_symbol records the name, domain, and address class of
    symbols whose types we have not parsed yet.  For functions, it also
    contains their memory address, so we can find them from a PC value.
@@ -202,12 +200,12 @@ struct partial_symtab
   void *read_symtab_private;
 };
 
-/* Add any kind of symbol to a psymbol_allocation_list.  */
+/* Add any kind of symbol to a partial_symbol vector.  */
 
 extern void add_psymbol_to_list (const char *, int,
 				 int, domain_enum,
 				 enum address_class,
-				 struct psymbol_allocation_list *,
+				 std::vector<partial_symbol *> *,
 				 CORE_ADDR,
 				 enum language, struct objfile *);
 
@@ -215,8 +213,8 @@ extern void init_psymbol_list (struct ob
 
 extern struct partial_symtab *start_psymtab_common (struct objfile *,
 						    const char *, CORE_ADDR,
-						    struct partial_symbol **,
-						    struct partial_symbol **);
+						    std::vector<partial_symbol *> &,
+						    std::vector<partial_symbol *> &);
 
 extern void end_psymtab_common (struct objfile *, struct partial_symtab *);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/psymtab.c ./gdb/psymtab.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/psymtab.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/psymtab.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Partial symbol tables.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -35,6 +35,8 @@
 #include "language.h"
 #include "cp-support.h"
 #include "gdbcmd.h"
+#include <algorithm>
+#include <set>
 
 struct psymbol_bcache
 {
@@ -45,7 +47,7 @@ static struct partial_symbol *match_part
 						    struct partial_symtab *,
 						    int,
 						    const char *, domain_enum,
-						    symbol_compare_ftype *,
+						    symbol_name_match_type,
 						    symbol_compare_ftype *);
 
 static struct partial_symbol *lookup_partial_symbol (struct objfile *,
@@ -85,6 +87,12 @@ require_partial_symbols (struct objfile 
 	      gdb_flush (gdb_stdout);
 	    }
 	  (*objfile->sf->sym_read_psymbols) (objfile);
+
+	  /* Partial symbols list are not expected to changed after this
+	     point.  */
+	  objfile->global_psymbols.shrink_to_fit ();
+	  objfile->static_psymbols.shrink_to_fit ();
+
 	  if (verbose)
 	    {
 	      if (!objfile_has_symbols (objfile))
@@ -402,7 +410,7 @@ find_pc_sect_psymbol (struct objfile *ob
 		      struct partial_symtab *psymtab, CORE_ADDR pc,
 		      struct obj_section *section)
 {
-  struct partial_symbol *best = NULL, *p, **pp;
+  struct partial_symbol *best = NULL;
   CORE_ADDR best_pc;
 
   gdb_assert (psymtab != NULL);
@@ -413,12 +421,10 @@ find_pc_sect_psymbol (struct objfile *ob
   /* Search the global symbols as well as the static symbols, so that
      find_pc_partial_function doesn't use a minimal symbol and thus
      cache a bad endaddr.  */
-  for (pp = objfile->global_psymbols.list + psymtab->globals_offset;
-       (pp - (objfile->global_psymbols.list + psymtab->globals_offset)
-	< psymtab->n_global_syms);
-       pp++)
+  for (int i = 0; i < psymtab->n_global_syms; i++)
     {
-      p = *pp;
+      partial_symbol *p = objfile->global_psymbols[psymtab->globals_offset + i];
+
       if (SYMBOL_DOMAIN (p) == VAR_DOMAIN
 	  && PSYMBOL_CLASS (p) == LOC_BLOCK
 	  && pc >= SYMBOL_VALUE_ADDRESS (p)
@@ -438,12 +444,10 @@ find_pc_sect_psymbol (struct objfile *ob
 	}
     }
 
-  for (pp = objfile->static_psymbols.list + psymtab->statics_offset;
-       (pp - (objfile->static_psymbols.list + psymtab->statics_offset)
-	< psymtab->n_static_syms);
-       pp++)
+  for (int i = 0; i < psymtab->n_static_syms; i++)
     {
-      p = *pp;
+      partial_symbol *p = objfile->static_psymbols[psymtab->statics_offset + i];
+
       if (SYMBOL_DOMAIN (p) == VAR_DOMAIN
 	  && PSYMBOL_CLASS (p) == LOC_BLOCK
 	  && pc >= SYMBOL_VALUE_ADDRESS (p)
@@ -507,6 +511,8 @@ psym_lookup_symbol (struct objfile *objf
   const int psymtab_index = (block_index == GLOBAL_BLOCK ? 1 : 0);
   struct compunit_symtab *stab_best = NULL;
 
+  lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
+
   ALL_OBJFILE_PSYMTABS_REQUIRED (objfile, ps)
   {
     if (!ps->readin && lookup_partial_symbol (objfile, ps, name,
@@ -529,10 +535,10 @@ psym_lookup_symbol (struct objfile *objf
 	   information (but NAME might contain it).  */
 
 	if (sym != NULL
-	    && strcmp_iw (SYMBOL_SEARCH_NAME (sym), name) == 0)
+	    && SYMBOL_MATCHES_SEARCH_NAME (sym, lookup_name))
 	  return stab;
 	if (with_opaque != NULL
-	    && strcmp_iw (SYMBOL_SEARCH_NAME (with_opaque), name) == 0)
+	    && SYMBOL_MATCHES_SEARCH_NAME (with_opaque, lookup_name))
 	  stab_best = stab;
 
 	/* Keep looking through other psymtabs.  */
@@ -542,6 +548,18 @@ psym_lookup_symbol (struct objfile *objf
   return stab_best;
 }
 
+/* Returns true if PSYM matches LOOKUP_NAME.  */
+
+static bool
+psymbol_name_matches (partial_symbol *psym,
+		      const lookup_name_info &lookup_name)
+{
+  const language_defn *lang = language_def (SYMBOL_LANGUAGE (psym));
+  symbol_name_matcher_ftype *name_match
+    = language_get_symbol_name_matcher (lang, lookup_name);
+  return name_match (SYMBOL_SEARCH_NAME (psym), lookup_name, NULL);
+}
+
 /* Look in PST for a symbol in DOMAIN whose name matches NAME.  Search
    the global block of PST if GLOBAL, and otherwise the static block.
    MATCH is the comparison operation that returns true iff MATCH (s,
@@ -554,7 +572,7 @@ static struct partial_symbol *
 match_partial_symbol (struct objfile *objfile,
 		      struct partial_symtab *pst, int global,
 		      const char *name, domain_enum domain,
-		      symbol_compare_ftype *match,
+		      symbol_name_match_type match_type,
 		      symbol_compare_ftype *ordered_compare)
 {
   struct partial_symbol **start, **psym;
@@ -563,10 +581,13 @@ match_partial_symbol (struct objfile *ob
   int do_linear_search = 1;
 
   if (length == 0)
-      return NULL;
+    return NULL;
+
+  lookup_name_info lookup_name (name, match_type);
+
   start = (global ?
-	   objfile->global_psymbols.list + pst->globals_offset :
-	   objfile->static_psymbols.list + pst->statics_offset);
+	   &objfile->global_psymbols[pst->globals_offset] :
+	   &objfile->static_psymbols[pst->statics_offset]);
 
   if (global && ordered_compare)  /* Can use a binary search.  */
     {
@@ -585,7 +606,12 @@ match_partial_symbol (struct objfile *ob
 	{
 	  center = bottom + (top - bottom) / 2;
 	  gdb_assert (center < top);
-	  if (ordered_compare (SYMBOL_SEARCH_NAME (*center), name) >= 0)
+
+	  enum language lang = SYMBOL_LANGUAGE (*center);
+	  const char *lang_ln
+	    = lookup_name.language_lookup_name (lang).c_str ();
+
+	  if (ordered_compare (SYMBOL_SEARCH_NAME (*center), lang_ln) >= 0)
 	    top = center;
 	  else
 	    bottom = center + 1;
@@ -593,7 +619,7 @@ match_partial_symbol (struct objfile *ob
       gdb_assert (top == bottom);
 
       while (top <= real_top
-	     && match (SYMBOL_SEARCH_NAME (*top), name) == 0)
+	     && psymbol_name_matches (*top, lookup_name))
 	{
 	  if (symbol_matches_domain (SYMBOL_LANGUAGE (*top),
 				     SYMBOL_DOMAIN (*top), domain))
@@ -611,7 +637,7 @@ match_partial_symbol (struct objfile *ob
 	{
 	  if (symbol_matches_domain (SYMBOL_LANGUAGE (*psym),
 				     SYMBOL_DOMAIN (*psym), domain)
-	      && match (SYMBOL_SEARCH_NAME (*psym), name) == 0)
+	      && psymbol_name_matches (*psym, lookup_name))
 	    return *psym;
 	}
     }
@@ -623,11 +649,9 @@ match_partial_symbol (struct objfile *ob
    not contain any method/function instance information (since this would
    force reading type information while reading psymtabs).  Therefore,
    if NAME contains overload information, it must be stripped before searching
-   psymtabs.
-
-   The caller is responsible for freeing the return result.  */
+   psymtabs.  */
 
-static char *
+static gdb::unique_xmalloc_ptr<char>
 psymtab_search_name (const char *name)
 {
   switch (current_language->la_language)
@@ -636,7 +660,7 @@ psymtab_search_name (const char *name)
       {
 	if (strchr (name, '('))
 	  {
-	    char *ret = cp_remove_params (name);
+	    gdb::unique_xmalloc_ptr<char> ret = cp_remove_params (name);
 
 	    if (ret)
 	      return ret;
@@ -648,7 +672,7 @@ psymtab_search_name (const char *name)
       break;
     }
 
-  return xstrdup (name);
+  return gdb::unique_xmalloc_ptr<char> (xstrdup (name));
 }
 
 /* Look, in partial_symtab PST, for symbol whose natural name is NAME.
@@ -663,17 +687,17 @@ lookup_partial_symbol (struct objfile *o
   struct partial_symbol **top, **real_top, **bottom, **center;
   int length = (global ? pst->n_global_syms : pst->n_static_syms);
   int do_linear_search = 1;
-  char *search_name;
-  struct cleanup *cleanup;
 
   if (length == 0)
     return NULL;
 
-  search_name = psymtab_search_name (name);
-  cleanup = make_cleanup (xfree, search_name);
+  gdb::unique_xmalloc_ptr<char> search_name = psymtab_search_name (name);
+
+  lookup_name_info lookup_name (search_name.get (), symbol_name_match_type::FULL);
+
   start = (global ?
-	   objfile->global_psymbols.list + pst->globals_offset :
-	   objfile->static_psymbols.list + pst->statics_offset);
+	   &objfile->global_psymbols[pst->globals_offset] :
+	   &objfile->static_psymbols[pst->statics_offset]);
 
   if (global)			/* This means we can use a binary search.  */
     {
@@ -695,7 +719,7 @@ lookup_partial_symbol (struct objfile *o
 	    internal_error (__FILE__, __LINE__,
 			    _("failed internal consistency check"));
 	  if (strcmp_iw_ordered (SYMBOL_SEARCH_NAME (*center),
-				 search_name) >= 0)
+				 search_name.get ()) >= 0)
 	    {
 	      top = center;
 	    }
@@ -710,20 +734,17 @@ lookup_partial_symbol (struct objfile *o
 
       /* For `case_sensitivity == case_sensitive_off' strcmp_iw_ordered will
 	 search more exactly than what matches SYMBOL_MATCHES_SEARCH_NAME.  */
-      while (top >= start && SYMBOL_MATCHES_SEARCH_NAME (*top, search_name))
+      while (top >= start && SYMBOL_MATCHES_SEARCH_NAME (*top, lookup_name))
 	top--;
 
       /* Fixup to have a symbol which matches SYMBOL_MATCHES_SEARCH_NAME.  */
       top++;
 
-      while (top <= real_top && SYMBOL_MATCHES_SEARCH_NAME (*top, search_name))
+      while (top <= real_top && SYMBOL_MATCHES_SEARCH_NAME (*top, lookup_name))
 	{
 	  if (symbol_matches_domain (SYMBOL_LANGUAGE (*top),
 				     SYMBOL_DOMAIN (*top), domain))
-	    {
-	      do_cleanups (cleanup);
-	      return *top;
-	    }
+	    return *top;
 	  top++;
 	}
     }
@@ -737,15 +758,11 @@ lookup_partial_symbol (struct objfile *o
 	{
 	  if (symbol_matches_domain (SYMBOL_LANGUAGE (*psym),
 				     SYMBOL_DOMAIN (*psym), domain)
-	      && SYMBOL_MATCHES_SEARCH_NAME (*psym, search_name))
-	    {
-	      do_cleanups (cleanup);
-	      return *psym;
-	    }
+	      && SYMBOL_MATCHES_SEARCH_NAME (*psym, lookup_name))
+	    return *psym;
 	}
     }
 
-  do_cleanups (cleanup);
   return NULL;
 }
 
@@ -786,7 +803,6 @@ psym_relocate (struct objfile *objfile,
 	       const struct section_offsets *new_offsets,
 	       const struct section_offsets *delta)
 {
-  struct partial_symbol **psym;
   struct partial_symtab *p;
 
   ALL_OBJFILE_PSYMTABS_REQUIRED (objfile, p)
@@ -795,24 +811,20 @@ psym_relocate (struct objfile *objfile,
       p->texthigh += ANOFFSET (delta, SECT_OFF_TEXT (objfile));
     }
 
-  for (psym = objfile->global_psymbols.list;
-       psym < objfile->global_psymbols.next;
-       psym++)
-    {
-      fixup_psymbol_section (*psym, objfile);
-      if (SYMBOL_SECTION (*psym) >= 0)
-	SYMBOL_VALUE_ADDRESS (*psym) += ANOFFSET (delta,
-						  SYMBOL_SECTION (*psym));
-    }
-  for (psym = objfile->static_psymbols.list;
-       psym < objfile->static_psymbols.next;
-       psym++)
-    {
-      fixup_psymbol_section (*psym, objfile);
-      if (SYMBOL_SECTION (*psym) >= 0)
-	SYMBOL_VALUE_ADDRESS (*psym) += ANOFFSET (delta,
-						  SYMBOL_SECTION (*psym));
+  for (partial_symbol *psym : objfile->global_psymbols)
+    {
+      fixup_psymbol_section (psym, objfile);
+      if (SYMBOL_SECTION (psym) >= 0)
+	SYMBOL_VALUE_ADDRESS (psym) += ANOFFSET (delta, SYMBOL_SECTION (psym));
     }
+  for (partial_symbol *psym : objfile->static_psymbols)
+    {
+      fixup_psymbol_section (psym, objfile);
+      if (SYMBOL_SECTION (psym) >= 0)
+	SYMBOL_VALUE_ADDRESS (psym) += ANOFFSET (delta, SYMBOL_SECTION (psym));
+    }
+
+  objfile->psymbol_map.clear ();
 }
 
 /* Psymtab version of find_last_source_symtab.  See its definition in
@@ -1023,15 +1035,13 @@ dump_psymtab (struct objfile *objfile, s
   if (psymtab->n_global_syms > 0)
     {
       print_partial_symbols (gdbarch,
-			     objfile->global_psymbols.list
-			     + psymtab->globals_offset,
+			     &objfile->global_psymbols[psymtab->globals_offset],
 			     psymtab->n_global_syms, "Global", outfile);
     }
   if (psymtab->n_static_syms > 0)
     {
       print_partial_symbols (gdbarch,
-			     objfile->static_psymbols.list
-			     + psymtab->statics_offset,
+			     &objfile->static_psymbols[psymtab->statics_offset],
 			     psymtab->n_static_syms, "Static", outfile);
     }
   fprintf_filtered (outfile, "\n");
@@ -1199,23 +1209,20 @@ psymtab_to_fullname (struct partial_symt
 	close (fd);
       else
 	{
-	  char *fullname;
-	  struct cleanup *back_to;
+	  gdb::unique_xmalloc_ptr<char> fullname;
 
 	  /* rewrite_source_path would be applied by find_and_open_source, we
 	     should report the pathname where GDB tried to find the file.  */
 
 	  if (ps->dirname == NULL || IS_ABSOLUTE_PATH (ps->filename))
-	    fullname = xstrdup (ps->filename);
+	    fullname.reset (xstrdup (ps->filename));
 	  else
-	    fullname = concat (ps->dirname, SLASH_STRING,
-			       ps->filename, (char *) NULL);
+	    fullname.reset (concat (ps->dirname, SLASH_STRING,
+				    ps->filename, (char *) NULL));
 
-	  back_to = make_cleanup (xfree, fullname);
-	  ps->fullname = rewrite_source_path (fullname);
+	  ps->fullname = rewrite_source_path (fullname.get ()).release ();
 	  if (ps->fullname == NULL)
-	    ps->fullname = xstrdup (fullname);
-	  do_cleanups (back_to);
+	    ps->fullname = fullname.release ();
 	}
     }
 
@@ -1231,13 +1238,16 @@ static int
 map_block (const char *name, domain_enum domain, struct objfile *objfile,
 	   struct block *block,
 	   int (*callback) (struct block *, struct symbol *, void *),
-	   void *data, symbol_compare_ftype *match)
+	   void *data, symbol_name_match_type match)
 {
   struct block_iterator iter;
   struct symbol *sym;
 
-  for (sym = block_iter_match_first (block, name, match, &iter);
-       sym != NULL; sym = block_iter_match_next (name, match, &iter))
+  lookup_name_info lookup_name (name, match);
+
+  for (sym = block_iter_match_first (block, lookup_name, &iter);
+       sym != NULL;
+       sym = block_iter_match_next (lookup_name, &iter))
     {
       if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
 				 SYMBOL_DOMAIN (sym), domain))
@@ -1260,7 +1270,7 @@ psym_map_matching_symbols (struct objfil
 			   int (*callback) (struct block *,
 					    struct symbol *, void *),
 			   void *data,
-			   symbol_compare_ftype *match,
+			   symbol_name_match_type match,
 			   symbol_compare_ftype *ordered_compare)
 {
   const int block_kind = global ? GLOBAL_BLOCK : STATIC_BLOCK;
@@ -1295,11 +1305,10 @@ psym_map_matching_symbols (struct objfil
 
 static bool
 recursively_search_psymtabs
-  (struct partial_symtab *ps, struct objfile *objfile, enum search_domain kind,
+  (struct partial_symtab *ps, struct objfile *objfile, enum search_domain domain,
+   const lookup_name_info &lookup_name,
    gdb::function_view<expand_symtabs_symbol_matcher_ftype> sym_matcher)
 {
-  struct partial_symbol **psym;
-  struct partial_symbol **bound, **gbound, **sbound;
   int keep_going = 1;
   enum psymtab_search_status result = PST_SEARCHED_AND_NOT_FOUND;
   int i;
@@ -1318,7 +1327,8 @@ recursively_search_psymtabs
 	continue;
 
       r = recursively_search_psymtabs (ps->dependencies[i],
-				       objfile, kind, sym_matcher);
+				       objfile, domain, lookup_name,
+				       sym_matcher);
       if (r != 0)
 	{
 	  ps->searched_flag = PST_SEARCHED_AND_FOUND;
@@ -1326,22 +1336,22 @@ recursively_search_psymtabs
 	}
     }
 
-  gbound = (objfile->global_psymbols.list
-	    + ps->globals_offset + ps->n_global_syms);
-  sbound = (objfile->static_psymbols.list
-	    + ps->statics_offset + ps->n_static_syms);
-  bound = gbound;
+  partial_symbol **gbound
+    = objfile->global_psymbols.data () + ps->globals_offset + ps->n_global_syms;
+  partial_symbol **sbound
+    = objfile->static_psymbols.data () + ps->statics_offset + ps->n_static_syms;
+  partial_symbol **bound = gbound;
 
   /* Go through all of the symbols stored in a partial
      symtab in one loop.  */
-  psym = objfile->global_psymbols.list + ps->globals_offset;
+  partial_symbol **psym = objfile->global_psymbols.data () + ps->globals_offset;
   while (keep_going)
     {
       if (psym >= bound)
 	{
 	  if (bound == gbound && ps->n_static_syms != 0)
 	    {
-	      psym = objfile->static_psymbols.list + ps->statics_offset;
+	      psym = objfile->static_psymbols.data () + ps->statics_offset;
 	      bound = sbound;
 	    }
 	  else
@@ -1352,15 +1362,16 @@ recursively_search_psymtabs
 	{
 	  QUIT;
 
-	  if ((kind == ALL_DOMAIN
-	       || (kind == VARIABLES_DOMAIN
+	  if ((domain == ALL_DOMAIN
+	       || (domain == VARIABLES_DOMAIN
 		   && PSYMBOL_CLASS (*psym) != LOC_TYPEDEF
 		   && PSYMBOL_CLASS (*psym) != LOC_BLOCK)
-	       || (kind == FUNCTIONS_DOMAIN
+	       || (domain == FUNCTIONS_DOMAIN
 		   && PSYMBOL_CLASS (*psym) == LOC_BLOCK)
-	       || (kind == TYPES_DOMAIN
+	       || (domain == TYPES_DOMAIN
 		   && PSYMBOL_CLASS (*psym) == LOC_TYPEDEF))
-	      && sym_matcher (SYMBOL_SEARCH_NAME (*psym)))
+	      && psymbol_name_matches (*psym, lookup_name)
+	      && (sym_matcher == NULL || sym_matcher (SYMBOL_SEARCH_NAME (*psym))))
 	    {
 	      /* Found a match, so notify our caller.  */
 	      result = PST_SEARCHED_AND_FOUND;
@@ -1381,12 +1392,15 @@ static void
 psym_expand_symtabs_matching
   (struct objfile *objfile,
    gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+   const lookup_name_info &lookup_name_in,
    gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
    gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
-   enum search_domain kind)
+   enum search_domain domain)
 {
   struct partial_symtab *ps;
 
+  lookup_name_info lookup_name = lookup_name_in.make_ignore_params ();
+
   /* Clear the search flags.  */
   ALL_OBJFILE_PSYMTABS_REQUIRED (objfile, ps)
     {
@@ -1425,7 +1439,8 @@ psym_expand_symtabs_matching
 	    continue;
 	}
 
-      if (recursively_search_psymtabs (ps, objfile, kind, symbol_matcher))
+      if (recursively_search_psymtabs (ps, objfile, domain,
+				       lookup_name, symbol_matcher))
 	{
 	  struct compunit_symtab *symtab =
 	    psymtab_to_symtab (objfile, ps);
@@ -1445,6 +1460,84 @@ psym_has_symbols (struct objfile *objfil
   return objfile->psymtabs != NULL;
 }
 
+/* Helper function for psym_find_compunit_symtab_by_address that fills
+   in psymbol_map for a given range of psymbols.  */
+
+static void
+psym_fill_psymbol_map (struct objfile *objfile,
+		       struct partial_symtab *psymtab,
+		       std::set<CORE_ADDR> *seen_addrs,
+		       const std::vector<partial_symbol *> &symbols,
+		       int start,
+		       int length)
+{
+  for (int i = 0; i < length; ++i)
+    {
+      struct partial_symbol *psym = symbols[start + i];
+
+      if (PSYMBOL_CLASS (psym) == LOC_STATIC)
+	{
+	  CORE_ADDR addr = SYMBOL_VALUE_ADDRESS (psym);
+	  if (seen_addrs->find (addr) == seen_addrs->end ())
+	    {
+	      seen_addrs->insert (addr);
+	      objfile->psymbol_map.emplace_back (addr, psymtab);
+	    }
+	}
+    }
+}
+
+/* See find_compunit_symtab_by_address in quick_symbol_functions, in
+   symfile.h.  */
+
+static compunit_symtab *
+psym_find_compunit_symtab_by_address (struct objfile *objfile,
+				      CORE_ADDR address)
+{
+  if (objfile->psymbol_map.empty ())
+    {
+      struct partial_symtab *pst;
+
+      std::set<CORE_ADDR> seen_addrs;
+
+      ALL_OBJFILE_PSYMTABS_REQUIRED (objfile, pst)
+      {
+	psym_fill_psymbol_map (objfile, pst,
+			       &seen_addrs,
+			       objfile->global_psymbols,
+			       pst->globals_offset,
+			       pst->n_global_syms);
+	psym_fill_psymbol_map (objfile, pst,
+			       &seen_addrs,
+			       objfile->static_psymbols,
+			       pst->statics_offset,
+			       pst->n_static_syms);
+      }
+
+      objfile->psymbol_map.shrink_to_fit ();
+
+      std::sort (objfile->psymbol_map.begin (), objfile->psymbol_map.end (),
+		 [] (const std::pair<CORE_ADDR, partial_symtab *> &a,
+		     const std::pair<CORE_ADDR, partial_symtab *> &b)
+		 {
+		   return a.first < b.first;
+		 });
+    }
+
+  auto iter = std::lower_bound
+    (objfile->psymbol_map.begin (), objfile->psymbol_map.end (), address,
+     [] (const std::pair<CORE_ADDR, partial_symtab *> &a,
+	 CORE_ADDR b)
+     {
+       return a.first < b;
+     });
+
+  if (iter == objfile->psymbol_map.end () || iter->first != address)
+    return NULL;
+
+  return psymtab_to_symtab (objfile, iter->second);
+}
+
 const struct quick_symbol_functions psym_functions =
 {
   psym_has_symbols,
@@ -1461,32 +1554,28 @@ const struct quick_symbol_functions psym
   psym_map_matching_symbols,
   psym_expand_symtabs_matching,
   psym_find_pc_sect_compunit_symtab,
+  psym_find_compunit_symtab_by_address,
   psym_map_symbol_filenames
 };
 
 
 
-/* This compares two partial symbols by names, using strcmp_iw_ordered
-   for the comparison.  */
-
-static int
-compare_psymbols (const void *s1p, const void *s2p)
-{
-  struct partial_symbol *const *s1 = (struct partial_symbol * const*) s1p;
-  struct partial_symbol *const *s2 = (struct partial_symbol * const*) s2p;
-
-  return strcmp_iw_ordered (SYMBOL_SEARCH_NAME (*s1),
-			    SYMBOL_SEARCH_NAME (*s2));
-}
-
 static void
 sort_pst_symbols (struct objfile *objfile, struct partial_symtab *pst)
 {
   /* Sort the global list; don't sort the static list.  */
+  auto begin = objfile->global_psymbols.begin ();
+  std::advance (begin, pst->globals_offset);
 
-  qsort (objfile->global_psymbols.list + pst->globals_offset,
-	 pst->n_global_syms, sizeof (struct partial_symbol *),
-	 compare_psymbols);
+  /* The psymbols for this partial_symtab are currently at the end of the
+     vector.  */
+  auto end = objfile->global_psymbols.end ();
+
+  std::sort (begin, end, [] (partial_symbol *s1, partial_symbol *s2)
+    {
+      return strcmp_iw_ordered (SYMBOL_SEARCH_NAME (s1),
+				SYMBOL_SEARCH_NAME (s2)) < 0;
+    });
 }
 
 /* Allocate and partially fill a partial symtab.  It will be
@@ -1497,16 +1586,17 @@ sort_pst_symbols (struct objfile *objfil
 struct partial_symtab *
 start_psymtab_common (struct objfile *objfile,
 		      const char *filename,
-		      CORE_ADDR textlow, struct partial_symbol **global_syms,
-		      struct partial_symbol **static_syms)
+		      CORE_ADDR textlow,
+		      std::vector<partial_symbol *> &global_psymbols,
+		      std::vector<partial_symbol *> &static_psymbols)
 {
   struct partial_symtab *psymtab;
 
   psymtab = allocate_psymtab (filename, objfile);
   psymtab->textlow = textlow;
   psymtab->texthigh = psymtab->textlow;		/* default */
-  psymtab->globals_offset = global_syms - objfile->global_psymbols.list;
-  psymtab->statics_offset = static_syms - objfile->static_psymbols.list;
+  psymtab->globals_offset = global_psymbols.size ();
+  psymtab->statics_offset = static_psymbols.size ();
   return psymtab;
 }
 
@@ -1515,12 +1605,8 @@ start_psymtab_common (struct objfile *ob
 void
 end_psymtab_common (struct objfile *objfile, struct partial_symtab *pst)
 {
-  pst->n_global_syms
-    = objfile->global_psymbols.next - (objfile->global_psymbols.list
-				       + pst->globals_offset);
-  pst->n_static_syms
-    = objfile->static_psymbols.next - (objfile->static_psymbols.list
-				       + pst->statics_offset);
+  pst->n_global_syms = objfile->global_psymbols.size () - pst->globals_offset;
+  pst->n_static_syms = objfile->static_psymbols.size () - pst->statics_offset;
 
   sort_pst_symbols (objfile, pst);
 }
@@ -1543,7 +1629,9 @@ psymbol_hash (const void *addr, int leng
   h = hash_continue (&lang, sizeof (unsigned int), h);
   h = hash_continue (&domain, sizeof (unsigned int), h);
   h = hash_continue (&theclass, sizeof (unsigned int), h);
-  h = hash_continue (psymbol->ginfo.name, strlen (psymbol->ginfo.name), h);
+  /* Note that psymbol names are interned via symbol_set_names, so
+     there's no need to hash the contents of the name here.  */
+  h = hash_continue (&psymbol->ginfo.name, sizeof (psymbol->ginfo.name), h);
 
   return h;
 }
@@ -1563,6 +1651,9 @@ psymbol_compare (const void *addr1, cons
 	  && sym1->ginfo.language == sym2->ginfo.language
           && PSYMBOL_DOMAIN (sym1) == PSYMBOL_DOMAIN (sym2)
           && PSYMBOL_CLASS (sym1) == PSYMBOL_CLASS (sym2)
+	  /* Note that psymbol names are interned via
+	     symbol_set_names, so there's no need to compare the
+	     contents of the name here.  */
           && sym1->ginfo.name == sym2->ginfo.name);
 }
 
@@ -1602,12 +1693,12 @@ psymbol_bcache_get_bcache (struct psymbo
    to BCACHE's copy of the symbol.  If optional ADDED is not NULL, return
    1 in case of new entry or 0 if returning an old entry.  */
 
-static const struct partial_symbol *
+static struct partial_symbol *
 psymbol_bcache_full (struct partial_symbol *sym,
                      struct psymbol_bcache *bcache,
                      int *added)
 {
-  return ((const struct partial_symbol *)
+  return ((struct partial_symbol *)
 	  bcache_full (sym, sizeof (struct partial_symbol), bcache->bcache,
 		       added));
 }
@@ -1618,7 +1709,7 @@ psymbol_bcache_full (struct partial_symb
    structure.  In other words, having two symbols with the same name but
    different domain (or address) is possible and correct.  */
 
-static const struct partial_symbol *
+static struct partial_symbol *
 add_psymbol_to_bcache (const char *name, int namelength, int copy_name,
 		       domain_enum domain,
 		       enum address_class theclass,
@@ -1645,44 +1736,14 @@ add_psymbol_to_bcache (const char *name,
   return psymbol_bcache_full (&psymbol, objfile->psymbol_cache, added);
 }
 
-/* Increase the space allocated for LISTP, which is probably
-   global_psymbols or static_psymbols.  This space will eventually
-   be freed in free_objfile().  */
-
-static void
-extend_psymbol_list (struct psymbol_allocation_list *listp,
-		     struct objfile *objfile)
-{
-  int new_size;
-
-  if (listp->size == 0)
-    {
-      new_size = 255;
-      listp->list = XNEWVEC (struct partial_symbol *, new_size);
-    }
-  else
-    {
-      new_size = listp->size * 2;
-      listp->list = (struct partial_symbol **)
-	xrealloc ((char *) listp->list,
-		  new_size * sizeof (struct partial_symbol *));
-    }
-  /* Next assumes we only went one over.  Should be good if
-     program works correctly.  */
-  listp->next = listp->list + listp->size;
-  listp->size = new_size;
-}
-
 /* Helper function, adds partial symbol to the given partial symbol list.  */
 
 static void
-append_psymbol_to_list (struct psymbol_allocation_list *list,
-			const struct partial_symbol *psym,
+append_psymbol_to_list (std::vector<partial_symbol *> *list,
+			struct partial_symbol *psym,
 			struct objfile *objfile)
 {
-  if (list->next >= list->list + list->size)
-    extend_psymbol_list (list, objfile);
-  *list->next++ = (struct partial_symbol *) psym;
+  list->push_back (psym);
   OBJSTAT (objfile, n_psyms++);
 }
 
@@ -1696,11 +1757,11 @@ void
 add_psymbol_to_list (const char *name, int namelength, int copy_name,
 		     domain_enum domain,
 		     enum address_class theclass,
-		     struct psymbol_allocation_list *list,
+		     std::vector<partial_symbol *> *list,
 		     CORE_ADDR coreaddr,
 		     enum language language, struct objfile *objfile)
 {
-  const struct partial_symbol *psym;
+  struct partial_symbol *psym;
 
   int added;
 
@@ -1723,31 +1784,14 @@ void
 init_psymbol_list (struct objfile *objfile, int total_symbols)
 {
   /* Free any previously allocated psymbol lists.  */
-
-  if (objfile->global_psymbols.list)
-    xfree (objfile->global_psymbols.list);
-  if (objfile->static_psymbols.list)
-    xfree (objfile->static_psymbols.list);
+  objfile->global_psymbols.clear ();
+  objfile->static_psymbols.clear ();
 
   /* Current best guess is that approximately a twentieth
      of the total symbols (in a debugging file) are global or static
      oriented symbols, then multiply that by slop factor of two.  */
-
-  objfile->global_psymbols.size = total_symbols / 10;
-  objfile->static_psymbols.size = total_symbols / 10;
-
-  if (objfile->global_psymbols.size > 0)
-    {
-      objfile->global_psymbols.next =
-	objfile->global_psymbols.list =
-	  XNEWVEC (struct partial_symbol *, objfile->global_psymbols.size);
-    }
-  if (objfile->static_psymbols.size > 0)
-    {
-      objfile->static_psymbols.next =
-	objfile->static_psymbols.list =
-	  XNEWVEC (struct partial_symbol *, objfile->static_psymbols.size);
-    }
+  objfile->global_psymbols.reserve (total_symbols / 10);
+  objfile->static_psymbols.reserve (total_symbols / 10);
 }
 
 struct partial_symtab *
@@ -1903,11 +1947,9 @@ dump_psymtab_addrmap (struct objfile *ob
 }
 
 static void
-maintenance_print_psymbols (char *args, int from_tty)
+maintenance_print_psymbols (const char *args, int from_tty)
 {
-  char **argv;
   struct ui_file *outfile = gdb_stdout;
-  struct cleanup *cleanups;
   char *address_arg = NULL, *source_arg = NULL, *objfile_arg = NULL;
   struct objfile *objfile;
   struct partial_symtab *ps;
@@ -1917,8 +1959,7 @@ maintenance_print_psymbols (char *args, 
 
   dont_repeat ();
 
-  argv = gdb_buildargv (args);
-  cleanups = make_cleanup_freeargv (argv);
+  gdb_argv argv (args);
 
   for (i = 0; argv != NULL && argv[i] != NULL; ++i)
     {
@@ -1963,14 +2004,12 @@ maintenance_print_psymbols (char *args, 
 
   if (argv != NULL && argv[outfile_idx] != NULL)
     {
-      char *outfile_name;
-
       if (argv[outfile_idx + 1] != NULL)
 	error (_("Junk at end of command"));
-      outfile_name = tilde_expand (argv[outfile_idx]);
-      make_cleanup (xfree, outfile_name);
-      if (!arg_outfile.open (outfile_name, FOPEN_WT))
-	perror_with_name (outfile_name);
+      gdb::unique_xmalloc_ptr<char> outfile_name
+	(tilde_expand (argv[outfile_idx]));
+      if (!arg_outfile.open (outfile_name.get (), FOPEN_WT))
+	perror_with_name (outfile_name.get ());
       outfile = &arg_outfile;
     }
 
@@ -2061,14 +2100,12 @@ maintenance_print_psymbols (char *args, 
       if (source_arg != NULL)
 	error (_("No partial symtab for source file: %s"), source_arg);
     }
-
-  do_cleanups (cleanups);
 }
 
 /* List all the partial symbol tables whose names match REGEXP (optional).  */
 
 static void
-maintenance_info_psymtabs (char *regexp, int from_tty)
+maintenance_info_psymtabs (const char *regexp, int from_tty)
 {
   struct program_space *pspace;
   struct objfile *objfile;
@@ -2125,9 +2162,10 @@ maintenance_info_psymtabs (char *regexp,
 	      printf_filtered ("    globals ");
 	      if (psymtab->n_global_syms)
 		{
+		  auto p = &objfile->global_psymbols[psymtab->globals_offset];
+
 		  printf_filtered ("(* (struct partial_symbol **) %s @ %d)\n",
-				   host_address_to_string (objfile->global_psymbols.list
-				    + psymtab->globals_offset),
+				   host_address_to_string (p),
 				   psymtab->n_global_syms);
 		}
 	      else
@@ -2135,9 +2173,10 @@ maintenance_info_psymtabs (char *regexp,
 	      printf_filtered ("    statics ");
 	      if (psymtab->n_static_syms)
 		{
+		  auto p = &objfile->static_psymbols[psymtab->statics_offset];
+
 		  printf_filtered ("(* (struct partial_symbol **) %s @ %d)\n",
-				   host_address_to_string (objfile->static_psymbols.list
-				    + psymtab->statics_offset),
+				   host_address_to_string (p),
 				   psymtab->n_static_syms);
 		}
 	      else
@@ -2174,10 +2213,9 @@ maintenance_info_psymtabs (char *regexp,
 /* Check consistency of currently expanded psymtabs vs symtabs.  */
 
 static void
-maintenance_check_psymtabs (char *ignore, int from_tty)
+maintenance_check_psymtabs (const char *ignore, int from_tty)
 {
   struct symbol *sym;
-  struct partial_symbol **psym;
   struct compunit_symtab *cust = NULL;
   struct partial_symtab *ps;
   const struct blockvector *bv;
@@ -2212,11 +2250,12 @@ maintenance_check_psymtabs (char *ignore
       continue;
     bv = COMPUNIT_BLOCKVECTOR (cust);
     b = BLOCKVECTOR_BLOCK (bv, STATIC_BLOCK);
-    psym = objfile->static_psymbols.list + ps->statics_offset;
+    partial_symbol **psym = &objfile->static_psymbols[ps->statics_offset];
     length = ps->n_static_syms;
     while (length--)
       {
-	sym = block_lookup_symbol (b, SYMBOL_LINKAGE_NAME (*psym),
+	sym = block_lookup_symbol (b, SYMBOL_SEARCH_NAME (*psym),
+				   symbol_name_match_type::SEARCH_NAME,
 				   SYMBOL_DOMAIN (*psym));
 	if (!sym)
 	  {
@@ -2229,11 +2268,12 @@ maintenance_check_psymtabs (char *ignore
 	psym++;
       }
     b = BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK);
-    psym = objfile->global_psymbols.list + ps->globals_offset;
+    psym = &objfile->global_psymbols[ps->globals_offset];
     length = ps->n_global_syms;
     while (length--)
       {
-	sym = block_lookup_symbol (b, SYMBOL_LINKAGE_NAME (*psym),
+	sym = block_lookup_symbol (b, SYMBOL_SEARCH_NAME (*psym),
+				   symbol_name_match_type::SEARCH_NAME,
 				   SYMBOL_DOMAIN (*psym));
 	if (!sym)
 	  {
@@ -2263,10 +2303,6 @@ maintenance_check_psymtabs (char *ignore
   }
 }
 
-
-
-extern initialize_file_ftype _initialize_psymtab;
-
 void
 _initialize_psymtab (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/psymtab.h ./gdb/psymtab.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/psymtab.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/psymtab.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Public partial symbol table definitions.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -33,6 +33,7 @@ extern struct bcache *psymbol_bcache_get
 extern const struct quick_symbol_functions psym_functions;
 
 extern const struct quick_symbol_functions dwarf2_gdb_index_functions;
+extern const struct quick_symbol_functions dwarf2_debug_names_functions;
 
 /* Ensure that the partial symbols for OBJFILE have been loaded.  If
    VERBOSE is non-zero, then this will print a message when symbols
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ptrace.m4 ./gdb/ptrace.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ptrace.m4	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ptrace.m4	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2012-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2018 Free Software Foundation, Inc.
 dnl
 dnl This file is part of GDB.
 dnl
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/p-typeprint.c ./gdb/p-typeprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/p-typeprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/p-typeprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Support for printing Pascal types for GDB, the GNU debugger.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -227,7 +227,8 @@ pascal_type_print_varspec_prefix (struct
     case TYPE_CODE_METHOD:
       if (passed_a_ptr)
 	fprintf_filtered (stream, "(");
-      if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_VOID)
+      if (TYPE_TARGET_TYPE (type) != NULL
+	  && TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_VOID)
 	{
 	  fprintf_filtered (stream, "function  ");
 	}
@@ -255,7 +256,8 @@ pascal_type_print_varspec_prefix (struct
       if (passed_a_ptr)
 	fprintf_filtered (stream, "(");
 
-      if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_VOID)
+      if (TYPE_TARGET_TYPE (type) != NULL
+	  && TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_VOID)
 	{
 	  fprintf_filtered (stream, "function  ");
 	}
@@ -334,6 +336,33 @@ pascal_print_func_args (struct type *typ
     }
 }
 
+/* Helper for pascal_type_print_varspec_suffix to print the suffix of
+   a function or method.  */
+
+static void
+pascal_type_print_func_varspec_suffix  (struct type *type, struct ui_file *stream,
+					int show, int passed_a_ptr,
+					int demangled_args,
+					const struct type_print_options *flags)
+{
+  if (TYPE_TARGET_TYPE (type) == NULL
+      || TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_VOID)
+    {
+      fprintf_filtered (stream, " : ");
+      pascal_type_print_varspec_prefix (TYPE_TARGET_TYPE (type),
+					stream, 0, 0, flags);
+
+      if (TYPE_TARGET_TYPE (type) == NULL)
+	type_print_unknown_return_type (stream);
+      else
+	pascal_type_print_base (TYPE_TARGET_TYPE (type), stream, show, 0,
+				flags);
+
+      pascal_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0,
+					passed_a_ptr, 0, flags);
+    }
+}
+
 /* Print any array sizes, function arguments or close parentheses
    needed after the variable name (to describe its type).
    Args work like pascal_type_print_varspec_prefix.  */
@@ -365,16 +394,8 @@ pascal_type_print_varspec_suffix (struct
       pascal_type_print_method_args ("",
 				     "",
 				     stream);
-      if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_VOID)
-	{
-	  fprintf_filtered (stream, " : ");
-	  pascal_type_print_varspec_prefix (TYPE_TARGET_TYPE (type),
-					    stream, 0, 0, flags);
-	  pascal_type_print_base (TYPE_TARGET_TYPE (type), stream, show, 0,
-				  flags);
-	  pascal_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0,
-					    passed_a_ptr, 0, flags);
-	}
+      pascal_type_print_func_varspec_suffix (type, stream, show,
+					     passed_a_ptr, 0, flags);
       break;
 
     case TYPE_CODE_PTR:
@@ -388,16 +409,8 @@ pascal_type_print_varspec_suffix (struct
 	fprintf_filtered (stream, ")");
       if (!demangled_args)
 	pascal_print_func_args (type, stream, flags);
-      if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_VOID)
-	{
-	  fprintf_filtered (stream, " : ");
-	  pascal_type_print_varspec_prefix (TYPE_TARGET_TYPE (type),
-					    stream, 0, 0, flags);
-	  pascal_type_print_base (TYPE_TARGET_TYPE (type), stream, show, 0,
-				  flags);
-	  pascal_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0,
-					    passed_a_ptr, 0, flags);
-	}
+      pascal_type_print_func_varspec_suffix (type, stream, show,
+					     passed_a_ptr, 0, flags);
       break;
 
     case TYPE_CODE_UNDEF:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/p-valprint.c ./gdb/p-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/p-valprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/p-valprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support for printing Pascal values for GDB, the GNU debugger.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -38,6 +38,7 @@
 #include "cp-abi.h"
 #include "cp-support.h"
 #include "objfiles.h"
+#include "common/byte-vector.h"
 
 
 /* Decorations for Pascal.  */
@@ -245,15 +246,17 @@ pascal_val_print (struct type *type,
 	      struct symbol *wsym = NULL;
 	      struct type *wtype;
 	      struct block *block = NULL;
-	      struct field_of_this_result is_this_fld;
 
 	      if (want_space)
 		fputs_filtered (" ", stream);
 
 	      if (msymbol.minsym != NULL)
-		wsym = lookup_symbol (MSYMBOL_LINKAGE_NAME (msymbol.minsym),
-				      block,
-				      VAR_DOMAIN, &is_this_fld).symbol;
+		{
+		  const char *search_name
+		    = MSYMBOL_SEARCH_NAME (msymbol.minsym);
+		  wsym = lookup_symbol_search_name (search_name, block,
+						    VAR_DOMAIN).symbol;
+		}
 
 	      if (wsym)
 		{
@@ -730,6 +733,7 @@ pascal_object_print_value (struct type *
       const gdb_byte *base_valaddr = NULL;
       LONGEST thisoffset;
       int skip = 0;
+      gdb::byte_vector buf;
 
       if (BASETYPE_VIA_VIRTUAL (type, i))
 	{
@@ -769,20 +773,15 @@ pascal_object_print_value (struct type *
 
 	  if (boffset < 0 || boffset >= TYPE_LENGTH (type))
 	    {
-	      gdb_byte *buf;
-	      struct cleanup *back_to;
+	      buf.resize (TYPE_LENGTH (baseclass));
 
-	      buf = (gdb_byte *) xmalloc (TYPE_LENGTH (baseclass));
-	      back_to = make_cleanup (xfree, buf);
-
-	      base_valaddr = buf;
-	      if (target_read_memory (address + boffset, buf,
+	      base_valaddr = buf.data ();
+	      if (target_read_memory (address + boffset, buf.data (),
 				      TYPE_LENGTH (baseclass)) != 0)
 		skip = 1;
 	      address = address + boffset;
 	      thisoffset = 0;
 	      boffset = 0;
-	      do_cleanups (back_to);
 	    }
 	  else
 	    base_valaddr = valaddr;
@@ -891,9 +890,6 @@ pascal_object_print_static_field (struct
   common_val_print (val, stream, recurse, &opts, current_language);
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_pascal_valprint;
-
 void
 _initialize_pascal_valprint (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/explore.py ./gdb/python/lib/gdb/command/explore.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/explore.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/command/explore.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # GDB 'explore' command.
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/frame_filters.py ./gdb/python/lib/gdb/command/frame_filters.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/frame_filters.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/command/frame_filters.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Frame-filter commands.
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/__init__.py ./gdb/python/lib/gdb/command/__init__.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/__init__.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/command/__init__.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/pretty_printers.py ./gdb/python/lib/gdb/command/pretty_printers.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/pretty_printers.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/command/pretty_printers.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Pretty-printer commands.
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/prompt.py ./gdb/python/lib/gdb/command/prompt.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/prompt.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/command/prompt.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Extended prompt.
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/type_printers.py ./gdb/python/lib/gdb/command/type_printers.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/type_printers.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/command/type_printers.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Type printer commands.
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/unwinders.py ./gdb/python/lib/gdb/command/unwinders.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/unwinders.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/command/unwinders.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Unwinder commands.
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/xmethods.py ./gdb/python/lib/gdb/command/xmethods.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/command/xmethods.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/command/xmethods.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Xmethod commands.
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/FrameDecorator.py ./gdb/python/lib/gdb/FrameDecorator.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/FrameDecorator.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/FrameDecorator.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/FrameIterator.py ./gdb/python/lib/gdb/FrameIterator.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/FrameIterator.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/FrameIterator.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/frames.py ./gdb/python/lib/gdb/frames.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/frames.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/frames.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Frame-filter commands.
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/function/as_string.py ./gdb/python/lib/gdb/function/as_string.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/function/as_string.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/function/as_string.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/function/caller_is.py ./gdb/python/lib/gdb/function/caller_is.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/function/caller_is.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/function/caller_is.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Caller-is functions.
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/function/__init__.py ./gdb/python/lib/gdb/function/__init__.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/function/__init__.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/function/__init__.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/function/strfns.py ./gdb/python/lib/gdb/function/strfns.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/function/strfns.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/function/strfns.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Useful gdb string convenience functions.
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/__init__.py ./gdb/python/lib/gdb/__init__.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/__init__.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/__init__.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/printer/bound_registers.py ./gdb/python/lib/gdb/printer/bound_registers.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/printer/bound_registers.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/printer/bound_registers.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Pretty-printers for bounds registers.
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/printer/__init__.py ./gdb/python/lib/gdb/printer/__init__.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/printer/__init__.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/printer/__init__.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/printing.py ./gdb/python/lib/gdb/printing.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/printing.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/printing.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Pretty-printer utilities.
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/prompt.py ./gdb/python/lib/gdb/prompt.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/prompt.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/prompt.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Extended prompt utilities.
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/types.py ./gdb/python/lib/gdb/types.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/types.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/types.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Type utilities.
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/unwinder.py ./gdb/python/lib/gdb/unwinder.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/unwinder.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/unwinder.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/xmethod.py ./gdb/python/lib/gdb/xmethod.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/lib/gdb/xmethod.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/lib/gdb/xmethod.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Python side of the support for xmethods.
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-all-events.def ./gdb/python/py-all-events.def
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-all-events.def	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/python/py-all-events.def	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,40 @@
+/* Python event definitions -*- c++ -*-
+
+   Copyright (C) 2017-2018 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/>.  */
+
+/* To use this file, define GDB_PY_DEFINE_EVENT to expand how you
+   like, then include the file.
+
+   GDB_PY_DEFINE_EVENT has one parameter, the name of the event.
+*/
+
+GDB_PY_DEFINE_EVENT(stop)
+GDB_PY_DEFINE_EVENT(cont)
+GDB_PY_DEFINE_EVENT(exited)
+GDB_PY_DEFINE_EVENT(new_objfile)
+GDB_PY_DEFINE_EVENT(clear_objfiles)
+GDB_PY_DEFINE_EVENT(new_inferior)
+GDB_PY_DEFINE_EVENT(inferior_deleted)
+GDB_PY_DEFINE_EVENT(new_thread)
+GDB_PY_DEFINE_EVENT(inferior_call)
+GDB_PY_DEFINE_EVENT(memory_changed)
+GDB_PY_DEFINE_EVENT(register_changed)
+GDB_PY_DEFINE_EVENT(breakpoint_created)
+GDB_PY_DEFINE_EVENT(breakpoint_deleted)
+GDB_PY_DEFINE_EVENT(breakpoint_modified)
+GDB_PY_DEFINE_EVENT(before_prompt)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-arch.c ./gdb/python/py-arch.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-arch.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-arch.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to architecture
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-auto-load.c ./gdb/python/py-auto-load.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-auto-load.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-auto-load.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB routines for supporting auto-loaded scripts.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -52,7 +52,7 @@ gdbpy_auto_load_enabled (const struct ex
 /* Wrapper for "info auto-load python-scripts".  */
 
 static void
-info_auto_load_python_scripts (char *pattern, int from_tty)
+info_auto_load_python_scripts (const char *pattern, int from_tty)
 {
   auto_load_info_scripts (pattern, from_tty, &extension_language_python);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-block.c ./gdb/python/py-block.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-block.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-block.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to blocks.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-bpevent.c ./gdb/python/py-bpevent.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-bpevent.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-bpevent.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to inferior breakpoint stop events.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -21,13 +21,10 @@
 #include "py-stopevent.h"
 #include "py-ref.h"
 
-extern PyTypeObject breakpoint_event_object_type
-    CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
-
 /* Create and initialize a BreakpointEvent object.  This acquires new
    references to BREAKPOINT_LIST and FIRST_BP.  */
 
-PyObject *
+gdbpy_ref<>
 create_breakpoint_event_object (PyObject *breakpoint_list, PyObject *first_bp)
 {
   gdbpy_ref<> breakpoint_event_obj
@@ -45,11 +42,5 @@ create_breakpoint_event_object (PyObject
                           breakpoint_list) < 0)
     return NULL;
 
-  return breakpoint_event_obj.release ();
+  return breakpoint_event_obj;
 }
-
-GDBPY_NEW_EVENT_TYPE (breakpoint,
-                      "gdb.BreakpointEvent",
-                      "BreakpointEvent",
-                      "GDB breakpoint stop event object",
-                      stop_event_object_type);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-breakpoint.c ./gdb/python/py-breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-breakpoint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-breakpoint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to breakpoints
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -32,6 +32,7 @@
 #include "language.h"
 #include "location.h"
 #include "py-event.h"
+#include "linespec.h"
 
 /* Number of live breakpoints.  */
 static int bppy_live;
@@ -484,8 +485,6 @@ bppy_get_commands (PyObject *self, void 
 {
   gdbpy_breakpoint_object *self_bp = (gdbpy_breakpoint_object *) self;
   struct breakpoint *bp = self_bp->bp;
-  long length;
-  PyObject *result;
 
   BPPY_REQUIRE_VALID (self_bp);
 
@@ -633,25 +632,106 @@ bppy_get_ignore_count (PyObject *self, v
   return PyInt_FromLong (self_bp->bp->ignore_count);
 }
 
+/* Internal function to validate the Python parameters/keywords
+   provided to bppy_init.  */
+
+static int
+bppy_init_validate_args (const char *spec, char *source,
+			 char *function, char *label,
+			 char *line, enum bptype type)
+{
+  /* If spec is defined, ensure that none of the explicit location
+     keywords are also defined.  */
+  if (spec != NULL)
+    {
+      if (source != NULL || function != NULL || label != NULL || line != NULL)
+	{
+	  PyErr_SetString (PyExc_RuntimeError,
+			   _("Breakpoints specified with spec cannot "
+			     "have source, function, label or line defined."));
+	  return -1;
+	}
+    }
+  else
+    {
+      /* If spec isn't defined, ensure that the user is not trying to
+	 define a watchpoint with an explicit location.  */
+      if (type == bp_watchpoint)
+	{
+	  PyErr_SetString (PyExc_RuntimeError,
+			   _("Watchpoints cannot be set by explicit "
+			     "location parameters."));
+	  return -1;
+	}
+      else
+	{
+	  /* Otherwise, ensure some explicit locations are defined.  */
+	  if (source == NULL && function == NULL && label == NULL
+	      && line == NULL)
+	    {
+	      PyErr_SetString (PyExc_RuntimeError,
+			       _("Neither spec nor explicit location set."));
+	      return -1;
+	    }
+	  /* Finally, if source is specified, ensure that line, label
+	     or function are specified too.  */
+	  if (source != NULL && function == NULL && label == NULL
+	      && line == NULL)
+	    {
+	      PyErr_SetString (PyExc_RuntimeError,
+			       _("Specifying a source must also include a "
+				 "line, label or function."));
+	      return -1;
+	    }
+	}
+    }
+  return 1;
+}
+
 /* Python function to create a new breakpoint.  */
 static int
 bppy_init (PyObject *self, PyObject *args, PyObject *kwargs)
 {
   static const char *keywords[] = { "spec", "type", "wp_class", "internal",
-				    "temporary", NULL };
-  const char *spec;
-  int type = bp_breakpoint;
+				    "temporary","source", "function",
+				    "label", "line", "qualified", NULL };
+  const char *spec = NULL;
+  enum bptype type = bp_breakpoint;
   int access_type = hw_write;
   PyObject *internal = NULL;
   PyObject *temporary = NULL;
+  PyObject *lineobj = NULL;;
   int internal_bp = 0;
   int temporary_bp = 0;
+  gdb::unique_xmalloc_ptr<char> line;
+  char *label = NULL;
+  char *source = NULL;
+  char *function = NULL;
+  PyObject * qualified = NULL;
 
-  if (!gdb_PyArg_ParseTupleAndKeywords (args, kwargs, "s|iiOO", keywords,
+  if (!gdb_PyArg_ParseTupleAndKeywords (args, kwargs, "|siiOOsssOO", keywords,
 					&spec, &type, &access_type,
-					&internal, &temporary))
+					&internal,
+					&temporary, &source,
+					&function, &label, &lineobj,
+					&qualified))
     return -1;
 
+
+  if (lineobj != NULL)
+    {
+      if (PyInt_Check (lineobj))
+	line.reset (xstrprintf ("%ld", PyInt_AsLong (lineobj)));
+      else if (PyString_Check (lineobj))
+	line = python_string_to_host_string (lineobj);
+      else
+	{
+	  PyErr_SetString (PyExc_RuntimeError,
+			   _("Line keyword should be an integer or a string. "));
+	  return -1;
+	}
+    }
+
   if (internal)
     {
       internal_bp = PyObject_IsTrue (internal);
@@ -666,22 +746,54 @@ bppy_init (PyObject *self, PyObject *arg
 	return -1;
     }
 
+  if (bppy_init_validate_args (spec, source, function, label, line.get (),
+			       type) == -1)
+    return -1;
+
   bppy_pending_object = (gdbpy_breakpoint_object *) self;
   bppy_pending_object->number = -1;
   bppy_pending_object->bp = NULL;
 
   TRY
     {
-      gdb::unique_xmalloc_ptr<char>
-	copy_holder (xstrdup (skip_spaces_const (spec)));
-      char *copy = copy_holder.get ();
-
       switch (type)
 	{
 	case bp_breakpoint:
 	  {
-	    event_location_up location
-	      = string_to_event_location_basic (&copy, current_language);
+	    event_location_up location;
+	    symbol_name_match_type func_name_match_type
+	      = (qualified != NULL && PyObject_IsTrue (qualified)
+		  ? symbol_name_match_type::FULL
+		  : symbol_name_match_type::WILD);
+
+	    if (spec != NULL)
+	      {
+		gdb::unique_xmalloc_ptr<char>
+		  copy_holder (xstrdup (skip_spaces (spec)));
+		const char *copy = copy_holder.get ();
+
+		location  = string_to_event_location (&copy,
+						      current_language,
+						      func_name_match_type);
+	      }
+	    else
+	      {
+		struct explicit_location explicit_loc;
+
+		initialize_explicit_location (&explicit_loc);
+		explicit_loc.source_filename = source;
+		explicit_loc.function_name = function;
+		explicit_loc.label_name = label;
+
+		if (line != NULL)
+		  explicit_loc.line_offset =
+		    linespec_parse_line_offset (line.get ());
+
+		explicit_loc.func_name_match_type = func_name_match_type;
+
+		location = new_explicit_location (&explicit_loc);
+	      }
+
 	    create_breakpoint (python_gdbarch,
 			       location.get (), NULL, -1, NULL,
 			       0,
@@ -692,8 +804,12 @@ bppy_init (PyObject *self, PyObject *arg
 			       0, 1, internal_bp, 0);
 	    break;
 	  }
-        case bp_watchpoint:
+	case bp_watchpoint:
 	  {
+	    gdb::unique_xmalloc_ptr<char>
+	      copy_holder (xstrdup (skip_spaces (spec)));
+	    char *copy = copy_holder.get ();
+
 	    if (access_type == hw_write)
 	      watch_command_wrapper (copy, 0, internal_bp);
 	    else if (access_type == hw_access)
@@ -935,7 +1051,6 @@ gdbpy_breakpoint_modified (struct breakp
   int num = b->number;
   PyGILState_STATE state;
   struct breakpoint *bp = NULL;
-  gdbpy_breakpoint_object *bp_obj;
 
   state = PyGILState_Ensure ();
   bp = get_breakpoint (num);
@@ -1026,15 +1141,12 @@ local_setattro (PyObject *self, PyObject
 	extlang = get_breakpoint_cond_ext_lang (obj->bp, EXT_LANG_PYTHON);
       if (extlang != NULL)
 	{
-	  char *error_text;
-
-	  error_text
-	    = xstrprintf (_("Only one stop condition allowed.  There is"
-			    " currently a %s stop condition defined for"
-			    " this breakpoint."),
-			  ext_lang_capitalized_name (extlang));
-	  PyErr_SetString (PyExc_RuntimeError, error_text);
-	  xfree (error_text);
+	  std::string error_text
+	    = string_printf (_("Only one stop condition allowed.  There is"
+			       " currently a %s stop condition defined for"
+			       " this breakpoint."),
+			     ext_lang_capitalized_name (extlang));
+	  PyErr_SetString (PyExc_RuntimeError, error_text.c_str ());
 	  return -1;
 	}
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-cmd.c ./gdb/python/py-cmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-cmd.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-cmd.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* gdb commands implemented in Python
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -44,7 +44,7 @@ static const struct cmdpy_completer comp
   { "COMPLETE_FILENAME", filename_completer },
   { "COMPLETE_LOCATION", location_completer },
   { "COMPLETE_COMMAND", command_completer },
-  { "COMPLETE_SYMBOL", make_symbol_completion_list_fn },
+  { "COMPLETE_SYMBOL", symbol_completer },
   { "COMPLETE_EXPRESSION", expression_completer },
 };
 
@@ -110,9 +110,8 @@ cmdpy_destroyer (struct cmd_list_element
 
 static void
 cmdpy_function (struct cmd_list_element *command,
-		char *args_entry, int from_tty)
+		const char *args, int from_tty)
 {
-  const char *args = args_entry;
   cmdpy_object *obj = (cmdpy_object *) get_cmd_context (command);
 
   gdbpy_enter enter_py (get_current_arch (), current_language);
@@ -242,10 +241,21 @@ cmdpy_completer_helper (struct cmd_list_
 					 NULL));
   if (textobj == NULL)
     error (_("Could not convert argument to Python string."));
-  gdbpy_ref<> wordobj (PyUnicode_Decode (word, strlen (word), host_charset (),
-					 NULL));
-  if (wordobj == NULL)
-    error (_("Could not convert argument to Python string."));
+
+  gdbpy_ref<> wordobj;
+  if (word == NULL)
+    {
+      /* "brkchars" phase.  */
+      wordobj.reset (Py_None);
+      Py_INCREF (Py_None);
+    }
+  else
+    {
+      wordobj.reset (PyUnicode_Decode (word, strlen (word), host_charset (),
+				       NULL));
+      if (wordobj == NULL)
+	error (_("Could not convert argument to Python string."));
+    }
 
   gdbpy_ref<> resultobj (PyObject_CallMethodObjArgs ((PyObject *) obj,
 						     complete_cst,
@@ -267,6 +277,7 @@ cmdpy_completer_helper (struct cmd_list_
 
 static void
 cmdpy_completer_handle_brkchars (struct cmd_list_element *command,
+				 completion_tracker &tracker,
 				 const char *text, const char *word)
 {
   gdbpy_enter enter_py (get_current_arch (), current_language);
@@ -293,23 +304,25 @@ cmdpy_completer_handle_brkchars (struct 
 	}
       else if (value >= 0 && value < (long) N_COMPLETERS)
 	{
+	  completer_handle_brkchars_ftype *brkchars_fn;
+
 	  /* This is the core of this function.  Depending on which
 	     completer type the Python function returns, we have to
 	     adjust the break characters accordingly.  */
-	  set_gdb_completion_word_break_characters
-	    (completers[value].completer);
+	  brkchars_fn = (completer_handle_brkchars_func_for_completer
+			 (completers[value].completer));
+	  brkchars_fn (command, tracker, text, word);
 	}
     }
 }
 
 /* Called by gdb for command completion.  */
 
-static VEC (char_ptr) *
+static void
 cmdpy_completer (struct cmd_list_element *command,
+		 completion_tracker &tracker,
 		 const char *text, const char *word)
 {
-  VEC (char_ptr) *result = NULL;
-
   gdbpy_enter enter_py (get_current_arch (), current_language);
 
   /* Calling our helper to obtain the PyObject of the Python
@@ -317,12 +330,10 @@ cmdpy_completer (struct cmd_list_element
   gdbpy_ref<> resultobj (cmdpy_completer_helper (command, text, word));
 
   /* If the result object of calling the Python function is NULL, it
-     means that there was an error.  In this case, just give up and
-     return NULL.  */
+     means that there was an error.  In this case, just give up.  */
   if (resultobj == NULL)
-    return NULL;
+    return;
 
-  result = NULL;
   if (PyInt_Check (resultobj.get ()))
     {
       /* User code may also return one of the completion constants,
@@ -335,15 +346,16 @@ cmdpy_completer (struct cmd_list_element
 	  PyErr_Clear ();
 	}
       else if (value >= 0 && value < (long) N_COMPLETERS)
-	result = completers[value].completer (command, text, word);
+	completers[value].completer (command, tracker, text, word);
     }
   else
     {
       gdbpy_ref<> iter (PyObject_GetIter (resultobj.get ()));
 
       if (iter == NULL)
-	return NULL;
+	return;
 
+      bool got_matches = false;
       while (true)
 	{
 	  gdbpy_ref<> elt (PyIter_Next (iter.get ()));
@@ -363,16 +375,15 @@ cmdpy_completer (struct cmd_list_element
 	      PyErr_Clear ();
 	      continue;
 	    }
-	  VEC_safe_push (char_ptr, result, item.release ());
+	  tracker.add_completion (std::move (item));
+	  got_matches = true;
 	}
 
       /* If we got some results, ignore problems.  Otherwise, report
 	 the problem.  */
-      if (result != NULL && PyErr_Occurred ())
+      if (got_matches && PyErr_Occurred ())
 	PyErr_Clear ();
     }
-
-  return result;
 }
 
 /* Helper for cmdpy_init which locates the command list to use and
@@ -600,7 +611,7 @@ cmdpy_init (PyObject *self, PyObject *ar
 				pfx_name, allow_unknown, cmd_list);
 	}
       else
-	cmd = add_cmd (cmd_name, (enum command_class) cmdtype, NULL,
+	cmd = add_cmd (cmd_name, (enum command_class) cmdtype,
 		       docstring, cmd_list);
 
       /* There appears to be no API to set this.  */
@@ -763,22 +774,16 @@ gdbpy_string_to_argv (PyObject *self, Py
 
   if (*input != '\0')
     {
-      char **c_argv = gdb_buildargv (input);
-      int i;
+      gdb_argv c_argv (input);
 
-      for (i = 0; c_argv[i] != NULL; ++i)
+      for (char *arg : c_argv)
 	{
-	  gdbpy_ref<> argp (PyString_FromString (c_argv[i]));
+	  gdbpy_ref<> argp (PyString_FromString (arg));
 
 	  if (argp == NULL
 	      || PyList_Append (py_argv.get (), argp.get ()) < 0)
-	    {
-	      freeargv (c_argv);
-	      return NULL;
-	    }
+	    return NULL;
 	}
-
-      freeargv (c_argv);
     }
 
   return py_argv.release ();
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-continueevent.c ./gdb/python/py-continueevent.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-continueevent.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-continueevent.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to inferior continue events.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -21,10 +21,7 @@
 #include "py-event.h"
 #include "py-ref.h"
 
-extern PyTypeObject continue_event_object_type
-    CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
-
-static PyObject *
+static gdbpy_ref<>
 create_continue_event_object (void)
 {
   return create_thread_event_object (&continue_event_object_type);
@@ -45,9 +42,3 @@ emit_continue_event (ptid_t ptid)
     return evpy_emit_event (event.get (), gdb_py_events.cont);
   return -1;
 }
-
-GDBPY_NEW_EVENT_TYPE (continue,
-                      "gdb.ContinueEvent",
-                      "ContinueEvent",
-                      "GDB continue event object",
-                      thread_event_object_type);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-event.c ./gdb/python/py-event.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-event.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-event.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to inferior events.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -27,7 +27,7 @@ evpy_dealloc (PyObject *self)
   Py_TYPE (self)->tp_free (self);
 }
 
-PyObject *
+gdbpy_ref<>
 create_event_object (PyTypeObject *py_type)
 {
   gdbpy_ref<event_object> event_obj (PyObject_New (event_object, py_type));
@@ -38,7 +38,7 @@ create_event_object (PyTypeObject *py_ty
   if (!event_obj->dict)
     return NULL;
 
-  return (PyObject*) event_obj.release ();
+  return gdbpy_ref<> ((PyObject *) event_obj.release ());
 }
 
 /* Add the attribute ATTR to the event object EVENT.  In
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-event.h ./gdb/python/py-event.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-event.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-event.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to inferior events.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -26,74 +26,12 @@
 #include "inferior.h"
 #include "py-ref.h"
 
-/* This macro creates the following functions:
-
-     gdbpy_initialize_{NAME}_event
-     Used to add the newly created event type to the gdb module.
-
-   and the python type data structure for the event:
-
-     struct PyTypeObject {NAME}_event_object_type
-
-  NAME is the name of the event.
-  PY_PATH is a string representing the module and python name of
-    the event.
-  PY_NAME a string representing what the event should be called in
-    python.
-  DOC Python documentation for the new event type
-  BASE the base event for this event usually just event_object_type.
-*/
-
-#define GDBPY_NEW_EVENT_TYPE(name, py_path, py_name, doc, base) \
-\
-  PyTypeObject name##_event_object_type		    \
-        CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object") \
-    = { \
-      PyVarObject_HEAD_INIT (NULL, 0)				\
-      py_path,                                    /* tp_name */ \
-      sizeof (event_object),                      /* tp_basicsize */ \
-      0,                                          /* tp_itemsize */ \
-      evpy_dealloc,                               /* tp_dealloc */ \
-      0,                                          /* tp_print */ \
-      0,                                          /* tp_getattr */ \
-      0,                                          /* tp_setattr */ \
-      0,                                          /* tp_compare */ \
-      0,                                          /* tp_repr */ \
-      0,                                          /* tp_as_number */ \
-      0,                                          /* tp_as_sequence */ \
-      0,                                          /* tp_as_mapping */ \
-      0,                                          /* tp_hash  */ \
-      0,                                          /* tp_call */ \
-      0,                                          /* tp_str */ \
-      0,                                          /* tp_getattro */ \
-      0,                                          /* tp_setattro */ \
-      0,                                          /* tp_as_buffer */ \
-      Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,   /* tp_flags */ \
-      doc,                                        /* tp_doc */ \
-      0,                                          /* tp_traverse */ \
-      0,                                          /* tp_clear */ \
-      0,                                          /* tp_richcompare */ \
-      0,                                          /* tp_weaklistoffset */ \
-      0,                                          /* tp_iter */ \
-      0,                                          /* tp_iternext */ \
-      0,                                          /* tp_methods */ \
-      0,                                          /* tp_members */ \
-      0,                                          /* tp_getset */ \
-      &base,                                      /* tp_base */ \
-      0,                                          /* tp_dict */ \
-      0,                                          /* tp_descr_get */ \
-      0,                                          /* tp_descr_set */ \
-      0,                                          /* tp_dictoffset */ \
-      0,                                          /* tp_init */ \
-      0                                           /* tp_alloc */ \
-    }; \
-\
-int \
-gdbpy_initialize_##name##_event (void) \
-{ \
-  return gdbpy_initialize_event_generic (&name##_event_object_type, \
-					 py_name);		    \
-}
+/* Declare all event types.  */
+#define GDB_PY_DEFINE_EVENT_TYPE(name, py_name, doc, base) \
+  extern PyTypeObject name##_event_object_type		    \
+        CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
+#include "py-event-types.def"
+#undef GDB_PY_DEFINE_EVENT_TYPE
 
 typedef struct
 {
@@ -124,8 +62,9 @@ extern int emit_memory_changed_event (CO
 extern int evpy_emit_event (PyObject *event,
                             eventregistry_object *registry);
 
-extern PyObject *create_event_object (PyTypeObject *py_type);
-extern PyObject *create_thread_event_object (PyTypeObject *py_type);
+extern gdbpy_ref<> create_event_object (PyTypeObject *py_type);
+extern gdbpy_ref<> create_thread_event_object (PyTypeObject *py_type,
+					       PyObject *thread = nullptr);
 extern int emit_new_objfile_event (struct objfile *objfile);
 extern int emit_clear_objfiles_event (void);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-events.h ./gdb/python/py-events.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-events.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-events.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to inferior events.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -24,9 +24,6 @@
 #include "python-internal.h"
 #include "inferior.h"
 
-extern PyTypeObject thread_event_object_type
-    CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
-
 /* Stores a list of objects to be notified when the event for which this
    registry tracks occurs.  */
 
@@ -42,18 +39,10 @@ typedef struct
 
 typedef struct
 {
-  eventregistry_object *stop;
-  eventregistry_object *cont;
-  eventregistry_object *exited;
-  eventregistry_object *new_objfile;
-  eventregistry_object *clear_objfiles;
-  eventregistry_object *inferior_call;
-  eventregistry_object *memory_changed;
-  eventregistry_object *register_changed;
-  eventregistry_object *breakpoint_created;
-  eventregistry_object *breakpoint_deleted;
-  eventregistry_object *breakpoint_modified;
-  eventregistry_object *before_prompt;
+#define GDB_PY_DEFINE_EVENT(name)		\
+  eventregistry_object *name;
+#include "py-all-events.def"
+#undef GDB_PY_DEFINE_EVENT
 
   PyObject *module;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-event-types.def ./gdb/python/py-event-types.def
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-event-types.def	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/python/py-event-types.def	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,107 @@
+/* Python event definitions -*- c++ -*-
+
+   Copyright (C) 2017-2018 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/>.  */
+
+/* To use this file, define GDB_PY_DEFINE_EVENT_TYPE to expand how you
+   like, then include the file.
+
+   Each invocation is of the form:
+
+   GDB_PY_DEFINE_EVENT_TYPE(name, py_name, doc, base)
+
+   NAME is the name of the event.
+   PY_NAME a string representing what the event should be called in
+   python.
+   DOC Python documentation for the new event type
+   BASE the base event for this event usually just event_object_type.
+*/
+
+GDB_PY_DEFINE_EVENT_TYPE (breakpoint,
+			  "BreakpointEvent",
+			  "GDB breakpoint stop event object",
+			  stop_event_object_type);
+
+GDB_PY_DEFINE_EVENT_TYPE (continue,
+			  "ContinueEvent",
+			  "GDB continue event object",
+			  thread_event_object_type);
+
+GDB_PY_DEFINE_EVENT_TYPE (exited,
+			  "ExitedEvent",
+			  "GDB exited event object",
+			  event_object_type);
+
+GDB_PY_DEFINE_EVENT_TYPE (new_thread,
+			  "NewThreadEvent",
+			  "GDB new thread event object",
+			  thread_event_object_type);
+
+GDB_PY_DEFINE_EVENT_TYPE (new_inferior,
+			  "NewInferiorEvent",
+			  "GDB new inferior event object",
+			  event_object_type);
+
+GDB_PY_DEFINE_EVENT_TYPE (inferior_deleted,
+			  "InferiorDeletedEvent",
+			  "GDB inferior deleted event object",
+			  event_object_type);
+
+GDB_PY_DEFINE_EVENT_TYPE (inferior_call_pre,
+			  "InferiorCallPreEvent",
+			  "GDB inferior function pre-call event object",
+			  event_object_type);
+
+GDB_PY_DEFINE_EVENT_TYPE (inferior_call_post,
+			  "InferiorCallPostEvent",
+			  "GDB inferior function post-call event object",
+			  event_object_type);
+
+GDB_PY_DEFINE_EVENT_TYPE (register_changed,
+			  "RegisterChangedEvent",
+			  "GDB register change event object",
+			  event_object_type);
+
+GDB_PY_DEFINE_EVENT_TYPE (memory_changed,
+			  "MemoryChangedEvent",
+			  "GDB memory change event object",
+			  event_object_type);
+
+GDB_PY_DEFINE_EVENT_TYPE (new_objfile,
+			  "NewObjFileEvent",
+			  "GDB new object file event object",
+			  event_object_type);
+
+GDB_PY_DEFINE_EVENT_TYPE (clear_objfiles,
+			  "ClearObjFilesEvent",
+			  "GDB clear object files event object",
+			  event_object_type);
+
+GDB_PY_DEFINE_EVENT_TYPE (signal,
+			  "SignalEvent",
+			  "GDB signal event object",
+			  stop_event_object_type);
+
+GDB_PY_DEFINE_EVENT_TYPE (stop,
+			  "StopEvent",
+			  "GDB stop event object",
+			  thread_event_object_type);
+
+GDB_PY_DEFINE_EVENT_TYPE (thread,
+			  "ThreadEvent",
+			  "GDB thread event object",
+			  event_object_type);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-evtregistry.c ./gdb/python/py-evtregistry.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-evtregistry.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-evtregistry.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to inferior thread event registries.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-evts.c ./gdb/python/py-evts.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-evts.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-evts.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to inferior events.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -62,46 +62,11 @@ gdbpy_initialize_py_events (void)
   if (!gdb_py_events.module)
     return -1;
 
-  if (add_new_registry (&gdb_py_events.stop, "stop") < 0)
-    return -1;
-
-  if (add_new_registry (&gdb_py_events.cont, "cont") < 0)
-    return -1;
-
-  if (add_new_registry (&gdb_py_events.exited, "exited") < 0)
-    return -1;
-
-  if (add_new_registry (&gdb_py_events.inferior_call,
-			"inferior_call") < 0)
-    return -1;
-
-  if (add_new_registry (&gdb_py_events.memory_changed,
-			"memory_changed") < 0)
-    return -1;
-
-  if (add_new_registry (&gdb_py_events.register_changed,
-			"register_changed") < 0)
-    return -1;
-
-  if (add_new_registry (&gdb_py_events.new_objfile, "new_objfile") < 0)
-    return -1;
-
-  if (add_new_registry (&gdb_py_events.clear_objfiles, "clear_objfiles") < 0)
-    return -1;
-
-  if (add_new_registry (&gdb_py_events.breakpoint_created,
-			"breakpoint_created") < 0)
-    return -1;
-
-  if (add_new_registry (&gdb_py_events.breakpoint_deleted,
-			"breakpoint_deleted") < 0)
-    return -1;
-  if (add_new_registry (&gdb_py_events.breakpoint_modified,
-			"breakpoint_modified") < 0)
-    return -1;
-
-  if (add_new_registry (&gdb_py_events.before_prompt, "before_prompt") < 0)
+#define GDB_PY_DEFINE_EVENT(name)				\
+  if (add_new_registry (&gdb_py_events.name, #name) < 0)	\
     return -1;
+#include "py-all-events.def"
+#undef GDB_PY_DEFINE_EVENT
 
   if (gdb_pymodule_addobject (gdb_module,
 			      "events",
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-exitedevent.c ./gdb/python/py-exitedevent.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-exitedevent.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-exitedevent.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to inferior exit events.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,9 +20,6 @@
 #include "defs.h"
 #include "py-event.h"
 
-extern PyTypeObject exited_event_object_type
-    CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
-
 static PyObject *
 create_exited_event_object (const LONGEST *exit_code, struct inferior *inf)
 {
@@ -67,10 +64,3 @@ emit_exited_event (const LONGEST *exit_c
 
   return -1;
 }
-
-
-GDBPY_NEW_EVENT_TYPE (exited,
-                      "gdb.ExitedEvent",
-                      "ExitedEvent",
-                      "GDB exited event object",
-                      event_object_type);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-finishbreakpoint.c ./gdb/python/py-finishbreakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-finishbreakpoint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-finishbreakpoint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to finish breakpoints
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-frame.c ./gdb/python/py-frame.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-frame.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-frame.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to stack frames
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -119,7 +119,7 @@ static PyObject *
 frapy_name (PyObject *self, PyObject *args)
 {
   struct frame_info *frame;
-  char *name = NULL;
+  gdb::unique_xmalloc_ptr<char> name;
   enum language lang;
   PyObject *result;
 
@@ -127,19 +127,18 @@ frapy_name (PyObject *self, PyObject *ar
     {
       FRAPY_REQUIRE_VALID (self, frame);
 
-      find_frame_funname (frame, &name, &lang, NULL);
+      name = find_frame_funname (frame, &lang, NULL);
     }
   CATCH (except, RETURN_MASK_ALL)
     {
-      xfree (name);
       GDB_PY_HANDLE_EXCEPTION (except);
     }
   END_CATCH
 
   if (name)
     {
-      result = PyUnicode_Decode (name, strlen (name), host_charset (), NULL);
-      xfree (name);
+      result = PyUnicode_Decode (name.get (), strlen (name.get ()),
+				 host_charset (), NULL);
     }
   else
     {
@@ -334,13 +333,12 @@ frapy_function (PyObject *self, PyObject
 
   TRY
     {
-      char *funname;
       enum language funlang;
 
       FRAPY_REQUIRE_VALID (self, frame);
 
-      find_frame_funname (frame, &funname, &funlang, &sym);
-      xfree (funname);
+      gdb::unique_xmalloc_ptr<char> funname
+	= find_frame_funname (frame, &funlang, &sym);
     }
   CATCH (except, RETURN_MASK_ALL)
     {
@@ -468,14 +466,13 @@ static PyObject *
 frapy_find_sal (PyObject *self, PyObject *args)
 {
   struct frame_info *frame;
-  struct symtab_and_line sal;
   PyObject *sal_obj = NULL;   /* Initialize to appease gcc warning.  */
 
   TRY
     {
       FRAPY_REQUIRE_VALID (self, frame);
 
-      find_frame_sal (frame, &sal);
+      symtab_and_line sal = find_frame_sal (frame);
       sal_obj = symtab_and_line_to_sal_object (sal);
     }
   CATCH (except, RETURN_MASK_ALL)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-framefilter.c ./gdb/python/py-framefilter.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-framefilter.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-framefilter.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python frame filters
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-function.c ./gdb/python/py-function.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-function.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-function.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Convenience functions implemented in Python.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-gdb-readline.c ./gdb/python/py-gdb-readline.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-gdb-readline.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-gdb-readline.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Readline support for Python.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -76,7 +76,7 @@ gdbpy_readline_wrapper (FILE *sys_stdin,
   q = (char *) PyMem_RawMalloc (n + 2);
   if (q != NULL)
     {
-      strncpy (q, p, n);
+      strcpy (q, p);
       q[n] = '\n';
       q[n + 1] = '\0';
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-inferior.c ./gdb/python/py-inferior.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-inferior.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-inferior.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to inferiors.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -235,6 +235,60 @@ inferior_to_inferior_object (struct infe
   return (PyObject *) inf_obj;
 }
 
+/* Called when a new inferior is created.  Notifies any Python event
+   listeners.  */
+static void
+python_new_inferior (struct inferior *inf)
+{
+  if (!gdb_python_initialized)
+    return;
+
+  gdbpy_enter enter_py (python_gdbarch, python_language);
+
+  if (evregpy_no_listeners_p (gdb_py_events.new_inferior))
+    return;
+
+  gdbpy_ref<> inf_obj (inferior_to_inferior_object (inf));
+  if (inf_obj == NULL)
+    {
+      gdbpy_print_stack ();
+      return;
+    }
+
+  gdbpy_ref<> event (create_event_object (&new_inferior_event_object_type));
+  if (event == NULL
+      || evpy_add_attribute (event.get (), "inferior", inf_obj.get ()) < 0
+      || evpy_emit_event (event.get (), gdb_py_events.new_inferior) < 0)
+    gdbpy_print_stack ();
+}
+
+/* Called when an inferior is removed.  Notifies any Python event
+   listeners.  */
+static void
+python_inferior_deleted (struct inferior *inf)
+{
+  if (!gdb_python_initialized)
+    return;
+
+  gdbpy_enter enter_py (python_gdbarch, python_language);
+
+  if (evregpy_no_listeners_p (gdb_py_events.inferior_deleted))
+    return;
+
+  gdbpy_ref<> inf_obj (inferior_to_inferior_object (inf));
+  if (inf_obj == NULL)
+    {
+      gdbpy_print_stack ();
+      return;
+    }
+
+  gdbpy_ref<> event (create_event_object (&inferior_deleted_event_object_type));
+  if (event == NULL
+      || evpy_add_attribute (event.get (), "inferior", inf_obj.get ()) < 0
+      || evpy_emit_event (event.get (), gdb_py_events.inferior_deleted) < 0)
+    gdbpy_print_stack ();
+}
+
 /* Finds the Python Inferior object for the given PID.  Returns a
    reference, or NULL if PID does not match any inferior object. */
 
@@ -298,6 +352,15 @@ add_thread_object (struct thread_info *t
 
   inf_obj->threads = entry;
   inf_obj->nthreads++;
+
+  if (evregpy_no_listeners_p (gdb_py_events.new_thread))
+    return;
+
+  gdbpy_ref<> event (create_thread_event_object (&new_thread_event_object_type,
+						 (PyObject *) thread_obj));
+  if (event == NULL
+      || evpy_emit_event (event.get (), gdb_py_events.new_thread) < 0)
+    gdbpy_print_stack ();
 }
 
 static void
@@ -751,6 +814,56 @@ infpy_is_valid (PyObject *self, PyObject
   Py_RETURN_TRUE;
 }
 
+/* Implementation of gdb.Inferior.thread_from_thread_handle (self, handle)
+                        ->  gdb.InferiorThread.  */
+
+PyObject *
+infpy_thread_from_thread_handle (PyObject *self, PyObject *args, PyObject *kw)
+{
+  PyObject *handle_obj, *result;
+  inferior_object *inf_obj = (inferior_object *) self;
+  static const char *keywords[] = { "thread_handle", NULL };
+
+  INFPY_REQUIRE_VALID (inf_obj);
+
+  if (! gdb_PyArg_ParseTupleAndKeywords (args, kw, "O", keywords, &handle_obj))
+    return NULL;
+
+  result = Py_None;
+
+  if (!gdbpy_is_value_object (handle_obj))
+    {
+      PyErr_SetString (PyExc_TypeError,
+		       _("Argument 'handle_obj' must be a thread handle object."));
+
+      return NULL;
+    }
+  else
+    {
+      TRY
+	{
+	  struct thread_info *thread_info;
+	  struct value *val = value_object_to_value (handle_obj);
+
+	  thread_info = find_thread_by_handle (val, inf_obj->inferior);
+	  if (thread_info != NULL)
+	    {
+	      result = (PyObject *) find_thread_object (thread_info->ptid);
+	      if (result != NULL)
+		Py_INCREF (result);
+	    }
+	}
+      CATCH (except, RETURN_MASK_ALL)
+	{
+	  GDB_PY_HANDLE_EXCEPTION (except);
+	}
+      END_CATCH
+    }
+
+  return result;
+}
+
+
 static void
 infpy_dealloc (PyObject *obj)
 {
@@ -823,6 +936,8 @@ gdbpy_initialize_inferior (void)
   observer_attach_register_changed (python_on_register_change);
   observer_attach_inferior_exit (python_inferior_exit);
   observer_attach_new_objfile (python_new_objfile);
+  observer_attach_inferior_added (python_new_inferior);
+  observer_attach_inferior_removed (python_inferior_deleted);
 
   membuf_object_type.tp_new = PyType_GenericNew;
   if (PyType_Ready (&membuf_object_type) < 0)
@@ -861,6 +976,10 @@ Write the given buffer object to the inf
     METH_VARARGS | METH_KEYWORDS,
     "search_memory (address, length, pattern) -> long\n\
 Return a long with the address of a match, or None." },
+  { "thread_from_thread_handle", (PyCFunction) infpy_thread_from_thread_handle,
+    METH_VARARGS | METH_KEYWORDS,
+    "thread_from_thread_handle (handle) -> gdb.InferiorThread.\n\
+Return thread object corresponding to thread handle." },
   { NULL }
 };
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-infevents.c ./gdb/python/py-infevents.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-infevents.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-infevents.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to inferior function events.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -21,15 +21,6 @@
 #include "py-event.h"
 #include "py-ref.h"
 
-extern PyTypeObject inferior_call_pre_event_object_type
-    CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
-extern PyTypeObject inferior_call_post_event_object_type
-    CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
-extern PyTypeObject register_changed_event_object_type
-    CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
-extern PyTypeObject memory_changed_event_object_type
-    CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
-
 /* Construct either a gdb.InferiorCallPreEvent or a
    gdb.InferiorCallPostEvent. */
 
@@ -38,15 +29,14 @@ create_inferior_call_event_object (infer
 				   CORE_ADDR addr)
 {
   gdbpy_ref<> event;
-  int failed;
 
   switch (flag)
     {
     case INFERIOR_CALL_PRE:
-      event.reset (create_event_object (&inferior_call_pre_event_object_type));
+      event = create_event_object (&inferior_call_pre_event_object_type);
       break;
     case INFERIOR_CALL_POST:
-      event.reset (create_event_object (&inferior_call_post_event_object_type));
+      event = create_event_object (&inferior_call_post_event_object_type);
       break;
     default:
       gdb_assert_not_reached ("invalid inferior_call_kind");
@@ -172,28 +162,3 @@ emit_register_changed_event (struct fram
     return evpy_emit_event (event.get (), gdb_py_events.register_changed);
   return -1;
 }
-
-
-GDBPY_NEW_EVENT_TYPE (inferior_call_pre,
-		      "gdb.InferiorCallPreEvent",
-		      "InferiorCallPreEvent",
-		      "GDB inferior function pre-call event object",
-		      event_object_type);
-
-GDBPY_NEW_EVENT_TYPE (inferior_call_post,
-		      "gdb.InferiorCallPostEvent",
-		      "InferiorCallPostEvent",
-		      "GDB inferior function post-call event object",
-		      event_object_type);
-
-GDBPY_NEW_EVENT_TYPE (register_changed,
-		      "gdb.RegisterChangedEvent",
-		      "RegisterChangedEvent",
-		      "GDB register change event object",
-		      event_object_type);
-
-GDBPY_NEW_EVENT_TYPE (memory_changed,
-		      "gdb.MemoryChangedEvent",
-		      "MemoryChangedEvent",
-		      "GDB memory change event object",
-		      event_object_type);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-infthread.c ./gdb/python/py-infthread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-infthread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-infthread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to inferior threads.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -162,6 +162,7 @@ thpy_get_inferior (PyObject *self, void 
   thread_object *thread_obj = (thread_object *) self;
 
   THPY_REQUIRE_VALID (thread_obj);
+  Py_INCREF (thread_obj->inf_obj);
 
   return thread_obj->inf_obj;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-instruction.c ./gdb/python/py-instruction.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-instruction.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-instruction.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to instruction objects.
 
-   Copyright 2017 Free Software Foundation, Inc.
+   Copyright 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-instruction.h ./gdb/python/py-instruction.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-instruction.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-instruction.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to instruction objects.
 
-   Copyright 2017 Free Software Foundation, Inc.
+   Copyright 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-lazy-string.c ./gdb/python/py-lazy-string.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-lazy-string.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-lazy-string.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to lazy strings.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-linetable.c ./gdb/python/py-linetable.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-linetable.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-linetable.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to line tables.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-newobjfileevent.c ./gdb/python/py-newobjfileevent.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-newobjfileevent.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-newobjfileevent.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to new object file loading events.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,11 +20,6 @@
 #include "defs.h"
 #include "py-event.h"
 
-extern PyTypeObject new_objfile_event_object_type
-    CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
-extern PyTypeObject clear_objfiles_event_object_type
-    CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
-
 static PyObject *
 create_new_objfile_event_object (struct objfile *objfile)
 {
@@ -62,11 +57,6 @@ emit_new_objfile_event (struct objfile *
   return -1;
 }
 
-GDBPY_NEW_EVENT_TYPE (new_objfile,
-                      "gdb.NewObjFileEvent",
-                      "NewObjFileEvent",
-                      "GDB new object file event object",
-                      event_object_type);
 
 /* Subroutine of emit_clear_objfiles_event to simplify it.  */
 
@@ -107,9 +97,3 @@ emit_clear_objfiles_event (void)
     return evpy_emit_event (event.get (), gdb_py_events.clear_objfiles);
   return -1;
 }
-
-GDBPY_NEW_EVENT_TYPE (clear_objfiles,
-		      "gdb.ClearObjFilesEvent",
-		      "ClearObjFilesEvent",
-		      "GDB clear object files event object",
-		      event_object_type);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-objfile.c ./gdb/python/py-objfile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-objfile.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-objfile.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to objfiles.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-param.c ./gdb/python/py-param.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-param.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-param.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB parameters implemented in Python
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -357,7 +357,7 @@ call_doc_function (PyObject *obj, PyObje
    neither exist, insert a string indicating the Parameter is not
    documented.  */
 static void
-get_set_value (char *args, int from_tty,
+get_set_value (const char *args, int from_tty,
 	       struct cmd_list_element *c)
 {
   PyObject *obj = (PyObject *) get_cmd_context (c);
@@ -555,7 +555,6 @@ static int
 compute_enum_values (parmpy_object *self, PyObject *enum_values)
 {
   Py_ssize_t size, i;
-  struct cleanup *back_to;
 
   if (! enum_values)
     {
@@ -581,36 +580,27 @@ compute_enum_values (parmpy_object *self
       return 0;
     }
 
-  self->enumeration = XCNEWVEC (const char *, size + 1);
-  back_to = make_cleanup (free_current_contents, &self->enumeration);
+  gdb_argv holder (XCNEWVEC (char *, size + 1));
+  char **enumeration = holder.get ();
 
   for (i = 0; i < size; ++i)
     {
       gdbpy_ref<> item (PySequence_GetItem (enum_values, i));
 
       if (item == NULL)
-	{
-	  do_cleanups (back_to);
-	  return 0;
-	}
+	return 0;
       if (! gdbpy_is_string (item.get ()))
 	{
-	  do_cleanups (back_to);
 	  PyErr_SetString (PyExc_RuntimeError,
 			   _("The enumeration item not a string."));
 	  return 0;
 	}
-      self->enumeration[i]
-	= python_string_to_host_string (item.get ()).release ();
-      if (self->enumeration[i] == NULL)
-	{
-	  do_cleanups (back_to);
-	  return 0;
-	}
-      make_cleanup (xfree, (char *) self->enumeration[i]);
+      enumeration[i] = python_string_to_host_string (item.get ()).release ();
+      if (enumeration[i] == NULL)
+	return 0;
     }
 
-  discard_cleanups (back_to);
+  self->enumeration = const_cast<const char**> (holder.release ());
   return 1;
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-prettyprint.c ./gdb/python/py-prettyprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-prettyprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-prettyprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python pretty-printing
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-progspace.c ./gdb/python/py-progspace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-progspace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-progspace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to program spaces.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-record-btrace.c ./gdb/python/py-record-btrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-record-btrace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-record-btrace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to btrace instruction history.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -376,7 +376,7 @@ recpy_bt_func_instructions (PyObject *se
   if (func == NULL)
     return NULL;
 
-  len = VEC_length (btrace_insn_s, func->insn);
+  len = func->insn.size ();
 
   /* Gaps count as one instruction.  */
   if (len == 0)
@@ -398,11 +398,11 @@ recpy_bt_func_up (PyObject *self, void *
   if (func == NULL)
     return NULL;
 
-  if (func->up == NULL)
+  if (func->up == 0)
     Py_RETURN_NONE;
 
   return recpy_func_new (((recpy_element_object *) self)->ptid,
-			 RECORD_METHOD_BTRACE, func->up->number);
+			 RECORD_METHOD_BTRACE, func->up);
 }
 
 /* Implementation of RecordFunctionSegment.prev [RecordFunctionSegment] for
@@ -416,11 +416,11 @@ recpy_bt_func_prev (PyObject *self, void
   if (func == NULL)
     return NULL;
 
-  if (func->segment.prev == NULL)
+  if (func->prev == 0)
     Py_RETURN_NONE;
 
   return recpy_func_new (((recpy_element_object *) self)->ptid,
-			 RECORD_METHOD_BTRACE, func->segment.prev->number);
+			 RECORD_METHOD_BTRACE, func->prev);
 }
 
 /* Implementation of RecordFunctionSegment.next [RecordFunctionSegment] for
@@ -434,11 +434,11 @@ recpy_bt_func_next (PyObject *self, void
   if (func == NULL)
     return NULL;
 
-  if (func->segment.next == NULL)
+  if (func->next == 0)
     Py_RETURN_NONE;
 
   return recpy_func_new (((recpy_element_object *) self)->ptid,
-			 RECORD_METHOD_BTRACE, func->segment.next->number);
+			 RECORD_METHOD_BTRACE, func->next);
 }
 
 /* Implementation of BtraceList.__len__ (self) -> int.  */
@@ -464,7 +464,6 @@ static PyObject *
 btpy_list_item (PyObject *self, Py_ssize_t index)
 {
   const btpy_list_object * const obj = (btpy_list_object *) self;
-  struct thread_info * const tinfo = find_thread_ptid (obj->ptid);
   Py_ssize_t number;
 
   if (index < 0 || index >= btpy_list_length (self))
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-record-btrace.h ./gdb/python/py-record-btrace.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-record-btrace.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-record-btrace.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to btrace record targets.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-record.c ./gdb/python/py-record.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-record.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-record.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to record targets.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-record-full.c ./gdb/python/py-record-full.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-record-full.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-record-full.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to btrace instruction history.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-record-full.h ./gdb/python/py-record-full.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-record-full.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-record-full.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to full record targets.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-record.h ./gdb/python/py-record.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-record.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-record.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to record targets.
 
-   Copyright 2017 Free Software Foundation, Inc.
+   Copyright 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-ref.h ./gdb/python/py-ref.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-ref.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-ref.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python reference-holding class
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-signalevent.c ./gdb/python/py-signalevent.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-signalevent.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-signalevent.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to inferior signal stop events.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,10 +20,7 @@
 #include "defs.h"
 #include "py-stopevent.h"
 
-extern PyTypeObject signal_event_object_type
-    CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
-
-PyObject *
+gdbpy_ref<>
 create_signal_event_object (enum gdb_signal stop_signal)
 {
   const char *signal_name;
@@ -43,11 +40,5 @@ create_signal_event_object (enum gdb_sig
                           signal_name_obj.get ()) < 0)
     return NULL;
 
-  return signal_event_obj.release ();
+  return signal_event_obj;
 }
-
-GDBPY_NEW_EVENT_TYPE (signal,
-                      "gdb.SignalEvent",
-                      "SignalEvent",
-                      "GDB signal event object",
-                      stop_event_object_type);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-stopevent.c ./gdb/python/py-stopevent.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-stopevent.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-stopevent.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to inferior stop events.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,7 +20,7 @@
 #include "defs.h"
 #include "py-stopevent.h"
 
-PyObject *
+gdbpy_ref<>
 create_stop_event_object (PyTypeObject *py_type)
 {
   return create_thread_event_object (py_type);
@@ -70,8 +70,8 @@ emit_stop_event (struct bpstats *bs, enu
 
   if (list != NULL)
     {
-      stop_event_obj.reset (create_breakpoint_event_object (list.get (),
-							    first_bp));
+      stop_event_obj = create_breakpoint_event_object (list.get (),
+						       first_bp);
       if (stop_event_obj == NULL)
 	return -1;
     }
@@ -80,7 +80,7 @@ emit_stop_event (struct bpstats *bs, enu
   if (stop_signal != GDB_SIGNAL_0
       && stop_signal != GDB_SIGNAL_TRAP)
     {
-      stop_event_obj.reset (create_signal_event_object (stop_signal));
+      stop_event_obj = create_signal_event_object (stop_signal);
       if (stop_event_obj == NULL)
 	return -1;
     }
@@ -89,16 +89,10 @@ emit_stop_event (struct bpstats *bs, enu
      be known and this should eventually be unused.  */
   if (stop_event_obj == NULL)
     {
-      stop_event_obj.reset (create_stop_event_object (&stop_event_object_type));
+      stop_event_obj = create_stop_event_object (&stop_event_object_type);
       if (stop_event_obj == NULL)
 	return -1;
     }
 
   return evpy_emit_event (stop_event_obj.get (), gdb_py_events.stop);
 }
-
-GDBPY_NEW_EVENT_TYPE (stop,
-                      "gdb.StopEvent",
-                      "StopEvent",
-                      "GDB stop event object",
-                      thread_event_object_type);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-stopevent.h ./gdb/python/py-stopevent.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-stopevent.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-stopevent.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to inferior events.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -22,15 +22,15 @@
 
 #include "py-event.h"
 
-extern PyObject *create_stop_event_object (PyTypeObject *py_type);
+extern gdbpy_ref<> create_stop_event_object (PyTypeObject *py_type);
 extern void stop_evpy_dealloc (PyObject *self);
 
 extern int emit_stop_event (struct bpstats *bs,
                             enum gdb_signal stop_signal);
 
-extern PyObject *create_breakpoint_event_object (PyObject *breakpoint_list,
-                                                 PyObject *first_bp);
+extern gdbpy_ref<> create_breakpoint_event_object (PyObject *breakpoint_list,
+						   PyObject *first_bp);
 
-extern PyObject *create_signal_event_object (enum gdb_signal stop_signal);
+extern gdbpy_ref<> create_signal_event_object (enum gdb_signal stop_signal);
 
 #endif /* GDB_PY_STOPEVENT_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-symbol.c ./gdb/python/py-symbol.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-symbol.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-symbol.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to symbols.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-symtab.c ./gdb/python/py-symtab.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-symtab.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-symtab.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to symbol tables.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/python.c ./gdb/python/python.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/python.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/python.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* General python/gdb code
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -289,7 +289,7 @@ eval_python_command (const char *command
 /* Implementation of the gdb "python-interactive" command.  */
 
 static void
-python_interactive_command (char *arg, int from_tty)
+python_interactive_command (const char *arg, int from_tty)
 {
   struct ui *ui = current_ui;
   int err;
@@ -365,32 +365,19 @@ python_run_simple_file (FILE *file, cons
 }
 
 /* Given a command_line, return a command string suitable for passing
-   to Python.  Lines in the string are separated by newlines.  The
-   return value is allocated using xmalloc and the caller is
-   responsible for freeing it.  */
+   to Python.  Lines in the string are separated by newlines.  */
 
-static char *
+static std::string
 compute_python_string (struct command_line *l)
 {
   struct command_line *iter;
-  char *script = NULL;
-  int size = 0;
-  int here;
+  std::string script;
 
   for (iter = l; iter; iter = iter->next)
-    size += strlen (iter->line) + 1;
-
-  script = (char *) xmalloc (size + 1);
-  here = 0;
-  for (iter = l; iter; iter = iter->next)
     {
-      int len = strlen (iter->line);
-
-      strcpy (&script[here], iter->line);
-      here += len;
-      script[here++] = '\n';
+      script += iter->line;
+      script += '\n';
     }
-  script[here] = '\0';
   return script;
 }
 
@@ -402,16 +389,14 @@ gdbpy_eval_from_control_command (const s
 				 struct command_line *cmd)
 {
   int ret;
-  char *script;
 
   if (cmd->body_count != 1)
     error (_("Invalid \"python\" block structure."));
 
   gdbpy_enter enter_py (get_current_arch (), current_language);
 
-  script = compute_python_string (cmd->body_list[0]);
-  ret = PyRun_SimpleString (script);
-  xfree (script);
+  std::string script = compute_python_string (cmd->body_list[0]);
+  ret = PyRun_SimpleString (script.c_str ());
   if (ret)
     error (_("Error while executing Python code."));
 }
@@ -419,7 +404,7 @@ gdbpy_eval_from_control_command (const s
 /* Implementation of the gdb "python" command.  */
 
 static void
-python_command (char *arg, int from_tty)
+python_command (const char *arg, int from_tty)
 {
   gdbpy_enter enter_py (get_current_arch (), current_language);
 
@@ -599,8 +584,6 @@ execute_gdb_command (PyObject *self, PyO
 
   TRY
     {
-      /* Copy the argument text in case the command modifies it.  */
-      std::string copy (arg);
       struct interp *interp;
 
       scoped_restore save_async = make_scoped_restore (&current_ui->async, 0);
@@ -614,9 +597,9 @@ execute_gdb_command (PyObject *self, PyO
 
       scoped_restore preventer = prevent_dont_repeat ();
       if (to_string)
-	to_string_res = execute_command_to_string (&copy[0], from_tty);
+	to_string_res = execute_command_to_string (arg, from_tty);
       else
-	execute_command (&copy[0], from_tty);
+	execute_command (arg, from_tty);
     }
   CATCH (except, RETURN_MASK_ALL)
     {
@@ -657,17 +640,196 @@ gdbpy_solib_name (PyObject *self, PyObje
   return str_obj;
 }
 
+/* Implementation of Python rbreak command.  Take a REGEX and
+   optionally a MINSYMS, THROTTLE and SYMTABS keyword and return a
+   Python list that contains newly set breakpoints that match that
+   criteria.  REGEX refers to a GDB format standard regex pattern of
+   symbols names to search; MINSYMS is an optional boolean (default
+   False) that indicates if the function should search GDB's minimal
+   symbols; THROTTLE is an optional integer (default unlimited) that
+   indicates the maximum amount of breakpoints allowable before the
+   function exits (note, if the throttle bound is passed, no
+   breakpoints will be set and a runtime error returned); SYMTABS is
+   an optional Python iterable that contains a set of gdb.Symtabs to
+   constrain the search within.  */
+
+static PyObject *
+gdbpy_rbreak (PyObject *self, PyObject *args, PyObject *kw)
+{
+  /* A simple type to ensure clean up of a vector of allocated strings
+     when a C interface demands a const char *array[] type
+     interface.  */
+  struct symtab_list_type
+  {
+    ~symtab_list_type ()
+    {
+      for (const char *elem: vec)
+	xfree ((void *) elem);
+    }
+    std::vector<const char *> vec;
+  };
+
+  char *regex = NULL;
+  std::vector<symbol_search> symbols;
+  unsigned long count = 0;
+  PyObject *symtab_list = NULL;
+  PyObject *minsyms_p_obj = NULL;
+  int minsyms_p = 0;
+  unsigned int throttle = 0;
+  static const char *keywords[] = {"regex","minsyms", "throttle",
+				   "symtabs", NULL};
+  symtab_list_type symtab_paths;
+
+  if (!gdb_PyArg_ParseTupleAndKeywords (args, kw, "s|O!IO", keywords,
+					&regex, &PyBool_Type,
+					&minsyms_p_obj, &throttle,
+					&symtab_list))
+    return NULL;
+
+  /* Parse minsyms keyword.  */
+  if (minsyms_p_obj != NULL)
+    {
+      int cmp = PyObject_IsTrue (minsyms_p_obj);
+      if (cmp < 0)
+	return NULL;
+      minsyms_p = cmp;
+    }
+
+  /* The "symtabs" keyword is any Python iterable object that returns
+     a gdb.Symtab on each iteration.  If specified, iterate through
+     the provided gdb.Symtabs and extract their full path.  As
+     python_string_to_target_string returns a
+     gdb::unique_xmalloc_ptr<char> and a vector containing these types
+     cannot be coerced to a const char **p[] via the vector.data call,
+     release the value from the unique_xmalloc_ptr and place it in a
+     simple type symtab_list_type (which holds the vector and a
+     destructor that frees the contents of the allocated strings.  */
+  if (symtab_list != NULL)
+    {
+      gdbpy_ref<> iter (PyObject_GetIter (symtab_list));
+
+      if (iter == NULL)
+	return NULL;
+
+      while (true)
+	{
+	  gdbpy_ref<> next (PyIter_Next (iter.get ()));
+
+	  if (next == NULL)
+	    {
+	      if (PyErr_Occurred ())
+		return NULL;
+	      break;
+	    }
+
+	  gdbpy_ref<> obj_name (PyObject_GetAttrString (next.get (),
+							"filename"));
+
+	  if (obj_name == NULL)
+	    return NULL;
+
+	  /* Is the object file still valid?  */
+	  if (obj_name == Py_None)
+	    continue;
+
+	  gdb::unique_xmalloc_ptr<char> filename =
+	    python_string_to_target_string (obj_name.get ());
+
+	  if (filename == NULL)
+	    return NULL;
+
+	  /* Make sure there is a definite place to store the value of
+	     filename before it is released.  */
+	  symtab_paths.vec.push_back (nullptr);
+	  symtab_paths.vec.back () = filename.release ();
+	}
+    }
+
+  if (symtab_list)
+    {
+      const char **files = symtab_paths.vec.data ();
+
+      symbols = search_symbols (regex, FUNCTIONS_DOMAIN,
+				symtab_paths.vec.size (), files);
+    }
+  else
+    symbols = search_symbols (regex, FUNCTIONS_DOMAIN, 0, NULL);
+
+  /* Count the number of symbols (both symbols and optionally minimal
+     symbols) so we can correctly check the throttle limit.  */
+  for (const symbol_search &p : symbols)
+    {
+      /* Minimal symbols included?  */
+      if (minsyms_p)
+	{
+	  if (p.msymbol.minsym != NULL)
+	    count++;
+	}
+
+      if (p.symbol != NULL)
+	count++;
+    }
+
+  /* Check throttle bounds and exit if in excess.  */
+  if (throttle != 0 && count > throttle)
+    {
+      PyErr_SetString (PyExc_RuntimeError,
+		       _("Number of breakpoints exceeds throttled maximum."));
+      return NULL;
+    }
+
+  gdbpy_ref<> return_list (PyList_New (0));
+
+  if (return_list == NULL)
+    return NULL;
+
+  /* Construct full path names for symbols and call the Python
+     breakpoint constructor on the resulting names.  Be tolerant of
+     individual breakpoint failures.  */
+  for (const symbol_search &p : symbols)
+    {
+      std::string symbol_name;
+
+      /* Skipping minimal symbols?  */
+      if (minsyms_p == 0)
+	if (p.msymbol.minsym != NULL)
+	  continue;
+
+      if (p.msymbol.minsym == NULL)
+	{
+	  struct symtab *symtab = symbol_symtab (p.symbol);
+	  const char *fullname = symtab_to_fullname (symtab);
+
+	  symbol_name = fullname;
+	  symbol_name  += ":";
+	  symbol_name  += SYMBOL_LINKAGE_NAME (p.symbol);
+	}
+      else
+	symbol_name = MSYMBOL_LINKAGE_NAME (p.msymbol.minsym);
+
+      gdbpy_ref<> argList (Py_BuildValue("(s)", symbol_name.c_str ()));
+      gdbpy_ref<> obj (PyObject_CallObject ((PyObject *)
+					    &breakpoint_object_type,
+					    argList.get ()));
+
+      /* Tolerate individual breakpoint failures.  */
+      if (obj == NULL)
+	gdbpy_print_stack ();
+      else
+	{
+	  if (PyList_Append (return_list.get (), obj.get ()) == -1)
+	    return NULL;
+	}
+    }
+  return return_list.release ();
+}
+
 /* A Python function which is a wrapper for decode_line_1.  */
 
 static PyObject *
 gdbpy_decode_line (PyObject *self, PyObject *args)
 {
-  struct gdb_exception except = exception_none;
-  struct symtabs_and_lines sals = { NULL, 0 }; /* Initialize to
-						  appease gcc.  */
-  struct symtab_and_line sal;
-  char *arg = NULL;
-  struct cleanup *cleanups;
+  const char *arg = NULL;
   gdbpy_ref<> result;
   gdbpy_ref<> unparsed;
   event_location_up location;
@@ -675,62 +837,45 @@ gdbpy_decode_line (PyObject *self, PyObj
   if (! PyArg_ParseTuple (args, "|s", &arg))
     return NULL;
 
-  cleanups = make_cleanup (null_cleanup, NULL);
-
-  sals.sals = NULL;
-
   if (arg != NULL)
-    location = string_to_event_location_basic (&arg, python_language);
+    location = string_to_event_location_basic (&arg, python_language,
+					       symbol_name_match_type::WILD);
 
+  std::vector<symtab_and_line> decoded_sals;
+  symtab_and_line def_sal;
+  gdb::array_view<symtab_and_line> sals;
   TRY
     {
       if (location != NULL)
-	sals = decode_line_1 (location.get (), 0, NULL, NULL, 0);
+	{
+	  decoded_sals = decode_line_1 (location.get (), 0, NULL, NULL, 0);
+	  sals = decoded_sals;
+	}
       else
 	{
 	  set_default_source_symtab_and_line ();
-	  sal = get_current_source_symtab_and_line ();
-	  sals.sals = &sal;
-	  sals.nelts = 1;
+	  def_sal = get_current_source_symtab_and_line ();
+	  sals = def_sal;
 	}
     }
   CATCH (ex, RETURN_MASK_ALL)
     {
-      except = ex;
-    }
-  END_CATCH
-
-  if (sals.sals != NULL && sals.sals != &sal)
-    make_cleanup (xfree, sals.sals);
-
-  if (except.reason < 0)
-    {
-      do_cleanups (cleanups);
       /* We know this will always throw.  */
-      gdbpy_convert_exception (except);
+      gdbpy_convert_exception (ex);
       return NULL;
     }
+  END_CATCH
 
-  if (sals.nelts)
+  if (!sals.empty ())
     {
-      int i;
-
-      result.reset (PyTuple_New (sals.nelts));
+      result.reset (PyTuple_New (sals.size ()));
       if (result == NULL)
+	return NULL;
+      for (size_t i = 0; i < sals.size (); ++i)
 	{
-	  do_cleanups (cleanups);
-	  return NULL;
-	}
-      for (i = 0; i < sals.nelts; ++i)
-	{
-	  PyObject *obj;
-
-	  obj = symtab_and_line_to_sal_object (sals.sals[i]);
-	  if (! obj)
-	    {
-	      do_cleanups (cleanups);
-	      return NULL;
-	    }
+	  PyObject *obj = symtab_and_line_to_sal_object (sals[i]);
+	  if (obj == NULL)
+	    return NULL;
 
 	  PyTuple_SetItem (result.get (), i, obj);
 	}
@@ -743,19 +888,13 @@ gdbpy_decode_line (PyObject *self, PyObj
 
   gdbpy_ref<> return_result (PyTuple_New (2));
   if (return_result == NULL)
-    {
-      do_cleanups (cleanups);
-      return NULL;
-    }
+    return NULL;
 
   if (arg != NULL && strlen (arg) > 0)
     {
       unparsed.reset (PyString_FromString (arg));
       if (unparsed == NULL)
-	{
-	  do_cleanups (cleanups);
-	  return NULL;
-	}
+	return NULL;
     }
   else
     {
@@ -766,8 +905,6 @@ gdbpy_decode_line (PyObject *self, PyObj
   PyTuple_SetItem (return_result.get (), 0, unparsed.release ());
   PyTuple_SetItem (return_result.get (), 1, result.release ());
 
-  do_cleanups (cleanups);
-
   return return_result.release ();
 }
 
@@ -1443,7 +1580,7 @@ gdbpy_free_type_printers (const struct e
    command. */
 
 static void
-python_interactive_command (char *arg, int from_tty)
+python_interactive_command (const char *arg, int from_tty)
 {
   arg = skip_spaces (arg);
   if (arg && *arg)
@@ -1457,7 +1594,7 @@ python_interactive_command (char *arg, i
 }
 
 static void
-python_command (char *arg, int from_tty)
+python_command (const char *arg, int from_tty)
 {
   python_interactive_command (arg, from_tty);
 }
@@ -1474,7 +1611,7 @@ static struct cmd_list_element *user_sho
 /* Function for use by 'set python' prefix command.  */
 
 static void
-user_set_python (char *args, int from_tty)
+user_set_python (const char *args, int from_tty)
 {
   help_list (user_set_python_list, "set python ", all_commands,
 	     gdb_stdout);
@@ -1483,7 +1620,7 @@ user_set_python (char *args, int from_tt
 /* Function for use by 'show python' prefix command.  */
 
 static void
-user_show_python (char *args, int from_tty)
+user_show_python (const char *args, int from_tty)
 {
   cmd_show_list (user_show_python_list, from_tty, "");
 }
@@ -1518,21 +1655,12 @@ finalize_python (void *ignore)
 
   restore_active_ext_lang (previous_active);
 }
-#endif
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_python;
-
-#ifdef HAVE_PYTHON
 
 static bool
 do_start_initialization ()
 {
-  char *progname;
 #ifdef IS_PY3K
-  int i;
   size_t progsize, count;
-  char *oldloc;
   wchar_t *progname_copy;
 #endif
 
@@ -1543,35 +1671,33 @@ do_start_initialization ()
      /foo/bin/python
      /foo/lib/pythonX.Y/...
      This must be done before calling Py_Initialize.  */
-  progname = concat (ldirname (python_libdir).c_str (), SLASH_STRING, "bin",
-		     SLASH_STRING, "python", (char *) NULL);
+  gdb::unique_xmalloc_ptr<char> progname
+    (concat (ldirname (python_libdir).c_str (), SLASH_STRING, "bin",
+	      SLASH_STRING, "python", (char *) NULL));
 #ifdef IS_PY3K
-  oldloc = xstrdup (setlocale (LC_ALL, NULL));
+  std::string oldloc = setlocale (LC_ALL, NULL);
   setlocale (LC_ALL, "");
-  progsize = strlen (progname);
+  progsize = strlen (progname.get ());
   progname_copy = (wchar_t *) PyMem_Malloc ((progsize + 1) * sizeof (wchar_t));
   if (!progname_copy)
     {
-      xfree (oldloc);
       fprintf (stderr, "out of memory\n");
       return false;
     }
-  count = mbstowcs (progname_copy, progname, progsize + 1);
+  count = mbstowcs (progname_copy, progname.get (), progsize + 1);
   if (count == (size_t) -1)
     {
-      xfree (oldloc);
       fprintf (stderr, "Could not convert python path to string\n");
       return false;
     }
-  setlocale (LC_ALL, oldloc);
-  xfree (oldloc);
+  setlocale (LC_ALL, oldloc.c_str ());
 
   /* Note that Py_SetProgramName expects the string it is passed to
      remain alive for the duration of the program's execution, so
      it is not freed after this call.  */
   Py_SetProgramName (progname_copy);
 #else
-  Py_SetProgramName (progname);
+  Py_SetProgramName (progname.release ());
 #endif
 #endif
 
@@ -1647,23 +1773,17 @@ do_start_initialization ()
       || gdbpy_initialize_eventregistry () < 0
       || gdbpy_initialize_py_events () < 0
       || gdbpy_initialize_event () < 0
-      || gdbpy_initialize_stop_event () < 0
-      || gdbpy_initialize_signal_event () < 0
-      || gdbpy_initialize_breakpoint_event () < 0
-      || gdbpy_initialize_continue_event () < 0
-      || gdbpy_initialize_inferior_call_pre_event () < 0
-      || gdbpy_initialize_inferior_call_post_event () < 0
-      || gdbpy_initialize_register_changed_event () < 0
-      || gdbpy_initialize_memory_changed_event () < 0
-      || gdbpy_initialize_exited_event () < 0
-      || gdbpy_initialize_thread_event () < 0
-      || gdbpy_initialize_new_objfile_event ()  < 0
-      || gdbpy_initialize_clear_objfiles_event ()  < 0
       || gdbpy_initialize_arch () < 0
       || gdbpy_initialize_xmethods () < 0
       || gdbpy_initialize_unwind () < 0)
     return false;
 
+#define GDB_PY_DEFINE_EVENT_TYPE(name, py_name, doc, base)	\
+  if (gdbpy_initialize_event_generic (&name##_event_object_type, py_name) < 0) \
+    return false;
+#include "py-event-types.def"
+#undef GDB_PY_DEFINE_EVENT_TYPE
+
   gdbpy_to_string_cst = PyString_FromString ("to_string");
   if (gdbpy_to_string_cst == NULL)
     return false;
@@ -1974,7 +2094,9 @@ Return the name of the current target ch
   { "target_wide_charset", gdbpy_target_wide_charset, METH_NOARGS,
     "target_wide_charset () -> string.\n\
 Return the name of the current target wide charset." },
-
+  { "rbreak", (PyCFunction) gdbpy_rbreak, METH_VARARGS | METH_KEYWORDS,
+    "rbreak (Regex) -> List.\n\
+Return a Tuple containing gdb.Breakpoint objects that match the given Regex." },
   { "string_to_argv", gdbpy_string_to_argv, METH_VARARGS,
     "string_to_argv (String) -> Array.\n\
 Parse String and return an argv-like array.\n\
@@ -2016,4 +2138,51 @@ struct PyModuleDef python_GdbModuleDef =
   NULL
 };
 #endif
+
+/* Define all the event objects.  */
+#define GDB_PY_DEFINE_EVENT_TYPE(name, py_name, doc, base) \
+  PyTypeObject name##_event_object_type		    \
+        CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object") \
+    = { \
+      PyVarObject_HEAD_INIT (NULL, 0)				\
+      "gdb." py_name,                             /* tp_name */ \
+      sizeof (event_object),                      /* tp_basicsize */ \
+      0,                                          /* tp_itemsize */ \
+      evpy_dealloc,                               /* tp_dealloc */ \
+      0,                                          /* tp_print */ \
+      0,                                          /* tp_getattr */ \
+      0,                                          /* tp_setattr */ \
+      0,                                          /* tp_compare */ \
+      0,                                          /* tp_repr */ \
+      0,                                          /* tp_as_number */ \
+      0,                                          /* tp_as_sequence */ \
+      0,                                          /* tp_as_mapping */ \
+      0,                                          /* tp_hash  */ \
+      0,                                          /* tp_call */ \
+      0,                                          /* tp_str */ \
+      0,                                          /* tp_getattro */ \
+      0,                                          /* tp_setattro */ \
+      0,                                          /* tp_as_buffer */ \
+      Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,   /* tp_flags */ \
+      doc,                                        /* tp_doc */ \
+      0,                                          /* tp_traverse */ \
+      0,                                          /* tp_clear */ \
+      0,                                          /* tp_richcompare */ \
+      0,                                          /* tp_weaklistoffset */ \
+      0,                                          /* tp_iter */ \
+      0,                                          /* tp_iternext */ \
+      0,                                          /* tp_methods */ \
+      0,                                          /* tp_members */ \
+      0,                                          /* tp_getset */ \
+      &base,                                      /* tp_base */ \
+      0,                                          /* tp_dict */ \
+      0,                                          /* tp_descr_get */ \
+      0,                                          /* tp_descr_set */ \
+      0,                                          /* tp_dictoffset */ \
+      0,                                          /* tp_init */ \
+      0                                           /* tp_alloc */ \
+    };
+#include "py-event-types.def"
+#undef GDB_PY_DEFINE_EVENT_TYPE
+
 #endif /* HAVE_PYTHON */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/python.h ./gdb/python/python.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/python.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/python.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python/gdb header for generic use in gdb
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/python-internal.h ./gdb/python/python-internal.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/python-internal.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/python-internal.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Gdb/Python header for private use by Python module.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -373,12 +373,12 @@ extern PyTypeObject symbol_object_type
     CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("symbol_object");
 extern PyTypeObject event_object_type
     CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
-extern PyTypeObject stop_event_object_type
-    CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("event_object");
 extern PyTypeObject breakpoint_object_type
     CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("breakpoint_object");
 extern PyTypeObject frame_object_type
     CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("frame_object");
+extern PyTypeObject thread_object_type
+    CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("thread_object");
 
 typedef struct gdbpy_breakpoint_object
 {
@@ -606,30 +606,6 @@ int gdbpy_initialize_event (void)
   CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
 int gdbpy_initialize_py_events (void)
   CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
-int gdbpy_initialize_stop_event (void)
-  CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
-int gdbpy_initialize_signal_event (void)
-  CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
-int gdbpy_initialize_breakpoint_event (void)
-  CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
-int gdbpy_initialize_continue_event (void)
-  CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
-int gdbpy_initialize_inferior_call_pre_event (void)
-  CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
-int gdbpy_initialize_inferior_call_post_event (void)
-  CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
-int gdbpy_initialize_register_changed_event (void)
-  CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
-int gdbpy_initialize_memory_changed_event (void)
-  CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
-int gdbpy_initialize_exited_event (void)
-  CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
-int gdbpy_initialize_thread_event (void)
-  CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
-int gdbpy_initialize_new_objfile_event (void)
-  CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
-int gdbpy_initialize_clear_objfiles_event (void)
-  CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
 int gdbpy_initialize_arch (void)
   CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
 int gdbpy_initialize_xmethods (void)
@@ -650,8 +626,7 @@ class gdbpy_enter
 
   ~gdbpy_enter ();
 
-  gdbpy_enter (const gdbpy_enter &) = delete;
-  gdbpy_enter &operator= (const gdbpy_enter &) = delete;
+  DISABLE_COPY_AND_ASSIGN (gdbpy_enter);
 
  private:
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-threadevent.c ./gdb/python/py-threadevent.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-threadevent.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-threadevent.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -47,29 +47,24 @@ get_event_thread (void)
   return thread;
 }
 
-PyObject *
-create_thread_event_object (PyTypeObject *py_type)
+gdbpy_ref<>
+create_thread_event_object (PyTypeObject *py_type, PyObject *thread)
 {
-  PyObject *thread = NULL;
-
   gdbpy_ref<> thread_event_obj (create_event_object (py_type));
   if (thread_event_obj == NULL)
     return NULL;
 
-  thread = get_event_thread ();
-  if (!thread)
-    return NULL;
+  if (thread == NULL)
+    {
+      thread = get_event_thread ();
+      if (!thread)
+	return NULL;
+    }
 
   if (evpy_add_attribute (thread_event_obj.get (),
                           "inferior_thread",
                           thread) < 0)
     return NULL;
 
-  return thread_event_obj.release ();
+  return thread_event_obj;
 }
-
-GDBPY_NEW_EVENT_TYPE (thread,
-                      "gdb.ThreadEvent",
-                      "ThreadEvent",
-                      "GDB thread event object",
-                      event_object_type);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-type.c ./gdb/python/py-type.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-type.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-type.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to types.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -761,7 +761,6 @@ typy_lookup_type (struct demangle_compon
 		  const struct block *block)
 {
   struct type *type, *rtype = NULL;
-  char *type_name = NULL;
   enum demangle_component_type demangled_type;
 
   /* Save the type: typy_lookup_type() may (indirectly) overwrite
@@ -816,11 +815,8 @@ typy_lookup_type (struct demangle_compon
     return rtype;
 
   /* We don't have a type, so lookup the type.  */
-  type_name = cp_comp_to_string (demangled, 10);
-  type = typy_lookup_typename (type_name, block);
-  xfree (type_name);
-
-  return type;
+  gdb::unique_xmalloc_ptr<char> type_name = cp_comp_to_string (demangled, 10);
+  return typy_lookup_typename (type_name.get (), block);
 }
 
 /* This is a helper function for typy_template_argument that is used
@@ -969,7 +965,6 @@ static PyObject *
 typy_str (PyObject *self)
 {
   string_file thetype;
-  PyObject *result;
 
   TRY
     {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-unwind.c ./gdb/python/py-unwind.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-unwind.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-unwind.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python frame unwinder interface.
 
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -73,15 +73,6 @@ typedef struct
 /* The data we keep for a frame we can unwind: frame ID and an array of
    (register_number, register_value) pairs.  */
 
-struct reg_info
-{
-  /* Register number.  */
-  int number;
-
-  /* Register data bytes pointer.  */
-  gdb_byte data[MAX_REGISTER_SIZE];
-};
-
 typedef struct
 {
   /* Frame ID.  */
@@ -93,7 +84,7 @@ typedef struct
   /* Length of the `reg' array below.  */
   int reg_count;
 
-  struct reg_info reg[];
+  cached_reg_t reg[];
 } cached_frame_info;
 
 extern PyTypeObject pending_frame_object_type
@@ -483,14 +474,14 @@ pyuw_prev_register (struct frame_info *t
                     int regnum)
 {
   cached_frame_info *cached_frame = (cached_frame_info *) *cache_ptr;
-  struct reg_info *reg_info = cached_frame->reg;
-  struct reg_info *reg_info_end = reg_info + cached_frame->reg_count;
+  cached_reg_t *reg_info = cached_frame->reg;
+  cached_reg_t *reg_info_end = reg_info + cached_frame->reg_count;
 
   TRACE_PY_UNWIND (1, "%s (frame=%p,...,reg=%d)\n", __FUNCTION__, this_frame,
                    regnum);
   for (; reg_info < reg_info_end; ++reg_info)
     {
-      if (regnum == reg_info->number)
+      if (regnum == reg_info->num)
         return frame_unwind_got_bytes (this_frame, regnum, reg_info->data);
     }
 
@@ -548,6 +539,13 @@ pyuw_sniffer (const struct frame_unwind 
 				   pyo_pending_frame.get (), NULL));
   if (pyo_unwind_info == NULL)
     {
+      /* If the unwinder is cancelled due to a Ctrl-C, then propagate
+	 the Ctrl-C as a GDB exception instead of swallowing it.  */
+      if (PyErr_ExceptionMatches (PyExc_KeyboardInterrupt))
+	{
+	  PyErr_Clear ();
+	  quit ();
+	}
       gdbpy_print_stack ();
       return 0;
     }
@@ -580,13 +578,14 @@ pyuw_sniffer (const struct frame_unwind 
         struct value *value = value_object_to_value (reg->value);
         size_t data_size = register_size (gdbarch, reg->number);
 
-        cached_frame->reg[i].number = reg->number;
+	cached_frame->reg[i].num = reg->number;
 
         /* `value' validation was done before, just assert.  */
         gdb_assert (value != NULL);
         gdb_assert (data_size == TYPE_LENGTH (value_type (value)));
         gdb_assert (data_size <= MAX_REGISTER_SIZE);
 
+	cached_frame->reg[i].data = (gdb_byte *) xmalloc (data_size);
         memcpy (cached_frame->reg[i].data, value_contents (value), data_size);
       }
   }
@@ -601,6 +600,11 @@ static void
 pyuw_dealloc_cache (struct frame_info *this_frame, void *cache)
 {
   TRACE_PY_UNWIND (3, "%s: enter", __FUNCTION__);
+  cached_frame_info *cached_frame = (cached_frame_info *) cache;
+
+  for (int i = 0; i < cached_frame->reg_count; i++)
+    xfree (cached_frame->reg[i].data);
+
   xfree (cache);
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-utils.c ./gdb/python/py-utils.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-utils.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-utils.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* General utility routines for GDB/Python.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-value.c ./gdb/python/py-value.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-value.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-value.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Python interface to values.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -21,7 +21,7 @@
 #include "charset.h"
 #include "value.h"
 #include "language.h"
-#include "dfp.h"
+#include "target-float.h"
 #include "valprint.h"
 #include "infcall.h"
 #include "expression.h"
@@ -874,7 +874,6 @@ valpy_call (PyObject *self, PyObject *ar
   struct value *function = ((value_object *) self)->value;
   struct value **vargs = NULL;
   struct type *ftype = NULL;
-  struct value *mark = value_mark ();
   PyObject *result = NULL;
 
   TRY
@@ -925,7 +924,8 @@ valpy_call (PyObject *self, PyObject *ar
       scoped_value_mark free_values;
       struct value *return_value;
 
-      return_value = call_function_by_hand (function, args_count, vargs);
+      return_value = call_function_by_hand (function, NULL,
+					    args_count, vargs);
       result = value_to_value_object (return_value);
     }
   CATCH (except, RETURN_MASK_ALL)
@@ -1316,12 +1316,9 @@ valpy_nonzero (PyObject *self)
 
       if (is_integral_type (type) || TYPE_CODE (type) == TYPE_CODE_PTR)
 	nonzero = !!value_as_long (self_value->value);
-      else if (TYPE_CODE (type) == TYPE_CODE_FLT)
-	nonzero = value_as_double (self_value->value) != 0;
-      else if (TYPE_CODE (type) == TYPE_CODE_DECFLOAT)
-	nonzero = !decimal_is_zero (value_contents (self_value->value),
-				 TYPE_LENGTH (type),
-				 gdbarch_byte_order (get_type_arch (type)));
+      else if (is_floating_value (self_value->value))
+	nonzero = !target_float_is_zero (value_contents (self_value->value),
+					 type);
       else
 	/* All other values are True.  */
 	nonzero = 1;
@@ -1562,10 +1559,10 @@ valpy_float (PyObject *self)
     {
       type = check_typedef (type);
 
-      if (TYPE_CODE (type) != TYPE_CODE_FLT)
+      if (TYPE_CODE (type) != TYPE_CODE_FLT || !is_floating_value (value))
 	error (_("Cannot convert value to float."));
 
-      d = value_as_double (value);
+      d = target_float_to_host_double (value_contents (value), type);
     }
   CATCH (except, RETURN_MASK_ALL)
     {
@@ -1683,7 +1680,11 @@ convert_value_from_python (PyObject *obj
 	  double d = PyFloat_AsDouble (obj);
 
 	  if (! PyErr_Occurred ())
-	    value = value_from_double (builtin_type_pyfloat, d);
+	    {
+	      value = allocate_value (builtin_type_pyfloat);
+	      target_float_from_host_double (value_contents_raw (value),
+					     value_type (value), d);
+	    }
 	}
       else if (gdbpy_is_string (obj))
 	{
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-varobj.c ./gdb/python/py-varobj.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-varobj.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-varobj.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2018 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
@@ -71,7 +71,6 @@ py_varobj_iter_next (struct varobj_iter 
       if (PyErr_ExceptionMatches (gdbpy_gdb_memory_error))
 	{
 	  PyObject *type, *value, *trace;
-	  char *name_str;
 
 	  PyErr_Fetch (&type, &value, &trace);
 	  gdb::unique_xmalloc_ptr<char>
@@ -85,10 +84,10 @@ py_varobj_iter_next (struct varobj_iter 
 	      return NULL;
 	    }
 
-	  name_str = xstrprintf ("<error at %d>",
-				 self->next_raw_index++);
-	  item.reset (Py_BuildValue ("(ss)", name_str, value_str.get ()));
-	  xfree (name_str);
+	  std::string name_str = string_printf ("<error at %d>",
+						self->next_raw_index++);
+	  item.reset (Py_BuildValue ("(ss)", name_str.c_str (),
+				     value_str.get ()));
 	  if (item == NULL)
 	    {
 	      gdbpy_print_stack ();
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-xmethods.c ./gdb/python/py-xmethods.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/python/py-xmethods.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/python/py-xmethods.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support for debug methods in Python.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ravenscar-thread.c ./gdb/ravenscar-thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ravenscar-thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ravenscar-thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Ada Ravenscar thread support.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -31,17 +31,41 @@
 #include "regcache.h"
 #include "objfiles.h"
 
+/* This module provides support for "Ravenscar" tasks (Ada) when
+   debugging on bare-metal targets.
+
+   The typical situation is when debugging a bare-metal target over
+   the remote protocol. In that situation, the system does not know
+   about high-level comcepts such as threads, only about some code
+   running on one or more CPUs. And since the remote protocol does not
+   provide any handling for CPUs, the de facto standard for handling
+   them is to have one thread per CPU, where the thread's ptid has
+   its lwp field set to the CPU number (eg: 1 for the first CPU,
+   2 for the second one, etc).  This module will make that assumption.
+
+   This module then creates and maintains the list of threads based
+   on the list of Ada tasks, with one thread per Ada tasks. The convention
+   is that threads corresponding to the CPUs (see assumption above)
+   have a ptid_t of the form (PID, LWP, 0), which threads corresponding
+   to our Ada tasks have a ptid_t of the form (PID, 0, TID) where TID
+   is the Ada task's ID as extracted from Ada runtime information.
+
+   Switching to a given Ada tasks (or its underlying thread) is performed
+   by fetching the registers of that tasks from the memory area where
+   the registers were saved.  For any of the other operations, the
+   operation is performed by first finding the CPU on which the task
+   is running, switching to its corresponding ptid, and then performing
+   the operation on that ptid using the target beneath us.  */
+
 /* If non-null, ravenscar task support is enabled.  */
 static int ravenscar_task_support = 1;
 
 /* This module's target-specific operations.  */
 static struct target_ops ravenscar_ops;
 
-/* Some base target uses a special value for the null PID (exempli gratia
-   remote).  */
-static ptid_t base_magic_null_ptid;
-
-/* Ptid of the inferior as seen by the process stratum.  */
+/* PTID of the last thread that received an event.
+   This can be useful to determine the associated task that received
+   the event, to make it the current task.  */
 static ptid_t base_ptid;
 
 static const char running_thread_name[] = "__gnat_running_thread_table";
@@ -53,7 +77,7 @@ static const char ravenscar_runtime_init
   "system__bb__threads__initialize";
 
 static void ravenscar_update_thread_list (struct target_ops *ops);
-static ptid_t ravenscar_running_thread (void);
+static ptid_t ravenscar_active_task (int cpu);
 static const char *ravenscar_extra_thread_info (struct target_ops *self,
 						struct thread_info *tp);
 static int ravenscar_thread_alive (struct target_ops *ops, ptid_t ptid);
@@ -72,22 +96,106 @@ static int ravenscar_runtime_initialized
 static void ravenscar_inferior_created (struct target_ops *target,
 					int from_tty);
 
+/* Return nonzero iff PTID corresponds to a ravenscar task.  */
+
+static int
+is_ravenscar_task (ptid_t ptid)
+{
+  /* By construction, ravenscar tasks have their LWP set to zero.
+     Also make sure that the TID is nonzero, as some remotes, when
+     asked for the list of threads, will return the first thread
+     as having its TID set to zero.  For instance, TSIM version
+     2.0.48 for LEON3 sends 'm0' as a reply to the 'qfThreadInfo'
+     query, which the remote protocol layer then treats as a thread
+     whose TID is 0.  This is obviously not a ravenscar task.  */
+  return ptid_get_lwp (ptid) == 0 && ptid_get_tid (ptid) != 0;
+}
+
+/* Given PTID, which can be either a ravenscar task or a CPU thread,
+   return which CPU that ptid is running on.
+
+   This assume that PTID is a valid ptid_t.  Otherwise, a gdb_assert
+   will be triggered.  */
+
+static int
+ravenscar_get_thread_base_cpu (ptid_t ptid)
+{
+  int base_cpu;
+
+  if (is_ravenscar_task (ptid))
+    {
+      struct ada_task_info *task_info = ada_get_task_info_from_ptid (ptid);
+
+      gdb_assert (task_info != NULL);
+      base_cpu = task_info->base_cpu;
+    }
+  else
+    {
+      /* We assume that the LWP of the PTID is equal to the CPU number.  */
+      base_cpu = ptid_get_lwp (ptid);
+    }
+
+  return base_cpu;
+}
+
+/* Given a ravenscar task (identified by its ptid_t PTID), return nonzero
+   if this task is the currently active task on the cpu that task is
+   running on.
+
+   In other words, this function determine which CPU this task is
+   currently running on, and then return nonzero if the CPU in question
+   is executing the code for that task.  If that's the case, then
+   that task's registers are in the CPU bank.  Otherwise, the task
+   is currently suspended, and its registers have been saved in memory.  */
+
+static int
+ravenscar_task_is_currently_active (ptid_t ptid)
+{
+  ptid_t active_task_ptid
+    = ravenscar_active_task (ravenscar_get_thread_base_cpu (ptid));
+
+  return ptid_equal (ptid, active_task_ptid);
+}
+
+/* Return the CPU thread (as a ptid_t) on which the given ravenscar
+   task is running.
+
+   This is the thread that corresponds to the CPU on which the task
+   is running.  */
+
+static ptid_t
+get_base_thread_from_ravenscar_task (ptid_t ptid)
+{
+  int base_cpu;
+
+  if (!is_ravenscar_task (ptid))
+    return ptid;
+
+  base_cpu = ravenscar_get_thread_base_cpu (ptid);
+  return ptid_build (ptid_get_pid (ptid), base_cpu, 0);
+}
+
 /* Fetch the ravenscar running thread from target memory and
    update inferior_ptid accordingly.  */
 
 static void
 ravenscar_update_inferior_ptid (void)
 {
+  int base_cpu;
+
   base_ptid = inferior_ptid;
 
+  gdb_assert (!is_ravenscar_task (inferior_ptid));
+  base_cpu = ravenscar_get_thread_base_cpu (base_ptid);
+
   /* If the runtime has not been initialized yet, the inferior_ptid is
      the only ptid that there is.  */
   if (!ravenscar_runtime_initialized ())
     return;
 
-  /* Make sure we set base_ptid before calling ravenscar_running_thread
+  /* Make sure we set base_ptid before calling ravenscar_active_task
      as the latter relies on it.  */
-  inferior_ptid = ravenscar_running_thread ();
+  inferior_ptid = ravenscar_active_task (base_cpu);
   gdb_assert (!ptid_equal (inferior_ptid, null_ptid));
 
   /* The running thread may not have been added to
@@ -144,14 +252,14 @@ has_ravenscar_runtime (void)
 static int
 ravenscar_runtime_initialized (void)
 {
-  return (!(ptid_equal (ravenscar_running_thread (), null_ptid)));
+  return (!(ptid_equal (ravenscar_active_task (1), null_ptid)));
 }
 
 /* Return the ID of the thread that is currently running.
    Return 0 if the ID could not be determined.  */
 
 static CORE_ADDR
-get_running_thread_id (void)
+get_running_thread_id (int cpu)
 {
   struct bound_minimal_symbol object_msym = get_running_thread_msymbol ();
   int object_size;
@@ -164,8 +272,9 @@ get_running_thread_id (void)
   if (!object_msym.minsym)
     return 0;
 
-  object_addr = BMSYMBOL_VALUE_ADDRESS (object_msym);
   object_size = TYPE_LENGTH (builtin_type_void_data_ptr);
+  object_addr = (BMSYMBOL_VALUE_ADDRESS (object_msym)
+		 + (cpu - 1) * object_size);
   buf_size = object_size;
   buf = (gdb_byte *) alloca (buf_size);
   read_memory (object_addr, buf, buf_size);
@@ -188,9 +297,10 @@ ravenscar_wait (struct target_ops *ops, 
                 int options)
 {
   struct target_ops *beneath = find_target_beneath (ops);
+  ptid_t event_ptid;
 
   inferior_ptid = base_ptid;
-  beneath->to_wait (beneath, base_ptid, status, 0);
+  event_ptid = beneath->to_wait (beneath, base_ptid, status, 0);
   /* Find any new threads that might have been created, and update
      inferior_ptid to the active thread.
 
@@ -201,6 +311,7 @@ ravenscar_wait (struct target_ops *ops, 
   if (status->kind != TARGET_WAITKIND_EXITED
       && status->kind != TARGET_WAITKIND_SIGNALLED)
     {
+      inferior_ptid = event_ptid;
       ravenscar_update_thread_list (ops);
       ravenscar_update_inferior_ptid ();
     }
@@ -231,9 +342,9 @@ ravenscar_update_thread_list (struct tar
 }
 
 static ptid_t
-ravenscar_running_thread (void)
+ravenscar_active_task (int cpu)
 {
-  CORE_ADDR tid = get_running_thread_id ();
+  CORE_ADDR tid = get_running_thread_id (cpu);
 
   if (tid == 0)
     return null_ptid;
@@ -270,18 +381,18 @@ ravenscar_fetch_registers (struct target
   struct target_ops *beneath = find_target_beneath (ops);
   ptid_t ptid = regcache_get_ptid (regcache);
 
-  if (!ravenscar_runtime_initialized ()
-      || ptid_equal (ptid, base_magic_null_ptid)
-      || ptid_equal (ptid, ravenscar_running_thread ()))
-    beneath->to_fetch_registers (beneath, regcache, regnum);
-  else
+  if (ravenscar_runtime_initialized ()
+      && is_ravenscar_task (ptid)
+      && !ravenscar_task_is_currently_active (ptid))
     {
-      struct gdbarch *gdbarch = get_regcache_arch (regcache);
+      struct gdbarch *gdbarch = regcache->arch ();
       struct ravenscar_arch_ops *arch_ops
 	= gdbarch_ravenscar_ops (gdbarch);
 
       arch_ops->to_fetch_registers (regcache, regnum);
     }
+  else
+    beneath->to_fetch_registers (beneath, regcache, regnum);
 }
 
 static void
@@ -291,18 +402,18 @@ ravenscar_store_registers (struct target
   struct target_ops *beneath = find_target_beneath (ops);
   ptid_t ptid = regcache_get_ptid (regcache);
 
-  if (!ravenscar_runtime_initialized ()
-      || ptid_equal (ptid, base_magic_null_ptid)
-      || ptid_equal (ptid, ravenscar_running_thread ()))
-    beneath->to_store_registers (beneath, regcache, regnum);
-  else
+  if (ravenscar_runtime_initialized ()
+      && is_ravenscar_task (ptid)
+      && !ravenscar_task_is_currently_active (ptid))
     {
-      struct gdbarch *gdbarch = get_regcache_arch (regcache);
+      struct gdbarch *gdbarch = regcache->arch ();
       struct ravenscar_arch_ops *arch_ops
 	= gdbarch_ravenscar_ops (gdbarch);
 
       arch_ops->to_store_registers (regcache, regnum);
     }
+  else
+    beneath->to_store_registers (beneath, regcache, regnum);
 }
 
 static void
@@ -312,18 +423,78 @@ ravenscar_prepare_to_store (struct targe
   struct target_ops *beneath = find_target_beneath (self);
   ptid_t ptid = regcache_get_ptid (regcache);
 
-  if (!ravenscar_runtime_initialized ()
-      || ptid_equal (ptid, base_magic_null_ptid)
-      || ptid_equal (ptid, ravenscar_running_thread ()))
-    beneath->to_prepare_to_store (beneath, regcache);
-  else
+  if (ravenscar_runtime_initialized ()
+      && is_ravenscar_task (ptid)
+      && !ravenscar_task_is_currently_active (ptid))
     {
-      struct gdbarch *gdbarch = get_regcache_arch (regcache);
+      struct gdbarch *gdbarch = regcache->arch ();
       struct ravenscar_arch_ops *arch_ops
 	= gdbarch_ravenscar_ops (gdbarch);
 
       arch_ops->to_prepare_to_store (regcache);
     }
+  else
+    beneath->to_prepare_to_store (beneath, regcache);
+}
+
+/* Implement the to_stopped_by_sw_breakpoint target_ops "method".  */
+
+static int
+ravenscar_stopped_by_sw_breakpoint (struct target_ops *ops)
+{
+  ptid_t saved_ptid = inferior_ptid;
+  struct target_ops *beneath = find_target_beneath (ops);
+  int result;
+
+  inferior_ptid = get_base_thread_from_ravenscar_task (saved_ptid);
+  result = beneath->to_stopped_by_sw_breakpoint (beneath);
+  inferior_ptid = saved_ptid;
+  return result;
+}
+
+/* Implement the to_stopped_by_hw_breakpoint target_ops "method".  */
+
+static int
+ravenscar_stopped_by_hw_breakpoint (struct target_ops *ops)
+{
+  ptid_t saved_ptid = inferior_ptid;
+  struct target_ops *beneath = find_target_beneath (ops);
+  int result;
+
+  inferior_ptid = get_base_thread_from_ravenscar_task (saved_ptid);
+  result = beneath->to_stopped_by_hw_breakpoint (beneath);
+  inferior_ptid = saved_ptid;
+  return result;
+}
+
+/* Implement the to_stopped_by_watchpoint target_ops "method".  */
+
+static int
+ravenscar_stopped_by_watchpoint (struct target_ops *ops)
+{
+  ptid_t saved_ptid = inferior_ptid;
+  struct target_ops *beneath = find_target_beneath (ops);
+  int result;
+
+  inferior_ptid = get_base_thread_from_ravenscar_task (saved_ptid);
+  result = beneath->to_stopped_by_watchpoint (beneath);
+  inferior_ptid = saved_ptid;
+  return result;
+}
+
+/* Implement the to_stopped_data_address target_ops "method".  */
+
+static int
+ravenscar_stopped_data_address (struct target_ops *ops, CORE_ADDR *addr_p)
+{
+  ptid_t saved_ptid = inferior_ptid;
+  struct target_ops *beneath = find_target_beneath (ops);
+  int result;
+
+  inferior_ptid = get_base_thread_from_ravenscar_task (saved_ptid);
+  result = beneath->to_stopped_data_address (beneath, addr_p);
+  inferior_ptid = saved_ptid;
+  return result;
 }
 
 static void
@@ -336,18 +507,40 @@ ravenscar_mourn_inferior (struct target_
   unpush_target (&ravenscar_ops);
 }
 
+/* Implement the to_core_of_thread target_ops "method".  */
+
+static int
+ravenscar_core_of_thread (struct target_ops *ops, ptid_t ptid)
+{
+  ptid_t saved_ptid = inferior_ptid;
+  struct target_ops *beneath = find_target_beneath (ops);
+  int result;
+
+  inferior_ptid = get_base_thread_from_ravenscar_task (saved_ptid);
+  result = beneath->to_core_of_thread (beneath, inferior_ptid);
+  inferior_ptid = saved_ptid;
+  return result;
+}
+
 /* Observer on inferior_created: push ravenscar thread stratum if needed.  */
 
 static void
 ravenscar_inferior_created (struct target_ops *target, int from_tty)
 {
+  const char *err_msg;
 
   if (!ravenscar_task_support
       || gdbarch_ravenscar_ops (target_gdbarch ()) == NULL
       || !has_ravenscar_runtime ())
     return;
 
-  base_magic_null_ptid = inferior_ptid;
+  err_msg = ada_get_tcb_types_info ();
+  if (err_msg != NULL)
+    {
+      warning (_("%s. Task/thread support disabled."), err_msg);
+      return;
+    }
+
   ravenscar_update_inferior_ptid ();
   push_target (&ravenscar_ops);
 }
@@ -369,6 +562,12 @@ init_ravenscar_thread_ops (void)
   ravenscar_ops.to_fetch_registers = ravenscar_fetch_registers;
   ravenscar_ops.to_store_registers = ravenscar_store_registers;
   ravenscar_ops.to_prepare_to_store = ravenscar_prepare_to_store;
+  ravenscar_ops.to_stopped_by_sw_breakpoint
+    = ravenscar_stopped_by_sw_breakpoint;
+  ravenscar_ops.to_stopped_by_hw_breakpoint
+    = ravenscar_stopped_by_hw_breakpoint;
+  ravenscar_ops.to_stopped_by_watchpoint = ravenscar_stopped_by_watchpoint;
+  ravenscar_ops.to_stopped_data_address = ravenscar_stopped_data_address;
   ravenscar_ops.to_thread_alive = ravenscar_thread_alive;
   ravenscar_ops.to_update_thread_list = ravenscar_update_thread_list;
   ravenscar_ops.to_pid_to_str = ravenscar_pid_to_str;
@@ -381,6 +580,7 @@ init_ravenscar_thread_ops (void)
   ravenscar_ops.to_has_registers = default_child_has_registers;
   ravenscar_ops.to_has_execution = default_child_has_execution;
   ravenscar_ops.to_stratum = thread_stratum;
+  ravenscar_ops.to_core_of_thread = ravenscar_core_of_thread;
   ravenscar_ops.to_magic = OPS_MAGIC;
 }
 
@@ -391,7 +591,7 @@ static struct cmd_list_element *show_rav
 /* Implement the "set ravenscar" prefix command.  */
 
 static void
-set_ravenscar_command (char *arg, int from_tty)
+set_ravenscar_command (const char *arg, int from_tty)
 {
   printf_unfiltered (_(\
 "\"set ravenscar\" must be followed by the name of a setting.\n"));
@@ -401,7 +601,7 @@ set_ravenscar_command (char *arg, int fr
 /* Implement the "show ravenscar" prefix command.  */
 
 static void
-show_ravenscar_command (char *args, int from_tty)
+show_ravenscar_command (const char *args, int from_tty)
 {
   cmd_show_list (show_ravenscar_list, from_tty, "");
 }
@@ -421,9 +621,6 @@ Support for Ravenscar task/thread switch
 Support for Ravenscar task/thread switching is disabled\n"));
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern void _initialize_ravenscar (void);
-
 /* Module startup initialization function, automagically called by
    init.c.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ravenscar-thread.h ./gdb/ravenscar-thread.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ravenscar-thread.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ravenscar-thread.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Ada Ravenscar thread support.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/README ./gdb/README
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/README	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/README	2018-01-09 02:04:56.000000000 +0000
@@ -89,6 +89,14 @@ features.  Expat will be linked in if it
 those features will be disabled.  The latest version of Expat should be
 available from `http://expat.sourceforge.net'.
 
+   GDB uses GNU MPFR, a library for multiple-precision floating-point
+computation with correct rounding, to emulate target floating-point
+arithmetic during expression evaluation when the target uses different
+floating-point formats than the host.  MPFR will be linked in if it is
+available at build time.  If GNU MPFR it is not available, GDB will fall
+back to using host floating-point arithmetic.  The latest version of
+GNU MPFR should be available from `http://www.mpfr.org'.
+
    GDB can be used as a cross-debugger, running on a machine of one
 type while debugging a program running on a machine of another type.
 See below.
@@ -475,6 +483,15 @@ prefer; but you may abbreviate option na
      have libexpat installed, you can  get the latest version from
      http://expat.sourceforge.net.
 
+`--with-mpfr'
+     Build GDB with the GNU MPFR library.  (Done by default if
+     GNU MPFR is installed and found at configure time.)  This library
+     is used to emulate target floating-point arithmetic during expression
+     evaluation when the target uses different floating-point formats than
+     the host.  If GNU MPFR is not available, GDB will fall back to using
+     host floating-point arithmetic.  If your host does not have GNU MPFR
+     installed, you can get the latest version from http://www.mpfr.org.
+
 `--with-python[=PATH]'
      Build GDB with Python scripting support.  (Done by default if
      libpython is present and found at configure time.)  Python makes
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/record-btrace.c ./gdb/record-btrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/record-btrace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/record-btrace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Branch trace support for GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
@@ -630,15 +630,16 @@ static void
 btrace_insn_history (struct ui_out *uiout,
 		     const struct btrace_thread_info *btinfo,
 		     const struct btrace_insn_iterator *begin,
-		     const struct btrace_insn_iterator *end, int flags)
+		     const struct btrace_insn_iterator *end,
+		     gdb_disassembly_flags flags)
 {
   struct cleanup *cleanups, *ui_item_chain;
   struct gdbarch *gdbarch;
   struct btrace_insn_iterator it;
   struct btrace_line_range last_lines;
 
-  DEBUG ("itrace (0x%x): [%u; %u)", flags, btrace_insn_number (begin),
-	 btrace_insn_number (end));
+  DEBUG ("itrace (0x%x): [%u; %u)", (unsigned) flags,
+	 btrace_insn_number (begin), btrace_insn_number (end));
 
   flags |= DISASSEMBLY_SPECULATIVE;
 
@@ -720,18 +721,17 @@ btrace_insn_history (struct ui_out *uiou
 /* The to_insn_history method of target record-btrace.  */
 
 static void
-record_btrace_insn_history (struct target_ops *self, int size, int flags)
+record_btrace_insn_history (struct target_ops *self, int size,
+			    gdb_disassembly_flags flags)
 {
   struct btrace_thread_info *btinfo;
   struct btrace_insn_history *history;
   struct btrace_insn_iterator begin, end;
-  struct cleanup *uiout_cleanup;
   struct ui_out *uiout;
   unsigned int context, covered;
 
   uiout = current_uiout;
-  uiout_cleanup = make_cleanup_ui_out_tuple_begin_end (uiout,
-						       "insn history");
+  ui_out_emit_tuple tuple_emitter (uiout, "insn history");
   context = abs (size);
   if (context == 0)
     error (_("Bad record instruction-history-size."));
@@ -742,7 +742,7 @@ record_btrace_insn_history (struct targe
     {
       struct btrace_insn_iterator *replay;
 
-      DEBUG ("insn-history (0x%x): %d", flags, size);
+      DEBUG ("insn-history (0x%x): %d", (unsigned) flags, size);
 
       /* If we're replaying, we start at the replay position.  Otherwise, we
 	 start at the tail of the trace.  */
@@ -774,7 +774,7 @@ record_btrace_insn_history (struct targe
       begin = history->begin;
       end = history->end;
 
-      DEBUG ("insn-history (0x%x): %d, prev: [%u; %u)", flags, size,
+      DEBUG ("insn-history (0x%x): %d, prev: [%u; %u)", (unsigned) flags, size,
 	     btrace_insn_number (&begin), btrace_insn_number (&end));
 
       if (size < 0)
@@ -800,30 +800,27 @@ record_btrace_insn_history (struct targe
     }
 
   btrace_set_insn_history (btinfo, &begin, &end);
-  do_cleanups (uiout_cleanup);
 }
 
 /* The to_insn_history_range method of target record-btrace.  */
 
 static void
 record_btrace_insn_history_range (struct target_ops *self,
-				  ULONGEST from, ULONGEST to, int flags)
+				  ULONGEST from, ULONGEST to,
+				  gdb_disassembly_flags flags)
 {
   struct btrace_thread_info *btinfo;
-  struct btrace_insn_history *history;
   struct btrace_insn_iterator begin, end;
-  struct cleanup *uiout_cleanup;
   struct ui_out *uiout;
   unsigned int low, high;
   int found;
 
   uiout = current_uiout;
-  uiout_cleanup = make_cleanup_ui_out_tuple_begin_end (uiout,
-						       "insn history");
+  ui_out_emit_tuple tuple_emitter (uiout, "insn history");
   low = from;
   high = to;
 
-  DEBUG ("insn-history (0x%x): [%u; %u)", flags, low, high);
+  DEBUG ("insn-history (0x%x): [%u; %u)", (unsigned) flags, low, high);
 
   /* Check for wrap-arounds.  */
   if (low != from || high != to)
@@ -852,15 +849,14 @@ record_btrace_insn_history_range (struct
 
   btrace_insn_history (uiout, btinfo, &begin, &end, flags);
   btrace_set_insn_history (btinfo, &begin, &end);
-
-  do_cleanups (uiout_cleanup);
 }
 
 /* The to_insn_history_from method of target record-btrace.  */
 
 static void
 record_btrace_insn_history_from (struct target_ops *self,
-				 ULONGEST from, int size, int flags)
+				 ULONGEST from, int size,
+				 gdb_disassembly_flags flags)
 {
   ULONGEST begin, end, context;
 
@@ -898,7 +894,7 @@ btrace_call_history_insn_range (struct u
 {
   unsigned int begin, end, size;
 
-  size = VEC_length (btrace_insn_s, bfun->insn);
+  size = bfun->insn.size ();
   gdb_assert (size > 0);
 
   begin = bfun->insn_offset;
@@ -918,10 +914,8 @@ static void
 btrace_compute_src_line_range (const struct btrace_function *bfun,
 			       int *pbegin, int *pend)
 {
-  struct btrace_insn *insn;
   struct symtab *symtab;
   struct symbol *sym;
-  unsigned int idx;
   int begin, end;
 
   begin = INT_MAX;
@@ -933,11 +927,11 @@ btrace_compute_src_line_range (const str
 
   symtab = symbol_symtab (sym);
 
-  for (idx = 0; VEC_iterate (btrace_insn_s, bfun->insn, idx, insn); ++idx)
+  for (const btrace_insn &insn : bfun->insn)
     {
       struct symtab_and_line sal;
 
-      sal = find_pc_line (insn->pc, 0);
+      sal = find_pc_line (insn.pc, 0);
       if (sal.symtab != symtab || sal.line == 0)
 	continue;
 
@@ -1085,14 +1079,12 @@ record_btrace_call_history (struct targe
   struct btrace_thread_info *btinfo;
   struct btrace_call_history *history;
   struct btrace_call_iterator begin, end;
-  struct cleanup *uiout_cleanup;
   struct ui_out *uiout;
   unsigned int context, covered;
   record_print_flags flags = (enum record_print_flag) int_flags;
 
   uiout = current_uiout;
-  uiout_cleanup = make_cleanup_ui_out_tuple_begin_end (uiout,
-						       "insn history");
+  ui_out_emit_tuple tuple_emitter (uiout, "insn history");
   context = abs (size);
   if (context == 0)
     error (_("Bad record function-call-history-size."));
@@ -1110,8 +1102,8 @@ record_btrace_call_history (struct targe
       replay = btinfo->replay;
       if (replay != NULL)
 	{
-	  begin.function = replay->function;
 	  begin.btinfo = btinfo;
+	  begin.index = replay->call_index;
 	}
       else
 	btrace_call_end (&begin, btinfo);
@@ -1164,7 +1156,6 @@ record_btrace_call_history (struct targe
     }
 
   btrace_set_call_history (btinfo, &begin, &end);
-  do_cleanups (uiout_cleanup);
 }
 
 /* The to_call_history_range method of target record-btrace.  */
@@ -1175,17 +1166,14 @@ record_btrace_call_history_range (struct
 				  int int_flags)
 {
   struct btrace_thread_info *btinfo;
-  struct btrace_call_history *history;
   struct btrace_call_iterator begin, end;
-  struct cleanup *uiout_cleanup;
   struct ui_out *uiout;
   unsigned int low, high;
   int found;
   record_print_flags flags = (enum record_print_flag) int_flags;
 
   uiout = current_uiout;
-  uiout_cleanup = make_cleanup_ui_out_tuple_begin_end (uiout,
-						       "func history");
+  ui_out_emit_tuple tuple_emitter (uiout, "func history");
   low = from;
   high = to;
 
@@ -1218,8 +1206,6 @@ record_btrace_call_history_range (struct
 
   btrace_call_history (uiout, btinfo, &begin, &end, flags);
   btrace_set_call_history (btinfo, &begin, &end);
-
-  do_cleanups (uiout_cleanup);
 }
 
 /* The to_call_history_from method of target record-btrace.  */
@@ -1263,7 +1249,6 @@ record_btrace_call_history_from (struct 
 static enum record_method
 record_btrace_record_method (struct target_ops *self, ptid_t ptid)
 {
-  const struct btrace_config *config;
   struct thread_info * const tp = find_thread_ptid (ptid);
 
   if (tp == NULL)
@@ -1305,8 +1290,6 @@ record_btrace_xfer_partial (struct targe
 			    const gdb_byte *writebuf, ULONGEST offset,
 			    ULONGEST len, ULONGEST *xfered_len)
 {
-  struct target_ops *t;
-
   /* Filter out requests that don't make sense during replay.  */
   if (replay_memory_access == replay_memory_access_read_only
       && !record_btrace_generating_corefile
@@ -1435,7 +1418,7 @@ record_btrace_fetch_registers (struct ta
       struct gdbarch *gdbarch;
       int pcreg;
 
-      gdbarch = get_regcache_arch (regcache);
+      gdbarch = regcache->arch ();
       pcreg = gdbarch_pc_regnum (gdbarch);
       if (pcreg < 0)
 	return;
@@ -1557,7 +1540,6 @@ static const struct btrace_function *
 btrace_get_frame_function (struct frame_info *frame)
 {
   const struct btrace_frame_cache *cache;
-  const struct btrace_function *bfun;
   struct btrace_frame_cache pattern;
   void **slot;
 
@@ -1584,7 +1566,7 @@ record_btrace_frame_unwind_stop_reason (
   bfun = cache->bfun;
   gdb_assert (bfun != NULL);
 
-  if (bfun->up == NULL)
+  if (bfun->up == 0)
     return UNWIND_UNAVAILABLE;
 
   return UNWIND_NO_REASON;
@@ -1598,6 +1580,7 @@ record_btrace_frame_this_id (struct fram
 {
   const struct btrace_frame_cache *cache;
   const struct btrace_function *bfun;
+  struct btrace_call_iterator it;
   CORE_ADDR code, special;
 
   cache = (const struct btrace_frame_cache *) *this_cache;
@@ -1605,8 +1588,8 @@ record_btrace_frame_this_id (struct fram
   bfun = cache->bfun;
   gdb_assert (bfun != NULL);
 
-  while (bfun->segment.prev != NULL)
-    bfun = bfun->segment.prev;
+  while (btrace_find_call_by_number (&it, &cache->tp->btrace, bfun->prev) != 0)
+    bfun = btrace_call_get (&it);
 
   code = get_frame_func (this_frame);
   special = bfun->number;
@@ -1628,7 +1611,7 @@ record_btrace_frame_prev_register (struc
 {
   const struct btrace_frame_cache *cache;
   const struct btrace_function *bfun, *caller;
-  const struct btrace_insn *insn;
+  struct btrace_call_iterator it;
   struct gdbarch *gdbarch;
   CORE_ADDR pc;
   int pcreg;
@@ -1643,21 +1626,17 @@ record_btrace_frame_prev_register (struc
   bfun = cache->bfun;
   gdb_assert (bfun != NULL);
 
-  caller = bfun->up;
-  if (caller == NULL)
+  if (btrace_find_call_by_number (&it, &cache->tp->btrace, bfun->up) == 0)
     throw_error (NOT_AVAILABLE_ERROR,
 		 _("No caller in btrace record history"));
 
+  caller = btrace_call_get (&it);
+
   if ((bfun->flags & BFUN_UP_LINKS_TO_RET) != 0)
-    {
-      insn = VEC_index (btrace_insn_s, caller->insn, 0);
-      pc = insn->pc;
-    }
+    pc = caller->insn.front ().pc;
   else
     {
-      insn = VEC_last (btrace_insn_s, caller->insn);
-      pc = insn->pc;
-
+      pc = caller->insn.back ().pc;
       pc += gdb_insn_length (gdbarch, pc);
     }
 
@@ -1692,15 +1671,21 @@ record_btrace_frame_sniffer (const struc
 
       replay = tp->btrace.replay;
       if (replay != NULL)
-	bfun = replay->function;
+	bfun = &replay->btinfo->functions[replay->call_index];
     }
   else
     {
       const struct btrace_function *callee;
+      struct btrace_call_iterator it;
 
       callee = btrace_get_frame_function (next);
-      if (callee != NULL && (callee->flags & BFUN_UP_LINKS_TO_TAILCALL) == 0)
-	bfun = callee->up;
+      if (callee == NULL || (callee->flags & BFUN_UP_LINKS_TO_TAILCALL) != 0)
+	return 0;
+
+      if (btrace_find_call_by_number (&it, &tp->btrace, callee->up) == 0)
+	return 0;
+
+      bfun = btrace_call_get (&it);
     }
 
   if (bfun == NULL)
@@ -1727,7 +1712,9 @@ record_btrace_tailcall_frame_sniffer (co
 {
   const struct btrace_function *bfun, *callee;
   struct btrace_frame_cache *cache;
+  struct btrace_call_iterator it;
   struct frame_info *next;
+  struct thread_info *tinfo;
 
   next = get_next_frame (this_frame);
   if (next == NULL)
@@ -1740,16 +1727,18 @@ record_btrace_tailcall_frame_sniffer (co
   if ((callee->flags & BFUN_UP_LINKS_TO_TAILCALL) == 0)
     return 0;
 
-  bfun = callee->up;
-  if (bfun == NULL)
+  tinfo = find_thread_ptid (inferior_ptid);
+  if (btrace_find_call_by_number (&it, &tinfo->btrace, callee->up) == 0)
     return 0;
 
+  bfun = btrace_call_get (&it);
+
   DEBUG ("[frame] sniffed tailcall frame for %s on level %d",
 	 btrace_get_bfun_name (bfun), bfun->level);
 
   /* This is our frame.  Initialize the frame cache.  */
   cache = bfcache_new (this_frame);
-  cache->tp = find_thread_ptid (inferior_ptid);
+  cache->tp = tinfo;
   cache->bfun = bfun;
 
   *this_cache = cache;
@@ -1922,7 +1911,7 @@ record_btrace_start_replaying (struct th
   replay = NULL;
 
   /* We can't start replaying without trace.  */
-  if (btinfo->begin == NULL)
+  if (btinfo->functions.empty ())
     return NULL;
 
   /* GDB stores the current frame_id when stepping in order to detects steps
@@ -2479,7 +2468,7 @@ record_btrace_wait (struct target_ops *o
       *status = btrace_step_no_resumed ();
 
       DEBUG ("wait ended by %s: %s", target_pid_to_str (null_ptid),
-	     target_waitstatus_to_string (status));
+	     target_waitstatus_to_string (status).c_str ());
 
       do_cleanups (cleanups);
       return null_ptid;
@@ -2571,7 +2560,7 @@ record_btrace_wait (struct target_ops *o
   DEBUG ("wait ended by thread %s (%s): %s",
 	 print_thread_id (eventing),
 	 target_pid_to_str (eventing->ptid),
-	 target_waitstatus_to_string (status));
+	 target_waitstatus_to_string (status).c_str ());
 
   do_cleanups (cleanups);
   return eventing->ptid;
@@ -2705,7 +2694,7 @@ record_btrace_set_replay (struct thread_
 
   btinfo = &tp->btrace;
 
-  if (it == NULL || it->function == NULL)
+  if (it == NULL)
     record_btrace_stop_replaying (tp);
   else
     {
@@ -2888,7 +2877,7 @@ init_record_btrace_ops (void)
 /* Start recording in BTS format.  */
 
 static void
-cmd_record_btrace_bts_start (char *args, int from_tty)
+cmd_record_btrace_bts_start (const char *args, int from_tty)
 {
   if (args != NULL && *args != 0)
     error (_("Invalid argument."));
@@ -2897,7 +2886,7 @@ cmd_record_btrace_bts_start (char *args,
 
   TRY
     {
-      execute_command ((char *) "target record-btrace", from_tty);
+      execute_command ("target record-btrace", from_tty);
     }
   CATCH (exception, RETURN_MASK_ALL)
     {
@@ -2910,7 +2899,7 @@ cmd_record_btrace_bts_start (char *args,
 /* Start recording in Intel Processor Trace format.  */
 
 static void
-cmd_record_btrace_pt_start (char *args, int from_tty)
+cmd_record_btrace_pt_start (const char *args, int from_tty)
 {
   if (args != NULL && *args != 0)
     error (_("Invalid argument."));
@@ -2919,7 +2908,7 @@ cmd_record_btrace_pt_start (char *args, 
 
   TRY
     {
-      execute_command ((char *) "target record-btrace", from_tty);
+      execute_command ("target record-btrace", from_tty);
     }
   CATCH (exception, RETURN_MASK_ALL)
     {
@@ -2932,7 +2921,7 @@ cmd_record_btrace_pt_start (char *args, 
 /* Alias for "target record".  */
 
 static void
-cmd_record_btrace_start (char *args, int from_tty)
+cmd_record_btrace_start (const char *args, int from_tty)
 {
   if (args != NULL && *args != 0)
     error (_("Invalid argument."));
@@ -2941,7 +2930,7 @@ cmd_record_btrace_start (char *args, int
 
   TRY
     {
-      execute_command ((char *) "target record-btrace", from_tty);
+      execute_command ("target record-btrace", from_tty);
     }
   CATCH (exception, RETURN_MASK_ALL)
     {
@@ -2949,7 +2938,7 @@ cmd_record_btrace_start (char *args, int
 
       TRY
 	{
-	  execute_command ((char *) "target record-btrace", from_tty);
+	  execute_command ("target record-btrace", from_tty);
 	}
       CATCH (exception, RETURN_MASK_ALL)
 	{
@@ -2964,7 +2953,7 @@ cmd_record_btrace_start (char *args, int
 /* The "set record btrace" command.  */
 
 static void
-cmd_set_record_btrace (char *args, int from_tty)
+cmd_set_record_btrace (const char *args, int from_tty)
 {
   cmd_show_list (set_record_btrace_cmdlist, from_tty, "");
 }
@@ -2972,7 +2961,7 @@ cmd_set_record_btrace (char *args, int f
 /* The "show record btrace" command.  */
 
 static void
-cmd_show_record_btrace (char *args, int from_tty)
+cmd_show_record_btrace (const char *args, int from_tty)
 {
   cmd_show_list (show_record_btrace_cmdlist, from_tty, "");
 }
@@ -2990,7 +2979,7 @@ cmd_show_replay_memory_access (struct ui
 /* The "set record btrace bts" command.  */
 
 static void
-cmd_set_record_btrace_bts (char *args, int from_tty)
+cmd_set_record_btrace_bts (const char *args, int from_tty)
 {
   printf_unfiltered (_("\"set record btrace bts\" must be followed "
 		       "by an appropriate subcommand.\n"));
@@ -3001,7 +2990,7 @@ cmd_set_record_btrace_bts (char *args, i
 /* The "show record btrace bts" command.  */
 
 static void
-cmd_show_record_btrace_bts (char *args, int from_tty)
+cmd_show_record_btrace_bts (const char *args, int from_tty)
 {
   cmd_show_list (show_record_btrace_bts_cmdlist, from_tty, "");
 }
@@ -3009,7 +2998,7 @@ cmd_show_record_btrace_bts (char *args, 
 /* The "set record btrace pt" command.  */
 
 static void
-cmd_set_record_btrace_pt (char *args, int from_tty)
+cmd_set_record_btrace_pt (const char *args, int from_tty)
 {
   printf_unfiltered (_("\"set record btrace pt\" must be followed "
 		       "by an appropriate subcommand.\n"));
@@ -3020,7 +3009,7 @@ cmd_set_record_btrace_pt (char *args, in
 /* The "show record btrace pt" command.  */
 
 static void
-cmd_show_record_btrace_pt (char *args, int from_tty)
+cmd_show_record_btrace_pt (const char *args, int from_tty)
 {
   cmd_show_list (show_record_btrace_pt_cmdlist, from_tty, "");
 }
@@ -3047,8 +3036,6 @@ show_record_pt_buffer_size_value (struct
 		    value);
 }
 
-void _initialize_record_btrace (void);
-
 /* Initialize btrace commands.  */
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/record-btrace.h ./gdb/record-btrace.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/record-btrace.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/record-btrace.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Branch trace support for GDB, the GNU debugger.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <tim.wiederhake@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/record.c ./gdb/record.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/record.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/record.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Process record and replay target for GDB, the GNU debugger.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -99,25 +99,25 @@ record_start (const char *method, const 
   if (method == NULL)
     {
       if (format == NULL)
-	execute_command_to_string ((char *) "record", from_tty);
+	execute_command_to_string ("record", from_tty);
       else
 	error (_("Invalid format."));
     }
   else if (strcmp (method, "full") == 0)
     {
       if (format == NULL)
-	execute_command_to_string ((char *) "record full", from_tty);
+	execute_command_to_string ("record full", from_tty);
       else
 	error (_("Invalid format."));
     }
   else if (strcmp (method, "btrace") == 0)
     {
       if (format == NULL)
-	execute_command_to_string ((char *) "record btrace", from_tty);
+	execute_command_to_string ("record btrace", from_tty);
       else if (strcmp (format, "bts") == 0)
-	execute_command_to_string ((char *) "record btrace bts", from_tty);
+	execute_command_to_string ("record btrace bts", from_tty);
       else if (strcmp (format, "pt") == 0)
-	execute_command_to_string ((char *) "record btrace pt", from_tty);
+	execute_command_to_string ("record btrace pt", from_tty);
       else
 	error (_("Invalid format."));
     }
@@ -130,7 +130,7 @@ record_start (const char *method, const 
 void
 record_stop (int from_tty)
 {
-  execute_command_to_string ((char *) "record stop", from_tty);
+  execute_command_to_string ("record stop", from_tty);
 }
 
 /* See record.h.  */
@@ -234,7 +234,8 @@ record_kill (struct target_ops *t)
 /* See record.h.  */
 
 int
-record_check_stopped_by_breakpoint (struct address_space *aspace, CORE_ADDR pc,
+record_check_stopped_by_breakpoint (const address_space *aspace,
+				    CORE_ADDR pc,
 				    enum target_stop_reason *reason)
 {
   if (breakpoint_inserted_here_p (aspace, pc))
@@ -263,16 +264,16 @@ show_record_debug (struct ui_file *file,
 /* Alias for "target record".  */
 
 static void
-cmd_record_start (char *args, int from_tty)
+cmd_record_start (const char *args, int from_tty)
 {
-  execute_command ((char *) "target record-full", from_tty);
+  execute_command ("target record-full", from_tty);
 }
 
 /* Truncate the record log from the present point
    of replay until the end.  */
 
 static void
-cmd_record_delete (char *args, int from_tty)
+cmd_record_delete (const char *args, int from_tty)
 {
   require_record_target ();
 
@@ -298,7 +299,7 @@ cmd_record_delete (char *args, int from_
 /* Implement the "stoprecord" or "record stop" command.  */
 
 static void
-cmd_record_stop (char *args, int from_tty)
+cmd_record_stop (const char *args, int from_tty)
 {
   struct target_ops *t;
 
@@ -316,7 +317,7 @@ cmd_record_stop (char *args, int from_tt
 /* The "set record" command.  */
 
 static void
-set_record_command (char *args, int from_tty)
+set_record_command (const char *args, int from_tty)
 {
   printf_unfiltered (_("\"set record\" must be followed "
 		       "by an apporpriate subcommand.\n"));
@@ -326,7 +327,7 @@ set_record_command (char *args, int from
 /* The "show record" command.  */
 
 static void
-show_record_command (char *args, int from_tty)
+show_record_command (const char *args, int from_tty)
 {
   cmd_show_list (show_record_cmdlist, from_tty, "");
 }
@@ -334,7 +335,7 @@ show_record_command (char *args, int fro
 /* The "info record" command.  */
 
 static void
-info_record_command (char *args, int from_tty)
+info_record_command (const char *args, int from_tty)
 {
   struct target_ops *t;
 
@@ -352,9 +353,10 @@ info_record_command (char *args, int fro
 /* The "record save" command.  */
 
 static void
-cmd_record_save (char *args, int from_tty)
+cmd_record_save (const char *args, int from_tty)
 {
-  char *recfilename, recfilename_buffer[40];
+  const char *recfilename;
+  char recfilename_buffer[40];
 
   require_record_target ();
 
@@ -393,7 +395,7 @@ record_goto (const char *arg)
    Rewinds the recording (forward or backward) to the given instruction.  */
 
 static void
-cmd_record_goto (char *arg, int from_tty)
+cmd_record_goto (const char *arg, int from_tty)
 {
   record_goto (arg);
 }
@@ -401,7 +403,7 @@ cmd_record_goto (char *arg, int from_tty
 /* The "record goto begin" command.  */
 
 static void
-cmd_record_goto_begin (char *arg, int from_tty)
+cmd_record_goto_begin (const char *arg, int from_tty)
 {
   if (arg != NULL && *arg != '\0')
     error (_("Junk after argument: %s."), arg);
@@ -413,7 +415,7 @@ cmd_record_goto_begin (char *arg, int fr
 /* The "record goto end" command.  */
 
 static void
-cmd_record_goto_end (char *arg, int from_tty)
+cmd_record_goto_end (const char *arg, int from_tty)
 {
   if (arg != NULL && *arg != '\0')
     error (_("Junk after argument: %s."), arg);
@@ -425,13 +427,13 @@ cmd_record_goto_end (char *arg, int from
 /* Read an instruction number from an argument string.  */
 
 static ULONGEST
-get_insn_number (char **arg)
+get_insn_number (const char **arg)
 {
   ULONGEST number;
   const char *begin, *end, *pos;
 
   begin = *arg;
-  pos = skip_spaces_const (begin);
+  pos = skip_spaces (begin);
 
   if (!isdigit (*pos))
     error (_("Expected positive number, got: %s."), pos);
@@ -446,23 +448,25 @@ get_insn_number (char **arg)
 /* Read a context size from an argument string.  */
 
 static int
-get_context_size (char **arg)
+get_context_size (const char **arg)
 {
-  char *pos;
-  int number;
+  const char *pos;
+  char *end;
 
   pos = skip_spaces (*arg);
 
   if (!isdigit (*pos))
     error (_("Expected positive number, got: %s."), pos);
 
-  return strtol (pos, arg, 10);
+  long result = strtol (pos, &end, 10);
+  *arg = end;
+  return result;
 }
 
 /* Complain about junk at the end of an argument string.  */
 
 static void
-no_chunk (char *arg)
+no_chunk (const char *arg)
 {
   if (*arg != 0)
     error (_("Junk after argument: %s."), arg);
@@ -470,11 +474,11 @@ no_chunk (char *arg)
 
 /* Read instruction-history modifiers from an argument string.  */
 
-static int
-get_insn_history_modifiers (char **arg)
+static gdb_disassembly_flags
+get_insn_history_modifiers (const char **arg)
 {
-  int modifiers;
-  char *args;
+  gdb_disassembly_flags modifiers;
+  const char *args;
 
   modifiers = 0;
   args = *arg;
@@ -549,15 +553,13 @@ command_size_to_target_size (unsigned in
 /* The "record instruction-history" command.  */
 
 static void
-cmd_record_insn_history (char *arg, int from_tty)
+cmd_record_insn_history (const char *arg, int from_tty)
 {
-  int flags, size;
-
   require_record_target ();
 
-  flags = get_insn_history_modifiers (&arg);
+  gdb_disassembly_flags flags = get_insn_history_modifiers (&arg);
 
-  size = command_size_to_target_size (record_insn_history_size);
+  int size = command_size_to_target_size (record_insn_history_size);
 
   if (arg == NULL || *arg == 0 || strcmp (arg, "+") == 0)
     target_insn_history (size, flags);
@@ -614,10 +616,10 @@ cmd_record_insn_history (char *arg, int 
 /* Read function-call-history modifiers from an argument string.  */
 
 static int
-get_call_history_modifiers (char **arg)
+get_call_history_modifiers (const char **arg)
 {
   int modifiers;
-  char *args;
+  const char *args;
 
   modifiers = 0;
   args = *arg;
@@ -668,7 +670,7 @@ get_call_history_modifiers (char **arg)
 /* The "record function-call-history" command.  */
 
 static void
-cmd_record_call_history (char *arg, int from_tty)
+cmd_record_call_history (const char *arg, int from_tty)
 {
   int flags, size;
 
@@ -756,7 +758,7 @@ validate_history_size (unsigned int *com
    [0..UINT_MAX].  See command_size_to_target_size.  */
 
 static void
-set_record_insn_history_size (char *args, int from_tty,
+set_record_insn_history_size (const char *args, int from_tty,
 			      struct cmd_list_element *c)
 {
   validate_history_size (&record_insn_history_size_setshow_var,
@@ -768,16 +770,13 @@ set_record_insn_history_size (char *args
    [0..UINT_MAX].  See command_size_to_target_size.  */
 
 static void
-set_record_call_history_size (char *args, int from_tty,
+set_record_call_history_size (const char *args, int from_tty,
 			      struct cmd_list_element *c)
 {
   validate_history_size (&record_call_history_size_setshow_var,
 			 &record_call_history_size);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_record;
-
 void
 _initialize_record (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/record-full.c ./gdb/record-full.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/record-full.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/record-full.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Process record and replay target for GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -36,6 +36,7 @@
 #include "observer.h"
 #include "infrun.h"
 #include "common/gdb_unlinker.h"
+#include "common/byte-vector.h"
 
 #include <signal.h>
 
@@ -243,7 +244,7 @@ static inline struct record_full_entry *
 record_full_reg_alloc (struct regcache *regcache, int regnum)
 {
   struct record_full_entry *rec;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   rec = XCNEW (struct record_full_entry);
   rec->type = record_full_reg;
@@ -564,11 +565,11 @@ record_full_arch_list_cleanups (void *ig
    record the running message of inferior and set them to
    record_full_arch_list, and add it to record_full_list.  */
 
-static int
+static void
 record_full_message (struct regcache *regcache, enum gdb_signal signal)
 {
   int ret;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct cleanup *old_cleanups
     = make_cleanup (record_full_arch_list_cleanups, 0);
 
@@ -632,36 +633,24 @@ record_full_message (struct regcache *re
     record_full_list_release_first ();
   else
     record_full_insn_num++;
-
-  return 1;
-}
-
-struct record_full_message_args {
-  struct regcache *regcache;
-  enum gdb_signal signal;
-};
-
-static int
-record_full_message_wrapper (void *args)
-{
-  struct record_full_message_args *record_full_args
-    = (struct record_full_message_args *) args;
-
-  return record_full_message (record_full_args->regcache,
-			      record_full_args->signal);
 }
 
-static int
+static bool
 record_full_message_wrapper_safe (struct regcache *regcache,
 				  enum gdb_signal signal)
 {
-  struct record_full_message_args args;
-
-  args.regcache = regcache;
-  args.signal = signal;
+  TRY
+    {
+      record_full_message (regcache, signal);
+    }
+  CATCH (ex, RETURN_MASK_ALL)
+    {
+      exception_print (gdb_stderr, ex);
+      return false;
+    }
+  END_CATCH
 
-  return catch_errors (record_full_message_wrapper, &args, "",
-		       RETURN_MASK_ALL);
+  return true;
 }
 
 /* Set to 1 if record_full_store_registers and record_full_xfer_partial
@@ -669,16 +658,10 @@ record_full_message_wrapper_safe (struct
 
 static int record_full_gdb_operation_disable = 0;
 
-struct cleanup *
+scoped_restore_tmpl<int>
 record_full_gdb_operation_disable_set (void)
 {
-  struct cleanup *old_cleanups = NULL;
-
-  old_cleanups =
-    make_cleanup_restore_integer (&record_full_gdb_operation_disable);
-  record_full_gdb_operation_disable = 1;
-
-  return old_cleanups;
+  return make_scoped_restore (&record_full_gdb_operation_disable, 1);
 }
 
 /* Flag set to TRUE for target_stopped_by_watchpoint.  */
@@ -698,7 +681,7 @@ record_full_exec_insn (struct regcache *
     {
     case record_full_reg: /* reg */
       {
-        gdb_byte reg[MAX_REGISTER_SIZE];
+	gdb::byte_vector reg (entry->u.reg.len);
 
         if (record_debug > 1)
           fprintf_unfiltered (gdb_stdlog,
@@ -707,10 +690,10 @@ record_full_exec_insn (struct regcache *
                               host_address_to_string (entry),
                               entry->u.reg.num);
 
-        regcache_cooked_read (regcache, entry->u.reg.num, reg);
+        regcache_cooked_read (regcache, entry->u.reg.num, reg.data ());
         regcache_cooked_write (regcache, entry->u.reg.num, 
 			       record_full_get_loc (entry));
-        memcpy (record_full_get_loc (entry), reg, entry->u.reg.len);
+        memcpy (record_full_get_loc (entry), reg.data (), entry->u.reg.len);
       }
       break;
 
@@ -760,7 +743,7 @@ record_full_exec_insn (struct regcache *
 		       not doing the change at all if the watchpoint
 		       traps.  */
 		    if (hardware_watchpoint_inserted_in_range
-			(get_regcache_aspace (regcache),
+			(regcache->aspace (),
 			 entry->u.mem.addr, entry->u.mem.len))
 		      record_full_stop_reason = TARGET_STOPPED_BY_WATCHPOINT;
 		  }
@@ -792,7 +775,7 @@ static void
 record_full_core_open_1 (const char *name, int from_tty)
 {
   struct regcache *regcache = get_current_regcache ();
-  int regnum = gdbarch_num_regs (get_regcache_arch (regcache));
+  int regnum = gdbarch_num_regs (regcache->arch ());
   int i;
 
   /* Get record_full_core_regbuf.  */
@@ -845,8 +828,6 @@ static void record_full_init_record_brea
 static void
 record_full_open (const char *name, int from_tty)
 {
-  struct target_ops *t;
-
   if (record_debug)
     fprintf_unfiltered (gdb_stdlog, "Process record: record_full_open\n");
 
@@ -1050,7 +1031,8 @@ record_full_wait_1 (struct target_ops *o
 		    ptid_t ptid, struct target_waitstatus *status,
 		    int options)
 {
-  struct cleanup *set_cleanups = record_full_gdb_operation_disable_set ();
+  scoped_restore restore_operation_disable
+    = record_full_gdb_operation_disable_set ();
 
   if (record_debug)
     fprintf_unfiltered (gdb_stdlog,
@@ -1114,7 +1096,6 @@ record_full_wait_1 (struct target_ops *o
 		  && status->value.sig == GDB_SIGNAL_TRAP)
 		{
 		  struct regcache *regcache;
-		  struct address_space *aspace;
 		  enum target_stop_reason *stop_reason_p
 		    = &record_full_stop_reason;
 
@@ -1125,7 +1106,7 @@ record_full_wait_1 (struct target_ops *o
 		  registers_changed ();
 		  regcache = get_current_regcache ();
 		  tmp_pc = regcache_read_pc (regcache);
-		  aspace = get_regcache_aspace (regcache);
+		  const struct address_space *aspace = regcache->aspace ();
 
 		  if (target_stopped_by_watchpoint ())
 		    {
@@ -1187,8 +1168,8 @@ record_full_wait_1 (struct target_ops *o
   else
     {
       struct regcache *regcache = get_current_regcache ();
-      struct gdbarch *gdbarch = get_regcache_arch (regcache);
-      struct address_space *aspace = get_regcache_aspace (regcache);
+      struct gdbarch *gdbarch = regcache->arch ();
+      const struct address_space *aspace = regcache->aspace ();
       int continue_flag = 1;
       int first_record_full_end = 1;
       struct cleanup *old_cleanups
@@ -1217,7 +1198,7 @@ record_full_wait_1 (struct target_ops *o
          And in GDB replay mode, GDB doesn't need to be in terminal_inferior
          mode, because inferior will not executed.
          Then set it to terminal_ours to make GDB get the signal.  */
-      target_terminal_ours ();
+      target_terminal::ours ();
 
       /* In EXEC_FORWARD mode, record_full_list points to the tail of prev
          instruction.  */
@@ -1333,7 +1314,6 @@ replay_out:
 
   signal (SIGINT, handle_sigint);
 
-  do_cleanups (set_cleanups);
   return inferior_ptid;
 }
 
@@ -1422,7 +1402,7 @@ record_full_registers_change (struct reg
     {
       int i;
 
-      for (i = 0; i < gdbarch_num_regs (get_regcache_arch (regcache)); i++)
+      for (i = 0; i < gdbarch_num_regs (regcache->arch ()); i++)
 	{
 	  if (record_full_arch_list_add_reg (regcache, i))
 	    {
@@ -1479,7 +1459,7 @@ record_full_store_registers (struct targ
 	      query (_("Because GDB is in replay mode, changing the value "
 		       "of a register will make the execution log unusable "
 		       "from this point onward.  Change register %s?"),
-		      gdbarch_register_name (get_regcache_arch (regcache),
+		      gdbarch_register_name (regcache->arch (),
 					       regno));
 
 	  if (!n)
@@ -1491,7 +1471,7 @@ record_full_store_registers (struct targ
 		  int i;
 
 		  for (i = 0;
-		       i < gdbarch_num_regs (get_regcache_arch (regcache));
+		       i < gdbarch_num_regs (regcache->arch ());
 		       i++)
 		    regcache_invalidate (regcache, i);
 		}
@@ -1652,12 +1632,11 @@ record_full_insert_breakpoint (struct ta
 	 However, we do have to insert software single-step
 	 breakpoints, in case the target can't hardware step.  To keep
 	 things simple, we always insert.  */
-      struct cleanup *old_cleanups;
       int ret;
 
-      old_cleanups = record_full_gdb_operation_disable_set ();
+      scoped_restore restore_operation_disable
+	= record_full_gdb_operation_disable_set ();
       ret = ops->beneath->to_insert_breakpoint (ops->beneath, gdbarch, bp_tgt);
-      do_cleanups (old_cleanups);
 
       if (ret != 0)
 	return ret;
@@ -1710,14 +1689,12 @@ record_full_remove_breakpoint (struct ta
 	{
 	  if (bp->in_target_beneath)
 	    {
-	      struct cleanup *old_cleanups;
 	      int ret;
 
-	      old_cleanups = record_full_gdb_operation_disable_set ();
+	      scoped_restore restore_operation_disable
+		= record_full_gdb_operation_disable_set ();
 	      ret = ops->beneath->to_remove_breakpoint (ops->beneath, gdbarch,
 							bp_tgt, reason);
-	      do_cleanups (old_cleanups);
-
 	      if (ret != 0)
 		return ret;
 	    }
@@ -2049,7 +2026,7 @@ record_full_core_fetch_registers (struct
 {
   if (regno < 0)
     {
-      int num = gdbarch_num_regs (get_regcache_arch (regcache));
+      int num = gdbarch_num_regs (regcache->arch ());
       int i;
 
       for (i = 0; i < num; i ++)
@@ -2339,16 +2316,6 @@ netorder32 (uint32_t input)
   return ret;
 }
 
-static inline uint16_t
-netorder16 (uint16_t input)
-{
-  uint16_t ret;
-
-  store_unsigned_integer ((gdb_byte *) &ret, sizeof (ret), 
-			  BFD_ENDIAN_BIG, input);
-  return ret;
-}
-
 /* Restore the execution log from a core_bfd file.  */
 static void
 record_full_restore (void)
@@ -2542,7 +2509,7 @@ bfdcore_write (bfd *obfd, asection *osec
    corefile format, with an extra section for our data.  */
 
 static void
-cmd_record_full_restore (char *args, int from_tty)
+cmd_record_full_restore (const char *args, int from_tty)
 {
   core_file_command (args, from_tty);
   record_full_open (args, from_tty);
@@ -2558,7 +2525,6 @@ record_full_save (struct target_ops *sel
   uint32_t magic;
   struct regcache *regcache;
   struct gdbarch *gdbarch;
-  struct cleanup *set_cleanups;
   int save_size = 0;
   asection *osec = NULL;
   int bfd_offset = 0;
@@ -2579,10 +2545,11 @@ record_full_save (struct target_ops *sel
 
   /* Get the values of regcache and gdbarch.  */
   regcache = get_current_regcache ();
-  gdbarch = get_regcache_arch (regcache);
+  gdbarch = regcache->arch ();
 
   /* Disable the GDB operation record.  */
-  set_cleanups = record_full_gdb_operation_disable_set ();
+  scoped_restore restore_operation_disable
+    = record_full_gdb_operation_disable_set ();
 
   /* Reverse execute to the begin of record list.  */
   while (1)
@@ -2746,7 +2713,6 @@ record_full_save (struct target_ops *sel
         record_full_list = record_full_list->prev;
     }
 
-  do_cleanups (set_cleanups);
   unlink_file.keep ();
 
   /* Succeeded.  */
@@ -2762,9 +2728,10 @@ static void
 record_full_goto_insn (struct record_full_entry *entry,
 		       enum exec_direction_kind dir)
 {
-  struct cleanup *set_cleanups = record_full_gdb_operation_disable_set ();
+  scoped_restore restore_operation_disable
+    = record_full_gdb_operation_disable_set ();
   struct regcache *regcache = get_current_regcache ();
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   /* Assume everything is valid: we will hit the entry,
      and we will not hit the end of the recording.  */
@@ -2780,19 +2747,18 @@ record_full_goto_insn (struct record_ful
       else
 	record_full_list = record_full_list->next;
     } while (record_full_list != entry);
-  do_cleanups (set_cleanups);
 }
 
 /* Alias for "target record-full".  */
 
 static void
-cmd_record_full_start (char *args, int from_tty)
+cmd_record_full_start (const char *args, int from_tty)
 {
-  execute_command ((char *) "target record-full", from_tty);
+  execute_command ("target record-full", from_tty);
 }
 
 static void
-set_record_full_insn_max_num (char *args, int from_tty,
+set_record_full_insn_max_num (const char *args, int from_tty,
 			      struct cmd_list_element *c)
 {
   if (record_full_insn_num > record_full_insn_max_num)
@@ -2809,10 +2775,10 @@ set_record_full_insn_max_num (char *args
 /* The "set record full" command.  */
 
 static void
-set_record_full_command (char *args, int from_tty)
+set_record_full_command (const char *args, int from_tty)
 {
   printf_unfiltered (_("\"set record full\" must be followed "
-		       "by an apporpriate subcommand.\n"));
+		       "by an appropriate subcommand.\n"));
   help_list (set_record_full_cmdlist, "set record full ", all_commands,
 	     gdb_stdout);
 }
@@ -2820,14 +2786,11 @@ set_record_full_command (char *args, int
 /* The "show record full" command.  */
 
 static void
-show_record_full_command (char *args, int from_tty)
+show_record_full_command (const char *args, int from_tty)
 {
   cmd_show_list (show_record_full_cmdlist, from_tty, "");
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_record_full;
-
 void
 _initialize_record_full (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/record-full.h ./gdb/record-full.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/record-full.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/record-full.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Process record and replay target for GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -29,6 +29,6 @@ extern int record_full_arch_list_add_end
 /* Returns true if the process record target is open.  */
 extern int record_full_is_used (void);
 
-extern struct cleanup *record_full_gdb_operation_disable_set (void);
+extern scoped_restore_tmpl<int> record_full_gdb_operation_disable_set ();
 
 #endif /* RECORD_FULL_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/record.h ./gdb/record.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/record.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/record.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Process record and replay target for GDB, the GNU debugger.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -71,7 +71,7 @@ DEF_ENUM_FLAGS_TYPE (enum record_print_f
    otherwise.  */
 
 extern int
-  record_check_stopped_by_breakpoint (struct address_space *aspace,
+  record_check_stopped_by_breakpoint (const address_space *aspace,
 				      CORE_ADDR pc,
 				      enum target_stop_reason *reason);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regcache.c ./gdb/regcache.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regcache.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regcache.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Cache and manage the values of registers for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,6 +28,7 @@
 #include "remote.h"
 #include "valprint.h"
 #include "regset.h"
+#include <forward_list>
 
 /*
  * DATA STRUCTURE
@@ -50,9 +51,7 @@ struct regcache_descr
      redundant information - if the PC is constructed from two
      registers then those registers and not the PC lives in the raw
      cache.  */
-  int nr_raw_registers;
   long sizeof_raw_registers;
-  long sizeof_raw_register_status;
 
   /* The cooked register space.  Each cooked register in the range
      [0..NR_RAW_REGISTERS) is direct-mapped onto the corresponding raw
@@ -62,7 +61,6 @@ struct regcache_descr
      gdbarch_pseudo_register_read and gdbarch_pseudo_register_write.  */
   int nr_cooked_registers;
   long sizeof_cooked_registers;
-  long sizeof_cooked_register_status;
 
   /* Offset and size (in 8 bit bytes), of each register in the
      register cache.  All registers (including those in the range
@@ -91,8 +89,6 @@ init_regcache_descr (struct gdbarch *gdb
      either mapped onto raw-registers or memory.  */
   descr->nr_cooked_registers = gdbarch_num_regs (gdbarch)
 			       + gdbarch_num_pseudo_regs (gdbarch);
-  descr->sizeof_cooked_register_status
-    = gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch);
 
   /* Fill in a table of register types.  */
   descr->register_type
@@ -103,8 +99,6 @@ init_regcache_descr (struct gdbarch *gdb
 
   /* Construct a strictly RAW register cache.  Don't allow pseudo's
      into the register cache.  */
-  descr->nr_raw_registers = gdbarch_num_regs (gdbarch);
-  descr->sizeof_raw_register_status = gdbarch_num_regs (gdbarch);
 
   /* Lay out the register cache.
 
@@ -120,7 +114,7 @@ init_regcache_descr (struct gdbarch *gdb
       = GDBARCH_OBSTACK_CALLOC (gdbarch, descr->nr_cooked_registers, long);
     descr->register_offset
       = GDBARCH_OBSTACK_CALLOC (gdbarch, descr->nr_cooked_registers, long);
-    for (i = 0; i < descr->nr_raw_registers; i++)
+    for (i = 0; i < gdbarch_num_regs (gdbarch); i++)
       {
 	descr->sizeof_register[i] = TYPE_LENGTH (descr->register_type[i]);
 	descr->register_offset[i] = offset;
@@ -184,306 +178,222 @@ register_size (struct gdbarch *gdbarch, 
 int
 regcache_register_size (const struct regcache *regcache, int n)
 {
-  return register_size (get_regcache_arch (regcache), n);
+  return register_size (regcache->arch (), n);
 }
 
-/* The register cache for storing raw register values.  */
-
-struct regcache
-{
-  struct regcache_descr *descr;
-
-  /* The address space of this register cache (for registers where it
-     makes sense, like PC or SP).  */
-  struct address_space *aspace;
-
-  /* The register buffers.  A read-only register cache can hold the
-     full [0 .. gdbarch_num_regs + gdbarch_num_pseudo_regs) while a read/write
-     register cache can only hold [0 .. gdbarch_num_regs).  */
-  gdb_byte *registers;
-  /* Register cache status.  */
-  signed char *register_status;
-  /* Is this a read-only cache?  A read-only cache is used for saving
-     the target's register state (e.g, across an inferior function
-     call or just before forcing a function return).  A read-only
-     cache can only be updated via the methods regcache_dup() and
-     regcache_cpy().  The actual contents are determined by the
-     reggroup_save and reggroup_restore methods.  */
-  int readonly_p;
-  /* If this is a read-write cache, which thread's registers is
-     it connected to?  */
-  ptid_t ptid;
-};
-
-/* See regcache.h.  */
-
-ptid_t
-regcache_get_ptid (const struct regcache *regcache)
-{
-  gdb_assert (!ptid_equal (regcache->ptid, minus_one_ptid));
-
-  return regcache->ptid;
-}
-
-static struct regcache *
-regcache_xmalloc_1 (struct gdbarch *gdbarch, struct address_space *aspace,
-		    int readonly_p)
+regcache::regcache (gdbarch *gdbarch, const address_space *aspace_,
+		    bool readonly_p_)
+  : m_aspace (aspace_), m_readonly_p (readonly_p_)
 {
-  struct regcache_descr *descr;
-  struct regcache *regcache;
-
   gdb_assert (gdbarch != NULL);
-  descr = regcache_descr (gdbarch);
-  regcache = XNEW (struct regcache);
-  regcache->descr = descr;
-  regcache->readonly_p = readonly_p;
-  if (readonly_p)
-    {
-      regcache->registers
-	= XCNEWVEC (gdb_byte, descr->sizeof_cooked_registers);
-      regcache->register_status
-	= XCNEWVEC (signed char, descr->sizeof_cooked_register_status);
+  m_descr = regcache_descr (gdbarch);
+
+  if (m_readonly_p)
+    {
+      m_registers = XCNEWVEC (gdb_byte, m_descr->sizeof_cooked_registers);
+      m_register_status = XCNEWVEC (signed char,
+				    m_descr->nr_cooked_registers);
     }
   else
     {
-      regcache->registers
-	= XCNEWVEC (gdb_byte, descr->sizeof_raw_registers);
-      regcache->register_status
-	= XCNEWVEC (signed char, descr->sizeof_raw_register_status);
-    }
-  regcache->aspace = aspace;
-  regcache->ptid = minus_one_ptid;
-  return regcache;
+      m_registers = XCNEWVEC (gdb_byte, m_descr->sizeof_raw_registers);
+      m_register_status = XCNEWVEC (signed char, gdbarch_num_regs (gdbarch));
+    }
+  m_ptid = minus_one_ptid;
 }
 
-struct regcache *
-regcache_xmalloc (struct gdbarch *gdbarch, struct address_space *aspace)
+static enum register_status
+do_cooked_read (void *src, int regnum, gdb_byte *buf)
 {
-  return regcache_xmalloc_1 (gdbarch, aspace, 1);
+  struct regcache *regcache = (struct regcache *) src;
+
+  return regcache_cooked_read (regcache, regnum, buf);
 }
 
-void
-regcache_xfree (struct regcache *regcache)
+regcache::regcache (readonly_t, const regcache &src)
+  : regcache (src.arch (), nullptr, true)
 {
-  if (regcache == NULL)
-    return;
-  xfree (regcache->registers);
-  xfree (regcache->register_status);
-  xfree (regcache);
+  gdb_assert (!src.m_readonly_p);
+  save (do_cooked_read, (void *) &src);
 }
 
-static void
-do_regcache_xfree (void *data)
+gdbarch *
+regcache::arch () const
 {
-  regcache_xfree ((struct regcache *) data);
+  return m_descr->gdbarch;
 }
 
-struct cleanup *
-make_cleanup_regcache_xfree (struct regcache *regcache)
+/* See regcache.h.  */
+
+ptid_t
+regcache_get_ptid (const struct regcache *regcache)
 {
-  return make_cleanup (do_regcache_xfree, regcache);
+  gdb_assert (!ptid_equal (regcache->ptid (), minus_one_ptid));
+
+  return regcache->ptid ();
 }
 
-/* Cleanup routines for invalidating a register.  */
+/* Cleanup class for invalidating a register.  */
 
-struct register_to_invalidate
+class regcache_invalidator
 {
-  struct regcache *regcache;
-  int regnum;
-};
+public:
 
-static void
-do_regcache_invalidate (void *data)
-{
-  struct register_to_invalidate *reg = (struct register_to_invalidate *) data;
+  regcache_invalidator (struct regcache *regcache, int regnum)
+    : m_regcache (regcache),
+      m_regnum (regnum)
+  {
+  }
 
-  regcache_invalidate (reg->regcache, reg->regnum);
-}
+  ~regcache_invalidator ()
+  {
+    if (m_regcache != nullptr)
+      regcache_invalidate (m_regcache, m_regnum);
+  }
 
-static struct cleanup *
-make_cleanup_regcache_invalidate (struct regcache *regcache, int regnum)
-{
-  struct register_to_invalidate* reg = XNEW (struct register_to_invalidate);
+  DISABLE_COPY_AND_ASSIGN (regcache_invalidator);
 
-  reg->regcache = regcache;
-  reg->regnum = regnum;
-  return make_cleanup_dtor (do_regcache_invalidate, (void *) reg, xfree);
-}
+  void release ()
+  {
+    m_regcache = nullptr;
+  }
 
-/* Return REGCACHE's architecture.  */
+private:
 
-struct gdbarch *
-get_regcache_arch (const struct regcache *regcache)
-{
-  return regcache->descr->gdbarch;
-}
+  struct regcache *m_regcache;
+  int m_regnum;
+};
+
+/* Return  a pointer to register REGNUM's buffer cache.  */
 
-struct address_space *
-get_regcache_aspace (const struct regcache *regcache)
+gdb_byte *
+regcache::register_buffer (int regnum) const
 {
-  return regcache->aspace;
+  return m_registers + m_descr->register_offset[regnum];
 }
 
-/* Return  a pointer to register REGNUM's buffer cache.  */
-
-static gdb_byte *
-register_buffer (const struct regcache *regcache, int regnum)
+void
+regcache_save (struct regcache *regcache,
+	       regcache_cooked_read_ftype *cooked_read, void *src)
 {
-  return regcache->registers + regcache->descr->register_offset[regnum];
+  regcache->save (cooked_read, src);
 }
 
 void
-regcache_save (struct regcache *dst, regcache_cooked_read_ftype *cooked_read,
-	       void *src)
+regcache::save (regcache_cooked_read_ftype *cooked_read,
+		void *src)
 {
-  struct gdbarch *gdbarch = dst->descr->gdbarch;
-  gdb_byte buf[MAX_REGISTER_SIZE];
+  struct gdbarch *gdbarch = m_descr->gdbarch;
   int regnum;
 
   /* The DST should be `read-only', if it wasn't then the save would
      end up trying to write the register values back out to the
      target.  */
-  gdb_assert (dst->readonly_p);
+  gdb_assert (m_readonly_p);
   /* Clear the dest.  */
-  memset (dst->registers, 0, dst->descr->sizeof_cooked_registers);
-  memset (dst->register_status, 0,
-	  dst->descr->sizeof_cooked_register_status);
+  memset (m_registers, 0, m_descr->sizeof_cooked_registers);
+  memset (m_register_status, 0, m_descr->nr_cooked_registers);
   /* Copy over any registers (identified by their membership in the
      save_reggroup) and mark them as valid.  The full [0 .. gdbarch_num_regs +
      gdbarch_num_pseudo_regs) range is checked since some architectures need
      to save/restore `cooked' registers that live in memory.  */
-  for (regnum = 0; regnum < dst->descr->nr_cooked_registers; regnum++)
+  for (regnum = 0; regnum < m_descr->nr_cooked_registers; regnum++)
     {
       if (gdbarch_register_reggroup_p (gdbarch, regnum, save_reggroup))
 	{
-	  enum register_status status = cooked_read (src, regnum, buf);
+	  gdb_byte *dst_buf = register_buffer (regnum);
+	  enum register_status status = cooked_read (src, regnum, dst_buf);
 
-	  if (status == REG_VALID)
-	    memcpy (register_buffer (dst, regnum), buf,
-		    register_size (gdbarch, regnum));
-	  else
-	    {
-	      gdb_assert (status != REG_UNKNOWN);
+	  gdb_assert (status != REG_UNKNOWN);
 
-	      memset (register_buffer (dst, regnum), 0,
-		      register_size (gdbarch, regnum));
-	    }
-	  dst->register_status[regnum] = status;
+	  if (status != REG_VALID)
+	    memset (dst_buf, 0, register_size (gdbarch, regnum));
+
+	  m_register_status[regnum] = status;
 	}
     }
 }
 
-static void
-regcache_restore (struct regcache *dst,
-		  regcache_cooked_read_ftype *cooked_read,
-		  void *cooked_read_context)
+void
+regcache::restore (struct regcache *src)
 {
-  struct gdbarch *gdbarch = dst->descr->gdbarch;
-  gdb_byte buf[MAX_REGISTER_SIZE];
+  struct gdbarch *gdbarch = m_descr->gdbarch;
   int regnum;
 
   /* The dst had better not be read-only.  If it is, the `restore'
      doesn't make much sense.  */
-  gdb_assert (!dst->readonly_p);
+  gdb_assert (!m_readonly_p);
+  gdb_assert (src->m_readonly_p);
   /* Copy over any registers, being careful to only restore those that
      were both saved and need to be restored.  The full [0 .. gdbarch_num_regs
      + gdbarch_num_pseudo_regs) range is checked since some architectures need
      to save/restore `cooked' registers that live in memory.  */
-  for (regnum = 0; regnum < dst->descr->nr_cooked_registers; regnum++)
+  for (regnum = 0; regnum < m_descr->nr_cooked_registers; regnum++)
     {
       if (gdbarch_register_reggroup_p (gdbarch, regnum, restore_reggroup))
 	{
-	  enum register_status status;
-
-	  status = cooked_read (cooked_read_context, regnum, buf);
-	  if (status == REG_VALID)
-	    regcache_cooked_write (dst, regnum, buf);
+	  if (src->m_register_status[regnum] == REG_VALID)
+	    cooked_write (regnum, src->register_buffer (regnum));
 	}
     }
 }
 
-static enum register_status
-do_cooked_read (void *src, int regnum, gdb_byte *buf)
-{
-  struct regcache *regcache = (struct regcache *) src;
-
-  return regcache_cooked_read (regcache, regnum, buf);
-}
-
-static void regcache_cpy_no_passthrough (struct regcache *dst,
-					 struct regcache *src);
-
 void
 regcache_cpy (struct regcache *dst, struct regcache *src)
 {
   gdb_assert (src != NULL && dst != NULL);
-  gdb_assert (src->descr->gdbarch == dst->descr->gdbarch);
+  gdb_assert (src->m_descr->gdbarch == dst->m_descr->gdbarch);
   gdb_assert (src != dst);
-  gdb_assert (src->readonly_p || dst->readonly_p);
+  gdb_assert (src->m_readonly_p && !dst->m_readonly_p);
 
-  if (!src->readonly_p)
-    regcache_save (dst, do_cooked_read, src);
-  else if (!dst->readonly_p)
-    regcache_restore (dst, do_cooked_read, src);
-  else
-    regcache_cpy_no_passthrough (dst, src);
-}
-
-/* Copy/duplicate the contents of a register cache.  Unlike regcache_cpy,
-   which is pass-through, this does not go through to the target.
-   Only values values already in the cache are transferred.  The SRC and DST
-   buffers must not overlap.  */
-
-static void
-regcache_cpy_no_passthrough (struct regcache *dst, struct regcache *src)
-{
-  gdb_assert (src != NULL && dst != NULL);
-  gdb_assert (src->descr->gdbarch == dst->descr->gdbarch);
-  /* NOTE: cagney/2002-05-17: Don't let the caller do a no-passthrough
-     move of data into a thread's regcache.  Doing this would be silly
-     - it would mean that regcache->register_status would be
-     completely invalid.  */
-  gdb_assert (dst->readonly_p && src->readonly_p);
-
-  memcpy (dst->registers, src->registers,
-	  dst->descr->sizeof_cooked_registers);
-  memcpy (dst->register_status, src->register_status,
-	  dst->descr->sizeof_cooked_register_status);
+  dst->restore (src);
 }
 
 struct regcache *
 regcache_dup (struct regcache *src)
 {
-  struct regcache *newbuf;
-
-  newbuf = regcache_xmalloc (src->descr->gdbarch, get_regcache_aspace (src));
-  regcache_cpy (newbuf, src);
-  return newbuf;
+  return new regcache (regcache::readonly, *src);
 }
 
 enum register_status
 regcache_register_status (const struct regcache *regcache, int regnum)
 {
   gdb_assert (regcache != NULL);
+  return regcache->get_register_status (regnum);
+}
+
+enum register_status
+regcache::get_register_status (int regnum) const
+{
   gdb_assert (regnum >= 0);
-  if (regcache->readonly_p)
-    gdb_assert (regnum < regcache->descr->nr_cooked_registers);
+  if (m_readonly_p)
+    gdb_assert (regnum < m_descr->nr_cooked_registers);
   else
-    gdb_assert (regnum < regcache->descr->nr_raw_registers);
+    gdb_assert (regnum < num_raw_registers ());
 
-  return (enum register_status) regcache->register_status[regnum];
+  return (enum register_status) m_register_status[regnum];
 }
 
 void
 regcache_invalidate (struct regcache *regcache, int regnum)
 {
   gdb_assert (regcache != NULL);
-  gdb_assert (regnum >= 0);
-  gdb_assert (!regcache->readonly_p);
-  gdb_assert (regnum < regcache->descr->nr_raw_registers);
-  regcache->register_status[regnum] = REG_UNKNOWN;
+  regcache->invalidate (regnum);
 }
 
+void
+regcache::invalidate (int regnum)
+{
+  gdb_assert (!m_readonly_p);
+  assert_regnum (regnum);
+  m_register_status[regnum] = REG_UNKNOWN;
+}
+
+void
+regcache::assert_regnum (int regnum) const
+{
+  gdb_assert (regnum >= 0 && regnum < gdbarch_num_regs (arch ()));
+}
 
 /* Global structure containing the current regcache.  */
 
@@ -491,34 +401,20 @@ regcache_invalidate (struct regcache *re
    recording if the register values have been changed (eg. by the
    user).  Therefore all registers must be written back to the
    target when appropriate.  */
-
-struct regcache_list
-{
-  struct regcache *regcache;
-  struct regcache_list *next;
-};
-
-static struct regcache_list *current_regcache;
+std::forward_list<regcache *> regcache::current_regcache;
 
 struct regcache *
 get_thread_arch_aspace_regcache (ptid_t ptid, struct gdbarch *gdbarch,
 				 struct address_space *aspace)
 {
-  struct regcache_list *list;
-  struct regcache *new_regcache;
+  for (const auto &regcache : regcache::current_regcache)
+    if (ptid_equal (regcache->ptid (), ptid) && regcache->arch () == gdbarch)
+      return regcache;
 
-  for (list = current_regcache; list; list = list->next)
-    if (ptid_equal (list->regcache->ptid, ptid)
-	&& get_regcache_arch (list->regcache) == gdbarch)
-      return list->regcache;
-
-  new_regcache = regcache_xmalloc_1 (gdbarch, aspace, 0);
-  new_regcache->ptid = ptid;
-
-  list = XNEW (struct regcache_list);
-  list->regcache = new_regcache;
-  list->next = current_regcache;
-  current_regcache = list;
+  regcache *new_regcache = new regcache (gdbarch, aspace, false);
+
+  regcache::current_regcache.push_front (new_regcache);
+  new_regcache->set_ptid (ptid);
 
   return new_regcache;
 }
@@ -526,17 +422,7 @@ get_thread_arch_aspace_regcache (ptid_t 
 struct regcache *
 get_thread_arch_regcache (ptid_t ptid, struct gdbarch *gdbarch)
 {
-  struct address_space *aspace;
-
-  /* For the benefit of "maint print registers" & co when debugging an
-     executable, allow dumping the regcache even when there is no
-     thread selected (target_thread_address_space internal-errors if
-     no address space is found).  Note that normal user commands will
-     fail higher up on the call stack due to no
-     target_has_registers.  */
-  aspace = (ptid_equal (null_ptid, ptid)
-	    ? NULL
-	    : target_thread_address_space (ptid));
+  address_space *aspace = target_thread_address_space (ptid);
 
   return get_thread_arch_aspace_regcache  (ptid, gdbarch, aspace);
 }
@@ -580,14 +466,14 @@ regcache_observer_target_changed (struct
 
 /* Update global variables old ptids to hold NEW_PTID if they were
    holding OLD_PTID.  */
-static void
-regcache_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid)
+void
+regcache::regcache_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid)
 {
-  struct regcache_list *list;
-
-  for (list = current_regcache; list; list = list->next)
-    if (ptid_equal (list->regcache->ptid, old_ptid))
-      list->regcache->ptid = new_ptid;
+  for (auto &regcache : regcache::current_regcache)
+    {
+      if (ptid_equal (regcache->ptid (), old_ptid))
+	regcache->set_ptid (new_ptid);
+    }
 }
 
 /* Low level examining and depositing of registers.
@@ -604,25 +490,18 @@ regcache_thread_ptid_changed (ptid_t old
 void
 registers_changed_ptid (ptid_t ptid)
 {
-  struct regcache_list *list, **list_link;
-
-  list = current_regcache;
-  list_link = &current_regcache;
-  while (list)
+  for (auto oit = regcache::current_regcache.before_begin (),
+	 it = std::next (oit);
+       it != regcache::current_regcache.end ();
+       )
     {
-      if (ptid_match (list->regcache->ptid, ptid))
+      if (ptid_match ((*it)->ptid (), ptid))
 	{
-	  struct regcache_list *dead = list;
-
-	  *list_link = list->next;
-	  regcache_xfree (list->regcache);
-	  list = *list_link;
-	  xfree (dead);
-	  continue;
+	  delete *it;
+	  it = regcache::current_regcache.erase_after (oit);
 	}
-
-      list_link = &list->next;
-      list = *list_link;
+      else
+	oit = it++;
     }
 
   if (ptid_match (current_thread_ptid, ptid))
@@ -656,55 +535,74 @@ void
 regcache_raw_update (struct regcache *regcache, int regnum)
 {
   gdb_assert (regcache != NULL);
-  gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers);
+
+  regcache->raw_update (regnum);
+}
+
+void
+regcache::raw_update (int regnum)
+{
+  assert_regnum (regnum);
 
   /* Make certain that the register cache is up-to-date with respect
      to the current thread.  This switching shouldn't be necessary
      only there is still only one target side register cache.  Sigh!
      On the bright side, at least there is a regcache object.  */
 
-  if (!regcache->readonly_p
-      && regcache_register_status (regcache, regnum) == REG_UNKNOWN)
+  if (!m_readonly_p && get_register_status (regnum) == REG_UNKNOWN)
     {
-      target_fetch_registers (regcache, regnum);
+      target_fetch_registers (this, regnum);
 
       /* A number of targets can't access the whole set of raw
 	 registers (because the debug API provides no means to get at
 	 them).  */
-      if (regcache->register_status[regnum] == REG_UNKNOWN)
-	regcache->register_status[regnum] = REG_UNAVAILABLE;
+      if (m_register_status[regnum] == REG_UNKNOWN)
+	m_register_status[regnum] = REG_UNAVAILABLE;
     }
 }
 
 enum register_status
 regcache_raw_read (struct regcache *regcache, int regnum, gdb_byte *buf)
 {
+  return regcache->raw_read (regnum, buf);
+}
+
+enum register_status
+regcache::raw_read (int regnum, gdb_byte *buf)
+{
   gdb_assert (buf != NULL);
-  regcache_raw_update (regcache, regnum);
+  raw_update (regnum);
 
-  if (regcache->register_status[regnum] != REG_VALID)
-    memset (buf, 0, regcache->descr->sizeof_register[regnum]);
+  if (m_register_status[regnum] != REG_VALID)
+    memset (buf, 0, m_descr->sizeof_register[regnum]);
   else
-    memcpy (buf, register_buffer (regcache, regnum),
-	    regcache->descr->sizeof_register[regnum]);
+    memcpy (buf, register_buffer (regnum),
+	    m_descr->sizeof_register[regnum]);
 
-  return (enum register_status) regcache->register_status[regnum];
+  return (enum register_status) m_register_status[regnum];
 }
 
 enum register_status
 regcache_raw_read_signed (struct regcache *regcache, int regnum, LONGEST *val)
 {
+  gdb_assert (regcache != NULL);
+  return regcache->raw_read (regnum, val);
+}
+
+template<typename T, typename>
+enum register_status
+regcache::raw_read (int regnum, T *val)
+{
   gdb_byte *buf;
   enum register_status status;
 
-  gdb_assert (regcache != NULL);
-  gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers);
-  buf = (gdb_byte *) alloca (regcache->descr->sizeof_register[regnum]);
-  status = regcache_raw_read (regcache, regnum, buf);
+  assert_regnum (regnum);
+  buf = (gdb_byte *) alloca (m_descr->sizeof_register[regnum]);
+  status = raw_read (regnum, buf);
   if (status == REG_VALID)
-    *val = extract_signed_integer
-      (buf, regcache->descr->sizeof_register[regnum],
-       gdbarch_byte_order (regcache->descr->gdbarch));
+    *val = extract_integer<T> (buf,
+			       m_descr->sizeof_register[regnum],
+			       gdbarch_byte_order (m_descr->gdbarch));
   else
     *val = 0;
   return status;
@@ -714,47 +612,36 @@ enum register_status
 regcache_raw_read_unsigned (struct regcache *regcache, int regnum,
 			    ULONGEST *val)
 {
-  gdb_byte *buf;
-  enum register_status status;
-
   gdb_assert (regcache != NULL);
-  gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers);
-  buf = (gdb_byte *) alloca (regcache->descr->sizeof_register[regnum]);
-  status = regcache_raw_read (regcache, regnum, buf);
-  if (status == REG_VALID)
-    *val = extract_unsigned_integer
-      (buf, regcache->descr->sizeof_register[regnum],
-       gdbarch_byte_order (regcache->descr->gdbarch));
-  else
-    *val = 0;
-  return status;
+  return regcache->raw_read (regnum, val);
 }
 
 void
 regcache_raw_write_signed (struct regcache *regcache, int regnum, LONGEST val)
 {
+  gdb_assert (regcache != NULL);
+  regcache->raw_write (regnum, val);
+}
+
+template<typename T, typename>
+void
+regcache::raw_write (int regnum, T val)
+{
   gdb_byte *buf;
 
-  gdb_assert (regcache != NULL);
-  gdb_assert (regnum >=0 && regnum < regcache->descr->nr_raw_registers);
-  buf = (gdb_byte *) alloca (regcache->descr->sizeof_register[regnum]);
-  store_signed_integer (buf, regcache->descr->sizeof_register[regnum],
-			gdbarch_byte_order (regcache->descr->gdbarch), val);
-  regcache_raw_write (regcache, regnum, buf);
+  assert_regnum (regnum);
+  buf = (gdb_byte *) alloca (m_descr->sizeof_register[regnum]);
+  store_integer (buf, m_descr->sizeof_register[regnum],
+		 gdbarch_byte_order (m_descr->gdbarch), val);
+  raw_write (regnum, buf);
 }
 
 void
 regcache_raw_write_unsigned (struct regcache *regcache, int regnum,
 			     ULONGEST val)
 {
-  gdb_byte *buf;
-
   gdb_assert (regcache != NULL);
-  gdb_assert (regnum >=0 && regnum < regcache->descr->nr_raw_registers);
-  buf = (gdb_byte *) alloca (regcache->descr->sizeof_register[regnum]);
-  store_unsigned_integer (buf, regcache->descr->sizeof_register[regnum],
-			  gdbarch_byte_order (regcache->descr->gdbarch), val);
-  regcache_raw_write (regcache, regnum, buf);
+  regcache->raw_write (regnum, val);
 }
 
 LONGEST
@@ -773,38 +660,44 @@ regcache_raw_get_signed (struct regcache
 enum register_status
 regcache_cooked_read (struct regcache *regcache, int regnum, gdb_byte *buf)
 {
+  return regcache->cooked_read (regnum, buf);
+}
+
+enum register_status
+regcache::cooked_read (int regnum, gdb_byte *buf)
+{
   gdb_assert (regnum >= 0);
-  gdb_assert (regnum < regcache->descr->nr_cooked_registers);
-  if (regnum < regcache->descr->nr_raw_registers)
-    return regcache_raw_read (regcache, regnum, buf);
-  else if (regcache->readonly_p
-	   && regcache->register_status[regnum] != REG_UNKNOWN)
+  gdb_assert (regnum < m_descr->nr_cooked_registers);
+  if (regnum < num_raw_registers ())
+    return raw_read (regnum, buf);
+  else if (m_readonly_p
+	   && m_register_status[regnum] != REG_UNKNOWN)
     {
       /* Read-only register cache, perhaps the cooked value was
 	 cached?  */
-      if (regcache->register_status[regnum] == REG_VALID)
-	memcpy (buf, register_buffer (regcache, regnum),
-		regcache->descr->sizeof_register[regnum]);
+      if (m_register_status[regnum] == REG_VALID)
+	memcpy (buf, register_buffer (regnum),
+		m_descr->sizeof_register[regnum]);
       else
-	memset (buf, 0, regcache->descr->sizeof_register[regnum]);
+	memset (buf, 0, m_descr->sizeof_register[regnum]);
 
-      return (enum register_status) regcache->register_status[regnum];
+      return (enum register_status) m_register_status[regnum];
     }
-  else if (gdbarch_pseudo_register_read_value_p (regcache->descr->gdbarch))
+  else if (gdbarch_pseudo_register_read_value_p (m_descr->gdbarch))
     {
       struct value *mark, *computed;
       enum register_status result = REG_VALID;
 
       mark = value_mark ();
 
-      computed = gdbarch_pseudo_register_read_value (regcache->descr->gdbarch,
-						     regcache, regnum);
+      computed = gdbarch_pseudo_register_read_value (m_descr->gdbarch,
+						     this, regnum);
       if (value_entirely_available (computed))
 	memcpy (buf, value_contents_raw (computed),
-		regcache->descr->sizeof_register[regnum]);
+		m_descr->sizeof_register[regnum]);
       else
 	{
-	  memset (buf, 0, regcache->descr->sizeof_register[regnum]);
+	  memset (buf, 0, m_descr->sizeof_register[regnum]);
 	  result = REG_UNAVAILABLE;
 	}
 
@@ -813,58 +706,68 @@ regcache_cooked_read (struct regcache *r
       return result;
     }
   else
-    return gdbarch_pseudo_register_read (regcache->descr->gdbarch, regcache,
+    return gdbarch_pseudo_register_read (m_descr->gdbarch, this,
 					 regnum, buf);
 }
 
 struct value *
 regcache_cooked_read_value (struct regcache *regcache, int regnum)
 {
+  return regcache->cooked_read_value (regnum);
+}
+
+struct value *
+regcache::cooked_read_value (int regnum)
+{
   gdb_assert (regnum >= 0);
-  gdb_assert (regnum < regcache->descr->nr_cooked_registers);
+  gdb_assert (regnum < m_descr->nr_cooked_registers);
 
-  if (regnum < regcache->descr->nr_raw_registers
-      || (regcache->readonly_p
-	  && regcache->register_status[regnum] != REG_UNKNOWN)
-      || !gdbarch_pseudo_register_read_value_p (regcache->descr->gdbarch))
+  if (regnum < num_raw_registers ()
+      || (m_readonly_p && m_register_status[regnum] != REG_UNKNOWN)
+      || !gdbarch_pseudo_register_read_value_p (m_descr->gdbarch))
     {
       struct value *result;
 
-      result = allocate_value (register_type (regcache->descr->gdbarch,
-					      regnum));
+      result = allocate_value (register_type (m_descr->gdbarch, regnum));
       VALUE_LVAL (result) = lval_register;
       VALUE_REGNUM (result) = regnum;
 
       /* It is more efficient in general to do this delegation in this
 	 direction than in the other one, even though the value-based
 	 API is preferred.  */
-      if (regcache_cooked_read (regcache, regnum,
-				value_contents_raw (result)) == REG_UNAVAILABLE)
+      if (cooked_read (regnum,
+		       value_contents_raw (result)) == REG_UNAVAILABLE)
 	mark_value_bytes_unavailable (result, 0,
 				      TYPE_LENGTH (value_type (result)));
 
       return result;
     }
   else
-    return gdbarch_pseudo_register_read_value (regcache->descr->gdbarch,
-					       regcache, regnum);
+    return gdbarch_pseudo_register_read_value (m_descr->gdbarch,
+					       this, regnum);
 }
 
 enum register_status
 regcache_cooked_read_signed (struct regcache *regcache, int regnum,
 			     LONGEST *val)
 {
+  gdb_assert (regcache != NULL);
+  return regcache->cooked_read (regnum, val);
+}
+
+template<typename T, typename>
+enum register_status
+regcache::cooked_read (int regnum, T *val)
+{
   enum register_status status;
   gdb_byte *buf;
 
-  gdb_assert (regcache != NULL);
-  gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_cooked_registers);
-  buf = (gdb_byte *) alloca (regcache->descr->sizeof_register[regnum]);
-  status = regcache_cooked_read (regcache, regnum, buf);
+  gdb_assert (regnum >= 0 && regnum < m_descr->nr_cooked_registers);
+  buf = (gdb_byte *) alloca (m_descr->sizeof_register[regnum]);
+  status = cooked_read (regnum, buf);
   if (status == REG_VALID)
-    *val = extract_signed_integer
-      (buf, regcache->descr->sizeof_register[regnum],
-       gdbarch_byte_order (regcache->descr->gdbarch));
+    *val = extract_integer<T> (buf, m_descr->sizeof_register[regnum],
+			       gdbarch_byte_order (m_descr->gdbarch));
   else
     *val = 0;
   return status;
@@ -874,48 +777,37 @@ enum register_status
 regcache_cooked_read_unsigned (struct regcache *regcache, int regnum,
 			       ULONGEST *val)
 {
-  enum register_status status;
-  gdb_byte *buf;
-
   gdb_assert (regcache != NULL);
-  gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_cooked_registers);
-  buf = (gdb_byte *) alloca (regcache->descr->sizeof_register[regnum]);
-  status = regcache_cooked_read (regcache, regnum, buf);
-  if (status == REG_VALID)
-    *val = extract_unsigned_integer
-      (buf, regcache->descr->sizeof_register[regnum],
-       gdbarch_byte_order (regcache->descr->gdbarch));
-  else
-    *val = 0;
-  return status;
+  return regcache->cooked_read (regnum, val);
 }
 
 void
 regcache_cooked_write_signed (struct regcache *regcache, int regnum,
 			      LONGEST val)
 {
+  gdb_assert (regcache != NULL);
+  regcache->cooked_write (regnum, val);
+}
+
+template<typename T, typename>
+void
+regcache::cooked_write (int regnum, T val)
+{
   gdb_byte *buf;
 
-  gdb_assert (regcache != NULL);
-  gdb_assert (regnum >=0 && regnum < regcache->descr->nr_cooked_registers);
-  buf = (gdb_byte *) alloca (regcache->descr->sizeof_register[regnum]);
-  store_signed_integer (buf, regcache->descr->sizeof_register[regnum],
-			gdbarch_byte_order (regcache->descr->gdbarch), val);
-  regcache_cooked_write (regcache, regnum, buf);
+  gdb_assert (regnum >=0 && regnum < m_descr->nr_cooked_registers);
+  buf = (gdb_byte *) alloca (m_descr->sizeof_register[regnum]);
+  store_integer (buf, m_descr->sizeof_register[regnum],
+		 gdbarch_byte_order (m_descr->gdbarch), val);
+  cooked_write (regnum, buf);
 }
 
 void
 regcache_cooked_write_unsigned (struct regcache *regcache, int regnum,
 				ULONGEST val)
 {
-  gdb_byte *buf;
-
   gdb_assert (regcache != NULL);
-  gdb_assert (regnum >=0 && regnum < regcache->descr->nr_cooked_registers);
-  buf = (gdb_byte *) alloca (regcache->descr->sizeof_register[regnum]);
-  store_unsigned_integer (buf, regcache->descr->sizeof_register[regnum],
-			  gdbarch_byte_order (regcache->descr->gdbarch), val);
-  regcache_cooked_write (regcache, regnum, buf);
+  regcache->cooked_write (regnum, val);
 }
 
 /* See regcache.h.  */
@@ -924,57 +816,75 @@ void
 regcache_raw_set_cached_value (struct regcache *regcache, int regnum,
 			       const gdb_byte *buf)
 {
-  memcpy (register_buffer (regcache, regnum), buf,
-	  regcache->descr->sizeof_register[regnum]);
-  regcache->register_status[regnum] = REG_VALID;
+  regcache->raw_set_cached_value (regnum, buf);
+}
+
+void
+regcache::raw_set_cached_value (int regnum, const gdb_byte *buf)
+{
+  memcpy (register_buffer (regnum), buf,
+	  m_descr->sizeof_register[regnum]);
+  m_register_status[regnum] = REG_VALID;
 }
 
 void
 regcache_raw_write (struct regcache *regcache, int regnum,
 		    const gdb_byte *buf)
 {
-  struct cleanup *old_chain;
-
   gdb_assert (regcache != NULL && buf != NULL);
-  gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers);
-  gdb_assert (!regcache->readonly_p);
+  regcache->raw_write (regnum, buf);
+}
+
+void
+regcache::raw_write (int regnum, const gdb_byte *buf)
+{
+
+  gdb_assert (buf != NULL);
+  assert_regnum (regnum);
+  gdb_assert (!m_readonly_p);
 
   /* On the sparc, writing %g0 is a no-op, so we don't even want to
      change the registers array if something writes to this register.  */
-  if (gdbarch_cannot_store_register (get_regcache_arch (regcache), regnum))
+  if (gdbarch_cannot_store_register (arch (), regnum))
     return;
 
   /* If we have a valid copy of the register, and new value == old
      value, then don't bother doing the actual store.  */
-  if (regcache_register_status (regcache, regnum) == REG_VALID
-      && (memcmp (register_buffer (regcache, regnum), buf,
-		  regcache->descr->sizeof_register[regnum]) == 0))
+  if (get_register_status (regnum) == REG_VALID
+      && (memcmp (register_buffer (regnum), buf,
+		  m_descr->sizeof_register[regnum]) == 0))
     return;
 
-  target_prepare_to_store (regcache);
-  regcache_raw_set_cached_value (regcache, regnum, buf);
+  target_prepare_to_store (this);
+  raw_set_cached_value (regnum, buf);
 
-  /* Register a cleanup function for invalidating the register after it is
-     written, in case of a failure.  */
-  old_chain = make_cleanup_regcache_invalidate (regcache, regnum);
-
-  target_store_registers (regcache, regnum);
-
-  /* The target did not throw an error so we can discard invalidating the
-     register and restore the cleanup chain to what it was.  */
-  discard_cleanups (old_chain);
+  /* Invalidate the register after it is written, in case of a
+     failure.  */
+  regcache_invalidator invalidator (this, regnum);
+
+  target_store_registers (this, regnum);
+
+  /* The target did not throw an error so we can discard invalidating
+     the register.  */
+  invalidator.release ();
 }
 
 void
 regcache_cooked_write (struct regcache *regcache, int regnum,
 		       const gdb_byte *buf)
 {
+  regcache->cooked_write (regnum, buf);
+}
+
+void
+regcache::cooked_write (int regnum, const gdb_byte *buf)
+{
   gdb_assert (regnum >= 0);
-  gdb_assert (regnum < regcache->descr->nr_cooked_registers);
-  if (regnum < regcache->descr->nr_raw_registers)
-    regcache_raw_write (regcache, regnum, buf);
+  gdb_assert (regnum < m_descr->nr_cooked_registers);
+  if (regnum < num_raw_registers ())
+    raw_write (regnum, buf);
   else
-    gdbarch_pseudo_register_write (regcache->descr->gdbarch, regcache,
+    gdbarch_pseudo_register_write (m_descr->gdbarch, this,
 				   regnum, buf);
 }
 
@@ -986,33 +896,29 @@ typedef void (regcache_read_ftype) (stru
 typedef void (regcache_write_ftype) (struct regcache *regcache, int regnum,
 				     const void *buf);
 
-static enum register_status
-regcache_xfer_part (struct regcache *regcache, int regnum,
-		    int offset, int len, void *in, const void *out,
-		    enum register_status (*read) (struct regcache *regcache,
-						  int regnum,
-						  gdb_byte *buf),
-		    void (*write) (struct regcache *regcache, int regnum,
-				   const gdb_byte *buf))
+enum register_status
+regcache::xfer_part (int regnum, int offset, int len, void *in,
+		     const void *out, bool is_raw)
 {
-  struct regcache_descr *descr = regcache->descr;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = arch ();
   gdb_byte *reg = (gdb_byte *) alloca (register_size (gdbarch, regnum));
 
-  gdb_assert (offset >= 0 && offset <= descr->sizeof_register[regnum]);
-  gdb_assert (len >= 0 && offset + len <= descr->sizeof_register[regnum]);
+  gdb_assert (offset >= 0 && offset <= m_descr->sizeof_register[regnum]);
+  gdb_assert (len >= 0 && offset + len <= m_descr->sizeof_register[regnum]);
   /* Something to do?  */
   if (offset + len == 0)
     return REG_VALID;
   /* Read (when needed) ...  */
   if (in != NULL
       || offset > 0
-      || offset + len < descr->sizeof_register[regnum])
+      || offset + len < m_descr->sizeof_register[regnum])
     {
       enum register_status status;
 
-      gdb_assert (read != NULL);
-      status = read (regcache, regnum, reg);
+      if (is_raw)
+	status = raw_read (regnum, reg);
+      else
+	status = cooked_read (regnum, reg);
       if (status != REG_VALID)
 	return status;
     }
@@ -1024,8 +930,10 @@ regcache_xfer_part (struct regcache *reg
   /* ... write (when needed).  */
   if (out != NULL)
     {
-      gdb_assert (write != NULL);
-      write (regcache, regnum, reg);
+      if (is_raw)
+	raw_write (regnum, reg);
+      else
+	cooked_write (regnum, reg);
     }
 
   return REG_VALID;
@@ -1035,44 +943,59 @@ enum register_status
 regcache_raw_read_part (struct regcache *regcache, int regnum,
 			int offset, int len, gdb_byte *buf)
 {
-  struct regcache_descr *descr = regcache->descr;
+  return regcache->raw_read_part (regnum, offset, len, buf);
+}
 
-  gdb_assert (regnum >= 0 && regnum < descr->nr_raw_registers);
-  return regcache_xfer_part (regcache, regnum, offset, len, buf, NULL,
-			     regcache_raw_read, regcache_raw_write);
+enum register_status
+regcache::raw_read_part (int regnum, int offset, int len, gdb_byte *buf)
+{
+  assert_regnum (regnum);
+  return xfer_part (regnum, offset, len, buf, NULL, true);
 }
 
 void
 regcache_raw_write_part (struct regcache *regcache, int regnum,
 			 int offset, int len, const gdb_byte *buf)
 {
-  struct regcache_descr *descr = regcache->descr;
+  regcache->raw_write_part (regnum, offset, len, buf);
+}
 
-  gdb_assert (regnum >= 0 && regnum < descr->nr_raw_registers);
-  regcache_xfer_part (regcache, regnum, offset, len, NULL, buf,
-		      regcache_raw_read, regcache_raw_write);
+void
+regcache::raw_write_part (int regnum, int offset, int len,
+			  const gdb_byte *buf)
+{
+  assert_regnum (regnum);
+  xfer_part (regnum, offset, len, NULL, buf, true);
 }
 
 enum register_status
 regcache_cooked_read_part (struct regcache *regcache, int regnum,
 			   int offset, int len, gdb_byte *buf)
 {
-  struct regcache_descr *descr = regcache->descr;
+  return regcache->cooked_read_part (regnum, offset, len, buf);
+}
 
-  gdb_assert (regnum >= 0 && regnum < descr->nr_cooked_registers);
-  return regcache_xfer_part (regcache, regnum, offset, len, buf, NULL,
-			     regcache_cooked_read, regcache_cooked_write);
+
+enum register_status
+regcache::cooked_read_part (int regnum, int offset, int len, gdb_byte *buf)
+{
+  gdb_assert (regnum >= 0 && regnum < m_descr->nr_cooked_registers);
+  return xfer_part (regnum, offset, len, buf, NULL, false);
 }
 
 void
 regcache_cooked_write_part (struct regcache *regcache, int regnum,
 			    int offset, int len, const gdb_byte *buf)
 {
-  struct regcache_descr *descr = regcache->descr;
+  regcache->cooked_write_part (regnum, offset, len, buf);
+}
 
-  gdb_assert (regnum >= 0 && regnum < descr->nr_cooked_registers);
-  regcache_xfer_part (regcache, regnum, offset, len, NULL, buf,
-		      regcache_cooked_read, regcache_cooked_write);
+void
+regcache::cooked_write_part (int regnum, int offset, int len,
+			     const gdb_byte *buf)
+{
+  gdb_assert (regnum >= 0 && regnum < m_descr->nr_cooked_registers);
+  xfer_part (regnum, offset, len, NULL, buf, false);
 }
 
 /* Supply register REGNUM, whose contents are stored in BUF, to REGCACHE.  */
@@ -1080,20 +1003,26 @@ regcache_cooked_write_part (struct regca
 void
 regcache_raw_supply (struct regcache *regcache, int regnum, const void *buf)
 {
+  gdb_assert (regcache != NULL);
+  regcache->raw_supply (regnum, buf);
+}
+
+void
+regcache::raw_supply (int regnum, const void *buf)
+{
   void *regbuf;
   size_t size;
 
-  gdb_assert (regcache != NULL);
-  gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers);
-  gdb_assert (!regcache->readonly_p);
+  assert_regnum (regnum);
+  gdb_assert (!m_readonly_p);
 
-  regbuf = register_buffer (regcache, regnum);
-  size = regcache->descr->sizeof_register[regnum];
+  regbuf = register_buffer (regnum);
+  size = m_descr->sizeof_register[regnum];
 
   if (buf)
     {
       memcpy (regbuf, buf, size);
-      regcache->register_status[regnum] = REG_VALID;
+      m_register_status[regnum] = REG_VALID;
     }
   else
     {
@@ -1101,23 +1030,75 @@ regcache_raw_supply (struct regcache *re
 	 in case the register value manages to escape somewhere (due
 	 to a bug, no less).  */
       memset (regbuf, 0, size);
-      regcache->register_status[regnum] = REG_UNAVAILABLE;
+      m_register_status[regnum] = REG_UNAVAILABLE;
     }
 }
 
+/* Supply register REGNUM to REGCACHE.  Value to supply is an integer stored at
+   address ADDR, in target endian, with length ADDR_LEN and sign IS_SIGNED.  If
+   the register size is greater than ADDR_LEN, then the integer will be sign or
+   zero extended.  If the register size is smaller than the integer, then the
+   most significant bytes of the integer will be truncated.  */
+
+void
+regcache::raw_supply_integer (int regnum, const gdb_byte *addr, int addr_len,
+			      bool is_signed)
+{
+  enum bfd_endian byte_order = gdbarch_byte_order (m_descr->gdbarch);
+  gdb_byte *regbuf;
+  size_t regsize;
+
+  assert_regnum (regnum);
+  gdb_assert (!m_readonly_p);
+
+  regbuf = register_buffer (regnum);
+  regsize = m_descr->sizeof_register[regnum];
+
+  copy_integer_to_size (regbuf, regsize, addr, addr_len, is_signed,
+			byte_order);
+  m_register_status[regnum] = REG_VALID;
+}
+
+/* Supply register REGNUM with zeroed value to REGCACHE.  This is not the same
+   as calling raw_supply with NULL (which will set the state to
+   unavailable).  */
+
+void
+regcache::raw_supply_zeroed (int regnum)
+{
+  void *regbuf;
+  size_t size;
+
+  assert_regnum (regnum);
+  gdb_assert (!m_readonly_p);
+
+  regbuf = register_buffer (regnum);
+  size = m_descr->sizeof_register[regnum];
+
+  memset (regbuf, 0, size);
+  m_register_status[regnum] = REG_VALID;
+}
+
 /* Collect register REGNUM from REGCACHE and store its contents in BUF.  */
 
 void
 regcache_raw_collect (const struct regcache *regcache, int regnum, void *buf)
 {
+  gdb_assert (regcache != NULL && buf != NULL);
+  regcache->raw_collect (regnum, buf);
+}
+
+void
+regcache::raw_collect (int regnum, void *buf) const
+{
   const void *regbuf;
   size_t size;
 
-  gdb_assert (regcache != NULL && buf != NULL);
-  gdb_assert (regnum >= 0 && regnum < regcache->descr->nr_raw_registers);
+  gdb_assert (buf != NULL);
+  assert_regnum (regnum);
 
-  regbuf = register_buffer (regcache, regnum);
-  size = regcache->descr->sizeof_register[regnum];
+  regbuf = register_buffer (regnum);
+  size = m_descr->sizeof_register[regnum];
   memcpy (buf, regbuf, size);
 }
 
@@ -1125,12 +1106,34 @@ regcache_raw_collect (const struct regca
    set to or from a buffer.  This is the main worker function for
    regcache_supply_regset and regcache_collect_regset.  */
 
-static void
-regcache_transfer_regset (const struct regset *regset,
-			  const struct regcache *regcache,
-			  struct regcache *out_regcache,
-			  int regnum, const void *in_buf,
-			  void *out_buf, size_t size)
+/* Collect register REGNUM from REGCACHE.  Store collected value as an integer
+   at address ADDR, in target endian, with length ADDR_LEN and sign IS_SIGNED.
+   If ADDR_LEN is greater than the register size, then the integer will be sign
+   or zero extended.  If ADDR_LEN is smaller than the register size, then the
+   most significant bytes of the integer will be truncated.  */
+
+void
+regcache::raw_collect_integer (int regnum, gdb_byte *addr, int addr_len,
+			       bool is_signed) const
+{
+  enum bfd_endian byte_order = gdbarch_byte_order (m_descr->gdbarch);
+  const gdb_byte *regbuf;
+  size_t regsize;
+
+  assert_regnum (regnum);
+
+  regbuf = register_buffer (regnum);
+  regsize = m_descr->sizeof_register[regnum];
+
+  copy_integer_to_size (addr, addr_len, regbuf, regsize, is_signed,
+			byte_order);
+}
+
+void
+regcache::transfer_regset (const struct regset *regset,
+			   struct regcache *out_regcache,
+			   int regnum, const void *in_buf,
+			   void *out_buf, size_t size) const
 {
   const struct regcache_map_entry *map;
   int offs = 0, count;
@@ -1143,7 +1146,7 @@ regcache_transfer_regset (const struct r
       int slot_size = map->size;
 
       if (slot_size == 0 && regno != REGCACHE_MAP_SKIP)
-	slot_size = regcache->descr->sizeof_register[regno];
+	slot_size = m_descr->sizeof_register[regno];
 
       if (regno == REGCACHE_MAP_SKIP
 	  || (regnum != -1
@@ -1157,12 +1160,11 @@ regcache_transfer_regset (const struct r
 	      break;
 
 	    if (out_buf)
-	      regcache_raw_collect (regcache, regno,
-				    (gdb_byte *) out_buf + offs);
+	      raw_collect (regno, (gdb_byte *) out_buf + offs);
 	    else
-	      regcache_raw_supply (out_regcache, regno, in_buf
-				   ? (const gdb_byte *) in_buf + offs
-				   : NULL);
+	      out_regcache->raw_supply (regno, in_buf
+					? (const gdb_byte *) in_buf + offs
+					: NULL);
 	  }
       else
 	{
@@ -1172,12 +1174,11 @@ regcache_transfer_regset (const struct r
 	    return;
 
 	  if (out_buf)
-	    regcache_raw_collect (regcache, regnum,
-				  (gdb_byte *) out_buf + offs);
+	    raw_collect (regnum, (gdb_byte *) out_buf + offs);
 	  else
-	    regcache_raw_supply (out_regcache, regnum, in_buf
-				 ? (const gdb_byte *) in_buf + offs
-				 : NULL);
+	    out_regcache->raw_supply (regnum, in_buf
+				      ? (const gdb_byte *) in_buf + offs
+				      : NULL);
 	  return;
 	}
     }
@@ -1192,8 +1193,14 @@ regcache_supply_regset (const struct reg
 			struct regcache *regcache,
 			int regnum, const void *buf, size_t size)
 {
-  regcache_transfer_regset (regset, regcache, regcache, regnum,
-			    buf, NULL, size);
+  regcache->supply_regset (regset, regnum, buf, size);
+}
+
+void
+regcache::supply_regset (const struct regset *regset,
+			 int regnum, const void *buf, size_t size)
+{
+  transfer_regset (regset, this, regnum, buf, NULL, size);
 }
 
 /* Collect register REGNUM from REGCACHE to BUF, using the register
@@ -1205,8 +1212,14 @@ regcache_collect_regset (const struct re
 			 const struct regcache *regcache,
 			 int regnum, void *buf, size_t size)
 {
-  regcache_transfer_regset (regset, regcache, NULL, regnum,
-			    NULL, buf, size);
+  regcache->collect_regset (regset, regnum, buf, size);
+}
+
+void
+regcache::collect_regset (const struct regset *regset,
+			 int regnum, void *buf, size_t size) const
+{
+  transfer_regset (regset, NULL, regnum, NULL, buf, size);
 }
 
 
@@ -1215,7 +1228,7 @@ regcache_collect_regset (const struct re
 CORE_ADDR
 regcache_read_pc (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   CORE_ADDR pc_val;
 
@@ -1242,7 +1255,7 @@ regcache_read_pc (struct regcache *regca
 void
 regcache_write_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   if (gdbarch_write_pc_p (gdbarch))
     gdbarch_write_pc (gdbarch, regcache, pc);
@@ -1258,11 +1271,16 @@ regcache_write_pc (struct regcache *regc
   reinit_frame_cache ();
 }
 
+int
+regcache::num_raw_registers () const
+{
+  return gdbarch_num_regs (arch ());
+}
+
 void
-regcache_debug_print_register (const char *func, struct regcache *regcache,
-			       int regno)
+regcache::debug_print_register (const char *func,  int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = arch ();
 
   fprintf_unfiltered (gdb_stdlog, "%s ", func);
   if (regno >= 0 && regno < gdbarch_num_regs (gdbarch)
@@ -1276,7 +1294,7 @@ regcache_debug_print_register (const cha
     {
       enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
       int size = register_size (gdbarch, regno);
-      gdb_byte *buf = register_buffer (regcache, regno);
+      gdb_byte *buf = register_buffer (regno);
 
       fprintf_unfiltered (gdb_stdlog, " = ");
       for (int i = 0; i < size; i++)
@@ -1295,7 +1313,7 @@ regcache_debug_print_register (const cha
 }
 
 static void
-reg_flush_command (char *command, int from_tty)
+reg_flush_command (const char *command, int from_tty)
 {
   /* Force-flush the register cache.  */
   registers_changed ();
@@ -1303,47 +1321,21 @@ reg_flush_command (char *command, int fr
     printf_filtered (_("Register cache flushed.\n"));
 }
 
-enum regcache_dump_what
-{
-  regcache_dump_none, regcache_dump_raw,
-  regcache_dump_cooked, regcache_dump_groups,
-  regcache_dump_remote
-};
-
-static void
-regcache_dump (struct regcache *regcache, struct ui_file *file,
-	       enum regcache_dump_what what_to_dump)
+void
+regcache::dump (ui_file *file, enum regcache_dump_what what_to_dump)
 {
-  struct cleanup *cleanups = make_cleanup (null_cleanup, NULL);
-  struct gdbarch *gdbarch = regcache->descr->gdbarch;
+  struct gdbarch *gdbarch = m_descr->gdbarch;
   int regnum;
   int footnote_nr = 0;
-  int footnote_register_size = 0;
   int footnote_register_offset = 0;
   int footnote_register_type_name_null = 0;
   long register_offset = 0;
-  gdb_byte buf[MAX_REGISTER_SIZE];
-
-#if 0
-  fprintf_unfiltered (file, "nr_raw_registers %d\n",
-		      regcache->descr->nr_raw_registers);
-  fprintf_unfiltered (file, "nr_cooked_registers %d\n",
-		      regcache->descr->nr_cooked_registers);
-  fprintf_unfiltered (file, "sizeof_raw_registers %ld\n",
-		      regcache->descr->sizeof_raw_registers);
-  fprintf_unfiltered (file, "sizeof_raw_register_status %ld\n",
-		      regcache->descr->sizeof_raw_register_status);
-  fprintf_unfiltered (file, "gdbarch_num_regs %d\n", 
-		      gdbarch_num_regs (gdbarch));
-  fprintf_unfiltered (file, "gdbarch_num_pseudo_regs %d\n",
-		      gdbarch_num_pseudo_regs (gdbarch));
-#endif
 
-  gdb_assert (regcache->descr->nr_cooked_registers
+  gdb_assert (m_descr->nr_cooked_registers
 	      == (gdbarch_num_regs (gdbarch)
 		  + gdbarch_num_pseudo_regs (gdbarch)));
 
-  for (regnum = -1; regnum < regcache->descr->nr_cooked_registers; regnum++)
+  for (regnum = -1; regnum < m_descr->nr_cooked_registers; regnum++)
     {
       /* Name.  */
       if (regnum < 0)
@@ -1380,12 +1372,12 @@ regcache_dump (struct regcache *regcache
       else
 	{
 	  fprintf_unfiltered (file, " %6ld",
-			      regcache->descr->register_offset[regnum]);
-	  if (register_offset != regcache->descr->register_offset[regnum]
+			      m_descr->register_offset[regnum]);
+	  if (register_offset != m_descr->register_offset[regnum]
 	      || (regnum > 0
-		  && (regcache->descr->register_offset[regnum]
-		      != (regcache->descr->register_offset[regnum - 1]
-			  + regcache->descr->sizeof_register[regnum - 1])))
+		  && (m_descr->register_offset[regnum]
+		      != (m_descr->register_offset[regnum - 1]
+			  + m_descr->sizeof_register[regnum - 1])))
 	      )
 	    {
 	      if (!footnote_register_offset)
@@ -1394,20 +1386,20 @@ regcache_dump (struct regcache *regcache
 	    }
 	  else
 	    fprintf_unfiltered (file, "  ");
-	  register_offset = (regcache->descr->register_offset[regnum]
-			     + regcache->descr->sizeof_register[regnum]);
+	  register_offset = (m_descr->register_offset[regnum]
+			     + m_descr->sizeof_register[regnum]);
 	}
 
       /* Size.  */
       if (regnum < 0)
 	fprintf_unfiltered (file, " %5s ", "Size");
       else
-	fprintf_unfiltered (file, " %5ld",
-			    regcache->descr->sizeof_register[regnum]);
+	fprintf_unfiltered (file, " %5ld", m_descr->sizeof_register[regnum]);
 
       /* Type.  */
       {
 	const char *t;
+	std::string name_holder;
 
 	if (regnum < 0)
 	  t = "Type";
@@ -1415,16 +1407,14 @@ regcache_dump (struct regcache *regcache
 	  {
 	    static const char blt[] = "builtin_type";
 
-	    t = TYPE_NAME (register_type (regcache->descr->gdbarch, regnum));
+	    t = TYPE_NAME (register_type (arch (), regnum));
 	    if (t == NULL)
 	      {
-		char *n;
-
 		if (!footnote_register_type_name_null)
 		  footnote_register_type_name_null = ++footnote_nr;
-		n = xstrprintf ("*%d", footnote_register_type_name_null);
-		make_cleanup (xfree, n);
-		t = n;
+		name_holder = string_printf ("*%d",
+					     footnote_register_type_name_null);
+		t = name_holder.c_str ();
 	      }
 	    /* Chop a leading builtin_type.  */
 	    if (startswith (t, blt))
@@ -1441,18 +1431,18 @@ regcache_dump (struct regcache *regcache
 	{
 	  if (regnum < 0)
 	    fprintf_unfiltered (file, "Raw value");
-	  else if (regnum >= regcache->descr->nr_raw_registers)
+	  else if (regnum >= num_raw_registers ())
 	    fprintf_unfiltered (file, "<cooked>");
-	  else if (regcache_register_status (regcache, regnum) == REG_UNKNOWN)
+	  else if (get_register_status (regnum) == REG_UNKNOWN)
 	    fprintf_unfiltered (file, "<invalid>");
-	  else if (regcache_register_status (regcache, regnum) == REG_UNAVAILABLE)
+	  else if (get_register_status (regnum) == REG_UNAVAILABLE)
 	    fprintf_unfiltered (file, "<unavailable>");
 	  else
 	    {
-	      regcache_raw_read (regcache, regnum, buf);
-	      print_hex_chars (file, buf,
-			       regcache->descr->sizeof_register[regnum],
-			       gdbarch_byte_order (gdbarch));
+	      raw_update (regnum);
+	      print_hex_chars (file, register_buffer (regnum),
+			       m_descr->sizeof_register[regnum],
+			       gdbarch_byte_order (gdbarch), true);
 	    }
 	}
 
@@ -1463,17 +1453,44 @@ regcache_dump (struct regcache *regcache
 	    fprintf_unfiltered (file, "Cooked value");
 	  else
 	    {
+	      const gdb_byte *buf = NULL;
 	      enum register_status status;
+	      struct value *value = NULL;
+
+	      if (regnum < num_raw_registers ())
+		{
+		  raw_update (regnum);
+		  status = get_register_status (regnum);
+		  buf = register_buffer (regnum);
+		}
+	      else
+		{
+		  value = cooked_read_value (regnum);
+
+		  if (!value_optimized_out (value)
+		      && value_entirely_available (value))
+		    {
+		      status = REG_VALID;
+		      buf = value_contents_all (value);
+		    }
+		  else
+		    status = REG_UNAVAILABLE;
+		}
 
-	      status = regcache_cooked_read (regcache, regnum, buf);
 	      if (status == REG_UNKNOWN)
 		fprintf_unfiltered (file, "<invalid>");
 	      else if (status == REG_UNAVAILABLE)
 		fprintf_unfiltered (file, "<unavailable>");
 	      else
 		print_hex_chars (file, buf,
-				 regcache->descr->sizeof_register[regnum],
-				 gdbarch_byte_order (gdbarch));
+				 m_descr->sizeof_register[regnum],
+				 gdbarch_byte_order (gdbarch), true);
+
+	      if (value != NULL)
+		{
+		  release_value (value);
+		  value_free (value);
+		}
 	    }
 	}
 
@@ -1508,11 +1525,11 @@ regcache_dump (struct regcache *regcache
 	    {
 	      fprintf_unfiltered (file, "Rmt Nr  g/G Offset");
 	    }
-	  else if (regnum < regcache->descr->nr_raw_registers)
+	  else if (regnum < num_raw_registers ())
 	    {
 	      int pnum, poffset;
 
-	      if (remote_register_number_and_offset (get_regcache_arch (regcache), regnum,
+	      if (remote_register_number_and_offset (arch (), regnum,
 						     &pnum, &poffset))
 		fprintf_unfiltered (file, "%7d %11d", pnum, poffset);
 	    }
@@ -1521,9 +1538,6 @@ regcache_dump (struct regcache *regcache
       fprintf_unfiltered (file, "\n");
     }
 
-  if (footnote_register_size)
-    fprintf_unfiltered (file, "*%d: Inconsistent register sizes.\n",
-			footnote_register_size);
   if (footnote_register_offset)
     fprintf_unfiltered (file, "*%d: Inconsistent register offsets.\n",
 			footnote_register_offset);
@@ -1531,55 +1545,402 @@ regcache_dump (struct regcache *regcache
     fprintf_unfiltered (file, 
 			"*%d: Register type's name NULL.\n",
 			footnote_register_type_name_null);
-  do_cleanups (cleanups);
 }
 
 static void
-regcache_print (char *args, enum regcache_dump_what what_to_dump)
+regcache_print (const char *args, enum regcache_dump_what what_to_dump)
 {
+  /* Where to send output.  */
+  stdio_file file;
+  ui_file *out;
+
   if (args == NULL)
-    regcache_dump (get_current_regcache (), gdb_stdout, what_to_dump);
+    out = gdb_stdout;
   else
     {
-      stdio_file file;
-
       if (!file.open (args, "w"))
 	perror_with_name (_("maintenance print architecture"));
-      regcache_dump (get_current_regcache (), &file, what_to_dump);
+      out = &file;
+    }
+
+  if (target_has_registers)
+    get_current_regcache ()->dump (out, what_to_dump);
+  else
+    {
+      /* For the benefit of "maint print registers" & co when
+	 debugging an executable, allow dumping a regcache even when
+	 there is no thread selected / no registers.  */
+      regcache dummy_regs (target_gdbarch ());
+      dummy_regs.dump (out, what_to_dump);
     }
 }
 
 static void
-maintenance_print_registers (char *args, int from_tty)
+maintenance_print_registers (const char *args, int from_tty)
 {
   regcache_print (args, regcache_dump_none);
 }
 
 static void
-maintenance_print_raw_registers (char *args, int from_tty)
+maintenance_print_raw_registers (const char *args, int from_tty)
 {
   regcache_print (args, regcache_dump_raw);
 }
 
 static void
-maintenance_print_cooked_registers (char *args, int from_tty)
+maintenance_print_cooked_registers (const char *args, int from_tty)
 {
   regcache_print (args, regcache_dump_cooked);
 }
 
 static void
-maintenance_print_register_groups (char *args, int from_tty)
+maintenance_print_register_groups (const char *args, int from_tty)
 {
   regcache_print (args, regcache_dump_groups);
 }
 
 static void
-maintenance_print_remote_registers (char *args, int from_tty)
+maintenance_print_remote_registers (const char *args, int from_tty)
 {
   regcache_print (args, regcache_dump_remote);
 }
 
-extern initialize_file_ftype _initialize_regcache; /* -Wmissing-prototype */
+#if GDB_SELF_TEST
+#include "selftest.h"
+#include "selftest-arch.h"
+#include "gdbthread.h"
+
+namespace selftests {
+
+class regcache_access : public regcache
+{
+public:
+
+  /* Return the number of elements in current_regcache.  */
+
+  static size_t
+  current_regcache_size ()
+  {
+    return std::distance (regcache::current_regcache.begin (),
+			  regcache::current_regcache.end ());
+  }
+};
+
+static void
+current_regcache_test (void)
+{
+  /* It is empty at the start.  */
+  SELF_CHECK (regcache_access::current_regcache_size () == 0);
+
+  ptid_t ptid1 (1), ptid2 (2), ptid3 (3);
+
+  /* Get regcache from ptid1, a new regcache is added to
+     current_regcache.  */
+  regcache *regcache = get_thread_arch_aspace_regcache (ptid1,
+							target_gdbarch (),
+							NULL);
+
+  SELF_CHECK (regcache != NULL);
+  SELF_CHECK (regcache->ptid () == ptid1);
+  SELF_CHECK (regcache_access::current_regcache_size () == 1);
+
+  /* Get regcache from ptid2, a new regcache is added to
+     current_regcache.  */
+  regcache = get_thread_arch_aspace_regcache (ptid2,
+					      target_gdbarch (),
+					      NULL);
+  SELF_CHECK (regcache != NULL);
+  SELF_CHECK (regcache->ptid () == ptid2);
+  SELF_CHECK (regcache_access::current_regcache_size () == 2);
+
+  /* Get regcache from ptid3, a new regcache is added to
+     current_regcache.  */
+  regcache = get_thread_arch_aspace_regcache (ptid3,
+					      target_gdbarch (),
+					      NULL);
+  SELF_CHECK (regcache != NULL);
+  SELF_CHECK (regcache->ptid () == ptid3);
+  SELF_CHECK (regcache_access::current_regcache_size () == 3);
+
+  /* Get regcache from ptid2 again, nothing is added to
+     current_regcache.  */
+  regcache = get_thread_arch_aspace_regcache (ptid2,
+					      target_gdbarch (),
+					      NULL);
+  SELF_CHECK (regcache != NULL);
+  SELF_CHECK (regcache->ptid () == ptid2);
+  SELF_CHECK (regcache_access::current_regcache_size () == 3);
+
+  /* Mark ptid2 is changed, so regcache of ptid2 should be removed from
+     current_regcache.  */
+  registers_changed_ptid (ptid2);
+  SELF_CHECK (regcache_access::current_regcache_size () == 2);
+}
+
+static void test_target_fetch_registers (target_ops *self, regcache *regs,
+					 int regno);
+static void test_target_store_registers (target_ops *self, regcache *regs,
+					 int regno);
+static enum target_xfer_status
+  test_target_xfer_partial (struct target_ops *ops,
+			    enum target_object object,
+			    const char *annex, gdb_byte *readbuf,
+			    const gdb_byte *writebuf,
+			    ULONGEST offset, ULONGEST len,
+			    ULONGEST *xfered_len);
+
+class target_ops_no_register : public test_target_ops
+{
+public:
+  target_ops_no_register ()
+    : test_target_ops {}
+  {
+    to_fetch_registers = test_target_fetch_registers;
+    to_store_registers = test_target_store_registers;
+    to_xfer_partial = test_target_xfer_partial;
+
+    to_data = this;
+  }
+
+  void reset ()
+  {
+    fetch_registers_called = 0;
+    store_registers_called = 0;
+    xfer_partial_called = 0;
+  }
+
+  unsigned int fetch_registers_called = 0;
+  unsigned int store_registers_called = 0;
+  unsigned int xfer_partial_called = 0;
+};
+
+static void
+test_target_fetch_registers (target_ops *self, regcache *regs, int regno)
+{
+  auto ops = static_cast<target_ops_no_register *> (self->to_data);
+
+  /* Mark register available.  */
+  regs->raw_supply_zeroed (regno);
+  ops->fetch_registers_called++;
+}
+
+static void
+test_target_store_registers (target_ops *self, regcache *regs, int regno)
+{
+  auto ops = static_cast<target_ops_no_register *> (self->to_data);
+
+  ops->store_registers_called++;
+}
+
+static enum target_xfer_status
+test_target_xfer_partial (struct target_ops *self, enum target_object object,
+			  const char *annex, gdb_byte *readbuf,
+			  const gdb_byte *writebuf,
+			  ULONGEST offset, ULONGEST len, ULONGEST *xfered_len)
+{
+  auto ops = static_cast<target_ops_no_register *> (self->to_data);
+
+  ops->xfer_partial_called++;
+
+  *xfered_len = len;
+  return TARGET_XFER_OK;
+}
+
+class readwrite_regcache : public regcache
+{
+public:
+  readwrite_regcache (struct gdbarch *gdbarch)
+    : regcache (gdbarch, nullptr, false)
+  {}
+};
+
+/* Test regcache::cooked_read gets registers from raw registers and
+   memory instead of target to_{fetch,store}_registers.  */
+
+static void
+cooked_read_test (struct gdbarch *gdbarch)
+{
+  /* Error out if debugging something, because we're going to push the
+     test target, which would pop any existing target.  */
+  if (current_target.to_stratum >= process_stratum)
+    error (_("target already pushed"));
+
+  /* Create a mock environment.  An inferior with a thread, with a
+     process_stratum target pushed.  */
+
+  target_ops_no_register mock_target;
+  ptid_t mock_ptid (1, 1);
+  inferior mock_inferior (mock_ptid.pid ());
+  address_space mock_aspace {};
+  mock_inferior.gdbarch = gdbarch;
+  mock_inferior.aspace = &mock_aspace;
+  thread_info mock_thread (&mock_inferior, mock_ptid);
+
+  scoped_restore restore_thread_list
+    = make_scoped_restore (&thread_list, &mock_thread);
+
+  /* Add the mock inferior to the inferior list so that look ups by
+     target+ptid can find it.  */
+  scoped_restore restore_inferior_list
+    = make_scoped_restore (&inferior_list);
+  inferior_list = &mock_inferior;
+
+  /* Switch to the mock inferior.  */
+  scoped_restore_current_inferior restore_current_inferior;
+  set_current_inferior (&mock_inferior);
+
+  /* Push the process_stratum target so we can mock accessing
+     registers.  */
+  push_target (&mock_target);
+
+  /* Pop it again on exit (return/exception).  */
+  struct on_exit
+  {
+    ~on_exit ()
+    {
+      pop_all_targets_at_and_above (process_stratum);
+    }
+  } pop_targets;
+
+  /* Switch to the mock thread.  */
+  scoped_restore restore_inferior_ptid
+    = make_scoped_restore (&inferior_ptid, mock_ptid);
+
+  /* Test that read one raw register from regcache_no_target will go
+     to the target layer.  */
+  int regnum;
+
+  /* Find a raw register which size isn't zero.  */
+  for (regnum = 0; regnum < gdbarch_num_regs (gdbarch); regnum++)
+    {
+      if (register_size (gdbarch, regnum) != 0)
+	break;
+    }
+
+  readwrite_regcache readwrite (gdbarch);
+  gdb::def_vector<gdb_byte> buf (register_size (gdbarch, regnum));
+
+  readwrite.raw_read (regnum, buf.data ());
+
+  /* raw_read calls target_fetch_registers.  */
+  SELF_CHECK (mock_target.fetch_registers_called > 0);
+  mock_target.reset ();
+
+  /* Mark all raw registers valid, so the following raw registers
+     accesses won't go to target.  */
+  for (auto i = 0; i < gdbarch_num_regs (gdbarch); i++)
+    readwrite.raw_update (i);
+
+  mock_target.reset ();
+  /* Then, read all raw and pseudo registers, and don't expect calling
+     to_{fetch,store}_registers.  */
+  for (int regnum = 0;
+       regnum < gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch);
+       regnum++)
+    {
+      if (register_size (gdbarch, regnum) == 0)
+	continue;
+
+      gdb::def_vector<gdb_byte> buf (register_size (gdbarch, regnum));
+
+      SELF_CHECK (REG_VALID == readwrite.cooked_read (regnum, buf.data ()));
+
+      if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_mt)
+	{
+	  /* MT pseudo registers are banked, and different banks are
+	     selected by a raw registers, so GDB needs to write to
+	     that raw register to get different banked pseudo registers.
+	     See mt_select_coprocessor.  */
+	  SELF_CHECK (mock_target.fetch_registers_called == 0);
+	  SELF_CHECK (mock_target.store_registers_called == 0);
+	}
+
+      /* Some SPU pseudo registers are got via TARGET_OBJECT_SPU.  */
+      if (gdbarch_bfd_arch_info (gdbarch)->arch != bfd_arch_spu)
+	SELF_CHECK (mock_target.xfer_partial_called == 0);
+
+      mock_target.reset ();
+    }
+
+  regcache readonly (regcache::readonly, readwrite);
+
+  /* GDB may go to target layer to fetch all registers and memory for
+     readonly regcache.  */
+  mock_target.reset ();
+
+  for (int regnum = 0;
+       regnum < gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch);
+       regnum++)
+    {
+      if (gdbarch_bfd_arch_info (gdbarch)->arch == bfd_arch_mt)
+	{
+	  /* Trigger an internal error otherwise.  */
+	  continue;
+	}
+
+      if (register_size (gdbarch, regnum) == 0)
+	continue;
+
+      gdb::def_vector<gdb_byte> buf (register_size (gdbarch, regnum));
+      enum register_status status = readonly.cooked_read (regnum,
+							  buf.data ());
+
+      if (regnum < gdbarch_num_regs (gdbarch))
+	{
+	  auto bfd_arch = gdbarch_bfd_arch_info (gdbarch)->arch;
+
+	  if (bfd_arch == bfd_arch_frv || bfd_arch == bfd_arch_h8300
+	      || bfd_arch == bfd_arch_m32c || bfd_arch == bfd_arch_sh
+	      || bfd_arch == bfd_arch_alpha || bfd_arch == bfd_arch_v850
+	      || bfd_arch == bfd_arch_msp430 || bfd_arch == bfd_arch_mep
+	      || bfd_arch == bfd_arch_mips || bfd_arch == bfd_arch_v850_rh850
+	      || bfd_arch == bfd_arch_tic6x || bfd_arch == bfd_arch_mn10300
+	      || bfd_arch == bfd_arch_rl78 || bfd_arch == bfd_arch_score)
+	    {
+	      /* Raw registers.  If raw registers are not in save_reggroup,
+		 their status are unknown.  */
+	      if (gdbarch_register_reggroup_p (gdbarch, regnum, save_reggroup))
+		SELF_CHECK (status == REG_VALID);
+	      else
+		SELF_CHECK (status == REG_UNKNOWN);
+	    }
+	  else
+	    SELF_CHECK (status == REG_VALID);
+	}
+      else
+	{
+	  if (gdbarch_register_reggroup_p (gdbarch, regnum, save_reggroup))
+	    SELF_CHECK (status == REG_VALID);
+	  else
+	    {
+	      /* If pseudo registers are not in save_reggroup, some of
+		 them can be computed from saved raw registers, but some
+		 of them are unknown.  */
+	      auto bfd_arch = gdbarch_bfd_arch_info (gdbarch)->arch;
+
+	      if (bfd_arch == bfd_arch_frv
+		  || bfd_arch == bfd_arch_m32c
+		  || bfd_arch == bfd_arch_mep
+		  || bfd_arch == bfd_arch_sh)
+		SELF_CHECK (status == REG_VALID || status == REG_UNKNOWN);
+	      else if (bfd_arch == bfd_arch_mips
+		       || bfd_arch == bfd_arch_h8300)
+		SELF_CHECK (status == REG_UNKNOWN);
+	      else
+		SELF_CHECK (status == REG_VALID);
+	    }
+	}
+
+      SELF_CHECK (mock_target.fetch_registers_called == 0);
+      SELF_CHECK (mock_target.store_registers_called == 0);
+      SELF_CHECK (mock_target.xfer_partial_called == 0);
+
+      mock_target.reset ();
+    }
+}
+
+} // namespace selftests
+#endif /* GDB_SELF_TEST */
 
 void
 _initialize_regcache (void)
@@ -1588,7 +1949,7 @@ _initialize_regcache (void)
     = gdbarch_data_register_post_init (init_regcache_descr);
 
   observer_attach_target_changed (regcache_observer_target_changed);
-  observer_attach_thread_ptid_changed (regcache_thread_ptid_changed);
+  observer_attach_thread_ptid_changed (regcache::regcache_thread_ptid_changed);
 
   add_com ("flushregs", class_maintenance, reg_flush_command,
 	   _("Force gdb to flush its register cache (maintainer command)"));
@@ -1619,4 +1980,10 @@ remote register number and buffer offset
 Takes an optional file parameter."),
 	   &maintenanceprintlist);
 
+#if GDB_SELF_TEST
+  selftests::register_test ("current_regcache", selftests::current_regcache_test);
+
+  selftests::register_test_foreach_arch ("regcache::cooked_read_test",
+					 selftests::cooked_read_test);
+#endif
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regcache.h ./gdb/regcache.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regcache.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regcache.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Cache and manage the values of registers for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -21,6 +21,7 @@
 #define REGCACHE_H
 
 #include "common-regcache.h"
+#include <forward_list>
 
 struct regcache;
 struct regset;
@@ -34,23 +35,10 @@ extern struct regcache *get_thread_arch_
 							 struct gdbarch *,
 							 struct address_space *);
 
-void regcache_xfree (struct regcache *regcache);
-struct cleanup *make_cleanup_regcache_xfree (struct regcache *regcache);
-struct regcache *regcache_xmalloc (struct gdbarch *gdbarch,
-				   struct address_space *aspace);
-
 /* Return REGCACHE's ptid.  */
 
 extern ptid_t regcache_get_ptid (const struct regcache *regcache);
 
-/* Return REGCACHE's architecture.  */
-
-extern struct gdbarch *get_regcache_arch (const struct regcache *regcache);
-
-/* Return REGCACHE's address space.  */
-
-extern struct address_space *get_regcache_aspace (const struct regcache *);
-
 enum register_status regcache_register_status (const struct regcache *regcache,
 					       int regnum);
 
@@ -83,7 +71,7 @@ extern LONGEST regcache_raw_get_signed (
 /* Set a raw register's value in the regcache's buffer.  Unlike
    regcache_raw_write, this is not write-through.  The intention is
    allowing to change the buffer contents of a read-only regcache
-   allocated with regcache_xmalloc.  */
+   allocated with new.  */
 
 extern void regcache_raw_set_cached_value
   (struct regcache *regcache, int regnum, const gdb_byte *buf);
@@ -224,22 +212,197 @@ extern void regcache_save (struct regcac
 			   regcache_cooked_read_ftype *cooked_read,
 			   void *cooked_read_context);
 
-/* Copy/duplicate the contents of a register cache.  By default, the
-   operation is pass-through.  Writes to DST and reads from SRC will
-   go through to the target.  See also regcache_cpy_no_passthrough.
+enum regcache_dump_what
+{
+  regcache_dump_none, regcache_dump_raw,
+  regcache_dump_cooked, regcache_dump_groups,
+  regcache_dump_remote
+};
+
+/* A (register_number, register_value) pair.  */
+
+typedef struct cached_reg
+{
+  int num;
+  gdb_byte *data;
+} cached_reg_t;
+
+/* The register cache for storing raw register values.  */
+
+class regcache
+{
+public:
+  regcache (gdbarch *gdbarch)
+    : regcache (gdbarch, nullptr, true)
+  {}
+
+  struct readonly_t {};
+  static constexpr readonly_t readonly {};
+
+  /* Create a readonly regcache from a non-readonly regcache.  */
+  regcache (readonly_t, const regcache &src);
+
+  DISABLE_COPY_AND_ASSIGN (regcache);
+
+  ~regcache ()
+  {
+    xfree (m_registers);
+    xfree (m_register_status);
+  }
+
+  /* Return regcache's architecture.  */
+  gdbarch *arch () const;
+
+  /* Return REGCACHE's address space.  */
+  const address_space *aspace () const
+  {
+    return m_aspace;
+  }
+
+  void save (regcache_cooked_read_ftype *cooked_read, void *src);
+
+  enum register_status cooked_read (int regnum, gdb_byte *buf);
+  void cooked_write (int regnum, const gdb_byte *buf);
+
+  enum register_status raw_read (int regnum, gdb_byte *buf);
+
+  void raw_write (int regnum, const gdb_byte *buf);
+
+  template<typename T, typename = RequireLongest<T>>
+  enum register_status raw_read (int regnum, T *val);
+
+  template<typename T, typename = RequireLongest<T>>
+  void raw_write (int regnum, T val);
+
+  struct value *cooked_read_value (int regnum);
+
+  template<typename T, typename = RequireLongest<T>>
+  enum register_status cooked_read (int regnum, T *val);
+
+  template<typename T, typename = RequireLongest<T>>
+  void cooked_write (int regnum, T val);
+
+  void raw_update (int regnum);
 
-   regcache_cpy can not have overlapping SRC and DST buffers.  */
+  void raw_collect (int regnum, void *buf) const;
 
+  void raw_collect_integer (int regnum, gdb_byte *addr, int addr_len,
+			    bool is_signed) const;
+
+  void raw_supply (int regnum, const void *buf);
+
+  void raw_supply_integer (int regnum, const gdb_byte *addr, int addr_len,
+			   bool is_signed);
+
+  void raw_supply_zeroed (int regnum);
+
+  enum register_status get_register_status (int regnum) const;
+
+  void raw_set_cached_value (int regnum, const gdb_byte *buf);
+
+  void invalidate (int regnum);
+
+  enum register_status raw_read_part (int regnum, int offset, int len,
+				      gdb_byte *buf);
+
+  void raw_write_part (int regnum, int offset, int len, const gdb_byte *buf);
+
+  enum register_status cooked_read_part (int regnum, int offset, int len,
+					 gdb_byte *buf);
+
+  void cooked_write_part (int regnum, int offset, int len,
+			  const gdb_byte *buf);
+
+  void supply_regset (const struct regset *regset,
+		      int regnum, const void *buf, size_t size);
+
+
+  void collect_regset (const struct regset *regset, int regnum,
+		       void *buf, size_t size) const;
+
+  void dump (ui_file *file, enum regcache_dump_what what_to_dump);
+
+  ptid_t ptid () const
+  {
+    return m_ptid;
+  }
+
+  void set_ptid (const ptid_t ptid)
+  {
+    this->m_ptid = ptid;
+  }
+
+/* Dump the contents of a register from the register cache to the target
+   debug.  */
+  void debug_print_register (const char *func, int regno);
+
+  static void regcache_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid);
+protected:
+  regcache (gdbarch *gdbarch, const address_space *aspace_, bool readonly_p_);
+
+  int num_raw_registers () const;
+
+  static std::forward_list<regcache *> current_regcache;
+
+private:
+  gdb_byte *register_buffer (int regnum) const;
+
+  void restore (struct regcache *src);
+
+  enum register_status xfer_part (int regnum, int offset, int len, void *in,
+				  const void *out, bool is_raw);
+
+  void transfer_regset (const struct regset *regset,
+			struct regcache *out_regcache,
+			int regnum, const void *in_buf,
+			void *out_buf, size_t size) const;
+
+  /* Assert on the range of REGNUM.  */
+  void assert_regnum (int regnum) const;
+
+  struct regcache_descr *m_descr;
+
+  /* The address space of this register cache (for registers where it
+     makes sense, like PC or SP).  */
+  const address_space * const m_aspace;
+
+  /* The register buffers.  A read-only register cache can hold the
+     full [0 .. gdbarch_num_regs + gdbarch_num_pseudo_regs) while a read/write
+     register cache can only hold [0 .. gdbarch_num_regs).  */
+  gdb_byte *m_registers;
+  /* Register cache status.  */
+  signed char *m_register_status;
+  /* Is this a read-only cache?  A read-only cache is used for saving
+     the target's register state (e.g, across an inferior function
+     call or just before forcing a function return).  A read-only
+     cache can only be updated via the methods regcache_dup() and
+     regcache_cpy().  The actual contents are determined by the
+     reggroup_save and reggroup_restore methods.  */
+  const bool m_readonly_p;
+  /* If this is a read-write cache, which thread's registers is
+     it connected to?  */
+  ptid_t m_ptid;
+
+  friend struct regcache *
+  get_thread_arch_aspace_regcache (ptid_t ptid, struct gdbarch *gdbarch,
+				   struct address_space *aspace);
+
+  friend void
+  registers_changed_ptid (ptid_t ptid);
+
+  friend void
+  regcache_cpy (struct regcache *dst, struct regcache *src);
+};
+
+/* Duplicate the contents of a register cache to a read-only register
+   cache.  The operation is pass-through.  */
 extern struct regcache *regcache_dup (struct regcache *regcache);
+
+/* Writes to DEST will go through to the target.  SRC is a read-only
+   register cache.  */
 extern void regcache_cpy (struct regcache *dest, struct regcache *src);
 
 extern void registers_changed (void);
 extern void registers_changed_ptid (ptid_t);
 
-/* Dump the contents of a register from the register cache to the target
-   debug.  */
-extern void regcache_debug_print_register (const char *func,
-					   struct regcache *regcache,
-					   int regno);
-
 #endif /* REGCACHE_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/amd64-avx-avx512.dat ./gdb/regformats/i386/amd64-avx-avx512.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/amd64-avx-avx512.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/i386/amd64-avx-avx512.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,150 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/amd64-avx-avx512.xml
-name:amd64_avx_avx512
-xmltarget:amd64-avx-avx512.xml
-expedite:rbp,rsp,rip
-64:rax
-64:rbx
-64:rcx
-64:rdx
-64:rsi
-64:rdi
-64:rbp
-64:rsp
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:rip
-32:eflags
-32:cs
-32:ss
-32:ds
-32:es
-32:fs
-32:gs
-80:st0
-80:st1
-80:st2
-80:st3
-80:st4
-80:st5
-80:st6
-80:st7
-32:fctrl
-32:fstat
-32:ftag
-32:fiseg
-32:fioff
-32:foseg
-32:fooff
-32:fop
-128:xmm0
-128:xmm1
-128:xmm2
-128:xmm3
-128:xmm4
-128:xmm5
-128:xmm6
-128:xmm7
-128:xmm8
-128:xmm9
-128:xmm10
-128:xmm11
-128:xmm12
-128:xmm13
-128:xmm14
-128:xmm15
-32:mxcsr
-128:ymm0h
-128:ymm1h
-128:ymm2h
-128:ymm3h
-128:ymm4h
-128:ymm5h
-128:ymm6h
-128:ymm7h
-128:ymm8h
-128:ymm9h
-128:ymm10h
-128:ymm11h
-128:ymm12h
-128:ymm13h
-128:ymm14h
-128:ymm15h
-128:xmm16
-128:xmm17
-128:xmm18
-128:xmm19
-128:xmm20
-128:xmm21
-128:xmm22
-128:xmm23
-128:xmm24
-128:xmm25
-128:xmm26
-128:xmm27
-128:xmm28
-128:xmm29
-128:xmm30
-128:xmm31
-128:ymm16h
-128:ymm17h
-128:ymm18h
-128:ymm19h
-128:ymm20h
-128:ymm21h
-128:ymm22h
-128:ymm23h
-128:ymm24h
-128:ymm25h
-128:ymm26h
-128:ymm27h
-128:ymm28h
-128:ymm29h
-128:ymm30h
-128:ymm31h
-64:k0
-64:k1
-64:k2
-64:k3
-64:k4
-64:k5
-64:k6
-64:k7
-256:zmm0h
-256:zmm1h
-256:zmm2h
-256:zmm3h
-256:zmm4h
-256:zmm5h
-256:zmm6h
-256:zmm7h
-256:zmm8h
-256:zmm9h
-256:zmm10h
-256:zmm11h
-256:zmm12h
-256:zmm13h
-256:zmm14h
-256:zmm15h
-256:zmm16h
-256:zmm17h
-256:zmm18h
-256:zmm19h
-256:zmm20h
-256:zmm21h
-256:zmm22h
-256:zmm23h
-256:zmm24h
-256:zmm25h
-256:zmm26h
-256:zmm27h
-256:zmm28h
-256:zmm29h
-256:zmm30h
-256:zmm31h
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/amd64-avx.dat ./gdb/regformats/i386/amd64-avx.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/amd64-avx.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/i386/amd64-avx.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,78 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/amd64-avx.xml
-name:amd64_avx
-xmltarget:amd64-avx.xml
-expedite:rbp,rsp,rip
-64:rax
-64:rbx
-64:rcx
-64:rdx
-64:rsi
-64:rdi
-64:rbp
-64:rsp
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:rip
-32:eflags
-32:cs
-32:ss
-32:ds
-32:es
-32:fs
-32:gs
-80:st0
-80:st1
-80:st2
-80:st3
-80:st4
-80:st5
-80:st6
-80:st7
-32:fctrl
-32:fstat
-32:ftag
-32:fiseg
-32:fioff
-32:foseg
-32:fooff
-32:fop
-128:xmm0
-128:xmm1
-128:xmm2
-128:xmm3
-128:xmm4
-128:xmm5
-128:xmm6
-128:xmm7
-128:xmm8
-128:xmm9
-128:xmm10
-128:xmm11
-128:xmm12
-128:xmm13
-128:xmm14
-128:xmm15
-32:mxcsr
-128:ymm0h
-128:ymm1h
-128:ymm2h
-128:ymm3h
-128:ymm4h
-128:ymm5h
-128:ymm6h
-128:ymm7h
-128:ymm8h
-128:ymm9h
-128:ymm10h
-128:ymm11h
-128:ymm12h
-128:ymm13h
-128:ymm14h
-128:ymm15h
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/amd64-avx-mpx-avx512-pku.dat ./gdb/regformats/i386/amd64-avx-mpx-avx512-pku.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/amd64-avx-mpx-avx512-pku.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/i386/amd64-avx-mpx-avx512-pku.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,157 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/amd64-avx-mpx-avx512-pku.xml
-name:amd64_avx_mpx_avx512_pku
-xmltarget:amd64-avx-mpx-avx512-pku.xml
-expedite:rbp,rsp,rip
-64:rax
-64:rbx
-64:rcx
-64:rdx
-64:rsi
-64:rdi
-64:rbp
-64:rsp
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:rip
-32:eflags
-32:cs
-32:ss
-32:ds
-32:es
-32:fs
-32:gs
-80:st0
-80:st1
-80:st2
-80:st3
-80:st4
-80:st5
-80:st6
-80:st7
-32:fctrl
-32:fstat
-32:ftag
-32:fiseg
-32:fioff
-32:foseg
-32:fooff
-32:fop
-128:xmm0
-128:xmm1
-128:xmm2
-128:xmm3
-128:xmm4
-128:xmm5
-128:xmm6
-128:xmm7
-128:xmm8
-128:xmm9
-128:xmm10
-128:xmm11
-128:xmm12
-128:xmm13
-128:xmm14
-128:xmm15
-32:mxcsr
-128:ymm0h
-128:ymm1h
-128:ymm2h
-128:ymm3h
-128:ymm4h
-128:ymm5h
-128:ymm6h
-128:ymm7h
-128:ymm8h
-128:ymm9h
-128:ymm10h
-128:ymm11h
-128:ymm12h
-128:ymm13h
-128:ymm14h
-128:ymm15h
-128:bnd0raw
-128:bnd1raw
-128:bnd2raw
-128:bnd3raw
-64:bndcfgu
-64:bndstatus
-128:xmm16
-128:xmm17
-128:xmm18
-128:xmm19
-128:xmm20
-128:xmm21
-128:xmm22
-128:xmm23
-128:xmm24
-128:xmm25
-128:xmm26
-128:xmm27
-128:xmm28
-128:xmm29
-128:xmm30
-128:xmm31
-128:ymm16h
-128:ymm17h
-128:ymm18h
-128:ymm19h
-128:ymm20h
-128:ymm21h
-128:ymm22h
-128:ymm23h
-128:ymm24h
-128:ymm25h
-128:ymm26h
-128:ymm27h
-128:ymm28h
-128:ymm29h
-128:ymm30h
-128:ymm31h
-64:k0
-64:k1
-64:k2
-64:k3
-64:k4
-64:k5
-64:k6
-64:k7
-256:zmm0h
-256:zmm1h
-256:zmm2h
-256:zmm3h
-256:zmm4h
-256:zmm5h
-256:zmm6h
-256:zmm7h
-256:zmm8h
-256:zmm9h
-256:zmm10h
-256:zmm11h
-256:zmm12h
-256:zmm13h
-256:zmm14h
-256:zmm15h
-256:zmm16h
-256:zmm17h
-256:zmm18h
-256:zmm19h
-256:zmm20h
-256:zmm21h
-256:zmm22h
-256:zmm23h
-256:zmm24h
-256:zmm25h
-256:zmm26h
-256:zmm27h
-256:zmm28h
-256:zmm29h
-256:zmm30h
-256:zmm31h
-32:pkru
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/amd64-avx-mpx.dat ./gdb/regformats/i386/amd64-avx-mpx.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/amd64-avx-mpx.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/i386/amd64-avx-mpx.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,84 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/amd64-avx-mpx.xml
-name:amd64_avx_mpx
-xmltarget:amd64-avx-mpx.xml
-expedite:rbp,rsp,rip
-64:rax
-64:rbx
-64:rcx
-64:rdx
-64:rsi
-64:rdi
-64:rbp
-64:rsp
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:rip
-32:eflags
-32:cs
-32:ss
-32:ds
-32:es
-32:fs
-32:gs
-80:st0
-80:st1
-80:st2
-80:st3
-80:st4
-80:st5
-80:st6
-80:st7
-32:fctrl
-32:fstat
-32:ftag
-32:fiseg
-32:fioff
-32:foseg
-32:fooff
-32:fop
-128:xmm0
-128:xmm1
-128:xmm2
-128:xmm3
-128:xmm4
-128:xmm5
-128:xmm6
-128:xmm7
-128:xmm8
-128:xmm9
-128:xmm10
-128:xmm11
-128:xmm12
-128:xmm13
-128:xmm14
-128:xmm15
-32:mxcsr
-128:ymm0h
-128:ymm1h
-128:ymm2h
-128:ymm3h
-128:ymm4h
-128:ymm5h
-128:ymm6h
-128:ymm7h
-128:ymm8h
-128:ymm9h
-128:ymm10h
-128:ymm11h
-128:ymm12h
-128:ymm13h
-128:ymm14h
-128:ymm15h
-128:bnd0raw
-128:bnd1raw
-128:bnd2raw
-128:bnd3raw
-64:bndcfgu
-64:bndstatus
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/amd64.dat ./gdb/regformats/i386/amd64.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/amd64.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/i386/amd64.dat	2018-01-09 02:04:57.000000000 +0000
@@ -60,3 +60,5 @@ expedite:rbp,rsp,rip
 128:xmm14
 128:xmm15
 32:mxcsr
+64:fs_base
+64:gs_base
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/amd64-mpx.dat ./gdb/regformats/i386/amd64-mpx.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/amd64-mpx.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/i386/amd64-mpx.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,68 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/amd64-mpx.xml
-name:amd64_mpx
-xmltarget:amd64-mpx.xml
-expedite:rbp,rsp,rip
-64:rax
-64:rbx
-64:rcx
-64:rdx
-64:rsi
-64:rdi
-64:rbp
-64:rsp
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:rip
-32:eflags
-32:cs
-32:ss
-32:ds
-32:es
-32:fs
-32:gs
-80:st0
-80:st1
-80:st2
-80:st3
-80:st4
-80:st5
-80:st6
-80:st7
-32:fctrl
-32:fstat
-32:ftag
-32:fiseg
-32:fioff
-32:foseg
-32:fooff
-32:fop
-128:xmm0
-128:xmm1
-128:xmm2
-128:xmm3
-128:xmm4
-128:xmm5
-128:xmm6
-128:xmm7
-128:xmm8
-128:xmm9
-128:xmm10
-128:xmm11
-128:xmm12
-128:xmm13
-128:xmm14
-128:xmm15
-32:mxcsr
-128:bnd0raw
-128:bnd1raw
-128:bnd2raw
-128:bnd3raw
-64:bndcfgu
-64:bndstatus
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/i386-avx-avx512.dat ./gdb/regformats/i386/i386-avx-avx512.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/i386-avx-avx512.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/i386/i386-avx-avx512.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,70 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/i386-avx-avx512.xml
-name:i386_avx_avx512
-xmltarget:i386-avx-avx512.xml
-expedite:ebp,esp,eip
-32:eax
-32:ecx
-32:edx
-32:ebx
-32:esp
-32:ebp
-32:esi
-32:edi
-32:eip
-32:eflags
-32:cs
-32:ss
-32:ds
-32:es
-32:fs
-32:gs
-80:st0
-80:st1
-80:st2
-80:st3
-80:st4
-80:st5
-80:st6
-80:st7
-32:fctrl
-32:fstat
-32:ftag
-32:fiseg
-32:fioff
-32:foseg
-32:fooff
-32:fop
-128:xmm0
-128:xmm1
-128:xmm2
-128:xmm3
-128:xmm4
-128:xmm5
-128:xmm6
-128:xmm7
-32:mxcsr
-128:ymm0h
-128:ymm1h
-128:ymm2h
-128:ymm3h
-128:ymm4h
-128:ymm5h
-128:ymm6h
-128:ymm7h
-64:k0
-64:k1
-64:k2
-64:k3
-64:k4
-64:k5
-64:k6
-64:k7
-256:zmm0h
-256:zmm1h
-256:zmm2h
-256:zmm3h
-256:zmm4h
-256:zmm5h
-256:zmm6h
-256:zmm7h
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/i386-avx-mpx-avx512-pku.dat ./gdb/regformats/i386/i386-avx-mpx-avx512-pku.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/i386-avx-mpx-avx512-pku.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/i386/i386-avx-mpx-avx512-pku.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,77 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/i386-avx-mpx-avx512-pku.xml
-name:i386_avx_mpx_avx512_pku
-xmltarget:i386-avx-mpx-avx512-pku.xml
-expedite:ebp,esp,eip
-32:eax
-32:ecx
-32:edx
-32:ebx
-32:esp
-32:ebp
-32:esi
-32:edi
-32:eip
-32:eflags
-32:cs
-32:ss
-32:ds
-32:es
-32:fs
-32:gs
-80:st0
-80:st1
-80:st2
-80:st3
-80:st4
-80:st5
-80:st6
-80:st7
-32:fctrl
-32:fstat
-32:ftag
-32:fiseg
-32:fioff
-32:foseg
-32:fooff
-32:fop
-128:xmm0
-128:xmm1
-128:xmm2
-128:xmm3
-128:xmm4
-128:xmm5
-128:xmm6
-128:xmm7
-32:mxcsr
-128:ymm0h
-128:ymm1h
-128:ymm2h
-128:ymm3h
-128:ymm4h
-128:ymm5h
-128:ymm6h
-128:ymm7h
-128:bnd0raw
-128:bnd1raw
-128:bnd2raw
-128:bnd3raw
-64:bndcfgu
-64:bndstatus
-64:k0
-64:k1
-64:k2
-64:k3
-64:k4
-64:k5
-64:k6
-64:k7
-256:zmm0h
-256:zmm1h
-256:zmm2h
-256:zmm3h
-256:zmm4h
-256:zmm5h
-256:zmm6h
-256:zmm7h
-32:pkru
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/i386-avx-mpx.dat ./gdb/regformats/i386/i386-avx-mpx.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/i386-avx-mpx.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/i386/i386-avx-mpx.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,60 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/i386-avx-mpx.xml
-name:i386_avx_mpx
-xmltarget:i386-avx-mpx.xml
-expedite:ebp,esp,eip
-32:eax
-32:ecx
-32:edx
-32:ebx
-32:esp
-32:ebp
-32:esi
-32:edi
-32:eip
-32:eflags
-32:cs
-32:ss
-32:ds
-32:es
-32:fs
-32:gs
-80:st0
-80:st1
-80:st2
-80:st3
-80:st4
-80:st5
-80:st6
-80:st7
-32:fctrl
-32:fstat
-32:ftag
-32:fiseg
-32:fioff
-32:foseg
-32:fooff
-32:fop
-128:xmm0
-128:xmm1
-128:xmm2
-128:xmm3
-128:xmm4
-128:xmm5
-128:xmm6
-128:xmm7
-32:mxcsr
-128:ymm0h
-128:ymm1h
-128:ymm2h
-128:ymm3h
-128:ymm4h
-128:ymm5h
-128:ymm6h
-128:ymm7h
-128:bnd0raw
-128:bnd1raw
-128:bnd2raw
-128:bnd3raw
-64:bndcfgu
-64:bndstatus
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/i386-mmx.dat ./gdb/regformats/i386/i386-mmx.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/i386-mmx.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/i386/i386-mmx.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,37 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/i386-mmx.xml
-name:i386_mmx
-xmltarget:i386-mmx.xml
-expedite:ebp,esp,eip
-32:eax
-32:ecx
-32:edx
-32:ebx
-32:esp
-32:ebp
-32:esi
-32:edi
-32:eip
-32:eflags
-32:cs
-32:ss
-32:ds
-32:es
-32:fs
-32:gs
-80:st0
-80:st1
-80:st2
-80:st3
-80:st4
-80:st5
-80:st6
-80:st7
-32:fctrl
-32:fstat
-32:ftag
-32:fiseg
-32:fioff
-32:foseg
-32:fooff
-32:fop
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/i386-mpx.dat ./gdb/regformats/i386/i386-mpx.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/i386-mpx.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/i386/i386-mpx.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,52 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/i386-mpx.xml
-name:i386_mpx
-xmltarget:i386-mpx.xml
-expedite:ebp,esp,eip
-32:eax
-32:ecx
-32:edx
-32:ebx
-32:esp
-32:ebp
-32:esi
-32:edi
-32:eip
-32:eflags
-32:cs
-32:ss
-32:ds
-32:es
-32:fs
-32:gs
-80:st0
-80:st1
-80:st2
-80:st3
-80:st4
-80:st5
-80:st6
-80:st7
-32:fctrl
-32:fstat
-32:ftag
-32:fiseg
-32:fioff
-32:foseg
-32:fooff
-32:fop
-128:xmm0
-128:xmm1
-128:xmm2
-128:xmm3
-128:xmm4
-128:xmm5
-128:xmm6
-128:xmm7
-32:mxcsr
-128:bnd0raw
-128:bnd1raw
-128:bnd2raw
-128:bnd3raw
-64:bndcfgu
-64:bndstatus
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/x32-avx-avx512.dat ./gdb/regformats/i386/x32-avx-avx512.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/x32-avx-avx512.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/i386/x32-avx-avx512.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,150 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/x32-avx-avx512.xml
-name:x32_avx_avx512
-xmltarget:x32-avx-avx512.xml
-expedite:rbp,rsp,rip
-64:rax
-64:rbx
-64:rcx
-64:rdx
-64:rsi
-64:rdi
-64:rbp
-64:rsp
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:rip
-32:eflags
-32:cs
-32:ss
-32:ds
-32:es
-32:fs
-32:gs
-80:st0
-80:st1
-80:st2
-80:st3
-80:st4
-80:st5
-80:st6
-80:st7
-32:fctrl
-32:fstat
-32:ftag
-32:fiseg
-32:fioff
-32:foseg
-32:fooff
-32:fop
-128:xmm0
-128:xmm1
-128:xmm2
-128:xmm3
-128:xmm4
-128:xmm5
-128:xmm6
-128:xmm7
-128:xmm8
-128:xmm9
-128:xmm10
-128:xmm11
-128:xmm12
-128:xmm13
-128:xmm14
-128:xmm15
-32:mxcsr
-128:ymm0h
-128:ymm1h
-128:ymm2h
-128:ymm3h
-128:ymm4h
-128:ymm5h
-128:ymm6h
-128:ymm7h
-128:ymm8h
-128:ymm9h
-128:ymm10h
-128:ymm11h
-128:ymm12h
-128:ymm13h
-128:ymm14h
-128:ymm15h
-128:xmm16
-128:xmm17
-128:xmm18
-128:xmm19
-128:xmm20
-128:xmm21
-128:xmm22
-128:xmm23
-128:xmm24
-128:xmm25
-128:xmm26
-128:xmm27
-128:xmm28
-128:xmm29
-128:xmm30
-128:xmm31
-128:ymm16h
-128:ymm17h
-128:ymm18h
-128:ymm19h
-128:ymm20h
-128:ymm21h
-128:ymm22h
-128:ymm23h
-128:ymm24h
-128:ymm25h
-128:ymm26h
-128:ymm27h
-128:ymm28h
-128:ymm29h
-128:ymm30h
-128:ymm31h
-64:k0
-64:k1
-64:k2
-64:k3
-64:k4
-64:k5
-64:k6
-64:k7
-256:zmm0h
-256:zmm1h
-256:zmm2h
-256:zmm3h
-256:zmm4h
-256:zmm5h
-256:zmm6h
-256:zmm7h
-256:zmm8h
-256:zmm9h
-256:zmm10h
-256:zmm11h
-256:zmm12h
-256:zmm13h
-256:zmm14h
-256:zmm15h
-256:zmm16h
-256:zmm17h
-256:zmm18h
-256:zmm19h
-256:zmm20h
-256:zmm21h
-256:zmm22h
-256:zmm23h
-256:zmm24h
-256:zmm25h
-256:zmm26h
-256:zmm27h
-256:zmm28h
-256:zmm29h
-256:zmm30h
-256:zmm31h
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/x32-avx.dat ./gdb/regformats/i386/x32-avx.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/x32-avx.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/i386/x32-avx.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,78 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/x32-avx.xml
-name:x32_avx
-xmltarget:x32-avx.xml
-expedite:rbp,rsp,rip
-64:rax
-64:rbx
-64:rcx
-64:rdx
-64:rsi
-64:rdi
-64:rbp
-64:rsp
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:rip
-32:eflags
-32:cs
-32:ss
-32:ds
-32:es
-32:fs
-32:gs
-80:st0
-80:st1
-80:st2
-80:st3
-80:st4
-80:st5
-80:st6
-80:st7
-32:fctrl
-32:fstat
-32:ftag
-32:fiseg
-32:fioff
-32:foseg
-32:fooff
-32:fop
-128:xmm0
-128:xmm1
-128:xmm2
-128:xmm3
-128:xmm4
-128:xmm5
-128:xmm6
-128:xmm7
-128:xmm8
-128:xmm9
-128:xmm10
-128:xmm11
-128:xmm12
-128:xmm13
-128:xmm14
-128:xmm15
-32:mxcsr
-128:ymm0h
-128:ymm1h
-128:ymm2h
-128:ymm3h
-128:ymm4h
-128:ymm5h
-128:ymm6h
-128:ymm7h
-128:ymm8h
-128:ymm9h
-128:ymm10h
-128:ymm11h
-128:ymm12h
-128:ymm13h
-128:ymm14h
-128:ymm15h
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/x32.dat ./gdb/regformats/i386/x32.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/i386/x32.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/i386/x32.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,62 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/x32.xml
-name:x32
-xmltarget:x32.xml
-expedite:rbp,rsp,rip
-64:rax
-64:rbx
-64:rcx
-64:rdx
-64:rsi
-64:rdi
-64:rbp
-64:rsp
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:rip
-32:eflags
-32:cs
-32:ss
-32:ds
-32:es
-32:fs
-32:gs
-80:st0
-80:st1
-80:st2
-80:st3
-80:st4
-80:st5
-80:st6
-80:st7
-32:fctrl
-32:fstat
-32:ftag
-32:fiseg
-32:fioff
-32:foseg
-32:fooff
-32:fop
-128:xmm0
-128:xmm1
-128:xmm2
-128:xmm3
-128:xmm4
-128:xmm5
-128:xmm6
-128:xmm7
-128:xmm8
-128:xmm9
-128:xmm10
-128:xmm11
-128:xmm12
-128:xmm13
-128:xmm14
-128:xmm15
-32:mxcsr
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/regdat.sh ./gdb/regformats/regdat.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/regdat.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/regdat.sh	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 #!/bin/sh -u
 
 # Register protocol definitions for GDB, the GNU debugger.
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
@@ -123,7 +123,15 @@ while do_read
 do
   if test "${type}" = "name"; then
     name="${entry}"
-    echo "static struct reg regs_${name}[] = {"
+
+    echo "const struct target_desc *tdesc_${name};"
+    echo ""
+    echo "void"
+    echo "init_registers_${name} (void)"
+    echo "{"
+    echo "  static struct target_desc tdesc_${name}_s;"
+    echo "  struct target_desc *result = &tdesc_${name}_s;"
+
     continue
   elif test "${type}" = "xmltarget"; then
     xmltarget="${entry}"
@@ -141,13 +149,14 @@ do
     echo "$0: $1 does not specify \`\`name''." 1>&2
     exit 1
   else
-    echo "  { \"${entry}\", ${offset}, ${type} },"
+    echo "  tdesc_create_reg ((struct tdesc_feature *) result, \"${entry}\","
+    echo "  0, 0, NULL, ${type}, NULL);"
+
     offset=`expr ${offset} + ${type}`
     i=`expr $i + 1`
   fi
 done
 
-echo "};"
 echo
 echo "static const char *expedite_regs_${name}[] = { \"`echo ${expedite} | sed 's/,/", "/g'`\", 0 };"
 if test "${xmltarget}" = x; then
@@ -169,18 +178,10 @@ fi
 echo
 
 cat <<EOF
-const struct target_desc *tdesc_${name};
-
-void
-init_registers_${name} (void)
-{
-  static struct target_desc tdesc_${name}_s;
-  struct target_desc *result = &tdesc_${name}_s;
-
-  result->reg_defs = regs_${name};
-  result->num_registers = sizeof (regs_${name}) / sizeof (regs_${name}[0]);
+#ifndef IN_PROCESS_AGENT
   result->expedite_regs = expedite_regs_${name};
   result->xmltarget = xmltarget_${name};
+#endif
 
   init_target_desc (result);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/regdef.h ./gdb/regformats/regdef.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/regdef.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/regdef.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Register protocol definition structures for the GNU Debugger
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -34,11 +34,18 @@ struct reg
 
   /* The size (in bits) of the value of this register, as transmitted.  */
   int size;
-};
-
-/* Set the current remote protocol and register cache according to the array
-   ``regs'', with ``n'' elements.  */
 
-void set_register_cache (struct reg *regs, int n);
+  bool operator== (const reg &other) const
+  {
+    return (strcmp (name, other.name) == 0
+	    && offset == other.offset
+	    && size == other.size);
+  }
+
+  bool operator!= (const reg &other) const
+  {
+    return !(*this == other);
+  }
+};
 
 #endif /* REGDEF_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/s390-gs-linux64.dat ./gdb/regformats/s390-gs-linux64.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/s390-gs-linux64.dat	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/regformats/s390-gs-linux64.dat	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,133 @@
+# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
+# Generated from: s390-gs-linux64.xml
+name:s390_gs_linux64
+xmltarget:s390-gs-linux64.xml
+expedite:r14,r15,pswa
+32:pswm
+32:pswa
+32:r0h
+32:r0l
+32:r1h
+32:r1l
+32:r2h
+32:r2l
+32:r3h
+32:r3l
+32:r4h
+32:r4l
+32:r5h
+32:r5l
+32:r6h
+32:r6l
+32:r7h
+32:r7l
+32:r8h
+32:r8l
+32:r9h
+32:r9l
+32:r10h
+32:r10l
+32:r11h
+32:r11l
+32:r12h
+32:r12l
+32:r13h
+32:r13l
+32:r14h
+32:r14l
+32:r15h
+32:r15l
+32:acr0
+32:acr1
+32:acr2
+32:acr3
+32:acr4
+32:acr5
+32:acr6
+32:acr7
+32:acr8
+32:acr9
+32:acr10
+32:acr11
+32:acr12
+32:acr13
+32:acr14
+32:acr15
+32:fpc
+64:f0
+64:f1
+64:f2
+64:f3
+64:f4
+64:f5
+64:f6
+64:f7
+64:f8
+64:f9
+64:f10
+64:f11
+64:f12
+64:f13
+64:f14
+64:f15
+32:orig_r2
+32:last_break
+32:system_call
+64:tdb0
+64:tac
+64:tct
+64:atia
+64:tr0
+64:tr1
+64:tr2
+64:tr3
+64:tr4
+64:tr5
+64:tr6
+64:tr7
+64:tr8
+64:tr9
+64:tr10
+64:tr11
+64:tr12
+64:tr13
+64:tr14
+64:tr15
+64:v0l
+64:v1l
+64:v2l
+64:v3l
+64:v4l
+64:v5l
+64:v6l
+64:v7l
+64:v8l
+64:v9l
+64:v10l
+64:v11l
+64:v12l
+64:v13l
+64:v14l
+64:v15l
+128:v16
+128:v17
+128:v18
+128:v19
+128:v20
+128:v21
+128:v22
+128:v23
+128:v24
+128:v25
+128:v26
+128:v27
+128:v28
+128:v29
+128:v30
+128:v31
+64:gsd
+64:gssm
+64:gsepla
+64:bc_gsd
+64:bc_gssm
+64:bc_gsepla
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/s390x-gs-linux64.dat ./gdb/regformats/s390x-gs-linux64.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/s390x-gs-linux64.dat	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/regformats/s390x-gs-linux64.dat	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,117 @@
+# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
+# Generated from: s390x-gs-linux64.xml
+name:s390x_gs_linux64
+xmltarget:s390x-gs-linux64.xml
+expedite:r14,r15,pswa
+64:pswm
+64:pswa
+64:r0
+64:r1
+64:r2
+64:r3
+64:r4
+64:r5
+64:r6
+64:r7
+64:r8
+64:r9
+64:r10
+64:r11
+64:r12
+64:r13
+64:r14
+64:r15
+32:acr0
+32:acr1
+32:acr2
+32:acr3
+32:acr4
+32:acr5
+32:acr6
+32:acr7
+32:acr8
+32:acr9
+32:acr10
+32:acr11
+32:acr12
+32:acr13
+32:acr14
+32:acr15
+32:fpc
+64:f0
+64:f1
+64:f2
+64:f3
+64:f4
+64:f5
+64:f6
+64:f7
+64:f8
+64:f9
+64:f10
+64:f11
+64:f12
+64:f13
+64:f14
+64:f15
+64:orig_r2
+64:last_break
+32:system_call
+64:tdb0
+64:tac
+64:tct
+64:atia
+64:tr0
+64:tr1
+64:tr2
+64:tr3
+64:tr4
+64:tr5
+64:tr6
+64:tr7
+64:tr8
+64:tr9
+64:tr10
+64:tr11
+64:tr12
+64:tr13
+64:tr14
+64:tr15
+64:v0l
+64:v1l
+64:v2l
+64:v3l
+64:v4l
+64:v5l
+64:v6l
+64:v7l
+64:v8l
+64:v9l
+64:v10l
+64:v11l
+64:v12l
+64:v13l
+64:v14l
+64:v15l
+128:v16
+128:v17
+128:v18
+128:v19
+128:v20
+128:v21
+128:v22
+128:v23
+128:v24
+128:v25
+128:v26
+128:v27
+128:v28
+128:v29
+128:v30
+128:v31
+64:gsd
+64:gssm
+64:gsepla
+64:bc_gsd
+64:bc_gssm
+64:bc_gsepla
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/tic6x-c62x.dat ./gdb/regformats/tic6x-c62x.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/tic6x-c62x.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/tic6x-c62x.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,39 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: tic6x-c62x.xml
-name:tic6x_c62x
-xmltarget:tic6x-c62x.xml
-expedite:A15,PC
-32:A0
-32:A1
-32:A2
-32:A3
-32:A4
-32:A5
-32:A6
-32:A7
-32:A8
-32:A9
-32:A10
-32:A11
-32:A12
-32:A13
-32:A14
-32:A15
-32:B0
-32:B1
-32:B2
-32:B3
-32:B4
-32:B5
-32:B6
-32:B7
-32:B8
-32:B9
-32:B10
-32:B11
-32:B12
-32:B13
-32:B14
-32:B15
-32:CSR
-32:PC
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/tic6x-c64x.dat ./gdb/regformats/tic6x-c64x.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/tic6x-c64x.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/tic6x-c64x.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,71 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: tic6x-c64x.xml
-name:tic6x_c64x
-xmltarget:tic6x-c64x.xml
-expedite:A15,PC
-32:A0
-32:A1
-32:A2
-32:A3
-32:A4
-32:A5
-32:A6
-32:A7
-32:A8
-32:A9
-32:A10
-32:A11
-32:A12
-32:A13
-32:A14
-32:A15
-32:B0
-32:B1
-32:B2
-32:B3
-32:B4
-32:B5
-32:B6
-32:B7
-32:B8
-32:B9
-32:B10
-32:B11
-32:B12
-32:B13
-32:B14
-32:B15
-32:CSR
-32:PC
-32:A16
-32:A17
-32:A18
-32:A19
-32:A20
-32:A21
-32:A22
-32:A23
-32:A24
-32:A25
-32:A26
-32:A27
-32:A28
-32:A29
-32:A30
-32:A31
-32:B16
-32:B17
-32:B18
-32:B19
-32:B20
-32:B21
-32:B22
-32:B23
-32:B24
-32:B25
-32:B26
-32:B27
-32:B28
-32:B29
-32:B30
-32:B31
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/tic6x-c64xp.dat ./gdb/regformats/tic6x-c64xp.dat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regformats/tic6x-c64xp.dat	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regformats/tic6x-c64xp.dat	1970-01-01 00:00:00.000000000 +0000
@@ -1,74 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: tic6x-c64xp.xml
-name:tic6x_c64xp
-xmltarget:tic6x-c64xp.xml
-expedite:A15,PC
-32:A0
-32:A1
-32:A2
-32:A3
-32:A4
-32:A5
-32:A6
-32:A7
-32:A8
-32:A9
-32:A10
-32:A11
-32:A12
-32:A13
-32:A14
-32:A15
-32:B0
-32:B1
-32:B2
-32:B3
-32:B4
-32:B5
-32:B6
-32:B7
-32:B8
-32:B9
-32:B10
-32:B11
-32:B12
-32:B13
-32:B14
-32:B15
-32:CSR
-32:PC
-32:A16
-32:A17
-32:A18
-32:A19
-32:A20
-32:A21
-32:A22
-32:A23
-32:A24
-32:A25
-32:A26
-32:A27
-32:A28
-32:A29
-32:A30
-32:A31
-32:B16
-32:B17
-32:B18
-32:B19
-32:B20
-32:B21
-32:B22
-32:B23
-32:B24
-32:B25
-32:B26
-32:B27
-32:B28
-32:B29
-32:B30
-32:B31
-32:TSR
-32:ILC
-32:RILC
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/reggroups.c ./gdb/reggroups.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/reggroups.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/reggroups.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Register groupings for GDB, the GNU debugger.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat.
 
@@ -26,6 +26,7 @@
 #include "regcache.h"
 #include "command.h"
 #include "gdbcmd.h"		/* For maintenanceprintlist.  */
+#include "gdb_obstack.h"
 
 /* Individual register groups.  */
 
@@ -45,6 +46,20 @@ reggroup_new (const char *name, enum reg
   return group;
 }
 
+/* See reggroups.h.  */
+
+struct reggroup *
+reggroup_gdbarch_new (struct gdbarch *gdbarch, const char *name,
+		      enum reggroup_type type)
+{
+  struct reggroup *group = GDBARCH_OBSTACK_ZALLOC (gdbarch,
+						   struct reggroup);
+
+  group->name = gdbarch_obstack_strdup (gdbarch, name);
+  group->type = type;
+  return group;
+}
+
 /* Register group attributes.  */
 
 const char *
@@ -76,10 +91,9 @@ struct reggroups
 static struct gdbarch_data *reggroups_data;
 
 static void *
-reggroups_init (struct gdbarch *gdbarch)
+reggroups_init (struct obstack *obstack)
 {
-  struct reggroups *groups = GDBARCH_OBSTACK_ZALLOC (gdbarch,
-						     struct reggroups);
+  struct reggroups *groups = OBSTACK_ZALLOC (obstack, struct reggroups);
 
   groups->last = &groups->first;
   return groups;
@@ -105,13 +119,6 @@ reggroup_add (struct gdbarch *gdbarch, s
   struct reggroups *groups
     = (struct reggroups *) gdbarch_data (gdbarch, reggroups_data);
 
-  if (groups == NULL)
-    {
-      /* ULGH, called during architecture initialization.  Patch
-         things up.  */
-      groups = (struct reggroups *) reggroups_init (gdbarch);
-      deprecated_set_gdbarch_data (gdbarch, reggroups_data, groups);
-    }
   add_group (groups, group,
 	     GDBARCH_OBSTACK_ZALLOC (gdbarch, struct reggroup_el));
 }
@@ -208,6 +215,23 @@ default_register_reggroup_p (struct gdba
   return 0;   
 }
 
+/* See reggroups.h.  */
+
+reggroup *
+reggroup_find (struct gdbarch *gdbarch, const char *name)
+{
+  struct reggroup *group;
+
+  for (group = reggroup_next (gdbarch, NULL);
+       group != NULL;
+       group = reggroup_next (gdbarch, group))
+    {
+      if (strcmp (name, reggroup_name (group)) == 0)
+	return group;
+    }
+  return NULL;
+}
+
 /* Dump out a table of register groups for the current architecture.  */
 
 static void
@@ -262,7 +286,7 @@ reggroups_dump (struct gdbarch *gdbarch,
 }
 
 static void
-maintenance_print_reggroups (char *args, int from_tty)
+maintenance_print_reggroups (const char *args, int from_tty)
 {
   struct gdbarch *gdbarch = get_current_arch ();
 
@@ -295,12 +319,10 @@ struct reggroup *const all_reggroup = &a
 struct reggroup *const save_reggroup = &save_group;
 struct reggroup *const restore_reggroup = &restore_group;
 
-extern initialize_file_ftype _initialize_reggroup; /* -Wmissing-prototypes */
-
 void
 _initialize_reggroup (void)
 {
-  reggroups_data = gdbarch_data_register_post_init (reggroups_init);
+  reggroups_data = gdbarch_data_register_pre_init (reggroups_init);
 
   /* The pre-defined list of groups.  */
   add_group (&default_groups, general_reggroup, XNEW (struct reggroup_el));
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/reggroups.h ./gdb/reggroups.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/reggroups.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/reggroups.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Register groupings for GDB, the GNU debugger.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat.
 
@@ -41,6 +41,10 @@ extern struct reggroup *const restore_re
 /* Create a new local register group.  */
 extern struct reggroup *reggroup_new (const char *name,
 				      enum reggroup_type type);
+/* Create a new register group allocated onto the gdbarch obstack.  */
+extern struct reggroup *reggroup_gdbarch_new (struct gdbarch *gdbarch,
+					      const char *name,
+					      enum reggroup_type type);
 
 /* Add a register group (with attribute values) to the pre-defined list.  */
 extern void reggroup_add (struct gdbarch *gdbarch, struct reggroup *group);
@@ -57,6 +61,8 @@ extern struct reggroup *reggroup_next (s
 				       struct reggroup *last);
 extern struct reggroup *reggroup_prev (struct gdbarch *gdbarch,
 				       struct reggroup *curr);
+/* Find a reggroup by name.  */
+extern reggroup *reggroup_find (struct gdbarch *gdbarch, const char *name);
 
 /* Is REGNUM a member of REGGROUP?  */
 extern int default_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/registry.c ./gdb/registry.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/registry.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/registry.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support functions for general registry objects.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/registry.h ./gdb/registry.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/registry.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/registry.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Macros for general registry objects.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -158,8 +158,6 @@ const struct TAG ## _data *						\
 register_ ## TAG ## _data_with_cleanup (void (*save) (struct TAG *, void *), \
 					void (*free) (struct TAG *, void *)) \
 {									\
-  struct registry_data_registration **curr;				\
-									\
   return (struct TAG ## _data *)					\
     register_data_with_cleanup (&TAG ## _data_registry,			\
 				(registry_data_callback) save,		\
@@ -186,8 +184,6 @@ TAG ## registry_callback_adaptor (regist
 				  void *data)				\
 {									\
   struct TAG *tagged_container = (struct TAG *) container;		\
-  struct registry_fields *rdata						\
-    = &ACCESS (tagged_container)->registry_data;			\
 									\
   registry_ ## TAG ## _callback tagged_func				\
     = (registry_ ## TAG ## _callback) func;				\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regset.h ./gdb/regset.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/regset.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/regset.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Manage register sets.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/remote.c ./gdb/remote.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/remote.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/remote.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Remote target communications for serial-line targets in custom GDB protocol
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -72,10 +72,9 @@
 #include "btrace.h"
 #include "record-btrace.h"
 #include <algorithm>
-
-/* Temp hacks for tracepoint encoding migration.  */
-static char *target_buf;
-static long target_buf_size;
+#include "common/scoped_restore.h"
+#include "environ.h"
+#include "common/byte-vector.h"
 
 /* Per-program-space data key.  */
 static const struct program_space_data *remote_pspace_data;
@@ -168,10 +167,6 @@ static CORE_ADDR remote_address_masked (
 
 static void print_packet (const char *);
 
-static void compare_sections_command (char *, int);
-
-static void packet_command (char *, int);
-
 static int stub_unpack_int (char *buff, int fieldlength);
 
 static ptid_t remote_current_thread (ptid_t oldptid);
@@ -190,7 +185,7 @@ static void show_remote_protocol_packet_
 					     const char *value);
 
 static char *write_ptid (char *buf, const char *endbuf, ptid_t ptid);
-static ptid_t read_ptid (char *buf, char **obuf);
+static ptid_t read_ptid (const char *buf, const char **obuf);
 
 static void remote_set_permissions (struct target_ops *self);
 
@@ -207,8 +202,6 @@ static void remote_query_supported (void
 
 static void remote_check_symbols (void);
 
-void _initialize_remote (void);
-
 struct stop_reply;
 static void stop_reply_xfree (struct stop_reply *);
 static void remote_parse_stop_reply (char *, struct stop_reply *);
@@ -241,6 +234,8 @@ static void readahead_cache_invalidate (
 
 static void remote_unpush_and_throw (void);
 
+static struct remote_state *get_remote_state (void);
+
 /* For "remote".  */
 
 static struct cmd_list_element *remote_cmdlist;
@@ -444,19 +439,23 @@ struct remote_state
   struct readahead_cache readahead_cache;
 };
 
-/* Private data that we'll store in (struct thread_info)->private.  */
-struct private_thread_info
+/* Private data that we'll store in (struct thread_info)->priv.  */
+struct remote_thread_info : public private_thread_info
 {
-  char *extra;
-  char *name;
-  int core;
+  std::string extra;
+  std::string name;
+  int core = -1;
+
+  /* Thread handle, perhaps a pthread_t or thread_t value, stored as a
+     sequence of bytes.  */
+  gdb::byte_vector thread_handle;
 
   /* Whether the target stopped for a breakpoint/watchpoint.  */
-  enum target_stop_reason stop_reason;
+  enum target_stop_reason stop_reason = TARGET_STOPPED_BY_NO_REASON;
 
   /* This is set to the data address of the access causing the target
      to stop for a watchpoint.  */
-  CORE_ADDR watch_data_address;
+  CORE_ADDR watch_data_address = 0;
 
   /* Fields used by the vCont action coalescing implemented in
      remote_resume / remote_commit_resume.  remote_resume stores each
@@ -466,25 +465,17 @@ struct private_thread_info
 
   /* True if the last target_resume call for this thread was a step
      request, false if a continue request.  */
-  int last_resume_step;
+  int last_resume_step = 0;
 
   /* The signal specified in the last target_resume call for this
      thread.  */
-  enum gdb_signal last_resume_sig;
+  gdb_signal last_resume_sig = GDB_SIGNAL_0;
 
   /* Whether this thread was already vCont-resumed on the remote
      side.  */
-  int vcont_resumed;
+  int vcont_resumed = 0;
 };
 
-static void
-free_private_thread_info (struct private_thread_info *info)
-{
-  xfree (info->extra);
-  xfree (info->name);
-  xfree (info);
-}
-
 /* This data could be associated with a target, but we do not always
    have access to the current target when we need it, so for now it is
    static.  This will be fine for as long as only one target is in use
@@ -573,24 +564,26 @@ trace_error (char *buf)
 }
 
 /* Utility: wait for reply from stub, while accepting "O" packets.  */
+
 static char *
-remote_get_noisy_reply (char **buf_p,
-			long *sizeof_buf)
+remote_get_noisy_reply ()
 {
+  struct remote_state *rs = get_remote_state ();
+
   do				/* Loop on reply from remote stub.  */
     {
       char *buf;
 
       QUIT;			/* Allow user to bail out with ^C.  */
-      getpkt (buf_p, sizeof_buf, 0);
-      buf = *buf_p;
+      getpkt (&rs->buf, &rs->buf_size, 0);
+      buf = rs->buf;
       if (buf[0] == 'E')
 	trace_error (buf);
       else if (startswith (buf, "qRelocInsn:"))
 	{
 	  ULONGEST ul;
 	  CORE_ADDR from, to, org_to;
-	  char *p, *pp;
+	  const char *p, *pp;
 	  int adjusted_size = 0;
 	  int relocated = 0;
 
@@ -636,7 +629,7 @@ remote_get_noisy_reply (char **buf_p,
 	    {
 	      adjusted_size = to - org_to;
 
-	      xsnprintf (buf, *sizeof_buf, "qRelocInsn:%x", adjusted_size);
+	      xsnprintf (buf, rs->buf_size, "qRelocInsn:%x", adjusted_size);
 	      putpkt (buf);
 	    }
 	}
@@ -652,11 +645,11 @@ remote_get_noisy_reply (char **buf_p,
 static struct gdbarch_data *remote_gdbarch_data_handle;
 
 static struct remote_arch_state *
-get_remote_arch_state (void)
+get_remote_arch_state (struct gdbarch *gdbarch)
 {
-  gdb_assert (target_gdbarch () != NULL);
+  gdb_assert (gdbarch != NULL);
   return ((struct remote_arch_state *)
-	  gdbarch_data (target_gdbarch (), remote_gdbarch_data_handle));
+	  gdbarch_data (gdbarch, remote_gdbarch_data_handle));
 }
 
 /* Fetch the global remote target state.  */
@@ -669,7 +662,7 @@ get_remote_state (void)
      function which calls getpkt also needs to be mindful of changes
      to rs->buf, but this call limits the number of places which run
      into trouble.  */
-  get_remote_arch_state ();
+  get_remote_arch_state (target_gdbarch ());
 
   return get_remote_state_raw ();
 }
@@ -716,7 +709,7 @@ set_pspace_remote_exec_file (struct prog
 /* The "set/show remote exec-file" set command hook.  */
 
 static void
-set_remote_exec_file (char *ignored, int from_tty,
+set_remote_exec_file (const char *ignored, int from_tty,
 		      struct cmd_list_element *c)
 {
   gdb_assert (remote_exec_file_var != NULL);
@@ -801,21 +794,15 @@ int
 remote_register_number_and_offset (struct gdbarch *gdbarch, int regnum,
 				   int *pnum, int *poffset)
 {
-  struct packet_reg *regs;
-  struct cleanup *old_chain;
-
   gdb_assert (regnum < gdbarch_num_regs (gdbarch));
 
-  regs = XCNEWVEC (struct packet_reg, gdbarch_num_regs (gdbarch));
-  old_chain = make_cleanup (xfree, regs);
+  std::vector<packet_reg> regs (gdbarch_num_regs (gdbarch));
 
-  map_regcache_remote_table (gdbarch, regs);
+  map_regcache_remote_table (gdbarch, regs.data ());
 
   *pnum = regs[regnum].pnum;
   *poffset = regs[regnum].offset;
 
-  do_cleanups (old_chain);
-
   return *pnum != -1;
 }
 
@@ -876,7 +863,7 @@ static long
 get_remote_packet_size (void)
 {
   struct remote_state *rs = get_remote_state ();
-  struct remote_arch_state *rsa = get_remote_arch_state ();
+  remote_arch_state *rsa = get_remote_arch_state (target_gdbarch ());
 
   if (rs->explicit_packet_size)
     return rs->explicit_packet_size;
@@ -885,9 +872,10 @@ get_remote_packet_size (void)
 }
 
 static struct packet_reg *
-packet_reg_from_regnum (struct remote_arch_state *rsa, long regnum)
+packet_reg_from_regnum (struct gdbarch *gdbarch, struct remote_arch_state *rsa,
+			long regnum)
 {
-  if (regnum < 0 && regnum >= gdbarch_num_regs (target_gdbarch ()))
+  if (regnum < 0 && regnum >= gdbarch_num_regs (gdbarch))
     return NULL;
   else
     {
@@ -899,11 +887,12 @@ packet_reg_from_regnum (struct remote_ar
 }
 
 static struct packet_reg *
-packet_reg_from_pnum (struct remote_arch_state *rsa, LONGEST pnum)
+packet_reg_from_pnum (struct gdbarch *gdbarch, struct remote_arch_state *rsa,
+		      LONGEST pnum)
 {
   int i;
 
-  for (i = 0; i < gdbarch_num_regs (target_gdbarch ()); i++)
+  for (i = 0; i < gdbarch_num_regs (gdbarch); i++)
     {
       struct packet_reg *r = &rsa->regs[i];
 
@@ -981,7 +970,7 @@ static int interrupt_on_connect = 0;
 static int remote_break;
 
 static void
-set_remotebreak (char *args, int from_tty, struct cmd_list_element *c)
+set_remotebreak (const char *args, int from_tty, struct cmd_list_element *c)
 {
   if (remote_break)
     interrupt_sequence_mode = interrupt_sequence_break;
@@ -1009,11 +998,6 @@ show_remotebreak (struct ui_file *file, 
 
 static unsigned int remote_address_size;
 
-/* Temporary to track who currently owns the terminal.  See
-   remote_terminal_* for more details.  */
-
-static int remote_async_terminal_ours_p;
-
 
 /* User configurable variables for the number of characters in a
    memory read/write packet.  MIN (rsa->remote_packet_size,
@@ -1047,7 +1031,7 @@ static long
 get_memory_packet_size (struct memory_packet_config *config)
 {
   struct remote_state *rs = get_remote_state ();
-  struct remote_arch_state *rsa = get_remote_arch_state ();
+  remote_arch_state *rsa = get_remote_arch_state (target_gdbarch ());
 
   long what_they_get;
   if (config->fixed_p)
@@ -1090,7 +1074,7 @@ get_memory_packet_size (struct memory_pa
    something really big then do a sanity check.  */
 
 static void
-set_memory_packet_size (char *args, struct memory_packet_config *config)
+set_memory_packet_size (const char *args, struct memory_packet_config *config)
 {
   int fixed_p = config->fixed_p;
   long size = config->size;
@@ -1151,13 +1135,13 @@ static struct memory_packet_config memor
 };
 
 static void
-set_memory_write_packet_size (char *args, int from_tty)
+set_memory_write_packet_size (const char *args, int from_tty)
 {
   set_memory_packet_size (args, &memory_write_packet_config);
 }
 
 static void
-show_memory_write_packet_size (char *args, int from_tty)
+show_memory_write_packet_size (const char *args, int from_tty)
 {
   show_memory_packet_size (&memory_write_packet_config);
 }
@@ -1174,13 +1158,13 @@ static struct memory_packet_config memor
 };
 
 static void
-set_memory_read_packet_size (char *args, int from_tty)
+set_memory_read_packet_size (const char *args, int from_tty)
 {
   set_memory_packet_size (args, &memory_read_packet_config);
 }
 
 static void
-show_memory_read_packet_size (char *args, int from_tty)
+show_memory_read_packet_size (const char *args, int from_tty)
 {
   show_memory_packet_size (&memory_read_packet_config);
 }
@@ -1428,6 +1412,11 @@ enum {
   PACKET_QPassSignals,
   PACKET_QCatchSyscalls,
   PACKET_QProgramSignals,
+  PACKET_QSetWorkingDir,
+  PACKET_QStartupWithShell,
+  PACKET_QEnvironmentHexEncoded,
+  PACKET_QEnvironmentReset,
+  PACKET_QEnvironmentUnset,
   PACKET_qCRC,
   PACKET_qSearch_memory,
   PACKET_vAttach,
@@ -1610,7 +1599,7 @@ enum Z_packet_type
 static enum auto_boolean remote_Z_packet_detect;
 
 static void
-set_remote_protocol_Z_packet_cmd (char *args, int from_tty,
+set_remote_protocol_Z_packet_cmd (const char *args, int from_tty,
 				  struct cmd_list_element *c)
 {
   int i;
@@ -1828,8 +1817,7 @@ remote_add_inferior (int fake_pid_p, int
   return inf;
 }
 
-static struct private_thread_info *
-  get_private_info_thread (struct thread_info *info);
+static remote_thread_info *get_remote_thread_info (thread_info *thread);
 
 /* Add thread PTID to GDB's thread list.  Tag it as executing/running
    according to RUNNING.  */
@@ -1851,7 +1839,7 @@ remote_add_thread (ptid_t ptid, int runn
   else
     thread = add_thread (ptid);
 
-  get_private_info_thread (thread)->vcont_resumed = executing;
+  get_remote_thread_info (thread)->vcont_resumed = executing;
   set_executing (ptid, executing);
   set_running (ptid, running);
 }
@@ -1948,38 +1936,25 @@ remote_notice_new_inferior (ptid_t currt
 
 /* Return THREAD's private thread data, creating it if necessary.  */
 
-static struct private_thread_info *
-get_private_info_thread (struct thread_info *thread)
+static remote_thread_info *
+get_remote_thread_info (thread_info *thread)
 {
   gdb_assert (thread != NULL);
 
   if (thread->priv == NULL)
-    {
-      struct private_thread_info *priv = XNEW (struct private_thread_info);
+    thread->priv.reset (new remote_thread_info);
 
-      thread->private_dtor = free_private_thread_info;
-      thread->priv = priv;
-
-      priv->core = -1;
-      priv->extra = NULL;
-      priv->name = NULL;
-      priv->name = NULL;
-      priv->last_resume_step = 0;
-      priv->last_resume_sig = GDB_SIGNAL_0;
-      priv->vcont_resumed = 0;
-    }
-
-  return thread->priv;
+  return static_cast<remote_thread_info *> (thread->priv.get ());
 }
 
 /* Return PTID's private thread data, creating it if necessary.  */
 
-static struct private_thread_info *
-get_private_info_ptid (ptid_t ptid)
+static remote_thread_info *
+get_remote_thread_info (ptid_t ptid)
 {
   struct thread_info *info = find_thread_ptid (ptid);
 
-  return get_private_info_thread (info);
+  return get_remote_thread_info (info);
 }
 
 /* Call this function as a result of
@@ -2049,10 +2024,10 @@ remote_pass_signals (struct target_ops *
 
 static int
 remote_set_syscall_catchpoint (struct target_ops *self,
-			       int pid, int needed, int any_count,
-			       int table_size, int *table)
+			       int pid, bool needed, int any_count,
+			       gdb::array_view<const int> syscall_counts)
 {
-  char *catch_packet;
+  const char *catch_packet;
   enum packet_result result;
   int n_sysno = 0;
 
@@ -2062,14 +2037,12 @@ remote_set_syscall_catchpoint (struct ta
       return 1;
     }
 
-  if (needed && !any_count)
+  if (needed && any_count == 0)
     {
-      int i;
-
-      /* Count how many syscalls are to be caught (table[sysno] != 0).  */
-      for (i = 0; i < table_size; i++)
+      /* Count how many syscalls are to be caught.  */
+      for (size_t i = 0; i < syscall_counts.size (); i++)
 	{
-	  if (table[i] != 0)
+	  if (syscall_counts[i] != 0)
 	    n_sysno++;
 	}
     }
@@ -2082,53 +2055,45 @@ remote_set_syscall_catchpoint (struct ta
 			  pid, needed, any_count, n_sysno);
     }
 
+  std::string built_packet;
   if (needed)
     {
       /* Prepare a packet with the sysno list, assuming max 8+1
 	 characters for a sysno.  If the resulting packet size is too
 	 big, fallback on the non-selective packet.  */
       const int maxpktsz = strlen ("QCatchSyscalls:1") + n_sysno * 9 + 1;
-
-      catch_packet = (char *) xmalloc (maxpktsz);
-      strcpy (catch_packet, "QCatchSyscalls:1");
-      if (!any_count)
+      built_packet.reserve (maxpktsz);
+      built_packet = "QCatchSyscalls:1";
+      if (any_count == 0)
 	{
-	  int i;
-	  char *p;
-
-	  p = catch_packet;
-	  p += strlen (p);
-
-	  /* Add in catch_packet each syscall to be caught (table[i] != 0).  */
-	  for (i = 0; i < table_size; i++)
+	  /* Add in each syscall to be caught.  */
+	  for (size_t i = 0; i < syscall_counts.size (); i++)
 	    {
-	      if (table[i] != 0)
-		p += xsnprintf (p, catch_packet + maxpktsz - p, ";%x", i);
+	      if (syscall_counts[i] != 0)
+		string_appendf (built_packet, ";%zx", i);
 	    }
 	}
-      if (strlen (catch_packet) > get_remote_packet_size ())
+      if (built_packet.size () > get_remote_packet_size ())
 	{
 	  /* catch_packet too big.  Fallback to less efficient
 	     non selective mode, with GDB doing the filtering.  */
-	  catch_packet[sizeof ("QCatchSyscalls:1") - 1] = 0;
+	  catch_packet = "QCatchSyscalls:1";
 	}
+      else
+	catch_packet = built_packet.c_str ();
     }
   else
-    catch_packet = xstrdup ("QCatchSyscalls:0");
+    catch_packet = "QCatchSyscalls:0";
 
-  {
-    struct cleanup *old_chain = make_cleanup (xfree, catch_packet);
-    struct remote_state *rs = get_remote_state ();
+  struct remote_state *rs = get_remote_state ();
 
-    putpkt (catch_packet);
-    getpkt (&rs->buf, &rs->buf_size, 0);
-    result = packet_ok (rs->buf, &remote_protocol_packets[PACKET_QCatchSyscalls]);
-    do_cleanups (old_chain);
-    if (result == PACKET_OK)
-      return 0;
-    else
-      return -1;
-  }
+  putpkt (catch_packet);
+  getpkt (&rs->buf, &rs->buf_size, 0);
+  result = packet_ok (rs->buf, &remote_protocol_packets[PACKET_QCatchSyscalls]);
+  if (result == PACKET_OK)
+    return 0;
+  else
+    return -1;
 }
 
 /* If 'QProgramSignals' is supported, tell the remote stub what
@@ -2303,7 +2268,10 @@ static const char *
 remote_thread_name (struct target_ops *ops, struct thread_info *info)
 {
   if (info->priv != NULL)
-    return info->priv->name;
+    {
+      const std::string &name = get_remote_thread_info (info)->name;
+      return !name.empty () ? name.c_str () : NULL;
+    }
 
   return NULL;
 }
@@ -2438,14 +2406,15 @@ write_ptid (char *buf, const char *endbu
   return buf;
 }
 
-/* Extract a PTID from BUF.  If non-null, OBUF is set to the to one
-   passed the last parsed char.  Returns null_ptid on error.  */
+/* Extract a PTID from BUF.  If non-null, OBUF is set to one past the
+   last parsed char.  Returns null_ptid if no thread id is found, and
+   throws an error if the thread id has an invalid format.  */
 
 static ptid_t
-read_ptid (char *buf, char **obuf)
+read_ptid (const char *buf, const char **obuf)
 {
-  char *p = buf;
-  char *pp;
+  const char *p = buf;
+  const char *pp;
   ULONGEST pid = 0, tid = 0;
 
   if (*p == 'p')
@@ -2980,21 +2949,32 @@ remote_threadlist_iterator (rmt_thread_a
 
 /* A thread found on the remote target.  */
 
-typedef struct thread_item
+struct thread_item
 {
+  explicit thread_item (ptid_t ptid_)
+  : ptid (ptid_)
+  {}
+
+  thread_item (thread_item &&other) = default;
+  thread_item &operator= (thread_item &&other) = default;
+
+  DISABLE_COPY_AND_ASSIGN (thread_item);
+
   /* The thread's PTID.  */
   ptid_t ptid;
 
-  /* The thread's extra info.  May be NULL.  */
-  char *extra;
+  /* The thread's extra info.  */
+  std::string extra;
 
-  /* The thread's name.  May be NULL.  */
-  char *name;
+  /* The thread's name.  */
+  std::string name;
 
   /* The core the thread was running on.  -1 if not known.  */
-  int core;
-} thread_item_t;
-DEF_VEC_O(thread_item_t);
+  int core = -1;
+
+  /* The thread handle associated with the thread.  */
+  gdb::byte_vector thread_handle;
+};
 
 /* Context passed around to the various methods listing remote
    threads.  As new threads are found, they're added to the ITEMS
@@ -3002,64 +2982,54 @@ DEF_VEC_O(thread_item_t);
 
 struct threads_listing_context
 {
-  /* The threads found on the remote target.  */
-  VEC (thread_item_t) *items;
-};
+  /* Return true if this object contains an entry for a thread with ptid
+     PTID.  */
 
-/* Discard the contents of the constructed thread listing context.  */
+  bool contains_thread (ptid_t ptid) const
+  {
+    auto match_ptid = [&] (const thread_item &item)
+      {
+	return item.ptid == ptid;
+      };
 
-static void
-clear_threads_listing_context (void *p)
-{
-  struct threads_listing_context *context
-    = (struct threads_listing_context *) p;
-  int i;
-  struct thread_item *item;
+    auto it = std::find_if (this->items.begin (),
+			    this->items.end (),
+			    match_ptid);
 
-  for (i = 0; VEC_iterate (thread_item_t, context->items, i, item); ++i)
-    {
-      xfree (item->extra);
-      xfree (item->name);
-    }
+    return it != this->items.end ();
+  }
 
-  VEC_free (thread_item_t, context->items);
-}
+  /* Remove the thread with ptid PTID.  */
 
-/* Remove the thread specified as the related_pid field of WS
-   from the CONTEXT list.  */
+  void remove_thread (ptid_t ptid)
+  {
+    auto match_ptid = [&] (const thread_item &item)
+      {
+        return item.ptid == ptid;
+      };
 
-static void
-threads_listing_context_remove (struct target_waitstatus *ws,
-				struct threads_listing_context *context)
-{
-  struct thread_item *item;
-  int i;
-  ptid_t child_ptid = ws->value.related_pid;
+    auto it = std::remove_if (this->items.begin (),
+			      this->items.end (),
+			      match_ptid);
 
-  for (i = 0; VEC_iterate (thread_item_t, context->items, i, item); ++i)
-    {
-      if (ptid_equal (item->ptid, child_ptid))
-	{
-	  VEC_ordered_remove (thread_item_t, context->items, i);
-	  break;
-	}
-    }
-}
+    if (it != this->items.end ())
+      this->items.erase (it);
+  }
+
+  /* The threads found on the remote target.  */
+  std::vector<thread_item> items;
+};
 
 static int
 remote_newthread_step (threadref *ref, void *data)
 {
   struct threads_listing_context *context
     = (struct threads_listing_context *) data;
-  struct thread_item item;
-  int pid = ptid_get_pid (inferior_ptid);
+  int pid = inferior_ptid.pid ();
+  int lwp = threadref_to_int (ref);
+  ptid_t ptid (pid, lwp);
 
-  item.ptid = ptid_build (pid, threadref_to_int (ref), 0);
-  item.core = -1;
-  item.name = NULL;
-  item.extra = NULL;
-
-  VEC_safe_push (thread_item_t, context->items, &item);
+  context->items.emplace_back (ptid);
 
   return 1;			/* continue iterator */
 }
@@ -3075,7 +3045,7 @@ remote_current_thread (ptid_t oldpid)
   getpkt (&rs->buf, &rs->buf_size, 0);
   if (rs->buf[0] == 'Q' && rs->buf[1] == 'C')
     {
-      char *obuf;
+      const char *obuf;
       ptid_t result;
 
       result = read_ptid (&rs->buf[2], &obuf);
@@ -3111,26 +3081,25 @@ start_thread (struct gdb_xml_parser *par
 {
   struct threads_listing_context *data
     = (struct threads_listing_context *) user_data;
-
-  struct thread_item item;
-  char *id;
   struct gdb_xml_value *attr;
 
-  id = (char *) xml_find_attribute (attributes, "id")->value;
-  item.ptid = read_ptid (id, NULL);
+  char *id = (char *) xml_find_attribute (attributes, "id")->value;
+  ptid_t ptid = read_ptid (id, NULL);
+
+  data->items.emplace_back (ptid);
+  thread_item &item = data->items.back ();
 
   attr = xml_find_attribute (attributes, "core");
   if (attr != NULL)
     item.core = *(ULONGEST *) attr->value;
-  else
-    item.core = -1;
 
   attr = xml_find_attribute (attributes, "name");
-  item.name = attr != NULL ? xstrdup ((const char *) attr->value) : NULL;
-
-  item.extra = 0;
+  if (attr != NULL)
+    item.name = (const char *) attr->value;
 
-  VEC_safe_push (thread_item_t, data->items, &item);
+  attr = xml_find_attribute (attributes, "handle");
+  if (attr != NULL)
+    item.thread_handle = hex2bin ((const char *) attr->value);
 }
 
 static void
@@ -3141,14 +3110,15 @@ end_thread (struct gdb_xml_parser *parse
   struct threads_listing_context *data
     = (struct threads_listing_context *) user_data;
 
-  if (body_text && *body_text)
-    VEC_last (thread_item_t, data->items)->extra = xstrdup (body_text);
+  if (body_text != NULL && *body_text != '\0')
+    data->items.back ().extra = body_text;
 }
 
 const struct gdb_xml_attribute thread_attributes[] = {
   { "id", GDB_XML_AF_NONE, NULL, NULL },
   { "core", GDB_XML_AF_OPTIONAL, gdb_xml_parse_attr_ulongest, NULL },
   { "name", GDB_XML_AF_OPTIONAL, NULL, NULL },
+  { "handle", GDB_XML_AF_OPTIONAL, NULL, NULL },
   { NULL, GDB_XML_AF_NONE, NULL, NULL }
 };
 
@@ -3180,16 +3150,15 @@ remote_get_threads_with_qxfer (struct ta
 #if defined(HAVE_LIBEXPAT)
   if (packet_support (PACKET_qXfer_threads) == PACKET_ENABLE)
     {
-      char *xml = target_read_stralloc (ops, TARGET_OBJECT_THREADS, NULL);
-      struct cleanup *back_to = make_cleanup (xfree, xml);
+      gdb::unique_xmalloc_ptr<char> xml
+	= target_read_stralloc (ops, TARGET_OBJECT_THREADS, NULL);
 
       if (xml != NULL && *xml != '\0')
 	{
 	  gdb_xml_parse_quick (_("threads"), "threads.dtd",
-			       threads_elements, xml, context);
+			       threads_elements, xml.get (), context);
 	}
 
-      do_cleanups (back_to);
       return 1;
     }
 #endif
@@ -3207,7 +3176,7 @@ remote_get_threads_with_qthreadinfo (str
 
   if (rs->use_threadinfo_query)
     {
-      char *bufp;
+      const char *bufp;
 
       putpkt ("qfThreadInfo");
       getpkt (&rs->buf, &rs->buf_size, 0);
@@ -3218,14 +3187,8 @@ remote_get_threads_with_qthreadinfo (str
 	    {
 	      do
 		{
-		  struct thread_item item;
-
-		  item.ptid = read_ptid (bufp, &bufp);
-		  item.core = -1;
-		  item.name = NULL;
-		  item.extra = NULL;
-
-		  VEC_safe_push (thread_item_t, context->items, &item);
+		  ptid_t ptid = read_ptid (bufp, &bufp);
+		  context->items.emplace_back (ptid);
 		}
 	      while (*bufp++ == ',');	/* comma-separated list */
 	      putpkt ("qsThreadInfo");
@@ -3251,12 +3214,8 @@ static void
 remote_update_thread_list (struct target_ops *ops)
 {
   struct threads_listing_context context;
-  struct cleanup *old_chain;
   int got_list = 0;
 
-  context.items = NULL;
-  old_chain = make_cleanup (clear_threads_listing_context, &context);
-
   /* We have a few different mechanisms to fetch the thread list.  Try
      them all, starting with the most preferred one first, falling
      back to older methods.  */
@@ -3264,13 +3223,11 @@ remote_update_thread_list (struct target
       || remote_get_threads_with_qthreadinfo (ops, &context)
       || remote_get_threads_with_ql (ops, &context))
     {
-      int i;
-      struct thread_item *item;
       struct thread_info *tp, *tmp;
 
       got_list = 1;
 
-      if (VEC_empty (thread_item_t, context.items)
+      if (context.items.empty ()
 	  && remote_thread_always_alive (ops, inferior_ptid))
 	{
 	  /* Some targets don't really support threads, but still
@@ -3278,7 +3235,6 @@ remote_update_thread_list (struct target
 	     listing packets, instead of replying "packet not
 	     supported".  Exit early so we don't delete the main
 	     thread.  */
-	  do_cleanups (old_chain);
 	  return;
 	}
 
@@ -3287,15 +3243,7 @@ remote_update_thread_list (struct target
 	 target.  */
       ALL_THREADS_SAFE (tp, tmp)
 	{
-	  for (i = 0;
-	       VEC_iterate (thread_item_t, context.items, i, item);
-	       ++i)
-	    {
-	      if (ptid_equal (item->ptid, tp->ptid))
-		break;
-	    }
-
-	  if (i == VEC_length (thread_item_t, context.items))
+	  if (!context.contains_thread (tp->ptid))
 	    {
 	      /* Not found.  */
 	      delete_thread (tp->ptid);
@@ -3308,27 +3256,23 @@ remote_update_thread_list (struct target
       remove_new_fork_children (&context);
 
       /* And now add threads we don't know about yet to our list.  */
-      for (i = 0;
-	   VEC_iterate (thread_item_t, context.items, i, item);
-	   ++i)
+      for (thread_item &item : context.items)
 	{
-	  if (!ptid_equal (item->ptid, null_ptid))
+	  if (item.ptid != null_ptid)
 	    {
-	      struct private_thread_info *info;
 	      /* In non-stop mode, we assume new found threads are
 		 executing until proven otherwise with a stop reply.
 		 In all-stop, we can only get here if all threads are
 		 stopped.  */
 	      int executing = target_is_non_stop_p () ? 1 : 0;
 
-	      remote_notice_new_inferior (item->ptid, executing);
+	      remote_notice_new_inferior (item.ptid, executing);
 
-	      info = get_private_info_ptid (item->ptid);
-	      info->core = item->core;
-	      info->extra = item->extra;
-	      item->extra = NULL;
-	      info->name = item->name;
-	      item->name = NULL;
+	      remote_thread_info *info = get_remote_thread_info (item.ptid);
+	      info->core = item.core;
+	      info->extra = std::move (item.extra);
+	      info->name = std::move (item.name);
+	      info->thread_handle = std::move (item.thread_handle);
 	    }
 	}
     }
@@ -3341,8 +3285,6 @@ remote_update_thread_list (struct target
 	 no-op.  See remote_thread_alive.  */
       prune_threads ();
     }
-
-  do_cleanups (old_chain);
 }
 
 /*
@@ -3379,8 +3321,11 @@ remote_threads_extra_info (struct target
     {
       struct thread_info *info = find_thread_ptid (tp->ptid);
 
-      if (info && info->priv)
-	return info->priv->extra;
+      if (info != NULL && info->priv != NULL)
+	{
+	  const std::string &extra = get_remote_thread_info (info)->extra;
+	  return !extra.empty () ? extra.c_str () : NULL;
+	}
       else
 	return NULL;
     }
@@ -3454,7 +3399,7 @@ remote_static_tracepoint_marker_at (stru
 
   if (*p++ == 'm')
     {
-      parse_static_tracepoint_marker_definition (p, &p, marker);
+      parse_static_tracepoint_marker_definition (p, NULL, marker);
       return 1;
     }
 
@@ -3469,7 +3414,7 @@ remote_static_tracepoint_markers_by_stri
   VEC(static_tracepoint_marker_p) *markers = NULL;
   struct static_tracepoint_marker *marker = NULL;
   struct cleanup *old_chain;
-  char *p;
+  const char *p;
 
   /* Ask for a first packet of static tracepoint marker
      definition.  */
@@ -3762,7 +3707,7 @@ stop_reply_extract_thread (char *stop_re
 {
   if (stop_reply[0] == 'T' && strlen (stop_reply) > 3)
     {
-      char *p;
+      const char *p;
 
       /* Txx r:val ; r:val (...)  */
       p = &stop_reply[3];
@@ -3770,7 +3715,7 @@ stop_reply_extract_thread (char *stop_re
       /* Look for "register" named "thread".  */
       while (*p != '\0')
 	{
-	  char *p1;
+	  const char *p1;
 
 	  p1 = strchr (p, ':');
 	  if (p1 == NULL)
@@ -3829,19 +3774,16 @@ add_current_inferior_and_thread (char *w
 {
   struct remote_state *rs = get_remote_state ();
   int fake_pid_p = 0;
-  ptid_t ptid;
 
   inferior_ptid = null_ptid;
 
   /* Now, if we have thread information, update inferior_ptid.  */
-  ptid = get_current_thread (wait_status);
+  ptid_t curr_ptid = get_current_thread (wait_status);
 
-  if (!ptid_equal (ptid, null_ptid))
+  if (curr_ptid != null_ptid)
     {
       if (!remote_multi_process_p (rs))
 	fake_pid_p = 1;
-
-      inferior_ptid = ptid;
     }
   else
     {
@@ -3849,14 +3791,17 @@ add_current_inferior_and_thread (char *w
 	 (such as kill) won't work.  This variable serves (at least)
 	 double duty as both the pid of the target process (if it has
 	 such), and as a flag indicating that a target is active.  */
-      inferior_ptid = magic_null_ptid;
+      curr_ptid = magic_null_ptid;
       fake_pid_p = 1;
     }
 
-  remote_add_inferior (fake_pid_p, ptid_get_pid (inferior_ptid), -1, 1);
+  remote_add_inferior (fake_pid_p, ptid_get_pid (curr_ptid), -1, 1);
 
-  /* Add the main thread.  */
-  add_thread_silent (inferior_ptid);
+  /* Add the main thread and switch to it.  Don't try reading
+     registers yet, since we haven't fetched the target description
+     yet.  */
+  thread_info *tp = add_thread_silent (curr_ptid);
+  switch_to_thread_no_regs (tp);
 }
 
 /* Print info about a thread that was found already stopped on
@@ -3956,7 +3901,7 @@ process_initial_stop_replies (int from_t
 
       set_executing (event_ptid, 0);
       set_running (event_ptid, 0);
-      thread->priv->vcont_resumed = 0;
+      get_remote_thread_info (thread)->vcont_resumed = 0;
     }
 
   /* "Notice" the new inferiors before anything related to
@@ -4410,7 +4355,6 @@ init_all_packet_configs (void)
 static void
 remote_check_symbols (void)
 {
-  struct remote_state *rs = get_remote_state ();
   char *msg, *reply, *tmp;
   int end;
   long reply_size;
@@ -4633,6 +4577,16 @@ static const struct protocol_feature rem
     PACKET_QCatchSyscalls },
   { "QProgramSignals", PACKET_DISABLE, remote_supported_packet,
     PACKET_QProgramSignals },
+  { "QSetWorkingDir", PACKET_DISABLE, remote_supported_packet,
+    PACKET_QSetWorkingDir },
+  { "QStartupWithShell", PACKET_DISABLE, remote_supported_packet,
+    PACKET_QStartupWithShell },
+  { "QEnvironmentHexEncoded", PACKET_DISABLE, remote_supported_packet,
+    PACKET_QEnvironmentHexEncoded },
+  { "QEnvironmentReset", PACKET_DISABLE, remote_supported_packet,
+    PACKET_QEnvironmentReset },
+  { "QEnvironmentUnset", PACKET_DISABLE, remote_supported_packet,
+    PACKET_QEnvironmentUnset },
   { "QStartNoAckMode", PACKET_DISABLE, remote_supported_packet,
     PACKET_QStartNoAckMode },
   { "multiprocess", PACKET_DISABLE, remote_supported_packet,
@@ -4795,7 +4749,8 @@ remote_query_supported (void)
 
       /* Keep this one last to work around a gdbserver <= 7.10 bug in
 	 the qSupported:xmlRegisters=i386 handling.  */
-      if (remote_support_xml != NULL)
+      if (remote_support_xml != NULL
+	  && packet_support (PACKET_qXfer_features) != PACKET_DISABLE)
 	q = remote_query_supported_append (q, remote_support_xml);
 
       q = reconcat (q, "qSupported:", q, (char *) NULL);
@@ -4921,7 +4876,7 @@ remote_query_supported (void)
      instead.
 
    - The target has been resumed in the foreground
-     (target_terminal_is_ours is false) with a synchronous resume
+     (target_terminal::is_ours is false) with a synchronous resume
      packet, and we're blocked waiting for the stop reply, thus a
      Ctrl-C should be immediately sent to the target.
 
@@ -4952,11 +4907,11 @@ remote_serial_quit_handler (void)
 	    remote_unpush_and_throw ();
 	}
       /* If ^C has already been sent once, offer to disconnect.  */
-      else if (!target_terminal_is_ours () && rs->ctrlc_pending_p)
+      else if (!target_terminal::is_ours () && rs->ctrlc_pending_p)
 	interrupt_query ();
       /* All-stop protocol, and blocked waiting for stop reply.  Send
 	 an interrupt request.  */
-      else if (!target_terminal_is_ours () && rs->waiting_for_stop_reply)
+      else if (!target_terminal::is_ours () && rs->waiting_for_stop_reply)
 	target_interrupt (inferior_ptid);
       else
 	rs->got_ctrlc_during_io = 1;
@@ -5082,9 +5037,6 @@ remote_open_1 (const char *name, int fro
 
   readahead_cache_invalidate ();
 
-  /* Start out by owning the terminal.  */
-  remote_async_terminal_ours_p = 1;
-
   if (target_async_permitted)
     {
       /* FIXME: cagney/1999-09-23: During the initial connection it is
@@ -5573,8 +5525,10 @@ resume_clear_thread_private_info (struct
 {
   if (thread->priv != NULL)
     {
-      thread->priv->stop_reason = TARGET_STOPPED_BY_NO_REASON;
-      thread->priv->watch_data_address = 0;
+      remote_thread_info *priv = get_remote_thread_info (thread);
+
+      priv->stop_reason = TARGET_STOPPED_BY_NO_REASON;
+      priv->watch_data_address = 0;
     }
 }
 
@@ -5754,12 +5708,13 @@ remote_resume (struct target_ops *ops,
      to do vCont action coalescing.  */
   if (target_is_non_stop_p () && execution_direction != EXEC_REVERSE)
     {
-      struct private_thread_info *remote_thr;
+      remote_thread_info *remote_thr;
 
       if (ptid_equal (minus_one_ptid, ptid) || ptid_is_pid (ptid))
-	remote_thr = get_private_info_ptid (inferior_ptid);
+	remote_thr = get_remote_thread_info (inferior_ptid);
       else
-	remote_thr = get_private_info_ptid (ptid);
+	remote_thr = get_remote_thread_info (ptid);
+
       remote_thr->last_resume_step = step;
       remote_thr->last_resume_sig = siggnal;
       return;
@@ -5807,12 +5762,23 @@ static int is_pending_fork_parent_thread
 
 /* Private per-inferior info for target remote processes.  */
 
-struct private_inferior
+struct remote_inferior : public private_inferior
 {
   /* Whether we can send a wildcard vCont for this process.  */
-  int may_wildcard_vcont;
+  bool may_wildcard_vcont = true;
 };
 
+/* Get the remote private inferior data associated to INF.  */
+
+static remote_inferior *
+get_remote_inferior (inferior *inf)
+{
+  if (inf->priv == NULL)
+    inf->priv.reset (new remote_inferior);
+
+  return static_cast<remote_inferior *> (inf->priv.get ());
+}
+
 /* Structure used to track the construction of a vCont packet in the
    outgoing packet buffer.  This is used to send multiple vCont
    packets if we have more actions than would fit a single packet.  */
@@ -5906,7 +5872,6 @@ vcont_builder_push_action (struct vcont_
 static void
 remote_commit_resume (struct target_ops *ops)
 {
-  struct remote_state *rs = get_remote_state ();
   struct inferior *inf;
   struct thread_info *tp;
   int any_process_wildcard;
@@ -5974,9 +5939,9 @@ remote_commit_resume (struct target_ops 
   /* And assume every process is individually wildcard-able too.  */
   ALL_NON_EXITED_INFERIORS (inf)
     {
-      if (inf->priv == NULL)
-	inf->priv = XNEW (struct private_inferior);
-      inf->priv->may_wildcard_vcont = 1;
+      remote_inferior *priv = get_remote_inferior (inf);
+
+      priv->may_wildcard_vcont = true;
     }
 
   /* Check for any pending events (not reported or processed yet) and
@@ -5989,7 +5954,7 @@ remote_commit_resume (struct target_ops 
 	 can't wildcard that process.  */
       if (!tp->executing)
 	{
-	  tp->inf->priv->may_wildcard_vcont = 0;
+	  get_remote_inferior (tp->inf)->may_wildcard_vcont = false;
 
 	  /* And if we can't wildcard a process, we can't wildcard
 	     everything either.  */
@@ -6014,7 +5979,7 @@ remote_commit_resume (struct target_ops 
   /* Threads first.  */
   ALL_NON_EXITED_THREADS (tp)
     {
-      struct private_thread_info *remote_thr = tp->priv;
+      remote_thread_info *remote_thr = get_remote_thread_info (tp);
 
       if (!tp->executing || remote_thr->vcont_resumed)
 	continue;
@@ -6023,7 +5988,7 @@ remote_commit_resume (struct target_ops 
 
       if (!remote_thr->last_resume_step
 	  && remote_thr->last_resume_sig == GDB_SIGNAL_0
-	  && tp->inf->priv->may_wildcard_vcont)
+	  && get_remote_inferior (tp->inf)->may_wildcard_vcont)
 	{
 	  /* We'll send a wildcard resume instead.  */
 	  remote_thr->vcont_resumed = 1;
@@ -6043,7 +6008,7 @@ remote_commit_resume (struct target_ops 
 
   ALL_NON_EXITED_INFERIORS (inf)
     {
-      if (inf->priv->may_wildcard_vcont)
+      if (get_remote_inferior (inf)->may_wildcard_vcont)
 	{
 	  any_process_wildcard = 1;
 	  break;
@@ -6064,7 +6029,7 @@ remote_commit_resume (struct target_ops 
 	{
 	  ALL_NON_EXITED_INFERIORS (inf)
 	    {
-	      if (inf->priv->may_wildcard_vcont)
+	      if (get_remote_inferior (inf)->may_wildcard_vcont)
 		{
 		  vcont_builder_push_action (&vcont_builder,
 					     pid_to_ptid (inf->pid),
@@ -6204,8 +6169,6 @@ remote_stop (struct target_ops *self, pt
 static void
 remote_interrupt (struct target_ops *self, ptid_t ptid)
 {
-  struct remote_state *rs = get_remote_state ();
-
   if (remote_debug)
     fprintf_unfiltered (gdb_stdlog, "remote_interrupt called\n");
 
@@ -6268,15 +6231,6 @@ interrupt_query (void)
 static void
 remote_terminal_inferior (struct target_ops *self)
 {
-  /* FIXME: cagney/1999-09-27: Make calls to target_terminal_*()
-     idempotent.  The event-loop GDB talking to an asynchronous target
-     with a synchronous command calls this function from both
-     event-top.c and infrun.c/infcmd.c.  Once GDB stops trying to
-     transfer the terminal to the target when it shouldn't this guard
-     can go away.  */
-  if (!remote_async_terminal_ours_p)
-    return;
-  remote_async_terminal_ours_p = 0;
   /* NOTE: At this point we could also register our selves as the
      recipient of all input.  Any characters typed could then be
      passed on down to the target.  */
@@ -6285,10 +6239,6 @@ remote_terminal_inferior (struct target_
 static void
 remote_terminal_ours (struct target_ops *self)
 {
-  /* See FIXME in remote_terminal_inferior.  */
-  if (remote_async_terminal_ours_p)
-    return;
-  remote_async_terminal_ours_p = 1;
 }
 
 static void
@@ -6308,12 +6258,6 @@ remote_console_output (char *msg)
   gdb_flush (gdb_stdtarg);
 }
 
-typedef struct cached_reg
-{
-  int num;
-  gdb_byte *data;
-} cached_reg_t;
-
 DEF_VEC_O(cached_reg_t);
 
 typedef struct stop_reply
@@ -6330,6 +6274,9 @@ typedef struct stop_reply
 
   struct target_waitstatus ws;
 
+  /* The architecture associated with the expedited registers.  */
+  gdbarch *arch;
+
   /* Expedited registers.  This makes remote debugging a bit more
      efficient for those targets that provide critical registers as
      part of their normal status mechanism (as another roundtrip to
@@ -6507,7 +6454,7 @@ remove_child_of_pending_fork (QUEUE (sto
   if (event->ws.kind == TARGET_WAITKIND_FORKED
       || event->ws.kind == TARGET_WAITKIND_VFORKED
       || event->ws.kind == TARGET_WAITKIND_THREAD_EXITED)
-    threads_listing_context_remove (&event->ws, context);
+    context->remove_thread (event->ws.value.related_pid);
 
   return 1;
 }
@@ -6533,9 +6480,7 @@ remove_new_fork_children (struct threads
       struct target_waitstatus *ws = thread_pending_fork_status (thread);
 
       if (is_pending_fork_parent (ws, pid, thread->ptid))
-	{
-	  threads_listing_context_remove (ws, context);
-	}
+	context->remove_thread (ws->value.related_pid);
     }
 
   /* Check for any pending fork events (not reported or processed yet)
@@ -6576,7 +6521,7 @@ check_pending_event_prevents_wildcard_vc
      we'd resume this process too.  */
   *may_global_wildcard_vcont = 0;
   if (inf != NULL)
-    inf->priv->may_wildcard_vcont = 0;
+    get_remote_inferior (inf)->may_wildcard_vcont = false;
 
   return 1;
 }
@@ -6804,9 +6749,9 @@ strprefix (const char *p, const char *pe
 static void
 remote_parse_stop_reply (char *buf, struct stop_reply *event)
 {
-  struct remote_arch_state *rsa = get_remote_arch_state ();
+  remote_arch_state *rsa = NULL;
   ULONGEST addr;
-  char *p;
+  const char *p;
   int skipregs = 0;
 
   event->ptid = null_ptid;
@@ -6830,7 +6775,7 @@ remote_parse_stop_reply (char *buf, stru
       p = &buf[3];	/* after Txx */
       while (*p)
 	{
-	  char *p1;
+	  const char *p1;
 	  int fieldsize;
 
 	  p1 = strchr (p, ':');
@@ -6968,7 +6913,7 @@ Packet: '%s'\n"),
 	  else
 	    {
 	      ULONGEST pnum;
-	      char *p_temp;
+	      const char *p_temp;
 
 	      if (skipregs)
 		{
@@ -6984,9 +6929,47 @@ Packet: '%s'\n"),
 		 reason.  */
 	      if (p_temp == p1)
 		{
-		  struct packet_reg *reg = packet_reg_from_pnum (rsa, pnum);
+		  /* If we haven't parsed the event's thread yet, find
+		     it now, in order to find the architecture of the
+		     reported expedited registers.  */
+		  if (event->ptid == null_ptid)
+		    {
+		      const char *thr = strstr (p1 + 1, ";thread:");
+		      if (thr != NULL)
+			event->ptid = read_ptid (thr + strlen (";thread:"),
+						 NULL);
+		      else
+			event->ptid = magic_null_ptid;
+		    }
+
+		  if (rsa == NULL)
+		    {
+		      inferior *inf = (event->ptid == null_ptid
+				       ? NULL
+				       : find_inferior_ptid (event->ptid));
+		      /* If this is the first time we learn anything
+			 about this process, skip the registers
+			 included in this packet, since we don't yet
+			 know which architecture to use to parse them.
+			 We'll determine the architecture later when
+			 we process the stop reply and retrieve the
+			 target description, via
+			 remote_notice_new_inferior ->
+			 post_create_inferior.  */
+		      if (inf == NULL)
+			{
+			  p = strchrnul (p1 + 1, ';');
+			  p++;
+			  continue;
+			}
+
+		      event->arch = inf->gdbarch;
+		      rsa = get_remote_arch_state (event->arch);
+		    }
+
+		  packet_reg *reg
+		    = packet_reg_from_pnum (event->arch, rsa, pnum);
 		  cached_reg_t cached_reg;
-		  struct gdbarch *gdbarch = target_gdbarch ();
 
 		  if (reg == NULL)
 		    error (_("Remote sent bad register number %s: %s\n\
@@ -6995,13 +6978,13 @@ Packet: '%s'\n"),
 
 		  cached_reg.num = reg->regnum;
 		  cached_reg.data = (gdb_byte *)
-		    xmalloc (register_size (gdbarch, reg->regnum));
+		    xmalloc (register_size (event->arch, reg->regnum));
 
 		  p = p1 + 1;
 		  fieldsize = hex2bin (p, cached_reg.data,
-				       register_size (gdbarch, reg->regnum));
+				       register_size (event->arch, reg->regnum));
 		  p += 2 * fieldsize;
-		  if (fieldsize < register_size (gdbarch, reg->regnum))
+		  if (fieldsize < register_size (event->arch, reg->regnum))
 		    warning (_("Remote reply is too short: %s"), buf);
 
 		  VEC_safe_push (cached_reg_t, event->regcache, &cached_reg);
@@ -7038,7 +7021,7 @@ Packet: '%s'\n"),
       break;
     case 'w':		/* Thread exited.  */
       {
-	char *p;
+	const char *p;
 	ULONGEST value;
 
 	event->ws.kind = TARGET_WAITKIND_THREAD_EXITED;
@@ -7052,7 +7035,7 @@ Packet: '%s'\n"),
     case 'W':		/* Target exited.  */
     case 'X':
       {
-	char *p;
+	const char *p;
 	int pid;
 	ULONGEST value;
 
@@ -7211,13 +7194,11 @@ process_stop_reply (struct stop_reply *s
       && status->kind != TARGET_WAITKIND_SIGNALLED
       && status->kind != TARGET_WAITKIND_NO_RESUMED)
     {
-      struct private_thread_info *remote_thr;
-
       /* Expedited registers.  */
       if (stop_reply->regcache)
 	{
 	  struct regcache *regcache
-	    = get_thread_arch_regcache (ptid, target_gdbarch ());
+	    = get_thread_arch_regcache (ptid, stop_reply->arch);
 	  cached_reg_t *reg;
 	  int ix;
 
@@ -7233,7 +7214,7 @@ process_stop_reply (struct stop_reply *s
 	}
 
       remote_notice_new_inferior (ptid, 0);
-      remote_thr = get_private_info_ptid (ptid);
+      remote_thread_info *remote_thr = get_remote_thread_info (ptid);
       remote_thr->core = stop_reply->core;
       remote_thr->stop_reason = stop_reply->stop_reason;
       remote_thr->watch_data_address = stop_reply->watch_data_address;
@@ -7406,12 +7387,12 @@ remote_wait_as (ptid_t ptid, struct targ
 	{
 	  /* Zero length reply means that we tried 'S' or 'C' and the
 	     remote system doesn't support it.  */
-	  target_terminal_ours_for_output ();
+	  target_terminal::ours_for_output ();
 	  printf_filtered
 	    ("Can't send signals to this remote system.  %s not sent.\n",
 	     gdb_signal_to_name (rs->last_sent_signal));
 	  rs->last_sent_signal = GDB_SIGNAL_0;
-	  target_terminal_inferior ();
+	  target_terminal::inferior ();
 
 	  strcpy (buf, rs->last_sent_step ? "s" : "c");
 	  putpkt (buf);
@@ -7479,7 +7460,7 @@ remote_wait (struct target_ops *ops,
 static int
 fetch_register_using_p (struct regcache *regcache, struct packet_reg *reg)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct remote_state *rs = get_remote_state ();
   char *buf, *p;
   gdb_byte *regp = (gdb_byte *) alloca (register_size (gdbarch, reg->regnum));
@@ -7508,7 +7489,7 @@ fetch_register_using_p (struct regcache 
       return 0;
     case PACKET_ERROR:
       error (_("Could not fetch register \"%s\"; remote failure reply '%s'"),
-	     gdbarch_register_name (get_regcache_arch (regcache), 
+	     gdbarch_register_name (regcache->arch (), 
 				    reg->regnum), 
 	     buf);
     }
@@ -7572,9 +7553,9 @@ send_g_packet (void)
 static void
 process_g_packet (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct remote_state *rs = get_remote_state ();
-  struct remote_arch_state *rsa = get_remote_arch_state ();
+  remote_arch_state *rsa = get_remote_arch_state (gdbarch);
   int i, buf_len;
   char *p;
   char *regs;
@@ -7708,7 +7689,8 @@ static void
 remote_fetch_registers (struct target_ops *ops,
 			struct regcache *regcache, int regnum)
 {
-  struct remote_arch_state *rsa = get_remote_arch_state ();
+  struct gdbarch *gdbarch = regcache->arch ();
+  remote_arch_state *rsa = get_remote_arch_state (gdbarch);
   int i;
 
   set_remote_traceframe ();
@@ -7716,7 +7698,7 @@ remote_fetch_registers (struct target_op
 
   if (regnum >= 0)
     {
-      struct packet_reg *reg = packet_reg_from_regnum (rsa, regnum);
+      packet_reg *reg = packet_reg_from_regnum (gdbarch, rsa, regnum);
 
       gdb_assert (reg != NULL);
 
@@ -7742,7 +7724,7 @@ remote_fetch_registers (struct target_op
 
   fetch_registers_using_g (regcache);
 
-  for (i = 0; i < gdbarch_num_regs (get_regcache_arch (regcache)); i++)
+  for (i = 0; i < gdbarch_num_regs (gdbarch); i++)
     if (!rsa->regs[i].in_g_packet)
       if (!fetch_register_using_p (regcache, &rsa->regs[i]))
 	{
@@ -7758,7 +7740,7 @@ remote_fetch_registers (struct target_op
 static void
 remote_prepare_to_store (struct target_ops *self, struct regcache *regcache)
 {
-  struct remote_arch_state *rsa = get_remote_arch_state ();
+  remote_arch_state *rsa = get_remote_arch_state (regcache->arch ());
   int i;
 
   /* Make sure the entire registers array is valid.  */
@@ -7767,7 +7749,7 @@ remote_prepare_to_store (struct target_o
     case PACKET_DISABLE:
     case PACKET_SUPPORT_UNKNOWN:
       /* Make sure all the necessary registers are cached.  */
-      for (i = 0; i < gdbarch_num_regs (get_regcache_arch (regcache)); i++)
+      for (i = 0; i < gdbarch_num_regs (regcache->arch ()); i++)
 	if (rsa->regs[i].in_g_packet)
 	  regcache_raw_update (regcache, rsa->regs[i].regnum);
       break;
@@ -7783,7 +7765,7 @@ static int
 store_register_using_P (const struct regcache *regcache, 
 			struct packet_reg *reg)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct remote_state *rs = get_remote_state ();
   /* Try storing a single register.  */
   char *buf = rs->buf;
@@ -7824,7 +7806,7 @@ static void
 store_registers_using_G (const struct regcache *regcache)
 {
   struct remote_state *rs = get_remote_state ();
-  struct remote_arch_state *rsa = get_remote_arch_state ();
+  remote_arch_state *rsa = get_remote_arch_state (regcache->arch ());
   gdb_byte *regs;
   char *p;
 
@@ -7835,7 +7817,7 @@ store_registers_using_G (const struct re
 
     regs = (gdb_byte *) alloca (rsa->sizeof_g_packet);
     memset (regs, 0, rsa->sizeof_g_packet);
-    for (i = 0; i < gdbarch_num_regs (get_regcache_arch (regcache)); i++)
+    for (i = 0; i < gdbarch_num_regs (regcache->arch ()); i++)
       {
 	struct packet_reg *r = &rsa->regs[i];
 
@@ -7848,8 +7830,6 @@ store_registers_using_G (const struct re
      each byte encoded as two hex characters.  */
   p = rs->buf;
   *p++ = 'G';
-  /* remote_prepare_to_store insures that rsa->sizeof_g_packet gets
-     updated.  */
   bin2hex (regs, p, rsa->sizeof_g_packet);
   putpkt (rs->buf);
   getpkt (&rs->buf, &rs->buf_size, 0);
@@ -7865,7 +7845,8 @@ static void
 remote_store_registers (struct target_ops *ops,
 			struct regcache *regcache, int regnum)
 {
-  struct remote_arch_state *rsa = get_remote_arch_state ();
+  struct gdbarch *gdbarch = regcache->arch ();
+  remote_arch_state *rsa = get_remote_arch_state (gdbarch);
   int i;
 
   set_remote_traceframe ();
@@ -7873,7 +7854,7 @@ remote_store_registers (struct target_op
 
   if (regnum >= 0)
     {
-      struct packet_reg *reg = packet_reg_from_regnum (rsa, regnum);
+      packet_reg *reg = packet_reg_from_regnum (gdbarch, rsa, regnum);
 
       gdb_assert (reg != NULL);
 
@@ -7897,7 +7878,7 @@ remote_store_registers (struct target_op
 
   store_registers_using_G (regcache);
 
-  for (i = 0; i < gdbarch_num_regs (get_regcache_arch (regcache)); i++)
+  for (i = 0; i < gdbarch_num_regs (gdbarch); i++)
     if (!rsa->regs[i].in_g_packet)
       if (!store_register_using_P (regcache, &rsa->regs[i]))
 	/* See above for why we do not issue an error here.  */
@@ -8223,7 +8204,7 @@ remote_write_bytes_aux (const char *head
   /* Return UNITS_WRITTEN, not TODO_UNITS, in case escape chars caused us to
      send fewer units than we'd planned.  */
   *xfered_len_units = (ULONGEST) units_written;
-  return TARGET_XFER_OK;
+  return (*xfered_len_units != 0) ? TARGET_XFER_OK : TARGET_XFER_EOF;
 }
 
 /* Write memory data directly to the remote machine.
@@ -8317,7 +8298,7 @@ remote_read_bytes_1 (CORE_ADDR memaddr, 
   decoded_bytes = hex2bin (p, myaddr, todo_units * unit_size);
   /* Return what we have.  Let higher layers handle partial reads.  */
   *xfered_len_units = (ULONGEST) (decoded_bytes / unit_size);
-  return TARGET_XFER_OK;
+  return (*xfered_len_units != 0) ? TARGET_XFER_OK : TARGET_XFER_EOF;
 }
 
 /* Using the set of read-only target sections of remote, read live
@@ -8388,7 +8369,7 @@ remote_read_bytes (struct target_ops *op
 
   if (get_traceframe_number () != -1)
     {
-      VEC(mem_range_s) *available;
+      std::vector<mem_range> available;
 
       /* If we fail to get the set of available memory, then the
 	 target does not support querying traceframe info, and so we
@@ -8396,27 +8377,20 @@ remote_read_bytes (struct target_ops *op
 	 target implements the old QTro packet then).  */
       if (traceframe_available_memory (&available, memaddr, len))
 	{
-	  struct cleanup *old_chain;
-
-	  old_chain = make_cleanup (VEC_cleanup(mem_range_s), &available);
-
-	  if (VEC_empty (mem_range_s, available)
-	      || VEC_index (mem_range_s, available, 0)->start != memaddr)
+	  if (available.empty () || available[0].start != memaddr)
 	    {
 	      enum target_xfer_status res;
 
 	      /* Don't read into the traceframe's available
 		 memory.  */
-	      if (!VEC_empty (mem_range_s, available))
+	      if (!available.empty ())
 		{
 		  LONGEST oldlen = len;
 
-		  len = VEC_index (mem_range_s, available, 0)->start - memaddr;
+		  len = available[0].start - memaddr;
 		  gdb_assert (len <= oldlen);
 		}
 
-	      do_cleanups (old_chain);
-
 	      /* This goes through the topmost target again.  */
 	      res = remote_xfer_live_readonly_partial (ops, myaddr, memaddr,
 						       len, unit_size, xfered_len);
@@ -8427,7 +8401,8 @@ remote_read_bytes (struct target_ops *op
 		  /* No use trying further, we know some memory starting
 		     at MEMADDR isn't available.  */
 		  *xfered_len = len;
-		  return TARGET_XFER_UNAVAILABLE;
+		  return (*xfered_len != 0) ?
+		    TARGET_XFER_UNAVAILABLE : TARGET_XFER_EOF;
 		}
 	    }
 
@@ -8435,9 +8410,7 @@ remote_read_bytes (struct target_ops *op
 	     case the target implements the deprecated QTro packet to
 	     cater for older GDBs (the target's knowledge of read-only
 	     sections may be outdated by now).  */
-	  len = VEC_index (mem_range_s, available, 0)->length;
-
-	  do_cleanups (old_chain);
+	  len = available[0].length;
 	}
     }
 
@@ -8475,14 +8448,6 @@ remote_send_printf (const char *format, 
   return packet_check_result (rs->buf);
 }
 
-static void
-restore_remote_timeout (void *p)
-{
-  int value = *(int *)p;
-
-  remote_timeout = value;
-}
-
 /* Flash writing can take quite some time.  We'll set
    effectively infinite timeout for flash operations.
    In future, we'll need to decide on a better approach.  */
@@ -8493,12 +8458,9 @@ remote_flash_erase (struct target_ops *o
                     ULONGEST address, LONGEST length)
 {
   int addr_size = gdbarch_addr_bit (target_gdbarch ()) / 8;
-  int saved_remote_timeout = remote_timeout;
   enum packet_result ret;
-  struct cleanup *back_to = make_cleanup (restore_remote_timeout,
-                                          &saved_remote_timeout);
-
-  remote_timeout = remote_flash_timeout;
+  scoped_restore restore_timeout
+    = make_scoped_restore (&remote_timeout, remote_flash_timeout);
 
   ret = remote_send_printf ("vFlashErase:%s,%s",
 			    phex (address, addr_size),
@@ -8512,8 +8474,6 @@ remote_flash_erase (struct target_ops *o
     default:
       break;
     }
-
-  do_cleanups (back_to);
 }
 
 static enum target_xfer_status
@@ -8521,30 +8481,21 @@ remote_flash_write (struct target_ops *o
 		    ULONGEST length, ULONGEST *xfered_len,
 		    const gdb_byte *data)
 {
-  int saved_remote_timeout = remote_timeout;
-  enum target_xfer_status ret;
-  struct cleanup *back_to = make_cleanup (restore_remote_timeout,
-					  &saved_remote_timeout);
-
-  remote_timeout = remote_flash_timeout;
-  ret = remote_write_bytes_aux ("vFlashWrite:", address, data, length, 1,
-				xfered_len,'X', 0);
-  do_cleanups (back_to);
-
-  return ret;
+  scoped_restore restore_timeout
+    = make_scoped_restore (&remote_timeout, remote_flash_timeout);
+  return remote_write_bytes_aux ("vFlashWrite:", address, data, length, 1,
+				 xfered_len,'X', 0);
 }
 
 static void
 remote_flash_done (struct target_ops *ops)
 {
-  int saved_remote_timeout = remote_timeout;
   int ret;
-  struct cleanup *back_to = make_cleanup (restore_remote_timeout,
-                                          &saved_remote_timeout);
 
-  remote_timeout = remote_flash_timeout;
+  scoped_restore restore_timeout
+    = make_scoped_restore (&remote_timeout, remote_flash_timeout);
+
   ret = remote_send_printf ("vFlashDone");
-  do_cleanups (back_to);
 
   switch (ret)
     {
@@ -8592,18 +8543,18 @@ readchar (int timeout)
 {
   int ch;
   struct remote_state *rs = get_remote_state ();
-  struct cleanup *old_chain;
 
-  old_chain = make_cleanup_override_quit_handler (remote_serial_quit_handler);
-
-  rs->got_ctrlc_during_io = 0;
+  {
+    scoped_restore restore_quit
+      = make_scoped_restore (&quit_handler, remote_serial_quit_handler);
 
-  ch = serial_readchar (rs->remote_desc, timeout);
+    rs->got_ctrlc_during_io = 0;
 
-  if (rs->got_ctrlc_during_io)
-    set_quit_flag ();
+    ch = serial_readchar (rs->remote_desc, timeout);
 
-  do_cleanups (old_chain);
+    if (rs->got_ctrlc_during_io)
+      set_quit_flag ();
+  }
 
   if (ch >= 0)
     return ch;
@@ -8634,9 +8585,9 @@ static void
 remote_serial_write (const char *str, int len)
 {
   struct remote_state *rs = get_remote_state ();
-  struct cleanup *old_chain;
 
-  old_chain = make_cleanup_override_quit_handler (remote_serial_quit_handler);
+  scoped_restore restore_quit
+    = make_scoped_restore (&quit_handler, remote_serial_quit_handler);
 
   rs->got_ctrlc_during_io = 0;
 
@@ -8648,8 +8599,6 @@ remote_serial_write (const char *str, in
 
   if (rs->got_ctrlc_during_io)
     set_quit_flag ();
-
-  do_cleanups (old_chain);
 }
 
 /* Send the command in *BUF to the remote machine, and read the reply
@@ -8709,8 +8658,8 @@ putpkt_binary (const char *buf, int cnt)
   struct remote_state *rs = get_remote_state ();
   int i;
   unsigned char csum = 0;
-  char *buf2 = (char *) xmalloc (cnt + 6);
-  struct cleanup *old_chain = make_cleanup (xfree, buf2);
+  gdb::def_vector<char> data (cnt + 6);
+  char *buf2 = data.data ();
 
   int ch;
   int tcount = 0;
@@ -8813,7 +8762,6 @@ putpkt_binary (const char *buf, int cnt)
 	    case '+':
 	      if (remote_debug)
 		fprintf_unfiltered (gdb_stdlog, "Ack\n");
-	      do_cleanups (old_chain);
 	      return 1;
 	    case '-':
 	      if (remote_debug)
@@ -8822,10 +8770,7 @@ putpkt_binary (const char *buf, int cnt)
 	    case SERIAL_TIMEOUT:
 	      tcount++;
 	      if (tcount > 3)
-		{
-		  do_cleanups (old_chain);
-		  return 0;
-		}
+		return 0;
 	      break;		/* Retransmit buffer.  */
 	    case '$':
 	      {
@@ -8909,7 +8854,6 @@ putpkt_binary (const char *buf, int cnt)
 #endif
     }
 
-  do_cleanups (old_chain);
   return 0;
 }
 
@@ -9519,7 +9463,7 @@ extended_remote_disable_randomization (i
   xsnprintf (rs->buf, get_remote_packet_size (), "QDisableRandomization:%x",
 	     val);
   putpkt (rs->buf);
-  reply = remote_get_noisy_reply (&target_buf, &target_buf_size);
+  reply = remote_get_noisy_reply ();
   if (*reply == '\0')
     error (_("Target does not support QDisableRandomization."));
   if (strcmp (reply, "OK") != 0)
@@ -9548,12 +9492,9 @@ extended_remote_run (const std::string &
 
   if (!args.empty ())
     {
-      struct cleanup *back_to;
       int i;
-      char **argv;
 
-      argv = gdb_buildargv (args.c_str ());
-      back_to = make_cleanup_freeargv (argv);
+      gdb_argv argv (args.c_str ());
       for (i = 0; argv[i] != NULL; i++)
 	{
 	  if (strlen (argv[i]) * 2 + 1 + len >= get_remote_packet_size ())
@@ -9562,7 +9503,6 @@ extended_remote_run (const std::string &
 	  len += 2 * bin2hex ((gdb_byte *) argv[i], rs->buf + len,
 			      strlen (argv[i]));
 	}
-      do_cleanups (back_to);
     }
 
   rs->buf[len++] = '\0';
@@ -9589,6 +9529,96 @@ extended_remote_run (const std::string &
     }
 }
 
+/* Helper function to send set/unset environment packets.  ACTION is
+   either "set" or "unset".  PACKET is either "QEnvironmentHexEncoded"
+   or "QEnvironmentUnsetVariable".  VALUE is the variable to be
+   sent.  */
+
+static void
+send_environment_packet (struct remote_state *rs,
+			 const char *action,
+			 const char *packet,
+			 const char *value)
+{
+  /* Convert the environment variable to an hex string, which
+     is the best format to be transmitted over the wire.  */
+  std::string encoded_value = bin2hex ((const gdb_byte *) value,
+					 strlen (value));
+
+  xsnprintf (rs->buf, get_remote_packet_size (),
+	     "%s:%s", packet, encoded_value.c_str ());
+
+  putpkt (rs->buf);
+  getpkt (&rs->buf, &rs->buf_size, 0);
+  if (strcmp (rs->buf, "OK") != 0)
+    warning (_("Unable to %s environment variable '%s' on remote."),
+	     action, value);
+}
+
+/* Helper function to handle the QEnvironment* packets.  */
+
+static void
+extended_remote_environment_support (struct remote_state *rs)
+{
+  if (packet_support (PACKET_QEnvironmentReset) != PACKET_DISABLE)
+    {
+      putpkt ("QEnvironmentReset");
+      getpkt (&rs->buf, &rs->buf_size, 0);
+      if (strcmp (rs->buf, "OK") != 0)
+	warning (_("Unable to reset environment on remote."));
+    }
+
+  gdb_environ *e = &current_inferior ()->environment;
+
+  if (packet_support (PACKET_QEnvironmentHexEncoded) != PACKET_DISABLE)
+    for (const std::string &el : e->user_set_env ())
+      send_environment_packet (rs, "set", "QEnvironmentHexEncoded",
+			       el.c_str ());
+
+  if (packet_support (PACKET_QEnvironmentUnset) != PACKET_DISABLE)
+    for (const std::string &el : e->user_unset_env ())
+      send_environment_packet (rs, "unset", "QEnvironmentUnset", el.c_str ());
+}
+
+/* Helper function to set the current working directory for the
+   inferior in the remote target.  */
+
+static void
+extended_remote_set_inferior_cwd (struct remote_state *rs)
+{
+  if (packet_support (PACKET_QSetWorkingDir) != PACKET_DISABLE)
+    {
+      const char *inferior_cwd = get_inferior_cwd ();
+
+      if (inferior_cwd != NULL)
+	{
+	  std::string hexpath = bin2hex ((const gdb_byte *) inferior_cwd,
+					 strlen (inferior_cwd));
+
+	  xsnprintf (rs->buf, get_remote_packet_size (),
+		     "QSetWorkingDir:%s", hexpath.c_str ());
+	}
+      else
+	{
+	  /* An empty inferior_cwd means that the user wants us to
+	     reset the remote server's inferior's cwd.  */
+	  xsnprintf (rs->buf, get_remote_packet_size (),
+		     "QSetWorkingDir:");
+	}
+
+      putpkt (rs->buf);
+      getpkt (&rs->buf, &rs->buf_size, 0);
+      if (packet_ok (rs->buf,
+		     &remote_protocol_packets[PACKET_QSetWorkingDir])
+	  != PACKET_OK)
+	error (_("\
+Remote replied unexpectedly while setting the inferior's working\n\
+directory: %s"),
+	       rs->buf);
+
+    }
+}
+
 /* In the extended protocol we want to be able to do things like
    "run" and have them basically work as expected.  So we need
    a special create_inferior function.  We support changing the
@@ -9615,6 +9645,24 @@ extended_remote_create_inferior (struct 
   if (extended_remote_supports_disable_randomization (ops))
     extended_remote_disable_randomization (disable_randomization);
 
+  /* If startup-with-shell is on, we inform gdbserver to start the
+     remote inferior using a shell.  */
+  if (packet_support (PACKET_QStartupWithShell) != PACKET_DISABLE)
+    {
+      xsnprintf (rs->buf, get_remote_packet_size (),
+		 "QStartupWithShell:%d", startup_with_shell ? 1 : 0);
+      putpkt (rs->buf);
+      getpkt (&rs->buf, &rs->buf_size, 0);
+      if (strcmp (rs->buf, "OK") != 0)
+	error (_("\
+Remote replied unexpectedly while setting startup-with-shell: %s"),
+	       rs->buf);
+    }
+
+  extended_remote_environment_support (rs);
+
+  extended_remote_set_inferior_cwd (rs);
+
   /* Now restart the remote server.  */
   run_worked = extended_remote_run (args) != -1;
   if (!run_worked)
@@ -9720,7 +9768,6 @@ remote_insert_breakpoint (struct target_
       CORE_ADDR addr = bp_tgt->reqstd_address;
       struct remote_state *rs;
       char *p, *endbuf;
-      int bpsize;
 
       /* Make sure the remote is pointing at the right process, if
 	 necessary.  */
@@ -9963,7 +10010,8 @@ remote_stopped_by_sw_breakpoint (struct 
   struct thread_info *thread = inferior_thread ();
 
   return (thread->priv != NULL
-	  && thread->priv->stop_reason == TARGET_STOPPED_BY_SW_BREAKPOINT);
+	  && (get_remote_thread_info (thread)->stop_reason
+	      == TARGET_STOPPED_BY_SW_BREAKPOINT));
 }
 
 /* The to_supports_stopped_by_sw_breakpoint method of target
@@ -9983,7 +10031,8 @@ remote_stopped_by_hw_breakpoint (struct 
   struct thread_info *thread = inferior_thread ();
 
   return (thread->priv != NULL
-	  && thread->priv->stop_reason == TARGET_STOPPED_BY_HW_BREAKPOINT);
+	  && (get_remote_thread_info (thread)->stop_reason
+	      == TARGET_STOPPED_BY_HW_BREAKPOINT));
 }
 
 /* The to_supports_stopped_by_hw_breakpoint method of target
@@ -10001,7 +10050,8 @@ remote_stopped_by_watchpoint (struct tar
   struct thread_info *thread = inferior_thread ();
 
   return (thread->priv != NULL
-	  && thread->priv->stop_reason == TARGET_STOPPED_BY_WATCHPOINT);
+	  && (get_remote_thread_info (thread)->stop_reason
+	      == TARGET_STOPPED_BY_WATCHPOINT));
 }
 
 static int
@@ -10010,9 +10060,10 @@ remote_stopped_data_address (struct targ
   struct thread_info *thread = inferior_thread ();
 
   if (thread->priv != NULL
-      && thread->priv->stop_reason == TARGET_STOPPED_BY_WATCHPOINT)
+      && (get_remote_thread_info (thread)->stop_reason
+	  == TARGET_STOPPED_BY_WATCHPOINT))
     {
-      *addr_p = thread->priv->watch_data_address;
+      *addr_p = get_remote_thread_info (thread)->watch_data_address;
       return 1;
     }
 
@@ -10171,11 +10222,9 @@ remote_verify_memory (struct target_ops 
    Useful for verifying the image on the target against the exec file.  */
 
 static void
-compare_sections_command (char *args, int from_tty)
+compare_sections_command (const char *args, int from_tty)
 {
   asection *s;
-  struct cleanup *old_chain;
-  gdb_byte *sectdata;
   const char *sectname;
   bfd_size_type size;
   bfd_vma lma;
@@ -10215,11 +10264,10 @@ compare_sections_command (char *args, in
       matched = 1;		/* Do this section.  */
       lma = s->lma;
 
-      sectdata = (gdb_byte *) xmalloc (size);
-      old_chain = make_cleanup (xfree, sectdata);
-      bfd_get_section_contents (exec_bfd, s, sectdata, 0, size);
+      gdb::byte_vector sectdata (size);
+      bfd_get_section_contents (exec_bfd, s, sectdata.data (), 0, size);
 
-      res = target_verify_memory (sectdata, lma, size);
+      res = target_verify_memory (sectdata.data (), lma, size);
 
       if (res == -1)
 	error (_("target memory fault, section %s, range %s -- %s"), sectname,
@@ -10236,8 +10284,6 @@ compare_sections_command (char *args, in
 	  printf_filtered ("MIS-MATCHED!\n");
 	  mismatched++;
 	}
-
-      do_cleanups (old_chain);
     }
   if (mismatched > 0)
     warning (_("One or more sections of the target image does not match\n\
@@ -10261,7 +10307,7 @@ remote_write_qxfer (struct target_ops *o
   struct remote_state *rs = get_remote_state ();
   int max_size = get_memory_write_packet_size (); 
 
-  if (packet->support == PACKET_DISABLE)
+  if (packet_config_support (packet) == PACKET_DISABLE)
     return TARGET_XFER_E_IO;
 
   /* Insert header.  */
@@ -10283,7 +10329,7 @@ remote_write_qxfer (struct target_ops *o
   unpack_varlen_hex (rs->buf, &n);
 
   *xfered_len = n;
-  return TARGET_XFER_OK;
+  return (*xfered_len != 0) ? TARGET_XFER_OK : TARGET_XFER_EOF;
 }
 
 /* Read OBJECT_NAME/ANNEX from the remote target using a qXfer packet.
@@ -10303,7 +10349,7 @@ remote_read_qxfer (struct target_ops *op
   struct remote_state *rs = get_remote_state ();
   LONGEST i, n, packet_len;
 
-  if (packet->support == PACKET_DISABLE)
+  if (packet_config_support (packet) == PACKET_DISABLE)
     return TARGET_XFER_E_IO;
 
   /* Check whether we've cached an end-of-object packet that matches
@@ -10584,7 +10630,7 @@ remote_xfer_partial (struct target_ops *
   strcpy ((char *) readbuf, rs->buf);
 
   *xfered_len = strlen ((char *) readbuf);
-  return TARGET_XFER_OK;
+  return (*xfered_len != 0) ? TARGET_XFER_OK : TARGET_XFER_EOF;
 }
 
 /* Implementation of to_get_memory_xfer_limit.  */
@@ -10615,9 +10661,10 @@ remote_search_memory (struct target_ops*
   int found;
   ULONGEST found_addr;
 
-  /* Don't go to the target if we don't have to.
-     This is done before checking packet->support to avoid the possibility that
-     a success for this edge case means the facility works in general.  */
+  /* Don't go to the target if we don't have to.  This is done before
+     checking packet_config_support to avoid the possibility that a
+     success for this edge case means the facility works in
+     general.  */
   if (pattern_len > search_space_len)
     return 0;
   if (pattern_len == 0)
@@ -10662,7 +10709,7 @@ remote_search_memory (struct target_ops*
     {
       /* The request may not have worked because the command is not
 	 supported.  If so, fall back to the simple way.  */
-      if (packet->support == PACKET_DISABLE)
+      if (packet_config_support (packet) == PACKET_DISABLE)
 	{
 	  return simple_search_memory (ops, start_addr, search_space_len,
 				       pattern, pattern_len, found_addrp);
@@ -10756,26 +10803,21 @@ remote_rcmd (struct target_ops *self, co
     }
 }
 
-static VEC(mem_region_s) *
+static std::vector<mem_region>
 remote_memory_map (struct target_ops *ops)
 {
-  VEC(mem_region_s) *result = NULL;
-  char *text = target_read_stralloc (&current_target,
-				     TARGET_OBJECT_MEMORY_MAP, NULL);
+  std::vector<mem_region> result;
+  gdb::unique_xmalloc_ptr<char> text
+    = target_read_stralloc (&current_target, TARGET_OBJECT_MEMORY_MAP, NULL);
 
   if (text)
-    {
-      struct cleanup *back_to = make_cleanup (xfree, text);
-
-      result = parse_memory_map (text);
-      do_cleanups (back_to);
-    }
+    result = parse_memory_map (text.get ());
 
   return result;
 }
 
 static void
-packet_command (char *args, int from_tty)
+packet_command (const char *args, int from_tty)
 {
   struct remote_state *rs = get_remote_state ();
 
@@ -10820,7 +10862,7 @@ static void init_remote_threadtests (voi
 #define SAMPLE_THREAD  0x05060708	/* Truncated 64 bit threadid.  */
 
 static void
-threadset_test_cmd (char *cmd, int tty)
+threadset_test_cmd (const char *cmd, int tty)
 {
   int sample_thread = SAMPLE_THREAD;
 
@@ -10830,7 +10872,7 @@ threadset_test_cmd (char *cmd, int tty)
 
 
 static void
-threadalive_test (char *cmd, int tty)
+threadalive_test (const char *cmd, int tty)
 {
   int sample_thread = SAMPLE_THREAD;
   int pid = ptid_get_pid (inferior_ptid);
@@ -10855,7 +10897,7 @@ output_threadid (char *title, threadref 
 }
 
 static void
-threadlist_test_cmd (char *cmd, int tty)
+threadlist_test_cmd (const char *cmd, int tty)
 {
   int startflag = 1;
   threadref nextthread;
@@ -10900,7 +10942,7 @@ get_and_display_threadinfo (threadref *r
 }
 
 static void
-threadinfo_test_cmd (char *cmd, int tty)
+threadinfo_test_cmd (const char *cmd, int tty)
 {
   int athread = SAMPLE_THREAD;
   threadref thread;
@@ -10920,7 +10962,7 @@ thread_display_step (threadref *ref, voi
 }
 
 static void
-threadlist_update_test_cmd (char *cmd, int tty)
+threadlist_update_test_cmd (const char *cmd, int tty)
 {
   printf_filtered ("Remote Threadlist update test\n");
   remote_threadlist_iterator (thread_display_step, 0, CRAZY_MAX_THREADS);
@@ -11894,7 +11936,6 @@ remote_file_put (const char *local_file,
 {
   struct cleanup *back_to, *close_cleanup;
   int retcode, fd, remote_errno, bytes, io_size;
-  FILE *file;
   gdb_byte *buffer;
   int bytes_in_buffer;
   int saw_eof;
@@ -11904,10 +11945,9 @@ remote_file_put (const char *local_file,
   if (!rs->remote_desc)
     error (_("command can only be used with remote target"));
 
-  file = gdb_fopen_cloexec (local_file, "rb");
+  gdb_file_up file = gdb_fopen_cloexec (local_file, "rb");
   if (file == NULL)
     perror_with_name (local_file);
-  back_to = make_cleanup_fclose (file);
 
   fd = remote_hostio_open (find_target_at (process_stratum), NULL,
 			   remote_file, (FILEIO_O_WRONLY | FILEIO_O_CREAT
@@ -11920,7 +11960,7 @@ remote_file_put (const char *local_file,
      remote packet limit, so we'll transfer slightly fewer.  */
   io_size = get_remote_packet_size ();
   buffer = (gdb_byte *) xmalloc (io_size);
-  make_cleanup (xfree, buffer);
+  back_to = make_cleanup (xfree, buffer);
 
   close_cleanup = make_cleanup (remote_hostio_close_cleanup, &fd);
 
@@ -11933,10 +11973,10 @@ remote_file_put (const char *local_file,
 	{
 	  bytes = fread (buffer + bytes_in_buffer, 1,
 			 io_size - bytes_in_buffer,
-			 file);
+			 file.get ());
 	  if (bytes == 0)
 	    {
-	      if (ferror (file))
+	      if (ferror (file.get ()))
 		error (_("Error reading %s."), local_file);
 	      else
 		{
@@ -11987,7 +12027,6 @@ remote_file_get (const char *remote_file
 {
   struct cleanup *back_to, *close_cleanup;
   int fd, remote_errno, bytes, io_size;
-  FILE *file;
   gdb_byte *buffer;
   ULONGEST offset;
   struct remote_state *rs = get_remote_state ();
@@ -12001,16 +12040,15 @@ remote_file_get (const char *remote_file
   if (fd == -1)
     remote_hostio_error (remote_errno);
 
-  file = gdb_fopen_cloexec (local_file, "wb");
+  gdb_file_up file = gdb_fopen_cloexec (local_file, "wb");
   if (file == NULL)
     perror_with_name (local_file);
-  back_to = make_cleanup_fclose (file);
 
   /* Send up to this many bytes at once.  They won't all fit in the
      remote packet limit, so we'll transfer slightly fewer.  */
   io_size = get_remote_packet_size ();
   buffer = (gdb_byte *) xmalloc (io_size);
-  make_cleanup (xfree, buffer);
+  back_to = make_cleanup (xfree, buffer);
 
   close_cleanup = make_cleanup (remote_hostio_close_cleanup, &fd);
 
@@ -12027,7 +12065,7 @@ remote_file_get (const char *remote_file
 
       offset += bytes;
 
-      bytes = fwrite (buffer, 1, bytes, file);
+      bytes = fwrite (buffer, 1, bytes, file.get ());
       if (bytes == 0)
 	perror_with_name (local_file);
     }
@@ -12060,64 +12098,46 @@ remote_file_delete (const char *remote_f
 }
 
 static void
-remote_put_command (char *args, int from_tty)
+remote_put_command (const char *args, int from_tty)
 {
-  struct cleanup *back_to;
-  char **argv;
-
   if (args == NULL)
     error_no_arg (_("file to put"));
 
-  argv = gdb_buildargv (args);
-  back_to = make_cleanup_freeargv (argv);
+  gdb_argv argv (args);
   if (argv[0] == NULL || argv[1] == NULL || argv[2] != NULL)
     error (_("Invalid parameters to remote put"));
 
   remote_file_put (argv[0], argv[1], from_tty);
-
-  do_cleanups (back_to);
 }
 
 static void
-remote_get_command (char *args, int from_tty)
+remote_get_command (const char *args, int from_tty)
 {
-  struct cleanup *back_to;
-  char **argv;
-
   if (args == NULL)
     error_no_arg (_("file to get"));
 
-  argv = gdb_buildargv (args);
-  back_to = make_cleanup_freeargv (argv);
+  gdb_argv argv (args);
   if (argv[0] == NULL || argv[1] == NULL || argv[2] != NULL)
     error (_("Invalid parameters to remote get"));
 
   remote_file_get (argv[0], argv[1], from_tty);
-
-  do_cleanups (back_to);
 }
 
 static void
-remote_delete_command (char *args, int from_tty)
+remote_delete_command (const char *args, int from_tty)
 {
-  struct cleanup *back_to;
-  char **argv;
-
   if (args == NULL)
     error_no_arg (_("file to delete"));
 
-  argv = gdb_buildargv (args);
-  back_to = make_cleanup_freeargv (argv);
+  gdb_argv argv (args);
   if (argv[0] == NULL || argv[1] != NULL)
     error (_("Invalid parameters to remote delete"));
 
   remote_file_delete (argv[0], from_tty);
-
-  do_cleanups (back_to);
 }
 
 static void
-remote_command (char *args, int from_tty)
+remote_command (const char *args, int from_tty)
 {
   help_list (remote_cmdlist, "remote ", all_commands, gdb_stdout);
 }
@@ -12205,34 +12225,14 @@ remote_can_run_breakpoint_commands (stru
 static void
 remote_trace_init (struct target_ops *self)
 {
+  struct remote_state *rs = get_remote_state ();
+
   putpkt ("QTinit");
-  remote_get_noisy_reply (&target_buf, &target_buf_size);
-  if (strcmp (target_buf, "OK") != 0)
+  remote_get_noisy_reply ();
+  if (strcmp (rs->buf, "OK") != 0)
     error (_("Target does not support this command."));
 }
 
-static void free_actions_list (char **actions_list);
-static void free_actions_list_cleanup_wrapper (void *);
-static void
-free_actions_list_cleanup_wrapper (void *al)
-{
-  free_actions_list ((char **) al);
-}
-
-static void
-free_actions_list (char **actions_list)
-{
-  int ndx;
-
-  if (actions_list == 0)
-    return;
-
-  for (ndx = 0; actions_list[ndx]; ndx++)
-    xfree (actions_list[ndx]);
-
-  xfree (actions_list);
-}
-
 /* Recursive routine to walk through command list including loops, and
    download packets for each command.  */
 
@@ -12251,8 +12251,8 @@ remote_download_command_source (int num,
 			    rs->buf + strlen (rs->buf),
 			    rs->buf_size - strlen (rs->buf));
       putpkt (rs->buf);
-      remote_get_noisy_reply (&target_buf, &target_buf_size);
-      if (strcmp (target_buf, "OK"))
+      remote_get_noisy_reply ();
+      if (strcmp (rs->buf, "OK"))
 	warning (_("Target does not support source download."));
 
       if (cmd->control_type == while_control
@@ -12266,8 +12266,8 @@ remote_download_command_source (int num,
 				rs->buf + strlen (rs->buf),
 				rs->buf_size - strlen (rs->buf));
 	  putpkt (rs->buf);
-	  remote_get_noisy_reply (&target_buf, &target_buf_size);
-	  if (strcmp (target_buf, "OK"))
+	  remote_get_noisy_reply ();
+	  if (strcmp (rs->buf, "OK"))
 	    warning (_("Target does not support source download."));
 	}
     }
@@ -12281,19 +12281,14 @@ remote_download_tracepoint (struct targe
   CORE_ADDR tpaddr;
   char addrbuf[40];
   char buf[BUF_SIZE];
-  char **tdp_actions;
-  char **stepping_actions;
-  int ndx;
-  struct cleanup *old_chain = NULL;
+  std::vector<std::string> tdp_actions;
+  std::vector<std::string> stepping_actions;
   char *pkt;
   struct breakpoint *b = loc->owner;
   struct tracepoint *t = (struct tracepoint *) b;
+  struct remote_state *rs = get_remote_state ();
 
   encode_actions_rsp (loc, &tdp_actions, &stepping_actions);
-  old_chain = make_cleanup (free_actions_list_cleanup_wrapper,
-			    tdp_actions);
-  (void) make_cleanup (free_actions_list_cleanup_wrapper,
-		       stepping_actions);
 
   tpaddr = loc->address;
   sprintf_vma (addrbuf, tpaddr);
@@ -12359,7 +12354,7 @@ remote_download_tracepoint (struct targe
 	  xsnprintf (buf + strlen (buf), BUF_SIZE - strlen (buf), ":X%x,",
 		     aexpr->len);
 	  pkt = buf + strlen (buf);
-	  for (ndx = 0; ndx < aexpr->len; ++ndx)
+	  for (int ndx = 0; ndx < aexpr->len; ++ndx)
 	    pkt = pack_hex_byte (pkt, aexpr->buf[ndx]);
 	  *pkt = '\0';
 	}
@@ -12371,46 +12366,48 @@ remote_download_tracepoint (struct targe
   if (b->commands || *default_collect)
     strcat (buf, "-");
   putpkt (buf);
-  remote_get_noisy_reply (&target_buf, &target_buf_size);
-  if (strcmp (target_buf, "OK"))
+  remote_get_noisy_reply ();
+  if (strcmp (rs->buf, "OK"))
     error (_("Target does not support tracepoints."));
 
   /* do_single_steps (t); */
-  if (tdp_actions)
+  for (auto action_it = tdp_actions.begin ();
+       action_it != tdp_actions.end (); action_it++)
     {
-      for (ndx = 0; tdp_actions[ndx]; ndx++)
-	{
-	  QUIT;	/* Allow user to bail out with ^C.  */
-	  xsnprintf (buf, BUF_SIZE, "QTDP:-%x:%s:%s%c",
-		     b->number, addrbuf, /* address */
-		     tdp_actions[ndx],
-		     ((tdp_actions[ndx + 1] || stepping_actions)
-		      ? '-' : 0));
-	  putpkt (buf);
-	  remote_get_noisy_reply (&target_buf,
-				  &target_buf_size);
-	  if (strcmp (target_buf, "OK"))
-	    error (_("Error on target while setting tracepoints."));
-	}
-    }
-  if (stepping_actions)
-    {
-      for (ndx = 0; stepping_actions[ndx]; ndx++)
-	{
-	  QUIT;	/* Allow user to bail out with ^C.  */
-	  xsnprintf (buf, BUF_SIZE, "QTDP:-%x:%s:%s%s%s",
-		     b->number, addrbuf, /* address */
-		     ((ndx == 0) ? "S" : ""),
-		     stepping_actions[ndx],
-		     (stepping_actions[ndx + 1] ? "-" : ""));
-	  putpkt (buf);
-	  remote_get_noisy_reply (&target_buf,
-				  &target_buf_size);
-	  if (strcmp (target_buf, "OK"))
-	    error (_("Error on target while setting tracepoints."));
-	}
+      QUIT;	/* Allow user to bail out with ^C.  */
+
+      bool has_more = (action_it != tdp_actions.end ()
+		       || !stepping_actions.empty ());
+
+      xsnprintf (buf, BUF_SIZE, "QTDP:-%x:%s:%s%c",
+		 b->number, addrbuf, /* address */
+		 action_it->c_str (),
+		 has_more ? '-' : 0);
+      putpkt (buf);
+      remote_get_noisy_reply ();
+      if (strcmp (rs->buf, "OK"))
+	error (_("Error on target while setting tracepoints."));
     }
 
+    for (auto action_it = stepping_actions.begin ();
+	 action_it != stepping_actions.end (); action_it++)
+      {
+	QUIT;	/* Allow user to bail out with ^C.  */
+
+	bool is_first = action_it == stepping_actions.begin ();
+	bool has_more = action_it != stepping_actions.end ();
+
+	xsnprintf (buf, BUF_SIZE, "QTDP:-%x:%s:%s%s%s",
+		   b->number, addrbuf, /* address */
+		   is_first ? "S" : "",
+		   action_it->c_str (),
+		   has_more ? "-" : "");
+	putpkt (buf);
+	remote_get_noisy_reply ();
+	if (strcmp (rs->buf, "OK"))
+	  error (_("Error on target while setting tracepoints."));
+      }
+
   if (packet_support (PACKET_TracepointSource) == PACKET_ENABLE)
     {
       if (b->location != NULL)
@@ -12420,8 +12417,8 @@ remote_download_tracepoint (struct targe
 				event_location_to_string (b->location.get ()),
 				buf + strlen (buf), 2048 - strlen (buf));
 	  putpkt (buf);
-	  remote_get_noisy_reply (&target_buf, &target_buf_size);
-	  if (strcmp (target_buf, "OK"))
+	  remote_get_noisy_reply ();
+	  if (strcmp (rs->buf, "OK"))
 	    warning (_("Target does not support source download."));
 	}
       if (b->cond_string)
@@ -12431,15 +12428,13 @@ remote_download_tracepoint (struct targe
 				"cond", b->cond_string, buf + strlen (buf),
 				2048 - strlen (buf));
 	  putpkt (buf);
-	  remote_get_noisy_reply (&target_buf, &target_buf_size);
-	  if (strcmp (target_buf, "OK"))
+	  remote_get_noisy_reply ();
+	  if (strcmp (rs->buf, "OK"))
 	    warning (_("Target does not support source download."));
 	}
       remote_download_command_source (b->number, loc->address,
 				      breakpoint_commands (b));
     }
-
-  do_cleanups (old_chain);
 }
 
 static int
@@ -12486,10 +12481,10 @@ remote_download_trace_state_variable (st
   p += 2 * bin2hex ((gdb_byte *) (tsv->name), p, strlen (tsv->name));
   *p++ = '\0';
   putpkt (rs->buf);
-  remote_get_noisy_reply (&target_buf, &target_buf_size);
-  if (*target_buf == '\0')
+  remote_get_noisy_reply ();
+  if (*rs->buf == '\0')
     error (_("Target does not support this command."));
-  if (strcmp (target_buf, "OK") != 0)
+  if (strcmp (rs->buf, "OK") != 0)
     error (_("Error on target while downloading trace state variable."));
 }
 
@@ -12504,7 +12499,7 @@ remote_enable_tracepoint (struct target_
   xsnprintf (rs->buf, get_remote_packet_size (), "QTEnable:%x:%s",
 	     location->owner->number, addr_buf);
   putpkt (rs->buf);
-  remote_get_noisy_reply (&rs->buf, &rs->buf_size);
+  remote_get_noisy_reply ();
   if (*rs->buf == '\0')
     error (_("Target does not support enabling tracepoints while a trace run is ongoing."));
   if (strcmp (rs->buf, "OK") != 0)
@@ -12522,7 +12517,7 @@ remote_disable_tracepoint (struct target
   xsnprintf (rs->buf, get_remote_packet_size (), "QTDisable:%x:%s",
 	     location->owner->number, addr_buf);
   putpkt (rs->buf);
-  remote_get_noisy_reply (&rs->buf, &rs->buf_size);
+  remote_get_noisy_reply ();
   if (*rs->buf == '\0')
     error (_("Target does not support disabling tracepoints while a trace run is ongoing."));
   if (strcmp (rs->buf, "OK") != 0)
@@ -12542,8 +12537,10 @@ remote_trace_set_readonly_regions (struc
   if (!exec_bfd)
     return;			/* No information to give.  */
 
-  strcpy (target_buf, "QTro");
-  offset = strlen (target_buf);
+  struct remote_state *rs = get_remote_state ();
+
+  strcpy (rs->buf, "QTro");
+  offset = strlen (rs->buf);
   for (s = exec_bfd->sections; s; s = s->next)
     {
       char tmp1[40], tmp2[40];
@@ -12560,33 +12557,35 @@ remote_trace_set_readonly_regions (struc
       sprintf_vma (tmp1, vma);
       sprintf_vma (tmp2, vma + size);
       sec_length = 1 + strlen (tmp1) + 1 + strlen (tmp2);
-      if (offset + sec_length + 1 > target_buf_size)
+      if (offset + sec_length + 1 > rs->buf_size)
 	{
 	  if (packet_support (PACKET_qXfer_traceframe_info) != PACKET_ENABLE)
 	    warning (_("\
 Too many sections for read-only sections definition packet."));
 	  break;
 	}
-      xsnprintf (target_buf + offset, target_buf_size - offset, ":%s,%s",
+      xsnprintf (rs->buf + offset, rs->buf_size - offset, ":%s,%s",
 		 tmp1, tmp2);
       offset += sec_length;
     }
   if (anysecs)
     {
-      putpkt (target_buf);
-      getpkt (&target_buf, &target_buf_size, 0);
+      putpkt (rs->buf);
+      getpkt (&rs->buf, &rs->buf_size, 0);
     }
 }
 
 static void
 remote_trace_start (struct target_ops *self)
 {
+  struct remote_state *rs = get_remote_state ();
+
   putpkt ("QTStart");
-  remote_get_noisy_reply (&target_buf, &target_buf_size);
-  if (*target_buf == '\0')
+  remote_get_noisy_reply ();
+  if (*rs->buf == '\0')
     error (_("Target does not support this command."));
-  if (strcmp (target_buf, "OK") != 0)
-    error (_("Bogus reply from target: %s"), target_buf);
+  if (strcmp (rs->buf, "OK") != 0)
+    error (_("Bogus reply from target: %s"), rs->buf);
 }
 
 static int
@@ -12597,17 +12596,19 @@ remote_get_trace_status (struct target_o
   /* FIXME we need to get register block size some other way.  */
   extern int trace_regblock_size;
   enum packet_result result;
+  struct remote_state *rs = get_remote_state ();
 
   if (packet_support (PACKET_qTStatus) == PACKET_DISABLE)
     return -1;
 
-  trace_regblock_size = get_remote_arch_state ()->sizeof_g_packet;
+  trace_regblock_size
+    = get_remote_arch_state (target_gdbarch ())->sizeof_g_packet;
 
   putpkt ("qTStatus");
 
   TRY
     {
-      p = remote_get_noisy_reply (&target_buf, &target_buf_size);
+      p = remote_get_noisy_reply ();
     }
   CATCH (ex, RETURN_MASK_ERROR)
     {
@@ -12630,7 +12631,7 @@ remote_get_trace_status (struct target_o
   ts->filename = NULL;
 
   if (*p++ != 'T')
-    error (_("Bogus trace status reply from target: %s"), target_buf);
+    error (_("Bogus trace status reply from target: %s"), rs->buf);
 
   /* Function 'parse_trace_status' sets default value of each field of
      'ts' at first, so we don't have to do it here.  */
@@ -12651,9 +12652,9 @@ remote_get_tracepoint_status (struct tar
 
   if (tp)
     {
-      tp->base.hit_count = 0;
+      tp->hit_count = 0;
       tp->traceframe_usage = 0;
-      for (loc = tp->base.loc; loc; loc = loc->next)
+      for (loc = tp->loc; loc; loc = loc->next)
 	{
 	  /* If the tracepoint was never downloaded, don't go asking for
 	     any status.  */
@@ -12662,7 +12663,7 @@ remote_get_tracepoint_status (struct tar
 	  xsnprintf (rs->buf, size, "qTP:%x:%s", tp->number_on_target,
 		     phex_nz (loc->address, 0));
 	  putpkt (rs->buf);
-	  reply = remote_get_noisy_reply (&target_buf, &target_buf_size);
+	  reply = remote_get_noisy_reply ();
 	  if (reply && *reply)
 	    {
 	      if (*reply == 'V')
@@ -12677,7 +12678,7 @@ remote_get_tracepoint_status (struct tar
       xsnprintf (rs->buf, size, "qTP:%x:%s", utp->number,
 		 phex_nz (utp->addr, 0));
       putpkt (rs->buf);
-      reply = remote_get_noisy_reply (&target_buf, &target_buf_size);
+      reply = remote_get_noisy_reply ();
       if (reply && *reply)
 	{
 	  if (*reply == 'V')
@@ -12689,12 +12690,14 @@ remote_get_tracepoint_status (struct tar
 static void
 remote_trace_stop (struct target_ops *self)
 {
+  struct remote_state *rs = get_remote_state ();
+
   putpkt ("QTStop");
-  remote_get_noisy_reply (&target_buf, &target_buf_size);
-  if (*target_buf == '\0')
+  remote_get_noisy_reply ();
+  if (*rs->buf == '\0')
     error (_("Target does not support this command."));
-  if (strcmp (target_buf, "OK") != 0)
-    error (_("Bogus reply from target: %s"), target_buf);
+  if (strcmp (rs->buf, "OK") != 0)
+    error (_("Bogus reply from target: %s"), rs->buf);
 }
 
 static int
@@ -12741,7 +12744,7 @@ remote_trace_find (struct target_ops *se
     }
 
   putpkt (rs->buf);
-  reply = remote_get_noisy_reply (&(rs->buf), &rs->buf_size);
+  reply = remote_get_noisy_reply ();
   if (*reply == '\0')
     error (_("Target does not support this command."));
 
@@ -12792,7 +12795,7 @@ remote_get_trace_state_variable_value (s
 
   xsnprintf (rs->buf, get_remote_packet_size (), "qTV:%x", tsvnum);
   putpkt (rs->buf);
-  reply = remote_get_noisy_reply (&target_buf, &target_buf_size);
+  reply = remote_get_noisy_reply ();
   if (reply && *reply)
     {
       if (*reply == 'V')
@@ -12819,7 +12822,7 @@ remote_save_trace_data (struct target_op
   p += 2 * bin2hex ((gdb_byte *) filename, p, strlen (filename));
   *p++ = '\0';
   putpkt (rs->buf);
-  reply = remote_get_noisy_reply (&target_buf, &target_buf_size);
+  reply = remote_get_noisy_reply ();
   if (*reply == '\0')
     error (_("Target does not support this command."));
   if (strcmp (reply, "OK") != 0)
@@ -12850,7 +12853,7 @@ remote_get_raw_trace_data (struct target
   *p++ = '\0';
 
   putpkt (rs->buf);
-  reply = remote_get_noisy_reply (&target_buf, &target_buf_size);
+  reply = remote_get_noisy_reply ();
   if (reply && *reply)
     {
       /* 'l' by itself means we're at the end of the buffer and
@@ -12863,7 +12866,7 @@ remote_get_raw_trace_data (struct target
 	 what was returned in the packet; if the target is
 	 unexpectedly generous and gives us a bigger reply than we
 	 asked for, we don't want to crash.  */
-      rslt = hex2bin (target_buf, buf, len);
+      rslt = hex2bin (reply, buf, len);
       return rslt;
     }
 
@@ -12882,7 +12885,7 @@ remote_set_disconnected_tracing (struct 
 
       xsnprintf (rs->buf, get_remote_packet_size (), "QTDisconnected:%x", val);
       putpkt (rs->buf);
-      reply = remote_get_noisy_reply (&target_buf, &target_buf_size);
+      reply = remote_get_noisy_reply ();
       if (*reply == '\0')
 	error (_("Target does not support this command."));
       if (strcmp (reply, "OK") != 0)
@@ -12897,8 +12900,9 @@ remote_core_of_thread (struct target_ops
 {
   struct thread_info *info = find_thread_ptid (ptid);
 
-  if (info && info->priv)
-    return info->priv->core;
+  if (info != NULL && info->priv != NULL)
+    return get_remote_thread_info (info)->core;
+
   return -1;
 }
 
@@ -12910,29 +12914,21 @@ remote_set_circular_trace_buffer (struct
 
   xsnprintf (rs->buf, get_remote_packet_size (), "QTBuffer:circular:%x", val);
   putpkt (rs->buf);
-  reply = remote_get_noisy_reply (&target_buf, &target_buf_size);
+  reply = remote_get_noisy_reply ();
   if (*reply == '\0')
     error (_("Target does not support this command."));
   if (strcmp (reply, "OK") != 0)
     error (_("Bogus reply from target: %s"), reply);
 }
 
-static struct traceframe_info *
+static traceframe_info_up
 remote_traceframe_info (struct target_ops *self)
 {
-  char *text;
-
-  text = target_read_stralloc (&current_target,
-			       TARGET_OBJECT_TRACEFRAME_INFO, NULL);
+  gdb::unique_xmalloc_ptr<char> text
+    = target_read_stralloc (&current_target, TARGET_OBJECT_TRACEFRAME_INFO,
+			    NULL);
   if (text != NULL)
-    {
-      struct traceframe_info *info;
-      struct cleanup *back_to = make_cleanup (xfree, text);
-
-      info = parse_traceframe_info (text);
-      do_cleanups (back_to);
-      return info;
-    }
+    return parse_traceframe_info (text.get ());
 
   return NULL;
 }
@@ -12958,7 +12954,7 @@ remote_get_min_fast_tracepoint_insn_len 
 
   xsnprintf (rs->buf, get_remote_packet_size (), "qTMinFTPILen");
   putpkt (rs->buf);
-  reply = remote_get_noisy_reply (&target_buf, &target_buf_size);
+  reply = remote_get_noisy_reply ();
   if (*reply == '\0')
     return -1;
   else
@@ -12993,7 +12989,7 @@ remote_set_trace_buffer_size (struct tar
 	buf += hexnumstr (buf, (ULONGEST) val);
 
       putpkt (rs->buf);
-      remote_get_noisy_reply (&rs->buf, &rs->buf_size);
+      remote_get_noisy_reply ();
       result = packet_ok (rs->buf,
 		  &remote_protocol_packets[PACKET_QTBuffer_size]);
 
@@ -13039,7 +13035,7 @@ remote_set_trace_notes (struct target_op
   *buf = '\0';
 
   putpkt (rs->buf);
-  reply = remote_get_noisy_reply (&target_buf, &target_buf_size);
+  reply = remote_get_noisy_reply ();
   if (*reply == '\0')
     return 0;
 
@@ -13191,18 +13187,10 @@ btrace_sync_conf (const struct btrace_co
 static void
 btrace_read_config (struct btrace_config *conf)
 {
-  char *xml;
-
-  xml = target_read_stralloc (&current_target,
-			      TARGET_OBJECT_BTRACE_CONF, "");
+  gdb::unique_xmalloc_ptr<char> xml
+    = target_read_stralloc (&current_target, TARGET_OBJECT_BTRACE_CONF, "");
   if (xml != NULL)
-    {
-      struct cleanup *cleanup;
-
-      cleanup = make_cleanup (xfree, xml);
-      parse_xml_btrace_conf (conf, xml);
-      do_cleanups (cleanup);
-    }
+    parse_xml_btrace_conf (conf, xml.get ());
 }
 
 /* Maybe reopen target btrace.  */
@@ -13211,12 +13199,12 @@ static void
 remote_btrace_maybe_reopen (void)
 {
   struct remote_state *rs = get_remote_state ();
-  struct cleanup *cleanup;
   struct thread_info *tp;
   int btrace_target_pushed = 0;
   int warned = 0;
 
-  cleanup = make_cleanup_restore_current_thread ();
+  scoped_restore_current_thread restore_thread;
+
   ALL_NON_EXITED_THREADS (tp)
     {
       set_general_thread (tp->ptid);
@@ -13256,7 +13244,6 @@ remote_btrace_maybe_reopen (void)
       tp->btrace.target->ptid = tp->ptid;
       tp->btrace.target->conf = rs->btrace_config;
     }
-  do_cleanups (cleanup);
 }
 
 /* Enable branch tracing.  */
@@ -13374,9 +13361,7 @@ remote_read_btrace (struct target_ops *s
 		    enum btrace_read_type type)
 {
   struct packet_config *packet = &remote_protocol_packets[PACKET_qXfer_btrace];
-  struct cleanup *cleanup;
   const char *annex;
-  char *xml;
 
   if (packet_config_support (packet) != PACKET_ENABLE)
     error (_("Target does not support branch tracing."));
@@ -13402,14 +13387,12 @@ remote_read_btrace (struct target_ops *s
 		      (unsigned int) type);
     }
 
-  xml = target_read_stralloc (&current_target,
-			      TARGET_OBJECT_BTRACE, annex);
+  gdb::unique_xmalloc_ptr<char> xml
+    = target_read_stralloc (&current_target, TARGET_OBJECT_BTRACE, annex);
   if (xml == NULL)
     return BTRACE_ERR_UNKNOWN;
 
-  cleanup = make_cleanup (xfree, xml);
-  parse_xml_btrace (btrace, xml);
-  do_cleanups (cleanup);
+  parse_xml_btrace (btrace, xml.get ());
 
   return BTRACE_ERR_NONE;
 }
@@ -13443,16 +13426,13 @@ remote_load (struct target_ops *self, co
 static char *
 remote_pid_to_exec_file (struct target_ops *self, int pid)
 {
-  static char *filename = NULL;
+  static gdb::unique_xmalloc_ptr<char> filename;
   struct inferior *inf;
   char *annex = NULL;
 
   if (packet_support (PACKET_qXfer_exec_file) != PACKET_ENABLE)
     return NULL;
 
-  if (filename != NULL)
-    xfree (filename);
-
   inf = find_inferior_pid (pid);
   if (inf == NULL)
     internal_error (__FILE__, __LINE__,
@@ -13469,7 +13449,7 @@ remote_pid_to_exec_file (struct target_o
   filename = target_read_stralloc (&current_target,
 				   TARGET_OBJECT_EXEC_FILE, annex);
 
-  return filename;
+  return filename.get ();
 }
 
 /* Implement the to_can_do_single_step target_ops method.  */
@@ -13506,6 +13486,35 @@ remote_execution_direction (struct targe
   return rs->last_resume_exec_dir;
 }
 
+/* Return pointer to the thread_info struct which corresponds to
+   THREAD_HANDLE (having length HANDLE_LEN).  */
+
+static struct thread_info *
+remote_thread_handle_to_thread_info (struct target_ops *ops,
+				     const gdb_byte *thread_handle,
+				     int handle_len,
+				     struct inferior *inf)
+{
+  struct thread_info *tp;
+
+  ALL_NON_EXITED_THREADS (tp)
+    {
+      remote_thread_info *priv = get_remote_thread_info (tp);
+
+      if (tp->inf == inf && priv != NULL)
+        {
+	  if (handle_len != priv->thread_handle.size ())
+	    error (_("Thread handle size mismatch: %d vs %zu (from remote)"),
+	           handle_len, priv->thread_handle.size ());
+	  if (memcmp (thread_handle, priv->thread_handle.data (),
+	              handle_len) == 0)
+	    return tp;
+	}
+    }
+
+  return NULL;
+}
+
 static void
 init_remote_ops (void)
 {
@@ -13654,6 +13663,8 @@ Specify the serial device it is connecte
   remote_ops.to_insert_exec_catchpoint = remote_insert_exec_catchpoint;
   remote_ops.to_remove_exec_catchpoint = remote_remove_exec_catchpoint;
   remote_ops.to_execution_direction = remote_execution_direction;
+  remote_ops.to_thread_handle_to_thread_info =
+    remote_thread_handle_to_thread_info;
 }
 
 /* Set up the extended remote vector by making a copy of the standard
@@ -13790,21 +13801,20 @@ remote_thread_events (struct target_ops 
 }
 
 static void
-set_remote_cmd (char *args, int from_tty)
+set_remote_cmd (const char *args, int from_tty)
 {
   help_list (remote_set_cmdlist, "set remote ", all_commands, gdb_stdout);
 }
 
 static void
-show_remote_cmd (char *args, int from_tty)
+show_remote_cmd (const char *args, int from_tty)
 {
   /* We can't just use cmd_show_list here, because we want to skip
      the redundant "show remote Z-packet" and the legacy aliases.  */
-  struct cleanup *showlist_chain;
   struct cmd_list_element *list = remote_show_cmdlist;
   struct ui_out *uiout = current_uiout;
 
-  showlist_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "showlist");
+  ui_out_emit_tuple tuple_emitter (uiout, "showlist");
   for (; list != NULL; list = list->next)
     if (strcmp (list->name, "Z-packet") == 0)
       continue;
@@ -13814,8 +13824,7 @@ show_remote_cmd (char *args, int from_tt
       continue;
     else
       {
-	struct cleanup *option_chain
-	  = make_cleanup_ui_out_tuple_begin_end (uiout, "option");
+	ui_out_emit_tuple option_emitter (uiout, "option");
 
 	uiout->field_string ("name", list->name);
 	uiout->text (":  ");
@@ -13823,12 +13832,7 @@ show_remote_cmd (char *args, int from_tt
 	  do_show_command (NULL, from_tty, list);
 	else
 	  cmd_func (list, NULL, from_tty);
-	/* Close the tuple.  */
-	do_cleanups (option_chain);
       }
-
-  /* Close the tuple.  */
-  do_cleanups (showlist_chain);
 }
 
 
@@ -13905,7 +13909,7 @@ show_range_stepping (struct ui_file *fil
 /* The "set/show range-stepping" set hook.  */
 
 static void
-set_range_stepping (char *ignore_args, int from_tty,
+set_range_stepping (const char *ignore_args, int from_tty,
 		    struct cmd_list_element *c)
 {
   struct remote_state *rs = get_remote_state ();
@@ -14113,6 +14117,25 @@ Show the maximum size of the address (in
   add_packet_config_cmd (&remote_protocol_packets[PACKET_QProgramSignals],
 			 "QProgramSignals", "program-signals", 0);
 
+  add_packet_config_cmd (&remote_protocol_packets[PACKET_QSetWorkingDir],
+			 "QSetWorkingDir", "set-working-dir", 0);
+
+  add_packet_config_cmd (&remote_protocol_packets[PACKET_QStartupWithShell],
+			 "QStartupWithShell", "startup-with-shell", 0);
+
+  add_packet_config_cmd (&remote_protocol_packets
+			 [PACKET_QEnvironmentHexEncoded],
+			 "QEnvironmentHexEncoded", "environment-hex-encoded",
+			 0);
+
+  add_packet_config_cmd (&remote_protocol_packets[PACKET_QEnvironmentReset],
+			 "QEnvironmentReset", "environment-reset",
+			 0);
+
+  add_packet_config_cmd (&remote_protocol_packets[PACKET_QEnvironmentUnset],
+			 "QEnvironmentUnset", "environment-unset",
+			 0);
+
   add_packet_config_cmd (&remote_protocol_packets[PACKET_qSymbol],
 			 "qSymbol", "symbol-lookup", 0);
 
@@ -14434,8 +14457,4 @@ stepping is supported by the target.  Th
   magic_null_ptid = ptid_build (42000, -1, 1);
   not_sent_ptid = ptid_build (42000, -2, 1);
   any_thread_ptid = ptid_build (42000, 0, 1);
-
-  target_buf_size = 2048;
-  target_buf = (char *) xmalloc (target_buf_size);
 }
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/remote-fileio.c ./gdb/remote-fileio.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/remote-fileio.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/remote-fileio.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Remote File-I/O communications
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -1118,10 +1118,9 @@ static struct {
   { NULL, NULL }
 };
 
-static int
-do_remote_fileio_request (struct ui_out *uiout, void *buf_arg)
+static void
+do_remote_fileio_request (char *buf)
 {
-  char *buf = (char *) buf_arg;
   char *c;
   int idx;
 
@@ -1135,10 +1134,10 @@ do_remote_fileio_request (struct ui_out 
   for (idx = 0; remote_fio_func_map[idx].name; ++idx)
     if (!strcmp (remote_fio_func_map[idx].name, buf))
       break;
-  if (!remote_fio_func_map[idx].name)	/* ERROR: No such function.  */
-    return RETURN_ERROR;
-  remote_fio_func_map[idx].func (c);
-  return 0;
+  if (!remote_fio_func_map[idx].name)
+    remote_fileio_reply (-1, FILEIO_ENOSYS);
+  else
+    remote_fio_func_map[idx].func (c);
 }
 
 /* Close any open descriptors, and reinitialize the file mapping.  */
@@ -1170,8 +1169,6 @@ remote_fileio_reset (void)
 void
 remote_fileio_request (char *buf, int ctrlc_pending_p)
 {
-  int ex;
-
   /* Save the previous quit handler, so we can restore it.  No need
      for a cleanup since we catch all exceptions below.  Note that the
      quit handler is also restored by remote_fileio_reply just before
@@ -1188,20 +1185,18 @@ remote_fileio_request (char *buf, int ct
     }
   else
     {
-      ex = catch_exceptions (current_uiout,
-			     do_remote_fileio_request, (void *)buf,
-			     RETURN_MASK_ALL);
-      switch (ex)
+      TRY
+	{
+	  do_remote_fileio_request (buf);
+	}
+      CATCH (ex, RETURN_MASK_ALL)
 	{
-	case RETURN_ERROR:
-	  remote_fileio_reply (-1, FILEIO_ENOSYS);
-	  break;
-	case RETURN_QUIT:
-	  remote_fileio_reply (-1, FILEIO_EINTR);
-	  break;
-	default:
-	  break;
+	  if (ex.reason == RETURN_QUIT)
+	    remote_fileio_reply (-1, FILEIO_EINTR);
+	  else
+	    remote_fileio_reply (-1, FILEIO_EIO);
 	}
+      END_CATCH
     }
 
   quit_handler = remote_fileio_o_quit_handler;
@@ -1272,7 +1267,7 @@ remote_fileio_to_host_stat (struct fio_s
 
 
 static void
-set_system_call_allowed (char *args, int from_tty)
+set_system_call_allowed (const char *args, int from_tty)
 {
   if (args)
     {
@@ -1289,7 +1284,7 @@ set_system_call_allowed (char *args, int
 }
 
 static void
-show_system_call_allowed (char *args, int from_tty)
+show_system_call_allowed (const char *args, int from_tty)
 {
   if (args)
     error (_("Garbage after \"show remote "
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/remote-fileio.h ./gdb/remote-fileio.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/remote-fileio.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/remote-fileio.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Remote File-I/O communications
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/remote.h ./gdb/remote.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/remote.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/remote.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Remote target communications for serial-line targets in custom GDB protocol
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/remote-notif.c ./gdb/remote-notif.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/remote-notif.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/remote-notif.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Remote notification in GDB protocol
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -270,9 +270,6 @@ remote_notif_state_xfree (struct remote_
   xfree (state);
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_notif;
-
 void
 _initialize_notif (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/remote-notif.h ./gdb/remote-notif.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/remote-notif.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/remote-notif.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Remote notification in GDB protocol
 
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/remote-sim.c ./gdb/remote-sim.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/remote-sim.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/remote-sim.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Generic remote debugging interface for simulators.
 
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.
    Steve Chamberlain (sac@cygnus.com).
@@ -40,11 +40,10 @@
 #include "arch-utils.h"
 #include "readline/readline.h"
 #include "gdbthread.h"
+#include "common/byte-vector.h"
 
 /* Prototypes */
 
-extern void _initialize_remote_sim (void);
-
 static void init_callbacks (void);
 
 static void end_callbacks (void);
@@ -428,7 +427,7 @@ static void
 gdbsim_fetch_register (struct target_ops *ops,
 		       struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct inferior *inf = find_inferior_ptid (regcache_get_ptid (regcache));
   struct sim_inferior_data *sim_data
     = get_sim_inferior_data (inf, SIM_INSTANCE_NEEDED);
@@ -448,38 +447,31 @@ gdbsim_fetch_register (struct target_ops
       {
 	/* For moment treat a `does not exist' register the same way
 	   as an ``unavailable'' register.  */
-	gdb_byte buf[MAX_REGISTER_SIZE];
-	int nr_bytes;
-
-	memset (buf, 0, MAX_REGISTER_SIZE);
-	regcache_raw_supply (regcache, regno, buf);
+	regcache->raw_supply_zeroed (regno);
 	break;
       }
 
     default:
       {
 	static int warn_user = 1;
-	gdb_byte buf[MAX_REGISTER_SIZE];
+	int regsize = register_size (gdbarch, regno);
+	gdb::byte_vector buf (regsize, 0);
 	int nr_bytes;
 
 	gdb_assert (regno >= 0 && regno < gdbarch_num_regs (gdbarch));
-	memset (buf, 0, MAX_REGISTER_SIZE);
 	nr_bytes = sim_fetch_register (sim_data->gdbsim_desc,
 				       gdbarch_register_sim_regno
 					 (gdbarch, regno),
-				       buf,
-				       register_size (gdbarch, regno));
-	if (nr_bytes > 0
-	    && nr_bytes != register_size (gdbarch, regno) && warn_user)
+				       buf.data (), regsize);
+	if (nr_bytes > 0 && nr_bytes != regsize && warn_user)
 	  {
 	    fprintf_unfiltered (gdb_stderr,
 				"Size of register %s (%d/%d) "
 				"incorrect (%d instead of %d))",
 				gdbarch_register_name (gdbarch, regno),
 				regno,
-				gdbarch_register_sim_regno
-				  (gdbarch, regno),
-				nr_bytes, register_size (gdbarch, regno));
+				gdbarch_register_sim_regno (gdbarch, regno),
+				nr_bytes, regsize);
 	    warn_user = 0;
 	  }
 	/* FIXME: cagney/2002-05-27: Should check `nr_bytes == 0'
@@ -487,13 +479,13 @@ gdbsim_fetch_register (struct target_ops
 	   which registers are fetchable.  */
 	/* Else if (nr_bytes < 0): an old simulator, that doesn't
 	   think to return the register size.  Just assume all is ok.  */
-	regcache_raw_supply (regcache, regno, buf);
+	regcache->raw_supply (regno, buf.data ());
 	if (remote_debug)
 	  {
 	    fprintf_unfiltered (gdb_stdlog,
 				"gdbsim_fetch_register: %d", regno);
 	    /* FIXME: We could print something more intelligible.  */
-	    dump_mem (buf, register_size (gdbarch, regno));
+	    dump_mem (buf.data (), regsize);
 	  }
 	break;
       }
@@ -505,7 +497,7 @@ static void
 gdbsim_store_register (struct target_ops *ops,
 		       struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct inferior *inf = find_inferior_ptid (regcache_get_ptid (regcache));
   struct sim_inferior_data *sim_data
     = get_sim_inferior_data (inf, SIM_INSTANCE_NEEDED);
@@ -518,15 +510,17 @@ gdbsim_store_register (struct target_ops
     }
   else if (gdbarch_register_sim_regno (gdbarch, regno) >= 0)
     {
-      gdb_byte tmp[MAX_REGISTER_SIZE];
+      int regsize = register_size (gdbarch, regno);
+      gdb::byte_vector tmp (regsize);
       int nr_bytes;
 
-      regcache_cooked_read (regcache, regno, tmp);
+      regcache->cooked_read (regno, tmp.data ());
       nr_bytes = sim_store_register (sim_data->gdbsim_desc,
 				     gdbarch_register_sim_regno
 				       (gdbarch, regno),
-				     tmp, register_size (gdbarch, regno));
-      if (nr_bytes > 0 && nr_bytes != register_size (gdbarch, regno))
+				     tmp.data (), regsize);
+
+      if (nr_bytes > 0 && nr_bytes != regsize)
 	internal_error (__FILE__, __LINE__,
 			_("Register size different to expected"));
       if (nr_bytes < 0)
@@ -540,7 +534,7 @@ gdbsim_store_register (struct target_ops
 	{
 	  fprintf_unfiltered (gdb_stdlog, "gdbsim_store_register: %d", regno);
 	  /* FIXME: We could print something more intelligible.  */
-	  dump_mem (tmp, register_size (gdbarch, regno));
+	  dump_mem (tmp.data (), regsize);
 	}
     }
 }
@@ -566,7 +560,6 @@ gdbsim_kill (struct target_ops *ops)
 static void
 gdbsim_load (struct target_ops *self, const char *args, int fromtty)
 {
-  char **argv;
   const char *prog;
   struct sim_inferior_data *sim_data
     = get_sim_inferior_data (current_inferior (), SIM_INSTANCE_NEEDED);
@@ -574,8 +567,7 @@ gdbsim_load (struct target_ops *self, co
   if (args == NULL)
       error_no_arg (_("program to load"));
 
-  argv = gdb_buildargv (args);
-  make_cleanup_freeargv (argv);
+  gdb_argv argv (args);
 
   prog = tilde_expand (argv[0]);
 
@@ -613,7 +605,7 @@ gdbsim_create_inferior (struct target_op
   struct sim_inferior_data *sim_data
     = get_sim_inferior_data (current_inferior (), SIM_INSTANCE_NEEDED);
   int len;
-  char *arg_buf, **argv;
+  char *arg_buf;
   const char *args = allargs.c_str ();
 
   if (exec_file == 0 || exec_bfd == 0)
@@ -632,6 +624,7 @@ gdbsim_create_inferior (struct target_op
   remove_breakpoints ();
   init_wait_for_inferior ();
 
+  gdb_argv built_argv;
   if (exec_file != NULL)
     {
       len = strlen (exec_file) + 1 + allargs.size () + 1 + /*slop */ 10;
@@ -640,16 +633,14 @@ gdbsim_create_inferior (struct target_op
       strcat (arg_buf, exec_file);
       strcat (arg_buf, " ");
       strcat (arg_buf, args);
-      argv = gdb_buildargv (arg_buf);
-      make_cleanup_freeargv (argv);
+      built_argv.reset (arg_buf);
     }
-  else
-    argv = NULL;
 
   if (!have_inferiors ())
     init_thread_list ();
 
-  if (sim_create_inferior (sim_data->gdbsim_desc, exec_bfd, argv, env)
+  if (sim_create_inferior (sim_data->gdbsim_desc, exec_bfd,
+			   built_argv.get (), env)
       != SIM_RC_OK)
     error (_("Unable to create sim inferior."));
 
@@ -732,18 +723,21 @@ gdbsim_open (const char *args, int from_
       strcat (arg_buf, " ");	/* 1 */
       strcat (arg_buf, args);
     }
-  sim_argv = gdb_buildargv (arg_buf);
+
+  gdb_argv argv (arg_buf);
+  sim_argv = argv.get ();
 
   init_callbacks ();
   gdbsim_desc = sim_open (SIM_OPEN_DEBUG, &gdb_callback, exec_bfd, sim_argv);
 
   if (gdbsim_desc == 0)
     {
-      freeargv (sim_argv);
       sim_argv = NULL;
       error (_("unable to create simulator instance"));
     }
 
+  argv.release ();
+
   /* Reset the pid numberings for this batch of sim instances.  */
   next_pid = INITIAL_PID;
 
@@ -1185,7 +1179,7 @@ gdbsim_mourn_inferior (struct target_ops
    simulator must do any command interpretation work.  */
 
 void
-simulator_command (char *args, int from_tty)
+simulator_command (const char *args, int from_tty)
 {
   struct sim_inferior_data *sim_data;
 
@@ -1224,30 +1218,48 @@ simulator_command (char *args, int from_
   registers_changed ();
 }
 
-static VEC (char_ptr) *
-sim_command_completer (struct cmd_list_element *ignore, const char *text,
-		       const char *word)
+static void
+sim_command_completer (struct cmd_list_element *ignore,
+		       completion_tracker &tracker,
+		       const char *text, const char *word)
 {
   struct sim_inferior_data *sim_data;
-  char **tmp;
-  int i;
-  VEC (char_ptr) *result = NULL;
 
   sim_data = ((struct sim_inferior_data *)
 	      inferior_data (current_inferior (), sim_inferior_data_key));
   if (sim_data == NULL || sim_data->gdbsim_desc == NULL)
-    return NULL;
-
-  tmp = sim_complete_command (sim_data->gdbsim_desc, text, word);
-  if (tmp == NULL)
-    return NULL;
+    return;
 
-  /* Transform the array into a VEC, and then free the array.  */
-  for (i = 0; tmp[i] != NULL; i++)
-    VEC_safe_push (char_ptr, result, tmp[i]);
-  xfree (tmp);
-
-  return result;
+  /* sim_complete_command returns a NULL-terminated malloc'ed array of
+     malloc'ed strings.  */
+  struct sim_completions_deleter
+  {
+    void operator() (char **ptr) const
+    {
+      for (size_t i = 0; ptr[i] != NULL; i++)
+	xfree (ptr[i]);
+      xfree (ptr);
+    }
+  };
+
+  std::unique_ptr<char *[], sim_completions_deleter> sim_completions
+    (sim_complete_command (sim_data->gdbsim_desc, text, word));
+  if (sim_completions == NULL)
+    return;
+
+  /* Count the elements and add completions from tail to head because
+     below we'll swap elements out of the array in case add_completion
+     throws and the deleter deletes until it finds a NULL element.  */
+  size_t count = 0;
+  while (sim_completions[count] != NULL)
+    count++;
+
+  for (size_t i = count; i > 0; i--)
+    {
+      gdb::unique_xmalloc_ptr<char> match (sim_completions[i - 1]);
+      sim_completions[i - 1] = NULL;
+      tracker.add_completion (std::move (match));
+    }
 }
 
 /* Check to see if a thread is still alive.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/reply_mig_hack.awk ./gdb/reply_mig_hack.awk
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/reply_mig_hack.awk	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/reply_mig_hack.awk	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # Reply server mig-output massager
 #
-#   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+#   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 #
 #   Written by Miles Bader <miles@gnu.ai.mit.edu>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/reverse.c ./gdb/reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Reverse execution and reverse debugging.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -30,24 +30,15 @@
 /* User interface:
    reverse-step, reverse-next etc.  */
 
-static void
-exec_direction_default (void *notused)
-{
-  /* Return execution direction to default state.  */
-  execution_direction = EXEC_FORWARD;
-}
-
 /* exec_reverse_once -- accepts an arbitrary gdb command (string), 
    and executes it with exec-direction set to 'reverse'.
 
    Used to implement reverse-next etc. commands.  */
 
 static void
-exec_reverse_once (const char *cmd, char *args, int from_tty)
+exec_reverse_once (const char *cmd, const char *args, int from_tty)
 {
-  char *reverse_command;
   enum exec_direction_kind dir = execution_direction;
-  struct cleanup *old_chain;
 
   if (dir == EXEC_REVERSE)
     error (_("Already in reverse mode.  Use '%s' or 'set exec-dir forward'."),
@@ -56,46 +47,44 @@ exec_reverse_once (const char *cmd, char
   if (!target_can_execute_reverse)
     error (_("Target %s does not support this command."), target_shortname);
 
-  reverse_command = xstrprintf ("%s %s", cmd, args ? args : "");
-  old_chain = make_cleanup (exec_direction_default, NULL);
-  make_cleanup (xfree, reverse_command);
-  execution_direction = EXEC_REVERSE;
-  execute_command (reverse_command, from_tty);
-  do_cleanups (old_chain);
+  std::string reverse_command = string_printf ("%s %s", cmd, args ? args : "");
+  scoped_restore restore_exec_dir
+    = make_scoped_restore (&execution_direction, EXEC_REVERSE);
+  execute_command (reverse_command.c_str (), from_tty);
 }
 
 static void
-reverse_step (char *args, int from_tty)
+reverse_step (const char *args, int from_tty)
 {
   exec_reverse_once ("step", args, from_tty);
 }
 
 static void
-reverse_stepi (char *args, int from_tty)
+reverse_stepi (const char *args, int from_tty)
 {
   exec_reverse_once ("stepi", args, from_tty);
 }
 
 static void
-reverse_next (char *args, int from_tty)
+reverse_next (const char *args, int from_tty)
 {
   exec_reverse_once ("next", args, from_tty);
 }
 
 static void
-reverse_nexti (char *args, int from_tty)
+reverse_nexti (const char *args, int from_tty)
 {
   exec_reverse_once ("nexti", args, from_tty);
 }
 
 static void
-reverse_continue (char *args, int from_tty)
+reverse_continue (const char *args, int from_tty)
 {
   exec_reverse_once ("continue", args, from_tty);
 }
 
 static void
-reverse_finish (char *args, int from_tty)
+reverse_finish (const char *args, int from_tty)
 {
   exec_reverse_once ("finish", args, from_tty);
 }
@@ -128,12 +117,11 @@ static int bookmark_count;
    Up to us to free it as required.  */
 
 static void
-save_bookmark_command (char *args, int from_tty)
+save_bookmark_command (const char *args, int from_tty)
 {
   /* Get target's idea of a bookmark.  */
   gdb_byte *bookmark_id = target_get_bookmark (args, from_tty);
-  struct bookmark *b, *b1;
-  struct gdbarch *gdbarch = get_regcache_arch (get_current_regcache ());
+  struct gdbarch *gdbarch = get_current_regcache ()->arch ();
 
   /* CR should not cause another identical bookmark.  */
   dont_repeat ();
@@ -142,9 +130,8 @@ save_bookmark_command (char *args, int f
     error (_("target_get_bookmark failed."));
 
   /* Set up a bookmark struct.  */
-  b = XCNEW (struct bookmark);
+  bookmark *b = new bookmark ();
   b->number = ++bookmark_count;
-  init_sal (&b->sal);
   b->pc = regcache_read_pc (get_current_regcache ());
   b->sal = find_pc_line (b->pc, 0);
   b->sal.pspace = get_frame_program_space (get_current_frame ());
@@ -154,7 +141,7 @@ save_bookmark_command (char *args, int f
   /* Add this bookmark to the end of the chain, so that a list
      of bookmarks will come out in order of increasing numbers.  */
 
-  b1 = bookmark_chain;
+  bookmark *b1 = bookmark_chain;
   if (b1 == 0)
     bookmark_chain = b;
   else
@@ -194,7 +181,7 @@ delete_one_bookmark (int num)
 	    break;
 	  }
       xfree (b->opaque_data);
-      xfree (b);
+      delete b;
       return 1;		/* success */
     }
   return 0;		/* failure */
@@ -214,7 +201,7 @@ delete_all_bookmarks (void)
 }
 
 static void
-delete_bookmark_command (char *args, int from_tty)
+delete_bookmark_command (const char *args, int from_tty)
 {
   if (bookmark_chain == NULL)
     {
@@ -243,11 +230,11 @@ delete_bookmark_command (char *args, int
 /* Implement "goto-bookmark" command.  */
 
 static void
-goto_bookmark_command (char *args, int from_tty)
+goto_bookmark_command (const char *args, int from_tty)
 {
   struct bookmark *b;
   unsigned long num;
-  char *p = args;
+  const char *p = args;
 
   if (args == NULL || args[0] == '\0')
     error (_("Command requires an argument."));
@@ -293,7 +280,7 @@ goto_bookmark_command (char *args, int f
 static int
 bookmark_1 (int bnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (get_current_regcache ());
+  struct gdbarch *gdbarch = get_current_regcache ()->arch ();
   struct bookmark *b;
   int matched = 0;
 
@@ -318,7 +305,7 @@ bookmark_1 (int bnum)
 /* Implement "info bookmarks" command.  */
 
 static void
-bookmarks_info (char *args, int from_tty)
+info_bookmarks_command (const char *args, int from_tty)
 {
   if (!bookmark_chain)
     printf_filtered (_("No bookmarks.\n"));
@@ -335,10 +322,6 @@ bookmarks_info (char *args, int from_tty
     }
 }
 
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_reverse;
-
 void
 _initialize_reverse (void)
 {
@@ -382,7 +365,7 @@ Execute backward until just before selec
 Set a bookmark in the program's execution history.\n\
 A bookmark represents a point in the execution history \n\
 that can be returned to at a later point in the debug session."));
-  add_info ("bookmarks", bookmarks_info, _("\
+  add_info ("bookmarks", info_bookmarks_command, _("\
 Status of user-settable bookmarks.\n\
 Bookmarks are user-settable markers representing a point in the \n\
 execution history that can be returned to later in the same debug \n\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rl78-tdep.c ./gdb/rl78-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rl78-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/rl78-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Renesas RL78 for GDB, the GNU debugger.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat, Inc.
 
@@ -271,7 +271,7 @@ rl78_psw_type (struct gdbarch *gdbarch)
   if (tdep->rl78_psw_type == NULL)
     {
       tdep->rl78_psw_type = arch_flags_type (gdbarch,
-					     "builtin_type_rl78_psw", 1);
+					     "builtin_type_rl78_psw", 8);
       append_flags_type_flag (tdep->rl78_psw_type, 0, "CY");
       append_flags_type_flag (tdep->rl78_psw_type, 1, "ISP0");
       append_flags_type_flag (tdep->rl78_psw_type, 2, "ISP1");
@@ -883,7 +883,7 @@ rl78_get_opcode_byte (void *handle)
 }
 
 /* Function for finding saved registers in a 'struct pv_area'; this
-   function is passed to pv_area_scan.
+   function is passed to pv_area::scan.
 
    If VALUE is a saved register, ADDR says it was saved at a constant
    offset from the frame base, and SIZE indicates that the whole
@@ -912,8 +912,6 @@ rl78_analyze_prologue (CORE_ADDR start_p
   CORE_ADDR pc, next_pc;
   int rn;
   pv_t reg[RL78_NUM_TOTAL_REGS];
-  struct pv_area *stack;
-  struct cleanup *back_to;
   CORE_ADDR after_last_frame_setup_insn = start_pc;
   int bank = 0;
 
@@ -925,12 +923,11 @@ rl78_analyze_prologue (CORE_ADDR start_p
       result->reg_offset[rn] = 1;
     }
 
-  stack = make_pv_area (RL78_SP_REGNUM, gdbarch_addr_bit (target_gdbarch ()));
-  back_to = make_cleanup_free_pv_area (stack);
+  pv_area stack (RL78_SP_REGNUM, gdbarch_addr_bit (target_gdbarch ()));
 
   /* The call instruction has saved the return address on the stack.  */
   reg[RL78_SP_REGNUM] = pv_add_constant (reg[RL78_SP_REGNUM], -4);
-  pv_area_store (stack, reg[RL78_SP_REGNUM], 4, reg[RL78_PC_REGNUM]);
+  stack.store (reg[RL78_SP_REGNUM], 4, reg[RL78_PC_REGNUM]);
 
   pc = start_pc;
   while (pc < limit_pc)
@@ -954,12 +951,12 @@ rl78_analyze_prologue (CORE_ADDR start_p
 	       && opc.op[1].type == RL78_Operand_Register)
 	{
 	  int rsrc = (bank * RL78_REGS_PER_BANK) 
-	           + 2 * (opc.op[1].reg - RL78_Reg_AX);
+	    + 2 * (opc.op[1].reg - RL78_Reg_AX);
 
 	  reg[RL78_SP_REGNUM] = pv_add_constant (reg[RL78_SP_REGNUM], -1);
-	  pv_area_store (stack, reg[RL78_SP_REGNUM], 1, reg[rsrc]);
+	  stack.store (reg[RL78_SP_REGNUM], 1, reg[rsrc]);
 	  reg[RL78_SP_REGNUM] = pv_add_constant (reg[RL78_SP_REGNUM], -1);
-	  pv_area_store (stack, reg[RL78_SP_REGNUM], 1, reg[rsrc + 1]);
+	  stack.store (reg[RL78_SP_REGNUM], 1, reg[rsrc + 1]);
 	  after_last_frame_setup_insn = next_pc;
 	}
       else if (opc.id == RLO_sub
@@ -1016,11 +1013,9 @@ rl78_analyze_prologue (CORE_ADDR start_p
     result->frame_size = reg[RL78_SP_REGNUM].k;
 
   /* Record where all the registers were saved.  */
-  pv_area_scan (stack, check_for_saved, (void *) result);
+  stack.scan (check_for_saved, (void *) result);
 
   result->prologue_end = after_last_frame_setup_insn;
-
-  do_cleanups (back_to);
 }
 
 /* Implement the "addr_bits_remove" gdbarch method.  */
@@ -1417,7 +1412,8 @@ rl78_gdbarch_init (struct gdbarch_info i
   tdep->elf_flags = elf_flags;
 
   /* Initialize types.  */
-  tdep->rl78_void = arch_type (gdbarch, TYPE_CODE_VOID, 1, "void");
+  tdep->rl78_void = arch_type (gdbarch, TYPE_CODE_VOID, TARGET_CHAR_BIT,
+			       "void");
   tdep->rl78_uint8 = arch_integer_type (gdbarch, 8, 1, "uint8_t");
   tdep->rl78_int8 = arch_integer_type (gdbarch, 8, 0, "int8_t");
   tdep->rl78_uint16 = arch_integer_type (gdbarch, 16, 1, "uint16_t");
@@ -1470,9 +1466,6 @@ rl78_gdbarch_init (struct gdbarch_info i
   set_gdbarch_sw_breakpoint_from_kind (gdbarch, rl78_breakpoint::bp_from_kind);
   set_gdbarch_decr_pc_after_break (gdbarch, 1);
 
-  /* Disassembly.  */
-  set_gdbarch_print_insn (gdbarch, print_insn_rl78);
-
   /* Frames, prologues, etc.  */
   set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
   set_gdbarch_skip_prologue (gdbarch, rl78_skip_prologue);
@@ -1494,9 +1487,6 @@ rl78_gdbarch_init (struct gdbarch_info i
   return gdbarch;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_rl78_tdep;
-
 /* Register the above initialization routine.  */
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rs6000-aix-tdep.c ./gdb/rs6000-aix-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rs6000-aix-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/rs6000-aix-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native support code for PPC AIX, for GDB the GNU debugger.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    Free Software Foundation, Inc.
 
@@ -36,6 +36,7 @@
 #include "xcoffread.h"
 #include "solib.h"
 #include "solib-aix.h"
+#include "target-float.h"
 #include "xml-utils.h"
 
 /* If the kernel has to deliver a signal, it pushes a sigcontext
@@ -253,13 +254,12 @@ rs6000_push_dummy_call (struct gdbarch *
 	     Always store the floating point value using the register's
 	     floating-point format.  */
 	  const int fp_regnum = tdep->ppc_fp0_regnum + 1 + f_argno;
-	  gdb_byte reg_val[MAX_REGISTER_SIZE];
+	  gdb_byte reg_val[PPC_MAX_REGISTER_SIZE];
 	  struct type *reg_type = register_type (gdbarch, fp_regnum);
 
 	  gdb_assert (len <= 8);
 
-	  convert_typed_floating (value_contents (arg), type,
-				  reg_val, reg_type);
+	  target_float_convert (value_contents (arg), type, reg_val, reg_type);
 	  regcache_cooked_write (regcache, fp_regnum, reg_val);
 	  ++f_argno;
 	}
@@ -270,7 +270,7 @@ rs6000_push_dummy_call (struct gdbarch *
 	  /* Argument takes more than one register.  */
 	  while (argbytes < len)
 	    {
-	      gdb_byte word[MAX_REGISTER_SIZE];
+	      gdb_byte word[PPC_MAX_REGISTER_SIZE];
 	      memset (word, 0, reg_size);
 	      memcpy (word,
 		      ((char *) value_contents (arg)) + argbytes,
@@ -290,7 +290,7 @@ rs6000_push_dummy_call (struct gdbarch *
       else
 	{
 	  /* Argument can fit in one register.  No problem.  */
-	  gdb_byte word[MAX_REGISTER_SIZE];
+	  gdb_byte word[PPC_MAX_REGISTER_SIZE];
 
 	  memset (word, 0, reg_size);
 	  memcpy (word, value_contents (arg), len);
@@ -463,11 +463,11 @@ rs6000_return_value (struct gdbarch *gdb
       if (readbuf)
 	{
 	  regcache_cooked_read (regcache, tdep->ppc_fp0_regnum + 1, regval);
-	  convert_typed_floating (regval, regtype, readbuf, valtype);
+	  target_float_convert (regval, regtype, readbuf, valtype);
 	}
       if (writebuf)
 	{
-	  convert_typed_floating (writebuf, valtype, regval, regtype);
+	  target_float_convert (writebuf, valtype, regval, regtype);
 	  regcache_cooked_write (regcache, tdep->ppc_fp0_regnum + 1, regval);
 	}
 
@@ -600,7 +600,7 @@ static CORE_ADDR
 branch_dest (struct regcache *regcache, int opcode, int instr,
 	     CORE_ADDR pc, CORE_ADDR safety)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR dest;
@@ -673,23 +673,22 @@ branch_dest (struct regcache *regcache, 
 
 /* AIX does not support PT_STEP.  Simulate it.  */
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 rs6000_software_single_step (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int ii, insn;
   CORE_ADDR loc;
   CORE_ADDR breaks[2];
   int opcode;
-  VEC (CORE_ADDR) *next_pcs;
 
   loc = regcache_read_pc (regcache);
 
   insn = read_memory_integer (loc, 4, byte_order);
 
-  next_pcs = ppc_deal_with_atomic_sequence (regcache);
-  if (next_pcs != NULL)
+  std::vector<CORE_ADDR> next_pcs = ppc_deal_with_atomic_sequence (regcache);
+  if (!next_pcs.empty ())
     return next_pcs;
   
   breaks[0] = loc + PPC_INSN_SIZE;
@@ -705,7 +704,8 @@ rs6000_software_single_step (struct regc
       /* ignore invalid breakpoint.  */
       if (breaks[ii] == -1)
 	continue;
-      VEC_safe_push (CORE_ADDR, next_pcs, breaks[ii]);
+
+      next_pcs.push_back (breaks[ii]);
     }
 
   errno = 0;			/* FIXME, don't ignore errors!  */
@@ -908,20 +908,16 @@ static void
 rs6000_aix_shared_library_to_xml (struct ld_info *ldi,
 				  struct obstack *obstack)
 {
-  char *p;
-
   obstack_grow_str (obstack, "<library name=\"");
-  p = xml_escape_text (ldi->filename);
-  obstack_grow_str (obstack, p);
-  xfree (p);
+  std::string p = xml_escape_text (ldi->filename);
+  obstack_grow_str (obstack, p.c_str ());
   obstack_grow_str (obstack, "\"");
 
   if (ldi->member_name[0] != '\0')
     {
       obstack_grow_str (obstack, " member=\"");
       p = xml_escape_text (ldi->member_name);
-      obstack_grow_str (obstack, p);
-      xfree (p);
+      obstack_grow_str (obstack, p.c_str ());
       obstack_grow_str (obstack, "\"");
     }
 
@@ -1048,7 +1044,6 @@ rs6000_aix_init_osabi (struct gdbarch_in
      software single-stepping.  */
   set_gdbarch_displaced_step_copy_insn (gdbarch, NULL);
   set_gdbarch_displaced_step_fixup (gdbarch, NULL);
-  set_gdbarch_displaced_step_free_closure (gdbarch, NULL);
   set_gdbarch_displaced_step_location (gdbarch, NULL);
 
   set_gdbarch_push_dummy_call (gdbarch, rs6000_push_dummy_call);
@@ -1090,9 +1085,6 @@ rs6000_aix_init_osabi (struct gdbarch_in
   set_solib_ops (gdbarch, &solib_aix_so_ops);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_rs6000_aix_tdep;
-
 void
 _initialize_rs6000_aix_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rs6000-aix-tdep.h ./gdb/rs6000-aix-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rs6000-aix-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/rs6000-aix-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rs6000-lynx178-tdep.c ./gdb/rs6000-lynx178-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rs6000-lynx178-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/rs6000-lynx178-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -22,6 +22,7 @@
 #include "gdbtypes.h"
 #include "infcall.h"
 #include "ppc-tdep.h"
+#include "target-float.h"
 #include "value.h"
 #include "xcoffread.h"
 
@@ -105,13 +106,12 @@ rs6000_lynx178_push_dummy_call (struct g
 	     Always store the floating point value using the register's
 	     floating-point format.  */
 	  const int fp_regnum = tdep->ppc_fp0_regnum + 1 + f_argno;
-	  gdb_byte reg_val[MAX_REGISTER_SIZE];
+	  gdb_byte reg_val[PPC_MAX_REGISTER_SIZE];
 	  struct type *reg_type = register_type (gdbarch, fp_regnum);
 
 	  gdb_assert (len <= 8);
 
-	  convert_typed_floating (value_contents (arg), type,
-				  reg_val, reg_type);
+	  target_float_convert (value_contents (arg), type, reg_val, reg_type);
 	  regcache_cooked_write (regcache, fp_regnum, reg_val);
 	  ++f_argno;
 	}
@@ -122,7 +122,7 @@ rs6000_lynx178_push_dummy_call (struct g
 	  /* Argument takes more than one register.  */
 	  while (argbytes < len)
 	    {
-	      gdb_byte word[MAX_REGISTER_SIZE];
+	      gdb_byte word[PPC_MAX_REGISTER_SIZE];
 	      memset (word, 0, reg_size);
 	      memcpy (word,
 		      ((char *) value_contents (arg)) + argbytes,
@@ -142,7 +142,7 @@ rs6000_lynx178_push_dummy_call (struct g
       else
 	{
 	  /* Argument can fit in one register.  No problem.  */
-	  gdb_byte word[MAX_REGISTER_SIZE];
+	  gdb_byte word[PPC_MAX_REGISTER_SIZE];
 
 	  memset (word, 0, reg_size);
 	  memcpy (word, value_contents (arg), len);
@@ -314,11 +314,11 @@ rs6000_lynx178_return_value (struct gdba
       if (readbuf)
 	{
 	  regcache_cooked_read (regcache, tdep->ppc_fp0_regnum + 1, regval);
-	  convert_typed_floating (regval, regtype, readbuf, valtype);
+	  target_float_convert (regval, regtype, readbuf, valtype);
 	}
       if (writebuf)
 	{
-	  convert_typed_floating (writebuf, valtype, regval, regtype);
+	  target_float_convert (writebuf, valtype, regval, regtype);
 	  regcache_cooked_write (regcache, tdep->ppc_fp0_regnum + 1, regval);
 	}
 
@@ -411,9 +411,6 @@ rs6000_lynx178_init_osabi (struct gdbarc
   set_gdbarch_long_double_bit (gdbarch, 8 * TARGET_CHAR_BIT);
 }
 
-/* -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_rs6000_lynx178_tdep;
-
 void
 _initialize_rs6000_lynx178_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rs6000-nat.c ./gdb/rs6000-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rs6000-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/rs6000-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* IBM RS/6000 native-dependent code for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -161,8 +161,8 @@ rs6000_ptrace64 (int req, int id, long l
 static void
 fetch_register (struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
-  int addr[MAX_REGISTER_SIZE];
+  struct gdbarch *gdbarch = regcache->arch ();
+  int addr[PPC_MAX_REGISTER_SIZE];
   int nr, isfloat;
   pid_t pid = ptid_get_pid (regcache_get_ptid (regcache));
 
@@ -220,8 +220,8 @@ fetch_register (struct regcache *regcach
 static void
 store_register (struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
-  int addr[MAX_REGISTER_SIZE];
+  struct gdbarch *gdbarch = regcache->arch ();
+  int addr[PPC_MAX_REGISTER_SIZE];
   int nr, isfloat;
   pid_t pid = ptid_get_pid (regcache_get_ptid (regcache));
 
@@ -281,7 +281,7 @@ static void
 rs6000_fetch_inferior_registers (struct target_ops *ops,
 				 struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   if (regno != -1)
     fetch_register (regcache, regno);
 
@@ -324,7 +324,7 @@ static void
 rs6000_store_inferior_registers (struct target_ops *ops,
 				 struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   if (regno != -1)
     store_register (regcache, regno);
 
@@ -655,8 +655,6 @@ rs6000_xfer_shared_libraries
     }
 }
 
-void _initialize_rs6000_nat (void);
-
 void
 _initialize_rs6000_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rs6000-tdep.c ./gdb/rs6000-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rs6000-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/rs6000-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -29,7 +29,7 @@
 #include "arch-utils.h"
 #include "regcache.h"
 #include "regset.h"
-#include "doublest.h"
+#include "target-float.h"
 #include "value.h"
 #include "parser-defs.h"
 #include "osabi.h"
@@ -393,7 +393,7 @@ ppc_supply_reg (struct regcache *regcach
     {
       if (regsize > 4)
 	{
-	  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+	  struct gdbarch *gdbarch = regcache->arch ();
 	  int gdb_regsize = register_size (gdbarch, regnum);
 	  if (gdb_regsize < regsize
 	      && gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG)
@@ -414,7 +414,7 @@ ppc_collect_reg (const struct regcache *
     {
       if (regsize > 4)
 	{
-	  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+	  struct gdbarch *gdbarch = regcache->arch ();
 	  int gdb_regsize = register_size (gdbarch, regnum);
 	  if (gdb_regsize < regsize)
 	    {
@@ -511,7 +511,7 @@ void
 ppc_supply_gregset (const struct regset *regset, struct regcache *regcache,
 		    int regnum, const void *gregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   const struct ppc_reg_offsets *offsets
     = (const struct ppc_reg_offsets *) regset->regmap;
@@ -561,7 +561,7 @@ void
 ppc_supply_fpregset (const struct regset *regset, struct regcache *regcache,
 		     int regnum, const void *fpregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep;
   const struct ppc_reg_offsets *offsets;
   size_t offset;
@@ -599,7 +599,7 @@ void
 ppc_supply_vsxregset (const struct regset *regset, struct regcache *regcache,
 		     int regnum, const void *vsxregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep;
 
   if (!ppc_vsx_support_p (gdbarch))
@@ -630,7 +630,7 @@ void
 ppc_supply_vrregset (const struct regset *regset, struct regcache *regcache,
 		     int regnum, const void *vrregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep;
   const struct ppc_reg_offsets *offsets;
   size_t offset;
@@ -676,7 +676,7 @@ ppc_collect_gregset (const struct regset
 		     const struct regcache *regcache,
 		     int regnum, void *gregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   const struct ppc_reg_offsets *offsets
     = (const struct ppc_reg_offsets *) regset->regmap;
@@ -727,7 +727,7 @@ ppc_collect_fpregset (const struct regse
 		      const struct regcache *regcache,
 		      int regnum, void *fpregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep;
   const struct ppc_reg_offsets *offsets;
   size_t offset;
@@ -767,7 +767,7 @@ ppc_collect_vsxregset (const struct regs
 		      const struct regcache *regcache,
 		      int regnum, void *vsxregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep;
 
   if (!ppc_vsx_support_p (gdbarch))
@@ -801,7 +801,7 @@ ppc_collect_vrregset (const struct regse
 		      const struct regcache *regcache,
 		      int regnum, void *vrregs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep;
   const struct ppc_reg_offsets *offsets;
   size_t offset;
@@ -1014,8 +1014,9 @@ typedef BP_MANIPULATION_ENDIAN (little_b
 					 || (insn & STORE_CONDITIONAL_MASK) == STHCX_INSTRUCTION \
 					 || (insn & STORE_CONDITIONAL_MASK) == STQCX_INSTRUCTION)
 
-/* We can't displaced step atomic sequences.  Otherwise this is just
-   like simple_displaced_step_copy_insn.  */
+typedef buf_displaced_step_closure ppc_displaced_step_closure;
+
+/* We can't displaced step atomic sequences.  */
 
 static struct displaced_step_closure *
 ppc_displaced_step_copy_insn (struct gdbarch *gdbarch,
@@ -1023,8 +1024,9 @@ ppc_displaced_step_copy_insn (struct gdb
 			      struct regcache *regs)
 {
   size_t len = gdbarch_max_insn_length (gdbarch);
-  gdb_byte *buf = (gdb_byte *) xmalloc (len);
-  struct cleanup *old_chain = make_cleanup (xfree, buf);
+  std::unique_ptr<ppc_displaced_step_closure> closure
+    (new ppc_displaced_step_closure (len));
+  gdb_byte *buf = closure->buf.data ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int insn;
 
@@ -1042,7 +1044,7 @@ ppc_displaced_step_copy_insn (struct gdb
 			      "atomic sequence at %s\n",
 			      paddress (gdbarch, from));
 	}
-      do_cleanups (old_chain);
+
       return NULL;
     }
 
@@ -1055,22 +1057,22 @@ ppc_displaced_step_copy_insn (struct gdb
       displaced_step_dump_bytes (gdb_stdlog, buf, len);
     }
 
-  discard_cleanups (old_chain);
-  return (struct displaced_step_closure *) buf;
+  return closure.release ();
 }
 
 /* Fix up the state of registers and memory after having single-stepped
    a displaced instruction.  */
 static void
 ppc_displaced_step_fixup (struct gdbarch *gdbarch,
-			  struct displaced_step_closure *closure,
+			  struct displaced_step_closure *closure_,
 			  CORE_ADDR from, CORE_ADDR to,
 			  struct regcache *regs)
 {
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   /* Our closure is a copy of the instruction.  */
-  ULONGEST insn  = extract_unsigned_integer ((gdb_byte *) closure,
-					      PPC_INSN_SIZE, byte_order);
+  ppc_displaced_step_closure *closure = (ppc_displaced_step_closure *) closure_;
+  ULONGEST insn  = extract_unsigned_integer (closure->buf.data (),
+					     PPC_INSN_SIZE, byte_order);
   ULONGEST opcode = 0;
   /* Offset for non PC-relative instructions.  */
   LONGEST offset = PPC_INSN_SIZE;
@@ -1165,10 +1167,10 @@ ppc_displaced_step_hw_singlestep (struct
    Load And Reserve instruction and ending with a Store Conditional
    instruction.  If such a sequence is found, attempt to step through it.
    A breakpoint is placed at the end of the sequence.  */
-VEC (CORE_ADDR) *
+std::vector<CORE_ADDR>
 ppc_deal_with_atomic_sequence (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR pc = regcache_read_pc (regcache);
   CORE_ADDR breaks[2] = {-1, -1};
@@ -1180,11 +1182,10 @@ ppc_deal_with_atomic_sequence (struct re
   int last_breakpoint = 0; /* Defaults to 0 (no breakpoints placed).  */  
   const int atomic_sequence_length = 16; /* Instruction sequence length.  */
   int bc_insn_count = 0; /* Conditional branch instruction count.  */
-  VEC (CORE_ADDR) *next_pcs = NULL;
 
   /* Assume all atomic sequences start with a Load And Reserve instruction.  */
   if (!IS_LOAD_AND_RESERVE_INSN (insn))
-    return NULL;
+    return {};
 
   /* Assume that no atomic sequence is longer than "atomic_sequence_length" 
      instructions.  */
@@ -1202,8 +1203,8 @@ ppc_deal_with_atomic_sequence (struct re
           int absolute = insn & 2;
 
           if (bc_insn_count >= 1)
-            return 0; /* More than one conditional branch found, fallback 
-                         to the standard single-step code.  */
+            return {}; /* More than one conditional branch found, fallback
+                          to the standard single-step code.  */
  
 	  if (absolute)
 	    breaks[1] = immediate;
@@ -1221,11 +1222,10 @@ ppc_deal_with_atomic_sequence (struct re
   /* Assume that the atomic sequence ends with a Store Conditional
      instruction.  */
   if (!IS_STORE_CONDITIONAL_INSN (insn))
-    return NULL;
+    return {};
 
   closing_insn = loc;
   loc += PPC_INSN_SIZE;
-  insn = read_memory_integer (loc, PPC_INSN_SIZE, byte_order);
 
   /* Insert a breakpoint right after the end of the atomic sequence.  */
   breaks[0] = loc;
@@ -1237,8 +1237,10 @@ ppc_deal_with_atomic_sequence (struct re
 	  || (breaks[1] >= pc && breaks[1] <= closing_insn)))
     last_breakpoint = 0;
 
+  std::vector<CORE_ADDR> next_pcs;
+
   for (index = 0; index <= last_breakpoint; index++)
-    VEC_safe_push (CORE_ADDR, next_pcs, breaks[index]);
+    next_pcs.push_back (breaks[index]);
 
   return next_pcs;
 }
@@ -2610,7 +2612,7 @@ rs6000_register_to_value (struct frame_i
 			  int *optimizedp, int *unavailablep)
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
-  gdb_byte from[MAX_REGISTER_SIZE];
+  gdb_byte from[PPC_MAX_REGISTER_SIZE];
   
   gdb_assert (TYPE_CODE (type) == TYPE_CODE_FLT);
 
@@ -2619,8 +2621,8 @@ rs6000_register_to_value (struct frame_i
 				 from, optimizedp, unavailablep))
     return 0;
 
-  convert_typed_floating (from, builtin_type (gdbarch)->builtin_double,
-			  to, type);
+  target_float_convert (from, builtin_type (gdbarch)->builtin_double,
+			to, type);
   *optimizedp = *unavailablep = 0;
   return 1;
 }
@@ -2632,12 +2634,12 @@ rs6000_value_to_register (struct frame_i
                           const gdb_byte *from)
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
-  gdb_byte to[MAX_REGISTER_SIZE];
+  gdb_byte to[PPC_MAX_REGISTER_SIZE];
 
   gdb_assert (TYPE_CODE (type) == TYPE_CODE_FLT);
 
-  convert_typed_floating (from, type,
-			  to, builtin_type (gdbarch)->builtin_double);
+  target_float_convert (from, type,
+			to, builtin_type (gdbarch)->builtin_double);
   put_frame_register (frame, regnum, to);
 }
 
@@ -2674,7 +2676,7 @@ static enum register_status
 e500_move_ev_register (move_ev_register_func move,
 		       struct regcache *regcache, int ev_reg, void *buffer)
 {
-  struct gdbarch *arch = get_regcache_arch (regcache);
+  struct gdbarch *arch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (arch); 
   int reg_index;
   gdb_byte *byte_buffer = (gdb_byte *) buffer;
@@ -2888,7 +2890,7 @@ rs6000_pseudo_register_read (struct gdba
 			     struct regcache *regcache,
 			     int reg_nr, gdb_byte *buffer)
 {
-  struct gdbarch *regcache_arch = get_regcache_arch (regcache);
+  struct gdbarch *regcache_arch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); 
 
   gdb_assert (regcache_arch == gdbarch);
@@ -2913,7 +2915,7 @@ rs6000_pseudo_register_write (struct gdb
 			      struct regcache *regcache,
 			      int reg_nr, const gdb_byte *buffer)
 {
-  struct gdbarch *regcache_arch = get_regcache_arch (regcache);
+  struct gdbarch *regcache_arch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); 
 
   gdb_assert (regcache_arch == gdbarch);
@@ -3232,14 +3234,6 @@ find_variant_by_arch (enum bfd_architect
   return NULL;
 }
 
-static int
-gdb_print_insn_powerpc (bfd_vma memaddr, disassemble_info *info)
-{
-  if (info->endian == BFD_ENDIAN_BIG)
-    return print_insn_big_powerpc (memaddr, info);
-  else
-    return print_insn_little_powerpc (memaddr, info);
-}
 
 static CORE_ADDR
 rs6000_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
@@ -5954,6 +5948,7 @@ rs6000_gdbarch_init (struct gdbarch_info
   bfd abfd;
   enum auto_boolean soft_float_flag = powerpc_soft_float_global;
   int soft_float;
+  enum powerpc_long_double_abi long_double_abi = POWERPC_LONG_DOUBLE_AUTO;
   enum powerpc_vector_abi vector_abi = powerpc_vector_abi_global;
   enum powerpc_elf_abi elf_abi = POWERPC_ELF_AUTO;
   int have_fpu = 1, have_spe = 0, have_mq = 0, have_altivec = 0, have_dfp = 0,
@@ -6276,7 +6271,7 @@ rs6000_gdbarch_init (struct gdbarch_info
   if (soft_float_flag == AUTO_BOOLEAN_AUTO && from_elf_exec)
     {
       switch (bfd_elf_get_obj_attr_int (info.abfd, OBJ_ATTR_GNU,
-					Tag_GNU_Power_ABI_FP))
+					Tag_GNU_Power_ABI_FP) & 3)
 	{
 	case 1:
 	  soft_float_flag = AUTO_BOOLEAN_FALSE;
@@ -6289,6 +6284,22 @@ rs6000_gdbarch_init (struct gdbarch_info
 	}
     }
 
+  if (long_double_abi == POWERPC_LONG_DOUBLE_AUTO && from_elf_exec)
+    {
+      switch (bfd_elf_get_obj_attr_int (info.abfd, OBJ_ATTR_GNU,
+					Tag_GNU_Power_ABI_FP) >> 2)
+	{
+	case 1:
+	  long_double_abi = POWERPC_LONG_DOUBLE_IBM128;
+	  break;
+	case 3:
+	  long_double_abi = POWERPC_LONG_DOUBLE_IEEE128;
+	  break;
+	default:
+	  break;
+	}
+    }
+
   if (vector_abi == POWERPC_VEC_AUTO && from_elf_exec)
     {
       switch (bfd_elf_get_obj_attr_int (info.abfd, OBJ_ATTR_GNU,
@@ -6370,6 +6381,8 @@ rs6000_gdbarch_init (struct gdbarch_info
 	continue;
       if (tdep && tdep->soft_float != soft_float)
 	continue;
+      if (tdep && tdep->long_double_abi != long_double_abi)
+	continue;
       if (tdep && tdep->vector_abi != vector_abi)
 	continue;
       if (tdep && tdep->wordsize == wordsize)
@@ -6392,6 +6405,7 @@ rs6000_gdbarch_init (struct gdbarch_info
   tdep->wordsize = wordsize;
   tdep->elf_abi = elf_abi;
   tdep->soft_float = soft_float;
+  tdep->long_double_abi = long_double_abi;
   tdep->vector_abi = vector_abi;
 
   gdbarch = gdbarch_alloc (&info, tdep);
@@ -6448,12 +6462,6 @@ rs6000_gdbarch_init (struct gdbarch_info
 
   set_gdbarch_have_nonsteppable_watchpoint (gdbarch, 1);
 
-  /* Select instruction printer.  */
-  if (arch == bfd_arch_rs6000)
-    set_gdbarch_print_insn (gdbarch, print_insn_rs6000);
-  else
-    set_gdbarch_print_insn (gdbarch, gdb_print_insn_powerpc);
-
   set_gdbarch_num_regs (gdbarch, PPC_NUM_REGS);
 
   if (have_spe)
@@ -6535,8 +6543,6 @@ rs6000_gdbarch_init (struct gdbarch_info
   set_gdbarch_displaced_step_hw_singlestep (gdbarch,
 					    ppc_displaced_step_hw_singlestep);
   set_gdbarch_displaced_step_fixup (gdbarch, ppc_displaced_step_fixup);
-  set_gdbarch_displaced_step_free_closure (gdbarch,
-					   simple_displaced_step_free_closure);
   set_gdbarch_displaced_step_location (gdbarch,
 				       displaced_step_at_entry_point);
 
@@ -6544,7 +6550,7 @@ rs6000_gdbarch_init (struct gdbarch_info
 
   /* Hook in ABI-specific overrides, if they have been registered.  */
   info.target_desc = tdesc;
-  info.tdep_info = tdesc_data;
+  info.tdesc_data = tdesc_data;
   gdbarch_init_osabi (info, gdbarch);
 
   switch (info.osabi)
@@ -6633,7 +6639,7 @@ rs6000_dump_tdep (struct gdbarch *gdbarc
 /* PowerPC-specific commands.  */
 
 static void
-set_powerpc_command (char *args, int from_tty)
+set_powerpc_command (const char *args, int from_tty)
 {
   printf_unfiltered (_("\
 \"set powerpc\" must be followed by an appropriate subcommand.\n"));
@@ -6641,13 +6647,13 @@ set_powerpc_command (char *args, int fro
 }
 
 static void
-show_powerpc_command (char *args, int from_tty)
+show_powerpc_command (const char *args, int from_tty)
 {
   cmd_show_list (showpowerpccmdlist, from_tty, "");
 }
 
 static void
-powerpc_set_soft_float (char *args, int from_tty,
+powerpc_set_soft_float (const char *args, int from_tty,
 			struct cmd_list_element *c)
 {
   struct gdbarch_info info;
@@ -6659,7 +6665,7 @@ powerpc_set_soft_float (char *args, int 
 }
 
 static void
-powerpc_set_vector_abi (char *args, int from_tty,
+powerpc_set_vector_abi (const char *args, int from_tty,
 			struct cmd_list_element *c)
 {
   struct gdbarch_info info;
@@ -6766,9 +6772,6 @@ ppc_insn_ds_field (unsigned int insn)
 
 /* Initialization code.  */
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_rs6000_tdep;
-
 void
 _initialize_rs6000_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rs6000-tdep.h ./gdb/rs6000-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rs6000-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/rs6000-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rust-exp.c ./gdb/rust-exp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rust-exp.c	2018-01-02 02:06:30.000000000 +0000
+++ ./gdb/rust-exp.c	2018-01-09 02:08:07.000000000 +0000
@@ -89,11 +89,8 @@
 
 #define RUSTSTYPE YYSTYPE
 
-extern initialize_file_ftype _initialize_rust_exp;
-
 struct rust_op;
-typedef const struct rust_op *rust_op_ptr;
-DEF_VEC_P (rust_op_ptr);
+typedef std::vector<const struct rust_op *> rust_op_vector;
 
 /* A typed integer constant.  */
 
@@ -107,7 +104,7 @@ struct typed_val_int
 
 struct typed_val_float
 {
-  DOUBLEST dval;
+  gdb_byte val[16];
   struct type *type;
 };
 
@@ -120,10 +117,7 @@ struct set_field
   const struct rust_op *init;
 };
 
-typedef struct set_field set_field;
-
-DEF_VEC_O (set_field);
-
+typedef std::vector<set_field> rust_set_vector;
 
 static int rustyylex (void);
 static void rust_push_back (char c);
@@ -160,12 +154,12 @@ static const struct rust_op *ast_cast (c
 				       const struct rust_op *type);
 static const struct rust_op *ast_call_ish (enum exp_opcode opcode,
 					   const struct rust_op *expr,
-					   VEC (rust_op_ptr) **params);
+					   rust_op_vector *params);
 static const struct rust_op *ast_path (struct stoken name,
-				       VEC (rust_op_ptr) **params);
+				       rust_op_vector *params);
 static const struct rust_op *ast_string (struct stoken str);
 static const struct rust_op *ast_struct (const struct rust_op *name,
-					 VEC (set_field) **fields);
+					 rust_set_vector *fields);
 static const struct rust_op *ast_range (const struct rust_op *lhs,
 					const struct rust_op *rhs);
 static const struct rust_op *ast_array_type (const struct rust_op *lhs,
@@ -175,13 +169,13 @@ static const struct rust_op *ast_referen
 static const struct rust_op *ast_pointer_type (const struct rust_op *type,
 					       int is_mut);
 static const struct rust_op *ast_function_type (const struct rust_op *result,
-						VEC (rust_op_ptr) **params);
-static const struct rust_op *ast_tuple_type (VEC (rust_op_ptr) **params);
+						rust_op_vector *params);
+static const struct rust_op *ast_tuple_type (rust_op_vector *params);
 
-/* The state of the parser, used internally when we are parsing the
-   expression.  */
+/* The current rust parser.  */
 
-static struct parser_state *pstate = NULL;
+struct rust_parser;
+static rust_parser *current_parser;
 
 /* A regular expression for matching Rust numbers.  This is split up
    since it is very long and this gives us a way to comment the
@@ -229,22 +223,81 @@ static const char *number_regex_text =
 
 static regex_t number_regex;
 
-/* True if we're running unit tests.  */
-
-static int unit_testing;
+/* Obstack for data temporarily allocated during parsing.  Points to
+   the obstack in the rust_parser, or to a temporary obstack during
+   unit testing.  */
+
+static auto_obstack *work_obstack;
+
+/* An instance of this is created before parsing, and destroyed when
+   parsing is finished.  */
+
+struct rust_parser
+{
+  rust_parser (struct parser_state *state)
+    : rust_ast (nullptr),
+      pstate (state)
+  {
+    gdb_assert (current_parser == nullptr);
+    current_parser = this;
+    work_obstack = &obstack;
+  }
+
+  ~rust_parser ()
+  {
+    /* Clean up the globals we set.  */
+    current_parser = nullptr;
+    work_obstack = nullptr;
+  }
+
+  /* Create a new rust_set_vector.  The storage for the new vector is
+     managed by this class.  */
+  rust_set_vector *new_set_vector ()
+  {
+    rust_set_vector *result = new rust_set_vector;
+    set_vectors.push_back (std::unique_ptr<rust_set_vector> (result));
+    return result;
+  }
+
+  /* Create a new rust_ops_vector.  The storage for the new vector is
+     managed by this class.  */
+  rust_op_vector *new_op_vector ()
+  {
+    rust_op_vector *result = new rust_op_vector;
+    op_vectors.push_back (std::unique_ptr<rust_op_vector> (result));
+    return result;
+  }
+
+  /* Return the parser's language.  */
+  const struct language_defn *language () const
+  {
+    return parse_language (pstate);
+  }
+
+  /* Return the parser's gdbarch.  */
+  struct gdbarch *arch () const
+  {
+    return parse_gdbarch (pstate);
+  }
+
+  /* A pointer to this is installed globally.  */
+  auto_obstack obstack;
+
+  /* Result of parsing.  Points into obstack.  */
+  const struct rust_op *rust_ast;
+
+  /* This keeps track of the various vectors we allocate.  */
+  std::vector<std::unique_ptr<rust_set_vector>> set_vectors;
+  std::vector<std::unique_ptr<rust_op_vector>> op_vectors;
 
-/* Obstack for data temporarily allocated during parsing.  */
-
-static struct obstack work_obstack;
-
-/* Result of parsing.  Points into work_obstack.  */
-
-static const struct rust_op *rust_ast;
+  /* The parser state gdb gave us.  */
+  struct parser_state *pstate;
+};
 
 
 
 /* Line 189 of yacc.c  */
-#line 248 "rust-exp.c"
+#line 301 "rust-exp.c"
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
@@ -347,7 +400,7 @@ typedef union YYSTYPE
 {
 
 /* Line 214 of yacc.c  */
-#line 197 "rust-exp.y"
+#line 250 "rust-exp.y"
 
   /* A typed integer constant.  */
   struct typed_val_int typed_val_int;
@@ -363,10 +416,10 @@ typedef union YYSTYPE
 
   /* A list of expressions; for example, the arguments to a function
      call.  */
-  VEC (rust_op_ptr) **params;
+  rust_op_vector *params;
 
   /* A list of field initializers.  */
-  VEC (set_field) **field_inits;
+  rust_set_vector *field_inits;
 
   /* A single field initializer.  */
   struct set_field one_field_init;
@@ -381,7 +434,7 @@ typedef union YYSTYPE
 
 
 /* Line 214 of yacc.c  */
-#line 385 "rust-exp.c"
+#line 438 "rust-exp.c"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -392,7 +445,7 @@ typedef union YYSTYPE
 /* Copy the second part of user declarations.  */
 
 /* Line 264 of yacc.c  */
-#line 228 "rust-exp.y"
+#line 281 "rust-exp.y"
 
 
   /* Rust AST operations.  We build a tree of these; then lower them
@@ -424,7 +477,7 @@ struct rust_op
 
 
 /* Line 264 of yacc.c  */
-#line 428 "rust-exp.c"
+#line 481 "rust-exp.c"
 
 #ifdef short
 # undef short
@@ -759,19 +812,19 @@ static const yytype_int8 yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   353,   353,   366,   367,   368,   369,   370,   371,   372,
-     373,   374,   375,   376,   377,   378,   382,   390,   407,   412,
-     422,   434,   439,   449,   461,   463,   465,   467,   472,   474,
-     476,   478,   483,   485,   487,   489,   518,   520,   529,   541,
-     543,   548,   553,   558,   561,   564,   573,   576,   579,   581,
-     586,   587,   588,   589,   593,   596,   599,   602,   605,   608,
-     611,   614,   617,   620,   623,   626,   629,   632,   635,   638,
-     641,   644,   647,   652,   657,   662,   668,   673,   679,   688,
-     693,   698,   705,   709,   711,   715,   717,   722,   724,   726,
-     731,   732,   734,   736,   738,   750,   752,   758,   760,   768,
-     769,   771,   773,   775,   787,   789,   798,   799,   801,   809,
-     810,   812,   814,   816,   818,   820,   822,   824,   830,   831,
-     836,   845
+       0,   406,   406,   419,   420,   421,   422,   423,   424,   425,
+     426,   427,   428,   429,   430,   431,   435,   443,   460,   465,
+     475,   487,   490,   496,   508,   510,   512,   514,   519,   521,
+     523,   525,   530,   532,   534,   536,   563,   565,   574,   586,
+     588,   593,   598,   603,   606,   609,   618,   621,   624,   626,
+     631,   632,   633,   634,   638,   641,   644,   647,   650,   653,
+     656,   659,   662,   665,   668,   671,   674,   677,   680,   683,
+     686,   689,   692,   697,   702,   707,   713,   718,   723,   732,
+     736,   741,   748,   752,   754,   758,   760,   765,   767,   769,
+     774,   775,   777,   779,   781,   793,   795,   801,   803,   811,
+     812,   814,   816,   818,   830,   832,   841,   842,   844,   852,
+     853,   855,   857,   859,   861,   863,   865,   867,   873,   874,
+     879,   885
 };
 #endif
 
@@ -1986,21 +2039,21 @@ yyreduce:
         case 2:
 
 /* Line 1455 of yacc.c  */
-#line 354 "rust-exp.y"
+#line 407 "rust-exp.y"
     {
 		  /* If we are completing and see a valid parse,
 		     rust_ast will already have been set.  */
-		  if (rust_ast == NULL)
-		    rust_ast = (yyvsp[(1) - (1)].op);
+		  if (current_parser->rust_ast == NULL)
+		    current_parser->rust_ast = (yyvsp[(1) - (1)].op);
 		}
     break;
 
   case 16:
 
 /* Line 1455 of yacc.c  */
-#line 383 "rust-exp.y"
+#line 436 "rust-exp.y"
     {
-		  VEC_safe_insert (rust_op_ptr, *(yyvsp[(4) - (5)].params), 0, (yyvsp[(2) - (5)].op));
+		  (yyvsp[(4) - (5)].params)->push_back ((yyvsp[(2) - (5)].op));
 		  error (_("Tuple expressions not supported yet"));
 		}
     break;
@@ -2008,13 +2061,13 @@ yyreduce:
   case 17:
 
 /* Line 1455 of yacc.c  */
-#line 391 "rust-exp.y"
+#line 444 "rust-exp.y"
     {
 		  struct typed_val_int val;
 
 		  val.type
-		    = language_lookup_primitive_type (parse_language (pstate),
-						      parse_gdbarch (pstate),
+		    = language_lookup_primitive_type (current_parser->language (),
+						      current_parser->arch (),
 						      "()");
 		  val.val = 0;
 		  (yyval.op) = ast_literal (val);
@@ -2024,14 +2077,14 @@ yyreduce:
   case 18:
 
 /* Line 1455 of yacc.c  */
-#line 408 "rust-exp.y"
+#line 461 "rust-exp.y"
     { (yyval.op) = ast_struct ((yyvsp[(1) - (4)].op), (yyvsp[(3) - (4)].field_inits)); }
     break;
 
   case 19:
 
 /* Line 1455 of yacc.c  */
-#line 413 "rust-exp.y"
+#line 466 "rust-exp.y"
     {
 		  struct set_field sf;
 
@@ -2046,7 +2099,7 @@ yyreduce:
   case 20:
 
 /* Line 1455 of yacc.c  */
-#line 423 "rust-exp.y"
+#line 476 "rust-exp.y"
     {
 		  struct set_field sf;
 
@@ -2059,25 +2112,19 @@ yyreduce:
   case 21:
 
 /* Line 1455 of yacc.c  */
-#line 434 "rust-exp.y"
+#line 487 "rust-exp.y"
     {
-		  VEC (set_field) **result
-		    = OBSTACK_ZALLOC (&work_obstack, VEC (set_field) *);
-		  (yyval.field_inits) = result;
+		  (yyval.field_inits) = current_parser->new_set_vector ();
 		}
     break;
 
   case 22:
 
 /* Line 1455 of yacc.c  */
-#line 440 "rust-exp.y"
+#line 491 "rust-exp.y"
     {
-		  VEC (set_field) **result
-		    = OBSTACK_ZALLOC (&work_obstack, VEC (set_field) *);
-
-		  make_cleanup (VEC_cleanup (set_field), result);
-		  VEC_safe_push (set_field, *result, &(yyvsp[(1) - (1)].one_field_init));
-
+		  rust_set_vector *result = current_parser->new_set_vector ();
+		  result->push_back ((yyvsp[(1) - (1)].one_field_init));
 		  (yyval.field_inits) = result;
 		}
     break;
@@ -2085,13 +2132,13 @@ yyreduce:
   case 23:
 
 /* Line 1455 of yacc.c  */
-#line 450 "rust-exp.y"
+#line 497 "rust-exp.y"
     {
 		  struct set_field sf;
 
 		  sf.name = (yyvsp[(1) - (5)].sval);
 		  sf.init = (yyvsp[(3) - (5)].op);
-		  VEC_safe_push (set_field, *(yyvsp[(5) - (5)].field_inits), &sf);
+		  (yyvsp[(5) - (5)].field_inits)->push_back (sf);
 		  (yyval.field_inits) = (yyvsp[(5) - (5)].field_inits);
 		}
     break;
@@ -2099,99 +2146,97 @@ yyreduce:
   case 24:
 
 /* Line 1455 of yacc.c  */
-#line 462 "rust-exp.y"
+#line 509 "rust-exp.y"
     { (yyval.op) = ast_call_ish (OP_ARRAY, NULL, (yyvsp[(3) - (4)].params)); }
     break;
 
   case 25:
 
 /* Line 1455 of yacc.c  */
-#line 464 "rust-exp.y"
+#line 511 "rust-exp.y"
     { (yyval.op) = ast_call_ish (OP_ARRAY, NULL, (yyvsp[(2) - (3)].params)); }
     break;
 
   case 26:
 
 /* Line 1455 of yacc.c  */
-#line 466 "rust-exp.y"
+#line 513 "rust-exp.y"
     { (yyval.op) = ast_operation (OP_RUST_ARRAY, (yyvsp[(3) - (6)].op), (yyvsp[(5) - (6)].op)); }
     break;
 
   case 27:
 
 /* Line 1455 of yacc.c  */
-#line 468 "rust-exp.y"
+#line 515 "rust-exp.y"
     { (yyval.op) = ast_operation (OP_RUST_ARRAY, (yyvsp[(2) - (5)].op), (yyvsp[(4) - (5)].op)); }
     break;
 
   case 28:
 
 /* Line 1455 of yacc.c  */
-#line 473 "rust-exp.y"
+#line 520 "rust-exp.y"
     { (yyval.op) = ast_range ((yyvsp[(1) - (2)].op), NULL); }
     break;
 
   case 29:
 
 /* Line 1455 of yacc.c  */
-#line 475 "rust-exp.y"
+#line 522 "rust-exp.y"
     { (yyval.op) = ast_range ((yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 30:
 
 /* Line 1455 of yacc.c  */
-#line 477 "rust-exp.y"
+#line 524 "rust-exp.y"
     { (yyval.op) = ast_range (NULL, (yyvsp[(2) - (2)].op)); }
     break;
 
   case 31:
 
 /* Line 1455 of yacc.c  */
-#line 479 "rust-exp.y"
+#line 526 "rust-exp.y"
     { (yyval.op) = ast_range (NULL, NULL); }
     break;
 
   case 32:
 
 /* Line 1455 of yacc.c  */
-#line 484 "rust-exp.y"
+#line 531 "rust-exp.y"
     { (yyval.op) = ast_literal ((yyvsp[(1) - (1)].typed_val_int)); }
     break;
 
   case 33:
 
 /* Line 1455 of yacc.c  */
-#line 486 "rust-exp.y"
+#line 533 "rust-exp.y"
     { (yyval.op) = ast_literal ((yyvsp[(1) - (1)].typed_val_int)); }
     break;
 
   case 34:
 
 /* Line 1455 of yacc.c  */
-#line 488 "rust-exp.y"
+#line 535 "rust-exp.y"
     { (yyval.op) = ast_dliteral ((yyvsp[(1) - (1)].typed_val_float)); }
     break;
 
   case 35:
 
 /* Line 1455 of yacc.c  */
-#line 490 "rust-exp.y"
+#line 537 "rust-exp.y"
     {
 		  const struct rust_op *str = ast_string ((yyvsp[(1) - (1)].sval));
-		  VEC (set_field) **fields;
 		  struct set_field field;
 		  struct typed_val_int val;
 		  struct stoken token;
 
-		  fields = OBSTACK_ZALLOC (&work_obstack, VEC (set_field) *);
-		  make_cleanup (VEC_cleanup (set_field), fields);
+		  rust_set_vector *fields = current_parser->new_set_vector ();
 
 		  /* Wrap the raw string in the &str struct.  */
 		  field.name.ptr = "data_ptr";
 		  field.name.length = strlen (field.name.ptr);
 		  field.init = ast_unary (UNOP_ADDR, ast_string ((yyvsp[(1) - (1)].sval)));
-		  VEC_safe_push (set_field, *fields, &field);
+		  fields->push_back (field);
 
 		  val.type = rust_type ("usize");
 		  val.val = (yyvsp[(1) - (1)].sval).length;
@@ -2199,7 +2244,7 @@ yyreduce:
 		  field.name.ptr = "length";
 		  field.name.length = strlen (field.name.ptr);
 		  field.init = ast_literal (val);
-		  VEC_safe_push (set_field, *fields, &field);
+		  fields->push_back (field);
 
 		  token.ptr = "&str";
 		  token.length = strlen (token.ptr);
@@ -2210,19 +2255,19 @@ yyreduce:
   case 36:
 
 /* Line 1455 of yacc.c  */
-#line 519 "rust-exp.y"
+#line 564 "rust-exp.y"
     { (yyval.op) = ast_string ((yyvsp[(1) - (1)].sval)); }
     break;
 
   case 37:
 
 /* Line 1455 of yacc.c  */
-#line 521 "rust-exp.y"
+#line 566 "rust-exp.y"
     {
 		  struct typed_val_int val;
 
-		  val.type = language_bool_type (parse_language (pstate),
-						 parse_gdbarch (pstate));
+		  val.type = language_bool_type (current_parser->language (),
+						 current_parser->arch ());
 		  val.val = 1;
 		  (yyval.op) = ast_literal (val);
 		}
@@ -2231,12 +2276,12 @@ yyreduce:
   case 38:
 
 /* Line 1455 of yacc.c  */
-#line 530 "rust-exp.y"
+#line 575 "rust-exp.y"
     {
 		  struct typed_val_int val;
 
-		  val.type = language_bool_type (parse_language (pstate),
-						 parse_gdbarch (pstate));
+		  val.type = language_bool_type (current_parser->language (),
+						 current_parser->arch ());
 		  val.val = 0;
 		  (yyval.op) = ast_literal (val);
 		}
@@ -2245,52 +2290,52 @@ yyreduce:
   case 39:
 
 /* Line 1455 of yacc.c  */
-#line 542 "rust-exp.y"
+#line 587 "rust-exp.y"
     { (yyval.op) = ast_structop ((yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].sval).ptr, 0); }
     break;
 
   case 40:
 
 /* Line 1455 of yacc.c  */
-#line 544 "rust-exp.y"
+#line 589 "rust-exp.y"
     {
 		  (yyval.op) = ast_structop ((yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].sval).ptr, 1);
-		  rust_ast = (yyval.op);
+		  current_parser->rust_ast = (yyval.op);
 		}
     break;
 
   case 41:
 
 /* Line 1455 of yacc.c  */
-#line 549 "rust-exp.y"
+#line 594 "rust-exp.y"
     { (yyval.op) = ast_structop_anonymous ((yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].typed_val_int)); }
     break;
 
   case 42:
 
 /* Line 1455 of yacc.c  */
-#line 554 "rust-exp.y"
+#line 599 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_SUBSCRIPT, (yyvsp[(1) - (4)].op), (yyvsp[(3) - (4)].op)); }
     break;
 
   case 43:
 
 /* Line 1455 of yacc.c  */
-#line 559 "rust-exp.y"
+#line 604 "rust-exp.y"
     { (yyval.op) = ast_unary (UNOP_PLUS, (yyvsp[(2) - (2)].op)); }
     break;
 
   case 44:
 
 /* Line 1455 of yacc.c  */
-#line 562 "rust-exp.y"
+#line 607 "rust-exp.y"
     { (yyval.op) = ast_unary (UNOP_NEG, (yyvsp[(2) - (2)].op)); }
     break;
 
   case 45:
 
 /* Line 1455 of yacc.c  */
-#line 565 "rust-exp.y"
+#line 610 "rust-exp.y"
     {
 		  /* Note that we provide a Rust-specific evaluator
 		     override for UNOP_COMPLEMENT, so it can do the
@@ -2303,209 +2348,208 @@ yyreduce:
   case 46:
 
 /* Line 1455 of yacc.c  */
-#line 574 "rust-exp.y"
+#line 619 "rust-exp.y"
     { (yyval.op) = ast_unary (UNOP_IND, (yyvsp[(2) - (2)].op)); }
     break;
 
   case 47:
 
 /* Line 1455 of yacc.c  */
-#line 577 "rust-exp.y"
+#line 622 "rust-exp.y"
     { (yyval.op) = ast_unary (UNOP_ADDR, (yyvsp[(2) - (2)].op)); }
     break;
 
   case 48:
 
 /* Line 1455 of yacc.c  */
-#line 580 "rust-exp.y"
+#line 625 "rust-exp.y"
     { (yyval.op) = ast_unary (UNOP_ADDR, (yyvsp[(3) - (3)].op)); }
     break;
 
   case 49:
 
 /* Line 1455 of yacc.c  */
-#line 582 "rust-exp.y"
+#line 627 "rust-exp.y"
     { (yyval.op) = ast_unary (UNOP_SIZEOF, (yyvsp[(3) - (4)].op)); }
     break;
 
   case 54:
 
 /* Line 1455 of yacc.c  */
-#line 594 "rust-exp.y"
+#line 639 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_MUL, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 55:
 
 /* Line 1455 of yacc.c  */
-#line 597 "rust-exp.y"
+#line 642 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_REPEAT, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 56:
 
 /* Line 1455 of yacc.c  */
-#line 600 "rust-exp.y"
+#line 645 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_DIV, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 57:
 
 /* Line 1455 of yacc.c  */
-#line 603 "rust-exp.y"
+#line 648 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_REM, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 58:
 
 /* Line 1455 of yacc.c  */
-#line 606 "rust-exp.y"
+#line 651 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_LESS, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 59:
 
 /* Line 1455 of yacc.c  */
-#line 609 "rust-exp.y"
+#line 654 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_GTR, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 60:
 
 /* Line 1455 of yacc.c  */
-#line 612 "rust-exp.y"
+#line 657 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_BITWISE_AND, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 61:
 
 /* Line 1455 of yacc.c  */
-#line 615 "rust-exp.y"
+#line 660 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_BITWISE_IOR, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 62:
 
 /* Line 1455 of yacc.c  */
-#line 618 "rust-exp.y"
+#line 663 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_BITWISE_XOR, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 63:
 
 /* Line 1455 of yacc.c  */
-#line 621 "rust-exp.y"
+#line 666 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_ADD, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 64:
 
 /* Line 1455 of yacc.c  */
-#line 624 "rust-exp.y"
+#line 669 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_SUB, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 65:
 
 /* Line 1455 of yacc.c  */
-#line 627 "rust-exp.y"
+#line 672 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_LOGICAL_OR, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 66:
 
 /* Line 1455 of yacc.c  */
-#line 630 "rust-exp.y"
+#line 675 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_LOGICAL_AND, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 67:
 
 /* Line 1455 of yacc.c  */
-#line 633 "rust-exp.y"
+#line 678 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_EQUAL, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 68:
 
 /* Line 1455 of yacc.c  */
-#line 636 "rust-exp.y"
+#line 681 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_NOTEQUAL, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 69:
 
 /* Line 1455 of yacc.c  */
-#line 639 "rust-exp.y"
+#line 684 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_LEQ, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 70:
 
 /* Line 1455 of yacc.c  */
-#line 642 "rust-exp.y"
+#line 687 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_GEQ, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 71:
 
 /* Line 1455 of yacc.c  */
-#line 645 "rust-exp.y"
+#line 690 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_LSH, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 72:
 
 /* Line 1455 of yacc.c  */
-#line 648 "rust-exp.y"
+#line 693 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_RSH, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 73:
 
 /* Line 1455 of yacc.c  */
-#line 653 "rust-exp.y"
+#line 698 "rust-exp.y"
     { (yyval.op) = ast_cast ((yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 74:
 
 /* Line 1455 of yacc.c  */
-#line 658 "rust-exp.y"
+#line 703 "rust-exp.y"
     { (yyval.op) = ast_operation (BINOP_ASSIGN, (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 75:
 
 /* Line 1455 of yacc.c  */
-#line 663 "rust-exp.y"
+#line 708 "rust-exp.y"
     { (yyval.op) = ast_compound_assignment ((yyvsp[(2) - (3)].opcode), (yyvsp[(1) - (3)].op), (yyvsp[(3) - (3)].op)); }
     break;
 
   case 76:
 
 /* Line 1455 of yacc.c  */
-#line 669 "rust-exp.y"
+#line 714 "rust-exp.y"
     { (yyval.op) = (yyvsp[(2) - (3)].op); }
     break;
 
   case 77:
 
 /* Line 1455 of yacc.c  */
-#line 674 "rust-exp.y"
+#line 719 "rust-exp.y"
     {
-		  (yyval.params) = OBSTACK_ZALLOC (&work_obstack, VEC (rust_op_ptr) *);
-		  make_cleanup (VEC_cleanup (rust_op_ptr), (yyval.params));
-		  VEC_safe_push (rust_op_ptr, *(yyval.params), (yyvsp[(1) - (1)].op));
+		  (yyval.params) = current_parser->new_op_vector ();
+		  (yyval.params)->push_back ((yyvsp[(1) - (1)].op));
 		}
     break;
 
   case 78:
 
 /* Line 1455 of yacc.c  */
-#line 680 "rust-exp.y"
+#line 724 "rust-exp.y"
     {
-		  VEC_safe_push (rust_op_ptr, *(yyvsp[(1) - (3)].params), (yyvsp[(3) - (3)].op));
+		  (yyvsp[(1) - (3)].params)->push_back ((yyvsp[(3) - (3)].op));
 		  (yyval.params) = (yyvsp[(1) - (3)].params);
 		}
     break;
@@ -2513,95 +2557,94 @@ yyreduce:
   case 79:
 
 /* Line 1455 of yacc.c  */
-#line 688 "rust-exp.y"
+#line 732 "rust-exp.y"
     {
 		  /* The result can't be NULL.  */
-		  (yyval.params) = OBSTACK_ZALLOC (&work_obstack, VEC (rust_op_ptr) *);
-		  make_cleanup (VEC_cleanup (rust_op_ptr), (yyval.params));
+		  (yyval.params) = current_parser->new_op_vector ();
 		}
     break;
 
   case 80:
 
 /* Line 1455 of yacc.c  */
-#line 694 "rust-exp.y"
+#line 737 "rust-exp.y"
     { (yyval.params) = (yyvsp[(1) - (1)].params); }
     break;
 
   case 81:
 
 /* Line 1455 of yacc.c  */
-#line 701 "rust-exp.y"
+#line 744 "rust-exp.y"
     { (yyval.params) = (yyvsp[(2) - (3)].params); }
     break;
 
   case 82:
 
 /* Line 1455 of yacc.c  */
-#line 706 "rust-exp.y"
+#line 749 "rust-exp.y"
     { (yyval.op) = ast_call_ish (OP_FUNCALL, (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].params)); }
     break;
 
   case 85:
 
 /* Line 1455 of yacc.c  */
-#line 716 "rust-exp.y"
+#line 759 "rust-exp.y"
     { (yyval.depth) = 1; }
     break;
 
   case 86:
 
 /* Line 1455 of yacc.c  */
-#line 718 "rust-exp.y"
+#line 761 "rust-exp.y"
     { (yyval.depth) = (yyvsp[(1) - (3)].depth) + 1; }
     break;
 
   case 87:
 
 /* Line 1455 of yacc.c  */
-#line 723 "rust-exp.y"
+#line 766 "rust-exp.y"
     { (yyval.op) = (yyvsp[(1) - (1)].op); }
     break;
 
   case 88:
 
 /* Line 1455 of yacc.c  */
-#line 725 "rust-exp.y"
+#line 768 "rust-exp.y"
     { (yyval.op) = ast_path ((yyvsp[(1) - (1)].sval), NULL); }
     break;
 
   case 89:
 
 /* Line 1455 of yacc.c  */
-#line 727 "rust-exp.y"
+#line 770 "rust-exp.y"
     { (yyval.op) = ast_path (make_stoken ("self"), NULL); }
     break;
 
   case 91:
 
 /* Line 1455 of yacc.c  */
-#line 733 "rust-exp.y"
+#line 776 "rust-exp.y"
     { (yyval.op) = super_name ((yyvsp[(3) - (3)].op), 0); }
     break;
 
   case 92:
 
 /* Line 1455 of yacc.c  */
-#line 735 "rust-exp.y"
+#line 778 "rust-exp.y"
     { (yyval.op) = super_name ((yyvsp[(3) - (3)].op), (yyvsp[(2) - (3)].depth)); }
     break;
 
   case 93:
 
 /* Line 1455 of yacc.c  */
-#line 737 "rust-exp.y"
+#line 780 "rust-exp.y"
     { (yyval.op) = crate_name ((yyvsp[(2) - (2)].op)); }
     break;
 
   case 94:
 
 /* Line 1455 of yacc.c  */
-#line 739 "rust-exp.y"
+#line 782 "rust-exp.y"
     {
 		  /* This is a gdb extension to make it possible to
 		     refer to items in other crates.  It just bypasses
@@ -2615,14 +2658,14 @@ yyreduce:
   case 95:
 
 /* Line 1455 of yacc.c  */
-#line 751 "rust-exp.y"
+#line 794 "rust-exp.y"
     { (yyval.op) = ast_path ((yyvsp[(1) - (1)].sval), NULL); }
     break;
 
   case 96:
 
 /* Line 1455 of yacc.c  */
-#line 753 "rust-exp.y"
+#line 796 "rust-exp.y"
     {
 		  (yyval.op) = ast_path (rust_concat3 ((yyvsp[(1) - (3)].op)->left.sval.ptr, "::",
 					       (yyvsp[(3) - (3)].sval).ptr),
@@ -2633,14 +2676,14 @@ yyreduce:
   case 97:
 
 /* Line 1455 of yacc.c  */
-#line 759 "rust-exp.y"
+#line 802 "rust-exp.y"
     { (yyval.op) = ast_path ((yyvsp[(1) - (5)].op)->left.sval, (yyvsp[(4) - (5)].params)); }
     break;
 
   case 98:
 
 /* Line 1455 of yacc.c  */
-#line 761 "rust-exp.y"
+#line 804 "rust-exp.y"
     {
 		  (yyval.op) = ast_path ((yyvsp[(1) - (5)].op)->left.sval, (yyvsp[(4) - (5)].params));
 		  rust_push_back ('>');
@@ -2650,28 +2693,28 @@ yyreduce:
   case 100:
 
 /* Line 1455 of yacc.c  */
-#line 770 "rust-exp.y"
+#line 813 "rust-exp.y"
     { (yyval.op) = super_name ((yyvsp[(3) - (3)].op), 0); }
     break;
 
   case 101:
 
 /* Line 1455 of yacc.c  */
-#line 772 "rust-exp.y"
+#line 815 "rust-exp.y"
     { (yyval.op) = super_name ((yyvsp[(3) - (3)].op), (yyvsp[(2) - (3)].depth)); }
     break;
 
   case 102:
 
 /* Line 1455 of yacc.c  */
-#line 774 "rust-exp.y"
+#line 817 "rust-exp.y"
     { (yyval.op) = crate_name ((yyvsp[(2) - (2)].op)); }
     break;
 
   case 103:
 
 /* Line 1455 of yacc.c  */
-#line 776 "rust-exp.y"
+#line 819 "rust-exp.y"
     {
 		  /* This is a gdb extension to make it possible to
 		     refer to items in other crates.  It just bypasses
@@ -2685,14 +2728,14 @@ yyreduce:
   case 104:
 
 /* Line 1455 of yacc.c  */
-#line 788 "rust-exp.y"
+#line 831 "rust-exp.y"
     { (yyval.op) = ast_path ((yyvsp[(1) - (1)].sval), NULL); }
     break;
 
   case 105:
 
 /* Line 1455 of yacc.c  */
-#line 790 "rust-exp.y"
+#line 833 "rust-exp.y"
     {
 		  (yyval.op) = ast_path (rust_concat3 ((yyvsp[(1) - (3)].op)->left.sval.ptr, "::",
 					       (yyvsp[(3) - (3)].sval).ptr),
@@ -2703,14 +2746,14 @@ yyreduce:
   case 107:
 
 /* Line 1455 of yacc.c  */
-#line 800 "rust-exp.y"
+#line 843 "rust-exp.y"
     { (yyval.op) = ast_path ((yyvsp[(1) - (4)].op)->left.sval, (yyvsp[(3) - (4)].params)); }
     break;
 
   case 108:
 
 /* Line 1455 of yacc.c  */
-#line 802 "rust-exp.y"
+#line 845 "rust-exp.y"
     {
 		  (yyval.op) = ast_path ((yyvsp[(1) - (4)].op)->left.sval, (yyvsp[(3) - (4)].params));
 		  rust_push_back ('>');
@@ -2720,83 +2763,80 @@ yyreduce:
   case 110:
 
 /* Line 1455 of yacc.c  */
-#line 811 "rust-exp.y"
+#line 854 "rust-exp.y"
     { (yyval.op) = ast_array_type ((yyvsp[(2) - (5)].op), (yyvsp[(4) - (5)].typed_val_int)); }
     break;
 
   case 111:
 
 /* Line 1455 of yacc.c  */
-#line 813 "rust-exp.y"
+#line 856 "rust-exp.y"
     { (yyval.op) = ast_array_type ((yyvsp[(2) - (5)].op), (yyvsp[(4) - (5)].typed_val_int)); }
     break;
 
   case 112:
 
 /* Line 1455 of yacc.c  */
-#line 815 "rust-exp.y"
+#line 858 "rust-exp.y"
     { (yyval.op) = ast_slice_type ((yyvsp[(3) - (4)].op)); }
     break;
 
   case 113:
 
 /* Line 1455 of yacc.c  */
-#line 817 "rust-exp.y"
+#line 860 "rust-exp.y"
     { (yyval.op) = ast_reference_type ((yyvsp[(2) - (2)].op)); }
     break;
 
   case 114:
 
 /* Line 1455 of yacc.c  */
-#line 819 "rust-exp.y"
+#line 862 "rust-exp.y"
     { (yyval.op) = ast_pointer_type ((yyvsp[(3) - (3)].op), 1); }
     break;
 
   case 115:
 
 /* Line 1455 of yacc.c  */
-#line 821 "rust-exp.y"
+#line 864 "rust-exp.y"
     { (yyval.op) = ast_pointer_type ((yyvsp[(3) - (3)].op), 0); }
     break;
 
   case 116:
 
 /* Line 1455 of yacc.c  */
-#line 823 "rust-exp.y"
+#line 866 "rust-exp.y"
     { (yyval.op) = ast_function_type ((yyvsp[(6) - (6)].op), (yyvsp[(3) - (6)].params)); }
     break;
 
   case 117:
 
 /* Line 1455 of yacc.c  */
-#line 825 "rust-exp.y"
+#line 868 "rust-exp.y"
     { (yyval.op) = ast_tuple_type ((yyvsp[(2) - (3)].params)); }
     break;
 
   case 118:
 
 /* Line 1455 of yacc.c  */
-#line 830 "rust-exp.y"
+#line 873 "rust-exp.y"
     { (yyval.params) = NULL; }
     break;
 
   case 119:
 
 /* Line 1455 of yacc.c  */
-#line 832 "rust-exp.y"
+#line 875 "rust-exp.y"
     { (yyval.params) = (yyvsp[(1) - (1)].params); }
     break;
 
   case 120:
 
 /* Line 1455 of yacc.c  */
-#line 837 "rust-exp.y"
+#line 880 "rust-exp.y"
     {
-		  VEC (rust_op_ptr) **result
-		    = OBSTACK_ZALLOC (&work_obstack, VEC (rust_op_ptr) *);
-
-		  make_cleanup (VEC_cleanup (rust_op_ptr), result);
-		  VEC_safe_push (rust_op_ptr, *result, (yyvsp[(1) - (1)].op));
+		  rust_op_vector *result = current_parser->new_op_vector ();
+		  result->push_back ((yyvsp[(1) - (1)].op));
 		  (yyval.params) = result;
 		}
     break;
@@ -2804,9 +2844,9 @@ yyreduce:
   case 121:
 
 /* Line 1455 of yacc.c  */
-#line 846 "rust-exp.y"
+#line 886 "rust-exp.y"
     {
-		  VEC_safe_push (rust_op_ptr, *(yyvsp[(1) - (3)].params), (yyvsp[(3) - (3)].op));
+		  (yyvsp[(1) - (3)].params)->push_back ((yyvsp[(3) - (3)].op));
 		  (yyval.params) = (yyvsp[(1) - (3)].params);
 		}
     break;
@@ -2814,7 +2854,7 @@ yyreduce:
 
 
 /* Line 1455 of yacc.c  */
-#line 2819 "rust-exp.c"
+#line 2859 "rust-exp.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3026,7 +3066,7 @@ yyreturn:
 
 
 /* Line 1675 of yacc.c  */
-#line 852 "rust-exp.y"
+#line 892 "rust-exp.y"
 
 
 /* A struct of this type is used to describe a token.  */
@@ -3089,7 +3129,7 @@ static const struct token_info operator_
 static const char *
 rust_copy_name (const char *name, int len)
 {
-  return (const char *) obstack_copy0 (&work_obstack, name, len);
+  return (const char *) obstack_copy0 (work_obstack, name, len);
 }
 
 /* Helper function to make an stoken from a C string.  */
@@ -3110,7 +3150,7 @@ make_stoken (const char *p)
 static struct stoken
 rust_concat3 (const char *s1, const char *s2, const char *s3)
 {
-  return make_stoken (obconcat (&work_obstack, s1, s2, s3, (char *) NULL));
+  return make_stoken (obconcat (work_obstack, s1, s2, s3, (char *) NULL));
 }
 
 /* Return an AST node referring to NAME, but relative to the crate's
@@ -3126,7 +3166,7 @@ crate_name (const struct rust_op *name)
 
   if (crate.empty ())
     error (_("Could not find crate for current location"));
-  result = make_stoken (obconcat (&work_obstack, "::", crate.c_str (), "::",
+  result = make_stoken (obconcat (work_obstack, "::", crate.c_str (), "::",
 				  name->left.sval.ptr, (char *) NULL));
 
   return ast_path (result, name->right.params);
@@ -3149,7 +3189,6 @@ super_name (const struct rust_op *ident,
 
   if (n_supers > 0)
     {
-      int i;
       int len;
       std::vector<int> offsets;
       unsigned int current_len;
@@ -3174,12 +3213,12 @@ super_name (const struct rust_op *ident,
   else
     offset = strlen (scope);
 
-  obstack_grow (&work_obstack, "::", 2);
-  obstack_grow (&work_obstack, scope, offset);
-  obstack_grow (&work_obstack, "::", 2);
-  obstack_grow0 (&work_obstack, ident->left.sval.ptr, ident->left.sval.length);
+  obstack_grow (work_obstack, "::", 2);
+  obstack_grow (work_obstack, scope, offset);
+  obstack_grow (work_obstack, "::", 2);
+  obstack_grow0 (work_obstack, ident->left.sval.ptr, ident->left.sval.length);
 
-  return ast_path (make_stoken ((const char *) obstack_finish (&work_obstack)),
+  return ast_path (make_stoken ((const char *) obstack_finish (work_obstack)),
 		   ident->right.params);
 }
 
@@ -3202,13 +3241,8 @@ rust_type (const char *name)
 {
   struct type *type;
 
-  /* When unit testing, we don't bother checking the types, so avoid a
-     possibly-failing lookup here.  */
-  if (unit_testing)
-    return NULL;
-
-  type = language_lookup_primitive_type (parse_language (pstate),
-					 parse_gdbarch (pstate),
+  type = language_lookup_primitive_type (current_parser->language (),
+					 current_parser->arch (),
 					 name);
   if (type == NULL)
     error (_("Could not find Rust type %s"), name);
@@ -3394,7 +3428,6 @@ lex_string (void)
 {
   int is_byte = lexptr[0] == 'b';
   int raw_length;
-  int len_in_chars = 0;
 
   if (is_byte)
     ++lexptr;
@@ -3421,7 +3454,7 @@ lex_string (void)
 	  value = lexptr[0] & 0xff;
 	  if (is_byte && value > 127)
 	    error (_("Non-ASCII value in raw byte string"));
-	  obstack_1grow (&work_obstack, value);
+	  obstack_1grow (work_obstack, value);
 
 	  ++lexptr;
 	}
@@ -3436,11 +3469,11 @@ lex_string (void)
 	  value = lex_escape (is_byte);
 
 	  if (is_byte)
-	    obstack_1grow (&work_obstack, value);
+	    obstack_1grow (work_obstack, value);
 	  else
 	    convert_between_encodings ("UTF-32", "UTF-8", (gdb_byte *) &value,
 				       sizeof (value), sizeof (value),
-				       &work_obstack, translit_none);
+				       work_obstack, translit_none);
 	}
       else if (lexptr[0] == '\0')
 	error (_("Unexpected EOF in string"));
@@ -3449,13 +3482,13 @@ lex_string (void)
 	  value = lexptr[0] & 0xff;
 	  if (is_byte && value > 127)
 	    error (_("Non-ASCII value in byte string"));
-	  obstack_1grow (&work_obstack, value);
+	  obstack_1grow (work_obstack, value);
 	  ++lexptr;
 	}
     }
 
-  rustyylval.sval.length = obstack_object_size (&work_obstack);
-  rustyylval.sval.ptr = (const char *) obstack_finish (&work_obstack);
+  rustyylval.sval.length = obstack_object_size (work_obstack);
+  rustyylval.sval.ptr = (const char *) obstack_finish (work_obstack);
   return is_byte ? BYTESTRING : STRING;
 }
 
@@ -3649,7 +3682,7 @@ lex_number (void)
   gdb_assert (subexps[0].rm_eo > 0);
   if (lexptr[subexps[0].rm_eo - 1] == '.')
     {
-      const char *next = skip_spaces_const (&lexptr[subexps[0].rm_eo]);
+      const char *next = skip_spaces (&lexptr[subexps[0].rm_eo]);
 
       if (rust_identifier_start_p (*next) || *next == '.')
 	{
@@ -3720,8 +3753,11 @@ lex_number (void)
     }
   else
     {
-      rustyylval.typed_val_float.dval = strtod (number.c_str (), NULL);
       rustyylval.typed_val_float.type = type;
+      bool parsed = parse_float (number.c_str (), number.length (),
+				 rustyylval.typed_val_float.type,
+				 rustyylval.typed_val_float.val);
+      gdb_assert (parsed);
     }
 
   return is_integer ? (could_be_decimal ? DECIMAL_INTEGER : INTEGER) : FLOAT;
@@ -3805,7 +3841,7 @@ static const struct rust_op *
 ast_operation (enum exp_opcode opcode, const struct rust_op *left,
 		const struct rust_op *right)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = opcode;
   result->left.op = left;
@@ -3820,7 +3856,7 @@ static const struct rust_op *
 ast_compound_assignment (enum exp_opcode opcode, const struct rust_op *left,
 			  const struct rust_op *right)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = opcode;
   result->compound_assignment = 1;
@@ -3835,7 +3871,7 @@ ast_compound_assignment (enum exp_opcode
 static const struct rust_op *
 ast_literal (struct typed_val_int val)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = OP_LONG;
   result->left.typed_val_int = val;
@@ -3848,9 +3884,9 @@ ast_literal (struct typed_val_int val)
 static const struct rust_op *
 ast_dliteral (struct typed_val_float val)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
-  result->opcode = OP_DOUBLE;
+  result->opcode = OP_FLOAT;
   result->left.typed_val_float = val;
 
   return result;
@@ -3869,7 +3905,7 @@ ast_unary (enum exp_opcode opcode, const
 static const struct rust_op *
 ast_cast (const struct rust_op *expr, const struct rust_op *type)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = UNOP_CAST;
   result->left.op = expr;
@@ -3884,9 +3920,9 @@ ast_cast (const struct rust_op *expr, co
 
 static const struct rust_op *
 ast_call_ish (enum exp_opcode opcode, const struct rust_op *expr,
-	       VEC (rust_op_ptr) **params)
+	      rust_op_vector *params)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = opcode;
   result->left.op = expr;
@@ -3898,9 +3934,9 @@ ast_call_ish (enum exp_opcode opcode, co
 /* Make a structure creation operation.  */
 
 static const struct rust_op *
-ast_struct (const struct rust_op *name, VEC (set_field) **fields)
+ast_struct (const struct rust_op *name, rust_set_vector *fields)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = OP_AGGREGATE;
   result->left.op = name;
@@ -3912,9 +3948,9 @@ ast_struct (const struct rust_op *name, 
 /* Make an identifier path.  */
 
 static const struct rust_op *
-ast_path (struct stoken path, VEC (rust_op_ptr) **params)
+ast_path (struct stoken path, rust_op_vector *params)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = OP_VAR_VALUE;
   result->left.sval = path;
@@ -3928,7 +3964,7 @@ ast_path (struct stoken path, VEC (rust_
 static const struct rust_op *
 ast_string (struct stoken str)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = OP_STRING;
   result->left.sval = str;
@@ -3941,7 +3977,7 @@ ast_string (struct stoken str)
 static const struct rust_op *
 ast_structop (const struct rust_op *left, const char *name, int completing)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = STRUCTOP_STRUCT;
   result->completing = completing;
@@ -3957,7 +3993,7 @@ static const struct rust_op *
 ast_structop_anonymous (const struct rust_op *left,
 			 struct typed_val_int number)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = STRUCTOP_ANONYMOUS;
   result->left.op = left;
@@ -3971,7 +4007,7 @@ ast_structop_anonymous (const struct rus
 static const struct rust_op *
 ast_range (const struct rust_op *lhs, const struct rust_op *rhs)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = OP_RANGE;
   result->left.op = lhs;
@@ -3985,7 +4021,7 @@ ast_range (const struct rust_op *lhs, co
 static struct rust_op *
 ast_basic_type (enum type_code typecode)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = OP_TYPE;
   result->typecode = typecode;
@@ -4042,7 +4078,7 @@ ast_pointer_type (const struct rust_op *
 /* Create an AST node describing a function type.  */
 
 static const struct rust_op *
-ast_function_type (const struct rust_op *rtype, VEC (rust_op_ptr) **params)
+ast_function_type (const struct rust_op *rtype, rust_op_vector *params)
 {
   struct rust_op *result = ast_basic_type (TYPE_CODE_FUNC);
 
@@ -4054,7 +4090,7 @@ ast_function_type (const struct rust_op 
 /* Create an AST node describing a tuple type.  */
 
 static const struct rust_op *
-ast_tuple_type (VEC (rust_op_ptr) **params)
+ast_tuple_type (rust_op_vector *params)
 {
   struct rust_op *result = ast_basic_type (TYPE_CODE_STRUCT);
 
@@ -4111,14 +4147,14 @@ rust_lookup_type (const char *name, cons
       return SYMBOL_TYPE (result.symbol);
     }
 
-  type = lookup_typename (parse_language (pstate), parse_gdbarch (pstate),
+  type = lookup_typename (current_parser->language (), current_parser->arch (),
 			  name, NULL, 1);
   if (type != NULL)
     return type;
 
   /* Last chance, try a built-in type.  */
-  return language_lookup_primitive_type (parse_language (pstate),
-					 parse_gdbarch (pstate),
+  return language_lookup_primitive_type (current_parser->language (),
+					 current_parser->arch (),
 					 name);
 }
 
@@ -4131,13 +4167,11 @@ static const char *convert_name (struct 
    types.  */
 
 static std::vector<struct type *>
-convert_params_to_types (struct parser_state *state, VEC (rust_op_ptr) *params)
+convert_params_to_types (struct parser_state *state, rust_op_vector *params)
 {
-  int i;
-  const struct rust_op *op;
   std::vector<struct type *> result;
 
-  for (i = 0; VEC_iterate (rust_op_ptr, params, i, op); ++i)
+  for (const rust_op *op : *params)
     result.push_back (convert_ast_to_type (state, op));
 
   return result;
@@ -4192,7 +4226,7 @@ convert_ast_to_type (struct parser_state
     case TYPE_CODE_FUNC:
       {
 	std::vector<struct type *> args
-	  (convert_params_to_types (state, *operation->right.params));
+	  (convert_params_to_types (state, operation->right.params));
 	struct type **argtypes = NULL;
 
 	type = convert_ast_to_type (state, operation->left.op);
@@ -4209,23 +4243,22 @@ convert_ast_to_type (struct parser_state
     case TYPE_CODE_STRUCT:
       {
 	std::vector<struct type *> args
-	  (convert_params_to_types (state, *operation->left.params));
+	  (convert_params_to_types (state, operation->left.params));
 	int i;
-	struct type *type;
 	const char *name;
 
-	obstack_1grow (&work_obstack, '(');
+	obstack_1grow (work_obstack, '(');
 	for (i = 0; i < args.size (); ++i)
 	  {
 	    std::string type_name = type_to_string (args[i]);
 
 	    if (i > 0)
-	      obstack_1grow (&work_obstack, ',');
-	    obstack_grow_str (&work_obstack, type_name.c_str ());
+	      obstack_1grow (work_obstack, ',');
+	    obstack_grow_str (work_obstack, type_name.c_str ());
 	  }
 
-	obstack_grow_str0 (&work_obstack, ")");
-	name = (const char *) obstack_finish (&work_obstack);
+	obstack_grow_str0 (work_obstack, ")");
+	name = (const char *) obstack_finish (work_obstack);
 
 	/* We don't allow creating new tuple types (yet), but we do
 	   allow looking up existing tuple types.  */
@@ -4258,40 +4291,38 @@ convert_name (struct parser_state *state
     return operation->left.sval.ptr;
 
   std::vector<struct type *> types
-    (convert_params_to_types (state, *operation->right.params));
+    (convert_params_to_types (state, operation->right.params));
 
-  obstack_grow_str (&work_obstack, operation->left.sval.ptr);
-  obstack_1grow (&work_obstack, '<');
+  obstack_grow_str (work_obstack, operation->left.sval.ptr);
+  obstack_1grow (work_obstack, '<');
   for (i = 0; i < types.size (); ++i)
     {
       std::string type_name = type_to_string (types[i]);
 
       if (i > 0)
-	obstack_1grow (&work_obstack, ',');
+	obstack_1grow (work_obstack, ',');
 
-      obstack_grow_str (&work_obstack, type_name.c_str ());
+      obstack_grow_str (work_obstack, type_name.c_str ());
     }
-  obstack_grow_str0 (&work_obstack, ">");
+  obstack_grow_str0 (work_obstack, ">");
 
-  return (const char *) obstack_finish (&work_obstack);
+  return (const char *) obstack_finish (work_obstack);
 }
 
 static void convert_ast_to_expression (struct parser_state *state,
 				       const struct rust_op *operation,
-				       const struct rust_op *top);
+				       const struct rust_op *top,
+				       bool want_type = false);
 
 /* A helper function that converts a vec of rust_ops to a gdb
    expression.  */
 
 static void
 convert_params_to_expression (struct parser_state *state,
-			      VEC (rust_op_ptr) *params,
+			      rust_op_vector *params,
 			      const struct rust_op *top)
 {
-  int i;
-  rust_op_ptr elem;
-
-  for (i = 0; VEC_iterate (rust_op_ptr, params, i, elem); ++i)
+  for (const rust_op *elem : *params)
     convert_ast_to_expression (state, elem, top);
 }
 
@@ -4299,12 +4330,16 @@ convert_params_to_expression (struct par
    OPERATION is the operation to lower.  TOP is a pointer to the
    top-most operation; it is used to handle the special case where the
    top-most expression is an identifier and can be optionally lowered
-   to OP_TYPE.  */
+   to OP_TYPE.  WANT_TYPE is a flag indicating that, if the expression
+   is the name of a type, then emit an OP_TYPE for it (rather than
+   erroring).  If WANT_TYPE is set, then the similar TOP handling is
+   not done.  */
 
 static void
 convert_ast_to_expression (struct parser_state *state,
 			   const struct rust_op *operation,
-			   const struct rust_op *top)
+			   const struct rust_op *top,
+			   bool want_type)
 {
   switch (operation->opcode)
     {
@@ -4315,11 +4350,11 @@ convert_ast_to_expression (struct parser
       write_exp_elt_opcode (state, OP_LONG);
       break;
 
-    case OP_DOUBLE:
-      write_exp_elt_opcode (state, OP_DOUBLE);
+    case OP_FLOAT:
+      write_exp_elt_opcode (state, OP_FLOAT);
       write_exp_elt_type (state, operation->left.typed_val_float.type);
-      write_exp_elt_dblcst (state, operation->left.typed_val_float.dval);
-      write_exp_elt_opcode (state, OP_DOUBLE);
+      write_exp_elt_floatcst (state, operation->left.typed_val_float.val);
+      write_exp_elt_opcode (state, OP_FLOAT);
       break;
 
     case STRUCTOP_STRUCT:
@@ -4344,12 +4379,16 @@ convert_ast_to_expression (struct parser
       }
       break;
 
+    case UNOP_SIZEOF:
+      convert_ast_to_expression (state, operation->left.op, top, true);
+      write_exp_elt_opcode (state, UNOP_SIZEOF);
+      break;
+
     case UNOP_PLUS:
     case UNOP_NEG:
     case UNOP_COMPLEMENT:
     case UNOP_IND:
     case UNOP_ADDR:
-    case UNOP_SIZEOF:
       convert_ast_to_expression (state, operation->left.op, top);
       write_exp_elt_opcode (state, operation->opcode);
       break;
@@ -4428,18 +4467,14 @@ convert_ast_to_expression (struct parser
 	      {
 		/* This is actually a tuple struct expression, not a
 		   call expression.  */
-		rust_op_ptr elem;
-		int i;
-		VEC (rust_op_ptr) *params = *operation->right.params;
+		rust_op_vector *params = operation->right.params;
 
 		if (TYPE_CODE (type) != TYPE_CODE_NAMESPACE)
 		  {
 		    if (!rust_tuple_struct_type_p (type))
 		      error (_("Type %s is not a tuple struct"), varname);
 
-		    for (i = 0;
-			 VEC_iterate (rust_op_ptr, params, i, elem);
-			 ++i)
+		    for (int i = 0; i < params->size (); ++i)
 		      {
 			char *cell = get_print_cell ();
 
@@ -4448,35 +4483,31 @@ convert_ast_to_expression (struct parser
 			write_exp_string (state, make_stoken (cell));
 			write_exp_elt_opcode (state, OP_NAME);
 
-			convert_ast_to_expression (state, elem, top);
+			convert_ast_to_expression (state, (*params)[i], top);
 		      }
 
 		    write_exp_elt_opcode (state, OP_AGGREGATE);
 		    write_exp_elt_type (state, type);
-		    write_exp_elt_longcst (state,
-					   2 * VEC_length (rust_op_ptr,
-							   params));
+		    write_exp_elt_longcst (state, 2 * params->size ());
 		    write_exp_elt_opcode (state, OP_AGGREGATE);
 		    break;
 		  }
 	      }
 	  }
 	convert_ast_to_expression (state, operation->left.op, top);
-	convert_params_to_expression (state, *operation->right.params, top);
+	convert_params_to_expression (state, operation->right.params, top);
 	write_exp_elt_opcode (state, OP_FUNCALL);
-	write_exp_elt_longcst (state, VEC_length (rust_op_ptr,
-						  *operation->right.params));
+	write_exp_elt_longcst (state, operation->right.params->size ());
 	write_exp_elt_longcst (state, OP_FUNCALL);
       }
       break;
 
     case OP_ARRAY:
       gdb_assert (operation->left.op == NULL);
-      convert_params_to_expression (state, *operation->right.params, top);
+      convert_params_to_expression (state, operation->right.params, top);
       write_exp_elt_opcode (state, OP_ARRAY);
       write_exp_elt_longcst (state, 0);
-      write_exp_elt_longcst (state, VEC_length (rust_op_ptr,
-						*operation->right.params) - 1);
+      write_exp_elt_longcst (state, operation->right.params->size () - 1);
       write_exp_elt_longcst (state, OP_ARRAY);
       break;
 
@@ -4494,7 +4525,7 @@ convert_ast_to_expression (struct parser
 	varname = convert_name (state, operation);
 	sym = rust_lookup_symbol (varname, expression_context_block,
 				  VAR_DOMAIN);
-	if (sym.symbol != NULL)
+	if (sym.symbol != NULL && SYMBOL_CLASS (sym.symbol) != LOC_TYPEDEF)
 	  {
 	    write_exp_elt_opcode (state, OP_VAR_VALUE);
 	    write_exp_elt_block (state, sym.block);
@@ -4503,13 +4534,20 @@ convert_ast_to_expression (struct parser
 	  }
 	else
 	  {
-	    struct type *type;
+	    struct type *type = NULL;
 
-	    type = rust_lookup_type (varname, expression_context_block);
+	    if (sym.symbol != NULL)
+	      {
+		gdb_assert (SYMBOL_CLASS (sym.symbol) == LOC_TYPEDEF);
+		type = SYMBOL_TYPE (sym.symbol);
+	      }
+	    if (type == NULL)
+	      type = rust_lookup_type (varname, expression_context_block);
 	    if (type == NULL)
 	      error (_("No symbol '%s' in current context"), varname);
 
-	    if (TYPE_CODE (type) == TYPE_CODE_STRUCT
+	    if (!want_type
+		&& TYPE_CODE (type) == TYPE_CODE_STRUCT
 		&& TYPE_NFIELDS (type) == 0)
 	      {
 		/* A unit-like struct.  */
@@ -4518,41 +4556,42 @@ convert_ast_to_expression (struct parser
 		write_exp_elt_longcst (state, 0);
 		write_exp_elt_opcode (state, OP_AGGREGATE);
 	      }
-	    else if (operation == top)
+	    else if (want_type || operation == top)
 	      {
 		write_exp_elt_opcode (state, OP_TYPE);
 		write_exp_elt_type (state, type);
 		write_exp_elt_opcode (state, OP_TYPE);
-		break;
 	      }
+	    else
+	      error (_("Found type '%s', which can't be "
+		       "evaluated in this context"),
+		     varname);
 	  }
       }
       break;
 
     case OP_AGGREGATE:
       {
-	int i;
 	int length;
-	struct set_field *init;
-	VEC (set_field) *fields = *operation->right.field_inits;
+	rust_set_vector *fields = operation->right.field_inits;
 	struct type *type;
 	const char *name;
 
 	length = 0;
-	for (i = 0; VEC_iterate (set_field, fields, i, init); ++i)
+	for (const set_field &init : *fields)
 	  {
-	    if (init->name.ptr != NULL)
+	    if (init.name.ptr != NULL)
 	      {
 		write_exp_elt_opcode (state, OP_NAME);
-		write_exp_string (state, init->name);
+		write_exp_string (state, init.name);
 		write_exp_elt_opcode (state, OP_NAME);
 		++length;
 	      }
 
-	    convert_ast_to_expression (state, init->init, top);
+	    convert_ast_to_expression (state, init.init, top);
 	    ++length;
 
-	    if (init->name.ptr == NULL)
+	    if (init.name.ptr == NULL)
 	      {
 		/* This is handled differently from Ada in our
 		   evaluator.  */
@@ -4624,25 +4663,16 @@ int
 rust_parse (struct parser_state *state)
 {
   int result;
-  struct cleanup *cleanup;
 
-  obstack_init (&work_obstack);
-  cleanup = make_cleanup_obstack_free (&work_obstack);
-  rust_ast = NULL;
+  /* This sets various globals and also clears them on
+     destruction.  */
+  rust_parser parser (state);
 
-  pstate = state;
   result = rustyyparse ();
 
-  if (!result || (parse_completion && rust_ast != NULL))
-    {
-      const struct rust_op *ast = rust_ast;
-
-      rust_ast = NULL;
-      gdb_assert (ast != NULL);
-      convert_ast_to_expression (state, ast, ast);
-    }
+  if (!result || (parse_completion && parser.rust_ast != NULL))
+    convert_ast_to_expression (state, parser.rust_ast, parser.rust_ast);
 
-  do_cleanups (cleanup);
   return result;
 }
 
@@ -4809,8 +4839,13 @@ rust_lex_tests (void)
 {
   int i;
 
-  obstack_init (&work_obstack);
-  unit_testing = 1;
+  auto_obstack test_obstack;
+  scoped_restore obstack_holder = make_scoped_restore (&work_obstack,
+						       &test_obstack);
+
+  // Set up dummy "parser", so that rust_type works.
+  struct parser_state ps (0, &rust_language_defn, target_gdbarch ());
+  rust_parser parser (&ps);
 
   rust_lex_test_one ("", 0);
   rust_lex_test_one ("    \t  \n \r  ", 0);
@@ -4899,9 +4934,6 @@ rust_lex_tests (void)
 
   rust_lex_test_completion ();
   rust_lex_test_push_back ();
-
-  obstack_free (&work_obstack, NULL);
-  unit_testing = 0;
 }
 
 #endif /* GDB_SELF_TEST */
@@ -4915,7 +4947,7 @@ _initialize_rust_exp (void)
   gdb_assert (code == 0);
 
 #if GDB_SELF_TEST
-  register_self_test (rust_lex_tests);
+  selftests::register_test ("rust-lex", rust_lex_tests);
 #endif
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rust-exp.y ./gdb/rust-exp.y
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rust-exp.y	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/rust-exp.y	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Bison parser for Rust expressions, for GDB.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -39,11 +39,8 @@
 
 #define RUSTSTYPE YYSTYPE
 
-extern initialize_file_ftype _initialize_rust_exp;
-
 struct rust_op;
-typedef const struct rust_op *rust_op_ptr;
-DEF_VEC_P (rust_op_ptr);
+typedef std::vector<const struct rust_op *> rust_op_vector;
 
 /* A typed integer constant.  */
 
@@ -57,7 +54,7 @@ struct typed_val_int
 
 struct typed_val_float
 {
-  DOUBLEST dval;
+  gdb_byte val[16];
   struct type *type;
 };
 
@@ -70,10 +67,7 @@ struct set_field
   const struct rust_op *init;
 };
 
-typedef struct set_field set_field;
-
-DEF_VEC_O (set_field);
-
+typedef std::vector<set_field> rust_set_vector;
 
 static int rustyylex (void);
 static void rust_push_back (char c);
@@ -110,12 +104,12 @@ static const struct rust_op *ast_cast (c
 				       const struct rust_op *type);
 static const struct rust_op *ast_call_ish (enum exp_opcode opcode,
 					   const struct rust_op *expr,
-					   VEC (rust_op_ptr) **params);
+					   rust_op_vector *params);
 static const struct rust_op *ast_path (struct stoken name,
-				       VEC (rust_op_ptr) **params);
+				       rust_op_vector *params);
 static const struct rust_op *ast_string (struct stoken str);
 static const struct rust_op *ast_struct (const struct rust_op *name,
-					 VEC (set_field) **fields);
+					 rust_set_vector *fields);
 static const struct rust_op *ast_range (const struct rust_op *lhs,
 					const struct rust_op *rhs);
 static const struct rust_op *ast_array_type (const struct rust_op *lhs,
@@ -125,13 +119,13 @@ static const struct rust_op *ast_referen
 static const struct rust_op *ast_pointer_type (const struct rust_op *type,
 					       int is_mut);
 static const struct rust_op *ast_function_type (const struct rust_op *result,
-						VEC (rust_op_ptr) **params);
-static const struct rust_op *ast_tuple_type (VEC (rust_op_ptr) **params);
+						rust_op_vector *params);
+static const struct rust_op *ast_tuple_type (rust_op_vector *params);
 
-/* The state of the parser, used internally when we are parsing the
-   expression.  */
+/* The current rust parser.  */
 
-static struct parser_state *pstate = NULL;
+struct rust_parser;
+static rust_parser *current_parser;
 
 /* A regular expression for matching Rust numbers.  This is split up
    since it is very long and this gives us a way to comment the
@@ -179,17 +173,76 @@ static const char *number_regex_text =
 
 static regex_t number_regex;
 
-/* True if we're running unit tests.  */
-
-static int unit_testing;
+/* Obstack for data temporarily allocated during parsing.  Points to
+   the obstack in the rust_parser, or to a temporary obstack during
+   unit testing.  */
+
+static auto_obstack *work_obstack;
+
+/* An instance of this is created before parsing, and destroyed when
+   parsing is finished.  */
+
+struct rust_parser
+{
+  rust_parser (struct parser_state *state)
+    : rust_ast (nullptr),
+      pstate (state)
+  {
+    gdb_assert (current_parser == nullptr);
+    current_parser = this;
+    work_obstack = &obstack;
+  }
+
+  ~rust_parser ()
+  {
+    /* Clean up the globals we set.  */
+    current_parser = nullptr;
+    work_obstack = nullptr;
+  }
+
+  /* Create a new rust_set_vector.  The storage for the new vector is
+     managed by this class.  */
+  rust_set_vector *new_set_vector ()
+  {
+    rust_set_vector *result = new rust_set_vector;
+    set_vectors.push_back (std::unique_ptr<rust_set_vector> (result));
+    return result;
+  }
+
+  /* Create a new rust_ops_vector.  The storage for the new vector is
+     managed by this class.  */
+  rust_op_vector *new_op_vector ()
+  {
+    rust_op_vector *result = new rust_op_vector;
+    op_vectors.push_back (std::unique_ptr<rust_op_vector> (result));
+    return result;
+  }
+
+  /* Return the parser's language.  */
+  const struct language_defn *language () const
+  {
+    return parse_language (pstate);
+  }
+
+  /* Return the parser's gdbarch.  */
+  struct gdbarch *arch () const
+  {
+    return parse_gdbarch (pstate);
+  }
+
+  /* A pointer to this is installed globally.  */
+  auto_obstack obstack;
+
+  /* Result of parsing.  Points into obstack.  */
+  const struct rust_op *rust_ast;
+
+  /* This keeps track of the various vectors we allocate.  */
+  std::vector<std::unique_ptr<rust_set_vector>> set_vectors;
+  std::vector<std::unique_ptr<rust_op_vector>> op_vectors;
 
-/* Obstack for data temporarily allocated during parsing.  */
-
-static struct obstack work_obstack;
-
-/* Result of parsing.  Points into work_obstack.  */
-
-static const struct rust_op *rust_ast;
+  /* The parser state gdb gave us.  */
+  struct parser_state *pstate;
+};
 
 %}
 
@@ -209,10 +262,10 @@ static const struct rust_op *rust_ast;
 
   /* A list of expressions; for example, the arguments to a function
      call.  */
-  VEC (rust_op_ptr) **params;
+  rust_op_vector *params;
 
   /* A list of field initializers.  */
-  VEC (set_field) **field_inits;
+  rust_set_vector *field_inits;
 
   /* A single field initializer.  */
   struct set_field one_field_init;
@@ -354,8 +407,8 @@ start:
 		{
 		  /* If we are completing and see a valid parse,
 		     rust_ast will already have been set.  */
-		  if (rust_ast == NULL)
-		    rust_ast = $1;
+		  if (current_parser->rust_ast == NULL)
+		    current_parser->rust_ast = $1;
 		}
 ;
 
@@ -381,7 +434,7 @@ expr:
 tuple_expr:
 	'(' expr ',' maybe_expr_list ')'
 		{
-		  VEC_safe_insert (rust_op_ptr, *$4, 0, $2);
+		  $4->push_back ($2);
 		  error (_("Tuple expressions not supported yet"));
 		}
 ;
@@ -392,8 +445,8 @@ unit_expr:
 		  struct typed_val_int val;
 
 		  val.type
-		    = language_lookup_primitive_type (parse_language (pstate),
-						      parse_gdbarch (pstate),
+		    = language_lookup_primitive_type (current_parser->language (),
+						      current_parser->arch (),
 						      "()");
 		  val.val = 0;
 		  $$ = ast_literal (val);
@@ -432,18 +485,12 @@ struct_expr_tail:
 struct_expr_list:
 	/* %empty */
 		{
-		  VEC (set_field) **result
-		    = OBSTACK_ZALLOC (&work_obstack, VEC (set_field) *);
-		  $$ = result;
+		  $$ = current_parser->new_set_vector ();
 		}
 |	struct_expr_tail
 		{
-		  VEC (set_field) **result
-		    = OBSTACK_ZALLOC (&work_obstack, VEC (set_field) *);
-
-		  make_cleanup (VEC_cleanup (set_field), result);
-		  VEC_safe_push (set_field, *result, &$1);
-
+		  rust_set_vector *result = current_parser->new_set_vector ();
+		  result->push_back ($1);
 		  $$ = result;
 		}
 |	IDENT ':' expr ',' struct_expr_list
@@ -452,7 +499,7 @@ struct_expr_list:
 
 		  sf.name = $1;
 		  sf.init = $3;
-		  VEC_safe_push (set_field, *$5, &sf);
+		  $5->push_back (sf);
 		  $$ = $5;
 		}
 ;
@@ -489,19 +536,17 @@ literal:
 |	STRING
 		{
 		  const struct rust_op *str = ast_string ($1);
-		  VEC (set_field) **fields;
 		  struct set_field field;
 		  struct typed_val_int val;
 		  struct stoken token;
 
-		  fields = OBSTACK_ZALLOC (&work_obstack, VEC (set_field) *);
-		  make_cleanup (VEC_cleanup (set_field), fields);
+		  rust_set_vector *fields = current_parser->new_set_vector ();
 
 		  /* Wrap the raw string in the &str struct.  */
 		  field.name.ptr = "data_ptr";
 		  field.name.length = strlen (field.name.ptr);
 		  field.init = ast_unary (UNOP_ADDR, ast_string ($1));
-		  VEC_safe_push (set_field, *fields, &field);
+		  fields->push_back (field);
 
 		  val.type = rust_type ("usize");
 		  val.val = $1.length;
@@ -509,7 +554,7 @@ literal:
 		  field.name.ptr = "length";
 		  field.name.length = strlen (field.name.ptr);
 		  field.init = ast_literal (val);
-		  VEC_safe_push (set_field, *fields, &field);
+		  fields->push_back (field);
 
 		  token.ptr = "&str";
 		  token.length = strlen (token.ptr);
@@ -521,8 +566,8 @@ literal:
 		{
 		  struct typed_val_int val;
 
-		  val.type = language_bool_type (parse_language (pstate),
-						 parse_gdbarch (pstate));
+		  val.type = language_bool_type (current_parser->language (),
+						 current_parser->arch ());
 		  val.val = 1;
 		  $$ = ast_literal (val);
 		}
@@ -530,8 +575,8 @@ literal:
 		{
 		  struct typed_val_int val;
 
-		  val.type = language_bool_type (parse_language (pstate),
-						 parse_gdbarch (pstate));
+		  val.type = language_bool_type (current_parser->language (),
+						 current_parser->arch ());
 		  val.val = 0;
 		  $$ = ast_literal (val);
 		}
@@ -543,7 +588,7 @@ field_expr:
 |	expr '.' COMPLETE
 		{
 		  $$ = ast_structop ($1, $3.ptr, 1);
-		  rust_ast = $$;
+		  current_parser->rust_ast = $$;
 		}
 |	expr '.' DECIMAL_INTEGER
 		{ $$ = ast_structop_anonymous ($1, $3); }
@@ -672,13 +717,12 @@ paren_expr:
 expr_list:
 	expr
 		{
-		  $$ = OBSTACK_ZALLOC (&work_obstack, VEC (rust_op_ptr) *);
-		  make_cleanup (VEC_cleanup (rust_op_ptr), $$);
-		  VEC_safe_push (rust_op_ptr, *$$, $1);
+		  $$ = current_parser->new_op_vector ();
+		  $$->push_back ($1);
 		}
 |	expr_list ',' expr
 		{
-		  VEC_safe_push (rust_op_ptr, *$1, $3);
+		  $1->push_back ($3);
 		  $$ = $1;
 		}
 ;
@@ -687,8 +731,7 @@ maybe_expr_list:
 	/* %empty */
 		{
 		  /* The result can't be NULL.  */
-		  $$ = OBSTACK_ZALLOC (&work_obstack, VEC (rust_op_ptr) *);
-		  make_cleanup (VEC_cleanup (rust_op_ptr), $$);
+		  $$ = current_parser->new_op_vector ();
 		}
 |	expr_list
 		{ $$ = $1; }
@@ -835,16 +878,13 @@ maybe_type_list:
 type_list:
 	type
 		{
-		  VEC (rust_op_ptr) **result
-		    = OBSTACK_ZALLOC (&work_obstack, VEC (rust_op_ptr) *);
-
-		  make_cleanup (VEC_cleanup (rust_op_ptr), result);
-		  VEC_safe_push (rust_op_ptr, *result, $1);
+		  rust_op_vector *result = current_parser->new_op_vector ();
+		  result->push_back ($1);
 		  $$ = result;
 		}
 |	type_list ',' type
 		{
-		  VEC_safe_push (rust_op_ptr, *$1, $3);
+		  $1->push_back ($3);
 		  $$ = $1;
 		}
 ;
@@ -911,7 +951,7 @@ static const struct token_info operator_
 static const char *
 rust_copy_name (const char *name, int len)
 {
-  return (const char *) obstack_copy0 (&work_obstack, name, len);
+  return (const char *) obstack_copy0 (work_obstack, name, len);
 }
 
 /* Helper function to make an stoken from a C string.  */
@@ -932,7 +972,7 @@ make_stoken (const char *p)
 static struct stoken
 rust_concat3 (const char *s1, const char *s2, const char *s3)
 {
-  return make_stoken (obconcat (&work_obstack, s1, s2, s3, (char *) NULL));
+  return make_stoken (obconcat (work_obstack, s1, s2, s3, (char *) NULL));
 }
 
 /* Return an AST node referring to NAME, but relative to the crate's
@@ -948,7 +988,7 @@ crate_name (const struct rust_op *name)
 
   if (crate.empty ())
     error (_("Could not find crate for current location"));
-  result = make_stoken (obconcat (&work_obstack, "::", crate.c_str (), "::",
+  result = make_stoken (obconcat (work_obstack, "::", crate.c_str (), "::",
 				  name->left.sval.ptr, (char *) NULL));
 
   return ast_path (result, name->right.params);
@@ -971,7 +1011,6 @@ super_name (const struct rust_op *ident,
 
   if (n_supers > 0)
     {
-      int i;
       int len;
       std::vector<int> offsets;
       unsigned int current_len;
@@ -996,12 +1035,12 @@ super_name (const struct rust_op *ident,
   else
     offset = strlen (scope);
 
-  obstack_grow (&work_obstack, "::", 2);
-  obstack_grow (&work_obstack, scope, offset);
-  obstack_grow (&work_obstack, "::", 2);
-  obstack_grow0 (&work_obstack, ident->left.sval.ptr, ident->left.sval.length);
+  obstack_grow (work_obstack, "::", 2);
+  obstack_grow (work_obstack, scope, offset);
+  obstack_grow (work_obstack, "::", 2);
+  obstack_grow0 (work_obstack, ident->left.sval.ptr, ident->left.sval.length);
 
-  return ast_path (make_stoken ((const char *) obstack_finish (&work_obstack)),
+  return ast_path (make_stoken ((const char *) obstack_finish (work_obstack)),
 		   ident->right.params);
 }
 
@@ -1024,13 +1063,8 @@ rust_type (const char *name)
 {
   struct type *type;
 
-  /* When unit testing, we don't bother checking the types, so avoid a
-     possibly-failing lookup here.  */
-  if (unit_testing)
-    return NULL;
-
-  type = language_lookup_primitive_type (parse_language (pstate),
-					 parse_gdbarch (pstate),
+  type = language_lookup_primitive_type (current_parser->language (),
+					 current_parser->arch (),
 					 name);
   if (type == NULL)
     error (_("Could not find Rust type %s"), name);
@@ -1216,7 +1250,6 @@ lex_string (void)
 {
   int is_byte = lexptr[0] == 'b';
   int raw_length;
-  int len_in_chars = 0;
 
   if (is_byte)
     ++lexptr;
@@ -1243,7 +1276,7 @@ lex_string (void)
 	  value = lexptr[0] & 0xff;
 	  if (is_byte && value > 127)
 	    error (_("Non-ASCII value in raw byte string"));
-	  obstack_1grow (&work_obstack, value);
+	  obstack_1grow (work_obstack, value);
 
 	  ++lexptr;
 	}
@@ -1258,11 +1291,11 @@ lex_string (void)
 	  value = lex_escape (is_byte);
 
 	  if (is_byte)
-	    obstack_1grow (&work_obstack, value);
+	    obstack_1grow (work_obstack, value);
 	  else
 	    convert_between_encodings ("UTF-32", "UTF-8", (gdb_byte *) &value,
 				       sizeof (value), sizeof (value),
-				       &work_obstack, translit_none);
+				       work_obstack, translit_none);
 	}
       else if (lexptr[0] == '\0')
 	error (_("Unexpected EOF in string"));
@@ -1271,13 +1304,13 @@ lex_string (void)
 	  value = lexptr[0] & 0xff;
 	  if (is_byte && value > 127)
 	    error (_("Non-ASCII value in byte string"));
-	  obstack_1grow (&work_obstack, value);
+	  obstack_1grow (work_obstack, value);
 	  ++lexptr;
 	}
     }
 
-  rustyylval.sval.length = obstack_object_size (&work_obstack);
-  rustyylval.sval.ptr = (const char *) obstack_finish (&work_obstack);
+  rustyylval.sval.length = obstack_object_size (work_obstack);
+  rustyylval.sval.ptr = (const char *) obstack_finish (work_obstack);
   return is_byte ? BYTESTRING : STRING;
 }
 
@@ -1471,7 +1504,7 @@ lex_number (void)
   gdb_assert (subexps[0].rm_eo > 0);
   if (lexptr[subexps[0].rm_eo - 1] == '.')
     {
-      const char *next = skip_spaces_const (&lexptr[subexps[0].rm_eo]);
+      const char *next = skip_spaces (&lexptr[subexps[0].rm_eo]);
 
       if (rust_identifier_start_p (*next) || *next == '.')
 	{
@@ -1542,8 +1575,11 @@ lex_number (void)
     }
   else
     {
-      rustyylval.typed_val_float.dval = strtod (number.c_str (), NULL);
       rustyylval.typed_val_float.type = type;
+      bool parsed = parse_float (number.c_str (), number.length (),
+				 rustyylval.typed_val_float.type,
+				 rustyylval.typed_val_float.val);
+      gdb_assert (parsed);
     }
 
   return is_integer ? (could_be_decimal ? DECIMAL_INTEGER : INTEGER) : FLOAT;
@@ -1627,7 +1663,7 @@ static const struct rust_op *
 ast_operation (enum exp_opcode opcode, const struct rust_op *left,
 		const struct rust_op *right)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = opcode;
   result->left.op = left;
@@ -1642,7 +1678,7 @@ static const struct rust_op *
 ast_compound_assignment (enum exp_opcode opcode, const struct rust_op *left,
 			  const struct rust_op *right)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = opcode;
   result->compound_assignment = 1;
@@ -1657,7 +1693,7 @@ ast_compound_assignment (enum exp_opcode
 static const struct rust_op *
 ast_literal (struct typed_val_int val)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = OP_LONG;
   result->left.typed_val_int = val;
@@ -1670,9 +1706,9 @@ ast_literal (struct typed_val_int val)
 static const struct rust_op *
 ast_dliteral (struct typed_val_float val)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
-  result->opcode = OP_DOUBLE;
+  result->opcode = OP_FLOAT;
   result->left.typed_val_float = val;
 
   return result;
@@ -1691,7 +1727,7 @@ ast_unary (enum exp_opcode opcode, const
 static const struct rust_op *
 ast_cast (const struct rust_op *expr, const struct rust_op *type)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = UNOP_CAST;
   result->left.op = expr;
@@ -1706,9 +1742,9 @@ ast_cast (const struct rust_op *expr, co
 
 static const struct rust_op *
 ast_call_ish (enum exp_opcode opcode, const struct rust_op *expr,
-	       VEC (rust_op_ptr) **params)
+	      rust_op_vector *params)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = opcode;
   result->left.op = expr;
@@ -1720,9 +1756,9 @@ ast_call_ish (enum exp_opcode opcode, co
 /* Make a structure creation operation.  */
 
 static const struct rust_op *
-ast_struct (const struct rust_op *name, VEC (set_field) **fields)
+ast_struct (const struct rust_op *name, rust_set_vector *fields)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = OP_AGGREGATE;
   result->left.op = name;
@@ -1734,9 +1770,9 @@ ast_struct (const struct rust_op *name, 
 /* Make an identifier path.  */
 
 static const struct rust_op *
-ast_path (struct stoken path, VEC (rust_op_ptr) **params)
+ast_path (struct stoken path, rust_op_vector *params)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = OP_VAR_VALUE;
   result->left.sval = path;
@@ -1750,7 +1786,7 @@ ast_path (struct stoken path, VEC (rust_
 static const struct rust_op *
 ast_string (struct stoken str)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = OP_STRING;
   result->left.sval = str;
@@ -1763,7 +1799,7 @@ ast_string (struct stoken str)
 static const struct rust_op *
 ast_structop (const struct rust_op *left, const char *name, int completing)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = STRUCTOP_STRUCT;
   result->completing = completing;
@@ -1779,7 +1815,7 @@ static const struct rust_op *
 ast_structop_anonymous (const struct rust_op *left,
 			 struct typed_val_int number)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = STRUCTOP_ANONYMOUS;
   result->left.op = left;
@@ -1793,7 +1829,7 @@ ast_structop_anonymous (const struct rus
 static const struct rust_op *
 ast_range (const struct rust_op *lhs, const struct rust_op *rhs)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = OP_RANGE;
   result->left.op = lhs;
@@ -1807,7 +1843,7 @@ ast_range (const struct rust_op *lhs, co
 static struct rust_op *
 ast_basic_type (enum type_code typecode)
 {
-  struct rust_op *result = OBSTACK_ZALLOC (&work_obstack, struct rust_op);
+  struct rust_op *result = OBSTACK_ZALLOC (work_obstack, struct rust_op);
 
   result->opcode = OP_TYPE;
   result->typecode = typecode;
@@ -1864,7 +1900,7 @@ ast_pointer_type (const struct rust_op *
 /* Create an AST node describing a function type.  */
 
 static const struct rust_op *
-ast_function_type (const struct rust_op *rtype, VEC (rust_op_ptr) **params)
+ast_function_type (const struct rust_op *rtype, rust_op_vector *params)
 {
   struct rust_op *result = ast_basic_type (TYPE_CODE_FUNC);
 
@@ -1876,7 +1912,7 @@ ast_function_type (const struct rust_op 
 /* Create an AST node describing a tuple type.  */
 
 static const struct rust_op *
-ast_tuple_type (VEC (rust_op_ptr) **params)
+ast_tuple_type (rust_op_vector *params)
 {
   struct rust_op *result = ast_basic_type (TYPE_CODE_STRUCT);
 
@@ -1933,14 +1969,14 @@ rust_lookup_type (const char *name, cons
       return SYMBOL_TYPE (result.symbol);
     }
 
-  type = lookup_typename (parse_language (pstate), parse_gdbarch (pstate),
+  type = lookup_typename (current_parser->language (), current_parser->arch (),
 			  name, NULL, 1);
   if (type != NULL)
     return type;
 
   /* Last chance, try a built-in type.  */
-  return language_lookup_primitive_type (parse_language (pstate),
-					 parse_gdbarch (pstate),
+  return language_lookup_primitive_type (current_parser->language (),
+					 current_parser->arch (),
 					 name);
 }
 
@@ -1953,13 +1989,11 @@ static const char *convert_name (struct 
    types.  */
 
 static std::vector<struct type *>
-convert_params_to_types (struct parser_state *state, VEC (rust_op_ptr) *params)
+convert_params_to_types (struct parser_state *state, rust_op_vector *params)
 {
-  int i;
-  const struct rust_op *op;
   std::vector<struct type *> result;
 
-  for (i = 0; VEC_iterate (rust_op_ptr, params, i, op); ++i)
+  for (const rust_op *op : *params)
     result.push_back (convert_ast_to_type (state, op));
 
   return result;
@@ -2014,7 +2048,7 @@ convert_ast_to_type (struct parser_state
     case TYPE_CODE_FUNC:
       {
 	std::vector<struct type *> args
-	  (convert_params_to_types (state, *operation->right.params));
+	  (convert_params_to_types (state, operation->right.params));
 	struct type **argtypes = NULL;
 
 	type = convert_ast_to_type (state, operation->left.op);
@@ -2031,23 +2065,22 @@ convert_ast_to_type (struct parser_state
     case TYPE_CODE_STRUCT:
       {
 	std::vector<struct type *> args
-	  (convert_params_to_types (state, *operation->left.params));
+	  (convert_params_to_types (state, operation->left.params));
 	int i;
-	struct type *type;
 	const char *name;
 
-	obstack_1grow (&work_obstack, '(');
+	obstack_1grow (work_obstack, '(');
 	for (i = 0; i < args.size (); ++i)
 	  {
 	    std::string type_name = type_to_string (args[i]);
 
 	    if (i > 0)
-	      obstack_1grow (&work_obstack, ',');
-	    obstack_grow_str (&work_obstack, type_name.c_str ());
+	      obstack_1grow (work_obstack, ',');
+	    obstack_grow_str (work_obstack, type_name.c_str ());
 	  }
 
-	obstack_grow_str0 (&work_obstack, ")");
-	name = (const char *) obstack_finish (&work_obstack);
+	obstack_grow_str0 (work_obstack, ")");
+	name = (const char *) obstack_finish (work_obstack);
 
 	/* We don't allow creating new tuple types (yet), but we do
 	   allow looking up existing tuple types.  */
@@ -2080,40 +2113,38 @@ convert_name (struct parser_state *state
     return operation->left.sval.ptr;
 
   std::vector<struct type *> types
-    (convert_params_to_types (state, *operation->right.params));
+    (convert_params_to_types (state, operation->right.params));
 
-  obstack_grow_str (&work_obstack, operation->left.sval.ptr);
-  obstack_1grow (&work_obstack, '<');
+  obstack_grow_str (work_obstack, operation->left.sval.ptr);
+  obstack_1grow (work_obstack, '<');
   for (i = 0; i < types.size (); ++i)
     {
       std::string type_name = type_to_string (types[i]);
 
       if (i > 0)
-	obstack_1grow (&work_obstack, ',');
+	obstack_1grow (work_obstack, ',');
 
-      obstack_grow_str (&work_obstack, type_name.c_str ());
+      obstack_grow_str (work_obstack, type_name.c_str ());
     }
-  obstack_grow_str0 (&work_obstack, ">");
+  obstack_grow_str0 (work_obstack, ">");
 
-  return (const char *) obstack_finish (&work_obstack);
+  return (const char *) obstack_finish (work_obstack);
 }
 
 static void convert_ast_to_expression (struct parser_state *state,
 				       const struct rust_op *operation,
-				       const struct rust_op *top);
+				       const struct rust_op *top,
+				       bool want_type = false);
 
 /* A helper function that converts a vec of rust_ops to a gdb
    expression.  */
 
 static void
 convert_params_to_expression (struct parser_state *state,
-			      VEC (rust_op_ptr) *params,
+			      rust_op_vector *params,
 			      const struct rust_op *top)
 {
-  int i;
-  rust_op_ptr elem;
-
-  for (i = 0; VEC_iterate (rust_op_ptr, params, i, elem); ++i)
+  for (const rust_op *elem : *params)
     convert_ast_to_expression (state, elem, top);
 }
 
@@ -2121,12 +2152,16 @@ convert_params_to_expression (struct par
    OPERATION is the operation to lower.  TOP is a pointer to the
    top-most operation; it is used to handle the special case where the
    top-most expression is an identifier and can be optionally lowered
-   to OP_TYPE.  */
+   to OP_TYPE.  WANT_TYPE is a flag indicating that, if the expression
+   is the name of a type, then emit an OP_TYPE for it (rather than
+   erroring).  If WANT_TYPE is set, then the similar TOP handling is
+   not done.  */
 
 static void
 convert_ast_to_expression (struct parser_state *state,
 			   const struct rust_op *operation,
-			   const struct rust_op *top)
+			   const struct rust_op *top,
+			   bool want_type)
 {
   switch (operation->opcode)
     {
@@ -2137,11 +2172,11 @@ convert_ast_to_expression (struct parser
       write_exp_elt_opcode (state, OP_LONG);
       break;
 
-    case OP_DOUBLE:
-      write_exp_elt_opcode (state, OP_DOUBLE);
+    case OP_FLOAT:
+      write_exp_elt_opcode (state, OP_FLOAT);
       write_exp_elt_type (state, operation->left.typed_val_float.type);
-      write_exp_elt_dblcst (state, operation->left.typed_val_float.dval);
-      write_exp_elt_opcode (state, OP_DOUBLE);
+      write_exp_elt_floatcst (state, operation->left.typed_val_float.val);
+      write_exp_elt_opcode (state, OP_FLOAT);
       break;
 
     case STRUCTOP_STRUCT:
@@ -2166,12 +2201,16 @@ convert_ast_to_expression (struct parser
       }
       break;
 
+    case UNOP_SIZEOF:
+      convert_ast_to_expression (state, operation->left.op, top, true);
+      write_exp_elt_opcode (state, UNOP_SIZEOF);
+      break;
+
     case UNOP_PLUS:
     case UNOP_NEG:
     case UNOP_COMPLEMENT:
     case UNOP_IND:
     case UNOP_ADDR:
-    case UNOP_SIZEOF:
       convert_ast_to_expression (state, operation->left.op, top);
       write_exp_elt_opcode (state, operation->opcode);
       break;
@@ -2250,18 +2289,14 @@ convert_ast_to_expression (struct parser
 	      {
 		/* This is actually a tuple struct expression, not a
 		   call expression.  */
-		rust_op_ptr elem;
-		int i;
-		VEC (rust_op_ptr) *params = *operation->right.params;
+		rust_op_vector *params = operation->right.params;
 
 		if (TYPE_CODE (type) != TYPE_CODE_NAMESPACE)
 		  {
 		    if (!rust_tuple_struct_type_p (type))
 		      error (_("Type %s is not a tuple struct"), varname);
 
-		    for (i = 0;
-			 VEC_iterate (rust_op_ptr, params, i, elem);
-			 ++i)
+		    for (int i = 0; i < params->size (); ++i)
 		      {
 			char *cell = get_print_cell ();
 
@@ -2270,35 +2305,31 @@ convert_ast_to_expression (struct parser
 			write_exp_string (state, make_stoken (cell));
 			write_exp_elt_opcode (state, OP_NAME);
 
-			convert_ast_to_expression (state, elem, top);
+			convert_ast_to_expression (state, (*params)[i], top);
 		      }
 
 		    write_exp_elt_opcode (state, OP_AGGREGATE);
 		    write_exp_elt_type (state, type);
-		    write_exp_elt_longcst (state,
-					   2 * VEC_length (rust_op_ptr,
-							   params));
+		    write_exp_elt_longcst (state, 2 * params->size ());
 		    write_exp_elt_opcode (state, OP_AGGREGATE);
 		    break;
 		  }
 	      }
 	  }
 	convert_ast_to_expression (state, operation->left.op, top);
-	convert_params_to_expression (state, *operation->right.params, top);
+	convert_params_to_expression (state, operation->right.params, top);
 	write_exp_elt_opcode (state, OP_FUNCALL);
-	write_exp_elt_longcst (state, VEC_length (rust_op_ptr,
-						  *operation->right.params));
+	write_exp_elt_longcst (state, operation->right.params->size ());
 	write_exp_elt_longcst (state, OP_FUNCALL);
       }
       break;
 
     case OP_ARRAY:
       gdb_assert (operation->left.op == NULL);
-      convert_params_to_expression (state, *operation->right.params, top);
+      convert_params_to_expression (state, operation->right.params, top);
       write_exp_elt_opcode (state, OP_ARRAY);
       write_exp_elt_longcst (state, 0);
-      write_exp_elt_longcst (state, VEC_length (rust_op_ptr,
-						*operation->right.params) - 1);
+      write_exp_elt_longcst (state, operation->right.params->size () - 1);
       write_exp_elt_longcst (state, OP_ARRAY);
       break;
 
@@ -2316,7 +2347,7 @@ convert_ast_to_expression (struct parser
 	varname = convert_name (state, operation);
 	sym = rust_lookup_symbol (varname, expression_context_block,
 				  VAR_DOMAIN);
-	if (sym.symbol != NULL)
+	if (sym.symbol != NULL && SYMBOL_CLASS (sym.symbol) != LOC_TYPEDEF)
 	  {
 	    write_exp_elt_opcode (state, OP_VAR_VALUE);
 	    write_exp_elt_block (state, sym.block);
@@ -2325,13 +2356,20 @@ convert_ast_to_expression (struct parser
 	  }
 	else
 	  {
-	    struct type *type;
+	    struct type *type = NULL;
 
-	    type = rust_lookup_type (varname, expression_context_block);
+	    if (sym.symbol != NULL)
+	      {
+		gdb_assert (SYMBOL_CLASS (sym.symbol) == LOC_TYPEDEF);
+		type = SYMBOL_TYPE (sym.symbol);
+	      }
+	    if (type == NULL)
+	      type = rust_lookup_type (varname, expression_context_block);
 	    if (type == NULL)
 	      error (_("No symbol '%s' in current context"), varname);
 
-	    if (TYPE_CODE (type) == TYPE_CODE_STRUCT
+	    if (!want_type
+		&& TYPE_CODE (type) == TYPE_CODE_STRUCT
 		&& TYPE_NFIELDS (type) == 0)
 	      {
 		/* A unit-like struct.  */
@@ -2340,41 +2378,42 @@ convert_ast_to_expression (struct parser
 		write_exp_elt_longcst (state, 0);
 		write_exp_elt_opcode (state, OP_AGGREGATE);
 	      }
-	    else if (operation == top)
+	    else if (want_type || operation == top)
 	      {
 		write_exp_elt_opcode (state, OP_TYPE);
 		write_exp_elt_type (state, type);
 		write_exp_elt_opcode (state, OP_TYPE);
-		break;
 	      }
+	    else
+	      error (_("Found type '%s', which can't be "
+		       "evaluated in this context"),
+		     varname);
 	  }
       }
       break;
 
     case OP_AGGREGATE:
       {
-	int i;
 	int length;
-	struct set_field *init;
-	VEC (set_field) *fields = *operation->right.field_inits;
+	rust_set_vector *fields = operation->right.field_inits;
 	struct type *type;
 	const char *name;
 
 	length = 0;
-	for (i = 0; VEC_iterate (set_field, fields, i, init); ++i)
+	for (const set_field &init : *fields)
 	  {
-	    if (init->name.ptr != NULL)
+	    if (init.name.ptr != NULL)
 	      {
 		write_exp_elt_opcode (state, OP_NAME);
-		write_exp_string (state, init->name);
+		write_exp_string (state, init.name);
 		write_exp_elt_opcode (state, OP_NAME);
 		++length;
 	      }
 
-	    convert_ast_to_expression (state, init->init, top);
+	    convert_ast_to_expression (state, init.init, top);
 	    ++length;
 
-	    if (init->name.ptr == NULL)
+	    if (init.name.ptr == NULL)
 	      {
 		/* This is handled differently from Ada in our
 		   evaluator.  */
@@ -2446,25 +2485,16 @@ int
 rust_parse (struct parser_state *state)
 {
   int result;
-  struct cleanup *cleanup;
 
-  obstack_init (&work_obstack);
-  cleanup = make_cleanup_obstack_free (&work_obstack);
-  rust_ast = NULL;
+  /* This sets various globals and also clears them on
+     destruction.  */
+  rust_parser parser (state);
 
-  pstate = state;
   result = rustyyparse ();
 
-  if (!result || (parse_completion && rust_ast != NULL))
-    {
-      const struct rust_op *ast = rust_ast;
-
-      rust_ast = NULL;
-      gdb_assert (ast != NULL);
-      convert_ast_to_expression (state, ast, ast);
-    }
+  if (!result || (parse_completion && parser.rust_ast != NULL))
+    convert_ast_to_expression (state, parser.rust_ast, parser.rust_ast);
 
-  do_cleanups (cleanup);
   return result;
 }
 
@@ -2631,8 +2661,13 @@ rust_lex_tests (void)
 {
   int i;
 
-  obstack_init (&work_obstack);
-  unit_testing = 1;
+  auto_obstack test_obstack;
+  scoped_restore obstack_holder = make_scoped_restore (&work_obstack,
+						       &test_obstack);
+
+  // Set up dummy "parser", so that rust_type works.
+  struct parser_state ps (0, &rust_language_defn, target_gdbarch ());
+  rust_parser parser (&ps);
 
   rust_lex_test_one ("", 0);
   rust_lex_test_one ("    \t  \n \r  ", 0);
@@ -2721,9 +2756,6 @@ rust_lex_tests (void)
 
   rust_lex_test_completion ();
   rust_lex_test_push_back ();
-
-  obstack_free (&work_obstack, NULL);
-  unit_testing = 0;
 }
 
 #endif /* GDB_SELF_TEST */
@@ -2737,6 +2769,6 @@ _initialize_rust_exp (void)
   gdb_assert (code == 0);
 
 #if GDB_SELF_TEST
-  register_self_test (rust_lex_tests);
+  selftests::register_test ("rust-lex", rust_lex_tests);
 #endif
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rust-lang.c ./gdb/rust-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rust-lang.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/rust-lang.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Rust language support routines for GDB, the GNU debugger.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -29,14 +29,13 @@
 #include "gdbarch.h"
 #include "infcall.h"
 #include "objfiles.h"
+#include "psymtab.h"
 #include "rust-lang.h"
 #include "valprint.h"
 #include "varobj.h"
 #include <string>
 #include <vector>
 
-extern initialize_file_ftype _initialize_rust_language;
-
 /* Returns the last segment of a Rust path like foo::bar::baz.  Will
    not handle cases where the last segment contains generics.  This
    will return NULL if the last segment cannot be found.  */
@@ -342,7 +341,8 @@ rust_slice_type_p (struct type *type)
 {
   return (TYPE_CODE (type) == TYPE_CODE_STRUCT
 	  && TYPE_TAG_NAME (type) != NULL
-	  && strncmp (TYPE_TAG_NAME (type), "&[", 2) == 0);
+	  && (strncmp (TYPE_TAG_NAME (type), "&[", 2) == 0
+	      || strcmp (TYPE_TAG_NAME (type), "&str") == 0));
 }
 
 /* Return true if TYPE is a range type, otherwise false.  */
@@ -397,6 +397,39 @@ rust_chartype_p (struct type *type)
 	  && TYPE_UNSIGNED (type));
 }
 
+/* If VALUE represents a trait object pointer, return the underlying
+   pointer with the correct (i.e., runtime) type.  Otherwise, return
+   NULL.  */
+
+static struct value *
+rust_get_trait_object_pointer (struct value *value)
+{
+  struct type *type = check_typedef (value_type (value));
+
+  if (TYPE_CODE (type) != TYPE_CODE_STRUCT || TYPE_NFIELDS (type) != 2)
+    return NULL;
+
+  /* Try to be a bit resilient if the ABI changes.  */
+  int vtable_field = 0;
+  for (int i = 0; i < 2; ++i)
+    {
+      if (strcmp (TYPE_FIELD_NAME (type, i), "vtable") == 0)
+	vtable_field = i;
+      else if (strcmp (TYPE_FIELD_NAME (type, i), "pointer") != 0)
+	return NULL;
+    }
+
+  CORE_ADDR vtable = value_as_address (value_field (value, vtable_field));
+  struct symbol *symbol = find_symbol_at_address (vtable);
+  if (symbol == NULL || symbol->subclass != SYMBOL_RUST_VTABLE)
+    return NULL;
+
+  struct rust_vtable_symbol *vtable_sym
+    = static_cast<struct rust_vtable_symbol *> (symbol);
+  struct type *pointer_type = lookup_pointer_type (vtable_sym->concrete_type);
+  return value_cast (pointer_type, value_field (value, 1 - vtable_field));
+}
+
 
 
 /* la_emitchar implementation for Rust.  */
@@ -468,6 +501,21 @@ rust_printstr (struct ui_file *stream, s
 
 
 
+/* Helper function to print a string slice.  */
+
+static void
+rust_val_print_str (struct ui_file *stream, struct value *val,
+		    const struct value_print_options *options)
+{
+  struct value *base = value_struct_elt (&val, NULL, "data_ptr", NULL,
+					 "slice");
+  struct value *len = value_struct_elt (&val, NULL, "length", NULL, "slice");
+
+  val_print_string (TYPE_TARGET_TYPE (value_type (base)), "UTF-8",
+		    value_as_address (base), value_as_long (len), stream,
+		    options);
+}
+
 /* rust_print_type branch for structs and untagged unions.  */
 
 static void
@@ -478,6 +526,13 @@ val_print_struct (struct type *type, int
 {
   int i;
   int first_field;
+
+  if (rust_slice_type_p (type) && strcmp (TYPE_NAME (type), "&str") == 0)
+    {
+      rust_val_print_str (stream, val, options);
+      return;
+    }
+
   bool is_tuple = rust_tuple_type_p (type);
   bool is_tuple_struct = !is_tuple && rust_tuple_struct_type_p (type);
   struct value_print_options opts;
@@ -793,8 +848,6 @@ rust_print_struct_def (struct type *type
 
   for (i = 0; i < TYPE_NFIELDS (type); ++i)
     {
-      const char *name;
-
       QUIT;
       if (field_is_static (&TYPE_FIELD (type, i)))
 	continue;
@@ -893,13 +946,12 @@ rust_print_type (struct type *type, cons
 	fputs_filtered ("[", stream);
 	rust_print_type (TYPE_TARGET_TYPE (type), NULL,
 			 stream, show - 1, level, flags);
-	fputs_filtered ("; ", stream);
 
 	if (TYPE_HIGH_BOUND_KIND (TYPE_INDEX_TYPE (type)) == PROP_LOCEXPR
 	    || TYPE_HIGH_BOUND_KIND (TYPE_INDEX_TYPE (type)) == PROP_LOCLIST)
-	  fprintf_filtered (stream, "variable length");
+	  fprintf_filtered (stream, "; variable length");
 	else if (get_array_bounds (type, &low_bound, &high_bound))
-	  fprintf_filtered (stream, "%s", 
+	  fprintf_filtered (stream, "; %s",
 			    plongest (high_bound - low_bound + 1));
 	fputs_filtered ("]", stream);
       }
@@ -943,7 +995,7 @@ rust_print_type (struct type *type, cons
     case TYPE_CODE_UNION:
       {
 	/* ADT enums.  */
-	int i, len = 0;
+	int i;
 	/* Skip the discriminant field.  */
 	int skip_to = 1;
 
@@ -1293,7 +1345,7 @@ rust_evaluate_funcall (struct expression
   if (noside == EVAL_AVOID_SIDE_EFFECTS)
     result = value_zero (TYPE_TARGET_TYPE (fn_type), not_lval);
   else
-    result = call_function_by_hand (function, num_args + 1, args.data ());
+    result = call_function_by_hand (function, NULL, num_args + 1, args.data ());
   return result;
 }
 
@@ -1458,17 +1510,53 @@ rust_subscript (struct expression *exp, 
   else
     low = value_as_long (rhs);
 
+  struct type *type = check_typedef (value_type (lhs));
   if (noside == EVAL_AVOID_SIDE_EFFECTS)
     {
-      struct type *type = check_typedef (value_type (lhs));
+      struct type *base_type = nullptr;
+      if (TYPE_CODE (type) == TYPE_CODE_ARRAY)
+	base_type = TYPE_TARGET_TYPE (type);
+      else if (rust_slice_type_p (type))
+	{
+	  for (int i = 0; i < TYPE_NFIELDS (type); ++i)
+	    {
+	      if (strcmp (TYPE_FIELD_NAME (type, i), "data_ptr") == 0)
+		{
+		  base_type = TYPE_TARGET_TYPE (TYPE_FIELD_TYPE (type, i));
+		  break;
+		}
+	    }
+	  if (base_type == nullptr)
+	    error (_("Could not find 'data_ptr' in slice type"));
+	}
+      else if (TYPE_CODE (type) == TYPE_CODE_PTR)
+	base_type = TYPE_TARGET_TYPE (type);
+      else
+	error (_("Cannot subscript non-array type"));
 
-      result = value_zero (TYPE_TARGET_TYPE (type), VALUE_LVAL (lhs));
+      struct type *new_type;
+      if (want_slice)
+	{
+	  if (rust_slice_type_p (type))
+	    new_type = type;
+	  else
+	    {
+	      struct type *usize
+		= language_lookup_primitive_type (exp->language_defn,
+						  exp->gdbarch,
+						  "usize");
+	      new_type = rust_slice_type ("&[*gdb*]", base_type, usize);
+	    }
+	}
+      else
+	new_type = base_type;
+
+      return value_zero (new_type, VALUE_LVAL (lhs));
     }
   else
     {
       LONGEST low_bound;
       struct value *base;
-      struct type *type = check_typedef (value_type (lhs));
 
       if (TYPE_CODE (type) == TYPE_CODE_ARRAY)
 	{
@@ -1528,8 +1616,11 @@ rust_subscript (struct expression *exp, 
 	  usize = language_lookup_primitive_type (exp->language_defn,
 						  exp->gdbarch,
 						  "usize");
-	  slice = rust_slice_type ("&[*gdb*]", value_type (result),
-				   usize);
+	  const char *new_name = ((type != nullptr
+				   && rust_slice_type_p (type))
+				  ? TYPE_NAME (type) : "&[*gdb*]");
+
+	  slice = rust_slice_type (new_name, value_type (result), usize);
 
 	  addrval = value_allocate_space_in_inferior (TYPE_LENGTH (slice));
 	  addr = value_as_long (addrval);
@@ -1558,6 +1649,25 @@ rust_evaluate_subexp (struct type *expec
 
   switch (exp->elts[*pos].opcode)
     {
+    case UNOP_IND:
+      {
+	if (noside != EVAL_NORMAL)
+	  result = evaluate_subexp_standard (expect_type, exp, pos, noside);
+	else
+	  {
+	    ++*pos;
+	    struct value *value = evaluate_subexp (expect_type, exp, pos,
+						   noside);
+
+	    struct value *trait_ptr = rust_get_trait_object_pointer (value);
+	    if (trait_ptr != NULL)
+	      value = trait_ptr;
+
+	    result = value_ind (value);
+	  }
+      }
+      break;
+
     case UNOP_COMPLEMENT:
       {
 	struct value *value;
@@ -1668,7 +1778,6 @@ rust_evaluate_subexp (struct type *expec
 
 	if (noside == EVAL_NORMAL)
 	  {
-	    CORE_ADDR addr;
 	    int i;
 	    std::vector<struct value *> eltvec (copies);
 
@@ -2122,6 +2231,20 @@ rust_sniff_from_mangled_name (const char
 
 
 
+/* la_watch_location_expression for Rust.  */
+
+static gdb::unique_xmalloc_ptr<char>
+rust_watch_location_expression (struct type *type, CORE_ADDR addr)
+{
+  type = check_typedef (TYPE_TARGET_TYPE (check_typedef (type)));
+  std::string name = type_to_string (type);
+  return gdb::unique_xmalloc_ptr<char>
+    (xstrprintf ("*(%s as *mut %s)", core_addr_to_string (addr),
+		 name.c_str ()));
+}
+
+
+
 static const struct exp_descriptor exp_descriptor_rust = 
 {
   rust_print_subexp,
@@ -2137,7 +2260,7 @@ static const char *rust_extensions[] =
   ".rs", NULL
 };
 
-static const struct language_defn rust_language_defn =
+extern const struct language_defn rust_language_defn =
 {
   "rust",
   "Rust",
@@ -2171,21 +2294,17 @@ static const struct language_defn rust_l
   1,				/* c-style arrays */
   0,				/* String lower bound */
   default_word_break_characters,
-  default_make_symbol_completion_list,
+  default_collect_symbol_completion_matches,
   rust_language_arch_info,
   default_print_array_index,
   default_pass_by_reference,
   c_get_string,
-  NULL,				/* la_get_symbol_name_cmp */
+  rust_watch_location_expression,
+  NULL,				/* la_get_symbol_name_matcher */
   iterate_over_symbols,
+  default_search_name_hash,
   &default_varobj_ops,
   NULL,
   NULL,
   LANG_MAGIC
 };
-
-void
-_initialize_rust_language (void)
-{
-  add_language (&rust_language_defn);
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rust-lang.h ./gdb/rust-lang.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rust-lang.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/rust-lang.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Rust language support definitions for GDB, the GNU debugger.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -43,7 +43,7 @@ extern std::string rust_crate_for_block 
    is the type of the elements of the slice.  USIZE_TYPE is the Rust
    "usize" type to use.  The new type is allocated whereever ELT_TYPE
    is allocated.  */
-struct type *rust_slice_type (const char *name, struct type *elt_type,
-			      struct type *usize_type);
+extern struct type *rust_slice_type (const char *name, struct type *elt_type,
+				     struct type *usize_type);
 
 #endif /* RUST_LANG_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rx-tdep.c ./gdb/rx-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/rx-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/rx-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Renesas RX for GDB, the GNU debugger.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat, Inc.
 
@@ -159,7 +159,7 @@ rx_psw_type (struct gdbarch *gdbarch)
 
   if (tdep->rx_psw_type == NULL)
     {
-      tdep->rx_psw_type = arch_flags_type (gdbarch, "rx_psw_type", 4);
+      tdep->rx_psw_type = arch_flags_type (gdbarch, "rx_psw_type", 32);
       append_flags_type_flag (tdep->rx_psw_type, 0, "C");
       append_flags_type_flag (tdep->rx_psw_type, 1, "Z");
       append_flags_type_flag (tdep->rx_psw_type, 2, "S");
@@ -184,7 +184,7 @@ rx_fpsw_type (struct gdbarch *gdbarch)
 
   if (tdep->rx_fpsw_type == NULL)
     {
-      tdep->rx_fpsw_type = arch_flags_type (gdbarch, "rx_fpsw_type", 4);
+      tdep->rx_fpsw_type = arch_flags_type (gdbarch, "rx_fpsw_type", 32);
       append_flags_type_flag (tdep->rx_fpsw_type, 0, "RM0");
       append_flags_type_flag (tdep->rx_fpsw_type, 1, "RM1");
       append_flags_type_flag (tdep->rx_fpsw_type, 2, "CV");
@@ -214,8 +214,6 @@ rx_fpsw_type (struct gdbarch *gdbarch)
 static struct type *
 rx_register_type (struct gdbarch *gdbarch, int reg_nr)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
   if (reg_nr == RX_PC_REGNUM)
     return builtin_type (gdbarch)->builtin_func_ptr;
   else if (reg_nr == RX_PSW_REGNUM || reg_nr == RX_BPSW_REGNUM)
@@ -230,7 +228,7 @@ rx_register_type (struct gdbarch *gdbarc
 
 
 /* Function for finding saved registers in a 'struct pv_area'; this
-   function is passed to pv_area_scan.
+   function is passed to pv_area::scan.
 
    If VALUE is a saved register, ADDR says it was saved at a constant
    offset from the frame base, and SIZE indicates that the whole
@@ -287,8 +285,6 @@ rx_analyze_prologue (CORE_ADDR start_pc,
   CORE_ADDR pc, next_pc;
   int rn;
   pv_t reg[RX_NUM_REGS];
-  struct pv_area *stack;
-  struct cleanup *back_to;
   CORE_ADDR after_last_frame_setup_insn = start_pc;
 
   memset (result, 0, sizeof (*result));
@@ -301,8 +297,7 @@ rx_analyze_prologue (CORE_ADDR start_pc,
       result->reg_offset[rn] = 1;
     }
 
-  stack = make_pv_area (RX_SP_REGNUM, gdbarch_addr_bit (target_gdbarch ()));
-  back_to = make_cleanup_free_pv_area (stack);
+  pv_area stack (RX_SP_REGNUM, gdbarch_addr_bit (target_gdbarch ()));
 
   if (frame_type == RX_FRAME_TYPE_FAST_INTERRUPT)
     {
@@ -318,13 +313,13 @@ rx_analyze_prologue (CORE_ADDR start_pc,
       if (frame_type == RX_FRAME_TYPE_EXCEPTION)
 	{
 	  reg[RX_SP_REGNUM] = pv_add_constant (reg[RX_SP_REGNUM], -4);
-	  pv_area_store (stack, reg[RX_SP_REGNUM], 4, reg[RX_PSW_REGNUM]);
+	  stack.store (reg[RX_SP_REGNUM], 4, reg[RX_PSW_REGNUM]);
 	}
 
       /* The call instruction (or an exception/interrupt) has saved the return
           address on the stack.  */
       reg[RX_SP_REGNUM] = pv_add_constant (reg[RX_SP_REGNUM], -4);
-      pv_area_store (stack, reg[RX_SP_REGNUM], 4, reg[RX_PC_REGNUM]);
+      stack.store (reg[RX_SP_REGNUM], 4, reg[RX_PC_REGNUM]);
 
     }
 
@@ -353,7 +348,7 @@ rx_analyze_prologue (CORE_ADDR start_pc,
 	  for (r = r2; r >= r1; r--)
 	    {
 	      reg[RX_SP_REGNUM] = pv_add_constant (reg[RX_SP_REGNUM], -4);
-	      pv_area_store (stack, reg[RX_SP_REGNUM], 4, reg[r]);
+	      stack.store (reg[RX_SP_REGNUM], 4, reg[r]);
 	    }
 	  after_last_frame_setup_insn = next_pc;
 	}
@@ -380,7 +375,7 @@ rx_analyze_prologue (CORE_ADDR start_pc,
 
 	  rsrc = opc.op[1].reg;
 	  reg[RX_SP_REGNUM] = pv_add_constant (reg[RX_SP_REGNUM], -4);
-	  pv_area_store (stack, reg[RX_SP_REGNUM], 4, reg[rsrc]);
+	  stack.store (reg[RX_SP_REGNUM], 4, reg[rsrc]);
 	  after_last_frame_setup_insn = next_pc;
 	}
       else if (opc.id == RXO_add	/* add #const, rsrc, rdst */
@@ -456,11 +451,9 @@ rx_analyze_prologue (CORE_ADDR start_pc,
     }
 
   /* Record where all the registers were saved.  */
-  pv_area_scan (stack, check_for_saved, (void *) result);
+  stack.scan (check_for_saved, (void *) result);
 
   result->prologue_end = after_last_frame_setup_insn;
-
-  do_cleanups (back_to);
 }
 
 
@@ -1117,8 +1110,6 @@ rx_gdbarch_init (struct gdbarch_info inf
   set_gdbarch_sw_breakpoint_from_kind (gdbarch, rx_breakpoint::bp_from_kind);
   set_gdbarch_skip_prologue (gdbarch, rx_skip_prologue);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_rx);
-
   set_gdbarch_unwind_pc (gdbarch, rx_unwind_pc);
   set_gdbarch_unwind_sp (gdbarch, rx_unwind_sp);
 
@@ -1167,9 +1158,6 @@ rx_gdbarch_init (struct gdbarch_info inf
   return gdbarch;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_rx_tdep;
-
 /* Register the above initialization routine.  */
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/s390-linux-nat.c ./gdb/s390-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/s390-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/s390-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* S390 native-dependent code for GDB, the GNU debugger.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    Contributed by D.J. Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
    for IBM Deutschland Entwicklung GmbH, IBM Corporation.
@@ -54,6 +54,7 @@ static int have_regset_last_break = 0;
 static int have_regset_system_call = 0;
 static int have_regset_tdb = 0;
 static int have_regset_vxrs = 0;
+static int have_regset_gs = 0;
 
 /* Register map for 32-bit executables running under a 64-bit
    kernel.  */
@@ -118,7 +119,7 @@ void
 supply_gregset (struct regcache *regcache, const gregset_t *regp)
 {
 #ifdef __s390x__
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   if (gdbarch_ptr_bit (gdbarch) == 32)
     {
       enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@@ -152,7 +153,7 @@ void
 fill_gregset (const struct regcache *regcache, gregset_t *regp, int regno)
 {
 #ifdef __s390x__
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   if (gdbarch_ptr_bit (gdbarch) == 32)
     {
       regcache_collect_regset (&s390_64_gregset, regcache, regno,
@@ -382,7 +383,7 @@ s390_linux_fetch_inferior_registers (str
   if (have_regset_last_break)
     if (regnum == -1 || regnum == S390_LAST_BREAK_REGNUM)
       fetch_regset (regcache, tid, NT_S390_LAST_BREAK, 8,
-		    (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 32
+		    (gdbarch_ptr_bit (regcache->arch ()) == 32
 		     ? &s390_last_break_regset : &s390x_last_break_regset));
 
   if (have_regset_system_call)
@@ -406,6 +407,18 @@ s390_linux_fetch_inferior_registers (str
 	fetch_regset (regcache, tid, NT_S390_VXRS_HIGH, 16 * 16,
 		      &s390_vxrs_high_regset);
     }
+
+  if (have_regset_gs)
+    {
+      if (regnum == -1 || (regnum >= S390_GSD_REGNUM
+			   && regnum <= S390_GSEPLA_REGNUM))
+	fetch_regset (regcache, tid, NT_S390_GS_CB, 4 * 8,
+		      &s390_gs_regset);
+      if (regnum == -1 || (regnum >= S390_BC_GSD_REGNUM
+			   && regnum <= S390_BC_GSEPLA_REGNUM))
+	fetch_regset (regcache, tid, NT_S390_GS_BC, 4 * 8,
+		      &s390_gsbc_regset);
+    }
 }
 
 /* Store register REGNUM back into the child process.  If REGNUM is
@@ -776,6 +789,14 @@ s390_new_thread (struct lwp_info *lp)
   s390_mark_per_info_changed (lp);
 }
 
+/* Function to call when a thread is being deleted.  */
+
+static void
+s390_delete_thread (struct arch_lwp_info *arch_lwp)
+{
+  xfree (arch_lwp);
+}
+
 /* Iterator callback for s390_refresh_per_info.  */
 
 static int
@@ -974,8 +995,13 @@ s390_read_description (struct target_ops
       && check_regset (tid, NT_S390_VXRS_LOW, 16 * 8)
       && check_regset (tid, NT_S390_VXRS_HIGH, 16 * 16);
 
+    have_regset_gs = (hwcap & HWCAP_S390_GS)
+      && check_regset (tid, NT_S390_GS_CB, 4 * 8)
+      && check_regset (tid, NT_S390_GS_BC, 4 * 8);
+
     if (s390_target_wordsize () == 8)
-      return (have_regset_vxrs ?
+      return (have_regset_gs ? tdesc_s390x_gs_linux64 :
+	      have_regset_vxrs ?
 	      (have_regset_tdb ? tdesc_s390x_tevx_linux64 :
 	       tdesc_s390x_vx_linux64) :
 	      have_regset_tdb ? tdesc_s390x_te_linux64 :
@@ -984,7 +1010,8 @@ s390_read_description (struct target_ops
 	      tdesc_s390x_linux64);
 
     if (hwcap & HWCAP_S390_HIGH_GPRS)
-      return (have_regset_vxrs ?
+      return (have_regset_gs ? tdesc_s390_gs_linux64 :
+	      have_regset_vxrs ?
 	      (have_regset_tdb ? tdesc_s390_tevx_linux64 :
 	       tdesc_s390_vx_linux64) :
 	      have_regset_tdb ? tdesc_s390_te_linux64 :
@@ -1002,8 +1029,6 @@ s390_read_description (struct target_ops
 	  tdesc_s390_linux32);
 }
 
-void _initialize_s390_nat (void);
-
 void
 _initialize_s390_nat (void)
 {
@@ -1033,6 +1058,7 @@ _initialize_s390_nat (void)
   /* Register the target.  */
   linux_nat_add_target (t);
   linux_nat_set_new_thread (t, s390_new_thread);
+  linux_nat_set_delete_thread (t, s390_delete_thread);
   linux_nat_set_prepare_to_resume (t, s390_prepare_to_resume);
   linux_nat_set_forget_process (t, s390_forget_process);
   linux_nat_set_new_fork (t, s390_linux_new_fork);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/s390-linux-tdep.c ./gdb/s390-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/s390-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/s390-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GDB, the GNU debugger.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    Contributed by D.J. Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
    for IBM Deutschland Entwicklung GmbH, IBM Corporation.
@@ -30,7 +30,6 @@
 #include "gdbcore.h"
 #include "gdbcmd.h"
 #include "objfiles.h"
-#include "floatformat.h"
 #include "regcache.h"
 #include "trad-frame.h"
 #include "frame-base.h"
@@ -69,12 +68,14 @@
 #include "features/s390-te-linux64.c"
 #include "features/s390-vx-linux64.c"
 #include "features/s390-tevx-linux64.c"
+#include "features/s390-gs-linux64.c"
 #include "features/s390x-linux64.c"
 #include "features/s390x-linux64v1.c"
 #include "features/s390x-linux64v2.c"
 #include "features/s390x-te-linux64.c"
 #include "features/s390x-vx-linux64.c"
 #include "features/s390x-tevx-linux64.c"
+#include "features/s390x-gs-linux64.c"
 
 #define XML_SYSCALL_FILENAME_S390 "syscalls/s390-linux.xml"
 #define XML_SYSCALL_FILENAME_S390X "syscalls/s390x-linux.xml"
@@ -113,6 +114,7 @@ struct gdbarch_tdep
   int have_linux_v1;
   int have_linux_v2;
   int have_tdb;
+  bool have_gs;
 };
 
 
@@ -155,7 +157,7 @@ s390_cannot_store_register (struct gdbar
 static void
 s390_write_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   regcache_cooked_write_unsigned (regcache, tdep->pc_regnum, pc);
@@ -725,41 +727,38 @@ s390_is_partial_instruction (struct gdba
    process about 4kiB of it each time, leading to O(n**2) memory and time
    complexity.  */
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 s390_software_single_step (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   CORE_ADDR loc = regcache_read_pc (regcache);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int len;
   uint16_t insn;
-  VEC (CORE_ADDR) *next_pcs = NULL;
 
   /* Special handling only if recording.  */
   if (!record_full_is_used ())
-    return NULL;
+    return {};
 
   /* First, match a partial instruction.  */
   if (!s390_is_partial_instruction (gdbarch, loc, &len))
-    return NULL;
+    return {};
 
   loc += len;
 
   /* Second, look for a branch back to it.  */
   insn = read_memory_integer (loc, 2, byte_order);
   if (insn != 0xa714) /* BRC with mask 1 */
-    return NULL;
+    return {};
 
   insn = read_memory_integer (loc + 2, 2, byte_order);
   if (insn != (uint16_t) -(len / 2))
-    return NULL;
+    return {};
 
   loc += 4;
 
   /* Found it, step past the whole thing.  */
-  VEC_safe_push (CORE_ADDR, next_pcs, loc);
-
-  return next_pcs;
+  return {loc};
 }
 
 static int
@@ -837,6 +836,24 @@ static const struct regcache_map_entry s
     { 0 }
   };
 
+static const struct regcache_map_entry s390_regmap_gs[] =
+  {
+    { 1, REGCACHE_MAP_SKIP, 8 },
+    { 1, S390_GSD_REGNUM, 8 },
+    { 1, S390_GSSM_REGNUM, 8 },
+    { 1, S390_GSEPLA_REGNUM, 8 },
+    { 0 }
+  };
+
+static const struct regcache_map_entry s390_regmap_gsbc[] =
+  {
+    { 1, REGCACHE_MAP_SKIP, 8 },
+    { 1, S390_BC_GSD_REGNUM, 8 },
+    { 1, S390_BC_GSSM_REGNUM, 8 },
+    { 1, S390_BC_GSEPLA_REGNUM, 8 },
+    { 0 }
+  };
+
 
 /* Supply the TDB regset.  Like regcache_supply_regset, but invalidate
    the TDB registers unless the TDB format field is valid.  */
@@ -908,6 +925,18 @@ const struct regset s390_vxrs_high_regse
   regcache_collect_regset
 };
 
+const struct regset s390_gs_regset = {
+  s390_regmap_gs,
+  regcache_supply_regset,
+  regcache_collect_regset
+};
+
+const struct regset s390_gsbc_regset = {
+  s390_regmap_gsbc,
+  regcache_supply_regset,
+  regcache_collect_regset
+};
+
 /* Iterate over supported core file register note sections. */
 
 static void
@@ -954,6 +983,23 @@ s390_iterate_over_regset_sections (struc
       cb (".reg-s390-vxrs-high", 16 * 16, &s390_vxrs_high_regset,
 	  "s390 vector registers 16-31", cb_data);
     }
+
+  /* Iterate over the guarded-storage regsets if in "read" mode, or if
+     their registers are available.  */
+  if (tdep->have_gs)
+    {
+      if (regcache == NULL
+	  || REG_VALID == regcache_register_status (regcache,
+						    S390_GSD_REGNUM))
+	cb (".reg-s390-gs-cb", 4 * 8, &s390_gs_regset,
+	    "s390 guarded-storage registers", cb_data);
+
+      if (regcache == NULL
+	  || REG_VALID == regcache_register_status (regcache,
+						    S390_BC_GSD_REGNUM))
+	cb (".reg-s390-gs-bc", 4 * 8, &s390_gsbc_regset,
+	    "s390 guarded-storage broadcast control", cb_data);
+    }
 }
 
 static const struct target_desc *
@@ -962,7 +1008,7 @@ s390_core_read_description (struct gdbar
 {
   asection *section = bfd_get_section_by_name (abfd, ".reg");
   CORE_ADDR hwcap = 0;
-  int high_gprs, v1, v2, te, vx;
+  bool high_gprs, v1, v2, te, vx, gs;
 
   target_auxv_search (target, AT_HWCAP, &hwcap);
   if (!section)
@@ -974,12 +1020,14 @@ s390_core_read_description (struct gdbar
   v2 = (bfd_get_section_by_name (abfd, ".reg-s390-system-call") != NULL);
   vx = (hwcap & HWCAP_S390_VX);
   te = (hwcap & HWCAP_S390_TE);
+  gs = (hwcap & HWCAP_S390_GS);
 
   switch (bfd_section_size (abfd, section))
     {
     case s390_sizeof_gregset:
       if (high_gprs)
-	return (te && vx ? tdesc_s390_tevx_linux64 :
+	return (gs ? tdesc_s390_gs_linux64 :
+		te && vx ? tdesc_s390_tevx_linux64 :
 		vx ? tdesc_s390_vx_linux64 :
 		te ? tdesc_s390_te_linux64 :
 		v2 ? tdesc_s390_linux64v2 :
@@ -989,7 +1037,8 @@ s390_core_read_description (struct gdbar
 		v1 ? tdesc_s390_linux32v1 : tdesc_s390_linux32);
 
     case s390x_sizeof_gregset:
-      return (te && vx ? tdesc_s390x_tevx_linux64 :
+      return (gs ? tdesc_s390x_gs_linux64 :
+	      te && vx ? tdesc_s390x_tevx_linux64 :
 	      vx ? tdesc_s390x_vx_linux64 :
 	      te ? tdesc_s390x_te_linux64 :
 	      v2 ? tdesc_s390x_linux64v2 :
@@ -1326,8 +1375,8 @@ s390_store (struct s390_prologue_data *d
 
 
   /* Check whether we are storing a register into the stack.  */
-  if (!pv_area_store_would_trash (data->stack, addr))
-    pv_area_store (data->stack, addr, size, value);
+  if (!data->stack->store_would_trash (addr))
+    data->stack->store (addr, size, value);
 
 
   /* Note: If this is some store we cannot identify, you might think we
@@ -1364,11 +1413,11 @@ s390_load (struct s390_prologue_data *da
     }
 
   /* Check whether we are accessing one of our save slots.  */
-  return pv_area_fetch (data->stack, addr, size);
+  return data->stack->fetch (addr, size);
 }
 
 /* Function for finding saved registers in a 'struct pv_area'; we pass
-   this to pv_area_scan.
+   this to pv_area::scan.
 
    If VALUE is a saved register, ADDR says it was saved at a constant
    offset from the frame base, and SIZE indicates that the whole
@@ -1437,12 +1486,13 @@ s390_analyze_prologue (struct gdbarch *g
   /* The address of the next instruction after that.  */
   CORE_ADDR next_pc;
 
+  pv_area stack (S390_SP_REGNUM, gdbarch_addr_bit (gdbarch));
+  scoped_restore restore_stack = make_scoped_restore (&data->stack, &stack);
+
   /* Set up everything's initial value.  */
   {
     int i;
 
-    data->stack = make_pv_area (S390_SP_REGNUM, gdbarch_addr_bit (gdbarch));
-
     /* For the purpose of prologue tracking, we consider the GPR size to
        be equal to the ABI word size, even if it is actually larger
        (i.e. when running a 32-bit binary under a 64-bit kernel).  */
@@ -1681,10 +1731,7 @@ s390_analyze_prologue (struct gdbarch *g
     }
 
   /* Record where all the registers were saved.  */
-  pv_area_scan (data->stack, s390_check_for_saved, data);
-
-  free_pv_area (data->stack);
-  data->stack = NULL;
+  data->stack->scan (s390_check_for_saved, data);
 
   return result;
 }
@@ -1814,6 +1861,8 @@ is_non_branch_ril (gdb_byte *insn)
   return 0;
 }
 
+typedef buf_displaced_step_closure s390_displaced_step_closure;
+
 /* Implementation of gdbarch_displaced_step_copy_insn.  */
 
 static struct displaced_step_closure *
@@ -1822,8 +1871,9 @@ s390_displaced_step_copy_insn (struct gd
 			       struct regcache *regs)
 {
   size_t len = gdbarch_max_insn_length (gdbarch);
-  gdb_byte *buf = (gdb_byte *) xmalloc (len);
-  struct cleanup *old_chain = make_cleanup (xfree, buf);
+  std::unique_ptr<s390_displaced_step_closure> closure
+    (new s390_displaced_step_closure (len));
+  gdb_byte *buf = closure->buf.data ();
 
   read_memory (from, buf, len);
 
@@ -1851,7 +1901,7 @@ s390_displaced_step_copy_insn (struct gd
 				  "RIL instruction: offset %s out of range\n",
 				  plongest (offset));
 	    }
-	  do_cleanups (old_chain);
+
 	  return NULL;
 	}
 
@@ -1867,20 +1917,21 @@ s390_displaced_step_copy_insn (struct gd
       displaced_step_dump_bytes (gdb_stdlog, buf, len);
     }
 
-  discard_cleanups (old_chain);
-  return (struct displaced_step_closure *) buf;
+  return closure.release ();
 }
 
 /* Fix up the state of registers and memory after having single-stepped
    a displaced instruction.  */
 static void
 s390_displaced_step_fixup (struct gdbarch *gdbarch,
-			   struct displaced_step_closure *closure,
+			   struct displaced_step_closure *closure_,
 			   CORE_ADDR from, CORE_ADDR to,
 			   struct regcache *regs)
 {
   /* Our closure is a copy of the instruction.  */
-  gdb_byte *insn = (gdb_byte *) closure;
+  s390_displaced_step_closure *closure
+    = (s390_displaced_step_closure *) closure_;
+  gdb_byte *insn = closure->buf.data ();
   static int s390_instrlen[] = { 2, 4, 4, 6 };
   int insnlen = s390_instrlen[insn[0] >> 6];
 
@@ -2646,7 +2697,7 @@ static struct linux_record_tdep s390x_li
 static int
 s390_all_but_pc_registers_record (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int i;
 
@@ -2848,7 +2899,7 @@ s390_canonicalize_syscall (int syscall, 
 static int
 s390_linux_syscall_record (struct regcache *regcache, LONGEST syscall_native)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int ret;
   enum gdb_syscall syscall_gdb;
@@ -4995,6 +5046,8 @@ ex:
         case 0xb9e9: /* SGRK - subtract */
         case 0xb9ea: /* ALGRK - add logical */
         case 0xb9eb: /* SLGRK - subtract logical */
+	case 0xb9ed: /* MSGRKC - multiply single 64x64 -> 64 */
+	case 0xb9fd: /* MSRKC - multiply single 32x32 -> 32 */
           /* 64-bit gpr destination + flags */
           if (s390_record_gpr_g (gdbarch, regcache, inib[6]))
             return -1;
@@ -5022,7 +5075,7 @@ ex:
         case 0xb914: /* LGFR - load */
         case 0xb916: /* LLGFR - load logical */
         case 0xb917: /* LLGTR - load logical thirty one bits */
-        case 0xb91c: /* MSGFR - load */
+	case 0xb91c: /* MSGFR - multiply single 64<32 */
         case 0xb946: /* BCTGR - branch on count */
         case 0xb984: /* LLGCR - load logical character */
         case 0xb985: /* LLGHR - load logical halfword */
@@ -5041,6 +5094,7 @@ ex:
         case 0xb91d: /* DSGFR - divide single */
         case 0xb986: /* MLGR - multiply logical */
         case 0xb987: /* DLGR - divide logical */
+	case 0xb9ec: /* MGRK - multiply 64x64 -> 128 */
           /* 64-bit gpr pair destination  */
           if (s390_record_gpr_g (gdbarch, regcache, inib[6]))
             return -1;
@@ -5109,8 +5163,8 @@ ex:
         /* 0xb922-0xb924 undefined */
         /* 0xb925 privileged */
         /* 0xb928 privileged */
-        /* 0xb929 undefined */
 
+	case 0xb929: /* KMA - cipher message with authentication */
         case 0xb92a: /* KMF - cipher message with cipher feedback [partial] */
         case 0xb92b: /* KMO - cipher message with output feedback [partial] */
         case 0xb92f: /* KMC - cipher message with chaining [partial] */
@@ -5173,6 +5227,15 @@ ex:
               if (record_full_arch_list_add_reg (regcache, S390_R0_REGNUM + (inib[7] | 1)))
                 return -1;
             }
+	  if (tmp != 0 && insn[0] == 0xb929)
+	    {
+	      if (record_full_arch_list_add_reg (regcache,
+						 S390_R0_REGNUM + inib[4]))
+		return -1;
+	      if (record_full_arch_list_add_reg (regcache,
+						 S390_R0_REGNUM + (inib[4] | 1)))
+		return -1;
+	    }
           if (record_full_arch_list_add_reg (regcache, S390_PSWM_REGNUM))
             return -1;
           break;
@@ -5574,10 +5637,11 @@ ex:
 
         /* 0xb9e3 undefined */
         /* 0xb9e5 undefined */
-        /* 0xb9ec-0xb9f1 undefined */
+	/* 0xb9ee-0xb9f1 undefined */
         /* 0xb9f3 undefined */
         /* 0xb9f5 undefined */
-        /* 0xb9fc-0xb9ff undefined */
+	/* 0xb9fc undefined */
+	/* 0xb9fe -0xb9ff undefined */
 
         default:
           goto UNKNOWN_OP;
@@ -5965,6 +6029,7 @@ ex:
       break;
 
     case 0xe3:
+    case 0xe6:
     case 0xe7:
     case 0xeb:
     case 0xed:
@@ -6009,6 +6074,7 @@ ex:
         case 0xe31c: /* MSGF - multiply single */
         case 0xe32a: /* LZRG - load and zero rightmost byte */
         case 0xe33a: /* LLZRGF - load logical and zero rightmost byte */
+	case 0xe33c: /* MGH - multiply halfword 64x16mem -> 64 */
         case 0xe346: /* BCTG - branch on count */
         case 0xe377: /* LGB - load byte */
         case 0xe390: /* LLGC - load logical character */
@@ -6039,6 +6105,7 @@ ex:
 
         case 0xe30d: /* DSG - divide single */
         case 0xe31d: /* DSGF - divide single */
+	case 0xe384: /* MG - multiply 64x64mem -> 128 */
         case 0xe386: /* MLG - multiply logical */
         case 0xe387: /* DLG - divide logical */
         case 0xe38f: /* LPQ - load pair from quadword */
@@ -6060,6 +6127,9 @@ ex:
         /* 0xe310-0xe311 undefined */
 
         case 0xe312: /* LT - load and test */
+	case 0xe338: /* AGH - add halfword to 64 bit value */
+	case 0xe339: /* SGH - subtract halfword from 64 bit value */
+	case 0xe353: /* MSC - multiply single 32x32mem -> 32 */
         case 0xe354: /* NY - and */
         case 0xe356: /* OY - or */
         case 0xe357: /* XY - xor */
@@ -6069,13 +6139,14 @@ ex:
         case 0xe35f: /* SLY - subtract logical */
         case 0xe37a: /* AHY - add halfword */
         case 0xe37b: /* SHY - subtract halfword */
+	case 0xe383: /* MSGC - multiply single 64x64mem -> 64 */
         case 0xe398: /* ALC - add logical with carry */
         case 0xe399: /* SLB - subtract logical with borrow */
         case 0xe727: /* LCBB - load count to block bounduary */
         case 0xeb81: /* ICMY - insert characters under mask */
         case 0xebdc: /* SRAK - shift left single */
         case 0xebdd: /* SLAK - shift left single */
-          /* 32-bit gpr destination + flags */
+	  /* 32/64-bit gpr destination + flags */
           if (record_full_arch_list_add_reg (regcache, S390_R0_REGNUM + inib[2]))
             return -1;
           if (record_full_arch_list_add_reg (regcache, S390_PSWM_REGNUM))
@@ -6163,7 +6234,7 @@ ex:
         case 0xe336: /* PFD - prefetch data */
           break;
 
-        /* 0xe337-0xe339 undefined */
+	/* 0xe337 undefined */
         /* 0xe33c-0xe33d undefined */
 
         case 0xe33e: /* STRV - store reversed */
@@ -6186,8 +6257,12 @@ ex:
           break;
 
         /* 0xe340-0xe345 undefined */
-        /* 0xe347-0xe34f undefined */
-        /* 0xe352-0xe353 undefined */
+
+	case 0xe347: /* BIC - branch indirect on condition */
+	  break;
+
+	/* 0xe348-0xe34f undefined */
+	/* 0xe352 undefined */
 
         case 0xe35c: /* MFY - multiply */
         case 0xe396: /* ML - multiply logical */
@@ -6219,11 +6294,12 @@ ex:
           break;
 
         /* 0xe37d-0xe37f undefined */
-        /* 0xe383-0xe384 undefined */
 
         case 0xe385: /* LGAT - load and trap */
         case 0xe39c: /* LLGTAT - load logical thirty one bits and trap */
         case 0xe39d: /* LLGFAT - load logical and trap */
+	case 0xe650: /* VCVB - vector convert to binary 32 bit*/
+	case 0xe652: /* VCVBG - vector convert to binary 64 bit*/
         case 0xe721: /* VLGV - vector load gr from vr element */
           /* 64-bit gpr destination + fpc for possible DXC write */
           if (s390_record_gpr_g (gdbarch, regcache, inib[2]))
@@ -6274,6 +6350,10 @@ ex:
         /* 0xe3ce undefined */
         /* 0xe3d0-0xe3ff undefined */
 
+	case 0xe634: /* VPKZ - vector pack zoned */
+	case 0xe635: /* VLRL - vector load rightmost with immed. length */
+	case 0xe637: /* VLRLR - vector load rightmost with length */
+	case 0xe649: /* VLIP - vector load immediate decimal */
         case 0xe700: /* VLEB - vector load element */
         case 0xe701: /* VLEH - vector load element */
         case 0xe702: /* VLEG - vector load element */
@@ -6314,7 +6394,10 @@ ex:
         case 0xe769: /* VNC - vector and with complement */
         case 0xe76a: /* VO - vector or */
         case 0xe76b: /* VNO - vector nor */
+	case 0xe76c: /* VNX - vector not exclusive or */
         case 0xe76d: /* VX - vector xor */
+	case 0xe76e: /* VNN - vector nand */
+	case 0xe76f: /* VOC - vector or with complement */
         case 0xe770: /* VESLV - vector element shift left */
         case 0xe772: /* VERIM - vector element rotate and insert under mask */
         case 0xe773: /* VERLLV - vector element rotate left logical */
@@ -6328,11 +6411,14 @@ ex:
         case 0xe77e: /* VSRA - vector shift right arithmetic */
         case 0xe77f: /* VSRAB - vector shift right arithmetic by byte */
         case 0xe784: /* VPDI - vector permute doubleword immediate */
+	case 0xe785: /* VBPERM - vector bit permute */
         case 0xe78c: /* VPERM - vector permute */
         case 0xe78d: /* VSEL - vector select */
         case 0xe78e: /* VFMS - vector fp multiply and subtract */
         case 0xe78f: /* VFMA - vector fp multiply and add */
         case 0xe794: /* VPK - vector pack */
+	case 0xe79e: /* VFNMS - vector fp negative multiply and subtract */
+	case 0xe79f: /* VFNMA - vector fp negative multiply and add */
         case 0xe7a1: /* VMLH - vector multiply logical high */
         case 0xe7a2: /* VML - vector multiply low */
         case 0xe7a3: /* VMH - vector multiply high */
@@ -6348,6 +6434,7 @@ ex:
         case 0xe7ae: /* VMAE - vector multiply and add even */
         case 0xe7af: /* VMAO - vector multiply and add odd */
         case 0xe7b4: /* VGFM - vector Galois field multiply sum */
+	case 0xe7b8: /* VMSL - vector multiply sum logical */
         case 0xe7b9: /* VACCC - vector add with carry compute carry */
         case 0xe7bb: /* VAC - vector add with carry */
         case 0xe7bc: /* VGFMA - vector Galois field multiply sum and accumulate */
@@ -6357,8 +6444,8 @@ ex:
         case 0xe7c1: /* VCDLG - vector convert from logical 64-bit */
         case 0xe7c2: /* VCGD - vector convert to fixed 64-bit */
         case 0xe7c3: /* VCDG - vector convert from fixed 64-bit */
-        case 0xe7c4: /* VLDE - vector fp load lengthened */
-        case 0xe7c5: /* VLED - vector fp load rounded */
+	case 0xe7c4: /* VLDE/VFLL - vector fp load lengthened */
+	case 0xe7c5: /* VLED/VFLR - vector fp load rounded */
         case 0xe7c7: /* VFI - vector load fp integer */
         case 0xe7cc: /* VFPSO - vector fp perform sign operation */
         case 0xe7ce: /* VFSQ - vector fp square root */
@@ -6372,6 +6459,8 @@ ex:
         case 0xe7e3: /* VFA - vector fp add */
         case 0xe7e5: /* VFD - vector fp divide */
         case 0xe7e7: /* VFM - vector fp multiply */
+	case 0xe7ee: /* VFMIN - vector fp minimum */
+	case 0xe7ef: /* VFMAX - vector fp maximum */
         case 0xe7f0: /* VAVGL - vector average logical */
         case 0xe7f1: /* VACC - vector add and compute carry */
         case 0xe7f2: /* VAVG - vector average */
@@ -6389,6 +6478,14 @@ ex:
             return -1;
           break;
 
+	case 0xe63d: /* VSTRL - vector store rightmost with immed. length */
+	  oaddr = s390_record_calc_disp (gdbarch, regcache, 0, insn[1], 0);
+	  if (record_full_arch_list_add_mem (oaddr, inib[3] + 1))
+	    return -1;
+	  if (record_full_arch_list_add_reg (regcache, S390_FPC_REGNUM))
+	    return -1;
+	  break;
+
         case 0xe708: /* VSTEB - vector store element */
           oaddr = s390_record_calc_disp (gdbarch, regcache, inib[3], insn[1], 0);
           if (record_full_arch_list_add_mem (oaddr, 1))
@@ -6483,13 +6580,22 @@ ex:
             return -1;
           break;
 
+	case 0xe63c: /* VUPKZ - vector unpack zoned */
+	  oaddr = s390_record_calc_disp (gdbarch, regcache, 0, insn[1], 0);
+	  if (record_full_arch_list_add_mem (oaddr, (ibyte[1] + 1) & 31))
+	    return -1;
+	  if (record_full_arch_list_add_reg (regcache, S390_PSWM_REGNUM))
+	    return -1;
+	  break;
+
+	case 0xe63f: /* VSTRLR - vector store rightmost with length */
         case 0xe73f: /* VSTL - vector store with length */
           oaddr = s390_record_calc_disp (gdbarch, regcache, 0, insn[1], 0);
           regcache_raw_read_unsigned (regcache, S390_R0_REGNUM + inib[3], &tmp);
           tmp &= 0xffffffffu;
-          if (tmp > 16)
-            tmp = 16;
-          if (record_full_arch_list_add_mem (oaddr, tmp))
+	  if (tmp > 15)
+	    tmp = 15;
+	  if (record_full_arch_list_add_mem (oaddr, tmp + 1))
             return -1;
           if (record_full_arch_list_add_reg (regcache, S390_FPC_REGNUM))
             return -1;
@@ -6497,6 +6603,17 @@ ex:
 
         /* 0xe747-0xe749 undefined */
 
+	case 0xe658: /* VCVD - vector convert to decimal 32 bit */
+	case 0xe659: /* VSRP - vector shift and round decimal */
+	case 0xe65a: /* VCVDG - vector convert to decimal 64 bit*/
+	case 0xe65b: /* VPSOP - vector perform sign operation decimal */
+	case 0xe671: /* VAP - vector add decimal */
+	case 0xe673: /* VSP - vector subtract decimal */
+	case 0xe678: /* VMP - vector multiply decimal */
+	case 0xe679: /* VMSP - vector multiply decimal */
+	case 0xe67a: /* VDP - vector divide decimal */
+	case 0xe67b: /* VRP - vector remainder decimal */
+	case 0xe67e: /* VSDP - vector shift and divide decimal */
         case 0xe74a: /* VFTCI - vector fp test data class immediate */
         case 0xe75c: /* VISTR - vector isolate string */
         case 0xe780: /* VFEE - vector find element equal */
@@ -6507,7 +6624,7 @@ ex:
         case 0xe797: /* VPKS - vector pack saturate */
         case 0xe7e8: /* VFCE - vector fp compare equal */
         case 0xe7ea: /* VFCHE - vector fp compare high or equal */
-        case 0xe7eb: /* VFCE - vector fp compare high */
+	case 0xe7eb: /* VFCH - vector fp compare high */
         case 0xe7f8: /* VCEQ - vector compare equal */
         case 0xe7f9: /* VCHL - vector compare high logical */
         case 0xe7fb: /* VCH - vector compare high */
@@ -6520,6 +6637,14 @@ ex:
             return -1;
           break;
 
+	case 0xe65f: /* VTP - vector test decimal */
+	  /* flags + FPC */
+	  if (record_full_arch_list_add_reg (regcache, S390_PSWM_REGNUM))
+	    return -1;
+	  if (record_full_arch_list_add_reg (regcache, S390_FPC_REGNUM))
+	    return -1;
+	  break;
+
         /* 0xe74b-0xe74c undefined */
         /* 0xe74e-0xe74f undefined */
         /* 0xe751 undefined */
@@ -6527,26 +6652,26 @@ ex:
         /* 0xe757-0xe75b undefined */
         /* 0xe75d-0xe75e undefined */
         /* 0xe763 undefined */
-        /* 0xe76c undefined */
-        /* 0xe76e-0xe76f undefined */
         /* 0xe771 undefined */
         /* 0xe776 undefined */
         /* 0xe779 undefined */
         /* 0xe77b undefined */
         /* 0xe783 undefined */
-        /* 0xe785-0xe789 undefined */
+	/* 0xe786-0xe789 undefined */
         /* 0xe78b undefined */
         /* 0xe790-0xe793 undefined */
         /* 0xe796 undefined */
-        /* 0xe798-0xe7a0 undefined */
-        /* 0xe7a8 undefined */
+	/* 0xe798-0xe79d undefined */
+	/* 0xe7a0 undefined */
+	/* 0xe7a8 undefined */
         /* 0xe7b0-0xe7b3 undefined */
-        /* 0xe7b5-0xe7b8 undefined */
+	/* 0xe7b5-0xe7b7 undefined */
         /* 0xe7ba undefined */
         /* 0xe7be undefined */
         /* 0xe7c6 undefined */
         /* 0xe7c8-0xe7c9 undefined */
 
+	case 0xe677: /* VCP - vector compare decimal */
         case 0xe7ca: /* WFK - vector fp compare and signal scalar */
         case 0xe7cb: /* WFC - vector fp compare scalar */
         case 0xe7d8: /* VTM - vector test under mask */
@@ -6571,7 +6696,7 @@ ex:
         /* 0xe7e4 undefined */
         /* 0xe7e6 undefined */
         /* 0xe7e9 undefined */
-        /* 0xe7ec-0xe7ef undefined */
+	/* 0xe7ec-0xe7ed undefined */
         /* 0xe7f4 undefined */
         /* 0xe7f6 undefined */
         /* 0xe7fa undefined */
@@ -7051,8 +7176,6 @@ ex:
         }
       break;
 
-    /* 0xe6 undefined */
-
     case 0xec:
       /* RIE/RIS/RRS-format instruction */
       switch (ibyte[0] << 8 | ibyte[5])
@@ -7698,6 +7821,7 @@ s390_gdbarch_init (struct gdbarch_info i
   int have_linux_v2 = 0;
   int have_tdb = 0;
   int have_vx = 0;
+  int have_gs = 0;
   int first_pseudo_reg, last_pseudo_reg;
   static const char *const stap_register_prefixes[] = { "%", NULL };
   static const char *const stap_register_indirection_prefixes[] = { "(",
@@ -7765,6 +7889,12 @@ s390_gdbarch_init (struct gdbarch_info i
 	"v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23", "v24",
 	"v25", "v26", "v27", "v28", "v29", "v30", "v31",
       };
+      static const char *const gs_cb[] = {
+	"gsd", "gssm", "gsepla",
+      };
+      static const char *const gs_bc[] = {
+	"bc_gsd", "bc_gssm", "bc_gsepla",
+      };
       const struct tdesc_feature *feature;
       int i, valid_p = 1;
 
@@ -7868,6 +7998,29 @@ s390_gdbarch_init (struct gdbarch_info i
 	  have_vx = 1;
 	}
 
+      /* Guarded-storage registers.  */
+      feature = tdesc_find_feature (tdesc, "org.gnu.gdb.s390.gs");
+      if (feature)
+	{
+	  for (i = 0; i < 3; i++)
+	    valid_p &= tdesc_numbered_register (feature, tdesc_data,
+						S390_GSD_REGNUM + i,
+						gs_cb[i]);
+	  have_gs = 1;
+	}
+
+      /* Guarded-storage broadcast control.  */
+      feature = tdesc_find_feature (tdesc, "org.gnu.gdb.s390.gsbc");
+      if (feature)
+	{
+	  valid_p &= have_gs;
+
+	  for (i = 0; i < 3; i++)
+	    valid_p &= tdesc_numbered_register (feature, tdesc_data,
+						S390_BC_GSD_REGNUM + i,
+						gs_bc[i]);
+	}
+
       if (!valid_p)
 	{
 	  tdesc_data_cleanup (tdesc_data);
@@ -7901,6 +8054,8 @@ s390_gdbarch_init (struct gdbarch_info i
 	continue;
       if ((tdep->gpr_full_regnum != -1) != have_upper)
 	continue;
+      if (tdep->have_gs != have_gs)
+	continue;
       if (tdesc_data != NULL)
 	tdesc_data_cleanup (tdesc_data);
       return arches->gdbarch;
@@ -7913,6 +8068,7 @@ s390_gdbarch_init (struct gdbarch_info i
   tdep->have_linux_v1 = have_linux_v1;
   tdep->have_linux_v2 = have_linux_v2;
   tdep->have_tdb = have_tdb;
+  tdep->have_gs = have_gs;
   gdbarch = gdbarch_alloc (&info, tdep);
 
   set_gdbarch_believe_pcc_promotion (gdbarch, 0);
@@ -8008,8 +8164,6 @@ s390_gdbarch_init (struct gdbarch_info i
   set_gdbarch_displaced_step_copy_insn (gdbarch,
 					s390_displaced_step_copy_insn);
   set_gdbarch_displaced_step_fixup (gdbarch, s390_displaced_step_fixup);
-  set_gdbarch_displaced_step_free_closure (gdbarch,
-					   simple_displaced_step_free_closure);
   set_gdbarch_displaced_step_location (gdbarch, linux_displaced_step_location);
   set_gdbarch_max_insn_length (gdbarch, S390_MAX_INSTR_SIZE);
 
@@ -8043,8 +8197,6 @@ s390_gdbarch_init (struct gdbarch_info i
       break;
     }
 
-  set_gdbarch_print_insn (gdbarch, print_insn_s390);
-
   set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
 
   /* Enable TLS support.  */
@@ -8076,9 +8228,6 @@ s390_gdbarch_init (struct gdbarch_info i
   return gdbarch;
 }
 
-
-extern initialize_file_ftype _initialize_s390_tdep; /* -Wmissing-prototypes */
-
 void
 _initialize_s390_tdep (void)
 {
@@ -8095,10 +8244,12 @@ _initialize_s390_tdep (void)
   initialize_tdesc_s390_te_linux64 ();
   initialize_tdesc_s390_vx_linux64 ();
   initialize_tdesc_s390_tevx_linux64 ();
+  initialize_tdesc_s390_gs_linux64 ();
   initialize_tdesc_s390x_linux64 ();
   initialize_tdesc_s390x_linux64v1 ();
   initialize_tdesc_s390x_linux64v2 ();
   initialize_tdesc_s390x_te_linux64 ();
   initialize_tdesc_s390x_vx_linux64 ();
   initialize_tdesc_s390x_tevx_linux64 ();
+  initialize_tdesc_s390x_gs_linux64 ();
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/s390-linux-tdep.h ./gdb/s390-linux-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/s390-linux-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/s390-linux-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target-dependent code for GDB, the GNU debugger.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -33,6 +33,10 @@
 #define HWCAP_S390_VX 2048
 #endif
 
+#ifndef HWCAP_S390_GS
+#define HWCAP_S390_GS 16384
+#endif
+
 /* Register information.  */
 
 /* Program Status Word.  */
@@ -166,8 +170,14 @@
 #define S390_V29_REGNUM 119
 #define S390_V30_REGNUM 120
 #define S390_V31_REGNUM 121
+#define S390_GSD_REGNUM 122
+#define S390_GSSM_REGNUM 123
+#define S390_GSEPLA_REGNUM 124
+#define S390_BC_GSD_REGNUM 125
+#define S390_BC_GSSM_REGNUM 126
+#define S390_BC_GSEPLA_REGNUM 127
 /* Total.  */
-#define S390_NUM_REGS 122
+#define S390_NUM_REGS 128
 
 /* Special register usage.  */
 #define S390_SP_REGNUM S390_R15_REGNUM
@@ -198,6 +208,8 @@ extern const struct regset s390_tdb_regs
 #define s390_sizeof_tdbregset 0x100
 extern const struct regset s390_vxrs_low_regset;
 extern const struct regset s390_vxrs_high_regset;
+extern const struct regset s390_gs_regset;
+extern const struct regset s390_gsbc_regset;
 
 /* GNU/Linux target descriptions.  */
 extern struct target_desc *tdesc_s390_linux32;
@@ -209,11 +221,13 @@ extern struct target_desc *tdesc_s390_li
 extern struct target_desc *tdesc_s390_te_linux64;
 extern struct target_desc *tdesc_s390_vx_linux64;
 extern struct target_desc *tdesc_s390_tevx_linux64;
+extern struct target_desc *tdesc_s390_gs_linux64;
 extern struct target_desc *tdesc_s390x_linux64;
 extern struct target_desc *tdesc_s390x_linux64v1;
 extern struct target_desc *tdesc_s390x_linux64v2;
 extern struct target_desc *tdesc_s390x_te_linux64;
 extern struct target_desc *tdesc_s390x_vx_linux64;
 extern struct target_desc *tdesc_s390x_tevx_linux64;
+extern struct target_desc *tdesc_s390x_gs_linux64;
 
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/score-tdep.c ./gdb/score-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/score-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/score-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Target-dependent code for the S+core architecture, for GDB,
    the GNU Debugger.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    Contributed by Qinwei (qinwei@sunnorth.com.cn)
    Contributed by Ching-Peng Lin (cplin@sunplus.com)
@@ -126,15 +126,6 @@ score_register_sim_regno (struct gdbarch
 }
 #endif
 
-static int
-score_print_insn (bfd_vma memaddr, struct disassemble_info *info)
-{
-  if (info->endian == BFD_ENDIAN_BIG)
-    return print_insn_big_score (memaddr, info);
-  else
-    return print_insn_little_score (memaddr, info);
-}
-
 static inst_t *
 score7_fetch_inst (struct gdbarch *gdbarch, CORE_ADDR addr, gdb_byte *memblock)
 {
@@ -1491,7 +1482,6 @@ score_gdbarch_init (struct gdbarch_info 
   set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
   set_gdbarch_unwind_sp (gdbarch, score_unwind_sp);
   set_gdbarch_unwind_pc (gdbarch, score_unwind_pc);
-  set_gdbarch_print_insn (gdbarch, score_print_insn);
 
   switch (target_mach)
     {
@@ -1541,8 +1531,6 @@ score_gdbarch_init (struct gdbarch_info 
   return gdbarch;
 }
 
-extern initialize_file_ftype _initialize_score_tdep;
-
 void
 _initialize_score_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/score-tdep.h ./gdb/score-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/score-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/score-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Target-dependent code for the S+core architecture, for GDB,
    the GNU Debugger.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    Contributed by Qinwei (qinwei@sunnorth.com.cn)
    Contributed by Ching-Peng Lin (cplin@sunplus.com)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/selftest-arch.c ./gdb/selftest-arch.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/selftest-arch.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/selftest-arch.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GDB self-test for each gdbarch.
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -23,80 +23,85 @@
 #include "selftest-arch.h"
 #include "arch-utils.h"
 
-static std::vector<self_test_foreach_arch_function *> gdbarch_tests;
-
-void
-register_self_test_foreach_arch (self_test_foreach_arch_function *function)
-{
-  gdbarch_tests.push_back (function);
-}
-
 namespace selftests {
 
-static void
-tests_with_arch ()
+/* A kind of selftest that calls the test function once for each gdbarch known
+   to GDB.  */
+
+struct gdbarch_selftest : public selftest
 {
-  int failed = 0;
+  gdbarch_selftest (self_test_foreach_arch_function *function_)
+  : function (function_)
+  {}
+
+  void operator() () const override
+  {
+    const char **arches = gdbarch_printable_names ();
+    bool pass = true;
+
+    for (int i = 0; arches[i] != NULL; i++)
+      {
+	if (strcmp ("fr300", arches[i]) == 0)
+	  {
+	    /* PR 20946 */
+	    continue;
+	  }
+	else if (strcmp ("powerpc:EC603e", arches[i]) == 0
+		 || strcmp ("powerpc:e500mc", arches[i]) == 0
+		 || strcmp ("powerpc:e500mc64", arches[i]) == 0
+		 || strcmp ("powerpc:titan", arches[i]) == 0
+		 || strcmp ("powerpc:vle", arches[i]) == 0
+		 || strcmp ("powerpc:e5500", arches[i]) == 0
+		 || strcmp ("powerpc:e6500", arches[i]) == 0)
+	  {
+	    /* PR 19797 */
+	    continue;
+	  }
+
+	QUIT;
+
+	TRY
+	  {
+	    struct gdbarch_info info;
+
+	    gdbarch_info_init (&info);
+	    info.bfd_arch_info = bfd_scan_arch (arches[i]);
+
+	    struct gdbarch *gdbarch = gdbarch_find_by_info (info);
+	    SELF_CHECK (gdbarch != NULL);
+
+	    function (gdbarch);
+	  }
+	CATCH (ex, RETURN_MASK_ERROR)
+	  {
+	    pass = false;
+	    exception_fprintf (gdb_stderr, ex,
+			       _("Self test failed: arch %s: "), arches[i]);
+	  }
+	END_CATCH
 
-  for (const auto &f : gdbarch_tests)
-    {
-      const char **arches = gdbarch_printable_names ();
-
-      for (int i = 0; arches[i] != NULL; i++)
-	{
-	  if (strcmp ("fr300", arches[i]) == 0)
-	    {
-	      /* PR 20946 */
-	      continue;
-	    }
-	  else if (strcmp ("powerpc:EC603e", arches[i]) == 0
-		   || strcmp ("powerpc:e500mc", arches[i]) == 0
-		   || strcmp ("powerpc:e500mc64", arches[i]) == 0
-		   || strcmp ("powerpc:titan", arches[i]) == 0
-		   || strcmp ("powerpc:vle", arches[i]) == 0
-		   || strcmp ("powerpc:e5500", arches[i]) == 0
-		   || strcmp ("powerpc:e6500", arches[i]) == 0)
-	    {
-	      /* PR 19797 */
-	      continue;
-	    }
-
-	  QUIT;
-
-	  TRY
-	    {
-	      struct gdbarch_info info;
-
-	      gdbarch_info_init (&info);
-	      info.bfd_arch_info = bfd_scan_arch (arches[i]);
-
-	      struct gdbarch *gdbarch = gdbarch_find_by_info (info);
-	      SELF_CHECK (gdbarch != NULL);
-	      f (gdbarch);
-	    }
-	  CATCH (ex, RETURN_MASK_ERROR)
-	    {
-	      ++failed;
-	      exception_fprintf (gdb_stderr, ex,
-				 _("Self test failed: arch %s: "), arches[i]);
-	    }
-	  END_CATCH
-	}
-    }
+	reset ();
+      }
 
-  SELF_CHECK (failed == 0);
-}
+    SELF_CHECK (pass);
+  }
 
-} // namespace selftests
-#endif /* GDB_SELF_TEST */
+  self_test_foreach_arch_function *function;
+};
 
-/* Suppress warning from -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_selftests_foreach_arch;
+void
+register_test_foreach_arch (const std::string &name,
+			    self_test_foreach_arch_function *function)
+{
+  register_test (name, new gdbarch_selftest (function));
+}
 
 void
-_initialize_selftests_foreach_arch ()
+reset ()
 {
-#if GDB_SELF_TEST
-  register_self_test (selftests::tests_with_arch);
-#endif
+  /* Clear GDB internal state.  */
+  registers_changed ();
+  reinit_frame_cache ();
 }
+} // namespace selftests
+#endif /* GDB_SELF_TEST */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/selftest-arch.h ./gdb/selftest-arch.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/selftest-arch.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/selftest-arch.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GDB self-test for each gdbarch.
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -21,7 +21,11 @@
 
 typedef void self_test_foreach_arch_function (struct gdbarch *);
 
+namespace selftests
+{
 extern void
-  register_self_test_foreach_arch (self_test_foreach_arch_function *function);
+  register_test_foreach_arch (const std::string &name,
+			      self_test_foreach_arch_function *function);
+}
 
 #endif /* SELFTEST_ARCH_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/selftest.c ./gdb/selftest.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/selftest.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/selftest.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,60 +0,0 @@
-/* GDB self-testing.
-   Copyright (C) 2016-2017 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 "defs.h"
-#include "selftest.h"
-#include <vector>
-
-/* All the tests that have been registered.  */
-
-static std::vector<self_test_function *> tests;
-
-/* See selftest.h.  */
-
-void
-register_self_test (self_test_function *function)
-{
-  tests.push_back (function);
-}
-
-/* See selftest.h.  */
-
-void
-run_self_tests (void)
-{
-  int failed = 0;
-
-  for (int i = 0; i < tests.size (); ++i)
-    {
-      QUIT;
-
-      TRY
-	{
-	  tests[i] ();
-	}
-      CATCH (ex, RETURN_MASK_ERROR)
-	{
-	  ++failed;
-	  exception_fprintf (gdb_stderr, ex, _("Self test failed: "));
-	}
-      END_CATCH
-    }
-
-  printf_filtered (_("Ran %lu unit tests, %d failed\n"),
-		   (long) tests.size (), failed);
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/selftest.h ./gdb/selftest.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/selftest.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/selftest.h	1970-01-01 00:00:00.000000000 +0000
@@ -1,44 +0,0 @@
-/* GDB self-testing.
-   Copyright (C) 2016-2017 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 SELFTEST_H
-#define SELFTEST_H
-
-/* A test is just a function that does some checks and throws an
-   exception if something has gone wrong.  */
-
-typedef void self_test_function (void);
-
-/* Register a new self-test.  */
-
-extern void register_self_test (self_test_function *function);
-
-/* Run all the self tests.  This print a message describing the number
-   of test and the number of failures.  */
-
-extern void run_self_tests (void);
-
-/* Check that VALUE is true, and, if not, throw an exception.  */
-
-#define SELF_CHECK(VALUE)						\
-  do {									\
-    if (!(VALUE))							\
-      error (_("self-test failed at %s:%d"), __FILE__, __LINE__);	\
-  } while (0)
-
-#endif /* SELFTEST_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sentinel-frame.c ./gdb/sentinel-frame.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sentinel-frame.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sentinel-frame.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Code dealing with register stack frames, for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -74,7 +74,7 @@ sentinel_frame_prev_arch (struct frame_i
   struct frame_unwind_cache *cache
     = (struct frame_unwind_cache *) *this_prologue_cache;
 
-  return get_regcache_arch (cache->regcache);
+  return cache->regcache->arch ();
 }
 
 const struct frame_unwind sentinel_frame_unwind =
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sentinel-frame.h ./gdb/sentinel-frame.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sentinel-frame.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sentinel-frame.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Code dealing with register stack frames, for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-base.c ./gdb/ser-base.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-base.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ser-base.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Generic serial interface functions.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -288,6 +288,8 @@ ser_base_read_error_fd (struct serial *s
 	  if (s == 0 && close_fd)
 	    {
 	      /* End of file.  */
+	      if (serial_is_async_p (scb))
+		delete_file_handler (scb->error_fd);
 	      close (scb->error_fd);
 	      scb->error_fd = -1;
 	      break;
@@ -313,6 +315,17 @@ ser_base_read_error_fd (struct serial *s
     }
 }
 
+/* Event-loop callback for a serial's error_fd.  Flushes any error
+   output we might have.  */
+
+static void
+handle_error_fd (int error, gdb_client_data client_data)
+{
+  serial *scb = (serial *) client_data;
+
+  ser_base_read_error_fd (scb, 0);
+}
+
 /* Read a character with user-specified timeout.  TIMEOUT is number of
    seconds to wait, or -1 to wait forever.  Use timeout of 0 to effect
    a poll.  Returns char if successful.  Returns SERIAL_TIMEOUT if
@@ -538,14 +551,6 @@ ser_base_set_tty_state (struct serial *s
   return 0;
 }
 
-int
-ser_base_noflush_set_tty_state (struct serial *scb,
-				serial_ttystate new_ttystate,
-				serial_ttystate old_ttystate)
-{
-  return 0;
-}
-
 void
 ser_base_print_tty_state (struct serial *scb, 
 			  serial_ttystate ttystate,
@@ -589,6 +594,9 @@ ser_base_async (struct serial *scb,
 	fprintf_unfiltered (gdb_stdlog, "[fd%d->asynchronous]\n",
 			    scb->fd);
       reschedule (scb);
+
+      if (scb->error_fd != -1)
+	add_file_handler (scb->error_fd, handle_error_fd, scb);
     }
   else
     {
@@ -607,5 +615,8 @@ ser_base_async (struct serial *scb,
 	  delete_timer (scb->async_state);
 	  break;
 	}
+
+      if (scb->error_fd != -1)
+	delete_file_handler (scb->error_fd);
     }
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-base.h ./gdb/ser-base.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-base.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ser-base.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Generic serial interface functions.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -40,9 +40,6 @@ extern int ser_base_set_tty_state (struc
 extern void ser_base_print_tty_state (struct serial *scb,
 				      serial_ttystate ttystate,
 				      struct ui_file *stream);
-extern int ser_base_noflush_set_tty_state (struct serial *scb,
-					   serial_ttystate new_ttystate,
-					   serial_ttystate old_ttystate);
 extern int ser_base_setbaudrate (struct serial *scb, int rate);
 extern int ser_base_setstopbits (struct serial *scb, int num);
 extern int ser_base_setparity (struct serial *scb, int parity);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-event.c ./gdb/ser-event.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-event.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ser-event.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Serial interface for a selectable event.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -144,7 +144,6 @@ static const struct serial_ops serial_ev
   NULL, /* copy_tty_state */
   NULL, /* set_tty_state */
   NULL, /* print_tty_state */
-  NULL, /* noflush_set_tty_state */
   NULL, /* setbaudrate */
   NULL, /* setstopbits */
   NULL, /* setparity */
@@ -203,7 +202,6 @@ void
 serial_event_clear (struct serial_event *event)
 {
   struct serial *ser = (struct serial *) event;
-  struct serial_event_state *state = (struct serial_event_state *) ser->state;
 #ifndef USE_WIN32API
   int r;
 
@@ -215,6 +213,7 @@ serial_event_clear (struct serial_event 
     }
   while (r > 0 || (r < 0 && errno == EINTR));
 #else
+  struct serial_event_state *state = (struct serial_event_state *) ser->state;
   ResetEvent (state->event);
 #endif
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-event.h ./gdb/ser-event.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-event.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ser-event.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Serial interface for a selectable event.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-go32.c ./gdb/ser-go32.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-go32.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ser-go32.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Remote serial interface for local (hardwired) serial ports for GO32.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    Contributed by Nigel Stephens, Algorithmics Ltd. (nigel@algor.co.uk).
 
@@ -689,17 +689,6 @@ dos_set_tty_state (struct serial *scb, s
 }
 
 static int
-dos_noflush_set_tty_state (struct serial *scb, serial_ttystate new_ttystate,
-			   serial_ttystate old_ttystate)
-{
-  struct dos_ttystate *state;
-
-  state = (struct dos_ttystate *) new_ttystate;
-  dos_setbaudrate (scb, state->baudrate);
-  return 0;
-}
-
-static int
 dos_flush_input (struct serial *scb)
 {
   struct dos_ttystate *port = &ports[scb->fd];
@@ -882,7 +871,6 @@ static const struct serial_ops dos_ops =
   dos_copy_tty_state,
   dos_set_tty_state,
   dos_print_tty_state,
-  dos_noflush_set_tty_state,
   dos_setbaudrate,
   dos_setstopbits,
   dos_setparity,
@@ -899,7 +887,7 @@ gdb_pipe (int pdes[2])
 }
 
 static void
-dos_info (char *arg, int from_tty)
+info_serial_command (const char *arg, int from_tty)
 {
   struct dos_ttystate *port;
 #ifdef DOS_STATS
@@ -927,9 +915,6 @@ dos_info (char *arg, int from_tty)
 #endif
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_ser_dos;
-
 void
 _initialize_ser_dos (void)
 {
@@ -999,6 +984,6 @@ Show COM4 interrupt request."), NULL,
 			    NULL, /* FIXME: i18n: */
 			    &setlist, &showlist);
 
-  add_info ("serial", dos_info,
+  add_info ("serial", info_serial_command,
 	    _("Print DOS serial port status."));
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/serial.c ./gdb/serial.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/serial.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/serial.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Generic serial interface routines
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -23,8 +23,6 @@
 #include "gdbcmd.h"
 #include "cli/cli-utils.h"
 
-extern void _initialize_serial (void);
-
 /* Is serial being debugged?  */
 
 static unsigned int global_serial_debug_p;
@@ -205,7 +203,6 @@ static struct serial *serial_open_ops_1 
 struct serial *
 serial_open (const char *name)
 {
-  struct serial *scb;
   const struct serial_ops *ops;
   const char *open_name = name;
 
@@ -214,7 +211,7 @@ serial_open (const char *name)
       ops = serial_interface_lookup ("pipe");
       /* Discard ``|'' and any space before the command itself.  */
       ++open_name;
-      open_name = skip_spaces_const (open_name);
+      open_name = skip_spaces (open_name);
     }
   /* Check for a colon, suggesting an IP address/port pair.
      Do this *after* checking for all the interesting prefixes.  We
@@ -516,14 +513,6 @@ serial_print_tty_state (struct serial *s
 }
 
 int
-serial_noflush_set_tty_state (struct serial *scb,
-			      serial_ttystate new_ttystate,
-			      serial_ttystate old_ttystate)
-{
-  return scb->ops->noflush_set_tty_state (scb, new_ttystate, old_ttystate);
-}
-
-int
 serial_setbaudrate (struct serial *scb, int rate)
 {
   return scb->ops->setbaudrate (scb, rate);
@@ -629,7 +618,7 @@ static struct cmd_list_element *serial_s
 static struct cmd_list_element *serial_show_cmdlist;
 
 static void
-serial_set_cmd (char *args, int from_tty)
+serial_set_cmd (const char *args, int from_tty)
 {
   printf_unfiltered ("\"set serial\" must be followed "
 		     "by the name of a command.\n");
@@ -637,7 +626,7 @@ serial_set_cmd (char *args, int from_tty
 }
 
 static void
-serial_show_cmd (char *args, int from_tty)
+serial_show_cmd (const char *args, int from_tty)
 {
   cmd_show_list (serial_show_cmdlist, from_tty, "");
 }
@@ -671,7 +660,7 @@ static const char *parity = parity_none;
 /* Set serial_parity value.  */
 
 static void
-set_parity (char *ignore_args, int from_tty, struct cmd_list_element *c)
+set_parity (const char *ignore_args, int from_tty, struct cmd_list_element *c)
 {
   if (parity == parity_odd)
     serial_parity = GDBPARITY_ODD;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/serial.h ./gdb/serial.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/serial.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/serial.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Remote serial support interface definitions for GDB, the GNU Debugger.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -169,16 +169,6 @@ extern void serial_print_tty_state (stru
 				    serial_ttystate ttystate,
 				    struct ui_file *);
 
-/* Set the tty state to NEW_TTYSTATE, where OLD_TTYSTATE is the
-   current state (generally obtained from a recent call to
-   serial_get_tty_state()), but be careful not to discard any input.
-   This means that we never switch in or out of raw mode, even if
-   NEW_TTYSTATE specifies a switch.  */
-
-extern int serial_noflush_set_tty_state (struct serial *scb,
-					 serial_ttystate new_ttystate,
-					 serial_ttystate old_ttystate);
-
 /* Set the baudrate to the decimal value supplied.  Returns 0 for
    success, -1 for failure.  */
 
@@ -276,8 +266,6 @@ struct serial_ops
     int (*set_tty_state) (struct serial *, serial_ttystate);
     void (*print_tty_state) (struct serial *, serial_ttystate,
 			     struct ui_file *);
-    int (*noflush_set_tty_state) (struct serial *, serial_ttystate,
-				  serial_ttystate);
     int (*setbaudrate) (struct serial *, int rate);
     int (*setstopbits) (struct serial *, int num);
     /* Set the value PARITY as parity setting for serial object.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-mingw.c ./gdb/ser-mingw.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-mingw.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ser-mingw.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Serial interface for local (hardwired) serial ports on Windows systems
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -31,8 +31,6 @@
 
 #include "command.h"
 
-void _initialize_ser_windows (void);
-
 struct ser_windows_state
 {
   int in_progress;
@@ -863,20 +861,18 @@ pipe_windows_open (struct serial *scb, c
 {
   struct pipe_state *ps;
   FILE *pex_stderr;
-  char **argv;
   struct cleanup *back_to;
 
   if (name == NULL)
     error_no_arg (_("child command"));
 
-  argv = gdb_buildargv (name);
-  back_to = make_cleanup_freeargv (argv);
+  gdb_argv argv (name);
 
   if (! argv[0] || argv[0][0] == '\0')
     error (_("missing child command"));
 
   ps = make_pipe_state ();
-  make_cleanup (cleanup_pipe_state, ps);
+  back_to = make_cleanup (cleanup_pipe_state, ps);
 
   ps->pex = pex_init (PEX_USE_PIPES, "target remote pipe", NULL);
   if (! ps->pex)
@@ -890,7 +886,7 @@ pipe_windows_open (struct serial *scb, c
     const char *err_msg
       = pex_run (ps->pex, PEX_SEARCH | PEX_BINARY_INPUT | PEX_BINARY_OUTPUT
 		 | PEX_STDERR_TO_PIPE,
-                 argv[0], argv, NULL, NULL,
+                 argv[0], argv.get (), NULL, NULL,
                  &err);
 
     if (err_msg)
@@ -920,6 +916,7 @@ pipe_windows_open (struct serial *scb, c
 
   scb->state = (void *) ps;
 
+  argv.release ();
   discard_cleanups (back_to);
   return 0;
 
@@ -1251,7 +1248,6 @@ static const struct serial_ops hardwire_
   ser_base_copy_tty_state,
   ser_base_set_tty_state,
   ser_base_print_tty_state,
-  ser_base_noflush_set_tty_state,
   ser_windows_setbaudrate,
   ser_windows_setstopbits,
   ser_windows_setparity,
@@ -1282,7 +1278,6 @@ static const struct serial_ops tty_ops =
   ser_base_copy_tty_state,
   ser_base_set_tty_state,
   ser_base_print_tty_state,
-  ser_base_noflush_set_tty_state,
   NULL,
   NULL,
   NULL,
@@ -1313,7 +1308,6 @@ static const struct serial_ops pipe_ops 
   ser_base_copy_tty_state,
   ser_base_set_tty_state,
   ser_base_print_tty_state,
-  ser_base_noflush_set_tty_state,
   ser_base_setbaudrate,
   ser_base_setstopbits,
   ser_base_setparity,
@@ -1344,7 +1338,6 @@ static const struct serial_ops tcp_ops =
   ser_base_copy_tty_state,
   ser_base_set_tty_state,
   ser_base_print_tty_state,
-  ser_base_noflush_set_tty_state,
   ser_base_setbaudrate,
   ser_base_setstopbits,
   ser_base_setparity,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-pipe.c ./gdb/ser-pipe.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-pipe.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ser-pipe.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Serial interface for a pipe to a separate program
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions.
 
@@ -36,8 +36,6 @@
 static int pipe_open (struct serial *scb, const char *name);
 static void pipe_close (struct serial *scb);
 
-extern void _initialize_ser_pipe (void);
-
 struct pipe_state
   {
     int pid;
@@ -221,7 +219,6 @@ static const struct serial_ops pipe_ops 
   ser_base_copy_tty_state,
   ser_base_set_tty_state,
   ser_base_print_tty_state,
-  ser_base_noflush_set_tty_state,
   ser_base_setbaudrate,
   ser_base_setstopbits,
   ser_base_setparity,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-tcp.c ./gdb/ser-tcp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-tcp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ser-tcp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Serial interface for raw TCP connections on Un*x like systems.
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -42,6 +42,10 @@
 #ifndef ETIMEDOUT
 #define ETIMEDOUT WSAETIMEDOUT
 #endif
+/* Gnulib defines close too, but gnulib's replacement
+   doesn't call closesocket unless we import the
+   socketlib module.  */
+#undef close
 #define close(fd) closesocket (fd)
 #define ioctl ioctlsocket
 #else
@@ -60,8 +64,6 @@
 typedef int socklen_t;
 #endif
 
-void _initialize_ser_tcp (void);
-
 /* For "set tcp" and "show tcp".  */
 
 static struct cmd_list_element *tcp_set_cmdlist;
@@ -366,13 +368,13 @@ ser_tcp_send_break (struct serial *scb)
 /* Support for "set tcp" and "show tcp" commands.  */
 
 static void
-set_tcp_cmd (char *args, int from_tty)
+set_tcp_cmd (const char *args, int from_tty)
 {
   help_list (tcp_set_cmdlist, "set tcp ", all_commands, gdb_stdout);
 }
 
 static void
-show_tcp_cmd (char *args, int from_tty)
+show_tcp_cmd (const char *args, int from_tty)
 {
   help_list (tcp_show_cmdlist, "show tcp ", all_commands, gdb_stdout);
 }
@@ -397,7 +399,6 @@ static const struct serial_ops tcp_ops =
   ser_base_copy_tty_state,
   ser_base_set_tty_state,
   ser_base_print_tty_state,
-  ser_base_noflush_set_tty_state,
   ser_base_setbaudrate,
   ser_base_setstopbits,
   ser_base_setparity,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-tcp.h ./gdb/ser-tcp.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-tcp.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ser-tcp.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Serial interface for raw TCP connections on Un*x like systems.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-unix.c ./gdb/ser-unix.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-unix.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ser-unix.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Serial interface for local (hardwired) serial ports on Un*x like systems
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -31,9 +31,7 @@
 #include "gdb_select.h"
 #include "gdbcmd.h"
 #include "filestuff.h"
-#include "gdb_termios.h"
-
-#ifdef HAVE_TERMIOS
+#include <termios.h>
 
 struct hardwire_ttystate
   {
@@ -51,32 +49,6 @@ show_serial_hwflow (struct ui_file *file
 }
 #endif
 
-#endif /* termios */
-
-#ifdef HAVE_TERMIO
-
-/* It is believed that all systems which have added job control to SVR3
-   (e.g. sco) have also added termios.  Even if not, trying to figure out
-   all the variations (TIOCGPGRP vs. TCGETPGRP, etc.) would be pretty
-   bewildering.  So we don't attempt it.  */
-
-struct hardwire_ttystate
-  {
-    struct termio termio;
-  };
-#endif /* termio */
-
-#ifdef HAVE_SGTTY
-struct hardwire_ttystate
-  {
-    struct sgttyb sgttyb;
-    struct tchars tc;
-    struct ltchars ltc;
-    /* Line discipline flags.  */
-    int lmode;
-  };
-#endif /* sgtty */
-
 static int hardwire_open (struct serial *scb, const char *name);
 static void hardwire_raw (struct serial *scb);
 static int rate_to_code (int rate);
@@ -89,8 +61,6 @@ static int set_tty_state (struct serial 
 			  struct hardwire_ttystate * state);
 static serial_ttystate hardwire_get_tty_state (struct serial *scb);
 static int hardwire_set_tty_state (struct serial *scb, serial_ttystate state);
-static int hardwire_noflush_set_tty_state (struct serial *, serial_ttystate,
-					   serial_ttystate);
 static void hardwire_print_tty_state (struct serial *, serial_ttystate,
 				      struct ui_file *);
 static int hardwire_drain_output (struct serial *);
@@ -99,8 +69,6 @@ static int hardwire_flush_input (struct 
 static int hardwire_send_break (struct serial *);
 static int hardwire_setstopbits (struct serial *, int);
 
-void _initialize_ser_hardwire (void);
-
 /* Open up a real live device for serial I/O.  */
 
 static int
@@ -116,61 +84,19 @@ hardwire_open (struct serial *scb, const
 static int
 get_tty_state (struct serial *scb, struct hardwire_ttystate *state)
 {
-#ifdef HAVE_TERMIOS
   if (tcgetattr (scb->fd, &state->termios) < 0)
     return -1;
 
   return 0;
-#endif
-
-#ifdef HAVE_TERMIO
-  if (ioctl (scb->fd, TCGETA, &state->termio) < 0)
-    return -1;
-  return 0;
-#endif
-
-#ifdef HAVE_SGTTY
-  if (ioctl (scb->fd, TIOCGETP, &state->sgttyb) < 0)
-    return -1;
-  if (ioctl (scb->fd, TIOCGETC, &state->tc) < 0)
-    return -1;
-  if (ioctl (scb->fd, TIOCGLTC, &state->ltc) < 0)
-    return -1;
-  if (ioctl (scb->fd, TIOCLGET, &state->lmode) < 0)
-    return -1;
-
-  return 0;
-#endif
 }
 
 static int
 set_tty_state (struct serial *scb, struct hardwire_ttystate *state)
 {
-#ifdef HAVE_TERMIOS
   if (tcsetattr (scb->fd, TCSANOW, &state->termios) < 0)
     return -1;
 
   return 0;
-#endif
-
-#ifdef HAVE_TERMIO
-  if (ioctl (scb->fd, TCSETA, &state->termio) < 0)
-    return -1;
-  return 0;
-#endif
-
-#ifdef HAVE_SGTTY
-  if (ioctl (scb->fd, TIOCSETN, &state->sgttyb) < 0)
-    return -1;
-  if (ioctl (scb->fd, TIOCSETC, &state->tc) < 0)
-    return -1;
-  if (ioctl (scb->fd, TIOCSLTC, &state->ltc) < 0)
-    return -1;
-  if (ioctl (scb->fd, TIOCLSET, &state->lmode) < 0)
-    return -1;
-
-  return 0;
-#endif
 }
 
 static serial_ttystate
@@ -207,39 +133,6 @@ hardwire_set_tty_state (struct serial *s
   return set_tty_state (scb, state);
 }
 
-static int
-hardwire_noflush_set_tty_state (struct serial *scb,
-				serial_ttystate new_ttystate,
-				serial_ttystate old_ttystate)
-{
-  struct hardwire_ttystate new_state;
-#ifdef HAVE_SGTTY
-  struct hardwire_ttystate *state = (struct hardwire_ttystate *) old_ttystate;
-#endif
-
-  new_state = *(struct hardwire_ttystate *) new_ttystate;
-
-  /* Don't change in or out of raw mode; we don't want to flush input.
-     termio and termios have no such restriction; for them flushing input
-     is separate from setting the attributes.  */
-
-#ifdef HAVE_SGTTY
-  if (state->sgttyb.sg_flags & RAW)
-    new_state.sgttyb.sg_flags |= RAW;
-  else
-    new_state.sgttyb.sg_flags &= ~RAW;
-
-  /* I'm not sure whether this is necessary; the manpage just mentions
-     RAW not CBREAK.  */
-  if (state->sgttyb.sg_flags & CBREAK)
-    new_state.sgttyb.sg_flags |= CBREAK;
-  else
-    new_state.sgttyb.sg_flags &= ~CBREAK;
-#endif
-
-  return set_tty_state (scb, &new_state);
-}
-
 static void
 hardwire_print_tty_state (struct serial *scb,
 			  serial_ttystate ttystate,
@@ -248,7 +141,6 @@ hardwire_print_tty_state (struct serial 
   struct hardwire_ttystate *state = (struct hardwire_ttystate *) ttystate;
   int i;
 
-#ifdef HAVE_TERMIOS
   fprintf_filtered (stream, "c_iflag = 0x%x, c_oflag = 0x%x,\n",
 		    (int) state->termios.c_iflag,
 		    (int) state->termios.c_oflag);
@@ -264,36 +156,6 @@ hardwire_print_tty_state (struct serial 
   for (i = 0; i < NCCS; i += 1)
     fprintf_filtered (stream, "0x%x ", state->termios.c_cc[i]);
   fprintf_filtered (stream, "\n");
-#endif
-
-#ifdef HAVE_TERMIO
-  fprintf_filtered (stream, "c_iflag = 0x%x, c_oflag = 0x%x,\n",
-		    state->termio.c_iflag, state->termio.c_oflag);
-  fprintf_filtered (stream, "c_cflag = 0x%x, c_lflag = 0x%x, c_line = 0x%x.\n",
-		    state->termio.c_cflag, state->termio.c_lflag,
-		    state->termio.c_line);
-  fprintf_filtered (stream, "c_cc: ");
-  for (i = 0; i < NCC; i += 1)
-    fprintf_filtered (stream, "0x%x ", state->termio.c_cc[i]);
-  fprintf_filtered (stream, "\n");
-#endif
-
-#ifdef HAVE_SGTTY
-  fprintf_filtered (stream, "sgttyb.sg_flags = 0x%x.\n",
-		    state->sgttyb.sg_flags);
-
-  fprintf_filtered (stream, "tchars: ");
-  for (i = 0; i < (int) sizeof (struct tchars); i++)
-    fprintf_filtered (stream, "0x%x ", ((unsigned char *) &state->tc)[i]);
-  fprintf_filtered (stream, "\n");
-
-  fprintf_filtered (stream, "ltchars: ");
-  for (i = 0; i < (int) sizeof (struct ltchars); i++)
-    fprintf_filtered (stream, "0x%x ", ((unsigned char *) &state->ltc)[i]);
-  fprintf_filtered (stream, "\n");
-
-  fprintf_filtered (stream, "lmode:  0x%x\n", state->lmode);
-#endif
 }
 
 /* Wait for the output to drain away, as opposed to flushing
@@ -302,48 +164,13 @@ hardwire_print_tty_state (struct serial 
 static int
 hardwire_drain_output (struct serial *scb)
 {
-#ifdef HAVE_TERMIOS
   return tcdrain (scb->fd);
-#endif
-
-#ifdef HAVE_TERMIO
-  return ioctl (scb->fd, TCSBRK, 1);
-#endif
-
-#ifdef HAVE_SGTTY
-  /* Get the current state and then restore it using TIOCSETP,
-     which should cause the output to drain and pending input
-     to be discarded.  */
-  {
-    struct hardwire_ttystate state;
-
-    if (get_tty_state (scb, &state))
-      {
-	return (-1);
-      }
-    else
-      {
-	return (ioctl (scb->fd, TIOCSETP, &state.sgttyb));
-      }
-  }
-#endif
 }
 
 static int
 hardwire_flush_output (struct serial *scb)
 {
-#ifdef HAVE_TERMIOS
   return tcflush (scb->fd, TCOFLUSH);
-#endif
-
-#ifdef HAVE_TERMIO
-  return ioctl (scb->fd, TCFLSH, 1);
-#endif
-
-#ifdef HAVE_SGTTY
-  /* This flushes both input and output, but we can't do better.  */
-  return ioctl (scb->fd, TIOCFLUSH, 0);
-#endif
 }
 
 static int
@@ -351,45 +178,13 @@ hardwire_flush_input (struct serial *scb
 {
   ser_base_flush_input (scb);
 
-#ifdef HAVE_TERMIOS
   return tcflush (scb->fd, TCIFLUSH);
-#endif
-
-#ifdef HAVE_TERMIO
-  return ioctl (scb->fd, TCFLSH, 0);
-#endif
-
-#ifdef HAVE_SGTTY
-  /* This flushes both input and output, but we can't do better.  */
-  return ioctl (scb->fd, TIOCFLUSH, 0);
-#endif
 }
 
 static int
 hardwire_send_break (struct serial *scb)
 {
-#ifdef HAVE_TERMIOS
   return tcsendbreak (scb->fd, 0);
-#endif
-
-#ifdef HAVE_TERMIO
-  return ioctl (scb->fd, TCSBRK, 0);
-#endif
-
-#ifdef HAVE_SGTTY
-  {
-    int status;
-
-    status = ioctl (scb->fd, TIOCSBRK, 0);
-
-    /* Can't use usleep; it doesn't exist in BSD 4.2.  */
-    /* Note that if this gdb_select() is interrupted by a signal it will not
-       wait the full length of time.  I think that is OK.  */
-    gdb_usleep (250000);
-    status = ioctl (scb->fd, TIOCCBRK, 0);
-    return status;
-  }
-#endif
 }
 
 static void
@@ -401,7 +196,6 @@ hardwire_raw (struct serial *scb)
     fprintf_unfiltered (gdb_stderr, "get_tty_state failed: %s\n",
 			safe_strerror (errno));
 
-#ifdef HAVE_TERMIOS
   state.termios.c_iflag = 0;
   state.termios.c_oflag = 0;
   state.termios.c_lflag = 0;
@@ -422,22 +216,6 @@ hardwire_raw (struct serial *scb)
 #endif
   state.termios.c_cc[VMIN] = 0;
   state.termios.c_cc[VTIME] = 0;
-#endif
-
-#ifdef HAVE_TERMIO
-  state.termio.c_iflag = 0;
-  state.termio.c_oflag = 0;
-  state.termio.c_lflag = 0;
-  state.termio.c_cflag &= ~CSIZE;
-  state.termio.c_cflag |= CLOCAL | CS8;
-  state.termio.c_cc[VMIN] = 0;
-  state.termio.c_cc[VTIME] = 0;
-#endif
-
-#ifdef HAVE_SGTTY
-  state.sgttyb.sg_flags |= RAW | ANYP;
-  state.sgttyb.sg_flags &= ~(CBREAK | ECHO);
-#endif
 
   if (set_tty_state (scb, &state))
     fprintf_unfiltered (gdb_stderr, "set_tty_state failed: %s\n",
@@ -606,24 +384,8 @@ hardwire_setbaudrate (struct serial *scb
   if (get_tty_state (scb, &state))
     return -1;
 
-#ifdef HAVE_TERMIOS
   cfsetospeed (&state.termios, baud_code);
   cfsetispeed (&state.termios, baud_code);
-#endif
-
-#ifdef HAVE_TERMIO
-#ifndef CIBAUD
-#define CIBAUD CBAUD
-#endif
-
-  state.termio.c_cflag &= ~(CBAUD | CIBAUD);
-  state.termio.c_cflag |= baud_code;
-#endif
-
-#ifdef HAVE_SGTTY
-  state.sgttyb.sg_ispeed = baud_code;
-  state.sgttyb.sg_ospeed = baud_code;
-#endif
 
   return set_tty_state (scb, &state);
 }
@@ -650,23 +412,10 @@ hardwire_setstopbits (struct serial *scb
       return 1;
     }
 
-#ifdef HAVE_TERMIOS
   if (!newbit)
     state.termios.c_cflag &= ~CSTOPB;
   else
     state.termios.c_cflag |= CSTOPB;	/* two bits */
-#endif
-
-#ifdef HAVE_TERMIO
-  if (!newbit)
-    state.termio.c_cflag &= ~CSTOPB;
-  else
-    state.termio.c_cflag |= CSTOPB;	/* two bits */
-#endif
-
-#ifdef HAVE_SGTTY
-  return 0;			/* sgtty doesn't support this */
-#endif
 
   return set_tty_state (scb, &state);
 }
@@ -699,19 +448,9 @@ hardwire_setparity (struct serial *scb, 
       return -1;
     }
 
-#ifdef HAVE_TERMIOS
   state.termios.c_cflag &= ~(PARENB | PARODD);
   state.termios.c_cflag |= newparity;
-#endif
 
-#ifdef HAVE_TERMIO
-  state.termio.c_cflag &= ~(PARENB | PARODD);
-  state.termio.c_cflag |= newparity;
-#endif
-
-#ifdef HAVE_SGTTY
-  return 0;            /* sgtty doesn't support this */
-#endif
   return set_tty_state (scb, &state);
 }
 
@@ -746,7 +485,6 @@ static const struct serial_ops hardwire_
   hardwire_copy_tty_state,
   hardwire_set_tty_state,
   hardwire_print_tty_state,
-  hardwire_noflush_set_tty_state,
   hardwire_setbaudrate,
   hardwire_setstopbits,
   hardwire_setparity,
@@ -761,7 +499,6 @@ _initialize_ser_hardwire (void)
 {
   serial_add_interface (&hardwire_ops);
 
-#ifdef HAVE_TERMIOS
 #ifdef CRTSCTS
   add_setshow_boolean_cmd ("remoteflow", no_class,
 			   &serial_hwflow, _("\
@@ -773,7 +510,6 @@ when debugging using remote targets."),
 			   show_serial_hwflow,
 			   &setlist, &showlist);
 #endif
-#endif
 }
 
 int
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-unix.h ./gdb/ser-unix.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ser-unix.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ser-unix.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Serial interface for UN*X file-descriptor based connection.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sh64-tdep.c ./gdb/sh64-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sh64-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sh64-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Renesas Super-H, for GDB.
 
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -35,7 +35,9 @@
 #include "arch-utils.h"
 #include "regcache.h"
 #include "osabi.h"
+#include "target-float.h"
 #include "valprint.h"
+#include "target-float.h"
 
 #include "elf-bfd.h"
 
@@ -58,8 +60,23 @@ enum sh_abi
 struct gdbarch_tdep
   {
     enum sh_abi sh_abi;
+    /* ISA-specific data types.  */
+    struct type *sh_littlebyte_bigword_type;
   };
 
+struct type *
+sh64_littlebyte_bigword_type (struct gdbarch *gdbarch)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+  if (tdep->sh_littlebyte_bigword_type == NULL)
+    tdep->sh_littlebyte_bigword_type
+      = arch_float_type (gdbarch, -1, "builtin_type_sh_littlebyte_bigword",
+                         floatformats_ieee_double_littlebyte_bigword);
+
+  return tdep->sh_littlebyte_bigword_type;
+}
+
 struct sh64_frame_cache
 {
   /* Base address.  */
@@ -1226,7 +1243,7 @@ static void
 sh64_extract_return_value (struct type *type, struct regcache *regcache,
 			   gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int len = TYPE_LENGTH (type);
 
   if (TYPE_CODE (type) == TYPE_CODE_FLT)
@@ -1240,18 +1257,11 @@ sh64_extract_return_value (struct type *
       else if (len == 8)
 	{
 	  /* return value stored in DR0_REGNUM.  */
-	  DOUBLEST val;
 	  gdb_byte buf[8];
-
 	  regcache_cooked_read (regcache, DR0_REGNUM, buf);
 	  
-	  if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_LITTLE)
-	    floatformat_to_doublest (&floatformat_ieee_double_littlebyte_bigword,
-				     buf, &val);
-	  else
-	    floatformat_to_doublest (&floatformat_ieee_double_big,
-				     buf, &val);
-	  store_typed_floating (valbuf, type, val);
+	  target_float_convert (buf, sh64_littlebyte_bigword_type (gdbarch),
+				valbuf, type);
 	}
     }
   else
@@ -1287,7 +1297,7 @@ static void
 sh64_store_return_value (struct type *type, struct regcache *regcache,
 			 const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   gdb_byte buf[64];	/* more than enough...  */
   int len = TYPE_LENGTH (type);
 
@@ -1460,12 +1470,8 @@ sh64_register_convert_to_virtual (struct
        && regnum <= DR_LAST_REGNUM)
       || (regnum >= DR0_C_REGNUM 
 	  && regnum <= DR_LAST_C_REGNUM))
-    {
-      DOUBLEST val;
-      floatformat_to_doublest (&floatformat_ieee_double_littlebyte_bigword, 
-			       from, &val);
-      store_typed_floating (to, type, val);
-    }
+    target_float_convert (from, sh64_littlebyte_bigword_type (gdbarch),
+			  to, type);
   else
     error (_("sh64_register_convert_to_virtual "
 	     "called with non DR register number"));
@@ -1473,7 +1479,7 @@ sh64_register_convert_to_virtual (struct
 
 static void
 sh64_register_convert_to_raw (struct gdbarch *gdbarch, struct type *type,
-			      int regnum, const void *from, void *to)
+			      int regnum, const gdb_byte *from, gdb_byte *to)
 {
   if (gdbarch_byte_order (gdbarch) != BFD_ENDIAN_LITTLE)
     {
@@ -1486,11 +1492,8 @@ sh64_register_convert_to_raw (struct gdb
        && regnum <= DR_LAST_REGNUM)
       || (regnum >= DR0_C_REGNUM 
 	  && regnum <= DR_LAST_C_REGNUM))
-    {
-      DOUBLEST val = extract_typed_floating (from, type);
-      floatformat_from_doublest (&floatformat_ieee_double_littlebyte_bigword, 
-				 &val, to);
-    }
+    target_float_convert (from, type,
+			  to, sh64_littlebyte_bigword_type (gdbarch));
   else
     error (_("sh64_register_convert_to_raw called "
 	     "with non DR register number"));
@@ -1528,12 +1531,12 @@ sh64_pseudo_register_read (struct gdbarc
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int base_regnum;
   int offset = 0;
-  gdb_byte temp_buffer[MAX_REGISTER_SIZE];
   enum register_status status;
 
   if (reg_nr >= DR0_REGNUM 
       && reg_nr <= DR_LAST_REGNUM)
     {
+      gdb_byte temp_buffer[8];
       base_regnum = sh64_dr_reg_base_num (gdbarch, reg_nr);
 
       /* Build the value in the provided buffer.  */ 
@@ -1580,6 +1583,7 @@ sh64_pseudo_register_read (struct gdbarc
   else if (reg_nr >= R0_C_REGNUM 
 	   && reg_nr <= T_C_REGNUM)
     {
+      gdb_byte temp_buffer[8];
       base_regnum = sh64_compact_reg_base_num (gdbarch, reg_nr);
 
       /* Build the value in the provided buffer.  */ 
@@ -1607,6 +1611,7 @@ sh64_pseudo_register_read (struct gdbarc
   else if (reg_nr >= DR0_C_REGNUM 
 	   && reg_nr <= DR_LAST_C_REGNUM)
     {
+      gdb_byte temp_buffer[8];
       base_regnum = sh64_compact_reg_base_num (gdbarch, reg_nr);
 
       /* DR_C regs are double precision registers obtained by
@@ -1639,8 +1644,8 @@ sh64_pseudo_register_read (struct gdbarc
     {
       int fpscr_base_regnum;
       int sr_base_regnum;
-      unsigned int fpscr_value;
-      unsigned int sr_value;
+      ULONGEST fpscr_value;
+      ULONGEST sr_value;
       unsigned int fpscr_c_value;
       unsigned int fpscr_c_part1_value;
       unsigned int fpscr_c_part2_value;
@@ -1662,18 +1667,14 @@ sh64_pseudo_register_read (struct gdbarc
             21-31     reserved
        */
       /* *INDENT-ON* */
-      /* Get FPSCR into a local buffer.  */
-      status = regcache_raw_read (regcache, fpscr_base_regnum, temp_buffer);
+      /* Get FPSCR as an int.  */
+      status = regcache->raw_read (fpscr_base_regnum, &fpscr_value);
       if (status != REG_VALID)
 	return status;
-      /* Get value as an int.  */
-      fpscr_value = extract_unsigned_integer (temp_buffer, 4, byte_order);
-      /* Get SR into a local buffer */
-      status = regcache_raw_read (regcache, sr_base_regnum, temp_buffer);
+      /* Get SR as an int.  */
+      status = regcache->raw_read (sr_base_regnum, &sr_value);
       if (status != REG_VALID)
 	return status;
-      /* Get value as an int.  */
-      sr_value = extract_unsigned_integer (temp_buffer, 4, byte_order);
       /* Build the new value.  */
       fpscr_c_part1_value = fpscr_value & 0x3fffd;
       fpscr_c_part2_value = (sr_value & 0x7000) << 6;
@@ -1704,11 +1705,11 @@ sh64_pseudo_register_write (struct gdbar
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int base_regnum, portion;
   int offset;
-  gdb_byte temp_buffer[MAX_REGISTER_SIZE];
 
   if (reg_nr >= DR0_REGNUM
       && reg_nr <= DR_LAST_REGNUM)
     {
+      gdb_byte temp_buffer[8];
       base_regnum = sh64_dr_reg_base_num (gdbarch, reg_nr);
       /* We must pay attention to the endianness.  */
       sh64_register_convert_to_raw (gdbarch, register_type (gdbarch, reg_nr),
@@ -1752,6 +1753,7 @@ sh64_pseudo_register_write (struct gdbar
   else if (reg_nr >= R0_C_REGNUM 
 	   && reg_nr <= T_C_REGNUM)
     {
+      gdb_byte temp_buffer[8];
       base_regnum = sh64_compact_reg_base_num (gdbarch, reg_nr);
       /* reg_nr is 32 bit here, and base_regnum is 64 bits.  */
       if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG)
@@ -1779,6 +1781,7 @@ sh64_pseudo_register_write (struct gdbar
   else if (reg_nr >= DR0_C_REGNUM 
 	   && reg_nr <= DR_LAST_C_REGNUM)
     {
+      gdb_byte temp_buffer[8];
       base_regnum = sh64_compact_reg_base_num (gdbarch, reg_nr);
       for (portion = 0; portion < 2; portion++)
 	{
@@ -1813,10 +1816,10 @@ sh64_pseudo_register_write (struct gdbar
     {      
       int fpscr_base_regnum;
       int sr_base_regnum;
-      unsigned int fpscr_value;
-      unsigned int sr_value;
-      unsigned int old_fpscr_value;
-      unsigned int old_sr_value;
+      ULONGEST fpscr_value;
+      ULONGEST sr_value;
+      ULONGEST old_fpscr_value;
+      ULONGEST old_sr_value;
       unsigned int fpscr_c_value;
       unsigned int fpscr_mask;
       unsigned int sr_mask;
@@ -1847,19 +1850,15 @@ sh64_pseudo_register_write (struct gdbar
       fpscr_value = fpscr_c_value & fpscr_mask;
       sr_value = (fpscr_value & sr_mask) >> 6;
       
-      regcache_raw_read (regcache, fpscr_base_regnum, temp_buffer);
-      old_fpscr_value = extract_unsigned_integer (temp_buffer, 4, byte_order);
+      regcache->raw_read (fpscr_base_regnum, &old_fpscr_value);
       old_fpscr_value &= 0xfffc0002;
       fpscr_value |= old_fpscr_value;
-      store_unsigned_integer (temp_buffer, 4, byte_order, fpscr_value);
-      regcache_raw_write (regcache, fpscr_base_regnum, temp_buffer);
-      
-      regcache_raw_read (regcache, sr_base_regnum, temp_buffer);
-      old_sr_value = extract_unsigned_integer (temp_buffer, 4, byte_order);
+      regcache->raw_write (fpscr_base_regnum, fpscr_value);
+
+      regcache->raw_read (sr_base_regnum, &old_sr_value);
       old_sr_value &= 0xffff8fff;
       sr_value |= old_sr_value;
-      store_unsigned_integer (temp_buffer, 4, byte_order, sr_value);
-      regcache_raw_write (regcache, sr_base_regnum, temp_buffer);
+      regcache->raw_write (sr_base_regnum, sr_value);
     }
 
   else if (reg_nr == FPUL_C_REGNUM)
@@ -1918,8 +1917,6 @@ sh64_do_fp_register (struct gdbarch *gdb
 		     struct frame_info *frame, int regnum)
 {				/* Do values for FP (float) regs.  */
   unsigned char *raw_buffer;
-  double flt;	/* Double extracted from raw hex data.  */
-  int inv;
 
   /* Allocate space for the float.  */
   raw_buffer = (unsigned char *)
@@ -1930,26 +1927,21 @@ sh64_do_fp_register (struct gdbarch *gdb
     error (_("can't read register %d (%s)"),
 	   regnum, gdbarch_register_name (gdbarch, regnum));
 
-  /* Get the register as a number.  */ 
-  flt = unpack_double (builtin_type (gdbarch)->builtin_float,
-		       raw_buffer, &inv);
-
   /* Print the name and some spaces.  */
   fputs_filtered (gdbarch_register_name (gdbarch, regnum), file);
   print_spaces_filtered (15 - strlen (gdbarch_register_name
 					(gdbarch, regnum)), file);
 
   /* Print the value.  */
-  if (inv)
-    fprintf_filtered (file, "<invalid float>");
-  else
-    fprintf_filtered (file, "%-10.9g", flt);
+  const struct type *flt_type = builtin_type (gdbarch)->builtin_float;
+  std::string str = target_float_to_string (raw_buffer, flt_type, "%-10.9g");
+  fprintf_filtered (file, "%s", str.c_str ());
 
   /* Print the fp register as hex.  */
   fprintf_filtered (file, "\t(raw ");
   print_hex_chars (file, raw_buffer,
 		   register_size (gdbarch, regnum),
-		   gdbarch_byte_order (gdbarch));
+		   gdbarch_byte_order (gdbarch), true);
   fprintf_filtered (file, ")");
   fprintf_filtered (file, "\n");
 }
@@ -2371,7 +2363,7 @@ sh64_gdbarch_init (struct gdbarch_info i
 
   /* None found, create a new architecture from the information
      provided.  */
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   gdbarch = gdbarch_alloc (&info, tdep);
 
   /* Determine the ABI */
@@ -2416,8 +2408,6 @@ sh64_gdbarch_init (struct gdbarch_info i
 
   set_gdbarch_breakpoint_kind_from_pc (gdbarch, sh64_breakpoint_kind_from_pc);
   set_gdbarch_sw_breakpoint_from_kind (gdbarch, sh64_sw_breakpoint_from_kind);
-
-  set_gdbarch_print_insn (gdbarch, print_insn_sh);
   set_gdbarch_register_sim_regno (gdbarch, legacy_register_sim_regno);
 
   set_gdbarch_return_value (gdbarch, sh64_return_value);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sh64-tdep.h ./gdb/sh64-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sh64-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sh64-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target-dependent definitions for Renesas Super-H, for GDB.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sh-linux-tdep.c ./gdb/sh-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sh-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sh-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux Super-H.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -212,9 +212,6 @@ sh_linux_init_abi (struct gdbarch_info i
     }
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern void _initialize_sh_linux_tdep (void);
-
 void
 _initialize_sh_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sh-nbsd-nat.c ./gdb/sh-nbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sh-nbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sh-nbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for NetBSD/sh.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Wasabi Systems, Inc.
 
@@ -47,7 +47,7 @@ shnbsd_fetch_inferior_registers (struct 
 {
   pid_t pid = ptid_get_pid (regcache_get_ptid (regcache));
 
-  if (regno == -1 || GETREGS_SUPPLIES (get_regcache_arch (regcache), regno))
+  if (regno == -1 || GETREGS_SUPPLIES (regcache->arch (), regno))
     {
       struct reg inferior_registers;
 
@@ -70,7 +70,7 @@ shnbsd_store_inferior_registers (struct 
 {
   pid_t pid = ptid_get_pid (regcache_get_ptid (regcache));
 
-  if (regno == -1 || GETREGS_SUPPLIES (get_regcache_arch (regcache), regno))
+  if (regno == -1 || GETREGS_SUPPLIES (regcache->arch (), regno))
     {
       struct reg inferior_registers;
 
@@ -91,9 +91,6 @@ shnbsd_store_inferior_registers (struct 
     }
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_shnbsd_nat (void);
-
 void
 _initialize_shnbsd_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sh-nbsd-tdep.c ./gdb/sh-nbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sh-nbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sh-nbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for NetBSD/sh.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Wasabi Systems, Inc.
 
@@ -69,10 +69,6 @@ shnbsd_init_abi (struct gdbarch_info inf
   set_solib_svr4_fetch_link_map_offsets
     (gdbarch, svr4_ilp32_fetch_link_map_offsets);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_shnbsd_tdep;
 
 void
 _initialize_shnbsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sh-tdep.c ./gdb/sh-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sh-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sh-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Renesas Super-H, for GDB.
 
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -33,9 +33,8 @@
 #include "dis-asm.h"
 #include "inferior.h"
 #include "arch-utils.h"
-#include "floatformat.h"
 #include "regcache.h"
-#include "doublest.h"
+#include "target-float.h"
 #include "osabi.h"
 #include "reggroups.h"
 #include "regset.h"
@@ -1311,7 +1310,7 @@ static void
 sh_extract_return_value_nofpu (struct type *type, struct regcache *regcache,
 			       gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int len = TYPE_LENGTH (type);
 
@@ -1336,7 +1335,7 @@ static void
 sh_extract_return_value_fpu (struct type *type, struct regcache *regcache,
 			     gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   if (sh_treat_as_flt_p (type))
     {
       int len = TYPE_LENGTH (type);
@@ -1362,7 +1361,7 @@ static void
 sh_store_return_value_nofpu (struct type *type, struct regcache *regcache,
 			     const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   ULONGEST val;
   int len = TYPE_LENGTH (type);
@@ -1384,7 +1383,7 @@ static void
 sh_store_return_value_fpu (struct type *type, struct regcache *regcache,
 			   const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   if (sh_treat_as_flt_p (type))
     {
       int len = TYPE_LENGTH (type);
@@ -1552,6 +1551,19 @@ sh_register_reggroup_p (struct gdbarch *
    The other pseudo registers (the FVs) also don't pose a problem
    because they are stored as 4 individual FP elements.  */
 
+static struct type *
+sh_littlebyte_bigword_type (struct gdbarch *gdbarch)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+  if (tdep->sh_littlebyte_bigword_type == NULL)
+    tdep->sh_littlebyte_bigword_type
+      = arch_float_type (gdbarch, -1, "builtin_type_sh_littlebyte_bigword",
+                         floatformats_ieee_double_littlebyte_bigword);
+
+  return tdep->sh_littlebyte_bigword_type;
+}
+
 static void
 sh_register_convert_to_virtual (struct gdbarch *gdbarch, int regnum,
 				struct type *type, gdb_byte *from, gdb_byte *to)
@@ -1564,12 +1576,8 @@ sh_register_convert_to_virtual (struct g
     }
 
   if (regnum >= DR0_REGNUM && regnum <= DR_LAST_REGNUM)
-    {
-      DOUBLEST val;
-      floatformat_to_doublest (&floatformat_ieee_double_littlebyte_bigword,
-			       from, &val);
-      store_typed_floating (to, type, val);
-    }
+    target_float_convert (from, sh_littlebyte_bigword_type (gdbarch),
+			  to, type);
   else
     error
       ("sh_register_convert_to_virtual called with non DR register number");
@@ -1587,11 +1595,8 @@ sh_register_convert_to_raw (struct gdbar
     }
 
   if (regnum >= DR0_REGNUM && regnum <= DR_LAST_REGNUM)
-    {
-      DOUBLEST val = extract_typed_floating (from, type);
-      floatformat_from_doublest (&floatformat_ieee_double_littlebyte_bigword,
-				 &val, to);
-    }
+    target_float_convert (from, type,
+			  to, sh_littlebyte_bigword_type (gdbarch));
   else
     error (_("sh_register_convert_to_raw called with non DR register number"));
 }
@@ -1648,13 +1653,14 @@ sh_pseudo_register_read (struct gdbarch 
 			 int reg_nr, gdb_byte *buffer)
 {
   int base_regnum;
-  gdb_byte temp_buffer[MAX_REGISTER_SIZE];
   enum register_status status;
 
   if (reg_nr == PSEUDO_BANK_REGNUM)
     return regcache_raw_read (regcache, BANK_REGNUM, buffer);
   else if (reg_nr >= DR0_REGNUM && reg_nr <= DR_LAST_REGNUM)
     {
+      /* Enough space for two float registers.  */
+      gdb_byte temp_buffer[4 * 2];
       base_regnum = dr_reg_base_num (gdbarch, reg_nr);
 
       /* Build the value in the provided buffer.  */
@@ -1687,7 +1693,6 @@ sh_pseudo_register_write (struct gdbarch
 			  int reg_nr, const gdb_byte *buffer)
 {
   int base_regnum, portion;
-  gdb_byte temp_buffer[MAX_REGISTER_SIZE];
 
   if (reg_nr == PSEUDO_BANK_REGNUM)
     {
@@ -1703,6 +1708,8 @@ sh_pseudo_register_write (struct gdbarch
     }
   else if (reg_nr >= DR0_REGNUM && reg_nr <= DR_LAST_REGNUM)
     {
+      /* Enough space for two float registers.  */
+      gdb_byte temp_buffer[4 * 2];
       base_regnum = dr_reg_base_num (gdbarch, reg_nr);
 
       /* We must pay attention to the endiannes.  */
@@ -2158,7 +2165,7 @@ sh_corefile_supply_regset (const struct 
 			   struct regcache *regcache,
 			   int regnum, const void *regs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   const struct sh_corefile_regmap *regmap = (regset == &sh_corefile_gregset
 					     ? tdep->core_gregmap
@@ -2184,7 +2191,7 @@ sh_corefile_collect_regset (const struct
 			    const struct regcache *regcache,
 			    int regnum, void *regs, size_t len)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   const struct sh_corefile_regmap *regmap = (regset == &sh_corefile_gregset
 					     ? tdep->core_gregmap
@@ -2289,7 +2296,6 @@ sh_gdbarch_init (struct gdbarch_info inf
   set_gdbarch_breakpoint_kind_from_pc (gdbarch, sh_breakpoint_kind_from_pc);
   set_gdbarch_sw_breakpoint_from_kind (gdbarch, sh_sw_breakpoint_from_kind);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_sh);
   set_gdbarch_register_sim_regno (gdbarch, legacy_register_sim_regno);
 
   set_gdbarch_return_value (gdbarch, sh_return_value_nofpu);
@@ -2430,21 +2436,19 @@ sh_gdbarch_init (struct gdbarch_info inf
 }
 
 static void
-show_sh_command (char *args, int from_tty)
+show_sh_command (const char *args, int from_tty)
 {
   help_list (showshcmdlist, "show sh ", all_commands, gdb_stdout);
 }
 
 static void
-set_sh_command (char *args, int from_tty)
+set_sh_command (const char *args, int from_tty)
 {
   printf_unfiltered
     ("\"set sh\" must be followed by an appropriate subcommand.\n");
   help_list (setshcmdlist, "set sh ", all_commands, gdb_stdout);
 }
 
-extern initialize_file_ftype _initialize_sh_tdep;  /* -Wmissing-prototypes */
-
 void
 _initialize_sh_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sh-tdep.h ./gdb/sh-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sh-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sh-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target-specific definition for a Renesas Super-H.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -101,6 +101,8 @@ struct gdbarch_tdep
      inside the associated core file section.  */
   struct sh_corefile_regmap *core_fpregmap;
   int sizeof_fpregset;
+  /* ISA-specific data types.  */
+  struct type *sh_littlebyte_bigword_type;
 };
 
 extern const struct regset sh_corefile_gregset;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sim-regno.h ./gdb/sim-regno.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sim-regno.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sim-regno.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Generic remote debugging interface for simulators.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/skip.c ./gdb/skip.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/skip.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/skip.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Skipping uninteresting files and functions while stepping.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 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
@@ -34,107 +34,134 @@
 #include "filenames.h"
 #include "fnmatch.h"
 #include "gdb_regex.h"
+#include "common/gdb_optional.h"
+#include <list>
 
-struct skiplist_entry
+class skiplist_entry
 {
-  int number;
+public:
+  /* Create a skiplist_entry object and add it to the chain.  */
+  static void add_entry (bool file_is_glob,
+			 std::string &&file,
+			 bool function_is_regexp,
+			 std::string &&function);
+
+  /* Return true if the skip entry has a file or glob-style file
+     pattern that matches FUNCTION_SAL.  */
+  bool skip_file_p (const symtab_and_line &function_sal) const;
+
+  /* Return true if the skip entry has a function or function regexp
+     that matches FUNCTION_NAME.  */
+  bool skip_function_p (const char *function_name) const;
+
+  /* Getters.  */
+  int number () const { return m_number; };
+  bool enabled () const { return m_enabled; };
+  bool file_is_glob () const { return m_file_is_glob; }
+  const std::string &file () const { return m_file; }
+  const std::string &function () const { return m_function; }
+  bool function_is_regexp () const { return m_function_is_regexp; }
+
+  /* Setters.  */
+  void enable () { m_enabled = true; };
+  void disable () { m_enabled = false; };
+
+  /* Disable copy.  */
+  skiplist_entry (const skiplist_entry &) = delete;
+  void operator= (const skiplist_entry &) = delete;
+
+private:
+  /* Key that grants access to the constructor.  */
+  struct private_key {};
+public:
+  /* Public so we can construct with container::emplace_back.  Since
+     it requires a private class key, it can't be called from outside.
+     Use the add_entry static factory method to construct instead.  */
+  skiplist_entry (bool file_is_glob, std::string &&file,
+		  bool function_is_regexp, std::string &&function,
+		  private_key);
+
+private:
+  /* Return true if we're stopped at a file to be skipped.  */
+  bool do_skip_file_p (const symtab_and_line &function_sal) const;
+
+  /* Return true if we're stopped at a globbed file to be skipped.  */
+  bool do_skip_gfile_p (const symtab_and_line &function_sal) const;
+
+private: /* data */
+  int m_number = -1;
+
+  /* True if FILE is a glob-style pattern.
+     Otherwise it is the plain file name (possibly with directories).  */
+  bool m_file_is_glob;
 
-  /* Non-zero if FILE is a glob-style pattern.
-     Otherewise it is the plain file name (possibly with directories).  */
-  int file_is_glob;
+  /* The name of the file or empty if no name.  */
+  std::string m_file;
 
-  /* The name of the file or NULL.
-     The skiplist entry owns this pointer.  */
-  char *file;
-
-  /* Non-zero if FUNCTION is a regexp.
+  /* True if FUNCTION is a regexp.
      Otherwise it is a plain function name (possibly with arguments,
      for C++).  */
-  int function_is_regexp;
+  bool m_function_is_regexp;
 
-  /* The name of the function or NULL.
-     The skiplist entry owns this pointer.  */
-  char *function;
+  /* The name of the function or empty if no name.  */
+  std::string m_function;
 
   /* If this is a function regexp, the compiled form.  */
-  regex_t compiled_function_regexp;
-
-  /* Non-zero if the function regexp has been compiled.  */
-  int compiled_function_regexp_is_valid;
-
-  int enabled;
+  gdb::optional<compiled_regex> m_compiled_function_regexp;
 
-  struct skiplist_entry *next;
+  /* Enabled/disabled state.  */
+  bool m_enabled = true;
 };
 
-static void add_skiplist_entry (struct skiplist_entry *e);
-
-static struct skiplist_entry *skiplist_entry_chain;
-static int skiplist_entry_count;
-
-#define ALL_SKIPLIST_ENTRIES(E) \
-  for (E = skiplist_entry_chain; E; E = E->next)
-
-#define ALL_SKIPLIST_ENTRIES_SAFE(E,TMP) \
-  for (E = skiplist_entry_chain;         \
-       E ? (TMP = E->next, 1) : 0;       \
-       E = TMP)
+static std::list<skiplist_entry> skiplist_entries;
+static int highest_skiplist_entry_num = 0;
 
-/* Create a skip object.  */
-
-static struct skiplist_entry *
-make_skip_entry (int file_is_glob, const char *file,
-		 int function_is_regexp, const char *function)
+skiplist_entry::skiplist_entry (bool file_is_glob,
+				std::string &&file,
+				bool function_is_regexp,
+				std::string &&function,
+				private_key)
+  : m_file_is_glob (file_is_glob),
+    m_file (std::move (file)),
+    m_function_is_regexp (function_is_regexp),
+    m_function (std::move (function))
 {
-  struct skiplist_entry *e = XCNEW (struct skiplist_entry);
+  gdb_assert (!m_file.empty () || !m_function.empty ());
 
-  gdb_assert (file != NULL || function != NULL);
-  if (file_is_glob)
-    gdb_assert (file != NULL);
-  if (function_is_regexp)
-    gdb_assert (function != NULL);
+  if (m_file_is_glob)
+    gdb_assert (!m_file.empty ());
 
-  if (file != NULL)
-    e->file = xstrdup (file);
-  if (function != NULL)
-    e->function = xstrdup (function);
-  e->file_is_glob = file_is_glob;
-  e->function_is_regexp = function_is_regexp;
-  e->enabled = 1;
-
-  return e;
-}
+  if (m_function_is_regexp)
+    {
+      gdb_assert (!m_function.empty ());
 
-/* Free a skiplist entry.  */
+      int flags = REG_NOSUB;
+#ifdef REG_EXTENDED
+      flags |= REG_EXTENDED;
+#endif
 
-static void
-free_skiplist_entry (struct skiplist_entry *e)
-{
-  xfree (e->file);
-  xfree (e->function);
-  if (e->function_is_regexp && e->compiled_function_regexp_is_valid)
-    regfree (&e->compiled_function_regexp);
-  xfree (e);
+      gdb_assert (!m_function.empty ());
+      m_compiled_function_regexp.emplace (m_function.c_str (), flags,
+					  _("regexp"));
+    }
 }
 
-/* Wrapper to free_skiplist_entry for use as a cleanup.  */
-
-static void
-free_skiplist_entry_cleanup (void *e)
+void
+skiplist_entry::add_entry (bool file_is_glob, std::string &&file,
+			   bool function_is_regexp, std::string &&function)
 {
-  free_skiplist_entry ((struct skiplist_entry *) e);
-}
-
-/* Create a cleanup to free skiplist entry E.  */
+  skiplist_entries.emplace_back (file_is_glob,
+				 std::move (file),
+				 function_is_regexp,
+				 std::move (function),
+				 private_key {});
 
-static struct cleanup *
-make_free_skiplist_entry_cleanup (struct skiplist_entry *e)
-{
-  return make_cleanup (free_skiplist_entry_cleanup, e);
+  /* Incremented after push_back, in case push_back throws.  */
+  skiplist_entries.back ().m_number = ++highest_skiplist_entry_num;
 }
 
 static void
-skip_file_command (char *arg, int from_tty)
+skip_file_command (const char *arg, int from_tty)
 {
   struct symtab *symtab;
   const char *filename = NULL;
@@ -154,7 +181,8 @@ skip_file_command (char *arg, int from_t
   else
     filename = arg;
 
-  add_skiplist_entry (make_skip_entry (0, filename, 0, NULL));
+  skiplist_entry::add_entry (false, std::string (filename),
+			     false, std::string ());
 
   printf_filtered (_("File %s will be skipped when stepping.\n"), filename);
 }
@@ -165,13 +193,13 @@ skip_file_command (char *arg, int from_t
 static void
 skip_function (const char *name)
 {
-  add_skiplist_entry (make_skip_entry (0, NULL, 0, name));
+  skiplist_entry::add_entry (false, std::string (), false, std::string (name));
 
   printf_filtered (_("Function %s will be skipped when stepping.\n"), name);
 }
 
 static void
-skip_function_command (char *arg, int from_tty)
+skip_function_command (const char *arg, int from_tty)
 {
   /* Default to the current function if no argument is given.  */
   if (arg == NULL)
@@ -195,45 +223,15 @@ skip_function_command (char *arg, int fr
   skip_function (arg);
 }
 
-/* Compile the regexp in E.
-   An error is thrown if there's an error.
-   MESSAGE is used as a prefix of the error message.  */
-
-static void
-compile_skip_regexp (struct skiplist_entry *e, const char *message)
-{
-  int code;
-  int flags = REG_NOSUB;
-
-#ifdef REG_EXTENDED
-  flags |= REG_EXTENDED;
-#endif
-
-  gdb_assert (e->function_is_regexp && e->function != NULL);
-
-  code = regcomp (&e->compiled_function_regexp, e->function, flags);
-  if (code != 0)
-    {
-      char *err = get_regcomp_error (code, &e->compiled_function_regexp);
-
-      make_cleanup (xfree, err);
-      error (_("%s: %s"), message, err);
-    }
-  e->compiled_function_regexp_is_valid = 1;
-}
-
 /* Process "skip ..." that does not match "skip file" or "skip function".  */
 
 static void
-skip_command (char *arg, int from_tty)
+skip_command (const char *arg, int from_tty)
 {
   const char *file = NULL;
   const char *gfile = NULL;
   const char *function = NULL;
   const char *rfunction = NULL;
-  char **argv;
-  struct cleanup *cleanups;
-  struct skiplist_entry *e;
   int i;
 
   if (arg == NULL)
@@ -242,8 +240,7 @@ skip_command (char *arg, int from_tty)
       return;
     }
 
-  argv = buildargv (arg);
-  cleanups = make_cleanup_freeargv (argv);
+  gdb_argv argv (arg);
 
   for (i = 0; argv[i] != NULL; ++i)
     {
@@ -290,7 +287,6 @@ skip_command (char *arg, int from_tty)
 	     FUNCTION-NAME may be `foo (int)', and therefore we pass the
 	     complete original arg to skip_function command as if the user
 	     typed "skip function arg".  */
-	  do_cleanups (cleanups);
 	  skip_function_command (arg, from_tty);
 	  return;
 	}
@@ -309,16 +305,20 @@ skip_command (char *arg, int from_tty)
   gdb_assert (file != NULL || gfile != NULL
 	      || function != NULL || rfunction != NULL);
 
-  e = make_skip_entry (gfile != NULL, file ? file : gfile,
-		       rfunction != NULL, function ? function : rfunction);
-  if (rfunction != NULL)
-    {
-      struct cleanup *rf_cleanups = make_free_skiplist_entry_cleanup (e);
+  std::string entry_file;
+  if (file != NULL)
+    entry_file = file;
+  else if (gfile != NULL)
+    entry_file = gfile;
 
-      compile_skip_regexp (e, _("regexp"));
-      discard_cleanups (rf_cleanups);
-    }
-  add_skiplist_entry (e);
+  std::string entry_function;
+  if (function != NULL)
+    entry_function = function;
+  else if (rfunction != NULL)
+    entry_function = rfunction;
+
+  skiplist_entry::add_entry (gfile != NULL, std::move (entry_file),
+			     rfunction != NULL, std::move (entry_function));
 
   /* I18N concerns drive some of the choices here (we can't piece together
      the output too much).  OTOH we want to keep this simple.  Therefore the
@@ -350,24 +350,20 @@ skip_command (char *arg, int from_tty)
 			 lower_file_text, file_to_print);
       }
   }
-
-  do_cleanups (cleanups);
 }
 
 static void
-skip_info (char *arg, int from_tty)
+info_skip_command (const char *arg, int from_tty)
 {
-  struct skiplist_entry *e;
   int num_printable_entries = 0;
   struct value_print_options opts;
-  struct cleanup *tbl_chain;
 
   get_user_print_options (&opts);
 
   /* Count the number of rows in the table and see if we need space for a
      64-bit address anywhere.  */
-  ALL_SKIPLIST_ENTRIES (e)
-    if (arg == NULL || number_is_in_list (arg, e->number))
+  for (const skiplist_entry &e : skiplist_entries)
+    if (arg == NULL || number_is_in_list (arg, e.number ()))
       num_printable_entries++;
 
   if (num_printable_entries == 0)
@@ -381,9 +377,8 @@ skip_info (char *arg, int from_tty)
       return;
     }
 
-  tbl_chain = make_cleanup_ui_out_table_begin_end (current_uiout, 6,
-						   num_printable_entries,
-						   "SkiplistTable");
+  ui_out_emit_table table_emitter (current_uiout, 6, num_printable_entries,
+				   "SkiplistTable");
 
   current_uiout->table_header (5, ui_left, "number", "Num");   /* 1 */
   current_uiout->table_header (3, ui_left, "enabled", "Enb");  /* 2 */
@@ -393,56 +388,51 @@ skip_info (char *arg, int from_tty)
   current_uiout->table_header (40, ui_noalign, "function", "Function"); /* 6 */
   current_uiout->table_body ();
 
-  ALL_SKIPLIST_ENTRIES (e)
+  for (const skiplist_entry &e : skiplist_entries)
     {
-      struct cleanup *entry_chain;
-
       QUIT;
-      if (arg != NULL && !number_is_in_list (arg, e->number))
+      if (arg != NULL && !number_is_in_list (arg, e.number ()))
 	continue;
 
-      entry_chain = make_cleanup_ui_out_tuple_begin_end (current_uiout,
-							 "blklst-entry");
-      current_uiout->field_int ("number", e->number); /* 1 */
+      ui_out_emit_tuple tuple_emitter (current_uiout, "blklst-entry");
+      current_uiout->field_int ("number", e.number ()); /* 1 */
 
-      if (e->enabled)
+      if (e.enabled ())
 	current_uiout->field_string ("enabled", "y"); /* 2 */
       else
 	current_uiout->field_string ("enabled", "n"); /* 2 */
 
-      if (e->file_is_glob)
+      if (e.file_is_glob ())
 	current_uiout->field_string ("regexp", "y"); /* 3 */
       else
 	current_uiout->field_string ("regexp", "n"); /* 3 */
 
       current_uiout->field_string ("file",
-			   e->file ? e->file : "<none>"); /* 4 */
-      if (e->function_is_regexp)
+				   e.file ().empty () ? "<none>"
+				   : e.file ().c_str ()); /* 4 */
+      if (e.function_is_regexp ())
 	current_uiout->field_string ("regexp", "y"); /* 5 */
       else
 	current_uiout->field_string ("regexp", "n"); /* 5 */
 
-      current_uiout->field_string (
-	"function", e->function ? e->function : "<none>"); /* 6 */
+      current_uiout->field_string ("function",
+				   e.function ().empty () ? "<none>"
+				   : e.function ().c_str ()); /* 6 */
 
       current_uiout->text ("\n");
-      do_cleanups (entry_chain);
     }
-
-  do_cleanups (tbl_chain);
 }
 
 static void
-skip_enable_command (char *arg, int from_tty)
+skip_enable_command (const char *arg, int from_tty)
 {
-  struct skiplist_entry *e;
-  int found = 0;
+  bool found = false;
 
-  ALL_SKIPLIST_ENTRIES (e)
-    if (arg == NULL || number_is_in_list (arg, e->number))
+  for (skiplist_entry &e : skiplist_entries)
+    if (arg == NULL || number_is_in_list (arg, e.number ()))
       {
-        e->enabled = 1;
-        found = 1;
+	e.enable ();
+	found = true;
       }
 
   if (!found)
@@ -450,16 +440,15 @@ skip_enable_command (char *arg, int from
 }
 
 static void
-skip_disable_command (char *arg, int from_tty)
+skip_disable_command (const char *arg, int from_tty)
 {
-  struct skiplist_entry *e;
-  int found = 0;
+  bool found = false;
 
-  ALL_SKIPLIST_ENTRIES (e)
-    if (arg == NULL || number_is_in_list (arg, e->number))
+  for (skiplist_entry &e : skiplist_entries)
+    if (arg == NULL || number_is_in_list (arg, e.number ()))
       {
-	e->enabled = 0;
-        found = 1;
+	e.disable ();
+	found = true;
       }
 
   if (!found)
@@ -467,105 +456,64 @@ skip_disable_command (char *arg, int fro
 }
 
 static void
-skip_delete_command (char *arg, int from_tty)
+skip_delete_command (const char *arg, int from_tty)
 {
-  struct skiplist_entry *e, *temp, *b_prev;
-  int found = 0;
+  bool found = false;
 
-  b_prev = 0;
-  ALL_SKIPLIST_ENTRIES_SAFE (e, temp)
-    if (arg == NULL || number_is_in_list (arg, e->number))
-      {
-	if (b_prev != NULL)
-	  b_prev->next = e->next;
-	else
-	  skiplist_entry_chain = e->next;
+  for (auto it = skiplist_entries.begin (),
+	 end = skiplist_entries.end ();
+       it != end;)
+    {
+      const skiplist_entry &e = *it;
 
-	free_skiplist_entry (e);
-        found = 1;
-      }
-    else
-      {
-	b_prev = e;
-      }
+      if (arg == NULL || number_is_in_list (arg, e.number ()))
+	{
+	  it = skiplist_entries.erase (it);
+	  found = true;
+	}
+      else
+	++it;
+    }
 
   if (!found)
     error (_("No skiplist entries found with number %s."), arg);
 }
 
-/* Add the given skiplist entry to our list, and set the entry's number.  */
-
-static void
-add_skiplist_entry (struct skiplist_entry *e)
-{
-  struct skiplist_entry *e1;
-
-  e->number = ++skiplist_entry_count;
-
-  /* Add to the end of the chain so that the list of
-     skiplist entries will be in numerical order.  */
-
-  e1 = skiplist_entry_chain;
-  if (e1 == NULL)
-    skiplist_entry_chain = e;
-  else
-    {
-      while (e1->next)
-	e1 = e1->next;
-      e1->next = e;
-    }
-}
-
-/* Return non-zero if we're stopped at a file to be skipped.  */
-
-static int
-skip_file_p (struct skiplist_entry *e,
-	     const struct symtab_and_line *function_sal)
+bool
+skiplist_entry::do_skip_file_p (const symtab_and_line &function_sal) const
 {
-  gdb_assert (e->file != NULL && !e->file_is_glob);
-
-  if (function_sal->symtab == NULL)
-    return 0;
-
   /* Check first sole SYMTAB->FILENAME.  It may not be a substring of
      symtab_to_fullname as it may contain "./" etc.  */
-  if (compare_filenames_for_search (function_sal->symtab->filename, e->file))
-    return 1;
+  if (compare_filenames_for_search (function_sal.symtab->filename,
+				    m_file.c_str ()))
+    return true;
 
   /* Before we invoke realpath, which can get expensive when many
      files are involved, do a quick comparison of the basenames.  */
   if (!basenames_may_differ
-      && filename_cmp (lbasename (function_sal->symtab->filename),
-		       lbasename (e->file)) != 0)
-    return 0;
+      && filename_cmp (lbasename (function_sal.symtab->filename),
+		       lbasename (m_file.c_str ())) != 0)
+    return false;
 
   /* Note: symtab_to_fullname caches its result, thus we don't have to.  */
   {
-    const char *fullname = symtab_to_fullname (function_sal->symtab);
+    const char *fullname = symtab_to_fullname (function_sal.symtab);
 
-    if (compare_filenames_for_search (fullname, e->file))
-      return 1;
+    if (compare_filenames_for_search (fullname, m_file.c_str ()))
+      return true;
   }
 
-  return 0;
+  return false;
 }
 
-/* Return non-zero if we're stopped at a globbed file to be skipped.  */
-
-static int
-skip_gfile_p (struct skiplist_entry *e,
-	      const struct symtab_and_line *function_sal)
+bool
+skiplist_entry::do_skip_gfile_p (const symtab_and_line &function_sal) const
 {
-  gdb_assert (e->file != NULL && e->file_is_glob);
-
-  if (function_sal->symtab == NULL)
-    return 0;
-
   /* Check first sole SYMTAB->FILENAME.  It may not be a substring of
      symtab_to_fullname as it may contain "./" etc.  */
-  if (gdb_filename_fnmatch (e->file, function_sal->symtab->filename,
+  if (gdb_filename_fnmatch (m_file.c_str (), function_sal.symtab->filename,
 			    FNM_FILE_NAME | FNM_NOESCAPE) == 0)
-    return 1;
+    return true;
 
   /* Before we invoke symtab_to_fullname, which is expensive, do a quick
      comparison of the basenames.
@@ -573,115 +521,91 @@ skip_gfile_p (struct skiplist_entry *e,
      If the basename of the glob pattern is something like "*.c" then this
      isn't much of a win.  Oh well.  */
   if (!basenames_may_differ
-      && gdb_filename_fnmatch (lbasename (e->file),
-			       lbasename (function_sal->symtab->filename),
+      && gdb_filename_fnmatch (lbasename (m_file.c_str ()),
+			       lbasename (function_sal.symtab->filename),
 			       FNM_FILE_NAME | FNM_NOESCAPE) != 0)
-    return 0;
+    return false;
 
   /* Note: symtab_to_fullname caches its result, thus we don't have to.  */
   {
-    const char *fullname = symtab_to_fullname (function_sal->symtab);
+    const char *fullname = symtab_to_fullname (function_sal.symtab);
 
-    if (compare_glob_filenames_for_search (fullname, e->file))
-      return 1;
+    if (compare_glob_filenames_for_search (fullname, m_file.c_str ()))
+      return true;
   }
 
-  return 0;
+  return false;
 }
 
-/* Return non-zero if we're stopped at a function to be skipped.  */
-
-static int
-skip_function_p (struct skiplist_entry *e, const char *function_name)
+bool
+skiplist_entry::skip_file_p (const symtab_and_line &function_sal) const
 {
-  gdb_assert (e->function != NULL && !e->function_is_regexp);
-  return strcmp_iw (function_name, e->function) == 0;
-}
+  if (m_file.empty ())
+    return false;
 
-/* Return non-zero if we're stopped at a function regexp to be skipped.  */
+  if (function_sal.symtab == NULL)
+    return false;
 
-static int
-skip_rfunction_p (struct skiplist_entry *e, const char *function_name)
+  if (m_file_is_glob)
+    return do_skip_gfile_p (function_sal);
+  else
+    return do_skip_file_p (function_sal);
+}
+
+bool
+skiplist_entry::skip_function_p (const char *function_name) const
 {
-  gdb_assert (e->function != NULL && e->function_is_regexp
-	      && e->compiled_function_regexp_is_valid);
-  return (regexec (&e->compiled_function_regexp, function_name, 0, NULL, 0)
-	  == 0);
+  if (m_function.empty ())
+    return false;
+
+  if (m_function_is_regexp)
+    {
+      gdb_assert (m_compiled_function_regexp);
+      return (m_compiled_function_regexp->exec (function_name, 0, NULL, 0)
+	      == 0);
+    }
+  else
+    return strcmp_iw (function_name, m_function.c_str ()) == 0;
 }
 
 /* See skip.h.  */
 
-int
+bool
 function_name_is_marked_for_skip (const char *function_name,
-				  const struct symtab_and_line *function_sal)
+				  const symtab_and_line &function_sal)
 {
-  struct skiplist_entry *e;
-
   if (function_name == NULL)
-    return 0;
+    return false;
 
-  ALL_SKIPLIST_ENTRIES (e)
+  for (const skiplist_entry &e : skiplist_entries)
     {
-      int skip_by_file = 0;
-      int skip_by_function = 0;
-
-      if (!e->enabled)
+      if (!e.enabled ())
 	continue;
 
-      if (e->file != NULL)
-	{
-	  if (e->file_is_glob)
-	    {
-	      if (skip_gfile_p (e, function_sal))
-		skip_by_file = 1;
-	    }
-	  else
-	    {
-	      if (skip_file_p (e, function_sal))
-		skip_by_file = 1;
-	    }
-	}
-      if (e->function != NULL)
-	{
-	  if (e->function_is_regexp)
-	    {
-	      if (skip_rfunction_p (e, function_name))
-		skip_by_function = 1;
-	    }
-	  else
-	    {
-	      if (skip_function_p (e, function_name))
-		skip_by_function = 1;
-	    }
-	}
+      bool skip_by_file = e.skip_file_p (function_sal);
+      bool skip_by_function = e.skip_function_p (function_name);
 
       /* If both file and function must match, make sure we don't errantly
 	 exit if only one of them match.  */
-      if (e->file != NULL && e->function != NULL)
+      if (!e.file ().empty () && !e.function ().empty ())
 	{
 	  if (skip_by_file && skip_by_function)
-	    return 1;
+	    return true;
 	}
       /* Only one of file/function is specified.  */
       else if (skip_by_file || skip_by_function)
-	return 1;
+	return true;
     }
 
-  return 0;
+  return false;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_step_skip;
-
 void
 _initialize_step_skip (void)
 {
   static struct cmd_list_element *skiplist = NULL;
   struct cmd_list_element *c;
 
-  skiplist_entry_chain = 0;
-  skiplist_entry_count = 0;
-
   add_prefix_cmd ("skip", class_breakpoint, skip_command, _("\
 Ignore a function while stepping.\n\
 \n\
@@ -732,7 +656,7 @@ If you don't specify any numbers or rang
 Usage: skip delete [NUMBERS AND/OR RANGES]"),
            &skiplist);
 
-  add_info ("skip", skip_info, _("\
+  add_info ("skip", info_skip_command, _("\
 Display the status of skips.  You can specify numbers (e.g. \"skip info 1 3\"), \
 ranges (e.g. \"skip info 4-8\"), or both (e.g. \"skip info 1 3 4-8\").\n\n\
 If you don't specify any numbers or ranges, we'll show all skips.\n\n\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/skip.h ./gdb/skip.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/skip.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/skip.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Header for skipping over uninteresting files and functions when debugging.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 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
@@ -20,9 +20,9 @@
 
 struct symtab_and_line;
 
-/* Returns 1 if the given FUNCTION_NAME is marked for skip and shouldn't be
-   stepped into.  Otherwise, returns 0.  */
-int function_name_is_marked_for_skip (const char *function_name,
-				    const struct symtab_and_line *function_sal);
+/* Returns true if the given FUNCTION_NAME is marked for skip and
+   shouldn't be stepped into.  Otherwise, returns false.  */
+bool function_name_is_marked_for_skip (const char *function_name,
+				       const symtab_and_line &function_sal);
 
 #endif /* !defined (SKIP_H) */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sol2-tdep.c ./gdb/sol2-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sol2-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sol2-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Solaris.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sol2-tdep.h ./gdb/sol2-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sol2-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sol2-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Solaris.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-aix.c ./gdb/solib-aix.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-aix.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solib-aix.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -33,58 +33,33 @@ static int solib_aix_debug;
 
 /* Our private data in struct so_list.  */
 
-struct lm_info
+struct lm_info_aix : public lm_info_base
 {
   /* The name of the file mapped by the loader.  Apart from the entry
      for the main executable, this is usually a shared library (which,
      on AIX, is an archive library file, created using the "ar"
      command).  */
-  char *filename;
+  std::string filename;
 
   /* The name of the shared object file with the actual dynamic
-     loading dependency.  This may be NULL (Eg. main executable).  */
-  char *member_name;
+     loading dependency.  This may be empty (Eg. main executable).  */
+  std::string member_name;
 
   /* The address in inferior memory where the text section got mapped.  */
-  CORE_ADDR text_addr;
+  CORE_ADDR text_addr = 0;
 
   /* The size of the text section, obtained via the loader data.  */
-  ULONGEST text_size;
+  ULONGEST text_size = 0;
 
   /* The address in inferior memory where the data section got mapped.  */
-  CORE_ADDR data_addr;
+  CORE_ADDR data_addr = 0;
 
   /* The size of the data section, obtained via the loader data.  */
-  ULONGEST data_size;
+  ULONGEST data_size = 0;
 };
 
-typedef struct lm_info *lm_info_p;
-DEF_VEC_P(lm_info_p);
-
-/* Return a deep copy of the given struct lm_info object.  */
-
-static struct lm_info *
-solib_aix_new_lm_info (struct lm_info *info)
-{
-  struct lm_info *result = XNEW (struct lm_info);
-
-  memcpy (result, info, sizeof (struct lm_info));
-  result->filename = xstrdup (info->filename);
-  if (info->member_name != NULL)
-    result->member_name = xstrdup (info->member_name);
-
-  return result;
-}
-
-/* Free the memory allocated for the given lm_info.  */
-
-static void
-solib_aix_xfree_lm_info (struct lm_info *info)
-{
-  xfree (info->filename);
-  xfree (info->member_name);
-  xfree (info);
-}
+typedef lm_info_aix *lm_info_aix_p;
+DEF_VEC_P(lm_info_aix_p);
 
 /* This module's per-inferior data.  */
 
@@ -98,7 +73,7 @@ struct solib_aix_inferior_data
      the same principles applied to shared libraries also apply
      to the main executable.  So it's simpler to keep it as part
      of this list.  */
-  VEC (lm_info_p) *library_list;
+  VEC (lm_info_aix_p) *library_list;
 };
 
 /* Key to our per-inferior data.  */
@@ -127,7 +102,7 @@ get_solib_aix_inferior_data (struct infe
 
 /* Dummy implementation if XML support is not compiled in.  */
 
-static VEC (lm_info_p) *
+static VEC (lm_info_aix_p) *
 solib_aix_parse_libraries (const char *library)
 {
   static int have_warned;
@@ -161,8 +136,8 @@ library_list_start_library (struct gdb_x
 			    void *user_data,
 			    VEC (gdb_xml_value_s) *attributes)
 {
-  VEC (lm_info_p) **list = (VEC (lm_info_p) **) user_data;
-  struct lm_info *item = XCNEW (struct lm_info);
+  VEC (lm_info_aix_p) **list = (VEC (lm_info_aix_p) **) user_data;
+  lm_info_aix *item = new lm_info_aix;
   struct gdb_xml_value *attr;
 
   attr = xml_find_attribute (attributes, "name");
@@ -184,7 +159,7 @@ library_list_start_library (struct gdb_x
   attr = xml_find_attribute (attributes, "data_size");
   item->data_size = * (ULONGEST *) attr->value;
 
-  VEC_safe_push (lm_info_p, *list, item);
+  VEC_safe_push (lm_info_aix_p, *list, item);
 }
 
 /* Handle the start of a <library-list-aix> element.  */
@@ -207,16 +182,17 @@ library_list_start_list (struct gdb_xml_
 static void
 solib_aix_free_library_list (void *p)
 {
-  VEC (lm_info_p) **result = (VEC (lm_info_p) **) p;
-  struct lm_info *info;
+  VEC (lm_info_aix_p) **result = (VEC (lm_info_aix_p) **) p;
+  lm_info_aix *info;
   int ix;
 
   if (solib_aix_debug)
     fprintf_unfiltered (gdb_stdlog, "DEBUG: solib_aix_free_library_list\n");
 
-  for (ix = 0; VEC_iterate (lm_info_p, *result, ix, info); ix++)
-    solib_aix_xfree_lm_info (info);
-  VEC_free (lm_info_p, *result);
+  for (ix = 0; VEC_iterate (lm_info_aix_p, *result, ix, info); ix++)
+    delete info;
+
+  VEC_free (lm_info_aix_p, *result);
   *result = NULL;
 }
 
@@ -256,14 +232,14 @@ static const struct gdb_xml_element libr
 };
 
 /* Parse LIBRARY, a string containing the loader info in XML format,
-   and return an lm_info_p vector.
+   and return an lm_info_aix_p vector.
 
    Return NULL if the parsing failed.  */
 
-static VEC (lm_info_p) *
+static VEC (lm_info_aix_p) *
 solib_aix_parse_libraries (const char *library)
 {
-  VEC (lm_info_p) *result = NULL;
+  VEC (lm_info_aix_p) *result = NULL;
   struct cleanup *back_to = make_cleanup (solib_aix_free_library_list,
                                           &result);
 
@@ -291,43 +267,38 @@ solib_aix_parse_libraries (const char *l
    is not NULL, then print a warning including WARNING_MSG and
    a description of the error.  */
 
-static VEC (lm_info_p) *
+static VEC (lm_info_aix_p) *
 solib_aix_get_library_list (struct inferior *inf, const char *warning_msg)
 {
   struct solib_aix_inferior_data *data;
-  char *library_document;
-  struct cleanup *cleanup;
 
   /* If already computed, return the cached value.  */
   data = get_solib_aix_inferior_data (inf);
   if (data->library_list != NULL)
     return data->library_list;
 
-  library_document = target_read_stralloc (&current_target,
-                                           TARGET_OBJECT_LIBRARIES_AIX,
-                                           NULL);
+  gdb::unique_xmalloc_ptr<char> library_document
+    = target_read_stralloc (&current_target, TARGET_OBJECT_LIBRARIES_AIX,
+			    NULL);
   if (library_document == NULL && warning_msg != NULL)
     {
       warning (_("%s (failed to read TARGET_OBJECT_LIBRARIES_AIX)"),
 	       warning_msg);
       return NULL;
     }
-  cleanup = make_cleanup (xfree, library_document);
 
   if (solib_aix_debug)
     fprintf_unfiltered (gdb_stdlog,
 			"DEBUG: TARGET_OBJECT_LIBRARIES_AIX = \n%s\n",
-			library_document);
+			library_document.get ());
 
-  data->library_list = solib_aix_parse_libraries (library_document);
+  data->library_list = solib_aix_parse_libraries (library_document.get ());
   if (data->library_list == NULL && warning_msg != NULL)
     {
       warning (_("%s (missing XML support?)"), warning_msg);
-      do_cleanups (cleanup);
       return NULL;
     }
 
-  do_cleanups (cleanup);
   return data->library_list;
 }
 
@@ -394,7 +365,7 @@ solib_aix_relocate_section_addresses (st
   struct bfd_section *bfd_sect = sec->the_bfd_section;
   bfd *abfd = bfd_sect->owner;
   const char *section_name = bfd_section_name (abfd, bfd_sect);
-  struct lm_info *info = so->lm_info;
+  lm_info_aix *info = (lm_info_aix *) so->lm_info;
 
   if (strcmp (section_name, ".text") == 0)
     {
@@ -443,10 +414,13 @@ solib_aix_relocate_section_addresses (st
 static void
 solib_aix_free_so (struct so_list *so)
 {
+  lm_info_aix *li = (lm_info_aix *) so->lm_info;
+
   if (solib_aix_debug)
     fprintf_unfiltered (gdb_stdlog, "DEBUG: solib_aix_free_so (%s)\n",
 			so->so_name);
-  solib_aix_xfree_lm_info (so->lm_info);
+
+  delete li;
 }
 
 /* Implement the "clear_solib" target_so_ops method.  */
@@ -465,7 +439,7 @@ solib_aix_clear_solib (void)
 
 static struct section_offsets *
 solib_aix_get_section_offsets (struct objfile *objfile,
-			       struct lm_info *info)
+			       lm_info_aix *info)
 {
   struct section_offsets *offsets;
   bfd *abfd = objfile->obfd;
@@ -519,8 +493,8 @@ static void
 solib_aix_solib_create_inferior_hook (int from_tty)
 {
   const char *warning_msg = "unable to relocate main executable";
-  VEC (lm_info_p) *library_list;
-  struct lm_info *exec_info;
+  VEC (lm_info_aix_p) *library_list;
+  lm_info_aix *exec_info;
 
   /* We need to relocate the main executable...  */
 
@@ -529,13 +503,13 @@ solib_aix_solib_create_inferior_hook (in
   if (library_list == NULL)
     return;  /* Warning already printed.  */
 
-  if (VEC_length (lm_info_p, library_list) < 1)
+  if (VEC_length (lm_info_aix_p, library_list) < 1)
     {
       warning (_("unable to relocate main executable (no info from loader)"));
       return;
     }
 
-  exec_info = VEC_index (lm_info_p, library_list, 0);
+  exec_info = VEC_index (lm_info_aix_p, library_list, 0);
 
   if (symfile_objfile != NULL)
     {
@@ -554,8 +528,8 @@ static struct so_list *
 solib_aix_current_sos (void)
 {
   struct so_list *start = NULL, *last = NULL;
-  VEC (lm_info_p) *library_list;
-  struct lm_info *info;
+  VEC (lm_info_aix_p) *library_list;
+  lm_info_aix *info;
   int ix;
 
   library_list = solib_aix_get_library_list (current_inferior (), NULL);
@@ -565,18 +539,18 @@ solib_aix_current_sos (void)
   /* Build a struct so_list for each entry on the list.
      We skip the first entry, since this is the entry corresponding
      to the main executable, not a shared library.  */
-  for (ix = 1; VEC_iterate (lm_info_p, library_list, ix, info); ix++)
+  for (ix = 1; VEC_iterate (lm_info_aix_p, library_list, ix, info); ix++)
     {
       struct so_list *new_solib = XCNEW (struct so_list);
-      char *so_name;
+      std::string so_name;
 
-      if (info->member_name == NULL)
+      if (info->member_name.empty ())
 	{
 	 /* INFO->FILENAME is probably not an archive, but rather
 	    a shared object.  Unusual, but it should be possible
 	    to link a program against a shared object directory,
 	    without having to put it in an archive first.  */
-	 so_name = xstrdup (info->filename);
+	 so_name = info->filename;
 	}
       else
 	{
@@ -584,14 +558,15 @@ solib_aix_current_sos (void)
 	    is a member of an archive.  Create a synthetic so_name
 	    that follows the same convention as AIX's ldd tool
 	    (Eg: "/lib/libc.a(shr.o)").  */
-	 so_name = xstrprintf ("%s(%s)", info->filename, info->member_name);
+	 so_name = string_printf ("%s(%s)", info->filename.c_str (),
+				  info->member_name.c_str ());
 	}
-      strncpy (new_solib->so_original_name, so_name,
+      strncpy (new_solib->so_original_name, so_name.c_str (),
 	       SO_NAME_MAX_PATH_SIZE - 1);
       new_solib->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
       memcpy (new_solib->so_name, new_solib->so_original_name,
 	      SO_NAME_MAX_PATH_SIZE);
-      new_solib->lm_info = solib_aix_new_lm_info (info);
+      new_solib->lm_info = new lm_info_aix (*info);
 
       /* Add it to the list.  */
       if (!start)
@@ -609,7 +584,7 @@ solib_aix_current_sos (void)
 /* Implement the "open_symbol_file_object" target_so_ops method.  */
 
 static int
-solib_aix_open_symbol_file_object (void *from_ttyp)
+solib_aix_open_symbol_file_object (int from_tty)
 {
   return 0;
 }
@@ -795,9 +770,6 @@ show_solib_aix_debug (struct ui_file *fi
 /* The target_so_ops for AIX targets.  */
 struct target_so_ops solib_aix_so_ops;
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_solib_aix;
-
 void
 _initialize_solib_aix (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-aix.h ./gdb/solib-aix.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-aix.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solib-aix.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib.c ./gdb/solib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Handle shared libraries for GDB, the GNU Debugger.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -350,16 +350,15 @@ solib_find_1 (const char *in_pathname, i
 
   /* If not found, next search the inferior's $PATH environment variable.  */
   if (found_file < 0 && sysroot == NULL)
-    found_file = openp (get_in_environ (current_inferior ()->environment,
-					"PATH"),
+    found_file = openp (current_inferior ()->environment.get ("PATH"),
 			OPF_TRY_CWD_FIRST | OPF_RETURN_REALPATH, in_pathname,
 			O_RDONLY | O_BINARY, &temp_pathname);
 
   /* If not found, and we're looking for a solib, next search the
      inferior's $LD_LIBRARY_PATH environment variable.  */
   if (is_solib && found_file < 0 && sysroot == NULL)
-    found_file = openp (get_in_environ (current_inferior ()->environment,
-					"LD_LIBRARY_PATH"),
+    found_file = openp (current_inferior ()->environment.get
+			("LD_LIBRARY_PATH"),
 			OPF_TRY_CWD_FIRST | OPF_RETURN_REALPATH, in_pathname,
 			O_RDONLY | O_BINARY, &temp_pathname);
 
@@ -547,14 +546,10 @@ static int
 solib_map_sections (struct so_list *so)
 {
   const struct target_so_ops *ops = solib_ops (target_gdbarch ());
-  char *filename;
   struct target_section *p;
-  struct cleanup *old_chain;
 
-  filename = tilde_expand (so->so_name);
-  old_chain = make_cleanup (xfree, filename);
-  gdb_bfd_ref_ptr abfd (ops->bfd_open (filename));
-  do_cleanups (old_chain);
+  gdb::unique_xmalloc_ptr<char> filename (tilde_expand (so->so_name));
+  gdb_bfd_ref_ptr abfd (ops->bfd_open (filename.get ()));
 
   if (abfd == NULL)
     return 0;
@@ -765,9 +760,19 @@ update_solib_list (int from_tty)
 	 have not opened a symbol file, we may be able to get its
 	 symbols now!  */
       if (inf->attach_flag && symfile_objfile == NULL)
-	catch_errors (ops->open_symbol_file_object, &from_tty,
-		      "Error reading attached process's symbol file.\n",
-		      RETURN_MASK_ALL);
+	{
+	  TRY
+	    {
+	      ops->open_symbol_file_object (from_tty);
+	    }
+	  CATCH (ex, RETURN_MASK_ALL)
+	    {
+	      exception_fprintf (gdb_stderr, ex,
+				 "Error reading attached "
+				 "process's symbol file.\n");
+	    }
+	  END_CATCH
+	}
     }
 
   /* GDB and the inferior's dynamic linker each maintain their own
@@ -846,7 +851,7 @@ update_solib_list (int from_tty)
 	  /* Unless the user loaded it explicitly, free SO's objfile.  */
 	  if (gdb->objfile && ! (gdb->objfile->flags & OBJF_USERLOADED)
 	      && !solib_used (gdb))
-	    free_objfile (gdb->objfile);
+	    delete gdb->objfile;
 
 	  /* Some targets' section tables might be referring to
 	     sections from so->abfd; remove them.  */
@@ -1040,13 +1045,12 @@ solib_add (const char *pattern, int from
    all.  */
 
 static void
-info_sharedlibrary_command (char *pattern, int from_tty)
+info_sharedlibrary_command (const char *pattern, int from_tty)
 {
   struct so_list *so = NULL;	/* link map state variable */
   int so_missing_debug_info = 0;
   int addr_width;
   int nr_libs;
-  struct cleanup *table_cleanup;
   struct gdbarch *gdbarch = target_gdbarch ();
   struct ui_out *uiout = current_uiout;
 
@@ -1063,8 +1067,8 @@ info_sharedlibrary_command (char *patter
 
   update_solib_list (from_tty);
 
-  /* make_cleanup_ui_out_table_begin_end needs to know the number of
-     rows, so we need to make two passes over the libs.  */
+  /* ui_out_emit_table table_emitter needs to know the number of rows,
+     so we need to make two passes over the libs.  */
 
   for (nr_libs = 0, so = so_list_head; so; so = so->next)
     {
@@ -1076,58 +1080,52 @@ info_sharedlibrary_command (char *patter
 	}
     }
 
-  table_cleanup =
-    make_cleanup_ui_out_table_begin_end (uiout, 4, nr_libs,
-					 "SharedLibraryTable");
-
-  /* The "- 1" is because ui_out adds one space between columns.  */
-  uiout->table_header (addr_width - 1, ui_left, "from", "From");
-  uiout->table_header (addr_width - 1, ui_left, "to", "To");
-  uiout->table_header (12 - 1, ui_left, "syms-read", "Syms Read");
-  uiout->table_header (0, ui_noalign, "name", "Shared Object Library");
-
-  uiout->table_body ();
-
-  ALL_SO_LIBS (so)
-    {
-      struct cleanup *lib_cleanup;
-
-      if (! so->so_name[0])
-	continue;
-      if (pattern && ! re_exec (so->so_name))
-	continue;
-
-      lib_cleanup = make_cleanup_ui_out_tuple_begin_end (uiout, "lib");
-
-      if (so->addr_high != 0)
-	{
-	  uiout->field_core_addr ("from", gdbarch, so->addr_low);
-	  uiout->field_core_addr ("to", gdbarch, so->addr_high);
-	}
-      else
-	{
-	  uiout->field_skip ("from");
-	  uiout->field_skip ("to");
-	}
+  {
+    ui_out_emit_table table_emitter (uiout, 4, nr_libs, "SharedLibraryTable");
 
-      if (! interp_ui_out (top_level_interpreter ())->is_mi_like_p ()
-	  && so->symbols_loaded
-	  && !objfile_has_symbols (so->objfile))
-	{
-	  so_missing_debug_info = 1;
-	  uiout->field_string ("syms-read", "Yes (*)");
-	}
-      else
-	uiout->field_string ("syms-read", so->symbols_loaded ? "Yes" : "No");
+    /* The "- 1" is because ui_out adds one space between columns.  */
+    uiout->table_header (addr_width - 1, ui_left, "from", "From");
+    uiout->table_header (addr_width - 1, ui_left, "to", "To");
+    uiout->table_header (12 - 1, ui_left, "syms-read", "Syms Read");
+    uiout->table_header (0, ui_noalign, "name", "Shared Object Library");
 
-      uiout->field_string ("name", so->so_name);
+    uiout->table_body ();
 
-      uiout->text ("\n");
+    ALL_SO_LIBS (so)
+      {
+	if (! so->so_name[0])
+	  continue;
+	if (pattern && ! re_exec (so->so_name))
+	  continue;
+
+	ui_out_emit_tuple tuple_emitter (uiout, "lib");
+
+	if (so->addr_high != 0)
+	  {
+	    uiout->field_core_addr ("from", gdbarch, so->addr_low);
+	    uiout->field_core_addr ("to", gdbarch, so->addr_high);
+	  }
+	else
+	  {
+	    uiout->field_skip ("from");
+	    uiout->field_skip ("to");
+	  }
+
+	if (! interp_ui_out (top_level_interpreter ())->is_mi_like_p ()
+	    && so->symbols_loaded
+	    && !objfile_has_symbols (so->objfile))
+	  {
+	    so_missing_debug_info = 1;
+	    uiout->field_string ("syms-read", "Yes (*)");
+	  }
+	else
+	  uiout->field_string ("syms-read", so->symbols_loaded ? "Yes" : "No");
 
-      do_cleanups (lib_cleanup);
-    }
+	uiout->field_string ("name", so->so_name);
 
-  do_cleanups (table_cleanup);
+	uiout->text ("\n");
+      }
+  }
 
   if (nr_libs == 0)
     {
@@ -1248,7 +1246,7 @@ in_solib_dynsym_resolve_code (CORE_ADDR 
 /* Implements the "sharedlibrary" command.  */
 
 static void
-sharedlibrary_command (char *args, int from_tty)
+sharedlibrary_command (const char *args, int from_tty)
 {
   dont_repeat ();
   solib_add (args, from_tty, 1);
@@ -1260,7 +1258,7 @@ sharedlibrary_command (char *args, int f
    are not discarded.  Also called from remote.c.  */
 
 void
-no_shared_libraries (char *ignored, int from_tty)
+no_shared_libraries (const char *ignored, int from_tty)
 {
   /* The order of the two routines below is important: clear_solib notifies
      the solib_unloaded observers, and some of these observers might need
@@ -1297,9 +1295,9 @@ handle_solib_event (void)
   /* Check for any newly added shared libraries if we're supposed to
      be adding them automatically.  Switch terminal for any messages
      produced by breakpoint_re_set.  */
-  target_terminal_ours_for_output ();
+  target_terminal::ours_for_output ();
   solib_add (NULL, 0, auto_solib_add);
-  target_terminal_inferior ();
+  target_terminal::inferior ();
 }
 
 /* Reload shared libraries, but avoid reloading the same symbol file
@@ -1309,28 +1307,24 @@ static void
 reload_shared_libraries_1 (int from_tty)
 {
   struct so_list *so;
-  struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
 
   if (print_symbol_loading_p (from_tty, 0, 0))
     printf_unfiltered (_("Loading symbols for shared libraries.\n"));
 
   for (so = so_list_head; so != NULL; so = so->next)
     {
-      char *filename, *found_pathname = NULL;
+      char *found_pathname = NULL;
       int was_loaded = so->symbols_loaded;
       symfile_add_flags add_flags = SYMFILE_DEFER_BP_RESET;
 
       if (from_tty)
 	add_flags |= SYMFILE_VERBOSE;
 
-      filename = tilde_expand (so->so_original_name);
-      make_cleanup (xfree, filename);
-      gdb_bfd_ref_ptr abfd (solib_bfd_open (filename));
+      gdb::unique_xmalloc_ptr<char> filename
+	(tilde_expand (so->so_original_name));
+      gdb_bfd_ref_ptr abfd (solib_bfd_open (filename.get ()));
       if (abfd != NULL)
-	{
-	  found_pathname = xstrdup (bfd_get_filename (abfd.get ()));
-	  make_cleanup (xfree, found_pathname);
-	}
+	found_pathname = bfd_get_filename (abfd.get ());
 
       /* If this shared library is no longer associated with its previous
 	 symbol file, close that.  */
@@ -1340,7 +1334,7 @@ reload_shared_libraries_1 (int from_tty)
 	{
 	  if (so->objfile && ! (so->objfile->flags & OBJF_USERLOADED)
 	      && !solib_used (so))
-	    free_objfile (so->objfile);
+	    delete so->objfile;
 	  remove_target_sections (so);
 	  clear_so (so);
 	}
@@ -1372,12 +1366,10 @@ reload_shared_libraries_1 (int from_tty)
 	      solib_read_symbols (so, add_flags);
 	}
     }
-
-  do_cleanups (old_chain);
 }
 
 static void
-reload_shared_libraries (char *ignored, int from_tty,
+reload_shared_libraries (const char *ignored, int from_tty,
 			 struct cmd_list_element *e)
 {
   const struct target_so_ops *ops;
@@ -1432,7 +1424,7 @@ reload_shared_libraries (char *ignored, 
    at the start of gdb_sysroot with "target:".  */
 
 static void
-gdb_sysroot_changed (char *ignored, int from_tty,
+gdb_sysroot_changed (const char *ignored, int from_tty,
 		     struct cmd_list_element *e)
 {
   const char *old_prefix = "remote:";
@@ -1618,8 +1610,6 @@ remove_user_added_objfile (struct objfil
     }
 }
 
-extern initialize_file_ftype _initialize_solib; /* -Wmissing-prototypes */
-
 void
 _initialize_solib (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-darwin.c ./gdb/solib-darwin.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-darwin.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solib-darwin.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Handle Darwin shared libraries for GDB, the GNU Debugger.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -67,7 +67,7 @@ struct gdb_dyld_all_image_infos
 
 /* Current all_image_infos version.  */
 #define DYLD_VERSION_MIN 1
-#define DYLD_VERSION_MAX 14
+#define DYLD_VERSION_MAX 15
 
 /* Per PSPACE specific data.  */
 struct darwin_info
@@ -153,18 +153,10 @@ darwin_load_image_infos (struct darwin_i
 
 /* Link map info to include in an allocated so_list entry.  */
 
-struct lm_info
+struct lm_info_darwin : public lm_info_base
 {
   /* The target location of lm.  */
-  CORE_ADDR lm_addr;
-};
-
-struct darwin_so_list
-{
-  /* Common field.  */
-  struct so_list sl;
-  /* Darwin specific data.  */
-  struct lm_info li;
+  CORE_ADDR lm_addr = 0;
 };
 
 /* Lookup the value for a specific symbol.  */
@@ -230,7 +222,7 @@ find_program_interpreter (void)
     Note that darwin-nat.c implements pid_to_exec_file.  */
 
 static int
-open_symbol_file_object (void *from_ttyp)
+open_symbol_file_object (int from_tty)
 {
   return 0;
 }
@@ -271,7 +263,6 @@ darwin_current_sos (void)
       unsigned long hdr_val;
       char *file_path;
       int errcode;
-      struct darwin_so_list *dnew;
       struct so_list *newobj;
       struct cleanup *old_chain;
 
@@ -302,17 +293,17 @@ darwin_current_sos (void)
 	break;
 
       /* Create and fill the new so_list element.  */
-      dnew = XCNEW (struct darwin_so_list);
-      newobj = &dnew->sl;
-      old_chain = make_cleanup (xfree, dnew);
+      newobj = XCNEW (struct so_list);
+      old_chain = make_cleanup (xfree, newobj);
 
-      newobj->lm_info = &dnew->li;
+      lm_info_darwin *li = new lm_info_darwin;
+      newobj->lm_info = li;
 
       strncpy (newobj->so_name, file_path, SO_NAME_MAX_PATH_SIZE - 1);
       newobj->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
       strcpy (newobj->so_original_name, newobj->so_name);
       xfree (file_path);
-      newobj->lm_info->lm_addr = load_addr;
+      li->lm_addr = load_addr;
 
       if (head == NULL)
 	head = newobj;
@@ -587,6 +578,9 @@ darwin_clear_solib (void)
 static void
 darwin_free_so (struct so_list *so)
 {
+  lm_info_darwin *li = (lm_info_darwin *) so->lm_info;
+
+  delete li;
 }
 
 /* The section table is built from bfd sections using bfd VMAs.
@@ -596,8 +590,10 @@ static void
 darwin_relocate_section_addresses (struct so_list *so,
 				   struct target_section *sec)
 {
-  sec->addr += so->lm_info->lm_addr;
-  sec->endaddr += so->lm_info->lm_addr;
+  lm_info_darwin *li = (lm_info_darwin *) so->lm_info;
+
+  sec->addr += li->lm_addr;
+  sec->endaddr += li->lm_addr;
 
   /* Best effort to set addr_high/addr_low.  This is used only by
      'info sharedlibary'.  */
@@ -652,9 +648,6 @@ darwin_bfd_open (char *pathname)
 
 struct target_so_ops darwin_so_ops;
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_darwin_solib;
-
 void
 _initialize_darwin_solib (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-darwin.h ./gdb/solib-darwin.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-darwin.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solib-darwin.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Handle shared libraries for GDB, the GNU Debugger.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-dsbt.c ./gdb/solib-dsbt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-dsbt.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solib-dsbt.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Handle TIC6X (DSBT) shared libraries for GDB, the GNU Debugger.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -123,10 +123,15 @@ struct ext_link_map
 
 /* Link map info to include in an allocated so_list entry */
 
-struct lm_info
+struct lm_info_dsbt : public lm_info_base
 {
+  ~lm_info_dsbt ()
+  {
+    xfree (this->map);
+  }
+
   /* The loadmap, digested into an easier to use form.  */
-  struct int_elf32_dsbt_loadmap *map;
+  int_elf32_dsbt_loadmap *map = NULL;
 };
 
 /* Per pspace dsbt specific data.  */
@@ -137,7 +142,7 @@ struct dsbt_info
      of loaded shared objects.  ``main_executable_lm_info'' provides
      a way to get at this information so that it doesn't need to be
      frequently recomputed.  Initialized by dsbt_relocate_main_executable.  */
-  struct lm_info *main_executable_lm_info;
+  struct lm_info_dsbt *main_executable_lm_info;
 
   /* Load maps for the main executable and the interpreter.  These are obtained
      from ptrace.  They are the starting point for getting into the program,
@@ -502,16 +507,10 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
   return 0;
 }
 
-/* If no open symbol file, attempt to locate and open the main symbol
-   file.
-
-   If FROM_TTYP dereferences to a non-zero integer, allow messages to
-   be printed.  This parameter is a pointer rather than an int because
-   open_symbol_file_object is called via catch_errors and
-   catch_errors requires a pointer argument. */
+/* See solist.h. */
 
 static int
-open_symbol_file_object (void *from_ttyp)
+open_symbol_file_object (int from_tty)
 {
   /* Unimplemented.  */
   return 0;
@@ -711,8 +710,9 @@ dsbt_current_sos (void)
 	    }
 
 	  sop = XCNEW (struct so_list);
-	  sop->lm_info = XCNEW (struct lm_info);
-	  sop->lm_info->map = loadmap;
+	  lm_info_dsbt *li = new lm_info_dsbt;
+	  sop->lm_info = li;
+	  li->map = loadmap;
 	  /* Fetch the name.  */
 	  addr = extract_unsigned_integer (lm_buf.l_name,
 					   sizeof (lm_buf.l_name),
@@ -929,8 +929,8 @@ dsbt_relocate_main_executable (void)
   dsbt_get_initial_loadmaps ();
   ldm = info->exec_loadmap;
 
-  xfree (info->main_executable_lm_info);
-  info->main_executable_lm_info = XCNEW (struct lm_info);
+  delete info->main_executable_lm_info;
+  info->main_executable_lm_info = new lm_info_dsbt;
   info->main_executable_lm_info->map = ldm;
 
   new_offsets = XCNEWVEC (struct section_offsets,
@@ -1005,19 +1005,17 @@ dsbt_clear_solib (void)
 
   info->lm_base_cache = 0;
   info->main_lm_addr = 0;
-  if (info->main_executable_lm_info != 0)
-    {
-      xfree (info->main_executable_lm_info->map);
-      xfree (info->main_executable_lm_info);
-      info->main_executable_lm_info = 0;
-    }
+
+  delete info->main_executable_lm_info;
+  info->main_executable_lm_info = NULL;
 }
 
 static void
 dsbt_free_so (struct so_list *so)
 {
-  xfree (so->lm_info->map);
-  xfree (so->lm_info);
+  lm_info_dsbt *li = (lm_info_dsbt *) so->lm_info;
+
+  delete li;
 }
 
 static void
@@ -1025,9 +1023,8 @@ dsbt_relocate_section_addresses (struct 
 				 struct target_section *sec)
 {
   int seg;
-  struct int_elf32_dsbt_loadmap *map;
-
-  map = so->lm_info->map;
+  lm_info_dsbt *li = (lm_info_dsbt *) so->lm_info;
+  int_elf32_dsbt_loadmap *map = li->map;
 
   for (seg = 0; seg < map->nsegs; seg++)
     {
@@ -1051,9 +1048,6 @@ show_dsbt_debug (struct ui_file *file, i
 
 struct target_so_ops dsbt_so_ops;
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_dsbt_solib;
-
 void
 _initialize_dsbt_solib (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-frv.c ./gdb/solib-frv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-frv.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solib-frv.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Handle FR-V (FDPIC) shared libraries for GDB, the GNU Debugger.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -202,36 +202,42 @@ struct ext_link_map
 
 /* Link map info to include in an allocated so_list entry.  */
 
-struct lm_info
+struct lm_info_frv : public lm_info_base
+{
+  ~lm_info_frv ()
   {
-    /* The loadmap, digested into an easier to use form.  */
-    struct int_elf32_fdpic_loadmap *map;
-    /* The GOT address for this link map entry.  */
-    CORE_ADDR got_value;
-    /* The link map address, needed for frv_fetch_objfile_link_map().  */
-    CORE_ADDR lm_addr;
-
-    /* Cached dynamic symbol table and dynamic relocs initialized and
-       used only by find_canonical_descriptor_in_load_object().
-
-       Note: kevinb/2004-02-26: It appears that calls to
-       bfd_canonicalize_dynamic_reloc() will use the same symbols as
-       those supplied to the first call to this function.  Therefore,
-       it's important to NOT free the asymbol ** data structure
-       supplied to the first call.  Thus the caching of the dynamic
-       symbols (dyn_syms) is critical for correct operation.  The
-       caching of the dynamic relocations could be dispensed with.  */
-    asymbol **dyn_syms;
-    arelent **dyn_relocs;
-    int dyn_reloc_count;	/* Number of dynamic relocs.  */
-
-  };
+    xfree (this->map);
+    xfree (this->dyn_syms);
+    xfree (this->dyn_relocs);
+  }
+
+  /* The loadmap, digested into an easier to use form.  */
+  int_elf32_fdpic_loadmap *map = NULL;
+  /* The GOT address for this link map entry.  */
+  CORE_ADDR got_value = 0;
+  /* The link map address, needed for frv_fetch_objfile_link_map().  */
+  CORE_ADDR lm_addr = 0;
+
+  /* Cached dynamic symbol table and dynamic relocs initialized and
+     used only by find_canonical_descriptor_in_load_object().
+
+     Note: kevinb/2004-02-26: It appears that calls to
+     bfd_canonicalize_dynamic_reloc() will use the same symbols as
+     those supplied to the first call to this function.  Therefore,
+     it's important to NOT free the asymbol ** data structure
+     supplied to the first call.  Thus the caching of the dynamic
+     symbols (dyn_syms) is critical for correct operation.  The
+     caching of the dynamic relocations could be dispensed with.  */
+  asymbol **dyn_syms = NULL;
+  arelent **dyn_relocs = NULL;
+  int dyn_reloc_count = 0;	/* Number of dynamic relocs.  */
+};
 
 /* The load map, got value, etc. are not available from the chain
    of loaded shared objects.  ``main_executable_lm_info'' provides
    a way to get at this information so that it doesn't need to be
    frequently recomputed.  Initialized by frv_relocate_main_executable().  */
-static struct lm_info *main_executable_lm_info;
+static lm_info_frv *main_executable_lm_info;
 
 static void frv_relocate_main_executable (void);
 static CORE_ADDR main_got (void);
@@ -240,7 +246,7 @@ static int enable_break2 (void);
 /* Implement the "open_symbol_file_object" target_so_ops method.  */
 
 static int
-open_symbol_file_object (void *from_ttyp)
+open_symbol_file_object (int from_tty)
 {
   /* Unimplemented.  */
   return 0;
@@ -389,10 +395,11 @@ frv_current_sos (void)
 	    }
 
 	  sop = XCNEW (struct so_list);
-	  sop->lm_info = XCNEW (struct lm_info);
-	  sop->lm_info->map = loadmap;
-	  sop->lm_info->got_value = got_addr;
-	  sop->lm_info->lm_addr = lm_addr;
+	  lm_info_frv *li = new lm_info_frv;
+	  sop->lm_info = li;
+	  li->map = loadmap;
+	  li->got_value = got_addr;
+	  li->lm_addr = lm_addr;
 	  /* Fetch the name.  */
 	  addr = extract_unsigned_integer (lm_buf.l_name,
 					   sizeof (lm_buf.l_name),
@@ -781,9 +788,8 @@ frv_relocate_main_executable (void)
   if (ldm == NULL)
     error (_("Unable to load the executable's loadmap."));
 
-  if (main_executable_lm_info)
-    xfree (main_executable_lm_info);
-  main_executable_lm_info = XCNEW (struct lm_info);
+  delete main_executable_lm_info;
+  main_executable_lm_info = new lm_info_frv;
   main_executable_lm_info->map = ldm;
 
   new_offsets = XCNEWVEC (struct section_offsets,
@@ -857,23 +863,17 @@ frv_clear_solib (void)
   lm_base_cache = 0;
   enable_break2_done = 0;
   main_lm_addr = 0;
-  if (main_executable_lm_info != 0)
-    {
-      xfree (main_executable_lm_info->map);
-      xfree (main_executable_lm_info->dyn_syms);
-      xfree (main_executable_lm_info->dyn_relocs);
-      xfree (main_executable_lm_info);
-      main_executable_lm_info = 0;
-    }
+
+  delete main_executable_lm_info;
+  main_executable_lm_info = NULL;
 }
 
 static void
 frv_free_so (struct so_list *so)
 {
-  xfree (so->lm_info->map);
-  xfree (so->lm_info->dyn_syms);
-  xfree (so->lm_info->dyn_relocs);
-  xfree (so->lm_info);
+  lm_info_frv *li = (lm_info_frv *) so->lm_info;
+
+  delete li;
 }
 
 static void
@@ -881,9 +881,8 @@ frv_relocate_section_addresses (struct s
                                  struct target_section *sec)
 {
   int seg;
-  struct int_elf32_fdpic_loadmap *map;
-
-  map = so->lm_info->map;
+  lm_info_frv *li = (lm_info_frv *) so->lm_info;
+  int_elf32_fdpic_loadmap *map = li->map;
 
   for (seg = 0; seg < map->nsegs; seg++)
     {
@@ -926,15 +925,14 @@ frv_fdpic_find_global_pointer (CORE_ADDR
   while (so)
     {
       int seg;
-      struct int_elf32_fdpic_loadmap *map;
-
-      map = so->lm_info->map;
+      lm_info_frv *li = (lm_info_frv *) so->lm_info;
+      int_elf32_fdpic_loadmap *map = li->map;
 
       for (seg = 0; seg < map->nsegs; seg++)
 	{
 	  if (map->segs[seg].addr <= addr
 	      && addr < map->segs[seg].addr + map->segs[seg].p_memsz)
-	    return so->lm_info->got_value;
+	    return li->got_value;
 	}
 
       so = so->next;
@@ -947,7 +945,7 @@ frv_fdpic_find_global_pointer (CORE_ADDR
 
 /* Forward declarations for frv_fdpic_find_canonical_descriptor().  */
 static CORE_ADDR find_canonical_descriptor_in_load_object
-  (CORE_ADDR, CORE_ADDR, const char *, bfd *, struct lm_info *);
+  (CORE_ADDR, CORE_ADDR, const char *, bfd *, lm_info_frv *);
 
 /* Given a function entry point, attempt to find the canonical descriptor
    associated with that entry point.  Return 0 if no canonical descriptor
@@ -987,8 +985,10 @@ frv_fdpic_find_canonical_descriptor (COR
       so = master_so_list ();
       while (so)
 	{
+	  lm_info_frv *li = (lm_info_frv *) so->lm_info;
+
 	  addr = find_canonical_descriptor_in_load_object
-		   (entry_point, got_value, name, so->abfd, so->lm_info);
+		   (entry_point, got_value, name, so->abfd, li);
 
 	  if (addr != 0)
 	    break;
@@ -1003,7 +1003,7 @@ frv_fdpic_find_canonical_descriptor (COR
 static CORE_ADDR
 find_canonical_descriptor_in_load_object
   (CORE_ADDR entry_point, CORE_ADDR got_value, const char *name, bfd *abfd,
-   struct lm_info *lm)
+   lm_info_frv *lm)
 {
   enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
   arelent *rel;
@@ -1141,8 +1141,10 @@ frv_fetch_objfile_link_map (struct objfi
      of shared libraries.  */
   for (so = master_so_list (); so; so = so->next)
     {
+      lm_info_frv *li = (lm_info_frv *) so->lm_info;
+
       if (so->objfile == objfile)
-	return so->lm_info->lm_addr;
+	return li->lm_addr;
     }
 
   /* Not found!  */
@@ -1151,9 +1153,6 @@ frv_fetch_objfile_link_map (struct objfi
 
 struct target_so_ops frv_so_ops;
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_frv_solib;
-
 void
 _initialize_frv_solib (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib.h ./gdb/solib.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solib.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Shared library declarations for GDB, the GNU Debugger.
    
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -71,7 +71,7 @@ extern int in_solib_dynsym_resolve_code 
 
 /* Discard symbols that were auto-loaded from shared libraries.  */
 
-extern void no_shared_libraries (char *ignored, int from_tty);
+extern void no_shared_libraries (const char *ignored, int from_tty);
 
 /* Set the solib operations for GDBARCH to NEW_OPS.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-spu.c ./gdb/solib-spu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-spu.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solib-spu.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Cell SPU GNU/Linux support -- shared library handling.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
 
@@ -542,9 +542,6 @@ spu_solib_loaded (struct so_list *so)
     }
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_spu_solib;
-
 void
 _initialize_spu_solib (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-spu.h ./gdb/solib-spu.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-spu.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solib-spu.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Cell SPU GNU/Linux support -- shared library handling.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-svr4.c ./gdb/solib-svr4.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-svr4.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solib-svr4.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Handle SVR4 shared libraries for GDB, the GNU Debugger.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -51,27 +51,6 @@ static int svr4_have_link_map_offsets (v
 static void svr4_relocate_main_executable (void);
 static void svr4_free_library_list (void *p_list);
 
-/* Link map info to include in an allocated so_list entry.  */
-
-struct lm_info
-  {
-    /* Amount by which addresses in the binary should be relocated to
-       match the inferior.  The direct inferior value is L_ADDR_INFERIOR.
-       When prelinking is involved and the prelink base address changes,
-       we may need a different offset - the recomputed offset is in L_ADDR.
-       It is commonly the same value.  It is cached as we want to warn about
-       the difference and compute it only once.  L_ADDR is valid
-       iff L_ADDR_P.  */
-    CORE_ADDR l_addr, l_addr_inferior;
-    unsigned int l_addr_p : 1;
-
-    /* The target location of lm.  */
-    CORE_ADDR lm_addr;
-
-    /* Values read in from inferior's fields of the same name.  */
-    CORE_ADDR l_ld, l_next, l_prev, l_name;
-  };
-
 /* On SVR4 systems, a list of symbols in the dynamic linker where
    GDB can try to place a breakpoint to monitor shared library
    events.
@@ -189,12 +168,12 @@ svr4_same (struct so_list *gdb, struct s
   return (svr4_same_1 (gdb->so_original_name, inferior->so_original_name));
 }
 
-static struct lm_info *
+static lm_info_svr4 *
 lm_info_read (CORE_ADDR lm_addr)
 {
   struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
   gdb_byte *lm;
-  struct lm_info *lm_info;
+  lm_info_svr4 *lm_info;
   struct cleanup *back_to;
 
   lm = (gdb_byte *) xmalloc (lmo->link_map_size);
@@ -210,7 +189,7 @@ lm_info_read (CORE_ADDR lm_addr)
     {
       struct type *ptr_type = builtin_type (target_gdbarch ())->builtin_data_ptr;
 
-      lm_info = XCNEW (struct lm_info);
+      lm_info = new lm_info_svr4;
       lm_info->lm_addr = lm_addr;
 
       lm_info->l_addr_inferior = extract_typed_address (&lm[lmo->l_addr_offset],
@@ -240,17 +219,19 @@ has_lm_dynamic_from_link_map (void)
 static CORE_ADDR
 lm_addr_check (const struct so_list *so, bfd *abfd)
 {
-  if (!so->lm_info->l_addr_p)
+  lm_info_svr4 *li = (lm_info_svr4 *) so->lm_info;
+
+  if (!li->l_addr_p)
     {
       struct bfd_section *dyninfo_sect;
       CORE_ADDR l_addr, l_dynaddr, dynaddr;
 
-      l_addr = so->lm_info->l_addr_inferior;
+      l_addr = li->l_addr_inferior;
 
       if (! abfd || ! has_lm_dynamic_from_link_map ())
 	goto set_addr;
 
-      l_dynaddr = so->lm_info->l_ld;
+      l_dynaddr = li->l_ld;
 
       dyninfo_sect = bfd_get_section_by_name (abfd, ".dynamic");
       if (dyninfo_sect == NULL)
@@ -333,11 +314,11 @@ lm_addr_check (const struct so_list *so,
 	}
 
     set_addr:
-      so->lm_info->l_addr = l_addr;
-      so->lm_info->l_addr_p = 1;
+      li->l_addr = l_addr;
+      li->l_addr_p = 1;
     }
 
-  return so->lm_info->l_addr;
+  return li->l_addr;
 }
 
 /* Per pspace SVR4 specific data.  */
@@ -370,7 +351,7 @@ struct svr4_info
   /* Table of struct probe_and_action instances, used by the
      probes-based interface to map breakpoint addresses to probes
      and their associated actions.  Lookup is performed using
-     probe_and_action->probe->address.  */
+     probe_and_action->prob->address.  */
   htab_t probes_table;
 
   /* List of objects loaded into the inferior, used by the probes-
@@ -994,28 +975,23 @@ svr4_keep_data_in_core (CORE_ADDR vaddr,
 
   newobj = XCNEW (struct so_list);
   old_chain = make_cleanup (xfree, newobj);
-  newobj->lm_info = lm_info_read (ldsomap);
+  lm_info_svr4 *li = lm_info_read (ldsomap);
+  newobj->lm_info = li;
   make_cleanup (xfree, newobj->lm_info);
-  name_lm = newobj->lm_info ? newobj->lm_info->l_name : 0;
+  name_lm = li != NULL ? li->l_name : 0;
   do_cleanups (old_chain);
 
   return (name_lm >= vaddr && name_lm < vaddr + size);
 }
 
-/* Implement the "open_symbol_file_object" target_so_ops method.
-
-   If no open symbol file, attempt to locate and open the main symbol
-   file.  On SVR4 systems, this is the first link map entry.  If its
-   name is here, we can open it.  Useful when attaching to a process
-   without first loading its symbol file.  */
+/* See solist.h.  */
 
 static int
-open_symbol_file_object (void *from_ttyp)
+open_symbol_file_object (int from_tty)
 {
   CORE_ADDR lm, l_name;
   char *filename;
   int errcode;
-  int from_tty = *(int *)from_ttyp;
   struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
   struct type *ptr_type = builtin_type (target_gdbarch ())->builtin_data_ptr;
   int l_name_size = TYPE_LENGTH (ptr_type);
@@ -1098,7 +1074,9 @@ struct svr4_library_list
 static void
 svr4_free_so (struct so_list *so)
 {
-  xfree (so->lm_info);
+  lm_info_svr4 *li = (lm_info_svr4 *) so->lm_info;
+
+  delete li;
 }
 
 /* Implement target_so_ops.clear_so.  */
@@ -1106,8 +1084,10 @@ svr4_free_so (struct so_list *so)
 static void
 svr4_clear_so (struct so_list *so)
 {
-  if (so->lm_info != NULL)
-    so->lm_info->l_addr_p = 0;
+  lm_info_svr4 *li = (lm_info_svr4 *) so->lm_info;
+
+  if (li != NULL)
+    li->l_addr_p = 0;
 }
 
 /* Free so_list built so far (called via cleanup).  */
@@ -1141,8 +1121,8 @@ svr4_copy_library_list (struct so_list *
       newobj = XNEW (struct so_list);
       memcpy (newobj, src, sizeof (struct so_list));
 
-      newobj->lm_info = XNEW (struct lm_info);
-      memcpy (newobj->lm_info, src->lm_info, sizeof (struct lm_info));
+      lm_info_svr4 *src_li = (lm_info_svr4 *) src->lm_info;
+      newobj->lm_info = new lm_info_svr4 (*src_li);
 
       newobj->next = NULL;
       *link = newobj;
@@ -1178,10 +1158,11 @@ library_list_start_library (struct gdb_x
   struct so_list *new_elem;
 
   new_elem = XCNEW (struct so_list);
-  new_elem->lm_info = XCNEW (struct lm_info);
-  new_elem->lm_info->lm_addr = *lmp;
-  new_elem->lm_info->l_addr_inferior = *l_addrp;
-  new_elem->lm_info->l_ld = *l_ldp;
+  lm_info_svr4 *li = new lm_info_svr4;
+  new_elem->lm_info = li;
+  li->lm_addr = *lmp;
+  li->l_addr_inferior = *l_addrp;
+  li->l_ld = *l_ldp;
 
   strncpy (new_elem->so_name, name, sizeof (new_elem->so_name) - 1);
   new_elem->so_name[sizeof (new_elem->so_name) - 1] = 0;
@@ -1288,24 +1269,16 @@ static int
 svr4_current_sos_via_xfer_libraries (struct svr4_library_list *list,
 				     const char *annex)
 {
-  char *svr4_library_document;
-  int result;
-  struct cleanup *back_to;
-
   gdb_assert (annex == NULL || target_augmented_libraries_svr4_read ());
 
   /* Fetch the list of shared libraries.  */
-  svr4_library_document = target_read_stralloc (&current_target,
-						TARGET_OBJECT_LIBRARIES_SVR4,
-						annex);
+  gdb::unique_xmalloc_ptr<char> svr4_library_document
+    = target_read_stralloc (&current_target, TARGET_OBJECT_LIBRARIES_SVR4,
+			    annex);
   if (svr4_library_document == NULL)
     return 0;
 
-  back_to = make_cleanup (xfree, svr4_library_document);
-  result = svr4_parse_libraries (svr4_library_document, list);
-  do_cleanups (back_to);
-
-  return result;
+  return svr4_parse_libraries (svr4_library_document.get (), list);
 }
 
 #else
@@ -1332,12 +1305,12 @@ svr4_default_sos (void)
     return NULL;
 
   newobj = XCNEW (struct so_list);
-
-  newobj->lm_info = XCNEW (struct lm_info);
+  lm_info_svr4 *li = new lm_info_svr4;
+  newobj->lm_info = li;
 
   /* Nothing will ever check the other fields if we set l_addr_p.  */
-  newobj->lm_info->l_addr = info->debug_loader_offset;
-  newobj->lm_info->l_addr_p = 1;
+  li->l_addr = info->debug_loader_offset;
+  li->l_addr_p = 1;
 
   strncpy (newobj->so_name, info->debug_loader_name, SO_NAME_MAX_PATH_SIZE - 1);
   newobj->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
@@ -1363,29 +1336,23 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
 
   for (; lm != 0; prev_lm = lm, lm = next_lm)
     {
-      struct so_list *newobj;
-      struct cleanup *old_chain;
       int errcode;
       char *buffer;
 
-      newobj = XCNEW (struct so_list);
-      old_chain = make_cleanup_free_so (newobj);
+      so_list_up newobj (XCNEW (struct so_list));
 
-      newobj->lm_info = lm_info_read (lm);
-      if (newobj->lm_info == NULL)
-	{
-	  do_cleanups (old_chain);
-	  return 0;
-	}
+      lm_info_svr4 *li = lm_info_read (lm);
+      newobj->lm_info = li;
+      if (li == NULL)
+	return 0;
 
-      next_lm = newobj->lm_info->l_next;
+      next_lm = li->l_next;
 
-      if (newobj->lm_info->l_prev != prev_lm)
+      if (li->l_prev != prev_lm)
 	{
 	  warning (_("Corrupted shared library list: %s != %s"),
 		   paddress (target_gdbarch (), prev_lm),
-		   paddress (target_gdbarch (), newobj->lm_info->l_prev));
-	  do_cleanups (old_chain);
+		   paddress (target_gdbarch (), li->l_prev));
 	  return 0;
 	}
 
@@ -1394,29 +1361,27 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
          SVR4, it has no name.  For others (Solaris 2.3 for example), it
          does have a name, so we can no longer use a missing name to
          decide when to ignore it.  */
-      if (ignore_first && newobj->lm_info->l_prev == 0)
+      if (ignore_first && li->l_prev == 0)
 	{
 	  struct svr4_info *info = get_svr4_info ();
 
-	  first_l_name = newobj->lm_info->l_name;
-	  info->main_lm_addr = newobj->lm_info->lm_addr;
-	  do_cleanups (old_chain);
+	  first_l_name = li->l_name;
+	  info->main_lm_addr = li->lm_addr;
 	  continue;
 	}
 
       /* Extract this shared object's name.  */
-      target_read_string (newobj->lm_info->l_name, &buffer,
-			  SO_NAME_MAX_PATH_SIZE - 1, &errcode);
+      target_read_string (li->l_name, &buffer, SO_NAME_MAX_PATH_SIZE - 1,
+			  &errcode);
       if (errcode != 0)
 	{
 	  /* If this entry's l_name address matches that of the
 	     inferior executable, then this is not a normal shared
 	     object, but (most likely) a vDSO.  In this case, silently
 	     skip it; otherwise emit a warning. */
-	  if (first_l_name == 0 || newobj->lm_info->l_name != first_l_name)
+	  if (first_l_name == 0 || li->l_name != first_l_name)
 	    warning (_("Can't read pathname for load map: %s."),
 		     safe_strerror (errcode));
-	  do_cleanups (old_chain);
 	  continue;
 	}
 
@@ -1428,15 +1393,12 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
       /* If this entry has no name, or its name matches the name
 	 for the main executable, don't include it in the list.  */
       if (! newobj->so_name[0] || match_main (newobj->so_name))
-	{
-	  do_cleanups (old_chain);
-	  continue;
-	}
+	continue;
 
-      discard_cleanups (old_chain);
       newobj->next = 0;
-      **link_ptr_ptr = newobj;
-      *link_ptr_ptr = &newobj->next;
+      /* Don't free it now.  */
+      **link_ptr_ptr = newobj.release ();
+      *link_ptr_ptr = &(**link_ptr_ptr)->next;
     }
 
   return 1;
@@ -1594,7 +1556,10 @@ svr4_current_sos (void)
 	      [...]
 		[ 9] .dynamic DYNAMIC ffffffffff700580 000580 0000f0
 	  */
-	  if (address_in_mem_range (so->lm_info->l_ld, &vsyscall_range))
+
+	  lm_info_svr4 *li = (lm_info_svr4 *) so->lm_info;
+
+	  if (address_in_mem_range (li->l_ld, &vsyscall_range))
 	    {
 	      *sop = so->next;
 	      free_so (so);
@@ -1628,7 +1593,11 @@ svr4_fetch_objfile_link_map (struct objf
      of shared libraries.  */
   for (so = master_so_list (); so; so = so->next)
     if (so->objfile == objfile)
-      return so->lm_info->lm_addr;
+      {
+	lm_info_svr4 *li = (lm_info_svr4 *) so->lm_info;
+
+	return li->lm_addr;
+      }
 
   /* Not found!  */
   return 0;
@@ -1695,7 +1664,7 @@ exec_entry_point (struct bfd *abfd, stru
 struct probe_and_action
 {
   /* The probe.  */
-  struct probe *probe;
+  probe *prob;
 
   /* The relocated address of the probe.  */
   CORE_ADDR address;
@@ -1730,7 +1699,7 @@ equal_probe_and_action (const void *p1, 
    probes table.  */
 
 static void
-register_solib_event_probe (struct probe *probe, CORE_ADDR address,
+register_solib_event_probe (probe *prob, CORE_ADDR address,
 			    enum probe_action action)
 {
   struct svr4_info *info = get_svr4_info ();
@@ -1743,13 +1712,13 @@ register_solib_event_probe (struct probe
 					    equal_probe_and_action,
 					    xfree, xcalloc, xfree);
 
-  lookup.probe = probe;
+  lookup.prob = prob;
   lookup.address = address;
   slot = htab_find_slot (info->probes_table, &lookup, INSERT);
   gdb_assert (*slot == HTAB_EMPTY_ENTRY);
 
   pa = XCNEW (struct probe_and_action);
-  pa->probe = probe;
+  pa->prob = prob;
   pa->address = address;
   pa->action = action;
 
@@ -1798,7 +1767,7 @@ solib_event_probe_action (struct probe_a
        arg2: struct link_map *new (optional, for incremental updates)  */
   TRY
     {
-      probe_argc = get_probe_argument_count (pa->probe, frame);
+      probe_argc = pa->prob->get_argument_count (frame);
     }
   CATCH (ex, RETURN_MASK_ERROR)
     {
@@ -1807,11 +1776,11 @@ solib_event_probe_action (struct probe_a
     }
   END_CATCH
 
-  /* If get_probe_argument_count throws an exception, probe_argc will
-     be set to zero.  However, if pa->probe does not have arguments,
-     then get_probe_argument_count will succeed but probe_argc will
-     also be zero.  Both cases happen because of different things, but
-     they are treated equally here: action will be set to
+  /* If get_argument_count throws an exception, probe_argc will be set
+     to zero.  However, if pa->prob does not have arguments, then
+     get_argument_count will succeed but probe_argc will also be zero.
+     Both cases happen because of different things, but they are
+     treated equally here: action will be set to
      PROBES_INTERFACE_FAILED.  */
   if (probe_argc == 2)
     action = FULL_RELOAD;
@@ -1860,7 +1829,9 @@ solist_update_incremental (struct svr4_i
   /* Walk to the end of the list.  */
   for (tail = info->solib_list; tail->next != NULL; tail = tail->next)
     /* Nothing.  */;
-  prev_lm = tail->lm_info->lm_addr;
+
+  lm_info_svr4 *li = (lm_info_svr4 *) tail->lm_info;
+  prev_lm = li->lm_addr;
 
   /* Read the new objects.  */
   if (info->using_xfer)
@@ -1951,7 +1922,7 @@ svr4_handle_solib_event (void)
       return;
     }
 
-  /* evaluate_probe_argument looks up symbols in the dynamic linker
+  /* evaluate_argument looks up symbols in the dynamic linker
      using find_pc_section.  find_pc_section is accelerated by a cache
      called the section map.  The section map is invalidated every
      time a shared library is loaded or unloaded, and if the inferior
@@ -1960,14 +1931,14 @@ svr4_handle_solib_event (void)
      We called find_pc_section in svr4_create_solib_event_breakpoints,
      so we can guarantee that the dynamic linker's sections are in the
      section map.  We can therefore inhibit section map updates across
-     these calls to evaluate_probe_argument and save a lot of time.  */
+     these calls to evaluate_argument and save a lot of time.  */
   inhibit_section_map_updates (current_program_space);
   usm_chain = make_cleanup (resume_section_map_updates_cleanup,
 			    current_program_space);
 
   TRY
     {
-      val = evaluate_probe_argument (pa->probe, 1, frame);
+      val = pa->prob->evaluate_argument (1, frame);
     }
   CATCH (ex, RETURN_MASK_ERROR)
     {
@@ -2008,7 +1979,7 @@ svr4_handle_solib_event (void)
     {
       TRY
 	{
-	  val = evaluate_probe_argument (pa->probe, 2, frame);
+	  val = pa->prob->evaluate_argument (2, frame);
 	}
       CATCH (ex, RETURN_MASK_ERROR)
 	{
@@ -2104,25 +2075,19 @@ svr4_update_solib_event_breakpoints (voi
 
 static void
 svr4_create_probe_breakpoints (struct gdbarch *gdbarch,
-			       VEC (probe_p) **probes,
+			       const std::vector<probe *> *probes,
 			       struct objfile *objfile)
 {
-  int i;
-
-  for (i = 0; i < NUM_PROBES; i++)
+  for (int i = 0; i < NUM_PROBES; i++)
     {
       enum probe_action action = probe_info[i].action;
-      struct probe *probe;
-      int ix;
 
-      for (ix = 0;
-	   VEC_iterate (probe_p, probes[i], ix, probe);
-	   ++ix)
+      for (probe *p : probes[i])
 	{
-	  CORE_ADDR address = get_probe_address (probe, objfile);
+	  CORE_ADDR address = p->get_relocated_address (objfile);
 
 	  create_solib_event_breakpoint (gdbarch, address);
-	  register_solib_event_probe (probe, address, action);
+	  register_solib_event_probe (p, address, action);
 	}
     }
 
@@ -2154,16 +2119,14 @@ svr4_create_solib_event_breakpoints (str
 
       for (with_prefix = 0; with_prefix <= 1; with_prefix++)
 	{
-	  VEC (probe_p) *probes[NUM_PROBES];
+	  std::vector<probe *> probes[NUM_PROBES];
 	  int all_probes_found = 1;
 	  int checked_can_use_probe_arguments = 0;
-	  int i;
 
-	  memset (probes, 0, sizeof (probes));
-	  for (i = 0; i < NUM_PROBES; i++)
+	  for (int i = 0; i < NUM_PROBES; i++)
 	    {
 	      const char *name = probe_info[i].name;
-	      struct probe *p;
+	      probe *p;
 	      char buf[32];
 
 	      /* Fedora 17 and Red Hat Enterprise Linux 6.2-6.4
@@ -2187,7 +2150,7 @@ svr4_create_solib_event_breakpoints (str
 	      if (strcmp (name, "rtld_map_failed") == 0)
 		continue;
 
-	      if (VEC_empty (probe_p, probes[i]))
+	      if (probes[i].empty ())
 		{
 		  all_probes_found = 0;
 		  break;
@@ -2196,8 +2159,8 @@ svr4_create_solib_event_breakpoints (str
 	      /* Ensure probe arguments can be evaluated.  */
 	      if (!checked_can_use_probe_arguments)
 		{
-		  p = VEC_index (probe_p, probes[i], 0);
-		  if (!can_evaluate_probe_arguments (p))
+		  p = probes[i][0];
+		  if (!p->can_evaluate_arguments ())
 		    {
 		      all_probes_found = 0;
 		      break;
@@ -2209,9 +2172,6 @@ svr4_create_solib_event_breakpoints (str
 	  if (all_probes_found)
 	    svr4_create_probe_breakpoints (gdbarch, probes, os->objfile);
 
-	  for (i = 0; i < NUM_PROBES; i++)
-	    VEC_free (probe_p, probes[i]);
-
 	  if (all_probes_found)
 	    return;
 	}
@@ -3308,8 +3268,6 @@ elf_lookup_lib_symbol (struct objfile *o
   return lookup_global_symbol_from_objfile (objfile, name, domain);
 }
 
-extern initialize_file_ftype _initialize_svr4_solib; /* -Wmissing-prototypes */
-
 void
 _initialize_svr4_solib (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-svr4.h ./gdb/solib-svr4.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-svr4.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solib-svr4.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Handle shared libraries for GDB, the GNU Debugger.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,11 +20,34 @@
 #ifndef SOLIB_SVR4_H
 #define SOLIB_SVR4_H
 
+#include "solist.h"
+
 struct objfile;
 struct target_so_ops;
 
 extern struct target_so_ops svr4_so_ops;
 
+/* Link map info to include in an allocated so_list entry.  */
+
+struct lm_info_svr4 : public lm_info_base
+{
+  /* Amount by which addresses in the binary should be relocated to
+     match the inferior.  The direct inferior value is L_ADDR_INFERIOR.
+     When prelinking is involved and the prelink base address changes,
+     we may need a different offset - the recomputed offset is in L_ADDR.
+     It is commonly the same value.  It is cached as we want to warn about
+     the difference and compute it only once.  L_ADDR is valid
+     iff L_ADDR_P.  */
+  CORE_ADDR l_addr = 0, l_addr_inferior = 0;
+  bool l_addr_p = false;
+
+  /* The target location of lm.  */
+  CORE_ADDR lm_addr = 0;
+
+  /* Values read in from inferior's fields of the same name.  */
+  CORE_ADDR l_ld = 0, l_next = 0, l_prev = 0, l_name = 0;
+};
+
 /* Critical offsets and sizes which describe struct r_debug and
    struct link_map on SVR4-like targets.  All offsets and sizes are
    in bytes unless otherwise specified.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-target.c ./gdb/solib-target.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-target.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solib-target.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for targets which report shared library events.
 
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -25,36 +25,37 @@
 #include "target.h"
 #include "vec.h"
 #include "solib-target.h"
+#include <vector>
 
 /* Private data for each loaded library.  */
-struct lm_info
+struct lm_info_target : public lm_info_base
 {
   /* The library's name.  The name is normally kept in the struct
      so_list; it is only here during XML parsing.  */
-  char *name;
+  std::string name;
 
   /* The target can either specify segment bases or section bases, not
      both.  */
 
   /* The base addresses for each independently relocatable segment of
      this shared library.  */
-  VEC(CORE_ADDR) *segment_bases;
+  std::vector<CORE_ADDR> segment_bases;
 
   /* The base addresses for each independently allocatable,
      relocatable section of this shared library.  */
-  VEC(CORE_ADDR) *section_bases;
+  std::vector<CORE_ADDR> section_bases;
 
   /* The cached offsets for each section of this shared library,
      determined from SEGMENT_BASES, or SECTION_BASES.  */
-  struct section_offsets *offsets;
+  section_offsets *offsets = NULL;
 };
 
-typedef struct lm_info *lm_info_p;
-DEF_VEC_P(lm_info_p);
+typedef lm_info_target *lm_info_target_p;
+DEF_VEC_P(lm_info_target_p);
 
 #if !defined(HAVE_LIBEXPAT)
 
-static VEC(lm_info_p) *
+static VEC(lm_info_target_p) *
 solib_target_parse_libraries (const char *library)
 {
   static int have_warned;
@@ -80,17 +81,17 @@ library_list_start_segment (struct gdb_x
 			    const struct gdb_xml_element *element,
 			    void *user_data, VEC(gdb_xml_value_s) *attributes)
 {
-  VEC(lm_info_p) **list = (VEC(lm_info_p) **) user_data;
-  struct lm_info *last = VEC_last (lm_info_p, *list);
+  VEC(lm_info_target_p) **list = (VEC(lm_info_target_p) **) user_data;
+  lm_info_target *last = VEC_last (lm_info_target_p, *list);
   ULONGEST *address_p
     = (ULONGEST *) xml_find_attribute (attributes, "address")->value;
   CORE_ADDR address = (CORE_ADDR) *address_p;
 
-  if (last->section_bases != NULL)
+  if (!last->section_bases.empty ())
     gdb_xml_error (parser,
 		   _("Library list with both segments and sections"));
 
-  VEC_safe_push (CORE_ADDR, last->segment_bases, address);
+  last->segment_bases.push_back (address);
 }
 
 static void
@@ -98,17 +99,17 @@ library_list_start_section (struct gdb_x
 			    const struct gdb_xml_element *element,
 			    void *user_data, VEC(gdb_xml_value_s) *attributes)
 {
-  VEC(lm_info_p) **list = (VEC(lm_info_p) **) user_data;
-  struct lm_info *last = VEC_last (lm_info_p, *list);
+  VEC(lm_info_target_p) **list = (VEC(lm_info_target_p) **) user_data;
+  lm_info_target *last = VEC_last (lm_info_target_p, *list);
   ULONGEST *address_p
     = (ULONGEST *) xml_find_attribute (attributes, "address")->value;
   CORE_ADDR address = (CORE_ADDR) *address_p;
 
-  if (last->segment_bases != NULL)
+  if (!last->segment_bases.empty ())
     gdb_xml_error (parser,
 		   _("Library list with both segments and sections"));
 
-  VEC_safe_push (CORE_ADDR, last->section_bases, address);
+  last->section_bases.push_back (address);
 }
 
 /* Handle the start of a <library> element.  */
@@ -118,13 +119,13 @@ library_list_start_library (struct gdb_x
 			    const struct gdb_xml_element *element,
 			    void *user_data, VEC(gdb_xml_value_s) *attributes)
 {
-  VEC(lm_info_p) **list = (VEC(lm_info_p) **) user_data;
-  struct lm_info *item = XCNEW (struct lm_info);
+  VEC(lm_info_target_p) **list = (VEC(lm_info_target_p) **) user_data;
+  lm_info_target *item = new lm_info_target;
   const char *name
     = (const char *) xml_find_attribute (attributes, "name")->value;
 
   item->name = xstrdup (name);
-  VEC_safe_push (lm_info_p, *list, item);
+  VEC_safe_push (lm_info_target_p, *list, item);
 }
 
 static void
@@ -132,13 +133,11 @@ library_list_end_library (struct gdb_xml
 			  const struct gdb_xml_element *element,
 			  void *user_data, const char *body_text)
 {
-  VEC(lm_info_p) **list = (VEC(lm_info_p) **) user_data;
-  struct lm_info *lm_info = VEC_last (lm_info_p, *list);
+  VEC(lm_info_target_p) **list = (VEC(lm_info_target_p) **) user_data;
+  lm_info_target *lm_info = VEC_last (lm_info_target_p, *list);
 
-  if (lm_info->segment_bases == NULL
-      && lm_info->section_bases == NULL)
-    gdb_xml_error (parser,
-		   _("No segment or section bases defined"));
+  if (lm_info->segment_bases.empty () && lm_info->section_bases.empty ())
+    gdb_xml_error (parser, _("No segment or section bases defined"));
 }
 
 
@@ -168,18 +167,14 @@ library_list_start_list (struct gdb_xml_
 static void
 solib_target_free_library_list (void *p)
 {
-  VEC(lm_info_p) **result = (VEC(lm_info_p) **) p;
-  struct lm_info *info;
+  VEC(lm_info_target_p) **result = (VEC(lm_info_target_p) **) p;
+  lm_info_target *info;
   int ix;
 
-  for (ix = 0; VEC_iterate (lm_info_p, *result, ix, info); ix++)
-    {
-      xfree (info->name);
-      VEC_free (CORE_ADDR, info->segment_bases);
-      VEC_free (CORE_ADDR, info->section_bases);
-      xfree (info);
-    }
-  VEC_free (lm_info_p, *result);
+  for (ix = 0; VEC_iterate (lm_info_target_p, *result, ix, info); ix++)
+    delete info;
+
+  VEC_free (lm_info_target_p, *result);
   *result = NULL;
 }
 
@@ -229,10 +224,10 @@ static const struct gdb_xml_element libr
   { NULL, NULL, NULL, GDB_XML_EF_NONE, NULL, NULL }
 };
 
-static VEC(lm_info_p) *
+static VEC(lm_info_target_p) *
 solib_target_parse_libraries (const char *library)
 {
-  VEC(lm_info_p) *result = NULL;
+  VEC(lm_info_target_p) *result = NULL;
   struct cleanup *back_to = make_cleanup (solib_target_free_library_list,
 					  &result);
 
@@ -253,45 +248,36 @@ static struct so_list *
 solib_target_current_sos (void)
 {
   struct so_list *new_solib, *start = NULL, *last = NULL;
-  char *library_document;
-  struct cleanup *old_chain;
-  VEC(lm_info_p) *library_list;
-  struct lm_info *info;
+  VEC(lm_info_target_p) *library_list;
+  lm_info_target *info;
   int ix;
 
   /* Fetch the list of shared libraries.  */
-  library_document = target_read_stralloc (&current_target,
-					   TARGET_OBJECT_LIBRARIES,
-					   NULL);
+  gdb::unique_xmalloc_ptr<char> library_document
+    = target_read_stralloc (&current_target, TARGET_OBJECT_LIBRARIES, NULL);
   if (library_document == NULL)
     return NULL;
 
-  /* solib_target_parse_libraries may throw, so we use a cleanup.  */
-  old_chain = make_cleanup (xfree, library_document);
-
   /* Parse the list.  */
-  library_list = solib_target_parse_libraries (library_document);
-
-  /* library_document string is not needed behind this point.  */
-  do_cleanups (old_chain);
+  library_list = solib_target_parse_libraries (library_document.get ());
 
   if (library_list == NULL)
     return NULL;
 
   /* Build a struct so_list for each entry on the list.  */
-  for (ix = 0; VEC_iterate (lm_info_p, library_list, ix, info); ix++)
+  for (ix = 0; VEC_iterate (lm_info_target_p, library_list, ix, info); ix++)
     {
       new_solib = XCNEW (struct so_list);
-      strncpy (new_solib->so_name, info->name, SO_NAME_MAX_PATH_SIZE - 1);
+      strncpy (new_solib->so_name, info->name.c_str (),
+	       SO_NAME_MAX_PATH_SIZE - 1);
       new_solib->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
-      strncpy (new_solib->so_original_name, info->name,
+      strncpy (new_solib->so_original_name, info->name.c_str (),
 	       SO_NAME_MAX_PATH_SIZE - 1);
       new_solib->so_original_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
       new_solib->lm_info = info;
 
       /* We no longer need this copy of the name.  */
-      xfree (info->name);
-      info->name = NULL;
+      info->name.clear ();
 
       /* Add it to the list.  */
       if (!start)
@@ -304,7 +290,7 @@ solib_target_current_sos (void)
     }
 
   /* Free the library list, but not its members.  */
-  VEC_free (lm_info_p, library_list);
+  VEC_free (lm_info_target_p, library_list);
 
   return start;
 }
@@ -324,10 +310,11 @@ solib_target_clear_solib (void)
 static void
 solib_target_free_so (struct so_list *so)
 {
-  gdb_assert (so->lm_info->name == NULL);
-  xfree (so->lm_info->offsets);
-  VEC_free (CORE_ADDR, so->lm_info->segment_bases);
-  xfree (so->lm_info);
+  lm_info_target *li = (lm_info_target *) so->lm_info;
+
+  gdb_assert (li->name.empty ());
+
+  delete li;
 }
 
 static void
@@ -335,23 +322,22 @@ solib_target_relocate_section_addresses 
 					 struct target_section *sec)
 {
   CORE_ADDR offset;
+  lm_info_target *li = (lm_info_target *) so->lm_info;
 
   /* Build the offset table only once per object file.  We can not do
      it any earlier, since we need to open the file first.  */
-  if (so->lm_info->offsets == NULL)
+  if (li->offsets == NULL)
     {
       int num_sections = gdb_bfd_count_sections (so->abfd);
 
-      so->lm_info->offsets
+      li->offsets
 	= ((struct section_offsets *)
 	   xzalloc (SIZEOF_N_SECTION_OFFSETS (num_sections)));
 
-      if (so->lm_info->section_bases)
+      if (!li->section_bases.empty ())
 	{
 	  int i;
 	  asection *sect;
-	  int num_section_bases
-	    = VEC_length (CORE_ADDR, so->lm_info->section_bases);
 	  int num_alloc_sections = 0;
 
 	  for (i = 0, sect = so->abfd->sections;
@@ -360,7 +346,7 @@ solib_target_relocate_section_addresses 
 	    if ((bfd_get_section_flags (so->abfd, sect) & SEC_ALLOC))
 	      num_alloc_sections++;
 
-	  if (num_alloc_sections != num_section_bases)
+	  if (num_alloc_sections != li->section_bases.size ())
 	    warning (_("\
 Could not relocate shared library \"%s\": wrong number of ALLOC sections"),
 		     so->so_name);
@@ -368,10 +354,6 @@ Could not relocate shared library \"%s\"
 	    {
 	      int bases_index = 0;
 	      int found_range = 0;
-	      CORE_ADDR *section_bases;
-
-	      section_bases = VEC_address (CORE_ADDR,
-					   so->lm_info->section_bases);
 
 	      so->addr_low = ~(CORE_ADDR) 0;
 	      so->addr_high = 0;
@@ -385,7 +367,7 @@ Could not relocate shared library \"%s\"
 		    {
 		      CORE_ADDR low, high;
 
-		      low = section_bases[i];
+		      low = li->section_bases[i];
 		      high = low + bfd_section_size (so->abfd, sect) - 1;
 
 		      if (low < so->addr_low)
@@ -395,8 +377,7 @@ Could not relocate shared library \"%s\"
 		      gdb_assert (so->addr_low <= so->addr_high);
 		      found_range = 1;
 		    }
-		  so->lm_info->offsets->offsets[i]
-		    = section_bases[bases_index];
+		  li->offsets->offsets[i] = li->section_bases[bases_index];
 		  bases_index++;
 		}
 	      if (!found_range)
@@ -404,7 +385,7 @@ Could not relocate shared library \"%s\"
 	      gdb_assert (so->addr_low <= so->addr_high);
 	    }
 	}
-      else if (so->lm_info->segment_bases)
+      else if (!li->segment_bases.empty ())
 	{
 	  struct symfile_segment_data *data;
 
@@ -416,39 +397,34 @@ Could not relocate shared library \"%s\"
 	    {
 	      ULONGEST orig_delta;
 	      int i;
-	      int num_bases;
-	      CORE_ADDR *segment_bases;
 
-	      num_bases = VEC_length (CORE_ADDR, so->lm_info->segment_bases);
-	      segment_bases = VEC_address (CORE_ADDR,
-					   so->lm_info->segment_bases);
-
-	      if (!symfile_map_offsets_to_segments (so->abfd, data,
-						    so->lm_info->offsets,
-						    num_bases, segment_bases))
+	      if (!symfile_map_offsets_to_segments (so->abfd, data, li->offsets,
+						    li->segment_bases.size (),
+						    li->segment_bases.data ()))
 		warning (_("\
 Could not relocate shared library \"%s\": bad offsets"), so->so_name);
 
 	      /* Find the range of addresses to report for this library in
 		 "info sharedlibrary".  Report any consecutive segments
 		 which were relocated as a single unit.  */
-	      gdb_assert (num_bases > 0);
-	      orig_delta = segment_bases[0] - data->segment_bases[0];
+	      gdb_assert (li->segment_bases.size () > 0);
+	      orig_delta = li->segment_bases[0] - data->segment_bases[0];
 
 	      for (i = 1; i < data->num_segments; i++)
 		{
 		  /* If we have run out of offsets, assume all
 		     remaining segments have the same offset.  */
-		  if (i >= num_bases)
+		  if (i >= li->segment_bases.size ())
 		    continue;
 
 		  /* If this segment does not have the same offset, do
 		     not include it in the library's range.  */
-		  if (segment_bases[i] - data->segment_bases[i] != orig_delta)
+		  if (li->segment_bases[i] - data->segment_bases[i]
+		      != orig_delta)
 		    break;
 		}
 
-	      so->addr_low = segment_bases[0];
+	      so->addr_low = li->segment_bases[0];
 	      so->addr_high = (data->segment_bases[i - 1]
 			       + data->segment_sizes[i - 1]
 			       + orig_delta);
@@ -459,15 +435,15 @@ Could not relocate shared library \"%s\"
 	}
     }
 
-  offset = so->lm_info->offsets->offsets[gdb_bfd_section_index
-					 (sec->the_bfd_section->owner,
-					  sec->the_bfd_section)];
+  offset = li->offsets->offsets[gdb_bfd_section_index
+			        (sec->the_bfd_section->owner,
+				 sec->the_bfd_section)];
   sec->addr += offset;
   sec->endaddr += offset;
 }
 
 static int
-solib_target_open_symbol_file_object (void *from_ttyp)
+solib_target_open_symbol_file_object (int from_tty)
 {
   /* We can't locate the main symbol file based on the target's
      knowledge; the user has to specify it.  */
@@ -485,9 +461,6 @@ solib_target_in_dynsym_resolve_code (COR
 
 struct target_so_ops solib_target_so_ops;
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_solib_target;
-
 void
 _initialize_solib_target (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-target.h ./gdb/solib-target.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solib-target.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solib-target.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Handle shared libraries for GDB, the GNU Debugger.
 
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solist.h ./gdb/solist.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/solist.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/solist.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Shared library declarations for GDB, the GNU Debugger.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -29,9 +29,11 @@
 	 so != NULL; \
 	 so = so->next)
 
-/* Forward declaration for target specific link map information.  This
-   struct is opaque to all but the target specific file.  */
-struct lm_info;
+/* Base class for target-specific link map information.  */
+
+struct lm_info_base
+{
+};
 
 struct so_list
   {
@@ -45,7 +47,7 @@ struct so_list
        will be a copy of struct link_map from the user process, but
        it need not be; it can be any collection of data needed to
        traverse the dynamic linker's data structures.  */
-    struct lm_info *lm_info;
+    lm_info_base *lm_info;
 
     /* Shared object file name, exactly as it appears in the
        inferior's link map.  This may be a relative path, or something
@@ -119,11 +121,8 @@ struct target_so_ops
     struct so_list *(*current_sos) (void);
 
     /* Find, open, and read the symbols for the main executable.  If
-       FROM_TTYP dereferences to a non-zero integer, allow messages to
-       be printed.  This parameter is a pointer rather than an int
-       because open_symbol_file_object is called via catch_errors and
-       catch_errors requires a pointer argument.  */
-    int (*open_symbol_file_object) (void *from_ttyp);
+       FROM_TTY is non-zero, allow messages to be printed.  */
+    int (*open_symbol_file_object) (int from_ttyp);
 
     /* Determine if PC lies in the dynamic symbol resolution code of
        the run time loader.  */
@@ -177,6 +176,18 @@ struct target_so_ops
 /* Free the memory associated with a (so_list *).  */
 void free_so (struct so_list *so);
 
+/* A deleter that calls free_so.  */
+struct so_deleter
+{
+  void operator() (struct so_list *so) const
+  {
+    free_so (so);
+  }
+};
+
+/* A unique pointer to a so_list.  */
+typedef std::unique_ptr<so_list, so_deleter> so_list_up;
+
 /* Return address of first so_list entry in master shared object list.  */
 struct so_list *master_so_list (void);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sol-thread.c ./gdb/sol-thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sol-thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sol-thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Solaris threads debugging interface.
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -367,10 +367,9 @@ static void
 sol_thread_resume (struct target_ops *ops,
 		   ptid_t ptid, int step, enum gdb_signal signo)
 {
-  struct cleanup *old_chain;
   struct target_ops *beneath = find_target_beneath (ops);
 
-  old_chain = save_inferior_ptid ();
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
 
   inferior_ptid = thread_to_lwp (inferior_ptid, ptid_get_pid (main_ph.ptid));
   if (ptid_get_pid (inferior_ptid) == -1)
@@ -389,8 +388,6 @@ sol_thread_resume (struct target_ops *op
     }
 
   beneath->to_resume (beneath, ptid, step, signo);
-
-  do_cleanups (old_chain);
 }
 
 /* Wait for any threads to stop.  We may have to convert PTID from a
@@ -403,10 +400,9 @@ sol_thread_wait (struct target_ops *ops,
   ptid_t rtnval;
   ptid_t save_ptid;
   struct target_ops *beneath = find_target_beneath (ops);
-  struct cleanup *old_chain;
 
   save_ptid = inferior_ptid;
-  old_chain = save_inferior_ptid ();
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
 
   inferior_ptid = thread_to_lwp (inferior_ptid, ptid_get_pid (main_ph.ptid));
   if (ptid_get_pid (inferior_ptid) == -1)
@@ -445,8 +441,6 @@ sol_thread_wait (struct target_ops *ops,
      package being initialized, since that can only happen after we've
      found the shared libs.  */
 
-  do_cleanups (old_chain);
-
   return rtnval;
 }
 
@@ -569,11 +563,9 @@ sol_thread_xfer_partial (struct target_o
 			  const gdb_byte *writebuf,
 			 ULONGEST offset, ULONGEST len, ULONGEST *xfered_len)
 {
-  enum target_xfer_status retval;
-  struct cleanup *old_chain;
   struct target_ops *beneath = find_target_beneath (ops);
 
-  old_chain = save_inferior_ptid ();
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
 
   if (ptid_tid_p (inferior_ptid) || !target_thread_alive (inferior_ptid))
     {
@@ -585,12 +577,8 @@ sol_thread_xfer_partial (struct target_o
       inferior_ptid = procfs_first_available ();
     }
 
-  retval = beneath->to_xfer_partial (beneath, object, annex, readbuf,
-				     writebuf, offset, len, xfered_len);
-
-  do_cleanups (old_chain);
-
-  return retval;
+  return beneath->to_xfer_partial (beneath, object, annex, readbuf,
+				   writebuf, offset, len, xfered_len);
 }
 
 static void
@@ -712,34 +700,6 @@ sol_thread_alive (struct target_ops *ops
 /* These routines implement the lower half of the thread_db interface,
    i.e. the ps_* routines.  */
 
-/* Various versions of <proc_service.h> have slightly different
-   function prototypes.  In particular, we have
-
-   NEWER                        OLDER
-   struct ps_prochandle *       const struct ps_prochandle *
-   void*                        char*
-   const void*          	char*
-   int                  	size_t
-
-   Which one you have depends on the Solaris version and what patches
-   you've applied.  On the theory that there are only two major
-   variants, we have configure check the prototype of ps_pdwrite (),
-   and use that info to make appropriate typedefs here.  */
-
-#ifdef PROC_SERVICE_IS_OLD
-typedef const struct ps_prochandle *gdb_ps_prochandle_t;
-typedef char *gdb_ps_read_buf_t;
-typedef char *gdb_ps_write_buf_t;
-typedef int gdb_ps_size_t;
-typedef psaddr_t gdb_ps_addr_t;
-#else
-typedef struct ps_prochandle *gdb_ps_prochandle_t;
-typedef void *gdb_ps_read_buf_t;
-typedef const void *gdb_ps_write_buf_t;
-typedef size_t gdb_ps_size_t;
-typedef psaddr_t gdb_ps_addr_t;
-#endif
-
 /* The next four routines are called by libthread_db to tell us to
    stop and stop a particular process or lwp.  Since GDB ensures that
    these are all stopped by the time we call anything in thread_db,
@@ -748,7 +708,7 @@ typedef psaddr_t gdb_ps_addr_t;
 /* Process stop.  */
 
 ps_err_e
-ps_pstop (gdb_ps_prochandle_t ph)
+ps_pstop (struct ps_prochandle *ph)
 {
   return PS_OK;
 }
@@ -756,7 +716,7 @@ ps_pstop (gdb_ps_prochandle_t ph)
 /* Process continue.  */
 
 ps_err_e
-ps_pcontinue (gdb_ps_prochandle_t ph)
+ps_pcontinue (struct ps_prochandle *ph)
 {
   return PS_OK;
 }
@@ -764,7 +724,7 @@ ps_pcontinue (gdb_ps_prochandle_t ph)
 /* LWP stop.  */
 
 ps_err_e
-ps_lstop (gdb_ps_prochandle_t ph, lwpid_t lwpid)
+ps_lstop (struct ps_prochandle *ph, lwpid_t lwpid)
 {
   return PS_OK;
 }
@@ -772,7 +732,7 @@ ps_lstop (gdb_ps_prochandle_t ph, lwpid_
 /* LWP continue.  */
 
 ps_err_e
-ps_lcontinue (gdb_ps_prochandle_t ph, lwpid_t lwpid)
+ps_lcontinue (struct ps_prochandle *ph, lwpid_t lwpid)
 {
   return PS_OK;
 }
@@ -780,8 +740,8 @@ ps_lcontinue (gdb_ps_prochandle_t ph, lw
 /* Looks up the symbol LD_SYMBOL_NAME in the debugger's symbol table.  */
 
 ps_err_e
-ps_pglobal_lookup (gdb_ps_prochandle_t ph, const char *ld_object_name,
-		   const char *ld_symbol_name, gdb_ps_addr_t *ld_symbol_addr)
+ps_pglobal_lookup (struct ps_prochandle *ph, const char *ld_object_name,
+		   const char *ld_symbol_name, psaddr_t *ld_symbol_addr)
 {
   struct bound_minimal_symbol ms;
 
@@ -796,13 +756,12 @@ ps_pglobal_lookup (gdb_ps_prochandle_t p
 /* Common routine for reading and writing memory.  */
 
 static ps_err_e
-rw_common (int dowrite, const struct ps_prochandle *ph, gdb_ps_addr_t addr,
+rw_common (int dowrite, const struct ps_prochandle *ph, psaddr_t addr,
 	   gdb_byte *buf, int size)
 {
   int ret;
-  struct cleanup *old_chain;
 
-  old_chain = save_inferior_ptid ();
+  scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
 
   if (ptid_tid_p (inferior_ptid) || !target_thread_alive (inferior_ptid))
     {
@@ -826,16 +785,13 @@ rw_common (int dowrite, const struct ps_
   else
     ret = target_read_memory (addr, (gdb_byte *) buf, size);
 
-  do_cleanups (old_chain);
-
   return (ret == 0 ? PS_OK : PS_ERR);
 }
 
 /* Copies SIZE bytes from target process .data segment to debugger memory.  */
 
 ps_err_e
-ps_pdread (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
-	   gdb_ps_read_buf_t buf, gdb_ps_size_t size)
+ps_pdread (struct ps_prochandle *ph, psaddr_t addr, void *buf, size_t size)
 {
   return rw_common (0, ph, addr, (gdb_byte *) buf, size);
 }
@@ -843,8 +799,8 @@ ps_pdread (gdb_ps_prochandle_t ph, gdb_p
 /* Copies SIZE bytes from debugger memory .data segment to target process.  */
 
 ps_err_e
-ps_pdwrite (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
-	    gdb_ps_write_buf_t buf, gdb_ps_size_t size)
+ps_pdwrite (struct ps_prochandle *ph, psaddr_t addr,
+	    const void *buf, size_t size)
 {
   return rw_common (1, ph, addr, (gdb_byte *) buf, size);
 }
@@ -852,8 +808,7 @@ ps_pdwrite (gdb_ps_prochandle_t ph, gdb_
 /* Copies SIZE bytes from target process .text segment to debugger memory.  */
 
 ps_err_e
-ps_ptread (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
-	   gdb_ps_read_buf_t buf, gdb_ps_size_t size)
+ps_ptread (struct ps_prochandle *ph, psaddr_t addr, void *buf, size_t size)
 {
   return rw_common (0, ph, addr, (gdb_byte *) buf, size);
 }
@@ -861,8 +816,8 @@ ps_ptread (gdb_ps_prochandle_t ph, gdb_p
 /* Copies SIZE bytes from debugger memory .text segment to target process.  */
 
 ps_err_e
-ps_ptwrite (gdb_ps_prochandle_t ph, gdb_ps_addr_t addr,
-	    gdb_ps_write_buf_t buf, gdb_ps_size_t size)
+ps_ptwrite (struct ps_prochandle *ph, psaddr_t addr,
+	    const void *buf, size_t size)
 {
   return rw_common (1, ph, addr, (gdb_byte *) buf, size);
 }
@@ -870,7 +825,7 @@ ps_ptwrite (gdb_ps_prochandle_t ph, gdb_
 /* Get general-purpose registers for LWP.  */
 
 ps_err_e
-ps_lgetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, prgregset_t gregset)
+ps_lgetregs (struct ps_prochandle *ph, lwpid_t lwpid, prgregset_t gregset)
 {
   ptid_t ptid = ptid_build (ptid_get_pid (inferior_ptid), lwpid, 0);
   struct regcache *regcache
@@ -885,7 +840,7 @@ ps_lgetregs (gdb_ps_prochandle_t ph, lwp
 /* Set general-purpose registers for LWP.  */
 
 ps_err_e
-ps_lsetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
+ps_lsetregs (struct ps_prochandle *ph, lwpid_t lwpid,
 	     const prgregset_t gregset)
 {
   ptid_t ptid = ptid_build (ptid_get_pid (inferior_ptid), lwpid, 0);
@@ -913,7 +868,7 @@ ps_plog (const char *fmt, ...)
 /* Get size of extra register set.  Currently a noop.  */
 
 ps_err_e
-ps_lgetxregsize (gdb_ps_prochandle_t ph, lwpid_t lwpid, int *xregsize)
+ps_lgetxregsize (struct ps_prochandle *ph, lwpid_t lwpid, int *xregsize)
 {
   return PS_OK;
 }
@@ -921,7 +876,7 @@ ps_lgetxregsize (gdb_ps_prochandle_t ph,
 /* Get extra register set.  Currently a noop.  */
 
 ps_err_e
-ps_lgetxregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, caddr_t xregset)
+ps_lgetxregs (struct ps_prochandle *ph, lwpid_t lwpid, caddr_t xregset)
 {
   return PS_OK;
 }
@@ -929,7 +884,7 @@ ps_lgetxregs (gdb_ps_prochandle_t ph, lw
 /* Set extra register set.  Currently a noop.  */
 
 ps_err_e
-ps_lsetxregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, caddr_t xregset)
+ps_lsetxregs (struct ps_prochandle *ph, lwpid_t lwpid, caddr_t xregset)
 {
   return PS_OK;
 }
@@ -937,7 +892,7 @@ ps_lsetxregs (gdb_ps_prochandle_t ph, lw
 /* Get floating-point registers for LWP.  */
 
 ps_err_e
-ps_lgetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
+ps_lgetfpregs (struct ps_prochandle *ph, lwpid_t lwpid,
 	       prfpregset_t *fpregset)
 {
   ptid_t ptid = ptid_build (ptid_get_pid (inferior_ptid), lwpid, 0);
@@ -953,7 +908,7 @@ ps_lgetfpregs (gdb_ps_prochandle_t ph, l
 /* Set floating-point regs for LWP.  */
 
 ps_err_e
-ps_lsetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid,
+ps_lsetfpregs (struct ps_prochandle *ph, lwpid_t lwpid,
 	       const prfpregset_t * fpregset)
 {
   ptid_t ptid = ptid_build (ptid_get_pid (inferior_ptid), lwpid, 0);
@@ -972,7 +927,7 @@ ps_lsetfpregs (gdb_ps_prochandle_t ph, l
    (e.g. procfs) method, but this ought to work.  */
 
 ps_err_e
-ps_pdmodel (gdb_ps_prochandle_t ph, int *data_model)
+ps_pdmodel (struct ps_prochandle *ph, int *data_model)
 {
   if (exec_bfd == 0)
     *data_model = PR_MODEL_UNKNOWN;
@@ -993,7 +948,7 @@ ps_pdmodel (gdb_ps_prochandle_t ph, int 
    of libthread_db would fail because of ps_lgetLDT being undefined.  */
 
 ps_err_e
-ps_lgetLDT (gdb_ps_prochandle_t ph, lwpid_t lwpid,
+ps_lgetLDT (struct ps_prochandle *ph, lwpid_t lwpid,
 	    struct ssd *pldt)
 {
   /* NOTE: only used on Solaris, therefore OK to refer to procfs.c.  */
@@ -1167,9 +1122,9 @@ info_cb (const td_thrhandle_t *th, void 
    inferior.  */
 
 static void
-info_solthreads (char *args, int from_tty)
+info_solthreads (const char *args, int from_tty)
 {
-  p_td_ta_thr_iter (main_ta, info_cb, args,
+  p_td_ta_thr_iter (main_ta, info_cb, (void *) args,
 		    TD_THR_ANY_STATE, TD_THR_LOWEST_PRIORITY,
 		    TD_SIGNO_MASK, TD_THR_ANY_USER_FLAGS);
 }
@@ -1229,9 +1184,6 @@ init_sol_thread_ops (void)
   sol_thread_ops.to_magic = OPS_MAGIC;
 }
 
-/* Silence -Wmissing-prototypes.  */
-extern void _initialize_sol_thread (void);
-
 void
 _initialize_sol_thread (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/source.c ./gdb/source.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/source.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/source.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* List lines of source files for GDB, the GNU debugger.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -48,22 +48,10 @@
 #define OPEN_MODE (O_RDONLY | O_BINARY)
 #define FDOPEN_MODE FOPEN_RB
 
-/* Prototypes for exported functions.  */
-
-void _initialize_source (void);
-
 /* Prototypes for local functions.  */
 
 static int get_filename_and_charpos (struct symtab *, char **);
 
-static void reverse_search_command (char *, int);
-
-static void forward_search_command (char *, int);
-
-static void line_info (char *, int);
-
-static void source_info (char *, int);
-
 /* Path of directories to search for source files.
    Same format as the PATH environment variable's value.  */
 
@@ -182,7 +170,7 @@ get_lines_to_list (void)
 struct symtab_and_line
 get_current_source_symtab_and_line (void)
 {
-  struct symtab_and_line cursal = { 0 };
+  symtab_and_line cursal;
 
   cursal.pspace = current_source_pspace;
   cursal.symtab = current_source_symtab;
@@ -218,9 +206,9 @@ set_default_source_symtab_and_line (void
    NOTE: The returned sal pc and end fields are not valid.  */
    
 struct symtab_and_line
-set_current_source_symtab_and_line (const struct symtab_and_line *sal)
+set_current_source_symtab_and_line (const symtab_and_line &sal)
 {
-  struct symtab_and_line cursal = { 0 };
+  symtab_and_line cursal;
 
   cursal.pspace = current_source_pspace;
   cursal.symtab = current_source_symtab;
@@ -228,9 +216,9 @@ set_current_source_symtab_and_line (cons
   cursal.pc = 0;
   cursal.end = 0;
 
-  current_source_pspace = sal->pspace;
-  current_source_symtab = sal->symtab;
-  current_source_line = sal->line;
+  current_source_pspace = sal.pspace;
+  current_source_symtab = sal.symtab;
+  current_source_line = sal.line;
 
   /* Force the next "list" to center around the current line.  */
   clear_lines_listed_range ();
@@ -258,8 +246,6 @@ clear_current_source_symtab_and_line (vo
 void
 select_source_symtab (struct symtab *s)
 {
-  struct symtabs_and_lines sals;
-  struct symtab_and_line sal;
   struct objfile *ofp;
   struct compunit_symtab *cu;
 
@@ -278,10 +264,10 @@ select_source_symtab (struct symtab *s)
      if one exists.  */
   if (lookup_symbol (main_name (), 0, VAR_DOMAIN, 0).symbol)
     {
-      sals = decode_line_with_current_source (main_name (),
-					      DECODE_LINE_FUNFIRSTLINE);
-      sal = sals.sals[0];
-      xfree (sals.sals);
+      std::vector<symtab_and_line> sals
+	= decode_line_with_current_source (main_name (),
+					   DECODE_LINE_FUNFIRSTLINE);
+      const symtab_and_line &sal = sals[0];
       current_source_pspace = sal.pspace;
       current_source_symtab = sal.symtab;
       current_source_line = std::max (sal.line - (lines_to_list - 1), 1);
@@ -328,7 +314,8 @@ select_source_symtab (struct symtab *s)
    path list.  The theory is that set(show(dir)) should be a no-op.  */
 
 static void
-set_directories_command (char *args, int from_tty, struct cmd_list_element *c)
+set_directories_command (const char *args,
+			 int from_tty, struct cmd_list_element *c)
 {
   /* This is the value that was set.
      It needs to be processed to maintain $cdir:$cwd and remove dups.  */
@@ -425,7 +412,7 @@ init_source_path (void)
 /* Add zero or more directories to the front of the source path.  */
 
 static void
-directory_command (char *dirname, int from_tty)
+directory_command (const char *dirname, int from_tty)
 {
   dont_repeat ();
   /* FIXME, this goes to "delete dir"...  */
@@ -450,7 +437,7 @@ directory_command (char *dirname, int fr
    This will not be quoted so we must not treat spaces as separators.  */
 
 void
-directory_switch (char *dirname, int from_tty)
+directory_switch (const char *dirname, int from_tty)
 {
   add_path (dirname, &source_path, 0);
 }
@@ -458,7 +445,7 @@ directory_switch (char *dirname, int fro
 /* Add zero or more directories to the front of an arbitrary path.  */
 
 void
-mod_path (char *dirname, char **which_path)
+mod_path (const char *dirname, char **which_path)
 {
   add_path (dirname, which_path, 1);
 }
@@ -470,7 +457,7 @@ mod_path (char *dirname, char **which_pa
    as space or tab.  */
 
 void
-add_path (char *dirname, char **which_path, int parse_separators)
+add_path (const char *dirname, char **which_path, int parse_separators)
 {
   char *old = *which_path;
   int prefix = 0;
@@ -484,16 +471,12 @@ add_path (char *dirname, char **which_pa
 
   if (parse_separators)
     {
-      char **argv, **argvp;
-
       /* This will properly parse the space and tab separators
 	 and any quotes that may exist.  */
-      argv = gdb_buildargv (dirname);
+      gdb_argv argv (dirname);
 
-      for (argvp = argv; *argvp; argvp++)
-	dirnames_to_char_ptr_vec_append (&dir_vec, *argvp);
-
-      freeargv (argv);
+      for (char *arg : argv)
+	dirnames_to_char_ptr_vec_append (&dir_vec, arg);
     }
   else
     VEC_safe_push (char_ptr, dir_vec, xstrdup (dirname));
@@ -653,7 +636,7 @@ add_path (char *dirname, char **which_pa
 
 
 static void
-source_info (char *ignore, int from_tty)
+info_source_command (const char *ignore, int from_tty)
 {
   struct symtab *s = current_source_symtab;
   struct compunit_symtab *cust;
@@ -859,20 +842,18 @@ openp (const char *path, int opts, const
 	{
 	 /* See whether we need to expand the tilde.  */
 	  int newlen;
-	  char *tilde_expanded;
 
-	  tilde_expanded  = tilde_expand (dir);
+	  gdb::unique_xmalloc_ptr<char> tilde_expanded (tilde_expand (dir));
 
 	  /* First, realloc the filename buffer if too short.  */
-	  len = strlen (tilde_expanded);
+	  len = strlen (tilde_expanded.get ());
 	  newlen = len + strlen (string) + 2;
 	  if (newlen > alloclen)
 	    {
 	      alloclen = newlen;
 	      filename = (char *) alloca (alloclen);
 	    }
-	  strcpy (filename, tilde_expanded);
-	  xfree (tilde_expanded);
+	  strcpy (filename, tilde_expanded.get ());
 	}
       else
 	{
@@ -917,9 +898,9 @@ done:
       if (fd < 0)
 	*filename_opened = NULL;
       else if ((opts & OPF_RETURN_REALPATH) != 0)
-	*filename_opened = gdb_realpath (filename);
+	*filename_opened = gdb_realpath (filename).release ();
       else
-	*filename_opened = gdb_abspath (filename);
+	*filename_opened = gdb_abspath (filename).release ();
     }
 
   errno = last_errno;
@@ -1000,13 +981,12 @@ get_substitute_path_rule (const char *pa
 }
 
 /* If the user specified a source path substitution rule that applies
-   to PATH, then apply it and return the new path.  This new path must
-   be deallocated afterwards.
-   
+   to PATH, then apply it and return the new path.
+
    Return NULL if no substitution rule was specified by the user,
    or if no rule applied to the given PATH.  */
-   
-char *
+
+gdb::unique_xmalloc_ptr<char>
 rewrite_source_path (const char *path)
 {
   const struct substitute_path_rule *rule = get_substitute_path_rule (path);
@@ -1025,7 +1005,7 @@ rewrite_source_path (const char *path)
   strcpy (new_path, rule->to);
   strcat (new_path, path + from_len);
 
-  return new_path;
+  return gdb::unique_xmalloc_ptr<char> (new_path);
 }
 
 int
@@ -1036,7 +1016,6 @@ find_and_open_source (const char *filena
   char *path = source_path;
   const char *p;
   int result;
-  struct cleanup *cleanup;
 
   /* Quick way out if we already know its full name.  */
 
@@ -1045,7 +1024,7 @@ find_and_open_source (const char *filena
       /* The user may have requested that source paths be rewritten
          according to substitution rules he provided.  If a substitution
          rule applies to this path, then apply it.  */
-      char *rewritten_fullname = rewrite_source_path (*fullname);
+      char *rewritten_fullname = rewrite_source_path (*fullname).release ();
 
       if (rewritten_fullname != NULL)
         {
@@ -1056,7 +1035,7 @@ find_and_open_source (const char *filena
       result = gdb_open_cloexec (*fullname, OPEN_MODE, 0);
       if (result >= 0)
 	{
-	  char *lpath = gdb_realpath (*fullname);
+	  char *lpath = gdb_realpath (*fullname).release ();
 
 	  xfree (*fullname);
 	  *fullname = lpath;
@@ -1068,21 +1047,17 @@ find_and_open_source (const char *filena
       *fullname = NULL;
     }
 
-  cleanup = make_cleanup (null_cleanup, NULL);
-
+  gdb::unique_xmalloc_ptr<char> rewritten_dirname;
   if (dirname != NULL)
     {
       /* If necessary, rewrite the compilation directory name according
          to the source path substitution rules specified by the user.  */
 
-      char *rewritten_dirname = rewrite_source_path (dirname);
+      rewritten_dirname = rewrite_source_path (dirname);
 
       if (rewritten_dirname != NULL)
-        {
-          make_cleanup (xfree, rewritten_dirname);
-          dirname = rewritten_dirname;
-        }
-      
+	dirname = rewritten_dirname.get ();
+
       /* Replace a path entry of $cdir with the compilation directory
 	 name.  */
 #define	cdir_len	5
@@ -1104,17 +1079,15 @@ find_and_open_source (const char *filena
 	}
     }
 
+  gdb::unique_xmalloc_ptr<char> rewritten_filename;
   if (IS_ABSOLUTE_PATH (filename))
     {
       /* If filename is absolute path, try the source path
 	 substitution on it.  */
-      char *rewritten_filename = rewrite_source_path (filename);
+      rewritten_filename = rewrite_source_path (filename);
 
       if (rewritten_filename != NULL)
-        {
-          make_cleanup (xfree, rewritten_filename);
-          filename = rewritten_filename;
-        }
+	filename = rewritten_filename.get ();
     }
 
   result = openp (path, OPF_SEARCH_IN_PATH | OPF_RETURN_REALPATH, filename,
@@ -1128,7 +1101,6 @@ find_and_open_source (const char *filena
 			OPEN_MODE, fullname);
     }
 
-  do_cleanups (cleanup);
   return result;
 }
 
@@ -1170,23 +1142,20 @@ symtab_to_fullname (struct symtab *s)
 	close (fd);
       else
 	{
-	  char *fullname;
-	  struct cleanup *back_to;
+	  gdb::unique_xmalloc_ptr<char> fullname;
 
 	  /* rewrite_source_path would be applied by find_and_open_source, we
 	     should report the pathname where GDB tried to find the file.  */
 
 	  if (SYMTAB_DIRNAME (s) == NULL || IS_ABSOLUTE_PATH (s->filename))
-	    fullname = xstrdup (s->filename);
+	    fullname.reset (xstrdup (s->filename));
 	  else
-	    fullname = concat (SYMTAB_DIRNAME (s), SLASH_STRING,
-			       s->filename, (char *) NULL);
+	    fullname.reset (concat (SYMTAB_DIRNAME (s), SLASH_STRING,
+				    s->filename, (char *) NULL));
 
-	  back_to = make_cleanup (xfree, fullname);
-	  s->fullname = rewrite_source_path (fullname);
+	  s->fullname = rewrite_source_path (fullname.get ()).release ();
 	  if (s->fullname == NULL)
-	    s->fullname = xstrdup (fullname);
-	  do_cleanups (back_to);
+	    s->fullname = fullname.release ();
 	}
     } 
 
@@ -1353,9 +1322,7 @@ print_source_lines_base (struct symtab *
   int c;
   int desc;
   int noprint = 0;
-  FILE *stream;
   int nlines = stopline - line;
-  struct cleanup *cleanup;
   struct ui_out *uiout = current_uiout;
 
   /* Regardless of whether we can open the file, set current_source_symtab.  */
@@ -1448,15 +1415,14 @@ print_source_lines_base (struct symtab *
       perror_with_name (symtab_to_filename_for_display (s));
     }
 
-  stream = fdopen (desc, FDOPEN_MODE);
-  clearerr (stream);
-  cleanup = make_cleanup_fclose (stream);
+  gdb_file_up stream (fdopen (desc, FDOPEN_MODE));
+  clearerr (stream.get ());
 
   while (nlines-- > 0)
     {
       char buf[20];
 
-      c = fgetc (stream);
+      c = fgetc (stream.get ());
       if (c == EOF)
 	break;
       last_line_listed = current_source_line;
@@ -1479,12 +1445,12 @@ print_source_lines_base (struct symtab *
 	  else if (c == '\r')
 	    {
 	      /* Skip a \r character, but only before a \n.  */
-	      int c1 = fgetc (stream);
+	      int c1 = fgetc (stream.get ());
 
 	      if (c1 != '\n')
 		printf_filtered ("^%c", c + 0100);
 	      if (c1 != EOF)
-		ungetc (c1, stream);
+		ungetc (c1, stream.get ());
 	    }
 	  else
 	    {
@@ -1492,10 +1458,8 @@ print_source_lines_base (struct symtab *
 	      uiout->text (buf);
 	    }
 	}
-      while (c != '\n' && (c = fgetc (stream)) >= 0);
+      while (c != '\n' && (c = fgetc (stream.get ())) >= 0);
     }
-
-  do_cleanups (cleanup);
 }
 
 /* Show source lines from the file of symtab S, starting with line
@@ -1513,43 +1477,38 @@ print_source_lines (struct symtab *s, in
 /* Print info on range of pc's in a specified line.  */
 
 static void
-line_info (char *arg, int from_tty)
+info_line_command (const char *arg, int from_tty)
 {
-  struct symtabs_and_lines sals;
-  struct symtab_and_line sal;
   CORE_ADDR start_pc, end_pc;
-  int i;
-  struct cleanup *cleanups;
 
-  init_sal (&sal);		/* initialize to zeroes */
+  std::vector<symtab_and_line> decoded_sals;
+  symtab_and_line curr_sal;
+  gdb::array_view<symtab_and_line> sals;
 
   if (arg == 0)
     {
-      sal.symtab = current_source_symtab;
-      sal.pspace = current_program_space;
+      curr_sal.symtab = current_source_symtab;
+      curr_sal.pspace = current_program_space;
       if (last_line_listed != 0)
-	sal.line = last_line_listed;
+	curr_sal.line = last_line_listed;
       else
-	sal.line = current_source_line;
+	curr_sal.line = current_source_line;
 
-      sals.nelts = 1;
-      sals.sals = XNEW (struct symtab_and_line);
-      sals.sals[0] = sal;
+      sals = curr_sal;
     }
   else
     {
-      sals = decode_line_with_last_displayed (arg, DECODE_LINE_LIST_MODE);
+      decoded_sals = decode_line_with_last_displayed (arg,
+						      DECODE_LINE_LIST_MODE);
+      sals = decoded_sals;
 
       dont_repeat ();
     }
 
-  cleanups = make_cleanup (xfree, sals.sals);
-
   /* C++  More than one line may have been specified, as when the user
      specifies an overloaded function name.  Print info on them all.  */
-  for (i = 0; i < sals.nelts; i++)
+  for (const auto &sal : sals)
     {
-      sal = sals.sals[i];
       if (sal.pspace != current_program_space)
 	continue;
 
@@ -1610,7 +1569,7 @@ line_info (char *arg, int from_tty)
 
 	  /* If this is the only line, show the source code.  If it could
 	     not find the file, don't do anything special.  */
-	  if (annotation_level && sals.nelts == 1)
+	  if (annotation_level && sals.size () == 1)
 	    identify_source_line (sal.symtab, sal.line, 0, start_pc);
 	}
       else
@@ -1620,17 +1579,15 @@ line_info (char *arg, int from_tty)
 	printf_filtered (_("Line number %d is out of range for \"%s\".\n"),
 			 sal.line, symtab_to_filename_for_display (sal.symtab));
     }
-  do_cleanups (cleanups);
 }
 
 /* Commands to search the source file for a regexp.  */
 
 static void
-forward_search_command (char *regex, int from_tty)
+forward_search_command (const char *regex, int from_tty)
 {
   int c;
   int desc;
-  FILE *stream;
   int line;
   char *msg;
   struct cleanup *cleanups;
@@ -1659,9 +1616,8 @@ forward_search_command (char *regex, int
     perror_with_name (symtab_to_filename_for_display (current_source_symtab));
 
   discard_cleanups (cleanups);
-  stream = fdopen (desc, FDOPEN_MODE);
-  clearerr (stream);
-  cleanups = make_cleanup_fclose (stream);
+  gdb_file_up stream (fdopen (desc, FDOPEN_MODE));
+  clearerr (stream.get ());
   while (1)
     {
       static char *buf = NULL;
@@ -1672,7 +1628,7 @@ forward_search_command (char *regex, int
       buf = (char *) xmalloc (cursize);
       p = buf;
 
-      c = fgetc (stream);
+      c = fgetc (stream.get ());
       if (c == EOF)
 	break;
       do
@@ -1686,7 +1642,7 @@ forward_search_command (char *regex, int
 	      cursize = newsize;
 	    }
 	}
-      while (c != '\n' && (c = fgetc (stream)) >= 0);
+      while (c != '\n' && (c = fgetc (stream.get ())) >= 0);
 
       /* Remove the \r, if any, at the end of the line, otherwise
          regular expressions that end with $ or \n won't work.  */
@@ -1701,7 +1657,6 @@ forward_search_command (char *regex, int
       if (re_exec (buf) > 0)
 	{
 	  /* Match!  */
-	  do_cleanups (cleanups);
 	  print_source_lines (current_source_symtab, line, line + 1, 0);
 	  set_internalvar_integer (lookup_internalvar ("_"), line);
 	  current_source_line = std::max (line - lines_to_list / 2, 1);
@@ -1711,15 +1666,13 @@ forward_search_command (char *regex, int
     }
 
   printf_filtered (_("Expression not found\n"));
-  do_cleanups (cleanups);
 }
 
 static void
-reverse_search_command (char *regex, int from_tty)
+reverse_search_command (const char *regex, int from_tty)
 {
   int c;
   int desc;
-  FILE *stream;
   int line;
   char *msg;
   struct cleanup *cleanups;
@@ -1748,23 +1701,22 @@ reverse_search_command (char *regex, int
     perror_with_name (symtab_to_filename_for_display (current_source_symtab));
 
   discard_cleanups (cleanups);
-  stream = fdopen (desc, FDOPEN_MODE);
-  clearerr (stream);
-  cleanups = make_cleanup_fclose (stream);
+  gdb_file_up stream (fdopen (desc, FDOPEN_MODE));
+  clearerr (stream.get ());
   while (line > 1)
     {
 /* FIXME!!!  We walk right off the end of buf if we get a long line!!!  */
       char buf[4096];		/* Should be reasonable???  */
       char *p = buf;
 
-      c = fgetc (stream);
+      c = fgetc (stream.get ());
       if (c == EOF)
 	break;
       do
 	{
 	  *p++ = c;
 	}
-      while (c != '\n' && (c = fgetc (stream)) >= 0);
+      while (c != '\n' && (c = fgetc (stream.get ())) >= 0);
 
       /* Remove the \r, if any, at the end of the line, otherwise
          regular expressions that end with $ or \n won't work.  */
@@ -1779,25 +1731,23 @@ reverse_search_command (char *regex, int
       if (re_exec (buf) > 0)
 	{
 	  /* Match!  */
-	  do_cleanups (cleanups);
 	  print_source_lines (current_source_symtab, line, line + 1, 0);
 	  set_internalvar_integer (lookup_internalvar ("_"), line);
 	  current_source_line = std::max (line - lines_to_list / 2, 1);
 	  return;
 	}
       line--;
-      if (fseek (stream, current_source_symtab->line_charpos[line - 1], 0) < 0)
+      if (fseek (stream.get (),
+		 current_source_symtab->line_charpos[line - 1], 0) < 0)
 	{
 	  const char *filename;
 
-	  do_cleanups (cleanups);
 	  filename = symtab_to_filename_for_display (current_source_symtab);
 	  perror_with_name (filename);
 	}
     }
 
   printf_filtered (_("Expression not found\n"));
-  do_cleanups (cleanups);
   return;
 }
 
@@ -1893,15 +1843,12 @@ delete_substitute_path_rule (struct subs
 /* Implement the "show substitute-path" command.  */
 
 static void
-show_substitute_path_command (char *args, int from_tty)
+show_substitute_path_command (const char *args, int from_tty)
 {
   struct substitute_path_rule *rule = substitute_path_rules;
-  char **argv;
   char *from = NULL;
-  struct cleanup *cleanup;
   
-  argv = gdb_buildargv (args);
-  cleanup = make_cleanup_freeargv (argv);
+  gdb_argv argv (args);
 
   /* We expect zero or one argument.  */
 
@@ -1925,24 +1872,20 @@ show_substitute_path_command (char *args
         printf_filtered ("  `%s' -> `%s'.\n", rule->from, rule->to);
       rule = rule->next;
     }
-
-  do_cleanups (cleanup);
 }
 
 /* Implement the "unset substitute-path" command.  */
 
 static void
-unset_substitute_path_command (char *args, int from_tty)
+unset_substitute_path_command (const char *args, int from_tty)
 {
   struct substitute_path_rule *rule = substitute_path_rules;
-  char **argv = gdb_buildargv (args);
+  gdb_argv argv (args);
   char *from = NULL;
   int rule_found = 0;
-  struct cleanup *cleanup;
 
   /* This function takes either 0 or 1 argument.  */
 
-  cleanup = make_cleanup_freeargv (argv);
   if (argv != NULL && argv[0] != NULL && argv[1] != NULL)
     error (_("Incorrect usage, too many arguments in command"));
 
@@ -1980,21 +1923,16 @@ unset_substitute_path_command (char *arg
     error (_("No substitution rule defined for `%s'"), from);
 
   forget_cached_source_info ();
-
-  do_cleanups (cleanup);
 }
 
 /* Add a new source path substitution rule.  */
 
 static void
-set_substitute_path_command (char *args, int from_tty)
+set_substitute_path_command (const char *args, int from_tty)
 {
-  char **argv;
   struct substitute_path_rule *rule;
-  struct cleanup *cleanup;
   
-  argv = gdb_buildargv (args);
-  cleanup = make_cleanup_freeargv (argv);
+  gdb_argv argv (args);
 
   if (argv == NULL || argv[0] == NULL || argv [1] == NULL)
     error (_("Incorrect usage, too few arguments in command"));
@@ -2021,8 +1959,6 @@ set_substitute_path_command (char *args,
 
   add_substitute_path_rule (argv[0], argv[1]);
   forget_cached_source_info ();
-
-  do_cleanups (cleanup);
 }
 
 
@@ -2070,10 +2006,10 @@ Setting the value to an empty string set
 			    show_directories_command,
 			    &setlist, &showlist);
 
-  add_info ("source", source_info,
+  add_info ("source", info_source_command,
 	    _("Information about the current source file."));
 
-  add_info ("line", line_info, _("\
+  add_info ("line", info_line_command, _("\
 Core addresses of the code for a source line.\n\
 Line can be specified as\n\
   LINENUM, to list around that line in current file,\n\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/source.h ./gdb/source.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/source.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/source.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* List lines of source files for GDB, the GNU debugger.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -48,7 +48,7 @@ extern int find_and_open_source (const c
    negative number for error.  */
 extern int open_source_file (struct symtab *s);
 
-extern char *rewrite_source_path (const char *path);
+extern gdb::unique_xmalloc_ptr<char> rewrite_source_path (const char *path);
 
 extern const char *symtab_to_fullname (struct symtab *s);
 
@@ -91,7 +91,8 @@ extern void set_default_source_symtab_an
    (the returned sal pc and end fields are not valid.)
    and set the current default to whatever is in SAL.
    NOTE: The returned sal pc and end fields are not valid.  */
-extern struct symtab_and_line set_current_source_symtab_and_line (const struct symtab_and_line *);
+extern symtab_and_line set_current_source_symtab_and_line
+  (const symtab_and_line &sal);
 
 /* Reset any information stored about a default file and line to print.  */
 extern void clear_current_source_symtab_and_line (void);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-fbsd-nat.c ./gdb/sparc64-fbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-fbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc64-fbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for FreeBSD/sparc64.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -58,10 +58,6 @@ sparc64fbsd_kvm_supply_pcb (struct regca
 
   return 1;
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparc64fbsd_nat (void);
 
 void
 _initialize_sparc64fbsd_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-fbsd-tdep.c ./gdb/sparc64-fbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-fbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc64-fbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for FreeBSD/sparc64.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -241,9 +241,6 @@ sparc64fbsd_init_abi (struct gdbarch_inf
     (gdbarch, svr4_lp64_fetch_link_map_offsets);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparc64fbsd_tdep (void);
-
 void
 _initialize_sparc64fbsd_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-linux-nat.c ./gdb/sparc64-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc64-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for GNU/Linux UltraSPARC.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -69,9 +69,6 @@ fill_fpregset (const struct regcache *re
   sparc64_collect_fpregset (&sparc64_bsd_fpregmap, regcache, regnum, fpregs);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparc64_linux_nat (void);
-
 void
 _initialize_sparc64_linux_nat (void)
 {
@@ -89,5 +86,8 @@ _initialize_sparc64_linux_nat (void)
   /* Register the target.  */
   linux_nat_add_target (t);
 
+  /* ADI support */
+  linux_nat_set_forget_process (t, sparc64_forget_process);
+
   sparc_gregmap = &sparc64_linux_ptrace_gregmap;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-linux-tdep.c ./gdb/sparc64-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc64-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux UltraSPARC.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -33,6 +33,17 @@
 #include "xml-syscall.h"
 #include "linux-tdep.h"
 
+/* ADI specific si_code */
+#ifndef SEGV_ACCADI
+#define SEGV_ACCADI	3
+#endif
+#ifndef SEGV_ADIDERR
+#define SEGV_ADIDERR	4
+#endif
+#ifndef SEGV_ADIPERR
+#define SEGV_ADIPERR	5
+#endif
+
 /* The syscall's XML filename for sparc 64-bit.  */
 #define XML_SYSCALL_FILENAME_SPARC64 "syscalls/sparc64-linux.xml"
 
@@ -104,6 +115,62 @@ sparc64_linux_sigframe_init (const struc
     }
   trad_frame_set_id (this_cache, frame_id_build (base, func));
 }
+
+/* sparc64 GNU/Linux implementation of the handle_segmentation_fault
+   gdbarch hook.
+   Displays information related to ADI memory corruptions.  */
+
+void
+sparc64_linux_handle_segmentation_fault (struct gdbarch *gdbarch,
+				      struct ui_out *uiout)
+{
+  if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word != 64)
+    return;
+
+  CORE_ADDR addr = 0;
+  long si_code = 0;
+
+  TRY
+    {
+      /* Evaluate si_code to see if the segfault is ADI related.  */
+      si_code = parse_and_eval_long ("$_siginfo.si_code\n");
+
+      if (si_code >= SEGV_ACCADI && si_code <= SEGV_ADIPERR)
+        addr = parse_and_eval_long ("$_siginfo._sifields._sigfault.si_addr");
+    }
+  CATCH (exception, RETURN_MASK_ALL)
+    {
+      return;
+    }
+  END_CATCH
+
+  /* Print out ADI event based on sig_code value */
+  switch (si_code)
+    {
+    case SEGV_ACCADI:	/* adi not enabled */
+      uiout->text ("\n");
+      uiout->field_string ("sigcode-meaning", _("ADI disabled"));
+      uiout->text (_(" while accessing address "));
+      uiout->field_fmt ("bound-access", "%s", paddress (gdbarch, addr));
+      break;
+    case SEGV_ADIDERR:	/* disrupting mismatch */
+      uiout->text ("\n");
+      uiout->field_string ("sigcode-meaning", _("ADI deferred mismatch"));
+      uiout->text (_(" while accessing address "));
+      uiout->field_fmt ("bound-access", "%s", paddress (gdbarch, addr));
+      break;
+    case SEGV_ADIPERR:	/* precise mismatch */
+      uiout->text ("\n");
+      uiout->field_string ("sigcode-meaning", _("ADI precise mismatch"));
+      uiout->text (_(" while accessing address "));
+      uiout->field_fmt ("bound-access", "%s", paddress (gdbarch, addr));
+      break;
+    default:
+      break;
+    }
+
+}
+
 
 /* Return the address of a system call's alternative return
    address.  */
@@ -194,7 +261,7 @@ sparc64_linux_collect_core_fpregset (con
 static void
 sparc64_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
+  struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ());
   ULONGEST state;
 
   regcache_cooked_write_unsigned (regcache, tdep->pc_regnum, pc);
@@ -338,11 +405,9 @@ sparc64_linux_init_abi (struct gdbarch_i
   set_xml_syscall_file_name (gdbarch, XML_SYSCALL_FILENAME_SPARC64);
   set_gdbarch_get_syscall_number (gdbarch,
                                   sparc64_linux_get_syscall_number);
+  set_gdbarch_handle_segmentation_fault (gdbarch,
+					 sparc64_linux_handle_segmentation_fault);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern void _initialize_sparc64_linux_tdep (void);
 
 void
 _initialize_sparc64_linux_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-nat.c ./gdb/sparc64-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc64-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for GNU/Linux UltraSPARC.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -68,10 +68,6 @@ sparc64_fpregset_supplies_p (struct gdba
 
   return 0;
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparc64_nat (void);
 
 void
 _initialize_sparc64_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-nbsd-nat.c ./gdb/sparc64-nbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-nbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc64-nbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for NetBSD/sparc64.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -34,7 +34,7 @@ sparc64nbsd_supply_gregset (const struct
 			    struct regcache *regcache,
 			    int regnum, const void *gregs)
 {
-  int sparc32 = (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 32);
+  int sparc32 = (gdbarch_ptr_bit (regcache->arch ()) == 32);
 
   if (sparc32)
     sparc32_supply_gregset (&sparc32nbsd_gregmap, regcache, regnum, gregs);
@@ -47,7 +47,7 @@ sparc64nbsd_collect_gregset (const struc
 			     const struct regcache *regcache,
 			     int regnum, void *gregs)
 {
-  int sparc32 = (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 32);
+  int sparc32 = (gdbarch_ptr_bit (regcache->arch ()) == 32);
 
   if (sparc32)
     sparc32_collect_gregset (&sparc32nbsd_gregmap, regcache, regnum, gregs);
@@ -60,7 +60,7 @@ sparc64nbsd_supply_fpregset (const struc
 			     struct regcache *regcache,
 			     int regnum, const void *fpregs)
 {
-  int sparc32 = (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 32);
+  int sparc32 = (gdbarch_ptr_bit (regcache->arch ()) == 32);
 
   if (sparc32)
     sparc32_supply_fpregset (&sparc32_bsd_fpregmap, regcache, regnum, fpregs);
@@ -73,7 +73,7 @@ sparc64nbsd_collect_fpregset (const stru
 			      const struct regcache *regcache,
 			      int regnum, void *fpregs)
 {
-  int sparc32 = (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 32);
+  int sparc32 = (gdbarch_ptr_bit (regcache->arch ()) == 32);
 
   if (sparc32)
     sparc32_collect_fpregset (&sparc32_bsd_fpregmap, regcache, regnum, fpregs);
@@ -167,10 +167,6 @@ sparc64nbsd_supply_pcb (struct regcache 
   return 1;
 }
 
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparc64nbsd_nat (void);
-
 void
 _initialize_sparc64nbsd_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-nbsd-tdep.c ./gdb/sparc64-nbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-nbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc64-nbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for NetBSD/sparc64.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Based on code contributed by Wasabi Systems, Inc.
 
    This file is part of GDB.
@@ -267,10 +267,6 @@ sparc64nbsd_init_abi (struct gdbarch_inf
   set_solib_svr4_fetch_link_map_offsets
     (gdbarch, svr4_lp64_fetch_link_map_offsets);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparc64nbsd_tdep (void);
 
 void
 _initialize_sparc64nbsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-obsd-nat.c ./gdb/sparc64-obsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-obsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc64-obsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for OpenBSD/sparc64.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -106,10 +106,6 @@ sparc64obsd_supply_pcb (struct regcache 
   return 1;
 }
 
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparc64obsd_nat (void);
-
 void
 _initialize_sparc64obsd_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-obsd-tdep.c ./gdb/sparc64-obsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-obsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc64-obsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for OpenBSD/sparc64.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -323,7 +323,7 @@ static void
 sparc64obsd_supply_uthread (struct regcache *regcache,
 			    int regnum, CORE_ADDR addr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR fp, fp_addr = addr + SPARC64OBSD_UTHREAD_FP_OFFSET;
   gdb_byte buf[8];
@@ -368,7 +368,7 @@ static void
 sparc64obsd_collect_uthread(const struct regcache *regcache,
 			    int regnum, CORE_ADDR addr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR sp;
   gdb_byte buf[8];
@@ -439,10 +439,6 @@ sparc64obsd_init_abi (struct gdbarch_inf
   bsd_uthread_set_supply_uthread (gdbarch, sparc64obsd_supply_uthread);
   bsd_uthread_set_collect_uthread (gdbarch, sparc64obsd_collect_uthread);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparc64obsd_tdep (void);
 
 void
 _initialize_sparc64obsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-sol2-tdep.c ./gdb/sparc64-sol2-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-sol2-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc64-sol2-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Solaris UltraSPARC.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -242,10 +242,6 @@ sparc64_sol2_init_abi (struct gdbarch_in
   /* How to print LWP PTIDs from core files.  */
   set_gdbarch_core_pid_to_str (gdbarch, sol2_core_pid_to_str);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparc64_sol2_tdep (void);
 
 void
 _initialize_sparc64_sol2_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-tdep.c ./gdb/sparc64-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc64-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for UltraSPARC.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,7 +20,6 @@
 #include "defs.h"
 #include "arch-utils.h"
 #include "dwarf2-frame.h"
-#include "floatformat.h"
 #include "frame.h"
 #include "frame-base.h"
 #include "frame-unwind.h"
@@ -46,6 +45,509 @@
    sparc64_-prefix for 64-bit specific code and the sparc_-prefix for
    code can handle both.  */
 
+/* The M7 processor supports an Application Data Integrity (ADI) feature
+   that detects invalid data accesses.  When software allocates memory and 
+   enables ADI on the allocated memory, it chooses a 4-bit version number, 
+   sets the version in the upper 4 bits of the 64-bit pointer to that data, 
+   and stores the 4-bit version in every cacheline of the object.  Hardware 
+   saves the latter in spare bits in the cache and memory hierarchy. On each 
+   load and store, the processor compares the upper 4 VA (virtual address) bits 
+   to the cacheline's version. If there is a mismatch, the processor generates
+   a version mismatch trap which can be either precise or disrupting.
+   The trap is an error condition which the kernel delivers to the process
+   as a SIGSEGV signal.
+
+   The upper 4 bits of the VA represent a version and are not part of the
+   true address.  The processor clears these bits and sign extends bit 59
+   to generate the true address.
+
+   Note that 32-bit applications cannot use ADI. */
+
+
+#include <algorithm>
+#include "cli/cli-utils.h"
+#include "gdbcmd.h"
+#include "auxv.h"
+
+#define MAX_PROC_NAME_SIZE sizeof("/proc/99999/lwp/9999/adi/lstatus")
+
+/* ELF Auxiliary vectors */
+#ifndef AT_ADI_BLKSZ
+#define AT_ADI_BLKSZ    34
+#endif
+#ifndef AT_ADI_NBITS
+#define AT_ADI_NBITS    35
+#endif
+#ifndef AT_ADI_UEONADI
+#define AT_ADI_UEONADI  36
+#endif
+
+/* ADI command list.  */
+static struct cmd_list_element *sparc64adilist = NULL;
+
+/* ADI stat settings.  */
+typedef struct
+{
+  /* The ADI block size.  */
+  unsigned long blksize;
+
+  /* Number of bits used for an ADI version tag which can be
+     used together with the shift value for an ADI version tag
+     to encode or extract the ADI version value in a pointer.  */
+  unsigned long nbits;
+
+  /* The maximum ADI version tag value supported.  */
+  int max_version;
+
+  /* ADI version tag file.  */
+  int tag_fd = 0;
+
+  /* ADI availability check has been done.  */
+  bool checked_avail = false;
+
+  /* ADI is available.  */
+  bool is_avail = false;
+
+} adi_stat_t;
+
+/* Per-process ADI stat info.  */
+
+typedef struct sparc64_adi_info
+{
+  sparc64_adi_info (pid_t pid_)
+    : pid (pid_)
+  {}
+
+  /* The process identifier.  */
+  pid_t pid;
+
+  /* The ADI stat.  */
+  adi_stat_t stat = {};
+
+} sparc64_adi_info;
+
+static std::forward_list<sparc64_adi_info> adi_proc_list;
+
+
+/* Get ADI info for process PID, creating one if it doesn't exist.  */
+
+static sparc64_adi_info * 
+get_adi_info_proc (pid_t pid)
+{
+  auto found = std::find_if (adi_proc_list.begin (), adi_proc_list.end (),
+                             [&pid] (const sparc64_adi_info &info)
+                             {
+                               return info.pid == pid;
+                             });
+
+  if (found == adi_proc_list.end ())
+    {
+      adi_proc_list.emplace_front (pid);
+      return &adi_proc_list.front ();
+    }
+  else
+    {
+      return &(*found);
+    }
+}
+
+static adi_stat_t 
+get_adi_info (pid_t pid)
+{
+  sparc64_adi_info *proc;
+
+  proc = get_adi_info_proc (pid);
+  return proc->stat;
+}
+
+/* Is called when GDB is no longer debugging process PID.  It
+   deletes data structure that keeps track of the ADI stat.  */
+
+void
+sparc64_forget_process (pid_t pid)
+{
+  int target_errno;
+
+  for (auto pit = adi_proc_list.before_begin (),
+	 it = std::next (pit);
+       it != adi_proc_list.end ();
+       )
+    {
+      if ((*it).pid == pid)
+	{
+          if ((*it).stat.tag_fd > 0) 
+            target_fileio_close ((*it).stat.tag_fd, &target_errno);
+	  adi_proc_list.erase_after (pit);
+          break;
+	}
+      else
+	pit = it++;
+    }
+
+}
+
+static void
+info_adi_command (const char *args, int from_tty)
+{
+  printf_unfiltered ("\"adi\" must be followed by \"examine\" "
+                     "or \"assign\".\n");
+  help_list (sparc64adilist, "adi ", all_commands, gdb_stdout);
+}
+
+/* Read attributes of a maps entry in /proc/[pid]/adi/maps.  */
+
+static void
+read_maps_entry (const char *line,
+              ULONGEST *addr, ULONGEST *endaddr)
+{
+  const char *p = line;
+
+  *addr = strtoulst (p, &p, 16);
+  if (*p == '-')
+    p++;
+
+  *endaddr = strtoulst (p, &p, 16);
+}
+
+/* Check if ADI is available.  */
+
+static bool
+adi_available (void)
+{
+  pid_t pid = ptid_get_pid (inferior_ptid);
+  sparc64_adi_info *proc = get_adi_info_proc (pid);
+  CORE_ADDR value;
+
+  if (proc->stat.checked_avail)
+    return proc->stat.is_avail;
+
+  proc->stat.checked_avail = true;
+  if (target_auxv_search (&current_target, AT_ADI_BLKSZ, &value) <= 0)
+    return false;
+  proc->stat.blksize = value;
+  target_auxv_search (&current_target, AT_ADI_NBITS, &value);
+  proc->stat.nbits = value;
+  proc->stat.max_version = (1 << proc->stat.nbits) - 2;
+  proc->stat.is_avail = true;
+
+  return proc->stat.is_avail;
+}
+
+/* Normalize a versioned address - a VA with ADI bits (63-60) set.  */
+
+static CORE_ADDR
+adi_normalize_address (CORE_ADDR addr)
+{
+  adi_stat_t ast = get_adi_info (ptid_get_pid (inferior_ptid));
+
+  if (ast.nbits)
+    {
+      /* Clear upper bits.  */
+      addr &= ((uint64_t) -1) >> ast.nbits;
+
+      /* Sign extend.  */
+      CORE_ADDR signbit = (uint64_t) 1 << (64 - ast.nbits - 1);
+      return (addr ^ signbit) - signbit;
+    }
+  return addr;
+}
+
+/* Align a normalized address - a VA with bit 59 sign extended into 
+   ADI bits.  */
+
+static CORE_ADDR
+adi_align_address (CORE_ADDR naddr)
+{
+  adi_stat_t ast = get_adi_info (ptid_get_pid (inferior_ptid));
+
+  return (naddr - (naddr % ast.blksize)) / ast.blksize;
+}
+
+/* Convert a byte count to count at a ratio of 1:adi_blksz.  */
+
+static int
+adi_convert_byte_count (CORE_ADDR naddr, int nbytes, CORE_ADDR locl)
+{
+  adi_stat_t ast = get_adi_info (ptid_get_pid (inferior_ptid));
+
+  return ((naddr + nbytes + ast.blksize - 1) / ast.blksize) - locl;
+}
+
+/* The /proc/[pid]/adi/tags file, which allows gdb to get/set ADI
+   version in a target process, maps linearly to the address space
+   of the target process at a ratio of 1:adi_blksz.
+
+   A read (or write) at offset K in the file returns (or modifies)
+   the ADI version tag stored in the cacheline containing address
+   K * adi_blksz, encoded as 1 version tag per byte.  The allowed
+   version tag values are between 0 and adi_stat.max_version.  */
+
+static int
+adi_tag_fd (void)
+{
+  pid_t pid = ptid_get_pid (inferior_ptid);
+  sparc64_adi_info *proc = get_adi_info_proc (pid);
+
+  if (proc->stat.tag_fd != 0)
+    return proc->stat.tag_fd;
+
+  char cl_name[MAX_PROC_NAME_SIZE];
+  snprintf (cl_name, sizeof(cl_name), "/proc/%ld/adi/tags", (long) pid);
+  int target_errno;
+  proc->stat.tag_fd = target_fileio_open (NULL, cl_name, O_RDWR|O_EXCL, 
+                                          0, &target_errno);
+  return proc->stat.tag_fd;
+}
+
+/* Check if an address set is ADI enabled, using /proc/[pid]/adi/maps
+   which was exported by the kernel and contains the currently ADI
+   mapped memory regions and their access permissions.  */
+
+static bool
+adi_is_addr_mapped (CORE_ADDR vaddr, size_t cnt)
+{
+  char filename[MAX_PROC_NAME_SIZE];
+  size_t i = 0;
+
+  pid_t pid = ptid_get_pid (inferior_ptid);
+  snprintf (filename, sizeof filename, "/proc/%ld/adi/maps", (long) pid);
+  gdb::unique_xmalloc_ptr<char> data
+    = target_fileio_read_stralloc (NULL, filename);
+  if (data)
+    {
+      adi_stat_t adi_stat = get_adi_info (pid);
+      char *line;
+      for (line = strtok (data.get (), "\n"); line; line = strtok (NULL, "\n"))
+        {
+          ULONGEST addr, endaddr;
+
+          read_maps_entry (line, &addr, &endaddr);
+
+          while (((vaddr + i) * adi_stat.blksize) >= addr
+                 && ((vaddr + i) * adi_stat.blksize) < endaddr)
+            {
+              if (++i == cnt)
+		return true;
+            }
+        }
+      }
+    else
+      warning (_("unable to open /proc file '%s'"), filename);
+
+  return false;
+}
+
+/* Read ADI version tag value for memory locations starting at "VADDR"
+   for "SIZE" number of bytes.  */
+
+static int
+adi_read_versions (CORE_ADDR vaddr, size_t size, gdb_byte *tags)
+{
+  int fd = adi_tag_fd ();
+  if (fd == -1)
+    return -1;
+
+  if (!adi_is_addr_mapped (vaddr, size))
+    {
+      adi_stat_t ast = get_adi_info (ptid_get_pid (inferior_ptid));
+      error(_("Address at %s is not in ADI maps"),
+            paddress (target_gdbarch (), vaddr * ast.blksize));
+    }
+
+  int target_errno;
+  return target_fileio_pread (fd, tags, size, vaddr, &target_errno);
+}
+
+/* Write ADI version tag for memory locations starting at "VADDR" for
+ "SIZE" number of bytes to "TAGS".  */
+
+static int
+adi_write_versions (CORE_ADDR vaddr, size_t size, unsigned char *tags)
+{
+  int fd = adi_tag_fd ();
+  if (fd == -1)
+    return -1;
+
+  if (!adi_is_addr_mapped (vaddr, size))
+    {
+      adi_stat_t ast = get_adi_info (ptid_get_pid (inferior_ptid));
+      error(_("Address at %s is not in ADI maps"),
+            paddress (target_gdbarch (), vaddr * ast.blksize));
+    }
+
+  int target_errno;
+  return target_fileio_pwrite (fd, tags, size, vaddr, &target_errno);
+}
+
+/* Print ADI version tag value in "TAGS" for memory locations starting
+   at "VADDR" with number of "CNT".  */
+
+static void
+adi_print_versions (CORE_ADDR vaddr, size_t cnt, gdb_byte *tags)
+{
+  int v_idx = 0;
+  const int maxelts = 8;  /* # of elements per line */
+
+  adi_stat_t adi_stat = get_adi_info (ptid_get_pid (inferior_ptid));
+
+  while (cnt > 0)
+    {
+      QUIT;
+      printf_filtered ("%s:\t",
+	               paddress (target_gdbarch (), vaddr * adi_stat.blksize));
+      for (int i = maxelts; i > 0 && cnt > 0; i--, cnt--)
+        {
+          if (tags[v_idx] == 0xff)    /* no version tag */
+            printf_filtered ("-");
+          else
+            printf_filtered ("%1X", tags[v_idx]);
+	  if (cnt > 1)
+            printf_filtered (" ");
+          ++v_idx;
+        }
+      printf_filtered ("\n");
+      gdb_flush (gdb_stdout);
+      vaddr += maxelts;
+    }
+}
+
+static void
+do_examine (CORE_ADDR start, int bcnt)
+{
+  CORE_ADDR vaddr = adi_normalize_address (start);
+
+  CORE_ADDR vstart = adi_align_address (vaddr);
+  int cnt = adi_convert_byte_count (vaddr, bcnt, vstart);
+  gdb::def_vector<gdb_byte> buf (cnt);
+  int read_cnt = adi_read_versions (vstart, cnt, buf.data ());
+  if (read_cnt == -1)
+    error (_("No ADI information"));
+  else if (read_cnt < cnt)
+    error(_("No ADI information at %s"), paddress (target_gdbarch (), vaddr));
+
+  adi_print_versions (vstart, cnt, buf.data ());
+}
+
+static void
+do_assign (CORE_ADDR start, size_t bcnt, int version)
+{
+  CORE_ADDR vaddr = adi_normalize_address (start);
+
+  CORE_ADDR vstart = adi_align_address (vaddr);
+  int cnt = adi_convert_byte_count (vaddr, bcnt, vstart);
+  std::vector<unsigned char> buf (cnt, version);
+  int set_cnt = adi_write_versions (vstart, cnt, buf.data ());
+
+  if (set_cnt == -1)
+    error (_("No ADI information"));
+  else if (set_cnt < cnt)
+    error(_("No ADI information at %s"), paddress (target_gdbarch (), vaddr));
+
+}
+
+/* ADI examine version tag command.
+
+   Command syntax:
+
+     adi (examine|x)/count <addr> */
+
+static void
+adi_examine_command (const char *args, int from_tty)
+{
+  /* make sure program is active and adi is available */
+  if (!target_has_execution)
+    error (_("ADI command requires a live process/thread"));
+
+  if (!adi_available ())
+    error (_("No ADI information"));
+
+  pid_t pid = ptid_get_pid (inferior_ptid);
+  sparc64_adi_info *proc = get_adi_info_proc (pid);
+  int cnt = 1;
+  const char *p = args;
+  if (p && *p == '/')
+    {
+      p++;
+      cnt = get_number (&p);
+    }
+
+  CORE_ADDR next_address = 0;
+  if (p != 0 && *p != 0)
+    next_address = parse_and_eval_address (p);
+  if (!cnt || !next_address)
+    error (_("Usage: adi examine|x[/count] <addr>"));
+
+  do_examine (next_address, cnt);
+}
+
+/* ADI assign version tag command.
+
+   Command syntax:
+
+     adi (assign|a)/count <addr> = <version>  */
+
+static void
+adi_assign_command (const char *args, int from_tty)
+{
+  /* make sure program is active and adi is available */
+  if (!target_has_execution)
+    error (_("ADI command requires a live process/thread"));
+
+  if (!adi_available ())
+    error (_("No ADI information"));
+
+  const char *exp = args;
+  if (exp == 0)
+    error_no_arg (_("Usage: adi assign|a[/count] <addr> = <version>"));
+
+  char *q = (char *) strchr (exp, '=');
+  if (q)
+    *q++ = 0;
+  else
+    error (_("Usage: adi assign|a[/count] <addr> = <version>"));
+
+  size_t cnt = 1;
+  const char *p = args;
+  if (exp && *exp == '/')
+    {
+      p = exp + 1;
+      cnt = get_number (&p);
+    }
+
+  CORE_ADDR next_address = 0;
+  if (p != 0 && *p != 0)
+    next_address = parse_and_eval_address (p);
+  else
+    error (_("Usage: adi assign|a[/count] <addr> = <version>"));
+
+  int version = 0;
+  if (q != NULL)           /* parse version tag */
+    {
+      adi_stat_t ast = get_adi_info (ptid_get_pid (inferior_ptid));
+      version = parse_and_eval_long (q);
+      if (version < 0 || version > ast.max_version)
+        error (_("Invalid ADI version tag %d"), version);
+    }
+
+  do_assign (next_address, cnt, version);
+}
+
+void
+_initialize_sparc64_adi_tdep (void)
+{
+
+  add_prefix_cmd ("adi", class_support, info_adi_command,
+                  _("ADI version related commands."),
+                  &sparc64adilist, "adi ", 0, &cmdlist);
+  add_cmd ("examine", class_support, adi_examine_command,
+           _("Examine ADI versions."), &sparc64adilist);
+  add_alias_cmd ("x", "examine", no_class, 1, &sparc64adilist);
+  add_cmd ("assign", class_support, adi_assign_command,
+           _("Assign ADI versions."), &sparc64adilist);
+
+}
+
+
 /* The functions on this page are intended to be used to classify
    function arguments.  */
 
@@ -155,7 +657,7 @@ sparc64_pstate_type (struct gdbarch *gdb
     {
       struct type *type;
 
-      type = arch_flags_type (gdbarch, "builtin_type_sparc64_pstate", 8);
+      type = arch_flags_type (gdbarch, "builtin_type_sparc64_pstate", 64);
       append_flags_type_flag (type, 0, "AG");
       append_flags_type_flag (type, 1, "IE");
       append_flags_type_flag (type, 2, "PRIV");
@@ -182,7 +684,7 @@ sparc64_ccr_type (struct gdbarch *gdbarc
     {
       struct type *type;
 
-      type = arch_flags_type (gdbarch, "builtin_type_sparc64_ccr", 8);
+      type = arch_flags_type (gdbarch, "builtin_type_sparc64_ccr", 64);
       append_flags_type_flag (type, 0, "icc.c");
       append_flags_type_flag (type, 1, "icc.v");
       append_flags_type_flag (type, 2, "icc.z");
@@ -207,7 +709,7 @@ sparc64_fsr_type (struct gdbarch *gdbarc
     {
       struct type *type;
 
-      type = arch_flags_type (gdbarch, "builtin_type_sparc64_fsr", 8);
+      type = arch_flags_type (gdbarch, "builtin_type_sparc64_fsr", 64);
       append_flags_type_flag (type, 0, "NXC");
       append_flags_type_flag (type, 1, "DZC");
       append_flags_type_flag (type, 2, "UFC");
@@ -240,7 +742,7 @@ sparc64_fprs_type (struct gdbarch *gdbar
     {
       struct type *type;
 
-      type = arch_flags_type (gdbarch, "builtin_type_sparc64_fprs", 8);
+      type = arch_flags_type (gdbarch, "builtin_type_sparc64_fprs", 64);
       append_flags_type_flag (type, 0, "DL");
       append_flags_type_flag (type, 1, "DU");
       append_flags_type_flag (type, 2, "FEF");
@@ -669,6 +1171,13 @@ static const struct frame_base sparc64_f
 static int
 sparc64_16_byte_align_p (struct type *type)
 {
+  if (TYPE_CODE (type) == TYPE_CODE_ARRAY)
+    {
+      struct type *t = check_typedef (TYPE_TARGET_TYPE (type));
+
+      if (sparc64_floating_p (t))
+        return 1;
+    }
   if (sparc64_floating_p (type) && TYPE_LENGTH (type) == 16)
     return 1;
 
@@ -698,12 +1207,28 @@ static void
 sparc64_store_floating_fields (struct regcache *regcache, struct type *type,
 			       const gdb_byte *valbuf, int element, int bitpos)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int len = TYPE_LENGTH (type);
 
   gdb_assert (element < 16);
 
-  if (sparc64_floating_p (type)
+  if (TYPE_CODE (type) == TYPE_CODE_ARRAY)
+    {
+      gdb_byte buf[8];
+      int regnum = SPARC_F0_REGNUM + element * 2 + bitpos / 32;
+
+      valbuf += bitpos / 8;
+      if (len < 8)
+        {
+          memset (buf, 0, 8 - len);
+          memcpy (buf + 8 - len, valbuf, len);
+          valbuf = buf;
+          len = 8;
+        }
+      for (int n = 0; n < (len + 3) / 4; n++)
+        regcache_cooked_write (regcache, regnum + n, valbuf + n * 4);
+    }
+  else if (sparc64_floating_p (type)
       || (sparc64_complex_floating_p (type) && len <= 16))
     {
       int regnum;
@@ -774,9 +1299,25 @@ static void
 sparc64_extract_floating_fields (struct regcache *regcache, struct type *type,
 				 gdb_byte *valbuf, int bitpos)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
+
+  if (TYPE_CODE (type) == TYPE_CODE_ARRAY)
+    {
+      int len = TYPE_LENGTH (type);
+      int regnum =  SPARC_F0_REGNUM + bitpos / 32;
 
-  if (sparc64_floating_p (type))
+      valbuf += bitpos / 8;
+      if (len < 4)
+        {
+          gdb_byte buf[4];
+          regcache_cooked_read (regcache, regnum, buf);
+          memcpy (valbuf, buf + 4 - len, len);
+        }
+      else
+        for (int i = 0; i < (len + 3) / 4; i++)
+          regcache_cooked_read (regcache, regnum + i, valbuf + i * 4);
+    }
+  else if (sparc64_floating_p (type))
     {
       int len = TYPE_LENGTH (type);
       int regnum;
@@ -827,7 +1368,7 @@ sparc64_store_arguments (struct regcache
 			 struct value **args, CORE_ADDR sp,
 			 int struct_return, CORE_ADDR struct_addr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   /* Number of extended words in the "parameter array".  */
   int num_elements = 0;
   int element = 0;
@@ -1251,6 +1792,14 @@ sparc64_dwarf2_frame_init_reg (struct gd
     }
 }
 
+/* sparc64_addr_bits_remove - remove useless address bits  */
+
+static CORE_ADDR
+sparc64_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr)
+{
+  return adi_normalize_address (addr);
+}
+
 void
 sparc64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
@@ -1303,6 +1852,8 @@ sparc64_init_abi (struct gdbarch_info in
 
   frame_unwind_append_unwinder (gdbarch, &sparc64_frame_unwind);
   frame_base_set_default (gdbarch, &sparc64_frame_base);
+
+  set_gdbarch_addr_bits_remove (gdbarch, sparc64_addr_bits_remove);
 }
 
 
@@ -1313,9 +1864,13 @@ sparc64_init_abi (struct gdbarch_info in
 #define TSTATE_XCC	0x000000f000000000ULL
 
 #define PSR_S		0x00000080
+#ifndef PSR_ICC
 #define PSR_ICC		0x00f00000
+#endif
 #define PSR_VERS	0x0f000000
+#ifndef PSR_IMPL
 #define PSR_IMPL	0xf0000000
+#endif
 #define PSR_V8PLUS	0xff000000
 #define PSR_XCC		0x000f0000
 
@@ -1324,7 +1879,7 @@ sparc64_supply_gregset (const struct spa
 			struct regcache *regcache,
 			int regnum, const void *gregs)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int sparc32 = (gdbarch_ptr_bit (gdbarch) == 32);
   const gdb_byte *regs = (const gdb_byte *) gregs;
@@ -1441,7 +1996,7 @@ sparc64_collect_gregset (const struct sp
 			 const struct regcache *regcache,
 			 int regnum, void *gregs)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int sparc32 = (gdbarch_ptr_bit (gdbarch) == 32);
   gdb_byte *regs = (gdb_byte *) gregs;
@@ -1551,7 +2106,7 @@ sparc64_supply_fpregset (const struct sp
 			 struct regcache *regcache,
 			 int regnum, const void *fpregs)
 {
-  int sparc32 = (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 32);
+  int sparc32 = (gdbarch_ptr_bit (regcache->arch ()) == 32);
   const gdb_byte *regs = (const gdb_byte *) fpregs;
   int i;
 
@@ -1589,7 +2144,7 @@ sparc64_collect_fpregset (const struct s
 			  const struct regcache *regcache,
 			  int regnum, void *fpregs)
 {
-  int sparc32 = (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 32);
+  int sparc32 = (gdbarch_ptr_bit (regcache->arch ()) == 32);
   gdb_byte *regs = (gdb_byte *) fpregs;
   int i;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-tdep.h ./gdb/sparc64-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc64-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc64-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for UltraSPARC.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -138,4 +138,6 @@ extern struct trad_frame_saved_reg *
 
 extern const struct sparc_fpregmap sparc64_bsd_fpregmap;
 
+extern void sparc64_forget_process (pid_t pid);
+
 #endif /* sparc64-tdep.h */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-linux-nat.c ./gdb/sparc-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Native-dependent code for GNU/Linux SPARC.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -53,8 +53,6 @@ fill_fpregset (const struct regcache *re
   sparc32_collect_fpregset (sparc_fpregmap, regcache, regnum, fpregs);
 }
 
-void _initialize_sparc_linux_nat (void);
-
 void
 _initialize_sparc_linux_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-linux-tdep.c ./gdb/sparc-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux SPARC.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -253,7 +253,7 @@ sparc32_linux_collect_core_fpregset (con
 static void
 sparc_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
+  struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ());
   ULONGEST psr;
 
   regcache_cooked_write_unsigned (regcache, tdep->pc_regnum, pc);
@@ -465,9 +465,6 @@ sparc32_linux_init_abi (struct gdbarch_i
 				    sparc32_linux_gdb_signal_to_target);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern void _initialize_sparc_linux_tdep (void);
-
 void
 _initialize_sparc_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-nat.c ./gdb/sparc-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for SPARC.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -137,7 +137,7 @@ void
 sparc_fetch_inferior_registers (struct target_ops *ops,
 				struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   pid_t pid;
 
   /* NOTE: cagney/2002-12-03: This code assumes that the currently
@@ -190,7 +190,7 @@ void
 sparc_store_inferior_registers (struct target_ops *ops,
 				struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   pid_t pid;
 
   /* NOTE: cagney/2002-12-02: See comment in fetch_inferior_registers
@@ -338,10 +338,6 @@ sparc_target (void)
   return t;
 }
 
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparc_nat (void);
-
 void
 _initialize_sparc_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-nat.h ./gdb/sparc-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc-nat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for SPARC.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-nbsd-nat.c ./gdb/sparc-nbsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-nbsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc-nbsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for NetBSD/sparc.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -54,10 +54,6 @@ sparc32nbsd_supply_pcb (struct regcache 
 
   return 1;
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparcnbsd_nat (void);
 
 void
 _initialize_sparcnbsd_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-nbsd-tdep.c ./gdb/sparc-nbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-nbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc-nbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for NetBSD/sparc.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by Wasabi Systems, Inc.
 
    This file is part of GDB.
@@ -314,10 +314,6 @@ sparc32nbsd_init_abi (struct gdbarch_inf
     (gdbarch, svr4_ilp32_fetch_link_map_offsets);
 }
 
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparcnbsd_tdep (void);
-
 void
 _initialize_sparcnbsd_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-obsd-tdep.c ./gdb/sparc-obsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-obsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc-obsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for OpenBSD/sparc.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -18,7 +18,6 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "defs.h"
-#include "floatformat.h"
 #include "frame.h"
 #include "frame-unwind.h"
 #include "gdbcore.h"
@@ -153,7 +152,7 @@ static void
 sparc32obsd_supply_uthread (struct regcache *regcache,
 			    int regnum, CORE_ADDR addr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR fp, fp_addr = addr + SPARC32OBSD_UTHREAD_FP_OFFSET;
   gdb_byte buf[4];
@@ -198,7 +197,7 @@ static void
 sparc32obsd_collect_uthread(const struct regcache *regcache,
 			    int regnum, CORE_ADDR addr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR sp;
   gdb_byte buf[4];
@@ -246,10 +245,6 @@ sparc32obsd_init_abi (struct gdbarch_inf
   bsd_uthread_set_collect_uthread (gdbarch, sparc32obsd_collect_uthread);
 }
 
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparc32obsd_tdep (void);
-
 void
 _initialize_sparc32obsd_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-ravenscar-thread.c ./gdb/sparc-ravenscar-thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-ravenscar-thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc-ravenscar-thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Ravenscar SPARC target support.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -62,7 +62,7 @@ static void
 supply_register_at_address (struct regcache *regcache, int regnum,
                             CORE_ADDR register_addr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int buf_size = register_size (gdbarch, regnum);
   gdb_byte *buf;
 
@@ -103,7 +103,7 @@ register_in_thread_descriptor_p (int reg
 static void
 sparc_ravenscar_fetch_registers (struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   const int sp_regnum = gdbarch_sp_regnum (gdbarch);
   const int num_regs = gdbarch_num_regs (gdbarch);
   int current_regnum;
@@ -155,7 +155,7 @@ sparc_ravenscar_prepare_to_store (struct
 static void
 sparc_ravenscar_store_registers (struct regcache *regcache, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int buf_size = register_size (gdbarch, regnum);
   gdb_byte buf[buf_size];
   ULONGEST register_address;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-ravenscar-thread.h ./gdb/sparc-ravenscar-thread.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-ravenscar-thread.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc-ravenscar-thread.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Ravenscar SPARC target support.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-sol2-nat.c ./gdb/sparc-sol2-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-sol2-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc-sol2-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for Solaris SPARC.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -98,17 +98,12 @@ fill_fpregset (const struct regcache *re
   sparc_collect_fpregset (&sparc_sol2_fpregmap, regcache, regnum, fpregs);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_sparc_sol2_nat;
-
 void
 _initialize_sparc_sol2_nat (void)
 {
   struct target_ops *t;
 
   t = procfs_target ();
-#ifdef NEW_PROC_API	/* Solaris 6 and above can do HW watchpoints.  */
   procfs_use_watchpoints (t);
-#endif
   add_target (t);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-sol2-tdep.c ./gdb/sparc-sol2-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-sol2-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc-sol2-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for Solaris SPARC.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -292,10 +292,6 @@ sparc32_sol2_init_abi (struct gdbarch_in
   /* How to print LWP PTIDs from core files.  */
   set_gdbarch_core_pid_to_str (gdbarch, sol2_core_pid_to_str);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparc_sol2_tdep (void);
 
 void
 _initialize_sparc_sol2_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-tdep.c ./gdb/sparc-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for SPARC.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,8 +20,8 @@
 #include "defs.h"
 #include "arch-utils.h"
 #include "dis-asm.h"
+#include "dwarf2.h"
 #include "dwarf2-frame.h"
-#include "floatformat.h"
 #include "frame.h"
 #include "frame-base.h"
 #include "frame-unwind.h"
@@ -297,6 +297,43 @@ sparc_structure_or_union_p (const struct
   return 0;
 }
 
+/* Check whether TYPE is returned on registers.  */
+
+static bool
+sparc_structure_return_p (const struct type *type)
+{
+  if (TYPE_CODE (type) == TYPE_CODE_ARRAY && TYPE_LENGTH (type) <= 8)
+    {
+      struct type *t = check_typedef (TYPE_TARGET_TYPE (type));
+
+      if (sparc_floating_p (t) && TYPE_LENGTH (t) == 8)
+        return true;
+      return false;
+    }
+  if (sparc_floating_p (type) && TYPE_LENGTH (type) == 16)
+    return true;
+  return sparc_structure_or_union_p (type);
+}
+
+/* Check whether TYPE is passed on registers.  */
+
+static bool
+sparc_arg_on_registers_p (const struct type *type)
+{
+  if (TYPE_CODE (type) == TYPE_CODE_ARRAY && TYPE_LENGTH (type) <= 8)
+    {
+      struct type *t = check_typedef (TYPE_TARGET_TYPE (type));
+
+      if (sparc_floating_p (t) && TYPE_LENGTH (t) == 8)
+        return false;
+      return true;
+    }
+  if (sparc_structure_or_union_p (type) || sparc_complex_floating_p (type)
+      || (sparc_floating_p (type) && TYPE_LENGTH (type) == 16))
+    return false;
+  return true;
+}
+
 /* Register information.  */
 #define SPARC32_FPU_REGISTERS                             \
   "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7",         \
@@ -372,7 +409,7 @@ sparc_psr_type (struct gdbarch *gdbarch)
     {
       struct type *type;
 
-      type = arch_flags_type (gdbarch, "builtin_type_sparc_psr", 4);
+      type = arch_flags_type (gdbarch, "builtin_type_sparc_psr", 32);
       append_flags_type_flag (type, 5, "ET");
       append_flags_type_flag (type, 6, "PS");
       append_flags_type_flag (type, 7, "S");
@@ -394,7 +431,7 @@ sparc_fsr_type (struct gdbarch *gdbarch)
     {
       struct type *type;
 
-      type = arch_flags_type (gdbarch, "builtin_type_sparc_fsr", 4);
+      type = arch_flags_type (gdbarch, "builtin_type_sparc_fsr", 32);
       append_flags_type_flag (type, 0, "NXA");
       append_flags_type_flag (type, 1, "DZA");
       append_flags_type_flag (type, 2, "UFA");
@@ -557,7 +594,7 @@ sparc32_store_arguments (struct regcache
 			 struct value **args, CORE_ADDR sp,
 			 int struct_return, CORE_ADDR struct_addr)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   /* Number of words in the "parameter array".  */
   int num_elements = 0;
@@ -569,9 +606,7 @@ sparc32_store_arguments (struct regcache
       struct type *type = value_type (args[i]);
       int len = TYPE_LENGTH (type);
 
-      if (sparc_structure_or_union_p (type)
-	  || (sparc_floating_p (type) && len == 16)
-	  || sparc_complex_floating_p (type))
+      if (!sparc_arg_on_registers_p (type))
 	{
 	  /* Structure, Union and Quad-Precision Arguments.  */
 	  sp -= len;
@@ -593,11 +628,8 @@ sparc32_store_arguments (struct regcache
       else
 	{
 	  /* Integral and pointer arguments.  */
-	  gdb_assert (sparc_integral_or_pointer_p (type));
-
-	  if (len < 4)
-	    args[i] = value_cast (builtin_type (gdbarch)->builtin_int32,
-				  args[i]);
+	  gdb_assert (sparc_integral_or_pointer_p (type)
+	              || (TYPE_CODE (type) == TYPE_CODE_ARRAY && len <= 8));
 	  num_elements += ((len + 3) / 4);
 	}
     }
@@ -619,6 +651,15 @@ sparc32_store_arguments (struct regcache
       const bfd_byte *valbuf = value_contents (args[i]);
       struct type *type = value_type (args[i]);
       int len = TYPE_LENGTH (type);
+      gdb_byte buf[4];
+
+      if (len < 4)
+        {
+          memset (buf, 0, 4 - len);
+          memcpy (buf + 4 - len, valbuf, len);
+          valbuf = buf;
+          len = 4;
+        }
 
       gdb_assert (len == 4 || len == 8);
 
@@ -1344,10 +1385,10 @@ sparc32_extract_return_value (struct typ
   int len = TYPE_LENGTH (type);
   gdb_byte buf[32];
 
-  gdb_assert (!sparc_structure_or_union_p (type));
-  gdb_assert (!(sparc_floating_p (type) && len == 16));
+  gdb_assert (!sparc_structure_return_p (type));
 
-  if (sparc_floating_p (type) || sparc_complex_floating_p (type))
+  if (sparc_floating_p (type) || sparc_complex_floating_p (type)
+      || TYPE_CODE (type) == TYPE_CODE_ARRAY)
     {
       /* Floating return values.  */
       regcache_cooked_read (regcache, SPARC_F0_REGNUM, buf);
@@ -1396,11 +1437,9 @@ sparc32_store_return_value (struct type 
 			    const gdb_byte *valbuf)
 {
   int len = TYPE_LENGTH (type);
-  gdb_byte buf[8];
+  gdb_byte buf[32];
 
-  gdb_assert (!sparc_structure_or_union_p (type));
-  gdb_assert (!(sparc_floating_p (type) && len == 16));
-  gdb_assert (len <= 8);
+  gdb_assert (!sparc_structure_return_p (type));
 
   if (sparc_floating_p (type) || sparc_complex_floating_p (type))
     {
@@ -1456,8 +1495,7 @@ sparc32_return_value (struct gdbarch *gd
      guarantees that we can always find the return value, not just
      before the function returns.  */
 
-  if (sparc_structure_or_union_p (type)
-      || (sparc_floating_p (type) && TYPE_LENGTH (type) == 16))
+  if (sparc_structure_return_p (type))
     {
       ULONGEST sp;
       CORE_ADDR addr;
@@ -1536,6 +1574,34 @@ sparc32_dwarf2_frame_init_reg (struct gd
     }
 }
 
+/* Implement the execute_dwarf_cfa_vendor_op method.  */
+
+static bool
+sparc_execute_dwarf_cfa_vendor_op (struct gdbarch *gdbarch, gdb_byte op,
+				   struct dwarf2_frame_state *fs)
+{
+  /* Only DW_CFA_GNU_window_save is expected on SPARC.  */
+  if (op != DW_CFA_GNU_window_save)
+    return false;
+
+  uint64_t reg;
+  int size = register_size (gdbarch, 0);
+
+  fs->regs.alloc_regs (32);
+  for (reg = 8; reg < 16; reg++)
+    {
+      fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_REG;
+      fs->regs.reg[reg].loc.reg = reg + 16;
+    }
+  for (reg = 16; reg < 32; reg++)
+    {
+      fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_OFFSET;
+      fs->regs.reg[reg].loc.offset = (reg - 16) * size;
+    }
+
+  return true;
+}
+
 
 /* The SPARC Architecture doesn't have hardware single-step support,
    and most operating systems don't implement it either, so we provide
@@ -1596,7 +1662,7 @@ sparc_analyze_control_transfer (struct r
       struct frame_info *frame = get_current_frame ();
 
       /* Trap instruction (TRAP).  */
-      return gdbarch_tdep (get_regcache_arch (regcache))->step_trap (frame,
+      return gdbarch_tdep (regcache->arch ())->step_trap (frame,
 								     insn);
     }
 
@@ -1643,15 +1709,15 @@ sparc_step_trap (struct frame_info *fram
   return 0;
 }
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 sparc_software_single_step (struct regcache *regcache)
 {
-  struct gdbarch *arch = get_regcache_arch (regcache);
+  struct gdbarch *arch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (arch);
   CORE_ADDR npc, nnpc;
 
   CORE_ADDR pc, orig_npc;
-  VEC (CORE_ADDR) *next_pcs = NULL;
+  std::vector<CORE_ADDR> next_pcs;
 
   pc = regcache_raw_get_unsigned (regcache, tdep->pc_regnum);
   orig_npc = npc = regcache_raw_get_unsigned (regcache, tdep->npc_regnum);
@@ -1659,10 +1725,10 @@ sparc_software_single_step (struct regca
   /* Analyze the instruction at PC.  */
   nnpc = sparc_analyze_control_transfer (regcache, pc, &npc);
   if (npc != 0)
-    VEC_safe_push (CORE_ADDR, next_pcs, npc);
+    next_pcs.push_back (npc);
 
   if (nnpc != 0)
-    VEC_safe_push (CORE_ADDR, next_pcs, nnpc);
+    next_pcs.push_back (nnpc);
 
   /* Assert that we have set at least one breakpoint, and that
      they're not set at the same spot - unless we're going
@@ -1676,7 +1742,7 @@ sparc_software_single_step (struct regca
 static void
 sparc_write_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
+  struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ());
 
   regcache_cooked_write_unsigned (regcache, tdep->pc_regnum, pc);
   regcache_cooked_write_unsigned (regcache, tdep->npc_regnum, pc + 4);
@@ -1788,8 +1854,6 @@ sparc32_gdbarch_init (struct gdbarch_inf
 
   set_gdbarch_frame_args_skip (gdbarch, 8);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_sparc);
-
   set_gdbarch_software_single_step (gdbarch, sparc_software_single_step);
   set_gdbarch_write_pc (gdbarch, sparc_write_pc);
 
@@ -1801,6 +1865,9 @@ sparc32_gdbarch_init (struct gdbarch_inf
 
   /* Hook in the DWARF CFI frame unwinder.  */
   dwarf2_frame_set_init_reg (gdbarch, sparc32_dwarf2_frame_init_reg);
+  /* Register DWARF vendor CFI handler.  */
+  set_gdbarch_execute_dwarf_cfa_vendor_op (gdbarch,
+					   sparc_execute_dwarf_cfa_vendor_op);
   /* FIXME: kettenis/20050423: Don't enable the unwinder until the
      StackGhost issues have been resolved.  */
 
@@ -1838,7 +1905,7 @@ sparc32_gdbarch_init (struct gdbarch_inf
         }
 
       /* Target description may have changed. */
-      info.tdep_info = tdesc_data;
+      info.tdesc_data = tdesc_data;
       tdesc_use_registers (gdbarch, tdesc, tdesc_data);
     }
 
@@ -1857,7 +1924,7 @@ sparc32_gdbarch_init (struct gdbarch_inf
 void
 sparc_supply_rwindow (struct regcache *regcache, CORE_ADDR sp, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int offset = 0;
   gdb_byte buf[8];
@@ -1897,7 +1964,7 @@ sparc_supply_rwindow (struct regcache *r
 
       /* Clear out the top half of the temporary buffer, and put the
 	 register value in the bottom half if we're in 64-bit mode.  */
-      if (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 64)
+      if (gdbarch_ptr_bit (regcache->arch ()) == 64)
 	{
 	  memset (buf, 0, 4);
 	  offset = 4;
@@ -1931,7 +1998,7 @@ void
 sparc_collect_rwindow (const struct regcache *regcache,
 		       CORE_ADDR sp, int regnum)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int offset = 0;
   gdb_byte buf[8];
@@ -1969,7 +2036,7 @@ sparc_collect_rwindow (const struct regc
       sp &= 0xffffffffUL;
 
       /* Only use the bottom half if we're in 64-bit mode.  */
-      if (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 64)
+      if (gdbarch_ptr_bit (regcache->arch ()) == 64)
 	offset = 4;
 
       for (i = SPARC_L0_REGNUM; i <= SPARC_I7_REGNUM; i++)
@@ -2185,10 +2252,6 @@ const struct sparc_fpregmap sparc32_bsd_
   0 * 4,			/* %f0 */
   32 * 4,			/* %fsr */
 };
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_sparc_tdep (void);
 
 void
 _initialize_sparc_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-tdep.h ./gdb/sparc-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/sparc-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/sparc-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for SPARC.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/spu-linux-nat.c ./gdb/spu-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/spu-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/spu-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* SPU native-dependent code for GDB, the GNU debugger.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
 
@@ -504,7 +504,7 @@ spu_fetch_inferior_registers (struct tar
   /* The ID register holds the spufs file handle.  */
   if (regno == -1 || regno == SPU_ID_REGNUM)
     {
-      struct gdbarch *gdbarch = get_regcache_arch (regcache);
+      struct gdbarch *gdbarch = regcache->arch ();
       enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
       gdb_byte buf[4];
       store_unsigned_integer (buf, 4, byte_order, fd);
@@ -634,9 +634,6 @@ spu_can_use_hw_breakpoint (struct target
   return 0;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_spu_nat;
-
 /* Initialize SPU native target.  */
 void 
 _initialize_spu_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/spu-multiarch.c ./gdb/spu-multiarch.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/spu-multiarch.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/spu-multiarch.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Cell SPU GNU/Linux multi-architecture debugging support.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
 
@@ -56,7 +56,6 @@ static int
 parse_spufs_run (ptid_t ptid, int *fd, CORE_ADDR *addr)
 {
   enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
-  struct cleanup *old_chain;
   struct gdbarch_tdep *tdep;
   struct regcache *regcache;
   gdb_byte buf[4];
@@ -76,10 +75,11 @@ parse_spufs_run (ptid_t ptid, int *fd, C
   tdep = gdbarch_tdep (target_gdbarch ());
 
   /* Fetch instruction preceding current NIP.  */
-  old_chain = save_inferior_ptid ();
-  inferior_ptid = ptid;
-  regval = target_read_memory (regcache_read_pc (regcache) - 4, buf, 4);
-  do_cleanups (old_chain);
+  {
+    scoped_restore save_inferior_ptid = make_scoped_restore (&inferior_ptid);
+    inferior_ptid = ptid;
+    regval = target_read_memory (regcache_read_pc (regcache) - 4, buf, 4);
+  }
   if (regval != 0)
     return 0;
   /* It should be a "sc" instruction.  */
@@ -107,7 +107,7 @@ spu_gdbarch (int spufs_fd)
   info.bfd_arch_info = bfd_lookup_arch (bfd_arch_spu, bfd_mach_spu);
   info.byte_order = BFD_ENDIAN_BIG;
   info.osabi = GDB_OSABI_LINUX;
-  info.tdep_info = &spufs_fd;
+  info.id = &spufs_fd;
   return gdbarch_find_by_info (info);
 }
 
@@ -121,7 +121,8 @@ spu_thread_architecture (struct target_o
   if (parse_spufs_run (ptid, &spufs_fd, &spufs_addr))
     return spu_gdbarch (spufs_fd);
 
-  return target_gdbarch ();
+  target_ops *beneath = find_target_beneath (ops);
+  return beneath->to_thread_architecture (beneath, ptid);
 }
 
 /* Override the to_region_ok_for_hw_watchpoint routine.  */
@@ -143,7 +144,7 @@ static void
 spu_fetch_registers (struct target_ops *ops,
 		     struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   struct target_ops *ops_beneath = find_target_beneath (ops);
   int spufs_fd;
@@ -203,7 +204,7 @@ static void
 spu_store_registers (struct target_ops *ops,
 		     struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct target_ops *ops_beneath = find_target_beneath (ops);
   int spufs_fd;
   CORE_ADDR spufs_addr;
@@ -401,9 +402,6 @@ init_spu_ops (void)
   spu_ops.to_magic = OPS_MAGIC;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_spu_multiarch;
-
 void
 _initialize_spu_multiarch (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/spu-tdep.c ./gdb/spu-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/spu-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/spu-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* SPU target-dependent code for GDB, the GNU debugger.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    Contributed by Ulrich Weigand <uweigand@de.ibm.com>.
    Based on a port by Sid Manning <sid@us.ibm.com>.
@@ -38,7 +38,6 @@
 #include "language.h"
 #include "regcache.h"
 #include "reggroups.h"
-#include "floatformat.h"
 #include "block.h"
 #include "observer.h"
 #include "infcall.h"
@@ -186,7 +185,7 @@ static enum register_status
 spu_pseudo_register_read_spu (struct regcache *regcache, const char *regname,
 			      gdb_byte *buf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   enum register_status status;
   gdb_byte reg[32];
@@ -254,7 +253,7 @@ static void
 spu_pseudo_register_write_spu (struct regcache *regcache, const char *regname,
 			       const gdb_byte *buf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   char reg[32];
   char annex[32];
@@ -1179,7 +1178,7 @@ spu_unwind_sp (struct gdbarch *gdbarch, 
 static CORE_ADDR
 spu_read_pc (struct regcache *regcache)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
+  struct gdbarch_tdep *tdep = gdbarch_tdep (regcache->arch ());
   ULONGEST pc;
   regcache_cooked_read_unsigned (regcache, SPU_PC_REGNUM, &pc);
   /* Mask off interrupt enable bit.  */
@@ -1210,7 +1209,7 @@ static struct gdbarch *
 spu2ppu_prev_arch (struct frame_info *this_frame, void **this_cache)
 {
   struct spu2ppu_cache *cache = (struct spu2ppu_cache *) *this_cache;
-  return get_regcache_arch (cache->regcache);
+  return cache->regcache->arch ();
 }
 
 static void
@@ -1226,7 +1225,7 @@ spu2ppu_prev_register (struct frame_info
 		       void **this_cache, int regnum)
 {
   struct spu2ppu_cache *cache = (struct spu2ppu_cache *) *this_cache;
-  struct gdbarch *gdbarch = get_regcache_arch (cache->regcache);
+  struct gdbarch *gdbarch = cache->regcache->arch ();
   gdb_byte *buf;
 
   buf = (gdb_byte *) alloca (register_size (gdbarch, regnum));
@@ -1267,7 +1266,7 @@ spu2ppu_sniffer (const struct frame_unwi
 
       if (fi)
 	{
-	  cache->regcache = frame_save_as_regcache (fi);
+	  cache->regcache = frame_save_as_regcache (fi).release ();
 	  *this_prologue_cache = cache;
 	  return 1;
 	}
@@ -1288,7 +1287,7 @@ static void
 spu2ppu_dealloc_cache (struct frame_info *self, void *this_cache)
 {
   struct spu2ppu_cache *cache = (struct spu2ppu_cache *) this_cache;
-  regcache_xfree (cache->regcache);
+  delete cache->regcache;
 }
 
 static const struct frame_unwind spu2ppu_unwind = {
@@ -1612,17 +1611,17 @@ spu_memory_remove_breakpoint (struct gdb
 
 /* Software single-stepping support.  */
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 spu_software_single_step (struct regcache *regcache)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   CORE_ADDR pc, next_pc;
   unsigned int insn;
   int offset, reg;
   gdb_byte buf[4];
   ULONGEST lslr;
-  VEC (CORE_ADDR) *next_pcs = NULL;
+  std::vector<CORE_ADDR> next_pcs;
 
   pc = regcache_read_pc (regcache);
 
@@ -1633,8 +1632,8 @@ spu_software_single_step (struct regcach
   insn = extract_unsigned_integer (buf, 4, byte_order);
 
   /* Get local store limit.  */
-  lslr = regcache_raw_get_unsigned (regcache, SPU_LSLR_REGNUM);
-  if (!lslr)
+  if ((regcache_cooked_read_unsigned (regcache, SPU_LSLR_REGNUM, &lslr)
+       != REG_VALID) || !lslr)
     lslr = (ULONGEST) -1;
 
   /* Next sequential instruction is at PC + 4, except if the current
@@ -1645,7 +1644,7 @@ spu_software_single_step (struct regcach
   else
     next_pc = (SPUADDR_ADDR (pc) + 4) & lslr;
 
-  VEC_safe_push (CORE_ADDR, next_pcs, SPUADDR (SPUADDR_SPU (pc), next_pc));
+  next_pcs.push_back (SPUADDR (SPUADDR_SPU (pc), next_pc));
 
   if (is_branch (insn, &offset, &reg))
     {
@@ -1654,12 +1653,14 @@ spu_software_single_step (struct regcach
       if (reg == SPU_PC_REGNUM)
 	target += SPUADDR_ADDR (pc);
       else if (reg != -1)
-	target += regcache_raw_get_unsigned (regcache, reg) & -4;
+      {
+	regcache_raw_read_part (regcache, reg, 0, 4, buf);
+	target += extract_unsigned_integer (buf, 4, byte_order) & -4;
+      }
 
       target = target & lslr;
       if (target != next_pc)
-	VEC_safe_push (CORE_ADDR, next_pcs, SPUADDR (SPUADDR_SPU (pc),
-						     target));
+	next_pcs.push_back (SPUADDR (SPUADDR_SPU (pc), target));
     }
 
   return next_pcs;
@@ -1722,7 +1723,7 @@ gdb_print_insn_spu (bfd_vma memaddr, str
   memcpy (&spu_info, info, sizeof (*info));
   spu_info.id = SPUADDR_SPU (memaddr);
   spu_info.print_address_func = spu_dis_asm_print_address;
-  return print_insn_spu (memaddr, &spu_info);
+  return default_print_insn (memaddr, &spu_info);
 }
 
 
@@ -1914,7 +1915,6 @@ spu_overlay_new_objfile (struct objfile 
   /* Now go and fiddle with all the LMAs.  */
   ALL_OBJFILE_OSECTIONS (objfile, osect)
     {
-      bfd *obfd = objfile->obfd;
       asection *bsect = osect->the_bfd_section;
       int ndx = osect - objfile->sections;
 
@@ -1966,7 +1966,9 @@ spu_catch_start (struct objfile *objfile
       struct symbol *sym;
       struct symtab_and_line sal;
 
-      sym = block_lookup_symbol (block, "main", VAR_DOMAIN);
+      sym = block_lookup_symbol (block, "main",
+				 symbol_name_match_type::SEARCH_NAME,
+				 VAR_DOMAIN);
       if (sym)
 	{
 	  fixup_symbol_section (sym, objfile);
@@ -2037,7 +2039,7 @@ flush_ea_cache (void)
       type = lookup_pointer_type (type);
       addr = BMSYMBOL_VALUE_ADDRESS (msymbol);
 
-      call_function_by_hand (value_from_pointer (type, addr), 0, NULL);
+      call_function_by_hand (value_from_pointer (type, addr), NULL, 0, NULL);
     }
 }
 
@@ -2060,12 +2062,11 @@ spu_attach_normal_stop (struct bpstats *
 /* "info spu" commands.  */
 
 static void
-info_spu_event_command (char *args, int from_tty)
+info_spu_event_command (const char *args, int from_tty)
 {
   struct frame_info *frame = get_selected_frame (NULL);
   ULONGEST event_status = 0;
   ULONGEST event_mask = 0;
-  struct cleanup *chain;
   gdb_byte buf[100];
   char annex[32];
   LONGEST len;
@@ -2092,7 +2093,7 @@ info_spu_event_command (char *args, int 
   buf[len] = '\0';
   event_mask = strtoulst ((char *) buf, NULL, 16);
  
-  chain = make_cleanup_ui_out_tuple_begin_end (current_uiout, "SPUInfoEvent");
+  ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoEvent");
 
   if (current_uiout->is_mi_like_p ())
     {
@@ -2106,12 +2107,10 @@ info_spu_event_command (char *args, int 
       printf_filtered (_("Event Status 0x%s\n"), phex (event_status, 4));
       printf_filtered (_("Event Mask   0x%s\n"), phex (event_mask, 4));
     }
-
-  do_cleanups (chain);
 }
 
 static void
-info_spu_signal_command (char *args, int from_tty)
+info_spu_signal_command (const char *args, int from_tty)
 {
   struct frame_info *frame = get_selected_frame (NULL);
   struct gdbarch *gdbarch = get_frame_arch (frame);
@@ -2122,7 +2121,6 @@ info_spu_signal_command (char *args, int
   ULONGEST signal2 = 0;
   ULONGEST signal2_type = 0;
   int signal2_pending = 0;
-  struct cleanup *chain;
   char annex[32];
   gdb_byte buf[100];
   LONGEST len;
@@ -2169,7 +2167,7 @@ info_spu_signal_command (char *args, int
   buf[len] = '\0';
   signal2_type = strtoulst ((char *) buf, NULL, 16);
 
-  chain = make_cleanup_ui_out_tuple_begin_end (current_uiout, "SPUInfoSignal");
+  ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoSignal");
 
   if (current_uiout->is_mi_like_p ())
     {
@@ -2202,48 +2200,42 @@ info_spu_signal_command (char *args, int
       else
 	printf_filtered (_("(Type Overwrite)\n"));
     }
-
-  do_cleanups (chain);
 }
 
 static void
 info_spu_mailbox_list (gdb_byte *buf, int nr, enum bfd_endian byte_order,
 		       const char *field, const char *msg)
 {
-  struct cleanup *chain;
   int i;
 
   if (nr <= 0)
     return;
 
-  chain = make_cleanup_ui_out_table_begin_end (current_uiout, 1, nr, "mbox");
+  ui_out_emit_table table_emitter (current_uiout, 1, nr, "mbox");
 
   current_uiout->table_header (32, ui_left, field, msg);
   current_uiout->table_body ();
 
   for (i = 0; i < nr; i++)
     {
-      struct cleanup *val_chain;
-      ULONGEST val;
-      val_chain = make_cleanup_ui_out_tuple_begin_end (current_uiout, "mbox");
-      val = extract_unsigned_integer (buf + 4*i, 4, byte_order);
-      current_uiout->field_fmt (field, "0x%s", phex (val, 4));
-      do_cleanups (val_chain);
+      {
+	ULONGEST val;
+	ui_out_emit_tuple tuple_emitter (current_uiout, "mbox");
+	val = extract_unsigned_integer (buf + 4*i, 4, byte_order);
+	current_uiout->field_fmt (field, "0x%s", phex (val, 4));
+      }
 
       if (!current_uiout->is_mi_like_p ())
 	printf_filtered ("\n");
     }
-
-  do_cleanups (chain);
 }
 
 static void
-info_spu_mailbox_command (char *args, int from_tty)
+info_spu_mailbox_command (const char *args, int from_tty)
 {
   struct frame_info *frame = get_selected_frame (NULL);
   struct gdbarch *gdbarch = get_frame_arch (frame);
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-  struct cleanup *chain;
   char annex[32];
   gdb_byte buf[1024];
   LONGEST len;
@@ -2254,7 +2246,7 @@ info_spu_mailbox_command (char *args, in
 
   id = get_frame_register_unsigned (frame, SPU_ID_REGNUM);
 
-  chain = make_cleanup_ui_out_tuple_begin_end (current_uiout, "SPUInfoMailbox");
+  ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoMailbox");
 
   xsnprintf (annex, sizeof annex, "%d/mbox_info", id);
   len = target_read (&current_target, TARGET_OBJECT_SPU, annex,
@@ -2282,8 +2274,6 @@ info_spu_mailbox_command (char *args, in
 
   info_spu_mailbox_list (buf, len / 4, byte_order,
 			 "wbox", "SPU Inbound Mailbox");
-
-  do_cleanups (chain);
 }
 
 static ULONGEST
@@ -2334,7 +2324,6 @@ info_spu_dma_cmdlist (gdb_byte *buf, int
 
   int *seq = XALLOCAVEC (int, nr);
   int done = 0;
-  struct cleanup *chain;
   int i, j;
 
 
@@ -2372,8 +2361,7 @@ info_spu_dma_cmdlist (gdb_byte *buf, int
   nr = i;
 
 
-  chain = make_cleanup_ui_out_table_begin_end (current_uiout, 10, nr,
-					       "dma_cmd");
+  ui_out_emit_table table_emitter (current_uiout, 10, nr, "dma_cmd");
 
   current_uiout->table_header (7, ui_left, "opcode", "Opcode");
   current_uiout->table_header (3, ui_left, "tag", "Tag");
@@ -2390,7 +2378,6 @@ info_spu_dma_cmdlist (gdb_byte *buf, int
 
   for (i = 0; i < nr; i++)
     {
-      struct cleanup *cmd_chain;
       ULONGEST mfc_cq_dw0;
       ULONGEST mfc_cq_dw1;
       ULONGEST mfc_cq_dw2;
@@ -2426,55 +2413,53 @@ info_spu_dma_cmdlist (gdb_byte *buf, int
       ea_valid_p = spu_mfc_get_bitfield (mfc_cq_dw2, 39, 39);
       cmd_error_p = spu_mfc_get_bitfield (mfc_cq_dw2, 40, 40);
 
-      cmd_chain = make_cleanup_ui_out_tuple_begin_end (current_uiout, "cmd");
-
-      if (spu_mfc_opcode[mfc_cmd_opcode])
-	current_uiout->field_string ("opcode", spu_mfc_opcode[mfc_cmd_opcode]);
-      else
-	current_uiout->field_int ("opcode", mfc_cmd_opcode);
-
-      current_uiout->field_int ("tag", mfc_cmd_tag);
-      current_uiout->field_int ("tid", tclass_id);
-      current_uiout->field_int ("rid", rclass_id);
-
-      if (ea_valid_p)
-	current_uiout->field_fmt ("ea", "0x%s", phex (mfc_ea, 8));
-      else
-	current_uiout->field_skip ("ea");
+      {
+	ui_out_emit_tuple tuple_emitter (current_uiout, "cmd");
 
-      current_uiout->field_fmt ("lsa", "0x%05x", mfc_lsa << 4);
-      if (qw_valid_p)
-	current_uiout->field_fmt ("size", "0x%05x", mfc_size << 4);
-      else
-	current_uiout->field_fmt ("size", "0x%05x", mfc_size);
+	if (spu_mfc_opcode[mfc_cmd_opcode])
+	  current_uiout->field_string ("opcode", spu_mfc_opcode[mfc_cmd_opcode]);
+	else
+	  current_uiout->field_int ("opcode", mfc_cmd_opcode);
+
+	current_uiout->field_int ("tag", mfc_cmd_tag);
+	current_uiout->field_int ("tid", tclass_id);
+	current_uiout->field_int ("rid", rclass_id);
+
+	if (ea_valid_p)
+	  current_uiout->field_fmt ("ea", "0x%s", phex (mfc_ea, 8));
+	else
+	  current_uiout->field_skip ("ea");
+
+	current_uiout->field_fmt ("lsa", "0x%05x", mfc_lsa << 4);
+	if (qw_valid_p)
+	  current_uiout->field_fmt ("size", "0x%05x", mfc_size << 4);
+	else
+	  current_uiout->field_fmt ("size", "0x%05x", mfc_size);
 
-      if (list_valid_p)
-	{
-	  current_uiout->field_fmt ("lstaddr", "0x%05x", list_lsa << 3);
-	  current_uiout->field_fmt ("lstsize", "0x%05x", list_size << 3);
-	}
-      else
-	{
-	  current_uiout->field_skip ("lstaddr");
-	  current_uiout->field_skip ("lstsize");
-	}
-
-      if (cmd_error_p)
-	current_uiout->field_string ("error_p", "*");
-      else
-	current_uiout->field_skip ("error_p");
+	if (list_valid_p)
+	  {
+	    current_uiout->field_fmt ("lstaddr", "0x%05x", list_lsa << 3);
+	    current_uiout->field_fmt ("lstsize", "0x%05x", list_size << 3);
+	  }
+	else
+	  {
+	    current_uiout->field_skip ("lstaddr");
+	    current_uiout->field_skip ("lstsize");
+	  }
 
-      do_cleanups (cmd_chain);
+	if (cmd_error_p)
+	  current_uiout->field_string ("error_p", "*");
+	else
+	  current_uiout->field_skip ("error_p");
+      }
 
       if (!current_uiout->is_mi_like_p ())
 	printf_filtered ("\n");
     }
-
-  do_cleanups (chain);
 }
 
 static void
-info_spu_dma_command (char *args, int from_tty)
+info_spu_dma_command (const char *args, int from_tty)
 {
   struct frame_info *frame = get_selected_frame (NULL);
   struct gdbarch *gdbarch = get_frame_arch (frame);
@@ -2484,7 +2469,6 @@ info_spu_dma_command (char *args, int fr
   ULONGEST dma_info_status;
   ULONGEST dma_info_stall_and_notify;
   ULONGEST dma_info_atomic_command_status;
-  struct cleanup *chain;
   char annex[32];
   gdb_byte buf[1024];
   LONGEST len;
@@ -2512,7 +2496,7 @@ info_spu_dma_command (char *args, int fr
   dma_info_atomic_command_status
     = extract_unsigned_integer (buf + 32, 8, byte_order);
   
-  chain = make_cleanup_ui_out_tuple_begin_end (current_uiout, "SPUInfoDMA");
+  ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoDMA");
 
   if (current_uiout->is_mi_like_p ())
     {
@@ -2551,11 +2535,10 @@ info_spu_dma_command (char *args, int fr
     }
 
   info_spu_dma_cmdlist (buf + 40, 16, byte_order);
-  do_cleanups (chain);
 }
 
 static void
-info_spu_proxydma_command (char *args, int from_tty)
+info_spu_proxydma_command (const char *args, int from_tty)
 {
   struct frame_info *frame = get_selected_frame (NULL);
   struct gdbarch *gdbarch = get_frame_arch (frame);
@@ -2563,7 +2546,6 @@ info_spu_proxydma_command (char *args, i
   ULONGEST dma_info_type;
   ULONGEST dma_info_mask;
   ULONGEST dma_info_status;
-  struct cleanup *chain;
   char annex[32];
   gdb_byte buf[1024];
   LONGEST len;
@@ -2584,8 +2566,7 @@ info_spu_proxydma_command (char *args, i
   dma_info_mask = extract_unsigned_integer (buf + 8, 8, byte_order);
   dma_info_status = extract_unsigned_integer (buf + 16, 8, byte_order);
   
-  chain = make_cleanup_ui_out_tuple_begin_end (current_uiout,
-					       "SPUInfoProxyDMA");
+  ui_out_emit_tuple tuple_emitter (current_uiout, "SPUInfoProxyDMA");
 
   if (current_uiout->is_mi_like_p ())
     {
@@ -2616,11 +2597,10 @@ info_spu_proxydma_command (char *args, i
     }
 
   info_spu_dma_cmdlist (buf + 24, 8, byte_order);
-  do_cleanups (chain);
 }
 
 static void
-info_spu_command (char *args, int from_tty)
+info_spu_command (const char *args, int from_tty)
 {
   printf_unfiltered (_("\"info spu\" must be followed by "
 		       "the name of an SPU facility.\n"));
@@ -2631,13 +2611,13 @@ info_spu_command (char *args, int from_t
 /* Root of all "set spu "/"show spu " commands.  */
 
 static void
-show_spu_command (char *args, int from_tty)
+show_spu_command (const char *args, int from_tty)
 {
   help_list (showspucmdlist, "show spu ", all_commands, gdb_stdout);
 }
 
 static void
-set_spu_command (char *args, int from_tty)
+set_spu_command (const char *args, int from_tty)
 {
   help_list (setspucmdlist, "set spu ", all_commands, gdb_stdout);
 }
@@ -2669,8 +2649,8 @@ spu_gdbarch_init (struct gdbarch_info in
   int id = -1;
 
   /* Which spufs ID was requested as address space?  */
-  if (info.tdep_info)
-    id = *(int *)info.tdep_info;
+  if (info.id)
+    id = *info.id;
   /* For objfile architectures of SPU solibs, decode the ID from the name.
      This assumes the filename convention employed by solib-spu.c.  */
   else if (info.abfd)
@@ -2742,6 +2722,9 @@ spu_gdbarch_init (struct gdbarch_info in
   set_gdbarch_address_class_name_to_type_flags
     (gdbarch, spu_address_class_name_to_type_flags);
 
+  /* We need to support more than "addr_bit" significant address bits
+     in order to support SPUADDR_ADDR encoded values.  */
+  set_gdbarch_significant_addr_bit (gdbarch, 64);
 
   /* Inferior function calls.  */
   set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
@@ -2781,9 +2764,6 @@ spu_gdbarch_init (struct gdbarch_info in
   return gdbarch;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_spu_tdep;
-
 void
 _initialize_spu_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/spu-tdep.h ./gdb/spu-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/spu-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/spu-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* SPU target-dependent code for GDB, the GNU debugger.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stabsread.c ./gdb/stabsread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stabsread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/stabsread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Support routines for decoding "stabs" debugging information format.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -41,7 +41,7 @@
 #include "demangle.h"
 #include "gdb-demangle.h"
 #include "language.h"
-#include "doublest.h"
+#include "target-float.h"
 #include "cp-abi.h"
 #include "cp-support.h"
 #include <ctype.h>
@@ -52,8 +52,6 @@
 #include "stabsread.h"		/* Our own declarations */
 #undef	EXTERN
 
-extern void _initialize_stabsread (void);
-
 struct nextfield
 {
   struct nextfield *next;
@@ -370,7 +368,7 @@ dbx_init_float_type (struct objfile *obj
   if (format)
     type = init_float_type (objfile, bits, NULL, format);
   else
-    type = init_type (objfile, TYPE_CODE_ERROR, bits / TARGET_CHAR_BIT, NULL);
+    type = init_type (objfile, TYPE_CODE_ERROR, bits, NULL);
 
   return type;
 }
@@ -800,19 +798,15 @@ define_symbol (CORE_ADDR valu, const cha
 	{
 	case 'r':
 	  {
-	    double d = atof (p);
 	    gdb_byte *dbl_valu;
 	    struct type *dbl_type;
 
-	    /* FIXME-if-picky-about-floating-accuracy: Should be using
-	       target arithmetic to get the value.  real.c in GCC
-	       probably has the necessary code.  */
-
 	    dbl_type = objfile_type (objfile)->builtin_double;
 	    dbl_valu
 	      = (gdb_byte *) obstack_alloc (&objfile->objfile_obstack,
 					    TYPE_LENGTH (dbl_type));
-	    store_typed_floating (dbl_valu, dbl_type, d);
+
+	    target_float_from_string (dbl_valu, dbl_type, std::string (p));
 
 	    SYMBOL_TYPE (sym) = dbl_type;
 	    SYMBOL_VALUE_BYTES (sym) = dbl_valu;
@@ -2155,7 +2149,7 @@ rs6000_builtin_type (int typenum, struct
       rettype = init_integer_type (objfile, 32, 1, "unsigned long");
       break;
     case 11:
-      rettype = init_type (objfile, TYPE_CODE_VOID, 1, "void");
+      rettype = init_type (objfile, TYPE_CODE_VOID, TARGET_CHAR_BIT, "void");
       break;
     case 12:
       /* IEEE single precision (32 bit).  */
@@ -3837,7 +3831,8 @@ read_sun_builtin_type (const char **pp, 
 
   if (type_bits == 0)
     {
-      struct type *type = init_type (objfile, TYPE_CODE_VOID, 1, NULL);
+      struct type *type = init_type (objfile, TYPE_CODE_VOID,
+				     TARGET_CHAR_BIT, NULL);
       if (unsigned_type)
         TYPE_UNSIGNED (type) = 1;
       return type;
@@ -4149,7 +4144,7 @@ read_range_type (const char **pp, int ty
 
   /* A type defined as a subrange of itself, with bounds both 0, is void.  */
   if (self_subrange && n2 == 0 && n3 == 0)
-    return init_type (objfile, TYPE_CODE_VOID, 1, NULL);
+    return init_type (objfile, TYPE_CODE_VOID, TARGET_CHAR_BIT, NULL);
 
   /* If n3 is zero and n2 is positive, we want a floating type, and n2
      is the width in bytes.
@@ -4195,7 +4190,8 @@ read_range_type (const char **pp, int ty
      itself with range 0-127.  */
   else if (self_subrange && n2 == 0 && n3 == 127)
     {
-      struct type *type = init_integer_type (objfile, 1, 0, NULL);
+      struct type *type = init_integer_type (objfile, TARGET_CHAR_BIT,
+					     0, NULL);
       TYPE_NOSIGN (type) = 1;
       return type;
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stabsread.h ./gdb/stabsread.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stabsread.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/stabsread.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Include file for stabs debugging format support functions.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -17,6 +17,7 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 struct objfile;
+enum language;
 
 /* Definitions, prototypes, etc for stabs debugging format support
    functions.
@@ -169,7 +170,7 @@ extern struct partial_symtab *dbx_end_ps
 
 extern void process_one_symbol (int, int, CORE_ADDR, const char *,
 				const struct section_offsets *,
-				struct objfile *);
+				struct objfile *, enum language);
 
 extern void elfstab_build_psymtabs (struct objfile *objfile,
 				    asection *stabsect,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stack.c ./gdb/stack.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stack.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/stack.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Print and select stack frames for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -52,6 +52,7 @@
 #include "symfile.h"
 #include "extension.h"
 #include "observer.h"
+#include "common/def-vector.h"
 
 /* The possible choices of "set print frame-arguments", and the value
    of this setting.  */
@@ -224,7 +225,6 @@ static void
 print_frame_arg (const struct frame_arg *arg)
 {
   struct ui_out *uiout = current_uiout;
-  struct cleanup *old_chain;
   const char *error_message = NULL;
 
   string_file stb;
@@ -235,9 +235,8 @@ print_frame_arg (const struct frame_arg 
 	      || (!uiout->is_mi_like_p ()
 		  && arg->entry_kind == print_entry_values_compact));
 
-  annotate_arg_begin ();
-
-  old_chain = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+  annotate_arg_emitter arg_emitter;
+  ui_out_emit_tuple tuple_emitter (uiout, NULL);
   fprintf_symbol_filtered (&stb, SYMBOL_PRINT_NAME (arg->sym),
 			   SYMBOL_LANGUAGE (arg->sym), DMGL_PARAMS | DMGL_ANSI);
   if (arg->entry_kind == print_entry_values_compact)
@@ -305,11 +304,6 @@ print_frame_arg (const struct frame_arg 
     }
 
   uiout->field_stream ("value", stb);
-
-  /* Also invoke ui_out_tuple_end.  */
-  do_cleanups (old_chain);
-
-  annotate_arg_end ();
 }
 
 /* Read in inferior function local SYM at FRAME into ARGP.  Caller is
@@ -622,8 +616,8 @@ print_frame_args (struct symbol *func, s
 	    {
 	      struct symbol *nsym;
 
-	      nsym = lookup_symbol (SYMBOL_LINKAGE_NAME (sym),
-				    b, VAR_DOMAIN, NULL).symbol;
+	      nsym = lookup_symbol_search_name (SYMBOL_SEARCH_NAME (sym),
+						b, VAR_DOMAIN).symbol;
 	      gdb_assert (nsym != NULL);
 	      if (SYMBOL_CLASS (nsym) == LOC_REGISTER
 		  && !SYMBOL_IS_ARGUMENT (nsym))
@@ -730,11 +724,9 @@ print_frame_args (struct symbol *func, s
 void
 set_current_sal_from_frame (struct frame_info *frame)
 {
-  struct symtab_and_line sal;
-
-  find_frame_sal (frame, &sal);
+  symtab_and_line sal = find_frame_sal (frame);
   if (sal.symtab != NULL)
-    set_current_source_symtab_and_line (&sal);
+    set_current_source_symtab_and_line (sal);
 }
 
 /* If ON, GDB will display disassembly of the next source line when
@@ -796,7 +788,6 @@ print_frame_info (struct frame_info *fra
 		  int set_current_sal)
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
-  struct symtab_and_line sal;
   int source_print;
   int location_print;
   struct ui_out *uiout = current_uiout;
@@ -805,8 +796,7 @@ print_frame_info (struct frame_info *fra
       || get_frame_type (frame) == SIGTRAMP_FRAME
       || get_frame_type (frame) == ARCH_FRAME)
     {
-      struct cleanup *uiout_cleanup
-	= make_cleanup_ui_out_tuple_begin_end (uiout, "frame");
+      ui_out_emit_tuple tuple_emitter (uiout, "frame");
 
       annotate_frame_begin (print_level ? frame_relative_level (frame) : 0,
 			    gdbarch, get_frame_pc (frame));
@@ -851,7 +841,6 @@ print_frame_info (struct frame_info *fra
 	do_gdb_disassembly (get_frame_arch (frame), 1,
 			    get_frame_pc (frame), get_frame_pc (frame) + 1);
 
-      do_cleanups (uiout_cleanup);
       return;
     }
 
@@ -861,7 +850,7 @@ print_frame_info (struct frame_info *fra
      the next frame is a SIGTRAMP_FRAME or a DUMMY_FRAME, then the
      next frame was not entered as the result of a call, and we want
      to get the line containing FRAME->pc.  */
-  find_frame_sal (frame, &sal);
+  symtab_and_line sal = find_frame_sal (frame);
 
   location_print = (print_what == LOCATION 
 		    || print_what == LOC_AND_ADDRESS
@@ -1026,36 +1015,33 @@ get_last_displayed_line (void)
 
 /* Get the last sal we displayed, if it's valid.  */
 
-void
-get_last_displayed_sal (struct symtab_and_line *sal)
+symtab_and_line
+get_last_displayed_sal ()
 {
+  symtab_and_line sal;
+
   if (last_displayed_sal_valid)
     {
-      sal->pspace = last_displayed_pspace;
-      sal->pc = last_displayed_addr;
-      sal->symtab = last_displayed_symtab;
-      sal->line = last_displayed_line;
-    }
-  else
-    {
-      sal->pspace = 0;
-      sal->pc = 0;
-      sal->symtab = 0;
-      sal->line = 0;
+      sal.pspace = last_displayed_pspace;
+      sal.pc = last_displayed_addr;
+      sal.symtab = last_displayed_symtab;
+      sal.line = last_displayed_line;
     }
+
+  return sal;
 }
 
 
-/* Attempt to obtain the FUNNAME, FUNLANG and optionally FUNCP of the function
-   corresponding to FRAME.  FUNNAME needs to be freed by the caller.  */
+/* Attempt to obtain the name, FUNLANG and optionally FUNCP of the function
+   corresponding to FRAME.  */
 
-void
-find_frame_funname (struct frame_info *frame, char **funname,
-		    enum language *funlang, struct symbol **funcp)
+gdb::unique_xmalloc_ptr<char>
+find_frame_funname (struct frame_info *frame, enum language *funlang,
+		    struct symbol **funcp)
 {
   struct symbol *func;
+  gdb::unique_xmalloc_ptr<char> funname;
 
-  *funname = NULL;
   *funlang = language_unknown;
   if (funcp)
     *funcp = NULL;
@@ -1098,7 +1084,7 @@ find_frame_funname (struct frame_info *f
 	  /* We also don't know anything about the function besides
 	     its address and name.  */
 	  func = 0;
-	  *funname = xstrdup (MSYMBOL_PRINT_NAME (msymbol.minsym));
+	  funname.reset (xstrdup (MSYMBOL_PRINT_NAME (msymbol.minsym)));
 	  *funlang = MSYMBOL_LANGUAGE (msymbol.minsym);
 	}
       else
@@ -1115,17 +1101,13 @@ find_frame_funname (struct frame_info *f
 		 stored in the symbol table, but we stored a version
 		 with DMGL_PARAMS turned on, and here we don't want to
 		 display parameters.  So remove the parameters.  */
-	      char *func_only = cp_remove_params (print_name);
-
-	      if (func_only)
-		*funname = func_only;
+	      funname = cp_remove_params (print_name);
 	    }
 
-	  /* If we didn't hit the C++ case above, set *funname here.
-	     This approach is taken to avoid having to install a
-	     cleanup in case cp_remove_params can throw.  */
-	  if (*funname == NULL)
-	    *funname = xstrdup (print_name);
+	  /* If we didn't hit the C++ case above, set *funname
+	     here.  */
+	  if (funname == NULL)
+	    funname.reset (xstrdup (print_name));
 	}
     }
   else
@@ -1134,15 +1116,17 @@ find_frame_funname (struct frame_info *f
       CORE_ADDR pc;
 
       if (!get_frame_address_in_block_if_available (frame, &pc))
-	return;
+	return funname;
 
       msymbol = lookup_minimal_symbol_by_pc (pc);
       if (msymbol.minsym != NULL)
 	{
-	  *funname = xstrdup (MSYMBOL_PRINT_NAME (msymbol.minsym));
+	  funname.reset (xstrdup (MSYMBOL_PRINT_NAME (msymbol.minsym)));
 	  *funlang = MSYMBOL_LANGUAGE (msymbol.minsym);
 	}
     }
+
+  return funname;
 }
 
 static void
@@ -1152,9 +1136,7 @@ print_frame (struct frame_info *frame, i
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
   struct ui_out *uiout = current_uiout;
-  char *funname = NULL;
   enum language funlang = language_unknown;
-  struct cleanup *old_chain, *list_chain;
   struct value_print_options opts;
   struct symbol *func;
   CORE_ADDR pc = 0;
@@ -1162,117 +1144,114 @@ print_frame (struct frame_info *frame, i
 
   pc_p = get_frame_pc_if_available (frame, &pc);
 
-
-  find_frame_funname (frame, &funname, &funlang, &func);
-  old_chain = make_cleanup (xfree, funname);
+  gdb::unique_xmalloc_ptr<char> funname
+    = find_frame_funname (frame, &funlang, &func);
 
   annotate_frame_begin (print_level ? frame_relative_level (frame) : 0,
 			gdbarch, pc);
 
-  list_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "frame");
+  {
+    ui_out_emit_tuple tuple_emitter (uiout, "frame");
 
-  if (print_level)
-    {
-      uiout->text ("#");
-      uiout->field_fmt_int (2, ui_left, "level",
-			    frame_relative_level (frame));
-    }
-  get_user_print_options (&opts);
-  if (opts.addressprint)
-    if (!sal.symtab
-	|| frame_show_address (frame, sal)
-	|| print_what == LOC_AND_ADDRESS)
+    if (print_level)
       {
-	annotate_frame_address ();
-	if (pc_p)
-	  uiout->field_core_addr ("addr", gdbarch, pc);
-	else
-	  uiout->field_string ("addr", "<unavailable>");
-	annotate_frame_address_end ();
-	uiout->text (" in ");
+	uiout->text ("#");
+	uiout->field_fmt_int (2, ui_left, "level",
+			      frame_relative_level (frame));
       }
-  annotate_frame_function_name ();
-
-  string_file stb;
-  fprintf_symbol_filtered (&stb, funname ? funname : "??",
-			   funlang, DMGL_ANSI);
-  uiout->field_stream ("func", stb);
-  uiout->wrap_hint ("   ");
-  annotate_frame_args ();
+    get_user_print_options (&opts);
+    if (opts.addressprint)
+      if (!sal.symtab
+	  || frame_show_address (frame, sal)
+	  || print_what == LOC_AND_ADDRESS)
+	{
+	  annotate_frame_address ();
+	  if (pc_p)
+	    uiout->field_core_addr ("addr", gdbarch, pc);
+	  else
+	    uiout->field_string ("addr", "<unavailable>");
+	  annotate_frame_address_end ();
+	  uiout->text (" in ");
+	}
+    annotate_frame_function_name ();
+
+    string_file stb;
+    fprintf_symbol_filtered (&stb, funname ? funname.get () : "??",
+			     funlang, DMGL_ANSI);
+    uiout->field_stream ("func", stb);
+    uiout->wrap_hint ("   ");
+    annotate_frame_args ();
       
-  uiout->text (" (");
-  if (print_args)
-    {
-      struct gdbarch *gdbarch = get_frame_arch (frame);
-      int numargs;
-      struct cleanup *args_list_chain;
+    uiout->text (" (");
+    if (print_args)
+      {
+	struct gdbarch *gdbarch = get_frame_arch (frame);
+	int numargs;
 
-      if (gdbarch_frame_num_args_p (gdbarch))
-	{
-	  numargs = gdbarch_frame_num_args (gdbarch, frame);
-	  gdb_assert (numargs >= 0);
-	}
-      else
-	numargs = -1;
+	if (gdbarch_frame_num_args_p (gdbarch))
+	  {
+	    numargs = gdbarch_frame_num_args (gdbarch, frame);
+	    gdb_assert (numargs >= 0);
+	  }
+	else
+	  numargs = -1;
     
-      args_list_chain = make_cleanup_ui_out_list_begin_end (uiout, "args");
-      TRY
-	{
-	  print_frame_args (func, frame, numargs, gdb_stdout);
-	}
-      CATCH (e, RETURN_MASK_ERROR)
 	{
-	}
-      END_CATCH
+	  ui_out_emit_list list_emitter (uiout, "args");
+	  TRY
+	    {
+	      print_frame_args (func, frame, numargs, gdb_stdout);
+	    }
+	  CATCH (e, RETURN_MASK_ERROR)
+	    {
+	    }
+	  END_CATCH
 
-      /* FIXME: ARGS must be a list.  If one argument is a string it
-	  will have " that will not be properly escaped.  */
-      /* Invoke ui_out_tuple_end.  */
-      do_cleanups (args_list_chain);
-      QUIT;
-    }
-  uiout->text (")");
-  if (sal.symtab)
-    {
-      const char *filename_display;
+	    /* FIXME: ARGS must be a list.  If one argument is a string it
+	       will have " that will not be properly escaped.  */
+	    }
+	QUIT;
+      }
+    uiout->text (")");
+    if (sal.symtab)
+      {
+	const char *filename_display;
       
-      filename_display = symtab_to_filename_for_display (sal.symtab);
-      annotate_frame_source_begin ();
-      uiout->wrap_hint ("   ");
-      uiout->text (" at ");
-      annotate_frame_source_file ();
-      uiout->field_string ("file", filename_display);
-      if (uiout->is_mi_like_p ())
-	{
-	  const char *fullname = symtab_to_fullname (sal.symtab);
+	filename_display = symtab_to_filename_for_display (sal.symtab);
+	annotate_frame_source_begin ();
+	uiout->wrap_hint ("   ");
+	uiout->text (" at ");
+	annotate_frame_source_file ();
+	uiout->field_string ("file", filename_display);
+	if (uiout->is_mi_like_p ())
+	  {
+	    const char *fullname = symtab_to_fullname (sal.symtab);
 
-	  uiout->field_string ("fullname", fullname);
-	}
-      annotate_frame_source_file_end ();
-      uiout->text (":");
-      annotate_frame_source_line ();
-      uiout->field_int ("line", sal.line);
-      annotate_frame_source_end ();
-    }
+	    uiout->field_string ("fullname", fullname);
+	  }
+	annotate_frame_source_file_end ();
+	uiout->text (":");
+	annotate_frame_source_line ();
+	uiout->field_int ("line", sal.line);
+	annotate_frame_source_end ();
+      }
 
-  if (pc_p && (funname == NULL || sal.symtab == NULL))
-    {
-      char *lib = solib_name_from_address (get_frame_program_space (frame),
-					   get_frame_pc (frame));
+    if (pc_p && (funname == NULL || sal.symtab == NULL))
+      {
+	char *lib = solib_name_from_address (get_frame_program_space (frame),
+					     get_frame_pc (frame));
 
-      if (lib)
-	{
-	  annotate_frame_where ();
-	  uiout->wrap_hint ("  ");
-	  uiout->text (" from ");
-	  uiout->field_string ("from", lib);
-	}
-    }
+	if (lib)
+	  {
+	    annotate_frame_where ();
+	    uiout->wrap_hint ("  ");
+	    uiout->text (" from ");
+	    uiout->field_string ("from", lib);
+	  }
+      }
+  }
 
-  /* do_cleanups will call ui_out_tuple_end() for us.  */
-  do_cleanups (list_chain);
   uiout->text ("\n");
-  do_cleanups (old_chain);
 }
 
 
@@ -1295,12 +1274,10 @@ parse_frame_specification (const char *f
       numargs = 0;
       while (1)
 	{
-	  char *addr_string;
-	  struct cleanup *cleanup;
 	  const char *p;
 
 	  /* Skip leading white space, bail of EOL.  */
-	  frame_exp = skip_spaces_const (frame_exp);
+	  frame_exp = skip_spaces (frame_exp);
 	  if (!*frame_exp)
 	    break;
 
@@ -1308,9 +1285,8 @@ parse_frame_specification (const char *f
 	  for (p = frame_exp;
 	       *p && !ISSPACE (*p);
 	       p++);
-	  addr_string = savestring (frame_exp, p - frame_exp);
+	  std::string addr_string (frame_exp, p - frame_exp);
 	  frame_exp = p;
-	  cleanup = make_cleanup (xfree, addr_string);
 	  
 	  /* NOTE: Parse and evaluate expression, but do not use
 	     functions such as parse_and_eval_long or
@@ -1320,9 +1296,7 @@ parse_frame_specification (const char *f
 	     side-effects.  */
 	  if (numargs >= ARRAY_SIZE (args))
 	    error (_("Too many args in frame specification"));
-	  args[numargs++] = parse_and_eval (addr_string);
-
-	  do_cleanups (cleanup);
+	  args[numargs++] = parse_and_eval (addr_string.c_str ());
 	}
     }
 
@@ -1406,10 +1380,9 @@ parse_frame_specification (const char *f
    ADDR_EXP.  Absolutely all information in the frame is printed.  */
 
 static void
-frame_info (char *addr_exp, int from_tty)
+info_frame_command (const char *addr_exp, int from_tty)
 {
   struct frame_info *fi;
-  struct symtab_and_line sal;
   struct symbol *func;
   struct symtab *s;
   struct frame_info *calling_frame_info;
@@ -1419,7 +1392,6 @@ frame_info (char *addr_exp, int from_tty
   const char *pc_regname;
   int selected_frame_p;
   struct gdbarch *gdbarch;
-  struct cleanup *back_to = make_cleanup (null_cleanup, NULL);
   CORE_ADDR frame_pc;
   int frame_pc_p;
   /* Initialize it to avoid "may be used uninitialized" warning.  */
@@ -1444,9 +1416,10 @@ frame_info (char *addr_exp, int from_tty
     pc_regname = "pc";
 
   frame_pc_p = get_frame_pc_if_available (fi, &frame_pc);
-  find_frame_sal (fi, &sal);
   func = get_frame_function (fi);
+  symtab_and_line sal = find_frame_sal (fi);
   s = sal.symtab;
+  gdb::unique_xmalloc_ptr<char> func_only;
   if (func)
     {
       funname = SYMBOL_PRINT_NAME (func);
@@ -1458,13 +1431,10 @@ frame_info (char *addr_exp, int from_tty
 	     stored in the symbol table, but we stored a version
 	     with DMGL_PARAMS turned on, and here we don't want to
 	     display parameters.  So remove the parameters.  */
-	  char *func_only = cp_remove_params (funname);
+	  func_only = cp_remove_params (funname);
 
 	  if (func_only)
-	    {
-	      funname = func_only;
-	      make_cleanup (xfree, func_only);
-	    }
+	    funname = func_only.get ();
 	}
     }
   else if (frame_pc_p)
@@ -1716,15 +1686,13 @@ frame_info (char *addr_exp, int from_tty
     if (count || need_nl)
       puts_filtered ("\n");
   }
-
-  do_cleanups (back_to);
 }
 
 /* Print briefly all stack frames or just the innermost COUNT_EXP
    frames.  */
 
 static void
-backtrace_command_1 (char *count_exp, int show_locals, int no_filters,
+backtrace_command_1 (const char *count_exp, int show_locals, int no_filters,
 		     int from_tty)
 {
   struct frame_info *fi;
@@ -1876,19 +1844,19 @@ backtrace_command_1 (char *count_exp, in
 }
 
 static void
-backtrace_command (char *arg, int from_tty)
+backtrace_command (const char *arg, int from_tty)
 {
-  struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
   int fulltrace_arg = -1, arglen = 0, argc = 0, no_filters  = -1;
   int user_arg = 0;
 
+  std::string reconstructed_arg;
   if (arg)
     {
       char **argv;
       int i;
 
-      argv = gdb_buildargv (arg);
-      make_cleanup_freeargv (argv);
+      gdb_argv built_argv (arg);
+      argv = built_argv.get ();
       argc = 0;
       for (i = 0; argv[i]; i++)
 	{
@@ -1916,17 +1884,15 @@ backtrace_command (char *arg, int from_t
 	{
 	  if (arglen > 0)
 	    {
-	      arg = (char *) xmalloc (arglen + 1);
-	      make_cleanup (xfree, arg);
-	      arg[0] = 0;
 	      for (i = 0; i < argc; i++)
 		{
 		  if (i != fulltrace_arg && i != no_filters)
 		    {
-		      strcat (arg, argv[i]);
-		      strcat (arg, " ");
+		      reconstructed_arg += argv[i];
+		      reconstructed_arg += " ";
 		    }
 		}
+	      arg = reconstructed_arg.c_str ();
 	    }
 	  else
 	    arg = NULL;
@@ -1935,8 +1901,6 @@ backtrace_command (char *arg, int from_t
 
   backtrace_command_1 (arg, fulltrace_arg >= 0 /* show_locals */,
 		       no_filters >= 0 /* no frame-filters */, from_tty);
-
-  do_cleanups (old_chain);
 }
 
 /* Iterate over the local variables of a block B, calling CB with
@@ -1958,6 +1922,7 @@ iterate_over_block_locals (const struct 
 	case LOC_REGISTER:
 	case LOC_STATIC:
 	case LOC_COMPUTED:
+	case LOC_OPTIMIZED_OUT:
 	  if (SYMBOL_IS_ARGUMENT (sym))
 	    break;
 	  if (SYMBOL_DOMAIN (sym) == COMMON_BLOCK_DOMAIN)
@@ -2142,7 +2107,7 @@ print_frame_local_vars (struct frame_inf
 }
 
 void
-locals_info (char *args, int from_tty)
+info_locals_command (const char *args, int from_tty)
 {
   print_frame_local_vars (get_selected_frame (_("No frame selected.")),
 			  0, gdb_stdout);
@@ -2176,8 +2141,8 @@ iterate_over_block_arg_vars (const struc
 	     float).  There are also LOC_ARG/LOC_REGISTER pairs which
 	     are not combined in symbol-reading.  */
 
-	  sym2 = lookup_symbol (SYMBOL_LINKAGE_NAME (sym),
-				b, VAR_DOMAIN, NULL).symbol;
+	  sym2 = lookup_symbol_search_name (SYMBOL_SEARCH_NAME (sym),
+					    b, VAR_DOMAIN).symbol;
 	  (*cb) (SYMBOL_PRINT_NAME (sym), sym2, cb_data);
 	}
     }
@@ -2224,7 +2189,7 @@ print_frame_arg_vars (struct frame_info 
 }
 
 void
-args_info (char *ignore, int from_tty)
+info_args_command (const char *ignore, int from_tty)
 {
   print_frame_arg_vars (get_selected_frame (_("No frame selected.")),
 			gdb_stdout);
@@ -2302,7 +2267,7 @@ find_relative_frame (struct frame_info *
    expressions.  */
 
 void
-select_frame_command (char *level_exp, int from_tty)
+select_frame_command (const char *level_exp, int from_tty)
 {
   struct frame_info *prev_frame = get_selected_frame_if_set ();
 
@@ -2316,7 +2281,7 @@ select_frame_command (char *level_exp, i
    the selected frame.  */
 
 static void
-frame_command (char *level_exp, int from_tty)
+frame_command (const char *level_exp, int from_tty)
 {
   struct frame_info *prev_frame = get_selected_frame_if_set ();
 
@@ -2346,13 +2311,13 @@ up_silently_base (const char *count_exp)
 }
 
 static void
-up_silently_command (char *count_exp, int from_tty)
+up_silently_command (const char *count_exp, int from_tty)
 {
   up_silently_base (count_exp);
 }
 
 static void
-up_command (char *count_exp, int from_tty)
+up_command (const char *count_exp, int from_tty)
 {
   up_silently_base (count_exp);
   observer_notify_user_selected_context_changed (USER_SELECTED_FRAME);
@@ -2385,20 +2350,20 @@ down_silently_base (const char *count_ex
 }
 
 static void
-down_silently_command (char *count_exp, int from_tty)
+down_silently_command (const char *count_exp, int from_tty)
 {
   down_silently_base (count_exp);
 }
 
 static void
-down_command (char *count_exp, int from_tty)
+down_command (const char *count_exp, int from_tty)
 {
   down_silently_base (count_exp);
   observer_notify_user_selected_context_changed (USER_SELECTED_FRAME);
 }
 
 void
-return_command (char *retval_exp, int from_tty)
+return_command (const char *retval_exp, int from_tty)
 {
   /* Initialize it just to avoid a GCC false warning.  */
   enum return_value_convention rv_conv = RETURN_VALUE_STRUCT_CONVENTION;
@@ -2504,7 +2469,7 @@ return_command (char *retval_exp, int fr
   if (return_value != NULL)
     {
       struct type *return_type = value_type (return_value);
-      struct gdbarch *gdbarch = get_regcache_arch (get_current_regcache ());
+      struct gdbarch *gdbarch = get_current_regcache ()->arch ();
 
       gdb_assert (rv_conv != RETURN_VALUE_STRUCT_CONVENTION
 		  && rv_conv != RETURN_VALUE_ABI_RETURNS_ADDRESS);
@@ -2533,30 +2498,25 @@ struct function_bounds
 };
 
 static void
-func_command (char *arg, int from_tty)
+func_command (const char *arg, int from_tty)
 {
   struct frame_info *frame;
   int found = 0;
-  struct symtabs_and_lines sals;
-  int i;
   int level = 1;
-  struct function_bounds *func_bounds = NULL;
-  struct cleanup *cleanups;
 
   if (arg == NULL)
     return;
 
   frame = get_current_frame ();
-  sals = decode_line_with_current_source (arg, DECODE_LINE_FUNFIRSTLINE);
-  cleanups = make_cleanup (xfree, sals.sals);
-  func_bounds = XNEWVEC (struct function_bounds, sals.nelts);
-  make_cleanup (xfree, func_bounds);
-  for (i = 0; (i < sals.nelts && !found); i++)
+  std::vector<symtab_and_line> sals
+    = decode_line_with_current_source (arg, DECODE_LINE_FUNFIRSTLINE);
+  gdb::def_vector<function_bounds> func_bounds (sals.size ());
+  for (size_t i = 0; (i < sals.size () && !found); i++)
     {
-      if (sals.sals[i].pspace != current_program_space)
+      if (sals[i].pspace != current_program_space)
 	func_bounds[i].low = func_bounds[i].high = 0;
-      else if (sals.sals[i].pc == 0
-	       || find_pc_partial_function (sals.sals[i].pc, NULL,
+      else if (sals[i].pc == 0
+	       || find_pc_partial_function (sals[i].pc, NULL,
 					    &func_bounds[i].low,
 					    &func_bounds[i].high) == 0)
 	{
@@ -2566,7 +2526,7 @@ func_command (char *arg, int from_tty)
 
   do
     {
-      for (i = 0; (i < sals.nelts && !found); i++)
+      for (size_t i = 0; (i < sals.size () && !found); i++)
 	found = (get_frame_pc (frame) >= func_bounds[i].low
 		 && get_frame_pc (frame) < func_bounds[i].high);
       if (!found)
@@ -2577,17 +2537,11 @@ func_command (char *arg, int from_tty)
     }
   while (!found && level == 0);
 
-  do_cleanups (cleanups);
-
   if (!found)
     printf_filtered (_("'%s' not within current stack frame.\n"), arg);
   else if (frame != get_selected_frame (NULL))
     select_and_print_frame (frame);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_stack (void);
 
 void
 _initialize_stack (void)
@@ -2640,12 +2594,12 @@ on this backtrace.\n"));
   add_info ("stack", backtrace_command,
 	    _("Backtrace of the stack, or innermost COUNT frames."));
   add_info_alias ("s", "stack", 1);
-  add_info ("frame", frame_info,
+  add_info ("frame", info_frame_command,
 	    _("All about selected stack frame, or frame at ADDR."));
   add_info_alias ("f", "frame", 1);
-  add_info ("locals", locals_info,
+  add_info ("locals", info_locals_command,
 	    _("Local variables of current stack frame."));
-  add_info ("args", args_info,
+  add_info ("args", info_args_command,
 	    _("Argument variables of current stack frame."));
 
   if (dbx_commands)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stack.h ./gdb/stack.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stack.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/stack.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Stack manipulation commands, for GDB the GNU Debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,10 +20,11 @@
 #ifndef STACK_H
 #define STACK_H
 
-void select_frame_command (char *level_exp, int from_tty);
+void select_frame_command (const char *level_exp, int from_tty);
 
-void find_frame_funname (struct frame_info *frame, char **funname,
-			 enum language *funlang, struct symbol **funcp);
+gdb::unique_xmalloc_ptr<char> find_frame_funname (struct frame_info *frame,
+						  enum language *funlang,
+						  struct symbol **funcp);
 
 typedef void (*iterate_over_block_arg_local_vars_cb) (const char *print_name,
 						      struct symbol *sym,
@@ -45,6 +46,6 @@ struct program_space* get_last_displayed
 CORE_ADDR get_last_displayed_addr (void);
 struct symtab* get_last_displayed_symtab (void);
 int get_last_displayed_line (void);
-void get_last_displayed_sal (struct symtab_and_line *sal);
+symtab_and_line get_last_displayed_sal ();
 
 #endif /* #ifndef STACK_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stap-probe.c ./gdb/stap-probe.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stap-probe.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/stap-probe.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* SystemTap probe support for GDB.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -45,10 +45,6 @@
 
 #define STAP_BASE_SECTION_NAME ".stapsdt.base"
 
-/* Forward declaration. */
-
-extern const struct probe_ops stap_probe_ops;
-
 /* Should we display debug information for the probe's argument expression
    parsing?  */
 
@@ -85,6 +81,12 @@ enum stap_arg_bitness
 
 struct stap_probe_arg
 {
+  /* Constructor for stap_probe_arg.  */
+  stap_probe_arg (enum stap_arg_bitness bitness_, struct type *atype_,
+		  expression_up &&aexpr_)
+  : bitness (bitness_), atype (atype_), aexpr (std::move (aexpr_))
+  {}
+
   /* The bitness of this argument.  */
   enum stap_arg_bitness bitness;
 
@@ -92,35 +94,134 @@ struct stap_probe_arg
   struct type *atype;
 
   /* The argument converted to an internal GDB expression.  */
-  struct expression *aexpr;
+  expression_up aexpr;
+};
+
+/* Class that implements the static probe methods for "stap" probes.  */
+
+class stap_static_probe_ops : public static_probe_ops
+{
+public:
+  /* See probe.h.  */
+  bool is_linespec (const char **linespecp) const override;
+
+  /* See probe.h.  */
+  void get_probes (std::vector<probe *> *probesp,
+		   struct objfile *objfile) const override;
+
+  /* See probe.h.  */
+  const char *type_name () const override;
+
+  /* See probe.h.  */
+  std::vector<struct info_probe_column> gen_info_probes_table_header
+    () const override;
 };
 
-typedef struct stap_probe_arg stap_probe_arg_s;
-DEF_VEC_O (stap_probe_arg_s);
+/* SystemTap static_probe_ops.  */
+
+const stap_static_probe_ops stap_static_probe_ops;
 
-struct stap_probe
+class stap_probe : public probe
 {
-  /* Generic information about the probe.  This shall be the first element
-     of this struct, in order to maintain binary compatibility with the
-     `struct probe' and be able to fully abstract it.  */
-  struct probe p;
+public:
+  /* Constructor for stap_probe.  */
+  stap_probe (std::string &&name_, std::string &&provider_, CORE_ADDR address_,
+	      struct gdbarch *arch_, CORE_ADDR sem_addr, const char *args_text)
+    : probe (std::move (name_), std::move (provider_), address_, arch_),
+      m_sem_addr (sem_addr),
+      m_have_parsed_args (false), m_unparsed_args_text (args_text)
+  {}
+
+  /* See probe.h.  */
+  CORE_ADDR get_relocated_address (struct objfile *objfile) override;
+
+  /* See probe.h.  */
+  unsigned get_argument_count (struct frame_info *frame) override;
+
+  /* See probe.h.  */
+  bool can_evaluate_arguments () const override;
+
+  /* See probe.h.  */
+  struct value *evaluate_argument (unsigned n,
+				   struct frame_info *frame) override;
+
+  /* See probe.h.  */
+  void compile_to_ax (struct agent_expr *aexpr,
+		      struct axs_value *axs_value,
+		      unsigned n) override;
+
+  /* See probe.h.  */
+  void set_semaphore (struct objfile *objfile,
+		      struct gdbarch *gdbarch) override;
+
+  /* See probe.h.  */
+  void clear_semaphore (struct objfile *objfile,
+			struct gdbarch *gdbarch) override;
+
+  /* See probe.h.  */
+  const static_probe_ops *get_static_ops () const override;
+
+  /* See probe.h.  */
+  std::vector<const char *> gen_info_probes_table_values () const override;
+
+  /* Return argument N of probe.
+
+     If the probe's arguments have not been parsed yet, parse them.  If
+     there are no arguments, throw an exception (error).  Otherwise,
+     return the requested argument.  */
+  struct stap_probe_arg *get_arg_by_number (unsigned n,
+					    struct gdbarch *gdbarch)
+  {
+    if (!m_have_parsed_args)
+      this->parse_arguments (gdbarch);
+
+    gdb_assert (m_have_parsed_args);
+    if (m_parsed_args.empty ())
+      internal_error (__FILE__, __LINE__,
+		      _("Probe '%s' apparently does not have arguments, but \n"
+			"GDB is requesting its argument number %u anyway.  "
+			"This should not happen.  Please report this bug."),
+		      this->get_name ().c_str (), n);
+
+    if (n > m_parsed_args.size ())
+      internal_error (__FILE__, __LINE__,
+		      _("Probe '%s' has %d arguments, but GDB is requesting\n"
+			"argument %u.  This should not happen.  Please\n"
+			"report this bug."),
+		      this->get_name ().c_str (),
+		      (int) m_parsed_args.size (), n);
+
+    return &m_parsed_args[n];
+  }
+
+  /* Function which parses an argument string from the probe,
+     correctly splitting the arguments and storing their information
+     in properly ways.
+
+     Consider the following argument string (x86 syntax):
+
+     `4@%eax 4@$10'
+
+     We have two arguments, `%eax' and `$10', both with 32-bit
+     unsigned bitness.  This function basically handles them, properly
+     filling some structures with this information.  */
+  void parse_arguments (struct gdbarch *gdbarch);
 
+private:
   /* If the probe has a semaphore associated, then this is the value of
      it, relative to SECT_OFF_DATA.  */
-  CORE_ADDR sem_addr;
+  CORE_ADDR m_sem_addr;
 
-  /* One if the arguments have been parsed.  */
-  unsigned int args_parsed : 1;
+  /* True if the arguments have been parsed.  */
+  bool m_have_parsed_args;
 
-  union
-    {
-      const char *text;
+  /* The text version of the probe's arguments, unparsed.  */
+  const char *m_unparsed_args_text;
 
-      /* Information about each argument.  This is an array of `stap_probe_arg',
-	 with each entry representing one argument.  */
-      VEC (stap_probe_arg_s) *vec;
-    }
-  args_u;
+  /* Information about each argument.  This is an array of `stap_probe_arg',
+     with each entry representing one argument.  This is only valid if
+     M_ARGS_PARSED is true.  */
+  std::vector<struct stap_probe_arg> m_parsed_args;
 };
 
 /* When parsing the arguments, we have to establish different precedences
@@ -326,7 +427,7 @@ stap_get_opcode (const char **s)
 static struct type *
 stap_get_expected_argument_type (struct gdbarch *gdbarch,
 				 enum stap_arg_bitness b,
-				 const struct stap_probe *probe)
+				 const char *probe_name)
 {
   switch (b)
     {
@@ -361,8 +462,7 @@ stap_get_expected_argument_type (struct 
       return builtin_type (gdbarch)->builtin_uint64;
 
     default:
-      error (_("Undefined bitness for probe '%s'."),
-	     probe->p.name);
+      error (_("Undefined bitness for probe '%s'."), probe_name);
       break;
     }
 }
@@ -769,7 +869,7 @@ stap_parse_single_operand (struct stap_p
 	 We handle the register displacement here, and the other cases
 	 recursively.  */
       if (p->inside_paren_p)
-	tmp = skip_spaces_const (tmp);
+	tmp = skip_spaces (tmp);
 
       while (isdigit (*tmp))
 	{
@@ -818,7 +918,7 @@ stap_parse_single_operand (struct stap_p
       tmp = endp;
 
       if (p->inside_paren_p)
-	tmp = skip_spaces_const (tmp);
+	tmp = skip_spaces (tmp);
 
       /* If "stap_is_integer_prefix" returns true, it means we can
 	 accept integers without a prefix here.  But we also need to
@@ -901,7 +1001,7 @@ stap_parse_argument_conditionally (struc
 	 have to parse it as it was a separate expression, without
 	 left-side or precedence.  */
       ++p->arg;
-      p->arg = skip_spaces_const (p->arg);
+      p->arg = skip_spaces (p->arg);
       ++p->inside_paren_p;
 
       stap_parse_argument_1 (p, 0, STAP_OPERAND_PREC_NONE);
@@ -913,7 +1013,7 @@ stap_parse_argument_conditionally (struc
 
       ++p->arg;
       if (p->inside_paren_p)
-	p->arg = skip_spaces_const (p->arg);
+	p->arg = skip_spaces (p->arg);
     }
   else
     error (_("Cannot parse expression `%s'."), p->saved_arg);
@@ -935,7 +1035,7 @@ stap_parse_argument_1 (struct stap_parse
   gdb_assert (p->arg != NULL);
 
   if (p->inside_paren_p)
-    p->arg = skip_spaces_const (p->arg);
+    p->arg = skip_spaces (p->arg);
 
   if (!has_lhs)
     {
@@ -981,7 +1081,7 @@ stap_parse_argument_1 (struct stap_parse
 
       p->arg = tmp_exp_buf;
       if (p->inside_paren_p)
-	p->arg = skip_spaces_const (p->arg);
+	p->arg = skip_spaces (p->arg);
 
       /* Parse the right-side of the expression.  */
       stap_parse_argument_conditionally (p);
@@ -1039,32 +1139,21 @@ stap_parse_argument_1 (struct stap_parse
    - If we find an operator, we skip it.
 
    This function can also call a special function that will try to match
-   unknown tokens.  It will return 1 if the argument has been parsed
-   successfully, or zero otherwise.  */
+   unknown tokens.  It will return the expression_up generated from
+   parsing the argument.  */
 
-static struct expression *
+static expression_up
 stap_parse_argument (const char **arg, struct type *atype,
 		     struct gdbarch *gdbarch)
 {
-  struct stap_parse_info p;
-  struct cleanup *back_to;
-
   /* We need to initialize the expression buffer, in order to begin
      our parsing efforts.  We use language_c here because we may need
      to do pointer arithmetics.  */
-  initialize_expout (&p.pstate, 10, language_def (language_c), gdbarch);
-  back_to = make_cleanup (free_current_contents, &p.pstate.expout);
-
-  p.saved_arg = *arg;
-  p.arg = *arg;
-  p.arg_type = atype;
-  p.gdbarch = gdbarch;
-  p.inside_paren_p = 0;
+  struct stap_parse_info p (*arg, atype, 10, language_def (language_c),
+			    gdbarch);
 
   stap_parse_argument_1 (&p, 0, STAP_OPERAND_PREC_NONE);
 
-  discard_cleanups (back_to);
-
   gdb_assert (p.inside_paren_p == 0);
 
   /* Casting the final expression to the appropriate type.  */
@@ -1072,47 +1161,30 @@ stap_parse_argument (const char **arg, s
   write_exp_elt_type (&p.pstate, atype);
   write_exp_elt_opcode (&p.pstate, UNOP_CAST);
 
-  reallocate_expout (&p.pstate);
-
-  p.arg = skip_spaces_const (p.arg);
+  p.arg = skip_spaces (p.arg);
   *arg = p.arg;
 
-  /* We can safely return EXPOUT here.  */
-  return p.pstate.expout;
+  return p.pstate.release ();
 }
 
-/* Function which parses an argument string from PROBE, correctly splitting
-   the arguments and storing their information in properly ways.
-
-   Consider the following argument string (x86 syntax):
+/* Implementation of 'parse_arguments' method.  */
 
-   `4@%eax 4@$10'
-
-   We have two arguments, `%eax' and `$10', both with 32-bit unsigned bitness.
-   This function basically handles them, properly filling some structures with
-   this information.  */
-
-static void
-stap_parse_probe_arguments (struct stap_probe *probe, struct gdbarch *gdbarch)
+void
+stap_probe::parse_arguments (struct gdbarch *gdbarch)
 {
   const char *cur;
 
-  gdb_assert (!probe->args_parsed);
-  cur = probe->args_u.text;
-  probe->args_parsed = 1;
-  probe->args_u.vec = NULL;
+  gdb_assert (!m_have_parsed_args);
+  cur = m_unparsed_args_text;
+  m_have_parsed_args = true;
 
   if (cur == NULL || *cur == '\0' || *cur == ':')
     return;
 
   while (*cur != '\0')
     {
-      struct stap_probe_arg arg;
-      enum stap_arg_bitness b;
-      int got_minus = 0;
-      struct expression *expr;
-
-      memset (&arg, 0, sizeof (arg));
+      enum stap_arg_bitness bitness;
+      bool got_minus = false;
 
       /* We expect to find something like:
 
@@ -1128,30 +1200,30 @@ stap_parse_probe_arguments (struct stap_
 	    {
 	      /* Discard the `-'.  */
 	      ++cur;
-	      got_minus = 1;
+	      got_minus = true;
 	    }
 
 	  /* Defining the bitness.  */
 	  switch (*cur)
 	    {
 	    case '1':
-	      b = (got_minus ? STAP_ARG_BITNESS_8BIT_SIGNED
-		   : STAP_ARG_BITNESS_8BIT_UNSIGNED);
+	      bitness = (got_minus ? STAP_ARG_BITNESS_8BIT_SIGNED
+			 : STAP_ARG_BITNESS_8BIT_UNSIGNED);
 	      break;
 
 	    case '2':
-	      b = (got_minus ? STAP_ARG_BITNESS_16BIT_SIGNED
-		   : STAP_ARG_BITNESS_16BIT_UNSIGNED);
+	      bitness = (got_minus ? STAP_ARG_BITNESS_16BIT_SIGNED
+			 : STAP_ARG_BITNESS_16BIT_UNSIGNED);
 	      break;
 
 	    case '4':
-	      b = (got_minus ? STAP_ARG_BITNESS_32BIT_SIGNED
-		   : STAP_ARG_BITNESS_32BIT_UNSIGNED);
+	      bitness = (got_minus ? STAP_ARG_BITNESS_32BIT_SIGNED
+			 : STAP_ARG_BITNESS_32BIT_UNSIGNED);
 	      break;
 
 	    case '8':
-	      b = (got_minus ? STAP_ARG_BITNESS_64BIT_SIGNED
-		   : STAP_ARG_BITNESS_64BIT_UNSIGNED);
+	      bitness = (got_minus ? STAP_ARG_BITNESS_64BIT_SIGNED
+			 : STAP_ARG_BITNESS_64BIT_UNSIGNED);
 	      break;
 
 	    default:
@@ -1159,67 +1231,68 @@ stap_parse_probe_arguments (struct stap_
 		/* We have an error, because we don't expect anything
 		   except 1, 2, 4 and 8.  */
 		warning (_("unrecognized bitness %s%c' for probe `%s'"),
-			 got_minus ? "`-" : "`", *cur, probe->p.name);
+			 got_minus ? "`-" : "`", *cur,
+			 this->get_name ().c_str ());
 		return;
 	      }
 	    }
-
-	  arg.bitness = b;
-
 	  /* Discard the number and the `@' sign.  */
 	  cur += 2;
 	}
       else
-	arg.bitness = STAP_ARG_BITNESS_UNDEFINED;
+	bitness = STAP_ARG_BITNESS_UNDEFINED;
 
-      arg.atype = stap_get_expected_argument_type (gdbarch, arg.bitness,
-						   probe);
+      struct type *atype
+	= stap_get_expected_argument_type (gdbarch, bitness,
+					   this->get_name ().c_str ());
 
-      expr = stap_parse_argument (&cur, arg.atype, gdbarch);
+      expression_up expr = stap_parse_argument (&cur, atype, gdbarch);
 
       if (stap_expression_debug)
-	dump_raw_expression (expr, gdb_stdlog,
+	dump_raw_expression (expr.get (), gdb_stdlog,
 			     "before conversion to prefix form");
 
-      prefixify_expression (expr);
+      prefixify_expression (expr.get ());
 
       if (stap_expression_debug)
-	dump_prefix_expression (expr, gdb_stdlog);
+	dump_prefix_expression (expr.get (), gdb_stdlog);
 
-      arg.aexpr = expr;
+      m_parsed_args.emplace_back (bitness, atype, std::move (expr));
 
       /* Start it over again.  */
-      cur = skip_spaces_const (cur);
-
-      VEC_safe_push (stap_probe_arg_s, probe->args_u.vec, &arg);
+      cur = skip_spaces (cur);
     }
 }
 
-/* Implementation of the get_probe_address method.  */
+/* Helper function to relocate an address.  */
 
 static CORE_ADDR
-stap_get_probe_address (struct probe *probe, struct objfile *objfile)
+relocate_address (CORE_ADDR address, struct objfile *objfile)
+{
+  return address + ANOFFSET (objfile->section_offsets,
+			     SECT_OFF_DATA (objfile));
+}
+
+/* Implementation of the get_relocated_address method.  */
+
+CORE_ADDR
+stap_probe::get_relocated_address (struct objfile *objfile)
 {
-  return probe->address + ANOFFSET (objfile->section_offsets,
-				    SECT_OFF_DATA (objfile));
+  return relocate_address (this->get_address (), objfile);
 }
 
 /* Given PROBE, returns the number of arguments present in that probe's
    argument string.  */
 
-static unsigned
-stap_get_probe_argument_count (struct probe *probe_generic,
-			       struct frame_info *frame)
+unsigned
+stap_probe::get_argument_count (struct frame_info *frame)
 {
-  struct stap_probe *probe = (struct stap_probe *) probe_generic;
   struct gdbarch *gdbarch = get_frame_arch (frame);
 
-  gdb_assert (probe_generic->pops == &stap_probe_ops);
-
-  if (!probe->args_parsed)
+  if (!m_have_parsed_args)
     {
-      if (can_evaluate_probe_arguments (probe_generic))
-	stap_parse_probe_arguments (probe, gdbarch);
+      if (this->can_evaluate_arguments ())
+	this->parse_arguments (gdbarch);
       else
 	{
 	  static int have_warned_stap_incomplete = 0;
@@ -1234,13 +1307,12 @@ stap_get_probe_argument_count (struct pr
 	    }
 
 	  /* Marking the arguments as "already parsed".  */
-	  probe->args_u.vec = NULL;
-	  probe->args_parsed = 1;
+	  m_have_parsed_args = true;
 	}
     }
 
-  gdb_assert (probe->args_parsed);
-  return VEC_length (stap_probe_arg_s, probe->args_u.vec);
+  gdb_assert (m_have_parsed_args);
+  return m_parsed_args.size ();
 }
 
 /* Return 1 if OP is a valid operator inside a probe argument, or zero
@@ -1279,36 +1351,12 @@ stap_is_operator (const char *op)
   return ret;
 }
 
-/* Return argument N of probe PROBE.
-
-   If the probe's arguments have not been parsed yet, parse them.  If
-   there are no arguments, throw an exception (error).  Otherwise,
-   return the requested argument.  */
-
-static struct stap_probe_arg *
-stap_get_arg (struct stap_probe *probe, unsigned n, struct gdbarch *gdbarch)
-{
-  if (!probe->args_parsed)
-    stap_parse_probe_arguments (probe, gdbarch);
-
-  gdb_assert (probe->args_parsed);
-  if (probe->args_u.vec == NULL)
-    internal_error (__FILE__, __LINE__,
-		    _("Probe '%s' apparently does not have arguments, but \n"
-		      "GDB is requesting its argument number %u anyway.  "
-		      "This should not happen.  Please report this bug."),
-		    probe->p.name, n);
-
-  return VEC_index (stap_probe_arg_s, probe->args_u.vec, n);
-}
-
-/* Implement the `can_evaluate_probe_arguments' method of probe_ops.  */
+/* Implement the `can_evaluate_arguments' method.  */
 
-static int
-stap_can_evaluate_probe_arguments (struct probe *probe_generic)
+bool
+stap_probe::can_evaluate_arguments () const
 {
-  struct stap_probe *stap_probe = (struct stap_probe *) probe_generic;
-  struct gdbarch *gdbarch = stap_probe->p.arch;
+  struct gdbarch *gdbarch = this->get_gdbarch ();
 
   /* For SystemTap probes, we have to guarantee that the method
      stap_is_single_operand is defined on gdbarch.  If it is not, then it
@@ -1319,71 +1367,42 @@ stap_can_evaluate_probe_arguments (struc
 /* Evaluate the probe's argument N (indexed from 0), returning a value
    corresponding to it.  Assertion is thrown if N does not exist.  */
 
-static struct value *
-stap_evaluate_probe_argument (struct probe *probe_generic, unsigned n,
-			      struct frame_info *frame)
+struct value *
+stap_probe::evaluate_argument (unsigned n, struct frame_info *frame)
 {
-  struct stap_probe *stap_probe = (struct stap_probe *) probe_generic;
-  struct gdbarch *gdbarch = get_frame_arch (frame);
   struct stap_probe_arg *arg;
   int pos = 0;
+  struct gdbarch *gdbarch = get_frame_arch (frame);
 
-  gdb_assert (probe_generic->pops == &stap_probe_ops);
-
-  arg = stap_get_arg (stap_probe, n, gdbarch);
-  return evaluate_subexp_standard (arg->atype, arg->aexpr, &pos, EVAL_NORMAL);
+  arg = this->get_arg_by_number (n, gdbarch);
+  return evaluate_subexp_standard (arg->atype, arg->aexpr.get (), &pos,
+				   EVAL_NORMAL);
 }
 
 /* Compile the probe's argument N (indexed from 0) to agent expression.
    Assertion is thrown if N does not exist.  */
 
-static void
-stap_compile_to_ax (struct probe *probe_generic, struct agent_expr *expr,
-		    struct axs_value *value, unsigned n)
+void
+stap_probe::compile_to_ax (struct agent_expr *expr, struct axs_value *value,
+			   unsigned n)
 {
-  struct stap_probe *stap_probe = (struct stap_probe *) probe_generic;
   struct stap_probe_arg *arg;
   union exp_element *pc;
 
-  gdb_assert (probe_generic->pops == &stap_probe_ops);
-
-  arg = stap_get_arg (stap_probe, n, expr->gdbarch);
+  arg = this->get_arg_by_number (n, expr->gdbarch);
 
   pc = arg->aexpr->elts;
-  gen_expr (arg->aexpr, &pc, expr, value);
+  gen_expr (arg->aexpr.get (), &pc, expr, value);
 
   require_rvalue (expr, value);
   value->type = arg->atype;
 }
-
-/* Destroy (free) the data related to PROBE.  PROBE memory itself is not feed
-   as it is allocated on an obstack.  */
-
-static void
-stap_probe_destroy (struct probe *probe_generic)
-{
-  struct stap_probe *probe = (struct stap_probe *) probe_generic;
-
-  gdb_assert (probe_generic->pops == &stap_probe_ops);
-
-  if (probe->args_parsed)
-    {
-      struct stap_probe_arg *arg;
-      int ix;
-
-      for (ix = 0; VEC_iterate (stap_probe_arg_s, probe->args_u.vec, ix, arg);
-	   ++ix)
-	xfree (arg->aexpr);
-      VEC_free (stap_probe_arg_s, probe->args_u.vec);
-    }
-}
-
 
 
 /* Set or clear a SystemTap semaphore.  ADDRESS is the semaphore's
-   address.  SET is zero if the semaphore should be cleared, or one
-   if it should be set.  This is a helper function for `stap_semaphore_down'
-   and `stap_semaphore_up'.  */
+   address.  SET is zero if the semaphore should be cleared, or one if
+   it should be set.  This is a helper function for
+   'stap_probe::set_semaphore' and 'stap_probe::clear_semaphore'.  */
 
 static void
 stap_modify_semaphore (CORE_ADDR address, int set, struct gdbarch *gdbarch)
@@ -1419,41 +1438,47 @@ stap_modify_semaphore (CORE_ADDR address
     warning (_("Could not write the value of a SystemTap semaphore."));
 }
 
-/* Set a SystemTap semaphore.  SEM is the semaphore's address.  Semaphores
-   act as reference counters, so calls to this function must be paired with
-   calls to `stap_semaphore_down'.
+/* Implementation of the 'set_semaphore' method.
 
-   This function and `stap_semaphore_down' race with another tool changing
-   the probes, but that is too rare to care.  */
+   SystemTap semaphores act as reference counters, so calls to this
+   function must be paired with calls to 'clear_semaphore'.
 
-static void
-stap_set_semaphore (struct probe *probe_generic, struct objfile *objfile,
-		    struct gdbarch *gdbarch)
+   This function and 'clear_semaphore' race with another tool
+   changing the probes, but that is too rare to care.  */
+
+void
+stap_probe::set_semaphore (struct objfile *objfile, struct gdbarch *gdbarch)
+{
+  stap_modify_semaphore (relocate_address (m_sem_addr, objfile), 1, gdbarch);
+}
+
+/* Implementation of the 'clear_semaphore' method.  */
+
+void
+stap_probe::clear_semaphore (struct objfile *objfile, struct gdbarch *gdbarch)
 {
-  struct stap_probe *probe = (struct stap_probe *) probe_generic;
-  CORE_ADDR addr;
+  stap_modify_semaphore (relocate_address (m_sem_addr, objfile), 0, gdbarch);
+}
 
-  gdb_assert (probe_generic->pops == &stap_probe_ops);
+/* Implementation of the 'get_static_ops' method.  */
 
-  addr = (probe->sem_addr
-	  + ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile)));
-  stap_modify_semaphore (addr, 1, gdbarch);
+const static_probe_ops *
+stap_probe::get_static_ops () const
+{
+  return &stap_static_probe_ops;
 }
 
-/* Clear a SystemTap semaphore.  SEM is the semaphore's address.  */
+/* Implementation of the 'gen_info_probes_table_values' method.  */
 
-static void
-stap_clear_semaphore (struct probe *probe_generic, struct objfile *objfile,
-		      struct gdbarch *gdbarch)
+std::vector<const char *>
+stap_probe::gen_info_probes_table_values () const
 {
-  struct stap_probe *probe = (struct stap_probe *) probe_generic;
-  CORE_ADDR addr;
+  const char *val = NULL;
 
-  gdb_assert (probe_generic->pops == &stap_probe_ops);
+  if (m_sem_addr != 0)
+    val = print_core_address (this->get_gdbarch (), m_sem_addr);
 
-  addr = (probe->sem_addr
-	  + ANOFFSET (objfile->section_offsets, SECT_OFF_DATA (objfile)));
-  stap_modify_semaphore (addr, 0, gdbarch);
+  return std::vector<const char *> { val };
 }
 
 /* Helper function that parses the information contained in a
@@ -1472,27 +1497,20 @@ stap_clear_semaphore (struct probe *prob
 
 static void
 handle_stap_probe (struct objfile *objfile, struct sdt_note *el,
-		   VEC (probe_p) **probesp, CORE_ADDR base)
+		   std::vector<probe *> *probesp, CORE_ADDR base)
 {
   bfd *abfd = objfile->obfd;
   int size = bfd_get_arch_size (abfd) / 8;
   struct gdbarch *gdbarch = get_objfile_arch (objfile);
   struct type *ptr_type = builtin_type (gdbarch)->builtin_data_ptr;
-  CORE_ADDR base_ref;
-  const char *probe_args = NULL;
-  struct stap_probe *ret;
-
-  ret = XOBNEW (&objfile->per_bfd->storage_obstack, struct stap_probe);
-  ret->p.pops = &stap_probe_ops;
-  ret->p.arch = gdbarch;
 
   /* Provider and the name of the probe.  */
-  ret->p.provider = (char *) &el->data[3 * size];
-  ret->p.name = ((const char *)
-		 memchr (ret->p.provider, '\0',
-			 (char *) el->data + el->size - ret->p.provider));
+  const char *provider = (const char *) &el->data[3 * size];
+  const char *name = ((const char *)
+		      memchr (provider, '\0',
+			      (char *) el->data + el->size - provider));
   /* Making sure there is a name.  */
-  if (ret->p.name == NULL)
+  if (name == NULL)
     {
       complaint (&symfile_complaints, _("corrupt probe name when "
 					"reading `%s'"),
@@ -1503,32 +1521,32 @@ handle_stap_probe (struct objfile *objfi
       return;
     }
   else
-    ++ret->p.name;
+    ++name;
 
   /* Retrieving the probe's address.  */
-  ret->p.address = extract_typed_address (&el->data[0], ptr_type);
+  CORE_ADDR address = extract_typed_address (&el->data[0], ptr_type);
 
   /* Link-time sh_addr of `.stapsdt.base' section.  */
-  base_ref = extract_typed_address (&el->data[size], ptr_type);
+  CORE_ADDR base_ref = extract_typed_address (&el->data[size], ptr_type);
 
   /* Semaphore address.  */
-  ret->sem_addr = extract_typed_address (&el->data[2 * size], ptr_type);
+  CORE_ADDR sem_addr = extract_typed_address (&el->data[2 * size], ptr_type);
 
-  ret->p.address += base - base_ref;
-  if (ret->sem_addr != 0)
-    ret->sem_addr += base - base_ref;
+  address += base - base_ref;
+  if (sem_addr != 0)
+    sem_addr += base - base_ref;
 
   /* Arguments.  We can only extract the argument format if there is a valid
      name for this probe.  */
-  probe_args = ((const char*)
-		memchr (ret->p.name, '\0',
-			(char *) el->data + el->size - ret->p.name));
+  const char *probe_args = ((const char*)
+			    memchr (name, '\0',
+				    (char *) el->data + el->size - name));
 
   if (probe_args != NULL)
     ++probe_args;
 
   if (probe_args == NULL
-      || (memchr (probe_args, '\0', (char *) el->data + el->size - ret->p.name)
+      || (memchr (probe_args, '\0', (char *) el->data + el->size - name)
 	  != el->data + el->size - 1))
     {
       complaint (&symfile_complaints, _("corrupt probe argument when "
@@ -1539,11 +1557,11 @@ handle_stap_probe (struct objfile *objfi
       return;
     }
 
-  ret->args_parsed = 0;
-  ret->args_u.text = probe_args;
+  stap_probe *ret = new stap_probe (std::string (name), std::string (provider),
+				    address, gdbarch, sem_addr, probe_args);
 
   /* Successfully created probe.  */
-  VEC_safe_push (probe_p, *probesp, (struct probe *) ret);
+  probesp->push_back (ret);
 }
 
 /* Helper function which tries to find the base address of the SystemTap
@@ -1584,11 +1602,21 @@ get_stap_base_address (bfd *obfd, bfd_vm
   return 1;
 }
 
-/* Helper function for `elf_get_probes', which gathers information about all
-   SystemTap probes from OBJFILE.  */
+/* Implementation of the 'is_linespec' method.  */
 
-static void
-stap_get_probes (VEC (probe_p) **probesp, struct objfile *objfile)
+bool
+stap_static_probe_ops::is_linespec (const char **linespecp) const
+{
+  static const char *const keywords[] = { "-pstap", "-probe-stap", NULL };
+
+  return probe_is_linespec_by_keyword (linespecp, keywords);
+}
+
+/* Implementation of the 'get_probes' method.  */
+
+void
+stap_static_probe_ops::get_probes (std::vector<probe *> *probesp,
+				   struct objfile *objfile) const
 {
   /* If we are here, then this is the first time we are parsing the
      SystemTap probe's information.  We basically have to count how many
@@ -1597,7 +1625,7 @@ stap_get_probes (VEC (probe_p) **probesp
   bfd *obfd = objfile->obfd;
   bfd_vma base;
   struct sdt_note *iter;
-  unsigned save_probesp_len = VEC_length (probe_p, *probesp);
+  unsigned save_probesp_len = probesp->size ();
 
   if (objfile->separate_debug_objfile_backlink != NULL)
     {
@@ -1628,7 +1656,7 @@ stap_get_probes (VEC (probe_p) **probesp
       handle_stap_probe (objfile, iter, probesp, base);
     }
 
-  if (save_probesp_len == VEC_length (probe_p, *probesp))
+  if (save_probesp_len == probesp->size ())
     {
       /* If we are here, it means we have failed to parse every known
 	 probe.  */
@@ -1640,85 +1668,37 @@ stap_get_probes (VEC (probe_p) **probesp
 
 /* Implementation of the type_name method.  */
 
-static const char *
-stap_type_name (struct probe *probe)
+const char *
+stap_static_probe_ops::type_name () const
 {
-  gdb_assert (probe->pops == &stap_probe_ops);
   return "stap";
 }
 
-static int
-stap_probe_is_linespec (const char **linespecp)
-{
-  static const char *const keywords[] = { "-pstap", "-probe-stap", NULL };
-
-  return probe_is_linespec_by_keyword (linespecp, keywords);
-}
+/* Implementation of the 'gen_info_probes_table_header' method.  */
 
-static void
-stap_gen_info_probes_table_header (VEC (info_probe_column_s) **heads)
+std::vector<struct info_probe_column>
+stap_static_probe_ops::gen_info_probes_table_header () const
 {
-  info_probe_column_s stap_probe_column;
+  struct info_probe_column stap_probe_column;
 
   stap_probe_column.field_name = "semaphore";
   stap_probe_column.print_name = _("Semaphore");
 
-  VEC_safe_push (info_probe_column_s, *heads, &stap_probe_column);
+  return std::vector<struct info_probe_column> { stap_probe_column };
 }
 
-static void
-stap_gen_info_probes_table_values (struct probe *probe_generic,
-				   VEC (const_char_ptr) **ret)
-{
-  struct stap_probe *probe = (struct stap_probe *) probe_generic;
-  struct gdbarch *gdbarch;
-  const char *val = NULL;
-
-  gdb_assert (probe_generic->pops == &stap_probe_ops);
-
-  gdbarch = probe->p.arch;
-
-  if (probe->sem_addr != 0)
-    val = print_core_address (gdbarch, probe->sem_addr);
-
-  VEC_safe_push (const_char_ptr, *ret, val);
-}
-
-/* SystemTap probe_ops.  */
-
-const struct probe_ops stap_probe_ops =
-{
-  stap_probe_is_linespec,
-  stap_get_probes,
-  stap_get_probe_address,
-  stap_get_probe_argument_count,
-  stap_can_evaluate_probe_arguments,
-  stap_evaluate_probe_argument,
-  stap_compile_to_ax,
-  stap_set_semaphore,
-  stap_clear_semaphore,
-  stap_probe_destroy,
-  stap_type_name,
-  stap_gen_info_probes_table_header,
-  stap_gen_info_probes_table_values,
-  NULL,  /* enable_probe  */
-  NULL   /* disable_probe  */
-};
-
 /* Implementation of the `info probes stap' command.  */
 
 static void
-info_probes_stap_command (char *arg, int from_tty)
+info_probes_stap_command (const char *arg, int from_tty)
 {
-  info_probes_for_ops (arg, from_tty, &stap_probe_ops);
+  info_probes_for_spops (arg, from_tty, &stap_static_probe_ops);
 }
 
-void _initialize_stap_probe (void);
-
 void
 _initialize_stap_probe (void)
 {
-  VEC_safe_push (probe_ops_cp, all_probe_ops, &stap_probe_ops);
+  all_static_probe_ops.push_back (&stap_static_probe_ops);
 
   add_setshow_zuinteger_cmd ("stap-expression", class_maintenance,
 			     &stap_expression_debug,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stap-probe.h ./gdb/stap-probe.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stap-probe.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/stap-probe.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* SystemTap probe support for GDB.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,6 +28,20 @@
 
 struct stap_parse_info
 {
+  stap_parse_info (const char *arg_, struct type *arg_type_,
+		   size_t initial_size, const struct language_defn *lang,
+		   struct gdbarch *gdbarch)
+    : arg (arg_),
+      pstate (initial_size, lang, gdbarch),
+      saved_arg (arg_),
+      arg_type (arg_type_),
+      gdbarch (gdbarch),
+      inside_paren_p (0)
+  {
+  }
+
+  DISABLE_COPY_AND_ASSIGN (stap_parse_info);
+
   /* The probe's argument in a string format.  */
   const char *arg;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/std-operator.def ./gdb/std-operator.def
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/std-operator.def	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/std-operator.def	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Standard language operator definitions for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -114,9 +114,9 @@ OP (MULTI_SUBSCRIPT)
    Thus, the operation occupies four exp_elements.  */
 OP (OP_LONG)
 
-/* OP_DOUBLE is similar but takes a DOUBLEST constant instead of a
-   long.  */
-OP (OP_DOUBLE)
+/* OP_FLOAT is similar but takes a floating-point constant encoded in
+   the target format for the given type instead of a long.  */
+OP (OP_FLOAT)
 
 /* OP_VAR_VALUE takes one struct block * in the following element,
    and one struct symbol * in the following exp_element, followed
@@ -132,6 +132,12 @@ OP (OP_VAR_VALUE)
    current function.  Implemented via DW_OP_entry_value.  */
 OP (OP_VAR_ENTRY_VALUE)
 
+/* OP_VAR_MSYM_VALUE takes one struct objfile * in the following
+   element, and one struct minimal_symbol * in the following
+   exp_element, followed by another OP_VAR_MSYM_VALUE, making four
+   exp_elements.  */
+OP (OP_VAR_MSYM_VALUE)
+
 /* OP_LAST is followed by an integer in the next exp_element.
    The integer is zero for the last value printed,
    or it is the absolute number of a history element.
@@ -212,13 +218,6 @@ OP (UNOP_REINTERPRET_CAST)
    following subexpression.  */
 OP (UNOP_MEMVAL)
 
-/* UNOP_MEMVAL_TLS is followed by a `struct objfile' pointer in the next
-   exp_element and a type pointer in the following exp_element.
-   With another UNOP_MEMVAL_TLS at the end, this makes four exp_elements.
-   It casts the contents of the word offsetted by the value of the
-   following subexpression from the TLS specified by `struct objfile'.  */
-OP (UNOP_MEMVAL_TLS)
-
 /* Like UNOP_MEMVAL, but the type is supplied as a subexpression.  */
 OP (UNOP_MEMVAL_TYPE)
 
@@ -281,6 +280,36 @@ OP (OP_OBJC_SELECTOR)
    a string, which, of course, is variable length.  */
 OP (OP_SCOPE)
 
+/* OP_FUNC_STATIC_VAR refers to a function local static variable.  The
+   function is taken from the following subexpression.  The length of
+   the variable name as a string follows the opcode, followed by
+   BYTES_TO_EXP_ELEM(length) elements containing the data of the
+   string, followed by the length again and the opcode again.
+
+   Note this is used by C++, but not C.  The C parser handles local
+   static variables in the parser directly.  Also, this is only used
+   in C++ if the function/method name is not quoted, like e.g.:
+
+     p S:method()::var
+     p S:method() const::var
+
+   If the function/method is quoted like instead:
+
+     p 'S:method() const'::var
+
+   then the C-specific handling directly in the parser takes over (see
+   "block/variable productions).
+
+   Also, if the whole function+var is quoted like this:
+
+     p 'S:method() const::var'
+
+   then the whole quoted expression is interpreted as a single symbol
+   name and we don't use OP_FUNC_STATIC_VAR either.  In that case, the
+   C++-specific symbol lookup routines take care of the
+   function-local-static search.  */
+OP (OP_FUNC_STATIC_VAR)
+
 /* OP_TYPE is for parsing types, and used with the "ptype" command
    so we can look up types that are qualified by scope, either with
    the GDB "::" operator, or the Modula-2 '.' operator.  */
@@ -296,11 +325,6 @@ OP (OP_OBJC_NSSTRING)
    ":exp" and ":").  */
 OP (OP_RANGE)
 
-/* OP_DECFLOAT is followed by a type pointer in the next exp_element
-   and a dec long constant value in the following exp_element.
-   Then comes another OP_DECFLOAT.  */
-OP (OP_DECFLOAT)
-
 /* OP_ADL_FUNC specifies that the function is to be looked up in an
    Argument Dependent manner (Koenig lookup).  */
 OP (OP_ADL_FUNC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/std-regs.c ./gdb/std-regs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/std-regs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/std-regs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Builtin frame register, for GDB, the GNU debugger.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat.
 
@@ -89,8 +89,6 @@ value_of_builtin_frame_ps_reg (struct fr
   error (_("Standard register ``$ps'' is not available for this target"));
 }
 
-extern initialize_file_ftype _initialize_frame_reg; /* -Wmissing-prototypes */
-
 void
 _initialize_frame_reg (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stubs/buildvms.com ./gdb/stubs/buildvms.com
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stubs/buildvms.com	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/stubs/buildvms.com	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 $! Command to build the gdb stub
 
-$! Copyright (C) 2012-2017 Free Software Foundation, Inc.
+$! Copyright (C) 2012-2018 Free Software Foundation, Inc.
 $!
 $! This file is part of GDB.
 $!
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stubs/ia64vms-stub.c ./gdb/stubs/ia64vms-stub.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stubs/ia64vms-stub.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/stubs/ia64vms-stub.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GDB stub for Itanium OpenVMS
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    Contributed by Tristan Gingold, AdaCore.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stub-termcap.c ./gdb/stub-termcap.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/stub-termcap.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/stub-termcap.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* A very minimal do-nothing termcap emulation stub.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    Contributed by CodeSourcery, LLC.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symfile-add-flags.h ./gdb/symfile-add-flags.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symfile-add-flags.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/symfile-add-flags.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definition of symfile add flags.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symfile.c ./gdb/symfile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symfile.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/symfile.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Generic symbol file reading for the GNU debugger, GDB.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support, using pieces from other GDB modules.
 
@@ -56,6 +56,8 @@
 #include "stack.h"
 #include "gdb_bfd.h"
 #include "cli/cli-utils.h"
+#include "common/byte-vector.h"
+#include "selftest.h"
 
 #include <sys/types.h>
 #include <fcntl.h>
@@ -79,30 +81,17 @@ static void clear_symtab_users_cleanup (
 
 /* Global variables owned by this file.  */
 int readnow_symbol_files;	/* Read full symbols immediately.  */
+int readnever_symbol_files;	/* Never read full symbols.  */
 
 /* Functions this file defines.  */
 
-static void load_command (char *, int);
-
 static void symbol_file_add_main_1 (const char *args, symfile_add_flags add_flags,
 				    objfile_flags flags);
 
-static void add_symbol_file_command (char *, int);
-
 static const struct sym_fns *find_sym_fns (bfd *);
 
 static void overlay_invalidate_all (void);
 
-static void overlay_auto_command (char *, int);
-
-static void overlay_manual_command (char *, int);
-
-static void overlay_off_command (char *, int);
-
-static void overlay_load_command (char *, int);
-
-static void overlay_command (char *, int);
-
 static void simple_free_overlay_table (void);
 
 static void read_target_long_array (CORE_ADDR, unsigned int *, int, int,
@@ -112,28 +101,26 @@ static int simple_read_overlay_table (vo
 
 static int simple_overlay_update_1 (struct obj_section *);
 
-static void info_ext_lang_command (char *args, int from_tty);
-
 static void symfile_find_segment_sections (struct objfile *objfile);
 
-void _initialize_symfile (void);
-
 /* List of all available sym_fns.  On gdb startup, each object file reader
    calls add_symtab_fns() to register information on each format it is
    prepared to read.  */
 
-typedef struct
+struct registered_sym_fns
 {
+  registered_sym_fns (bfd_flavour sym_flavour_, const struct sym_fns *sym_fns_)
+  : sym_flavour (sym_flavour_), sym_fns (sym_fns_)
+  {}
+
   /* BFD flavour that we handle.  */
   enum bfd_flavour sym_flavour;
 
   /* The "vtable" of symbol functions.  */
   const struct sym_fns *sym_fns;
-} registered_sym_fns;
-
-DEF_VEC_O (registered_sym_fns);
+};
 
-static VEC (registered_sym_fns) *symtab_fns = NULL;
+static std::vector<registered_sym_fns> symtab_fns;
 
 /* Values for "set print symbol-loading".  */
 
@@ -859,7 +846,7 @@ static void
 read_symbols (struct objfile *objfile, symfile_add_flags add_flags)
 {
   (*objfile->sf->sym_read) (objfile, add_flags);
-  objfile->per_bfd->minsyms_read = 1;
+  objfile->per_bfd->minsyms_read = true;
 
   /* find_separate_debug_file_in_section should be called only if there is
      single binary with no existing separate debug info file.  */
@@ -1007,7 +994,8 @@ syms_from_objfile_1 (struct objfile *obj
 
   /* Make sure that partially constructed symbol tables will be cleaned up
      if an error occurs during symbol reading.  */
-  old_chain = make_cleanup_free_objfile (objfile);
+  old_chain = make_cleanup (null_cleanup, NULL);
+  std::unique_ptr<struct objfile> objfile_holder (objfile);
 
   /* If ADDRS is NULL, put together a dummy address list.
      We now establish the convention that an addr of zero means
@@ -1029,7 +1017,7 @@ syms_from_objfile_1 (struct objfile *obj
 
       if (symfile_objfile != NULL)
 	{
-	  free_objfile (symfile_objfile);
+	  delete symfile_objfile;
 	  gdb_assert (symfile_objfile == NULL);
 	}
 
@@ -1063,6 +1051,7 @@ syms_from_objfile_1 (struct objfile *obj
 
   /* Discard cleanups as symbol reading was successful.  */
 
+  objfile_holder.release ();
   discard_cleanups (old_chain);
   xfree (local_addr);
 }
@@ -1111,7 +1100,7 @@ finish_new_objfile (struct objfile *objf
    ABFD is a BFD already open on the file, as from symfile_bfd_open.
    A new reference is acquired by this function.
 
-   For NAME description see allocate_objfile's definition.
+   For NAME description see the objfile constructor.
 
    ADD_FLAGS encodes verbosity, whether this is main symbol file or
    extra, such as dynamically loaded code, and what to do with breakpoins.
@@ -1143,6 +1132,12 @@ symbol_file_add_with_addrs (bfd *abfd, c
       flags |= OBJF_READNOW;
       add_flags &= ~SYMFILE_NO_READ;
     }
+  else if (readnever_symbol_files
+	   || (parent != NULL && (parent->flags & OBJF_READNEVER)))
+    {
+      flags |= OBJF_READNEVER;
+      add_flags |= SYMFILE_NO_READ;
+    }
 
   /* Give user a chance to burp if we'd be
      interactively wiping out any existing symbols.  */
@@ -1155,7 +1150,7 @@ symbol_file_add_with_addrs (bfd *abfd, c
 
   if (mainline)
     flags |= OBJF_MAINLINE;
-  objfile = allocate_objfile (abfd, name, flags);
+  objfile = new struct objfile (abfd, name, flags);
 
   if (parent)
     add_separate_debug_objfile (objfile, parent);
@@ -1229,7 +1224,7 @@ symbol_file_add_with_addrs (bfd *abfd, c
 }
 
 /* Add BFD as a separate debug file for OBJFILE.  For NAME description
-   see allocate_objfile's definition.  */
+   see the objfile constructor.  */
 
 void
 symbol_file_add_separate (bfd *bfd, const char *name,
@@ -1333,6 +1328,10 @@ symbol_file_clear (int from_tty)
     printf_unfiltered (_("No symbol file now.\n"));
 }
 
+/* See symfile.h.  */
+
+int separate_debug_file_debug = 0;
+
 static int
 separate_debug_file_exists (const char *name, unsigned long crc,
 			    struct objfile *parent_objfile)
@@ -1351,6 +1350,9 @@ separate_debug_file_exists (const char *
   if (filename_cmp (name, objfile_name (parent_objfile)) == 0)
     return 0;
 
+  if (separate_debug_file_debug)
+    printf_unfiltered (_("  Trying %s\n"), name);
+
   gdb_bfd_ref_ptr abfd (gdb_bfd_open (name, gnutarget, -1));
 
   if (abfd == NULL)
@@ -1444,6 +1446,10 @@ find_separate_debug_file (const char *di
   struct cleanup *back_to;
   int ix;
 
+  if (separate_debug_file_debug)
+    printf_unfiltered (_("\nLooking for separate debug info (debug link) for "
+		         "%s\n"), objfile_name (objfile));
+
   /* Set I to std::max (strlen (canon_dir), strlen (dir)).  */
   i = strlen (dir);
   if (canon_dir != NULL && strlen (canon_dir) > i)
@@ -1544,13 +1550,11 @@ terminate_after_last_dir_separator (char
 char *
 find_separate_debug_file_by_debuglink (struct objfile *objfile)
 {
-  char *debuglink;
-  char *dir, *canon_dir;
   char *debugfile;
   unsigned long crc32;
-  struct cleanup *cleanups;
 
-  debuglink = bfd_get_debug_link_info (objfile->obfd, &crc32);
+  gdb::unique_xmalloc_ptr<char> debuglink
+    (bfd_get_debug_link_info (objfile->obfd, &crc32));
 
   if (debuglink == NULL)
     {
@@ -1559,15 +1563,12 @@ find_separate_debug_file_by_debuglink (s
       return NULL;
     }
 
-  cleanups = make_cleanup (xfree, debuglink);
-  dir = xstrdup (objfile_name (objfile));
-  make_cleanup (xfree, dir);
-  terminate_after_last_dir_separator (dir);
-  canon_dir = lrealpath (dir);
-
-  debugfile = find_separate_debug_file (dir, canon_dir, debuglink,
-					crc32, objfile);
-  xfree (canon_dir);
+  std::string dir = objfile_name (objfile);
+  terminate_after_last_dir_separator (&dir[0]);
+  gdb::unique_xmalloc_ptr<char> canon_dir (lrealpath (dir.c_str ()));
+
+  debugfile = find_separate_debug_file (dir.c_str (), canon_dir.get (),
+					debuglink.get (), crc32, objfile);
 
   if (debugfile == NULL)
     {
@@ -1579,19 +1580,17 @@ find_separate_debug_file_by_debuglink (s
       if (lstat (objfile_name (objfile), &st_buf) == 0
 	  && S_ISLNK (st_buf.st_mode))
 	{
-	  char *symlink_dir;
-
-	  symlink_dir = lrealpath (objfile_name (objfile));
+	  gdb::unique_xmalloc_ptr<char> symlink_dir
+	    (lrealpath (objfile_name (objfile)));
 	  if (symlink_dir != NULL)
 	    {
-	      make_cleanup (xfree, symlink_dir);
-	      terminate_after_last_dir_separator (symlink_dir);
-	      if (strcmp (dir, symlink_dir) != 0)
+	      terminate_after_last_dir_separator (symlink_dir.get ());
+	      if (dir != symlink_dir.get ())
 		{
 		  /* Different directory, so try using it.  */
-		  debugfile = find_separate_debug_file (symlink_dir,
-							symlink_dir,
-							debuglink,
+		  debugfile = find_separate_debug_file (symlink_dir.get (),
+							symlink_dir.get (),
+							debuglink.get (),
 							crc32,
 							objfile);
 		}
@@ -1599,10 +1598,19 @@ find_separate_debug_file_by_debuglink (s
 	}
     }
 
-  do_cleanups (cleanups);
   return debugfile;
 }
 
+/* Make sure that OBJF_{READNOW,READNEVER} are not set
+   simultaneously.  */
+
+static void
+validate_readnow_readnever (objfile_flags flags)
+{
+  if ((flags & OBJF_READNOW) && (flags & OBJF_READNEVER))
+    error (_("-readnow and -readnever cannot be used simultaneously"));
+}
+
 /* This is the symbol-file command.  Read the file, analyze its
    symbols, and add a struct symtab to a symtab list.  The syntax of
    the command is rather bizarre:
@@ -1618,7 +1626,7 @@ find_separate_debug_file_by_debuglink (s
    conventions (because it is confusing and inconvenient).  */
 
 void
-symbol_file_command (char *args, int from_tty)
+symbol_file_command (const char *args, int from_tty)
 {
   dont_repeat ();
 
@@ -1628,35 +1636,42 @@ symbol_file_command (char *args, int fro
     }
   else
     {
-      char **argv = gdb_buildargv (args);
       objfile_flags flags = OBJF_USERLOADED;
       symfile_add_flags add_flags = 0;
-      struct cleanup *cleanups;
       char *name = NULL;
+      bool stop_processing_options = false;
+      int idx;
+      char *arg;
 
       if (from_tty)
 	add_flags |= SYMFILE_VERBOSE;
 
-      cleanups = make_cleanup_freeargv (argv);
-      while (*argv != NULL)
+      gdb_argv built_argv (args);
+      for (arg = built_argv[0], idx = 0; arg != NULL; arg = built_argv[++idx])
 	{
-	  if (strcmp (*argv, "-readnow") == 0)
-	    flags |= OBJF_READNOW;
-	  else if (**argv == '-')
-	    error (_("unknown option `%s'"), *argv);
-	  else
+	  if (stop_processing_options || *arg != '-')
 	    {
-	      symbol_file_add_main_1 (*argv, add_flags, flags);
-	      name = *argv;
+	      if (name == NULL)
+		name = arg;
+	      else
+		error (_("Unrecognized argument \"%s\""), arg);
 	    }
-
-	  argv++;
+	  else if (strcmp (arg, "-readnow") == 0)
+	    flags |= OBJF_READNOW;
+	  else if (strcmp (arg, "-readnever") == 0)
+	    flags |= OBJF_READNEVER;
+	  else if (strcmp (arg, "--") == 0)
+	    stop_processing_options = true;
+	  else
+	    error (_("Unrecognized argument \"%s\""), arg);
 	}
 
       if (name == NULL)
 	error (_("no symbol file name was specified"));
 
-      do_cleanups (cleanups);
+      validate_readnow_readnever (flags);
+
+      symbol_file_add_main_1 (name, add_flags, flags);
     }
 }
 
@@ -1708,32 +1723,28 @@ symfile_bfd_open (const char *name)
 
   if (!is_target_filename (name))
     {
-      char *expanded_name, *absolute_name;
+      char *absolute_name;
 
-      expanded_name = tilde_expand (name); /* Returns 1st new malloc'd copy.  */
+      gdb::unique_xmalloc_ptr<char> expanded_name (tilde_expand (name));
 
       /* Look down path for it, allocate 2nd new malloc'd copy.  */
       desc = openp (getenv ("PATH"),
 		    OPF_TRY_CWD_FIRST | OPF_RETURN_REALPATH,
-		    expanded_name, O_RDONLY | O_BINARY, &absolute_name);
+		    expanded_name.get (), O_RDONLY | O_BINARY, &absolute_name);
 #if defined(__GO32__) || defined(_WIN32) || defined (__CYGWIN__)
       if (desc < 0)
 	{
-	  char *exename = (char *) alloca (strlen (expanded_name) + 5);
+	  char *exename = (char *) alloca (strlen (expanded_name.get ()) + 5);
 
-	  strcat (strcpy (exename, expanded_name), ".exe");
+	  strcat (strcpy (exename, expanded_name.get ()), ".exe");
 	  desc = openp (getenv ("PATH"),
 			OPF_TRY_CWD_FIRST | OPF_RETURN_REALPATH,
 			exename, O_RDONLY | O_BINARY, &absolute_name);
 	}
 #endif
       if (desc < 0)
-	{
-	  make_cleanup (xfree, expanded_name);
-	  perror_with_name (expanded_name);
-	}
+	perror_with_name (expanded_name.get ());
 
-      xfree (expanded_name);
       make_cleanup (xfree, absolute_name);
       name = absolute_name;
     }
@@ -1778,9 +1789,7 @@ get_section_index (struct objfile *objfi
 void
 add_symtab_fns (enum bfd_flavour flavour, const struct sym_fns *sf)
 {
-  registered_sym_fns fns = { flavour, sf };
-
-  VEC_safe_push (registered_sym_fns, symtab_fns, &fns);
+  symtab_fns.emplace_back (flavour, sf);
 }
 
 /* Initialize OBJFILE to read symbols from its associated BFD.  It
@@ -1791,18 +1800,16 @@ add_symtab_fns (enum bfd_flavour flavour
 static const struct sym_fns *
 find_sym_fns (bfd *abfd)
 {
-  registered_sym_fns *rsf;
   enum bfd_flavour our_flavour = bfd_get_flavour (abfd);
-  int i;
 
   if (our_flavour == bfd_target_srec_flavour
       || our_flavour == bfd_target_ihex_flavour
       || our_flavour == bfd_target_tekhex_flavour)
     return NULL;	/* No symbols.  */
 
-  for (i = 0; VEC_iterate (registered_sym_fns, symtab_fns, i, rsf); ++i)
-    if (our_flavour == rsf->sym_flavour)
-      return rsf->sym_fns;
+  for (const registered_sym_fns &rsf : symtab_fns)
+    if (our_flavour == rsf.sym_flavour)
+      return rsf.sym_fns;
 
   error (_("I'm sorry, Dave, I can't do that.  Symbol format `%s' unknown."),
 	 bfd_get_target (abfd));
@@ -1812,7 +1819,7 @@ find_sym_fns (bfd *abfd)
 /* This function runs the load command of our current target.  */
 
 static void
-load_command (char *arg, int from_tty)
+load_command (const char *arg, int from_tty)
 {
   struct cleanup *cleanup = make_cleanup (null_cleanup, NULL);
 
@@ -1825,7 +1832,7 @@ load_command (char *arg, int from_tty)
 
   if (arg == NULL)
     {
-      char *parg;
+      const char *parg;
       int count = 0;
 
       parg = arg = get_exec_file (1);
@@ -1842,7 +1849,7 @@ load_command (char *arg, int from_tty)
 	  /* We need to quote this string so buildargv can pull it apart.  */
 	  char *temp = (char *) xmalloc (strlen (arg) + count + 1 );
 	  char *ptemp = temp;
-	  char *prev;
+	  const char *prev;
 
 	  make_cleanup (xfree, temp);
 
@@ -1953,16 +1960,14 @@ load_progress (ULONGEST bytes, void *unt
 	 might add a verify_memory() method to the target vector and
 	 then use that.  remote.c could implement that method using
 	 the ``qCRC'' packet.  */
-      gdb_byte *check = (gdb_byte *) xmalloc (bytes);
-      struct cleanup *verify_cleanups = make_cleanup (xfree, check);
+      gdb::byte_vector check (bytes);
 
-      if (target_read_memory (args->lma, check, bytes) != 0)
+      if (target_read_memory (args->lma, check.data (), bytes) != 0)
 	error (_("Download verify read failed at %s"),
 	       paddress (target_gdbarch (), args->lma));
-      if (memcmp (args->buffer, check, bytes) != 0)
+      if (memcmp (args->buffer, check.data (), bytes) != 0)
 	error (_("Download verify compare failed at %s"),
 	       paddress (target_gdbarch (), args->lma));
-      do_cleanups (verify_cleanups);
     }
   totals->data_count += bytes;
   args->lma += bytes;
@@ -2049,29 +2054,25 @@ static void print_transfer_performance (
 void
 generic_load (const char *args, int from_tty)
 {
-  char *filename;
-  struct cleanup *old_cleanups = make_cleanup (null_cleanup, 0);
+  struct cleanup *old_cleanups;
   struct load_section_data cbdata;
   struct load_progress_data total_progress;
   struct ui_out *uiout = current_uiout;
 
   CORE_ADDR entry;
-  char **argv;
 
   memset (&cbdata, 0, sizeof (cbdata));
   memset (&total_progress, 0, sizeof (total_progress));
   cbdata.progress_data = &total_progress;
 
-  make_cleanup (clear_memory_write_data, &cbdata.requests);
+  old_cleanups = make_cleanup (clear_memory_write_data, &cbdata.requests);
 
   if (args == NULL)
     error_no_arg (_("file to load"));
 
-  argv = gdb_buildargv (args);
-  make_cleanup_freeargv (argv);
+  gdb_argv argv (args);
 
-  filename = tilde_expand (argv[0]);
-  make_cleanup (xfree, filename);
+  gdb::unique_xmalloc_ptr<char> filename (tilde_expand (argv[0]));
 
   if (argv[1] != NULL)
     {
@@ -2089,16 +2090,13 @@ generic_load (const char *args, int from
     }
 
   /* Open the file for loading.  */
-  gdb_bfd_ref_ptr loadfile_bfd (gdb_bfd_open (filename, gnutarget, -1));
+  gdb_bfd_ref_ptr loadfile_bfd (gdb_bfd_open (filename.get (), gnutarget, -1));
   if (loadfile_bfd == NULL)
-    {
-      perror_with_name (filename);
-      return;
-    }
+    perror_with_name (filename.get ());
 
   if (!bfd_check_format (loadfile_bfd.get (), bfd_object))
     {
-      error (_("\"%s\" is not an object file: %s"), filename,
+      error (_("\"%s\" is not an object file: %s"), filename.get (),
 	     bfd_errmsg (bfd_get_error ()));
     }
 
@@ -2205,18 +2203,13 @@ print_transfer_performance (struct ui_fi
    value to use.  We are now discontinuing this type of ad hoc syntax.  */
 
 static void
-add_symbol_file_command (char *args, int from_tty)
+add_symbol_file_command (const char *args, int from_tty)
 {
   struct gdbarch *gdbarch = get_current_arch ();
-  char *filename = NULL;
+  gdb::unique_xmalloc_ptr<char> filename;
   char *arg;
-  int section_index = 0;
   int argcnt = 0;
   int sec_num = 0;
-  int i;
-  int expecting_sec_name = 0;
-  int expecting_sec_addr = 0;
-  char **argv;
   struct objfile *objf;
   objfile_flags flags = OBJF_USERLOADED | OBJF_SHARED;
   symfile_add_flags add_flags = 0;
@@ -2231,86 +2224,71 @@ add_symbol_file_command (char *args, int
   };
 
   struct section_addr_info *section_addrs;
-  struct sect_opt *sect_opts = NULL;
-  size_t num_sect_opts = 0;
+  std::vector<sect_opt> sect_opts = { { ".text", NULL } };
+  bool stop_processing_options = false;
   struct cleanup *my_cleanups = make_cleanup (null_cleanup, NULL);
 
-  num_sect_opts = 16;
-  sect_opts = XNEWVEC (struct sect_opt, num_sect_opts);
-
   dont_repeat ();
 
   if (args == NULL)
     error (_("add-symbol-file takes a file name and an address"));
 
-  argv = gdb_buildargv (args);
-  make_cleanup_freeargv (argv);
+  bool seen_addr = false;
+  gdb_argv argv (args);
 
   for (arg = argv[0], argcnt = 0; arg != NULL; arg = argv[++argcnt])
     {
-      /* Process the argument.  */
-      if (argcnt == 0)
+      if (stop_processing_options || *arg != '-')
 	{
-	  /* The first argument is the file name.  */
-	  filename = tilde_expand (arg);
-	  make_cleanup (xfree, filename);
-	}
-      else if (argcnt == 1)
-	{
-	  /* The second argument is always the text address at which
-	     to load the program.  */
-	  sect_opts[section_index].name = ".text";
-	  sect_opts[section_index].value = arg;
-	  if (++section_index >= num_sect_opts)
+	  if (filename == NULL)
 	    {
-	      num_sect_opts *= 2;
-	      sect_opts = ((struct sect_opt *)
-			   xrealloc (sect_opts,
-				     num_sect_opts
-				     * sizeof (struct sect_opt)));
+	      /* First non-option argument is always the filename.  */
+	      filename.reset (tilde_expand (arg));
 	    }
-	}
-      else
-	{
-	  /* It's an option (starting with '-') or it's an argument
-	     to an option.  */
-	  if (expecting_sec_name)
+	  else if (!seen_addr)
 	    {
-	      sect_opts[section_index].name = arg;
-	      expecting_sec_name = 0;
-	    }
-	  else if (expecting_sec_addr)
-	    {
-	      sect_opts[section_index].value = arg;
-	      expecting_sec_addr = 0;
-	      if (++section_index >= num_sect_opts)
-		{
-		  num_sect_opts *= 2;
-		  sect_opts = ((struct sect_opt *)
-			       xrealloc (sect_opts,
-					 num_sect_opts
-					 * sizeof (struct sect_opt)));
-		}
-	    }
-	  else if (strcmp (arg, "-readnow") == 0)
-	    flags |= OBJF_READNOW;
-	  else if (strcmp (arg, "-s") == 0)
-	    {
-	      expecting_sec_name = 1;
-	      expecting_sec_addr = 1;
+	      /* The second non-option argument is always the text
+		 address at which to load the program.  */
+	      sect_opts[0].value = arg;
+	      seen_addr = true;
 	    }
 	  else
-	    error (_("USAGE: add-symbol-file <filename> <textaddress>"
-		     " [-readnow] [-s <secname> <addr>]*"));
+	    error (_("Unrecognized argument \"%s\""), arg);
+	}
+      else if (strcmp (arg, "-readnow") == 0)
+	flags |= OBJF_READNOW;
+      else if (strcmp (arg, "-readnever") == 0)
+	flags |= OBJF_READNEVER;
+      else if (strcmp (arg, "-s") == 0)
+	{
+	  if (argv[argcnt + 1] == NULL)
+	    error (_("Missing section name after \"-s\""));
+	  else if (argv[argcnt + 2] == NULL)
+	    error (_("Missing section address after \"-s\""));
+
+	  sect_opt sect = { argv[argcnt + 1], argv[argcnt + 2] };
+
+	  sect_opts.push_back (sect);
+	  argcnt += 2;
 	}
+      else if (strcmp (arg, "--") == 0)
+	stop_processing_options = true;
+      else
+	error (_("Unrecognized argument \"%s\""), arg);
     }
 
+  if (filename == NULL)
+    error (_("You must provide a filename to be loaded."));
+
+  validate_readnow_readnever (flags);
+
   /* This command takes at least two arguments.  The first one is a
      filename, and the second is the address where this file has been
      loaded.  Abort now if this address hasn't been provided by the
      user.  */
-  if (section_index < 1)
-    error (_("The address where %s has been loaded is missing"), filename);
+  if (!seen_addr)
+    error (_("The address where %s has been loaded is missing"),
+	   filename.get ());
 
   /* Print the prompt for the query below.  And save the arguments into
      a sect_addr_info structure to be passed around to other
@@ -2318,14 +2296,15 @@ add_symbol_file_command (char *args, int
      statements because hex_string returns a local static
      string.  */
 
-  printf_unfiltered (_("add symbol table from file \"%s\" at\n"), filename);
-  section_addrs = alloc_section_addr_info (section_index);
+  printf_unfiltered (_("add symbol table from file \"%s\" at\n"),
+		     filename.get ());
+  section_addrs = alloc_section_addr_info (sect_opts.size ());
   make_cleanup (xfree, section_addrs);
-  for (i = 0; i < section_index; i++)
+  for (sect_opt &sect : sect_opts)
     {
       CORE_ADDR addr;
-      const char *val = sect_opts[i].value;
-      const char *sec = sect_opts[i].name;
+      const char *val = sect.value;
+      const char *sec = sect.name;
 
       addr = parse_and_eval_address (val);
 
@@ -2348,7 +2327,7 @@ add_symbol_file_command (char *args, int
   if (from_tty && (!query ("%s", "")))
     error (_("Not confirmed."));
 
-  objf = symbol_file_add (filename, add_flags, section_addrs, flags);
+  objf = symbol_file_add (filename.get (), add_flags, section_addrs, flags);
 
   add_target_sections_of_objfile (objf);
 
@@ -2362,11 +2341,9 @@ add_symbol_file_command (char *args, int
 /* This function removes a symbol file that was added via add-symbol-file.  */
 
 static void
-remove_symbol_file_command (char *args, int from_tty)
+remove_symbol_file_command (const char *args, int from_tty)
 {
-  char **argv;
   struct objfile *objf = NULL;
-  struct cleanup *my_cleanups;
   struct program_space *pspace = current_program_space;
 
   dont_repeat ();
@@ -2374,9 +2351,7 @@ remove_symbol_file_command (char *args, 
   if (args == NULL)
     error (_("remove-symbol-file: no symbol file provided"));
 
-  my_cleanups = make_cleanup (null_cleanup, NULL);
-
-  argv = gdb_buildargv (args);
+  gdb_argv argv (args);
 
   if (strcmp (argv[0], "-a") == 0)
     {
@@ -2402,20 +2377,18 @@ remove_symbol_file_command (char *args, 
   else if (argv[0] != NULL)
     {
       /* Interpret the current argument as a file name.  */
-      char *filename;
 
       if (argv[1] != NULL)
 	error (_("Junk after %s"), argv[0]);
 
-      filename = tilde_expand (argv[0]);
-      make_cleanup (xfree, filename);
+      gdb::unique_xmalloc_ptr<char> filename (tilde_expand (argv[0]));
 
       ALL_OBJFILES (objf)
 	{
 	  if ((objf->flags & OBJF_USERLOADED) != 0
 	      && (objf->flags & OBJF_SHARED) != 0
 	      && objf->pspace == pspace
-	      && filename_cmp (filename, objfile_name (objf)) == 0)
+	      && filename_cmp (filename.get (), objfile_name (objf)) == 0)
 	    break;
 	}
     }
@@ -2428,10 +2401,8 @@ remove_symbol_file_command (char *args, 
 		 objfile_name (objf)))
     error (_("Not confirmed."));
 
-  free_objfile (objf);
+  delete objf;
   clear_symtab_users (0);
-
-  do_cleanups (my_cleanups);
 }
 
 /* Re-read symbols if a symbol-file has changed.  */
@@ -2496,9 +2467,10 @@ reread_symbols (void)
 	  /* If we get an error, blow away this objfile (not sure if
 	     that is the correct response for things like shared
 	     libraries).  */
-	  old_cleanups = make_cleanup_free_objfile (objfile);
+	  std::unique_ptr<struct objfile> objfile_holder (objfile);
+
 	  /* We need to do this whenever any symbols go away.  */
-	  make_cleanup (clear_symtab_users_cleanup, 0 /*ignore*/);
+	  old_cleanups = make_cleanup (clear_symtab_users_cleanup, 0 /*ignore*/);
 
 	  if (exec_bfd != NULL
 	      && filename_cmp (bfd_get_filename (objfile->obfd),
@@ -2564,18 +2536,15 @@ reread_symbols (void)
 
 	  /* FIXME: Do we have to free a whole linked list, or is this
 	     enough?  */
-	  if (objfile->global_psymbols.list)
-	    xfree (objfile->global_psymbols.list);
-	  memset (&objfile->global_psymbols, 0,
-		  sizeof (objfile->global_psymbols));
-	  if (objfile->static_psymbols.list)
-	    xfree (objfile->static_psymbols.list);
-	  memset (&objfile->static_psymbols, 0,
-		  sizeof (objfile->static_psymbols));
+	  objfile->global_psymbols.clear ();
+	  objfile->static_psymbols.clear ();
 
 	  /* Free the obstacks for non-reusable objfiles.  */
 	  psymbol_bcache_free (objfile->psymbol_cache);
 	  objfile->psymbol_cache = psymbol_bcache_init ();
+
+	  /* NB: after this call to obstack_free, objfiles_changed
+	     will need to be called (see discussion below).  */
 	  obstack_free (&objfile->objfile_obstack, 0);
 	  objfile->sections = NULL;
 	  objfile->compunit_symtabs = NULL;
@@ -2628,6 +2597,23 @@ reread_symbols (void)
 	  clear_complaints (&symfile_complaints, 1, 1);
 
 	  objfile->flags &= ~OBJF_PSYMTABS_READ;
+
+	  /* We are about to read new symbols and potentially also
+	     DWARF information.  Some targets may want to pass addresses
+	     read from DWARF DIE's through an adjustment function before
+	     saving them, like MIPS, which may call into
+	     "find_pc_section".  When called, that function will make
+	     use of per-objfile program space data.
+
+	     Since we discarded our section information above, we have
+	     dangling pointers in the per-objfile program space data
+	     structure.  Force GDB to update the section mapping
+	     information by letting it know the objfile has changed,
+	     making the dangling pointers point to correct data
+	     again.  */
+
+	  objfiles_changed ();
+
 	  read_symbols (objfile, 0);
 
 	  if (!objfile_has_symbols (objfile))
@@ -2646,6 +2632,7 @@ reread_symbols (void)
 	  reinit_frame_cache ();
 
 	  /* Discard cleanups as symbol reading was successful.  */
+	  objfile_holder.release ();
 	  discard_cleanups (old_cleanups);
 
 	  /* If the mtime has changed between the time we set new_modtime
@@ -2660,9 +2647,6 @@ reread_symbols (void)
 
   if (!new_objfiles.empty ())
     {
-      /* Notify objfiles that we've modified objfile sections.  */
-      objfiles_changed ();
-
       clear_symtab_users (0);
 
       /* clear_objfile_data for each objfile was called before freeing it and
@@ -2678,27 +2662,24 @@ reread_symbols (void)
 }
 
 
-typedef struct
+struct filename_language
 {
-  char *ext;
-  enum language lang;
-} filename_language;
+  filename_language (const std::string &ext_, enum language lang_)
+  : ext (ext_), lang (lang_)
+  {}
 
-DEF_VEC_O (filename_language);
+  std::string ext;
+  enum language lang;
+};
 
-static VEC (filename_language) *filename_language_table;
+static std::vector<filename_language> filename_language_table;
 
 /* See symfile.h.  */
 
 void
 add_filename_language (const char *ext, enum language lang)
 {
-  filename_language entry;
-
-  entry.ext = xstrdup (ext);
-  entry.lang = lang;
-
-  VEC_safe_push (filename_language, filename_language_table, &entry);
+  filename_language_table.emplace_back (ext, lang);
 }
 
 static char *ext_args;
@@ -2713,12 +2694,11 @@ show_ext_args (struct ui_file *file, int
 }
 
 static void
-set_ext_lang_command (char *args, int from_tty, struct cmd_list_element *e)
+set_ext_lang_command (const char *args,
+		      int from_tty, struct cmd_list_element *e)
 {
-  int i;
   char *cp = ext_args;
   enum language lang;
-  filename_language *entry;
 
   /* First arg is filename extension, starting with '.'  */
   if (*cp != '.')
@@ -2747,16 +2727,15 @@ set_ext_lang_command (char *args, int fr
   /* Lookup the language from among those we know.  */
   lang = language_enum (cp);
 
+  auto it = filename_language_table.begin ();
   /* Now lookup the filename extension: do we already know it?  */
-  for (i = 0;
-       VEC_iterate (filename_language, filename_language_table, i, entry);
-       ++i)
+  for (; it != filename_language_table.end (); it++)
     {
-      if (0 == strcmp (ext_args, entry->ext))
+      if (it->ext == ext_args)
 	break;
     }
 
-  if (entry == NULL)
+  if (it == filename_language_table.end ())
     {
       /* New file extension.  */
       add_filename_language (ext_args, lang);
@@ -2769,42 +2748,31 @@ set_ext_lang_command (char *args, int fr
       /*   query ("Really make files of type %s '%s'?", */
       /*          ext_args, language_str (lang));           */
 
-      xfree (entry->ext);
-      entry->ext = xstrdup (ext_args);
-      entry->lang = lang;
+      it->lang = lang;
     }
 }
 
 static void
-info_ext_lang_command (char *args, int from_tty)
+info_ext_lang_command (const char *args, int from_tty)
 {
-  int i;
-  filename_language *entry;
-
   printf_filtered (_("Filename extensions and the languages they represent:"));
   printf_filtered ("\n\n");
-  for (i = 0;
-       VEC_iterate (filename_language, filename_language_table, i, entry);
-       ++i)
-    printf_filtered ("\t%s\t- %s\n", entry->ext, language_str (entry->lang));
+  for (const filename_language &entry : filename_language_table)
+    printf_filtered ("\t%s\t- %s\n", entry.ext.c_str (),
+		     language_str (entry.lang));
 }
 
 enum language
 deduce_language_from_filename (const char *filename)
 {
-  int i;
   const char *cp;
 
   if (filename != NULL)
     if ((cp = strrchr (filename, '.')) != NULL)
       {
-	filename_language *entry;
-
-	for (i = 0;
-	     VEC_iterate (filename_language, filename_language_table, i, entry);
-	     ++i)
-	  if (strcmp (cp, entry->ext) == 0)
-	    return entry->lang;
+	for (const filename_language &entry : filename_language_table)
+	  if (entry.ext == cp)
+	    return entry.lang;
       }
 
   return language_unknown;
@@ -3011,7 +2979,6 @@ section_is_overlay (struct obj_section *
 {
   if (overlay_debugging && section)
     {
-      bfd *abfd = section->objfile->obfd;
       asection *bfd_section = section->the_bfd_section;
 
       if (bfd_section_lma (abfd, bfd_section) != 0
@@ -3141,7 +3108,6 @@ overlay_unmapped_address (CORE_ADDR pc, 
 {
   if (section_is_overlay (section) && pc_in_mapped_range (pc, section))
     {
-      bfd *abfd = section->objfile->obfd;
       asection *bfd_section = section->the_bfd_section;
 
       return pc + bfd_section_lma (abfd, bfd_section)
@@ -3160,7 +3126,6 @@ overlay_mapped_address (CORE_ADDR pc, st
 {
   if (section_is_overlay (section) && pc_in_unmapped_range (pc, section))
     {
-      bfd *abfd = section->objfile->obfd;
       asection *bfd_section = section->the_bfd_section;
 
       return pc + bfd_section_vma (abfd, bfd_section)
@@ -3253,7 +3218,7 @@ find_pc_mapped_section (CORE_ADDR pc)
    Print a list of mapped sections and their PC ranges.  */
 
 static void
-list_overlays_command (char *args, int from_tty)
+list_overlays_command (const char *args, int from_tty)
 {
   int nmapped = 0;
   struct objfile *objfile;
@@ -3295,7 +3260,7 @@ list_overlays_command (char *args, int f
    Mark the named section as mapped (ie. residing at its VMA address).  */
 
 static void
-map_overlay_command (char *args, int from_tty)
+map_overlay_command (const char *args, int from_tty)
 {
   struct objfile *objfile, *objfile2;
   struct obj_section *sec, *sec2;
@@ -3340,7 +3305,7 @@ map_overlay_command (char *args, int fro
    (ie. resident in its LMA address range, rather than the VMA range).  */
 
 static void
-unmap_overlay_command (char *args, int from_tty)
+unmap_overlay_command (const char *args, int from_tty)
 {
   struct objfile *objfile;
   struct obj_section *sec = NULL;
@@ -3370,7 +3335,7 @@ unmap_overlay_command (char *args, int f
    Possibly this should be done via a set/show command.  */
 
 static void
-overlay_auto_command (char *args, int from_tty)
+overlay_auto_command (const char *args, int from_tty)
 {
   overlay_debugging = ovly_auto;
   enable_overlay_breakpoints ();
@@ -3383,7 +3348,7 @@ overlay_auto_command (char *args, int fr
    Possibly this should be done via a set/show command.  */
 
 static void
-overlay_manual_command (char *args, int from_tty)
+overlay_manual_command (const char *args, int from_tty)
 {
   overlay_debugging = ovly_on;
   disable_overlay_breakpoints ();
@@ -3396,7 +3361,7 @@ overlay_manual_command (char *args, int 
    Possibly this should be done via a set/show command.  */
 
 static void
-overlay_off_command (char *args, int from_tty)
+overlay_off_command (const char *args, int from_tty)
 {
   overlay_debugging = ovly_off;
   disable_overlay_breakpoints ();
@@ -3405,7 +3370,7 @@ overlay_off_command (char *args, int fro
 }
 
 static void
-overlay_load_command (char *args, int from_tty)
+overlay_load_command (const char *args, int from_tty)
 {
   struct gdbarch *gdbarch = get_current_arch ();
 
@@ -3422,7 +3387,7 @@ overlay_load_command (char *args, int fr
 static struct cmd_list_element *overlaylist;
 
 static void
-overlay_command (char *args, int from_tty)
+overlay_command (const char *args, int from_tty)
 {
   printf_unfiltered
     ("\"overlay\" must be followed by the name of an overlay command.\n");
@@ -3558,7 +3523,6 @@ static int
 simple_overlay_update_1 (struct obj_section *osect)
 {
   int i;
-  bfd *obfd = osect->objfile->obfd;
   asection *bsect = osect->the_bfd_section;
   struct gdbarch *gdbarch = get_objfile_arch (osect->objfile);
   int word_size = gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT;
@@ -3631,7 +3595,6 @@ simple_overlay_update (struct obj_sectio
     if (section_is_overlay (osect))
     {
       int i;
-      bfd *obfd = osect->objfile->obfd;
       asection *bsect = osect->the_bfd_section;
 
       for (i = 0; i < cache_novlys; i++)
@@ -3838,6 +3801,7 @@ symfile_free_objfile (struct objfile *ob
 void
 expand_symtabs_matching
   (gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+   const lookup_name_info &lookup_name,
    gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
    gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
    enum search_domain kind)
@@ -3848,6 +3812,7 @@ expand_symtabs_matching
   {
     if (objfile->sf)
       objfile->sf->qf->expand_symtabs_matching (objfile, file_matcher,
+						lookup_name,
 						symbol_matcher,
 						expansion_notify, kind);
   }
@@ -3871,6 +3836,65 @@ map_symbol_filenames (symbol_filename_ft
   }
 }
 
+#if GDB_SELF_TEST
+
+namespace selftests {
+namespace filename_language {
+
+static void test_filename_language ()
+{
+  /* This test messes up the filename_language_table global.  */
+  scoped_restore restore_flt = make_scoped_restore (&filename_language_table);
+
+  /* Test deducing an unknown extension.  */
+  language lang = deduce_language_from_filename ("myfile.blah");
+  SELF_CHECK (lang == language_unknown);
+
+  /* Test deducing a known extension.  */
+  lang = deduce_language_from_filename ("myfile.c");
+  SELF_CHECK (lang == language_c);
+
+  /* Test adding a new extension using the internal API.  */
+  add_filename_language (".blah", language_pascal);
+  lang = deduce_language_from_filename ("myfile.blah");
+  SELF_CHECK (lang == language_pascal);
+}
+
+static void
+test_set_ext_lang_command ()
+{
+  /* This test messes up the filename_language_table global.  */
+  scoped_restore restore_flt = make_scoped_restore (&filename_language_table);
+
+  /* Confirm that the .hello extension is not known.  */
+  language lang = deduce_language_from_filename ("cake.hello");
+  SELF_CHECK (lang == language_unknown);
+
+  /* Test adding a new extension using the CLI command.  */
+  gdb::unique_xmalloc_ptr<char> args_holder (xstrdup (".hello rust"));
+  ext_args = args_holder.get ();
+  set_ext_lang_command (NULL, 1, NULL);
+
+  lang = deduce_language_from_filename ("cake.hello");
+  SELF_CHECK (lang == language_rust);
+
+  /* Test overriding an existing extension using the CLI command.  */
+  int size_before = filename_language_table.size ();
+  args_holder.reset (xstrdup (".hello pascal"));
+  ext_args = args_holder.get ();
+  set_ext_lang_command (NULL, 1, NULL);
+  int size_after = filename_language_table.size ();
+
+  lang = deduce_language_from_filename ("cake.hello");
+  SELF_CHECK (lang == language_pascal);
+  SELF_CHECK (size_before == size_after);
+}
+
+} /* namespace filename_language */
+} /* namespace selftests */
+
+#endif /* GDB_SELF_TEST */
+
 void
 _initialize_symfile (void)
 {
@@ -3878,19 +3902,29 @@ _initialize_symfile (void)
 
   observer_attach_free_objfile (symfile_free_objfile);
 
+#define READNOW_READNEVER_HELP \
+  "The '-readnow' option will cause GDB to read the entire symbol file\n\
+immediately.  This makes the command slower, but may make future operations\n\
+faster.\n\
+The '-readnever' option will prevent GDB from reading the symbol file's\n\
+symbolic debug information."
+
   c = add_cmd ("symbol-file", class_files, symbol_file_command, _("\
 Load symbol table from executable file FILE.\n\
+Usage: symbol-file [-readnow | -readnever] FILE\n\
 The `file' command can also load symbol tables, as well as setting the file\n\
-to execute."), &cmdlist);
+to execute.\n" READNOW_READNEVER_HELP), &cmdlist);
   set_cmd_completer (c, filename_completer);
 
   c = add_cmd ("add-symbol-file", class_files, add_symbol_file_command, _("\
 Load symbols from FILE, assuming FILE has been dynamically loaded.\n\
-Usage: add-symbol-file FILE ADDR [-s <SECT> <SECT_ADDR> -s <SECT> <SECT_ADDR>\
- ...]\nADDR is the starting address of the file's text.\n\
-The optional arguments are section-name section-address pairs and\n\
+Usage: add-symbol-file FILE ADDR [-readnow | -readnever | \
+-s SECT-NAME SECT-ADDR]...\n\
+ADDR is the starting address of the file's text.\n\
+Each '-s' argument provides a section name and address, and\n\
 should be specified if the data and bss segments are not contiguous\n\
-with the text.  SECT is a section name to be loaded at SECT_ADDR."),
+with the text.  SECT-NAME is a section name to be loaded at SECT-ADDR.\n"
+READNOW_READNEVER_HELP),
 	       &cmdlist);
   set_cmd_completer (c, filename_completer);
 
@@ -3906,10 +3940,10 @@ that lies within the boundaries of this 
   c = add_cmd ("load", class_files, load_command, _("\
 Dynamically load FILE into the running program, and record its symbols\n\
 for access from GDB.\n\
+Usage: load [FILE] [OFFSET]\n\
 An optional load OFFSET may also be given as a literal address.\n\
 When OFFSET is provided, FILE must also be provided.  FILE can be provided\n\
-on its own.\n\
-Usage: load [FILE] [OFFSET]"), &cmdlist);
+on its own."), &cmdlist);
   set_cmd_completer (c, filename_completer);
 
   add_prefix_cmd ("overlay", class_support, overlay_command,
@@ -3975,4 +4009,19 @@ full  == print messages for the executab
 			NULL,
 			NULL,
 			&setprintlist, &showprintlist);
+
+  add_setshow_boolean_cmd ("separate-debug-file", no_class,
+			   &separate_debug_file_debug, _("\
+Set printing of separate debug info file search debug."), _("\
+Show printing of separate debug info file search debug."), _("\
+When on, GDB prints the searched locations while looking for separate debug \
+info files."), NULL, NULL, &setdebuglist, &showdebuglist);
+
+#if GDB_SELF_TEST
+  selftests::register_test
+    ("filename_language", selftests::filename_language::test_filename_language);
+  selftests::register_test
+    ("set_ext_lang_command",
+     selftests::filename_language::test_set_ext_lang_command);
+#endif
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symfile-debug.c ./gdb/symfile-debug.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symfile-debug.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/symfile-debug.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Debug logging for the symbol file functions for the GNU debugger, GDB.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support, using pieces from other GDB modules.
 
@@ -260,7 +260,7 @@ debug_qf_map_matching_symbols (struct ob
 			       int (*callback) (struct block *,
 						struct symbol *, void *),
 			       void *data,
-			       symbol_compare_ftype *match,
+			       symbol_name_match_type match,
 			       symbol_compare_ftype *ordered_compare)
 {
   const struct debug_sym_fns_data *debug_data
@@ -273,7 +273,7 @@ debug_qf_map_matching_symbols (struct ob
 		    domain_name (domain), global,
 		    host_address_to_string (callback),
 		    host_address_to_string (data),
-		    host_address_to_string (match),
+		    plongest ((LONGEST) match),
 		    host_address_to_string (ordered_compare));
 
   debug_data->real_sf->qf->map_matching_symbols (objfile, name,
@@ -287,6 +287,7 @@ static void
 debug_qf_expand_symtabs_matching
   (struct objfile *objfile,
    gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+   const lookup_name_info &lookup_name,
    gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
    gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
    enum search_domain kind)
@@ -305,6 +306,7 @@ debug_qf_expand_symtabs_matching
 
   debug_data->real_sf->qf->expand_symtabs_matching (objfile,
 						    file_matcher,
+						    lookup_name,
 						    symbol_matcher,
 						    expansion_notify,
 						    kind);
@@ -363,6 +365,33 @@ debug_qf_map_symbol_filenames (struct ob
 						 need_fullname);
 }
 
+static struct compunit_symtab *
+debug_qf_find_compunit_symtab_by_address (struct objfile *objfile,
+					  CORE_ADDR address)
+{
+  const struct debug_sym_fns_data *debug_data
+    = ((const struct debug_sym_fns_data *)
+       objfile_data (objfile, symfile_debug_objfile_data_key));
+  fprintf_filtered (gdb_stdlog,
+		    "qf->find_compunit_symtab_by_address (%s, %s)\n",
+		    objfile_debug_name (objfile),
+		    hex_string (address));
+
+  struct compunit_symtab *result = NULL;
+  if (debug_data->real_sf->qf->map_symbol_filenames != NULL)
+    result
+      = debug_data->real_sf->qf->find_compunit_symtab_by_address (objfile,
+								  address);
+
+  fprintf_filtered (gdb_stdlog,
+		    "qf->find_compunit_symtab_by_address (...) = %s\n",
+		    result
+		    ? debug_symtab_name (compunit_primary_filetab (result))
+		    : "NULL");
+
+  return result;
+}
+
 static const struct quick_symbol_functions debug_sym_quick_functions =
 {
   debug_qf_has_symbols,
@@ -379,25 +408,26 @@ static const struct quick_symbol_functio
   debug_qf_map_matching_symbols,
   debug_qf_expand_symtabs_matching,
   debug_qf_find_pc_sect_compunit_symtab,
+  debug_qf_find_compunit_symtab_by_address,
   debug_qf_map_symbol_filenames
 };
 
 /* Debugging version of struct sym_probe_fns.  */
 
-static VEC (probe_p) *
+static const std::vector<probe *> &
 debug_sym_get_probes (struct objfile *objfile)
 {
   const struct debug_sym_fns_data *debug_data
     = ((const struct debug_sym_fns_data *)
        objfile_data (objfile, symfile_debug_objfile_data_key));
-  VEC (probe_p) *retval;
 
-  retval = debug_data->real_sf->sym_probe_fns->sym_get_probes (objfile);
+  const std::vector<probe *> &retval
+    = debug_data->real_sf->sym_probe_fns->sym_get_probes (objfile);
 
   fprintf_filtered (gdb_stdlog,
 		    "probes->sym_get_probes (%s) = %s\n",
 		    objfile_debug_name (objfile),
-		    host_address_to_string (retval));
+		    host_address_to_string (retval.data ()));
 
   return retval;
 }
@@ -645,7 +675,7 @@ objfile_set_sym_fns (struct objfile *obj
 }
 
 static void
-set_debug_symfile (char *args, int from_tty, struct cmd_list_element *c)
+set_debug_symfile (const char *args, int from_tty, struct cmd_list_element *c)
 {
   struct program_space *pspace;
   struct objfile *objfile;
@@ -673,8 +703,6 @@ show_debug_symfile (struct ui_file *file
   fprintf_filtered (file, _("Symfile debugging is %s.\n"), value);
 }
 
-initialize_file_ftype _initialize_symfile_debug;
-
 void
 _initialize_symfile_debug (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symfile.h ./gdb/symfile.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symfile.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/symfile.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for reading symbol files into GDB.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -34,48 +34,17 @@ struct objfile;
 struct obj_section;
 struct obstack;
 struct block;
-struct probe;
 struct value;
 struct frame_info;
 struct agent_expr;
 struct axs_value;
+class probe;
 
 /* Comparison function for symbol look ups.  */
 
 typedef int (symbol_compare_ftype) (const char *string1,
 				    const char *string2);
 
-/* Partial symbols are stored in the psymbol_cache and pointers to
-   them are kept in a dynamically grown array that is obtained from
-   malloc and grown as necessary via realloc.  Each objfile typically
-   has two of these, one for global symbols and one for static
-   symbols.  Although this adds a level of indirection for storing or
-   accessing the partial symbols, it allows us to throw away duplicate
-   psymbols and set all pointers to the single saved instance.  */
-
-struct psymbol_allocation_list
-{
-
-  /* Pointer to beginning of dynamically allocated array of pointers
-     to partial symbols.  The array is dynamically expanded as
-     necessary to accommodate more pointers.  */
-
-  struct partial_symbol **list;
-
-  /* Pointer to next available slot in which to store a pointer to a
-     partial symbol.  */
-
-  struct partial_symbol **next;
-
-  /* Number of allocated pointer slots in current dynamic array (not
-     the number of bytes of storage).  The "next" pointer will always
-     point somewhere between list[0] and list[size], and when at
-     list[size] the array will be expanded on the next attempt to
-     store a pointer.  */
-
-  int size;
-};
-
 struct other_sections
 {
   CORE_ADDR addr;
@@ -262,7 +231,7 @@ struct quick_symbol_functions
 				int (*callback) (struct block *,
 						 struct symbol *, void *),
 				void *data,
-				symbol_compare_ftype *match,
+				symbol_name_match_type match,
 				symbol_compare_ftype *ordered_compare);
 
   /* Expand all symbol tables in OBJFILE matching some criteria.
@@ -286,6 +255,7 @@ struct quick_symbol_functions
   void (*expand_symtabs_matching)
     (struct objfile *objfile,
      gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+     const lookup_name_info &lookup_name,
      gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
      gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
      enum search_domain kind);
@@ -300,6 +270,14 @@ struct quick_symbol_functions
     (struct objfile *objfile, struct bound_minimal_symbol msymbol,
      CORE_ADDR pc, struct obj_section *section, int warn_if_readin);
 
+  /* Return the comp unit from OBJFILE that contains a symbol at
+     ADDRESS.  Return NULL if there is no such comp unit.  Unlike
+     find_pc_sect_compunit_symtab, any sort of symbol (not just text
+     symbols) can be considered, and only exact address matches are
+     considered.  This pointer may be NULL.  */
+  struct compunit_symtab *(*find_compunit_symtab_by_address)
+    (struct objfile *objfile, CORE_ADDR address);
+
   /* Call a callback for every file defined in OBJFILE whose symtab is
      not already read in.  FUN is the callback.  It is passed the file's
      FILENAME, the file's FULLNAME (if need_fullname is non-zero), and
@@ -314,11 +292,8 @@ struct quick_symbol_functions
 
 struct sym_probe_fns
 {
-  /* If non-NULL, return an array of probe objects.
-
-     The returned value does not have to be freed and it has lifetime of the
-     OBJFILE.  */
-  VEC (probe_p) *(*sym_get_probes) (struct objfile *);
+  /* If non-NULL, return a reference to vector of probe objects.  */
+  const std::vector<probe *> &(*sym_get_probes) (struct objfile *);
 };
 
 /* Structure to keep track of symbol reading functions for various
@@ -560,6 +535,7 @@ extern scoped_restore_tmpl<int> incremen
 
 void expand_symtabs_matching
   (gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+   const lookup_name_info &lookup_name,
    gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
    gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
    enum search_domain kind);
@@ -606,6 +582,8 @@ struct dwarf2_debug_sections {
   struct dwarf2_section_names frame;
   struct dwarf2_section_names eh_frame;
   struct dwarf2_section_names gdb_index;
+  struct dwarf2_section_names debug_names;
+  struct dwarf2_section_names debug_aranges;
   /* This field has no meaning, but exists solely to catch changes to
      this structure which are not reflected in some instance.  */
   int sentinel;
@@ -625,7 +603,22 @@ extern void dwarf2_get_section_info (str
 				     asection **, const gdb_byte **,
 				     bfd_size_type *);
 
-extern int dwarf2_initialize_objfile (struct objfile *);
+/* A DWARF names index variant.  */
+enum class dw_index_kind
+{
+  /* GDB's own .gdb_index format.   */
+  GDB_INDEX,
+
+  /* DWARF5 .debug_names.  */
+  DEBUG_NAMES,
+};
+
+/* Initialize for reading DWARF for OBJFILE.  Return false if this
+   file will use psymtabs, or true if using an index, in which case
+   *INDEX_KIND is set to the index variant in use.  */
+extern bool dwarf2_initialize_objfile (struct objfile *objfile,
+				       dw_index_kind *index_kind);
+
 extern void dwarf2_build_psymtabs (struct objfile *);
 extern void dwarf2_build_frame_info (struct objfile *);
 
@@ -646,4 +639,8 @@ extern void elfmdebug_build_psymtabs (st
 
 extern gdb_bfd_ref_ptr find_separate_debug_file_in_section (struct objfile *);
 
+/* True if we are printing debug output about separate debug info files.  */
+
+extern int separate_debug_file_debug;
+
 #endif /* !defined(SYMFILE_H) */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symfile-mem.c ./gdb/symfile-mem.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symfile-mem.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/symfile-mem.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Reading symbol files from memory.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -101,9 +101,8 @@ symbol_file_add_from_memory (struct bfd 
   if (nbfd == NULL)
     error (_("Failed to read a valid object file image from memory."));
 
-  gdb_bfd_ref (nbfd);
   /* Manage the new reference for the duration of this function.  */
-  gdb_bfd_ref_ptr nbfd_holder (nbfd);
+  gdb_bfd_ref_ptr nbfd_holder = new_bfd_ref (nbfd);
 
   xfree (bfd_get_filename (nbfd));
   if (name == NULL)
@@ -145,7 +144,7 @@ symbol_file_add_from_memory (struct bfd 
 
 
 static void
-add_symbol_file_from_memory_command (char *args, int from_tty)
+add_symbol_file_from_memory_command (const char *args, int from_tty)
 {
   CORE_ADDR addr;
   struct bfd *templ;
@@ -167,31 +166,6 @@ add_symbol_file_from_memory_command (cha
   symbol_file_add_from_memory (templ, addr, 0, NULL, from_tty);
 }
 
-/* Arguments for symbol_file_add_from_memory_wrapper.  */
-
-struct symbol_file_add_from_memory_args
-{
-  struct bfd *bfd;
-  CORE_ADDR sysinfo_ehdr;
-  size_t size;
-  char *name;
-  int from_tty;
-};
-
-/* Wrapper function for symbol_file_add_from_memory, for
-   catch_exceptions.  */
-
-static int
-symbol_file_add_from_memory_wrapper (struct ui_out *uiout, void *data)
-{
-  struct symbol_file_add_from_memory_args *args
-    = (struct symbol_file_add_from_memory_args *) data;
-
-  symbol_file_add_from_memory (args->bfd, args->sysinfo_ehdr, args->size,
-			       args->name, args->from_tty);
-  return 0;
-}
-
 /* Try to add the symbols for the vsyscall page, if there is one.
    This function is called via the inferior_created observer.  */
 
@@ -203,7 +177,6 @@ add_vsyscall_page (struct target_ops *ta
   if (gdbarch_vsyscall_range (target_gdbarch (), &vsyscall_range))
     {
       struct bfd *bfd;
-      struct symbol_file_add_from_memory_args args;
 
       if (core_bfd != NULL)
 	bfd = core_bfd;
@@ -221,26 +194,28 @@ add_vsyscall_page (struct target_ops *ta
 		     "because no executable was specified"));
 	  return;
 	}
-      args.bfd = bfd;
-      args.sysinfo_ehdr = vsyscall_range.start;
-      args.size = vsyscall_range.length;
-
-      args.name = xstrprintf ("system-supplied DSO at %s",
-			      paddress (target_gdbarch (), vsyscall_range.start));
-      /* Pass zero for FROM_TTY, because the action of loading the
-	 vsyscall DSO was not triggered by the user, even if the user
-	 typed "run" at the TTY.  */
-      args.from_tty = 0;
-      catch_exceptions (current_uiout, symbol_file_add_from_memory_wrapper,
-			&args, RETURN_MASK_ALL);
+
+      char *name = xstrprintf ("system-supplied DSO at %s",
+			       paddress (target_gdbarch (), vsyscall_range.start));
+      TRY
+	{
+	  /* Pass zero for FROM_TTY, because the action of loading the
+	     vsyscall DSO was not triggered by the user, even if the
+	     user typed "run" at the TTY.  */
+	  symbol_file_add_from_memory (bfd,
+				       vsyscall_range.start,
+				       vsyscall_range.length,
+				       name,
+				       0 /* from_tty */);
+	}
+      CATCH (ex, RETURN_MASK_ALL)
+	{
+	  exception_print (gdb_stderr, ex);
+	}
+      END_CATCH
     }
 }
 
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_symfile_mem;
-
 void
 _initialize_symfile_mem (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symmisc.c ./gdb/symmisc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symmisc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/symmisc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Do various things to symbol tables (other than lookup), for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -54,17 +54,8 @@ FILE *std_err;
 
 static int block_depth (struct block *);
 
-void _initialize_symmisc (void);
-
-struct print_symbol_args
-  {
-    struct gdbarch *gdbarch;
-    struct symbol *symbol;
-    int depth;
-    struct ui_file *outfile;
-  };
-
-static int print_symbol (void *);
+static void print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
+			  int depth, ui_file *outfile);
 
 
 void
@@ -359,14 +350,16 @@ dump_symtab_1 (struct symtab *symtab, st
 	     block, not any blocks from included symtabs.  */
 	  ALL_DICT_SYMBOLS (BLOCK_DICT (b), iter, sym)
 	    {
-	      struct print_symbol_args s;
-
-	      s.gdbarch = gdbarch;
-	      s.symbol = sym;
-	      s.depth = depth + 1;
-	      s.outfile = outfile;
-	      catch_errors (print_symbol, &s, "Error printing symbol:\n",
-			    RETURN_MASK_ERROR);
+	      TRY
+		{
+		  print_symbol (gdbarch, sym, depth + 1, outfile);
+		}
+	      CATCH (ex, RETURN_MASK_ERROR)
+		{
+		  exception_fprintf (gdb_stderr, ex,
+				     "Error printing symbol:\n");
+		}
+	      END_CATCH
 	    }
 	}
       fprintf_filtered (outfile, "\n");
@@ -405,18 +398,15 @@ dump_symtab (struct symtab *symtab, stru
 }
 
 static void
-maintenance_print_symbols (char *args, int from_tty)
+maintenance_print_symbols (const char *args, int from_tty)
 {
-  char **argv;
   struct ui_file *outfile = gdb_stdout;
-  struct cleanup *cleanups;
   char *address_arg = NULL, *source_arg = NULL, *objfile_arg = NULL;
   int i, outfile_idx;
 
   dont_repeat ();
 
-  argv = gdb_buildargv (args);
-  cleanups = make_cleanup_freeargv (argv);
+  gdb_argv argv (args);
 
   for (i = 0; argv != NULL && argv[i] != NULL; ++i)
     {
@@ -461,14 +451,12 @@ maintenance_print_symbols (char *args, i
 
   if (argv != NULL && argv[outfile_idx] != NULL)
     {
-      char *outfile_name;
-
       if (argv[outfile_idx + 1] != NULL)
 	error (_("Junk at end of command"));
-      outfile_name = tilde_expand (argv[outfile_idx]);
-      make_cleanup (xfree, outfile_name);
-      if (!arg_outfile.open (outfile_name, FOPEN_WT))
-	perror_with_name (outfile_name);
+      gdb::unique_xmalloc_ptr<char> outfile_name
+	(tilde_expand (argv[outfile_idx]));
+      if (!arg_outfile.open (outfile_name.get (), FOPEN_WT))
+	perror_with_name (outfile_name.get ());
       outfile = &arg_outfile;
     }
 
@@ -520,22 +508,14 @@ maintenance_print_symbols (char *args, i
       if (source_arg != NULL && !found)
 	error (_("No symtab for source file: %s"), source_arg);
     }
-
-  do_cleanups (cleanups);
 }
 
-/* Print symbol ARGS->SYMBOL on ARGS->OUTFILE.  ARGS->DEPTH says how
-   far to indent.  ARGS is really a struct print_symbol_args *, but is
-   declared as char * to get it past catch_errors.  Returns 0 for error,
-   1 for success.  */
+/* Print symbol SYMBOL on OUTFILE.  DEPTH says how far to indent.  */
 
-static int
-print_symbol (void *args)
+static void
+print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
+	      int depth, ui_file *outfile)
 {
-  struct gdbarch *gdbarch = ((struct print_symbol_args *) args)->gdbarch;
-  struct symbol *symbol = ((struct print_symbol_args *) args)->symbol;
-  int depth = ((struct print_symbol_args *) args)->depth;
-  struct ui_file *outfile = ((struct print_symbol_args *) args)->outfile;
   struct obj_section *section;
 
   if (SYMBOL_OBJFILE_OWNED (symbol))
@@ -555,8 +535,9 @@ print_symbol (void *args)
 					    section->the_bfd_section));
       else
 	fprintf_filtered (outfile, "\n");
-      return 1;
+      return;
     }
+
   if (SYMBOL_DOMAIN (symbol) == STRUCT_DOMAIN)
     {
       if (TYPE_TAG_NAME (SYMBOL_TYPE (symbol)))
@@ -703,23 +684,19 @@ print_symbol (void *args)
 	}
     }
   fprintf_filtered (outfile, "\n");
-  return 1;
 }
 
 static void
-maintenance_print_msymbols (char *args, int from_tty)
+maintenance_print_msymbols (const char *args, int from_tty)
 {
-  char **argv;
   struct ui_file *outfile = gdb_stdout;
-  struct cleanup *cleanups;
   char *objfile_arg = NULL;
   struct objfile *objfile;
   int i, outfile_idx;
 
   dont_repeat ();
 
-  argv = gdb_buildargv (args);
-  cleanups = make_cleanup_freeargv (argv);
+  gdb_argv argv (args);
 
   for (i = 0; argv != NULL && argv[i] != NULL; ++i)
     {
@@ -749,14 +726,12 @@ maintenance_print_msymbols (char *args, 
 
   if (argv != NULL && argv[outfile_idx] != NULL)
     {
-      char *outfile_name;
-
       if (argv[outfile_idx + 1] != NULL)
 	error (_("Junk at end of command"));
-      outfile_name = tilde_expand (argv[outfile_idx]);
-      make_cleanup (xfree, outfile_name);
-      if (!arg_outfile.open (outfile_name, FOPEN_WT))
-	perror_with_name (outfile_name);
+      gdb::unique_xmalloc_ptr<char> outfile_name
+	(tilde_expand (argv[outfile_idx]));
+      if (!arg_outfile.open (outfile_name.get (), FOPEN_WT))
+	perror_with_name (outfile_name.get ());
       outfile = &arg_outfile;
     }
 
@@ -767,12 +742,10 @@ maintenance_print_msymbols (char *args, 
 	|| compare_filenames_for_search (objfile_name (objfile), objfile_arg))
       dump_msymbols (objfile, outfile);
   }
-
-  do_cleanups (cleanups);
 }
 
 static void
-maintenance_print_objfiles (char *regexp, int from_tty)
+maintenance_print_objfiles (const char *regexp, int from_tty)
 {
   struct program_space *pspace;
   struct objfile *objfile;
@@ -795,7 +768,7 @@ maintenance_print_objfiles (char *regexp
 /* List all the symbol tables whose names match REGEXP (optional).  */
 
 static void
-maintenance_info_symtabs (char *regexp, int from_tty)
+maintenance_info_symtabs (const char *regexp, int from_tty)
 {
   struct program_space *pspace;
   struct objfile *objfile;
@@ -889,7 +862,7 @@ maintenance_info_symtabs (char *regexp, 
    Use "maint check-psymtabs" for that.  */
 
 static void
-maintenance_check_symtabs (char *ignore, int from_tty)
+maintenance_check_symtabs (const char *ignore, int from_tty)
 {
   struct program_space *pspace;
   struct objfile *objfile;
@@ -940,18 +913,15 @@ maintenance_check_symtabs (char *ignore,
 /* Expand all symbol tables whose name matches an optional regexp.  */
 
 static void
-maintenance_expand_symtabs (char *args, int from_tty)
+maintenance_expand_symtabs (const char *args, int from_tty)
 {
   struct program_space *pspace;
   struct objfile *objfile;
-  struct cleanup *cleanups;
-  char **argv;
   char *regexp = NULL;
 
   /* We use buildargv here so that we handle spaces in the regexp
      in a way that allows adding more arguments later.  */
-  argv = gdb_buildargv (args);
-  cleanups = make_cleanup_freeargv (argv);
+  gdb_argv argv (args);
 
   if (argv != NULL)
     {
@@ -979,6 +949,7 @@ maintenance_expand_symtabs (char *args, 
 	       return (!basenames
 		       && (regexp == NULL || re_exec (filename)));
 	     },
+	     lookup_name_info::match_any (),
 	     [] (const char *symname)
 	     {
 	       /* Since we're not searching on symbols, just return true.  */
@@ -988,8 +959,6 @@ maintenance_expand_symtabs (char *args, 
 	     ALL_DOMAIN);
 	}
     }
-
-  do_cleanups (cleanups);
 }
 
 
@@ -1059,7 +1028,7 @@ maintenance_print_one_line_table (struct
 /* Implement the 'maint info line-table' command.  */
 
 static void
-maintenance_info_line_tables (char *regexp, int from_tty)
+maintenance_info_line_tables (const char *regexp, int from_tty)
 {
   struct program_space *pspace;
   struct objfile *objfile;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symtab.c ./gdb/symtab.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symtab.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/symtab.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Symbol table lookup for the GNU debugger, GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -61,16 +61,21 @@
 
 #include "parser-defs.h"
 #include "completer.h"
+#include "progspace-and-thread.h"
+#include "common/gdb_optional.h"
+#include "filename-seen-cache.h"
 #include "arch-utils.h"
+#include <algorithm>
 
 /* Forward declarations for local functions.  */
 
-static void rbreak_command (char *, int);
+static void rbreak_command (const char *, int);
 
 static int find_line_common (struct linetable *, int, int *, int);
 
 static struct block_symbol
   lookup_symbol_aux (const char *name,
+		     symbol_name_match_type match_type,
 		     const struct block *block,
 		     const domain_enum domain,
 		     enum language language,
@@ -78,6 +83,7 @@ static struct block_symbol
 
 static
 struct block_symbol lookup_local_symbol (const char *name,
+					 symbol_name_match_type match_type,
 					 const struct block *block,
 					 const domain_enum domain,
 					 enum language language);
@@ -89,8 +95,6 @@ static struct block_symbol
 /* See symtab.h.  */
 const struct block_symbol null_block_symbol = { NULL, NULL };
 
-extern initialize_file_ftype _initialize_symtab;
-
 /* Program space key for finding name and language of "main".  */
 
 static const struct program_space_data *main_progspace_key;
@@ -465,7 +469,7 @@ iterate_over_symtabs (const char *name,
      absolutizing a relative path.  */
   if (IS_ABSOLUTE_PATH (name))
     {
-      real_path.reset (gdb_realpath (name));
+      real_path = gdb_realpath (name);
       gdb_assert (IS_ABSOLUTE_PATH (real_path.get ()));
     }
 
@@ -727,7 +731,6 @@ symbol_find_demangled_name (struct gener
 {
   char *demangled = NULL;
   int i;
-  int recognized;
 
   if (gsymbol->language == language_unknown)
     gsymbol->language = language_auto;
@@ -945,13 +948,18 @@ symbol_search_name (const struct general
     return symbol_natural_name (gsymbol);
 }
 
-/* Initialize the structure fields to zero values.  */
+/* See symtab.h.  */
 
-void
-init_sal (struct symtab_and_line *sal)
+bool
+symbol_matches_search_name (const struct general_symbol_info *gsymbol,
+			    const lookup_name_info &name)
 {
-  memset (sal, 0, sizeof (*sal));
+  symbol_name_matcher_ftype *name_match
+    = language_get_symbol_name_matcher (language_def (gsymbol->language),
+					name);
+  return name_match (symbol_search_name (gsymbol), name, NULL);
 }
+
 
 
 /* Return 1 if the two sections are the same, or if they could
@@ -1109,11 +1117,12 @@ eq_symbol_entry (const struct symbol_cac
     }
   else if (slot_name != NULL && name != NULL)
     {
-      /* It's important that we use the same comparison that was done the
-	 first time through.  If the slot records a found symbol, then this
-	 means using strcmp_iw on SYMBOL_SEARCH_NAME.  See dictionary.c.
-	 It also means using symbol_matches_domain for found symbols.
-	 See block.c.
+      /* It's important that we use the same comparison that was done
+	 the first time through.  If the slot records a found symbol,
+	 then this means using the symbol name comparison function of
+	 the symbol's language with SYMBOL_SEARCH_NAME.  See
+	 dictionary.c.  It also means using symbol_matches_domain for
+	 found symbols.  See block.c.
 
 	 If the slot records a not-found symbol, then require a precise match.
 	 We could still be lax with whitespace like strcmp_iw though.  */
@@ -1128,9 +1137,11 @@ eq_symbol_entry (const struct symbol_cac
       else
 	{
 	  struct symbol *sym = slot->value.found.symbol;
+	  lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
 
-	  if (strcmp_iw (slot_name, name) != 0)
+	  if (!SYMBOL_MATCHES_SEARCH_NAME (sym, lookup_name))
 	    return 0;
+
 	  if (!symbol_matches_domain (SYMBOL_LANGUAGE (sym),
 				      slot_domain, domain))
 	    return 0;
@@ -1262,7 +1273,7 @@ set_symbol_cache_size (unsigned int new_
 /* Called when symbol-cache-size is set.  */
 
 static void
-set_symbol_cache_size_handler (char *args, int from_tty,
+set_symbol_cache_size_handler (const char *args, int from_tty,
 			       struct cmd_list_element *c)
 {
   if (new_symbol_cache_size > MAX_SYMBOL_CACHE_SIZE)
@@ -1507,7 +1518,7 @@ symbol_cache_dump (const struct symbol_c
 /* The "mt print symbol-cache" command.  */
 
 static void
-maintenance_print_symbol_cache (char *args, int from_tty)
+maintenance_print_symbol_cache (const char *args, int from_tty)
 {
   struct program_space *pspace;
 
@@ -1534,7 +1545,7 @@ maintenance_print_symbol_cache (char *ar
 /* The "mt flush-symbol-cache" command.  */
 
 static void
-maintenance_flush_symbol_cache (char *args, int from_tty)
+maintenance_flush_symbol_cache (const char *args, int from_tty)
 {
   struct program_space *pspace;
 
@@ -1579,7 +1590,7 @@ symbol_cache_stats (struct symbol_cache 
 /* The "mt print symbol-cache-statistics" command.  */
 
 static void
-maintenance_print_symbol_cache_statistics (char *args, int from_tty)
+maintenance_print_symbol_cache_statistics (const char *args, int from_tty)
 {
   struct program_space *pspace;
 
@@ -1749,6 +1760,48 @@ fixup_symbol_section (struct symbol *sym
   return sym;
 }
 
+/* See symtab.h.  */
+
+demangle_for_lookup_info::demangle_for_lookup_info
+  (const lookup_name_info &lookup_name, language lang)
+{
+  demangle_result_storage storage;
+
+  if (lookup_name.ignore_parameters () && lang == language_cplus)
+    {
+      gdb::unique_xmalloc_ptr<char> without_params
+	= cp_remove_params_if_any (lookup_name.name ().c_str (),
+				   lookup_name.completion_mode ());
+
+      if (without_params != NULL)
+	{
+	  if (lookup_name.match_type () != symbol_name_match_type::SEARCH_NAME)
+	    m_demangled_name = demangle_for_lookup (without_params.get (),
+						    lang, storage);
+	  return;
+	}
+    }
+
+  if (lookup_name.match_type () == symbol_name_match_type::SEARCH_NAME)
+    m_demangled_name = lookup_name.name ();
+  else
+    m_demangled_name = demangle_for_lookup (lookup_name.name ().c_str (),
+					    lang, storage);
+}
+
+/* See symtab.h.  */
+
+const lookup_name_info &
+lookup_name_info::match_any ()
+{
+  /* Lookup any symbol that "" would complete.  I.e., this matches all
+     symbol names.  */
+  static const lookup_name_info lookup_name ({}, symbol_name_match_type::FULL,
+					     true);
+
+  return lookup_name;
+}
+
 /* Compute the demangled form of NAME as used by the various symbol
    lookup functions.  The result can either be the input NAME
    directly, or a pointer to a buffer owned by the STORAGE object.
@@ -1801,6 +1854,14 @@ demangle_for_lookup (const char *name, e
   return name;
 }
 
+/* See symtab.h.  */
+
+unsigned int
+search_name_hash (enum language language, const char *search_name)
+{
+  return language_def (language)->la_search_name_hash (search_name);
+}
+
 /* See symtab.h.
 
    This function (or rather its subordinates) have a bunch of loops and
@@ -1821,7 +1882,9 @@ lookup_symbol_in_language (const char *n
   demangle_result_storage storage;
   const char *modified_name = demangle_for_lookup (name, lang, storage);
 
-  return lookup_symbol_aux (modified_name, block, domain, lang,
+  return lookup_symbol_aux (modified_name,
+			    symbol_name_match_type::FULL,
+			    block, domain, lang,
 			    is_a_field_of_this);
 }
 
@@ -1840,6 +1903,16 @@ lookup_symbol (const char *name, const s
 /* See symtab.h.  */
 
 struct block_symbol
+lookup_symbol_search_name (const char *search_name, const struct block *block,
+			   domain_enum domain)
+{
+  return lookup_symbol_aux (search_name, symbol_name_match_type::SEARCH_NAME,
+			    block, domain, language_asm, NULL);
+}
+
+/* See symtab.h.  */
+
+struct block_symbol
 lookup_language_this (const struct language_defn *lang,
 		      const struct block *block)
 {
@@ -1860,7 +1933,9 @@ lookup_language_this (const struct langu
     {
       struct symbol *sym;
 
-      sym = block_lookup_symbol (block, lang->la_name_of_this, VAR_DOMAIN);
+      sym = block_lookup_symbol (block, lang->la_name_of_this,
+				 symbol_name_match_type::SEARCH_NAME,
+				 VAR_DOMAIN);
       if (sym != NULL)
 	{
 	  if (symbol_lookup_debug > 1)
@@ -1931,7 +2006,8 @@ check_field (struct type *type, const ch
    (e.g., demangled name) of the symbol that we're looking for.  */
 
 static struct block_symbol
-lookup_symbol_aux (const char *name, const struct block *block,
+lookup_symbol_aux (const char *name, symbol_name_match_type match_type,
+		   const struct block *block,
 		   const domain_enum domain, enum language language,
 		   struct field_of_this_result *is_a_field_of_this)
 {
@@ -1960,7 +2036,7 @@ lookup_symbol_aux (const char *name, con
   /* Search specified block and its superiors.  Don't search
      STATIC_BLOCK or GLOBAL_BLOCK.  */
 
-  result = lookup_local_symbol (name, block, domain, language);
+  result = lookup_local_symbol (name, match_type, block, domain, language);
   if (result.symbol != NULL)
     {
       if (symbol_lookup_debug)
@@ -2042,7 +2118,9 @@ lookup_symbol_aux (const char *name, con
    Don't search STATIC_BLOCK or GLOBAL_BLOCK.  */
 
 static struct block_symbol
-lookup_local_symbol (const char *name, const struct block *block,
+lookup_local_symbol (const char *name,
+		     symbol_name_match_type match_type,
+		     const struct block *block,
 		     const domain_enum domain,
 		     enum language language)
 {
@@ -2057,7 +2135,7 @@ lookup_local_symbol (const char *name, c
 
   while (block != static_block)
     {
-      sym = lookup_symbol_in_block (name, block, domain);
+      sym = lookup_symbol_in_block (name, match_type, block, domain);
       if (sym != NULL)
 	return (struct block_symbol) {sym, block};
 
@@ -2110,7 +2188,8 @@ lookup_objfile_from_block (const struct 
 /* See symtab.h.  */
 
 struct symbol *
-lookup_symbol_in_block (const char *name, const struct block *block,
+lookup_symbol_in_block (const char *name, symbol_name_match_type match_type,
+			const struct block *block,
 			const domain_enum domain)
 {
   struct symbol *sym;
@@ -2126,7 +2205,7 @@ lookup_symbol_in_block (const char *name
 			  domain_name (domain));
     }
 
-  sym = block_lookup_symbol (block, name, domain);
+  sym = block_lookup_symbol (block, name, match_type, domain);
   if (sym)
     {
       if (symbol_lookup_debug > 1)
@@ -2315,7 +2394,8 @@ lookup_symbol_via_quick_fns (struct objf
 
   bv = COMPUNIT_BLOCKVECTOR (cust);
   block = BLOCKVECTOR_BLOCK (bv, block_index);
-  result.symbol = block_lookup_symbol (block, name, domain);
+  result.symbol = block_lookup_symbol (block, name,
+				       symbol_name_match_type::FULL, domain);
   if (result.symbol == NULL)
     error_in_psymtab_expansion (block_index, name, cust);
 
@@ -2428,7 +2508,9 @@ lookup_symbol_in_static_block (const cha
 			  domain_name (domain));
     }
 
-  sym = lookup_symbol_in_block (name, static_block, domain);
+  sym = lookup_symbol_in_block (name,
+				symbol_name_match_type::FULL,
+				static_block, domain);
   if (symbol_lookup_debug)
     {
       fprintf_unfiltered (gdb_stdlog,
@@ -2624,7 +2706,8 @@ symbol_matches_domain (enum language sym
      Similarly, any Ada type declaration implicitly defines a typedef.  */
   if (symbol_language == language_cplus
       || symbol_language == language_d
-      || symbol_language == language_ada)
+      || symbol_language == language_ada
+      || symbol_language == language_rust)
     {
       if ((domain == VAR_DOMAIN || domain == STRUCT_DOMAIN)
 	  && symbol_domain == STRUCT_DOMAIN)
@@ -2764,7 +2847,8 @@ basic_lookup_transparent_type (const cha
    search continues.  */
 
 void
-iterate_over_symbols (const struct block *block, const char *name,
+iterate_over_symbols (const struct block *block,
+		      const lookup_name_info &name,
 		      const domain_enum domain,
 		      gdb::function_view<symbol_found_callback_ftype> callback)
 {
@@ -2906,6 +2990,45 @@ find_pc_compunit_symtab (CORE_ADDR pc)
 {
   return find_pc_sect_compunit_symtab (pc, find_pc_mapped_section (pc));
 }
+
+/* See symtab.h.  */
+
+struct symbol *
+find_symbol_at_address (CORE_ADDR address)
+{
+  struct objfile *objfile;
+
+  ALL_OBJFILES (objfile)
+  {
+    if (objfile->sf == NULL
+	|| objfile->sf->qf->find_compunit_symtab_by_address == NULL)
+      continue;
+
+    struct compunit_symtab *symtab
+      = objfile->sf->qf->find_compunit_symtab_by_address (objfile, address);
+    if (symtab != NULL)
+      {
+	const struct blockvector *bv = COMPUNIT_BLOCKVECTOR (symtab);
+
+	for (int i = GLOBAL_BLOCK; i <= STATIC_BLOCK; ++i)
+	  {
+	    struct block *b = BLOCKVECTOR_BLOCK (bv, i);
+	    struct block_iterator iter;
+	    struct symbol *sym;
+
+	    ALL_BLOCK_SYMBOLS (b, iter, sym)
+	    {
+	      if (SYMBOL_CLASS (sym) == LOC_STATIC
+		  && SYMBOL_VALUE_ADDRESS (sym) == address)
+		return sym;
+	    }
+	  }
+      }
+  }
+
+  return NULL;
+}
+
 
 
 /* Find the source file and line number for a given PC value and SECTION.
@@ -2934,7 +3057,6 @@ find_pc_sect_line (CORE_ADDR pc, struct 
   int len;
   int i;
   struct linetable_entry *item;
-  struct symtab_and_line val;
   const struct blockvector *bv;
   struct bound_minimal_symbol msymbol;
 
@@ -2961,10 +3083,6 @@ find_pc_sect_line (CORE_ADDR pc, struct 
      But what we want is the statement containing the instruction.
      Fudge the pc to make sure we get that.  */
 
-  init_sal (&val);		/* initialize to zeroes */
-
-  val.pspace = current_program_space;
-
   /* It's tempting to assume that, if we can't find debugging info for
      any function enclosing PC, that we shouldn't search for line
      number info, either.  However, GAS can emit line number info for
@@ -3053,6 +3171,8 @@ find_pc_sect_line (CORE_ADDR pc, struct 
 	  return find_pc_line (BMSYMBOL_VALUE_ADDRESS (mfunsym), 0);
       }
 
+  symtab_and_line val;
+  val.pspace = current_program_space;
 
   cust = find_pc_sect_compunit_symtab (pc, section);
   if (cust == NULL)
@@ -3465,12 +3585,12 @@ find_pc_line_pc_range (CORE_ADDR pc, COR
 struct symtab_and_line
 find_function_start_sal (struct symbol *sym, int funfirstline)
 {
-  struct symtab_and_line sal;
-  struct obj_section *section;
-
   fixup_symbol_section (sym, NULL);
-  section = SYMBOL_OBJ_SECTION (symbol_objfile (sym), sym);
-  sal = find_pc_sect_line (BLOCK_START (SYMBOL_BLOCK_VALUE (sym)), section, 0);
+
+  obj_section *section = SYMBOL_OBJ_SECTION (symbol_objfile (sym), sym);
+  symtab_and_line sal
+    = find_pc_sect_line (BLOCK_START (SYMBOL_BLOCK_VALUE (sym)), section, 0);
+  sal.symbol = sym;
 
   if (funfirstline && sal.symtab != NULL
       && (COMPUNIT_LOCATIONS_VALID (SYMTAB_COMPUNIT (sal.symtab))
@@ -3490,10 +3610,11 @@ find_function_start_sal (struct symbol *
      can find a line number for after the prologue.  */
   if (sal.pc < BLOCK_START (SYMBOL_BLOCK_VALUE (sym)))
     {
-      init_sal (&sal);
+      sal = {};
       sal.pspace = current_program_space;
       sal.pc = BLOCK_START (SYMBOL_BLOCK_VALUE (sym));
       sal.section = section;
+      sal.symbol = sym;
     }
 
   if (funfirstline)
@@ -3552,7 +3673,6 @@ skip_prologue_sal (struct symtab_and_lin
 {
   struct symbol *sym;
   struct symtab_and_line start_sal;
-  struct cleanup *old_chain;
   CORE_ADDR pc, saved_pc;
   struct obj_section *section;
   const char *name;
@@ -3565,7 +3685,8 @@ skip_prologue_sal (struct symtab_and_lin
   if (sal->explicit_pc)
     return;
 
-  old_chain = save_current_space_and_thread ();
+  scoped_restore_current_pspace_and_thread restore_pspace_thread;
+
   switch_to_program_space_and_thread (sal->pspace);
 
   sym = find_pc_sect_function (sal->pc, sal->section);
@@ -3584,10 +3705,7 @@ skip_prologue_sal (struct symtab_and_lin
         = lookup_minimal_symbol_by_pc_section (sal->pc, sal->section);
 
       if (msymbol.minsym == NULL)
-	{
-	  do_cleanups (old_chain);
-	  return;
-	}
+	return;
 
       objfile = msymbol.objfile;
       pc = BMSYMBOL_VALUE_ADDRESS (msymbol);
@@ -3679,8 +3797,6 @@ skip_prologue_sal (struct symtab_and_lin
       start_sal = find_pc_sect_line (pc, section, 0);
     }
 
-  do_cleanups (old_chain);
-
   /* If we're already past the prologue, leave SAL unchanged.  Otherwise
      forward SAL to the end of the prologue.  */
   if (sal->pc >= pc)
@@ -3831,6 +3947,25 @@ skip_prologue_using_sal (struct gdbarch 
     /* Don't return END_PC, which is past the end of the function.  */
     return prologue_sal.pc;
 }
+
+/* See symtab.h.  */
+
+symbol *
+find_function_alias_target (bound_minimal_symbol msymbol)
+{
+  CORE_ADDR func_addr;
+  if (!msymbol_is_function (msymbol.objfile, msymbol.minsym, &func_addr))
+    return NULL;
+
+  symbol *sym = find_pc_function (func_addr);
+  if (sym != NULL
+      && SYMBOL_CLASS (sym) == LOC_BLOCK
+      && BLOCK_START (SYMBOL_BLOCK_VALUE (sym)) == func_addr)
+    return sym;
+
+  return NULL;
+}
+
 
 /* If P is of the form "operator[ \t]+..." where `...' is
    some legitimate operator text, return a pointer to the
@@ -3841,9 +3976,9 @@ static const char *
 operator_chars (const char *p, const char **end)
 {
   *end = "";
-  if (!startswith (p, "operator"))
+  if (!startswith (p, CP_OPERATOR_STR))
     return *end;
-  p += 8;
+  p += CP_OPERATOR_LEN;
 
   /* Don't get faked out by `operator' being part of a longer
      identifier.  */
@@ -3971,74 +4106,6 @@ operator_chars (const char *p, const cha
 }
 
 
-/* Cache to watch for file names already seen by filename_seen.  */
-
-struct filename_seen_cache
-{
-  /* Table of files seen so far.  */
-  htab_t tab;
-  /* Initial size of the table.  It automagically grows from here.  */
-#define INITIAL_FILENAME_SEEN_CACHE_SIZE 100
-};
-
-/* filename_seen_cache constructor.  */
-
-static struct filename_seen_cache *
-create_filename_seen_cache (void)
-{
-  struct filename_seen_cache *cache = XNEW (struct filename_seen_cache);
-
-  cache->tab = htab_create_alloc (INITIAL_FILENAME_SEEN_CACHE_SIZE,
-				  filename_hash, filename_eq,
-				  NULL, xcalloc, xfree);
-
-  return cache;
-}
-
-/* Empty the cache, but do not delete it.  */
-
-static void
-clear_filename_seen_cache (struct filename_seen_cache *cache)
-{
-  htab_empty (cache->tab);
-}
-
-/* filename_seen_cache destructor.
-   This takes a void * argument as it is generally used as a cleanup.  */
-
-static void
-delete_filename_seen_cache (void *ptr)
-{
-  struct filename_seen_cache *cache = (struct filename_seen_cache *) ptr;
-
-  htab_delete (cache->tab);
-  xfree (cache);
-}
-
-/* If FILE is not already in the table of files in CACHE, return zero;
-   otherwise return non-zero.  Optionally add FILE to the table if ADD
-   is non-zero.
-
-   NOTE: We don't manage space for FILE, we assume FILE lives as long
-   as the caller needs.  */
-
-static int
-filename_seen (struct filename_seen_cache *cache, const char *file, int add)
-{
-  void **slot;
-
-  /* Is FILE in tab?  */
-  slot = htab_find_slot (cache->tab, file, add ? INSERT : NO_INSERT);
-  if (*slot != NULL)
-    return 1;
-
-  /* No; maybe add it to tab.  */
-  if (add)
-    *slot = (char *) file;
-
-  return 0;
-}
-
 /* Data structure to maintain printing state for output_source_filename.  */
 
 struct output_source_filename_data
@@ -4068,7 +4135,7 @@ output_source_filename (const char *name
      symtabs; it doesn't hurt to check.  */
 
   /* Was NAME already seen?  */
-  if (filename_seen (data->filename_seen_cache, name, 1))
+  if (data->filename_seen_cache->seen (name))
     {
       /* Yes; don't print it again.  */
       return;
@@ -4094,22 +4161,21 @@ output_partial_symbol_filename (const ch
 }
 
 static void
-sources_info (char *ignore, int from_tty)
+info_sources_command (const char *ignore, int from_tty)
 {
   struct compunit_symtab *cu;
   struct symtab *s;
   struct objfile *objfile;
   struct output_source_filename_data data;
-  struct cleanup *cleanups;
 
   if (!have_full_symbols () && !have_partial_symbols ())
     {
       error (_("No symbol table is loaded.  Use the \"file\" command."));
     }
 
-  data.filename_seen_cache = create_filename_seen_cache ();
-  cleanups = make_cleanup (delete_filename_seen_cache,
-			   data.filename_seen_cache);
+  filename_seen_cache filenames_seen;
+
+  data.filename_seen_cache = &filenames_seen;
 
   printf_filtered ("Source files for which symbols have been read in:\n\n");
 
@@ -4125,13 +4191,11 @@ sources_info (char *ignore, int from_tty
   printf_filtered ("Source files for which symbols "
 		   "will be read in on demand:\n\n");
 
-  clear_filename_seen_cache (data.filename_seen_cache);
+  filenames_seen.clear ();
   data.first = 1;
   map_symbol_filenames (output_partial_symbol_filename, &data,
 			1 /*need_fullname*/);
   printf_filtered ("\n");
-
-  do_cleanups (cleanups);
 }
 
 /* Compare FILE against all the NFILES entries of FILES.  If BASENAMES is
@@ -4157,110 +4221,39 @@ file_matches (const char *file, const ch
   return 0;
 }
 
-/* Free any memory associated with a search.  */
-
-void
-free_search_symbols (struct symbol_search *symbols)
-{
-  struct symbol_search *p;
-  struct symbol_search *next;
-
-  for (p = symbols; p != NULL; p = next)
-    {
-      next = p->next;
-      xfree (p);
-    }
-}
-
-static void
-do_free_search_symbols_cleanup (void *symbolsp)
-{
-  struct symbol_search *symbols = *(struct symbol_search **) symbolsp;
-
-  free_search_symbols (symbols);
-}
-
-struct cleanup *
-make_cleanup_free_search_symbols (struct symbol_search **symbolsp)
-{
-  return make_cleanup (do_free_search_symbols_cleanup, symbolsp);
-}
-
 /* Helper function for sort_search_symbols_remove_dups and qsort.  Can only
    sort symbols, not minimal symbols.  */
 
-static int
-compare_search_syms (const void *sa, const void *sb)
+int
+symbol_search::compare_search_syms (const symbol_search &sym_a,
+				    const symbol_search &sym_b)
 {
-  struct symbol_search *sym_a = *(struct symbol_search **) sa;
-  struct symbol_search *sym_b = *(struct symbol_search **) sb;
   int c;
 
-  c = FILENAME_CMP (symbol_symtab (sym_a->symbol)->filename,
-		    symbol_symtab (sym_b->symbol)->filename);
+  c = FILENAME_CMP (symbol_symtab (sym_a.symbol)->filename,
+		    symbol_symtab (sym_b.symbol)->filename);
   if (c != 0)
     return c;
 
-  if (sym_a->block != sym_b->block)
-    return sym_a->block - sym_b->block;
+  if (sym_a.block != sym_b.block)
+    return sym_a.block - sym_b.block;
 
-  return strcmp (SYMBOL_PRINT_NAME (sym_a->symbol),
-		 SYMBOL_PRINT_NAME (sym_b->symbol));
+  return strcmp (SYMBOL_PRINT_NAME (sym_a.symbol),
+		 SYMBOL_PRINT_NAME (sym_b.symbol));
 }
 
-/* Sort the NFOUND symbols in list FOUND and remove duplicates.
-   The duplicates are freed, and the new list is returned in
-   *NEW_HEAD, *NEW_TAIL.  */
+/* Sort the symbols in RESULT and remove duplicates.  */
 
 static void
-sort_search_symbols_remove_dups (struct symbol_search *found, int nfound,
-				 struct symbol_search **new_head,
-				 struct symbol_search **new_tail)
+sort_search_symbols_remove_dups (std::vector<symbol_search> *result)
 {
-  struct symbol_search **symbols, *symp;
-  int i, j, nunique;
-
-  gdb_assert (found != NULL && nfound > 0);
-
-  /* Build an array out of the list so we can easily sort them.  */
-  symbols = XNEWVEC (struct symbol_search *, nfound);
-
-  symp = found;
-  for (i = 0; i < nfound; i++)
-    {
-      gdb_assert (symp != NULL);
-      gdb_assert (symp->block >= 0 && symp->block <= 1);
-      symbols[i] = symp;
-      symp = symp->next;
-    }
-  gdb_assert (symp == NULL);
-
-  qsort (symbols, nfound, sizeof (struct symbol_search *),
-	 compare_search_syms);
-
-  /* Collapse out the dups.  */
-  for (i = 1, j = 1; i < nfound; ++i)
-    {
-      if (compare_search_syms (&symbols[j - 1], &symbols[i]) != 0)
-	symbols[j++] = symbols[i];
-      else
-	xfree (symbols[i]);
-    }
-  nunique = j;
-  symbols[j - 1]->next = NULL;
-
-  /* Rebuild the linked list.  */
-  for (i = 0; i < nunique - 1; i++)
-    symbols[i]->next = symbols[i + 1];
-  symbols[nunique - 1]->next = NULL;
-
-  *new_head = symbols[0];
-  *new_tail = symbols[nunique - 1];
-  xfree (symbols);
+  std::sort (result->begin (), result->end ());
+  result->erase (std::unique (result->begin (), result->end ()),
+		 result->end ());
 }
 
 /* Search the symbol table for matches to the regular expression REGEXP,
-   returning the results in *MATCHES.
+   returning the results.
 
    Only symbols of KIND are searched:
    VARIABLES_DOMAIN - search all symbols, excluding functions, type names,
@@ -4269,16 +4262,13 @@ sort_search_symbols_remove_dups (struct 
    TYPES_DOMAIN     - search all type names
    ALL_DOMAIN       - an internal error for this function
 
-   free_search_symbols should be called when *MATCHES is no longer needed.
-
    Within each file the results are sorted locally; each symtab's global and
    static blocks are separately alphabetized.
    Duplicate entries are removed.  */
 
-void
+std::vector<symbol_search>
 search_symbols (const char *regexp, enum search_domain kind,
-		int nfiles, const char *files[],
-		struct symbol_search **matches)
+		int nfiles, const char *files[])
 {
   struct compunit_symtab *cust;
   const struct blockvector *bv;
@@ -4301,17 +4291,8 @@ search_symbols (const char *regexp, enum
   enum minimal_symbol_type ourtype2;
   enum minimal_symbol_type ourtype3;
   enum minimal_symbol_type ourtype4;
-  struct symbol_search *found;
-  struct symbol_search *tail;
-  int nfound;
-  /* This is true if PREG contains valid data, false otherwise.  */
-  bool preg_p;
-  regex_t preg;
-
-  /* OLD_CHAIN .. RETVAL_CHAIN is always freed, RETVAL_CHAIN .. current
-     CLEANUP_CHAIN is freed only in the case of an error.  */
-  struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
-  struct cleanup *retval_chain;
+  std::vector<symbol_search> result;
+  gdb::optional<compiled_regex> preg;
 
   gdb_assert (kind <= TYPES_DOMAIN);
 
@@ -4320,9 +4301,6 @@ search_symbols (const char *regexp, enum
   ourtype3 = types3[kind];
   ourtype4 = types4[kind];
 
-  *matches = NULL;
-  preg_p = false;
-
   if (regexp != NULL)
     {
       /* Make sure spacing is right for C++ operators.
@@ -4331,7 +4309,6 @@ search_symbols (const char *regexp, enum
          and <TYPENAME> or <OPERATOR>.  */
       const char *opend;
       const char *opname = operator_chars (regexp, &opend);
-      int errcode;
 
       if (*opname)
 	{
@@ -4360,18 +4337,9 @@ search_symbols (const char *regexp, enum
 	    }
 	}
 
-      errcode = regcomp (&preg, regexp,
-			 REG_NOSUB | (case_sensitivity == case_sensitive_off
-				      ? REG_ICASE : 0));
-      if (errcode != 0)
-	{
-	  char *err = get_regcomp_error (errcode, &preg);
-
-	  make_cleanup (xfree, err);
-	  error (_("Invalid regexp (%s): %s"), err, regexp);
-	}
-      preg_p = true;
-      make_regfree_cleanup (&preg);
+      int cflags = REG_NOSUB | (case_sensitivity == case_sensitive_off
+				? REG_ICASE : 0);
+      preg.emplace (regexp, cflags, _("Invalid regexp"));
     }
 
   /* Search through the partial symtabs *first* for all symbols
@@ -4382,10 +4350,11 @@ search_symbols (const char *regexp, enum
 			     return file_matches (filename, files, nfiles,
 						  basenames);
 			   },
+			   lookup_name_info::match_any (),
 			   [&] (const char *symname)
 			   {
-			     return (!preg_p || regexec (&preg, symname,
-							 0, NULL, 0) == 0);
+			     return (!preg || preg->exec (symname,
+							  0, NULL, 0) == 0);
 			   },
 			   NULL,
 			   kind);
@@ -4420,9 +4389,9 @@ search_symbols (const char *regexp, enum
 	    || MSYMBOL_TYPE (msymbol) == ourtype3
 	    || MSYMBOL_TYPE (msymbol) == ourtype4)
 	  {
-	    if (!preg_p
-		|| regexec (&preg, MSYMBOL_NATURAL_NAME (msymbol), 0,
-			    NULL, 0) == 0)
+	    if (!preg
+		|| preg->exec (MSYMBOL_NATURAL_NAME (msymbol), 0,
+			       NULL, 0) == 0)
 	      {
 		/* Note: An important side-effect of these lookup functions
 		   is to expand the symbol table if msymbol is found, for the
@@ -4439,11 +4408,6 @@ search_symbols (const char *regexp, enum
       }
     }
 
-  found = NULL;
-  tail = NULL;
-  nfound = 0;
-  retval_chain = make_cleanup_free_search_symbols (&found);
-
   ALL_COMPUNITS (objfile, cust)
   {
     bv = COMPUNIT_BLOCKVECTOR (cust);
@@ -4464,9 +4428,9 @@ search_symbols (const char *regexp, enum
 				       files, nfiles, 1))
 		     && file_matches (symtab_to_fullname (real_symtab),
 				      files, nfiles, 0)))
-		&& ((!preg_p
-		     || regexec (&preg, SYMBOL_NATURAL_NAME (sym), 0,
-				 NULL, 0) == 0)
+		&& ((!preg
+		     || preg->exec (SYMBOL_NATURAL_NAME (sym), 0,
+				    NULL, 0) == 0)
 		    && ((kind == VARIABLES_DOMAIN
 			 && SYMBOL_CLASS (sym) != LOC_TYPEDEF
 			 && SYMBOL_CLASS (sym) != LOC_UNRESOLVED
@@ -4483,27 +4447,14 @@ search_symbols (const char *regexp, enum
 			    && SYMBOL_CLASS (sym) == LOC_TYPEDEF))))
 	      {
 		/* match */
-		struct symbol_search *psr = XCNEW (struct symbol_search);
-
-		psr->block = i;
-		psr->symbol = sym;
-		psr->next = NULL;
-		if (tail == NULL)
-		  found = psr;
-		else
-		  tail->next = psr;
-		tail = psr;
-		nfound ++;
+		result.emplace_back (i, sym);
 	      }
 	  }
       }
   }
 
-  if (found != NULL)
-    {
-      sort_search_symbols_remove_dups (found, nfound, &found, &tail);
-      /* Note: nfound is no longer useful beyond this point.  */
-    }
+  if (!result.empty ())
+    sort_search_symbols_remove_dups (&result);
 
   /* If there are no eyes, avoid all contact.  I mean, if there are
      no debug symbols, then add matching minsyms.  */
@@ -4522,9 +4473,8 @@ search_symbols (const char *regexp, enum
 	    || MSYMBOL_TYPE (msymbol) == ourtype3
 	    || MSYMBOL_TYPE (msymbol) == ourtype4)
 	  {
-	    if (!preg_p
-		|| regexec (&preg, MSYMBOL_NATURAL_NAME (msymbol), 0,
-			    NULL, 0) == 0)
+	    if (!preg || preg->exec (MSYMBOL_NATURAL_NAME (msymbol), 0,
+				     NULL, 0) == 0)
 	      {
 		/* For functions we can do a quick check of whether the
 		   symbol might be found via find_pc_symtab.  */
@@ -4537,17 +4487,7 @@ search_symbols (const char *regexp, enum
 			.symbol == NULL)
 		      {
 			/* match */
-			struct symbol_search *psr = XNEW (struct symbol_search);
-			psr->block = i;
-			psr->msymbol.minsym = msymbol;
-			psr->msymbol.objfile = objfile;
-			psr->symbol = NULL;
-			psr->next = NULL;
-			if (tail == NULL)
-			  found = psr;
-			else
-			  tail->next = psr;
-			tail = psr;
+			result.emplace_back (i, msymbol, objfile);
 		      }
 		  }
 	      }
@@ -4555,9 +4495,7 @@ search_symbols (const char *regexp, enum
       }
     }
 
-  discard_cleanups (retval_chain);
-  do_cleanups (old_chain);
-  *matches = found;
+  return result;
 }
 
 /* Helper function for symtab_symbol_info, this function uses
@@ -4626,21 +4564,17 @@ print_msymbol_info (struct bound_minimal
    matches.  */
 
 static void
-symtab_symbol_info (char *regexp, enum search_domain kind, int from_tty)
+symtab_symbol_info (const char *regexp, enum search_domain kind, int from_tty)
 {
   static const char * const classnames[] =
     {"variable", "function", "type"};
-  struct symbol_search *symbols;
-  struct symbol_search *p;
-  struct cleanup *old_chain;
   const char *last_filename = NULL;
   int first = 1;
 
   gdb_assert (kind <= TYPES_DOMAIN);
 
   /* Must make sure that if we're interrupted, symbols gets freed.  */
-  search_symbols (regexp, kind, 0, NULL, &symbols);
-  old_chain = make_cleanup_free_search_symbols (&symbols);
+  std::vector<symbol_search> symbols = search_symbols (regexp, kind, 0, NULL);
 
   if (regexp != NULL)
     printf_filtered (_("All %ss matching regular expression \"%s\":\n"),
@@ -4648,48 +4582,46 @@ symtab_symbol_info (char *regexp, enum s
   else
     printf_filtered (_("All defined %ss:\n"), classnames[kind]);
 
-  for (p = symbols; p != NULL; p = p->next)
+  for (const symbol_search &p : symbols)
     {
       QUIT;
 
-      if (p->msymbol.minsym != NULL)
+      if (p.msymbol.minsym != NULL)
 	{
 	  if (first)
 	    {
 	      printf_filtered (_("\nNon-debugging symbols:\n"));
 	      first = 0;
 	    }
-	  print_msymbol_info (p->msymbol);
+	  print_msymbol_info (p.msymbol);
 	}
       else
 	{
 	  print_symbol_info (kind,
-			     p->symbol,
-			     p->block,
+			     p.symbol,
+			     p.block,
 			     last_filename);
 	  last_filename
-	    = symtab_to_filename_for_display (symbol_symtab (p->symbol));
+	    = symtab_to_filename_for_display (symbol_symtab (p.symbol));
 	}
     }
-
-  do_cleanups (old_chain);
 }
 
 static void
-variables_info (char *regexp, int from_tty)
+info_variables_command (const char *regexp, int from_tty)
 {
   symtab_symbol_info (regexp, VARIABLES_DOMAIN, from_tty);
 }
 
 static void
-functions_info (char *regexp, int from_tty)
+info_functions_command (const char *regexp, int from_tty)
 {
   symtab_symbol_info (regexp, FUNCTIONS_DOMAIN, from_tty);
 }
 
 
 static void
-types_info (char *regexp, int from_tty)
+info_types_command (const char *regexp, int from_tty)
 {
   symtab_symbol_info (regexp, TYPES_DOMAIN, from_tty);
 }
@@ -4702,29 +4634,17 @@ rbreak_command_wrapper (char *regexp, in
   rbreak_command (regexp, from_tty);
 }
 
-/* A cleanup function that calls end_rbreak_breakpoints.  */
-
 static void
-do_end_rbreak_breakpoints (void *ignore)
+rbreak_command (const char *regexp, int from_tty)
 {
-  end_rbreak_breakpoints ();
-}
-
-static void
-rbreak_command (char *regexp, int from_tty)
-{
-  struct symbol_search *ss;
-  struct symbol_search *p;
-  struct cleanup *old_chain;
-  char *string = NULL;
-  int len = 0;
+  std::string string;
   const char **files = NULL;
   const char *file_name;
   int nfiles = 0;
 
   if (regexp)
     {
-      char *colon = strchr (regexp, ':');
+      const char *colon = strchr (regexp, ':');
 
       if (colon && *(colon + 1) != ':')
 	{
@@ -4744,203 +4664,142 @@ rbreak_command (char *regexp, int from_t
 	}
     }
 
-  search_symbols (regexp, FUNCTIONS_DOMAIN, nfiles, files, &ss);
-  old_chain = make_cleanup_free_search_symbols (&ss);
-  make_cleanup (free_current_contents, &string);
+  std::vector<symbol_search> symbols = search_symbols (regexp,
+						       FUNCTIONS_DOMAIN,
+						       nfiles, files);
 
-  start_rbreak_breakpoints ();
-  make_cleanup (do_end_rbreak_breakpoints, NULL);
-  for (p = ss; p != NULL; p = p->next)
+  scoped_rbreak_breakpoints finalize;
+  for (const symbol_search &p : symbols)
     {
-      if (p->msymbol.minsym == NULL)
+      if (p.msymbol.minsym == NULL)
 	{
-	  struct symtab *symtab = symbol_symtab (p->symbol);
+	  struct symtab *symtab = symbol_symtab (p.symbol);
 	  const char *fullname = symtab_to_fullname (symtab);
 
-	  int newlen = (strlen (fullname)
-			+ strlen (SYMBOL_LINKAGE_NAME (p->symbol))
-			+ 4);
-
-	  if (newlen > len)
-	    {
-	      string = (char *) xrealloc (string, newlen);
-	      len = newlen;
-	    }
-	  strcpy (string, fullname);
-	  strcat (string, ":'");
-	  strcat (string, SYMBOL_LINKAGE_NAME (p->symbol));
-	  strcat (string, "'");
-	  break_command (string, from_tty);
+	  string = string_printf ("%s:'%s'", fullname,
+				  SYMBOL_LINKAGE_NAME (p.symbol));
+	  break_command (&string[0], from_tty);
 	  print_symbol_info (FUNCTIONS_DOMAIN,
-			     p->symbol,
-			     p->block,
+			     p.symbol,
+			     p.block,
 			     symtab_to_filename_for_display (symtab));
 	}
       else
 	{
-	  int newlen = (strlen (MSYMBOL_LINKAGE_NAME (p->msymbol.minsym)) + 3);
+	  string = string_printf ("'%s'",
+				  MSYMBOL_LINKAGE_NAME (p.msymbol.minsym));
 
-	  if (newlen > len)
-	    {
-	      string = (char *) xrealloc (string, newlen);
-	      len = newlen;
-	    }
-	  strcpy (string, "'");
-	  strcat (string, MSYMBOL_LINKAGE_NAME (p->msymbol.minsym));
-	  strcat (string, "'");
-
-	  break_command (string, from_tty);
+	  break_command (&string[0], from_tty);
 	  printf_filtered ("<function, no debug info> %s;\n",
-			   MSYMBOL_PRINT_NAME (p->msymbol.minsym));
+			   MSYMBOL_PRINT_NAME (p.msymbol.minsym));
 	}
     }
-
-  do_cleanups (old_chain);
 }
 
 
-/* Evaluate if NAME matches SYM_TEXT and SYM_TEXT_LEN.
-
-   Either sym_text[sym_text_len] != '(' and then we search for any
-   symbol starting with SYM_TEXT text.
-
-   Otherwise sym_text[sym_text_len] == '(' and then we require symbol name to
-   be terminated at that point.  Partial symbol tables do not have parameters
-   information.  */
+/* Evaluate if SYMNAME matches LOOKUP_NAME.  */
 
 static int
-compare_symbol_name (const char *name, const char *sym_text, int sym_text_len)
-{
-  int (*ncmp) (const char *, const char *, size_t);
+compare_symbol_name (const char *symbol_name, language symbol_language,
+		     const lookup_name_info &lookup_name,
+		     completion_match_result &match_res)
+{
+  const language_defn *lang;
+
+  /* If we're completing for an expression and the symbol doesn't have
+     an explicit language set, fallback to the current language.  Ada
+     minimal symbols won't have their language set to Ada, for
+     example, and if we compared using the default/C-like matcher,
+     then when completing e.g., symbols in a package named "pck", we'd
+     match internal Ada symbols like "pckS", which are invalid in an
+     Ada expression, unless you wrap them in '<' '>' to request a
+     verbatim match.  */
+  if (symbol_language == language_auto
+      && lookup_name.match_type () == symbol_name_match_type::EXPRESSION)
+    lang = current_language;
+  else
+    lang = language_def (symbol_language);
 
-  ncmp = (case_sensitivity == case_sensitive_on ? strncmp : strncasecmp);
+  symbol_name_matcher_ftype *name_match
+    = language_get_symbol_name_matcher (lang, lookup_name);
 
-  if (ncmp (name, sym_text, sym_text_len) != 0)
-    return 0;
+  return name_match (symbol_name, lookup_name, &match_res);
+}
 
-  if (sym_text[sym_text_len] == '(')
-    {
-      /* User searches for `name(someth...'.  Require NAME to be terminated.
-	 Normally psymtabs and gdbindex have no parameter types so '\0' will be
-	 present but accept even parameters presence.  In this case this
-	 function is in fact strcmp_iw but whitespace skipping is not supported
-	 for tab completion.  */
+/*  See symtab.h.  */
 
-      if (name[sym_text_len] != '\0' && name[sym_text_len] != '(')
-	return 0;
-    }
+void
+completion_list_add_name (completion_tracker &tracker,
+			  language symbol_language,
+			  const char *symname,
+			  const lookup_name_info &lookup_name,
+			  const char *text, const char *word)
+{
+  completion_match_result &match_res
+    = tracker.reset_completion_match_result ();
 
-  return 1;
-}
+  /* Clip symbols that cannot match.  */
+  if (!compare_symbol_name (symname, symbol_language, lookup_name, match_res))
+    return;
 
-/* Free any memory associated with a completion list.  */
+  /* Refresh SYMNAME from the match string.  It's potentially
+     different depending on language.  (E.g., on Ada, the match may be
+     the encoded symbol name wrapped in "<>").  */
+  symname = match_res.match.match ();
+  gdb_assert (symname != NULL);
 
-static void
-free_completion_list (VEC (char_ptr) **list_ptr)
-{
-  int i;
-  char *p;
+  /* We have a match for a completion, so add SYMNAME to the current list
+     of matches.  Note that the name is moved to freshly malloc'd space.  */
 
-  for (i = 0; VEC_iterate (char_ptr, *list_ptr, i, p); ++i)
-    xfree (p);
-  VEC_free (char_ptr, *list_ptr);
+  {
+    gdb::unique_xmalloc_ptr<char> completion
+      = make_completion_match_str (symname, text, word);
+
+    /* Here we pass the match-for-lcd object to add_completion.  Some
+       languages match the user text against substrings of symbol
+       names in some cases.  E.g., in C++, "b push_ba" completes to
+       "std::vector::push_back", "std::string::push_back", etc., and
+       in this case we want the completion lowest common denominator
+       to be "push_back" instead of "std::".  */
+    tracker.add_completion (std::move (completion),
+			    &match_res.match_for_lcd, text, word);
+  }
 }
 
-/* Callback for make_cleanup.  */
+/* completion_list_add_name wrapper for struct symbol.  */
 
 static void
-do_free_completion_list (void *list)
+completion_list_add_symbol (completion_tracker &tracker,
+			    symbol *sym,
+			    const lookup_name_info &lookup_name,
+			    const char *text, const char *word)
 {
-  free_completion_list ((VEC (char_ptr) **) list);
+  completion_list_add_name (tracker, SYMBOL_LANGUAGE (sym),
+			    SYMBOL_NATURAL_NAME (sym),
+			    lookup_name, text, word);
 }
 
-/* Helper routine for make_symbol_completion_list.  */
-
-static VEC (char_ptr) *return_val;
-
-#define COMPLETION_LIST_ADD_SYMBOL(symbol, sym_text, len, text, word) \
-      completion_list_add_name \
-	(SYMBOL_NATURAL_NAME (symbol), (sym_text), (len), (text), (word))
-
-#define MCOMPLETION_LIST_ADD_SYMBOL(symbol, sym_text, len, text, word) \
-      completion_list_add_name \
-	(MSYMBOL_NATURAL_NAME (symbol), (sym_text), (len), (text), (word))
-
-/* Tracker for how many unique completions have been generated.  Used
-   to terminate completion list generation early if the list has grown
-   to a size so large as to be useless.  This helps avoid GDB seeming
-   to lock up in the event the user requests to complete on something
-   vague that necessitates the time consuming expansion of many symbol
-   tables.  */
-
-static completion_tracker_t completion_tracker;
-
-/*  Test to see if the symbol specified by SYMNAME (which is already
-   demangled for C++ symbols) matches SYM_TEXT in the first SYM_TEXT_LEN
-   characters.  If so, add it to the current completion list.  */
+/* completion_list_add_name wrapper for struct minimal_symbol.  */
 
 static void
-completion_list_add_name (const char *symname,
-			  const char *sym_text, int sym_text_len,
-			  const char *text, const char *word)
+completion_list_add_msymbol (completion_tracker &tracker,
+			     minimal_symbol *sym,
+			     const lookup_name_info &lookup_name,
+			     const char *text, const char *word)
 {
-  /* Clip symbols that cannot match.  */
-  if (!compare_symbol_name (symname, sym_text, sym_text_len))
-    return;
-
-  /* We have a match for a completion, so add SYMNAME to the current list
-     of matches.  Note that the name is moved to freshly malloc'd space.  */
-
-  {
-    char *newobj;
-    enum maybe_add_completion_enum add_status;
-
-    if (word == sym_text)
-      {
-	newobj = (char *) xmalloc (strlen (symname) + 5);
-	strcpy (newobj, symname);
-      }
-    else if (word > sym_text)
-      {
-	/* Return some portion of symname.  */
-	newobj = (char *) xmalloc (strlen (symname) + 5);
-	strcpy (newobj, symname + (word - sym_text));
-      }
-    else
-      {
-	/* Return some of SYM_TEXT plus symname.  */
-	newobj = (char *) xmalloc (strlen (symname) + (sym_text - word) + 5);
-	strncpy (newobj, word, sym_text - word);
-	newobj[sym_text - word] = '\0';
-	strcat (newobj, symname);
-      }
-
-    add_status = maybe_add_completion (completion_tracker, newobj);
-
-    switch (add_status)
-      {
-      case MAYBE_ADD_COMPLETION_OK:
-	VEC_safe_push (char_ptr, return_val, newobj);
-	break;
-      case MAYBE_ADD_COMPLETION_OK_MAX_REACHED:
-	VEC_safe_push (char_ptr, return_val, newobj);
-	throw_max_completions_reached_error ();
-      case MAYBE_ADD_COMPLETION_MAX_REACHED:
-	xfree (newobj);
-	throw_max_completions_reached_error ();
-      case MAYBE_ADD_COMPLETION_DUPLICATE:
-	xfree (newobj);
-	break;
-      }
-  }
+  completion_list_add_name (tracker, MSYMBOL_LANGUAGE (sym),
+			    MSYMBOL_NATURAL_NAME (sym),
+			    lookup_name, text, word);
 }
 
+
 /* ObjC: In case we are completing on a selector, look as the msymbol
    again and feed all the selectors into the mill.  */
 
 static void
-completion_list_objc_symbol (struct minimal_symbol *msymbol,
-			     const char *sym_text, int sym_text_len,
+completion_list_objc_symbol (completion_tracker &tracker,
+			     struct minimal_symbol *msymbol,
+			     const lookup_name_info &lookup_name,
 			     const char *text, const char *word)
 {
   static char *tmp = NULL;
@@ -4955,9 +4814,12 @@ completion_list_objc_symbol (struct mini
   if ((method[0] != '-') && (method[0] != '+'))
     return;
 
-  if (sym_text[0] == '[')
+  if (text[0] == '[')
     /* Complete on shortened method method.  */
-    completion_list_add_name (method + 1, sym_text, sym_text_len, text, word);
+    completion_list_add_name (tracker, language_objc,
+			      method + 1,
+			      lookup_name,
+			      text, word);
 
   while ((strlen (method) + 1) >= tmplen)
     {
@@ -4978,9 +4840,11 @@ completion_list_objc_symbol (struct mini
       memcpy (tmp, method, (category - method));
       tmp[category - method] = ' ';
       memcpy (tmp + (category - method) + 1, selector, strlen (selector) + 1);
-      completion_list_add_name (tmp, sym_text, sym_text_len, text, word);
-      if (sym_text[0] == '[')
-	completion_list_add_name (tmp + 1, sym_text, sym_text_len, text, word);
+      completion_list_add_name (tracker, language_objc, tmp,
+				lookup_name, text, word);
+      if (text[0] == '[')
+	completion_list_add_name (tracker, language_objc, tmp + 1,
+				  lookup_name, text, word);
     }
 
   if (selector != NULL)
@@ -4991,7 +4855,8 @@ completion_list_objc_symbol (struct mini
       if (tmp2 != NULL)
 	*tmp2 = '\0';
 
-      completion_list_add_name (tmp, sym_text, sym_text_len, text, word);
+      completion_list_add_name (tracker, language_objc, tmp,
+				lookup_name, text, word);
     }
 }
 
@@ -5042,9 +4907,10 @@ language_search_unquoted_string (const c
 }
 
 static void
-completion_list_add_fields (struct symbol *sym, const char *sym_text,
-			    int sym_text_len, const char *text,
-			    const char *word)
+completion_list_add_fields (completion_tracker &tracker,
+			    struct symbol *sym,
+			    const lookup_name_info &lookup_name,
+			    const char *text, const char *word)
 {
   if (SYMBOL_CLASS (sym) == LOC_TYPEDEF)
     {
@@ -5055,8 +4921,41 @@ completion_list_add_fields (struct symbo
       if (c == TYPE_CODE_UNION || c == TYPE_CODE_STRUCT)
 	for (j = TYPE_N_BASECLASSES (t); j < TYPE_NFIELDS (t); j++)
 	  if (TYPE_FIELD_NAME (t, j))
-	    completion_list_add_name (TYPE_FIELD_NAME (t, j),
-				      sym_text, sym_text_len, text, word);
+	    completion_list_add_name (tracker, SYMBOL_LANGUAGE (sym),
+				      TYPE_FIELD_NAME (t, j),
+				      lookup_name, text, word);
+    }
+}
+
+/* See symtab.h.  */
+
+bool
+symbol_is_function_or_method (symbol *sym)
+{
+  switch (TYPE_CODE (SYMBOL_TYPE (sym)))
+    {
+    case TYPE_CODE_FUNC:
+    case TYPE_CODE_METHOD:
+      return true;
+    default:
+      return false;
+    }
+}
+
+/* See symtab.h.  */
+
+bool
+symbol_is_function_or_method (minimal_symbol *msymbol)
+{
+  switch (MSYMBOL_TYPE (msymbol))
+    {
+    case mst_text:
+    case mst_text_gnu_ifunc:
+    case mst_solib_trampoline:
+    case mst_file_text:
+      return true;
+    default:
+      return false;
     }
 }
 
@@ -5064,7 +4963,9 @@ completion_list_add_fields (struct symbo
 
 static void
 add_symtab_completions (struct compunit_symtab *cust,
-			const char *sym_text, int sym_text_len,
+			completion_tracker &tracker,
+			complete_symbol_mode mode,
+			const lookup_name_info &lookup_name,
 			const char *text, const char *word,
 			enum type_code code)
 {
@@ -5082,21 +4983,25 @@ add_symtab_completions (struct compunit_
       b = BLOCKVECTOR_BLOCK (COMPUNIT_BLOCKVECTOR (cust), i);
       ALL_BLOCK_SYMBOLS (b, iter, sym)
 	{
+	  if (completion_skip_symbol (mode, sym))
+	    continue;
+
 	  if (code == TYPE_CODE_UNDEF
 	      || (SYMBOL_DOMAIN (sym) == STRUCT_DOMAIN
 		  && TYPE_CODE (SYMBOL_TYPE (sym)) == code))
-	    COMPLETION_LIST_ADD_SYMBOL (sym,
-					sym_text, sym_text_len,
+	    completion_list_add_symbol (tracker, sym,
+					lookup_name,
 					text, word);
 	}
     }
 }
 
-static void
-default_make_symbol_completion_list_break_on_1 (const char *text,
-						const char *word,
-						const char *break_on,
-						enum type_code code)
+void
+default_collect_symbol_completion_matches_break_on
+  (completion_tracker &tracker, complete_symbol_mode mode,
+   symbol_name_match_type name_match_type,
+   const char *text, const char *word,
+   const char *break_on, enum type_code code)
 {
   /* Problem: All of the symbols have to be copied because readline
      frees them.  I'm not going to worry about this; hopefully there
@@ -5111,11 +5016,11 @@ default_make_symbol_completion_list_brea
   struct block_iterator iter;
   /* The symbol we are completing on.  Points in same buffer as text.  */
   const char *sym_text;
-  /* Length of sym_text.  */
-  int sym_text_len;
-  struct cleanup *cleanups;
 
   /* Now look for the symbol we are supposed to complete on.  */
+  if (mode == complete_symbol_mode::LINESPEC)
+    sym_text = text;
+  else
   {
     const char *p;
     char quote_found;
@@ -5166,25 +5071,7 @@ default_make_symbol_completion_list_brea
       }
   }
 
-  sym_text_len = strlen (sym_text);
-
-  /* Prepare SYM_TEXT_LEN for compare_symbol_name.  */
-
-  if (current_language->la_language == language_cplus
-      || current_language->la_language == language_fortran)
-    {
-      /* These languages may have parameters entered by user but they are never
-	 present in the partial symbol tables.  */
-
-      const char *cs = (const char *) memchr (sym_text, '(', sym_text_len);
-
-      if (cs)
-	sym_text_len = cs - sym_text;
-    }
-  gdb_assert (sym_text[sym_text_len] == '\0' || sym_text[sym_text_len] == '(');
-
-  completion_tracker = new_completion_tracker ();
-  cleanups = make_cleanup_free_completion_tracker (&completion_tracker);
+  lookup_name_info lookup_name (sym_text, name_match_type, true);
 
   /* At this point scan through the misc symbol vectors and add each
      symbol you find to the list.  Eventually we want to ignore
@@ -5196,33 +5083,33 @@ default_make_symbol_completion_list_brea
       ALL_MSYMBOLS (objfile, msymbol)
 	{
 	  QUIT;
-	  MCOMPLETION_LIST_ADD_SYMBOL (msymbol, sym_text, sym_text_len, text,
-				       word);
 
-	  completion_list_objc_symbol (msymbol, sym_text, sym_text_len, text,
-				       word);
+	  if (completion_skip_symbol (mode, msymbol))
+	    continue;
+
+	  completion_list_add_msymbol (tracker, msymbol, lookup_name,
+				       sym_text, word);
+
+	  completion_list_objc_symbol (tracker, msymbol, lookup_name,
+				       sym_text, word);
 	}
     }
 
   /* Add completions for all currently loaded symbol tables.  */
   ALL_COMPUNITS (objfile, cust)
-    add_symtab_completions (cust, sym_text, sym_text_len, text, word,
-			    code);
+    add_symtab_completions (cust, tracker, mode, lookup_name,
+			    sym_text, word, code);
 
   /* Look through the partial symtabs for all symbols which begin by
      matching SYM_TEXT.  Expand all CUs that you find to the list.  */
   expand_symtabs_matching (NULL,
-			   [&] (const char *name) /* symbol matcher */
-			     {
-			       return compare_symbol_name (name,
-							   sym_text,
-							   sym_text_len);
-			     },
+			   lookup_name,
+			   NULL,
 			   [&] (compunit_symtab *symtab) /* expansion notify */
 			     {
 			       add_symtab_completions (symtab,
-						       sym_text, sym_text_len,
-						       text, word, code);
+						       tracker, mode, lookup_name,
+						       sym_text, word, code);
 			     },
 			   ALL_DOMAIN);
 
@@ -5243,15 +5130,15 @@ default_make_symbol_completion_list_brea
 	  {
 	    if (code == TYPE_CODE_UNDEF)
 	      {
-		COMPLETION_LIST_ADD_SYMBOL (sym, sym_text, sym_text_len, text,
-					    word);
-		completion_list_add_fields (sym, sym_text, sym_text_len, text,
-					    word);
+		completion_list_add_symbol (tracker, sym, lookup_name,
+					    sym_text, word);
+		completion_list_add_fields (tracker, sym, lookup_name,
+					    sym_text, word);
 	      }
 	    else if (SYMBOL_DOMAIN (sym) == STRUCT_DOMAIN
 		     && TYPE_CODE (SYMBOL_TYPE (sym)) == code)
-	      COMPLETION_LIST_ADD_SYMBOL (sym, sym_text, sym_text_len, text,
-					  word);
+	      completion_list_add_symbol (tracker, sym, lookup_name,
+					  sym_text, word);
 	  }
 
 	/* Stop when we encounter an enclosing function.  Do not stop for
@@ -5268,11 +5155,13 @@ default_make_symbol_completion_list_brea
     {
       if (surrounding_static_block != NULL)
 	ALL_BLOCK_SYMBOLS (surrounding_static_block, iter, sym)
-	  completion_list_add_fields (sym, sym_text, sym_text_len, text, word);
+	  completion_list_add_fields (tracker, sym, lookup_name,
+				      sym_text, word);
 
       if (surrounding_global_block != NULL)
 	ALL_BLOCK_SYMBOLS (surrounding_global_block, iter, sym)
-	  completion_list_add_fields (sym, sym_text, sym_text_len, text, word);
+	  completion_list_add_fields (tracker, sym, lookup_name,
+				      sym_text, word);
     }
 
   /* Skip macros if we are completing a struct tag -- arguable but
@@ -5288,9 +5177,8 @@ default_make_symbol_completion_list_brea
 				 macro_source_file *,
 				 int)
 	{
-	  completion_list_add_name (macro_name,
-				    sym_text, sym_text_len,
-				    text, word);
+	  completion_list_add_name (tracker, language_c, macro_name,
+				    lookup_name, sym_text, word);
 	};
 
       /* Add any macros visible in the default scope.  Note that this
@@ -5311,93 +5199,73 @@ default_make_symbol_completion_list_brea
       /* User-defined macros are always visible.  */
       macro_for_each (macro_user_macros, add_macro_name);
     }
-
-  do_cleanups (cleanups);
-}
-
-VEC (char_ptr) *
-default_make_symbol_completion_list_break_on (const char *text,
-					      const char *word,
-					      const char *break_on,
-					      enum type_code code)
-{
-  struct cleanup *back_to;
-
-  return_val = NULL;
-  back_to = make_cleanup (do_free_completion_list, &return_val);
-
-  TRY
-    {
-      default_make_symbol_completion_list_break_on_1 (text, word,
-						      break_on, code);
-    }
-  CATCH (except, RETURN_MASK_ERROR)
-    {
-      if (except.error != MAX_COMPLETIONS_REACHED_ERROR)
-	throw_exception (except);
-    }
-  END_CATCH
-
-  discard_cleanups (back_to);
-  return return_val;
 }
 
-VEC (char_ptr) *
-default_make_symbol_completion_list (const char *text, const char *word,
-				     enum type_code code)
-{
-  return default_make_symbol_completion_list_break_on (text, word, "", code);
+void
+default_collect_symbol_completion_matches (completion_tracker &tracker,
+					   complete_symbol_mode mode,
+					   symbol_name_match_type name_match_type,
+					   const char *text, const char *word,
+					   enum type_code code)
+{
+  return default_collect_symbol_completion_matches_break_on (tracker, mode,
+							     name_match_type,
+							     text, word, "",
+							     code);
 }
 
-/* Return a vector of all symbols (regardless of class) which begin by
-   matching TEXT.  If the answer is no symbols, then the return value
-   is NULL.  */
+/* Collect all symbols (regardless of class) which begin by matching
+   TEXT.  */
 
-VEC (char_ptr) *
-make_symbol_completion_list (const char *text, const char *word)
-{
-  return current_language->la_make_symbol_completion_list (text, word,
-							   TYPE_CODE_UNDEF);
+void
+collect_symbol_completion_matches (completion_tracker &tracker,
+				   complete_symbol_mode mode,
+				   symbol_name_match_type name_match_type,
+				   const char *text, const char *word)
+{
+  current_language->la_collect_symbol_completion_matches (tracker, mode,
+							  name_match_type,
+							  text, word,
+							  TYPE_CODE_UNDEF);
 }
 
-/* Like make_symbol_completion_list, but only return STRUCT_DOMAIN
-   symbols whose type code is CODE.  */
+/* Like collect_symbol_completion_matches, but only collect
+   STRUCT_DOMAIN symbols whose type code is CODE.  */
 
-VEC (char_ptr) *
-make_symbol_completion_type (const char *text, const char *word,
-			     enum type_code code)
+void
+collect_symbol_completion_matches_type (completion_tracker &tracker,
+					const char *text, const char *word,
+					enum type_code code)
 {
+  complete_symbol_mode mode = complete_symbol_mode::EXPRESSION;
+  symbol_name_match_type name_match_type = symbol_name_match_type::EXPRESSION;
+
   gdb_assert (code == TYPE_CODE_UNION
 	      || code == TYPE_CODE_STRUCT
 	      || code == TYPE_CODE_ENUM);
-  return current_language->la_make_symbol_completion_list (text, word, code);
-}
-
-/* Like make_symbol_completion_list, but suitable for use as a
-   completion function.  */
-
-VEC (char_ptr) *
-make_symbol_completion_list_fn (struct cmd_list_element *ignore,
-				const char *text, const char *word)
-{
-  return make_symbol_completion_list (text, word);
+  current_language->la_collect_symbol_completion_matches (tracker, mode,
+							  name_match_type,
+							  text, word, code);
 }
 
-/* Like make_symbol_completion_list, but returns a list of symbols
-   defined in a source file FILE.  */
+/* Like collect_symbol_completion_matches, but collects a list of
+   symbols defined in all source files named SRCFILE.  */
 
-static VEC (char_ptr) *
-make_file_symbol_completion_list_1 (const char *text, const char *word,
-				    const char *srcfile)
+void
+collect_file_symbol_completion_matches (completion_tracker &tracker,
+					complete_symbol_mode mode,
+					symbol_name_match_type name_match_type,
+					const char *text, const char *word,
+					const char *srcfile)
 {
-  struct symtab *s;
   /* The symbol we are completing on.  Points in same buffer as text.  */
   const char *sym_text;
-  /* Length of sym_text.  */
-  int sym_text_len;
 
   /* Now look for the symbol we are supposed to complete on.
      FIXME: This should be language-specific.  */
+  if (mode == complete_symbol_mode::LINESPEC)
+    sym_text = text;
+  else
   {
     const char *p;
     char quote_found;
@@ -5430,7 +5298,7 @@ make_file_symbol_completion_list_1 (cons
       /* A double-quoted string is never a symbol, nor does it make sense
          to complete it any other way.  */
       {
-	return NULL;
+	return;
       }
     else
       {
@@ -5439,62 +5307,17 @@ make_file_symbol_completion_list_1 (cons
       }
   }
 
-  sym_text_len = strlen (sym_text);
+  lookup_name_info lookup_name (sym_text, name_match_type, true);
 
-  /* Find the symtab for SRCFILE (this loads it if it was not yet read
-     in).  */
-  s = lookup_symtab (srcfile);
-  if (s == NULL)
-    {
-      /* Maybe they typed the file with leading directories, while the
-	 symbol tables record only its basename.  */
-      const char *tail = lbasename (srcfile);
-
-      if (tail > srcfile)
-	s = lookup_symtab (tail);
-    }
-
-  /* If we have no symtab for that file, return an empty list.  */
-  if (s == NULL)
-    return (return_val);
-
-  /* Go through this symtab and check the externs and statics for
-     symbols which match.  */
-  add_symtab_completions (SYMTAB_COMPUNIT (s),
-			  sym_text, sym_text_len,
-			  text, word, TYPE_CODE_UNDEF);
-
-  return (return_val);
-}
-
-/* Wrapper around make_file_symbol_completion_list_1
-   to handle MAX_COMPLETIONS_REACHED_ERROR.  */
-
-VEC (char_ptr) *
-make_file_symbol_completion_list (const char *text, const char *word,
-				  const char *srcfile)
-{
-  struct cleanup *back_to, *cleanups;
-
-  completion_tracker = new_completion_tracker ();
-  cleanups = make_cleanup_free_completion_tracker (&completion_tracker);
-  return_val = NULL;
-  back_to = make_cleanup (do_free_completion_list, &return_val);
-
-  TRY
-    {
-      make_file_symbol_completion_list_1 (text, word, srcfile);
-    }
-  CATCH (except, RETURN_MASK_ERROR)
-    {
-      if (except.error != MAX_COMPLETIONS_REACHED_ERROR)
-	throw_exception (except);
-    }
-  END_CATCH
-
-  discard_cleanups (back_to);
-  do_cleanups (cleanups);
-  return return_val;
+  /* Go through symtabs for SRCFILE and check the externs and statics
+     for symbols which match.  */
+  iterate_over_symtabs (srcfile, [&] (symtab *s)
+    {
+      add_symtab_completions (SYMTAB_COMPUNIT (s),
+			      tracker, mode, lookup_name,
+			      sym_text, word, TYPE_CODE_UNDEF);
+      return false;
+    });
 }
 
 /* A helper function for make_source_files_completion_list.  It adds
@@ -5503,32 +5326,9 @@ make_file_symbol_completion_list (const 
 
 static void
 add_filename_to_list (const char *fname, const char *text, const char *word,
-		      VEC (char_ptr) **list)
+		      completion_list *list)
 {
-  char *newobj;
-  size_t fnlen = strlen (fname);
-
-  if (word == text)
-    {
-      /* Return exactly fname.  */
-      newobj = (char *) xmalloc (fnlen + 5);
-      strcpy (newobj, fname);
-    }
-  else if (word > text)
-    {
-      /* Return some portion of fname.  */
-      newobj = (char *) xmalloc (fnlen + 5);
-      strcpy (newobj, fname + (word - text));
-    }
-  else
-    {
-      /* Return some of TEXT plus fname.  */
-      newobj = (char *) xmalloc (fnlen + (text - word) + 5);
-      strncpy (newobj, word, text - word);
-      newobj[text - word] = '\0';
-      strcat (newobj, fname);
-    }
-  VEC_safe_push (char_ptr, *list, newobj);
+  list->emplace_back (make_completion_match_str (fname, text, word));
 }
 
 static int
@@ -5556,7 +5356,7 @@ struct add_partial_filename_data
   const char *text;
   const char *word;
   int text_len;
-  VEC (char_ptr) **list;
+  completion_list *list;
 };
 
 /* A callback for map_partial_symbol_filenames.  */
@@ -5570,7 +5370,7 @@ maybe_add_partial_symtab_filename (const
 
   if (not_interesting_fname (filename))
     return;
-  if (!filename_seen (data->filename_seen_cache, filename, 1)
+  if (!data->filename_seen_cache->seen (filename)
       && filename_ncmp (filename, data->text, data->text_len) == 0)
     {
       /* This file matches for a completion; add it to the
@@ -5582,44 +5382,37 @@ maybe_add_partial_symtab_filename (const
       const char *base_name = lbasename (filename);
 
       if (base_name != filename
-	  && !filename_seen (data->filename_seen_cache, base_name, 1)
+	  && !data->filename_seen_cache->seen (base_name)
 	  && filename_ncmp (base_name, data->text, data->text_len) == 0)
 	add_filename_to_list (base_name, data->text, data->word, data->list);
     }
 }
 
-/* Return a vector of all source files whose names begin with matching
+/* Return a list of all source files whose names begin with matching
    TEXT.  The file names are looked up in the symbol tables of this
-   program.  If the answer is no matchess, then the return value is
-   NULL.  */
+   program.  */
 
-VEC (char_ptr) *
+completion_list
 make_source_files_completion_list (const char *text, const char *word)
 {
   struct compunit_symtab *cu;
   struct symtab *s;
   struct objfile *objfile;
   size_t text_len = strlen (text);
-  VEC (char_ptr) *list = NULL;
+  completion_list list;
   const char *base_name;
   struct add_partial_filename_data datum;
-  struct filename_seen_cache *filename_seen_cache;
-  struct cleanup *back_to, *cache_cleanup;
 
   if (!have_full_symbols () && !have_partial_symbols ())
     return list;
 
-  back_to = make_cleanup (do_free_completion_list, &list);
-
-  filename_seen_cache = create_filename_seen_cache ();
-  cache_cleanup = make_cleanup (delete_filename_seen_cache,
-				filename_seen_cache);
+  filename_seen_cache filenames_seen;
 
   ALL_FILETABS (objfile, cu, s)
     {
       if (not_interesting_fname (s->filename))
 	continue;
-      if (!filename_seen (filename_seen_cache, s->filename, 1)
+      if (!filenames_seen.seen (s->filename)
 	  && filename_ncmp (s->filename, text, text_len) == 0)
 	{
 	  /* This file matches for a completion; add it to the current
@@ -5634,13 +5427,13 @@ make_source_files_completion_list (const
 	     command do when they parse file names.  */
 	  base_name = lbasename (s->filename);
 	  if (base_name != s->filename
-	      && !filename_seen (filename_seen_cache, base_name, 1)
+	      && !filenames_seen.seen (base_name)
 	      && filename_ncmp (base_name, text, text_len) == 0)
 	    add_filename_to_list (base_name, text, word, &list);
 	}
     }
 
-  datum.filename_seen_cache = filename_seen_cache;
+  datum.filename_seen_cache = &filenames_seen;
   datum.text = text;
   datum.word = word;
   datum.text_len = text_len;
@@ -5648,9 +5441,6 @@ make_source_files_completion_list (const
   map_symbol_filenames (maybe_add_partial_symtab_filename, &datum,
 			0 /*need_fullname*/);
 
-  do_cleanups (cache_cleanup);
-  discard_cleanups (back_to);
-
   return list;
 }
 
@@ -5998,7 +5788,7 @@ allocate_template_symbol (struct objfile
   struct template_symbol *result;
 
   result = OBSTACK_ZALLOC (&objfile->objfile_obstack, struct template_symbol);
-  initialize_objfile_symbol_1 (&result->base);
+  initialize_objfile_symbol_1 (result);
 
   return result;
 }
@@ -6053,13 +5843,13 @@ _initialize_symtab (void)
   symbol_cache_key
     = register_program_space_data_with_cleanup (NULL, symbol_cache_cleanup);
 
-  add_info ("variables", variables_info, _("\
+  add_info ("variables", info_variables_command, _("\
 All global and static variable names, or those matching REGEXP."));
   if (dbx_commands)
-    add_com ("whereis", class_info, variables_info, _("\
+    add_com ("whereis", class_info, info_variables_command, _("\
 All global and static variable names, or those matching REGEXP."));
 
-  add_info ("functions", functions_info,
+  add_info ("functions", info_functions_command,
 	    _("All function names, or those matching REGEXP."));
 
   /* FIXME:  This command has at least the following problems:
@@ -6070,10 +5860,10 @@ All global and static variable names, or
      print "struct foo *".
      I also think "ptype" or "whatis" is more likely to be useful (but if
      there is much disagreement "info types" can be fixed).  */
-  add_info ("types", types_info,
+  add_info ("types", info_types_command,
 	    _("All type names, or those matching REGEXP."));
 
-  add_info ("sources", sources_info,
+  add_info ("sources", info_sources_command,
 	    _("Source files in the program."));
 
   add_com ("rbreak", class_breakpoint, rbreak_command,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symtab.h ./gdb/symtab.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/symtab.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/symtab.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Symbol table definitions for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,11 +20,15 @@
 #if !defined (SYMTAB_H)
 #define SYMTAB_H 1
 
+#include <array>
 #include <vector>
+#include <string>
 #include "gdb_vecs.h"
 #include "gdbtypes.h"
 #include "common/enum-flags.h"
 #include "common/function-view.h"
+#include "common/gdb_optional.h"
+#include "completer.h"
 
 /* Opaque declarations.  */
 struct ui_file;
@@ -38,10 +42,284 @@ struct axs_value;
 struct agent_expr;
 struct program_space;
 struct language_defn;
-struct probe;
 struct common_block;
 struct obj_section;
 struct cmd_list_element;
+class probe;
+struct lookup_name_info;
+
+/* How to match a lookup name against a symbol search name.  */
+enum class symbol_name_match_type
+{
+  /* Wild matching.  Matches unqualified symbol names in all
+     namespace/module/packages, etc.  */
+  WILD,
+
+  /* Full matching.  The lookup name indicates a fully-qualified name,
+     and only matches symbol search names in the specified
+     namespace/module/package.  */
+  FULL,
+
+  /* Search name matching.  This is like FULL, but the search name did
+     not come from the user; instead it is already a search name
+     retrieved from a SYMBOL_SEARCH_NAME/MSYMBOL_SEARCH_NAME call.
+     For Ada, this avoids re-encoding an already-encoded search name
+     (which would potentially incorrectly lowercase letters in the
+     linkage/search name that should remain uppercase).  For C++, it
+     avoids trying to demangle a name we already know is
+     demangled.  */
+  SEARCH_NAME,
+
+  /* Expression matching.  The same as FULL matching in most
+     languages.  The same as WILD matching in Ada.  */
+  EXPRESSION,
+};
+
+/* Hash the given symbol search name according to LANGUAGE's
+   rules.  */
+extern unsigned int search_name_hash (enum language language,
+				      const char *search_name);
+
+/* Ada-specific bits of a lookup_name_info object.  This is lazily
+   constructed on demand.  */
+
+class ada_lookup_name_info final
+{
+ public:
+  /* Construct.  */
+  explicit ada_lookup_name_info (const lookup_name_info &lookup_name);
+
+  /* Compare SYMBOL_SEARCH_NAME with our lookup name, using MATCH_TYPE
+     as name match type.  Returns true if there's a match, false
+     otherwise.  If non-NULL, store the matching results in MATCH.  */
+  bool matches (const char *symbol_search_name,
+		symbol_name_match_type match_type,
+		completion_match_result *comp_match_res) const;
+
+  /* The Ada-encoded lookup name.  */
+  const std::string &lookup_name () const
+  { return m_encoded_name; }
+
+  /* Return true if we're supposed to be doing a wild match look
+     up.  */
+  bool wild_match_p () const
+  { return m_wild_match_p; }
+
+  /* Return true if we're looking up a name inside package
+     Standard.  */
+  bool standard_p () const
+  { return m_standard_p; }
+
+ private:
+  /* The Ada-encoded lookup name.  */
+  std::string m_encoded_name;
+
+  /* Whether the user-provided lookup name was Ada encoded.  If so,
+     then return encoded names in the 'matches' method's 'completion
+     match result' output.  */
+  bool m_encoded_p : 1;
+
+  /* True if really doing wild matching.  Even if the user requests
+     wild matching, some cases require full matching.  */
+  bool m_wild_match_p : 1;
+
+  /* True if doing a verbatim match.  This is true if the decoded
+     version of the symbol name is wrapped in '<'/'>'.  This is an
+     escape hatch users can use to look up symbols the Ada encoding
+     does not understand.  */
+  bool m_verbatim_p : 1;
+
+   /* True if the user specified a symbol name that is inside package
+      Standard.  Symbol names inside package Standard are handled
+      specially.  We always do a non-wild match of the symbol name
+      without the "standard__" prefix, and only search static and
+      global symbols.  This was primarily introduced in order to allow
+      the user to specifically access the standard exceptions using,
+      for instance, Standard.Constraint_Error when Constraint_Error is
+      ambiguous (due to the user defining its own Constraint_Error
+      entity inside its program).  */
+  bool m_standard_p : 1;
+};
+
+/* Language-specific bits of a lookup_name_info object, for languages
+   that do name searching using demangled names (C++/D/Go).  This is
+   lazily constructed on demand.  */
+
+struct demangle_for_lookup_info final
+{
+public:
+  demangle_for_lookup_info (const lookup_name_info &lookup_name,
+			    language lang);
+
+  /* The demangled lookup name.  */
+  const std::string &lookup_name () const
+  { return m_demangled_name; }
+
+private:
+  /* The demangled lookup name.  */
+  std::string m_demangled_name;
+};
+
+/* Object that aggregates all information related to a symbol lookup
+   name.  I.e., the name that is matched against the symbol's search
+   name.  Caches per-language information so that it doesn't require
+   recomputing it for every symbol comparison, like for example the
+   Ada encoded name and the symbol's name hash for a given language.
+   The object is conceptually immutable once constructed, and thus has
+   no setters.  This is to prevent some code path from tweaking some
+   property of the lookup name for some local reason and accidentally
+   altering the results of any continuing search(es).
+   lookup_name_info objects are generally passed around as a const
+   reference to reinforce that.  (They're not passed around by value
+   because they're not small.)  */
+class lookup_name_info final
+{
+ public:
+  /* Create a new object.  */
+  lookup_name_info (std::string name,
+		    symbol_name_match_type match_type,
+		    bool completion_mode = false,
+		    bool ignore_parameters = false)
+    : m_match_type (match_type),
+      m_completion_mode (completion_mode),
+      m_ignore_parameters (ignore_parameters),
+      m_name (std::move (name))
+  {}
+
+  /* Getters.  See description of each corresponding field.  */
+  symbol_name_match_type match_type () const { return m_match_type; }
+  bool completion_mode () const { return m_completion_mode; }
+  const std::string &name () const { return m_name; }
+  const bool ignore_parameters () const { return m_ignore_parameters; }
+
+  /* Return a version of this lookup name that is usable with
+     comparisons against symbols have no parameter info, such as
+     psymbols and GDB index symbols.  */
+  lookup_name_info make_ignore_params () const
+  {
+    return lookup_name_info (m_name, m_match_type, m_completion_mode,
+			     true /* ignore params */);
+  }
+
+  /* Get the search name hash for searches in language LANG.  */
+  unsigned int search_name_hash (language lang) const
+  {
+    /* Only compute each language's hash once.  */
+    if (!m_demangled_hashes_p[lang])
+      {
+	m_demangled_hashes[lang]
+	  = ::search_name_hash (lang, language_lookup_name (lang).c_str ());
+	m_demangled_hashes_p[lang] = true;
+      }
+    return m_demangled_hashes[lang];
+  }
+
+  /* Get the search name for searches in language LANG.  */
+  const std::string &language_lookup_name (language lang) const
+  {
+    switch (lang)
+      {
+      case language_ada:
+	return ada ().lookup_name ();
+      case language_cplus:
+	return cplus ().lookup_name ();
+      case language_d:
+	return d ().lookup_name ();
+      case language_go:
+	return go ().lookup_name ();
+      default:
+	return m_name;
+      }
+  }
+
+  /* Get the Ada-specific lookup info.  */
+  const ada_lookup_name_info &ada () const
+  {
+    maybe_init (m_ada);
+    return *m_ada;
+  }
+
+  /* Get the C++-specific lookup info.  */
+  const demangle_for_lookup_info &cplus () const
+  {
+    maybe_init (m_cplus, language_cplus);
+    return *m_cplus;
+  }
+
+  /* Get the D-specific lookup info.  */
+  const demangle_for_lookup_info &d () const
+  {
+    maybe_init (m_d, language_d);
+    return *m_d;
+  }
+
+  /* Get the Go-specific lookup info.  */
+  const demangle_for_lookup_info &go () const
+  {
+    maybe_init (m_go, language_go);
+    return *m_go;
+  }
+
+  /* Get a reference to a lookup_name_info object that matches any
+     symbol name.  */
+  static const lookup_name_info &match_any ();
+
+private:
+  /* Initialize FIELD, if not initialized yet.  */
+  template<typename Field, typename... Args>
+  void maybe_init (Field &field, Args&&... args) const
+  {
+    if (!field)
+      field.emplace (*this, std::forward<Args> (args)...);
+  }
+
+  /* The lookup info as passed to the ctor.  */
+  symbol_name_match_type m_match_type;
+  bool m_completion_mode;
+  bool m_ignore_parameters;
+  std::string m_name;
+
+  /* Language-specific info.  These fields are filled lazily the first
+     time a lookup is done in the corresponding language.  They're
+     mutable because lookup_name_info objects are typically passed
+     around by const reference (see intro), and they're conceptually
+     "cache" that can always be reconstructed from the non-mutable
+     fields.  */
+  mutable gdb::optional<ada_lookup_name_info> m_ada;
+  mutable gdb::optional<demangle_for_lookup_info> m_cplus;
+  mutable gdb::optional<demangle_for_lookup_info> m_d;
+  mutable gdb::optional<demangle_for_lookup_info> m_go;
+
+  /* The demangled hashes.  Stored in an array with one entry for each
+     possible language.  The second array records whether we've
+     already computed the each language's hash.  (These are separate
+     arrays instead of a single array of optional<unsigned> to avoid
+     alignment padding).  */
+  mutable std::array<unsigned int, nr_languages> m_demangled_hashes;
+  mutable std::array<bool, nr_languages> m_demangled_hashes_p {};
+};
+
+/* Comparison function for completion symbol lookup.
+
+   Returns true if the symbol name matches against LOOKUP_NAME.
+
+   SYMBOL_SEARCH_NAME should be a symbol's "search" name.
+
+   On success and if non-NULL, COMP_MATCH_RES->match is set to point
+   to the symbol name as should be presented to the user as a
+   completion match list element.  In most languages, this is the same
+   as the symbol's search name, but in some, like Ada, the display
+   name is dynamically computed within the comparison routine.
+
+   Also, on success and if non-NULL, COMP_MATCH_RES->match_for_lcd
+   points the part of SYMBOL_SEARCH_NAME that was considered to match
+   LOOKUP_NAME.  E.g., in C++, in linespec/wild mode, if the symbol is
+   "foo::function()" and LOOKUP_NAME is "function(", MATCH_FOR_LCD
+   points to "function()" inside SYMBOL_SEARCH_NAME.  */
+typedef bool (symbol_name_matcher_ftype)
+  (const char *symbol_search_name,
+   const lookup_name_info &lookup_name,
+   completion_match_result *comp_match_res);
 
 /* Some of the structures in this file are space critical.
    The space-critical structures are:
@@ -268,13 +546,23 @@ extern int demangle;
    returns the same value (same pointer) as SYMBOL_LINKAGE_NAME.  */
 #define SYMBOL_SEARCH_NAME(symbol)					 \
    (symbol_search_name (&(symbol)->ginfo))
-extern const char *symbol_search_name (const struct general_symbol_info *);
+extern const char *symbol_search_name (const struct general_symbol_info *ginfo);
 
-/* Return non-zero if NAME matches the "search" name of SYMBOL.
-   Whitespace and trailing parentheses are ignored.
-   See strcmp_iw for details about its behavior.  */
-#define SYMBOL_MATCHES_SEARCH_NAME(symbol, name)			\
-  (strcmp_iw (SYMBOL_SEARCH_NAME (symbol), (name)) == 0)
+/* Return true if NAME matches the "search" name of SYMBOL, according
+   to the symbol's language.  */
+#define SYMBOL_MATCHES_SEARCH_NAME(symbol, name)                       \
+  symbol_matches_search_name (&(symbol)->ginfo, (name))
+
+/* Helper for SYMBOL_MATCHES_SEARCH_NAME that works with both symbols
+   and psymbols.  */
+extern bool symbol_matches_search_name
+  (const struct general_symbol_info *gsymbol,
+   const lookup_name_info &name);
+
+/* Compute the hash of the given symbol search name of a symbol of
+   language LANGUAGE.  */
+extern unsigned int search_name_hash (enum language language,
+				      const char *search_name);
 
 /* Classification types for a minimal symbol.  These should be taken as
    "advisory only", since if gdb can't easily figure out a
@@ -421,8 +709,6 @@ struct minimal_symbol
   (symbol_set_language (&(symbol)->mginfo, (language), (obstack)))
 #define MSYMBOL_SEARCH_NAME(symbol)					 \
    (symbol_search_name (&(symbol)->mginfo))
-#define MSYMBOL_MATCHES_SEARCH_NAME(symbol, name)			\
-  (strcmp_iw (MSYMBOL_SEARCH_NAME (symbol), (name)) == 0)
 #define MSYMBOL_SET_NAMES(symbol,linkage_name,len,copy_name,objfile)	\
   symbol_set_names (&(symbol)->mginfo, linkage_name, len, copy_name, objfile)
 
@@ -663,8 +949,8 @@ struct symbol_computed_ops
      the caller will generate the right code in the process of
      treating this as an lvalue or rvalue.  */
 
-  void (*tracepoint_var_ref) (struct symbol *symbol, struct gdbarch *gdbarch,
-			      struct agent_expr *ax, struct axs_value *value);
+  void (*tracepoint_var_ref) (struct symbol *symbol, struct agent_expr *ax,
+			      struct axs_value *value);
 
   /* Generate C code to compute the location of SYMBOL.  The C code is
      emitted to STREAM.  GDBARCH is the current architecture and PC is
@@ -739,6 +1025,21 @@ struct symbol_impl
   const struct symbol_register_ops *ops_register;
 };
 
+/* struct symbol has some subclasses.  This enum is used to
+   differentiate between them.  */
+
+enum symbol_subclass_kind
+{
+  /* Plain struct symbol.  */
+  SYMBOL_NONE,
+
+  /* struct template_symbol.  */
+  SYMBOL_TEMPLATE,
+
+  /* struct rust_vtable_symbol.  */
+  SYMBOL_RUST_VTABLE
+};
+
 /* This structure is space critical.  See space comments at the top.  */
 
 struct symbol
@@ -788,9 +1089,9 @@ struct symbol
   /* Whether this is an inlined function (class LOC_BLOCK only).  */
   unsigned is_inlined : 1;
 
-  /* True if this is a C++ function symbol with template arguments.
-     In this case the symbol is really a "struct template_symbol".  */
-  unsigned is_cplus_template_function : 1;
+  /* The concrete type of this symbol.  */
+
+  ENUM_BITFIELD (symbol_subclass_kind) subclass : 2;
 
   /* Line number of this symbol's definition, except for inlined
      functions.  For an inlined function (class LOC_BLOCK and
@@ -852,7 +1153,7 @@ extern const struct block_symbol null_bl
 #define SYMBOL_IS_ARGUMENT(symbol)	(symbol)->is_argument
 #define SYMBOL_INLINED(symbol)		(symbol)->is_inlined
 #define SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION(symbol) \
-  (symbol)->is_cplus_template_function
+  (((symbol)->subclass) == SYMBOL_TEMPLATE)
 #define SYMBOL_TYPE(symbol)		(symbol)->type
 #define SYMBOL_LINE(symbol)		(symbol)->line
 #define SYMBOL_COMPUTED_OPS(symbol)	(SYMBOL_IMPL (symbol).ops_computed)
@@ -892,16 +1193,11 @@ extern struct symtab *symbol_symtab (con
 extern void symbol_set_symtab (struct symbol *symbol, struct symtab *symtab);
 
 /* An instance of this type is used to represent a C++ template
-   function.  It includes a "struct symbol" as a kind of base class;
-   users downcast to "struct template_symbol *" when needed.  A symbol
-   is really of this type iff SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION is
-   true.  */
+   function.  A symbol is really of this type iff
+   SYMBOL_IS_CPLUS_TEMPLATE_FUNCTION is true.  */
 
-struct template_symbol
+struct template_symbol : public symbol
 {
-  /* The base class.  */
-  struct symbol base;
-
   /* The number of template arguments.  */
   int n_template_arguments;
 
@@ -910,6 +1206,15 @@ struct template_symbol
   struct symbol **template_arguments;
 };
 
+/* A symbol that represents a Rust virtual table object.  */
+
+struct rust_vtable_symbol : public symbol
+{
+  /* The concrete type for which this vtable was created; that is, in
+     "impl Trait for Type", this is "Type".  */
+  struct type *concrete_type;
+};
+
 
 /* Each item represents a line-->pc (or the reverse) mapping.  This is
    somewhat more wasteful of space than one might wish, but since only
@@ -1259,6 +1564,20 @@ extern struct block_symbol lookup_symbol
 					  const domain_enum,
 					  struct field_of_this_result *);
 
+/* Find the definition for a specified symbol search name in domain
+   DOMAIN, visible from lexical block BLOCK if non-NULL or from
+   global/static blocks if BLOCK is NULL.  The passed-in search name
+   should not come from the user; instead it should already be a
+   search name as retrieved from a
+   SYMBOL_SEARCH_NAME/MSYMBOL_SEARCH_NAME call.  See definition of
+   symbol_name_match_type::SEARCH_NAME.  Returns the struct symbol
+   pointer, or NULL if no symbol is found.  The symbol's section is
+   fixed up if necessary.  */
+
+extern struct block_symbol lookup_symbol_search_name (const char *search_name,
+						      const struct block *block,
+						      domain_enum domain);
+
 /* A default version of lookup_symbol_nonlocal for use by languages
    that can't think of anything better to do.
    This implements the C lookup rules.  */
@@ -1308,6 +1627,7 @@ extern struct block_symbol
 
 extern struct symbol *
   lookup_symbol_in_block (const char *name,
+			  symbol_name_match_type match_type,
 			  const struct block *block,
 			  const domain_enum domain);
 
@@ -1336,6 +1656,11 @@ extern struct symbol *find_pc_function (
 
 extern struct symbol *find_pc_sect_function (CORE_ADDR, struct obj_section *);
 
+/* Find the symbol at the given address.  Returns NULL if no symbol
+   found.  Only exact matches for ADDRESS are considered.  */
+
+extern struct symbol *find_symbol_at_address (CORE_ADDR);
+
 extern int find_pc_partial_function_gnu_ifunc (CORE_ADDR pc, const char **name,
 					       CORE_ADDR *address,
 					       CORE_ADDR *endaddr,
@@ -1417,34 +1742,28 @@ extern CORE_ADDR find_solib_trampoline_t
 struct symtab_and_line
 {
   /* The program space of this sal.  */
-  struct program_space *pspace;
+  struct program_space *pspace = NULL;
 
-  struct symtab *symtab;
-  struct obj_section *section;
+  struct symtab *symtab = NULL;
+  struct symbol *symbol = NULL;
+  struct obj_section *section = NULL;
   /* Line number.  Line numbers start at 1 and proceed through symtab->nlines.
      0 is never a valid line number; it is used to indicate that line number
      information is not available.  */
-  int line;
+  int line = 0;
 
-  CORE_ADDR pc;
-  CORE_ADDR end;
-  int explicit_pc;
-  int explicit_line;
+  CORE_ADDR pc = 0;
+  CORE_ADDR end = 0;
+  bool explicit_pc = false;
+  bool explicit_line = false;
 
   /* The probe associated with this symtab_and_line.  */
-  struct probe *probe;
+  probe *prob = NULL;
   /* If PROBE is not NULL, then this is the objfile in which the probe
      originated.  */
-  struct objfile *objfile;
+  struct objfile *objfile = NULL;
 };
 
-extern void init_sal (struct symtab_and_line *sal);
-
-struct symtabs_and_lines
-{
-  struct symtab_and_line *sals;
-  int nelts;
-};
 
 
 /* Given a pc value, return line number it is in.  Second arg nonzero means
@@ -1498,25 +1817,67 @@ extern void forget_cached_source_info (v
 
 extern void select_source_symtab (struct symtab *);
 
-extern VEC (char_ptr) *default_make_symbol_completion_list_break_on
-  (const char *text, const char *word, const char *break_on,
+/* The reason we're calling into a completion match list collector
+   function.  */
+enum class complete_symbol_mode
+  {
+    /* Completing an expression.  */
+    EXPRESSION,
+
+    /* Completing a linespec.  */
+    LINESPEC,
+  };
+
+extern void default_collect_symbol_completion_matches_break_on
+  (completion_tracker &tracker,
+   complete_symbol_mode mode,
+   symbol_name_match_type name_match_type,
+   const char *text, const char *word, const char *break_on,
    enum type_code code);
-extern VEC (char_ptr) *default_make_symbol_completion_list (const char *,
-							    const char *,
-							    enum type_code);
-extern VEC (char_ptr) *make_symbol_completion_list (const char *, const char *);
-extern VEC (char_ptr) *make_symbol_completion_type (const char *, const char *,
+extern void default_collect_symbol_completion_matches
+  (completion_tracker &tracker,
+   complete_symbol_mode,
+   symbol_name_match_type name_match_type,
+   const char *,
+   const char *,
+   enum type_code);
+extern void collect_symbol_completion_matches
+  (completion_tracker &tracker,
+   complete_symbol_mode mode,
+   symbol_name_match_type name_match_type,
+   const char *, const char *);
+extern void collect_symbol_completion_matches_type (completion_tracker &tracker,
+						    const char *, const char *,
 						    enum type_code);
-extern VEC (char_ptr) *make_symbol_completion_list_fn (struct cmd_list_element *,
-						       const char *,
-						       const char *);
-
-extern VEC (char_ptr) *make_file_symbol_completion_list (const char *,
-							 const char *,
-							 const char *);
 
-extern VEC (char_ptr) *make_source_files_completion_list (const char *,
-							  const char *);
+extern void collect_file_symbol_completion_matches
+  (completion_tracker &tracker,
+   complete_symbol_mode,
+   symbol_name_match_type name_match_type,
+   const char *, const char *, const char *);
+
+extern completion_list
+  make_source_files_completion_list (const char *, const char *);
+
+/* Return whether SYM is a function/method, as opposed to a data symbol.  */
+
+extern bool symbol_is_function_or_method (symbol *sym);
+
+/* Return whether MSYMBOL is a function/method, as opposed to a data
+   symbol */
+
+extern bool symbol_is_function_or_method (minimal_symbol *msymbol);
+
+/* Return whether SYM should be skipped in completion mode MODE.  In
+   linespec mode, we're only interested in functions/methods.  */
+
+template<typename Symbol>
+static bool
+completion_skip_symbol (complete_symbol_mode mode, Symbol *sym)
+{
+  return (mode == complete_symbol_mode::LINESPEC
+	  && !symbol_is_function_or_method (sym));
+}
 
 /* symtab.c */
 
@@ -1537,14 +1898,48 @@ extern CORE_ADDR skip_prologue_using_sal
 extern struct symbol *fixup_symbol_section (struct symbol *,
 					    struct objfile *);
 
+/* If MSYMBOL is an text symbol, look for a function debug symbol with
+   the same address.  Returns NULL if not found.  This is necessary in
+   case a function is an alias to some other function, because debug
+   information is only emitted for the alias target function's
+   definition, not for the alias.  */
+extern symbol *find_function_alias_target (bound_minimal_symbol msymbol);
+
 /* Symbol searching */
 /* Note: struct symbol_search, search_symbols, et.al. are declared here,
    instead of making them local to symtab.c, for gdbtk's sake.  */
 
-/* When using search_symbols, a list of the following structs is returned.
-   Callers must free the search list using free_search_symbols!  */
+/* When using search_symbols, a vector of the following structs is
+   returned.  */
 struct symbol_search
 {
+  symbol_search (int block_, struct symbol *symbol_)
+    : block (block_),
+      symbol (symbol_)
+  {
+    msymbol.minsym = nullptr;
+    msymbol.objfile = nullptr;
+  }
+
+  symbol_search (int block_, struct minimal_symbol *minsym,
+		 struct objfile *objfile)
+    : block (block_),
+      symbol (nullptr)
+  {
+    msymbol.minsym = minsym;
+    msymbol.objfile = objfile;
+  }
+
+  bool operator< (const symbol_search &other) const
+  {
+    return compare_search_syms (*this, other) < 0;
+  }
+
+  bool operator== (const symbol_search &other) const
+  {
+    return compare_search_syms (*this, other) == 0;
+  }
+
   /* The block in which the match was found.  Could be, for example,
      STATIC_BLOCK or GLOBAL_BLOCK.  */
   int block;
@@ -1558,15 +1953,15 @@ struct symbol_search
      which only minimal_symbols exist.  */
   struct bound_minimal_symbol msymbol;
 
-  /* A link to the next match, or NULL for the end.  */
-  struct symbol_search *next;
+private:
+
+  static int compare_search_syms (const symbol_search &sym_a,
+				  const symbol_search &sym_b);
 };
 
-extern void search_symbols (const char *, enum search_domain, int,
-			    const char **, struct symbol_search **);
-extern void free_search_symbols (struct symbol_search *);
-extern struct cleanup *make_cleanup_free_search_symbols (struct symbol_search
-							 **);
+extern std::vector<symbol_search> search_symbols (const char *,
+						  enum search_domain, int,
+						  const char **);
 
 /* The name of the ``main'' function.
    FIXME: cagney/2001-03-20: Can't make main_name() const since some
@@ -1628,7 +2023,8 @@ std::vector<CORE_ADDR> find_pcs_for_symt
 
 typedef bool (symbol_found_callback_ftype) (symbol *sym);
 
-void iterate_over_symbols (const struct block *block, const char *name,
+void iterate_over_symbols (const struct block *block,
+			   const lookup_name_info &name,
 			   const domain_enum domain,
 			   gdb::function_view<symbol_found_callback_ftype> callback);
 
@@ -1676,4 +2072,14 @@ void initialize_objfile_symbol (struct s
 
 struct template_symbol *allocate_template_symbol (struct objfile *);
 
+/* Test to see if the symbol of language SYMBOL_LANGUAGE specified by
+   SYMNAME (which is already demangled for C++ symbols) matches
+   SYM_TEXT in the first SYM_TEXT_LEN characters.  If so, add it to
+   the current completion list.  */
+void completion_list_add_name (completion_tracker &tracker,
+			       language symbol_language,
+			       const char *symname,
+			       const lookup_name_info &lookup_name,
+			       const char *text, const char *word);
+
 #endif /* !defined(SYMTAB_H) */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/aarch64-linux.xml ./gdb/syscalls/aarch64-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/aarch64-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/aarch64-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
-<!-- Copyright (C) 2015-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/aarch64-linux.xml.in ./gdb/syscalls/aarch64-linux.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/aarch64-linux.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/aarch64-linux.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2015-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/amd64-linux.xml ./gdb/syscalls/amd64-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/amd64-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/amd64-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/amd64-linux.xml.in ./gdb/syscalls/amd64-linux.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/amd64-linux.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/amd64-linux.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/apply-defaults.xsl ./gdb/syscalls/apply-defaults.xsl
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/apply-defaults.xsl	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/apply-defaults.xsl	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <!-- Generate syscall XML files based on defaults template.
-     Copyright (C) 2016-2017 Free Software Foundation, Inc.
+     Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
      This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/arm-linux.py ./gdb/syscalls/arm-linux.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/arm-linux.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/arm-linux.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # Copying and distribution of this file, with or without modification,
 # are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/arm-linux.xml ./gdb/syscalls/arm-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/arm-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/arm-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/arm-linux.xml.in ./gdb/syscalls/arm-linux.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/arm-linux.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/arm-linux.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/bfin-linux.xml.in ./gdb/syscalls/bfin-linux.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/bfin-linux.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/bfin-linux.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/freebsd.xml ./gdb/syscalls/freebsd.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/freebsd.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/freebsd.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/gdb-syscalls.dtd ./gdb/syscalls/gdb-syscalls.dtd
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/gdb-syscalls.dtd	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/gdb-syscalls.dtd	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/i386-linux.xml ./gdb/syscalls/i386-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/i386-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/i386-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/i386-linux.xml.in ./gdb/syscalls/i386-linux.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/i386-linux.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/i386-linux.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/linux-defaults.xml.in ./gdb/syscalls/linux-defaults.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/linux-defaults.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/linux-defaults.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/mips-n32-linux.xml ./gdb/syscalls/mips-n32-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/mips-n32-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/mips-n32-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
-<!-- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/mips-n32-linux.xml.in ./gdb/syscalls/mips-n32-linux.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/mips-n32-linux.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/mips-n32-linux.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/mips-n64-linux.xml ./gdb/syscalls/mips-n64-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/mips-n64-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/mips-n64-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
-<!-- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/mips-n64-linux.xml.in ./gdb/syscalls/mips-n64-linux.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/mips-n64-linux.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/mips-n64-linux.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/mips-o32-linux.xml ./gdb/syscalls/mips-o32-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/mips-o32-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/mips-o32-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
-<!-- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/mips-o32-linux.xml.in ./gdb/syscalls/mips-o32-linux.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/mips-o32-linux.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/mips-o32-linux.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2011-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/ppc64-linux.xml ./gdb/syscalls/ppc64-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/ppc64-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/ppc64-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/ppc64-linux.xml.in ./gdb/syscalls/ppc64-linux.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/ppc64-linux.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/ppc64-linux.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/ppc-linux.xml ./gdb/syscalls/ppc-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/ppc-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/ppc-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/ppc-linux.xml.in ./gdb/syscalls/ppc-linux.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/ppc-linux.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/ppc-linux.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/s390-linux.xml ./gdb/syscalls/s390-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/s390-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/s390-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/s390-linux.xml.in ./gdb/syscalls/s390-linux.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/s390-linux.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/s390-linux.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/s390x-linux.xml ./gdb/syscalls/s390x-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/s390x-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/s390x-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/s390x-linux.xml.in ./gdb/syscalls/s390x-linux.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/s390x-linux.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/s390x-linux.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/sparc64-linux.xml ./gdb/syscalls/sparc64-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/sparc64-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/sparc64-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/sparc64-linux.xml.in ./gdb/syscalls/sparc64-linux.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/sparc64-linux.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/sparc64-linux.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/sparc-linux.xml ./gdb/syscalls/sparc-linux.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/sparc-linux.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/sparc-linux.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/sparc-linux.xml.in ./gdb/syscalls/sparc-linux.xml.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/syscalls/sparc-linux.xml.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/syscalls/sparc-linux.xml.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/system-gdbinit/elinos.py ./gdb/system-gdbinit/elinos.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/system-gdbinit/elinos.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/system-gdbinit/elinos.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/system-gdbinit/wrs-linux.py ./gdb/system-gdbinit/wrs-linux.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/system-gdbinit/wrs-linux.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/system-gdbinit/wrs-linux.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target/resume.h ./gdb/target/resume.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target/resume.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/target/resume.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target resumption definitions and prototypes.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target/target.h ./gdb/target/target.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target/target.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/target/target.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Declarations for common target functions.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -95,4 +95,109 @@ extern void target_mourn_inferior (ptid_
 
 extern int target_supports_multi_process (void);
 
+/* Represents the state of the target terminal.  */
+class target_terminal
+{
+public:
+
+  target_terminal () = delete;
+  ~target_terminal () = delete;
+  DISABLE_COPY_AND_ASSIGN (target_terminal);
+
+  /* Initialize the terminal settings we record for the inferior,
+     before we actually run the inferior.  */
+  static void init ();
+
+  /* Put the inferior's terminal settings into effect.  This is
+     preparation for starting or resuming the inferior.  This is a no-op
+     unless called with the main UI as current UI.  */
+  static void inferior ();
+
+  /* Put our terminal settings into effect.  First record the inferior's
+     terminal settings so they can be restored properly later.  This is
+     a no-op unless called with the main UI as current UI.  */
+  static void ours ();
+
+  /* Put some of our terminal settings into effect, enough to get proper
+     results from our output, but do not change into or out of RAW mode
+     so that no input is discarded.  This is a no-op if terminal_ours
+     was most recently called.  This is a no-op unless called with the main
+     UI as current UI.  */
+  static void ours_for_output ();
+
+  /* Returns true if the terminal settings of the inferior are in
+     effect.  */
+  static bool is_inferior ()
+  {
+    return terminal_state == terminal_is_inferior;
+  }
+
+  /* Returns true if our terminal settings are in effect.  */
+  static bool is_ours ()
+  {
+    return terminal_state == terminal_is_ours;
+  }
+
+  /* Print useful information about our terminal status, if such a thing
+     exists.  */
+  static void info (const char *arg, int from_tty);
+
+private:
+
+  /* Possible terminal states.  */
+
+  enum terminal_state
+    {
+     /* The inferior's terminal settings are in effect.  */
+     terminal_is_inferior = 0,
+
+     /* Some of our terminal settings are in effect, enough to get
+	proper output.  */
+     terminal_is_ours_for_output = 1,
+
+     /* Our terminal settings are in effect, for output and input.  */
+     terminal_is_ours = 2
+    };
+
+public:
+
+  /* A class that restores the state of the terminal to the current
+     state.  */
+  class scoped_restore_terminal_state
+  {
+  public:
+
+    scoped_restore_terminal_state ()
+      : m_state (terminal_state)
+    {
+    }
+
+    ~scoped_restore_terminal_state ()
+    {
+      switch (m_state)
+	{
+	case terminal_is_ours:
+	  ours ();
+	  break;
+	case terminal_is_ours_for_output:
+	  ours_for_output ();
+	  break;
+	case terminal_is_inferior:
+	  inferior ();
+	  break;
+	}
+    }
+
+    DISABLE_COPY_AND_ASSIGN (scoped_restore_terminal_state);
+
+  private:
+
+    target_terminal::terminal_state m_state;
+  };
+
+private:
+
+  static terminal_state terminal_state;
+};
+
 #endif /* TARGET_COMMON_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target/wait.h ./gdb/target/wait.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target/wait.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/target/wait.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target wait definitions and prototypes.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target/waitstatus.c ./gdb/target/waitstatus.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target/waitstatus.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/target/waitstatus.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target waitstatus implementations.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -23,7 +23,7 @@
 /* Return a pretty printed form of target_waitstatus.
    Space for the result is malloc'd, caller must free.  */
 
-char *
+std::string
 target_waitstatus_to_string (const struct target_waitstatus *ws)
 {
   const char *kind_str = "status->kind = ";
@@ -31,44 +31,44 @@ target_waitstatus_to_string (const struc
   switch (ws->kind)
     {
     case TARGET_WAITKIND_EXITED:
-      return xstrprintf ("%sexited, status = %d",
-			 kind_str, ws->value.integer);
+      return string_printf ("%sexited, status = %d",
+			    kind_str, ws->value.integer);
     case TARGET_WAITKIND_STOPPED:
-      return xstrprintf ("%sstopped, signal = %s",
-			 kind_str,
-			 gdb_signal_to_symbol_string (ws->value.sig));
+      return string_printf ("%sstopped, signal = %s",
+			    kind_str,
+			    gdb_signal_to_symbol_string (ws->value.sig));
     case TARGET_WAITKIND_SIGNALLED:
-      return xstrprintf ("%ssignalled, signal = %s",
-			 kind_str,
-			 gdb_signal_to_symbol_string (ws->value.sig));
+      return string_printf ("%ssignalled, signal = %s",
+			    kind_str,
+			    gdb_signal_to_symbol_string (ws->value.sig));
     case TARGET_WAITKIND_LOADED:
-      return xstrprintf ("%sloaded", kind_str);
+      return string_printf ("%sloaded", kind_str);
     case TARGET_WAITKIND_FORKED:
-      return xstrprintf ("%sforked", kind_str);
+      return string_printf ("%sforked", kind_str);
     case TARGET_WAITKIND_VFORKED:
-      return xstrprintf ("%svforked", kind_str);
+      return string_printf ("%svforked", kind_str);
     case TARGET_WAITKIND_EXECD:
-      return xstrprintf ("%sexecd", kind_str);
+      return string_printf ("%sexecd", kind_str);
     case TARGET_WAITKIND_VFORK_DONE:
-      return xstrprintf ("%svfork-done", kind_str);
+      return string_printf ("%svfork-done", kind_str);
     case TARGET_WAITKIND_SYSCALL_ENTRY:
-      return xstrprintf ("%sentered syscall", kind_str);
+      return string_printf ("%sentered syscall", kind_str);
     case TARGET_WAITKIND_SYSCALL_RETURN:
-      return xstrprintf ("%sexited syscall", kind_str);
+      return string_printf ("%sexited syscall", kind_str);
     case TARGET_WAITKIND_SPURIOUS:
-      return xstrprintf ("%sspurious", kind_str);
+      return string_printf ("%sspurious", kind_str);
     case TARGET_WAITKIND_IGNORE:
-      return xstrprintf ("%signore", kind_str);
+      return string_printf ("%signore", kind_str);
     case TARGET_WAITKIND_NO_HISTORY:
-      return xstrprintf ("%sno-history", kind_str);
+      return string_printf ("%sno-history", kind_str);
     case TARGET_WAITKIND_NO_RESUMED:
-      return xstrprintf ("%sno-resumed", kind_str);
+      return string_printf ("%sno-resumed", kind_str);
     case TARGET_WAITKIND_THREAD_CREATED:
-      return xstrprintf ("%sthread created", kind_str);
+      return string_printf ("%sthread created", kind_str);
     case TARGET_WAITKIND_THREAD_EXITED:
-      return xstrprintf ("%sthread exited, status = %d",
-			 kind_str, ws->value.integer);
+      return string_printf ("%sthread exited, status = %d",
+			    kind_str, ws->value.integer);
     default:
-      return xstrprintf ("%sunknown???", kind_str);
+      return string_printf ("%sunknown???", kind_str);
     }
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target/waitstatus.h ./gdb/target/waitstatus.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target/waitstatus.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/target/waitstatus.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target waitstatus definitions and prototypes.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -145,8 +145,7 @@ enum target_stop_reason
 
 /* Prototypes */
 
-/* Return a pretty printed form of target_waitstatus.
-   Space for the result is malloc'd, caller must free.  */
-extern char *target_waitstatus_to_string (const struct target_waitstatus *);
+/* Return a pretty printed form of target_waitstatus.  */
+std::string target_waitstatus_to_string (const struct target_waitstatus *);
 
 #endif /* WAITSTATUS_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target.c ./gdb/target.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/target.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Select target systems and architectures at runtime for GDB.
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.
 
@@ -46,8 +46,7 @@
 #include "top.h"
 #include "event-top.h"
 #include <algorithm>
-
-static void target_info (char *, int);
+#include "byte-vector.h"
 
 static void generic_tls_error (void) ATTRIBUTE_NORETURN;
 
@@ -89,8 +88,6 @@ static int return_zero (struct target_op
 
 static int return_zero_has_execution (struct target_ops *, ptid_t);
 
-static void target_command (char *, int);
-
 static struct target_ops *find_default_run_target (const char *);
 
 static struct gdbarch *default_thread_architecture (struct target_ops *ops,
@@ -170,7 +167,7 @@ int may_stop = 1;
 static unsigned int targetdebug = 0;
 
 static void
-set_targetdebug  (char *args, int from_tty, struct cmd_list_element *c)
+set_targetdebug  (const char *args, int from_tty, struct cmd_list_element *c)
 {
   update_current_target ();
 }
@@ -187,7 +184,7 @@ static void setup_target_debug (void);
 /* The user just typed 'target' without the name of a target.  */
 
 static void
-target_command (char *arg, int from_tty)
+target_command (const char *arg, int from_tty)
 {
   fputs_filtered ("Argument required (target name).  Try `help target'\n",
 		  gdb_stdout);
@@ -348,7 +345,7 @@ complete_target_initialization (struct t
 /* This is used to implement the various target commands.  */
 
 static void
-open_target (char *args, int from_tty, struct cmd_list_element *command)
+open_target (const char *args, int from_tty, struct cmd_list_element *command)
 {
   struct target_ops *ops = (struct target_ops *) get_cmd_context (command);
 
@@ -385,7 +382,7 @@ Remaining arguments are interpreted by t
 information on the arguments for a particular protocol, type\n\
 `help target ' followed by the protocol name."),
 		    &targetlist, "target ", 0, &cmdlist);
-  c = add_cmd (t->to_shortname, no_class, NULL, t->to_doc, &targetlist);
+  c = add_cmd (t->to_shortname, no_class, t->to_doc, &targetlist);
   set_cmd_sfunc (c, open_target);
   set_cmd_context (c, t);
   if (completer != NULL)
@@ -410,7 +407,7 @@ add_deprecated_target_alias (struct targ
 
   /* If we use add_alias_cmd, here, we do not get the deprecated warning,
      see PR cli/15104.  */
-  c = add_cmd (alias, no_class, NULL, t->to_doc, &targetlist);
+  c = add_cmd (alias, no_class, t->to_doc, &targetlist);
   set_cmd_sfunc (c, open_target);
   set_cmd_context (c, t);
   alt = xstrprintf ("target %s", t->to_shortname);
@@ -432,53 +429,25 @@ target_load (const char *arg, int from_t
   (*current_target.to_load) (&current_target, arg, from_tty);
 }
 
-/* Possible terminal states.  */
-
-enum terminal_state
-  {
-    /* The inferior's terminal settings are in effect.  */
-    terminal_is_inferior = 0,
-
-    /* Some of our terminal settings are in effect, enough to get
-       proper output.  */
-    terminal_is_ours_for_output = 1,
+/* Define it.  */
 
-    /* Our terminal settings are in effect, for output and input.  */
-    terminal_is_ours = 2
-  };
+enum target_terminal::terminal_state target_terminal::terminal_state
+  = target_terminal::terminal_is_ours;
 
-static enum terminal_state terminal_state = terminal_is_ours;
-
-/* See target.h.  */
+/* See target/target.h.  */
 
 void
-target_terminal_init (void)
+target_terminal::init (void)
 {
   (*current_target.to_terminal_init) (&current_target);
 
   terminal_state = terminal_is_ours;
 }
 
-/* See target.h.  */
-
-int
-target_terminal_is_inferior (void)
-{
-  return (terminal_state == terminal_is_inferior);
-}
-
-/* See target.h.  */
-
-int
-target_terminal_is_ours (void)
-{
-  return (terminal_state == terminal_is_ours);
-}
-
-/* See target.h.  */
+/* See target/target.h.  */
 
 void
-target_terminal_inferior (void)
+target_terminal::inferior (void)
 {
   struct ui *ui = current_ui;
 
@@ -489,8 +458,8 @@ target_terminal_inferior (void)
 
   /* Since we always run the inferior in the main console (unless "set
      inferior-tty" is in effect), when some UI other than the main one
-     calls target_terminal_inferior/target_terminal_inferior, then we
-     leave the main UI's terminal settings as is.  */
+     calls target_terminal::inferior, then we leave the main UI's
+     terminal settings as is.  */
   if (ui != main_ui)
     return;
 
@@ -508,14 +477,14 @@ target_terminal_inferior (void)
     target_pass_ctrlc ();
 }
 
-/* See target.h.  */
+/* See target/target.h.  */
 
 void
-target_terminal_ours (void)
+target_terminal::ours ()
 {
   struct ui *ui = current_ui;
 
-  /* See target_terminal_inferior.  */
+  /* See target_terminal::inferior.  */
   if (ui != main_ui)
     return;
 
@@ -526,14 +495,14 @@ target_terminal_ours (void)
   terminal_state = terminal_is_ours;
 }
 
-/* See target.h.  */
+/* See target/target.h.  */
 
 void
-target_terminal_ours_for_output (void)
+target_terminal::ours_for_output ()
 {
   struct ui *ui = current_ui;
 
-  /* See target_terminal_inferior.  */
+  /* See target_terminal::inferior.  */
   if (ui != main_ui)
     return;
 
@@ -543,6 +512,14 @@ target_terminal_ours_for_output (void)
   terminal_state = terminal_is_ours_for_output;
 }
 
+/* See target/target.h.  */
+
+void
+target_terminal::info (const char *arg, int from_tty)
+{
+  (*current_target.to_terminal_info) (&current_target, arg, from_tty);
+}
+
 /* See target.h.  */
 
 int
@@ -560,40 +537,6 @@ target_supports_terminal_ours (void)
   return 0;
 }
 
-/* Restore the terminal to its previous state (helper for
-   make_cleanup_restore_target_terminal). */
-
-static void
-cleanup_restore_target_terminal (void *arg)
-{
-  enum terminal_state *previous_state = (enum terminal_state *) arg;
-
-  switch (*previous_state)
-    {
-    case terminal_is_ours:
-      target_terminal_ours ();
-      break;
-    case terminal_is_ours_for_output:
-      target_terminal_ours_for_output ();
-      break;
-    case terminal_is_inferior:
-      target_terminal_inferior ();
-      break;
-    }
-}
-
-/* See target.h. */
-
-struct cleanup *
-make_cleanup_restore_target_terminal (void)
-{
-  enum terminal_state *ts = XNEW (enum terminal_state);
-
-  *ts = terminal_state;
-
-  return make_cleanup_dtor (cleanup_restore_target_terminal, ts, xfree);
-}
-
 static void
 tcomplain (void)
 {
@@ -1271,6 +1214,8 @@ memory_xfer_partial (struct target_ops *
   if (len == 0)
     return TARGET_XFER_EOF;
 
+  memaddr = address_significant (target_gdbarch (), memaddr);
+
   /* Fill in READBUF with breakpoint shadows, or WRITEBUF with
      breakpoint insns, thus hiding out from higher layers whether
      there are software breakpoints inserted in the code stream.  */
@@ -1284,9 +1229,6 @@ memory_xfer_partial (struct target_ops *
     }
   else
     {
-      gdb_byte *buf;
-      struct cleanup *old_chain;
-
       /* A large write request is likely to be partially satisfied
 	 by memory_xfer_partial_1.  We will continually malloc
 	 and free a copy of the entire write request for breakpoint
@@ -1295,34 +1237,19 @@ memory_xfer_partial (struct target_ops *
 	 to mitigate this.  */
       len = std::min (ops->to_get_memory_xfer_limit (ops), len);
 
-      buf = (gdb_byte *) xmalloc (len);
-      old_chain = make_cleanup (xfree, buf);
-      memcpy (buf, writebuf, len);
-
-      breakpoint_xfer_memory (NULL, buf, writebuf, memaddr, len);
-      res = memory_xfer_partial_1 (ops, object, NULL, buf, memaddr, len,
+      gdb::byte_vector buf (writebuf, writebuf + len);
+      breakpoint_xfer_memory (NULL, buf.data (), writebuf, memaddr, len);
+      res = memory_xfer_partial_1 (ops, object, NULL, buf.data (), memaddr, len,
 				   xfered_len);
-
-      do_cleanups (old_chain);
     }
 
   return res;
 }
 
-static void
-restore_show_memory_breakpoints (void *arg)
+scoped_restore_tmpl<int>
+make_scoped_restore_show_memory_breakpoints (int show)
 {
-  show_memory_breakpoints = (uintptr_t) arg;
-}
-
-struct cleanup *
-make_show_memory_breakpoints_cleanup (int show)
-{
-  int current = show_memory_breakpoints;
-
-  show_memory_breakpoints = show;
-  return make_cleanup (restore_show_memory_breakpoints,
-		       (void *) (uintptr_t) current);
+  return make_scoped_restore (&show_memory_breakpoints, show);
 }
 
 /* For docs see target.h, to_xfer_partial.  */
@@ -1552,34 +1479,31 @@ target_write_raw_memory (CORE_ADDR memad
 
 /* Fetch the target's memory map.  */
 
-VEC(mem_region_s) *
+std::vector<mem_region>
 target_memory_map (void)
 {
-  VEC(mem_region_s) *result;
-  struct mem_region *last_one, *this_one;
-  int ix;
-  result = current_target.to_memory_map (&current_target);
-  if (result == NULL)
-    return NULL;
+  std::vector<mem_region> result
+    = current_target.to_memory_map (&current_target);
+  if (result.empty ())
+    return result;
 
-  qsort (VEC_address (mem_region_s, result),
-	 VEC_length (mem_region_s, result),
-	 sizeof (struct mem_region), mem_region_cmp);
+  std::sort (result.begin (), result.end ());
 
   /* Check that regions do not overlap.  Simultaneously assign
      a numbering for the "mem" commands to use to refer to
      each region.  */
-  last_one = NULL;
-  for (ix = 0; VEC_iterate (mem_region_s, result, ix, this_one); ix++)
+  mem_region *last_one = NULL;
+  for (size_t ix = 0; ix < result.size (); ix++)
     {
+      mem_region *this_one = &result[ix];
       this_one->number = ix;
 
-      if (last_one && last_one->hi > this_one->lo)
+      if (last_one != NULL && last_one->hi > this_one->lo)
 	{
 	  warning (_("Overlapping regions in memory map: ignoring"));
-	  VEC_free (mem_region_s, result);
-	  return NULL;
+	  return std::vector<mem_region> ();
 	}
+
       last_one = this_one;
     }
 
@@ -1701,43 +1625,37 @@ static void
 read_whatever_is_readable (struct target_ops *ops,
 			   const ULONGEST begin, const ULONGEST end,
 			   int unit_size,
-			   VEC(memory_read_result_s) **result)
+			   std::vector<memory_read_result> *result)
 {
-  gdb_byte *buf = (gdb_byte *) xmalloc (end - begin);
   ULONGEST current_begin = begin;
   ULONGEST current_end = end;
   int forward;
-  memory_read_result_s r;
   ULONGEST xfered_len;
 
   /* If we previously failed to read 1 byte, nothing can be done here.  */
   if (end - begin <= 1)
-    {
-      xfree (buf);
-      return;
-    }
+    return;
+
+  gdb::unique_xmalloc_ptr<gdb_byte> buf ((gdb_byte *) xmalloc (end - begin));
 
   /* Check that either first or the last byte is readable, and give up
      if not.  This heuristic is meant to permit reading accessible memory
      at the boundary of accessible region.  */
   if (target_read_partial (ops, TARGET_OBJECT_MEMORY, NULL,
-			   buf, begin, 1, &xfered_len) == TARGET_XFER_OK)
+			   buf.get (), begin, 1, &xfered_len) == TARGET_XFER_OK)
     {
       forward = 1;
       ++current_begin;
     }
   else if (target_read_partial (ops, TARGET_OBJECT_MEMORY, NULL,
-				buf + (end - begin) - 1, end - 1, 1,
+				buf.get () + (end - begin) - 1, end - 1, 1,
 				&xfered_len) == TARGET_XFER_OK)
     {
       forward = 0;
       --current_end;
     }
   else
-    {
-      xfree (buf);
-      return;
-    }
+    return;
 
   /* Loop invariant is that the [current_begin, current_end) was previously
      found to be not readable as a whole.
@@ -1767,7 +1685,7 @@ read_whatever_is_readable (struct target
 	}
 
       xfer = target_read (ops, TARGET_OBJECT_MEMORY, NULL,
-			  buf + (first_half_begin - begin) * unit_size,
+			  buf.get () + (first_half_begin - begin) * unit_size,
 			  first_half_begin,
 			  first_half_end - first_half_begin);
 
@@ -1794,47 +1712,27 @@ read_whatever_is_readable (struct target
   if (forward)
     {
       /* The [begin, current_begin) range has been read.  */
-      r.begin = begin;
-      r.end = current_begin;
-      r.data = buf;
+      result->emplace_back (begin, current_end, std::move (buf));
     }
   else
     {
       /* The [current_end, end) range has been read.  */
       LONGEST region_len = end - current_end;
 
-      r.data = (gdb_byte *) xmalloc (region_len * unit_size);
-      memcpy (r.data, buf + (current_end - begin) * unit_size,
+      gdb::unique_xmalloc_ptr<gdb_byte> data
+	((gdb_byte *) xmalloc (region_len * unit_size));
+      memcpy (data.get (), buf.get () + (current_end - begin) * unit_size,
 	      region_len * unit_size);
-      r.begin = current_end;
-      r.end = end;
-      xfree (buf);
-    }
-  VEC_safe_push(memory_read_result_s, (*result), &r);
-}
-
-void
-free_memory_read_result_vector (void *x)
-{
-  VEC(memory_read_result_s) **v = (VEC(memory_read_result_s) **) x;
-  memory_read_result_s *current;
-  int ix;
-
-  for (ix = 0; VEC_iterate (memory_read_result_s, *v, ix, current); ++ix)
-    {
-      xfree (current->data);
+      result->emplace_back (current_end, end, std::move (data));
     }
-  VEC_free (memory_read_result_s, *v);
 }
 
-VEC(memory_read_result_s) *
+std::vector<memory_read_result>
 read_memory_robust (struct target_ops *ops,
 		    const ULONGEST offset, const LONGEST len)
 {
-  VEC(memory_read_result_s) *result = 0;
+  std::vector<memory_read_result> result;
   int unit_size = gdbarch_addressable_memory_unit_size (target_gdbarch ());
-  struct cleanup *cleanup = make_cleanup (free_memory_read_result_vector,
-					  &result);
 
   LONGEST xfered_total = 0;
   while (xfered_total < len)
@@ -1860,19 +1758,17 @@ read_memory_robust (struct target_ops *o
       else
 	{
 	  LONGEST to_read = std::min (len - xfered_total, region_len);
-	  gdb_byte *buffer = (gdb_byte *) xmalloc (to_read * unit_size);
-	  struct cleanup *inner_cleanup = make_cleanup (xfree, buffer);
+	  gdb::unique_xmalloc_ptr<gdb_byte> buffer
+	    ((gdb_byte *) xmalloc (to_read * unit_size));
 
 	  LONGEST xfered_partial =
-	      target_read (ops, TARGET_OBJECT_MEMORY, NULL,
-			   (gdb_byte *) buffer,
+	      target_read (ops, TARGET_OBJECT_MEMORY, NULL, buffer.get (),
 			   offset + xfered_total, to_read);
 	  /* Call an observer, notifying them of the xfer progress?  */
 	  if (xfered_partial <= 0)
 	    {
 	      /* Got an error reading full chunk.  See if maybe we can read
 		 some subrange.  */
-	      do_cleanups (inner_cleanup);
 	      read_whatever_is_readable (ops, offset + xfered_total,
 					 offset + xfered_total + to_read,
 					 unit_size, &result);
@@ -1880,20 +1776,15 @@ read_memory_robust (struct target_ops *o
 	    }
 	  else
 	    {
-	      struct memory_read_result r;
-
-	      discard_cleanups (inner_cleanup);
-	      r.data = buffer;
-	      r.begin = offset + xfered_total;
-	      r.end = r.begin + xfered_partial;
-	      VEC_safe_push (memory_read_result_s, result, &r);
+	      result.emplace_back (offset + xfered_total,
+				   offset + xfered_total + xfered_partial,
+				   std::move (buffer));
 	      xfered_total += xfered_partial;
 	    }
 	  QUIT;
 	}
     }
 
-  discard_cleanups (cleanup);
   return result;
 }
 
@@ -2030,13 +1921,9 @@ target_read_alloc (struct target_ops *op
   return target_read_alloc_1 (ops, object, annex, buf_p, 0);
 }
 
-/* Read OBJECT/ANNEX using OPS.  The result is NUL-terminated and
-   returned as a string, allocated using xmalloc.  If an error occurs
-   or the transfer is unsupported, NULL is returned.  Empty objects
-   are returned as allocated but empty strings.  A warning is issued
-   if the result contains any embedded NUL bytes.  */
+/* See target.h.  */
 
-char *
+gdb::unique_xmalloc_ptr<char>
 target_read_stralloc (struct target_ops *ops, enum target_object object,
 		      const char *annex)
 {
@@ -2051,7 +1938,7 @@ target_read_stralloc (struct target_ops 
     return NULL;
 
   if (transferred == 0)
-    return xstrdup ("");
+    return gdb::unique_xmalloc_ptr<char> (xstrdup (""));
 
   bufstr[transferred] = 0;
 
@@ -2065,7 +1952,7 @@ target_read_stralloc (struct target_ops 
 	break;
       }
 
-  return bufstr;
+  return gdb::unique_xmalloc_ptr<char> (bufstr);
 }
 
 /* Memory transfer methods.  */
@@ -2132,7 +2019,7 @@ target_remove_breakpoint (struct gdbarch
 }
 
 static void
-target_info (char *args, int from_tty)
+info_target_command (const char *args, int from_tty)
 {
   struct target_ops *t;
   int has_all_mem = 0;
@@ -2315,6 +2202,15 @@ target_thread_name (struct thread_info *
   return current_target.to_thread_name (&current_target, info);
 }
 
+struct thread_info *
+target_thread_handle_to_thread_info (const gdb_byte *thread_handle,
+				     int handle_len,
+				     struct inferior *inf)
+{
+  return current_target.to_thread_handle_to_thread_info
+           (&current_target, thread_handle, handle_len, inf);
+}
+
 void
 target_resume (ptid_t ptid, int step, enum gdb_signal signal)
 {
@@ -2337,8 +2233,6 @@ static int defer_target_commit_resume;
 void
 target_commit_resume (void)
 {
-  struct target_ops *t;
-
   if (defer_target_commit_resume)
     return;
 
@@ -2347,14 +2241,10 @@ target_commit_resume (void)
 
 /* See target.h.  */
 
-struct cleanup *
-make_cleanup_defer_target_commit_resume (void)
+scoped_restore_tmpl<int>
+make_scoped_defer_target_commit_resume ()
 {
-  struct cleanup *old_chain;
-
-  old_chain = make_cleanup_restore_integer (&defer_target_commit_resume);
-  defer_target_commit_resume = 1;
-  return old_chain;
+  return make_scoped_restore (&defer_target_commit_resume, 1);
 }
 
 void
@@ -2439,9 +2329,7 @@ simple_search_memory (struct target_ops 
 #define SEARCH_CHUNK_SIZE 16000
   const unsigned chunk_size = SEARCH_CHUNK_SIZE;
   /* Buffer to hold memory contents for searching.  */
-  gdb_byte *search_buf;
   unsigned search_buf_size;
-  struct cleanup *old_cleanups;
 
   search_buf_size = chunk_size + pattern_len - 1;
 
@@ -2449,20 +2337,17 @@ simple_search_memory (struct target_ops 
   if (search_space_len < search_buf_size)
     search_buf_size = search_space_len;
 
-  search_buf = (gdb_byte *) malloc (search_buf_size);
-  if (search_buf == NULL)
-    error (_("Unable to allocate memory to perform the search."));
-  old_cleanups = make_cleanup (free_current_contents, &search_buf);
+  gdb::byte_vector search_buf (search_buf_size);
 
   /* Prime the search buffer.  */
 
   if (target_read (ops, TARGET_OBJECT_MEMORY, NULL,
-		   search_buf, start_addr, search_buf_size) != search_buf_size)
+		   search_buf.data (), start_addr, search_buf_size)
+      != search_buf_size)
     {
       warning (_("Unable to access %s bytes of target "
 		 "memory at %s, halting search."),
 	       pulongest (search_buf_size), hex_string (start_addr));
-      do_cleanups (old_cleanups);
       return -1;
     }
 
@@ -2478,15 +2363,14 @@ simple_search_memory (struct target_ops 
       unsigned nr_search_bytes
 	= std::min (search_space_len, (ULONGEST) search_buf_size);
 
-      found_ptr = (gdb_byte *) memmem (search_buf, nr_search_bytes,
+      found_ptr = (gdb_byte *) memmem (search_buf.data (), nr_search_bytes,
 				       pattern, pattern_len);
 
       if (found_ptr != NULL)
 	{
-	  CORE_ADDR found_addr = start_addr + (found_ptr - search_buf);
+	  CORE_ADDR found_addr = start_addr + (found_ptr - search_buf.data ());
 
 	  *found_addrp = found_addr;
-	  do_cleanups (old_cleanups);
 	  return 1;
 	}
 
@@ -2507,20 +2391,19 @@ simple_search_memory (struct target_ops 
 	  /* Copy the trailing part of the previous iteration to the front
 	     of the buffer for the next iteration.  */
 	  gdb_assert (keep_len == pattern_len - 1);
-	  memcpy (search_buf, search_buf + chunk_size, keep_len);
+	  memcpy (&search_buf[0], &search_buf[chunk_size], keep_len);
 
 	  nr_to_read = std::min (search_space_len - keep_len,
 				 (ULONGEST) chunk_size);
 
 	  if (target_read (ops, TARGET_OBJECT_MEMORY, NULL,
-			   search_buf + keep_len, read_addr,
+			   &search_buf[keep_len], read_addr,
 			   nr_to_read) != nr_to_read)
 	    {
 	      warning (_("Unable to access %s bytes of target "
 			 "memory at %s, halting search."),
 		       plongest (nr_to_read),
 		       hex_string (read_addr));
-	      do_cleanups (old_cleanups);
 	      return -1;
 	    }
 
@@ -2530,7 +2413,6 @@ simple_search_memory (struct target_ops 
 
   /* Not found.  */
 
-  do_cleanups (old_cleanups);
   return 0;
 }
 
@@ -2763,7 +2645,9 @@ target_supports_multi_process (void)
   return (*current_target.to_supports_multi_process) (&current_target);
 }
 
-char *
+/* See target.h.  */
+
+gdb::unique_xmalloc_ptr<char>
 target_get_osdata (const char *type)
 {
   struct target_ops *t;
@@ -3194,7 +3078,7 @@ target_fileio_read_alloc (struct inferio
 
 /* See target.h.  */
 
-char *
+gdb::unique_xmalloc_ptr<char> 
 target_fileio_read_stralloc (struct inferior *inf, const char *filename)
 {
   gdb_byte *buffer;
@@ -3205,10 +3089,10 @@ target_fileio_read_stralloc (struct infe
   bufstr = (char *) buffer;
 
   if (transferred < 0)
-    return NULL;
+    return gdb::unique_xmalloc_ptr<char> (nullptr);
 
   if (transferred == 0)
-    return xstrdup ("");
+    return gdb::unique_xmalloc_ptr<char> (xstrdup (""));
 
   bufstr[transferred] = 0;
 
@@ -3222,7 +3106,7 @@ target_fileio_read_stralloc (struct infe
 	break;
       }
 
-  return bufstr;
+  return gdb::unique_xmalloc_ptr<char> (bufstr);
 }
 
 
@@ -3244,7 +3128,9 @@ default_watchpoint_addr_within_range (st
 static struct gdbarch *
 default_thread_architecture (struct target_ops *ops, ptid_t ptid)
 {
-  return target_gdbarch ();
+  inferior *inf = find_inferior_ptid (ptid);
+  gdb_assert (inf != NULL);
+  return inf->gdbarch;
 }
 
 static int
@@ -3552,7 +3438,7 @@ target_fetch_registers (struct regcache 
 {
   current_target.to_fetch_registers (&current_target, regcache, regno);
   if (targetdebug)
-    regcache_debug_print_register ("target_fetch_registers", regcache, regno);
+    regcache->debug_print_register ("target_fetch_registers", regno);
 }
 
 void
@@ -3564,8 +3450,7 @@ target_store_registers (struct regcache 
   current_target.to_store_registers (&current_target, regcache, regno);
   if (targetdebug)
     {
-      regcache_debug_print_register ("target_store_registers", regcache,
-				     regno);
+      regcache->debug_print_register ("target_store_registers", regno);
     }
 }
 
@@ -3810,7 +3695,7 @@ target_goto_record (ULONGEST insn)
 /* See target.h.  */
 
 void
-target_insn_history (int size, int flags)
+target_insn_history (int size, gdb_disassembly_flags flags)
 {
   current_target.to_insn_history (&current_target, size, flags);
 }
@@ -3818,7 +3703,8 @@ target_insn_history (int size, int flags
 /* See target.h.  */
 
 void
-target_insn_history_from (ULONGEST from, int size, int flags)
+target_insn_history_from (ULONGEST from, int size,
+			  gdb_disassembly_flags flags)
 {
   current_target.to_insn_history_from (&current_target, from, size, flags);
 }
@@ -3826,7 +3712,8 @@ target_insn_history_from (ULONGEST from,
 /* See target.h.  */
 
 void
-target_insn_history_range (ULONGEST begin, ULONGEST end, int flags)
+target_insn_history_range (ULONGEST begin, ULONGEST end,
+			   gdb_disassembly_flags flags)
 {
   current_target.to_insn_history_range (&current_target, begin, end, flags);
 }
@@ -3909,8 +3796,7 @@ default_rcmd (struct target_ops *self, c
 }
 
 static void
-do_monitor_command (char *cmd,
-		 int from_tty)
+do_monitor_command (const char *cmd, int from_tty)
 {
   target_rcmd (cmd, gdb_stdtarg);
 }
@@ -3919,38 +3805,30 @@ do_monitor_command (char *cmd,
    ignored.  */
 
 void
-flash_erase_command (char *cmd, int from_tty)
+flash_erase_command (const char *cmd, int from_tty)
 {
   /* Used to communicate termination of flash operations to the target.  */
   bool found_flash_region = false;
-  struct mem_region *m;
   struct gdbarch *gdbarch = target_gdbarch ();
 
-  VEC(mem_region_s) *mem_regions = target_memory_map ();
+  std::vector<mem_region> mem_regions = target_memory_map ();
 
   /* Iterate over all memory regions.  */
-  for (int i = 0; VEC_iterate (mem_region_s, mem_regions, i, m); i++)
+  for (const mem_region &m : mem_regions)
     {
-      /* Fetch the memory attribute.  */
-      struct mem_attrib *attrib = &m->attrib;
-
       /* Is this a flash memory region?  */
-      if (attrib->mode == MEM_FLASH)
+      if (m.attrib.mode == MEM_FLASH)
         {
           found_flash_region = true;
-          target_flash_erase (m->lo, m->hi - m->lo);
+          target_flash_erase (m.lo, m.hi - m.lo);
 
-	  struct cleanup *cleanup_tuple
-	      = make_cleanup_ui_out_tuple_begin_end (current_uiout,
-						     "erased-regions");
+	  ui_out_emit_tuple tuple_emitter (current_uiout, "erased-regions");
 
           current_uiout->message (_("Erasing flash memory region at address "));
-          current_uiout->field_fmt ("address", "%s", paddress (gdbarch,
-								 m->lo));
+          current_uiout->field_fmt ("address", "%s", paddress (gdbarch, m.lo));
           current_uiout->message (", size = ");
-          current_uiout->field_fmt ("size", "%s", hex_string (m->hi - m->lo));
+          current_uiout->field_fmt ("size", "%s", hex_string (m.hi - m.lo));
           current_uiout->message ("\n");
-          do_cleanups (cleanup_tuple);
         }
     }
 
@@ -3964,7 +3842,7 @@ flash_erase_command (char *cmd, int from
 /* Print the name of each layers of our target stack.  */
 
 static void
-maintenance_print_target_stack (char *cmd, int from_tty)
+maintenance_print_target_stack (const char *cmd, int from_tty)
 {
   struct target_ops *t;
 
@@ -4002,7 +3880,7 @@ int target_async_permitted = 1;
 static int target_async_permitted_1 = 1;
 
 static void
-maint_set_target_async_command (char *args, int from_tty,
+maint_set_target_async_command (const char *args, int from_tty,
 				struct cmd_list_element *c)
 {
   if (have_live_inferiors ())
@@ -4055,7 +3933,7 @@ static enum auto_boolean target_non_stop
 /* Implementation of "maint set target-non-stop".  */
 
 static void
-maint_set_target_non_stop_command (char *args, int from_tty,
+maint_set_target_non_stop_command (const char *args, int from_tty,
 				   struct cmd_list_element *c)
 {
   if (have_live_inferiors ())
@@ -4111,7 +3989,7 @@ update_target_permissions (void)
    way.  */
 
 static void
-set_target_permissions (char *args, int from_tty,
+set_target_permissions (const char *args, int from_tty,
 			struct cmd_list_element *c)
 {
   if (target_has_execution)
@@ -4132,7 +4010,7 @@ set_target_permissions (char *args, int 
 /* Set memory write permission independently of observer mode.  */
 
 static void
-set_write_memory_permission (char *args, int from_tty,
+set_write_memory_permission (const char *args, int from_tty,
 			struct cmd_list_element *c)
 {
   /* Make the real values match the user-changed values.  */
@@ -4140,6 +4018,53 @@ set_write_memory_permission (char *args,
   update_observer_mode ();
 }
 
+#if GDB_SELF_TEST
+namespace selftests {
+
+static int
+test_target_has_registers (target_ops *self)
+{
+  return 1;
+}
+
+static int
+test_target_has_stack (target_ops *self)
+{
+  return 1;
+}
+
+static int
+test_target_has_memory (target_ops *self)
+{
+  return 1;
+}
+
+static void
+test_target_prepare_to_store (target_ops *self, regcache *regs)
+{
+}
+
+static void
+test_target_store_registers (target_ops *self, regcache *regs, int regno)
+{
+}
+
+test_target_ops::test_target_ops ()
+  : target_ops {}
+{
+  to_magic = OPS_MAGIC;
+  to_stratum = process_stratum;
+  to_has_memory = test_target_has_memory;
+  to_has_stack = test_target_has_stack;
+  to_has_registers = test_target_has_registers;
+  to_prepare_to_store = test_target_prepare_to_store;
+  to_store_registers = test_target_store_registers;
+
+  complete_target_initialization (this);
+}
+
+} // namespace selftests
+#endif /* GDB_SELF_TEST */
 
 void
 initialize_targets (void)
@@ -4147,8 +4072,8 @@ initialize_targets (void)
   init_dummy_target ();
   push_target (&dummy_target);
 
-  add_info ("target", target_info, targ_desc);
-  add_info ("files", target_info, targ_desc);
+  add_info ("target", info_target_command, targ_desc);
+  add_info ("files", info_target_command, targ_desc);
 
   add_setshow_zuinteger_cmd ("target", class_maintenance, &targetdebug, _("\
 Set target debugging."), _("\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-dcache.c ./gdb/target-dcache.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-dcache.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/target-dcache.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -105,7 +105,7 @@ static int stack_cache_enabled = 1;
    except cleanliness.  */
 
 static void
-set_stack_cache (char *args, int from_tty, struct cmd_list_element *c)
+set_stack_cache (const char *args, int from_tty, struct cmd_list_element *c)
 {
   if (stack_cache_enabled != stack_cache_enabled_1)
     target_dcache_invalidate ();
@@ -143,7 +143,7 @@ static int code_cache_enabled = 1;
    except cleanliness.  */
 
 static void
-set_code_cache (char *args, int from_tty, struct cmd_list_element *c)
+set_code_cache (const char *args, int from_tty, struct cmd_list_element *c)
 {
   if (code_cache_enabled != code_cache_enabled_1)
     target_dcache_invalidate ();
@@ -168,9 +168,6 @@ code_cache_enabled_p (void)
   return code_cache_enabled;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_target_dcache;
-
 void
 _initialize_target_dcache (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-dcache.h ./gdb/target-dcache.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-dcache.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/target-dcache.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-debug.h ./gdb/target-debug.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-debug.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/target-debug.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB target debugging macros
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -56,6 +56,8 @@
   target_debug_do_print (((X) ? (X) : "(null)"))
 #define target_debug_print_int(X)		\
   target_debug_do_print (plongest (X))
+#define target_debug_print_bool(X)		\
+  target_debug_do_print ((X) ? "true" : "false")
 #define target_debug_print_long(X)		\
   target_debug_do_print (plongest (X))
 #define target_debug_print_enum_target_xfer_status(X)	\
@@ -114,9 +116,9 @@
   target_debug_do_print (host_address_to_string (X))
 #define target_debug_print_bfd_p(X) \
   target_debug_do_print (host_address_to_string (X))
-#define target_debug_print_VEC_mem_region_s__p(X)	\
-  target_debug_do_print (host_address_to_string (X))
-#define target_debug_print_VEC_static_tracepoint_marker_p__p(X)	\
+#define target_debug_print_std_vector_mem_region(X) \
+  target_debug_do_print (host_address_to_string (X.data ()))
+#define target_debug_print_VEC_static_tracepoint_marker_p_p(X)	\
   target_debug_do_print (host_address_to_string (X))
 #define target_debug_print_const_struct_target_desc_p(X)	\
   target_debug_do_print (host_address_to_string (X))
@@ -162,14 +164,19 @@
   target_debug_do_print (host_address_to_string (X))
 #define target_debug_print_enum_remove_bp_reason(X) \
   target_debug_do_print (plongest (X))
+#define target_debug_print_gdb_disassembly_flags(X) \
+  target_debug_do_print (plongest (X))
+#define target_debug_print_traceframe_info_up(X) \
+  target_debug_do_print (host_address_to_string (X.get ()))
+#define target_debug_print_gdb_array_view_const_int(X)	\
+  target_debug_do_print (host_address_to_string (X.data ()))
 
 static void
 target_debug_print_struct_target_waitstatus_p (struct target_waitstatus *status)
 {
-  char *str = target_waitstatus_to_string (status);
+  std::string str = target_waitstatus_to_string (status);
 
-  fputs_unfiltered (str, gdb_stdlog);
-  xfree (str);
+  fputs_unfiltered (str.c_str (), gdb_stdlog);
 }
 
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-delegates.c ./gdb/target-delegates.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-delegates.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/target-delegates.c	2018-01-09 02:04:57.000000000 +0000
@@ -1286,36 +1286,34 @@ debug_follow_exec (struct target_ops *se
 }
 
 static int
-delegate_set_syscall_catchpoint (struct target_ops *self, int arg1, int arg2, int arg3, int arg4, int *arg5)
+delegate_set_syscall_catchpoint (struct target_ops *self, int arg1, bool arg2, int arg3, gdb::array_view<const int> arg4)
 {
   self = self->beneath;
-  return self->to_set_syscall_catchpoint (self, arg1, arg2, arg3, arg4, arg5);
+  return self->to_set_syscall_catchpoint (self, arg1, arg2, arg3, arg4);
 }
 
 static int
-tdefault_set_syscall_catchpoint (struct target_ops *self, int arg1, int arg2, int arg3, int arg4, int *arg5)
+tdefault_set_syscall_catchpoint (struct target_ops *self, int arg1, bool arg2, int arg3, gdb::array_view<const int> arg4)
 {
   return 1;
 }
 
 static int
-debug_set_syscall_catchpoint (struct target_ops *self, int arg1, int arg2, int arg3, int arg4, int *arg5)
+debug_set_syscall_catchpoint (struct target_ops *self, int arg1, bool arg2, int arg3, gdb::array_view<const int> arg4)
 {
   int result;
   fprintf_unfiltered (gdb_stdlog, "-> %s->to_set_syscall_catchpoint (...)\n", debug_target.to_shortname);
-  result = debug_target.to_set_syscall_catchpoint (&debug_target, arg1, arg2, arg3, arg4, arg5);
+  result = debug_target.to_set_syscall_catchpoint (&debug_target, arg1, arg2, arg3, arg4);
   fprintf_unfiltered (gdb_stdlog, "<- %s->to_set_syscall_catchpoint (", debug_target.to_shortname);
   target_debug_print_struct_target_ops_p (&debug_target);
   fputs_unfiltered (", ", gdb_stdlog);
   target_debug_print_int (arg1);
   fputs_unfiltered (", ", gdb_stdlog);
-  target_debug_print_int (arg2);
+  target_debug_print_bool (arg2);
   fputs_unfiltered (", ", gdb_stdlog);
   target_debug_print_int (arg3);
   fputs_unfiltered (", ", gdb_stdlog);
-  target_debug_print_int (arg4);
-  fputs_unfiltered (", ", gdb_stdlog);
-  target_debug_print_int_p (arg5);
+  target_debug_print_gdb_array_view_const_int (arg4);
   fputs_unfiltered (") = ", gdb_stdlog);
   target_debug_print_int (result);
   fputs_unfiltered ("\n", gdb_stdlog);
@@ -1583,6 +1581,39 @@ debug_thread_name (struct target_ops *se
   return result;
 }
 
+static struct thread_info *
+delegate_thread_handle_to_thread_info (struct target_ops *self, const gdb_byte *arg1, int arg2, struct inferior *arg3)
+{
+  self = self->beneath;
+  return self->to_thread_handle_to_thread_info (self, arg1, arg2, arg3);
+}
+
+static struct thread_info *
+tdefault_thread_handle_to_thread_info (struct target_ops *self, const gdb_byte *arg1, int arg2, struct inferior *arg3)
+{
+  return NULL;
+}
+
+static struct thread_info *
+debug_thread_handle_to_thread_info (struct target_ops *self, const gdb_byte *arg1, int arg2, struct inferior *arg3)
+{
+  struct thread_info * result;
+  fprintf_unfiltered (gdb_stdlog, "-> %s->to_thread_handle_to_thread_info (...)\n", debug_target.to_shortname);
+  result = debug_target.to_thread_handle_to_thread_info (&debug_target, arg1, arg2, arg3);
+  fprintf_unfiltered (gdb_stdlog, "<- %s->to_thread_handle_to_thread_info (", debug_target.to_shortname);
+  target_debug_print_struct_target_ops_p (&debug_target);
+  fputs_unfiltered (", ", gdb_stdlog);
+  target_debug_print_const_gdb_byte_p (arg1);
+  fputs_unfiltered (", ", gdb_stdlog);
+  target_debug_print_int (arg2);
+  fputs_unfiltered (", ", gdb_stdlog);
+  target_debug_print_struct_inferior_p (arg3);
+  fputs_unfiltered (") = ", gdb_stdlog);
+  target_debug_print_struct_thread_info_p (result);
+  fputs_unfiltered ("\n", gdb_stdlog);
+  return result;
+}
+
 static void
 delegate_stop (struct target_ops *self, ptid_t arg1)
 {
@@ -2115,29 +2146,29 @@ debug_get_memory_xfer_limit (struct targ
   return result;
 }
 
-static VEC(mem_region_s) *
+static std::vector<mem_region>
 delegate_memory_map (struct target_ops *self)
 {
   self = self->beneath;
   return self->to_memory_map (self);
 }
 
-static VEC(mem_region_s) *
+static std::vector<mem_region>
 tdefault_memory_map (struct target_ops *self)
 {
-  return NULL;
+  return std::vector<mem_region> ();
 }
 
-static VEC(mem_region_s) *
+static std::vector<mem_region>
 debug_memory_map (struct target_ops *self)
 {
-  VEC(mem_region_s) * result;
+  std::vector<mem_region> result;
   fprintf_unfiltered (gdb_stdlog, "-> %s->to_memory_map (...)\n", debug_target.to_shortname);
   result = debug_target.to_memory_map (&debug_target);
   fprintf_unfiltered (gdb_stdlog, "<- %s->to_memory_map (", debug_target.to_shortname);
   target_debug_print_struct_target_ops_p (&debug_target);
   fputs_unfiltered (") = ", gdb_stdlog);
-  target_debug_print_VEC_mem_region_s__p (result);
+  target_debug_print_std_vector_mem_region (result);
   fputs_unfiltered ("\n", gdb_stdlog);
   return result;
 }
@@ -3319,34 +3350,34 @@ debug_static_tracepoint_markers_by_strid
   fputs_unfiltered (", ", gdb_stdlog);
   target_debug_print_const_char_p (arg1);
   fputs_unfiltered (") = ", gdb_stdlog);
-  target_debug_print_VEC_static_tracepoint_marker_p__p (result);
+  target_debug_print_VEC_static_tracepoint_marker_p_p (result);
   fputs_unfiltered ("\n", gdb_stdlog);
   return result;
 }
 
-static struct traceframe_info *
+static traceframe_info_up
 delegate_traceframe_info (struct target_ops *self)
 {
   self = self->beneath;
   return self->to_traceframe_info (self);
 }
 
-static struct traceframe_info *
+static traceframe_info_up
 tdefault_traceframe_info (struct target_ops *self)
 {
   tcomplain ();
 }
 
-static struct traceframe_info *
+static traceframe_info_up
 debug_traceframe_info (struct target_ops *self)
 {
-  struct traceframe_info * result;
+  traceframe_info_up result;
   fprintf_unfiltered (gdb_stdlog, "-> %s->to_traceframe_info (...)\n", debug_target.to_shortname);
   result = debug_target.to_traceframe_info (&debug_target);
   fprintf_unfiltered (gdb_stdlog, "<- %s->to_traceframe_info (", debug_target.to_shortname);
   target_debug_print_struct_target_ops_p (&debug_target);
   fputs_unfiltered (") = ", gdb_stdlog);
-  target_debug_print_struct_traceframe_info_p (result);
+  target_debug_print_traceframe_info_up (result);
   fputs_unfiltered ("\n", gdb_stdlog);
   return result;
 }
@@ -3854,20 +3885,20 @@ debug_goto_record (struct target_ops *se
 }
 
 static void
-delegate_insn_history (struct target_ops *self, int arg1, int arg2)
+delegate_insn_history (struct target_ops *self, int arg1, gdb_disassembly_flags arg2)
 {
   self = self->beneath;
   self->to_insn_history (self, arg1, arg2);
 }
 
 static void
-tdefault_insn_history (struct target_ops *self, int arg1, int arg2)
+tdefault_insn_history (struct target_ops *self, int arg1, gdb_disassembly_flags arg2)
 {
   tcomplain ();
 }
 
 static void
-debug_insn_history (struct target_ops *self, int arg1, int arg2)
+debug_insn_history (struct target_ops *self, int arg1, gdb_disassembly_flags arg2)
 {
   fprintf_unfiltered (gdb_stdlog, "-> %s->to_insn_history (...)\n", debug_target.to_shortname);
   debug_target.to_insn_history (&debug_target, arg1, arg2);
@@ -3876,25 +3907,25 @@ debug_insn_history (struct target_ops *s
   fputs_unfiltered (", ", gdb_stdlog);
   target_debug_print_int (arg1);
   fputs_unfiltered (", ", gdb_stdlog);
-  target_debug_print_int (arg2);
+  target_debug_print_gdb_disassembly_flags (arg2);
   fputs_unfiltered (")\n", gdb_stdlog);
 }
 
 static void
-delegate_insn_history_from (struct target_ops *self, ULONGEST arg1, int arg2, int arg3)
+delegate_insn_history_from (struct target_ops *self, ULONGEST arg1, int arg2, gdb_disassembly_flags arg3)
 {
   self = self->beneath;
   self->to_insn_history_from (self, arg1, arg2, arg3);
 }
 
 static void
-tdefault_insn_history_from (struct target_ops *self, ULONGEST arg1, int arg2, int arg3)
+tdefault_insn_history_from (struct target_ops *self, ULONGEST arg1, int arg2, gdb_disassembly_flags arg3)
 {
   tcomplain ();
 }
 
 static void
-debug_insn_history_from (struct target_ops *self, ULONGEST arg1, int arg2, int arg3)
+debug_insn_history_from (struct target_ops *self, ULONGEST arg1, int arg2, gdb_disassembly_flags arg3)
 {
   fprintf_unfiltered (gdb_stdlog, "-> %s->to_insn_history_from (...)\n", debug_target.to_shortname);
   debug_target.to_insn_history_from (&debug_target, arg1, arg2, arg3);
@@ -3905,25 +3936,25 @@ debug_insn_history_from (struct target_o
   fputs_unfiltered (", ", gdb_stdlog);
   target_debug_print_int (arg2);
   fputs_unfiltered (", ", gdb_stdlog);
-  target_debug_print_int (arg3);
+  target_debug_print_gdb_disassembly_flags (arg3);
   fputs_unfiltered (")\n", gdb_stdlog);
 }
 
 static void
-delegate_insn_history_range (struct target_ops *self, ULONGEST arg1, ULONGEST arg2, int arg3)
+delegate_insn_history_range (struct target_ops *self, ULONGEST arg1, ULONGEST arg2, gdb_disassembly_flags arg3)
 {
   self = self->beneath;
   self->to_insn_history_range (self, arg1, arg2, arg3);
 }
 
 static void
-tdefault_insn_history_range (struct target_ops *self, ULONGEST arg1, ULONGEST arg2, int arg3)
+tdefault_insn_history_range (struct target_ops *self, ULONGEST arg1, ULONGEST arg2, gdb_disassembly_flags arg3)
 {
   tcomplain ();
 }
 
 static void
-debug_insn_history_range (struct target_ops *self, ULONGEST arg1, ULONGEST arg2, int arg3)
+debug_insn_history_range (struct target_ops *self, ULONGEST arg1, ULONGEST arg2, gdb_disassembly_flags arg3)
 {
   fprintf_unfiltered (gdb_stdlog, "-> %s->to_insn_history_range (...)\n", debug_target.to_shortname);
   debug_target.to_insn_history_range (&debug_target, arg1, arg2, arg3);
@@ -3934,7 +3965,7 @@ debug_insn_history_range (struct target_
   fputs_unfiltered (", ", gdb_stdlog);
   target_debug_print_ULONGEST (arg2);
   fputs_unfiltered (", ", gdb_stdlog);
-  target_debug_print_int (arg3);
+  target_debug_print_gdb_disassembly_flags (arg3);
   fputs_unfiltered (")\n", gdb_stdlog);
 }
 
@@ -4267,6 +4298,8 @@ install_delegators (struct target_ops *o
     ops->to_extra_thread_info = delegate_extra_thread_info;
   if (ops->to_thread_name == NULL)
     ops->to_thread_name = delegate_thread_name;
+  if (ops->to_thread_handle_to_thread_info == NULL)
+    ops->to_thread_handle_to_thread_info = delegate_thread_handle_to_thread_info;
   if (ops->to_stop == NULL)
     ops->to_stop = delegate_stop;
   if (ops->to_interrupt == NULL)
@@ -4522,6 +4555,7 @@ install_dummy_methods (struct target_ops
   ops->to_pid_to_str = default_pid_to_str;
   ops->to_extra_thread_info = tdefault_extra_thread_info;
   ops->to_thread_name = tdefault_thread_name;
+  ops->to_thread_handle_to_thread_info = tdefault_thread_handle_to_thread_info;
   ops->to_stop = tdefault_stop;
   ops->to_interrupt = tdefault_interrupt;
   ops->to_pass_ctrlc = default_target_pass_ctrlc;
@@ -4681,6 +4715,7 @@ init_debug_target (struct target_ops *op
   ops->to_pid_to_str = debug_pid_to_str;
   ops->to_extra_thread_info = debug_extra_thread_info;
   ops->to_thread_name = debug_thread_name;
+  ops->to_thread_handle_to_thread_info = debug_thread_handle_to_thread_info;
   ops->to_stop = debug_stop;
   ops->to_interrupt = debug_interrupt;
   ops->to_pass_ctrlc = debug_pass_ctrlc;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-descriptions.c ./gdb/target-descriptions.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-descriptions.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/target-descriptions.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target description support for GDB.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    Contributed by CodeSourcery.
 
@@ -34,24 +34,72 @@
 #include "gdb_obstack.h"
 #include "hashtab.h"
 #include "inferior.h"
+#include <algorithm>
+#include "completer.h"
+#include "readline/tilde.h" /* tilde_expand */
+
+/* The interface to visit different elements of target description.  */
+
+class tdesc_element_visitor
+{
+public:
+  virtual void visit_pre (const target_desc *e) = 0;
+  virtual void visit_post (const target_desc *e) = 0;
+
+  virtual void visit_pre (const tdesc_feature *e) = 0;
+  virtual void visit_post (const tdesc_feature *e) = 0;
+
+  virtual void visit (const tdesc_type_builtin *e) = 0;
+  virtual void visit (const tdesc_type_vector *e) = 0;
+  virtual void visit (const tdesc_type_with_fields *e) = 0;
+
+  virtual void visit (const tdesc_reg *e) = 0;
+};
+
+class tdesc_element
+{
+public:
+  virtual void accept (tdesc_element_visitor &v) const = 0;
+};
 
 /* Types.  */
 
-typedef struct property
+struct property
 {
-  char *key;
-  char *value;
-} property_s;
-DEF_VEC_O(property_s);
+  property (const std::string &key_, const std::string &value_)
+  : key (key_), value (value_)
+  {}
+
+  std::string key;
+  std::string value;
+};
 
 /* An individual register from a target description.  */
 
-typedef struct tdesc_reg
+struct tdesc_reg : tdesc_element
 {
+  tdesc_reg (struct tdesc_feature *feature, const std::string &name_,
+	     int regnum, int save_restore_, const char *group_,
+	     int bitsize_, const char *type_)
+    : name (name_), target_regnum (regnum),
+      save_restore (save_restore_),
+      group (group_ != NULL ? group_ : ""),
+      bitsize (bitsize_),
+      type (type_ != NULL ? type_ : "<unknown>")
+  {
+    /* If the register's type is target-defined, look it up now.  We may not
+       have easy access to the containing feature when we want it later.  */
+    tdesc_type = tdesc_named_type (feature, type.c_str ());
+  }
+
+  virtual ~tdesc_reg () = default;
+
+  DISABLE_COPY_AND_ASSIGN (tdesc_reg);
+
   /* The name of this register.  In standard features, it may be
      recognized by the architecture support code, or it may be purely
      for the user.  */
-  char *name;
+  std::string name;
 
   /* The register number used by this target to refer to this
      register.  This is used for remote p/P packets and to determine
@@ -62,14 +110,13 @@ typedef struct tdesc_reg
      around calls to an inferior function.  */
   int save_restore;
 
-  /* The name of the register group containing this register, or NULL
-     if the group should be automatically determined from the
-     register's type.  If this is "general", "float", or "vector", the
-     corresponding "info" command should display this register's
-     value.  It can be an arbitrary string, but should be limited to
-     alphanumeric characters and internal hyphens.  Currently other
-     strings are ignored (treated as NULL).  */
-  char *group;
+  /* The name of the register group containing this register, or empty
+     if the group should be automatically determined from the register's
+     type.  This is traditionally "general", "float", "vector" but can
+     also be an arbitrary string.  If defined the corresponding "info"
+     command should display this register's value.  The string should be
+     limited to alphanumeric characters and internal hyphens.  */
+  std::string group;
 
   /* The size of the register, in bits.  */
   int bitsize;
@@ -77,25 +124,50 @@ typedef struct tdesc_reg
   /* The type of the register.  This string corresponds to either
      a named type from the target description or a predefined
      type from GDB.  */
-  char *type;
+  std::string type;
 
   /* The target-described type corresponding to TYPE, if found.  */
   struct tdesc_type *tdesc_type;
-} *tdesc_reg_p;
-DEF_VEC_P(tdesc_reg_p);
+
+  void accept (tdesc_element_visitor &v) const override
+  {
+    v.visit (this);
+  }
+
+  bool operator== (const tdesc_reg &other) const
+  {
+    return (name == other.name
+	    && target_regnum == other.target_regnum
+	    && save_restore == other.save_restore
+	    && bitsize == other.bitsize
+	    && group == other.group
+	    && type == other.type);
+  }
+
+  bool operator!= (const tdesc_reg &other) const
+  {
+    return !(*this == other);
+  }
+};
+
+typedef std::unique_ptr<tdesc_reg> tdesc_reg_up;
 
 /* A named type from a target description.  */
 
-typedef struct tdesc_type_field
+struct tdesc_type_field
 {
-  char *name;
+  tdesc_type_field (const std::string &name_, tdesc_type *type_,
+		    int start_, int end_)
+  : name (name_), type (type_), start (start_), end (end_)
+  {}
+
+  std::string name;
   struct tdesc_type *type;
   /* For non-enum-values, either both are -1 (non-bitfield), or both are
      not -1 (bitfield).  For enum values, start is the value (which could be
      -1), end is -1.  */
   int start, end;
-} tdesc_type_field;
-DEF_VEC_O(tdesc_type_field);
+};
 
 enum tdesc_type_kind
 {
@@ -126,88 +198,474 @@ enum tdesc_type_kind
   TDESC_TYPE_ENUM
 };
 
-typedef struct tdesc_type
+struct tdesc_type : tdesc_element
 {
-  /* The name of this type.  If this type is a built-in type, this is
-     a pointer to a constant string.  Otherwise, it's a
-     malloc-allocated string (and thus must be freed).  */
-  const char *name;
+  tdesc_type (const std::string &name_, enum tdesc_type_kind kind_)
+    : name (name_), kind (kind_)
+  {}
+
+  virtual ~tdesc_type () = default;
+
+  DISABLE_COPY_AND_ASSIGN (tdesc_type);
+
+  /* The name of this type.   */
+  std::string name;
 
   /* Identify the kind of this type.  */
   enum tdesc_type_kind kind;
 
-  /* Kind-specific data.  */
-  union
+  bool operator== (const tdesc_type &other) const
   {
-    /* Vector type.  */
-    struct
-    {
-      struct tdesc_type *type;
-      int count;
-    } v;
+    return name == other.name && kind == other.kind;
+  }
 
-    /* Struct, union, flags, or enum type.  */
-    struct
-    {
-      VEC(tdesc_type_field) *fields;
-      int size;
-    } u;
-  } u;
-} *tdesc_type_p;
-DEF_VEC_P(tdesc_type_p);
+  bool operator!= (const tdesc_type &other) const
+  {
+    return !(*this == other);
+  }
+
+  /* Construct, if necessary, and return the GDB type implementing this
+     target type for architecture GDBARCH.  */
+
+  virtual type *make_gdb_type (struct gdbarch *gdbarch) const = 0;
+};
+
+typedef std::unique_ptr<tdesc_type> tdesc_type_up;
+
+struct tdesc_type_builtin : tdesc_type
+{
+  tdesc_type_builtin (const std::string &name, enum tdesc_type_kind kind)
+  : tdesc_type (name, kind)
+  {}
+
+  void accept (tdesc_element_visitor &v) const override
+  {
+    v.visit (this);
+  }
+
+  type *make_gdb_type (struct gdbarch *gdbarch) const override
+  {
+    switch (this->kind)
+      {
+      /* Predefined types.  */
+      case TDESC_TYPE_BOOL:
+        return builtin_type (gdbarch)->builtin_bool;
+
+      case TDESC_TYPE_INT8:
+        return builtin_type (gdbarch)->builtin_int8;
+
+      case TDESC_TYPE_INT16:
+        return builtin_type (gdbarch)->builtin_int16;
+
+      case TDESC_TYPE_INT32:
+        return builtin_type (gdbarch)->builtin_int32;
+
+      case TDESC_TYPE_INT64:
+        return builtin_type (gdbarch)->builtin_int64;
+
+      case TDESC_TYPE_INT128:
+        return builtin_type (gdbarch)->builtin_int128;
+
+      case TDESC_TYPE_UINT8:
+        return builtin_type (gdbarch)->builtin_uint8;
+
+      case TDESC_TYPE_UINT16:
+        return builtin_type (gdbarch)->builtin_uint16;
+
+      case TDESC_TYPE_UINT32:
+        return builtin_type (gdbarch)->builtin_uint32;
+
+      case TDESC_TYPE_UINT64:
+        return builtin_type (gdbarch)->builtin_uint64;
+
+      case TDESC_TYPE_UINT128:
+        return builtin_type (gdbarch)->builtin_uint128;
+
+      case TDESC_TYPE_CODE_PTR:
+        return builtin_type (gdbarch)->builtin_func_ptr;
+
+      case TDESC_TYPE_DATA_PTR:
+        return builtin_type (gdbarch)->builtin_data_ptr;
+      }
+
+    type *gdb_type = tdesc_find_type (gdbarch, this->name.c_str ());
+    if (gdb_type != NULL)
+      return gdb_type;
+
+    switch (this->kind)
+      {
+      case TDESC_TYPE_IEEE_SINGLE:
+        return arch_float_type (gdbarch, -1, "builtin_type_ieee_single",
+				floatformats_ieee_single);
+
+      case TDESC_TYPE_IEEE_DOUBLE:
+        return arch_float_type (gdbarch, -1, "builtin_type_ieee_double",
+				floatformats_ieee_double);
+
+      case TDESC_TYPE_ARM_FPA_EXT:
+        return arch_float_type (gdbarch, -1, "builtin_type_arm_ext",
+				floatformats_arm_ext);
+
+      case TDESC_TYPE_I387_EXT:
+        return arch_float_type (gdbarch, -1, "builtin_type_i387_ext",
+				floatformats_i387_ext);
+      }
+
+    internal_error (__FILE__, __LINE__,
+		    "Type \"%s\" has an unknown kind %d",
+		    this->name.c_str (), this->kind);
+
+    return NULL;
+  }
+};
+
+/* tdesc_type for vector types.  */
+
+struct tdesc_type_vector : tdesc_type
+{
+  tdesc_type_vector (const std::string &name, tdesc_type *element_type_, int count_)
+  : tdesc_type (name, TDESC_TYPE_VECTOR),
+    element_type (element_type_), count (count_)
+  {}
+
+  void accept (tdesc_element_visitor &v) const override
+  {
+    v.visit (this);
+  }
+
+  type *make_gdb_type (struct gdbarch *gdbarch) const override
+  {
+    type *vector_gdb_type = tdesc_find_type (gdbarch, this->name.c_str ());
+    if (vector_gdb_type != NULL)
+      return vector_gdb_type;
+
+    type *element_gdb_type = this->element_type->make_gdb_type (gdbarch);
+    vector_gdb_type = init_vector_type (element_gdb_type, this->count);
+    TYPE_NAME (vector_gdb_type) = xstrdup (this->name.c_str ());
+
+    return vector_gdb_type;
+  }
+
+  struct tdesc_type *element_type;
+  int count;
+};
+
+/* tdesc_type for struct, union, flags, and enum types.  */
+
+struct tdesc_type_with_fields : tdesc_type
+{
+  tdesc_type_with_fields (const std::string &name, tdesc_type_kind kind,
+			  int size_ = 0)
+  : tdesc_type (name, kind), size (size_)
+  {}
+
+  void accept (tdesc_element_visitor &v) const override
+  {
+    v.visit (this);
+  }
+
+  type *make_gdb_type_struct (struct gdbarch *gdbarch) const
+  {
+    type *struct_gdb_type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
+    TYPE_NAME (struct_gdb_type) = xstrdup (this->name.c_str ());
+    TYPE_TAG_NAME (struct_gdb_type) = TYPE_NAME (struct_gdb_type);
+
+    for (const tdesc_type_field &f : this->fields)
+      {
+	if (f.start != -1 && f.end != -1)
+	  {
+	    /* Bitfield.  */
+	    struct field *fld;
+	    struct type *field_gdb_type;
+	    int bitsize, total_size;
+
+	    /* This invariant should be preserved while creating types.  */
+	    gdb_assert (this->size != 0);
+	    if (f.type != NULL)
+	      field_gdb_type = f.type->make_gdb_type (gdbarch);
+	    else if (this->size > 4)
+	      field_gdb_type = builtin_type (gdbarch)->builtin_uint64;
+	    else
+	      field_gdb_type = builtin_type (gdbarch)->builtin_uint32;
+
+	    fld = append_composite_type_field_raw
+	      (struct_gdb_type, xstrdup (f.name.c_str ()), field_gdb_type);
+
+	    /* For little-endian, BITPOS counts from the LSB of
+	       the structure and marks the LSB of the field.  For
+	       big-endian, BITPOS counts from the MSB of the
+	       structure and marks the MSB of the field.  Either
+	       way, it is the number of bits to the "left" of the
+	       field.  To calculate this in big-endian, we need
+	       the total size of the structure.  */
+	    bitsize = f.end - f.start + 1;
+	    total_size = this->size * TARGET_CHAR_BIT;
+	    if (gdbarch_bits_big_endian (gdbarch))
+	      SET_FIELD_BITPOS (fld[0], total_size - f.start - bitsize);
+	    else
+	      SET_FIELD_BITPOS (fld[0], f.start);
+	    FIELD_BITSIZE (fld[0]) = bitsize;
+	  }
+	else
+	  {
+	    gdb_assert (f.start == -1 && f.end == -1);
+	    type *field_gdb_type = f.type->make_gdb_type (gdbarch);
+	    append_composite_type_field (struct_gdb_type,
+					 xstrdup (f.name.c_str ()),
+					 field_gdb_type);
+	  }
+      }
+
+    if (this->size != 0)
+      TYPE_LENGTH (struct_gdb_type) = this->size;
+
+    return struct_gdb_type;
+  }
+
+  type *make_gdb_type_union (struct gdbarch *gdbarch) const
+  {
+    type *union_gdb_type = arch_composite_type (gdbarch, NULL, TYPE_CODE_UNION);
+    TYPE_NAME (union_gdb_type) = xstrdup (this->name.c_str ());
+
+    for (const tdesc_type_field &f : this->fields)
+      {
+	type* field_gdb_type = f.type->make_gdb_type (gdbarch);
+	append_composite_type_field (union_gdb_type, xstrdup (f.name.c_str ()),
+				     field_gdb_type);
+
+	/* If any of the children of a union are vectors, flag the
+	   union as a vector also.  This allows e.g. a union of two
+	   vector types to show up automatically in "info vector".  */
+	if (TYPE_VECTOR (field_gdb_type))
+	  TYPE_VECTOR (union_gdb_type) = 1;
+      }
+
+    return union_gdb_type;
+  }
+
+  type *make_gdb_type_flags (struct gdbarch *gdbarch) const
+  {
+    type *flags_gdb_type = arch_flags_type (gdbarch, this->name.c_str (),
+					  this->size * TARGET_CHAR_BIT);
+
+    for (const tdesc_type_field &f : this->fields)
+      {
+      int bitsize = f.end - f.start + 1;
+
+      gdb_assert (f.type != NULL);
+      type *field_gdb_type = f.type->make_gdb_type (gdbarch);
+      append_flags_type_field (flags_gdb_type, f.start, bitsize,
+			       field_gdb_type, f.name.c_str ());
+      }
+
+    return flags_gdb_type;
+  }
+
+  type *make_gdb_type_enum (struct gdbarch *gdbarch) const
+  {
+    type *enum_gdb_type = arch_type (gdbarch, TYPE_CODE_ENUM,
+				   this->size * TARGET_CHAR_BIT,
+				   this->name.c_str ());
+
+    TYPE_UNSIGNED (enum_gdb_type) = 1;
+    for (const tdesc_type_field &f : this->fields)
+      {
+      struct field *fld
+	= append_composite_type_field_raw (enum_gdb_type,
+					   xstrdup (f.name.c_str ()),
+					   NULL);
+
+      SET_FIELD_BITPOS (fld[0], f.start);
+      }
+
+    return enum_gdb_type;
+  }
+
+  type *make_gdb_type (struct gdbarch *gdbarch) const override
+  {
+    type *gdb_type = tdesc_find_type (gdbarch, this->name.c_str ());
+    if (gdb_type != NULL)
+      return gdb_type;
+
+    switch (this->kind)
+    {
+      case TDESC_TYPE_STRUCT:
+	return make_gdb_type_struct (gdbarch);
+      case TDESC_TYPE_UNION:
+	return make_gdb_type_union (gdbarch);
+      case TDESC_TYPE_FLAGS:
+	return make_gdb_type_flags (gdbarch);
+      case TDESC_TYPE_ENUM:
+	return make_gdb_type_enum (gdbarch);
+    }
+
+    internal_error (__FILE__, __LINE__,
+		    "Type \"%s\" has an unknown kind %d",
+		    this->name.c_str (), this->kind);
+
+    return NULL;
+  }
+
+  std::vector<tdesc_type_field> fields;
+  int size;
+};
 
 /* A feature from a target description.  Each feature is a collection
    of other elements, e.g. registers and types.  */
 
-typedef struct tdesc_feature
+struct tdesc_feature : tdesc_element
 {
+  tdesc_feature (const std::string &name_)
+    : name (name_)
+  {}
+
+  virtual ~tdesc_feature () = default;
+
+  DISABLE_COPY_AND_ASSIGN (tdesc_feature);
+
   /* The name of this feature.  It may be recognized by the architecture
      support code.  */
-  char *name;
+  std::string name;
 
   /* The registers associated with this feature.  */
-  VEC(tdesc_reg_p) *registers;
+  std::vector<tdesc_reg_up> registers;
 
   /* The types associated with this feature.  */
-  VEC(tdesc_type_p) *types;
-} *tdesc_feature_p;
-DEF_VEC_P(tdesc_feature_p);
-
-/* A compatible architecture from a target description.  */
-typedef const struct bfd_arch_info *arch_p;
-DEF_VEC_P(arch_p);
+  std::vector<tdesc_type_up> types;
+
+  void accept (tdesc_element_visitor &v) const override
+  {
+    v.visit_pre (this);
+
+    for (const tdesc_type_up &type : types)
+      type->accept (v);
+
+    for (const tdesc_reg_up &reg : registers)
+      reg->accept (v);
+
+    v.visit_post (this);
+  }
+
+  bool operator== (const tdesc_feature &other) const
+  {
+    if (name != other.name)
+      return false;
+
+    if (registers.size () != other.registers.size ())
+      return false;
+
+    for (int ix = 0; ix < registers.size (); ix++)
+      {
+	const tdesc_reg_up &reg1 = registers[ix];
+	const tdesc_reg_up &reg2 = other.registers[ix];
+
+	if (reg1 != reg2 && *reg1 != *reg2)
+	  return false;
+      }
+
+    if (types.size () != other.types.size ())
+      return false;
+
+    for (int ix = 0; ix < types.size (); ix++)
+      {
+	const tdesc_type_up &type1 = types[ix];
+	const tdesc_type_up &type2 = other.types[ix];
+
+	if (type1 != type2 && *type1 != *type2)
+	  return false;
+      }
+
+    return true;
+  }
+
+  bool operator!= (const tdesc_feature &other) const
+  {
+    return !(*this == other);
+  }
+};
+
+typedef std::unique_ptr<tdesc_feature> tdesc_feature_up;
 
 /* A target description.  */
 
-struct target_desc
+struct target_desc : tdesc_element
 {
+  target_desc ()
+  {}
+
+  virtual ~target_desc () = default;
+
+  target_desc (const target_desc &) = delete;
+  void operator= (const target_desc &) = delete;
+
   /* The architecture reported by the target, if any.  */
-  const struct bfd_arch_info *arch;
+  const struct bfd_arch_info *arch = NULL;
 
   /* The osabi reported by the target, if any; GDB_OSABI_UNKNOWN
      otherwise.  */
-  enum gdb_osabi osabi;
+  enum gdb_osabi osabi = GDB_OSABI_UNKNOWN;
 
   /* The list of compatible architectures reported by the target.  */
-  VEC(arch_p) *compatible;
+  std::vector<const bfd_arch_info *> compatible;
 
   /* Any architecture-specific properties specified by the target.  */
-  VEC(property_s) *properties;
+  std::vector<property> properties;
 
   /* The features associated with this target.  */
-  VEC(tdesc_feature_p) *features;
+  std::vector<tdesc_feature_up> features;
+
+  void accept (tdesc_element_visitor &v) const override
+  {
+    v.visit_pre (this);
+
+    for (const tdesc_feature_up &feature : features)
+      feature->accept (v);
+
+    v.visit_post (this);
+  }
+
+  bool operator== (const target_desc &other) const
+  {
+    if (arch != other.arch)
+      return false;
+
+    if (osabi != other.osabi)
+      return false;
+
+    if (features.size () != other.features.size ())
+      return false;
+
+    for (int ix = 0; ix < features.size (); ix++)
+      {
+	const tdesc_feature_up &feature1 = features[ix];
+	const tdesc_feature_up &feature2 = other.features[ix];
+
+	if (feature1 != feature2 && *feature1 != *feature2)
+	  return false;
+      }
+
+    return true;
+  }
+
+  bool operator!= (const target_desc &other) const
+  {
+    return !(*this == other);
+  }
 };
 
 /* Per-architecture data associated with a target description.  The
    target description may be shared by multiple architectures, but
    this data is private to one gdbarch.  */
 
-typedef struct tdesc_arch_reg
+struct tdesc_arch_reg
 {
+  tdesc_arch_reg (tdesc_reg *reg_, struct type *type_)
+  : reg (reg_), type (type_)
+  {}
+
   struct tdesc_reg *reg;
   struct type *type;
-} tdesc_arch_reg;
-DEF_VEC_O(tdesc_arch_reg);
+};
 
 struct tdesc_arch_data
 {
@@ -217,13 +675,13 @@ struct tdesc_arch_data
      Registers which are NULL in this array, or off the end, are
      treated as zero-sized and nameless (i.e. placeholders in the
      numbering).  */
-  VEC(tdesc_arch_reg) *arch_regs;
+  std::vector<tdesc_arch_reg> arch_regs;
 
   /* Functions which report the register name, type, and reggroups for
      pseudo-registers.  */
-  gdbarch_register_name_ftype *pseudo_register_name;
-  gdbarch_register_type_ftype *pseudo_register_type;
-  gdbarch_register_reggroup_p_ftype *pseudo_register_reggroup_p;
+  gdbarch_register_name_ftype *pseudo_register_name = NULL;
+  gdbarch_register_type_ftype *pseudo_register_type = NULL;
+  gdbarch_register_reggroup_p_ftype *pseudo_register_reggroup_p = NULL;
 };
 
 /* Info about an inferior's target description.  There's one of these
@@ -364,7 +822,7 @@ target_find_description (void)
 	  data = ((struct tdesc_arch_data *)
 		  gdbarch_data (target_gdbarch (), tdesc_data));
 	  if (tdesc_has_registers (current_target_desc)
-	      && data->arch_regs == NULL)
+	      && data->arch_regs.empty ())
 	    warning (_("Target-supplied registers are not supported "
 		       "by the current architecture"));
 	}
@@ -415,11 +873,7 @@ int
 tdesc_compatible_p (const struct target_desc *target_desc,
 		    const struct bfd_arch_info *arch)
 {
-  const struct bfd_arch_info *compat;
-  int ix;
-
-  for (ix = 0; VEC_iterate (arch_p, target_desc->compatible, ix, compat);
-       ix++)
+  for (const bfd_arch_info *compat : target_desc->compatible)
     {
       if (compat == arch
 	  || arch->compatible (arch, compat)
@@ -439,13 +893,9 @@ tdesc_compatible_p (const struct target_
 const char *
 tdesc_property (const struct target_desc *target_desc, const char *key)
 {
-  struct property *prop;
-  int ix;
-
-  for (ix = 0; VEC_iterate (property_s, target_desc->properties, ix, prop);
-       ix++)
-    if (strcmp (prop->key, key) == 0)
-      return prop->value;
+  for (const property &prop : target_desc->properties)
+    if (prop.key == key)
+      return prop.value.c_str ();
 
   return NULL;
 }
@@ -475,16 +925,11 @@ tdesc_osabi (const struct target_desc *t
 int
 tdesc_has_registers (const struct target_desc *target_desc)
 {
-  int ix;
-  struct tdesc_feature *feature;
-
   if (target_desc == NULL)
     return 0;
 
-  for (ix = 0;
-       VEC_iterate (tdesc_feature_p, target_desc->features, ix, feature);
-       ix++)
-    if (! VEC_empty (tdesc_reg_p, feature->registers))
+  for (const tdesc_feature_up &feature : target_desc->features)
+    if (!feature->registers.empty ())
       return 1;
 
   return 0;
@@ -497,14 +942,9 @@ const struct tdesc_feature *
 tdesc_find_feature (const struct target_desc *target_desc,
 		    const char *name)
 {
-  int ix;
-  struct tdesc_feature *feature;
-
-  for (ix = 0;
-       VEC_iterate (tdesc_feature_p, target_desc->features, ix, feature);
-       ix++)
-    if (strcmp (feature->name, name) == 0)
-      return feature;
+  for (const tdesc_feature_up &feature : target_desc->features)
+    if (feature->name == name)
+      return feature.get ();
 
   return NULL;
 }
@@ -514,11 +954,11 @@ tdesc_find_feature (const struct target_
 const char *
 tdesc_feature_name (const struct tdesc_feature *feature)
 {
-  return feature->name;
+  return feature->name.c_str ();
 }
 
 /* Predefined types.  */
-static struct tdesc_type tdesc_predefined_types[] =
+static tdesc_type_builtin tdesc_predefined_types[] =
 {
   { "bool", TDESC_TYPE_BOOL },
   { "int8", TDESC_TYPE_INT8 },
@@ -544,33 +984,26 @@ static struct tdesc_type tdesc_predefine
 static struct tdesc_type *
 tdesc_predefined_type (enum tdesc_type_kind kind)
 {
-  int ix;
-  struct tdesc_type *type;
-
-  for (ix = 0; ix < ARRAY_SIZE (tdesc_predefined_types); ix++)
+  for (int ix = 0; ix < ARRAY_SIZE (tdesc_predefined_types); ix++)
     if (tdesc_predefined_types[ix].kind == kind)
       return &tdesc_predefined_types[ix];
 
   gdb_assert_not_reached ("bad predefined tdesc type");
 }
 
-/* Return the type associated with ID in the context of FEATURE, or
-   NULL if none.  */
+/* See arch/tdesc.h.  */
 
 struct tdesc_type *
 tdesc_named_type (const struct tdesc_feature *feature, const char *id)
 {
-  int ix;
-  struct tdesc_type *type;
-
   /* First try target-defined types.  */
-  for (ix = 0; VEC_iterate (tdesc_type_p, feature->types, ix, type); ix++)
-    if (strcmp (type->name, id) == 0)
-      return type;
+  for (const tdesc_type_up &type : feature->types)
+    if (type->name == id)
+      return type.get ();
 
   /* Next try the predefined types.  */
-  for (ix = 0; ix < ARRAY_SIZE (tdesc_predefined_types); ix++)
-    if (strcmp (tdesc_predefined_types[ix].name, id) == 0)
+  for (int ix = 0; ix < ARRAY_SIZE (tdesc_predefined_types); ix++)
+    if (tdesc_predefined_types[ix].name == id)
       return &tdesc_predefined_types[ix];
 
   return NULL;
@@ -581,252 +1014,21 @@ tdesc_named_type (const struct tdesc_fea
 struct type *
 tdesc_find_type (struct gdbarch *gdbarch, const char *id)
 {
-  struct tdesc_arch_reg *reg;
-  struct tdesc_arch_data *data;
-  int i, num_regs;
+  tdesc_arch_data *data
+    = (struct tdesc_arch_data *) gdbarch_data (gdbarch, tdesc_data);
 
-  data = (struct tdesc_arch_data *) gdbarch_data (gdbarch, tdesc_data);
-  num_regs = VEC_length (tdesc_arch_reg, data->arch_regs);
-  for (i = 0; i < num_regs; i++)
+  for (const tdesc_arch_reg &reg : data->arch_regs)
     {
-      reg = VEC_index (tdesc_arch_reg, data->arch_regs, i);
-      if (reg->reg
-	  && reg->reg->tdesc_type
-	  && reg->type
-	  && strcmp (id, reg->reg->tdesc_type->name) == 0)
-	return reg->type;
+      if (reg.reg
+	  && reg.reg->tdesc_type
+	  && reg.type
+	  && reg.reg->tdesc_type->name == id)
+	return reg.type;
     }
 
   return NULL;
 }
 
-/* Construct, if necessary, and return the GDB type implementing target
-   type TDESC_TYPE for architecture GDBARCH.  */
-
-static struct type *
-tdesc_gdb_type (struct gdbarch *gdbarch, struct tdesc_type *tdesc_type)
-{
-  struct type *type;
-
-  switch (tdesc_type->kind)
-    {
-    /* Predefined types.  */
-    case TDESC_TYPE_BOOL:
-      return builtin_type (gdbarch)->builtin_bool;
-
-    case TDESC_TYPE_INT8:
-      return builtin_type (gdbarch)->builtin_int8;
-
-    case TDESC_TYPE_INT16:
-      return builtin_type (gdbarch)->builtin_int16;
-
-    case TDESC_TYPE_INT32:
-      return builtin_type (gdbarch)->builtin_int32;
-
-    case TDESC_TYPE_INT64:
-      return builtin_type (gdbarch)->builtin_int64;
-
-    case TDESC_TYPE_INT128:
-      return builtin_type (gdbarch)->builtin_int128;
-
-    case TDESC_TYPE_UINT8:
-      return builtin_type (gdbarch)->builtin_uint8;
-
-    case TDESC_TYPE_UINT16:
-      return builtin_type (gdbarch)->builtin_uint16;
-
-    case TDESC_TYPE_UINT32:
-      return builtin_type (gdbarch)->builtin_uint32;
-
-    case TDESC_TYPE_UINT64:
-      return builtin_type (gdbarch)->builtin_uint64;
-
-    case TDESC_TYPE_UINT128:
-      return builtin_type (gdbarch)->builtin_uint128;
-
-    case TDESC_TYPE_CODE_PTR:
-      return builtin_type (gdbarch)->builtin_func_ptr;
-
-    case TDESC_TYPE_DATA_PTR:
-      return builtin_type (gdbarch)->builtin_data_ptr;
-
-    default:
-      break;
-    }
-
-  type = tdesc_find_type (gdbarch, tdesc_type->name);
-  if (type)
-    return type;
-
-  switch (tdesc_type->kind)
-    {
-    case TDESC_TYPE_IEEE_SINGLE:
-      return arch_float_type (gdbarch, -1, "builtin_type_ieee_single",
-			      floatformats_ieee_single);
-
-    case TDESC_TYPE_IEEE_DOUBLE:
-      return arch_float_type (gdbarch, -1, "builtin_type_ieee_double",
-			      floatformats_ieee_double);
-
-    case TDESC_TYPE_ARM_FPA_EXT:
-      return arch_float_type (gdbarch, -1, "builtin_type_arm_ext",
-			      floatformats_arm_ext);
-
-    case TDESC_TYPE_I387_EXT:
-      return arch_float_type (gdbarch, -1, "builtin_type_i387_ext",
-			      floatformats_i387_ext);
-
-    /* Types defined by a target feature.  */
-    case TDESC_TYPE_VECTOR:
-      {
-	struct type *type, *field_type;
-
-	field_type = tdesc_gdb_type (gdbarch, tdesc_type->u.v.type);
-	type = init_vector_type (field_type, tdesc_type->u.v.count);
-	TYPE_NAME (type) = xstrdup (tdesc_type->name);
-
-	return type;
-      }
-
-    case TDESC_TYPE_STRUCT:
-      {
-	struct type *type, *field_type;
-	struct tdesc_type_field *f;
-	int ix;
-
-	type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
-	TYPE_NAME (type) = xstrdup (tdesc_type->name);
-	TYPE_TAG_NAME (type) = TYPE_NAME (type);
-
-	for (ix = 0;
-	     VEC_iterate (tdesc_type_field, tdesc_type->u.u.fields, ix, f);
-	     ix++)
-	  {
-	    if (f->start != -1 && f->end != -1)
-	      {
-		/* Bitfield.  */
-		struct field *fld;
-		struct type *field_type;
-		int bitsize, total_size;
-
-		/* This invariant should be preserved while creating types.  */
-		gdb_assert (tdesc_type->u.u.size != 0);
-		if (f->type != NULL)
-		  field_type = tdesc_gdb_type (gdbarch, f->type);
-		else if (tdesc_type->u.u.size > 4)
-		  field_type = builtin_type (gdbarch)->builtin_uint64;
-		else
-		  field_type = builtin_type (gdbarch)->builtin_uint32;
-
-		fld = append_composite_type_field_raw (type, xstrdup (f->name),
-						       field_type);
-
-		/* For little-endian, BITPOS counts from the LSB of
-		   the structure and marks the LSB of the field.  For
-		   big-endian, BITPOS counts from the MSB of the
-		   structure and marks the MSB of the field.  Either
-		   way, it is the number of bits to the "left" of the
-		   field.  To calculate this in big-endian, we need
-		   the total size of the structure.  */
-		bitsize = f->end - f->start + 1;
-		total_size = tdesc_type->u.u.size * TARGET_CHAR_BIT;
-		if (gdbarch_bits_big_endian (gdbarch))
-		  SET_FIELD_BITPOS (fld[0], total_size - f->start - bitsize);
-		else
-		  SET_FIELD_BITPOS (fld[0], f->start);
-		FIELD_BITSIZE (fld[0]) = bitsize;
-	      }
-	    else
-	      {
-		gdb_assert (f->start == -1 && f->end == -1);
-		field_type = tdesc_gdb_type (gdbarch, f->type);
-		append_composite_type_field (type, xstrdup (f->name),
-					     field_type);
-	      }
-	  }
-
-	if (tdesc_type->u.u.size != 0)
-	  TYPE_LENGTH (type) = tdesc_type->u.u.size;
-	return type;
-      }
-
-    case TDESC_TYPE_UNION:
-      {
-	struct type *type, *field_type;
-	struct tdesc_type_field *f;
-	int ix;
-
-	type = arch_composite_type (gdbarch, NULL, TYPE_CODE_UNION);
-	TYPE_NAME (type) = xstrdup (tdesc_type->name);
-
-	for (ix = 0;
-	     VEC_iterate (tdesc_type_field, tdesc_type->u.u.fields, ix, f);
-	     ix++)
-	  {
-	    field_type = tdesc_gdb_type (gdbarch, f->type);
-	    append_composite_type_field (type, xstrdup (f->name), field_type);
-
-	    /* If any of the children of a union are vectors, flag the
-	       union as a vector also.  This allows e.g. a union of two
-	       vector types to show up automatically in "info vector".  */
-	    if (TYPE_VECTOR (field_type))
-	      TYPE_VECTOR (type) = 1;
-	  }
-	return type;
-      }
-
-    case TDESC_TYPE_FLAGS:
-      {
-	struct tdesc_type_field *f;
-	int ix;
-
-	type = arch_flags_type (gdbarch, tdesc_type->name,
-				tdesc_type->u.u.size);
-	for (ix = 0;
-	     VEC_iterate (tdesc_type_field, tdesc_type->u.u.fields, ix, f);
-	     ix++)
-	  {
-	    struct type *field_type;
-	    int bitsize = f->end - f->start + 1;
-
-	    gdb_assert (f->type != NULL);
-	    field_type = tdesc_gdb_type (gdbarch, f->type);
-	    append_flags_type_field (type, f->start, bitsize,
-				     field_type, f->name);
-	  }
-
-	return type;
-      }
-
-    case TDESC_TYPE_ENUM:
-      {
-	struct tdesc_type_field *f;
-	int ix;
-
-	type = arch_type (gdbarch, TYPE_CODE_ENUM,
-			  tdesc_type->u.u.size, tdesc_type->name);
-	TYPE_UNSIGNED (type) = 1;
-	for (ix = 0;
-	     VEC_iterate (tdesc_type_field, tdesc_type->u.u.fields, ix, f);
-	     ix++)
-	  {
-	    struct field *fld
-	      = append_composite_type_field_raw (type, xstrdup (f->name),
-						 NULL);
-
-	    SET_FIELD_BITPOS (fld[0], f->start);
-	  }
-
-	return type;
-      }
-    }
-
-  internal_error (__FILE__, __LINE__,
-		  "Type \"%s\" has an unknown kind %d",
-		  tdesc_type->name, tdesc_type->kind);
-}
-
-
 /* Support for registers from target descriptions.  */
 
 /* Construct the per-gdbarch data.  */
@@ -837,6 +1039,8 @@ tdesc_data_init (struct obstack *obstack
   struct tdesc_arch_data *data;
 
   data = OBSTACK_ZALLOC (obstack, struct tdesc_arch_data);
+  new (data) tdesc_arch_data ();
+
   return data;
 }
 
@@ -846,7 +1050,7 @@ tdesc_data_init (struct obstack *obstack
 struct tdesc_arch_data *
 tdesc_data_alloc (void)
 {
-  return XCNEW (struct tdesc_arch_data);
+  return new tdesc_arch_data ();
 }
 
 /* Free something allocated by tdesc_data_alloc, if it is not going
@@ -858,8 +1062,7 @@ tdesc_data_cleanup (void *data_untyped)
 {
   struct tdesc_arch_data *data = (struct tdesc_arch_data *) data_untyped;
 
-  VEC_free (tdesc_arch_reg, data->arch_regs);
-  xfree (data);
+  delete data;
 }
 
 /* Search FEATURE for a register named NAME.  */
@@ -868,14 +1071,9 @@ static struct tdesc_reg *
 tdesc_find_register_early (const struct tdesc_feature *feature,
 			   const char *name)
 {
-  int ixr;
-  struct tdesc_reg *reg;
-
-  for (ixr = 0;
-       VEC_iterate (tdesc_reg_p, feature->registers, ixr, reg);
-       ixr++)
-    if (strcasecmp (reg->name, name) == 0)
-      return reg;
+  for (const tdesc_reg_up &reg : feature->registers)
+    if (strcasecmp (reg->name.c_str (), name) == 0)
+      return reg.get ();
 
   return NULL;
 }
@@ -887,18 +1085,17 @@ tdesc_numbered_register (const struct td
 			 struct tdesc_arch_data *data,
 			 int regno, const char *name)
 {
-  struct tdesc_arch_reg arch_reg = { 0 };
   struct tdesc_reg *reg = tdesc_find_register_early (feature, name);
 
   if (reg == NULL)
     return 0;
 
   /* Make sure the vector includes a REGNO'th element.  */
-  while (regno >= VEC_length (tdesc_arch_reg, data->arch_regs))
-    VEC_safe_push (tdesc_arch_reg, data->arch_regs, &arch_reg);
+  while (regno >= data->arch_regs.size ())
+    data->arch_regs.emplace_back (nullptr, nullptr);
+
+  data->arch_regs[regno] = tdesc_arch_reg (reg, NULL);
 
-  arch_reg.reg = reg;
-  VEC_replace (tdesc_arch_reg, data->arch_regs, regno, &arch_reg);
   return 1;
 }
 
@@ -955,8 +1152,8 @@ tdesc_find_arch_register (struct gdbarch
   struct tdesc_arch_data *data;
 
   data = (struct tdesc_arch_data *) gdbarch_data (gdbarch, tdesc_data);
-  if (regno < VEC_length (tdesc_arch_reg, data->arch_regs))
-    return VEC_index (tdesc_arch_reg, data->arch_regs, regno);
+  if (regno < data->arch_regs.size ())
+    return &data->arch_regs[regno];
   else
     return NULL;
 }
@@ -980,7 +1177,7 @@ tdesc_register_name (struct gdbarch *gdb
   int num_pseudo_regs = gdbarch_num_pseudo_regs (gdbarch);
 
   if (reg != NULL)
-    return reg->name;
+    return reg->name.c_str ();
 
   if (regno >= num_regs && regno < num_regs + num_pseudo_regs)
     {
@@ -1019,10 +1216,10 @@ tdesc_register_type (struct gdbarch *gdb
     {
       /* First check for a predefined or target defined type.  */
       if (reg->tdesc_type)
-        arch_reg->type = tdesc_gdb_type (gdbarch, reg->tdesc_type);
+        arch_reg->type = reg->tdesc_type->make_gdb_type (gdbarch);
 
       /* Next try size-sensitive type shortcuts.  */
-      else if (strcmp (reg->type, "float") == 0)
+      else if (reg->type == "float")
 	{
 	  if (reg->bitsize == gdbarch_float_bit (gdbarch))
 	    arch_reg->type = builtin_type (gdbarch)->builtin_float;
@@ -1033,11 +1230,11 @@ tdesc_register_type (struct gdbarch *gdb
 	  else
 	    {
 	      warning (_("Register \"%s\" has an unsupported size (%d bits)"),
-		       reg->name, reg->bitsize);
+		       reg->name.c_str (), reg->bitsize);
 	      arch_reg->type = builtin_type (gdbarch)->builtin_double;
 	    }
 	}
-      else if (strcmp (reg->type, "int") == 0)
+      else if (reg->type == "int")
 	{
 	  if (reg->bitsize == gdbarch_long_bit (gdbarch))
 	    arch_reg->type = builtin_type (gdbarch)->builtin_long;
@@ -1055,7 +1252,7 @@ tdesc_register_type (struct gdbarch *gdb
 	  else
 	    {
 	      warning (_("Register \"%s\" has an unsupported size (%d bits)"),
-		       reg->name, reg->bitsize);
+		       reg->name.c_str (), reg->bitsize);
 	      arch_reg->type = builtin_type (gdbarch)->builtin_long;
 	    }
 	}
@@ -1063,7 +1260,7 @@ tdesc_register_type (struct gdbarch *gdb
       if (arch_reg->type == NULL)
 	internal_error (__FILE__, __LINE__,
 			"Register \"%s\" has an unknown type \"%s\"",
-			reg->name, reg->type);
+			reg->name.c_str (), reg->type.c_str ());
     }
 
   return arch_reg->type;
@@ -1081,17 +1278,13 @@ tdesc_remote_register_number (struct gdb
 }
 
 /* Check whether REGNUM is a member of REGGROUP.  Registers from the
-   target description may be classified as general, float, or vector.
-   Unlike a gdbarch register_reggroup_p method, this function will
-   return -1 if it does not know; the caller should handle registers
-   with no specified group.
-
-   Arbitrary strings (other than "general", "float", and "vector")
-   from the description are not used; they cause the register to be
-   displayed in "info all-registers" but excluded from "info
-   registers" et al.  The names of containing features are also not
-   used.  This might be extended to display registers in some more
-   useful groupings.
+   target description may be classified as general, float, vector or other
+   register groups registered with reggroup_add().  Unlike a gdbarch
+   register_reggroup_p method, this function will return -1 if it does not
+   know; the caller should handle registers with no specified group.
+
+   The names of containing features are not used.  This might be extended
+   to display registers in some more useful groupings.
 
    The save-restore flag is also implemented here.  */
 
@@ -1101,26 +1294,9 @@ tdesc_register_in_reggroup_p (struct gdb
 {
   struct tdesc_reg *reg = tdesc_find_register (gdbarch, regno);
 
-  if (reg != NULL && reg->group != NULL)
-    {
-      int general_p = 0, float_p = 0, vector_p = 0;
-
-      if (strcmp (reg->group, "general") == 0)
-	general_p = 1;
-      else if (strcmp (reg->group, "float") == 0)
-	float_p = 1;
-      else if (strcmp (reg->group, "vector") == 0)
-	vector_p = 1;
-
-      if (reggroup == float_reggroup)
-	return float_p;
-
-      if (reggroup == vector_reggroup)
-	return vector_p;
-
-      if (reggroup == general_reggroup)
-	return general_p;
-    }
+  if (reg != NULL && !reg->group.empty ()
+      && (reg->group == reggroup_name (reggroup)))
+	return 1;
 
   if (reg != NULL
       && (reggroup == save_reggroup || reggroup == restore_reggroup))
@@ -1200,11 +1376,7 @@ tdesc_use_registers (struct gdbarch *gdb
 		     struct tdesc_arch_data *early_data)
 {
   int num_regs = gdbarch_num_regs (gdbarch);
-  int ixf, ixr;
-  struct tdesc_feature *feature;
-  struct tdesc_reg *reg;
   struct tdesc_arch_data *data;
-  struct tdesc_arch_reg *arch_reg, new_arch_reg = { 0 };
   htab_t reg_hash;
 
   /* We can't use the description for registers if it doesn't describe
@@ -1215,50 +1387,46 @@ tdesc_use_registers (struct gdbarch *gdb
 
   data = (struct tdesc_arch_data *) gdbarch_data (gdbarch, tdesc_data);
   data->arch_regs = early_data->arch_regs;
-  xfree (early_data);
+  delete early_data;
 
   /* Build up a set of all registers, so that we can assign register
      numbers where needed.  The hash table expands as necessary, so
      the initial size is arbitrary.  */
   reg_hash = htab_create (37, htab_hash_pointer, htab_eq_pointer, NULL);
-  for (ixf = 0;
-       VEC_iterate (tdesc_feature_p, target_desc->features, ixf, feature);
-       ixf++)
-    for (ixr = 0;
-	 VEC_iterate (tdesc_reg_p, feature->registers, ixr, reg);
-	 ixr++)
+  for (const tdesc_feature_up &feature : target_desc->features)
+    for (const tdesc_reg_up &reg : feature->registers)
       {
-	void **slot = htab_find_slot (reg_hash, reg, INSERT);
+	void **slot = htab_find_slot (reg_hash, reg.get (), INSERT);
 
-	*slot = reg;
+	*slot = reg.get ();
+	/* Add reggroup if its new.  */
+	if (!reg->group.empty ())
+	  if (reggroup_find (gdbarch, reg->group.c_str ()) == NULL)
+	    reggroup_add (gdbarch, reggroup_gdbarch_new (gdbarch,
+							 reg->group.c_str (),
+							 USER_REGGROUP));
       }
 
   /* Remove any registers which were assigned numbers by the
      architecture.  */
-  for (ixr = 0;
-       VEC_iterate (tdesc_arch_reg, data->arch_regs, ixr, arch_reg);
-       ixr++)
-    if (arch_reg->reg)
-      htab_remove_elt (reg_hash, arch_reg->reg);
+  for (const tdesc_arch_reg &arch_reg : data->arch_regs)
+    if (arch_reg.reg != NULL)
+      htab_remove_elt (reg_hash, arch_reg.reg);
 
   /* Assign numbers to the remaining registers and add them to the
      list of registers.  The new numbers are always above gdbarch_num_regs.
      Iterate over the features, not the hash table, so that the order
      matches that in the target description.  */
 
-  gdb_assert (VEC_length (tdesc_arch_reg, data->arch_regs) <= num_regs);
-  while (VEC_length (tdesc_arch_reg, data->arch_regs) < num_regs)
-    VEC_safe_push (tdesc_arch_reg, data->arch_regs, &new_arch_reg);
-  for (ixf = 0;
-       VEC_iterate (tdesc_feature_p, target_desc->features, ixf, feature);
-       ixf++)
-    for (ixr = 0;
-	 VEC_iterate (tdesc_reg_p, feature->registers, ixr, reg);
-	 ixr++)
-      if (htab_find (reg_hash, reg) != NULL)
+  gdb_assert (data->arch_regs.size () <= num_regs);
+  while (data->arch_regs.size () < num_regs)
+    data->arch_regs.emplace_back (nullptr, nullptr);
+
+  for (const tdesc_feature_up &feature : target_desc->features)
+    for (const tdesc_reg_up &reg : feature->registers)
+      if (htab_find (reg_hash, reg.get ()) != NULL)
 	{
-	  new_arch_reg.reg = reg;
-	  VEC_safe_push (tdesc_arch_reg, data->arch_regs, &new_arch_reg);
+	  data->arch_regs.emplace_back (reg.get (), nullptr);
 	  num_regs++;
 	}
 
@@ -1274,210 +1442,129 @@ tdesc_use_registers (struct gdbarch *gdb
 }
 
 
-/* Methods for constructing a target description.  */
-
-static void
-tdesc_free_reg (struct tdesc_reg *reg)
-{
-  xfree (reg->name);
-  xfree (reg->type);
-  xfree (reg->group);
-  xfree (reg);
-}
+/* See arch/tdesc.h.  */
 
 void
 tdesc_create_reg (struct tdesc_feature *feature, const char *name,
 		  int regnum, int save_restore, const char *group,
 		  int bitsize, const char *type)
 {
-  struct tdesc_reg *reg = XCNEW (struct tdesc_reg);
-
-  reg->name = xstrdup (name);
-  reg->target_regnum = regnum;
-  reg->save_restore = save_restore;
-  reg->group = group ? xstrdup (group) : NULL;
-  reg->bitsize = bitsize;
-  reg->type = type ? xstrdup (type) : xstrdup ("<unknown>");
-
-  /* If the register's type is target-defined, look it up now.  We may not
-     have easy access to the containing feature when we want it later.  */
-  reg->tdesc_type = tdesc_named_type (feature, reg->type);
-
-  VEC_safe_push (tdesc_reg_p, feature->registers, reg);
-}
-
-/* Subroutine of tdesc_free_feature to simplify it.
-   Note: We do not want to free any referenced types here (e.g., types of
-   fields of a struct).  All types of a feature are recorded in
-   feature->types and are freed that way.  */
-
-static void
-tdesc_free_type (struct tdesc_type *type)
-{
-  switch (type->kind)
-    {
-    case TDESC_TYPE_STRUCT:
-    case TDESC_TYPE_UNION:
-    case TDESC_TYPE_FLAGS:
-    case TDESC_TYPE_ENUM:
-      {
-	struct tdesc_type_field *f;
-	int ix;
-
-	for (ix = 0;
-	     VEC_iterate (tdesc_type_field, type->u.u.fields, ix, f);
-	     ix++)
-	  xfree (f->name);
-
-	VEC_free (tdesc_type_field, type->u.u.fields);
-      }
-      break;
+  tdesc_reg *reg = new tdesc_reg (feature, name, regnum, save_restore,
+				  group, bitsize, type);
 
-    default:
-      break;
-    }
-
-  xfree ((char *) type->name);
-  xfree (type);
+  feature->registers.emplace_back (reg);
 }
 
+/* See arch/tdesc.h.  */
+
 struct tdesc_type *
 tdesc_create_vector (struct tdesc_feature *feature, const char *name,
 		     struct tdesc_type *field_type, int count)
 {
-  struct tdesc_type *type = XCNEW (struct tdesc_type);
-
-  type->name = xstrdup (name);
-  type->kind = TDESC_TYPE_VECTOR;
-  type->u.v.type = field_type;
-  type->u.v.count = count;
+  tdesc_type_vector *type = new tdesc_type_vector (name, field_type, count);
+  feature->types.emplace_back (type);
 
-  VEC_safe_push (tdesc_type_p, feature->types, type);
   return type;
 }
 
-struct tdesc_type *
+/* See arch/tdesc.h.  */
+
+tdesc_type_with_fields *
 tdesc_create_struct (struct tdesc_feature *feature, const char *name)
 {
-  struct tdesc_type *type = XCNEW (struct tdesc_type);
+  tdesc_type_with_fields *type
+    = new tdesc_type_with_fields (name, TDESC_TYPE_STRUCT);
+  feature->types.emplace_back (type);
 
-  type->name = xstrdup (name);
-  type->kind = TDESC_TYPE_STRUCT;
-
-  VEC_safe_push (tdesc_type_p, feature->types, type);
   return type;
 }
 
-/* Set the total length of TYPE.  Structs which contain bitfields may
-   omit the reserved bits, so the end of the last field may not
-   suffice.  */
+/* See arch/tdesc.h.  */
 
 void
-tdesc_set_struct_size (struct tdesc_type *type, int size)
+tdesc_set_struct_size (tdesc_type_with_fields *type, int size)
 {
   gdb_assert (type->kind == TDESC_TYPE_STRUCT);
   gdb_assert (size > 0);
-  type->u.u.size = size;
+  type->size = size;
 }
 
-struct tdesc_type *
+/* See arch/tdesc.h.  */
+
+tdesc_type_with_fields *
 tdesc_create_union (struct tdesc_feature *feature, const char *name)
 {
-  struct tdesc_type *type = XCNEW (struct tdesc_type);
-
-  type->name = xstrdup (name);
-  type->kind = TDESC_TYPE_UNION;
+  tdesc_type_with_fields *type
+    = new tdesc_type_with_fields (name, TDESC_TYPE_UNION);
+  feature->types.emplace_back (type);
 
-  VEC_safe_push (tdesc_type_p, feature->types, type);
   return type;
 }
 
-struct tdesc_type *
+/* See arch/tdesc.h.  */
+
+tdesc_type_with_fields *
 tdesc_create_flags (struct tdesc_feature *feature, const char *name,
 		    int size)
 {
-  struct tdesc_type *type = XCNEW (struct tdesc_type);
-
   gdb_assert (size > 0);
 
-  type->name = xstrdup (name);
-  type->kind = TDESC_TYPE_FLAGS;
-  type->u.u.size = size;
+  tdesc_type_with_fields *type
+    = new tdesc_type_with_fields (name, TDESC_TYPE_FLAGS, size);
+  feature->types.emplace_back (type);
 
-  VEC_safe_push (tdesc_type_p, feature->types, type);
   return type;
 }
 
-struct tdesc_type *
+tdesc_type_with_fields *
 tdesc_create_enum (struct tdesc_feature *feature, const char *name,
 		   int size)
 {
-  struct tdesc_type *type = XCNEW (struct tdesc_type);
-
   gdb_assert (size > 0);
 
-  type->name = xstrdup (name);
-  type->kind = TDESC_TYPE_ENUM;
-  type->u.u.size = size;
+  tdesc_type_with_fields *type
+    = new tdesc_type_with_fields (name, TDESC_TYPE_ENUM, size);
+  feature->types.emplace_back (type);
 
-  VEC_safe_push (tdesc_type_p, feature->types, type);
   return type;
 }
 
-/* Add a new field to TYPE.  */
+/* See arch/tdesc.h.  */
 
 void
-tdesc_add_field (struct tdesc_type *type, const char *field_name,
+tdesc_add_field (tdesc_type_with_fields *type, const char *field_name,
 		 struct tdesc_type *field_type)
 {
-  struct tdesc_type_field f = { 0 };
-
   gdb_assert (type->kind == TDESC_TYPE_UNION
 	      || type->kind == TDESC_TYPE_STRUCT);
 
-  f.name = xstrdup (field_name);
-  f.type = field_type;
-  /* Initialize these values so we know this is not a bit-field
+  /* Initialize start and end so we know this is not a bit-field
      when we print-c-tdesc.  */
-  f.start = -1;
-  f.end = -1;
-
-  VEC_safe_push (tdesc_type_field, type->u.u.fields, &f);
+  type->fields.emplace_back (field_name, field_type, -1, -1);
 }
 
-/* Add a new typed bitfield to TYPE.  */
-
 void
-tdesc_add_typed_bitfield (struct tdesc_type *type, const char *field_name,
+tdesc_add_typed_bitfield (tdesc_type_with_fields *type, const char *field_name,
 			  int start, int end, struct tdesc_type *field_type)
 {
-  struct tdesc_type_field f = { 0 };
-
   gdb_assert (type->kind == TDESC_TYPE_STRUCT
 	      || type->kind == TDESC_TYPE_FLAGS);
   gdb_assert (start >= 0 && end >= start);
 
-  f.name = xstrdup (field_name);
-  f.start = start;
-  f.end = end;
-  f.type = field_type;
-
-  VEC_safe_push (tdesc_type_field, type->u.u.fields, &f);
+  type->fields.emplace_back (field_name, field_type, start, end);
 }
 
-/* Add a new untyped bitfield to TYPE.
-   Untyped bitfields become either uint32 or uint64 depending on the size
-   of the underlying type.  */
+/* See arch/tdesc.h.  */
 
 void
-tdesc_add_bitfield (struct tdesc_type *type, const char *field_name,
+tdesc_add_bitfield (tdesc_type_with_fields *type, const char *field_name,
 		    int start, int end)
 {
   struct tdesc_type *field_type;
 
   gdb_assert (start >= 0 && end >= start);
 
-  if (type->u.u.size > 4)
+  if (type->size > 4)
     field_type = tdesc_predefined_type (TDESC_TYPE_UINT64);
   else
     field_type = tdesc_predefined_type (TDESC_TYPE_UINT32);
@@ -1485,104 +1572,55 @@ tdesc_add_bitfield (struct tdesc_type *t
   tdesc_add_typed_bitfield (type, field_name, start, end, field_type);
 }
 
-/* A flag is just a typed(bool) single-bit bitfield.
-   This function is kept to minimize changes in generated files.  */
+/* See arch/tdesc.h.  */
 
 void
-tdesc_add_flag (struct tdesc_type *type, int start,
+tdesc_add_flag (tdesc_type_with_fields *type, int start,
 		const char *flag_name)
 {
-  struct tdesc_type_field f = { 0 };
-
   gdb_assert (type->kind == TDESC_TYPE_FLAGS
 	      || type->kind == TDESC_TYPE_STRUCT);
 
-  f.name = xstrdup (flag_name);
-  f.start = start;
-  f.end = start;
-  f.type = tdesc_predefined_type (TDESC_TYPE_BOOL);
-
-  VEC_safe_push (tdesc_type_field, type->u.u.fields, &f);
+  type->fields.emplace_back (flag_name,
+			     tdesc_predefined_type (TDESC_TYPE_BOOL),
+			     start, start);
 }
 
 void
-tdesc_add_enum_value (struct tdesc_type *type, int value,
+tdesc_add_enum_value (tdesc_type_with_fields *type, int value,
 		      const char *name)
 {
-  struct tdesc_type_field f = { 0 };
-
   gdb_assert (type->kind == TDESC_TYPE_ENUM);
-
-  f.name = xstrdup (name);
-  f.start = value;
-  f.end = -1;
-  f.type = tdesc_predefined_type (TDESC_TYPE_INT32);
-
-  VEC_safe_push (tdesc_type_field, type->u.u.fields, &f);
+  type->fields.emplace_back (name,
+			     tdesc_predefined_type (TDESC_TYPE_INT32),
+			     value, -1);
 }
 
-static void
-tdesc_free_feature (struct tdesc_feature *feature)
-{
-  struct tdesc_reg *reg;
-  struct tdesc_type *type;
-  int ix;
-
-  for (ix = 0; VEC_iterate (tdesc_reg_p, feature->registers, ix, reg); ix++)
-    tdesc_free_reg (reg);
-  VEC_free (tdesc_reg_p, feature->registers);
-
-  for (ix = 0; VEC_iterate (tdesc_type_p, feature->types, ix, type); ix++)
-    tdesc_free_type (type);
-  VEC_free (tdesc_type_p, feature->types);
-
-  xfree (feature->name);
-  xfree (feature);
-}
+/* See arch/tdesc.h.  */
 
 struct tdesc_feature *
-tdesc_create_feature (struct target_desc *tdesc, const char *name)
+tdesc_create_feature (struct target_desc *tdesc, const char *name,
+		      const char *xml)
 {
-  struct tdesc_feature *new_feature = XCNEW (struct tdesc_feature);
+  struct tdesc_feature *new_feature = new tdesc_feature (name);
 
-  new_feature->name = xstrdup (name);
+  tdesc->features.emplace_back (new_feature);
 
-  VEC_safe_push (tdesc_feature_p, tdesc->features, new_feature);
   return new_feature;
 }
 
 struct target_desc *
 allocate_target_description (void)
 {
-  return XCNEW (struct target_desc);
+  return new target_desc ();
 }
 
 static void
 free_target_description (void *arg)
 {
   struct target_desc *target_desc = (struct target_desc *) arg;
-  struct tdesc_feature *feature;
-  struct property *prop;
-  int ix;
-
-  for (ix = 0;
-       VEC_iterate (tdesc_feature_p, target_desc->features, ix, feature);
-       ix++)
-    tdesc_free_feature (feature);
-  VEC_free (tdesc_feature_p, target_desc->features);
-
-  for (ix = 0;
-       VEC_iterate (property_s, target_desc->properties, ix, prop);
-       ix++)
-    {
-      xfree (prop->key);
-      xfree (prop->value);
-    }
-  VEC_free (property_s, target_desc->properties);
 
-  VEC_free (arch_p, target_desc->compatible);
-
-  xfree (target_desc);
+  delete target_desc;
 }
 
 struct cleanup *
@@ -1595,44 +1633,42 @@ void
 tdesc_add_compatible (struct target_desc *target_desc,
 		      const struct bfd_arch_info *compatible)
 {
-  const struct bfd_arch_info *compat;
-  int ix;
-
   /* If this instance of GDB is compiled without BFD support for the
      compatible architecture, simply ignore it -- we would not be able
      to handle it anyway.  */
   if (compatible == NULL)
     return;
 
-  for (ix = 0; VEC_iterate (arch_p, target_desc->compatible, ix, compat);
-       ix++)
+  for (const bfd_arch_info *compat : target_desc->compatible)
     if (compat == compatible)
       internal_error (__FILE__, __LINE__,
 		      _("Attempted to add duplicate "
 			"compatible architecture \"%s\""),
 		      compatible->printable_name);
 
-  VEC_safe_push (arch_p, target_desc->compatible, compatible);
+  target_desc->compatible.push_back (compatible);
 }
 
 void
 set_tdesc_property (struct target_desc *target_desc,
 		    const char *key, const char *value)
 {
-  struct property *prop, new_prop;
-  int ix;
-
   gdb_assert (key != NULL && value != NULL);
 
-  for (ix = 0; VEC_iterate (property_s, target_desc->properties, ix, prop);
-       ix++)
-    if (strcmp (prop->key, key) == 0)
-      internal_error (__FILE__, __LINE__,
-		      _("Attempted to add duplicate property \"%s\""), key);
+  if (tdesc_property (target_desc, key) != NULL)
+    internal_error (__FILE__, __LINE__,
+		    _("Attempted to add duplicate property \"%s\""), key);
+
+  target_desc->properties.emplace_back (key, value);
+}
+
+/* See arch/tdesc.h.  */
 
-  new_prop.key = xstrdup (key);
-  new_prop.value = xstrdup (value);
-  VEC_safe_push (property_s, target_desc->properties, &new_prop);
+void
+set_tdesc_architecture (struct target_desc *target_desc,
+			const char *name)
+{
+  set_tdesc_architecture (target_desc, bfd_scan_arch (name));
 }
 
 void
@@ -1642,6 +1678,14 @@ set_tdesc_architecture (struct target_de
   target_desc->arch = arch;
 }
 
+/* See arch/tdesc.h.  */
+
+void
+set_tdesc_osabi (struct target_desc *target_desc, const char *name)
+{
+  set_tdesc_osabi (target_desc, osabi_from_tdesc_string (name));
+}
+
 void
 set_tdesc_osabi (struct target_desc *target_desc, enum gdb_osabi osabi)
 {
@@ -1655,25 +1699,25 @@ static struct cmd_list_element *tdesc_un
 /* Helper functions for the CLI commands.  */
 
 static void
-set_tdesc_cmd (char *args, int from_tty)
+set_tdesc_cmd (const char *args, int from_tty)
 {
   help_list (tdesc_set_cmdlist, "set tdesc ", all_commands, gdb_stdout);
 }
 
 static void
-show_tdesc_cmd (char *args, int from_tty)
+show_tdesc_cmd (const char *args, int from_tty)
 {
   cmd_show_list (tdesc_show_cmdlist, from_tty, "");
 }
 
 static void
-unset_tdesc_cmd (char *args, int from_tty)
+unset_tdesc_cmd (const char *args, int from_tty)
 {
   help_list (tdesc_unset_cmdlist, "unset tdesc ", all_commands, gdb_stdout);
 }
 
 static void
-set_tdesc_filename_cmd (char *args, int from_tty,
+set_tdesc_filename_cmd (const char *args, int from_tty,
 			struct cmd_list_element *c)
 {
   xfree (target_description_filename);
@@ -1699,7 +1743,7 @@ show_tdesc_filename_cmd (struct ui_file 
 }
 
 static void
-unset_tdesc_filename_cmd (char *args, int from_tty)
+unset_tdesc_filename_cmd (const char *args, int from_tty)
 {
   xfree (target_description_filename);
   target_description_filename = NULL;
@@ -1707,283 +1751,491 @@ unset_tdesc_filename_cmd (char *args, in
   target_find_description ();
 }
 
-static void
-maint_print_c_tdesc_cmd (char *args, int from_tty)
+/* Print target description in C.  */
+
+class print_c_tdesc : public tdesc_element_visitor
 {
-  const struct target_desc *tdesc;
-  const struct bfd_arch_info *compatible;
-  const char *filename, *inp;
-  char *function, *outp;
-  struct property *prop;
-  struct tdesc_feature *feature;
-  struct tdesc_reg *reg;
-  struct tdesc_type *type;
-  struct tdesc_type_field *f;
-  int ix, ix2, ix3;
-  int printed_field_type = 0;
-
-  /* Use the global target-supplied description, not the current
-     architecture's.  This lets a GDB for one architecture generate C
-     for another architecture's description, even though the gdbarch
-     initialization code will reject the new description.  */
-  tdesc = current_target_desc;
-  if (tdesc == NULL)
-    error (_("There is no target description to print."));
+public:
+  print_c_tdesc (std::string &filename_after_features)
+    : m_filename_after_features (filename_after_features)
+  {
+    const char *inp;
+    char *outp;
+    const char *filename = lbasename (m_filename_after_features.c_str ());
+
+    m_function = (char *) xmalloc (strlen (filename) + 1);
+    for (inp = filename, outp = m_function; *inp != '\0'; inp++)
+      if (*inp == '.')
+	break;
+      else if (*inp == '-')
+	*outp++ = '_';
+      else
+	*outp++ = *inp;
+    *outp = '\0';
 
-  if (target_description_filename == NULL)
-    error (_("The current target description did not come from an XML file."));
+    /* Standard boilerplate.  */
+    printf_unfiltered ("/* THIS FILE IS GENERATED.  "
+		       "-*- buffer-read-only: t -*- vi"
+		       ":set ro:\n");
+  }
 
-  filename = lbasename (target_description_filename);
-  function = (char *) alloca (strlen (filename) + 1);
-  for (inp = filename, outp = function; *inp != '\0'; inp++)
-    if (*inp == '.')
-      break;
-    else if (*inp == '-')
-      *outp++ = '_';
-    else
-      *outp++ = *inp;
-  *outp = '\0';
+  ~print_c_tdesc ()
+  {
+    xfree (m_function);
+  }
 
-  /* Standard boilerplate.  */
-  printf_unfiltered ("/* THIS FILE IS GENERATED.  "
-		     "-*- buffer-read-only: t -*- vi"
-		     ":set ro:\n");
-  printf_unfiltered ("  Original: %s */\n\n", filename);
-  printf_unfiltered ("#include \"defs.h\"\n");
-  printf_unfiltered ("#include \"osabi.h\"\n");
-  printf_unfiltered ("#include \"target-descriptions.h\"\n");
-  printf_unfiltered ("\n");
-
-  printf_unfiltered ("struct target_desc *tdesc_%s;\n", function);
-  printf_unfiltered ("static void\n");
-  printf_unfiltered ("initialize_tdesc_%s (void)\n", function);
-  printf_unfiltered ("{\n");
-  printf_unfiltered
-    ("  struct target_desc *result = allocate_target_description ();\n");
-  printf_unfiltered ("  struct tdesc_feature *feature;\n");
-
-  /* Now we do some "filtering" in order to know which variables to
-     declare.  This is needed because otherwise we would declare unused
-     variables `field_type' and `type'.  */
-  for (ix = 0;
-       VEC_iterate (tdesc_feature_p, tdesc->features, ix, feature);
-       ix++)
-    {
-      int printed_desc_type = 0;
+  void visit_pre (const target_desc *e) override
+  {
+    printf_unfiltered ("  Original: %s */\n\n",
+		       lbasename (m_filename_after_features.c_str ()));
 
-      for (ix2 = 0;
-	   VEC_iterate (tdesc_type_p, feature->types, ix2, type);
-	   ix2++)
-	{
-	  if (!printed_field_type)
-	    {
-	      printf_unfiltered ("  struct tdesc_type *field_type;\n");
-	      printed_field_type = 1;
-	    }
+    printf_unfiltered ("#include \"defs.h\"\n");
+    printf_unfiltered ("#include \"osabi.h\"\n");
+    printf_unfiltered ("#include \"target-descriptions.h\"\n");
+    printf_unfiltered ("\n");
 
-	  if ((type->kind == TDESC_TYPE_UNION
-	       || type->kind == TDESC_TYPE_STRUCT
-	       || type->kind == TDESC_TYPE_FLAGS
-	       || type->kind == TDESC_TYPE_ENUM)
-	      && VEC_length (tdesc_type_field, type->u.u.fields) > 0)
-	    {
-	      printf_unfiltered ("  struct tdesc_type *type;\n");
-	      printed_desc_type = 1;
-	      break;
-	    }
-	}
+    printf_unfiltered ("struct target_desc *tdesc_%s;\n", m_function);
+    printf_unfiltered ("static void\n");
+    printf_unfiltered ("initialize_tdesc_%s (void)\n", m_function);
+    printf_unfiltered ("{\n");
+    printf_unfiltered
+      ("  struct target_desc *result = allocate_target_description ();\n");
+
+    if (tdesc_architecture (e) != NULL)
+      {
+	printf_unfiltered
+	  ("  set_tdesc_architecture (result, bfd_scan_arch (\"%s\"));\n",
+	   tdesc_architecture (e)->printable_name);
+	printf_unfiltered ("\n");
+      }
+    if (tdesc_osabi (e) > GDB_OSABI_UNKNOWN
+	&& tdesc_osabi (e) < GDB_OSABI_INVALID)
+      {
+	printf_unfiltered
+	  ("  set_tdesc_osabi (result, osabi_from_tdesc_string (\"%s\"));\n",
+	   gdbarch_osabi_name (tdesc_osabi (e)));
+	printf_unfiltered ("\n");
+      }
+
+    for (const bfd_arch_info_type *compatible : e->compatible)
+      printf_unfiltered
+	("  tdesc_add_compatible (result, bfd_scan_arch (\"%s\"));\n",
+	 compatible->printable_name);
+
+    if (!e->compatible.empty ())
+      printf_unfiltered ("\n");
+
+    for (const property &prop : e->properties)
+      printf_unfiltered ("  set_tdesc_property (result, \"%s\", \"%s\");\n",
+			 prop.key.c_str (), prop.value.c_str ());
+
+    printf_unfiltered ("  struct tdesc_feature *feature;\n");
+  }
+
+  void visit_pre (const tdesc_feature *e) override
+  {
+    printf_unfiltered ("\n  feature = tdesc_create_feature (result, \"%s\");\n",
+		       e->name.c_str ());
+  }
+
+  void visit_post (const tdesc_feature *e) override
+  {}
+
+  void visit_post (const target_desc *e) override
+  {
+    printf_unfiltered ("\n  tdesc_%s = result;\n", m_function);
+    printf_unfiltered ("}\n");
+  }
+
+  void visit (const tdesc_type_builtin *type) override
+  {
+    error (_("C output is not supported type \"%s\"."), type->name.c_str ());
+  }
+
+  void visit (const tdesc_type_vector *type) override
+  {
+    if (!m_printed_element_type)
+      {
+	printf_unfiltered ("  tdesc_type *element_type;\n");
+	m_printed_element_type = true;
+      }
+
+    printf_unfiltered
+      ("  element_type = tdesc_named_type (feature, \"%s\");\n",
+       type->element_type->name.c_str ());
+    printf_unfiltered
+      ("  tdesc_create_vector (feature, \"%s\", element_type, %d);\n",
+       type->name.c_str (), type->count);
+
+    printf_unfiltered ("\n");
+  }
 
-      if (printed_desc_type)
+  void visit (const tdesc_type_with_fields *type) override
+  {
+    if (!m_printed_type_with_fields)
+      {
+	printf_unfiltered ("  tdesc_type_with_fields *type_with_fields;\n");
+	m_printed_type_with_fields = true;
+      }
+
+    switch (type->kind)
+      {
+      case TDESC_TYPE_STRUCT:
+      case TDESC_TYPE_FLAGS:
+	if (type->kind == TDESC_TYPE_STRUCT)
+	  {
+	    printf_unfiltered
+	      ("  type_with_fields = tdesc_create_struct (feature, \"%s\");\n",
+	       type->name.c_str ());
+	    if (type->size != 0)
+	      printf_unfiltered
+		("  tdesc_set_struct_size (type_with_fields, %d);\n", type->size);
+	  }
+	else
+	  {
+	    printf_unfiltered
+	      ("  type_with_fields = tdesc_create_flags (feature, \"%s\", %d);\n",
+	       type->name.c_str (), type->size);
+	  }
+	for (const tdesc_type_field &f : type->fields)
+	  {
+	    const char *type_name;
+
+	    gdb_assert (f.type != NULL);
+	    type_name = f.type->name.c_str ();
+
+	    /* To minimize changes to generated files, don't emit type
+	       info for fields that have defaulted types.  */
+	    if (f.start != -1)
+	      {
+		gdb_assert (f.end != -1);
+		if (f.type->kind == TDESC_TYPE_BOOL)
+		  {
+		    gdb_assert (f.start == f.end);
+		    printf_unfiltered
+		      ("  tdesc_add_flag (type_with_fields, %d, \"%s\");\n",
+		       f.start, f.name.c_str ());
+		  }
+		else if ((type->size == 4 && f.type->kind == TDESC_TYPE_UINT32)
+			 || (type->size == 8
+			     && f.type->kind == TDESC_TYPE_UINT64))
+		  {
+		    printf_unfiltered
+		      ("  tdesc_add_bitfield (type_with_fields, \"%s\", %d, %d);\n",
+		       f.name.c_str (), f.start, f.end);
+		  }
+		else
+		  {
+		    printf_field_type_assignment
+		      ("tdesc_named_type (feature, \"%s\");\n",
+		       type_name);
+		    printf_unfiltered
+		      ("  tdesc_add_typed_bitfield (type_with_fields, \"%s\","
+		       " %d, %d, field_type);\n",
+		       f.name.c_str (), f.start, f.end);
+		  }
+	      }
+	    else /* Not a bitfield.  */
+	      {
+		gdb_assert (f.end == -1);
+		gdb_assert (type->kind == TDESC_TYPE_STRUCT);
+		printf_field_type_assignment
+		  ("tdesc_named_type (feature, \"%s\");\n", type_name);
+		printf_unfiltered
+		  ("  tdesc_add_field (type_with_fields, \"%s\", field_type);\n",
+		   f.name.c_str ());
+	      }
+	  }
 	break;
-    }
+      case TDESC_TYPE_UNION:
+	printf_unfiltered
+	  ("  type_with_fields = tdesc_create_union (feature, \"%s\");\n",
+	   type->name.c_str ());
+	for (const tdesc_type_field &f : type->fields)
+	  {
+	    printf_field_type_assignment
+	      ("tdesc_named_type (feature, \"%s\");\n", f.type->name.c_str ());
+	    printf_unfiltered
+	      ("  tdesc_add_field (type_with_fields, \"%s\", field_type);\n",
+	       f.name.c_str ());
+	  }
+	break;
+      case TDESC_TYPE_ENUM:
+	printf_unfiltered
+	  ("  type_with_fields = tdesc_create_enum (feature, \"%s\", %d);\n",
+	   type->name.c_str (), type->size);
+	for (const tdesc_type_field &f : type->fields)
+	  printf_unfiltered
+	    ("  tdesc_add_enum_value (type_with_fields, %d, \"%s\");\n",
+	     f.start, f.name.c_str ());
+	break;
+      default:
+	error (_("C output is not supported type \"%s\"."), type->name.c_str ());
+      }
+
+    printf_unfiltered ("\n");
+  }
+
+  void visit (const tdesc_reg *reg) override
+  {
+    printf_unfiltered ("  tdesc_create_reg (feature, \"%s\", %ld, %d, ",
+		       reg->name.c_str (), reg->target_regnum,
+		       reg->save_restore);
+    if (!reg->group.empty ())
+      printf_unfiltered ("\"%s\", ", reg->group.c_str ());
+    else
+      printf_unfiltered ("NULL, ");
+    printf_unfiltered ("%d, \"%s\");\n", reg->bitsize, reg->type.c_str ());
+  }
+
+protected:
+  std::string m_filename_after_features;
+
+private:
+
+  /* Print an assignment to the field_type variable.  Print the declaration
+     of field_type if that has not been done yet.  */
+  ATTRIBUTE_PRINTF (2, 3)
+  void printf_field_type_assignment (const char *fmt, ...)
+  {
+    if (!m_printed_field_type)
+      {
+	printf_unfiltered ("  tdesc_type *field_type;\n");
+	m_printed_field_type = true;
+      }
+
+    printf_unfiltered ("  field_type = ");
+
+    va_list args;
+    va_start (args, fmt);
+    vprintf_unfiltered (fmt, args);
+    va_end (args);
+  }
+
+  char *m_function;
 
-  printf_unfiltered ("\n");
+  /* Did we print "struct tdesc_type *element_type;" yet?  */
+  bool m_printed_element_type = false;
 
-  if (tdesc_architecture (tdesc) != NULL)
+  /* Did we print "struct tdesc_type_with_fields *element_type;" yet?  */
+  bool m_printed_type_with_fields = false;
+
+  /* Did we print "struct tdesc_type *field_type;" yet?  */
+  bool m_printed_field_type = false;
+};
+
+/* Print target description feature in C.  */
+
+class print_c_feature : public print_c_tdesc
+{
+public:
+  print_c_feature (std::string &file)
+    : print_c_tdesc (file)
+  {
+    /* Trim ".tmp".  */
+    auto const pos = m_filename_after_features.find_last_of ('.');
+
+    m_filename_after_features = m_filename_after_features.substr (0, pos);
+  }
+
+  void visit_pre (const target_desc *e) override
+  {
+    printf_unfiltered ("  Original: %s */\n\n",
+		       lbasename (m_filename_after_features.c_str ()));
+
+    printf_unfiltered ("#include \"arch/tdesc.h\"\n");
+    printf_unfiltered ("\n");
+  }
+
+  void visit_post (const target_desc *e) override
+  {}
+
+  void visit_pre (const tdesc_feature *e) override
+  {
+    std::string name (m_filename_after_features);
+
+    auto pos = name.find_first_of ('.');
+
+    name = name.substr (0, pos);
+    std::replace (name.begin (), name.end (), '/', '_');
+    std::replace (name.begin (), name.end (), '-', '_');
+
+    printf_unfiltered ("static int\n");
+    printf_unfiltered ("create_feature_%s ", name.c_str ());
+    printf_unfiltered ("(struct target_desc *result, long regnum)\n");
+
+    printf_unfiltered ("{\n");
+    printf_unfiltered ("  struct tdesc_feature *feature;\n");
+
+    printf_unfiltered
+      ("\n  feature = tdesc_create_feature (result, \"%s\", \"%s\");\n",
+       e->name.c_str (), lbasename (m_filename_after_features.c_str ()));
+  }
+
+  void visit_post (const tdesc_feature *e) override
+  {
+    printf_unfiltered ("  return regnum;\n");
+    printf_unfiltered ("}\n");
+  }
+
+  void visit (const tdesc_reg *reg) override
+  {
+    /* Most "reg" in XML target descriptions don't have "regnum"
+       attribute, so the register number is allocated sequentially.
+       In case that reg has "regnum" attribute, register number
+       should be set by that explicitly.  */
+
+    if (reg->target_regnum < m_next_regnum)
+      {
+	/* The integrity check, it can catch some errors on register
+	   number collision, like this,
+
+	  <reg name="x0" bitsize="32"/>
+	  <reg name="x1" bitsize="32"/>
+	  <reg name="x2" bitsize="32"/>
+	  <reg name="x3" bitsize="32"/>
+	  <reg name="ps" bitsize="32" regnum="3"/>
+
+	  but it also has false negatives.  The target description
+	  below is correct,
+
+	  <reg name="x1" bitsize="32" regnum="1"/>
+	  <reg name="x3" bitsize="32" regnum="3"/>
+	  <reg name="x2" bitsize="32" regnum="2"/>
+	  <reg name="x4" bitsize="32" regnum="4"/>
+
+	  but it is not a good practice, so still error on this,
+	  and also print the message so that it can be saved in the
+	  generated c file.  */
+
+	printf_unfiltered ("ERROR: \"regnum\" attribute %ld ",
+			   reg->target_regnum);
+	printf_unfiltered ("is not the largest number (%d).\n",
+			   m_next_regnum);
+	error (_("\"regnum\" attribute %ld is not the largest number (%d)."),
+	       reg->target_regnum, m_next_regnum);
+      }
+
+    if (reg->target_regnum > m_next_regnum)
+      {
+	printf_unfiltered ("  regnum = %ld;\n", reg->target_regnum);
+	m_next_regnum = reg->target_regnum;
+      }
+
+    printf_unfiltered ("  tdesc_create_reg (feature, \"%s\", regnum++, %d, ",
+		       reg->name.c_str (), reg->save_restore);
+    if (!reg->group.empty ())
+      printf_unfiltered ("\"%s\", ", reg->group.c_str ());
+    else
+      printf_unfiltered ("NULL, ");
+    printf_unfiltered ("%d, \"%s\");\n", reg->bitsize, reg->type.c_str ());
+
+    m_next_regnum++;
+  }
+
+private:
+  /* The register number to use for the next register we see.  */
+  int m_next_regnum = 0;
+};
+
+static void
+maint_print_c_tdesc_cmd (const char *args, int from_tty)
+{
+  const struct target_desc *tdesc;
+  const char *filename;
+
+  if (args == NULL)
     {
-      printf_unfiltered
-	("  set_tdesc_architecture (result, bfd_scan_arch (\"%s\"));\n",
-	 tdesc_architecture (tdesc)->printable_name);
-      printf_unfiltered ("\n");
+      /* Use the global target-supplied description, not the current
+	 architecture's.  This lets a GDB for one architecture generate C
+	 for another architecture's description, even though the gdbarch
+	 initialization code will reject the new description.  */
+      tdesc = current_target_desc;
+      filename = target_description_filename;
     }
-
-  if (tdesc_osabi (tdesc) > GDB_OSABI_UNKNOWN
-      && tdesc_osabi (tdesc) < GDB_OSABI_INVALID)
+  else
     {
-      printf_unfiltered
-	("  set_tdesc_osabi (result, osabi_from_tdesc_string (\"%s\"));\n",
-	 gdbarch_osabi_name (tdesc_osabi (tdesc)));
-      printf_unfiltered ("\n");
+      /* Use the target description from the XML file.  */
+      filename = args;
+      tdesc = file_read_description_xml (filename);
     }
 
-  for (ix = 0; VEC_iterate (arch_p, tdesc->compatible, ix, compatible);
-       ix++)
+  if (tdesc == NULL)
+    error (_("There is no target description to print."));
+
+  if (filename == NULL)
+    error (_("The current target description did not come from an XML file."));
+
+  std::string filename_after_features (filename);
+  auto loc = filename_after_features.rfind ("/features/");
+
+  if (loc != std::string::npos)
+    filename_after_features = filename_after_features.substr (loc + 10);
+
+  /* Print c files for target features instead of target descriptions,
+     because c files got from target features are more flexible than the
+     counterparts.  */
+  if (startswith (filename_after_features.c_str (), "i386/32bit-")
+      || startswith (filename_after_features.c_str (), "i386/64bit-")
+      || startswith (filename_after_features.c_str (), "i386/x32-core.xml")
+      || startswith (filename_after_features.c_str (), "tic6x-")
+      || startswith (filename_after_features.c_str (), "aarch64"))
     {
-      printf_unfiltered
-	("  tdesc_add_compatible (result, bfd_scan_arch (\"%s\"));\n",
-	 compatible->printable_name);
-    }
-  if (ix)
-    printf_unfiltered ("\n");
+      print_c_feature v (filename_after_features);
 
-  for (ix = 0; VEC_iterate (property_s, tdesc->properties, ix, prop);
-       ix++)
+      tdesc->accept (v);
+    }
+  else
     {
-      printf_unfiltered ("  set_tdesc_property (result, \"%s\", \"%s\");\n",
-	      prop->key, prop->value);
+      print_c_tdesc v (filename_after_features);
+
+      tdesc->accept (v);
     }
+}
 
-  for (ix = 0;
-       VEC_iterate (tdesc_feature_p, tdesc->features, ix, feature);
-       ix++)
-    {
-      printf_unfiltered ("  \
-feature = tdesc_create_feature (result, \"%s\");\n",
-			 feature->name);
-
-      for (ix2 = 0;
-	   VEC_iterate (tdesc_type_p, feature->types, ix2, type);
-	   ix2++)
-	{
-	  switch (type->kind)
-	    {
-	    case TDESC_TYPE_VECTOR:
-	      printf_unfiltered
-		("  field_type = tdesc_named_type (feature, \"%s\");\n",
-		 type->u.v.type->name);
-	      printf_unfiltered
-		("  tdesc_create_vector (feature, \"%s\", field_type, %d);\n",
-		 type->name, type->u.v.count);
-	      break;
-	    case TDESC_TYPE_STRUCT:
-	    case TDESC_TYPE_FLAGS:
-	      if (type->kind == TDESC_TYPE_STRUCT)
-		{
-		  printf_unfiltered
-		    ("  type = tdesc_create_struct (feature, \"%s\");\n",
-		     type->name);
-		  if (type->u.u.size != 0)
-		    printf_unfiltered
-		      ("  tdesc_set_struct_size (type, %d);\n",
-		       type->u.u.size);
-		}
-	      else
-		{
-		  printf_unfiltered
-		    ("  type = tdesc_create_flags (feature, \"%s\", %d);\n",
-		     type->name, type->u.u.size);
-		}
-	      for (ix3 = 0;
-		   VEC_iterate (tdesc_type_field, type->u.u.fields, ix3, f);
-		   ix3++)
-		{
-		  const char *type_name;
-
-		  gdb_assert (f->type != NULL);
-		  type_name = f->type->name;
-
-		  /* To minimize changes to generated files, don't emit type
-		     info for fields that have defaulted types.  */
-		  if (f->start != -1)
-		    {
-		      gdb_assert (f->end != -1);
-		      if (f->type->kind == TDESC_TYPE_BOOL)
-			{
-			  gdb_assert (f->start == f->end);
-			  printf_unfiltered
-			    ("  tdesc_add_flag (type, %d, \"%s\");\n",
-			     f->start, f->name);
-			}
-		      else if ((type->u.u.size == 4
-				&& f->type->kind == TDESC_TYPE_UINT32)
-			       || (type->u.u.size == 8
-				   && f->type->kind == TDESC_TYPE_UINT64))
-			{
-			  printf_unfiltered
-			    ("  tdesc_add_bitfield (type, \"%s\", %d, %d);\n",
-			     f->name, f->start, f->end);
-			}
-		      else
-			{
-			  printf_unfiltered
-			    ("  field_type = tdesc_named_type (feature,"
-			     " \"%s\");\n",
-			     type_name);
-			  printf_unfiltered
-			    ("  tdesc_add_typed_bitfield (type, \"%s\","
-			     " %d, %d, field_type);\n",
-			     f->name, f->start, f->end);
-			}
-		    }
-		  else /* Not a bitfield.  */
-		    {
-		      gdb_assert (f->end == -1);
-		      gdb_assert (type->kind == TDESC_TYPE_STRUCT);
-		      printf_unfiltered
-			("  field_type = tdesc_named_type (feature,"
-			 " \"%s\");\n",
-			 type_name);
-		      printf_unfiltered
-			("  tdesc_add_field (type, \"%s\", field_type);\n",
-			 f->name);
-		    }
-		}
-	      break;
-	    case TDESC_TYPE_UNION:
-	      printf_unfiltered
-		("  type = tdesc_create_union (feature, \"%s\");\n",
-		 type->name);
-	      for (ix3 = 0;
-		   VEC_iterate (tdesc_type_field, type->u.u.fields, ix3, f);
-		   ix3++)
-		{
-		  printf_unfiltered
-		    ("  field_type = tdesc_named_type (feature, \"%s\");\n",
-		     f->type->name);
-		  printf_unfiltered
-		    ("  tdesc_add_field (type, \"%s\", field_type);\n",
-		     f->name);
-		}
-	      break;
-	    case TDESC_TYPE_ENUM:
-	      printf_unfiltered
-		("  type = tdesc_create_enum (feature, \"%s\", %d);\n",
-		 type->name, type->u.u.size);
-	      for (ix3 = 0;
-		   VEC_iterate (tdesc_type_field, type->u.u.fields, ix3, f);
-		   ix3++)
-		printf_unfiltered
-		  ("  tdesc_add_enum_value (type, %d, \"%s\");\n",
-		   f->start, f->name);
-	      break;
-	    default:
-	      error (_("C output is not supported type \"%s\"."), type->name);
-	    }
-	  printf_unfiltered ("\n");
-	}
+namespace selftests {
 
-      for (ix2 = 0;
-	   VEC_iterate (tdesc_reg_p, feature->registers, ix2, reg);
-	   ix2++)
-	{
-	  printf_unfiltered ("  tdesc_create_reg (feature, \"%s\", %ld, %d, ",
-			     reg->name, reg->target_regnum, reg->save_restore);
-	  if (reg->group)
-	    printf_unfiltered ("\"%s\", ", reg->group);
-	  else
-	    printf_unfiltered ("NULL, ");
-	  printf_unfiltered ("%d, \"%s\");\n", reg->bitsize, reg->type);
-	}
+static std::vector<std::pair<const char*, const target_desc *>> xml_tdesc;
 
-      printf_unfiltered ("\n");
-    }
+#if GDB_SELF_TEST
+
+/* See target-descritpions.h.  */
+
+void
+record_xml_tdesc (const char *xml_file, const struct target_desc *tdesc)
+{
+  xml_tdesc.emplace_back (xml_file, tdesc);
+}
+#endif
 
-  printf_unfiltered ("  tdesc_%s = result;\n", function);
-  printf_unfiltered ("}\n");
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_target_descriptions;
+/* Check that the target descriptions created dynamically by
+   architecture-specific code equal the descriptions created from XML files
+   found in the specified directory DIR.  */
+
+static void
+maintenance_check_xml_descriptions (const char *dir, int from_tty)
+{
+  if (dir == NULL)
+    error (_("Missing dir name"));
+
+  gdb::unique_xmalloc_ptr<char> dir1 (tilde_expand (dir));
+  std::string feature_dir (dir1.get ());
+  unsigned int failed = 0;
+
+  for (auto const &e : selftests::xml_tdesc)
+    {
+      std::string tdesc_xml = (feature_dir + SLASH_STRING + e.first);
+      const target_desc *tdesc
+	= file_read_description_xml (tdesc_xml.data ());
+
+      if (tdesc == NULL || *tdesc != *e.second)
+	failed++;
+    }
+  printf_filtered (_("Tested %lu XML files, %d failed\n"),
+		   (long) selftests::xml_tdesc.size (), failed);
+}
 
 void
 _initialize_target_descriptions (void)
@@ -2022,4 +2274,14 @@ GDB will read the description from the t
   add_cmd ("c-tdesc", class_maintenance, maint_print_c_tdesc_cmd, _("\
 Print the current target description as a C source file."),
 	   &maintenanceprintlist);
+
+  cmd_list_element *cmd;
+
+  cmd = add_cmd ("xml-descriptions", class_maintenance,
+		 maintenance_check_xml_descriptions, _("\
+Check the target descriptions created in GDB equal the descriptions\n\
+created from XML files in the directory.\n\
+The parameter is the directory name."),
+		 &maintenancechecklist);
+  set_cmd_completer (cmd, filename_completer);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-descriptions.h ./gdb/target-descriptions.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-descriptions.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/target-descriptions.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target description support for GDB.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    Contributed by CodeSourcery.
 
@@ -21,14 +21,10 @@
 
 #ifndef TARGET_DESCRIPTIONS_H
 #define TARGET_DESCRIPTIONS_H 1
+#include "arch/tdesc.h"
 
-struct tdesc_feature;
 struct tdesc_arch_data;
-struct tdesc_type;
-struct tdesc_reg;
-struct target_desc;
 struct target_ops;
-struct target_desc;
 /* An inferior's target description info is stored in this opaque
    object.  There's one such object per inferior.  */
 struct target_desc_info;
@@ -182,12 +178,6 @@ const struct tdesc_feature *tdesc_find_f
 
 const char *tdesc_feature_name (const struct tdesc_feature *feature);
 
-/* Return the type associated with ID in the context of FEATURE, or
-   NULL if none.  */
-
-struct tdesc_type *tdesc_named_type (const struct tdesc_feature *feature,
-				     const char *id);
-
 /* Return the name of register REGNO, from the target description or
    from an architecture-provided pseudo_register_name method.  */
 
@@ -211,7 +201,6 @@ int tdesc_register_in_reggroup_p (struct
 
 /* Methods for constructing a target description.  */
 
-struct target_desc *allocate_target_description (void);
 struct cleanup *make_cleanup_free_target_description (struct target_desc *);
 void set_tdesc_architecture (struct target_desc *,
 			     const struct bfd_arch_info *);
@@ -220,37 +209,25 @@ void set_tdesc_property (struct target_d
 			 const char *key, const char *value);
 void tdesc_add_compatible (struct target_desc *,
 			   const struct bfd_arch_info *);
-
-struct tdesc_feature *tdesc_create_feature (struct target_desc *tdesc,
-					    const char *name);
-struct tdesc_type *tdesc_create_vector (struct tdesc_feature *feature,
-					const char *name,
-					struct tdesc_type *field_type,
-					int count);
-struct tdesc_type *tdesc_create_struct (struct tdesc_feature *feature,
-					const char *name);
-void tdesc_set_struct_size (struct tdesc_type *type, int size);
-struct tdesc_type *tdesc_create_union (struct tdesc_feature *feature,
-				       const char *name);
-struct tdesc_type *tdesc_create_flags (struct tdesc_feature *feature,
-				       const char *name,
-				       int size);
-struct tdesc_type *tdesc_create_enum (struct tdesc_feature *feature,
-				      const char *name,
-				      int size);
-void tdesc_add_field (struct tdesc_type *type, const char *field_name,
-		      struct tdesc_type *field_type);
-void tdesc_add_typed_bitfield (struct tdesc_type *type, const char *field_name,
+tdesc_type_with_fields *tdesc_create_enum (struct tdesc_feature *feature,
+					   const char *name,
+					   int size);
+void tdesc_add_typed_bitfield (tdesc_type_with_fields *type, const char *field_name,
 			       int start, int end,
 			       struct tdesc_type *field_type);
-void tdesc_add_bitfield (struct tdesc_type *type, const char *field_name,
-			 int start, int end);
-void tdesc_add_flag (struct tdesc_type *type, int start,
-		     const char *flag_name);
-void tdesc_add_enum_value (struct tdesc_type *type, int value,
+void tdesc_add_enum_value (tdesc_type_with_fields *type, int value,
 			   const char *name);
-void tdesc_create_reg (struct tdesc_feature *feature, const char *name,
-		       int regnum, int save_restore, const char *group,
-		       int bitsize, const char *type);
+
+#if GDB_SELF_TEST
+namespace selftests {
+
+/* Record that XML_FILE should generate a target description that equals
+   TDESC, to be verified by the "maintenance check xml-descriptions"
+   command.  */
+
+void record_xml_tdesc (const char *xml_file,
+		       const struct target_desc *tdesc);
+}
+#endif
 
 #endif /* TARGET_DESCRIPTIONS_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-float.c ./gdb/target-float.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-float.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/target-float.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,2492 @@
+/* Floating point routines for GDB, the GNU debugger.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+#include "gdbtypes.h"
+#include "floatformat.h"
+#include "target-float.h"
+
+
+/* Target floating-point operations.
+
+   We provide multiple implementations of those operations, which differ
+   by the host-side intermediate format they perform computations in.
+
+   Those multiple implementations all derive from the following abstract
+   base class, which specifies the set of operations to be implemented.  */
+
+class target_float_ops
+{
+public:
+  virtual std::string to_string (const gdb_byte *addr, const struct type *type,
+				 const char *format) const = 0;
+  virtual bool from_string (gdb_byte *addr, const struct type *type,
+			    const std::string &string) const = 0;
+
+  virtual LONGEST to_longest (const gdb_byte *addr,
+			      const struct type *type) const = 0;
+  virtual void from_longest (gdb_byte *addr, const struct type *type,
+			     LONGEST val) const = 0;
+  virtual void from_ulongest (gdb_byte *addr, const struct type *type,
+			      ULONGEST val) const = 0;
+  virtual double to_host_double (const gdb_byte *addr,
+				 const struct type *type) const = 0;
+  virtual void from_host_double (gdb_byte *addr, const struct type *type,
+				 double val) const = 0;
+  virtual void convert (const gdb_byte *from, const struct type *from_type,
+			gdb_byte *to, const struct type *to_type) const = 0;
+
+  virtual void binop (enum exp_opcode opcode,
+		      const gdb_byte *x, const struct type *type_x,
+		      const gdb_byte *y, const struct type *type_y,
+		      gdb_byte *res, const struct type *type_res) const = 0;
+  virtual int compare (const gdb_byte *x, const struct type *type_x,
+		       const gdb_byte *y, const struct type *type_y) const = 0;
+};
+
+
+/* Helper routines operating on binary floating-point data.  */
+
+#include <cmath>
+#include <limits>
+
+/* Different kinds of floatformat numbers recognized by
+   floatformat_classify.  To avoid portability issues, we use local
+   values instead of the C99 macros (FP_NAN et cetera).  */
+enum float_kind {
+  float_nan,
+  float_infinite,
+  float_zero,
+  float_normal,
+  float_subnormal
+};
+
+/* The odds that CHAR_BIT will be anything but 8 are low enough that I'm not
+   going to bother with trying to muck around with whether it is defined in
+   a system header, what we do if not, etc.  */
+#define FLOATFORMAT_CHAR_BIT 8
+
+/* The number of bytes that the largest floating-point type that we
+   can convert to doublest will need.  */
+#define FLOATFORMAT_LARGEST_BYTES 16
+
+/* Return the floatformat's total size in host bytes.  */
+static size_t
+floatformat_totalsize_bytes (const struct floatformat *fmt)
+{
+  return ((fmt->totalsize + FLOATFORMAT_CHAR_BIT - 1)
+	  / FLOATFORMAT_CHAR_BIT);
+}
+
+/* Return the precision of the floating point format FMT.  */
+static int
+floatformat_precision (const struct floatformat *fmt)
+{
+  /* Assume the precision of and IBM long double is twice the precision
+     of the underlying double.  This matches what GCC does.  */
+  if (fmt->split_half)
+    return 2 * floatformat_precision (fmt->split_half);
+
+  /* Otherwise, the precision is the size of mantissa in bits,
+     including the implicit bit if present.  */
+  int prec = fmt->man_len;
+  if (fmt->intbit == floatformat_intbit_no)
+    prec++;
+
+  return prec;
+}
+
+/* Normalize the byte order of FROM into TO.  If no normalization is
+   needed then FMT->byteorder is returned and TO is not changed;
+   otherwise the format of the normalized form in TO is returned.  */
+static enum floatformat_byteorders
+floatformat_normalize_byteorder (const struct floatformat *fmt,
+				 const void *from, void *to)
+{
+  const unsigned char *swapin;
+  unsigned char *swapout;
+  int words;
+
+  if (fmt->byteorder == floatformat_little
+      || fmt->byteorder == floatformat_big)
+    return fmt->byteorder;
+
+  words = fmt->totalsize / FLOATFORMAT_CHAR_BIT;
+  words >>= 2;
+
+  swapout = (unsigned char *)to;
+  swapin = (const unsigned char *)from;
+
+  if (fmt->byteorder == floatformat_vax)
+    {
+      while (words-- > 0)
+	{
+	  *swapout++ = swapin[1];
+	  *swapout++ = swapin[0];
+	  *swapout++ = swapin[3];
+	  *swapout++ = swapin[2];
+	  swapin += 4;
+	}
+      /* This may look weird, since VAX is little-endian, but it is
+	 easier to translate to big-endian than to little-endian.  */
+      return floatformat_big;
+    }
+  else
+    {
+      gdb_assert (fmt->byteorder == floatformat_littlebyte_bigword);
+
+      while (words-- > 0)
+	{
+	  *swapout++ = swapin[3];
+	  *swapout++ = swapin[2];
+	  *swapout++ = swapin[1];
+	  *swapout++ = swapin[0];
+	  swapin += 4;
+	}
+      return floatformat_big;
+    }
+}
+
+/* Extract a field which starts at START and is LEN bytes long.  DATA and
+   TOTAL_LEN are the thing we are extracting it from, in byteorder ORDER.  */
+static unsigned long
+get_field (const bfd_byte *data, enum floatformat_byteorders order,
+	   unsigned int total_len, unsigned int start, unsigned int len)
+{
+  unsigned long result;
+  unsigned int cur_byte;
+  int cur_bitshift;
+
+  /* Caller must byte-swap words before calling this routine.  */
+  gdb_assert (order == floatformat_little || order == floatformat_big);
+
+  /* Start at the least significant part of the field.  */
+  if (order == floatformat_little)
+    {
+      /* We start counting from the other end (i.e, from the high bytes
+	 rather than the low bytes).  As such, we need to be concerned
+	 with what happens if bit 0 doesn't start on a byte boundary.
+	 I.e, we need to properly handle the case where total_len is
+	 not evenly divisible by 8.  So we compute ``excess'' which
+	 represents the number of bits from the end of our starting
+	 byte needed to get to bit 0.  */
+      int excess = FLOATFORMAT_CHAR_BIT - (total_len % FLOATFORMAT_CHAR_BIT);
+
+      cur_byte = (total_len / FLOATFORMAT_CHAR_BIT)
+                 - ((start + len + excess) / FLOATFORMAT_CHAR_BIT);
+      cur_bitshift = ((start + len + excess) % FLOATFORMAT_CHAR_BIT)
+                     - FLOATFORMAT_CHAR_BIT;
+    }
+  else
+    {
+      cur_byte = (start + len) / FLOATFORMAT_CHAR_BIT;
+      cur_bitshift =
+	((start + len) % FLOATFORMAT_CHAR_BIT) - FLOATFORMAT_CHAR_BIT;
+    }
+  if (cur_bitshift > -FLOATFORMAT_CHAR_BIT)
+    result = *(data + cur_byte) >> (-cur_bitshift);
+  else
+    result = 0;
+  cur_bitshift += FLOATFORMAT_CHAR_BIT;
+  if (order == floatformat_little)
+    ++cur_byte;
+  else
+    --cur_byte;
+
+  /* Move towards the most significant part of the field.  */
+  while (cur_bitshift < len)
+    {
+      result |= (unsigned long)*(data + cur_byte) << cur_bitshift;
+      cur_bitshift += FLOATFORMAT_CHAR_BIT;
+      switch (order)
+	{
+	case floatformat_little:
+	  ++cur_byte;
+	  break;
+	case floatformat_big:
+	  --cur_byte;
+	  break;
+	}
+    }
+  if (len < sizeof(result) * FLOATFORMAT_CHAR_BIT)
+    /* Mask out bits which are not part of the field.  */
+    result &= ((1UL << len) - 1);
+  return result;
+}
+
+/* Set a field which starts at START and is LEN bytes long.  DATA and
+   TOTAL_LEN are the thing we are extracting it from, in byteorder ORDER.  */
+static void
+put_field (unsigned char *data, enum floatformat_byteorders order,
+	   unsigned int total_len, unsigned int start, unsigned int len,
+	   unsigned long stuff_to_put)
+{
+  unsigned int cur_byte;
+  int cur_bitshift;
+
+  /* Caller must byte-swap words before calling this routine.  */
+  gdb_assert (order == floatformat_little || order == floatformat_big);
+
+  /* Start at the least significant part of the field.  */
+  if (order == floatformat_little)
+    {
+      int excess = FLOATFORMAT_CHAR_BIT - (total_len % FLOATFORMAT_CHAR_BIT);
+
+      cur_byte = (total_len / FLOATFORMAT_CHAR_BIT)
+                 - ((start + len + excess) / FLOATFORMAT_CHAR_BIT);
+      cur_bitshift = ((start + len + excess) % FLOATFORMAT_CHAR_BIT)
+                     - FLOATFORMAT_CHAR_BIT;
+    }
+  else
+    {
+      cur_byte = (start + len) / FLOATFORMAT_CHAR_BIT;
+      cur_bitshift =
+	((start + len) % FLOATFORMAT_CHAR_BIT) - FLOATFORMAT_CHAR_BIT;
+    }
+  if (cur_bitshift > -FLOATFORMAT_CHAR_BIT)
+    {
+      *(data + cur_byte) &=
+	~(((1 << ((start + len) % FLOATFORMAT_CHAR_BIT)) - 1)
+	  << (-cur_bitshift));
+      *(data + cur_byte) |=
+	(stuff_to_put & ((1 << FLOATFORMAT_CHAR_BIT) - 1)) << (-cur_bitshift);
+    }
+  cur_bitshift += FLOATFORMAT_CHAR_BIT;
+  if (order == floatformat_little)
+    ++cur_byte;
+  else
+    --cur_byte;
+
+  /* Move towards the most significant part of the field.  */
+  while (cur_bitshift < len)
+    {
+      if (len - cur_bitshift < FLOATFORMAT_CHAR_BIT)
+	{
+	  /* This is the last byte.  */
+	  *(data + cur_byte) &=
+	    ~((1 << (len - cur_bitshift)) - 1);
+	  *(data + cur_byte) |= (stuff_to_put >> cur_bitshift);
+	}
+      else
+	*(data + cur_byte) = ((stuff_to_put >> cur_bitshift)
+			      & ((1 << FLOATFORMAT_CHAR_BIT) - 1));
+      cur_bitshift += FLOATFORMAT_CHAR_BIT;
+      if (order == floatformat_little)
+	++cur_byte;
+      else
+	--cur_byte;
+    }
+}
+
+/* Check if VAL (which is assumed to be a floating point number whose
+   format is described by FMT) is negative.  */
+static int
+floatformat_is_negative (const struct floatformat *fmt,
+			 const bfd_byte *uval)
+{
+  enum floatformat_byteorders order;
+  unsigned char newfrom[FLOATFORMAT_LARGEST_BYTES];
+
+  gdb_assert (fmt != NULL);
+  gdb_assert (fmt->totalsize
+	      <= FLOATFORMAT_LARGEST_BYTES * FLOATFORMAT_CHAR_BIT);
+
+  /* An IBM long double (a two element array of double) always takes the
+     sign of the first double.  */
+  if (fmt->split_half)
+    fmt = fmt->split_half;
+
+  order = floatformat_normalize_byteorder (fmt, uval, newfrom);
+
+  if (order != fmt->byteorder)
+    uval = newfrom;
+
+  return get_field (uval, order, fmt->totalsize, fmt->sign_start, 1);
+}
+
+/* Check if VAL is "not a number" (NaN) for FMT.  */
+static enum float_kind
+floatformat_classify (const struct floatformat *fmt,
+		      const bfd_byte *uval)
+{
+  long exponent;
+  unsigned long mant;
+  unsigned int mant_bits, mant_off;
+  int mant_bits_left;
+  enum floatformat_byteorders order;
+  unsigned char newfrom[FLOATFORMAT_LARGEST_BYTES];
+  int mant_zero;
+
+  gdb_assert (fmt != NULL);
+  gdb_assert (fmt->totalsize
+	      <= FLOATFORMAT_LARGEST_BYTES * FLOATFORMAT_CHAR_BIT);
+
+  /* An IBM long double (a two element array of double) can be classified
+     by looking at the first double.  inf and nan are specified as
+     ignoring the second double.  zero and subnormal will always have
+     the second double 0.0 if the long double is correctly rounded.  */
+  if (fmt->split_half)
+    fmt = fmt->split_half;
+
+  order = floatformat_normalize_byteorder (fmt, uval, newfrom);
+
+  if (order != fmt->byteorder)
+    uval = newfrom;
+
+  exponent = get_field (uval, order, fmt->totalsize, fmt->exp_start,
+			fmt->exp_len);
+
+  mant_bits_left = fmt->man_len;
+  mant_off = fmt->man_start;
+
+  mant_zero = 1;
+  while (mant_bits_left > 0)
+    {
+      mant_bits = std::min (mant_bits_left, 32);
+
+      mant = get_field (uval, order, fmt->totalsize, mant_off, mant_bits);
+
+      /* If there is an explicit integer bit, mask it off.  */
+      if (mant_off == fmt->man_start
+	  && fmt->intbit == floatformat_intbit_yes)
+	mant &= ~(1 << (mant_bits - 1));
+
+      if (mant)
+	{
+	  mant_zero = 0;
+	  break;
+	}
+
+      mant_off += mant_bits;
+      mant_bits_left -= mant_bits;
+    }
+
+  /* If exp_nan is not set, assume that inf, NaN, and subnormals are not
+     supported.  */
+  if (! fmt->exp_nan)
+    {
+      if (mant_zero)
+	return float_zero;
+      else
+	return float_normal;
+    }
+
+  if (exponent == 0)
+    {
+      if (mant_zero)
+	return float_zero;
+      else
+	return float_subnormal;
+    }
+
+  if (exponent == fmt->exp_nan)
+    {
+      if (mant_zero)
+	return float_infinite;
+      else
+	return float_nan;
+    }
+
+  return float_normal;
+}
+
+/* Convert the mantissa of VAL (which is assumed to be a floating
+   point number whose format is described by FMT) into a hexadecimal
+   and store it in a static string.  Return a pointer to that string.  */
+static const char *
+floatformat_mantissa (const struct floatformat *fmt,
+		      const bfd_byte *val)
+{
+  unsigned char *uval = (unsigned char *) val;
+  unsigned long mant;
+  unsigned int mant_bits, mant_off;
+  int mant_bits_left;
+  static char res[50];
+  char buf[9];
+  int len;
+  enum floatformat_byteorders order;
+  unsigned char newfrom[FLOATFORMAT_LARGEST_BYTES];
+
+  gdb_assert (fmt != NULL);
+  gdb_assert (fmt->totalsize
+	      <= FLOATFORMAT_LARGEST_BYTES * FLOATFORMAT_CHAR_BIT);
+
+  /* For IBM long double (a two element array of double), return the
+     mantissa of the first double.  The problem with returning the
+     actual mantissa from both doubles is that there can be an
+     arbitrary number of implied 0's or 1's between the mantissas
+     of the first and second double.  In any case, this function
+     is only used for dumping out nans, and a nan is specified to
+     ignore the value in the second double.  */
+  if (fmt->split_half)
+    fmt = fmt->split_half;
+
+  order = floatformat_normalize_byteorder (fmt, uval, newfrom);
+
+  if (order != fmt->byteorder)
+    uval = newfrom;
+
+  if (! fmt->exp_nan)
+    return 0;
+
+  /* Make sure we have enough room to store the mantissa.  */
+  gdb_assert (sizeof res > ((fmt->man_len + 7) / 8) * 2);
+
+  mant_off = fmt->man_start;
+  mant_bits_left = fmt->man_len;
+  mant_bits = (mant_bits_left % 32) > 0 ? mant_bits_left % 32 : 32;
+
+  mant = get_field (uval, order, fmt->totalsize, mant_off, mant_bits);
+
+  len = xsnprintf (res, sizeof res, "%lx", mant);
+
+  mant_off += mant_bits;
+  mant_bits_left -= mant_bits;
+
+  while (mant_bits_left > 0)
+    {
+      mant = get_field (uval, order, fmt->totalsize, mant_off, 32);
+
+      xsnprintf (buf, sizeof buf, "%08lx", mant);
+      gdb_assert (len + strlen (buf) <= sizeof res);
+      strcat (res, buf);
+
+      mant_off += 32;
+      mant_bits_left -= 32;
+    }
+
+  return res;
+}
+
+/* Convert printf format string FORMAT to the otherwise equivalent string
+   which may be used to print a host floating-point number using the length
+   modifier LENGTH (which may be 0 if none is needed).  If FORMAT is null,
+   return a format appropriate to print the full precision of a target
+   floating-point number of format FMT.  */
+static std::string
+floatformat_printf_format (const struct floatformat *fmt,
+                           const char *format, char length)
+{
+  std::string host_format;
+  char conversion;
+
+  if (format == nullptr)
+    {
+      /* If no format was specified, print the number using a format string
+	 where the precision is set to the DECIMAL_DIG value for the given
+	 floating-point format.  This value is computed as
+
+		ceil(1 + p * log10(b)),
+
+	 where p is the precision of the floating-point format in bits, and
+	 b is the base (which is always 2 for the formats we support).  */
+      const double log10_2 = .30102999566398119521;
+      double d_decimal_dig = 1 + floatformat_precision (fmt) * log10_2;
+      int decimal_dig = d_decimal_dig;
+      if (decimal_dig < d_decimal_dig)
+	decimal_dig++;
+
+      host_format = string_printf ("%%.%d", decimal_dig);
+      conversion = 'g';
+    }
+  else
+    {
+      /* Use the specified format, stripping out the conversion character
+         and length modifier, if present.  */
+      size_t len = strlen (format);
+      gdb_assert (len > 1);
+      conversion = format[--len];
+      gdb_assert (conversion == 'e' || conversion == 'f' || conversion == 'g'
+		  || conversion == 'E' || conversion == 'G');
+      if (format[len - 1] == 'L')
+	len--;
+
+      host_format = std::string (format, len);
+    }
+
+  /* Add the length modifier and conversion character appropriate for
+     handling the appropriate host floating-point type.  */
+  if (length)
+    host_format += length;
+  host_format += conversion;
+
+  return host_format;
+}
+
+/* Implementation of target_float_ops using the host floating-point type T
+   as intermediate type.  */
+
+template<typename T> class host_float_ops : public target_float_ops
+{
+public:
+  std::string to_string (const gdb_byte *addr, const struct type *type,
+			 const char *format) const override;
+  bool from_string (gdb_byte *addr, const struct type *type,
+		    const std::string &string) const override;
+
+  LONGEST to_longest (const gdb_byte *addr,
+		      const struct type *type) const override;
+  void from_longest (gdb_byte *addr, const struct type *type,
+		     LONGEST val) const override;
+  void from_ulongest (gdb_byte *addr, const struct type *type,
+		      ULONGEST val) const override;
+  double to_host_double (const gdb_byte *addr,
+			 const struct type *type) const override;
+  void from_host_double (gdb_byte *addr, const struct type *type,
+			 double val) const override;
+  void convert (const gdb_byte *from, const struct type *from_type,
+		gdb_byte *to, const struct type *to_type) const override;
+
+  void binop (enum exp_opcode opcode,
+	      const gdb_byte *x, const struct type *type_x,
+	      const gdb_byte *y, const struct type *type_y,
+	      gdb_byte *res, const struct type *type_res) const override;
+  int compare (const gdb_byte *x, const struct type *type_x,
+	       const gdb_byte *y, const struct type *type_y) const override;
+
+private:
+  void from_target (const struct floatformat *fmt,
+		    const gdb_byte *from, T *to) const;
+  void from_target (const struct type *type,
+		    const gdb_byte *from, T *to) const;
+
+  void to_target (const struct type *type,
+		  const T *from, gdb_byte *to) const;
+  void to_target (const struct floatformat *fmt,
+		  const T *from, gdb_byte *to) const;
+};
+
+
+/* Convert TO/FROM target to the host floating-point format T.
+
+   If the host and target formats agree, we just copy the raw data
+   into the appropriate type of variable and return, letting the host
+   increase precision as necessary.  Otherwise, we call the conversion
+   routine and let it do the dirty work.  Note that even if the target
+   and host floating-point formats match, the length of the types
+   might still be different, so the conversion routines must make sure
+   to not overrun any buffers.  For example, on x86, long double is
+   the 80-bit extended precision type on both 32-bit and 64-bit ABIs,
+   but by default it is stored as 12 bytes on 32-bit, and 16 bytes on
+   64-bit, for alignment reasons.  See comment in store_typed_floating
+   for a discussion about zeroing out remaining bytes in the target
+   buffer.  */
+
+static const struct floatformat *host_float_format = GDB_HOST_FLOAT_FORMAT;
+static const struct floatformat *host_double_format = GDB_HOST_DOUBLE_FORMAT;
+static const struct floatformat *host_long_double_format
+  = GDB_HOST_LONG_DOUBLE_FORMAT;
+
+/* Convert target floating-point value at FROM in format FMT to host
+   floating-point format of type T.  */
+template<typename T> void
+host_float_ops<T>::from_target (const struct floatformat *fmt,
+				const gdb_byte *from, T *to) const
+{
+  gdb_assert (fmt != NULL);
+
+  if (fmt == host_float_format)
+    {
+      float val = 0;
+
+      memcpy (&val, from, floatformat_totalsize_bytes (fmt));
+      *to = val;
+      return;
+    }
+  else if (fmt == host_double_format)
+    {
+      double val = 0;
+
+      memcpy (&val, from, floatformat_totalsize_bytes (fmt));
+      *to = val;
+      return;
+    }
+  else if (fmt == host_long_double_format)
+    {
+      long double val = 0;
+
+      memcpy (&val, from, floatformat_totalsize_bytes (fmt));
+      *to = val;
+      return;
+    }
+
+  unsigned char *ufrom = (unsigned char *) from;
+  T dto;
+  long exponent;
+  unsigned long mant;
+  unsigned int mant_bits, mant_off;
+  int mant_bits_left;
+  int special_exponent;		/* It's a NaN, denorm or zero.  */
+  enum floatformat_byteorders order;
+  unsigned char newfrom[FLOATFORMAT_LARGEST_BYTES];
+  enum float_kind kind;
+
+  gdb_assert (fmt->totalsize
+	      <= FLOATFORMAT_LARGEST_BYTES * FLOATFORMAT_CHAR_BIT);
+
+  /* For non-numbers, reuse libiberty's logic to find the correct
+     format.  We do not lose any precision in this case by passing
+     through a double.  */
+  kind = floatformat_classify (fmt, (const bfd_byte *) from);
+  if (kind == float_infinite || kind == float_nan)
+    {
+      double dto;
+
+      floatformat_to_double (fmt->split_half ? fmt->split_half : fmt,
+			     from, &dto);
+      *to = (T) dto;
+      return;
+    }
+
+  order = floatformat_normalize_byteorder (fmt, ufrom, newfrom);
+
+  if (order != fmt->byteorder)
+    ufrom = newfrom;
+
+  if (fmt->split_half)
+    {
+      T dtop, dbot;
+
+      from_target (fmt->split_half, ufrom, &dtop);
+      /* Preserve the sign of 0, which is the sign of the top
+	 half.  */
+      if (dtop == 0.0)
+	{
+	  *to = dtop;
+	  return;
+	}
+      from_target (fmt->split_half,
+		   ufrom + fmt->totalsize / FLOATFORMAT_CHAR_BIT / 2, &dbot);
+      *to = dtop + dbot;
+      return;
+    }
+
+  exponent = get_field (ufrom, order, fmt->totalsize, fmt->exp_start,
+			fmt->exp_len);
+  /* Note that if exponent indicates a NaN, we can't really do anything useful
+     (not knowing if the host has NaN's, or how to build one).  So it will
+     end up as an infinity or something close; that is OK.  */
+
+  mant_bits_left = fmt->man_len;
+  mant_off = fmt->man_start;
+  dto = 0.0;
+
+  special_exponent = exponent == 0 || exponent == fmt->exp_nan;
+
+  /* Don't bias NaNs.  Use minimum exponent for denorms.  For
+     simplicity, we don't check for zero as the exponent doesn't matter.
+     Note the cast to int; exp_bias is unsigned, so it's important to
+     make sure the operation is done in signed arithmetic.  */
+  if (!special_exponent)
+    exponent -= fmt->exp_bias;
+  else if (exponent == 0)
+    exponent = 1 - fmt->exp_bias;
+
+  /* Build the result algebraically.  Might go infinite, underflow, etc;
+     who cares.  */
+
+  /* If this format uses a hidden bit, explicitly add it in now.  Otherwise,
+     increment the exponent by one to account for the integer bit.  */
+
+  if (!special_exponent)
+    {
+      if (fmt->intbit == floatformat_intbit_no)
+	dto = ldexp (1.0, exponent);
+      else
+	exponent++;
+    }
+
+  while (mant_bits_left > 0)
+    {
+      mant_bits = std::min (mant_bits_left, 32);
+
+      mant = get_field (ufrom, order, fmt->totalsize, mant_off, mant_bits);
+
+      dto += ldexp ((T) mant, exponent - mant_bits);
+      exponent -= mant_bits;
+      mant_off += mant_bits;
+      mant_bits_left -= mant_bits;
+    }
+
+  /* Negate it if negative.  */
+  if (get_field (ufrom, order, fmt->totalsize, fmt->sign_start, 1))
+    dto = -dto;
+  *to = dto;
+}
+
+template<typename T> void
+host_float_ops<T>::from_target (const struct type *type,
+				const gdb_byte *from, T *to) const
+{
+  from_target (floatformat_from_type (type), from, to);
+}
+
+/* Convert host floating-point value of type T to target floating-point
+   value in format FMT and store at TO.  */
+template<typename T> void
+host_float_ops<T>::to_target (const struct floatformat *fmt,
+			      const T *from, gdb_byte *to) const
+{
+  gdb_assert (fmt != NULL);
+
+  if (fmt == host_float_format)
+    {
+      float val = *from;
+
+      memcpy (to, &val, floatformat_totalsize_bytes (fmt));
+      return;
+    }
+  else if (fmt == host_double_format)
+    {
+      double val = *from;
+
+      memcpy (to, &val, floatformat_totalsize_bytes (fmt));
+      return;
+    }
+  else if (fmt == host_long_double_format)
+    {
+      long double val = *from;
+
+      memcpy (to, &val, floatformat_totalsize_bytes (fmt));
+      return;
+    }
+
+  T dfrom;
+  int exponent;
+  T mant;
+  unsigned int mant_bits, mant_off;
+  int mant_bits_left;
+  unsigned char *uto = (unsigned char *) to;
+  enum floatformat_byteorders order = fmt->byteorder;
+  unsigned char newto[FLOATFORMAT_LARGEST_BYTES];
+
+  if (order != floatformat_little)
+    order = floatformat_big;
+
+  if (order != fmt->byteorder)
+    uto = newto;
+
+  memcpy (&dfrom, from, sizeof (dfrom));
+  memset (uto, 0, floatformat_totalsize_bytes (fmt));
+
+  if (fmt->split_half)
+    {
+      /* Use static volatile to ensure that any excess precision is
+	 removed via storing in memory, and so the top half really is
+	 the result of converting to double.  */
+      static volatile double dtop, dbot;
+      T dtopnv, dbotnv;
+
+      dtop = (double) dfrom;
+      /* If the rounded top half is Inf, the bottom must be 0 not NaN
+	 or Inf.  */
+      if (dtop + dtop == dtop && dtop != 0.0)
+	dbot = 0.0;
+      else
+	dbot = (double) (dfrom - (T) dtop);
+      dtopnv = dtop;
+      dbotnv = dbot;
+      to_target (fmt->split_half, &dtopnv, uto);
+      to_target (fmt->split_half, &dbotnv,
+		 uto + fmt->totalsize / FLOATFORMAT_CHAR_BIT / 2);
+      return;
+    }
+
+  if (dfrom == 0)
+    goto finalize_byteorder;	/* Result is zero */
+  if (dfrom != dfrom)		/* Result is NaN */
+    {
+      /* From is NaN */
+      put_field (uto, order, fmt->totalsize, fmt->exp_start,
+		 fmt->exp_len, fmt->exp_nan);
+      /* Be sure it's not infinity, but NaN value is irrel.  */
+      put_field (uto, order, fmt->totalsize, fmt->man_start,
+		 fmt->man_len, 1);
+      goto finalize_byteorder;
+    }
+
+  /* If negative, set the sign bit.  */
+  if (dfrom < 0)
+    {
+      put_field (uto, order, fmt->totalsize, fmt->sign_start, 1, 1);
+      dfrom = -dfrom;
+    }
+
+  if (dfrom + dfrom == dfrom && dfrom != 0.0)	/* Result is Infinity.  */
+    {
+      /* Infinity exponent is same as NaN's.  */
+      put_field (uto, order, fmt->totalsize, fmt->exp_start,
+		 fmt->exp_len, fmt->exp_nan);
+      /* Infinity mantissa is all zeroes.  */
+      put_field (uto, order, fmt->totalsize, fmt->man_start,
+		 fmt->man_len, 0);
+      goto finalize_byteorder;
+    }
+
+  mant = frexp (dfrom, &exponent);
+
+  if (exponent + fmt->exp_bias <= 0)
+    {
+      /* The value is too small to be expressed in the destination
+	 type (not enough bits in the exponent.  Treat as 0.  */
+      put_field (uto, order, fmt->totalsize, fmt->exp_start,
+		 fmt->exp_len, 0);
+      put_field (uto, order, fmt->totalsize, fmt->man_start,
+		 fmt->man_len, 0);
+      goto finalize_byteorder;
+    }
+
+  if (exponent + fmt->exp_bias >= (1 << fmt->exp_len))
+    {
+      /* The value is too large to fit into the destination.
+	 Treat as infinity.  */
+      put_field (uto, order, fmt->totalsize, fmt->exp_start,
+		 fmt->exp_len, fmt->exp_nan);
+      put_field (uto, order, fmt->totalsize, fmt->man_start,
+		 fmt->man_len, 0);
+      goto finalize_byteorder;
+    }
+
+  put_field (uto, order, fmt->totalsize, fmt->exp_start, fmt->exp_len,
+	     exponent + fmt->exp_bias - 1);
+
+  mant_bits_left = fmt->man_len;
+  mant_off = fmt->man_start;
+  while (mant_bits_left > 0)
+    {
+      unsigned long mant_long;
+
+      mant_bits = mant_bits_left < 32 ? mant_bits_left : 32;
+
+      mant *= 4294967296.0;
+      mant_long = ((unsigned long) mant) & 0xffffffffL;
+      mant -= mant_long;
+
+      /* If the integer bit is implicit, then we need to discard it.
+         If we are discarding a zero, we should be (but are not) creating
+         a denormalized number which means adjusting the exponent
+         (I think).  */
+      if (mant_bits_left == fmt->man_len
+	  && fmt->intbit == floatformat_intbit_no)
+	{
+	  mant_long <<= 1;
+	  mant_long &= 0xffffffffL;
+          /* If we are processing the top 32 mantissa bits of a doublest
+             so as to convert to a float value with implied integer bit,
+             we will only be putting 31 of those 32 bits into the
+             final value due to the discarding of the top bit.  In the
+             case of a small float value where the number of mantissa
+             bits is less than 32, discarding the top bit does not alter
+             the number of bits we will be adding to the result.  */
+          if (mant_bits == 32)
+            mant_bits -= 1;
+	}
+
+      if (mant_bits < 32)
+	{
+	  /* The bits we want are in the most significant MANT_BITS bits of
+	     mant_long.  Move them to the least significant.  */
+	  mant_long >>= 32 - mant_bits;
+	}
+
+      put_field (uto, order, fmt->totalsize,
+		 mant_off, mant_bits, mant_long);
+      mant_off += mant_bits;
+      mant_bits_left -= mant_bits;
+    }
+
+ finalize_byteorder:
+  /* Do we need to byte-swap the words in the result?  */
+  if (order != fmt->byteorder)
+    floatformat_normalize_byteorder (fmt, newto, to);
+}
+
+template<typename T> void
+host_float_ops<T>::to_target (const struct type *type,
+			      const T *from, gdb_byte *to) const
+{
+  /* Ensure possible padding bytes in the target buffer are zeroed out.  */
+  memset (to, 0, TYPE_LENGTH (type));
+
+  to_target (floatformat_from_type (type), from, to);
+}
+
+/* Convert the byte-stream ADDR, interpreted as floating-point type TYPE,
+   to a string, optionally using the print format FORMAT.  */
+template<typename T> struct printf_length_modifier
+{
+  static constexpr char value = 0;
+};
+template<> struct printf_length_modifier<long double>
+{
+  static constexpr char value = 'L';
+};
+template<typename T> std::string
+host_float_ops<T>::to_string (const gdb_byte *addr, const struct type *type,
+			      const char *format) const
+{
+  /* Determine the format string to use on the host side.  */
+  constexpr char length = printf_length_modifier<T>::value;
+  const struct floatformat *fmt = floatformat_from_type (type);
+  std::string host_format = floatformat_printf_format (fmt, format, length);
+
+  T host_float;
+  from_target (type, addr, &host_float);
+  return string_printf (host_format.c_str (), host_float);
+}
+
+/* Parse string IN into a target floating-number of type TYPE and
+   store it as byte-stream ADDR.  Return whether parsing succeeded.  */
+template<typename T> struct scanf_length_modifier
+{
+  static constexpr char value = 0;
+};
+template<> struct scanf_length_modifier<double>
+{
+  static constexpr char value = 'l';
+};
+template<> struct scanf_length_modifier<long double>
+{
+  static constexpr char value = 'L';
+};
+template<typename T> bool
+host_float_ops<T>::from_string (gdb_byte *addr, const struct type *type,
+				const std::string &in) const
+{
+  T host_float;
+  int n, num;
+
+  std::string scan_format = "%";
+  if (scanf_length_modifier<T>::value)
+    scan_format += scanf_length_modifier<T>::value;
+  scan_format += "g%n";
+
+  num = sscanf (in.c_str (), scan_format.c_str(), &host_float, &n);
+
+  /* The sscanf man page suggests not making any assumptions on the effect
+     of %n on the result, so we don't.
+     That is why we simply test num == 0.  */
+  if (num == 0)
+    return false;
+
+  /* We only accept the whole string.  */
+  if (in[n])
+    return false;
+
+  to_target (type, &host_float, addr);
+  return true;
+}
+
+/* Convert the byte-stream ADDR, interpreted as floating-point type TYPE,
+   to an integer value (rounding towards zero).  */
+template<typename T> LONGEST
+host_float_ops<T>::to_longest (const gdb_byte *addr,
+			       const struct type *type) const
+{
+  T host_float;
+  from_target (type, addr, &host_float);
+  /* Converting an out-of-range value is undefined behavior in C, but we
+     prefer to return a defined value here.  */
+  if (host_float > std::numeric_limits<LONGEST>::max())
+    return std::numeric_limits<LONGEST>::max();
+  if (host_float < std::numeric_limits<LONGEST>::min())
+    return std::numeric_limits<LONGEST>::min();
+  return (LONGEST) host_float;
+}
+
+/* Convert signed integer VAL to a target floating-number of type TYPE
+   and store it as byte-stream ADDR.  */
+template<typename T> void
+host_float_ops<T>::from_longest (gdb_byte *addr, const struct type *type,
+				 LONGEST val) const
+{
+  T host_float = (T) val;
+  to_target (type, &host_float, addr);
+}
+
+/* Convert unsigned integer VAL to a target floating-number of type TYPE
+   and store it as byte-stream ADDR.  */
+template<typename T> void
+host_float_ops<T>::from_ulongest (gdb_byte *addr, const struct type *type,
+				  ULONGEST val) const
+{
+  T host_float = (T) val;
+  to_target (type, &host_float, addr);
+}
+
+/* Convert the byte-stream ADDR, interpreted as floating-point type TYPE,
+   to a floating-point value in the host "double" format.  */
+template<typename T> double
+host_float_ops<T>::to_host_double (const gdb_byte *addr,
+				   const struct type *type) const
+{
+  T host_float;
+  from_target (type, addr, &host_float);
+  return (double) host_float;
+}
+
+/* Convert floating-point value VAL in the host "double" format to a target
+   floating-number of type TYPE and store it as byte-stream ADDR.  */
+template<typename T> void
+host_float_ops<T>::from_host_double (gdb_byte *addr, const struct type *type,
+				     double val) const
+{
+  T host_float = (T) val;
+  to_target (type, &host_float, addr);
+}
+
+/* Convert a floating-point number of type FROM_TYPE from the target
+   byte-stream FROM to a floating-point number of type TO_TYPE, and
+   store it to the target byte-stream TO.  */
+template<typename T> void
+host_float_ops<T>::convert (const gdb_byte *from,
+			    const struct type *from_type,
+			    gdb_byte *to,
+			    const struct type *to_type) const
+{
+  T host_float;
+  from_target (from_type, from, &host_float);
+  to_target (to_type, &host_float, to);
+}
+
+/* Perform the binary operation indicated by OPCODE, using as operands the
+   target byte streams X and Y, interpreted as floating-point numbers of
+   types TYPE_X and TYPE_Y, respectively.  Convert the result to format
+   TYPE_RES and store it into the byte-stream RES.  */
+template<typename T> void
+host_float_ops<T>::binop (enum exp_opcode op,
+			  const gdb_byte *x, const struct type *type_x,
+			  const gdb_byte *y, const struct type *type_y,
+			  gdb_byte *res, const struct type *type_res) const
+{
+  T v1, v2, v = 0;
+
+  from_target (type_x, x, &v1);
+  from_target (type_y, y, &v2);
+
+  switch (op)
+    {
+      case BINOP_ADD:
+	v = v1 + v2;
+	break;
+
+      case BINOP_SUB:
+	v = v1 - v2;
+	break;
+
+      case BINOP_MUL:
+	v = v1 * v2;
+	break;
+
+      case BINOP_DIV:
+	v = v1 / v2;
+	break;
+
+      case BINOP_EXP:
+	errno = 0;
+	v = pow (v1, v2);
+	if (errno)
+	  error (_("Cannot perform exponentiation: %s"),
+		 safe_strerror (errno));
+	break;
+
+      case BINOP_MIN:
+	v = v1 < v2 ? v1 : v2;
+	break;
+
+      case BINOP_MAX:
+	v = v1 > v2 ? v1 : v2;
+	break;
+
+      default:
+	error (_("Integer-only operation on floating point number."));
+	break;
+    }
+
+  to_target (type_res, &v, res);
+}
+
+/* Compare the two target byte streams X and Y, interpreted as floating-point
+   numbers of types TYPE_X and TYPE_Y, respectively.  Return zero if X and Y
+   are equal, -1 if X is less than Y, and 1 otherwise.  */
+template<typename T> int
+host_float_ops<T>::compare (const gdb_byte *x, const struct type *type_x,
+			    const gdb_byte *y, const struct type *type_y) const
+{
+  T v1, v2;
+
+  from_target (type_x, x, &v1);
+  from_target (type_y, y, &v2);
+
+  if (v1 == v2)
+    return 0;
+  if (v1 < v2)
+    return -1;
+  return 1;
+}
+
+
+/* Implementation of target_float_ops using the MPFR library
+   mpfr_t as intermediate type.  */
+
+#ifdef HAVE_LIBMPFR
+
+#define MPFR_USE_INTMAX_T
+
+#include <mpfr.h>
+
+class mpfr_float_ops : public target_float_ops
+{
+public:
+  std::string to_string (const gdb_byte *addr, const struct type *type,
+			 const char *format) const override;
+  bool from_string (gdb_byte *addr, const struct type *type,
+		    const std::string &string) const override;
+
+  LONGEST to_longest (const gdb_byte *addr,
+		      const struct type *type) const override;
+  void from_longest (gdb_byte *addr, const struct type *type,
+		     LONGEST val) const override;
+  void from_ulongest (gdb_byte *addr, const struct type *type,
+		      ULONGEST val) const override;
+  double to_host_double (const gdb_byte *addr,
+			 const struct type *type) const override;
+  void from_host_double (gdb_byte *addr, const struct type *type,
+			 double val) const override;
+  void convert (const gdb_byte *from, const struct type *from_type,
+		gdb_byte *to, const struct type *to_type) const override;
+
+  void binop (enum exp_opcode opcode,
+	      const gdb_byte *x, const struct type *type_x,
+	      const gdb_byte *y, const struct type *type_y,
+	      gdb_byte *res, const struct type *type_res) const override;
+  int compare (const gdb_byte *x, const struct type *type_x,
+	       const gdb_byte *y, const struct type *type_y) const override;
+
+private:
+  /* Local wrapper class to handle mpfr_t initalization and cleanup.  */
+  class gdb_mpfr
+  {
+  public:
+    mpfr_t val;
+
+    gdb_mpfr (const struct type *type)
+    {
+      const struct floatformat *fmt = floatformat_from_type (type);
+      mpfr_init2 (val, floatformat_precision (fmt));
+    }
+
+    gdb_mpfr (const gdb_mpfr &source)
+    {
+      mpfr_init2 (val, mpfr_get_prec (source.val));
+    }
+
+    ~gdb_mpfr ()
+    {
+      mpfr_clear (val);
+    }
+  };
+
+  void from_target (const struct floatformat *fmt,
+		const gdb_byte *from, gdb_mpfr &to) const;
+  void from_target (const struct type *type,
+		const gdb_byte *from, gdb_mpfr &to) const;
+
+  void to_target (const struct type *type,
+		  const gdb_mpfr &from, gdb_byte *to) const;
+  void to_target (const struct floatformat *fmt,
+		  const gdb_mpfr &from, gdb_byte *to) const;
+};
+
+
+/* Convert TO/FROM target floating-point format to mpfr_t.  */
+
+void
+mpfr_float_ops::from_target (const struct floatformat *fmt,
+			     const gdb_byte *orig_from, gdb_mpfr &to) const
+{
+  const gdb_byte *from = orig_from;
+  mpfr_exp_t exponent;
+  unsigned long mant;
+  unsigned int mant_bits, mant_off;
+  int mant_bits_left;
+  int special_exponent;		/* It's a NaN, denorm or zero.  */
+  enum floatformat_byteorders order;
+  unsigned char newfrom[FLOATFORMAT_LARGEST_BYTES];
+  enum float_kind kind;
+
+  gdb_assert (fmt->totalsize
+	      <= FLOATFORMAT_LARGEST_BYTES * FLOATFORMAT_CHAR_BIT);
+
+  /* Handle non-numbers.  */
+  kind = floatformat_classify (fmt, from);
+  if (kind == float_infinite)
+    {
+      mpfr_set_inf (to.val, floatformat_is_negative (fmt, from) ? -1 : 1);
+      return;
+    }
+  if (kind == float_nan)
+    {
+      mpfr_set_nan (to.val);
+      return;
+    }
+
+  order = floatformat_normalize_byteorder (fmt, from, newfrom);
+
+  if (order != fmt->byteorder)
+    from = newfrom;
+
+  if (fmt->split_half)
+    {
+      gdb_mpfr top (to), bot (to);
+
+      from_target (fmt->split_half, from, top);
+      /* Preserve the sign of 0, which is the sign of the top half.  */
+      if (mpfr_zero_p (top.val))
+	{
+	  mpfr_set (to.val, top.val, MPFR_RNDN);
+	  return;
+	}
+      from_target (fmt->split_half,
+	       from + fmt->totalsize / FLOATFORMAT_CHAR_BIT / 2, bot);
+      mpfr_add (to.val, top.val, bot.val, MPFR_RNDN);
+      return;
+    }
+
+  exponent = get_field (from, order, fmt->totalsize, fmt->exp_start,
+			fmt->exp_len);
+  /* Note that if exponent indicates a NaN, we can't really do anything useful
+     (not knowing if the host has NaN's, or how to build one).  So it will
+     end up as an infinity or something close; that is OK.  */
+
+  mant_bits_left = fmt->man_len;
+  mant_off = fmt->man_start;
+  mpfr_set_zero (to.val, 0);
+
+  special_exponent = exponent == 0 || exponent == fmt->exp_nan;
+
+  /* Don't bias NaNs.  Use minimum exponent for denorms.  For
+     simplicity, we don't check for zero as the exponent doesn't matter.
+     Note the cast to int; exp_bias is unsigned, so it's important to
+     make sure the operation is done in signed arithmetic.  */
+  if (!special_exponent)
+    exponent -= fmt->exp_bias;
+  else if (exponent == 0)
+    exponent = 1 - fmt->exp_bias;
+
+  /* Build the result algebraically.  Might go infinite, underflow, etc;
+     who cares.  */
+
+  /* If this format uses a hidden bit, explicitly add it in now.  Otherwise,
+     increment the exponent by one to account for the integer bit.  */
+
+  if (!special_exponent)
+    {
+      if (fmt->intbit == floatformat_intbit_no)
+	mpfr_set_ui_2exp (to.val, 1, exponent, MPFR_RNDN);
+      else
+	exponent++;
+    }
+
+  gdb_mpfr tmp (to);
+
+  while (mant_bits_left > 0)
+    {
+      mant_bits = std::min (mant_bits_left, 32);
+
+      mant = get_field (from, order, fmt->totalsize, mant_off, mant_bits);
+
+      mpfr_set_ui (tmp.val, mant, MPFR_RNDN);
+      mpfr_mul_2si (tmp.val, tmp.val, exponent - mant_bits, MPFR_RNDN);
+      mpfr_add (to.val, to.val, tmp.val, MPFR_RNDN);
+      exponent -= mant_bits;
+      mant_off += mant_bits;
+      mant_bits_left -= mant_bits;
+    }
+
+  /* Negate it if negative.  */
+  if (get_field (from, order, fmt->totalsize, fmt->sign_start, 1))
+    mpfr_neg (to.val, to.val, MPFR_RNDN);
+}
+
+void
+mpfr_float_ops::from_target (const struct type *type,
+			     const gdb_byte *from, gdb_mpfr &to) const
+{
+  from_target (floatformat_from_type (type), from, to);
+}
+
+void
+mpfr_float_ops::to_target (const struct floatformat *fmt,
+			   const gdb_mpfr &from, gdb_byte *orig_to) const
+{
+  unsigned char *to = orig_to;
+  mpfr_exp_t exponent;
+  unsigned int mant_bits, mant_off;
+  int mant_bits_left;
+  enum floatformat_byteorders order = fmt->byteorder;
+  unsigned char newto[FLOATFORMAT_LARGEST_BYTES];
+
+  if (order != floatformat_little)
+    order = floatformat_big;
+
+  if (order != fmt->byteorder)
+    to = newto;
+
+  memset (to, 0, floatformat_totalsize_bytes (fmt));
+
+  if (fmt->split_half)
+    {
+      gdb_mpfr top (from), bot (from);
+
+      mpfr_set (top.val, from.val, MPFR_RNDN);
+      /* If the rounded top half is Inf, the bottom must be 0 not NaN
+	 or Inf.  */
+      if (mpfr_inf_p (top.val))
+	mpfr_set_zero (bot.val, 0);
+      else
+	mpfr_sub (bot.val, from.val, top.val, MPFR_RNDN);
+
+      to_target (fmt->split_half, top, to);
+      to_target (fmt->split_half, bot,
+		 to + fmt->totalsize / FLOATFORMAT_CHAR_BIT / 2);
+      return;
+    }
+
+  gdb_mpfr tmp (from);
+
+  if (mpfr_zero_p (from.val))
+    goto finalize_byteorder;	/* Result is zero */
+
+  mpfr_set (tmp.val, from.val, MPFR_RNDN);
+
+  if (mpfr_nan_p (tmp.val))	/* Result is NaN */
+    {
+      /* From is NaN */
+      put_field (to, order, fmt->totalsize, fmt->exp_start,
+		 fmt->exp_len, fmt->exp_nan);
+      /* Be sure it's not infinity, but NaN value is irrel.  */
+      put_field (to, order, fmt->totalsize, fmt->man_start,
+		 fmt->man_len, 1);
+      goto finalize_byteorder;
+    }
+
+  /* If negative, set the sign bit.  */
+  if (mpfr_sgn (tmp.val) < 0)
+    {
+      put_field (to, order, fmt->totalsize, fmt->sign_start, 1, 1);
+      mpfr_neg (tmp.val, tmp.val, MPFR_RNDN);
+    }
+
+  if (mpfr_inf_p (tmp.val))		/* Result is Infinity.  */
+    {
+      /* Infinity exponent is same as NaN's.  */
+      put_field (to, order, fmt->totalsize, fmt->exp_start,
+		 fmt->exp_len, fmt->exp_nan);
+      /* Infinity mantissa is all zeroes.  */
+      put_field (to, order, fmt->totalsize, fmt->man_start,
+		 fmt->man_len, 0);
+      goto finalize_byteorder;
+    }
+
+  mpfr_frexp (&exponent, tmp.val, tmp.val, MPFR_RNDN);
+
+  if (exponent + fmt->exp_bias <= 0)
+    {
+      /* The value is too small to be expressed in the destination
+	 type (not enough bits in the exponent.  Treat as 0.  */
+      put_field (to, order, fmt->totalsize, fmt->exp_start,
+		 fmt->exp_len, 0);
+      put_field (to, order, fmt->totalsize, fmt->man_start,
+		 fmt->man_len, 0);
+      goto finalize_byteorder;
+    }
+
+  if (exponent + fmt->exp_bias >= (1 << fmt->exp_len))
+    {
+      /* The value is too large to fit into the destination.
+	 Treat as infinity.  */
+      put_field (to, order, fmt->totalsize, fmt->exp_start,
+		 fmt->exp_len, fmt->exp_nan);
+      put_field (to, order, fmt->totalsize, fmt->man_start,
+		 fmt->man_len, 0);
+      goto finalize_byteorder;
+    }
+
+  put_field (to, order, fmt->totalsize, fmt->exp_start, fmt->exp_len,
+	     exponent + fmt->exp_bias - 1);
+
+  mant_bits_left = fmt->man_len;
+  mant_off = fmt->man_start;
+  while (mant_bits_left > 0)
+    {
+      unsigned long mant_long;
+
+      mant_bits = mant_bits_left < 32 ? mant_bits_left : 32;
+
+      mpfr_mul_2ui (tmp.val, tmp.val, 32, MPFR_RNDN);
+      mant_long = mpfr_get_ui (tmp.val, MPFR_RNDZ) & 0xffffffffL;
+      mpfr_sub_ui (tmp.val, tmp.val, mant_long, MPFR_RNDZ);
+
+      /* If the integer bit is implicit, then we need to discard it.
+         If we are discarding a zero, we should be (but are not) creating
+         a denormalized number which means adjusting the exponent
+         (I think).  */
+      if (mant_bits_left == fmt->man_len
+	  && fmt->intbit == floatformat_intbit_no)
+	{
+	  mant_long <<= 1;
+	  mant_long &= 0xffffffffL;
+          /* If we are processing the top 32 mantissa bits of a doublest
+             so as to convert to a float value with implied integer bit,
+             we will only be putting 31 of those 32 bits into the
+             final value due to the discarding of the top bit.  In the
+             case of a small float value where the number of mantissa
+             bits is less than 32, discarding the top bit does not alter
+             the number of bits we will be adding to the result.  */
+          if (mant_bits == 32)
+            mant_bits -= 1;
+	}
+
+      if (mant_bits < 32)
+	{
+	  /* The bits we want are in the most significant MANT_BITS bits of
+	     mant_long.  Move them to the least significant.  */
+	  mant_long >>= 32 - mant_bits;
+	}
+
+      put_field (to, order, fmt->totalsize,
+		 mant_off, mant_bits, mant_long);
+      mant_off += mant_bits;
+      mant_bits_left -= mant_bits;
+    }
+
+ finalize_byteorder:
+  /* Do we need to byte-swap the words in the result?  */
+  if (order != fmt->byteorder)
+    floatformat_normalize_byteorder (fmt, newto, orig_to);
+}
+
+void
+mpfr_float_ops::to_target (const struct type *type,
+			   const gdb_mpfr &from, gdb_byte *to) const
+{
+  /* Ensure possible padding bytes in the target buffer are zeroed out.  */
+  memset (to, 0, TYPE_LENGTH (type));
+
+  to_target (floatformat_from_type (type), from, to);
+}
+
+/* Convert the byte-stream ADDR, interpreted as floating-point type TYPE,
+   to a string, optionally using the print format FORMAT.  */
+std::string
+mpfr_float_ops::to_string (const gdb_byte *addr,
+			   const struct type *type,
+			   const char *format) const
+{
+  const struct floatformat *fmt = floatformat_from_type (type);
+
+  /* Unless we need to adhere to a specific format, provide special
+     output for certain cases.  */
+  if (format == nullptr)
+    {
+      /* Detect invalid representations.  */
+      if (!floatformat_is_valid (fmt, addr))
+	return "<invalid float value>";
+
+      /* Handle NaN and Inf.  */
+      enum float_kind kind = floatformat_classify (fmt, addr);
+      if (kind == float_nan)
+	{
+	  const char *sign = floatformat_is_negative (fmt, addr)? "-" : "";
+	  const char *mantissa = floatformat_mantissa (fmt, addr);
+	  return string_printf ("%snan(0x%s)", sign, mantissa);
+	}
+      else if (kind == float_infinite)
+	{
+	  const char *sign = floatformat_is_negative (fmt, addr)? "-" : "";
+	  return string_printf ("%sinf", sign);
+	}
+    }
+
+  /* Determine the format string to use on the host side.  */
+  std::string host_format = floatformat_printf_format (fmt, format, 'R');
+
+  gdb_mpfr tmp (type);
+  from_target (type, addr, tmp);
+
+  int size = mpfr_snprintf (NULL, 0, host_format.c_str (), tmp.val);
+  std::string str (size, '\0');
+  mpfr_sprintf (&str[0], host_format.c_str (), tmp.val);
+
+  return str;
+}
+
+/* Parse string STRING into a target floating-number of type TYPE and
+   store it as byte-stream ADDR.  Return whether parsing succeeded.  */
+bool
+mpfr_float_ops::from_string (gdb_byte *addr,
+			     const struct type *type,
+			     const std::string &in) const
+{
+  gdb_mpfr tmp (type);
+
+  char *endptr;
+  mpfr_strtofr (tmp.val, in.c_str (), &endptr, 0, MPFR_RNDN);
+
+  /* We only accept the whole string.  */
+  if (*endptr)
+    return false;
+
+  to_target (type, tmp, addr);
+  return true;
+}
+
+/* Convert the byte-stream ADDR, interpreted as floating-point type TYPE,
+   to an integer value (rounding towards zero).  */
+LONGEST
+mpfr_float_ops::to_longest (const gdb_byte *addr,
+			    const struct type *type) const
+{
+  gdb_mpfr tmp (type);
+  from_target (type, addr, tmp);
+  return mpfr_get_sj (tmp.val, MPFR_RNDZ);
+}
+
+/* Convert signed integer VAL to a target floating-number of type TYPE
+   and store it as byte-stream ADDR.  */
+void
+mpfr_float_ops::from_longest (gdb_byte *addr,
+			      const struct type *type,
+			      LONGEST val) const
+{
+  gdb_mpfr tmp (type);
+  mpfr_set_sj (tmp.val, val, MPFR_RNDN);
+  to_target (type, tmp, addr);
+}
+
+/* Convert unsigned integer VAL to a target floating-number of type TYPE
+   and store it as byte-stream ADDR.  */
+void
+mpfr_float_ops::from_ulongest (gdb_byte *addr,
+			       const struct type *type,
+			       ULONGEST val) const
+{
+  gdb_mpfr tmp (type);
+  mpfr_set_uj (tmp.val, val, MPFR_RNDN);
+  to_target (type, tmp, addr);
+}
+
+/* Convert the byte-stream ADDR, interpreted as floating-point type TYPE,
+   to a floating-point value in the host "double" format.  */
+double
+mpfr_float_ops::to_host_double (const gdb_byte *addr,
+				const struct type *type) const
+{
+  gdb_mpfr tmp (type);
+  from_target (type, addr, tmp);
+  return mpfr_get_d (tmp.val, MPFR_RNDN);
+}
+
+/* Convert floating-point value VAL in the host "double" format to a target
+   floating-number of type TYPE and store it as byte-stream ADDR.  */
+void
+mpfr_float_ops::from_host_double (gdb_byte *addr,
+				  const struct type *type,
+				  double val) const
+{
+  gdb_mpfr tmp (type);
+  mpfr_set_d (tmp.val, val, MPFR_RNDN);
+  to_target (type, tmp, addr);
+}
+
+/* Convert a floating-point number of type FROM_TYPE from the target
+   byte-stream FROM to a floating-point number of type TO_TYPE, and
+   store it to the target byte-stream TO.  */
+void
+mpfr_float_ops::convert (const gdb_byte *from,
+			 const struct type *from_type,
+			 gdb_byte *to,
+			 const struct type *to_type) const
+{
+  gdb_mpfr from_tmp (from_type), to_tmp (to_type);
+  from_target (from_type, from, from_tmp);
+  mpfr_set (to_tmp.val, from_tmp.val, MPFR_RNDN);
+  to_target (to_type, to_tmp, to);
+}
+
+/* Perform the binary operation indicated by OPCODE, using as operands the
+   target byte streams X and Y, interpreted as floating-point numbers of
+   types TYPE_X and TYPE_Y, respectively.  Convert the result to type
+   TYPE_RES and store it into the byte-stream RES.  */
+void
+mpfr_float_ops::binop (enum exp_opcode op,
+		       const gdb_byte *x, const struct type *type_x,
+		       const gdb_byte *y, const struct type *type_y,
+		       gdb_byte *res, const struct type *type_res) const
+{
+  gdb_mpfr x_tmp (type_x), y_tmp (type_y), tmp (type_res);
+
+  from_target (type_x, x, x_tmp);
+  from_target (type_y, y, y_tmp);
+
+  switch (op)
+    {
+      case BINOP_ADD:
+	mpfr_add (tmp.val, x_tmp.val, y_tmp.val, MPFR_RNDN);
+	break;
+
+      case BINOP_SUB:
+	mpfr_sub (tmp.val, x_tmp.val, y_tmp.val, MPFR_RNDN);
+	break;
+
+      case BINOP_MUL:
+	mpfr_mul (tmp.val, x_tmp.val, y_tmp.val, MPFR_RNDN);
+	break;
+
+      case BINOP_DIV:
+	mpfr_div (tmp.val, x_tmp.val, y_tmp.val, MPFR_RNDN);
+	break;
+
+      case BINOP_EXP:
+	mpfr_pow (tmp.val, x_tmp.val, y_tmp.val, MPFR_RNDN);
+	break;
+
+      case BINOP_MIN:
+	mpfr_min (tmp.val, x_tmp.val, y_tmp.val, MPFR_RNDN);
+	break;
+
+      case BINOP_MAX:
+	mpfr_max (tmp.val, x_tmp.val, y_tmp.val, MPFR_RNDN);
+	break;
+
+      default:
+	error (_("Integer-only operation on floating point number."));
+	break;
+    }
+
+  to_target (type_res, tmp, res);
+}
+
+/* Compare the two target byte streams X and Y, interpreted as floating-point
+   numbers of types TYPE_X and TYPE_Y, respectively.  Return zero if X and Y
+   are equal, -1 if X is less than Y, and 1 otherwise.  */
+int
+mpfr_float_ops::compare (const gdb_byte *x, const struct type *type_x,
+			 const gdb_byte *y, const struct type *type_y) const
+{
+  gdb_mpfr x_tmp (type_x), y_tmp (type_y);
+
+  from_target (type_x, x, x_tmp);
+  from_target (type_y, y, y_tmp);
+
+  if (mpfr_equal_p (x_tmp.val, y_tmp.val))
+    return 0;
+  else if (mpfr_less_p (x_tmp.val, y_tmp.val))
+    return -1;
+  else
+    return 1;
+}
+
+#endif
+
+
+/* Helper routines operating on decimal floating-point data.  */
+
+/* Decimal floating point is one of the extension to IEEE 754, which is
+   described in http://grouper.ieee.org/groups/754/revision.html and
+   http://www2.hursley.ibm.com/decimal/.  It completes binary floating
+   point by representing floating point more exactly.  */
+
+/* The order of the following headers is important for making sure
+   decNumber structure is large enough to hold decimal128 digits.  */
+
+#include "dpd/decimal128.h"
+#include "dpd/decimal64.h"
+#include "dpd/decimal32.h"
+
+/* When using decimal128, this is the maximum string length + 1
+   (value comes from libdecnumber's DECIMAL128_String constant).  */
+#define MAX_DECIMAL_STRING  43
+
+/* In GDB, we are using an array of gdb_byte to represent decimal values.
+   They are stored in host byte order.  This routine does the conversion if
+   the target byte order is different.  */
+static void
+match_endianness (const gdb_byte *from, const struct type *type, gdb_byte *to)
+{
+  gdb_assert (TYPE_CODE (type) == TYPE_CODE_DECFLOAT);
+
+  int len = TYPE_LENGTH (type);
+  int i;
+
+#if WORDS_BIGENDIAN
+#define OPPOSITE_BYTE_ORDER BFD_ENDIAN_LITTLE
+#else
+#define OPPOSITE_BYTE_ORDER BFD_ENDIAN_BIG
+#endif
+
+  if (gdbarch_byte_order (get_type_arch (type)) == OPPOSITE_BYTE_ORDER)
+    for (i = 0; i < len; i++)
+      to[i] = from[len - i - 1];
+  else
+    for (i = 0; i < len; i++)
+      to[i] = from[i];
+
+  return;
+}
+
+/* Helper function to get the appropriate libdecnumber context for each size
+   of decimal float.  */
+static void
+set_decnumber_context (decContext *ctx, const struct type *type)
+{
+  gdb_assert (TYPE_CODE (type) == TYPE_CODE_DECFLOAT);
+
+  switch (TYPE_LENGTH (type))
+    {
+      case 4:
+	decContextDefault (ctx, DEC_INIT_DECIMAL32);
+	break;
+      case 8:
+	decContextDefault (ctx, DEC_INIT_DECIMAL64);
+	break;
+      case 16:
+	decContextDefault (ctx, DEC_INIT_DECIMAL128);
+	break;
+    }
+
+  ctx->traps = 0;
+}
+
+/* Check for errors signaled in the decimal context structure.  */
+static void
+decimal_check_errors (decContext *ctx)
+{
+  /* An error here could be a division by zero, an overflow, an underflow or
+     an invalid operation (from the DEC_Errors constant in decContext.h).
+     Since GDB doesn't complain about division by zero, overflow or underflow
+     errors for binary floating, we won't complain about them for decimal
+     floating either.  */
+  if (ctx->status & DEC_IEEE_854_Invalid_operation)
+    {
+      /* Leave only the error bits in the status flags.  */
+      ctx->status &= DEC_IEEE_854_Invalid_operation;
+      error (_("Cannot perform operation: %s"),
+	     decContextStatusToString (ctx));
+    }
+}
+
+/* Helper function to convert from libdecnumber's appropriate representation
+   for computation to each size of decimal float.  */
+static void
+decimal_from_number (const decNumber *from,
+                     gdb_byte *to, const struct type *type)
+{
+  gdb_byte dec[16];
+
+  decContext set;
+
+  set_decnumber_context (&set, type);
+
+  switch (TYPE_LENGTH (type))
+    {
+      case 4:
+	decimal32FromNumber ((decimal32 *) dec, from, &set);
+	break;
+      case 8:
+	decimal64FromNumber ((decimal64 *) dec, from, &set);
+	break;
+      case 16:
+	decimal128FromNumber ((decimal128 *) dec, from, &set);
+	break;
+      default:
+	error (_("Unknown decimal floating point type."));
+	break;
+    }
+
+  match_endianness (dec, type, to);
+}
+
+/* Helper function to convert each size of decimal float to libdecnumber's
+   appropriate representation for computation.  */
+static void
+decimal_to_number (const gdb_byte *addr, const struct type *type,
+                   decNumber *to)
+{
+  gdb_byte dec[16];
+  match_endianness (addr, type, dec);
+
+  switch (TYPE_LENGTH (type))
+    {
+      case 4:
+	decimal32ToNumber ((decimal32 *) dec, to);
+	break;
+      case 8:
+	decimal64ToNumber ((decimal64 *) dec, to);
+	break;
+      case 16:
+	decimal128ToNumber ((decimal128 *) dec, to);
+	break;
+      default:
+	error (_("Unknown decimal floating point type."));
+	break;
+    }
+}
+
+/* Returns true if ADDR (which is of type TYPE) is the number zero.  */
+static bool
+decimal_is_zero (const gdb_byte *addr, const struct type *type)
+{
+  decNumber number;
+
+  decimal_to_number (addr, type, &number);
+
+  return decNumberIsZero (&number);
+}
+
+
+/* Implementation of target_float_ops using the libdecnumber decNumber type
+   as intermediate format.  */
+
+class decimal_float_ops : public target_float_ops
+{
+public:
+  std::string to_string (const gdb_byte *addr, const struct type *type,
+			 const char *format) const override;
+  bool from_string (gdb_byte *addr, const struct type *type,
+		    const std::string &string) const override;
+
+  LONGEST to_longest (const gdb_byte *addr,
+		      const struct type *type) const override;
+  void from_longest (gdb_byte *addr, const struct type *type,
+		     LONGEST val) const override;
+  void from_ulongest (gdb_byte *addr, const struct type *type,
+		      ULONGEST val) const override;
+  double to_host_double (const gdb_byte *addr,
+			 const struct type *type) const override
+  {
+    /* We don't support conversions between target decimal floating-point
+       types and the host double type.  */
+    gdb_assert_not_reached ("invalid operation on decimal float");
+  }
+  void from_host_double (gdb_byte *addr, const struct type *type,
+			 double val) const override
+  {
+    /* We don't support conversions between target decimal floating-point
+       types and the host double type.  */
+    gdb_assert_not_reached ("invalid operation on decimal float");
+  }
+  void convert (const gdb_byte *from, const struct type *from_type,
+		gdb_byte *to, const struct type *to_type) const override;
+
+  void binop (enum exp_opcode opcode,
+	      const gdb_byte *x, const struct type *type_x,
+	      const gdb_byte *y, const struct type *type_y,
+	      gdb_byte *res, const struct type *type_res) const override;
+  int compare (const gdb_byte *x, const struct type *type_x,
+	       const gdb_byte *y, const struct type *type_y) const override;
+};
+
+/* Convert decimal type to its string representation.  LEN is the length
+   of the decimal type, 4 bytes for decimal32, 8 bytes for decimal64 and
+   16 bytes for decimal128.  */
+std::string
+decimal_float_ops::to_string (const gdb_byte *addr, const struct type *type,
+			      const char *format = nullptr) const
+{
+  gdb_byte dec[16];
+
+  match_endianness (addr, type, dec);
+
+  if (format != nullptr)
+    {
+      /* We don't handle format strings (yet).  If the host printf supports
+	 decimal floating point types, just use this.  Otherwise, fall back
+	 to printing the number while ignoring the format string.  */
+#if defined (PRINTF_HAS_DECFLOAT)
+      /* FIXME: This makes unwarranted assumptions about the host ABI!  */
+      return string_printf (format, dec);
+#endif
+    }
+
+  std::string result;
+  result.resize (MAX_DECIMAL_STRING);
+
+  switch (TYPE_LENGTH (type))
+    {
+      case 4:
+	decimal32ToString ((decimal32 *) dec, &result[0]);
+	break;
+      case 8:
+	decimal64ToString ((decimal64 *) dec, &result[0]);
+	break;
+      case 16:
+	decimal128ToString ((decimal128 *) dec, &result[0]);
+	break;
+      default:
+	error (_("Unknown decimal floating point type."));
+	break;
+    }
+
+  return result;
+}
+
+/* Convert the string form of a decimal value to its decimal representation.
+   LEN is the length of the decimal type, 4 bytes for decimal32, 8 bytes for
+   decimal64 and 16 bytes for decimal128.  */
+bool
+decimal_float_ops::from_string (gdb_byte *addr, const struct type *type,
+				const std::string &string) const
+{
+  decContext set;
+  gdb_byte dec[16];
+
+  set_decnumber_context (&set, type);
+
+  switch (TYPE_LENGTH (type))
+    {
+      case 4:
+	decimal32FromString ((decimal32 *) dec, string.c_str (), &set);
+	break;
+      case 8:
+	decimal64FromString ((decimal64 *) dec, string.c_str (), &set);
+	break;
+      case 16:
+	decimal128FromString ((decimal128 *) dec, string.c_str (), &set);
+	break;
+      default:
+	error (_("Unknown decimal floating point type."));
+	break;
+    }
+
+  match_endianness (dec, type, addr);
+
+  /* Check for errors in the DFP operation.  */
+  decimal_check_errors (&set);
+
+  return true;
+}
+
+/* Converts a LONGEST to a decimal float of specified LEN bytes.  */
+void
+decimal_float_ops::from_longest (gdb_byte *addr, const struct type *type,
+				 LONGEST from) const
+{
+  decNumber number;
+
+  if ((int32_t) from != from)
+    /* libdecnumber can convert only 32-bit integers.  */
+    error (_("Conversion of large integer to a "
+	     "decimal floating type is not supported."));
+
+  decNumberFromInt32 (&number, (int32_t) from);
+
+  decimal_from_number (&number, addr, type);
+}
+
+/* Converts a ULONGEST to a decimal float of specified LEN bytes.  */
+void
+decimal_float_ops::from_ulongest (gdb_byte *addr, const struct type *type,
+				  ULONGEST from) const
+{
+  decNumber number;
+
+  if ((uint32_t) from != from)
+    /* libdecnumber can convert only 32-bit integers.  */
+    error (_("Conversion of large integer to a "
+	     "decimal floating type is not supported."));
+
+  decNumberFromUInt32 (&number, (uint32_t) from);
+
+  decimal_from_number (&number, addr, type);
+}
+
+/* Converts a decimal float of LEN bytes to a LONGEST.  */
+LONGEST
+decimal_float_ops::to_longest (const gdb_byte *addr,
+                               const struct type *type) const
+{
+  /* libdecnumber has a function to convert from decimal to integer, but
+     it doesn't work when the decimal number has a fractional part.  */
+  std::string str = to_string (addr, type);
+  return strtoll (str.c_str (), NULL, 10);
+}
+
+/* Perform operation OP with operands X and Y with sizes LEN_X and LEN_Y
+   and byte orders BYTE_ORDER_X and BYTE_ORDER_Y, and store value in
+   RESULT with size LEN_RESULT and byte order BYTE_ORDER_RESULT.  */
+void
+decimal_float_ops::binop (enum exp_opcode op,
+			  const gdb_byte *x, const struct type *type_x,
+			  const gdb_byte *y, const struct type *type_y,
+			  gdb_byte *res, const struct type *type_res) const
+{
+  decContext set;
+  decNumber number1, number2, number3;
+
+  decimal_to_number (x, type_x, &number1);
+  decimal_to_number (y, type_y, &number2);
+
+  set_decnumber_context (&set, type_res);
+
+  switch (op)
+    {
+      case BINOP_ADD:
+	decNumberAdd (&number3, &number1, &number2, &set);
+	break;
+      case BINOP_SUB:
+	decNumberSubtract (&number3, &number1, &number2, &set);
+	break;
+      case BINOP_MUL:
+	decNumberMultiply (&number3, &number1, &number2, &set);
+	break;
+      case BINOP_DIV:
+	decNumberDivide (&number3, &number1, &number2, &set);
+	break;
+      case BINOP_EXP:
+	decNumberPower (&number3, &number1, &number2, &set);
+	break;
+     default:
+	error (_("Operation not valid for decimal floating point number."));
+	break;
+    }
+
+  /* Check for errors in the DFP operation.  */
+  decimal_check_errors (&set);
+
+  decimal_from_number (&number3, res, type_res);
+}
+
+/* Compares two numbers numerically.  If X is less than Y then the return value
+   will be -1.  If they are equal, then the return value will be 0.  If X is
+   greater than the Y then the return value will be 1.  */
+int
+decimal_float_ops::compare (const gdb_byte *x, const struct type *type_x,
+			    const gdb_byte *y, const struct type *type_y) const
+{
+  decNumber number1, number2, result;
+  decContext set;
+  const struct type *type_result;
+
+  decimal_to_number (x, type_x, &number1);
+  decimal_to_number (y, type_y, &number2);
+
+  /* Perform the comparison in the larger of the two sizes.  */
+  type_result = TYPE_LENGTH (type_x) > TYPE_LENGTH (type_y) ? type_x : type_y;
+  set_decnumber_context (&set, type_result);
+
+  decNumberCompare (&result, &number1, &number2, &set);
+
+  /* Check for errors in the DFP operation.  */
+  decimal_check_errors (&set);
+
+  if (decNumberIsNaN (&result))
+    error (_("Comparison with an invalid number (NaN)."));
+  else if (decNumberIsZero (&result))
+    return 0;
+  else if (decNumberIsNegative (&result))
+    return -1;
+  else
+    return 1;
+}
+
+/* Convert a decimal value from a decimal type with LEN_FROM bytes to a
+   decimal type with LEN_TO bytes.  */
+void
+decimal_float_ops::convert (const gdb_byte *from, const struct type *from_type,
+			    gdb_byte *to, const struct type *to_type) const
+{
+  decNumber number;
+
+  decimal_to_number (from, from_type, &number);
+  decimal_from_number (&number, to, to_type);
+}
+
+
+/* Typed floating-point routines.  These routines operate on floating-point
+   values in target format, represented by a byte buffer interpreted as a
+   "struct type", which may be either a binary or decimal floating-point
+   type (TYPE_CODE_FLT or TYPE_CODE_DECFLOAT).  */
+
+/* Return whether TYPE1 and TYPE2 are of the same category (binary or
+   decimal floating-point).  */
+static bool
+target_float_same_category_p (const struct type *type1,
+			      const struct type *type2)
+{
+  return TYPE_CODE (type1) == TYPE_CODE (type2);
+}
+
+/* Return whether TYPE1 and TYPE2 use the same floating-point format.  */
+static bool
+target_float_same_format_p (const struct type *type1,
+			    const struct type *type2)
+{
+  if (!target_float_same_category_p (type1, type2))
+    return false;
+
+  switch (TYPE_CODE (type1))
+    {
+      case TYPE_CODE_FLT:
+	return floatformat_from_type (type1) == floatformat_from_type (type2);
+
+      case TYPE_CODE_DECFLOAT:
+	return (TYPE_LENGTH (type1) == TYPE_LENGTH (type2)
+		&& (gdbarch_byte_order (get_type_arch (type1))
+		    == gdbarch_byte_order (get_type_arch (type2))));
+
+      default:
+	gdb_assert_not_reached ("unexpected type code");
+    }
+}
+
+/* Return the size (without padding) of the target floating-point
+   format used by TYPE.  */
+static int
+target_float_format_length (const struct type *type)
+{
+  switch (TYPE_CODE (type))
+    {
+      case TYPE_CODE_FLT:
+	return floatformat_totalsize_bytes (floatformat_from_type (type));
+
+      case TYPE_CODE_DECFLOAT:
+	return TYPE_LENGTH (type);
+
+      default:
+	gdb_assert_not_reached ("unexpected type code");
+    }
+}
+
+/* Identifiers of available host-side intermediate formats.  These must
+   be sorted so the that the more "general" kinds come later.  */
+enum target_float_ops_kind
+{
+  /* Target binary floating-point formats that match a host format.  */
+  host_float = 0,
+  host_double,
+  host_long_double,
+  /* Any other target binary floating-point format.  */
+  binary,
+  /* Any target decimal floating-point format.  */
+  decimal
+};
+
+/* Given a target type TYPE, choose the best host-side intermediate format
+   to perform operations on TYPE in.  */
+static enum target_float_ops_kind
+get_target_float_ops_kind (const struct type *type)
+{
+  switch (TYPE_CODE (type))
+    {
+      case TYPE_CODE_FLT:
+        {
+	  const struct floatformat *fmt = floatformat_from_type (type);
+
+	  /* Binary floating-point formats matching a host format.  */
+	  if (fmt == host_float_format)
+	    return target_float_ops_kind::host_float;
+	  if (fmt == host_double_format)
+	    return target_float_ops_kind::host_double;
+	  if (fmt == host_long_double_format)
+	    return target_float_ops_kind::host_long_double;
+
+	  /* Any other binary floating-point format.  */
+	  return target_float_ops_kind::binary;
+	}
+
+      case TYPE_CODE_DECFLOAT:
+	{
+	  /* Any decimal floating-point format.  */
+	  return target_float_ops_kind::decimal;
+	}
+
+      default:
+	gdb_assert_not_reached ("unexpected type code");
+    }
+}
+
+/* Return target_float_ops to peform operations for KIND.  */
+static const target_float_ops *
+get_target_float_ops (enum target_float_ops_kind kind)
+{
+  switch (kind)
+    {
+      /* If the type format matches one of the host floating-point
+	 types, use that type as intermediate format.  */
+      case target_float_ops_kind::host_float:
+        {
+	  static host_float_ops<float> host_float_ops_float;
+	  return &host_float_ops_float;
+	}
+
+      case target_float_ops_kind::host_double:
+        {
+	  static host_float_ops<double> host_float_ops_double;
+	  return &host_float_ops_double;
+	}
+
+      case target_float_ops_kind::host_long_double:
+        {
+	  static host_float_ops<long double> host_float_ops_long_double;
+	  return &host_float_ops_long_double;
+	}
+
+      /* For binary floating-point formats that do not match any host format,
+         use mpfr_t as intermediate format to provide precise target-floating
+         point emulation.  However, if the MPFR library is not availabe,
+         use the largest host floating-point type as intermediate format.  */
+      case target_float_ops_kind::binary:
+        {
+#ifdef HAVE_LIBMPFR
+	  static mpfr_float_ops binary_float_ops;
+#else
+	  static host_float_ops<long double> binary_float_ops;
+#endif
+	  return &binary_float_ops;
+	}
+
+      /* For decimal floating-point types, always use the libdecnumber
+	 decNumber type as intermediate format.  */
+      case target_float_ops_kind::decimal:
+	{
+	  static decimal_float_ops decimal_float_ops;
+	  return &decimal_float_ops;
+	}
+
+      default:
+	gdb_assert_not_reached ("unexpected target_float_ops_kind");
+    }
+}
+
+/* Given a target type TYPE, determine the best host-side intermediate format
+   to perform operations on TYPE in.  */
+static const target_float_ops *
+get_target_float_ops (const struct type *type)
+{
+  enum target_float_ops_kind kind = get_target_float_ops_kind (type);
+  return get_target_float_ops (kind);
+}
+
+/* The same for operations involving two target types TYPE1 and TYPE2.  */
+static const target_float_ops *
+get_target_float_ops (const struct type *type1, const struct type *type2)
+{
+  gdb_assert (TYPE_CODE (type1) == TYPE_CODE (type2));
+
+  enum target_float_ops_kind kind1 = get_target_float_ops_kind (type1);
+  enum target_float_ops_kind kind2 = get_target_float_ops_kind (type2);
+
+  /* Given the way the kinds are sorted, we simply choose the larger one;
+     this will be able to hold values of either type.  */
+  return get_target_float_ops (std::max (kind1, kind2));
+}
+
+/* Return whether the byte-stream ADDR holds a valid value of
+   floating-point type TYPE.  */
+bool
+target_float_is_valid (const gdb_byte *addr, const struct type *type)
+{
+  if (TYPE_CODE (type) == TYPE_CODE_FLT)
+    return floatformat_is_valid (floatformat_from_type (type), addr);
+
+  if (TYPE_CODE (type) == TYPE_CODE_DECFLOAT)
+    return true;
+
+  gdb_assert_not_reached ("unexpected type code");
+}
+
+/* Return whether the byte-stream ADDR, interpreted as floating-point
+   type TYPE, is numerically equal to zero (of either sign).  */
+bool
+target_float_is_zero (const gdb_byte *addr, const struct type *type)
+{
+  if (TYPE_CODE (type) == TYPE_CODE_FLT)
+    return (floatformat_classify (floatformat_from_type (type), addr)
+	    == float_zero);
+
+  if (TYPE_CODE (type) == TYPE_CODE_DECFLOAT)
+    return decimal_is_zero (addr, type);
+
+  gdb_assert_not_reached ("unexpected type code");
+}
+
+/* Convert the byte-stream ADDR, interpreted as floating-point type TYPE,
+   to a string, optionally using the print format FORMAT.  */
+std::string
+target_float_to_string (const gdb_byte *addr, const struct type *type,
+			const char *format)
+{
+  /* Unless we need to adhere to a specific format, provide special
+     output for special cases of binary floating-point numbers.  */
+  if (format == nullptr && TYPE_CODE (type) == TYPE_CODE_FLT)
+    {
+      const struct floatformat *fmt = floatformat_from_type (type);
+
+      /* Detect invalid representations.  */
+      if (!floatformat_is_valid (fmt, addr))
+	return "<invalid float value>";
+
+      /* Handle NaN and Inf.  */
+      enum float_kind kind = floatformat_classify (fmt, addr);
+      if (kind == float_nan)
+	{
+	  const char *sign = floatformat_is_negative (fmt, addr)? "-" : "";
+	  const char *mantissa = floatformat_mantissa (fmt, addr);
+	  return string_printf ("%snan(0x%s)", sign, mantissa);
+	}
+      else if (kind == float_infinite)
+	{
+	  const char *sign = floatformat_is_negative (fmt, addr)? "-" : "";
+	  return string_printf ("%sinf", sign);
+	}
+    }
+
+  const target_float_ops *ops = get_target_float_ops (type);
+  return ops->to_string (addr, type, format);
+}
+
+/* Parse string STRING into a target floating-number of type TYPE and
+   store it as byte-stream ADDR.  Return whether parsing succeeded.  */
+bool
+target_float_from_string (gdb_byte *addr, const struct type *type,
+			  const std::string &string)
+{
+  const target_float_ops *ops = get_target_float_ops (type);
+  return ops->from_string (addr, type, string);
+}
+
+/* Convert the byte-stream ADDR, interpreted as floating-point type TYPE,
+   to an integer value (rounding towards zero).  */
+LONGEST
+target_float_to_longest (const gdb_byte *addr, const struct type *type)
+{
+  const target_float_ops *ops = get_target_float_ops (type);
+  return ops->to_longest (addr, type);
+}
+
+/* Convert signed integer VAL to a target floating-number of type TYPE
+   and store it as byte-stream ADDR.  */
+void
+target_float_from_longest (gdb_byte *addr, const struct type *type,
+			   LONGEST val)
+{
+  const target_float_ops *ops = get_target_float_ops (type);
+  ops->from_longest (addr, type, val);
+}
+
+/* Convert unsigned integer VAL to a target floating-number of type TYPE
+   and store it as byte-stream ADDR.  */
+void
+target_float_from_ulongest (gdb_byte *addr, const struct type *type,
+			    ULONGEST val)
+{
+  const target_float_ops *ops = get_target_float_ops (type);
+  ops->from_ulongest (addr, type, val);
+}
+
+/* Convert the byte-stream ADDR, interpreted as floating-point type TYPE,
+   to a floating-point value in the host "double" format.  */
+double
+target_float_to_host_double (const gdb_byte *addr,
+			     const struct type *type)
+{
+  const target_float_ops *ops = get_target_float_ops (type);
+  return ops->to_host_double (addr, type);
+}
+
+/* Convert floating-point value VAL in the host "double" format to a target
+   floating-number of type TYPE and store it as byte-stream ADDR.  */
+void
+target_float_from_host_double (gdb_byte *addr, const struct type *type,
+			       double val)
+{
+  const target_float_ops *ops = get_target_float_ops (type);
+  ops->from_host_double (addr, type, val);
+}
+
+/* Convert a floating-point number of type FROM_TYPE from the target
+   byte-stream FROM to a floating-point number of type TO_TYPE, and
+   store it to the target byte-stream TO.  */
+void
+target_float_convert (const gdb_byte *from, const struct type *from_type,
+		      gdb_byte *to, const struct type *to_type)
+{
+  /* We cannot directly convert between binary and decimal floating-point
+     types, so go via an intermediary string.  */
+  if (!target_float_same_category_p (from_type, to_type))
+    {
+      std::string str = target_float_to_string (from, from_type);
+      target_float_from_string (to, to_type, str);
+      return;
+    }
+
+  /* Convert between two different formats in the same category.  */
+  if (!target_float_same_format_p (from_type, to_type))
+  {
+    const target_float_ops *ops = get_target_float_ops (from_type, to_type);
+    ops->convert (from, from_type, to, to_type);
+    return;
+  }
+
+  /* The floating-point formats match, so we simply copy the data, ensuring
+     possible padding bytes in the target buffer are zeroed out.  */
+  memset (to, 0, TYPE_LENGTH (to_type));
+  memcpy (to, from, target_float_format_length (to_type));
+}
+
+/* Perform the binary operation indicated by OPCODE, using as operands the
+   target byte streams X and Y, interpreted as floating-point numbers of
+   types TYPE_X and TYPE_Y, respectively.  Convert the result to type
+   TYPE_RES and store it into the byte-stream RES.
+
+   The three types must either be all binary floating-point types, or else
+   all decimal floating-point types.  Binary and decimal floating-point
+   types cannot be mixed within a single operation.  */
+void
+target_float_binop (enum exp_opcode opcode,
+		    const gdb_byte *x, const struct type *type_x,
+		    const gdb_byte *y, const struct type *type_y,
+		    gdb_byte *res, const struct type *type_res)
+{
+  gdb_assert (target_float_same_category_p (type_x, type_res));
+  gdb_assert (target_float_same_category_p (type_y, type_res));
+
+  const target_float_ops *ops = get_target_float_ops (type_x, type_y);
+  ops->binop (opcode, x, type_x, y, type_y, res, type_res);
+}
+
+/* Compare the two target byte streams X and Y, interpreted as floating-point
+   numbers of types TYPE_X and TYPE_Y, respectively.  Return zero if X and Y
+   are equal, -1 if X is less than Y, and 1 otherwise.
+
+   The two types must either both be binary floating-point types, or else
+   both be decimal floating-point types.  Binary and decimal floating-point
+   types cannot compared directly against each other.  */
+int
+target_float_compare (const gdb_byte *x, const struct type *type_x,
+		      const gdb_byte *y, const struct type *type_y)
+{
+  gdb_assert (target_float_same_category_p (type_x, type_y));
+
+  const target_float_ops *ops = get_target_float_ops (type_x, type_y);
+  return ops->compare (x, type_x, y, type_y);
+}
+
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-float.h ./gdb/target-float.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-float.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/target-float.h	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,61 @@
+/* Floating point definitions for GDB.
+
+   Copyright (C) 1986-2018 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 TYPED_FLOAT_H
+#define TYPED_FLOAT_H
+
+#include "expression.h"
+
+extern bool target_float_is_valid (const gdb_byte *addr,
+				   const struct type *type);
+extern bool target_float_is_zero (const gdb_byte *addr,
+				  const struct type *type);
+
+extern std::string target_float_to_string (const gdb_byte *addr,
+					   const struct type *type,
+					   const char *format = nullptr);
+extern bool target_float_from_string (gdb_byte *addr,
+				      const struct type *type,
+				      const std::string &string);
+
+extern LONGEST target_float_to_longest (const gdb_byte *addr,
+					const struct type *type);
+extern void target_float_from_longest (gdb_byte *addr,
+				       const struct type *type,
+				       LONGEST val);
+extern void target_float_from_ulongest (gdb_byte *addr,
+					const struct type *type,
+					ULONGEST val);
+extern double target_float_to_host_double (const gdb_byte *addr,
+					   const struct type *type);
+extern void target_float_from_host_double (gdb_byte *addr,
+					   const struct type *type,
+					   double val);
+extern void target_float_convert (const gdb_byte *from,
+				  const struct type *from_type,
+				  gdb_byte *to, const struct type *to_type);
+
+extern void target_float_binop (enum exp_opcode opcode,
+				const gdb_byte *x, const struct type *type_x,
+				const gdb_byte *y, const struct type *type_y,
+				gdb_byte *res, const struct type *type_res);
+extern int target_float_compare (const gdb_byte *x, const struct type *type_x,
+				 const gdb_byte *y, const struct type *type_y);
+
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target.h ./gdb/target.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/target.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Interface between GDB and target environments, including files and processes
 
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.  Written by John Gilmore.
 
@@ -42,6 +42,7 @@ struct inferior;
 
 #include "infrun.h" /* For enum exec_direction_kind.  */
 #include "breakpoint.h" /* For enum bptype.  */
+#include "common/scoped_restore.h"
 
 /* This include file defines the interface between the main part
    of the debugger, and the part which is target-specific, or
@@ -74,6 +75,8 @@ struct inferior;
 #include "btrace.h"
 #include "record.h"
 #include "command.h"
+#include "disasm.h"
+#include "tracepoint.h"
 
 #include "break-common.h" /* For enum target_hw_bp_type.  */
 
@@ -108,10 +111,6 @@ struct syscall
     const char *name;
   };
 
-/* Return a pretty printed form of target_waitstatus.
-   Space for the result is malloc'd, caller must free.  */
-extern char *target_waitstatus_to_string (const struct target_waitstatus *);
-
 /* Return a pretty printed form of TARGET_OPTIONS.
    Space for the result is malloc'd, caller must free.  */
 extern char *target_options_to_string (int target_options);
@@ -182,15 +181,6 @@ enum target_object
   TARGET_OBJECT_THREADS,
   /* Collected static trace data.  */
   TARGET_OBJECT_STATIC_TRACE_DATA,
-  /* The HP-UX registers (those that can be obtained or modified by using
-     the TT_LWP_RUREGS/TT_LWP_WUREGS ttrace requests).  */
-  TARGET_OBJECT_HPUX_UREGS,
-  /* The HP-UX shared library linkage pointer.  ANNEX should be a string
-     image of the code address whose linkage pointer we are looking for.
-
-     The size of the data transfered is always 8 bytes (the size of an
-     address on ia64).  */
-  TARGET_OBJECT_HPUX_SOLIB_GOT,
   /* Traceframe info, in XML format.  */
   TARGET_OBJECT_TRACEFRAME_INFO,
   /* Load maps for FDPIC systems.  */
@@ -237,18 +227,6 @@ enum target_xfer_status
 extern const char *
   target_xfer_status_to_string (enum target_xfer_status status);
 
-/* Enumeration of the kinds of traceframe searches that a target may
-   be able to perform.  */
-
-enum trace_find_type
-  {
-    tfind_number,
-    tfind_pc,
-    tfind_tp,
-    tfind_range,
-    tfind_outside,
-  };
-
 typedef struct static_tracepoint_marker *static_tracepoint_marker_p;
 DEF_VEC_P(static_tracepoint_marker_p);
 
@@ -289,22 +267,31 @@ extern LONGEST target_read (struct targe
 			    ULONGEST offset, LONGEST len);
 
 struct memory_read_result
+{
+  memory_read_result (ULONGEST begin_, ULONGEST end_,
+		      gdb::unique_xmalloc_ptr<gdb_byte> &&data_)
+    : begin (begin_),
+      end (end_),
+      data (std::move (data_))
   {
-    /* First address that was read.  */
-    ULONGEST begin;
-    /* Past-the-end address.  */
-    ULONGEST end;
-    /* The data.  */
-    gdb_byte *data;
-};
-typedef struct memory_read_result memory_read_result_s;
-DEF_VEC_O(memory_read_result_s);
+  }
+
+  ~memory_read_result () = default;
 
-extern void free_memory_read_result_vector (void *);
+  memory_read_result (memory_read_result &&other) = default;
 
-extern VEC(memory_read_result_s)* read_memory_robust (struct target_ops *ops,
-						      const ULONGEST offset,
-						      const LONGEST len);
+  DISABLE_COPY_AND_ASSIGN (memory_read_result);
+
+  /* First address that was read.  */
+  ULONGEST begin;
+  /* Past-the-end address.  */
+  ULONGEST end;
+  /* The data.  */
+  gdb::unique_xmalloc_ptr<gdb_byte> data;
+};
+
+extern std::vector<memory_read_result> read_memory_robust
+    (struct target_ops *ops, const ULONGEST offset, const LONGEST len);
 
 /* Request that OPS transfer up to LEN addressable units from BUF to the
    target's OBJECT.  When writing to a memory object, the addressable unit
@@ -357,14 +344,13 @@ extern LONGEST target_read_alloc (struct
 				  const char *annex, gdb_byte **buf_p);
 
 /* Read OBJECT/ANNEX using OPS.  The result is NUL-terminated and
-   returned as a string, allocated using xmalloc.  If an error occurs
-   or the transfer is unsupported, NULL is returned.  Empty objects
-   are returned as allocated but empty strings.  A warning is issued
-   if the result contains any embedded NUL bytes.  */
+   returned as a string.  If an error occurs or the transfer is
+   unsupported, NULL is returned.  Empty objects are returned as
+   allocated but empty strings.  A warning is issued if the result
+   contains any embedded NUL bytes.  */
 
-extern char *target_read_stralloc (struct target_ops *ops,
-				   enum target_object object,
-				   const char *annex);
+extern gdb::unique_xmalloc_ptr<char> target_read_stralloc
+    (struct target_ops *ops, enum target_object object, const char *annex);
 
 /* See target_ops->to_xfer_partial.  */
 extern target_xfer_partial_ftype target_xfer_partial;
@@ -612,7 +598,8 @@ struct target_ops
     void (*to_follow_exec) (struct target_ops *, struct inferior *, char *)
       TARGET_DEFAULT_IGNORE ();
     int (*to_set_syscall_catchpoint) (struct target_ops *,
-				      int, int, int, int, int *)
+				      int, bool, int,
+				      gdb::array_view<const int>)
       TARGET_DEFAULT_RETURN (1);
     int (*to_has_exited) (struct target_ops *, int, int, int *)
       TARGET_DEFAULT_RETURN (0);
@@ -646,6 +633,11 @@ struct target_ops
       TARGET_DEFAULT_RETURN (NULL);
     const char *(*to_thread_name) (struct target_ops *, struct thread_info *)
       TARGET_DEFAULT_RETURN (NULL);
+    struct thread_info *(*to_thread_handle_to_thread_info) (struct target_ops *,
+                                                            const gdb_byte *,
+							    int,
+							    struct inferior *inf)
+      TARGET_DEFAULT_RETURN (NULL);
     void (*to_stop) (struct target_ops *, ptid_t)
       TARGET_DEFAULT_IGNORE ();
     void (*to_interrupt) (struct target_ops *, ptid_t)
@@ -712,22 +704,25 @@ struct target_ops
 					      CORE_ADDR offset)
       TARGET_DEFAULT_NORETURN (generic_tls_error ());
 
-    /* Request that OPS transfer up to LEN 8-bit bytes of the target's
-       OBJECT.  The OFFSET, for a seekable object, specifies the
+    /* Request that OPS transfer up to LEN addressable units of the target's
+       OBJECT.  When reading from a memory object, the size of an addressable
+       unit is architecture dependent and can be found using
+       gdbarch_addressable_memory_unit_size.  Otherwise, an addressable unit is
+       1 byte long.  The OFFSET, for a seekable object, specifies the
        starting point.  The ANNEX can be used to provide additional
        data-specific information to the target.
 
        Return the transferred status, error or OK (an
-       'enum target_xfer_status' value).  Save the number of bytes
+       'enum target_xfer_status' value).  Save the number of addressable units
        actually transferred in *XFERED_LEN if transfer is successful
-       (TARGET_XFER_OK) or the number unavailable bytes if the requested
+       (TARGET_XFER_OK) or the number unavailable units if the requested
        data is unavailable (TARGET_XFER_UNAVAILABLE).  *XFERED_LEN
        smaller than LEN does not indicate the end of the object, only
        the end of the transfer; higher level code should continue
        transferring if desired.  This is handled in target.c.
 
        The interface does not support a "retry" mechanism.  Instead it
-       assumes that at least one byte will be transfered on each
+       assumes that at least one addressable unit will be transfered on each
        successful call.
 
        NOTE: cagney/2003-10-17: The current interface can lead to
@@ -769,8 +764,8 @@ struct target_ops
        This method should not cache data; if the memory map could
        change unexpectedly, it should be invalidated, and higher
        layers will re-fetch it.  */
-    VEC(mem_region_s) *(*to_memory_map) (struct target_ops *)
-      TARGET_DEFAULT_RETURN (NULL);
+    std::vector<mem_region> (*to_memory_map) (struct target_ops *)
+      TARGET_DEFAULT_RETURN (std::vector<mem_region> ());
 
     /* Erases the region of flash memory starting at ADDRESS, of
        length LENGTH.
@@ -1101,8 +1096,8 @@ struct target_ops
        traceframe's contents.  This method should not cache data;
        higher layers take care of caching, invalidating, and
        re-fetching when necessary.  */
-    struct traceframe_info *(*to_traceframe_info) (struct target_ops *)
-	TARGET_DEFAULT_NORETURN (tcomplain ());
+    traceframe_info_up (*to_traceframe_info) (struct target_ops *)
+      TARGET_DEFAULT_NORETURN (tcomplain ());
 
     /* Ask the target to use or not to use agent according to USE.  Return 1
        successful, 0 otherwise.  */
@@ -1201,7 +1196,8 @@ struct target_ops
        the current position.
        If SIZE < 0, disassemble abs (SIZE) preceding instructions; otherwise,
        disassemble SIZE succeeding instructions.  */
-    void (*to_insn_history) (struct target_ops *, int size, int flags)
+    void (*to_insn_history) (struct target_ops *, int size,
+			     gdb_disassembly_flags flags)
       TARGET_DEFAULT_NORETURN (tcomplain ());
 
     /* Disassemble SIZE instructions in the recorded execution trace around
@@ -1209,13 +1205,15 @@ struct target_ops
        If SIZE < 0, disassemble abs (SIZE) instructions before FROM; otherwise,
        disassemble SIZE instructions after FROM.  */
     void (*to_insn_history_from) (struct target_ops *,
-				  ULONGEST from, int size, int flags)
+				  ULONGEST from, int size,
+				  gdb_disassembly_flags flags)
       TARGET_DEFAULT_NORETURN (tcomplain ());
 
     /* Disassemble a section of the recorded execution trace from instruction
        BEGIN (inclusive) to instruction END (inclusive).  */
     void (*to_insn_history_range) (struct target_ops *,
-				   ULONGEST begin, ULONGEST end, int flags)
+				   ULONGEST begin, ULONGEST end,
+				   gdb_disassembly_flags flags)
       TARGET_DEFAULT_NORETURN (tcomplain ());
 
     /* Print a function trace of the recorded execution trace.
@@ -1367,10 +1365,10 @@ extern void target_resume (ptid_t ptid, 
    coalesce multiple resumption requests in a single vCont packet.  */
 extern void target_commit_resume ();
 
-/* Setup to defer target_commit_resume calls, and return a cleanup
-   that reactivates target_commit_resume, if it was previously
+/* Setup to defer target_commit_resume calls, and reactivate
+   target_commit_resume on destruction, if it was previously
    active.  */
-struct cleanup *make_cleanup_defer_target_commit_resume ();
+extern scoped_restore_tmpl<int> make_scoped_defer_target_commit_resume ();
 
 /* For target_read_memory see target/target.h.  */
 
@@ -1455,10 +1453,10 @@ extern int target_write_raw_memory (CORE
 /* Fetches the target's memory map.  If one is found it is sorted
    and returned, after some consistency checking.  Otherwise, NULL
    is returned.  */
-VEC(mem_region_s) *target_memory_map (void);
+std::vector<mem_region> target_memory_map (void);
 
 /* Erases all flash memory regions on the target.  */
-void flash_erase_command (char *cmd, int from_tty);
+void flash_erase_command (const char *cmd, int from_tty);
 
 /* Erase the specified flash region.  */
 void target_flash_erase (ULONGEST address, LONGEST length);
@@ -1529,55 +1527,11 @@ extern int target_remove_breakpoint (str
 				     struct bp_target_info *bp_tgt,
 				     enum remove_bp_reason reason);
 
-/* Returns true if the terminal settings of the inferior are in
-   effect.  */
-
-extern int target_terminal_is_inferior (void);
-
-/* Returns true if our terminal settings are in effect.  */
-
-extern int target_terminal_is_ours (void);
-
-/* Initialize the terminal settings we record for the inferior,
-   before we actually run the inferior.  */
-
-extern void target_terminal_init (void);
-
-/* Put the inferior's terminal settings into effect.  This is
-   preparation for starting or resuming the inferior.  This is a no-op
-   unless called with the main UI as current UI.  */
-
-extern void target_terminal_inferior (void);
-
-/* Put some of our terminal settings into effect, enough to get proper
-   results from our output, but do not change into or out of RAW mode
-   so that no input is discarded.  This is a no-op if terminal_ours
-   was most recently called.  This is a no-op unless called with the main
-   UI as current UI.  */
-
-extern void target_terminal_ours_for_output (void);
-
-/* Put our terminal settings into effect.  First record the inferior's
-   terminal settings so they can be restored properly later.  This is
-   a no-op unless called with the main UI as current UI.  */
-
-extern void target_terminal_ours (void);
-
 /* Return true if the target stack has a non-default
   "to_terminal_ours" method.  */
 
 extern int target_supports_terminal_ours (void);
 
-/* Make a cleanup that restores the state of the terminal to the current
-   state.  */
-extern struct cleanup *make_cleanup_restore_target_terminal (void);
-
-/* Print useful information about our terminal status, if such a thing
-   exists.  */
-
-#define target_terminal_info(arg, from_tty) \
-     (*current_target.to_terminal_info) (&current_target, arg, from_tty)
-
 /* Kill the inferior process.   Make it go away.  */
 
 extern void target_kill (void);
@@ -1653,28 +1607,24 @@ void target_follow_exec (struct inferior
 
 /* Syscall catch.
 
-   NEEDED is nonzero if any syscall catch (of any kind) is requested.
-   If NEEDED is zero, it means the target can disable the mechanism to
+   NEEDED is true if any syscall catch (of any kind) is requested.
+   If NEEDED is false, it means the target can disable the mechanism to
    catch system calls because there are no more catchpoints of this type.
 
    ANY_COUNT is nonzero if a generic (filter-less) syscall catch is
-   being requested.  In this case, both TABLE_SIZE and TABLE should
-   be ignored.
+   being requested.  In this case, SYSCALL_COUNTS should be ignored.
 
-   TABLE_SIZE is the number of elements in TABLE.  It only matters if
-   ANY_COUNT is zero.
-
-   TABLE is an array of ints, indexed by syscall number.  An element in
-   this array is nonzero if that syscall should be caught.  This argument
-   only matters if ANY_COUNT is zero.
+   SYSCALL_COUNTS is an array of ints, indexed by syscall number.  An
+   element in this array is nonzero if that syscall should be caught.
+   This argument only matters if ANY_COUNT is zero.
 
    Return 0 for success, 1 if syscall catchpoints are not supported or -1
    for failure.  */
 
-#define target_set_syscall_catchpoint(pid, needed, any_count, table_size, table) \
+#define target_set_syscall_catchpoint(pid, needed, any_count, syscall_counts) \
      (*current_target.to_set_syscall_catchpoint) (&current_target,	\
 						  pid, needed, any_count, \
-						  table_size, table)
+						  syscall_counts)
 
 /* Returns TRUE if PID has exited.  And, also sets EXIT_STATUS to the
    exit code of PID, if any.  */
@@ -1868,6 +1818,12 @@ extern const char *normal_pid_to_str (pt
 
 extern const char *target_thread_name (struct thread_info *);
 
+/* Given a pointer to a thread library specific thread handle and
+   its length, return a pointer to the corresponding thread_info struct.  */
+
+extern struct thread_info *target_thread_handle_to_thread_info
+  (const gdb_byte *thread_handle, int handle_len, struct inferior *inf);
+
 /* Attempts to find the pathname of the executable file
    that was run to create a specified process.
 
@@ -2163,8 +2119,8 @@ extern LONGEST target_fileio_read_alloc 
    or the transfer is unsupported, NULL is returned.  Empty objects
    are returned as allocated but empty strings.  A warning is issued
    if the result contains any embedded NUL bytes.  */
-extern char *target_fileio_read_stralloc (struct inferior *inf,
-					  const char *filename);
+extern gdb::unique_xmalloc_ptr<char> target_fileio_read_stralloc
+    (struct inferior *inf, const char *filename);
 
 
 /* Tracepoint-related operations.  */
@@ -2427,12 +2383,12 @@ extern struct target_ops *find_target_be
 struct target_ops *find_target_at (enum strata stratum);
 
 /* Read OS data object of type TYPE from the target, and return it in
-   XML format.  The result is NUL-terminated and returned as a string,
-   allocated using xmalloc.  If an error occurs or the transfer is
-   unsupported, NULL is returned.  Empty objects are returned as
-   allocated but empty strings.  */
+   XML format.  The result is NUL-terminated and returned as a string.
+   If an error occurs or the transfer is unsupported, NULL is
+   returned.  Empty objects are returned as allocated but empty
+   strings.  */
 
-extern char *target_get_osdata (const char *type);
+extern gdb::unique_xmalloc_ptr<char> target_get_osdata (const char *type);
 
 
 /* Stuff that should be shared among the various remote targets.  */
@@ -2452,9 +2408,10 @@ extern int remote_timeout;
 
 
 
-/* Set the show memory breakpoints mode to show, and installs a cleanup
-   to restore it back to the current value.  */
-extern struct cleanup *make_show_memory_breakpoints_cleanup (int show);
+/* Set the show memory breakpoints mode to show, and return a
+   scoped_restore to restore it back to the current value.  */
+extern scoped_restore_tmpl<int>
+    make_scoped_restore_show_memory_breakpoints (int show);
 
 extern int may_write_registers;
 extern int may_write_memory;
@@ -2524,13 +2481,15 @@ extern void target_goto_record_end (void
 extern void target_goto_record (ULONGEST insn);
 
 /* See to_insn_history.  */
-extern void target_insn_history (int size, int flags);
+extern void target_insn_history (int size, gdb_disassembly_flags flags);
 
 /* See to_insn_history_from.  */
-extern void target_insn_history_from (ULONGEST from, int size, int flags);
+extern void target_insn_history_from (ULONGEST from, int size,
+				      gdb_disassembly_flags flags);
 
 /* See to_insn_history_range.  */
-extern void target_insn_history_range (ULONGEST begin, ULONGEST end, int flags);
+extern void target_insn_history_range (ULONGEST begin, ULONGEST end,
+				       gdb_disassembly_flags flags);
 
 /* See to_call_history.  */
 extern void target_call_history (int size, int flags);
@@ -2547,4 +2506,18 @@ extern void target_prepare_to_generate_c
 /* See to_done_generating_core.  */
 extern void target_done_generating_core (void);
 
+#if GDB_SELF_TEST
+namespace selftests {
+
+/* A mock process_stratum target_ops that doesn't read/write registers
+   anywhere.  */
+
+class test_target_ops : public target_ops
+{
+public:
+  test_target_ops ();
+};
+} // namespace selftests
+#endif /* GDB_SELF_TEST */
+
 #endif /* !defined (TARGET_H) */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-memory.c ./gdb/target-memory.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/target-memory.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/target-memory.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Parts of target interface that deal with accessing memory and memory-like
    objects.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -138,14 +138,18 @@ block_boundaries (CORE_ADDR address, COR
 {
   struct mem_region *region;
   unsigned blocksize;
+  CORE_ADDR offset_in_region;
 
   region = lookup_mem_region (address);
   gdb_assert (region->attrib.mode == MEM_FLASH);
   blocksize = region->attrib.blocksize;
+
+  offset_in_region = address - region->lo;
+
   if (begin)
-    *begin = address / blocksize * blocksize;
+    *begin = region->lo + offset_in_region / blocksize * blocksize;
   if (end)
-    *end = (address + blocksize - 1) / blocksize * blocksize;
+    *end = region->lo + (offset_in_region + blocksize - 1) / blocksize * blocksize;
 }
 
 /* Given the list of memory requests to be WRITTEN, this function
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/terminal.h ./gdb/terminal.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/terminal.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/terminal.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Terminal interface definitions for GDB, the GNU Debugger.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -29,16 +29,8 @@ extern void new_tty_postfork (void);
 
 extern void copy_terminal_info (struct inferior *to, struct inferior *from);
 
-/* Do we have job control?  Can be assumed to always be the same within
-   a given run of GDB.  In inflow.c.  */
-extern int job_control;
-
 extern pid_t create_tty_session (void);
 
-/* Set the process group of the caller to its own pid, or do nothing if
-   we lack job control.  */
-extern int gdb_setpgid (void);
-
 /* Set up a serial structure describing standard input.  In inflow.c.  */
 extern void initialize_stdin_serial (void);
 
@@ -48,8 +40,4 @@ extern void gdb_save_tty_state (void);
    have had a chance to alter it.  */
 extern void set_initial_gdb_ttystate (void);
 
-/* Set the process group of the caller to its own pid, or do nothing
-   if we lack job control.  */
-extern int gdb_setpgid (void);
-
 #endif /* !defined (TERMINAL_H) */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/analyze-racy-logs.py ./gdb/testsuite/analyze-racy-logs.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/analyze-racy-logs.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/analyze-racy-logs.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 #
 # This file is part of GDB.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/cc-with-tweaks.exp ./gdb/testsuite/boards/cc-with-tweaks.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/cc-with-tweaks.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/boards/cc-with-tweaks.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 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
@@ -30,10 +30,7 @@ if ![info exists CC_WITH_TWEAKS_FLAGS] {
 }
 
 # This is needed otherwise dejagnu tries to rsh to host "cc-with-tweaks".
-# set_board_info only sets the value if not already set.
-# find_gcc checks for this, so set early.
-unset_board_info isremote
-set_board_info isremote 0
+load_board_description "local-board"
 
 # This is based on baseboards/unix.exp.
 # At the moment we only support systems that unix.exp supports.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/dwarf4-gdb-index.exp ./gdb/testsuite/boards/dwarf4-gdb-index.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/dwarf4-gdb-index.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/boards/dwarf4-gdb-index.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
@@ -20,10 +20,7 @@
 # bash$ make check RUNTESTFLAGS='--target_board=dwarf4-gdb-index'
 
 # This is needed otherwise dejagnu tries to rsh to host "dwarf4-gdb-index".
-# set_board_info only sets the value if not already set.
-# find_gcc checks for this, so set early.
-unset_board_info isremote
-set_board_info isremote 0
+load_board_description "local-board"
 
 # This is based on baseboards/unix.exp.
 # At the moment we only support systems that unix.exp supports.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/fission-dwp.exp ./gdb/testsuite/boards/fission-dwp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/fission-dwp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/boards/fission-dwp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/fission.exp ./gdb/testsuite/boards/fission.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/fission.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/boards/fission.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
@@ -31,7 +31,5 @@ set_board_info compiler "[find_gcc]"
 # -gsplit-dwarf implies -ggnu-pubnames for gcc, it doesn't for clang.
 set_board_info debug_flags "-gdwarf-4 -gsplit-dwarf -ggnu-pubnames -fdebug-types-section -Wl,--gdb-index"
 
-# This is needed otherwise dejagnu tries to rsh to host "fission".  Blech.
-# Double blech: set_board_info only sets the value if not already set.
-unset_board_info isremote
-set_board_info isremote 0
+# This is needed otherwise dejagnu tries to rsh to host "fission".
+load_board_description "local-board"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/gdbserver-base.exp ./gdb/testsuite/boards/gdbserver-base.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/gdbserver-base.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/boards/gdbserver-base.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/local-board.exp ./gdb/testsuite/boards/local-board.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/local-board.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/boards/local-board.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,24 @@
+# Copyright 2011-2018 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/>.
+
+# By default, DejaGnu makes the board remote unless the board name
+# matches localhost.  Sourcing this script from a board file forces
+# the board to be NOT remote.
+
+global board
+global board_info
+# Remove any target variant specifications from the name.
+set baseboard [lindex [split $board "/"] 0]
+set board_info($baseboard,isremote) 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/local-remote-host.exp ./gdb/testsuite/boards/local-remote-host.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/local-remote-host.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/boards/local-remote-host.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/local-remote-host-native.exp ./gdb/testsuite/boards/local-remote-host-native.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/local-remote-host-native.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/boards/local-remote-host-native.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/local-remote-host-notty.exp ./gdb/testsuite/boards/local-remote-host-notty.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/local-remote-host-notty.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/boards/local-remote-host-notty.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/native-extended-gdbserver.exp ./gdb/testsuite/boards/native-extended-gdbserver.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/native-extended-gdbserver.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/boards/native-extended-gdbserver.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
@@ -22,14 +22,7 @@
 
 load_generic_config "extended-gdbserver"
 load_board_description "gdbserver-base"
-
-# By default, dejagnu makes the board remote unless the board name
-# matches localhost.  Force it to be NOT remote.
-global board
-global board_info
-# Remove any target variant specifications from the name.
-set baseboard [lindex [split $board "/"] 0]
-set board_info($baseboard,isremote) 0
+load_board_description "local-board"
 
 set_board_info sockethost "localhost:"
 
@@ -80,17 +73,12 @@ proc mi_gdb_start { args } {
     return 0
 }
 
-# Overriden in order to set the remote exec-file whenever a file is
-# loaded to gdb.
-#
-proc gdb_load { arg } {
+# Helper that runs "set remote exec-file" with the last loaded file.
+
+proc extended_gdbserver_load_last_file {} {
     global gdb_prompt
     global last_loaded_file
 
-    if { $arg != "" } {
-	if [gdb_file_cmd $arg] then { return -1 }
-    }
-
     send_gdb "set remote exec-file $last_loaded_file\n"
     gdb_expect {
 	-re "$gdb_prompt $" {}
@@ -103,6 +91,37 @@ proc gdb_load { arg } {
     return 0
 }
 
+# Overriden in order to set the remote exec-file whenever a file is
+# loaded to gdb.
+#
+if { [info procs extended_gdbserver_gdb_file_cmd] == "" } {
+    rename gdb_file_cmd extended_gdbserver_gdb_file_cmd
+}
+proc gdb_file_cmd { arg } {
+    if [extended_gdbserver_gdb_file_cmd $arg] {
+	return -1
+    }
+    return [extended_gdbserver_load_last_file]
+}
+
+proc gdb_reload { } {
+    return [extended_gdbserver_load_last_file]
+}
+
+# With the two procedure overrides above, it shouldn't be necessary to
+# override this one too.  However, not doing so regresses
+# gdb.base/dbx.exp.  See comments above gdb.base/dbx.exp:gdb_file_cmd.
+# Once testing of the "symbol-file"/"exec-file" commands is moved out
+# to a separate non-dbx testcase, we should be able to remove this.
+proc gdb_load { arg } {
+    if { $arg != "" } {
+	if [gdb_file_cmd $arg] then { return -1 }
+    }
+
+    return [extended_gdbserver_load_last_file]
+}
+
+
 # Likewise, for MI.
 #
 if { [info procs extended_gdbserver_mi_gdb_load] == "" } {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/native-gdbserver.exp ./gdb/testsuite/boards/native-gdbserver.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/native-gdbserver.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/boards/native-gdbserver.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
@@ -22,6 +22,7 @@
 
 load_generic_config "gdbserver"
 load_board_description "gdbserver-base"
+load_board_description "local-board"
 
 # This gdbserver can only run a process once per session.
 set_board_info gdb,do_reload_on_run 1
@@ -35,27 +36,3 @@ set_board_info exit_is_reliable 1
 
 # We will be using the standard GDB remote protocol.
 set_board_info gdb_protocol "remote"
-
-proc ${board}_spawn { board cmd } {
-    global board_info
-
-    set baseboard [lindex [split $board "/"] 0]
-
-    set board_info($baseboard,isremote) 0
-    set result [remote_spawn $board $cmd]
-    set board_info($baseboard,isremote) 1
-
-    return $result
-}
-
-proc ${board}_exec { hostname program args } {
-    global board_info
-
-    set baseboard [lindex [split $hostname "/"] 0]
-
-    set board_info($baseboard,isremote) 0
-    set result [remote_exec $hostname $program $args]
-    set board_info($baseboard,isremote) 1
-
-    return $result
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/native-stdio-gdbserver.exp ./gdb/testsuite/boards/native-stdio-gdbserver.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/native-stdio-gdbserver.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/boards/native-stdio-gdbserver.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
@@ -20,70 +20,11 @@
 # bash$ cd ${build_dir}/gdb
 # bash$ make check RUNTESTFLAGS="--target_board=native-stdio-gdbserver"
 
-load_generic_config "gdbserver"
-load_board_description "gdbserver-base"
+load_board_description "stdio-gdbserver-base"
+load_board_description "local-board"
 
-# This gdbserver can only run a process once per session.
-set_board_info gdb,do_reload_on_run 1
-
-# There's no support for argument-passing (yet).
-set_board_info noargs 1
-
-# Hack the host,port to pass our peculiar remote connection string.
-set_board_info sockethost ""
-set_board_info gdb,socketport "stdio"
-set_board_info gdb,get_remote_address ${board}_get_remote_address
-set_board_info gdbserver,get_comm_port ${board}_get_comm_port
-
-set_board_info use_gdb_stub 1
-set_board_info exit_is_reliable 1
-
-# We will be using the standard GDB remote protocol.
-set_board_info gdb_protocol "remote"
-
-# Used to pass a value between ${board}_spawn and ${board}_get_remote_address.
-set stdio_gdbserver_command "--unset--"
-
-proc ${board}_get_remote_address { host port } {
-    global stdio_gdbserver_command
-    return "| $stdio_gdbserver_command"
-}
-
-proc ${board}_get_comm_port { port } {
-    return $port
-}
-
-proc ${board}_spawn { board cmd } {
-    global board_info
-
-    verbose -log "${board}_spawn: $board $cmd"
-
-    # Save the command to start gdbserver for later retrieval by
-    # ${board}_get_remote_address.
-    global stdio_gdbserver_command
-    set stdio_gdbserver_command $cmd
-
-    set baseboard [lindex [split $board "/"] 0]
-
-    # We don't spawn gdbserver here, that is done by the subsequent
-    # "target remote | ..." command.
-    set board_info($baseboard,isremote) 0
-    # Pretend as if we've started gdbserver, provide the test harness
-    # with what it's waiting for.
-    set result [remote_spawn $board "echo Listening on stdio"]
-    set board_info($baseboard,isremote) 1
-
-    return $result
-}
-
-proc ${board}_exec { hostname program args } {
-    global board_info
-
-    set baseboard [lindex [split $hostname "/"] 0]
-
-    set board_info($baseboard,isremote) 0
-    set result [remote_exec $hostname $program $args]
-    set board_info($baseboard,isremote) 1
-
-    return $result
+proc get_target_remote_pipe_cmd {} {
+    global last_loaded_file
+    set gdbserver [find_gdbserver]
+    return "$gdbserver --once stdio $last_loaded_file"
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp ./gdb/testsuite/boards/remote-gdbserver-on-localhost.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/boards/remote-gdbserver-on-localhost.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/remote-stdio-gdbserver.exp ./gdb/testsuite/boards/remote-stdio-gdbserver.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/remote-stdio-gdbserver.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/boards/remote-stdio-gdbserver.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
@@ -24,7 +24,7 @@
 #    REMOTE_USERNAME=... REMOTE_HOSTNAME=... REMOTE_PORTNUM=... \
 #    [REMOTE_TMPDIR=${remote_dir}] [GDBSERVER=${remote_gdbserver}]"
 
-load_board_description "native-stdio-gdbserver"
+load_board_description "stdio-gdbserver-base"
 
 # Test machine info. The generic_config gdbserver reads some of these
 # values from board_info, so this file must set them there.
@@ -56,12 +56,6 @@ if [info exists REMOTE_TMPDIR] {
     set_board_info remotedir $REMOTE_TMPDIR
 }
 
-unset_board_info gdb_server_prog
-set_board_info gdb_server_prog "/usr/bin/gdbserver"
-
-# Used to pass a value between ${board}_spawn and ${board}_get_remote_address.
-set stdio_gdbserver_command "--unset--"
-
 proc get_remote_login { } {
     set result ""
     if {[board_info [target_info name] exists username]} {
@@ -73,27 +67,10 @@ proc get_remote_login { } {
     return $result
 }
 
-proc ${board}_get_remote_address { host port } {
-    global stdio_gdbserver_command
+proc get_target_remote_pipe_cmd { } {
+    set target_exec [gdbserver_download_current_prog]
     set rsh_cmd "[board_info [target_info name] rsh_prog] [get_remote_login]"
-    return "| $rsh_cmd $stdio_gdbserver_command"
-}
-
-proc ${board}_get_comm_port { port } {
-    return $port
-}
-
-proc ${board}_download { board host dest } {
-    if { [board_info [target_info name] exists remotedir] } {
-	set remotedir "[board_info [target_info name] remotedir]/"
-    } else {
-	set remotedir ""
-    }
-    return [standard_download $board $host "$remotedir$dest"]
-}
-
-proc ${board}_upload {dest srcfile args} {
-    return [standard_upload $dest $srcfile $args]
+    return "$rsh_cmd /usr/bin/gdbserver --once stdio $target_exec"
 }
 
 proc ${board}_file { dest op args } {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/stabs.exp ./gdb/testsuite/boards/stabs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/stabs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/boards/stabs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 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
@@ -39,7 +39,5 @@ set_board_info compiler "[find_gcc]"
 # Use -gstabs+ instead of -gstabs for better c++ support.
 set_board_info debug_flags "-gstabs+"
 
-# This is needed otherwise dejagnu tries to rsh to host "stabs".  Blech.
-# Double blech: set_board_info only sets the value if not already set.
-unset_board_info isremote
-set_board_info isremote 0
+# This is needed otherwise dejagnu tries to rsh to host "stabs".
+load_board_description "local-board"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/stdio-gdbserver-base.exp ./gdb/testsuite/boards/stdio-gdbserver-base.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/boards/stdio-gdbserver-base.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/boards/stdio-gdbserver-base.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,54 @@
+# Copyright 2011-2018 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 has common bits shared between other dejagnu "board files"
+# that are used to run the testsuite with gdbserver connected via
+# stdio.  Boards that source this must reimplement the
+# get_target_remote_pipe_address procedure.
+
+load_board_description "gdbserver-base"
+
+# Note this is loaded for gdb_target_cmd, not for making this board
+# use the generic "gdbserver" config.
+load_lib gdbserver-support.exp
+
+# This gdbserver can only run a process once per session.
+set_board_info gdb,do_reload_on_run 1
+
+# There's no support for argument-passing (yet).
+set_board_info noargs 1
+
+set_board_info use_gdb_stub 1
+set_board_info exit_is_reliable 1
+
+# We will be using the standard GDB remote protocol.
+set_board_info gdb_protocol "remote"
+
+# Return the CMD string in "target remote | CMD".
+proc get_target_remote_pipe_cmd {} {
+    error "must reimplement this procedure"
+}
+
+proc make_gdbserver_stdio_port {} {
+    return "| [get_target_remote_pipe_cmd]"
+}
+
+proc gdb_reload { } {
+    return [gdb_target_cmd "remote" [make_gdbserver_stdio_port]]
+}
+
+proc mi_gdb_target_load { } {
+    return [mi_gdb_target_cmd "remote" [make_gdbserver_stdio_port]]
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/ChangeLog ./gdb/testsuite/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/ChangeLog	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/ChangeLog	2018-01-09 02:04:57.000000000 +0000
@@ -1,24 +1,1588 @@
+2018-01-08  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.server/unittest.exp: Match the output in non-development
+	mode.
+
+2018-01-08  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.gdb/unittest.exp: Match output in non-development mode.
+
+2018-01-05  Pedro Alves  <palves@redhat.com>
+
+	PR gdb/18653
+	* gdb.base/libsegfault.exp: New.
+
+2018-01-05  Joel Brobecker  <brobecker@adacore.com>
+
+	PR gdb/22670
+	* gdb.ada/access_tagged_param.exp: New file.
+	* gdb.ada/access_tagged_param/foo.adb: New file.
+
+2018-01-05  Pedro Alves  <palves@redhat.com>
+
+	PR gdb/22670
+	* gdb.ada/info_addr_mixed_case.exp: Remove kfail.  Extend test to
+	exercise lower case too, and to exercise both full matching and
+	wild matching.
+
+2018-01-04  Joel Brobecker  <brobecker@adacore.com>
+
+	PR gdb/22670
+	* gdb.ada/maint_with_ada: New testcase.
+
+2018-01-04  Joel Brobecker  <brobecker@adacore.com>
+
+	PR gdb/22670
+	* gdb.ada/bp_c_mixed_case: New testcase.
+
+2018-01-04  Joel Brobecker  <brobecker@adacore.com>
+
+	PR gdb/22670
+	* gdb.ada/complete.exp: Add "complete break ada" test.
+
+2018-01-04  Joel Brobecker  <brobecker@adacore.com>
+
+	PR gdb/22670
+	* gdb.ada/info_addr_mixed_case: New testcase.
+
+2018-01-03  Xavier Roirand  <roirand@adacore.com>
+
+	* gdb.ada/excep_handle.exp: New testcase.
+	* gdb.ada/excep_handle/foo.adb: New file.
+	* gdb.ada/excep_handle/pck.ads: New file.
+
+2018-01-03  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.base/step-line.c: Add extra empty line in copyright header.
+	* gdb.base/step-line.inp: Likewise.
+
+2018-01-02  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.ada/dyn_stride.exp: Add slice test.
+
+2018-01-02  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.ada/dyn_stride: New testcase.
+
+2017-12-27  Stafford Horne  <shorne@gmail.com>
+
+	* gdb.xml/extra-regs.xml: Add example foo reggroup.
+	* gdb.xml/tdesc-regs.exp: Add test to check for foo reggroup.
+
+2017-12-27  Stafford Horne  <shorne@gmail.com>
+
+	* gdb.base/reggroups.c: New file.
+	* gdb.base/reggroups.exp: New file.
+
+2017-12-18  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.dwarf2/ada-valprint-error.c: New file.
+	* gdb.dwarf2/ada-valprint-error.exp: New file.
+
+2017-12-18  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.ada/assign_arr: New testcase.
+
+2017-12-18  Xavier Roirand  <roirand@adacore.com>
+
+	* gdb.ada/funcall_ptr: New testcase.
+
+2017-12-15  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR cli/16224
+	* gdb.base/ptype-offsets.cc: New file.
+	* gdb.base/ptype-offsets.exp: New file.
+
+2017-12-15  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.gdb/unittest.exp: Skip 'maintenance check xml-descriptions'
+	if XML is disabled.
+
+2017-12-15  Xavier Roirand  <roirand@adacore.com>
+
+	* gdb.ada/same_component_name: New testcase.
+
+2017-12-14  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.ada/str_binop_equal: New testcase.
+
+2017-12-14  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.ada/task_switch_in_core: New testcase.
+
+2017-12-13  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.python/py-breakpoint.c (foo_ns::multiply): New function.
+	* gdb.python/py-breakpoint.exp: Compile the test case as c++,
+	call test_bkpt_qualified.
+	(test_bkpt_qualified): New proc.
+
+2017-12-13  Pedro Alves  <palves@redhat.com>
+
+	* lib/completion-support.exp (test_gdb_complete_tab_multiple):
+	Tighten regexp by matching with an anchor.
+
+2017-12-13  Pedro Alves  <palves@redhat.com>
+
+	* gdb.cp/cpcompletion.exp: Load completion-support.exp.
+	("expression with namespace"): New set of tests.
+	* gdb.cp/pr9594.cc (Test_NS::foo, Test_NS::bar)
+	(Nested::Test_NS::qux): New.
+	* lib/completion-support.exp (test_gdb_complete_cmd_multiple): Add
+	defaults to 'start_quote_char' and 'end_quote_char' parameters.
+
+2017-12-13  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.base/server-del-break.c: New file.
+	* gdb.base/server-del-break.exp: New file.
+
+2017-12-12  Stafford Horne  <shorne@gmail.com>
+
+	* gdb.xml/tdesc-regs.exp: Add or1k support.
+
+2017-12-12  Stafford Horne  <shorne@gmail.com>
+
+	* gdb.base/bp-permanent.c: Define nop of or1k.
+
+2017-12-11  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.ada/variant_record_packed_array.exp: Adapt test to accept
+	output with components being reordered.
+
+2017-12-11  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.ada/pkd_arr_elem.exp: Adapt "print test" test to accept
+	output with components being reordered.
+
+2017-12-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/maint.exp (check for .gdb_index): Check also for
+	.debug_names.
+	* gdb.dlang/watch-loc.c (.debug_aranges): New.
+	* gdb.dwarf2/dw2-case-insensitive-debug.S: Likewise.
+	* gdb.dwarf2/gdb-index.exp (check if index present, .gdb_index used)
+	(.gdb_index used after symbol reloading): Support also .debug_names.
+	* gdb.mi/dw2-ref-missing-frame-func.c (.debug_aranges): New.
+
+2017-12-08  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.arch/aarch64-tagged-pointer.c (main): Update.
+	* gdb.arch/aarch64-tagged-pointer.exp: Add tests for watchpoint.
+
+2017-12-08  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.arch/aarch64-tagged-pointer.c (main): Update.
+	* gdb.arch/aarch64-tagged-pointer.exp: Add test for breakpoint.
+
+2017-12-08  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.arch/aarch64-tagged-pointer.c: New file.
+	* gdb.arch/aarch64-tagged-pointer.exp: New file.
+
+2017-12-08  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gdb.arch/i386-sse-stack-align.exp: Cast "print" function call
+	"int".
+
+2017-12-07  Keith Seitz  <keiths@redhat.com>
+
+	PR breakpoints/22569
+	* gdb.linespec/ls-errs.exp: Change expected result of "break
+	-source this file has spaces.c -line 3".
+	Check that an explicit source file followed by whitespace is
+	identified as an invalid explicit location.
+
+2017-12-07  Keith Seitz  <keiths@redhat.com>
+
+	* gdb.cp/nested-types.cc: New file.
+	* gdb.cp/nested-types.exp: New file.
+	* lib/cp-support.exp: Load data-structures.exp library.
+	(debug_cp_test_ptype_class): New global.
+	(cp_ptype_class_verbose, next_line): New procedures.
+	(cp_test_ptype_class): Add and document new parameter `recursive_qid'.
+	Add and document new return value.
+	Switch the list of lines to a queue.
+	Add support for new `type' key for nested type definitions.
+	Add debugging/troubleshooting messages.
+	* lib/data-structures.exp: New file.
+
+2017-12-07  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.python/py-breakpoint.exp (test_bkpt_explicit_loc): Define
+	with proc_with_prefix, don't use with_test_prefix.
+
+2017-12-07  Tom Tromey  <tom@tromey.com>
+
+	* gdb.base/break.exp: Add test for empty "commands".
+
+2017-12-07  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.trace/ftrace.exp (run_trace_experiment): Set breakpoint on
+	malloc and catch syscall.
+
+2017-12-07  Phil Muldoon  <pmuldoon@redhat.com>
+
+       * gdb.python/py-breakpoint.exp (test_bkpt_explicit_loc): Add new
+	tests for explicit locations.
+
+2017-12-06  Pedro Alves  <palves@redhat.com>
+
+	* gdb.arch/i386-avx.exp: If testing with a RSP target, check
+	force-disabling XML descriptions.
+
+2017-12-04  Pedro Alves  <palves@redhat.com>
+
+	PR gdb/22499
+	* gdb.arch/amd64-disp-step-avx.S: New file.
+	* gdb.arch/amd64-disp-step-avx.exp: New file.
+
+2017-12-03  Pedro Alves  <palves@redhat.com>
+
+	* gdb.threads/process-dies-while-detaching.c: Include <errno.h>
+	and <string.h>.
+	(parent_function): Print distinct messages when waitpid fails, or
+	the child exits with a signal, or the child exits for an unhandled
+	reason.
+	* gdb.threads/process-dies-while-detaching.exp
+	(detach_and_expect_exit): New 'inf_output_re' parameter and use
+	it.  Wait for both inferior output and GDB's prompt.  Use an
+	indirect spawn id list.
+	(do_detach): New parameter 'child_exit'.  Use it to compute
+	expected inferior output.
+	(test_detach, test_detach_watch, test_detach_killed_outside):
+	Adjust to pass down the expected child exit kind.
+
+2017-12-01  Joel Brobecker  <brobecker@adacore.com>
+	    Sergio Durigan Junior  <sergiodj@redhat.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/readnever.c, gdb.base/readnever.exp: New files.
+
+2017-12-01  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gdb.base/relocate.exp: Add tests to guarantee that arguments
+	to 'symbol-file' and 'add-symbol-file' can be
+	position-independent.
+
+2017-12-01  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.arch/aarch64-atomic-inst.exp: Replace mail address with
+	the URL in copyright header.
+	* gdb.arch/aarch64-fp.exp: Likewise.
+	* gdb.arch/ppc64-atomic-inst.exp: Likewise.
+	* gdb.arch/ppc64-isa207-atomic-inst.exp: Likewise.
+	* gdb.base/expand-psymtabs.exp: Likewise.
+	* gdb.cp/expand-psymtabs-cxx.exp: Likewise.
+	* gdb.fortran/common-block.exp: Likewise.
+	* gdb.fortran/common-block.f90: Likewise.
+	* gdb.fortran/logical.exp: Likewise.
+	* gdb.fortran/vla-datatypes.f90: Likewise.
+	* gdb.fortran/vla-sub.f90: Likewise.
+
+2017-11-30  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.ada/repeat_dyn: New testcase.
+
+2017-11-30  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* gdb.cell/gcore.exp: Fix typo when setting spu_bin.
+	Update for changed thread numbering.
+	* gdb.cell/bt.exp: Update for changed GDB output.
+
+2017-11-30  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* boards/cc-with-tweaks.exp: Include local-board.exp instead of
+	setting isremote by hand.
+	* boards/dwarf4-gdb-index.exp: Likewise.
+	* boards/fission.exp: Likewise.
+	* boards/stabs.exp: Likewise.
+
+2017-11-30  Pedro Alves  <palves@redhat.com>
+
+	* gdb.linespec/cpls-ops.exp
+	(check_explicit_skips_function_argument): Extract the underlying
+	type of size_t instead of hardcoding it.
+
+2017-11-29  Pedro Alves  <palves@redhat.com>
+
+	PR c++/19436
+	* gdb.linespec/cpls-abi-tag.cc: New file.
+	* gdb.linespec/cpls-abi-tag.exp: New file.
+
+2017-11-29  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/langs.exp: Use -qualified.
+	* gdb.cp/meth-typedefs.exp: Use -qualified, and add tests without
+	it.
+	* gdb.cp/namespace.exp: Use -qualified.
+	* gdb.linespec/cpcompletion.exp (overload-2, fqn, fqn-2)
+	(overload-3, template-overload, template-ret-type, const-overload)
+	(const-overload-quoted, anon-ns, ambiguous-prefix): New
+	procedures.
+	(test_driver): Call them.
+	* gdb.cp/save-bp-qualified.cc: New.
+	* gdb.cp/save-bp-qualified.exp: New.
+	* gdb.linespec/explicit.exp: Test -qualified.
+	* lib/completion-support.exp (completion::explicit_opts_list): Add
+	"-qualified".
+	* lib/gdb.exp (gdb_breakpoint): Handle "qualified".
+
+2017-11-29  Phil Muldoon  <pmuldoon@redhat.com>
+
+	* gdb.python/py-rbreak.exp: Set nosharedlibrary before tests.
+
+2017-11-29  Tom Tromey  <tom@tromey.com>
+
+	* gdb.base/relocate.exp: Update invalid argument test.
+	Add new tests for invalid arguments.
+
+2017-11-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+	* gdb.cp/psymtab-parameter.cc (func): Change return type back to long.
+	Return 0 as a long.
+	* gdb.cp/psymtab-parameter.exp: Change func's return type back to long.
+
+2017-11-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+	* gdb.cp/breakpoint.cc (bar): Set return type to void.
+	* gdb.cp/psymtab-parameter.cc (func): Likewise.
+	* gdb.cp/psymtab-parameter.exp: Update comment regarding prototype of
+	func ().
+	* gdb.cp/shadow.cc (B.func): Return 0.
+
+2017-11-27  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.ada/mi_catch_ex.exp (continue_to_exception): Adjust
+	expected output in gdb_expect call to allow the exception
+	message to be present as well.  Fix syntax confusion to avoid
+	TCL thinking that exception_name is an array.
+
+2017-11-26  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* gdb.arch/spu-info.c: Include <unistd.h>.
+	(do_signal_test): Fix broken calls to write.
+	* gdb.arch/spu-info.exp: Use prepare_for_testing.
+	Fix checks for empty mailboxes.  Update signal tests for corrected
+	do_signal_test routine.  Allow nonzero event status.
+	* gdb.arch/spu-ls.exp: Use prepare_for_testing.
+	* gdb.cell/arch.exp: Use standard_output_file.
+	* gdb.cell/break.exp: Likewise.
+	* gdb.cell/bt.exp: Likewise.
+	* gdb.cell/core.exp: Likewise.
+	* gdb.cell/dwarfaddr.exp: Likewise.
+	* gdb.cell/ea-cache.exp: Likewise.
+	* gdb.cell/ea-standalone.exp: Likewise.
+	* gdb.cell/f-regs.exp: Likewise.
+	* gdb.cell/fork.exp: Likewise.
+	* gdb.cell/gcore.exp: Likewise.
+	* gdb.cell/mem-access.exp: Likewise.
+	* gdb.cell/ptype.exp: Likewise.
+	* gdb.cell/registers.exp: Likewise.
+	* gdb.cell/sizeof.exp: Likewise.
+	* gdb.cell/solib-symbol.exp: Likewise.
+	* gdb.cell/solib.exp: Likewise.
+
+2017-11-25   Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/complete-empty.exp: New file.
+	* gdb.base/completion.exp: Adjust.
+
+2017-11-25  Pedro Alves  <palves@redhat.com>
+
+	* gdb.linespec/cpls-ops.cc: New file.
+	* gdb.linespec/cpls-ops.exp: New file.
+	* lib/completion-support.exp (test_complete_prefix_range_re): New,
+	factored out from ...
+	(test_complete_prefix_range): ... this.
+
+2017-11-24  Pedro Alves  <palves@redhat.com>
+
+	* gdb.linespec/cpcompletion.exp: New file.
+	* gdb.linespec/cpls-hyphen.cc: New file.
+	* gdb.linespec/cpls.cc: New file.
+	* gdb.linespec/cpls2.cc: New file.
+	* gdb.linespec/explicit.exp: Load completion-support.exp.  Adjust
+	test to use test_gdb_complete_unique.  Add label completion,
+	keyword completion and explicit location completion tests.
+	* lib/completion-support.exp: New file.
+
+2017-11-24  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.ada/catch_ex.exp, gdb.ada/mi_catch_ex.exp,
+	gdb.ada/mi_ex_cond.exp: Accept optional exception message in
+	when hitting an exception catchpoint.
+
+2017-11-22  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.base/macscp.exp: Append -g3 to additional_flags for clang.
+
+2017-11-22  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.opt/inline-locals.exp: Mark tests as KFAIL.
+	* gdb.dwarf2/info-locals-optimized-out.exp: New file.
+	* gdb.dwarf2/info-locals-optimized-out.c: New file.
+
+2017-11-22  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.base/info-os.exp: Pass pthreads.
+	* gdb.multi/multi-attach.exp: Likewise.
+
+2017-11-22  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.dwarf2/pr10770.exp: Remove code skipping non-gcc
+	compiler.
+
+2017-11-22  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.base/attach-pie-noexec.exp: Pass "-pie" in ldflags.
+	* gdb.base/break-interp.exp: Likewise.
+	* gdb.base/jit-attach-pie.exp: Likewise.
+
+2017-11-22  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* gdb.base/float128.c (large128): New variable.
+	* gdb.base/float128.exp: Add test to print largest __float128 value.
+
+2017-11-22  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* gdb.arch/vsx-regs.exp: Update register content checks.
+
+2017-11-21  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* gdb.arch/ppc-longdouble.exp: New file.
+	* gdb.arch/ppc-longdouble.c: Likewise.
+
+2017-11-21  Pedro Alves  <palves@redhat.com>
+
+	* gdb.ada/minsyms.exp: Accept any address for 'some_minsym'.
+
+2017-11-20  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/whatis-ptype-typedefs.c (double_typedef)
+	(long_double_typedef): New typedefs.
+	Use DEF on double and long double.
+	* gdb.base/whatis-ptype-typedefs.exp: Add double and long double
+	cases.
+	(run_tests): New 'float_ptr_same_size', 'double_ptr_same_size',
+	and 'long_double_ptr_same_size' locals.  Use them to decide
+	whether cast from array/function to float is valid/invalid.
+
+2017-11-17  Tom Tromey  <tom@tromey.com>
+
+	* gdb.rust/traits.rs: New file.
+	* gdb.rust/traits.exp: New file.
+
+2017-11-17  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.ada/minsyms: New testcase.
+
+2017-11-16  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/bp-cmds-continue-ctrl-c.c: New file.
+	* gdb.base/bp-cmds-continue-ctrl-c.exp: New file.
+
+2017-11-16  Pedro Alves  <palves@redhat.com>
+
+	* gdb.rust/modules.exp: Skip tests that rely on inferior I/O if
+	gdb,noinferiorio is set, and use gdb_test_stdio otherwise.
+
+2017-11-16  Pedro Alves  <palves@redhat.com>
+
+	* gdb.server/reconnect-ctrl-c.c: New file.
+	* gdb.server/reconnect-ctrl-c.exp: New file.
+
+2017-11-16  Phil Muldoon  <pmuldoon@redhat.com>
+
+	* gdb.python/py-rbreak.exp: New file.
+	* gdb.python/py-rbreak.c: New file.
+	* gdb.python/py-rbreak-func2.c: New file.
+
+2017-11-16  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/starti.exp ("continue" test): Remove ".*"s from
+	pattern.
+	* lib/gdb.exp (gdb_test_sequence): Don't send empty command to
+	GDB.
+
+2017-11-15  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.tui/completionn.exp (test_tab_completion): Add space in
+	regex.
+
+2017-11-13  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* gdb.opt/inline-locals.exp: Remove trailing parentheses from
+	test names.
+
+2017-11-09  Pedro Alves  <palves@redhat.com>
+
+	* gdb.tui/tui-completion.exp (test_tab_completion): New procedure,
+	factored out from ...
+	(top level): ... here, and adjusted to avoid expecting beyond the
+	prompt in a single gdb_test_multiple.
+
+2017-11-09  Pedro Alves  <palves@redhat.com>
+
+	* gdb.multi/multi-attach.exp ("kill" test): Match the whole query
+	output.
+	* gdb.server/ext-attach.exp ("kill" test): Likewise.
+	* gdb.server/ext-restart.exp ("kill" test): Likewise.
+	* gdb.server/ext-run.exp ("kill" test): Likewise.
+	* gdb.server/ext-wrapper.exp ("kill" test): Likewise.
+
+2017-11-09  Pedro Alves  <palves@redhat.com>
+
+	* gdb.cp/cpcompletion.exp (test_class_complete): Tighten regex to
+	match till end of line.
+
+2017-11-09  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/memattr.exp: Tighten regexes to match the end line.
+
+2017-11-09  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/completion.exp (ignore_and_resync, test_tab_complete):
+	New procedures, factored out from ...
+	(top level): ... here, and adjusted to avoid expecting beyond the
+	prompt in one go.
+
+2017-11-09  Pedro Alves  <palves@redhat.com>
+
+	* gdb.asm/asm-source.exp ("kill" test): Match the whole query
+	output.  Fix '?' match.
+
+2017-11-08  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.ada/scoped_watch: New testcase.
+	* gdb.ada/watch_arg.exp: Adjust expected behavior to the behavior
+	which is actually correct.
+	* gdb.ada/mi_interface.exp: Add missing thread-id in expected varobj.
+	* gdb.ada/mi_var_array.exp: Add missing thread-id in expected varobj.
+
+2017-11-08  Pedro Alves  <palves@redhat.com>
+
+	* gdb.gdb/complaints.exp (test_initial_complaints)
+	(test_serial_complaints, test_short_complaints): Call
+	complaint_internal instead of complaint.
+
+2017-11-08  Djordje Todorovic  <djordje.todorovic@rt-rk.com>
+
+	* gdb.threads/tls-core.c: New file.
+	* gdb.threads/tls-core.exp: Likewise.
+
+2017-11-08   Pedro Alves  <palves@redhat.com>
+
+	* gdb.ada/complete.exp (p <Exported_Capitalized>): New test.
+	(p Exported_Capitalized): New test.
+	(p exported_capitalized): New test.
+
+2017-11-07  Pedro Alves  <palves@redhat.com>
+
+	* gdb.cp/ena-dis-br-range.exp: Add more tests.
+
+2017-11-07  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/ena-dis-br.exp (test_ena_dis_br): Adjust test.
+	* gdb.cp/ena-dis-br-range.exp: Adjust tests.
+	(disable_invalid, disable_inverted, disable_negative): New
+	procedures.
+	("bad numbers"): New set of tests.
+
+2017-11-07  Pedro Alves  <palves@redhat.com>
+
+	* gdb.cp/ena-dis-br-range.exp: Add tests.
+
+2017-11-07  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/ena-dis-br.exp: Don't expect "warning:".
+
+2017-11-07  Xavier Roirand  <roirand@adacore.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/ena-dis-br.exp: Add reference to
+	gdb.cp/ena-dis-br-range.exp.
+	* gdb.cp/ena-dis-br-range.exp: New file.
+	* gdb.cp/ena-dis-br-range.cc: New file.
+
+2017-11-06  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/attach-non-pgrp-leader.c: New.
+	* gdb.base/attach-non-pgrp-leader.exp: New.
+
+2017-11-06  Pedro Alves  <palves@redhat.com>
+
+	* configure.ac: No longer check for termio.h and sgtty.h.
+	* configure: Regenerate.
+	* remote-utils.c: Include termios.h instead of gdb_termios.h.
+	(remote_open): Check HAVE_TERMIOS_H instead of HAVE_TERMIOS.
+	Remove termio and sgtty code.
+
+2017-11-03  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.mi/list-thread-groups-available.exp: Skip it if XML parsing
+	in GDB is disabled.
+
+2017-11-03  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.python/py-thrhandle.exp: Skip it if python is not
+	enabled.
+
+2017-10-31  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* gdb.mi/mi-break.exp (test_breakpoint_commands): Test backtrace
+	as a breakpoint command.
+
+2017-10-28  Maksim Dzabraev  <dzabraew@gmail.com>
+
+	PR python/21213
+	* gdb.python/py-infthread.exp: Test calling
+	InferiorThread.inferior () multiple times in a row.
+
+2017-10-27  Keith Seitz  <keiths@redhat.com>
+
+	* gdb.opt/inline-break.exp (break_info_1): New procedure.
+	Test "info break" for every inlined function breakpoint.
+
+2017-10-27  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.arch/insn-reloc.c (can_relocate_bl): Mark "x30" clobbered.
+
+2017-10-26  Patrick Frants  <osscontribute@gmail.com>
+
+	* gdb.cp/classes.exp (test_static_members): Test printing
+	Outer::instance.
+	* gdb.cp/classes.c (struct Inner, struct Outer): New.
+	(Inner::instance, Outer::instance): New.
+
+2017-10-24  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/new-ui.exp (do_test): Split "delete all breakpoints on
+	extra console" test in two stages.
+
+2017-10-24  Pedro Alves  <palves@redhat.com>
+
+	* gdb.threads/attach-into-signal.exp (corefunc): Reindent.
+
+2017-10-24  Pedro Alves  <palves@redhat.com>
+
+	* gdb.threads/attach-into-signal.exp: Remove whole "stoppedtry"
+	loop.
+
+2017-10-24  Pedro Alves  <palves@redhat.com>
+
+	* gdb.threads/attach-into-signal.exp (corefunc): Remove "attach
+	$attempt" and "stoppedtry $stoppedtry" test prefixes.
+
+2017-10-24  Pedro Alves  <palves@redhat.com>
+
+	* lib/gdb-python.exp (get_python_valueof): Add 'test' optional
+	parameter and handle it.  Don't output read value in test name.
+
+2017-10-24  Pedro Alves  <palves@redhat.com>
+
+	* gdb.gdb/unittest.exp ('maintenance check xml-descriptions'): Use
+	custom test name.
+
+2017-10-24  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/startup-with-shell.exp ('touch $unique_file'): Don't
+	include the unstable output directory name in the test's name.
+	(initial_setup_simple) <'set args'>: Use custom test name.
+
+2017-10-24  Pedro Alves  <palves@redhat.com>
+
+	* gdb.arch/arc-tdesc-cpu.exp ('set tdesc filename'): Use gdb_test
+	with explicit test name.
+
+2017-10-20  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/quit.exp: Use gdb_test_multiple and expect 'eof' before
+	'wait -i'.  Use gdb_assert and remote_close.
+
+2017-10-19  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.linespec/ls-errs.exp (do_test): Update comment, use line
+	number from variable rather than hard-coded.
+
+2017-10-19  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/long-inferior-output.c: New file.
+	* gdb.base/long-inferior-output.exp: New file.
+
+2017-11-18  Keith Seitz  <keiths@redhat.com>
+
+	* gdb.cp/cpexprs.cc (base) <operator fluff const* const*>: New
+	method.
+	(main): Call it.
+	* gdb.cp/cpexprs.exp: Add new conversion operator to test matrix.
+	Add additional user-defined conversion operator tests.
+
+2017-10-17  Pedro Alves  <palves@redhat.com>
+
+	* boards/native-stdio-gdbserver.exp: Load "local-board".
+
+2017-10-17  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/quit-live.c: New file.
+	* gdb.base/quit-live.exp: New file.
+
+2017-10-16  Keith Seitz  <keiths@redhat.com>
+
+	* gdb.cp/classes.cc (class_with_typedefs, class_with_public_typedef)
+	(class_with_protected_typedef, class_with_private_typedef)
+	(struct_with_public_typedef, struct_with_protected_typedef)
+	(struct_with_private_typedef): New classes/structs.
+	* gdb.cp/classes.exp (test_ptype_class_objects): Add tests for
+	typedefs and access specifiers.
+
+2017-10-16  Pedro Alves  <palves@redhat.com>
+	    Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* README (Local vs Remote vs Native): New section.
+	* boards/local-board.exp: New file, with bits factored out from
+	...
+	* boards/native-extended-gdbserver.exp: ... here.  Load
+	"local-board".
+	* boards/native-gdbserver.exp: Load "local-board".
+	(${board}_spawn, ${board}_exec): Delete.
+	* boards/native-stdio-gdbserver.exp: Most contents factored out to
+	...
+	* boards/stdio-gdbserver-base.exp: ... this new file.
+	* boards/native-stdio-gdbserver.exp: Reimplement, by loading
+	"stdio-gdbserver-base" and defining a get_target_remote_pipe_cmd
+	procedure.
+	* boards/remote-stdio-gdbserver.exp: Load stdio-gdbserver-base
+	instead of native-stdio-gdbserver.  Don't set gdb_server_prog nor
+	stdio_gdbserver_command.
+	(${board}_get_remote_address, ${board}_get_comm_port)
+	(${board}_download, ${board}_upload): Delete.
+	(get_target_remote_pipe_cmd): New.
+
+2017-10-16  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.python/py-breakpoint.exp (test_bkpt_basic,
+	test_bkpt_deletion, test_bkpt_cond_and_cmds,
+	test_bkpt_invisible, test_watchpoints, test_bkpt_internal,
+	test_bkpt_eval_funcs, test_bkpt_temporary, test_bkpt_address,
+	test_bkpt_pending, test_bkpt_events): Use proc_with_prefix,
+	remove with_test_prefix.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+
+	* lib/gdb.exp (target_can_use_run_cmd): New procedure.
+	* gdb.base/annota1.exp: Use it instead of is_remote.
+	* gdb.base/annota3.exp: Use it instead of is_remote.
+	* gdb.cp/annota2.exp: Use it instead of is_remote.
+	* gdb.cp/annota3.exp: Use it instead of is_remote.
+	* gdb.multi/bkpt-multi-exec.exp: Use it instead of is_remote.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/testenv.exp: Check use_gdb_stub instead of is_remote.
+	(test_num_test_vars, run_and_count_vars, find_env)
+	(test_set_unset_env, test_inherit_env_var): New procedures.
+	(top level): Use them.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+
+	* lib/selftest-support.exp (selftest_setup): Extend comments, and
+	also skip on stub-like targets.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+
+	PR gdb/22293
+	* gdb.base/find-unmapped.exp: Don't skip if is_remote target.
+	(top level): Move some tests to ...
+	(test_not_found): ... this new procedure.
+	(top level): Call it.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/term.exp: Don't skip if is_remote target.  Instead,
+	expect different "info terminal" output if testing with a
+	non-native target.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+	    Simon Marchi  <simon.marchi@polymtl.ca>
+
+	PR python/12966
+	* gdb.python/py-evthreads.exp: Remove is_remote target kfail.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+
+	* gdb.python/py-evthreads.exp: Start GDB with "set non-stop on"
+	already.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+
+	* gdb.python/py-evsignal.exp: Check gdb_protocol instead of
+	is_remote.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+
+	* gdb.threads/thread_events.exp: Check gdb_protocol instead of
+	is_remote.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/corefile.exp (corefile_test_run): Skip if gdb_protocol
+	is set.
+	(corefile_test_attach): Likewise.  Check can_spawn_for_attach
+	instead of is_remote.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/remote.exp: Check gdb_protocol instead of is_remote.
+	(top level): Add comment.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/remote.exp (top level): Fix comment typo and add
+	missing return.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+	    Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* gdb.base/solib-nodir.exp: Split is_remote and skip_shlib_tests
+	calls and add comments.  Skip test if use_gdb_stub is set.
+	(top level): Use "set cwd" command instead of "cd" command.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/shlib-call.exp (top level): Use gdb_run_cmd and remove
+	is_remote target check.
+
+2017-10-13  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/scope.exp: Use build_executable + clean_restart +
+	gdb_file_cmd instead of prepare_for_testing and no longer skip
+	"before run" tests on is_remote target boards.  Update comments.
+	* boards/native-extended-gdbserver.exp
+	(extended_gdbserver_load_last_file): New, factored out from ...
+	(gdb_load): ... this.  Move further below and add comment.
+	(extended_gdbserver_gdb_file_cmd, gdb_file_cmd, gdb_reload): New.
+
+2017-10-12  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/attach.exp: Remove references to gdb64.
+	* gdb.base/dbx.exp: Remove references to gdb64.
+
+2017-10-12  Simon Marchi  <simon.marchi@polymtl.ca>
+	    Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/label.exp: Remove is_remote target check.
+
+2017-10-12  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/auvx.exp (coredir): Update comment.
+	(top level) <core_works>: Use "set cwd" command instead of "cd"
+	command.
+
+2017-10-12  Pedro Alves  <palves@redhat.com>
+	    Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* gdb.base/catch-fork-static.exp: No longer skip on is_remote
+	target boards.
+
+2017-10-12  Pedro Alves  <palves@redhat.com>
+	    Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* gdb.base/checkpoint.exp: Don't check is_remote or isnative.
+	Instead skip if there's any gdb_protocol set.
+
+2017-10-12  Simon Marchi  <simon.marchi@polymtl.ca>
+	    Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/dprintf-non-stop.exp: Remove is_remote target check.
+
+2017-10-12  Pedro Alves  <palves@redhat.com>
+	    Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* gdb.base/argv0-symlink.exp: kfail on remote gdbserver,
+	instead of on dejagnu remote boards.
+
+2017-10-12  Pedro Alves  <palves@redhat.com>
+	    Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* gdb.base/inferior-died.exp: Remove is_remote and isnative
+	checks.  Use build_executable + clean_restart instead of
+	prepare_for_testing.  Pass "set non-stop on" via GDBFLAGS instead
+	of enabling non-stop after starting gdb.
+
+2017-10-12  Pedro Alves  <palves@redhat.com>
+
+	* gdb.threads/non-ldr-exc-1.exp: No longer skip if is_remote target.
+	* gdb.threads/non-ldr-exc-2.exp: Ditto.
+	* gdb.threads/non-ldr-exc-3.exp: Ditto.
+	* gdb.threads/non-ldr-exc-4.exp: Ditto.
+
+2017-10-11  Anton Kolesov  <Anton.Kolesov@synopsys.com>
+
+	* gdb.arch/arc-tdesc-cpu.exp: New file.
+	* gdb.arch/arc-tdesc-cpu.xml: Likewise.
+
+2017-10-10  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* lib/gdb.exp (get_integer_valueof): Don't output read value in test name.
+
+2017-10-10  Pedro Alves <palves@redhat.com>
+
+	* gdb.mi/mi-pthreads.exp (check_mi_thread_command_set): Don't
+	expect CLI output.
+
+2017-10-10  Pedro Alves  <palves@redhat.com>
+
+	* lib/selftest-support.exp (selftest_setup): Update for
+	captured_command_loop's prototype change.
+
+2017-10-09  Pedro Alves  <palves@redhat.com>
+
+	Test both arch1=>arch2 and arch2=>arch1.
+
+	* gdb.multi/multi-arch-exec.exp (exec1, srcfile1, binfile1, exec2)
+	(srcfile2, binfile2, march1, march2): Remove globals.  Largely
+	factored out to...
+	(append_arch1_options, append_arch2_options, append_arch_options)
+	(build_executables): New procedures.
+	(do_test): New 'first_arch' parameter.  Use it to define 'from_exec'
+	local.
+	(top level): Add new 'first_arch' testing axis.
+
+2017-10-09  Pedro Alves  <palves@redhat.com>
+
+	* gdb.multi/multi-arch-exec.c: Include <pthread.h> and <assert.h>.
+	(barrier): New.
+	(thread_start, all_started): New functions.
+	(main): Spawn new thread and wait until it is scheduled.
+	* gdb.multi/multi-arch-exec.exp: Build $srcfile1 with the pthreads
+	option.
+	(do_test): Add 'selected_thread' parameter.  Run to all_started
+	instead of main.  Explicitly set the breakpoint at main.  Switch
+	to the SELECTED_THREAD thread.
+	(top level): Test handling the exec event with either the main
+	thread or the second thread selected.
+
+2017-10-09  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/print-file-var-main.c: Fix get_version_2 value check
+	logic.  Move STOP marker after the value checks.
+	* gdb.base/print-file-var.exp (continue to STOP marker): Tighten
+	regexp.
+
+2017-10-06  Sandra Loosemore  <sandra@codesourcery.com>
+
+	* gdb.mi/mi-threads-interrupt.exp: Skip test if nointerrupts.
+
+2017-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* gdb.base/dfp-exprs.exp: Update tests to larger range of supported
+	integer-to-dfp conversion.
+	* gdb.base/dfp-test.exp: Likewise.
+
+2017-10-04  Pedro Alves  <palves@redhat.com>
+
+	* gdb.multi/hangout.c: Include <unistd.h>.
+	(hangout_loop): New function.
+	(main): Call alarm.  Call hangout_loop in a loop.
+	* gdb.multi/hello.c: Include <unistd.h>.
+	(hello_loop): New function.
+	(main): Call alarm.  Call hangout_loop in a loop.
+	* gdb.multi/multi-arch.exp: Test running to a breakpoint one
+	inferior with the other selected.
+
+2017-10-04  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.mi/list-thread-groups-available.exp: New file.
+	* gdb.mi/list-thread-groups-available.c: New file.
+
+2017-10-04  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gdb.base/set-cwd.exp: Make it available on
+	native-extended-gdbserver.
+
+2017-10-04  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gdb.base/set-cwd.c: New file.
+	* gdb.base/set-cwd.exp: Likewise.
+
+2017-10-02  Tom Tromey  <tom@tromey.com>
+
+	PR rust/22236:
+	* gdb.rust/simple.rs (main): New variable "fslice".
+	* gdb.rust/simple.exp: Add slice tests.  Update string tests.
+
+2017-10-02  Tom Tromey  <tom@tromey.com>
+
+	* gdb.rust/simple.exp: Test ptype of a slice.
+
+2017-10-02  Tom Tromey  <tom@tromey.com>
+
+	* gdb.rust/simple.exp: Test index of slice.
+
+2017-09-27  Tom Tromey  <tom@tromey.com>
+
+	* gdb.base/macscp.exp: Add __VA_OPT__ tests.
+
+2017-09-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/compare-sections.exp (get value of read-only section): Read
+	as unsigned value.
+	(corrupt read-only section): Likewise and don't set written if patching
+	failed.
+
+2017-09-21  Kevin Buettner  <kevinb@redhat.com>
+
+	* gdb.python/py-thrhandle.c, gdb.python/py-thrhandle.exp: New
+	files.
+
+2017-09-20  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/list-ambiguous.exp (test_list_ambiguous_symbol): Expect
+	symbol names in gdb's output.
+	* gdb.cp/overload.exp ("list all overloads"): Likewise.
+
+2017-09-20  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/list-ambiguous.exp (test_list_ambiguous_function):
+	Rename to ...
+	(test_list_ambiguous_symbol): ... this and add a symbol name
+	parameter.  Adjust.
+	(test_list_ambiguous_function): Reimplement on top of
+	test_list_ambiguous_symbol and also test listing ambiguous
+	variables.
+	* gdb.base/list-ambiguous0.c (ambiguous): Rename to ...
+	(ambiguous_fun): ... this.
+	(ambiguous_var): New.
+	* gdb.base/list-ambiguous1.c (ambiguous): Rename to ...
+	(ambiguous_fun): ... this.
+	(ambiguous_var): New.
+
+2017-09-19  John Baldwin  <jhb@FreeBSD.org>
+
+	* gdb.base/starti.c: New file.
+	* gdb.base/starti.exp: New file.
+	* lib/gdb.exp (gdb_starti_cmd): New procedure.
+
+2017-09-14  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/nodebug.exp (nodebug_runto): New procedure.
+	(top level): Use it instead of runto.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* gdb.base/ena-dis-br.exp (test_ena_dis_br): Update test.
+
+2017-09-11  Tom Tromey  <tom@tromey.com>
+
+	* gdb.python/py-infthread.exp: Add tests for new_thread event.
+	* gdb.python/py-inferior.exp: Add tests for new inferior events.
+
+2017-09-08  Christoph Weinmann  <christoph.t.weinmann@intel.com>
+
+	* gdb.fortran/printing-types.exp: New file.
+	* gdb.fortran/printing-types.exp: New file.
+
+2017-09-08  Bernhard Heckel  <bernhard.heckel@intel.com>
+
+	* gdb.fortran/vla-ptype.exp: Fix typos.
+	* gdb.fortran/vla-value.exp: Same.
+
+2017-09-08  Bernhard Heckel  <bernhard.heckel@intel.com>
+
+	* gdb.fortran/vla-value.exp: Use type names defined in libfortran.
+	* gdb.mi/mi-var-child-f.exp: Likewise.
+	* gdb.mi/mi-vla-fortran.exp: Likewise.
+
+2017-09-08  Frank Penczek  <frank.penczek@intel.com>
+            Christoph Weinmann  <christoph.t.weinmann@intel.com>
+            Bernhard Heckel  <bernhard.heckel@intel.com>
+
+	* gdb.fortran/ptr-indentation.f90: New file.
+	* gdb.fortran/ptr-indentation.exp: New file.
+
+2017-09-05  Tom Tromey  <tom@tromey.com>
+
+	PR gdb/22010:
+	* gdb.base/sizeof.exp (check_valueof): Cast char constant to int.
+
+2017-09-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+	* gdb.arch/thumb2-it.exp: Cast call to assembly defined function.
+
+2017-09-06  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* gdb.threads/tls-nodebug-pie.c: New file.
+	* gdb.threads/tls-nodebug-pie.exp: New file.
+
+2017-09-05  Tom Tromey  <tom@tromey.com>
+
+	* lib/gdb.exp (gdb_compile): Don't use universal_compile_options
+	for rust.
+
 2017-09-05  Simon Marchi  <simon.marchi@ericsson.com>
 
 	* gdb.multi/multi-arch-exec.exp: Test with different
 	"follow-exec-mode" settings.
 	(do_test): New procedure.
 
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/func-static.c (S::method const, S::method volatile)
+	(S::method volatile const): New methods.
+	(c_s, v_s, cv_s): New instances.
+	(main): Call method() on them.
+	* gdb.base/func-static.exp (syntax_re, cannot_resolve_re): New variables.
+	(cannot_resolve): New procedure.
+	(cxx_scopes_list): Test cv methods.  Add print-scope-quote and
+	print-quote-unquoted columns.
+	(do_test): Test printing each scope too.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/local-static.exp: Also test with
+	class::method::variable wholly quoted.
+	* gdb.cp/m-static.exp (class::method::variable): Remove test.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/local-static.c: New.
+	* gdb.base/local-static.cc: New.
+	* gdb.base/local-static.exp:  New.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* gdb.asm/asm-source.exp: Add casts to int.
+	* gdb.base/nodebug.c (dataglobal8, dataglobal32_1, dataglobal32_2)
+	(dataglobal64_1, dataglobal64_2): New globals.
+	* gdb.base/nodebug.exp: Test different expressions involving the
+	new globals, with print, whatis and ptype.  Add casts to int.
+	* gdb.base/solib-display.exp: Add casts to int.
+	* gdb.compile/compile-ifunc.exp: Expect warning.  Add cast to int.
+	* gdb.cp/m-static.exp: Add cast to int.
+	* gdb.dwarf2/dw2-skip-prologue.exp: Add cast to int.
+	* gdb.threads/tls-nodebug.exp: Check that gdb errors out printing
+	tls variable with no debug info without a cast.  Test with a cast
+	to int too.
+	* gdb.trace/entry-values.exp: Add casts.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/nodebug.exp: Test that ptype's error about functions
+	with unknown return type includes the function name too.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/break-main-file-remove-fail.exp (test_remove_bp): Cast
+	return type of munmap in infcall.
+	* gdb.base/break-probes.exp: Cast return type of foo in infcall.
+	* gdb.base/checkpoint.exp: Simplify using for loop.  Cast return
+	type of ftell in infcall.
+	* gdb.base/dprintf-detach.exp (dprintf_detach_test): Cast return
+	type of getpid in infcall.
+	* gdb.base/infcall-exec.exp: Cast return type of execlp in
+	infcall.
+	* gdb.base/info-os.exp: Cast return type of getpid in infcall.
+	Bail on failure to extract the pid.
+	* gdb.base/nodebug.c: #include <stdint.h>.
+	(multf, multf_noproto, mult, mult_noproto, add8, add8_noproto):
+	New functions.
+	* gdb.base/nodebug.exp (test_call_promotion): New procedure.
+	Change expected output of print/whatis/ptype with functions with
+	no debug info.  Test all supported languages.  Call
+	test_call_promotion.
+	* gdb.compile/compile.exp: Adjust expected output to expect
+	warning.
+	* gdb.threads/siginfo-threads.exp: Likewise.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/callfuncs.exp (do_function_calls): New parameter
+	"prototypes".  Test calling float functions via prototyped and
+	unprototyped function pointers.
+	(perform_all_tests): New parameter "prototypes".  Pass it down.
+	(top level): Pass down "prototypes" parameter to
+	perform_all_tests.
+
+2017-09-04  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.base/commands.exp (loop_break_test, loop_continue_test):
+	Test with nested loops.
+
+2017-09-04  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.base/commands.exp: Call the new procedures.
+	(loop_break_test, loop_continue_test): New procedures.
+
+2017-09-04  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.base/commands.exp: Call new procedure.
+	(define_if_without_arg_test): New procedure.
+
+2017-09-04  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/list-ambiguous.exp: New file.
+	* gdb.base/list-ambiguous0.c: New file.
+	* gdb.base/list-ambiguous1.c: New file.
+	* gdb.base/list.exp (test_list_range): Adjust expected output.
+
+2017-08-31  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gdb.base/share-env-with-gdbserver.c: New file.
+	* gdb.base/share-env-with-gdbserver.exp: Likewise.
+
+2017-08-28  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.base/commands.exp (gdbvar_simple_if_test,
+	gdbvar_simple_if_test, gdbvar_complex_if_while_test,
+	progvar_simple_if_test, progvar_simple_while_test,
+	progvar_complex_if_while_test, user_defined_command_test,
+	user_defined_command_args_eval,
+	user_defined_command_args_stack_test,
+	user_defined_command_manyargs_test, bp_deleted_in_command_test,
+	temporary_breakpoint_commands,
+	gdb_test_no_prompt, redefine_hook_test,
+	redefine_backtrace_test): Remove "global gdb_prompt".
+
 2017-08-28  Simon Marchi  <simon.marchi@ericsson.com>
 
 	* gdb.base/commands.exp (user_defined_command_case_sensitivity):
 	New proc, call it from toplevel.
 
-2017-07-25  Yao Qi  <yao.qi@linaro.org>
+2017-08-23  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR remote/21852
+	* gdb.server/normal.c: New file, copied from gdb.base.
+	* gdb.server/run-without-local-binary.exp: New file.
+
+2017-08-07  Weimin Pan  <weimin.pan@oracle.com>
+
+	* gdb.arch/sparc64-adi.exp: New file.
+	* gdb.arch/sparc64-adi.c: New file.
+
+2017-08-22  Pedro Alves  <palves@redhat.com>
+
+	* gdb.cp/overload.exp (line_range_pattern): New procedure.
+	(top level): Add "list all overloads" tests.
+
+2017-08-22  Tom Tromey  <tom@tromey.com>
+
+	* gdb.gdb/xfullpath.exp: Remove.
+
+2017-08-21  Pedro Alves  <palves@redhat.com>
+
+	PR gdb/19487
+	* gdb.base/symbol-alias.c: New.
+	* gdb.base/symbol-alias2.c: New.
+	* gdb.base/symbol-alias.exp: New.
+
+2017-08-21  Pedro Alves  <palves@redhat.com>
 
-	PR gdb/21555
-	* gdb.base/reread.exp: Wrap the whole test with two kinds of
-	compilation flags, with -fPIE and without -fPIE.
+	* gdb.base/dfp-test.c
+	(d32_t, d64_t, d128_t, d32_t2, d64_t2, d128_t2, v_d32_t, v_d64_t)
+	(v_d128_t, v_d32_t2, v_d64_t2, v_d128_t2): New.
+	* gdb.base/dfp-test.exp: Add whatis/ptype/cast tests.
+	* gdb.base/gnu_vector.exp: Add whatis/ptype/cast tests.
+	* gdb.base/whatis-ptype-typedefs.c: New.
+	* gdb.base/whatis-ptype-typedefs.exp: New.
+	* gdb.python/py-prettyprint.c (int_type, int_type2): New typedefs.
+	(an_int, an_int_type, an_int_type2): New globals.
+	* gdb.python/py-prettyprint.exp (run_lang_tests): Add tests
+	involving typedefs and cast expressions.
+	* gdb.python/py-prettyprint.py (class pp_int_typedef): New.
+	(lookup_typedefs_function): New.
+	(typedefs_pretty_printers_dict): New.
+	(top level): Register lookup_typedefs_function in
+	gdb.pretty_printers.
+
+2017-08-18  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.server/unittest.exp: New.
+
+2017-08-15  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR gdb/21954
+	* gdb.base/environ.exp: Add test to check if 'unset environment'
+	works.
+
+2017-08-14  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* lib/gdb.exp (universal_compile_options): New caching proc.
+	(gdb_compile): Suppress GCC's coloring of messages.
+
+2017-08-14  Tom Tromey  <tom@tromey.com>
+
+	PR gdb/21675:
+	* gdb.base/printcmds.exp (test_radices): New function.
+	* gdb.dwarf2/var-access.exp: Use p/u, not p/d.
+	* gdb.base/sizeof.exp (check_valueof): Use p/d.
+	* lib/gdb.exp (get_integer_valueof): Use p/d.
+
+2017-08-12  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* lib/gdb.exp (get_valueof): Don't capture end-of-line
+	characters.
+
+2017-08-05  Tom Tromey  <tom@tromey.com>
+
+	* gdb.rust/simple.exp: Allow String to appear in a different
+	namespace.
+
+2017-07-26  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.gdb/unittest.exp: Invoke command
+	"maintenance check xml-descriptions".
+
+2017-07-24  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* gdb.arch/s390-vregs.exp: Calculate parameters to hex128 in the
+	calling context.
+	(hex128): Drop erroneous calculation of parameters.
+
+2017-07-22  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.python/py-unwind.exp: Disable stack protection when
+	building test file.
+
+2017-07-20  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/default.exp (set language): Adjust expected output.
+
+2017-07-20  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/dmsym.c (pck__foo__bar__minsym): Rename to ...
+	(test_minsym): ... this, and make static.
+	(get_pck__foo__bar__minsym): Rename to ...
+	(get_test_minsym): ... this.
+	* gdb.base/dmsym.exp (): Remove "set language ada" call.  Adjust
+	symbol names and comments.
+	* gdb.base/dmsym_main.c (get_pck__foo__bar__minsym): Rename to ...
+	(get_test_minsym): ... this.
+	(pck__foo__bar__minsym__2): Rename to ...
+	(test_minsym): ... this.
+	(main): Adjust.
+
+2017-07-17  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/completion.exp: Adjust expected output.
+	* gdb.linespec/ls-errs.exp: Don't send tab characters, now that
+	the completer works.
+
+2017-07-17  Pedro Alves  <palves@redhat.com>
+
+	* gdb.linespec/ls-errs.exp (do_test): Adjust expected output.
+
+2017-07-15  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.mi/mi-vla-fortran.exp: Make test names unique.
+
+2017-07-14  Tom Tromey  <tom@tromey.com>
+
+	PR rust/21764:
+	* gdb.rust/simple.exp: Add tests.
+
+2017-07-14  Tom Tromey  <tom@tromey.com>
+
+	* gdb.rust/simple.exp: Add regression test for PR rust/21763.
+
+2017-07-14  Pedro Alves  <palves@redhat.com>
+
+	* gdb.linespec/base/one/thefile.cc (z1): New function.
+	* gdb.linespec/base/two/thefile.cc (z2): New function.
+	* gdb.linespec/linespec.exp: Add tests.
+
+2017-07-13  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.mi/mi-vla-fortran.exp: Correct even more parameter passing
+	to mi_create_breakpoint.
+
+2017-07-13  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.mi/mi-vla-fortran.exp: Correct parameter passing to
+	mi_create_breakpoint.
+
+2017-07-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* gdb.dlang/demangle.exp: Update for demangling changes.
+
+2017-07-09  Tom Tromey  <tom@tromey.com>
+
+	* gdb.dwarf2/shortpiece.exp: New file.
+
+2017-07-06  David Blaikie  <dblaikie@gmail.com>
+
+	* gdb.dwarf2/fission-multi-cu.S: Test containing multiple CUs in a DWO,
+	built from fissiont-multi-cu{1,2}.c.
+	* gdb.dwarf2/fission-multi-cu.exp: Test similar to fission-base.exp,
+	except putting 'main' and 'func' in separate CUs in the same DWO file.
+	* gdb.dwarf2/fission-multi-cu1.c: First CU for the multi-CU-single-DWO
+	test.
+	* gdb.dwarf2/fission-multi-cu2.c: Second CU in the multi-CU-single-DWO
+	test.
+
+2017-07-06  Pedro Alves  <palves@redhat.com>
+
+	* gdb.python/py-unwind.exp: Test flushregs.
+
+2017-06-30  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR cli/21688
+	* gdb.python/py-cmd.exp (test_python_inline_or_multiline): Add new
+	tests for alias commands and trailing whitespace.
+
+2017-06-30  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	PR cli/21688
+	* gdb.python/py-cmd.exp (test_python_inline_or_multiline): New
+	procedure.  Call it.
+
+2017-06-29  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/printcmds.exp: Add tests.
+
+2017-06-28  Doug Gilmore  <Doug.Gilmore@imgtec.com>
+
+	PR gdb/21337
+	* gdb.base/reread-readsym.exp: New file.
+	* gdb.base/reread-readsym.c: New file.
+
+2017-06-21  Kevin Buettner  <kevinb@redhat.com>
+
+	* gdb.exp (gdb_test): Using noncapturing parens for the $pattern
+	subpattern.
+
+2017-06-19  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* gdb.arch/powerpc-power9.exp: Update test case for new lnia
+	extended mnemonic.
+	* gdb.arch/powerpc-power9.s: Likewise.
+
+2017-06-14  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* gdb.dwarf2/var-access.exp: Use register name ecx instead of edx
+	on 32-bit x86 targets.  Exploit is_*_target macros where
+	appropriate.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* gdb.dwarf2/var-access.exp: Add test for non-byte-aligned
+	register pieces.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* gdb.dwarf2/var-access.exp: Add tests for accessing bit-fields
+	located in one or more DWARF pieces.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* lib/gdb.exp (get_endianness): New proc.
+	* gdb.arch/aarch64-fp.exp: Use it.
+	* gdb.arch/altivec-regs.exp: Likewise.
+	* gdb.arch/e500-regs.exp: Likewise.
+	* gdb.arch/vsx-regs.exp: Likewise.
+	* gdb.base/dump.exp: Likewise.
+	* gdb.base/funcargs.exp: Likewise.
+	* gdb.base/gnu_vector.exp: Likewise.
+	* gdb.dwarf2/formdata16.exp: Likewise.
+	* gdb.dwarf2/implptrpiece.exp: Likewise.
+	* gdb.dwarf2/nonvar-access.exp: Likewise.
+	* gdb.python/py-inferior.exp: Likewise.
+	* gdb.trace/unavailable-dwarf-piece.exp: Likewise.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	PR gdb/21226
+	* gdb.dwarf2/nonvar-access.exp: Add checks for verifying that
+	stack value pieces are taken from the LSB end.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* gdb.dwarf2/var-pieces.exp: Add test case for modifying a
+	variable at nonzero offset.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* gdb.dwarf2/var-access.c: New file.
+	* gdb.dwarf2/var-access.exp: New test.
+	* lib/gdb-utils.exp (string_to_regexp): Quote braces as well.
+
+2017-06-12  Tom Tromey  <tom@tromey.com>
+
+	* gdb.dwarf2/formdata16.exp: Add tests.
+
+2017-06-12  Tom Tromey  <tom@tromey.com>
+
+	* gdb.arch/altivec-regs.exp: Expect decimal results for uint128.
+
+2017-06-12  Tom Tromey  <tom@tromey.com>
+
+	PR exp/16225:
+	* gdb.reverse/i386-sse-reverse.exp: Update tests.
+	* gdb.arch/vsx-regs.exp: Update tests.
+	* gdb.arch/s390-vregs.exp (hex128): New proc.
+	Update test.
+	* gdb.arch/altivec-regs.exp: Update tests.
+
+2017-06-07  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gdb.base/startup-with-shell.c: New file.
+	* gdb.base/startup-with-shell.exp: Likewise.
+
+2017-06-07  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* gdb.server/non-existing-program.exp: Update regex in order to
+	reflect the fact that gdbserver is now using fork_inferior (with a
+	shell) to startup the inferior.
+
+2017-05-30  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.base/watch-cond-infcall.exp: Don't run if target doesn't
+	support function calls from GDB.
+
+2017-05-21  Tom Tromey  <tom@tromey.com>
+
+	PR rust/21466:
+	* gdb.rust/unsized.exp: New file.
+	* gdb.rust/unsized.rs: New file.
+
+2017-05-19  Tom Tromey  <tom@tromey.com>
+
+	PR rust/21484:
+	* gdb.rust/watch.exp: New file.
+	* gdb.rust/watch.rs: New file.
+
+2017-05-18  Tom Tromey  <tom@tromey.com>
+
+	* gdb.rust/simple.exp: Allow Box to be qualified.
 
 2017-05-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
 
 	* gdb.base/float.exp: Expect GDB prompt for targets without FPU.
 
+2017-05-18  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/fileio.c (test_write, test_read, test_close)
+	(test_fstat): Don't print 'ret' in the fail path.
+
+2017-05-18  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/fileio.c (stop, test_open, test_write, test_read)
+	(test_lseek, test_close, test_stat, test_fstat, test_isatty)
+	(test_system, test_rename, test_unlink, test_time): Change
+	prototypes.
+	* gdb.base/fileio.exp (stop_msg): Adjust.
+
+2017-05-18  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/fileio.c (null_str): New global.
+	(test_stat): Use it.
+	* gdb.base/fileio.exp: Remove nowarnings.
+
+2017-05-17  Yao Qi  <yao.qi@linaro.org>
+
+	* gdb.base/fileio.exp: Pass nowarnings to gdb_compile.
+
 2017-05-17  Simon Marchi  <simon.marchi@ericsson.com>
 
 	* gdb.base/set-inferior-tty.exp (test_set_inferior_tty): Add
@@ -30,29 +1594,40 @@
 	* gdb.python/py-record-btrace-threads.exp (check_insn_for_thread):
 	Add parens to print call for Python 3.
 
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
+2017-05-03  Keith Seitz  <keiths@redhat.com>
+
+	* gdb.cp/oranking.cc (dummy): New function to grab malloc.
+	(main): Call it.
+
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
 
 	* gdb.python/py-record-btrace.exp: Rename prev_sibling and next_sibling
 	to prev and next.
 
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
 
 	* gdb.python/py-record-btrace.exp: Remove test for
 	gdb.BtraceInstruction.error.
 
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
 
 	* gdb.python/py-record-btrace.exp: Remove Record.ptid test.
 
-2017-05-04  Tim Wiederhake  <tim.wiederhake@intel.com>
+2017-05-01  Tim Wiederhake  <tim.wiederhake@intel.com>
 
 	* gdb.python/py-record-btrace-threads.c: New file.
 	* gdb.python/py-record-btrace-threads.exp: New file.
 
-2017-05-03  Keith Seitz  <keiths@redhat.com>
+2017-04-28  Sergio Durigan Junior  <sergiodj@redhat.com>
 
-	* gdb.cp/oranking.cc (dummy): New function to grab malloc.
-	(main): Call it.
+	PR testsuite/8595
+	* gdb.base/environ.exp: Make test available in all architectures.
+	Move bits related to "info program" testing to
+	gdb.base/info-program.exp.  Rewrite tests to use the two new
+	procedures mentione below.
+	(test_set_show_env_var) New procedure.
+	(test_set_show_env_var_equal): Likewise.
+	* gdb.base/info-program.exp: New file.
 
 2017-04-27  Keith Seitz  <keiths@redhat.com>
 
@@ -66,6 +1641,13 @@
 	* gdb.cp/rvalue-ref-params.exp: Remove kfail status for
 	"print value of f1 on Child&& in f2" test.
 
+2017-04-19  Pedro Alves  <palves@redhat.com>
+
+	* gdb.threads/threadapply.exp (kill_and_remove_inferior): New
+	procedure.
+	(top level): Call it.
+	* lib/gdb.exp (gdb_define_cmd): New procedure.
+
 2017-04-12  Pedro Alves  <palves@redhat.com>
 
 	PR gdb/21323
@@ -11582,6 +13164,6 @@ For older changes see ChangeLog-1993-201
 ;; version-control: never
 ;; End:
 
-    Copyright 2014-2017 Free Software Foundation, Inc.
+    Copyright 2014-2018 Free Software Foundation, Inc.
   Copying and distribution of this file, with or without modification,
   are permitted provided the copyright notice and this notice are preserved.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/ChangeLog-1993-2013 ./gdb/testsuite/ChangeLog-1993-2013
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/ChangeLog-1993-2013	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/ChangeLog-1993-2013	2018-01-09 02:04:57.000000000 +0000
@@ -33649,6 +33649,6 @@ Sun Feb 21 10:55:55 1993  Mike Werner  (
 ;; version-control: never
 ;; End:
 
-    Copyright 1993-2017 Free Software Foundation, Inc.
+    Copyright 1993-2018 Free Software Foundation, Inc.
   Copying and distribution of this file, with or without modification,
   are permitted provided the copyright notice and this notice are preserved.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/cfdbug.exp ./gdb/testsuite/config/cfdbug.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/cfdbug.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/cfdbug.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/d10v.exp ./gdb/testsuite/config/d10v.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/d10v.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/d10v.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+#   Copyright (C) 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/default.exp ./gdb/testsuite/config/default.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/default.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/default.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/dve.exp ./gdb/testsuite/config/dve.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/dve.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/dve.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/extended-gdbserver.exp ./gdb/testsuite/config/extended-gdbserver.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/extended-gdbserver.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/extended-gdbserver.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2000-2017 Free Software Foundation, Inc.
+# Copyright 2000-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/gdbserver.exp ./gdb/testsuite/config/gdbserver.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/gdbserver.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/gdbserver.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2000-2017 Free Software Foundation, Inc.
+# Copyright 2000-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/i960.exp ./gdb/testsuite/config/i960.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/i960.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/i960.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/m32r.exp ./gdb/testsuite/config/m32r.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/m32r.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/m32r.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/mips.exp ./gdb/testsuite/config/mips.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/mips.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/mips.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+#   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/mips-idt.exp ./gdb/testsuite/config/mips-idt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/mips-idt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/mips-idt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+#   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/mn10300-eval.exp ./gdb/testsuite/config/mn10300-eval.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/mn10300-eval.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/mn10300-eval.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/monitor.exp ./gdb/testsuite/config/monitor.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/monitor.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/monitor.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Test Framework Driver for GDB driving a ROM monitor (via monitor.c).
-#   Copyright 1995-2017 Free Software Foundation, Inc.
+#   Copyright 1995-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/proelf.exp ./gdb/testsuite/config/proelf.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/proelf.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/proelf.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/rom68k.exp ./gdb/testsuite/config/rom68k.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/rom68k.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/rom68k.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/sh.exp ./gdb/testsuite/config/sh.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/sh.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/sh.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/sid.exp ./gdb/testsuite/config/sid.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/sid.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/sid.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Test Framework Driver for GDB driving an external simulator
-#   Copyright 1999-2017 Free Software Foundation, Inc.
+#   Copyright 1999-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/sim.exp ./gdb/testsuite/config/sim.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/sim.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/sim.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Test Framework Driver for GDB driving a builtin simulator
-#   Copyright 1994-2017 Free Software Foundation, Inc.
+#   Copyright 1994-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/slite.exp ./gdb/testsuite/config/slite.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/slite.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/slite.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1993-2017 Free Software Foundation, Inc.
+#   Copyright 1993-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/unix.exp ./gdb/testsuite/config/unix.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/unix.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/unix.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+#   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/vr4300.exp ./gdb/testsuite/config/vr4300.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/vr4300.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/vr4300.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/vr5000.exp ./gdb/testsuite/config/vr5000.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/config/vr5000.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/config/vr5000.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/configure.ac ./gdb/testsuite/configure.ac
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/configure.ac	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/configure.ac	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 #                                                       -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/dg-extract-results.sh ./gdb/testsuite/dg-extract-results.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/dg-extract-results.sh	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/dg-extract-results.sh	2018-01-09 02:04:57.000000000 +0000
@@ -6,7 +6,7 @@
 # The resulting file can be used with test result comparison scripts for
 # results from tests that were run in parallel.  See usage() below.
 
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 # Contributed by Janis Johnson <janis187@us.ibm.com>
 #
 # This file is part of GCC.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_tagged_param/foo.adb ./gdb/testsuite/gdb.ada/access_tagged_param/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_tagged_param/foo.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/access_tagged_param/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,20 @@
+--  Copyright 2017-2018 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 is
+begin
+   Inspect (new Top_T'(N => 2));
+end Foo;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_tagged_param/pck.adb ./gdb/testsuite/gdb.ada/access_tagged_param/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_tagged_param/pck.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/access_tagged_param/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,21 @@
+--  Copyright 2017-2018 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 Inspect (Obj: access Top_T'Class) is
+   begin
+      null;
+   end Inspect;
+end Pck;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_tagged_param/pck.ads ./gdb/testsuite/gdb.ada/access_tagged_param/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_tagged_param/pck.ads	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/access_tagged_param/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,21 @@
+--  Copyright 2017-2018 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 Pck is
+   type Top_T is tagged record
+      N : Integer := 1;
+   end record;
+   procedure Inspect (Obj: access Top_T'Class);
+end Pck;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_tagged_param.exp ./gdb/testsuite/gdb.ada/access_tagged_param.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_tagged_param.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/access_tagged_param.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,40 @@
+# Copyright 2017-2018 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 we can print values of parameters of type 'pointer
+# (access) to tagged type'.  See PR gdb/22670.
+
+load_lib "ada.exp"
+
+standard_ada_testfile foo
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+if ![runto "foo"] then {
+  perror "Couldn't run ${testfile}"
+  return
+}
+
+gdb_breakpoint "pck.inspect"
+
+# Continue until we reach the breakpoint, and verify that we can print
+# the value of all the parameters.
+
+gdb_test "continue" \
+         ".*Breakpoint $decimal, pck\\.inspect \\(obj=$hex, <objL>=2\\) at .*"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_to_packed_array/foo.adb ./gdb/testsuite/gdb.ada/access_to_packed_array/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_to_packed_array/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/access_to_packed_array/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_to_packed_array/pack.adb ./gdb/testsuite/gdb.ada/access_to_packed_array/pack.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_to_packed_array/pack.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/access_to_packed_array/pack.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_to_packed_array/pack.ads ./gdb/testsuite/gdb.ada/access_to_packed_array/pack.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_to_packed_array/pack.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/access_to_packed_array/pack.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_to_packed_array.exp ./gdb/testsuite/gdb.ada/access_to_packed_array.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/access_to_packed_array.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/access_to_packed_array.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/addr_arith/foo_na07_019.adb ./gdb/testsuite/gdb.ada/addr_arith/foo_na07_019.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/addr_arith/foo_na07_019.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/addr_arith/foo_na07_019.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/addr_arith/pck.adb ./gdb/testsuite/gdb.ada/addr_arith/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/addr_arith/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/addr_arith/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/addr_arith/pck.ads ./gdb/testsuite/gdb.ada/addr_arith/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/addr_arith/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/addr_arith/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/addr_arith.exp ./gdb/testsuite/gdb.ada/addr_arith.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/addr_arith.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/addr_arith.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/aliased_array/foo.adb ./gdb/testsuite/gdb.ada/aliased_array/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/aliased_array/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/aliased_array/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/aliased_array/pck.adb ./gdb/testsuite/gdb.ada/aliased_array/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/aliased_array/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/aliased_array/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/aliased_array/pck.ads ./gdb/testsuite/gdb.ada/aliased_array/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/aliased_array/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/aliased_array/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/aliased_array.exp ./gdb/testsuite/gdb.ada/aliased_array.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/aliased_array.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/aliased_array.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arr_arr/foo.adb ./gdb/testsuite/gdb.ada/arr_arr/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arr_arr/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arr_arr/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arr_arr/pck.adb ./gdb/testsuite/gdb.ada/arr_arr/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arr_arr/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arr_arr/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arr_arr/pck.ads ./gdb/testsuite/gdb.ada/arr_arr/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arr_arr/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arr_arr/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arr_arr.exp ./gdb/testsuite/gdb.ada/arr_arr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arr_arr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arr_arr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_bounds/bar.adb ./gdb/testsuite/gdb.ada/array_bounds/bar.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_bounds/bar.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_bounds/bar.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_bounds.exp ./gdb/testsuite/gdb.ada/array_bounds.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_bounds.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_bounds.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_char_idx/foo.adb ./gdb/testsuite/gdb.ada/array_char_idx/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_char_idx/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_char_idx/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_char_idx/pck.adb ./gdb/testsuite/gdb.ada/array_char_idx/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_char_idx/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_char_idx/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_char_idx/pck.ads ./gdb/testsuite/gdb.ada/array_char_idx/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_char_idx/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_char_idx/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_char_idx.exp ./gdb/testsuite/gdb.ada/array_char_idx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_char_idx.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_char_idx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arraydim/foo.adb ./gdb/testsuite/gdb.ada/arraydim/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arraydim/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arraydim/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arraydim/inc.c ./gdb/testsuite/gdb.ada/arraydim/inc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arraydim/inc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arraydim/inc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2013-2017 Free Software Foundation, Inc.
+/* Copyright 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arraydim/pck.adb ./gdb/testsuite/gdb.ada/arraydim/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arraydim/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arraydim/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arraydim/pck.ads ./gdb/testsuite/gdb.ada/arraydim/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arraydim/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arraydim/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arraydim.exp ./gdb/testsuite/gdb.ada/arraydim.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arraydim.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arraydim.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayidx/p.adb ./gdb/testsuite/gdb.ada/arrayidx/p.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayidx/p.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arrayidx/p.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2005-2017 Free Software Foundation, Inc.
+--  Copyright 2005-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayidx.exp ./gdb/testsuite/gdb.ada/arrayidx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayidx.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arrayidx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_of_variable_length/foo.adb ./gdb/testsuite/gdb.ada/array_of_variable_length/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_of_variable_length/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_of_variable_length/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_of_variable_length/pck.adb ./gdb/testsuite/gdb.ada/array_of_variable_length/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_of_variable_length/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_of_variable_length/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_of_variable_length/pck.ads ./gdb/testsuite/gdb.ada/array_of_variable_length/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_of_variable_length/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_of_variable_length/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_of_variable_length.exp ./gdb/testsuite/gdb.ada/array_of_variable_length.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_of_variable_length.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_of_variable_length.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayparam/foo.adb ./gdb/testsuite/gdb.ada/arrayparam/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayparam/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arrayparam/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayparam/pck.adb ./gdb/testsuite/gdb.ada/arrayparam/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayparam/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arrayparam/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayparam/pck.ads ./gdb/testsuite/gdb.ada/arrayparam/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayparam/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arrayparam/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayparam.exp ./gdb/testsuite/gdb.ada/arrayparam.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayparam.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arrayparam.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayptr/foo.adb ./gdb/testsuite/gdb.ada/arrayptr/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayptr/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arrayptr/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayptr/pck.adb ./gdb/testsuite/gdb.ada/arrayptr/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayptr/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arrayptr/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayptr/pck.ads ./gdb/testsuite/gdb.ada/arrayptr/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayptr/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arrayptr/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayptr.exp ./gdb/testsuite/gdb.ada/arrayptr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/arrayptr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/arrayptr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_ptr_renaming/foo.adb ./gdb/testsuite/gdb.ada/array_ptr_renaming/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_ptr_renaming/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_ptr_renaming/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_ptr_renaming/pack.ads ./gdb/testsuite/gdb.ada/array_ptr_renaming/pack.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_ptr_renaming/pack.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_ptr_renaming/pack.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_ptr_renaming.exp ./gdb/testsuite/gdb.ada/array_ptr_renaming.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_ptr_renaming.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_ptr_renaming.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_return/p.adb ./gdb/testsuite/gdb.ada/array_return/p.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_return/p.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_return/p.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2006-2017 Free Software Foundation, Inc.
+--  Copyright 2006-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_return/pck.adb ./gdb/testsuite/gdb.ada/array_return/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_return/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_return/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2006-2017 Free Software Foundation, Inc.
+--  Copyright 2006-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_return/pck.ads ./gdb/testsuite/gdb.ada/array_return/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_return/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_return/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2006-2017 Free Software Foundation, Inc.
+--  Copyright 2006-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_return.exp ./gdb/testsuite/gdb.ada/array_return.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_return.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_return.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_subscript_addr/p.adb ./gdb/testsuite/gdb.ada/array_subscript_addr/p.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_subscript_addr/p.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_subscript_addr/p.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_subscript_addr.exp ./gdb/testsuite/gdb.ada/array_subscript_addr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/array_subscript_addr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/array_subscript_addr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/assign_1.exp ./gdb/testsuite/gdb.ada/assign_1.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/assign_1.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/assign_1.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/assign_arr/main_p324_051.adb ./gdb/testsuite/gdb.ada/assign_arr/main_p324_051.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/assign_arr/main_p324_051.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/assign_arr/main_p324_051.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,21 @@
+--  Copyright 2016-2018 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 target_wrapper; use target_wrapper;
+
+procedure Main_P324_051 is
+begin
+   input.u2 := (0.2,0.3,0.4);  -- STOP
+end Main_P324_051;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/assign_arr/target_wrapper.ads ./gdb/testsuite/gdb.ada/assign_arr/target_wrapper.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/assign_arr/target_wrapper.ads	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/assign_arr/target_wrapper.ads	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,26 @@
+--  Copyright 2016-2018 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 target_wrapper is
+
+   type Float_Array_3 is array (1 .. 3) of Float;
+
+   type parameters is record
+      u2 : Float_Array_3;
+   end record;
+
+   input : parameters;
+
+end target_wrapper;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/assign_arr.exp ./gdb/testsuite/gdb.ada/assign_arr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/assign_arr.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/assign_arr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,30 @@
+# Copyright 2016-2018 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 main_p324_051
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "STOP" ${testdir}/main_p324_051.adb]
+runto "main_p324_051.adb:$bp_location"
+
+gdb_test "print input.u2 := (0.25,0.5,0.75)" \
+         " = \\(0\\.25, 0\\.5, 0\\.75\\)"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/atomic_enum/foo.adb ./gdb/testsuite/gdb.ada/atomic_enum/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/atomic_enum/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/atomic_enum/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/atomic_enum/pck.adb ./gdb/testsuite/gdb.ada/atomic_enum/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/atomic_enum/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/atomic_enum/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/atomic_enum/pck.ads ./gdb/testsuite/gdb.ada/atomic_enum/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/atomic_enum/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/atomic_enum/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/atomic_enum.exp ./gdb/testsuite/gdb.ada/atomic_enum.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/atomic_enum.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/atomic_enum.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/attr_ref_and_charlit/foo.adb ./gdb/testsuite/gdb.ada/attr_ref_and_charlit/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/attr_ref_and_charlit/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/attr_ref_and_charlit/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/attr_ref_and_charlit.exp ./gdb/testsuite/gdb.ada/attr_ref_and_charlit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/attr_ref_and_charlit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/attr_ref_and_charlit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bad-task-bp-keyword/foo.adb ./gdb/testsuite/gdb.ada/bad-task-bp-keyword/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bad-task-bp-keyword/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bad-task-bp-keyword/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2009-2017 Free Software Foundation, Inc.
+--  Copyright 2009-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bad-task-bp-keyword.exp ./gdb/testsuite/gdb.ada/bad-task-bp-keyword.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bad-task-bp-keyword.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bad-task-bp-keyword.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/boolean_expr.exp ./gdb/testsuite/gdb.ada/boolean_expr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/boolean_expr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/boolean_expr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_c_mixed_case/bar.c ./gdb/testsuite/gdb.ada/bp_c_mixed_case/bar.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_c_mixed_case/bar.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_c_mixed_case/bar.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,21 @@
+/* Copyright 2018 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/>.  */
+
+void
+MixedCaseFunc (void)
+{
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_c_mixed_case/foo_h731_021.adb ./gdb/testsuite/gdb.ada/bp_c_mixed_case/foo_h731_021.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_c_mixed_case/foo_h731_021.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_c_mixed_case/foo_h731_021.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,21 @@
+--  Copyright 2018 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/>.
+
+procedure Foo_H731_021 is
+   Procedure C_Func;
+   pragma Import (C, C_Func, "MixedCaseFunc");
+begin
+   C_Func;
+end Foo_H731_021;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_c_mixed_case.exp ./gdb/testsuite/gdb.ada/bp_c_mixed_case.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_c_mixed_case.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_c_mixed_case.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,52 @@
+# Copyright 2018 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_h731_021
+
+set cfile "bar"
+set csrcfile ${srcdir}/${subdir}/${testdir}/${cfile}.c
+set cobject [standard_output_file ${cfile}.o]
+
+gdb_compile "${csrcfile}" "${cobject}" object [list debug]
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug additional_flags=-largs additional_flags=${cobject} additional_flags=-margs]] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+if ![runto "foo_h731_021"] then {
+  perror "Couldn't run ${testfile}"
+  return
+}
+
+# Verify that the current language is Ada.
+gdb_test "show lang" \
+         "\"auto; currently ada\"\\."
+
+# Try inserting a breakpoint inside a C function. Because the function's
+# name has some uppercase letters, we need to use the "<...>" notation.
+# The purpose of this testcase is to verify that we can in fact do so
+# and that it inserts the breakpoint at the expected location.
+setup_kfail gdb/22670 "*-*-*"
+gdb_test "break <MixedCaseFunc>" \
+         "Breakpoint $decimal at $hex: file .*bar.c, line $decimal\\."
+
+# Resume the program's execution, verifying that it lands at the expected
+# location.
+setup_kfail gdb/22670 "*-*-*"
+gdb_test "continue" \
+         "Breakpoint $decimal, MixedCaseFunc \\(\\) at .*bar\\.c:$decimal.*"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb ./gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb ./gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads ./gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_enum_homonym.exp ./gdb/testsuite/gdb.ada/bp_enum_homonym.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_enum_homonym.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_enum_homonym.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_on_var/foo.adb ./gdb/testsuite/gdb.ada/bp_on_var/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_on_var/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_on_var/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_on_var/pck.adb ./gdb/testsuite/gdb.ada/bp_on_var/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_on_var/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_on_var/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_on_var/pck.ads ./gdb/testsuite/gdb.ada/bp_on_var/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_on_var/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_on_var/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_on_var.exp ./gdb/testsuite/gdb.ada/bp_on_var.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_on_var.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_on_var.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_range_type/foo.adb ./gdb/testsuite/gdb.ada/bp_range_type/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_range_type/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_range_type/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_range_type/pck.adb ./gdb/testsuite/gdb.ada/bp_range_type/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_range_type/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_range_type/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_range_type/pck.ads ./gdb/testsuite/gdb.ada/bp_range_type/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_range_type/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_range_type/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_range_type.exp ./gdb/testsuite/gdb.ada/bp_range_type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_range_type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_range_type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_reset/foo.adb ./gdb/testsuite/gdb.ada/bp_reset/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_reset/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_reset/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_reset/io.adb ./gdb/testsuite/gdb.ada/bp_reset/io.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_reset/io.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_reset/io.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_reset/io.ads ./gdb/testsuite/gdb.ada/bp_reset/io.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_reset/io.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_reset/io.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_reset/pck.adb ./gdb/testsuite/gdb.ada/bp_reset/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_reset/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_reset/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_reset/pck.ads ./gdb/testsuite/gdb.ada/bp_reset/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_reset/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_reset/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_reset.exp ./gdb/testsuite/gdb.ada/bp_reset.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/bp_reset.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/bp_reset.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/byte_packed_arr/array_list_g.ads ./gdb/testsuite/gdb.ada/byte_packed_arr/array_list_g.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/byte_packed_arr/array_list_g.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/byte_packed_arr/array_list_g.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/byte_packed_arr/reprod.adb ./gdb/testsuite/gdb.ada/byte_packed_arr/reprod.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/byte_packed_arr/reprod.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/byte_packed_arr/reprod.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/byte_packed_arr/reprod.ads ./gdb/testsuite/gdb.ada/byte_packed_arr/reprod.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/byte_packed_arr/reprod.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/byte_packed_arr/reprod.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/byte_packed_arr/reprod_main.adb ./gdb/testsuite/gdb.ada/byte_packed_arr/reprod_main.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/byte_packed_arr/reprod_main.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/byte_packed_arr/reprod_main.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/byte_packed_arr.exp ./gdb/testsuite/gdb.ada/byte_packed_arr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/byte_packed_arr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/byte_packed_arr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/call_pn/foo.adb ./gdb/testsuite/gdb.ada/call_pn/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/call_pn/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/call_pn/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/call_pn/pck.adb ./gdb/testsuite/gdb.ada/call_pn/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/call_pn/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/call_pn/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/call_pn/pck.ads ./gdb/testsuite/gdb.ada/call_pn/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/call_pn/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/call_pn/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/call_pn.exp ./gdb/testsuite/gdb.ada/call_pn.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/call_pn.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/call_pn.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/catch_ex/foo.adb ./gdb/testsuite/gdb.ada/catch_ex/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/catch_ex/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/catch_ex/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/catch_ex.exp ./gdb/testsuite/gdb.ada/catch_ex.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/catch_ex.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/catch_ex.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 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
@@ -62,13 +62,13 @@ gdb_test "info break" \
          "info break, catch all Ada exceptions"
 
 set catchpoint_msg \
-  "Catchpoint $any_nb, CONSTRAINT_ERROR at $any_addr in foo \\\(\\\).*at .*foo.adb:$any_nb"
+  "Catchpoint $any_nb, CONSTRAINT_ERROR (\\\(foo\\.adb:$decimal explicit raise\\\) )?at $any_addr in foo \\\(\\\).*at .*foo.adb:$any_nb"
 gdb_test "continue" \
          "Continuing\.$eol$catchpoint_msg$eol.*SPOT1" \
          "continuing to first exception"
 
 set catchpoint_msg \
-  "Catchpoint $any_nb, PROGRAM_ERROR at $any_addr in foo \\\(\\\).*at .*foo.adb:$any_nb"
+  "Catchpoint $any_nb, PROGRAM_ERROR (\\\(foo\\.adb:$decimal explicit raise\\\) )?at $any_addr in foo \\\(\\\).*at .*foo.adb:$any_nb"
 gdb_test "continue" \
          "Continuing\.$eol$catchpoint_msg$eol.*SPOT2" \
          "continuing to second exception"
@@ -116,7 +116,7 @@ gdb_test "info break" \
          "info break, second run"
 
 set catchpoint_msg \
-  "Catchpoint $any_nb, PROGRAM_ERROR at $any_addr in foo \\\(\\\).*at .*foo.adb:$any_nb"
+  "Catchpoint $any_nb, PROGRAM_ERROR (\\\(foo.adb:$decimal explicit raise\\\) )?at $any_addr in foo \\\(\\\).*at .*foo.adb:$any_nb"
 gdb_test "continue" \
          "Continuing\.$eol$catchpoint_msg$eol.*SPOT2" \
          "continuing to Program_Error exception"
@@ -157,7 +157,7 @@ gdb_test "tcatch exception" \
          "Temporary catchpoint $any_nb: all Ada exceptions"
 
 set temp_catchpoint_msg \
-  "Temporary catchpoint $any_nb, CONSTRAINT_ERROR at $any_addr in foo \\\(\\\).*at .*foo.adb:$any_nb"
+  "Temporary catchpoint $any_nb, CONSTRAINT_ERROR (\\\(.*\\\) )?at $any_addr in foo \\\(\\\).*at .*foo.adb:$any_nb"
 gdb_test "continue" \
          "Continuing\.$eol$temp_catchpoint_msg$eol.*SPOT1" \
          "continuing to temporary catchpoint"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_enum/foo.adb ./gdb/testsuite/gdb.ada/char_enum/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_enum/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/char_enum/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_enum/pck.adb ./gdb/testsuite/gdb.ada/char_enum/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_enum/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/char_enum/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_enum/pck.ads ./gdb/testsuite/gdb.ada/char_enum/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_enum/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/char_enum/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_enum.exp ./gdb/testsuite/gdb.ada/char_enum.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_enum.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/char_enum.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_param/foo.adb ./gdb/testsuite/gdb.ada/char_param/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_param/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/char_param/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_param/pck.adb ./gdb/testsuite/gdb.ada/char_param/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_param/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/char_param/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_param/pck.ads ./gdb/testsuite/gdb.ada/char_param/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_param/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/char_param/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_param.exp ./gdb/testsuite/gdb.ada/char_param.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/char_param.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/char_param.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/complete/aux_pck.adb ./gdb/testsuite/gdb.ada/complete/aux_pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/complete/aux_pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/complete/aux_pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/complete/aux_pck.ads ./gdb/testsuite/gdb.ada/complete/aux_pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/complete/aux_pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/complete/aux_pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/complete/foo.adb ./gdb/testsuite/gdb.ada/complete/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/complete/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/complete/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/complete/pck.adb ./gdb/testsuite/gdb.ada/complete/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/complete/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/complete/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/complete/pck.ads ./gdb/testsuite/gdb.ada/complete/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/complete/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/complete/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/complete.exp ./gdb/testsuite/gdb.ada/complete.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/complete.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/complete.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 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
@@ -83,6 +83,16 @@ test_gdb_no_completion "exported"
 test_gdb_complete "<Exported" \
                   "p <Exported_Capitalized>"
 
+# While at it, make sure we can print the symbol too, using the '<'
+# notation.
+gdb_test "p <Exported_Capitalized>" " = 2"
+
+# Confirm that we can't print the symbol without the '<' notation.
+gdb_test "p Exported_Capitalized" \
+    "No definition of \"exported_capitalized\" in current context."
+gdb_test "p exported_capitalized" \
+    "No definition of \"exported_capitalized\" in current context."
+
 # A global symbol, created by the binder, that starts with __gnat...
 test_gdb_complete "__gnat_ada_main_progra" \
                   "p __gnat_ada_main_program_name"
@@ -194,3 +204,24 @@ test_gdb_complete "ambiguous_f" \
                   "p ambiguous_func"
 test_gdb_complete "ambiguous_func" \
                   "p ambiguous_func"
+
+# Perform a test intented to verify the behavior where the number
+# of possible completions is very large.  The goal is not to verify
+# precisely the list returned by the complete command (this depends
+# on too many parameters -- targets, compiler version, runtime, etc).
+# However, we want to sanity-check each one of them, knowing that
+# each result should start with "break ada" and that the proposed
+# completion should look like a valid symbol name (in particular,
+# no uppercase letters...).
+
+gdb_test_no_output "set max-completions unlimited"
+
+set test "complete break ada"
+gdb_test_multiple "$test" $test {
+    -re "^$test$eol\(break ada(\[a-z0-9._\])*$eol\)+$gdb_prompt $" {
+        pass $test
+    }
+    -re "\[A-Z\].*$gdb_prompt $" {
+        kfail gdb/22670 $test
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/cond_lang/a.adb ./gdb/testsuite/gdb.ada/cond_lang/a.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/cond_lang/a.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/cond_lang/a.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/cond_lang/foo.c ./gdb/testsuite/gdb.ada/cond_lang/foo.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/cond_lang/foo.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/cond_lang/foo.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2010-2017 Free Software Foundation, Inc.
+/* Copyright 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/cond_lang/mixed.adb ./gdb/testsuite/gdb.ada/cond_lang/mixed.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/cond_lang/mixed.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/cond_lang/mixed.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/cond_lang/mixed.ads ./gdb/testsuite/gdb.ada/cond_lang/mixed.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/cond_lang/mixed.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/cond_lang/mixed.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/cond_lang/pck.adb ./gdb/testsuite/gdb.ada/cond_lang/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/cond_lang/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/cond_lang/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/cond_lang/pck.ads ./gdb/testsuite/gdb.ada/cond_lang/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/cond_lang/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/cond_lang/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/cond_lang.exp ./gdb/testsuite/gdb.ada/cond_lang.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/cond_lang.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/cond_lang.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/disc_arr_bound/foo_n612_026.adb ./gdb/testsuite/gdb.ada/disc_arr_bound/foo_n612_026.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/disc_arr_bound/foo_n612_026.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/disc_arr_bound/foo_n612_026.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/disc_arr_bound/pck.adb ./gdb/testsuite/gdb.ada/disc_arr_bound/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/disc_arr_bound/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/disc_arr_bound/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/disc_arr_bound/pck.ads ./gdb/testsuite/gdb.ada/disc_arr_bound/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/disc_arr_bound/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/disc_arr_bound/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/disc_arr_bound.exp ./gdb/testsuite/gdb.ada/disc_arr_bound.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/disc_arr_bound.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/disc_arr_bound.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dot_all/foo.adb ./gdb/testsuite/gdb.ada/dot_all/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dot_all/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/dot_all/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dot_all/pck.adb ./gdb/testsuite/gdb.ada/dot_all/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dot_all/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/dot_all/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dot_all/pck.ads ./gdb/testsuite/gdb.ada/dot_all/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dot_all/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/dot_all/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dot_all.exp ./gdb/testsuite/gdb.ada/dot_all.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dot_all.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/dot_all.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_arrayidx/foo.adb ./gdb/testsuite/gdb.ada/dyn_arrayidx/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_arrayidx/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/dyn_arrayidx/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_arrayidx.exp ./gdb/testsuite/gdb.ada/dyn_arrayidx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_arrayidx.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/dyn_arrayidx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_loc/pack.adb ./gdb/testsuite/gdb.ada/dyn_loc/pack.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_loc/pack.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/dyn_loc/pack.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_loc/pack.ads ./gdb/testsuite/gdb.ada/dyn_loc/pack.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_loc/pack.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/dyn_loc/pack.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_loc/p.adb ./gdb/testsuite/gdb.ada/dyn_loc/p.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_loc/p.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/dyn_loc/p.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_loc.exp ./gdb/testsuite/gdb.ada/dyn_loc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_loc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/dyn_loc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_stride/foo.adb ./gdb/testsuite/gdb.ada/dyn_stride/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_stride/foo.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/dyn_stride/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,42 @@
+--  Copyright 2015-2018 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/>.
+
+procedure Foo is
+
+   procedure Nested (L, U : Integer) is
+      subtype Small_Type is Integer range L .. U;
+      type Record_Type (I : Small_Type := L) is record
+         S : String (1 .. I);
+      end record;
+      type Array_Type is array (Integer range <>) of Record_Type;
+
+      A1 : Array_Type :=
+        (1 => (I => 0, S => <>),
+         2 => (I => 1, S => "A"),
+         3 => (I => 2, S => "AB"));
+
+      procedure Discard (R : Record_Type) is
+      begin
+         null;
+      end Discard;
+
+   begin
+      Discard (A1 (1));  -- STOP
+   end;
+
+begin
+   Nested (0, 10);
+   Nested (-10, 10);
+end Foo;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_stride.exp ./gdb/testsuite/gdb.ada/dyn_stride.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/dyn_stride.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/dyn_stride.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,41 @@
+# Copyright 2015-2018 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
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "STOP" ${testdir}/foo.adb]
+if ![runto "foo.adb:$bp_location" ] then {
+  return -1
+}
+
+gdb_test "print A1(1)" \
+         "\\(i => 0, s => \"\"\\)"
+
+gdb_test "print A1(2)" \
+         "\\(i => 1, s => \"A\"\\)"
+
+gdb_test "print A1(3)" \
+         "\\(i => 2, s => \"AB\"\\)"
+
+gdb_test "print A1(1..3)" \
+         "\\(\\(i => 0, s => \"\"\\), \\(i => 1, s => \"A\"\\), \\(i => 2, s => \"AB\"\\)\\)"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/enum_idx_packed/foo.adb ./gdb/testsuite/gdb.ada/enum_idx_packed/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/enum_idx_packed/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/enum_idx_packed/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/enum_idx_packed/pck.adb ./gdb/testsuite/gdb.ada/enum_idx_packed/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/enum_idx_packed/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/enum_idx_packed/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/enum_idx_packed/pck.ads ./gdb/testsuite/gdb.ada/enum_idx_packed/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/enum_idx_packed/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/enum_idx_packed/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/enum_idx_packed.exp ./gdb/testsuite/gdb.ada/enum_idx_packed.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/enum_idx_packed.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/enum_idx_packed.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/excep_handle/foo.adb ./gdb/testsuite/gdb.ada/excep_handle/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/excep_handle/foo.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/excep_handle/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,103 @@
+--  Copyright 2018 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 is
+begin
+
+   -- Part 1 of the testcase
+
+   begin
+      raise Constraint_Error;
+   exception
+      when Constraint_Error =>
+         null;
+   end;
+
+   begin
+      null;
+   exception
+      when others =>
+         null;
+   end;
+
+   begin
+      raise Storage_Error;
+   exception
+      when Storage_Error =>
+         null;
+   end;
+
+   -- Part 2 of the testcase
+
+   begin
+      raise ABORT_SIGNAL;
+   exception
+      when others =>
+         null;
+   end;
+
+   begin
+      raise Program_Error;
+   exception
+      when Program_Error =>
+         null;
+   end;
+
+   begin
+      raise Storage_Error;
+   exception
+      when Storage_Error =>
+         null;
+   end;
+
+  -- Part 3 of the testcase
+
+   begin
+      Global_Var := Global_Var + 1;
+      raise ABORT_SIGNAL;
+   exception
+      when others =>
+         null;
+   end;
+
+   begin
+      Global_Var := Global_Var + 1;
+      raise Constraint_Error;
+   exception
+      when Constraint_Error =>
+         null;
+   end;
+
+   -- Part 4 of the testcase
+
+   begin
+      Global_Var := Global_Var + 1;
+      raise Program_Error;
+   exception
+      when others =>
+         null;
+   end;
+
+   begin
+      Global_Var := Global_Var + 1;
+      raise Program_Error;
+   exception
+      when Program_Error =>
+         null;
+   end;
+
+end Foo;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/excep_handle/pck.ads ./gdb/testsuite/gdb.ada/excep_handle/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/excep_handle/pck.ads	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/excep_handle/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,19 @@
+--  Copyright 2018 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 Pck is
+   Global_Var : Integer := 0;
+   ABORT_SIGNAL : exception;
+end Pck;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/excep_handle.exp ./gdb/testsuite/gdb.ada/excep_handle.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/excep_handle.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/excep_handle.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,171 @@
+# Copyright 2018 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
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug additional_flags=-gnata ]] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+# Some global variables used to simplify the maintenance of some of
+# the regular expressions below.
+set eol "\[\r\n\]+"
+set sp "\[ \t\]*"
+
+set when "when"
+set catchpoint_constraint_error_msg \
+  "Catchpoint $decimal, exception at $hex in foo \\\(\\\).*at .*foo.adb:$decimal$eol$decimal$sp$when Constraint_Error =>"
+
+set catchpoint_program_error_msg \
+  "Catchpoint $decimal, exception at $hex in foo \\\(\\\).*at .*foo.adb:$decimal$eol$decimal$sp$when Program_Error =>"
+
+set catchpoint_storage_error_msg \
+  "Catchpoint $decimal, exception at $hex in foo \\\(\\\).*at .*foo.adb:$decimal$eol$decimal$sp$when Storage_Error =>"
+
+############################################
+# Check that runtime supports catchpoint.  #
+############################################
+
+if ![runto_main] then {
+   fail "Cannot run to main, testcase aborted"
+   return 0
+}
+
+set msg "insert catchpoint on all Ada exceptions handlers"
+gdb_test_multiple "catch handlers" $msg {
+    -re "Catchpoint $decimal: all Ada exceptions handlers$eol$gdb_prompt $" {
+	pass $msg
+    }
+    -re "Your Ada runtime appears to be missing some debugging information.*$eol$gdb_prompt $" {
+	# If the runtime was not built with enough debug information,
+	# or if it was stripped, we can not test exception handlers
+	# catchpoints.
+	unsupported $msg
+	return -1
+    }
+}
+
+############################################
+# 1. Try catching all exceptions handlers. #
+############################################
+
+# Continue.  The program should stop at first exception handling.
+
+gdb_test "continue" \
+         "Continuing\.$eol$catchpoint_constraint_error_msg$eol.*" \
+         "continuing to first Constraint_Error exception handlers"
+
+# Resume the program's exception.
+#
+# The program will first go through a block of code which has an
+# exception handler, but since no exception is raised, we should
+# not stop there.  Instead, we expect to stop in the handler of
+# the next exception being raised.
+
+gdb_test "continue" \
+         "Continuing\.$eol$catchpoint_storage_error_msg$eol.*" \
+         "continuing and stopping in Storage_Error exception handlers"
+
+gdb_test_no_output "delete 2" \
+                   "delete catchpoint on all Ada exceptions handlers"
+
+##################################################
+# 2. Try catching some named exception handlers. #
+##################################################
+
+# Insert a catchpoint on Program_Error Ada exception handlers.
+
+gdb_test "catch handlers Program_Error" \
+         "Catchpoint $decimal: `Program_Error' Ada exception handlers" \
+         "insert catchpoint on Program_Error Ada exception handlers"
+
+# Continue, we should not stop at ABORT_SIGNAL but at Program_Error one.
+
+gdb_test "continue" \
+         "Continuing\.$eol$catchpoint_program_error_msg$eol.*" \
+         "continuing without stopping to Program_Error exception handlers"
+
+gdb_test_no_output \
+    "delete 3" \
+    "delete catchpoint on all Program_Error Ada exception handlers"
+
+# Insert a catchpoint on Storage_Error Ada exception handlers.
+
+gdb_test "catch handlers Storage_Error" \
+         "Catchpoint $decimal: `Storage_Error' Ada exception handlers" \
+         "insert catchpoint on Storage_Error Ada exception handlers"
+
+# Continue, we should stop at Storage_Error handlers.
+
+gdb_test "continue" \
+         "Continuing\.$eol$catchpoint_storage_error_msg$eol.*" \
+         "continuing without stopping to Storage_Error exception handlers"
+
+gdb_test_no_output \
+    "delete 4" \
+    "delete catchpoint on all Storage_Error Ada exception handlers"
+
+########################################################################
+# 3. Try catching with condition and without named exception handlers. #
+########################################################################
+
+# Insert a catchpoint on all Ada exceptions handlers with condition.
+
+gdb_test "catch handlers if Global_Var = 2" \
+         "Catchpoint $decimal: all Ada exceptions handlers" \
+         "insert catchpoint on all Ada exception handlers with condition"
+
+# Check that condition is stored and properly displayed.
+
+gdb_test "info breakpoint" "stop only if Global_Var = 2" \
+         "Check catch handlers with condition"
+
+# Continue, we should not stop at ABORT_SIGNAL but at Program_Error one.
+
+gdb_test "continue" \
+         "Continuing\.$eol$catchpoint_constraint_error_msg$eol.*" \
+         "continuing to second Constraint_Error exception handlers"
+
+gdb_test_no_output \
+    "delete 5" \
+    "delete catchpoint on all all Ada exceptions handlers with condition"
+
+################################################################
+# 4. Try catching with condition and named exception handlers. #
+################################################################
+
+# Insert a catchpoint on Program_Error Ada exception handlers with
+# condition.
+
+gdb_test "catch handlers Program_Error if Global_Var = 4" \
+    "Catchpoint $decimal: `Program_Error' Ada exception handlers" \
+    "insert catchpoint on Program_Error Ada exception handlers with condition"
+
+# Continue, we should not stop at first Program_Error handlers but at
+# the second one.
+
+gdb_test "continue" \
+         "Continuing\.$eol$catchpoint_program_error_msg$eol.*" \
+         "continuing to Program_Error exception handlers"
+
+# Continue, the program should exit properly.
+
+gdb_test "continue" \
+         "Continuing\..*$inferior_exited_re.*" \
+         "continuing to program completion"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/exec_changed/first.adb ./gdb/testsuite/gdb.ada/exec_changed/first.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/exec_changed/first.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/exec_changed/first.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2005-2017 Free Software Foundation, Inc.
+--  Copyright 2005-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/exec_changed/second.adb ./gdb/testsuite/gdb.ada/exec_changed/second.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/exec_changed/second.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/exec_changed/second.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2005-2017 Free Software Foundation, Inc.
+--  Copyright 2005-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/exec_changed.exp ./gdb/testsuite/gdb.ada/exec_changed.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/exec_changed.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/exec_changed.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/expr_delims/foo.adb ./gdb/testsuite/gdb.ada/expr_delims/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/expr_delims/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/expr_delims/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/expr_delims/pck.adb ./gdb/testsuite/gdb.ada/expr_delims/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/expr_delims/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/expr_delims/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/expr_delims/pck.ads ./gdb/testsuite/gdb.ada/expr_delims/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/expr_delims/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/expr_delims/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/expr_delims.exp ./gdb/testsuite/gdb.ada/expr_delims.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/expr_delims.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/expr_delims.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/exprs/p.adb ./gdb/testsuite/gdb.ada/exprs/p.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/exprs/p.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/exprs/p.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/exprs.exp ./gdb/testsuite/gdb.ada/exprs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/exprs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/exprs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fin_fun_out/bar.adb ./gdb/testsuite/gdb.ada/fin_fun_out/bar.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fin_fun_out/bar.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fin_fun_out/bar.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fin_fun_out/bar.ads ./gdb/testsuite/gdb.ada/fin_fun_out/bar.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fin_fun_out/bar.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fin_fun_out/bar.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fin_fun_out/foo_o525_013.adb ./gdb/testsuite/gdb.ada/fin_fun_out/foo_o525_013.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fin_fun_out/foo_o525_013.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fin_fun_out/foo_o525_013.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fin_fun_out.exp ./gdb/testsuite/gdb.ada/fin_fun_out.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fin_fun_out.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fin_fun_out.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fixed_cmp/fixed.adb ./gdb/testsuite/gdb.ada/fixed_cmp/fixed.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fixed_cmp/fixed.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fixed_cmp/fixed.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fixed_cmp/pck.adb ./gdb/testsuite/gdb.ada/fixed_cmp/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fixed_cmp/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fixed_cmp/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fixed_cmp/pck.ads ./gdb/testsuite/gdb.ada/fixed_cmp/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fixed_cmp/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fixed_cmp/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fixed_cmp.exp ./gdb/testsuite/gdb.ada/fixed_cmp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fixed_cmp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fixed_cmp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb ./gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2004-2017 Free Software Foundation, Inc.
+--  Copyright 2004-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fixed_points.exp ./gdb/testsuite/gdb.ada/fixed_points.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fixed_points.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fixed_points.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/float_param/foo.adb ./gdb/testsuite/gdb.ada/float_param/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/float_param/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/float_param/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/float_param/pck.adb ./gdb/testsuite/gdb.ada/float_param/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/float_param/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/float_param/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/float_param/pck.ads ./gdb/testsuite/gdb.ada/float_param/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/float_param/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/float_param/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/float_param.exp ./gdb/testsuite/gdb.ada/float_param.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/float_param.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/float_param.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/formatted_ref/defs.adb ./gdb/testsuite/gdb.ada/formatted_ref/defs.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/formatted_ref/defs.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/formatted_ref/defs.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/formatted_ref/defs.ads ./gdb/testsuite/gdb.ada/formatted_ref/defs.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/formatted_ref/defs.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/formatted_ref/defs.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/formatted_ref/formatted_ref.adb ./gdb/testsuite/gdb.ada/formatted_ref/formatted_ref.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/formatted_ref/formatted_ref.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/formatted_ref/formatted_ref.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/formatted_ref.exp ./gdb/testsuite/gdb.ada/formatted_ref.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/formatted_ref.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/formatted_ref.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/frame_args/foo.adb ./gdb/testsuite/gdb.ada/frame_args/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/frame_args/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/frame_args/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/frame_args/pck.adb ./gdb/testsuite/gdb.ada/frame_args/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/frame_args/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/frame_args/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/frame_args/pck.ads ./gdb/testsuite/gdb.ada/frame_args/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/frame_args/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/frame_args/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/frame_args.exp ./gdb/testsuite/gdb.ada/frame_args.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/frame_args.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/frame_args.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fullname_bp/dn.adb ./gdb/testsuite/gdb.ada/fullname_bp/dn.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fullname_bp/dn.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fullname_bp/dn.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fullname_bp/dn.ads ./gdb/testsuite/gdb.ada/fullname_bp/dn.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fullname_bp/dn.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fullname_bp/dn.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fullname_bp/foo.adb ./gdb/testsuite/gdb.ada/fullname_bp/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fullname_bp/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fullname_bp/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fullname_bp/pck.adb ./gdb/testsuite/gdb.ada/fullname_bp/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fullname_bp/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fullname_bp/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fullname_bp/pck.ads ./gdb/testsuite/gdb.ada/fullname_bp/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fullname_bp/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fullname_bp/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fullname_bp.exp ./gdb/testsuite/gdb.ada/fullname_bp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fullname_bp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fullname_bp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_addr/foo.adb ./gdb/testsuite/gdb.ada/fun_addr/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_addr/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fun_addr/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_addr.exp ./gdb/testsuite/gdb.ada/fun_addr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_addr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fun_addr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_char/foo.adb ./gdb/testsuite/gdb.ada/funcall_char/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_char/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/funcall_char/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_char.exp ./gdb/testsuite/gdb.ada/funcall_char.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_char.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/funcall_char.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_param/foo.adb ./gdb/testsuite/gdb.ada/funcall_param/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_param/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/funcall_param/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_param/pck.adb ./gdb/testsuite/gdb.ada/funcall_param/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_param/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/funcall_param/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_param/pck.ads ./gdb/testsuite/gdb.ada/funcall_param/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_param/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/funcall_param/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_param.exp ./gdb/testsuite/gdb.ada/funcall_param.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_param.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/funcall_param.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_ptr/foo.adb ./gdb/testsuite/gdb.ada/funcall_ptr/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_ptr/foo.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/funcall_ptr/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,21 @@
+--  Copyright 2017-2018 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 is
+begin
+   P (null); -- BREAK
+end Foo;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_ptr/pck.adb ./gdb/testsuite/gdb.ada/funcall_ptr/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_ptr/pck.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/funcall_ptr/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,23 @@
+--  Copyright 2017-2018 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 P (A : Integer_Access) is
+   begin
+      GA := A;
+   end P;
+
+end Pck;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_ptr/pck.ads ./gdb/testsuite/gdb.ada/funcall_ptr/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_ptr/pck.ads	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/funcall_ptr/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,24 @@
+--  Copyright 2017-2018 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 Pck is
+
+   type Integer_Access is access all Integer;
+
+   procedure P (A : Integer_Access);
+
+   GA : Integer_Access;
+
+end Pck;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_ptr.exp ./gdb/testsuite/gdb.ada/funcall_ptr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_ptr.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/funcall_ptr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,40 @@
+# Copyright 2017-2018 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
+
+if {[gdb_compile_ada "$srcfile" "$binfile" executable [list debug]] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "BREAK" ${testdir}/foo.adb]
+runto "foo.adb:$bp_location"
+
+gdb_test "print pck.ga" " = \\(access integer\\) 0x0" \
+         "Check that initial value of GA is null"
+
+gdb_test_no_output "call pck.p(0x1234)"
+
+# Check that argument 'A' was passed correctly in the call to Pck.P
+# above. We check that, by printing GA global variable.
+# The GA global variable is set with the value of parameter 'A' inside p
+# procedure hence should be 0x1234 after the call above.
+
+gdb_test "print pck.ga" " = \\(access integer\\) 0x1234" \
+         "Check that value of GA is 0x1234"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_ref/foo.adb ./gdb/testsuite/gdb.ada/funcall_ref/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_ref/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/funcall_ref/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_ref.exp ./gdb/testsuite/gdb.ada/funcall_ref.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/funcall_ref.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/funcall_ref.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_in_declare/foo.adb ./gdb/testsuite/gdb.ada/fun_in_declare/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_in_declare/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fun_in_declare/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_in_declare/pck.adb ./gdb/testsuite/gdb.ada/fun_in_declare/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_in_declare/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fun_in_declare/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_in_declare/pck.ads ./gdb/testsuite/gdb.ada/fun_in_declare/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_in_declare/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fun_in_declare/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_in_declare.exp ./gdb/testsuite/gdb.ada/fun_in_declare.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_in_declare.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fun_in_declare.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_overload_menu/foo.adb ./gdb/testsuite/gdb.ada/fun_overload_menu/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_overload_menu/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fun_overload_menu/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_overload_menu.exp ./gdb/testsuite/gdb.ada/fun_overload_menu.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_overload_menu.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fun_overload_menu.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_renaming/fun_renaming.adb ./gdb/testsuite/gdb.ada/fun_renaming/fun_renaming.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_renaming/fun_renaming.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fun_renaming/fun_renaming.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_renaming/pack.adb ./gdb/testsuite/gdb.ada/fun_renaming/pack.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_renaming/pack.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fun_renaming/pack.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_renaming/pack.ads ./gdb/testsuite/gdb.ada/fun_renaming/pack.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_renaming/pack.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fun_renaming/pack.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_renaming.exp ./gdb/testsuite/gdb.ada/fun_renaming.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/fun_renaming.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/fun_renaming.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/homonym/homonym.adb ./gdb/testsuite/gdb.ada/homonym/homonym.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/homonym/homonym.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/homonym/homonym.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/homonym/homonym.ads ./gdb/testsuite/gdb.ada/homonym/homonym.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/homonym/homonym.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/homonym/homonym.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/homonym/homonym_main.adb ./gdb/testsuite/gdb.ada/homonym/homonym_main.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/homonym/homonym_main.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/homonym/homonym_main.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/homonym/pck.adb ./gdb/testsuite/gdb.ada/homonym/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/homonym/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/homonym/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/homonym/pck.ads ./gdb/testsuite/gdb.ada/homonym/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/homonym/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/homonym/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/homonym.exp ./gdb/testsuite/gdb.ada/homonym.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/homonym.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/homonym.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb ./gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,21 @@
+--  Copyright 2018 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 is
+begin
+   Do_Nothing (My_Table'Address); --  START
+end Foo;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb ./gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,24 @@
+--  Copyright 2018 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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads ./gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,35 @@
+--  Copyright 2018 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 Float_Array is array (Integer range <>) of Integer;
+   type Float_Ptr   is access Float_Array;
+
+   type Table_Type is (One, Two, Three, Four, Five);
+   type New_Table_Array is array (Table_Type) of Float_Ptr;
+
+   My_Table : New_Table_Array := (others => new Float_Array'((4 => 16#DE#,
+                                                              5 => 16#AD#)));
+
+   My_F : Float_Ptr := new Float_Array'(4 => 16#BE#,
+                                        5 => 16#EF#);
+
+   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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_addr_mixed_case.exp ./gdb/testsuite/gdb.ada/info_addr_mixed_case.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_addr_mixed_case.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/info_addr_mixed_case.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,41 @@
+# Copyright 2018 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
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "START" ${testdir}/foo.adb]
+if ![runto "foo.adb:$bp_location" ] then {
+  perror "Couldn't run ${testfile}"
+  return
+}
+
+# The following test exercises the situation when uppercase letters
+# are used in the name of the symbol passed to the "info address"
+# command.  This should not make a difference, as the language is Ada,
+# and Ada is case-insensitive.  Also, exercise both fully-qualified
+# name matching and wild matching.
+
+foreach sym {"my_table" "My_Table" "pck.my_table" "Pck.My_Table"} {
+    gdb_test "info address $sym" \
+	"Symbol \"pck\\.my_table\" is static storage at address $hex\\."
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_exc/const.ads ./gdb/testsuite/gdb.ada/info_exc/const.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_exc/const.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/info_exc/const.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_exc/foo.adb ./gdb/testsuite/gdb.ada/info_exc/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_exc/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/info_exc/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_exc.exp ./gdb/testsuite/gdb.ada/info_exc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_exc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/info_exc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_locals_renaming/foo.adb ./gdb/testsuite/gdb.ada/info_locals_renaming/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_locals_renaming/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/info_locals_renaming/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_locals_renaming/pck.adb ./gdb/testsuite/gdb.ada/info_locals_renaming/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_locals_renaming/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/info_locals_renaming/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_locals_renaming/pck.ads ./gdb/testsuite/gdb.ada/info_locals_renaming/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_locals_renaming/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/info_locals_renaming/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_locals_renaming.exp ./gdb/testsuite/gdb.ada/info_locals_renaming.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_locals_renaming.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/info_locals_renaming.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_types.c ./gdb/testsuite/gdb.ada/info_types.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_types.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/info_types.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_types.exp ./gdb/testsuite/gdb.ada/info_types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/info_types.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/info_types.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/int_deref/foo.adb ./gdb/testsuite/gdb.ada/int_deref/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/int_deref/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/int_deref/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/int_deref/pck.ads ./gdb/testsuite/gdb.ada/int_deref/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/int_deref/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/int_deref/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/int_deref.exp ./gdb/testsuite/gdb.ada/int_deref.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/int_deref.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/int_deref.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/interface/foo.adb ./gdb/testsuite/gdb.ada/interface/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/interface/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/interface/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/interface/types.adb ./gdb/testsuite/gdb.ada/interface/types.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/interface/types.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/interface/types.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/interface/types.ads ./gdb/testsuite/gdb.ada/interface/types.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/interface/types.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/interface/types.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/interface.exp ./gdb/testsuite/gdb.ada/interface.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/interface.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/interface.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/iwide/classes.adb ./gdb/testsuite/gdb.ada/iwide/classes.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/iwide/classes.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/iwide/classes.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/iwide/classes.ads ./gdb/testsuite/gdb.ada/iwide/classes.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/iwide/classes.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/iwide/classes.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/iwide/p.adb ./gdb/testsuite/gdb.ada/iwide/p.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/iwide/p.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/iwide/p.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/iwide.exp ./gdb/testsuite/gdb.ada/iwide.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/iwide.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/iwide.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/lang_switch/foo.c ./gdb/testsuite/gdb.ada/lang_switch/foo.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/lang_switch/foo.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/lang_switch/foo.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2008-2017 Free Software Foundation, Inc.
+/* Copyright 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/lang_switch/lang_switch.adb ./gdb/testsuite/gdb.ada/lang_switch/lang_switch.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/lang_switch/lang_switch.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/lang_switch/lang_switch.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/lang_switch.exp ./gdb/testsuite/gdb.ada/lang_switch.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/lang_switch.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/lang_switch.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/maint_with_ada/pack.adb ./gdb/testsuite/gdb.ada/maint_with_ada/pack.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/maint_with_ada/pack.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/maint_with_ada/pack.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,25 @@
+--  Copyright 2015-2017 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 Pack is
+
+   function Identity (I : Integer) return Integer is
+   begin
+      return I;
+   end Identity;
+
+   procedure Do_Nothing (A : Array_Type) is null;
+
+end Pack;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/maint_with_ada/pack.ads ./gdb/testsuite/gdb.ada/maint_with_ada/pack.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/maint_with_ada/pack.ads	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/maint_with_ada/pack.ads	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,29 @@
+--  Copyright 2015-2017 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 Pack is
+   type Rec_Type is record
+      I : Integer;
+      B : Boolean;
+   end record;
+
+   type Vec_Type is array (1 .. 4) of Rec_Type;
+
+   type Array_Type is array (Positive range <>) of Vec_Type;
+
+   procedure Do_Nothing (A : Array_Type);
+   function Identity (I : Integer) return Integer;
+
+end Pack;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/maint_with_ada/var_arr_typedef.adb ./gdb/testsuite/gdb.ada/maint_with_ada/var_arr_typedef.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/maint_with_ada/var_arr_typedef.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/maint_with_ada/var_arr_typedef.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,28 @@
+--  Copyright 2015-2017 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 Pack; use Pack;
+
+procedure Var_Arr_Typedef is
+   RA : constant Rec_Type := (3, False);
+   RB : constant Rec_Type := (2, True);
+
+   VA : constant Vec_Type := (RA, RA, RB, RB);
+   VB : constant Vec_Type := (RB, RB, RA, RA);
+
+   A : constant Array_Type (1 .. Identity (4)) := (VA, VA, VB, VB);
+begin
+   Do_Nothing (A); --  BREAK
+end Var_Arr_Typedef;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/maint_with_ada.exp ./gdb/testsuite/gdb.ada/maint_with_ada.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/maint_with_ada.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/maint_with_ada.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,38 @@
+# Copyright 2015-2017 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 var_arr_typedef
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+# Insert a breakpoint in each compilation unit, to force their psymtab's
+# expansion to a full symtab.  This will allow the check-psymtabs command
+# to perform a more extensive check regarding those units which are in
+# Ada.
+
+gdb_breakpoint "adainit"
+gdb_breakpoint "Var_Arr_Typedef"
+gdb_breakpoint "Do_Nothing"
+
+setup_kfail gdb/22670 "*-*-*"
+gdb_test_no_output "maintenance check-psymtabs"
+
+gdb_test_no_output "maintenance check-symtabs"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_catch_ex/foo.adb ./gdb/testsuite/gdb.ada/mi_catch_ex/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_catch_ex/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_catch_ex/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_catch_ex.exp ./gdb/testsuite/gdb.ada/mi_catch_ex.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_catch_ex.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_catch_ex.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
@@ -80,14 +80,14 @@ mi_gdb_test "-catch-exception" \
 
 # Continue to caught exception.
 
-proc continue_to_exception { exception_name test } {
+proc continue_to_exception { exception_name exception_message test } {
     global hex any_nb
 
     mi_send_resuming_command "exec-continue" "$test"
 
     # Match console stream output.
     gdb_expect {
-	-re " $exception_name at $hex in foo " {
+	-re " $exception_name\( \\($exception_message\\)\)? at $hex in foo " {
 	}
 	timeout {
 	    fail "$test (timeout)"
@@ -97,18 +97,18 @@ proc continue_to_exception { exception_n
 
     # Now MI stream output.
     mi_expect_stop \
-	"breakpoint-hit\",disp=\"keep\",bkptno=\"$any_nb\",exception-name=\"$exception_name" \
+	"breakpoint-hit\",disp=\"keep\",bkptno=\"$any_nb\",exception-name=\"$exception_name\(\",exception-message=\"$exception_message\)?" \
 	"foo" "" ".*" ".*" \
 	".*" \
 	$test
 }
 
 continue_to_exception \
-    "CONSTRAINT_ERROR" \
+    "CONSTRAINT_ERROR" "foo\\.adb:$decimal explicit raise" \
     "continue until CE caught by all-exceptions catchpoint"
 
 continue_to_exception \
-    "PROGRAM_ERROR" \
+    "PROGRAM_ERROR" "foo\\.adb:$decimal explicit raise" \
     "continue until PE caught by all-exceptions catchpoint"
 
 ################################################
@@ -143,7 +143,7 @@ mi_gdb_test "-catch-exception -u" \
             "catch unhandled exceptions"
 
 mi_execute_to "exec-continue" \
-              "breakpoint-hit\",disp=\"keep\",bkptno=\"$any_nb\",exception-name=\"PROGRAM_ERROR" \
+              "breakpoint-hit\",disp=\"keep\",bkptno=\"$any_nb\",exception-name=\"PROGRAM_ERROR(\",exception-message=\"foo\\.adb:$decimal explicit raise)?" \
               "foo" "" ".*" ".*" \
               ".*" \
               "continue to exception catchpoint hit"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_dyn_arr/foo.adb ./gdb/testsuite/gdb.ada/mi_dyn_arr/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_dyn_arr/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_dyn_arr/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_dyn_arr/pck.adb ./gdb/testsuite/gdb.ada/mi_dyn_arr/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_dyn_arr/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_dyn_arr/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_dyn_arr/pck.ads ./gdb/testsuite/gdb.ada/mi_dyn_arr/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_dyn_arr/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_dyn_arr/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_dyn_arr.exp ./gdb/testsuite/gdb.ada/mi_dyn_arr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_dyn_arr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_dyn_arr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_exc_info/const.ads ./gdb/testsuite/gdb.ada/mi_exc_info/const.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_exc_info/const.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_exc_info/const.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_exc_info/foo.adb ./gdb/testsuite/gdb.ada/mi_exc_info/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_exc_info/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_exc_info/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_exc_info.exp ./gdb/testsuite/gdb.ada/mi_exc_info.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_exc_info.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_exc_info.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_ex_cond/foo.adb ./gdb/testsuite/gdb.ada/mi_ex_cond/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_ex_cond/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_ex_cond/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_ex_cond/pck.ads ./gdb/testsuite/gdb.ada/mi_ex_cond/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_ex_cond/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_ex_cond/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_ex_cond.exp ./gdb/testsuite/gdb.ada/mi_ex_cond.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_ex_cond.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_ex_cond.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 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
@@ -81,7 +81,7 @@ mi_gdb_test "-catch-exception -c \"i = 2
 mi_run_cmd
 
 mi_expect_stop \
-    "breakpoint-hit\",disp=\"keep\",bkptno=\"$any_nb\",exception-name=\"CONSTRAINT_ERROR" \
+    "breakpoint-hit\",disp=\"keep\",bkptno=\"$any_nb\",exception-name=\"CONSTRAINT_ERROR(\",exception-message=\"foo\\.adb:$decimal explicit raise)?" \
     "foo" "" ".*" ".*" \
     ".*" \
     "run to exception catchpoint hit"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_interface/foo.adb ./gdb/testsuite/gdb.ada/mi_interface/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_interface/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_interface/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_interface/pck.adb ./gdb/testsuite/gdb.ada/mi_interface/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_interface/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_interface/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_interface/pck.ads ./gdb/testsuite/gdb.ada/mi_interface/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_interface/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_interface/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_interface.exp ./gdb/testsuite/gdb.ada/mi_interface.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_interface.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_interface.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 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
@@ -44,9 +44,9 @@ mi_continue_to_line \
     "stop at start of main Ada procedure"
 
 mi_gdb_test "-var-create ggg1 * ggg1" \
-    "\\^done,name=\"ggg1\",numchild=\"1\",value=\"{...}\",type=\"<ref> pck.gadatatype\",has_more=\"0\"" \
+    "\\^done,name=\"ggg1\",numchild=\"1\",value=\"{...}\",type=\"<ref> pck.gadatatype\",thread-id=\"$decimal\",has_more=\"0\"" \
     "create ggg1 varobj"
 
 mi_gdb_test "-var-list-children 1 ggg1" \
-    "\\^done,numchild=\"1\",children=\\\[child={name=\"ggg1.i\",exp=\"i\",numchild=\"0\",value=\"42\",type=\"integer\"}\\\],has_more=\"0\"" \
+    "\\^done,numchild=\"1\",children=\\\[child={name=\"ggg1.i\",exp=\"i\",numchild=\"0\",value=\"42\",type=\"integer\",thread-id=\"$decimal\"}\\\],has_more=\"0\"" \
     "list ggg1's children"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/minsyms/foo_qb07_057.adb ./gdb/testsuite/gdb.ada/minsyms/foo_qb07_057.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/minsyms/foo_qb07_057.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/minsyms/foo_qb07_057.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,20 @@
+--  Copyright 2017-2018 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_QB07_057 is
+begin
+   Increment (Some_Minimal_Symbol);
+end Foo_QB07_057;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/minsyms/pck.adb ./gdb/testsuite/gdb.ada/minsyms/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/minsyms/pck.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/minsyms/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,21 @@
+--  Copyright 2017-2018 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 Increment (I: in out Integer) is
+   begin
+      I := I + 1;
+   end Increment;
+end Pck;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/minsyms/pck.ads ./gdb/testsuite/gdb.ada/minsyms/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/minsyms/pck.ads	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/minsyms/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,21 @@
+--  Copyright 2017-2018 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 Pck is
+   Some_Minimal_Symbol : Integer := 1234;
+   pragma Export (C, Some_Minimal_Symbol, "some_minsym");
+
+   procedure Increment (I: in out Integer);
+end Pck;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/minsyms.exp ./gdb/testsuite/gdb.ada/minsyms.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/minsyms.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/minsyms.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,41 @@
+# Copyright 2017-2018 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_qb07_057
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable ""] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+if ![runto "_ada_foo_qb07_057" ] then {
+  perror "Couldn't run ${testfile}"
+  return
+}
+
+gdb_test "print some_minsym" \
+         "'some_minsym' has unknown type; cast it to its declared type"
+
+gdb_test "print integer(some_minsym)" \
+         " = 1234"
+
+gdb_test "print &some_minsym" \
+         " = \\(access <data variable, no debug info>\\) $hex <some_minsym>"
+
+gdb_test "print /x integer(&some_minsym)" \
+         " = $hex"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_task_arg/task_switch.adb ./gdb/testsuite/gdb.ada/mi_task_arg/task_switch.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_task_arg/task_switch.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_task_arg/task_switch.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_task_arg.exp ./gdb/testsuite/gdb.ada/mi_task_arg.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_task_arg.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_task_arg.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_task_info/task_switch.adb ./gdb/testsuite/gdb.ada/mi_task_info/task_switch.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_task_info/task_switch.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_task_info/task_switch.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_task_info.exp ./gdb/testsuite/gdb.ada/mi_task_info.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_task_info.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_task_info.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_var_array/bar.adb ./gdb/testsuite/gdb.ada/mi_var_array/bar.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_var_array/bar.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_var_array/bar.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_var_array/pck.adb ./gdb/testsuite/gdb.ada/mi_var_array/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_var_array/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_var_array/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_var_array/pck.ads ./gdb/testsuite/gdb.ada/mi_var_array/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_var_array/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_var_array/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_var_array.exp ./gdb/testsuite/gdb.ada/mi_var_array.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mi_var_array.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mi_var_array.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
@@ -48,5 +48,5 @@ mi_gdb_test "-var-create vta * vta" \
     "create bt varobj"
 
 mi_gdb_test "-var-list-children vta" \
-    "\\^done,numchild=\"2\",children=\\\[child={name=\"vta.n\",exp=\"n\",numchild=\"0\",type=\"bar\\.int\"},child={name=\"vta.f\",exp=\"f\",numchild=\"0\",type=\"array \\(1 .. n\\) of character\"}\\\],.*" \
+    "\\^done,numchild=\"2\",children=\\\[child={name=\"vta.n\",exp=\"n\",numchild=\"0\",type=\"bar\\.int\",thread-id=\"$decimal\"},child={name=\"vta.f\",exp=\"f\",numchild=\"0\",type=\"array \\(1 .. n\\) of character\",thread-id=\"$decimal\"}\\\],.*" \
     "list vta's children"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mod_from_name/foo.adb ./gdb/testsuite/gdb.ada/mod_from_name/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mod_from_name/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mod_from_name/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2009-2017 Free Software Foundation, Inc.
+--  Copyright 2009-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mod_from_name.exp ./gdb/testsuite/gdb.ada/mod_from_name.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/mod_from_name.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/mod_from_name.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/n_arr_bound/foo.adb ./gdb/testsuite/gdb.ada/n_arr_bound/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/n_arr_bound/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/n_arr_bound/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/n_arr_bound/pck.adb ./gdb/testsuite/gdb.ada/n_arr_bound/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/n_arr_bound/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/n_arr_bound/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/n_arr_bound/pck.ads ./gdb/testsuite/gdb.ada/n_arr_bound/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/n_arr_bound/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/n_arr_bound/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/n_arr_bound.exp ./gdb/testsuite/gdb.ada/n_arr_bound.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/n_arr_bound.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/n_arr_bound.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/nested/hello.adb ./gdb/testsuite/gdb.ada/nested/hello.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/nested/hello.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/nested/hello.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/nested.exp ./gdb/testsuite/gdb.ada/nested.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/nested.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/nested.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_array/foo.adb ./gdb/testsuite/gdb.ada/null_array/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_array/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/null_array/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_array/pck.adb ./gdb/testsuite/gdb.ada/null_array/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_array/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/null_array/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_array/pck.ads ./gdb/testsuite/gdb.ada/null_array/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_array/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/null_array/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_array.exp ./gdb/testsuite/gdb.ada/null_array.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_array.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/null_array.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_record/bar.adb ./gdb/testsuite/gdb.ada/null_record/bar.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_record/bar.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/null_record/bar.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2004-2017 Free Software Foundation, Inc.
+--  Copyright 2004-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_record/bar.ads ./gdb/testsuite/gdb.ada/null_record/bar.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_record/bar.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/null_record/bar.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2004-2017 Free Software Foundation, Inc.
+--  Copyright 2004-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_record/null_record.adb ./gdb/testsuite/gdb.ada/null_record/null_record.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_record/null_record.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/null_record/null_record.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2004-2017 Free Software Foundation, Inc.
+--  Copyright 2004-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_record.exp ./gdb/testsuite/gdb.ada/null_record.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/null_record.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/null_record.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param/callee.adb ./gdb/testsuite/gdb.ada/O2_float_param/callee.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param/callee.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/O2_float_param/callee.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param/callee.ads ./gdb/testsuite/gdb.ada/O2_float_param/callee.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param/callee.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/O2_float_param/callee.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param/caller.adb ./gdb/testsuite/gdb.ada/O2_float_param/caller.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param/caller.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/O2_float_param/caller.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param/caller.ads ./gdb/testsuite/gdb.ada/O2_float_param/caller.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param/caller.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/O2_float_param/caller.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param/foo.adb ./gdb/testsuite/gdb.ada/O2_float_param/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/O2_float_param/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param/io.adb ./gdb/testsuite/gdb.ada/O2_float_param/io.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param/io.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/O2_float_param/io.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param/io.ads ./gdb/testsuite/gdb.ada/O2_float_param/io.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param/io.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/O2_float_param/io.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param.exp ./gdb/testsuite/gdb.ada/O2_float_param.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/O2_float_param.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/O2_float_param.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/operator_bp/ops.adb ./gdb/testsuite/gdb.ada/operator_bp/ops.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/operator_bp/ops.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/operator_bp/ops.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/operator_bp/ops.ads ./gdb/testsuite/gdb.ada/operator_bp/ops.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/operator_bp/ops.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/operator_bp/ops.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/operator_bp/ops_test.adb ./gdb/testsuite/gdb.ada/operator_bp/ops_test.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/operator_bp/ops_test.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/operator_bp/ops_test.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/operator_bp.exp ./gdb/testsuite/gdb.ada/operator_bp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/operator_bp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/operator_bp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/optim_drec/foo.adb ./gdb/testsuite/gdb.ada/optim_drec/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/optim_drec/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/optim_drec/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/optim_drec.exp ./gdb/testsuite/gdb.ada/optim_drec.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/optim_drec.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/optim_drec.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.adb ./gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.ads ./gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/out_of_line_in_inlined/foo_o224_021.adb ./gdb/testsuite/gdb.ada/out_of_line_in_inlined/foo_o224_021.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/out_of_line_in_inlined/foo_o224_021.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/out_of_line_in_inlined/foo_o224_021.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/out_of_line_in_inlined.exp ./gdb/testsuite/gdb.ada/out_of_line_in_inlined.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/out_of_line_in_inlined.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/out_of_line_in_inlined.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/packed_array/pa.adb ./gdb/testsuite/gdb.ada/packed_array/pa.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/packed_array/pa.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/packed_array/pa.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2005-2017 Free Software Foundation, Inc.
+--  Copyright 2005-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/packed_array/pck.adb ./gdb/testsuite/gdb.ada/packed_array/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/packed_array/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/packed_array/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright (C) 2011-2017 Free Software Foundation, Inc.
+--  Copyright (C) 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/packed_array/pck.ads ./gdb/testsuite/gdb.ada/packed_array/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/packed_array/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/packed_array/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright (C) 2011-2017 Free Software Foundation, Inc.
+--  Copyright (C) 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/packed_array.exp ./gdb/testsuite/gdb.ada/packed_array.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/packed_array.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/packed_array.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/packed_tagged/comp_bug.adb ./gdb/testsuite/gdb.ada/packed_tagged/comp_bug.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/packed_tagged/comp_bug.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/packed_tagged/comp_bug.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/packed_tagged.exp ./gdb/testsuite/gdb.ada/packed_tagged.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/packed_tagged.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/packed_tagged.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_arr_ren/foo.adb ./gdb/testsuite/gdb.ada/pckd_arr_ren/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_arr_ren/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pckd_arr_ren/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_arr_ren/pck.adb ./gdb/testsuite/gdb.ada/pckd_arr_ren/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_arr_ren/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pckd_arr_ren/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_arr_ren/pck.ads ./gdb/testsuite/gdb.ada/pckd_arr_ren/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_arr_ren/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pckd_arr_ren/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_arr_ren.exp ./gdb/testsuite/gdb.ada/pckd_arr_ren.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_arr_ren.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pckd_arr_ren.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_neg/foo_o508_021.adb ./gdb/testsuite/gdb.ada/pckd_neg/foo_o508_021.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_neg/foo_o508_021.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pckd_neg/foo_o508_021.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright (C) 2015-2017 Free Software Foundation, Inc.
+--  Copyright (C) 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_neg/pck.adb ./gdb/testsuite/gdb.ada/pckd_neg/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_neg/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pckd_neg/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright (C) 2015-2017 Free Software Foundation, Inc.
+--  Copyright (C) 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_neg/pck.ads ./gdb/testsuite/gdb.ada/pckd_neg/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_neg/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pckd_neg/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright (C) 2015-2017 Free Software Foundation, Inc.
+--  Copyright (C) 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_neg.exp ./gdb/testsuite/gdb.ada/pckd_neg.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pckd_neg.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pckd_neg.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pkd_arr_elem/failure.adb ./gdb/testsuite/gdb.ada/pkd_arr_elem/failure.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pkd_arr_elem/failure.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pkd_arr_elem/failure.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pkd_arr_elem/pck.adb ./gdb/testsuite/gdb.ada/pkd_arr_elem/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pkd_arr_elem/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pkd_arr_elem/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pkd_arr_elem/pck.ads ./gdb/testsuite/gdb.ada/pkd_arr_elem/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pkd_arr_elem/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pkd_arr_elem/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pkd_arr_elem.exp ./gdb/testsuite/gdb.ada/pkd_arr_elem.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pkd_arr_elem.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pkd_arr_elem.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 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
@@ -28,8 +28,18 @@ clean_restart ${testfile}
 set bp_location [gdb_get_line_number "START" ${testdir}/failure.adb]
 runto "failure.adb:$bp_location"
 
-gdb_test "print test" \
-         "= \\(size => 100, str => \\(33 'A', nul <repeats 99 times>\\), length => 1\\)"
+# Print Test.  The order of the components depends on which version of
+# the compiler being used, as newer version can re-order the order
+# of the components.  Accept both known orders.
+set test "print test"
+gdb_test_multiple "$test" $test {
+  -re "= \\(size => 100, length => 1, str => \\(33 'A', nul <repeats 99 times>\\)\\).*$gdb_prompt $" {
+    pass $test
+    }
+  -re "= \\(size => 100, str => \\(33 'A', nul <repeats 99 times>\\), length => 1\\).*$gdb_prompt $" {
+    pass $test
+    }
+}
 
 gdb_test "print test.str" \
          "= \\(33 'A', nul <repeats 99 times>\\)"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pp-rec-component/foo.adb ./gdb/testsuite/gdb.ada/pp-rec-component/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pp-rec-component/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pp-rec-component/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pp-rec-component/pck.adb ./gdb/testsuite/gdb.ada/pp-rec-component/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pp-rec-component/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pp-rec-component/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pp-rec-component/pck.ads ./gdb/testsuite/gdb.ada/pp-rec-component/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pp-rec-component/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pp-rec-component/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pp-rec-component.exp ./gdb/testsuite/gdb.ada/pp-rec-component.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pp-rec-component.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pp-rec-component.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pp-rec-component.py ./gdb/testsuite/gdb.ada/pp-rec-component.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/pp-rec-component.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/pp-rec-component.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/print_chars/foo.adb ./gdb/testsuite/gdb.ada/print_chars/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/print_chars/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/print_chars/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/print_chars/pck.adb ./gdb/testsuite/gdb.ada/print_chars/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/print_chars/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/print_chars/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/print_chars/pck.ads ./gdb/testsuite/gdb.ada/print_chars/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/print_chars/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/print_chars/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/print_chars.exp ./gdb/testsuite/gdb.ada/print_chars.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/print_chars.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/print_chars.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/print_pc.exp ./gdb/testsuite/gdb.ada/print_pc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/print_pc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/print_pc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptr_typedef/foo.adb ./gdb/testsuite/gdb.ada/ptr_typedef/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptr_typedef/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ptr_typedef/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptr_typedef/pck.adb ./gdb/testsuite/gdb.ada/ptr_typedef/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptr_typedef/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ptr_typedef/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptr_typedef/pck.ads ./gdb/testsuite/gdb.ada/ptr_typedef/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptr_typedef/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ptr_typedef/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptr_typedef.exp ./gdb/testsuite/gdb.ada/ptr_typedef.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptr_typedef.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ptr_typedef.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_arith_binop.exp ./gdb/testsuite/gdb.ada/ptype_arith_binop.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_arith_binop.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ptype_arith_binop.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_field/foo.adb ./gdb/testsuite/gdb.ada/ptype_field/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_field/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ptype_field/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_field/pck.adb ./gdb/testsuite/gdb.ada/ptype_field/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_field/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ptype_field/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_field/pck.ads ./gdb/testsuite/gdb.ada/ptype_field/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_field/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ptype_field/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_field.exp ./gdb/testsuite/gdb.ada/ptype_field.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_field.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ptype_field.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_tagged_param/foo.adb ./gdb/testsuite/gdb.ada/ptype_tagged_param/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_tagged_param/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ptype_tagged_param/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_tagged_param/pck.adb ./gdb/testsuite/gdb.ada/ptype_tagged_param/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_tagged_param/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ptype_tagged_param/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_tagged_param/pck.ads ./gdb/testsuite/gdb.ada/ptype_tagged_param/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_tagged_param/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ptype_tagged_param/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_tagged_param.exp ./gdb/testsuite/gdb.ada/ptype_tagged_param.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ptype_tagged_param.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ptype_tagged_param.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/py_range/foo.adb ./gdb/testsuite/gdb.ada/py_range/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/py_range/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/py_range/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/py_range/pck.adb ./gdb/testsuite/gdb.ada/py_range/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/py_range/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/py_range/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/py_range/pck.ads ./gdb/testsuite/gdb.ada/py_range/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/py_range/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/py_range/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/py_range.exp ./gdb/testsuite/gdb.ada/py_range.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/py_range.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/py_range.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rdv_wait/foo.adb ./gdb/testsuite/gdb.ada/rdv_wait/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rdv_wait/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/rdv_wait/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rdv_wait/pck.adb ./gdb/testsuite/gdb.ada/rdv_wait/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rdv_wait/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/rdv_wait/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rdv_wait/pck.ads ./gdb/testsuite/gdb.ada/rdv_wait/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rdv_wait/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/rdv_wait/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rdv_wait.exp ./gdb/testsuite/gdb.ada/rdv_wait.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rdv_wait.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/rdv_wait.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_comp/bar_o203_012.adb ./gdb/testsuite/gdb.ada/rec_comp/bar_o203_012.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_comp/bar_o203_012.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/rec_comp/bar_o203_012.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_comp/pck.adb ./gdb/testsuite/gdb.ada/rec_comp/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_comp/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/rec_comp/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_comp/pck.ads ./gdb/testsuite/gdb.ada/rec_comp/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_comp/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/rec_comp/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_comp.exp ./gdb/testsuite/gdb.ada/rec_comp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_comp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/rec_comp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_return/foo.adb ./gdb/testsuite/gdb.ada/rec_return/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_return/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/rec_return/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_return/pck.adb ./gdb/testsuite/gdb.ada/rec_return/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_return/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/rec_return/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_return/pck.ads ./gdb/testsuite/gdb.ada/rec_return/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_return/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/rec_return/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2010-2017 Free Software Foundation, Inc.
+--  Copyright 2010-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_return.exp ./gdb/testsuite/gdb.ada/rec_return.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/rec_return.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/rec_return.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_param/foo.adb ./gdb/testsuite/gdb.ada/ref_param/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_param/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ref_param/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_param/pck.adb ./gdb/testsuite/gdb.ada/ref_param/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_param/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ref_param/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_param/pck.ads ./gdb/testsuite/gdb.ada/ref_param/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_param/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ref_param/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_param.exp ./gdb/testsuite/gdb.ada/ref_param.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_param.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ref_param.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_tick_size/p.adb ./gdb/testsuite/gdb.ada/ref_tick_size/p.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_tick_size/p.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ref_tick_size/p.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_tick_size/pck.adb ./gdb/testsuite/gdb.ada/ref_tick_size/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_tick_size/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ref_tick_size/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_tick_size/pck.ads ./gdb/testsuite/gdb.ada/ref_tick_size/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_tick_size/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ref_tick_size/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_tick_size.exp ./gdb/testsuite/gdb.ada/ref_tick_size.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/ref_tick_size.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/ref_tick_size.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/repeat_dyn/foo_oc22_002.adb ./gdb/testsuite/gdb.ada/repeat_dyn/foo_oc22_002.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/repeat_dyn/foo_oc22_002.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/repeat_dyn/foo_oc22_002.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,25 @@
+--  Copyright 2016-2018 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_OC22_002 is
+   type Small is new Integer range Ident (1) .. Ident (10);
+   type Table is array (1 .. 3) of Small;
+
+   A1 : Table := (3, 5, 8);
+begin
+   Do_Nothing (A1'Address);  -- STOP
+end Foo_OC22_002;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/repeat_dyn/pck.adb ./gdb/testsuite/gdb.ada/repeat_dyn/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/repeat_dyn/pck.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/repeat_dyn/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,27 @@
+--  Copyright 2016-2018 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
+   function Ident (I : Integer) return Integer
+   is
+   begin
+      return I;
+   end Ident;
+
+   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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/repeat_dyn/pck.ads ./gdb/testsuite/gdb.ada/repeat_dyn/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/repeat_dyn/pck.ads	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/repeat_dyn/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,22 @@
+--  Copyright 2016-2018 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
+   function Ident (I : Integer) return Integer;
+
+   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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/repeat_dyn.exp ./gdb/testsuite/gdb.ada/repeat_dyn.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/repeat_dyn.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/repeat_dyn.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,30 @@
+# Copyright 2016-2018 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_oc22_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_oc22_002.adb]
+runto "foo_oc22_002.adb:$bp_location"
+
+gdb_test "print a1(1)@3" \
+         " = \\(3, 5, 8\\)"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_component_name/foo.adb ./gdb/testsuite/gdb.ada/same_component_name/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_component_name/foo.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/same_component_name/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,31 @@
+--  Copyright 2017-2018 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;
+use Pck.Middle;
+use Pck.Top;
+
+procedure Foo is
+   B : Bottom_T;
+   M : Middle_T;
+
+begin
+   Assign (Top_T (B), 12);
+   Assign (B, 10.0);
+
+   Assign (M, 'V');
+   Assign (B, 5.0);
+end Foo;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_component_name/pck.adb ./gdb/testsuite/gdb.ada/same_component_name/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_component_name/pck.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/same_component_name/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,42 @@
+--  Copyright 2010-2018 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 body Pck is
+   package body Top is
+      procedure Assign (Obj: in out Top_T; TV : Integer) is
+      begin
+         Do_Nothing (Obj'Address); -- BREAK_TOP
+      end Assign;
+   end Top;
+
+   package body Middle is
+      procedure Assign (Obj: in out Middle_T; MV : Character) is
+      begin
+         Do_Nothing (Obj'Address); -- BREAK_MIDDLE
+      end Assign;
+   end Middle;
+
+   procedure Assign (Obj: in out Bottom_T; BV : Float) is
+   begin
+      Do_Nothing (Obj'Address); -- BREAK_BOTTOM
+   end Assign;
+
+   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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_component_name/pck.ads ./gdb/testsuite/gdb.ada/same_component_name/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_component_name/pck.ads	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/same_component_name/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,51 @@
+--  Copyright 2017-2018 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
+
+   package Top is
+      type Top_T is tagged private;
+      type Top_A is access Top_T'Class;
+      procedure Assign (Obj: in out Top_T; TV : Integer);
+   private
+      type Top_T is tagged record
+         N : Integer := 1;
+         A : Integer := 48;
+      end record;
+   end Top;
+
+   package Middle is
+      type Middle_T is new Top.Top_T with private;
+      type Middle_A is access Middle_T'Class;
+      procedure Assign (Obj: in out Middle_T; MV : Character);
+   private
+      type Middle_T is new Top.Top_T with record
+         N : Character := 'a';
+      end record;
+   end Middle;
+
+   type Bottom_T is new Middle.Middle_T with record
+      N : Float := 4.0;
+      X : Integer := 6;
+      A : Character := 'J';
+   end record;
+   type Bottom_A is access Bottom_T'Class;
+   procedure Assign (Obj: in out Bottom_T; BV : Float);
+
+   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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_component_name.exp ./gdb/testsuite/gdb.ada/same_component_name.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_component_name.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/same_component_name.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,60 @@
+# Copyright 2017-2018 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
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+set bp_top_location [gdb_get_line_number "BREAK_TOP" ${testdir}/pck.adb]
+set bp_middle_location [gdb_get_line_number "BREAK_MIDDLE" ${testdir}/pck.adb]
+set bp_bottom_location [gdb_get_line_number "BREAK_BOTTOM" ${testdir}/pck.adb]
+
+gdb_breakpoint "pck.adb:$bp_top_location"
+gdb_breakpoint "pck.adb:$bp_middle_location"
+gdb_breakpoint "pck.adb:$bp_bottom_location"
+
+gdb_run_cmd
+
+gdb_test "" \
+         ".*Breakpoint $decimal, pck.top.assign \\(.*\\).*" \
+         "run to top assign breakpoint"
+
+gdb_test "print obj.n" " = 1" "Print top component field"
+
+gdb_test "continue" \
+         ".*Breakpoint $decimal, pck.assign \\(.*\\).*" \
+         "continue to bottom assign breakpoint"
+
+gdb_test "print obj.n" " = 4\\.0" "Print bottom component field"
+
+gdb_test "continue" \
+         ".*Breakpoint $decimal, pck.middle.assign \\(.*\\).*" \
+         "continue to middle assign breakpoint"
+
+gdb_test "print obj.a" " = 48" \
+         "Print top component field in middle assign function"
+
+gdb_test "continue" \
+         ".*Breakpoint $decimal, pck.assign \\(.*\\).*" \
+         "continue to bottom assign breakpoint (2nd time)"
+
+gdb_test "print obj.x" " = 6" \
+         "Print field existing only in bottom component"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_enum/a.adb ./gdb/testsuite/gdb.ada/same_enum/a.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_enum/a.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/same_enum/a.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_enum/pck.adb ./gdb/testsuite/gdb.ada/same_enum/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_enum/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/same_enum/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_enum/pck.ads ./gdb/testsuite/gdb.ada/same_enum/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_enum/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/same_enum/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_enum.exp ./gdb/testsuite/gdb.ada/same_enum.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/same_enum.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/same_enum.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/scoped_watch/foo_p708_025.adb ./gdb/testsuite/gdb.ada/scoped_watch/foo_p708_025.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/scoped_watch/foo_p708_025.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/scoped_watch/foo_p708_025.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,25 @@
+--  Copyright 2017-2018 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_P708_025 is
+   Val : Integer;
+begin
+   Val := Get_Val (8, False);
+   Do_Nothing (Val);
+   Call_Me;
+   Increment (Val);
+end Foo_P708_025;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/scoped_watch/pck.adb ./gdb/testsuite/gdb.ada/scoped_watch/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/scoped_watch/pck.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/scoped_watch/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,44 @@
+--  Copyright 2017-2018 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
+   function Get_Val (Seed: Integer; Off_By_One: Boolean) return Integer is
+      Result : Integer := Seed;
+   begin
+      if Off_By_One then  --  START
+         Result := Result - 1;
+      end if;
+      Result := Result * 8;
+      if Off_By_One then
+         Result := Result + 1;
+      end if;
+      return Result;
+   end Get_Val;
+
+   procedure Do_Nothing (Val: in out Integer) is
+   begin
+      null;
+   end Do_Nothing;
+
+   procedure Call_Me is
+   begin
+      null;
+   end Call_Me;
+
+   procedure Increment (Val : in out Integer) is
+   begin
+      Val := Val + 1;
+   end Increment;
+end Pck;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/scoped_watch/pck.ads ./gdb/testsuite/gdb.ada/scoped_watch/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/scoped_watch/pck.ads	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/scoped_watch/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,21 @@
+--  Copyright 2017-2018 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 Pck is
+   function Get_Val (Seed: Integer; Off_By_One: Boolean) return Integer;
+   procedure Do_Nothing (Val: in out Integer);
+   procedure Call_Me;
+   procedure Increment (Val : in out Integer);
+end Pck;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/scoped_watch.exp ./gdb/testsuite/gdb.ada/scoped_watch.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/scoped_watch.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/scoped_watch.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,83 @@
+# Copyright 2017-2018 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"
+
+if { [skip_ada_tests] } { return -1 }
+
+standard_ada_testfile foo_p708_025
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable {debug}] != ""} {
+    return -1
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "START" ${testdir}/pck.adb]
+runto "pck.adb:$bp_location"
+
+# Insert a watchpoint on local variable "result"
+
+gdb_test "watch result" \
+         ".*atchpoint \[0-9\]+: result"
+
+# Insert a breakpoint we'll reach after returning from the current
+# function.
+
+set bp_location [gdb_get_line_number "Do_Nothing" ${testdir}/foo_p708_025.adb]
+gdb_test "break foo_p708_025.adb:$bp_location" \
+         "Breakpoint \[0-9\]+ at.*: file .*foo_p708_025.adb, line \[0-9\]+."
+
+# This breakpoint will be there to stop us after we test what happens
+# during a continue (see below...)
+
+gdb_test "break pck.increment" \
+         "Breakpoint \[0-9\]+ at.*: file .*pck.adb, line \[0-9\]+."
+
+# Continue until we reach our watchpoint.  It isn't strictly necessary
+# for our purpose that the watchpoint actually triggers, but this shows
+# that the watchpoint exists and is active.
+gdb_test "cont" \
+         ".*atchpoint \[0-9\]+: result.*Old value = 8.*New value = 64.*" \
+         "continuing to watchpoint hit"
+
+# Continue again.  We should be stopped at the (internal) breakpoint
+# that we setup to delete the watchpoint as soon as the program leaves
+# the current scope.
+
+gdb_test \
+    "cont" \
+    ".*atchpoint \[0-9\]+ deleted because the program has left the block.*" \
+    "continuing until watchpoint automatic deletion"
+
+# Continue one more time.  We should be reaching one of the breakpoints
+# (on the call to Do_Nothing) we set earlier.
+
+gdb_test "cont" \
+         "Breakpoint \[0-9\]+.*Do_Nothing.*" \
+         "continuing to breakpoint on call to Do_Nothing"
+
+# Do a next, to verify that it works...
+
+gdb_test "next" \
+         ".* Call_Me;" \
+         "next to call to Call_Me"
+
+# And finally, one more continue.
+
+
+gdb_test "cont" \
+         "Breakpoint \[0-9\]+.*pck\\.increment.*" \
+         "continuing to breakpoint in pck.increment"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_pckd_arr_elt/foo.adb ./gdb/testsuite/gdb.ada/set_pckd_arr_elt/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_pckd_arr_elt/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/set_pckd_arr_elt/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.adb ./gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.ads ./gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_pckd_arr_elt.exp ./gdb/testsuite/gdb.ada/set_pckd_arr_elt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_pckd_arr_elt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/set_pckd_arr_elt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_wstr/a.adb ./gdb/testsuite/gdb.ada/set_wstr/a.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_wstr/a.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/set_wstr/a.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_wstr/pck.adb ./gdb/testsuite/gdb.ada/set_wstr/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_wstr/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/set_wstr/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_wstr/pck.ads ./gdb/testsuite/gdb.ada/set_wstr/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_wstr/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/set_wstr/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_wstr.exp ./gdb/testsuite/gdb.ada/set_wstr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/set_wstr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/set_wstr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/small_reg_param/foo.adb ./gdb/testsuite/gdb.ada/small_reg_param/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/small_reg_param/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/small_reg_param/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/small_reg_param/pck.adb ./gdb/testsuite/gdb.ada/small_reg_param/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/small_reg_param/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/small_reg_param/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/small_reg_param/pck.ads ./gdb/testsuite/gdb.ada/small_reg_param/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/small_reg_param/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/small_reg_param/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/small_reg_param.exp ./gdb/testsuite/gdb.ada/small_reg_param.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/small_reg_param.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/small_reg_param.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/start/dummy.adb ./gdb/testsuite/gdb.ada/start/dummy.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/start/dummy.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/start/dummy.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2005-2017 Free Software Foundation, Inc.
+--  Copyright 2005-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/start.exp ./gdb/testsuite/gdb.ada/start.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/start.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/start.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_binop_equal/foo_p211_061.adb ./gdb/testsuite/gdb.ada/str_binop_equal/foo_p211_061.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_binop_equal/foo_p211_061.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/str_binop_equal/foo_p211_061.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,22 @@
+--  Copyright 2017-2018 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_P211_061 is
+   My_Str : Str := "ABCD";
+begin
+   Do_Nothing (My_Str'Address);  -- STOP
+end Foo_P211_061;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_binop_equal/pck.adb ./gdb/testsuite/gdb.ada/str_binop_equal/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_binop_equal/pck.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/str_binop_equal/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,22 @@
+--  Copyright 2017-2018 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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_binop_equal/pck.ads ./gdb/testsuite/gdb.ada/str_binop_equal/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_binop_equal/pck.ads	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/str_binop_equal/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,20 @@
+--  Copyright 2017-2018 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 Str is new String (1 .. 4);
+   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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_binop_equal.exp ./gdb/testsuite/gdb.ada/str_binop_equal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_binop_equal.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/str_binop_equal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,39 @@
+# Copyright 2017-2018 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_p211_061
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "STOP" ${testdir}/foo_p211_061.adb]
+runto "foo_p211_061.adb:$bp_location"
+
+gdb_test "print my_str = my_str" \
+         " = true"
+
+gdb_test "print my_str = \"ABCD\"" \
+         " = true"
+
+gdb_test "print my_str = \"EFGH\"" \
+         " = false"
+
+gdb_test "print my_str = \"AB\"" \
+         " = false"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_ref_cmp/foo.adb ./gdb/testsuite/gdb.ada/str_ref_cmp/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_ref_cmp/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/str_ref_cmp/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_ref_cmp/pck.ads ./gdb/testsuite/gdb.ada/str_ref_cmp/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_ref_cmp/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/str_ref_cmp/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_ref_cmp.exp ./gdb/testsuite/gdb.ada/str_ref_cmp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_ref_cmp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/str_ref_cmp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_uninit/parse.adb ./gdb/testsuite/gdb.ada/str_uninit/parse.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_uninit/parse.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/str_uninit/parse.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_uninit/pck.adb ./gdb/testsuite/gdb.ada/str_uninit/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_uninit/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/str_uninit/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_uninit/pck.ads ./gdb/testsuite/gdb.ada/str_uninit/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_uninit/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/str_uninit/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_uninit.exp ./gdb/testsuite/gdb.ada/str_uninit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/str_uninit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/str_uninit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/sym_print_name/foo.adb ./gdb/testsuite/gdb.ada/sym_print_name/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/sym_print_name/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/sym_print_name/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/sym_print_name/pck.adb ./gdb/testsuite/gdb.ada/sym_print_name/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/sym_print_name/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/sym_print_name/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/sym_print_name/pck.ads ./gdb/testsuite/gdb.ada/sym_print_name/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/sym_print_name/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/sym_print_name/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/sym_print_name.exp ./gdb/testsuite/gdb.ada/sym_print_name.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/sym_print_name.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/sym_print_name.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/taft_type/p.adb ./gdb/testsuite/gdb.ada/taft_type/p.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/taft_type/p.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/taft_type/p.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/taft_type/pck.adb ./gdb/testsuite/gdb.ada/taft_type/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/taft_type/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/taft_type/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/taft_type/pck.ads ./gdb/testsuite/gdb.ada/taft_type/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/taft_type/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/taft_type/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/taft_type.exp ./gdb/testsuite/gdb.ada/taft_type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/taft_type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/taft_type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged/foo.adb ./gdb/testsuite/gdb.ada/tagged/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tagged/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged/pck.adb ./gdb/testsuite/gdb.ada/tagged/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tagged/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged/pck.ads ./gdb/testsuite/gdb.ada/tagged/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tagged/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_access/pack.adb ./gdb/testsuite/gdb.ada/tagged_access/pack.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_access/pack.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tagged_access/pack.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_access/pack.ads ./gdb/testsuite/gdb.ada/tagged_access/pack.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_access/pack.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tagged_access/pack.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_access/p.adb ./gdb/testsuite/gdb.ada/tagged_access/p.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_access/p.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tagged_access/p.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_access.exp ./gdb/testsuite/gdb.ada/tagged_access.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_access.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tagged_access.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged.exp ./gdb/testsuite/gdb.ada/tagged.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tagged.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_not_init/foo.adb ./gdb/testsuite/gdb.ada/tagged_not_init/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_not_init/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tagged_not_init/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_not_init/pck.adb ./gdb/testsuite/gdb.ada/tagged_not_init/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_not_init/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tagged_not_init/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_not_init/pck.ads ./gdb/testsuite/gdb.ada/tagged_not_init/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_not_init/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tagged_not_init/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_not_init.exp ./gdb/testsuite/gdb.ada/tagged_not_init.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tagged_not_init.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tagged_not_init.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/task_bp/foo.adb ./gdb/testsuite/gdb.ada/task_bp/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/task_bp/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/task_bp/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/task_bp/pck.adb ./gdb/testsuite/gdb.ada/task_bp/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/task_bp/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/task_bp/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/task_bp/pck.ads ./gdb/testsuite/gdb.ada/task_bp/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/task_bp/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/task_bp/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/task_bp.exp ./gdb/testsuite/gdb.ada/task_bp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/task_bp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/task_bp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tasks/foo.adb ./gdb/testsuite/gdb.ada/tasks/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tasks/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tasks/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2009-2017 Free Software Foundation, Inc.
+--  Copyright 2009-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tasks.exp ./gdb/testsuite/gdb.ada/tasks.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tasks.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tasks.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/task_switch_in_core/crash.adb ./gdb/testsuite/gdb.ada/task_switch_in_core/crash.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/task_switch_in_core/crash.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/task_switch_in_core/crash.adb	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,53 @@
+--  Copyright 2017-2018 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 Ada.Text_IO; use Ada.Text_IO;
+
+procedure Crash is
+
+   procedure Request_For_Crash is
+   begin
+      null; -- Just an anchor for the debugger...
+   end Request_For_Crash;
+
+   task type T is
+      entry Done;
+   end T;
+
+   task body T is
+   begin
+      accept Done do
+         null;
+      end Done;
+      Put_Line ("Task T: Rendez-vous completed.");
+   end T;
+
+   My_T : T;
+
+begin
+
+   --  Give some time for the task to be created, and start its execution,
+   --  so that it reaches the accept statement.
+   delay 0.01;
+
+   Request_For_Crash;
+
+   delay 0.01;
+   Put_Line ("*** We didn't crash !?!");
+
+   --  Complete the rendez-vous with our task, so it can complete.
+   My_T.Done;
+
+end Crash;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/task_switch_in_core.exp ./gdb/testsuite/gdb.ada/task_switch_in_core.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/task_switch_in_core.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/task_switch_in_core.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,80 @@
+# Copyright 2017-2018 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 crash
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+# Run the program to a certain point, and then use the gcore command
+# to generate a core file. The only objective of this part of this
+# testcase is to generate this core file, so we can then exercise
+# task-switching when debugging from core files.
+
+if { ![runto request_for_crash ]} then {
+    untested "couldn't run to Request_For_Crash"
+    return -1
+}
+
+set corefile [standard_output_file crash.gcore]
+set core_supported [gdb_gcore_cmd "$corefile" "save a corefile"]
+if {!$core_supported} {
+  return -1
+}
+
+# Now taht the core file has been created, we can start the real
+# part of this testcase, which is to debug using that core file.
+# Restart GDB and load that core file.
+
+clean_restart ${testfile}
+
+set core_loaded [gdb_core_cmd "$corefile" "re-load generated corefile"]
+if { $core_loaded == -1 } {
+    # No use proceeding from here.
+    return
+}
+
+# First, switch to task 1.
+
+gdb_test "task 1" \
+         "crash\\.request_for_crash \\(\\) at .*crash\\.adb:$decimal.*"
+
+
+gdb_test "info tasks" \
+         [multi_line "\\s+ID\\s+TID\\s+P-ID\\s+Pri\\s+State\\s+Name" \
+                     "\\*\\s+1\\s+.*main_task" \
+                     "\\s+2.*my_t"] \
+         "info tasks after switching to task 1"
+
+# Switch to task 2. Unlike in the case where we tested the switch to
+# task 1, don't check the location where the debugger says the program
+# is, as this might depend on the runtime, and in particular it might
+# depend on whether the runtime is built with debugging information
+# or not. Just check that we get the "switching to task" message, and
+# we will verify right after with an additional test that the current
+# task is now task 2.
+gdb_test "task 2" \
+         "\\\[Switching to task 2\\\].*"
+
+gdb_test "info tasks" \
+         [multi_line "\\s+ID\\s+TID\\s+P-ID\\s+Pri\\s+State\\s+Name" \
+                     "\\s+1\\s+.*main_task" \
+                     "\\*\\s+2.*my_t"] \
+         "info tasks after switching to task 2"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tick_last_segv/foo.adb ./gdb/testsuite/gdb.ada/tick_last_segv/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tick_last_segv/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tick_last_segv/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2009-2017 Free Software Foundation, Inc.
+--  Copyright 2009-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tick_last_segv.exp ./gdb/testsuite/gdb.ada/tick_last_segv.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tick_last_segv.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tick_last_segv.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/foo_n207_004.adb ./gdb/testsuite/gdb.ada/tick_length_array_enum_idx/foo_n207_004.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/foo_n207_004.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tick_length_array_enum_idx/foo_n207_004.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.adb ./gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.ads ./gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2014-2017 Free Software Foundation, Inc.
+--  Copyright 2014-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tick_length_array_enum_idx.exp ./gdb/testsuite/gdb.ada/tick_length_array_enum_idx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/tick_length_array_enum_idx.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/tick_length_array_enum_idx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/type_coercion/assign.adb ./gdb/testsuite/gdb.ada/type_coercion/assign.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/type_coercion/assign.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/type_coercion/assign.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/type_coercion/ident.adb ./gdb/testsuite/gdb.ada/type_coercion/ident.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/type_coercion/ident.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/type_coercion/ident.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2008-2017 Free Software Foundation, Inc.
+--  Copyright 2008-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/type_coercion.exp ./gdb/testsuite/gdb.ada/type_coercion.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/type_coercion.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/type_coercion.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/foo.adb ./gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.adb ./gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.ads ./gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp ./gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/uninitialized_vars/parse.adb ./gdb/testsuite/gdb.ada/uninitialized_vars/parse.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/uninitialized_vars/parse.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/uninitialized_vars/parse.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2009-2017 Free Software Foundation, Inc.
+--  Copyright 2009-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/uninitialized_vars/parse_controlled.ads ./gdb/testsuite/gdb.ada/uninitialized_vars/parse_controlled.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/uninitialized_vars/parse_controlled.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/uninitialized_vars/parse_controlled.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2009-2017 Free Software Foundation, Inc.
+--  Copyright 2009-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/uninitialized_vars.exp ./gdb/testsuite/gdb.ada/uninitialized_vars.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/uninitialized_vars.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/uninitialized_vars.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_attrs/foo_o115_002.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_arr_attrs/foo_o115_002.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb ./gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads ./gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_attrs.exp ./gdb/testsuite/gdb.ada/var_arr_attrs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_attrs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_arr_attrs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb ./gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads ./gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb ./gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_typedef.exp ./gdb/testsuite/gdb.ada/var_arr_typedef.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_arr_typedef.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_arr_typedef.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/variant_record_packed_array/foo.adb ./gdb/testsuite/gdb.ada/variant_record_packed_array/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/variant_record_packed_array/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/variant_record_packed_array/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2009-2017 Free Software Foundation, Inc.
+--  Copyright 2009-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/variant_record_packed_array/pck.adb ./gdb/testsuite/gdb.ada/variant_record_packed_array/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/variant_record_packed_array/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/variant_record_packed_array/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2009-2017 Free Software Foundation, Inc.
+--  Copyright 2009-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/variant_record_packed_array/pck.ads ./gdb/testsuite/gdb.ada/variant_record_packed_array/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/variant_record_packed_array/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/variant_record_packed_array/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2009-2017 Free Software Foundation, Inc.
+--  Copyright 2009-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/variant_record_packed_array.exp ./gdb/testsuite/gdb.ada/variant_record_packed_array.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/variant_record_packed_array.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/variant_record_packed_array.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -26,14 +26,26 @@ clean_restart ${testfile}
 set bp_location [gdb_get_line_number "START" ${testdir}/foo.adb]
 runto "foo.adb:$bp_location"
 
-gdb_test "print my_buffer" \
-    "= \\(size => 8, buffer => \\(1, 2, 3, 4, 5, 6, 7, 0\\), length => 8\\)" \
-    "print empty"
+set test "print my_buffer"
+gdb_test_multiple "$test" $test {
+    -re "= \\(size => 8, buffer => \\(1, 2, 3, 4, 5, 6, 7, 0\\), length => 8\\)\[\r\n\]+$gdb_prompt $" {
+        pass $test
+    }
+    -re "= \\(size => 8, length => 8, buffer => \\(1, 2, 3, 4, 5, 6, 7, 0\\)\\)\[\r\n\]+$gdb_prompt $" {
+        pass $test
+    }
+}
 
 gdb_test "print my_buffer'Address" \
     "= \\(system\\.address\\) $hex" \
     "print address"
 
-gdb_test "print {foo.octal_buffer} ($)" \
-    "= \\(size => 8, buffer => \\(1, 2, 3, 4, 5, 6, 7, 0\\), length => 8\\)" \
-    "print adress content"
+set test "print {foo.octal_buffer} ($)"
+gdb_test_multiple "$test" $test {
+    -re "= \\(size => 8, buffer => \\(1, 2, 3, 4, 5, 6, 7, 0\\), length => 8\\)\[\r\n\]+$gdb_prompt $" {
+        pass $test
+    }
+    -re "= \\(size => 8, length => 8, buffer => \\(1, 2, 3, 4, 5, 6, 7, 0\\)\\)\[\r\n\]+$gdb_prompt $" {
+        pass $test
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_rec_arr/foo_na09_042.adb ./gdb/testsuite/gdb.ada/var_rec_arr/foo_na09_042.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_rec_arr/foo_na09_042.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_rec_arr/foo_na09_042.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_rec_arr/pck.adb ./gdb/testsuite/gdb.ada/var_rec_arr/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_rec_arr/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_rec_arr/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_rec_arr/pck.ads ./gdb/testsuite/gdb.ada/var_rec_arr/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_rec_arr/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_rec_arr/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2015-2017 Free Software Foundation, Inc.
+--  Copyright 2015-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_rec_arr.exp ./gdb/testsuite/gdb.ada/var_rec_arr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/var_rec_arr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/var_rec_arr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/watch_arg/pck.adb ./gdb/testsuite/gdb.ada/watch_arg/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/watch_arg/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/watch_arg/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/watch_arg/pck.ads ./gdb/testsuite/gdb.ada/watch_arg/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/watch_arg/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/watch_arg/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/watch_arg/watch.adb ./gdb/testsuite/gdb.ada/watch_arg/watch.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/watch_arg/watch.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/watch_arg/watch.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2006-2017 Free Software Foundation, Inc.
+--  Copyright 2006-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/watch_arg.exp ./gdb/testsuite/gdb.ada/watch_arg.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/watch_arg.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/watch_arg.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 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
@@ -40,8 +40,17 @@ gdb_test "break watch.adb:$bp_location" 
          "Breakpoint \[0-9\]+ at.*: file .*watch.adb, line \[0-9\]+." \
          "insert second breakpoint in watch.adb"
 
-# Then continue to that breakpoint, and verify that the watchpoint
-# did not interfere with that.
+# Continue again.  We should be stopped at the (internal) breakpoint
+# that we setup to delete the watchpoint as soon as the program leaves
+# the watchpoint scope.
+
+gdb_test \
+    "cont" \
+    ".*atchpoint \[0-9\]+ deleted because the program has left the block.*" \
+    "continuing until watchpoint automatic deletion"
+
+# Continue one more time, and verify that we land at the second breakpoint
+# we inserted.
 
 gdb_test "cont" \
          "Breakpoint \[0-9\]+, watch \\(\\).*" \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/whatis_array_val/foo.adb ./gdb/testsuite/gdb.ada/whatis_array_val/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/whatis_array_val/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/whatis_array_val/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2012-2017 Free Software Foundation, Inc.
+--  Copyright 2012-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/whatis_array_val/pck.adb ./gdb/testsuite/gdb.ada/whatis_array_val/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/whatis_array_val/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/whatis_array_val/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/whatis_array_val/pck.ads ./gdb/testsuite/gdb.ada/whatis_array_val/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/whatis_array_val/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/whatis_array_val/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/whatis_array_val.exp ./gdb/testsuite/gdb.ada/whatis_array_val.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/whatis_array_val.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/whatis_array_val.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/widewide/foo.adb ./gdb/testsuite/gdb.ada/widewide/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/widewide/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/widewide/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/widewide/pck.adb ./gdb/testsuite/gdb.ada/widewide/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/widewide/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/widewide/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/widewide/pck.ads ./gdb/testsuite/gdb.ada/widewide/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/widewide/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/widewide/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2011-2017 Free Software Foundation, Inc.
+--  Copyright 2011-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/widewide.exp ./gdb/testsuite/gdb.ada/widewide.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/widewide.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/widewide.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/win_fu_syms/foo.adb ./gdb/testsuite/gdb.ada/win_fu_syms/foo.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/win_fu_syms/foo.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/win_fu_syms/foo.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2013-2017 Free Software Foundation, Inc.
+--  Copyright 2013-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/win_fu_syms/pck.adb ./gdb/testsuite/gdb.ada/win_fu_syms/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/win_fu_syms/pck.adb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/win_fu_syms/pck.adb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/win_fu_syms/pck.ads ./gdb/testsuite/gdb.ada/win_fu_syms/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/win_fu_syms/pck.ads	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/win_fu_syms/pck.ads	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
---  Copyright 2007-2017 Free Software Foundation, Inc.
+--  Copyright 2007-2018 Free Software Foundation, Inc.
 --
 --  This program is free software; you can redistribute it and/or modify
 --  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/win_fu_syms.exp ./gdb/testsuite/gdb.ada/win_fu_syms.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.ada/win_fu_syms.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/win_fu_syms.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/aarch64-atomic-inst.c ./gdb/testsuite/gdb.arch/aarch64-atomic-inst.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/aarch64-atomic-inst.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/aarch64-atomic-inst.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/aarch64-atomic-inst.exp ./gdb/testsuite/gdb.arch/aarch64-atomic-inst.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/aarch64-atomic-inst.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/aarch64-atomic-inst.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 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
@@ -11,8 +11,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 # This file is part of the gdb testsuite.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/aarch64-fp.c ./gdb/testsuite/gdb.arch/aarch64-fp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/aarch64-fp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/aarch64-fp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/aarch64-fp.exp ./gdb/testsuite/gdb.arch/aarch64-fp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/aarch64-fp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/aarch64-fp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 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
@@ -11,8 +11,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 # This file is part of the gdb testsuite.
 
@@ -34,14 +33,7 @@ if ![runto_main] {
     return -1
 }
 
-set endianness "little"
-set test "show endian"
-gdb_test_multiple $test $test {
-    -re "(.* )(big|little)( endian.*)$gdb_prompt $" {
-        set endianness $expect_out(2,string)
-        pass "endianness"
-    }
-}
+set endianness [get_endianness]
 
 gdb_test "break ${srcfile}:[gdb_get_line_number "return"]" \
     "Breakpoint $decimal at 0x\[0-9a-fA-F\]+: file .*${srcfile}.*\\\." \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c ./gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,57 @@
+/* This file is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#include <stdint.h>
+
+struct s
+{
+  int i;
+};
+
+static void
+foo (void)
+{
+}
+
+int
+main (void)
+{
+  struct s s1;
+  struct s *sp1, *sp2;
+  int i = 1234;
+  int *p1, *p2;
+
+  s1.i = 1234;
+  sp1 = &s1;
+  p1 = &i;
+  /* SP1 and SP2 have different tags, but point to the same address.  */
+  sp2 = (struct s *) ((uintptr_t) sp1 | 0xf000000000000000ULL);
+  p2 = (int *) ((uintptr_t) p1 | 0xf000000000000000ULL);
+
+  void (*func_ptr) (void) = foo;
+  func_ptr = (void (*) (void)) ((uintptr_t) func_ptr | 0xf000000000000000ULL);
+  sp2->i = 4321; /* breakpoint here.  */
+
+  for (int i = 0; i < 2; i++)
+    {
+      foo ();
+      (*func_ptr) ();
+    }
+
+  sp1->i = 8765;
+  i = 1;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp ./gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,105 @@
+# Copyright 2017-2018 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.
+
+if {![is_aarch64_target]} {
+    verbose "Skipping ${gdb_test_file_name}."
+    return
+}
+
+standard_testfile
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
+    return -1
+}
+
+if ![runto_main] {
+    untested "could not run to main"
+    return -1
+}
+
+gdb_breakpoint [gdb_get_line_number "breakpoint here"]
+gdb_continue_to_breakpoint "breakpoint here"
+
+# Test that GDB manages caches correctly for tagged address.
+# Read from P2,
+gdb_test "x p2" "$hex:\[\t \]+0x000004d2"
+gdb_test_no_output "set variable i = 5678"
+# Test that *P2 is updated.
+gdb_test "x p2" "$hex:\[\t \]+0x0000162e"
+
+# Read from SP1->i,
+gdb_test "print sp1->i" " = 1234"
+# Write to SP2->i,
+gdb_test_no_output "set variable sp2->i = 5678"
+# Test that SP1->i is updated.
+gdb_test "print sp1->i" " = 5678"
+
+gdb_test "x/d &sp2->i" "$hex:\[\t \]+5678"
+gdb_test "x/d &sp1->i" "$hex:\[\t \]+5678"
+
+# Test that the same disassembly is got when disassembling function vs
+# tagged function pointer.
+set insn1 ""
+set insn2 ""
+set test "disassemble foo,+8"
+gdb_test_multiple $test $test {
+    -re ":\[\t \]+(\[a-z\]*)\[ \r\n\]+.*:\[\t \]+(\[a-z\]*).*$gdb_prompt $" {
+	set insn1 $expect_out(1,string)
+	set insn2 $expect_out(2,string)
+	pass $test
+    }
+}
+
+gdb_test "disassemble func_ptr,+8" \
+    ":\[\t \]+$insn1\[ \r\n\]+.*:\[\t \]+$insn2.*"
+
+foreach_with_prefix bptype {"hbreak" "break"} {
+
+    # Set a breakpoint on a tagged address, func_ptr,
+    gdb_test "$bptype *func_ptr" \
+	"warning: Breakpoint address adjusted from .*reakpoint $decimal at .*" \
+	"breakpoint at *func_ptr"
+    # Resume the program and expect it hits foo,
+    gdb_test "continue" \
+	"Continuing\\..*Breakpoint \[0-9\]+, foo \\(\\) at .*" \
+	"run until breakpoint set *func_ptr"
+    gdb_test "up" "foo \\(\\).*" "caller is foo"
+    delete_breakpoints
+
+    # Set a breakpoint on normal function, call it through tagged
+    # function pointer.
+    gdb_test "$bptype foo" "reakpoint $decimal at .*" \
+	"hardware breakpoint at foo"
+    gdb_test "continue" \
+	"Continuing\\..*Breakpoint \[0-9\]+, foo \\(\\) at .*" \
+	"run until breakpoint set foo"
+    gdb_test "up" "\\(\*func_ptr\\) \\(\\).*" "caller is *func_ptr"
+    delete_breakpoints
+}
+
+gdb_test "down"
+gdb_test "finish"
+# Watch on tagged pointer.
+gdb_test "watch *sp2"
+gdb_test "continue" \
+    "Continuing\\..*Hardware watchpoint \[0-9\]+.*" \
+    "run until watchpoint on s1"
+delete_breakpoints
+
+gdb_test "watch *p2"
+gdb_test "continue" \
+    "Continuing\\..*Hardware watchpoint \[0-9\]+.*" \
+    "run until watchpoint on i"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/alpha-step.c ./gdb/testsuite/gdb.arch/alpha-step.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/alpha-step.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/alpha-step.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2005-2017 Free Software Foundation, Inc.
+/* Copyright 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/alpha-step.exp ./gdb/testsuite/gdb.arch/alpha-step.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/alpha-step.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/alpha-step.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/altivec-abi.exp ./gdb/testsuite/gdb.arch/altivec-abi.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/altivec-abi.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/altivec-abi.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/altivec-regs.exp ./gdb/testsuite/gdb.arch/altivec-regs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/altivec-regs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/altivec-regs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2018 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
@@ -77,26 +77,16 @@ gdb_test "set \$vrsave = 1" "" ""
 
 gdb_test "next" "" ""
 
-set endianness ""
-set msg "detect endianness"
-gdb_test_multiple "show endian" "$msg" {
-    -re "(The target endianness is set automatically .currently )(big|little)( endian.*)$gdb_prompt $" {
-        pass "$msg"
-        set endianness $expect_out(2,string)
-    }
-    -re ".*$gdb_prompt $" {
-        fail "$msg"
-    }
-}
+set endianness [get_endianness]
 
 # And then read the AltiVec registers back, to see that
 # a) the register write above worked, and
 # b) the register read (below) also works.
 
 if {$endianness == "big"} {
-set vector_register ".uint128 = 0x00000001000000010000000100000001, v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0x1, 0x1, 0x1, 0x1., v8_int16 = .0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1., v16_int8 = .0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1.."
+set vector_register ".uint128 = 0x1000000010000000100000001, v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0x1, 0x1, 0x1, 0x1., v8_int16 = .0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1., v16_int8 = .0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1.."
 } else {
-set vector_register ".uint128 = 0x00000001000000010000000100000001, v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0x1, 0x1, 0x1, 0x1., v8_int16 = .0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0., v16_int8 = .0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0.."
+set vector_register ".uint128 = 0x1000000010000000100000001, v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0x1, 0x1, 0x1, 0x1., v8_int16 = .0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0., v16_int8 = .0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0.."
 }
 
 for {set i 0} {$i < 32} {incr i 1} {
@@ -113,9 +103,9 @@ gdb_test "info reg vscr" "vscr.*0x1\t1" 
 # the way gdb works.
 
 if {$endianness == "big"} {
-     set decimal_vector ".uint128 = 0x00000001000000010000000100000001, v4_float = .1.*e-45, 1.*e-45, 1.*e-45, 1.*e-45., v4_int32 = .1, 1, 1, 1., v8_int16 = .0, 1, 0, 1, 0, 1, 0, 1., v16_int8 = .0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1.."
+     set decimal_vector ".uint128 = 79228162532711081671548469249, v4_float = .1.*e-45, 1.*e-45, 1.*e-45, 1.*e-45., v4_int32 = .1, 1, 1, 1., v8_int16 = .0, 1, 0, 1, 0, 1, 0, 1., v16_int8 = .0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1.."
 } else {
-     set decimal_vector ".uint128 = 0x00000001000000010000000100000001, v4_float = .1.*e-45, 1.*e-45, 1.*e-45, 1.*e-45., v4_int32 = .1, 1, 1, 1., v8_int16 = .1, 0, 1, 0, 1, 0, 1, 0., v16_int8 = .1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.."
+     set decimal_vector ".uint128 = 79228162532711081671548469249, v4_float = .1.*e-45, 1.*e-45, 1.*e-45, 1.*e-45., v4_int32 = .1, 1, 1, 1., v8_int16 = .1, 0, 1, 0, 1, 0, 1, 0., v16_int8 = .1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.."
 }
 
 for {set i 0} {$i < 32} {incr i 1} {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-byte.exp ./gdb/testsuite/gdb.arch/amd64-byte.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-byte.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-byte.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp ./gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,139 @@
+# Copyright 2009-2018 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.
+
+# Test displaced stepping over VEX-encoded RIP-relative AVX
+# instructions.
+
+if { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
+    verbose "Skipping x86_64 displaced stepping tests."
+    return
+}
+
+standard_testfile .S
+
+set additional_flags "-Wa,-g"
+
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
+	  [list debug $additional_flags]] } {
+    return -1
+}
+
+# Get things started.
+
+gdb_test "set displaced-stepping on" ""
+gdb_test "show displaced-stepping" ".* displaced stepping .* is on.*"
+
+if ![runto_main] then {
+    fail "can't run to main"
+    return 0
+}
+
+# GDB picks a spare register from this list to hold the RIP-relative
+# address.
+set rip_regs { "rax" "rbx" "rcx" "rdx" "rbp" "rsi" "rdi" }
+
+# Assign VAL to all the RIP_REGS.
+
+proc set_regs { val } {
+    global gdb_prompt
+    global rip_regs
+
+    foreach reg ${rip_regs} {
+	gdb_test_no_output "set \$${reg} = ${val}"
+    }
+}
+
+# Verify all RIP_REGS print as HEX_VAL_RE in hex.
+
+proc verify_regs { hex_val_re } {
+    global rip_regs
+
+    foreach reg ${rip_regs} {
+	gdb_test "p /x \$${reg}" " = ${hex_val_re}" "${reg} expected value"
+    }
+}
+
+# Set a break at FUNC, which starts with a RIP-relative instruction
+# that we want to displaced-step over, and then continue over the
+# breakpoint, forcing a displaced-stepping sequence.
+
+proc disp_step_func { func } {
+    global srcfile
+
+    set test_start_label "${func}"
+    set test_end_label "${func}_end"
+
+    gdb_test "break ${test_start_label}" \
+	"Breakpoint.*at.* file .*$srcfile, line.*" \
+	"break ${test_start_label}"
+    gdb_test "break ${test_end_label}" \
+	"Breakpoint.*at.* file .*$srcfile, line.*" \
+	"break ${test_end_label}"
+
+    gdb_test "continue" \
+	"Continuing.*Breakpoint.*, ${test_start_label} ().*" \
+	"continue to ${test_start_label}"
+
+    # GDB picks a spare register to hold the RIP-relative address.
+    # Ensure the spare register value is restored properly (rax-rdi,
+    # sans rsp).
+    set value "0xdeadbeefd3adb33f"
+    set_regs $value
+
+    gdb_test "continue" \
+	"Continuing.*Breakpoint.*, ${test_end_label} ().*" \
+	"continue to ${test_end_label}"
+
+    verify_regs $value
+}
+
+# Test a VEX2-encoded RIP-relative instruction.
+with_test_prefix "vex2" {
+    # This case writes to the 'xmm0' register.  Confirm the register's
+    # value is what we believe it is before the AVX instruction runs.
+    gdb_test "p /x \$xmm0.uint128" " = 0x0" \
+	"xmm0 has expected value before"
+
+    disp_step_func "test_rip_vex2"
+
+    # Confirm the instruction's expected side effects.  It should have
+    # modified xmm0.
+    gdb_test "p /x \$xmm0.uint128" " = 0x1122334455667788" \
+	"xmm0 has expected value after"
+}
+
+# Test a VEX3-encoded RIP-relative instruction.
+with_test_prefix "vex3" {
+    # This case writes to the 'var128' variable.  Confirm the
+    # variable's value is what we believe it is before the AVX
+    # instruction runs.
+    gdb_test "p /x (unsigned long long \[2\]) var128" \
+	" = \\{0xaa55aa55aa55aa55, 0x55aa55aa55aa55aa\\}" \
+	"var128 has expected value before"
+
+    # Run the AVX instruction.
+    disp_step_func "test_rip_vex3"
+
+    # Confirm the instruction's expected side effects.  It should have
+    # modifed the 'var128' variable.
+    gdb_test "p /x (unsigned long long \[2\]) var128" \
+	" = \\{0x1122334455667788, 0x0\\}" \
+	"var128 has expected value after"
+}
+
+# Done, run program to exit.
+gdb_continue_to_end "amd64-disp-step-avx"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-disp-step-avx.S ./gdb/testsuite/gdb.arch/amd64-disp-step-avx.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-disp-step-avx.S	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-disp-step-avx.S	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,70 @@
+/* Copyright 2009-2018 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.
+
+   Test displaced stepping over VEX-encoded RIP-relative AVX
+   instructions.  */
+
+	.text
+
+	.global main
+main:
+	nop
+
+/***********************************************/
+
+/* Test a VEX2-encoded RIP-relative instruction.  */
+
+	.global test_rip_vex2
+test_rip_vex2:
+	vmovsd ro_var(%rip),%xmm0
+	.global test_rip_vex2
+test_rip_vex2_end:
+	nop
+
+/* Test a VEX3-encoded RIP-relative instruction.  */
+
+	.global test_rip_vex3
+test_rip_vex3:
+	vextractf128 $0x0,%ymm0,var128(%rip)
+	.global test_rip_vex3
+test_rip_vex3_end:
+	nop
+
+	/* skip over test data */
+	jmp done
+
+/* RIP-relative ro-data for VEX2 test above.  */
+
+ro_var:
+	.8byte 0x1122334455667788
+	.8byte 0x8877665544332211
+
+/***********************************************/
+
+/* All done.  */
+
+done:
+	mov $0,%rdi
+	call exit
+	hlt
+
+/* RIP-relative data for VEX3 test above.  */
+
+.data
+var128:
+	.8byte 0xaa55aa55aa55aa55
+	.8byte 0x55aa55aa55aa55aa
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-disp-step.exp ./gdb/testsuite/gdb.arch/amd64-disp-step.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-disp-step.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-disp-step.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-disp-step.S ./gdb/testsuite/gdb.arch/amd64-disp-step.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-disp-step.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-disp-step.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2009-2017 Free Software Foundation, Inc.
+/* Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-dword.exp ./gdb/testsuite/gdb.arch/amd64-dword.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-dword.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-dword.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value.cc ./gdb/testsuite/gdb.arch/amd64-entry-value.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value.exp ./gdb/testsuite/gdb.arch/amd64-entry-value.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-inline.c ./gdb/testsuite/gdb.arch/amd64-entry-value-inline.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-inline.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value-inline.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp ./gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-inline.S ./gdb/testsuite/gdb.arch/amd64-entry-value-inline.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-inline.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value-inline.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-param.c ./gdb/testsuite/gdb.arch/amd64-entry-value-param.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-param.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value-param.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c ./gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp ./gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S ./gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-param.exp ./gdb/testsuite/gdb.arch/amd64-entry-value-param.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-param.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value-param.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.cc ./gdb/testsuite/gdb.arch/amd64-entry-value-paramref.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value-paramref.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp ./gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.S ./gdb/testsuite/gdb.arch/amd64-entry-value-paramref.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value-paramref.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-param.S ./gdb/testsuite/gdb.arch/amd64-entry-value-param.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value-param.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value-param.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value.s ./gdb/testsuite/gdb.arch/amd64-entry-value.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-entry-value.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-entry-value.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-gs_base.c ./gdb/testsuite/gdb.arch/amd64-gs_base.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-gs_base.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-gs_base.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test program for fs_base and gs_base.
 
-   Copyright 2017 Free Software Foundation, Inc.
+   Copyright 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-gs_base.exp ./gdb/testsuite/gdb.arch/amd64-gs_base.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-gs_base.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-gs_base.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2017 Free Software Foundation, Inc.
+# Copyright 2017-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-i386-address.exp ./gdb/testsuite/gdb.arch/amd64-i386-address.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-i386-address.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-i386-address.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-i386-address.S ./gdb/testsuite/gdb.arch/amd64-i386-address.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-i386-address.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-i386-address.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2009-2017 Free Software Foundation, Inc.
+/* Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.c ./gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp ./gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.S ./gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.c ./gdb/testsuite/gdb.arch/amd64-invalid-stack-top.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-invalid-stack-top.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp ./gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-optimout-repeat.c ./gdb/testsuite/gdb.arch/amd64-optimout-repeat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-optimout-repeat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-optimout-repeat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp ./gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-optimout-repeat.S ./gdb/testsuite/gdb.arch/amd64-optimout-repeat.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-optimout-repeat.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-optimout-repeat.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-prologue-skip.exp ./gdb/testsuite/gdb.arch/amd64-prologue-skip.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-prologue-skip.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-prologue-skip.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-prologue-skip.S ./gdb/testsuite/gdb.arch/amd64-prologue-skip.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-prologue-skip.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-prologue-skip.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-prologue-xmm.c ./gdb/testsuite/gdb.arch/amd64-prologue-xmm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-prologue-xmm.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-prologue-xmm.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp ./gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-prologue-xmm.s ./gdb/testsuite/gdb.arch/amd64-prologue-xmm.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-prologue-xmm.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-prologue-xmm.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
       	
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-pseudo.c ./gdb/testsuite/gdb.arch/amd64-pseudo.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-pseudo.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-pseudo.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test program for byte registers.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.exp ./gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.S ./gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-special-operands.exp ./gdb/testsuite/gdb.arch/amd64-stap-special-operands.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-special-operands.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-stap-special-operands.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-three-arg-disp.c ./gdb/testsuite/gdb.arch/amd64-stap-three-arg-disp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-three-arg-disp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-stap-three-arg-disp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-triplet.c ./gdb/testsuite/gdb.arch/amd64-stap-triplet.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-triplet.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-stap-triplet.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-triplet.S ./gdb/testsuite/gdb.arch/amd64-stap-triplet.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-triplet.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-stap-triplet.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp ./gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S ./gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.cc ./gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.S ./gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.cc ./gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.S ./gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-cxx.exp ./gdb/testsuite/gdb.arch/amd64-tailcall-cxx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-cxx.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-tailcall-cxx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-noret.c ./gdb/testsuite/gdb.arch/amd64-tailcall-noret.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-noret.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-tailcall-noret.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-noret.exp ./gdb/testsuite/gdb.arch/amd64-tailcall-noret.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-noret.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-tailcall-noret.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-noret.S ./gdb/testsuite/gdb.arch/amd64-tailcall-noret.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-noret.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-tailcall-noret.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-ret.c ./gdb/testsuite/gdb.arch/amd64-tailcall-ret.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-ret.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-tailcall-ret.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-ret.exp ./gdb/testsuite/gdb.arch/amd64-tailcall-ret.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-ret.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-tailcall-ret.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-ret.S ./gdb/testsuite/gdb.arch/amd64-tailcall-ret.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-ret.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-tailcall-ret.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-self.c ./gdb/testsuite/gdb.arch/amd64-tailcall-self.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-self.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-tailcall-self.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-self.exp ./gdb/testsuite/gdb.arch/amd64-tailcall-self.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-self.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-tailcall-self.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-self.S ./gdb/testsuite/gdb.arch/amd64-tailcall-self.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-tailcall-self.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-tailcall-self.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-word.exp ./gdb/testsuite/gdb.arch/amd64-word.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/amd64-word.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/amd64-word.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arc-analyze-prologue.exp ./gdb/testsuite/gdb.arch/arc-analyze-prologue.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arc-analyze-prologue.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arc-analyze-prologue.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2017 Free Software Foundation, Inc.
+# Copyright 2017-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arc-analyze-prologue.S ./gdb/testsuite/gdb.arch/arc-analyze-prologue.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arc-analyze-prologue.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arc-analyze-prologue.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 ; This testcase is part of GDB, the GNU debugger.
 
-; Copyright 2017 Free Software Foundation, Inc.
+; Copyright 2017-2018 Free Software Foundation, Inc.
 
 ; This program is free software; you can redistribute it and/or modify
 ; it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arc-decode-insn.exp ./gdb/testsuite/gdb.arch/arc-decode-insn.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arc-decode-insn.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arc-decode-insn.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2017 Free Software Foundation, Inc.
+# Copyright 2017-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arc-decode-insn.S ./gdb/testsuite/gdb.arch/arc-decode-insn.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arc-decode-insn.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arc-decode-insn.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 ; This testcase is part of GDB, the GNU debugger.
 
-; Copyright 2017 Free Software Foundation, Inc.
+; Copyright 2017-2018 Free Software Foundation, Inc.
 
 ; This program is free software; you can redistribute it and/or modify
 ; it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arc-tdesc-cpu.exp ./gdb/testsuite/gdb.arch/arc-tdesc-cpu.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arc-tdesc-cpu.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arc-tdesc-cpu.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,48 @@
+# Copyright 2017-2018 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/>.
+
+if {[gdb_skip_xml_test]} {
+    unsupported "arc-tdesc-cpu.exp"
+    return -1
+}
+
+gdb_start
+
+# Test whether it is OK to have `arc:HS` in the target description
+# architecture.  `HS` is a valid BFD architecture name, however the
+# disassembler doesn't accept it as a CPU name.  This test checks that GDB
+# doesn't pass architecture from the target description directly to the
+# disassembler and instead uses one of the valid CPU names.
+
+gdb_test \
+    "set tdesc filename $srcdir/$subdir/arc-tdesc-cpu.xml" \
+    ".*" \
+    "set tdesc filename \$srcdir/$subdir/arc-tdesc-cpu.xml"
+
+# An error message is emitted by the disassembler, therefore it is not shown
+# unless the disassembler is actually invoked.  Address "0" is not invalid,
+# but that doesn't matter for this test case, because it is only the
+# disassembler error message that is interesting.
+set cmd "x /i 0"
+set msg "setting HS architecture"
+gdb_test_multiple $cmd $msg {
+    -re "Unrecognised disassembler CPU option: HS.*$gdb_prompt" {
+	fail $msg
+    }
+    -re "^$cmd\r\n\\s*$hex:\\s+Cannot access memory at address $hex\r\n$gdb_prompt"
+    {
+	pass $msg
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arc-tdesc-cpu.xml ./gdb/testsuite/gdb.arch/arc-tdesc-cpu.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arc-tdesc-cpu.xml	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arc-tdesc-cpu.xml	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,53 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2017-2018 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE target SYSTEM "gdb-target.dtd">
+<target>
+  <architecture>arc:HS</architecture>
+
+  <feature name="org.gnu.gdb.arc.core.v2">
+    <reg name="r0"  bitsize="32"/>
+    <reg name="r1"  bitsize="32"/>
+    <reg name="r2"  bitsize="32"/>
+    <reg name="r3"  bitsize="32"/>
+    <reg name="r4"  bitsize="32"/>
+    <reg name="r5"  bitsize="32"/>
+    <reg name="r6"  bitsize="32"/>
+    <reg name="r7"  bitsize="32"/>
+    <reg name="r8"  bitsize="32"/>
+    <reg name="r9"  bitsize="32"/>
+    <reg name="r10" bitsize="32"/>
+    <reg name="r11" bitsize="32"/>
+    <reg name="r12" bitsize="32"/>
+    <reg name="r13" bitsize="32"/>
+    <reg name="r14" bitsize="32"/>
+    <reg name="r15" bitsize="32"/>
+    <reg name="r16" bitsize="32"/>
+    <reg name="r17" bitsize="32"/>
+    <reg name="r18" bitsize="32"/>
+    <reg name="r19" bitsize="32"/>
+    <reg name="r20" bitsize="32"/>
+    <reg name="r21" bitsize="32"/>
+    <reg name="r22" bitsize="32"/>
+    <reg name="r23" bitsize="32"/>
+    <reg name="r24" bitsize="32"/>
+    <reg name="r25" bitsize="32"/>
+    <reg name="gp"  bitsize="32"/>
+    <reg name="fp"  bitsize="32"/>
+    <reg name="sp"  bitsize="32"/>
+    <reg name="ilink" bitsize="32"/>
+    <reg name="r30"   bitsize="32"/>
+    <reg name="blink" bitsize="32"/>
+    <reg name="lp_count" bitsize="32"/>
+    <reg name="pcl" bitsize="32"/>
+  </feature>
+
+  <feature name="org.gnu.gdb.arc.aux-minimal">
+    <reg name="pc"       bitsize="32"/>
+    <reg name="status32" bitsize="32"/>
+  </feature>
+</target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-bl-branch-dest.c ./gdb/testsuite/gdb.arch/arm-bl-branch-dest.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-bl-branch-dest.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arm-bl-branch-dest.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-bl-branch-dest.exp ./gdb/testsuite/gdb.arch/arm-bl-branch-dest.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-bl-branch-dest.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arm-bl-branch-dest.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-disassembler-options.exp ./gdb/testsuite/gdb.arch/arm-disassembler-options.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-disassembler-options.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arm-disassembler-options.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-disp-step.exp ./gdb/testsuite/gdb.arch/arm-disp-step.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-disp-step.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arm-disp-step.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-disp-step.S ./gdb/testsuite/gdb.arch/arm-disp-step.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-disp-step.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arm-disp-step.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2010-2017 Free Software Foundation, Inc.
+/* Copyright 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-neon.c ./gdb/testsuite/gdb.arch/arm-neon.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-neon.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arm-neon.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2015-2017 Free Software Foundation, Inc.
+/* Copyright 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-neon.exp ./gdb/testsuite/gdb.arch/arm-neon.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-neon.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arm-neon.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.c ./gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.exp ./gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/avr-flash-qualifier.c ./gdb/testsuite/gdb.arch/avr-flash-qualifier.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/avr-flash-qualifier.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/avr-flash-qualifier.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/avr-flash-qualifier.exp ./gdb/testsuite/gdb.arch/avr-flash-qualifier.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/avr-flash-qualifier.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/avr-flash-qualifier.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp ./gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/e500-abi.exp ./gdb/testsuite/gdb.arch/e500-abi.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/e500-abi.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/e500-abi.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/e500-prologue.c ./gdb/testsuite/gdb.arch/e500-prologue.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/e500-prologue.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/e500-prologue.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/e500-prologue.exp ./gdb/testsuite/gdb.arch/e500-prologue.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/e500-prologue.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/e500-prologue.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/e500-regs.exp ./gdb/testsuite/gdb.arch/e500-regs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/e500-regs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/e500-regs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 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
@@ -59,17 +59,7 @@ for {set i 0} {$i < 32} {incr i 1} {
 
 #gdb_test "next" "" ""
 
-send_gdb "show endian\n"
-gdb_expect {
-    -re "(The target endianness is set automatically .currently )(big|little)( endian.*)$gdb_prompt $" {
-        pass "endianness"
-	set endianness $expect_out(2,string)
-    }
-    -re ".*$gdb_prompt $" {
-	fail "couldn't get endianness"
-    }
-    timeout		{ fail "(timeout) endianness" }
-}
+set endianness [get_endianness]
 
 # And then read the E500 registers back, to see that
 # a) the register write above worked, and
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp ./gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/gdb1291.exp ./gdb/testsuite/gdb.arch/gdb1291.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/gdb1291.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/gdb1291.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/gdb1291.s ./gdb/testsuite/gdb.arch/gdb1291.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/gdb1291.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/gdb1291.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2004-2017 Free Software Foundation, Inc.
+! Copyright 2004-2018 Free Software Foundation, Inc.
 !
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/gdb1431.exp ./gdb/testsuite/gdb.arch/gdb1431.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/gdb1431.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/gdb1431.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/gdb1431.s ./gdb/testsuite/gdb.arch/gdb1431.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/gdb1431.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/gdb1431.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2004-2017 Free Software Foundation, Inc.
+! Copyright 2004-2018 Free Software Foundation, Inc.
 !
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/gdb1558.c ./gdb/testsuite/gdb.arch/gdb1558.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/gdb1558.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/gdb1558.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2004-2017 Free Software Foundation, Inc.
+/* Copyright 2004-2018 Free Software Foundation, Inc.
  
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/gdb1558.exp ./gdb/testsuite/gdb.arch/gdb1558.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/gdb1558.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/gdb1558.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-avx512.c ./gdb/testsuite/gdb.arch/i386-avx512.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-avx512.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-avx512.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test program for AVX 512 registers.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -127,44 +127,44 @@ move_k_data_to_memory (void)
 void
 move_zmm_data_to_reg (void)
 {
-  asm ("vmovaps 0(%0), %%zmm0\n\t"
-       "vmovaps 64(%0), %%zmm1\n\t"
-       "vmovaps 128(%0), %%zmm2\n\t"
-       "vmovaps 192(%0), %%zmm3\n\t"
-       "vmovaps 256(%0), %%zmm4\n\t"
-       "vmovaps 320(%0), %%zmm5\n\t"
-       "vmovaps 384(%0), %%zmm6\n\t"
-       "vmovaps 448(%0), %%zmm7\n\t"
+  asm ("vmovups 0(%0), %%zmm0 \n\t"
+       "vmovups 64(%0), %%zmm1 \n\t"
+       "vmovups 128(%0), %%zmm2 \n\t"
+       "vmovups 192(%0), %%zmm3 \n\t"
+       "vmovups 256(%0), %%zmm4 \n\t"
+       "vmovups 320(%0), %%zmm5 \n\t"
+       "vmovups 384(%0), %%zmm6 \n\t"
+       "vmovups 448(%0), %%zmm7 \n\t"
        : /* no output operands  */
        : "r" (zmm_data));
 #ifdef __x86_64__
-  asm ("vmovaps 512(%0), %%zmm8\n\t"
-       "vmovaps 576(%0), %%zmm9\n\t"
-       "vmovaps 640(%0), %%zmm10\n\t"
-       "vmovaps 704(%0), %%zmm11\n\t"
-       "vmovaps 768(%0), %%zmm12\n\t"
-       "vmovaps 832(%0), %%zmm13\n\t"
-       "vmovaps 896(%0), %%zmm14\n\t"
-       "vmovaps 960(%0), %%zmm15\n\t"
+  asm ("vmovups 512(%0), %%zmm8 \n\t"
+       "vmovups 576(%0), %%zmm9 \n\t"
+       "vmovups 640(%0), %%zmm10 \n\t"
+       "vmovups 704(%0), %%zmm11 \n\t"
+       "vmovups 768(%0), %%zmm12 \n\t"
+       "vmovups 832(%0), %%zmm13 \n\t"
+       "vmovups 896(%0), %%zmm14 \n\t"
+       "vmovups 960(%0), %%zmm15 \n\t"
        : /* no output operands  */
        : "r" (zmm_data));
 
-  asm ("vmovaps 1024(%0), %%zmm16\n\t"
-       "vmovaps 1088(%0), %%zmm17\n\t"
-       "vmovaps 1152(%0), %%zmm18\n\t"
-       "vmovaps 1216(%0), %%zmm19\n\t"
-       "vmovaps 1280(%0), %%zmm20\n\t"
-       "vmovaps 1344(%0), %%zmm21\n\t"
-       "vmovaps 1408(%0), %%zmm22\n\t"
-       "vmovaps 1472(%0), %%zmm23\n\t"
-       "vmovaps 1536(%0), %%zmm24\n\t"
-       "vmovaps 1600(%0), %%zmm25\n\t"
-       "vmovaps 1664(%0), %%zmm26\n\t"
-       "vmovaps 1728(%0), %%zmm27\n\t"
-       "vmovaps 1792(%0), %%zmm28\n\t"
-       "vmovaps 1856(%0), %%zmm29\n\t"
-       "vmovaps 1920(%0), %%zmm30\n\t"
-       "vmovaps 1984(%0), %%zmm31\n\t"
+  asm ("vmovups 1024(%0), %%zmm16 \n\t"
+       "vmovups 1088(%0), %%zmm17 \n\t"
+       "vmovups 1152(%0), %%zmm18 \n\t"
+       "vmovups 1216(%0), %%zmm19 \n\t"
+       "vmovups 1280(%0), %%zmm20 \n\t"
+       "vmovups 1344(%0), %%zmm21 \n\t"
+       "vmovups 1408(%0), %%zmm22 \n\t"
+       "vmovups 1472(%0), %%zmm23 \n\t"
+       "vmovups 1536(%0), %%zmm24 \n\t"
+       "vmovups 1600(%0), %%zmm25 \n\t"
+       "vmovups 1664(%0), %%zmm26 \n\t"
+       "vmovups 1728(%0), %%zmm27 \n\t"
+       "vmovups 1792(%0), %%zmm28 \n\t"
+       "vmovups 1856(%0), %%zmm29 \n\t"
+       "vmovups 1920(%0), %%zmm30 \n\t"
+       "vmovups 1984(%0), %%zmm31 \n\t"
        : /* no output operands  */
        : "r" (zmm_data));
 #endif
@@ -173,44 +173,44 @@ move_zmm_data_to_reg (void)
 void
 move_zmm_data_to_memory (void)
 {
-  asm ("vmovaps %%zmm0, 0(%0)\n\t"
-       "vmovaps %%zmm1, 64(%0)\n\t"
-       "vmovaps %%zmm2, 128(%0)\n\t"
-       "vmovaps %%zmm3, 192(%0)\n\t"
-       "vmovaps %%zmm4, 256(%0)\n\t"
-       "vmovaps %%zmm5, 320(%0)\n\t"
-       "vmovaps %%zmm6, 384(%0)\n\t"
-       "vmovaps %%zmm7, 448(%0)\n\t"
+  asm ("vmovups %%zmm0, 0(%0)\n\t"
+       "vmovups %%zmm1, 64(%0)\n\t"
+       "vmovups %%zmm2, 128(%0)\n\t"
+       "vmovups %%zmm3, 192(%0)\n\t"
+       "vmovups %%zmm4, 256(%0)\n\t"
+       "vmovups %%zmm5, 320(%0)\n\t"
+       "vmovups %%zmm6, 384(%0)\n\t"
+       "vmovups %%zmm7, 448(%0)\n\t"
        : /* no output operands  */
        : "r" (zmm_data));
 #ifdef __x86_64__
-  asm ("vmovaps %%zmm8, 512(%0)\n\t"
-       "vmovaps %%zmm9, 576(%0)\n\t"
-       "vmovaps %%zmm10, 640(%0)\n\t"
-       "vmovaps %%zmm11, 704(%0)\n\t"
-       "vmovaps %%zmm12, 768(%0)\n\t"
-       "vmovaps %%zmm13, 832(%0)\n\t"
-       "vmovaps %%zmm14, 896(%0)\n\t"
-       "vmovaps %%zmm15, 960(%0)\n\t"
+  asm ("vmovups %%zmm8, 512(%0)\n\t"
+       "vmovups %%zmm9, 576(%0)\n\t"
+       "vmovups %%zmm10, 640(%0)\n\t"
+       "vmovups %%zmm11, 704(%0)\n\t"
+       "vmovups %%zmm12, 768(%0)\n\t"
+       "vmovups %%zmm13, 832(%0)\n\t"
+       "vmovups %%zmm14, 896(%0)\n\t"
+       "vmovups %%zmm15, 960(%0)\n\t"
        : /* no output operands  */
        : "r" (zmm_data));
 
-  asm ("vmovaps %%zmm16, 1024(%0)\n\t"
-       "vmovaps %%zmm17, 1088(%0)\n\t"
-       "vmovaps %%zmm18, 1152(%0)\n\t"
-       "vmovaps %%zmm19, 1216(%0)\n\t"
-       "vmovaps %%zmm20, 1280(%0)\n\t"
-       "vmovaps %%zmm21, 1344(%0)\n\t"
-       "vmovaps %%zmm22, 1408(%0)\n\t"
-       "vmovaps %%zmm23, 1472(%0)\n\t"
-       "vmovaps %%zmm24, 1536(%0)\n\t"
-       "vmovaps %%zmm25, 1600(%0)\n\t"
-       "vmovaps %%zmm26, 1664(%0)\n\t"
-       "vmovaps %%zmm27, 1728(%0)\n\t"
-       "vmovaps %%zmm28, 1792(%0)\n\t"
-       "vmovaps %%zmm29, 1856(%0)\n\t"
-       "vmovaps %%zmm30, 1920(%0)\n\t"
-       "vmovaps %%zmm31, 1984(%0)\n\t"
+  asm ("vmovups %%zmm16, 1024(%0)\n\t"
+       "vmovups %%zmm17, 1088(%0)\n\t"
+       "vmovups %%zmm18, 1152(%0)\n\t"
+       "vmovups %%zmm19, 1216(%0)\n\t"
+       "vmovups %%zmm20, 1280(%0)\n\t"
+       "vmovups %%zmm21, 1344(%0)\n\t"
+       "vmovups %%zmm22, 1408(%0)\n\t"
+       "vmovups %%zmm23, 1472(%0)\n\t"
+       "vmovups %%zmm24, 1536(%0)\n\t"
+       "vmovups %%zmm25, 1600(%0)\n\t"
+       "vmovups %%zmm26, 1664(%0)\n\t"
+       "vmovups %%zmm27, 1728(%0)\n\t"
+       "vmovups %%zmm28, 1792(%0)\n\t"
+       "vmovups %%zmm29, 1856(%0)\n\t"
+       "vmovups %%zmm30, 1920(%0)\n\t"
+       "vmovups %%zmm31, 1984(%0)\n\t"
        : /* no output operands  */
        : "r" (zmm_data));
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-avx512.exp ./gdb/testsuite/gdb.arch/i386-avx512.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-avx512.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-avx512.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-avx.c ./gdb/testsuite/gdb.arch/i386-avx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-avx.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-avx.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test program for AVX registers.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-avx.exp ./gdb/testsuite/gdb.arch/i386-avx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-avx.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-avx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 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
@@ -97,3 +97,28 @@ for { set r 0 } { $r < $nr_regs } { incr
         ".. = \\{f = \\{[expr $r + 10], $r.125, $r.25, $r.375, $r.5, $r.625, $r.75, $r.875\\}\\}.*" \
         "check contents of data\[$r\]"
 }
+
+# If testing with a remote protocol target, check that we can
+# force-disable the use of XML descriptions.  This should make the
+# client/server fallback to the pre-XML register file.
+
+with_test_prefix "force-disable xml descriptions" {
+    if {[target_info gdb_protocol] == "remote"
+	|| [target_info gdb_protocol] == "extended-remote"} {
+
+	save_vars { GDBFLAGS } {
+	    append GDBFLAGS " -ex \"set remote target-features-packet off\""
+	    clean_restart ${binfile}
+	}
+
+	if ![runto_main] then {
+	    fail "run to main"
+	    return
+	}
+
+	# With qXfer:features:read disabled, we won't know anything
+	# about YMM registers.
+	gdb_test "print \$ymm0" " = void"
+	gdb_test "print \$xmm0" "v4_float.*"
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-biarch-core.exp ./gdb/testsuite/gdb.arch/i386-biarch-core.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-biarch-core.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-biarch-core.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-bp_permanent.c ./gdb/testsuite/gdb.arch/i386-bp_permanent.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-bp_permanent.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-bp_permanent.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-bp_permanent.exp ./gdb/testsuite/gdb.arch/i386-bp_permanent.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-bp_permanent.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-bp_permanent.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-byte.exp ./gdb/testsuite/gdb.arch/i386-byte.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-byte.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-byte.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-cfi-notcurrent.exp ./gdb/testsuite/gdb.arch/i386-cfi-notcurrent.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-cfi-notcurrent.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-cfi-notcurrent.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-cfi-notcurrent.S ./gdb/testsuite/gdb.arch/i386-cfi-notcurrent.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-cfi-notcurrent.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-cfi-notcurrent.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-disp-step.exp ./gdb/testsuite/gdb.arch/i386-disp-step.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-disp-step.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-disp-step.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-disp-step.S ./gdb/testsuite/gdb.arch/i386-disp-step.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-disp-step.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-disp-step.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2009-2017 Free Software Foundation, Inc.
+/* Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-dr3-watch.c ./gdb/testsuite/gdb.arch/i386-dr3-watch.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-dr3-watch.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-dr3-watch.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2011-2017 Free Software Foundation, Inc.
+/* Copyright 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-dr3-watch.exp ./gdb/testsuite/gdb.arch/i386-dr3-watch.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-dr3-watch.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-dr3-watch.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-float.exp ./gdb/testsuite/gdb.arch/i386-float.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-float.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-float.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-float.S ./gdb/testsuite/gdb.arch/i386-float.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-float.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-float.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2009-2017 Free Software Foundation, Inc.
+/* Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S ./gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2007-2017 Free Software Foundation, Inc.
+/* Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-gnu-cfi.c ./gdb/testsuite/gdb.arch/i386-gnu-cfi.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-gnu-cfi.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-gnu-cfi.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Unwinding of DW_CFA_GNU_negative_offset_extended test program.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp ./gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-gnu-cfi.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx.c ./gdb/testsuite/gdb.arch/i386-mpx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-mpx.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test program for MPX registers.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-call.c ./gdb/testsuite/gdb.arch/i386-mpx-call.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-call.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-mpx-call.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test for inferior function calls MPX context.
 
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-call.exp ./gdb/testsuite/gdb.arch/i386-mpx-call.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-call.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-mpx-call.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2017 Free Software Foundation, Inc.
+# Copyright (C) 2017-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx.exp ./gdb/testsuite/gdb.arch/i386-mpx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-mpx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <walfred.tedeschi@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-map.c ./gdb/testsuite/gdb.arch/i386-mpx-map.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-map.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-mpx-map.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test program for MPX map allocated bounds.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <walfred.tedeschi@intel.com>
 			      <mircea.gherzan@intel.com>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-map.exp ./gdb/testsuite/gdb.arch/i386-mpx-map.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-map.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-mpx-map.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <walfred.tedeschi@intel.com>,
 #                            <mircea.gherzan@intel.com>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-sigsegv.c ./gdb/testsuite/gdb.arch/i386-mpx-sigsegv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-sigsegv.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-mpx-sigsegv.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <walfred.tedeschi@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp ./gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <walfred.tedeschi@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-simple_segv.c ./gdb/testsuite/gdb.arch/i386-mpx-simple_segv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-simple_segv.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-mpx-simple_segv.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <walfred.tedeschi@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp ./gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp.  <walfred.tedeschi@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-permbkpt.exp ./gdb/testsuite/gdb.arch/i386-permbkpt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-permbkpt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-permbkpt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-permbkpt.S ./gdb/testsuite/gdb.arch/i386-permbkpt.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-permbkpt.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-permbkpt.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2009-2017 Free Software Foundation, Inc.
+/* Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-pkru.c ./gdb/testsuite/gdb.arch/i386-pkru.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-pkru.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-pkru.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test program for PKEYS registers.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-pkru.exp ./gdb/testsuite/gdb.arch/i386-pkru.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-pkru.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-pkru.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-prologue.c ./gdb/testsuite/gdb.arch/i386-prologue.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-prologue.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-prologue.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Unwinder test program.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-prologue.exp ./gdb/testsuite/gdb.arch/i386-prologue.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-prologue.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-prologue.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-pseudo.c ./gdb/testsuite/gdb.arch/i386-pseudo.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-pseudo.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-pseudo.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test program for byte registers.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-signal.c ./gdb/testsuite/gdb.arch/i386-signal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-signal.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-signal.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Unwinder test program for signal frames.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-signal.exp ./gdb/testsuite/gdb.arch/i386-signal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-signal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-signal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This file is part of the GDB testsuite.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-size.c ./gdb/testsuite/gdb.arch/i386-size.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-size.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-size.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Symbol size test program.
 
-   Copyright 2006-2017 Free Software Foundation, Inc.
+   Copyright 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-size.exp ./gdb/testsuite/gdb.arch/i386-size.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-size.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-size.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-size-overlap.c ./gdb/testsuite/gdb.arch/i386-size-overlap.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-size-overlap.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-size-overlap.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Overlapping symbol sizes test program.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-size-overlap.exp ./gdb/testsuite/gdb.arch/i386-size-overlap.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-size-overlap.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-size-overlap.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-sse.c ./gdb/testsuite/gdb.arch/i386-sse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-sse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-sse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test program for SSE registers.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-sse.exp ./gdb/testsuite/gdb.arch/i386-sse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-sse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-sse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-sse-stack-align.c ./gdb/testsuite/gdb.arch/i386-sse-stack-align.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-sse-stack-align.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-sse-stack-align.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp ./gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-sse-stack-align.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
@@ -43,7 +43,7 @@ if ![runto_main] then {
 
 set args ""
 foreach i {0 1 2 3 4} {
-    set test "print g$i ($args)"
+    set test "print (int) g$i ($args)"
     gdb_test_multiple $test $test {
 	-re " = 2\r\n$gdb_prompt $" {
 	    pass $test
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-sse-stack-align.S ./gdb/testsuite/gdb.arch/i386-sse-stack-align.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-sse-stack-align.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-sse-stack-align.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.c ./gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.exp ./gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.S ./gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-unwind.c ./gdb/testsuite/gdb.arch/i386-unwind.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-unwind.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-unwind.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Unwinder test program.
 
-   Copyright 2003-2017 Free Software Foundation, Inc.
+   Copyright 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-unwind.exp ./gdb/testsuite/gdb.arch/i386-unwind.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-unwind.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-unwind.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-word.exp ./gdb/testsuite/gdb.arch/i386-word.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/i386-word.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-word.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp ./gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.S ./gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2009-2017 Free Software Foundation, Inc.
+/* Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/insn-reloc.c ./gdb/testsuite/gdb.arch/insn-reloc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/insn-reloc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/insn-reloc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 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
@@ -508,7 +508,8 @@ can_relocate_bl (void)
 {
   asm ("set_point11:\n"
        "  bl foo\n"
-       "  bl pass\n"); /* Test that LR is updated correctly.  */
+       "  bl pass\n"
+       : : : "x30"); /* Test that LR is updated correctly.  */
 }
 
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/iwmmxt-regs.c ./gdb/testsuite/gdb.arch/iwmmxt-regs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/iwmmxt-regs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/iwmmxt-regs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Register test program.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/iwmmxt-regs.exp ./gdb/testsuite/gdb.arch/iwmmxt-regs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/iwmmxt-regs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/iwmmxt-regs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks.exp ./gdb/testsuite/gdb.arch/mips16-thunks.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/mips16-thunks.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks-inmain.c ./gdb/testsuite/gdb.arch/mips16-thunks-inmain.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks-inmain.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/mips16-thunks-inmain.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks-main.c ./gdb/testsuite/gdb.arch/mips16-thunks-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/mips16-thunks-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks-sin.c ./gdb/testsuite/gdb.arch/mips16-thunks-sin.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks-sin.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/mips16-thunks-sin.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks-sinfrob16.c ./gdb/testsuite/gdb.arch/mips16-thunks-sinfrob16.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks-sinfrob16.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/mips16-thunks-sinfrob16.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks-sinfrob.c ./gdb/testsuite/gdb.arch/mips16-thunks-sinfrob.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks-sinfrob.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/mips16-thunks-sinfrob.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks-sinmain.c ./gdb/testsuite/gdb.arch/mips16-thunks-sinmain.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks-sinmain.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/mips16-thunks-sinmain.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks-sinmips16.c ./gdb/testsuite/gdb.arch/mips16-thunks-sinmips16.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips16-thunks-sinmips16.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/mips16-thunks-sinmips16.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips-fcr.c ./gdb/testsuite/gdb.arch/mips-fcr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips-fcr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/mips-fcr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips-fcr.exp ./gdb/testsuite/gdb.arch/mips-fcr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips-fcr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/mips-fcr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips-octeon-bbit.exp ./gdb/testsuite/gdb.arch/mips-octeon-bbit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/mips-octeon-bbit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/mips-octeon-bbit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/pa-nullify.exp ./gdb/testsuite/gdb.arch/pa-nullify.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/pa-nullify.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/pa-nullify.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-aix-prologue.c ./gdb/testsuite/gdb.arch/powerpc-aix-prologue.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-aix-prologue.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-aix-prologue.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp ./gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-altivec2.exp ./gdb/testsuite/gdb.arch/powerpc-altivec2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-altivec2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-altivec2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-altivec2.s ./gdb/testsuite/gdb.arch/powerpc-altivec2.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-altivec2.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-altivec2.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-altivec3.exp ./gdb/testsuite/gdb.arch/powerpc-altivec3.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-altivec3.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-altivec3.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-altivec3.s ./gdb/testsuite/gdb.arch/powerpc-altivec3.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-altivec3.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-altivec3.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-altivec.exp ./gdb/testsuite/gdb.arch/powerpc-altivec.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-altivec.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-altivec.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-altivec.s ./gdb/testsuite/gdb.arch/powerpc-altivec.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-altivec.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-altivec.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-d128-regs.c ./gdb/testsuite/gdb.arch/powerpc-d128-regs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-d128-regs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-d128-regs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp ./gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-d128-regs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-disassembler-options.exp ./gdb/testsuite/gdb.arch/powerpc-disassembler-options.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-disassembler-options.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-disassembler-options.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-power7.exp ./gdb/testsuite/gdb.arch/powerpc-power7.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-power7.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-power7.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-power7.s ./gdb/testsuite/gdb.arch/powerpc-power7.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-power7.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-power7.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-power8.exp ./gdb/testsuite/gdb.arch/powerpc-power8.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-power8.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-power8.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-power8.s ./gdb/testsuite/gdb.arch/powerpc-power8.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-power8.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-power8.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-power9.exp ./gdb/testsuite/gdb.arch/powerpc-power9.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-power9.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-power9.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 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
@@ -364,8 +364,8 @@ func_check "xscvhpdp vs40,vs50"
 func_check "xscvdphp vs41,vs51"
 func_check "xvcvhpsp vs42,vs52"
 func_check "xvcvsphp vs43,vs53"
-func_check "addpcis r3,0"
-func_check "addpcis r3,0"
+func_check "lnia    r3"
+func_check "lnia    r3"
 func_check "addpcis r4,1"
 func_check "addpcis r4,1"
 func_check "addpcis r5,-2"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-power9.s ./gdb/testsuite/gdb.arch/powerpc-power9.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-power9.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-power9.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 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
@@ -321,7 +321,7 @@ func:
 	.long  0xf1319d6f    /* xscvdphp vs41,vs51         */
 	.long  0xf158a76f    /* xvcvhpsp vs42,vs52         */
 	.long  0xf179af6f    /* xvcvsphp vs43,vs53         */
-	.long  0x4c600004    /* addpcis r3,0               */
+	.long  0x4c600004    /* lnia r3                    */
 	.long  0x4c600004    /* addpcis r3,0               */
 	.long  0x4c800005    /* addpcis r4,1               */
 	.long  0x4c800005    /* addpcis r4,1               */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-prologue.c ./gdb/testsuite/gdb.arch/powerpc-prologue.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-prologue.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-prologue.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Unwinder test program.
 
-   Copyright 2006-2017 Free Software Foundation, Inc.
+   Copyright 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-prologue.exp ./gdb/testsuite/gdb.arch/powerpc-prologue.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-prologue.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-prologue.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-stackless.exp ./gdb/testsuite/gdb.arch/powerpc-stackless.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-stackless.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-stackless.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-stackless.S ./gdb/testsuite/gdb.arch/powerpc-stackless.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-stackless.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-stackless.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-vsx2.exp ./gdb/testsuite/gdb.arch/powerpc-vsx2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-vsx2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-vsx2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-vsx2.s ./gdb/testsuite/gdb.arch/powerpc-vsx2.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-vsx2.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-vsx2.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-vsx3.exp ./gdb/testsuite/gdb.arch/powerpc-vsx3.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-vsx3.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-vsx3.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-vsx3.s ./gdb/testsuite/gdb.arch/powerpc-vsx3.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-vsx3.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-vsx3.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-vsx.exp ./gdb/testsuite/gdb.arch/powerpc-vsx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-vsx.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-vsx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-vsx.s ./gdb/testsuite/gdb.arch/powerpc-vsx.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/powerpc-vsx.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/powerpc-vsx.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc64-atomic-inst.exp ./gdb/testsuite/gdb.arch/ppc64-atomic-inst.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc64-atomic-inst.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ppc64-atomic-inst.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 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
@@ -11,8 +11,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 # This file is part of the gdb testsuite.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc64-atomic-inst.S ./gdb/testsuite/gdb.arch/ppc64-atomic-inst.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc64-atomic-inst.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ppc64-atomic-inst.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.c ./gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2017 Free Software Foundation, Inc.
+/* Copyright 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.exp ./gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2017 Free Software Foundation, Inc.
+# Copyright 2017-2018 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
@@ -11,8 +11,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 # This file is part of the gdb testsuite.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.S ./gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file is part of GDB, the GNU debugger.
 
-   Copyright 2017 Free Software Foundation, Inc.
+   Copyright 2017-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp ./gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc-dfp.c ./gdb/testsuite/gdb.arch/ppc-dfp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc-dfp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ppc-dfp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2008-2017 Free Software Foundation, Inc.
+/* Copyright 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc-dfp.exp ./gdb/testsuite/gdb.arch/ppc-dfp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc-dfp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ppc-dfp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc-fp.c ./gdb/testsuite/gdb.arch/ppc-fp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc-fp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ppc-fp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2008-2017 Free Software Foundation, Inc.
+/* Copyright 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc-fp.exp ./gdb/testsuite/gdb.arch/ppc-fp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc-fp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ppc-fp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc-longdouble.c ./gdb/testsuite/gdb.arch/ppc-longdouble.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc-longdouble.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ppc-longdouble.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,38 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+long double ld;
+__float128 float128;
+__ibm128 ibm128;
+
+/* FIXME: GCC will only emit a .gnu.attribute section specifying the
+   long double ABI if long double is used in a function prototype.  */
+void test (long double x)
+{
+}
+
+int main()
+{
+  ld = 1.375l;
+  float128 = 2.375l;
+  ibm128 = 3.375l;
+
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc-longdouble.exp ./gdb/testsuite/gdb.arch/ppc-longdouble.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/ppc-longdouble.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/ppc-longdouble.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,58 @@
+# Copyright 2016-2018 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/>.
+
+if ![istarget "powerpc*"] then {
+    verbose "Skipping powerpc long-double floating point tests."
+    return
+}
+
+standard_testfile
+
+proc do_test { name {opts {}} } {
+    global srcdir subdir srcfile binfile
+    set ccopts {debug quiet}
+    foreach opt $opts {lappend ccopts "additional_flags=$opt"}
+    set lines [gdb_compile "${srcdir}/${subdir}/${srcfile}" "$binfile.$name" executable $ccopts]
+    # We get this warning even with the nowarnings option ...
+    regsub -all "(^|\n)\[^\n\]*using \[^\n\]* extended precision long double" $lines "" lines
+    if { $lines != "" } then {
+        return
+    }
+
+    clean_restart ${binfile}.${name}
+
+    if ![runto_main] then {
+        return
+    }
+
+    # Run to the breakpoint at return.
+    gdb_breakpoint [gdb_get_line_number "return"]
+    gdb_continue_to_breakpoint "return"
+
+    # Print the value of ld
+    gdb_test "print ld" ".* = 1\\.375.*" "the value of ld is 1.375 ($name)"
+    # Print the value of float128
+    gdb_test "print float128" ".* = 2\\.375.*" "the value of float128 is 2.375 ($name)"
+    # Print the value of ibm128
+    gdb_test "print ibm128" ".* = 3\\.375.*" "the value of ibm128 is 3.375 ($name)"
+}
+
+# Verify that we correctly detect the floating-point format used for
+# long double.  Re-run the test with -mabi=ieeelongdouble and mabi=ibmlongdouble
+
+do_test default { -mfloat128 }
+do_test ieee128 { -mfloat128 -mabi=ieeelongdouble }
+do_test ibm128 { -mfloat128 -mabi=ibmlongdouble }
+
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-disassembler-options.exp ./gdb/testsuite/gdb.arch/s390-disassembler-options.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-disassembler-options.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/s390-disassembler-options.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-multiarch.c ./gdb/testsuite/gdb.arch/s390-multiarch.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-multiarch.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/s390-multiarch.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2013-2017 Free Software Foundation, Inc.
+/* Copyright 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-multiarch.exp ./gdb/testsuite/gdb.arch/s390-multiarch.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-multiarch.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/s390-multiarch.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-stackless.exp ./gdb/testsuite/gdb.arch/s390-stackless.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-stackless.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/s390-stackless.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-stackless.S ./gdb/testsuite/gdb.arch/s390-stackless.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-stackless.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/s390-stackless.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2015-2017 Free Software Foundation, Inc.
+/* Copyright 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-tdbregs.c ./gdb/testsuite/gdb.arch/s390-tdbregs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-tdbregs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/s390-tdbregs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2008-2017 Free Software Foundation, Inc.
+/* Copyright 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-tdbregs.exp ./gdb/testsuite/gdb.arch/s390-tdbregs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-tdbregs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/s390-tdbregs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-vregs.exp ./gdb/testsuite/gdb.arch/s390-vregs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-vregs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/s390-vregs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
@@ -146,12 +146,21 @@ if { $i != 32 } {
 gdb_continue_to_breakpoint "change vrs"
 set vregs [capture_command_output "info registers vector" ""]
 
+# Format a 128-bit value, given individual 4-byte values, as hex.
+# Suppress leading zeros.
+proc hex128 {a_high a_low b_high b_low} {
+    set result [format "%x%08x%08x%08x" $a_high $a_low $b_high $b_low]
+    regsub -- "^0*" $result "" result
+    if { $result eq "" } { set result 0 }
+    return $result
+}
+
 set j 1
 foreach {- r i val} [regexp -all -inline -line \
 			 {^(\D*)(\d+)\s+.*?uint128 = 0x([0-9a-f]+?)} $vregs] {
     if { $r ne "v" } {
 	fail "info registers vector: bad line $j"
-    } elseif { $val ne [format %08x%08x%08x%08x \
+    } elseif { $val ne [hex128 \
 			    [expr $a_high * ($i + 1) * $a_high ] \
 			    [expr $a_low * ($i + 1) * $a_low ] \
 			    [expr $b_high * (32 - $i) * $b_high * 32] \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-vregs.S ./gdb/testsuite/gdb.arch/s390-vregs.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/s390-vregs.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/s390-vregs.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2015-2017 Free Software Foundation, Inc.
+/* Copyright 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/sparc64-adi.c ./gdb/testsuite/gdb.arch/sparc64-adi.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/sparc64-adi.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/sparc64-adi.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,145 @@
+/* Application Data Integrity (ADI) test in sparc64.
+
+   Copyright 2017-2018 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 <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <pthread.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <sys/errno.h>
+#include <sys/utsname.h>
+#include <sys/param.h>
+#include <malloc.h>
+#include <string.h>
+#include <signal.h>
+#include <sys/shm.h>
+#include <errno.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <poll.h>
+#include <setjmp.h>
+#include "adi.h"
+
+#define	ONEKB		1024
+#define PAT 		0xdeadbeaf
+
+#define MAPSIZE 8192
+#define SHMSIZE 102400
+#ifndef PROT_ADI
+#define PROT_ADI 0x10
+#endif
+
+static int
+memory_fill (char *addr, size_t size, int pattern)
+{
+  long *aligned_addr = (long *) addr;
+  long i;
+  for (i = 0; i < size / sizeof (long); i += ONEKB) 
+    { 
+      *aligned_addr = pattern; 
+      aligned_addr = aligned_addr + ONEKB;
+    }
+  return (0);
+}
+
+int main ()
+{
+  char *haddr;
+  caddr_t vaddr;
+  int	version;
+
+  /* Test ISM. */
+  int shmid = shmget (IPC_PRIVATE, SHMSIZE, IPC_CREAT | 0666);
+  if (shmid == -1) 
+    exit(1);
+  char *shmaddr = (char *)shmat (shmid, NULL, 0x666 | SHM_RND);
+  if (shmaddr == (char *)-1) 
+    { 
+      shmctl (shmid, IPC_RMID, NULL); 
+      exit(1);
+    }
+  /* Enable ADI on ISM segment. */
+  if (mprotect (shmaddr, SHMSIZE, PROT_READ|PROT_WRITE|PROT_ADI)) 
+    { 
+      perror ("mprotect failed"); 
+      goto err_out; 
+    }
+  if (memory_fill (shmaddr, SHMSIZE, PAT) != 0) /* line breakpoint here */
+    {
+      exit(1); 
+    }
+  adi_clr_version (shmaddr, SHMSIZE);
+  caddr_t vshmaddr = adi_set_version (shmaddr, SHMSIZE, 0x8);
+  if (vshmaddr == 0) 
+    exit(1);
+  /* Test mmap. */ 
+  int fd = open ("/dev/zero", O_RDWR);
+  if (fd < 0)
+    exit(1);
+  char *maddr = (char *)mmap (NULL, MAPSIZE, PROT_READ|PROT_WRITE, 
+                              MAP_PRIVATE, fd, 0);
+  if (maddr == (char *)-1) 
+    exit(1); 
+  /* Enable ADI. */
+  if (mprotect (shmaddr, MAPSIZE, PROT_READ|PROT_WRITE|PROT_ADI)) 
+    { 
+      perror ("mprotect failed"); 
+      goto err_out;
+   
+    }
+  if (memory_fill (maddr, MAPSIZE, PAT) != 0) 
+    exit(1); 
+  caddr_t vmaddr = adi_set_version (maddr, MAPSIZE, 0x8);
+
+  /* Test heap. */
+  haddr = (char*) memalign (MAPSIZE, MAPSIZE);
+  /* Enable ADI. */
+  if (mprotect (shmaddr, MAPSIZE, PROT_READ|PROT_WRITE|PROT_ADI)) 
+    { 
+      perror ("mprotect failed"); 
+      goto err_out;
+    }
+
+  if (memory_fill (haddr, MAPSIZE, PAT) != 0) 
+    exit(1);
+  adi_clr_version (haddr, MAPSIZE);
+  /* Set some ADP version number. */
+  caddr_t vaddr1, vaddr2, vaddr3, vaddr4;
+  vaddr = adi_set_version (haddr, 64*2, 0x8);
+  vaddr1 = adi_set_version (haddr+64*2, 64*2, 0x9);
+  vaddr2 = adi_clr_version (haddr+64*4, 64*2);
+  vaddr3 = adi_set_version (haddr+64*6, 64*2, 0xa);
+  vaddr4 = adi_set_version (haddr+64*8, 64*10, 0x3);
+  if (vaddr == 0) 
+    exit(1);
+  char *versioned_p = vaddr;
+  *versioned_p = 'a';
+  char *uvp = haddr;	// unversioned pointer
+  *uvp = 'b';		// version mismatch trap
+
+  return (0);
+err_out: 
+  if (shmdt ((const void *)shmaddr) != 0) 
+    perror ("Detach failure");
+  shmctl (shmid, IPC_RMID, NULL);
+  exit (1);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/sparc64-adi.exp ./gdb/testsuite/gdb.arch/sparc64-adi.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/sparc64-adi.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/sparc64-adi.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,53 @@
+# Copyright 2017-2018 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.
+
+# Basic tests of examining/assigning ADI version tags, and reporting 
+# precise mismatch.
+
+if ![istarget "sparc64*-*-linux*"] then {
+    verbose "Skipping sparc64 ADI test."
+    return 0
+}
+
+standard_testfile
+
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
+          [list debug libs=-ladi]] } {
+    return -1
+}
+
+if ![runto_main] then {
+    untested "could not run to main"
+    return -1
+}
+
+gdb_test "break [gdb_get_line_number "line breakpoint here"]" \
+         "Breakpoint .* at .*${srcfile}.*" \
+         "set line breakpoint in main"
+gdb_continue_to_breakpoint "continue to line breakpoint in main"
+
+##########################################
+set newadi "7"
+gdb_test "adi x shmaddr" "${hex}00:\t0" "examine ADI"
+gdb_test_no_output "adi a/100 shmaddr=${newadi}" "assign ADI"
+gdb_test "adi x/100 shmaddr" "${hex}00:\t${newadi} ${newadi}" \
+         "examine new ADI"
+gdb_test_no_output "adi a/100 shmaddr=0x0" "reset ADI"
+gdb_test "continue" \
+         [multi_line "Program received signal SIGSEGV, Segmentation fault.*" \
+                     "ADI precise mismatch while accessing address $hex.*" ] \
+	"continue to sigsegv"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/sparc64-regs.exp ./gdb/testsuite/gdb.arch/sparc64-regs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/sparc64-regs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/sparc64-regs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2017 Free Software Foundation, Inc.
+# Copyright 2017-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/sparc64-regs.S ./gdb/testsuite/gdb.arch/sparc64-regs.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/sparc64-regs.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/sparc64-regs.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2017 Free Software Foundation, Inc.
+/* Copyright 2017-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/sparc-sysstep.c ./gdb/testsuite/gdb.arch/sparc-sysstep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/sparc-sysstep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/sparc-sysstep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test single-stepping system call instructions in sparc.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/sparc-sysstep.exp ./gdb/testsuite/gdb.arch/sparc-sysstep.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/sparc-sysstep.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/sparc-sysstep.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/spu-info.c ./gdb/testsuite/gdb.arch/spu-info.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/spu-info.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/spu-info.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2007-2017 Free Software Foundation, Inc.
+/* Copyright 2007-2018 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
@@ -23,6 +23,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
+#include <unistd.h>
 #include <spu_mfcio.h>
 
 
@@ -190,14 +191,14 @@ do_signal_test ()
   fd = open_context_file (context_fd, "signal1", O_RDWR);
   if (fstat (fd, &fdstat) != 0)
     return -1;
-  ret = write (fd, buf, sizeof (int));
+  ret = write (fd, &buf, sizeof (int));
   close (fd);  /* Marker Signal1 */
 
   /* Write to signal2.  */
   fd = open_context_file (context_fd, "signal2", O_RDWR);
   if (fstat (fd, &fdstat) != 0)
     return -1;
-  ret = write (fd, buf, sizeof (int));
+  ret = write (fd, &buf, sizeof (int));
   close (fd);  /* Marker Signal2 */
 
   /* Read signal1.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/spu-info.exp ./gdb/testsuite/gdb.arch/spu-info.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/spu-info.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/spu-info.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 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
@@ -24,19 +24,13 @@ if { ![istarget "spu-*-elf"] } then {
   return
 }
 
-set testfile "spu-info"
-set srcfile ${testfile}.c
-set binfile ${objdir}/${subdir}/${testfile}
-set sources ${srcdir}/${subdir}/${srcfile}
+standard_testfile
 
-if { [gdb_compile $sources ${binfile} executable { debug }] != "" } {
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug}] } {
+  fail "cannot compile test program"
   return -1
 }
 
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
 
 # Continue to MARKER
 proc c_to { marker } {
@@ -99,7 +93,7 @@ gdb_test "info spu signal" \
 
 # 'info spu mailbox'.
 gdb_test "info spu mailbox" \
-	 "SPU Outbound Mailbox.*SPU Outbound Interrupt Mailbox.*" \
+	 "" \
 	 "info spu mailbox"
 
 # 'info spu dma'.
@@ -121,62 +115,62 @@ gdb_test "info spu event" \
 # MFC_MULTI_SRC_SYNC_EVENT.
 gdb_test "next" "" "next"
 gdb_test "info spu event" \
-	"Event Status 0x00000000.*Event Mask   0x00001000.*" \
+	"Event Status 0x0000.*Event Mask   0x00001000.*" \
 	"event mask 0x1000"
 # MFC_PRIV_ATTN_EVENT.
 gdb_test "next" "" "next"
 gdb_test "info spu event" \
-	"Event Status 0x00000000.*Event Mask   0x00000800.*" \
+	"Event Status 0x0000.*Event Mask   0x00000800.*" \
 	"event mask 0x0800"
 # MFC_LLR_LOST_EVENT.
 gdb_test "next" "" "next"
 gdb_test "info spu event" \
-	"Event Status 0x00000000.*Event Mask   0x00000400.*" \
+	"Event Status 0x0000.*Event Mask   0x00000400.*" \
 	"event mask 0x0400"
 # MFC_SIGNAL_NOTIFY_1_EVENT.
 gdb_test "next" "" "next"
 gdb_test "info spu event" \
-	"Event Status 0x00000000.*Event Mask   0x00000200.*" \
+	"Event Status 0x0000.*Event Mask   0x00000200.*" \
 	"event mask 0x0200"
 # MFC_SIGNAL_NOTIFY_2_EVENT.
 gdb_test "next" "" "next"
 gdb_test "info spu event" \
-	"Event Status 0x00000000.*Event Mask   0x00000100.*" \
+	"Event Status 0x0000.*Event Mask   0x00000100.*" \
 	"event mask 0x0100"
 # MFC_OUT_MBOX_AVAILABLE_EVENT.
 gdb_test "next" "" "next"
 gdb_test "info spu event" \
-	"Event Status 0x00000000.*Event Mask   0x00000080.*" \
+	"Event Status 0x0000.*Event Mask   0x00000080.*" \
 	"event mask 0x0080"
 # MFC_OUT_INTR_MBOX_AVAILABLE_EVENT.
 gdb_test "next" "" "next"
 gdb_test "info spu event" \
-	"Event Status 0x00000000.*Event Mask   0x00000040.*" \
+	"Event Status 0x0000.*Event Mask   0x00000040.*" \
 	"event mask 0x0040"
 # MFC_DECREMENTER_EVENT.
 gdb_test "next" "" "next"
 gdb_test "info spu event" \
-	"Event Status 0x00000000.*Event Mask   0x00000020.*" \
+	"Event Status 0x0000.*Event Mask   0x00000020.*" \
 	"event mask 0x0020"
 # MFC_IN_MBOX_AVAILABLE_EVENT.
 gdb_test "next" "" "next"
 gdb_test "info spu event" \
-	"Event Status 0x00000000.*Event Mask   0x00000010.*" \
+	"Event Status 0x0000.*Event Mask   0x00000010.*" \
 	"event mask 0x0010"
 # MFC_COMMAND_QUEUE_AVAILABLE_EVENT.
 gdb_test "next" "" "next"
 gdb_test "info spu event" \
-	"Event Status 0x00000000.*Event Mask   0x00000008.*" \
+	"Event Status 0x0000.*Event Mask   0x00000008.*" \
 	"event mask 0x0008"
 # MFC_LIST_STALL_NOTIFY_EVENT.
 gdb_test "next" "" "next"
 gdb_test "info spu event" \
-	"Event Status 0x00000000.*Event Mask   0x00000002.*" \
+	"Event Status 0x0000.*Event Mask   0x00000002.*" \
 	"event mask 0x0002"
 # MFC_TAG_STATUS_UPDATE_EVENT.
 gdb_test "next" "" "next"
 gdb_test "info spu event" \
-	"Event Status 0x00000000.*Event Mask   0x00000001.*" \
+	"Event Status 0x0000.*Event Mask   0x00000001.*" \
 	"event mask 0x0001"
 
 
@@ -200,7 +194,7 @@ gdb_test "finish" "" "finish"
 c_to "Marker Mbox"
 set msg "info spu mailbox"
 gdb_test_multiple "info spu mailbox" $msg {
-    -re "SPU Outbound Mailbox.*0x00000000.*SPU Outbound Interrupt Mailbox.*0x00000000.*$gdb_prompt $" {
+    -re "$gdb_prompt $" {
       pass $msg
     }
     -re "SPU Outbound Mailbox.*0x.*SPU Outbound Interrupt Mailbox.*0x.*$gdb_prompt $" {
@@ -226,19 +220,19 @@ gdb_test "info spu signal" \
 # 'info spu signal' with signal1 pending.
 c_to "Marker Signal1"
 gdb_test "info spu signal" \
-	 "Signal 1 control word 0x801c0800.*Signal 2 not pending.*\(Type.*\).*" \
+	 "Signal 1 control word 0x00000017.*Signal 2 not pending.*\(Type.*\).*" \
 	 "info spu signal"
 
 # 'info spu signal' with signal1 and signal2 pending.
 c_to "Marker Signal2"
 gdb_test "info spu signal" \
-	 "Signal 1 control word 0x801c0800.*Signal 2 control word 0x801c0800.*" \
+	 "Signal 1 control word 0x00000017.*Signal 2 control word 0x00000017.*" \
 	 "info spu signal"
 
 # Read signal1. Only signal2 is pending.
 c_to "Marker SignalRead"
 gdb_test "info spu signal" \
-	 "Signal 1 not pending.*Signal 2 control word 0x801c0800.*" \
+	 "Signal 1 not pending.*Signal 2 control word 0x00000017.*" \
 	 "info spu signal"
 
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/spu-ls.c ./gdb/testsuite/gdb.arch/spu-ls.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/spu-ls.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/spu-ls.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2010-2017 Free Software Foundation, Inc.
+/* Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/spu-ls.exp ./gdb/testsuite/gdb.arch/spu-ls.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/spu-ls.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/spu-ls.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 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
@@ -23,20 +23,13 @@ if { ![istarget "spu-*-elf"] } then {
   return
 }
 
-set testfile "spu-ls"
-set srcfile ${testfile}.c
-set binfile ${objdir}/${subdir}/${testfile}
-set sources ${srcdir}/${subdir}/${srcfile}
+standard_testfile
 
-if { [gdb_compile $sources ${binfile} executable { debug }] != "" } {
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug}] } {
+  fail "cannot compile test program"
   return -1
 }
 
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-gdb_load ${binfile}
-
 if ![runto_main] then {
   fail "can't run to main"
   return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb2-it.exp ./gdb/testsuite/gdb.arch/thumb2-it.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb2-it.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/thumb2-it.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 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
@@ -58,7 +58,7 @@ proc test_it_block { func } {
 	return
     }
 
-    gdb_test "call ${func}()" "Breakpoint.*@ Setup.*" "$func, call"
+    gdb_test "call (int) ${func}()" "Breakpoint.*@ Setup.*" "$func, call"
 
     set expected 0
     set reached 0
@@ -155,7 +155,7 @@ for { set i 1 } { $i <= 8 } { incr i } {
 }
 
 gdb_breakpoint "*it_breakpoints"
-gdb_test "call it_breakpoints()" "Breakpoint.*"
+gdb_test "call (int) it_breakpoints()" "Breakpoint.*"
 for { set i 1 } { $i <= 7 } { incr i } {
     test_it_break ${i}
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb2-it.S ./gdb/testsuite/gdb.arch/thumb2-it.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb2-it.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/thumb2-it.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Thumb-2 IT blocks test program.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb-bx-pc.exp ./gdb/testsuite/gdb.arch/thumb-bx-pc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb-bx-pc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/thumb-bx-pc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb-bx-pc.S ./gdb/testsuite/gdb.arch/thumb-bx-pc.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb-bx-pc.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/thumb-bx-pc.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test PC adjustment from Thumb-mode "bx pc" instruction.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb-prologue.c ./gdb/testsuite/gdb.arch/thumb-prologue.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb-prologue.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/thumb-prologue.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Unwinder test program.
 
-   Copyright 2006-2017 Free Software Foundation, Inc.
+   Copyright 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb-prologue.exp ./gdb/testsuite/gdb.arch/thumb-prologue.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb-prologue.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/thumb-prologue.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb-singlestep.exp ./gdb/testsuite/gdb.arch/thumb-singlestep.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb-singlestep.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/thumb-singlestep.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb-singlestep.S ./gdb/testsuite/gdb.arch/thumb-singlestep.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/thumb-singlestep.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/thumb-singlestep.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test program with deliberately incorrect execution mode transition
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/vsx-regs.exp ./gdb/testsuite/gdb.arch/vsx-regs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.arch/vsx-regs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/vsx-regs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 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
@@ -56,44 +56,34 @@ if ![runto_main] then {
     gdb_suppress_tests
 }
 
-set endianness ""
-set msg "detect endianness"
-gdb_test_multiple "show endian" "$msg" {
-    -re "(The target endianness is set automatically .currently )(big|little)( endian.*)$gdb_prompt $" {
-        pass "$msg"
-        set endianness $expect_out(2,string)
-    }
-    -re ".*$gdb_prompt $" {
-        fail "$msg"
-    }
-}
+set endianness [get_endianness]
 
 # Data sets used throughout the test
 
 if {$endianness == "big"} {
-    set vector_register1 ".uint128 = 0x3ff4cccccccccccc0000000000000000, v2_double = .0x1, 0x0., v4_float = .0x1, 0xf99999a0, 0x0, 0x0., v4_int32 = .0x3ff4cccc, 0xcccccccc, 0x0, 0x0., v8_int16 = .0x3ff4, 0xcccc, 0xcccc, 0xcccc, 0x0, 0x0, 0x0, 0x0., v16_int8 = .0x3f, 0xf4, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0.."
+    set vector_register1 ".uint128 = 0x3ff4cccccccccccd0000000000000000, v2_double = .0x1, 0x0., v4_float = .0x1, 0xf9999998, 0x0, 0x0., v4_int32 = .0x3ff4cccc, 0xcccccccd, 0x0, 0x0., v8_int16 = .0x3ff4, 0xcccc, 0xcccc, 0xcccd, 0x0, 0x0, 0x0, 0x0., v16_int8 = .0x3f, 0xf4, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0.."
 
-    set vector_register1_vr ".uint128 = 0x3ff4cccccccccccc0000000100000001, v4_float = .0x1, 0xf99999a0, 0x0, 0x0., v4_int32 = .0x3ff4cccc, 0xcccccccc, 0x1, 0x1., v8_int16 = .0x3ff4, 0xcccc, 0xcccc, 0xcccc, 0x0, 0x1, 0x0, 0x1., v16_int8 = .0x3f, 0xf4, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1.."
+    set vector_register1_vr ".uint128 = 0x3ff4cccccccccccd0000000100000001, v4_float = .0x1, 0xf9999998, 0x0, 0x0., v4_int32 = .0x3ff4cccc, 0xcccccccd, 0x1, 0x1., v8_int16 = .0x3ff4, 0xcccc, 0xcccc, 0xcccd, 0x0, 0x1, 0x0, 0x1., v16_int8 = .0x3f, 0xf4, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcd, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1.."
 
-    set vector_register2 "uint128 = 0xdeadbeefdeadbeefdeadbeefdeadbeef, v2_double = .0x1, 0x1., v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef., v8_int16 = .0xdead, 0xbeef, 0xdead, 0xbeef, 0xdead, 0xbeef, 0xdead, 0xbeef., v16_int8 = .0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef.."
+    set vector_register2 "uint128 = 0xdeadbeefdeadbeefdeadbeefdeadbeef, v2_double = .0x8000000000000000, 0x8000000000000000., v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef., v8_int16 = .0xdead, 0xbeef, 0xdead, 0xbeef, 0xdead, 0xbeef, 0xdead, 0xbeef., v16_int8 = .0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef.."
 
     set vector_register2_vr "uint128 = 0xdeadbeefdeadbeefdeadbeefdeadbeef, v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef., v8_int16 = .0xdead, 0xbeef, 0xdead, 0xbeef, 0xdead, 0xbeef, 0xdead, 0xbeef., v16_int8 = .0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef.."
 
-    set vector_register3 ".uint128 = 0x00000001000000010000000100000001, v2_double = .0x0, 0x0., v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0x1, 0x1, 0x1, 0x1., v8_int16 = .0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1., v16_int8 = .0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1.."
+    set vector_register3 ".uint128 = 0x1000000010000000100000001, v2_double = .0x0, 0x0., v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0x1, 0x1, 0x1, 0x1., v8_int16 = .0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1., v16_int8 = .0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1.."
 
-    set vector_register3_vr ".uint128 = 0x00000001000000010000000100000001, v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0x1, 0x1, 0x1, 0x1., v8_int16 = .0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1., v16_int8 = .0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1.."
+    set vector_register3_vr ".uint128 = 0x1000000010000000100000001, v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0x1, 0x1, 0x1, 0x1., v8_int16 = .0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1., v16_int8 = .0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1.."
 } else {
-    set vector_register1 ".uint128 = 0x3ff4cccccccccccc0000000000000000, v2_double = .0x0, 0x1., v4_float = .0x0, 0x0, 0xf99999a0, 0x1., v4_int32 = .0x0, 0x0, 0xcccccccc, 0x3ff4cccc., v8_int16 = .0x0, 0x0, 0x0, 0x0, 0xcccc, 0xcccc, 0xcccc, 0x3ff4., v16_int8 = .0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xf4, 0x3f.."
+    set vector_register1 ".uint128 = 0x3ff4cccccccccccd0000000000000000, v2_double = .0x0, 0x1., v4_float = .0x0, 0x0, 0xf9999998, 0x1., v4_int32 = .0x0, 0x0, 0xcccccccd, 0x3ff4cccc., v8_int16 = .0x0, 0x0, 0x0, 0x0, 0xcccd, 0xcccc, 0xcccc, 0x3ff4., v16_int8 = .0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xf4, 0x3f.."
 
-    set vector_register1_vr ".uint128 = 0x3ff4cccccccccccc0000000100000001, v4_float = .0x0, 0x0, 0xf99999a0, 0x1., v4_int32 = .0x1, 0x1, 0xcccccccc, 0x3ff4cccc., v8_int16 = .0x1, 0x0, 0x1, 0x0, 0xcccc, 0xcccc, 0xcccc, 0x3ff4., v16_int8 = .0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xf4, 0x3f.."
+    set vector_register1_vr ".uint128 = 0x3ff4cccccccccccd0000000100000001, v4_float = .0x0, 0x0, 0xf9999998, 0x1., v4_int32 = .0x1, 0x1, 0xcccccccd, 0x3ff4cccc., v8_int16 = .0x1, 0x0, 0x1, 0x0, 0xcccd, 0xcccc, 0xcccc, 0x3ff4., v16_int8 = .0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xf4, 0x3f.."
 
-    set vector_register2 "uint128 = 0xdeadbeefdeadbeefdeadbeefdeadbeef, v2_double = .0x1, 0x1., v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef., v8_int16 = .0xbeef, 0xdead, 0xbeef, 0xdead, 0xbeef, 0xdead, 0xbeef, 0xdead., v16_int8 = .0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde.."
+    set vector_register2 "uint128 = 0xdeadbeefdeadbeefdeadbeefdeadbeef, v2_double = .0x8000000000000000, 0x8000000000000000., v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef., v8_int16 = .0xbeef, 0xdead, 0xbeef, 0xdead, 0xbeef, 0xdead, 0xbeef, 0xdead., v16_int8 = .0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde.."
 
     set vector_register2_vr "uint128 = 0xdeadbeefdeadbeefdeadbeefdeadbeef, v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef., v8_int16 = .0xbeef, 0xdead, 0xbeef, 0xdead, 0xbeef, 0xdead, 0xbeef, 0xdead., v16_int8 = .0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde.."
 
-    set vector_register3 ".uint128 = 0x00000001000000010000000100000001, v2_double = .0x0, 0x0., v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0x1, 0x1, 0x1, 0x1., v8_int16 = .0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0., v16_int8 = .0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0.."
+    set vector_register3 ".uint128 = 0x1000000010000000100000001, v2_double = .0x0, 0x0., v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0x1, 0x1, 0x1, 0x1., v8_int16 = .0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0., v16_int8 = .0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0.."
 
-    set vector_register3_vr ".uint128 = 0x00000001000000010000000100000001, v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0x1, 0x1, 0x1, 0x1., v8_int16 = .0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0., v16_int8 = .0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0.."
+    set vector_register3_vr ".uint128 = 0x1000000010000000100000001, v4_float = .0x0, 0x0, 0x0, 0x0., v4_int32 = .0x1, 0x1, 0x1, 0x1., v8_int16 = .0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0., v16_int8 = .0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0.."
 }
 
 set float_register ".raw 0xdeadbeefdeadbeef."
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.asm/asm-source.exp ./gdb/testsuite/gdb.asm/asm-source.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.asm/asm-source.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.asm/asm-source.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 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
@@ -435,7 +435,7 @@ gdb_test "next" "$line_foo2_leave\[ \t\]
 # Like "finish", "return" command also can return to the caller
 # line again or the statement after, depending on the architecture.
 gdb_test_multiple "return" "return from foo2" {
-    -re "Make (foo2|selected stack frame) return now\?.*" {
+    -re "Make (foo2|selected stack frame) return now\\? .y or n. " {
         send_gdb "y\n"
         exp_continue
     }
@@ -465,14 +465,14 @@ proc test_dis { command var } {
 }
 
 # See if we can look at a global variable, three ways
-gdb_test "print globalvar" ".* = 11" "look at global variable"
+gdb_test "print (int) globalvar" ".* = 11" "look at global variable"
 test_dis "x/i &globalvar" "globalvar"
-test_dis "disassem &globalvar, &globalvar+1" "globalvar"
+test_dis "disassem &globalvar, (int *) &globalvar+1" "globalvar"
 
 # See if we can look at a static variable, three ways
-gdb_test "print staticvar" ".* = 5" "look at static variable"
+gdb_test "print (int) staticvar" ".* = 5" "look at static variable"
 test_dis "x/i &staticvar" "staticvar"
-test_dis "disassem &staticvar, &staticvar+1" "staticvar"
+test_dis "disassem &staticvar, (int *) &staticvar+1" "staticvar"
 
 # See if we can look at a static function
 gdb_test "disassem foostatic" ".*<\\+0>:.*End of assembler dump." \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/a2-run.exp ./gdb/testsuite/gdb.base/a2-run.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/a2-run.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/a2-run.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1988-2017 Free Software Foundation, Inc.
+#   Copyright 1988-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/advance.exp ./gdb/testsuite/gdb.base/advance.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/advance.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/advance.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/alias.exp ./gdb/testsuite/gdb.base/alias.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/alias.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/alias.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Test the alias command.
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-0.exp ./gdb/testsuite/gdb.base/all-architectures-0.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-0.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/all-architectures-0.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-1.exp ./gdb/testsuite/gdb.base/all-architectures-1.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-1.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/all-architectures-1.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-2.exp ./gdb/testsuite/gdb.base/all-architectures-2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/all-architectures-2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-3.exp ./gdb/testsuite/gdb.base/all-architectures-3.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-3.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/all-architectures-3.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-4.exp ./gdb/testsuite/gdb.base/all-architectures-4.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-4.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/all-architectures-4.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-5.exp ./gdb/testsuite/gdb.base/all-architectures-5.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-5.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/all-architectures-5.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-6.exp ./gdb/testsuite/gdb.base/all-architectures-6.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-6.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/all-architectures-6.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-7.exp ./gdb/testsuite/gdb.base/all-architectures-7.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures-7.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/all-architectures-7.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures.exp.in ./gdb/testsuite/gdb.base/all-architectures.exp.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-architectures.exp.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/all-architectures.exp.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-bin.exp ./gdb/testsuite/gdb.base/all-bin.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/all-bin.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/all-bin.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/annota1.exp ./gdb/testsuite/gdb.base/annota1.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/annota1.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/annota1.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 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
@@ -16,12 +16,10 @@
 # This file was written by Elena Zannoni (ezannoni@cygnus.com)
 
 
-# are we on a target board? If so, don't run these tests.
-# note: this is necessary because we cannot use runto_main (which would
-# work for remote targets too) because of the different prompt we get
-# when using annotation level 2.
+# This testcase cannot use runto_main because of the different prompt
+# we get when using annotation level 2.
 #
-if [is_remote target] then {
+if ![target_can_use_run_cmd] {
     return 0
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/annota3.exp ./gdb/testsuite/gdb.base/annota3.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/annota3.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/annota3.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 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
@@ -16,12 +16,10 @@
 # This file was written by Elena Zannoni (ezannoni@cygnus.com)
 
 
-# are we on a target board? If so, don't run these tests.
-# note: this is necessary because we cannot use runto_main (which would
-# work for remote targets too) because of the different prompt we get
-# when using annotation level 2.
+# This testcase cannot use runto_main because of the different prompt
+# we get when using annotation level 2.
 #
-if [is_remote target] then {
+if ![target_can_use_run_cmd] {
     return 0
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/annota-input-while-running.c ./gdb/testsuite/gdb.base/annota-input-while-running.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/annota-input-while-running.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/annota-input-while-running.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/annota-input-while-running.exp ./gdb/testsuite/gdb.base/annota-input-while-running.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/annota-input-while-running.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/annota-input-while-running.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/anon.exp ./gdb/testsuite/gdb.base/anon.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/anon.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/anon.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/args.exp ./gdb/testsuite/gdb.base/args.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/args.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/args.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/argv0-symlink.c ./gdb/testsuite/gdb.base/argv0-symlink.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/argv0-symlink.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/argv0-symlink.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/argv0-symlink.exp ./gdb/testsuite/gdb.base/argv0-symlink.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/argv0-symlink.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/argv0-symlink.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 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
@@ -80,8 +80,9 @@ gdb_test_no_output "set print repeats 10
 gdb_test_no_output "set print elements 10000"
 
 if { $has_argv0 } {
-    # gdbserver does not have this issue.
-    if ![is_remote target] {
+    # gdbserver in extended-remote mode does not have this issue.
+    # Plain remote does, however.
+    if {[target_info gdb_protocol] != "extended-remote" || ![target_is_gdbserver]} {
 	setup_kfail "*-*-*" gdb/15934
     }
     gdb_test {print argv[0]} "/$dirlink/$filelink\"" $test
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/arithmet.exp ./gdb/testsuite/gdb.base/arithmet.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/arithmet.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/arithmet.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/arrayidx.c ./gdb/testsuite/gdb.base/arrayidx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/arrayidx.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/arrayidx.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2005-2017 Free Software Foundation, Inc.
+   Copyright 2005-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/arrayidx.exp ./gdb/testsuite/gdb.base/arrayidx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/arrayidx.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/arrayidx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/asmlabel.c ./gdb/testsuite/gdb.base/asmlabel.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/asmlabel.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/asmlabel.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/asmlabel.exp ./gdb/testsuite/gdb.base/asmlabel.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/asmlabel.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/asmlabel.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/assign.exp ./gdb/testsuite/gdb.base/assign.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/assign.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/assign.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/async.exp ./gdb/testsuite/gdb.base/async.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/async.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/async.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1999-2017 Free Software Foundation, Inc.
+#   Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/async-shell.c ./gdb/testsuite/gdb.base/async-shell.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/async-shell.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/async-shell.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/async-shell.exp ./gdb/testsuite/gdb.base/async-shell.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/async-shell.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/async-shell.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach.exp ./gdb/testsuite/gdb.base/attach.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/attach.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 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
@@ -324,7 +324,7 @@ proc do_call_attach_tests {} {
 
     # Attach
    
-    gdb_test "file $binfile2" ".*" "force switch to gdb64, if necessary"
+    gdb_test "file $binfile2" ".*" "load file"
     set test "attach call"
     gdb_test_multiple "attach $testpid" "$test" {
 	-re "warning: reading register.*I.*O error.*$gdb_prompt $" {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-non-pgrp-leader.c ./gdb/testsuite/gdb.base/attach-non-pgrp-leader.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-non-pgrp-leader.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/attach-non-pgrp-leader.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,45 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#include <stdlib.h>
+#include <unistd.h>
+
+/* GDB reads this to figure out the child's PID.  */
+pid_t child_pid;
+
+void
+marker (void)
+{
+}
+
+int
+main ()
+{
+  alarm (60);
+
+  child_pid = fork ();
+  if (child_pid == -1)
+    return 1;
+
+  while (1)
+    {
+      marker ();
+      usleep (1000);
+    }
+
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp ./gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,76 @@
+# Copyright 2017-2018 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 we can attach to processes that are not process group
+# leaders.  We test that by attaching to a fork child that doesn't
+# call any of setpgrp/setpgid/setsid to move itself to a new process
+# group.
+
+if {![can_spawn_for_attach]} {
+    return 0
+}
+
+standard_testfile
+
+if { [build_executable ${testfile}.exp ${testfile} $srcfile {debug}] == -1 } {
+    return -1
+}
+
+proc do_test {} {
+    global binfile
+
+    set test_spawn_id [spawn_wait_for_attach $binfile]
+    set parent_pid [spawn_id_get_pid $test_spawn_id]
+
+    # Attach to the parent, run it to a known point, extract the
+    # child's PID, and detach.
+    with_test_prefix "parent" {
+	clean_restart ${binfile}
+
+	gdb_test "attach $parent_pid" \
+	    "Attaching to program.*, process $parent_pid.*" \
+	    "attach"
+
+	gdb_breakpoint "marker"
+	gdb_continue_to_breakpoint "marker"
+
+	set child_pid [get_integer_valueof "child_pid" -1]
+	if {$child_pid == -1} {
+	    return
+	}
+
+	gdb_test "detach" \
+	    "Detaching from program: .*process $parent_pid"
+    }
+
+    # Start over, and attach to the child this time.
+    with_test_prefix "child" {
+	clean_restart $binfile
+
+	gdb_test "attach $child_pid" \
+	    "Attaching to program.*, process $child_pid.*" \
+	    "attach"
+
+	gdb_breakpoint "marker"
+	gdb_continue_to_breakpoint "marker"
+
+	gdb_test "detach" \
+	    "Detaching from program: .*process $child_pid"
+    }
+
+    kill_wait_spawned_process $test_spawn_id
+}
+
+do_test
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-pie-misread.c ./gdb/testsuite/gdb.base/attach-pie-misread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-pie-misread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/attach-pie-misread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-pie-misread.exp ./gdb/testsuite/gdb.base/attach-pie-misread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-pie-misread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/attach-pie-misread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-pie-noexec.c ./gdb/testsuite/gdb.base/attach-pie-noexec.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-pie-noexec.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/attach-pie-noexec.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-pie-noexec.exp ./gdb/testsuite/gdb.base/attach-pie-noexec.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-pie-noexec.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/attach-pie-noexec.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 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
@@ -20,7 +20,7 @@ if {![can_spawn_for_attach]} {
 standard_testfile .c
 set executable ${testfile}
 
-if { [prepare_for_testing "failed to prepare" $executable "" [list debug "additional_flags=-fPIE -pie"]] } {
+if { [prepare_for_testing "failed to prepare" $executable "" [list debug "additional_flags=-fPIE" "ldflags=-pie"]] } {
     return -1
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-twice.c ./gdb/testsuite/gdb.base/attach-twice.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-twice.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/attach-twice.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-twice.exp ./gdb/testsuite/gdb.base/attach-twice.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-twice.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/attach-twice.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-wait-input.c ./gdb/testsuite/gdb.base/attach-wait-input.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-wait-input.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/attach-wait-input.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-wait-input.exp ./gdb/testsuite/gdb.base/attach-wait-input.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/attach-wait-input.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/attach-wait-input.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/auto-connect-native-target.c ./gdb/testsuite/gdb.base/auto-connect-native-target.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/auto-connect-native-target.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/auto-connect-native-target.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/auto-connect-native-target.exp ./gdb/testsuite/gdb.base/auto-connect-native-target.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/auto-connect-native-target.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/auto-connect-native-target.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/auto-load.c ./gdb/testsuite/gdb.base/auto-load.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/auto-load.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/auto-load.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/auto-load.exp ./gdb/testsuite/gdb.base/auto-load.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/auto-load.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/auto-load.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/auto-load-script ./gdb/testsuite/gdb.base/auto-load-script
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/auto-load-script	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/auto-load-script	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/auxv.c ./gdb/testsuite/gdb.base/auxv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/auxv.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/auxv.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 1992-2017 Free Software Foundation, Inc.
+/* Copyright 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/auxv.exp ./gdb/testsuite/gdb.base/auxv.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/auxv.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/auxv.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # Test `info auxv' and related functionality.
 
-# Copyright (C) 1992-2017 Free Software Foundation, Inc.
+# Copyright (C) 1992-2018 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
@@ -38,7 +38,7 @@ if { [gdb_compile "${srcdir}/${subdir}/$
 }
 
 # Use a fresh directory to confine the native core dumps.
-# Make it the working directory for gdb and its child.
+# Make it the working directory for the inferior.
 set coredir [standard_output_file coredir.[getpid]]
 file mkdir $coredir
 set core_works [expr [isnative] && ! [is_remote target]]
@@ -50,8 +50,8 @@ gdb_test_no_output "set print sevenbit-s
 gdb_test_no_output "set width 0"
 
 if {$core_works} {
-    if {[gdb_test "cd $coredir" ".*Working directory .*" \
-	     "cd to temporary directory for core dumps"]} {
+    if {[gdb_test_no_output "set cwd $coredir" \
+	     "set cwd to temporary directory for core dumps"]} {
 	set core_works 0
     }
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bad-file.exp ./gdb/testsuite/gdb.base/bad-file.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bad-file.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bad-file.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bang.exp ./gdb/testsuite/gdb.base/bang.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bang.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bang.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/batch-preserve-term-settings.c ./gdb/testsuite/gdb.base/batch-preserve-term-settings.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/batch-preserve-term-settings.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/batch-preserve-term-settings.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp ./gdb/testsuite/gdb.base/batch-preserve-term-settings.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/batch-preserve-term-settings.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bfp-test.c ./gdb/testsuite/gdb.base/bfp-test.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bfp-test.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bfp-test.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2005-2017 Free Software Foundation, Inc.
+   Copyright 2005-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bfp-test.exp ./gdb/testsuite/gdb.base/bfp-test.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bfp-test.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bfp-test.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bg-execution-repeat.c ./gdb/testsuite/gdb.base/bg-execution-repeat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bg-execution-repeat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bg-execution-repeat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bg-execution-repeat.exp ./gdb/testsuite/gdb.base/bg-execution-repeat.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bg-execution-repeat.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bg-execution-repeat.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bigcore.c ./gdb/testsuite/gdb.base/bigcore.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bigcore.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bigcore.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bigcore.exp ./gdb/testsuite/gdb.base/bigcore.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bigcore.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bigcore.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bitfields2.exp ./gdb/testsuite/gdb.base/bitfields2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bitfields2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bitfields2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bitfields.exp ./gdb/testsuite/gdb.base/bitfields.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bitfields.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bitfields.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bitops.exp ./gdb/testsuite/gdb.base/bitops.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bitops.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bitops.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.c ./gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,35 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#include <unistd.h>
+
+static void
+foo (void)
+{
+  usleep (100);
+}
+
+int
+main ()
+{
+  alarm (60);
+
+  while (1)
+    foo ();
+
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp ./gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,136 @@
+# Copyright 2017-2018 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/>.
+
+# Set a breakpoint with a "continue" command attached, let the
+# inferior hit the breakpoint continuously.  Check that we can use ^C
+# to interrupt the command, and that if ^C is pressed while GDB has
+# the terminal (between the stop and the re-resume), the resulting
+# "Quit" doesn't mess up the debug session.
+
+if [target_info exists gdb,nosignals] {
+    verbose "Skipping because of nosignals."
+    continue
+}
+
+# This test requires sending ^C to interrupt the running target.
+if [target_info exists gdb,nointerrupts] {
+    verbose "Skipping because of nointerrupts."
+    return
+}
+
+standard_testfile
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
+    return -1
+}
+
+# See intro.
+
+proc do_test {} {
+    global srcfile binfile
+    global gdb_prompt
+
+    gdb_test "break foo" "Breakpoint .*" "set breakpoint"
+
+    gdb_test \
+	[multi_line_input \
+	     {commands} \
+	     {  c} \
+	     {end}] \
+	"" "commands"
+
+    set test "stop with control-c"
+
+    for {set iter 0} {$iter < 20} {incr iter} {
+
+	# Useful for debugging.
+	#send_user "iter: $iter\n"
+
+	# Consume one breakpoint hit (at least), to make sure that the
+	# continue actually continues between attempts, as opposed to
+	# "c" not actually resuming and then Ctrl-C managing to
+	# interrupt anyway.
+	if {[gdb_test_multiple "continue" "$test (continue)" {
+	    -re "Continuing.*Breakpoint \[^\r\n\]*\r\n" {
+	    }
+	}] != 0} {
+	    return
+	}
+
+	set internal_pass "IPASS: $test (iter $iter)"
+
+	# Breakpoint commands run after the target is considered
+	# stopped, and thus run with GDB owning the terminal.  That
+	# means that it is expected that a Ctrl-C that arrives between
+	#  - GDB reporting the breakpoint hit, and,
+	#  - the breakpoint command continuing the target
+	# results in a Quit.
+
+	after 200 {send_gdb "\003"}
+	if {[gdb_test_multiple "" "$test (unexpected)" {
+	    -re "Program terminated with signal SIGALRM.*\r\n$gdb_prompt $" {
+		fail "$test (SIGALRM)"
+		return
+	    }
+	    -re "Program received signal SIGINT.*\r\n$gdb_prompt $" {
+		send_log "$internal_pass (SIGINT)\n"
+	    }
+	    -re "Quit\r\n$gdb_prompt $" {
+		send_log "$internal_pass (Quit)\n"
+	    }
+	    -re "Quit\r\n\r\nCommand aborted.\r\n$gdb_prompt $" {
+		send_log "$internal_pass (Command aborted)\n"
+	    }
+	    -re "Breakpoint \[^\r\n\]*$srcfile" {
+		exp_continue
+	    }
+	}] != 0} {
+	    break
+	}
+    }
+
+    gdb_assert {$iter == 20} "stop with control-c"
+}
+
+# With native debugging and "run" (with job control), if the inferior
+# is running, the Ctrl-C reaches the inferior directly, not GDB.  With
+# native debugging and "attach", or with remote debugging, the Ctrl-C
+# reaches GDB first.  So for completeness, try both "run" and
+# "attach".
+
+with_test_prefix "run" {
+    clean_restart $binfile
+
+    if {![runto_main]} {
+	return -1
+    }
+
+    do_test
+}
+
+with_test_prefix "attach" {
+    if {[can_spawn_for_attach]} {
+	clean_restart $binfile
+
+	set test_spawn_id [spawn_wait_for_attach $binfile]
+	set testpid [spawn_id_get_pid $test_spawn_id]
+
+	gdb_test "attach $testpid" "Attaching to.*process $testpid.*" "attach"
+
+	do_test
+
+	kill_wait_spawned_process $test_spawn_id
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bp-permanent.c ./gdb/testsuite/gdb.base/bp-permanent.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bp-permanent.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bp-permanent.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -26,6 +26,8 @@
 
 #if defined(__s390__) || defined(__s390x__)
 #define NOP asm("nopr 0")
+#elif defined(__or1k__)
+#define NOP asm("l.nop")
 #else
 #define NOP asm("nop")
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bp-permanent.exp ./gdb/testsuite/gdb.base/bp-permanent.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/bp-permanent.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/bp-permanent.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/branch-to-self.c ./gdb/testsuite/gdb.base/branch-to-self.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/branch-to-self.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/branch-to-self.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/branch-to-self.exp ./gdb/testsuite/gdb.base/branch-to-self.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/branch-to-self.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/branch-to-self.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break1.c ./gdb/testsuite/gdb.base/break1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1992-2017 Free Software Foundation, Inc.
+   Copyright 1992-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-always.c ./gdb/testsuite/gdb.base/break-always.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-always.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-always.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-always.exp ./gdb/testsuite/gdb.base/break-always.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-always.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-always.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2008-2017 Free Software Foundation, Inc.
+#   Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break.c ./gdb/testsuite/gdb.base/break.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1992-2017 Free Software Foundation, Inc.
+   Copyright 1992-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-caller-line.c ./gdb/testsuite/gdb.base/break-caller-line.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-caller-line.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-caller-line.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-caller-line.exp ./gdb/testsuite/gdb.base/break-caller-line.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-caller-line.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-caller-line.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-entry.exp ./gdb/testsuite/gdb.base/break-entry.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-entry.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-entry.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break.exp ./gdb/testsuite/gdb.base/break.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1988-2017 Free Software Foundation, Inc.
+#   Copyright 1988-2018 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
@@ -854,3 +854,15 @@ gdb_test_no_output "set \$foo=81.5" \
 gdb_test "break $srcfile:\$foo" \
     "Convenience variables used in line specs must have integer values.*" \
     "set breakpoint via non-integer convenience variable disallowed"
+
+
+#
+# Test that commands can be cleared without error.
+#
+
+gdb_test "commands\nprint 232323\nend" ">end" "set some breakpoint commands"
+gdb_test "commands\nend" ">end" "clear breakpoint commands"
+# We verify that the commands were cleared by ensuring that the last
+# breakpoint's location ends the output -- if there were commands,
+# they would have been printed after the location.
+gdb_test "info break" "$srcfile:$line" "verify that they were cleared"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-fun-addr1.c ./gdb/testsuite/gdb.base/break-fun-addr1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-fun-addr1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-fun-addr1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-fun-addr2.c ./gdb/testsuite/gdb.base/break-fun-addr2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-fun-addr2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-fun-addr2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-fun-addr.exp ./gdb/testsuite/gdb.base/break-fun-addr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-fun-addr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-fun-addr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-idempotent.c ./gdb/testsuite/gdb.base/break-idempotent.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-idempotent.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-idempotent.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-idempotent.exp ./gdb/testsuite/gdb.base/break-idempotent.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-idempotent.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-idempotent.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-inline.c ./gdb/testsuite/gdb.base/break-inline.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-inline.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-inline.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-inline.exp ./gdb/testsuite/gdb.base/break-inline.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-inline.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-inline.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-interp.exp ./gdb/testsuite/gdb.base/break-interp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-interp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-interp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 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
@@ -625,7 +625,8 @@ foreach ldprelink {NO YES} {
 				lappend opts {debug}
 			    }
 			    if {$binpie != "NO"} {
-				lappend opts {additional_flags=-fPIE -pie}
+				lappend opts {additional_flags=-fPIE}
+				lappend opts {ldflags=-pie}
 			    }
 
 			    set dir ${exec}.d
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-interp-lib.c ./gdb/testsuite/gdb.base/break-interp-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-interp-lib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-interp-lib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-interp-main.c ./gdb/testsuite/gdb.base/break-interp-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-interp-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-interp-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-main-file-remove-fail.c ./gdb/testsuite/gdb.base/break-main-file-remove-fail.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-main-file-remove-fail.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-main-file-remove-fail.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-main-file-remove-fail.exp ./gdb/testsuite/gdb.base/break-main-file-remove-fail.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-main-file-remove-fail.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-main-file-remove-fail.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 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
@@ -88,7 +88,7 @@ proc test_remove_bp { initial_load } {
 	# should warn the user about it.
 	set pagesize [get_integer_valueof "pg_size" 0]
 	set align_addr [expr $bp_addr - $bp_addr % $pagesize]
-	set munmap [get_integer_valueof "munmap ($align_addr, $pagesize)" -1]
+	set munmap [get_integer_valueof "(int) munmap ($align_addr, $pagesize)" -1]
 
 	if {$munmap != 0} {
 	    unsupported "can't munmap foo's page"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc ./gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp ./gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/breakpoint-in-ro-region.c ./gdb/testsuite/gdb.base/breakpoint-in-ro-region.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/breakpoint-in-ro-region.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/breakpoint-in-ro-region.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp ./gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/breakpoint-shadow.c ./gdb/testsuite/gdb.base/breakpoint-shadow.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/breakpoint-shadow.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/breakpoint-shadow.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/breakpoint-shadow.exp ./gdb/testsuite/gdb.base/breakpoint-shadow.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/breakpoint-shadow.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/breakpoint-shadow.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-probes.c ./gdb/testsuite/gdb.base/break-probes.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-probes.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-probes.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-probes.exp ./gdb/testsuite/gdb.base/break-probes.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-probes.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-probes.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
@@ -86,5 +86,5 @@ if { $using_probes } {
     }
 
     # Call something to ensure that relocation occurred
-    gdb_test "call foo(23)" "\\\$.* = 31.*\\\M.*"
+    gdb_test "call (int) foo(23)" "\\\$.* = 31.*\\\M.*"
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-probes-solib.c ./gdb/testsuite/gdb.base/break-probes-solib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-probes-solib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-probes-solib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-unload-file.c ./gdb/testsuite/gdb.base/break-unload-file.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-unload-file.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-unload-file.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-unload-file.exp ./gdb/testsuite/gdb.base/break-unload-file.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/break-unload-file.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-unload-file.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/call-ar-st.exp ./gdb/testsuite/gdb.base/call-ar-st.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/call-ar-st.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/call-ar-st.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/callexit.c ./gdb/testsuite/gdb.base/callexit.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/callexit.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/callexit.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/callexit.exp ./gdb/testsuite/gdb.base/callexit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/callexit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/callexit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/callfuncs.c ./gdb/testsuite/gdb.base/callfuncs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/callfuncs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/callfuncs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1993-2017 Free Software Foundation, Inc.
+   Copyright 1993-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/callfuncs.exp ./gdb/testsuite/gdb.base/callfuncs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/callfuncs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/callfuncs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 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
@@ -39,7 +39,7 @@ set skip_float_test [gdb_skip_float_test
 # specifies that the numeric value of a relational or logical expression
 # (computed in the inferior) is 1 for true and 0 for false.
 
-proc do_function_calls {} {
+proc do_function_calls {prototypes} {
     global gdb_prompt skip_float_test
 
     # We need to up this because this can be really slow on some boards.
@@ -95,11 +95,25 @@ proc do_function_calls {} {
 	setup_xfail "mn10300-*-*"
 	if { [test_compiler_info "armcc-*"] } { setup_xfail "*-*-*" }
 	gdb_test "p t_float_values(float_val1,-2.3765)" " = 1"
+	# Same, via unprototyped function pointer (t_float_values is
+	# always unprototyped).
+	gdb_test "p ((int (*) ()) t_float_values)(float_val1,-2.3765)" " = 1"
 
 	# Test passing of arguments which might not be widened.
 	gdb_test "p t_float_values2(0.0,0.0)" " = 0"
+	# Same, via function pointer.
+	if {$prototypes} {
+	    gdb_test "p ((int (*) (float, float)) t_float_values2)(0.0,0.0)" " = 0"
+	} else {
+	    gdb_test "p ((int (*) ()) t_float_values2)(0.0,0.0)" " = 0"
+	}
 
 	gdb_test "p t_float_values2(3.14159,float_val2)" " = 1"
+	if {$prototypes} {
+	    gdb_test "p ((int (*) (float, float)) t_float_values2)(3.14159,float_val2)" " = 1"
+	} else {
+	    gdb_test "p ((int (*) ()) t_float_values2)(3.14159,float_val2)" " = 1"
+	}
 
 	gdb_test "p t_float_many_args (float_val1, float_val2, float_val3, float_val4, float_val5, float_val6, float_val7, float_val8, float_val9, float_val10, float_val11, float_val12, float_val13, float_val14, float_val15)" " = 1" "call function with many float arguments."
 
@@ -315,7 +329,7 @@ proc rerun_and_prepare {} {
 	"next to t_structs_c"
 }
 
-proc perform_all_tests {} {
+proc perform_all_tests {prototypes} {
     gdb_test_no_output "set print sevenbit-strings"
     gdb_test_no_output "set print address off"
     gdb_test_no_output "set width 0"
@@ -326,7 +340,7 @@ proc perform_all_tests {} {
     set old_reg_content [fetch_all_registers "retrieve original register contents"]
 
     # Perform function calls.
-    do_function_calls
+    do_function_calls $prototypes
 
     # Check if all registers still have the same value.
     set new_reg_content [fetch_all_registers \
@@ -500,9 +514,11 @@ proc perform_all_tests {} {
 # Perform all tests with and without function prototypes.
 
 if { ![prepare_for_testing "failed to prepare" $testfile $srcfile "$compile_flags additional_flags=-DPROTOTYPES"] } {
-    perform_all_tests
+    perform_all_tests 1
 }
 
 if { ![prepare_for_testing "failed to prepare" $testfile $srcfile "$compile_flags additional_flags=-DNO_PROTOTYPES"] } {
-    with_test_prefix "noproto" perform_all_tests
+    with_test_prefix "noproto" {
+	perform_all_tests 0
+    }
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/call-rt-st.exp ./gdb/testsuite/gdb.base/call-rt-st.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/call-rt-st.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/call-rt-st.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/call-sc.c ./gdb/testsuite/gdb.base/call-sc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/call-sc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/call-sc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/call-sc.exp ./gdb/testsuite/gdb.base/call-sc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/call-sc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/call-sc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/call-signal-resume.exp ./gdb/testsuite/gdb.base/call-signal-resume.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/call-signal-resume.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/call-signal-resume.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/call-signals.c ./gdb/testsuite/gdb.base/call-signals.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/call-signals.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/call-signals.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/call-strs.exp ./gdb/testsuite/gdb.base/call-strs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/call-strs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/call-strs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-fork-kill.c ./gdb/testsuite/gdb.base/catch-fork-kill.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-fork-kill.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-fork-kill.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-fork-kill.exp ./gdb/testsuite/gdb.base/catch-fork-kill.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-fork-kill.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-fork-kill.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-fork-static.exp ./gdb/testsuite/gdb.base/catch-fork-static.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-fork-static.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-fork-static.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 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
@@ -21,10 +21,6 @@
 # ld.so probes before reaching main, and ptrace flags were set then.  But a
 # static executable would just keep running and never catch the fork.
 
-if { [is_remote target] || ![isnative] } then {
-    continue
-}
-
 # Until "catch fork" is implemented on other targets...
 #
 if { ![istarget "*-*-linux*"] && ![istarget "*-*-openbsd*"] } then {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-gdb-caused-signals.c ./gdb/testsuite/gdb.base/catch-gdb-caused-signals.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-gdb-caused-signals.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-gdb-caused-signals.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-gdb-caused-signals.exp ./gdb/testsuite/gdb.base/catch-gdb-caused-signals.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-gdb-caused-signals.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-gdb-caused-signals.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-load.c ./gdb/testsuite/gdb.base/catch-load.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-load.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-load.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-load.exp ./gdb/testsuite/gdb.base/catch-load.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-load.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-load.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-load-so.c ./gdb/testsuite/gdb.base/catch-load-so.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-load-so.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-load-so.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-signal.c ./gdb/testsuite/gdb.base/catch-signal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-signal.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-signal.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-signal.exp ./gdb/testsuite/gdb.base/catch-signal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-signal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-signal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-signal-fork.c ./gdb/testsuite/gdb.base/catch-signal-fork.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-signal-fork.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-signal-fork.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-signal-fork.exp ./gdb/testsuite/gdb.base/catch-signal-fork.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-signal-fork.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-signal-fork.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-signal-siginfo-cond.c ./gdb/testsuite/gdb.base/catch-signal-siginfo-cond.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-signal-siginfo-cond.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-signal-siginfo-cond.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-signal-siginfo-cond.exp ./gdb/testsuite/gdb.base/catch-signal-siginfo-cond.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-signal-siginfo-cond.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-signal-siginfo-cond.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-syscall.exp ./gdb/testsuite/gdb.base/catch-syscall.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/catch-syscall.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/catch-syscall.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/charset.c ./gdb/testsuite/gdb.base/charset.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/charset.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/charset.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2001-2017 Free Software Foundation, Inc.
+   Copyright 2001-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat, originally written by Jim Blandy.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/charset.exp ./gdb/testsuite/gdb.base/charset.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/charset.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/charset.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2001-2017 Free Software Foundation, Inc.
+# Copyright 2001-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/charset-malloc.c ./gdb/testsuite/gdb.base/charset-malloc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/charset-malloc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/charset-malloc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat, originally written by Jim Blandy.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/checkpoint.c ./gdb/testsuite/gdb.base/checkpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/checkpoint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/checkpoint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2005-2017 Free Software Foundation, Inc.
+   Copyright 2005-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/checkpoint.exp ./gdb/testsuite/gdb.base/checkpoint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/checkpoint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/checkpoint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2005-2017 Free Software Foundation, Inc.
+#   Copyright 2005-2018 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
@@ -13,10 +13,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-if { [is_remote target] || ![isnative] } then {
-    continue
-}
-
 # Until "set follow-fork-mode" and "catch fork" are implemented on
 # other targets...
 #
@@ -24,6 +20,12 @@ if {![istarget "*-*-linux*"]} then {
     continue
 }
 
+# Checkpoint support is currently implemented in the Linux native
+# target, so only works with "target native".
+if { [target_info gdb_protocol] != "" } {
+    continue
+}
+
 # Must name the source file explicitly, otherwise when driven by
 # checkpoints-ns.exp, we'd try compiling checkpoints-ns.c, which
 # doesn't exist.
@@ -224,45 +226,11 @@ gdb_test "shell diff $pi_txt $copy1_txt"
 delete_breakpoints
 gdb_breakpoint $break2_loc
 
-gdb_test "restart 1" "if .c == EOF.*" "restart 1 three"
-gdb_test "continue" "breakpoint 2.*" "break2 1 one"
-gdb_test "print ftell (out) > 100000" " = 1.*" "outfile still open 1"
-
-gdb_test "restart 2" "if .c == EOF.*" "restart 2 three"
-gdb_test "continue" "breakpoint 2.*" "break2 2 one"
-gdb_test "print ftell (out) > 100000" " = 1.*" "outfile still open 2"
-
-gdb_test "restart 3" "if .c == EOF.*" "restart 3 three"
-gdb_test "continue" "breakpoint 2.*" "break2 3 one"
-gdb_test "print ftell (out) > 100000" " = 1.*" "outfile still open 3"
-
-gdb_test "restart 4" "if .c == EOF.*" "restart 4 three"
-gdb_test "continue" "breakpoint 2.*" "break2 4 one"
-gdb_test "print ftell (out) > 100000" " = 1.*" "outfile still open 4"
-
-gdb_test "restart 5" "if .c == EOF.*" "restart 5 three"
-gdb_test "continue" "breakpoint 2.*" "break2 5 one"
-gdb_test "print ftell (out) > 100000" " = 1.*" "outfile still open 5"
-
-gdb_test "restart 6" "if .c == EOF.*" "restart 6 three"
-gdb_test "continue" "breakpoint 2.*" "break2 6 one"
-gdb_test "print ftell (out) > 100000" " = 1.*" "outfile still open 6"
-
-gdb_test "restart 7" "if .c == EOF.*" "restart 7 three"
-gdb_test "continue" "breakpoint 2.*" "break2 7 one"
-gdb_test "print ftell (out) > 100000" " = 1.*" "outfile still open 7"
-
-gdb_test "restart 8" "if .c == EOF.*" "restart 8 three"
-gdb_test "continue" "breakpoint 2.*" "break2 8 one"
-gdb_test "print ftell (out) > 100000" " = 1.*" "outfile still open 8"
-
-gdb_test "restart 9" "if .c == EOF.*" "restart 9 three"
-gdb_test "continue" "breakpoint 2.*" "break2 9 one"
-gdb_test "print ftell (out) > 100000" " = 1.*" "outfile still open 9"
-
-gdb_test "restart 10" "if .c == EOF.*" "restart 10 three"
-gdb_test "continue" "breakpoint 2.*" "break2 10 one"
-gdb_test "print ftell (out) > 100000" " = 1.*" "outfile still open 10"
+for {set num 1} {$num <= 10} {incr num} {
+    gdb_test "restart $num" "if .c == EOF.*" "restart $num three"
+    gdb_test "continue" "breakpoint 2.*" "break2 $num one"
+    gdb_test "print (long) ftell (out) > 100000" " = 1.*" "outfile still open $num"
+}
 
 #
 # Now confirm that if one fork exits, we automatically switch to another one.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/checkpoint-ns.exp ./gdb/testsuite/gdb.base/checkpoint-ns.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/checkpoint-ns.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/checkpoint-ns.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/chng-syms.exp ./gdb/testsuite/gdb.base/chng-syms.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/chng-syms.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/chng-syms.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/code_elim1.c ./gdb/testsuite/gdb.base/code_elim1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/code_elim1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/code_elim1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/code_elim2.c ./gdb/testsuite/gdb.base/code_elim2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/code_elim2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/code_elim2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/code_elim.exp ./gdb/testsuite/gdb.base/code_elim.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/code_elim.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/code_elim.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/code-expr.exp ./gdb/testsuite/gdb.base/code-expr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/code-expr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/code-expr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/command-line-input.exp ./gdb/testsuite/gdb.base/command-line-input.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/command-line-input.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/command-line-input.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/commands.exp ./gdb/testsuite/gdb.base/commands.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/commands.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/commands.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1988-2017 Free Software Foundation, Inc.
+#   Copyright 1988-2018 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
@@ -34,7 +34,6 @@ proc runto_or_return {function} {
 }
 
 proc_with_prefix gdbvar_simple_if_test {} {
-    global gdb_prompt
     global valnum_re
 
     gdb_test_no_output "set \$foo = 0" "set foo"
@@ -62,7 +61,6 @@ proc_with_prefix gdbvar_simple_if_test {
 }
 
 proc_with_prefix gdbvar_simple_while_test {} {
-    global gdb_prompt
     global valnum_re
 
     gdb_test_no_output "set \$foo = 5" "set foo"
@@ -83,7 +81,6 @@ proc_with_prefix gdbvar_simple_while_tes
 }
 
 proc_with_prefix gdbvar_complex_if_while_test {} {
-    global gdb_prompt
     global valnum_re
 
     gdb_test_no_output "set \$foo = 4" "set foo"
@@ -107,7 +104,6 @@ proc_with_prefix gdbvar_complex_if_while
 }
 
 proc_with_prefix progvar_simple_if_test {} {
-    global gdb_prompt
     global valnum_re
 
     runto_or_return factorial
@@ -139,7 +135,6 @@ proc_with_prefix progvar_simple_if_test 
 }
 
 proc_with_prefix progvar_simple_while_test {} {
-    global gdb_prompt
     global valnum_re
 
     runto_or_return factorial
@@ -164,7 +159,6 @@ proc_with_prefix progvar_simple_while_te
 }
 
 proc_with_prefix progvar_complex_if_while_test {} {
-    global gdb_prompt
     global valnum_re
 
     runto_or_return factorial
@@ -289,7 +283,6 @@ proc_with_prefix breakpoint_command_test
 
 # Test a simple user defined command (with arguments)
 proc_with_prefix user_defined_command_test {} {
-    global gdb_prompt
     global valnum_re
 
     gdb_test_no_output "set \$foo = 4" "set foo"
@@ -384,8 +377,6 @@ proc_with_prefix user_defined_command_ca
 # Test that "eval" in a user-defined command expands $argc/$argN.
 
 proc_with_prefix user_defined_command_args_eval {} {
-    global gdb_prompt
-
     gdb_test_multiple "define command_args_eval" \
 	"define command_args_eval" {
 	    -re "End with"  {
@@ -416,8 +407,6 @@ proc_with_prefix user_defined_command_ar
 # user-defined command (or in this case, recurses).
 
 proc_with_prefix user_defined_command_args_stack_test {} {
-    global gdb_prompt
-
     gdb_test_multiple "define args_stack_command" \
 	"define args_stack_command" {
 	    -re "End with"  {
@@ -473,8 +462,6 @@ proc_with_prefix user_defined_command_ar
 # used to have a hard coded limit of 10 arguments.
 
 proc_with_prefix user_defined_command_manyargs_test {} {
-    global gdb_prompt
-
     set test "define command"
     gdb_test_multiple "define manyargs" $test {
 	-re "End with"  {
@@ -707,8 +694,6 @@ proc_with_prefix bp_deleted_in_command_t
 }
 
 proc_with_prefix temporary_breakpoint_commands {} {
-    global gdb_prompt
-
     delete_breakpoints
 
     # Create a temporary breakpoint, and associate a commands list to it.
@@ -824,8 +809,6 @@ end"
 }
 
 proc gdb_test_no_prompt { command result msg } {
-    global gdb_prompt
-
     set msg "$command - $msg"
     set result "^[string_to_regexp $command]\r\n$result$"
     gdb_test_multiple $command $msg {
@@ -972,8 +955,6 @@ proc_with_prefix error_clears_commands_l
 }
 
 proc_with_prefix redefine_hook_test {} {
-    global gdb_prompt
-
     gdb_test \
 	[multi_line_input \
 	     "define one"\
@@ -1007,8 +988,6 @@ proc_with_prefix redefine_hook_test {} {
 }
 
 proc_with_prefix redefine_backtrace_test {} {
-    global gdb_prompt
-
     gdb_test_multiple "define backtrace" "define backtrace" {
 	-re "Really redefine built-in command \"backtrace\"\\? \\(y or n\\) $"  {
 	    pass "define backtrace"
@@ -1032,6 +1011,81 @@ proc_with_prefix redefine_backtrace_test
     gdb_test "bt" "hibob" "execute bt command"
 }
 
+# Test using "if" and "while" without args when building a command list.
+
+proc define_if_without_arg_test {} {
+    foreach cmd {if while} {
+	set test "define some_command_$cmd"
+	gdb_test_multiple $test $test {
+	    -re "End with"  {
+		pass $test
+	    }
+	}
+
+	gdb_test "$cmd" "if/while commands require arguments." "type $cmd without args"
+    }
+}
+
+# Test the loop_break command.
+
+proc_with_prefix loop_break_test {} {
+    gdb_test_no_output "set \$a = 0" "initialize \$a"
+    gdb_test_no_output "set \$total = 0" "initialize \$total"
+
+    gdb_test \
+	[multi_line_input \
+	     "while \$a < 5" \
+	     "  if \$a == 4" \
+	     "    loop_break" \
+	     "  end" \
+	     "  set \$b = 0" \
+	     "  while \$b < 5" \
+	     "    if \$b == 2" \
+	     "      loop_break" \
+	     "    end" \
+	     "    set \$total = \$total + 1" \
+	     "    set \$b = \$b + 1" \
+	     "  end" \
+	     "  set \$a = \$a + 1" \
+	     "end"] \
+	"" \
+	"run while loop"
+
+    gdb_test "print \$a" " = 4" "validate \$a"
+    gdb_test "print \$b" " = 2" "validate \$b"
+    gdb_test "print \$total" " = 8" "validate \$total"
+}
+
+# Test the loop_continue command.
+
+proc_with_prefix loop_continue_test {} {
+    gdb_test_no_output "set \$a = 0" "initialize \$a"
+    gdb_test_no_output "set \$total = 0" "initialize \$total"
+
+    gdb_test \
+	[multi_line_input \
+	     "while \$a < 5" \
+	     "  set \$a = \$a + 1" \
+	     "  set \$b = 0" \
+	     "  if \$a == 4" \
+	     "    loop_continue" \
+	     "  end" \
+	     "  while \$b < 5" \
+	     "    set \$b = \$b + 1" \
+	     "    if \$b == 2" \
+	     "      loop_continue" \
+	     "    end" \
+	     "    set \$total = \$total + 1" \
+	     "  end" \
+	     "end"] \
+	"" \
+	"run while loop"
+
+    gdb_test "print \$a" " = 5" "validate \$a"
+    gdb_test "print \$b" " = 5" "validate \$b"
+    gdb_test "print \$total" " = 16" "validate \$total"
+}
+
 # Test an input line split with a continuation character (backslash)
 # while entering a multi-line command (in a secondary prompt).
 
@@ -1097,5 +1151,8 @@ if_commands_test
 error_clears_commands_left
 redefine_hook_test
 backslash_in_multi_line_command_test
+define_if_without_arg_test
+loop_break_test
+loop_continue_test
 # This one should come last, as it redefines "backtrace".
 redefine_backtrace_test
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/compare-sections.c ./gdb/testsuite/gdb.base/compare-sections.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/compare-sections.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/compare-sections.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/compare-sections.exp ./gdb/testsuite/gdb.base/compare-sections.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/compare-sections.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/compare-sections.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 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
@@ -117,7 +117,7 @@ with_test_prefix "read-only" {
     set orig -1
 
     set test "get value of read-only section"
-    gdb_test_multiple "print /d *(unsigned char *) $ro_address" "$test" {
+    gdb_test_multiple "print /u *(unsigned char *) $ro_address" "$test" {
 	-re " = (\[0-9\]*).*$gdb_prompt $" {
 	    set orig $expect_out(1,string)
 	    pass "$test"
@@ -135,7 +135,10 @@ with_test_prefix "read-only" {
     # Write PATCH to memory.
     set written -1
     set test "corrupt read-only section"
-    gdb_test_multiple "print /d *(unsigned char *) $ro_address = $patch" "$test" {
+    gdb_test_multiple "print /u *(unsigned char *) $ro_address = $patch" "$test" {
+	-re " = .*Cannot access memory at address $ro_address.*$gdb_prompt $" {
+	    pass "$test (cannot write)"
+	}
 	-re " = (\[0-9\]*).*$gdb_prompt $" {
 	    set written $expect_out(1,string)
 	    pass "$test"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/complete-empty.exp ./gdb/testsuite/gdb.base/complete-empty.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/complete-empty.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/complete-empty.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,44 @@
+# Copyright 2017-2018 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.
+
+load_lib completion-support.exp
+
+gdb_exit
+gdb_start
+
+# Start of tests.
+
+# Test TAB with no input.
+proc_with_prefix empty-input-line {} {
+    # Set max-completions to 1 to avoid having to hardcode a set of
+    # command names.
+    gdb_test_no_output "set max-completions 1"
+
+    # Given the completion limit, this completes to the command with
+    # the lowest alphanumeric sort, which is, and is likely to remain,
+    # "!".
+    test_gdb_complete_unique "" "!" " " 1
+
+    # Same, but with some leading whitespace.
+    test_gdb_complete_unique "   " "   !" " " 1
+}
+
+proc test_driver {} {
+    empty-input-line
+}
+
+test_driver
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/completion.exp ./gdb/testsuite/gdb.base/completion.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/completion.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/completion.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 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
@@ -722,13 +722,13 @@ gdb_test "complete file ./gdb.base/compl
     "file ./gdb.base/completion\\.exp.*" \
     "complete-command 'file ./gdb.base/compl'"
 
-set test "complete 'file ./gdb.base/complet'"
-send_gdb "file ./gdb.base/complet\t"
+set test "complete 'file ./gdb.base/completi'"
+send_gdb "file ./gdb.base/completi\t"
 gdb_test_multiple "" "$test" {
     -re "^file ./gdb.base/completion\\.exp $" {
 	send_gdb "\n"
 	# Ignore the exact error message.
-	gdb_test_multiple "" "complete 'file ./gdb.base/complet'" {
+	gdb_test_multiple "" "complete 'file ./gdb.base/completi'" {
 	    -re "\r\nA program is being debugged already\\.\[\r\n\]+Are you sure you want to change the file\\? \\(y or n\\) $" {
 		send_gdb "n\n"
 		exp_continue
@@ -790,7 +790,7 @@ gdb_test_multiple "" $test {
     -re "break\.c.*break1\.c.*$gdb_prompt " {
 	send_gdb "1\t\n"
 	gdb_test_multiple "" $test {
-	    -re ".*Function \"$srcfile2\" not defined\..*$gdb_prompt " {
+	    -re "malformed linespec error: unexpected end of input\r\n$gdb_prompt " {
 		pass $test
 	    }
 	    -re "$gdb_prompt p$" {
@@ -863,36 +863,45 @@ gdb_test "complete break $srcfile:ma" "b
 
 gdb_test_no_output "set max-completions 5"
 
-set test "command-name completion limiting using tab character"
-send_gdb "p\t"
-gdb_test_multiple "" "$test" {
-    -re "^p\\\x07$" {
-	send_gdb "\t"
-	gdb_test_multiple "" "$test" {
-	    -re "List may be truncated, max-completions reached.*\r\n$gdb_prompt p$" {
-		# Complete the command and ignore the output to resync
-		# gdb for the next test.
-		send_gdb "\n"
-		gdb_test_multiple "" "$test" {
-		    -re "$gdb_prompt $" {
-			pass "$test"
-		    }
+proc ignore_and_resync {cmd result test} {
+    global gdb_prompt
+
+    gdb_test_multiple "" "$test" {
+	-re "^${cmd}$" {
+	    # Complete the command and ignore the output
+	    # to resync gdb for the next test.
+	    send_gdb "\n"
+	    gdb_test_multiple "" "$test" {
+		-re "$gdb_prompt $" {
+		    $result $test
 		}
 	    }
-	    -re "$gdb_prompt p$" {
-		# Complete the command and ignore the output to resync
-		# gdb for the next test.
-		send_gdb "\n"
-		gdb_test_multiple "" "$test" {
-		    -re "$gdb_prompt $" {
-			fail "$test"
-		    }
+	}
+    }
+}
+
+proc test_tab_complete {cmd test} {
+    global gdb_prompt
+
+    send_gdb "${cmd}\t"
+    gdb_test_multiple "" "$test" {
+	-re "^${cmd}\\\x07$" {
+	    send_gdb "\t"
+	    gdb_test_multiple "" "$test" {
+		-re "List may be truncated, max-completions reached.*\r\n$gdb_prompt " {
+		    ignore_and_resync $cmd pass $test
+		}
+		-re "$gdb_prompt " {
+		    ignore_and_resync $cmd fail $test
 		}
 	    }
-        }
+	}
     }
 }
 
+test_tab_complete "p" \
+    "command-name completion limiting using tab character"
+
 set test "command-name completion limiting using complete command"
 send_gdb "complete p\n"
 gdb_test_multiple "" "$test" {
@@ -903,35 +912,8 @@ gdb_test_multiple "" "$test" {
 
 gdb_test_no_output "set max-completions 3"
 
-set test "symbol-name completion limiting using tab character"
-send_gdb "p marker\t"
-gdb_test_multiple "" "$test" {
-    -re "^p marker\\\x07$" {
-	send_gdb "\t"
-	gdb_test_multiple "" "$test" {
-	    -re "List may be truncated, max-completions reached.*\r\n$gdb_prompt p marker$" {
-		# Complete the command and ignore the output to resync
-		# gdb for the next test.
-		send_gdb "\n"
-		gdb_test_multiple "" "$test" {
-		    -re "$gdb_prompt $" {
-			pass "$test"
-		    }
-		}
-	    }
-	    -re "$gdb_prompt p marker$" {
-		# Complete the command and ignore the output to resync
-		# gdb for the next test.
-		send_gdb "\n"
-		gdb_test_multiple "" "$test" {
-		    -re "$gdb_prompt $" {
-			fail "$test"
-		    }
-		}
-	    }
-        }
-    }
-}
+test_tab_complete "p marker" \
+    "symbol-name completion limiting using tab character"
 
 set test "symbol-name completion limiting using complete command"
 send_gdb "complete p mark\n"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/complex.c ./gdb/testsuite/gdb.base/complex.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/complex.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/complex.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2002-2017 Free Software Foundation, Inc.
+/* Copyright 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/complex.exp ./gdb/testsuite/gdb.base/complex.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/complex.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/complex.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/comprdebug.exp ./gdb/testsuite/gdb.base/comprdebug.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/comprdebug.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/comprdebug.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/condbreak-call-false.c ./gdb/testsuite/gdb.base/condbreak-call-false.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/condbreak-call-false.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/condbreak-call-false.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2013-2017 Free Software Foundation, Inc.
+/* Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/condbreak-call-false.exp ./gdb/testsuite/gdb.base/condbreak-call-false.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/condbreak-call-false.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/condbreak-call-false.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/condbreak.exp ./gdb/testsuite/gdb.base/condbreak.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/condbreak.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/condbreak.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/cond-eval-mode.c ./gdb/testsuite/gdb.base/cond-eval-mode.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/cond-eval-mode.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/cond-eval-mode.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/cond-eval-mode.exp ./gdb/testsuite/gdb.base/cond-eval-mode.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/cond-eval-mode.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/cond-eval-mode.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2012-2017 Free Software Foundation, Inc.
+#   Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/cond-expr.exp ./gdb/testsuite/gdb.base/cond-expr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/cond-expr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/cond-expr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/consecutive.exp ./gdb/testsuite/gdb.base/consecutive.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/consecutive.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/consecutive.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2001-2017 Free Software Foundation, Inc.
+#   Copyright 2001-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/consecutive-step-over.c ./gdb/testsuite/gdb.base/consecutive-step-over.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/consecutive-step-over.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/consecutive-step-over.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2014-2017 Free Software Foundation, Inc.
+/* Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/consecutive-step-over.exp ./gdb/testsuite/gdb.base/consecutive-step-over.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/consecutive-step-over.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/consecutive-step-over.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/constvars.exp ./gdb/testsuite/gdb.base/constvars.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/constvars.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/constvars.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/continue-all-already-running.c ./gdb/testsuite/gdb.base/continue-all-already-running.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/continue-all-already-running.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/continue-all-already-running.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/continue-all-already-running.exp ./gdb/testsuite/gdb.base/continue-all-already-running.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/continue-all-already-running.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/continue-all-already-running.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/coredump-filter.c ./gdb/testsuite/gdb.base/coredump-filter.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/coredump-filter.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/coredump-filter.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2015-2017 Free Software Foundation, Inc.
+/* Copyright 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/coredump-filter.exp ./gdb/testsuite/gdb.base/coredump-filter.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/coredump-filter.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/coredump-filter.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
@@ -33,16 +33,26 @@ if { ![runto_main] } {
 gdb_breakpoint [gdb_get_line_number "break-here"]
 gdb_continue_to_breakpoint "break-here" ".* break-here .*"
 
-proc do_save_core { filter_flag core } {
+proc do_save_core { filter_flag core dump_excluded } {
     verbose -log "writing $filter_flag to /proc/<inferior pid>/coredump_filter"
 
     gdb_test "p set_coredump_filter ($filter_flag)" " = 0"
 
+    # Enable dumping of excluded mappings (i.e. VM_DONTDUMP).
+    if { $dump_excluded == 1 } {
+        gdb_test_no_output "set dump-excluded-mappings on"
+    }
+
     # Generate a corefile.
     gdb_gcore_cmd "$core" "save corefile"
+
+    # Restore original status.
+    if { $dump_excluded == 1 } {
+        gdb_test_no_output "set dump-excluded-mappings off"
+    }
 }
 
-proc do_load_and_test_core { core var working_var working_value } {
+proc do_load_and_test_core { core var working_var working_value dump_excluded } {
     global hex decimal coredump_var_addr
 
     set core_loaded [gdb_core_cmd "$core" "load core"]
@@ -52,10 +62,16 @@ proc do_load_and_test_core { core var wo
     }
 
     # Access the memory the addresses point to.
-    gdb_test "print/x *(char *) $coredump_var_addr($var)" "\(\\\$$decimal = <error: \)?Cannot access memory at address $hex\(>\)?" \
-	"printing $var when core is loaded (should not work)"
-    gdb_test "print/x *(char *) $coredump_var_addr($working_var)" " = $working_value.*" \
-	"print/x *$working_var ( = $working_value)"
+    if { $dump_excluded == 0 } {
+        gdb_test "print/x *(char *) $coredump_var_addr($var)" "\(\\\$$decimal = <error: \)?Cannot access memory at address $hex\(>\)?" \
+	    "printing $var when core is loaded (should not work)"
+        gdb_test "print/x *(char *) $coredump_var_addr($working_var)" " = $working_value.*" \
+	    "print/x *$working_var ( = $working_value)"
+    } else {
+        # Check if VM_DONTDUMP mappings are present in the core file.
+        gdb_test "print/x *(char *) $coredump_var_addr($var)" " = $working_value.*" \
+	    "print/x *$var ( = $working_value)"
+    }
 }
 
 # We do not do file-backed mappings in the test program, but it is
@@ -107,6 +123,7 @@ set non_shared_anon_core [standard_outpu
 # A corefile without {private,shared} {anonymous,file-backed} pages
 set non_private_shared_anon_file_core [standard_output_file non-private-shared-anon-file.gcore]
 set dont_dump_core [standard_output_file dont-dump.gcore]
+set dump_excluded_core [standard_output_file dump-excluded.gcore]
 
 # We will generate a few corefiles.
 #
@@ -122,6 +139,8 @@ set dont_dump_core [standard_output_file
 # - name of a variable in the C source code that points to a memory
 #   mapping that WILL be present in the corefile
 # - corresponding value expected for the above variable
+# - whether to include mappings marked as VM_DONTDUMP in the
+#   corefile (1) or not (0).
 #
 # This list refers to the corefiles generated by MAP_ANONYMOUS in the
 # test program.
@@ -129,13 +148,16 @@ set dont_dump_core [standard_output_file
 set all_anon_corefiles { { "non-Private-Anonymous" "0x7e" \
 			       $non_private_anon_core \
 			       "private_anon" \
-			       "shared_anon" "0x22" }
+			       "shared_anon" "0x22" "0" }
     { "non-Shared-Anonymous" "0x7d" \
 	  $non_shared_anon_core "shared_anon" \
-	  "private_anon" "0x11" }
+	  "private_anon" "0x11" "0" }
     { "DoNotDump" "0x33" \
 	  $dont_dump_core "dont_dump" \
-	  "shared_anon" "0x22" } }
+	  "shared_anon" "0x22" "0" }
+    { "DoNotDump-DumpExcluded" "0x33" \
+	  $dump_excluded_core "dont_dump" \
+	  "shared_anon" "0x55" "1" } }
 
 # If corefile loading is not supported, we do not even try to run the
 # tests.
@@ -181,12 +203,12 @@ foreach item $all_anon_corefiles {
 # Generate corefiles for the "anon" case.
 foreach item $all_anon_corefiles {
     with_test_prefix "saving corefile for [lindex $item 0]" {
-	do_save_core [lindex $item 1] [subst [lindex $item 2]]
+	do_save_core [lindex $item 1] [subst [lindex $item 2]] [lindex $item 6]
     }
 }
 
 with_test_prefix "saving corefile for non-Private-Shared-Anon-File" {
-    do_save_core "0x60" $non_private_shared_anon_file_core
+    do_save_core "0x60" $non_private_shared_anon_file_core "0"
 }
 
 clean_restart $testfile
@@ -194,7 +216,7 @@ clean_restart $testfile
 foreach item $all_anon_corefiles {
     with_test_prefix "loading and testing corefile for [lindex $item 0]" {
 	do_load_and_test_core [subst [lindex $item 2]] [lindex $item 3] \
-	    [lindex $item 4] [lindex $item 5]
+	    [lindex $item 4] [lindex $item 5] [lindex $item 6]
     }
 
     with_test_prefix "disassembling function main for [lindex $item 0]" {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/corefile.exp ./gdb/testsuite/gdb.base/corefile.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/corefile.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/corefile.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 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
@@ -188,6 +188,15 @@ gdb_test "core" "No core file now."
 proc corefile_test_run {} {
     global corefile gdb_prompt
 
+    # This test is trying to check whether the "run" command finds the
+    # default run target when already debugging a core, so it would
+    # fail on boards that set auto-connect-native-target off.  Since
+    # there's no real point in running the test but with the native
+    # target, it's easier to just skip elsewhere.
+    if {[target_info gdb_protocol] != ""} {
+	return
+    }
+
     gdb_test "core-file $corefile" "Core was generated by .*" "run: load core again"
     gdb_test "info files" "\r\nLocal core dump file:\r\n.*" "run: sanity check we see the core file"
 
@@ -244,7 +253,16 @@ gdb_exit
 proc corefile_test_attach {} {
     global binfile corefile gdb_prompt
 
-    if ![is_remote target] {
+    # This test is checking whether the "attach" command finds the
+    # default run target when already debugging a core, so it would
+    # fail on boards that set auto-connect-native-target off.  Since
+    # there's no real point in running the test but with the native
+    # target, it's easier to just skip elsewhere.
+    if {[target_info gdb_protocol] != ""} {
+	return
+    }
+
+    if [can_spawn_for_attach] {
 	set test "attach: spawn sleep"
 	set res [remote_spawn host "$binfile sleep"]
 	if { $res < 0 || $res == "" } {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/coremaker.c ./gdb/testsuite/gdb.base/coremaker.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/coremaker.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/coremaker.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 1992-2017 Free Software Foundation, Inc.
+/* Copyright 1992-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ctxobj.exp ./gdb/testsuite/gdb.base/ctxobj.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ctxobj.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ctxobj.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ctxobj-f.c ./gdb/testsuite/gdb.base/ctxobj-f.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ctxobj-f.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ctxobj-f.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* This testcase is part of GDB, the GNU debugger.
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ctxobj-m.c ./gdb/testsuite/gdb.base/ctxobj-m.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ctxobj-m.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ctxobj-m.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* This testcase is part of GDB, the GNU debugger.
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ctxobj-v.c ./gdb/testsuite/gdb.base/ctxobj-v.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ctxobj-v.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ctxobj-v.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* This testcase is part of GDB, the GNU debugger.
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/cursal.c ./gdb/testsuite/gdb.base/cursal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/cursal.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/cursal.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2004-2017 Free Software Foundation, Inc.
+/* Copyright 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/cursal.exp ./gdb/testsuite/gdb.base/cursal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/cursal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/cursal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/cvexpr.c ./gdb/testsuite/gdb.base/cvexpr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/cvexpr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/cvexpr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/cvexpr.exp ./gdb/testsuite/gdb.base/cvexpr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/cvexpr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/cvexpr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dbx.exp ./gdb/testsuite/gdb.base/dbx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dbx.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dbx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 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
@@ -174,21 +174,6 @@ proc gdb_file_cmd {arg} {
 
     send_gdb "symbol-file $arg\n"
     gdb_expect {
-	-re "Detected 64-bit symbol file.\r\nInvoking.*gdb64.*$gdb_prompt $" {
-            verbose "\t\tLoaded $arg into the $GDB"
-            send_gdb "exec-file $arg\n" 
-            gdb_expect {
-                -re ".*$gdb_prompt $" {
-                    verbose "\t\tLoaded $arg with new symbol table into $GDB"
-                    return 0
-                }
-                timeout {
-                    perror "(timeout) Couldn't load $arg"
-                    return -1
-                }
-            }
-            return 0
-        }
         -re "Reading symbols from.*done.*$gdb_prompt $" {
             verbose "\t\tLoaded $arg into the $GDB"
             send_gdb "exec-file $arg\n" 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dcache-line-read-error.c ./gdb/testsuite/gdb.base/dcache-line-read-error.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dcache-line-read-error.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dcache-line-read-error.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dcache-line-read-error.exp ./gdb/testsuite/gdb.base/dcache-line-read-error.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dcache-line-read-error.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dcache-line-read-error.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/debug-expr.exp ./gdb/testsuite/gdb.base/debug-expr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/debug-expr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/debug-expr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/default.exp ./gdb/testsuite/gdb.base/default.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/default.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/default.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1988-2017 Free Software Foundation, Inc.
+#   Copyright 1988-2018 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
@@ -511,7 +511,7 @@ gdb_test "set history size" "Argument re
 #test set history
 gdb_test "set history" "\"set history\" must be followed by the name of a history subcommand.(\[^\r\n\]*\[\r\n\])+List of set history subcommands:(\[^\r\n\]*\[\r\n\])+set history expansion -- Set history expansion on command input(\[^\r\n\]*\[\r\n\])+set history filename -- Set the filename in which to record the command history(\[^\r\n\]*\[\r\n\])+set history save -- Set saving of the history record on exit(\[^\r\n\]*\[\r\n\])+set history size -- Set the size of the command history(\[^\r\n\]*\[\r\n\])+Type \"help set history\" followed by set history subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous." "set history"
 #test set language
-gdb_test "set language" "Requires an argument. Valid arguments are ada, c, c.., asm, minimal, d, fortran, go, auto, local, unknown, modula-2, objective-c, opencl, pascal, rust." "set language"
+gdb_test "set language" "Requires an argument. Valid arguments are auto, local, unknown, ada, asm, c, c.., d, fortran, go, minimal, modula-2, objective-c, opencl, pascal, rust." "set language"
 #test set listsize
 gdb_test "set listsize" "Argument required .integer to set it to.*" "set listsize"
 #test set print "p" abbreviation
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/define.exp ./gdb/testsuite/gdb.base/define.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/define.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/define.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/del.c ./gdb/testsuite/gdb.base/del.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/del.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/del.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2006-2017 Free Software Foundation, Inc.
+   Copyright 2006-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/del.exp ./gdb/testsuite/gdb.base/del.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/del.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/del.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/detach.exp ./gdb/testsuite/gdb.base/detach.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/detach.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/detach.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2003-2017 Free Software Foundation, Inc.
+#   Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dfp-exprs.exp ./gdb/testsuite/gdb.base/dfp-exprs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dfp-exprs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dfp-exprs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007-2018 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
@@ -113,7 +113,10 @@ proc test_dfp_arithmetic_expressions {} 
     gdb_test "ptype 3 + 2.1dl" " = _Decimal128"
 
     # Reject operation with integral larger than 32-bits
-    gdb_test "p 1.2df + 2ll" "Conversion of large integer to a decimal floating type is not supported."
+    gdb_test "p 1.2dd + 2ll" "= 3.2"
+    gdb_test "p 1.2dd + 2147483648ll" "Conversion of large integer to a decimal floating type is not supported."
+    gdb_test "p 1.2dd + 2147483648ull" "= 2147483649.2"
+    gdb_test "p 1.2dd + 4294967296ull" "Conversion of large integer to a decimal floating type is not supported."
 
     # Reject operation with DFP and Binary FP
     gdb_test "p 1.2df + 1.2f" "Mixing decimal floating types with other floating types is not allowed."
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dfp-test.c ./gdb/testsuite/gdb.base/dfp-test.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dfp-test.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dfp-test.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 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
@@ -91,6 +91,23 @@ volatile _Decimal32 d32;
 volatile _Decimal64 d64;
 volatile _Decimal128 d128;
 
+/* Typedefs and typedefs of typedefs, for ptype/whatis testing.  */
+typedef _Decimal32 d32_t;
+typedef _Decimal64 d64_t;
+typedef _Decimal128 d128_t;
+
+typedef d32_t d32_t2;
+typedef d64_t d64_t2;
+typedef d128_t d128_t2;
+
+d32_t v_d32_t;
+d64_t v_d64_t;
+d128_t v_d128_t;
+
+d32_t2 v_d32_t2;
+d64_t2 v_d64_t2;
+d128_t2 v_d128_t2;
+
 struct decstruct
 {
   int int4;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dfp-test.exp ./gdb/testsuite/gdb.base/dfp-test.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dfp-test.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dfp-test.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007-2018 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
@@ -274,10 +274,15 @@ gdb_test "ptype d64 + ds.dec32" " = vola
 gdb_test "ptype d128 + ds.dec32" " = volatile _Decimal128"
 gdb_test "ptype d128 + ds.dec64" " = volatile _Decimal128"
 
+gdb_test "whatis d64 + ds.dec32" " = volatile _Decimal64"
+gdb_test "whatis d128 + ds.dec32" " = volatile _Decimal128"
+gdb_test "whatis d128 + ds.dec64" " = volatile _Decimal128"
+
 # Mixture of Decimal and integral operands
 gdb_test "p d32 + 1" " = 1.1"
 gdb_test "p 2 + d64" " = 2.1"
 gdb_test "p ds.int4 + d128" " = 1.1"
+gdb_test "p d32 + ds.long8" " = 2.1"
 gdb_test "ptype d32 + 1" " = volatile _Decimal32"
 gdb_test "ptype ds.int4 + d128" " = volatile _Decimal128"
 
@@ -304,11 +309,6 @@ gdb_test "p ds.dec32 < ds.int4" " = 0"
 gdb_test "p ds.int4 > ds.dec64" " = 0"
 gdb_test "p ds.dec128 > ds.int4" " = 1"
 
-# Reject operation with integral larger than 32-bits
-if { ${sizeof_long} > 4 } {
-  gdb_test "p d32 + ds.long8" "Conversion of large integer to a decimal floating type is not supported."
-}
-
 # Reject operation with DFP and Binary FP
 gdb_test "p d64 + ds.float4" "Mixing decimal floating types with other floating types is not allowed."
 gdb_test "p ds.double8 + d128" "Mixing decimal floating types with other floating types is not allowed."
@@ -331,3 +331,58 @@ gdb_test "print ds.dec128 = -ds.double8"
 gdb_test "print ds.dec128 = ds.dec32" " = -0.1"
 gdb_test "print ds.dec32 = ds.int4" " = 1"
 gdb_test "print ds.int4 = 7.3dl" " = 7"
+
+# Test "whatis"/"ptype" of expressions involving casts to/from dfp
+# typedefs.
+
+# This list is composed by sub-lists, and their elements are (in
+# order):
+#
+# - Type to cast to.  This is also what "whatis" should print.
+# - What "ptype" should print.
+
+# Columns in the sublists represent:
+     # to/whatis   # ptype
+foreach elem {
+    {"_Decimal32"  "_Decimal32"}
+    {"_Decimal64"  "_Decimal64"}
+    {"_Decimal128" "_Decimal128"}
+    {"d32_t"       "_Decimal32"}
+    {"d64_t"       "_Decimal64"}
+    {"d128_t"      "_Decimal128"}
+    {"d32_t2"      "_Decimal32"}
+    {"d64_t2"      "_Decimal64"}
+    {"d128_t2"     "_Decimal128"}
+} {
+    set type [lindex $elem 0]
+    set ptype [lindex $elem 1]
+    gdb_test "whatis ($type) 0" " = $type"
+    gdb_test "ptype ($type) 0" " = $ptype"
+}
+
+# Test:
+# - whatis/ptype of variables of typedef type.
+# - whatis/ptype of typedef type names.
+# - whatis/ptype of typedef-of-typedef type names.
+
+# Columns in the sublists represent:
+    # Type name    # whatis      # ptype
+foreach elem {
+    {"v_d32_t"     "d32_t"       "_Decimal32"}
+    {"v_d64_t"     "d64_t"       "_Decimal64"}
+    {"v_d128_t"    "d128_t"      "_Decimal128"}
+
+    {"d32_t"       "_Decimal32"  "_Decimal32"}
+    {"d64_t"       "_Decimal64"  "_Decimal64"}
+    {"d128_t"      "_Decimal128" "_Decimal128"}
+
+    {"d32_t2"      "d32_t"       "_Decimal32"}
+    {"d64_t2"      "d64_t"       "_Decimal64"}
+    {"d128_t2"     "d128_t"      "_Decimal128"}
+} {
+    set type [lindex $elem 0]
+    set whatis [lindex $elem 1]
+    set ptype [lindex $elem 2]
+    gdb_test "whatis $type" " = $whatis"
+    gdb_test "ptype $type" " = $ptype"
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disabled-location.c ./gdb/testsuite/gdb.base/disabled-location.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disabled-location.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/disabled-location.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disabled-location.exp ./gdb/testsuite/gdb.base/disabled-location.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disabled-location.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/disabled-location.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disasm-end-cu-1.c ./gdb/testsuite/gdb.base/disasm-end-cu-1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disasm-end-cu-1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/disasm-end-cu-1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disasm-end-cu-2.c ./gdb/testsuite/gdb.base/disasm-end-cu-2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disasm-end-cu-2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/disasm-end-cu-2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disasm-end-cu.exp ./gdb/testsuite/gdb.base/disasm-end-cu.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disasm-end-cu.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/disasm-end-cu.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disasm-optim.c ./gdb/testsuite/gdb.base/disasm-optim.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disasm-optim.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/disasm-optim.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disasm-optim.exp ./gdb/testsuite/gdb.base/disasm-optim.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disasm-optim.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/disasm-optim.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disasm-optim.h ./gdb/testsuite/gdb.base/disasm-optim.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disasm-optim.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/disasm-optim.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disasm-optim.S ./gdb/testsuite/gdb.base/disasm-optim.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/disasm-optim.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/disasm-optim.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/display.exp ./gdb/testsuite/gdb.base/display.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/display.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/display.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dmsym.c ./gdb/testsuite/gdb.base/dmsym.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dmsym.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dmsym.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 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
@@ -15,11 +15,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/>.  */
 
-int pck__foo__bar__minsym = 123;
+static int test_minsym = 123;
 
 int
-get_pck__foo__bar__minsym (void)
+get_test_minsym (void)
 {
-  pck__foo__bar__minsym++;
-  return pck__foo__bar__minsym;
+  test_minsym++;
+  return test_minsym;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dmsym.exp ./gdb/testsuite/gdb.base/dmsym.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dmsym.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dmsym.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 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
@@ -44,42 +44,31 @@ clean_restart ${testfile}
 set num "\[0-9\]+"
 set addr "0x\[0-9a-zA-Z\]+"
 
-# Although the test program is written in C, the original problem
-# occurs only when the language is Ada. The use of a C program is
-# only a convenience to be able to exercise the original problem
-# without requiring an Ada compiler. In the meantime, temporarily
-# force the language to Ada.
-
-gdb_test_no_output "set lang ada"
-
-# Verify that setting a breakpoint on `pck__foo__bar__minsym' only
-# results in one location found (function pck__foo__bar__minsym__2).
-# A mistake would be to also insert a breakpoint where
-# pck__foo__bar__minsym is defined.  Despite the fact that there is
-# no debugging info available, this is a data symbol and thus should
-# not be used for breakpoint purposes.
+# Verify that setting a breakpoint on `test_minsym' only results in
+# one location found.  A mistake would be to also insert a breakpoint
+# in the test_minsym data symbol in dmsym.c.  Despite the fact that
+# there is no debugging info available, this is a data symbol and thus
+# should not be used for breakpoint purposes.
 
-gdb_test "break pck__foo__bar__minsym" \
+gdb_test "break test_minsym" \
          "Breakpoint $num at $addr.: file .*dmsym_main\\.c, line $num\\."
 
 # However, verify that the `info line' command, on the other hand,
 # finds both locations.
 
-gdb_test "info line pck__foo__bar__minsym" \
-         "Line $num of \".*dmsym_main\\.c\" .*\r\nNo line number information available for address $addr <pck__foo__bar__minsym>"
+gdb_test "info line test_minsym" \
+         "Line $num of \".*dmsym_main\\.c\" .*\r\nNo line number information available for address $addr <test_minsym>"
 
-gdb_test_no_output "set lang auto"
-
-# Now, run the program until we get past the call to
-# pck__foo__bar__minsym__2. Except when using hardware breakpoints,
-# inferior behavior is going to be affected if a breakpoint was
-# incorrectly inserted at pck__foo__bar__minsym.
+# Now, run the program until we get past the call to test_minsym.
+# Except when using hardware breakpoints, inferior behavior is going
+# to be affected if a breakpoint was incorrectly inserted at
+# test_minsym.
 
 gdb_breakpoint dmsym_main.c:[gdb_get_line_number "BREAK" dmsym_main.c]
 
 gdb_run_cmd
 gdb_test "" \
-         "Breakpoint $num, pck__foo__bar__minsym__2 \\(\\) at.*" \
+         "Breakpoint $num, test_minsym \\(\\) at.*" \
          "run until breakpoint at BREAK"
 
 gdb_test "continue" \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dmsym_main.c ./gdb/testsuite/gdb.base/dmsym_main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dmsym_main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dmsym_main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 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
@@ -15,18 +15,18 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-extern int get_pck__foo__bar__minsym (void);
+extern int get_test_minsym (void);
 
-int
-pck__foo__bar__minsym__2 (void)
+static int
+test_minsym (void)
 {
-  return get_pck__foo__bar__minsym ();
+  return get_test_minsym ();
 }
 
 int
 main (void)
 {
-  int val = pck__foo__bar__minsym__2 ();
+  int val = test_minsym ();
 
   if (val != 124) /* BREAK */
     return 1;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/double-prompt-target-event-error.c ./gdb/testsuite/gdb.base/double-prompt-target-event-error.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/double-prompt-target-event-error.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/double-prompt-target-event-error.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/double-prompt-target-event-error.exp ./gdb/testsuite/gdb.base/double-prompt-target-event-error.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/double-prompt-target-event-error.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/double-prompt-target-event-error.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-bp-same-addr.c ./gdb/testsuite/gdb.base/dprintf-bp-same-addr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-bp-same-addr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dprintf-bp-same-addr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp ./gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf.c ./gdb/testsuite/gdb.base/dprintf.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dprintf.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-detach.c ./gdb/testsuite/gdb.base/dprintf-detach.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-detach.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dprintf-detach.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-detach.exp ./gdb/testsuite/gdb.base/dprintf-detach.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-detach.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dprintf-detach.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2014-2017 Free Software Foundation, Inc.
+#   Copyright 2014-2018 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
@@ -53,7 +53,7 @@ proc dprintf_detach_test { breakpoint_al
 	# Get PID of test program.
 	set inferior_pid -1
 	set test "get inferior process ID"
-	gdb_test_multiple "call getpid ()" $test {
+	gdb_test_multiple "call (int) getpid ()" $test {
 	    -re ".* = ($decimal).*$gdb_prompt $" {
 		set inferior_pid $expect_out(1,string)
 		pass $test
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf.exp ./gdb/testsuite/gdb.base/dprintf.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dprintf.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-next.c ./gdb/testsuite/gdb.base/dprintf-next.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-next.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dprintf-next.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-next.exp ./gdb/testsuite/gdb.base/dprintf-next.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-next.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dprintf-next.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-non-stop.c ./gdb/testsuite/gdb.base/dprintf-non-stop.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-non-stop.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dprintf-non-stop.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-non-stop.exp ./gdb/testsuite/gdb.base/dprintf-non-stop.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-non-stop.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dprintf-non-stop.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2013-2018 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
@@ -13,12 +13,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if [is_remote target] then {
-    # Testing with remote/non-stop is racy at the moment.
-    unsupported "testing dprintf with remote/non-stop is not supported."
-    return 0
-}
-
 standard_testfile
 set executable ${testfile}
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-pending.c ./gdb/testsuite/gdb.base/dprintf-pending.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-pending.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dprintf-pending.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-pending.exp ./gdb/testsuite/gdb.base/dprintf-pending.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-pending.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dprintf-pending.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2013-2017 Free Software Foundation, Inc.
+#   Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-pendshr.c ./gdb/testsuite/gdb.base/dprintf-pendshr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dprintf-pendshr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dprintf-pendshr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dso2dso.c ./gdb/testsuite/gdb.base/dso2dso.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dso2dso.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dso2dso.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2015-2017 Free Software Foundation, Inc.
+/* Copyright 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dso2dso-dso1.c ./gdb/testsuite/gdb.base/dso2dso-dso1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dso2dso-dso1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dso2dso-dso1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2015-2017 Free Software Foundation, Inc.
+/* Copyright 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dso2dso-dso1.h ./gdb/testsuite/gdb.base/dso2dso-dso1.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dso2dso-dso1.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dso2dso-dso1.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2015-2017 Free Software Foundation, Inc.
+/* Copyright 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dso2dso-dso2.c ./gdb/testsuite/gdb.base/dso2dso-dso2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dso2dso-dso2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dso2dso-dso2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2015-2017 Free Software Foundation, Inc.
+/* Copyright 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dso2dso-dso2.h ./gdb/testsuite/gdb.base/dso2dso-dso2.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dso2dso-dso2.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dso2dso-dso2.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2015-2017 Free Software Foundation, Inc.
+/* Copyright 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dso2dso.exp ./gdb/testsuite/gdb.base/dso2dso.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dso2dso.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dso2dso.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dtrace-probe.c ./gdb/testsuite/gdb.base/dtrace-probe.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dtrace-probe.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dtrace-probe.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dtrace-probe.d ./gdb/testsuite/gdb.base/dtrace-probe.d
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dtrace-probe.d	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dtrace-probe.d	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dtrace-probe.exp ./gdb/testsuite/gdb.base/dtrace-probe.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dtrace-probe.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dtrace-probe.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dump.exp ./gdb/testsuite/gdb.base/dump.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dump.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dump.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 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
@@ -101,12 +101,7 @@ if { ! [ runto checkpoint1 ] } then {
 
 # Get the endianness for the later use with endianless formats.
 
-gdb_test_multiple "show endian" "show endian" {
-    -re ".* (big|little) endian.*$gdb_prompt $" { 
-	set endian $expect_out(1,string) 
-	pass "endianness: $endian"
-    }
-}
+set endian [get_endianness]
 
 # Now generate some dump files.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/duplicate-bp.c ./gdb/testsuite/gdb.base/duplicate-bp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/duplicate-bp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/duplicate-bp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/duplicate-bp.exp ./gdb/testsuite/gdb.base/duplicate-bp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/duplicate-bp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/duplicate-bp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dup-sect.exp ./gdb/testsuite/gdb.base/dup-sect.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dup-sect.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dup-sect.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dup-sect.S ./gdb/testsuite/gdb.base/dup-sect.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/dup-sect.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dup-sect.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/echo.exp ./gdb/testsuite/gdb.base/echo.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/echo.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/echo.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+#   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/empty_exe.exp ./gdb/testsuite/gdb.base/empty_exe.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/empty_exe.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/empty_exe.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ena-dis-br.exp ./gdb/testsuite/gdb.base/ena-dis-br.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ena-dis-br.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ena-dis-br.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 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
@@ -324,6 +324,9 @@ set b4 [break_at main ""]
 #
 # WHAT - the command to test (disable/enable).
 #
+# Note: tests involving location ranges (and more) are found in
+# gdb.cp/ena-dis-br-range.exp.
+#
 proc test_ena_dis_br { what } {
     global b1
     global b2
@@ -369,7 +372,7 @@ proc test_ena_dis_br { what } {
 
     # Now enable(disable) $b1 fooo.1, it should give error on fooo.
     gdb_test "$what $b1 fooo.1" \
-       "Bad breakpoint number 'fooo'" \
+       "Bad breakpoint number 'fooo\\.1'" \
        "$what \$b1 fooo.1"
 
     # $b1 should be enabled(disabled).
@@ -392,10 +395,10 @@ proc test_ena_dis_br { what } {
        }
     }
 
-    # Now enable(disable) $b4.1 fooobaar and
-    # it should give warning on fooobaar.
+    # Now enable(disable) '$b4.1 fooobaar'.  This should error on
+    # fooobaar.
     gdb_test "$what $b4.1 fooobaar" \
-       "warning: bad breakpoint number at or near 'fooobaar'" \
+       "Bad breakpoint number 'fooobaar'" \
        "$what \$b4.1 fooobar"
     set test1 "${what}d \$b4.1"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ending-run.exp ./gdb/testsuite/gdb.base/ending-run.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ending-run.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ending-run.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/enum_cond.c ./gdb/testsuite/gdb.base/enum_cond.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/enum_cond.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/enum_cond.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* This testcase is part of GDB, the GNU debugger.
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/enum_cond.exp ./gdb/testsuite/gdb.base/enum_cond.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/enum_cond.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/enum_cond.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/enumval.c ./gdb/testsuite/gdb.base/enumval.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/enumval.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/enumval.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/enumval.exp ./gdb/testsuite/gdb.base/enumval.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/enumval.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/enumval.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/environ.exp ./gdb/testsuite/gdb.base/environ.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/environ.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/environ.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 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
@@ -13,297 +13,98 @@
 # 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 running programs
-#
+gdb_start
 
-# This test exists solely to exercise the "environment" commands for
-# code-coverage on HP-UX.
-#
-if ![istarget "hppa*-*-hpux*"] then {
-  return
-}
-
-standard_testfile break.c break1.c
-
-if {[prepare_for_testing "failed to prepare" $testfile \
-	 [list $srcfile $srcfile2] {debug nowarnings}]} {
-    return -1
-}
-
-if ![runto_main] then { fail "environment command tests suppressed" }
-
-# (No, this is not really related to the environment commands.  But it's
-# a convenient place to verify that this command works.)
-#
-send_gdb "info program\n"
-gdb_expect {
-  -re ".*Using the running image of child process \[0-9\]*.\r\nProgram stopped at 0x\[0-9a-fA-F\]*.\r\nIt stopped at breakpoint 1..*$gdb_prompt $"\
-          {pass "info program"}
-  -re "$gdb_prompt $"\
-          {fail "info program"}
-  timeout {fail "(timeout) info program"}
-}
-
-# We don't really care where this step lands, so long as it gets
-# the inferior pushed off the breakpoint it's currently on...
-#
-send_gdb "next\n"
-gdb_expect {
-  -re ".*$gdb_prompt $"\
-          {pass "step before info program"}
-  timeout {fail "(timeout) step before info program"}
+proc test_set_show_env_var { name value test_name } {
+    gdb_test_no_output "set environment $name $value" "$test_name"
+    gdb_test "show environment $name" "$name = $value" \
+	"confirm $test_name"
 }
-send_gdb "info program\n"
-gdb_expect {
-  -re ".*Using the running image of child process \[0-9\]*.\r\nProgram stopped at 0x\[0-9a-fA-F\]*.\r\nIt stopped after being stepped..*$gdb_prompt $"\
-          {pass "info program after step"}
-  -re "$gdb_prompt $"\
-          {fail "info program after step"}
-  timeout {fail "(timeout) info program after step"}
-}
-
-if ![runto_main] then { fail "environment command tests suppressed" }
 
-send_gdb "delete\n"
-gdb_expect {
-  -re ".*y or n. $"\
-          {send_gdb "y\n"
-           gdb_expect {
-             -re ".*$gdb_prompt $"\
-                     {pass "delete breakpoint before info program"}
-             timeout {fail "(timeout) delete breakpoint before info program"}
-           }
-          }
-  -re "$gdb_prompt $"\
-          {fail "delete breakpoint before info program"}
-  timeout {fail "(timeout) delete breakpoint before info program"}
-}
-send_gdb "info program\n"
-gdb_expect {
-  -re ".*Using the running image of child process \[0-9\]*.\r\nProgram stopped at 0x\[0-9a-fA-F\]*.\r\nIt stopped at a breakpoint that has since been deleted..*$gdb_prompt $"\
-          {pass "info program after deleted breakpoint"}
-  -re "$gdb_prompt $"\
-          {fail "info program after deleted breakpoint"}
-  timeout {fail "(timeout) info program after deleted breakpoint"}
+proc test_set_show_env_var_equal { name value test_name } {
+    gdb_test_no_output "set environment $name = $value" "$test_name"
+    gdb_test "show environment $name" "$name = $value" \
+	"confirm $test_name"
 }
 
 # Verify that we can show all currently-set environment variables.
-# (It's a bit hacky, but nonetheless probably safe to check for at
-# least the SHELL variable.)
-#
-# need to increase timeout because of very long output
-set oldtimeout $timeout
-set timeout [expr "$timeout + 300"]
-
-send_gdb "show environment\n"
-gdb_expect {
-  -re ".*SHELL=(\[a-zA-Z0-9\]*).*$gdb_prompt $"\
-          {pass "show environment"}
-  -re "$gdb_prompt $"\
-          {fail "show environment"}
-  timeout {fail "(timeout) show environment"}
-}
-set timeout $oldtimeout
+# It's hard to do this verification since we can't really compare each
+# entry with the current environment.  So we just check to see if
+# there is anything that looks like an environment variable being
+# printed.
+gdb_test "show environment" "(\[A-Za-z_\]+=.*)+" \
+    "show environment works"
 
 # Verify that we can unset a specific environment variable.
-#
-send_gdb "unset environment EDITOR\n"
-gdb_expect {
-  -re "$gdb_prompt $"\
-          {pass "issue unset environment"}
-  timeout {fail "(timeout) issue unset environment"}
-}
-send_gdb "show environment EDITOR\n"
-gdb_expect {
-  -re "Environment variable \"EDITOR\" not defined.\r\n$gdb_prompt $"\
-          {pass "unset environment"}
-  -re "$gdb_prompt $"\
-          {fail "unset environment"}
-  timeout {fail "(timeout) unset environment"}
-}
+gdb_test_no_output "unset environment EDITOR" "unset environment variable"
+
+gdb_test "show environment EDITOR" "Environment variable \"EDITOR\" not defined\." \
+    "confirm unset environment variable worked"
 
 # Verify that we can unset all environment variables.
-#
-send_gdb "unset environment\n"
-gdb_expect {
-  -re "Delete all environment variables.*y or n. $"\
-          {send_gdb "y\n"
-           gdb_expect {
-             -re "$gdb_prompt $"\
-                     {pass "unset entire environment"}
-             timeout {fail "(timeout) unset entire environment"}
-           }
-          }
-  -re "$gdb_prompt $"\
-          {fail "unset entire environment"}
-  timeout {fail "(timeout) unset entire environment"}
-}
+gdb_test "unset environment" "" "unset all environment variables" \
+    "Delete all environment variables. .y or n. $" \
+    "y"
+
+gdb_test_no_output "show environment" \
+    "all environment variables have been unset"
 
 # Verify that we can set a specific environment variable.
-#
-send_gdb "set environment EDITOR emacs\n"
-gdb_expect {
-  -re "$gdb_prompt $"\
-          {pass "issue set environment"}
-  timeout {fail "(timeout) issue set environment"}
-}
-send_gdb "show environment EDITOR\n"
-gdb_expect {
-  -re "EDITOR = emacs\r\n$gdb_prompt $"\
-          {pass "set environment"}
-  -re "$gdb_prompt $"\
-          {fail "set environment"}
-  timeout {fail "(timeout) set environment"}
-}
+test_set_show_env_var "EDITOR" "emacs" "set environment variable"
 
 # Verify that GDB responds gracefully to a request to set environment,
 # with no variable name.
-#
-send_gdb "set environment\n"
-gdb_expect {
-  -re "Argument required .environment variable and value..*$gdb_prompt $"\
-          {pass "set environment without variable disallowed"}
-  -re "$gdb_prompt $"\
-          {fail "set environment without variable disallowed"}
-  timeout {fail "(timeout) set environment without variable disallowed"}
-}
+gdb_test "set environment" "Argument required \\\(environment variable and value\\\)\." \
+    "set environment without arguments"
 
 # I'm not sure just what GDB has in mind in explicitly checking
 # for this variant, but since GDB handles it, test it.
-#
-send_gdb "set environment =\n"
-gdb_expect {
-  -re "Argument required .environment variable to set..*$gdb_prompt $"\
-          {pass "set environment equals without variable disallowed"}
-  -re "$gdb_prompt $"\
-          {fail "set environment equals without variable disallowed"}
-  timeout {fail "(timeout) set environment equals without variable disallowed"}
-}
+gdb_test "set environment =" "Argument required \\\(environment variable to set\\\)\." \
+    "set environment without variable name"
 
 # Setting an environment variable without a value sets it to a NULL
 # value.
-#
-send_gdb "set environment EDITOR\n"
-gdb_expect {
-  -re "Setting environment variable \"EDITOR\" to null value..*$gdb_prompt $"\
-          {pass "issue set environment without variable value"}
-  -re "$gdb_prompt $"\
-          {fail "issue set environment without variable value"}
-  timeout {fail "(timeout) issue set environment without variable value"}
-}
-send_gdb "show environment EDITOR\n"
-gdb_expect {
-  -re "EDITOR = \r\n$gdb_prompt $"\
-          {pass "set environment without variable value"}
-  -re "$gdb_prompt $"\
-          {fail "set environment without variable value"}
-  timeout {fail "(timeout) set environment without variable value"}
-}
+gdb_test "set environment EDITOR" "Setting environment variable \"EDITOR\" to null value\." \
+    "set environment variable to null value"
+gdb_test "show environment EDITOR" "EDITOR = " "show null environment variable"
 
 # Verify that GDB responds gracefully to an attempt to show a
 # non-existent environment variable.  (We hope this variable is
 # undefined!)
-#
-send_gdb "show environment FOOBARBAZGRUNGESPAZBALL\n"
-gdb_expect {
-  -re "Environment variable \"FOOBARBAZGRUNGESPAZBALL\" not defined..*$gdb_prompt $"\
-          {pass "show non-existent environment variable disallowed"}
-  -re "$gdb_prompt $"\
-          {fail "show non-existent environment variable disallowed"}
-  timeout {fail "(timeout) show non-existent environment variable disallowed"}
-}
+gdb_test "show environment FOOBARBAZGRUNGESPAZBALL" \
+    "Environment variable \"FOOBARBAZGRUNGESPAZBALL\" not defined\." \
+    "show non-existent environment variable"
 
 # Verify that GDB can set an environment variable hitherto undefined.
-#
-send_gdb "set environment FOOBARBAZGRUNGESPAZBALL t\n"
-gdb_expect {
-  -re "$gdb_prompt $"\
-          {pass "issue set environment for previously undefined variable"}
-  timeout {fail "(timeout) issue set environment for previously undefined variable"}
-}
-send_gdb "show environment FOOBARBAZGRUNGESPAZBALL\n"
-gdb_expect {
-  -re "FOOBARBAZGRUNGESPAZBALL = t\r\n$gdb_prompt $"\
-          {pass "set environment for previously undefined variable"}
-  -re "$gdb_prompt $"\
-          {fail "set environment for previously undefined variable"}
-  timeout {fail "(timeout) set environment for previously undefined variable"}
-}
+test_set_show_env_var "FOOBARBAZGRUNGESPAZBALL" "t" \
+    "set environment variable previously undefined"
 
 # Verify that GDB can also set an environment variable using the "="
 # syntax.
-#
-send_gdb "set environment FOOBARBAZGRUNGESPAZBALL = t\n"
-gdb_expect {
-  -re "$gdb_prompt $"\
-          {pass "issue set environment with equals"}
-  timeout {fail "(timeout) issue set environment with equals"}
-}
-send_gdb "show environment FOOBARBAZGRUNGESPAZBALL\n"
-gdb_expect {
-  -re "FOOBARBAZGRUNGESPAZBALL = t\r\n$gdb_prompt $"\
-          {pass "set environment with equals"}
-  -re "$gdb_prompt $"\
-          {fail "set environment with equals"}
-  timeout {fail "(timeout) set environment with equals"}
-}
+test_set_show_env_var_equal "FOOBARBAZGRUNGESPAZBALL" "y" \
+    "set environment variable using = syntax"
 
 # Verify that GDB can set an environment variable to a value that has
 # an embedded (trailing, in this case) equals.
-#
-send_gdb "set environment FOOBARBAZGRUNGESPAZBALL t=\n"
-gdb_expect {
-  -re "$gdb_prompt $"\
-          {pass "issue set environment with trailing equals"}
-  timeout {fail "(timeout) issue set environment with trailing equals"}
-}
-send_gdb "show environment FOOBARBAZGRUNGESPAZBALL\n"
-gdb_expect {
-  -re "FOOBARBAZGRUNGESPAZBALL = t=\r\n$gdb_prompt $"\
-          {pass "set environment with trailing equals"}
-  -re "$gdb_prompt $"\
-          {fail "set environment with trailing equals"}
-  timeout {fail "(timeout) set environment with trailing equals"}
-}
+test_set_show_env_var_equal "FOOBARBAZGRUNGESPAZBALL" "t=" \
+    "set environment variable with trailing equals"
 
 # Verify that GDB can set an environment variable to a value preceded
 # by whitespace, and that such whitespace is ignored (not included
 # in the set value).
-#
-send_gdb "set environment FOOBARBAZGRUNGESPAZBALL =     foo\n"
-gdb_expect {
-  -re "$gdb_prompt $"\
-          {pass "issue set environment with preceding whitespace"}
-  timeout {fail "(timeout) issue set environment with preceding whitespace"}
-}
-send_gdb "show environment FOOBARBAZGRUNGESPAZBALL\n"
-gdb_expect {
-  -re "FOOBARBAZGRUNGESPAZBALL = foo\r\n$gdb_prompt $"\
-          {pass "set environment with preceding whitespace"}
-  -re "$gdb_prompt $"\
-          {fail "set environment with preceding whitespace"}
-  timeout {fail "(timeout) set environment with preceding whitespace"}
-}
+gdb_test_no_output "set environment FOOBARBAZGRUNGESPAZBALL =        foo" \
+    "set environment variable with trailing whitespace"
+gdb_test "show environment FOOBARBAZGRUNGESPAZBALL" \
+    "FOOBARBAZGRUNGESPAZBALL = foo" \
+    "confirm set environment variable with trailing whitespace"
 
 # Verify that GDB can manipulate the distinguished PATH variable.
-#
-send_gdb "path /tmp/FOOBARBAZGRUNGESPAZBALL\n"
-gdb_expect {
-  -re ".*Executable and object file path: /tmp/FOOBARBAZGRUNGESPAZBALL.*$gdb_prompt $"\
-          {pass "issue path"}
-  -re "$gdb_prompt $"\
-          {fail "issue path"}
-  timeout {fail "(timeout) issue path"}
-}
-send_gdb "show paths\n"
-gdb_expect {
-  -re "Executable and object file path: /tmp/FOOBARBAZGRUNGESPAZBALL.*$gdb_prompt $"\
-          {pass "show paths"}
-  -re "$gdb_prompt $"\
-          {fail "show paths"}
-  timeout {fail "(timeout) show paths"}
-}
+gdb_test "path /tmp/FOOBARBAZGRUNGESPAZBALL" \
+    "Executable and object file path: /tmp/FOOBARBAZGRUNGESPAZBALL.*" \
+    "set path works properly"
+gdb_test "show paths" \
+    "Executable and object file path: /tmp/FOOBARBAZGRUNGESPAZBALL.*" \
+    "show paths works properly"
 
 gdb_exit
 return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/eu-strip-infcall.c ./gdb/testsuite/gdb.base/eu-strip-infcall.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/eu-strip-infcall.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/eu-strip-infcall.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2011-2017 Free Software Foundation, Inc.
+/* Copyright 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/eu-strip-infcall.exp ./gdb/testsuite/gdb.base/eu-strip-infcall.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/eu-strip-infcall.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/eu-strip-infcall.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/eval-avoid-side-effects.exp ./gdb/testsuite/gdb.base/eval-avoid-side-effects.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/eval-avoid-side-effects.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/eval-avoid-side-effects.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/eval.exp ./gdb/testsuite/gdb.base/eval.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/eval.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/eval.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/eval-skip.exp ./gdb/testsuite/gdb.base/eval-skip.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/eval-skip.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/eval-skip.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/examine-backward.c ./gdb/testsuite/gdb.base/examine-backward.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/examine-backward.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/examine-backward.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/examine-backward.exp ./gdb/testsuite/gdb.base/examine-backward.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/examine-backward.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/examine-backward.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/exec-invalid-sysroot.exp ./gdb/testsuite/gdb.base/exec-invalid-sysroot.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/exec-invalid-sysroot.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/exec-invalid-sysroot.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/execl-update-breakpoints.c ./gdb/testsuite/gdb.base/execl-update-breakpoints.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/execl-update-breakpoints.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/execl-update-breakpoints.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/execl-update-breakpoints.exp ./gdb/testsuite/gdb.base/execl-update-breakpoints.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/execl-update-breakpoints.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/execl-update-breakpoints.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/execution-termios.c ./gdb/testsuite/gdb.base/execution-termios.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/execution-termios.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/execution-termios.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/execution-termios.exp ./gdb/testsuite/gdb.base/execution-termios.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/execution-termios.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/execution-termios.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/exe-lock.exp ./gdb/testsuite/gdb.base/exe-lock.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/exe-lock.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/exe-lock.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/exitsignal.exp ./gdb/testsuite/gdb.base/exitsignal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/exitsignal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/exitsignal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/expand-psymtabs.c ./gdb/testsuite/gdb.base/expand-psymtabs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/expand-psymtabs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/expand-psymtabs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/expand-psymtabs.exp ./gdb/testsuite/gdb.base/expand-psymtabs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/expand-psymtabs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/expand-psymtabs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 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
@@ -11,8 +11,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 # This file is part of the gdb testsuite.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/exprs.exp ./gdb/testsuite/gdb.base/exprs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/exprs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/exprs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1988-2017 Free Software Foundation, Inc.
+#   Copyright 1988-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fileio.c ./gdb/testsuite/gdb.base/fileio.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fileio.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/fileio.c	2018-01-09 02:04:57.000000000 +0000
@@ -74,10 +74,14 @@ static const char *strerrno (int err);
 
 #define STRING      "Hello World"
 
-static void stop () {}
+static void stop (void) {}
 
-int
-test_open ()
+/* A NULL string.  We pass this to stat below instead of a NULL
+   literal to avoid -Wnonnull warnings.  */
+const char *null_str;
+
+void
+test_open (void)
 {
   int ret;
 
@@ -136,8 +140,8 @@ test_open ()
   stop ();
 }
 
-int
-test_write ()
+void
+test_write (void)
 {
   int fd, ret;
 
@@ -153,7 +157,7 @@ test_write ()
       close (fd);
     }
   else
-    printf ("write 1: ret = %d, errno = %d\n", ret, errno);
+    printf ("write 1: errno = %d\n", errno);
   stop ();
   /* Write using invalid file descriptor */
   errno = 0;
@@ -173,12 +177,12 @@ test_write ()
       close (fd);
     }
   else
-    printf ("write 3: ret = %d, errno = %d\n", ret, errno);
+    printf ("write 3: errno = %d\n", errno);
   stop ();
 }
 
-int
-test_read ()
+void
+test_read (void)
 {
   int fd, ret;
   char buf[16];
@@ -199,7 +203,7 @@ test_read ()
       close (fd);
     }
   else
-    printf ("read 1: ret = %d, errno = %d\n", ret, errno);
+    printf ("read 1: errno = %d\n", errno);
   stop ();
   /* Read using invalid file descriptor */
   errno = 0;
@@ -209,8 +213,8 @@ test_read ()
   stop ();
 }
 
-int
-test_lseek ()
+void
+test_lseek (void)
 {
   int fd;
   off_t ret = 0;
@@ -251,8 +255,8 @@ test_lseek ()
   stop ();
 }
 
-int
-test_close ()
+void
+test_close (void)
 {
   int fd, ret;
 
@@ -267,7 +271,7 @@ test_close ()
               ret == 0 ? "OK" : "");
     }
   else
-    printf ("close 1: ret = %d, errno = %d\n", ret, errno);
+    printf ("close 1: errno = %d\n", errno);
   stop ();
   /* Close an invalid file descriptor */
   errno = 0;
@@ -277,8 +281,8 @@ test_close ()
   stop ();
 }
 
-int
-test_stat ()
+void
+test_stat (void)
 {
   int ret;
   struct stat st;
@@ -294,7 +298,7 @@ test_stat ()
   stop ();
   /* NULL pathname */
   errno = 0;
-  ret = stat (NULL, &st);
+  ret = stat (null_str, &st);
   printf ("stat 2: ret = %d, errno = %d %s\n", ret, errno,
   	  strerrno (errno));
   stop ();
@@ -312,8 +316,8 @@ test_stat ()
   stop ();
 }
 
-int
-test_fstat ()
+void
+test_fstat (void)
 {
   int fd, ret;
   struct stat st;
@@ -333,7 +337,7 @@ test_fstat ()
       close (fd);
     }
   else
-    printf ("fstat 1: ret = %d, errno = %d\n", ret, errno);
+    printf ("fstat 1: errno = %d\n", errno);
   stop ();
   /* Fstat using invalid file descriptor */
   errno = 0;
@@ -343,8 +347,8 @@ test_fstat ()
   stop ();
 }
 
-int
-test_isatty ()
+void
+test_isatty (void)
 {
   int fd;
 
@@ -373,8 +377,8 @@ test_isatty ()
 
 char sys[1512];
 
-int
-test_system ()
+void
+test_system (void)
 {
   /*
    * Requires test framework to switch on "set remote system-call-allowed 1"
@@ -405,8 +409,8 @@ test_system ()
   stop ();
 }
 
-int
-test_rename ()
+void
+test_rename (void)
 {
   int ret;
   struct stat st;
@@ -460,8 +464,8 @@ test_rename ()
 
 char name[1256];
 
-int
-test_unlink ()
+void
+test_unlink (void)
 {
   int ret;
 
@@ -500,8 +504,8 @@ test_unlink ()
   stop ();
 }
 
-int
-test_time ()
+void
+test_time (void)
 {
   time_t ret, t;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fileio.exp ./gdb/testsuite/gdb.base/fileio.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fileio.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/fileio.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2002-2017 Free Software Foundation, Inc.
+#   Copyright 2002-2018 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
@@ -69,7 +69,7 @@ if ![runto_main] then {
 
 gdb_test "break stop" "Breakpoint .*$srcfile.*" 
 
-set stop_msg ".*Breakpoint .* stop \\(\\) at.*$srcfile:.*static void stop \\(\\) {}.*"
+set stop_msg ".*Breakpoint .* stop \\(\\) at.*$srcfile:.*static void stop \\(void\\) {}.*"
 
 gdb_test continue \
 "Continuing\\..*open 1:.*OK$stop_msg" \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/filesym.c ./gdb/testsuite/gdb.base/filesym.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/filesym.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/filesym.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/filesym.exp ./gdb/testsuite/gdb.base/filesym.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/filesym.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/filesym.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/find.c ./gdb/testsuite/gdb.base/find.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/find.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/find.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Testcase for the find command.
    This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/find.exp ./gdb/testsuite/gdb.base/find.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/find.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/find.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/find-unmapped.c ./gdb/testsuite/gdb.base/find-unmapped.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/find-unmapped.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/find-unmapped.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/find-unmapped.exp ./gdb/testsuite/gdb.base/find-unmapped.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/find-unmapped.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/find-unmapped.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
@@ -13,12 +13,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if {[is_remote target]} {
-    # gdbserver prints the warning message but expect is parsing only the
-    # GDB output, not the gdbserver output.
-    return 0
-}
-
 standard_testfile
 
 if { [prepare_for_testing "failed to prepare" ${testfile}] } {
@@ -35,12 +29,58 @@ gdb_test "x/5w global_var_1" \
 gdb_test "x/5w global_var_2" \
     "$hex:\[ \t\]+Cannot access memory at address $hex"
 
-# Now try a find starting from each global.
-gdb_test "find global_var_0, global_var_2, 0xff" \
-    "warning: Unable to access $decimal bytes of target memory at $hex, halting search\.\r\nPattern not found."
 
-gdb_test "find global_var_1, global_var_2, 0xff" \
-    "warning: Unable to access $decimal bytes of target memory at $hex, halting search\.\r\nPattern not found."
+# Try a find starting from each global, expecting the search to fail
+# due to memory access failure.
+#
+# If EXPECT_WARNING is true, then expect the "Unable to access
+# ... halting search" warning before the "Pattern not found" output.
+# Otherwise, don't expect the warning.
+#
+# (EXPECT_WARNING is necessary because when testing with the RSP
+# against servers that support the remote search memory packet, GDB
+# does not print that "halting search" warning.  While there are
+# servers that do print the same warning message as GDB would if it
+# were in charge of the search (like GDBserver), we're only parsing
+# GDB's output here, not the server's output.  And while we could read
+# GDBserver's output from $inferior_spawn_id, having GDBserver print
+# the warnings on its terminal doesn't really help users.  Much better
+# would be to extend the remote protocol to let the server tell GDB
+# which memory range couldn't be accessed, and then let GDB print the
+# warning instead of the server.  See PR gdb/22293.)
+
+proc test_not_found {expect_warning} {
+    global decimal hex
+
+    if {$expect_warning} {
+	set halting_search_re \
+	    "warning: Unable to access $decimal bytes of target memory at $hex, halting search\.\r\n"
+    } else {
+	set halting_search_re ""
+    }
+
+    # Now try a find starting from each global.
+    gdb_test "find global_var_0, global_var_2, 0xff" \
+	"${halting_search_re}Pattern not found."
+
+    gdb_test "find global_var_1, global_var_2, 0xff" \
+	"${halting_search_re}Pattern not found."
+
+    gdb_test "find global_var_2, (global_var_2 + 16), 0xff" \
+	"${halting_search_re}Pattern not found."
+}
 
-gdb_test "find global_var_2, (global_var_2 + 16), 0xff" \
-    "warning: Unable to access $decimal bytes of target memory at $hex, halting search\.\r\nPattern not found."
+# If testing with the RSP, also test with target-side search
+# acceleration disabled.  This serves as proxy for servers that don't
+# support the memory search packet, when testing with GDBserver.
+
+if {[target_info gdb_protocol] == "remote"
+    || [target_info gdb_protocol] == "extended-remote"} {
+    test_not_found 0
+    with_test_prefix "search-memory-packet off" {
+	gdb_test_no_output "set remote search-memory-packet off"
+	test_not_found 0
+    }
+} else {
+    test_not_found 1
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/finish.exp ./gdb/testsuite/gdb.base/finish.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/finish.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/finish.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2000-2017 Free Software Foundation, Inc.
+# Copyright 2000-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fixsection.c ./gdb/testsuite/gdb.base/fixsection.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fixsection.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/fixsection.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fixsection.exp ./gdb/testsuite/gdb.base/fixsection.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fixsection.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/fixsection.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/float128.c ./gdb/testsuite/gdb.base/float128.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/float128.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/float128.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 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
@@ -21,6 +21,10 @@
 long double ld;
 __float128 f128;
 
+// Test largest IEEE-128 value.  This has to be supported since the
+// __float128 data type by definition is encoded as IEEE-128.
+__float128 large128 = 1.18973149535723176508575932662800702e+4932q;
+
 int main()
 {
   ld = 1.375l;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/float128.exp ./gdb/testsuite/gdb.base/float128.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/float128.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/float128.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 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
@@ -74,3 +74,6 @@ gdb_test_multiple "set var f128=20.375l"
 gdb_test "print ld" ".* = 10\\.375.*" "the value of ld is changed to 10.375"
 gdb_test "print f128" ".* = 20\\.375.*" "the value of f128 is changed to 20.375"
 
+# Test that we can correctly handle the largest IEEE-128 value
+gdb_test "print large128" ".* = 1\\.18973149535723176508575932662800702e\\+4932" "print large128"
+
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/float.c ./gdb/testsuite/gdb.base/float.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/float.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/float.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/float.exp ./gdb/testsuite/gdb.base/float.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/float.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/float.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/floatn.c ./gdb/testsuite/gdb.base/floatn.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/floatn.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/floatn.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/floatn.exp ./gdb/testsuite/gdb.base/floatn.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/floatn.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/floatn.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-exec.c ./gdb/testsuite/gdb.base/foll-exec.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-exec.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/foll-exec.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 1997-2017 Free Software Foundation, Inc.
+   Copyright 1997-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-exec.exp ./gdb/testsuite/gdb.base/foll-exec.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-exec.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/foll-exec.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-exec-mode.c ./gdb/testsuite/gdb.base/foll-exec-mode.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-exec-mode.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/foll-exec-mode.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-exec-mode.exp ./gdb/testsuite/gdb.base/foll-exec-mode.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-exec-mode.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/foll-exec-mode.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#    Copyright 1997-2017 Free Software Foundation, Inc.
+#    Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-fork.exp ./gdb/testsuite/gdb.base/foll-fork.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-fork.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/foll-fork.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-vfork.c ./gdb/testsuite/gdb.base/foll-vfork.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-vfork.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/foll-vfork.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1997-2017 Free Software Foundation, Inc.
+   Copyright 1997-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-vfork-exit.c ./gdb/testsuite/gdb.base/foll-vfork-exit.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-vfork-exit.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/foll-vfork-exit.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1997-2017 Free Software Foundation, Inc.
+   Copyright 1997-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-vfork.exp ./gdb/testsuite/gdb.base/foll-vfork.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/foll-vfork.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/foll-vfork.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fork-running-state.c ./gdb/testsuite/gdb.base/fork-running-state.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fork-running-state.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/fork-running-state.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fork-running-state.exp ./gdb/testsuite/gdb.base/fork-running-state.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fork-running-state.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/fork-running-state.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fortran-sym-case.c ./gdb/testsuite/gdb.base/fortran-sym-case.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fortran-sym-case.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/fortran-sym-case.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fortran-sym-case.exp ./gdb/testsuite/gdb.base/fortran-sym-case.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fortran-sym-case.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/fortran-sym-case.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/frame-args.c ./gdb/testsuite/gdb.base/frame-args.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/frame-args.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/frame-args.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/frame-args.exp ./gdb/testsuite/gdb.base/frame-args.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/frame-args.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/frame-args.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/freebpcmd.c ./gdb/testsuite/gdb.base/freebpcmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/freebpcmd.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/freebpcmd.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Test program for GDB crashes while doing bp commands that continue inferior.
-   Copyright 2003-2017 Free Software Foundation, Inc.
+   Copyright 2003-2018 Free Software Foundation, Inc.
 
    This file is part of the gdb testsuite.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/freebpcmd.exp ./gdb/testsuite/gdb.base/freebpcmd.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/freebpcmd.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/freebpcmd.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2003-2017 Free Software Foundation, Inc.
+#   Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fullname.c ./gdb/testsuite/gdb.base/fullname.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fullname.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/fullname.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fullname.exp ./gdb/testsuite/gdb.base/fullname.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fullname.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/fullname.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fullpath-expand.c ./gdb/testsuite/gdb.base/fullpath-expand.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fullpath-expand.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/fullpath-expand.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fullpath-expand.exp ./gdb/testsuite/gdb.base/fullpath-expand.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fullpath-expand.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/fullpath-expand.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fullpath-expand-func.c ./gdb/testsuite/gdb.base/fullpath-expand-func.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/fullpath-expand-func.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/fullpath-expand-func.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/funcargs.exp ./gdb/testsuite/gdb.base/funcargs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/funcargs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/funcargs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 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
@@ -1139,15 +1139,9 @@ gdb_test_multiple "print sizeof (int)" "
     }
 }
 
-gdb_test_multiple "show endian" "getting target endian" {
-    -re ".*little endian.*$gdb_prompt $" {
-	set target_bigendian_p 0
-	# pass silently
-    }
-    -re ".*big endian.*$gdb_prompt $" {
-	set target_bigendian_p 1
-	# pass silently
-    }
+switch [get_endianness] {
+    little { set target_bigendian_p 0 }
+    big { set target_bigendian_p 1 }
 }
 
 # Perform tests
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/func-ptr.c ./gdb/testsuite/gdb.base/func-ptr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/func-ptr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/func-ptr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/func-ptr.exp ./gdb/testsuite/gdb.base/func-ptr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/func-ptr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/func-ptr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/func-ptrs.c ./gdb/testsuite/gdb.base/func-ptrs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/func-ptrs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/func-ptrs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/func-ptrs.exp ./gdb/testsuite/gdb.base/func-ptrs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/func-ptrs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/func-ptrs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore-buffer-overflow.c ./gdb/testsuite/gdb.base/gcore-buffer-overflow.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore-buffer-overflow.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gcore-buffer-overflow.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2007-2017 Free Software Foundation, Inc.
+/* Copyright 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore-buffer-overflow.exp ./gdb/testsuite/gdb.base/gcore-buffer-overflow.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore-buffer-overflow.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gcore-buffer-overflow.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore.c ./gdb/testsuite/gdb.base/gcore.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gcore.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2002-2017 Free Software Foundation, Inc.
+/* Copyright 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore.exp ./gdb/testsuite/gdb.base/gcore.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gcore.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore-relro.exp ./gdb/testsuite/gdb.base/gcore-relro.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore-relro.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gcore-relro.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore-relro-lib.c ./gdb/testsuite/gdb.base/gcore-relro-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore-relro-lib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gcore-relro-lib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2010-2017 Free Software Foundation, Inc.
+/* Copyright 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore-relro-main.c ./gdb/testsuite/gdb.base/gcore-relro-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore-relro-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gcore-relro-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2010-2017 Free Software Foundation, Inc.
+/* Copyright 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore-relro-pie.c ./gdb/testsuite/gdb.base/gcore-relro-pie.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore-relro-pie.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gcore-relro-pie.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2013-2017 Free Software Foundation, Inc.
+/* Copyright 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore-relro-pie.exp ./gdb/testsuite/gdb.base/gcore-relro-pie.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gcore-relro-pie.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gcore-relro-pie.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1056.exp ./gdb/testsuite/gdb.base/gdb1056.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1056.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb1056.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1090.c ./gdb/testsuite/gdb.base/gdb1090.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1090.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb1090.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Test program for multi-register variable.
-   Copyright 2003-2017 Free Software Foundation, Inc.
+   Copyright 2003-2018 Free Software Foundation, Inc.
 
    This file is part of the gdb testsuite.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1090.exp ./gdb/testsuite/gdb.base/gdb1090.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1090.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb1090.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb11530.c ./gdb/testsuite/gdb.base/gdb11530.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb11530.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb11530.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    Contributed by Pierre Muller.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb11530.exp ./gdb/testsuite/gdb.base/gdb11530.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb11530.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb11530.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb11531.c ./gdb/testsuite/gdb.base/gdb11531.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb11531.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb11531.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    Contributed by Pierre Muller.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb11531.exp ./gdb/testsuite/gdb.base/gdb11531.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb11531.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb11531.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1250.c ./gdb/testsuite/gdb.base/gdb1250.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1250.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb1250.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test program for stack trace through noreturn function.
 
-   Copyright 2003-2017 Free Software Foundation, Inc.
+   Copyright 2003-2018 Free Software Foundation, Inc.
 
    This file is part of the gdb testsuite.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1250.exp ./gdb/testsuite/gdb.base/gdb1250.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1250.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb1250.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1555.c ./gdb/testsuite/gdb.base/gdb1555.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1555.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb1555.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test step/next in a shared library
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1555.exp ./gdb/testsuite/gdb.base/gdb1555.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1555.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb1555.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1555-main.c ./gdb/testsuite/gdb.base/gdb1555-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1555-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb1555-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test step/next in a shared library
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1821.c ./gdb/testsuite/gdb.base/gdb1821.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1821.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb1821.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test printing of structure member names in gdb. PR exp/1821
 
-   Copyright 2005-2017 Free Software Foundation, Inc.
+   Copyright 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1821.exp ./gdb/testsuite/gdb.base/gdb1821.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb1821.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb1821.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdbhistsize-history.exp ./gdb/testsuite/gdb.base/gdbhistsize-history.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdbhistsize-history.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdbhistsize-history.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdbindex-stabs.c ./gdb/testsuite/gdb.base/gdbindex-stabs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdbindex-stabs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdbindex-stabs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdbindex-stabs-dwarf.c ./gdb/testsuite/gdb.base/gdbindex-stabs-dwarf.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdbindex-stabs-dwarf.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdbindex-stabs-dwarf.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdbindex-stabs.exp ./gdb/testsuite/gdb.base/gdbindex-stabs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdbindex-stabs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdbindex-stabs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdbinit-history.exp ./gdb/testsuite/gdb.base/gdbinit-history.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdbinit-history.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdbinit-history.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb-sigterm-2.exp ./gdb/testsuite/gdb.base/gdb-sigterm-2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb-sigterm-2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb-sigterm-2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb-sigterm.c ./gdb/testsuite/gdb.base/gdb-sigterm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb-sigterm.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb-sigterm.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb-sigterm.exp ./gdb/testsuite/gdb.base/gdb-sigterm.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdb-sigterm.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdb-sigterm.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdbvars.exp ./gdb/testsuite/gdb.base/gdbvars.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gdbvars.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gdbvars.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2017 Free Software Foundation, Inc.
+# Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/global-var-nested-by-dso.c ./gdb/testsuite/gdb.base/global-var-nested-by-dso.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/global-var-nested-by-dso.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/global-var-nested-by-dso.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2014-2017 Free Software Foundation, Inc.
+/* Copyright 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/global-var-nested-by-dso.exp ./gdb/testsuite/gdb.base/global-var-nested-by-dso.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/global-var-nested-by-dso.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/global-var-nested-by-dso.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/global-var-nested-by-dso-solib1.c ./gdb/testsuite/gdb.base/global-var-nested-by-dso-solib1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/global-var-nested-by-dso-solib1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/global-var-nested-by-dso-solib1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2014-2017 Free Software Foundation, Inc.
+/* Copyright 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/global-var-nested-by-dso-solib2.c ./gdb/testsuite/gdb.base/global-var-nested-by-dso-solib2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/global-var-nested-by-dso-solib2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/global-var-nested-by-dso-solib2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2014-2017 Free Software Foundation, Inc.
+/* Copyright 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gnu-debugdata.c ./gdb/testsuite/gdb.base/gnu-debugdata.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gnu-debugdata.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gnu-debugdata.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gnu-debugdata.exp ./gdb/testsuite/gdb.base/gnu-debugdata.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gnu-debugdata.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gnu-debugdata.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gnu-ifunc.c ./gdb/testsuite/gdb.base/gnu-ifunc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gnu-ifunc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gnu-ifunc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gnu-ifunc.exp ./gdb/testsuite/gdb.base/gnu-ifunc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gnu-ifunc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gnu-ifunc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gnu-ifunc-lib.c ./gdb/testsuite/gdb.base/gnu-ifunc-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gnu-ifunc-lib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gnu-ifunc-lib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gnu_vector.c ./gdb/testsuite/gdb.base/gnu_vector.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gnu_vector.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gnu_vector.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gnu_vector.exp ./gdb/testsuite/gdb.base/gnu_vector.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/gnu_vector.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/gnu_vector.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 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
@@ -48,12 +48,7 @@ if { ![runto main] } {
 }
 
 # Get endianess for the scalar->vector casts
-gdb_test_multiple "show endian" "show endian" {
-    -re ".* (big|little) endian.*$gdb_prompt $" { 
-	set endian $expect_out(1,string) 
-	pass "endianness: $endian"
-    }
-}
+set endian [get_endianness]
 
 # Test printing of character vector types
 gdb_test "print c4" "\\\$$decimal = \\{1, 2, 3, 4\\}"
@@ -100,6 +95,17 @@ gdb_test "print -f4a" "\\\$$decimal = \\
 gdb_test "print (char4) 0x01010101" "\\\$$decimal = \\{1, 1, 1, 1\\}"
 gdb_test "print (int2) lla" "\\\$$decimal = \\{1, 1\\}"
 
+# Check that "whatis" doesn't peel off the destination type's typedef
+# by mistake, in expressions that involve a cast to typedef type.
+gdb_test "whatis (char4) 0x01010101" "type = char4"
+gdb_test "whatis (int2) lla" "type = int2"
+# Check that OTOH "ptype" does peel off the destination type's
+# typedef.
+gdb_test "ptype (char4) 0x01010101" \
+    "type = char __attribute__ \\(\\(vector_size\\(4\\)\\)\\)"
+gdb_test "ptype (int2) lla" \
+    "type = int __attribute__ \\(\\(vector_size\\(2\\)\\)\\)"
+
 if { ![string compare $endian big] } then {
     gdb_test "print (char4) ia" "\\\$$decimal = \\{0, 0, 0, 2\\}"
 } else {
@@ -172,16 +178,30 @@ gdb_test "print (double2) f2" "Cannot co
 gdb_test "print (int4) c4" "Cannot convert between vector values of different sizes"
 gdb_test "print (char4) i4a" "Cannot convert between vector values of different sizes"
 
-# Test ptype on vector types.
+# Test ptype/whatis on vector types/vars.
 gdb_test "ptype c4" "type = char __attribute__ \\(\\(vector_size\\(4\\)\\)\\)"
+gdb_test "whatis c4" "type = char4"
+
 gdb_test "ptype char4" "type = char __attribute__ \\(\\(vector_size\\(4\\)\\)\\)"
+gdb_test "whatis char4" "type = char __attribute__ \\(\\(vector_size\\(4\\)\\)\\)"
+
 gdb_test "ptype i4a" "type = int __attribute__ \\(\\(vector_size\\(4\\)\\)\\)"
+gdb_test "whatis i4a" "type = int4"
+
 gdb_test "ptype int4" "type = int __attribute__ \\(\\(vector_size\\(4\\)\\)\\)"
+gdb_test "whatis int4" "type = int __attribute__ \\(\\(vector_size\\(4\\)\\)\\)"
+
 gdb_test "ptype f4b" "type = float __attribute__ \\(\\(vector_size\\(4\\)\\)\\)"
+gdb_test "whatis f4b" "type = float4"
+
 gdb_test "ptype float4" "type = float __attribute__ \\(\\(vector_size\\(4\\)\\)\\)"
+gdb_test "whatis float4" "type = float __attribute__ \\(\\(vector_size\\(4\\)\\)\\)"
 
 gdb_test "ptype union_with_vector_1" "type = union {\r\n\[\t \]+int i;\r\n\[\t \]+char cv __attribute__ \\(\\(vector_size\\(4\\)\\)\\);\r\n}"
+gdb_test "whatis union_with_vector_1" {type = union {...}}
+
 gdb_test "ptype struct_with_vector_1" "type = struct {\r\n\[\t \]+int i;\r\n\[\t \]+char cv __attribute__ \\(\\(vector_size\\(4\\)\\)\\);\r\n\[\t \]+float4 f4;\r\n}"
+gdb_test "whatis struct_with_vector_1" {type = struct {...}}
 
 # Test inferior function calls with vector arguments and/or vector
 # return values.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hashline1.exp ./gdb/testsuite/gdb.base/hashline1.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hashline1.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/hashline1.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hashline2.exp ./gdb/testsuite/gdb.base/hashline2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hashline2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/hashline2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hashline3.exp ./gdb/testsuite/gdb.base/hashline3.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hashline3.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/hashline3.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak2.exp ./gdb/testsuite/gdb.base/hbreak2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/hbreak2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1988-2017 Free Software Foundation, Inc.
+#   Copyright 1988-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak.c ./gdb/testsuite/gdb.base/hbreak.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/hbreak.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak.exp ./gdb/testsuite/gdb.base/hbreak.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/hbreak.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.c ./gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp ./gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported-shr.c ./gdb/testsuite/gdb.base/hbreak-in-shr-unsupported-shr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported-shr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/hbreak-in-shr-unsupported-shr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak-unmapped.c ./gdb/testsuite/gdb.base/hbreak-unmapped.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak-unmapped.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/hbreak-unmapped.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak-unmapped.exp ./gdb/testsuite/gdb.base/hbreak-unmapped.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hbreak-unmapped.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/hbreak-unmapped.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/help.exp ./gdb/testsuite/gdb.base/help.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/help.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/help.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1988-2017 Free Software Foundation, Inc.
+#   Copyright 1988-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/history-duplicates.exp ./gdb/testsuite/gdb.base/history-duplicates.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/history-duplicates.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/history-duplicates.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hook-stop.c ./gdb/testsuite/gdb.base/hook-stop.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hook-stop.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/hook-stop.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hook-stop.exp ./gdb/testsuite/gdb.base/hook-stop.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/hook-stop.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/hook-stop.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/huge.exp ./gdb/testsuite/gdb.base/huge.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/huge.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/huge.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2001-2017 Free Software Foundation, Inc.
+# Copyright 2001-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ifelse.exp ./gdb/testsuite/gdb.base/ifelse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ifelse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ifelse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/included.c ./gdb/testsuite/gdb.base/included.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/included.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/included.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/included.exp ./gdb/testsuite/gdb.base/included.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/included.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/included.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/included.h ./gdb/testsuite/gdb.base/included.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/included.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/included.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infcall-exec2.c ./gdb/testsuite/gdb.base/infcall-exec2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infcall-exec2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/infcall-exec2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infcall-exec.c ./gdb/testsuite/gdb.base/infcall-exec.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infcall-exec.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/infcall-exec.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infcall-exec.exp ./gdb/testsuite/gdb.base/infcall-exec.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infcall-exec.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/infcall-exec.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 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
@@ -44,5 +44,5 @@ append expected_result "\[\r\n\]+.*"
 append expected_result "Breakpoint 1, main .*at .*$srcfile2:$decimal"
 append expected_result ".*"
 
-gdb_test "call execlp \(\"$binfile2\", \"$binfile2\", \(char \*\)0\)" \
+gdb_test "call (int) execlp \(\"$binfile2\", \"$binfile2\", \(char \*\)0\)" \
     $expected_result "call execlp"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infcall-input.c ./gdb/testsuite/gdb.base/infcall-input.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infcall-input.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/infcall-input.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infcall-input.exp ./gdb/testsuite/gdb.base/infcall-input.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infcall-input.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/infcall-input.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/inferior-died.c ./gdb/testsuite/gdb.base/inferior-died.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/inferior-died.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/inferior-died.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test for fork-related gdb bug
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/inferior-died.exp ./gdb/testsuite/gdb.base/inferior-died.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/inferior-died.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/inferior-died.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
@@ -13,11 +13,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if { [is_remote target] || ![isnative] } then {
-    unsupported "inferior-died.exp"
-    continue
-}
-
 # Until "set follow-fork-mode" and "catch fork" are implemented on
 # other targets...
 #
@@ -33,12 +28,16 @@ if { ![support_displaced_stepping] } {
 
 standard_testfile .c
 
-if { [prepare_for_testing "failed to prepare" ${testfile} ${testfile}.c] } {
+if { [build_executable "failed to build" ${testfile} ${testfile}.c] } {
     return -1
 }
 
+save_vars { GDBFLAGS } {
+    append GDBFLAGS " -ex \"set non-stop on\""
+    clean_restart ${binfile}
+}
+
 gdb_test_no_output "set detach-on-fork off"
-gdb_test_no_output "set non-stop on"
 
 if ![runto_main] {
     return
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infnan.c ./gdb/testsuite/gdb.base/infnan.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infnan.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/infnan.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test file is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infnan.exp ./gdb/testsuite/gdb.base/infnan.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infnan.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/infnan.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-fun.c ./gdb/testsuite/gdb.base/info-fun.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-fun.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/info-fun.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-fun.exp ./gdb/testsuite/gdb.base/info-fun.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-fun.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/info-fun.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-fun-solib.c ./gdb/testsuite/gdb.base/info-fun-solib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-fun-solib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/info-fun-solib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infoline.c ./gdb/testsuite/gdb.base/infoline.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infoline.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/infoline.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2011-2017 Free Software Foundation, Inc.
+/* Copyright 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infoline.exp ./gdb/testsuite/gdb.base/infoline.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/infoline.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/infoline.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-macros.exp ./gdb/testsuite/gdb.base/info-macros.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-macros.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/info-macros.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-os.c ./gdb/testsuite/gdb.base/info-os.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-os.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/info-os.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-os.exp ./gdb/testsuite/gdb.base/info-os.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-os.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/info-os.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
@@ -28,7 +28,7 @@ if [gdb_skip_xml_test] then {
 }
 
 # Compile test program.
-if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug additional_flags=-lpthread}] } {
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}] } {
     fail "cannot compile test program"
     return -1
 }
@@ -39,14 +39,18 @@ if ![runto_main] then {
 }
 
 # Get PID of test program.
-set inferior_pid -1
+set inferior_pid ""
 set test "get inferior process ID"
-gdb_test_multiple "call getpid()" $test {
+gdb_test_multiple "call (int) getpid()" $test {
     -re ".* = ($decimal).*$gdb_prompt $" {
 	set inferior_pid $expect_out(1,string)
 	pass $test
     }
 }
+if {$inferior_pid == ""} {
+    untested "failed to get pid"
+    return
+}
 
 gdb_breakpoint ${srcfile}:[gdb_get_line_number "Set breakpoint here"]
 gdb_continue_to_breakpoint "Set breakpoint here"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-proc.exp ./gdb/testsuite/gdb.base/info-proc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-proc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/info-proc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-program.exp ./gdb/testsuite/gdb.base/info-program.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-program.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/info-program.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,45 @@
+# Copyright 1997-2018 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/>.
+
+standard_testfile normal.c
+
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
+    return -1
+}
+
+if { ![runto_main] } {
+    fail "can't run to main"
+    return -1
+}
+
+gdb_test "info program" "Program stopped at $hex\.\r\nIt stopped at breakpoint $decimal\.\r\nType \"info stack\" or \"info registers\" for more information\." \
+    "info program after run to main"
+
+# We don't really care where this step lands, so long as it gets
+# the inferior pushed off the breakpoint it's currently on...
+gdb_test "next" "$decimal\t.*" "step before info program"
+
+gdb_test "info program" "Program stopped at $hex\.\r\nIt stopped after being stepped\.\r\nType \"info stack\" or \"info registers\" for more information\." \
+    "info program after next"
+
+if { ![runto_main] } then {
+    fail "can't restart program"
+    return -1
+}
+
+delete_breakpoints
+
+gdb_test "info program" "Program stopped at $hex\.\r\nIt stopped at a breakpoint that has since been deleted\.\r\nType \"info stack\" or \"info registers\" for more information\." \
+    "info program after deleting all breakpoints"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-shared.c ./gdb/testsuite/gdb.base/info-shared.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-shared.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/info-shared.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-shared.exp ./gdb/testsuite/gdb.base/info-shared.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-shared.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/info-shared.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-shared-solib1.c ./gdb/testsuite/gdb.base/info-shared-solib1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-shared-solib1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/info-shared-solib1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-shared-solib2.c ./gdb/testsuite/gdb.base/info-shared-solib2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-shared-solib2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/info-shared-solib2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-target.exp ./gdb/testsuite/gdb.base/info-target.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/info-target.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/info-target.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/interact.exp ./gdb/testsuite/gdb.base/interact.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/interact.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/interact.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/interp.c ./gdb/testsuite/gdb.base/interp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/interp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/interp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/interp.exp ./gdb/testsuite/gdb.base/interp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/interp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/interp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/interrupt.exp ./gdb/testsuite/gdb.base/interrupt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/interrupt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/interrupt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1994-2017 Free Software Foundation, Inc.
+# Copyright 1994-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/interrupt-noterm.c ./gdb/testsuite/gdb.base/interrupt-noterm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/interrupt-noterm.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/interrupt-noterm.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/interrupt-noterm.exp ./gdb/testsuite/gdb.base/interrupt-noterm.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/interrupt-noterm.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/interrupt-noterm.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-attach-pie.c ./gdb/testsuite/gdb.base/jit-attach-pie.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-attach-pie.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jit-attach-pie.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-attach-pie.exp ./gdb/testsuite/gdb.base/jit-attach-pie.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-attach-pie.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jit-attach-pie.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 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
@@ -21,7 +21,7 @@ standard_testfile .c
 set executable ${testfile}
 
 if { [build_executable ${testfile}.exp $executable $srcfile \
-			  [list debug pthreads "additional_flags=-fPIE -pie"]] } {
+			  [list debug pthreads "additional_flags=-fPIE" "ldflags=-pie"]] } {
     return -1
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit.exp ./gdb/testsuite/gdb.base/jit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jithost.c ./gdb/testsuite/gdb.base/jithost.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jithost.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jithost.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jithost.h ./gdb/testsuite/gdb.base/jithost.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jithost.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jithost.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-main.c ./gdb/testsuite/gdb.base/jit-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jit-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-protocol.h ./gdb/testsuite/gdb.base/jit-protocol.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-protocol.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jit-protocol.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jitreader.c ./gdb/testsuite/gdb.base/jitreader.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jitreader.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jitreader.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-reader.exp ./gdb/testsuite/gdb.base/jit-reader.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-reader.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jit-reader.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-simple.c ./gdb/testsuite/gdb.base/jit-simple.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-simple.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jit-simple.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-simple-dl.c ./gdb/testsuite/gdb.base/jit-simple-dl.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-simple-dl.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jit-simple-dl.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-simple.exp ./gdb/testsuite/gdb.base/jit-simple.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-simple.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jit-simple.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-simple-jit.c ./gdb/testsuite/gdb.base/jit-simple-jit.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-simple-jit.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jit-simple-jit.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-so.exp ./gdb/testsuite/gdb.base/jit-so.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-so.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jit-so.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-solib.c ./gdb/testsuite/gdb.base/jit-solib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jit-solib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jit-solib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jump.exp ./gdb/testsuite/gdb.base/jump.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/jump.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/jump.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/kill-after-signal.c ./gdb/testsuite/gdb.base/kill-after-signal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/kill-after-signal.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/kill-after-signal.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/kill-after-signal.exp ./gdb/testsuite/gdb.base/kill-after-signal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/kill-after-signal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/kill-after-signal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c ./gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp ./gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/killed-outside.c ./gdb/testsuite/gdb.base/killed-outside.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/killed-outside.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/killed-outside.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/killed-outside.exp ./gdb/testsuite/gdb.base/killed-outside.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/killed-outside.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/killed-outside.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/label.exp ./gdb/testsuite/gdb.base/label.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/label.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/label.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 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
@@ -13,12 +13,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-
-if [is_remote target] then {
-    return 0
-}
-
-
 #
 # test running programs
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/langs1.f ./gdb/testsuite/gdb.base/langs1.f
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/langs1.f	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/langs1.f	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-c Copyright (C) 1999-2017 Free Software Foundation, Inc.
+c Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
 c This program is free software; you can redistribute it and/or modify
 c it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/langs.exp ./gdb/testsuite/gdb.base/langs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/langs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/langs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+#   Copyright (C) 1997-2018 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
@@ -38,7 +38,7 @@ if [get_compiler_info] {
     return -1
 }
 
-gdb_test_multiple "b langs0" "break on nonexistent function in langs.exp" {
+gdb_test_multiple "b -qualified langs0" "break on nonexistent function in langs.exp" {
 	-re "Function \"langs0\" not defined\..*Make breakpoint pending on future shared library load.*y or .n.. $" {
 
 		gdb_test "n" "" "break on nonexistent function in langs.exp"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ldbl_e308.c ./gdb/testsuite/gdb.base/ldbl_e308.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ldbl_e308.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ldbl_e308.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ldbl_e308.exp ./gdb/testsuite/gdb.base/ldbl_e308.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ldbl_e308.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ldbl_e308.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/libsegfault.exp ./gdb/testsuite/gdb.base/libsegfault.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/libsegfault.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/libsegfault.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,84 @@
+# Copyright 2017-2018 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.
+
+# Test that GDB tolerates being started with libSegFault.so preloaded
+# with LD_PRELOAD, and that GDB warns about a custom SIGSEGV custom
+# handler.  See PR gdb/18653
+# <https://sourceware.org/bugzilla/show_bug.cgi?id=18653#c7>.
+
+# We cannot expect remote hosts to see environment variables set on
+# the local machine.
+if { [is_remote host] } {
+    unsupported "can't set environment variables on remote host"
+    return -1
+}
+
+# Spawn GDB with LIB preloaded with LD_PRELOAD.  CMDLINE_OPTS are
+# command line options passed to GDB.
+
+proc gdb_spawn_with_ld_preload {lib cmdline_opts} {
+    global env
+
+    save_vars { env(LD_PRELOAD) } {
+	if { ![info exists env(LD_PRELOAD) ]
+	     || $env(LD_PRELOAD) == "" } {
+	    set env(LD_PRELOAD) "$lib"
+	} else {
+	    append env(LD_PRELOAD) ":$lib"
+	}
+
+	gdb_spawn_with_cmdline_opts $cmdline_opts
+    }
+}
+
+proc test_libsegfault {} {
+    global gdb_prompt
+
+    set libsegfault "libSegFault.so"
+
+    # When started normally, if libSegFault.so is preloaded, GDB
+    # should warn about not being able to propagate the signal
+    # disposition of SIGSEGV.
+    gdb_exit
+    gdb_spawn_with_ld_preload $libsegfault ""
+
+    set test "gdb emits custom handler warning"
+    gdb_test_multiple "" $test {
+	-re "cannot be preloaded.*\r\n$gdb_prompt $" {
+	    # Glibc 2.22 outputs:
+	    # ERROR: ld.so: object 'libSegFault.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
+	    untested "cannot preload libSegFault.so"
+	    return
+	}
+	-re "Found custom handler.*won't be propagated.*\r\n$gdb_prompt $" {
+	    pass $test
+	}
+    }
+
+    # "-q" should disable the warning, though.
+    gdb_exit
+    gdb_spawn_with_ld_preload $libsegfault "-q"
+
+    set test "quiet suppresses custom handler warning"
+    gdb_test_multiple "" $test {
+	-re "^$gdb_prompt $" {
+	    pass $test
+	}
+    }
+}
+
+test_libsegfault
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/lineinc.exp ./gdb/testsuite/gdb.base/lineinc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/lineinc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/lineinc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Test macro handling of #included files.
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/linespecs.exp ./gdb/testsuite/gdb.base/linespecs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/linespecs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/linespecs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/line-symtabs.c ./gdb/testsuite/gdb.base/line-symtabs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/line-symtabs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/line-symtabs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/line-symtabs.exp ./gdb/testsuite/gdb.base/line-symtabs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/line-symtabs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/line-symtabs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Test handling of line symbol tables (non-primary symtabs).
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/line-symtabs.h ./gdb/testsuite/gdb.base/line-symtabs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/line-symtabs.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/line-symtabs.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/list-ambiguous0.c ./gdb/testsuite/gdb.base/list-ambiguous0.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/list-ambiguous0.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/list-ambiguous0.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,42 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+
+
+
+
+/* These symbols are defined in both
+   list-ambiguous0.c/list-ambiguous1.c files, in order to test
+   "list"'s behavior with ambiguous linespecs.  */
+
+static void __attribute__ ((used)) ambiguous_fun (void) {}
+
+static int ambiguous_var;
+
+
+
+
+
+
+
+
+
+int
+main (void)
+{
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/list-ambiguous1.c ./gdb/testsuite/gdb.base/list-ambiguous1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/list-ambiguous1.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/list-ambiguous1.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,41 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+
+
+
+
+
+
+
+
+/* These symbols are defined in both
+   list-ambiguous0.c/list-ambiguous1.c files, in order to test
+   "list"'s behavior with ambiguous linespecs.  */
+static void __attribute__ ((used)) ambiguous_fun (void) {}
+
+static int ambiguous_var;
+
+
+
+
+
+
+
+
+
+/* last line */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/list-ambiguous.exp ./gdb/testsuite/gdb.base/list-ambiguous.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/list-ambiguous.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/list-ambiguous.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,79 @@
+# Copyright 2017-2018 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 the "list" command with linespecs that expand to multiple
+# locations.
+
+standard_testfile list-ambiguous0.c list-ambiguous1.c
+
+if {[prepare_for_testing "failed to prepare" $testfile [list $srcfile $srcfile2] \
+	 {debug}]} {
+    return -1
+}
+
+# Build source listing pattern based on an inclusive line range.
+
+proc line_range_pattern { range_start range_end } {
+    global line_re
+
+    for {set i $range_start} {$i <= $range_end} {incr i} {
+	append pattern "\r\n$i\[ \t\]\[^\r\n\]*"
+    }
+
+    verbose -log "pattern $pattern"
+    return $pattern
+}
+
+# Test the "list" command with linespecs that expand to multiple
+# locations.
+
+proc test_list_ambiguous_symbol {symbol_line symbol} {
+    global srcfile srcfile2
+
+    set lineno0 [gdb_get_line_number $symbol_line $srcfile]
+    set lineno1 [gdb_get_line_number $symbol_line $srcfile2]
+    set lines0_re [line_range_pattern [expr $lineno0 - 5] [expr $lineno0 + 4]]
+    set lines1_re [line_range_pattern [expr $lineno1 - 5] [expr $lineno1 + 4]]
+
+    set any "\[^\r\n\]*"
+    set h0_re "file: \"${any}list-ambiguous0.c\", line number: $lineno0, symbol: \"$symbol\""
+    set h1_re "file: \"${any}list-ambiguous1.c\", line number: $lineno1, symbol: \"$symbol\""
+    gdb_test "list $symbol" "${h0_re}${lines0_re}\r\n${h1_re}${lines1_re}"
+
+    gdb_test "list main,$symbol" \
+	"Specified last line '$symbol' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
+    gdb_test "list ,$symbol" \
+	"Specified last line '$symbol' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
+    gdb_test "list $symbol,main" \
+	"Specified first line '$symbol' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
+    gdb_test "list $symbol,$symbol" \
+	"Specified first line '$symbol' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
+    gdb_test "list $symbol," \
+	"Specified first line '$symbol' is ambiguous:\r\n${h0_re}\r\n${h1_re}"
+
+    # While at it, test the "edit" command as well, since it shares
+    # code with "list".
+    gdb_test "edit $symbol" \
+	"Specified line is ambiguous:\r\n${h0_re}\r\n${h1_re}"
+}
+
+proc test_list_ambiguous_function {} {
+    test_list_ambiguous_symbol "ambiguous_fun (void)" "ambiguous_fun"
+    test_list_ambiguous_symbol "ambiguous_var" "ambiguous_var"
+}
+
+gdb_test_no_output "set listsize 10"
+
+test_list_ambiguous_function
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/list.exp ./gdb/testsuite/gdb.base/list.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/list.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/list.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 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
@@ -361,7 +361,7 @@ proc test_list_range {} {
 
     gdb_test "list ${past_end},${much_past_end}" "Line number ${past_end} out of range; .*list0.c has ${last_line} lines." "list range; both bounds past EOF"
 
-    gdb_test "list list0.c:2,list1.c:17" "Specified start and end are in different files." "list range, must be same files"
+    gdb_test "list list0.c:2,list1.c:17" "Specified first and last lines are in different files." "list range, must be same files"
 }
 
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/logical.exp ./gdb/testsuite/gdb.base/logical.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/logical.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/logical.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/longest-types.c ./gdb/testsuite/gdb.base/longest-types.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/longest-types.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/longest-types.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/longest-types.exp ./gdb/testsuite/gdb.base/longest-types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/longest-types.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/longest-types.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/long-inferior-output.c ./gdb/testsuite/gdb.base/long-inferior-output.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/long-inferior-output.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/long-inferior-output.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,38 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#include <stdio.h>
+
+static size_t total_bytes = 0;
+
+int
+main ()
+{
+  int i = 0;
+
+  /* When testing with "target remote |", stdout is a pipe, and thus
+     block buffered by default.  Force it to be line buffered.  */
+  setvbuf (stdout, NULL, _IOLBF, 0);
+
+  /* This outputs > 70 KB which is larger than the default pipe buffer
+     size on most systems (typically 16 KB or 64 KB).  */
+  for (i = 0; i < 3000; i++)
+    total_bytes += printf ("this is line number %d\n", i);
+
+  printf ("total bytes written = %u\n", (unsigned) total_bytes);
+  return 0; /* printing done */
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/long-inferior-output.exp ./gdb/testsuite/gdb.base/long-inferior-output.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/long-inferior-output.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/long-inferior-output.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,75 @@
+# Copyright 2017-2018 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/>.
+
+# When debugging with "target remote |", the inferior's output is
+# connected to a pipe, and if GDB doesn't flush the pipe while the
+# inferior is running and the pipe becomes full, then the inferior
+# deadlocks:
+#
+#  1. User sets breakpoint, and types "continue"
+#
+#  2. Inferior prints to stdout/stderr before reaching breakpoint
+#     location.
+#
+#  3. The output pipe becomes full, so the inferior blocks forever in
+#     the printf/write call.
+#
+#  4. The breakpoint is never reached.
+
+if [target_info exists gdb,noinferiorio] {
+    verbose "Skipping because of noinferiorio."
+    return
+}
+
+standard_testfile
+
+if [prepare_for_testing "failed to prepare" $testfile {} {debug}] {
+    return -1
+}
+
+if { ![runto_main] } then {
+    fail "run to main"
+    return
+}
+
+set printing_done_line [gdb_get_line_number "printing done"]
+gdb_test "break $printing_done_line" ".*" "set breakpoint after printing"
+
+send_gdb "continue\n"
+
+set expected_lines 3000
+set more 1
+set i 0
+while {$more} {
+    set more 0
+    gdb_expect {
+	-i $inferior_spawn_id
+	-ex "this is line number $i" {
+	    incr i
+           if {$i != $expected_lines} {
+		set more 1
+	    }
+	}
+    }
+}
+
+gdb_assert {$i == $expected_lines} "saw all lines"
+
+set test "breakpoint reached"
+gdb_test_multiple "" $test {
+    -re "Breakpoint .* main .*$srcfile:$printing_done_line.*$gdb_prompt $" {
+	pass $test
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/longjmp.c ./gdb/testsuite/gdb.base/longjmp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/longjmp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/longjmp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/longjmp.exp ./gdb/testsuite/gdb.base/longjmp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/longjmp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/longjmp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/long_long.c ./gdb/testsuite/gdb.base/long_long.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/long_long.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/long_long.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 1999-2017 Free Software Foundation, Inc.
+   Copyright 1999-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/long_long.exp ./gdb/testsuite/gdb.base/long_long.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/long_long.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/long_long.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/macscp.exp ./gdb/testsuite/gdb.base/macscp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/macscp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/macscp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Test macro scoping.
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 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
@@ -21,7 +21,7 @@ set objfile [standard_output_file ${test
 set options { debug additional_flags=-DFROM_COMMANDLINE=ARG}
 
 get_compiler_info
-if [test_compiler_info gcc*] {
+if { [test_compiler_info "gcc-*"] || [test_compiler_info "clang-*"] } {
     lappend options additional_flags=-g3
 }
 
@@ -620,6 +620,18 @@ gdb_test_no_output "macro define va_gnu(
 gdb_test_no_output "macro define va2_gnu(args...) varfunc (fixedarg, ## args)" \
   "define fourth varargs helper"
 
+gdb_test_no_output \
+    "macro define va3_cxx2a(x, ...) varfunc (x __VA_OPT__(,) __VA_ARGS__)" \
+    "define fifth varargs helper"
+
+gdb_test_no_output \
+    "macro define va4_cxx2a(x, ...) varfunc (x __VA_OPT__(, __VA_ARGS__))" \
+    "define sixth varargs helper"
+
+gdb_test_no_output \
+    "macro define va5_cxx2a(x, ...) varfunc (x __VA_OPT__(,) __VA_OPT__(__VA_ARGS__))" \
+    "define seventh varargs helper"
+
 gdb_test "macro expand va_c99(one, two, three)" \
   "expands to: *varfunc \\(fixedarg, *one, two, three\\)" \
   "c99 varargs expansion"
@@ -644,6 +656,58 @@ gdb_test "macro expand va2_gnu()" \
   "expands to: *varfunc \\(fixedarg\\)" \
   "gnu varargs expansion special splicing without an argument"
 
+gdb_test "macro expand va3_cxx2a(23)" \
+    "expands to: *varfunc \\(23 \\)" \
+    "C++2a __VA_OPT__ handling without variable argument"
+
+gdb_test "macro expand va3_cxx2a(23, 24, 25)" \
+    "expands to: *varfunc \\(23, 24, 25\\)" \
+    "C++2a __VA_OPT__ handling with variable argument"
+
+gdb_test "macro expand va4_cxx2a(23, 24, 25)" \
+    "expands to: *varfunc \\(23, 24, 25\\)" \
+    "C++2a __VA_OPT__ conditional __VA_ARGS__ handling with variable argument"
+
+gdb_test "macro expand va4_cxx2a(23)" \
+    "expands to: *varfunc \\(23\\)" \
+    "C++2a __VA_OPT__ conditional __VA_ARGS__ handling without variable argument"
+
+gdb_test "macro expand va5_cxx2a(23, 24, 25)" \
+    "expands to: *varfunc \\(23,24, 25\\)" \
+    "C++2a double __VA_OPT__ conditional __VA_ARGS__ handling with variable argument"
+
+gdb_test "macro expand va5_cxx2a(23)" \
+    "expands to: *varfunc \\(23\\)" \
+    "C++2a double __VA_OPT__ conditional __VA_ARGS__ handling without variable argument"
+
+gdb_test_no_output \
+    "macro define badopt1(x, ...) __VA_OPT__) x" \
+    "define first invalid varargs helper"
+gdb_test "macro expand badopt1(5)" \
+    "__VA_OPT__ must be followed by an open parenthesis" \
+    "__VA_OPT__ without open paren"
+
+gdb_test_no_output \
+    "macro define badopt2(x, ...) __VA_OPT__(__VA_OPT__(,)) x" \
+    "define second invalid varargs helper"
+gdb_test "macro expand badopt2(5)" \
+    "__VA_OPT__ cannot appear inside __VA_OPT__" \
+    "__VA_OPT__ inside __VA_OPT__"
+
+gdb_test_no_output \
+    "macro define badopt3(x) __VA_OPT__" \
+    "define third invalid varargs helper"
+gdb_test "macro expand badopt3(5)" \
+    "__VA_OPT__ is only valid in a variadic macro" \
+    "__VA_OPT__ not in variadic macro"
+
+gdb_test_no_output \
+    "macro define badopt4(x, ...) __VA_OPT__(x" \
+    "define fourth invalid varargs helper"
+gdb_test "macro expand badopt4(5)" \
+    "Unterminated __VA_OPT__" \
+    "__VA_OPT__ without closing paren"
+
 # Stringification tests.
 
 gdb_test_no_output "macro define str(x) #x" \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/maint.exp ./gdb/testsuite/gdb.base/maint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/maint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/maint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 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
@@ -89,10 +89,13 @@ if ![runto_main] then {
         perror "tests suppressed"
 }
 
-# If we're using .gdb_index there will be no psymtabs.
+# If we're using .gdb_index or .debug_names there will be no psymtabs.
 set have_gdb_index 0
-gdb_test_multiple "maint info sections .gdb_index" "check for .gdb_index" {
-    -re ": .gdb_index.*$gdb_prompt $" {
+gdb_test_multiple "maint info sections .gdb_index .debug_names" "check for .gdb_index" {
+    -re ": \\.gdb_index .*\r\n$gdb_prompt $" {
+	set have_gdb_index 1
+    }
+    -re ": \\.debug_names .*\r\n$gdb_prompt $" {
 	set have_gdb_index 1
     }
     -re ".*$gdb_prompt $" {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/max-value-size.c ./gdb/testsuite/gdb.base/max-value-size.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/max-value-size.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/max-value-size.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/max-value-size.exp ./gdb/testsuite/gdb.base/max-value-size.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/max-value-size.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/max-value-size.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/memattr.c ./gdb/testsuite/gdb.base/memattr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/memattr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/memattr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/memattr.exp ./gdb/testsuite/gdb.base/memattr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/memattr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/memattr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
@@ -114,30 +114,30 @@ set see4 0
 set see5 0
 
 set info_mem_header_pattern \
-    "info mem.*Num\[ \t\]+Enb\[ \t\]+Low\[ \t\]+Addr\[ \t\]+High\[ \t\]+Addr\[ \t\]+Attrs\[^\n\r]*.."
+    "info mem.*Num\[ \t\]+Enb\[ \t\]+Low\[ \t\]+Addr\[ \t\]+High\[ \t\]+Addr\[ \t\]+Attrs\[^\r\n\]*\r\n"
 
 gdb_test_multiple "info mem" "info mem(1)" {
     -re ${info_mem_header_pattern} {
 	# Discard the header.
 	exp_continue
     }
-    -re "^1   y  \[ \t\]+$hex $hex wo nocache \[^\r\n\]*.." {
+    -re "^1   y  \[ \t\]+$hex $hex wo nocache \[^\r\n\]*\r\n" {
 	set see1 1
 	exp_continue
     }
-    -re "^2   y  \[ \t\]+$hex $hex ro nocache \[^\r\n\]*.." {
+    -re "^2   y  \[ \t\]+$hex $hex ro nocache \[^\r\n\]*\r\n" {
 	set see2 1
 	exp_continue
     }
-    -re "^3   y  \[ \t\]+$hex $hex rw nocache \[^\r\n\]*.." {
+    -re "^3   y  \[ \t\]+$hex $hex rw nocache \[^\r\n\]*\r\n" {
 	set see3 1
 	exp_continue
     }
-    -re "^4   y  \[ \t\]+$hex $hex rw nocache \[^\r\n\]*.." {
+    -re "^4   y  \[ \t\]+$hex $hex rw nocache \[^\r\n\]*\r\n" {
 	set see4 1
 	exp_continue
     }
-    -re "^5   y  \[ \t\]+$hex $hex rw nocache \[^\r\n\]*.." {
+    -re "^5   y  \[ \t\]+$hex $hex rw nocache \[^\r\n\]*\r\n" {
 	set see5 1
 	exp_continue
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/mips_pro.exp ./gdb/testsuite/gdb.base/mips_pro.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/mips_pro.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/mips_pro.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/miscexprs.exp ./gdb/testsuite/gdb.base/miscexprs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/miscexprs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/miscexprs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/morestack.c ./gdb/testsuite/gdb.base/morestack.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/morestack.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/morestack.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/morestack.exp ./gdb/testsuite/gdb.base/morestack.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/morestack.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/morestack.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/moribund-step.exp ./gdb/testsuite/gdb.base/moribund-step.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/moribund-step.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/moribund-step.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/multi-forks.c ./gdb/testsuite/gdb.base/multi-forks.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/multi-forks.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/multi-forks.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2005-2017 Free Software Foundation, Inc.
+   Copyright 2005-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/multi-forks.exp ./gdb/testsuite/gdb.base/multi-forks.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/multi-forks.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/multi-forks.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2005-2017 Free Software Foundation, Inc.
+#   Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/multi-line-starts-subshell.exp ./gdb/testsuite/gdb.base/multi-line-starts-subshell.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/multi-line-starts-subshell.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/multi-line-starts-subshell.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-addr.c ./gdb/testsuite/gdb.base/nested-addr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-addr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nested-addr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-addr.exp ./gdb/testsuite/gdb.base/nested-addr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-addr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nested-addr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-subp1.c ./gdb/testsuite/gdb.base/nested-subp1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-subp1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nested-subp1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-subp1.exp ./gdb/testsuite/gdb.base/nested-subp1.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-subp1.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nested-subp1.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-subp2.c ./gdb/testsuite/gdb.base/nested-subp2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-subp2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nested-subp2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-subp2.exp ./gdb/testsuite/gdb.base/nested-subp2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-subp2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nested-subp2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-subp3.c ./gdb/testsuite/gdb.base/nested-subp3.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-subp3.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nested-subp3.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-subp3.exp ./gdb/testsuite/gdb.base/nested-subp3.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nested-subp3.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nested-subp3.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/new-ui.c ./gdb/testsuite/gdb.base/new-ui.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/new-ui.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/new-ui.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/new-ui-echo.c ./gdb/testsuite/gdb.base/new-ui-echo.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/new-ui-echo.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/new-ui-echo.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/new-ui-echo.exp ./gdb/testsuite/gdb.base/new-ui-echo.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/new-ui-echo.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/new-ui-echo.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/new-ui.exp ./gdb/testsuite/gdb.base/new-ui.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/new-ui.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/new-ui.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 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
@@ -135,9 +135,18 @@ proc_with_prefix do_test {} {
 		 "Delete all breakpoints. .y or n. $" "n"
     }
     with_spawn_id $extra_spawn_id {
-	gdb_test "delete" \
-		 "Delete all breakpoints. .y or n. .answered Y; input not from terminal." \
-		 "delete all breakpoints on extra console"
+	# Check output in two stages in order to override
+	# gdb_test_multiple's internal "got interactive prompt" fail
+	# that would otherwise match if the expect buffer happens to
+	# fill with partial output that ends in "(y or n) ".
+	set test "delete all breakpoints on extra console"
+	gdb_test_multiple "delete" $test {
+	    -re "Delete all breakpoints. .y or n. " {
+		gdb_test "" \
+		    ".answered Y; input not from terminal." \
+		    $test
+	    }
+	}
     }
 
     # Run a few execution tests with the main console as the driver
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/new-ui-pending-input.c ./gdb/testsuite/gdb.base/new-ui-pending-input.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/new-ui-pending-input.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/new-ui-pending-input.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/new-ui-pending-input.exp ./gdb/testsuite/gdb.base/new-ui-pending-input.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/new-ui-pending-input.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/new-ui-pending-input.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nextoverexit.c ./gdb/testsuite/gdb.base/nextoverexit.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nextoverexit.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nextoverexit.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nextoverexit.exp ./gdb/testsuite/gdb.base/nextoverexit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nextoverexit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nextoverexit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nodebug.c ./gdb/testsuite/gdb.base/nodebug.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nodebug.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nodebug.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,6 @@
 #include <stdlib.h>
+#include <stdint.h>
+
 /* Test that things still (sort of) work when compiled without -g.  */
 
 int dataglobal = 3;			/* Should go in global data */
@@ -6,6 +8,13 @@ static int datalocal = 4;		/* Should go 
 int bssglobal;				/* Should go in global bss */
 static int bsslocal;			/* Should go in local bss */
 
+/* Non-int-sized global data variables.  */
+uint8_t dataglobal8 = 0xff;
+uint32_t dataglobal32_1 = 0x7fffffff;
+uint32_t dataglobal32_2 = 0x000000ff;
+uint64_t dataglobal64_1 = 0x7fffffffffffffff;
+uint64_t dataglobal64_2 = 0x00000000000000ff;
+
 int
 inner (int x)
 {
@@ -43,3 +52,42 @@ int array_index (char *arr, int i)
   free (x);
   return retval;
 }
+
+float
+multf (float v1, float v2)
+{
+  return v1 * v2;
+}
+
+float
+multf_noproto (v1, v2)
+  float v1, v2;
+{
+  return v1 * v2;
+}
+
+double
+mult (double v1, double v2)
+{
+  return v1 * v2;
+}
+
+double
+mult_noproto (v1, v2)
+  double v1, v2;
+{
+  return v1 * v2;
+}
+
+uint8_t
+add8 (uint8_t v1, uint8_t v2)
+{
+  return v1 + v2;
+}
+
+uint8_t
+add8_noproto (v1, v2)
+  uint8_t v1, v2;
+{
+  return v1 + v2;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nodebug.exp ./gdb/testsuite/gdb.base/nodebug.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nodebug.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nodebug.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 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
@@ -39,7 +39,56 @@ if  { [gdb_compile $srcdir/$subdir/$srcf
 
 clean_restart $binfile
 
-if [runto inner] then {
+# Run to FUNC and unload symbols from system shared libraries, to
+# avoid conflicts with the minsyms in the program.  E.g.,
+# intl/plural-exp.h has 'enum expression_operator {..., mult, ...}'.
+
+proc nodebug_runto {func} {
+    with_test_prefix $func {
+	if ![runto $func] {
+	    return false
+	}
+	gdb_test_no_output "nosharedlibrary" \
+	    "unload symbols from system libraries"
+	return true
+    }
+}
+
+# Test calling no-debug functions involving argument types that may
+# require coercion/promotion, both prototyped and unprototyped, both
+# return-type-cast style, and function-pointer-cast styles.
+proc test_call_promotion {} {
+    if [target_info exists gdb,cannot_call_functions] {
+	return
+    }
+
+    # Call prototyped function with float parameters via both
+    # return-type cast and function-pointer cast.  This checks that
+    # GDB doesn't do float->double coercion.
+    gdb_test "p (float) multf(2.0f, 3.0f)" " = 6"
+    gdb_test "p ((float (*) (float, float)) multf)(2, 3)" " = 6"
+    gdb_test "p ((float (*) (float, float)) multf)(2.0f, 3.0f)" " = 6"
+
+    # Call unprototyped function with float parameters via
+    # function-pointer cast, only.  return-type cast assumes
+    # protototyped.  Check that GDB does float->double coercion.
+    gdb_test "p ((float (*) ()) multf_noproto)(2.0f, 3.0f)" " = 6"
+    gdb_test "p ((float (*) ()) multf_noproto)(2.0, 3.0)" " = 6"
+
+    # Same, but for double.
+    gdb_test "p (double) mult (2.0, 3.0)" " = 6"
+    gdb_test "p ((double (*) (double, double)) mult)(2.0f, 3.0f)" " = 6"
+    gdb_test "p ((double (*) (double, double)) mult)(2, 3)" " = 6"
+    gdb_test "p ((double (*) ()) mult_noproto)(2.0f, 3.0f)" " = 6"
+    gdb_test "p ((double (*) ()) mult_noproto)(2.0, 3.0)" " = 6"
+
+    # Check that GDB promotes char->int correctly.
+    gdb_test "p /d (uint8) add8((uint8) 2, (uint8) 3)" " = 5"
+    gdb_test "p /d ((uint8 (*) (uint8, uint8)) add8)((uint8) 2, (uint8) 3)" " = 5"
+    gdb_test "p /d ((uint8 (*) ()) add8_noproto)((uint8) 2, (uint8) 3)" " = 5"
+}
+
+if [nodebug_runto inner] then {
     
     # Expect to find global/local symbols in each of text/data/bss.
     
@@ -59,22 +108,116 @@ if [runto inner] then {
     # out debugging info for non-aggregate return values of functions
     # even without -g, which should be accepted.
 
-    gdb_test "p top" \
-	"\{(<(text variable|function), no debug info>|short \\(int\\)|short \\(\\))\} \[0-9a-fx]* <\\.?top(\\(int\\)|)>"
-    gdb_test "whatis top" \
-	"(<(text variable|function), no debug info>|short \\(int\\)|short \\(\\))"
-    gdb_test "ptype top" "(short|int) \\((|void|int|<non-float parameter>|<non-float parameter>, <non-float parameter>)\\)"
-    
-    gdb_test "p middle" \
-	"\{(<(text variable|function), no debug info>|short \\(int\\)|short \\(\\))\} \[0-9a-fx]* <\\.?middle(\\(int\\)|)>"
-    gdb_test "whatis middle" \
-	"(<(text variable|function), no debug info>|short \\(int\\)|short \\(\\))"
-    gdb_test "ptype middle" "(short|int) \\((|void|int|<non-float parameter>|<non-float parameter>, <non-float parameter>)\\)"
-    
-    gdb_test "p dataglobal" "= 3"
-    gdb_test "whatis dataglobal" \
-	"<(data variable|variable), no debug info>|int"
-    gdb_test "ptype dataglobal" "<(data variable|variable), no debug info>|int"
+    with_test_prefix "func" {
+	# Most languages default to printing like C.
+	set c_print_re " = \\{<text variable, no debug info>\\} $hex <top>"
+	set c_whatis_re " = <text variable, no debug info>"
+	set c_ptype_re "= <unknown return type> \\(\\)"
+
+	set cxx_ptype_re "= <unknown return type> \\(void\\)"
+
+	set ada_ptype_re " = function return <unknown return type>"
+
+	set m2_print_re " = \\{PROCEDURE <text variable, no debug info> \\(\\) : <unknown return type>\\} $hex <top>"
+	set m2_whatis_re "PROCEDURE <text variable, no debug info> \\(\\) : <unknown return type>"
+	set m2_ptype_re $m2_whatis_re
+
+	# Rust can't access minsyms?
+	set rust_nosym "No symbol 'top' in current context"
+
+	set pascal_ptype_re "type = procedure  : <unknown return type>"
+
+	#LANG		#PRINT		#WHATIS		#PTYPE
+	foreach lang_line {
+	    {"ada"		$c_print_re	$c_whatis_re	$ada_ptype_re}
+	    {"asm"		$c_print_re	$c_whatis_re	$c_ptype_re}
+	    {"c"		$c_print_re	$c_whatis_re	$c_ptype_re}
+	    {"c++"		$c_print_re	$c_whatis_re	$cxx_ptype_re}
+	    {"d"		$c_print_re	$c_whatis_re	$c_ptype_re}
+	    {"fortran"	$c_print_re	$c_whatis_re	$c_ptype_re}
+	    {"go"		$c_print_re	$c_whatis_re	$c_ptype_re}
+	    {"minimal"	$c_print_re	$c_whatis_re	$c_ptype_re}
+	    {"modula-2"	$m2_print_re	$m2_whatis_re	$m2_ptype_re}
+	    {"objective-c"	$c_print_re	$c_whatis_re	$c_ptype_re}
+	    {"opencl"	$c_print_re	$c_whatis_re	$c_ptype_re}
+	    {"pascal"	$c_print_re	$c_whatis_re	$pascal_ptype_re}
+	    {"rust"		$rust_nosym	$rust_nosym	$rust_nosym}
+	} {
+	    set lang [lindex $lang_line 0]
+	    set print_re [lindex $lang_line 1]
+	    set whatis_re [lindex $lang_line 2]
+	    set ptype_re [lindex $lang_line 3]
+
+	    set print_re [subst "$print_re"]
+	    set whatis_re [subst "$whatis_re"]
+	    set ptype_re [subst "$ptype_re"]
+
+	    with_test_prefix "$lang" {
+		gdb_test_no_output "set language $lang"
+		gdb_test "p top" $print_re
+		gdb_test "whatis top" $whatis_re
+		gdb_test "ptype top" $ptype_re
+	    }
+	}
+    }
+
+    gdb_test_no_output "set language auto"
+
+    # We can't rely on uintXX_t being available/known to GDB because
+    # we may or may not have debug info for those (depending on
+    # whether we have debug info for the C runtime, for example).
+    gdb_test_no_output "macro define uint8 unsigned char"
+    gdb_test_no_output "macro define uint32 unsigned int"
+    gdb_test_no_output "macro define uint64 unsigned long long"
+
+    set data_var_type "<data variable, no debug info>"
+    set unk_type_re "has unknown type.*to its declared type"
+    set ptr_math_re "Cannot perform pointer math on incomplete type \"$data_var_type\", try casting to a known type, or void \\*\\."
+    set not_mem_re "Attempt to take address of value not located in memory\\."
+
+    set dataglobal_unk_re "dataglobal.*$unk_type_re"
+
+	 #exp				#fmt #print						#ptype/whatis
+    foreach line {
+	{"dataglobal"			""   $dataglobal_unk_re					" = $data_var_type"}
+	{"(int) dataglobal"		""   "= 3"						" = int"}
+	{"sizeof(dataglobal)"		""   $dataglobal_unk_re					$dataglobal_unk_re}
+	{"sizeof(dataglobal + 1)"	""   $dataglobal_unk_re					$dataglobal_unk_re}
+	{"sizeof((int) dataglobal)"	""   " = $decimal"					" = int"}
+	{"dataglobal + 1"		""   $dataglobal_unk_re					$dataglobal_unk_re}
+	{"&dataglobal"			""   "\\($data_var_type \\*\\) $hex <dataglobal>"	" = $data_var_type \\*"}
+	{"&dataglobal + 1"		""   $ptr_math_re					$ptr_math_re}
+	{"(int *) &dataglobal + 1"	""   " = \\(int \\*\\) $hex <datalocal>"		"int \\*"}
+	{"&(int) dataglobal + 1"	""   $not_mem_re					$not_mem_re}
+	{"&dataglobal, &dataglobal"	""   "\\($data_var_type \\*\\) $hex <dataglobal>"	" = $data_var_type \\*"}
+	{"*dataglobal"			""   $dataglobal_unk_re					$dataglobal_unk_re}
+
+	{"dataglobal8"			"/x" $dataglobal_unk_re					" = $data_var_type"}
+	{"(uint8) dataglobal8"		"/x" " = 0xff"						"unsigned char"}
+
+	{"dataglobal32_1"		"/x" $dataglobal_unk_re					" = $data_var_type"}
+	{"(uint32) dataglobal32_1"	"/x" " = 0x7fffffff"					"unsigned int"}
+	{"dataglobal32_2"		"/x" $dataglobal_unk_re					" = $data_var_type"}
+	{"(uint32) dataglobal32_2"	"/x" " = 0xff"						"unsigned int"}
+
+	{"dataglobal64_1"		"/x" $dataglobal_unk_re					" = $data_var_type"}
+	{"(uint64) dataglobal64_1"	"/x" " = 0x7fffffffffffffff"				"unsigned long long"}
+	{"dataglobal64_2"		"/x" $dataglobal_unk_re					" = $data_var_type"}
+	{"(uint64) dataglobal64_2"	"/x" " = 0xff"						"unsigned long long"}
+    } {
+	set exp [lindex $line 0]
+	# Expand variables.
+	set fmt [subst -nobackslashes [lindex $line 1]]
+	set print [subst  -nobackslashes [lindex $line 2]]
+	set whatis [subst -nobackslashes [lindex $line 3]]
+	if {$fmt == ""} {
+	    gdb_test "p $exp" $print
+	} else {
+	    gdb_test "p $fmt $exp" $print
+	}
+	gdb_test "whatis $exp" $whatis
+	gdb_test "ptype $exp" $whatis
+    }
     
     # The only symbol xcoff puts out for statics is for the TOC entry.
     # Possible, but hairy, for gdb to deal.  Right now it doesn't, it
@@ -82,35 +225,39 @@ if [runto inner] then {
     setup_xfail "rs6000*-*-aix*"
     setup_xfail "powerpc*-*-aix*"
 
-    gdb_test "p datalocal" "= 4"
+    gdb_test "p datalocal" "datalocal.*$unk_type_re"
+    gdb_test "p (int) datalocal" "= 4"
 
     setup_xfail "rs6000*-*-aix*"
     setup_xfail "powerpc*-*-aix*"
 
-    gdb_test "whatis datalocal" "<(data variable|variable), no debug info>"
+    gdb_test "whatis datalocal" "datalocal.*$data_var_type"
 
     setup_xfail "rs6000*-*-aix*"
     setup_xfail "powerpc*-*-aix*"
 
-    gdb_test "ptype datalocal" "<(data variable|variable), no debug info>"
-    gdb_test "p bssglobal" "= 0"
-    gdb_test "whatis bssglobal" "<(data variable|variable), no debug info>|int"
-    gdb_test "ptype bssglobal" "<(data variable|variable), no debug info>|int"
+    gdb_test "ptype datalocal" "datalocal.*$data_var_type"
+
+    gdb_test "p bssglobal" "bssglobal.*$unk_type_re"
+    gdb_test "p (int) bssglobal" "= 0"
+    gdb_test "whatis bssglobal" $data_var_type
+    gdb_test "ptype bssglobal" $data_var_type
 
     setup_xfail "rs6000*-*-aix*"
     setup_xfail "powerpc*-*-aix*"
 
-    gdb_test "p bsslocal" "= 0"
+    gdb_test "p bsslocal" "bsslocal.*$unk_type_re"
+    gdb_test "p (int) bsslocal" "= 0"
 
     setup_xfail "rs6000*-*-aix*"
     setup_xfail "powerpc*-*-aix*"
 
-    gdb_test "whatis bsslocal" "<(data variable|variable), no debug info>"
+    gdb_test "whatis bsslocal" $data_var_type
 
     setup_xfail "rs6000*-*-aix*"
     setup_xfail "powerpc*-*-aix*"
 
-    gdb_test "ptype bsslocal" "<(data variable|variable), no debug info>"
+    gdb_test "ptype bsslocal" $data_var_type
 
     gdb_test "backtrace 10" "#0.*inner.*#1.*middle.*#2.*top.*#3.*main.*" \
 	"backtrace from inner in nodebug.exp"
@@ -122,20 +269,26 @@ if [runto inner] then {
     
     # This test is not as obscure as it might look.  `p getenv ("TERM")'
     # is a real-world example, at least on many systems.
+    foreach cmd {"p/c" "ptype" "whatis"} {
+	gdb_test "$cmd array_index(\"abcdef\",2)" \
+	    "'array_index' has unknown return type; cast the call to its declared return type"
+    }
     if [target_info exists gdb,cannot_call_functions] {
-	unsupported "p/c array_index(\"abcdef\",2)"
+	unsupported "p/c (int) array_index(\"abcdef\",2)"
     } else {
 	# We need to up this because this can be really slow on some boards.
 	# (malloc() is called as part of the test).
 	set prev_timeout $timeout
 	set timeout 60
-	gdb_test {p/c array_index("abcdef",2)} " = 99 'c'"
+	gdb_test {p/c (int) array_index("abcdef",2)} " = 99 'c'"
 	set timeout $prev_timeout
     }
-    
+
+    test_call_promotion
+
     # Now, try that we can give names of file-local symbols which happen
     # to be unique, and have it still work
-    if [runto middle] then {
+    if [nodebug_runto middle] then {
 	gdb_test "backtrace 10" "#0.*middle.*#1.*top.*#2.*main.*" \
 	    "backtrace from middle in nodebug.exp"
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nofield.c ./gdb/testsuite/gdb.base/nofield.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nofield.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nofield.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nofield.exp ./gdb/testsuite/gdb.base/nofield.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nofield.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nofield.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/noreturn-finish.c ./gdb/testsuite/gdb.base/noreturn-finish.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/noreturn-finish.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/noreturn-finish.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/noreturn-finish.exp ./gdb/testsuite/gdb.base/noreturn-finish.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/noreturn-finish.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/noreturn-finish.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/noreturn-return.c ./gdb/testsuite/gdb.base/noreturn-return.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/noreturn-return.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/noreturn-return.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/noreturn-return.exp ./gdb/testsuite/gdb.base/noreturn-return.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/noreturn-return.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/noreturn-return.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/normal.c ./gdb/testsuite/gdb.base/normal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/normal.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/normal.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nostdlib.c ./gdb/testsuite/gdb.base/nostdlib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nostdlib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nostdlib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nostdlib.exp ./gdb/testsuite/gdb.base/nostdlib.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/nostdlib.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/nostdlib.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/offsets.c ./gdb/testsuite/gdb.base/offsets.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/offsets.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/offsets.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/offsets.exp ./gdb/testsuite/gdb.base/offsets.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/offsets.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/offsets.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # Test big offsets
 
-# Copyright (c) 2014-2017 Free Software Foundation, Inc.
+# Copyright (c) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/opaque.exp ./gdb/testsuite/gdb.base/opaque.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/opaque.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/opaque.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/overlays.exp ./gdb/testsuite/gdb.base/overlays.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/overlays.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/overlays.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 # 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/page.exp ./gdb/testsuite/gdb.base/page.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/page.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/page.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.c ./gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp ./gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-bg-execution.c ./gdb/testsuite/gdb.base/paginate-bg-execution.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-bg-execution.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/paginate-bg-execution.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-bg-execution.exp ./gdb/testsuite/gdb.base/paginate-bg-execution.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-bg-execution.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/paginate-bg-execution.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-execution-startup.c ./gdb/testsuite/gdb.base/paginate-execution-startup.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-execution-startup.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/paginate-execution-startup.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-execution-startup.exp ./gdb/testsuite/gdb.base/paginate-execution-startup.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-execution-startup.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/paginate-execution-startup.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-inferior-exit.c ./gdb/testsuite/gdb.base/paginate-inferior-exit.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-inferior-exit.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/paginate-inferior-exit.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-inferior-exit.exp ./gdb/testsuite/gdb.base/paginate-inferior-exit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/paginate-inferior-exit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/paginate-inferior-exit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pc-fp.exp ./gdb/testsuite/gdb.base/pc-fp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pc-fp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/pc-fp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2002-2017 Free Software Foundation, Inc.
+#   Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pending.c ./gdb/testsuite/gdb.base/pending.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pending.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/pending.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pending.exp ./gdb/testsuite/gdb.base/pending.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pending.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/pending.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2003-2017 Free Software Foundation, Inc.
+#   Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pendshr.c ./gdb/testsuite/gdb.base/pendshr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pendshr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/pendshr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/permissions.exp ./gdb/testsuite/gdb.base/permissions.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/permissions.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/permissions.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pie-execl.c ./gdb/testsuite/gdb.base/pie-execl.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pie-execl.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/pie-execl.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pie-execl.exp ./gdb/testsuite/gdb.base/pie-execl.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pie-execl.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/pie-execl.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pointers.exp ./gdb/testsuite/gdb.base/pointers.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pointers.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/pointers.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pr10179.exp ./gdb/testsuite/gdb.base/pr10179.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pr10179.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/pr10179.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pr11022.c ./gdb/testsuite/gdb.base/pr11022.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pr11022.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/pr11022.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pr11022.exp ./gdb/testsuite/gdb.base/pr11022.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/pr11022.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/pr11022.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prelink.c ./gdb/testsuite/gdb.base/prelink.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prelink.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/prelink.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2006-2017 Free Software Foundation, Inc.
+   Copyright 2006-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prelink.exp ./gdb/testsuite/gdb.base/prelink.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prelink.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/prelink.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prelink-lib.c ./gdb/testsuite/gdb.base/prelink-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prelink-lib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/prelink-lib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2006-2017 Free Software Foundation, Inc.
+   Copyright 2006-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/printcmds.exp ./gdb/testsuite/gdb.base/printcmds.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/printcmds.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/printcmds.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 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
@@ -155,6 +155,16 @@ proc test_float_rejected {} {
     test_print_reject "p 1.1ll"
 }
 
+# Regression test for PR gdb/21675
+proc test_radices {} {
+    gdb_test "print/o 16777211" " = 077777773"
+    gdb_test "print/d 1.5" " = 1"
+    gdb_test "print/u 1.5" " = 1"
+
+    gdb_test "print/u (char) -1" " = 255"
+    gdb_test "print/d (unsigned char) -1" " = -1"
+}
+
 proc test_print_all_chars {} {
     global gdb_prompt
 
@@ -931,6 +941,12 @@ gdb_test "ptype \"abc\"" " = char \\\[4\
 gdb_test "print \$cvar = \"abc\"" " = \"abc\""
 gdb_test "print sizeof (\$cvar)" " = 4"
 
+# GDB used to complete the explicit location options even when
+# printing expressions.
+gdb_test_no_output "complete p -function"
+gdb_test_no_output "complete p -line"
+gdb_test_no_output "complete p -source"
+
 gdb_file_cmd ${binfile}
 
 gdb_test "print \$pc" "No registers\\." "print \$pc (with file)"
@@ -975,3 +991,4 @@ test_printf
 test_printf_with_dfp
 test_print_symbol
 test_repeat_bytes
+test_radices
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/print-file-var.exp ./gdb/testsuite/gdb.base/print-file-var.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/print-file-var.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/print-file-var.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
@@ -79,7 +79,7 @@ gdb_test "break $executable.c:$bp_locati
          "breapoint past v1 & v2 initialization"
 
 gdb_test "continue" \
-         "Breakpoint \[0-9\]+, main \\(\\) at.*" \
+         "Breakpoint \[0-9\]+, main \\(\\) at.*STOP.*" \
          "continue to STOP marker"
 
 # Now check the value of this_version_id in both print-file-var-lib1.c
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/print-file-var-lib1.c ./gdb/testsuite/gdb.base/print-file-var-lib1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/print-file-var-lib1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/print-file-var-lib1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* This testcase is part of GDB, the GNU debugger.
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/print-file-var-lib2.c ./gdb/testsuite/gdb.base/print-file-var-lib2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/print-file-var-lib2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/print-file-var-lib2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* This testcase is part of GDB, the GNU debugger.
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/print-file-var-main.c ./gdb/testsuite/gdb.base/print-file-var-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/print-file-var-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/print-file-var-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* This testcase is part of GDB, the GNU debugger.
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 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
@@ -23,12 +23,12 @@ main (void)
   int v1 = get_version_1 ();
   int v2 = get_version_2 ();
 
-  if (v1 != 104)  /* STOP */
+  if (v1 != 104)
     return 1;
   /* The value returned by get_version_2 depends on the target system.  */
-  if (v2 != 104 || v2 != 203)
+  if (v2 != 104 && v2 != 203)
     return 2;
 
-  return 0;
+  return 0; /* STOP */
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/print-symbol-loading.exp ./gdb/testsuite/gdb.base/print-symbol-loading.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/print-symbol-loading.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/print-symbol-loading.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/print-symbol-loading-lib.c ./gdb/testsuite/gdb.base/print-symbol-loading-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/print-symbol-loading-lib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/print-symbol-loading-lib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2010-2017 Free Software Foundation, Inc.
+/* Copyright 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/print-symbol-loading-main.c ./gdb/testsuite/gdb.base/print-symbol-loading-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/print-symbol-loading-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/print-symbol-loading-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2010-2017 Free Software Foundation, Inc.
+/* Copyright 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prologue.c ./gdb/testsuite/gdb.base/prologue.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prologue.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/prologue.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prologue.exp ./gdb/testsuite/gdb.base/prologue.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prologue.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/prologue.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Test for prologue skipping in minimal symbols with line info.
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prologue-include.c ./gdb/testsuite/gdb.base/prologue-include.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prologue-include.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/prologue-include.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prologue-include.exp ./gdb/testsuite/gdb.base/prologue-include.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prologue-include.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/prologue-include.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prologue-include.h ./gdb/testsuite/gdb.base/prologue-include.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/prologue-include.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/prologue-include.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/psymtab.exp ./gdb/testsuite/gdb.base/psymtab.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/psymtab.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/psymtab.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ptr-typedef.c ./gdb/testsuite/gdb.base/ptr-typedef.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ptr-typedef.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ptr-typedef.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2005-2017 Free Software Foundation, Inc.
+   Copyright 2005-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ptr-typedef.exp ./gdb/testsuite/gdb.base/ptr-typedef.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ptr-typedef.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ptr-typedef.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ptype.exp ./gdb/testsuite/gdb.base/ptype.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ptype.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ptype.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1988-2017 Free Software Foundation, Inc.
+# Copyright 1988-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ptype-offsets.cc ./gdb/testsuite/gdb.base/ptype-offsets.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ptype-offsets.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ptype-offsets.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,193 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#include <stdint.h>
+
+/* A struct with many types of fields, in order to test 'ptype
+   /o'.  */
+
+struct abc
+{
+  /* Virtual destructor.  */
+  virtual ~abc ()
+  {}
+
+  /* 8-byte address.  Because of the virtual destructor above, this
+     field's offset will be 8.  */
+  void *field1;
+
+  /* No hole here.  */
+
+  /* 4-byte int bitfield of 1-bit.  */
+  unsigned int field2 : 1;
+
+  /* 31-bit hole here.  */
+
+  /* 4-byte int.  */
+  signed int field3;
+
+  /* No hole here.  */
+
+  /* 1-byte char.  */
+  signed char field4;
+
+  /* 7-byte hole here.  */
+
+  /* 8-byte int.  */
+  uint64_t field5;
+
+  /* We just print the offset and size of a union, ignoring its
+     fields.  */
+  union
+  {
+    /* 8-byte address.  */
+    void *field6;
+
+    /* 4-byte int.  */
+    signed int field7;
+  } field8;
+
+  /* Empty constructor.  */
+  abc ()
+  {}
+
+  /* Typedef defined in-struct.  */
+  typedef int my_int_type;
+
+  my_int_type field9;
+};
+
+/* This struct will be nested inside 'struct xyz'.  */
+
+struct tuv
+{
+  signed int a1;
+
+  signed char *a2;
+
+  signed int a3;
+};
+
+/* This struct will be nested inside 'struct pqr'.  */
+
+struct xyz
+{
+  signed int f1;
+
+  signed char f2;
+
+  void *f3;
+
+  struct tuv f4;
+};
+
+/* A struct with a nested struct.  */
+
+struct pqr
+{
+  signed int ff1;
+
+  struct xyz ff2;
+
+  signed char ff3;
+};
+
+/* A union with two nested structs.  */
+
+union qwe
+{
+  struct tuv fff1;
+
+  struct xyz fff2;
+};
+
+/* A struct with an union.  */
+
+struct poi
+{
+  signed int f1;
+
+  union qwe f2;
+
+  uint16_t f3;
+
+  struct pqr f4;
+};
+
+/* A struct with bitfields.  */
+
+struct tyu
+{
+  signed int a1 : 1;
+
+  signed int a2 : 3;
+
+  signed int a3 : 23;
+
+  signed char a4 : 2;
+
+  int64_t a5;
+
+  signed int a6 : 5;
+
+  int64_t a7 : 3;
+};
+
+/* A struct with structs and unions.  */
+
+struct asd
+{
+  struct jkl
+  {
+      signed char *f1;
+      union
+      {
+	void *ff1;
+      } f2;
+      union
+      {
+	signed char *ff2;
+      } f3;
+      int f4 : 5;
+      unsigned int f5 : 1;
+      short f6;
+  } f7;
+  unsigned long f8;
+  signed char *f9;
+  int f10 : 4;
+  unsigned int f11 : 1;
+  unsigned int f12 : 1;
+  unsigned int f13 : 1;
+  unsigned int f14 : 1;
+  void *f15;
+  void *f16;
+};
+
+
+int
+main (int argc, char *argv[])
+{
+  struct abc foo;
+  struct pqr bar;
+  union qwe c;
+  struct poi d;
+  struct tyu e;
+  struct asd f;
+  uint8_t i;
+
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ptype-offsets.exp ./gdb/testsuite/gdb.base/ptype-offsets.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ptype-offsets.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ptype-offsets.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,318 @@
+# This testcase is part of GDB, the GNU debugger.
+
+# Copyright 2017-2018 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 testcase exercises the "ptype /o" feature, which can be used to
+# print the offsets and sizes of each field of a struct/union/class.
+
+standard_testfile .cc
+
+# Test only works on LP64 targets.  That's how we guarantee that the
+# expected holes will be present in the struct.
+if { ![is_lp64_target] } {
+    untested "test work only on lp64 targets"
+    return 0
+}
+
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
+	  { debug c++ }] } {
+    return -1
+}
+
+# Test general offset printing, ctor/dtor printing, union, formatting.
+gdb_test "ptype /o struct abc" \
+    [multi_line \
+{/\* offset    |  size \*/  type = struct abc \{} \
+{                         public:} \
+{/\*    8      |     8 \*/    void \*field1;} \
+{/\*   16:31   |     4 \*/    unsigned int field2 : 1;} \
+{/\* XXX  7-bit hole   \*/} \
+{/\* XXX  3-byte hole  \*/} \
+{/\*   20      |     4 \*/    int field3;} \
+{/\*   24      |     1 \*/    signed char field4;} \
+{/\* XXX  7-byte hole  \*/} \
+{/\*   32      |     8 \*/    uint64_t field5;} \
+{/\*   40      |     8 \*/    union \{} \
+{/\*                 8 \*/        void \*field6;} \
+{/\*                 4 \*/        int field7;} \
+{} \
+{                               /\* total size \(bytes\):    8 \*/} \
+{                           \} field8;} \
+{/\*   48      |     4 \*/    my_int_type field9;} \
+{} \
+{                           /\* total size \(bytes\):   56 \*/} \
+{                         \}}]
+
+# Test "ptype /oTM".
+gdb_test "ptype /oTM struct abc" \
+    [multi_line \
+{/\* offset    |  size \*/  type = struct abc \{} \
+{                         public:} \
+{/\*    8      |     8 \*/    void \*field1;} \
+{/\*   16:31   |     4 \*/    unsigned int field2 : 1;} \
+{/\* XXX  7-bit hole   \*/} \
+{/\* XXX  3-byte hole  \*/} \
+{/\*   20      |     4 \*/    int field3;} \
+{/\*   24      |     1 \*/    signed char field4;} \
+{/\* XXX  7-byte hole  \*/} \
+{/\*   32      |     8 \*/    uint64_t field5;} \
+{/\*   40      |     8 \*/    union \{} \
+{/\*                 8 \*/        void \*field6;} \
+{/\*                 4 \*/        int field7;} \
+{} \
+{                               /\* total size \(bytes\):    8 \*/} \
+{                           \} field8;} \
+{/\*   48      |     4 \*/    my_int_type field9;} \
+{} \
+{                           abc\(void\);} \
+{                           ~abc\(\);} \
+{} \
+{                           typedef int my_int_type;} \
+{} \
+{                           /\* total size \(bytes\):   56 \*/} \
+{                         \}}]
+
+# Test "ptype /TMo".  This should be the same as "ptype /o".
+gdb_test "ptype /TMo struct abc" \
+    [multi_line \
+{/\* offset    |  size \*/  type = struct abc \{} \
+{                         public:} \
+{/\*    8      |     8 \*/    void \*field1;} \
+{/\*   16:31   |     4 \*/    unsigned int field2 : 1;} \
+{/\* XXX  7-bit hole   \*/} \
+{/\* XXX  3-byte hole  \*/} \
+{/\*   20      |     4 \*/    int field3;} \
+{/\*   24      |     1 \*/    signed char field4;} \
+{/\* XXX  7-byte hole  \*/} \
+{/\*   32      |     8 \*/    uint64_t field5;} \
+{/\*   40      |     8 \*/    union \{} \
+{/\*                 8 \*/        void \*field6;} \
+{/\*                 4 \*/        int field7;} \
+{} \
+{                               /\* total size \(bytes\):    8 \*/} \
+{                           \} field8;} \
+{/\*   48      |     4 \*/    my_int_type field9;} \
+{} \
+{                           /\* total size \(bytes\):   56 \*/} \
+{                         \}}]
+
+# Test nested structs.
+gdb_test "ptype /o struct pqr" \
+    [multi_line \
+{/\* offset    |  size \*/  type = struct pqr \{} \
+{/\*    0      |     4 \*/    int ff1;} \
+{/\* XXX  4-byte hole  \*/} \
+{/\*    8      |    40 \*/    struct xyz \{} \
+{/\*    8      |     4 \*/        int f1;} \
+{/\*   12      |     1 \*/        signed char f2;} \
+{/\* XXX  3-byte hole  \*/} \
+{/\*   16      |     8 \*/        void \*f3;} \
+{/\*   24      |    24 \*/        struct tuv \{} \
+{/\*   24      |     4 \*/            int a1;} \
+{/\* XXX  4-byte hole  \*/} \
+{/\*   32      |     8 \*/            signed char \*a2;} \
+{/\*   40      |     4 \*/            int a3;} \
+{} \
+{                                   /\* total size \(bytes\):   24 \*/} \
+{                               \} f4;} \
+{} \
+{                               /\* total size \(bytes\):   40 \*/} \
+{                           \} ff2;} \
+{/\* XXX 28-byte hole  \*/} \
+{/\*   72      |     1 \*/    signed char ff3;} \
+{} \
+{                           /\* total size \(bytes\):   56 \*/} \
+{                         \}}]
+
+# Test that the offset is properly reset when we are printing a union
+# and go inside two inner structs.
+# This also tests a struct inside a struct inside a union.
+gdb_test "ptype /o union qwe" \
+    [multi_line \
+{/\* offset    |  size \*/  type = union qwe \{} \
+{/\*                24 \*/    struct tuv \{} \
+{/\*    0      |     4 \*/        int a1;} \
+{/\* XXX  4-byte hole  \*/} \
+{/\*    8      |     8 \*/        signed char \*a2;} \
+{/\*   16      |     4 \*/        int a3;} \
+{} \
+{                               /\* total size \(bytes\):   24 \*/} \
+{                           \} fff1;} \
+{/\*                40 \*/    struct xyz \{} \
+{/\*    0      |     4 \*/        int f1;} \
+{/\*    4      |     1 \*/        signed char f2;} \
+{/\* XXX  3-byte hole  \*/} \
+{/\*    8      |     8 \*/        void \*f3;} \
+{/\*   16      |    24 \*/        struct tuv \{} \
+{/\*   16      |     4 \*/            int a1;} \
+{/\* XXX  4-byte hole  \*/} \
+{/\*   24      |     8 \*/            signed char \*a2;} \
+{/\*   32      |     4 \*/            int a3;} \
+{} \
+{                                   /\* total size \(bytes\):   24 \*/} \
+{                               \} f4;} \
+{} \
+{                               /\* total size \(bytes\):   40 \*/} \
+{                           \} fff2;} \
+{} \
+{                           /\* total size \(bytes\):   40 \*/} \
+{                         \}}]
+
+# Test printing a struct that contains a union, and that also
+# contains a struct.
+gdb_test "ptype /o struct poi" \
+    [multi_line \
+{/\* offset    |  size \*/  type = struct poi \{} \
+{/\*    0      |     4 \*/    int f1;} \
+{/\* XXX  4-byte hole  \*/} \
+{/\*    8      |    40 \*/    union qwe \{} \
+{/\*                24 \*/        struct tuv \{} \
+{/\*    8      |     4 \*/            int a1;} \
+{/\* XXX  4-byte hole  \*/} \
+{/\*   16      |     8 \*/            signed char \*a2;} \
+{/\*   24      |     4 \*/            int a3;} \
+{} \
+{                                   /\* total size \(bytes\):   24 \*/} \
+{                               \} fff1;} \
+{/\*                40 \*/        struct xyz \{} \
+{/\*    8      |     4 \*/            int f1;} \
+{/\*   12      |     1 \*/            signed char f2;} \
+{/\* XXX  3-byte hole  \*/} \
+{/\*   16      |     8 \*/            void \*f3;} \
+{/\*   24      |    24 \*/            struct tuv \{} \
+{/\*   24      |     4 \*/                int a1;} \
+{/\* XXX  4-byte hole  \*/} \
+{/\*   32      |     8 \*/                signed char \*a2;} \
+{/\*   40      |     4 \*/                int a3;} \
+{} \
+{                                       /\* total size \(bytes\):   24 \*/} \
+{                                   \} f4;} \
+{} \
+{                                   /\* total size \(bytes\):   40 \*/} \
+{                               \} fff2;} \
+{} \
+{                               /\* total size \(bytes\):   40 \*/} \
+{                           \} f2;} \
+{/\*   72      |     2 \*/    uint16_t f3;} \
+{/\* XXX  6-byte hole  \*/} \
+{/\*   80      |    56 \*/    struct pqr \{} \
+{/\*   80      |     4 \*/        int ff1;} \
+{/\* XXX  4-byte hole  \*/} \
+{/\*   88      |    40 \*/        struct xyz \{} \
+{/\*   88      |     4 \*/            int f1;} \
+{/\*   92      |     1 \*/            signed char f2;} \
+{/\* XXX  3-byte hole  \*/} \
+{/\*   96      |     8 \*/            void \*f3;} \
+{/\*  104      |    24 \*/            struct tuv \{} \
+{/\*  104      |     4 \*/                int a1;} \
+{/\* XXX  4-byte hole  \*/} \
+{/\*  112      |     8 \*/                signed char \*a2;} \
+{/\*  120      |     4 \*/                int a3;} \
+{} \
+{                                       /\* total size \(bytes\):   24 \*/} \
+{                                   \} f4;} \
+{} \
+{                                   /\* total size \(bytes\):   40 \*/} \
+{                               \} ff2;} \
+{/\*  152      |     1 \*/        signed char ff3;} \
+{} \
+{                               /\* total size \(bytes\):   56 \*/} \
+{                           \} f4;} \
+{} \
+{                           /\* total size \(bytes\):  112 \*/} \
+{                         \}}]
+
+# Test printing a struct with several bitfields, laid out in various
+# ways.
+#
+# Because dealing with bitfields and offsets is difficult, it can be
+# tricky to confirm that the output of this command is accurate.  A
+# nice way to do that is to use GDB's "x" command and print the actual
+# memory layout of the struct.  In order to differentiate between
+# bitfields and non-bitfield variables, one can assign "-1" to every
+# bitfield in the struct.  An example of the output of "x" using
+# "struct tyu" is:
+#
+#   (gdb) x/24xb &e
+#   0x7fffffffd540: 0xff    0xff    0xff    0x1f    0x00    0x00    0x00    0x00
+#   0x7fffffffd548: 0xff    0xff    0xff    0xff    0xff    0xff    0xff    0xff
+#   0x7fffffffd550: 0xff    0x00    0x00    0x00    0x00    0x00    0x00    0x00
+gdb_test "ptype /o struct tyu" \
+    [multi_line \
+{/\* offset    |  size \*/  type = struct tyu \{} \
+{/\*    0:31   |     4 \*/    int a1 : 1;} \
+{/\*    0:28   |     4 \*/    int a2 : 3;} \
+{/\*    0: 5   |     4 \*/    int a3 : 23;} \
+{/\*    3: 3   |     1 \*/    signed char a4 : 2;} \
+{/\* XXX  3-bit hole   \*/} \
+{/\* XXX  4-byte hole  \*/} \
+{/\*    8      |     8 \*/    int64_t a5;} \
+{/\*   16:27   |     4 \*/    int a6 : 5;} \
+{/\*   16:56   |     8 \*/    int64_t a7 : 3;} \
+{} \
+{                           /\* total size \(bytes\):   24 \*/} \
+{                         \}}]
+
+gdb_test "ptype /o struct asd" \
+    [multi_line \
+{/\* offset    |  size \*/  type = struct asd \{} \
+{/\*    0      |    32 \*/    struct asd::jkl \{} \
+{/\*    0      |     8 \*/        signed char \*f1;} \
+{/\*    8      |     8 \*/        union \{} \
+{/\*                 8 \*/            void \*ff1;} \
+{} \
+{                                   /\* total size \(bytes\):    8 \*/} \
+{                               \} f2;} \
+{/\*   16      |     8 \*/        union \{} \
+{/\*                 8 \*/            signed char \*ff2;} \
+{} \
+{                                   /\* total size \(bytes\):    8 \*/} \
+{                               \} f3;} \
+{/\*   24:27   |     4 \*/        int f4 : 5;} \
+{/\*   24:26   |     4 \*/        unsigned int f5 : 1;} \
+{/\* XXX  2-bit hole   \*/} \
+{/\* XXX  1-byte hole  \*/} \
+{/\*   26      |     2 \*/        short f6;} \
+{} \
+{                               /\* total size \(bytes\):   32 \*/} \
+{                           \} f7;} \
+{/\*   32      |     8 \*/    unsigned long f8;} \
+{/\*   40      |     8 \*/    signed char \*f9;} \
+{/\*   48:28   |     4 \*/    int f10 : 4;} \
+{/\*   48:27   |     4 \*/    unsigned int f11 : 1;} \
+{/\*   48:26   |     4 \*/    unsigned int f12 : 1;} \
+{/\*   48:25   |     4 \*/    unsigned int f13 : 1;} \
+{/\*   48:24   |     4 \*/    unsigned int f14 : 1;} \
+{/\* XXX  7-byte hole  \*/} \
+{/\*   56      |     8 \*/    void \*f15;} \
+{/\*   64      |     8 \*/    void \*f16;} \
+{} \
+{                           /\* total size \(bytes\):   72 \*/} \
+{                         \}}]
+
+# Test that we don't print any header when issuing a "ptype /o" on a
+# non-struct, non-union, non-class type.
+gdb_test "ptype /o int" "int"
+gdb_test "ptype /o uint8_t" "char"
+
+# Test that the "whatis" command doesn't print anything related to the
+# "offsets" feature, even when receiving the "/o" parameter.
+set test "whatis /o asd"
+gdb_test_multiple "$test" "$test" {
+   -re "^$test\r\ntype = asd\r\n$gdb_prompt $" {
+       pass $test
+   }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/quit.exp ./gdb/testsuite/gdb.base/quit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/quit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/quit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 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
@@ -23,13 +23,15 @@ gdb_test "quit()" "A syntax error in exp
     "quit with syntax error"
 
 # Test that an expression can be used to set the error code.
-send_gdb "quit 22+1\n"
-set result [wait -i $gdb_spawn_id]
-verbose $result
-if {[lindex $result 2] == 0 && [lindex $result 3] == 23} {
-    pass "quit with expression"
-} else {
-    fail "quit with expression"
+
+set test "quit with expression"
+gdb_test_multiple "quit 22+1" $test {
+    eof {
+	set result [wait -i $gdb_spawn_id]
+	verbose $result
+	gdb_assert {[lindex $result 2] == 0 && [lindex $result 3] == 23} $test
+
+	remote_close host
+	clear_gdb_spawn_id
+    }
 }
-close $gdb_spawn_id
-clear_gdb_spawn_id
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/quit-live.c ./gdb/testsuite/gdb.base/quit-live.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/quit-live.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/quit-live.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,27 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#include <unistd.h>
+
+int
+main ()
+{
+  int secs = 30;
+
+  while (secs--)
+    sleep (1);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/quit-live.exp ./gdb/testsuite/gdb.base/quit-live.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/quit-live.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/quit-live.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,178 @@
+# Copyright (C) 2017-2018 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 quitting GDB with live inferiors.
+#
+# Exercises combinations of:
+#
+# - quitting with "quit" command, or with SIGTERM/SIGHUP signals.
+#
+# - quitting with live inferior selected, or file_stratum inferior
+#   selected.
+#
+# - quitting after "run", or after "attach".
+#
+# - quitting with local executable, or executable loaded from target
+#   directly (via default "target:/" sysroot), or with no executable
+#   loaded.
+
+# Note: sending an asynchronous SIGHUP with kill is not the exact same
+# as closing GDB's input, and that resulting in SIGHUP.  However, it's
+# still a good approximation, and it has the advantage that because
+# GDB still has a terminal, internal errors (if any) are visible in
+# gdb.sum/gdb.log.
+
+standard_testfile
+
+if {[build_executable "failed to build" $testfile $srcfile debug]} {
+    return
+}
+
+# Send signal SIG to GDB, and expect GDB to exit.
+
+proc test_quit_with_sig {sig} {
+    set gdb_pid [exp_pid -i [board_info host fileid]]
+    remote_exec host "kill -$sig ${gdb_pid}"
+
+    set test "quit with SIG$sig"
+    # If GDB mishandles the signal and doesn't exit, this should FAIL
+    # with timeout.  We don't expect a GDB prompt, so if we see one,
+    # we'll FAIL too (without having to wait for timeout).
+    gdb_test_multiple "" $test {
+	eof {
+	    pass $test
+	}
+    }
+}
+
+# Call the "quit" command with an inferior live.
+#
+# APPEAR_HOW specifies how the running inferior appears in GDB.  Can
+# be either:
+#
+# - "run"
+#
+#    Appear via the "run" command.
+#
+# - "attach"
+#
+#    Appear via the "attach" command.
+#
+# - "attach-nofile"
+#
+#    Appear via the "attach" command, but with no program preloaded in
+#    GDB so that GDB reads the program directly from the target when
+#    remote debugging (i.e., from the target:/ sysroot).  This makes
+#    sure that GDB doesn't misbehave if it decides to close the
+#    'target:/.../program' exec_file after closing the remote
+#    connection.
+#
+# EXTRA_INFERIOR is a boolean that specifies whether we try to quit
+# GDB with an extra executable-only (before "run") inferior selected
+# or whether we try to quit GDB when the live inferior is selected,
+# with no extra inferior.
+#
+# QUIT_HOW specifies how to tell GDB to quit.  It can be either "quit"
+# (for "quit" command), "sighup" or "sigterm" (for quitting with
+# SIGHUP and SIGTERM signals, respectively).
+
+proc quit_with_live_inferior {appear_how extra_inferior quit_how} {
+    global srcfile testfile binfile
+    global gdb_spawn_id gdb_prompt
+
+    set test_spawn_id ""
+
+    if {$appear_how != "attach-nofile"} {
+	clean_restart $binfile
+    } else {
+	clean_restart
+    }
+
+    if {$appear_how == "run"} {
+	if ![runto_main] then {
+	    fail "can't run to main"
+	    return
+	}
+    } elseif {$appear_how == "attach" || $appear_how == "attach-nofile"} {
+	set test_spawn_id [spawn_wait_for_attach $binfile]
+	set testpid [spawn_id_get_pid $test_spawn_id]
+
+	if {[gdb_test "attach $testpid" \
+		 "Attaching to .*process $testpid.*Reading symbols from.*" \
+		 "attach"] != 0} {
+	    kill_wait_spawned_process $test_spawn_id
+	    return
+	}
+    } else {
+	error "unhandled '\$appear_how': $appear_how"
+    }
+
+    if {$extra_inferior} {
+	gdb_test "add-inferior" "Added inferior 2*" \
+	    "add empty inferior 2"
+	gdb_test "inferior 2" "Switching to inferior 2.*" \
+	    "switch to inferior 2"
+    }
+
+    if {$quit_how == "quit"} {
+	# Make regexp that matches the "quit" command's output.
+	proc make_re {how} {
+	    multi_line \
+		"A debugging session is active.\[ \t\r\n\]*Inferior 1\[^\r\n\]* will be $how\." \
+		"" \
+		"Quit anyway\\? \\(y or n\\) $"
+	}
+
+	if {$appear_how == "run"} {
+	    set quit_anyway_re [make_re "killed"]
+	} else {
+	    set quit_anyway_re [make_re "detached"]
+	}
+
+	set test "quit with \"quit\""
+	gdb_test_multiple "quit" $test {
+	    -re $quit_anyway_re {
+		send_gdb "y\n"
+		gdb_test_multiple "" $test {
+		    eof {
+			pass $test
+		    }
+		}
+	    }
+	}
+    } elseif {$quit_how == "sighup"} {
+	test_quit_with_sig HUP
+    } elseif {$quit_how == "sigterm"} {
+	test_quit_with_sig TERM
+    } else {
+	error "unhandled '\$quit_how': $quit_how"
+    }
+
+    if {$test_spawn_id != ""} {
+	kill_wait_spawned_process $test_spawn_id
+    }
+}
+
+foreach_with_prefix appear_how {"run" "attach" "attach-nofile"} {
+    if {$appear_how != "run" && ![can_spawn_for_attach]} {
+	continue
+    }
+
+    foreach_with_prefix extra_inferior {0 1} {
+	foreach_with_prefix quit_how {"quit" "sigterm" "sighup"} {
+	    quit_with_live_inferior $appear_how $extra_inferior $quit_how
+	}
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/radix.exp ./gdb/testsuite/gdb.base/radix.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/radix.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/radix.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # This testcase is part of GDB, the GNU debugger.
-# Copyright 1993-2017 Free Software Foundation, Inc.
+# Copyright 1993-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/randomize.c ./gdb/testsuite/gdb.base/randomize.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/randomize.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/randomize.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/randomize.exp ./gdb/testsuite/gdb.base/randomize.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/randomize.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/randomize.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/random-signal.c ./gdb/testsuite/gdb.base/random-signal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/random-signal.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/random-signal.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/random-signal.exp ./gdb/testsuite/gdb.base/random-signal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/random-signal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/random-signal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/range-stepping.c ./gdb/testsuite/gdb.base/range-stepping.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/range-stepping.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/range-stepping.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/range-stepping.exp ./gdb/testsuite/gdb.base/range-stepping.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/range-stepping.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/range-stepping.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/readline-ask.c ./gdb/testsuite/gdb.base/readline-ask.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/readline-ask.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/readline-ask.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/readline-ask.exp ./gdb/testsuite/gdb.base/readline-ask.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/readline-ask.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/readline-ask.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/readline-ask.inputrc ./gdb/testsuite/gdb.base/readline-ask.inputrc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/readline-ask.inputrc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/readline-ask.inputrc	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/readline.exp ./gdb/testsuite/gdb.base/readline.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/readline.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/readline.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/readnever.c ./gdb/testsuite/gdb.base/readnever.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/readnever.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/readnever.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,41 @@
+/* Copyright 2016-2018 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/>.  */
+
+static void
+fun_three (int a, char b, void *c)
+{
+  /* Do nothing.  */
+}
+
+static void
+fun_two (unsigned int p, const char *y)
+{
+  fun_three ((int) p, '1', (void *) y);
+}
+
+static void
+fun_one (int *x)
+{
+  fun_two (10, (const char *) x);
+}
+
+int
+main (void)
+{
+  int a = 10;
+
+  fun_one (&a);
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/readnever.exp ./gdb/testsuite/gdb.base/readnever.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/readnever.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/readnever.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,83 @@
+# Copyright 2016-2018 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/>.
+
+standard_testfile .c
+
+if { [build_executable "failed to build" $testfile $srcfile { debug }] == -1 } {
+    untested "Couldn't compile ${srcfile}"
+    return -1
+}
+
+save_vars { GDBFLAGS } {
+    append GDBFLAGS " --readnever"
+    clean_restart ${binfile}
+}
+
+if ![runto_main] then {
+    perror "couldn't run to breakpoint"
+    continue
+}
+
+gdb_test "break fun_three" \
+         "Breakpoint $decimal at $hex"
+
+gdb_test "continue" \
+         "Breakpoint $decimal, $hex in fun_three \\(\\)"
+
+gdb_test "backtrace" \
+         [multi_line "#0  $hex in fun_three \\(\\)" \
+                     "#1  $hex in fun_two \\(\\)" \
+                     "#2  $hex in fun_one \\(\\)" \
+                     "#3  $hex in main \\(\\)" ]
+
+gdb_test_no_output "maint info symtabs" \
+    "maint info symtabs no output for --readnever"
+gdb_test_no_output "maint info psymtabs" \
+    "maint info psymtabs no output for --readnever"
+
+# Test invalid combination of flags.
+save_vars { GDBFLAGS } {
+    append GDBFLAGS " --readnever --readnow"
+    gdb_exit
+    gdb_spawn
+
+    set test "test readnow and readnever at the same time"
+    gdb_test_multiple "" $test {
+	"'--readnow' and '--readnever' cannot be specified simultaneously" {
+	    pass $test
+	    set test "expect eof after failure"
+	    gdb_test_multiple "" $test {
+		eof {
+		    pass $test
+		}
+	    }
+	}
+    }
+}
+
+
+# Test symbol-file's -readnever option.
+
+# Restart GDB without the --readnever option.
+gdb_exit
+gdb_start
+gdb_test "symbol-file ${binfile}0.o -readnever" \
+    "Reading symbols from ${binfile}0\.o\.\.\.\\\(no debugging symbols found\\\)\.\.\.done\." \
+    "use symbol-file -readnever"
+
+gdb_test_no_output "maint info symtabs" \
+    "maint info symtabs no output for symbol-file -readnever"
+gdb_test_no_output "maint info psymtabs" \
+    "maint info psymtabs no output for symbol-file -readnever"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/realname-expand.c ./gdb/testsuite/gdb.base/realname-expand.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/realname-expand.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/realname-expand.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/realname-expand.exp ./gdb/testsuite/gdb.base/realname-expand.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/realname-expand.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/realname-expand.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/realname-expand-real.c ./gdb/testsuite/gdb.base/realname-expand-real.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/realname-expand-real.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/realname-expand-real.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/recpar.c ./gdb/testsuite/gdb.base/recpar.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/recpar.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/recpar.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/recpar.exp ./gdb/testsuite/gdb.base/recpar.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/recpar.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/recpar.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/recurse.exp ./gdb/testsuite/gdb.base/recurse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/recurse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/recurse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/reggroups.c ./gdb/testsuite/gdb.base/reggroups.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/reggroups.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/reggroups.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,22 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2015-2018 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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/reggroups.exp ./gdb/testsuite/gdb.base/reggroups.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/reggroups.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/reggroups.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,113 @@
+# This testcase is part of GDB, the GNU debugger.
+
+# Copyright 2017-2018 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 listing reggroups and the registers in each group.
+
+standard_testfile
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
+    return -1
+}
+
+if ![runto_main] then {
+    fail "can't run to main"
+    return 0
+}
+
+set invalid_register_re "Invalid register .*"
+
+# Fetch all reggroups from 'maint print reggroups'.
+
+proc fetch_reggroups {test} {
+    global gdb_prompt
+
+    set reggroups {}
+    gdb_test_multiple "maint print reggroups" $test {
+	-re "maint print reggroups\r\n" {
+	    exp_continue
+	}
+	-re "^ Group\[ \t\]+Type\[ \t\]+\r\n" {
+	    exp_continue
+	}
+	-re "^ (\[0-9a-zA-Z-\]+)\[ \t\]+(user|internal)\[ \t\]+\r\n" {
+	    lappend reggroups $expect_out(1,string)
+	    exp_continue
+	}
+	-re "$gdb_prompt $" {
+	    gdb_assert "[llength $reggroups] != 0" $test
+	}
+    }
+
+    return $reggroups
+}
+
+# Fetch all registers for a reggroup from 'info reg <reggroup>'.
+
+proc fetch_reggroup_regs {reggroup test} {
+    global gdb_prompt
+    global invalid_register_re
+
+    # The command info reg <reggroup> will return something like the following:
+    #
+    # r0             0x0      0^M
+    # r1             0x7fdffc 0x7fdffc^M
+    # r2             0x7fe000 0x7fe000^M
+    # npc            0x23a8   0x23a8 <main+12>^M
+    # sr             0x8401   [ SM CY FO CID=0 ]^M
+    #
+    # We parse out and return the reg names, this is done by detecting
+    # that for each line we have a register name followed by a $hex number.
+    #
+    # Note: we will not return vector registers, but I think this is ok because
+    # for testing purposes we just want to ensure we get some registers and dont
+    # fail.  Example vector register:
+    #
+    # xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, ... }}
+    #
+    set regs {}
+    gdb_test_multiple "info reg $reggroup" $test {
+	-re "info reg $reggroup\r\n" {
+	    exp_continue
+	}
+	-re "^(\[0-9a-zA-Z-\]+)\[ \t\]+(0x\[0-9a-f\]+)\[ \t\]+(\[^\n\r\]+)\r\n" {
+	    lappend regs $expect_out(1,string)
+	    exp_continue
+	}
+	-re $invalid_register_re {
+	    fail "$test (unexpected invalid register response)"
+	}
+	-re "$gdb_prompt $" {
+	    pass $test
+	}
+    }
+    return $regs
+}
+
+set reggroups [fetch_reggroups "fetch reggroups"]
+set regcount 0
+foreach reggroup $reggroups {
+    set regs [fetch_reggroup_regs $reggroup "fetch reggroup regs $reggroup"]
+    set regcount [expr $regcount + [llength $regs]]
+}
+
+gdb_assert "[llength $regcount] != 0" "system has reggroup registers"
+
+# If this fails it means that probably someone changed the error text returned
+# for an invalid register argument.  If that happens we should fix the pattern
+# here and in the fetch_reggroup_regs procedure above.
+gdb_test "info reg invalid-reggroup" $invalid_register_re \
+    "info reg invalid-reggroup should report 'Invalid register'"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/relational.exp ./gdb/testsuite/gdb.base/relational.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/relational.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/relational.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/relativedebug.c ./gdb/testsuite/gdb.base/relativedebug.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/relativedebug.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/relativedebug.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/relativedebug.exp ./gdb/testsuite/gdb.base/relativedebug.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/relativedebug.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/relativedebug.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/relocate.c ./gdb/testsuite/gdb.base/relocate.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/relocate.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/relocate.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/relocate.exp ./gdb/testsuite/gdb.base/relocate.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/relocate.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/relocate.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 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
@@ -31,11 +31,105 @@ gdb_reinitialize_dir $srcdir/$subdir
 
 #Check that invalid options are rejected.
 foreach x {"-raednow" "readnow" "foo" "-readnow s"} {
+    set word [lindex $x [expr [llength $x]-1]]
     gdb_test "add-symbol-file ${binfile} 0 $x" \
-	"USAGE: add-symbol-file <filename> <textaddress>.*-readnow.*-s <secname> <addr>.*" \
-	"add-symbol-file: unknown option $x"
+	"Unrecognized argument \"$word\"" \
+	"add-symbol-file: unknown option $word"
 }
 
+# Check that we can pass parameters using any position in the command
+# line.
+set test "add-symbol-file positionless -readnow"
+gdb_test_multiple "add-symbol-file -readnow $binfile 0x100 -s .bss 0x3" $test {
+    -re "add symbol table from file \"${binfile}\" at\r\n\t\.text_addr = 0x100\r\n\t\.bss_addr = 0x3\r\n\\(y or n\\) " {
+	gdb_test "n" "Not confirmed\." $test
+    }
+}
+# When we use -s as the first argument, the section will be printed
+# first as well.
+set test "add-symbol-file positionless -s"
+gdb_test_multiple "add-symbol-file -s .bss 0x3 -readnow $binfile 0x100" $test {
+    -re "add symbol table from file \"${binfile}\" at\r\n\t\.text_addr = 0x100\r\n\t\.bss_addr = 0x3\r\n\\(y or n\\) " {
+	gdb_test "n" "Not confirmed\." $test
+    }
+}
+set test "add-symbol-file positionless -s, no -readnow"
+gdb_test_multiple "add-symbol-file $binfile 0x100 -s .bss 0x3" $test {
+    -re "add symbol table from file \"${binfile}\" at\r\n\t\.text_addr = 0x100\r\n\t\.bss_addr = 0x3\r\n\\(y or n\\) " {
+	gdb_test "n" "Not confirmed\." $test
+    }
+}
+# Check that passing "-s .text", no matter the position, always has
+# the same result.
+set test "add-symbol-file different -s .text, after file"
+gdb_test_multiple "add-symbol-file $binfile 0x100 -s .text 0x200" $test {
+    -re "add symbol table from file \"${binfile}\" at\r\n\t\.text_addr = 0x100\r\n\t\.text_addr = 0x200\r\n\\(y or n\\) " {
+	gdb_test "n" "Not confirmed\." $test
+    }
+}
+set test "add-symbol-file different -s .text, before file"
+gdb_test_multiple "add-symbol-file -s .text 0x200 $binfile 0x100" $test {
+    -re "add symbol table from file \"${binfile}\" at\r\n\t\.text_addr = 0x100\r\n\t\.text_addr = 0x200\r\n\\(y or n\\) " {
+	gdb_test "n" "Not confirmed\." $test
+    }
+}
+# Test that passing "--" disables option processing.
+gdb_test "add-symbol-file -- $binfile 0x100 -s .bss 0x3" \
+    "Unrecognized argument \"-s\"" \
+    "add-symbol-file with -- disables option processing"
+set test "add-symbol-file with -- disables option processing, non-existent filename"
+gdb_test_multiple "add-symbol-file -- -non-existent-file 0x100" $test {
+    -re "add symbol table from file \"-non-existent-file\" at\r\n\t\.text_addr = 0x100\r\n\\(y or n\\) " {
+	gdb_test "y" "-non-existent-file: No such file or directory\." $test
+    }
+}
+# Test that passing the wrong number of arguments to '-s' leads to an
+# error.
+gdb_test "add-symbol-file $binfile -s" \
+    "Missing section name after \"-s\"" \
+    "add-symbol-file with -s without section name"
+gdb_test "add-symbol-file $binfile -s .bss" \
+    "Missing section address after \"-s\"" \
+    "add-symbol-file with -s without section address"
+# Test that '-s' accepts section names with '-'
+set test "add-symbol-file with -s using section name starting with dash"
+gdb_test_multiple "add-symbol-file -s -section-name 0x200 $binfile 0x100" $test {
+    -re "add symbol table from file \"${binfile}\" at\r\n\t\.text_addr = 0x100\r\n\t\-section-name_addr = 0x200\r\n\\(y or n\\) " {
+	gdb_test "n" "Not confirmed\." $test
+    }
+}
+# Since we're here, might as well test the 'symbol-file' command and
+# if its arguments can also be passed at any position.
+gdb_test "symbol-file -readnow $binfile" \
+    "Reading symbols from ${binfile}\.\.\.expanding to full symbols\.\.\.done\." \
+    "symbol-file with -readnow first"
+clean_restart
+gdb_test "symbol-file $binfile -readnow" \
+    "Reading symbols from ${binfile}\.\.\.expanding to full symbols\.\.\.done\." \
+    "symbol-file with -readnow second"
+gdb_test "symbol-file -readnow" \
+    "no symbol file name was specified" \
+    "symbol-file without filename"
+gdb_test "symbol-file -- -non-existent-file" \
+    "-non-existent-file: No such file or directory\." \
+    "symbol-file with -- disables option processing"
+clean_restart
+gdb_test "symbol-file -readnow -- $binfile" \
+    "Reading symbols from ${binfile}\.\.\.expanding to full symbols\.\.\.done\." \
+    "symbol-file with -- and -readnow"
+gdb_test "symbol-file -- $binfile -readnow" \
+    "Unrecognized argument \"-readnow\"" \
+    "symbol-file with -- and -readnow, invalid option"
+
+clean_restart
+
+gdb_test "add-symbol-file ${binfile} 0 -s" \
+    "Missing section name after .-s." \
+    "add-symbol-file bare -s"
+gdb_test "add-symbol-file ${binfile} 0 -s .whatever" \
+    "Missing section address after .-s." \
+    "add-symbol-file missing address"
+
 # Load the object file.
 gdb_test "add-symbol-file ${binfile} 0" \
 	"Reading symbols from .*${testfile}\\.o\\.\\.\\.done\\.(|\r\nUsing host libthread_db library .*libthread_db.so.*\\.)" \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/remote.exp ./gdb/testsuite/gdb.base/remote.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/remote.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/remote.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 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
@@ -13,10 +13,9 @@
 # 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 only on a remote target board
-if {! [is_remote target]} {
+# Test only on boards that actually use the remote protocol.
+if {[target_info gdb_protocol] != "remote"
+    && [target_info gdb_protocol] != "extended-remote"} {
     return
 }
 
@@ -54,7 +53,7 @@ gdb_test "show remote memory-write-packe
 	"set write-packet - very-small"
 
 #
-# Part TWO: Check the download behavour
+# Part TWO: Check the download behavior.
 #
 
 proc gdb_load_timed {executable class writesize} {
@@ -103,6 +102,10 @@ proc gdb_load_timed {executable class wr
     pass $test
 }
 
+# These download tests won't actually download anything on !is_remote
+# target boards, but we run them anyway because it's simpler, and
+# harmless.
+
 # Typically about 400-1 bytes can be downloaded
 gdb_load_timed $binfile "limit" 398
 gdb_load_timed $binfile "limit" 400
@@ -128,6 +131,7 @@ set sizeof_random_data [get_sizeof "rand
 #
 if ![runto_main] then {
     fail "cannot run to main"
+    return
 }
 
 # Carefully check memory around each of the most common packet edge
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/remotetimeout.exp ./gdb/testsuite/gdb.base/remotetimeout.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/remotetimeout.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/remotetimeout.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/reread.exp ./gdb/testsuite/gdb.base/reread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/reread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/reread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/reread-readsym.c ./gdb/testsuite/gdb.base/reread-readsym.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/reread-readsym.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/reread-readsym.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,22 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/reread-readsym.exp ./gdb/testsuite/gdb.base/reread-readsym.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/reread-readsym.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/reread-readsym.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,61 @@
+#   Copyright 2017-2018 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/>.
+
+standard_testfile
+
+set gdbfile [standard_output_file ${testfile}.gdb]
+
+# Test rereading executable.  See PR gdb/21337.
+
+proc generate_cmd_file {gdbfile binfile} {
+    set ofd [open $gdbfile w]
+
+    puts $ofd "file ${binfile}"
+    puts $ofd "shell sleep 1; touch ${binfile}"
+    puts $ofd "run"
+    puts $ofd "file"
+    puts $ofd "file ${binfile}"
+    puts $ofd "shell sleep 1; touch ${binfile}"
+    puts $ofd "run"
+    puts $ofd "file"
+    puts $ofd "file ${binfile}"
+    puts $ofd "shell sleep 1; touch ${binfile}"
+    puts $ofd "run"
+    puts $ofd "file"
+    puts $ofd "p \"source-command-completed\""
+    close $ofd
+}
+
+if [use_gdb_stub] {
+    return 0
+}
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
+    return -1
+}
+
+# Start with a fresh gdb.
+clean_restart ${testfile}
+
+# Using the source command to read commands from a file is important,
+# otherwise section data is freed and reallocated using the same
+# memory locations and the bug is not exposed.
+generate_cmd_file $gdbfile $binfile
+
+gdb_test "source $gdbfile" ".*source-command-completed.*" \
+    "source $testfile.gdb 1"
+# Sometimes the failure only occurs on the second invocation.
+gdb_test "source $gdbfile" ".*source-command-completed.*" \
+    "source $testfile.gdb 2"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/restore.c ./gdb/testsuite/gdb.base/restore.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/restore.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/restore.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1998-2017 Free Software Foundation, Inc.
+   Copyright 1998-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/restore.exp ./gdb/testsuite/gdb.base/restore.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/restore.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/restore.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/return2.exp ./gdb/testsuite/gdb.base/return2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/return2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/return2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2000-2017 Free Software Foundation, Inc.
+# Copyright 2000-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/return.c ./gdb/testsuite/gdb.base/return.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/return.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/return.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1992-2017 Free Software Foundation, Inc.
+   Copyright 1992-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/return.exp ./gdb/testsuite/gdb.base/return.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/return.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/return.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2017 Free Software Foundation, Inc.
+# Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/return-nodebug1.c ./gdb/testsuite/gdb.base/return-nodebug1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/return-nodebug1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/return-nodebug1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/return-nodebug.c ./gdb/testsuite/gdb.base/return-nodebug.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/return-nodebug.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/return-nodebug.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/return-nodebug.exp ./gdb/testsuite/gdb.base/return-nodebug.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/return-nodebug.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/return-nodebug.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/run-after-attach.c ./gdb/testsuite/gdb.base/run-after-attach.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/run-after-attach.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/run-after-attach.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/run-after-attach.exp ./gdb/testsuite/gdb.base/run-after-attach.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/run-after-attach.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/run-after-attach.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/save-bp.c ./gdb/testsuite/gdb.base/save-bp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/save-bp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/save-bp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2011-2017 Free Software Foundation, Inc.
+/* Copyright 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/save-bp.exp ./gdb/testsuite/gdb.base/save-bp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/save-bp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/save-bp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/savedregs.c ./gdb/testsuite/gdb.base/savedregs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/savedregs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/savedregs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/savedregs.exp ./gdb/testsuite/gdb.base/savedregs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/savedregs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/savedregs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/scope.exp ./gdb/testsuite/gdb.base/scope.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/scope.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/scope.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 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
@@ -18,7 +18,7 @@
 
 standard_testfile scope0.c scope1.c
 
-if {[prepare_for_testing "failed to prepare" ${testfile} \
+if {[build_executable "failed to build" ${testfile} \
 	 [list $srcfile $srcfile2] {debug}]} {
     return -1
 }
@@ -497,6 +497,13 @@ proc test_at_localscopes {} {
     gdb_stop_suppressing_tests
 }
 
+# Note, we don't pass a binfile to clean_restart because we need to
+# avoid gdb_load here.  With remote targets, gdb_load connects to the
+# remote target, and we specificaly want the following tests to run
+# before the program is started.
+clean_restart
+gdb_file_cmd $binfile
+
 # Test that variables in various segments print out correctly before
 # the program is run.  
 
@@ -505,21 +512,15 @@ setup_xfail "rs6000-*-*"
 
 gdb_test "print 'scope0.c'::filelocal_ro" "= 201"
 
-# gdb currently cannot access bss memory on some targets if the inferior
-# is not running.
-#
-# For PA boards using monitor/remote-pa.c, the bss test is going to 
-# randomly fail.  We've already put remote-pa on the target stack,
-# so we actually read memory from the board.  Problem is crt0.o
-# is responsible for clearing bss and that hasnt' happened yet.
+# Check that gdb can access bss memory if the inferior is not running.
 #
-# This is a problem for all non-native targets. -- manson
-if [is_remote target] {
-    unsupported "print 'scope0.c'::filelocal_bss before run"
-} else {
-    gdb_test "print 'scope0.c'::filelocal_bss" "= 0" \
-	"print 'scope0.c'::filelocal_bss before run"
-}
+# Note the care above about avoiding gdb_load.  Otherwise, for
+# embedded stub-like boards, this test would randomly fail.  If we'd
+# already put target remote on the target stack, we'd read memory from
+# the board instead of the program's binary, and we would have
+# connected before crt0.o had had a chance to clear bss.
+gdb_test "print 'scope0.c'::filelocal_bss" "= 0" \
+    "print 'scope0.c'::filelocal_bss before run"
 
 gdb_test "print 'scope0.c'::filelocal" "= 1" \
     "print 'scope0.c'::filelocal before run"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sect-cmd.exp ./gdb/testsuite/gdb.base/sect-cmd.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sect-cmd.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sect-cmd.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/segv.c ./gdb/testsuite/gdb.base/segv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/segv.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/segv.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sep.c ./gdb/testsuite/gdb.base/sep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sepdebug2.c ./gdb/testsuite/gdb.base/sepdebug2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sepdebug2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sepdebug2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sepdebug.c ./gdb/testsuite/gdb.base/sepdebug.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sepdebug.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sepdebug.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 1994-2017 Free Software Foundation, Inc.
+/* Copyright 1994-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sepdebug.exp ./gdb/testsuite/gdb.base/sepdebug.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sepdebug.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sepdebug.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1988-2017 Free Software Foundation, Inc.
+#   Copyright 1988-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sep.exp ./gdb/testsuite/gdb.base/sep.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sep.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sep.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sep-proc.c ./gdb/testsuite/gdb.base/sep-proc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sep-proc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sep-proc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sepsymtab.c ./gdb/testsuite/gdb.base/sepsymtab.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sepsymtab.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sepsymtab.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2006-2017 Free Software Foundation, Inc.
+/* Copyright 2006-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sepsymtab.exp ./gdb/testsuite/gdb.base/sepsymtab.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sepsymtab.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sepsymtab.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/server-del-break.c ./gdb/testsuite/gdb.base/server-del-break.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/server-del-break.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/server-del-break.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,22 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/server-del-break.exp ./gdb/testsuite/gdb.base/server-del-break.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/server-del-break.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/server-del-break.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,38 @@
+# Copyright 2017-2018 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/>.
+
+# The purpose of this testcase is to verify that using the "server"
+# command prefix turns queries (confirmation requests, for instance)
+# off.  In this particular testcase, we use the "delete breakpoints"
+# command to demonstrate the behavior.
+
+standard_testfile
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
+    return -1
+}
+
+gdb_test "break main" \
+         "Breakpoint.*at.* file .*$srcfile, line .*"
+
+# Try deleting all breakpoints, using the "server" command prefix.
+# Prefixing the "delete breakpoints" with "server" should turn
+# the confirmation request ("Delete all breakpoints? (y or n)")
+# off, hence we expect the operation to be executed without output.
+gdb_test_no_output "server delete breakpoints"
+
+# Double-check that the all breakpoints were in fact deleted.
+gdb_test "info break" \
+         "No breakpoints or watchpoints."
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/set-cwd.c ./gdb/testsuite/gdb.base/set-cwd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/set-cwd.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/set-cwd.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,31 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#include <stdlib.h>
+#include <unistd.h>
+
+static char dir[4096];
+
+int
+main (int argc, char *argv[])
+{
+  const char *home = getenv ("HOME");
+
+  getcwd (dir, 4096);
+
+  return 0; /* break-here */
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/set-cwd.exp ./gdb/testsuite/gdb.base/set-cwd.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/set-cwd.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/set-cwd.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,197 @@
+# This testcase is part of GDB, the GNU debugger.
+
+# Copyright 2017-2018 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/>.
+
+if { [use_gdb_stub] } {
+    untested "skipping tests due to use_gdb_stub"
+    return
+}
+
+standard_testfile
+
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile debug] } {
+    return -1
+}
+
+# Test that tilde expansion works fine.
+
+proc_with_prefix test_tilde_expansion { } {
+    global decimal gdb_prompt hex
+
+    gdb_test_no_output "set cwd ~/" "set inferior cwd to ~/ dir"
+
+    if { ![runto_main] } {
+	untested "could not run to main"
+	return -1
+    }
+
+    gdb_breakpoint [gdb_get_line_number "break-here"]
+    gdb_continue_to_breakpoint "break-here" ".* break-here .*"
+
+    set home ""
+    set test "print home var"
+    gdb_test_multiple "print home" $test {
+    	-re "\\\$$decimal = $hex \"\(.+\)\"\r\n$gdb_prompt $" {
+    	    set home $expect_out(1,string)
+    	    pass $test
+    	}
+    }
+
+    if { $home == "" } {
+    	untested "could not retrieve home var"
+    	return
+    }
+
+    set curdir ""
+    set test "print dir var"
+    gdb_test_multiple "print dir" $test {
+	-re "\\\$$decimal = \"\(.+\)\"\(, .*repeats.*\)?\r\n$gdb_prompt $" {
+	    set curdir $expect_out(1,string)
+	    pass $test
+	}
+    }
+
+    if { $curdir == "" } {
+	untested "could not retrieve dir var"
+	return
+    }
+
+    gdb_assert [string equal $curdir $home] \
+	"successfully chdir'd into home"
+}
+
+# The temporary directory that we will use to start the inferior.
+set tmpdir [standard_output_file ""]
+
+# Test that when we "set cwd" the inferior will be started under the
+# correct working directory and GDB will not be affected by this.
+
+proc_with_prefix test_cd_into_dir { } {
+    global decimal gdb_prompt tmpdir
+
+    set gdb_cwd_before_run ""
+    set test "pwd before run"
+    gdb_test_multiple "pwd" $test {
+	-re "Working directory \(.*\)\.\r\n$gdb_prompt $" {
+	    set gdb_cwd_before_run $expect_out(1,string)
+	    pass $test
+	}
+    }
+
+    if { $gdb_cwd_before_run == "" } {
+	untested "could not obtain GDB cwd before run"
+	return
+    }
+
+    # This test only makes sense if $tmpdir != $gdb_cwd_before_run
+    if { ![gdb_assert ![string equal $tmpdir $gdb_cwd_before_run] \
+	       "make sure that tmpdir and GDB's cwd are different"] } {
+	return -1
+    }
+
+    gdb_test_no_output "set cwd $tmpdir" "set inferior cwd to temp dir"
+
+    if { ![runto_main] } {
+	untested "could not run to main"
+	return -1
+    }
+
+    gdb_breakpoint [gdb_get_line_number "break-here"]
+    gdb_continue_to_breakpoint "break-here" ".* break-here .*"
+
+    gdb_test "print dir" "\\\$$decimal = \"$tmpdir\", .*" \
+	"inferior cwd is correctly set"
+
+    set gdb_cwd_after_run ""
+    set test "pwd after run"
+    gdb_test_multiple "pwd" $test {
+	-re "Working directory \(.*\)\.\r\n$gdb_prompt $" {
+	    set gdb_cwd_after_run $expect_out(1,string)
+	    pass $test
+	}
+    }
+
+    if { $gdb_cwd_after_run == "" } {
+	untested "could not obtain GDB cwd after run"
+	return
+    }
+
+    gdb_assert [string equal $gdb_cwd_before_run $gdb_cwd_after_run] \
+	"GDB cwd is unchanged after running inferior"
+}
+
+# Test that executing "set cwd" without arguments will reset the
+# inferior's cwd setting to its previous state.
+
+proc_with_prefix test_cwd_reset { } {
+    global decimal gdb_prompt tmpdir
+
+    set gdb_cwd ""
+    set test "GDB cwd"
+    gdb_test_multiple "pwd" $test {
+	-re "Working directory \(.*\)\.\r\n$gdb_prompt $" {
+	    set gdb_cwd $expect_out(1,string)
+	}
+    }
+
+    if { $gdb_cwd == "" } {
+	untested "could not obtain GDB cwd"
+	return
+    }
+
+    # This test only makes sense if $tmpdir != $gdb_cwd.
+    if { ![gdb_assert ![string equal $tmpdir $gdb_cwd] \
+	       "make sure that tmpdir and GDB's cwd are different"] } {
+	return -1
+    }
+
+    gdb_test_no_output "set cwd $tmpdir" "set inferior cwd to temp dir"
+
+    with_test_prefix "running with set cwd" {
+	if { ![runto_main] } {
+	    untested "could not run to main"
+	    return -1
+	}
+    }
+
+    gdb_breakpoint [gdb_get_line_number "break-here"]
+    gdb_continue_to_breakpoint "break-here" ".* break-here .*"
+
+    gdb_test "print dir" "\\\$$decimal = \"$tmpdir\", .*" \
+	"inferior cwd is correctly set"
+
+    # Reset the inferior's cwd.
+    gdb_test_no_output "set cwd" "resetting inferior cwd"
+
+    with_test_prefix "running without set cwd" {
+	if { ![runto_main] } {
+	    untested "could not run to main"
+	    return -1
+	}
+    }
+
+    gdb_breakpoint [gdb_get_line_number "break-here"]
+    gdb_continue_to_breakpoint "break-here" ".* break-here .*"
+
+    gdb_test "print dir" "\\\$$decimal = \"$gdb_cwd\", .*" \
+	"inferior cwd got reset correctly"
+}
+
+test_cd_into_dir
+clean_restart $binfile
+test_tilde_expansion
+clean_restart $binfile
+test_cwd_reset
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/set-inferior-tty.c ./gdb/testsuite/gdb.base/set-inferior-tty.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/set-inferior-tty.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/set-inferior-tty.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/set-inferior-tty.exp ./gdb/testsuite/gdb.base/set-inferior-tty.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/set-inferior-tty.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/set-inferior-tty.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/set-lang-auto.exp ./gdb/testsuite/gdb.base/set-lang-auto.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/set-lang-auto.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/set-lang-auto.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/set-noassign.exp ./gdb/testsuite/gdb.base/set-noassign.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/set-noassign.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/set-noassign.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/setshow.exp ./gdb/testsuite/gdb.base/setshow.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/setshow.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/setshow.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/setvar.exp ./gdb/testsuite/gdb.base/setvar.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/setvar.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/setvar.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 1988-2017 Free Software Foundation, Inc.
+# Copyright 1988-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/share-env-with-gdbserver.c ./gdb/testsuite/gdb.base/share-env-with-gdbserver.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/share-env-with-gdbserver.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/share-env-with-gdbserver.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,40 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+/* Wrapper around getenv for GDB.  */
+
+static const char *
+my_getenv (const char *name)
+{
+  return getenv (name);
+}
+
+int
+main (int argc, char *argv[])
+{
+  const char *myvar = getenv ("GDB_TEST_VAR");
+
+  if (myvar != NULL)
+    printf ("It worked!  myvar = '%s'\n", myvar);
+  else
+    printf ("It failed.");
+
+  return 0;	/* break-here */
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/share-env-with-gdbserver.exp ./gdb/testsuite/gdb.base/share-env-with-gdbserver.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/share-env-with-gdbserver.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/share-env-with-gdbserver.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,255 @@
+# This testcase is part of GDB, the GNU debugger.
+
+# Copyright 2017-2018 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 test doesn't make sense on native-gdbserver.
+if { [use_gdb_stub] } {
+    untested "not supported"
+    return
+}
+
+standard_testfile
+
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile debug] } {
+    return -1
+}
+
+set test_var_name "GDB_TEST_VAR"
+
+# Helper function that performs a check on the output of "getenv".
+#
+# - VAR_NAME is the name of the variable to be checked.
+#
+# - VAR_VALUE is the value expected.
+#
+# - TEST_MSG, if not empty, is the test message to be used by the
+#   "gdb_test".
+#
+# - EMPTY_VAR_P, if non-zero, means that the variable is not expected
+#   to exist.  In this case, VAR_VALUE is not considered.
+
+proc check_getenv { var_name var_value { test_msg "" } { empty_var_p 0 } } {
+    global hex decimal
+
+    if { $test_msg == "" } {
+	set test_msg "print result of getenv for $var_name"
+    }
+
+    if { $empty_var_p } {
+	set var_value_match "0x0"
+    } else {
+	set var_value_match "$hex \"$var_value\""
+    }
+
+    gdb_test "print my_getenv (\"$var_name\")" "\\\$$decimal = $var_value_match" \
+	$test_msg
+}
+
+# Helper function to re-run to main and breaking at the "break-here"
+# label.
+
+proc do_prepare_inferior { } {
+    global decimal hex
+
+    if { ![runto_main] } {
+	return -1
+    }
+
+    gdb_breakpoint [gdb_get_line_number "break-here"]
+
+    gdb_test "continue" "Breakpoint $decimal, main \\\(argc=1, argv=$hex\\\) at.*" \
+	"continue until breakpoint"
+}
+
+# Helper function that does the actual testing.
+#
+# - VAR_VALUE is the value of the environment variable.
+#
+# - VAR_NAME is the name of the environment variable.  If empty,
+#   defaults to $test_var_name.
+#
+# - VAR_NAME_MATCH is the name (regex) that will be used to query the
+#   environment about the variable (via getenv).  This is useful when
+#   we're testing variables with strange names (e.g., with an equal
+#   sign in the name) and we know that the variable will actually be
+#   set using another name.  If empty, defatults, to $var_name.
+#
+# - VAR_VALUE_MATCH is the value (regex) that will be used to match
+#   the result of getenv.  The rationale is the same as explained for
+#   VAR_NAME_MATCH.  If empty, defaults, to $var_value.
+
+proc do_test { var_value { var_name "" } { var_name_match "" } { var_value_match "" } } {
+    global binfile test_var_name
+
+    clean_restart $binfile
+
+    if { $var_name == "" } {
+	set var_name $test_var_name
+    }
+
+    if { $var_name_match == "" } {
+	set var_name_match $var_name
+    }
+
+    if { $var_value_match == "" } {
+	set var_value_match $var_value
+    }
+
+    if { $var_value != "" } {
+	gdb_test_no_output "set environment $var_name = $var_value" \
+	    "set $var_name = $var_value"
+    } else {
+	gdb_test "set environment $var_name =" \
+	    "Setting environment variable \"$var_name\" to null value." \
+	    "set $var_name to null value"
+    }
+
+    do_prepare_inferior
+
+    check_getenv "$var_name_match" "$var_value_match" \
+	"print result of getenv for $var_name"
+}
+
+with_test_prefix "long var value" {
+    do_test "this is my test variable; testing long vars; {}"
+}
+
+with_test_prefix "empty var" {
+    do_test ""
+}
+
+with_test_prefix "strange named var" {
+    # In this test we're doing the following:
+    #
+    #   (gdb) set environment 'asd =' = 123 43; asd b ### [];;;
+    #
+    # However, due to how GDB parses this line, the environment
+    # variable will end up named <'asd> (without the <>), and its
+    # value will be <' = 123 43; asd b ### [];;;> (without the <>).
+    do_test "123 43; asd b ### \[\];;;" "'asd ='" "'asd" \
+	[string_to_regexp "' = 123 43; asd b ### \[\];;;"]
+}
+
+# Test setting and unsetting environment variables in various
+# fashions.
+
+proc test_set_unset_vars { } {
+    global binfile
+
+    clean_restart $binfile
+
+    with_test_prefix "set 3 environment variables" {
+	# Set some environment variables
+	gdb_test_no_output "set environment A = 1" \
+	    "set A to 1"
+	gdb_test_no_output "set environment B = 2" \
+	    "set B to 2"
+	gdb_test_no_output "set environment C = 3" \
+	    "set C to 3"
+
+	do_prepare_inferior
+
+	# Check that the variables are known by the inferior
+	check_getenv "A" "1"
+	check_getenv "B" "2"
+	check_getenv "C" "3"
+    }
+
+    with_test_prefix "unset one variable, reset one" {
+	# Now, unset/reset some values
+	gdb_test_no_output "unset environment A" \
+	    "unset A"
+	gdb_test_no_output "set environment B = 4" \
+	    "set B to 4"
+
+	do_prepare_inferior
+
+	check_getenv "A" "" "" 1
+	check_getenv "B" "4"
+	check_getenv "C" "3"
+    }
+
+    with_test_prefix "unset two variables, reset one" {
+	# Unset more values
+	gdb_test_no_output "unset environment B" \
+	    "unset B"
+	gdb_test_no_output "set environment A = 1" \
+	    "set A to 1 again"
+	gdb_test_no_output "unset environment C" \
+	    "unset C"
+
+	do_prepare_inferior
+
+	check_getenv "A" "1"
+	check_getenv "B" "" "" 1
+	check_getenv "C" "" "" 1
+    }
+}
+
+with_test_prefix "test set/unset of vars" {
+    test_set_unset_vars
+}
+
+# Test that unsetting works.
+
+proc test_unset { } {
+    global hex decimal binfile gdb_prompt
+
+    clean_restart $binfile
+
+    do_prepare_inferior
+
+    set test_msg "check if unset works"
+    set found_home 0
+    gdb_test_multiple "print my_getenv (\"HOME\")" $test_msg {
+	-re "\\\$$decimal = $hex \".*\"\r\n$gdb_prompt $" {
+	    pass $test_msg
+	    set found_home 1
+	}
+	-re "\\\$$decimal = 0x0\r\n$gdb_prompt $" {
+	    untested $test_msg
+	}
+    }
+
+    if { $found_home == 1 } {
+	with_test_prefix "simple unset" {
+	    # We can do the test, because $HOME exists (and therefore can
+	    # be unset).
+	    gdb_test_no_output "unset environment HOME" "unset HOME"
+
+	    do_prepare_inferior
+
+	    # $HOME now must be empty
+	    check_getenv "HOME" "" "" 1
+	}
+
+	with_test_prefix "set-then-unset" {
+	    clean_restart $binfile
+
+	    # Test if setting and then unsetting $HOME works.
+	    gdb_test_no_output "set environment HOME = test" "set HOME as test"
+	    gdb_test_no_output "unset environment HOME" "unset HOME again"
+
+	    do_prepare_inferior
+
+	    check_getenv "HOME" "" "" 1
+	}
+    }
+}
+
+with_test_prefix "test unset of vars" {
+    test_unset
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/shell.exp ./gdb/testsuite/gdb.base/shell.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/shell.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/shell.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/shlib-call.exp ./gdb/testsuite/gdb.base/shlib-call.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/shlib-call.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/shlib-call.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 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
@@ -170,18 +170,22 @@ gdb_test_no_output "set width 0"
 # test that we can re-set breakpoints in shared libraries
 gdb_breakpoint "shr1" "allow-pending"
 
-# FIXME: should not send "run" explicitly.  Non-portable.
-
-if ![is_remote target] {
-  gdb_test "run" "Starting program:.*Breakpoint .,.*" \
-	"run to bp in shared library"
-
-  gdb_continue_to_end "" continue 1
+set test "run to bp in shared library"
+gdb_run_cmd
+gdb_test_multiple "" $test {
+    -re "Breakpoint .,.*${gdb_prompt} " {
+	pass $test
+    }
+}
 
-  gdb_test "run" "Starting program:.*Breakpoint .,.*" \
-	"re-run to bp in shared library (PR's 16495, 18213)"
+gdb_continue_to_end "" continue 1
 
-  gdb_continue_to_end "" continue 1
+set test "re-run to bp in shared library (PR's 16495, 18213)"
+gdb_run_cmd
+gdb_test_multiple "" $test {
+    -re "Breakpoint .,.*${gdb_prompt} " {
+	pass $test
+    }
 }
 
-return 0
+gdb_continue_to_end "" continue 1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/shreloc.exp ./gdb/testsuite/gdb.base/shreloc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/shreloc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/shreloc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigall.exp ./gdb/testsuite/gdb.base/sigall.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigall.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sigall.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1995-2017 Free Software Foundation, Inc.
+#   Copyright 1995-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigaltstack.c ./gdb/testsuite/gdb.base/sigaltstack.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigaltstack.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sigaltstack.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigaltstack.exp ./gdb/testsuite/gdb.base/sigaltstack.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigaltstack.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sigaltstack.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigbpt.c ./gdb/testsuite/gdb.base/sigbpt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigbpt.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sigbpt.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigbpt.exp ./gdb/testsuite/gdb.base/sigbpt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigbpt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sigbpt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigchld.c ./gdb/testsuite/gdb.base/sigchld.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigchld.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sigchld.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigchld.exp ./gdb/testsuite/gdb.base/sigchld.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigchld.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sigchld.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-addr.c ./gdb/testsuite/gdb.base/siginfo-addr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-addr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/siginfo-addr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-addr.exp ./gdb/testsuite/gdb.base/siginfo-addr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-addr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/siginfo-addr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo.c ./gdb/testsuite/gdb.base/siginfo.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/siginfo.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo.exp ./gdb/testsuite/gdb.base/siginfo.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/siginfo.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-infcall.c ./gdb/testsuite/gdb.base/siginfo-infcall.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-infcall.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/siginfo-infcall.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-infcall.exp ./gdb/testsuite/gdb.base/siginfo-infcall.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-infcall.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/siginfo-infcall.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-obj.c ./gdb/testsuite/gdb.base/siginfo-obj.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-obj.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/siginfo-obj.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-obj.exp ./gdb/testsuite/gdb.base/siginfo-obj.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-obj.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/siginfo-obj.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-thread.c ./gdb/testsuite/gdb.base/siginfo-thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/siginfo-thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-thread.exp ./gdb/testsuite/gdb.base/siginfo-thread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/siginfo-thread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/siginfo-thread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/signals.exp ./gdb/testsuite/gdb.base/signals.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/signals.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/signals.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/signals-state-child.c ./gdb/testsuite/gdb.base/signals-state-child.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/signals-state-child.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/signals-state-child.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2016-2017 Free Software Foundation, Inc.
+/* Copyright 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/signals-state-child.exp ./gdb/testsuite/gdb.base/signals-state-child.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/signals-state-child.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/signals-state-child.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/signest.c ./gdb/testsuite/gdb.base/signest.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/signest.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/signest.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/signest.exp ./gdb/testsuite/gdb.base/signest.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/signest.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/signest.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/signull.c ./gdb/testsuite/gdb.base/signull.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/signull.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/signull.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1996-2017 Free Software Foundation, Inc.
+   Copyright 1996-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/signull.exp ./gdb/testsuite/gdb.base/signull.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/signull.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/signull.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigrepeat.c ./gdb/testsuite/gdb.base/sigrepeat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigrepeat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sigrepeat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigrepeat.exp ./gdb/testsuite/gdb.base/sigrepeat.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigrepeat.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sigrepeat.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigstep.c ./gdb/testsuite/gdb.base/sigstep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigstep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sigstep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigstep.exp ./gdb/testsuite/gdb.base/sigstep.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sigstep.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sigstep.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sizeof.exp ./gdb/testsuite/gdb.base/sizeof.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sizeof.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sizeof.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2000-2017 Free Software Foundation, Inc.
+# Copyright 2000-2018 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
@@ -81,12 +81,12 @@ check_sizeof "long double" ${sizeof_long
 
 proc check_valueof { exp val } {
     gdb_test "next" "" ""
-    gdb_test "p value" " = ${val}" "check valueof \"$exp\""
+    gdb_test "p /d value" " = ${val}" "check valueof \"$exp\""
 }
 
 # Check that GDB and the target agree over the sign of a character.
 
-set signof_byte [get_integer_valueof "'\\377'" -1]
+set signof_byte [get_integer_valueof "(int) '\\377'" -1]
 set signof_char [get_integer_valueof "(int) (char) -1" -1]
 set signof_signed_char [get_integer_valueof "(int) (signed char) -1" -1]
 set signof_unsigned_char [get_integer_valueof "(int) (unsigned char) -1" -1]
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/skip1.c ./gdb/testsuite/gdb.base/skip1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/skip1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/skip1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/skip.c ./gdb/testsuite/gdb.base/skip.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/skip.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/skip.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/skip.exp ./gdb/testsuite/gdb.base/skip.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/skip.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/skip.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2011-2017 Free Software Foundation, Inc.
+#   Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/skip-solib.exp ./gdb/testsuite/gdb.base/skip-solib.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/skip-solib.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/skip-solib.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2011-2017 Free Software Foundation, Inc.
+#   Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/so-disc-shr.c ./gdb/testsuite/gdb.base/so-disc-shr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/so-disc-shr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/so-disc-shr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/so-impl-ld.exp ./gdb/testsuite/gdb.base/so-impl-ld.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/so-impl-ld.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/so-impl-ld.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-corrupted.exp ./gdb/testsuite/gdb.base/solib-corrupted.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-corrupted.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-corrupted.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-disc.c ./gdb/testsuite/gdb.base/solib-disc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-disc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-disc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-disc.exp ./gdb/testsuite/gdb.base/solib-disc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-disc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-disc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-display.exp ./gdb/testsuite/gdb.base/solib-display.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-display.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-display.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -94,9 +94,9 @@ foreach libsepdebug {NO IN SEP} { with_t
       return 0
     }
 
-    gdb_test "display a_global" "1: a_global = 41"
-    gdb_test "display b_global" "2: b_global = 42"
-    gdb_test "display c_global" "3: c_global = 43"
+    gdb_test "display (int) a_global" "1: \\(int\\) a_global = 41"
+    gdb_test "display (int) b_global" "2: \\(int\\) b_global = 42"
+    gdb_test "display (int) c_global" "3: \\(int\\) c_global = 43"
 
     if { [gdb_start_cmd] < 0 } {
 	fail "can't run to main (2)"
@@ -104,9 +104,9 @@ foreach libsepdebug {NO IN SEP} { with_t
     }
 
     gdb_test "" [multi_line \
-		     "1: a_global = 41" \
-		     "2: b_global = 42"  \
-		     "3: c_global = 43" \
+		     "1: \\(int\\) a_global = 41" \
+		     "2: \\(int\\) b_global = 42"  \
+		     "3: \\(int\\) c_global = 43" \
 		    ] "after rerun"
 
     # Now rebuild the library without b_global
@@ -132,9 +132,9 @@ foreach libsepdebug {NO IN SEP} { with_t
 
 
     gdb_test "" [multi_line \
-		     "1: a_global = 41" \
+		     "1: \\(int\\) a_global = 41" \
 		     "warning: .*b_global.*"  \
-		     "3: c_global = 43" \
+		     "3: \\(int\\) c_global = 43" \
 		    ] "after rerun (2)"
 
     # Now verify that displays which are not in the shared library
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-display-lib.c ./gdb/testsuite/gdb.base/solib-display-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-display-lib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-display-lib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-display-main.c ./gdb/testsuite/gdb.base/solib-display-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-display-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-display-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-nodir.exp ./gdb/testsuite/gdb.base/solib-nodir.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-nodir.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-nodir.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 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
@@ -13,8 +13,19 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-# are we on a target board
-if {[is_remote target] || [skip_shlib_tests]} {
+if [skip_shlib_tests] {
+    return
+}
+
+# The testcase assumes the target can access the OBJDIR.
+if [is_remote target] {
+    return
+}
+
+# We need to be able to influence the target's environment and working
+# directory.  Can't do that if when we connect the inferior is already
+# running.
+if [target_info exists use_gdb_stub] {
     return
 }
 
@@ -44,7 +55,8 @@ clean_restart $executable
 gdb_load_shlib ${binlibfile}
 
 gdb_test_no_output "set env LD_LIBRARY_PATH=:"
-gdb_test "cd ${binlibfiledir}" "Working directory [string_to_regexp ${binlibfiledir}]\\." "cd OBJDIR/${subdir}"
+gdb_test_no_output "set cwd ${binlibfiledir}" \
+    "set cwd OBJDIR/${subdir}"
 
 set test "library loaded"
 if [runto_main] {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-overlap.exp ./gdb/testsuite/gdb.base/solib-overlap.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-overlap.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-overlap.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-overlap-lib.c ./gdb/testsuite/gdb.base/solib-overlap-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-overlap-lib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-overlap-lib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2009-2017 Free Software Foundation, Inc.
+/* Copyright 2009-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-overlap-main.c ./gdb/testsuite/gdb.base/solib-overlap-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-overlap-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-overlap-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2009-2017 Free Software Foundation, Inc.
+/* Copyright 2009-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-search.c ./gdb/testsuite/gdb.base/solib-search.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-search.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-search.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-search.exp ./gdb/testsuite/gdb.base/solib-search.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-search.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-search.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-search.h ./gdb/testsuite/gdb.base/solib-search.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-search.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-search.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-search-lib1.c ./gdb/testsuite/gdb.base/solib-search-lib1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-search-lib1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-search-lib1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-search-lib2.c ./gdb/testsuite/gdb.base/solib-search-lib2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-search-lib2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-search-lib2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-symbol.exp ./gdb/testsuite/gdb.base/solib-symbol.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-symbol.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-symbol.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-symbol-lib.c ./gdb/testsuite/gdb.base/solib-symbol-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-symbol-lib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-symbol-lib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2007-2017 Free Software Foundation, Inc.
+/* Copyright 2007-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-symbol-main.c ./gdb/testsuite/gdb.base/solib-symbol-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-symbol-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-symbol-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2007-2017 Free Software Foundation, Inc.
+/* Copyright 2007-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-weak.c ./gdb/testsuite/gdb.base/solib-weak.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-weak.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-weak.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2006-2017 Free Software Foundation, Inc.
+   Copyright 2006-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-weak.exp ./gdb/testsuite/gdb.base/solib-weak.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/solib-weak.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-weak.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2006-2017 Free Software Foundation, Inc.
+#   Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source-dir.exp ./gdb/testsuite/gdb.base/source-dir.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source-dir.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/source-dir.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source-error.gdb ./gdb/testsuite/gdb.base/source-error.gdb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source-error.gdb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/source-error.gdb	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source-execution.c ./gdb/testsuite/gdb.base/source-execution.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source-execution.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/source-execution.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source-execution.exp ./gdb/testsuite/gdb.base/source-execution.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source-execution.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/source-execution.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source-execution.gdb ./gdb/testsuite/gdb.base/source-execution.gdb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source-execution.gdb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/source-execution.gdb	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source.exp ./gdb/testsuite/gdb.base/source.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/source.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source-nofile.gdb ./gdb/testsuite/gdb.base/source-nofile.gdb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source-nofile.gdb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/source-nofile.gdb	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source-test.gdb ./gdb/testsuite/gdb.base/source-test.gdb
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/source-test.gdb	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/source-test.gdb	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c ./gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp ./gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sss-bp-on-user-bp.c ./gdb/testsuite/gdb.base/sss-bp-on-user-bp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sss-bp-on-user-bp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sss-bp-on-user-bp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sss-bp-on-user-bp.exp ./gdb/testsuite/gdb.base/sss-bp-on-user-bp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sss-bp-on-user-bp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sss-bp-on-user-bp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/stack-checking.c ./gdb/testsuite/gdb.base/stack-checking.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/stack-checking.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/stack-checking.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/stack-checking.exp ./gdb/testsuite/gdb.base/stack-checking.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/stack-checking.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/stack-checking.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/stale-infcall.c ./gdb/testsuite/gdb.base/stale-infcall.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/stale-infcall.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/stale-infcall.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/stale-infcall.exp ./gdb/testsuite/gdb.base/stale-infcall.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/stale-infcall.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/stale-infcall.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/stap-probe.c ./gdb/testsuite/gdb.base/stap-probe.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/stap-probe.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/stap-probe.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/stap-probe.exp ./gdb/testsuite/gdb.base/stap-probe.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/stap-probe.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/stap-probe.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/start.c ./gdb/testsuite/gdb.base/start.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/start.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/start.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2005-2017 Free Software Foundation, Inc.
+   Copyright 2005-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/start.exp ./gdb/testsuite/gdb.base/start.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/start.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/start.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/starti.c ./gdb/testsuite/gdb.base/starti.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/starti.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/starti.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,30 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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 x;
+
+__attribute__((constructor)) void
+ctor ()
+{
+  x = 1;
+}
+
+int
+main ()
+{
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/starti.exp ./gdb/testsuite/gdb.base/starti.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/starti.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/starti.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,51 @@
+# Copyright 2017-2018 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/>.
+
+
+standard_testfile
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
+    return -1
+}
+
+# Define a stop hook that outputs the value of 'x'
+
+gdb_test_multiple "define hook-stop" "hook-stop" {
+    -re "Type commands for definition of \"hook-stop\".\r\nEnd with a line saying just \"end\".\r\n>$" {
+	gdb_test "print x\nend" "" "hook-stop"
+    }
+}
+
+if { [gdb_starti_cmd] < 0 } {
+    untested starti
+    return -1
+}
+
+# The program should stop at the first instruction, so the constructor
+# should not have run yet and 'x' should be 0.
+
+gdb_test_sequence "" "starti" {
+    "Program stopped."
+    "\\$1 = 0"
+}
+
+# Continue to the start of main().  The constructor should have run so
+# 'x' should be 1.
+
+gdb_breakpoint main
+gdb_test_sequence "continue" "" {
+    "\\$2 = 1"
+    "Breakpoint \[^\r\n\]*main \\(\\) at \[^\r\n\]*starti.c"
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/startup-with-shell.c ./gdb/testsuite/gdb.base/startup-with-shell.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/startup-with-shell.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/startup-with-shell.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,29 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#include <stdio.h>
+
+int
+main (int argc, char *argv[])
+{
+  int i;
+
+  for (i = 0; argv[i] != NULL; ++i)
+    printf ("ARG %d = %s\n", i, argv[i]);
+
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/startup-with-shell.exp ./gdb/testsuite/gdb.base/startup-with-shell.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/startup-with-shell.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/startup-with-shell.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,92 @@
+# This testcase is part of GDB, the GNU debugger.
+
+# Copyright 2017-2018 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 test doesn't make sense on native-gdbserver.
+if { [use_gdb_stub] } {
+    untested "not supported"
+    return
+}
+
+# There's no easy way to set environment variables on remote targets
+# (via dejagnu) yet.
+if { [is_remote target] } {
+    untested "remote board"
+    return
+}
+
+standard_testfile
+
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile debug] } {
+    return -1
+}
+
+set unique_file [standard_output_file "unique-file.unique-extension"]
+set unique_file_dir [standard_output_file ""]
+
+run_on_host \
+    "touch OUTPUT_DIR/unique-file.unique-extension" \
+    "touch" "$unique_file"
+
+# Initial setup for simple test (wildcard expansion, variable substitution).
+
+proc initial_setup_simple { startup_with_shell run_args } {
+    global hex decimal binfile unique_file
+
+    clean_restart $binfile
+
+    gdb_test_no_output "set startup-with-shell $startup_with_shell"
+
+    gdb_test_no_output "set args $run_args" \
+	"set args \$run_args"
+
+    set test "inferior started"
+    if { [runto_main] } {
+	pass $test
+    } else {
+	fail $test
+    }
+}
+
+## Run the actual tests
+
+with_test_prefix "startup_with_shell = on; run_args = *.unique-extension" {
+    initial_setup_simple "on" "$unique_file_dir/*.unique-extension"
+    gdb_test "print argv\[1\]" "\\\$$decimal = $hex \"$unique_file\"" \
+	"first argument expanded"
+}
+
+with_test_prefix "startup_with_shell = off; run_args = *.unique-extension" {
+    initial_setup_simple "off" "$unique_file_dir/*.unique-extension"
+    gdb_test "print argv\[1\]" "\\\$$decimal = $hex \"$unique_file_dir/\\\*\.unique-extension\"" \
+	"first argument not expanded"
+}
+
+with_test_prefix "startup_with_shell = on; run_args = \$TEST" {
+    set env(TEST) "1234"
+    initial_setup_simple "on" "\$TEST"
+    gdb_test "print argv\[1\]" "\\\$$decimal = $hex \"1234\"" \
+	"testing first argument"
+    unset env(TEST)
+}
+
+with_test_prefix "startup_with_shell = off; run_args = \$TEST" {
+    set env(TEST) "1234"
+    initial_setup_simple "off" "\$TEST"
+    gdb_test "print argv\[1\]" "\\\$$decimal = $hex \"\\\$TEST\"" \
+	"testing first argument"
+    unset env(TEST)
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/statistics.exp ./gdb/testsuite/gdb.base/statistics.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/statistics.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/statistics.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-break.c ./gdb/testsuite/gdb.base/step-break.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-break.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-break.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-break.exp ./gdb/testsuite/gdb.base/step-break.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-break.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-break.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-bt.c ./gdb/testsuite/gdb.base/step-bt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-bt.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-bt.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2006-2017 Free Software Foundation, Inc.
+   Copyright 2006-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-bt.exp ./gdb/testsuite/gdb.base/step-bt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-bt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-bt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-line.c ./gdb/testsuite/gdb.base/step-line.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-line.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-line.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test step/next in presence of #line directives.
-   Copyright (C) 2001-2017
-   Free Software Foundation, Inc.
+
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-line.exp ./gdb/testsuite/gdb.base/step-line.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-line.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-line.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2001-2017 Free Software Foundation, Inc.
+# Copyright 2001-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-line.inp ./gdb/testsuite/gdb.base/step-line.inp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-line.inp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-line.inp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # Test step/next in presence of #line directives
-# Copyright (C) 2001-2017
-# Free Software Foundation, Inc.
+
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-over-clone.c ./gdb/testsuite/gdb.base/step-over-clone.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-over-clone.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-over-clone.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-over-exit.c ./gdb/testsuite/gdb.base/step-over-exit.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-over-exit.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-over-exit.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-over-exit.exp ./gdb/testsuite/gdb.base/step-over-exit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-over-exit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-over-exit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2016-2017 Free Software Foundation, Inc.
+#   Copyright 2016-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-over-fork.c ./gdb/testsuite/gdb.base/step-over-fork.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-over-fork.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-over-fork.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-over-no-symbols.exp ./gdb/testsuite/gdb.base/step-over-no-symbols.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-over-no-symbols.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-over-no-symbols.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-over-syscall.exp ./gdb/testsuite/gdb.base/step-over-syscall.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-over-syscall.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-over-syscall.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-over-vfork.c ./gdb/testsuite/gdb.base/step-over-vfork.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-over-vfork.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-over-vfork.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-resume-infcall.c ./gdb/testsuite/gdb.base/step-resume-infcall.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-resume-infcall.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-resume-infcall.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2005-2017 Free Software Foundation, Inc.
+   Copyright 2005-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-resume-infcall.exp ./gdb/testsuite/gdb.base/step-resume-infcall.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-resume-infcall.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-resume-infcall.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.c ./gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp ./gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-symless.c ./gdb/testsuite/gdb.base/step-symless.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-symless.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-symless.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-symless.exp ./gdb/testsuite/gdb.base/step-symless.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-symless.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-symless.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-test.exp ./gdb/testsuite/gdb.base/step-test.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/step-test.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-test.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/store.exp ./gdb/testsuite/gdb.base/store.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/store.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/store.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/structs2.exp ./gdb/testsuite/gdb.base/structs2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/structs2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/structs2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/structs3.c ./gdb/testsuite/gdb.base/structs3.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/structs3.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/structs3.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/structs3.exp ./gdb/testsuite/gdb.base/structs3.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/structs3.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/structs3.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/structs.c ./gdb/testsuite/gdb.base/structs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/structs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/structs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1996-2017 Free Software Foundation, Inc.
+   Copyright 1996-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/structs.exp ./gdb/testsuite/gdb.base/structs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/structs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/structs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 1996-2017 Free Software Foundation, Inc.
+# Copyright 1996-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/subst.exp ./gdb/testsuite/gdb.base/subst.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/subst.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/subst.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symbol-alias2.c ./gdb/testsuite/gdb.base/symbol-alias2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symbol-alias2.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/symbol-alias2.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,34 @@
+/* This test is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+struct S
+{
+  int field1;
+  int field2;
+};
+
+struct S g_var_s = { 1, 2 };
+
+static struct S *
+func (void)
+{
+  return &g_var_s;
+}
+
+struct S *func_alias (void) __attribute__ ((alias ("func")));
+
+extern struct S g_var_s_alias __attribute__ ((alias ("g_var_s")));
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symbol-alias.c ./gdb/testsuite/gdb.base/symbol-alias.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symbol-alias.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/symbol-alias.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,31 @@
+/* This test is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+struct S
+{
+  int field1;
+  int field2;
+};
+
+extern struct S *func_alias (void);
+
+int
+main (void)
+{
+  struct S *s = func_alias ();
+  return s->field1 - s->field1;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symbol-alias.exp ./gdb/testsuite/gdb.base/symbol-alias.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symbol-alias.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/symbol-alias.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,37 @@
+# Test for printing alias symbols.
+# Copyright 2017-2018 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/>.
+
+standard_testfile symbol-alias.c symbol-alias2.c
+
+if { [prepare_for_testing "failed to prepare" ${testfile} [list $srcfile $srcfile2]] } {
+    return -1
+}
+
+if ![runto_main] then {
+    fail "can't run to main"
+    continue
+}
+
+# Functions.
+foreach f {"func" "func_alias"} {
+    gdb_test "p $f" " = {struct S \\*\\(void\\)} $hex <func>"
+    gdb_test "p *${f}()" "= {field1 = 1, field2 = 2}"
+}
+
+# Variables.
+foreach v {"g_var_s" "g_var_s_alias"} {
+    gdb_test "p $v" "= {field1 = 1, field2 = 2}"
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symbol-without-target_section.c ./gdb/testsuite/gdb.base/symbol-without-target_section.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symbol-without-target_section.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/symbol-without-target_section.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symbol-without-target_section.exp ./gdb/testsuite/gdb.base/symbol-without-target_section.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symbol-without-target_section.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/symbol-without-target_section.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sym-file.exp ./gdb/testsuite/gdb.base/sym-file.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sym-file.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sym-file.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sym-file-lib.c ./gdb/testsuite/gdb.base/sym-file-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sym-file-lib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sym-file-lib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2013-2017 Free Software Foundation, Inc.
+/* Copyright 2013-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sym-file-loader.c ./gdb/testsuite/gdb.base/sym-file-loader.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sym-file-loader.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sym-file-loader.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2013-2017 Free Software Foundation, Inc.
+/* Copyright 2013-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sym-file-loader.h ./gdb/testsuite/gdb.base/sym-file-loader.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sym-file-loader.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sym-file-loader.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2013-2017 Free Software Foundation, Inc.
+/* Copyright 2013-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sym-file-main.c ./gdb/testsuite/gdb.base/sym-file-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/sym-file-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/sym-file-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2013-2017 Free Software Foundation, Inc.
+/* Copyright 2013-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symtab-search-order-1.c ./gdb/testsuite/gdb.base/symtab-search-order-1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symtab-search-order-1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/symtab-search-order-1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symtab-search-order.c ./gdb/testsuite/gdb.base/symtab-search-order.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symtab-search-order.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/symtab-search-order.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symtab-search-order.exp ./gdb/testsuite/gdb.base/symtab-search-order.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symtab-search-order.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/symtab-search-order.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symtab-search-order-shlib-1.c ./gdb/testsuite/gdb.base/symtab-search-order-shlib-1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/symtab-search-order-shlib-1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/symtab-search-order-shlib-1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/term.c ./gdb/testsuite/gdb.base/term.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/term.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/term.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/term.exp ./gdb/testsuite/gdb.base/term.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/term.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/term.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1988-2017 Free Software Foundation, Inc.
+#   Copyright 1988-2018 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
@@ -13,11 +13,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Don't try this for remote targets.
-if [is_remote target] then {
-    continue
-}
-
 if { [prepare_for_testing "failed to prepare" term term.c] } {
     return -1
 }
@@ -33,9 +28,16 @@ if ![runto_main] then {
 }
 
 # Once while the program is running and stopped.
-gdb_test "info terminal" \
-    "Inferior's terminal status .currently saved by GDB.:.*" \
-    "info terminal at breakpoint"
+
+# While only native targets save terminal status, we still test
+# everywhere to make sure that the command doesn't misbehave.
+if {[target_info gdb_protocol] == ""} {
+    set term_re "Inferior's terminal status .currently saved by GDB.:.*"
+} else {
+    set term_re "No saved terminal information\\."
+}
+
+gdb_test "info terminal" $term_re "info terminal at breakpoint"
 
 gdb_continue_to_end
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/testenv.c ./gdb/testsuite/gdb.base/testenv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/testenv.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/testenv.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/testenv.exp ./gdb/testsuite/gdb.base/testenv.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/testenv.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/testenv.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
@@ -18,9 +18,10 @@
 # Check if environment variables are correctly passed to inferiors
 #
 
-# There's no support for passing environment variables in the remote protocol.
-if { [is_remote target] } {
-    return 0
+# Can't pass environment variables to the inferior if when we connect,
+# the inferior is already running.
+if [target_info exists use_gdb_stub] {
+    return
 }
 
 standard_testfile .c
@@ -32,92 +33,154 @@ if { [prepare_for_testing "failed to pre
      return -1
 }
 
-# make sure $pc is sane, in case we're talking to a board.
-if { ![runto_main] } {
-    gdb_suppress_tests
+# Test that the the inferior sees EXPECTED env vars starting with
+# "TEST_GDB".
+proc test_num_test_vars {expected message} {
+    set num [get_integer_valueof "j" -1 "$message, get num vars"]
+    gdb_assert {$num == $expected} "$message, confirmed"
 }
 
 set bp_line [gdb_get_line_number "set breakpoint here"]
 gdb_breakpoint  $bp_line
 
-#
-# Test gdb set/unset environment commands.
-# Executable lists and counts all environment variables
-# starting with TEST_GDB.
-
-
-# First test with no TEST_GDB_VAR
-gdb_test "continue" \
-  ".*Program found 0 variables starting with TEST_GDB.*" \
-  "test no TEST_GDB var"
+# Restart test program, and prepare for another test sequence.
+# Returns true on success.
+proc run_and_count_vars {} {
+    global srcfile bp_line
 
-gdb_test_no_output "set env TEST_GDB_VAR1 test1" \
-  "set TEST_GDB_VAR1"
+    return [runto "$srcfile:$bp_line"]
+}
 
-runto_main
-gdb_breakpoint  $bp_line
+# Find environment variable named VARNAME (peeking inferior variables
+# directly), and return its value.  Returns "<not found>" if not
+# found.
+
+proc find_env {varname} {
+    global gdb_prompt
+
+    for {set i 0} {1} {incr i} {
+	set test "printf \"var: %s\\n\", envp\[$i\] ? envp\[$i\] : \"\""
+	set var ""
+	gdb_test_multiple $test $test {
+	    -re "var: \r\n$gdb_prompt $" {
+		return "<not found>"
+	    }
+	    -re "var: \(\[^\r\n\]*\)\r\n$gdb_prompt $" {
+		set var $expect_out(1,string)
+	    }
+	}
+
+	if {[string match "$varname=*" $var]} {
+	    set from [expr [string first "=" $var] + 1]
+	    set to [string length $var]
+	    return [string range $var $from $to]
+	}
+    }
+}
 
-# Second test with one TEST_GDB_VAR
-gdb_test "continue" \
-  ".*Program found 1 variables starting with TEST_GDB.*" \
-  "test with one TEST_GDB var"
+#
+# Test gdb set/unset environment commands.
+# The executable lists and counts all environment variables
+# starting with TEST_GDB.
 
-gdb_test_no_output "set env TEST_GDB_VAR2 test2" \
-  "set TEST_GDB_VAR2"
+proc_with_prefix test_set_unset_env {} {
+    global binfile
 
-runto_main
-gdb_breakpoint  $bp_line
+    clean_restart $binfile
 
-# Third test with two TEST_GDB_VAR
-gdb_test "continue"  \
-  ".*Program found 2 variables starting with TEST_GDB.*" \
-  "test with two TEST_GDB var"
+    # First test with no TEST_GDB_VAR.
+    with_test_prefix "test1" {
+	if ![run_and_count_vars] {
+	    return
+	}
+	test_num_test_vars 0 "no TEST_GDB vars"
+    }
+
+    # Second test with one TEST_GDB_VAR.
+    with_test_prefix "test2" {
+	gdb_test_no_output "set env TEST_GDB_VAR1 test1" \
+	    "set TEST_GDB_VAR1"
+
+	if ![run_and_count_vars] {
+	    return
+	}
+	test_num_test_vars 1 "one TEST_GDB var"
+    }
+
+    # Third test with two TEST_GDB_VAR.
+    with_test_prefix "test3" {
+	gdb_test_no_output "set env TEST_GDB_VAR2 test2" \
+	    "set TEST_GDB_VAR2"
+
+	if ![run_and_count_vars] {
+	    return
+	}
+
+	test_num_test_vars 2 "two TEST_GDB var"
+   }
+
+    # Fourth test with one TEST_GDB_VAR left, after one was removed
+    # with unset command.
+    with_test_prefix "test4" {
+	gdb_test_no_output "unset env TEST_GDB_VAR1" \
+	    "unset TEST_GDB_VAR1"
+
+	if ![run_and_count_vars] {
+	    return
+	}
 
-gdb_test_no_output "unset env TEST_GDB_VAR1" \
-  "unset TEST_GDB_VAR1"
+	test_num_test_vars 1 "one TEST_GDB var, after unset"
+    }
+}
 
-runto_main
-gdb_breakpoint  $bp_line
+proc_with_prefix test_inherit_env_var {} {
+    global binfile
+    global bp_line
+    global env
 
-# Fourth test with one TEST_GDB_VAR left, after one was removed
-# with unset command.
-gdb_test "continue"  \
-  ".*Program found 1 variables starting with TEST_GDB.*" \
-  "test with one TEST_GDB var, after unset"
+    # This test assumes that the build's environ (where dejagnu runs)
+    # is the same as the host's (where gdb runs) environ.
+    if [is_remote host] {
+	return
+    }
 
-gdb_exit
+    save_vars {env(TEST_GDB_GLOBAL)} {
+	set env(TEST_GDB_GLOBAL) "Global environment value"
 
-set env(TEST_GDB_GLOBAL) "Global environment value"
+	clean_restart $binfile
 
-clean_restart $binfile
+	gdb_breakpoint $bp_line
 
-# make sure $pc is sane, in case we're talking to a board.
-if { ![runto_main] } {
-    gdb_suppress_tests
-}
+	# First test with only inherited TEST_GDB_GLOBAL.
+	with_test_prefix "test1" {
+	    if ![run_and_count_vars] {
+		return
+	    }
 
-set bp_line [gdb_get_line_number "set breakpoint here"]
-gdb_breakpoint  $bp_line
+	    gdb_test "show env" ".*TEST_GDB_GLOBAL=.*" \
+		"test passing TEST_GDB_GLOBAL to GDB"
 
-gdb_test "show env" ".*TEST_GDB_GLOBAL=.*" "test passing TEST_GDB_GLOBAL to GDB"
-# First test with only inherited TEST_GDB_GLOBAL
-gdb_test "continue" \
-  ".*TEST_GDB_GLOBAL=Global environment value.*Program found 1 variables starting with TEST_GDB.*" \
-  "test with TEST_GDB_GLOBAL"
+	    test_num_test_vars 1 "TEST_GDB_GLOBAL"
 
-gdb_test_no_output "unset env TEST_GDB_GLOBAL" \
-  "unset TEST_GDB_GLOBAL"
+	    set var [find_env "TEST_GDB_GLOBAL"]
 
-runto_main
-gdb_breakpoint  $bp_line
+	    gdb_assert {[string equal $var "Global environment value"]} \
+		"TEST_GDB_GLOBAL found with right value"
+	}
 
-# Second test with one TEST_GDB_VAR
-gdb_test "continue" \
-  ".*Program found 0 variables starting with TEST_GDB.*" \
-  "test with TEST_GDB_GLOBAL unset"
+	# Second test with one TEST_GDB_VAR.
+	with_test_prefix "test2" {
+	    gdb_test_no_output "unset env TEST_GDB_GLOBAL" \
+		"unset TEST_GDB_GLOBAL"
 
-gdb_exit
+	    if ![run_and_count_vars] {
+		return
+	    }
 
-# Clear environment in case we're doing multiple runs
-unset env(TEST_GDB_GLOBAL)
+	    test_num_test_vars 0 "TEST_GDB_GLOBAL is unset"
+	}
+    }
+}
 
+test_set_unset_env
+test_inherit_env_var
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/trace-commands.exp ./gdb/testsuite/gdb.base/trace-commands.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/trace-commands.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/trace-commands.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/twice.exp ./gdb/testsuite/gdb.base/twice.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/twice.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/twice.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1997-2017 Free Software Foundation, Inc.
+#   Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/type-opaque.exp ./gdb/testsuite/gdb.base/type-opaque.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/type-opaque.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/type-opaque.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/type-opaque-lib.c ./gdb/testsuite/gdb.base/type-opaque-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/type-opaque-lib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/type-opaque-lib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test resolving of an opaque type from the loaded shared library.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/type-opaque-main.c ./gdb/testsuite/gdb.base/type-opaque-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/type-opaque-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/type-opaque-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test resolving of an opaque type from the loaded shared library.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ui-redirect.exp ./gdb/testsuite/gdb.base/ui-redirect.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/ui-redirect.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ui-redirect.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/unload.c ./gdb/testsuite/gdb.base/unload.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/unload.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/unload.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/unload.exp ./gdb/testsuite/gdb.base/unload.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/unload.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/unload.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2003-2017 Free Software Foundation, Inc.
+#   Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/unloadshr2.c ./gdb/testsuite/gdb.base/unloadshr2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/unloadshr2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/unloadshr2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/unloadshr.c ./gdb/testsuite/gdb.base/unloadshr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/unloadshr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/unloadshr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/until.exp ./gdb/testsuite/gdb.base/until.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/until.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/until.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/until-nodebug.exp ./gdb/testsuite/gdb.base/until-nodebug.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/until-nodebug.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/until-nodebug.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/unwindonsignal.c ./gdb/testsuite/gdb.base/unwindonsignal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/unwindonsignal.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/unwindonsignal.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/unwindonsignal.exp ./gdb/testsuite/gdb.base/unwindonsignal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/unwindonsignal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/unwindonsignal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/valgrind-db-attach.c ./gdb/testsuite/gdb.base/valgrind-db-attach.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/valgrind-db-attach.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/valgrind-db-attach.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/valgrind-db-attach.exp ./gdb/testsuite/gdb.base/valgrind-db-attach.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/valgrind-db-attach.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/valgrind-db-attach.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/valgrind-disp-step.c ./gdb/testsuite/gdb.base/valgrind-disp-step.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/valgrind-disp-step.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/valgrind-disp-step.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/valgrind-disp-step.exp ./gdb/testsuite/gdb.base/valgrind-disp-step.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/valgrind-disp-step.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/valgrind-disp-step.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/valgrind-infcall.c ./gdb/testsuite/gdb.base/valgrind-infcall.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/valgrind-infcall.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/valgrind-infcall.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/valgrind-infcall.exp ./gdb/testsuite/gdb.base/valgrind-infcall.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/valgrind-infcall.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/valgrind-infcall.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/value-double-free.c ./gdb/testsuite/gdb.base/value-double-free.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/value-double-free.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/value-double-free.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/value-double-free.exp ./gdb/testsuite/gdb.base/value-double-free.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/value-double-free.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/value-double-free.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/varargs.exp ./gdb/testsuite/gdb.base/varargs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/varargs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/varargs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vdso-warning.c ./gdb/testsuite/gdb.base/vdso-warning.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vdso-warning.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/vdso-warning.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vdso-warning.exp ./gdb/testsuite/gdb.base/vdso-warning.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vdso-warning.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/vdso-warning.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vforked-prog.c ./gdb/testsuite/gdb.base/vforked-prog.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vforked-prog.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/vforked-prog.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1997-2017 Free Software Foundation, Inc.
+   Copyright 1997-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-datatypes.c ./gdb/testsuite/gdb.base/vla-datatypes.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-datatypes.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/vla-datatypes.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-datatypes.exp ./gdb/testsuite/gdb.base/vla-datatypes.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-datatypes.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/vla-datatypes.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-ptr.c ./gdb/testsuite/gdb.base/vla-ptr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-ptr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/vla-ptr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-ptr.exp ./gdb/testsuite/gdb.base/vla-ptr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-ptr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/vla-ptr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-sideeffect.c ./gdb/testsuite/gdb.base/vla-sideeffect.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-sideeffect.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/vla-sideeffect.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-sideeffect.exp ./gdb/testsuite/gdb.base/vla-sideeffect.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-sideeffect.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/vla-sideeffect.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-stub.c ./gdb/testsuite/gdb.base/vla-stub.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-stub.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/vla-stub.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-stub-define.c ./gdb/testsuite/gdb.base/vla-stub-define.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-stub-define.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/vla-stub-define.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-stub.exp ./gdb/testsuite/gdb.base/vla-stub.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/vla-stub.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/vla-stub.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/volatile.exp ./gdb/testsuite/gdb.base/volatile.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/volatile.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/volatile.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-bitfields.c ./gdb/testsuite/gdb.base/watch-bitfields.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-bitfields.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch-bitfields.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-bitfields.exp ./gdb/testsuite/gdb.base/watch-bitfields.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-bitfields.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch-bitfields.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-cond.c ./gdb/testsuite/gdb.base/watch-cond.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-cond.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch-cond.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-cond.exp ./gdb/testsuite/gdb.base/watch-cond.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-cond.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch-cond.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-cond-infcall.c ./gdb/testsuite/gdb.base/watch-cond-infcall.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-cond-infcall.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch-cond-infcall.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-cond-infcall.exp ./gdb/testsuite/gdb.base/watch-cond-infcall.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-cond-infcall.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch-cond-infcall.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 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
@@ -18,6 +18,11 @@
 
 standard_testfile
 
+if [target_info exists gdb,cannot_call_functions] {
+    unsupported "can not call functions"
+    return
+}
+
 if { [build_executable ${testfile}.exp ${testfile} ${testfile}.c {debug}] } {
     untested "failed to compile"
     return -1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-non-mem.c ./gdb/testsuite/gdb.base/watch-non-mem.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-non-mem.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch-non-mem.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-non-mem.exp ./gdb/testsuite/gdb.base/watch-non-mem.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-non-mem.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch-non-mem.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-cond-gone.c ./gdb/testsuite/gdb.base/watchpoint-cond-gone.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-cond-gone.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-cond-gone.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-cond-gone.exp ./gdb/testsuite/gdb.base/watchpoint-cond-gone.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-cond-gone.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-cond-gone.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-cond-gone-stripped.c ./gdb/testsuite/gdb.base/watchpoint-cond-gone-stripped.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-cond-gone-stripped.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-cond-gone-stripped.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-delete.c ./gdb/testsuite/gdb.base/watchpoint-delete.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-delete.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-delete.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-delete.exp ./gdb/testsuite/gdb.base/watchpoint-delete.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-delete.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-delete.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint.exp ./gdb/testsuite/gdb.base/watchpoint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-hw.c ./gdb/testsuite/gdb.base/watchpoint-hw.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-hw.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-hw.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-hw.exp ./gdb/testsuite/gdb.base/watchpoint-hw.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-hw.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-hw.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-hw-hit-once.c ./gdb/testsuite/gdb.base/watchpoint-hw-hit-once.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-hw-hit-once.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-hw-hit-once.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-hw-hit-once.exp ./gdb/testsuite/gdb.base/watchpoint-hw-hit-once.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-hw-hit-once.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-hw-hit-once.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-reuse-slot.c ./gdb/testsuite/gdb.base/watchpoint-reuse-slot.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-reuse-slot.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-reuse-slot.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp ./gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoints.c ./gdb/testsuite/gdb.base/watchpoints.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoints.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoints.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoints.exp ./gdb/testsuite/gdb.base/watchpoints.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoints.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoints.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-solib.c ./gdb/testsuite/gdb.base/watchpoint-solib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-solib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-solib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-solib.exp ./gdb/testsuite/gdb.base/watchpoint-solib.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-solib.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-solib.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2007-2017 Free Software Foundation, Inc.
+#   Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-solib-shr.c ./gdb/testsuite/gdb.base/watchpoint-solib-shr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-solib-shr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-solib-shr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.c ./gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp ./gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-read.c ./gdb/testsuite/gdb.base/watch-read.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-read.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch-read.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-read.exp ./gdb/testsuite/gdb.base/watch-read.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-read.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch-read.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch_thread_num.c ./gdb/testsuite/gdb.base/watch_thread_num.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch_thread_num.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch_thread_num.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    Copyright 1992, 1993, 1994, 1995, 1999, 2002, 2003, 2007, 2008, 2009
    Free Software Foundation, Inc.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch_thread_num.exp ./gdb/testsuite/gdb.base/watch_thread_num.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch_thread_num.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch_thread_num.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-vfork.c ./gdb/testsuite/gdb.base/watch-vfork.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-vfork.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch-vfork.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-vfork.exp ./gdb/testsuite/gdb.base/watch-vfork.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/watch-vfork.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch-vfork.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/wchar.c ./gdb/testsuite/gdb.base/wchar.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/wchar.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/wchar.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/wchar.exp ./gdb/testsuite/gdb.base/wchar.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/wchar.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/wchar.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/weaklib1.c ./gdb/testsuite/gdb.base/weaklib1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/weaklib1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/weaklib1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2006-2017 Free Software Foundation, Inc.
+   Copyright 2006-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/weaklib2.c ./gdb/testsuite/gdb.base/weaklib2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/weaklib2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/weaklib2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2006-2017 Free Software Foundation, Inc.
+   Copyright 2006-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/whatis.c ./gdb/testsuite/gdb.base/whatis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/whatis.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/whatis.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 1992-2017 Free Software Foundation, Inc.
+   Copyright 1992-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/whatis.exp ./gdb/testsuite/gdb.base/whatis.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/whatis.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/whatis.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1988-2017 Free Software Foundation, Inc.
+# Copyright 1988-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/whatis-exp.exp ./gdb/testsuite/gdb.base/whatis-exp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/whatis-exp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/whatis-exp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/whatis-ptype-typedefs.c ./gdb/testsuite/gdb.base/whatis-ptype-typedefs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/whatis-ptype-typedefs.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/whatis-ptype-typedefs.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,153 @@
+/* This test program is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+/* Define typedefs of different types, for testing the "whatis" and
+   "ptype" commands.  */
+
+/* Helper macro used to consistently define variables/typedefs using
+   the same name scheme.  BASE is the shared part of the name of all
+   typedefs/variables generated.  Defines a variable of the given
+   typedef type, and then a typedef of that typedef and a variable of
+   that new typedef type.  The "double typedef" is useful to checking
+   that whatis only strips one typedef level.  For example, if BASE is
+   "int", we get:
+
+  int_typedef v_int_typedef; // "v_" stands for variable of typedef type
+  typedef int_typedef int_typedef2; // typedef-of-typedef
+  int_typedef2 v_int_typedef2; // var of typedef-of-typedef
+*/
+#define DEF(base)				\
+  base ## _typedef v_ ## base ## _typedef;	\
+						\
+  typedef base ## _typedef base ## _typedef2;	\
+  base ## _typedef2 v_ ## base ## _typedef2
+
+/* Void.  */
+
+/* (Can't have variables of void type.)  */
+
+typedef void void_typedef;
+typedef void_typedef void_typedef2;
+
+void_typedef *v_void_typedef_ptr;
+void_typedef2 *v_void_typedef_ptr2;
+
+/* Integers.  */
+
+typedef int int_typedef;
+DEF (int);
+
+/* Floats.  */
+
+typedef float float_typedef;
+DEF (float);
+
+/* Double floats.  */
+
+typedef double double_typedef;
+DEF (double);
+
+/* Long doubles.  */
+
+typedef long double long_double_typedef;
+DEF (long_double);
+
+/* Enums.  */
+
+typedef enum colors {red, green, blue} colors_typedef;
+DEF (colors);
+
+/* Structures.  */
+
+typedef struct t_struct
+{
+  int member;
+} t_struct_typedef;
+DEF (t_struct);
+
+/* Unions.  */
+
+typedef union t_union
+{
+  int member;
+} t_union_typedef;
+DEF (t_union);
+
+/* Arrays.  */
+
+typedef int int_array_typedef[3];
+DEF (int_array);
+
+/* An array the same size of t_struct_typedef, so we can test casting.  */
+typedef unsigned char uchar_array_t_struct_typedef[sizeof (t_struct_typedef)];
+DEF (uchar_array_t_struct);
+
+/* A struct and a eunion the same size as t_struct, so we can test
+   casting.  */
+
+typedef struct t_struct_wrapper
+{
+  struct t_struct base;
+} t_struct_wrapper_typedef;
+DEF (t_struct_wrapper);
+
+typedef union t_struct_union_wrapper
+{
+  struct t_struct base;
+} t_struct_union_wrapper_typedef;
+DEF (t_struct_union_wrapper);
+
+/* Functions / function pointers.  */
+
+typedef void func_ftype (void);
+func_ftype *v_func_ftype;
+
+typedef func_ftype func_ftype2;
+func_ftype2 *v_func_ftype2;
+
+/* C++ methods / method pointers.  */
+
+#ifdef __cplusplus
+
+namespace ns {
+
+struct Struct { void method (); };
+void Struct::method () {}
+
+typedef Struct Struct_typedef;
+DEF (Struct);
+
+/* Typedefs/vars in a namespace.  */
+typedef void (Struct::*method_ptr_typedef) ();
+DEF (method_ptr);
+
+}
+
+/* Similar, but in the global namespace.  */
+typedef ns::Struct ns_Struct_typedef;
+DEF (ns_Struct);
+
+typedef void (ns::Struct::*ns_method_ptr_typedef) ();
+DEF (ns_method_ptr);
+
+#endif
+
+int
+main (void)
+{
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/whatis-ptype-typedefs.exp ./gdb/testsuite/gdb.base/whatis-ptype-typedefs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/whatis-ptype-typedefs.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/whatis-ptype-typedefs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,305 @@
+# Copyright 2017-2018 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 "whatis"/"ptype" of different typedef types, and of expressions
+# involving casts to/from different typedefs.
+#
+# Particularly, when "whatis" is given a type name directly, it should
+# strip one (and only one) typedef level.  Otherwise, it should not
+# strip any typedef at all.  GDB used to incorrectly strip typedefs of
+# expressions involving casts to typedef types.  E.g., (gdb) print
+# (int_typedef)0" shall result in a value of type "int_typedef", not
+# "int".
+
+standard_testfile
+
+# Prepare for testing in language LANG.  Lang can be "c" or "c++".
+
+proc prepare {lang} {
+    global srcfile testfile
+
+    if [target_info exists no_long_long] {
+	set options [list debug additional_flags=-DNO_LONG_LONG]
+    } else {
+	set options [list debug]
+    }
+
+    if {$lang == "c++"} {
+	lappend options c++
+	set out $testfile-cxx
+    } else {
+	set out $testfile-c
+    }
+
+    if { [prepare_for_testing "failed to prepare" \
+	      ${out} [list $srcfile] $options] } {
+	return -1
+    }
+
+    if ![runto_main] then {
+	fail "can't run to main"
+	return 0
+    }
+}
+
+# The following list is layed out as a table.  It is composed by
+# sub-lists (lines), with each line representing one whatis/ptype
+# test.  The sub-list (line) elements (columns) are (in order):
+#
+# EXP - The user expression passed to whatis/ptype.
+#
+# WHATIS - What "whatis" should print.
+#
+# If the EXP column is a type name, then this will be the same type,
+# with one (and only one) typedef level removed.  Otherwise, this is
+# the type of the expression on the first column, with all typedefs
+# preserved.
+#
+# PTYPE - What "ptype" should print.
+#
+# This is always the type of the input type/expression stripped from
+# all typedefs.
+#
+# LANGUAGE - If the line is language-specific, which language.
+#
+# This can be "c" or "c++".
+#
+# Columns in the table represent:
+     # EXP                # whatis           # ptype           # language
+set table {
+    {"void_typedef"       "void"              "void"}
+    {"void_typedef2"      "void_typedef"      "void"}
+
+    {"int_typedef"        "int"              "int"}
+    {"int_typedef2"       "int_typedef"      "int"}
+    {"v_int_typedef"      "int_typedef"      "int"}
+    {"v_int_typedef2"     "int_typedef2"     "int"}
+
+    {"float_typedef"      "float"            "float"}
+    {"float_typedef2"     "float_typedef"    "float"}
+    {"v_float_typedef"    "float_typedef"    "float"}
+    {"v_float_typedef2"   "float_typedef2"   "float"}
+
+    {"double_typedef"     "double"           "double"}
+    {"double_typedef2"    "double_typedef"   "double"}
+    {"v_double_typedef"   "double_typedef"   "double"}
+    {"v_double_typedef2"  "double_typedef2"  "double"}
+
+    {"long_double_typedef"    "long double"           "long double"}
+    {"long_double_typedef2"   "long_double_typedef"   "long double"}
+    {"v_long_double_typedef"  "long_double_typedef"   "long double"}
+    {"v_long_double_typedef2" "long_double_typedef2"  "long double"}
+
+    {"colors_typedef"     "(enum )?colors"   "enum colors( : unsigned int)? {red, green, blue}"}
+    {"colors_typedef2"    "colors_typedef"   "enum colors( : unsigned int)? {red, green, blue}"}
+    {"v_colors_typedef"   "colors_typedef"   "enum colors( : unsigned int)? {red, green, blue}"}
+    {"v_colors_typedef2"  "colors_typedef2"  "enum colors( : unsigned int)? {red, green, blue}"}
+
+    {"func_ftype"         "void \\(void\\)"  "void \\(void\\)"}
+    {"func_ftype2"        "func_ftype"       "void \\(void\\)"}
+
+    {"func_ftype *"       "func_ftype \\*"   "void \\(\\*\\)\\(void\\)"}
+    {"func_ftype2 *"      "func_ftype2 \\*"  "void \\(\\*\\)\\(void\\)"}
+    {"v_func_ftype"       "func_ftype \\*"   "void \\(\\*\\)\\(void\\)"}
+    {"v_func_ftype2"      "func_ftype2 \\*"  "void \\(\\*\\)\\(void\\)"}
+
+    {"v_t_struct_typedef"                "t_struct_typedef"                "struct t_struct {.* member;.*}"}
+    {"v_t_struct_typedef2"               "t_struct_typedef2"               "struct t_struct {.* member;.*}"}
+    {"v_t_struct_union_wrapper_typedef"  "t_struct_union_wrapper_typedef"  "union t_struct_union_wrapper {.*base;.*}"}
+    {"v_t_struct_union_wrapper_typedef2" "t_struct_union_wrapper_typedef2" "union t_struct_union_wrapper {.*base;.*}"}
+    {"v_uchar_array_t_struct_typedef"    "uchar_array_t_struct_typedef"    "unsigned char \\[.*\\]"}
+    {"v_uchar_array_t_struct_typedef2"   "uchar_array_t_struct_typedef2"   "unsigned char \\[.*\\]"}
+
+    {"v_ns_Struct_typedef"               "ns_Struct_typedef"                "struct ns::Struct {.* method.*}"   "c++"}
+
+    {"ns_method_ptr_typedef"
+	"void \\(ns::Struct::\\*\\)\\(ns::Struct \\* const\\)"
+	"void \\(ns::Struct::\\*\\)\\(ns::Struct \\* const\\)"
+	"c++"}
+
+    {"ns::method_ptr_typedef"
+	"void \\(ns::Struct::\\*\\)\\(ns::Struct \\* const\\)"
+	"void \\(ns::Struct::\\*\\)\\(ns::Struct \\* const\\)"
+	"c++"}
+
+    {"ns_method_ptr_typedef2"
+	"ns_method_ptr_typedef"
+	"void \\(ns::Struct::\\*\\)\\(ns::Struct \\* const\\)"
+	"c++"}
+
+    {"ns::method_ptr_typedef2"
+	"ns::method_ptr_typedef"
+	"void \\(ns::Struct::\\*\\)\\(ns::Struct \\* const\\)"
+	"c++"}
+
+    {"ns::Struct::method"
+	"void \\(ns::Struct \\* const\\)"
+	"void \\(ns::Struct \\* const\\)"
+	"c++"}
+}
+
+# The 4th column above is optional.  If present, it indicates that the
+# line should only be tested in the specified language.  This is a
+# helper function that checks whether LINE's language matches LANG.
+proc line_lang_match {line lang} {
+    if {[llength $line] <= 3} {
+	return true
+    }
+
+    set line_lang [lindex $line 3]
+    if {$line_lang == "" || $lang == $line_lang} {
+	return true
+    }
+
+    return false
+}
+
+# Run tests in language LANG.
+
+proc run_tests {lang} {
+    global table
+    global gdb_prompt
+
+    # Test passing all EXP in the list/table above to whatis/ptype,
+    # and check what comes out.
+    with_test_prefix "whatis/ptype" {
+	foreach line $table {
+	    set type [lindex $line 0]
+	    set whatis [lindex $line 1]
+	    set ptype [lindex $line 2]
+
+	    if {![line_lang_match $line $lang]} {
+		continue
+	    }
+
+	    # GCC doesn't record the target type of "typedef of
+	    # typedef of void" types in the DWARF.  See
+	    # <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81267>.
+	    # Handle that case manually in order to be able to xfail
+	    # it.
+	    if {$type == "void_typedef2"} {
+		set test "whatis $type"
+		gdb_test_multiple $test $test {
+		    -re "type = void\r\n$gdb_prompt $" {
+			# gcc/81267.
+			setup_xfail "*-*-*"
+			fail "$test (void)"
+		    }
+		    -re "type = void_typedef\r\n$gdb_prompt $" {
+			pass $test
+		    }
+		}
+	    } else {
+		gdb_test "whatis $type" "type = $whatis"
+	    }
+
+	    gdb_test "ptype $type" "type = $ptype"
+	}
+    }
+
+    # If floats and pointers have the same size on this architecture,
+    # then casting from array/function to float works, because
+    # arrays/functions first decay to pointers, and then GDB's cast is
+    # more general than a C cast and accepts any two types of the same
+    # length.
+    set float_ptr_same_size \
+	[get_integer_valueof "sizeof (float) == sizeof (void *)" -1]
+
+    # Ditto double.
+    set double_ptr_same_size \
+	[get_integer_valueof "sizeof (double) == sizeof (void *)" -1]
+
+    # Ditto long double.
+    set long_double_ptr_same_size \
+	[get_integer_valueof "sizeof (long double) == sizeof (void *)" -1]
+
+    # Test converting/casting all variables in the first column of the
+    # table to all types (found in the first column of the table).
+    # The aggregates are all defined to be the same size so that
+    # casting actually works.  (GDB's casting operator is more general
+    # than a C cast.)
+    #
+    # The main idea here is testing all the different paths in the
+    # value casting code in GDB (value_cast), making sure typedefs are
+    # preserved.
+    with_test_prefix "cast" {
+	foreach line1 $table {
+	    set from [lindex $line1 0]
+
+	    if {![line_lang_match $line1 $lang]} {
+		continue
+	    }
+
+	    foreach line2 $table {
+		set to [lindex $line2 0]
+		set whatis [lindex $line2 1]
+		set ptype [lindex $line2 2]
+
+		if {![line_lang_match $line2 $lang]} {
+		    continue
+		}
+
+		# We try all combinations, even those that don't
+		# parse, or are invalid, to catch the case of a
+		# regression making them inadvertently valid.  For
+		# example, these convertions are invalid:
+		#
+		#  float <-> array   [iff sizeof pointer != sizeof float]
+		#  array -> function (not function pointer)
+		#  array -> member_ptr
+		#
+		# while these are invalid syntax:
+		#
+		#  (anything) type
+		#  (var) anything
+		#  (method) anything   [not method pointer]
+		#  (float) method
+		#
+		if {([string match "v_*" $to]
+		     || (![string match "v_*" $from] && ![string match "*method" $from])
+		     || [string match "*method" $to])} {
+		    gdb_test "whatis ($to) $from" "syntax error.*" "whatis ($to) $from (syntax)"
+		    gdb_test "ptype ($to) $from" "syntax error.*" "ptype ($to) $from (syntax)"
+		} elseif {([string match "*float*" $from] && [string match "*array*" $to])
+			  || (!$float_ptr_same_size
+			      && ([string match "float*" $to] && [string match "*array*" $from]
+				  || [string match "float*" $to] && [string match "*method" $from]))
+			  || (!$double_ptr_same_size
+			      && ([string match "double*" $to] && [string match "*array*" $from]
+				  || [string match "double*" $to] && [string match "*method" $from]))
+			  || (!$long_double_ptr_same_size
+			      && ([string match "long_double*" $to] && [string match "*array*" $from]
+				  || [string match "long_double*" $to] && [string match "*method" $from]))
+			  || ([string match "*ftype" $to] && [string match "*array*" $from])
+			  || ([string match "*ftype2" $to] && [string match "*array*" $from])
+			  || ([string match "*ftype" $to] && [string match "*method" $from])
+			  || ([string match "*ftype2" $to] && [string match "*method" $from])
+			  || ([string match "*method_ptr*" $to] && [string match "*method" $from])
+			  || ([string match "*method_ptr*" $to] && [string match "*array*" $from])} {
+		    gdb_test "whatis ($to) $from" "Invalid cast." "whatis ($to) $from (invalid)"
+		    gdb_test "ptype ($to) $from" "Invalid cast." "ptype ($to) $from (invalid)"
+		} else {
+		    gdb_test "whatis ($to) $from" "type = [string_to_regexp $to]"
+		    gdb_test "ptype ($to) $from" "type = $ptype"
+		}
+	    }
+	}
+    }
+}
+
+foreach_with_prefix lang {"c" "c++"} {
+    prepare $lang
+    run_tests $lang
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/wrong_frame_bt_full.exp ./gdb/testsuite/gdb.base/wrong_frame_bt_full.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/wrong_frame_bt_full.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/wrong_frame_bt_full.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/wrong_frame_bt_full-main.c ./gdb/testsuite/gdb.base/wrong_frame_bt_full-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/wrong_frame_bt_full-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/wrong_frame_bt_full-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/wrong_frame_bt_full-opaque.c ./gdb/testsuite/gdb.base/wrong_frame_bt_full-opaque.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.base/wrong_frame_bt_full-opaque.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.base/wrong_frame_bt_full-opaque.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/buffer-size.exp ./gdb/testsuite/gdb.btrace/buffer-size.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/buffer-size.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/buffer-size.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/data.c ./gdb/testsuite/gdb.btrace/data.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/data.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/data.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/data.exp ./gdb/testsuite/gdb.btrace/data.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/data.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/data.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/delta.exp ./gdb/testsuite/gdb.btrace/delta.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/delta.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/delta.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/dlopen.c ./gdb/testsuite/gdb.btrace/dlopen.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/dlopen.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/dlopen.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/dlopen-dso.c ./gdb/testsuite/gdb.btrace/dlopen-dso.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/dlopen-dso.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/dlopen-dso.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/dlopen.exp ./gdb/testsuite/gdb.btrace/dlopen.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/dlopen.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/dlopen.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/enable.c ./gdb/testsuite/gdb.btrace/enable.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/enable.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/enable.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <christian.himpel@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/enable.exp ./gdb/testsuite/gdb.btrace/enable.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/enable.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/enable.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <christian.himpel@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/enable-running.c ./gdb/testsuite/gdb.btrace/enable-running.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/enable-running.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/enable-running.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2017 Free Software Foundation, Inc.
+   Copyright 2017-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/enable-running.exp ./gdb/testsuite/gdb.btrace/enable-running.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/enable-running.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/enable-running.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2017 Free Software Foundation, Inc.
+# Copyright 2017-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/exception.cc ./gdb/testsuite/gdb.btrace/exception.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/exception.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/exception.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/exception.exp ./gdb/testsuite/gdb.btrace/exception.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/exception.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/exception.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/function_call_history.c ./gdb/testsuite/gdb.btrace/function_call_history.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/function_call_history.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/function_call_history.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <christian.himpel@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/function_call_history.exp ./gdb/testsuite/gdb.btrace/function_call_history.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/function_call_history.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/function_call_history.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <christian.himpel@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/gcore.exp ./gdb/testsuite/gdb.btrace/gcore.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/gcore.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/gcore.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/i686-record_goto.S ./gdb/testsuite/gdb.btrace/i686-record_goto.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/i686-record_goto.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/i686-record_goto.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/i686-tailcall-only.S ./gdb/testsuite/gdb.btrace/i686-tailcall-only.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/i686-tailcall-only.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/i686-tailcall-only.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/i686-tailcall.S ./gdb/testsuite/gdb.btrace/i686-tailcall.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/i686-tailcall.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/i686-tailcall.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/instruction_history.c ./gdb/testsuite/gdb.btrace/instruction_history.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/instruction_history.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/instruction_history.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <christian.himpel@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/instruction_history.exp ./gdb/testsuite/gdb.btrace/instruction_history.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/instruction_history.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/instruction_history.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <christian.himpel@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/instruction_history.S ./gdb/testsuite/gdb.btrace/instruction_history.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/instruction_history.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/instruction_history.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <christian.himpel@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/multi-thread-step.c ./gdb/testsuite/gdb.btrace/multi-thread-step.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/multi-thread-step.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/multi-thread-step.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/multi-thread-step.exp ./gdb/testsuite/gdb.btrace/multi-thread-step.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/multi-thread-step.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/multi-thread-step.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/nohist.exp ./gdb/testsuite/gdb.btrace/nohist.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/nohist.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/nohist.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/non-stop.c ./gdb/testsuite/gdb.btrace/non-stop.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/non-stop.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/non-stop.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/non-stop.exp ./gdb/testsuite/gdb.btrace/non-stop.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/non-stop.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/non-stop.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/reconnect.c ./gdb/testsuite/gdb.btrace/reconnect.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/reconnect.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/reconnect.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <tim.wiederhake@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/reconnect.exp ./gdb/testsuite/gdb.btrace/reconnect.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/reconnect.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/reconnect.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <tim.wiederhake@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/record_goto.c ./gdb/testsuite/gdb.btrace/record_goto.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/record_goto.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/record_goto.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/record_goto.exp ./gdb/testsuite/gdb.btrace/record_goto.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/record_goto.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/record_goto.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/record_goto-step.exp ./gdb/testsuite/gdb.btrace/record_goto-step.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/record_goto-step.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/record_goto-step.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/rn-dl-bind.c ./gdb/testsuite/gdb.btrace/rn-dl-bind.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/rn-dl-bind.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/rn-dl-bind.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/rn-dl-bind.exp ./gdb/testsuite/gdb.btrace/rn-dl-bind.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/rn-dl-bind.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/rn-dl-bind.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/segv.c ./gdb/testsuite/gdb.btrace/segv.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/segv.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/segv.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/segv.exp ./gdb/testsuite/gdb.btrace/segv.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/segv.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/segv.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/step.exp ./gdb/testsuite/gdb.btrace/step.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/step.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/step.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/stepi.exp ./gdb/testsuite/gdb.btrace/stepi.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/stepi.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/stepi.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/tailcall.c ./gdb/testsuite/gdb.btrace/tailcall.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/tailcall.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/tailcall.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/tailcall.exp ./gdb/testsuite/gdb.btrace/tailcall.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/tailcall.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/tailcall.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/tailcall-only.c ./gdb/testsuite/gdb.btrace/tailcall-only.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/tailcall-only.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/tailcall-only.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/tailcall-only.exp ./gdb/testsuite/gdb.btrace/tailcall-only.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/tailcall-only.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/tailcall-only.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/tsx.c ./gdb/testsuite/gdb.btrace/tsx.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/tsx.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/tsx.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/tsx.exp ./gdb/testsuite/gdb.btrace/tsx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/tsx.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/tsx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/unknown_functions.c ./gdb/testsuite/gdb.btrace/unknown_functions.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/unknown_functions.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/unknown_functions.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/unknown_functions.exp ./gdb/testsuite/gdb.btrace/unknown_functions.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/unknown_functions.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/unknown_functions.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/vdso.c ./gdb/testsuite/gdb.btrace/vdso.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/vdso.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/vdso.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/vdso.exp ./gdb/testsuite/gdb.btrace/vdso.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/vdso.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/vdso.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <markus.t.metzger@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/x86_64-record_goto.S ./gdb/testsuite/gdb.btrace/x86_64-record_goto.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/x86_64-record_goto.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/x86_64-record_goto.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/x86_64-tailcall-only.S ./gdb/testsuite/gdb.btrace/x86_64-tailcall-only.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/x86_64-tailcall-only.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/x86_64-tailcall-only.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/x86_64-tailcall.S ./gdb/testsuite/gdb.btrace/x86_64-tailcall.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/x86_64-tailcall.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/x86_64-tailcall.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corp. <markus.t.metzger@intel.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/x86-tsx.S ./gdb/testsuite/gdb.btrace/x86-tsx.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.btrace/x86-tsx.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.btrace/x86-tsx.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/arch.exp ./gdb/testsuite/gdb.cell/arch.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/arch.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/arch.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -22,10 +22,10 @@ load_lib cell.exp
 
 set ppu_file "break"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "break-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/break.c ./gdb/testsuite/gdb.cell/break.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/break.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/break.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/break.exp ./gdb/testsuite/gdb.cell/break.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/break.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/break.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -23,10 +23,10 @@ load_lib cell.exp
 set testfile "break"
 set ppu_file "break"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "break-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/break-spu.c ./gdb/testsuite/gdb.cell/break-spu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/break-spu.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/break-spu.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/bt2-spu.c ./gdb/testsuite/gdb.cell/bt2-spu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/bt2-spu.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/bt2-spu.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/bt.c ./gdb/testsuite/gdb.cell/bt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/bt.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/bt.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/bt.exp ./gdb/testsuite/gdb.cell/bt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/bt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/bt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -23,13 +23,13 @@ load_lib cell.exp
 set testfile "bt"
 set ppu_file "bt"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "bt-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 set spu2_file "bt2-spu"
 set spu2_src ${srcdir}/${subdir}/${spu2_file}.c
-set spu2_bin ${objdir}/${subdir}/${spu2_file}
+set spu2_bin [standard_output_file ${spu2_file}]
 
 if {[skip_cell_tests]} {
     return 0
@@ -73,7 +73,7 @@ if ![runto_main] then {
 }
 
 delete_breakpoints
-gdb_test "continue" ".*Program received signal SIGABRT, Aborted.*"
+gdb_test "continue" ".*received signal SIGABRT, Aborted.*"
 
 gdb_test "backtrace" ".*abort.*crash_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu2_file.c.*<cross-architecture call>.*spe_context_run.*indirect_handler.*base.*offset.*<cross-architecture call>.*main.*speid.*argp.*envp.*at.*$spu_file.c.*<cross-architecture call>.*spe_context_run.*spe_thread.*at.*$ppu_file.c.*"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/bt-spu.c ./gdb/testsuite/gdb.cell/bt-spu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/bt-spu.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/bt-spu.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/core.exp ./gdb/testsuite/gdb.cell/core.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/core.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/core.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -23,10 +23,10 @@ load_lib cell.exp
 set testfile "coremaker"
 set ppu_file "coremaker"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "coremaker-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 
 if {![isnative]} then {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/coremaker.c ./gdb/testsuite/gdb.cell/coremaker.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/coremaker.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/coremaker.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/coremaker-spu.c ./gdb/testsuite/gdb.cell/coremaker-spu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/coremaker-spu.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/coremaker-spu.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/data.c ./gdb/testsuite/gdb.cell/data.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/data.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/data.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/data.exp ./gdb/testsuite/gdb.cell/data.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/data.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/data.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -23,10 +23,10 @@ load_lib cell.exp
 set testfile "data"
 set ppu_file "data"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "data-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/data-spu.c ./gdb/testsuite/gdb.cell/data-spu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/data-spu.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/data-spu.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/dwarfaddr.exp ./gdb/testsuite/gdb.cell/dwarfaddr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/dwarfaddr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/dwarfaddr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 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
@@ -22,7 +22,7 @@ load_lib cell.exp
 
 set testfile "dwarfaddr"
 set srcfile ${srcdir}/${subdir}/${testfile}.S
-set binary ${objdir}/${subdir}/${testfile}
+set binary [standard_output_file ${testfile}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/dwarfaddr.S ./gdb/testsuite/gdb.cell/dwarfaddr.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/dwarfaddr.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/dwarfaddr.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2010-2017 Free Software Foundation, Inc.
+/* Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ea-cache.c ./gdb/testsuite/gdb.cell/ea-cache.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ea-cache.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/ea-cache.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ea-cache.exp ./gdb/testsuite/gdb.cell/ea-cache.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ea-cache.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/ea-cache.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -22,10 +22,10 @@ load_lib cell.exp
 
 set ppu_file "ea-cache"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "ea-cache-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ea-cache-spu.c ./gdb/testsuite/gdb.cell/ea-cache-spu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ea-cache-spu.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/ea-cache-spu.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ea-standalone.c ./gdb/testsuite/gdb.cell/ea-standalone.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ea-standalone.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/ea-standalone.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ea-standalone.exp ./gdb/testsuite/gdb.cell/ea-standalone.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ea-standalone.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/ea-standalone.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -22,7 +22,7 @@ load_lib cell.exp
 
 set testfile "ea-standalone"
 set srcfile ${srcdir}/${subdir}/${testfile}.c
-set binary ${objdir}/${subdir}/${testfile}
+set binary [standard_output_file ${testfile}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ea-test.c ./gdb/testsuite/gdb.cell/ea-test.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ea-test.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/ea-test.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ea-test.exp ./gdb/testsuite/gdb.cell/ea-test.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ea-test.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/ea-test.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -22,7 +22,7 @@ load_lib cell.exp
 
 set testfile "ea-test"
 set source ${srcdir}/${subdir}/${testfile}.c
-set binary ${objdir}/${subdir}/${testfile}
+set binary [standard_output_file ${testfile}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/fork.c ./gdb/testsuite/gdb.cell/fork.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/fork.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/fork.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/fork.exp ./gdb/testsuite/gdb.cell/fork.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/fork.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/fork.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 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
@@ -23,10 +23,10 @@ load_lib cell.exp
 set testfile "fork"
 set ppu_file "fork"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "fork-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/fork-spu.c ./gdb/testsuite/gdb.cell/fork-spu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/fork-spu.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/fork-spu.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/f-regs.exp ./gdb/testsuite/gdb.cell/f-regs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/f-regs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/f-regs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -22,10 +22,10 @@ load_lib cell.exp
 
 set ppu_file "break"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "break-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/gcore.exp ./gdb/testsuite/gdb.cell/gcore.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/gcore.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/gcore.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -23,10 +23,10 @@ load_lib cell.exp
 set testfile "coremaker"
 set ppu_file "coremaker"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "coremaker-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 
 if {![isnative]} then {
     return 0
@@ -92,10 +92,9 @@ gdb_expect {
     timeout			{ fail "(timeout) core-file command" }
 }
 
-gdb_test "t 6" "Switching to thread 6.*"
 gdb_test "backtrace" ".*abort.*main.*at.*$ppu_file.c.*"
 
-for {set thread_id 1} {$thread_id < 6} {incr thread_id} {
+for {set thread_id 2} {$thread_id < 7} {incr thread_id} {
   gdb_test "t $thread_id" \
            "Switching to thread $thread_id.*" \
            "switch to thread $thread_id"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/mem-access.c ./gdb/testsuite/gdb.cell/mem-access.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/mem-access.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/mem-access.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/mem-access.exp ./gdb/testsuite/gdb.cell/mem-access.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/mem-access.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/mem-access.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -23,10 +23,10 @@ load_lib cell.exp
 
 set ppu_file "mem-access"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "mem-access-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/mem-access-spu.c ./gdb/testsuite/gdb.cell/mem-access-spu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/mem-access-spu.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/mem-access-spu.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ptype.exp ./gdb/testsuite/gdb.cell/ptype.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/ptype.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/ptype.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -22,10 +22,10 @@ load_lib cell.exp
 
 set ppu_file "break"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "break-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/registers.exp ./gdb/testsuite/gdb.cell/registers.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/registers.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/registers.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -22,10 +22,10 @@ load_lib cell.exp
 
 set ppu_file "break"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "break-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/size.c ./gdb/testsuite/gdb.cell/size.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/size.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/size.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/sizeof.exp ./gdb/testsuite/gdb.cell/sizeof.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/sizeof.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/sizeof.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -22,10 +22,10 @@ load_lib cell.exp
 
 set ppu_file "size"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "size-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/size-spu.c ./gdb/testsuite/gdb.cell/size-spu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/size-spu.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/size-spu.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/solib.exp ./gdb/testsuite/gdb.cell/solib.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/solib.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/solib.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -22,10 +22,10 @@ load_lib cell.exp
 
 set ppu_file "break"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "break-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/solib-symbol.exp ./gdb/testsuite/gdb.cell/solib-symbol.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cell/solib-symbol.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cell/solib-symbol.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -22,10 +22,10 @@ load_lib cell.exp
 
 set ppu_file "break"
 set ppu_src ${srcdir}/${subdir}/${ppu_file}.c
-set ppu_bin ${objdir}/${subdir}/${ppu_file}
+set ppu_bin [standard_output_file ${ppu_file}]
 set spu_file "break-spu"
 set spu_src ${srcdir}/${subdir}/${spu_file}.c
-set spu_bin ${objdir}/${subdir}/${spu_file}
+set spu_bin [standard_output_file ${spu_file}]
 
 if {[skip_cell_tests]} {
     return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile.c ./gdb/testsuite/gdb.compile/compile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-constvar.c ./gdb/testsuite/gdb.compile/compile-constvar.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-constvar.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-constvar.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-constvar.S ./gdb/testsuite/gdb.compile/compile-constvar.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-constvar.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-constvar.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile.exp ./gdb/testsuite/gdb.compile/compile.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 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
@@ -296,12 +296,14 @@ gdb_test "p globalvar" " = 77" "expect 7
 
 # Test reference to minimal_symbol, not (full) symbol.
 
-gdb_test_no_output "compile code globalvar = func_nodebug (75);" \
+gdb_test "compile code globalvar = func_nodebug (75);" \
+    "warning: function has unknown return type; assuming int" \
     "call func_nodebug"
 gdb_test "p globalvar" " = -75" "expect -75"
-gdb_test_no_output \
-  "compile code int (*funcp) (int) = func_nodebug; globalvar = funcp (76);" \
-  "call func_nodebug indirectly"
+gdb_test \
+    "compile code int (*funcp) (int) = func_nodebug; globalvar = funcp (76);" \
+    "warning: function has unknown return type; assuming int" \
+    "call func_nodebug indirectly"
 gdb_test "p globalvar" " = -76" "expect -76"
 
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-ifunc.c ./gdb/testsuite/gdb.compile/compile-ifunc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-ifunc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-ifunc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-ifunc.exp ./gdb/testsuite/gdb.compile/compile-ifunc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-ifunc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-ifunc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
@@ -36,9 +36,10 @@ with_test_prefix "nodebug" {
 	return -1
     }
 
-    gdb_test_no_output "compile code resultvar = gnu_ifunc (10);"
+    gdb_test "compile code resultvar = gnu_ifunc (10);" \
+	"warning: variable has unknown type; assuming int"
 
-    gdb_test "p resultvar" " = 11"
+    gdb_test "p (int) resultvar" " = 11"
 
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-mod.c ./gdb/testsuite/gdb.compile/compile-mod.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-mod.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-mod.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-nodebug.c ./gdb/testsuite/gdb.compile/compile-nodebug.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-nodebug.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-nodebug.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-ops.c ./gdb/testsuite/gdb.compile/compile-ops.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-ops.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-ops.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-ops.exp ./gdb/testsuite/gdb.compile/compile-ops.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-ops.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-ops.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-print.c ./gdb/testsuite/gdb.compile/compile-print.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-print.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-print.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-print.exp ./gdb/testsuite/gdb.compile/compile-print.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-print.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-print.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-setjmp.c ./gdb/testsuite/gdb.compile/compile-setjmp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-setjmp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-setjmp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-setjmp.exp ./gdb/testsuite/gdb.compile/compile-setjmp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-setjmp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-setjmp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-setjmp-mod.c ./gdb/testsuite/gdb.compile/compile-setjmp-mod.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-setjmp-mod.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-setjmp-mod.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-shlib.c ./gdb/testsuite/gdb.compile/compile-shlib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-shlib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-shlib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-tls.c ./gdb/testsuite/gdb.compile/compile-tls.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-tls.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-tls.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-tls.exp ./gdb/testsuite/gdb.compile/compile-tls.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.compile/compile-tls.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.compile/compile-tls.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/abstract-origin.cc ./gdb/testsuite/gdb.cp/abstract-origin.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/abstract-origin.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/abstract-origin.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/abstract-origin.exp ./gdb/testsuite/gdb.cp/abstract-origin.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/abstract-origin.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/abstract-origin.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ambiguous.exp ./gdb/testsuite/gdb.cp/ambiguous.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ambiguous.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ambiguous.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/annota2.exp ./gdb/testsuite/gdb.cp/annota2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/annota2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/annota2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1999-2017 Free Software Foundation, Inc.
+#   Copyright 1999-2018 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
@@ -29,12 +29,10 @@ if {[prepare_for_testing "failed to prep
     return -1
 }
 
-# are we on a target board? If so, don't run these tests.
-# note: this is necessary because we cannot use runto_main (which would
-# work for remote targets too) because of the different prompt we get
-# when using annotation level 2.
+# This testcase cannot use runto_main because of the different prompt
+# we get when using annotation level 2.
 #
-if [is_remote target] then {
+if ![target_can_use_run_cmd] {
     return 0
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/annota3.exp ./gdb/testsuite/gdb.cp/annota3.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/annota3.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/annota3.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 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
@@ -29,12 +29,10 @@ if {[prepare_for_testing "failed to prep
     return -1
 }
 
-# are we on a target board? If so, don't run these tests.
-# note: this is necessary because we cannot use runto_main (which would
-# work for remote targets too) because of the different prompt we get
-# when using annotation level 2.
+# This testcase cannot use runto_main because of the different prompt
+# we get when using annotation level 2.
 #
-if [is_remote target] then {
+if ![target_can_use_run_cmd] {
     return 0
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/anon-ns2.cc ./gdb/testsuite/gdb.cp/anon-ns2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/anon-ns2.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/anon-ns2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/anon-ns.cc ./gdb/testsuite/gdb.cp/anon-ns.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/anon-ns.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/anon-ns.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/anon-ns.exp ./gdb/testsuite/gdb.cp/anon-ns.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/anon-ns.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/anon-ns.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # Contributed by Red Hat, originally written by Keith Seitz.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/anon-struct.cc ./gdb/testsuite/gdb.cp/anon-struct.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/anon-struct.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/anon-struct.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/anon-struct.exp ./gdb/testsuite/gdb.cp/anon-struct.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/anon-struct.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/anon-struct.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Tests for anonymous union support.
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/anon-union.exp ./gdb/testsuite/gdb.cp/anon-union.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/anon-union.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/anon-union.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Tests for anonymous union support.
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/arg-reference.cc ./gdb/testsuite/gdb.cp/arg-reference.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/arg-reference.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/arg-reference.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/arg-reference.exp ./gdb/testsuite/gdb.cp/arg-reference.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/arg-reference.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/arg-reference.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/baseenum.cc ./gdb/testsuite/gdb.cp/baseenum.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/baseenum.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/baseenum.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2003-2017 Free Software Foundation, Inc.
+   Copyright 2003-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/baseenum.exp ./gdb/testsuite/gdb.cp/baseenum.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/baseenum.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/baseenum.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/bool.cc ./gdb/testsuite/gdb.cp/bool.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/bool.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/bool.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/bool.exp ./gdb/testsuite/gdb.cp/bool.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/bool.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/bool.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2017 Free Software Foundation, Inc.
+# Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/breakpoint.cc ./gdb/testsuite/gdb.cp/breakpoint.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/breakpoint.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/breakpoint.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Code to go along with tests in breakpoint.exp.
    
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,7 +28,7 @@ public:
     return 1; // conditional breakpoint in method
   }
 
-  int bar ()
+  void bar ()
   {
     for (int i = 0; i < 1; ++i)
       {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/breakpoint.exp ./gdb/testsuite/gdb.cp/breakpoint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/breakpoint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/breakpoint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/bs15503.cc ./gdb/testsuite/gdb.cp/bs15503.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/bs15503.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/bs15503.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1992-2017 Free Software Foundation, Inc.
+   Copyright 1992-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/bs15503.exp ./gdb/testsuite/gdb.cp/bs15503.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/bs15503.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/bs15503.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/call-c-1.c ./gdb/testsuite/gdb.cp/call-c-1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/call-c-1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/call-c-1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 2006-2017 Free Software Foundation, Inc.
+   Copyright 2006-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/call-c.cc ./gdb/testsuite/gdb.cp/call-c.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/call-c.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/call-c.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 2006-2017 Free Software Foundation, Inc.
+   Copyright 2006-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/call-c.exp ./gdb/testsuite/gdb.cp/call-c.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/call-c.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/call-c.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/casts03.cc ./gdb/testsuite/gdb.cp/casts03.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/casts03.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/casts03.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/casts.exp ./gdb/testsuite/gdb.cp/casts.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/casts.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/casts.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/chained-calls.cc ./gdb/testsuite/gdb.cp/chained-calls.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/chained-calls.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/chained-calls.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/chained-calls.exp ./gdb/testsuite/gdb.cp/chained-calls.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/chained-calls.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/chained-calls.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/class2.cc ./gdb/testsuite/gdb.cp/class2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/class2.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/class2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2003-2017 Free Software Foundation, Inc.
+   Copyright 2003-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/class2.exp ./gdb/testsuite/gdb.cp/class2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/class2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/class2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/classes.cc ./gdb/testsuite/gdb.cp/classes.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/classes.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/classes.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1993-2017 Free Software Foundation, Inc.
+   Copyright 1993-2018 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
@@ -545,6 +545,82 @@ small::method ()
   return x + 5;
 }
 
+class class_with_typedefs
+{
+public:
+  typedef int public_int;
+protected:
+  typedef int protected_int;
+private:
+  typedef int private_int;
+
+public:
+  class_with_typedefs ()
+    : public_int_ (1), protected_int_ (2), private_int_ (3) {}
+  public_int add_public (public_int a) { return a + public_int_; }
+  public_int add_all (int a)
+  { return add_public (a) + add_protected (a) + add_private (a); }
+
+protected:
+  protected_int add_protected (protected_int a) { return a + protected_int_; }
+
+private:
+  private_int add_private (private_int a) { return a + private_int_; }
+
+protected:
+  public_int public_int_;
+  protected_int protected_int_;
+  private_int private_int_;
+};
+
+class class_with_public_typedef
+{
+  int a;
+public:
+  typedef int INT;
+  INT b;
+};
+
+class class_with_protected_typedef
+{
+  int a;
+protected:
+  typedef int INT;
+  INT b;
+};
+
+class class_with_private_typedef
+{
+  int a;
+private:
+  typedef int INT;
+  INT b;
+};
+
+struct struct_with_public_typedef
+{
+  int a;
+public:
+  typedef int INT;
+  INT b;
+};
+
+struct struct_with_protected_typedef
+{
+  int a;
+protected:
+  typedef int INT;
+  INT b;
+};
+
+struct struct_with_private_typedef
+{
+  int a;
+private:
+  typedef int INT;
+  INT b;
+};
+
 void marker_reg1 () {}
 
 int
@@ -589,6 +665,19 @@ void use_methods ()
   base1 b (3);
 }
 
+struct Inner
+{
+  static Inner instance;
+};
+
+struct Outer
+{
+  Inner inner;
+  static Outer instance;
+};
+
+Inner Inner::instance;
+Outer Outer::instance;
 
 int
 main()
@@ -624,3 +713,10 @@ protected_class protected_c;
 default_private_class default_private_c;
 explicit_private_class explicit_private_c;
 mixed_protection_class mixed_protection_c;
+class_with_typedefs class_with_typedefs_c;
+class_with_public_typedef class_with_public_typedef_c;
+class_with_protected_typedef class_with_protected_typedef_c;
+class_with_private_typedef class_with_private_typedef_c;
+struct_with_public_typedef struct_with_public_typedef_s;
+struct_with_protected_typedef struct_with_protected_typedef_s;
+struct_with_private_typedef struct_with_private_typedef_s;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/classes.exp ./gdb/testsuite/gdb.cp/classes.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/classes.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/classes.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 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
@@ -316,6 +316,64 @@ proc test_ptype_class_objects {} {
 	    { field  public "int y;" }
 	    { method public "DynamicBar(int, int);" }
 	}
+
+    # Classes with typedefs of different access.
+
+    cp_test_ptype_class \
+	"class class_with_typedefs" "" "class" "class_with_typedefs" \
+	{
+	    { field protected \
+		  "class_with_typedefs::public_int public_int_;" }
+	    { field protected \
+		  "class_with_typedefs::protected_int protected_int_;" }
+	    { field protected \
+		  "class_with_typedefs::private_int private_int_;" }
+	    { method public "class_with_typedefs(void);" }
+	    { method public "class_with_typedefs::public_int add_public(class_with_typedefs::public_int);" }
+	    { method public \
+		  "class_with_typedefs::public_int add_all(int);" }
+	    { method protected "class_with_typedefs::protected_int add_protected(class_with_typedefs::protected_int);" }
+	    { method private "class_with_typedefs::private_int add_private(class_with_typedefs::private_int);" }
+	    { typedef public "typedef int public_int;" }
+	    { typedef protected "typedef int protected_int;" }
+	    { typedef private "typedef int private_int;" }
+	}
+
+    cp_test_ptype_class \
+	"class class_with_public_typedef" "" "class" \
+	"class_with_public_typedef" {
+	    { field private "int a;" }
+	    { field public "class_with_public_typedef::INT b;" }
+	    { typedef public "typedef int INT;" }
+	}
+    cp_test_ptype_class \
+	"class class_with_protected_typedef" "" "class" \
+	"class_with_protected_typedef" {
+	    { field private "int a;" }
+	    { field protected "class_with_protected_typedef::INT b;" }
+	    { typedef protected "typedef int INT;" }
+	}
+    cp_test_ptype_class \
+	"struct struct_with_protected_typedef" "" "struct" \
+	"struct_with_protected_typedef" {
+	    { field public "int a;" }
+	    { field protected "struct_with_protected_typedef::INT b;" }
+	    { typedef protected "typedef int INT;" }
+	}
+    cp_test_ptype_class \
+	"struct struct_with_private_typedef" "" "struct" \
+	"struct_with_private_typedef" {
+	    { field public "int a;" }
+	    { field private "struct_with_private_typedef::INT b;" }
+	    { typedef private "typedef int INT;" }
+	}
+
+    # For the following two cases, we cannot use cp_test_ptype_class.
+    # We need to explicitly check whether the access label was suppressed.
+    set ws {[ \t\r\n]*}
+    foreach {tag lbl} {"class" "private" "struct" "public"} {
+	gdb_test "ptype/r ${tag}_with_${lbl}_typedef" "type = $tag ${tag}_with_${lbl}_typedef \{${ws}int a;${ws}${tag}_with_${lbl}_typedef::INT b;${ws}typedef int INT;${ws}\}"
+    }
 }
 
 # Test simple access to class members.
@@ -544,6 +602,11 @@ proc test_static_members {} {
     gdb_test "print cnsi" \
 	"{x = 30, y = 40, static null = {x = 0, y = 0, static null = <same as static member of an already seen type>, static yy = {z = 5, static xx = {x = 1, y = 2, static null = <same as static member of an already seen type>, static yy = <same as static member of an already seen type>}}}, static yy = <same as static member of an already seen type>}" \
 	"print cnsi with static members"
+
+    # Another case of infinite recursion.
+    gdb_test "print Outer::instance" \
+	"{inner = {static instance = {static instance = <same as static member of an already seen type>}}, static instance = {inner = {static instance = {static instance = <same as static member of an already seen type>}}, static instance = <same as static member of an already seen type>}}" \
+	"print recursive static member"
 }
 
 proc do_tests {} {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cmpd-minsyms.cc ./gdb/testsuite/gdb.cp/cmpd-minsyms.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cmpd-minsyms.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cmpd-minsyms.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test case is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cmpd-minsyms.exp ./gdb/testsuite/gdb.cp/cmpd-minsyms.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cmpd-minsyms.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cmpd-minsyms.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # Contributed by Red Hat, originally written by Keith Seitz.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/converts.exp ./gdb/testsuite/gdb.cp/converts.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/converts.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/converts.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cpcompletion.exp ./gdb/testsuite/gdb.cp/cpcompletion.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cpcompletion.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cpcompletion.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -15,6 +15,8 @@
 
 # This file is part of the gdb testsuite.
 
+load_lib completion-support.exp
+
 # A helper procedure to test location completions restricted by
 # class.
 proc test_class_complete {class expr name matches} {
@@ -26,7 +28,7 @@ proc test_class_complete {class expr nam
     gdb_test_multiple $cmd $name {
 	"break ${class}::main" { fail "$name (saw global symbol)" }
 	$cmd { exp_continue }
-	-re "break ${class}::\[A-Za-z0-9_~\]+" {
+	-re "break ${class}::\[^\r\n\]*\r\n" {
 	    set str $expect_out(0,string)
 	    scan $str "break ${class}::%\[^(\]" method
 	    lappend seen $method
@@ -85,3 +87,43 @@ gdb_test "complete p foo1.Fo" "p foo1\\.
 
 # Test completion with an anonymous struct.
 gdb_test "complete p a.g" "p a\\.get"
+
+with_test_prefix "expression with namespace" {
+    # Before the scope operator, GDB shows all the symbols whose
+    # fully-qualified name matches the completion word.
+    test_gdb_complete_multiple "p " "Test_NS" "" {
+	"Test_NS"
+	"Test_NS::Nested"
+	"Test_NS::Nested::qux"
+	"Test_NS::bar"
+	"Test_NS::foo"
+    }
+
+    # Unlike in linespecs, tab- and complete-command completion work a
+    # bit differently when completing around the scope operator.  The
+    # matches in the tab-completion case only show the part of the
+    # symbol after the scope, since ':' is a word break character.
+
+    set tab_completion_list {
+	"Nested"
+	"Nested::qux"
+	"bar"
+	"foo"
+    }
+    test_gdb_complete_tab_multiple "p Test_NS:" ":" $tab_completion_list
+    test_gdb_complete_tab_multiple "p Test_NS::" "" $tab_completion_list
+
+    # OTOH, the complete command must show the whole command, with
+    # qualified symbol displayed as entered by the user.
+    set cmd_completion_list {
+	"Test_NS::Nested"
+	"Test_NS::Nested::qux"
+	"Test_NS::bar"
+	"Test_NS::foo"
+    }
+    test_gdb_complete_cmd_multiple "p " "Test_NS:" $cmd_completion_list
+    test_gdb_complete_cmd_multiple "p " "Test_NS::" $cmd_completion_list
+
+    # Add a disambiguating character and we get a unique completion.
+    test_gdb_complete_unique "p Test_NS::f" "p Test_NS::foo"
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cpexprs.cc ./gdb/testsuite/gdb.cp/cpexprs.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cpexprs.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cpexprs.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat, originally written by Keith Seitz.
 
@@ -270,6 +270,7 @@ public:
   operator int () const { return 21; } // base::operator int
   operator fluff* () const { return new fluff (); } // base::operator fluff*
   operator fluff** () const { return &g_fluff; } // base::operator fluff**
+  operator fluff const* const* () const { return &g_fluff; } // base::operator fluff const* const*
 };
 
 class base1 : public virtual base
@@ -448,6 +449,7 @@ test_function (int argc, char* argv[]) /
   char* str = a;
   fluff* flp = a;
   fluff** flpp = a;
+  fluff const* const* flcpcp = a;
 
   CV_f(CV::i);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cpexprs.exp ./gdb/testsuite/gdb.cp/cpexprs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cpexprs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cpexprs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # cpexprs.exp - C++ expressions tests
 #
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # Contributed by Red Hat, originally written by Keith Seitz.
 #
@@ -407,6 +407,10 @@ add {base::operator int} \
     {int (const base * const)} \
     - \
     -
+add {base::operator fluff const* const*} \
+    {const fluff * const *(const base * const)} \
+    - \
+    -
 
 # Templates
 add {tclass<char>::do_something} \
@@ -746,5 +750,17 @@ gdb_test "p CV_f(CV::i)" " = 43"
 gdb_test "p CV_f('cpexprs.cc'::CV::t)" \
     { = {int \(int\)} 0x[0-9a-f]+ <CV_f\(int\)>}
 
+# Make sure conversion operator names are canonicalized and properly
+# "spelled."
+gdb_test "p base::operator const fluff * const *" \
+    [get "base::operator fluff const* const*" print] \
+    "canonicalized conversion operator name 1"
+gdb_test "p base::operator const fluff* const*" \
+    [get "base::operator fluff const* const*" print] \
+    "canonicalized conversion operator name 2"
+gdb_test "p base::operator derived*" \
+    "There is no field named operator derived\\*" \
+    "undefined conversion operator"
+
 gdb_exit
 return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cplabel.cc ./gdb/testsuite/gdb.cp/cplabel.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cplabel.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cplabel.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cplabel.exp ./gdb/testsuite/gdb.cp/cplabel.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cplabel.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cplabel.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cplusfuncs.exp ./gdb/testsuite/gdb.cp/cplusfuncs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cplusfuncs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cplusfuncs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cp-relocate.cc ./gdb/testsuite/gdb.cp/cp-relocate.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cp-relocate.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cp-relocate.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test file is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cp-relocate.exp ./gdb/testsuite/gdb.cp/cp-relocate.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cp-relocate.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cp-relocate.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cpsizeof.cc ./gdb/testsuite/gdb.cp/cpsizeof.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cpsizeof.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cpsizeof.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cpsizeof.exp ./gdb/testsuite/gdb.cp/cpsizeof.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cpsizeof.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cpsizeof.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # sizeof() tests [c++/16675]
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cttiadd1.cc ./gdb/testsuite/gdb.cp/cttiadd1.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cttiadd1.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cttiadd1.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1998-2017 Free Software Foundation, Inc.
+   Copyright 1998-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cttiadd2.cc ./gdb/testsuite/gdb.cp/cttiadd2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cttiadd2.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cttiadd2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1998-2017 Free Software Foundation, Inc.
+   Copyright 1998-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cttiadd3.cc ./gdb/testsuite/gdb.cp/cttiadd3.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cttiadd3.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cttiadd3.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1998-2017 Free Software Foundation, Inc.
+   Copyright 1998-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cttiadd.cc ./gdb/testsuite/gdb.cp/cttiadd.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/cttiadd.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/cttiadd.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1998-2017 Free Software Foundation, Inc.
+   Copyright 1998-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ctti.exp ./gdb/testsuite/gdb.cp/ctti.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ctti.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ctti.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/debug-expr.exp ./gdb/testsuite/gdb.cp/debug-expr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/debug-expr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/debug-expr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/demangle.exp ./gdb/testsuite/gdb.cp/demangle.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/demangle.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/demangle.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2017 Free Software Foundation, Inc.
+# Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/derivation2.cc ./gdb/testsuite/gdb.cp/derivation2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/derivation2.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/derivation2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/derivation.cc ./gdb/testsuite/gdb.cp/derivation.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/derivation.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/derivation.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2003-2017 Free Software Foundation, Inc.
+   Copyright 2003-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/derivation.exp ./gdb/testsuite/gdb.cp/derivation.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/derivation.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/derivation.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/destrprint.exp ./gdb/testsuite/gdb.cp/destrprint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/destrprint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/destrprint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/dispcxx.cc ./gdb/testsuite/gdb.cp/dispcxx.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/dispcxx.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/dispcxx.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test for displays in C++.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/dispcxx.exp ./gdb/testsuite/gdb.cp/dispcxx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/dispcxx.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/dispcxx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ena-dis-br-range.cc ./gdb/testsuite/gdb.cp/ena-dis-br-range.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ena-dis-br-range.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ena-dis-br-range.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,66 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+/* Some overloaded functions to test breakpoints with multiple
+   locations.  */
+
+class foo
+{
+public:
+  static void overload (void);
+  static void overload (char);
+  static void overload (int);
+  static void overload (double);
+};
+
+void
+foo::overload ()
+{
+}
+
+void
+foo::overload (char arg)
+{
+}
+
+void
+foo::overload (int arg)
+{
+}
+
+void
+foo::overload (double arg)
+{
+}
+
+void
+marker ()
+{
+}
+
+int
+main ()
+{
+  foo::overload ();
+  foo::overload (111);
+  foo::overload ('h');
+  foo::overload (3.14);
+
+  marker ();
+
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ena-dis-br-range.exp ./gdb/testsuite/gdb.cp/ena-dis-br-range.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ena-dis-br-range.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ena-dis-br-range.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,250 @@
+# Copyright 2017-2018 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.
+
+# Test the enable/disable commands with breakpoint location ranges.
+
+# Note: more tests involving involving disable/enable commands on
+# multiple locations and breakpoints are found in
+# gdb.base/ena-dis-br.exp.
+
+if { [skip_cplus_tests] } { continue }
+
+standard_testfile .cc
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
+    return -1
+}
+
+if ![runto 'marker'] then {
+    fail "run to marker"
+    return -1
+}
+
+# Returns a buffer corresponding to what GDB replies when asking for
+# 'info breakpoint'.  The parameters are all the existing breakpoints
+# enabled/disable value: 'n' or 'y'.
+
+proc make_info_breakpoint_reply_re {b1 b2 b21 b22 b23 b24} {
+    set ws "\[\t \]+"
+    return [multi_line \
+		"Num     Type${ws}Disp Enb Address${ws}What.*" \
+		"1${ws}breakpoint     keep ${b1}${ws}.* in marker\\(\\) at .*" \
+		"${ws}breakpoint already hit 1 time.*" \
+		"2${ws}breakpoint${ws}keep${ws}${b2}${ws}<MULTIPLE>.*" \
+		"2.1${ws}${b21}.*" \
+		"2.2${ws}${b22}.*" \
+		"2.3${ws}${b23}.*" \
+		"2.4${ws}${b24}.*" \
+	       ]
+}
+
+gdb_test "break foo::overload" \
+    "Breakpoint \[0-9\]+ at $hex: foo::overload. .4 locations." \
+    "set breakpoint at overload"
+
+gdb_test "info break" [make_info_breakpoint_reply_re y y y y y y] \
+    "breakpoint info"
+
+# Test the enable/disable commands, and check the enable/disable state
+# of the breakpoints/locations in the "info break" output.  CMD is the
+# actual disable/enable command. The bNN parameters are the same as
+# make_info_breakpoint_reply_re's.
+proc test_enable_disable {cmd b1 b2 b21 b22 b23 b24} {
+    gdb_test_no_output $cmd
+
+    set re [make_info_breakpoint_reply_re $b1 $b2 $b21 $b22 $b23 $b24]
+    gdb_test "info break" $re "breakpoint info $cmd"
+}
+
+# Check that we can disable/enable a breakpoint with a single
+# location.
+test_enable_disable "disable 1" n y y y y y
+test_enable_disable "enable  1" y y y y y y
+
+# Check that we can disable/disable a breakpoint with multiple
+# locations.
+test_enable_disable "disable 2" y n y y y y
+test_enable_disable "enable  2" y y y y y y
+
+# Check that we can disable/disable a range of breakpoints.
+test_enable_disable "disable 1-2" n n y y y y
+test_enable_disable "enable 1-2"  y y y y y y
+
+# Check that we can disable/disable a list of breakpoints.
+test_enable_disable "disable 1 2" n n y y y y
+test_enable_disable "enable 1 2"  y y y y y y
+
+# Check that we can disable/enable a single location breakpoint.
+test_enable_disable "disable 2.2" y y y n y y
+test_enable_disable "enable  2.2" y y y y y y
+
+# Check that we can disable/enable a range of breakpoint locations.
+test_enable_disable "disable 2.2-3" y y y n n y
+test_enable_disable "enable  2.2-3" y y y y y y
+
+# Check that we can disable/enable a breakpoint location range with
+# START==END.
+test_enable_disable "disable 2.2-2" y y y n y y
+test_enable_disable "enable  2.2-2" y y y y y y
+
+# Check that we can disable/disable a list of breakpoints that
+# includes some elements with location ranges and others without.
+test_enable_disable "disable 1 2.1 2.3-4" n y n y n n
+test_enable_disable "enable  1 2.1 2.3-4" y y y y y y
+
+# Check that we can disable a location breakpoint range with max >
+# existing breakpoint location.
+gdb_test "disable 2.3-5" "Bad breakpoint location number '5'" \
+    "disable location breakpoint range with max > existing"
+
+gdb_test "info break" [make_info_breakpoint_reply_re y y y y n n] \
+    "breakpoint info disable 2.3 to 2.5"
+
+# Check that we can enable a location breakpoint range with max >
+# existing breakpoint location.
+gdb_test "enable 2.3-5" "Bad breakpoint location number '5'" \
+    "enable location breakpoint range with max > existing"
+
+gdb_test "info break" [make_info_breakpoint_reply_re y y y y y y] \
+    "breakpoint info enable 2.3 to 2.5"
+
+# Check that disabling an inverted breakpoint location range does not
+# work.
+gdb_test "disable 2.3-2" "Inverted breakpoint location range at '3-2'"
+
+gdb_test "info break" [make_info_breakpoint_reply_re y y y y y y] \
+    "breakpoint info disable 2.3-2"
+
+# Check that disabling an invalid breakpoint location range does not
+# cause unexpected behavior.
+gdb_test "disable 2.6-7" "Bad breakpoint location number '6'" \
+    "disable an unvalid location breakpoint range"
+
+gdb_test "info break" [make_info_breakpoint_reply_re y y y y y y] \
+    "breakpoint info disable 2.6-7"
+
+# Check that disabling an invalid breakpoint location range does not
+# cause trouble.
+gdb_test "disable 2.8-6" "Inverted breakpoint location range at '8-6'"
+
+gdb_test "info break" [make_info_breakpoint_reply_re y y y y y y] \
+    "breakpoint info disable 2.8-6"
+
+# Check that invalid/open ranges are handled correctly.
+with_test_prefix "open range" {
+    gdb_test "disable -" "Bad breakpoint number at or near: '-'"
+    gdb_test "disable -1" "Negative breakpoint number '-1'"
+    gdb_test "disable 1-" "Bad breakpoint number at or near: '1-'"
+    gdb_test "disable 1.-2" "Negative breakpoint location number '-2'"
+    gdb_test "disable 1.2-" "Bad breakpoint location number at or near: '2-'"
+    gdb_test "disable 1.-2-3" "Negative breakpoint location number '-2'"
+    gdb_test "disable 1-2-3" "Bad breakpoint number '2-3'"
+}
+
+with_test_prefix "dangling period" {
+    gdb_test "disable 2." "Bad breakpoint number at or near: '2.'"
+    gdb_test "disable .2" "Bad breakpoint number at or near: '.2'"
+    gdb_test "disable 2.3.4" "Bad breakpoint location number '3.4'"
+}
+
+# Check that 0s are handled correctly.
+with_test_prefix "zero" {
+    gdb_test "disable 0" "Bad breakpoint number '0'"
+    gdb_test "disable 0.0" "Bad breakpoint number '0'"
+    gdb_test "disable 0.1" "Bad breakpoint number '0'"
+    gdb_test "disable 0.1-2" "Bad breakpoint number '0'"
+    gdb_test "disable 2.0" "Bad breakpoint location number '0'"
+    gdb_test "disable 2.0-0" "Bad breakpoint location number '0'"
+    gdb_test "disable 2.0-1" "Bad breakpoint location number '0'"
+    gdb_test "disable 2.1-0" "Bad breakpoint location number '0'"
+}
+
+# Test "disable BPLIST" with an invalid breakpoint/location BPLIST.
+# PREFIX and SUFFIX are concatenated to form BPLIST.  The invalid part
+# is always in SUFFIX.
+
+proc disable_invalid {prefix suffix} {
+    set bad_re [string_to_regexp $suffix]
+
+    if {$prefix == ""} {
+	gdb_test \
+	    "disable $suffix" \
+	    "Bad breakpoint number '${bad_re}'"
+    } else {
+	gdb_test \
+	    "disable ${prefix}$suffix" \
+	    "Bad breakpoint location number '${bad_re}'"
+    }
+}
+
+# Like disable_invalid, but expects an "inverted range" error.
+
+proc disable_inverted {prefix suffix} {
+    set bad_re [string_to_regexp $suffix]
+
+    if {$prefix == ""} {
+	gdb_test \
+	    "disable $suffix" \
+	    "Inverted breakpoint range at '${bad_re}'"
+    } else {
+	gdb_test \
+	    "disable ${prefix}$suffix" \
+	    "Inverted breakpoint location range at '${bad_re}'"
+    }
+}
+
+# Like disable_invalid, but expects a "negative number" error.
+
+proc disable_negative {prefix suffix} {
+    set bad_re [string_to_regexp $suffix]
+
+    if {$prefix == ""} {
+	gdb_test \
+	    "disable $suffix" \
+	    "Negative breakpoint number '${bad_re}'"
+    } else {
+	gdb_test \
+	    "disable ${prefix}$suffix" \
+	    "Negative breakpoint location number '${bad_re}'"
+    }
+}
+
+with_test_prefix "bad numbers" {
+    gdb_test "p \$zero = 0" " = 0"
+    gdb_test "p \$one = 1" " = 1"
+    gdb_test "p \$two = 2" " = 2"
+    gdb_test "p \$minus_one = -1" " = -1"
+    foreach prefix {"" "1." "$one."} {
+	set prefix_re [string_to_regexp $prefix]
+
+	disable_invalid $prefix "foo"
+	disable_invalid $prefix "1foo"
+	disable_invalid $prefix "foo1"
+
+	disable_inverted $prefix "2-1"
+	disable_inverted $prefix "2-\$one"
+	disable_inverted $prefix "\$two-1"
+	disable_inverted $prefix "\$two-\$one"
+
+	disable_negative $prefix "-1"
+	disable_negative $prefix "-\$one"
+	disable_negative $prefix "\$minus_one"
+    }
+}
+
+gdb_test "info break" [make_info_breakpoint_reply_re y y y y y y] \
+    "breakpoint info after invalids"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/enum-class.cc ./gdb/testsuite/gdb.cp/enum-class.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/enum-class.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/enum-class.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/enum-class.exp ./gdb/testsuite/gdb.cp/enum-class.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/enum-class.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/enum-class.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/exception.cc ./gdb/testsuite/gdb.cp/exception.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/exception.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/exception.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1997-2017 Free Software Foundation, Inc.
+   Copyright 1997-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/exception.exp ./gdb/testsuite/gdb.cp/exception.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/exception.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/exception.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/exceptprint.cc ./gdb/testsuite/gdb.cp/exceptprint.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/exceptprint.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/exceptprint.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/exceptprint.exp ./gdb/testsuite/gdb.cp/exceptprint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/exceptprint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/exceptprint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/expand-psymtabs-cxx.cc ./gdb/testsuite/gdb.cp/expand-psymtabs-cxx.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/expand-psymtabs-cxx.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/expand-psymtabs-cxx.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/expand-psymtabs-cxx.exp ./gdb/testsuite/gdb.cp/expand-psymtabs-cxx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/expand-psymtabs-cxx.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/expand-psymtabs-cxx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
@@ -11,8 +11,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 # This file is part of the gdb testsuite.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/expand-sals.cc ./gdb/testsuite/gdb.cp/expand-sals.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/expand-sals.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/expand-sals.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/expand-sals.exp ./gdb/testsuite/gdb.cp/expand-sals.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/expand-sals.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/expand-sals.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/extern-c.cc ./gdb/testsuite/gdb.cp/extern-c.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/extern-c.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/extern-c.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/extern-c.exp ./gdb/testsuite/gdb.cp/extern-c.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/extern-c.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/extern-c.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/filename.cc ./gdb/testsuite/gdb.cp/filename.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/filename.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/filename.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/filename.exp ./gdb/testsuite/gdb.cp/filename.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/filename.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/filename.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/formatted-ref.cc ./gdb/testsuite/gdb.cp/formatted-ref.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/formatted-ref.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/formatted-ref.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2007-2017 Free Software Foundation, Inc.
+/* Copyright 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/formatted-ref.exp ./gdb/testsuite/gdb.cp/formatted-ref.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/formatted-ref.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/formatted-ref.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/fpointer.exp ./gdb/testsuite/gdb.cp/fpointer.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/fpointer.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/fpointer.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/gdb1355.exp ./gdb/testsuite/gdb.cp/gdb1355.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/gdb1355.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/gdb1355.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/gdb2384-base.cc ./gdb/testsuite/gdb.cp/gdb2384-base.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/gdb2384-base.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/gdb2384-base.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/gdb2384-base.h ./gdb/testsuite/gdb.cp/gdb2384-base.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/gdb2384-base.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/gdb2384-base.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/gdb2384.cc ./gdb/testsuite/gdb.cp/gdb2384.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/gdb2384.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/gdb2384.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/gdb2384.exp ./gdb/testsuite/gdb.cp/gdb2384.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/gdb2384.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/gdb2384.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/gdb2495.cc ./gdb/testsuite/gdb.cp/gdb2495.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/gdb2495.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/gdb2495.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/gdb2495.exp ./gdb/testsuite/gdb.cp/gdb2495.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/gdb2495.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/gdb2495.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/hang.exp ./gdb/testsuite/gdb.cp/hang.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/hang.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/hang.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2002-2017 Free Software Foundation, Inc.
+#   Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/impl-this.cc ./gdb/testsuite/gdb.cp/impl-this.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/impl-this.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/impl-this.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/impl-this.exp ./gdb/testsuite/gdb.cp/impl-this.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/impl-this.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/impl-this.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/includefile ./gdb/testsuite/gdb.cp/includefile
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/includefile	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/includefile	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/infcall-dlopen.cc ./gdb/testsuite/gdb.cp/infcall-dlopen.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/infcall-dlopen.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/infcall-dlopen.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/infcall-dlopen.exp ./gdb/testsuite/gdb.cp/infcall-dlopen.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/infcall-dlopen.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/infcall-dlopen.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/infcall-dlopen-lib.cc ./gdb/testsuite/gdb.cp/infcall-dlopen-lib.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/infcall-dlopen-lib.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/infcall-dlopen-lib.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/inherit.exp ./gdb/testsuite/gdb.cp/inherit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/inherit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/inherit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/iostream.cc ./gdb/testsuite/gdb.cp/iostream.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/iostream.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/iostream.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Code to go along with tests in rtti.exp.
    
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/iostream.exp ./gdb/testsuite/gdb.cp/iostream.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/iostream.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/iostream.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/koenig.exp ./gdb/testsuite/gdb.cp/koenig.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/koenig.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/koenig.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/local.exp ./gdb/testsuite/gdb.cp/local.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/local.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/local.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/local-static.c ./gdb/testsuite/gdb.cp/local-static.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/local-static.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/local-static.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,170 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2002-2018 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/>.  */
+
+struct aggregate
+{
+  int i1;
+  int i2;
+  int i3;
+};
+
+void keepalive_float (double *var) { }
+void keepalive_int (int *var) { }
+void keepalive_aggregate (struct aggregate *var) { }
+
+#define PREFIXIFY(PREFIX, VAR)			\
+  PREFIX ## _ ## VAR
+
+#define DEF_STATICS(PREFIX)						\
+  static int PREFIXIFY(PREFIX, s_var_int) = 4;				\
+  static double PREFIXIFY(PREFIX, s_var_float) = 3.14f;			\
+  static struct aggregate PREFIXIFY(PREFIX, s_var_aggregate)		\
+    = { 1, 2, 3 };							\
+									\
+  keepalive_int (&PREFIXIFY(PREFIX, s_var_int));			\
+  keepalive_float (&PREFIXIFY(PREFIX, s_var_float));			\
+  keepalive_aggregate (&PREFIXIFY(PREFIX, s_var_aggregate));
+
+#ifdef __cplusplus
+
+struct S
+{
+  void inline_method ()
+  {
+    DEF_STATICS (S_IM);
+  }
+  static void static_inline_method ()
+  {
+    DEF_STATICS (S_SIM);
+  }
+
+  void method ();
+  void method () const;
+  void method () volatile;
+  void method () volatile const;
+
+  static void static_method ();
+};
+
+S s;
+const S c_s = {};
+volatile S v_s = {};
+const volatile S cv_s = {};
+
+void
+S::method ()
+{
+  DEF_STATICS (S_M);
+}
+
+void
+S::method () const
+{
+  DEF_STATICS (S_M_C);
+}
+
+void
+S::method () volatile
+{
+  DEF_STATICS (S_M_V);
+}
+
+void
+S::method () const volatile
+{
+  DEF_STATICS (S_M_CV);
+}
+
+void
+S::static_method ()
+{
+  DEF_STATICS (S_SM);
+}
+
+template <typename T>
+struct S2
+{
+  void method ();
+  static void static_method ();
+
+  void inline_method ()
+  {
+    DEF_STATICS (S2_IM);
+  }
+
+  static void static_inline_method ()
+  {
+    DEF_STATICS (S2_SIM);
+  }
+};
+
+template<typename T>
+void
+S2<T>::method ()
+{
+  DEF_STATICS (S2_M);
+}
+
+template<typename T>
+void
+S2<T>::static_method ()
+{
+  DEF_STATICS (S2_SM);
+}
+
+S2<int> s2;
+
+#endif
+
+void
+free_func (void)
+{
+  DEF_STATICS (FF);
+}
+
+static inline void
+free_inline_func (void)
+{
+  DEF_STATICS (FIF);
+}
+
+int
+main ()
+{
+  for (int i = 0; i < 1000; i++)
+    {
+      free_func ();
+      free_inline_func ();
+
+#ifdef __cplusplus
+      s.method ();
+      c_s.method ();
+      v_s.method ();
+      cv_s.method ();
+      s.inline_method ();
+      S::static_method ();
+      S::static_inline_method ();
+
+      s2.method ();
+      s2.inline_method ();
+      S2<int>::static_method ();
+      S2<int>::static_inline_method ();
+#endif
+    }
+
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/local-static.cc ./gdb/testsuite/gdb.cp/local-static.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/local-static.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/local-static.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1 @@
+#include "local-static.c"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/local-static.exp ./gdb/testsuite/gdb.cp/local-static.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/local-static.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/local-static.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,241 @@
+# Copyright 2017-2018 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/>.
+
+# Tests for function local static variables, both C and C++.
+
+# This file is part of the gdb testsuite.
+
+standard_testfile .c
+
+# A few expected errors.
+set syntax_re "A syntax error in expression, near.*"
+set cannot_resolve_re "Cannot resolve method S::method to any overloaded instance"
+
+# Build an "Cannot resolve method ..." expected error string for
+# method METH.
+#
+proc cannot_resolve {meth} {
+    return "Cannot resolve method $meth to any overloaded instance"
+}
+
+# A list of scopes that have the static variables that we want to
+# print.  Each entry has, in order, the scope/function name, and the
+# prefix used by the static variables.  The prefix exists both to make
+# it easier to debug the test if something goes wrong, and, to make
+# sure that printing the static local of one method overload doesn't
+# find the variables of the wrong overload.
+#
+# While at it, we also try printing each scope without the static
+# local, to check that the parse copes with cv overloads without
+# quoting.  That's what the third and forth columns are for.  Note
+# that printing "func()" is different from "func(void)".  The former
+# is an inferior function call, while the latter is a reference to the
+# function.
+
+     #SCOPE				#PREFIX         #PRINT-SCOPE-QUOTED
+							#PRINT-SCOPE-UNQUOTED (opt)
+set cxx_scopes_list {
+    {"S::method()"			"S_M"		{= \\{void \\(S \\* const\\)\\} $hex <S::method\\(\\)>}
+							{[cannot_resolve "S::method"]}}
+
+    {"S::method() const"		"S_M_C"		{= \\{void \\(const S \\* const\\)\\} $hex <S::method\\(\\) const>}
+							$syntax_re}
+
+    {"S::method() volatile"		"S_M_V"		{= \\{void \\(volatile S \\* const\\)\\} $hex <S::method\\(\\) volatile>}
+							$syntax_re}
+
+    {"S::method() const volatile"	"S_M_CV"	{= \\{void \\(const volatile S \\* const\\)\\} $hex <S::method\\(\\) const volatile>}
+							$syntax_re}
+
+    {"S::method() volatile const"	"S_M_CV"	{= \\{void \\(const volatile S \\* const\\)\\} $hex <S::method\\(\\) const volatile>}
+							$syntax_re}
+
+    {"S::method(void)"			"S_M"		{= \\{void \\(S \\* const\\)\\} $hex <S::method\\(\\)>}}
+    {"S::method(void) const"		"S_M_C"		{= \\{void \\(const S \\* const\\)\\} $hex <S::method\\(\\) const>}}
+    {"S::method(void) volatile"		"S_M_V"		{= \\{void \\(volatile S \\* const\\)\\} $hex <S::method\\(\\) volatile>}}
+    {"S::method(void) const volatile"	"S_M_CV"	{= \\{void \\(const volatile S \\* const\\)\\} $hex <S::method\\(\\) const volatile>}}
+    {"S::method(void) volatile const"	"S_M_CV"	{= \\{void \\(const volatile S \\* const\\)\\} $hex <S::method\\(\\) const volatile>}}
+
+    {"S::static_method()"		"S_SM"		{= \\{void \\(void\\)\\} $hex <S::static_method\\(\\)>}
+							"void"}
+
+    {"S::static_method(void)"		"S_SM"		{= \\{void \\(void\\)\\} $hex <S::static_method\\(\\)>}}
+
+    {"S::inline_method()"		"S_IM"		{= \\{void \\(S \\* const\\)\\} $hex <S::inline_method\\(\\)>}
+							{[cannot_resolve "S::inline_method"]}}
+
+    {"S::inline_method(void)"		"S_IM"		{= \\{void \\(S \\* const\\)\\} $hex <S::inline_method\\(\\)>}}
+
+    {"S::static_inline_method()"	"S_SIM"		{= \\{void \\(void\\)\\} $hex <S::static_inline_method\\(\\)>}
+							"void"}
+
+    {"S::static_inline_method(void)"	"S_SIM"		{= \\{void \\(void\\)\\} $hex <S::static_inline_method\\(\\)>}}
+
+    {"S2<int>::method()"		"S2_M"		{= \\{void \\(S2<int> \\* const\\)\\} $hex <S2<int>::method\\(\\)>}
+							{[cannot_resolve "S2<int>::method"]}}
+
+    {"S2<int>::static_method()"		"S2_SM"		{= \\{void \\(void\\)\\} $hex <S2<int>::static_method\\(\\)>}
+							"void"}
+
+    {"S2<int>::inline_method()"		"S2_IM"		{= \\{void \\(S2<int> \\* const\\)\\} $hex <S2<int>::inline_method\\(\\)>}
+							{[cannot_resolve "S2<int>::inline_method"]}}
+
+    {"S2<int>::static_inline_method()"	"S2_SIM"	{= \\{void \\(void\\)\\} $hex <S2<int>::static_inline_method\\(\\)>}
+							"void"}
+
+    {"free_func"			"FF"		{= \\{void \\(void\\)\\} $hex <free_func\\(\\)>}}
+
+    {"free_func()"			"FF"		{= \\{void \\(void\\)\\} $hex <free_func\\(\\)>}
+							"void"}
+
+    {"free_func(void)"			"FF"		{= \\{void \\(void\\)\\} $hex <free_func\\(\\)>}}
+
+    {"free_inline_func()"		"FIF"		{= \\{void \\(void\\)\\} $hex <free_inline_func\\(\\)>}
+							"void"}
+
+    {"free_inline_func(void)"		"FIF"		{= \\{void \\(void\\)\\} $hex <free_inline_func\\(\\)>}}
+}
+
+set c_scopes_list {
+    {"free_func"			"FF"		{= \\{void \\(void\\)\\} $hex <free_func>}}
+    {"free_inline_func"			"FIF"		{= \\{void \\(void\\)\\} $hex <free_inline_func>}}
+}
+
+# A list of all the static varibles defined in each scope.  The first
+# column is the name of the variable, without the prefix, and the
+# second column is a regex matching what printing the variable should
+# output.
+
+     #VAR		#PRINT
+set vars_list {
+    {"s_var_int"	" = 4"}
+    {"s_var_float"	" = 3.14.*"}
+    {"s_var_aggregate"	" = \\{i1 = 1, i2 = 2, i3 = 3\\}"}
+}
+
+proc do_test {lang} {
+    global c_scopes_list
+    global cxx_scopes_list
+    global vars_list
+    global srcfile testfile
+
+    set options {debug}
+
+    if {$lang == "c++"} {
+	if { [skip_cplus_tests] } {
+	    return
+	}
+	lappend options $lang
+	set src ${srcfile}c
+    } else {
+	set src ${srcfile}
+    }
+
+    if {[prepare_for_testing "failed to prepare" $testfile-$lang \
+	     [list $src] $options]} {
+	return -1
+    }
+
+    if ![runto_main] then {
+	fail "couldn't run to breakpoint"
+	return
+    }
+
+    gdb_test "show language" " currently [string_to_regexp $lang]\"\\."
+
+    if {$lang == "c"} {
+	set scopes_list $c_scopes_list
+    } else {
+	set scopes_list $cxx_scopes_list
+    }
+
+    # Print each scope/function using these syntaxes:
+    #
+    #  "(gdb) p 'S::method() const'"    # quoted
+    #  "(gdb) p S::method() const"      # unquoted
+    #
+    foreach scope_line $scopes_list  {
+	set scope [lindex $scope_line 0]
+
+	set print_quoted_re [lindex $scope_line 2]
+	set print_quoted_re [uplevel 1 "subst -nobackslashes -nocommands \"$print_quoted_re\""]
+
+	set print_unquoted_re [lindex $scope_line 3]
+	set print_unquoted_re [uplevel 1 "subst -nobackslashes -nocommands \"$print_unquoted_re\""]
+
+	gdb_test "print '${scope}'" $print_quoted_re
+
+	if {$print_unquoted_re != ""} {
+	    gdb_test "print ${scope}" $print_unquoted_re
+	} else {
+	    gdb_test "print ${scope}" $print_quoted_re
+	}
+    }
+
+    # Print each variable using these syntaxes:
+    #
+    #  'func()'::var
+    #  func()::var
+    #  'func()::var'
+    #
+    # In C++, the latter case makes sure that symbol lookup finds the
+    # debug symbol instead of the minimal symbol with that exact same
+    # name.
+
+    foreach scope_line $scopes_list  {
+	set scope [lindex $scope_line 0]
+	set var_prefix [lindex $scope_line 1]
+	foreach var_line $vars_list {
+	    set var [lindex $var_line 0]
+	    set print_re [lindex $var_line 1]
+
+	    gdb_test "print '${scope}'::${var_prefix}_${var}" $print_re
+	    gdb_test "print ${scope}::${var_prefix}_${var}" $print_re
+
+	    set sym "${scope}::${var_prefix}_${var}"
+	    if {$lang == "c++"} {
+		gdb_test "print '${sym}'" $print_re
+	    } else {
+		gdb_test "print '${sym}'" "No symbol \"$sym\" in current context\\."
+	    }
+	}
+    }
+
+    # Now run to each function, and print its variables using the
+    # localy-visible name.
+    foreach scope_line $scopes_list {
+	set scope [lindex $scope_line 0]
+	set var_prefix [lindex $scope_line 1]
+
+	with_test_prefix "$scope" {
+	    delete_breakpoints
+	    gdb_breakpoint "$scope"
+	    gdb_continue_to_breakpoint "$scope"
+
+	    foreach var_line $vars_list {
+		set var [lindex $var_line 0]
+		set print_re [lindex $var_line 1]
+
+		gdb_test "print ${var_prefix}_${var}" $print_re
+	    }
+	}
+    }
+}
+
+foreach lang {"c" "c++"} {
+    with_test_prefix $lang {
+	do_test $lang
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/maint.exp ./gdb/testsuite/gdb.cp/maint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/maint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/maint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/mb-ctor.exp ./gdb/testsuite/gdb.cp/mb-ctor.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/mb-ctor.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/mb-ctor.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/mb-inline1.cc ./gdb/testsuite/gdb.cp/mb-inline1.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/mb-inline1.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/mb-inline1.cc	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
 
    This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/mb-inline2.cc ./gdb/testsuite/gdb.cp/mb-inline2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/mb-inline2.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/mb-inline2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/mb-inline.exp ./gdb/testsuite/gdb.cp/mb-inline.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/mb-inline.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/mb-inline.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/mb-inline.h ./gdb/testsuite/gdb.cp/mb-inline.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/mb-inline.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/mb-inline.h	2018-01-09 02:04:57.000000000 +0000
@@ -4,7 +4,7 @@
 
    This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/mb-templates.exp ./gdb/testsuite/gdb.cp/mb-templates.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/mb-templates.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/mb-templates.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/m-data.exp ./gdb/testsuite/gdb.cp/m-data.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/m-data.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/m-data.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/member-name.cc ./gdb/testsuite/gdb.cp/member-name.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/member-name.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/member-name.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2003-2017 Free Software Foundation, Inc.
+   Copyright 2003-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/member-name.exp ./gdb/testsuite/gdb.cp/member-name.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/member-name.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/member-name.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/member-ptr.cc ./gdb/testsuite/gdb.cp/member-ptr.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/member-ptr.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/member-ptr.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1998-2017 Free Software Foundation, Inc.
+   Copyright 1998-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/member-ptr.exp ./gdb/testsuite/gdb.cp/member-ptr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/member-ptr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/member-ptr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This file is part of the gdb testsuite
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/method2.exp ./gdb/testsuite/gdb.cp/method2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/method2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/method2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/method.exp ./gdb/testsuite/gdb.cp/method.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/method.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/method.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/meth-typedefs.cc ./gdb/testsuite/gdb.cp/meth-typedefs.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/meth-typedefs.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/meth-typedefs.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/meth-typedefs.exp ./gdb/testsuite/gdb.cp/meth-typedefs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/meth-typedefs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/meth-typedefs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # Contributed by Red Hat, originally written by Keith Seitz.
 #
@@ -145,15 +145,42 @@ foreach test $methods {
     set func [lindex $test 0]
     set result [lindex $test 1]
 
-    gdb_test "list $func" $result
-    gdb_test "list '$func'" $result
-    if {[gdb_breakpoint $func]} {
-      pass "break $func"
-    }
-    if {[gdb_breakpoint '$func']} {
-      pass "break '$func'"
+    gdb_test "list -qualified $func" $result
+    gdb_test "list -qualified '$func'" $result
+    if {[gdb_breakpoint "-qualified $func"]} {
+      pass "break -qualified $func"
+    }
+    if {[gdb_breakpoint "-qualified '$func'"]} {
+      pass "break -qualified '$func'"
     }
 }
 
+# The tests above use -qualified to explicitly pick the one "test"
+# symbol each test cares about.  Now check that both "break test(..)"
+# and "list test(..)" without -qualified find "test(..)" in all the 3
+# scopes that have the this particular overload.
+set func "test(aenum, astruct const&, aunion const***)"
+set func_re "test\\(anon_enum, anon_struct const&, anon_union const\\*\\*\\*\\)"
+set line1 [gdb_get_line_number " A::FOO::$func"]
+set line2 [gdb_get_line_number " B::$func"]
+set line3 [gdb_get_line_number " $func"]
+
+foreach f [list "$func" "'$func'"] {
+    set any "\[^\r\n\]*"
+    gdb_test \
+	"list $f" \
+	[multi_line \
+	     "file: \".*$srcfile\", line number: $line1, symbol: \"A::foo::$func_re\"" \
+	     "$line1${any}A::FOO::test${any}" \
+	     "file: \".*$srcfile\", line number: $line2, symbol: \"B::$func_re\"" \
+	     "$line2${any}B::test${any}" \
+	     "file: \".*$srcfile\", line number: $line3, symbol: \"$func_re\"" \
+	     "$line3${any}// test${any}"] \
+	"list $f"
+
+    delete_breakpoints
+    gdb_test "break $f" "\\(3 locations\\)"
+}
+
 gdb_exit
 return 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/minsym-fallback.cc ./gdb/testsuite/gdb.cp/minsym-fallback.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/minsym-fallback.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/minsym-fallback.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/minsym-fallback.exp ./gdb/testsuite/gdb.cp/minsym-fallback.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/minsym-fallback.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/minsym-fallback.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/minsym-fallback.h ./gdb/testsuite/gdb.cp/minsym-fallback.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/minsym-fallback.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/minsym-fallback.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/minsym-fallback-main.cc ./gdb/testsuite/gdb.cp/minsym-fallback-main.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/minsym-fallback-main.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/minsym-fallback-main.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/misc.cc ./gdb/testsuite/gdb.cp/misc.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/misc.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/misc.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1993-2017 Free Software Foundation, Inc.
+   Copyright 1993-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/misc.exp ./gdb/testsuite/gdb.cp/misc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/misc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/misc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/m-static.exp ./gdb/testsuite/gdb.cp/m-static.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/m-static.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/m-static.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 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
@@ -52,11 +52,6 @@ gdb_continue_to_breakpoint "end of const
 
 # One.
 
-# simple object, static const int, accessing via 'class::method::variable'
-# Regression test for PR c++/15203 and PR c++/15210
-gdb_test "print 'gnu_obj_1::method()::sintvar'" "\\$\[0-9\]+ = 4" \
-    "simple object, static const int, accessing via 'class::method::variable"
-
 # simple object, static const bool
 gdb_test "print test1.test" "\\$\[0-9\]* = true" "simple object, static const bool"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/namelessclass.cc ./gdb/testsuite/gdb.cp/namelessclass.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/namelessclass.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/namelessclass.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/namelessclass.exp ./gdb/testsuite/gdb.cp/namelessclass.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/namelessclass.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/namelessclass.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/namelessclass.S ./gdb/testsuite/gdb.cp/namelessclass.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/namelessclass.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/namelessclass.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/namespace1.cc ./gdb/testsuite/gdb.cp/namespace1.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/namespace1.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/namespace1.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2003-2017 Free Software Foundation, Inc.
+/* Copyright 2003-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/namespace-enum.exp ./gdb/testsuite/gdb.cp/namespace-enum.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/namespace-enum.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/namespace-enum.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/namespace.exp ./gdb/testsuite/gdb.cp/namespace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/namespace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/namespace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 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
@@ -120,7 +120,7 @@ gdb_test "break AAA::xyzq" \
 
 # Break on a function in the global namespace.
 
-gdb_test "break ::ensureOtherRefs" \
+gdb_test "break -qualified ::ensureOtherRefs" \
     "Breakpoint.*at $hex: file.*$srcfile2, line $decimal\\."
 
 # Call a function in a nested namespace
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/namespace-nested-import.exp ./gdb/testsuite/gdb.cp/namespace-nested-import.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/namespace-nested-import.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/namespace-nested-import.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nested-types.cc ./gdb/testsuite/gdb.cp/nested-types.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nested-types.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/nested-types.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,628 @@
+/* Code in this file is generated.  -*- buffer-read-only: t -*- vi:set ro:
+   See the procedure `make_source' in nested-types.exp.  */
+
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+struct S10 {
+  enum E10 {A10, B10, C10};
+  union U10 {
+    int a;
+    char c;
+  };
+
+  int i10;
+  E10 e10;
+  U10 u10;
+
+  struct S11 {
+    enum E11 {A11, B11, C11};
+    union U11 {
+      int a;
+      char c;
+    };
+
+    int i11;
+    E11 e11;
+    U11 u11;
+
+    struct S12 {
+      enum E12 {A12, B12, C12};
+      union U12 {
+        int a;
+        char c;
+      };
+
+      int i12;
+      E12 e12;
+      U12 u12;
+
+      struct S13 {
+        enum E13 {A13, B13, C13};
+        union U13 {
+          int a;
+          char c;
+        };
+
+        int i13;
+        E13 e13;
+        U13 u13;
+
+        struct S14 {
+          enum E14 {A14, B14, C14};
+          union U14 {
+            int a;
+            char c;
+          };
+
+          int i14;
+          E14 e14;
+          U14 u14;
+
+          struct S15 {
+            enum E15 {A15, B15, C15};
+            union U15 {
+              int a;
+              char c;
+            };
+
+            int i15;
+            E15 e15;
+            U15 u15;
+
+            struct S16 {
+              enum E16 {A16, B16, C16};
+              union U16 {
+                int a;
+                char c;
+              };
+
+              int i16;
+              E16 e16;
+              U16 u16;
+
+              struct S17 {
+                enum E17 {A17, B17, C17};
+                union U17 {
+                  int a;
+                  char c;
+                };
+
+                int i17;
+                E17 e17;
+                U17 u17;
+
+                struct S18 {
+                  enum E18 {A18, B18, C18};
+                  union U18 {
+                    int a;
+                    char c;
+                  };
+
+                  int i18;
+                  E18 e18;
+                  U18 u18;
+
+                  struct S19 {
+                    enum E19 {A19, B19, C19};
+                    union U19 {
+                      int a;
+                      char c;
+                    };
+
+                    int i19;
+                    E19 e19;
+                    U19 u19;
+
+                  };
+                };
+              };
+            };
+          };
+        };
+      };
+    };
+  };
+  struct S21 {
+    enum E21 {A21, B21, C21};
+    union U21 {
+      int a;
+      char c;
+    };
+
+    int i21;
+    E21 e21;
+    U21 u21;
+
+    struct S22 {
+      enum E22 {A22, B22, C22};
+      union U22 {
+        int a;
+        char c;
+      };
+
+      int i22;
+      E22 e22;
+      U22 u22;
+
+      struct S23 {
+        enum E23 {A23, B23, C23};
+        union U23 {
+          int a;
+          char c;
+        };
+
+        int i23;
+        E23 e23;
+        U23 u23;
+
+        struct S24 {
+          enum E24 {A24, B24, C24};
+          union U24 {
+            int a;
+            char c;
+          };
+
+          int i24;
+          E24 e24;
+          U24 u24;
+
+          struct S25 {
+            enum E25 {A25, B25, C25};
+            union U25 {
+              int a;
+              char c;
+            };
+
+            int i25;
+            E25 e25;
+            U25 u25;
+
+            struct S26 {
+              enum E26 {A26, B26, C26};
+              union U26 {
+                int a;
+                char c;
+              };
+
+              int i26;
+              E26 e26;
+              U26 u26;
+
+              struct S27 {
+                enum E27 {A27, B27, C27};
+                union U27 {
+                  int a;
+                  char c;
+                };
+
+                int i27;
+                E27 e27;
+                U27 u27;
+
+                struct S28 {
+                  enum E28 {A28, B28, C28};
+                  union U28 {
+                    int a;
+                    char c;
+                  };
+
+                  int i28;
+                  E28 e28;
+                  U28 u28;
+
+                  struct S29 {
+                    enum E29 {A29, B29, C29};
+                    union U29 {
+                      int a;
+                      char c;
+                    };
+
+                    int i29;
+                    E29 e29;
+                    U29 u29;
+
+                  };
+                };
+              };
+            };
+          };
+        };
+      };
+    };
+  };
+  struct S31 {
+    enum E31 {A31, B31, C31};
+    union U31 {
+      int a;
+      char c;
+    };
+
+    int i31;
+    E31 e31;
+    U31 u31;
+
+    struct S32 {
+      enum E32 {A32, B32, C32};
+      union U32 {
+        int a;
+        char c;
+      };
+
+      int i32;
+      E32 e32;
+      U32 u32;
+
+      struct S33 {
+        enum E33 {A33, B33, C33};
+        union U33 {
+          int a;
+          char c;
+        };
+
+        int i33;
+        E33 e33;
+        U33 u33;
+
+        struct S34 {
+          enum E34 {A34, B34, C34};
+          union U34 {
+            int a;
+            char c;
+          };
+
+          int i34;
+          E34 e34;
+          U34 u34;
+
+          struct S35 {
+            enum E35 {A35, B35, C35};
+            union U35 {
+              int a;
+              char c;
+            };
+
+            int i35;
+            E35 e35;
+            U35 u35;
+
+            struct S36 {
+              enum E36 {A36, B36, C36};
+              union U36 {
+                int a;
+                char c;
+              };
+
+              int i36;
+              E36 e36;
+              U36 u36;
+
+              struct S37 {
+                enum E37 {A37, B37, C37};
+                union U37 {
+                  int a;
+                  char c;
+                };
+
+                int i37;
+                E37 e37;
+                U37 u37;
+
+                struct S38 {
+                  enum E38 {A38, B38, C38};
+                  union U38 {
+                    int a;
+                    char c;
+                  };
+
+                  int i38;
+                  E38 e38;
+                  U38 u38;
+
+                  struct S39 {
+                    enum E39 {A39, B39, C39};
+                    union U39 {
+                      int a;
+                      char c;
+                    };
+
+                    int i39;
+                    E39 e39;
+                    U39 u39;
+
+                  };
+                };
+              };
+            };
+          };
+        };
+      };
+    };
+  };
+  struct S41 {
+    enum E41 {A41, B41, C41};
+    union U41 {
+      int a;
+      char c;
+    };
+
+    int i41;
+    E41 e41;
+    U41 u41;
+
+    struct S42 {
+      enum E42 {A42, B42, C42};
+      union U42 {
+        int a;
+        char c;
+      };
+
+      int i42;
+      E42 e42;
+      U42 u42;
+
+      struct S43 {
+        enum E43 {A43, B43, C43};
+        union U43 {
+          int a;
+          char c;
+        };
+
+        int i43;
+        E43 e43;
+        U43 u43;
+
+        struct S44 {
+          enum E44 {A44, B44, C44};
+          union U44 {
+            int a;
+            char c;
+          };
+
+          int i44;
+          E44 e44;
+          U44 u44;
+
+          struct S45 {
+            enum E45 {A45, B45, C45};
+            union U45 {
+              int a;
+              char c;
+            };
+
+            int i45;
+            E45 e45;
+            U45 u45;
+
+            struct S46 {
+              enum E46 {A46, B46, C46};
+              union U46 {
+                int a;
+                char c;
+              };
+
+              int i46;
+              E46 e46;
+              U46 u46;
+
+              struct S47 {
+                enum E47 {A47, B47, C47};
+                union U47 {
+                  int a;
+                  char c;
+                };
+
+                int i47;
+                E47 e47;
+                U47 u47;
+
+                struct S48 {
+                  enum E48 {A48, B48, C48};
+                  union U48 {
+                    int a;
+                    char c;
+                  };
+
+                  int i48;
+                  E48 e48;
+                  U48 u48;
+
+                  struct S49 {
+                    enum E49 {A49, B49, C49};
+                    union U49 {
+                      int a;
+                      char c;
+                    };
+
+                    int i49;
+                    E49 e49;
+                    U49 u49;
+
+                  };
+                };
+              };
+            };
+          };
+        };
+      };
+    };
+  };
+  struct S51 {
+    enum E51 {A51, B51, C51};
+    union U51 {
+      int a;
+      char c;
+    };
+
+    int i51;
+    E51 e51;
+    U51 u51;
+
+    struct S52 {
+      enum E52 {A52, B52, C52};
+      union U52 {
+        int a;
+        char c;
+      };
+
+      int i52;
+      E52 e52;
+      U52 u52;
+
+      struct S53 {
+        enum E53 {A53, B53, C53};
+        union U53 {
+          int a;
+          char c;
+        };
+
+        int i53;
+        E53 e53;
+        U53 u53;
+
+        struct S54 {
+          enum E54 {A54, B54, C54};
+          union U54 {
+            int a;
+            char c;
+          };
+
+          int i54;
+          E54 e54;
+          U54 u54;
+
+          struct S55 {
+            enum E55 {A55, B55, C55};
+            union U55 {
+              int a;
+              char c;
+            };
+
+            int i55;
+            E55 e55;
+            U55 u55;
+
+            struct S56 {
+              enum E56 {A56, B56, C56};
+              union U56 {
+                int a;
+                char c;
+              };
+
+              int i56;
+              E56 e56;
+              U56 u56;
+
+              struct S57 {
+                enum E57 {A57, B57, C57};
+                union U57 {
+                  int a;
+                  char c;
+                };
+
+                int i57;
+                E57 e57;
+                U57 u57;
+
+                struct S58 {
+                  enum E58 {A58, B58, C58};
+                  union U58 {
+                    int a;
+                    char c;
+                  };
+
+                  int i58;
+                  E58 e58;
+                  U58 u58;
+
+                  struct S59 {
+                    enum E59 {A59, B59, C59};
+                    union U59 {
+                      int a;
+                      char c;
+                    };
+
+                    int i59;
+                    E59 e59;
+                    U59 u59;
+
+                  };
+                };
+              };
+            };
+          };
+        };
+      };
+    };
+  };
+};
+
+int
+main ()
+{
+  S10 s10;
+  S10::S11 s11;
+  S10::S11::S12 s12;
+  S10::S11::S12::S13 s13;
+  S10::S11::S12::S13::S14 s14;
+  S10::S11::S12::S13::S14::S15 s15;
+  S10::S11::S12::S13::S14::S15::S16 s16;
+  S10::S11::S12::S13::S14::S15::S16::S17 s17;
+  S10::S11::S12::S13::S14::S15::S16::S17::S18 s18;
+  S10::S11::S12::S13::S14::S15::S16::S17::S18::S19 s19;
+
+  S10::S21 s21;
+  S10::S21::S22 s22;
+  S10::S21::S22::S23 s23;
+  S10::S21::S22::S23::S24 s24;
+  S10::S21::S22::S23::S24::S25 s25;
+  S10::S21::S22::S23::S24::S25::S26 s26;
+  S10::S21::S22::S23::S24::S25::S26::S27 s27;
+  S10::S21::S22::S23::S24::S25::S26::S27::S28 s28;
+  S10::S21::S22::S23::S24::S25::S26::S27::S28::S29 s29;
+
+  S10::S31 s31;
+  S10::S31::S32 s32;
+  S10::S31::S32::S33 s33;
+  S10::S31::S32::S33::S34 s34;
+  S10::S31::S32::S33::S34::S35 s35;
+  S10::S31::S32::S33::S34::S35::S36 s36;
+  S10::S31::S32::S33::S34::S35::S36::S37 s37;
+  S10::S31::S32::S33::S34::S35::S36::S37::S38 s38;
+  S10::S31::S32::S33::S34::S35::S36::S37::S38::S39 s39;
+
+  S10::S41 s41;
+  S10::S41::S42 s42;
+  S10::S41::S42::S43 s43;
+  S10::S41::S42::S43::S44 s44;
+  S10::S41::S42::S43::S44::S45 s45;
+  S10::S41::S42::S43::S44::S45::S46 s46;
+  S10::S41::S42::S43::S44::S45::S46::S47 s47;
+  S10::S41::S42::S43::S44::S45::S46::S47::S48 s48;
+  S10::S41::S42::S43::S44::S45::S46::S47::S48::S49 s49;
+
+  S10::S51 s51;
+  S10::S51::S52 s52;
+  S10::S51::S52::S53 s53;
+  S10::S51::S52::S53::S54 s54;
+  S10::S51::S52::S53::S54::S55 s55;
+  S10::S51::S52::S53::S54::S55::S56 s56;
+  S10::S51::S52::S53::S54::S55::S56::S57 s57;
+  S10::S51::S52::S53::S54::S55::S56::S57::S58 s58;
+  S10::S51::S52::S53::S54::S55::S56::S57::S58::S59 s59;
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nested-types.exp ./gdb/testsuite/gdb.cp/nested-types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nested-types.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/nested-types.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,322 @@
+# Copyright 2017-2018 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 nested class definitions with the type printer.
+#
+# This test works by constructing a tree to represent "struct S10" in
+# the corresponding source file.  It then walks the nodes of this tree
+# to construct input suitable for passing to cp_test_ptype_class.
+
+if {[skip_cplus_tests]} { continue }
+
+load_lib "cp-support.exp"
+
+standard_testfile .cc
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile \
+	 {debug c++}]} {
+    return -1
+}
+
+# Build the node given by ID (a number representing the struct S[ID] in
+# the source file).
+#
+# For each node, stored as ::nodes(ID,ARG), where ARG is
+#
+# fields   - list of fields [no children]
+# children - list of types [children]
+
+proc build_node {id} {
+    global nodes
+
+    # For any node, FIELDS is always the types i(N), e(N), u(N)
+    # CHILDREN is a list of nodes called [E(N), U(N)] S(N+1)
+    #
+    # The root (10) also has S(N+11), S(N+21), S(N+31), S(N+41)
+
+    set nodes($id,fields) [list "int i$id" "E$id e$id" "U$id u$id"]
+    set nodes($id,children) {}
+    if {$id == 10} {
+	set limit 5
+    } else {
+	set limit 1
+    }
+    for {set i 0} {$i < $limit} {incr i} {
+	set n [expr {1 + $id + $i * 10}]
+
+	# We don't build nodes which are multiples of 10
+	# (the source only uses that at the root struct).
+	# We also don't create nodes not in the source file
+	# (id >= 60).
+	if {[expr {$n % 10}] != 0 && $n < 60} {
+	    lappend nodes($id,children) $n
+	}
+    }
+}
+
+# A helper procedure to indent the log output by LVL.  This is used for
+# debugging the tree, if ever necessary.
+
+proc indent {lvl} {
+    for {set i 0} {$i < $lvl} {incr i} {
+	send_log "  "
+    }
+}
+
+# For the given CHILD name and PARENT_LIST, return the fully qualified
+# name of the child type.
+
+proc qual_name {child parent_list} {
+    if {[string range $child 0 2] != "int" && [llength $parent_list]} {
+	return "[join $parent_list ::]::$child"
+    } else {
+	return "$child"
+    }
+}
+
+# Output the test source to the log.
+
+proc make_source {} {
+    # Output the structure.
+    test_nested_limit 10 true
+
+    # Output main().
+    send_log "int\nmain \(\)\n\{\n"
+    set plist {}
+    for {set i 10} {$i < 60} {incr i} {
+	if {$i > 10 && [expr {$i % 10}] == 0} {
+	    incr i
+	    set plist {"S10"}
+	    send_log "\n"
+	}
+	send_log "  [qual_name S$i $plist] s$i;\n"
+	lappend plist "S$i"
+    }
+
+    send_log "  return 0;\n"
+    send_log "\}\n"
+}
+
+# Output to the log and/or create the result list for the fields of node ID.
+
+proc make_fields {result_var id parent_list indent_lvl log} {
+    upvar $result_var result
+    global nodes
+
+    foreach type $nodes($id,fields) {
+	set s "[qual_name $type $parent_list];"
+	if {$log} {
+	    indent $indent_lvl
+	    send_log "$s\n"
+	}
+	lappend result [list "field" "public" "$s"]
+    }
+}
+
+# Output to the log and/or create the result list for the union type in
+# node ID.
+
+proc make_union {result_var id parent_list indent_lvl log} {
+    upvar $result_var result
+
+    set s "[qual_name U$id $parent_list]"
+    set a "int a;"
+    set c "char c;"
+    lappend result [list "type" "public" "union" $s [list $a $c]]
+    if {$log} {
+	indent $indent_lvl
+	send_log "union $s \{\n"
+	indent [expr {$indent_lvl + 1}]
+	send_log "$a\n"
+	indent [expr {$indent_lvl + 1}]
+	send_log "$c\n"
+	indent $indent_lvl
+	send_log "\};\n"
+    }
+}
+
+# Output to the log and/or create the result list for the enum type in
+# node ID.
+
+proc make_enum {result_var id parent_list indent_lvl log} {
+    upvar $result_var result
+
+    set s "[qual_name E$id $parent_list]"
+    set a "[qual_name A$id $parent_list]"
+    set b "[qual_name B$id $parent_list]"
+    set c "[qual_name C$id $parent_list]"
+    lappend result [list "type" "public" "enum" $s [list $a $b $c]]
+
+    if {$log} {
+	indent $indent_lvl
+	send_log "enum $s \{$a, $b, $c\};\n"
+    }
+}
+
+# Output to the log and/or create the result list for the node given by ID.
+#
+# LIMIT describes the number of nested types to output (corresponding to
+# the "set print type nested-type-limit" command).
+# PARENT_LIST is the list of parent nodes already seen.
+# INDENT_LVL is the indentation level (used when LOG is true).
+
+proc node_result {result_var id limit parent_list indent_lvl log} {
+    upvar $result_var result
+
+    # Start a new type list.
+    set my_name "S$id"
+    set s "[qual_name $my_name $parent_list]"
+    set my_result [list "type" "public" "struct" $s]
+
+    if {$log} {
+	indent $indent_lvl
+	send_log "struct $my_name \{\n"
+    } else {
+	# Add this node to the parent list so that its name appears in
+	# qualified names, but only if we are not logging. [See immediately
+	# below.]
+	lappend parent_list "$my_name"
+    }
+
+    # `ptype' outputs fields before type definitions, but in order to
+    # output compile-ready code, these must be output in reverse.
+
+    if {!$log} {
+	# Output field list to a local children list.
+	set children_list {}
+	make_fields children_list $id $parent_list \
+	    [expr {$indent_lvl + 1}] $log
+
+	# Output type definitions to the local children list.
+	# The first number of ID gives us the depth of the node.
+	if {[string index $id 1] < $limit || $limit < 0} {
+	    make_enum children_list $id $parent_list \
+		[expr {$indent_lvl + 1}] $log
+	    make_union children_list $id $parent_list \
+		[expr {$indent_lvl + 1}] $log
+	}
+    } else {
+	# Output type definitions to the local children list.
+	# The first number of ID gives us the depth of the node.
+	if {[string index $id 1] < $limit || $limit < 0} {
+	    make_enum children_list $id $parent_list \
+		[expr {$indent_lvl + 1}] $log
+	    make_union children_list $id $parent_list \
+		[expr {$indent_lvl + 1}] $log
+	    send_log "\n"
+	}
+
+	# Output field list to a local children list.
+	set children_list {}
+	make_fields children_list $id $parent_list \
+	    [expr {$indent_lvl + 1}] $log
+	send_log "\n"
+    }
+
+    # Output the children to the local children list.
+    global nodes
+    if {[info exists nodes($id,children)]} {
+	foreach c $nodes($id,children) {
+	    if {[string index $c 1] <= $limit || $limit < 0} {
+		node_result children_list $c $limit $parent_list \
+		    [expr {$indent_lvl + 1}] $log
+	    }
+	}
+    }
+
+    # Add this node's children to its result and add its result to
+    # its parent's results.
+    lappend my_result $children_list
+    lappend result $my_result
+
+    if {$log} {
+	indent $indent_lvl
+	send_log "\};\n"
+    }
+}
+
+# Test nested type definitions.  LIMIT specifies how many nested levels
+# of definitions to test.  If LOG is true, output the tree to the log in
+# a human-readable format mimicing the source code.
+#
+# Only test when not logging.  Generating source code usable by the
+# test is not quite the same as how GDB outputs it.
+
+proc test_nested_limit {limit log} {
+    set result {}
+
+    if {!$log} {
+	# Set the number of nested definitions to print.
+	gdb_test_no_output "set print type nested-type-limit $limit"
+
+	# Check the output of "show type print nested-type-limit"
+	if {$limit < 0} {
+	    set lstr "unlimited"
+	} else {
+	    set lstr $limit
+	}
+	gdb_test "show print type nested-type-limit" \
+	    "Will print $lstr nested types defined in a class" \
+	    "show print type nested-type-limit ($limit)"
+    } else {
+	send_log "Tree to $limit levels:\n"
+    }
+
+    # Generate the result list.
+    node_result result 10 $limit {} 0 $log
+
+    if {!$log} {
+	# The only output we check for is the contents of the struct,
+	# ignoring the leading "type = struct S10 {" and trailing "}" of
+	# the outermost node.
+	set result [lindex $result 0]
+	lassign $result type access key name children
+	cp_test_ptype_class $name "ptype $name (limit = $limit)" $key \
+	    $name $children
+    }
+}
+
+# Build a tree of nodes describing the structures in the source file.
+
+# An array holding all the nodes
+array set nodes {}
+build_node 10
+for {set i 1} {$i < 6} {incr i} {
+    for {set j 1} {$j < 10} {incr j} {
+	build_node $i$j
+    }
+}
+
+# Check relevant commands.
+
+# By default, we do not print nested type definitions.
+gdb_test "show print type nested-type-limit" \
+    "Will not print nested types defined in a class" \
+    "show default print type nested-type-limit"
+
+# -1 means we print all nested types
+test_nested_limit -1 false
+
+# Test the output of "show print type nested-type-limit" and
+# ptype on the test source.
+
+for {set i 1} {$i < 9} {incr i} {
+    test_nested_limit $i false
+}
+
+# To output the test code to the log, uncomment the following line:
+#make_source
+
+unset -nocomplain nodes result
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nextoverthrow.cc ./gdb/testsuite/gdb.cp/nextoverthrow.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nextoverthrow.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/nextoverthrow.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nextoverthrow.exp ./gdb/testsuite/gdb.cp/nextoverthrow.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nextoverthrow.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/nextoverthrow.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/no-dmgl-verbose.cc ./gdb/testsuite/gdb.cp/no-dmgl-verbose.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/no-dmgl-verbose.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/no-dmgl-verbose.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test file is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/no-dmgl-verbose.exp ./gdb/testsuite/gdb.cp/no-dmgl-verbose.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/no-dmgl-verbose.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/no-dmgl-verbose.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/non-trivial-retval.cc ./gdb/testsuite/gdb.cp/non-trivial-retval.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/non-trivial-retval.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/non-trivial-retval.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/non-trivial-retval.exp ./gdb/testsuite/gdb.cp/non-trivial-retval.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/non-trivial-retval.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/non-trivial-retval.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/noparam.cc ./gdb/testsuite/gdb.cp/noparam.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/noparam.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/noparam.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/noparam.exp ./gdb/testsuite/gdb.cp/noparam.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/noparam.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/noparam.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsalias.cc ./gdb/testsuite/gdb.cp/nsalias.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsalias.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/nsalias.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsalias.exp ./gdb/testsuite/gdb.cp/nsalias.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsalias.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/nsalias.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsdecl.exp ./gdb/testsuite/gdb.cp/nsdecl.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsdecl.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/nsdecl.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsimport.exp ./gdb/testsuite/gdb.cp/nsimport.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsimport.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/nsimport.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsnested.exp ./gdb/testsuite/gdb.cp/nsnested.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsnested.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/nsnested.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsnoimports.exp ./gdb/testsuite/gdb.cp/nsnoimports.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsnoimports.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/nsnoimports.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsrecurs.exp ./gdb/testsuite/gdb.cp/nsrecurs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsrecurs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/nsrecurs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsstress.exp ./gdb/testsuite/gdb.cp/nsstress.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsstress.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/nsstress.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsusing.exp ./gdb/testsuite/gdb.cp/nsusing.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/nsusing.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/nsusing.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/operator.exp ./gdb/testsuite/gdb.cp/operator.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/operator.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/operator.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/oranking.exp ./gdb/testsuite/gdb.cp/oranking.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/oranking.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/oranking.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/overload-const.cc ./gdb/testsuite/gdb.cp/overload-const.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/overload-const.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/overload-const.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test case is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/overload-const.exp ./gdb/testsuite/gdb.cp/overload-const.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/overload-const.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/overload-const.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/overload.exp ./gdb/testsuite/gdb.cp/overload.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/overload.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/overload.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 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
@@ -263,10 +263,24 @@ gdb_test "print bar(d)" "= 22"
 
 # List overloaded functions.
 
+gdb_test_no_output "set listsize 1" ""
+
+# Build source listing pattern based on an inclusive line range.
+
+proc line_range_pattern { range_start range_end } {
+    global line_re
+
+    for {set i $range_start} {$i <= $range_end} {incr i} {
+	append pattern "\r\n$i\[ \t\]\[^\r\n\]*"
+    }
+
+    verbose -log "pattern $pattern"
+    return $pattern
+}
+
 # The void case is tricky because some compilers say "(void)"
 # and some compilers say "()".
 
-gdb_test_no_output "set listsize 1" ""
 gdb_test_multiple "info func overloadfnarg" "list overloaded function with no args" {
     -re ".*overloadfnarg\\(void\\).*$gdb_prompt $" {
 	# gcc 2
@@ -324,6 +338,24 @@ gdb_test "print N::nsoverload ()" " = 1"
 gdb_test "print N::nsoverload (2)" " = 2"
 gdb_test "print N::nsoverload (2, 3)" " = 5"
 
+# Test "list function" when there are multiple "function" overloads.
+
+with_test_prefix "list all overloads" {
+    # Bump up listsize again, to make sure the number of lines to
+    # display before/after each location is computed correctly.
+    gdb_test_no_output "set listsize 10"
+
+    set line_bar_A [gdb_get_line_number "int bar (A)"]
+    set line_bar_B [gdb_get_line_number "int bar (B)"]
+    set lines1 [line_range_pattern [expr $line_bar_A - 5] [expr $line_bar_A + 4]]
+    set lines2 [line_range_pattern [expr $line_bar_B - 5] [expr $line_bar_B + 4]]
+
+    set any "\[^\r\n\]*"
+    set h1_re "file: \"${any}overload.cc\", line number: $line_bar_A, symbol: \"bar\\(A\\)\""
+    set h2_re "file: \"${any}overload.cc\", line number: $line_bar_B, symbol: \"bar\\(B\\)\""
+    gdb_test "list bar" "${h1_re}${lines1}\r\n${h2_re}${lines2}"
+}
+
 if ![runto 'XXX::marker2'] then {
     perror "couldn't run to XXX::marker2"
     continue
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ovldbreak.exp ./gdb/testsuite/gdb.cp/ovldbreak.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ovldbreak.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ovldbreak.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2017 Free Software Foundation, Inc.
+# Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ovsrch1.cc ./gdb/testsuite/gdb.cp/ovsrch1.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ovsrch1.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ovsrch1.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ovsrch2.cc ./gdb/testsuite/gdb.cp/ovsrch2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ovsrch2.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ovsrch2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ovsrch3.cc ./gdb/testsuite/gdb.cp/ovsrch3.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ovsrch3.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ovsrch3.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ovsrch4.cc ./gdb/testsuite/gdb.cp/ovsrch4.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ovsrch4.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ovsrch4.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ovsrch.exp ./gdb/testsuite/gdb.cp/ovsrch.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ovsrch.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ovsrch.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # Contributed by Red Hat, originally written by Keith Seitz.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ovsrch.h ./gdb/testsuite/gdb.cp/ovsrch.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ovsrch.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ovsrch.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/paren-type.cc ./gdb/testsuite/gdb.cp/paren-type.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/paren-type.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/paren-type.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/paren-type.exp ./gdb/testsuite/gdb.cp/paren-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/paren-type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/paren-type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/parse-lang.cc ./gdb/testsuite/gdb.cp/parse-lang.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/parse-lang.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/parse-lang.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2013-2017 Free Software Foundation, Inc.
+/* Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/parse-lang.exp ./gdb/testsuite/gdb.cp/parse-lang.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/parse-lang.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/parse-lang.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pass-by-ref.cc ./gdb/testsuite/gdb.cp/pass-by-ref.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pass-by-ref.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pass-by-ref.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pass-by-ref.exp ./gdb/testsuite/gdb.cp/pass-by-ref.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pass-by-ref.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pass-by-ref.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr-1023.exp ./gdb/testsuite/gdb.cp/pr-1023.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr-1023.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr-1023.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr10687.exp ./gdb/testsuite/gdb.cp/pr10687.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr10687.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr10687.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#Copyright 2010-2017 Free Software Foundation, Inc.
+#Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr10728.exp ./gdb/testsuite/gdb.cp/pr10728.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr10728.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr10728.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr12028.exp ./gdb/testsuite/gdb.cp/pr12028.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr12028.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr12028.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr-1210.exp ./gdb/testsuite/gdb.cp/pr-1210.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr-1210.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr-1210.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr17132.cc ./gdb/testsuite/gdb.cp/pr17132.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr17132.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr17132.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr17132.exp ./gdb/testsuite/gdb.cp/pr17132.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr17132.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr17132.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr17494.cc ./gdb/testsuite/gdb.cp/pr17494.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr17494.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr17494.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr17494.exp ./gdb/testsuite/gdb.cp/pr17494.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr17494.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr17494.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr-574.cc ./gdb/testsuite/gdb.cp/pr-574.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr-574.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr-574.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr-574.exp ./gdb/testsuite/gdb.cp/pr-574.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr-574.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr-574.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr9067.exp ./gdb/testsuite/gdb.cp/pr9067.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr9067.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr9067.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr9167.exp ./gdb/testsuite/gdb.cp/pr9167.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr9167.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr9167.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#Copyright 2010-2017 Free Software Foundation, Inc.
+#Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr9594.cc ./gdb/testsuite/gdb.cp/pr9594.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr9594.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr9594.cc	2018-01-09 02:04:57.000000000 +0000
@@ -39,6 +39,19 @@ void Foo::Foofoo ()
 {
 }
 
+namespace Test_NS {
+
+int foo;
+int bar;
+
+namespace Nested {
+
+int qux;
+
+} /* namespace Nested */
+
+} /* namespace Test_NS */
+
 int main ()
 {
   // Anonymous struct with method.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr9631.cc ./gdb/testsuite/gdb.cp/pr9631.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr9631.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr9631.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr9631.exp ./gdb/testsuite/gdb.cp/pr9631.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/pr9631.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/pr9631.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/printmethod.cc ./gdb/testsuite/gdb.cp/printmethod.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/printmethod.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/printmethod.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/printmethod.exp ./gdb/testsuite/gdb.cp/printmethod.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/printmethod.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/printmethod.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/psmang1.cc ./gdb/testsuite/gdb.cp/psmang1.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/psmang1.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/psmang1.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/psmang2.cc ./gdb/testsuite/gdb.cp/psmang2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/psmang2.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/psmang2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/psmang.exp ./gdb/testsuite/gdb.cp/psmang.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/psmang.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/psmang.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/psymtab-parameter.cc ./gdb/testsuite/gdb.cp/psymtab-parameter.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/psymtab-parameter.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/psymtab-parameter.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 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
@@ -19,6 +19,7 @@ template <typename T>
 long
 func ()
 {
+  return 0L;
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/psymtab-parameter.exp ./gdb/testsuite/gdb.cp/psymtab-parameter.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/psymtab-parameter.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/psymtab-parameter.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ptype-cv-cp.cc ./gdb/testsuite/gdb.cp/ptype-cv-cp.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ptype-cv-cp.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ptype-cv-cp.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ptype-cv-cp.exp ./gdb/testsuite/gdb.cp/ptype-cv-cp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ptype-cv-cp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ptype-cv-cp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ptype-flags.cc ./gdb/testsuite/gdb.cp/ptype-flags.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ptype-flags.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ptype-flags.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ptype-flags.exp ./gdb/testsuite/gdb.cp/ptype-flags.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ptype-flags.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ptype-flags.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/punctuator.exp ./gdb/testsuite/gdb.cp/punctuator.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/punctuator.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/punctuator.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/readnow-language.cc ./gdb/testsuite/gdb.cp/readnow-language.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/readnow-language.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/readnow-language.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/readnow-language.exp ./gdb/testsuite/gdb.cp/readnow-language.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/readnow-language.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/readnow-language.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ref-params.cc ./gdb/testsuite/gdb.cp/ref-params.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ref-params.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ref-params.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 2006-2017 Free Software Foundation, Inc.
+   Copyright 2006-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ref-params.exp ./gdb/testsuite/gdb.cp/ref-params.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ref-params.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ref-params.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Tests for reference parameters of types and their subtypes in GDB.
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ref-types.cc ./gdb/testsuite/gdb.cp/ref-types.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ref-types.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ref-types.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 1999-2017 Free Software Foundation, Inc.
+   Copyright 1999-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ref-types.exp ./gdb/testsuite/gdb.cp/ref-types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/ref-types.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/ref-types.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Tests for reference types with short type variables in GDB.
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/re-set-overloaded.cc ./gdb/testsuite/gdb.cp/re-set-overloaded.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/re-set-overloaded.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/re-set-overloaded.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/re-set-overloaded.exp ./gdb/testsuite/gdb.cp/re-set-overloaded.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/re-set-overloaded.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/re-set-overloaded.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rtti1.cc ./gdb/testsuite/gdb.cp/rtti1.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rtti1.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rtti1.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Code to go along with tests in rtti.exp.
    
-   Copyright 2003-2017 Free Software Foundation, Inc.
+   Copyright 2003-2018 Free Software Foundation, Inc.
 
    Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
    Inc.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rtti2.cc ./gdb/testsuite/gdb.cp/rtti2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rtti2.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rtti2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Code to go along with tests in rtti.exp.
    
-   Copyright 2003-2017 Free Software Foundation, Inc.
+   Copyright 2003-2018 Free Software Foundation, Inc.
 
    Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
    Inc.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rtti.exp ./gdb/testsuite/gdb.cp/rtti.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rtti.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rtti.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rtti.h ./gdb/testsuite/gdb.cp/rtti.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rtti.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rtti.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Code to go along with tests in rtti.exp.
    
-   Copyright 2003-2017 Free Software Foundation, Inc.
+   Copyright 2003-2018 Free Software Foundation, Inc.
 
    Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
    Inc.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-casts.cc ./gdb/testsuite/gdb.cp/rvalue-ref-casts.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-casts.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rvalue-ref-casts.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-casts.exp ./gdb/testsuite/gdb.cp/rvalue-ref-casts.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-casts.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rvalue-ref-casts.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-overload.cc ./gdb/testsuite/gdb.cp/rvalue-ref-overload.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-overload.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rvalue-ref-overload.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1998-2017 Free Software Foundation, Inc.
+   Copyright 1998-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-overload.exp ./gdb/testsuite/gdb.cp/rvalue-ref-overload.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-overload.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rvalue-ref-overload.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-params.cc ./gdb/testsuite/gdb.cp/rvalue-ref-params.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-params.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rvalue-ref-params.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 2006-2017 Free Software Foundation, Inc.
+   Copyright 2006-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-params.exp ./gdb/testsuite/gdb.cp/rvalue-ref-params.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-params.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rvalue-ref-params.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc ./gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp ./gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-types.cc ./gdb/testsuite/gdb.cp/rvalue-ref-types.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-types.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rvalue-ref-types.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 1999-2017 Free Software Foundation, Inc.
+   Copyright 1999-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-types.exp ./gdb/testsuite/gdb.cp/rvalue-ref-types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/rvalue-ref-types.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rvalue-ref-types.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/save-bp-qualified.cc ./gdb/testsuite/gdb.cp/save-bp-qualified.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/save-bp-qualified.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/save-bp-qualified.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,40 @@
+/* Copyright 2017-2018 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/>.  */
+
+struct S
+{
+  static void function ();
+};
+
+void
+S::function ()
+{
+}
+
+void
+function ()
+{
+}
+
+int
+main ()
+{
+  S::function ();
+  function ();
+
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/save-bp-qualified.exp ./gdb/testsuite/gdb.cp/save-bp-qualified.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/save-bp-qualified.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/save-bp-qualified.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,74 @@
+# Copyright (C) 2011-2018 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 "save breakpoints" + "break -qualified".
+
+standard_testfile .cc
+
+if { [build_executable "failed to prepare" ${testfile} $srcfile {debug c++}] } {
+    return -1
+}
+
+proc restart {} {
+    global testfile
+
+    clean_restart $testfile
+
+    if ![runto_main] {
+	untested "could not run to main"
+	return 0
+    }
+    # Delete all breakpoints so that the "runto_main" breakpoint above
+    # does not interfere with our testing.
+    delete_breakpoints
+
+    return 1
+}
+
+with_test_prefix "save" {
+    if ![restart] {
+	return -1
+    }
+
+    gdb_breakpoint "function" qualified
+    gdb_breakpoint "function"
+
+    # Save the breakpoints into a file.
+    if {[is_remote host]} {
+	set bps bps
+    } else {
+	set bps [standard_output_file bps]
+    }
+    remote_file host delete "$bps"
+    gdb_test "save breakpoint $bps" "" "save breakpoint bps"
+}
+
+with_test_prefix "restore" {
+    if ![restart] {
+	return -1
+    }
+
+    # Restore the breakpoints.
+    gdb_test "source $bps" "" "source bps"
+
+    # Verify that all breakpoints have been created correctly.
+    gdb_test "info break" [multi_line \
+      "Num +Type +Disp +Enb +Address +What" \
+      "$decimal +breakpoint +keep +y +$hex +in function\\(\\) at \[^\r\n\]*$srcfile:$decimal" \
+      "$decimal +breakpoint +keep +y +<MULTIPLE> +" \
+      "$decimal.$decimal +y +$hex +in S::function\\(\\) at \[^\r\n\]*$srcfile:$decimal" \
+      "$decimal.$decimal +y +$hex +in function\\(\\) at \[^\r\n\]*$srcfile:$decimal" \
+    ]
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/scope-err.cc ./gdb/testsuite/gdb.cp/scope-err.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/scope-err.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/scope-err.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/scope-err.exp ./gdb/testsuite/gdb.cp/scope-err.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/scope-err.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/scope-err.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/shadow.cc ./gdb/testsuite/gdb.cp/shadow.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/shadow.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/shadow.cc	2018-01-09 02:04:57.000000000 +0000
@@ -36,6 +36,7 @@ public:
               }
           }
       }
+    return 0;
   }
 };
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/shadow.exp ./gdb/testsuite/gdb.cp/shadow.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/shadow.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/shadow.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/smartp.cc ./gdb/testsuite/gdb.cp/smartp.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/smartp.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/smartp.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 1999-2017 Free Software Foundation, Inc.
+   Copyright 1999-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/smartp.exp ./gdb/testsuite/gdb.cp/smartp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/smartp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/smartp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/static-method.cc ./gdb/testsuite/gdb.cp/static-method.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/static-method.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/static-method.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/static-method.exp ./gdb/testsuite/gdb.cp/static-method.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/static-method.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/static-method.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # Contributed by Red Hat, originally written by Keith Seitz.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/static-print-quit.cc ./gdb/testsuite/gdb.cp/static-print-quit.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/static-print-quit.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/static-print-quit.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/static-print-quit.exp ./gdb/testsuite/gdb.cp/static-print-quit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/static-print-quit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/static-print-quit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/temargs.cc ./gdb/testsuite/gdb.cp/temargs.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/temargs.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/temargs.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Template argument tests.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/temargs.exp ./gdb/testsuite/gdb.cp/temargs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/temargs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/temargs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # temargs.exp - Template argument tests
 #
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/templates.exp ./gdb/testsuite/gdb.cp/templates.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/templates.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/templates.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/try_catch.cc ./gdb/testsuite/gdb.cp/try_catch.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/try_catch.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/try_catch.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/try_catch.exp ./gdb/testsuite/gdb.cp/try_catch.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/try_catch.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/try_catch.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/typedef-operator.cc ./gdb/testsuite/gdb.cp/typedef-operator.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/typedef-operator.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/typedef-operator.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test case is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/typedef-operator.exp ./gdb/testsuite/gdb.cp/typedef-operator.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/typedef-operator.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/typedef-operator.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/typeid.cc ./gdb/testsuite/gdb.cp/typeid.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/typeid.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/typeid.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/typeid.exp ./gdb/testsuite/gdb.cp/typeid.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/typeid.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/typeid.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/userdef.cc ./gdb/testsuite/gdb.cp/userdef.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/userdef.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/userdef.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 1999-2017 Free Software Foundation, Inc.
+   Copyright 1999-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/userdef.exp ./gdb/testsuite/gdb.cp/userdef.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/userdef.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/userdef.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Tests of overloaded operators resolution.
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/using-crash.cc ./gdb/testsuite/gdb.cp/using-crash.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/using-crash.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/using-crash.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/using-crash.exp ./gdb/testsuite/gdb.cp/using-crash.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/using-crash.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/using-crash.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/var-tag-2.cc ./gdb/testsuite/gdb.cp/var-tag-2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/var-tag-2.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/var-tag-2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/var-tag-3.cc ./gdb/testsuite/gdb.cp/var-tag-3.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/var-tag-3.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/var-tag-3.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/var-tag-4.cc ./gdb/testsuite/gdb.cp/var-tag-4.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/var-tag-4.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/var-tag-4.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/var-tag.cc ./gdb/testsuite/gdb.cp/var-tag.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/var-tag.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/var-tag.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/var-tag.exp ./gdb/testsuite/gdb.cp/var-tag.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/var-tag.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/var-tag.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/virtbase.exp ./gdb/testsuite/gdb.cp/virtbase.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/virtbase.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/virtbase.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/virtfunc2.cc ./gdb/testsuite/gdb.cp/virtfunc2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/virtfunc2.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/virtfunc2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
  /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/virtfunc2.exp ./gdb/testsuite/gdb.cp/virtfunc2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/virtfunc2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/virtfunc2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/virtfunc.cc ./gdb/testsuite/gdb.cp/virtfunc.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/virtfunc.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/virtfunc.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 1993-2017 Free Software Foundation, Inc.
+   Copyright 1993-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/virtfunc.exp ./gdb/testsuite/gdb.cp/virtfunc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/virtfunc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/virtfunc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/vla-cxx.cc ./gdb/testsuite/gdb.cp/vla-cxx.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/vla-cxx.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/vla-cxx.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/vla-cxx.exp ./gdb/testsuite/gdb.cp/vla-cxx.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/vla-cxx.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/vla-cxx.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/wide_char_types.c ./gdb/testsuite/gdb.cp/wide_char_types.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/wide_char_types.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/wide_char_types.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2017 Free Software Foundation, Inc.
+   Copyright 2017-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/wide_char_types.exp ./gdb/testsuite/gdb.cp/wide_char_types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.cp/wide_char_types.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/wide_char_types.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2017 Free Software Foundation, Inc.
+# Copyright 2017-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/am33.exp ./gdb/testsuite/gdb.disasm/am33.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/am33.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/am33.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/disassembler-options.exp ./gdb/testsuite/gdb.disasm/disassembler-options.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/disassembler-options.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/disassembler-options.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2017 Free Software Foundation, Inc.
+# Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/h8300s.exp ./gdb/testsuite/gdb.disasm/h8300s.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/h8300s.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/h8300s.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2017 Free Software Foundation, Inc.
+# Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/hppa.exp ./gdb/testsuite/gdb.disasm/hppa.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/hppa.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/hppa.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/mn10300.exp ./gdb/testsuite/gdb.disasm/mn10300.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/mn10300.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/mn10300.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/sh3.exp ./gdb/testsuite/gdb.disasm/sh3.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/sh3.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/sh3.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2017 Free Software Foundation, Inc.
+# Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t01_mov.exp ./gdb/testsuite/gdb.disasm/t01_mov.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t01_mov.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/t01_mov.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t02_mova.exp ./gdb/testsuite/gdb.disasm/t02_mova.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t02_mova.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/t02_mova.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t03_add.exp ./gdb/testsuite/gdb.disasm/t03_add.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t03_add.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/t03_add.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t04_sub.exp ./gdb/testsuite/gdb.disasm/t04_sub.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t04_sub.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/t04_sub.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t05_cmp.exp ./gdb/testsuite/gdb.disasm/t05_cmp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t05_cmp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/t05_cmp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t06_ari2.exp ./gdb/testsuite/gdb.disasm/t06_ari2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t06_ari2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/t06_ari2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t07_ari3.exp ./gdb/testsuite/gdb.disasm/t07_ari3.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t07_ari3.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/t07_ari3.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t08_or.exp ./gdb/testsuite/gdb.disasm/t08_or.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t08_or.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/t08_or.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t09_xor.exp ./gdb/testsuite/gdb.disasm/t09_xor.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t09_xor.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/t09_xor.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t10_and.exp ./gdb/testsuite/gdb.disasm/t10_and.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t10_and.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/t10_and.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t11_logs.exp ./gdb/testsuite/gdb.disasm/t11_logs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t11_logs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/t11_logs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t12_bit.exp ./gdb/testsuite/gdb.disasm/t12_bit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t12_bit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/t12_bit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t13_otr.exp ./gdb/testsuite/gdb.disasm/t13_otr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.disasm/t13_otr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.disasm/t13_otr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/circular.c ./gdb/testsuite/gdb.dlang/circular.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/circular.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dlang/circular.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2016-2017 Free Software Foundation, Inc.
+/* Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/circular.exp ./gdb/testsuite/gdb.dlang/circular.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/circular.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dlang/circular.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/debug-expr.exp ./gdb/testsuite/gdb.dlang/debug-expr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/debug-expr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dlang/debug-expr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2017 Free Software Foundation, Inc.
+# Copyright 2017-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/demangle.exp ./gdb/testsuite/gdb.dlang/demangle.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/demangle.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dlang/demangle.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 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
@@ -146,7 +146,7 @@ proc test_d_demangling {} {
     test_demangling "_D8demangle4testFPFNdNfNaZaZv" "demangle.test(char() @property @safe pure function)"
 
     test_demangling "_D8demangle4test6__vtblZ" "vtable for demangle.test"
-    test_demangling "_D8demangle4test6__initZ" "demangle.test.init$"
+    test_demangling "_D8demangle4test6__initZ" "initializer for demangle.test"
     test_demangling "_D8demangle4test12__ModuleInfoZ" "ModuleInfo for demangle.test"
     test_demangling "_D8demangle4test7__ClassZ" "ClassInfo for demangle.test"
     test_demangling "_D8demangle4test11__InterfaceZ" "Interface for demangle.test"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/expression.exp ./gdb/testsuite/gdb.dlang/expression.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/expression.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dlang/expression.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/primitive-types.exp ./gdb/testsuite/gdb.dlang/primitive-types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/primitive-types.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dlang/primitive-types.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/properties.exp ./gdb/testsuite/gdb.dlang/properties.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/properties.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dlang/properties.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/watch-loc.c ./gdb/testsuite/gdb.dlang/watch-loc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/watch-loc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dlang/watch-loc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2017 Free Software Foundation, Inc.
+/* Copyright 2017-2018 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
@@ -34,3 +34,23 @@ main (void)
   return _Dmain ();
 }
 
+/* The .debug_names-based index support depends on .debug_aranges
+   generated by GCC.  (.gdb_index includes a gdb-generated map
+   instead.)  */
+asm (
+"	.pushsection	.debug_aranges,\"\",@progbits \n"
+"	.4byte	.Laranges_end - .Laranges_start \n"	// Length of Address Ranges Info
+".Laranges_start: \n"
+"	.2byte	0x2 \n"	// DWARF Version
+"	.4byte	0 \n" // .Ldebug_info0 - Offset of Compilation Unit Info
+"	.byte	4 \n"	// Size of Address
+"	.byte	0 \n"	// Size of Segment Descriptor
+"	.2byte	0 \n"	// Pad to 16 byte boundary
+"	.2byte	0 \n"
+"	.4byte	_Dmain \n"	// Address
+"	.4byte	0x1000 \n"	// Length
+"	.4byte	0 \n"
+"	.4byte	0 \n"
+".Laranges_end: \n"
+"	.popsection \n"
+);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/watch-loc.exp ./gdb/testsuite/gdb.dlang/watch-loc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dlang/watch-loc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dlang/watch-loc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2017 Free Software Foundation, Inc.
+# Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/ada-valprint-error.c ./gdb/testsuite/gdb.dwarf2/ada-valprint-error.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/ada-valprint-error.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/ada-valprint-error.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,23 @@
+/* Copyright 2017-2018 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 buffer[] = {0, 0};
+void *fd__global = &buffer;
+
+int
+main (void)
+{
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp ./gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,115 @@
+# Copyright 2017-2018 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 dwarf.exp
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+if {![dwarf2_support]} {
+    return 0
+}
+
+standard_testfile ada-valprint-error.c ada-valprint-error-dw.S
+
+# We need to know the size of integer and address types in order
+# to write some of the debugging info we'd like to generate.
+#
+# For that, we ask GDB by debugging our ada-valprint-error.c program.
+# Any program would do, but since we already have ada-valprint-error.c
+# specifically for this testcase, might as well use that.
+
+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } {
+    untested ${testfile}.exp
+    return -1
+}
+
+# Make some DWARF for the test.
+set asm_file [standard_output_file $srcfile2]
+Dwarf::assemble $asm_file {
+    cu {} {
+ 	DW_TAG_compile_unit {
+                {DW_AT_language @DW_LANG_Ada95}
+                {DW_AT_name     fd.adb}
+                {DW_AT_comp_dir /tmp}
+        } {
+	    declare_labels array_elt_label integer_label array_label \
+                typedef_label ref_type_label
+            set ptr_size [get_sizeof "void *" 96]
+            set int_size [get_sizeof "int" 4]
+
+            # A structure with no size attribute, to mimick structures
+            # in Ada that have a dynamic size...
+            array_elt_label: structure_type {
+                {name fd__Tints_doubledC}
+                {artificial 1 DW_FORM_flag_present}
+            }
+
+            # ... and a corresponding XVZ variable, supposed to be there
+            # to provide the actual size.  Except that, in this case,
+            # the variable has no address, to simulate the fact that
+            # it has been optimized out (which the compiler can do,
+            # even if it at the expense of debuggability).
+            DW_TAG_variable {
+                {name fd__Tints_doubledC___XVZ}
+                {DW_AT_type :$integer_label}
+                {artificial 1 DW_FORM_flag_present}
+            }
+
+            integer_label: DW_TAG_base_type {
+                {DW_AT_byte_size $int_size DW_FORM_sdata}
+                {DW_AT_encoding  @DW_ATE_signed}
+                {DW_AT_name      integer}
+            }
+
+	    array_label: DW_TAG_array_type {
+		{DW_AT_name fd__ints_doubled}
+		{DW_AT_type :$array_elt_label}
+	    } {
+		DW_TAG_subrange_type {
+		    {DW_AT_type        :$integer_label}
+		    {DW_AT_upper_bound 2 DW_FORM_data1}
+		}
+	    }
+
+            typedef_label: DW_TAG_typedef {
+                {DW_AT_name fd__ints_doubled}
+                {DW_AT_type :$array_label}
+            }
+
+            ref_type_label: DW_TAG_reference_type {
+                {DW_AT_byte_size $ptr_size DW_FORM_sdata}
+                {DW_AT_type :$typedef_label}
+            }
+
+            DW_TAG_variable {
+                {name fd__global}
+                {DW_AT_type :$ref_type_label}
+                {DW_AT_location {
+                    DW_OP_addr [gdb_target_symbol fd__global]
+                } SPECIAL_expr}
+                {external 1 flag}
+            }
+
+	}
+    }
+}
+
+if { [prepare_for_testing ${testfile}.exp ${testfile} \
+	  [list $srcfile $asm_file] {nodebug}] } {
+    return -1
+}
+
+gdb_test_no_output "set language ada"
+
+gdb_test "print fd.global" \
+         " = <error reading variable: unable to read value of fd__Tints_doubledC___XVZ \\(value has been optimized out\\)>"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/arr-stride.c ./gdb/testsuite/gdb.dwarf2/arr-stride.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/arr-stride.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/arr-stride.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2014-2017 Free Software Foundation, Inc.
+/* Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/arr-stride.exp ./gdb/testsuite/gdb.dwarf2/arr-stride.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/arr-stride.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/arr-stride.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/arr-subrange.c ./gdb/testsuite/gdb.dwarf2/arr-subrange.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/arr-subrange.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/arr-subrange.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2014-2017 Free Software Foundation, Inc.
+/* Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/arr-subrange.exp ./gdb/testsuite/gdb.dwarf2/arr-subrange.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/arr-subrange.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/arr-subrange.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/atomic.c ./gdb/testsuite/gdb.dwarf2/atomic.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/atomic.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/atomic.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/atomic-type.exp ./gdb/testsuite/gdb.dwarf2/atomic-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/atomic-type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/atomic-type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/bad-regnum.c ./gdb/testsuite/gdb.dwarf2/bad-regnum.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/bad-regnum.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/bad-regnum.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2015-2017 Free Software Foundation, Inc.
+/* Copyright 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/bad-regnum.exp ./gdb/testsuite/gdb.dwarf2/bad-regnum.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/bad-regnum.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/bad-regnum.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp ./gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/callframecfa.exp ./gdb/testsuite/gdb.dwarf2/callframecfa.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/callframecfa.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/callframecfa.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/callframecfa.S ./gdb/testsuite/gdb.dwarf2/callframecfa.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/callframecfa.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/callframecfa.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/clztest.exp ./gdb/testsuite/gdb.dwarf2/clztest.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/clztest.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/clztest.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/clztest.S ./gdb/testsuite/gdb.dwarf2/clztest.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/clztest.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/clztest.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/comp-unit-lang.c ./gdb/testsuite/gdb.dwarf2/comp-unit-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/comp-unit-lang.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/comp-unit-lang.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp ./gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/corrupt.c ./gdb/testsuite/gdb.dwarf2/corrupt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/corrupt.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/corrupt.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/corrupt.exp ./gdb/testsuite/gdb.dwarf2/corrupt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/corrupt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/corrupt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/count.exp ./gdb/testsuite/gdb.dwarf2/count.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/count.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/count.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/data-loc.c ./gdb/testsuite/gdb.dwarf2/data-loc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/data-loc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/data-loc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2014-2017 Free Software Foundation, Inc.
+/* Copyright 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/data-loc.exp ./gdb/testsuite/gdb.dwarf2/data-loc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/data-loc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/data-loc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dup-psym.exp ./gdb/testsuite/gdb.dwarf2/dup-psym.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dup-psym.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dup-psym.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2005-2017 Free Software Foundation, Inc.
+#   Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dup-psym.S ./gdb/testsuite/gdb.dwarf2/dup-psym.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dup-psym.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dup-psym.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2005-2017 Free Software Foundation, Inc.
+   Copyright 2005-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.c ./gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2014-2017 Free Software Foundation, Inc.
+/* Copyright 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp ./gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello.c ./gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2014-2017 Free Software Foundation, Inc.
+/* Copyright 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S ./gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2014-2017 Free Software Foundation, Inc.
+/* Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world.c ./gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2014-2017 Free Software Foundation, Inc.
+/* Copyright 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S ./gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2014-2017 Free Software Foundation, Inc.
+/* Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.exp ./gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.S ./gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2010-2017 Free Software Foundation, Inc.
+/* Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.exp ./gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.S ./gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.exp ./gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.S ./gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.c ./gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp ./gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.exp ./gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.S ./gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2010-2017 Free Software Foundation, Inc.
+/* Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.c ./gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp ./gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-basic.exp ./gdb/testsuite/gdb.dwarf2/dw2-basic.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-basic.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-basic.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-basic.S ./gdb/testsuite/gdb.dwarf2/dw2-basic.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-basic.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-basic.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.exp ./gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.S ./gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c ./gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S ./gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 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
@@ -57,6 +57,24 @@
 	.byte		0			/* End of children of CU */
 .Lcu1_end:
 
+	/* The .debug_names-based index support depends on
+	   .debug_aranges generated by GCC.  (.gdb_index includes a
+	   gdb-generated map instead.)	*/
+	.section	.debug_aranges,"",@progbits
+	.4byte	.Laranges_end - .Laranges_start	// Length of Address Ranges Info
+.Laranges_start:
+	.2byte	0x2	// DWARF Version
+	.4byte	0 // .Ldebug_info0 - Offset of Compilation Unit Info
+	.byte	PTRBITS / 8	// Size of Address
+	.byte	0	// Size of Segment Descriptor
+	.2byte	0	// Pad to 16 byte boundary
+	.2byte	0
+	PTRBYTE	cu_text_start	// Address
+	PTRBYTE	0x1000 // cu_text_end - cu_text_start	// Length
+	PTRBYTE	0
+	PTRBYTE	0
+.Laranges_end:
+
 /* Abbrev table */
 	.section .debug_abbrev
 .Labbrev1_begin:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp ./gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-common-block.exp ./gdb/testsuite/gdb.dwarf2/dw2-common-block.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-common-block.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-common-block.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-common-block.S ./gdb/testsuite/gdb.dwarf2/dw2-common-block.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-common-block.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-common-block.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.exp ./gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S ./gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-compressed.exp ./gdb/testsuite/gdb.dwarf2/dw2-compressed.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-compressed.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-compressed.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-compressed.S ./gdb/testsuite/gdb.dwarf2/dw2-compressed.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-compressed.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-compressed.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-const.exp ./gdb/testsuite/gdb.dwarf2/dw2-const.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-const.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-const.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-const.S ./gdb/testsuite/gdb.dwarf2/dw2-const.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-const.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-const.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp ./gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static-main.c ./gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.S ./gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp ./gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-cu-size.S ./gdb/testsuite/gdb.dwarf2/dw2-cu-size.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-cu-size.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-cu-size.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c ./gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp ./gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.exp ./gdb/testsuite/gdb.dwarf2/dw2-dos-drive.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-dos-drive.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S ./gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2013-2017 Free Software Foundation, Inc.
+/* Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.exp ./gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S ./gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.exp ./gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.S ./gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2015-2017 Free Software Foundation, Inc.
+/* Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.c ./gdb/testsuite/gdb.dwarf2/dw2-dup-frame.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-dup-frame.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.exp ./gdb/testsuite/gdb.dwarf2/dw2-dup-frame.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-dup-frame.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.S ./gdb/testsuite/gdb.dwarf2/dw2-dup-frame.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-dup-frame.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp ./gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S ./gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.exp ./gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.S ./gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2011-2017 Free Software Foundation, Inc.
+/* Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp ./gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-entry-value-main.c ./gdb/testsuite/gdb.dwarf2/dw2-entry-value-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-entry-value-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-entry-value-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-entry-value.S ./gdb/testsuite/gdb.dwarf2/dw2-entry-value.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-entry-value.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-entry-value.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2011-2017 Free Software Foundation, Inc.
+/* Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-error.c ./gdb/testsuite/gdb.dwarf2/dw2-error.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-error.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-error.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-error.exp ./gdb/testsuite/gdb.dwarf2/dw2-error.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-error.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-error.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-error.S ./gdb/testsuite/gdb.dwarf2/dw2-error.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-error.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-error.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-filename.exp ./gdb/testsuite/gdb.dwarf2/dw2-filename.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-filename.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-filename.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-filename.S ./gdb/testsuite/gdb.dwarf2/dw2-filename.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-filename.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-filename.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp ./gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S ./gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-icycle.c ./gdb/testsuite/gdb.dwarf2/dw2-icycle.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-icycle.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-icycle.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-icycle.exp ./gdb/testsuite/gdb.dwarf2/dw2-icycle.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-icycle.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-icycle.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-icycle.S ./gdb/testsuite/gdb.dwarf2/dw2-icycle.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-icycle.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-icycle.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c ./gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp ./gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-inheritance.exp ./gdb/testsuite/gdb.dwarf2/dw2-inheritance.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-inheritance.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-inheritance.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-inheritance.S ./gdb/testsuite/gdb.dwarf2/dw2-inheritance.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-inheritance.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-inheritance.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-inline-break.exp ./gdb/testsuite/gdb.dwarf2/dw2-inline-break.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-inline-break.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-inline-break.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-inline-break.S ./gdb/testsuite/gdb.dwarf2/dw2-inline-break.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-inline-break.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-inline-break.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp ./gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-inline-param-main.c ./gdb/testsuite/gdb.dwarf2/dw2-inline-param-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-inline-param-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-inline-param-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-inline-param.S ./gdb/testsuite/gdb.dwarf2/dw2-inline-param.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-inline-param.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-inline-param.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-intercu.exp ./gdb/testsuite/gdb.dwarf2/dw2-intercu.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-intercu.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-intercu.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-intercu.S ./gdb/testsuite/gdb.dwarf2/dw2-intercu.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-intercu.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-intercu.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-intermix.exp ./gdb/testsuite/gdb.dwarf2/dw2-intermix.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-intermix.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-intermix.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-intermix.S ./gdb/testsuite/gdb.dwarf2/dw2-intermix.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-intermix.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-intermix.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2005-2017 Free Software Foundation, Inc.
+   Copyright 2005-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp ./gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp ./gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust-main.cc ./gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust-main.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust-main.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust-main.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.S ./gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.exp ./gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.S ./gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.exp ./gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S ./gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2010-2017 Free Software Foundation, Inc.
+/* Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp ./gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.S ./gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp ./gdb/testsuite/gdb.dwarf2/dw2-noloc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-noloc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-noloc-main.c ./gdb/testsuite/gdb.dwarf2/dw2-noloc-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-noloc-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-noloc-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-noloc.S ./gdb/testsuite/gdb.dwarf2/dw2-noloc.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-noloc.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-noloc.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap.exp ./gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-inner.S ./gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-inner.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-inner.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-inner.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-outer.S ./gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-outer.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-outer.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-outer.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-op-call.exp ./gdb/testsuite/gdb.dwarf2/dw2-op-call.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-op-call.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-op-call.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-op-call.S ./gdb/testsuite/gdb.dwarf2/dw2-op-call.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-op-call.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-op-call.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp ./gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S ./gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.exp ./gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.S ./gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.c ./gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2016-2017 Free Software Foundation, Inc.
+/* Copyright 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp ./gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-param-error.exp ./gdb/testsuite/gdb.dwarf2/dw2-param-error.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-param-error.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-param-error.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-param-error-main.c ./gdb/testsuite/gdb.dwarf2/dw2-param-error-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-param-error-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-param-error-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-param-error.S ./gdb/testsuite/gdb.dwarf2/dw2-param-error.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-param-error.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-param-error.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2011-2017 Free Software Foundation, Inc.
+/* Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-producer.exp ./gdb/testsuite/gdb.dwarf2/dw2-producer.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-producer.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-producer.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-producer.S ./gdb/testsuite/gdb.dwarf2/dw2-producer.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-producer.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-producer.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ranges2.c ./gdb/testsuite/gdb.dwarf2/dw2-ranges2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ranges2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-ranges2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ranges3.c ./gdb/testsuite/gdb.dwarf2/dw2-ranges3.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ranges3.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-ranges3.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.c ./gdb/testsuite/gdb.dwarf2/dw2-ranges-base.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-ranges-base.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp ./gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ranges.c ./gdb/testsuite/gdb.dwarf2/dw2-ranges.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ranges.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-ranges.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ranges.exp ./gdb/testsuite/gdb.dwarf2/dw2-ranges.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ranges.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-ranges.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp ./gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-func.c ./gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-func.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-func.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-func.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-main.c ./gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.S ./gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp ./gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.c ./gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp ./gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.S ./gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-restore.exp ./gdb/testsuite/gdb.dwarf2/dw2-restore.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-restore.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-restore.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-restore.S ./gdb/testsuite/gdb.dwarf2/dw2-restore.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-restore.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-restore.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-restrict.c ./gdb/testsuite/gdb.dwarf2/dw2-restrict.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-restrict.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-restrict.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-restrict.exp ./gdb/testsuite/gdb.dwarf2/dw2-restrict.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-restrict.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-restrict.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-restrict.S ./gdb/testsuite/gdb.dwarf2/dw2-restrict.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-restrict.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-restrict.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp ./gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S ./gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.c ./gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.exp ./gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.S ./gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.c ./gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp ./gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
@@ -79,4 +79,4 @@ gdb_continue_to_breakpoint "func"
 # Sanity check GDB has really found 2 locations
 gdb_test {info break $bpnum} "\r\n2\\.1\[ \t\]\[^\n\]*\r\n2\\.2\[ \t\]\[^\n\]*" "2 locations found"
 
-gdb_test "p v" " = 0" "no statement got executed"
+gdb_test "p (int) v" " = 0" "no statement got executed"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.S ./gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.exp ./gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.S ./gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2010-2017 Free Software Foundation, Inc.
+/* Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-strp.exp ./gdb/testsuite/gdb.dwarf2/dw2-strp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-strp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-strp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-strp.S ./gdb/testsuite/gdb.dwarf2/dw2-strp.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-strp.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-strp.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.c ./gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp ./gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.S ./gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp ./gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c ./gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-unresolved.S ./gdb/testsuite/gdb.dwarf2/dw2-unresolved.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-unresolved.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-unresolved.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp ./gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.S ./gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw4-sig-types.exp ./gdb/testsuite/gdb.dwarf2/dw4-sig-types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw4-sig-types.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw4-sig-types.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp ./gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.S ./gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2011-2017 Free Software Foundation, Inc.
+/* Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dwp-sepdebug.c ./gdb/testsuite/gdb.dwarf2/dwp-sepdebug.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dwp-sepdebug.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dwp-sepdebug.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dwp-sepdebug.exp ./gdb/testsuite/gdb.dwarf2/dwp-sepdebug.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dwp-sepdebug.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dwp-sepdebug.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dwp-symlink.c ./gdb/testsuite/gdb.dwarf2/dwp-symlink.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dwp-symlink.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dwp-symlink.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dwp-symlink.exp ./gdb/testsuite/gdb.dwarf2/dwp-symlink.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dwp-symlink.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dwp-symlink.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dwzbuildid.exp ./gdb/testsuite/gdb.dwarf2/dwzbuildid.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dwzbuildid.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dwzbuildid.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dwz.exp ./gdb/testsuite/gdb.dwarf2/dwz.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dwz.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dwz.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dynarr-ptr.c ./gdb/testsuite/gdb.dwarf2/dynarr-ptr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dynarr-ptr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dynarr-ptr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2014-2017 Free Software Foundation, Inc.
+/* Copyright 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp ./gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/enum-type.exp ./gdb/testsuite/gdb.dwarf2/enum-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/enum-type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/enum-type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-base.c ./gdb/testsuite/gdb.dwarf2/fission-base.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-base.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-base.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-base.exp ./gdb/testsuite/gdb.dwarf2/fission-base.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-base.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-base.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-base.S ./gdb/testsuite/gdb.dwarf2/fission-base.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-base.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-base.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-loclists.exp ./gdb/testsuite/gdb.dwarf2/fission-loclists.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-loclists.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-loclists.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp ./gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.S ./gdb/testsuite/gdb.dwarf2/fission-loclists-pie.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-loclists-pie.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-loclists.S ./gdb/testsuite/gdb.dwarf2/fission-loclists.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-loclists.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-loclists.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-mix2.c ./gdb/testsuite/gdb.dwarf2/fission-mix2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-mix2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-mix2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-mix.c ./gdb/testsuite/gdb.dwarf2/fission-mix.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-mix.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-mix.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-mix.exp ./gdb/testsuite/gdb.dwarf2/fission-mix.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-mix.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-mix.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-mix.h ./gdb/testsuite/gdb.dwarf2/fission-mix.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-mix.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-mix.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-multi-cu1.c ./gdb/testsuite/gdb.dwarf2/fission-multi-cu1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-multi-cu1.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-multi-cu1.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,22 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2012-2018 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
+func (int arg)
+{
+  return arg + 1;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-multi-cu2.c ./gdb/testsuite/gdb.dwarf2/fission-multi-cu2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-multi-cu2.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-multi-cu2.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,24 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2012-2018 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/>.  */
+
+void func ();
+
+int
+main ()
+{
+  func (-1);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp ./gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,67 @@
+# Copyright 2012-2018 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 dwarf.exp
+
+# We run objcopy locally to split out the .dwo file.
+if [is_remote host] {
+    return 0
+}
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+if ![dwarf2_support] {
+    return 0
+}
+
+# This test can only be run on x86-64 targets.
+if {![istarget x86_64-*] || ![is_lp64_target]} {
+    return 0
+}
+
+standard_testfile .S
+
+if [build_executable_from_fission_assembler \
+	"$testfile.exp" "$binfile" "$srcfile" {nodebug}] {
+    return -1
+}
+
+gdb_exit
+gdb_start
+gdb_reinitialize_dir $srcdir/$subdir
+# Make sure we can find the .dwo file, regardless of whether we're
+# running in parallel mode.
+gdb_test_no_output "set debug-file-directory [file dirname $binfile]" \
+    "set debug-file-directory"
+gdb_load $binfile
+
+if ![runto_main] {
+    return -1
+}
+
+# Do a few basic things to verify we're finding the DWO debug info.
+
+gdb_test "ptype main" "type = int \\(\\)"
+gdb_test "ptype func" "type = int \\(int\\)"
+
+gdb_test "frame" "#0 *main \\(\\) at ${testfile}2\\.c:$decimal.*" \
+    "frame in main"
+
+gdb_test "break func" "Breakpoint.*at.* file .*${testfile}1\\.c, line .*"
+
+gdb_test "continue" "Breakpoint.* func \\(arg=-1\\).*" \
+    "continue to func"
+
+gdb_test "frame" "#0 *func \\(arg=-1\\) at ${testfile}1\\.c:$decimal.*" \
+    "frame in func"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-multi-cu.S ./gdb/testsuite/gdb.dwarf2/fission-multi-cu.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-multi-cu.S	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-multi-cu.S	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,374 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2012-2018 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 was created by doing:
+
+   clang fission-multi-cu*.c -g -fno-split-dwarf-inlining -emit-llvm -S -c
+   llvm-link fission-multi-cu*.ll -S -o fission-multi-cu.ll
+   clang-tot fission-multi-cu.ll -gsplit-dwarf -S
+
+   and then massaging the output.
+*/
+	.text
+	.file	"llvm-link"
+	.globl	func
+	.p2align	4, 0x90
+	.type	func,@function
+func:                                   # @func
+.Lfunc_begin0:
+	.file	1 "fission-multi-cu1.c"
+	.loc	1 20 0                  # fission-multi-cu1.c:20:0
+	.cfi_startproc
+# BB#0:                                 # %entry
+	pushq	%rbp
+	.cfi_def_cfa_offset 16
+	.cfi_offset %rbp, -16
+	movq	%rsp, %rbp
+	.cfi_def_cfa_register %rbp
+	movl	%edi, -4(%rbp)
+	.loc	1 21 10 prologue_end    # fission-multi-cu1.c:21:10
+	movl	-4(%rbp), %edi
+	.loc	1 21 14 is_stmt 0       # fission-multi-cu1.c:21:14
+	addl	$1, %edi
+	.loc	1 21 3                  # fission-multi-cu1.c:21:3
+	movl	%edi, %eax
+	popq	%rbp
+	retq
+.Lfunc_end0:
+	.size	func, .Lfunc_end0-func
+	.cfi_endproc
+
+	.globl	main
+	.p2align	4, 0x90
+	.type	main,@function
+main:                                   # @main
+.Lfunc_begin1:
+	.file	2 "fission-multi-cu2.c"
+	.loc	2 23 0 is_stmt 1        # fission-multi-cu2.c:23:0
+	.cfi_startproc
+# BB#0:                                 # %entry
+	pushq	%rbp
+	.cfi_def_cfa_offset 16
+	.cfi_offset %rbp, -16
+	movq	%rsp, %rbp
+	.cfi_def_cfa_register %rbp
+	movl	$4294967295, %edi       # imm = 0xFFFFFFFF
+	.loc	2 24 3 prologue_end     # fission-multi-cu2.c:24:3
+	movb	$0, %al
+	callq	func
+	xorl	%eax, %eax
+	.loc	2 25 1                  # fission-multi-cu2.c:25:1
+	popq	%rbp
+	retq
+.Lfunc_end1:
+	.size	main, .Lfunc_end1-main
+	.cfi_endproc
+
+	.section	.debug_str,"MS",@progbits,1
+.Lskel_string0:
+	.asciz	"fission-multi-cu.dwo"  # string offset=0
+.Lskel_string1:
+	.asciz	"/tmp/src/gdb/testsuite" # string offset=21
+	.section	.debug_loc.dwo,"",@progbits
+	.section	.debug_abbrev,"",@progbits
+	.byte	1                       # Abbreviation Code
+	.byte	17                      # DW_TAG_compile_unit
+	.byte	0                       # DW_CHILDREN_no
+	.byte	16                      # DW_AT_stmt_list
+	.byte	23                      # DW_FORM_sec_offset
+	.ascii	"\260B"                 # DW_AT_GNU_dwo_name
+	.byte	14                      # DW_FORM_strp
+	.byte	27                      # DW_AT_comp_dir
+	.byte	14                      # DW_FORM_strp
+	.ascii	"\261B"                 # DW_AT_GNU_dwo_id
+	.byte	7                       # DW_FORM_data8
+	.ascii	"\263B"                 # DW_AT_GNU_addr_base
+	.byte	23                      # DW_FORM_sec_offset
+	.byte	17                      # DW_AT_low_pc
+	.byte	1                       # DW_FORM_addr
+	.byte	18                      # DW_AT_high_pc
+	.byte	6                       # DW_FORM_data4
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	0                       # EOM(3)
+	.section	.debug_info,"",@progbits
+.Lcu_begin0:
+	.long	44                      # Length of Unit
+	.short	4                       # DWARF version number
+	.long	.debug_abbrev           # Offset Into Abbrev. Section
+	.byte	8                       # Address Size (in bytes)
+	.byte	1                       # Abbrev [1] 0xb:0x25 DW_TAG_compile_unit
+	.long	.Lline_table_start0     # DW_AT_stmt_list
+	.long	.Lskel_string0          # DW_AT_GNU_dwo_name
+	.long	.Lskel_string1          # DW_AT_comp_dir
+	.quad	7615852067747431413     # DW_AT_GNU_dwo_id
+	.long	.debug_addr             # DW_AT_GNU_addr_base
+	.quad	.Lfunc_begin0           # DW_AT_low_pc
+	.long	.Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
+.Lcu_begin1:
+	.long	44                      # Length of Unit
+	.short	4                       # DWARF version number
+	.long	.debug_abbrev           # Offset Into Abbrev. Section
+	.byte	8                       # Address Size (in bytes)
+	.byte	1                       # Abbrev [1] 0xb:0x25 DW_TAG_compile_unit
+	.long	.Lline_table_start0     # DW_AT_stmt_list
+	.long	.Lskel_string0          # DW_AT_GNU_dwo_name
+	.long	.Lskel_string1          # DW_AT_comp_dir
+	.quad	2037650261599692324     # DW_AT_GNU_dwo_id
+	.long	.debug_addr             # DW_AT_GNU_addr_base
+	.quad	.Lfunc_begin1           # DW_AT_low_pc
+	.long	.Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc
+	.section	.debug_ranges,"",@progbits
+	.section	.debug_macinfo,"",@progbits
+.Lcu_macro_begin1:
+.Lcu_macro_begin3:
+	.byte	0                       # End Of Macro List Mark
+	.section	.debug_str.dwo,"MS",@progbits,1
+.Linfo_string0:
+	.asciz	"fission-multi-cu.dwo"  # string offset=0
+.Linfo_string1:
+	.asciz	"clang version 5.0.0 (trunk 302855) (llvm/trunk 302853)" # string offset=21
+.Linfo_string2:
+	.asciz	"fission-multi-cu1.c" # string offset=76
+.Linfo_string3:
+	.asciz	"fission-multi-cu2.c" # string offset=96
+.Linfo_string4:
+	.asciz	"func"                  # string offset=116
+.Linfo_string5:
+	.asciz	"int"                   # string offset=121
+.Linfo_string6:
+	.asciz	"main"                  # string offset=125
+.Linfo_string7:
+	.asciz	"arg"                   # string offset=130
+	.section	.debug_str_offsets.dwo,"",@progbits
+	.long	0
+	.long	21
+	.long	76
+	.long	96
+	.long	116
+	.long	121
+	.long	125
+	.long	130
+	.section	.debug_info.dwo,"",@progbits
+	.long	53                      # Length of Unit
+	.short	4                       # DWARF version number
+	.long	0                       # Offset Into Abbrev. Section
+	.byte	8                       # Address Size (in bytes)
+	.byte	1                       # Abbrev [1] 0xb:0x2e DW_TAG_compile_unit
+	.byte	0                       # DW_AT_GNU_dwo_name
+	.byte	1                       # DW_AT_producer
+	.short	12                      # DW_AT_language
+	.byte	2                       # DW_AT_name
+	.quad	7615852067747431413     # DW_AT_GNU_dwo_id
+	.byte	2                       # Abbrev [2] 0x19:0x1b DW_TAG_subprogram
+	.byte	0                       # DW_AT_low_pc
+	.long	.Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
+	.byte	1                       # DW_AT_frame_base
+	.byte	86
+	.byte	4                       # DW_AT_name
+	.byte	1                       # DW_AT_decl_file
+	.byte	19                      # DW_AT_decl_line
+                                        # DW_AT_prototyped
+	.long	52                      # DW_AT_type
+                                        # DW_AT_external
+	.byte	3                       # Abbrev [3] 0x28:0xb DW_TAG_formal_parameter
+	.byte	2                       # DW_AT_location
+	.byte	145
+	.byte	124
+	.byte	7                       # DW_AT_name
+	.byte	1                       # DW_AT_decl_file
+	.byte	19                      # DW_AT_decl_line
+	.long	52                      # DW_AT_type
+	.byte	0                       # End Of Children Mark
+	.byte	4                       # Abbrev [4] 0x34:0x4 DW_TAG_base_type
+	.byte	5                       # DW_AT_name
+	.byte	5                       # DW_AT_encoding
+	.byte	4                       # DW_AT_byte_size
+	.byte	0                       # End Of Children Mark
+	.long	41                      # Length of Unit
+	.short	4                       # DWARF version number
+	.long	0                       # Offset Into Abbrev. Section
+	.byte	8                       # Address Size (in bytes)
+	.byte	1                       # Abbrev [1] 0xb:0x22 DW_TAG_compile_unit
+	.byte	0                       # DW_AT_GNU_dwo_name
+	.byte	1                       # DW_AT_producer
+	.short	12                      # DW_AT_language
+	.byte	3                       # DW_AT_name
+	.quad	2037650261599692324     # DW_AT_GNU_dwo_id
+	.byte	5                       # Abbrev [5] 0x19:0xf DW_TAG_subprogram
+	.byte	1                       # DW_AT_low_pc
+	.long	.Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc
+	.byte	1                       # DW_AT_frame_base
+	.byte	86
+	.byte	6                       # DW_AT_name
+	.byte	2                       # DW_AT_decl_file
+	.byte	22                      # DW_AT_decl_line
+	.long	40                      # DW_AT_type
+                                        # DW_AT_external
+	.byte	4                       # Abbrev [4] 0x28:0x4 DW_TAG_base_type
+	.byte	5                       # DW_AT_name
+	.byte	5                       # DW_AT_encoding
+	.byte	4                       # DW_AT_byte_size
+	.byte	0                       # End Of Children Mark
+	.section	.debug_abbrev.dwo,"",@progbits
+	.byte	1                       # Abbreviation Code
+	.byte	17                      # DW_TAG_compile_unit
+	.byte	1                       # DW_CHILDREN_yes
+	.ascii	"\260B"                 # DW_AT_GNU_dwo_name
+	.ascii	"\202>"                 # DW_FORM_GNU_str_index
+	.byte	37                      # DW_AT_producer
+	.ascii	"\202>"                 # DW_FORM_GNU_str_index
+	.byte	19                      # DW_AT_language
+	.byte	5                       # DW_FORM_data2
+	.byte	3                       # DW_AT_name
+	.ascii	"\202>"                 # DW_FORM_GNU_str_index
+	.ascii	"\261B"                 # DW_AT_GNU_dwo_id
+	.byte	7                       # DW_FORM_data8
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	2                       # Abbreviation Code
+	.byte	46                      # DW_TAG_subprogram
+	.byte	1                       # DW_CHILDREN_yes
+	.byte	17                      # DW_AT_low_pc
+	.ascii	"\201>"                 # DW_FORM_GNU_addr_index
+	.byte	18                      # DW_AT_high_pc
+	.byte	6                       # DW_FORM_data4
+	.byte	64                      # DW_AT_frame_base
+	.byte	24                      # DW_FORM_exprloc
+	.byte	3                       # DW_AT_name
+	.ascii	"\202>"                 # DW_FORM_GNU_str_index
+	.byte	58                      # DW_AT_decl_file
+	.byte	11                      # DW_FORM_data1
+	.byte	59                      # DW_AT_decl_line
+	.byte	11                      # DW_FORM_data1
+	.byte	39                      # DW_AT_prototyped
+	.byte	25                      # DW_FORM_flag_present
+	.byte	73                      # DW_AT_type
+	.byte	19                      # DW_FORM_ref4
+	.byte	63                      # DW_AT_external
+	.byte	25                      # DW_FORM_flag_present
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	3                       # Abbreviation Code
+	.byte	5                       # DW_TAG_formal_parameter
+	.byte	0                       # DW_CHILDREN_no
+	.byte	2                       # DW_AT_location
+	.byte	24                      # DW_FORM_exprloc
+	.byte	3                       # DW_AT_name
+	.ascii	"\202>"                 # DW_FORM_GNU_str_index
+	.byte	58                      # DW_AT_decl_file
+	.byte	11                      # DW_FORM_data1
+	.byte	59                      # DW_AT_decl_line
+	.byte	11                      # DW_FORM_data1
+	.byte	73                      # DW_AT_type
+	.byte	19                      # DW_FORM_ref4
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	4                       # Abbreviation Code
+	.byte	36                      # DW_TAG_base_type
+	.byte	0                       # DW_CHILDREN_no
+	.byte	3                       # DW_AT_name
+	.ascii	"\202>"                 # DW_FORM_GNU_str_index
+	.byte	62                      # DW_AT_encoding
+	.byte	11                      # DW_FORM_data1
+	.byte	11                      # DW_AT_byte_size
+	.byte	11                      # DW_FORM_data1
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	5                       # Abbreviation Code
+	.byte	46                      # DW_TAG_subprogram
+	.byte	0                       # DW_CHILDREN_no
+	.byte	17                      # DW_AT_low_pc
+	.ascii	"\201>"                 # DW_FORM_GNU_addr_index
+	.byte	18                      # DW_AT_high_pc
+	.byte	6                       # DW_FORM_data4
+	.byte	64                      # DW_AT_frame_base
+	.byte	24                      # DW_FORM_exprloc
+	.byte	3                       # DW_AT_name
+	.ascii	"\202>"                 # DW_FORM_GNU_str_index
+	.byte	58                      # DW_AT_decl_file
+	.byte	11                      # DW_FORM_data1
+	.byte	59                      # DW_AT_decl_line
+	.byte	11                      # DW_FORM_data1
+	.byte	73                      # DW_AT_type
+	.byte	19                      # DW_FORM_ref4
+	.byte	63                      # DW_AT_external
+	.byte	25                      # DW_FORM_flag_present
+	.byte	0                       # EOM(1)
+	.byte	0                       # EOM(2)
+	.byte	0                       # EOM(3)
+	.section	.debug_line.dwo,"",@progbits
+.Ltmp4:
+	.long	(.Ltmp5-.Ltmp4)-4
+	.short	2
+	.long	(.Ltmp6-.Ltmp4)-10
+	.byte	1
+	.byte	1
+	.byte	-5
+	.byte	14
+	.byte	1
+	.byte	0
+	.byte	0
+.Ltmp6:
+.Ltmp5:
+	.section	.debug_addr,"",@progbits
+	.quad	.Lfunc_begin0
+	.quad	.Lfunc_begin1
+	.section	.debug_pubnames,"",@progbits
+	.long	.LpubNames_end0-.LpubNames_begin0 # Length of Public Names Info
+.LpubNames_begin0:
+	.short	2                       # DWARF Version
+	.long	.Lcu_begin0             # Offset of Compilation Unit Info
+	.long	48                      # Compilation Unit Length
+	.long	25                      # DIE offset
+	.asciz	"func"                  # External Name
+	.long	0                       # End Mark
+.LpubNames_end0:
+	.long	.LpubNames_end1-.LpubNames_begin1 # Length of Public Names Info
+.LpubNames_begin1:
+	.short	2                       # DWARF Version
+	.long	.Lcu_begin1             # Offset of Compilation Unit Info
+	.long	48                      # Compilation Unit Length
+	.long	25                      # DIE offset
+	.asciz	"main"                  # External Name
+	.long	0                       # End Mark
+.LpubNames_end1:
+	.section	.debug_pubtypes,"",@progbits
+	.long	.LpubTypes_end0-.LpubTypes_begin0 # Length of Public Types Info
+.LpubTypes_begin0:
+	.short	2                       # DWARF Version
+	.long	.Lcu_begin0             # Offset of Compilation Unit Info
+	.long	48                      # Compilation Unit Length
+	.long	52                      # DIE offset
+	.asciz	"int"                   # External Name
+	.long	0                       # End Mark
+.LpubTypes_end0:
+	.long	.LpubTypes_end1-.LpubTypes_begin1 # Length of Public Types Info
+.LpubTypes_begin1:
+	.short	2                       # DWARF Version
+	.long	.Lcu_begin1             # Offset of Compilation Unit Info
+	.long	48                      # Compilation Unit Length
+	.long	40                      # DIE offset
+	.asciz	"int"                   # External Name
+	.long	0                       # End Mark
+.LpubTypes_end1:
+
+	.ident	"clang version 5.0.0 (trunk 302855) (llvm/trunk 302853)"
+	.ident	"clang version 5.0.0 (trunk 302855) (llvm/trunk 302853)"
+	.section	".note.GNU-stack","",@progbits
+	.section	.debug_line,"",@progbits
+.Lline_table_start0:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-reread.exp ./gdb/testsuite/gdb.dwarf2/fission-reread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-reread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-reread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-reread.S ./gdb/testsuite/gdb.dwarf2/fission-reread.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/fission-reread.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/fission-reread.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/formdata16.c ./gdb/testsuite/gdb.dwarf2/formdata16.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/formdata16.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/formdata16.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2017 Free Software Foundation, Inc.
+   Copyright 2017-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/formdata16.exp ./gdb/testsuite/gdb.dwarf2/formdata16.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/formdata16.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/formdata16.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2017 Free Software Foundation, Inc.
+# Copyright 2017-2018 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
@@ -28,31 +28,28 @@ if [prepare_for_testing "failed to prepa
     return -1
 }
 
-set endianness "little"
-set test "show endian"
-gdb_test_multiple $test $test {
-    -re "(.* )(big|little)( endian.*)\r\n$gdb_prompt $" {
-	set endianness $expect_out(2,string)
-	pass "endianness"
-    }
-}
+set endianness [get_endianness]
 
 set high "0x123456789abcdef0"
 set low "0x0fedcba987654321"
 if { $endianness == "big" } {
     set pair $high,$low
+    set pair2 0x0,$low
+    set negative 0xffffffffffffffff,$low
 } else {
     set pair $low,$high
+    set pair2 $low,0x0
+    set negative $low,0xffffffffffffffff
 }
 
 # Make some DWARF for the test.
 set asm_file [standard_output_file $srcfile2]
 Dwarf::assemble $asm_file {
-    global pair
+    global pair pair2 negative
 
     cu { addr_size 4 } {
  	compile_unit {} {
-	    declare_labels int_label
+	    declare_labels int_label sint_label
 
 	    int_label: DW_TAG_base_type {
 		{DW_AT_byte_size 16 DW_FORM_udata}
@@ -60,11 +57,29 @@ Dwarf::assemble $asm_file {
 		{DW_AT_name "__uint128"}
 	    }
 
+	    sint_label: DW_TAG_base_type {
+		{DW_AT_byte_size 16 DW_FORM_udata}
+		{DW_AT_encoding @DW_ATE_signed}
+		{DW_AT_name "__int128"}
+	    }
+
 	    DW_TAG_variable {
 		{name xxx}
 		{type :$int_label}
 		{const_value $pair DW_FORM_data16}
 	    }
+
+	    DW_TAG_variable {
+		{name yyy}
+		{type :$int_label}
+		{const_value $pair2 DW_FORM_data16}
+	    }
+
+	    DW_TAG_variable {
+		{name sss}
+		{type :$sint_label}
+		{const_value $negative DW_FORM_data16}
+	    }
 	}
     }
 }
@@ -75,3 +90,8 @@ if { [prepare_for_testing "failed to pre
 }
 
 gdb_test "p/x xxx" " = 0x123456789abcdef00fedcba987654321"
+gdb_test "p xxx" "= 24197857203266734864629346612071973665"
+gdb_test "p/x yyy" " = 0xfedcba987654321"
+gdb_test "p yyy" "= 1147797409030816545"
+gdb_test "p/x sss" " = 0xffffffffffffffff0fedcba987654321"
+gdb_test "p sss" "= -17298946664678735071"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/gdb-index.exp ./gdb/testsuite/gdb.dwarf2/gdb-index.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/gdb-index.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/gdb-index.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 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
@@ -58,7 +58,7 @@ proc add_gdb_index { program } {
     return ${program_with_index}
 }
 
-# Build a copy of the program with .gdb_index.
+# Build a copy of the program with an index (.gdb_index/.debug_names).
 # But only if the toolchain didn't already create one: gdb doesn't support
 # building an index from a program already using one.
 
@@ -67,6 +67,9 @@ gdb_test_multiple "mt print objfiles ${t
     -re "gdb_index.*${gdb_prompt} $" {
 	set binfile_with_index $binfile
     }
+    -re "debug_names.*${gdb_prompt} $" {
+	set binfile_with_index $binfile
+    }
     -re "Psymtabs.*${gdb_prompt} $" {
 	set binfile_with_index [add_gdb_index $binfile]
 	if { ${binfile_with_index} == "" } {
@@ -75,16 +78,16 @@ gdb_test_multiple "mt print objfiles ${t
     }
 }
 
-# Ok, we have a copy of $binfile with .gdb_index.
+# Ok, we have a copy of $binfile with an index.
 # Restart gdb and verify the index was used.
 
 clean_restart ${binfile_with_index}
 gdb_test "mt print objfiles ${testfile}" \
-    "gdb_index.*" \
-    ".gdb_index used"
+    "(gdb_index|debug_names).*" \
+    "index used"
 
-# Make gdb re-read symbols and see if .gdb_index still gets used.
-# symtab/15885
+# Make gdb re-read symbols and see if .gdb_index/.debug_names still
+# gets used.  symtab/15885
 
 # There is gdb_touch_execfile, but it doesn't handle remote hosts.
 # Is touch portable enough?
@@ -98,5 +101,5 @@ if ![runto_main] {
     return -1
 }
 gdb_test "mt print objfiles ${testfile}" \
-    "gdb_index.*" \
-    ".gdb_index used after symbol reloading"
+    "(gdb_index|debug_names).*" \
+    "index used after symbol reloading"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implptr-64bit.exp ./gdb/testsuite/gdb.dwarf2/implptr-64bit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implptr-64bit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/implptr-64bit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implptr.c ./gdb/testsuite/gdb.dwarf2/implptr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implptr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/implptr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implptrconst.c ./gdb/testsuite/gdb.dwarf2/implptrconst.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implptrconst.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/implptrconst.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implptrconst.exp ./gdb/testsuite/gdb.dwarf2/implptrconst.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implptrconst.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/implptrconst.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implptr.exp ./gdb/testsuite/gdb.dwarf2/implptr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implptr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/implptr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp ./gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implptrpiece.exp ./gdb/testsuite/gdb.dwarf2/implptrpiece.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implptrpiece.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/implptrpiece.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 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
@@ -119,14 +119,8 @@ if ![runto_main] {
     return -1
 }
 
-# Determine endianness.
-set endian "little"
-gdb_test_multiple "show endian" "determine endianness" {
-    -re ".* (big|little) endian.*$gdb_prompt $" {
-	set endian $expect_out(1,string)
-	pass "endianness: $endian"
-    }
-}
+# Determine byte order.
+set endian [get_endianness]
 
 # Access the second byte of s through an implicit pointer to the third
 # byte of s, using a negative offset.  Compare that to the second byte of
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implref-array.c ./gdb/testsuite/gdb.dwarf2/implref-array.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implref-array.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/implref-array.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implref-array.exp ./gdb/testsuite/gdb.dwarf2/implref-array.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implref-array.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/implref-array.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implref-const.exp ./gdb/testsuite/gdb.dwarf2/implref-const.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implref-const.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/implref-const.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implref-global.c ./gdb/testsuite/gdb.dwarf2/implref-global.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implref-global.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/implref-global.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implref-global.exp ./gdb/testsuite/gdb.dwarf2/implref-global.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implref-global.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/implref-global.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implref-struct.c ./gdb/testsuite/gdb.dwarf2/implref-struct.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implref-struct.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/implref-struct.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implref-struct.exp ./gdb/testsuite/gdb.dwarf2/implref-struct.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/implref-struct.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/implref-struct.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.c ./gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,23 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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)
+{
+  asm ("main_label: .globl main_label");
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp ./gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,74 @@
+# Copyright 2017-2018 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 "info locals" shows optimized out variables.
+
+load_lib dwarf.exp
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+if {![dwarf2_support]} {
+    return 0
+}
+
+standard_testfile .c ${gdb_test_file_name}-dw.S
+
+# Make some DWARF for the test.
+
+set asm_file [standard_output_file $srcfile2]
+Dwarf::assemble $asm_file {
+    global srcdir subdir srcfile
+    global dwarf_regnum regname
+
+    set buf_var [gdb_target_symbol buf]
+
+    cu {} {
+	DW_TAG_compile_unit {
+		{DW_AT_name info-locals-optimized-out.c}
+		{DW_AT_comp_dir /tmp}
+	} {
+	    declare_labels int_type_label
+
+	    # int
+	    int_type_label: base_type {
+		{name "int"}
+		{encoding @DW_ATE_signed}
+		{byte_size 4 DW_FORM_sdata}
+	    }
+
+	    DW_TAG_subprogram {
+		{MACRO_AT_func { main ${srcdir}/${subdir}/${srcfile} }}
+		{DW_AT_external 1 flag}
+	    } {
+		# A variable completely optimized out.
+		DW_TAG_variable {
+		    {name "opt_out"}
+		    {type :$int_type_label}
+		}
+	    }
+	}
+    }
+}
+
+if { [prepare_for_testing ${testfile}.exp ${testfile} \
+	  [list $srcfile $asm_file] {nodebug}] } {
+    return -1
+}
+
+if ![runto_main] {
+    return -1
+}
+
+# Make sure "info locals" shows optimized out variables.
+gdb_test "info locals" ".*opt_out = <optimized out>.*" "info local shows optimized out variable"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/mac-fileno.exp ./gdb/testsuite/gdb.dwarf2/mac-fileno.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/mac-fileno.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/mac-fileno.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/mac-fileno.S ./gdb/testsuite/gdb.dwarf2/mac-fileno.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/mac-fileno.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/mac-fileno.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2005-2017 Free Software Foundation, Inc.
+   Copyright 2005-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/main.c ./gdb/testsuite/gdb.dwarf2/main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/main-subprogram.c ./gdb/testsuite/gdb.dwarf2/main-subprogram.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/main-subprogram.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/main-subprogram.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/main-subprogram.exp ./gdb/testsuite/gdb.dwarf2/main-subprogram.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/main-subprogram.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/main-subprogram.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.exp ./gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.S ./gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/method-ptr.cc ./gdb/testsuite/gdb.dwarf2/method-ptr.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/method-ptr.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/method-ptr.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/method-ptr.exp ./gdb/testsuite/gdb.dwarf2/method-ptr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/method-ptr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/method-ptr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/missing-sig-type.exp ./gdb/testsuite/gdb.dwarf2/missing-sig-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/missing-sig-type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/missing-sig-type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/nonvar-access.exp ./gdb/testsuite/gdb.dwarf2/nonvar-access.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/nonvar-access.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/nonvar-access.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 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
@@ -128,14 +128,26 @@ Dwarf::assemble $asm_file {
 		    {name def_t}
 		    {type :$struct_t_label}
 		    {location {
-			const1u 0
+			const2s -184
 			stack_value
 			bit_piece 9 0
-			const1s -1
+			const4u 1752286
 			stack_value
 			bit_piece 23 0
 		    } SPECIAL_expr}
 		}
+		# Composite location with some empty pieces.
+		DW_TAG_variable {
+		    {name part_def_a}
+		    {type :$array_a9_label}
+		    {location {
+			piece 3
+			const4u 0xf1927314
+			stack_value
+			piece 4
+			piece 2
+		    } SPECIAL_expr}
+		}
 		# Implicit location: immediate value.
 		DW_TAG_variable {
 		    {name def_implicit_s}
@@ -193,14 +205,8 @@ if ![runto_main] {
     return -1
 }
 
-# Determine endianness.
-set endian "little"
-gdb_test_multiple "show endian" "determine endianness" {
-    -re ".* (big|little) endian.*$gdb_prompt $" {
-	set endian $expect_out(1,string)
-	pass "endianness: $endian"
-    }
-}
+# Determine byte order.
+set endian [get_endianness]
 
 # Byte-aligned objects with simple location descriptions.
 switch $endian { big {set val 0x345678} little {set val 0x785634} }
@@ -221,9 +227,12 @@ gdb_test "print/x *implicit_b_ptr" " = $
 
 # Byte-aligned fields, pieced together from DWARF stack values.
 gdb_test "print def_s" " = \\{a = 0, b = -1\\}"
+switch $endian { big {set val 0x92} little {set val 0x73} }
+gdb_test "print/x part_def_a\[4\]" " = $val"
+gdb_test "print/x part_def_a\[8\]" " = <optimized out>"
 
 # Non-byte-aligned fields, pieced together from DWARF stack values.
-gdb_test "print def_t" " = \\{a = 0, b = -1\\}"
+gdb_test "print def_t" " = \\{a = -184, b = 1752286\\}"
 
 # Simple variable without location.
 gdb_test "print undef_int" " = <optimized out>"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/nostaticblock.exp ./gdb/testsuite/gdb.dwarf2/nostaticblock.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/nostaticblock.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/nostaticblock.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/opaque-type-lookup-2.c ./gdb/testsuite/gdb.dwarf2/opaque-type-lookup-2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/opaque-type-lookup-2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/opaque-type-lookup-2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/opaque-type-lookup.c ./gdb/testsuite/gdb.dwarf2/opaque-type-lookup.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/opaque-type-lookup.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/opaque-type-lookup.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp ./gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pieces.c ./gdb/testsuite/gdb.dwarf2/pieces.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pieces.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/pieces.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pieces.exp ./gdb/testsuite/gdb.dwarf2/pieces.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pieces.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/pieces.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.c ./gdb/testsuite/gdb.dwarf2/pieces-optimized-out.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/pieces-optimized-out.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.exp ./gdb/testsuite/gdb.dwarf2/pieces-optimized-out.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/pieces-optimized-out.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.S ./gdb/testsuite/gdb.dwarf2/pieces-optimized-out.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/pieces-optimized-out.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pieces.S ./gdb/testsuite/gdb.dwarf2/pieces.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pieces.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/pieces.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pr10770.exp ./gdb/testsuite/gdb.dwarf2/pr10770.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pr10770.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/pr10770.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 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
@@ -21,12 +21,6 @@ if {[prepare_for_testing "failed to prep
     return 0
 }
 
-# This test can only be run on targets which use GCC.
-get_compiler_info
-if {![test_compiler_info "gcc-*"]} {
-    return 0
-}
-
 if {![runto_main]} {
     return -1
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pr11465.exp ./gdb/testsuite/gdb.dwarf2/pr11465.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pr11465.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/pr11465.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pr11465.S ./gdb/testsuite/gdb.dwarf2/pr11465.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pr11465.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/pr11465.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2010-2017 Free Software Foundation, Inc.
+/* Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pr13961.exp ./gdb/testsuite/gdb.dwarf2/pr13961.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pr13961.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/pr13961.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pr13961.S ./gdb/testsuite/gdb.dwarf2/pr13961.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/pr13961.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/pr13961.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/shortpiece.exp ./gdb/testsuite/gdb.dwarf2/shortpiece.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/shortpiece.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/shortpiece.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,100 @@
+# Copyright 2017-2018 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 dwarf.exp
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+if {![dwarf2_support]} {
+    return 0
+}
+
+standard_testfile main.c shortpiece-dw.S
+
+# Make some DWARF for the test.
+set asm_file [standard_output_file $srcfile2]
+Dwarf::assemble $asm_file {
+    global pair
+
+    cu { addr_size 4 } {
+	compile_unit {} {
+	    declare_labels int_label ushort_label struct_label
+
+	    int_label: DW_TAG_base_type {
+		{DW_AT_byte_size 4 DW_FORM_udata}
+		{DW_AT_encoding @DW_ATE_unsigned}
+		{DW_AT_name "myint"}
+	    }
+	    ushort_label: DW_TAG_base_type {
+		{DW_AT_byte_size 2 DW_FORM_udata}
+		{DW_AT_encoding @DW_ATE_unsigned}
+		{DW_AT_name "myushort"}
+	    }
+
+	    struct_label: DW_TAG_structure_type {
+		{DW_AT_name "S"}
+		{DW_AT_byte_size 8 DW_FORM_udata}
+	    } {
+		DW_TAG_member {
+		    {DW_AT_name "a"}
+		    {DW_AT_type :${int_label}}
+		    {DW_AT_data_member_location 0 DW_FORM_udata}
+		}
+
+		DW_TAG_member {
+		    {DW_AT_name "b"}
+		    {DW_AT_type :${ushort_label}}
+		    {DW_AT_data_member_location 4 DW_FORM_udata}
+		}
+	    }
+
+	    DW_TAG_variable {
+		{DW_AT_name "s1"}
+		{DW_AT_type :${struct_label}}
+		{DW_AT_external 1 DW_FORM_flag}
+		{DW_AT_location {
+		    DW_OP_constu 1
+		    DW_OP_stack_value
+		    DW_OP_piece 4
+		    DW_OP_constu 0
+		    DW_OP_stack_value
+		    DW_OP_piece 2
+		} SPECIAL_expr}
+	    }
+
+	    DW_TAG_variable {
+		{DW_AT_name "s2"}
+		{DW_AT_type :${struct_label}}
+		{DW_AT_external 1 DW_FORM_flag}
+		{DW_AT_location {
+		    DW_OP_constu 1
+		    DW_OP_stack_value
+		    DW_OP_piece 4
+		    DW_OP_constu 0
+		    DW_OP_stack_value
+		    DW_OP_piece 8
+		} SPECIAL_expr}
+	    }
+	}
+    }
+}
+
+if { [prepare_for_testing "failed to prepare" ${testfile} \
+			  [list $srcfile $asm_file] {nodebug}] } {
+    return -1
+}
+
+gdb_test "p s1" " = {a = 1, b = 0}"
+gdb_test "p s2" \
+    "access outside bounds of object referenced via synthetic pointer"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/staticvirtual.exp ./gdb/testsuite/gdb.dwarf2/staticvirtual.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/staticvirtual.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/staticvirtual.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/subrange.exp ./gdb/testsuite/gdb.dwarf2/subrange.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/subrange.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/subrange.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/symtab-producer.exp ./gdb/testsuite/gdb.dwarf2/symtab-producer.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/symtab-producer.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/symtab-producer.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/trace-crash.exp ./gdb/testsuite/gdb.dwarf2/trace-crash.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/trace-crash.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/trace-crash.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/typeddwarf-amd64.S ./gdb/testsuite/gdb.dwarf2/typeddwarf-amd64.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/typeddwarf-amd64.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/typeddwarf-amd64.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/typeddwarf.exp ./gdb/testsuite/gdb.dwarf2/typeddwarf.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/typeddwarf.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/typeddwarf.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/typeddwarf.S ./gdb/testsuite/gdb.dwarf2/typeddwarf.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/typeddwarf.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/typeddwarf.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/valop.exp ./gdb/testsuite/gdb.dwarf2/valop.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/valop.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/valop.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/valop.S ./gdb/testsuite/gdb.dwarf2/valop.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/valop.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/valop.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/var-access.c ./gdb/testsuite/gdb.dwarf2/var-access.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/var-access.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/var-access.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,25 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+char buf[] = {0, 1, 2, 3, 4, 5, 6, 7};
+
+int
+main (void)
+{
+  asm volatile ("main_label: .globl main_label");
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/var-access.exp ./gdb/testsuite/gdb.dwarf2/var-access.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/var-access.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/var-access.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,345 @@
+# Copyright 2017-2018 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 reading/writing variables with non-trivial DWARF locations.  In
+# particular the test uses register- and memory locations as well as
+# composite locations with register- and memory pieces.
+
+load_lib dwarf.exp
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+if {![dwarf2_support]} {
+    return 0
+}
+
+# Choose suitable integer registers for the test.
+
+set dwarf_regnum {0 1}
+
+if { [is_aarch64_target] } {
+    set regname {x0 x1}
+} elseif { [is_aarch32_target]
+	   || [istarget "s390*-*-*" ]
+	   || [istarget "powerpc*-*-*"]
+	   || [istarget "rs6000*-*-aix*"] } {
+    set regname {r0 r1}
+} elseif { [is_x86_like_target] } {
+    set regname {eax ecx}
+} elseif { [is_amd64_regs_target] } {
+    set regname {rax rdx}
+} else {
+    verbose "Skipping tests for accessing DWARF-described variables."
+    return
+}
+
+standard_testfile .c ${gdb_test_file_name}-dw.S
+
+# Make some DWARF for the test.
+
+set asm_file [standard_output_file $srcfile2]
+Dwarf::assemble $asm_file {
+    global srcdir subdir srcfile
+    global dwarf_regnum regname
+
+    set buf_var [gdb_target_symbol buf]
+
+    cu {} {
+	DW_TAG_compile_unit {
+		{DW_AT_name var-pieces-dw.c}
+		{DW_AT_comp_dir /tmp}
+	} {
+	    declare_labels char_type_label
+	    declare_labels int_type_label short_type_label
+	    declare_labels array_a8_label struct_s_label struct_t_label
+	    declare_labels struct_st_label
+
+	    # char
+	    char_type_label: base_type {
+		{name "char"}
+		{encoding @DW_ATE_unsigned_char}
+		{byte_size 1 DW_FORM_sdata}
+	    }
+
+	    # int
+	    int_type_label: base_type {
+		{name "int"}
+		{encoding @DW_ATE_signed}
+		{byte_size 4 DW_FORM_sdata}
+	    }
+
+	    # char [8]
+	    array_a8_label: array_type {
+		{type :$char_type_label}
+	    } {
+		subrange_type {
+		    {type :$int_type_label}
+		    {upper_bound 7 DW_FORM_udata}
+		}
+	    }
+
+	    # struct s { char a, b, c, d; };
+	    struct_s_label: structure_type {
+		{name "s"}
+		{byte_size 4 DW_FORM_sdata}
+	    } {
+		member {
+		    {name "a"}
+		    {type :$char_type_label}
+		    {data_member_location 0 DW_FORM_udata}
+		}
+		member {
+		    {name "b"}
+		    {type :$char_type_label}
+		    {data_member_location 1 DW_FORM_udata}
+		}
+		member {
+		    {name "c"}
+		    {type :$char_type_label}
+		    {data_member_location 2 DW_FORM_udata}
+		}
+		member {
+		    {name "d"}
+		    {type :$char_type_label}
+		    {data_member_location 3 DW_FORM_udata}
+		}
+	    }
+
+	    # struct t { int u, x:9, y:13, z:10; };
+	    struct_t_label: structure_type {
+		{name "t"}
+		{byte_size 8 DW_FORM_sdata}
+	    } {
+		member {
+		    {name "u"}
+		    {type :$int_type_label}
+		}
+		member {
+		    {name "x"}
+		    {type :$int_type_label}
+		    {data_member_location 4 DW_FORM_udata}
+		    {bit_size 9 DW_FORM_udata}
+		}
+		member {
+		    {name "y"}
+		    {type :$int_type_label}
+		    {data_bit_offset 41 DW_FORM_udata}
+		    {bit_size 13 DW_FORM_udata}
+		}
+		member {
+		    {name "z"}
+		    {type :$int_type_label}
+		    {data_bit_offset 54 DW_FORM_udata}
+		    {bit_size 10 DW_FORM_udata}
+		}
+	    }
+
+	    # struct st { struct s s; struct t t; };
+	    struct_st_label: structure_type {
+		{name "st"}
+		{byte_size 12 DW_FORM_udata}
+	    } {
+		member {
+		    {name "s"}
+		    {type :$struct_s_label}
+		}
+		member {
+		    {name "t"}
+		    {type :$struct_t_label}
+		    {data_member_location 4 DW_FORM_udata}
+		}
+	    }
+
+	    DW_TAG_subprogram {
+		{MACRO_AT_func { main ${srcdir}/${subdir}/${srcfile} }}
+		{DW_AT_external 1 flag}
+	    } {
+		# Simple memory location.
+		DW_TAG_variable {
+		    {name "a"}
+		    {type :$array_a8_label}
+		    {location {
+			addr $buf_var
+		    } SPECIAL_expr}
+		}
+		# Memory pieces: two bytes from &buf[2], and two bytes
+		# from &buf[0].
+		DW_TAG_variable {
+		    {name "s1"}
+		    {type :$struct_s_label}
+		    {location {
+			addr $buf_var
+			plus_uconst 2
+			piece 2
+			addr $buf_var
+			piece 2
+		    } SPECIAL_expr}
+		}
+		# Register- and memory pieces: one byte each from r0,
+		# &buf[4], r1, and &buf[5].
+		DW_TAG_variable {
+		    {name "s2"}
+		    {type :$struct_s_label}
+		    {location {
+			regx [lindex $dwarf_regnum 0]
+			piece 1
+			addr "$buf_var + 4"
+			piece 1
+			regx [lindex $dwarf_regnum 1]
+			piece 1
+			addr "$buf_var + 5"
+			piece 1
+		    } SPECIAL_expr}
+		}
+		# Memory pieces for bitfield access: 8 bytes optimized
+		# out, 3 bytes from &buf[3], and 1 byte from &buf[1].
+		DW_TAG_variable {
+		    {name "st1"}
+		    {type :$struct_st_label}
+		    {location {
+			piece 8
+			addr "$buf_var + 3"
+			piece 3
+			addr "$buf_var + 1"
+			piece 1
+		    } SPECIAL_expr}
+		}
+		# Register pieces for bitfield access: 4 bytes optimized
+		# out, 3 bytes from r0, and 1 byte from r1.
+		DW_TAG_variable {
+		    {name "t2"}
+		    {type :$struct_t_label}
+		    {location {
+			piece 4
+			regx [lindex $dwarf_regnum 0]
+			piece 3
+			regx [lindex $dwarf_regnum 1]
+			piece 1
+		    } SPECIAL_expr}
+		}
+		# One piece per bitfield, using piece offsets: 32 bits of
+		# an implicit value, 9 bits of a stack value, 13 bits of
+		# r0, and 10 bits of buf.
+		DW_TAG_variable {
+		    {name "t3"}
+		    {type :$struct_t_label}
+		    {location {
+			implicit_value 0x12 0x34 0x56 0x78 0x9a
+			bit_piece 32 4
+			const2s -280
+			stack_value
+			bit_piece 9 2
+			regx [lindex $dwarf_regnum 0]
+			bit_piece 13 14
+			addr $buf_var
+			bit_piece 10 42
+		    } SPECIAL_expr}
+		}
+	    }
+	}
+    }
+}
+
+if { [prepare_for_testing ${testfile}.exp ${testfile} \
+	  [list $srcfile $asm_file] {nodebug}] } {
+    return -1
+}
+
+if ![runto_main] {
+    return -1
+}
+
+# Determine byte order.
+set endian [get_endianness]
+
+# Byte-aligned memory pieces.
+gdb_test "print/d s1" " = \\{a = 2, b = 3, c = 0, d = 1\\}" \
+    "s1 == re-ordered buf"
+gdb_test_no_output "set var s1.a = 63"
+gdb_test "print/d s1" " = \\{a = 63, b = 3, c = 0, d = 1\\}" \
+    "verify s1.a"
+gdb_test "print/d a" " = \\{0, 1, 63, 3, 4, 5, 6, 7\\}" \
+    "verify s1.a through a"
+gdb_test_no_output "set var s1.b = 42"
+gdb_test "print/d s1" " = \\{a = 63, b = 42, c = 0, d = 1\\}" \
+    "verify s1.b"
+gdb_test "print/d a" " = \\{0, 1, 63, 42, 4, 5, 6, 7\\}" \
+    "verify s1.b through a"
+
+# Byte-aligned register- and memory pieces.
+gdb_test_no_output "set var \$[lindex $regname 0] = 81" \
+    "init reg for s2.a"
+gdb_test_no_output "set var \$[lindex $regname 1] = 28" \
+    "init reg for s2.c"
+gdb_test "print/u s2" " = \\{a = 81, b = 4, c = 28, d = 5\\}" \
+    "initialized s2 from mem and regs"
+gdb_test_no_output "set var s2.c += s2.a + s2.b - s2.d"
+gdb_test "print/u s2" " = \\{a = 81, b = 4, c = 108, d = 5\\}" \
+    "verify s2.c"
+gdb_test "print/u \$[lindex $regname 1]" " = 108" \
+    "verify s2.c through reg"
+gdb_test_no_output "set var s2 = {191, 73, 231, 123}" \
+    "re-initialize s2"
+gdb_test "print/u s2"  " = \\{a = 191, b = 73, c = 231, d = 123\\}" \
+    "verify re-initialized s2"
+
+# Unaligned bitfield access through byte-aligned pieces.
+gdb_test_no_output "set var a = { 0 }"
+gdb_test_no_output "set var st1.t.x = -7"
+gdb_test_no_output "set var st1.t.z = 340"
+gdb_test_no_output "set var st1.t.y = 1234"
+gdb_test "print st1.t" " = \\{u = <optimized out>, x = -7, y = 1234, z = 340\\}" \
+    "verify st1.t"
+switch $endian {
+    little {set val "0x55, 0x0, 0xf9, 0xa5, 0x9"}
+    big {set val "0x54, 0x0, 0xfc, 0x93, 0x49"}
+}
+# | -- | z:2-9 | -- | x:0-7 | x:8 y:0-6 | y:7-12 z:0-1 | -- | -- |
+#      \_______________________________________________/
+#                             val
+gdb_test "print/x a" " = \\{0x0, ${val}, 0x0, 0x0\\}" \
+    "verify st1 through a"
+
+switch $endian { big {set val 0x7ffc} little {set val 0x3ffe00} }
+gdb_test_no_output "set var \$[lindex $regname 0] = $val" \
+    "init t2, first piece"
+gdb_test_no_output "set var \$[lindex $regname 1] = 0" \
+    "init t2, second piece"
+gdb_test "print/d t2" " = \\{u = <optimized out>, x = 0, y = -1, z = 0\\}" \
+    "initialized t2 from regs"
+gdb_test_no_output "set var t2.y = 2641"
+gdb_test_no_output "set var t2.z = -400"
+gdb_test_no_output "set var t2.x = 200"
+gdb_test "print t2.x + t2.y + t2.z" " = 2441"
+
+# Bitfield access through pieces with nonzero piece offsets.
+gdb_test_no_output "set var \$[lindex $regname 0] = 0xa8000" \
+    "init reg for t3.y"
+gdb_test_no_output "set var *(char \[2\] *) (a + 5) = { 70, 82 }" \
+    "init mem for t3.z"
+switch $endian {
+    little {set val "u = -1484430527, x = -70, y = 42, z = 145"}
+    big {set val "u = 591751049, x = -70, y = 42, z = 101"}
+}
+gdb_test "print t3" " = \\{$val\\}" \
+    "initialized t3 from reg and mem"
+gdb_test_no_output "set var t3.y = -1" \
+    "overwrite t3.y"
+gdb_test "print/x \$[lindex $regname 0]" " = 0x7ffc000" \
+    "verify t3.y through reg"
+gdb_test_no_output "set var t3.z = -614" \
+    "overwrite t3.z"
+switch $endian {big {set val "0x59, 0xa2"} little {set val "0x6a, 0x56"}}
+gdb_test "print/x *(char \[2\] *) (a + 5)" " = \\{$val\\}" \
+    "verify t3.z through mem"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/watch-notconst2.c ./gdb/testsuite/gdb.dwarf2/watch-notconst2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/watch-notconst2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/watch-notconst2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/watch-notconst2.S ./gdb/testsuite/gdb.dwarf2/watch-notconst2.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/watch-notconst2.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/watch-notconst2.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/watch-notconst.c ./gdb/testsuite/gdb.dwarf2/watch-notconst.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/watch-notconst.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/watch-notconst.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/watch-notconst.exp ./gdb/testsuite/gdb.dwarf2/watch-notconst.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.dwarf2/watch-notconst.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/watch-notconst.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/array-element.exp ./gdb/testsuite/gdb.fortran/array-element.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/array-element.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/array-element.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/array-element.f ./gdb/testsuite/gdb.fortran/array-element.f
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/array-element.f	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/array-element.f	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-c Copyright 2005-2017 Free Software Foundation, Inc.
+c Copyright 2005-2018 Free Software Foundation, Inc.
 
 c This program is free software; you can redistribute it and/or modify
 c it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/charset.exp ./gdb/testsuite/gdb.fortran/charset.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/charset.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/charset.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/common-block.exp ./gdb/testsuite/gdb.fortran/common-block.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/common-block.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/common-block.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 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
@@ -11,8 +11,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # This file was written by Jan Kratochvil <jan.kratochvil@redhat.com>.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/common-block.f90 ./gdb/testsuite/gdb.fortran/common-block.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/common-block.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/common-block.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2008-2017 Free Software Foundation, Inc.
+! Copyright 2008-2018 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
@@ -11,8 +11,7 @@
 ! GNU General Public License for more details.
 !
 ! You should have received a copy of the GNU General Public License
-! along with this program; if not, write to the Free Software
-! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+! along with this program.  If not, see <http://www.gnu.org/licenses/>.
 !
 ! Ihis file is the Fortran source file for dynamic.exp.
 ! Original file written by Jakub Jelinek <jakub@redhat.com>.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/complex.exp ./gdb/testsuite/gdb.fortran/complex.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/complex.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/complex.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/complex.f ./gdb/testsuite/gdb.fortran/complex.f
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/complex.f	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/complex.f	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-c Copyright 2007-2017 Free Software Foundation, Inc.
+c Copyright 2007-2018 Free Software Foundation, Inc.
 
 c This program is free software; you can redistribute it and/or modify
 c it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/derived-type.exp ./gdb/testsuite/gdb.fortran/derived-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/derived-type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/derived-type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/derived-type.f90 ./gdb/testsuite/gdb.fortran/derived-type.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/derived-type.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/derived-type.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2006-2017 Free Software Foundation, Inc.
+! Copyright 2006-2018 Free Software Foundation, Inc.
 !
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/derived-type-function.exp ./gdb/testsuite/gdb.fortran/derived-type-function.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/derived-type-function.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/derived-type-function.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/derived-type-function.f90 ./gdb/testsuite/gdb.fortran/derived-type-function.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/derived-type-function.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/derived-type-function.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2016-2017 Free Software Foundation, Inc.
+! Copyright 2016-2018 Free Software Foundation, Inc.
 !
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/exprs.exp ./gdb/testsuite/gdb.fortran/exprs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/exprs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/exprs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/library-module.exp ./gdb/testsuite/gdb.fortran/library-module.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/library-module.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/library-module.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/library-module-lib.f90 ./gdb/testsuite/gdb.fortran/library-module-lib.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/library-module-lib.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/library-module-lib.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2010-2017 Free Software Foundation, Inc.
+! Copyright 2010-2018 Free Software Foundation, Inc.
 ! 
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/library-module-main.f90 ./gdb/testsuite/gdb.fortran/library-module-main.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/library-module-main.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/library-module-main.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2010-2017 Free Software Foundation, Inc.
+! Copyright 2010-2018 Free Software Foundation, Inc.
 ! 
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/logical.exp ./gdb/testsuite/gdb.fortran/logical.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/logical.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/logical.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 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
@@ -11,8 +11,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # This file was written by Jan Kratochvil <jan.kratochvil@redhat.com>.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/logical.f90 ./gdb/testsuite/gdb.fortran/logical.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/logical.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/logical.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2010-2017 Free Software Foundation, Inc.
+! Copyright 2010-2018 Free Software Foundation, Inc.
 !
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/module.exp ./gdb/testsuite/gdb.fortran/module.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/module.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/module.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/module.f90 ./gdb/testsuite/gdb.fortran/module.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/module.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/module.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2009-2017 Free Software Foundation, Inc.
+! Copyright 2009-2018 Free Software Foundation, Inc.
 ! 
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/multi-dim.exp ./gdb/testsuite/gdb.fortran/multi-dim.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/multi-dim.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/multi-dim.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/multi-dim.f90 ./gdb/testsuite/gdb.fortran/multi-dim.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/multi-dim.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/multi-dim.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2011-2017 Free Software Foundation, Inc.
+! Copyright 2011-2018 Free Software Foundation, Inc.
 !
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/nested-funcs.exp ./gdb/testsuite/gdb.fortran/nested-funcs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/nested-funcs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/nested-funcs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/nested-funcs.f90 ./gdb/testsuite/gdb.fortran/nested-funcs.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/nested-funcs.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/nested-funcs.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2016-2017 Free Software Foundation, Inc.
+! Copyright 2016-2018 Free Software Foundation, Inc.
 !
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/print-formatted.exp ./gdb/testsuite/gdb.fortran/print-formatted.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/print-formatted.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/print-formatted.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/print-formatted.f90 ./gdb/testsuite/gdb.fortran/print-formatted.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/print-formatted.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/print-formatted.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2014-2017 Free Software Foundation, Inc.
+! Copyright 2014-2018 Free Software Foundation, Inc.
 !
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/printing-types.exp ./gdb/testsuite/gdb.fortran/printing-types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/printing-types.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/printing-types.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,35 @@
+# Copyright 2017-2018 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/>.
+
+if {[skip_fortran_tests]} { return -1 }
+
+standard_testfile .f90
+
+if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug f90}]} {
+    return -1
+}
+
+if {![runto MAIN__]} then {
+    untested "Could not run to breakpoint MAIN__"
+    return -1
+}
+
+gdb_breakpoint [gdb_get_line_number "write"]
+gdb_continue_to_breakpoint "write"
+
+gdb_test "print oneByte"	" = 1"
+gdb_test "print twobytes"	" = 2"
+gdb_test "print chvalue"	" = \'a\'"
+gdb_test "print logvalue"	" = \.TRUE\."
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/printing-types.f90 ./gdb/testsuite/gdb.fortran/printing-types.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/printing-types.f90	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/printing-types.f90	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,27 @@
+! Copyright 2017-2018 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/>.
+
+program prog
+  integer(1) :: oneByte
+  integer(2) :: twoBytes
+  character  :: chValue
+  logical(1) :: logValue
+
+  oneByte  = 1
+  twoBytes = 2
+  chValue  = 'a'
+  logValue = .true.
+  write(*,*) s
+end
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/ptr-indentation.exp ./gdb/testsuite/gdb.fortran/ptr-indentation.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/ptr-indentation.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/ptr-indentation.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,41 @@
+# Copyright 2017-2018 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/>.
+
+if {[skip_fortran_tests]} { return -1 }
+
+standard_testfile .f90
+load_lib fortran.exp
+
+if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug f90}]} {
+    return -1
+}
+
+if {![runto MAIN__]} then {
+    untested "couldn't run to breakpoint MAIN__"
+    return -1
+}
+
+set int [fortran_int4]
+set real [fortran_real4]
+
+gdb_breakpoint [gdb_get_line_number "BP1"]
+gdb_continue_to_breakpoint "BP1"
+
+# Check the indentation when using ptype on pointers in user-defined types.
+gdb_test "ptype tinsta" \
+  [multi_line "type = Type tuserdef" \
+              "    $int :: i" \
+              "    PTR TO -> \\( $real :: ptr\\)" \
+              "End Type tuserdef"]
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/ptr-indentation.f90 ./gdb/testsuite/gdb.fortran/ptr-indentation.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/ptr-indentation.f90	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/ptr-indentation.f90	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,30 @@
+! Copyright 2017-2018 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/>.
+
+program main
+  implicit none
+
+  type tuserdef
+    integer :: i
+    real, pointer :: ptr
+  end type tuserdef
+  real, target :: rval
+
+  type(tuserdef), target:: tinsta,tinstb,tinstc
+
+  tinsta%i = 4
+  tinsta%ptr => rval                        !BP1
+
+end program main
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/subarray.exp ./gdb/testsuite/gdb.fortran/subarray.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/subarray.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/subarray.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/subarray.f ./gdb/testsuite/gdb.fortran/subarray.f
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/subarray.f	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/subarray.f	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-c Copyright 2005-2017 Free Software Foundation, Inc.
+c Copyright 2005-2018 Free Software Foundation, Inc.
 
 c This program is free software; you can redistribute it and/or modify
 c it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/type.f90 ./gdb/testsuite/gdb.fortran/type.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/type.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/type.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2013-2017 Free Software Foundation, Inc.
+! Copyright 2013-2018 Free Software Foundation, Inc.
 !
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/types.exp ./gdb/testsuite/gdb.fortran/types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/types.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/types.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1994-2017 Free Software Foundation, Inc.
+# Copyright 1994-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp ./gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-datatypes.exp ./gdb/testsuite/gdb.fortran/vla-datatypes.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-datatypes.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-datatypes.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-datatypes.f90 ./gdb/testsuite/gdb.fortran/vla-datatypes.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-datatypes.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-datatypes.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2015-2017 Free Software Foundation, Inc.
+! Copyright 2015-2018 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
@@ -11,8 +11,7 @@
 ! GNU General Public License for more details.
 !
 ! You should have received a copy of the GNU General Public License
-! along with this program; if not, write to the Free Software
-! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+! along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 program vla_primitives
   integer, allocatable    :: intvla(:, :, :)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla.f90 ./gdb/testsuite/gdb.fortran/vla.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2015-2017 Free Software Foundation, Inc.
+! Copyright 2015-2018 Free Software Foundation, Inc.
 !
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-history.exp ./gdb/testsuite/gdb.fortran/vla-history.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-history.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-history.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-ptr-info.exp ./gdb/testsuite/gdb.fortran/vla-ptr-info.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-ptr-info.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-ptr-info.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-ptype.exp ./gdb/testsuite/gdb.fortran/vla-ptype.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-ptype.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-ptype.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
@@ -39,7 +39,7 @@ gdb_test "ptype vla1(3, 6, 9)" "no such 
   "ptype vla1(3, 6, 9) not initialized"
 gdb_test "ptype vla2(5, 45, 20)" \
   "no such vector element \\\(vector not allocated\\\)" \
-  "ptype vla1(5, 45, 20) not initialized"
+  "ptype vla2(5, 45, 20) not initialized"
 
 gdb_breakpoint [gdb_get_line_number "vla1-allocated"]
 gdb_continue_to_breakpoint "vla1-allocated"
@@ -63,7 +63,7 @@ gdb_continue_to_breakpoint "vla2-filled"
 gdb_test "ptype vla2" "type = $real \\\(7,42:50,13:35\\\)" \
   "ptype vla2 filled"
 gdb_test "ptype vla2(5, 45, 20)" "type = $real" \
-  "ptype vla1(5, 45, 20) filled"
+  "ptype vla2(5, 45, 20) filled"
 
 gdb_breakpoint [gdb_get_line_number "pvla-associated"]
 gdb_continue_to_breakpoint "pvla-associated"
@@ -77,7 +77,7 @@ gdb_continue_to_breakpoint "pvla-re-asso
 gdb_test "ptype pvla" "type = $real \\\(7,42:50,13:35\\\)" \
   "ptype pvla re-associated"
 gdb_test "ptype vla2(5, 45, 20)" "type = $real" \
-  "ptype vla1(5, 45, 20) re-associated"
+  "ptype vla2(5, 45, 20) re-associated"
 
 gdb_breakpoint [gdb_get_line_number "pvla-deassociated"]
 gdb_continue_to_breakpoint "pvla-deassociated"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp ./gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-ptype-sub.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-sizeof.exp ./gdb/testsuite/gdb.fortran/vla-sizeof.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-sizeof.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-sizeof.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-sub.f90 ./gdb/testsuite/gdb.fortran/vla-sub.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-sub.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-sub.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2015-2017 Free Software Foundation, Inc.
+! Copyright 2015-2018 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
@@ -11,8 +11,7 @@
 ! GNU General Public License for more details.
 !
 ! You should have received a copy of the GNU General Public License
-! along with this program; if not, write to the Free Software
-! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+! along with this program.  If not, see <http://www.gnu.org/licenses/>.
 !
 ! Original file written by Jakub Jelinek <jakub@redhat.com> and
 ! Jan Kratochvil <jan.kratochvil@redhat.com>.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-type.exp ./gdb/testsuite/gdb.fortran/vla-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-type.f90 ./gdb/testsuite/gdb.fortran/vla-type.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-type.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-type.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2016-2017 Free Software Foundation, Inc.
+! Copyright 2016-2018 Free Software Foundation, Inc.
 
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-value.exp ./gdb/testsuite/gdb.fortran/vla-value.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-value.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-value.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
@@ -14,6 +14,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 standard_testfile "vla.f90"
+load_lib "fortran.exp"
 
 if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
      {debug f90 quiet}] } {
@@ -25,12 +26,16 @@ if ![runto_main] {
     return -1
 }
 
+# Depending on the compiler being used,
+# the type names can be printed differently.
+set real [fortran_real4]
+
 # Try to access values in non allocated VLA
 gdb_breakpoint [gdb_get_line_number "vla1-init"]
 gdb_continue_to_breakpoint "vla1-init"
 gdb_test "print vla1" " = <not allocated>" "print non-allocated vla1"
 gdb_test "print &vla1" \
-  " = \\\(PTR TO -> \\\( real\\\(kind=4\\\) \\\(<not allocated>\\\)\\\)\\\) $hex" \
+  " = \\\(PTR TO -> \\\( $real \\\(<not allocated>\\\)\\\)\\\) $hex" \
   "print non-allocated &vla1"
 gdb_test "print vla1(1,1,1)" "no such vector element \\\(vector not allocated\\\)" \
   "print member in non-allocated vla1 (1)"
@@ -51,12 +56,12 @@ with_timeout_factor 15 {
 	"step over value assignment of vla1"
 }
 gdb_test "print &vla1" \
-  " = \\\(PTR TO -> \\\( real\\\(kind=4\\\) \\\(10,10,10\\\)\\\)\\\) $hex" \
+  " = \\\(PTR TO -> \\\( $real \\\(10,10,10\\\)\\\)\\\) $hex" \
   "print allocated &vla1"
 gdb_test "print vla1(3, 6, 9)" " = 1311" "print allocated vla1(3,6,9)"
 gdb_test "print vla1(1, 3, 8)" " = 1311" "print allocated vla1(1,3,8)"
 gdb_test "print vla1(9, 9, 9) = 999" " = 999" \
-  "print allocated vla1(9,9,9)=1"
+  "print allocated vla1(9,9,9)=999"
 
 # Try to access values in allocated VLA after specific assignment
 gdb_breakpoint [gdb_get_line_number "vla1-filled"]
@@ -71,7 +76,7 @@ gdb_test "print vla1(9, 9, 9)" " = 999" 
 # Try to access values in undefined pointer to VLA (dangling)
 gdb_test "print pvla" " = <not associated>" "print undefined pvla"
 gdb_test "print &pvla" \
-  " = \\\(PTR TO -> \\\( real\\\(kind=4\\\) \\\(<not associated>\\\)\\\)\\\) $hex" \
+  " = \\\(PTR TO -> \\\( $real \\\(<not associated>\\\)\\\)\\\) $hex" \
   "print non-associated &pvla"
 gdb_test "print pvla(1, 3, 8)" "no such vector element \\\(vector not associated\\\)" \
   "print undefined pvla(1,3,8)"
@@ -80,7 +85,7 @@ gdb_test "print pvla(1, 3, 8)" "no such 
 gdb_breakpoint [gdb_get_line_number "pvla-associated"]
 gdb_continue_to_breakpoint "pvla-associated"
 gdb_test "print &pvla" \
-  " = \\\(PTR TO -> \\\( real\\\(kind=4\\\) \\\(10,10,10\\\)\\\)\\\) $hex" \
+  " = \\\(PTR TO -> \\\( $real \\\(10,10,10\\\)\\\)\\\) $hex" \
   "print associated &pvla"
 gdb_test "print pvla(3, 6, 9)" " = 42" "print associated pvla(3,6,9)"
 gdb_test "print pvla(1, 3, 8)" " = 1001" "print associated pvla(1,3,8)"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp ./gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-value-sub.exp ./gdb/testsuite/gdb.fortran/vla-value-sub.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-value-sub.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-value-sub.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp ./gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/whatis_type.exp ./gdb/testsuite/gdb.fortran/whatis_type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.fortran/whatis_type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/whatis_type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.gdb/complaints.exp ./gdb/testsuite/gdb.gdb/complaints.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.gdb/complaints.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.gdb/complaints.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 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
@@ -58,16 +58,18 @@ proc test_initial_complaints { } {
     gdb_test "set stop_whining = 2"
 
     # Prime the system
-    gdb_test_stdio "call complaint (&symfile_complaints, \"Register a complaint\")" \
-	    "During symbol reading, Register a complaint."
+    gdb_test_stdio \
+	"call complaint_internal (&symfile_complaints, \"Register a complaint\")" \
+	"During symbol reading, Register a complaint."
 
     # Check that the complaint was inserted and where
     gdb_test "print symfile_complaints->root->fmt" \
 	    ".\[0-9\]+ =.*\"Register a complaint\""
 
     # Re-issue the first message #1
-    gdb_test_stdio "call complaint (&symfile_complaints, symfile_complaints->root->fmt)" \
-	    "During symbol reading, Register a complaint."
+    gdb_test_stdio \
+	"call complaint_internal (&symfile_complaints, symfile_complaints->root->fmt)" \
+	"During symbol reading, Register a complaint."
 
     # Check that there is only one thing in the list.  How the boolean
     # result is output depends on whether GDB is built as a C or C++
@@ -76,8 +78,9 @@ proc test_initial_complaints { } {
 	    ".\[0-9\]+ = \(1|true\)" "list has one entry"
 
     # Add a second complaint, expect it
-    gdb_test_stdio "call complaint (&symfile_complaints, \"Testing! Testing! Testing!\")" \
-	    "During symbol reading, Testing. Testing. Testing.."
+    gdb_test_stdio \
+	"call complaint_internal (&symfile_complaints, \"Testing! Testing! Testing!\")" \
+	"During symbol reading, Testing. Testing. Testing.."
 
     return 0
 }
@@ -86,12 +89,14 @@ proc test_serial_complaints { } {
     gdb_test_exact "call clear_complaints (&symfile_complaints, 1, 0)" "" "serial start"
 
     # Prime the system
-    test_complaint "call complaint (&symfile_complaints, \"serial line 1\")" \
+    test_complaint \
+	"call complaint_internal (&symfile_complaints, \"serial line 1\")" \
 	"During symbol reading...serial line 1..." \
 	"serial line 1"
 
     # Add a second complaint, expect it
-    test_complaint "call complaint (&symfile_complaints, \"serial line 2\")" \
+    test_complaint \
+	"call complaint_internal (&symfile_complaints, \"serial line 2\")" \
 	"serial line 2..." \
 	"serial line 2"
 
@@ -109,12 +114,14 @@ proc test_short_complaints { } {
     gdb_test_exact "call clear_complaints (&symfile_complaints, 1, 1)" "" "short start"
 
     # Prime the system
-    test_complaint "call complaint (&symfile_complaints, \"short line 1\")" \
+    test_complaint \
+	"call complaint_internal (&symfile_complaints, \"short line 1\")" \
 	"short line 1..." \
 	"short line 1"
 
     # Add a second complaint, expect it
-    test_complaint "call complaint (&symfile_complaints, \"short line 2\")" \
+    test_complaint \
+	"call complaint_internal (&symfile_complaints, \"short line 2\")" \
 	"short line 2..." \
 	"short line 2"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.gdb/observer.exp ./gdb/testsuite/gdb.gdb/observer.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.gdb/observer.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.gdb/observer.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.gdb/python-interrupts.exp ./gdb/testsuite/gdb.gdb/python-interrupts.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.gdb/python-interrupts.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.gdb/python-interrupts.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.gdb/python-selftest.exp ./gdb/testsuite/gdb.gdb/python-selftest.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.gdb/python-selftest.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.gdb/python-selftest.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.gdb/selftest.exp ./gdb/testsuite/gdb.gdb/selftest.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.gdb/selftest.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.gdb/selftest.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1988-2017 Free Software Foundation, Inc.
+# Copyright 1988-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.gdb/unittest.exp ./gdb/testsuite/gdb.gdb/unittest.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.gdb/unittest.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.gdb/unittest.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 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
@@ -13,5 +13,24 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+set do_xml_test [expr ![gdb_skip_xml_test]]
+
 gdb_start
-gdb_test "maintenance selftest" "Ran $decimal unit tests, 0 failed"
+
+set test "maintenance selftest"
+gdb_test_multiple $test $test {
+  -re "Ran ($decimal) unit tests, 0 failed\r\n$gdb_prompt $" {
+	set num_ran $expect_out(1,string)
+	gdb_assert "$num_ran > 0" $test
+  }
+
+  -re "Selftests are not available in a non-development build.\r\n$gdb_prompt $" {
+	unsupported $test
+  }
+}
+
+if { ![is_remote host] && $do_xml_test } {
+    gdb_test "maintenance check xml-descriptions ${srcdir}/../features" \
+	"Tested $decimal XML files, 0 failed" \
+	"maintenance check xml-descriptions \${srcdir}/../features"
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.gdb/xfullpath.exp ./gdb/testsuite/gdb.gdb/xfullpath.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.gdb/xfullpath.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.gdb/xfullpath.exp	1970-01-01 00:00:00.000000000 +0000
@@ -1,60 +0,0 @@
-# Copyright 2002-2017 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 was written by Joel Brobecker. (brobecker@gnat.com), derived
-# from selftest.exp, written by Rob Savoye.
-
-load_lib selftest-support.exp
-
-proc test_with_self {} {
-    # A file which contains a directory prefix
-    gdb_test "print gdb_realpath (\"./xfullpath.exp\")" \
-             ".\[0-9\]+ =.*\".*/xfullpath.exp\"" \
-             "A filename with ./ as the directory prefix"
-
-    # A file which contains a directory prefix
-    gdb_test "print gdb_realpath (\"../../defs.h\")" \
-             ".\[0-9\]+ =.*\".*/defs.h\"" \
-             "A filename with ../ in the directory prefix"
-
-    # A one-character filename
-    gdb_test "print gdb_realpath (\"./a\")" \
-             ".\[0-9\]+ =.*\".*/a\"" \
-             "A one-char filename in the current directory"
-          
-    # A file in the root directory
-    gdb_test "print gdb_realpath (\"/root_file_which_should_exist\")" \
-             ".\[0-9\]+ =.*\"/root_file_which_should_exist\"" \
-             "A filename in the root directory"
-          
-    # A file which does not have a directory prefix
-    gdb_test "print gdb_realpath (\"xfullpath.exp\")" \
-             ".\[0-9\]+ =.*\"xfullpath.exp\"" \
-             "A filename without any directory prefix"
-
-    # A one-char filename without any directory prefix
-    gdb_test "print gdb_realpath (\"a\")" \
-             ".\[0-9\]+ =.*\"a\"" \
-             "A one-char filename without any directory prefix"
-
-    # An empty filename
-    gdb_test "print gdb_realpath (\"\")" \
-             ".\[0-9\]+ =.*\"\"" \
-             "an empty filename"
-
-    return 0
-}
-
-do_self_tests captured_main test_with_self
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/basic-types.exp ./gdb/testsuite/gdb.go/basic-types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/basic-types.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.go/basic-types.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/chan.exp ./gdb/testsuite/gdb.go/chan.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/chan.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.go/chan.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/handcall.exp ./gdb/testsuite/gdb.go/handcall.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/handcall.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.go/handcall.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/hello.exp ./gdb/testsuite/gdb.go/hello.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/hello.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.go/hello.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/integers.exp ./gdb/testsuite/gdb.go/integers.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/integers.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.go/integers.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/methods.exp ./gdb/testsuite/gdb.go/methods.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/methods.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.go/methods.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/package.exp ./gdb/testsuite/gdb.go/package.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/package.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.go/package.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/print.exp ./gdb/testsuite/gdb.go/print.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/print.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.go/print.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/strings.exp ./gdb/testsuite/gdb.go/strings.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/strings.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.go/strings.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/types.exp ./gdb/testsuite/gdb.go/types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/types.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.go/types.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/unsafe.exp ./gdb/testsuite/gdb.go/unsafe.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.go/unsafe.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.go/unsafe.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/guile.exp ./gdb/testsuite/gdb.guile/guile.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/guile.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/guile.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-arch.c ./gdb/testsuite/gdb.guile/scm-arch.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-arch.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-arch.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-arch.exp ./gdb/testsuite/gdb.guile/scm-arch.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-arch.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-arch.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-block.c ./gdb/testsuite/gdb.guile/scm-block.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-block.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-block.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-block.exp ./gdb/testsuite/gdb.guile/scm-block.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-block.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-block.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-breakpoint.c ./gdb/testsuite/gdb.guile/scm-breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-breakpoint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-breakpoint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-breakpoint.exp ./gdb/testsuite/gdb.guile/scm-breakpoint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-breakpoint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-breakpoint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-cmd.c ./gdb/testsuite/gdb.guile/scm-cmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-cmd.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-cmd.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-cmd.exp ./gdb/testsuite/gdb.guile/scm-cmd.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-cmd.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-cmd.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-disasm.c ./gdb/testsuite/gdb.guile/scm-disasm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-disasm.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-disasm.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-disasm.exp ./gdb/testsuite/gdb.guile/scm-disasm.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-disasm.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-disasm.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-equal.c ./gdb/testsuite/gdb.guile/scm-equal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-equal.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-equal.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-equal.exp ./gdb/testsuite/gdb.guile/scm-equal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-equal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-equal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-error-1.scm ./gdb/testsuite/gdb.guile/scm-error-1.scm
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-error-1.scm	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-error-1.scm	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2018 Free Software Foundation, Inc.
 ;;
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-error-2.scm ./gdb/testsuite/gdb.guile/scm-error-2.scm
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-error-2.scm	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-error-2.scm	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2018 Free Software Foundation, Inc.
 ;;
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-error.exp ./gdb/testsuite/gdb.guile/scm-error.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-error.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-error.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-frame-args.c ./gdb/testsuite/gdb.guile/scm-frame-args.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-frame-args.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-frame-args.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-frame-args.exp ./gdb/testsuite/gdb.guile/scm-frame-args.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-frame-args.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-frame-args.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-frame-args.scm ./gdb/testsuite/gdb.guile/scm-frame-args.scm
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-frame-args.scm	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-frame-args.scm	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-;; Copyright (C) 2014-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2018 Free Software Foundation, Inc.
 ;;
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-frame.exp ./gdb/testsuite/gdb.guile/scm-frame.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-frame.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-frame.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-frame-inline.c ./gdb/testsuite/gdb.guile/scm-frame-inline.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-frame-inline.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-frame-inline.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-frame-inline.exp ./gdb/testsuite/gdb.guile/scm-frame-inline.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-frame-inline.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-frame-inline.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-gsmob.exp ./gdb/testsuite/gdb.guile/scm-gsmob.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-gsmob.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-gsmob.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-iterator.c ./gdb/testsuite/gdb.guile/scm-iterator.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-iterator.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-iterator.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-iterator.exp ./gdb/testsuite/gdb.guile/scm-iterator.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-iterator.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-iterator.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-lazy-string.c ./gdb/testsuite/gdb.guile/scm-lazy-string.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-lazy-string.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-lazy-string.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2016 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-lazy-string.exp ./gdb/testsuite/gdb.guile/scm-lazy-string.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-lazy-string.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-lazy-string.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2016 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-math.c ./gdb/testsuite/gdb.guile/scm-math.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-math.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-math.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-math.exp ./gdb/testsuite/gdb.guile/scm-math.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-math.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-math.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-objfile.c ./gdb/testsuite/gdb.guile/scm-objfile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-objfile.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-objfile.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-objfile.exp ./gdb/testsuite/gdb.guile/scm-objfile.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-objfile.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-objfile.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-objfile-script.c ./gdb/testsuite/gdb.guile/scm-objfile-script.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-objfile-script.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-objfile-script.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-objfile-script.exp ./gdb/testsuite/gdb.guile/scm-objfile-script.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-objfile-script.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-objfile-script.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-objfile-script-gdb.in ./gdb/testsuite/gdb.guile/scm-objfile-script-gdb.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-objfile-script-gdb.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-objfile-script-gdb.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-;; Copyright (C) 2011-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2018 Free Software Foundation, Inc.
 ;;
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-parameter.exp ./gdb/testsuite/gdb.guile/scm-parameter.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-parameter.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-parameter.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-ports.c ./gdb/testsuite/gdb.guile/scm-ports.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-ports.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-ports.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-ports.exp ./gdb/testsuite/gdb.guile/scm-ports.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-ports.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-ports.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-pretty-print.c ./gdb/testsuite/gdb.guile/scm-pretty-print.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-pretty-print.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-pretty-print.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-pretty-print.exp ./gdb/testsuite/gdb.guile/scm-pretty-print.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-pretty-print.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-pretty-print.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-pretty-print.scm ./gdb/testsuite/gdb.guile/scm-pretty-print.scm
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-pretty-print.scm	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-pretty-print.scm	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2018 Free Software Foundation, Inc.
 ;;
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-progspace.c ./gdb/testsuite/gdb.guile/scm-progspace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-progspace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-progspace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-progspace.exp ./gdb/testsuite/gdb.guile/scm-progspace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-progspace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-progspace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-section-script.c ./gdb/testsuite/gdb.guile/scm-section-script.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-section-script.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-section-script.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-section-script.exp ./gdb/testsuite/gdb.guile/scm-section-script.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-section-script.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-section-script.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-section-script.scm ./gdb/testsuite/gdb.guile/scm-section-script.scm
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-section-script.scm	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-section-script.scm	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2018 Free Software Foundation, Inc.
 ;;
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-symbol.c ./gdb/testsuite/gdb.guile/scm-symbol.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-symbol.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-symbol.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-symbol.exp ./gdb/testsuite/gdb.guile/scm-symbol.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-symbol.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-symbol.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-symtab-2.c ./gdb/testsuite/gdb.guile/scm-symtab-2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-symtab-2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-symtab-2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-symtab.c ./gdb/testsuite/gdb.guile/scm-symtab.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-symtab.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-symtab.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-symtab.exp ./gdb/testsuite/gdb.guile/scm-symtab.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-symtab.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-symtab.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-type.c ./gdb/testsuite/gdb.guile/scm-type.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-type.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-type.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-type.exp ./gdb/testsuite/gdb.guile/scm-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-value.c ./gdb/testsuite/gdb.guile/scm-value.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-value.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-value.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-value-cc.cc ./gdb/testsuite/gdb.guile/scm-value-cc.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-value-cc.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-value-cc.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-value-cc.exp ./gdb/testsuite/gdb.guile/scm-value-cc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-value-cc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-value-cc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-value.exp ./gdb/testsuite/gdb.guile/scm-value.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/scm-value.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-value.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/source2.scm ./gdb/testsuite/gdb.guile/source2.scm
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/source2.scm	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/source2.scm	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 ;; This testcase is part of GDB, the GNU debugger.
 ;;
-;; Copyright 2008-2017 Free Software Foundation, Inc.
+;; Copyright 2008-2018 Free Software Foundation, Inc.
 ;;
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/types-module.cc ./gdb/testsuite/gdb.guile/types-module.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/types-module.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/types-module.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/types-module.exp ./gdb/testsuite/gdb.guile/types-module.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.guile/types-module.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/types-module.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/3explicit.c ./gdb/testsuite/gdb.linespec/3explicit.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/3explicit.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/3explicit.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/base/one/header.h ./gdb/testsuite/gdb.linespec/base/one/header.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/base/one/header.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/base/one/header.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/base/one/thefile.cc ./gdb/testsuite/gdb.linespec/base/one/thefile.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/base/one/thefile.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/base/one/thefile.cc	2018-01-09 02:04:57.000000000 +0000
@@ -23,3 +23,8 @@ int NameSpace::overload(int x)
 {
   return x + 23;
 }
+
+int z1 ()
+{
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/base/two/header.h ./gdb/testsuite/gdb.linespec/base/two/header.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/base/two/header.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/base/two/header.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/base/two/thefile.cc ./gdb/testsuite/gdb.linespec/base/two/thefile.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/base/two/thefile.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/base/two/thefile.cc	2018-01-09 02:04:57.000000000 +0000
@@ -24,3 +24,8 @@ int NameSpace::overload(double x)
 {
   return (int) x - 23;
 }
+
+int z2 ()
+{
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/break-ask.exp ./gdb/testsuite/gdb.linespec/break-ask.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/break-ask.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/break-ask.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/break-asm-file0.s ./gdb/testsuite/gdb.linespec/break-asm-file0.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/break-asm-file0.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/break-asm-file0.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/break-asm-file1.s ./gdb/testsuite/gdb.linespec/break-asm-file1.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/break-asm-file1.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/break-asm-file1.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/break-asm-file.c ./gdb/testsuite/gdb.linespec/break-asm-file.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/break-asm-file.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/break-asm-file.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/break-asm-file.exp ./gdb/testsuite/gdb.linespec/break-asm-file.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/break-asm-file.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/break-asm-file.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpcompletion.exp ./gdb/testsuite/gdb.linespec/cpcompletion.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpcompletion.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/cpcompletion.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,957 @@
+# Copyright 2017-2018 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.
+
+load_lib completion-support.exp
+
+standard_testfile cpls.cc cpls2.cc cpls-hyphen.cc
+
+if {[prepare_for_testing "failed to prepare" $testfile \
+	 [list $srcfile $srcfile2 $srcfile3] {debug}]} {
+    return -1
+}
+
+# Disable the completion limit for the whole testcase.
+gdb_test_no_output "set max-completions unlimited"
+
+# Start of tests.
+
+# Test completion of all parameter prefixes, crossing "(" and ")",
+# with and without whitespace.
+
+proc_with_prefix all-param-prefixes {} {
+
+    # Test both linespecs and explicit locations.
+    foreach cmd_prefix {"b" "b -function"} {
+	set line "$cmd_prefix param_prefixes_test_long(long)"
+	set start [index_after "test_long" $line]
+	test_complete_prefix_range $line $start
+
+	# Same, but with extra spaces.  Note that the original spaces in
+	# the input line are preserved after completion.
+	test_gdb_complete_unique \
+	    "$cmd_prefix param_prefixes_test_long(long "   \
+	    "$cmd_prefix param_prefixes_test_long(long )"
+	test_gdb_complete_unique \
+	    "$cmd_prefix param_prefixes_test_long( long "  \
+	    "$cmd_prefix param_prefixes_test_long( long )"
+	test_gdb_complete_unique \
+	    "$cmd_prefix param_prefixes_test_long ( long " \
+	    "$cmd_prefix param_prefixes_test_long ( long )"
+
+	# Complete all parameter prefixes between "(i" and "(int*, int&)".
+	# Note that this exercises completing when the point is at the
+	# space in "param_prefixes_test_intp_intr(int*, ".
+	set line "$cmd_prefix param_prefixes_test_intp_intr(int*, int&)"
+	set start [index_after "intp_intr" $line]
+	test_complete_prefix_range $line $start
+
+	# Similar, but with extra spaces.
+	test_gdb_complete_unique \
+	    "$cmd_prefix param_prefixes_test_intp_intr (  int* " \
+	    "$cmd_prefix param_prefixes_test_intp_intr (  int* , int&)"
+
+	test_gdb_complete_unique \
+	    "$cmd_prefix param_prefixes_test_intp_intr (  int *" \
+	    "$cmd_prefix param_prefixes_test_intp_intr (  int *, int&)"
+
+	test_gdb_complete_unique \
+	    "$cmd_prefix param_prefixes_test_intp_intr (  int *, int " \
+	    "$cmd_prefix param_prefixes_test_intp_intr (  int *, int &)"
+
+	test_gdb_complete_unique \
+	    "$cmd_prefix param_prefixes_test_intp_intr (  int *,  int & " \
+	    "$cmd_prefix param_prefixes_test_intp_intr (  int *,  int & )"
+    }
+}
+
+# Test completion of an overloaded function.
+
+proc_with_prefix overload {} {
+    set completion_list {
+	"overload_ambiguous_test(int, int)"
+	"overload_ambiguous_test(int, long)"
+	"overload_ambiguous_test(long)"
+    }
+
+    foreach cmd_prefix {"b" "b -function"} {
+	test_gdb_complete_multiple \
+	    "$cmd_prefix " "overload_ambiguous_" "test(" \
+	    $completion_list
+	check_bp_locations_match_list \
+	    "$cmd_prefix overload_ambiguous_test" \
+	    $completion_list
+
+	# Test disambiguating by typing enough to pick the "int" as
+	# first parameter type.  This then tests handling ambiguity in
+	# the second parameter, which checks that tab completion when
+	# the point is at the whitespace behaves naturally, by showing
+	# the remaining matching overloads to the user.
+	test_gdb_complete_multiple \
+	    "$cmd_prefix " "overload_ambiguous_test(i" "nt, " {
+	    "overload_ambiguous_test(int, int)"
+	    "overload_ambiguous_test(int, long)"
+	}
+
+	# Add a few more characters to make the completion
+	# unambiguous.
+	test_gdb_complete_unique \
+	    "$cmd_prefix overload_ambiguous_test(int, i" \
+	    "$cmd_prefix overload_ambiguous_test(int, int)"
+	check_bp_locations_match_list \
+	    "$cmd_prefix overload_ambiguous_test(int, int)" {
+		"overload_ambiguous_test(int, int)"
+	    }
+    }
+}
+
+# Test completion of a function that is defined in different scopes
+# with different parameters.
+
+proc_with_prefix overload-2 {} {
+    with_test_prefix "all" {
+	set completion_list {
+	    "(anonymous namespace)::overload2_function(overload2_arg3)"
+	    "(anonymous namespace)::struct_overload2_test::overload2_function(overload2_arg4)"
+	    "ns_overload2_test::(anonymous namespace)::ns_overload2_test::overload2_function(overload2_arg9)"
+	    "ns_overload2_test::(anonymous namespace)::ns_overload2_test::struct_overload2_test::overload2_function(overload2_arga)"
+	    "ns_overload2_test::(anonymous namespace)::overload2_function(overload2_arg7)"
+	    "ns_overload2_test::(anonymous namespace)::struct_overload2_test::overload2_function(overload2_arg8)"
+	    "ns_overload2_test::overload2_function(overload2_arg5)"
+	    "ns_overload2_test::struct_overload2_test::overload2_function(overload2_arg6)"
+	    "overload2_function(overload2_arg1)"
+	    "struct_overload2_test::overload2_function(overload2_arg2)"
+	}
+	foreach cmd_prefix {"b" "b -function"} {
+	    test_gdb_complete_multiple \
+		"$cmd_prefix " "overload2_func" "tion(overload2_arg" $completion_list
+	    check_bp_locations_match_list \
+		"$cmd_prefix overload2_function" $completion_list
+	}
+    }
+
+    # Same, but restrict to functions/methods in some scope.
+    with_test_prefix "restrict scope" {
+	set completion_list {
+	    "ns_overload2_test::(anonymous namespace)::ns_overload2_test::overload2_function(overload2_arg9)"
+	    "ns_overload2_test::overload2_function(overload2_arg5)"
+	}
+	foreach cmd_prefix {"b" "b -function"} {
+	    test_gdb_complete_multiple \
+		"$cmd_prefix " "ns_overload2_test::overload2_func" "tion(overload2_arg" $completion_list
+	    check_bp_locations_match_list \
+		"$cmd_prefix ns_overload2_test::overload2_function" $completion_list
+	}
+    }
+
+    # Restrict to anonymous namespace scopes.
+    with_test_prefix "restrict scope 2" {
+	set completion_list {
+	    "(anonymous namespace)::overload2_function(overload2_arg3)"
+	    "ns_overload2_test::(anonymous namespace)::overload2_function(overload2_arg7)"
+	}
+	foreach cmd_prefix {"b" "b -function"} {
+	    test_gdb_complete_multiple \
+		"$cmd_prefix " "(anonymous namespace)::overload2_func" "tion(overload2_arg" $completion_list
+	    check_bp_locations_match_list \
+		"$cmd_prefix (anonymous namespace)::overload2_function" $completion_list
+	}
+    }
+
+    # Add enough scopes, and we get a unique completion.
+    with_test_prefix "unique completion" {
+	foreach cmd_prefix {"b" "b -function"} {
+	    test_gdb_complete_unique \
+		"$cmd_prefix ns_overload2_test::(anonymous namespace)::overload2_func" \
+		"$cmd_prefix ns_overload2_test::(anonymous namespace)::overload2_function(overload2_arg7)"
+	    check_setting_bp_fails "$cmd_prefix ns_overload2_test::(anonymous namespace)::overload2_func"
+	    check_bp_locations_match_list \
+		"$cmd_prefix ns_overload2_test::(anonymous namespace)::overload2_function" \
+		{"ns_overload2_test::(anonymous namespace)::overload2_function(overload2_arg7)"}
+	}
+    }
+}
+
+# Test linespecs / locations using fully-qualified names.
+
+proc_with_prefix fqn {} {
+
+    # "-qualified" works with both explicit locations and linespecs.
+    # Also test that combining a source file with a function name
+    # still results in a full match, with both linespecs and explicit
+    # locations.
+    foreach cmd_prefix {
+	"b -qualified "
+	"b -qualified -function "
+	"b -qualified cpls.cc:"
+	"b -qualified -source cpls.cc -function "
+	"b -source cpls.cc -qualified -function "
+    } {
+	test_gdb_complete_unique \
+	    "${cmd_prefix}overload2_func" \
+	    "${cmd_prefix}overload2_function(overload2_arg1)"
+
+	# Drill down until we find a unique completion.
+	test_gdb_complete_multiple "${cmd_prefix}" "ns_overload2_test::" "" {
+	    "ns_overload2_test::(anonymous namespace)::ns_overload2_test::overload2_function(overload2_arg9)"
+	    "ns_overload2_test::(anonymous namespace)::ns_overload2_test::struct_overload2_test::overload2_function(overload2_arga)"
+	    "ns_overload2_test::(anonymous namespace)::overload2_function(overload2_arg7)"
+	    "ns_overload2_test::(anonymous namespace)::struct_overload2_test::overload2_function(overload2_arg8)"
+	    "ns_overload2_test::overload2_function(overload2_arg5)"
+	    "ns_overload2_test::struct_overload2_test::overload2_function(overload2_arg6)"
+	}
+
+	test_gdb_complete_multiple "${cmd_prefix}" "ns_overload2_test::(anonymous namespace)::" "" {
+	    "ns_overload2_test::(anonymous namespace)::ns_overload2_test::overload2_function(overload2_arg9)"
+	    "ns_overload2_test::(anonymous namespace)::ns_overload2_test::struct_overload2_test::overload2_function(overload2_arga)"
+	    "ns_overload2_test::(anonymous namespace)::overload2_function(overload2_arg7)"
+	    "ns_overload2_test::(anonymous namespace)::struct_overload2_test::overload2_function(overload2_arg8)"
+	}
+
+	test_gdb_complete_multiple "${cmd_prefix}" "ns_overload2_test::(anonymous namespace)::ns_overload2_test::" "" {
+	    "ns_overload2_test::(anonymous namespace)::ns_overload2_test::overload2_function(overload2_arg9)"
+	    "ns_overload2_test::(anonymous namespace)::ns_overload2_test::struct_overload2_test::overload2_function(overload2_arga)"
+	}
+
+	test_gdb_complete_unique \
+	    "${cmd_prefix}ns_overload2_test::(anonymous namespace)::ns_overload2_test::overload2_func" \
+	    "${cmd_prefix}ns_overload2_test::(anonymous namespace)::ns_overload2_test::overload2_function(overload2_arg9)"
+
+    }
+}
+
+# Check that a fully-qualified lookup name doesn't match symbols in
+# nested scopes.
+
+proc_with_prefix fqn-2 {} {
+    set linespec "struct_overload2_test::overload2_function(overload2_arg6)"
+    set cmd_prefix "b -qualified"
+    check_setting_bp_fails "$cmd_prefix $linespec"
+    test_gdb_complete_none "$cmd_prefix $linespec"
+
+    # Check that using the same name, but not fully-qualifying it,
+    # would find something, just to make sure the test above is
+    # testing what we intend to test.
+    set cmd_prefix "b -function"
+    test_gdb_complete_unique "$cmd_prefix $linespec" "$cmd_prefix $linespec"
+    check_bp_locations_match_list \
+	"$cmd_prefix $linespec" \
+	{"ns_overload2_test::struct_overload2_test::overload2_function(overload2_arg6)"}
+}
+
+# Test completion of functions in different scopes that have the same
+# name and parameters.  Restricting the scopes should find fewer and
+# fewer matches.
+
+proc_with_prefix overload-3 {} {
+    with_test_prefix "all overloads" {
+	set completion_list {
+	    "(anonymous namespace)::overload3_function(int)"
+	    "(anonymous namespace)::overload3_function(long)"
+	    "(anonymous namespace)::struct_overload3_test::overload3_function(int)"
+	    "(anonymous namespace)::struct_overload3_test::overload3_function(long)"
+	    "ns_overload3_test::(anonymous namespace)::ns_overload3_test::overload3_function(int)"
+	    "ns_overload3_test::(anonymous namespace)::ns_overload3_test::overload3_function(long)"
+	    "ns_overload3_test::(anonymous namespace)::ns_overload3_test::struct_overload3_test::overload3_function(int)"
+	    "ns_overload3_test::(anonymous namespace)::ns_overload3_test::struct_overload3_test::overload3_function(long)"
+	    "ns_overload3_test::(anonymous namespace)::overload3_function(int)"
+	    "ns_overload3_test::(anonymous namespace)::overload3_function(long)"
+	    "ns_overload3_test::(anonymous namespace)::struct_overload3_test::overload3_function(int)"
+	    "ns_overload3_test::(anonymous namespace)::struct_overload3_test::overload3_function(long)"
+	    "ns_overload3_test::overload3_function(int)"
+	    "ns_overload3_test::overload3_function(long)"
+	    "ns_overload3_test::struct_overload3_test::overload3_function(int)"
+	    "ns_overload3_test::struct_overload3_test::overload3_function(long)"
+	    "overload3_function(int)"
+	    "overload3_function(long)"
+	    "struct_overload3_test::overload3_function(int)"
+	    "struct_overload3_test::overload3_function(long)"
+	}
+	foreach cmd_prefix {"b" "b -function"} {
+	    test_gdb_complete_multiple "$cmd_prefix " "overload3_func" "tion(" $completion_list
+	    check_bp_locations_match_list "$cmd_prefix overload3_function" $completion_list
+	}
+    }
+
+    with_test_prefix "restrict overload" {
+	foreach cmd_prefix {"b" "b -function"} {
+	    test_gdb_complete_unique \
+		"$cmd_prefix overload3_function(int)" \
+		"$cmd_prefix overload3_function(int)"
+	    check_bp_locations_match_list "$cmd_prefix overload3_function(int)" {
+		"(anonymous namespace)::overload3_function(int)"
+		"(anonymous namespace)::struct_overload3_test::overload3_function(int)"
+		"ns_overload3_test::(anonymous namespace)::ns_overload3_test::overload3_function(int)"
+		"ns_overload3_test::(anonymous namespace)::ns_overload3_test::struct_overload3_test::overload3_function(int)"
+		"ns_overload3_test::(anonymous namespace)::overload3_function(int)"
+		"ns_overload3_test::(anonymous namespace)::struct_overload3_test::overload3_function(int)"
+		"ns_overload3_test::overload3_function(int)"
+		"ns_overload3_test::struct_overload3_test::overload3_function(int)"
+		"overload3_function(int)"
+		"struct_overload3_test::overload3_function(int)"
+	    }
+	}
+    }
+
+    with_test_prefix "restrict scope" {
+	set completion_list {
+	    "(anonymous namespace)::struct_overload3_test::overload3_function(int)"
+	    "(anonymous namespace)::struct_overload3_test::overload3_function(long)"
+	    "ns_overload3_test::(anonymous namespace)::ns_overload3_test::struct_overload3_test::overload3_function(int)"
+	    "ns_overload3_test::(anonymous namespace)::ns_overload3_test::struct_overload3_test::overload3_function(long)"
+	    "ns_overload3_test::(anonymous namespace)::struct_overload3_test::overload3_function(int)"
+	    "ns_overload3_test::(anonymous namespace)::struct_overload3_test::overload3_function(long)"
+	    "ns_overload3_test::struct_overload3_test::overload3_function(int)"
+	    "ns_overload3_test::struct_overload3_test::overload3_function(long)"
+	    "struct_overload3_test::overload3_function(int)"
+	    "struct_overload3_test::overload3_function(long)"
+	}
+	foreach cmd_prefix {"b" "b -function"} {
+	    test_gdb_complete_multiple \
+		"$cmd_prefix " "struct_overload3_test::overload3_func" "tion(" \
+		$completion_list
+	    check_bp_locations_match_list \
+		"$cmd_prefix struct_overload3_test::overload3_function" \
+		$completion_list
+	}
+    }
+}
+
+# Test completing an overloaded template method.
+
+proc_with_prefix template-overload {} {
+    set completion_list {
+	"template_struct<int>::template_overload_fn(int)"
+	"template_struct<long>::template_overload_fn(long)"
+    }
+    foreach cmd_prefix {"b" "b -function"} {
+	test_gdb_complete_multiple "$cmd_prefix " "template_overload_fn" "(" $completion_list
+	check_bp_locations_match_list "$cmd_prefix template_overload_fn" $completion_list
+	check_bp_locations_match_list \
+	    "$cmd_prefix template_struct<int>::template_overload_fn" \
+	    "template_struct<int>::template_overload_fn(int)"
+    }
+}
+
+# Test completing template methods with non-void return type.
+
+proc_with_prefix template-ret-type {} {
+    set method_name "template2_fn<int, int>"
+    set param_list "(template2_ret_type<int>, int, int)"
+    set struct_type "template2_struct<template2_ret_type<int> >"
+    set ret_type "template2_ret_type<int>"
+
+    # Templates are listed both with and without return type, making
+    # "template2_<tab>" ambiguous.
+    foreach cmd_prefix {"b" "b -function"} {
+	set completion_list \
+	    [list \
+		 "${ret_type} ${struct_type}::${method_name}${param_list}" \
+		 "${struct_type}::${method_name}${param_list}"]
+	test_gdb_complete_multiple "$cmd_prefix " "template2_" "" $completion_list
+
+	# Add one character more after "2_", and the linespec becomes
+	# unambiguous.  Test completing the whole prefix range after that,
+	# thus testing completing either with or without return type.
+	foreach {s t} [list \
+			   "template2_r" \
+			   "${ret_type} ${struct_type}::${method_name}${param_list}" \
+			   "template2_s" \
+			   "${struct_type}::${method_name}${param_list}"] {
+	    set linespec $t
+	    set complete_line "$cmd_prefix $linespec"
+	    set start [index_after $s $complete_line]
+	    test_complete_prefix_range $complete_line $start
+	}
+
+	# Setting a breakpoint without the template params doesn't work.
+	check_setting_bp_fails "$cmd_prefix template2_fn"
+	# However, setting a breakpoint with template params and without
+	# the method params does work, just like with non-template
+	# functions.  It also works with or without return type.
+	foreach linespec [list \
+			      "${method_name}" \
+			      "${method_name}${param_list}" \
+			      "${struct_type}::${method_name}" \
+			      "${struct_type}::${method_name}${param_list}" \
+			      "${ret_type} ${struct_type}::${method_name}" \
+			      "${ret_type} ${struct_type}::${method_name}${param_list}"] {
+	    check_bp_locations_match_list \
+		"$cmd_prefix $linespec" \
+		[list "${struct_type}::${method_name}${param_list}"]
+	}
+    }
+}
+
+# Test completion of a const-overloaded funtion (const-overload).
+# Note that "const" appears after the function/method parameters.
+
+proc_with_prefix const-overload {} {
+    set completion_list {
+	"struct_with_const_overload::const_overload_fn()"
+	"struct_with_const_overload::const_overload_fn() const"
+    }
+    foreach cmd_prefix {"b" "b -function"} {
+	test_gdb_complete_multiple \
+	    "$cmd_prefix " "const_overload_fn" "()" \
+	    $completion_list
+	test_gdb_complete_multiple \
+	    "$cmd_prefix " "const_overload_fn ( " ")" \
+	    $completion_list
+	test_gdb_complete_multiple \
+	    "$cmd_prefix " "const_overload_fn()" "" \
+	    $completion_list
+
+	check_bp_locations_match_list \
+	    "$cmd_prefix const_overload_fn" \
+	    {"struct_with_const_overload::const_overload_fn()"
+		"struct_with_const_overload::const_overload_fn() const"}
+
+	check_setting_bp_fails "$cmd_prefix const_overload_fn("
+	check_bp_locations_match_list \
+	    "$cmd_prefix const_overload_fn()" \
+	    {"struct_with_const_overload::const_overload_fn()"}
+	check_bp_locations_match_list \
+	    "$cmd_prefix const_overload_fn() const" \
+	    {"struct_with_const_overload::const_overload_fn() const"}
+    }
+}
+
+# Same but quote-enclose the function name.  This makes the overload
+# no longer be ambiguous.
+
+proc_with_prefix const-overload-quoted {} {
+    foreach cmd_prefix {"b" "b -function"} {
+	set linespec "'const_overload_fn()'"
+	test_gdb_complete_unique "$cmd_prefix $linespec" "$cmd_prefix $linespec"
+	check_bp_locations_match_list \
+	    "$cmd_prefix $linespec" {
+		"struct_with_const_overload::const_overload_fn()"
+	    }
+
+	set linespec "'const_overload_fn() const'"
+	test_gdb_complete_unique "$cmd_prefix $linespec" "$cmd_prefix $linespec"
+	check_bp_locations_match_list \
+	    "$cmd_prefix $linespec" {
+		"struct_with_const_overload::const_overload_fn() const"
+	    }
+    }
+}
+
+# Test that when the function is unambiguous, linespec completion
+# appends the end quote char automatically, both ' and ".
+
+proc_with_prefix append-end-quote-char-when-unambiguous {} {
+    foreach cmd_prefix {"b" "b -function"} {
+	foreach qc $completion::all_quotes_list {
+	    set linespec "${qc}not_overloaded_fn()${qc}"
+	    foreach cmd [list "$cmd_prefix ${qc}not_overloaded_fn()" \
+			      "$cmd_prefix ${qc}not_overloaded_fn" \
+			      "$cmd_prefix ${qc}not_overloaded_"] {
+		test_gdb_complete_unique $cmd "$cmd_prefix $linespec"
+	    }
+	    check_bp_locations_match_list \
+		"$cmd_prefix $linespec" {"not_overloaded_fn()"}
+	}
+    }
+}
+
+# Test completing symbols of source files.
+
+proc_with_prefix in-source-file-unconstrained {} {
+    # First test that unconstrained matching picks up functions from
+    # multiple files.
+    test_gdb_complete_multiple "b " "file_constrained_test" "_cpls" {
+	"file_constrained_test_cpls2_function(int)"
+	"file_constrained_test_cpls_function(int)"
+    }
+    check_setting_bp_fails "b file_constrained_test_cpls"
+}
+
+# Test an unambiguous completion that would be ambiguous if it weren't
+# for the source file component, due to
+# "file_constrained_test_cpls_function" in cpls.cc.  Test with
+# different components quoted, and with whitespace before the function
+# name.
+
+proc_with_prefix in-source-file-unambiguous {} {
+    foreach sqc $completion::maybe_quoted_list {
+	foreach fqc $completion::maybe_quoted_list {
+	    # Linespec.
+	    foreach sep {":" ": "} {
+		set linespec \
+		    "${sqc}cpls2.cc${sqc}${sep}${fqc}file_constrained_test_cpls2_function(int)${fqc}"
+		set complete_line "b $linespec"
+		set start [index_after "constrained_test" $complete_line]
+		set input_line [string range $complete_line 0 $start]
+		test_gdb_complete_unique $input_line ${complete_line}
+		check_bp_locations_match_list "b $linespec" {
+		    "file_constrained_test_cpls2_function(int)"
+		}
+	    }
+
+	    # Explicit location.
+	    set source_opt "-source ${sqc}cpls2.cc${sqc}"
+	    set function_opt "-function ${fqc}file_constrained_test_cpls2_function(int)${fqc}"
+	    set complete_line "b $source_opt $function_opt"
+	    set start [index_after "cpls2_functio" $complete_line]
+	    set input_line [string range $complete_line 0 $start]
+	    test_gdb_complete_unique $input_line ${complete_line}
+	    check_bp_locations_match_list "$complete_line" {
+		    "file_constrained_test_cpls2_function(int)"
+	    }
+	}
+    }
+}
+
+# Test an ambiguous completion constrained by a source file.  Test
+# with different components quoted, and with whitespace before the
+# function name.
+
+proc_with_prefix in-source-file-ambiguous {} {
+    foreach sqc $completion::maybe_quoted_list {
+	foreach fqc $completion::maybe_quoted_list {
+	    # Linespec.
+	    foreach sep {":" ": "} {
+		set cmd_prefix "b ${sqc}cpls2.cc${sqc}${sep}"
+		test_gdb_complete_multiple "${cmd_prefix}" ${fqc} "" {
+		    "another_file_constrained_test_cpls2_function(int)"
+		    "file_constrained_test_cpls2_function(int)"
+		} ${fqc} ${fqc}
+	    }
+
+	    # Explicit location.
+	    test_gdb_complete_multiple \
+		"b -source ${sqc}cpls2.cc${sqc} -function " ${fqc} "" {
+		"another_file_constrained_test_cpls2_function(int)"
+		"file_constrained_test_cpls2_function(int)"
+	    } ${fqc} ${fqc}
+	}
+    }
+}
+
+# Check that completing a file name in a linespec auto-appends a colon
+# instead of a whitespace character.
+
+proc_with_prefix source-complete-appends-colon {} {
+    # Test with quotes to make sure the end quote char is put at the
+    # right place.
+    foreach qc $completion::maybe_quoted_list {
+	test_gdb_complete_unique \
+	    "b ${qc}cpls2." \
+	    "b ${qc}cpls2.cc${qc}" ":"
+	test_gdb_complete_unique \
+	    "b ${qc}cpls2.c" \
+	    "b ${qc}cpls2.cc${qc}" ":"
+	test_gdb_complete_unique \
+	    "b ${qc}cpls2.cc" \
+	    "b ${qc}cpls2.cc${qc}" ":"
+
+	# Same, but with a filename with an hyphen (which is normally
+	# a language word break char).
+	test_gdb_complete_unique \
+	    "b ${qc}cpls-" \
+	    "b ${qc}cpls-hyphen.cc${qc}" ":"
+	test_gdb_complete_unique \
+	    "b ${qc}cpls-hyphen" \
+	    "b ${qc}cpls-hyphen.cc${qc}" ":"
+    }
+
+    # Test the same, but with the name of a nonexisting file.
+
+    # Cursor at the end of the string.
+    test_gdb_complete_none "b nonexistingfilename.cc"
+    # Cursor past the end of the string.
+    test_gdb_complete_multiple "b nonexistingfilename.cc " "" "" \
+	$completion::keyword_list
+    foreach qc $completion::all_quotes_list {
+	# Unterminated quote.
+	test_gdb_complete_none "b ${qc}nonexistingfilename.cc"
+	test_gdb_complete_none "b ${qc}nonexistingfilename.cc "
+	# Terminated quote, cursor at the quote.
+	test_gdb_complete_unique \
+	    "b ${qc}nonexistingfilename.cc${qc}" \
+	    "b ${qc}nonexistingfilename.cc${qc}"
+	# Terminated quote, cursor past the quote.
+	test_gdb_complete_multiple \
+	    "b ${qc}nonexistingfilename.cc${qc} " "" "" \
+	    $completion::keyword_list
+    }
+}
+
+####################################################################
+
+# Test that a colon at the end of the linespec is understood as an
+# incomplete scope operator (incomplete-scope-colon), instead of a
+# source/function separator.
+
+proc_with_prefix incomplete-scope-colon {} {
+
+    # Helper for the loop below to simplify it.  Tests completion of
+    # the range defined by the RANGE_SS found in the constructed line.
+    #
+    # E.g., with:
+    #
+    #   source="source.cc"
+    #   fqc="'"
+    #   prototype="ns::function()"
+    #   range_ss="s::f"
+    #
+    # we'd try completing with the cursor set in each of the
+    # underlined range's positions of:
+    #
+    #   b source.cc:'ns::function()'"
+    #                 ^^^^
+    #
+    # Also test that setting a breakpoint at the constructed line
+    # finds the same breakpoint location as completion does.
+    #
+    proc incomplete_scope_colon_helper {prototype range_ss {skip_check_bp 0}} {
+	foreach source {"" "cpls.cc"} {
+	    # Test with and without source quoting.
+	    foreach sqc $completion::maybe_quoted_list {
+		if {$source == "" && $sqc != ""} {
+		    # Invalid combination.
+		    continue
+		}
+
+		# Test with and without function quoting.
+		foreach fqc $completion::maybe_quoted_list {
+		    if {$source == ""} {
+			set linespec_source ""
+			set explicit_source ""
+		    } else {
+			set linespec_source "${sqc}${source}${sqc}:"
+			set explicit_source "-source ${sqc}${source}${sqc}"
+		    }
+
+		    # Even though this use case is trickier with
+		    # linespecs due to the ":" as separator, test both
+		    # linespecs and explicit locations for
+		    # completeness.
+		    foreach location [list \
+					  "${linespec_source}${fqc}$prototype${fqc}" \
+					  "${explicit_source} -function ${fqc}$prototype${fqc}"] {
+			set complete_line "b $location"
+			set start [string first $range_ss $complete_line]
+			set end [expr ($start + [string length $range_ss])]
+			test_complete_prefix_range $complete_line $start $end
+			if {!$skip_check_bp} {
+			    check_bp_locations_match_list "b $location" [list "$prototype"]
+			}
+		    }
+		}
+	    }
+	}
+    }
+
+    incomplete_scope_colon_helper \
+	"struct_incomplete_scope_colon_test::incomplete_scope_colon_test()" \
+	"t::i"
+
+    incomplete_scope_colon_helper \
+	"ns_incomplete_scope_colon_test::incomplete_scope_colon_test()" \
+	"t::i"
+
+    # Test completing around both "::"s.
+    foreach range_ss {"t::s" "t::i"} skip_check_bp {0 1} {
+	incomplete_scope_colon_helper \
+	    "ns2_incomplete_scope_colon_test::struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test()" \
+	    $range_ss $skip_check_bp
+    }
+}
+
+# Test completing functions/methods in anonymous namespaces.
+
+proc_with_prefix anon-ns {} {
+    foreach cmd_prefix {"b" "b -function"} {
+	foreach qc $completion::maybe_quoted_list {
+	    test_gdb_complete_unique \
+		"$cmd_prefix ${qc}anon_ns_function" \
+		"$cmd_prefix ${qc}anon_ns_function()${qc}"
+	    check_bp_locations_match_list "$cmd_prefix ${qc}anon_ns_function()${qc}" {
+		"(anonymous namespace)::anon_ns_function()"
+		"(anonymous namespace)::anon_ns_struct::anon_ns_function()"
+		"the_anon_ns_wrapper_ns::(anonymous namespace)::anon_ns_function()"
+		"the_anon_ns_wrapper_ns::(anonymous namespace)::anon_ns_struct::anon_ns_function()"
+	    }
+	}
+
+	# A "(" finds all anonymous namespace functions/methods in all
+	# scopes.
+	test_gdb_complete_multiple "$cmd_prefix " "(" "anonymous namespace)::" {
+	    "(anonymous namespace)::anon_ns_function()"
+	    "(anonymous namespace)::anon_ns_struct::anon_ns_function()"
+	    "(anonymous namespace)::overload2_function(overload2_arg3)"
+	    "(anonymous namespace)::overload3_function(int)"
+	    "(anonymous namespace)::overload3_function(long)"
+	    "(anonymous namespace)::struct_overload2_test::overload2_function(overload2_arg4)"
+	    "(anonymous namespace)::struct_overload3_test::overload3_function(int)"
+	    "(anonymous namespace)::struct_overload3_test::overload3_function(long)"
+	    "ns_overload2_test::(anonymous namespace)::ns_overload2_test::overload2_function(overload2_arg9)"
+	    "ns_overload2_test::(anonymous namespace)::ns_overload2_test::struct_overload2_test::overload2_function(overload2_arga)"
+	    "ns_overload2_test::(anonymous namespace)::overload2_function(overload2_arg7)"
+	    "ns_overload2_test::(anonymous namespace)::struct_overload2_test::overload2_function(overload2_arg8)"
+	    "ns_overload3_test::(anonymous namespace)::ns_overload3_test::overload3_function(int)"
+	    "ns_overload3_test::(anonymous namespace)::ns_overload3_test::overload3_function(long)"
+	    "ns_overload3_test::(anonymous namespace)::ns_overload3_test::struct_overload3_test::overload3_function(int)"
+	    "ns_overload3_test::(anonymous namespace)::ns_overload3_test::struct_overload3_test::overload3_function(long)"
+	    "ns_overload3_test::(anonymous namespace)::overload3_function(int)"
+	    "ns_overload3_test::(anonymous namespace)::overload3_function(long)"
+	    "ns_overload3_test::(anonymous namespace)::struct_overload3_test::overload3_function(int)"
+	    "ns_overload3_test::(anonymous namespace)::struct_overload3_test::overload3_function(long)"
+	    "the_anon_ns_wrapper_ns::(anonymous namespace)::anon_ns_function()"
+	    "the_anon_ns_wrapper_ns::(anonymous namespace)::anon_ns_struct::anon_ns_function()"
+	}
+
+	set function "the_anon_ns_wrapper_ns::(anonymous namespace)::anon_ns_function()"
+	test_gdb_complete_unique "$cmd_prefix $function" "$cmd_prefix $function"
+	check_bp_locations_match_list "$cmd_prefix $function" [list $function]
+
+	# Test completing after the "(anonymous namespace)" part.
+	test_gdb_complete_unique \
+	    "$cmd_prefix the_anon_ns_wrapper_ns::(anonymous namespace)::anon_ns_fu" \
+	    "$cmd_prefix $function"
+
+	# Test whitespace in the "(anonymous namespace)" component.
+
+	test_gdb_complete_unique \
+	    "$cmd_prefix the_anon_ns_wrapper_ns::( anonymous   namespace )::anon_ns_fu" \
+	    "$cmd_prefix the_anon_ns_wrapper_ns::( anonymous   namespace )::anon_ns_function()"
+	check_setting_bp_fails \
+	    "$cmd_prefix the_anon_ns_wrapper_ns::( anonymous   namespace )::anon_ns_fu"
+
+	set function_ws \
+	    "the_anon_ns_wrapper_ns::( anonymous   namespace )::anon_ns_function ( )"
+	test_gdb_complete_unique "$cmd_prefix $function_ws" "$cmd_prefix $function_ws"
+	check_bp_locations_match_list "$cmd_prefix $function_ws" [list $function]
+    }
+}
+
+# Basic test for completing "operator<".  More extensive C++ operator
+# tests in cpls-op.exp.
+
+proc_with_prefix operator< {} {
+    # Complete all prefixes between "oper" and the whole prototype.
+    set function "operator<(foo_enum, foo_enum)"
+    foreach cmd_prefix {"b" "b -function"} {
+	set line "$cmd_prefix $function"
+	set start [index_after "oper" $line]
+	test_complete_prefix_range $line $start
+    }
+
+    # There's a label in the function; try completing it.  (Exhaustive
+    # label completion tests further below.)
+    foreach location [list \
+		     "$function:label1" \
+		     "-function $function -label label1"] {
+
+	set cmd "b $location"
+	set input_line [string range $cmd 0 [expr [string length $cmd] - 3]]
+
+	test_gdb_complete_unique $input_line $cmd
+	test_gdb_complete_unique $cmd $cmd
+	check_bp_locations_match_list $cmd [list "$location"]
+    }
+}
+
+# Test completion of scopes with an ambiguous prefix.
+
+proc_with_prefix ambiguous-prefix {} {
+    foreach cmd_prefix {"b" "b -function"} {
+	test_gdb_complete_multiple "$cmd_prefix " "ambiguous_pre" "fix_" {
+	    "ambiguous_prefix_global_func()"
+	    "the_ambiguous_prefix_ns::ambiguous_prefix_ns_func()"
+	    "the_ambiguous_prefix_struct::ambiguous_prefix_method()"
+	}
+	check_setting_bp_fails "$cmd_prefix ambiguous_prefix_"
+    }
+}
+
+# Test completion of function labels.
+
+proc_with_prefix function-labels {} {
+    # Test with and without a source file component.
+    foreach_location_functions \
+	{ "" "cpls.cc" } \
+	{ "function_with_labels(int)" } \
+	{
+	    # Linespec version.  Test various spacing around the label
+	    # colon separator.
+	    foreach label_sep {":" " :" ": " " : "} {
+		set linespec "${location}${label_sep}"
+		test_gdb_complete_multiple "b $linespec" "l" "abel" {
+		    "label1"
+		    "label2"
+		}
+		check_setting_bp_fails "b ${linespec}label"
+
+		set tsep [string trim ${source_sep}]
+		check_bp_locations_match_list \
+		    "b ${linespec}label1" [list "${source}${tsep}${function}:label1"]
+		check_bp_locations_match_list \
+		    "b ${linespec}label2" [list "${source}${tsep}${function}:label2"]
+	    }
+	} \
+	{
+	    # Explicit locations version.
+	    append location " -label"
+	    test_gdb_complete_multiple "b $location " "l" "abel" {
+		"label1"
+		"label2"
+	    }
+	    check_setting_bp_fails "b $location label"
+
+	    if {$source != ""} {
+		set bp_loc_src "-source ${source} "
+	    } else {
+		set bp_loc_src ""
+	    }
+	    check_bp_locations_match_list \
+		"b ${location} label1" [list "${bp_loc_src}-function $function -label label1"]
+	    check_bp_locations_match_list \
+		"b ${location} label2" [list "${bp_loc_src}-function $function -label label2"]
+	}
+}
+
+# Test that completion after a function name offers keyword
+# (if/task/thread) matches in linespec mode, and also the explicit
+# location options in explicit locations mode.
+
+proc_with_prefix keywords-after-function {} {
+    set explicit_list \
+	[concat $completion::explicit_opts_list $completion::keyword_list]
+
+    # Test without a source file, with a known source file, and with
+    # and unknown source file.
+    # Test a known and an unknown function.
+    foreach_location_functions \
+	{ "" "cpls.cc" "unknown_file.cc" } \
+	{ "function_with_labels(int)" "unknown_function(int)" } \
+	{
+	    # Linespec version.
+	    test_gdb_complete_multiple "b ${location} " "" "" \
+		$completion::keyword_list
+	} \
+	{
+	    # Explicit locations version.
+	    test_gdb_complete_multiple "b ${location} " "" "" \
+		$explicit_list
+	}
+}
+
+# Same, but after a label.
+
+proc_with_prefix keywords-after-label {} {
+    set explicit_list \
+	[concat $completion::explicit_opts_list $completion::keyword_list]
+
+    foreach_location_labels \
+	{ "" "cpls.cc" } \
+	{ "function_with_labels(int)" "unknown_function(int)" } \
+	{ "label1" "non_existing_label" } \
+	{
+	    # Linespec version.
+	    test_gdb_complete_multiple "b ${location} " "" "" \
+		$completion::keyword_list
+	} \
+	{
+	    # Explicit locations version.
+	    test_gdb_complete_multiple "b ${location} " "" "" \
+		$explicit_list
+	}
+}
+
+# Similar, but after an unknown file, and in linespec mode only.
+
+proc_with_prefix keywords-after-unknown-file {} {
+    # Test with and without quoting.
+    foreach qc $completion::maybe_quoted_list {
+	set line "b ${qc}unknown_file.cc${qc}: "
+	test_gdb_complete_multiple $line "" "" $completion::keyword_list
+    }
+}
+
+# Test that linespec / function completion does not match data
+# symbols, only functions/methods.
+
+proc_with_prefix no-data-symbols {} {
+    foreach cmd_prefix {"b" "b -function"} {
+	test_gdb_complete_unique "$cmd_prefix code_" "$cmd_prefix code_function()"
+    }
+}
+
+
+# After "if", we expect an expression, which has a different completer
+# that matches data symbols as well.  Check that that works.
+
+proc_with_prefix if-expression {} {
+    foreach cmd_prefix {"b" "b -function"} {
+	test_gdb_complete_multiple "$cmd_prefix function() if " "code_" "" {
+	    "code_data"
+	    "code_function()"
+	}
+
+	test_gdb_complete_unique \
+	    "$cmd_prefix function() if code_data + another_da" \
+	    "$cmd_prefix function() if code_data + another_data"
+
+	test_gdb_complete_unique \
+	    "$cmd_prefix non_existing_function() if code_data + another_da" \
+	    "$cmd_prefix non_existing_function() if code_data + another_data"
+
+	# FIXME: For now, thread and task also use the expression
+	# completer.
+	test_gdb_complete_unique \
+	    "$cmd_prefix function() thread code_data + another_da" \
+	    "$cmd_prefix function() thread code_data + another_data"
+	test_gdb_complete_unique \
+	    "$cmd_prefix function() task code_data + another_da" \
+	    "$cmd_prefix function() task code_data + another_data"
+    }
+}
+
+# The testcase driver.  Calls all test procedures.
+
+proc test_driver {} {
+    all-param-prefixes
+    overload
+    overload-2
+    fqn
+    fqn-2
+    overload-3
+    template-overload
+    template-ret-type
+    const-overload
+    const-overload-quoted
+    append-end-quote-char-when-unambiguous
+    in-source-file-unconstrained
+    in-source-file-unambiguous
+    in-source-file-ambiguous
+    source-complete-appends-colon
+    incomplete-scope-colon
+    anon-ns
+    operator<
+    ambiguous-prefix
+    function-labels
+    keywords-after-function
+    keywords-after-label
+    keywords-after-unknown-file
+    no-data-symbols
+    if-expression
+}
+
+test_driver
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpexplicit.cc ./gdb/testsuite/gdb.linespec/cpexplicit.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpexplicit.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/cpexplicit.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpexplicit.exp ./gdb/testsuite/gdb.linespec/cpexplicit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpexplicit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/cpexplicit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpls2.cc ./gdb/testsuite/gdb.linespec/cpls2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpls2.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/cpls2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,46 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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
+file_constrained_test_cpls2_function (int i)
+{
+  if (i > 0)
+    {
+    label1:
+      return i + 20;
+    }
+  else
+    {
+    label2:
+      return i + 10;
+    }
+}
+
+int
+another_file_constrained_test_cpls2_function (int i)
+{
+  if (i > 0)
+    {
+    label1:
+      return i + 20;
+    }
+  else
+    {
+    label2:
+      return i + 10;
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpls-abi-tag.cc ./gdb/testsuite/gdb.linespec/cpls-abi-tag.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpls-abi-tag.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/cpls-abi-tag.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,93 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#define ABI1 __attribute__ ((abi_tag ("tag1")))
+#define ABI2 __attribute__ ((abi_tag ("tag2")))
+#define ABI3 __attribute__ ((abi_tag ("tag3")))
+
+void ABI1
+test_abi_tag_function (int)
+{
+}
+
+void ABI1
+test_abi_tag_ovld_function ()
+{
+}
+
+void ABI1
+test_abi_tag_ovld_function (int)
+{
+}
+
+/* Code for the overload functions, different ABI tag test.  */
+
+void
+test_abi_tag_ovld2_function ()
+{
+}
+
+void ABI1
+test_abi_tag_ovld2_function (short)
+{
+}
+
+void ABI2
+test_abi_tag_ovld2_function (int)
+{
+}
+
+void ABI2
+test_abi_tag_ovld2_function (long)
+{
+}
+
+struct ABI1 test_abi_tag_struct
+{
+  ABI2 test_abi_tag_struct ();
+  ABI2 ~test_abi_tag_struct ();
+};
+
+test_abi_tag_struct::test_abi_tag_struct ()
+{}
+
+test_abi_tag_struct::~test_abi_tag_struct ()
+{}
+
+ABI3 test_abi_tag_struct s;
+
+/* Code for the abi-tag in parameters test.  */
+
+struct ABI2 abi_tag_param_struct1
+{};
+
+struct ABI2 abi_tag_param_struct2
+{};
+
+void
+test_abi_tag_in_params (abi_tag_param_struct1)
+{}
+
+void
+test_abi_tag_in_params (abi_tag_param_struct1, abi_tag_param_struct2)
+{}
+
+int
+main ()
+{
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpls-abi-tag.exp ./gdb/testsuite/gdb.linespec/cpls-abi-tag.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpls-abi-tag.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/cpls-abi-tag.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,286 @@
+# Copyright 2017-2018 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.
+
+# Test ABI tag support in linespecs.
+
+load_lib completion-support.exp
+
+standard_testfile cpls-abi-tag.cc
+
+if {[prepare_for_testing "failed to prepare" $testfile \
+	 [list $srcfile] {c++ debug}]} {
+    return -1
+}
+
+gdb_test_no_output "set max-completions unlimited"
+
+# Check that the explicit location completer manages to find the next
+# option name after a -function option, when the -function's argument
+# is a function with an ABI tag.
+
+proc check_explicit_skips_function_argument {function} {
+    test_gdb_complete_unique \
+	"b -function $function -sour" \
+	"b -function $function -source"
+}
+
+# The ABI tag tests.
+
+proc_with_prefix test_abi_tag {} {
+    with_test_prefix "completion" {
+	foreach cmd_prefix {"b" "b -function"} {
+	    # Complete all prefixes between "_funcio" and the full
+	    # prototype.  The ABI tag is not considered for actual
+	    # completion.
+
+	    with_test_prefix "skip tag" {
+		# set location "test_abi_tag_function\[abi:tag1\](int)"
+		set location "test_abi_tag_function(int)"
+		set line "$cmd_prefix $location"
+		set start [index_after "_functio" $line]
+		test_complete_prefix_range $line $start
+	    }
+
+	    # Now the same, but start completing at the [.  In that case,
+	    # GDB considers the ABI tag as part of actual completion.
+	    with_test_prefix "at tag" {
+		set location "test_abi_tag_function\[abi:tag1\](int)"
+		set line "$cmd_prefix $location"
+		set start [index_after "_function" $line]
+		test_complete_prefix_range $line $start
+	    }
+
+	    # Same, but with extra spaces.  Note that the original spaces in
+	    # the input line are preserved after completion.
+
+	    with_test_prefix "spaces" {
+		test_gdb_complete_unique \
+		    "$cmd_prefix test_abi_tag_function \[abi:tag1\] (" \
+		    "$cmd_prefix test_abi_tag_function \[abi:tag1\] (int)"
+
+		test_gdb_complete_unique \
+		    "$cmd_prefix test_abi_tag_function \[abi:tag1\] ( int " \
+		    "$cmd_prefix test_abi_tag_function \[abi:tag1\] ( int )"
+	    }
+	}
+    }
+
+    with_test_prefix "set breakpoints" {
+	foreach cmd_prefix {"b" "b -function"} {
+	    # Test setting breakpoints.  If the symbol name has an ABI
+	    # tag, but the input linespec doesn't, then the ABI tag in the
+	    # symbol name is ignored.
+	    set linespec_list {
+		"test_abi_tag_function"
+		"test_abi_tag_function[abi:tag1]"
+		"test_abi_tag_function[abi:tag1](int)"
+		"test_abi_tag_function [abi:tag1]"
+		"test_abi_tag_function [abi:tag1] ( int )"
+		"test_abi_tag_function(int)"
+		"test_abi_tag_function (int)"
+		"test_abi_tag_function ( int )"
+	    }
+	    foreach linespec $linespec_list {
+		check_bp_locations_match_list \
+		    "$cmd_prefix $linespec" [list $location]
+	    }
+	}
+    }
+
+    with_test_prefix "set breakpoints wrong ABI tag" {
+	foreach cmd_prefix {"b" "b -function"} {
+	    # Test setting breakpoints with the wrong ABI tag.  Should
+	    # fail to create the breakpoints.  Completion should not find
+	    # any match either.
+	    set linespec_list {
+		"test_abi_tag_function[abi:tag2]"
+		"test_abi_tag_function[abi:tag2](int)"
+		"test_abi_tag_function [abi:tag2]"
+		"test_abi_tag_function [abi:tag2] ( int )"
+	    }
+	    foreach linespec $linespec_list {
+		check_setting_bp_fails "$cmd_prefix $linespec"
+		test_gdb_complete_none "$cmd_prefix $linespec"
+	    }
+
+	}
+    }
+
+    # Test completion of overloaded functions with ABI tags.
+    with_test_prefix "completion of overloaded functions" {
+	foreach cmd_prefix {"b" "b -function"} {
+	    set completion_list {
+		"test_abi_tag_ovld_function[abi:tag1]()"
+		"test_abi_tag_ovld_function[abi:tag1](int)"
+	    }
+
+	    # If the input string does not include the ABI tag, then
+	    # actual completion ignores it.
+	    test_gdb_complete_multiple \
+		"$cmd_prefix " "test_abi_tag_ovld_f" "unction(" \
+		$completion_list
+
+	    # Otherwise, it's considered.
+	    test_gdb_complete_multiple \
+		"$cmd_prefix " "test_abi_tag_ovld_function\[" "abi:tag1\](" \
+		$completion_list
+
+	}
+    }
+
+    # Test setting breakpoints on overloaded functions with ABI tags.
+    with_test_prefix "breakpoints on overloaded functions" {
+	foreach cmd_prefix {"b" "b -function"} {
+	    set completion_list {
+		"test_abi_tag_ovld_function[abi:tag1]()"
+		"test_abi_tag_ovld_function[abi:tag1](int)"
+	    }
+	    set location_list {
+		"test_abi_tag_ovld_function"
+		"test_abi_tag_ovld_function[abi:tag1]"
+	    }
+	    foreach linespec $location_list {
+		check_bp_locations_match_list \
+		    "$cmd_prefix $linespec" $completion_list
+	    }
+
+	}
+    }
+
+    with_test_prefix "completion of overloaded functions different abi" {
+	foreach cmd_prefix {"b" "b -function"} {
+	    # Test completion of overloaded functions with ABI tags.
+	    set completion_list {
+		"test_abi_tag_ovld2_function()"
+		"test_abi_tag_ovld2_function[abi:tag1](short)"
+		"test_abi_tag_ovld2_function[abi:tag2](int)"
+		"test_abi_tag_ovld2_function[abi:tag2](long)"
+	    }
+
+	    # If the input string does not include the ABI tag, then
+	    # actual completion ignores it.
+	    test_gdb_complete_multiple \
+		"$cmd_prefix " "test_abi_tag_ovld2_f" "unction(" \
+		$completion_list
+
+	    # Otherwise, it's considered.  Match stops at the part of
+	    # the tag that diverges, and the completion list only
+	    # shows matches with ABI tags.
+	    set completion_list {
+		"test_abi_tag_ovld2_function[abi:tag1](short)"
+		"test_abi_tag_ovld2_function[abi:tag2](int)"
+		"test_abi_tag_ovld2_function[abi:tag2](long)"
+	    }
+	    test_gdb_complete_multiple \
+		"$cmd_prefix " "test_abi_tag_ovld2_function\[" "abi:tag" \
+		$completion_list
+
+	    # If you disambiguate, matches include only locations for
+	    # the specified tag.
+	    set completion_list {
+		"test_abi_tag_ovld2_function[abi:tag2](int)"
+		"test_abi_tag_ovld2_function[abi:tag2](long)"
+	    }
+	    test_gdb_complete_multiple \
+		"$cmd_prefix " "test_abi_tag_ovld2_function\[abi:tag2" "\](" \
+		$completion_list
+
+	    test_gdb_complete_unique \
+		"$cmd_prefix test_abi_tag_ovld2_function\[abi:tag1" \
+		"$cmd_prefix test_abi_tag_ovld2_function\[abi:tag1\](short)"
+	}
+    }
+
+    with_test_prefix "completion of struct prefixes with tags" {
+	foreach cmd_prefix {"b" "b -function"} {
+	    # Test completion of methods of structs with ABI tags.
+	    set completion_list {
+		"test_abi_tag_struct[abi:tag1]::test_abi_tag_struct[abi:tag2]()"
+		"test_abi_tag_struct[abi:tag1]::~test_abi_tag_struct[abi:tag2]()"
+	    }
+
+	    # If the input string does not include the ABI tag, then
+	    # actual completion ignores it.
+	    test_gdb_complete_multiple \
+		"$cmd_prefix " "test_abi_tag_struc" "t::" \
+		$completion_list
+
+	    # Otherwise, it's considered.
+	    test_gdb_complete_multiple \
+		"$cmd_prefix " "test_abi_tag_struct\[" "abi:tag1\]::" \
+		$completion_list
+
+	    # Mix and match different abi tag positions.
+	    test_gdb_complete_unique \
+		"$cmd_prefix test_abi_tag_struct::t" \
+		"$cmd_prefix test_abi_tag_struct::test_abi_tag_struct()"
+
+	    test_gdb_complete_unique \
+		"$cmd_prefix test_abi_tag_struct\[abi:tag1\]::t" \
+		"$cmd_prefix test_abi_tag_struct\[abi:tag1\]::test_abi_tag_struct()"
+
+	    test_gdb_complete_unique \
+		"$cmd_prefix test_abi_tag_struct\[abi:tag1\]::test_abi_tag_struct\[" \
+		"$cmd_prefix test_abi_tag_struct\[abi:tag1\]::test_abi_tag_struct\[abi:tag2\]()"
+	}
+    }
+
+    with_test_prefix "abi tag in parameters" {
+	foreach cmd_prefix {"b" "b -function"} {
+	    # Complete all prefixes between "_funcio" and the full
+	    # prototype.  The ABI tag is not considered for actual
+	    # completion.
+
+	    set completion_list {
+		"test_abi_tag_in_params(abi_tag_param_struct1[abi:tag2])"
+		"test_abi_tag_in_params(abi_tag_param_struct1[abi:tag2], abi_tag_param_struct2[abi:tag2])"
+	    }
+	    # If the input string does not include the ABI tag, then
+	    # actual completion ignores it.
+	    test_gdb_complete_multiple \
+		"$cmd_prefix " "test_abi_tag_in_para" "ms(abi_tag_param_struct1" \
+		$completion_list
+
+	    # If OTOH the input string includes the ABI tag, then it
+	    # is considered.
+	    test_gdb_complete_multiple \
+		"$cmd_prefix " "test_abi_tag_in_params(abi_tag_param_struct1\[ab" "i:tag2\]"\
+		$completion_list
+
+	    set location_list {
+		"test_abi_tag_in_params(abi_tag_param_struct1[abi:tag2], abi_tag_param_struct2[abi:tag2])"
+	    }
+
+	    set tags {"" "\[abi:tag2\]"}
+	    foreach tag1 $tags {
+		foreach tag2 $tags {
+		    set linespec "test_abi_tag_in_params(abi_tag_param_struct1${tag1}, abi_tag_param_struct2${tag2})"
+		    check_bp_locations_match_list \
+			"$cmd_prefix $linespec" $location_list
+		}
+	    }
+	}
+    }
+
+    # Check that the explicit location completer manages to find the
+    # option name after -function, when the -function's argument is a
+    # function with an ABI tag.
+    check_explicit_skips_function_argument \
+	"test_abi_tag_function\[abi:unknown\](int)"
+}
+
+test_abi_tag
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpls.cc ./gdb/testsuite/gdb.linespec/cpls.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpls.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/cpls.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,386 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+/* Code for the all-param-prefixes test.  */
+
+void
+param_prefixes_test_long (long)
+{}
+
+void
+param_prefixes_test_intp_intr (int *, int&)
+{}
+
+/* Code for the overload test.  */
+
+void
+overload_ambiguous_test (long)
+{}
+
+void
+overload_ambiguous_test (int, int)
+{}
+
+void
+overload_ambiguous_test (int, long)
+{}
+
+/* Code for the overload-2 test.  */
+
+/* Generate functions/methods all with the same name, in different
+   scopes, but all with different parameters.  */
+
+struct overload2_arg1 {};
+struct overload2_arg2 {};
+struct overload2_arg3 {};
+struct overload2_arg4 {};
+struct overload2_arg5 {};
+struct overload2_arg6 {};
+struct overload2_arg7 {};
+struct overload2_arg8 {};
+struct overload2_arg9 {};
+struct overload2_arga {};
+
+#define GEN_OVERLOAD2_FUNCTIONS(ARG1, ARG2)		\
+  void							\
+  overload2_function (ARG1)				\
+  {}							\
+							\
+  struct struct_overload2_test				\
+  {							\
+    void overload2_function (ARG2);			\
+  };							\
+							\
+  void							\
+  struct_overload2_test::overload2_function (ARG2)	\
+  {}
+
+/* In the global namespace.  */
+GEN_OVERLOAD2_FUNCTIONS( overload2_arg1, overload2_arg2)
+
+namespace
+{
+  /* In an anonymous namespace.  */
+  GEN_OVERLOAD2_FUNCTIONS (overload2_arg3, overload2_arg4)
+}
+
+namespace ns_overload2_test
+{
+  /* In a namespace.  */
+  GEN_OVERLOAD2_FUNCTIONS (overload2_arg5, overload2_arg6)
+
+  namespace
+  {
+    /* In a nested anonymous namespace.  */
+    GEN_OVERLOAD2_FUNCTIONS (overload2_arg7, overload2_arg8)
+
+    namespace ns_overload2_test
+    {
+      /* In a nested namespace.  */
+      GEN_OVERLOAD2_FUNCTIONS (overload2_arg9, overload2_arga)
+    }
+  }
+}
+
+/* Code for the overload-3 test.  */
+
+#define GEN_OVERLOAD3_FUNCTIONS(ARG1, ARG2)		\
+  void							\
+  overload3_function (ARG1)				\
+  {}							\
+  void							\
+  overload3_function (ARG2)				\
+  {}							\
+							\
+  struct struct_overload3_test				\
+  {							\
+    void overload3_function (ARG1);			\
+    void overload3_function (ARG2);			\
+  };							\
+							\
+  void							\
+  struct_overload3_test::overload3_function (ARG1)	\
+  {}							\
+  void							\
+  struct_overload3_test::overload3_function (ARG2)	\
+  {}
+
+/* In the global namespace.  */
+GEN_OVERLOAD3_FUNCTIONS (int, long)
+
+namespace
+{
+  /* In an anonymous namespace.  */
+  GEN_OVERLOAD3_FUNCTIONS (int, long)
+}
+
+namespace ns_overload3_test
+{
+  /* In a namespace.  */
+  GEN_OVERLOAD3_FUNCTIONS (int, long)
+
+  namespace
+  {
+    /* In a nested anonymous namespace.  */
+    GEN_OVERLOAD3_FUNCTIONS (int, long)
+
+    namespace ns_overload3_test
+    {
+      /* In a nested namespace.  */
+      GEN_OVERLOAD3_FUNCTIONS (int, long)
+    }
+  }
+}
+
+/* Code for the template-overload tests.  */
+
+template <typename T>
+struct template_struct
+{
+  T template_overload_fn (T);
+};
+
+template <typename T>
+T template_struct<T>::template_overload_fn (T t)
+{
+  return t;
+}
+
+template_struct<int> template_struct_int;
+template_struct<long> template_struct_long;
+
+/* Code for the template2-ret-type tests.  */
+
+template <typename T>
+struct template2_ret_type {};
+
+template <typename T>
+struct template2_struct
+{
+  template <typename T2, typename T3>
+  T template2_fn (T = T (), T2 t2 = T2 (), T3 t3 = T3 ());
+};
+
+template <typename T>
+template <typename T2, typename T3>
+T template2_struct<T>::template2_fn (T t, T2 t2, T3 t3)
+{
+  return T ();
+}
+
+template2_struct<template2_ret_type<int> > template2_struct_inst;
+
+/* Code for the const-overload tests.  */
+
+struct struct_with_const_overload
+{
+  void const_overload_fn ();
+  void const_overload_fn () const;
+};
+
+void
+struct_with_const_overload::const_overload_fn ()
+{}
+
+void
+struct_with_const_overload::const_overload_fn () const
+{}
+
+void
+not_overloaded_fn ()
+{}
+
+/* Code for the incomplete-scope-colon tests.  */
+
+struct struct_incomplete_scope_colon_test
+{
+  void incomplete_scope_colon_test ();
+};
+
+void
+struct_incomplete_scope_colon_test::incomplete_scope_colon_test ()
+{}
+
+namespace ns_incomplete_scope_colon_test
+{
+  void incomplete_scope_colon_test () {}
+}
+
+namespace ns2_incomplete_scope_colon_test
+{
+  struct struct_in_ns2_incomplete_scope_colon_test
+  {
+    void incomplete_scope_colon_test ();
+  };
+
+  void
+  struct_in_ns2_incomplete_scope_colon_test::incomplete_scope_colon_test ()
+  {}
+}
+
+/* Code for the anon-ns tests.  */
+
+namespace
+{
+  void anon_ns_function ()
+  {}
+
+  struct anon_ns_struct
+  {
+    void anon_ns_function ();
+  };
+
+  void
+  anon_ns_struct::anon_ns_function ()
+  {}
+}
+
+namespace the_anon_ns_wrapper_ns
+{
+
+namespace
+{
+  void anon_ns_function ()
+  {}
+
+  struct anon_ns_struct
+  {
+    void anon_ns_function ();
+  };
+
+  void
+  anon_ns_struct::anon_ns_function ()
+  {}
+}
+
+} /* the_anon_ns_wrapper_ns */
+
+/* Code for the global-ns-scope-op tests.  */
+
+void global_ns_scope_op_function ()
+{
+}
+
+/* Add a function with the same name to a namespace.  We want to test
+   that "b ::global_ns_function" does NOT select it.  */
+namespace the_global_ns_scope_op_ns
+{
+  void global_ns_scope_op_function ()
+  {
+  }
+}
+
+/* Code for the ambiguous-prefix tests.  */
+
+/* Create a few functions/methods with the same "ambiguous_prefix_"
+   prefix.  They in different scopes, but "b ambiguous_prefix_<tab>"
+   should list them all, and figure out the LCD is
+   ambiguous_prefix_.  */
+
+void ambiguous_prefix_global_func ()
+{
+}
+
+namespace the_ambiguous_prefix_ns
+{
+  void ambiguous_prefix_ns_func ()
+  {
+  }
+}
+
+struct the_ambiguous_prefix_struct
+{
+  void ambiguous_prefix_method ();
+};
+
+void
+the_ambiguous_prefix_struct::ambiguous_prefix_method ()
+{
+}
+
+/* Code for the function-labels test.  */
+
+int
+function_with_labels (int i)
+{
+  if (i > 0)
+    {
+    label1:
+      return i + 20;
+    }
+  else
+    {
+    label2:
+      return i + 10;
+    }
+}
+
+/* Code for the no-data-symbols and if-expression tests.  */
+
+int code_data = 0;
+
+int another_data = 0;
+
+/* A function that has a same "code" prefix as the global above.  We
+   want to ensure that completing on "b code" doesn't offer the data
+   symbol.  */
+void
+code_function ()
+{
+}
+
+/* Code for the operator< tests.  */
+
+enum foo_enum
+  {
+    foo_value
+  };
+
+bool operator<(foo_enum lhs, foo_enum rhs)
+{
+ label1:
+	return false;
+}
+
+/* Code for the in-source-file-unconstrained /
+   in-source-file-ambiguous tests.  */
+
+int
+file_constrained_test_cpls_function (int i)
+{
+  if (i > 0)
+    {
+    label1:
+      return i + 20;
+    }
+  else
+    {
+    label2:
+      return i + 10;
+    }
+}
+
+
+int
+main ()
+{
+  template2_struct_inst.template2_fn<int, int> ();
+  template_struct_int.template_overload_fn(0);
+  template_struct_long.template_overload_fn(0);
+
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpls-hyphen.cc ./gdb/testsuite/gdb.linespec/cpls-hyphen.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpls-hyphen.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/cpls-hyphen.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,33 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+/* A function in a file whose name has an hyphen.  */
+
+int
+ns_hyphen_function (int i)
+{
+  if (i > 0)
+    {
+    label1:
+      return i + 20;
+    }
+  else
+    {
+    label2:
+      return i + 10;
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpls-ops.cc ./gdb/testsuite/gdb.linespec/cpls-ops.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpls-ops.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/cpls-ops.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,254 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#include <cstddef>
+
+/* Code for operator() tests.  */
+
+struct test_unique_op_call
+{
+  void operator() (int);
+};
+
+void
+test_unique_op_call::operator() (int)
+{}
+
+struct test_op_call
+{
+  void operator() ();
+  void operator() (int);
+  void operator() (long);
+
+  template<typename T>
+  void operator() (T *);
+};
+
+void
+test_op_call::operator() (int)
+{}
+
+void
+test_op_call::operator() ()
+{}
+
+void
+test_op_call::operator() (long)
+{}
+
+template<typename T>
+void
+test_op_call::operator() (T *t)
+{
+}
+
+/* Code for operator[] tests.  */
+
+struct test_unique_op_array
+{
+  void operator[] (int);
+};
+
+void
+test_unique_op_array::operator[] (int)
+{}
+
+struct test_op_array
+{
+  void operator[] (int);
+  void operator[] (long);
+
+  template<typename T>
+  void operator[] (T *);
+};
+
+void
+test_op_array::operator[] (int)
+{}
+
+void
+test_op_array::operator[] (long)
+{}
+
+template<typename T>
+void
+test_op_array::operator[] (T *t)
+{}
+
+/* Code for operator new tests.  */
+
+struct test_op_new
+{
+  void *operator new (size_t);
+};
+
+void *
+test_op_new::operator new (size_t)
+{
+  return NULL;
+}
+
+/* Code for operator delete tests.  */
+
+struct test_op_delete
+{
+  void operator delete (void *);
+};
+
+void
+test_op_delete::operator delete (void *)
+{
+}
+
+/* Code for operator new[] tests.  */
+
+struct test_op_new_array
+{
+  void *operator new[] (size_t);
+};
+
+void *
+test_op_new_array::operator new[] (size_t)
+{
+  return NULL;
+}
+
+/* Code for operator delete[] tests.  */
+
+struct test_op_delete_array
+{
+  void operator delete[] (void *);
+};
+
+void
+test_op_delete_array::operator delete[] (void *)
+{
+}
+
+/* Code for user-defined conversion tests.  */
+
+struct test_op_conversion_res;
+
+struct test_op_conversion
+{
+  operator const volatile test_op_conversion_res **() const volatile;
+};
+
+test_op_conversion::operator const volatile test_op_conversion_res **()
+  const volatile
+{
+  return NULL;
+}
+
+/* Code for the assignment operator tests.  */
+
+struct test_op_assign
+{
+  test_op_assign operator= (const test_op_assign &);
+};
+
+test_op_assign
+test_op_assign::operator= (const test_op_assign &)
+{
+  return test_op_assign ();
+}
+
+/* Code for the arrow operator tests.  */
+
+struct test_op_arrow
+{
+  test_op_arrow operator-> ();
+};
+
+test_op_arrow
+test_op_arrow::operator-> ()
+{
+  return test_op_arrow ();
+}
+
+/* Code for the logical/arithmetic operators tests.  */
+
+struct E
+{
+};
+
+#define GEN_OP(NS, ...)				\
+  namespace test_ops {				\
+    void operator __VA_ARGS__ {}		\
+  }						\
+  namespace test_op_ ## NS {			\
+    void operator __VA_ARGS__ {}		\
+  }
+
+GEN_OP (PLUS_A,    +=  (E, E)  )
+GEN_OP (PLUS,      +   (E, E)  )
+GEN_OP (MINUS_A,   -=  (E, E)  )
+GEN_OP (MINUS,     -   (E, E)  )
+GEN_OP (MOD_A,     %=  (E, E)  )
+GEN_OP (MOD,       %   (E, E)  )
+GEN_OP (EQ,        ==  (E, E)  )
+GEN_OP (NEQ,       !=  (E, E)  )
+GEN_OP (LAND,      &&  (E, E)  )
+GEN_OP (LOR,       ||  (E, E)  )
+GEN_OP (SL_A,      <<= (E, E)  )
+GEN_OP (SR_A,      >>= (E, E)  )
+GEN_OP (SL,        <<  (E, E)  )
+GEN_OP (SR,        >>  (E, E)  )
+GEN_OP (OE,        |=  (E, E)  )
+GEN_OP (BIT_O,     |   (E, E)  )
+GEN_OP (XOR_A,     ^=  (E, E)  )
+GEN_OP (XOR,       ^   (E, E)  )
+GEN_OP (BIT_AND_A, &=  (E, E)  )
+GEN_OP (BIT_AND,   &   (E, E)  )
+GEN_OP (LT,        <   (E, E)  )
+GEN_OP (LTE,       <=  (E, E)  )
+GEN_OP (GTE,       >=  (E, E)  )
+GEN_OP (GT,        >   (E, E)  )
+GEN_OP (MUL_A,     *=  (E, E)  )
+GEN_OP (MUL,       *   (E, E)  )
+GEN_OP (DIV_A,     /=  (E, E)  )
+GEN_OP (DIV,       /   (E, E)  )
+GEN_OP (NEG,       ~   (E)      )
+GEN_OP (NOT,       !   (E)      )
+GEN_OP (PRE_INC,   ++  (E)      )
+GEN_OP (POST_INC,  ++  (E, int) )
+GEN_OP (PRE_DEC,   --  (E)      )
+GEN_OP (POST_DEC,  --  (E, int) )
+GEN_OP (COMMA,     ,   (E, E)  )
+
+int
+main ()
+{
+  test_op_call opcall;
+  opcall ();
+  opcall (1);
+  opcall (1l);
+  opcall ((int *) 0);
+
+  test_unique_op_call opcall2;
+  opcall2 (1);
+
+  test_op_array op_array;
+  op_array[1];
+  op_array[1l];
+  op_array[(int *) 0];
+
+  test_unique_op_array unique_op_array;
+  unique_op_array[1];
+
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpls-ops.exp ./gdb/testsuite/gdb.linespec/cpls-ops.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/cpls-ops.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/cpls-ops.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,574 @@
+# Copyright 2017-2018 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.
+
+load_lib completion-support.exp
+
+standard_testfile cpls-ops.cc
+
+if {[prepare_for_testing "failed to prepare" $testfile \
+	 [list $srcfile] {debug}]} {
+    return -1
+}
+
+gdb_test_no_output "set max-completions unlimited"
+
+# Check that the explicit location completer manages to find the next
+# option name after a "-function function" option.  A useful test when
+# the -function options's argument is a C++ operator, which can
+# include characters like '-'.
+
+proc check_explicit_skips_function_argument {function} {
+    test_gdb_complete_unique \
+	"b -function $function -sour" \
+	"b -function $function -source"
+}
+
+# Helper function for the operator new/new[] tests.  CLASS_NAME is the
+# name of the class that contains the operator we're testing.
+# BRACKETS is set to [] if testing operator new[], and to empty if
+# testing operator new.
+
+proc test_operator_new {class_name brackets} {
+    global gdb_prompt
+
+    # Extract the type size_t is typedef-ed to.
+    set size_t ""
+    set test "get size_t underlying type"
+    gdb_test_multiple "ptype size_t" $test {
+	-re " = (\[ a-z\]*)\r\n$gdb_prompt $" {
+	    set size_t $expect_out(1,string)
+	    pass "$test"
+	}
+    }
+
+    # Complete all prefixes between "operato" and the full prototype.
+    foreach cmd_prefix {"b" "b -function"} {
+	set location "${class_name}::operator new${brackets}($size_t)"
+	set line "$cmd_prefix $location"
+	set start [index_after "operato" $line]
+	test_complete_prefix_range $line $start
+	check_bp_locations_match_list "$cmd_prefix $location" [list $location]
+
+	# Same, but with extra spaces.  Note that the original spaces in
+	# the input line are preserved after completion.
+
+	test_gdb_complete_unique \
+	    "$cmd_prefix ${class_name}::operator new " \
+	    "$cmd_prefix ${class_name}::operator new ${brackets}($size_t)"
+	test_gdb_complete_unique \
+	    "$cmd_prefix ${class_name}::operator new ${brackets} (" \
+	    "$cmd_prefix ${class_name}::operator new ${brackets} ($size_t)"
+	test_gdb_complete_unique \
+	    "$cmd_prefix ${class_name}::operator new ${brackets} ( $size_t " \
+	    "$cmd_prefix ${class_name}::operator new ${brackets} ( $size_t )"
+
+	check_setting_bp_fails "$cmd_prefix ${class_name}::operator"
+
+	set location_list \
+	    [list \
+		 "${class_name}::operator new${brackets}" \
+		 "${class_name}::operator new${brackets} ($size_t)" \
+		 "${class_name}::operator new ${brackets} ( $size_t )"]
+	foreach linespec $location_list {
+	    check_bp_locations_match_list \
+		"$cmd_prefix $linespec" [list $location]
+	}
+    }
+
+    # Check that the explicit location completer manages to find the
+    # option name after -function, when the -function's argument is a
+    # C++ operator new / new[].
+    check_explicit_skips_function_argument \
+	"${class_name}::operator new ${brackets} ( $size_t )"
+}
+
+proc_with_prefix operator-new {} {
+    test_operator_new test_op_new ""
+}
+
+proc_with_prefix operator-new\[\] {} {
+    test_operator_new test_op_new_array "\[\]"
+}
+
+# Helper function for the operator delete/delete[] tests.  CLASS_NAME
+# is the name of the class that contains the operator we're testing.
+# BRACKETS is set to "[]" if testing operator delete[], and to empty
+# if testing operator delete.
+
+proc test_operator_delete {class_name brackets} {
+    # Complete all prefixes between "operato" and the full prototype.
+    foreach cmd_prefix {"b" "b -function"} {
+	set location "${class_name}::operator delete${brackets}(void*)"
+	set line "$cmd_prefix $location"
+	set start [index_after "operato" $line]
+	test_complete_prefix_range $line $start
+	check_bp_locations_match_list "$cmd_prefix $location" [list $location]
+
+	# Same, but with extra spaces.  Note that the original spaces in
+	# the input line are preserved after completion.
+
+	test_gdb_complete_unique \
+	    "$cmd_prefix ${class_name}::operator delete " \
+	    "$cmd_prefix ${class_name}::operator delete ${brackets}(void*)"
+	test_gdb_complete_unique \
+	    "$cmd_prefix ${class_name}::operator delete ${brackets} (" \
+	    "$cmd_prefix ${class_name}::operator delete ${brackets} (void*)"
+	test_gdb_complete_unique \
+	    "$cmd_prefix ${class_name}::operator delete ${brackets} ( void* " \
+	    "$cmd_prefix ${class_name}::operator delete ${brackets} ( void* )"
+	test_gdb_complete_unique \
+	    "$cmd_prefix ${class_name}::operator delete ${brackets} ( void * " \
+	    "$cmd_prefix ${class_name}::operator delete ${brackets} ( void * )"
+
+	check_setting_bp_fails "$cmd_prefix ${class_name}::operator"
+
+	set location_list \
+	    [list \
+		 "${class_name}::operator delete${brackets}" \
+		 "${class_name}::operator delete${brackets}(void *)" \
+		 "${class_name}::operator delete ${brackets} ( void * )"]
+	foreach linespec $location_list {
+	    check_bp_locations_match_list \
+		"$cmd_prefix $linespec" [list $location]
+	}
+    }
+
+    # Check that the explicit location completer manages to find the
+    # option name after -function, when the -function's argument is a
+    # C++ operator delete / delete[].
+    check_explicit_skips_function_argument \
+	"${class_name}::operator delete ${brackets} ( void * )"
+}
+
+proc_with_prefix operator-delete {} {
+    test_operator_delete test_op_delete ""
+}
+
+proc_with_prefix operator-delete\[\] {} {
+    test_operator_delete test_op_delete_array "\[\]"
+}
+
+# Helper for testing both operator() and operator[].  Tests completion
+# when the operator match is unique.  CLASS_NAME is the class that
+# holds the operator to test.  OPN and CLS are the open and close
+# characters ("()" or "[]").
+
+proc test_operator_unique {class_name opn cls} {
+    # Complete all prefixes between "oper" and the full prototype.
+    foreach cmd_prefix {"b" "b -function"} {
+	set location "${class_name}::operator${opn}${cls}(int)"
+	set line "$cmd_prefix $location"
+	set start [index_after "${class_name}" $line]
+	test_complete_prefix_range $line $start
+	check_bp_locations_match_list "$cmd_prefix $location" [list $location]
+
+	# Same, but with extra spaces.  Note that the original spaces in
+	# the input line are preserved after completion.
+
+	test_gdb_complete_unique \
+	    "$cmd_prefix ${class_name}::operator ${opn} ${cls} ( int " \
+	    "$cmd_prefix ${class_name}::operator ${opn} ${cls} ( int )"
+	test_gdb_complete_unique \
+	    "$cmd_prefix ${class_name}::operator ${opn} ${cls}" \
+	    "$cmd_prefix ${class_name}::operator ${opn} ${cls}(int)"
+	test_gdb_complete_unique \
+	    "$cmd_prefix ${class_name}::operator ${opn}${cls}" \
+	    "$cmd_prefix ${class_name}::operator ${opn}${cls}(int)"
+	test_gdb_complete_unique \
+	    "$cmd_prefix ${class_name}::operator ${opn}" \
+	    "$cmd_prefix ${class_name}::operator ${opn}${cls}(int)"
+
+	check_setting_bp_fails "$cmd_prefix ${class_name}::operator"
+
+	set location_list \
+	    [list \
+		 "${class_name}::operator${opn}${cls}" \
+		 "${class_name}::operator ${opn}${cls}" \
+		 "${class_name}::operator ${opn}${cls}(int)" \
+		 "${class_name}::operator ${opn} ${cls} ( int )"]
+	foreach linespec $location_list {
+	    check_bp_locations_match_list \
+		"$cmd_prefix $linespec" [list $location]
+	}
+    }
+
+    # Check that the explicit location completer manages to find the
+    # option name after -function, when the -function's argument is a
+    # C++ operator().
+    check_explicit_skips_function_argument \
+	"${class_name}::operator ${opn} ${cls} ( int )"
+}
+
+# Helper for testing both operator() and operator[].  Tests completion
+# when the operator match is ambiguous.  CLASS_NAME is the class that
+# holds the operator to test.  OPN and CLS are the open and close
+# characters ("()" or "[]").
+
+proc test_operator_ambiguous {class_name opn cls} {
+    foreach cmd_prefix {"b" "b -function"} {
+	check_setting_bp_fails "$cmd_prefix ${class_name}::operator"
+
+	set linespec_noparams "${class_name}::operator${opn}${cls}"
+
+	set location_list \
+	    [list \
+		 "${class_name}::operator${opn}${cls}(int)" \
+		 "${class_name}::operator${opn}${cls}(long)" \
+		 "${class_name}::operator${opn}${cls}<int>(int*)"]
+	# The operator[] test can't have a "()" overload, since that
+	# wouldn't compile.
+	if {$opn == "("} {
+	    set location_list \
+		[concat \
+		     [list "${class_name}::operator${opn}${cls}()"] \
+		     $location_list]
+	}
+	test_gdb_complete_multiple \
+	    "$cmd_prefix " "$linespec_noparams" "" $location_list
+
+	# Setting the breakpoint doesn't create a breakpoint location
+	# for the template, because immediately after
+	# "operator()/operator[]" we have the template parameters, not
+	# the parameter list.
+	set location_list \
+	    [list \
+		 "${class_name}::operator${opn}${cls}(int)" \
+		 "${class_name}::operator${opn}${cls}(long)"]
+	if {$opn == "("} {
+	    set location_list \
+		[concat \
+		     [list "${class_name}::operator${opn}${cls}()"] \
+		     $location_list]
+	}
+	check_bp_locations_match_list "$cmd_prefix $linespec_noparams" \
+	    $location_list
+	check_bp_locations_match_list "$cmd_prefix $linespec_noparams<int>" \
+	    [list "${class_name}::operator${opn}${cls}<int>(int*)"]
+
+	# Test the template version.  Test both with and without
+	# return type.
+	test_gdb_complete_unique \
+	    "$cmd_prefix ${class_name}::operator${opn}${cls}<int>(in" \
+	    "$cmd_prefix ${class_name}::operator${opn}${cls}<int>(int*)"
+	check_bp_locations_match_list \
+	    "$cmd_prefix ${class_name}::operator${opn}${cls}<int>(int*)" \
+	    [list "${class_name}::operator${opn}${cls}<int>(int*)"]
+	test_gdb_complete_unique \
+	    "$cmd_prefix void ${class_name}::operator${opn}${cls}<int>(in" \
+	    "$cmd_prefix void ${class_name}::operator${opn}${cls}<int>(int*)"
+	check_bp_locations_match_list \
+	    "$cmd_prefix void ${class_name}::operator${opn}${cls}<int>(int*)" \
+	    [list "${class_name}::operator${opn}${cls}<int>(int*)"]
+
+	# Add extra spaces.
+	test_gdb_complete_unique \
+	    "$cmd_prefix ${class_name}::operator ${opn} ${cls} ( in" \
+	    "$cmd_prefix ${class_name}::operator ${opn} ${cls} ( int)"
+	check_bp_locations_match_list \
+	    "$cmd_prefix ${class_name}::operator ${opn} ${cls} ( int )" \
+	    [list "${class_name}::operator${opn}${cls}(int)"]
+    }
+}
+
+proc_with_prefix operator()-unique {} {
+    test_operator_unique test_unique_op_call "(" ")"
+}
+
+proc_with_prefix operator\[\]-unique {} {
+    test_operator_unique test_unique_op_array "\[" "\]"
+}
+
+proc_with_prefix operator()-ambiguous {} {
+    test_operator_ambiguous test_op_call "(" ")"
+}
+
+proc_with_prefix operator\[\]-ambiguous {} {
+    test_operator_ambiguous test_op_array "\[" "\]"
+}
+
+# Test arithmetic/logical operators.  Test completing all C++
+# arithmetic/logical operators, when all the operators are in the same
+# class.
+
+proc_with_prefix ops-valid-ambiguous {} {
+    set locations {
+	"test_ops::operator!(E)"
+	"test_ops::operator!=(E, E)"
+	"test_ops::operator%(E, E)"
+	"test_ops::operator%=(E, E)"
+	"test_ops::operator&&(E, E)"
+	"test_ops::operator&(E, E)"
+	"test_ops::operator&=(E, E)"
+	"test_ops::operator*(E, E)"
+	"test_ops::operator*=(E, E)"
+	"test_ops::operator+(E, E)"
+	"test_ops::operator++(E)"
+	"test_ops::operator++(E, int)"
+	"test_ops::operator+=(E, E)"
+	"test_ops::operator,(E, E)"
+	"test_ops::operator-(E, E)"
+	"test_ops::operator--(E)"
+	"test_ops::operator--(E, int)"
+	"test_ops::operator-=(E, E)"
+	"test_ops::operator/(E, E)"
+	"test_ops::operator/=(E, E)"
+	"test_ops::operator<(E, E)"
+	"test_ops::operator<<(E, E)"
+	"test_ops::operator<<=(E, E)"
+	"test_ops::operator<=(E, E)"
+	"test_ops::operator==(E, E)"
+	"test_ops::operator>(E, E)"
+	"test_ops::operator>=(E, E)"
+	"test_ops::operator>>(E, E)"
+	"test_ops::operator>>=(E, E)"
+	"test_ops::operator^(E, E)"
+	"test_ops::operator^=(E, E)"
+	"test_ops::operator|(E, E)"
+	"test_ops::operator|=(E, E)"
+	"test_ops::operator||(E, E)"
+	"test_ops::operator~(E)"
+    }
+    foreach linespec $locations {
+	foreach cmd_prefix {"b" "b -function"} {
+	    test_gdb_complete_unique \
+		"$cmd_prefix $linespec" \
+		"$cmd_prefix $linespec"
+
+	}
+
+	check_explicit_skips_function_argument "$linespec"
+    }
+
+    foreach cmd_prefix {"b" "b -function"} {
+	test_gdb_complete_multiple \
+	    "$cmd_prefix " "test_ops::operator" "" $locations
+    }
+}
+
+# Test completing all C++ operators, with and without spaces.  The
+# test without spaces makes sure the completion matches exactly the
+# expected prototype.  The version with whitespace is a bit more lax
+# for simplicity.  In that case, we only make sure we get back the
+# terminating ')'.  Each operator is defined in a separate class so
+# that we can exercise unique completion matches.
+
+proc_with_prefix ops-valid-unique {} {
+    set locations {
+	"test_op_BIT_AND::operator&(E, E)"
+	"test_op_BIT_AND_A::operator&=(E, E)"
+	"test_op_BIT_O::operator|(E, E)"
+	"test_op_COMMA::operator,(E, E)"
+	"test_op_DIV::operator/(E, E)"
+	"test_op_DIV_A::operator/=(E, E)"
+	"test_op_EQ::operator==(E, E)"
+	"test_op_GT::operator>(E, E)"
+	"test_op_GTE::operator>=(E, E)"
+	"test_op_LAND::operator&&(E, E)"
+	"test_op_LOR::operator||(E, E)"
+	"test_op_LT::operator<(E, E)"
+	"test_op_LTE::operator<=(E, E)"
+	"test_op_MINUS::operator-(E, E)"
+	"test_op_MINUS_A::operator-=(E, E)"
+	"test_op_MOD::operator%(E, E)"
+	"test_op_MOD_A::operator%=(E, E)"
+	"test_op_MUL::operator*(E, E)"
+	"test_op_MUL_A::operator*=(E, E)"
+	"test_op_NEG::operator~(E)"
+	"test_op_NEQ::operator!=(E, E)"
+	"test_op_NOT::operator!(E)"
+	"test_op_OE::operator|=(E, E)"
+	"test_op_PLUS::operator+(E, E)"
+	"test_op_PLUS_A::operator+=(E, E)"
+	"test_op_POST_DEC::operator--(E, int)"
+	"test_op_POST_INC::operator++(E, int)"
+	"test_op_PRE_DEC::operator--(E)"
+	"test_op_PRE_INC::operator++(E)"
+	"test_op_SL::operator<<(E, E)"
+	"test_op_SL_A::operator<<=(E, E)"
+	"test_op_SR::operator>>(E, E)"
+	"test_op_SR_A::operator>>=(E, E)"
+	"test_op_XOR::operator^(E, E)"
+	"test_op_XOR_A::operator^=(E, E)"
+    }
+    set linespecs_ws {
+	"test_op_BIT_AND::operator & ( E , E )"
+	"test_op_BIT_AND_A::operator &= ( E , E )"
+	"test_op_BIT_O::operator | (E , E )"
+	"test_op_COMMA::operator , ( E , E )"
+	"test_op_DIV::operator / (E , E )"
+	"test_op_DIV_A::operator /= ( E , E )"
+	"test_op_EQ::operator == ( E , E )"
+	"test_op_GT::operator > ( E , E )"
+	"test_op_GTE::operator >= ( E , E )"
+	"test_op_LAND::operator && ( E , E )"
+	"test_op_LOR::operator || ( E , E )"
+	"test_op_LT::operator < ( E , E )"
+	"test_op_LTE::operator <= ( E , E )"
+	"test_op_MINUS::operator - ( E , E )"
+	"test_op_MINUS_A::operator -= ( E , E )"
+	"test_op_MOD::operator % ( E , E )"
+	"test_op_MOD_A::operator %= ( E , E )"
+	"test_op_MUL::operator * ( E , E )"
+	"test_op_MUL_A::operator *= ( E , E )"
+	"test_op_NEG::operator ~ ( E )"
+	"test_op_NEQ::operator != ( E , E )"
+	"test_op_NOT::operator ! ( E )"
+	"test_op_OE::operator |= ( E , E )"
+	"test_op_PLUS::operator + ( E , E )"
+	"test_op_PLUS_A::operator += ( E , E )"
+	"test_op_POST_DEC::operator -- ( E , int )"
+	"test_op_POST_INC::operator ++ ( E , int )"
+	"test_op_PRE_DEC::operator -- ( E )"
+	"test_op_PRE_INC::operator ++ ( E )"
+	"test_op_SL::operator << ( E , E )"
+	"test_op_SL_A::operator <<= ( E , E )"
+	"test_op_SR::operator >> ( E , E )"
+	"test_op_SR_A::operator >>= ( E , E )"
+	"test_op_XOR::operator ^ ( E , E )"
+	"test_op_XOR_A::operator ^= ( E , E )"
+    }
+    foreach linespec $locations linespec_ws $linespecs_ws {
+	foreach cmd_prefix {"b" "b -function"} {
+	    with_test_prefix "no-whitespace" {
+		set line "$cmd_prefix $linespec"
+		set start [index_after "::operato" $line]
+		test_complete_prefix_range $line $start
+	    }
+
+	    with_test_prefix "whitespace" {
+		set line_ws "$cmd_prefix $linespec_ws"
+		set start_ws [index_after "::operator " $line_ws]
+		test_complete_prefix_range_re \
+		    $line_ws "$cmd_prefix test_op_.*::operator .*\\\)" $start_ws
+	    }
+	}
+
+	check_explicit_skips_function_argument "$linespec"
+	check_explicit_skips_function_argument "$linespec_ws"
+    }
+}
+
+# Test completing an invalid (whitespace at the wrong place) operator
+# name.
+
+proc_with_prefix ops-invalid {} {
+    foreach linespec {
+	"test_op_BIT_AND_A::operator& =(E, E)"
+	"test_op_DIV_A::operator/ =(E, E)"
+	"test_op_EQ::operator= =(E, E)"
+	"test_op_GTE::operator> =(E, E)"
+	"test_op_LAND::operator& &(E, E)"
+	"test_op_LOR::operator| |(E, E)"
+	"test_op_LTE::operator< =(E, E)"
+	"test_op_MINUS_A::operator- =(E, E)"
+	"test_op_MOD_A::operator% =(E, E)"
+	"test_op_MUL_A::operator* =(E, E)"
+	"test_op_NEQ::operator! =(E, E)"
+	"test_op_OE::operator| =(E, E)"
+	"test_op_PLUS_A::operator+ =(E, E)"
+	"test_op_POST_DEC::operator- -(E, int)"
+	"test_op_POST_INC::operator+ +(E, int)"
+	"test_op_PRE_DEC::operator- -(E)"
+	"test_op_PRE_INC::operator+ +(E)"
+	"test_op_SL::operator< <(E, E)"
+	"test_op_SL_A::operator< < =(E, E)"
+	"test_op_SR::operator> >(E, E)"
+	"test_op_SR_A::operator> > =(E, E)"
+	"test_op_XOR_A::operator^ =(E, E)"
+    } {
+	foreach cmd_prefix {"b" "b -function"} {
+	    test_gdb_complete_tab_none "$cmd_prefix $linespec"
+	    check_setting_bp_fails "$cmd_prefix $linespec"
+	}
+    }
+}
+
+# Test completing function/method FUNCTION.  Completion is tested at
+# every point starting after START_AFTER.  FUNCTION_WS is a version of
+# FUNCTION with extra (but valid) whitespace.  FUNCTION_INVALID is a
+# version of FUNCTION with invalid whitespace.  Tests that completion
+# of FUNCTION_WS completes to self, and that a completion of
+# FUNCTION_INVALID fails.
+
+proc test_function {function start_after function_ws {function_invalid ""}} {
+    foreach cmd_prefix {"b" "b -function"} {
+	set line "$cmd_prefix $function"
+	set start [index_after $start_after $line]
+	test_complete_prefix_range $line $start
+    }
+
+    check_explicit_skips_function_argument $function
+    check_explicit_skips_function_argument $function_ws
+
+    foreach cmd_prefix {"b" "b -function"} {
+	test_gdb_complete_unique \
+	    "$cmd_prefix $function_ws" \
+	    "$cmd_prefix $function_ws"
+	if {$function_invalid != ""} {
+	    test_gdb_complete_tab_none "$cmd_prefix $function_invalid"
+	    check_setting_bp_fails "$cmd_prefix $function_invalid"
+	}
+    }
+}
+
+# Test completing a user-defined conversion operator.
+
+proc_with_prefix conversion-operator {} {
+    test_function \
+	"test_op_conversion::operator test_op_conversion_res const volatile**() const volatile" \
+	"test_op_conversio" \
+	"test_op_conversion::operator test_op_conversion_res const volatile * * ( ) const volatile"}
+
+# Test completing an assignment operator.
+
+proc_with_prefix assignment-operator {} {
+    test_function \
+	"test_op_assign::operator=(test_op_assign const&)" \
+	"test_op_assig" \
+	"test_op_assign::operator = ( test_op_assign const & )" \
+}
+
+# Test completing an arrow operator.
+
+proc_with_prefix arrow-operator {} {
+    test_function \
+	"test_op_arrow::operator->()" \
+	"test_op_arro" \
+	"test_op_arrow::operator -> ( )" \
+	"test_op_arrow::operator - > ( )"
+}
+
+# The testcase driver.  Calls all test procedures.
+
+proc test_driver {} {
+    operator-delete
+    operator-delete\[\]
+    operator-new
+    operator-new\[\]
+    operator()-unique
+    operator()-ambiguous
+    operator\[\]-unique
+    operator\[\]-ambiguous
+    ops-valid-ambiguous
+    ops-valid-unique
+    ops-invalid
+    conversion-operator
+    assignment-operator
+    arrow-operator
+}
+
+test_driver
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/explicit2.c ./gdb/testsuite/gdb.linespec/explicit2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/explicit2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/explicit2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/explicit.c ./gdb/testsuite/gdb.linespec/explicit.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/explicit.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/explicit.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/explicit.exp ./gdb/testsuite/gdb.linespec/explicit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/explicit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/explicit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
@@ -15,6 +15,8 @@
 
 # Tests for explicit locations
 
+load_lib completion-support.exp
+
 standard_testfile explicit.c explicit2.c 3explicit.c
 set exefile $testfile
 
@@ -222,13 +224,14 @@ namespace eval $testfile {
 	    }
 	}
 
-	set tst "complete unique file name"
-	send_gdb "break -source 3ex\t"
-	gdb_test_multiple "" $tst {
-	    -re "break -source 3explicit.c " {
-		send_gdb "\n"
-		gdb_test "" \
-		    {Source filename requires function, label, or line offset.} $tst
+	with_test_prefix "complete unique file name" {
+	    foreach qc $completion::maybe_quoted_list {
+		set cmd "break -source ${qc}3explicit.c${qc}"
+		test_gdb_complete_unique \
+		    "break -source ${qc}3ex" \
+		    $cmd
+		gdb_test $cmd \
+		    {Source filename requires function, label, or line offset.}
 	    }
 	}
 
@@ -326,10 +329,217 @@ namespace eval $testfile {
 	    }
 	}
 
+	with_test_prefix "complete unique label name" {
+	    foreach qc $completion::maybe_quoted_list {
+		test_gdb_complete_unique \
+		    "break -function myfunction -label ${qc}to" \
+		    "break -function myfunction -label ${qc}top${qc}"
+	    }
+	}
+
+	with_test_prefix "complete unique label name with source file" {
+	    test_gdb_complete_unique \
+		"break -source explicit.c -function myfunction -label to" \
+		"break -source explicit.c -function myfunction -label top"
+	}
+
+	with_test_prefix "complete unique label name reversed" {
+	    test_gdb_complete_multiple "b -label top -function " "myfunction" "" {
+		"myfunction"
+		"myfunction2"
+		"myfunction3"
+		"myfunction4"
+	    }
+	}
+
+	with_test_prefix "complete non-unique label name" {
+	    test_gdb_complete_multiple "b -function myfunction -label " "" "" {
+		"done"
+		"top"
+	    }
+	}
+
+	# The program is stopped at myfunction, so gdb is able to
+	# infer the label's function.
+	with_test_prefix "complete label name with no function" {
+	    test_gdb_complete_unique \
+		"break -label to" \
+		"break -label top"
+	    check_bp_locations_match_list \
+		"break -label top" {
+		    "-function myfunction -label top"
+		}
+	}
+
+	# See above.
+	with_test_prefix "complete label name with source file but no function" {
+	    test_gdb_complete_unique \
+		"break -source explicit.c -label to" \
+		"break -source explicit.c -label top"
+	    check_bp_locations_match_list \
+		"break -source explicit.c -label top" {
+		    "-source explicit.c -function myfunction -label top"
+		}
+	}
+
+	with_test_prefix "complete label name with wrong source file" {
+	    test_gdb_complete_none \
+		"break -source explicit2.c -function myfunction -label to"
+	    check_setting_bp_fails \
+		"break -source explicit2.c -function myfunction -label top"
+	}
+
+	# Get rid of symbols from shared libraries, otherwise
+	# "b -source thr<tab>" could find some system library's
+	# source.
+	gdb_test_no_output "nosharedlibrary"
+
+	# Test that after a seemingly finished option argument,
+	# completion matches both the explicit location options and
+	# the linespec keywords.
+	set completions_list {
+	    "-function"
+	    "-label"
+	    "-line"
+	    "-qualified"
+	    "-source"
+	    "if"
+	    "task"
+	    "thread"
+	}
+	foreach what { "-function" "-label" "-line" "-source" } {
+	    # Also test with "-qualified" appearing before the
+	    # explicit location.
+	    foreach prefix {"" "-qualified "} {
+
+		# ... and with "-qualified" appearing after the
+		# explicit location.
+		foreach suffix {"" " -qualified"} {
+		    with_test_prefix "complete after $prefix$what$suffix" {
+			if {$what != "-line"} {
+			    set w "$prefix$what argument$suffix "
+			    test_gdb_complete_multiple \
+				"b $w" "" "" $completions_list
+			    test_gdb_complete_unique \
+				"b $w thr" \
+				"b $w thread"
+			    test_gdb_complete_unique \
+				"b $w -fun" \
+				"b $w -function"
+			} else {
+			    # After -line, we expect a number / offset.
+			    foreach line {"10" "+10" "-10"} {
+				set w "$prefix-line $line$suffix"
+				test_gdb_complete_multiple \
+				    "b $w " "" "" $completions_list
+				test_gdb_complete_unique \
+				    "b $w thr" \
+				    "b $w thread"
+				test_gdb_complete_unique \
+				    "b $w -fun" \
+				    "b $w -function"
+			    }
+
+			    # With an invalid -line argument, we don't get any
+			    # completions.
+			    test_gdb_complete_none "b $prefix-line argument$suffix "
+			}
+
+		    }
+
+		}
+
+		# These tests don't make sense with "-qualified" after
+		# the location.
+		with_test_prefix "complete after $prefix$what" {
+		    # Don't complete a linespec keyword ("thread") or
+		    # another option name when expecting an option
+		    # argument.
+		    test_gdb_complete_none "b $prefix$what thr"
+		    test_gdb_complete_none "b $prefix$what -fun"
+		}
+	    }
+	}
+
+	# Tests that ensure that after "if" we complete on expressions
+	# are in cpcompletion.exp.
+
+	# Disable the completion limit for the rest of the testcase.
+	gdb_test_no_output "set max-completions unlimited"
+
+	# Get rid of symbols from shared libraries, otherwise the
+	# completions match list for "break <tab>" is huge and makes
+	# the test below quite long while the gdb_test_multiple loop
+	# below consumes the matches.  Not doing this added ~20
+	# seconds at the time of writing.  (Actually, already done above.)
+	# gdb_test_no_output "nosharedlibrary"
+
+	# Test completion with no input argument.  We should see all
+	# the options, plus all the functions.  To keep it simple, as
+	# proxy, we check for presence of one explicit location
+	# option, one probe location, and one function.
+	set saw_opt_function 0
+	set saw_opt_probe_stap 0
+	set saw_function 0
+
+	set tst "complete with no arguments"
+	send_gdb "break \t"
+	gdb_test_multiple "" $tst {
+	    "break \\\x07" {
+		send_gdb "\t\t"
+		gdb_test_multiple "" $tst {
+		    "Display all" {
+			send_gdb "y"
+			exp_continue
+		    }
+		    -re "-function" {
+			set saw_opt_function 1
+			exp_continue
+		    }
+		    -re "-probe-stap" {
+			set saw_opt_probe_stap 1
+			exp_continue
+		    }
+		    -re "myfunction4" {
+			set saw_function 1
+			exp_continue
+		    }
+		    -re "\r\n$gdb_prompt " {
+			gdb_assert {$saw_opt_function && $saw_opt_probe_stap && $saw_function} $tst
+		    }
+		    -re "  " {
+			exp_continue
+		    }
+		}
+	    }
+	}
+	clear_input_line $tst
+
 	# NOTE: We don't bother testing more elaborate combinations of options,
 	# such as "-func main -sour 3ex\t" (main is defined in explicit.c).
 	# The completer cannot handle these yet.
 
+	# The following completion tests require having no symbols
+	# loaded.
+	gdb_exit
+	gdb_start
+
+	# The match list you get when you complete with no options
+	# specified at all.
+	set completion_list {
+	    "-function"
+	    "-label"
+	    "-line"
+	    "-probe"
+	    "-probe-dtrace"
+	    "-probe-stap"
+	    "-qualified"
+	    "-source"
+	}
+	with_test_prefix "complete with no arguments and no symbols" {
+	    test_gdb_complete_multiple "b " "" "-" $completion_list
+	    test_gdb_complete_multiple "b " "-" "" $completion_list
+	}
     }
     # End of completion tests.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/keywords.c ./gdb/testsuite/gdb.linespec/keywords.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/keywords.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/keywords.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/keywords.exp ./gdb/testsuite/gdb.linespec/keywords.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/keywords.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/keywords.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/linespec.exp ./gdb/testsuite/gdb.linespec/linespec.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/linespec.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/linespec.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
@@ -43,6 +43,9 @@ if {$l1 != $l2} {
     error "somebody incompatibly modified the source files needed by linespec.exp"
 }
 
+gdb_test_no_output "set breakpoint pending off" \
+    "disable pending breakpoints for linespec tests"
+
 # Copying files to a remote host loses the directory prefix during
 # compilation.
 if { [is_remote host] } {
@@ -55,6 +58,93 @@ if { [is_remote host] } {
     gdb_test "clear one/thefile.cc:$l1" \
         "Deleted breakpoint $decimal *" \
         "clear breakpoint using dir/file:line"
+
+    if { [readline_is_used] } {
+	# There are functions named 'twodup' in both source files.
+	# Both should be found if we restrict the linespec to the
+	# ambiguous "thefile.cc" source filename.  Check both
+	# completion and setting the breakpoint.
+	set tst "complete unique function name in two source files"
+	send_gdb "break thefile.cc:t\t"
+	gdb_test_multiple "" $tst {
+	    -re "break thefile.cc:twodup\\(\\) " {
+		pass $tst
+
+		send_gdb "\n"
+		gdb_test "" \
+		    "Breakpoint $decimal at $hex: thefile.cc:twodup\\(\\). \[(\]2 locations\[)\]" \
+		    "set break at unique function name in two source files"
+	    }
+	}
+
+	# Check both completing and setting a breakpoint on a linespec
+	# with a source component, where there's more than one source
+	# file with the same basename.  We should find the functions
+	# in all matching sources -- one/thefile.cc and
+	# two/thefile.cc.  The "one" file has "z1()", while the "two"
+	# file has "z2()".
+	set tst "complete non-unique function name in two source files"
+	send_gdb "break thefile.cc:z\t"
+	gdb_test_multiple "" $tst {
+	    -re "break thefile.cc:z\\\x07" {
+		send_gdb "\t"
+		gdb_test_multiple "" $tst {
+		    -re "\r\nz1\\(\\)\[ \t\]+z2\\(\\)\[ \t\]+\r\n$gdb_prompt " {
+			pass $tst
+
+			send_gdb "\n"
+			gdb_test "" \
+			    "Function \"z\" not defined in \"thefile.cc\"." \
+			    "set break at non-unique function name in two source files"
+		    }
+		}
+	    }
+	}
+
+	# Now check that disambiguating the source path makes GDB only
+	# match the symbols in that file.  "z" should now have a
+	# unique completion to "z1()", and setting the breakpoint
+	# should find only one location.
+	set tst "complete unique function name in disambiguated source file"
+	send_gdb "break one/thefile.cc:z\t"
+	gdb_test_multiple "" $tst {
+	    -re "break one/thefile.cc:z1\\(\\) " {
+		pass $tst
+
+		send_gdb "\n"
+		gdb_test "" \
+		    "Breakpoint $decimal at $hex: file .*thefile.cc, line \[^\r\n\]*" \
+		    "set break at unique function name in disambiguated source file"
+		}
+	}
+
+	# Check that using a non-existing source path does not confuse
+	# GDB.  It should not match any symbol.
+	set dir_file "one/thefile.cc"
+	set non_existing "/some/non-existing/absolute/path/prefix/$dir_file"
+	set non_existing_re [string_to_regexp $non_existing]
+
+	set tst "complete functions in non-existing absolute path"
+	send_gdb "break $non_existing:\t"
+	gdb_test_multiple "" $tst {
+	    -re "break $non_existing_re:\\\x07" {
+		send_gdb "\t\t"
+		gdb_test_multiple "" $tst {
+		    -re "^\\\x07\\\x07" {
+			pass $tst
+
+			# There's a function called 'twodup' in each
+			# of the thefile.cc files.  Make sure none is
+			# picked.
+			send_gdb "twodup\n"
+			gdb_test "" \
+			    "No source file named $non_existing_re." \
+			    "set break in function in non-existing absolute path"
+		    }
+		}
+	    }
+	}
+    }
 }
 
 gdb_test "break thefile.cc:$l1" \
@@ -73,9 +163,6 @@ gdb_test "break dupname:label" \
 # not the locations.
 gdb_test "complete condition " "condition $decimal\r\ncondition $decimal\r\ncondition $decimal"
 
-gdb_test_no_output "set breakpoint pending off" \
-    "disable pending breakpoints for linespec tests"
-
 # This is PR breakpoints/12856.
 gdb_test "break lspec.cc:nosuchfunction" \
     "Function \"nosuchfunction\" not defined in \"lspec.cc\"." \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/ls-dollar.cc ./gdb/testsuite/gdb.linespec/ls-dollar.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/ls-dollar.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/ls-dollar.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/ls-dollar.exp ./gdb/testsuite/gdb.linespec/ls-dollar.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/ls-dollar.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/ls-dollar.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/ls-errs.c ./gdb/testsuite/gdb.linespec/ls-errs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/ls-errs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/ls-errs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/ls-errs.exp ./gdb/testsuite/gdb.linespec/ls-errs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/ls-errs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/ls-errs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
@@ -96,8 +96,13 @@ proc do_test {lang} {
     }
 
     # Some commonly used whitespace tests around ':'.
-    set spaces [list ":" ": " " :" " : " "\t:  " "  :\t" "\t:\t" \
-		     " \t:\t " "\t  \t:\t  \t  \t"]
+    set spaces [list \
+		    ":" \
+		    ": " \
+		    " :" \
+		    " : " \
+		    "  :  " \
+		   ]
 
     # A list of invalid offsets.
     set invalid_offsets [list -100 +500 1000]
@@ -112,10 +117,10 @@ proc do_test {lang} {
     foreach x $invalid_offsets {
 	set offset $x
 
-	# Relative offsets are relative to line 16.  Adjust
+	# Relative offsets are relative to the current line.  Adjust
 	# expected offset from error message accordingly.
 	if {[string index $x 0] == "+" || [string index $x 0] == "-"} {
-	    incr offset 24
+	    incr offset $bp_location
 	}
 	test_break $x invalid_offset $offset
 	test_break "-line $x" invalid_offset $offset
@@ -167,11 +172,14 @@ proc do_test {lang} {
 	test_break "-source $x -line 3" invalid_file [string trim $x \"']
     }
 
-    # Test that option lexing stops at whitespace boundaries
-    test_break "-source this file has spaces.c -line 3" invalid_file "this"
-    test_break "-function function whitespace" invalid_function "function"
-    test_break "-source $srcfile -function function whitespace" \
-	       invalid_function_f "function" $srcfile
+    # Test that option lexing stops at whitespace boundaries, except
+    # when lexing function names, where we want to handle setting
+    # breakpoints on e.g., "int template_function<int>()".
+    test_break "-source this file has spaces.c -line 3" source_incomplete
+    test_break "-function ret_type tmpl_function" \
+	invalid_function "ret_type tmpl_function"
+    test_break "-source $srcfile -function ret_type tmpl_function" \
+	       invalid_function_f "ret_type tmpl_function" $srcfile
 
     test_break "-function main -label label whitespace" \
 	       invalid_label "label" "main"
@@ -232,7 +240,12 @@ proc do_test {lang} {
     foreach x {"3" "+100" "-100" "foo"} {
 	test_break "main 3" invalid_function "main 3"
 	test_break "-function \"main $x\"" invalid_function "main $x"
-	test_break "main:here $x" invalid_label "here $x" "main"
+	if {$x == "foo"} {
+	    test_break "main:here $x" unexpected_opt "string" $x
+	} else {
+	    test_break "main:here $x" unexpected_opt "number" $x
+	}
+
 	test_break "-function main -label \"here $x\"" \
 		   invalid_label "here $x" "main"
     }
@@ -254,6 +267,7 @@ proc do_test {lang} {
 
     # Explicit linespec-specific tests
     test_break "-source $srcfile" source_incomplete
+    test_break "-source $srcfile main" source_incomplete
 }
 
 foreach_with_prefix lang {"C" "C++"} {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/macro-relative.c ./gdb/testsuite/gdb.linespec/macro-relative.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/macro-relative.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/macro-relative.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/macro-relative.exp ./gdb/testsuite/gdb.linespec/macro-relative.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/macro-relative.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/macro-relative.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/skip-two.exp ./gdb/testsuite/gdb.linespec/skip-two.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/skip-two.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/skip-two.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/thread.c ./gdb/testsuite/gdb.linespec/thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/thread.exp ./gdb/testsuite/gdb.linespec/thread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.linespec/thread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/thread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/array.f ./gdb/testsuite/gdb.mi/array.f
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/array.f	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/array.f	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-c Copyright 2006-2017 Free Software Foundation, Inc.
+c Copyright 2006-2018 Free Software Foundation, Inc.
 
 c This program is free software; you can redistribute it and/or modify
 c it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/basics.c ./gdb/testsuite/gdb.mi/basics.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/basics.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/basics.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 1999-2017 Free Software Foundation, Inc.
+/* Copyright 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp ./gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c ./gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 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
@@ -52,3 +52,24 @@ asm ("func_loopfb_end:");
 
 asm (".globl cu_text_end");
 asm ("cu_text_end:");
+
+/* The .debug_names-based index support depends on .debug_aranges
+   generated by GCC.  (.gdb_index includes a gdb-generated map
+   instead.)  */
+asm (
+"	.pushsection	.debug_aranges,\"\",@progbits \n"
+"	.4byte	.Laranges_end - .Laranges_start \n"	// Length of Address Ranges Info
+".Laranges_start: \n"
+"	.2byte	0x2 \n"	// DWARF Version
+"	.4byte	0 \n" // .Ldebug_info0 - Offset of Compilation Unit Info
+"	.byte	4 \n"	// Size of Address
+"	.byte	0 \n"	// Size of Segment Descriptor
+"	.2byte	0 \n"	// Pad to 16 byte boundary
+"	.2byte	0 \n"
+"	.4byte	cu_text_start \n"	// Address
+"	.4byte	cu_text_end - cu_text_start \n"	// Length
+"	.4byte	0 \n"
+"	.4byte	0 \n"
+".Laranges_end: \n"
+"	.popsection \n"
+);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-main.c ./gdb/testsuite/gdb.mi/dw2-ref-missing-frame-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/dw2-ref-missing-frame-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.S ./gdb/testsuite/gdb.mi/dw2-ref-missing-frame.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/dw2-ref-missing-frame.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/gdb2549.exp ./gdb/testsuite/gdb.mi/gdb2549.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/gdb2549.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/gdb2549.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/gdb669.exp ./gdb/testsuite/gdb.mi/gdb669.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/gdb669.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/gdb669.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/gdb680.exp ./gdb/testsuite/gdb.mi/gdb680.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/gdb680.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/gdb680.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/gdb701.exp ./gdb/testsuite/gdb.mi/gdb701.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/gdb701.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/gdb701.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/gdb792.exp ./gdb/testsuite/gdb.mi/gdb792.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/gdb792.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/gdb792.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/list-thread-groups-available.c ./gdb/testsuite/gdb.mi/list-thread-groups-available.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/list-thread-groups-available.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/list-thread-groups-available.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,29 @@
+/* Copyright 2017-2018 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 <unistd.h>
+
+int
+main ()
+{
+  int i;
+
+  for (i = 0; i < 30; i++)
+    sleep (1);
+
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/list-thread-groups-available.exp ./gdb/testsuite/gdb.mi/list-thread-groups-available.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/list-thread-groups-available.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/list-thread-groups-available.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,78 @@
+# Copyright 2017-2018 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 -list-thread-groups --available works.
+
+load_lib mi-support.exp
+set MIFLAGS "-i=mi"
+
+standard_testfile
+
+# Support for XML is needed to run this test.
+if [gdb_skip_xml_test] then {
+    unsupported "list-thread-groups-available.exp"
+    return -1
+}
+
+if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+    untested "failed to compile"
+    return -1
+}
+
+if [mi_gdb_start] {
+    continue
+}
+
+if ![can_spawn_for_attach] {
+    continue
+}
+
+set string_re {(?:[^\\"]|\\.)*}
+
+set id_re "id=\"$decimal\""
+set type_re "type=\"process\""
+set description_re "description=\"$string_re\""
+set user_re "user=\"$string_re\""
+set cores_re "cores=\[\"$decimal\"(,\"$decimal\")*\]"
+
+# List all available processes.
+set process_entry_re "{${id_re},${type_re}(,$description_re)?(,$user_re)?(,$cores_re)?}"
+
+mi_gdb_test \
+    "-list-thread-groups --available" \
+    "\\^done,groups=\\\[${process_entry_re}(,$process_entry_re)*\\\]" \
+    "list available thread groups"
+
+# List specific processes, make sure there are two entries.
+set spawn_id_1 [remote_spawn target $binfile]
+set pid_1 [spawn_id_get_pid $spawn_id_1]
+set id_re_1 "id=\"$pid_1\""
+
+set spawn_id_2 [remote_spawn target $binfile]
+set pid_2 [spawn_id_get_pid $spawn_id_2]
+set id_re_2 "id=\"$pid_2\""
+
+set process_entry_re_1 "{${id_re_1},${type_re}(,$description_re)?(,$user_re)?(,$cores_re)?}"
+set process_entry_re_2 "{${id_re_2},${type_re}(,$description_re)?(,$user_re)?(,$cores_re)?}"
+
+set process_list_re "(${process_entry_re_1},${process_entry_re_2}|${process_entry_re_2},${process_entry_re_1})"
+
+mi_gdb_test \
+    "-list-thread-groups --available i${pid_1} i${pid_2}" \
+    "\\^done,groups=\\\[${process_list_re}\\\]" \
+    "list available thread groups with filter"
+
+kill_wait_spawned_process $spawn_id_1
+kill_wait_spawned_process $spawn_id_2
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.c ./gdb/testsuite/gdb.mi/mi2-amd64-entry-value.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi2-amd64-entry-value.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp ./gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.s ./gdb/testsuite/gdb.mi/mi2-amd64-entry-value.s
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.s	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi2-amd64-entry-value.s	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi2-prompt.exp ./gdb/testsuite/gdb.mi/mi2-prompt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi2-prompt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi2-prompt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi2-var-child.exp ./gdb/testsuite/gdb.mi/mi2-var-child.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi2-var-child.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi2-var-child.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-async.exp ./gdb/testsuite/gdb.mi/mi-async.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-async.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-async.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-async-run.c ./gdb/testsuite/gdb.mi/mi-async-run.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-async-run.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-async-run.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2016-2017 Free Software Foundation, Inc.
+/* Copyright 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-async-run.exp ./gdb/testsuite/gdb.mi/mi-async-run.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-async-run.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-async-run.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-basics.exp ./gdb/testsuite/gdb.mi/mi-basics.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-basics.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-basics.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-break.exp ./gdb/testsuite/gdb.mi/mi-break.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-break.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-break.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 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
@@ -277,7 +277,7 @@ proc test_breakpoint_commands {} {
 	-number 9 -disp keep -func callee2 -file ".*basics.c" \
 	-line $line_callee2_body
 
-    mi_gdb_test "-break-commands 9 \"set \$i=0\" \"while \$i<10\" \"print \$i\" \"set \$i=\$i+1\" \"end\" \"continue\" " \
+    mi_gdb_test "-break-commands 9 \"bt\" \"set \$i=0\" \"while \$i<10\" \"print \$i\" \"set \$i=\$i+1\" \"end\" \"continue\" " \
         "\\^done" \
         "breakpoint commands: set commands"
 
@@ -291,7 +291,7 @@ proc test_breakpoint_commands {} {
     set test "intermediate stop and continue, bp commands"
     gdb_expect {
 	-i $gdb_main_spawn_id
-	-re ".*\\\$1 = 0.*\\\$10 = 9" {
+	-re ".*callee2.*callee1.*main.*\\\$1 = 0.*\\\$10 = 9" {
 	    pass $test
 	}
 	timeout {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp ./gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-catch-load.c ./gdb/testsuite/gdb.mi/mi-catch-load.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-catch-load.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-catch-load.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-catch-load.exp ./gdb/testsuite/gdb.mi/mi-catch-load.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-catch-load.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-catch-load.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-catch-load-so.c ./gdb/testsuite/gdb.mi/mi-catch-load-so.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-catch-load-so.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-catch-load-so.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-cli.exp ./gdb/testsuite/gdb.mi/mi-cli.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-cli.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-cli.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-cmd-error.exp ./gdb/testsuite/gdb.mi/mi-cmd-error.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-cmd-error.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-cmd-error.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp ./gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.c ./gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp ./gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-mt.c ./gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-mt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-mt.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-mt.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-st.c ./gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-st.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-st.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-st.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-console.exp ./gdb/testsuite/gdb.mi/mi-console.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-console.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-console.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-detach.exp ./gdb/testsuite/gdb.mi/mi-detach.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-detach.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-detach.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-disassemble.exp ./gdb/testsuite/gdb.mi/mi-disassemble.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-disassemble.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-disassemble.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-dprintf.c ./gdb/testsuite/gdb.mi/mi-dprintf.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-dprintf.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-dprintf.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Contributed by Hui Zhu  <hui@codesourcery.com>
 
    This program is free software; you can redistribute it and/or modify
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-dprintf.exp ./gdb/testsuite/gdb.mi/mi-dprintf.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-dprintf.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-dprintf.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 #   Contributed by Hui Zhu  <hui@codesourcery.com>
 
 # This program is free software; you can redistribute it and/or modify
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-dprintf-pending.c ./gdb/testsuite/gdb.mi/mi-dprintf-pending.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-dprintf-pending.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-dprintf-pending.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-dprintf-pending.exp ./gdb/testsuite/gdb.mi/mi-dprintf-pending.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-dprintf-pending.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-dprintf-pending.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-dprintf-pendshr.c ./gdb/testsuite/gdb.mi/mi-dprintf-pendshr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-dprintf-pendshr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-dprintf-pendshr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-editing.exp ./gdb/testsuite/gdb.mi/mi-editing.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-editing.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-editing.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-eval.exp ./gdb/testsuite/gdb.mi/mi-eval.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-eval.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-eval.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-exec-run.exp ./gdb/testsuite/gdb.mi/mi-exec-run.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-exec-run.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-exec-run.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-exit-code.c ./gdb/testsuite/gdb.mi/mi-exit-code.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-exit-code.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-exit-code.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 1999-2017 Free Software Foundation, Inc.
+/* Copyright 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-exit-code.exp ./gdb/testsuite/gdb.mi/mi-exit-code.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-exit-code.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-exit-code.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-file.exp ./gdb/testsuite/gdb.mi/mi-file.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-file.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-file.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-file-transfer.exp ./gdb/testsuite/gdb.mi/mi-file-transfer.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-file-transfer.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-file-transfer.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # This testcase is part of GDB, the GNU debugger.
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-fill-memory.exp ./gdb/testsuite/gdb.mi/mi-fill-memory.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-fill-memory.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-fill-memory.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-fullname-deleted.exp ./gdb/testsuite/gdb.mi/mi-fullname-deleted.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-fullname-deleted.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-fullname-deleted.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-hack-cli.exp ./gdb/testsuite/gdb.mi/mi-hack-cli.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-hack-cli.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-hack-cli.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-i-cmd.exp ./gdb/testsuite/gdb.mi/mi-i-cmd.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-i-cmd.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-i-cmd.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-info-os.exp ./gdb/testsuite/gdb.mi/mi-info-os.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-info-os.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-info-os.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp ./gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-language.exp ./gdb/testsuite/gdb.mi/mi-language.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-language.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-language.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc ./gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp ./gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-logging.exp ./gdb/testsuite/gdb.mi/mi-logging.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-logging.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-logging.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-memory-changed.exp ./gdb/testsuite/gdb.mi/mi-memory-changed.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-memory-changed.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-memory-changed.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-nonstop-exit.exp ./gdb/testsuite/gdb.mi/mi-nonstop-exit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-nonstop-exit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-nonstop-exit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-nonstop.exp ./gdb/testsuite/gdb.mi/mi-nonstop.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-nonstop.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-nonstop.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-nsintrall.exp ./gdb/testsuite/gdb.mi/mi-nsintrall.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-nsintrall.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-nsintrall.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-nsmoribund.exp ./gdb/testsuite/gdb.mi/mi-nsmoribund.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-nsmoribund.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-nsmoribund.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp ./gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-nsthrexec.exp ./gdb/testsuite/gdb.mi/mi-nsthrexec.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-nsthrexec.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-nsthrexec.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-pending.c ./gdb/testsuite/gdb.mi/mi-pending.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-pending.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-pending.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-pending.exp ./gdb/testsuite/gdb.mi/mi-pending.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-pending.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-pending.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-pendshr2.c ./gdb/testsuite/gdb.mi/mi-pendshr2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-pendshr2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-pendshr2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-pendshr.c ./gdb/testsuite/gdb.mi/mi-pendshr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-pendshr.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-pendshr.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-pthreads.exp ./gdb/testsuite/gdb.mi/mi-pthreads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-pthreads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-pthreads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 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
@@ -39,7 +39,7 @@ proc check_mi_thread_command_set {} {
     "check_mi_thread_command_set: -thread-select"
 
   mi_gdb_test "-thread-select 123456789" \
-    {&.*\^error,msg="Thread ID 123456789 not known\."} \
+    {\^error,msg="Thread ID 123456789 not known\."} \
     "check_mi_thread_command_set: -thread-select 123456789"
 
   foreach thread $thread_list {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-read-memory.exp ./gdb/testsuite/gdb.mi/mi-read-memory.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-read-memory.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-read-memory.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-record-changed.exp ./gdb/testsuite/gdb.mi/mi-record-changed.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-record-changed.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-record-changed.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-regs.exp ./gdb/testsuite/gdb.mi/mi-regs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-regs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-regs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-reg-undefined.c ./gdb/testsuite/gdb.mi/mi-reg-undefined.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-reg-undefined.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-reg-undefined.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2013-2017 Free Software Foundation, Inc.
+/* Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-reg-undefined.exp ./gdb/testsuite/gdb.mi/mi-reg-undefined.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-reg-undefined.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-reg-undefined.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-reg-undefined.S ./gdb/testsuite/gdb.mi/mi-reg-undefined.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-reg-undefined.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-reg-undefined.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2013-2017 Free Software Foundation, Inc.
+/* Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-return.exp ./gdb/testsuite/gdb.mi/mi-return.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-return.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-return.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-reverse.exp ./gdb/testsuite/gdb.mi/mi-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-simplerun.exp ./gdb/testsuite/gdb.mi/mi-simplerun.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-simplerun.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-simplerun.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-solib.exp ./gdb/testsuite/gdb.mi/mi-solib.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-solib.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-solib.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-stack.c ./gdb/testsuite/gdb.mi/mi-stack.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-stack.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-stack.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 1999-2017 Free Software Foundation, Inc.
+/* Copyright 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-stack.exp ./gdb/testsuite/gdb.mi/mi-stack.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-stack.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-stack.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2000-2017 Free Software Foundation, Inc.
+# Copyright 2000-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-start.c ./gdb/testsuite/gdb.mi/mi-start.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-start.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-start.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2013-2017 Free Software Foundation, Inc.
+/* Copyright 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-start.exp ./gdb/testsuite/gdb.mi/mi-start.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-start.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-start.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-stepi.exp ./gdb/testsuite/gdb.mi/mi-stepi.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-stepi.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-stepi.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-stepn.c ./gdb/testsuite/gdb.mi/mi-stepn.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-stepn.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-stepn.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-stepn.exp ./gdb/testsuite/gdb.mi/mi-stepn.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-stepn.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-stepn.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-syn-frame.exp ./gdb/testsuite/gdb.mi/mi-syn-frame.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-syn-frame.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-syn-frame.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-threads-interrupt.c ./gdb/testsuite/gdb.mi/mi-threads-interrupt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-threads-interrupt.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-threads-interrupt.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-threads-interrupt.exp ./gdb/testsuite/gdb.mi/mi-threads-interrupt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-threads-interrupt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-threads-interrupt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 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
@@ -13,6 +13,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/>.
 
+if [target_info exists gdb,nointerrupts] {
+    verbose "Skipping mi-threads-interrupt.exp because of nointerrupts."
+    continue
+}
+
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-undefined-cmd.exp ./gdb/testsuite/gdb.mi/mi-undefined-cmd.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-undefined-cmd.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-undefined-cmd.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-until.exp ./gdb/testsuite/gdb.mi/mi-until.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-until.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-until.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-block.exp ./gdb/testsuite/gdb.mi/mi-var-block.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-block.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-block.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-child.c ./gdb/testsuite/gdb.mi/mi-var-child.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-child.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-child.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 1999-2017 Free Software Foundation, Inc.
+/* Copyright 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-child.exp ./gdb/testsuite/gdb.mi/mi-var-child.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-child.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-child.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-child-f.exp ./gdb/testsuite/gdb.mi/mi-var-child-f.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-child-f.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-child-f.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 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
@@ -17,6 +17,7 @@
 
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
+load_lib "fortran.exp"
 
 if { [skip_fortran_tests] } { return -1 }
 
@@ -40,10 +41,9 @@ mi_runto MAIN__
 mi_create_varobj "array" "array" "create local variable array"
 
 
-# Depending on the compiler version being used, the name of the 4-byte integer
-# and real types can be printed differently.  For instance, gfortran-4.1 uses
-# "int4" whereas gfortran-4.3 uses "integer(kind=4)".
-set int4 "(int4|integer\\(kind=4\\))"
+# Depending on the compiler being used,
+# the type names can be printed differently.
+set int4 [fortran_int4]
 
 set children [list [list "array.-1" "-1" 2 "$int4 \\(2\\)"] \
 		  [list "array.0" "0" 2 "$int4 \\(2\\)"] \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-cmd.exp ./gdb/testsuite/gdb.mi/mi-var-cmd.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-cmd.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-cmd.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-cp.cc ./gdb/testsuite/gdb.mi/mi-var-cp.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-cp.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-cp.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2006-2017 Free Software Foundation, Inc.
+/* Copyright 2006-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-cp.exp ./gdb/testsuite/gdb.mi/mi-var-cp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-cp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-cp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2006-2017 Free Software Foundation, Inc.
+# Copyright 2006-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-create-rtti.c ./gdb/testsuite/gdb.mi/mi-var-create-rtti.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-create-rtti.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-create-rtti.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp ./gdb/testsuite/gdb.mi/mi-var-create-rtti.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-create-rtti.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-display.exp ./gdb/testsuite/gdb.mi/mi-var-display.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-display.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-display.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-invalidate.exp ./gdb/testsuite/gdb.mi/mi-var-invalidate.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-invalidate.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-invalidate.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.c ./gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp ./gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-rtti.cc ./gdb/testsuite/gdb.mi/mi-var-rtti.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-rtti.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-rtti.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2012-2017 Free Software Foundation, Inc.
+/* Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-rtti.exp ./gdb/testsuite/gdb.mi/mi-var-rtti.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-var-rtti.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-var-rtti.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-vla-c99.exp ./gdb/testsuite/gdb.mi/mi-vla-c99.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-vla-c99.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-vla-c99.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # Contributed by Intel Corp. <keven.boell@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-vla-fortran.exp ./gdb/testsuite/gdb.mi/mi-vla-fortran.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-vla-fortran.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-vla-fortran.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
@@ -17,6 +17,7 @@
 # Array (VLA).
 
 load_lib mi-support.exp
+load_lib fortran.exp
 set MIFLAGS "-i=mi"
 
 gdb_exit
@@ -32,19 +33,23 @@ if { [gdb_compile "${srcdir}/${subdir}/$
      return -1
 }
 
+# Depending on the compiler being used,
+# the type names can be printed differently.
+set real [fortran_real4]
+
 mi_delete_breakpoints
 mi_gdb_reinitialize_dir $srcdir/$subdir
 mi_gdb_load ${binfile}
 
 set bp_lineno [gdb_get_line_number "vla1-not-allocated"]
-mi_create_breakpoint "-t vla.f90:$bp_lineno" 1 "del" "vla" \
-  ".*vla.f90" $bp_lineno $hex \
-  "insert breakpoint at line $bp_lineno (vla not allocated)"
+mi_create_breakpoint "-t vla.f90:$bp_lineno" \
+    "insert breakpoint at line $bp_lineno (vla not allocated)" \
+    -number 1 -disp del -func vla ".*vla.f90" $bp_lineno $hex
 mi_run_cmd
 mi_expect_stop "breakpoint-hit" "vla" "" ".*vla.f90" "$bp_lineno" \
   { "" "disp=\"del\"" } "run to breakpoint at line $bp_lineno"
 mi_gdb_test "500-data-evaluate-expression vla1" \
-  "500\\^done,value=\"<not allocated>\"" "evaluate not allocated vla"
+  "500\\^done,value=\"<not allocated>\"" "evaluate not allocated vla, before allocation"
 
 mi_create_varobj_checked vla1_not_allocated vla1 "<not allocated>" \
   "create local variable vla1_not_allocated"
@@ -58,23 +63,24 @@ mi_gdb_test "503-var-evaluate-expression
   "503\\^done,value=\"\\\[0\\\]\"" \
   "eval variable vla1_not_allocated"
 mi_list_array_varobj_children_with_index "vla1_not_allocated" "0" "1" \
-    "real\\\(kind=4\\\)" "get children of vla1_not_allocated"
+    "$real" "get children of vla1_not_allocated"
 
 
 
 set bp_lineno [gdb_get_line_number "vla1-allocated"]
-mi_create_breakpoint "-t vla.f90:$bp_lineno" 2 "del" "vla" ".*vla.f90" \
-  $bp_lineno $hex "insert breakpoint at line $bp_lineno (vla allocated)"
+mi_create_breakpoint "-t vla.f90:$bp_lineno" \
+    "insert breakpoint at line $bp_lineno (vla allocated)" \
+    -number 2 -disp del -func vla ".*vla.f90" $bp_lineno $hex
 mi_run_cmd
 mi_expect_stop "breakpoint-hit" "vla" "" ".*vla.f90" "$bp_lineno" \
   { "" "disp=\"del\"" } "run to breakpoint at line $bp_lineno"
 mi_gdb_test "510-data-evaluate-expression vla1" \
   "510\\^done,value=\"\\(.*\\)\"" "evaluate allocated vla"
 
-mi_create_varobj_checked vla1_allocated vla1 "real\\\(kind=4\\\) \\\(5\\\)" \
+mi_create_varobj_checked vla1_allocated vla1 "$real \\\(5\\\)" \
   "create local variable vla1_allocated"
 mi_gdb_test "511-var-info-type vla1_allocated" \
-  "511\\^done,type=\"real\\\(kind=4\\\) \\\(5\\\)\"" \
+  "511\\^done,type=\"$real \\\(5\\\)\"" \
   "info type variable vla1_allocated"
 mi_gdb_test "512-var-show-format vla1_allocated" \
   "512\\^done,format=\"natural\"" \
@@ -83,48 +89,52 @@ mi_gdb_test "513-var-evaluate-expression
   "513\\^done,value=\"\\\[5\\\]\"" \
   "eval variable vla1_allocated"
 mi_list_array_varobj_children_with_index "vla1_allocated" "5" "1" \
-    "real\\\(kind=4\\\)" "get children of vla1_allocated"
+    "$real" "get children of vla1_allocated"
 
 
 set bp_lineno [gdb_get_line_number "vla1-filled"]
-mi_create_breakpoint "-t vla.f90:$bp_lineno" 3 "del" "vla" ".*vla.f90" \
-  $bp_lineno $hex "insert breakpoint at line $bp_lineno"
+mi_create_breakpoint "-t vla.f90:$bp_lineno" \
+    "insert breakpoint at line $bp_lineno" \
+    -number 3 -disp del -func vla ".*vla.f90" $bp_lineno $hex
 mi_run_cmd
 mi_expect_stop "breakpoint-hit" "vla" "" ".*vla.f90" "$bp_lineno" \
   { "" "disp=\"del\"" } "run to breakpoint at line $bp_lineno"
 mi_gdb_test "520-data-evaluate-expression vla1" \
-  "520\\^done,value=\"\\(1, 1, 1, 1, 1\\)\"" "evaluate filled vla"
+  "520\\^done,value=\"\\(1, 1, 1, 1, 1\\)\"" "evaluate filled vla, filled all 1s"
 
 
 set bp_lineno [gdb_get_line_number "vla1-modified"]
-mi_create_breakpoint "-t vla.f90:$bp_lineno" 4 "del" "vla" ".*vla.f90" \
-  $bp_lineno $hex "insert breakpoint at line $bp_lineno"
+mi_create_breakpoint "-t vla.f90:$bp_lineno" \
+    "insert breakpoint at line $bp_lineno" \
+    -number 4 -disp del -func vla ".*vla.f90" $bp_lineno $hex
 mi_run_cmd
 mi_expect_stop "breakpoint-hit" "vla" "" ".*vla.f90" "$bp_lineno" \
   { "" "disp=\"del\"" } "run to breakpoint at line $bp_lineno"
 mi_gdb_test "530-data-evaluate-expression vla1" \
-  "530\\^done,value=\"\\(1, 42, 1, 24, 1\\)\"" "evaluate filled vla"
+  "530\\^done,value=\"\\(1, 42, 1, 24, 1\\)\"" "evaluate filled vla, contents modified"
 mi_gdb_test "540-data-evaluate-expression vla1(1)" \
-  "540\\^done,value=\"1\"" "evaluate filled vla"
+  "540\\^done,value=\"1\"" "evaluate filled vla(1)"
 mi_gdb_test "550-data-evaluate-expression vla1(2)" \
-  "550\\^done,value=\"42\"" "evaluate filled vla"
+  "550\\^done,value=\"42\"" "evaluate filled vla(2)"
 mi_gdb_test "560-data-evaluate-expression vla1(4)" \
-  "560\\^done,value=\"24\"" "evaluate filled vla"
+  "560\\^done,value=\"24\"" "evaluate filled vla(4)"
 
 
 set bp_lineno [gdb_get_line_number "vla1-deallocated"]
-mi_create_breakpoint "-t vla.f90:$bp_lineno" 5 "del" "vla" ".*vla.f90" \
-  $bp_lineno $hex "insert breakpoint at line $bp_lineno"
+mi_create_breakpoint "-t vla.f90:$bp_lineno" \
+    "insert breakpoint at line $bp_lineno" \
+    -number 5 -disp del -func vla ".*vla.f90" $bp_lineno $hex
 mi_run_cmd
 mi_expect_stop "breakpoint-hit" "vla" "" ".*vla.f90" "$bp_lineno" \
   { "" "disp=\"del\"" } "run to breakpoint at line $bp_lineno"
 mi_gdb_test "570-data-evaluate-expression vla1" \
-  "570\\^done,value=\"<not allocated>\"" "evaluate not allocated vla"
+  "570\\^done,value=\"<not allocated>\"" "evaluate not allocated vla, after deallocation"
 
 
 set bp_lineno [gdb_get_line_number "pvla2-not-associated"]
-mi_create_breakpoint "-t vla.f90:$bp_lineno" 6 "del" "vla" ".*vla.f90" \
-  $bp_lineno $hex "insert breakpoint at line $bp_lineno"
+mi_create_breakpoint "-t vla.f90:$bp_lineno" \
+    "insert breakpoint at line $bp_lineno" \
+    -number 6 -disp "del" -func "vla" ".*vla.f90" $bp_lineno $hex
 mi_run_cmd
 mi_expect_stop "breakpoint-hit" "vla" "" ".*vla.f90" "$bp_lineno" \
   { "" "disp=\"del\"" } "run to breakpoint at line $bp_lineno"
@@ -148,7 +158,7 @@ gdb_expect {
 	    "583\\^done,value=\"\\\[0\\\]\"" \
 	    "eval variable pvla2_not_associated"
 	mi_list_array_varobj_children_with_index "pvla2_not_associated" "0" "1" \
-	    "real\\\(kind=4\\\)" "get children of pvla2_not_associated"
+	    "$real" "get children of pvla2_not_associated"
     }
     -re "580\\^error,msg=\"value contents too large \\(\[0-9\]+ bytes\\).*${mi_gdb_prompt}$" {
 	# Undefined behaviour in gfortran.
@@ -163,8 +173,9 @@ gdb_expect {
 }
 
 set bp_lineno [gdb_get_line_number "pvla2-associated"]
-mi_create_breakpoint "-t vla.f90:$bp_lineno" 7 "del" "vla" ".*vla.f90" \
-  $bp_lineno $hex "insert breakpoint at line $bp_lineno"
+mi_create_breakpoint "-t vla.f90:$bp_lineno" \
+    "insert breakpoint at line $bp_lineno" \
+    -number 7 -disp del -func vla ".*vla.f90" $bp_lineno $hex
 mi_run_cmd
 mi_expect_stop "breakpoint-hit" "vla" "" ".*vla.f90" "$bp_lineno" \
   { "" "disp=\"del\"" } "run to breakpoint at line $bp_lineno"
@@ -173,9 +184,9 @@ mi_gdb_test "590-data-evaluate-expressio
   "evaluate associated vla"
 
 mi_create_varobj_checked pvla2_associated pvla2 \
-  "real\\\(kind=4\\\) \\\(5,2\\\)" "create local variable pvla2_associated"
+  "$real \\\(5,2\\\)" "create local variable pvla2_associated"
 mi_gdb_test "591-var-info-type pvla2_associated" \
-  "591\\^done,type=\"real\\\(kind=4\\\) \\\(5,2\\\)\"" \
+  "591\\^done,type=\"$real \\\(5,2\\\)\"" \
   "info type variable pvla2_associated"
 mi_gdb_test "592-var-show-format pvla2_associated" \
   "592\\^done,format=\"natural\"" \
@@ -186,8 +197,9 @@ mi_gdb_test "593-var-evaluate-expression
 
 
 set bp_lineno [gdb_get_line_number "pvla2-set-to-null"]
-mi_create_breakpoint "-t vla.f90:$bp_lineno" 8 "del" "vla" ".*vla.f90" \
-  $bp_lineno $hex "insert breakpoint at line $bp_lineno"
+mi_create_breakpoint "-t vla.f90:$bp_lineno" \
+    "insert breakpoint at line $bp_lineno" \
+    -number 8 -disp del -func vla ".*vla.f90" $bp_lineno $hex
 mi_run_cmd
 mi_expect_stop "breakpoint-hit" "vla" "" ".*vla.f90" "$bp_lineno" \
   { "" "disp=\"del\"" } "run to breakpoint at line $bp_lineno"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-watch.exp ./gdb/testsuite/gdb.mi/mi-watch.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-watch.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-watch.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-watch-nonstop.exp ./gdb/testsuite/gdb.mi/mi-watch-nonstop.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/mi-watch-nonstop.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-watch-nonstop.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2011-2017 Free Software Foundation, Inc.
+#   Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/new-ui-mi-sync.c ./gdb/testsuite/gdb.mi/new-ui-mi-sync.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/new-ui-mi-sync.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/new-ui-mi-sync.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/new-ui-mi-sync.exp ./gdb/testsuite/gdb.mi/new-ui-mi-sync.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/new-ui-mi-sync.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/new-ui-mi-sync.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/non-stop.c ./gdb/testsuite/gdb.mi/non-stop.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/non-stop.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/non-stop.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Test program for non-stop debugging.
-   Copyright 1996-2017 Free Software Foundation, Inc.
+   Copyright 1996-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/non-stop-exit.c ./gdb/testsuite/gdb.mi/non-stop-exit.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/non-stop-exit.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/non-stop-exit.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Test program exit in non-stop mode.
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/nsintrall.c ./gdb/testsuite/gdb.mi/nsintrall.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/nsintrall.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/nsintrall.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/nsmoribund.c ./gdb/testsuite/gdb.mi/nsmoribund.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/nsmoribund.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/nsmoribund.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/ns-stale-regcache.c ./gdb/testsuite/gdb.mi/ns-stale-regcache.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/ns-stale-regcache.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/ns-stale-regcache.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/nsthrexec.c ./gdb/testsuite/gdb.mi/nsthrexec.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/nsthrexec.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/nsthrexec.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/pending.c ./gdb/testsuite/gdb.mi/pending.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/pending.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/pending.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/pendshr1.c ./gdb/testsuite/gdb.mi/pendshr1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/pendshr1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/pendshr1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/pendshr2.c ./gdb/testsuite/gdb.mi/pendshr2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/pendshr2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/pendshr2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/pr11022.c ./gdb/testsuite/gdb.mi/pr11022.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/pr11022.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/pr11022.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/pr11022.exp ./gdb/testsuite/gdb.mi/pr11022.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/pr11022.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/pr11022.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/pthreads.c ./gdb/testsuite/gdb.mi/pthreads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/pthreads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/pthreads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Pthreads test program.
-   Copyright 1996-2017 Free Software Foundation, Inc.
+   Copyright 1996-2018 Free Software Foundation, Inc.
 
    Written by Keith Seitz of Red Hat.
    Copied from gdb.threads/pthreads.c.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/solib-lib.c ./gdb/testsuite/gdb.mi/solib-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/solib-lib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/solib-lib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2011-2017 Free Software Foundation, Inc.
+/* Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/solib-main.c ./gdb/testsuite/gdb.mi/solib-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/solib-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/solib-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2011-2017 Free Software Foundation, Inc.
+/* Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/user-selected-context-sync.c ./gdb/testsuite/gdb.mi/user-selected-context-sync.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/user-selected-context-sync.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/user-selected-context-sync.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/user-selected-context-sync.exp ./gdb/testsuite/gdb.mi/user-selected-context-sync.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/user-selected-context-sync.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/user-selected-context-sync.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/var-cmd.c ./gdb/testsuite/gdb.mi/var-cmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/var-cmd.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/var-cmd.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 1999-2017 Free Software Foundation, Inc.
+/* Copyright 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/vla.c ./gdb/testsuite/gdb.mi/vla.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/vla.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/vla.c	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
 
    Contributed by Intel Corp. <keven.boell@intel.com>
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/vla.f90 ./gdb/testsuite/gdb.mi/vla.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/vla.f90	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/vla.f90	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-! Copyright 2015-2017 Free Software Foundation, Inc.
+! Copyright 2015-2018 Free Software Foundation, Inc.
 !
 ! This program is free software; you can redistribute it and/or modify
 ! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/watch-nonstop.c ./gdb/testsuite/gdb.mi/watch-nonstop.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.mi/watch-nonstop.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/watch-nonstop.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.modula2/unbounded1.c ./gdb/testsuite/gdb.modula2/unbounded1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.modula2/unbounded1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.modula2/unbounded1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test script is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.modula2/unbounded-array.exp ./gdb/testsuite/gdb.modula2/unbounded-array.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.modula2/unbounded-array.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.modula2/unbounded-array.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/base.exp ./gdb/testsuite/gdb.multi/base.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/base.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/base.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/bkpt-multi-exec.exp ./gdb/testsuite/gdb.multi/bkpt-multi-exec.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/bkpt-multi-exec.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/bkpt-multi-exec.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -13,7 +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/>.
 
-if { [is_remote target] || ![isnative] } then {
+if ![target_can_use_run_cmd] {
     continue
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/dummy-frame-restore.c ./gdb/testsuite/gdb.multi/dummy-frame-restore.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/dummy-frame-restore.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/dummy-frame-restore.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/dummy-frame-restore.exp ./gdb/testsuite/gdb.multi/dummy-frame-restore.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/dummy-frame-restore.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/dummy-frame-restore.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/goodbye.c ./gdb/testsuite/gdb.multi/goodbye.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/goodbye.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/goodbye.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/hangout.c ./gdb/testsuite/gdb.multi/hangout.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/hangout.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/hangout.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 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
@@ -16,14 +16,28 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <stdio.h>
+#include <unistd.h>
+
+static void
+hangout_loop (void)
+{
+}
 
 int
 main(int argc, char *argv[])
 {
   int i;
 
+  alarm (30);
+
   for (i = 0; i < argc; ++i)
     {
       printf("Arg %d is %s\n", i, argv[i]);
     }
+
+  while (1)
+    {
+      hangout_loop ();
+      usleep (20);
+    }
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/hello.c ./gdb/testsuite/gdb.multi/hello.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/hello.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/hello.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 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
@@ -16,6 +16,7 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <stdlib.h>
+#include <unistd.h>
 
 short hglob = 1;
 
@@ -37,15 +38,27 @@ hello(int x)
   return x + 45;
 }
 
+static void
+hello_loop (void)
+{
+}
+
 int
 main()
 {
   int tmpx;
 
+  alarm (30);
+
   bar();
   tmpx = hello(glob);
   commonfun();
   glob = tmpx;
   commonfun();
-}
 
+  while (1)
+    {
+      hello_loop ();
+      usleep (20);
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/info-threads.exp ./gdb/testsuite/gdb.multi/info-threads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/info-threads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/info-threads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/multi-arch-exec.c ./gdb/testsuite/gdb.multi/multi-arch-exec.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/multi-arch-exec.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/multi-arch-exec.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 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
@@ -20,11 +20,32 @@
 #include <unistd.h>
 #include <limits.h>
 #include <string.h>
+#include <pthread.h>
+
+#define NUM_THREADS 1
+
+static pthread_barrier_t barrier;
+
+static void *
+thread_start (void *arg)
+{
+  pthread_barrier_wait (&barrier);
+
+  while (1)
+    sleep (1);
+  return NULL;
+}
+
+static void
+all_started (void)
+{
+}
 
 int
 main (int argc, char ** argv)
 {
   char prog[PATH_MAX];
+  pthread_t thread;
   int len;
 
   strcpy (prog, argv[0]);
@@ -33,6 +54,12 @@ main (int argc, char ** argv)
   memcpy (prog + len - 15, "multi-arch-exec-hello", 21);
   prog[len + 6] = 0;
 
+  pthread_barrier_init (&barrier, NULL, NUM_THREADS + 1);
+  pthread_create (&thread, NULL, thread_start, NULL);
+
+  pthread_barrier_wait (&barrier);
+  all_started ();
+
   execl (prog,
          prog,
          (char *) NULL);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/multi-arch-exec.exp ./gdb/testsuite/gdb.multi/multi-arch-exec.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/multi-arch-exec.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/multi-arch-exec.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -29,69 +29,161 @@ if [istarget "i?86-*linux*"] {
     return
 }
 
-# Can't use standard_testfile, we want executables with specialized
-# names.
-set exec1 "multi-arch-exec"
-set srcfile1 multi-arch-exec.c
-set binfile1 [standard_output_file ${exec1}]
-
-set exec2 "multi-arch-exec-hello"
-set srcfile2 hello.c
-set binfile2 [standard_output_file ${exec2}]
-
-# Build two executables, one for each arch.
-
-if [istarget "s390*-*-*"] {
-    set march1 "-m64"
-    set march2 "-m31"
-} elseif { [istarget "aarch64*-*-*"] } {
-    set march1 ""
-    set march2 ""
-} else {
-    set march1 "-m64"
-    set march2 "-m32"
-}
-
-if { [prepare_for_testing "failed to prepare" ${exec1} "${srcfile1}" \
-	  [list debug \
-	       additional_flags=${march1}]] } {
-    return -1
-}
-
-set options [list debug]
-
-if { [istarget "aarch64*-*-*"] } {
-    if {[info exists ARM_CC_FOR_TARGET]} {
-	lappend options "compiler=${ARM_CC_FOR_TARGET}"
+# The testcase builds two programs, each of its own architecture.  For
+# example, one built with -m64, another with -m32.  The exact compiler
+# options depends on target triplet.  We generically refer to the
+# architectures simply as 'architecture 1' and 'architecture 2'.  Each
+# program is actually built twice, once for each architecture, because
+# we test both execing from arch1 to arch2 and from arch2 to arch1.
+# The architecture of the executable that execs is encoded in the
+# binaries' names, like so:
+#
+#    $first_arch-multi-arch-exec         # execing program
+#    $first_arch-multi-arch-exec-hello   # execed program
+
+# Append the options necessary to build a program for architecture 1
+# to the OPTIONS_VAR list.
+
+proc append_arch1_options {options_var} {
+    upvar 1 $options_var options
+
+    if { [istarget "aarch64*-*-*"] } {
+	return 1
+    }
+
+    lappend options "additional_flags=-m64"
+    return 1
+}
+
+# Append the options necessary to build a program for architecture 2
+# to the OPTIONS_VAR list.
+
+proc append_arch2_options {options_var} {
+    upvar 1 $options_var options
+
+    if { [istarget "aarch64*-*-*"] } {
+	if {[info exists ARM_CC_FOR_TARGET]} {
+	    lappend options "compiler=${ARM_CC_FOR_TARGET}"
+	    return 1
+	} else {
+	    unsupported "ARM compiler is not known"
+	    return 0
+	}
+    }
+
+    if [istarget "s390*-*-*"] {
+	set march "-m31"
     } else {
-	unsupported "ARM compiler is not known"
-	return -1
+	set march "-m32"
     }
-} else {
-    lappend options "additional_flags=${march2}"
+    lappend options "additional_flags=${march}"
+    return 1
 }
 
-if { [prepare_for_testing "failed to prepare" ${exec2} "${srcfile2}" \
-	  $options] } {
-    return -1
+# Append the options necessary to build a program for architecture
+# ARCH to the OPTIONS_VAR list.  Returns true on success.
+
+proc append_arch_options {arch options_var} {
+    upvar 1 $options_var options
+
+    if {$arch == 1} {
+	return [append_arch1_options options]
+    } elseif {$arch == 2} {
+	return [append_arch2_options options]
+    } else {
+	error "unhandled architecture: $arch"
+    }
 }
 
-proc do_test { mode } {
-	global exec1
+# Build the executables for testing with FIRST_ARCH (either 1 or 2) as
+# the architecture before the exec.  Returns true on success.
+
+proc build_executables { first_arch } {
 
-	clean_restart ${exec1}
-	if ![runto_main] then {
-	    fail "couldn't run to main"
+    # Can't use standard_testfile, we want executables with specialized
+    # names.
+    set from_exec "$first_arch-multi-arch-exec"
+    set from_srcfile multi-arch-exec.c
+    set from_binfile [standard_output_file ${from_exec}]
+
+    set to_exec "$first_arch-multi-arch-exec-hello"
+    set to_srcfile hello.c
+    set to_binfile [standard_output_file ${to_exec}]
+
+    # Build two executables, one for each arch.
+
+    if {$first_arch == 1} {
+	set from_arch 1
+	set to_arch 2
+    } elseif {$first_arch == 2} {
+	set from_arch 2
+	set to_arch 1
+    } else {
+	error "unhandled first architecture: $first_arch"
+    }
+
+    set from_options [list debug pthreads]
+    if {![append_arch_options $from_arch from_options]} {
+	return 0
+    }
+
+    if { [build_executable "failed to prepare" ${from_exec} "${from_srcfile}" \
+	      $from_options] } {
+	return 0
+    }
+
+    set to_options [list debug]
+    if {![append_arch_options $to_arch to_options]} {
+	return 0
+    }
+
+    if { [build_executable "failed to prepare" ${to_exec} "${to_srcfile}" \
+	      $to_options] } {
+	return 0
+    }
+
+    return 1
+}
+
+proc do_test { first_arch mode selected_thread } {
+	set from_exec "$first_arch-multi-arch-exec"
+
+	clean_restart ${from_exec}
+	if ![runto all_started] then {
+	    fail "couldn't run to all_started"
 	    return -1
 	}
 
+	# Delete the breakpoint at 'all_started' otherwise GDB may
+	# switch context back to thread 1 to step over the breakpoint.
+	delete_breakpoints
+
+	# A location for this breakpoint should be found in the new
+	# post-exec image too.
+	gdb_breakpoint main
+
+	gdb_test "thread $selected_thread" "Switching to thread $selected_thread .*"
+
 	gdb_test_no_output "set follow-exec-mode $mode"
 
 	# Test that GDB updates the target description / arch successfuly
 	# after the exec.
-	gdb_test "continue" "Breakpoint 1, main.*" "continue across exec that changes architecture"
+	gdb_test "continue" "Breakpoint 2, main.*" "continue across exec that changes architecture"
 }
 
-foreach follow_exec_mode {"same" "new"} {
-    do_test $follow_exec_mode
+# Test both arch1=>arch2 and arch2=>arch1.
+foreach_with_prefix first_arch {1 2} {
+    if {![build_executables $first_arch]} {
+	continue
+    }
+
+    # Test handling the exec event with either the main thread or the
+    # second thread selected.  This tries to ensure that GDB doesn't read
+    # registers off of the execing thread before figuring out its
+    # architecture.
+    foreach_with_prefix selected_thread {1 2} {
+	foreach_with_prefix follow_exec_mode {"same" "new"} {
+	    do_test $first_arch $follow_exec_mode $selected_thread
+	}
+    }
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/multi-arch.exp ./gdb/testsuite/gdb.multi/multi-arch.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/multi-arch.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/multi-arch.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -96,3 +96,27 @@ if ![runto_main] then {
 
 gdb_test "info inferiors" \
     "Executable.*${exec1}.*${exec2}.*"
+
+# Now select inferior 2, and trigger an event in inferior 1.  This
+# tries to check that GDB doesn't incorrectly uses the architecture of
+# inferior 2 when parsing the expedited registers in a stop reply for
+# inferior 1 (when remote debugging).
+
+gdb_test_no_output "set schedule-multiple on"
+
+with_test_prefix "inf1 event with inf2 selected" {
+    gdb_test "inferior 2" "Switching to inferior 2.*thread 2\.1.*main.*${srcfile2}.*"
+    gdb_test "b hello_loop" "Breakpoint .* at .*${srcfile1}.*"
+    gdb_test "c" " hello_loop.*" "continue to hello_loop"
+}
+
+delete_breakpoints
+
+# Same, but the other way around: select inferior 1 and trigger an
+# event in inferior 2.
+
+with_test_prefix "inf2 event with inf1 selected" {
+    gdb_test "inferior 1" "Switching to inferior 1.*thread 1\.1.*hello_loop.*${srcfile1}.*"
+    gdb_test "b hangout_loop" "Breakpoint .* at .*${srcfile2}.*"
+    gdb_test "c" " hangout_loop.*" "continue to hangout_loop"
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/multi-attach.c ./gdb/testsuite/gdb.multi/multi-attach.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/multi-attach.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/multi-attach.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/multi-attach.exp ./gdb/testsuite/gdb.multi/multi-attach.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/multi-attach.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/multi-attach.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 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
@@ -23,7 +23,7 @@ if {![can_spawn_for_attach]} {
     return 0
 }
 
-if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug additional_flags=-lpthread}]} {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}]} {
     return -1
 }
 
@@ -51,9 +51,9 @@ gdb_test "attach $testpid2" \
     "attach to program 2"
 gdb_test "backtrace" ".*main.*" "backtrace 2"
 
-gdb_test "kill" "" "kill inferior 2" "Kill the program being debugged.*" "y"
+gdb_test "kill" "" "kill inferior 2" "Kill the program being debugged. .y or n. " "y"
 gdb_test "inferior 1" ".*Switching to inferior 1.*"
-gdb_test "kill" "" "kill inferior 1" "Kill the program being debugged.*" "y"
+gdb_test "kill" "" "kill inferior 1" "Kill the program being debugged. .y or n. " "y"
 
 kill_wait_spawned_process $test_spawn_id1
 kill_wait_spawned_process $test_spawn_id2
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/remove-inferiors.c ./gdb/testsuite/gdb.multi/remove-inferiors.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/remove-inferiors.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/remove-inferiors.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/remove-inferiors.exp ./gdb/testsuite/gdb.multi/remove-inferiors.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/remove-inferiors.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/remove-inferiors.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/tids.c ./gdb/testsuite/gdb.multi/tids.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/tids.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/tids.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/tids.exp ./gdb/testsuite/gdb.multi/tids.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/tids.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/tids.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/watchpoint-multi.c ./gdb/testsuite/gdb.multi/watchpoint-multi.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/watchpoint-multi.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/watchpoint-multi.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/watchpoint-multi-exit.c ./gdb/testsuite/gdb.multi/watchpoint-multi-exit.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/watchpoint-multi-exit.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/watchpoint-multi-exit.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp ./gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/watchpoint-multi.exp ./gdb/testsuite/gdb.multi/watchpoint-multi.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.multi/watchpoint-multi.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/watchpoint-multi.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.objc/basicclass.exp ./gdb/testsuite/gdb.objc/basicclass.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.objc/basicclass.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.objc/basicclass.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.objc/nondebug.exp ./gdb/testsuite/gdb.objc/nondebug.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.objc/nondebug.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.objc/nondebug.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.objc/objcdecode.exp ./gdb/testsuite/gdb.objc/objcdecode.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.objc/objcdecode.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.objc/objcdecode.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.objc/print.exp ./gdb/testsuite/gdb.objc/print.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.objc/print.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.objc/print.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/callfuncs.cl ./gdb/testsuite/gdb.opencl/callfuncs.cl
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/callfuncs.cl	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opencl/callfuncs.cl	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/callfuncs.exp ./gdb/testsuite/gdb.opencl/callfuncs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/callfuncs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opencl/callfuncs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/convs_casts.cl ./gdb/testsuite/gdb.opencl/convs_casts.cl
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/convs_casts.cl	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opencl/convs_casts.cl	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/convs_casts.exp ./gdb/testsuite/gdb.opencl/convs_casts.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/convs_casts.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opencl/convs_casts.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/datatypes.cl ./gdb/testsuite/gdb.opencl/datatypes.cl
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/datatypes.cl	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opencl/datatypes.cl	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/datatypes.exp ./gdb/testsuite/gdb.opencl/datatypes.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/datatypes.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opencl/datatypes.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/operators.cl ./gdb/testsuite/gdb.opencl/operators.cl
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/operators.cl	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opencl/operators.cl	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/operators.exp ./gdb/testsuite/gdb.opencl/operators.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/operators.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opencl/operators.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/vec_comps.cl ./gdb/testsuite/gdb.opencl/vec_comps.cl
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/vec_comps.cl	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opencl/vec_comps.cl	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/vec_comps.exp ./gdb/testsuite/gdb.opencl/vec_comps.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opencl/vec_comps.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opencl/vec_comps.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/clobbered-registers-O2.c ./gdb/testsuite/gdb.opt/clobbered-registers-O2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/clobbered-registers-O2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opt/clobbered-registers-O2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/clobbered-registers-O2.exp ./gdb/testsuite/gdb.opt/clobbered-registers-O2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/clobbered-registers-O2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opt/clobbered-registers-O2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-break.c ./gdb/testsuite/gdb.opt/inline-break.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-break.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opt/inline-break.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-break.exp ./gdb/testsuite/gdb.opt/inline-break.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-break.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opt/inline-break.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
@@ -24,6 +24,62 @@ if { [prepare_for_testing "failed to pre
     return -1
 }
 
+# Return a string that may be used to match the output of "info break NUM".
+#
+# Optional arguments:
+#
+# source    - the name of the source file
+# func      - the name of the function
+# disp      - the event disposition
+# enabled   - enable state
+# locs      - number of locations
+# line      - source line number (ignored without -source)
+
+proc break_info_1 {num args} {
+    global decimal
+
+    # Column delimiter
+    set c {[\t ]+}
+
+    # Row delimiter
+    set end {[\r\n \t]+}
+
+    # Table header
+    set header "[join [list Num Type Disp Enb Address What] ${c}]"
+
+    # Get/configure any optional parameters.
+    parse_args [list {source ""} {func ".*"} {disp "keep"} \
+		    {enabled "y"} {locs 1} [list line $decimal] \
+		    {type "breakpoint"}]
+
+    if {$source != ""} {
+	set source "$source:$line"
+    }
+
+    # Result starts with the standard header.
+    set result "$header${end}"
+
+    # Set up for multi-location breakpoint marker.
+    if {$locs == 1} {
+	set multi ".*"
+    } else {
+	set multi "<MULTIPLE>${end}"
+    }
+    append result "[join [list $num $type $disp $enabled $multi] $c]"
+
+    # Add location info.
+    for {set i 1} {$i <= $locs} {incr i} {
+	if {$locs > 1} {
+	    append result "[join [list $num.$i $enabled] $c].*"
+	}
+
+	#  Add function/source file info.
+	append result "in $func at .*$source${end}"
+    }
+
+    return $result
+}
+
 #
 # func1 is a static inlined function that is called once.
 # The result should be a single-location breakpoint.
@@ -111,3 +167,22 @@ gdb_test "print func1" \
 #
 gdb_test "print func2" \
     "\\\$.* = {int \\(int\\)} .* <func2>"
+
+# Test that "info break" reports the location of the breakpoints "inside"
+# the inlined functions
+
+set results(1) [break_info_1 1 -source $srcfile -func "func1"]
+set results(2) [break_info_1 2 -locs 2 -source $srcfile -func "func2"]
+set results(3) [break_info_1 3 -source $srcfile -func "func3b"]
+set results(4) [break_info_1 4 -locs 2 -source $srcfile -func "func4b"]
+set results(5) [break_info_1 5 -locs 2 -source $srcfile -func "func5b"]
+set results(6) [break_info_1 6 -locs 3 -source $srcfile -func "func6b"]
+set results(7) [break_info_1 7 -locs 2 -source $srcfile -func "func7b"]
+set results(8) [break_info_1 8 -locs 3 -source $srcfile -func "func8b"]
+
+for {set i 1} {$i <= [array size results]} {incr i} {
+    send_log "Expecting: $results($i)\n"
+    gdb_test "info break $i" $results($i)
+}
+
+unset -nocomplain results
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-bt.c ./gdb/testsuite/gdb.opt/inline-bt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-bt.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opt/inline-bt.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-bt.exp ./gdb/testsuite/gdb.opt/inline-bt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-bt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opt/inline-bt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-cmds.c ./gdb/testsuite/gdb.opt/inline-cmds.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-cmds.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opt/inline-cmds.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-cmds.exp ./gdb/testsuite/gdb.opt/inline-cmds.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-cmds.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opt/inline-cmds.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-locals.c ./gdb/testsuite/gdb.opt/inline-locals.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-locals.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opt/inline-locals.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-locals.exp ./gdb/testsuite/gdb.opt/inline-locals.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-locals.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opt/inline-locals.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 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
@@ -34,18 +34,19 @@ set no_frames [skip_inline_frame_tests]
 set line1 [gdb_get_line_number "set breakpoint 1 here" ${srcfile2}]
 gdb_breakpoint $srcfile2:$line1
 
-gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar (1)"
+gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar 1"
 
-gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar (2)"
+gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar 2"
 
 if { ! $no_frames } {
     gdb_test "backtrace" "#0  bar.*#1  .*func1.*#2  .*main.*" \
-	"backtrace from bar (2)"
-    gdb_test "up" "#1  .*func1 .* at .*" "up from bar (2)"
-    gdb_test "info frame" ".*inlined into frame.*" "func1 inlined (2)"
-    gdb_test "info locals" "array = {.*}" "info locals above bar (2)"
+	"backtrace from bar 2"
+    gdb_test "up" "#1  .*func1 .* at .*" "up from bar 2"
+    gdb_test "info frame" ".*inlined into frame.*" "func1 inlined 2"
+    setup_kfail "gdb/xyz" *-*-*
+    gdb_test "info locals" "array = {.*}" "info locals above bar 2"
 
-    set msg "info args above bar (2)"
+    set msg "info args above bar 2"
     gdb_test_multiple "info args" $msg {
 	-re "arg1 = $decimal\r\n$gdb_prompt $" {
 	    pass $msg
@@ -59,13 +60,13 @@ if { ! $no_frames } {
 	}
     }
 } else {
-    gdb_test "up" "#1  .*main .* at .*" "up from bar (2)"
-    gdb_test "info locals" ".*arg1 = 0.*" "info locals above bar (2)"
+    gdb_test "up" "#1  .*main .* at .*" "up from bar 2"
+    gdb_test "info locals" ".*arg1 = 0.*" "info locals above bar 2"
 }
 
 # Make sure that locals on the stack are found.  This is an array to
 # prevent it from living in a register.
-gdb_test "print array\[0\]" "\\\$$decimal = 0" "print local (2)"
+gdb_test "print array\[0\]" "\\\$$decimal = 0" "print local 2"
 
 if { ! $no_frames } {
     # Verify that we do not print out variables from the inlined
@@ -76,15 +77,16 @@ if { ! $no_frames } {
 
 # Repeat the tests from a depth of two inlined functions, and with a
 # more interesting value in the local array.
-gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar (3)"
+gdb_test "continue" ".*set breakpoint 1 here.*" "continue to bar 3"
 if { ! $no_frames } {
     gdb_test "backtrace" "#0  bar.*#1  .*func1.*#2  .*func2.*#3  .*main.*" \
-	"backtrace from bar (3)"
-    gdb_test "up" "#1  .*func1 .* at .*" "up from bar (3)"
-    gdb_test "info frame" ".*inlined into frame.*" "func1 inlined (3)"
-    gdb_test "info locals" "array = {.*}" "info locals above bar (3)"
+	"backtrace from bar 3"
+    gdb_test "up" "#1  .*func1 .* at .*" "up from bar 3"
+    gdb_test "info frame" ".*inlined into frame.*" "func1 inlined 3"
+    setup_kfail "gdb/xyz" *-*-*
+    gdb_test "info locals" "array = {.*}" "info locals above bar 3"
 
-    set msg "info args above bar (3)"
+    set msg "info args above bar 3"
     gdb_test_multiple "info args" $msg {
 	-re "arg1 = $decimal\r\n$gdb_prompt $" {
 	    pass $msg
@@ -98,9 +100,9 @@ if { ! $no_frames } {
 	}
     }
 } else {
-    gdb_test "up" "#1  .*main .* at .*" "up from bar (3)"
+    gdb_test "up" "#1  .*main .* at .*" "up from bar 3"
     gdb_test "info locals" ".*arg1 = 1.*" "info locals above bar (3a)"
     gdb_test "info locals" ".*arg2 = 184.*" "info locals above bar (3b)"
 }
 
-gdb_test "print array\[0\]" "\\\$$decimal = 184" "print local (3)"
+gdb_test "print array\[0\]" "\\\$$decimal = 184" "print local 3"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-markers.c ./gdb/testsuite/gdb.opt/inline-markers.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/inline-markers.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opt/inline-markers.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/solib-intra-step.exp ./gdb/testsuite/gdb.opt/solib-intra-step.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/solib-intra-step.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opt/solib-intra-step.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/solib-intra-step-lib.c ./gdb/testsuite/gdb.opt/solib-intra-step-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/solib-intra-step-lib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opt/solib-intra-step-lib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/solib-intra-step-main.c ./gdb/testsuite/gdb.opt/solib-intra-step-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.opt/solib-intra-step-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.opt/solib-intra-step-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/case-insensitive-symbols.exp ./gdb/testsuite/gdb.pascal/case-insensitive-symbols.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/case-insensitive-symbols.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.pascal/case-insensitive-symbols.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/case-insensitive-symbols.pas ./gdb/testsuite/gdb.pascal/case-insensitive-symbols.pas
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/case-insensitive-symbols.pas	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.pascal/case-insensitive-symbols.pas	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 {
- Copyright 2015-2017 Free Software Foundation, Inc.
+ Copyright 2015-2018 Free Software Foundation, Inc.
 
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/floats.exp ./gdb/testsuite/gdb.pascal/floats.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/floats.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.pascal/floats.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/floats.pas ./gdb/testsuite/gdb.pascal/floats.pas
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/floats.pas	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.pascal/floats.pas	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 {
- Copyright 2008-2017 Free Software Foundation, Inc.
+ Copyright 2008-2018 Free Software Foundation, Inc.
 
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/gdb11492.exp ./gdb/testsuite/gdb.pascal/gdb11492.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/gdb11492.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.pascal/gdb11492.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/gdb11492.pas ./gdb/testsuite/gdb.pascal/gdb11492.pas
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/gdb11492.pas	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.pascal/gdb11492.pas	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 {
- Copyright 2010-2017 Free Software Foundation, Inc.
+ Copyright 2010-2018 Free Software Foundation, Inc.
 
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/hello.exp ./gdb/testsuite/gdb.pascal/hello.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/hello.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.pascal/hello.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/integers.exp ./gdb/testsuite/gdb.pascal/integers.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/integers.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.pascal/integers.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/integers.pas ./gdb/testsuite/gdb.pascal/integers.pas
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/integers.pas	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.pascal/integers.pas	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 {
- Copyright 2008-2017 Free Software Foundation, Inc.
+ Copyright 2008-2018 Free Software Foundation, Inc.
 
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/print.exp ./gdb/testsuite/gdb.pascal/print.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/print.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.pascal/print.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/stub-method.exp ./gdb/testsuite/gdb.pascal/stub-method.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/stub-method.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.pascal/stub-method.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/stub-method.pas ./gdb/testsuite/gdb.pascal/stub-method.pas
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/stub-method.pas	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.pascal/stub-method.pas	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 {
- Copyright 2015-2017 Free Software Foundation, Inc.
+ Copyright 2015-2018 Free Software Foundation, Inc.
 
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/types.exp ./gdb/testsuite/gdb.pascal/types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.pascal/types.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.pascal/types.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1994-2017 Free Software Foundation, Inc.
+# Copyright 1994-2018 Free Software Foundation, Inc.
 # Copyright 2007 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/backtrace.c ./gdb/testsuite/gdb.perf/backtrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/backtrace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/backtrace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/backtrace.exp ./gdb/testsuite/gdb.perf/backtrace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/backtrace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/backtrace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/backtrace.py ./gdb/testsuite/gdb.perf/backtrace.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/backtrace.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/backtrace.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/disassemble.exp ./gdb/testsuite/gdb.perf/disassemble.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/disassemble.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/disassemble.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/disassemble.py ./gdb/testsuite/gdb.perf/disassemble.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/disassemble.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/disassemble.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gm-hello.cc ./gdb/testsuite/gdb.perf/gm-hello.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gm-hello.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gm-hello.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1.cc ./gdb/testsuite/gdb.perf/gmonster1.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster1.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1.exp ./gdb/testsuite/gdb.perf/gmonster1.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster1.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1-null-lookup.exp ./gdb/testsuite/gdb.perf/gmonster1-null-lookup.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1-null-lookup.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster1-null-lookup.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1-pervasive-typedef.exp ./gdb/testsuite/gdb.perf/gmonster1-pervasive-typedef.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1-pervasive-typedef.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster1-pervasive-typedef.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1-print-cerr.exp ./gdb/testsuite/gdb.perf/gmonster1-print-cerr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1-print-cerr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster1-print-cerr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1-ptype-string.exp ./gdb/testsuite/gdb.perf/gmonster1-ptype-string.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1-ptype-string.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster1-ptype-string.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1-runto-main.exp ./gdb/testsuite/gdb.perf/gmonster1-runto-main.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1-runto-main.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster1-runto-main.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1-select-file.exp ./gdb/testsuite/gdb.perf/gmonster1-select-file.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster1-select-file.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster1-select-file.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2.cc ./gdb/testsuite/gdb.perf/gmonster2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2.exp ./gdb/testsuite/gdb.perf/gmonster2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2-null-lookup.exp ./gdb/testsuite/gdb.perf/gmonster2-null-lookup.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2-null-lookup.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster2-null-lookup.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2-pervasive-typedef.exp ./gdb/testsuite/gdb.perf/gmonster2-pervasive-typedef.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2-pervasive-typedef.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster2-pervasive-typedef.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2-print-cerr.exp ./gdb/testsuite/gdb.perf/gmonster2-print-cerr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2-print-cerr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster2-print-cerr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2-ptype-string.exp ./gdb/testsuite/gdb.perf/gmonster2-ptype-string.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2-ptype-string.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster2-ptype-string.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2-runto-main.exp ./gdb/testsuite/gdb.perf/gmonster2-runto-main.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2-runto-main.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster2-runto-main.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2-select-file.exp ./gdb/testsuite/gdb.perf/gmonster2-select-file.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster2-select-file.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster2-select-file.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster-null-lookup.py ./gdb/testsuite/gdb.perf/gmonster-null-lookup.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster-null-lookup.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster-null-lookup.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster-pervasive-typedef.py ./gdb/testsuite/gdb.perf/gmonster-pervasive-typedef.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster-pervasive-typedef.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster-pervasive-typedef.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster-print-cerr.py ./gdb/testsuite/gdb.perf/gmonster-print-cerr.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster-print-cerr.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster-print-cerr.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster-ptype-string.py ./gdb/testsuite/gdb.perf/gmonster-ptype-string.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster-ptype-string.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster-ptype-string.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster-runto-main.py ./gdb/testsuite/gdb.perf/gmonster-runto-main.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster-runto-main.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster-runto-main.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster-select-file.py ./gdb/testsuite/gdb.perf/gmonster-select-file.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gmonster-select-file.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gmonster-select-file.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gm-pervasive-typedef.cc ./gdb/testsuite/gdb.perf/gm-pervasive-typedef.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gm-pervasive-typedef.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gm-pervasive-typedef.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gm-pervasive-typedef.h ./gdb/testsuite/gdb.perf/gm-pervasive-typedef.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gm-pervasive-typedef.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gm-pervasive-typedef.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gm-std.cc ./gdb/testsuite/gdb.perf/gm-std.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gm-std.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gm-std.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gm-std.h ./gdb/testsuite/gdb.perf/gm-std.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gm-std.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gm-std.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gm-use-cerr.cc ./gdb/testsuite/gdb.perf/gm-use-cerr.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gm-use-cerr.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gm-use-cerr.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gm-utils.h ./gdb/testsuite/gdb.perf/gm-utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/gm-utils.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/gm-utils.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/lib/perftest/__init__.py ./gdb/testsuite/gdb.perf/lib/perftest/__init__.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/lib/perftest/__init__.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/lib/perftest/__init__.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/lib/perftest/measure.py ./gdb/testsuite/gdb.perf/lib/perftest/measure.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/lib/perftest/measure.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/lib/perftest/measure.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/lib/perftest/perftest.py ./gdb/testsuite/gdb.perf/lib/perftest/perftest.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/lib/perftest/perftest.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/lib/perftest/perftest.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/lib/perftest/reporter.py ./gdb/testsuite/gdb.perf/lib/perftest/reporter.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/lib/perftest/reporter.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/lib/perftest/reporter.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/lib/perftest/testresult.py ./gdb/testsuite/gdb.perf/lib/perftest/testresult.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/lib/perftest/testresult.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/lib/perftest/testresult.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/lib/perftest/utils.py ./gdb/testsuite/gdb.perf/lib/perftest/utils.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/lib/perftest/utils.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/lib/perftest/utils.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/single-step.c ./gdb/testsuite/gdb.perf/single-step.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/single-step.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/single-step.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/single-step.exp ./gdb/testsuite/gdb.perf/single-step.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/single-step.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/single-step.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/single-step.py ./gdb/testsuite/gdb.perf/single-step.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/single-step.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/single-step.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/skip-command.cc ./gdb/testsuite/gdb.perf/skip-command.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/skip-command.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/skip-command.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/skip-command.exp ./gdb/testsuite/gdb.perf/skip-command.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/skip-command.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/skip-command.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/skip-command.py ./gdb/testsuite/gdb.perf/skip-command.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/skip-command.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/skip-command.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/skip-prologue.c ./gdb/testsuite/gdb.perf/skip-prologue.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/skip-prologue.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/skip-prologue.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/skip-prologue.exp ./gdb/testsuite/gdb.perf/skip-prologue.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/skip-prologue.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/skip-prologue.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/skip-prologue.py ./gdb/testsuite/gdb.perf/skip-prologue.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/skip-prologue.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/skip-prologue.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/solib.c ./gdb/testsuite/gdb.perf/solib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/solib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/solib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/solib.exp ./gdb/testsuite/gdb.perf/solib.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/solib.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/solib.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/solib.py ./gdb/testsuite/gdb.perf/solib.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.perf/solib.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.perf/solib.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S ./gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/lib-types.cc ./gdb/testsuite/gdb.python/lib-types.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/lib-types.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/lib-types.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/lib-types.exp ./gdb/testsuite/gdb.python/lib-types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/lib-types.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/lib-types.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-arch.c ./gdb/testsuite/gdb.python/py-arch.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-arch.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-arch.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-arch.exp ./gdb/testsuite/gdb.python/py-arch.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-arch.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-arch.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-as-string.c ./gdb/testsuite/gdb.python/py-as-string.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-as-string.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-as-string.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-as-string.exp ./gdb/testsuite/gdb.python/py-as-string.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-as-string.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-as-string.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-bad-printers.c ./gdb/testsuite/gdb.python/py-bad-printers.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-bad-printers.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-bad-printers.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-bad-printers.exp ./gdb/testsuite/gdb.python/py-bad-printers.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-bad-printers.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-bad-printers.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-bad-printers.py ./gdb/testsuite/gdb.python/py-bad-printers.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-bad-printers.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-bad-printers.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-block.c ./gdb/testsuite/gdb.python/py-block.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-block.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-block.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-block.exp ./gdb/testsuite/gdb.python/py-block.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-block.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-block.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-breakpoint.c ./gdb/testsuite/gdb.python/py-breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-breakpoint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-breakpoint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 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
@@ -17,6 +17,14 @@
 
 int result = 0;
 
+namespace foo_ns
+{
+  int multiply (int i)
+  {
+    return i * i;
+  }
+}
+
 int multiply (int i)
 {
   return i * i;
@@ -24,7 +32,7 @@ int multiply (int i)
 
 int add (int i)
 {
-  return i + i; 
+  return i + i;  /* Break at function add.  */
 }
 
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-breakpoint-create-fail.c ./gdb/testsuite/gdb.python/py-breakpoint-create-fail.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-breakpoint-create-fail.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-breakpoint-create-fail.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp ./gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-breakpoint-create-fail.py ./gdb/testsuite/gdb.python/py-breakpoint-create-fail.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-breakpoint-create-fail.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-breakpoint-create-fail.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-breakpoint.exp ./gdb/testsuite/gdb.python/py-breakpoint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-breakpoint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-breakpoint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 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
@@ -20,457 +20,443 @@ load_lib gdb-python.exp
 
 standard_testfile
 
-if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
+set options {debug c++}
+
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} ${options}] } {
     return -1
 }
 
 # Skip all tests if Python scripting is not enabled.
 if { [skip_python_tests] } { continue }
 
-proc test_bkpt_basic { } {
+proc_with_prefix test_bkpt_basic { } {
     global srcfile testfile hex decimal
 
-    with_test_prefix "test_bkpt_basic" {
-	# Start with a fresh gdb.
-	clean_restart ${testfile}
-
-	# We should start with no breakpoints.
-	gdb_test "python print (gdb.breakpoints())" "\\(\\)"
-
-	if ![runto_main] then {
-	    fail "cannot run to main."
-	    return 0
-	}
+    # Start with a fresh gdb.
+    clean_restart ${testfile}
+
+    # We should start with no breakpoints.
+    gdb_test "python print (gdb.breakpoints())" "\\(\\)"
 
-	# Now there should be one breakpoint: main.
-	gdb_py_test_silent_cmd "python blist = gdb.breakpoints()" \
-	    "Get Breakpoint List" 0
-	gdb_test "python print (blist\[0\])" \
-	    "<gdb.Breakpoint object at $hex>" "Check obj exists @main"
-	gdb_test "python print (blist\[0\].location)" \
-	    "main." "Check breakpoint location @main"
-	gdb_test "python print (blist\[0\].pending)" "False" \
-	    "Check pending status of main breakpoint"
-
-	set mult_line [gdb_get_line_number "Break at multiply."]
-	gdb_breakpoint ${mult_line}
-	gdb_continue_to_breakpoint "Break at multiply" \
-	    ".*Break at multiply.*"
-
-	# Check that the Python breakpoint code noted the addition of a
-	# breakpoint "behind the scenes". 
-	gdb_py_test_silent_cmd "python blist = gdb.breakpoints()" \
-	    "Get Breakpoint List" 0
-	gdb_test "python print (len(blist))" \
-	    "2" "Check for two breakpoints"
-	gdb_test "python print (blist\[0\])" \
-	    "<gdb.Breakpoint object at $hex>" "Check obj exists @main 2"
-	gdb_test "python print (blist\[0\].location)" \
-	    "main." "Check breakpoint location @main 2"
-	gdb_test "python print (blist\[1\])" \
-	    "<gdb.Breakpoint object at $hex>" "Check obj exists @mult_line"
-
-	gdb_test "python print (blist\[1\].location)" \
-	    "py-breakpoint\.c:${mult_line}*" \
-	    "check breakpoint location @mult_line"
-
-	# Check hit and ignore counts. 
-	gdb_test "python print (blist\[1\].hit_count)" \
-	    "1" "Check breakpoint hit count @1"
-	gdb_py_test_silent_cmd "python blist\[1\].ignore_count = 4" \
-	    "Set breakpoint hit count" 0
-	gdb_continue_to_breakpoint "Break at multiply @6" \
-	    ".*Break at multiply.*"
-	gdb_test "python print (blist\[1\].hit_count)" \
-	    "6" "Check breakpoint hit count @6"
-	gdb_test "print result" \
-	    " = 545" "Check expected variable result after 6 iterations"
-
-	# Test breakpoint is enabled and disabled correctly..
-	gdb_breakpoint [gdb_get_line_number "Break at add."]
-	gdb_continue_to_breakpoint "Break at add 1" ".*Break at add.*"
-	gdb_test "python print (blist\[1\].enabled)" \
-	    "True" "Check breakpoint enabled."
-	gdb_py_test_silent_cmd  "python blist\[1\].enabled = False" \
-	    "Set breakpoint disabled." 0
-	gdb_continue_to_breakpoint "Break at add 2" ".*Break at add.*"
-	gdb_py_test_silent_cmd  "python blist\[1\].enabled = True" \
-	    "Set breakpoint enabled." 0
-	gdb_continue_to_breakpoint "Break at multiply after re-enable" \
-	    ".*Break at multiply.*"
-
-	# Test other getters and setters.
-	gdb_py_test_silent_cmd "python blist = gdb.breakpoints()" \
-	    "Get Breakpoint List" 0
-	gdb_test "python print (blist\[1\].thread)" \
-	    "None" "Check breakpoint thread"
-	gdb_test "python print (blist\[1\].type == gdb.BP_BREAKPOINT)" \
-	    "True" "Check breakpoint type"
-	gdb_test "python print (blist\[0\].number)" \
-	    "1" "Check breakpoint number 0"
-	gdb_test "python print (blist\[1\].number)" \
-	    "2" "Check breakpoint number 1"
-	gdb_test "python print (blist\[2\].number)" \
-	    "3" "Check breakpoint number 2"
+    if ![runto_main] then {
+	fail "cannot run to main."
+	return 0
     }
+
+    # Now there should be one breakpoint: main.
+    gdb_py_test_silent_cmd "python blist = gdb.breakpoints()" \
+	"Get Breakpoint List" 0
+    gdb_test "python print (blist\[0\])" \
+	"<gdb.Breakpoint object at $hex>" "Check obj exists @main"
+    gdb_test "python print (blist\[0\].location)" \
+	"main." "Check breakpoint location @main"
+    gdb_test "python print (blist\[0\].pending)" "False" \
+	"Check pending status of main breakpoint"
+
+    set mult_line [gdb_get_line_number "Break at multiply."]
+    gdb_breakpoint ${mult_line}
+    gdb_continue_to_breakpoint "Break at multiply" \
+	".*Break at multiply.*"
+
+    # Check that the Python breakpoint code noted the addition of a
+    # breakpoint "behind the scenes".
+    gdb_py_test_silent_cmd "python blist = gdb.breakpoints()" \
+	"Get Breakpoint List" 0
+    gdb_test "python print (len(blist))" \
+	"2" "Check for two breakpoints"
+    gdb_test "python print (blist\[0\])" \
+	"<gdb.Breakpoint object at $hex>" "Check obj exists @main 2"
+    gdb_test "python print (blist\[0\].location)" \
+	"main." "Check breakpoint location @main 2"
+    gdb_test "python print (blist\[1\])" \
+	"<gdb.Breakpoint object at $hex>" "Check obj exists @mult_line"
+
+    gdb_test "python print (blist\[1\].location)" \
+	"py-breakpoint\.c:${mult_line}*" \
+	"check breakpoint location @mult_line"
+
+    # Check hit and ignore counts.
+    gdb_test "python print (blist\[1\].hit_count)" \
+	"1" "Check breakpoint hit count @1"
+    gdb_py_test_silent_cmd "python blist\[1\].ignore_count = 4" \
+	"Set breakpoint hit count" 0
+    gdb_continue_to_breakpoint "Break at multiply @6" \
+	".*Break at multiply.*"
+    gdb_test "python print (blist\[1\].hit_count)" \
+	"6" "Check breakpoint hit count @6"
+    gdb_test "print result" \
+	" = 545" "Check expected variable result after 6 iterations"
+
+    # Test breakpoint is enabled and disabled correctly..
+    gdb_breakpoint [gdb_get_line_number "Break at add."]
+    gdb_continue_to_breakpoint "Break at add 1" ".*Break at add.*"
+    gdb_test "python print (blist\[1\].enabled)" \
+	"True" "Check breakpoint enabled."
+    gdb_py_test_silent_cmd  "python blist\[1\].enabled = False" \
+	"Set breakpoint disabled." 0
+    gdb_continue_to_breakpoint "Break at add 2" ".*Break at add.*"
+    gdb_py_test_silent_cmd  "python blist\[1\].enabled = True" \
+	"Set breakpoint enabled." 0
+    gdb_continue_to_breakpoint "Break at multiply after re-enable" \
+	".*Break at multiply.*"
+
+    # Test other getters and setters.
+    gdb_py_test_silent_cmd "python blist = gdb.breakpoints()" \
+	"Get Breakpoint List" 0
+    gdb_test "python print (blist\[1\].thread)" \
+	"None" "Check breakpoint thread"
+    gdb_test "python print (blist\[1\].type == gdb.BP_BREAKPOINT)" \
+	"True" "Check breakpoint type"
+    gdb_test "python print (blist\[0\].number)" \
+	"1" "Check breakpoint number 0"
+    gdb_test "python print (blist\[1\].number)" \
+	"2" "Check breakpoint number 1"
+    gdb_test "python print (blist\[2\].number)" \
+	"3" "Check breakpoint number 2"
 }
 
-proc test_bkpt_deletion { } {
+proc_with_prefix test_bkpt_deletion { } {
     global srcfile testfile hex decimal
 
-    with_test_prefix test_bkpt_deletion {
-	# Start with a fresh gdb.
-	clean_restart ${testfile}
-
-	if ![runto_main] then {
-	    fail "cannot run to main."
-	    return 0
-	}
+    # Start with a fresh gdb.
+    clean_restart ${testfile}
 
-	# Test breakpoints are deleted correctly.
-	set deltst_location [gdb_get_line_number "Break at multiply."]
-	set end_location [gdb_get_line_number "Break at end."]
-	gdb_py_test_silent_cmd  "python dp1 = gdb.Breakpoint (\"$deltst_location\")" \
-	    "Set breakpoint" 0
-	gdb_breakpoint [gdb_get_line_number "Break at end."]
-	gdb_py_test_silent_cmd "python del_list = gdb.breakpoints()" \
-	    "Get Breakpoint List" 0
-	gdb_test "python print (len(del_list))" \
-	    "3" "Number of breakpoints before delete"
-	gdb_continue_to_breakpoint "Break at multiply." \
-	    ".*$srcfile:$deltst_location.*"
-	gdb_py_test_silent_cmd  "python dp1.delete()" \
-	    "Delete Breakpoint" 0
-	gdb_test "python print (dp1.number)" \
-	    "RuntimeError: Breakpoint 2 is invalid.*" \
-	    "Check breakpoint invalidated"
-	gdb_py_test_silent_cmd "python del_list = gdb.breakpoints()" \
-	    "Get Breakpoint List" 0
-	gdb_test "python print (len(del_list))" \
-	    "2" "Number of breakpoints after delete"
-	gdb_continue_to_breakpoint "Break at end." \
-	    ".*$srcfile:$end_location.*"
+    if ![runto_main] then {
+	fail "cannot run to main."
+	return 0
     }
+
+    # Test breakpoints are deleted correctly.
+    set deltst_location [gdb_get_line_number "Break at multiply."]
+    set end_location [gdb_get_line_number "Break at end."]
+    gdb_py_test_silent_cmd  "python dp1 = gdb.Breakpoint (\"$deltst_location\")" \
+	"Set breakpoint" 0
+    gdb_breakpoint [gdb_get_line_number "Break at end."]
+    gdb_py_test_silent_cmd "python del_list = gdb.breakpoints()" \
+	"Get Breakpoint List" 0
+    gdb_test "python print (len(del_list))" \
+	"3" "Number of breakpoints before delete"
+    gdb_continue_to_breakpoint "Break at multiply." \
+	".*$srcfile:$deltst_location.*"
+    gdb_py_test_silent_cmd  "python dp1.delete()" \
+	"Delete Breakpoint" 0
+    gdb_test "python print (dp1.number)" \
+	"RuntimeError: Breakpoint 2 is invalid.*" \
+	"Check breakpoint invalidated"
+    gdb_py_test_silent_cmd "python del_list = gdb.breakpoints()" \
+	"Get Breakpoint List" 0
+    gdb_test "python print (len(del_list))" \
+	"2" "Number of breakpoints after delete"
+    gdb_continue_to_breakpoint "Break at end." \
+	".*$srcfile:$end_location.*"
 }
 
-proc test_bkpt_cond_and_cmds { } {
+proc_with_prefix test_bkpt_cond_and_cmds { } {
     global srcfile testfile hex decimal
 
-    with_test_prefix test_bkpt_cond_and_cmds {
-	# Start with a fresh gdb.
-	clean_restart ${testfile}
-
-	if ![runto_main] then {
-	    fail "cannot run to main."
-	    return 0
-	}
+    # Start with a fresh gdb.
+    clean_restart ${testfile}
 
-	# Test conditional setting.
-	set bp_location1 [gdb_get_line_number "Break at multiply."]
-	gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (\"$bp_location1\")" \
-	    "Set breakpoint" 0
-	gdb_continue_to_breakpoint "Break at multiply" \
-	    ".*Break at multiply.*"
-	gdb_py_test_silent_cmd "python bp1.condition = \"i == 5\"" \
-	    "Set breakpoint" 0
-	gdb_test "python print (bp1.condition)" "i == 5" \
-	    "Test conditional has been set"
-	gdb_continue_to_breakpoint "Break at multiply @5" \
-	    ".*Break at multiply.*"
-	gdb_test "print i" \
-	    "5" "Test conditional breakpoint stopped after five iterations"
-	gdb_py_test_silent_cmd "python bp1.condition = None" \
-	    "Clear condition" 0
-	gdb_test "python print (bp1.condition)" \
-	    "None" "Test conditional read"
-	gdb_continue_to_breakpoint "Break at multiply @6" \
-	    ".*Break at multiply.*"
-	gdb_test "print i" \
-	    "6" "Test breakpoint stopped after six iterations"
-
-	# Test commands.
-	gdb_breakpoint [gdb_get_line_number "Break at add."]
-	set test {commands $bpnum}
-	gdb_test_multiple $test $test { -re "\r\n>$" { pass $test } }
-	set test {print "Command for breakpoint has been executed."}
-	gdb_test_multiple $test $test { -re "\r\n>$" { pass $test } }
-	set test {print result}
-	gdb_test_multiple $test $test { -re "\r\n>$" { pass $test } }
-	gdb_test "end"
-
-	gdb_py_test_silent_cmd "python blist = gdb.breakpoints()" \
-	    "Get Breakpoint List" 0
-	gdb_test "python print (blist\[len(blist)-1\].commands)" \
-	    "print \"Command for breakpoint has been executed.\".*print result"
+    if ![runto_main] then {
+	fail "cannot run to main."
+	return 0
     }
+
+    # Test conditional setting.
+    set bp_location1 [gdb_get_line_number "Break at multiply."]
+    gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (\"$bp_location1\")" \
+	"Set breakpoint" 0
+    gdb_continue_to_breakpoint "Break at multiply" \
+	".*Break at multiply.*"
+    gdb_py_test_silent_cmd "python bp1.condition = \"i == 5\"" \
+	"Set breakpoint" 0
+    gdb_test "python print (bp1.condition)" "i == 5" \
+	"Test conditional has been set"
+    gdb_continue_to_breakpoint "Break at multiply @5" \
+	".*Break at multiply.*"
+    gdb_test "print i" \
+	"5" "Test conditional breakpoint stopped after five iterations"
+    gdb_py_test_silent_cmd "python bp1.condition = None" \
+	"Clear condition" 0
+    gdb_test "python print (bp1.condition)" \
+	"None" "Test conditional read"
+    gdb_continue_to_breakpoint "Break at multiply @6" \
+	".*Break at multiply.*"
+    gdb_test "print i" \
+	"6" "Test breakpoint stopped after six iterations"
+
+    # Test commands.
+    gdb_breakpoint [gdb_get_line_number "Break at add."]
+    set test {commands $bpnum}
+    gdb_test_multiple $test $test { -re "\r\n>$" { pass $test } }
+    set test {print "Command for breakpoint has been executed."}
+    gdb_test_multiple $test $test { -re "\r\n>$" { pass $test } }
+    set test {print result}
+    gdb_test_multiple $test $test { -re "\r\n>$" { pass $test } }
+    gdb_test "end"
+
+    gdb_py_test_silent_cmd "python blist = gdb.breakpoints()" \
+	"Get Breakpoint List" 0
+    gdb_test "python print (blist\[len(blist)-1\].commands)" \
+	"print \"Command for breakpoint has been executed.\".*print result"
 }
 
-proc test_bkpt_invisible { } {
+proc_with_prefix test_bkpt_invisible { } {
     global srcfile testfile hex decimal
 
-    with_test_prefix test_bkpt_invisible {
-	# Start with a fresh gdb.
-	clean_restart ${testfile}
-
-	if ![runto_main] then {
-	    fail "cannot run to main."
-	    return 0
-	}
+    # Start with a fresh gdb.
+    clean_restart ${testfile}
 
-	delete_breakpoints
-	set ibp_location [gdb_get_line_number "Break at multiply."]
-	gdb_py_test_silent_cmd  "python ibp = gdb.Breakpoint(\"$ibp_location\", internal=False)" \
-	    "Set invisible breakpoint" 0
-	gdb_py_test_silent_cmd "python ilist = gdb.breakpoints()" \
-	    "Get Breakpoint List" 0
-	gdb_test "python print (ilist\[0\])" \
-	    "<gdb.Breakpoint object at $hex>" "Check invisible bp obj exists 1"
-	gdb_test "python print (ilist\[0\].location)" \
-	    "py-breakpoint\.c:$ibp_location*" "Check breakpoint location 1"
-	gdb_test "python print (ilist\[0\].visible)" \
-	    "True" "Check breakpoint visibility 1"
-	gdb_test "info breakpoints" "py-breakpoint\.c:$ibp_location.*" \
-	    "Check info breakpoints shows visible breakpoints"
-	delete_breakpoints
-	gdb_py_test_silent_cmd  "python ibp = gdb.Breakpoint(\"$ibp_location\", internal=True)" \
-	    "Set invisible breakpoint" 0
-	gdb_py_test_silent_cmd "python ilist = gdb.breakpoints()" \
-	    "Get Breakpoint List" 0
-	gdb_test "python print (ilist\[0\])" \
-	    "<gdb.Breakpoint object at $hex>" "Check invisible bp obj exists 2"
-	gdb_test "python print (ilist\[0\].location)" \
-	    "py-breakpoint\.c:$ibp_location*" "Check breakpoint location 2"
-	gdb_test "python print (ilist\[0\].visible)" \
-	    "False" "Check breakpoint visibility 2"
-	gdb_test "info breakpoints" "No breakpoints or watchpoints.*" \
-	    "Check info breakpoints does not show invisible breakpoints"
-	gdb_test "maint info breakpoints" \
-	    "py-breakpoint\.c:$ibp_location.*" \
-	    "Check maint info breakpoints shows invisible breakpoints"
+    if ![runto_main] then {
+	fail "cannot run to main."
+	return 0
     }
+
+    delete_breakpoints
+    set ibp_location [gdb_get_line_number "Break at multiply."]
+    gdb_py_test_silent_cmd  "python ibp = gdb.Breakpoint(\"$ibp_location\", internal=False)" \
+	"Set invisible breakpoint" 0
+    gdb_py_test_silent_cmd "python ilist = gdb.breakpoints()" \
+	"Get Breakpoint List" 0
+    gdb_test "python print (ilist\[0\])" \
+	"<gdb.Breakpoint object at $hex>" "Check invisible bp obj exists 1"
+    gdb_test "python print (ilist\[0\].location)" \
+	"py-breakpoint\.c:$ibp_location*" "Check breakpoint location 1"
+    gdb_test "python print (ilist\[0\].visible)" \
+	"True" "Check breakpoint visibility 1"
+    gdb_test "info breakpoints" "py-breakpoint\.c:$ibp_location.*" \
+	"Check info breakpoints shows visible breakpoints"
+    delete_breakpoints
+    gdb_py_test_silent_cmd  "python ibp = gdb.Breakpoint(\"$ibp_location\", internal=True)" \
+	"Set invisible breakpoint" 0
+    gdb_py_test_silent_cmd "python ilist = gdb.breakpoints()" \
+	"Get Breakpoint List" 0
+    gdb_test "python print (ilist\[0\])" \
+	"<gdb.Breakpoint object at $hex>" "Check invisible bp obj exists 2"
+    gdb_test "python print (ilist\[0\].location)" \
+	"py-breakpoint\.c:$ibp_location*" "Check breakpoint location 2"
+    gdb_test "python print (ilist\[0\].visible)" \
+	"False" "Check breakpoint visibility 2"
+    gdb_test "info breakpoints" "No breakpoints or watchpoints.*" \
+	"Check info breakpoints does not show invisible breakpoints"
+    gdb_test "maint info breakpoints" \
+	"py-breakpoint\.c:$ibp_location.*" \
+	"Check maint info breakpoints shows invisible breakpoints"
 }
 
-proc test_watchpoints { } {
+proc_with_prefix test_watchpoints { } {
     global srcfile testfile hex decimal
 
-    with_test_prefix test_watchpoints {
-	# Start with a fresh gdb.
-	clean_restart ${testfile}
-
-	# Disable hardware watchpoints if necessary.
-	if [target_info exists gdb,no_hardware_watchpoints] {
-	    gdb_test_no_output "set can-use-hw-watchpoints 0" ""
-	}
+    # Start with a fresh gdb.
+    clean_restart ${testfile}
 
-	if ![runto_main] then {
-	    fail "cannot run to main."
-	    return 0
-	}
+    # Disable hardware watchpoints if necessary.
+    if [target_info exists gdb,no_hardware_watchpoints] {
+	gdb_test_no_output "set can-use-hw-watchpoints 0" ""
+    }
 
-	gdb_py_test_silent_cmd  "python wp1 = gdb.Breakpoint (\"result\", type=gdb.BP_WATCHPOINT, wp_class=gdb.WP_WRITE )" \
-	    "Set watchpoint" 0
-	gdb_test "python print (wp1.pending)" "False"
-	gdb_test "continue" \
-	    ".*\[Ww\]atchpoint.*result.*Old value = 0.*New value = 25.*main.*" \
-	    "Test watchpoint write"
+    if ![runto_main] then {
+	fail "cannot run to main."
+	return 0
     }
+
+    gdb_py_test_silent_cmd  "python wp1 = gdb.Breakpoint (\"result\", type=gdb.BP_WATCHPOINT, wp_class=gdb.WP_WRITE )" \
+	"Set watchpoint" 0
+    gdb_test "python print (wp1.pending)" "False"
+    gdb_test "continue" \
+	".*\[Ww\]atchpoint.*result.*Old value = 0.*New value = 25.*main.*" \
+	"Test watchpoint write"
 }
 
-proc test_bkpt_internal { } {
+proc_with_prefix test_bkpt_internal { } {
     global srcfile testfile hex decimal
 
-    with_test_prefix test_bkpt_internal {
-	# Start with a fresh gdb.
-	clean_restart ${testfile}
-
-	# Disable hardware watchpoints if necessary.
-	if [target_info exists gdb,no_hardware_watchpoints] {
-	    gdb_test_no_output "set can-use-hw-watchpoints 0" ""
-	}
-	if ![runto_main] then {
-	    fail "cannot run to main."
-	    return 0
-	}
-	delete_breakpoints
-	gdb_py_test_silent_cmd  "python wp1 = gdb.Breakpoint (\"result\", type=gdb.BP_WATCHPOINT, wp_class=gdb.WP_WRITE, internal=True )" \
-	    "Set watchpoint" 0
-	gdb_test "info breakpoints" \
-	    "No breakpoints or watchpoints.*" \
-	    "Check info breakpoints does not show invisible breakpoints"
-	gdb_test "maint info breakpoints" \
-	    ".*watchpoint.*result.*" \
-	    "Check maint info breakpoints shows invisible breakpoints"
-	gdb_test "continue" \
-	    ".*\[Ww\]atchpoint.*result.*Old value = 0.*New value = 25.*" \
-	    "Test watchpoint write"
+    # Start with a fresh gdb.
+    clean_restart ${testfile}
+
+    # Disable hardware watchpoints if necessary.
+    if [target_info exists gdb,no_hardware_watchpoints] {
+	gdb_test_no_output "set can-use-hw-watchpoints 0" ""
+    }
+    if ![runto_main] then {
+	fail "cannot run to main."
+	return 0
     }
+    delete_breakpoints
+    gdb_py_test_silent_cmd  "python wp1 = gdb.Breakpoint (\"result\", type=gdb.BP_WATCHPOINT, wp_class=gdb.WP_WRITE, internal=True )" \
+	"Set watchpoint" 0
+    gdb_test "info breakpoints" \
+	"No breakpoints or watchpoints.*" \
+	"Check info breakpoints does not show invisible breakpoints"
+    gdb_test "maint info breakpoints" \
+	".*watchpoint.*result.*" \
+	"Check maint info breakpoints shows invisible breakpoints"
+    gdb_test "continue" \
+	".*\[Ww\]atchpoint.*result.*Old value = 0.*New value = 25.*" \
+	"Test watchpoint write"
 }
 
-proc test_bkpt_eval_funcs { } {
+proc_with_prefix test_bkpt_eval_funcs { } {
     global srcfile testfile hex decimal
 
-    with_test_prefix test_bkpt_eval_funcs {
-	# Start with a fresh gdb.
-	clean_restart ${testfile}
-
-	# Disable hardware watchpoints if necessary.
-	if [target_info exists gdb,no_hardware_watchpoints] {
-	    gdb_test_no_output "set can-use-hw-watchpoints 0" ""
-	}
-	if ![runto_main] then {
-	    fail "cannot run to main."
-	    return 0
-	}
-	delete_breakpoints
+    # Start with a fresh gdb.
+    clean_restart ${testfile}
 
-	gdb_py_test_multiple "Sub-class a breakpoint" \
-	    "python" "" \
-	    "class bp_eval (gdb.Breakpoint):" "" \
-	    "   inf_i = 0" "" \
-	    "   count = 0" "" \
-	    "   def stop (self):" "" \
-	    "      self.count = self.count + 1" "" \
-	    "      self.inf_i = gdb.parse_and_eval(\"i\")" "" \
-	    "      if self.inf_i == 3:" "" \
-	    "        return True" "" \
-	    "      return False" "" \
-	    "end" ""
-
-	gdb_py_test_multiple "Sub-class a second breakpoint" \
-	    "python" "" \
-	    "class bp_also_eval (gdb.Breakpoint):" "" \
-	    "   count = 0" "" \
-	    "   def stop (self):" "" \
-	    "      self.count = self.count + 1" "" \
-	    "      if self.count == 9:" "" \
-	    "        return True" "" \
-	    "      return False" "" \
-	    "end" ""
-
-	gdb_py_test_multiple "Sub-class a third breakpoint" \
-	    "python" "" \
-	    "class basic (gdb.Breakpoint):" "" \
-	    "   count = 0" "" \
-	    "end" ""
-
-	set bp_location2 [gdb_get_line_number "Break at multiply."]
-	set end_location [gdb_get_line_number "Break at end."]
-	gdb_py_test_silent_cmd "python eval_bp1 = bp_eval(\"$bp_location2\")" \
-	    "Set breakpoint" 0
-	gdb_py_test_silent_cmd "python also_eval_bp1 = bp_also_eval(\"$bp_location2\")" \
-	    "Set breakpoint" 0
-	gdb_py_test_silent_cmd "python never_eval_bp1 = bp_also_eval(\"$end_location\")" \
-	    "Set breakpoint" 0
-	gdb_continue_to_breakpoint "Break at multiply, i==3" \
-	    ".*$srcfile:$bp_location2.*"
-	gdb_test "print i" \
-	    "3" "Check inferior value matches python accounting"
-	gdb_test "python print (eval_bp1.inf_i)" \
-	    "3" "Check python accounting matches inferior"
-	gdb_test "python print (also_eval_bp1.count)" "4" \
-	    "Check non firing same-location also_eval_bp1 function was also called at each stop."
-	gdb_test "python print (eval_bp1.count)" "4" \
-	    "Check non firing same-location eval_bp1 function was also called at each stop."
-
-	delete_breakpoints
-	set cond_bp [gdb_get_line_number "Break at multiply."]
-	gdb_py_test_silent_cmd  "python eval_bp1 = bp_eval(\"$cond_bp\")" \
-	    "Set breakpoint" 0
-	set test_cond {cond $bpnum}
-	gdb_test "$test_cond \"foo==3\"" \
-	    "Only one stop condition allowed.  There is currently a Python.*" \
-	    "Check you cannot add a CLI condition to a Python breakpoint that has defined stop"
-	gdb_py_test_silent_cmd "python eval_bp2 = basic(\"$cond_bp\")" \
-	    "Set breakpoint" 0
-	gdb_py_test_silent_cmd "python eval_bp2.condition = \"1==1\"" \
-	    "Set a condition" 0
-	gdb_py_test_multiple "Construct an eval function" \
-	    "python" "" \
-	    "def stop_func ():" "" \
-	    "   return True" "" \
-	    "end" ""
-
-	gdb_test "python eval_bp2.stop = stop_func"  \
-	    "RuntimeError: Only one stop condition allowed.  There is currently a GDB.*" \
-	    "assign stop function to a breakpoint that has a condition"
-
-	delete_breakpoints
-	gdb_breakpoint [gdb_get_line_number "Break at multiply."]
-	gdb_py_test_silent_cmd  "python check_eval = bp_eval(\"$bp_location2\")" \
-	    "Set breakpoint" 0
-	gdb_test "python print (check_eval.count)" "0" \
-	    "Test that evaluate function has not been yet executed (ie count = 0)"
-	gdb_continue_to_breakpoint "Break at multiply, count==1" \
-	    ".*$srcfile:$bp_location2.*"
-	gdb_test "python print (check_eval.count)" "1" \
-	    "Test that evaluate function is run when location also has normal bp"
-
-	gdb_py_test_multiple "Sub-class a watchpoint" \
-	    "python" "" \
-	    "class wp_eval (gdb.Breakpoint):" "" \
-	    "   def stop (self):" "" \
-	    "      self.result = gdb.parse_and_eval(\"result\")" "" \
-	    "      if self.result == 788:" "" \
-	    "        return True" "" \
-	    "      return False" "" \
-	    "end" ""
-
-	delete_breakpoints
-	gdb_py_test_silent_cmd  "python wp1 = wp_eval (\"result\", type=gdb.BP_WATCHPOINT, wp_class=gdb.WP_WRITE)" \
-	    "Set watchpoint" 0
-	gdb_test "continue" \
-	    ".*\[Ww\]atchpoint.*result.*Old value =.*New value = 788.*" \
-	    "Test watchpoint write"
-	gdb_test "python print (never_eval_bp1.count)" "0" \
-	    "Check that this unrelated breakpoints eval function was never called."
+    # Disable hardware watchpoints if necessary.
+    if [target_info exists gdb,no_hardware_watchpoints] {
+	gdb_test_no_output "set can-use-hw-watchpoints 0" ""
+    }
+    if ![runto_main] then {
+	fail "cannot run to main."
+	return 0
     }
+    delete_breakpoints
+
+    gdb_py_test_multiple "Sub-class a breakpoint" \
+	"python" "" \
+	"class bp_eval (gdb.Breakpoint):" "" \
+	"   inf_i = 0" "" \
+	"   count = 0" "" \
+	"   def stop (self):" "" \
+	"      self.count = self.count + 1" "" \
+	"      self.inf_i = gdb.parse_and_eval(\"i\")" "" \
+	"      if self.inf_i == 3:" "" \
+	"        return True" "" \
+	"      return False" "" \
+	"end" ""
+
+    gdb_py_test_multiple "Sub-class a second breakpoint" \
+	"python" "" \
+	"class bp_also_eval (gdb.Breakpoint):" "" \
+	"   count = 0" "" \
+	"   def stop (self):" "" \
+	"      self.count = self.count + 1" "" \
+	"      if self.count == 9:" "" \
+	"        return True" "" \
+	"      return False" "" \
+	"end" ""
+
+    gdb_py_test_multiple "Sub-class a third breakpoint" \
+	"python" "" \
+	"class basic (gdb.Breakpoint):" "" \
+	"   count = 0" "" \
+	"end" ""
+
+    set bp_location2 [gdb_get_line_number "Break at multiply."]
+    set end_location [gdb_get_line_number "Break at end."]
+    gdb_py_test_silent_cmd "python eval_bp1 = bp_eval(\"$bp_location2\")" \
+	"Set breakpoint" 0
+    gdb_py_test_silent_cmd "python also_eval_bp1 = bp_also_eval(\"$bp_location2\")" \
+	"Set breakpoint" 0
+    gdb_py_test_silent_cmd "python never_eval_bp1 = bp_also_eval(\"$end_location\")" \
+	"Set breakpoint" 0
+    gdb_continue_to_breakpoint "Break at multiply, i==3" \
+	".*$srcfile:$bp_location2.*"
+    gdb_test "print i" \
+	"3" "Check inferior value matches python accounting"
+    gdb_test "python print (eval_bp1.inf_i)" \
+	"3" "Check python accounting matches inferior"
+    gdb_test "python print (also_eval_bp1.count)" "4" \
+	"Check non firing same-location also_eval_bp1 function was also called at each stop."
+    gdb_test "python print (eval_bp1.count)" "4" \
+	"Check non firing same-location eval_bp1 function was also called at each stop."
+
+    delete_breakpoints
+    set cond_bp [gdb_get_line_number "Break at multiply."]
+    gdb_py_test_silent_cmd  "python eval_bp1 = bp_eval(\"$cond_bp\")" \
+	"Set breakpoint" 0
+    set test_cond {cond $bpnum}
+    gdb_test "$test_cond \"foo==3\"" \
+	"Only one stop condition allowed.  There is currently a Python.*" \
+	"Check you cannot add a CLI condition to a Python breakpoint that has defined stop"
+    gdb_py_test_silent_cmd "python eval_bp2 = basic(\"$cond_bp\")" \
+	"Set breakpoint" 0
+    gdb_py_test_silent_cmd "python eval_bp2.condition = \"1==1\"" \
+	"Set a condition" 0
+    gdb_py_test_multiple "Construct an eval function" \
+	"python" "" \
+	"def stop_func ():" "" \
+	"   return True" "" \
+	"end" ""
+
+    gdb_test "python eval_bp2.stop = stop_func"  \
+	"RuntimeError: Only one stop condition allowed.  There is currently a GDB.*" \
+	"assign stop function to a breakpoint that has a condition"
+
+    delete_breakpoints
+    gdb_breakpoint [gdb_get_line_number "Break at multiply."]
+    gdb_py_test_silent_cmd  "python check_eval = bp_eval(\"$bp_location2\")" \
+	"Set breakpoint" 0
+    gdb_test "python print (check_eval.count)" "0" \
+	"Test that evaluate function has not been yet executed (ie count = 0)"
+    gdb_continue_to_breakpoint "Break at multiply, count==1" \
+	".*$srcfile:$bp_location2.*"
+    gdb_test "python print (check_eval.count)" "1" \
+	"Test that evaluate function is run when location also has normal bp"
+
+    gdb_py_test_multiple "Sub-class a watchpoint" \
+	"python" "" \
+	"class wp_eval (gdb.Breakpoint):" "" \
+	"   def stop (self):" "" \
+	"      self.result = gdb.parse_and_eval(\"result\")" "" \
+	"      if self.result == 788:" "" \
+	"        return True" "" \
+	"      return False" "" \
+	"end" ""
+
+    delete_breakpoints
+    gdb_py_test_silent_cmd  "python wp1 = wp_eval (\"result\", type=gdb.BP_WATCHPOINT, wp_class=gdb.WP_WRITE)" \
+	"Set watchpoint" 0
+    gdb_test "continue" \
+	".*\[Ww\]atchpoint.*result.*Old value =.*New value = 788.*" \
+	"Test watchpoint write"
+    gdb_test "python print (never_eval_bp1.count)" "0" \
+	"Check that this unrelated breakpoints eval function was never called."
 }
 
-proc test_bkpt_temporary { } {
+proc_with_prefix test_bkpt_temporary { } {
     global srcfile testfile hex decimal
 
-    with_test_prefix test_bkpt_temporary {
-	# Start with a fresh gdb.
-	clean_restart ${testfile}
-
-	if ![runto_main] then {
-	    fail "cannot run to main."
-	    return 0
-	}
-	delete_breakpoints
+    # Start with a fresh gdb.
+    clean_restart ${testfile}
 
-	gdb_py_test_multiple "Sub-class and check temporary breakpoint" \
-	    "python" "" \
-	    "class temp_bp (gdb.Breakpoint):" "" \
-	    "   count = 0" "" \
-	    "   def stop (self):" "" \
-	    "      self.count = self.count + 1" "" \
-	    "      return True" "" \
-	    "end" ""
-	set ibp_location [gdb_get_line_number "Break at multiply."]
-	gdb_py_test_silent_cmd "python ibp = temp_bp(\"$ibp_location\", temporary=True)" \
-	    "Set temporary breakpoint" 0
-	gdb_test "info breakpoints" \
-	    "2.*breakpoint.*del.*py-breakpoint\.c:$ibp_location.*" \
-	    "Check info breakpoints shows breakpoint with temporary status"
-	gdb_test "python print (ibp.location)" "py-breakpoint\.c:$ibp_location*" \
-	    "Check temporary breakpoint location"
-	gdb_test "python print (ibp.temporary)" "True" \
-	    "Check breakpoint temporary status"
-	gdb_continue_to_breakpoint "Break at multiply." \
-	    ".*$srcfile:$ibp_location.*"
-	gdb_test "python print (ibp.count)" "1" \
-	    "Check temporary stop callback executed before deletion."
-	gdb_test "python print (ibp.temporary)" "RuntimeError: Breakpoint 2 is invalid.*" \
-	    "Check temporary breakpoint is deleted after being hit"
-	gdb_test "info breakpoints" "No breakpoints or watchpoints.*" \
-	    "Check info breakpoints shows temporary breakpoint is deleted"
+    if ![runto_main] then {
+	fail "cannot run to main."
+	return 0
     }
+    delete_breakpoints
+
+    gdb_py_test_multiple "Sub-class and check temporary breakpoint" \
+	"python" "" \
+	"class temp_bp (gdb.Breakpoint):" "" \
+	"   count = 0" "" \
+	"   def stop (self):" "" \
+	"      self.count = self.count + 1" "" \
+	"      return True" "" \
+	"end" ""
+    set ibp_location [gdb_get_line_number "Break at multiply."]
+    gdb_py_test_silent_cmd "python ibp = temp_bp(\"$ibp_location\", temporary=True)" \
+	"Set temporary breakpoint" 0
+    gdb_test "info breakpoints" \
+	"2.*breakpoint.*del.*py-breakpoint\.c:$ibp_location.*" \
+	"Check info breakpoints shows breakpoint with temporary status"
+    gdb_test "python print (ibp.location)" "py-breakpoint\.c:$ibp_location*" \
+	"Check temporary breakpoint location"
+    gdb_test "python print (ibp.temporary)" "True" \
+	"Check breakpoint temporary status"
+    gdb_continue_to_breakpoint "Break at multiply." \
+	".*$srcfile:$ibp_location.*"
+    gdb_test "python print (ibp.count)" "1" \
+	"Check temporary stop callback executed before deletion."
+    gdb_test "python print (ibp.temporary)" "RuntimeError: Breakpoint 2 is invalid.*" \
+	"Check temporary breakpoint is deleted after being hit"
+    gdb_test "info breakpoints" "No breakpoints or watchpoints.*" \
+	"Check info breakpoints shows temporary breakpoint is deleted"
 }
 
 # Test address locations.
 
-proc test_bkpt_address {} {
+proc_with_prefix test_bkpt_address {} {
     global gdb_prompt decimal srcfile
 
     # Delete all breakpoints
@@ -500,7 +486,7 @@ proc test_bkpt_address {} {
 	".*Breakpoint ($decimal)+ at .*$srcfile, line ($decimal)+\."
 }
 
-proc test_bkpt_pending {} {
+proc_with_prefix test_bkpt_pending {} {
     delete_breakpoints
     gdb_breakpoint "nosuchfunction" allow-pending
     gdb_test "python print (gdb.breakpoints()\[0\].pending)" "True" \
@@ -522,7 +508,7 @@ proc check_last_event {expected} {
 	"check for $expected event"
 }
 
-proc test_bkpt_events {} {
+proc_with_prefix test_bkpt_events {} {
     global testfile
 
     clean_restart ${testfile}
@@ -547,6 +533,154 @@ proc test_bkpt_events {} {
     check_last_event breakpoint_deleted
 }
 
+proc_with_prefix test_bkpt_explicit_loc {} {
+    global srcfile testfile
+
+    # Start with a fresh gdb.
+    clean_restart ${testfile}
+
+    if ![runto_main] then {
+	fail "cannot run to main."
+	return 0
+    }
+
+    delete_breakpoints
+
+    set bp_location1 [gdb_get_line_number "Break at multiply."]
+    set bp_location2 [gdb_get_line_number "Break at add."]
+
+    gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (line=$bp_location1)" \
+	"set explicit breakpoint by line" 0
+    gdb_continue_to_breakpoint "break at multiply for explicit line" \
+	".*Break at multiply.*"
+
+    gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (line=\"+1\")" \
+	"set explicit breakpoint by relative line" 0
+    gdb_continue_to_breakpoint "break at add for relative line" \
+	".*Break at add.*"
+
+    delete_breakpoints
+    gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (line=\"-1\")" \
+	"set explicit breakpoint by relative negative line" 0
+    gdb_continue_to_breakpoint "break at multiply for negative line" \
+	".*Break at multiply.*"
+
+    delete_breakpoints
+    gdb_test "python bp1 = gdb.Breakpoint (line=bp1)" \
+	"RuntimeError: Line keyword should be an integer or a string.*" \
+	"set explicit breakpoint by invalid line type"
+
+    delete_breakpoints
+    gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (function=\"add\")" \
+	"set explicit breakpoint by function" 0
+    gdb_continue_to_breakpoint "break at function add for function" \
+	".*Break at function add.*"
+
+    delete_breakpoints
+    gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (source=\"$srcfile\", function=\"add\")" \
+	"set explicit breakpoint by source file and function" 0
+    gdb_continue_to_breakpoint "break at function add for source and function" \
+	".*Break at function add.*"
+
+    delete_breakpoints
+    gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (source=\"$srcfile\", line=\"$bp_location2\")" \
+	"set explicit breakpoint by source file and line number" 0
+    gdb_continue_to_breakpoint "break at add for source and line" \
+	".*Break at add.*"
+
+    delete_breakpoints
+    gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (\"-source $srcfile -line $bp_location2\")" \
+	"set explicit breakpoint by source file and line number in spec" 0
+    gdb_continue_to_breakpoint "break at add for source and line in spec" \
+	".*Break at add.*"
+
+    delete_breakpoints
+    gdb_test "python bp1 = gdb.Breakpoint (source=\"$srcfile\")" \
+	"RuntimeError: Specifying a source must also include a line, label or function.*" \
+	"set invalid explicit breakpoint by source only"
+
+    gdb_test "python bp1 = gdb.Breakpoint (source=\"foo.c\", line=\"5\")" \
+	"No source file named foo.*" \
+	"set invalid explicit breakpoint by missing source and line"
+    gdb_test "python bp1 = gdb.Breakpoint (source=\"$srcfile\", line=\"900\")" \
+	"No line 900 in file \"$srcfile\".*" \
+	"set invalid explicit breakpoint by source and invalid line"
+    gdb_test "python bp1 = gdb.Breakpoint (function=\"blah\")" \
+	"Function \"blah\" not defined.*" \
+	"set invalid explicit breakpoint by missing function"
+}
+
+proc_with_prefix test_bkpt_qualified {} {
+    global decimal hex testfile
+
+    # Start with a fresh gdb.
+    clean_restart ${testfile}
+
+    set one_location_re "Breakpoint $decimal at $hex:.*line $decimal."
+    set two_location_re "Breakpoint $decimal at $hex:.*2 locations."
+
+    if ![runto_main] then {
+	fail "cannot run to main."
+	return 0
+    }
+
+    # Test the default value of "qualified".
+    delete_breakpoints
+    gdb_test \
+	"python gdb.Breakpoint(\"multiply\")" \
+	$two_location_re \
+	"qualified implicitly false"
+
+    # Test qualified=False.
+    delete_breakpoints
+    gdb_test \
+	"python gdb.Breakpoint(\"multiply\", qualified=False)" \
+	$two_location_re \
+	"qualified false"
+
+    # Test qualified=True.
+    delete_breakpoints
+    gdb_test \
+	"python gdb.Breakpoint(\"multiply\", qualified=True)" \
+	$one_location_re \
+	"qualified true"
+
+    # Test qualified=True with an explicit function.
+    delete_breakpoints
+    gdb_test \
+	"python gdb.Breakpoint(function=\"multiply\", qualified=True)" \
+	$one_location_re \
+	"qualified true and explicit"
+
+    # Test qualified=False with an explicit function.
+    delete_breakpoints
+    gdb_test \
+	"python gdb.Breakpoint(function=\"multiply\", qualified=False)" \
+	$two_location_re \
+	"qualified false and explicit"
+
+    # Test -q in the spec string.
+    delete_breakpoints
+    gdb_test \
+	"python gdb.Breakpoint(\"-q multiply\")" \
+	$one_location_re \
+	"-q in spec string"
+
+    # Test -q in the spec string with explicit location.
+    delete_breakpoints
+    gdb_test \
+	"python gdb.Breakpoint(\"-q -function multiply\")" \
+	$one_location_re \
+	"-q in spec string with explicit location"
+
+    # Test -q in the spec string and qualified=False (-q should win).
+    delete_breakpoints
+    gdb_test \
+	"python gdb.Breakpoint(\"-q multiply\", qualified=False)" \
+	$one_location_re \
+	"-q in spec string and qualified false"
+}
+
 test_bkpt_basic
 test_bkpt_deletion
 test_bkpt_cond_and_cmds
@@ -558,3 +692,5 @@ test_bkpt_temporary
 test_bkpt_address
 test_bkpt_pending
 test_bkpt_events
+test_bkpt_explicit_loc
+test_bkpt_qualified
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-caller-is.c ./gdb/testsuite/gdb.python/py-caller-is.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-caller-is.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-caller-is.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-caller-is.exp ./gdb/testsuite/gdb.python/py-caller-is.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-caller-is.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-caller-is.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-cmd.c ./gdb/testsuite/gdb.python/py-cmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-cmd.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-cmd.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-cmd.exp ./gdb/testsuite/gdb.python/py-cmd.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-cmd.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-cmd.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 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
@@ -181,6 +181,71 @@ gdb_test "complete expr_test bar\." \
     "expr_test bar\.bc.*expr_test bar\.ij.*" \
     "test completion through complete command"
 
+# Test that the "python" command is correctly recognized as
+# inline/multi-line when entering a sequence of commands.
+#
+# This proc tests PR cli/21688.  The PR is not language-specific, but
+# the easiest way is just to test with Python.
+proc test_python_inline_or_multiline { } {
+    global gdb_prompt
+
+    set define_cmd_not_inline {
+	{ "if 1"                 " >$"            "multi-line if 1" }
+	{ "python"               " >$"            "multi-line python command" }
+	{ "print ('hello')"      "  >$"           "multi-line print" }
+	{ "end"                  " >$"            "multi-line first end" }
+	{ "end"                  "hello\r\n"      "multi-line last end" } }
+
+    # This also tests trailing whitespace on the command.
+    set define_cmd_alias_not_inline {
+	{ "if 1"                 " >$"            "multi-line if 1 alias" }
+	{ "py    "               " >$"            "multi-line python command alias" }
+	{ "print ('hello')"      "  >$"           "multi-line print alias" }
+	{ "end"                  " >$"            "multi-line first end alias" }
+	{ "end"                  "hello\r\n"      "multi-line last end alias" } }
+
+    set define_cmd_alias_foo_not_inline {
+	{ "alias foo=python"     "\r\n"           "multi-line alias foo" }
+	{ "if 1"                 " >$"            "multi-line if 1 alias foo" }
+	{ "foo    "              " >$"            "multi-line python command alias foo" }
+	{ "print ('hello')"      "  >$"           "multi-line print alias foo" }
+	{ "end"                  " >$"            "multi-line first end alias foo" }
+	{ "end"                  "hello\r\n"      "multi-line last end alias foo" } }
+
+    set define_cmd_inline {
+	{ "if 1"                      " >$"          "inline if 1" }
+	{ "python print ('hello')"    " >$"          "inline python command" }
+	{ "end"                       "hello\r\n"    "inline end" } }
+
+    set define_cmd_alias_inline {
+	{ "if 1"                      " >$"          "inline if 1 alias" }
+	{ "py print ('hello')"        " >$"          "inline python command alias" }
+	{ "end"                       "hello\r\n"    "inline end alias" } }
+
+    set define_cmd_alias_foo_inline {
+	{ "if 1"                      " >$"          "inline if 1 alias foo" }
+	{ "foo print ('hello')"       " >$"          "inline python command alias foo" }
+	{ "end"                       "hello\r\n"    "inline end alias foo" } }
+
+    foreach t [list $define_cmd_not_inline \
+	       $define_cmd_alias_not_inline \
+	       $define_cmd_alias_foo_not_inline \
+	       $define_cmd_inline \
+	       $define_cmd_alias_inline \
+	       $define_cmd_alias_foo_inline] {
+	foreach l $t {
+	    lassign $l command regex testmsg
+	    gdb_test_multiple "$command" "$testmsg" {
+		-re "$regex" {
+		    pass "$testmsg"
+		}
+	    }
+	}
+    }
+}
+
+test_python_inline_or_multiline
+
 if { [readline_is_used] } {
     set test "complete 'expr_test bar.i'"
     send_gdb "expr_test bar\.i\t\t"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-completion.exp ./gdb/testsuite/gdb.python/py-completion.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-completion.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-completion.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-completion.py ./gdb/testsuite/gdb.python/py-completion.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-completion.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-completion.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-error.exp ./gdb/testsuite/gdb.python/py-error.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-error.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-error.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-error.py ./gdb/testsuite/gdb.python/py-error.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-error.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-error.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-events.c ./gdb/testsuite/gdb.python/py-events.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-events.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-events.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-events.exp ./gdb/testsuite/gdb.python/py-events.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-events.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-events.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-events.py ./gdb/testsuite/gdb.python/py-events.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-events.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-events.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-events-shlib.c ./gdb/testsuite/gdb.python/py-events-shlib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-events-shlib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-events-shlib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-evsignal.exp ./gdb/testsuite/gdb.python/py-evsignal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-evsignal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-evsignal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 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
@@ -13,7 +13,8 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if {[is_remote target]} {
+if {[target_info gdb_protocol] == "remote"
+    || [target_info gdb_protocol] == "extended-remote"} {
     # RuntimeError: Could not find event thread
     kfail "python/12966" "Signal Thread 3"
     return -1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-evthreads.c ./gdb/testsuite/gdb.python/py-evthreads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-evthreads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-evthreads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-evthreads.exp ./gdb/testsuite/gdb.python/py-evthreads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-evthreads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-evthreads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 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
@@ -13,12 +13,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if {[is_remote target]} {
-    # RuntimeError: Could not find event thread
-    kfail "python/12966" "Run to breakpoint 1"
-    return -1
-}
-
 if { ![support_displaced_stepping] } { 
     unsupported "displaced stepping"
     return -1
@@ -32,14 +26,17 @@ set pyfile ${srcdir}/${subdir}/py-events
 if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
     return -1
 }
-clean_restart $testfile
+
+save_vars { GDBFLAGS } {
+    append GDBFLAGS " -ex \"set non-stop on\""
+    clean_restart $testfile
+}
 
 if { [skip_python_tests] } { continue }
 
 gdb_test_no_output "source ${pyfile}" "load python file"
 
 gdb_test "test-events" "Event testers registered."
-gdb_test_no_output "set non-stop on"
 
 gdb_breakpoint "main"
 gdb_breakpoint "thread2"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-explore.c ./gdb/testsuite/gdb.python/py-explore.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-explore.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-explore.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-explore.cc ./gdb/testsuite/gdb.python/py-explore.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-explore.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-explore.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-explore-cc.exp ./gdb/testsuite/gdb.python/py-explore-cc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-explore-cc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-explore-cc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-explore.exp ./gdb/testsuite/gdb.python/py-explore.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-explore.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-explore.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-finish-breakpoint2.cc ./gdb/testsuite/gdb.python/py-finish-breakpoint2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-finish-breakpoint2.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-finish-breakpoint2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-finish-breakpoint2.exp ./gdb/testsuite/gdb.python/py-finish-breakpoint2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-finish-breakpoint2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-finish-breakpoint2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-finish-breakpoint2.py ./gdb/testsuite/gdb.python/py-finish-breakpoint2.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-finish-breakpoint2.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-finish-breakpoint2.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-finish-breakpoint.c ./gdb/testsuite/gdb.python/py-finish-breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-finish-breakpoint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-finish-breakpoint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-finish-breakpoint.exp ./gdb/testsuite/gdb.python/py-finish-breakpoint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-finish-breakpoint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-finish-breakpoint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-finish-breakpoint.py ./gdb/testsuite/gdb.python/py-finish-breakpoint.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-finish-breakpoint.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-finish-breakpoint.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-frame-args.c ./gdb/testsuite/gdb.python/py-frame-args.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-frame-args.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-frame-args.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-frame-args.exp ./gdb/testsuite/gdb.python/py-frame-args.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-frame-args.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-frame-args.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-frame-args.py ./gdb/testsuite/gdb.python/py-frame-args.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-frame-args.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-frame-args.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-frame.exp ./gdb/testsuite/gdb.python/py-frame.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-frame.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-frame.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter.c ./gdb/testsuite/gdb.python/py-framefilter.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-framefilter.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter.exp ./gdb/testsuite/gdb.python/py-framefilter.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-framefilter.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter-gdb.py.in ./gdb/testsuite/gdb.python/py-framefilter-gdb.py.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter-gdb.py.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-framefilter-gdb.py.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp ./gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in ./gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter-invalidarg.py ./gdb/testsuite/gdb.python/py-framefilter-invalidarg.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter-invalidarg.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-framefilter-invalidarg.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter-mi.c ./gdb/testsuite/gdb.python/py-framefilter-mi.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter-mi.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-framefilter-mi.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter-mi.exp ./gdb/testsuite/gdb.python/py-framefilter-mi.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter-mi.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-framefilter-mi.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter.py ./gdb/testsuite/gdb.python/py-framefilter.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-framefilter.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-framefilter.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-frame-inline.c ./gdb/testsuite/gdb.python/py-frame-inline.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-frame-inline.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-frame-inline.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-frame-inline.exp ./gdb/testsuite/gdb.python/py-frame-inline.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-frame-inline.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-frame-inline.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-function.exp ./gdb/testsuite/gdb.python/py-function.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-function.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-function.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-inferior.exp ./gdb/testsuite/gdb.python/py-inferior.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-inferior.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-inferior.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 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
@@ -30,15 +30,9 @@ clean_restart ${testfile}
 # Skip all tests if Python scripting is not enabled.
 if { [skip_python_tests] } { continue }
 
-gdb_test_multiple "show endian" "getting target endian" {
-    -re ".*little endian.*$gdb_prompt $" {
-        set python_pack_char "<"
-	# pass silently
-    }
-    -re ".*big endian.*$gdb_prompt $" {
-        set python_pack_char ">"
-	# pass silently
-    }
+switch [get_endianness] {
+    little { set python_pack_char "<" }
+    big { set python_pack_char ">" }
 }
 
 # The following tests require execution.
@@ -220,12 +214,33 @@ with_test_prefix "is_valid" {
     gdb_test "python print (inf_list\[0\].is_valid())" "True" \
 	"check inferior validity 1"
 
+    gdb_py_test_multiple "install new inferior event handler" \
+	"python" "" \
+	"my_inferior_count = 1" "" \
+	"def new_inf_handler(evt):" "" \
+	"  global my_inferior_count" "" \
+	"  if evt.inferior is not None:" "" \
+	"    my_inferior_count = my_inferior_count + 1" "" \
+	"gdb.events.new_inferior.connect(new_inf_handler)" "" \
+	"end" ""
+    gdb_py_test_multiple "install inferior deleted event handler" \
+	"python" "" \
+	"def del_inf_handler(evt):" "" \
+	"  global my_inferior_count" "" \
+	"  if evt.inferior is not None:" "" \
+	"    my_inferior_count = my_inferior_count - 1" "" \
+	"gdb.events.inferior_deleted.connect(del_inf_handler)" "" \
+	"end" ""
+
     gdb_test "add-inferior" "Added inferior 2.*" "add empty inferior 2"
     gdb_py_test_silent_cmd "python inf_list = gdb.inferiors()" "get new list" 1
     gdb_test "python print (len(inf_list))" "2" "get inferior list length 2"
     gdb_test "python print (inf_list\[0\].is_valid())" "True" \
 	"check inferior validity 2"
 
+    gdb_test "python print (my_inferior_count)" "2" \
+	"test new-inferior event handler"
+
     gdb_test "python print (inf_list\[1\].is_valid())" "True" \
 	"check inferior validity 3"
 
@@ -235,6 +250,9 @@ with_test_prefix "is_valid" {
 
     gdb_test "python print (inf_list\[1\].is_valid())" "False" \
 	"check inferior validity 5"
+
+    gdb_test "python print (my_inferior_count)" "1" \
+	"test inferior-deleted event handler"
 }
 
 # Test gdb.selected_inferior()
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-infthread.exp ./gdb/testsuite/gdb.python/py-infthread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-infthread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-infthread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 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
@@ -30,6 +30,16 @@ clean_restart ${testfile}
 # Skip all tests if Python scripting is not enabled.
 if { [skip_python_tests] } { continue }
 
+gdb_py_test_multiple "install new_thread event handler" \
+    "python" "" \
+    "seen_a_thread = False" "" \
+    "def thread_handler(evt):" "" \
+    "  if evt.inferior_thread is not None:" "" \
+    "    global seen_a_thread" "" \
+    "    seen_a_thread = True" "" \
+    "gdb.events.new_thread.connect(thread_handler)" "" \
+    "end" ""
+
 # The following tests require execution.
 
 if ![runto_main] then {
@@ -37,8 +47,19 @@ if ![runto_main] then {
     return 0
 }
 
+gdb_test "python print(seen_a_thread)" "True"
+
 # Test basic gdb.Inferior attributes and methods.
 
+# Make sure that InferiorThread.inferior returns a new reference (see PR 21213).
+
+gdb_py_test_silent_cmd "python gdb.selected_thread ().inferior" "test InferiorThread.inferior 1" 1
+gdb_py_test_silent_cmd "python gdb.selected_thread ().inferior" "test InferiorThread.inferior 2" 1
+gdb_test_no_output "python import gc; gc.collect()" "call Python garbage collection"
+gdb_py_test_silent_cmd "python gdb.selected_thread ().inferior" "test InferiorThread.inferior 3" 1
+gdb_py_test_silent_cmd "python gdb.selected_thread ().inferior" "test InferiorThread.inferior 4" 1
+
+
 gdb_py_test_silent_cmd "python t0 = gdb.selected_thread ()" "test gdb.selected_thread" 1
 gdb_test "python print (t0)" "\\<gdb.InferiorThread object at 0x\[\[:xdigit:\]\]+>" "verify InferiorThread object"
 gdb_test "python print ('result = %s' % t0.num)" " = 1" "test InferiorThread.num"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-lazy-string.c ./gdb/testsuite/gdb.python/py-lazy-string.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-lazy-string.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-lazy-string.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-lazy-string.exp ./gdb/testsuite/gdb.python/py-lazy-string.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-lazy-string.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-lazy-string.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-linetable.c ./gdb/testsuite/gdb.python/py-linetable.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-linetable.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-linetable.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-linetable.exp ./gdb/testsuite/gdb.python/py-linetable.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-linetable.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-linetable.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-linetable.S ./gdb/testsuite/gdb.python/py-linetable.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-linetable.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-linetable.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-lookup-type.exp ./gdb/testsuite/gdb.python/py-lookup-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-lookup-type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-lookup-type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-mi-events.c ./gdb/testsuite/gdb.python/py-mi-events.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-mi-events.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-mi-events.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-mi-events.exp ./gdb/testsuite/gdb.python/py-mi-events.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-mi-events.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-mi-events.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-mi-events-gdb.py ./gdb/testsuite/gdb.python/py-mi-events-gdb.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-mi-events-gdb.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-mi-events-gdb.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-mi.exp ./gdb/testsuite/gdb.python/py-mi.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-mi.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-mi.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-mi-objfile.c ./gdb/testsuite/gdb.python/py-mi-objfile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-mi-objfile.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-mi-objfile.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-mi-objfile.exp ./gdb/testsuite/gdb.python/py-mi-objfile.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-mi-objfile.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-mi-objfile.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-mi-objfile-gdb.py ./gdb/testsuite/gdb.python/py-mi-objfile-gdb.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-mi-objfile-gdb.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-mi-objfile-gdb.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-objfile.c ./gdb/testsuite/gdb.python/py-objfile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-objfile.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-objfile.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-objfile.exp ./gdb/testsuite/gdb.python/py-objfile.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-objfile.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-objfile.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-objfile-script.c ./gdb/testsuite/gdb.python/py-objfile-script.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-objfile-script.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-objfile-script.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-objfile-script.exp ./gdb/testsuite/gdb.python/py-objfile-script.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-objfile-script.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-objfile-script.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-objfile-script-gdb.py ./gdb/testsuite/gdb.python/py-objfile-script-gdb.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-objfile-script-gdb.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-objfile-script-gdb.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-parameter.exp ./gdb/testsuite/gdb.python/py-parameter.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-parameter.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-parameter.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-integral.c ./gdb/testsuite/gdb.python/py-pp-integral.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-integral.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-pp-integral.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-integral.exp ./gdb/testsuite/gdb.python/py-pp-integral.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-integral.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-pp-integral.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-integral.py ./gdb/testsuite/gdb.python/py-pp-integral.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-integral.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-pp-integral.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-maint.c ./gdb/testsuite/gdb.python/py-pp-maint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-maint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-pp-maint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-maint.exp ./gdb/testsuite/gdb.python/py-pp-maint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-maint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-pp-maint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-maint.py ./gdb/testsuite/gdb.python/py-pp-maint.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-maint.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-pp-maint.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-registration.c ./gdb/testsuite/gdb.python/py-pp-registration.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-registration.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-pp-registration.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-registration.exp ./gdb/testsuite/gdb.python/py-pp-registration.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-registration.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-pp-registration.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-registration.py ./gdb/testsuite/gdb.python/py-pp-registration.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-registration.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-pp-registration.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-re-notag.c ./gdb/testsuite/gdb.python/py-pp-re-notag.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-re-notag.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-pp-re-notag.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-re-notag.exp ./gdb/testsuite/gdb.python/py-pp-re-notag.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-re-notag.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-pp-re-notag.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-re-notag.py ./gdb/testsuite/gdb.python/py-pp-re-notag.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-pp-re-notag.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-pp-re-notag.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-prettyprint.c ./gdb/testsuite/gdb.python/py-prettyprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-prettyprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-prettyprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 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
@@ -257,6 +257,15 @@ bug_14741()
   set_item(&c, 0, 5);
 }
 
+/* Some typedefs/variables for checking that GDB doesn't lose typedefs
+   when looking for a printer.  */
+typedef int int_type;
+typedef int_type int_type2;
+
+int an_int = -1;
+int_type an_int_type = 1;
+int_type2 an_int_type2 = 2;
+
 int
 main ()
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-prettyprint.exp ./gdb/testsuite/gdb.python/py-prettyprint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-prettyprint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-prettyprint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 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
@@ -110,6 +110,19 @@ proc run_lang_tests {exefile lang} {
     gdb_test "print nstype" " = {.0. = 7, .1. = 42}" \
 	"print nstype on one line"
 
+    # Check that GDB doesn't lose typedefs when looking for a printer.
+    gdb_test "print an_int" " = -1"
+    gdb_test "print (int) an_int" " = -1"
+    gdb_test "print (int_type) an_int" " = type=int_type, val=-1"
+
+    gdb_test "print an_int_type" " = type=int_type, val=1"
+    gdb_test "print (int_type) an_int_type" " = type=int_type, val=1"
+
+    gdb_test "print an_int_type2" " = type=int_type2, val=2"
+    gdb_test "print (int) an_int_type2" " = 2"
+    gdb_test "print (int_type) an_int_type2" " = type=int_type, val=2"
+    gdb_test "print (int_type2) an_int_type2" " = type=int_type2, val=2"
+
     gdb_continue_to_end
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-prettyprint.py ./gdb/testsuite/gdb.python/py-prettyprint.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-prettyprint.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-prettyprint.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 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
@@ -227,6 +227,13 @@ class pp_eval_type (object):
         gdb.execute("bt", to_string=True)
         return "eval=<" + str(gdb.parse_and_eval("eval_func (123456789, 2, 3, 4, 5, 6, 7, 8)")) + ">"
 
+class pp_int_typedef (object):
+    def __init__(self, val):
+        self.val = val
+
+    def to_string(self):
+        return "type=%s, val=%s" % (self.val.type, int(self.val))
+
 def lookup_function (val):
     "Look-up and return a pretty-printer that can print val."
 
@@ -263,6 +270,26 @@ def disable_lookup_function ():
 def enable_lookup_function ():
     lookup_function.enabled = True
 
+# Lookup a printer for VAL in the typedefs dict.
+def lookup_typedefs_function (val):
+    "Look-up and return a pretty-printer that can print val (typedefs)."
+
+    # Get the type.
+    type = val.type
+
+    if type == None or type.name == None or type.code != gdb.TYPE_CODE_TYPEDEF:
+        return None
+
+    # Iterate over local dictionary of typedef types to determine if a
+    # printer is registered for that type.  Return an instantiation of
+    # the printer if found.
+    for function in typedefs_pretty_printers_dict:
+        if function.match (type.name):
+            return typedefs_pretty_printers_dict[function] (val)
+
+    # Cannot find a pretty printer.
+    return None
+
 def register_pretty_printers ():
     pretty_printers_dict[re.compile ('^struct s$')]   = pp_s
     pretty_printers_dict[re.compile ('^s$')]   = pp_s
@@ -309,7 +336,14 @@ def register_pretty_printers ():
 
     pretty_printers_dict[re.compile ('^eval_type_s$')] = pp_eval_type
 
+    typedefs_pretty_printers_dict[re.compile ('^int_type$')] = pp_int_typedef
+    typedefs_pretty_printers_dict[re.compile ('^int_type2$')] = pp_int_typedef
+
+# Dict for struct types with typedefs fully stripped.
 pretty_printers_dict = {}
+# Dict for typedef types.
+typedefs_pretty_printers_dict = {}
 
 register_pretty_printers ()
 gdb.pretty_printers.append (lookup_function)
+gdb.pretty_printers.append (lookup_typedefs_function)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-progspace.c ./gdb/testsuite/gdb.python/py-progspace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-progspace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-progspace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-progspace.exp ./gdb/testsuite/gdb.python/py-progspace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-progspace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-progspace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-prompt.c ./gdb/testsuite/gdb.python/py-prompt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-prompt.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-prompt.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-prompt.exp ./gdb/testsuite/gdb.python/py-prompt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-prompt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-prompt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-rbreak.c ./gdb/testsuite/gdb.python/py-rbreak.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-rbreak.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-rbreak.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,70 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2013-2018 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
+func1 ()
+{
+  return 1;
+}
+
+int
+func2 ()
+{
+  return 2;
+}
+
+int
+func3 ()
+{
+  return 3;
+}
+
+int
+func4 ()
+{
+  return 4;
+}
+
+int
+func5 ()
+{
+  return 5;
+}
+
+void
+func6 ()
+{
+  return;
+}
+
+void
+outside_scope ()
+{
+  return;
+}
+
+int
+main()
+{
+  func1 (); /* Break func1.  */
+  func2 ();
+  func3 ();
+  func4 ();
+  func5 ();
+  func6 ();
+  outside_scope ();
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-rbreak.exp ./gdb/testsuite/gdb.python/py-rbreak.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-rbreak.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-rbreak.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,62 @@
+# Copyright (C) 2017-2018 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
+# exposing values to Python.
+
+load_lib gdb-python.exp
+
+standard_testfile py-rbreak.c py-rbreak-func2.c
+
+if {[prepare_for_testing "failed to prepare" ${testfile} [list $srcfile $srcfile2]] } {
+    return 1
+}
+
+# Skip all tests if Python scripting is not enabled.
+if { [skip_python_tests] } { continue }
+
+if ![runto_main] then {
+    fail "can't run to main"
+    return 0
+}
+
+gdb_test_no_output "nosharedlibrary"
+gdb_py_test_silent_cmd "py sl = gdb.rbreak(\"\",minsyms=False)" \
+    "get all function breakpoints" 0
+gdb_test "py print(len(sl))" "11" \
+    "check number of returned breakpoints is 11"
+gdb_py_test_silent_cmd "py sl = gdb.rbreak(\"main\.\*\",minsyms=False)" \
+    "get main function breakpoint" 0
+gdb_test "py print(len(sl))" "1" \
+    "check number of returned breakpoints is 1"
+gdb_py_test_silent_cmd "py sl = gdb.rbreak(\"func\.\*\",minsyms=False,throttle=10)" \
+    "get functions matching func.*" 0
+gdb_test "py print(len(sl))" "9" \
+    "check number of returned breakpoints is 9"
+gdb_test "py gdb.rbreak(\"func\.\*\",minsyms=False,throttle=5)" \
+    "Number of breakpoints exceeds throttled maximum.*" \
+    "check throttle errors on too many breakpoints"
+gdb_py_test_silent_cmd "py sl = gdb.rbreak(\"func1\",minsyms=True)" \
+    "including minimal symbols, get functions matching func.*" 0
+gdb_test "py print(len(sl))" "2" \
+    "check number of returned breakpoints is 2"
+gdb_py_test_silent_cmd "python sym = gdb.lookup_symbol(\"efunc1\")" \
+    "find a symbol in objfile" 1
+gdb_py_test_silent_cmd "python symtab = sym\[0\].symtab" \
+    "get backing symbol table" 1
+gdb_py_test_silent_cmd "py sl = gdb.rbreak(\"func\.\*\",minsyms=False,throttle=10,symtabs=\[symtab\])" \
+    "get functions matching func.* in one symtab only" 0
+gdb_test "py print(len(sl))" "3" \
+    "check number of returned breakpoints is 3"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-rbreak-func2.c ./gdb/testsuite/gdb.python/py-rbreak-func2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-rbreak-func2.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-rbreak-func2.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,34 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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
+efunc1 ()
+{
+  return 1;
+}
+
+int
+efunc2 ()
+{
+  return 2;
+}
+
+int
+efunc3 ()
+{
+  return 3;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-record-btrace.c ./gdb/testsuite/gdb.python/py-record-btrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-record-btrace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-record-btrace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-record-btrace.exp ./gdb/testsuite/gdb.python/py-record-btrace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-record-btrace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-record-btrace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-record-btrace-threads.c ./gdb/testsuite/gdb.python/py-record-btrace-threads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-record-btrace-threads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-record-btrace-threads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2017 Free Software Foundation, Inc.
+   Copyright 2017-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-record-btrace-threads.exp ./gdb/testsuite/gdb.python/py-record-btrace-threads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-record-btrace-threads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-record-btrace-threads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2017 Free Software Foundation, Inc.
+# Copyright 2017-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-record-full.c ./gdb/testsuite/gdb.python/py-record-full.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-record-full.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-record-full.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-record-full.exp ./gdb/testsuite/gdb.python/py-record-full.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-record-full.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-record-full.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-recurse-unwind.c ./gdb/testsuite/gdb.python/py-recurse-unwind.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-recurse-unwind.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-recurse-unwind.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-recurse-unwind.exp ./gdb/testsuite/gdb.python/py-recurse-unwind.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-recurse-unwind.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-recurse-unwind.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-recurse-unwind.py ./gdb/testsuite/gdb.python/py-recurse-unwind.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-recurse-unwind.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-recurse-unwind.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc ./gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.exp ./gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-section-script.c ./gdb/testsuite/gdb.python/py-section-script.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-section-script.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-section-script.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-section-script.exp ./gdb/testsuite/gdb.python/py-section-script.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-section-script.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-section-script.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-section-script.py ./gdb/testsuite/gdb.python/py-section-script.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-section-script.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-section-script.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-shared.c ./gdb/testsuite/gdb.python/py-shared.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-shared.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-shared.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-shared.exp ./gdb/testsuite/gdb.python/py-shared.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-shared.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-shared.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-shared-sl.c ./gdb/testsuite/gdb.python/py-shared-sl.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-shared-sl.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-shared-sl.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-strfns.c ./gdb/testsuite/gdb.python/py-strfns.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-strfns.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-strfns.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-strfns.exp ./gdb/testsuite/gdb.python/py-strfns.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-strfns.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-strfns.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-symbol.c ./gdb/testsuite/gdb.python/py-symbol.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-symbol.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-symbol.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-symbol.exp ./gdb/testsuite/gdb.python/py-symbol.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-symbol.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-symbol.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-symtab.exp ./gdb/testsuite/gdb.python/py-symtab.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-symtab.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-symtab.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-sync-interp.c ./gdb/testsuite/gdb.python/py-sync-interp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-sync-interp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-sync-interp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-sync-interp.exp ./gdb/testsuite/gdb.python/py-sync-interp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-sync-interp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-sync-interp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-template.cc ./gdb/testsuite/gdb.python/py-template.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-template.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-template.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-template.exp ./gdb/testsuite/gdb.python/py-template.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-template.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-template.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/python-1.c ./gdb/testsuite/gdb.python/python-1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/python-1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/python-1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/python.c ./gdb/testsuite/gdb.python/python.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/python.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/python.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/python.exp ./gdb/testsuite/gdb.python/python.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/python.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/python.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-thrhandle.c ./gdb/testsuite/gdb.python/py-thrhandle.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-thrhandle.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-thrhandle.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,94 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#include <pthread.h>
+#include <unistd.h>
+#include <memory.h>
+
+#define NTHR 3
+#define NBOGUSTHR 2
+
+int thr_data[NTHR];
+
+/* Thread handles for each thread plus some "bogus" threads.  */
+pthread_t thrs[NTHR + NBOGUSTHR];
+
+/* The thread children will meet at this barrier. */
+pthread_barrier_t c_barrier;
+
+/* The main thread and child thread will meet at this barrier. */
+pthread_barrier_t mc_barrier;
+
+void
+do_something (int n)
+{
+}
+
+void *
+do_work (void *data)
+{
+  int num = * (int *) data;
+
+  /* As the child threads are created, they'll meet the main thread
+     at this barrier.  We do this to ensure that threads end up in
+     GDB's thread list in the order in which they were created.  Having
+     this ordering makes it easier to write the test.  */
+  pthread_barrier_wait (&mc_barrier);
+
+  /* All of the child threads will meet at this barrier before proceeding.
+     This ensures that all threads will be active (not exited) and in
+     roughly the same state when the first one hits the breakpoint in
+     do_something().  */
+  pthread_barrier_wait (&c_barrier);
+
+  do_something (num);
+
+  pthread_exit (NULL);
+}
+
+void
+after_mc_barrier (void)
+{
+}
+
+int
+main (int argc, char **argv)
+{
+  int i;
+
+  pthread_barrier_init (&c_barrier, NULL, NTHR - 1);
+  pthread_barrier_init (&mc_barrier, NULL, 2);
+
+  thrs[0] = pthread_self ();
+  thr_data[0] = 1;
+
+  /* Create two bogus thread handles.  */
+  memset (&thrs[NTHR], 0, sizeof (pthread_t));
+  memset (&thrs[NTHR + 1], 0xaa, sizeof (pthread_t));
+
+  for (i = 1; i < NTHR; i++)
+    {
+      thr_data[i] = i + 1;
+
+      pthread_create (&thrs[i], NULL, do_work, &thr_data[i]);
+      pthread_barrier_wait (&mc_barrier);
+      after_mc_barrier ();
+    }
+
+  for (i = 1; i < NTHR; i++)
+    pthread_join (thrs[i], NULL);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-thrhandle.exp ./gdb/testsuite/gdb.python/py-thrhandle.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-thrhandle.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-thrhandle.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,106 @@
+# Copyright (C) 2017-2018 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/>.
+
+# Please email any bugs, comments, and/or additions to this file to:
+# bug-gdb@gnu.org
+
+# This file verifies that gdb.Inferior.thread_from_thread_handle works
+# as expected.
+
+standard_testfile
+
+
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable debug] != "" } {
+    return -1
+}
+
+clean_restart ${binfile}
+
+# Skip all tests if Python scripting is not enabled.
+if { [skip_python_tests] } { continue }
+
+runto_main
+
+gdb_test "break after_mc_barrier" \
+    "Breakpoint 2 at .*: file .*${srcfile}, line .*" \
+         "breakpoint on after_mc_barrier"
+
+gdb_test "break do_something" \
+    "Breakpoint 3 at .*: file .*${srcfile}, line .*" \
+         "breakpoint on do_something"
+
+gdb_test "continue" \
+	"Breakpoint 2, after_mc_barrier .*" \
+	"run to after_mc_barrier"
+
+gdb_test_no_output "del 2" "delete after_mc_barrier breakpoint"
+
+gdb_test "continue" \
+	"Breakpoint 3, do_something .*" \
+	"run to do_something"
+
+# The test case has been constructed so that the current thread,
+# indicated by '*' in the "info threads" output, should be stopped in
+# do_something() with a value of n which is the same as the number
+# reported in the "Id" column.  If it's not, then something went wrong
+# with the start up sequence which should cause the main thread to be
+# thread 1, the first child thread to be thread 2, and the second
+# child thread to be thread 3.
+#
+# Note that \1 in the RE below is a backreference to the thread id
+# reported in the "Id" column.
+
+gdb_test "info threads"  \
+	{.*[\r\n]+\* +([0-9]+) +Thread[^\r\n]* do_something \(n=\1\) at.*}
+
+# Check for expected results when passing a valid thread handle to
+# thread_from_thread_handle().
+
+gdb_test "python print(gdb.selected_inferior().thread_from_thread_handle(gdb.parse_and_eval('thrs\[0\]')).num)" \
+	"1" "print thread id for thrs\[0\]"
+
+gdb_test "python print(gdb.selected_inferior().thread_from_thread_handle(gdb.parse_and_eval('thrs\[1\]')).num)" \
+	"2" "print thread id for thrs\[1\]"
+
+gdb_test "python print(gdb.selected_inferior().thread_from_thread_handle(gdb.parse_and_eval('thrs\[2\]')).num)" \
+	"3" "print thread id for thrs\[2\]"
+
+# Objects which are of the correct size, but which are bogus thread
+# handles should return None.  For the first test (using thrs[3]), we
+# use 0.  For the second (thrs[4]), we use an unlikely bit pattern.
+
+gdb_test "python print(gdb.selected_inferior().thread_from_thread_handle(gdb.parse_and_eval('thrs\[3\]')))" \
+	"None" "print thread for bogus handle thrs\[3\]"
+
+gdb_test "python print(gdb.selected_inferior().thread_from_thread_handle(gdb.parse_and_eval('thrs\[4\]')))" \
+	"None" "print thread for bogus handle thrs\[4\]"
+
+# We should see an exception when passing an object of the wrong type.
+
+gdb_test "python print(gdb.selected_inferior().thread_from_thread_handle(gdb.lookup_symbol('main')))" \
+         ".*TypeError: Argument 'handle_obj' must be a thread handle object.*" \
+	 "TypeError when passing a symbol object to thread_from_thread_handle"
+
+# We should see an exception when passing too large of an object.
+
+gdb_test "python print(gdb.selected_inferior().thread_from_thread_handle(gdb.parse_and_eval('thrs')))" \
+         ".*Thread handle size mismatch.*" \
+	 "Pass overly large object to thread_from_thread_handle"
+
+# We should see an exception when passing too small of an object.
+
+gdb_test "python print(gdb.selected_inferior().thread_from_thread_handle(gdb.parse_and_eval('\"S\"')))" \
+         ".*Thread handle size mismatch.*" \
+	 "Pass too small of an object to thread_from_thread_handle"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-type.c ./gdb/testsuite/gdb.python/py-type.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-type.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-type.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-type.exp ./gdb/testsuite/gdb.python/py-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-type.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-type.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-typeprint.cc ./gdb/testsuite/gdb.python/py-typeprint.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-typeprint.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-typeprint.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-typeprint.exp ./gdb/testsuite/gdb.python/py-typeprint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-typeprint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-typeprint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-typeprint.py ./gdb/testsuite/gdb.python/py-typeprint.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-typeprint.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-typeprint.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-unwind.c ./gdb/testsuite/gdb.python/py-unwind.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-unwind.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-unwind.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-unwind.exp ./gdb/testsuite/gdb.python/py-unwind.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-unwind.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-unwind.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 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
@@ -20,7 +20,12 @@ load_lib gdb-python.exp
 
 standard_testfile
 
-if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
+# Stack protection can make the stack look a bit different, breaking the
+# assumptions this test has about its layout.
+
+set flags "additional_flags=-fno-stack-protector"
+
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} "debug $flags"] } {
     return -1
 }
 
@@ -51,4 +56,5 @@ gdb_test_sequence "where"  "Backtrace re
     "\\r\\n#2 .* main \\(.*\\) at"
 }
 
-
+# Check that the Python unwinder frames can be flushed / released.
+gdb_test "flushregs" "Register cache flushed\\." "flush frames"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-unwind-maint.c ./gdb/testsuite/gdb.python/py-unwind-maint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-unwind-maint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-unwind-maint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-unwind-maint.exp ./gdb/testsuite/gdb.python/py-unwind-maint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-unwind-maint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-unwind-maint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-unwind-maint.py ./gdb/testsuite/gdb.python/py-unwind-maint.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-unwind-maint.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-unwind-maint.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-unwind.py ./gdb/testsuite/gdb.python/py-unwind.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-unwind.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-unwind.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-value.c ./gdb/testsuite/gdb.python/py-value.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-value.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-value.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-value-cc.cc ./gdb/testsuite/gdb.python/py-value-cc.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-value-cc.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-value-cc.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-value-cc.exp ./gdb/testsuite/gdb.python/py-value-cc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-value-cc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-value-cc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-value.exp ./gdb/testsuite/gdb.python/py-value.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-value.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-value.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-xmethods.cc ./gdb/testsuite/gdb.python/py-xmethods.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-xmethods.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-xmethods.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-xmethods.exp ./gdb/testsuite/gdb.python/py-xmethods.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-xmethods.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-xmethods.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-xmethods.py ./gdb/testsuite/gdb.python/py-xmethods.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/py-xmethods.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-xmethods.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/source1 ./gdb/testsuite/gdb.python/source1
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/source1	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/source1	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 #  This testcase is part of GDB, the GNU debugger.
 
-#  Copyright 2008-2017 Free Software Foundation, Inc.
+#  Copyright 2008-2018 Free Software Foundation, Inc.
 
 #  This program is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/source2.py ./gdb/testsuite/gdb.python/source2.py
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.python/source2.py	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.python/source2.py	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 #  This testcase is part of GDB, the GNU debugger.
 
-#  Copyright 2008-2017 Free Software Foundation, Inc.
+#  Copyright 2008-2018 Free Software Foundation, Inc.
 
 #  This program is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.c ./gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp ./gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.S ./gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/break-precsave.exp ./gdb/testsuite/gdb.reverse/break-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/break-precsave.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/break-precsave.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2008-2017 Free Software Foundation, Inc.
+#   Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/break-reverse.c ./gdb/testsuite/gdb.reverse/break-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/break-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/break-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/break-reverse.exp ./gdb/testsuite/gdb.reverse/break-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/break-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/break-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2008-2017 Free Software Foundation, Inc.
+#   Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/consecutive-precsave.exp ./gdb/testsuite/gdb.reverse/consecutive-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/consecutive-precsave.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/consecutive-precsave.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2008-2017 Free Software Foundation, Inc.
+#   Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/consecutive-reverse.c ./gdb/testsuite/gdb.reverse/consecutive-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/consecutive-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/consecutive-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/consecutive-reverse.exp ./gdb/testsuite/gdb.reverse/consecutive-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/consecutive-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/consecutive-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2008-2017 Free Software Foundation, Inc.
+#   Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/finish-precsave.exp ./gdb/testsuite/gdb.reverse/finish-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/finish-precsave.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/finish-precsave.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp ./gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/finish-reverse.c ./gdb/testsuite/gdb.reverse/finish-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/finish-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/finish-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/finish-reverse.exp ./gdb/testsuite/gdb.reverse/finish-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/finish-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/finish-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/fstatat-reverse.c ./gdb/testsuite/gdb.reverse/fstatat-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/fstatat-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/fstatat-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/fstatat-reverse.exp ./gdb/testsuite/gdb.reverse/fstatat-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/fstatat-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/fstatat-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/getresuid-reverse.c ./gdb/testsuite/gdb.reverse/getresuid-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/getresuid-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/getresuid-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/getresuid-reverse.exp ./gdb/testsuite/gdb.reverse/getresuid-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/getresuid-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/getresuid-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/i386-precsave.exp ./gdb/testsuite/gdb.reverse/i386-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/i386-precsave.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/i386-precsave.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/i386-reverse.c ./gdb/testsuite/gdb.reverse/i386-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/i386-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/i386-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/i386-reverse.exp ./gdb/testsuite/gdb.reverse/i386-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/i386-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/i386-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/i386-sse-reverse.c ./gdb/testsuite/gdb.reverse/i386-sse-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/i386-sse-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/i386-sse-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/i386-sse-reverse.exp ./gdb/testsuite/gdb.reverse/i386-sse-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/i386-sse-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/i386-sse-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -200,7 +200,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "orpd.*" "reverse-step to orpd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0000000000000000fff80000ffc00000.*" \
+    "xmm0 .*uint128 = 0xfff80000ffc00000.*" \
     "verify xmm0 after reverse orps"
 
 gdb_test "info register xmm1" \
@@ -214,7 +214,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "mulss.*" "reverse-step to mulss"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0000000000000000fff80000ffc00000.*" \
+    "xmm0 .*uint128 = 0xfff80000ffc00000.*" \
     "verify xmm0 after reverse orpd"
 
 gdb_test "info register xmm1" \
@@ -228,7 +228,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "mulsd.*" "reverse-step to mulsd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0000000000000000fff80000ffc00000.*" \
+    "xmm0 .*uint128 = 0xfff80000ffc00000.*" \
     "verify xmm0 after reverse mulss"
 
 gdb_test "info register xmm1" \
@@ -242,7 +242,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "mulps.*" "reverse-step to mulps"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0000000000000000fff80000ffc00000.*" \
+    "xmm0 .*uint128 = 0xfff80000ffc00000.*" \
     "verify xmm0 after reverse mulsd"
 
 gdb_test "info register xmm1" \
@@ -256,7 +256,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "mulpd.*" "reverse-step to mulpd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0000000000000000fff80000ffc00000.*" \
+    "xmm0 .*uint128 = 0xfff80000ffc00000.*" \
     "verify xmm0 after reverse mulps"
 
 gdb_test "info register xmm1" \
@@ -270,7 +270,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "divss.*" "reverse-step to divss"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0000000000000000fff80000ffc00000.*" \
+    "xmm0 .*uint128 = 0xfff80000ffc00000.*" \
     "verify xmm0 after reverse mulpd"
 
 gdb_test "info register xmm1" \
@@ -284,7 +284,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "divsd.*" "reverse-step to divsd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x00000000000000008000000080000000.*" \
+    "xmm0 .*uint128 = 0x8000000080000000.*" \
     "verify xmm0 after reverse divss"
 
 gdb_test "info register xmm1" \
@@ -298,11 +298,11 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "divps.*" "reverse-step to divps"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x00000000000000008000000080000000.*" \
+    "xmm0 .*uint128 = 0x8000000080000000.*" \
     "verify xmm0 after reverse divsd"
 
 gdb_test "info register xmm1" \
-    "xmm1 .*uint128 = 0x00000000000000000000000080000000.*" \
+    "xmm1 .*uint128 = 0x80000000.*" \
     "verify xmm1 after reverse divsd"
 
 gdb_test "info register xmm2" \
@@ -312,11 +312,11 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "divpd.*" "reverse-step to divpd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x00000000000000008000000080000000.*" \
+    "xmm0 .*uint128 = 0x8000000080000000.*" \
     "verify xmm0 after reverse divps"
 
 gdb_test "info register xmm1" \
-    "xmm1 .*uint128 = 0x00000000000000000000000080000000.*" \
+    "xmm1 .*uint128 = 0x80000000.*" \
     "verify xmm1 after reverse divps"
 
 gdb_test "info register xmm2" \
@@ -326,7 +326,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "cvtpd2ps.*" "reverse-step to cvtpd2ps"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x00000000000000008000000080000000.*" \
+    "xmm0 .*uint128 = 0x8000000080000000.*" \
     "verify xmm0 after reverse divpd"
 
 gdb_test "info register xmm1" \
@@ -340,7 +340,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "cvtpd2dq.*" "reverse-step to cvtpd2dq"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a090807060504ffffffff.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a090807060504ffffffff.*" \
     "verify xmm0 after reverse cvtpd2ps"
 
 gdb_test "info register xmm1" \
@@ -354,11 +354,11 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "cvtdq2ps.*" "reverse-step to cvtdq2ps"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a090807060504ffffffff.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a090807060504ffffffff.*" \
     "verify xmm0 after reverse cvtpd2dq"
 
 gdb_test "info register xmm1" \
-    "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \
+    "xmm1 .*uint128 = 0xffffffffffffffff.*" \
     "verify xmm1 after reverse cvtpd2dq"
 
 gdb_test "info register xmm2" \
@@ -368,11 +368,11 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "cvtdq2pd.*" "reverse-step to cvtdq2pd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a090807060504ffffffff.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a090807060504ffffffff.*" \
     "verify xmm0 after reverse cvtdq2ps"
 
 gdb_test "info register xmm1" \
-    "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \
+    "xmm1 .*uint128 = 0xffffffffffffffff.*" \
     "verify xmm1 after reverse cvtdq2ps"
 
 gdb_test "info register xmm2" \
@@ -382,11 +382,11 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "comiss.*" "reverse-step to comiss"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a090807060504ffffffff.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a090807060504ffffffff.*" \
     "verify xmm0 after reverse cvtdq2pd"
 
 gdb_test "info register xmm1" \
-    "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \
+    "xmm1 .*uint128 = 0xffffffffffffffff.*" \
     "verify xmm1 after reverse cvtdq2pd"
 
 gdb_test "info register xmm2" \
@@ -396,11 +396,11 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "comisd.*" "reverse-step to comisd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a090807060504ffffffff.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a090807060504ffffffff.*" \
     "verify xmm0 after reverse comiss"
 
 gdb_test "info register xmm1" \
-    "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \
+    "xmm1 .*uint128 = 0xffffffffffffffff.*" \
     "verify xmm1 after reverse comiss"
 
 gdb_test "info register xmm2" \
@@ -410,11 +410,11 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "cmpss.*" "reverse-step to cmpss"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050423222120.*" \
     "verify xmm0 after reverse comisd"
 
 gdb_test "info register xmm1" \
-    "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \
+    "xmm1 .*uint128 = 0xffffffffffffffff.*" \
     "verify xmm1 after reverse comisd"
 
 gdb_test "info register xmm2" \
@@ -424,11 +424,11 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "cmpsd.*" "reverse-step to cmpsd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050423222120.*" \
     "verify xmm0 after reverse cmpss"
 
 gdb_test "info register xmm1" \
-    "xmm1 .*uint128 = 0x00000000000000000000000000000000.*" \
+    "xmm1 .*uint128 = 0x.*" \
     "verify xmm1 after reverse cmpss"
 
 gdb_test "info register xmm2" \
@@ -438,35 +438,35 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "cmpps.*" "reverse-step to cmpps"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050423222120.*" \
     "verify xmm0 after reverse cmpsd"
 
 gdb_test "info register xmm1" \
-    "xmm1 .*uint128 = 0x00000000000000000000000000000000.*" \
+    "xmm1 .*uint128 = 0x.*" \
     "verify xmm1 after reverse cmpsd"
 
 gdb_test "info register xmm2" \
-    "xmm2 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \
+    "xmm2 .*uint128 = 0xf0e0d0c0b0a09082726252400000000.*" \
     "verify xmm2 after reverse cmpsd"
 
 gdb_test "reverse-step" "cmppd.*" "reverse-step to cmppd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050423222120.*" \
     "verify xmm0 after reverse cmpps"
 
 gdb_test "info register xmm1" \
-    "xmm1 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \
+    "xmm1 .*uint128 = 0xf0e0d0c0b0a09082726252400000000.*" \
     "verify xmm1 after reverse cmpps"
 
 gdb_test "info register xmm2" \
-    "xmm2 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \
+    "xmm2 .*uint128 = 0xf0e0d0c0b0a09082726252400000000.*" \
     "verify xmm2 after reverse cmpps"
 
 gdb_test "reverse-step" "andps.*" "reverse-step to andps"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050423222120.*" \
     "verify xmm0 after reverse cmppd"
 
 gdb_test "info register xmm1" \
@@ -474,13 +474,13 @@ gdb_test "info register xmm1" \
     "verify xmm1 after reverse cmppd"
 
 gdb_test "info register xmm2" \
-    "xmm2 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \
+    "xmm2 .*uint128 = 0xf0e0d0c0b0a09082726252400000000.*" \
     "verify xmm2 after reverse cmppd"
 
 gdb_test "reverse-step" "andpd.*" "reverse-step to andpd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050423222120.*" \
     "verify xmm0 after reverse andps"
 
 gdb_test "info register xmm1" \
@@ -494,7 +494,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "addsubps.*" "reverse-step to addsubps"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050423222120.*" \
     "verify xmm0 after reverse andpd"
 
 gdb_test "info register xmm1" \
@@ -508,7 +508,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "addsubpd.*" "reverse-step to addsubpd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050423222120.*" \
     "verify xmm0 after reverse addsubps"
 
 gdb_test "info register xmm1" \
@@ -522,7 +522,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "addss.*" "reverse-step to addss"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050403020100.*" \
     "verify xmm0 after reverse addsubpd"
 
 gdb_test "info register xmm1" \
@@ -536,7 +536,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "addsd.*" "reverse-step to addsd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050403020100.*" \
     "verify xmm0 after reverse addss"
 
 gdb_test "info register xmm1" \
@@ -550,7 +550,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "addps.*" "reverse-step to addps"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050403020100.*" \
     "verify xmm0 after reverse addsd"
 
 gdb_test "info register xmm1" \
@@ -564,7 +564,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "addpd.*" "reverse-step to addpd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050403020100.*" \
     "verify xmm0 after reverse addps"
 
 gdb_test "info register xmm1" \
@@ -612,7 +612,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "pabsd.*" "reverse-step to pabsd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050403020100.*" \
     "verify xmm0 after reverse pabsd"
 
 gdb_test "info register xmm1" \
@@ -626,7 +626,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "pabsw.*" "reverse-step to pabsw"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050403020100.*" \
     "verify xmm0 after reverse pabsw"
 
 gdb_test "info register xmm1" \
@@ -640,7 +640,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "pabsb.*" "reverse-step to pabsb"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050403020100.*" \
     "verify xmm0 after reverse pabsb"
 
 gdb_test "info register xmm1" \
@@ -676,7 +676,7 @@ gdb_test_multiple "continue" $test {
 gdb_test "reverse-step" "blendvps.*" "reverse-step to blendvps"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09082726252413121110.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09082726252413121110.*" \
     "verify xmm0 at end of sse4_test"
 
 gdb_test "info register xmm1" \
@@ -690,7 +690,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "blendvpd.*" "reverse-step to blendvpd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09082726252413121110.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09082726252413121110.*" \
     "verify xmm0 after reverse blendvps"
 
 gdb_test "info register xmm1" \
@@ -704,7 +704,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "blendps.*" "reverse-step to blendps"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09081716151413121110.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09081716151413121110.*" \
     "verify xmm0 after reverse blendvpd"
 
 gdb_test "info register xmm1" \
@@ -718,7 +718,7 @@ gdb_test "info register xmm2" \
 gdb_test "reverse-step" "blendpd.*" "reverse-step to blendpd"
 
 gdb_test "info register xmm0" \
-    "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \
+    "xmm0 .*uint128 = 0xf0e0d0c0b0a09080706050403020100.*" \
     "verify xmm0 after reverse blendps"
 
 gdb_test "info register xmm1" \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/i387-env-reverse.exp ./gdb/testsuite/gdb.reverse/i387-env-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/i387-env-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/i387-env-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/i387-stack-reverse.exp ./gdb/testsuite/gdb.reverse/i387-stack-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/i387-stack-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/i387-stack-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/insn-reverse-aarch64.c ./gdb/testsuite/gdb.reverse/insn-reverse-aarch64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/insn-reverse-aarch64.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/insn-reverse-aarch64.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/insn-reverse-arm.c ./gdb/testsuite/gdb.reverse/insn-reverse-arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/insn-reverse-arm.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/insn-reverse-arm.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/insn-reverse.c ./gdb/testsuite/gdb.reverse/insn-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/insn-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/insn-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/insn-reverse.exp ./gdb/testsuite/gdb.reverse/insn-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/insn-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/insn-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/insn-reverse-x86.c ./gdb/testsuite/gdb.reverse/insn-reverse-x86.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/insn-reverse-x86.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/insn-reverse-x86.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2017 Free Software Foundation, Inc.
+   Copyright 2017-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/machinestate.c ./gdb/testsuite/gdb.reverse/machinestate.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/machinestate.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/machinestate.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/machinestate.exp ./gdb/testsuite/gdb.reverse/machinestate.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/machinestate.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/machinestate.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/machinestate-precsave.exp ./gdb/testsuite/gdb.reverse/machinestate-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/machinestate-precsave.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/machinestate-precsave.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/ms1.c ./gdb/testsuite/gdb.reverse/ms1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/ms1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/ms1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp ./gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/pipe-reverse.c ./gdb/testsuite/gdb.reverse/pipe-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/pipe-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/pipe-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/pipe-reverse.exp ./gdb/testsuite/gdb.reverse/pipe-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/pipe-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/pipe-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/readv-reverse.c ./gdb/testsuite/gdb.reverse/readv-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/readv-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/readv-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/readv-reverse.exp ./gdb/testsuite/gdb.reverse/readv-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/readv-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/readv-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/recvmsg-reverse.c ./gdb/testsuite/gdb.reverse/recvmsg-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/recvmsg-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/recvmsg-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/recvmsg-reverse.exp ./gdb/testsuite/gdb.reverse/recvmsg-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/recvmsg-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/recvmsg-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/rerun-prec.c ./gdb/testsuite/gdb.reverse/rerun-prec.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/rerun-prec.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/rerun-prec.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/rerun-prec.exp ./gdb/testsuite/gdb.reverse/rerun-prec.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/rerun-prec.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/rerun-prec.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/s390-mvcle.c ./gdb/testsuite/gdb.reverse/s390-mvcle.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/s390-mvcle.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/s390-mvcle.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/s390-mvcle.exp ./gdb/testsuite/gdb.reverse/s390-mvcle.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/s390-mvcle.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/s390-mvcle.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/shr1.c ./gdb/testsuite/gdb.reverse/shr1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/shr1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/shr1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/shr2.c ./gdb/testsuite/gdb.reverse/shr2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/shr2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/shr2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/shr.h ./gdb/testsuite/gdb.reverse/shr.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/shr.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/shr.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/sigall-precsave.exp ./gdb/testsuite/gdb.reverse/sigall-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/sigall-precsave.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/sigall-precsave.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2009-2017 Free Software Foundation, Inc.
+#   Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/sigall-reverse.c ./gdb/testsuite/gdb.reverse/sigall-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/sigall-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/sigall-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/sigall-reverse.exp ./gdb/testsuite/gdb.reverse/sigall-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/sigall-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/sigall-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2009-2017 Free Software Foundation, Inc.
+#   Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/singlejmp-reverse.c ./gdb/testsuite/gdb.reverse/singlejmp-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/singlejmp-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/singlejmp-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/singlejmp-reverse.exp ./gdb/testsuite/gdb.reverse/singlejmp-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/singlejmp-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/singlejmp-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.c ./gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.S ./gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/singlejmp-reverse.S ./gdb/testsuite/gdb.reverse/singlejmp-reverse.S
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/singlejmp-reverse.S	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/singlejmp-reverse.S	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/solib-precsave.exp ./gdb/testsuite/gdb.reverse/solib-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/solib-precsave.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/solib-precsave.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/solib-reverse.c ./gdb/testsuite/gdb.reverse/solib-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/solib-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/solib-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/solib-reverse.exp ./gdb/testsuite/gdb.reverse/solib-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/solib-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/solib-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/step-precsave.exp ./gdb/testsuite/gdb.reverse/step-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/step-precsave.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/step-precsave.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/step-reverse.c ./gdb/testsuite/gdb.reverse/step-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/step-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/step-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/step-reverse.exp ./gdb/testsuite/gdb.reverse/step-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/step-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/step-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/time-reverse.c ./gdb/testsuite/gdb.reverse/time-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/time-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/time-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/time-reverse.exp ./gdb/testsuite/gdb.reverse/time-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/time-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/time-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/until-precsave.exp ./gdb/testsuite/gdb.reverse/until-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/until-precsave.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/until-precsave.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/until-reverse.c ./gdb/testsuite/gdb.reverse/until-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/until-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/until-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/until-reverse.exp ./gdb/testsuite/gdb.reverse/until-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/until-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/until-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/ur1.c ./gdb/testsuite/gdb.reverse/ur1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/ur1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/ur1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1992-2017 Free Software Foundation, Inc.
+   Copyright 1992-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/waitpid-reverse.c ./gdb/testsuite/gdb.reverse/waitpid-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/waitpid-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/waitpid-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/waitpid-reverse.exp ./gdb/testsuite/gdb.reverse/waitpid-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/waitpid-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/waitpid-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/watch-precsave.exp ./gdb/testsuite/gdb.reverse/watch-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/watch-precsave.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/watch-precsave.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/watch-reverse.c ./gdb/testsuite/gdb.reverse/watch-reverse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/watch-reverse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/watch-reverse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/watch-reverse.exp ./gdb/testsuite/gdb.reverse/watch-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.reverse/watch-reverse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/watch-reverse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/expr.exp ./gdb/testsuite/gdb.rust/expr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/expr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/expr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/generics.exp ./gdb/testsuite/gdb.rust/generics.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/generics.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/generics.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/generics.rs ./gdb/testsuite/gdb.rust/generics.rs
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/generics.rs	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/generics.rs	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-// Copyright (C) 2016-2017 Free Software Foundation, Inc.
+// Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/methods.exp ./gdb/testsuite/gdb.rust/methods.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/methods.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/methods.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/methods.rs ./gdb/testsuite/gdb.rust/methods.rs
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/methods.rs	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/methods.rs	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-// Copyright (C) 2016-2017 Free Software Foundation, Inc.
+// Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/modules.exp ./gdb/testsuite/gdb.rust/modules.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/modules.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/modules.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -35,16 +35,18 @@ if {![runto ${srcfile}:$line]} {
 # https://github.com/rust-lang/rust/issues/33121
 # gdb_test "call f2()" "lambda f2"
 
-gdb_test "call f3()" "mod1::inner::innest::f3"
-gdb_test "call self::f2()" "mod1::inner::innest::f2"
-gdb_test "call self::super::f2()" "mod1::inner::f2"
-gdb_test "call super::f2()" "mod1::inner::f2"
-gdb_test "call self::super::super::f2()" "mod1::f2"
-gdb_test "call super::super::f2()" "mod1::f2"
-gdb_test "call ::f2()" "::f2"
+if ![target_info exists gdb,noinferiorio] {
+    gdb_test_stdio "call f3()" "mod1::inner::innest::f3"
+    gdb_test_stdio "call self::f2()" "mod1::inner::innest::f2"
+    gdb_test_stdio "call self::super::f2()" "mod1::inner::f2"
+    gdb_test_stdio "call super::f2()" "mod1::inner::f2"
+    gdb_test_stdio "call self::super::super::f2()" "mod1::f2"
+    gdb_test_stdio "call super::super::f2()" "mod1::f2"
+    gdb_test_stdio "call ::f2()" "::f2"
+    gdb_test_stdio "call extern modules::mod1::f2()" "mod1::f2"
+}
 gdb_test "call super::super::super::f2()" \
     "Too many super:: uses from 'modules::mod1::inner::innest'"
-gdb_test "call extern modules::mod1::f2()" "mod1::f2"
 
 gdb_test_sequence "ptype ::Generic::<::Generic<::Type> >" "" {
     "type = struct modules::Generic<modules::Generic<modules::Type>> \\("
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/modules.rs ./gdb/testsuite/gdb.rust/modules.rs
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/modules.rs	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/modules.rs	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-// Copyright (C) 2016-2017 Free Software Foundation, Inc.
+// Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/simple.exp ./gdb/testsuite/gdb.rust/simple.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/simple.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/simple.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 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
@@ -55,6 +55,8 @@ gdb_test "print *(&c as &i32)" " = 0"
 gdb_test "print *(&c as *const i32)" " = 0"
 gdb_test "print *(&c as *mut i32)" " = 0"
 
+gdb_test "print/c f\[0\]" " = 104 'h'"
+
 gdb_test "print j" " = simple::Unit"
 gdb_test "ptype j" " = struct simple::Unit"
 gdb_test "print j2" " = simple::Unit"
@@ -62,6 +64,10 @@ gdb_test "ptype j2" " = struct simple::U
 gdb_test "print simple::Unit" " = simple::Unit"
 gdb_test "print simple::Unit{}" " = simple::Unit"
 
+gdb_test "print f" " = \"hi bob\""
+gdb_test "print fslice" " = \"bob\""
+gdb_test "print &f\[3..\]" " = \"bob\""
+
 gdb_test "print g" " = \\(u8 \\(\\*\\)\\\[6\\\]\\) $hex b\"hi bob\""
 gdb_test "ptype g" " = u8 \\(\\*\\)\\\[6\\\]"
 
@@ -83,6 +89,25 @@ gdb_test "print fromslice" " = 3"
 gdb_test "print slice\[0\]" " = 3"
 gdb_test "print slice as &\[i32\]\[0\]" " = 3"
 
+gdb_test_sequence "ptype slice" "" {
+    " = struct &\\\[i32\\\] \\{"
+    "  data_ptr: i32 \\*,"
+    "  length: usize,"
+    "\\}"
+}
+gdb_test_sequence "ptype &slice\[..\]" "" {
+    " = struct &\\\[i32\\\] \\{"
+    "  data_ptr: i32 \\*,"
+    "  length: usize,"
+    "\\}"
+}
+gdb_test_sequence "ptype &b\[..\]" "" {
+    " = struct &\\\[\\*gdb\\*\\\] \\{"
+    "  data_ptr: i32 \\*,"
+    "  length: usize,"
+    "\\}"
+}
+
 gdb_test "print x" " = \\(23, 25\\.5\\)"
 gdb_test "ptype x" " = \\(i32, f64\\)"
 gdb_test "print x as (i32,f64)" " = \\(23, 25\\.5\\)"
@@ -135,6 +160,9 @@ gdb_test "print simple::ByeBob\{field1: 
 
 gdb_test "print simple::HiBob(0xff, 5)" \
     "Type simple::HiBob is not a tuple struct"
+gdb_test "print sizeof(simple::HiBob)" " = \[0-9\]+"
+gdb_test "print simple::HiBob + 5" \
+    "Found type 'simple::HiBob', which can't be evaluated in this context"
 gdb_test "print nosuchsymbol" \
     "No symbol 'nosuchsymbol' in current context"
 
@@ -176,13 +204,9 @@ gdb_test "ptype empty" "fn \\(\\)"
 
 gdb_test "print (diff2 as fn(i32, i32) -> i32)(19, -2)" " = 21"
 
-# We need the ".*" because currently we don't extract the length and
-# use it to intelligently print the string data.
-gdb_test "print \"hello rust\"" \
-    " = &str \\{data_ptr: $hex \"hello rust.*\", length: 10\\}"
+gdb_test "print \"hello rust\"" " = \"hello rust.*\""
 gdb_test "print \"hello" "Unexpected EOF in string"
-gdb_test "print r##\"hello \" rust\"##" \
-    " = &str \\{data_ptr: $hex \"hello \\\\\" rust.*\", length: 12\\}"
+gdb_test "print r##\"hello \" rust\"##" " = \"hello \\\\\" rust.*\""
 gdb_test "print r\"hello" "Unexpected EOF in string"
 gdb_test "print r###\"###hello\"" "Unexpected EOF in string"
 gdb_test "print r###\"###hello\"##" "Unexpected EOF in string"
@@ -194,14 +218,14 @@ gdb_test "print 5.." " = .*::ops::RangeF
 gdb_test "print .." " = .*::ops::RangeFull"
 
 gdb_test "print str_some" \
-    " = core::option::Option<collections::string::String>::Some\\(collections::string::String .*"
-gdb_test "print str_none" " = core::option::Option<collections::string::String>::None"
+    " = core::option::Option<\[a-z\]+::string::String>::Some\\(\[a-z\]+::string::String .*"
+gdb_test "print str_none" " = core::option::Option<\[a-z\]+::string::String>::None"
 gdb_test "print int_some" " = core::option::Option::Some\\(1\\)"
 gdb_test "print int_none" " = core::option::Option::None"
-gdb_test "print box_some" " = core::option::Option<Box<u8>>::Some\\(.*\\)"
-gdb_test "print box_none" " = core::option::Option<Box<u8>>::None"
+gdb_test "print box_some" " = core::option::Option<\[a-z:\]*Box<u8>>::Some\\(.*\\)"
+gdb_test "print box_none" " = core::option::Option<\[a-z:\]*Box<u8>>::None"
 gdb_test "print custom_some" \
-    " = simple::NonZeroOptimized::Value\\(collections::string::String .*"
+    " = simple::NonZeroOptimized::Value\\(\[a-z\]+::string::String .*"
 gdb_test "print custom_none" " = simple::NonZeroOptimized::Empty"
 
 proc test_one_slice {svar length base range} {
@@ -241,8 +265,16 @@ gdb_test "print (1)" " = 1"
 gdb_test "print 23..97.0" "Range expression with different types"
 
 gdb_test "print (*parametrized.next.val)" \
-    " = simple::ParametrizedStruct<i32> {next: simple::ParametrizedEnum<Box<simple::ParametrizedStruct<i32>>>::Empty, value: 1}"
+    " = simple::ParametrizedStruct<i32> {next: simple::ParametrizedEnum<\[a-z:\]*Box<simple::ParametrizedStruct<i32>>>::Empty, value: 1}"
 gdb_test "print parametrized.next.val" \
     " = \\(simple::ParametrizedStruct<i32> \\*\\) $hex"
 gdb_test "print parametrized" \
-    " = simple::ParametrizedStruct<i32> \\{next: simple::ParametrizedEnum<Box<simple::ParametrizedStruct<i32>>>::Val\\{val: $hex\\}, value: 0\\}"
+    " = simple::ParametrizedStruct<i32> \\{next: simple::ParametrizedEnum<\[a-z:\]*Box<simple::ParametrizedStruct<i32>>>::Val\\{val: $hex\\}, value: 0\\}"
+
+
+load_lib gdb-python.exp
+if {[skip_python_tests]} {
+    continue
+}
+
+gdb_test "python print(gdb.lookup_type('simple::HiBob'))" "simple::HiBob"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/simple.rs ./gdb/testsuite/gdb.rust/simple.rs
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/simple.rs	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/simple.rs	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-// Copyright (C) 2016-2017 Free Software Foundation, Inc.
+// Copyright (C) 2016-2018 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
@@ -95,6 +95,8 @@ fn main () {
     let g = b"hi bob";
     let h = b'9';
 
+    let fslice = &f[3..];
+
     let i = ["whatever"; 8];
 
     let j = Unit;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/traits.exp ./gdb/testsuite/gdb.rust/traits.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/traits.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/traits.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,47 @@
+# Copyright (C) 2017-2018 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 trait object printing.
+
+load_lib rust-support.exp
+if {[skip_rust_tests]} {
+    continue
+}
+
+standard_testfile .rs
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug rust}]} {
+    return -1
+}
+
+set readelf_program [gdb_find_readelf]
+set result [catch "exec $readelf_program --debug-dump=info $binfile" output]
+if {$result != 0} {
+    untested "could not read ${binfile} with readelf"
+    return
+}
+
+if {![regexp DW_AT_containing_type $output]} {
+    untested "Rust compiler did not emit DW_AT_containing_type"
+    return
+}
+
+set line [gdb_get_line_number "set breakpoint here"]
+if {![runto ${srcfile}:$line]} {
+    untested "could not run to breakpoint"
+    return -1
+}
+
+gdb_test "print *td" " = 23.5"
+gdb_test "print *tu" " = 23"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/traits.rs ./gdb/testsuite/gdb.rust/traits.rs
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/traits.rs	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/traits.rs	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,37 @@
+// Copyright (C) 2017-2018 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/>.
+
+#![allow(dead_code)]
+#![allow(unused_variables)]
+#![allow(unused_assignments)]
+
+pub trait T {
+}
+
+impl T for f64 {
+}
+
+impl T for u8 {
+}
+
+pub fn main() {
+    let d = 23.5f64;
+    let u = 23u8;
+
+    let td = &d as &T;
+    let tu = &u as &T;
+
+    println!("");               // set breakpoint here
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/unsized.exp ./gdb/testsuite/gdb.rust/unsized.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/unsized.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/unsized.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,35 @@
+# Copyright (C) 2017-2018 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 expression parsing and evaluation that requires Rust compiler.
+
+load_lib rust-support.exp
+if {[skip_rust_tests]} {
+    continue
+}
+
+standard_testfile .rs
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug rust}]} {
+    return -1
+}
+
+set line [gdb_get_line_number "set breakpoint here"]
+if {![runto ${srcfile}:$line]} {
+    untested "could not run to breakpoint"
+    return -1
+}
+
+gdb_test "ptype *us" \
+    " = struct \[a-z:\]*V<\\\[u8\\\]> {.* data: \\\[u8\\\],.*}"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/unsized.rs ./gdb/testsuite/gdb.rust/unsized.rs
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/unsized.rs	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/unsized.rs	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,33 @@
+// Copyright (C) 2017-2018 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/>.
+
+#![allow(dead_code)]
+#![allow(unused_variables)]
+#![allow(unused_assignments)]
+
+struct V<T: ?Sized> {
+    data: T,
+}
+
+type Unsized = V<[u8]>;
+
+fn ignore<T>(x: T) { }
+
+fn main() {
+    let v: Box<V<[u8; 3]>> = Box::new(V { data: [1, 2, 3] });
+    let us: Box<Unsized> = v;
+
+    ignore(us);     // set breakpoint here
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/watch.exp ./gdb/testsuite/gdb.rust/watch.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/watch.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/watch.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,35 @@
+# Copyright (C) 2017-2018 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 watch -location with Rust.
+
+load_lib rust-support.exp
+if {[skip_rust_tests]} {
+    continue
+}
+
+standard_testfile .rs
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug rust}]} {
+    return -1
+}
+
+set line [gdb_get_line_number "set breakpoint here"]
+if {![runto ${srcfile}:$line]} {
+    untested "could not run to breakpoint"
+    return -1
+}
+
+# Just setting a watchpoint was enough to trigger the bug.
+gdb_test "watch -location y" ".*watchpoint .* -location .*"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/watch.rs ./gdb/testsuite/gdb.rust/watch.rs
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.rust/watch.rs	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/watch.rs	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,24 @@
+// Copyright (C) 2017-2018 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/>.
+
+#![allow(dead_code)]
+#![allow(unused_variables)]
+#![allow(unused_assignments)]
+
+fn main() {
+    let mut y = 7;
+    y = y + 1;                  // set breakpoint here
+    y = y + 1;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/connect-stopped-target.c ./gdb/testsuite/gdb.server/connect-stopped-target.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/connect-stopped-target.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/connect-stopped-target.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/connect-stopped-target.exp ./gdb/testsuite/gdb.server/connect-stopped-target.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/connect-stopped-target.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/connect-stopped-target.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/connect-with-no-symbol-file.c ./gdb/testsuite/gdb.server/connect-with-no-symbol-file.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/connect-with-no-symbol-file.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/connect-with-no-symbol-file.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp ./gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/connect-without-multi-process.c ./gdb/testsuite/gdb.server/connect-without-multi-process.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/connect-without-multi-process.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/connect-without-multi-process.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/connect-without-multi-process.exp ./gdb/testsuite/gdb.server/connect-without-multi-process.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/connect-without-multi-process.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/connect-without-multi-process.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/ext-attach.c ./gdb/testsuite/gdb.server/ext-attach.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/ext-attach.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/ext-attach.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/ext-attach.exp ./gdb/testsuite/gdb.server/ext-attach.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/ext-attach.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/ext-attach.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 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
@@ -68,7 +68,7 @@ gdb_test "attach $testpid" \
     "attach to remote program 2"
 gdb_test "backtrace" ".*main.*" "backtrace 2"
 
-gdb_test "kill" "" "kill" "Kill the program being debugged.*" "y"
+gdb_test "kill" "" "kill" "Kill the program being debugged. .y or n. " "y"
 gdb_test_no_output "monitor exit"
 
 kill_wait_spawned_process $test_spawn_id
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/ext-restart.exp ./gdb/testsuite/gdb.server/ext-restart.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/ext-restart.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/ext-restart.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
@@ -60,6 +60,6 @@ with_test_prefix "restart" {
     }
 }
 
-gdb_test "kill" "" "kill" "Kill the program being debugged.*" "y"
+gdb_test "kill" "" "kill" "Kill the program being debugged. .y or n. " "y"
 
 gdb_test_no_output "monitor exit"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/ext-run.exp ./gdb/testsuite/gdb.server/ext-run.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/ext-run.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/ext-run.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 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
@@ -61,7 +61,7 @@ if { [istarget *-*-linux*] } {
     }
 }
 
-gdb_test "kill" "" "kill" "Kill the program being debugged.*" "y"
+gdb_test "kill" "" "kill" "Kill the program being debugged. .y or n. " "y"
 
 gdb_load $binfile
 gdb_test "monitor help" "The following monitor commands.*" \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/ext-wrapper.exp ./gdb/testsuite/gdb.server/ext-wrapper.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/ext-wrapper.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/ext-wrapper.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
@@ -65,6 +65,6 @@ with_test_prefix "restart" {
     gdb_test "print d" "\\$${decimal} = ${hex} \"1\".*"
 }
 
-gdb_test "kill" "" "kill" "Kill the program being debugged.*" "y"
+gdb_test "kill" "" "kill" "Kill the program being debugged. .y or n. " "y"
 
 gdb_test_no_output "monitor exit"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/file-transfer.exp ./gdb/testsuite/gdb.server/file-transfer.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/file-transfer.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/file-transfer.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # This testcase is part of GDB, the GNU debugger.
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/non-existing-program.exp ./gdb/testsuite/gdb.server/non-existing-program.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/non-existing-program.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/non-existing-program.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
@@ -39,8 +39,16 @@ set spawn_id [remote_spawn target "$gdbs
 set msg "gdbserver exits cleanly"
 set saw_exiting 0
 expect {
-    # This is what we get on ptrace-based targets.
-    -re "stdin/stdout redirected.*No program to debug\r\nExiting\r\n$" {
+    # This is what we get on ptrace-based targets with
+    # startup-with-shell disabled (e.g., when the SHELL variable is
+    # unset).
+    -re "stdin/stdout redirected.*gdbserver: Cannot exec non-existing-program\r\ngdbserver: Error: No such file or directory\r\n\r\nDuring startup program exited with code 127\.\r\nExiting\r\n$" {
+	set saw_exiting 1
+	exp_continue
+    }
+    # Likewise, but with startup-with-shell enabled, which is the
+    # default behaviour.
+    -re "stdin/stdout redirected.*exec: non-existing-program: not found\r\nDuring startup program exited with code 127\.\r\nExiting\r\n$" {
 	set saw_exiting 1
 	exp_continue
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/normal.c ./gdb/testsuite/gdb.server/normal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/normal.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.server/normal.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,24 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2013-2018 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 test is just a normal return 0.  */
+
+int
+main (int argc, char *argv[])
+{
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/no-thread-db.c ./gdb/testsuite/gdb.server/no-thread-db.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/no-thread-db.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/no-thread-db.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    Contributed by Intel Corporation.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/no-thread-db.exp ./gdb/testsuite/gdb.server/no-thread-db.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/no-thread-db.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/no-thread-db.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corporation.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/reconnect-ctrl-c.c ./gdb/testsuite/gdb.server/reconnect-ctrl-c.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/reconnect-ctrl-c.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.server/reconnect-ctrl-c.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,28 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#include <unistd.h>
+
+int
+main ()
+{
+  int secs = 30;
+
+  while (secs--)
+    sleep (1);
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp ./gdb/testsuite/gdb.server/reconnect-ctrl-c.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.server/reconnect-ctrl-c.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,72 @@
+# This testcase is part of GDB, the GNU debugger.
+#
+# Copyright 2017-2018 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 Ctrl-C works after reconnecting.
+
+load_lib gdbserver-support.exp
+
+if { [skip_gdbserver_tests] } {
+    verbose "skipping gdbserver tests"
+    return -1
+}
+
+standard_testfile
+if [prepare_for_testing "failed to prepare" $testfile $srcfile] {
+    return -1
+}
+
+# Make sure we're disconnected, in case we're testing with an
+# extended-remote board, therefore already connected.
+with_test_prefix "preparation" {
+  gdb_test "disconnect" ".*"
+}
+
+# Connect, continue, send Ctrl-C and expect a SIGINT stop.
+
+proc connect_continue_ctrl_c {} {
+    global gdbserver_protocol gdbserver_gdbport
+
+    set res [gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport]
+    if ![gdb_assert {$res == 0} "connect"] {
+	return
+    }
+
+    set test "continue for ctrl-c"
+    gdb_test_multiple "continue" $test {
+	-re "Continuing" {
+	    pass $test
+	}
+    }
+
+    after 1000 {send_gdb "\003"}
+    gdb_test "" "Program received signal SIGINT.*" "stop with control-c"
+}
+
+with_test_prefix "first" {
+    # Start GDBserver.
+    set gdbserver_reconnect_p 1
+    set res [gdbserver_start "" $binfile]
+    set gdbserver_protocol [lindex $res 0]
+    set gdbserver_gdbport [lindex $res 1]
+
+    connect_continue_ctrl_c
+}
+
+with_test_prefix "second" {
+    gdb_test "disconnect" "Ending remote debugging."
+    connect_continue_ctrl_c
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/run-without-local-binary.exp ./gdb/testsuite/gdb.server/run-without-local-binary.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/run-without-local-binary.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.server/run-without-local-binary.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,62 @@
+# Copyright 2017-2018 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 gdbserver-support.exp
+
+if {[skip_gdbserver_tests]} {
+    return
+}
+
+standard_testfile normal.c
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
+    return -1
+}
+
+# Test running GDB without providing a local binary for it.  In order
+# to do that, we unset GDBFLAGS before running GDB.  We also start
+# gdbserver "by hand".  For more details about this test, see PR
+# remote/21852.
+save_vars { GDBFLAGS } {
+    set GDBFLAGS ""
+    gdb_exit
+    gdb_start
+
+    gdb_test_no_output "set remote exec-file $binfile" \
+	"set remote exec-file"
+
+    # Make sure we're disconnected, in case we're testing with an
+    # extended-remote board, therefore already connected.
+    gdb_test "disconnect" ".*" "disconnect"
+
+    # Let's start gdbserver in extended-remote mode now.  We cannot
+    # use gdbserver_start_extended here because it starts gdbserver,
+    # then GDB *with* a local binary, and the connect both.
+    set res [gdbserver_start "--multi" ""]
+    set gdbserver_protocol [lindex $res 0]
+    if { [string first "extended-" $gdbserver_protocol] != 0} {
+	set gdbserver_protocol "extended-$gdbserver_protocol"
+    }
+    set gdbserver_gdbport [lindex $res 1]
+    set use_gdb_stub 0
+
+    gdb_test "target ${gdbserver_protocol} ${gdbserver_gdbport}" \
+	"Remote debugging using $gdbserver_gdbport" \
+	"connect to gdbserver"
+
+    gdb_test "run" \
+	"\\\[Inferior $decimal \\\(process $decimal\\\) exited normally\\\]" \
+	"run test program until the end"
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/server.c ./gdb/testsuite/gdb.server/server.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/server.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/server.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2005-2017 Free Software Foundation, Inc.
+   Copyright 2005-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/server-exec-info.exp ./gdb/testsuite/gdb.server/server-exec-info.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/server-exec-info.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/server-exec-info.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/server-kill.c ./gdb/testsuite/gdb.server/server-kill.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/server-kill.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/server-kill.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/server-kill.exp ./gdb/testsuite/gdb.server/server-kill.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/server-kill.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/server-kill.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/server-mon.exp ./gdb/testsuite/gdb.server/server-mon.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/server-mon.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/server-mon.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/server-run.exp ./gdb/testsuite/gdb.server/server-run.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/server-run.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/server-run.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2005-2017 Free Software Foundation, Inc.
+# Copyright 2005-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/solib-list.exp ./gdb/testsuite/gdb.server/solib-list.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/solib-list.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/solib-list.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/solib-list-lib.c ./gdb/testsuite/gdb.server/solib-list-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/solib-list-lib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/solib-list-lib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/solib-list-main.c ./gdb/testsuite/gdb.server/solib-list-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/solib-list-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/solib-list-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/unittest.exp ./gdb/testsuite/gdb.server/unittest.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/unittest.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.server/unittest.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,48 @@
+# This testcase is part of GDB, the GNU debugger.
+
+# Copyright 2017-2018 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 gdbserver-support.exp
+
+standard_testfile
+
+if { [skip_gdbserver_tests] } {
+    return 0
+}
+
+global server_spawn_id
+
+set gdbserver [find_gdbserver]
+set gdbserver_command "$gdbserver --selftest"
+
+set server_spawn_id [remote_spawn target $gdbserver_command]
+
+set test "unit tests"
+gdb_expect {
+    -i $server_spawn_id
+    -re "Ran ($decimal) unit tests, 0 failed" {
+	set num_ran $expect_out(1,string)
+	gdb_assert "$num_ran > 0" $test
+    }
+
+    -re "Selftests are not available in a non-development build.\r\n$" {
+	unsupported $test
+    }
+
+    default {
+	fail $test
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/wrapper.c ./gdb/testsuite/gdb.server/wrapper.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/wrapper.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/wrapper.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/wrapper.exp ./gdb/testsuite/gdb.server/wrapper.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.server/wrapper.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.server/wrapper.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.stabs/exclfwd1.c ./gdb/testsuite/gdb.stabs/exclfwd1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.stabs/exclfwd1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.stabs/exclfwd1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.stabs/exclfwd2.c ./gdb/testsuite/gdb.stabs/exclfwd2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.stabs/exclfwd2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.stabs/exclfwd2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.stabs/exclfwd.exp ./gdb/testsuite/gdb.stabs/exclfwd.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.stabs/exclfwd.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.stabs/exclfwd.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2004-2017 Free Software Foundation, Inc.
+#   Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.stabs/exclfwd.h ./gdb/testsuite/gdb.stabs/exclfwd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.stabs/exclfwd.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.stabs/exclfwd.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.stabs/gdb11479.c ./gdb/testsuite/gdb.stabs/gdb11479.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.stabs/gdb11479.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.stabs/gdb11479.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    Contributed by Pierre Muller.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.stabs/gdb11479.exp ./gdb/testsuite/gdb.stabs/gdb11479.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.stabs/gdb11479.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.stabs/gdb11479.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.stabs/weird.exp ./gdb/testsuite/gdb.stabs/weird.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.stabs/weird.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.stabs/weird.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1997-2017 Free Software Foundation, Inc.
+# Copyright 1997-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/attach-into-signal.c ./gdb/testsuite/gdb.threads/attach-into-signal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/attach-into-signal.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/attach-into-signal.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/attach-into-signal.exp ./gdb/testsuite/gdb.threads/attach-into-signal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/attach-into-signal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/attach-into-signal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 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
@@ -56,79 +56,50 @@ proc corefunc { threadtype executable } 
 	set attempt 1
 	set passes 1
 	while { $passes < 3 && $attempt <= $attempts } {
-	    with_test_prefix "attempt $attempt" {
-		set stoppedtry 0
-		while { $stoppedtry < 10 } {
-		    with_test_prefix "stoppedtry $stoppedtry" {
-			if [catch {open /proc/${testpid}/status r} fileid] {
-			    set stoppedtry 10
-			    break
-			}
-			gets $fileid line1
-			gets $fileid line2
-			close $fileid
-
-			if {![string match "*(stopped)*" $line2]} {
-			    # No PASS message as we may be looping in multiple
-			    # attempts.
-			    break
+	    set test "attach (pass $passes), pending signal catch"
+	    if {[gdb_test_multiple "attach $testpid" $test {
+		-re "Attaching to program.*`?$escapedbinfile'?, process $testpid.* received signal SIGALRM.*$gdb_prompt $" {
+		    # nonthreaded:
+		    pass $test
+		    verbose -log "$test succeeded on the attempt # $attempt of $attempts"
+		    set passes [expr $passes + 1]
+		}
+		-re "Attaching to program.*`?$escapedbinfile'?, process $testpid.*$gdb_prompt $" {
+		    set ok 0
+
+		    if { $threadtype == "threaded" } {
+			# In the threaded case, the signal is left
+			# pending on the second thread.  Check for
+			# that by peeking at the thread's siginfo.
+			# SIGALRM is 14, SIGSTOP is 19.
+
+			set test2 "thread apply 2 print \$_siginfo.si_signo"
+			gdb_test_multiple $test2 $test2 {
+			    -re " = 14\r\n$gdb_prompt $" {
+				set ok 1
+			    }
+			    -re " = 19\r\n$gdb_prompt $" {
+			    }
 			}
-			sleep 1
-			set stoppedtry [expr $stoppedtry + 1]
+		    } else {
+			# In the nonthreaded case, GDB should tell the
+			# user about having seen a signal.
 		    }
-		}
-		if { $stoppedtry >= 10 } {
-		    verbose -log $line2
-		    set test "process is still running on the attempt # $attempt of $attempts"
-		    break
-		}
 
-		# Main test:
-		set test "attach (pass $passes), pending signal catch"
-		if {[gdb_test_multiple "attach $testpid" $test {
-		    -re "Attaching to program.*`?$escapedbinfile'?, process $testpid.* received signal SIGALRM.*$gdb_prompt $" {
-			# nonthreaded:
+		    if { $ok == 0} {
+			# We just lack the luck, we should try it again.
+			set attempt [expr $attempt + 1]
+		    } else {
 			pass $test
 			verbose -log "$test succeeded on the attempt # $attempt of $attempts"
 			set passes [expr $passes + 1]
 		    }
-		    -re "Attaching to program.*`?$escapedbinfile'?, process $testpid.*$gdb_prompt $" {
-			set ok 0
-
-			if { $threadtype == "threaded" } {
-			    # In the threaded case, the signal is left
-			    # pending on the second thread.  Check for
-			    # that by peeking at the thread's siginfo.
-			    # SIGALRM is 14, SIGSTOP is 19.
-
-			    set test2 "thread apply 2 print \$_siginfo.si_signo"
-			    gdb_test_multiple $test2 $test2 {
-				-re " = 14\r\n$gdb_prompt $" {
-				    set ok 1
-				}
-				-re " = 19\r\n$gdb_prompt $" {
-				}
-			    }
-			} else {
-			    # In the nonthreaded case, GDB should tell the
-			    # user about having seen a signal.
-			}
-
-			if { $ok == 0} {
-			    # We just lack the luck, we should try it again.
-			    set attempt [expr $attempt + 1]
-			} else {
-			    pass $test
-			    verbose -log "$test succeeded on the attempt # $attempt of $attempts"
-			    set passes [expr $passes + 1]
-			}
-		    }
-		}] != 0 } {
-		    break
 		}
-
-		gdb_test "detach" "Detaching from.*" ""
+	    }] != 0 } {
+		break
 	    }
+
+	    gdb_test "detach" "Detaching from.*" ""
 	}
 
 	if {$passes < 3} {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c ./gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp ./gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/attach-stopped.c ./gdb/testsuite/gdb.threads/attach-stopped.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/attach-stopped.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/attach-stopped.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/attach-stopped.exp ./gdb/testsuite/gdb.threads/attach-stopped.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/attach-stopped.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/attach-stopped.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2008-2017 Free Software Foundation, Inc.
+# Copyright 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/bp_in_thread.c ./gdb/testsuite/gdb.threads/bp_in_thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/bp_in_thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/bp_in_thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* A small multi-threaded test case.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/bp_in_thread.exp ./gdb/testsuite/gdb.threads/bp_in_thread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/bp_in_thread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/bp_in_thread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+# Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/break-while-running.c ./gdb/testsuite/gdb.threads/break-while-running.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/break-while-running.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/break-while-running.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/break-while-running.exp ./gdb/testsuite/gdb.threads/break-while-running.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/break-while-running.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/break-while-running.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/clone-attach-detach.c ./gdb/testsuite/gdb.threads/clone-attach-detach.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/clone-attach-detach.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/clone-attach-detach.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/clone-attach-detach.exp ./gdb/testsuite/gdb.threads/clone-attach-detach.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/clone-attach-detach.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/clone-attach-detach.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/clone-new-thread-event.c ./gdb/testsuite/gdb.threads/clone-new-thread-event.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/clone-new-thread-event.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/clone-new-thread-event.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/clone-new-thread-event.exp ./gdb/testsuite/gdb.threads/clone-new-thread-event.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/clone-new-thread-event.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/clone-new-thread-event.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/clone-thread_db.c ./gdb/testsuite/gdb.threads/clone-thread_db.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/clone-thread_db.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/clone-thread_db.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/clone-thread_db.exp ./gdb/testsuite/gdb.threads/clone-thread_db.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/clone-thread_db.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/clone-thread_db.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/continue-pending-after-query.c ./gdb/testsuite/gdb.threads/continue-pending-after-query.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/continue-pending-after-query.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/continue-pending-after-query.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/continue-pending-after-query.exp ./gdb/testsuite/gdb.threads/continue-pending-after-query.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/continue-pending-after-query.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/continue-pending-after-query.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/continue-pending-status.c ./gdb/testsuite/gdb.threads/continue-pending-status.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/continue-pending-status.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/continue-pending-status.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/continue-pending-status.exp ./gdb/testsuite/gdb.threads/continue-pending-status.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/continue-pending-status.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/continue-pending-status.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/corethreads.c ./gdb/testsuite/gdb.threads/corethreads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/corethreads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/corethreads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2011-2017 Free Software Foundation, Inc.
+/* Copyright 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/corethreads.exp ./gdb/testsuite/gdb.threads/corethreads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/corethreads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/corethreads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/create-fail.c ./gdb/testsuite/gdb.threads/create-fail.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/create-fail.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/create-fail.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/create-fail.exp ./gdb/testsuite/gdb.threads/create-fail.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/create-fail.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/create-fail.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2017 Free Software Foundation, Inc.
+# Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/current-lwp-dead.c ./gdb/testsuite/gdb.threads/current-lwp-dead.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/current-lwp-dead.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/current-lwp-dead.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/current-lwp-dead.exp ./gdb/testsuite/gdb.threads/current-lwp-dead.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/current-lwp-dead.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/current-lwp-dead.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/dlopen-libpthread.c ./gdb/testsuite/gdb.threads/dlopen-libpthread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/dlopen-libpthread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/dlopen-libpthread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/dlopen-libpthread.exp ./gdb/testsuite/gdb.threads/dlopen-libpthread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/dlopen-libpthread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/dlopen-libpthread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c ./gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/execl1.c ./gdb/testsuite/gdb.threads/execl1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/execl1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/execl1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/execl.c ./gdb/testsuite/gdb.threads/execl.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/execl.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/execl.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/execl.exp ./gdb/testsuite/gdb.threads/execl.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/execl.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/execl.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/fork-child-threads.c ./gdb/testsuite/gdb.threads/fork-child-threads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/fork-child-threads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/fork-child-threads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/fork-child-threads.exp ./gdb/testsuite/gdb.threads/fork-child-threads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/fork-child-threads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/fork-child-threads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.c ./gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp ./gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/fork-plus-threads.c ./gdb/testsuite/gdb.threads/fork-plus-threads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/fork-plus-threads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/fork-plus-threads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/fork-plus-threads.exp ./gdb/testsuite/gdb.threads/fork-plus-threads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/fork-plus-threads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/fork-plus-threads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/fork-thread-pending.c ./gdb/testsuite/gdb.threads/fork-thread-pending.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/fork-thread-pending.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/fork-thread-pending.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/fork-thread-pending.exp ./gdb/testsuite/gdb.threads/fork-thread-pending.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/fork-thread-pending.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/fork-thread-pending.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/gcore-stale-thread.c ./gdb/testsuite/gdb.threads/gcore-stale-thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/gcore-stale-thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/gcore-stale-thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/gcore-stale-thread.exp ./gdb/testsuite/gdb.threads/gcore-stale-thread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/gcore-stale-thread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/gcore-stale-thread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/gcore-thread.exp ./gdb/testsuite/gdb.threads/gcore-thread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/gcore-thread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/gcore-thread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/hand-call-in-threads.c ./gdb/testsuite/gdb.threads/hand-call-in-threads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/hand-call-in-threads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/hand-call-in-threads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test case for hand function calls in multi-threaded program.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/hand-call-in-threads.exp ./gdb/testsuite/gdb.threads/hand-call-in-threads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/hand-call-in-threads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/hand-call-in-threads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+# Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/hand-call-new-thread.c ./gdb/testsuite/gdb.threads/hand-call-new-thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/hand-call-new-thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/hand-call-new-thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/hand-call-new-thread.exp ./gdb/testsuite/gdb.threads/hand-call-new-thread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/hand-call-new-thread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/hand-call-new-thread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/ia64-sigill.c ./gdb/testsuite/gdb.threads/ia64-sigill.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/ia64-sigill.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/ia64-sigill.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/ia64-sigill.exp ./gdb/testsuite/gdb.threads/ia64-sigill.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/ia64-sigill.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/ia64-sigill.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/info-threads-cur-sal-2.c ./gdb/testsuite/gdb.threads/info-threads-cur-sal-2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/info-threads-cur-sal-2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/info-threads-cur-sal-2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2013-2017 Free Software Foundation, Inc.
+/* Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/info-threads-cur-sal.c ./gdb/testsuite/gdb.threads/info-threads-cur-sal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/info-threads-cur-sal.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/info-threads-cur-sal.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2007-2017 Free Software Foundation, Inc.
+/* Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/info-threads-cur-sal.exp ./gdb/testsuite/gdb.threads/info-threads-cur-sal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/info-threads-cur-sal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/info-threads-cur-sal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/interrupted-hand-call.c ./gdb/testsuite/gdb.threads/interrupted-hand-call.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/interrupted-hand-call.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/interrupted-hand-call.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test case for hand function calls interrupted by a signal in another thread.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/interrupted-hand-call.exp ./gdb/testsuite/gdb.threads/interrupted-hand-call.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/interrupted-hand-call.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/interrupted-hand-call.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+# Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/interrupt-while-step-over.c ./gdb/testsuite/gdb.threads/interrupt-while-step-over.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/interrupt-while-step-over.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/interrupt-while-step-over.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/interrupt-while-step-over.exp ./gdb/testsuite/gdb.threads/interrupt-while-step-over.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/interrupt-while-step-over.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/interrupt-while-step-over.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/kill.c ./gdb/testsuite/gdb.threads/kill.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/kill.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/kill.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/killed.c ./gdb/testsuite/gdb.threads/killed.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/killed.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/killed.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/killed.exp ./gdb/testsuite/gdb.threads/killed.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/killed.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/killed.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2002-2017 Free Software Foundation, Inc.
+# Copyright 2002-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/kill.exp ./gdb/testsuite/gdb.threads/kill.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/kill.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/kill.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/leader-exit.c ./gdb/testsuite/gdb.threads/leader-exit.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/leader-exit.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/leader-exit.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Clean exit of the thread group leader should not break GDB.
 
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/leader-exit.exp ./gdb/testsuite/gdb.threads/leader-exit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/leader-exit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/leader-exit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/linux-dp.exp ./gdb/testsuite/gdb.threads/linux-dp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/linux-dp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/linux-dp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/local-watch-wrong-thread.c ./gdb/testsuite/gdb.threads/local-watch-wrong-thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/local-watch-wrong-thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/local-watch-wrong-thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp ./gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/manythreads.c ./gdb/testsuite/gdb.threads/manythreads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/manythreads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/manythreads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Manythreads test program.
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    Written by Jeff Johnston <jjohnstn@redhat.com> 
    Contributed by Red Hat
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/manythreads.exp ./gdb/testsuite/gdb.threads/manythreads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/manythreads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/manythreads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # manythreads.exp -- Expect script to test stopping many threads
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+# Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/multi-create.c ./gdb/testsuite/gdb.threads/multi-create.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/multi-create.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/multi-create.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Create threads from multiple threads in parallel.
-   Copyright 2007-2017 Free Software Foundation, Inc.
+   Copyright 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/multi-create.exp ./gdb/testsuite/gdb.threads/multi-create.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/multi-create.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/multi-create.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # multi-create.exp -- Test creating many threads in parallel
-# Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp ./gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/multiple-step-overs.c ./gdb/testsuite/gdb.threads/multiple-step-overs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/multiple-step-overs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/multiple-step-overs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/multiple-step-overs.exp ./gdb/testsuite/gdb.threads/multiple-step-overs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/multiple-step-overs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/multiple-step-overs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/names.c ./gdb/testsuite/gdb.threads/names.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/names.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/names.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/names.exp ./gdb/testsuite/gdb.threads/names.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/names.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/names.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/next-bp-other-thread.c ./gdb/testsuite/gdb.threads/next-bp-other-thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/next-bp-other-thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/next-bp-other-thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/next-bp-other-thread.exp ./gdb/testsuite/gdb.threads/next-bp-other-thread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/next-bp-other-thread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/next-bp-other-thread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.c ./gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.exp ./gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-1.c ./gdb/testsuite/gdb.threads/non-ldr-exc-1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/non-ldr-exc-1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-1.exp ./gdb/testsuite/gdb.threads/non-ldr-exc-1.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-1.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/non-ldr-exc-1.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -16,11 +16,6 @@
 # Test that when a thread other than the main thread execs, we follow
 # through to the new incarnation of the main thread.
 
-# No exec event support in the remote protocol.
-if { [is_remote target] } then {
-    continue
-}
-
 standard_testfile
 set executable ${testfile}
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-2.c ./gdb/testsuite/gdb.threads/non-ldr-exc-2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/non-ldr-exc-2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp ./gdb/testsuite/gdb.threads/non-ldr-exc-2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/non-ldr-exc-2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -17,11 +17,6 @@
 # through to the new incarnation of the main thread, even if the main
 # thread had already exited before the exec.
 
-# No exec event support in the remote protocol.
-if { [is_remote target] } then {
-    continue
-}
-
 standard_testfile
 set executable ${testfile}
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-3.c ./gdb/testsuite/gdb.threads/non-ldr-exc-3.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-3.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/non-ldr-exc-3.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-3.exp ./gdb/testsuite/gdb.threads/non-ldr-exc-3.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-3.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/non-ldr-exc-3.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -19,11 +19,6 @@
 # non-ldr-exc-2.exp in that we have more than two threads in the
 # program when the exec happens.
 
-# No exec event support in the remote protocol.
-if { [is_remote target] } then {
-    continue
-}
-
 standard_testfile
 set executable ${testfile}
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-4.c ./gdb/testsuite/gdb.threads/non-ldr-exc-4.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-4.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/non-ldr-exc-4.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-4.exp ./gdb/testsuite/gdb.threads/non-ldr-exc-4.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exc-4.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/non-ldr-exc-4.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 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
@@ -18,11 +18,6 @@
 # from non-ldr-exc-1.exp in that we have more than two threads in the
 # program when the exec happens.
 
-# No exec event support in the remote protocol.
-if { [is_remote target] } then {
-    continue
-}
-
 standard_testfile
 set executable ${testfile}
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exit.c ./gdb/testsuite/gdb.threads/non-ldr-exit.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exit.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/non-ldr-exit.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Clean exit of the thread group leader should not break GDB.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exit.exp ./gdb/testsuite/gdb.threads/non-ldr-exit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-ldr-exit.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/non-ldr-exit.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-stop-fair-events.c ./gdb/testsuite/gdb.threads/non-stop-fair-events.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-stop-fair-events.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/non-stop-fair-events.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-stop-fair-events.exp ./gdb/testsuite/gdb.threads/non-stop-fair-events.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/non-stop-fair-events.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/non-stop-fair-events.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/no-unwaited-for-left.c ./gdb/testsuite/gdb.threads/no-unwaited-for-left.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/no-unwaited-for-left.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/no-unwaited-for-left.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright 2007-2017 Free Software Foundation, Inc.
+/* Copyright 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/no-unwaited-for-left.exp ./gdb/testsuite/gdb.threads/no-unwaited-for-left.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/no-unwaited-for-left.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/no-unwaited-for-left.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/pending-step.c ./gdb/testsuite/gdb.threads/pending-step.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/pending-step.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/pending-step.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/pending-step.exp ./gdb/testsuite/gdb.threads/pending-step.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/pending-step.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/pending-step.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/print-threads.exp ./gdb/testsuite/gdb.threads/print-threads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/print-threads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/print-threads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/process-dies-while-detaching.c ./gdb/testsuite/gdb.threads/process-dies-while-detaching.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/process-dies-while-detaching.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/process-dies-while-detaching.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 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
@@ -22,6 +22,8 @@
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <assert.h>
+#include <errno.h>
+#include <string.h>
 
 /* This barrier ensures we only reach the initial breakpoint after all
    threads have started.  */
@@ -78,15 +80,27 @@ parent_function (pid_t child)
   alarm (300);
 
   ret = waitpid (child, &status, 0);
+
   if (ret == -1)
-    exit (1);
-  else if (!WIFEXITED (status))
-    exit (2);
-  else
+    {
+      printf ("waitpid, errno=%d (%s)\n", errno, strerror (errno));
+      exit (1);
+    }
+  else if (WIFEXITED (status))
     {
       printf ("exited, status=%d\n", WEXITSTATUS (status));
       exit (0);
     }
+  else if (WIFSIGNALED (status))
+    {
+      printf ("signaled, sig=%d\n", WTERMSIG (status));
+      exit (2);
+    }
+  else
+    {
+      printf ("unexpected, status=%x\n", status);
+      exit (3);
+    }
 }
 
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/process-dies-while-detaching.exp ./gdb/testsuite/gdb.threads/process-dies-while-detaching.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/process-dies-while-detaching.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/process-dies-while-detaching.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 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
@@ -72,9 +72,10 @@ proc return_if_fail { result } {
 }
 
 # Detach from a process, and ensure that it exits after detaching.
-# This relies on inferior I/O.
+# This relies on inferior I/O.  INF_OUTPUT_RE is the pattern that
+# matches the expected inferior output.
 
-proc detach_and_expect_exit {test} {
+proc detach_and_expect_exit {inf_output_re test} {
     global decimal
     global gdb_spawn_id
     global inferior_spawn_id
@@ -85,9 +86,17 @@ proc detach_and_expect_exit {test} {
 	}
     }]
 
+    # Use an indirect spawn id list, and remove inferior spawn id from
+    # the expected output as soon as it matches, so that if
+    # $inf_inferior_spawn_id is $server_spawn_id and we're testing in
+    # "target remote" mode, the eof caused by gdbserver exiting is
+    # left for the caller to handle.
+    global daee_spawn_id_list
+    set daee_spawn_id_list "$inferior_spawn_id $gdb_spawn_id"
+
     set saw_prompt 0
     set saw_inf_exit 0
-    while { !$saw_prompt && ! $saw_inf_exit } {
+    while { !$saw_prompt || ! $saw_inf_exit } {
 	# We don't know what order the interesting things will arrive in.
 	# Using a pattern of the form 'x|y|z' instead of -re x ... -re y
 	# ... -re z ensures that expect always chooses the match that
@@ -95,14 +104,16 @@ proc detach_and_expect_exit {test} {
 	# first in the script that occurs anywhere in the input, so that
 	# we don't skip anything.
 	return_if_fail [gdb_test_multiple "" $test {
-	    -i "$inferior_spawn_id $gdb_spawn_id"
-	    -re "(exited, status=0)|($gdb_prompt )" {
+	    -i daee_spawn_id_list
+	    -re "($inf_output_re)|($gdb_prompt )" {
 		if {[info exists expect_out(1,string)]} {
 		    verbose -log "saw inferior exit"
 		    set saw_inf_exit 1
+		    set daee_spawn_id_list "$gdb_spawn_id"
 		} elseif {[info exists expect_out(2,string)]} {
 		    verbose -log "saw prompt"
 		    set saw_prompt 1
+		    set daee_spawn_id_list "$inferior_spawn_id"
 		}
 		array unset expect_out
 	    }
@@ -130,15 +141,28 @@ proc continue_to_exit_bp {} {
 #
 # CMD indicates what to do with the parent after detaching the child.
 # Can be either "detach" to detach, or "continue", to continue to
-# exit.  If "continue", then CONTINUE_RE is the regexp to expect.
-# Defaults to normal exit output.
+# exit.
+#
+# CHILD_EXIT indicates how is the child expected to exit.  Can be
+# either "normal" for normal exit, or "signal" for killed with signal
+# SIGKILL.
 #
-proc do_detach {multi_process cmd {continue_re ""}} {
+proc do_detach {multi_process cmd child_exit} {
     global decimal
     global server_spawn_id
 
-    if {$continue_re == ""} {
+    if {$child_exit == "normal"} {
 	set continue_re "exited normally.*"
+	set inf_output_re "exited, status=0"
+    } elseif {$child_exit == "signal"} {
+	if {$multi_process} {
+	    set continue_re "exited with code 02.*"
+	} else {
+	    set continue_re "terminated with signal SIGKILL.*"
+	}
+	set inf_output_re "signaled, sig=9"
+    } else {
+	error "unhandled \$child_exit: $child_exit"
     }
 
     set is_remote [expr {[target_info exists gdb_protocol]
@@ -154,7 +178,7 @@ proc do_detach {multi_process cmd {conti
 	if {$cmd == "detach"} {
 	    # Make sure that detach works and that the parent process
 	    # exits cleanly.
-	    detach_and_expect_exit "detach parent"
+	    detach_and_expect_exit $inf_output_re "detach parent"
 	} elseif {$cmd == "continue"} {
 	    # Make sure that continuing works and that the parent process
 	    # exits cleanly.
@@ -205,7 +229,7 @@ proc test_detach {multi_process cmd} {
 	# Run to _exit in the child.
 	continue_to_exit_bp
 
-	do_detach $multi_process $cmd
+	do_detach $multi_process $cmd "normal"
     }
 }
 
@@ -240,7 +264,7 @@ proc test_detach_watch {multi_process cm
 	# thread individually).
 	continue_to_exit_bp
 
-	do_detach $multi_process $cmd
+	do_detach $multi_process $cmd "normal"
     }
 }
 
@@ -279,12 +303,7 @@ proc test_detach_killed_outside {multi_p
 	# Give it some time to die.
 	sleep 2
 
-	if {$multi_process} {
-	    set continue_re "exited with code 02.*"
-	} else {
-	    set continue_re "terminated with signal SIGKILL.*"
-	}
-	do_detach $multi_process $cmd $continue_re
+	do_detach $multi_process $cmd "signal"
     }
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.c ./gdb/testsuite/gdb.threads/process-dies-while-handling-bp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/process-dies-while-handling-bp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp ./gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/pthread_cond_wait.c ./gdb/testsuite/gdb.threads/pthread_cond_wait.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/pthread_cond_wait.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/pthread_cond_wait.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* A small multi-threaded test case.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/pthread_cond_wait.exp ./gdb/testsuite/gdb.threads/pthread_cond_wait.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/pthread_cond_wait.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/pthread_cond_wait.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+# Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/pthreads.c ./gdb/testsuite/gdb.threads/pthreads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/pthreads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/pthreads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Pthreads test program.
-   Copyright 1996-2017 Free Software Foundation, Inc.
+   Copyright 1996-2018 Free Software Foundation, Inc.
 
    Written by Fred Fish of Cygnus Support
    Contributed by Cygnus Support
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/pthreads.exp ./gdb/testsuite/gdb.threads/pthreads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/pthreads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/pthreads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/queue-signal.c ./gdb/testsuite/gdb.threads/queue-signal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/queue-signal.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/queue-signal.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/queue-signal.exp ./gdb/testsuite/gdb.threads/queue-signal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/queue-signal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/queue-signal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/reconnect-signal.c ./gdb/testsuite/gdb.threads/reconnect-signal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/reconnect-signal.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/reconnect-signal.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/reconnect-signal.exp ./gdb/testsuite/gdb.threads/reconnect-signal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/reconnect-signal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/reconnect-signal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/schedlock.c ./gdb/testsuite/gdb.threads/schedlock.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/schedlock.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/schedlock.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/schedlock.exp ./gdb/testsuite/gdb.threads/schedlock.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/schedlock.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/schedlock.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/siginfo-threads.c ./gdb/testsuite/gdb.threads/siginfo-threads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/siginfo-threads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/siginfo-threads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/siginfo-threads.exp ./gdb/testsuite/gdb.threads/siginfo-threads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/siginfo-threads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/siginfo-threads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 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
@@ -40,12 +40,17 @@ gdb_test "handle SIGUSR2 stop print pass
 gdb_breakpoint [gdb_get_line_number "break-at-exit"]
 
 set test "get pid"
-gdb_test_multiple "p getpid ()" $test {
+set pid ""
+gdb_test_multiple "p (int) getpid ()" $test {
     -re " = (\[0-9\]+)\r\n$gdb_prompt $" {
 	set pid $expect_out(1,string)
 	pass $test
     }
 }
+if {$pid == ""} {
+    untested "failed to get pid"
+    return
+}
 
 for {set sigcount 0} {$sigcount < 4} {incr sigcount} {
     set test "catch signal $sigcount"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-command-handle-nopass.c ./gdb/testsuite/gdb.threads/signal-command-handle-nopass.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-command-handle-nopass.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/signal-command-handle-nopass.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp ./gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c ./gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp ./gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-delivered-right-thread.c ./gdb/testsuite/gdb.threads/signal-delivered-right-thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-delivered-right-thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/signal-delivered-right-thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp ./gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-sigtrap.c ./gdb/testsuite/gdb.threads/signal-sigtrap.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-sigtrap.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/signal-sigtrap.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-sigtrap.exp ./gdb/testsuite/gdb.threads/signal-sigtrap.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-sigtrap.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/signal-sigtrap.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.c ./gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp ./gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/sigstep-threads.c ./gdb/testsuite/gdb.threads/sigstep-threads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/sigstep-threads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/sigstep-threads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/sigstep-threads.exp ./gdb/testsuite/gdb.threads/sigstep-threads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/sigstep-threads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/sigstep-threads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/sigthread.exp ./gdb/testsuite/gdb.threads/sigthread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/sigthread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/sigthread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # sigthread.exp -- Expect script to test thread and signal interaction
-# Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/staticthreads.c ./gdb/testsuite/gdb.threads/staticthreads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/staticthreads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/staticthreads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test program is part of GDB, The GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    Originally written by Jeff Johnston <jjohnstn@redhat.com>,
    contributed by Red Hat
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/staticthreads.exp ./gdb/testsuite/gdb.threads/staticthreads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/staticthreads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/staticthreads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # static.exp -- test script, for GDB, the GNU debugger.
 
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.c ./gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp ./gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/stepi-random-signal.c ./gdb/testsuite/gdb.threads/stepi-random-signal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/stepi-random-signal.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/stepi-random-signal.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/stepi-random-signal.exp ./gdb/testsuite/gdb.threads/stepi-random-signal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/stepi-random-signal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/stepi-random-signal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.c ./gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp ./gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.c ./gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2014-2017 Free Software Foundation, Inc.
+   Copyright 2014-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp ./gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/switch-threads.c ./gdb/testsuite/gdb.threads/switch-threads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/switch-threads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/switch-threads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* A minimal multi-threaded test case.
 
-   Copyright 2003-2017 Free Software Foundation, Inc.
+   Copyright 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/switch-threads.exp ./gdb/testsuite/gdb.threads/switch-threads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/switch-threads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/switch-threads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/threadapply.c ./gdb/testsuite/gdb.threads/threadapply.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/threadapply.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/threadapply.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/threadapply.exp ./gdb/testsuite/gdb.threads/threadapply.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/threadapply.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/threadapply.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 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
@@ -93,3 +93,138 @@ proc thr_apply_detach {thread_set} {
 foreach thread_set {"all" "1.1 1.2 1.3"} {
     thr_apply_detach $thread_set
 }
+
+# Test killing and removing inferiors from a command run via "thread
+# apply THREAD_SET".  THREAD_SET can be either "1.1", or "all".  GDB
+# used to mistakenly allow deleting the previously-selected inferior,
+# in some cases, leading to crashes.
+
+proc kill_and_remove_inferior {thread_set} {
+    global binfile
+    global gdb_prompt
+
+    # The test starts multiple inferiors, therefore non-extended
+    # remote is not supported.
+    if [target_info exists use_gdb_stub] {
+	unsupported "using gdb stub"
+	return
+    }
+
+    set any "\[^\r\n\]*"
+    set ws "\[ \t\]\+"
+
+    clean_restart ${binfile}
+
+    with_test_prefix "start inferior 1" {
+	runto_main
+    }
+
+    # Add and start inferior number NUM.
+    proc add_and_start_inferior {num} {
+	global binfile
+
+	# Start another inferior.
+	gdb_test "add-inferior" "Added inferior $num.*" \
+	    "add empty inferior $num"
+	gdb_test "inferior $num" "Switching to inferior $num.*" \
+	    "switch to inferior $num"
+	gdb_test "file ${binfile}" ".*" "load file in inferior $num"
+
+	with_test_prefix "start inferior $num" {
+	    runto_main
+	}
+    }
+
+    # Start another inferior.
+    add_and_start_inferior 2
+
+    # And yet another.
+    add_and_start_inferior 3
+
+    gdb_test "thread 2.1" "Switching to thread 2.1 .*"
+
+    # Try removing an active inferior via a "thread apply" command.
+    # Should fail/warn.
+    with_test_prefix "try remove" {
+
+	gdb_define_cmd "remove" {
+	    "remove-inferiors 3"
+	}
+
+	# Inferior 3 is still alive, so can't remove it.
+	gdb_test "thread apply $thread_set remove" \
+	    "warning: Can not remove active inferior 3.*"
+	# Check that GDB restored the selected thread.
+	gdb_test "thread" "Current thread is 2.1 .*"
+
+	gdb_test "info inferiors" \
+	    [multi_line \
+		 "${ws}1${ws}process ${any}" \
+		 "\\\* 2${ws}process ${any}" \
+		 "${ws}3${ws}process ${any}" \
+		]
+    }
+
+    # Kill and try to remove inferior 2 while inferior 2 is selected.
+    # Removing the inferior should fail/warn.
+    with_test_prefix "try kill-and-remove" {
+
+	# The "inferior 1" command works around PR gdb/19318 ("kill
+	# inferior N" shouldn't switch to inferior N).
+	gdb_define_cmd "kill-and-remove" {
+	    "kill inferiors 2"
+	    "inferior 1"
+	    "remove-inferiors 2"
+	}
+
+	# Note that when threads=1.1, this makes sure we're really
+	# testing failure to remove the inferior the user had selected
+	# before the "thread apply" command, instead of testing
+	# refusal to remove the currently-iterated inferior.
+	gdb_test "thread apply $thread_set kill-and-remove" \
+	    "warning: Can not remove current inferior 2.*"
+	gdb_test "thread" "No thread selected" \
+	    "switched to no thread selected"
+
+	gdb_test "info inferiors" \
+	    [multi_line \
+		 "${ws}1${ws}process ${any}" \
+		 "\\\* 2${ws}<null>${any}" \
+		 "${ws}3${ws}process ${any}" \
+		]
+    }
+
+    # Try removing (the now dead) inferior 2 while inferior 1 is
+    # selected.  This should succeed.
+    with_test_prefix "try remove 2" {
+
+	gdb_test "thread 1.1" "Switching to thread 1.1 .*"
+
+	gdb_define_cmd "remove-again" {
+	    "remove-inferiors 2"
+	}
+
+	set test "thread apply $thread_set remove-again"
+	gdb_test_multiple $test $test {
+	    -re "warning: Can not remove.*$gdb_prompt $" {
+		fail $test
+	    }
+	    -re "$gdb_prompt $" {
+		pass $test
+	    }
+	}
+	gdb_test "thread" "Current thread is 1.1 .*"
+	# Check that only inferiors 1 and 3 are around.
+	gdb_test "info inferiors" \
+	    [multi_line \
+		 "\\\* 1${ws}process ${any}" \
+		 "${ws}3${ws}process ${any}" \
+		]
+    }
+}
+
+# Test both "all" and a thread list, because those are implemented as
+# different commands in GDB.
+foreach_with_prefix thread_set {"all" "1.1"} {
+    kill_and_remove_inferior $thread_set
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread_check.c ./gdb/testsuite/gdb.threads/thread_check.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread_check.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/thread_check.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread_check.exp ./gdb/testsuite/gdb.threads/thread_check.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread_check.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/thread_check.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+# Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread_events.c ./gdb/testsuite/gdb.threads/thread_events.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread_events.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/thread_events.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread_events.exp ./gdb/testsuite/gdb.threads/thread_events.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread_events.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/thread_events.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2017 Free Software Foundation, Inc.
+# Copyright (C) 2007-2018 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
@@ -27,9 +27,10 @@ if ![istarget *-*-linux*] then {
     return
 }
 
-# When using gdbserver, even on Linux, we don't get notifications
-# about new threads.  This is expected, so don't test for that.
-if [is_remote target] then {
+# When using the RSP, we don't get notifications about new threads.
+# This is expected, so don't test for that.
+if {[target_info gdb_protocol] == "remote"
+    || [target_info gdb_protocol] == "extended-remote"} {
     return
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-execl.c ./gdb/testsuite/gdb.threads/thread-execl.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-execl.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/thread-execl.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-execl.exp ./gdb/testsuite/gdb.threads/thread-execl.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-execl.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/thread-execl.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-find.exp ./gdb/testsuite/gdb.threads/thread-find.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-find.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/thread-find.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-specific-bp.c ./gdb/testsuite/gdb.threads/thread-specific-bp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-specific-bp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/thread-specific-bp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-specific-bp.exp ./gdb/testsuite/gdb.threads/thread-specific-bp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-specific-bp.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/thread-specific-bp.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-specific.c ./gdb/testsuite/gdb.threads/thread-specific.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-specific.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/thread-specific.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2004-2017 Free Software Foundation, Inc.
+   Copyright 2004-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-specific.exp ./gdb/testsuite/gdb.threads/thread-specific.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-specific.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/thread-specific.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp ./gdb/testsuite/gdb.threads/thread-unwindonsignal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/thread-unwindonsignal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2017 Free Software Foundation, Inc.
+# Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/threxit-hop-specific.c ./gdb/testsuite/gdb.threads/threxit-hop-specific.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/threxit-hop-specific.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/threxit-hop-specific.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/threxit-hop-specific.exp ./gdb/testsuite/gdb.threads/threxit-hop-specific.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/threxit-hop-specific.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/threxit-hop-specific.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tid-reuse.c ./gdb/testsuite/gdb.threads/tid-reuse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tid-reuse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tid-reuse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tid-reuse.exp ./gdb/testsuite/gdb.threads/tid-reuse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tid-reuse.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tid-reuse.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls2.c ./gdb/testsuite/gdb.threads/tls2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tls2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2008-2017 Free Software Foundation, Inc.
+   Copyright 2008-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-core.c ./gdb/testsuite/gdb.threads/tls-core.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-core.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tls-core.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,37 @@
+/* This test is part of GDB, the GNU debugger.
+
+   Copyright 2017-2018 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/>.  */
+
+#include <pthread.h>
+
+int __thread foo = 0xdeadbeef;
+
+static void *
+thread_proc (void *arg)
+{
+  return arg;
+}
+
+int
+main (void)
+{
+  pthread_t thread;
+
+  pthread_create (&thread, NULL, thread_proc, NULL);
+  pthread_join (thread, NULL);
+
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-core.exp ./gdb/testsuite/gdb.threads/tls-core.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-core.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tls-core.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,56 @@
+# Copyright 2017-2018 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/>.
+
+standard_testfile
+
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
+	executable { debug }] != "" } {
+    return -1
+}
+
+
+clean_restart ${binfile}
+
+runto thread_proc
+
+#
+# Generate corefile.
+#
+set corefile [standard_output_file gcore.test]
+set core_supported [gdb_gcore_cmd "$corefile" "save a corefile"]
+if {!$core_supported} {
+    return 0
+}
+
+#
+# Restart gdb and load generated corefile.
+#
+clean_restart ${binfile}
+
+set core_loaded [gdb_core_cmd "$corefile" "load generated corefile"]
+if { $core_loaded != 1 } {
+    # No use proceeding from here.
+    return 0
+}
+
+# This fails in cross-debugging due to the use of native `libthread_db'.
+if {![string match $host_triplet $target_triplet]} {
+    setup_kfail "threads/22381" "*-*-*"
+}
+gdb_test "p/x foo" \
+	"\\$\[0-9]+ = 0xdeadbeef" \
+	"print thread-local storage variable"
+
+gdb_exit
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls.exp ./gdb/testsuite/gdb.threads/tls.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tls.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # tls.exp -- Expect script to test thread-local storage
-# Copyright (C) 1992-2017 Free Software Foundation, Inc.
+# Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-nodebug.exp ./gdb/testsuite/gdb.threads/tls-nodebug.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-nodebug.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tls-nodebug.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # tls.exp -- Expect script to test thread-local storage without debuginfo
-# Copyright (C) 2006-2017 Free Software Foundation, Inc.
+# Copyright (C) 2006-2018 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
@@ -33,7 +33,10 @@ if ![runto_main] then {
 }
 
 # Formerly: Cannot access memory at address 0x0
-gdb_test "p thread_local" "= 42" "thread local storage"
+gdb_test "p thread_local" "'thread_local' has unknown type; cast it to its declared type" \
+    "thread local storage, unknown type"
+gdb_test "p (int) thread_local" "= 42" \
+    "thread local storage, cast"
 
 # Done!
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-nodebug-pie.c ./gdb/testsuite/gdb.threads/tls-nodebug-pie.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-nodebug-pie.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tls-nodebug-pie.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,28 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2016-2018 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/>.  */
+
+#include <pthread.h>
+
+__thread int thread_local = 42;
+
+int
+main (void)
+{
+  /* Ensure we link against pthreads even with --as-needed.  */
+  pthread_testcancel ();
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-nodebug-pie.exp ./gdb/testsuite/gdb.threads/tls-nodebug-pie.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-nodebug-pie.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tls-nodebug-pie.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,29 @@
+# Copyright 2016-2018 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/>.
+
+standard_testfile
+
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
+			  [list "additional_flags=-fPIE -pie"]] != "" } {
+    return -1
+}
+
+clean_restart ${binfile}
+if ![runto_main] then {
+    return 0
+}
+
+# Formerly: Cannot access memory at address 0xffffef7c0698
+gdb_test "p (int) thread_local" " = 42" "thread local storage"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-shared.exp ./gdb/testsuite/gdb.threads/tls-shared.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-shared.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tls-shared.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-so_extern.c ./gdb/testsuite/gdb.threads/tls-so_extern.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-so_extern.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tls-so_extern.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-so_extern.exp ./gdb/testsuite/gdb.threads/tls-so_extern.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-so_extern.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tls-so_extern.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-so_extern_main.c ./gdb/testsuite/gdb.threads/tls-so_extern_main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-so_extern_main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tls-so_extern_main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-var.c ./gdb/testsuite/gdb.threads/tls-var.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-var.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tls-var.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-var.exp ./gdb/testsuite/gdb.threads/tls-var.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-var.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tls-var.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-var-main.c ./gdb/testsuite/gdb.threads/tls-var-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/tls-var-main.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/tls-var-main.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchpoint-fork-child.c ./gdb/testsuite/gdb.threads/watchpoint-fork-child.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchpoint-fork-child.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/watchpoint-fork-child.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test case for forgotten hw-watchpoints after fork()-off of a process.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchpoint-fork.exp ./gdb/testsuite/gdb.threads/watchpoint-fork.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchpoint-fork.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/watchpoint-fork.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchpoint-fork.h ./gdb/testsuite/gdb.threads/watchpoint-fork.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchpoint-fork.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/watchpoint-fork.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test case for forgotten hw-watchpoints after fork()-off of a process.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c ./gdb/testsuite/gdb.threads/watchpoint-fork-mt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/watchpoint-fork-mt.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test case for forgotten hw-watchpoints after fork()-off of a process.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchpoint-fork-parent.c ./gdb/testsuite/gdb.threads/watchpoint-fork-parent.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchpoint-fork-parent.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/watchpoint-fork-parent.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test case for forgotten hw-watchpoints after fork()-off of a process.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchpoint-fork-st.c ./gdb/testsuite/gdb.threads/watchpoint-fork-st.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchpoint-fork-st.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/watchpoint-fork-st.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Test case for forgotten hw-watchpoints after fork()-off of a process.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchthreads2.c ./gdb/testsuite/gdb.threads/watchthreads2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchthreads2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/watchthreads2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchthreads2.exp ./gdb/testsuite/gdb.threads/watchthreads2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchthreads2.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/watchthreads2.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchthreads.c ./gdb/testsuite/gdb.threads/watchthreads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchthreads.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/watchthreads.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchthreads.exp ./gdb/testsuite/gdb.threads/watchthreads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchthreads.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/watchthreads.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchthreads-reorder.c ./gdb/testsuite/gdb.threads/watchthreads-reorder.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchthreads-reorder.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/watchthreads-reorder.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchthreads-reorder.exp ./gdb/testsuite/gdb.threads/watchthreads-reorder.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/watchthreads-reorder.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/watchthreads-reorder.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/wp-replication.c ./gdb/testsuite/gdb.threads/wp-replication.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/wp-replication.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/wp-replication.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2009-2017 Free Software Foundation, Inc.
+   Copyright 2009-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/wp-replication.exp ./gdb/testsuite/gdb.threads/wp-replication.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.threads/wp-replication.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/wp-replication.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/actions.c ./gdb/testsuite/gdb.trace/actions.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/actions.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/actions.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1998-2017 Free Software Foundation, Inc.
+   Copyright 1998-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/actions-changed.c ./gdb/testsuite/gdb.trace/actions-changed.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/actions-changed.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/actions-changed.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/actions-changed.exp ./gdb/testsuite/gdb.trace/actions-changed.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/actions-changed.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/actions-changed.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/actions.exp ./gdb/testsuite/gdb.trace/actions.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/actions.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/actions.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/ax.exp ./gdb/testsuite/gdb.trace/ax.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/ax.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/ax.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2010-2017 Free Software Foundation, Inc.
+#   Copyright 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/backtrace.exp ./gdb/testsuite/gdb.trace/backtrace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/backtrace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/backtrace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/change-loc-1.c ./gdb/testsuite/gdb.trace/change-loc-1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/change-loc-1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/change-loc-1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/change-loc-2.c ./gdb/testsuite/gdb.trace/change-loc-2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/change-loc-2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/change-loc-2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/change-loc.c ./gdb/testsuite/gdb.trace/change-loc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/change-loc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/change-loc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/change-loc.exp ./gdb/testsuite/gdb.trace/change-loc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/change-loc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/change-loc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/change-loc.h ./gdb/testsuite/gdb.trace/change-loc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/change-loc.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/change-loc.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/circ.c ./gdb/testsuite/gdb.trace/circ.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/circ.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/circ.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1998-2017 Free Software Foundation, Inc.
+   Copyright 1998-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/circ.exp ./gdb/testsuite/gdb.trace/circ.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/circ.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/circ.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/collection.c ./gdb/testsuite/gdb.trace/collection.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/collection.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/collection.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 1998-2017 Free Software Foundation, Inc.
+   Copyright 1998-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/collection.exp ./gdb/testsuite/gdb.trace/collection.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/collection.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/collection.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/deltrace.exp ./gdb/testsuite/gdb.trace/deltrace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/deltrace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/deltrace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/disconnected-tracing.c ./gdb/testsuite/gdb.trace/disconnected-tracing.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/disconnected-tracing.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/disconnected-tracing.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/disconnected-tracing.exp ./gdb/testsuite/gdb.trace/disconnected-tracing.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/disconnected-tracing.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/disconnected-tracing.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2012-2017 Free Software Foundation, Inc.
+#   Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/entry-values.c ./gdb/testsuite/gdb.trace/entry-values.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/entry-values.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/entry-values.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/entry-values.exp ./gdb/testsuite/gdb.trace/entry-values.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/entry-values.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/entry-values.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 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
@@ -194,8 +194,8 @@ gdb_test_sequence "bt" "bt (1)" {
 # Update global variables 'global1' and 'global2' and test that the
 # entry values are updated too.
 
-gdb_test_no_output "set var global1=10"
-gdb_test_no_output "set var global2=11"
+gdb_test_no_output "set var *(int *) &global1=10"
+gdb_test_no_output "set var *(int *) &global2=11"
 
 gdb_test_sequence "bt" "bt (2)" {
     "\[\r\n\]#0 .* foo \\(i=[-]?[0-9]+, i@entry=10, j=[-]?[0-9]+, j@entry=11\\)"
@@ -226,7 +226,7 @@ gdb_test "trace foo" "Tracepoint $decima
 # argument j.
 
 gdb_trace_setactions "set action for tracepoint 1" "" \
-    "collect i, j, global1, \(\*\(void \*\*\) \(\$$spreg\)\) @ 128" "^$"
+    "collect i, j, (int) global1, \(\*\(void \*\*\) \(\$$spreg\)\) @ 128" "^$"
 
 gdb_test_no_output "tstart"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/ftrace.c ./gdb/testsuite/gdb.trace/ftrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/ftrace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/ftrace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/ftrace.exp ./gdb/testsuite/gdb.trace/ftrace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/ftrace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/ftrace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
@@ -63,9 +63,36 @@ proc run_trace_experiment {} {
 
     gdb_test_no_output "tstart" "start trace experiment"
 
-    gdb_test "continue" \
-	".*Breakpoint \[0-9\]+, end .*" \
-	"advance through tracing"
+    # Fast tracepoint can be set in signal handler, so gdb_collect in
+    # IPA shouldn't call any non-async-signal-safe functions.  It is
+    # impractical to list all non-async-signal-safe functions, and set
+    # breakpoints on them, so choose malloc only in this test.
+    gdb_test "b -q malloc"
+
+    # Performance-wise, gdb_collect in IPA shouldn't call any syscall
+    # in order to keep fast tracepoint fast enough.
+    global gdb_prompt
+    set test "catch syscall"
+    gdb_test_multiple $test $test {
+	-re "The feature \'catch syscall\' is not supported.*\r\n$gdb_prompt $" {
+	}
+	-re ".*$gdb_prompt $" {
+	    pass $test
+	}
+    }
+
+    global decimal
+    set test "advance through tracing"
+    gdb_test_multiple "continue" $test {
+	-re "Thread 2 .* hit Catchpoint $decimal \\(call to syscall .*\\).*\r\n$gdb_prompt $" {
+	    # IPA starts a helper thread, which calls accept.  Ignore it.
+	    send_gdb "continue\n"
+	    exp_continue
+	}
+	-re "Breakpoint $decimal, end .*$gdb_prompt $" {
+	    pass $test
+	}
+    }
 
     gdb_test "tstatus" ".*Trace .*" "check on trace status"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/ftrace-lock.c ./gdb/testsuite/gdb.trace/ftrace-lock.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/ftrace-lock.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/ftrace-lock.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/ftrace-lock.exp ./gdb/testsuite/gdb.trace/ftrace-lock.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/ftrace-lock.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/ftrace-lock.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/infotrace.exp ./gdb/testsuite/gdb.trace/infotrace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/infotrace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/infotrace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/mi-traceframe-changed.exp ./gdb/testsuite/gdb.trace/mi-traceframe-changed.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/mi-traceframe-changed.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/mi-traceframe-changed.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp ./gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp ./gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/mi-trace-save.exp ./gdb/testsuite/gdb.trace/mi-trace-save.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/mi-trace-save.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/mi-trace-save.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/mi-trace-unavailable.exp ./gdb/testsuite/gdb.trace/mi-trace-unavailable.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/mi-trace-unavailable.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/mi-trace-unavailable.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/mi-tsv-changed.exp ./gdb/testsuite/gdb.trace/mi-tsv-changed.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/mi-tsv-changed.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/mi-tsv-changed.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/no-attach-trace.c ./gdb/testsuite/gdb.trace/no-attach-trace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/no-attach-trace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/no-attach-trace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2015-2017 Free Software Foundation, Inc.
+   Copyright 2015-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/no-attach-trace.exp ./gdb/testsuite/gdb.trace/no-attach-trace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/no-attach-trace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/no-attach-trace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/packetlen.exp ./gdb/testsuite/gdb.trace/packetlen.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/packetlen.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/packetlen.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/passc-dyn.exp ./gdb/testsuite/gdb.trace/passc-dyn.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/passc-dyn.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/passc-dyn.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/passcount.exp ./gdb/testsuite/gdb.trace/passcount.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/passcount.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/passcount.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/pending.c ./gdb/testsuite/gdb.trace/pending.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/pending.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/pending.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/pending.exp ./gdb/testsuite/gdb.trace/pending.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/pending.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/pending.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/pendshr1.c ./gdb/testsuite/gdb.trace/pendshr1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/pendshr1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/pendshr1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/pendshr2.c ./gdb/testsuite/gdb.trace/pendshr2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/pendshr2.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/pendshr2.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/pr16508.exp ./gdb/testsuite/gdb.trace/pr16508.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/pr16508.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/pr16508.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/qtro.c ./gdb/testsuite/gdb.trace/qtro.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/qtro.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/qtro.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/qtro.exp ./gdb/testsuite/gdb.trace/qtro.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/qtro.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/qtro.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/range-stepping.c ./gdb/testsuite/gdb.trace/range-stepping.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/range-stepping.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/range-stepping.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/range-stepping.exp ./gdb/testsuite/gdb.trace/range-stepping.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/range-stepping.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/range-stepping.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/read-memory.c ./gdb/testsuite/gdb.trace/read-memory.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/read-memory.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/read-memory.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/read-memory.exp ./gdb/testsuite/gdb.trace/read-memory.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/read-memory.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/read-memory.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2013-2017 Free Software Foundation, Inc.
+#   Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/report.exp ./gdb/testsuite/gdb.trace/report.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/report.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/report.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/save-trace.exp ./gdb/testsuite/gdb.trace/save-trace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/save-trace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/save-trace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/signal.c ./gdb/testsuite/gdb.trace/signal.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/signal.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/signal.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/signal.exp ./gdb/testsuite/gdb.trace/signal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/signal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/signal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2016-2017 Free Software Foundation, Inc.
+#   Copyright 2016-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/stap-trace.c ./gdb/testsuite/gdb.trace/stap-trace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/stap-trace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/stap-trace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/stap-trace.exp ./gdb/testsuite/gdb.trace/stap-trace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/stap-trace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/stap-trace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/status-stop.c ./gdb/testsuite/gdb.trace/status-stop.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/status-stop.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/status-stop.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/status-stop.exp ./gdb/testsuite/gdb.trace/status-stop.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/status-stop.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/status-stop.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/strace.c ./gdb/testsuite/gdb.trace/strace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/strace.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/strace.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/strace.exp ./gdb/testsuite/gdb.trace/strace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/strace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/strace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tfile.c ./gdb/testsuite/gdb.trace/tfile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tfile.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/tfile.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tfile.exp ./gdb/testsuite/gdb.trace/tfile.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tfile.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/tfile.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2010-2017 Free Software Foundation, Inc.
+#   Copyright 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tfind.exp ./gdb/testsuite/gdb.trace/tfind.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tfind.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/tfind.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-break.c ./gdb/testsuite/gdb.trace/trace-break.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-break.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/trace-break.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-break.exp ./gdb/testsuite/gdb.trace/trace-break.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-break.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/trace-break.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-buffer-size.c ./gdb/testsuite/gdb.trace/trace-buffer-size.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-buffer-size.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/trace-buffer-size.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-buffer-size.exp ./gdb/testsuite/gdb.trace/trace-buffer-size.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-buffer-size.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/trace-buffer-size.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tracecmd.exp ./gdb/testsuite/gdb.trace/tracecmd.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tracecmd.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/tracecmd.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-common.h ./gdb/testsuite/gdb.trace/trace-common.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-common.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/trace-common.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-condition.c ./gdb/testsuite/gdb.trace/trace-condition.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-condition.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/trace-condition.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-condition.exp ./gdb/testsuite/gdb.trace/trace-condition.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-condition.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/trace-condition.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-enable-disable.c ./gdb/testsuite/gdb.trace/trace-enable-disable.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-enable-disable.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/trace-enable-disable.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-enable-disable.exp ./gdb/testsuite/gdb.trace/trace-enable-disable.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-enable-disable.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/trace-enable-disable.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tracefile-pseudo-reg.c ./gdb/testsuite/gdb.trace/tracefile-pseudo-reg.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tracefile-pseudo-reg.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/tracefile-pseudo-reg.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tracefile-pseudo-reg.exp ./gdb/testsuite/gdb.trace/tracefile-pseudo-reg.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tracefile-pseudo-reg.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/tracefile-pseudo-reg.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-mt.c ./gdb/testsuite/gdb.trace/trace-mt.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-mt.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/trace-mt.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2012-2017 Free Software Foundation, Inc.
+   Copyright 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-mt.exp ./gdb/testsuite/gdb.trace/trace-mt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-mt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/trace-mt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-unavailable.c ./gdb/testsuite/gdb.trace/trace-unavailable.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/trace-unavailable.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/trace-unavailable.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tspeed.c ./gdb/testsuite/gdb.trace/tspeed.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tspeed.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/tspeed.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tspeed.exp ./gdb/testsuite/gdb.trace/tspeed.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tspeed.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/tspeed.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tstatus.exp ./gdb/testsuite/gdb.trace/tstatus.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tstatus.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/tstatus.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2011-2017 Free Software Foundation, Inc.
+# Copyright 2011-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tsv.exp ./gdb/testsuite/gdb.trace/tsv.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/tsv.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/tsv.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 2009-2017 Free Software Foundation, Inc.
+#   Copyright 2009-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/unavailable.cc ./gdb/testsuite/gdb.trace/unavailable.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/unavailable.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/unavailable.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2002-2017 Free Software Foundation, Inc.
+   Copyright 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.c ./gdb/testsuite/gdb.trace/unavailable-dwarf-piece.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/unavailable-dwarf-piece.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2013-2017 Free Software Foundation, Inc.
+   Copyright 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp ./gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 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
@@ -325,13 +325,7 @@ with_test_prefix "tracing bar" {
     gdb_test "continue" "Continuing\\.\[ \r\n\]+Breakpoint.*"
     gdb_test_no_output "tstop"
 
-    set endian ""
-    gdb_test_multiple "show endian" "show endian" {
-	-re ".* (big|little) endian.*$gdb_prompt $" {
-	    set endian $expect_out(1,string)
-	    pass "endianness: $endian"
-	}
-    }
+    set endian [get_endianness]
 
     gdb_test "tfind 0" "Found trace frame 0, tracepoint .*"
     if { $endian == "little" } {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/unavailable.exp ./gdb/testsuite/gdb.trace/unavailable.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/unavailable.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/unavailable.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1998-2017 Free Software Foundation, Inc.
+# Copyright 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/while-dyn.exp ./gdb/testsuite/gdb.trace/while-dyn.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/while-dyn.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/while-dyn.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/while-stepping.exp ./gdb/testsuite/gdb.trace/while-stepping.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.trace/while-stepping.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/while-stepping.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-#   Copyright 1998-2017 Free Software Foundation, Inc.
+#   Copyright 1998-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.tui/completion.exp ./gdb/testsuite/gdb.tui/completion.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.tui/completion.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.tui/completion.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-2018 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
@@ -22,12 +22,20 @@ if {[skip_tui_tests] || [target_info exi
 
 gdb_test_no_output "set max-completions unlimited"
 
-with_test_prefix "completion of layout names" {
+# TAB-complete INPUT_LINE, and expect EXPECTED_RE as completion match
+# output.
+proc test_tab_completion {input_line expected_re} {
+    global gdb_prompt
+
     set test "tab completion"
-    send_gdb "layout\t\t\t"
+    send_gdb "$input_line\t\t\t"
     gdb_test_multiple "" "$test" {
-	-re "asm *next *prev *regs *split *src *\r\n$gdb_prompt layout $" {
-	    pass "$test"
+	-re "$expected_re\r\n$gdb_prompt " {
+	    gdb_test_multiple "" "$test" {
+		-re "^$input_line $" {
+		    pass "$test"
+		}
+	    }
 	}
     }
     send_gdb "\003"
@@ -39,20 +47,10 @@ with_test_prefix "completion of layout n
     }
 }
 
-with_test_prefix "completion of focus command" {
-    set test "tab completion"
-    send_gdb "focus \t\t"
-    gdb_test_multiple "" "$test" {
-	-re "cmd *next *prev *src *\r\n$gdb_prompt focus $" {
-	    pass "$test"
-	}
-    }
+with_test_prefix "completion of layout names" {
+    test_tab_completion "layout" "asm *next *prev *regs *split *src *"
+}
 
-    send_gdb "\003"
-    set test "quit command input"
-    gdb_test_multiple "" "$test" {
-	-re "$gdb_prompt $" {
-	    pass "$test"
-	}
-    }
+with_test_prefix "completion of focus command" {
+    test_tab_completion "focus" "cmd *next *prev *src *"
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.tui/tui-disasm-long-lines.c ./gdb/testsuite/gdb.tui/tui-disasm-long-lines.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.tui/tui-disasm-long-lines.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.tui/tui-disasm-long-lines.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2016-2017 Free Software Foundation, Inc.
+   Copyright 2016-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp ./gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.tui/tui-layout.c ./gdb/testsuite/gdb.tui/tui-layout.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.tui/tui-layout.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.tui/tui-layout.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2017 Free Software Foundation, Inc.
+   Copyright 2017-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.tui/tui-layout.exp ./gdb/testsuite/gdb.tui/tui-layout.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.tui/tui-layout.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.tui/tui-layout.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2017 Free Software Foundation, Inc.
+# Copyright 2017-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp ./gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2017 Free Software Foundation, Inc.
+# Copyright 2017-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.xml/extra-regs.xml ./gdb/testsuite/gdb.xml/extra-regs.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.xml/extra-regs.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.xml/extra-regs.xml	2018-01-09 02:04:57.000000000 +0000
@@ -53,5 +53,6 @@
     <reg name="bitfields" bitsize="64" type="struct2"/>
     <reg name="flags" bitsize="32" type="flags"/>
     <reg name="mixed_flags" bitsize="32" type="mixed_flags"/>
+    <reg name="groupreg" bitsize="32" type="uint32" group="foo"/>
   </feature>
 </target>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.xml/maint_print_struct.exp ./gdb/testsuite/gdb.xml/maint_print_struct.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.xml/maint_print_struct.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.xml/maint_print_struct.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This testcase is part of GDB, the GNU debugger.
 #
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 #
 # Contributed by Intel Corp. <walfred.tedeschi@intel.com>
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.xml/maint_print_struct.xml ./gdb/testsuite/gdb.xml/maint_print_struct.xml
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.xml/maint_print_struct.xml	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.xml/maint_print_struct.xml	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2017 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.xml/tdesc-arch.exp ./gdb/testsuite/gdb.xml/tdesc-arch.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.xml/tdesc-arch.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.xml/tdesc-arch.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.xml/tdesc-errors.exp ./gdb/testsuite/gdb.xml/tdesc-errors.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.xml/tdesc-errors.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.xml/tdesc-errors.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.xml/tdesc-regs.exp ./gdb/testsuite/gdb.xml/tdesc-regs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.xml/tdesc-regs.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.xml/tdesc-regs.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 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
@@ -50,6 +50,9 @@ switch -glob -- [istarget] {
     "nios2-*-*" {
 	set core-regs {nios2-cpu.xml}
     }
+    "or1k-*-*" {
+	set core-regs {or1k-core.xml}
+    }
     "powerpc*-*-*" {
 	set regdir "rs6000/"
 	set core-regs {power-core.xml}
@@ -187,6 +190,9 @@ gdb_test "ptype \$flags" \
     "type = flag flags {\r\n *bool X @0;\r\n *uint32_t Y @2;\r\n}"
 gdb_test "ptype \$mixed_flags" \
     "type = flag mixed_flags {\r\n *bool A @0;\r\n *uint32_t B @1-3;\r\n *bool C @4;\r\n *uint32_t D @5;\r\n *uint32_t @6-7;\r\n *enum {yes = 1, no = 0, maybe = 2, so} Z @8-9;\r\n}"
+# Reggroups should have at least general and the extra foo group
+gdb_test "maintenance print reggroups" \
+    " Group\[ \t\]+Type\[ \t\]+\r\n.* general\[ \t\]+user\[ \t\]+\r\n.* foo\[ \t\]+user\[ \t\]+"
 
 load_description "core-only.xml" "" "test-regs.xml"
 # The extra register from the previous description should be gone.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.xml/tdesc-xinclude.exp ./gdb/testsuite/gdb.xml/tdesc-xinclude.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/gdb.xml/tdesc-xinclude.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/gdb.xml/tdesc-xinclude.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/ada.exp ./gdb/testsuite/lib/ada.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/ada.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/ada.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/append_gdb_boards_dir.exp ./gdb/testsuite/lib/append_gdb_boards_dir.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/append_gdb_boards_dir.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/append_gdb_boards_dir.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/build-piece.exp ./gdb/testsuite/lib/build-piece.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/build-piece.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/build-piece.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/cache.exp ./gdb/testsuite/lib/cache.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/cache.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/cache.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/cell.exp ./gdb/testsuite/lib/cell.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/cell.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/cell.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2009-2017 Free Software Foundation, Inc.
+# Copyright 2009-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/cl_util.c ./gdb/testsuite/lib/cl_util.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/cl_util.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/cl_util.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/cl_util.h ./gdb/testsuite/lib/cl_util.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/cl_util.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/cl_util.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/compiler.c ./gdb/testsuite/lib/compiler.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/compiler.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/compiler.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test file is part of GDB, the GNU debugger.
 
-   Copyright 1995-2017 Free Software Foundation, Inc.
+   Copyright 1995-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/compiler.cc ./gdb/testsuite/lib/compiler.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/compiler.cc	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/compiler.cc	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This test file is part of GDB, the GNU debugger.
 
-   Copyright 1995-2017 Free Software Foundation, Inc.
+   Copyright 1995-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/completion-support.exp ./gdb/testsuite/lib/completion-support.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/completion-support.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/lib/completion-support.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,483 @@
+# Copyright 2017-2018 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.
+
+# Any variable or procedure in the namespace whose name starts with
+# "_" is private to the module.  Do not use these.
+
+namespace eval completion {
+    variable bell_re "\\\x07"
+
+    # List of all quote chars.
+    variable all_quotes_list {"'" "\""}
+
+    # List of all quote chars, including no-quote at all.
+    variable maybe_quoted_list {"" "'" "\""}
+
+    variable keyword_list {"if" "task" "thread"}
+
+    variable explicit_opts_list \
+	{"-function" "-label" "-line" "-qualified" "-source"}
+}
+
+# Make a regular expression that matches a TAB completion list.
+
+proc make_tab_completion_list_re { completion_list } {
+    # readline separates the completion columns that fit on the same
+    # line with whitespace.  Since we're testing under "set width
+    # unlimited", all completions will be printed on the same line.
+    # The amount of whitespace depends on the length of the widest
+    # completion.  We could compute that here and expect the exact
+    # number of ws characters between each completion match, but to
+    # keep it simple, we accept any number of characters.
+    set ws " +"
+
+    set completion_list_re ""
+    foreach c $completion_list {
+	append completion_list_re [string_to_regexp $c]
+	append completion_list_re $ws
+    }
+    append completion_list_re $ws
+
+    return $completion_list_re
+}
+
+# Make a regular expression that matches a "complete" command
+# completion list.  CMD_PREFIX is the command prefix added to each
+# completion match.
+
+proc make_cmd_completion_list_re { cmd_prefix completion_list start_quote_char end_quote_char } {
+
+    set completion_list_re ""
+    foreach c $completion_list {
+	# The command prefix is included in all completion matches.
+	append completion_list_re [string_to_regexp $cmd_prefix$start_quote_char$c$end_quote_char]
+	append completion_list_re "\r\n"
+    }
+
+    return $completion_list_re
+}
+
+# Clear the input line.
+
+proc clear_input_line { test } {
+    global gdb_prompt
+
+    send_gdb "\003"
+    gdb_test_multiple "" "$test (clearing input line)" {
+	-re "Quit\r\n$gdb_prompt $" {
+	}
+    }
+}
+
+# Test that completing LINE with TAB completes to nothing.
+
+proc test_gdb_complete_tab_none { line } {
+    set line_re [string_to_regexp $line]
+
+    set test "tab complete \"$line\""
+    send_gdb "$line\t"
+    gdb_test_multiple "" "$test" {
+	-re "^$line_re$completion::bell_re$" {
+	    pass "$test"
+	}
+    }
+
+    clear_input_line $test
+}
+
+# Test that completing INPUT_LINE with TAB completes to
+# COMPLETE_LINE_RE.  APPEND_CHAR_RE is the character expected to be
+# appended after EXPECTED_OUTPUT.  Normally that's a whitespace, but
+# in some cases it's some other character, like a colon.
+
+proc test_gdb_complete_tab_unique { input_line complete_line_re append_char_re } {
+
+    set test "tab complete \"$input_line\""
+    send_gdb "$input_line\t"
+    gdb_test_multiple "" "$test" {
+	-re "^$complete_line_re$append_char_re$" {
+	    pass "$test"
+	}
+    }
+
+    clear_input_line $test
+}
+
+# Test that completing INPUT_LINE with TAB completes to "INPUT_LINE +
+# ADD_COMPLETED_LINE" and that it displays the completion matches in
+# COMPLETION_LIST.
+
+proc test_gdb_complete_tab_multiple { input_line add_completed_line \
+					  completion_list } {
+    global gdb_prompt
+
+    set input_line_re [string_to_regexp $input_line]
+    set add_completed_line_re [string_to_regexp $add_completed_line]
+
+    set expected_re [make_tab_completion_list_re $completion_list]
+
+    set test "tab complete \"$input_line\""
+    send_gdb "$input_line\t"
+    gdb_test_multiple "" "$test (first tab)" {
+	-re "^${input_line_re}${completion::bell_re}$add_completed_line_re$" {
+	    send_gdb "\t"
+	    # If we auto-completed to an ambiguous prefix, we need an
+	    # extra tab to show the matches list.
+	    if {$add_completed_line != ""} {
+		send_gdb "\t"
+		set maybe_bell ${completion::bell_re}
+	    } else {
+		set maybe_bell ""
+	    }
+	    gdb_test_multiple "" "$test (second tab)" {
+		-re "^${maybe_bell}\r\n$expected_re\r\n$gdb_prompt $input_line_re$add_completed_line_re$" {
+		    pass "$test"
+		}
+	    }
+	}
+    }
+
+    clear_input_line $test
+}
+
+# Test that completing LINE with the complete command completes to
+# nothing.
+
+proc test_gdb_complete_cmd_none { line } {
+    gdb_test_no_output "complete $line" "cmd complete \"$line\""
+}
+
+# Test that completing LINE with the complete command completes to
+# COMPLETE_LINE_RE.
+
+proc test_gdb_complete_cmd_unique { input_line complete_line_re } {
+    global gdb_prompt
+
+    set cmd "complete $input_line"
+    set cmd_re [string_to_regexp $cmd]
+    set test "cmd complete \"$input_line\""
+    gdb_test_multiple $cmd $test {
+	-re "^$cmd_re\r\n$complete_line_re\r\n$gdb_prompt $" {
+	    pass $test
+	}
+    }
+}
+
+# Test that completing "CMD_PREFIX + COMPLETION_WORD" with the
+# complete command displays the COMPLETION_LIST completion list.  Each
+# entry in the list should be prefixed by CMD_PREFIX.
+
+proc test_gdb_complete_cmd_multiple { cmd_prefix completion_word completion_list {start_quote_char ""} {end_quote_char ""} } {
+    global gdb_prompt
+
+    set expected_re [make_cmd_completion_list_re $cmd_prefix $completion_list $start_quote_char $end_quote_char]
+    set cmd_re [string_to_regexp "complete $cmd_prefix$completion_word"]
+    set test "cmd complete \"$cmd_prefix$completion_word\""
+    gdb_test_multiple "complete $cmd_prefix$completion_word" $test {
+	-re "^$cmd_re\r\n$expected_re$gdb_prompt $" {
+	    pass $test
+	}
+    }
+}
+
+# Test that completing LINE completes to nothing.
+
+proc test_gdb_complete_none { input_line } {
+    test_gdb_complete_tab_none $input_line
+    test_gdb_complete_cmd_none $input_line
+}
+
+# Test that completing INPUT_LINE completes to COMPLETE_LINE_RE.
+#
+# APPEND_CHAR is the character expected to be appended after
+# EXPECTED_OUTPUT when TAB completing.  Normally that's a whitespace,
+# but in some cases it's some other character, like a colon.
+#
+# If MAX_COMPLETIONS is true, then we expect the completion to hit the
+# max-completions limit.  Since we're expecting a unique completion
+# match, this will only be visible in the "complete" command output.
+# Tab completion will just auto-complete the only match and won't
+# display a match list.
+#
+# Note: usually it's more convenient to pass a literal string instead
+# of a regular expression (as COMPLETE_LINE_RE).  See
+# test_gdb_complete_unique below.
+
+proc test_gdb_complete_unique_re { input_line complete_line_re {append_char " "} {max_completions 0}} {
+    set append_char_re [string_to_regexp $append_char]
+    test_gdb_complete_tab_unique $input_line $complete_line_re $append_char_re
+
+    # Trim INPUT_LINE and COMPLETE LINE, for the case we're completing
+    # a command with leading whitespace.  Leading command whitespace
+    # is discarded by GDB.
+    set input_line [string trimleft $input_line]
+    set expected_output_re [string trimleft $complete_line_re]
+    if {$append_char_re != " "} {
+	append expected_output_re $append_char_re
+    }
+    if {$max_completions} {
+	set max_completion_reached_msg \
+	    "*** List may be truncated, max-completions reached. ***"
+	set input_line_re \
+	    [string_to_regexp $input_line]
+	set max_completion_reached_msg_re \
+	    [string_to_regexp $max_completion_reached_msg]
+
+	append expected_output_re \
+	    "\r\n$input_line_re $max_completion_reached_msg_re"
+    }
+
+    test_gdb_complete_cmd_unique $input_line $expected_output_re
+}
+
+# Like TEST_GDB_COMPLETE_UNIQUE_RE, but COMPLETE_LINE is a string, not
+# a regular expression.
+
+proc test_gdb_complete_unique { input_line complete_line {append_char " "} {max_completions 0}} {
+    set complete_line_re [string_to_regexp $complete_line]
+    test_gdb_complete_unique_re $input_line $complete_line_re $append_char $max_completions
+}
+
+# Test that completing "CMD_PREFIX + COMPLETION_WORD" adds
+# ADD_COMPLETED_LINE to the input line, and that it displays
+# COMPLETION_LIST as completion match list.  COMPLETION_WORD is the
+# completion word.
+
+proc test_gdb_complete_multiple { cmd_prefix completion_word add_completed_line completion_list {start_quote_char ""} {end_quote_char ""}} {
+    test_gdb_complete_tab_multiple "$cmd_prefix$completion_word" $add_completed_line $completion_list
+    test_gdb_complete_cmd_multiple $cmd_prefix $completion_word $completion_list $start_quote_char $end_quote_char
+}
+
+# Test that all the substring prefixes of INPUT from [0..START) to
+# [0..END) complete to COMPLETION_RE (a regular expression).  If END
+# is ommitted, default to the length of INPUT.
+
+proc test_complete_prefix_range_re {input completion_re start {end -1}} {
+    if {$end == -1} {
+	set end [string length $input]
+    }
+
+    for {set i $start} {$i < $end} {incr i} {
+	set line [string range $input 0 $i]
+	test_gdb_complete_unique_re "$line" $completion_re
+    }
+}
+
+# Test that all the substring prefixes of COMPLETION from [0..START)
+# to [0..END) complete to COMPLETION.  If END is ommitted, default to
+# the length of COMPLETION.
+
+proc test_complete_prefix_range {completion start {end -1}} {
+    set completion_re [string_to_regexp $completion]
+    test_complete_prefix_range_re $completion $completion_re $start $end
+}
+
+# Find NEEDLE in HAYSTACK and return the index _after_ NEEDLE.  E.g.,
+# searching for "(" in "foo(int)" returns 4, which would be useful if
+# you want to find the "(" to try completing "foo(".
+
+proc index_after {needle haystack} {
+    set start [string first $needle $haystack]
+    if {$start == -1} {
+	error "could not find \"$needle\" in \"$haystack\""
+    }
+    return [expr $start + [string length $needle]]
+}
+
+# Create a breakpoint using BREAK_COMMAND, and return the number
+# of locations found.
+
+proc completion::_create_bp {break_command} {
+    global gdb_prompt
+    global decimal hex
+
+    set found_locations -1
+
+    set test "set breakpoint"
+    gdb_test_multiple "$break_command" $test {
+	-re "\\\(\($decimal\) locations\\\)\r\n$gdb_prompt $" {
+	    set found_locations "$expect_out(1,string)"
+	}
+	-re "Breakpoint $decimal at $hex: file .*, line .*$gdb_prompt $" {
+	    set found_locations 1
+	}
+	-re "Make breakpoint pending on future shared library load.*y or .n.. $" {
+	    send_gdb "n\n"
+	    gdb_test_multiple "" "$test (prompt)" {
+		-re "$gdb_prompt $" {
+		}
+	    }
+	    set found_locations 0
+	}
+	-re "invalid explicit location argument, \[^\r\n\]*\r\n$gdb_prompt $" {
+	    set found_locations 0
+	}
+	-re "Function \[^\r\n\]* not defined in \[^\r\n\]*\r\n$gdb_prompt $" {
+	    set found_locations 0
+	}
+    }
+    return $found_locations
+}
+
+# Return true if lists A and B have the same elements.  Order of
+# elements does not matter.
+
+proc completion::_leq {a b} {
+    return [expr {[lsort $a] eq [lsort $b]}]
+}
+
+# Check that trying to create a breakpoint using BREAK_COMMAND fails.
+
+proc check_setting_bp_fails {break_command} {
+    with_test_prefix "\"$break_command\" creates no bp locations" {
+	set found_locations [completion::_create_bp $break_command]
+	gdb_assert {$found_locations == 0} "matches"
+	if {$found_locations != 0} {
+	    delete_breakpoints
+	}
+    }
+}
+
+# Check that creating the breakpoint using BREAK_COMMAND finds the
+# same breakpoint locations as completing BREAK_COMMAND.
+# COMPLETION_LIST is the expected completion match list.
+
+proc check_bp_locations_match_list {break_command completion_list} {
+    global gdb_prompt
+    global hex
+
+    with_test_prefix "compare \"$break_command\" completion list with bp location list" {
+	set num_locations [completion::_create_bp $break_command]
+
+	set found_list ""
+
+	set any "\[^\r\n\]*"
+
+	gdb_test_multiple "info breakpoint \$bpnum" "info breakpoint" {
+	    -re "in \(\[^\r\n\]*\) at " {
+		# A function location.
+		set found_location "$expect_out(1,string)"
+		lappend found_list $found_location
+		exp_continue
+	    }
+	    -re "breakpoint${any}keep${any}y${any}$hex\[ \t]*\(${any}\)\r\n" {
+		# A label location.
+		set found_location "$expect_out(1,string)"
+		lappend found_list $found_location
+		exp_continue
+	    }
+	    -re "$gdb_prompt $" {
+	    }
+	}
+
+	gdb_assert {[completion::_leq $found_list $completion_list]} "matches"
+
+	delete_breakpoints
+    }
+}
+
+# Build linespec and explicit locations out of all the combinations of
+# SOURCES, FUNCTIONS and LABELS, with all combinations of possible
+# quoting and whitespace around separators, and run BODY_LINESPEC and
+# BODY_EXPLICIT in the context of the caller for each combination.  A
+# variable named "location" is set in the callers context with the
+# currently iterated location.
+
+proc foreach_location_functions { sources functions body_linespec body_explicit } {
+    upvar source source
+    upvar function function
+    upvar source_sep source_sep
+    upvar location location
+
+    foreach source $sources {
+	# Test with and without source quoting.
+	foreach sqc $completion::maybe_quoted_list {
+	    if {$source == "" && $sqc != ""} {
+		# Invalid combination.
+		continue
+	    }
+
+	    # Test with and without function quoting.
+	    foreach fqc $completion::maybe_quoted_list {
+		# Test known and unknown functions.
+		foreach function $functions {
+		    # Linespec version.  Test with and without spacing
+		    # after the source/colon colon separator.
+		    foreach source_sep {"" ":" ": "} {
+			# Skip invalid combinations.
+			if {$source == "" && $source_sep != ""} {
+			    continue
+			}
+			if {$source != "" && $source_sep == ""} {
+			    continue
+			}
+
+			set location "${sqc}${source}${sqc}${source_sep}${fqc}$function${fqc}"
+			uplevel 1 $body_linespec
+		    }
+
+		    # Explicit locations version.
+		    if {$source != ""} {
+			set loc_src "-source ${sqc}${source}${sqc} "
+		    } else {
+			set loc_src ""
+		    }
+
+		    set location "${loc_src}-function ${fqc}$function${fqc}"
+		    uplevel 1 $body_explicit
+		}
+	    }
+	}
+    }
+}
+
+# Same as foreach_locations_functions, but also iterate over
+# combinations of labels.
+proc foreach_location_labels { sources functions labels body_linespec body_explicit } {
+    upvar source source
+    upvar function function
+    upvar label label
+    upvar source_sep source_sep
+    upvar label_sep label_sep
+    upvar location location
+
+    # Test both with a known source file and without a source file
+    # component.
+    foreach_location_functions \
+	$sources \
+	$functions \
+	{
+	    # Linespec version.  Test various spacing around the label
+	    # colon separator.
+	    set saved_location ${location}
+	    foreach label_sep {":" " :" ": " " : "} {
+		# Test both known and unknown label.
+		foreach label $labels {
+		    set location "${saved_location}${label_sep}$label"
+		    uplevel 1 $body_linespec
+		}
+	    }
+	} \
+	{
+	    # Explicit locations version.
+	    set saved_location ${location}
+	    foreach label $labels {
+		set location "${saved_location} -label $label"
+		uplevel 1 $body_explicit
+	    }
+	}
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/cp-support.exp ./gdb/testsuite/lib/cp-support.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/cp-support.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/cp-support.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This test code is part of GDB, the GNU debugger.
 
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 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
@@ -15,6 +15,15 @@
 # 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 "data-structures.exp"
+
+# Controls whether detailed logging for cp_test_ptype_class is enabled.
+# By default, it is not.  Enable it to assist with troubleshooting
+# failed cp_test_ptype_class tests.  [Users can simply add the statement
+# "set debug_cp_ptype_test_class true" after this file is loaded.]
+
+set ::debug_cp_test_ptype_class false
+
 # Auxiliary function to check for known problems.
 #
 # EXPECTED_STRING is the string expected by the test.
@@ -38,7 +47,41 @@ proc cp_check_errata { expected_string a
     }
 }
 
-# Test ptype of a class.
+# A convenience procedure for outputting debug info for cp_test_ptype_class
+# to the log.  Set the global variable "debug_cp_test_ptype_class"
+# to enable logging (to help with debugging failures).
+
+proc cp_ptype_class_verbose {msg} {
+    global debug_cp_test_ptype_class
+
+    if {$debug_cp_test_ptype_class} {
+	verbose -log $msg
+    }
+}
+
+# A namespace to wrap internal procedures.
+
+namespace eval ::cp_support_internal {
+
+    # A convenience procedure to return the next element of the queue.
+    proc next_line {qid} {
+	set elem {}
+
+	while {$elem == "" && ![queue empty $qid]} {
+	    # We make cp_test_ptype_class trim whitespace
+	    set elem [queue pop $qid]
+	}
+
+	if {$elem == ""} {
+	    cp_ptype_class_verbose "next line element: no more lines"
+	} else {
+	    cp_ptype_class_verbose "next line element: \"$elem\""
+	}
+	return $elem
+    }
+}
+
+# Test ptype of a class.  Return `true' if the test passes, false otherwise.
 #
 # Different C++ compilers produce different output.  To accommodate all
 # the variations listed below, I read the output of "ptype" and process
@@ -87,6 +130,20 @@ proc cp_check_errata { expected_string a
 #      the class has a typedef with the given access type and the
 #      given declaration.
 #
+#   { type "access" "key" "name" children }
+#
+#      The class has a nested type definition with the given ACCESS.
+#      KEY is the keyword of the nested type ("enum", "union", "struct",
+#         "class").
+#      NAME is the (tag) name of the type.
+#      CHILDREN is a list of the type's children.  For struct and union keys,
+#        this is simply the same type of list that is normally passed to
+#        this procedure.  For enums the list of children should be the
+#        defined enumerators.  For unions it is a list of declarations.
+#        NOTE: The enum key will add a regexp to handle optional storage
+#        class specifiers (": unsigned int", e.g.).  The caller need not
+#        specify this.
+#
 # If you test the same class declaration more than once, you can specify
 # IN_CLASS_TABLE as "ibid".  "ibid" means: look for a previous class
 # table that had the same IN_KEY and IN_TAG, and re-use that table.
@@ -102,6 +159,11 @@ proc cp_check_errata { expected_string a
 # 
 # IN_PTYPE_ARG are arguments to pass to ptype.  The default is "/r".
 #
+# RECURSIVE_QID is used internally to call this procedure recursively
+# when, e.g., testing nested type definitions.  The "ptype" command will
+# not be sent to GDB and the lines in the queue given by this argument will
+# be used instead.
+#
 # gdb can vary the output of ptype in several ways:
 #
 # . CLASS/STRUCT
@@ -178,16 +240,20 @@ proc cp_check_errata { expected_string a
 #
 # -- chastain 2004-08-07
 
-proc cp_test_ptype_class { in_exp in_testname in_key in_tag in_class_table { in_tail "" } { in_errata_table { } } { in_ptype_arg /r } } {
+proc cp_test_ptype_class { in_exp in_testname in_key in_tag in_class_table
+			   { in_tail "" } { in_errata_table { } }
+			   { in_ptype_arg /r } { recursive_qid 0 } } {
     global gdb_prompt
     set wsopt "\[\r\n\t \]*"
 
-    # The test name defaults to the command, but without the
-    # arguments, for historical reasons.
+    if {$recursive_qid == 0} {
+	# The test name defaults to the command, but without the
+	# arguments, for historical reasons.
 
-    if { "$in_testname" == "" } then { set in_testname "ptype $in_exp" }
+	if { "$in_testname" == "" } then { set in_testname "ptype $in_exp" }
 
-    set in_command "ptype${in_ptype_arg} $in_exp"
+	set in_command "ptype${in_ptype_arg} $in_exp"
+    }
 
     # Save class tables in a history array for reuse.
 
@@ -195,7 +261,7 @@ proc cp_test_ptype_class { in_exp in_tes
     if { $in_class_table == "ibid" } then {
 	if { ! [info exists cp_class_table_history("$in_key,$in_tag") ] } then {
 	    fail "$in_testname // bad ibid"
-	    return
+	    return false
 	}
 	set in_class_table $cp_class_table_history("$in_key,$in_tag")
     } else {
@@ -209,6 +275,9 @@ proc cp_test_ptype_class { in_exp in_tes
     set list_fields  { }
     set list_methods { }
     set list_typedefs { }
+    set list_types    { }
+    set list_enums    { }
+    set list_unions   { }
 
     foreach class_line $in_class_table {
 	switch [lindex $class_line 0] {
@@ -217,7 +286,11 @@ proc cp_test_ptype_class { in_exp in_tes
 	    "field"  { lappend list_fields  [lrange $class_line 1 2] }
 	    "method" { lappend list_methods [lrange $class_line 1 2] }
 	    "typedef" { lappend list_typedefs [lrange $class_line 1 2] }
-	    default  { fail "$in_testname // bad line in class table: $class_line"; return; }
+	    "type"    { lappend list_types [lrange $class_line 1 4] }
+	    default  {
+		fail "$in_testname // bad line in class table: $class_line"
+		return false
+	    }
 	}
     }
 
@@ -225,24 +298,56 @@ proc cp_test_ptype_class { in_exp in_tes
     # These are: { count ccess-type regular-expression }.
 
     set list_synth { }
-    lappend list_synth [list 0 "public" "$in_tag & operator=\\($in_tag const ?&\\);"]
-    lappend list_synth [list 0 "public" "$in_tag\\((int,|) ?$in_tag const ?&\\);"]
-    lappend list_synth [list 0 "public" "$in_tag\\((int|void|)\\);"]
-
-    # Actually do the ptype.
-
-    set parse_okay 0
-    gdb_test_multiple "$in_command" "$in_testname // parse failed" {
-	-re "type = (struct|class)${wsopt}(\[^ \t\]*)${wsopt}(\\\[with .*\\\]${wsopt})?((:\[^\{\]*)?)${wsopt}\{(.*)\}${wsopt}(\[^\r\n\]*)\[\r\n\]+$gdb_prompt $" {
-	    set parse_okay          1
-	    set actual_key          $expect_out(1,string)
-	    set actual_tag          $expect_out(2,string)
-	    set actual_base_string  $expect_out(4,string)
-	    set actual_body         $expect_out(6,string)
-	    set actual_tail         $expect_out(7,string)
+    lappend list_synth [list 0 "public" \
+			    "$in_tag & operator=\\($in_tag const ?&\\);"]
+    lappend list_synth [list 0 "public" \
+			    "$in_tag\\((int,|) ?$in_tag const ?&\\);"]
+    lappend list_synth [list 0 "public" \
+			    "$in_tag\\((int|void|)\\);"]
+
+    # Partial regexp for parsing the struct/class header.
+    set regexp_header "(struct|class)${wsopt}(\[^ \t\]*)${wsopt}"
+    append regexp_header "(\\\[with .*\\\]${wsopt})?((:\[^\{\]*)?)${wsopt}\{"
+    if {$recursive_qid == 0} {
+	# Actually do the ptype.
+
+	# For processing the output of ptype, we must get to the prompt.
+	set the_regexp "type = ${regexp_header}"
+	append the_regexp "(.*)\}${wsopt}(\[^\r\n\]*)\[\r\n\]+$gdb_prompt $"
+	set parse_okay 0
+	gdb_test_multiple "$in_command" "$in_testname // parse failed" {
+	    -re $the_regexp {
+		set parse_okay          1
+		set actual_key          $expect_out(1,string)
+		set actual_tag          $expect_out(2,string)
+		set actual_base_string  $expect_out(4,string)
+		set actual_body         $expect_out(6,string)
+		set actual_tail         $expect_out(7,string)
+	    }
 	}
+    } else {
+	# The struct/class header by the first element in the line queue.
+	# "Parse" that instead of the output of ptype.
+	set header [cp_support_internal::next_line $recursive_qid]
+	set parse_okay [regexp $regexp_header $header dummy actual_key \
+			    actual_tag dummy actual_base_string]
+
+	if {$parse_okay} {
+	    cp_ptype_class_verbose \
+		"Parsing nested type definition (parse_okay=$parse_okay):"
+	    cp_ptype_class_verbose \
+		"\tactual_key=$actual_key, actual_tag=$actual_tag"
+	    cp_ptype_class_verbose "\tactual_base_string=$actual_base_string"
+	}
+
+	# Cannot have a tail with a nested type definition.
+	set actual_tail ""
+    }
+
+    if { ! $parse_okay } {
+	cp_ptype_class_verbose "*** parse failed ***"
+	return false
     }
-    if { ! $parse_okay } then { return }
 
     # Check the actual key.  It would be nice to require that it match
     # the input key, but gdb does not support that.  For now, accept any
@@ -256,7 +361,7 @@ proc cp_test_ptype_class { in_exp in_tes
 	    cp_check_errata "class"  "$actual_key" $in_errata_table
 	    cp_check_errata "struct" "$actual_key" $in_errata_table
 	    fail "$in_testname // wrong key: $actual_key"
-	    return
+	    return false
 	}
     }
 
@@ -265,7 +370,7 @@ proc cp_test_ptype_class { in_exp in_tes
     if { "$actual_tag" != "$in_tag" } then {
 	cp_check_errata "$in_tag" "$actual_tag" $in_errata_table
 	fail "$in_testname // wrong tag: $actual_tag"
-	return
+	return false
     }
 
     # Check the actual bases.
@@ -281,11 +386,11 @@ proc cp_test_ptype_class { in_exp in_tes
 
     if { [llength $list_actual_bases] < [llength $list_bases] } then {
 	fail "$in_testname // too few bases"
-	return
+	return false
     }
     if { [llength $list_actual_bases] > [llength $list_bases] } then {
 	fail "$in_testname // too many bases"
-	return
+	return false
     }
 
     # Check each base.
@@ -296,7 +401,7 @@ proc cp_test_ptype_class { in_exp in_tes
 	if { "$actual_base" != "$base" } then {
 	    cp_check_errata "$base" "$actual_base" $in_errata_table
 	    fail "$in_testname // wrong base: $actual_base"
-	    return
+	    return false
 	}
 	set list_bases [lreplace $list_bases 0 0]
     }
@@ -306,11 +411,26 @@ proc cp_test_ptype_class { in_exp in_tes
     set last_was_access 0
     set vbase_match 0
 
-    foreach actual_line [split $actual_body "\r\n"] {
+    if {$recursive_qid == 0} {
+	# Use a queue to hold the lines that will be checked.
+	# This will allow processing below to remove lines from the input
+	# more easily.
+	set line_queue [::Queue::new]
+	foreach l [split $actual_body "\r\n"] {
+	    set l [string trim $l]
+	    if {$l != ""} {
+		queue push $line_queue $l
+	    }
+	}
+    } else {
+	set line_queue $recursive_qid
+    }
+
+    while {![queue empty $line_queue]} {
 
-	# Chomp the line.
+	# Get the next line.
 
-	set actual_line [string trim $actual_line]
+	set actual_line [cp_support_internal::next_line $line_queue]
 	if { "$actual_line" == "" } then { continue }
 
 	# Access specifiers.
@@ -319,7 +439,8 @@ proc cp_test_ptype_class { in_exp in_tes
 	    set access "$s1"
 	    if { $last_was_access } then {
 		fail "$in_testname // redundant access specifier"
-		return
+		queue delete $line_queue
+		return false
 	    }
 	    set last_was_access 1
 	    continue
@@ -335,7 +456,8 @@ proc cp_test_ptype_class { in_exp in_tes
 		if { "$access" != "private" } then {
 		    cp_check_errata "private" "$access" $in_errata_table
 		    fail "$in_testname // wrong access specifier for virtual base: $access"
-		    return
+		    queue delete $line_queue
+		    return false
 		}
 		set list_vbases [lreplace $list_vbases 0 0]
 		set vbase_match 1
@@ -348,11 +470,18 @@ proc cp_test_ptype_class { in_exp in_tes
 	if { [llength $list_fields] > 0 } then {
 	    set field_access [lindex [lindex $list_fields 0] 0]
 	    set field_decl   [lindex [lindex $list_fields 0] 1]
+	    if {$recursive_qid > 0} {
+		cp_ptype_class_verbose "\tactual_line=$actual_line"
+		cp_ptype_class_verbose "\tfield_access=$field_access"
+		cp_ptype_class_verbose "\tfield_decl=$field_decl"
+		cp_ptype_class_verbose "\taccess=$access"
+	    }
 	    if { "$actual_line" == "$field_decl" } then {
 		if { "$access" != "$field_access" } then {
 		    cp_check_errata "$field_access" "$access" $in_errata_table
 		    fail "$in_testname // wrong access specifier for field: $access"
-		    return
+		    queue delete $line_queue
+		    return false
 		}
 		set list_fields [lreplace $list_fields 0 0]
 		continue
@@ -361,7 +490,8 @@ proc cp_test_ptype_class { in_exp in_tes
 	    # Data fields must appear before synths and methods.
 	    cp_check_errata "$field_decl" "$actual_line" $in_errata_table
 	    fail "$in_testname // unrecognized line type 1: $actual_line"
-	    return
+	    queue delete $line_queue
+	    return false
 	}
 
 	# Method function.
@@ -373,7 +503,8 @@ proc cp_test_ptype_class { in_exp in_tes
 		if { "$access" != "$method_access" } then {
 		    cp_check_errata "$method_access" "$access" $in_errata_table
 		    fail "$in_testname // wrong access specifier for method: $access"
-		    return
+		    queue delete $line_queue
+		    return false
 		}
 		set list_methods [lreplace $list_methods 0 0]
 		continue
@@ -385,7 +516,8 @@ proc cp_test_ptype_class { in_exp in_tes
 		if { "$access" != "$method_access" } then {
 		    cp_check_errata "$method_access" "$access" $in_errata_table
 		    fail "$in_testname // wrong access specifier for method: $access"
-		    return
+		    queue delete $line_queue
+		    return false
 		}
 		set list_methods [lreplace $list_methods 0 0]
 		continue
@@ -401,13 +533,130 @@ proc cp_test_ptype_class { in_exp in_tes
 		if {![string equal $access $typedef_access]} {
 		    cp_check_errata $typedef_access $access $in_errata_table
 		    fail "$in_testname // wrong access specifier for typedef: $access"
-		    return
+		    queue delete $line_queue
+		    return false
 		}
 		set list_typedefs [lreplace $list_typedefs 0 0]
 		continue
 	    }
 	}
 
+	# Nested type definitions
+
+	if {[llength $list_types] > 0} {
+	    cp_ptype_class_verbose "Nested type definition: "
+	    lassign [lindex $list_types 0] nested_access nested_key \
+		nested_name nested_children
+	    set msg "nested_access=$nested_access, nested_key=$nested_key, "
+	    append msg "nested_name=$nested_name, "
+	    append msg "[llength $nested_children] children"
+	    cp_ptype_class_verbose $msg
+
+	    if {![string equal $access $nested_access]} {
+		cp_check_errata $nested_access $access $in_errata_table
+		set txt "$in_testname // wrong access specifier for "
+		append txt "nested type: $access"
+		fail $txt
+		queue delete $line_queue
+		return false
+	    }
+
+	    switch $nested_key {
+		enum {
+		    set expected_result \
+			"enum $nested_name (: (unsigned )?int)? \{"
+		    foreach c $nested_children {
+			append expected_result "$c, "
+		    }
+		    set expected_result \
+			[string trimright $expected_result { ,}]
+		    append expected_result "\};"
+		    cp_ptype_class_verbose \
+			"Expecting enum result: $expected_result"
+		    if {![regexp -- $expected_result $actual_line]} {
+			set txt "$in_testname // wrong nested type enum"
+			append txt " definition: $actual_linejj"
+			fail $txt
+			queue delete $line_queue
+			return false
+		    }
+		    cp_ptype_class_verbose "passed enum $nested_name"
+		}
+
+		union {
+		    set expected_result "union $nested_name \{"
+		    cp_ptype_class_verbose \
+			"Expecting union result: $expected_result"
+		    if {![string equal $expected_result $actual_line]} {
+			set txt "$in_testname // wrong nested type union"
+			append txt " definition: $actual_line"
+			fail $txt
+			queue delete $line_queue
+			return false
+		    }
+
+		    # This will be followed by lines for each member of the
+		    # union.
+		    cp_ptype_class_verbose "matched union name"
+		    foreach m $nested_children {
+			set actual_line \
+			    [cp_support_internal::next_line $line_queue]
+			cp_ptype_class_verbose "Expecting union member: $m"
+			if {![string equal $m $actual_line]} {
+			    set txt "$in_testname // unexpected union member: "
+			    append txt $m
+			    fail $txt
+			    queue delete $line_queue
+			    return false
+			}
+			cp_ptype_class_verbose "matched union child \"$m\""
+		    }
+
+		    # Nested union types always end with a trailing curly brace.
+		    set actual_line [cp_support_internal::next_line $line_queue]
+		    if {![string equal $actual_line "\};"]} {
+			fail "$in_testname // missing closing curly brace"
+			queue delete $line_queue
+			return false
+		    }
+		    cp_ptype_class_verbose "passed union $nested_name"
+		}
+
+		struct -
+		class {
+		    cp_ptype_class_verbose \
+			"Expecting [llength $nested_children] children"
+		    foreach c $nested_children {
+			cp_ptype_class_verbose "\t$c"
+		    }
+		    # Start by pushing the current line back into the queue
+		    # so that the recursive call can parse the class/struct
+		    # header.
+		    queue unpush $line_queue $actual_line
+		    cp_ptype_class_verbose \
+			"Recursing for type $nested_key $nested_name"
+		    if {![cp_test_ptype_class $in_exp $in_testname $nested_key \
+			      $nested_name $nested_children $in_tail \
+			      $in_errata_table $in_ptype_arg $line_queue]} {
+			# The recursive call has already called `fail' and
+			# released the line queue.
+			return false
+		    }
+		    cp_ptype_class_verbose \
+			"passed nested type $nested_key $nested_name"
+		}
+
+		default {
+		    fail "$in_testname // invalid nested type key: $nested_key"
+		    queue delete $line_queue
+		    return false
+		}
+	    }
+
+	    set list_types [lreplace $list_types 0 0]
+	    continue
+	}
+
 	# Synthetic operators.  These are optional and can be mixed in
 	# with the methods in any order, but duplicates are wrong.
 	#
@@ -427,7 +676,8 @@ proc cp_test_ptype_class { in_exp in_tes
 		if { "$access" != "$synth_access" } then {
 		    cp_check_errata "$synth_access" "$access" $in_errata_table
 		    fail "$in_testname // wrong access specifier for synthetic operator: $access"
-		    return
+		    queue delete $line_queue
+		    return false
 		}
 
 		if { $synth_count > 0 } then {
@@ -449,6 +699,12 @@ proc cp_test_ptype_class { in_exp in_tes
 	}
 	if { $synth_match } then { continue }
 
+	# If checking a nested type/recursively and we see a closing curly
+	# brace, we're done.
+	if {$recursive_qid != 0 && [string equal $actual_line "\};"]} {
+	    break
+	}
+
 	# Unrecognized line.
 
 	if { [llength $list_methods] > 0 } then {
@@ -457,7 +713,13 @@ proc cp_test_ptype_class { in_exp in_tes
 	}
 
 	fail "$in_testname // unrecognized line type 2: $actual_line"
-	return
+	queue delete $line_queue
+	return false
+    }
+
+    # Done with the line queue.
+    if {$recursive_qid == 0} {
+	queue delete $line_queue
     }
 
     # Check for missing elements.
@@ -465,23 +727,23 @@ proc cp_test_ptype_class { in_exp in_tes
     if { $vbase_match } then {
 	if { [llength $list_vbases] > 0 } then {
 	    fail "$in_testname // missing virtual base pointers"
-	    return
+	    return false
 	}
     }
 
     if { [llength $list_fields] > 0 } then {
 	fail "$in_testname // missing fields"
-	return
+	return false
     }
 
     if { [llength $list_methods] > 0 } then {
 	fail "$in_testname // missing methods"
-	return
+	return false
     }
 
     if {[llength $list_typedefs] > 0} {
 	fail "$in_testname // missing typedefs"
-	return
+	return false
     }
 
     # Check the tail.
@@ -490,11 +752,15 @@ proc cp_test_ptype_class { in_exp in_tes
     if { "$actual_tail" != "$in_tail" } then {
 	cp_check_errata "$in_tail" "$actual_tail" $in_errata_table
 	fail "$in_testname // wrong tail: $actual_tail"
-	return
+	return false
     }
 
-    # It all worked!
+    # It all worked, but don't call `pass' if we've been called
+    # recursively.
+
+    if {$recursive_qid == 0} {
+	pass "$in_testname"
+    }
 
-    pass "$in_testname"
-    return
+    return true
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/data-structures.exp ./gdb/testsuite/lib/data-structures.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/data-structures.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/lib/data-structures.exp	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,164 @@
+# Copyright 2017-2018 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 implements some simple data structures in Tcl.
+
+# A namespace/commands to support a stack.
+#
+# To create a stack, call ::Stack::new, recording the returned object ID
+# for future calls to manipulate the stack object.
+#
+# Example:
+#
+# set sid [::Stack::new]
+# stack push $sid a
+# stack push $sid b
+# stack empty $sid;  # returns false
+# stack pop $sid;    # returns "b"
+# stack pop $sid;    # returns "a"
+# stack pop $sid;    # errors with "stack is empty"
+# stack delete $sid1
+
+namespace eval ::Stack {
+    # A counter used to create object IDs
+    variable num_ 0
+
+    # An array holding all object lists, indexed by object ID.
+    variable data_
+
+    # Create a new stack object, returning its object ID.
+    proc new {} {
+	variable num_
+	variable data_
+
+	set oid [incr num_]
+	set data_($oid) [list]
+	return $oid
+    }
+
+    # Delete the given stack ID.
+    proc delete {oid} {
+	variable data_
+
+	error_if $oid
+	unset data_($oid)
+    }
+
+    # Returns whether the given stack is empty.
+    proc empty {oid} {
+	variable data_
+
+	error_if $oid
+	return [expr {[llength $data_($oid)] == 0}]
+    }
+
+    # Push ELEM onto the stack given by OID.
+    proc push {oid elem} {
+	variable data_
+
+	error_if $oid
+	lappend data_($oid) $elem
+    }
+
+    # Return and pop the top element on OID.  It is an error to pop
+    # an empty stack.
+    proc pop {oid} {
+	variable data_
+
+	error_if $oid
+	if {[llength $data_($oid)] == 0} {
+	    ::error "stack is empty"
+	}
+	set elem [lindex $data_($oid) end]
+	set data_($oid) [lreplace $data_($oid) end end]
+	return $elem
+    }
+
+    # Returns the depth of a given ID.
+    proc length {oid} {
+	variable data_
+
+	error_if $oid
+	return [llength $data_($oid)]
+    }
+
+    # Error handler for invalid object IDs.
+    proc error_if {oid} {
+	variable data_
+
+	if {![info exists data_($oid)]} {
+	    ::error "object ID $oid does not exist"
+	}
+    }
+
+    # Export procs to be used.
+    namespace export empty push pop new delete length error_if
+
+    # Create an ensemble command to use instead of requiring users
+    # to type namespace proc names.
+    namespace ensemble create -command ::stack
+}
+
+# A namespace/commands to support a queue.
+#
+# To create a queue, call ::Queue::new, recording the returned queue ID
+# for future calls to manipulate the queue object.
+#
+# Example:
+#
+# set qid [::Queue::new]
+# queue push $qid a
+# queue push $qid b
+# queue empty $qid;  # returns false
+# queue pop $qid;    # returns "a"
+# queue pop $qid;    # returns "b"
+# queue pop $qid;    # errors with "queue is empty"
+# queue delete $qid
+
+namespace eval ::Queue {
+
+    # Remove and return the oldest element in the queue given by OID.
+    # It is an error to pop an empty queue.
+    proc pop {oid} {
+	variable ::Stack::data_
+
+	error_if $oid
+	if {[llength $data_($oid)] == 0} {
+	    error "queue is empty"
+	}
+	set elem [lindex $data_($oid) 0]
+	set data_($oid) [lreplace $data_($oid) 0 0]
+	return $elem
+    }
+
+    # "Unpush" ELEM back to the head of the queue given by QID.
+    proc unpush {oid elem} {
+	variable ::Stack::data_
+
+	error_if $oid
+	set data_($oid) [linsert $data_($oid) 0 $elem]
+    }
+
+    # Re-use some common routines from the Stack implementation.
+    namespace import ::Stack::create ::Stack::new ::Stack::empty \
+	::Stack::delete ::Stack::push ::Stack::length ::Stack::error_if
+
+    # Export procs to be used.
+    namespace export new empty push pop new delete length error_if unpush
+
+    # Create an ensemble command to use instead of requiring users
+    # to type namespace proc names.
+    namespace ensemble create -command ::queue
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/d-support.exp ./gdb/testsuite/lib/d-support.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/d-support.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/d-support.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/dtrace.exp ./gdb/testsuite/lib/dtrace.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/dtrace.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/dtrace.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/dwarf.exp ./gdb/testsuite/lib/dwarf.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/dwarf.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/dwarf.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/fortran.exp ./gdb/testsuite/lib/fortran.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/fortran.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/fortran.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This test code is part of GDB, the GNU debugger.
 
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/future.exp ./gdb/testsuite/lib/future.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/future.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/future.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2004-2017 Free Software Foundation, Inc.
+# Copyright 2004-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/gdb.exp ./gdb/testsuite/lib/gdb.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/gdb.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/gdb.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 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
@@ -226,6 +226,19 @@ proc delete_breakpoints {} {
     }
 }
 
+# Returns true iff the target supports using the "run" command.
+
+proc target_can_use_run_cmd {} {
+    if [target_info exists use_gdb_stub] {
+	# In this case, when we connect, the inferior is already
+	# running.
+	return 0
+    }
+
+    # Assume yes.
+    return 1
+}
+
 # Generic run command.
 #
 # The second pattern below matches up to the first newline *only*.
@@ -370,9 +383,46 @@ proc gdb_start_cmd {args} {
     return -1
 }
 
+# Generic starti command.  Return 0 if we could start the program, -1
+# if we could not.
+#
+# N.B. This function does not wait for gdb to return to the prompt,
+# that is the caller's responsibility.
+
+proc gdb_starti_cmd {args} {
+    global gdb_prompt use_gdb_stub
+
+    foreach command [gdb_init_commands] {
+	send_gdb "$command\n"
+	gdb_expect 30 {
+	    -re "$gdb_prompt $" { }
+	    default {
+		perror "gdb_init_command for target failed"
+		return -1
+	    }
+	}
+    }
+
+    if $use_gdb_stub {
+	return -1
+    }
+
+    send_gdb "starti $args\n"
+    gdb_expect 60 {
+	-re "The program .* has been started already.*y or n. $" {
+	    send_gdb "y\n"
+	    exp_continue
+	}
+	-re "Starting program: \[^\r\n\]*" {
+	    return 0
+	}
+    }
+    return -1
+}
+
 # Set a breakpoint at FUNCTION.  If there is an additional argument it is
 # a list of options; the supported options are allow-pending, temporary,
-# message, no-message, and passfail.
+# message, no-message, passfail and qualified.
 # The result is 1 for success, 0 for failure.
 #
 # Note: The handling of message vs no-message is messed up, but it's based
@@ -397,6 +447,10 @@ proc gdb_breakpoint { function args } {
 	set break_message "Temporary breakpoint"
     }
 
+    if {[lsearch -exact $args qualified] != -1} {
+	append break_command " -qualified"
+    }
+
     set print_pass 0
     set print_fail 1
     set no_message_loc [lsearch -exact $args no-message]
@@ -1000,7 +1054,7 @@ proc gdb_test { args } {
     }
 
     return [gdb_test_multiple $command $message {
-	-re "\[\r\n\]*($pattern)\[\r\n\]+$gdb_prompt $" {
+	-re "\[\r\n\]*(?:$pattern)\[\r\n\]+$gdb_prompt $" {
 	    if ![string match "" $message] then {
 		pass "$message"
             }
@@ -1043,7 +1097,8 @@ proc gdb_test_no_output { args } {
 # This is useful when the sequence is long and contains ".*", a single
 # regexp to match the entire output can get a timeout much easier.
 #
-# COMMAND is the command to send.
+# COMMAND is the command to execute, send to GDB with send_gdb.  If
+#   this is the null string no command is sent.
 # TEST_NAME is passed to pass/fail.  COMMAND is used if TEST_NAME is "".
 # EXPECTED_OUTPUT_LIST is a list of regexps of expected output, which are
 # processed in order, and all must be present in the output.
@@ -1066,7 +1121,9 @@ proc gdb_test_sequence { command test_na
 	set test_name $command
     }
     lappend expected_output_list ""; # implicit ".*" before gdb prompt
-    send_gdb "$command\n"
+    if { $command != "" } {
+	send_gdb "$command\n"
+    }
     return [gdb_expect_list $test_name "$gdb_prompt $" $expected_output_list]
 }
 
@@ -3368,6 +3425,34 @@ proc gdb_wrapper_init { args } {
     set gdb_wrapper_target [current_target_name]
 }
 
+# Determine options that we always want to pass to the compiler.
+gdb_caching_proc universal_compile_options {
+    set me "universal_compile_options"
+    set options {}
+
+    set src [standard_temp_file ccopts[pid].c]
+    set obj [standard_temp_file ccopts[pid].o]
+
+    gdb_produce_source $src {
+	int foo(void) { return 0; }
+    }
+
+    # Try an option for disabling colored diagnostics.  Some compilers
+    # yield colored diagnostics by default (when run from a tty) unless
+    # such an option is specified.
+    set opt "additional_flags=-fdiagnostics-color=never"
+    set lines [target_compile $src $obj object [list "quiet" $opt]]
+    if [string match "" $lines] then {
+	# Seems to have worked; use the option.
+	lappend options $opt
+    }
+    file delete $src
+    file delete $obj
+
+    verbose "$me:  returning $options" 2
+    return $options
+}
+
 # Some targets need to always link a special object in.  Save its path here.
 global gdb_saved_set_unbuffered_mode_obj
 set gdb_saved_set_unbuffered_mode_obj ""
@@ -3419,7 +3504,12 @@ proc gdb_compile {source dest type optio
 
     # Add platform-specific options if a shared library was specified using
     # "shlib=librarypath" in OPTIONS.
-    set new_options ""
+    if {[lsearch -exact $options rust] != -1} {
+	# -fdiagnostics-color is not a rustcc option.
+    } else {
+	set new_options [universal_compile_options]
+    }
+    set new_options {}
     set shlib_found 0
     set shlib_load 0
     foreach opt $options {
@@ -5537,7 +5627,7 @@ proc get_valueof { fmt exp default {test
 
     set val ${default}
     gdb_test_multiple "print${fmt} ${exp}" "$test" {
-	-re "\\$\[0-9\]* = (.*)\[\r\n\]*$gdb_prompt $" {
+	-re "\\$\[0-9\]* = (\[^\r\n\]*)\[\r\n\]*$gdb_prompt $" {
 	    set val $expect_out(1,string)
 	    pass "$test ($val)"
 	}
@@ -5564,7 +5654,7 @@ proc get_integer_valueof { exp default {
     gdb_test_multiple "print /d ${exp}" "$test" {
 	-re "\\$\[0-9\]* = (\[-\]*\[0-9\]*).*$gdb_prompt $" {
 	    set val $expect_out(1,string)
-	    pass "$test ($val)"
+	    pass "$test"
 	}
 	timeout {
 	    fail "$test (timeout)"
@@ -5671,6 +5761,19 @@ proc set_remotetimeout { timeout } {
     }
 }
 
+# Get the target's current endianness and return it.
+proc get_endianness { } {
+    global gdb_prompt
+
+    gdb_test_multiple "show endian" "determine endianness" {
+	-re ".* (little|big) endian.*\r\n$gdb_prompt $" {
+	    # Pass silently.
+	    return $expect_out(1,string)
+	}
+    }
+    return "little"
+}
+
 # ROOT and FULL are file names.  Returns the relative path from ROOT
 # to FULL.  Note that FULL must be in a subdirectory of ROOT.
 # For example, given ROOT = /usr/bin and FULL = /usr/bin/ls, this
@@ -6070,5 +6173,24 @@ proc dejagnu_version { } {
     return $dg_ver
 }
 
+# Define user-defined command COMMAND using the COMMAND_LIST as the
+# command's definition.  The terminating "end" is added automatically.
+
+proc gdb_define_cmd {command command_list} {
+    global gdb_prompt
+
+    set input [multi_line_input {*}$command_list "end"]
+    set test "define $command"
+
+    gdb_test_multiple "define $command" $test {
+	-re "End with"  {
+	    gdb_test_multiple $input $test {
+		-re "\r\n$gdb_prompt " {
+		}
+	    }
+	}
+    }
+}
+
 # Always load compatibility stuff.
 load_lib future.exp
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/gdb-guile.exp ./gdb/testsuite/lib/gdb-guile.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/gdb-guile.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/gdb-guile.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/gdb-python.exp ./gdb/testsuite/lib/gdb-python.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/gdb-python.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/gdb-python.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 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
@@ -46,19 +46,23 @@ proc gdb_py_test_multiple { name args } 
     return 0
 }
 
-# Return the result of python expression EXPR.
-# DEFAULT is returned if there's an error.
-# This is modelled after get_integer_valueof.
+# Return the result of python expression EXPR.  DEFAULT is returned if
+# there's an error.  TEST is the test message to use.  It can be
+# omitted, in which case a test message is built from EXP.  This is
+# modeled after get_integer_valueof.
 
-proc get_python_valueof { exp default } {
+proc get_python_valueof { exp default {test ""} } {
     global gdb_prompt
 
-    set test "get python valueof \"${exp}\""
+    if {$test == ""} {
+	set test "get python valueof \"${exp}\""
+    }
+
     set val ${default}
     gdb_test_multiple "python print (\"valueof: %s\" % (${exp}))" "$test" {
 	-re "valueof: (\[^\r\n\]*)\[\r\n\]*$gdb_prompt $" {
 	    set val $expect_out(1,string)
-	    pass "$test ($val)"
+	    pass "$test"
 	}
 	timeout {
 	    fail "$test (timeout)"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/gdbserver-support.exp ./gdb/testsuite/lib/gdbserver-support.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/gdbserver-support.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/gdbserver-support.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2000-2017 Free Software Foundation, Inc.
+# Copyright 2000-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/gdb-utils.exp ./gdb/testsuite/lib/gdb-utils.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/gdb-utils.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/gdb-utils.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2014-2017 Free Software Foundation, Inc.
+# Copyright 2014-2018 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
@@ -34,6 +34,6 @@ proc gdb_init_commands {} {
 
 proc string_to_regexp {str} {
     set result $str
-    regsub -all {[]*+.|()^$\[\\]} $str {\\&} result
+    regsub -all {[]*+.|(){}^$\[\\]} $str {\\&} result
     return $result
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/gen-perf-test.exp ./gdb/testsuite/lib/gen-perf-test.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/gen-perf-test.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/gen-perf-test.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/go.exp ./gdb/testsuite/lib/go.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/go.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/go.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/memory.exp ./gdb/testsuite/lib/memory.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/memory.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/memory.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2012-2017 Free Software Foundation, Inc.
+# Copyright 2012-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/mi-support.exp ./gdb/testsuite/lib/mi-support.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/mi-support.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/mi-support.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Free Software Foundation, Inc.
+# Copyright 1999-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/objc.exp ./gdb/testsuite/lib/objc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/objc.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/objc.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 # This test code is part of GDB, the GNU debugger.
 
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/opencl.exp ./gdb/testsuite/lib/opencl.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/opencl.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/opencl.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2010-2017 Free Software Foundation, Inc.
+# Copyright 2010-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/opencl_hostapp.c ./gdb/testsuite/lib/opencl_hostapp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/opencl_hostapp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/opencl_hostapp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This testcase is part of GDB, the GNU debugger.
 
-   Copyright 2010-2017 Free Software Foundation, Inc.
+   Copyright 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/pascal.exp ./gdb/testsuite/lib/pascal.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/pascal.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/pascal.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2007-2017 Free Software Foundation, Inc.
+# Copyright 2007-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/pdtrace ./gdb/testsuite/lib/pdtrace
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/pdtrace	2018-01-02 02:06:26.000000000 +0000
+++ ./gdb/testsuite/lib/pdtrace	2018-01-09 02:08:03.000000000 +0000
@@ -2,7 +2,7 @@
 
 # A Poor(but Free)'s Man dtrace
 #
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 #
 # Contributed by Oracle, Inc.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/pdtrace.in ./gdb/testsuite/lib/pdtrace.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/pdtrace.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/pdtrace.in	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
 
 # A Poor(but Free)'s Man dtrace
 #
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
+# Copyright (C) 2014-2018 Free Software Foundation, Inc.
 #
 # Contributed by Oracle, Inc.
 #
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/perftest.exp ./gdb/testsuite/lib/perftest.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/perftest.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/perftest.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2017 Free Software Foundation, Inc.
+# Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/prelink-support.exp ./gdb/testsuite/lib/prelink-support.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/prelink-support.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/prelink-support.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/prompt.exp ./gdb/testsuite/lib/prompt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/prompt.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/prompt.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/range-stepping-support.exp ./gdb/testsuite/lib/range-stepping-support.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/range-stepping-support.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/range-stepping-support.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2013-2017 Free Software Foundation, Inc.
+# Copyright 2013-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/read1.c ./gdb/testsuite/lib/read1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/read1.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/read1.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* This is part of GDB, the GNU debugger.
 
-   Copyright 2011-2017 Free Software Foundation, Inc.
+   Copyright 2011-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/rust-support.exp ./gdb/testsuite/lib/rust-support.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/rust-support.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/rust-support.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2016-2017 Free Software Foundation, Inc.
+# Copyright 2016-2018 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/selftest-support.exp ./gdb/testsuite/lib/selftest-support.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/selftest-support.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/selftest-support.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 2003-2017 Free Software Foundation, Inc.
+# Copyright 2003-2018 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
@@ -88,10 +88,10 @@ proc selftest_setup { executable functio
 
     set description "run until breakpoint at $function"
     gdb_test_multiple "run $INTERNAL_GDBFLAGS" "$description" {
-        -re "Starting program.*Breakpoint \[0-9\]+,.*$function .data.* at .*main.c:.*$gdb_prompt $" {
+        -re "Starting program.*Breakpoint \[0-9\]+,.*$function \\(\\).* at .*main.c:.*$gdb_prompt $" {
             pass "$description"
         }
-        -re "Starting program.*Breakpoint \[0-9\]+,.*$function .data.*$gdb_prompt $" {
+        -re "Starting program.*Breakpoint \[0-9\]+,.*$function \\(\\).*$gdb_prompt $" {
             xfail "$description (line numbers scrambled?)"
         }
 	-re "Starting program.*Breakpoint \[0-9\]+,.* at .*main.c:.*$function.*$gdb_prompt $" {
@@ -124,8 +124,23 @@ proc selftest_setup { executable functio
 proc do_self_tests {function body} {
     global GDB tool
 
-    # Are we on a target board.
-    if { [is_remote target] || ![isnative] } then {
+    # Are we testing with a remote board?  In that case, the target
+    # won't have access to the GDB's auxilliary data files
+    # (data-directory, etc.).  It's simpler to just skip.
+    if [is_remote target] {
+	return
+    }
+
+    # ... or seemingly testing with a cross debugger?  Likely GDB
+    # wouldn't be able to debug itself then...
+    if ![isnative] {
+	return
+    }
+
+    # ... or with a stub-like server?  I.e., gdbserver + "target
+    # remote"?  In that case we won't be able to pass command line
+    # arguments to GDB, and selftest_setup wants to do exactly that.
+    if [target_info exists use_gdb_stub] {
 	return
     }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/set_unbuffered_mode.c ./gdb/testsuite/lib/set_unbuffered_mode.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/set_unbuffered_mode.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/set_unbuffered_mode.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/trace-support.exp ./gdb/testsuite/lib/trace-support.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/trace-support.exp	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/trace-support.exp	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2017 Free Software Foundation, Inc.
+# Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/unbuffer_output.c ./gdb/testsuite/lib/unbuffer_output.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/lib/unbuffer_output.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/lib/unbuffer_output.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/Makefile.in ./gdb/testsuite/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/Makefile.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/Makefile.in	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 # Makefile for regression testing the GNU debugger.
-# Copyright 1992-2017 Free Software Foundation, Inc.
+# Copyright 1992-2018 Free Software Foundation, Inc.
 
 # This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/README ./gdb/testsuite/README
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/testsuite/README	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/testsuite/README	2018-01-09 02:04:57.000000000 +0000
@@ -579,3 +579,48 @@ Note that it is also acceptable, and oft
 running the test at all.  This is the better option if the limitation
 is intrinsic to the environment, rather than a bug expected to be
 fixed in the near future.
+
+Local vs Remote vs Native
+*************************
+
+It's unfortunately easy to get confused in the testsuite about what's
+native and what's not, what's remote and what's not.  The confusion is
+caused by the overlap in vocabulary between DejaGnu and GDB.
+
+From a DejaGnu point of view:
+
+ - native: the host or target board is considered native if the its
+   triplet is the same as the build system's triplet,
+
+ - remote: the host or target board is considered remote if it's
+   running on a different machine, and thus require ssh, for example,
+   to run commands, versus simply running commands directly.
+
+Note that they are not mutually exclusive, as you can have a remote
+machine that has the same triplet as the build machine.
+
+From a GDB point of view:
+
+ - native: when GDB uses system calls such as ptrace to interact
+   directly with processes on the same system its running on,
+
+ - remote: when GDB speaks the RSP (Remote Serial Protocol) with
+   another program doing the ptrace stuff.
+
+Note that they are mutually exclusive.  An inferior can only be either
+debugged with the native target, or with the remote target a specific
+time.
+
+That means that there are cases where the target is not remote for
+DejaGnu, but is remote for GDB (e.g. running GDBserver on the same
+machine).
+
+You can also have a remote target for DejaGnu, but native for GDB
+(e.g.  building on x86 a GDB that runs on ARM and running the
+testsuite with a remote host).
+
+Therefore, care must be taken to check for the right kind of remote.
+Use [is_remote target] to check whether the DejaGnu target board is
+remote.  When what you really want to know is whether GDB is using the
+remote protocol, because feature X is only available when GDB debugs
+natively, check gdb_protocol instead.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/thread.c ./gdb/thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/thread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/thread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Multi-process/thread control for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    Contributed by Lynx Real-Time Systems, Inc.  Los Gatos, CA.
 
@@ -30,7 +30,6 @@
 #include "command.h"
 #include "gdbcmd.h"
 #include "regcache.h"
-#include "gdb.h"
 #include "btrace.h"
 
 #include <ctype.h>
@@ -45,13 +44,10 @@
 #include "thread-fsm.h"
 #include "tid-parse.h"
 #include <algorithm>
+#include "common/gdb_optional.h"
 
 /* Definition of struct thread_info exported to gdbthread.h.  */
 
-/* Prototypes for exported functions.  */
-
-void _initialize_thread (void);
-
 /* Prototypes for local functions.  */
 
 struct thread_info *thread_list = NULL;
@@ -64,11 +60,7 @@ static int highest_thread_num;
    spawned new threads we haven't heard of yet.  */
 static int threads_executing;
 
-static void thread_apply_all_command (char *, int);
 static int thread_alive (struct thread_info *);
-static void info_threads_command (char *, int);
-static void thread_apply_command (char *, int);
-static void restore_current_thread (ptid_t);
 
 /* RAII type used to increase / decrease the refcount of each thread
    in a given list of threads.  */
@@ -162,7 +154,7 @@ thread_has_single_step_breakpoints_set (
 
 int
 thread_has_single_step_breakpoint_here (struct thread_info *tp,
-					struct address_space *aspace,
+					const address_space *aspace,
 					CORE_ADDR addr)
 {
   struct breakpoint *ss_bps = tp->control.single_step_breakpoints;
@@ -324,11 +316,11 @@ add_thread_silent (ptid_t ptid)
 }
 
 struct thread_info *
-add_thread_with_info (ptid_t ptid, struct private_thread_info *priv)
+add_thread_with_info (ptid_t ptid, private_thread_info *priv)
 {
   struct thread_info *result = add_thread_silent (ptid);
 
-  result->priv = priv;
+  result->priv.reset (priv);
 
   if (print_thread_events)
     printf_unfiltered (_("[New %s]\n"), target_pid_to_str (ptid));
@@ -343,6 +335,8 @@ add_thread (ptid_t ptid)
   return add_thread_with_info (ptid, NULL);
 }
 
+private_thread_info::~private_thread_info () = default;
+
 thread_info::thread_info (struct inferior *inf_, ptid_t ptid_)
   : ptid (ptid_), inf (inf_)
 {
@@ -359,14 +353,6 @@ thread_info::thread_info (struct inferio
 
 thread_info::~thread_info ()
 {
-  if (this->priv)
-    {
-      if (this->private_dtor)
-	this->private_dtor (this->priv);
-      else
-	xfree (this->priv);
-    }
-
   xfree (this->name);
 }
 
@@ -523,6 +509,7 @@ find_thread_id (struct inferior *inf, in
 }
 
 /* Find a thread_info by matching PTID.  */
+
 struct thread_info *
 find_thread_ptid (ptid_t ptid)
 {
@@ -535,6 +522,17 @@ find_thread_ptid (ptid_t ptid)
   return NULL;
 }
 
+/* See gdbthread.h.  */
+
+struct thread_info *
+find_thread_by_handle (struct value *thread_handle, struct inferior *inf)
+{
+  return target_thread_handle_to_thread_info
+	   (value_contents_all (thread_handle),
+	    TYPE_LENGTH (value_type (thread_handle)),
+	    inf);
+}
+
 /*
  * Thread iterator function.
  *
@@ -712,51 +710,6 @@ any_live_thread_of_process (int pid)
   return tp_executing;
 }
 
-/* Print a list of thread ids currently known, and the total number of
-   threads.  To be used from within catch_errors.  */
-static int
-do_captured_list_thread_ids (struct ui_out *uiout, void *arg)
-{
-  struct thread_info *tp;
-  int num = 0;
-  struct cleanup *cleanup_chain;
-  int current_thread = -1;
-
-  update_thread_list ();
-
-  cleanup_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "thread-ids");
-
-  for (tp = thread_list; tp; tp = tp->next)
-    {
-      if (tp->state == THREAD_EXITED)
-	continue;
-
-      if (tp->ptid == inferior_ptid)
-	current_thread = tp->global_num;
-
-      num++;
-      uiout->field_int ("thread-id", tp->global_num);
-    }
-
-  do_cleanups (cleanup_chain);
-
-  if (current_thread != -1)
-    uiout->field_int ("current-thread-id", current_thread);
-  uiout->field_int ("number-of-threads", num);
-  return GDB_RC_OK;
-}
-
-/* Official gdblib interface function to get a list of thread ids and
-   the total number.  */
-enum gdb_rc
-gdb_list_thread_ids (struct ui_out *uiout, char **error_message)
-{
-  if (catch_exceptions_with_msg (uiout, do_captured_list_thread_ids, NULL,
-				 error_message, RETURN_MASK_ALL) < 0)
-    return GDB_RC_FAIL;
-  return GDB_RC_OK;
-}
-
 /* Return true if TP is an active thread.  */
 static int
 thread_alive (struct thread_info *tp)
@@ -1236,13 +1189,12 @@ should_print_thread (const char *request
    thread ids.  */
 
 static void
-print_thread_info_1 (struct ui_out *uiout, char *requested_threads,
+print_thread_info_1 (struct ui_out *uiout, const char *requested_threads,
 		     int global_ids, int pid,
 		     int show_global_ids)
 {
   struct thread_info *tp;
   ptid_t current_ptid;
-  struct cleanup *old_chain;
   const char *extra_info, *name, *target_id;
   struct inferior *inf;
   int default_inf_num = current_inferior ()->num;
@@ -1250,158 +1202,143 @@ print_thread_info_1 (struct ui_out *uiou
   update_thread_list ();
   current_ptid = inferior_ptid;
 
-  /* We'll be switching threads temporarily.  */
-  old_chain = make_cleanup_restore_current_thread ();
-
-  /* For backward compatibility, we make a list for MI.  A table is
-     preferable for the CLI, though, because it shows table
-     headers.  */
-  if (uiout->is_mi_like_p ())
-    make_cleanup_ui_out_list_begin_end (uiout, "threads");
-  else
-    {
-      int n_threads = 0;
-
-      for (tp = thread_list; tp; tp = tp->next)
-	{
-	  if (!should_print_thread (requested_threads, default_inf_num,
-				    global_ids, pid, tp))
-	    continue;
+  {
+    /* For backward compatibility, we make a list for MI.  A table is
+       preferable for the CLI, though, because it shows table
+       headers.  */
+    gdb::optional<ui_out_emit_list> list_emitter;
+    gdb::optional<ui_out_emit_table> table_emitter;
+
+    if (uiout->is_mi_like_p ())
+      list_emitter.emplace (uiout, "threads");
+    else
+      {
+	int n_threads = 0;
 
-	  ++n_threads;
-	}
+	for (tp = thread_list; tp; tp = tp->next)
+	  {
+	    if (!should_print_thread (requested_threads, default_inf_num,
+				      global_ids, pid, tp))
+	      continue;
 
-      if (n_threads == 0)
-	{
-	  if (requested_threads == NULL || *requested_threads == '\0')
-	    uiout->message (_("No threads.\n"));
-	  else
-	    uiout->message (_("No threads match '%s'.\n"),
-			    requested_threads);
-	  do_cleanups (old_chain);
-	  return;
-	}
+	    ++n_threads;
+	  }
 
-      if (show_global_ids || uiout->is_mi_like_p ())
-	make_cleanup_ui_out_table_begin_end (uiout, 5, n_threads, "threads");
-      else
-	make_cleanup_ui_out_table_begin_end (uiout, 4, n_threads, "threads");
+	if (n_threads == 0)
+	  {
+	    if (requested_threads == NULL || *requested_threads == '\0')
+	      uiout->message (_("No threads.\n"));
+	    else
+	      uiout->message (_("No threads match '%s'.\n"),
+			      requested_threads);
+	    return;
+	  }
 
-      uiout->table_header (1, ui_left, "current", "");
+	table_emitter.emplace (uiout, show_global_ids ? 5 : 4,
+			       n_threads, "threads");
 
-      if (!uiout->is_mi_like_p ())
+	uiout->table_header (1, ui_left, "current", "");
 	uiout->table_header (4, ui_left, "id-in-tg", "Id");
-      if (show_global_ids || uiout->is_mi_like_p ())
-	uiout->table_header (4, ui_left, "id", "GId");
-      uiout->table_header (17, ui_left, "target-id", "Target Id");
-      uiout->table_header (1, ui_left, "frame", "Frame");
-      uiout->table_body ();
-    }
+	if (show_global_ids)
+	  uiout->table_header (4, ui_left, "id", "GId");
+	uiout->table_header (17, ui_left, "target-id", "Target Id");
+	uiout->table_header (1, ui_left, "frame", "Frame");
+	uiout->table_body ();
+      }
 
-  ALL_THREADS_BY_INFERIOR (inf, tp)
-    {
-      struct cleanup *chain2;
-      int core;
+    /* We'll be switching threads temporarily.  */
+    scoped_restore_current_thread restore_thread;
 
-      if (!should_print_thread (requested_threads, default_inf_num,
-				global_ids, pid, tp))
-	continue;
+    ALL_THREADS_BY_INFERIOR (inf, tp)
+      {
+	int core;
 
-      chain2 = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
+	if (!should_print_thread (requested_threads, default_inf_num,
+				  global_ids, pid, tp))
+	  continue;
 
-      if (uiout->is_mi_like_p ())
-	{
-	  /* Compatibility.  */
-	  if (tp->ptid == current_ptid)
-	    uiout->text ("* ");
-	  else
-	    uiout->text ("  ");
-	}
-      else
-	{
-	  if (tp->ptid == current_ptid)
-	    uiout->field_string ("current", "*");
-	  else
-	    uiout->field_skip ("current");
-	}
+	ui_out_emit_tuple tuple_emitter (uiout, NULL);
 
-      if (!uiout->is_mi_like_p ())
-	uiout->field_string ("id-in-tg", print_thread_id (tp));
+	if (!uiout->is_mi_like_p ())
+	  {
+	    if (tp->ptid == current_ptid)
+	      uiout->field_string ("current", "*");
+	    else
+	      uiout->field_skip ("current");
 
-      if (show_global_ids || uiout->is_mi_like_p ())
-	uiout->field_int ("id", tp->global_num);
+	    uiout->field_string ("id-in-tg", print_thread_id (tp));
+	  }
 
-      /* For the CLI, we stuff everything into the target-id field.
-	 This is a gross hack to make the output come out looking
-	 correct.  The underlying problem here is that ui-out has no
-	 way to specify that a field's space allocation should be
-	 shared by several fields.  For MI, we do the right thing
-	 instead.  */
-
-      target_id = target_pid_to_str (tp->ptid);
-      extra_info = target_extra_thread_info (tp);
-      name = tp->name ? tp->name : target_thread_name (tp);
+	if (show_global_ids || uiout->is_mi_like_p ())
+	  uiout->field_int ("id", tp->global_num);
 
-      if (uiout->is_mi_like_p ())
-	{
-	  uiout->field_string ("target-id", target_id);
-	  if (extra_info)
-	    uiout->field_string ("details", extra_info);
-	  if (name)
-	    uiout->field_string ("name", name);
-	}
-      else
-	{
-	  struct cleanup *str_cleanup;
-	  char *contents;
+	/* For the CLI, we stuff everything into the target-id field.
+	   This is a gross hack to make the output come out looking
+	   correct.  The underlying problem here is that ui-out has no
+	   way to specify that a field's space allocation should be
+	   shared by several fields.  For MI, we do the right thing
+	   instead.  */
+
+	target_id = target_pid_to_str (tp->ptid);
+	extra_info = target_extra_thread_info (tp);
+	name = tp->name ? tp->name : target_thread_name (tp);
 
-	  if (extra_info && name)
-	    contents = xstrprintf ("%s \"%s\" (%s)", target_id,
-				   name, extra_info);
-	  else if (extra_info)
-	    contents = xstrprintf ("%s (%s)", target_id, extra_info);
-	  else if (name)
-	    contents = xstrprintf ("%s \"%s\"", target_id, name);
-	  else
-	    contents = xstrdup (target_id);
-	  str_cleanup = make_cleanup (xfree, contents);
+	if (uiout->is_mi_like_p ())
+	  {
+	    uiout->field_string ("target-id", target_id);
+	    if (extra_info)
+	      uiout->field_string ("details", extra_info);
+	    if (name)
+	      uiout->field_string ("name", name);
+	  }
+	else
+	  {
+	    std::string contents;
 
-	  uiout->field_string ("target-id", contents);
-	  do_cleanups (str_cleanup);
-	}
+	    if (extra_info && name)
+	      contents = string_printf ("%s \"%s\" (%s)", target_id,
+					name, extra_info);
+	    else if (extra_info)
+	      contents = string_printf ("%s (%s)", target_id, extra_info);
+	    else if (name)
+	      contents = string_printf ("%s \"%s\"", target_id, name);
+	    else
+	      contents = target_id;
 
-      if (tp->state == THREAD_RUNNING)
-	uiout->text ("(running)\n");
-      else
-	{
-	  /* The switch below puts us at the top of the stack (leaf
-	     frame).  */
-	  switch_to_thread (tp->ptid);
-	  print_stack_frame (get_selected_frame (NULL),
-			     /* For MI output, print frame level.  */
-			     uiout->is_mi_like_p (),
-			     LOCATION, 0);
-	}
+	    uiout->field_string ("target-id", contents.c_str ());
+	  }
 
-      if (uiout->is_mi_like_p ())
-	{
-	  const char *state = "stopped";
+	if (tp->state == THREAD_RUNNING)
+	  uiout->text ("(running)\n");
+	else
+	  {
+	    /* The switch below puts us at the top of the stack (leaf
+	       frame).  */
+	    switch_to_thread (tp->ptid);
+	    print_stack_frame (get_selected_frame (NULL),
+			       /* For MI output, print frame level.  */
+			       uiout->is_mi_like_p (),
+			       LOCATION, 0);
+	  }
 
-	  if (tp->state == THREAD_RUNNING)
-	    state = "running";
-	  uiout->field_string ("state", state);
-	}
+	if (uiout->is_mi_like_p ())
+	  {
+	    const char *state = "stopped";
 
-      core = target_core_of_thread (tp->ptid);
-      if (uiout->is_mi_like_p () && core != -1)
-	uiout->field_int ("core", core);
+	    if (tp->state == THREAD_RUNNING)
+	      state = "running";
+	    uiout->field_string ("state", state);
+	  }
 
-      do_cleanups (chain2);
-    }
+	core = target_core_of_thread (tp->ptid);
+	if (uiout->is_mi_like_p () && core != -1)
+	  uiout->field_int ("core", core);
+      }
 
-  /* Restores the current thread and the frame selected before
-     the "info threads" command.  */
-  do_cleanups (old_chain);
+    /* This end scope restores the current thread and the frame
+       selected before the "info threads" command, and it finishes the
+       ui-out list or table.  */
+  }
 
   if (pid == -1 && requested_threads == NULL)
     {
@@ -1439,7 +1376,7 @@ print_thread_info (struct ui_out *uiout,
 	 effects info-threads command would be nicer.  */
 
 static void
-info_threads_command (char *arg, int from_tty)
+info_threads_command (const char *arg, int from_tty)
 {
   int show_global_ids = 0;
 
@@ -1458,10 +1395,8 @@ info_threads_command (char *arg, int fro
 void
 switch_to_thread_no_regs (struct thread_info *thread)
 {
-  struct inferior *inf;
+  struct inferior *inf = thread->inf;
 
-  inf = find_inferior_ptid (thread->ptid);
-  gdb_assert (inf != NULL);
   set_current_program_space (inf->pspace);
   set_current_inferior (inf);
 
@@ -1469,45 +1404,50 @@ switch_to_thread_no_regs (struct thread_
   stop_pc = ~(CORE_ADDR) 0;
 }
 
-/* Switch from one thread to another.  */
+/* Switch to no thread selected.  */
 
-void
-switch_to_thread (ptid_t ptid)
+static void
+switch_to_no_thread ()
 {
-  /* Switch the program space as well, if we can infer it from the now
-     current thread.  Otherwise, it's up to the caller to select the
-     space it wants.  */
-  if (ptid != null_ptid)
-    {
-      struct inferior *inf;
+  if (inferior_ptid == null_ptid)
+    return;
 
-      inf = find_inferior_ptid (ptid);
-      gdb_assert (inf != NULL);
-      set_current_program_space (inf->pspace);
-      set_current_inferior (inf);
-    }
+  inferior_ptid = null_ptid;
+  reinit_frame_cache ();
+  stop_pc = ~(CORE_ADDR) 0;
+}
 
-  if (ptid == inferior_ptid)
+/* Switch from one thread to another.  */
+
+static void
+switch_to_thread (thread_info *thr)
+{
+  gdb_assert (thr != NULL);
+
+  if (inferior_ptid == thr->ptid)
     return;
 
-  inferior_ptid = ptid;
+  switch_to_thread_no_regs (thr);
+
   reinit_frame_cache ();
 
   /* We don't check for is_stopped, because we're called at times
      while in the TARGET_RUNNING state, e.g., while handling an
      internal event.  */
-  if (inferior_ptid != null_ptid
-      && !is_exited (ptid)
-      && !is_executing (ptid))
-    stop_pc = regcache_read_pc (get_thread_regcache (ptid));
-  else
-    stop_pc = ~(CORE_ADDR) 0;
+  if (thr->state != THREAD_EXITED
+      && !thr->executing)
+    stop_pc = regcache_read_pc (get_thread_regcache (thr->ptid));
 }
 
-static void
-restore_current_thread (ptid_t ptid)
+/* See gdbthread.h.  */
+
+void
+switch_to_thread (ptid_t ptid)
 {
-  switch_to_thread (ptid);
+  if (ptid == null_ptid)
+    switch_to_no_thread ();
+  else
+    switch_to_thread (find_thread_ptid (ptid));
 }
 
 static void
@@ -1569,83 +1509,53 @@ restore_selected_frame (struct frame_id 
     }
 }
 
-/* Data used by the cleanup installed by
-   'make_cleanup_restore_current_thread'.  */
-
-struct current_thread_cleanup
-{
-  thread_info *thread;
-  struct frame_id selected_frame_id;
-  int selected_frame_level;
-  int was_stopped;
-  int inf_id;
-  int was_removable;
-};
-
-static void
-do_restore_current_thread_cleanup (void *arg)
+scoped_restore_current_thread::~scoped_restore_current_thread ()
 {
-  struct current_thread_cleanup *old = (struct current_thread_cleanup *) arg;
-
   /* If an entry of thread_info was previously selected, it won't be
      deleted because we've increased its refcount.  The thread represented
      by this thread_info entry may have already exited (due to normal exit,
      detach, etc), so the thread_info.state is THREAD_EXITED.  */
-  if (old->thread != NULL
+  if (m_thread != NULL
       /* If the previously selected thread belonged to a process that has
 	 in the mean time exited (or killed, detached, etc.), then don't revert
 	 back to it, but instead simply drop back to no thread selected.  */
-      && find_inferior_ptid (old->thread->ptid) != NULL)
-    restore_current_thread (old->thread->ptid);
+      && m_inf->pid != 0)
+    switch_to_thread (m_thread);
   else
     {
-      restore_current_thread (null_ptid);
-      set_current_inferior (find_inferior_id (old->inf_id));
+      switch_to_no_thread ();
+      set_current_inferior (m_inf);
     }
 
   /* The running state of the originally selected thread may have
      changed, so we have to recheck it here.  */
   if (inferior_ptid != null_ptid
-      && old->was_stopped
+      && m_was_stopped
       && is_stopped (inferior_ptid)
       && target_has_registers
       && target_has_stack
       && target_has_memory)
-    restore_selected_frame (old->selected_frame_id,
-			    old->selected_frame_level);
-}
+    restore_selected_frame (m_selected_frame_id, m_selected_frame_level);
 
-static void
-restore_current_thread_cleanup_dtor (void *arg)
-{
-  struct current_thread_cleanup *old = (struct current_thread_cleanup *) arg;
-  struct thread_info *tp;
-  struct inferior *inf;
-
-  if (old->thread != NULL)
-    old->thread->decref ();
-
-  inf = find_inferior_id (old->inf_id);
-  if (inf != NULL)
-    inf->removable = old->was_removable;
-  xfree (old);
+  if (m_thread != NULL)
+    m_thread->decref ();
+  m_inf->decref ();
 }
 
-struct cleanup *
-make_cleanup_restore_current_thread (void)
+scoped_restore_current_thread::scoped_restore_current_thread ()
 {
-  struct current_thread_cleanup *old = XNEW (struct current_thread_cleanup);
-
-  old->thread = NULL;
-  old->inf_id = current_inferior ()->num;
-  old->was_removable = current_inferior ()->removable;
+  m_thread = NULL;
+  m_inf = current_inferior ();
 
   if (inferior_ptid != null_ptid)
     {
+      thread_info *tp = find_thread_ptid (inferior_ptid);
       struct frame_info *frame;
 
-      old->was_stopped = is_stopped (inferior_ptid);
-      if (old->was_stopped
+      gdb_assert (tp != NULL);
+
+      m_was_stopped = tp->state == THREAD_STOPPED;
+      if (m_was_stopped
 	  && target_has_registers
 	  && target_has_stack
 	  && target_has_memory)
@@ -1660,20 +1570,14 @@ make_cleanup_restore_current_thread (voi
       else
 	frame = NULL;
 
-      old->selected_frame_id = get_frame_id (frame);
-      old->selected_frame_level = frame_relative_level (frame);
-
-      struct thread_info *tp = find_thread_ptid (inferior_ptid);
+      m_selected_frame_id = get_frame_id (frame);
+      m_selected_frame_level = frame_relative_level (frame);
 
-      if (tp)
-	tp->incref ();
-      old->thread = tp;
+      tp->incref ();
+      m_thread = tp;
     }
 
-  current_inferior ()->removable = 0;
-
-  return make_cleanup_dtor (do_restore_current_thread_cleanup, old,
-			    restore_current_thread_cleanup_dtor);
+  m_inf->incref ();
 }
 
 /* See gdbthread.h.  */
@@ -1741,11 +1645,8 @@ tp_array_compar (const thread_info *a, c
    thread apply all p x/i $pc   Apply x/i $pc cmd to all threads.  */
 
 static void
-thread_apply_all_command (char *cmd, int from_tty)
+thread_apply_all_command (const char *cmd, int from_tty)
 {
-  struct cleanup *old_chain;
-  char *saved_cmd;
-
   tp_array_compar_ascending = false;
   if (cmd != NULL
       && check_for_argument (&cmd, "-ascending", strlen ("-ascending")))
@@ -1759,13 +1660,6 @@ thread_apply_all_command (char *cmd, int
 
   update_thread_list ();
 
-  old_chain = make_cleanup_restore_current_thread ();
-
-  /* Save a copy of the command in case it is clobbered by
-     execute_command.  */
-  saved_cmd = xstrdup (cmd);
-  make_cleanup (xfree, saved_cmd);
-
   int tc = live_threads_count ();
   if (tc != 0)
     {
@@ -1794,6 +1688,8 @@ thread_apply_all_command (char *cmd, int
 
       std::sort (thr_list_cpy.begin (), thr_list_cpy.end (), tp_array_compar);
 
+      scoped_restore_current_thread restore_thread;
+
       for (thread_info *thr : thr_list_cpy)
 	if (thread_alive (thr))
 	  {
@@ -1801,24 +1697,18 @@ thread_apply_all_command (char *cmd, int
 	    printf_filtered (_("\nThread %s (%s):\n"),
 			     print_thread_id (thr),
 			     target_pid_to_str (inferior_ptid));
-	    execute_command (cmd, from_tty);
 
-	    /* Restore exact command used previously.  */
-	    strcpy (cmd, saved_cmd);
+	    execute_command (cmd, from_tty);
 	  }
     }
-
-  do_cleanups (old_chain);
 }
 
 /* Implementation of the "thread apply" command.  */
 
 static void
-thread_apply_command (char *tidlist, int from_tty)
+thread_apply_command (const char *tidlist, int from_tty)
 {
-  char *cmd = NULL;
-  struct cleanup *old_chain;
-  char *saved_cmd;
+  const char *cmd = NULL;
   tid_range_parser parser;
 
   if (tidlist == NULL || *tidlist == '\000')
@@ -1831,7 +1721,7 @@ thread_apply_command (char *tidlist, int
 
       if (!parser.get_tid_range (&inf_num, &thr_start, &thr_end))
 	{
-	  cmd = (char *) parser.cur_tok ();
+	  cmd = parser.cur_tok ();
 	  break;
 	}
     }
@@ -1842,12 +1732,7 @@ thread_apply_command (char *tidlist, int
   if (tidlist == cmd || !isalpha (cmd[0]))
     invalid_thread_id_error (cmd);
 
-  /* Save a copy of the command in case it is clobbered by
-     execute_command.  */
-  saved_cmd = xstrdup (cmd);
-  old_chain = make_cleanup (xfree, saved_cmd);
-
-  make_cleanup_restore_current_thread ();
+  scoped_restore_current_thread restore_thread;
 
   parser.init (tidlist, current_inferior ()->num);
   while (!parser.finished () && parser.cur_tok () < cmd)
@@ -1900,19 +1785,14 @@ thread_apply_command (char *tidlist, int
       printf_filtered (_("\nThread %s (%s):\n"), print_thread_id (tp),
 		       target_pid_to_str (inferior_ptid));
       execute_command (cmd, from_tty);
-
-      /* Restore exact command used previously.  */
-      strcpy (cmd, saved_cmd);
     }
-
-  do_cleanups (old_chain);
 }
 
 /* Switch to the specified thread.  Will dispatch off to thread_apply_command
    if prefix of arg is `apply'.  */
 
 void
-thread_command (char *tidstr, int from_tty)
+thread_command (const char *tidstr, int from_tty)
 {
   if (tidstr == NULL)
     {
@@ -1938,13 +1818,8 @@ thread_command (char *tidstr, int from_t
   else
     {
       ptid_t previous_ptid = inferior_ptid;
-      enum gdb_rc result;
-
-      result = gdb_thread_select (current_uiout, tidstr, NULL);
 
-      /* If thread switch did not succeed don't notify or print.  */
-      if (result == GDB_RC_FAIL)
-	return;
+      thread_select (tidstr, parse_thread_id (tidstr, NULL));
 
       /* Print if the thread has not changed, otherwise an event will
 	 be sent.  */
@@ -1965,7 +1840,7 @@ thread_command (char *tidstr, int from_t
 /* Implementation of `thread name'.  */
 
 static void
-thread_name_command (char *arg, int from_tty)
+thread_name_command (const char *arg, int from_tty)
 {
   struct thread_info *info;
 
@@ -1982,7 +1857,7 @@ thread_name_command (char *arg, int from
 /* Find thread ids with a name, target pid, or extra info matching ARG.  */
 
 static void
-thread_find_command (char *arg, int from_tty)
+thread_find_command (const char *arg, int from_tty)
 {
   struct thread_info *tp;
   const char *tmp;
@@ -2044,26 +1919,11 @@ show_print_thread_events (struct ui_file
 		    value);
 }
 
-static int
-do_captured_thread_select (struct ui_out *uiout, void *tidstr_v)
-{
-  const char *tidstr = (const char *) tidstr_v;
-  struct thread_info *tp;
-
-  if (uiout->is_mi_like_p ())
-    {
-      int num = value_as_long (parse_and_eval (tidstr));
-
-      tp = find_thread_global_id (num);
-      if (tp == NULL)
-	error (_("Thread ID %d not known."), num);
-    }
-  else
-    {
-      tp = parse_thread_id (tidstr, NULL);
-      gdb_assert (tp != NULL);
-    }
+/* See gdbthread.h.  */
 
+void
+thread_select (const char *tidstr, thread_info *tp)
+{
   if (!thread_alive (tp))
     error (_("Thread ID %s has terminated."), tidstr);
 
@@ -2074,8 +1934,6 @@ do_captured_thread_select (struct ui_out
   /* Since the current thread may have changed, see if there is any
      exited thread we can now delete.  */
   prune_threads ();
-
-  return GDB_RC_OK;
 }
 
 /* Print thread and frame switch command response.  */
@@ -2085,7 +1943,6 @@ print_selected_thread_frame (struct ui_o
 			     user_selected_what selection)
 {
   struct thread_info *tp = inferior_thread ();
-  struct inferior *inf = current_inferior ();
 
   if (selection & USER_SELECTED_THREAD)
     {
@@ -2120,15 +1977,6 @@ print_selected_thread_frame (struct ui_o
     }
 }
 
-enum gdb_rc
-gdb_thread_select (struct ui_out *uiout, char *tidstr, char **error_message)
-{
-  if (catch_exceptions_with_msg (uiout, do_captured_thread_select, tidstr,
-				 error_message, RETURN_MASK_ALL) < 0)
-    return GDB_RC_FAIL;
-  return GDB_RC_OK;
-}
-
 /* Update the 'threads_executing' global based on the threads we know
    about right now.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/thread-fsm.c ./gdb/thread-fsm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/thread-fsm.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/thread-fsm.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Thread command's finish-state machine, for GDB, the GNU debugger.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/thread-fsm.h ./gdb/thread-fsm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/thread-fsm.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/thread-fsm.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Thread command's finish-state machine, for GDB, the GNU debugger.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tic6x-linux-tdep.c ./gdb/tic6x-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tic6x-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tic6x-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GNU/Linux on  TI C6x target support.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
    Contributed by Yao Qi <yao@codesourcery.com>
 
    This file is part of GDB.
@@ -27,10 +27,6 @@
 #include "elf-bfd.h"
 #include "elf/tic6x.h"
 
-#include "features/tic6x-c64xp-linux.c"
-#include "features/tic6x-c64x-linux.c"
-#include "features/tic6x-c62x-linux.c"
-
 /* The offset from rt_sigframe pointer to SP register.  */
 #define TIC6X_SP_RT_SIGFRAME 8
 /* Size of struct siginfo info.  */
@@ -207,16 +203,9 @@ tic6x_uclinux_init_abi (struct gdbarch_i
 				&tic6x_linux_rt_sigreturn_tramp_frame);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_tic6x_linux_tdep;
-
 void
 _initialize_tic6x_linux_tdep (void)
 {
   gdbarch_register_osabi (bfd_arch_tic6x, 0, GDB_OSABI_LINUX,
 			  tic6x_uclinux_init_abi);
-
-  initialize_tdesc_tic6x_c64xp_linux ();
-  initialize_tdesc_tic6x_c64x_linux ();
-  initialize_tdesc_tic6x_c62x_linux ();
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tic6x-tdep.c ./gdb/tic6x-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tic6x-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tic6x-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target dependent code for GDB on TI C6x systems.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Contributed by Andrew Jenner <andrew@codesourcery.com>
    Contributed by Yao Qi <yao@codesourcery.com>
 
@@ -36,7 +36,6 @@
 #include "value.h"
 #include "symfile.h"
 #include "arch-utils.h"
-#include "floatformat.h"
 #include "glibc-tdep.h"
 #include "infcall.h"
 #include "regset.h"
@@ -50,10 +49,6 @@
 #include "target-descriptions.h"
 #include <algorithm>
 
-#include "features/tic6x-c64xp.c"
-#include "features/tic6x-c64x.c"
-#include "features/tic6x-c62x.c"
-
 #define TIC6X_OPCODE_SIZE 4
 #define TIC6X_FETCH_PACKET_SIZE 32
 
@@ -346,14 +341,6 @@ tic6x_sw_breakpoint_from_kind (struct gd
     return tdep->breakpoint;
 }
 
-/* This is the implementation of gdbarch method print_insn.  */
-
-static int
-tic6x_print_insn (bfd_vma memaddr, disassemble_info *info)
-{
-  return print_insn_tic6x (memaddr, info);
-}
-
 static void
 tic6x_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
 			     struct dwarf2_frame_state_reg *reg,
@@ -606,7 +593,7 @@ tic6x_extract_signed_field (int value, i
 static CORE_ADDR
 tic6x_get_next_pc (struct regcache *regcache, CORE_ADDR pc)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   unsigned long inst;
   int register_number;
   int last = 0;
@@ -699,15 +686,12 @@ tic6x_get_next_pc (struct regcache *regc
 
 /* This is the implementation of gdbarch method software_single_step.  */
 
-static VEC (CORE_ADDR) *
+static std::vector<CORE_ADDR>
 tic6x_software_single_step (struct regcache *regcache)
 {
   CORE_ADDR next_pc = tic6x_get_next_pc (regcache, regcache_read_pc (regcache));
-  VEC (CORE_ADDR) *next_pcs = NULL;
-
-  VEC_safe_push (CORE_ADDR, next_pcs, next_pc);
 
-  return next_pcs;
+  return {next_pc};
 }
 
 /* This is the implementation of gdbarch method frame_align.  */
@@ -1321,8 +1305,6 @@ tic6x_gdbarch_init (struct gdbarch_info 
   /* Single stepping.  */
   set_gdbarch_software_single_step (gdbarch, tic6x_software_single_step);
 
-  set_gdbarch_print_insn (gdbarch, tic6x_print_insn);
-
   /* Call dummy code.  */
   set_gdbarch_frame_align (gdbarch, tic6x_frame_align);
 
@@ -1349,15 +1331,8 @@ tic6x_gdbarch_init (struct gdbarch_info 
   return gdbarch;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_tic6x_tdep;
-
 void
 _initialize_tic6x_tdep (void)
 {
   register_gdbarch_init (bfd_arch_tic6x, tic6x_gdbarch_init);
-
-  initialize_tdesc_tic6x_c64xp ();
-  initialize_tdesc_tic6x_c64x ();
-  initialize_tdesc_tic6x_c62x ();
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tic6x-tdep.h ./gdb/tic6x-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tic6x-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tic6x-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GNU/Linux on  TI C6x target support.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
    Contributed by Yao Qi <yao@codesourcery.com>
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tid-parse.c ./gdb/tid-parse.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tid-parse.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tid-parse.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TID parsing for GDB, the GNU debugger.
 
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -229,7 +229,7 @@ tid_range_parser::get_tid_or_range (int 
 	{
 	  /* Setup the number range parser to return numbers in the
 	     whole [1,INT_MAX] range.  */
-	  m_range_parser.setup_range (1, INT_MAX, skip_spaces_const (p + 1));
+	  m_range_parser.setup_range (1, INT_MAX, skip_spaces (p + 1));
 	  m_state = STATE_STAR_RANGE;
 	}
       else
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tid-parse.h ./gdb/tid-parse.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tid-parse.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tid-parse.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TID parsing for GDB, the GNU debugger.
 
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tilegx-linux-nat.c ./gdb/tilegx-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tilegx-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tilegx-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for GNU/Linux TILE-Gx.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -154,9 +154,6 @@ store_inferior_registers (struct target_
     perror_with_name (_("Couldn't write registers"));
 }
 
-
-extern initialize_file_ftype _initialize_tile_linux_nat;
-
 void
 _initialize_tile_linux_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tilegx-linux-tdep.c ./gdb/tilegx-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tilegx-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tilegx-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux on Tilera TILE-Gx processors.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -134,9 +134,6 @@ tilegx_linux_init_abi (struct gdbarch_in
   set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_tilegx_linux_tdep;
-
 void
 _initialize_tilegx_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tilegx-tdep.c ./gdb/tilegx-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tilegx-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tilegx-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Tilera TILE-Gx processor.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -31,10 +31,8 @@
 #include "dis-asm.h"
 #include "inferior.h"
 #include "arch-utils.h"
-#include "floatformat.h"
 #include "regcache.h"
 #include "regset.h"
-#include "doublest.h"
 #include "osabi.h"
 #include "linux-tdep.h"
 #include "objfiles.h"
@@ -42,6 +40,7 @@
 #include "tilegx-tdep.h"
 #include "opcode/tilegx.h"
 #include <algorithm>
+#include "common/byte-vector.h"
 
 struct tilegx_frame_cache
 {
@@ -328,21 +327,17 @@ tilegx_push_dummy_call (struct gdbarch *
      the stack, word aligned.  */
   for (j = nargs - 1; j >= i; j--)
     {
-      gdb_byte *val;
-      struct cleanup *back_to;
       const gdb_byte *contents = value_contents (args[j]);
 
       typelen = TYPE_LENGTH (value_enclosing_type (args[j]));
       slacklen = align_up (typelen, 8) - typelen;
-      val = (gdb_byte *) xmalloc (typelen + slacklen);
-      back_to = make_cleanup (xfree, val);
-      memcpy (val, contents, typelen);
-      memset (val + typelen, 0, slacklen);
+      gdb::byte_vector val (typelen + slacklen);
+      memcpy (val.data (), contents, typelen);
+      memset (val.data () + typelen, 0, slacklen);
 
       /* Now write data to the stack.  The stack grows downwards.  */
       stack_dest -= typelen + slacklen;
-      write_memory (stack_dest, val, typelen + slacklen);
-      do_cleanups (back_to);
+      write_memory (stack_dest, val.data (), typelen + slacklen);
     }
 
   /* Add 16 bytes for linkage space to the stack.  */
@@ -1055,8 +1050,6 @@ tilegx_gdbarch_init (struct gdbarch_info
 				       tilegx_breakpoint::bp_from_kind);
   set_gdbarch_return_value (gdbarch, tilegx_return_value);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_tilegx);
-
   gdbarch_init_osabi (info, gdbarch);
 
   dwarf2_append_unwinders (gdbarch);
@@ -1065,9 +1058,6 @@ tilegx_gdbarch_init (struct gdbarch_info
   return gdbarch;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_tilegx_tdep;
-
 void
 _initialize_tilegx_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tilegx-tdep.h ./gdb/tilegx-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tilegx-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tilegx-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Tilera TILE-Gx processor.
 
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/top.c ./gdb/top.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/top.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/top.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Top level stuff for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -35,12 +35,12 @@
 #include "value.h"
 #include "language.h"
 #include "terminal.h"		/* For job_control.  */
+#include "job-control.h"
 #include "annotate.h"
 #include "completer.h"
 #include "top.h"
 #include "version.h"
 #include "serial.h"
-#include "doublest.h"
 #include "main.h"
 #include "event-loop.h"
 #include "gdbthread.h"
@@ -128,17 +128,10 @@ show_confirm (struct ui_file *file, int 
 		    value);
 }
 
-/* Flag to indicate whether a user defined command is currently running.  */
-
-int in_user_command;
-
 /* Current working directory.  */
 
 char *current_directory;
 
-/* The directory name is actually stored here (usually).  */
-char gdb_dirbuf[1024];
-
 /* The last command line executed on the console.  Used for command
    repetitions.  */
 char *saved_command_line;
@@ -244,7 +237,7 @@ ptid_t (*deprecated_target_wait_hook) (p
    things like enabling/disabling buttons, etc...  */
 
 void (*deprecated_call_command_hook) (struct cmd_list_element * c, 
-				      char *cmd, int from_tty);
+				      const char *cmd, int from_tty);
 
 /* Called when the current thread changes.  Argument is thread id.  */
 
@@ -255,130 +248,94 @@ static int highest_ui_num;
 
 /* See top.h.  */
 
-struct ui *
-new_ui (FILE *instream, FILE *outstream, FILE *errstream)
+ui::ui (FILE *instream_, FILE *outstream_, FILE *errstream_)
+  : next (nullptr),
+    num (++highest_ui_num),
+    call_readline (nullptr),
+    input_handler (nullptr),
+    command_editing (0),
+    interp_info (nullptr),
+    async (0),
+    secondary_prompt_depth (0),
+    stdin_stream (instream_),
+    instream (instream_),
+    outstream (outstream_),
+    errstream (errstream_),
+    input_fd (fileno (instream)),
+    input_interactive_p (ISATTY (instream)),
+    prompt_state (PROMPT_NEEDED),
+    m_gdb_stdout (new stdio_file (outstream)),
+    m_gdb_stdin (new stdio_file (instream)),
+    m_gdb_stderr (new stderr_file (errstream)),
+    m_gdb_stdlog (m_gdb_stderr),
+    m_current_uiout (nullptr)
 {
-  struct ui *ui;
-
-  ui = XCNEW (struct ui);
-
-  ui->num = ++highest_ui_num;
-  ui->stdin_stream = instream;
-  ui->instream = instream;
-  ui->outstream = outstream;
-  ui->errstream = errstream;
-
-  ui->input_fd = fileno (ui->instream);
-
-  ui->input_interactive_p = ISATTY (ui->instream);
-
-  ui->m_gdb_stdin = new stdio_file (ui->instream);
-  ui->m_gdb_stdout = new stdio_file (ui->outstream);
-  ui->m_gdb_stderr = new stderr_file (ui->errstream);
-  ui->m_gdb_stdlog = ui->m_gdb_stderr;
-
-  ui->prompt_state = PROMPT_NEEDED;
+  buffer_init (&line_buffer);
 
   if (ui_list == NULL)
-    ui_list = ui;
+    ui_list = this;
   else
     {
       struct ui *last;
 
       for (last = ui_list; last->next != NULL; last = last->next)
 	;
-      last->next = ui;
+      last->next = this;
     }
-
-  return ui;
 }
 
-static void
-free_ui (struct ui *ui)
-{
-  delete ui->m_gdb_stdin;
-  delete ui->m_gdb_stdout;
-  delete ui->m_gdb_stderr;
-
-  xfree (ui);
-}
-
-void
-delete_ui (struct ui *todel)
+ui::~ui ()
 {
   struct ui *ui, *uiprev;
 
   uiprev = NULL;
 
   for (ui = ui_list; ui != NULL; uiprev = ui, ui = ui->next)
-    if (ui == todel)
+    if (ui == this)
       break;
 
   gdb_assert (ui != NULL);
 
   if (uiprev != NULL)
-    uiprev->next = ui->next;
+    uiprev->next = next;
   else
-    ui_list = ui->next;
-
-  free_ui (ui);
-}
-
-/* Cleanup that deletes a UI.  */
-
-static void
-delete_ui_cleanup (void *void_ui)
-{
-  struct ui *ui = (struct ui *) void_ui;
+    ui_list = next;
 
-  delete_ui (ui);
-}
-
-/* See top.h.  */
-
-struct cleanup *
-make_delete_ui_cleanup (struct ui *ui)
-{
-  return make_cleanup (delete_ui_cleanup, ui);
+  delete m_gdb_stdin;
+  delete m_gdb_stdout;
+  delete m_gdb_stderr;
 }
 
 /* Open file named NAME for read/write, making sure not to make it the
    controlling terminal.  */
 
-static FILE *
+static gdb_file_up
 open_terminal_stream (const char *name)
 {
   int fd;
 
-  fd = open (name, O_RDWR | O_NOCTTY);
+  fd = gdb_open_cloexec (name, O_RDWR | O_NOCTTY, 0);
   if (fd < 0)
     perror_with_name  (_("opening terminal failed"));
 
-  return fdopen (fd, "w+");
+  return gdb_file_up (fdopen (fd, "w+"));
 }
 
 /* Implementation of the "new-ui" command.  */
 
 static void
-new_ui_command (char *args, int from_tty)
+new_ui_command (const char *args, int from_tty)
 {
-  struct ui *ui;
-  struct interp *interp;
-  FILE *stream[3] = { NULL, NULL, NULL };
+  gdb_file_up stream[3];
   int i;
-  int res;
   int argc;
-  char **argv;
   const char *interpreter_name;
   const char *tty_name;
-  struct cleanup *success_chain;
-  struct cleanup *failure_chain;
 
   dont_repeat ();
 
-  argv = gdb_buildargv (args);
-  success_chain = make_cleanup_freeargv (argv);
-  argc = countargv (argv);
+  gdb_argv argv (args);
+  argc = argv.count ();
 
   if (argc < 2)
     error (_("usage: new-ui <interpreter> <tty>"));
@@ -389,31 +346,28 @@ new_ui_command (char *args, int from_tty
   {
     scoped_restore save_ui = make_scoped_restore (&current_ui);
 
-    failure_chain = make_cleanup (null_cleanup, NULL);
-
     /* Open specified terminal, once for each of
        stdin/stdout/stderr.  */
     for (i = 0; i < 3; i++)
-      {
-	stream[i] = open_terminal_stream (tty_name);
-	make_cleanup_fclose (stream[i]);
-      }
+      stream[i] = open_terminal_stream (tty_name);
 
-    ui = new_ui (stream[0], stream[1], stream[2]);
-    make_cleanup (delete_ui_cleanup, ui);
+    std::unique_ptr<ui> ui
+      (new struct ui (stream[0].get (), stream[1].get (), stream[2].get ()));
 
     ui->async = 1;
 
-    current_ui = ui;
+    current_ui = ui.get ();
 
     set_top_level_interpreter (interpreter_name);
 
     interp_pre_command_loop (top_level_interpreter ());
 
-    discard_cleanups (failure_chain);
+    /* Make sure the files are not closed.  */
+    stream[0].release ();
+    stream[1].release ();
+    stream[2].release ();
 
-    /* This restores the previous UI and frees argv.  */
-    do_cleanups (success_chain);
+    ui.release ();
   }
 
   printf_unfiltered ("New UI allocated\n");
@@ -447,27 +401,14 @@ quit_cover (void)
    event-top.c into this file, top.c.  */
 /* static */ const char *source_file_name;
 
-/* Clean up on error during a "source" command (or execution of a
-   user-defined command).  */
-
-void
-do_restore_instream_cleanup (void *stream)
-{
-  struct ui *ui = current_ui;
-
-  /* Restore the previous input stream.  */
-  ui->instream = (FILE *) stream;
-}
-
 /* Read commands from STREAM.  */
 void
 read_command_file (FILE *stream)
 {
   struct ui *ui = current_ui;
-  struct cleanup *cleanups;
 
-  cleanups = make_cleanup (do_restore_instream_cleanup, ui->instream);
-  ui->instream = stream;
+  scoped_restore save_instream
+    = make_scoped_restore (&ui->instream, stream);
 
   /* Read commands from `instream' and execute them until end of file
      or error reading instream.  */
@@ -482,8 +423,6 @@ read_command_file (FILE *stream)
 	break;
       command_handler (command);
     }
-
-  do_cleanups (cleanups);
 }
 
 void (*pre_init_ui_hook) (void);
@@ -497,15 +436,9 @@ do_chdir_cleanup (void *old_dir)
 }
 #endif
 
-struct cleanup *
-prepare_execute_command (void)
+scoped_value_mark
+prepare_execute_command ()
 {
-  struct value *mark;
-  struct cleanup *cleanup;
-
-  mark = value_mark ();
-  cleanup = make_cleanup_value_free_to_mark (mark);
-
   /* With multiple threads running while the one we're examining is
      stopped, the dcache can get stale without us being able to detect
      it.  For the duration of the command, though, use the dcache to
@@ -513,7 +446,7 @@ prepare_execute_command (void)
   if (non_stop)
     target_dcache_invalidate ();
 
-  return cleanup;
+  return scoped_value_mark ();
 }
 
 /* Tell the user if the language has changed (except first time) after
@@ -587,18 +520,32 @@ maybe_wait_sync_command_done (int was_sy
     wait_sync_command_done ();
 }
 
+/* If not NULL, the arguments that should be passed if the current
+   command is repeated.  */
+
+static const char *repeat_arguments;
+
+/* See command.h.  */
+
+void
+set_repeat_arguments (const char *args)
+{
+  repeat_arguments = args;
+}
+
 /* Execute the line P as a command, in the current user context.
    Pass FROM_TTY as second argument to the defining function.  */
 
 void
-execute_command (char *p, int from_tty)
+execute_command (const char *p, int from_tty)
 {
-  struct cleanup *cleanup_if_error, *cleanup;
+  struct cleanup *cleanup_if_error;
   struct cmd_list_element *c;
-  char *line;
+  const char *line;
+  const char *cmd_start = p;
 
   cleanup_if_error = make_bpstat_clear_actions_cleanup ();
-  cleanup = prepare_execute_command ();
+  scoped_value_mark cleanup = prepare_execute_command ();
 
   /* Force cleanup of any alloca areas if using C alloca instead of
      a builtin alloca.  */
@@ -607,7 +554,6 @@ execute_command (char *p, int from_tty)
   /* This can happen when command_line_input hits end of file.  */
   if (p == NULL)
     {
-      do_cleanups (cleanup);
       discard_cleanups (cleanup_if_error);
       return;
     }
@@ -619,7 +565,7 @@ execute_command (char *p, int from_tty)
   if (*p)
     {
       const char *cmd = p;
-      char *arg;
+      const char *arg;
       int was_sync = current_ui->prompt_state == PROMPT_BLOCKED;
 
       line = p;
@@ -628,7 +574,11 @@ execute_command (char *p, int from_tty)
       print_command_trace (p);
 
       c = lookup_cmd (&cmd, cmdlist, "", 0, 1);
-      p = (char *) cmd;
+      p = cmd;
+
+      scoped_restore save_repeat_args
+	= make_scoped_restore (&repeat_arguments, nullptr);
+      const char *args_pointer = p;
 
       /* Pass null arg rather than an empty one.  */
       arg = *p ? p : 0;
@@ -643,14 +593,20 @@ execute_command (char *p, int from_tty)
          is_complete_command hack is testing for.  */
       /* Clear off trailing whitespace, except for set and complete
          command.  */
+      std::string without_whitespace;
       if (arg
 	  && c->type != set_cmd
 	  && !is_complete_command (c))
 	{
-	  p = arg + strlen (arg) - 1;
+	  const char *old_end = arg + strlen (arg) - 1;
+	  p = old_end;
 	  while (p >= arg && (*p == ' ' || *p == '\t'))
 	    p--;
-	  *(p + 1) = '\0';
+	  if (p != old_end)
+	    {
+	      without_whitespace = std::string (arg, p + 1);
+	      arg = without_whitespace.c_str ();
+	    }
 	}
 
       /* If this command has been pre-hooked, run the hook first.  */
@@ -678,11 +634,16 @@ execute_command (char *p, int from_tty)
       /* If this command has been post-hooked, run the hook last.  */
       execute_cmd_post_hook (c);
 
+      if (repeat_arguments != NULL && cmd_start == saved_command_line)
+	{
+	  gdb_assert (strlen (args_pointer) >= strlen (repeat_arguments));
+	  strcpy (saved_command_line + (args_pointer - cmd_start),
+		  repeat_arguments);
+	}
     }
 
   check_frame_language_change ();
 
-  do_cleanups (cleanup);
   discard_cleanups (cleanup_if_error);
 }
 
@@ -691,35 +652,33 @@ execute_command (char *p, int from_tty)
    temporarily set to true.  */
 
 std::string
-execute_command_to_string (char *p, int from_tty)
+execute_command_to_string (const char *p, int from_tty)
 {
-  struct cleanup *cleanup;
-
   /* GDB_STDOUT should be better already restored during these
      restoration callbacks.  */
-  cleanup = set_batch_flag_and_make_cleanup_restore_page_info ();
+  set_batch_flag_and_restore_page_info save_page_info;
 
   scoped_restore save_async = make_scoped_restore (&current_ui->async, 0);
 
   string_file str_file;
 
-  current_uiout->redirect (&str_file);
-  make_cleanup_ui_out_redirect_pop (current_uiout);
-
-  scoped_restore save_stdout
-    = make_scoped_restore (&gdb_stdout, &str_file);
-  scoped_restore save_stderr
-    = make_scoped_restore (&gdb_stderr, &str_file);
-  scoped_restore save_stdlog
-    = make_scoped_restore (&gdb_stdlog, &str_file);
-  scoped_restore save_stdtarg
-    = make_scoped_restore (&gdb_stdtarg, &str_file);
-  scoped_restore save_stdtargerr
-    = make_scoped_restore (&gdb_stdtargerr, &str_file);
+  {
+    current_uiout->redirect (&str_file);
+    ui_out_redirect_pop redirect_popper (current_uiout);
 
-  execute_command (p, from_tty);
+    scoped_restore save_stdout
+      = make_scoped_restore (&gdb_stdout, &str_file);
+    scoped_restore save_stderr
+      = make_scoped_restore (&gdb_stderr, &str_file);
+    scoped_restore save_stdlog
+      = make_scoped_restore (&gdb_stdlog, &str_file);
+    scoped_restore save_stdtarg
+      = make_scoped_restore (&gdb_stdtarg, &str_file);
+    scoped_restore save_stdtargerr
+      = make_scoped_restore (&gdb_stdtargerr, &str_file);
 
-  do_cleanups (cleanup);
+    execute_command (p, from_tty);
+  }
 
   return std::move (str_file.string ());
 }
@@ -789,7 +748,6 @@ gdb_readline_no_editing (const char *pro
   while (1)
     {
       int c;
-      int numfds;
       fd_set readfds;
 
       QUIT;
@@ -1154,19 +1112,16 @@ static void
 gdb_safe_append_history (void)
 {
   int ret, saved_errno;
-  char *local_history_filename;
-  struct cleanup *old_chain;
 
-  local_history_filename
-    = xstrprintf ("%s-gdb%ld~", history_filename, (long) getpid ());
-  old_chain = make_cleanup (xfree, local_history_filename);
+  std::string local_history_filename
+    = string_printf ("%s-gdb%ld~", history_filename, (long) getpid ());
 
-  ret = rename (history_filename, local_history_filename);
+  ret = rename (history_filename, local_history_filename.c_str ());
   saved_errno = errno;
   if (ret < 0 && saved_errno != ENOENT)
     {
       warning (_("Could not rename %s to %s: %s"),
-	       history_filename, local_history_filename,
+	       history_filename, local_history_filename.c_str (),
 	       safe_strerror (saved_errno));
     }
   else
@@ -1182,24 +1137,23 @@ gdb_safe_append_history (void)
 	     to move it back anyway.  Otherwise a global history file would
 	     never get created!  */
 	   gdb_assert (saved_errno == ENOENT);
-	   write_history (local_history_filename);
+	   write_history (local_history_filename.c_str ());
 	}
       else
 	{
-	  append_history (command_count, local_history_filename);
+	  append_history (command_count, local_history_filename.c_str ());
 	  if (history_is_stifled ())
-	    history_truncate_file (local_history_filename, history_max_entries);
+	    history_truncate_file (local_history_filename.c_str (),
+				   history_max_entries);
 	}
 
-      ret = rename (local_history_filename, history_filename);
+      ret = rename (local_history_filename.c_str (), history_filename);
       saved_errno = errno;
       if (ret < 0 && saved_errno != EEXIST)
         warning (_("Could not rename %s to %s: %s"),
-		 local_history_filename, history_filename,
+		 local_history_filename.c_str (), history_filename,
 		 safe_strerror (saved_errno));
     }
-
-  do_cleanups (old_chain);
 }
 
 /* Read one line from the command input stream `instream' into a local
@@ -1257,9 +1211,9 @@ command_line_input (const char *prompt_a
   /* Starting a new command line.  */
   cmd_line_buffer.used_size = 0;
 
-#ifdef STOP_SIGNAL
+#ifdef SIGTSTP
   if (job_control)
-    signal (STOP_SIGNAL, handle_stop_sig);
+    signal (SIGTSTP, handle_sigtstp);
 #endif
 
   while (1)
@@ -1317,9 +1271,9 @@ command_line_input (const char *prompt_a
       prompt = NULL;
     }
 
-#ifdef STOP_SIGNAL
+#ifdef SIGTSTP
   if (job_control)
-    signal (STOP_SIGNAL, SIG_DFL);
+    signal (SIGTSTP, SIG_DFL);
 #endif
 
   return cmd;
@@ -1338,7 +1292,7 @@ print_gdb_version (struct ui_file *strea
   /* Second line is a copyright notice.  */
 
   fprintf_filtered (stream,
-		    "Copyright (C) 2017 Free Software Foundation, Inc.\n");
+		    "Copyright (C) 2018 Free Software Foundation, Inc.\n");
 
   /* Following the copyright is a brief statement that the program is
      free software, that users are free to copy and change it on
@@ -1593,7 +1547,7 @@ undo_terminal_modifications_before_exit 
 {
   struct ui *saved_top_level = current_ui;
 
-  target_terminal_ours ();
+  target_terminal::ours ();
 
   current_ui = main_ui;
 
@@ -1728,7 +1682,7 @@ input_interactive_p (struct ui *ui)
 }
 
 static void
-dont_repeat_command (char *ignored, int from_tty)
+dont_repeat_command (const char *ignored, int from_tty)
 {
   /* Can't call dont_repeat here because we're not necessarily reading
      from stdin.  */
@@ -1740,7 +1694,7 @@ dont_repeat_command (char *ignored, int 
 /* Number of commands to print in each call to show_commands.  */
 #define Hist_print 10
 void
-show_commands (char *args, int from_tty)
+show_commands (const char *args, int from_tty)
 {
   /* Index for history commands.  Relative to history_base.  */
   int offset;
@@ -1794,10 +1748,7 @@ show_commands (char *args, int from_tty)
      "show commands +" does.  This is unnecessary if arg is null,
      because "show commands +" is not useful after "show commands".  */
   if (from_tty && args)
-    {
-      args[0] = '+';
-      args[1] = '\0';
-    }
+    set_repeat_arguments ("+");
 }
 
 /* Update the size of our command history file to HISTORY_SIZE.
@@ -1817,13 +1768,14 @@ set_readline_history_size (int history_s
 
 /* Called by do_setshow_command.  */
 static void
-set_history_size_command (char *args, int from_tty, struct cmd_list_element *c)
+set_history_size_command (const char *args,
+			  int from_tty, struct cmd_list_element *c)
 {
   set_readline_history_size (history_size_setshow_var);
 }
 
 void
-set_history (char *args, int from_tty)
+set_history (const char *args, int from_tty)
 {
   printf_unfiltered (_("\"set history\" must be followed "
 		       "by the name of a history subcommand.\n"));
@@ -1831,7 +1783,7 @@ set_history (char *args, int from_tty)
 }
 
 void
-show_history (char *args, int from_tty)
+show_history (const char *args, int from_tty)
 {
   cmd_show_list (showhistlist, from_tty, "");
 }
@@ -1840,7 +1792,7 @@ int info_verbose = 0;		/* Default verbos
 
 /* Called by do_setshow_command.  An elaborate joke.  */
 void
-set_verbose (char *args, int from_tty, struct cmd_list_element *c)
+set_verbose (const char *args, int from_tty, struct cmd_list_element *c)
 {
   const char *cmdname = "verbose";
   struct cmd_list_element *showcmd;
@@ -1940,7 +1892,7 @@ show_prompt (struct ui_file *file, int f
 /* "set editing" command.  */
 
 static void
-set_editing (char *args, int from_tty, struct cmd_list_element *c)
+set_editing (const char *args, int from_tty, struct cmd_list_element *c)
 {
   change_line_handler (set_editing_cmd_var);
   /* Update the control variable so that MI's =cmd-param-changed event
@@ -1979,7 +1931,7 @@ static char *staged_gdb_datadir;
 /* "set" command for the gdb_datadir configuration variable.  */
 
 static void
-set_gdb_datadir (char *args, int from_tty, struct cmd_list_element *c)
+set_gdb_datadir (const char *args, int from_tty, struct cmd_list_element *c)
 {
   set_gdb_data_directory (staged_gdb_datadir);
   observer_notify_gdb_datadir_changed ();
@@ -1996,7 +1948,8 @@ show_gdb_datadir (struct ui_file *file, 
 }
 
 static void
-set_history_filename (char *args, int from_tty, struct cmd_list_element *c)
+set_history_filename (const char *args,
+		      int from_tty, struct cmd_list_element *c)
 {
   /* We include the current directory so that if the user changes
      directories the file written will be the same as the one
@@ -2022,7 +1975,7 @@ init_main (void)
 
   /* Setup important stuff for command line editing.  */
   rl_completion_word_break_hook = gdb_completion_word_break_characters;
-  rl_completion_entry_function = readline_line_completion_function;
+  rl_attempted_completion_function = gdb_rl_attempted_completion_function;
   set_rl_completer_word_break_characters (default_word_break_characters ());
   rl_completer_quote_characters = get_gdb_completer_quote_characters ();
   rl_completion_display_matches_hook = cli_display_match_list;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/top.h ./gdb/top.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/top.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/top.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Top level stuff for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -22,6 +22,7 @@
 
 #include "buffer.h"
 #include "event-loop.h"
+#include "value.h"
 
 struct tl_interp_info;
 
@@ -54,6 +55,12 @@ enum prompt_state
 
 struct ui
 {
+  /* Create a new UI.  */
+  ui (FILE *instream, FILE *outstream, FILE *errstream);
+  ~ui ();
+
+  DISABLE_COPY_AND_ASSIGN (ui);
+
   /* Pointer to next in singly-linked list.  */
   struct ui *next;
 
@@ -203,13 +210,6 @@ public:
 #define ALL_UIS(UI)				\
   for (UI = ui_list; UI; UI = UI->next)		\
 
-/* Create a new UI.  */
-extern struct ui *new_ui (FILE *instream, FILE *outstream, FILE *errstream);
-extern void delete_ui (struct ui *todel);
-
-/* Cleanup that deletes a UI.  */
-extern struct cleanup *make_delete_ui_cleanup (struct ui *ui);
-
 /* Register the UI's input file descriptor in the event loop.  */
 extern void ui_register_input_event_handler (struct ui *ui);
 
@@ -218,9 +218,7 @@ extern void ui_unregister_input_event_ha
 
 /* From top.c.  */
 extern char *saved_command_line;
-extern int in_user_command;
 extern int confirm;
-extern char gdb_dirbuf[1024];
 extern int inhibit_gdbinit;
 extern const char gdbinit[];
 
@@ -232,9 +230,9 @@ extern void init_history (void);
 extern void command_loop (void);
 extern int quit_confirm (void);
 extern void quit_force (int *, int);
-extern void quit_command (char *, int);
+extern void quit_command (const char *, int);
 extern void quit_cover (void);
-extern void execute_command (char *, int);
+extern void execute_command (const char *, int);
 
 /* If the interpreter is in sync mode (we're running a user command's
    list, running command hooks or similars), and we just ran a
@@ -252,7 +250,7 @@ extern void check_frame_language_change 
 /* Prepare for execution of a command.
    Call this before every command, CLI or MI.
    Returns a cleanup to be run after the command is completed.  */
-extern struct cleanup *prepare_execute_command (void);
+extern scoped_value_mark prepare_execute_command (void);
 
 /* This function returns a pointer to the string that is used
    by gdb for its command prompt.  */
@@ -269,6 +267,7 @@ extern int gdb_in_secondary_prompt_p (st
 
 /* From random places.  */
 extern int readnow_symbol_files;
+extern int readnever_symbol_files;
 
 /* Perform _initialize initialization.  */
 extern void gdb_init (char *);
@@ -283,15 +282,13 @@ extern char *lim_at_start;
 
 extern void gdb_add_history (const char *);
 
-extern void show_commands (char *args, int from_tty);
-
-extern void set_history (char *, int);
+extern void show_commands (const char *args, int from_tty);
 
-extern void show_history (char *, int);
+extern void set_history (const char *, int);
 
-extern void set_verbose (char *, int, struct cmd_list_element *);
+extern void show_history (const char *, int);
 
-extern void do_restore_instream_cleanup (void *stream);
+extern void set_verbose (const char *, int, struct cmd_list_element *);
 
 extern char *handle_line_of_input (struct buffer *cmd_line_buffer,
 				   char *rl, int repeat,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tracefile.c ./gdb/tracefile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tracefile.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tracefile.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Trace file support in GDB.
 
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -306,7 +306,7 @@ trace_save (const char *filename, struct
 }
 
 static void
-tsave_command (char *args, int from_tty)
+tsave_command (const char *args, int from_tty)
 {
   int target_does_save = 0;
   char **argv;
@@ -318,8 +318,8 @@ tsave_command (char *args, int from_tty)
   if (args == NULL)
     error_no_arg (_("file in which to save trace data"));
 
-  argv = gdb_buildargv (args);
-  back_to = make_cleanup_freeargv (argv);
+  gdb_argv built_argv (args);
+  argv = built_argv.get ();
 
   for (; *argv; ++argv)
     {
@@ -341,7 +341,7 @@ tsave_command (char *args, int from_tty)
   else
     writer = tfile_trace_file_writer_new ();
 
-  make_cleanup (trace_file_writer_xfree, writer);
+  back_to = make_cleanup (trace_file_writer_xfree, writer);
 
   trace_save (filename, writer, target_does_save);
 
@@ -387,7 +387,7 @@ trace_save_ctf (const char *dirname, int
 void
 tracefile_fetch_registers (struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct tracepoint *tp = get_tracepoint (get_tracepoint_number ());
   int regn;
 
@@ -398,15 +398,15 @@ tracefile_fetch_registers (struct regcac
 
   /* We can often usefully guess that the PC is going to be the same
      as the address of the tracepoint.  */
-  if (tp == NULL || tp->base.loc == NULL)
+  if (tp == NULL || tp->loc == NULL)
     return;
 
   /* But don't try to guess if tracepoint is multi-location...  */
-  if (tp->base.loc->next)
+  if (tp->loc->next)
     {
       warning (_("Tracepoint %d has multiple "
 		 "locations, cannot infer $pc"),
-	       tp->base.number);
+	       tp->number);
       return;
     }
   /* ... or does while-stepping.  */
@@ -414,13 +414,13 @@ tracefile_fetch_registers (struct regcac
     {
       warning (_("Tracepoint %d does while-stepping, "
 		 "cannot infer $pc"),
-	       tp->base.number);
+	       tp->number);
       return;
     }
 
   /* Guess what we can from the tracepoint location.  */
   gdbarch_guess_tracepoint_registers (gdbarch, regcache,
-				      tp->base.loc->address);
+				      tp->loc->address);
 }
 
 /* This is the implementation of target_ops method to_has_all_memory.  */
@@ -495,8 +495,6 @@ init_tracefile_ops (struct target_ops *o
   ops->to_magic = OPS_MAGIC;
 }
 
-extern initialize_file_ftype _initialize_tracefile;
-
 void
 _initialize_tracefile (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tracefile-tfile.c ./gdb/tracefile-tfile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tracefile-tfile.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tracefile-tfile.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Trace file TFILE format support in GDB.
 
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -89,7 +89,7 @@ tfile_start (struct trace_file_writer *s
     = (struct tfile_trace_file_writer *) self;
 
   writer->pathname = tilde_expand (filename);
-  writer->fp = gdb_fopen_cloexec (writer->pathname, "wb");
+  writer->fp = gdb_fopen_cloexec (writer->pathname, "wb").release ();
   if (writer->fp == NULL)
     error (_("Unable to open file '%s' for saving trace data (%s)"),
 	   writer->pathname, safe_strerror (errno));
@@ -275,17 +275,19 @@ tfile_write_tdesc (struct trace_file_wri
 {
   struct tfile_trace_file_writer *writer
     = (struct tfile_trace_file_writer *) self;
-  char *tdesc = target_fetch_description_xml (&current_target);
-  char *ptr = tdesc;
-  char *next;
 
-  if (tdesc == NULL)
+  gdb::optional<std::string> tdesc
+    = target_fetch_description_xml (&current_target);
+
+  if (!tdesc)
     return;
 
+  const char *ptr = tdesc->c_str ();
+
   /* Write tdesc line by line, prefixing each line with "tdesc ".  */
   while (ptr != NULL)
     {
-      next = strchr (ptr, '\n');
+      const char *next = strchr (ptr, '\n');
       if (next != NULL)
 	{
 	  fprintf (writer->fp, "tdesc %.*s\n", (int) (next - ptr), ptr);
@@ -299,8 +301,6 @@ tfile_write_tdesc (struct trace_file_wri
 	}
       ptr = next;
     }
-
-  xfree (tdesc);
 }
 
 /* This is the implementation of trace_file_write_ops method
@@ -422,8 +422,6 @@ tfile_read (gdb_byte *readbuf, int size)
 static void
 tfile_open (const char *arg, int from_tty)
 {
-  char *temp;
-  struct cleanup *old_chain;
   int flags;
   int scratch_chan;
   char header[TRACE_HEADER_SIZE];
@@ -433,34 +431,27 @@ tfile_open (const char *arg, int from_tt
   struct trace_status *ts;
   struct uploaded_tp *uploaded_tps = NULL;
   struct uploaded_tsv *uploaded_tsvs = NULL;
-  char *filename;
 
   target_preopen (from_tty);
   if (!arg)
     error (_("No trace file specified."));
 
-  filename = tilde_expand (arg);
-  if (!IS_ABSOLUTE_PATH(filename))
-    {
-      temp = concat (current_directory, "/", filename, (char *) NULL);
-      xfree (filename);
-      filename = temp;
-    }
-
-  old_chain = make_cleanup (xfree, filename);
+  gdb::unique_xmalloc_ptr<char> filename (tilde_expand (arg));
+  if (!IS_ABSOLUTE_PATH (filename.get ()))
+    filename.reset (concat (current_directory, "/", filename.get (),
+			    (char *) NULL));
 
   flags = O_BINARY | O_LARGEFILE;
   flags |= O_RDONLY;
-  scratch_chan = gdb_open_cloexec (filename, flags, 0);
+  scratch_chan = gdb_open_cloexec (filename.get (), flags, 0);
   if (scratch_chan < 0)
-    perror_with_name (filename);
+    perror_with_name (filename.get ());
 
   /* Looks semi-reasonable.  Toss the old trace file and work on the new.  */
 
-  discard_cleanups (old_chain);	/* Don't free filename any more.  */
   unpush_target (&tfile_ops);
 
-  trace_filename = xstrdup (filename);
+  trace_filename = filename.release ();
   trace_fd = scratch_chan;
 
   /* Make sure this is clear.  */
@@ -650,8 +641,8 @@ tfile_get_traceframe_address (off_t tfra
 
   tp = get_tracepoint_by_number_on_target (tpnum);
   /* FIXME this is a poor heuristic if multiple locations.  */
-  if (tp && tp->base.loc)
-    addr = tp->base.loc->address;
+  if (tp && tp->loc)
+    addr = tp->loc->address;
 
   /* Restore our seek position.  */
   cur_offset = saved_offset;
@@ -851,7 +842,7 @@ static void
 tfile_fetch_registers (struct target_ops *ops,
 		       struct regcache *regcache, int regno)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   int offset, regn, regsize, dummy;
 
   /* An uninitialized reg size says we're not going to be
@@ -867,7 +858,7 @@ tfile_fetch_registers (struct target_ops
 
       for (regn = 0; regn < gdbarch_num_regs (gdbarch); regn++)
 	{
-	  if (!remote_register_number_and_offset (get_regcache_arch (regcache),
+	  if (!remote_register_number_and_offset (regcache->arch (),
 						  regn, &dummy, &offset))
 	    continue;
 
@@ -1058,7 +1049,6 @@ build_traceframe_info (char blocktype, v
     {
     case 'M':
       {
-	struct mem_range *r;
 	ULONGEST maddr;
 	unsigned short mlen;
 
@@ -1072,10 +1062,7 @@ build_traceframe_info (char blocktype, v
 					  2, gdbarch_byte_order
 					  (target_gdbarch ()));
 
-	r = VEC_safe_push (mem_range_s, info->memory, NULL);
-
-	r->start = maddr;
-	r->length = mlen;
+	info->memory.emplace_back (maddr, mlen);
 	break;
       }
     case 'V':
@@ -1083,7 +1070,7 @@ build_traceframe_info (char blocktype, v
 	int vnum;
 
 	tfile_read ((gdb_byte *) &vnum, 4);
-	VEC_safe_push (int, info->tvars, vnum);
+	info->tvars.push_back (vnum);
       }
     case 'R':
     case 'S':
@@ -1100,12 +1087,13 @@ build_traceframe_info (char blocktype, v
   return 0;
 }
 
-static struct traceframe_info *
+static traceframe_info_up
 tfile_traceframe_info (struct target_ops *self)
 {
-  struct traceframe_info *info = XCNEW (struct traceframe_info);
+  traceframe_info_up info (new traceframe_info);
+
+  traceframe_walk_blocks (build_traceframe_info, 0, info.get ());
 
-  traceframe_walk_blocks (build_traceframe_info, 0, info);
   return info;
 }
 
@@ -1140,8 +1128,6 @@ init_tfile_ops (void)
   tfile_ops.to_traceframe_info = tfile_traceframe_info;
 }
 
-extern initialize_file_ftype _initialize_tracefile_tfile;
-
 void
 _initialize_tracefile_tfile (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tracepoint.c ./gdb/tracepoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tracepoint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tracepoint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Tracing functionality for remote targets in custom GDB protocol
 
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -133,7 +133,7 @@ static int tracepoint_number;
    yet attempted to fetch it, or if the target does not support
    fetching this object, or if we're not inspecting a traceframe
    presently.  */
-static struct traceframe_info *traceframe_info;
+static traceframe_info_up current_traceframe_info;
 
 /* Tracing command lists.  */
 static struct cmd_list_element *tfindlist;
@@ -165,18 +165,6 @@ char *trace_notes = NULL;
 
 char *trace_stop_notes = NULL;
 
-/* ======= Important command functions: ======= */
-static void actions_command (char *, int);
-static void tstart_command (char *, int);
-static void tstop_command (char *, int);
-static void tstatus_command (char *, int);
-static void tfind_pc_command (char *, int);
-static void tfind_tracepoint_command (char *, int);
-static void tfind_line_command (char *, int);
-static void tfind_range_command (char *, int);
-static void tfind_outside_command (char *, int);
-static void tdump_command (char *, int);
-
 /* support routines */
 
 struct collection_list;
@@ -185,8 +173,6 @@ static char *mem2hex (gdb_byte *, char *
 static struct command_line *
   all_tracepoint_actions_and_cleanup (struct breakpoint *t);
 
-extern void _initialize_tracepoint (void);
-
 static struct trace_status trace_status;
 
 const char *stop_reason_names[] = {
@@ -205,28 +191,13 @@ current_trace_status (void)
   return &trace_status;
 }
 
-/* Destroy INFO.  */
-
-static void
-free_traceframe_info (struct traceframe_info *info)
-{
-  if (info != NULL)
-    {
-      VEC_free (mem_range_s, info->memory);
-      VEC_free (int, info->tvars);
-
-      xfree (info);
-    }
-}
-
 /* Free and clear the traceframe info cache of the current
    traceframe.  */
 
 static void
 clear_traceframe_info (void)
 {
-  free_traceframe_info (traceframe_info);
-  traceframe_info = NULL;
+  current_traceframe_info = NULL;
 }
 
 /* Set traceframe number to NUM.  */
@@ -253,7 +224,7 @@ set_traceframe_context (struct frame_inf
 {
   CORE_ADDR trace_pc;
   struct symbol *traceframe_fun;
-  struct symtab_and_line traceframe_sal;
+  symtab_and_line traceframe_sal;
 
   /* Save as globals for internal use.  */
   if (trace_frame != NULL
@@ -269,7 +240,6 @@ set_traceframe_context (struct frame_inf
     }
   else
     {
-      init_sal (&traceframe_sal);
       traceframe_fun = NULL;
       set_internalvar_integer (lookup_internalvar ("trace_line"), -1);
     }
@@ -384,12 +354,11 @@ validate_trace_state_variable_name (cons
    evaluate into an initial value.  */
 
 static void
-trace_variable_command (char *args, int from_tty)
+trace_variable_command (const char *args, int from_tty)
 {
-  struct cleanup *old_chain;
   LONGEST initval = 0;
   struct trace_state_variable *tsv;
-  char *name, *p;
+  const char *name_start, *p;
 
   if (!args || !*args)
     error_no_arg (_("Syntax is $NAME [ = EXPR ]"));
@@ -400,23 +369,22 @@ trace_variable_command (char *args, int 
   if (*p++ != '$')
     error (_("Name of trace variable should start with '$'"));
 
-  name = p;
+  name_start = p;
   while (isalnum (*p) || *p == '_')
     p++;
-  name = savestring (name, p - name);
-  old_chain = make_cleanup (xfree, name);
+  std::string name (name_start, p - name_start);
 
   p = skip_spaces (p);
   if (*p != '=' && *p != '\0')
     error (_("Syntax must be $NAME [ = EXPR ]"));
 
-  validate_trace_state_variable_name (name);
+  validate_trace_state_variable_name (name.c_str ());
 
   if (*p == '=')
     initval = value_as_long (parse_and_eval (++p));
 
   /* If the variable already exists, just change its initial value.  */
-  tsv = find_trace_state_variable (name);
+  tsv = find_trace_state_variable (name.c_str ());
   if (tsv)
     {
       if (tsv->initial_value != initval)
@@ -427,12 +395,11 @@ trace_variable_command (char *args, int 
       printf_filtered (_("Trace state variable $%s "
 			 "now has initial value %s.\n"),
 		       tsv->name, plongest (tsv->initial_value));
-      do_cleanups (old_chain);
       return;
     }
 
   /* Create a new variable.  */
-  tsv = create_trace_state_variable (name);
+  tsv = create_trace_state_variable (name.c_str ());
   tsv->initial_value = initval;
 
   observer_notify_tsv_created (tsv);
@@ -440,17 +407,11 @@ trace_variable_command (char *args, int 
   printf_filtered (_("Trace state variable $%s "
 		     "created, with initial value %s.\n"),
 		   tsv->name, plongest (tsv->initial_value));
-
-  do_cleanups (old_chain);
 }
 
 static void
-delete_trace_variable_command (char *args, int from_tty)
+delete_trace_variable_command (const char *args, int from_tty)
 {
-  int ix;
-  char **argv;
-  struct cleanup *back_to;
-
   if (args == NULL)
     {
       if (query (_("Delete all trace state variables? ")))
@@ -460,19 +421,16 @@ delete_trace_variable_command (char *arg
       return;
     }
 
-  argv = gdb_buildargv (args);
-  back_to = make_cleanup_freeargv (argv);
+  gdb_argv argv (args);
 
-  for (ix = 0; argv[ix] != NULL; ix++)
+  for (char *arg : argv)
     {
-      if (*argv[ix] == '$')
-	delete_trace_state_variable (argv[ix] + 1);
+      if (*arg == '$')
+	delete_trace_state_variable (arg + 1);
       else
-	warning (_("Name \"%s\" not prefixed with '$', ignoring"), argv[ix]);
+	warning (_("Name \"%s\" not prefixed with '$', ignoring"), arg);
     }
 
-  do_cleanups (back_to);
-
   dont_repeat ();
 }
 
@@ -482,7 +440,6 @@ tvariables_info_1 (void)
   struct trace_state_variable *tsv;
   int ix;
   int count = 0;
-  struct cleanup *back_to;
   struct ui_out *uiout = current_uiout;
 
   if (VEC_length (tsv_s, tvariables) == 0 && !uiout->is_mi_like_p ())
@@ -496,8 +453,7 @@ tvariables_info_1 (void)
     tsv->value_known = target_get_trace_state_variable_value (tsv->number,
 							      &(tsv->value));
 
-  back_to = make_cleanup_ui_out_table_begin_end (uiout, 3,
-                                                 count, "trace-variables");
+  ui_out_emit_table table_emitter (uiout, 3, count, "trace-variables");
   uiout->table_header (15, ui_left, "name", "Name");
   uiout->table_header (11, ui_left, "initial", "Initial");
   uiout->table_header (11, ui_left, "current", "Current");
@@ -506,15 +462,12 @@ tvariables_info_1 (void)
 
   for (ix = 0; VEC_iterate (tsv_s, tvariables, ix, tsv); ++ix)
     {
-      struct cleanup *back_to2;
       const char *c;
-      char *name;
 
-      back_to2 = make_cleanup_ui_out_tuple_begin_end (uiout, "variable");
+      ui_out_emit_tuple tuple_emitter (uiout, "variable");
 
-      name = concat ("$", tsv->name, (char *) NULL);
-      make_cleanup (xfree, name);
-      uiout->field_string ("name", name);
+      std::string name = std::string ("$") + tsv->name;
+      uiout->field_string ("name", name.c_str ());
       uiout->field_string ("initial", plongest (tsv->initial_value));
 
       if (tsv->value_known)
@@ -533,17 +486,13 @@ tvariables_info_1 (void)
       if (c)
         uiout->field_string ("current", c);
       uiout->text ("\n");
-
-      do_cleanups (back_to2);
     }
-
-  do_cleanups (back_to);
 }
 
 /* List all the trace state variables.  */
 
 static void
-tvariables_info (char *args, int from_tty)
+info_tvariables_command (const char *args, int from_tty)
 {
   tvariables_info_1 ();
 }
@@ -577,25 +526,25 @@ save_trace_state_variables (struct ui_fi
    which is always an error.  */
 
 static void
-end_actions_pseudocommand (char *args, int from_tty)
+end_actions_pseudocommand (const char *args, int from_tty)
 {
   error (_("This command cannot be used at the top level."));
 }
 
 static void
-while_stepping_pseudocommand (char *args, int from_tty)
+while_stepping_pseudocommand (const char *args, int from_tty)
 {
   error (_("This command can only be used in a tracepoint actions list."));
 }
 
 static void
-collect_pseudocommand (char *args, int from_tty)
+collect_pseudocommand (const char *args, int from_tty)
 {
   error (_("This command can only be used in a tracepoint actions list."));
 }
 
 static void
-teval_pseudocommand (char *args, int from_tty)
+teval_pseudocommand (const char *args, int from_tty)
 {
   error (_("This command can only be used in a tracepoint actions list."));
 }
@@ -637,14 +586,14 @@ decode_agent_options (const char *exp, i
   else
     error (_("Undefined collection format \"%c\"."), *exp);
 
-  exp = skip_spaces_const (exp);
+  exp = skip_spaces (exp);
 
   return exp;
 }
 
 /* Enter a list of actions for a tracepoint.  */
 static void
-actions_command (char *args, int from_tty)
+actions_command (const char *args, int from_tty)
 {
   struct tracepoint *t;
 
@@ -653,11 +602,11 @@ actions_command (char *args, int from_tt
     {
       std::string tmpbuf =
 	string_printf ("Enter actions for tracepoint %d, one per line.",
-		       t->base.number);
+		       t->number);
 
       command_line_up l = read_command_lines (&tmpbuf[0], from_tty, 1,
 					      check_tracepoint_command, t);
-      breakpoint_set_commands (&t->base, std::move (l));
+      breakpoint_set_commands (t, std::move (l));
     }
   /* else just return */
 }
@@ -694,7 +643,6 @@ void
 validate_actionline (const char *line, struct breakpoint *b)
 {
   struct cmd_list_element *c;
-  struct cleanup *old_chain = NULL;
   const char *tmp_p;
   const char *p;
   struct bp_location *loc;
@@ -704,7 +652,7 @@ validate_actionline (const char *line, s
   if (line == NULL)
     return;
 
-  p = skip_spaces_const (line);
+  p = skip_spaces (line);
 
   /* Symbol lookup etc.  */
   if (*p == '\0')	/* empty line: just prompt for another line.  */
@@ -727,7 +675,7 @@ validate_actionline (const char *line, s
       do
 	{			/* Repeat over a comma-separated list.  */
 	  QUIT;			/* Allow user to bail out with ^C.  */
-	  p = skip_spaces_const (p);
+	  p = skip_spaces (p);
 
 	  if (*p == '$')	/* Look for special pseudo-symbols.  */
 	    {
@@ -743,7 +691,7 @@ validate_actionline (const char *line, s
 	      /* else fall thru, treat p as an expression and parse it!  */
 	    }
 	  tmp_p = p;
-	  for (loc = t->base.loc; loc; loc = loc->next)
+	  for (loc = t->loc; loc; loc = loc->next)
 	    {
 	      p = tmp_p;
 	      expression_up exp = parse_exp_1 (&p, loc->address,
@@ -790,10 +738,10 @@ validate_actionline (const char *line, s
       do
 	{			/* Repeat over a comma-separated list.  */
 	  QUIT;			/* Allow user to bail out with ^C.  */
-	  p = skip_spaces_const (p);
+	  p = skip_spaces (p);
 
 	  tmp_p = p;
-	  for (loc = t->base.loc; loc; loc = loc->next)
+	  for (loc = t->loc; loc; loc = loc->next)
 	    {
 	      p = tmp_p;
 
@@ -820,7 +768,7 @@ validate_actionline (const char *line, s
     {
       char *endp;
 
-      p = skip_spaces_const (p);
+      p = skip_spaces (p);
       t->step_count = strtol (p, &endp, 0);
       if (endp == p || t->step_count == 0)
 	error (_("while-stepping step count `%s' is malformed."), line);
@@ -1030,8 +978,6 @@ collection_list::collect_symbol (struct 
   /* Expressions are the most general case.  */
   if (treat_as_expr)
     {
-      struct cleanup *old_chain1 = NULL;
-
       agent_expr_up aexpr = gen_trace_for_var (scope, gdbarch,
 					       sym, trace_string);
 
@@ -1172,18 +1118,14 @@ collection_list::collection_list ()
 
 /* Reduce a collection list to string form (for gdb protocol).  */
 
-char **
+std::vector<std::string>
 collection_list::stringify ()
 {
   char temp_buf[2048];
   int count;
-  int ndx = 0;
-  char *(*str_list)[];
   char *end;
   long i;
-
-  count = 1 + 1 + m_memranges.size () + m_aexprs.size () + 1;
-  str_list = (char *(*)[]) xmalloc (count * sizeof (char *));
+  std::vector<std::string> str_list;
 
   if (m_strace_data)
     {
@@ -1191,8 +1133,7 @@ collection_list::stringify ()
 	printf_filtered ("\nCollecting static trace data\n");
       end = temp_buf;
       *end++ = 'L';
-      (*str_list)[ndx] = savestring (temp_buf, end - temp_buf);
-      ndx++;
+      str_list.emplace_back (temp_buf, end - temp_buf);
     }
 
   for (i = sizeof (m_regs_mask) - 1; i > 0; i--)
@@ -1212,8 +1153,7 @@ collection_list::stringify ()
 	  sprintf (end, "%02X", m_regs_mask[i]);
 	  end += 2;
 	}
-      (*str_list)[ndx] = xstrdup (temp_buf);
-      ndx++;
+      str_list.emplace_back (temp_buf);
     }
   if (info_verbose)
     printf_filtered ("\n");
@@ -1233,8 +1173,7 @@ collection_list::stringify ()
 	}
       if (count + 27 > MAX_AGENT_EXPR_LEN)
 	{
-	  (*str_list)[ndx] = savestring (temp_buf, count);
-	  ndx++;
+	  str_list.emplace_back (temp_buf, count);
 	  count = 0;
 	  end = temp_buf;
 	}
@@ -1264,8 +1203,7 @@ collection_list::stringify ()
       QUIT;			/* Allow user to bail out with ^C.  */
       if ((count + 10 + 2 * m_aexprs[i]->len) > MAX_AGENT_EXPR_LEN)
 	{
-	  (*str_list)[ndx] = savestring (temp_buf, count);
-	  ndx++;
+	  str_list.emplace_back (temp_buf, count);
 	  count = 0;
 	  end = temp_buf;
 	}
@@ -1279,20 +1217,12 @@ collection_list::stringify ()
 
   if (count != 0)
     {
-      (*str_list)[ndx] = savestring (temp_buf, count);
-      ndx++;
+      str_list.emplace_back (temp_buf, count);
       count = 0;
       end = temp_buf;
     }
-  (*str_list)[ndx] = NULL;
 
-  if (ndx == 0)
-    {
-      xfree (str_list);
-      return NULL;
-    }
-  else
-    return *str_list;
+  return str_list;
 }
 
 /* Add the printed expression EXP to *LIST.  */
@@ -1330,7 +1260,7 @@ encode_actions_1 (struct command_line *a
     {
       QUIT;			/* Allow user to bail out with ^C.  */
       action_exp = action->line;
-      action_exp = skip_spaces_const (action_exp);
+      action_exp = skip_spaces (action_exp);
 
       cmd = lookup_cmd (&action_exp, cmdlist, "", -1, 1);
       if (cmd == 0)
@@ -1346,7 +1276,7 @@ encode_actions_1 (struct command_line *a
 	  do
 	    {			/* Repeat over a comma-separated list.  */
 	      QUIT;		/* Allow user to bail out with ^C.  */
-	      action_exp = skip_spaces_const (action_exp);
+	      action_exp = skip_spaces (action_exp);
 
 	      if (0 == strncasecmp ("$reg", action_exp, 4))
 		{
@@ -1414,7 +1344,6 @@ encode_actions_1 (struct command_line *a
 	      else
 		{
 		  unsigned long addr;
-		  struct cleanup *old_chain1 = NULL;
 
 		  expression_up exp = parse_exp_1 (&action_exp, tloc->address,
 						   block_for_pc (tloc->address),
@@ -1506,11 +1435,9 @@ encode_actions_1 (struct command_line *a
 	  do
 	    {			/* Repeat over a comma-separated list.  */
 	      QUIT;		/* Allow user to bail out with ^C.  */
-	      action_exp = skip_spaces_const (action_exp);
+	      action_exp = skip_spaces (action_exp);
 
 		{
-		  struct cleanup *old_chain1 = NULL;
-
 		  expression_up exp = parse_exp_1 (&action_exp, tloc->address,
 						   block_for_pc (tloc->address),
 						   1);
@@ -1570,14 +1497,12 @@ encode_actions (struct bp_location *tloc
 /* Render all actions into gdb protocol.  */
 
 void
-encode_actions_rsp (struct bp_location *tloc, char ***tdp_actions,
-		    char ***stepping_actions)
+encode_actions_rsp (struct bp_location *tloc,
+		    std::vector<std::string> *tdp_actions,
+		    std::vector<std::string> *stepping_actions)
 {
   struct collection_list tracepoint_list, stepping_list;
 
-  *tdp_actions = NULL;
-  *stepping_actions = NULL;
-
   encode_actions (tloc, &tracepoint_list, &stepping_list);
 
   *tdp_actions = tracepoint_list.stringify ();
@@ -1644,7 +1569,7 @@ trace_reset_local_state (void)
 }
 
 void
-start_tracing (char *notes)
+start_tracing (const char *notes)
 {
   VEC(breakpoint_p) *tp_vec = NULL;
   int ix;
@@ -1729,11 +1654,9 @@ start_tracing (char *notes)
       t->number_on_target = b->number;
 
       for (loc = b->loc; loc; loc = loc->next)
-	if (loc->probe.probe != NULL
-	    && loc->probe.probe->pops->set_semaphore != NULL)
-	  loc->probe.probe->pops->set_semaphore (loc->probe.probe,
-						 loc->probe.objfile,
-						 loc->gdbarch);
+	if (loc->probe.prob != NULL)
+	  loc->probe.prob->set_semaphore (loc->probe.objfile,
+					  loc->gdbarch);
 
       if (bp_location_downloaded)
 	observer_notify_breakpoint_modified (b);
@@ -1775,7 +1698,7 @@ start_tracing (char *notes)
    anybody else messing with the target.  */
 
 static void
-tstart_command (char *args, int from_tty)
+tstart_command (const char *args, int from_tty)
 {
   dont_repeat ();	/* Like "run", dangerous to repeat accidentally.  */
 
@@ -1795,7 +1718,7 @@ tstart_command (char *args, int from_tty
    of the trace run's status.  */
 
 static void
-tstop_command (char *args, int from_tty)
+tstop_command (const char *args, int from_tty)
 {
   if (!current_trace_status ()->running)
     error (_("Trace is not running."));
@@ -1804,7 +1727,7 @@ tstop_command (char *args, int from_tty)
 }
 
 void
-stop_tracing (char *note)
+stop_tracing (const char *note)
 {
   int ret;
   VEC(breakpoint_p) *tp_vec = NULL;
@@ -1829,11 +1752,9 @@ stop_tracing (char *note)
 	     but we don't really care if this semaphore goes out of sync.
 	     That's why we are decrementing it here, but not taking care
 	     in other places.  */
-	  if (loc->probe.probe != NULL
-	      && loc->probe.probe->pops->clear_semaphore != NULL)
-	    loc->probe.probe->pops->clear_semaphore (loc->probe.probe,
-						     loc->probe.objfile,
-						     loc->gdbarch);
+	  if (loc->probe.prob != NULL)
+	    loc->probe.prob->clear_semaphore (loc->probe.objfile,
+					      loc->gdbarch);
 	}
     }
 
@@ -1852,7 +1773,7 @@ stop_tracing (char *note)
 
 /* tstatus command */
 static void
-tstatus_command (char *args, int from_tty)
+tstatus_command (const char *args, int from_tty)
 {
   struct trace_status *ts = current_trace_status ();
   int status, ix;
@@ -2251,7 +2172,7 @@ tfind_1 (enum trace_find_type type, int 
   reinit_frame_cache ();
   target_dcache_invalidate ();
 
-  set_tracepoint_num (tp ? tp->base.number : target_tracept);
+  set_tracepoint_num (tp ? tp->number : target_tracept);
 
   if (target_frameno != get_traceframe_number ())
     observer_notify_traceframe_changed (target_frameno, tracepoint_number);
@@ -2374,28 +2295,28 @@ tfind_command_1 (const char *args, int f
 }
 
 static void
-tfind_command (char *args, int from_tty)
+tfind_command (const char *args, int from_tty)
 {
-  tfind_command_1 (const_cast<char *> (args), from_tty);
+  tfind_command_1 (args, from_tty);
 }
 
 /* tfind end */
 static void
-tfind_end_command (char *args, int from_tty)
+tfind_end_command (const char *args, int from_tty)
 {
   tfind_command_1 ("-1", from_tty);
 }
 
 /* tfind start */
 static void
-tfind_start_command (char *args, int from_tty)
+tfind_start_command (const char *args, int from_tty)
 {
   tfind_command_1 ("0", from_tty);
 }
 
 /* tfind pc command */
 static void
-tfind_pc_command (char *args, int from_tty)
+tfind_pc_command (const char *args, int from_tty)
 {
   CORE_ADDR pc;
 
@@ -2411,7 +2332,7 @@ tfind_pc_command (char *args, int from_t
 
 /* tfind tracepoint command */
 static void
-tfind_tracepoint_command (char *args, int from_tty)
+tfind_tracepoint_command (const char *args, int from_tty)
 {
   int tdp;
   struct tracepoint *tp;
@@ -2447,32 +2368,26 @@ tfind_tracepoint_command (char *args, in
    corresponding to a source line OTHER THAN THE CURRENT ONE.  */
 
 static void
-tfind_line_command (char *args, int from_tty)
+tfind_line_command (const char *args, int from_tty)
 {
-  static CORE_ADDR start_pc, end_pc;
-  struct symtabs_and_lines sals;
-  struct symtab_and_line sal;
-  struct cleanup *old_chain;
-
   check_trace_running (current_trace_status ());
 
+  symtab_and_line sal;
   if (args == 0 || *args == 0)
     {
       sal = find_pc_line (get_frame_pc (get_current_frame ()), 0);
-      sals.nelts = 1;
-      sals.sals = XNEW (struct symtab_and_line);
-      sals.sals[0] = sal;
     }
   else
     {
-      sals = decode_line_with_current_source (args, DECODE_LINE_FUNFIRSTLINE);
-      sal = sals.sals[0];
+      std::vector<symtab_and_line> sals
+	= decode_line_with_current_source (args, DECODE_LINE_FUNFIRSTLINE);
+      sal = sals[0];
     }
-  
-  old_chain = make_cleanup (xfree, sals.sals);
+
   if (sal.symtab == 0)
     error (_("No line number information available."));
 
+  CORE_ADDR start_pc, end_pc;
   if (sal.line > 0 && find_line_pc_range (sal, &start_pc, &end_pc))
     {
       if (start_pc == end_pc)
@@ -2507,15 +2422,14 @@ tfind_line_command (char *args, int from
     tfind_1 (tfind_range, 0, start_pc, end_pc - 1, from_tty);
   else
     tfind_1 (tfind_outside, 0, start_pc, end_pc - 1, from_tty);
-  do_cleanups (old_chain);
 }
 
 /* tfind range command */
 static void
-tfind_range_command (char *args, int from_tty)
+tfind_range_command (const char *args, int from_tty)
 {
   static CORE_ADDR start, stop;
-  char *tmp;
+  const char *tmp;
 
   check_trace_running (current_trace_status ());
 
@@ -2527,9 +2441,10 @@ tfind_range_command (char *args, int fro
 
   if (0 != (tmp = strchr (args, ',')))
     {
-      *tmp++ = '\0';	/* Terminate start address.  */
+      std::string start_addr (args, tmp);
+      ++tmp;
       tmp = skip_spaces (tmp);
-      start = parse_and_eval_address (args);
+      start = parse_and_eval_address (start_addr.c_str ());
       stop = parse_and_eval_address (tmp);
     }
   else
@@ -2543,10 +2458,10 @@ tfind_range_command (char *args, int fro
 
 /* tfind outside command */
 static void
-tfind_outside_command (char *args, int from_tty)
+tfind_outside_command (const char *args, int from_tty)
 {
   CORE_ADDR start, stop;
-  char *tmp;
+  const char *tmp;
 
   if (current_trace_status ()->running
       && current_trace_status ()->filename == NULL)
@@ -2560,9 +2475,10 @@ tfind_outside_command (char *args, int f
 
   if (0 != (tmp = strchr (args, ',')))
     {
-      *tmp++ = '\0';	/* Terminate start address.  */
+      std::string start_addr (args, tmp);
+      ++tmp;
       tmp = skip_spaces (tmp);
-      start = parse_and_eval_address (args);
+      start = parse_and_eval_address (start_addr.c_str ());
       stop = parse_and_eval_address (tmp);
     }
   else
@@ -2576,18 +2492,18 @@ tfind_outside_command (char *args, int f
 
 /* info scope command: list the locals for a scope.  */
 static void
-scope_info (char *args, int from_tty)
+info_scope_command (const char *args_in, int from_tty)
 {
-  struct symtabs_and_lines sals;
   struct symbol *sym;
   struct bound_minimal_symbol msym;
   const struct block *block;
   const char *symname;
-  char *save_args = args;
+  const char *save_args = args_in;
   struct block_iterator iter;
   int j, count = 0;
   struct gdbarch *gdbarch;
   int regno;
+  const char *args = args_in;
 
   if (args == 0 || *args == 0)
     error (_("requires an argument (function, "
@@ -2595,17 +2511,18 @@ scope_info (char *args, int from_tty)
 
   event_location_up location = string_to_event_location (&args,
 							 current_language);
-  sals = decode_line_1 (location.get (), DECODE_LINE_FUNFIRSTLINE,
-			NULL, NULL, 0);
-  if (sals.nelts == 0)
+  std::vector<symtab_and_line> sals
+    = decode_line_1 (location.get (), DECODE_LINE_FUNFIRSTLINE,
+		     NULL, NULL, 0);
+  if (sals.empty ())
     {
       /* Presumably decode_line_1 has already warned.  */
       return;
     }
 
   /* Resolve line numbers to PC.  */
-  resolve_sal_pc (&sals.sals[0]);
-  block = block_for_pc (sals.sals[0].pc);
+  resolve_sal_pc (&sals[0]);
+  block = block_for_pc (sals[0].pc);
 
   while (block != 0)
     {
@@ -2759,7 +2676,7 @@ trace_dump_actions (struct command_line 
 
       QUIT;			/* Allow user to bail out with ^C.  */
       action_exp = action->line;
-      action_exp = skip_spaces_const (action_exp);
+      action_exp = skip_spaces (action_exp);
 
       /* The collection actions to be done while stepping are
          bracketed by the commands "while-stepping" and "end".  */
@@ -2802,7 +2719,7 @@ trace_dump_actions (struct command_line 
 		  QUIT;		/* Allow user to bail out with ^C.  */
 		  if (*action_exp == ',')
 		    action_exp++;
-		  action_exp = skip_spaces_const (action_exp);
+		  action_exp = skip_spaces (action_exp);
 
 		  next_comma = strchr (action_exp, ',');
 
@@ -2811,9 +2728,9 @@ trace_dump_actions (struct command_line 
 		  else if (0 == strncasecmp (action_exp, "$_ret", 5))
 		    ;
 		  else if (0 == strncasecmp (action_exp, "$loc", 4))
-		    locals_info (NULL, from_tty);
+		    info_locals_command (NULL, from_tty);
 		  else if (0 == strncasecmp (action_exp, "$arg", 4))
-		    args_info (NULL, from_tty);
+		    info_args_command (NULL, from_tty);
 		  else
 		    {		/* variable */
 		      if (next_comma != NULL)
@@ -2875,7 +2792,7 @@ get_traceframe_location (int *stepping_f
      locations, assume it is a direct hit rather than a while-stepping
      frame.  (FIXME this is not reliable, should record each frame's
      type.)  */
-  for (tloc = t->base.loc; tloc; tloc = tloc->next)
+  for (tloc = t->loc; tloc; tloc = tloc->next)
     if (tloc->address == regcache_read_pc (regcache))
       {
 	*stepping_frame_p = 0;
@@ -2885,7 +2802,7 @@ get_traceframe_location (int *stepping_f
   /* If this is a stepping frame, we don't know which location
      triggered.  The first is as good (or bad) a guess as any...  */
   *stepping_frame_p = 1;
-  return t->base.loc;
+  return t->loc;
 }
 
 /* Return all the actions, including default collect, of a tracepoint
@@ -2926,11 +2843,10 @@ all_tracepoint_actions_and_cleanup (stru
 /* The tdump command.  */
 
 static void
-tdump_command (char *args, int from_tty)
+tdump_command (const char *args, int from_tty)
 {
   int stepping_frame = 0;
   struct bp_location *loc;
-  struct cleanup *old_chain;
   struct command_line *actions;
 
   /* This throws an error is not inspecting a trace frame.  */
@@ -2941,14 +2857,13 @@ tdump_command (char *args, int from_tty)
 
   /* This command only makes sense for the current frame, not the
      selected frame.  */
-  old_chain = make_cleanup_restore_current_thread ();
+  scoped_restore_current_thread restore_thread;
+
   select_frame (get_current_frame ());
 
   actions = all_tracepoint_actions_and_cleanup (loc->owner);
 
   trace_dump_actions (actions, 0, stepping_frame, from_tty);
-
-  do_cleanups (old_chain);
 }
 
 /* Encode a piece of a tracepoint's source-level definition in a form
@@ -2976,28 +2891,28 @@ encode_source_string (int tpnum, ULONGES
    disconnects for some reason.  */
 
 static void
-set_disconnected_tracing (char *args, int from_tty,
+set_disconnected_tracing (const char *args, int from_tty,
 			  struct cmd_list_element *c)
 {
   target_set_disconnected_tracing (disconnected_tracing);
 }
 
 static void
-set_circular_trace_buffer (char *args, int from_tty,
+set_circular_trace_buffer (const char *args, int from_tty,
 			   struct cmd_list_element *c)
 {
   target_set_circular_trace_buffer (circular_trace_buffer);
 }
 
 static void
-set_trace_buffer_size (char *args, int from_tty,
+set_trace_buffer_size (const char *args, int from_tty,
 			   struct cmd_list_element *c)
 {
   target_set_trace_buffer_size (trace_buffer_size);
 }
 
 static void
-set_trace_user (char *args, int from_tty,
+set_trace_user (const char *args, int from_tty,
 		struct cmd_list_element *c)
 {
   int ret;
@@ -3009,7 +2924,7 @@ set_trace_user (char *args, int from_tty
 }
 
 static void
-set_trace_notes (char *args, int from_tty,
+set_trace_notes (const char *args, int from_tty,
 		 struct cmd_list_element *c)
 {
   int ret;
@@ -3021,7 +2936,7 @@ set_trace_notes (char *args, int from_tt
 }
 
 static void
-set_trace_stop_notes (char *args, int from_tty,
+set_trace_stop_notes (const char *args, int from_tty,
 		      struct cmd_list_element *c)
 {
   int ret;
@@ -3238,7 +3153,7 @@ find_matching_tracepoint_location (struc
       if (b->type == utp->type
 	  && t->step_count == utp->step
 	  && t->pass_count == utp->pass
-	  && cond_string_is_same (t->base.cond_string, utp->cond_string)
+	  && cond_string_is_same (t->cond_string, utp->cond_string)
 	  /* FIXME also test actions.  */
 	  )
 	{
@@ -3307,7 +3222,7 @@ merge_uploaded_tracepoints (struct uploa
 	  if (t)
 	    printf_filtered (_("Created tracepoint %d for "
 			       "target's tracepoint %d at %s.\n"),
-			     t->base.number, utp->number,
+			     t->number, utp->number,
 			     paddress (get_current_arch (), utp->addr));
 	  else
 	    printf_filtered (_("Failed to create tracepoint for target's "
@@ -3347,41 +3262,33 @@ static struct trace_state_variable *
 create_tsv_from_upload (struct uploaded_tsv *utsv)
 {
   const char *namebase;
-  char *buf;
+  std::string buf;
   int try_num = 0;
   struct trace_state_variable *tsv;
-  struct cleanup *old_chain;
 
   if (utsv->name)
     {
       namebase = utsv->name;
-      buf = xstrprintf ("%s", namebase);
+      buf = namebase;
     }
   else
     {
       namebase = "__tsv";
-      buf = xstrprintf ("%s_%d", namebase, try_num++);
+      buf = string_printf ("%s_%d", namebase, try_num++);
     }
 
   /* Fish for a name that is not in use.  */
   /* (should check against all internal vars?)  */
-  while (find_trace_state_variable (buf))
-    {
-      xfree (buf);
-      buf = xstrprintf ("%s_%d", namebase, try_num++);
-    }
-
-  old_chain = make_cleanup (xfree, buf);
+  while (find_trace_state_variable (buf.c_str ()))
+    buf = string_printf ("%s_%d", namebase, try_num++);
 
   /* We have an available name, create the variable.  */
-  tsv = create_trace_state_variable (buf);
+  tsv = create_trace_state_variable (buf.c_str ());
   tsv->initial_value = utsv->initial_value;
   tsv->builtin = utsv->builtin;
 
   observer_notify_tsv_created (tsv);
 
-  do_cleanups (old_chain);
-
   return tsv;
 }
 
@@ -3442,9 +3349,9 @@ merge_uploaded_trace_state_variables (st
    the remote protocol and the trace file reader.  */
 
 void
-parse_trace_status (char *line, struct trace_status *ts)
+parse_trace_status (const char *line, struct trace_status *ts)
 {
-  char *p = line, *p1, *p2, *p3, *p_temp;
+  const char *p = line, *p1, *p2, *p3, *p_temp;
   int end;
   ULONGEST val;
 
@@ -3602,7 +3509,7 @@ Status line: '%s'\n"), p, line);
 }
 
 void
-parse_tracepoint_status (char *p, struct breakpoint *bp,
+parse_tracepoint_status (const char *p, struct breakpoint *bp,
 			 struct uploaded_tp *utp)
 {
   ULONGEST uval;
@@ -3610,7 +3517,7 @@ parse_tracepoint_status (char *p, struct
 
   p = unpack_varlen_hex (p, &uval);
   if (tp)
-    tp->base.hit_count += uval;
+    tp->hit_count += uval;
   else
     utp->hit_count += uval;
   p = unpack_varlen_hex (p + 1, &uval);
@@ -3625,14 +3532,15 @@ parse_tracepoint_status (char *p, struct
    an "uploaded tracepoint".  */
 
 void
-parse_tracepoint_definition (char *line, struct uploaded_tp **utpp)
+parse_tracepoint_definition (const char *line, struct uploaded_tp **utpp)
 {
-  char *p;
+  const char *p;
   char piece;
   ULONGEST num, addr, step, pass, orig_size, xlen, start;
   int enabled, end;
   enum bptype type;
-  char *cond, *srctype, *buf;
+  const char *srctype;
+  char *cond, *buf;
   struct uploaded_tp *utp = NULL;
 
   p = line;
@@ -3740,9 +3648,10 @@ parse_tracepoint_definition (char *line,
    uploaded object.  */
 
 void
-parse_tsv_definition (char *line, struct uploaded_tsv **utsvp)
+parse_tsv_definition (const char *line, struct uploaded_tsv **utsvp)
 {
-  char *p, *buf;
+  const char *p;
+  char *buf;
   ULONGEST num, initval, builtin;
   int end;
   struct uploaded_tsv *utsv = NULL;
@@ -3786,10 +3695,10 @@ free_current_marker (void *arg)
    the parsed marker definition.  */
 
 void
-parse_static_tracepoint_marker_definition (char *line, char **pp,
+parse_static_tracepoint_marker_definition (const char *line, const char **pp,
 					   struct static_tracepoint_marker *marker)
 {
-  char *p, *endp;
+  const char *p, *endp;
   ULONGEST addr;
   int end;
 
@@ -3841,18 +3750,14 @@ print_one_static_tracepoint_marker (int 
   char wrap_indent[80];
   char extra_field_indent[80];
   struct ui_out *uiout = current_uiout;
-  struct cleanup *bkpt_chain;
   VEC(breakpoint_p) *tracepoints;
 
-  struct symtab_and_line sal;
-
-  init_sal (&sal);
-
+  symtab_and_line sal;
   sal.pc = marker->address;
 
   tracepoints = static_tracepoints_here (marker->address);
 
-  bkpt_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "marker");
+  ui_out_emit_tuple tuple_emitter (uiout, "marker");
 
   /* A counter field to help readability.  This is not a stable
      identifier!  */
@@ -3919,24 +3824,22 @@ print_one_static_tracepoint_marker (int 
 
   if (!VEC_empty (breakpoint_p, tracepoints))
     {
-      struct cleanup *cleanup_chain;
       int ix;
       struct breakpoint *b;
 
-      cleanup_chain = make_cleanup_ui_out_tuple_begin_end (uiout,
-							   "tracepoints-at");
-
-      uiout->text (extra_field_indent);
-      uiout->text (_("Probed by static tracepoints: "));
-      for (ix = 0; VEC_iterate(breakpoint_p, tracepoints, ix, b); ix++)
-	{
-	  if (ix > 0)
-	    uiout->text (", ");
-	  uiout->text ("#");
-	  uiout->field_int ("tracepoint-id", b->number);
-	}
+      {
+	ui_out_emit_tuple tuple_emitter (uiout, "tracepoints-at");
 
-      do_cleanups (cleanup_chain);
+	uiout->text (extra_field_indent);
+	uiout->text (_("Probed by static tracepoints: "));
+	for (ix = 0; VEC_iterate(breakpoint_p, tracepoints, ix, b); ix++)
+	  {
+	    if (ix > 0)
+	      uiout->text (", ");
+	    uiout->text ("#");
+	    uiout->field_int ("tracepoint-id", b->number);
+	  }
+      }
 
       if (uiout->is_mi_like_p ())
 	uiout->field_int ("number-of-tracepoints",
@@ -3945,12 +3848,10 @@ print_one_static_tracepoint_marker (int 
 	uiout->text ("\n");
     }
   VEC_free (breakpoint_p, tracepoints);
-
-  do_cleanups (bkpt_chain);
 }
 
 static void
-info_static_tracepoint_markers_command (char *arg, int from_tty)
+info_static_tracepoint_markers_command (const char *arg, int from_tty)
 {
   VEC(static_tracepoint_marker_p) *markers;
   struct cleanup *old_chain;
@@ -3964,9 +3865,8 @@ info_static_tracepoint_markers_command (
      don't work without in-process agent, so we don't bother users to type
      `set agent on' when to use static tracepoint.  */
 
-  old_chain
-    = make_cleanup_ui_out_table_begin_end (uiout, 5, -1,
-					   "StaticTracepointMarkersTable");
+  ui_out_emit_table table_emitter (uiout, 5, -1,
+				   "StaticTracepointMarkersTable");
 
   uiout->table_header (7, ui_left, "counter", "Cnt");
 
@@ -3982,7 +3882,7 @@ info_static_tracepoint_markers_command (
   uiout->table_body ();
 
   markers = target_static_tracepoint_markers_by_strid (NULL);
-  make_cleanup (VEC_cleanup (static_tracepoint_marker_p), &markers);
+  old_chain = make_cleanup (VEC_cleanup (static_tracepoint_marker_p), &markers);
 
   for (i = 0;
        VEC_iterate (static_tracepoint_marker_p,
@@ -4035,7 +3935,7 @@ sdata_make_value (struct gdbarch *gdbarc
 
 #if !defined(HAVE_LIBEXPAT)
 
-struct traceframe_info *
+struct std::unique_ptr<traceframe_info>
 parse_traceframe_info (const char *tframe_info)
 {
   static int have_warned;
@@ -4062,7 +3962,6 @@ traceframe_info_start_memory (struct gdb
 			      void *user_data, VEC(gdb_xml_value_s) *attributes)
 {
   struct traceframe_info *info = (struct traceframe_info *) user_data;
-  struct mem_range *r = VEC_safe_push (mem_range_s, info->memory, NULL);
   ULONGEST *start_p, *length_p;
 
   start_p
@@ -4070,8 +3969,7 @@ traceframe_info_start_memory (struct gdb
   length_p
     = (ULONGEST *) xml_find_attribute (attributes, "length")->value;
 
-  r->start = *start_p;
-  r->length = *length_p;
+  info->memory.emplace_back (*start_p, *length_p);
 }
 
 /* Handle the start of a <tvar> element.  */
@@ -4087,17 +3985,7 @@ traceframe_info_start_tvar (struct gdb_x
     = (const char *) xml_find_attribute (attributes, "id")->value;
   int id = gdb_xml_parse_ulongest (parser, id_attrib);
 
-  VEC_safe_push (int, info->tvars, id);
-}
-
-/* Discard the constructed trace frame info (if an error occurs).  */
-
-static void
-free_result (void *p)
-{
-  struct traceframe_info *result = (struct traceframe_info *) p;
-
-  free_traceframe_info (result);
+  info->tvars.push_back (id);
 }
 
 /* The allowed elements and attributes for an XML memory map.  */
@@ -4131,26 +4019,16 @@ static const struct gdb_xml_element trac
 
 /* Parse a traceframe-info XML document.  */
 
-struct traceframe_info *
+traceframe_info_up
 parse_traceframe_info (const char *tframe_info)
 {
-  struct traceframe_info *result;
-  struct cleanup *back_to;
-
-  result = XCNEW (struct traceframe_info);
-  back_to = make_cleanup (free_result, result);
+  traceframe_info_up result (new traceframe_info);
 
   if (gdb_xml_parse_quick (_("trace frame info"),
 			   "traceframe-info.dtd", traceframe_info_elements,
-			   tframe_info, result) == 0)
-    {
-      /* Parsed successfully, keep the result.  */
-      discard_cleanups (back_to);
-
-      return result;
-    }
+			   tframe_info, result.get ()) == 0)
+    return result;
 
-  do_cleanups (back_to);
   return NULL;
 }
 
@@ -4163,10 +4041,10 @@ parse_traceframe_info (const char *tfram
 struct traceframe_info *
 get_traceframe_info (void)
 {
-  if (traceframe_info == NULL)
-    traceframe_info = target_traceframe_info ();
+  if (current_traceframe_info == NULL)
+    current_traceframe_info = target_traceframe_info ();
 
-  return traceframe_info;
+  return current_traceframe_info.get ();
 }
 
 /* If the target supports the query, return in RESULT the set of
@@ -4176,37 +4054,33 @@ get_traceframe_info (void)
    undefined.  */
 
 int
-traceframe_available_memory (VEC(mem_range_s) **result,
+traceframe_available_memory (std::vector<mem_range> *result,
 			     CORE_ADDR memaddr, ULONGEST len)
 {
   struct traceframe_info *info = get_traceframe_info ();
 
   if (info != NULL)
     {
-      struct mem_range *r;
-      int i;
-
-      *result = NULL;
+      result->clear ();
 
-      for (i = 0; VEC_iterate (mem_range_s, info->memory, i, r); i++)
-	if (mem_ranges_overlap (r->start, r->length, memaddr, len))
+      for (mem_range &r : info->memory)
+	if (mem_ranges_overlap (r.start, r.length, memaddr, len))
 	  {
 	    ULONGEST lo1, hi1, lo2, hi2;
-	    struct mem_range *nr;
 
 	    lo1 = memaddr;
 	    hi1 = memaddr + len;
 
-	    lo2 = r->start;
-	    hi2 = r->start + r->length;
+	    lo2 = r.start;
+	    hi2 = r.start + r.length;
 
-	    nr = VEC_safe_push (mem_range_s, *result, NULL);
+	    CORE_ADDR start = std::max (lo1, lo2);
+	    int length = std::min (hi1, hi2) - start;
 
-	    nr->start = std::max (lo1, lo2);
-	    nr->length = std::min (hi1, hi2) - nr->start;
+	    result->emplace_back (start, length);
 	  }
 
-      normalize_mem_ranges (*result);
+      normalize_mem_ranges (result);
       return 1;
     }
 
@@ -4237,10 +4111,10 @@ _initialize_tracepoint (void)
   traceframe_number = -1;
   tracepoint_number = -1;
 
-  add_info ("scope", scope_info,
+  add_info ("scope", info_scope_command,
 	    _("List the variables local to a scope"));
 
-  add_cmd ("tracepoints", class_trace, NULL,
+  add_cmd ("tracepoints", class_trace,
 	   _("Tracing of program execution without stopping the program."),
 	   &cmdlist);
 
@@ -4260,7 +4134,7 @@ Arguments are the names of the variables
 If no arguments are supplied, delete all variables."), &deletelist);
   /* FIXME add a trace variable completer.  */
 
-  add_info ("tvariables", tvariables_info, _("\
+  add_info ("tvariables", info_tvariables_command, _("\
 Status of trace state variables and their values.\n\
 "));
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tracepoint.h ./gdb/tracepoint.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tracepoint.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tracepoint.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Data structures associated with tracepoints in GDB.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,7 +20,6 @@
 #define TRACEPOINT_H 1
 
 #include "breakpoint.h"
-#include "target.h"
 #include "memrange.h"
 #include "gdb_vecs.h"
 
@@ -32,12 +31,14 @@
 struct traceframe_info
 {
   /* Collected memory.  */
-  VEC(mem_range_s) *memory;
+  std::vector<mem_range> memory;
 
   /* Collected trace state variables.  */
-  VEC(int) *tvars;
+  std::vector<int> tvars;
 };
 
+typedef std::unique_ptr<traceframe_info> traceframe_info_up;
+
 /* A trace state variable is a value managed by a target being
    traced.  A trace state variable (or tsv for short) can be accessed
    and assigned to by tracepoint actions and conditionals, but is not
@@ -268,7 +269,7 @@ public:
 
   void finish ();
 
-  char **stringify ();
+  std::vector<std::string> stringify ();
 
   const std::vector<std::string> &wholly_collected ()
   { return m_wholly_collected; }
@@ -295,7 +296,7 @@ private:
 };
 
 extern void parse_static_tracepoint_marker_definition
-  (char *line, char **pp,
+  (const char *line, const char **pp,
    struct static_tracepoint_marker *marker);
 extern void release_static_tracepoint_marker (struct static_tracepoint_marker *);
 extern void free_current_marker (void *arg);
@@ -327,7 +328,8 @@ extern void encode_actions (struct bp_lo
 			    struct collection_list *stepping_list);
 
 extern void encode_actions_rsp (struct bp_location *tloc,
-				char ***tdp_actions, char ***stepping_actions);
+				std::vector<std::string> *tdp_actions,
+				std::vector<std::string> *stepping_actions);
 
 extern void validate_actionline (const char *, struct breakpoint *);
 extern void validate_trace_state_variable_name (const char *name);
@@ -342,14 +344,14 @@ extern int encode_source_string (int num
 				 const char *srctype, const char *src,
 				 char *buf, int buf_size);
 
-extern void parse_trace_status (char *line, struct trace_status *ts);
+extern void parse_trace_status (const char *line, struct trace_status *ts);
 
-extern void parse_tracepoint_status (char *p, struct breakpoint *tp,
+extern void parse_tracepoint_status (const char *p, struct breakpoint *tp,
 				     struct uploaded_tp *utp);
 
-extern void parse_tracepoint_definition (char *line,
+extern void parse_tracepoint_definition (const char *line,
 					 struct uploaded_tp **utpp);
-extern void parse_tsv_definition (char *line, struct uploaded_tsv **utsvp);
+extern void parse_tsv_definition (const char *line, struct uploaded_tsv **utsvp);
 
 extern struct uploaded_tp *get_uploaded_tp (int num, ULONGEST addr,
 					    struct uploaded_tp **utpp);
@@ -368,14 +370,26 @@ extern void trace_reset_local_state (voi
 
 extern void check_trace_running (struct trace_status *);
 
-extern void start_tracing (char *notes);
-extern void stop_tracing (char *notes);
+extern void start_tracing (const char *notes);
+extern void stop_tracing (const char *notes);
 
 extern void trace_status_mi (int on_stop);
 
 extern void tvariables_info_1 (void);
 extern void save_trace_state_variables (struct ui_file *fp);
 
+/* Enumeration of the kinds of traceframe searches that a target may
+   be able to perform.  */
+
+enum trace_find_type
+{
+  tfind_number,
+  tfind_pc,
+  tfind_tp,
+  tfind_range,
+  tfind_outside,
+};
+
 extern void tfind_1 (enum trace_find_type type, int num,
 		     CORE_ADDR addr1, CORE_ADDR addr2,
 		     int from_tty);
@@ -385,9 +399,9 @@ extern void trace_save_tfile (const char
 extern void trace_save_ctf (const char *dirname,
 			    int target_does_save);
 
-extern struct traceframe_info *parse_traceframe_info (const char *tframe_info);
+extern traceframe_info_up parse_traceframe_info (const char *tframe_info);
 
-extern int traceframe_available_memory (VEC(mem_range_s) **result,
+extern int traceframe_available_memory (std::vector<mem_range> *result,
 					CORE_ADDR memaddr, ULONGEST len);
 
 extern struct traceframe_info *get_traceframe_info (void);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/trad-frame.c ./gdb/trad-frame.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/trad-frame.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/trad-frame.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Traditional frame unwind support, for GDB the GNU Debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/trad-frame.h ./gdb/trad-frame.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/trad-frame.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/trad-frame.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Traditional frame unwind support, for GDB the GNU Debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tramp-frame.c ./gdb/tramp-frame.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tramp-frame.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tramp-frame.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Signal trampoline unwinder, for GDB the GNU Debugger.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tramp-frame.h ./gdb/tramp-frame.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tramp-frame.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tramp-frame.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Signal trampoline unwinder.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/transform.m4 ./gdb/transform.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/transform.m4	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/transform.m4	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2017 Free Software Foundation, Inc.
+# Copyright (C) 2015-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui.c ./gdb/tui/tui.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* General functions for the WDB TUI.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
@@ -75,8 +75,10 @@ static const struct tui_char_command tui
   { 'd', "down" },
   { 'f', "finish" },
   { 'n', "next" },
+  { 'o', "nexti" },
   { 'r', "run" },
   { 's', "step" },
+  { 'i', "stepi" },
   { 'u', "up" },
   { 'v', "info locals" },
   { 'w', "where" },
@@ -543,7 +545,7 @@ tui_disable (void)
 /* Command wrapper for enabling tui mode.  */
 
 static void
-tui_enable_command (char *args, int from_tty)
+tui_enable_command (const char *args, int from_tty)
 {
   tui_enable ();
 }
@@ -551,7 +553,7 @@ tui_enable_command (char *args, int from
 /* Command wrapper for leaving tui mode.  */
 
 static void
-tui_disable_command (char *args, int from_tty)
+tui_disable_command (const char *args, int from_tty)
 {
   tui_disable ();
 }
@@ -669,9 +671,6 @@ tui_get_command_dimension (unsigned int 
   return 1;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_tui;
-
 void
 _initialize_tui (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-command.c ./gdb/tui/tui-command.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-command.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-command.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Specific command window processing.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-command.h ./gdb/tui/tui-command.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-command.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-command.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Specific command window processing.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-data.c ./gdb/tui/tui-data.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-data.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-data.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI data manipulation routines.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
@@ -29,7 +29,7 @@
 /****************************
 ** GLOBAL DECLARATIONS
 ****************************/
-struct tui_win_info *(tui_win_list[MAX_MAJOR_WINDOWS]);
+struct tui_win_info *tui_win_list[MAX_MAJOR_WINDOWS];
 
 /***************************
 ** Private data
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-data.h ./gdb/tui/tui-data.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-data.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-data.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI data manipulation routines.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
@@ -293,7 +293,7 @@ extern void tui_set_win_highlight (struc
 
 
 /* Global Data.  */
-extern struct tui_win_info *(tui_win_list[MAX_MAJOR_WINDOWS]);
+extern struct tui_win_info *tui_win_list[MAX_MAJOR_WINDOWS];
 
 #define TUI_SRC_WIN     tui_win_list[SRC_WIN]
 #define TUI_DISASM_WIN	tui_win_list[DISASSEM_WIN]
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-disasm.c ./gdb/tui/tui-disasm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-disasm.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-disasm.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Disassembly display.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
@@ -305,7 +305,7 @@ tui_show_disassem_and_update_source (str
       tui_update_source_window (TUI_SRC_WIN, gdbarch, sal.symtab, val, TRUE);
       if (sal.symtab)
 	{
-	  set_current_source_symtab_and_line (&sal);
+	  set_current_source_symtab_and_line (sal);
 	  tui_update_locator_fullname (symtab_to_fullname (sal.symtab));
 	}
       else
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-disasm.h ./gdb/tui/tui-disasm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-disasm.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-disasm.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Disassembly display.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
    
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-file.c ./gdb/tui/tui-file.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-file.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-file.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* UI_FILE - a generic STDIO like output stream.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-file.h ./gdb/tui/tui-file.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-file.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-file.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* TUI_FILE - a STDIO-like output stream for the TUI.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui.h ./gdb/tui/tui.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* External/Public TUI Header File.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-hooks.c ./gdb/tui/tui-hooks.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-hooks.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-hooks.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* GDB hooks for TUI.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -118,14 +118,13 @@ tui_refresh_frame_and_register_informati
 {
   struct frame_info *fi;
   CORE_ADDR pc;
-  struct cleanup *old_chain;
   int frame_info_changed_p;
 
   if (!has_stack_frames ())
     return;
 
-  old_chain = make_cleanup_restore_target_terminal ();
-  target_terminal_ours_for_output ();
+  target_terminal::scoped_restore_terminal_state term_state;
+  target_terminal::ours_for_output ();
 
   fi = get_selected_frame (NULL);
   /* Ensure that symbols for this frame are read in.  Also, determine
@@ -156,8 +155,6 @@ tui_refresh_frame_and_register_informati
       tui_check_data_values (fi);
       tui_refreshing_registers = 0;
     }
-
-  do_cleanups (old_chain);
 }
 
 /* Dummy callback for deprecated_print_frame_info_listing_hook which is called
@@ -266,8 +263,6 @@ tui_remove_hooks (void)
   tui_register_changed_observer = NULL;
 }
 
-void _initialize_tui_hooks (void);
-
 void
 _initialize_tui_hooks (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-hooks.h ./gdb/tui/tui-hooks.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-hooks.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-hooks.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* External/Public TUI hools header file, for GDB the GNU debugger.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-interp.c ./gdb/tui/tui-interp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-interp.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-interp.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI Interpreter definitions for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -311,9 +311,6 @@ tui_interp_factory (const char *name)
   return new tui_interp (name);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_tui_interp;
-
 void
 _initialize_tui_interp (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-io.c ./gdb/tui/tui-io.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-io.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-io.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI support I/O functions.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-io.h ./gdb/tui/tui-io.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-io.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-io.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI support I/O functions.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-layout.c ./gdb/tui/tui-layout.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-layout.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-layout.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI layout window management.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
@@ -62,7 +62,7 @@ static void show_source_disasm_command (
 static void show_data (enum tui_layout_type);
 static enum tui_layout_type next_layout (void);
 static enum tui_layout_type prev_layout (void);
-static void tui_layout_command (char *, int);
+static void tui_layout_command (const char *, int);
 static void extract_display_start_addr (struct gdbarch **, CORE_ADDR *);
 
 
@@ -353,22 +353,20 @@ tui_default_win_viewport_height (enum tu
 /* Complete possible layout names.  TEXT is the complete text entered so
    far, WORD is the word currently being completed.  */
 
-static VEC (char_ptr) *
+static void
 layout_completer (struct cmd_list_element *ignore,
+		  completion_tracker &tracker,
 		  const char *text, const char *word)
 {
   static const char *layout_names [] =
     { "src", "asm", "split", "regs", "next", "prev", NULL };
 
-  return complete_on_enum (layout_names, text, word);
+  complete_on_enum (tracker, layout_names, text, word);
 }
 
 /* Function to initialize gdb commands, for tui window layout
    manipulation.  */
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_tui_layout;
-
 void
 _initialize_tui_layout (void)
 {
@@ -406,15 +404,13 @@ tui_set_layout_by_name (const char *layo
   if (layout_name != (char *) NULL)
     {
       int i;
-      char *buf_ptr;
       enum tui_layout_type new_layout = UNDEFINED_LAYOUT;
       enum tui_layout_type cur_layout = tui_current_layout ();
-      struct cleanup *old_chain;
 
-      buf_ptr = (char *) xstrdup (layout_name);
-      for (i = 0; (i < strlen (layout_name)); i++)
-	buf_ptr[i] = toupper (buf_ptr[i]);
-      old_chain = make_cleanup (xfree, buf_ptr);
+      std::string copy = layout_name;
+      for (i = 0; i < copy.size (); i++)
+	copy[i] = toupper (copy[i]);
+      const char *buf_ptr = copy.c_str ();
 
       /* First check for ambiguous input.  */
       if (strlen (buf_ptr) <= 1 && *buf_ptr == 'S')
@@ -452,7 +448,6 @@ tui_set_layout_by_name (const char *layo
 	      tui_set_layout (new_layout);
 	    }
 	}
-      do_cleanups (old_chain);
     }
   else
     status = TUI_FAILURE;
@@ -497,12 +492,11 @@ extract_display_start_addr (struct gdbar
 
 
 static void
-tui_layout_command (char *arg, int from_tty)
+tui_layout_command (const char *arg, int from_tty)
 {
   /* Switch to the selected layout.  */
   if (tui_set_layout_by_name (arg) != TUI_SUCCESS)
     warning (_("Invalid layout specified.\n%s"), LAYOUT_USAGE);
-
 }
 
 /* Answer the previous layout to cycle to.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-layout.h ./gdb/tui/tui-layout.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-layout.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-layout.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI layout window management.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-out.c ./gdb/tui/tui-out.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-out.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-out.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Output generating routines for GDB CLI.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions.
    Written by Fernando Nasser for Cygnus.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-out.h ./gdb/tui/tui-out.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-out.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-out.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-regs.c ./gdb/tui/tui-regs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-regs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-regs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI display registers in window.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
@@ -600,7 +600,7 @@ tui_reg_prev (struct gdbarch *gdbarch)
    not already on display.  */
 
 static void
-tui_reg_command (char *args, int from_tty)
+tui_reg_command (const char *args, int from_tty)
 {
   struct gdbarch *gdbarch = get_current_arch ();
 
@@ -668,29 +668,25 @@ tui_reg_command (char *args, int from_tt
 /* Complete names of register groups, and add the special "prev" and "next"
    names.  */
 
-static VEC (char_ptr) *
+static void
 tui_reggroup_completer (struct cmd_list_element *ignore,
+			completion_tracker &tracker,
 			const char *text, const char *word)
 {
-  VEC (char_ptr) *result = NULL;
   static const char *extra[] = { "next", "prev", NULL };
   size_t len = strlen (word);
   const char **tmp;
 
-  result = reggroup_completer (ignore, text, word);
+  reggroup_completer (ignore, tracker, text, word);
 
+  /* XXXX use complete_on_enum instead?  */
   for (tmp = extra; *tmp != NULL; ++tmp)
     {
       if (strncmp (word, *tmp, len) == 0)
-	VEC_safe_push (char_ptr, result, xstrdup (*tmp));
+	tracker.add_completion (gdb::unique_xmalloc_ptr<char> (xstrdup (*tmp)));
     }
-
-  return result;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_tui_regs;
-
 void
 _initialize_tui_regs (void)
 {
@@ -708,13 +704,6 @@ TUI command to control the register wind
 ** STATIC LOCAL FUNCTIONS                 **
 ******************************************/
 
-static void
-tui_restore_gdbout (void *ui)
-{
-  gdb_stdout = (struct ui_file*) ui;
-  pagination_enabled = 1;
-}
-
 /* Get the register from the frame and return a printable
    representation of it.  */
 
@@ -722,17 +711,14 @@ static char *
 tui_register_format (struct frame_info *frame, int regnum)
 {
   struct gdbarch *gdbarch = get_frame_arch (frame);
-  struct ui_file *old_stdout;
-  struct cleanup *cleanups;
-  char *p, *s;
-  char *ret;
 
   string_file stream;
 
-  pagination_enabled = 0;
-  old_stdout = gdb_stdout;
-  gdb_stdout = &stream;
-  cleanups = make_cleanup (tui_restore_gdbout, (void*) old_stdout);
+  scoped_restore save_pagination
+    = make_scoped_restore (&pagination_enabled, 0);
+  scoped_restore save_stdout
+    = make_scoped_restore (&gdb_stdout, &stream);
+
   gdbarch_print_registers_info (gdbarch, &stream, frame, regnum, 1);
 
   /* Remove the possible \n.  */
@@ -741,11 +727,7 @@ tui_register_format (struct frame_info *
     str.resize (str.size () - 1);
 
   /* Expand tabs into spaces, since ncurses on MS-Windows doesn't.  */
-  ret = tui_expand_tabs (str.c_str (), 0);
-
-  do_cleanups (cleanups);
-
-  return ret;
+  return tui_expand_tabs (str.c_str (), 0);
 }
 
 /* Get the register value from the given frame and format it for the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-regs.h ./gdb/tui/tui-regs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-regs.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-regs.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI display registers in window.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-source.c ./gdb/tui/tui-source.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-source.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-source.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI display source window.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-source.h ./gdb/tui/tui-source.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-source.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-source.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI display source window.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-stack.c ./gdb/tui/tui-stack.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-stack.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-stack.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI display locator.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
@@ -53,7 +53,7 @@ static int tui_set_locator_info (struct 
 				 const char *procname,
                                  int lineno, CORE_ADDR addr);
 
-static void tui_update_command (char *, int);
+static void tui_update_command (const char *, int);
 
 
 /* Create the status line to display as much information as we can on
@@ -366,10 +366,9 @@ tui_show_frame_info (struct frame_info *
       CORE_ADDR low;
       struct tui_gen_win_info *locator = tui_locator_win_info_ptr ();
       int source_already_displayed;
-      struct symtab_and_line sal;
       CORE_ADDR pc;
 
-      find_frame_sal (fi, &sal);
+      symtab_and_line sal = find_frame_sal (fi);
 
       source_already_displayed = sal.symtab != 0
         && tui_source_is_displayed (symtab_to_fullname (sal.symtab));
@@ -488,9 +487,6 @@ tui_show_frame_info (struct frame_info *
 /* Function to initialize gdb commands, for tui window stack
    manipulation.  */
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_tui_stack;
-
 void
 _initialize_tui_stack (void)
 {
@@ -501,10 +497,7 @@ _initialize_tui_stack (void)
 
 /* Command to update the display with the current execution point.  */
 static void
-tui_update_command (char *arg, int from_tty)
+tui_update_command (const char *arg, int from_tty)
 {
-  char cmd[sizeof("frame 0")];
-
-  strcpy (cmd, "frame 0");
-  execute_command (cmd, from_tty);
+  execute_command ("frame 0", from_tty);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-stack.h ./gdb/tui/tui-stack.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-stack.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-stack.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI display locator.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-win.c ./gdb/tui/tui-win.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-win.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-win.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI window generic functions.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
@@ -61,16 +61,16 @@ static void make_invisible_and_set_new_h
 static enum tui_status tui_adjust_win_heights (struct tui_win_info *, 
 					       int);
 static int new_height_ok (struct tui_win_info *, int);
-static void tui_set_tab_width_command (char *, int);
-static void tui_refresh_all_command (char *, int);
-static void tui_set_win_height_command (char *, int);
-static void tui_all_windows_info (char *, int);
-static void tui_set_focus_command (char *, int);
-static void tui_scroll_forward_command (char *, int);
-static void tui_scroll_backward_command (char *, int);
-static void tui_scroll_left_command (char *, int);
-static void tui_scroll_right_command (char *, int);
-static void parse_scrolling_args (char *, 
+static void tui_set_tab_width_command (const char *, int);
+static void tui_refresh_all_command (const char *, int);
+static void tui_set_win_height_command (const char *, int);
+static void tui_all_windows_info (const char *, int);
+static void tui_set_focus_command (const char *, int);
+static void tui_scroll_forward_command (const char *, int);
+static void tui_scroll_backward_command (const char *, int);
+static void tui_scroll_left_command (const char *, int);
+static void tui_scroll_right_command (const char *, int);
+static void parse_scrolling_args (const char *, 
 				  struct tui_win_info **, 
 				  int *);
 
@@ -316,19 +316,19 @@ tui_update_variables (void)
 }
 
 static void
-set_tui_cmd (char *args, int from_tty)
+set_tui_cmd (const char *args, int from_tty)
 {
 }
 
 static void
-show_tui_cmd (char *args, int from_tty)
+show_tui_cmd (const char *args, int from_tty)
 {
 }
 
 static struct cmd_list_element *tuilist;
 
 static void
-tui_command (char *args, int from_tty)
+tui_command (const char *args, int from_tty)
 {
   printf_unfiltered (_("\"tui\" must be followed by the name of a "
                      "tui command.\n"));
@@ -348,7 +348,8 @@ tui_get_cmd_list (void)
 /* 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)
+tui_set_var_cmd (const char *null_args,
+		 int from_tty, struct cmd_list_element *c)
 {
   if (tui_update_variables () && tui_active)
     tui_rehighlight_all ();
@@ -359,12 +360,12 @@ tui_set_var_cmd (char *null_args, int fr
    window names 'next' and 'prev' will also be considered as possible
    completions of the window name.  */
 
-static VEC (char_ptr) *
-window_name_completer (int include_next_prev_p,
+static void
+window_name_completer (completion_tracker &tracker,
+		       int include_next_prev_p,
 		       const char *text, const char *word)
 {
-  VEC (const_char_ptr) *completion_name_vec = NULL;
-  VEC (char_ptr) *matches_vec;
+  std::vector<const char *> completion_name_vec;
   int win_type;
 
   for (win_type = SRC_WIN; win_type < MAX_MAJOR_WINDOWS; win_type++)
@@ -378,67 +379,61 @@ window_name_completer (int include_next_
 
       completion_name = tui_win_name (&tui_win_list [win_type]->generic);
       gdb_assert (completion_name != NULL);
-      VEC_safe_push (const_char_ptr, completion_name_vec, completion_name);
+      completion_name_vec.push_back (completion_name);
     }
 
   /* If no windows are considered visible then the TUI has not yet been
      initialized.  But still "focus src" and "focus cmd" will work because
      invoking the focus command will entail initializing the TUI which sets the
      default layout to SRC_COMMAND.  */
-  if (VEC_length (const_char_ptr, completion_name_vec) == 0)
+  if (completion_name_vec.empty ())
     {
-      VEC_safe_push (const_char_ptr, completion_name_vec, SRC_NAME);
-      VEC_safe_push (const_char_ptr, completion_name_vec, CMD_NAME);
+      completion_name_vec.push_back (SRC_NAME);
+      completion_name_vec.push_back (CMD_NAME);
     }
 
   if (include_next_prev_p)
     {
-      VEC_safe_push (const_char_ptr, completion_name_vec, "next");
-      VEC_safe_push (const_char_ptr, completion_name_vec, "prev");
+      completion_name_vec.push_back ("next");
+      completion_name_vec.push_back ("prev");
     }
 
-  VEC_safe_push (const_char_ptr, completion_name_vec, NULL);
-  matches_vec
-    = complete_on_enum (VEC_address (const_char_ptr, completion_name_vec),
-			text, word);
-
-  VEC_free (const_char_ptr, completion_name_vec);
 
-  return matches_vec;
+  completion_name_vec.push_back (NULL);
+  complete_on_enum (tracker, completion_name_vec.data (), text, word);
 }
 
 /* Complete possible window names to focus on.  TEXT is the complete text
    entered so far, WORD is the word currently being completed.  */
 
-static VEC (char_ptr) *
+static void
 focus_completer (struct cmd_list_element *ignore,
-		  const char *text, const char *word)
+		 completion_tracker &tracker,
+		 const char *text, const char *word)
 {
-  return window_name_completer (1, text, word);
+  window_name_completer (tracker, 1, text, word);
 }
 
 /* Complete possible window names for winheight command.  TEXT is the
    complete text entered so far, WORD is the word currently being
    completed.  */
 
-static VEC (char_ptr) *
+static void
 winheight_completer (struct cmd_list_element *ignore,
+		     completion_tracker &tracker,
 		     const char *text, const char *word)
 {
   /* The first word is the window name.  That we can complete.  Subsequent
      words can't be completed.  */
   if (word != text)
-    return NULL;
+    return;
 
-  return window_name_completer (0, text, word);
+  window_name_completer (tracker, 0, text, word);
 }
 
 /* Function to initialize gdb commands, for tui window
    manipulation.  */
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_tui_win;
-
 void
 _initialize_tui_win (void)
 {
@@ -983,7 +978,7 @@ tui_initialize_win (void)
 
 
 static void
-tui_scroll_forward_command (char *arg, int from_tty)
+tui_scroll_forward_command (const char *arg, int from_tty)
 {
   int num_to_scroll = 1;
   struct tui_win_info *win_to_scroll;
@@ -999,7 +994,7 @@ tui_scroll_forward_command (char *arg, i
 
 
 static void
-tui_scroll_backward_command (char *arg, int from_tty)
+tui_scroll_backward_command (const char *arg, int from_tty)
 {
   int num_to_scroll = 1;
   struct tui_win_info *win_to_scroll;
@@ -1015,7 +1010,7 @@ tui_scroll_backward_command (char *arg, 
 
 
 static void
-tui_scroll_left_command (char *arg, int from_tty)
+tui_scroll_left_command (const char *arg, int from_tty)
 {
   int num_to_scroll;
   struct tui_win_info *win_to_scroll;
@@ -1028,7 +1023,7 @@ tui_scroll_left_command (char *arg, int 
 
 
 static void
-tui_scroll_right_command (char *arg, int from_tty)
+tui_scroll_right_command (const char *arg, int from_tty)
 {
   int num_to_scroll;
   struct tui_win_info *win_to_scroll;
@@ -1042,7 +1037,7 @@ tui_scroll_right_command (char *arg, int
 
 /* Set focus to the window named by 'arg'.  */
 static void
-tui_set_focus (char *arg, int from_tty)
+tui_set_focus (const char *arg, int from_tty)
 {
   if (arg != (char *) NULL)
     {
@@ -1081,7 +1076,7 @@ The window name specified must be valid 
 }
 
 static void
-tui_set_focus_command (char *arg, int from_tty)
+tui_set_focus_command (const char *arg, int from_tty)
 {
   /* Make sure the curses mode is enabled.  */
   tui_enable ();
@@ -1090,7 +1085,7 @@ tui_set_focus_command (char *arg, int fr
 
 
 static void
-tui_all_windows_info (char *arg, int from_tty)
+tui_all_windows_info (const char *arg, int from_tty)
 {
   int type;
   struct tui_win_info *win_with_focus = tui_win_with_focus ();
@@ -1112,7 +1107,7 @@ tui_all_windows_info (char *arg, int fro
 
 
 static void
-tui_refresh_all_command (char *arg, int from_tty)
+tui_refresh_all_command (const char *arg, int from_tty)
 {
   /* Make sure the curses mode is enabled.  */
   tui_enable ();
@@ -1123,7 +1118,7 @@ tui_refresh_all_command (char *arg, int 
 
 /* Set the tab width of the specified window.  */
 static void
-tui_set_tab_width_command (char *arg, int from_tty)
+tui_set_tab_width_command (const char *arg, int from_tty)
 {
   /* Make sure the curses mode is enabled.  */
   tui_enable ();
@@ -1162,20 +1157,19 @@ tui_set_tab_width_command (char *arg, in
 
 /* Set the height of the specified window.  */
 static void
-tui_set_win_height (char *arg, int from_tty)
+tui_set_win_height (const char *arg, int from_tty)
 {
   /* Make sure the curses mode is enabled.  */
   tui_enable ();
   if (arg != (char *) NULL)
     {
-      char *buf = xstrdup (arg);
+      std::string copy = arg;
+      char *buf = &copy[0];
       char *buf_ptr = buf;
       char *wname = NULL;
       int new_height, i;
       struct tui_win_info *win_info;
-      struct cleanup *old_chain;
 
-      old_chain = make_cleanup (xfree, buf);
       wname = buf_ptr;
       buf_ptr = strchr (buf_ptr, ' ');
       if (buf_ptr != (char *) NULL)
@@ -1237,8 +1231,6 @@ The window name specified must be valid 
 	}
       else
 	printf_filtered (WIN_HEIGHT_USAGE);
-
-      do_cleanups (old_chain);
     }
   else
     printf_filtered (WIN_HEIGHT_USAGE);
@@ -1246,7 +1238,7 @@ The window name specified must be valid 
 
 /* Set the height of the specified window, with va_list.  */
 static void
-tui_set_win_height_command (char *arg, int from_tty)
+tui_set_win_height_command (const char *arg, int from_tty)
 {
   /* Make sure the curses mode is enabled.  */
   tui_enable ();
@@ -1652,7 +1644,7 @@ new_height_ok (struct tui_win_info *prim
 
 
 static void
-parse_scrolling_args (char *arg, 
+parse_scrolling_args (const char *arg, 
 		      struct tui_win_info **win_to_scroll,
 		      int *num_to_scroll)
 {
@@ -1664,12 +1656,11 @@ parse_scrolling_args (char *arg, 
      window name arg.  */
   if (arg != (char *) NULL)
     {
-      char *buf, *buf_ptr;
-      struct cleanup *old_chain;
+      char *buf_ptr;
 
       /* Process the number of lines to scroll.  */
-      buf = buf_ptr = xstrdup (arg);
-      old_chain = make_cleanup (xfree, buf);
+      std::string copy = arg;
+      buf_ptr = &copy[0];
       if (isdigit (*buf_ptr))
 	{
 	  char *num_str;
@@ -1716,6 +1707,5 @@ The window name specified must be valid 
 	  else if (*win_to_scroll == TUI_CMD_WIN)
 	    *win_to_scroll = (tui_source_windows ())->list[0];
 	}
-      do_cleanups (old_chain);
     }
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-windata.c ./gdb/tui/tui-windata.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-windata.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-windata.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Data/register window display.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-windata.h ./gdb/tui/tui-windata.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-windata.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-windata.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Data/register window display.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-wingeneral.c ./gdb/tui/tui-wingeneral.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-wingeneral.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-wingeneral.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* General window behavior.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-wingeneral.h ./gdb/tui/tui-wingeneral.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-wingeneral.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-wingeneral.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* General window behavior.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-win.h ./gdb/tui/tui-win.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-win.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-win.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI window generic functions.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-winsource.c ./gdb/tui/tui-winsource.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-winsource.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-winsource.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI display source/assembly window.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
@@ -109,14 +109,13 @@ tui_update_source_window_as_is (struct t
       tui_update_exec_info (win_info);
       if (win_info->generic.type == SRC_WIN)
 	{
-	  struct symtab_and_line sal;
-	  
-	  init_sal (&sal);
+	  symtab_and_line sal;
+
 	  sal.line = line_or_addr.u.line_no +
 	    (win_info->generic.content_size - 2);
 	  sal.symtab = s;
 	  sal.pspace = SYMTAB_PSPACE (s);
-	  set_current_source_symtab_and_line (&sal);
+	  set_current_source_symtab_and_line (sal);
 	  /* If the focus was in the asm win, put it in the src win if
 	     we don't have a split layout.  */
 	  if (tui_win_with_focus () == TUI_DISASM_WIN
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-winsource.h ./gdb/tui/tui-winsource.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/tui/tui-winsource.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/tui/tui-winsource.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* TUI display source/assembly window.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/typeprint.c ./gdb/typeprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/typeprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/typeprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Language independent support for printing types for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -37,19 +37,13 @@
 #include "extension.h"
 #include "completer.h"
 
-extern void _initialize_typeprint (void);
-
-static void ptype_command (char *, int);
-
-static void whatis_command (char *, int);
-
-static void whatis_exp (char *, int);
-
 const struct type_print_options type_print_raw_options =
 {
   1,				/* raw */
   1,				/* print_methods */
   1,				/* print_typedefs */
+  0,				/* print_offsets */
+  0,				/* print_nested_type_limit  */
   NULL,				/* local_typedefs */
   NULL,				/* global_table */
   NULL				/* global_printers */
@@ -62,6 +56,8 @@ static struct type_print_options default
   0,				/* raw */
   1,				/* print_methods */
   1,				/* print_typedefs */
+  0,				/* print_offsets */
+  0,				/* print_nested_type_limit  */
   NULL,				/* local_typedefs */
   NULL,				/* global_table */
   NULL				/* global_printers */
@@ -87,7 +83,7 @@ struct typedef_hash_table
 static hashval_t
 hash_typedef_field (const void *p)
 {
-  const struct typedef_field *tf = (const struct typedef_field *) p;
+  const struct decl_field *tf = (const struct decl_field *) p;
   struct type *t = check_typedef (tf->type);
 
   return htab_hash_string (TYPE_SAFE_NAME (t));
@@ -98,8 +94,8 @@ hash_typedef_field (const void *p)
 static int
 eq_typedef_field (const void *a, const void *b)
 {
-  const struct typedef_field *tfa = (const struct typedef_field *) a;
-  const struct typedef_field *tfb = (const struct typedef_field *) b;
+  const struct decl_field *tfa = (const struct decl_field *) a;
+  const struct decl_field *tfb = (const struct decl_field *) b;
 
   return types_equal (tfa->type, tfb->type);
 }
@@ -117,7 +113,7 @@ recursively_update_typedef_hash (struct 
 
   for (i = 0; i < TYPE_TYPEDEF_FIELD_COUNT (t); ++i)
     {
-      struct typedef_field *tdef = &TYPE_TYPEDEF_FIELD (t, i);
+      struct decl_field *tdef = &TYPE_TYPEDEF_FIELD (t, i);
       void **slot;
 
       slot = htab_find_slot (table->table, tdef, INSERT);
@@ -145,14 +141,14 @@ add_template_parameters (struct typedef_
 
   for (i = 0; i < TYPE_N_TEMPLATE_ARGUMENTS (t); ++i)
     {
-      struct typedef_field *tf;
+      struct decl_field *tf;
       void **slot;
 
       /* We only want type-valued template parameters in the hash.  */
       if (SYMBOL_CLASS (TYPE_TEMPLATE_ARGUMENT (t, i)) != LOC_TYPEDEF)
 	continue;
 
-      tf = XOBNEW (&table->storage, struct typedef_field);
+      tf = XOBNEW (&table->storage, struct decl_field);
       tf->name = SYMBOL_LINKAGE_NAME (TYPE_TEMPLATE_ARGUMENT (t, i));
       tf->type = SYMBOL_TYPE (TYPE_TEMPLATE_ARGUMENT (t, i));
 
@@ -270,7 +266,7 @@ find_global_typedef (const struct type_p
 {
   char *applied;
   void **slot;
-  struct typedef_field tf, *new_tf;
+  struct decl_field tf, *new_tf;
 
   if (flags->global_typedefs == NULL)
     return NULL;
@@ -281,13 +277,13 @@ find_global_typedef (const struct type_p
   slot = htab_find_slot (flags->global_typedefs->table, &tf, INSERT);
   if (*slot != NULL)
     {
-      new_tf = (struct typedef_field *) *slot;
+      new_tf = (struct decl_field *) *slot;
       return new_tf->name;
     }
 
   /* Put an entry into the hash table now, in case
      apply_ext_lang_type_printers recurses.  */
-  new_tf = XOBNEW (&flags->global_typedefs->storage, struct typedef_field);
+  new_tf = XOBNEW (&flags->global_typedefs->storage, struct decl_field);
   new_tf->name = NULL;
   new_tf->type = t;
 
@@ -316,12 +312,12 @@ find_typedef_in_hash (const struct type_
 {
   if (flags->local_typedefs != NULL)
     {
-      struct typedef_field tf, *found;
+      struct decl_field tf, *found;
 
       tf.name = NULL;
       tf.type = t;
-      found = (struct typedef_field *) htab_find (flags->local_typedefs->table,
-						  &tf);
+      found = (struct decl_field *) htab_find (flags->local_typedefs->table,
+					       &tf);
 
       if (found != NULL)
 	return found->name;
@@ -386,11 +382,28 @@ type_to_string (struct type *type)
   return {};
 }
 
+/* See typeprint.h.  */
+
+void
+type_print_unknown_return_type (struct ui_file *stream)
+{
+  fprintf_filtered (stream, _("<unknown return type>"));
+}
+
+/* See typeprint.h.  */
+
+void
+error_unknown_type (const char *sym_print_name)
+{
+  error (_("'%s' has unknown type; cast it to its declared type"),
+	 sym_print_name);
+}
+
 /* Print type of EXP, or last thing in value history if EXP == NULL.
    show is passed to type_print.  */
 
 static void
-whatis_exp (char *exp, int show)
+whatis_exp (const char *exp, int show)
 {
   struct value *val;
   struct cleanup *old_chain;
@@ -429,6 +442,20 @@ whatis_exp (char *exp, int show)
 		case 'T':
 		  flags.print_typedefs = 1;
 		  break;
+		case 'o':
+		  {
+		    /* Filter out languages which don't implement the
+		       feature.  */
+		    if (show > 0
+			&& (current_language->la_language == language_c
+			    || current_language->la_language == language_cplus))
+		      {
+			flags.print_offsets = 1;
+			flags.print_typedefs = 0;
+			flags.print_methods = 0;
+		      }
+		    break;
+		  }
 		default:
 		  error (_("unrecognized flag '%c'"), *exp);
 		}
@@ -443,12 +470,40 @@ whatis_exp (char *exp, int show)
 	}
 
       expression_up expr = parse_expression (exp);
-      val = evaluate_type (expr.get ());
+
+      /* The behavior of "whatis" depends on whether the user
+	 expression names a type directly, or a language expression
+	 (including variable names).  If the former, then "whatis"
+	 strips one level of typedefs, only.  If an expression,
+	 "whatis" prints the type of the expression without stripping
+	 any typedef level.  "ptype" always strips all levels of
+	 typedefs.  */
+      if (show == -1 && expr->elts[0].opcode == OP_TYPE)
+	{
+	  /* The user expression names a type directly.  */
+	  type = expr->elts[1].type;
+
+	  /* If this is a typedef, then find its immediate target.
+	     Use check_typedef to resolve stubs, but ignore its result
+	     because we do not want to dig past all typedefs.  */
+	  check_typedef (type);
+	  if (TYPE_CODE (type) == TYPE_CODE_TYPEDEF)
+	    type = TYPE_TARGET_TYPE (type);
+	}
+      else
+	{
+	  /* The user expression names a type indirectly by naming an
+	     object or expression of that type.  Find that
+	     indirectly-named type.  */
+	  val = evaluate_type (expr.get ());
+	  type = value_type (val);
+	}
     }
   else
-    val = access_value_history (0);
-
-  type = value_type (val);
+    {
+      val = access_value_history (0);
+      type = value_type (val);
+    }
 
   get_user_print_options (&opts);
   if (opts.objectprint)
@@ -460,6 +515,11 @@ whatis_exp (char *exp, int show)
 	real_type = value_rtti_type (val, &full, &top, &using_enc);
     }
 
+  if (flags.print_offsets
+      && (TYPE_CODE (type) == TYPE_CODE_STRUCT
+	  || TYPE_CODE (type) == TYPE_CODE_UNION))
+    fprintf_filtered (gdb_stdout, "/* offset    |  size */  ");
+
   printf_filtered ("type = ");
 
   if (!flags.raw)
@@ -481,7 +541,7 @@ whatis_exp (char *exp, int show)
 }
 
 static void
-whatis_command (char *exp, int from_tty)
+whatis_command (const char *exp, int from_tty)
 {
   /* Most of the time users do not want to see all the fields
      in a structure.  If they do they can use the "ptype" command.
@@ -492,7 +552,7 @@ whatis_command (char *exp, int from_tty)
 /* TYPENAME is either the name of a type, or an expression.  */
 
 static void
-ptype_command (char *type_name, int from_tty)
+ptype_command (const char *type_name, int from_tty)
 {
   whatis_exp (type_name, 1);
 }
@@ -586,7 +646,7 @@ print_type_scalar (struct type *type, LO
    and whatis_command().  */
 
 void
-maintenance_print_type (char *type_name, int from_tty)
+maintenance_print_type (const char *type_name, int from_tty)
 {
   struct value *val;
   struct type *type;
@@ -619,7 +679,7 @@ struct cmd_list_element *setprinttypelis
 struct cmd_list_element *showprinttypelist;
 
 static void
-set_print_type (char *arg, int from_tty)
+set_print_type (const char *arg, int from_tty)
 {
   printf_unfiltered (
      "\"set print type\" must be followed by the name of a subcommand.\n");
@@ -627,7 +687,7 @@ set_print_type (char *arg, int from_tty)
 }
 
 static void
-show_print_type (char *args, int from_tty)
+show_print_type (const char *args, int from_tty)
 {
   cmd_show_list (showprinttypelist, from_tty, "");
 }
@@ -635,7 +695,8 @@ show_print_type (char *args, int from_tt
 static int print_methods = 1;
 
 static void
-set_print_type_methods (char *args, int from_tty, struct cmd_list_element *c)
+set_print_type_methods (const char *args,
+			int from_tty, struct cmd_list_element *c)
 {
   default_ptype_flags.print_methods = print_methods;
 }
@@ -651,7 +712,8 @@ show_print_type_methods (struct ui_file 
 static int print_typedefs = 1;
 
 static void
-set_print_type_typedefs (char *args, int from_tty, struct cmd_list_element *c)
+set_print_type_typedefs (const char *args,
+			 int from_tty, struct cmd_list_element *c)
 {
   default_ptype_flags.print_typedefs = print_typedefs;
 }
@@ -664,6 +726,41 @@ show_print_type_typedefs (struct ui_file
 		    value);
 }
 
+/* Limit on the number of nested type definitions to print or -1 to print
+   all nested type definitions in a class.  By default, we do not print
+   nested definitions.  */
+
+static int print_nested_type_limit = 0;
+
+/* Set how many nested type definitions should be printed by the type
+   printer.  */
+
+static void
+set_print_type_nested_types (const char *args, int from_tty,
+			     struct cmd_list_element *c)
+{
+  default_ptype_flags.print_nested_type_limit = print_nested_type_limit;
+}
+
+/* Show how many nested type definitions the type printer will print.  */
+
+static void
+show_print_type_nested_types  (struct ui_file *file, int from_tty,
+			       struct cmd_list_element *c, const char *value)
+{
+  if (*value == '0')
+    {
+      fprintf_filtered (file,
+			_("Will not print nested types defined in a class\n"));
+    }
+  else
+    {
+      fprintf_filtered (file,
+			_("Will print %s nested types defined in a class\n"),
+			value);
+    }
+}
+
 void
 _initialize_typeprint (void)
 {
@@ -683,7 +780,8 @@ Available FLAGS are:\n\
   /m    do not print methods defined in a class\n\
   /M    print methods defined in a class\n\
   /t    do not print typedefs defined in a class\n\
-  /T    print typedefs defined in a class"));
+  /T    print typedefs defined in a class\n\
+  /o    print offsets and sizes of fields in a struct (like pahole)\n"));
   set_cmd_completer (c, expression_completer);
 
   c = add_com ("whatis", class_vars, whatis_command,
@@ -712,6 +810,16 @@ Show printing of typedefs defined in cla
 			   set_print_type_typedefs,
 			   show_print_type_typedefs,
 			   &setprinttypelist, &showprinttypelist);
+
+  add_setshow_zuinteger_unlimited_cmd ("nested-type-limit", no_class,
+				       &print_nested_type_limit,
+				       _("\
+Set the number of recursive nested type definitions to print \
+(\"unlimited\" or -1 to show all)."), _("\
+Show the number of recursive nested type definitions to print."), NULL,
+				       set_print_type_nested_types,
+				       show_print_type_nested_types,
+				       &setprinttypelist, &showprinttypelist);
 }
 
 /* Print <not allocated> status to stream STREAM.  */
@@ -729,4 +837,3 @@ val_print_not_associated (struct ui_file
 {
   fprintf_filtered (stream, _("<not associated>"));
 }
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/typeprint.h ./gdb/typeprint.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/typeprint.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/typeprint.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Language independent support for printing types for GDB, the GNU debugger.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -24,6 +24,20 @@ struct ui_file;
 struct typedef_hash_table;
 struct ext_lang_type_printers;
 
+struct print_offset_data
+{
+  /* The offset to be applied to bitpos when PRINT_OFFSETS is true.
+     This is needed for when we are printing nested structs and want
+     to make sure that the printed offset for each field carries over
+     the offset of the outter struct.  */
+  unsigned int offset_bitpos = 0;
+
+  /* END_BITPOS is the one-past-the-end bit position of the previous
+     field (where we expect the current field to be if there is no
+     hole).  */
+  unsigned int end_bitpos = 0;
+};
+
 struct type_print_options
 {
   /* True means that no special printing flags should apply.  */
@@ -35,6 +49,12 @@ struct type_print_options
   /* True means print typedefs in a class.  */
   unsigned int print_typedefs : 1;
 
+  /* True means to print offsets, a la 'pahole'.  */
+  unsigned int print_offsets : 1;
+
+  /* The number of nested type definitions to print.  -1 == all.  */
+  int print_nested_type_limit;
+
   /* If not NULL, a local typedef hash table used when printing a
      type.  */
   struct typedef_hash_table *local_typedefs;
@@ -74,6 +94,15 @@ void c_type_print_varspec_suffix (struct
 void c_type_print_args (struct type *, struct ui_file *, int, enum language,
 			const struct type_print_options *);
 
+/* Print <unknown return type> to stream STREAM.  */
+
+void type_print_unknown_return_type (struct ui_file *stream);
+
+/* Throw an error indicating that the user tried to use a symbol that
+   has unknown type.  SYM_PRINT_NAME is the name of the symbol, to be
+   included in the error message.  */
+extern void error_unknown_type (const char *sym_print_name);
+
 extern void val_print_not_allocated (struct ui_file *stream);
 
 extern void val_print_not_associated (struct ui_file *stream);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ui-file.c ./gdb/ui-file.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ui-file.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ui-file.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* UI_FILE - a generic STDIO like output stream.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -177,12 +177,12 @@ stdio_file::open (const char *name, cons
       m_close_p = false;
     }
 
-  FILE *f = gdb_fopen_cloexec (name, mode);
+  gdb_file_up f = gdb_fopen_cloexec (name, mode);
 
   if (f == NULL)
     return false;
 
-  set_stream (f);
+  set_stream (f.release ());
   m_close_p = true;
 
   return true;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ui-file.h ./gdb/ui-file.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ui-file.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ui-file.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* UI_FILE - a generic STDIO like output stream.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ui-out.c ./gdb/ui-out.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ui-out.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ui-out.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Output generating routines for GDB.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions.
    Written by Fernando Nasser for Cygnus.
@@ -400,22 +400,6 @@ ui_out::table_end ()
   m_table_up = nullptr;
 }
 
-static void
-do_cleanup_table_end (void *data)
-{
-  ui_out *uiout = (ui_out *) data;
-
-  uiout->table_end ();
-}
-
-struct cleanup *
-make_cleanup_ui_out_table_begin_end (ui_out *uiout, int nr_cols, int nr_rows,
-				     const char *tblid)
-{
-  uiout->table_begin (nr_cols, nr_rows, tblid);
-  return make_cleanup (do_cleanup_table_end, uiout);
-}
-
 void
 ui_out::begin (ui_out_type type, const char *id)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ui-out.h ./gdb/ui-out.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/ui-out.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/ui-out.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Output generating routines for GDB.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions.
    Written by Fernando Nasser for Cygnus.
@@ -66,10 +66,6 @@ enum ui_out_type
     ui_out_type_list
   };
 
-extern struct cleanup *make_cleanup_ui_out_table_begin_end (struct ui_out *ui_out,
-                                                            int nr_cols,
-							    int nr_rows,
-							    const char *tblid);
 /* Compatibility wrappers.  */
 
 extern struct cleanup *make_cleanup_ui_out_list_begin_end (struct ui_out *uiout,
@@ -208,9 +204,7 @@ public:
     m_uiout->end (Type);
   }
 
-  ui_out_emit_type (const ui_out_emit_type<Type> &) = delete;
-  ui_out_emit_type<Type> &operator= (const ui_out_emit_type<Type> &)
-      = delete;
+  DISABLE_COPY_AND_ASSIGN (ui_out_emit_type<Type>);
 
 private:
 
@@ -220,4 +214,53 @@ private:
 typedef ui_out_emit_type<ui_out_type_tuple> ui_out_emit_tuple;
 typedef ui_out_emit_type<ui_out_type_list> ui_out_emit_list;
 
+/* Start a new table on construction, and end the table on
+   destruction.  */
+class ui_out_emit_table
+{
+public:
+
+  ui_out_emit_table (struct ui_out *uiout, int nr_cols, int nr_rows,
+		     const char *tblid)
+    : m_uiout (uiout)
+  {
+    m_uiout->table_begin (nr_cols, nr_rows, tblid);
+  }
+
+  ~ui_out_emit_table ()
+  {
+    m_uiout->table_end ();
+  }
+
+  ui_out_emit_table (const ui_out_emit_table &) = delete;
+  ui_out_emit_table &operator= (const ui_out_emit_table &) = delete;
+
+private:
+
+  struct ui_out *m_uiout;
+};
+
+/* On destruction, pop the last redirection by calling the uiout's
+   redirect method with a NULL parameter.  */
+class ui_out_redirect_pop
+{
+public:
+
+  ui_out_redirect_pop (ui_out *uiout)
+    : m_uiout (uiout)
+  {
+  }
+
+  ~ui_out_redirect_pop ()
+  {
+    m_uiout->redirect (NULL);
+  }
+
+  ui_out_redirect_pop (const ui_out_redirect_pop &) = delete;
+  ui_out_redirect_pop &operator= (const ui_out_redirect_pop &) = delete;
+
+private:
+  struct ui_out *m_uiout;
+};
+
 #endif /* UI_OUT_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/array-view-selftests.c ./gdb/unittests/array-view-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/array-view-selftests.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/array-view-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,496 @@
+/* Self tests for array_view for GDB, the GNU debugger.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+#include "selftest.h"
+#include "common/array-view.h"
+#include <array>
+
+namespace selftests {
+namespace array_view_tests {
+
+/* Triviality checks.  */
+#define CHECK_TRAIT(TRAIT)			\
+  static_assert (std::TRAIT<gdb::array_view<gdb_byte>>::value, "")
+
+#if HAVE_IS_TRIVIALLY_COPYABLE
+
+CHECK_TRAIT (is_trivially_copyable);
+CHECK_TRAIT (is_trivially_move_assignable);
+CHECK_TRAIT (is_trivially_move_constructible);
+CHECK_TRAIT (is_trivially_destructible);
+
+#endif
+
+#undef CHECK_TRAIT
+
+/* Wrapper around std::is_convertible to make the code using it a bit
+   shorter.  (With C++14 we'd use a variable template instead.)  */
+
+template<typename From, typename To>
+static constexpr bool
+is_convertible ()
+{
+  return std::is_convertible<From, To>::value;
+}
+
+/* Check for implicit conversion to immutable and mutable views.  */
+
+static constexpr bool
+check_convertible ()
+{
+  using T = gdb_byte;
+  using gdb::array_view;
+
+  return (true
+	  /* immutable array_view */
+	  &&  is_convertible<const T (&) [1],	array_view<const T>> ()
+	  &&  is_convertible<T (&) [1], 	array_view<const T>> ()
+	  &&  is_convertible<const T, 		array_view<const T>> ()
+	  &&  is_convertible<T, 		array_view<const T>> ()
+
+	  /* mutable array_view */
+	  &&  is_convertible<T (&) [1], 	array_view<T>> ()
+	  && !is_convertible<const T (&) [1],	array_view<T>> ()
+	  &&  is_convertible<T, 		array_view<T>> ()
+	  && !is_convertible<const T,		array_view<T>> ()
+
+	  /* While float is implicitly convertible to gdb_byte, we
+	     don't want implicit float->array_view<gdb_byte>
+	     conversion.  */
+	  && !is_convertible<float, 		array_view<const T>> ()
+	  && !is_convertible<float, 		array_view<T>> ());
+}
+
+static_assert (check_convertible (), "");
+
+namespace no_slicing
+{
+struct A { int i; };
+struct B : A { int j; };
+struct C : A { int l; };
+
+/* Check that there's no array->view conversion for arrays of derived
+   types or subclasses.  */
+static constexpr bool
+check ()
+{
+  using gdb::array_view;
+
+  return (true
+
+	  /* array->view  */
+
+	  &&  is_convertible <A (&)[1], array_view<A>> ()
+	  && !is_convertible <B (&)[1], array_view<A>> ()
+	  && !is_convertible <C (&)[1], array_view<A>> ()
+
+	  && !is_convertible <A (&)[1], array_view<B>> ()
+	  &&  is_convertible <B (&)[1], array_view<B>> ()
+	  && !is_convertible <C (&)[1], array_view<B>> ()
+
+	  /* elem->view  */
+
+	  &&  is_convertible <A, array_view<A>> ()
+	  && !is_convertible <B, array_view<A>> ()
+	  && !is_convertible <C, array_view<A>> ()
+
+	  && !is_convertible <A, array_view<B>> ()
+	  &&  is_convertible <B, array_view<B>> ()
+	  && !is_convertible <C, array_view<B>> ());
+}
+
+} /* namespace no_slicing */
+
+static_assert (no_slicing::check (), "");
+
+/* Check that array_view implicitly converts from std::vector.  */
+
+static constexpr bool
+check_convertible_from_std_vector ()
+{
+  using gdb::array_view;
+  using T = gdb_byte;
+
+  /* Note there's no such thing as std::vector<const T>.  */
+
+  return (true
+	  &&  is_convertible <std::vector<T>, array_view<T>> ()
+	  &&  is_convertible <std::vector<T>, array_view<const T>> ());
+}
+
+static_assert (check_convertible_from_std_vector (), "");
+
+/* Check that array_view implicitly converts from std::array.  */
+
+static constexpr bool
+check_convertible_from_std_array ()
+{
+  using gdb::array_view;
+  using T = gdb_byte;
+
+  /* Note: a non-const T view can't refer to a const T array.  */
+
+  return (true
+	  &&  is_convertible <std::array<T, 1>,		array_view<T>> ()
+	  &&  is_convertible <std::array<T, 1>,		array_view<const T>> ()
+	  && !is_convertible <std::array<const T, 1>,	array_view<T>> ()
+	  &&  is_convertible <std::array<const T, 1>,	array_view<const T>> ());
+}
+
+static_assert (check_convertible_from_std_array (), "");
+
+/* Check that VIEW views C (a container like std::vector/std::array)
+   correctly.  */
+
+template<typename View, typename Container>
+static bool
+check_container_view (const View &view, const Container &c)
+{
+  if (view.empty ())
+    return false;
+  if (view.size () != c.size ())
+    return false;
+  if (view.data () != c.data ())
+    return false;
+  for (size_t i = 0; i < c.size (); i++)
+    {
+      if (&view[i] != &c[i])
+	return false;
+      if (view[i] != c[i])
+	return false;
+    }
+  return true;
+}
+
+/* Check that VIEW views E (an object of the type of a view element)
+   correctly.  */
+
+template<typename View, typename Elem>
+static bool
+check_elem_view (const View &view, const Elem &e)
+{
+  if (view.empty ())
+    return false;
+  if (view.size () != 1)
+    return false;
+  if (view.data () != &e)
+    return false;
+  if (&view[0] != &e)
+    return false;
+  if (view[0] != e)
+    return false;
+  return true;
+}
+
+/* Check for operator[].  The first overload is taken iff
+   'view<T>()[0] = T()' is a valid expression.  */
+
+template<typename View,
+	 typename = decltype (std::declval<View> ()[0]
+			      = std::declval<typename View::value_type> ())>
+static bool
+check_op_subscript (const View &view)
+{
+  return true;
+}
+
+/* This overload is taken iff 'view<T>()[0] = T()' is not a valid
+   expression.  */
+
+static bool
+check_op_subscript (...)
+{
+  return false;
+}
+
+/* Check construction with pointer + size.  This is a template in
+   order to test both gdb_byte and const gdb_byte.  */
+
+template<typename T>
+static void
+check_ptr_size_ctor ()
+{
+  T data[] = {0x11, 0x22, 0x33, 0x44};
+
+  gdb::array_view<T> view (data + 1, 2);
+
+  SELF_CHECK (!view.empty ());
+  SELF_CHECK (view.size () == 2);
+  SELF_CHECK (view.data () == &data[1]);
+  SELF_CHECK (view[0] == data[1]);
+  SELF_CHECK (view[1] == data[2]);
+
+  gdb::array_view<const T> cview (data + 1, 2);
+  SELF_CHECK (!cview.empty ());
+  SELF_CHECK (cview.size () == 2);
+  SELF_CHECK (cview.data () == &data[1]);
+  SELF_CHECK (cview[0] == data[1]);
+  SELF_CHECK (cview[1] == data[2]);
+}
+
+/* Asserts std::is_constructible.  */
+
+template<typename T, typename... Args>
+static constexpr bool
+require_not_constructible ()
+{
+  static_assert (!std::is_constructible<T, Args...>::value, "");
+
+  /* constexpr functions can't return void in C++11 (N3444).  */
+  return true;
+};
+
+/* Check the array_view<T>(PTR, SIZE) ctor, when T is a pointer.  */
+
+void
+check_ptr_size_ctor2 ()
+{
+  struct A {};
+  A an_a;
+
+  A *array[] = { &an_a };
+  const A * const carray[] = { &an_a };
+
+  gdb::array_view<A *> v1 = {array, ARRAY_SIZE (array)};
+  gdb::array_view<A *> v2 = {array, (char) ARRAY_SIZE (array)};
+  gdb::array_view<A * const> v3 = {array, ARRAY_SIZE (array)};
+  gdb::array_view<const A * const> cv1 = {carray, ARRAY_SIZE (carray)};
+
+  require_not_constructible<gdb::array_view<A *>, decltype (carray), size_t> ();
+
+  SELF_CHECK (v1[0] == array[0]);
+  SELF_CHECK (v2[0] == array[0]);
+  SELF_CHECK (v3[0] == array[0]);
+
+  SELF_CHECK (!v1.empty ());
+  SELF_CHECK (v1.size () == 1);
+  SELF_CHECK (v1.data () == &array[0]);
+
+  SELF_CHECK (cv1[0] == carray[0]);
+
+  SELF_CHECK (!cv1.empty ());
+  SELF_CHECK (cv1.size () == 1);
+  SELF_CHECK (cv1.data () == &carray[0]);
+}
+
+/* Check construction with a pair of pointers.  This is a template in
+   order to test both gdb_byte and const gdb_byte.  */
+
+template<typename T>
+static void
+check_ptr_ptr_ctor ()
+{
+  T data[] = {0x11, 0x22, 0x33, 0x44};
+
+  gdb::array_view<T> view (data + 1, data + 3);
+
+  SELF_CHECK (!view.empty ());
+  SELF_CHECK (view.size () == 2);
+  SELF_CHECK (view.data () == &data[1]);
+  SELF_CHECK (view[0] == data[1]);
+  SELF_CHECK (view[1] == data[2]);
+
+  gdb_byte array[] = {0x11, 0x22, 0x33, 0x44};
+  const gdb_byte *p1 = array;
+  gdb_byte *p2 = array + ARRAY_SIZE (array);
+  gdb::array_view<const gdb_byte> view2 (p1, p2);
+}
+
+/* Check construction with a pair of pointers of mixed constness.  */
+
+static void
+check_ptr_ptr_mixed_cv ()
+{
+  gdb_byte array[] = {0x11, 0x22, 0x33, 0x44};
+  const gdb_byte *cp = array;
+  gdb_byte *p = array;
+  gdb::array_view<const gdb_byte> view1 (cp, p);
+  gdb::array_view<const gdb_byte> view2 (p, cp);
+  SELF_CHECK (view1.empty ());
+  SELF_CHECK (view2.empty ());
+}
+
+/* Check range-for support (i.e., begin()/end()).  This is a template
+   in order to test both gdb_byte and const gdb_byte.  */
+
+template<typename T>
+static void
+check_range_for ()
+{
+  T data[] = {1, 2, 3, 4};
+  gdb::array_view<T> view (data);
+
+  typename std::decay<T>::type sum = 0;
+  for (auto &elem : view)
+    sum += elem;
+  SELF_CHECK (sum == 1 + 2 + 3 + 4);
+}
+
+/* Entry point.  */
+
+static void
+run_tests ()
+{
+  /* Empty views.  */
+  {
+    constexpr gdb::array_view<gdb_byte> view1;
+    constexpr gdb::array_view<const gdb_byte> view2;
+
+    static_assert (view1.empty (), "");
+    static_assert (view1.data () == nullptr, "");
+    static_assert (view1.size () == 0, "");
+    static_assert (view2.empty (), "");
+    static_assert (view2.size () == 0, "");
+    static_assert (view2.data () == nullptr, "");
+  }
+
+  std::vector<gdb_byte> vec = {0x11, 0x22, 0x33, 0x44 };
+  std::array<gdb_byte, 4> array = {{0x11, 0x22, 0x33, 0x44}};
+
+  /* Various tests of views over std::vector.  */
+  {
+    gdb::array_view<gdb_byte> view = vec;
+    SELF_CHECK (check_container_view (view, vec));
+    gdb::array_view<const gdb_byte> cview = vec;
+    SELF_CHECK (check_container_view (cview, vec));
+  }
+
+  /* Likewise, over std::array.  */
+  {
+    gdb::array_view<gdb_byte> view = array;
+    SELF_CHECK (check_container_view (view, array));
+    gdb::array_view<gdb_byte> cview = array;
+    SELF_CHECK (check_container_view (cview, array));
+  }
+
+  /* op=(std::vector/std::array/elem) */
+  {
+    gdb::array_view<gdb_byte> view;
+
+    view = vec;
+    SELF_CHECK (check_container_view (view, vec));
+    view = std::move (vec);
+    SELF_CHECK (check_container_view (view, vec));
+
+    view = array;
+    SELF_CHECK (check_container_view (view, array));
+    view = std::move (array);
+    SELF_CHECK (check_container_view (view, array));
+
+    gdb_byte elem = 0;
+    view = elem;
+    SELF_CHECK (check_elem_view (view, elem));
+    view = std::move (elem);
+    SELF_CHECK (check_elem_view (view, elem));
+  }
+
+  /* Test copy/move ctor and mutable->immutable conversion.  */
+  {
+    gdb_byte data[] = {0x11, 0x22, 0x33, 0x44};
+    gdb::array_view<gdb_byte> view1 = data;
+    gdb::array_view<gdb_byte> view2 = view1;
+    gdb::array_view<gdb_byte> view3 = std::move (view1);
+    gdb::array_view<const gdb_byte> cview1 = data;
+    gdb::array_view<const gdb_byte> cview2 = cview1;
+    gdb::array_view<const gdb_byte> cview3 = std::move (cview1);
+    SELF_CHECK (view1[0] == data[0]);
+    SELF_CHECK (view2[0] == data[0]);
+    SELF_CHECK (view3[0] == data[0]);
+    SELF_CHECK (cview1[0] == data[0]);
+    SELF_CHECK (cview2[0] == data[0]);
+    SELF_CHECK (cview3[0] == data[0]);
+  }
+
+  /* Same, but op=(view).  */
+  {
+    gdb_byte data[] = {0x55, 0x66, 0x77, 0x88};
+    gdb::array_view<gdb_byte> view1;
+    gdb::array_view<gdb_byte> view2;
+    gdb::array_view<gdb_byte> view3;
+    gdb::array_view<const gdb_byte> cview1;
+    gdb::array_view<const gdb_byte> cview2;
+    gdb::array_view<const gdb_byte> cview3;
+
+    view1 = data;
+    view2 = view1;
+    view3 = std::move (view1);
+    cview1 = data;
+    cview2 = cview1;
+    cview3 = std::move (cview1);
+    SELF_CHECK (view1[0] == data[0]);
+    SELF_CHECK (view2[0] == data[0]);
+    SELF_CHECK (view3[0] == data[0]);
+    SELF_CHECK (cview1[0] == data[0]);
+    SELF_CHECK (cview2[0] == data[0]);
+    SELF_CHECK (cview3[0] == data[0]);
+  }
+
+  /* op[] */
+  {
+    std::vector<gdb_byte> vec = {0x11, 0x22};
+    gdb::array_view<gdb_byte> view = vec;
+    gdb::array_view<const gdb_byte> cview = vec;
+
+    /* Check that op[] on a non-const view of non-const T returns a
+       mutable reference.  */
+    view[0] = 0x33;
+    SELF_CHECK (vec[0] == 0x33);
+
+    /* OTOH, check that assigning through op[] on a view of const T
+       wouldn't compile.  */
+    SELF_CHECK (!check_op_subscript (cview));
+    /* For completeness.  */
+    SELF_CHECK (check_op_subscript (view));
+  }
+
+  check_ptr_size_ctor<const gdb_byte> ();
+  check_ptr_size_ctor<gdb_byte> ();
+  check_ptr_size_ctor2 ();
+  check_ptr_ptr_ctor<const gdb_byte> ();
+  check_ptr_ptr_ctor<gdb_byte> ();
+  check_ptr_ptr_mixed_cv ();
+
+  check_range_for<gdb_byte> ();
+  check_range_for<const gdb_byte> ();
+
+  /* Check that the right ctor overloads are taken when the element is
+     a container.  */
+  {
+    using Vec = std::vector<gdb_byte>;
+    Vec vecs[3];
+
+    gdb::array_view<Vec> view_array = vecs;
+    SELF_CHECK (view_array.size () == 3);
+
+    Vec elem;
+    gdb::array_view<Vec> view_elem = elem;
+    SELF_CHECK (view_elem.size () == 1);
+  }
+}
+
+} /* namespace array_view_tests */
+} /* namespace selftests */
+
+void
+_initialize_array_view_selftests ()
+{
+  selftests::register_test ("array_view",
+			    selftests::array_view_tests::run_tests);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/common-utils-selftests.c ./gdb/unittests/common-utils-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/common-utils-selftests.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/common-utils-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,136 @@
+/* Self tests for general utility routines for GDB, the GNU debugger.
+
+   Copyright (C) 2016-2018 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 "selftest.h"
+
+namespace selftests {
+
+/* Type of both 'string_printf' and the 'format' function below.  Used
+   to run the same tests against both string_printf and
+   string_vprintf.  */
+typedef std::string (format_func) (const char *fmt, ...)
+  ATTRIBUTE_PRINTF (1, 2);
+
+static void
+test_format_func (format_func *func)
+{
+  /* Basic smoke tests.  */
+  SELF_CHECK (func ("%s", "") == "");
+  SELF_CHECK (func ("%s", "test") == "test");
+  SELF_CHECK (func ("%d", 23) == "23");
+  SELF_CHECK (func ("%s %d %s", "test", 23, "done") == "test 23 done");
+  SELF_CHECK (func ("nothing") == "nothing");
+  SELF_CHECK (func ("%d comes before 2", 1) == "1 comes before 2");
+  SELF_CHECK (func ("hello %s", "world") == "hello world");
+
+  /* Check that we don't mishandle very large strings.  (An earlier
+     non-public implementation of string_printf mishandled this).  */
+#define X10 "0123456789"
+#define X100 X10 X10 X10 X10 X10 X10 X10 X10 X10 X10
+#define X1000 X100 X100 X100 X100 X100 X100 X100 X100 X100 X100
+#define X10000 X1000 X1000 X1000 X1000 X1000 X1000 X1000 X1000 X1000 X1000
+#define X100000 X10000 X10000 X10000 X10000 X10000 X10000 X10000 X10000 X10000 X10000
+  SELF_CHECK (func ("%s", X10) == X10);
+  SELF_CHECK (func ("%s", X100) == X100);
+  SELF_CHECK (func ("%s", X1000) == X1000);
+  SELF_CHECK (func ("%s", X10000) == X10000);
+  SELF_CHECK (func ("%s", X100000) == X100000);
+}
+
+static void
+string_printf_tests ()
+{
+  test_format_func (string_printf);
+}
+
+static std::string ATTRIBUTE_PRINTF (1, 2)
+format (const char *fmt, ...)
+{
+  va_list vp;
+
+  va_start (vp, fmt);
+  std::string result = string_vprintf (fmt, vp);
+  va_end (vp);
+  return result;
+}
+
+static void
+string_vprintf_tests ()
+{
+  test_format_func (format);
+}
+
+/* Type of both 'string_appendf' and the 'string_vappendf_wrapper'
+   function below.  Used to run the same tests against both
+   string_appendf and string_vappendf.  */
+typedef void (string_appendf_func) (std::string &str, const char *fmt, ...)
+  ATTRIBUTE_PRINTF (2, 3);
+
+static void
+test_appendf_func (string_appendf_func *func)
+{
+  std::string str;
+
+  func (str, "%s", "");
+  SELF_CHECK (str == "");
+
+  func (str, "%s", "test");
+  SELF_CHECK (str == "test");
+
+  func (str, "%d", 23);
+  SELF_CHECK (str == "test23");
+
+  func (str, "%s %d %s", "foo", 45, "bar");
+  SELF_CHECK (str == "test23foo 45 bar");
+}
+
+static void ATTRIBUTE_PRINTF (2, 3)
+string_vappendf_wrapper (std::string &str, const char *fmt, ...)
+{
+  va_list vp;
+
+  va_start (vp, fmt);
+  string_vappendf (str, fmt, vp);
+  va_end (vp);
+}
+
+static void
+string_appendf_tests ()
+{
+  test_appendf_func (string_appendf);
+}
+
+static void
+string_vappendf_tests ()
+{
+  test_appendf_func (string_vappendf_wrapper);
+}
+
+} /* namespace selftests */
+
+void
+_initialize_common_utils_selftests ()
+{
+  selftests::register_test ("string_printf", selftests::string_printf_tests);
+  selftests::register_test ("string_vprintf", selftests::string_vprintf_tests);
+  selftests::register_test ("string_appendf", selftests::string_appendf_tests);
+  selftests::register_test ("string_vappendf",
+			    selftests::string_vappendf_tests);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/environ-selftests.c ./gdb/unittests/environ-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/environ-selftests.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/environ-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,306 @@
+/* Self tests for gdb_environ for GDB, the GNU debugger.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+#include "selftest.h"
+#include "common/environ.h"
+#include "common/diagnostics.h"
+
+static const char gdb_selftest_env_var[] = "GDB_SELFTEST_ENVIRON";
+
+static bool
+set_contains (const std::set<std::string> &set, std::string key)
+{
+  return set.find (key) != set.end ();
+}
+
+namespace selftests {
+namespace gdb_environ_tests {
+
+/* Test if the vector is initialized in a correct way.  */
+
+static void
+test_vector_initialization ()
+{
+  gdb_environ env;
+
+  /* When the vector is initialized, there should always be one NULL
+     element in it.  */
+  SELF_CHECK (env.envp ()[0] == NULL);
+  SELF_CHECK (env.user_set_env ().size () == 0);
+  SELF_CHECK (env.user_unset_env ().size () == 0);
+
+  /* Make sure that there is no other element.  */
+  SELF_CHECK (env.get ("PWD") == NULL);
+}
+
+/* Test initialization using the host's environ.  */
+
+static void
+test_init_from_host_environ ()
+{
+  /* Initialize the environment vector using the host's environ.  */
+  gdb_environ env = gdb_environ::from_host_environ ();
+
+  /* The user-set and user-unset lists must be empty.  */
+  SELF_CHECK (env.user_set_env ().size () == 0);
+  SELF_CHECK (env.user_unset_env ().size () == 0);
+
+  /* Our test environment variable should be present at the
+     vector.  */
+  SELF_CHECK (strcmp (env.get (gdb_selftest_env_var), "1") == 0);
+}
+
+/* Test reinitialization using the host's environ.  */
+
+static void
+test_reinit_from_host_environ ()
+{
+  /* Reinitialize our environ vector using the host environ.  We
+     should be able to see one (and only one) instance of the test
+     variable.  */
+  gdb_environ env = gdb_environ::from_host_environ ();
+  env = gdb_environ::from_host_environ ();
+  char **envp = env.envp ();
+  int num_found = 0;
+
+  for (size_t i = 0; envp[i] != NULL; ++i)
+    if (strcmp (envp[i], "GDB_SELFTEST_ENVIRON=1") == 0)
+      ++num_found;
+  SELF_CHECK (num_found == 1);
+}
+
+/* Test the case when we set a variable A, then set a variable B,
+   then unset A, and make sure that we cannot find A in the environ
+   vector, but can still find B.  */
+
+static void
+test_set_A_unset_B_unset_A_cannot_find_A_can_find_B ()
+{
+  gdb_environ env;
+
+  env.set ("GDB_SELFTEST_ENVIRON_1", "aaa");
+  SELF_CHECK (strcmp (env.get ("GDB_SELFTEST_ENVIRON_1"), "aaa") == 0);
+  /* User-set environ var list must contain one element.  */
+  SELF_CHECK (env.user_set_env ().size () == 1);
+  SELF_CHECK (set_contains (env.user_set_env (),
+			    std::string ("GDB_SELFTEST_ENVIRON_1=aaa")));
+
+  env.set ("GDB_SELFTEST_ENVIRON_2", "bbb");
+  SELF_CHECK (strcmp (env.get ("GDB_SELFTEST_ENVIRON_2"), "bbb") == 0);
+
+  env.unset ("GDB_SELFTEST_ENVIRON_1");
+  SELF_CHECK (env.get ("GDB_SELFTEST_ENVIRON_1") == NULL);
+  SELF_CHECK (strcmp (env.get ("GDB_SELFTEST_ENVIRON_2"), "bbb") == 0);
+
+  /* The user-set environ var list must contain only one element
+     now.  */
+  SELF_CHECK (set_contains (env.user_set_env (),
+			    std::string ("GDB_SELFTEST_ENVIRON_2=bbb")));
+  SELF_CHECK (env.user_set_env ().size () == 1);
+}
+
+/* Check if unset followed by a set in an empty vector works.  */
+
+static void
+test_unset_set_empty_vector ()
+{
+  gdb_environ env;
+
+  env.set ("PWD", "test");
+  SELF_CHECK (strcmp (env.get ("PWD"), "test") == 0);
+  SELF_CHECK (set_contains (env.user_set_env (), std::string ("PWD=test")));
+  SELF_CHECK (env.user_unset_env ().size () == 0);
+  /* The second element must be NULL.  */
+  SELF_CHECK (env.envp ()[1] == NULL);
+  SELF_CHECK (env.user_set_env ().size () == 1);
+  env.unset ("PWD");
+  SELF_CHECK (env.envp ()[0] == NULL);
+  SELF_CHECK (env.user_set_env ().size () == 0);
+  SELF_CHECK (env.user_unset_env ().size () == 1);
+  SELF_CHECK (set_contains (env.user_unset_env (), std::string ("PWD")));
+}
+
+/* When we clear our environ vector, there should be only one
+   element on it (NULL), and we shouldn't be able to get our test
+   variable.  */
+
+static void
+test_vector_clear ()
+{
+  gdb_environ env;
+
+  env.set (gdb_selftest_env_var, "1");
+
+  env.clear ();
+  SELF_CHECK (env.envp ()[0] == NULL);
+  SELF_CHECK (env.user_set_env ().size () == 0);
+  SELF_CHECK (env.user_unset_env ().size () == 0);
+  SELF_CHECK (env.get (gdb_selftest_env_var) == NULL);
+}
+
+/* Test that after a std::move the moved-from object is left at a
+   valid state (i.e., its only element is NULL).  */
+
+static void
+test_std_move ()
+{
+  gdb_environ env;
+  gdb_environ env2;
+
+  env.set ("A", "1");
+  SELF_CHECK (strcmp (env.get ("A"), "1") == 0);
+  SELF_CHECK (set_contains (env.user_set_env (), std::string ("A=1")));
+  SELF_CHECK (env.user_set_env ().size () == 1);
+
+  env2 = std::move (env);
+  SELF_CHECK (env.envp ()[0] == NULL);
+  SELF_CHECK (strcmp (env2.get ("A"), "1") == 0);
+  SELF_CHECK (env2.envp ()[1] == NULL);
+  SELF_CHECK (env.user_set_env ().size () == 0);
+  SELF_CHECK (set_contains (env2.user_set_env (), std::string ("A=1")));
+  SELF_CHECK (env2.user_set_env ().size () == 1);
+  env.set ("B", "2");
+  SELF_CHECK (strcmp (env.get ("B"), "2") == 0);
+  SELF_CHECK (env.envp ()[1] == NULL);
+}
+
+/* Test that the move constructor leaves everything at a valid
+   state.  */
+
+static void
+test_move_constructor ()
+{
+  gdb_environ env;
+
+  env.set ("A", "1");
+  SELF_CHECK (strcmp (env.get ("A"), "1") == 0);
+  SELF_CHECK (set_contains (env.user_set_env (), std::string ("A=1")));
+
+  gdb_environ env2 = std::move (env);
+  SELF_CHECK (env.envp ()[0] == NULL);
+  SELF_CHECK (env.user_set_env ().size () == 0);
+  SELF_CHECK (strcmp (env2.get ("A"), "1") == 0);
+  SELF_CHECK (env2.envp ()[1] == NULL);
+  SELF_CHECK (set_contains (env2.user_set_env (), std::string ("A=1")));
+  SELF_CHECK (env2.user_set_env ().size () == 1);
+
+  env.set ("B", "2");
+  SELF_CHECK (strcmp (env.get ("B"), "2") == 0);
+  SELF_CHECK (env.envp ()[1] == NULL);
+  SELF_CHECK (set_contains (env.user_set_env (), std::string ("B=2")));
+  SELF_CHECK (env.user_set_env ().size () == 1);
+}
+
+/* Test that self-moving works.  */
+
+static void
+test_self_move ()
+{
+  gdb_environ env;
+
+  /* Test self-move.  */
+  env.set ("A", "1");
+  SELF_CHECK (strcmp (env.get ("A"), "1") == 0);
+  SELF_CHECK (set_contains (env.user_set_env (), std::string ("A=1")));
+  SELF_CHECK (env.user_set_env ().size () == 1);
+
+  /* Some compilers warn about moving to self, but that's precisely what we want
+     to test here, so turn this warning off.  */
+  DIAGNOSTIC_PUSH
+  DIAGNOSTIC_IGNORE_SELF_MOVE
+  env = std::move (env);
+  DIAGNOSTIC_POP
+
+  SELF_CHECK (strcmp (env.get ("A"), "1") == 0);
+  SELF_CHECK (strcmp (env.envp ()[0], "A=1") == 0);
+  SELF_CHECK (env.envp ()[1] == NULL);
+  SELF_CHECK (set_contains (env.user_set_env (), std::string ("A=1")));
+  SELF_CHECK (env.user_set_env ().size () == 1);
+}
+
+/* Test if set/unset/reset works.  */
+
+static void
+test_set_unset_reset ()
+{
+  gdb_environ env = gdb_environ::from_host_environ ();
+
+  /* Our test variable should already be present in the host's environment.  */
+  SELF_CHECK (env.get ("GDB_SELFTEST_ENVIRON") != NULL);
+
+  /* Set our test variable to another value.  */
+  env.set ("GDB_SELFTEST_ENVIRON", "test");
+  SELF_CHECK (strcmp (env.get ("GDB_SELFTEST_ENVIRON"), "test") == 0);
+  SELF_CHECK (env.user_set_env ().size () == 1);
+  SELF_CHECK (env.user_unset_env ().size () == 0);
+
+  /* And unset our test variable.  The variable still exists in the
+     host's environment, but doesn't exist in our vector.  */
+  env.unset ("GDB_SELFTEST_ENVIRON");
+  SELF_CHECK (env.get ("GDB_SELFTEST_ENVIRON") == NULL);
+  SELF_CHECK (env.user_set_env ().size () == 0);
+  SELF_CHECK (env.user_unset_env ().size () == 1);
+  SELF_CHECK (set_contains (env.user_unset_env (),
+			    std::string ("GDB_SELFTEST_ENVIRON")));
+
+  /* Re-set the test variable.  */
+  env.set ("GDB_SELFTEST_ENVIRON", "1");
+  SELF_CHECK (strcmp (env.get ("GDB_SELFTEST_ENVIRON"), "1") == 0);
+}
+
+static void
+run_tests ()
+{
+  /* Set a test environment variable.  */
+  if (setenv ("GDB_SELFTEST_ENVIRON", "1", 1) != 0)
+    error (_("Could not set environment variable for testing."));
+
+  test_vector_initialization ();
+
+  test_unset_set_empty_vector ();
+
+  test_init_from_host_environ ();
+
+  test_set_unset_reset ();
+
+  test_vector_clear ();
+
+  test_reinit_from_host_environ ();
+
+  /* Get rid of our test variable.  We won't need it anymore.  */
+  unsetenv ("GDB_SELFTEST_ENVIRON");
+
+  test_set_A_unset_B_unset_A_cannot_find_A_can_find_B ();
+
+  test_std_move ();
+
+  test_move_constructor ();
+
+  test_self_move ();
+}
+} /* namespace gdb_environ */
+} /* namespace selftests */
+
+void
+_initialize_environ_selftests ()
+{
+  selftests::register_test ("gdb_environ",
+			    selftests::gdb_environ_tests::run_tests);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/function-view-selftests.c ./gdb/unittests/function-view-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/function-view-selftests.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/unittests/function-view-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Self tests for function_view for GDB, the GNU debugger.
 
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -174,5 +174,6 @@ run_tests ()
 void
 _initialize_function_view_selftests ()
 {
-  register_self_test (selftests::function_view::run_tests);
+  selftests::register_test ("function_view",
+			    selftests::function_view::run_tests);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/lookup_name_info-selftests.c ./gdb/unittests/lookup_name_info-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/lookup_name_info-selftests.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/lookup_name_info-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,111 @@
+/* Self tests for lookup_name_info for GDB, the GNU debugger.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+#include "selftest.h"
+#include "symtab.h"
+
+namespace selftests {
+namespace lookup_name {
+
+/* Check that removing parameter info out of NAME produces EXPECTED.
+   COMPLETION_MODE indicates whether we're testing normal and
+   completion mode.  FILE and LINE are used to provide better test
+   location information in case the check fails.  */
+
+static void
+check_make_paramless (const char *file, int line,
+		      enum language lang,
+		      const char *name, const char *expected,
+		      bool completion_mode)
+{
+  lookup_name_info lookup_name (name, symbol_name_match_type::FULL,
+				completion_mode, true /* ignore_parameters */);
+  const std::string &result = lookup_name.language_lookup_name (lang);
+
+  if (result != expected)
+    {
+      error (_("%s:%d: make-paramless self-test failed: (completion=%d, lang=%d) "
+	       "\"%s\" -> \"%s\", expected \"%s\""),
+	     file, line, completion_mode, lang, name,
+	     result.c_str (), expected);
+    }
+}
+
+static void
+run_tests ()
+{
+  /* Helper for CHECK and CHECK_INCOMPL.  */
+#define CHECK_1(INCOMPLETE, LANG, NAME, EXPECTED)			\
+  do									\
+    {									\
+      check_make_paramless (__FILE__, __LINE__,				\
+			    LANG, NAME,					\
+			    (INCOMPLETE) ? "" : (EXPECTED), false);	\
+      check_make_paramless (__FILE__, __LINE__,				\
+			    LANG, NAME, EXPECTED, true);		\
+    }									\
+  while (0)
+
+  /* Check that removing parameter info out of NAME produces EXPECTED.
+     Checks both normal and completion modes.  */
+#define CHECK(LANG, NAME, EXPECTED)		\
+  CHECK_1(false, LANG, NAME, EXPECTED)
+
+  /* Similar, but used when NAME is incomplete -- i.e., NAME has
+     unbalanced parentheses.  In this case, looking for the exact name
+     should fail / return empty.  */
+#define CHECK_INCOMPL(LANG, NAME, EXPECTED)				\
+  CHECK_1 (true, LANG, NAME, EXPECTED)
+
+  /* None of these languages support function overloading like C++
+     does, so building a nameless lookup name ends up being just the
+     same as any other lookup name.  Mainly this serves as smoke test
+     that C++-specific code doesn't mess up with other languages that
+     use some other scoping character ('.' vs '::').  */
+  CHECK (language_ada, "pck.ada_hello", "pck__ada_hello");
+  CHECK (language_go, "pck.go_hello", "pck.go_hello");
+  CHECK (language_fortran, "mod::func", "mod::func");
+
+  /* D does support function overloading similar to C++, but we're
+     missing support for stripping parameters.  At least make sure the
+     input name is preserved unmodified.  */
+  CHECK (language_d, "pck.d_hello", "pck.d_hello");
+
+  /* Just a few basic tests to make sure
+     lookup_name_info::make_paramless is well integrated with
+     cp_remove_params_if_any.  gdb/cp-support.c has comprehensive
+     testing of C++ specifics.  */
+  CHECK (language_cplus, "function()", "function");
+  CHECK (language_cplus, "function() const", "function");
+  CHECK (language_cplus, "A::B::C()", "A::B::C");
+  CHECK (language_cplus, "A::B::C", "A::B::C");
+
+#undef CHECK
+#undef CHECK_INCOMPL
+}
+
+}} // namespace selftests::lookup_name
+
+void
+_initialize_lookup_name_info_selftests ()
+{
+  selftests::register_test ("lookup_name_info",
+			    selftests::lookup_name::run_tests);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/memory-map-selftests.c ./gdb/unittests/memory-map-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/memory-map-selftests.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/memory-map-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,87 @@
+/* Self tests for memory-map for GDB, the GNU debugger.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+#include "selftest.h"
+#include "memory-map.h"
+
+#if defined(HAVE_LIBEXPAT)
+
+namespace selftests {
+namespace memory_map_tests {
+
+/* A simple valid test input for parse_memory_map.  */
+
+static const char *valid_mem_map = R"(<?xml version="1.0"?>
+<!DOCTYPE memory-map
+          PUBLIC "+//IDN gnu.org//DTD GDB Memory Map V1.0//EN"
+                 "http://sourceware.org/gdb/gdb-memory-map.dtd">
+<memory-map>
+  <memory type="ram" start="0" length="4096" />
+  <memory type="rom" start="65536" length="256" />
+  <memory type="flash" start="131072" length="65536">
+    <property name="blocksize">1024</property>
+  </memory>
+</memory-map>
+)";
+
+/* Validate memory region R against some expected values (the other
+   parameters).  */
+
+static void
+check_mem_region (const mem_region &r, CORE_ADDR lo, CORE_ADDR hi,
+		  mem_access_mode mode, int blocksize)
+{
+  SELF_CHECK (r.lo == lo);
+  SELF_CHECK (r.hi == hi);
+  SELF_CHECK (r.enabled_p);
+
+  SELF_CHECK (r.attrib.mode == mode);
+  SELF_CHECK (r.attrib.blocksize == blocksize);
+
+}
+
+/* Test the parse_memory_map function.  */
+
+static void
+parse_memory_map_tests ()
+{
+  std::vector<mem_region> regions = parse_memory_map (valid_mem_map);
+
+  SELF_CHECK (regions.size () == 3);
+
+  check_mem_region (regions[0], 0, 0 + 4096, MEM_RW, -1);
+  check_mem_region (regions[1], 65536, 65536 + 256, MEM_RO, -1);
+  check_mem_region (regions[2], 131072, 131072 + 65536, MEM_FLASH, 1024);
+}
+
+} /* namespace memory_map_tests */
+} /* namespace selftests */
+
+#endif /* HAVE_LIBEXPAT */
+
+void
+_initialize_memory_map_selftests ()
+{
+#if defined(HAVE_LIBEXPAT)
+  selftests::register_test
+    ("parse_memory_map",
+     selftests::memory_map_tests::parse_memory_map_tests);
+#endif
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/memrange-selftests.c ./gdb/unittests/memrange-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/memrange-selftests.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/memrange-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,115 @@
+/* Self tests for mem ranges for GDB, the GNU debugger.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+#include "selftest.h"
+#include "memrange.h"
+
+namespace selftests {
+namespace memrange_tests {
+
+static void
+normalize_mem_ranges_tests ()
+{
+  /* Empty vector.  */
+  {
+    std::vector<mem_range> ranges;
+
+    normalize_mem_ranges (&ranges);
+
+    SELF_CHECK (ranges.size () == 0);
+  }
+
+  /* With one range.  */
+  {
+    std::vector<mem_range> ranges;
+
+    ranges.emplace_back (10, 20);
+
+    normalize_mem_ranges (&ranges);
+
+    SELF_CHECK (ranges.size () == 1);
+    SELF_CHECK (ranges[0] == mem_range (10, 20));
+  }
+
+  /* Completely disjoint ranges.  */
+  {
+    std::vector<mem_range> ranges;
+
+    ranges.emplace_back (20, 1);
+    ranges.emplace_back (10, 1);
+
+    normalize_mem_ranges (&ranges);
+
+    SELF_CHECK (ranges.size () == 2);
+    SELF_CHECK (ranges[0] == mem_range (10, 1));
+    SELF_CHECK (ranges[1] == mem_range (20, 1));
+  }
+
+  /* Overlapping and contiguous ranges.  */
+  {
+    std::vector<mem_range> ranges;
+
+    ranges.emplace_back (5, 10);
+    ranges.emplace_back (10, 10);
+    ranges.emplace_back (15, 10);
+
+    normalize_mem_ranges (&ranges);
+
+    SELF_CHECK (ranges.size () == 1);
+    SELF_CHECK (ranges[0] == mem_range (5, 20));
+  }
+
+  /* Duplicate ranges.  */
+  {
+    std::vector<mem_range> ranges;
+
+    ranges.emplace_back (10, 10);
+    ranges.emplace_back (10, 10);
+
+    normalize_mem_ranges (&ranges);
+
+    SELF_CHECK (ranges.size () == 1);
+    SELF_CHECK (ranges[0] == mem_range (10, 10));
+  }
+
+  /* Range completely inside another.  */
+  {
+    std::vector<mem_range> ranges;
+
+    ranges.emplace_back (14, 2);
+    ranges.emplace_back (10, 10);
+
+    normalize_mem_ranges (&ranges);
+
+    SELF_CHECK (ranges.size () == 1);
+    SELF_CHECK (ranges[0] == mem_range (10, 10));
+  }
+}
+
+} /* namespace memrange_tests */
+} /* namespace selftests */
+
+void
+_initialize_memrange_selftests ()
+{
+  selftests::register_test
+    ("normalize_mem_ranges",
+     selftests::memrange_tests::normalize_mem_ranges_tests);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/offset-type-selftests.c ./gdb/unittests/offset-type-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/offset-type-selftests.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/unittests/offset-type-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Self tests for offset types for GDB, the GNU debugger.
 
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -174,5 +174,5 @@ run_tests ()
 void
 _initialize_offset_type_selftests ()
 {
-  register_self_test (selftests::offset_type::run_tests);
+  selftests::register_test ("offset_type", selftests::offset_type::run_tests);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/assignment/1.cc ./gdb/unittests/optional/assignment/1.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/assignment/1.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional/assignment/1.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,195 @@
+// Copyright (C) 2013-2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+namespace assign_1 {
+
+struct exception {};
+
+int counter = 0;
+
+struct mixin_counter
+{
+  mixin_counter() { ++counter; }
+  mixin_counter(mixin_counter const&) { ++counter; }
+  ~mixin_counter() { --counter; }
+};
+
+struct value_type : private mixin_counter
+{
+  enum state_type
+  {
+    zero,
+    moved_from,
+    throwing_construction,
+    throwing_copy,
+    throwing_copy_assignment,
+    throwing_move,
+    throwing_move_assignment,
+    threw,
+  };
+
+  value_type() = default;
+
+  explicit value_type(state_type state_)
+  : state(state_)
+  {
+    throw_if(throwing_construction);
+  }
+
+  value_type(value_type const& other)
+  : state(other.state)
+  {
+    throw_if(throwing_copy);
+  }
+
+  value_type&
+  operator=(value_type const& other)
+  {
+    state = other.state;
+    throw_if(throwing_copy_assignment);
+    return *this;
+  }
+
+  value_type(value_type&& other)
+  : state(other.state)
+  {
+    other.state = moved_from;
+    throw_if(throwing_move);
+  }
+
+  value_type&
+  operator=(value_type&& other)
+  {
+    state = other.state;
+    other.state = moved_from;
+    throw_if(throwing_move_assignment);
+    return *this;
+  }
+
+  void throw_if(state_type match)
+  {
+    if(state == match)
+    {
+      state = threw;
+      throw exception {};
+    }
+  }
+
+  state_type state = zero;
+};
+
+void test()
+{
+  using O = gdb::optional<value_type>;
+  using S = value_type::state_type;
+  auto const make = [](S s = S::zero) { return O { gdb::in_place, s }; };
+
+  enum outcome_type { nothrow, caught, bad_catch };
+
+  // Check copy/move assignment for disengaged optional
+
+  // From disengaged optional
+  {
+    O o;
+    VERIFY( !o );
+    O p;
+    o = p;
+    VERIFY( !o );
+    VERIFY( !p );
+  }
+
+  {
+    O o;
+    VERIFY( !o );
+    O p;
+    o = std::move(p);
+    VERIFY( !o );
+    VERIFY( !p );
+  }
+
+#ifndef GDB_OPTIONAL
+  {
+    O o;
+    VERIFY( !o );
+    o = {};
+    VERIFY( !o );
+  }
+#endif
+
+  // From engaged optional
+  {
+    O o;
+    VERIFY( !o );
+    O p = make(S::throwing_copy_assignment);
+    o = p;
+    VERIFY( o && o->state == S::throwing_copy_assignment );
+    VERIFY( p && p->state == S::throwing_copy_assignment );
+  }
+
+  {
+    O o;
+    VERIFY( !o );
+    O p = make(S::throwing_move_assignment);
+    o = std::move(p);
+    VERIFY( o && o->state == S::throwing_move_assignment );
+    VERIFY( p && p->state == S::moved_from );
+  }
+
+  {
+    outcome_type outcome {};
+    O o;
+    VERIFY( !o );
+    O p = make(S::throwing_copy);
+
+    try
+    {
+      o = p;
+    }
+    catch(exception const&)
+    { outcome = caught; }
+    catch(...)
+    { outcome = bad_catch; }
+
+    VERIFY( outcome == caught );
+    VERIFY( !o );
+    VERIFY( p && p->state == S::throwing_copy );
+  }
+
+  {
+    outcome_type outcome {};
+    O o;
+    VERIFY( !o );
+    O p = make(S::throwing_move);
+
+    try
+    {
+      o = std::move(p);
+    }
+    catch(exception const&)
+    { outcome = caught; }
+    catch(...)
+    { outcome = bad_catch; }
+
+    VERIFY( outcome == caught );
+    VERIFY( !o );
+    VERIFY( p && p->state == S::moved_from );
+  }
+
+  VERIFY( counter == 0 );
+}
+
+} // namespace assign_1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/assignment/2.cc ./gdb/unittests/optional/assignment/2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/assignment/2.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional/assignment/2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,193 @@
+// Copyright (C) 2013-2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+namespace assign_2 {
+
+struct exception {};
+
+int counter = 0;
+
+struct mixin_counter
+{
+  mixin_counter() { ++counter; }
+  mixin_counter(mixin_counter const&) { ++counter; }
+  ~mixin_counter() { --counter; }
+};
+
+struct value_type : private mixin_counter
+{
+  enum state_type
+  {
+    zero,
+    moved_from,
+    throwing_construction,
+    throwing_copy,
+    throwing_copy_assignment,
+    throwing_move,
+    throwing_move_assignment,
+    threw,
+  };
+
+  value_type() = default;
+
+  explicit value_type(state_type state_)
+  : state(state_)
+  {
+    throw_if(throwing_construction);
+  }
+
+  value_type(value_type const& other)
+  : state(other.state)
+  {
+    throw_if(throwing_copy);
+  }
+
+  value_type&
+  operator=(value_type const& other)
+  {
+    state = other.state;
+    throw_if(throwing_copy_assignment);
+    return *this;
+  }
+
+  value_type(value_type&& other)
+  : state(other.state)
+  {
+    other.state = moved_from;
+    throw_if(throwing_move);
+  }
+
+  value_type&
+  operator=(value_type&& other)
+  {
+    state = other.state;
+    other.state = moved_from;
+    throw_if(throwing_move_assignment);
+    return *this;
+  }
+
+  void throw_if(state_type match)
+  {
+    if(state == match)
+    {
+      state = threw;
+      throw exception {};
+    }
+  }
+
+  state_type state = zero;
+};
+
+void test()
+{
+  using O = gdb::optional<value_type>;
+  using S = value_type::state_type;
+  auto const make = [](S s = S::zero) { return O { gdb::in_place, s }; };
+
+  enum outcome_type { nothrow, caught, bad_catch };
+
+  // Check copy/move assignment for engaged optional
+
+  // From disengaged optional
+  {
+    O o = make(S::zero);
+    VERIFY( o );
+    O p;
+    o = p;
+    VERIFY( !o );
+    VERIFY( !p );
+  }
+
+  {
+    O o = make(S::zero);
+    VERIFY( o );
+    O p;
+    o = std::move(p);
+    VERIFY( !o );
+    VERIFY( !p );
+  }
+
+#ifndef GDB_OPTIONAL
+  {
+    O o = make(S::zero);
+    VERIFY( o );
+    o = {};
+    VERIFY( !o );
+  }
+#endif
+
+  // From engaged optional
+  {
+    O o = make(S::zero);
+    VERIFY( o );
+    O p = make(S::throwing_copy);
+    o = p;
+    VERIFY( o && o->state == S::throwing_copy);
+    VERIFY( p && p->state == S::throwing_copy);
+  }
+
+  {
+    O o = make(S::zero);
+    VERIFY( o );
+    O p = make(S::throwing_move);
+    o = std::move(p);
+    VERIFY( o && o->state == S::throwing_move);
+    VERIFY( p && p->state == S::moved_from);
+  }
+
+  {
+    ATTRIBUTE_UNUSED outcome_type outcome {};
+    O o = make(S::zero);
+    VERIFY( o );
+    O p = make(S::throwing_copy_assignment);
+
+    try
+    {
+      o = p;
+    }
+    catch(exception const&)
+    { outcome = caught; }
+    catch(...)
+    { outcome = bad_catch; }
+
+    VERIFY( o && o->state == S::threw);
+    VERIFY( p && p->state == S::throwing_copy_assignment);
+  }
+
+  {
+    ATTRIBUTE_UNUSED outcome_type outcome {};
+    O o = make(S::zero);
+    VERIFY( o );
+    O p = make(S::throwing_move_assignment);
+
+    try
+    {
+      o = std::move(p);
+    }
+    catch(exception const&)
+    { outcome = caught; }
+    catch(...)
+    { outcome = bad_catch; }
+
+    VERIFY( o && o->state == S::threw);
+    VERIFY( p && p->state == S::moved_from);
+  }
+
+  VERIFY( counter == 0 );
+}
+
+} // namespace assign_2
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/assignment/3.cc ./gdb/unittests/optional/assignment/3.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/assignment/3.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional/assignment/3.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,156 @@
+// Copyright (C) 2013-2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+namespace assign_3 {
+
+struct exception {};
+
+int counter = 0;
+
+struct mixin_counter
+{
+  mixin_counter() { ++counter; }
+  mixin_counter(mixin_counter const&) { ++counter; }
+  ~mixin_counter() { --counter; }
+};
+
+struct value_type : private mixin_counter
+{
+  enum state_type
+  {
+    zero,
+    moved_from,
+    throwing_construction,
+    throwing_copy,
+    throwing_copy_assignment,
+    throwing_move,
+    throwing_move_assignment,
+    threw,
+  };
+
+  value_type() = default;
+
+  explicit value_type(state_type state_)
+  : state(state_)
+  {
+    throw_if(throwing_construction);
+  }
+
+  value_type(value_type const& other)
+  : state(other.state)
+  {
+    throw_if(throwing_copy);
+  }
+
+  value_type&
+  operator=(value_type const& other)
+  {
+    state = other.state;
+    throw_if(throwing_copy_assignment);
+    return *this;
+  }
+
+  value_type(value_type&& other)
+  : state(other.state)
+  {
+    other.state = moved_from;
+    throw_if(throwing_move);
+  }
+
+  value_type&
+  operator=(value_type&& other)
+  {
+    state = other.state;
+    other.state = moved_from;
+    throw_if(throwing_move_assignment);
+    return *this;
+  }
+
+  void throw_if(state_type match)
+  {
+    if(state == match)
+    {
+      state = threw;
+      throw exception {};
+    }
+  }
+
+  state_type state = zero;
+};
+
+void test()
+{
+  using O = gdb::optional<value_type>;
+  using S = value_type::state_type;
+  auto const make = [](S s = S::zero) { return value_type { s }; };
+
+  enum outcome_type { nothrow, caught, bad_catch };
+
+  // Check value assignment for disengaged optional
+
+  {
+    O o;
+    value_type v = make(S::throwing_copy_assignment);
+    o = v;
+    VERIFY( o && o->state == S::throwing_copy_assignment );
+  }
+
+  {
+    O o;
+    value_type v = make(S::throwing_move_assignment);
+    o = std::move(v);
+    VERIFY( o && o->state == S::throwing_move_assignment );
+  }
+
+  {
+    ATTRIBUTE_UNUSED outcome_type outcome {};
+    O o;
+    value_type v = make(S::throwing_copy);
+
+    try
+    {
+      o = v;
+    }
+    catch(exception const&)
+    { outcome = caught; }
+    catch(...)
+    { outcome = bad_catch; }
+
+    VERIFY( !o );
+  }
+
+  {
+    ATTRIBUTE_UNUSED outcome_type outcome {};
+    O o;
+    value_type v = make(S::throwing_move);
+
+    try
+    {
+      o = std::move(v);
+    }
+    catch(exception const&)
+    { outcome = caught; }
+    catch(...)
+    { outcome = bad_catch; }
+
+    VERIFY( !o );
+  }
+
+  VERIFY( counter == 0 );
+}
+
+} // namespace assign_3
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/assignment/4.cc ./gdb/unittests/optional/assignment/4.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/assignment/4.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional/assignment/4.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,156 @@
+// Copyright (C) 2013-2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+namespace assign_4 {
+
+struct exception {};
+
+int counter = 0;
+
+struct mixin_counter
+{
+  mixin_counter() { ++counter; }
+  mixin_counter(mixin_counter const&) { ++counter; }
+  ~mixin_counter() { --counter; }
+};
+
+struct value_type : private mixin_counter
+{
+  enum state_type
+  {
+    zero,
+    moved_from,
+    throwing_construction,
+    throwing_copy,
+    throwing_copy_assignment,
+    throwing_move,
+    throwing_move_assignment,
+    threw,
+  };
+
+  value_type() = default;
+
+  explicit value_type(state_type state_)
+  : state(state_)
+  {
+    throw_if(throwing_construction);
+  }
+
+  value_type(value_type const& other)
+  : state(other.state)
+  {
+    throw_if(throwing_copy);
+  }
+
+  value_type&
+  operator=(value_type const& other)
+  {
+    state = other.state;
+    throw_if(throwing_copy_assignment);
+    return *this;
+  }
+
+  value_type(value_type&& other)
+  : state(other.state)
+  {
+    other.state = moved_from;
+    throw_if(throwing_move);
+  }
+
+  value_type&
+  operator=(value_type&& other)
+  {
+    state = other.state;
+    other.state = moved_from;
+    throw_if(throwing_move_assignment);
+    return *this;
+  }
+
+  void throw_if(state_type match)
+  {
+    if(state == match)
+    {
+      state = threw;
+      throw exception {};
+    }
+  }
+
+  state_type state = zero;
+};
+
+void test()
+{
+  using O = gdb::optional<value_type>;
+  using S = value_type::state_type;
+  auto const make = [](S s = S::zero) { return value_type { s }; };
+
+  enum outcome_type { nothrow, caught, bad_catch };
+
+  // Check value assignment for engaged optional
+
+  {
+    O o = make();
+    value_type v = make(S::throwing_copy);
+    o = v;
+    VERIFY( o && o->state == S::throwing_copy);
+  }
+
+  {
+    O o = make();
+    value_type v = make(S::throwing_move);
+    o = std::move(v);
+    VERIFY( o && o->state == S::throwing_move);
+  }
+
+  {
+    ATTRIBUTE_UNUSED outcome_type outcome {};
+    O o = make();
+    value_type v = make(S::throwing_copy_assignment);
+
+    try
+    {
+      o = v;
+    }
+    catch(exception const&)
+    { outcome = caught; }
+    catch(...)
+    { outcome = bad_catch; }
+
+    VERIFY( o && o->state == S::threw );
+  }
+
+  {
+    ATTRIBUTE_UNUSED outcome_type outcome {};
+    O o = make();
+    value_type v = make(S::throwing_move_assignment);
+
+    try
+    {
+      o = std::move(v);
+    }
+    catch(exception const&)
+    { outcome = caught; }
+    catch(...)
+    { outcome = bad_catch; }
+
+    VERIFY( o && o->state == S::threw );
+  }
+
+  VERIFY( counter == 0 );
+}
+
+} // namespace assign_4
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/assignment/5.cc ./gdb/unittests/optional/assignment/5.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/assignment/5.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional/assignment/5.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,80 @@
+// Copyright (C) 2013-2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+namespace assign_5 {
+
+int counter = 0;
+
+struct mixin_counter
+{
+  mixin_counter() { ++counter; }
+  mixin_counter(mixin_counter const&) { ++counter; }
+  ~mixin_counter() { --counter; }
+};
+
+struct value_type : private mixin_counter { };
+
+void test()
+{
+  using O = gdb::optional<value_type>;
+
+  // Check std::nullopt_t and 'default' (= {}) assignment
+
+#ifndef GDB_OPTIONAL
+  {
+    O o;
+    o = std::nullopt;
+    VERIFY( !o );
+  }
+#endif
+
+#ifndef GDB_OPTIONAL
+  {
+    O o { gdb::in_place };
+    o = std::nullopt;
+    VERIFY( !o );
+  }
+#endif
+
+#ifndef GDB_OPTIONAL
+  {
+    O o;
+    o = {};
+    VERIFY( !o );
+  }
+#endif
+
+#ifndef GDB_OPTIONAL
+  {
+    O o { gdb::in_place };
+    o = {};
+    VERIFY( !o );
+  }
+#endif
+  {
+    gdb::optional<std::vector<int>> ovi{{1, 2, 3}};
+    VERIFY(ovi->size() == 3);
+    VERIFY((*ovi)[0] == 1 && (*ovi)[1] == 2 && (*ovi)[2] == 3);
+    ovi = {4, 5, 6, 7};
+    VERIFY(ovi->size() == 4);
+    VERIFY((*ovi)[0] == 4 && (*ovi)[1] == 5 &&
+	   (*ovi)[2] == 6 && (*ovi)[3] == 7);
+  }
+  VERIFY( counter == 0 );
+}
+
+} // namespace assign_5
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/assignment/6.cc ./gdb/unittests/optional/assignment/6.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/assignment/6.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional/assignment/6.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,90 @@
+// Copyright (C) 2013-2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+namespace assign_6 {
+
+int counter = 0;
+
+struct mixin_counter
+{
+  mixin_counter() { ++counter; }
+  mixin_counter(mixin_counter const&) { ++counter; }
+  ~mixin_counter() { --counter; }
+};
+
+struct value_type : private mixin_counter
+{
+  value_type() = default;
+  value_type(int) : state(1) { }
+  value_type(std::initializer_list<char>, const char*) : state(2) { }
+  int state = 0;
+};
+
+void test()
+{
+  using O = gdb::optional<value_type>;
+
+  // Check emplace
+
+  {
+    O o;
+    o.emplace();
+    VERIFY( o && o->state == 0 );
+  }
+  {
+    O o { gdb::in_place, 0 };
+    o.emplace();
+    VERIFY( o && o->state == 0 );
+  }
+
+  {
+    O o;
+    o.emplace(0);
+    VERIFY( o && o->state == 1 );
+  }
+  {
+    O o { gdb::in_place };
+    o.emplace(0);
+    VERIFY( o && o->state == 1 );
+  }
+
+#ifndef GDB_OPTIONAL
+  {
+    O o;
+    o.emplace({ 'a' }, "");
+    VERIFY( o && o->state == 2 );
+  }
+  {
+    O o { gdb::in_place };
+    o.emplace({ 'a' }, "");
+    VERIFY( o && o->state == 2 );
+  }
+#endif
+  {
+    O o;
+    VERIFY(&o.emplace(0) == &*o);
+#ifndef GDB_OPTIONAL
+    VERIFY(&o.emplace({ 'a' }, "") == &*o);
+#endif
+  }
+
+  static_assert( !std::is_constructible<O, std::initializer_list<int>, int>(), "" );
+
+  VERIFY( counter == 0 );
+}
+
+} // namespace assign_6
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/assignment/7.cc ./gdb/unittests/optional/assignment/7.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/assignment/7.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional/assignment/7.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,29 @@
+// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+namespace assign_7 {
+
+void test()
+{
+  gdb::optional<int> o{666};
+  VERIFY(o && *o == 666);
+  o.reset();
+  VERIFY(!o);
+  static_assert(noexcept(std::declval<gdb::optional<int>>().reset()), "");
+}
+
+} // namespace assign_7
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/cons/copy.cc ./gdb/unittests/optional/cons/copy.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/cons/copy.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional/cons/copy.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,126 @@
+// Copyright (C) 2013-2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+namespace cons_copy {
+
+struct tracker
+{
+  tracker(int value) : value(value) { ++count; }
+  ~tracker() { --count; }
+
+  tracker(tracker const& other) : value(other.value) { ++count; }
+  tracker(tracker&& other) : value(other.value)
+  {
+    other.value = -1;
+    ++count;
+  }
+
+  tracker& operator=(tracker const&) = default;
+  tracker& operator=(tracker&&) = default;
+
+  int value;
+
+  static int count;
+};
+
+int tracker::count = 0;
+
+struct exception { };
+
+struct throwing_copy
+{
+  throwing_copy() = default;
+  throwing_copy(throwing_copy const&) { throw exception {}; }
+};
+
+void test()
+{
+  // [20.5.4.1] Constructors
+
+  {
+    gdb::optional<long> o;
+    auto copy = o;
+    VERIFY( !copy );
+    VERIFY( !o );
+  }
+
+  {
+    const long val = 0x1234ABCD;
+    gdb::optional<long> o { gdb::in_place, val};
+    auto copy = o;
+    VERIFY( copy );
+    VERIFY( *copy == val );
+#ifndef GDB_OPTIONAL
+    VERIFY( o && o == val );
+#endif
+  }
+
+  {
+    gdb::optional<tracker> o;
+    auto copy = o;
+    VERIFY( !copy );
+    VERIFY( tracker::count == 0 );
+    VERIFY( !o );
+  }
+
+  {
+    gdb::optional<tracker> o { gdb::in_place, 333 };
+    auto copy = o;
+    VERIFY( copy );
+    VERIFY( copy->value == 333 );
+    VERIFY( tracker::count == 2 );
+    VERIFY( o && o->value == 333 );
+  }
+
+  enum outcome { nothrow, caught, bad_catch };
+
+  {
+    outcome result = nothrow;
+    gdb::optional<throwing_copy> o;
+
+    try
+    {
+      auto copy = o;
+    }
+    catch(exception const&)
+    { result = caught; }
+    catch(...)
+    { result = bad_catch; }
+
+    VERIFY( result == nothrow );
+  }
+
+  {
+    outcome result = nothrow;
+    gdb::optional<throwing_copy> o { gdb::in_place };
+
+    try
+    {
+      auto copy = o;
+    }
+    catch(exception const&)
+    { result = caught; }
+    catch(...)
+    { result = bad_catch; }
+
+    VERIFY( result == caught );
+  }
+
+  VERIFY( tracker::count == 0 );
+}
+
+} // namespace cons_copy
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/cons/default.cc ./gdb/unittests/optional/cons/default.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/cons/default.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional/cons/default.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,58 @@
+// Copyright (C) 2013-2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+namespace cons_default {
+
+struct tracker
+{
+  tracker() { ++count; }
+  ~tracker() { --count; }
+
+  tracker(tracker const&) { ++count; }
+  tracker(tracker&&) { ++count; }
+
+  tracker& operator=(tracker const&) = default;
+  tracker& operator=(tracker&&) = default;
+
+  static int count;
+};
+
+int tracker::count = 0;
+
+void test()
+{
+  // [20.5.4.1] Constructors
+
+  {
+    gdb::optional<tracker> o;
+    VERIFY( !o );
+  }
+
+  {
+    gdb::optional<tracker> o {};
+    VERIFY( !o );
+  }
+
+  {
+    gdb::optional<tracker> o = {};
+    VERIFY( !o );
+  }
+
+  VERIFY( tracker::count == 0 );
+}
+
+} // namespace cons_default
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/cons/move.cc ./gdb/unittests/optional/cons/move.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/cons/move.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional/cons/move.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,124 @@
+// Copyright (C) 2013-2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+namespace cons_move {
+
+struct tracker
+{
+  tracker(int value) : value(value) { ++count; }
+  ~tracker() { --count; }
+
+  tracker(tracker const& other) : value(other.value) { ++count; }
+  tracker(tracker&& other) : value(other.value)
+  {
+    other.value = -1;
+    ++count;
+  }
+
+  tracker& operator=(tracker const&) = default;
+  tracker& operator=(tracker&&) = default;
+
+  int value;
+
+  static int count;
+};
+
+int tracker::count = 0;
+
+struct exception { };
+
+struct throwing_move
+{
+  throwing_move() = default;
+  throwing_move(throwing_move const&) { throw exception {}; }
+};
+
+void test()
+{
+  // [20.5.4.1] Constructors
+
+  {
+    gdb::optional<long> o;
+    auto moved_to = std::move(o);
+    VERIFY( !moved_to );
+    VERIFY( !o );
+  }
+
+  {
+    const long val = 0x1234ABCD;
+    gdb::optional<long> o { gdb::in_place, val};
+    auto moved_to = std::move(o);
+    VERIFY( moved_to );
+    VERIFY( *moved_to == val );
+    VERIFY( o && *o == val );
+  }
+
+  {
+    gdb::optional<tracker> o;
+    auto moved_to = std::move(o);
+    VERIFY( !moved_to );
+    VERIFY( tracker::count == 0 );
+    VERIFY( !o );
+  }
+
+  {
+    gdb::optional<tracker> o { gdb::in_place, 333 };
+    auto moved_to = std::move(o);
+    VERIFY( moved_to );
+    VERIFY( moved_to->value == 333 );
+    VERIFY( tracker::count == 2 );
+    VERIFY( o && o->value == -1 );
+  }
+
+  enum outcome { nothrow, caught, bad_catch };
+
+  {
+    outcome result = nothrow;
+    gdb::optional<throwing_move> o;
+
+    try
+    {
+      auto moved_to = std::move(o);
+    }
+    catch(exception const&)
+    { result = caught; }
+    catch(...)
+    { result = bad_catch; }
+
+    VERIFY( result == nothrow );
+  }
+
+  {
+    outcome result = nothrow;
+    gdb::optional<throwing_move> o { gdb::in_place };
+
+    try
+    {
+      auto moved_to = std::move(o);
+    }
+    catch(exception const&)
+    { result = caught; }
+    catch(...)
+    { result = bad_catch; }
+
+    VERIFY( result == caught );
+  }
+
+  VERIFY( tracker::count == 0 );
+}
+
+} // namespace cons_move
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/cons/value.cc ./gdb/unittests/optional/cons/value.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/cons/value.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional/cons/value.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,294 @@
+// Copyright (C) 2013-2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+namespace cons_value {
+
+struct tracker
+{
+  tracker(int value) : value(value) { ++count; }
+  ~tracker() { --count; }
+
+  tracker(tracker const& other) : value(other.value) { ++count; }
+  tracker(tracker&& other) : value(other.value)
+  {
+    other.value = -1;
+    ++count;
+  }
+
+  tracker& operator=(tracker const&) = default;
+  tracker& operator=(tracker&&) = default;
+
+  int value;
+
+  static int count;
+};
+
+int tracker::count = 0;
+
+struct exception { };
+
+struct throwing_construction
+{
+  explicit throwing_construction(bool propagate) : propagate(propagate) { }
+
+  throwing_construction(throwing_construction const& other)
+  : propagate(other.propagate)
+  {
+    if(propagate)
+      throw exception {};
+  }
+
+  bool propagate;
+};
+
+void test()
+{
+  // [20.5.4.1] Constructors
+
+  {
+    auto i = 0x1234ABCD;
+    gdb::optional<long> o { i };
+    VERIFY( o );
+    VERIFY( *o == 0x1234ABCD );
+    VERIFY( i == 0x1234ABCD );
+  }
+
+  {
+    auto i = 0x1234ABCD;
+    gdb::optional<long> o = i;
+    VERIFY( o );
+    VERIFY( *o == 0x1234ABCD );
+    VERIFY( i == 0x1234ABCD );
+  }
+
+  {
+    auto i = 0x1234ABCD;
+    gdb::optional<long> o = { i };
+    VERIFY( o );
+    VERIFY( *o == 0x1234ABCD );
+    VERIFY( i == 0x1234ABCD );
+  }
+
+  {
+    auto i = 0x1234ABCD;
+    gdb::optional<long> o { std::move(i) };
+    VERIFY( o );
+    VERIFY( *o == 0x1234ABCD );
+    VERIFY( i == 0x1234ABCD );
+  }
+
+  {
+    auto i = 0x1234ABCD;
+    gdb::optional<long> o = std::move(i);
+    VERIFY( o );
+    VERIFY( *o == 0x1234ABCD );
+    VERIFY( i == 0x1234ABCD );
+  }
+
+  {
+    auto i = 0x1234ABCD;
+    gdb::optional<long> o = { std::move(i) };
+    VERIFY( o );
+    VERIFY( *o == 0x1234ABCD );
+    VERIFY( i == 0x1234ABCD );
+  }
+
+#ifndef GDB_OPTIONAL
+  {
+    std::vector<int> v = { 0, 1, 2, 3, 4, 5 };
+    gdb::optional<std::vector<int>> o { v };
+    VERIFY( !v.empty() );
+    VERIFY( o->size() == 6 );
+  }
+#endif
+
+  {
+    std::vector<int> v = { 0, 1, 2, 3, 4, 5 };
+    gdb::optional<std::vector<int>> o = v;
+    VERIFY( !v.empty() );
+    VERIFY( o->size() == 6 );
+  }
+
+  {
+    std::vector<int> v = { 0, 1, 2, 3, 4, 5 };
+    gdb::optional<std::vector<int>> o { v };
+    VERIFY( !v.empty() );
+    VERIFY( o->size() == 6 );
+  }
+
+  {
+    std::vector<int> v = { 0, 1, 2, 3, 4, 5 };
+    gdb::optional<std::vector<int>> o { std::move(v) };
+    VERIFY( v.empty() );
+    VERIFY( o->size() == 6 );
+  }
+
+  {
+    std::vector<int> v = { 0, 1, 2, 3, 4, 5 };
+    gdb::optional<std::vector<int>> o = std::move(v);
+    VERIFY( v.empty() );
+    VERIFY( o->size() == 6 );
+  }
+
+  {
+    std::vector<int> v = { 0, 1, 2, 3, 4, 5 };
+    gdb::optional<std::vector<int>> o { std::move(v) };
+    VERIFY( v.empty() );
+    VERIFY( o->size() == 6 );
+  }
+
+  {
+    tracker t { 333 };
+    gdb::optional<tracker> o = t;
+    VERIFY( o->value == 333 );
+    VERIFY( tracker::count == 2 );
+    VERIFY( t.value == 333 );
+  }
+
+  {
+    tracker t { 333 };
+    gdb::optional<tracker> o = std::move(t);
+    VERIFY( o->value == 333 );
+    VERIFY( tracker::count == 2 );
+    VERIFY( t.value == -1 );
+  }
+
+  enum outcome { nothrow, caught, bad_catch };
+
+  {
+    outcome result = nothrow;
+    throwing_construction t { false };
+
+    try
+    {
+      gdb::optional<throwing_construction> o { t };
+    }
+    catch(exception const&)
+    { result = caught; }
+    catch(...)
+    { result = bad_catch; }
+
+    VERIFY( result == nothrow );
+  }
+
+  {
+    outcome result = nothrow;
+    throwing_construction t { true };
+
+    try
+    {
+      gdb::optional<throwing_construction> o { t };
+    }
+    catch(exception const&)
+    { result = caught; }
+    catch(...)
+    { result = bad_catch; }
+
+    VERIFY( result == caught );
+  }
+
+  {
+    outcome result = nothrow;
+    throwing_construction t { false };
+
+    try
+    {
+      gdb::optional<throwing_construction> o { std::move(t) };
+    }
+    catch(exception const&)
+    { result = caught; }
+    catch(...)
+    { result = bad_catch; }
+
+    VERIFY( result == nothrow );
+  }
+
+  {
+    outcome result = nothrow;
+    throwing_construction t { true };
+
+    try
+    {
+      gdb::optional<throwing_construction> o { std::move(t) };
+    }
+    catch(exception const&)
+    { result = caught; }
+    catch(...)
+    { result = bad_catch; }
+
+    VERIFY( result == caught );
+  }
+
+  {
+#ifndef GDB_OPTIONAL
+    gdb::optional<std::string> os = "foo";
+#endif
+    struct X
+    {
+      explicit X(int) {}
+      X& operator=(int) {return *this;}
+    };
+#ifndef GDB_OPTIONAL
+    gdb::optional<X> ox{42};
+#endif
+    gdb::optional<int> oi{42};
+#ifndef GDB_OPTIONAL
+    gdb::optional<X> ox2{oi};
+#endif
+    gdb::optional<std::string> os2;
+    os2 = "foo";
+#ifndef GDB_OPTIONAL
+    gdb::optional<X> ox3;
+    ox3 = 42;
+    gdb::optional<X> ox4;
+    ox4 = oi;
+#endif
+  }
+  {
+    // no converting construction.
+#ifndef GDB_OPTIONAL
+    gdb::optional<int> oi = gdb::optional<short>();
+    VERIFY(!bool(oi));
+    gdb::optional<std::string> os = gdb::optional<const char*>();
+    VERIFY(!bool(os));
+#endif
+    gdb::optional<gdb::optional<int>> ooi = gdb::optional<int>();
+    VERIFY(bool(ooi));
+    ooi = gdb::optional<int>();
+    VERIFY(bool(ooi));
+    ooi = gdb::optional<int>(42);
+    VERIFY(bool(ooi));
+    VERIFY(bool(*ooi));
+#ifndef GDB_OPTIONAL
+    gdb::optional<gdb::optional<int>> ooi2 = gdb::optional<short>();
+    VERIFY(bool(ooi2));
+    ooi2 = gdb::optional<short>();
+    VERIFY(bool(ooi2));
+    ooi2 = gdb::optional<short>(6);
+    VERIFY(bool(ooi2));
+    VERIFY(bool(*ooi2));
+    gdb::optional<gdb::optional<int>> ooi3 = gdb::optional<int>(42);
+    VERIFY(bool(ooi3));
+    VERIFY(bool(*ooi3));
+    gdb::optional<gdb::optional<int>> ooi4 = gdb::optional<short>(6);
+    VERIFY(bool(ooi4));
+    VERIFY(bool(*ooi4));
+#endif
+  }
+}
+
+} // namespace cons_value
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/in_place.cc ./gdb/unittests/optional/in_place.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/in_place.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional/in_place.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,65 @@
+// Copyright (C) 2013-2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+namespace in_place {
+
+void test()
+{
+  // [20.5.5] In-place construction
+  {
+    gdb::optional<int> o { gdb::in_place };
+    VERIFY( o );
+    VERIFY( *o == int() );
+
+#ifndef GDB_OPTIONAL
+    static_assert( !std::is_convertible<gdb::in_place_t, gdb::optional<int>>(), "" );
+#endif
+  }
+
+  {
+    gdb::optional<int> o { gdb::in_place, 42 };
+    VERIFY( o );
+    VERIFY( *o == 42 );
+  }
+
+  {
+    gdb::optional<std::vector<int>> o { gdb::in_place, 18, 4 };
+    VERIFY( o );
+    VERIFY( o->size() == 18 );
+    VERIFY( (*o)[17] == 4 );
+  }
+
+#ifndef GDB_OPTIONAL
+  {
+    gdb::optional<std::vector<int>> o { gdb::in_place, { 18, 4 } };
+    VERIFY( o );
+    VERIFY( o->size() == 2 );
+    VERIFY( (*o)[0] == 18 );
+  }
+#endif
+
+#ifndef GDB_OPTIONAL
+  {
+    gdb::optional<std::vector<int>> o { gdb::in_place, { 18, 4 }, std::allocator<int> {} };
+    VERIFY( o );
+    VERIFY( o->size() == 2 );
+    VERIFY( (*o)[0] == 18 );
+  }
+#endif
+}
+
+} // namespace in_place
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/observers/1.cc ./gdb/unittests/optional/observers/1.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/observers/1.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional/observers/1.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,31 @@
+// Copyright (C) 2013-2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+namespace observers_1 {
+
+struct value_type
+{
+  int i;
+};
+
+void test()
+{
+  gdb::optional<value_type> o { value_type { 51 } };
+  VERIFY( (*o).i == 51 );
+}
+
+} // namespace observers_1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/observers/2.cc ./gdb/unittests/optional/observers/2.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional/observers/2.cc	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional/observers/2.cc	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,35 @@
+// Copyright (C) 2013-2018 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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 library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+namespace observers_2 {
+
+struct value_type
+{
+  int i;
+};
+
+void* operator&(const value_type&) = delete;
+
+void test()
+{
+  gdb::optional<value_type> o { value_type { 51 } };
+  VERIFY( o->i == 51 );
+  VERIFY( o->i == (*o).i );
+  VERIFY( &o->i == &(*o).i );
+}
+
+} // namespace observers_2
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional-selftests.c ./gdb/unittests/optional-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/optional-selftests.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/optional-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,94 @@
+/* Self tests for optional for GDB, the GNU debugger.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+#include "selftest.h"
+#include "common/gdb_optional.h"
+
+/* Used by the included .cc files below.  Included here because the
+   included test files are wrapped in a namespace.  */
+#include <vector>
+#include <string>
+#include <memory>
+
+/* libstdc++'s testsuite uses VERIFY.  */
+#define VERIFY SELF_CHECK
+
+/* Used to disable testing features not supported by
+   gdb::optional.  */
+#define GDB_OPTIONAL
+
+namespace selftests {
+namespace optional {
+
+/* The actual tests live in separate files, which were originally
+   copied over from libstdc++'s testsuite.  To preserve the structure
+   and help with comparison with the original tests, the file names
+   have been preserved, and only minimal modification was done to have
+   them compile against gdb::optional instead of std::optional:
+
+     - std::optional->gdb:optional, etc.
+     - ATTRIBUTE_UNUSED in a few places
+     - wrap each file in a namespace so they can all be compiled as a
+       single unit.
+     - libstdc++'s license and formatting style was preserved.
+*/
+
+#include "optional/assignment/1.cc"
+#include "optional/assignment/2.cc"
+#include "optional/assignment/3.cc"
+#include "optional/assignment/4.cc"
+#include "optional/assignment/5.cc"
+#include "optional/assignment/6.cc"
+#include "optional/assignment/7.cc"
+#include "optional/cons/copy.cc"
+#include "optional/cons/default.cc"
+#include "optional/cons/move.cc"
+#include "optional/cons/value.cc"
+#include "optional/in_place.cc"
+#include "optional/observers/1.cc"
+#include "optional/observers/2.cc"
+
+static void
+run_tests ()
+{
+  assign_1::test ();
+  assign_2::test ();
+  assign_3::test ();
+  assign_4::test ();
+  assign_5::test ();
+  assign_6::test ();
+  assign_7::test ();
+  cons_copy::test ();
+  cons_default::test ();
+  cons_move::test ();
+  cons_value::test ();
+  in_place::test ();
+  observers_1::test ();
+  observers_2::test ();
+}
+
+} /* namespace optional */
+} /* namespace selftests */
+
+void
+_initialize_optional_selftests ()
+{
+  selftests::register_test ("optional", selftests::optional::run_tests);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/ptid-selftests.c ./gdb/unittests/ptid-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/ptid-selftests.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/unittests/ptid-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Self tests for ptid_t for GDB, the GNU debugger.
 
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/rsp-low-selftests.c ./gdb/unittests/rsp-low-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/rsp-low-selftests.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/rsp-low-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,59 @@
+/* Unit tests for the rsp-low.c file.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+#include "selftest.h"
+#include "common/rsp-low.h"
+
+namespace selftests {
+namespace rsp_low {
+
+/* Test the variant of hex2bin that returns a byte_vector.  */
+
+static void test_hex2bin_byte_vector ()
+{
+  gdb::byte_vector bv;
+
+  /* Test an empty string.  */
+  bv = hex2bin ("");
+  SELF_CHECK (bv.size () == 0);
+
+  /* Test a well-formated hex string.  */
+  bv = hex2bin ("abcd01");
+  SELF_CHECK (bv.size () == 3);
+  SELF_CHECK (bv[0] == 0xab);
+  SELF_CHECK (bv[1] == 0xcd);
+  SELF_CHECK (bv[2] == 0x01);
+
+  /* Test an odd-length hex string.  */
+  bv = hex2bin ("0123c");
+  SELF_CHECK (bv.size () == 2);
+  SELF_CHECK (bv[0] == 0x01);
+  SELF_CHECK (bv[1] == 0x23);
+}
+
+} /* namespace rsp_low */
+} /* namespace selftests */
+
+void
+_initialize_rsp_low_selftests ()
+{
+  selftests::register_test ("hex2bin_byte_vector",
+			    selftests::rsp_low::test_hex2bin_byte_vector);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/scoped_restore-selftests.c ./gdb/unittests/scoped_restore-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/scoped_restore-selftests.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/scoped_restore-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,111 @@
+/* Self tests for scoped_restore for GDB, the GNU debugger.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+#include "selftest.h"
+#include "common/scoped_restore.h"
+
+namespace selftests {
+namespace scoped_restore_tests {
+
+struct Base {};
+struct Derived : Base {};
+
+static int global;
+
+/* Check that we can return a scoped_restore from a function.  Below
+   we'll make sure this does the right thing.  */
+static scoped_restore_tmpl<int>
+make_scoped_restore_global (int value)
+{
+  return make_scoped_restore (&global, value);
+}
+
+static void
+run_tests ()
+{
+  /* Test that single-argument make_scoped_restore restores the
+     original value on scope exit.  */
+  {
+    int integer = 0;
+    {
+      scoped_restore restore = make_scoped_restore (&integer);
+      SELF_CHECK (integer == 0);
+      integer = 1;
+    }
+    SELF_CHECK (integer == 0);
+  }
+
+  /* Same, with two-argument make_scoped_restore.  */
+  {
+    int integer = 0;
+    {
+      scoped_restore restore = make_scoped_restore (&integer, 1);
+      SELF_CHECK (integer == 1);
+    }
+    SELF_CHECK (integer == 0);
+  }
+
+  /* Test releasing a scoped_restore.  */
+  {
+    int integer = 0;
+    {
+      scoped_restore restore = make_scoped_restore (&integer, 1);
+      SELF_CHECK (integer == 1);
+      restore.release ();
+    }
+    /* The overridden value should persist.  */
+    SELF_CHECK (integer == 1);
+  }
+
+  /* Test creating a scoped_restore with a value of a type convertible
+     to T.  */
+  {
+    Base *base = nullptr;
+    Derived derived;
+    {
+      scoped_restore restore = make_scoped_restore (&base, &derived);
+
+      SELF_CHECK (base == &derived);
+    }
+    SELF_CHECK (base == nullptr);
+  }
+
+  /* Test calling a function that returns a scoped restore.  Makes
+     sure that if the compiler emits a call to the copy ctor, that we
+     still do the right thing.  */
+  {
+    {
+      SELF_CHECK (global == 0);
+      scoped_restore restore = make_scoped_restore_global (1);
+      SELF_CHECK (global == 1);
+    }
+    SELF_CHECK (global == 0);
+  }
+}
+
+} /* namespace scoped_restore_tests */
+} /* namespace selftests */
+
+void
+_initialize_scoped_restore_selftests ()
+{
+  selftests::register_test ("scoped_restore",
+			    selftests::scoped_restore_tests::run_tests);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/xml-utils-selftests.c ./gdb/unittests/xml-utils-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unittests/xml-utils-selftests.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/xml-utils-selftests.c	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,44 @@
+/* Unit tests for the xml-utils.c file.
+
+   Copyright (C) 2017-2018 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 "defs.h"
+#include "xml-utils.h"
+#include "selftest.h"
+
+namespace selftests {
+namespace xml_utils {
+
+static void test_xml_escape_text ()
+{
+  const char *input = "<this isn't=\"xml\"> &";
+  const char *expected_output = "&lt;this isn&apos;t=&quot;xml&quot;&gt; &amp;";
+  std::string actual_output = xml_escape_text (input);
+
+  SELF_CHECK (actual_output == expected_output);
+}
+
+}
+}
+
+void
+_initialize_xml_utils ()
+{
+  selftests::register_test ("xml_escape_text",
+			    selftests::xml_utils::test_xml_escape_text);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unwind_stop_reasons.def ./gdb/unwind_stop_reasons.def
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/unwind_stop_reasons.def	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/unwind_stop_reasons.def	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/user-regs.c ./gdb/user-regs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/user-regs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/user-regs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* User visible, per-frame registers, for GDB, the GNU debugger.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat.
 
@@ -222,7 +222,7 @@ value_of_user_reg (int regnum, struct fr
 }
 
 static void
-maintenance_print_user_registers (char *args, int from_tty)
+maintenance_print_user_registers (const char *args, int from_tty)
 {
   struct gdbarch *gdbarch = get_current_arch ();
   struct gdb_user_regs *regs;
@@ -237,8 +237,6 @@ maintenance_print_user_registers (char *
     fprintf_unfiltered (gdb_stdout, " %-11s %3d\n", reg->name, regnum);
 }
 
-extern initialize_file_ftype _initialize_user_regs; /* -Wmissing-prototypes */
-
 void
 _initialize_user_regs (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/user-regs.h ./gdb/user-regs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/user-regs.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/user-regs.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Per-frame user registers, for GDB, the GNU debugger.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/utils.c ./gdb/utils.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/utils.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/utils.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* General utility routines for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -65,6 +65,11 @@
 #include "gdb_usleep.h"
 #include "interps.h"
 #include "gdb_regex.h"
+#include "job-control.h"
+#include "common/selftest.h"
+#include "common/gdb_optional.h"
+#include "cp-support.h"
+#include <algorithm>
 
 #if !HAVE_DECL_MALLOC
 extern PTR malloc ();		/* ARI: PTR */
@@ -102,10 +107,6 @@ static std::chrono::steady_clock::durati
 
 static int debug_timestamp = 0;
 
-/* Nonzero if we have job control.  */
-
-int job_control;
-
 /* Nonzero means that strings with character values >0x7F should be printed
    as octal escapes.  Zero means just print the value (e.g. it's an
    international character, and the terminal or window can cope.)  */
@@ -140,73 +141,6 @@ show_pagination_enabled (struct ui_file 
    "cleanup API".  */
 
 static void
-do_freeargv (void *arg)
-{
-  freeargv ((char **) arg);
-}
-
-struct cleanup *
-make_cleanup_freeargv (char **arg)
-{
-  return make_cleanup (do_freeargv, arg);
-}
-
-/* Helper function which does the work for make_cleanup_fclose.  */
-
-static void
-do_fclose_cleanup (void *arg)
-{
-  FILE *file = (FILE *) arg;
-
-  fclose (file);
-}
-
-/* Return a new cleanup that closes FILE.  */
-
-struct cleanup *
-make_cleanup_fclose (FILE *file)
-{
-  return make_cleanup (do_fclose_cleanup, file);
-}
-
-/* Helper function which does the work for make_cleanup_obstack_free.  */
-
-static void
-do_obstack_free (void *arg)
-{
-  struct obstack *ob = (struct obstack *) arg;
-
-  obstack_free (ob, NULL);
-}
-
-/* Return a new cleanup that frees OBSTACK.  */
-
-struct cleanup *
-make_cleanup_obstack_free (struct obstack *obstack)
-{
-  return make_cleanup (do_obstack_free, obstack);
-}
-
-/* Helper function for make_cleanup_ui_out_redirect_pop.  */
-
-static void
-do_ui_out_redirect_pop (void *arg)
-{
-  struct ui_out *uiout = (struct ui_out *) arg;
-
-  uiout->redirect (NULL);
-}
-
-/* Return a new cleanup that pops the last redirection by ui_out_redirect
-   with NULL parameter.  */
-
-struct cleanup *
-make_cleanup_ui_out_redirect_pop (struct ui_out *uiout)
-{
-  return make_cleanup (do_ui_out_redirect_pop, uiout);
-}
-
-static void
 do_free_section_addr_info (void *arg)
 {
   free_section_addr_info ((struct section_addr_info *) arg);
@@ -218,44 +152,6 @@ make_cleanup_free_section_addr_info (str
   return make_cleanup (do_free_section_addr_info, addrs);
 }
 
-struct restore_integer_closure
-{
-  int *variable;
-  int value;
-};
-
-static void
-restore_integer (void *p)
-{
-  struct restore_integer_closure *closure
-    = (struct restore_integer_closure *) p;
-
-  *(closure->variable) = closure->value;
-}
-
-/* Remember the current value of *VARIABLE and make it restored when
-   the cleanup is run.  */
-
-struct cleanup *
-make_cleanup_restore_integer (int *variable)
-{
-  struct restore_integer_closure *c = XNEW (struct restore_integer_closure);
-
-  c->variable = variable;
-  c->value = *variable;
-
-  return make_cleanup_dtor (restore_integer, (void *) c, xfree);
-}
-
-/* Remember the current value of *VARIABLE and make it restored when
-   the cleanup is run.  */
-
-struct cleanup *
-make_cleanup_restore_uinteger (unsigned int *variable)
-{
-  return make_cleanup_restore_integer ((int *) variable);
-}
-
 /* Helper for make_cleanup_unpush_target.  */
 
 static void
@@ -291,80 +187,6 @@ make_cleanup_value_free_to_mark (struct 
   return make_cleanup (do_value_free_to_mark, mark);
 }
 
-/* Helper for make_cleanup_value_free.  */
-
-static void
-do_value_free (void *value)
-{
-  value_free ((struct value *) value);
-}
-
-/* Free VALUE.  */
-
-struct cleanup *
-make_cleanup_value_free (struct value *value)
-{
-  return make_cleanup (do_value_free, value);
-}
-
-/* Helper for make_cleanup_free_so.  */
-
-static void
-do_free_so (void *arg)
-{
-  struct so_list *so = (struct so_list *) arg;
-
-  free_so (so);
-}
-
-/* Make cleanup handler calling free_so for SO.  */
-
-struct cleanup *
-make_cleanup_free_so (struct so_list *so)
-{
-  return make_cleanup (do_free_so, so);
-}
-
-/* Helper for make_cleanup_restore_current_language.  */
-
-static void
-do_restore_current_language (void *p)
-{
-  enum language saved_lang = (enum language) (uintptr_t) p;
-
-  set_language (saved_lang);
-}
-
-/* Remember the current value of CURRENT_LANGUAGE and make it restored when
-   the cleanup is run.  */
-
-struct cleanup *
-make_cleanup_restore_current_language (void)
-{
-  enum language saved_lang = current_language->la_language;
-
-  return make_cleanup (do_restore_current_language,
-		       (void *) (uintptr_t) saved_lang);
-}
-
-/* Helper function for make_cleanup_clear_parser_state.  */
-
-static void
-do_clear_parser_state (void *ptr)
-{
-  struct parser_state **p = (struct parser_state **) ptr;
-
-  *p = NULL;
-}
-
-/* Clean (i.e., set to NULL) the parser state variable P.  */
-
-struct cleanup *
-make_cleanup_clear_parser_state (struct parser_state **p)
-{
-  return make_cleanup (do_clear_parser_state, (void *) p);
-}
-
 /* This function is useful for cleanups.
    Do
 
@@ -403,12 +225,11 @@ vwarning (const char *string, va_list ar
     (*deprecated_warning_hook) (string, args);
   else
     {
-      struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
-
+      gdb::optional<target_terminal::scoped_restore_terminal_state> term_state;
       if (target_supports_terminal_ours ())
 	{
-	  make_cleanup_restore_target_terminal ();
-	  target_terminal_ours_for_output ();
+	  term_state.emplace ();
+	  target_terminal::ours_for_output ();
 	}
       if (filtered_printing_initialized ())
 	wrap_here ("");		/* Force out any buffered output.  */
@@ -417,8 +238,6 @@ vwarning (const char *string, va_list ar
 	fputs_unfiltered (warning_pre_print, gdb_stderr);
       vfprintf_unfiltered (gdb_stderr, string, args);
       fprintf_unfiltered (gdb_stderr, "\n");
-
-      do_cleanups (old_chain);
     }
 }
 
@@ -443,7 +262,7 @@ error_stream (const string_file &stream)
 static void ATTRIBUTE_NORETURN
 abort_with_message (const char *msg)
 {
-  if (gdb_stderr == NULL)
+  if (current_ui == NULL)
     fputs (msg, stderr);
   else
     fputs_unfiltered (msg, gdb_stderr);
@@ -559,8 +378,7 @@ internal_vproblem (struct internal_probl
   static int dejavu;
   int quit_p;
   int dump_core_p;
-  char *reason;
-  struct cleanup *cleanup = make_cleanup (null_cleanup, NULL);
+  std::string reason;
 
   /* Don't allow infinite error/warning recursion.  */
   {
@@ -593,29 +411,26 @@ internal_vproblem (struct internal_probl
      style similar to a compiler error message.  Include extra detail
      so that the user knows that they are living on the edge.  */
   {
-    char *msg;
-
-    msg = xstrvprintf (fmt, ap);
-    reason = xstrprintf ("%s:%d: %s: %s\n"
-			 "A problem internal to GDB has been detected,\n"
-			 "further debugging may prove unreliable.",
-			 file, line, problem->name, msg);
-    xfree (msg);
-    make_cleanup (xfree, reason);
+    std::string msg = string_vprintf (fmt, ap);
+    reason = string_printf ("%s:%d: %s: %s\n"
+			    "A problem internal to GDB has been detected,\n"
+			    "further debugging may prove unreliable.",
+			    file, line, problem->name, msg.c_str ());
   }
 
   /* Fall back to abort_with_message if gdb_stderr is not set up.  */
-  if (gdb_stderr == NULL)
+  if (current_ui == NULL)
     {
-      fputs (reason, stderr);
+      fputs (reason.c_str (), stderr);
       abort_with_message ("\n");
     }
 
   /* Try to get the message out and at the start of a new line.  */
+  gdb::optional<target_terminal::scoped_restore_terminal_state> term_state;
   if (target_supports_terminal_ours ())
     {
-      make_cleanup_restore_target_terminal ();
-      target_terminal_ours_for_output ();
+      term_state.emplace ();
+      target_terminal::ours_for_output ();
     }
   if (filtered_printing_initialized ())
     begin_line ();
@@ -624,7 +439,7 @@ internal_vproblem (struct internal_probl
   if (problem->should_quit != internal_problem_ask
       || !confirm
       || !filtered_printing_initialized ())
-    fprintf_unfiltered (gdb_stderr, "%s\n", reason);
+    fprintf_unfiltered (gdb_stderr, "%s\n", reason.c_str ());
 
   if (problem->should_quit == internal_problem_ask)
     {
@@ -634,7 +449,8 @@ internal_vproblem (struct internal_probl
       if (!confirm || !filtered_printing_initialized ())
 	quit_p = 1;
       else
-        quit_p = query (_("%s\nQuit this debugging session? "), reason);
+        quit_p = query (_("%s\nQuit this debugging session? "),
+			reason.c_str ());
     }
   else if (problem->should_quit == internal_problem_yes)
     quit_p = 1;
@@ -651,7 +467,7 @@ internal_vproblem (struct internal_probl
 
   if (problem->should_dump_core == internal_problem_ask)
     {
-      if (!can_dump_core_warn (LIMIT_MAX, reason))
+      if (!can_dump_core_warn (LIMIT_MAX, reason.c_str ()))
 	dump_core_p = 0;
       else if (!filtered_printing_initialized ())
 	dump_core_p = 1;
@@ -660,11 +476,12 @@ internal_vproblem (struct internal_probl
 	  /* Default (yes/batch case) is to dump core.  This leaves a GDB
 	     `dropping' so that it is easier to see that something went
 	     wrong in GDB.  */
-	  dump_core_p = query (_("%s\nCreate a core file of GDB? "), reason);
+	  dump_core_p = query (_("%s\nCreate a core file of GDB? "),
+			       reason.c_str ());
 	}
     }
   else if (problem->should_dump_core == internal_problem_yes)
-    dump_core_p = can_dump_core_warn (LIMIT_MAX, reason);
+    dump_core_p = can_dump_core_warn (LIMIT_MAX, reason.c_str ());
   else if (problem->should_dump_core == internal_problem_no)
     dump_core_p = 0;
   else
@@ -689,7 +506,6 @@ internal_vproblem (struct internal_probl
     }
 
   dejavu = 0;
-  do_cleanups (cleanup);
 }
 
 static struct internal_problem internal_error_problem = {
@@ -736,12 +552,12 @@ demangler_warning (const char *file, int
 /* Dummy functions to keep add_prefix_cmd happy.  */
 
 static void
-set_internal_problem_cmd (char *args, int from_tty)
+set_internal_problem_cmd (const char *args, int from_tty)
 {
 }
 
 static void
-show_internal_problem_cmd (char *args, int from_tty)
+show_internal_problem_cmd (const char *args, int from_tty)
 {
 }
 
@@ -779,14 +595,14 @@ add_internal_problem_command (struct int
   show_doc = xstrprintf (_("Show what GDB does when %s is detected."),
 			 problem->name);
 
-  add_prefix_cmd ((char*) problem->name,
+  add_prefix_cmd (problem->name,
 		  class_maintenance, set_internal_problem_cmd, set_doc,
 		  set_cmd_list,
 		  concat ("maintenance set ", problem->name, " ",
 			  (char *) NULL),
 		  0/*allow-unknown*/, &maintenance_set_cmdlist);
 
-  add_prefix_cmd ((char*) problem->name,
+  add_prefix_cmd (problem->name,
 		  class_maintenance, show_internal_problem_cmd, show_doc,
 		  show_cmd_list,
 		  concat ("maintenance show ", problem->name, " ",
@@ -841,23 +657,15 @@ add_internal_problem_command (struct int
 }
 
 /* Return a newly allocated string, containing the PREFIX followed
-   by the system error message for errno (separated by a colon).
-
-   The result must be deallocated after use.  */
+   by the system error message for errno (separated by a colon).  */
 
-static char *
+static std::string
 perror_string (const char *prefix)
 {
   char *err;
-  char *combined;
 
   err = safe_strerror (errno);
-  combined = (char *) xmalloc (strlen (err) + strlen (prefix) + 3);
-  strcpy (combined, prefix);
-  strcat (combined, ": ");
-  strcat (combined, err);
-
-  return combined;
+  return std::string (prefix) + ": " + err;
 }
 
 /* Print the system error message for errno, and also mention STRING
@@ -867,10 +675,7 @@ perror_string (const char *prefix)
 void
 throw_perror_with_name (enum errors errcode, const char *string)
 {
-  char *combined;
-
-  combined = perror_string (string);
-  make_cleanup (xfree, combined);
+  std::string combined = perror_string (string);
 
   /* I understand setting these is a matter of taste.  Still, some people
      may clear errno but not know about bfd_error.  Doing this here is not
@@ -878,7 +683,7 @@ throw_perror_with_name (enum errors errc
   bfd_set_error (bfd_error_no_error);
   errno = 0;
 
-  throw_error (errcode, _("%s."), combined);
+  throw_error (errcode, _("%s."), combined.c_str ());
 }
 
 /* See throw_perror_with_name, ERRCODE defaults here to GENERIC_ERROR.  */
@@ -895,11 +700,8 @@ perror_with_name (const char *string)
 void
 perror_warning_with_name (const char *string)
 {
-  char *combined;
-
-  combined = perror_string (string);
-  warning (_("%s"), combined);
-  xfree (combined);
+  std::string combined = perror_string (string);
+  warning (_("%s"), combined.c_str ());
 }
 
 /* Print the system error message for ERRCODE, and also mention STRING
@@ -928,8 +730,6 @@ print_sys_errmsg (const char *string, in
 void
 quit (void)
 {
-  struct ui *ui = current_ui;
-
   if (sync_quit_force_run)
     {
       sync_quit_force_run = 0;
@@ -1038,84 +838,42 @@ make_hex_string (const gdb_byte *data, s
 
 
 
-/* A cleanup function that calls regfree.  */
-
-static void
-do_regfree_cleanup (void *r)
-{
-  regfree ((regex_t *) r);
-}
-
-/* Create a new cleanup that frees the compiled regular expression R.  */
+/* An RAII class that sets up to handle input and then tears down
+   during destruction.  */
 
-struct cleanup *
-make_regfree_cleanup (regex_t *r)
+class scoped_input_handler
 {
-  return make_cleanup (do_regfree_cleanup, r);
-}
-
-/* Return an xmalloc'd error message resulting from a regular
-   expression compilation failure.  */
-
-char *
-get_regcomp_error (int code, regex_t *rx)
-{
-  size_t length = regerror (code, rx, NULL, 0);
-  char *result = (char *) xmalloc (length);
-
-  regerror (code, rx, result, length);
-  return result;
-}
-
-/* Compile a regexp and throw an exception on error.  This returns a
-   cleanup to free the resulting pattern on success.  RX must not be
-   NULL.  */
+public:
 
-struct cleanup *
-compile_rx_or_error (regex_t *pattern, const char *rx, const char *message)
-{
-  int code;
-
-  gdb_assert (rx != NULL);
-
-  code = regcomp (pattern, rx, REG_NOSUB);
-  if (code != 0)
-    {
-      char *err = get_regcomp_error (code, pattern);
-
-      make_cleanup (xfree, err);
-      error (("%s: %s"), message, err);
-    }
-
-  return make_regfree_cleanup (pattern);
-}
-
-/* A cleanup that simply calls ui_unregister_input_event_handler.  */
-
-static void
-ui_unregister_input_event_handler_cleanup (void *ui)
-{
-  ui_unregister_input_event_handler ((struct ui *) ui);
-}
+  scoped_input_handler ()
+    : m_quit_handler (&quit_handler, default_quit_handler),
+      m_ui (NULL)
+  {
+    target_terminal::ours ();
+    ui_register_input_event_handler (current_ui);
+    if (current_ui->prompt_state == PROMPT_BLOCKED)
+      m_ui = current_ui;
+  }
 
-/* Set up to handle input.  */
+  ~scoped_input_handler ()
+  {
+    if (m_ui != NULL)
+      ui_unregister_input_event_handler (m_ui);
+  }
 
-static struct cleanup *
-prepare_to_handle_input (void)
-{
-  struct cleanup *old_chain;
+  DISABLE_COPY_AND_ASSIGN (scoped_input_handler);
 
-  old_chain = make_cleanup_restore_target_terminal ();
-  target_terminal_ours ();
+private:
 
-  ui_register_input_event_handler (current_ui);
-  if (current_ui->prompt_state == PROMPT_BLOCKED)
-    make_cleanup (ui_unregister_input_event_handler_cleanup, current_ui);
+  /* Save and restore the terminal state.  */
+  target_terminal::scoped_restore_terminal_state m_term_state;
 
-  make_cleanup_override_quit_handler (default_quit_handler);
+  /* Save and restore the quit handler.  */
+  scoped_restore_tmpl<quit_handler_ftype *> m_quit_handler;
 
-  return old_chain;
-}
+  /* The saved UI, if non-NULL.  */
+  struct ui *m_ui;
+};
 
 
 
@@ -1132,13 +890,10 @@ prepare_to_handle_input (void)
 static int ATTRIBUTE_PRINTF (1, 0)
 defaulted_query (const char *ctlstr, const char defchar, va_list args)
 {
-  int ans2;
   int retval;
   int def_value;
   char def_answer, not_def_answer;
   const char *y_string, *n_string;
-  char *question, *prompt;
-  struct cleanup *old_chain;
 
   /* Set up according to which answer is the default.  */
   if (defchar == '\0')
@@ -1180,9 +935,8 @@ defaulted_query (const char *ctlstr, con
       /* Restrict queries to the main UI.  */
       || current_ui != main_ui)
     {
-      old_chain = make_cleanup_restore_target_terminal ();
-
-      target_terminal_ours_for_output ();
+      target_terminal::scoped_restore_terminal_state term_state;
+      target_terminal::ours_for_output ();
       wrap_here ("");
       vfprintf_filtered (gdb_stdout, ctlstr, args);
 
@@ -1191,42 +945,36 @@ defaulted_query (const char *ctlstr, con
 		       y_string, n_string, def_answer);
       gdb_flush (gdb_stdout);
 
-      do_cleanups (old_chain);
       return def_value;
     }
 
   if (deprecated_query_hook)
     {
-      int res;
-
-      old_chain = make_cleanup_restore_target_terminal ();
-      res = deprecated_query_hook (ctlstr, args);
-      do_cleanups (old_chain);
-      return res;
+      target_terminal::scoped_restore_terminal_state term_state;
+      return deprecated_query_hook (ctlstr, args);
     }
 
   /* Format the question outside of the loop, to avoid reusing args.  */
-  question = xstrvprintf (ctlstr, args);
-  old_chain = make_cleanup (xfree, question);
-  prompt = xstrprintf (_("%s%s(%s or %s) %s"),
-		      annotation_level > 1 ? "\n\032\032pre-query\n" : "",
-		      question, y_string, n_string,
-		      annotation_level > 1 ? "\n\032\032query\n" : "");
-  make_cleanup (xfree, prompt);
+  std::string question = string_vprintf (ctlstr, args);
+  std::string prompt
+    = string_printf (_("%s%s(%s or %s) %s"),
+		     annotation_level > 1 ? "\n\032\032pre-query\n" : "",
+		     question.c_str (), y_string, n_string,
+		     annotation_level > 1 ? "\n\032\032query\n" : "");
 
   /* Used to add duration we waited for user to respond to
      prompt_for_continue_wait_time.  */
   using namespace std::chrono;
   steady_clock::time_point prompt_started = steady_clock::now ();
 
-  prepare_to_handle_input ();
+  scoped_input_handler prepare_input;
 
   while (1)
     {
       char *response, answer;
 
       gdb_flush (gdb_stdout);
-      response = gdb_readline_wrapper (prompt);
+      response = gdb_readline_wrapper (prompt.c_str ());
 
       if (response == NULL)	/* C-d  */
 	{
@@ -1266,7 +1014,6 @@ defaulted_query (const char *ctlstr, con
 
   if (annotation_level > 1)
     printf_filtered (("\n\032\032post-query\n"));
-  do_cleanups (old_chain);
   return retval;
 }
 
@@ -1332,13 +1079,10 @@ query (const char *ctlstr, ...)
 static int
 host_char_to_target (struct gdbarch *gdbarch, int c, int *target_c)
 {
-  struct obstack host_data;
   char the_char = c;
-  struct cleanup *cleanups;
   int result = 0;
 
-  obstack_init (&host_data);
-  cleanups = make_cleanup_obstack_free (&host_data);
+  auto_obstack host_data;
 
   convert_between_encodings (target_charset (gdbarch), host_charset (),
 			     (gdb_byte *) &the_char, 1, 1,
@@ -1350,7 +1094,6 @@ host_char_to_target (struct gdbarch *gdb
       *target_c = *(char *) obstack_base (&host_data);
     }
 
-  do_cleanups (cleanups);
   return result;
 }
 
@@ -1658,42 +1401,23 @@ filtered_printing_initialized (void)
   return wrap_buffer != NULL;
 }
 
-/* Helper for make_cleanup_restore_page_info.  */
-
-static void
-do_restore_page_info_cleanup (void *arg)
-{
-  set_screen_size ();
-  set_width ();
-}
-
-/* Provide cleanup for restoring the terminal size.  */
-
-struct cleanup *
-make_cleanup_restore_page_info (void)
+set_batch_flag_and_restore_page_info::set_batch_flag_and_restore_page_info ()
+  : m_save_lines_per_page (lines_per_page),
+    m_save_chars_per_line (chars_per_line),
+    m_save_batch_flag (batch_flag)
 {
-  struct cleanup *back_to;
-
-  back_to = make_cleanup (do_restore_page_info_cleanup, NULL);
-  make_cleanup_restore_uinteger (&lines_per_page);
-  make_cleanup_restore_uinteger (&chars_per_line);
-
-  return back_to;
+  batch_flag = 1;
+  init_page_info ();
 }
 
-/* Temporarily set BATCH_FLAG and the associated unlimited terminal size.
-   Provide cleanup for restoring the original state.  */
-
-struct cleanup *
-set_batch_flag_and_make_cleanup_restore_page_info (void)
+set_batch_flag_and_restore_page_info::~set_batch_flag_and_restore_page_info ()
 {
-  struct cleanup *back_to = make_cleanup_restore_page_info ();
-  
-  make_cleanup_restore_integer (&batch_flag);
-  batch_flag = 1;
-  init_page_info ();
+  batch_flag = m_save_batch_flag;
+  chars_per_line = m_save_chars_per_line;
+  lines_per_page = m_save_lines_per_page;
 
-  return back_to;
+  set_screen_size ();
+  set_width ();
 }
 
 /* Set the screen size based on LINES_PER_PAGE and CHARS_PER_LINE.  */
@@ -1734,14 +1458,14 @@ set_width (void)
 }
 
 static void
-set_width_command (char *args, int from_tty, struct cmd_list_element *c)
+set_width_command (const char *args, int from_tty, struct cmd_list_element *c)
 {
   set_screen_size ();
   set_width ();
 }
 
 static void
-set_height_command (char *args, int from_tty, struct cmd_list_element *c)
+set_height_command (const char *args, int from_tty, struct cmd_list_element *c)
 {
   set_screen_size ();
 }
@@ -1787,7 +1511,7 @@ prompt_for_continue (void)
      beyond the end of the screen.  */
   reinitialize_more_filter ();
 
-  prepare_to_handle_input ();
+  scoped_input_handler prepare_input;
 
   /* Call gdb_readline_wrapper, not readline, in order to keep an
      event loop running.  */
@@ -2230,13 +1954,8 @@ static void
 vfprintf_maybe_filtered (struct ui_file *stream, const char *format,
 			 va_list args, int filter)
 {
-  char *linebuffer;
-  struct cleanup *old_cleanups;
-
-  linebuffer = xstrvprintf (format, args);
-  old_cleanups = make_cleanup (xfree, linebuffer);
-  fputs_maybe_filtered (linebuffer, stream, filter);
-  do_cleanups (old_cleanups);
+  std::string linebuffer = string_vprintf (format, args);
+  fputs_maybe_filtered (linebuffer.c_str (), stream, filter);
 }
 
 
@@ -2249,11 +1968,7 @@ vfprintf_filtered (struct ui_file *strea
 void
 vfprintf_unfiltered (struct ui_file *stream, const char *format, va_list args)
 {
-  char *linebuffer;
-  struct cleanup *old_cleanups;
-
-  linebuffer = xstrvprintf (format, args);
-  old_cleanups = make_cleanup (xfree, linebuffer);
+  std::string linebuffer = string_vprintf (format, args);
   if (debug_timestamp && stream == gdb_stdlog)
     {
       using namespace std::chrono;
@@ -2263,18 +1978,18 @@ vfprintf_unfiltered (struct ui_file *str
       seconds s = duration_cast<seconds> (now.time_since_epoch ());
       microseconds us = duration_cast<microseconds> (now.time_since_epoch () - s);
 
-      len = strlen (linebuffer);
+      len = linebuffer.size ();
       need_nl = (len > 0 && linebuffer[len - 1] != '\n');
 
       std::string timestamp = string_printf ("%ld.%06ld %s%s",
 					     (long) s.count (),
 					     (long) us.count (),
-					     linebuffer, need_nl ? "\n": "");
+					     linebuffer.c_str (),
+					     need_nl ? "\n": "");
       fputs_unfiltered (timestamp.c_str (), stream);
     }
   else
-    fputs_unfiltered (linebuffer, stream);
-  do_cleanups (old_cleanups);
+    fputs_unfiltered (linebuffer.c_str (), stream);
 }
 
 void
@@ -2440,41 +2155,369 @@ fprintf_symbol_filtered (struct ui_file 
     }
 }
 
-/* Do a strcmp() type operation on STRING1 and STRING2, ignoring any
-   differences in whitespace.  Returns 0 if they match, non-zero if they
-   don't (slightly different than strcmp()'s range of return values).
-
-   As an extra hack, string1=="FOO(ARGS)" matches string2=="FOO".
-   This "feature" is useful when searching for matching C++ function names
-   (such as if the user types 'break FOO', where FOO is a mangled C++
-   function).  */
+/* True if CH is a character that can be part of a symbol name.  I.e.,
+   either a number, a letter, or a '_'.  */
 
-int
-strcmp_iw (const char *string1, const char *string2)
+static bool
+valid_identifier_name_char (int ch)
+{
+  return (isalnum (ch) || ch == '_');
+}
+
+/* Skip to end of token, or to END, whatever comes first.  Input is
+   assumed to be a C++ operator name.  */
+
+static const char *
+cp_skip_operator_token (const char *token, const char *end)
 {
-  while ((*string1 != '\0') && (*string2 != '\0'))
+  const char *p = token;
+  while (p != end && !isspace (*p) && *p != '(')
     {
-      while (isspace (*string1))
+      if (valid_identifier_name_char (*p))
 	{
-	  string1++;
+	  while (p != end && valid_identifier_name_char (*p))
+	    p++;
+	  return p;
+	}
+      else
+	{
+	  /* Note, ordered such that among ops that share a prefix,
+	     longer comes first.  This is so that the loop below can
+	     bail on first match.  */
+	  static const char *ops[] =
+	    {
+	      "[",
+	      "]",
+	      "~",
+	      ",",
+	      "-=", "--", "->", "-",
+	      "+=", "++", "+",
+	      "*=", "*",
+	      "/=", "/",
+	      "%=", "%",
+	      "|=", "||", "|",
+	      "&=", "&&", "&",
+	      "^=", "^",
+	      "!=", "!",
+	      "<<=", "<=", "<<", "<",
+	      ">>=", ">=", ">>", ">",
+	      "==", "=",
+	    };
+
+	  for (const char *op : ops)
+	    {
+	      size_t oplen = strlen (op);
+	      size_t lencmp = std::min<size_t> (oplen, end - p);
+
+	      if (strncmp (p, op, lencmp) == 0)
+		return p + lencmp;
+	    }
+	  /* Some unidentified character.  Return it.  */
+	  return p + 1;
+	}
+    }
+
+  return p;
+}
+
+/* Advance STRING1/STRING2 past whitespace.  */
+
+static void
+skip_ws (const char *&string1, const char *&string2, const char *end_str2)
+{
+  while (isspace (*string1))
+    string1++;
+  while (string2 < end_str2 && isspace (*string2))
+    string2++;
+}
+
+/* True if STRING points at the start of a C++ operator name.  START
+   is the start of the string that STRING points to, hence when
+   reading backwards, we must not read any character before START.  */
+
+static bool
+cp_is_operator (const char *string, const char *start)
+{
+  return ((string == start
+	   || !valid_identifier_name_char (string[-1]))
+	  && strncmp (string, CP_OPERATOR_STR, CP_OPERATOR_LEN) == 0
+	  && !valid_identifier_name_char (string[CP_OPERATOR_LEN]));
+}
+
+/* If *NAME points at an ABI tag, skip it and return true.  Otherwise
+   leave *NAME unmodified and return false.  (see GCC's abi_tag
+   attribute), such names are demangled as e.g.,
+   "function[abi:cxx11]()".  */
+
+static bool
+skip_abi_tag (const char **name)
+{
+  const char *p = *name;
+
+  if (startswith (p, "[abi:"))
+    {
+      p += 5;
+
+      while (valid_identifier_name_char (*p))
+	p++;
+
+      if (*p == ']')
+	{
+	  p++;
+	  *name = p;
+	  return true;
+	}
+    }
+  return false;
+}
+
+/* See utils.h.  */
+
+int
+strncmp_iw_with_mode (const char *string1, const char *string2,
+		      size_t string2_len, strncmp_iw_mode mode,
+		      enum language language,
+		      completion_match_for_lcd *match_for_lcd)
+{
+  const char *string1_start = string1;
+  const char *end_str2 = string2 + string2_len;
+  bool skip_spaces = true;
+  bool have_colon_op = (language == language_cplus
+			|| language == language_rust
+			|| language == language_fortran);
+
+  while (1)
+    {
+      if (skip_spaces
+	  || ((isspace (*string1) && !valid_identifier_name_char (*string2))
+	      || (isspace (*string2) && !valid_identifier_name_char (*string1))))
+	{
+	  skip_ws (string1, string2, end_str2);
+	  skip_spaces = false;
 	}
-      while (isspace (*string2))
+
+      /* Skip [abi:cxx11] tags in the symbol name if the lookup name
+	 doesn't include them.  E.g.:
+
+	 string1: function[abi:cxx1](int)
+	 string2: function
+
+	 string1: function[abi:cxx1](int)
+	 string2: function(int)
+
+	 string1: Struct[abi:cxx1]::function()
+	 string2: Struct::function()
+
+	 string1: function(Struct[abi:cxx1], int)
+	 string2: function(Struct, int)
+      */
+      if (string2 == end_str2
+	  || (*string2 != '[' && !valid_identifier_name_char (*string2)))
 	{
+	  const char *abi_start = string1;
+
+	  /* There can be more than one tag.  */
+	  while (*string1 == '[' && skip_abi_tag (&string1))
+	    ;
+
+	  if (match_for_lcd != NULL && abi_start != string1)
+	    match_for_lcd->mark_ignored_range (abi_start, string1);
+
+	  while (isspace (*string1))
+	    string1++;
+	}
+
+      if (*string1 == '\0' || string2 == end_str2)
+	break;
+
+      /* Handle the :: operator.  */
+      if (have_colon_op && string1[0] == ':' && string1[1] == ':')
+	{
+	  if (*string2 != ':')
+	    return 1;
+
+	  string1++;
 	  string2++;
+
+	  if (string2 == end_str2)
+	    break;
+
+	  if (*string2 != ':')
+	    return 1;
+
+	  string1++;
+	  string2++;
+
+	  while (isspace (*string1))
+	    string1++;
+	  while (string2 < end_str2 && isspace (*string2))
+	    string2++;
+	  continue;
 	}
+
+      /* Handle C++ user-defined operators.  */
+      else if (language == language_cplus
+	       && *string1 == 'o')
+	{
+	  if (cp_is_operator (string1, string1_start))
+	    {
+	      /* An operator name in STRING1.  Check STRING2.  */
+	      size_t cmplen
+		= std::min<size_t> (CP_OPERATOR_LEN, end_str2 - string2);
+	      if (strncmp (string1, string2, cmplen) != 0)
+		return 1;
+
+	      string1 += cmplen;
+	      string2 += cmplen;
+
+	      if (string2 != end_str2)
+		{
+		  /* Check for "operatorX" in STRING2.  */
+		  if (valid_identifier_name_char (*string2))
+		    return 1;
+
+		  skip_ws (string1, string2, end_str2);
+		}
+
+	      /* Handle operator().  */
+	      if (*string1 == '(')
+		{
+		  if (string2 == end_str2)
+		    {
+		      if (mode == strncmp_iw_mode::NORMAL)
+			return 0;
+		      else
+			{
+			  /* Don't break for the regular return at the
+			     bottom, because "operator" should not
+			     match "operator()", since this open
+			     parentheses is not the parameter list
+			     start.  */
+			  return *string1 != '\0';
+			}
+		    }
+
+		  if (*string1 != *string2)
+		    return 1;
+
+		  string1++;
+		  string2++;
+		}
+
+	      while (1)
+		{
+		  skip_ws (string1, string2, end_str2);
+
+		  /* Skip to end of token, or to END, whatever comes
+		     first.  */
+		  const char *end_str1 = string1 + strlen (string1);
+		  const char *p1 = cp_skip_operator_token (string1, end_str1);
+		  const char *p2 = cp_skip_operator_token (string2, end_str2);
+
+		  cmplen = std::min (p1 - string1, p2 - string2);
+		  if (p2 == end_str2)
+		    {
+		      if (strncmp (string1, string2, cmplen) != 0)
+			return 1;
+		    }
+		  else
+		    {
+		      if (p1 - string1 != p2 - string2)
+			return 1;
+		      if (strncmp (string1, string2, cmplen) != 0)
+			return 1;
+		    }
+
+		  string1 += cmplen;
+		  string2 += cmplen;
+
+		  if (*string1 == '\0' || string2 == end_str2)
+		    break;
+		  if (*string1 == '(' || *string2 == '(')
+		    break;
+		}
+
+	      continue;
+	    }
+	}
+
       if (case_sensitivity == case_sensitive_on && *string1 != *string2)
 	break;
       if (case_sensitivity == case_sensitive_off
 	  && (tolower ((unsigned char) *string1)
 	      != tolower ((unsigned char) *string2)))
 	break;
-      if (*string1 != '\0')
-	{
-	  string1++;
-	  string2++;
+
+      /* If we see any non-whitespace, non-identifier-name character
+	 (any of "()<>*&" etc.), then skip spaces the next time
+	 around.  */
+      if (!isspace (*string1) && !valid_identifier_name_char (*string1))
+	skip_spaces = true;
+
+      string1++;
+      string2++;
+    }
+
+  if (string2 == end_str2)
+    {
+      if (mode == strncmp_iw_mode::NORMAL)
+	{
+	  /* Strip abi tag markers from the matched symbol name.
+	     Usually the ABI marker will be found on function name
+	     (automatically added because the function returns an
+	     object marked with an ABI tag).  However, it's also
+	     possible to see a marker in one of the function
+	     parameters, for example.
+
+	     string2 (lookup name):
+	       func
+	     symbol name:
+	       function(some_struct[abi:cxx11], int)
+
+	     and for completion LCD computation we want to say that
+	     the match was for:
+	       function(some_struct, int)
+	  */
+	  if (match_for_lcd != NULL)
+	    {
+	      while ((string1 = strstr (string1, "[abi:")) != NULL)
+		{
+		  const char *abi_start = string1;
+
+		  /* There can be more than one tag.  */
+		  while (skip_abi_tag (&string1) && *string1 == '[')
+		    ;
+
+		  if (abi_start != string1)
+		    match_for_lcd->mark_ignored_range (abi_start, string1);
+		}
+	    }
+
+	  return 0;
 	}
+      else
+	return (*string1 != '\0' && *string1 != '(');
     }
-  return (*string1 != '\0' && *string1 != '(') || (*string2 != '\0');
+  else
+    return 1;
+}
+
+/* See utils.h.  */
+
+int
+strncmp_iw (const char *string1, const char *string2, size_t string2_len)
+{
+  return strncmp_iw_with_mode (string1, string2, string2_len,
+			       strncmp_iw_mode::NORMAL, language_minimal);
+}
+
+/* See utils.h.  */
+
+int
+strcmp_iw (const char *string1, const char *string2)
+{
+  return strncmp_iw_with_mode (string1, string2, strlen (string2),
+			       strncmp_iw_mode::MATCH_PARAMS, language_minimal);
 }
 
 /* This is like strcmp except that it ignores whitespace and treats
@@ -2681,6 +2724,23 @@ When set, debugging messages will be mar
 			   &setdebuglist, &showdebuglist);
 }
 
+/* See utils.h.  */
+
+CORE_ADDR
+address_significant (gdbarch *gdbarch, CORE_ADDR addr)
+{
+  /* Truncate address to the significant bits of a target address,
+     avoiding shifts larger or equal than the width of a CORE_ADDR.
+     The local variable ADDR_BIT stops the compiler reporting a shift
+     overflow when it won't occur.  */
+  int addr_bit = gdbarch_significant_addr_bit (gdbarch);
+
+  if (addr_bit < (sizeof (CORE_ADDR) * HOST_CHAR_BIT))
+    addr &= ((CORE_ADDR) 1 << addr_bit) - 1;
+
+  return addr;
+}
+
 const char *
 paddress (struct gdbarch *gdbarch, CORE_ADDR addr)
 {
@@ -2778,7 +2838,7 @@ string_to_core_addr (const char *my_stri
   return addr;
 }
 
-char *
+gdb::unique_xmalloc_ptr<char>
 gdb_realpath (const char *filename)
 {
 /* On most hosts, we rely on canonicalize_file_name to compute
@@ -2814,36 +2874,71 @@ gdb_realpath (const char *filename)
        we might not be able to display the original casing in a given
        path.  */
     if (len > 0 && len < MAX_PATH)
-      return xstrdup (buf);
+      return gdb::unique_xmalloc_ptr<char> (xstrdup (buf));
   }
 #else
   {
     char *rp = canonicalize_file_name (filename);
 
     if (rp != NULL)
-      return rp;
+      return gdb::unique_xmalloc_ptr<char> (rp);
   }
 #endif
 
   /* This system is a lost cause, just dup the buffer.  */
-  return xstrdup (filename);
+  return gdb::unique_xmalloc_ptr<char> (xstrdup (filename));
+}
+
+#if GDB_SELF_TEST
+
+static void
+gdb_realpath_check_trailer (const char *input, const char *trailer)
+{
+  gdb::unique_xmalloc_ptr<char> result = gdb_realpath (input);
+
+  size_t len = strlen (result.get ());
+  size_t trail_len = strlen (trailer);
+
+  SELF_CHECK (len >= trail_len
+	      && strcmp (result.get () + len - trail_len, trailer) == 0);
 }
 
+static void
+gdb_realpath_tests ()
+{
+  /* A file which contains a directory prefix.  */
+  gdb_realpath_check_trailer ("./xfullpath.exp", "/xfullpath.exp");
+  /* A file which contains a directory prefix.  */
+  gdb_realpath_check_trailer ("../../defs.h", "/defs.h");
+  /* A one-character filename.  */
+  gdb_realpath_check_trailer ("./a", "/a");
+  /* A file in the root directory.  */
+  gdb_realpath_check_trailer ("/root_file_which_should_exist",
+			      "/root_file_which_should_exist");
+  /* A file which does not have a directory prefix.  */
+  gdb_realpath_check_trailer ("xfullpath.exp", "xfullpath.exp");
+  /* A one-char filename without any directory prefix.  */
+  gdb_realpath_check_trailer ("a", "a");
+  /* An empty filename.  */
+  gdb_realpath_check_trailer ("", "");
+}
+
+#endif /* GDB_SELF_TEST */
+
 /* Return a copy of FILENAME, with its directory prefix canonicalized
    by gdb_realpath.  */
 
-char *
+gdb::unique_xmalloc_ptr<char>
 gdb_realpath_keepfile (const char *filename)
 {
   const char *base_name = lbasename (filename);
   char *dir_name;
-  char *real_path;
   char *result;
 
   /* Extract the basename of filename, and return immediately 
      a copy of filename if it does not contain any directory prefix.  */
   if (base_name == filename)
-    return xstrdup (filename);
+    return gdb::unique_xmalloc_ptr<char> (xstrdup (filename));
 
   dir_name = (char *) alloca ((size_t) (base_name - filename + 2));
   /* Allocate enough space to store the dir_name + plus one extra
@@ -2865,40 +2960,37 @@ gdb_realpath_keepfile (const char *filen
   /* Canonicalize the directory prefix, and build the resulting
      filename.  If the dirname realpath already contains an ending
      directory separator, avoid doubling it.  */
-  real_path = gdb_realpath (dir_name);
+  gdb::unique_xmalloc_ptr<char> path_storage = gdb_realpath (dir_name);
+  const char *real_path = path_storage.get ();
   if (IS_DIR_SEPARATOR (real_path[strlen (real_path) - 1]))
     result = concat (real_path, base_name, (char *) NULL);
   else
     result = concat (real_path, SLASH_STRING, base_name, (char *) NULL);
 
-  xfree (real_path);
-  return result;
+  return gdb::unique_xmalloc_ptr<char> (result);
 }
 
 /* Return PATH in absolute form, performing tilde-expansion if necessary.
    PATH cannot be NULL or the empty string.
-   This does not resolve symlinks however, use gdb_realpath for that.
-   Space for the result is allocated with malloc.
-   If the path is already absolute, it is strdup'd.
-   If there is a problem computing the absolute path, the path is returned
-   unchanged (still strdup'd).  */
+   This does not resolve symlinks however, use gdb_realpath for that.  */
 
-char *
+gdb::unique_xmalloc_ptr<char>
 gdb_abspath (const char *path)
 {
   gdb_assert (path != NULL && path[0] != '\0');
 
   if (path[0] == '~')
-    return tilde_expand (path);
+    return gdb::unique_xmalloc_ptr<char> (tilde_expand (path));
 
   if (IS_ABSOLUTE_PATH (path))
-    return xstrdup (path);
+    return gdb::unique_xmalloc_ptr<char> (xstrdup (path));
 
   /* Beware the // my son, the Emacs barfs, the botch that catch...  */
-  return concat (current_directory,
-	    IS_DIR_SEPARATOR (current_directory[strlen (current_directory) - 1])
-		 ? "" : SLASH_STRING,
-		 path, (char *) NULL);
+  return gdb::unique_xmalloc_ptr<char>
+    (concat (current_directory,
+	     IS_DIR_SEPARATOR (current_directory[strlen (current_directory) - 1])
+	     ? "" : SLASH_STRING,
+	     path, (char *) NULL));
 }
 
 ULONGEST
@@ -2967,19 +3059,18 @@ ldirname (const char *filename)
   return dirname;
 }
 
-/* Call libiberty's buildargv, and return the result.
-   If buildargv fails due to out-of-memory, call nomem.
-   Therefore, the returned value is guaranteed to be non-NULL,
-   unless the parameter itself is NULL.  */
+/* See utils.h.  */
 
-char **
-gdb_buildargv (const char *s)
+void
+gdb_argv::reset (const char *s)
 {
   char **argv = buildargv (s);
 
   if (s != NULL && argv == NULL)
     malloc_failure (0);
-  return argv;
+
+  freeargv (m_argv);
+  m_argv = argv;
 }
 
 int
@@ -3079,60 +3170,6 @@ make_bpstat_clear_actions_cleanup (void)
   return make_cleanup (do_bpstat_clear_actions_cleanup, NULL);
 }
 
-/* Check for GCC >= 4.x according to the symtab->producer string.  Return minor
-   version (x) of 4.x in such case.  If it is not GCC or it is GCC older than
-   4.x return -1.  If it is GCC 5.x or higher return INT_MAX.  */
-
-int
-producer_is_gcc_ge_4 (const char *producer)
-{
-  int major, minor;
-
-  if (! producer_is_gcc (producer, &major, &minor))
-    return -1;
-  if (major < 4)
-    return -1;
-  if (major > 4)
-    return INT_MAX;
-  return minor;
-}
-
-/* Returns nonzero if the given PRODUCER string is GCC and sets the MAJOR
-   and MINOR versions when not NULL.  Returns zero if the given PRODUCER
-   is NULL or it isn't GCC.  */
-
-int
-producer_is_gcc (const char *producer, int *major, int *minor)
-{
-  const char *cs;
-
-  if (producer != NULL && startswith (producer, "GNU "))
-    {
-      int maj, min;
-
-      if (major == NULL)
-	major = &maj;
-      if (minor == NULL)
-	minor = &min;
-
-      /* Skip any identifier after "GNU " - such as "C11" or "C++".
-	 A full producer string might look like:
-	 "GNU C 4.7.2"
-	 "GNU Fortran 4.8.2 20140120 (Red Hat 4.8.2-16) -mtune=generic ..."
-	 "GNU C++14 5.0.0 20150123 (experimental)"
-      */
-      cs = &producer[strlen ("GNU ")];
-      while (*cs && !isspace (*cs))
-        cs++;
-      if (*cs && isspace (*cs))
-        cs++;
-      if (sscanf (cs, "%d.%d", major, minor) == 2)
-	return 1;
-    }
-
-  /* Not recognized as GCC.  */
-  return 0;
-}
 
 /* Helper for make_cleanup_free_char_ptr_vec.  */
 
@@ -3394,13 +3431,14 @@ strip_leading_path_elements (const char 
   return p;
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_utils;
-
 void
 _initialize_utils (void)
 {
   add_internal_problem_command (&internal_error_problem);
   add_internal_problem_command (&internal_warning_problem);
   add_internal_problem_command (&demangler_warning_problem);
+
+#if GDB_SELF_TEST
+  selftests::register_test ("gdb_realpath", gdb_realpath_tests);
+#endif
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/utils.h ./gdb/utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/utils.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/utils.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* *INDENT-OFF* */ /* ATTRIBUTE_PRINTF confuses indent, avoid running it
 		      for now.  */
 /* I/O, string, cleanup, and other random utilities for GDB.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -31,7 +31,61 @@ extern void initialize_utils (void);
 
 extern int sevenbit_strings;
 
-extern int strcmp_iw (const char *, const char *);
+/* Modes of operation for strncmp_iw_with_mode.  */
+
+enum class strncmp_iw_mode
+{
+/* Do a strcmp() type operation on STRING1 and STRING2, ignoring any
+   differences in whitespace.  Returns 0 if they match, non-zero if
+   they don't (slightly different than strcmp()'s range of return
+   values).  */
+  NORMAL,
+
+  /* Like NORMAL, but also apply the strcmp_iw hack.  I.e.,
+     string1=="FOO(PARAMS)" matches string2=="FOO".  */
+  MATCH_PARAMS,
+};
+
+/* Helper for strcmp_iw and strncmp_iw.  Exported so that languages
+   can implement both NORMAL and MATCH_PARAMS variants in a single
+   function and defer part of the work to strncmp_iw_with_mode.
+
+   LANGUAGE is used to implement some context-sensitive
+   language-specific comparisons.  For example, for C++,
+   "string1=operator()" should not match "string2=operator" even in
+   MATCH_PARAMS mode.
+
+   MATCH_FOR_LCD is passed down so that the function can mark parts of
+   the symbol name as ignored for completion matching purposes (e.g.,
+   to handle abi tags).  */
+extern int strncmp_iw_with_mode
+  (const char *string1, const char *string2, size_t string2_len,
+   strncmp_iw_mode mode, enum language language,
+   completion_match_for_lcd *match_for_lcd = NULL);
+
+/* Do a strncmp() type operation on STRING1 and STRING2, ignoring any
+   differences in whitespace.  STRING2_LEN is STRING2's length.
+   Returns 0 if STRING1 matches STRING2_LEN characters of STRING2,
+   non-zero otherwise (slightly different than strncmp()'s range of
+   return values).  Note: passes language_minimal to
+   strncmp_iw_with_mode, and should therefore be avoided if a more
+   suitable language is available.  */
+extern int strncmp_iw (const char *string1, const char *string2,
+		       size_t string2_len);
+
+/* Do a strcmp() type operation on STRING1 and STRING2, ignoring any
+   differences in whitespace.  Returns 0 if they match, non-zero if
+   they don't (slightly different than strcmp()'s range of return
+   values).
+
+   As an extra hack, string1=="FOO(ARGS)" matches string2=="FOO".
+   This "feature" is useful when searching for matching C++ function
+   names (such as if the user types 'break FOO', where FOO is a
+   mangled C++ function).
+
+   Note: passes language_minimal to strncmp_iw_with_mode, and should
+   therefore be avoided if a more suitable language is available.  */
+extern int strcmp_iw (const char *string1, const char *string2);
 
 extern int strcmp_iw_ordered (const char *, const char *);
 
@@ -42,6 +96,14 @@ extern int subset_compare (const char *,
 int compare_positive_ints (const void *ap, const void *bp);
 int compare_strings (const void *ap, const void *bp);
 
+/* Compare C strings for std::sort.  */
+
+static inline bool
+compare_cstrings (const char *str1, const char *str2)
+{
+  return strcmp (str1, str2) < 0;
+}
+
 /* 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
@@ -60,40 +122,136 @@ extern int parse_pid_to_attach (const ch
 
 extern int parse_escape (struct gdbarch *, const char **);
 
-char **gdb_buildargv (const char *);
-
-/* Cleanup utilities.  */
+/* A wrapper for an array of char* that was allocated in the way that
+   'buildargv' does, and should be freed with 'freeargv'.  */
+
+class gdb_argv
+{
+public:
 
-extern struct cleanup *make_cleanup_freeargv (char **);
+  /* A constructor that initializes to NULL.  */
 
-struct ui_out;
-extern struct cleanup *
-  make_cleanup_ui_out_redirect_pop (struct ui_out *uiout);
+  gdb_argv ()
+    : m_argv (NULL)
+  {
+  }
 
-struct section_addr_info;
-extern struct cleanup *(make_cleanup_free_section_addr_info 
-                        (struct section_addr_info *));
+  /* A constructor that calls buildargv on STR.  STR may be NULL, in
+     which case this object is initialized with a NULL array.  If
+     buildargv fails due to out-of-memory, call malloc_failure.
+     Therefore, the value is guaranteed to be non-NULL, unless the
+     parameter itself is NULL.  */
 
-/* For make_cleanup_close see common/filestuff.h.  */
+  explicit gdb_argv (const char *str)
+    : m_argv (NULL)
+  {
+    reset (str);
+  }
+
+  /* A constructor that takes ownership of an existing array.  */
+
+  explicit gdb_argv (char **array)
+    : m_argv (array)
+  {
+  }
+
+  gdb_argv (const gdb_argv &) = delete;
+  gdb_argv &operator= (const gdb_argv &) = delete;
+
+  ~gdb_argv ()
+  {
+    freeargv (m_argv);
+  }
+
+  /* Call buildargv on STR, storing the result in this object.  Any
+     previous state is freed.  STR may be NULL, in which case this
+     object is reset with a NULL array.  If buildargv fails due to
+     out-of-memory, call malloc_failure.  Therefore, the value is
+     guaranteed to be non-NULL, unless the parameter itself is
+     NULL.  */
+
+  void reset (const char *str);
+
+  /* Return the underlying array.  */
+
+  char **get ()
+  {
+    return m_argv;
+  }
+
+  /* Return the underlying array, transferring ownership to the
+     caller.  */
+
+  char **release ()
+  {
+    char **result = m_argv;
+    m_argv = NULL;
+    return result;
+  }
 
-extern struct cleanup *make_cleanup_fclose (FILE *file);
+  /* Return the number of items in the array.  */
 
-struct obstack;
-extern struct cleanup *make_cleanup_obstack_free (struct obstack *obstack);
+  int count () const
+  {
+    return countargv (m_argv);
+  }
+
+  /* Index into the array.  */
 
-extern struct cleanup *make_cleanup_restore_integer (int *variable);
-extern struct cleanup *make_cleanup_restore_uinteger (unsigned int *variable);
+  char *operator[] (int arg)
+  {
+    gdb_assert (m_argv != NULL);
+    return m_argv[arg];
+  }
+
+  /* The iterator type.  */
+
+  typedef char **iterator;
+
+  /* Return an iterator pointing to the start of the array.  */
+
+  iterator begin ()
+  {
+    return m_argv;
+  }
+
+  /* Return an iterator pointing to the end of the array.  */
+
+  iterator end ()
+  {
+    return m_argv + count ();
+  }
+
+  bool operator!= (std::nullptr_t)
+  {
+    return m_argv != NULL;
+  }
+
+  bool operator== (std::nullptr_t)
+  {
+    return m_argv == NULL;
+  }
+
+private:
+
+  /* The wrapped array.  */
+
+  char **m_argv;
+};
+
+
+/* Cleanup utilities.  */
+
+struct section_addr_info;
+extern struct cleanup *make_cleanup_free_section_addr_info
+                       (struct section_addr_info *);
+
+/* For make_cleanup_close see common/filestuff.h.  */
 
 struct target_ops;
 extern struct cleanup *make_cleanup_unpush_target (struct target_ops *ops);
 
 extern struct cleanup *make_cleanup_value_free_to_mark (struct value *);
-extern struct cleanup *make_cleanup_value_free (struct value *);
-
-struct so_list;
-extern struct cleanup *make_cleanup_free_so (struct so_list *so);
-
-extern struct cleanup *make_cleanup_restore_current_language (void);
 
 /* A deleter for a hash table.  */
 struct htab_deleter
@@ -107,27 +265,41 @@ struct htab_deleter
 /* A unique_ptr wrapper for htab_t.  */
 typedef std::unique_ptr<htab, htab_deleter> htab_up;
 
-struct parser_state;
-extern struct cleanup *make_cleanup_clear_parser_state
-  (struct parser_state **p);
-
 extern void free_current_contents (void *);
 
 extern void init_page_info (void);
 
-extern struct cleanup *make_cleanup_restore_page_info (void);
-extern struct cleanup *
-  set_batch_flag_and_make_cleanup_restore_page_info (void);
+/* Temporarily set BATCH_FLAG and the associated unlimited terminal size.
+   Restore when destroyed.  */
+
+struct set_batch_flag_and_restore_page_info
+{
+public:
+
+  set_batch_flag_and_restore_page_info ();
+  ~set_batch_flag_and_restore_page_info ();
+
+  DISABLE_COPY_AND_ASSIGN (set_batch_flag_and_restore_page_info);
+
+private:
+
+  /* Note that this doesn't use scoped_restore, because it's important
+     to control the ordering of operations in the destruction, and it
+     was simpler to avoid introducing a new ad hoc class.  */
+  unsigned m_save_lines_per_page;
+  unsigned m_save_chars_per_line;
+  int m_save_batch_flag;
+};
 
 extern struct cleanup *make_bpstat_clear_actions_cleanup (void);
 
 /* Path utilities.  */
 
-extern char *gdb_realpath (const char *);
+extern gdb::unique_xmalloc_ptr<char> gdb_realpath (const char *);
 
-extern char *gdb_realpath_keepfile (const char *);
+extern gdb::unique_xmalloc_ptr<char> gdb_realpath_keepfile (const char *);
 
-extern char *gdb_abspath (const char *);
+extern gdb::unique_xmalloc_ptr<char> gdb_abspath (const char *);
 
 extern int gdb_filename_fnmatch (const char *pattern, const char *string,
 				 int flags);
@@ -266,6 +438,9 @@ extern void gdb_print_host_address_1 (co
 #define gdb_print_host_address(ADDR, STREAM) \
   gdb_print_host_address_1 ((const void *) ADDR, STREAM)
 
+/* Return the address only having significant bits.  */
+extern CORE_ADDR address_significant (gdbarch *gdbarch, CORE_ADDR addr);
+
 /* Convert CORE_ADDR to string in platform-specific manner.
    This is usually formatted similar to 0x%lx.  */
 extern const char *paddress (struct gdbarch *gdbarch, CORE_ADDR addr);
@@ -321,9 +496,6 @@ void dummy_obstack_deallocate (void *obj
 extern pid_t wait_to_die_with_timeout (pid_t pid, int *status, int timeout);
 #endif
 
-extern int producer_is_gcc_ge_4 (const char *producer);
-extern int producer_is_gcc (const char *producer, int *major, int *minor);
-
 extern int myread (int, char *, int);
 
 /* Ensure that V is aligned to an N byte boundary (B's assumed to be a
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/utils-selftests.c ./gdb/utils-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/utils-selftests.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/utils-selftests.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,60 +0,0 @@
-/* Self tests for general utility routines for GDB, the GNU debugger.
-
-   Copyright (C) 2016-2017 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 "defs.h"
-#include "selftest.h"
-
-#if GDB_SELF_TEST
-
-namespace selftests {
-
-/* common-utils self tests.  Defined here instead of in
-   common/common-utils.c because that file is shared with
-   gdbserver.  */
-
-static void
-common_utils_tests (void)
-{
-  SELF_CHECK (string_printf ("%s", "") == "");
-  SELF_CHECK (string_printf ("%d comes before 2", 1) == "1 comes before 2");
-  SELF_CHECK (string_printf ("hello %s", "world") == "hello world");
-
-#define X10 "0123456789"
-#define X100 X10 X10 X10 X10 X10 X10 X10 X10 X10 X10
-#define X1000 X100 X100 X100 X100 X100 X100 X100 X100 X100 X100
-#define X10000 X1000 X1000 X1000 X1000 X1000 X1000 X1000 X1000 X1000 X1000
-#define X100000 X10000 X10000 X10000 X10000 X10000 X10000 X10000 X10000 X10000 X10000
-  SELF_CHECK (string_printf ("%s", X10) == X10);
-  SELF_CHECK (string_printf ("%s", X100) == X100);
-  SELF_CHECK (string_printf ("%s", X1000) == X1000);
-  SELF_CHECK (string_printf ("%s", X10000) == X10000);
-  SELF_CHECK (string_printf ("%s", X100000) == X100000);
-}
-
-} /* namespace selftests */
-
-#endif
-
-void
-_initialize_utils_selftests (void)
-{
-#if GDB_SELF_TEST
-  register_self_test (selftests::common_utils_tests);
-#endif
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/v850-tdep.c ./gdb/v850-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/v850-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/v850-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the NEC V850 for GDB, the GNU debugger.
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -1111,7 +1111,7 @@ static void
 v850_extract_return_value (struct type *type, struct regcache *regcache,
 			   gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int len = TYPE_LENGTH (type);
 
@@ -1138,7 +1138,7 @@ static void
 v850_store_return_value (struct type *type, struct regcache *regcache,
 			 const gdb_byte *valbuf)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   int len = TYPE_LENGTH (type);
 
@@ -1396,7 +1396,7 @@ v850_gdbarch_init (struct gdbarch_info i
 
       return arches->gdbarch;
     }
-  tdep = XNEW (struct gdbarch_tdep);
+  tdep = XCNEW (struct gdbarch_tdep);
   tdep->e_flags = e_flags;
   tdep->e_machine = e_machine;
 
@@ -1463,8 +1463,6 @@ v850_gdbarch_init (struct gdbarch_info i
   set_gdbarch_push_dummy_call (gdbarch, v850_push_dummy_call);
   set_gdbarch_skip_prologue (gdbarch, v850_skip_prologue);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_v850);
-
   set_gdbarch_frame_align (gdbarch, v850_frame_align);
   set_gdbarch_unwind_sp (gdbarch, v850_unwind_sp);
   set_gdbarch_unwind_pc (gdbarch, v850_unwind_pc);
@@ -1480,8 +1478,6 @@ v850_gdbarch_init (struct gdbarch_info i
   return gdbarch;
 }
 
-extern initialize_file_ftype _initialize_v850_tdep; /* -Wmissing-prototypes */
-
 void
 _initialize_v850_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/valarith.c ./gdb/valarith.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/valarith.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/valarith.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Perform arithmetic and other operations on values, for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -24,10 +24,9 @@
 #include "expression.h"
 #include "target.h"
 #include "language.h"
-#include "doublest.h"
-#include "dfp.h"
-#include <math.h>
+#include "target-float.h"
 #include "infcall.h"
+#include "common/byte-vector.h"
 
 /* Define whether or not the C operator '/' truncates towards zero for
    differently signed operands (truncation direction is undefined in C).  */
@@ -36,9 +35,6 @@
 #define TRUNCATION_TOWARDS_ZERO ((-5 / 2) == -2)
 #endif
 
-void _initialize_valarith (void);
-
-
 /* Given a pointer, return the size of its target.
    If the pointer type is void *, then return 1.
    If the target type is incomplete, then error out.
@@ -505,7 +501,7 @@ value_x_binop (struct value *arg1, struc
 	    = TYPE_TARGET_TYPE (check_typedef (value_type (argvec[0])));
 	  return value_zero (return_type, VALUE_LVAL (arg1));
 	}
-      return call_function_by_hand (argvec[0], 2 - static_memfuncp,
+      return call_function_by_hand (argvec[0], NULL, 2 - static_memfuncp,
 				    argvec + 1);
     }
   throw_error (NOT_FOUND_ERROR,
@@ -624,7 +620,7 @@ value_x_unop (struct value *arg1, enum e
 	    = TYPE_TARGET_TYPE (check_typedef (value_type (argvec[0])));
 	  return value_zero (return_type, VALUE_LVAL (arg1));
 	}
-      return call_function_by_hand (argvec[0], nargs, argvec + 1);
+      return call_function_by_hand (argvec[0], NULL, nargs, argvec + 1);
     }
   throw_error (NOT_FOUND_ERROR,
                _("member function %s not found"), tstr);
@@ -661,7 +657,6 @@ value_concat (struct value *arg1, struct
   struct value *outval = NULL;
   int inval1len, inval2len;
   int count, idx;
-  char *ptr;
   char inchar;
   struct type *type1 = check_typedef (value_type (arg1));
   struct type *type2 = check_typedef (value_type (arg2));
@@ -697,12 +692,9 @@ value_concat (struct value *arg1, struct
       if (TYPE_CODE (type2) == TYPE_CODE_STRING
 	  || TYPE_CODE (type2) == TYPE_CODE_CHAR)
 	{
-	  struct cleanup *back_to;
-
 	  count = longest_to_int (value_as_long (inval1));
 	  inval2len = TYPE_LENGTH (type2);
-	  ptr = (char *) xmalloc (count * inval2len);
-	  back_to = make_cleanup (xfree, ptr);
+	  std::vector<char> ptr (count * inval2len);
 	  if (TYPE_CODE (type2) == TYPE_CODE_CHAR)
 	    {
 	      char_type = type2;
@@ -711,7 +703,7 @@ value_concat (struct value *arg1, struct
 					   value_contents (inval2));
 	      for (idx = 0; idx < count; idx++)
 		{
-		  *(ptr + idx) = inchar;
+		  ptr[idx] = inchar;
 		}
 	    }
 	  else
@@ -720,12 +712,11 @@ value_concat (struct value *arg1, struct
 
 	      for (idx = 0; idx < count; idx++)
 		{
-		  memcpy (ptr + (idx * inval2len), value_contents (inval2),
+		  memcpy (&ptr[idx * inval2len], value_contents (inval2),
 			  inval2len);
 		}
 	    }
-	  outval = value_string (ptr, count * inval2len, char_type);
-	  do_cleanups (back_to);
+	  outval = value_string (ptr.data (), count * inval2len, char_type);
 	}
       else if (TYPE_CODE (type2) == TYPE_CODE_BOOL)
 	{
@@ -739,8 +730,6 @@ value_concat (struct value *arg1, struct
   else if (TYPE_CODE (type1) == TYPE_CODE_STRING
 	   || TYPE_CODE (type1) == TYPE_CODE_CHAR)
     {
-      struct cleanup *back_to;
-
       /* We have two character strings to concatenate.  */
       if (TYPE_CODE (type2) != TYPE_CODE_STRING
 	  && TYPE_CODE (type2) != TYPE_CODE_CHAR)
@@ -749,31 +738,29 @@ value_concat (struct value *arg1, struct
 	}
       inval1len = TYPE_LENGTH (type1);
       inval2len = TYPE_LENGTH (type2);
-      ptr = (char *) xmalloc (inval1len + inval2len);
-      back_to = make_cleanup (xfree, ptr);
+      std::vector<char> ptr (inval1len + inval2len);
       if (TYPE_CODE (type1) == TYPE_CODE_CHAR)
 	{
 	  char_type = type1;
 
-	  *ptr = (char) unpack_long (type1, value_contents (inval1));
+	  ptr[0] = (char) unpack_long (type1, value_contents (inval1));
 	}
       else
 	{
 	  char_type = TYPE_TARGET_TYPE (type1);
 
-	  memcpy (ptr, value_contents (inval1), inval1len);
+	  memcpy (ptr.data (), value_contents (inval1), inval1len);
 	}
       if (TYPE_CODE (type2) == TYPE_CODE_CHAR)
 	{
-	  *(ptr + inval1len) =
+	  ptr[inval1len] =
 	    (char) unpack_long (type2, value_contents (inval2));
 	}
       else
 	{
-	  memcpy (ptr + inval1len, value_contents (inval2), inval2len);
+	  memcpy (&ptr[inval1len], value_contents (inval2), inval2len);
 	}
-      outval = value_string (ptr, inval1len + inval2len, char_type);
-      do_cleanups (back_to);
+      outval = value_string (ptr.data (), inval1len + inval2len, char_type);
     }
   else if (TYPE_CODE (type1) == TYPE_CODE_BOOL)
     {
@@ -855,63 +842,62 @@ uinteger_pow (ULONGEST v1, LONGEST v2)
     }
 }
 
-/* Obtain decimal value of arguments for binary operation, converting from
-   other types if one of them is not decimal floating point.  */
+/* Obtain argument values for binary operation, converting from
+   other types if one of them is not floating point.  */
 static void
-value_args_as_decimal (struct value *arg1, struct value *arg2,
-		       gdb_byte *x, int *len_x, enum bfd_endian *byte_order_x,
-		       gdb_byte *y, int *len_y, enum bfd_endian *byte_order_y)
+value_args_as_target_float (struct value *arg1, struct value *arg2,
+			    gdb_byte *x, struct type **eff_type_x,
+			    gdb_byte *y, struct type **eff_type_y)
 {
   struct type *type1, *type2;
 
   type1 = check_typedef (value_type (arg1));
   type2 = check_typedef (value_type (arg2));
 
-  /* At least one of the arguments must be of decimal float type.  */
-  gdb_assert (TYPE_CODE (type1) == TYPE_CODE_DECFLOAT
-	      || TYPE_CODE (type2) == TYPE_CODE_DECFLOAT);
+  /* At least one of the arguments must be of floating-point type.  */
+  gdb_assert (is_floating_type (type1) || is_floating_type (type2));
 
-  if (TYPE_CODE (type1) == TYPE_CODE_FLT
-      || TYPE_CODE (type2) == TYPE_CODE_FLT)
+  if (is_floating_type (type1) && is_floating_type (type2)
+      && TYPE_CODE (type1) != TYPE_CODE (type2))
     /* The DFP extension to the C language does not allow mixing of
      * decimal float types with other float types in expressions
      * (see WDTR 24732, page 12).  */
     error (_("Mixing decimal floating types with "
 	     "other floating types is not allowed."));
 
-  /* Obtain decimal value of arg1, converting from other types
-     if necessary.  */
+  /* Obtain value of arg1, converting from other types if necessary.  */
 
-  if (TYPE_CODE (type1) == TYPE_CODE_DECFLOAT)
+  if (is_floating_type (type1))
     {
-      *byte_order_x = gdbarch_byte_order (get_type_arch (type1));
-      *len_x = TYPE_LENGTH (type1);
-      memcpy (x, value_contents (arg1), *len_x);
+      *eff_type_x = type1;
+      memcpy (x, value_contents (arg1), TYPE_LENGTH (type1));
     }
   else if (is_integral_type (type1))
     {
-      *byte_order_x = gdbarch_byte_order (get_type_arch (type2));
-      *len_x = TYPE_LENGTH (type2);
-      decimal_from_integral (arg1, x, *len_x, *byte_order_x);
+      *eff_type_x = type2;
+      if (TYPE_UNSIGNED (type1))
+	target_float_from_ulongest (x, *eff_type_x, value_as_long (arg1));
+      else
+	target_float_from_longest (x, *eff_type_x, value_as_long (arg1));
     }
   else
     error (_("Don't know how to convert from %s to %s."), TYPE_NAME (type1),
 	     TYPE_NAME (type2));
 
-  /* Obtain decimal value of arg2, converting from other types
-     if necessary.  */
+  /* Obtain value of arg2, converting from other types if necessary.  */
 
-  if (TYPE_CODE (type2) == TYPE_CODE_DECFLOAT)
+  if (is_floating_type (type2))
     {
-      *byte_order_y = gdbarch_byte_order (get_type_arch (type2));
-      *len_y = TYPE_LENGTH (type2);
-      memcpy (y, value_contents (arg2), *len_y);
+      *eff_type_y = type2;
+      memcpy (y, value_contents (arg2), TYPE_LENGTH (type2));
     }
   else if (is_integral_type (type2))
     {
-      *byte_order_y = gdbarch_byte_order (get_type_arch (type1));
-      *len_y = TYPE_LENGTH (type1);
-      decimal_from_integral (arg2, y, *len_y, *byte_order_y);
+      *eff_type_y = type1;
+      if (TYPE_UNSIGNED (type2))
+	target_float_from_ulongest (y, *eff_type_y, value_as_long (arg2));
+      else
+	target_float_from_longest (y, *eff_type_y, value_as_long (arg2));
     }
   else
     error (_("Don't know how to convert from %s to %s."), TYPE_NAME (type1),
@@ -936,111 +922,17 @@ scalar_binop (struct value *arg1, struct
   type1 = check_typedef (value_type (arg1));
   type2 = check_typedef (value_type (arg2));
 
-  if ((TYPE_CODE (type1) != TYPE_CODE_FLT
-       && TYPE_CODE (type1) != TYPE_CODE_DECFLOAT
-       && !is_integral_type (type1))
-      || (TYPE_CODE (type2) != TYPE_CODE_FLT
-	  && TYPE_CODE (type2) != TYPE_CODE_DECFLOAT
-	  && !is_integral_type (type2)))
+  if ((!is_floating_value (arg1) && !is_integral_type (type1))
+      || (!is_floating_value (arg2) && !is_integral_type (type2)))
     error (_("Argument to arithmetic operation not a number or boolean."));
 
-  if (TYPE_CODE (type1) == TYPE_CODE_DECFLOAT
-      || TYPE_CODE (type2) == TYPE_CODE_DECFLOAT)
-    {
-      int len_v1, len_v2, len_v;
-      enum bfd_endian byte_order_v1, byte_order_v2, byte_order_v;
-      gdb_byte v1[16], v2[16];
-      gdb_byte v[16];
-
-      /* If only one type is decimal float, use its type.
-	 Otherwise use the bigger type.  */
-      if (TYPE_CODE (type1) != TYPE_CODE_DECFLOAT)
-	result_type = type2;
-      else if (TYPE_CODE (type2) != TYPE_CODE_DECFLOAT)
-	result_type = type1;
-      else if (TYPE_LENGTH (type2) > TYPE_LENGTH (type1))
-	result_type = type2;
-      else
-	result_type = type1;
-
-      len_v = TYPE_LENGTH (result_type);
-      byte_order_v = gdbarch_byte_order (get_type_arch (result_type));
-
-      value_args_as_decimal (arg1, arg2, v1, &len_v1, &byte_order_v1,
-					 v2, &len_v2, &byte_order_v2);
-
-      switch (op)
-	{
-	case BINOP_ADD:
-	case BINOP_SUB:
-	case BINOP_MUL:
-	case BINOP_DIV:
-	case BINOP_EXP:
-	  decimal_binop (op, v1, len_v1, byte_order_v1,
-			     v2, len_v2, byte_order_v2,
-			     v, len_v, byte_order_v);
-	  break;
-
-	default:
-	  error (_("Operation not valid for decimal floating point number."));
-	}
-
-      val = value_from_decfloat (result_type, v);
-    }
-  else if (TYPE_CODE (type1) == TYPE_CODE_FLT
-	   || TYPE_CODE (type2) == TYPE_CODE_FLT)
+  if (is_floating_type (type1) || is_floating_type (type2))
     {
-      /* FIXME-if-picky-about-floating-accuracy: Should be doing this
-         in target format.  real.c in GCC probably has the necessary
-         code.  */
-      DOUBLEST v1, v2, v = 0;
-
-      v1 = value_as_double (arg1);
-      v2 = value_as_double (arg2);
-
-      switch (op)
-	{
-	case BINOP_ADD:
-	  v = v1 + v2;
-	  break;
-
-	case BINOP_SUB:
-	  v = v1 - v2;
-	  break;
-
-	case BINOP_MUL:
-	  v = v1 * v2;
-	  break;
-
-	case BINOP_DIV:
-	  v = v1 / v2;
-	  break;
-
-	case BINOP_EXP:
-	  errno = 0;
-	  v = pow (v1, v2);
-	  if (errno)
-	    error (_("Cannot perform exponentiation: %s"),
-		   safe_strerror (errno));
-	  break;
-
-	case BINOP_MIN:
-	  v = v1 < v2 ? v1 : v2;
-	  break;
-	      
-	case BINOP_MAX:
-	  v = v1 > v2 ? v1 : v2;
-	  break;
-
-	default:
-	  error (_("Integer-only operation on floating point number."));
-	}
-
-      /* If only one type is float, use its type.
+      /* If only one type is floating-point, use its type.
 	 Otherwise use the bigger type.  */
-      if (TYPE_CODE (type1) != TYPE_CODE_FLT)
+      if (!is_floating_type (type1))
 	result_type = type2;
-      else if (TYPE_CODE (type2) != TYPE_CODE_FLT)
+      else if (!is_floating_type (type2))
 	result_type = type1;
       else if (TYPE_LENGTH (type2) > TYPE_LENGTH (type1))
 	result_type = type2;
@@ -1048,7 +940,18 @@ scalar_binop (struct value *arg1, struct
 	result_type = type1;
 
       val = allocate_value (result_type);
-      store_typed_floating (value_contents_raw (val), value_type (val), v);
+
+      struct type *eff_type_v1, *eff_type_v2;
+      gdb::byte_vector v1, v2;
+      v1.resize (TYPE_LENGTH (result_type));
+      v2.resize (TYPE_LENGTH (result_type));
+
+      value_args_as_target_float (arg1, arg2,
+				  v1.data (), &eff_type_v1,
+				  v2.data (), &eff_type_v2);
+      target_float_binop (op, v1.data (), eff_type_v1,
+			      v2.data (), eff_type_v2,
+			      value_contents_raw (val), result_type);
     }
   else if (TYPE_CODE (type1) == TYPE_CODE_BOOL
 	   || TYPE_CODE (type2) == TYPE_CODE_BOOL)
@@ -1519,11 +1422,8 @@ value_logical_not (struct value *arg1)
   arg1 = coerce_array (arg1);
   type1 = check_typedef (value_type (arg1));
 
-  if (TYPE_CODE (type1) == TYPE_CODE_FLT)
-    return 0 == value_as_double (arg1);
-  else if (TYPE_CODE (type1) == TYPE_CODE_DECFLOAT)
-    return decimal_is_zero (value_contents (arg1), TYPE_LENGTH (type1),
-			    gdbarch_byte_order (get_type_arch (type1)));
+  if (is_floating_value (arg1))
+    return target_float_is_zero (value_contents (arg1), type1);
 
   len = TYPE_LENGTH (type1);
   p = value_contents (arg1);
@@ -1594,27 +1494,20 @@ value_equal (struct value *arg1, struct 
   if (is_int1 && is_int2)
     return longest_to_int (value_as_long (value_binop (arg1, arg2,
 						       BINOP_EQUAL)));
-  else if ((code1 == TYPE_CODE_FLT || is_int1)
-	   && (code2 == TYPE_CODE_FLT || is_int2))
+  else if ((is_floating_value (arg1) || is_int1)
+	   && (is_floating_value (arg2) || is_int2))
     {
-      /* NOTE: kettenis/20050816: Avoid compiler bug on systems where
-	 `long double' values are returned in static storage (m68k).  */
-      DOUBLEST d = value_as_double (arg1);
-
-      return d == value_as_double (arg2);
-    }
-  else if ((code1 == TYPE_CODE_DECFLOAT || is_int1)
-	   && (code2 == TYPE_CODE_DECFLOAT || is_int2))
-    {
-      gdb_byte v1[16], v2[16];
-      int len_v1, len_v2;
-      enum bfd_endian byte_order_v1, byte_order_v2;
-
-      value_args_as_decimal (arg1, arg2, v1, &len_v1, &byte_order_v1,
-					 v2, &len_v2, &byte_order_v2);
+      struct type *eff_type_v1, *eff_type_v2;
+      gdb::byte_vector v1, v2;
+      v1.resize (std::max (TYPE_LENGTH (type1), TYPE_LENGTH (type2)));
+      v2.resize (std::max (TYPE_LENGTH (type1), TYPE_LENGTH (type2)));
+
+      value_args_as_target_float (arg1, arg2,
+				  v1.data (), &eff_type_v1,
+				  v2.data (), &eff_type_v2);
 
-      return decimal_compare (v1, len_v1, byte_order_v1,
-			      v2, len_v2, byte_order_v2) == 0;
+      return target_float_compare (v1.data (), eff_type_v1,
+				   v2.data (), eff_type_v2) == 0;
     }
 
   /* FIXME: Need to promote to either CORE_ADDR or LONGEST, whichever
@@ -1690,27 +1583,20 @@ value_less (struct value *arg1, struct v
   if (is_int1 && is_int2)
     return longest_to_int (value_as_long (value_binop (arg1, arg2,
 						       BINOP_LESS)));
-  else if ((code1 == TYPE_CODE_FLT || is_int1)
-	   && (code2 == TYPE_CODE_FLT || is_int2))
+  else if ((is_floating_value (arg1) || is_int1)
+	   && (is_floating_value (arg2) || is_int2))
     {
-      /* NOTE: kettenis/20050816: Avoid compiler bug on systems where
-	 `long double' values are returned in static storage (m68k).  */
-      DOUBLEST d = value_as_double (arg1);
+      struct type *eff_type_v1, *eff_type_v2;
+      gdb::byte_vector v1, v2;
+      v1.resize (std::max (TYPE_LENGTH (type1), TYPE_LENGTH (type2)));
+      v2.resize (std::max (TYPE_LENGTH (type1), TYPE_LENGTH (type2)));
+
+      value_args_as_target_float (arg1, arg2,
+				  v1.data (), &eff_type_v1,
+				  v2.data (), &eff_type_v2);
 
-      return d < value_as_double (arg2);
-    }
-  else if ((code1 == TYPE_CODE_DECFLOAT || is_int1)
-	   && (code2 == TYPE_CODE_DECFLOAT || is_int2))
-    {
-      gdb_byte v1[16], v2[16];
-      int len_v1, len_v2;
-      enum bfd_endian byte_order_v1, byte_order_v2;
-
-      value_args_as_decimal (arg1, arg2, v1, &len_v1, &byte_order_v1,
-					 v2, &len_v2, &byte_order_v2);
-
-      return decimal_compare (v1, len_v1, byte_order_v1,
-			      v2, len_v2, byte_order_v2) == -1;
+      return target_float_compare (v1.data (), eff_type_v1,
+				   v2.data (), eff_type_v2) == -1;
     }
   else if (code1 == TYPE_CODE_PTR && code2 == TYPE_CODE_PTR)
     return value_as_address (arg1) < value_as_address (arg2);
@@ -1740,22 +1626,9 @@ value_pos (struct value *arg1)
   arg1 = coerce_ref (arg1);
   type = check_typedef (value_type (arg1));
 
-  if (TYPE_CODE (type) == TYPE_CODE_FLT)
-    return value_from_double (type, value_as_double (arg1));
-  else if (TYPE_CODE (type) == TYPE_CODE_DECFLOAT)
-    return value_from_decfloat (type, value_contents (arg1));
-  else if (is_integral_type (type))
-    {
-      return value_from_longest (type, value_as_long (arg1));
-    }
-  else if (TYPE_CODE (type) == TYPE_CODE_ARRAY && TYPE_VECTOR (type))
-    {
-      struct value *val = allocate_value (type);
-
-      memcpy (value_contents_raw (val), value_contents (arg1),
-              TYPE_LENGTH (type));
-      return val;
-    }
+  if (is_integral_type (type) || is_floating_value (arg1)
+      || (TYPE_CODE (type) == TYPE_CODE_ARRAY && TYPE_VECTOR (type)))
+    return value_from_contents (type, value_contents (arg1));
   else
     {
       error (_("Argument to positive operation not a number."));
@@ -1771,28 +1644,8 @@ value_neg (struct value *arg1)
   arg1 = coerce_ref (arg1);
   type = check_typedef (value_type (arg1));
 
-  if (TYPE_CODE (type) == TYPE_CODE_DECFLOAT)
-    {
-      struct value *val = allocate_value (type);
-      int len = TYPE_LENGTH (type);
-      gdb_byte decbytes[16];  /* a decfloat is at most 128 bits long.  */
-
-      memcpy (decbytes, value_contents (arg1), len);
-
-      if (gdbarch_byte_order (get_type_arch (type)) == BFD_ENDIAN_LITTLE)
-	decbytes[len-1] = decbytes[len - 1] | 0x80;
-      else
-	decbytes[0] = decbytes[0] | 0x80;
-
-      memcpy (value_contents_raw (val), decbytes, len);
-      return val;
-    }
-  else if (TYPE_CODE (type) == TYPE_CODE_FLT)
-    return value_from_double (type, -value_as_double (arg1));
-  else if (is_integral_type (type))
-    {
-      return value_from_longest (type, -value_as_long (arg1));
-    }
+  if (is_integral_type (type) || is_floating_type (type))
+    return value_binop (value_from_longest (type, 0), arg1, BINOP_SUB);
   else if (TYPE_CODE (type) == TYPE_CODE_ARRAY && TYPE_VECTOR (type))
     {
       struct value *tmp, *val = allocate_value (type);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/valops.c ./gdb/valops.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/valops.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/valops.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Perform non-arithmetic operations on values, for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -34,11 +34,12 @@
 #include "infcall.h"
 #include "dictionary.h"
 #include "cp-support.h"
-#include "dfp.h"
+#include "target-float.h"
 #include "tracepoint.h"
 #include "observer.h"
 #include "objfiles.h"
 #include "extension.h"
+#include "byte-vector.h"
 
 extern unsigned int overload_debug;
 /* Local functions.  */
@@ -100,8 +101,6 @@ static void find_method_list (struct val
 			      VEC (xmethod_worker_ptr) **,
 			      struct type **, LONGEST *);
 
-void _initialize_valops (void);
-
 #if 0
 /* Flag for whether we want to abandon failed expression evals by
    default.  */
@@ -191,7 +190,7 @@ value_allocate_space_in_inferior (int le
   struct value *blocklen;
 
   blocklen = value_from_longest (builtin_type (gdbarch)->builtin_int, len);
-  val = call_function_by_hand (val, 1, &blocklen);
+  val = call_function_by_hand (val, NULL, 1, &blocklen);
   if (value_logical_not (val))
     {
       if (!target_has_execution)
@@ -378,6 +377,11 @@ value_cast (struct type *type, struct va
     /* We deref the value and then do the cast.  */
     return value_cast (type, coerce_ref (arg2)); 
 
+  /* Strip typedefs / resolve stubs in order to get at the type's
+     code/length, but remember the original type, to use as the
+     resulting type of the cast, in case it was a typedef.  */
+  struct type *to_type = type;
+
   type = check_typedef (type);
   code1 = TYPE_CODE (type);
   arg2 = coerce_ref (arg2);
@@ -433,7 +437,7 @@ value_cast (struct type *type, struct va
   code2 = TYPE_CODE (type2);
 
   if (code1 == TYPE_CODE_COMPLEX)
-    return cast_into_complex (type, arg2);
+    return cast_into_complex (to_type, arg2);
   if (code1 == TYPE_CODE_BOOL)
     {
       code1 = TYPE_CODE_INT;
@@ -452,30 +456,27 @@ value_cast (struct type *type, struct va
       && (code2 == TYPE_CODE_STRUCT || code2 == TYPE_CODE_UNION)
       && TYPE_NAME (type) != 0)
     {
-      struct value *v = value_cast_structs (type, arg2);
+      struct value *v = value_cast_structs (to_type, arg2);
 
       if (v)
 	return v;
     }
 
-  if (code1 == TYPE_CODE_FLT && scalar)
-    return value_from_double (type, value_as_double (arg2));
-  else if (code1 == TYPE_CODE_DECFLOAT && scalar)
-    {
-      enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
-      int dec_len = TYPE_LENGTH (type);
-      gdb_byte dec[16];
-
-      if (code2 == TYPE_CODE_FLT)
-	decimal_from_floating (arg2, dec, dec_len, byte_order);
-      else if (code2 == TYPE_CODE_DECFLOAT)
-	decimal_convert (value_contents (arg2), TYPE_LENGTH (type2),
-			 byte_order, dec, dec_len, byte_order);
-      else
-	/* The only option left is an integral type.  */
-	decimal_from_integral (arg2, dec, dec_len, byte_order);
+  if (is_floating_type (type) && scalar)
+    {
+      if (is_floating_value (arg2))
+	{
+	  struct value *v = allocate_value (to_type);
+	  target_float_convert (value_contents (arg2), type2,
+				value_contents_raw (v), type);
+	  return v;
+	}
 
-      return value_from_decfloat (type, dec);
+      /* The only option left is an integral type.  */
+      if (TYPE_UNSIGNED (type2))
+	return value_from_ulongest (to_type, value_as_long (arg2));
+      else
+	return value_from_longest (to_type, value_as_long (arg2));
     }
   else if ((code1 == TYPE_CODE_INT || code1 == TYPE_CODE_ENUM
 	    || code1 == TYPE_CODE_RANGE)
@@ -496,7 +497,7 @@ value_cast (struct type *type, struct va
 		     gdbarch_byte_order (get_type_arch (type2)));
       else
         longest = value_as_long (arg2);
-      return value_from_longest (type, convert_to_boolean ?
+      return value_from_longest (to_type, convert_to_boolean ?
 				 (LONGEST) (longest ? 1 : 0) : longest);
     }
   else if (code1 == TYPE_CODE_PTR && (code2 == TYPE_CODE_INT  
@@ -522,14 +523,14 @@ value_cast (struct type *type, struct va
 	      || longest <= -((LONGEST) 1 << addr_bit))
 	    warning (_("value truncated"));
 	}
-      return value_from_longest (type, longest);
+      return value_from_longest (to_type, longest);
     }
   else if (code1 == TYPE_CODE_METHODPTR && code2 == TYPE_CODE_INT
 	   && value_as_long (arg2) == 0)
     {
-      struct value *result = allocate_value (type);
+      struct value *result = allocate_value (to_type);
 
-      cplus_make_method_ptr (type, value_contents_writeable (result), 0, 0);
+      cplus_make_method_ptr (to_type, value_contents_writeable (result), 0, 0);
       return result;
     }
   else if (code1 == TYPE_CODE_MEMBERPTR && code2 == TYPE_CODE_INT
@@ -537,7 +538,7 @@ value_cast (struct type *type, struct va
     {
       /* The Itanium C++ ABI represents NULL pointers to members as
 	 minus one, instead of biasing the normal case.  */
-      return value_from_longest (type, -1);
+      return value_from_longest (to_type, -1);
     }
   else if (code1 == TYPE_CODE_ARRAY && TYPE_VECTOR (type)
 	   && code2 == TYPE_CODE_ARRAY && TYPE_VECTOR (type2)
@@ -548,21 +549,21 @@ value_cast (struct type *type, struct va
     error (_("can only cast scalar to vector of same size"));
   else if (code1 == TYPE_CODE_VOID)
     {
-      return value_zero (type, not_lval);
+      return value_zero (to_type, not_lval);
     }
   else if (TYPE_LENGTH (type) == TYPE_LENGTH (type2))
     {
       if (code1 == TYPE_CODE_PTR && code2 == TYPE_CODE_PTR)
-	return value_cast_pointers (type, arg2, 0);
+	return value_cast_pointers (to_type, arg2, 0);
 
       arg2 = value_copy (arg2);
-      deprecated_set_value_type (arg2, type);
-      set_value_enclosing_type (arg2, type);
+      deprecated_set_value_type (arg2, to_type);
+      set_value_enclosing_type (arg2, to_type);
       set_value_pointed_to_offset (arg2, 0);	/* pai: chk_val */
       return arg2;
     }
   else if (VALUE_LVAL (arg2) == lval_memory)
-    return value_at_lazy (type, value_address (arg2));
+    return value_at_lazy (to_type, value_address (arg2));
   else
     {
       error (_("Invalid cast."));
@@ -859,19 +860,7 @@ value_one (struct type *type)
   struct type *type1 = check_typedef (type);
   struct value *val;
 
-  if (TYPE_CODE (type1) == TYPE_CODE_DECFLOAT)
-    {
-      enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
-      gdb_byte v[16];
-
-      decimal_from_string (v, TYPE_LENGTH (type), byte_order, "1");
-      val = value_from_decfloat (type, v);
-    }
-  else if (TYPE_CODE (type1) == TYPE_CODE_FLT)
-    {
-      val = value_from_double (type, (DOUBLEST) 1);
-    }
-  else if (is_integral_type (type1))
+  if (is_integral_type (type1) || is_floating_type (type1))
     {
       val = value_from_longest (type, (LONGEST) 1);
     }
@@ -958,7 +947,7 @@ value_at_lazy (struct type *type, CORE_A
 }
 
 void
-read_value_memory (struct value *val, LONGEST embedded_offset,
+read_value_memory (struct value *val, LONGEST bit_offset,
 		   int stack, CORE_ADDR memaddr,
 		   gdb_byte *buffer, size_t length)
 {
@@ -984,8 +973,9 @@ read_value_memory (struct value *val, LO
       if (status == TARGET_XFER_OK)
 	/* nothing */;
       else if (status == TARGET_XFER_UNAVAILABLE)
-	mark_value_bytes_unavailable (val, embedded_offset + xfered_total,
-				      xfered_partial);
+	mark_value_bits_unavailable (val, (xfered_total * HOST_CHAR_BIT
+					   + bit_offset),
+				     xfered_partial * HOST_CHAR_BIT);
       else if (status == TARGET_XFER_EOF)
 	memory_error (TARGET_XFER_E_IO, memaddr + xfered_total);
       else
@@ -2075,24 +2065,20 @@ search_struct_method (const char *name, 
 
 	  if (offset < 0 || offset >= TYPE_LENGTH (type))
 	    {
-	      gdb_byte *tmp;
-	      struct cleanup *back_to;
 	      CORE_ADDR address;
 
-	      tmp = (gdb_byte *) xmalloc (TYPE_LENGTH (baseclass));
-	      back_to = make_cleanup (xfree, tmp);
+	      gdb::byte_vector tmp (TYPE_LENGTH (baseclass));
 	      address = value_address (*arg1p);
 
 	      if (target_read_memory (address + offset,
-				      tmp, TYPE_LENGTH (baseclass)) != 0)
+				      tmp.data (), TYPE_LENGTH (baseclass)) != 0)
 		error (_("virtual baseclass botch"));
 
 	      base_val = value_from_contents_and_address (baseclass,
-							  tmp,
+							  tmp.data (),
 							  address + offset);
 	      base_valaddr = value_contents_for_printing (base_val);
 	      this_offset = 0;
-	      do_cleanups (back_to);
 	    }
 	  else
 	    {
@@ -3421,6 +3407,11 @@ value_struct_elt_for_reference (struct t
 	    {
 	      for (j = 0; j < len; ++j)
 		{
+		  if (TYPE_CONST (intype) != TYPE_FN_FIELD_CONST (f, j))
+		    continue;
+		  if (TYPE_VOLATILE (intype) != TYPE_FN_FIELD_VOLATILE (f, j))
+		    continue;
+
 		  if (compare_parameters (TYPE_FN_FIELD_TYPE (f, j), intype, 0)
 		      || compare_parameters (TYPE_FN_FIELD_TYPE (f, j),
 					     intype, 1))
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/valprint.c ./gdb/valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/valprint.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/valprint.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Print values for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -27,9 +27,7 @@
 #include "language.h"
 #include "annotate.h"
 #include "valprint.h"
-#include "floatformat.h"
-#include "doublest.h"
-#include "dfp.h"
+#include "target-float.h"
 #include "extension.h"
 #include "ada-lang.h"
 #include "gdb_obstack.h"
@@ -37,6 +35,7 @@
 #include "typeprint.h"
 #include <ctype.h>
 #include <algorithm>
+#include "common/byte-vector.h"
 
 /* Maximum number of wchars returned from wchar_iterate.  */
 #define MAX_WCHARS 4
@@ -83,28 +82,14 @@ struct cmd_list_element *showprintrawlis
 static int partial_memory_read (CORE_ADDR memaddr, gdb_byte *myaddr,
 				int len, int *errptr);
 
-static void show_print (char *, int);
-
-static void set_print (char *, int);
-
-static void set_radix (char *, int);
-
-static void show_radix (char *, int);
-
-static void set_input_radix (char *, int, struct cmd_list_element *);
-
 static void set_input_radix_1 (int, unsigned);
 
-static void set_output_radix (char *, int, struct cmd_list_element *);
-
 static void set_output_radix_1 (int, unsigned);
 
 static void val_print_type_code_flags (struct type *type,
 				       const gdb_byte *valaddr,
 				       struct ui_file *stream);
 
-void _initialize_valprint (void);
-
 #define PRINT_MAX_DEFAULT 200	/* Start print_max off at this value.  */
 
 struct value_print_options user_print_options =
@@ -781,25 +766,12 @@ generic_val_print_int (struct type *type
 		       struct value *original_value,
 		       const struct value_print_options *options)
 {
-  struct gdbarch *gdbarch = get_type_arch (type);
-  int unit_size = gdbarch_addressable_memory_unit_size (gdbarch);
-
-  if (options->format || options->output_format)
-    {
-      struct value_print_options opts = *options;
-
-      opts.format = (options->format ? options->format
-		     : options->output_format);
-      val_print_scalar_formatted (type, embedded_offset,
-				  original_value, &opts, 0, stream);
-    }
-  else
-    {
-      const gdb_byte *valaddr = value_contents_for_printing (original_value);
+  struct value_print_options opts = *options;
 
-      val_print_type_code_int (type, valaddr + embedded_offset * unit_size,
-			       stream);
-    }
+  opts.format = (options->format ? options->format
+		 : options->output_format);
+  val_print_scalar_formatted (type, embedded_offset,
+			      original_value, &opts, 0, stream);
 }
 
 /* generic_val_print helper for TYPE_CODE_CHAR.  */
@@ -838,7 +810,7 @@ generic_val_print_char (struct type *typ
     }
 }
 
-/* generic_val_print helper for TYPE_CODE_FLT.  */
+/* generic_val_print helper for TYPE_CODE_FLT and TYPE_CODE_DECFLOAT.  */
 
 static void
 generic_val_print_float (struct type *type,
@@ -862,29 +834,6 @@ generic_val_print_float (struct type *ty
     }
 }
 
-/* generic_val_print helper for TYPE_CODE_DECFLOAT.  */
-
-static void
-generic_val_print_decfloat (struct type *type,
-			    int embedded_offset, struct ui_file *stream,
-			    struct value *original_value,
-			    const struct value_print_options *options)
-{
-  struct gdbarch *gdbarch = get_type_arch (type);
-  int unit_size = gdbarch_addressable_memory_unit_size (gdbarch);
-
-  if (options->format)
-    val_print_scalar_formatted (type, embedded_offset, original_value,
-				options, 0, stream);
-  else
-    {
-      const gdb_byte *valaddr = value_contents_for_printing (original_value);
-
-      print_decimal_floating (valaddr + embedded_offset * unit_size, type,
-			      stream);
-    }
-}
-
 /* generic_val_print helper for TYPE_CODE_COMPLEX.  */
 
 static void
@@ -1008,15 +957,11 @@ generic_val_print (struct type *type,
       break;
 
     case TYPE_CODE_FLT:
+    case TYPE_CODE_DECFLOAT:
       generic_val_print_float (type, embedded_offset, stream,
 			       original_value, options);
       break;
 
-    case TYPE_CODE_DECFLOAT:
-      generic_val_print_decfloat (type, embedded_offset, stream,
-				  original_value, options);
-      break;
-
     case TYPE_CODE_VOID:
       fputs_filtered (decorations->void_name, stream);
       break;
@@ -1237,43 +1182,6 @@ value_print (struct value *val, struct u
   LA_VALUE_PRINT (val, stream, options);
 }
 
-/* Called by various <lang>_val_print routines to print
-   TYPE_CODE_INT's.  TYPE is the type.  VALADDR is the address of the
-   value.  STREAM is where to print the value.  */
-
-void
-val_print_type_code_int (struct type *type, const gdb_byte *valaddr,
-			 struct ui_file *stream)
-{
-  enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
-
-  if (TYPE_LENGTH (type) > sizeof (LONGEST))
-    {
-      LONGEST val;
-
-      if (TYPE_UNSIGNED (type)
-	  && extract_long_unsigned_integer (valaddr, TYPE_LENGTH (type),
-					    byte_order, &val))
-	{
-	  print_longest (stream, 'u', 0, val);
-	}
-      else
-	{
-	  /* Signed, or we couldn't turn an unsigned value into a
-	     LONGEST.  For signed values, one could assume two's
-	     complement (a reasonable assumption, I think) and do
-	     better than this.  */
-	  print_hex_chars (stream, (unsigned char *) valaddr,
-			   TYPE_LENGTH (type), byte_order);
-	}
-    }
-  else
-    {
-      print_longest (stream, TYPE_UNSIGNED (type) ? 'u' : 'd', 0,
-		     unpack_long (type, valaddr));
-    }
-}
-
 static void
 val_print_type_code_flags (struct type *type, const gdb_byte *valaddr,
 			   struct ui_file *stream)
@@ -1446,113 +1354,31 @@ longest_to_int (LONGEST arg)
   return (rtnval);
 }
 
-/* Print a floating point value of type TYPE (not always a
-   TYPE_CODE_FLT), pointed to in GDB by VALADDR, on STREAM.  */
+/* Print a floating point value of floating-point type TYPE,
+   pointed to in GDB by VALADDR, on STREAM.  */
 
 void
 print_floating (const gdb_byte *valaddr, struct type *type,
 		struct ui_file *stream)
 {
-  DOUBLEST doub;
-  int inv;
-  const struct floatformat *fmt = NULL;
-  unsigned len = TYPE_LENGTH (type);
-  enum float_kind kind;
-
-  /* If it is a floating-point, check for obvious problems.  */
-  if (TYPE_CODE (type) == TYPE_CODE_FLT)
-    fmt = floatformat_from_type (type);
-  if (fmt != NULL)
-    {
-      kind = floatformat_classify (fmt, valaddr);
-      if (kind == float_nan)
-	{
-	  if (floatformat_is_negative (fmt, valaddr))
-	    fprintf_filtered (stream, "-");
-	  fprintf_filtered (stream, "nan(");
-	  fputs_filtered ("0x", stream);
-	  fputs_filtered (floatformat_mantissa (fmt, valaddr), stream);
-	  fprintf_filtered (stream, ")");
-	  return;
-	}
-      else if (kind == float_infinite)
-	{
-	  if (floatformat_is_negative (fmt, valaddr))
-	    fputs_filtered ("-", stream);
-	  fputs_filtered ("inf", stream);
-	  return;
-	}
-    }
-
-  /* NOTE: cagney/2002-01-15: The TYPE passed into print_floating()
-     isn't necessarily a TYPE_CODE_FLT.  Consequently, unpack_double
-     needs to be used as that takes care of any necessary type
-     conversions.  Such conversions are of course direct to DOUBLEST
-     and disregard any possible target floating point limitations.
-     For instance, a u64 would be converted and displayed exactly on a
-     host with 80 bit DOUBLEST but with loss of information on a host
-     with 64 bit DOUBLEST.  */
-
-  doub = unpack_double (type, valaddr, &inv);
-  if (inv)
-    {
-      fprintf_filtered (stream, "<invalid float value>");
-      return;
-    }
-
-  /* FIXME: kettenis/2001-01-20: The following code makes too much
-     assumptions about the host and target floating point format.  */
-
-  /* NOTE: cagney/2002-02-03: Since the TYPE of what was passed in may
-     not necessarily be a TYPE_CODE_FLT, the below ignores that and
-     instead uses the type's length to determine the precision of the
-     floating-point value being printed.  */
-
-  if (len < sizeof (double))
-      fprintf_filtered (stream, "%.9g", (double) doub);
-  else if (len == sizeof (double))
-      fprintf_filtered (stream, "%.17g", (double) doub);
-  else
-#ifdef PRINTF_HAS_LONG_DOUBLE
-    fprintf_filtered (stream, "%.35Lg", doub);
-#else
-    /* This at least wins with values that are representable as
-       doubles.  */
-    fprintf_filtered (stream, "%.17g", (double) doub);
-#endif
-}
-
-void
-print_decimal_floating (const gdb_byte *valaddr, struct type *type,
-			struct ui_file *stream)
-{
-  enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
-  char decstr[MAX_DECIMAL_STRING];
-  unsigned len = TYPE_LENGTH (type);
-
-  decimal_to_string (valaddr, len, byte_order, decstr);
-  fputs_filtered (decstr, stream);
-  return;
+  std::string str = target_float_to_string (valaddr, type);
+  fputs_filtered (str.c_str (), stream);
 }
 
 void
 print_binary_chars (struct ui_file *stream, const gdb_byte *valaddr,
-		    unsigned len, enum bfd_endian byte_order)
+		    unsigned len, enum bfd_endian byte_order, bool zero_pad)
 {
-
-#define BITS_IN_BYTES 8
-
   const gdb_byte *p;
   unsigned int i;
   int b;
+  bool seen_a_one = false;
 
   /* Declared "int" so it will be signed.
      This ensures that right shift will shift in zeros.  */
 
   const int mask = 0x080;
 
-  /* FIXME: We should be not printing leading zeroes in most cases.  */
-
   if (byte_order == BFD_ENDIAN_BIG)
     {
       for (p = valaddr;
@@ -1562,14 +1388,17 @@ print_binary_chars (struct ui_file *stre
 	  /* Every byte has 8 binary characters; peel off
 	     and print from the MSB end.  */
 
-	  for (i = 0; i < (BITS_IN_BYTES * sizeof (*p)); i++)
+	  for (i = 0; i < (HOST_CHAR_BIT * sizeof (*p)); i++)
 	    {
 	      if (*p & (mask >> i))
-		b = 1;
+		b = '1';
 	      else
-		b = 0;
+		b = '0';
 
-	      fprintf_filtered (stream, "%1d", b);
+	      if (zero_pad || seen_a_one || b == '1')
+		fputc_filtered (b, stream);
+	      if (b == '1')
+		seen_a_one = true;
 	    }
 	}
     }
@@ -1579,17 +1408,37 @@ print_binary_chars (struct ui_file *stre
 	   p >= valaddr;
 	   p--)
 	{
-	  for (i = 0; i < (BITS_IN_BYTES * sizeof (*p)); i++)
+	  for (i = 0; i < (HOST_CHAR_BIT * sizeof (*p)); i++)
 	    {
 	      if (*p & (mask >> i))
-		b = 1;
+		b = '1';
 	      else
-		b = 0;
+		b = '0';
 
-	      fprintf_filtered (stream, "%1d", b);
+	      if (zero_pad || seen_a_one || b == '1')
+		fputc_filtered (b, stream);
+	      if (b == '1')
+		seen_a_one = true;
 	    }
 	}
     }
+
+  /* When not zero-padding, ensure that something is printed when the
+     input is 0.  */
+  if (!zero_pad && !seen_a_one)
+    fputc_filtered ('0', stream);
+}
+
+/* A helper for print_octal_chars that emits a single octal digit,
+   optionally suppressing it if is zero and updating SEEN_A_ONE.  */
+
+static void
+emit_octal_digit (struct ui_file *stream, bool *seen_a_one, int digit)
+{
+  if (*seen_a_one || digit != 0)
+    fprintf_filtered (stream, "%o", digit);
+  if (digit != 0)
+    *seen_a_one = true;
 }
 
 /* VALADDR points to an integer of LEN bytes.
@@ -1603,9 +1452,6 @@ print_octal_chars (struct ui_file *strea
   unsigned char octa1, octa2, octa3, carry;
   int cycle;
 
-  /* FIXME: We should be not printing leading zeroes in most cases.  */
-
-
   /* Octal is 3 bits, which doesn't fit.  Yuk.  So we have to track
    * the extra bits, which cycle every three bytes:
    *
@@ -1623,23 +1469,30 @@ print_octal_chars (struct ui_file *strea
    */
 #define BITS_IN_OCTAL 3
 #define HIGH_ZERO     0340
-#define LOW_ZERO      0016
+#define LOW_ZERO      0034
 #define CARRY_ZERO    0003
+  static_assert (HIGH_ZERO + LOW_ZERO + CARRY_ZERO == 0xff,
+		 "cycle zero constants are wrong");
 #define HIGH_ONE      0200
 #define MID_ONE       0160
 #define LOW_ONE       0016
 #define CARRY_ONE     0001
+  static_assert (HIGH_ONE + MID_ONE + LOW_ONE + CARRY_ONE == 0xff,
+		 "cycle one constants are wrong");
 #define HIGH_TWO      0300
 #define MID_TWO       0070
 #define LOW_TWO       0007
+  static_assert (HIGH_TWO + MID_TWO + LOW_TWO == 0xff,
+		 "cycle two constants are wrong");
 
   /* For 32 we start in cycle 2, with two bits and one bit carry;
      for 64 in cycle in cycle 1, with one bit and a two bit carry.  */
 
-  cycle = (len * BITS_IN_BYTES) % BITS_IN_OCTAL;
+  cycle = (len * HOST_CHAR_BIT) % BITS_IN_OCTAL;
   carry = 0;
 
   fputs_filtered ("0", stream);
+  bool seen_a_one = false;
   if (byte_order == BFD_ENDIAN_BIG)
     {
       for (p = valaddr;
@@ -1654,8 +1507,8 @@ print_octal_chars (struct ui_file *strea
 	      octa1 = (HIGH_ZERO & *p) >> 5;
 	      octa2 = (LOW_ZERO & *p) >> 2;
 	      carry = (CARRY_ZERO & *p);
-	      fprintf_filtered (stream, "%o", octa1);
-	      fprintf_filtered (stream, "%o", octa2);
+	      emit_octal_digit (stream, &seen_a_one, octa1);
+	      emit_octal_digit (stream, &seen_a_one, octa2);
 	      break;
 
 	    case 1:
@@ -1665,9 +1518,9 @@ print_octal_chars (struct ui_file *strea
 	      octa2 = (MID_ONE & *p) >> 4;
 	      octa3 = (LOW_ONE & *p) >> 1;
 	      carry = (CARRY_ONE & *p);
-	      fprintf_filtered (stream, "%o", octa1);
-	      fprintf_filtered (stream, "%o", octa2);
-	      fprintf_filtered (stream, "%o", octa3);
+	      emit_octal_digit (stream, &seen_a_one, octa1);
+	      emit_octal_digit (stream, &seen_a_one, octa2);
+	      emit_octal_digit (stream, &seen_a_one, octa3);
 	      break;
 
 	    case 2:
@@ -1677,9 +1530,9 @@ print_octal_chars (struct ui_file *strea
 	      octa2 = (MID_TWO & *p) >> 3;
 	      octa3 = (LOW_TWO & *p);
 	      carry = 0;
-	      fprintf_filtered (stream, "%o", octa1);
-	      fprintf_filtered (stream, "%o", octa2);
-	      fprintf_filtered (stream, "%o", octa3);
+	      emit_octal_digit (stream, &seen_a_one, octa1);
+	      emit_octal_digit (stream, &seen_a_one, octa2);
+	      emit_octal_digit (stream, &seen_a_one, octa3);
 	      break;
 
 	    default:
@@ -1704,8 +1557,8 @@ print_octal_chars (struct ui_file *strea
 	      octa1 = (HIGH_ZERO & *p) >> 5;
 	      octa2 = (LOW_ZERO & *p) >> 2;
 	      carry = (CARRY_ZERO & *p);
-	      fprintf_filtered (stream, "%o", octa1);
-	      fprintf_filtered (stream, "%o", octa2);
+	      emit_octal_digit (stream, &seen_a_one, octa1);
+	      emit_octal_digit (stream, &seen_a_one, octa2);
 	      break;
 
 	    case 1:
@@ -1715,9 +1568,9 @@ print_octal_chars (struct ui_file *strea
 	      octa2 = (MID_ONE & *p) >> 4;
 	      octa3 = (LOW_ONE & *p) >> 1;
 	      carry = (CARRY_ONE & *p);
-	      fprintf_filtered (stream, "%o", octa1);
-	      fprintf_filtered (stream, "%o", octa2);
-	      fprintf_filtered (stream, "%o", octa3);
+	      emit_octal_digit (stream, &seen_a_one, octa1);
+	      emit_octal_digit (stream, &seen_a_one, octa2);
+	      emit_octal_digit (stream, &seen_a_one, octa3);
 	      break;
 
 	    case 2:
@@ -1727,9 +1580,9 @@ print_octal_chars (struct ui_file *strea
 	      octa2 = (MID_TWO & *p) >> 3;
 	      octa3 = (LOW_TWO & *p);
 	      carry = 0;
-	      fprintf_filtered (stream, "%o", octa1);
-	      fprintf_filtered (stream, "%o", octa2);
-	      fprintf_filtered (stream, "%o", octa3);
+	      emit_octal_digit (stream, &seen_a_one, octa1);
+	      emit_octal_digit (stream, &seen_a_one, octa2);
+	      emit_octal_digit (stream, &seen_a_one, octa3);
 	      break;
 
 	    default:
@@ -1743,12 +1596,58 @@ print_octal_chars (struct ui_file *strea
 
 }
 
+/* Possibly negate the integer represented by BYTES.  It contains LEN
+   bytes in the specified byte order.  If the integer is negative,
+   copy it into OUT_VEC, negate it, and return true.  Otherwise, do
+   nothing and return false.  */
+
+static bool
+maybe_negate_by_bytes (const gdb_byte *bytes, unsigned len,
+		       enum bfd_endian byte_order,
+		       gdb::byte_vector *out_vec)
+{
+  gdb_byte sign_byte;
+  if (byte_order == BFD_ENDIAN_BIG)
+    sign_byte = bytes[0];
+  else
+    sign_byte = bytes[len - 1];
+  if ((sign_byte & 0x80) == 0)
+    return false;
+
+  out_vec->resize (len);
+
+  /* Compute -x == 1 + ~x.  */
+  if (byte_order == BFD_ENDIAN_LITTLE)
+    {
+      unsigned carry = 1;
+      for (unsigned i = 0; i < len; ++i)
+	{
+	  unsigned tem = (0xff & ~bytes[i]) + carry;
+	  (*out_vec)[i] = tem & 0xff;
+	  carry = tem / 256;
+	}
+    }
+  else
+    {
+      unsigned carry = 1;
+      for (unsigned i = len; i > 0; --i)
+	{
+	  unsigned tem = (0xff & ~bytes[i - 1]) + carry;
+	  (*out_vec)[i - 1] = tem & 0xff;
+	  carry = tem / 256;
+	}
+    }
+
+  return true;
+}
+
 /* VALADDR points to an integer of LEN bytes.
    Print it in decimal on stream or format it in buf.  */
 
 void
 print_decimal_chars (struct ui_file *stream, const gdb_byte *valaddr,
-		     unsigned len, enum bfd_endian byte_order)
+		     unsigned len, bool is_signed,
+		     enum bfd_endian byte_order)
 {
 #define TEN             10
 #define CARRY_OUT(  x ) ((x) / TEN)	/* extend char to int */
@@ -1758,23 +1657,25 @@ print_decimal_chars (struct ui_file *str
 #define HIGH_NIBBLE( x ) (((x) & 0x0F0) >> 4)
 
   const gdb_byte *p;
-  unsigned char *digits;
   int carry;
   int decimal_len;
   int i, j, decimal_digits;
   int dummy;
   int flip;
 
+  gdb::byte_vector negated_bytes;
+  if (is_signed
+      && maybe_negate_by_bytes (valaddr, len, byte_order, &negated_bytes))
+    {
+      fputs_filtered ("-", stream);
+      valaddr = negated_bytes.data ();
+    }
+
   /* Base-ten number is less than twice as many digits
      as the base 16 number, which is 2 digits per byte.  */
 
   decimal_len = len * 2 * 2;
-  digits = (unsigned char *) xmalloc (decimal_len);
-
-  for (i = 0; i < decimal_len; i++)
-    {
-      digits[i] = 0;
-    }
+  std::vector<unsigned char> digits (decimal_len, 0);
 
   /* Ok, we have an unknown number of bytes of data to be printed in
    * decimal.
@@ -1868,40 +1769,73 @@ print_decimal_chars (struct ui_file *str
   /* Ok, now "digits" is the decimal representation, with
      the "decimal_digits" actual digits.  Print!  */
 
-  for (i = decimal_digits - 1; i >= 0; i--)
+  for (i = decimal_digits - 1; i > 0 && digits[i] == 0; --i)
+    ;
+
+  for (; i >= 0; i--)
     {
       fprintf_filtered (stream, "%1d", digits[i]);
     }
-  xfree (digits);
 }
 
 /* VALADDR points to an integer of LEN bytes.  Print it in hex on stream.  */
 
 void
 print_hex_chars (struct ui_file *stream, const gdb_byte *valaddr,
-		 unsigned len, enum bfd_endian byte_order)
+		 unsigned len, enum bfd_endian byte_order,
+		 bool zero_pad)
 {
   const gdb_byte *p;
 
-  /* FIXME: We should be not printing leading zeroes in most cases.  */
-
   fputs_filtered ("0x", stream);
   if (byte_order == BFD_ENDIAN_BIG)
     {
-      for (p = valaddr;
+      p = valaddr;
+
+      if (!zero_pad)
+	{
+	  /* Strip leading 0 bytes, but be sure to leave at least a
+	     single byte at the end.  */
+	  for (; p < valaddr + len - 1 && !*p; ++p)
+	    ;
+	}
+
+      const gdb_byte *first = p;
+      for (;
 	   p < valaddr + len;
 	   p++)
 	{
-	  fprintf_filtered (stream, "%02x", *p);
+	  /* When not zero-padding, use a different format for the
+	     very first byte printed.  */
+	  if (!zero_pad && p == first)
+	    fprintf_filtered (stream, "%x", *p);
+	  else
+	    fprintf_filtered (stream, "%02x", *p);
 	}
     }
   else
     {
-      for (p = valaddr + len - 1;
+      p = valaddr + len - 1;
+
+      if (!zero_pad)
+	{
+	  /* Strip leading 0 bytes, but be sure to leave at least a
+	     single byte at the end.  */
+	  for (; p >= valaddr + 1 && !*p; --p)
+	    ;
+	}
+
+      const gdb_byte *first = p;
+      for (;
 	   p >= valaddr;
 	   p--)
 	{
-	  fprintf_filtered (stream, "%02x", *p);
+	  /* When not zero-padding, use a different format for the
+	     very first byte printed.  */
+	  if (!zero_pad && p == first)
+	    fprintf_filtered (stream, "%x", *p);
+	  else
+	    fprintf_filtered (stream, "%02x", *p);
 	}
     }
 }
@@ -2432,8 +2366,6 @@ generic_emit_char (int c, struct type *t
 {
   enum bfd_endian byte_order
     = gdbarch_byte_order (get_type_arch (type));
-  struct obstack wchar_buf, output;
-  struct cleanup *cleanups;
   gdb_byte *buf;
   int need_escape = 0;
 
@@ -2443,8 +2375,7 @@ generic_emit_char (int c, struct type *t
   wchar_iterator iter (buf, TYPE_LENGTH (type), encoding, TYPE_LENGTH (type));
 
   /* This holds the printable form of the wchar_t data.  */
-  obstack_init (&wchar_buf);
-  cleanups = make_cleanup_obstack_free (&wchar_buf);
+  auto_obstack wchar_buf;
 
   while (1)
     {
@@ -2491,8 +2422,7 @@ generic_emit_char (int c, struct type *t
     }
 
   /* The output in the host encoding.  */
-  obstack_init (&output);
-  make_cleanup_obstack_free (&output);
+  auto_obstack output;
 
   convert_between_encodings (INTERMEDIATE_ENCODING, host_charset (),
 			     (gdb_byte *) obstack_base (&wchar_buf),
@@ -2501,8 +2431,6 @@ generic_emit_char (int c, struct type *t
   obstack_1grow (&output, '\0');
 
   fputs_filtered ((const char *) obstack_base (&output), stream);
-
-  do_cleanups (cleanups);
 }
 
 /* Return the repeat count of the next character/byte in ITER,
@@ -2761,7 +2689,6 @@ generic_printstr (struct ui_file *stream
   enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
   unsigned int i;
   int width = TYPE_LENGTH (type);
-  struct obstack wchar_buf, output;
   struct cleanup *cleanup;
   int finished = 0;
   struct converted_character *last;
@@ -2833,8 +2760,7 @@ generic_printstr (struct ui_file *stream
 
   /* WCHAR_BUF is the obstack we use to represent the string in
      wchar_t form.  */
-  obstack_init (&wchar_buf);
-  make_cleanup_obstack_free (&wchar_buf);
+  auto_obstack wchar_buf;
 
   /* Print the output string to the obstack.  */
   print_converted_chars_to_obstack (&wchar_buf, converted_chars, quote_char,
@@ -2844,8 +2770,7 @@ generic_printstr (struct ui_file *stream
     obstack_grow_wstr (&wchar_buf, LCST ("..."));
 
   /* OUTPUT is where we collect `char's for printing.  */
-  obstack_init (&output);
-  make_cleanup_obstack_free (&output);
+  auto_obstack output;
 
   convert_between_encodings (INTERMEDIATE_ENCODING, host_charset (),
 			     (gdb_byte *) obstack_base (&wchar_buf),
@@ -2942,13 +2867,10 @@ val_print_string (struct type *elttype, 
 
   if (err != 0)
     {
-      char *str;
-
-      str = memory_error_message (TARGET_XFER_E_IO, gdbarch, addr);
-      make_cleanup (xfree, str);
+      std::string str = memory_error_message (TARGET_XFER_E_IO, gdbarch, addr);
 
       fprintf_filtered (stream, "<error: ");
-      fputs_filtered (str, stream);
+      fputs_filtered (str.c_str (), stream);
       fprintf_filtered (stream, ">");
     }
 
@@ -2970,7 +2892,7 @@ static unsigned input_radix_1 = 10;
    setting the input radix to "10" never changes it!  */
 
 static void
-set_input_radix (char *args, int from_tty, struct cmd_list_element *c)
+set_input_radix (const char *args, int from_tty, struct cmd_list_element *c)
 {
   set_input_radix_1 (from_tty, input_radix_1);
 }
@@ -3007,7 +2929,7 @@ set_input_radix_1 (int from_tty, unsigne
 static unsigned output_radix_1 = 10;
 
 static void
-set_output_radix (char *args, int from_tty, struct cmd_list_element *c)
+set_output_radix (const char *args, int from_tty, struct cmd_list_element *c)
 {
   set_output_radix_1 (from_tty, output_radix_1);
 }
@@ -3052,7 +2974,7 @@ set_output_radix_1 (int from_tty, unsign
    the 'set input-radix' command.  */
 
 static void
-set_radix (char *arg, int from_tty)
+set_radix (const char *arg, int from_tty)
 {
   unsigned radix;
 
@@ -3070,7 +2992,7 @@ set_radix (char *arg, int from_tty)
 /* Show both the input and output radices.  */
 
 static void
-show_radix (char *arg, int from_tty)
+show_radix (const char *arg, int from_tty)
 {
   if (from_tty)
     {
@@ -3094,7 +3016,7 @@ show_radix (char *arg, int from_tty)
 
 
 static void
-set_print (char *arg, int from_tty)
+set_print (const char *arg, int from_tty)
 {
   printf_unfiltered (
      "\"set print\" must be followed by the name of a print subcommand.\n");
@@ -3102,13 +3024,13 @@ set_print (char *arg, int from_tty)
 }
 
 static void
-show_print (char *args, int from_tty)
+show_print (const char *args, int from_tty)
 {
   cmd_show_list (showprintlist, from_tty, "");
 }
 
 static void
-set_print_raw (char *arg, int from_tty)
+set_print_raw (const char *arg, int from_tty)
 {
   printf_unfiltered (
      "\"set print raw\" must be followed by the name of a \"print raw\" subcommand.\n");
@@ -3116,7 +3038,7 @@ set_print_raw (char *arg, int from_tty)
 }
 
 static void
-show_print_raw (char *args, int from_tty)
+show_print_raw (const char *args, int from_tty)
 {
   cmd_show_list (showprintrawlist, from_tty, "");
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/valprint.h ./gdb/valprint.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/valprint.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/valprint.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Declarations for value printing routines for GDB, the GNU debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -121,9 +121,6 @@ extern void val_print_array_elements (st
 				      const struct value_print_options *,
 				      unsigned int);
 
-extern void val_print_type_code_int (struct type *, const gdb_byte *,
-				     struct ui_file *);
-
 extern void val_print_scalar_formatted (struct type *,
 					LONGEST,
 					struct value *,
@@ -132,16 +129,16 @@ extern void val_print_scalar_formatted (
 					struct ui_file *);
 
 extern void print_binary_chars (struct ui_file *, const gdb_byte *,
-				unsigned int, enum bfd_endian);
+				unsigned int, enum bfd_endian, bool);
 
 extern void print_octal_chars (struct ui_file *, const gdb_byte *,
 			       unsigned int, enum bfd_endian);
 
 extern void print_decimal_chars (struct ui_file *, const gdb_byte *,
-				 unsigned int, enum bfd_endian);
+				 unsigned int, bool, enum bfd_endian);
 
 extern void print_hex_chars (struct ui_file *, const gdb_byte *,
-			     unsigned int, enum bfd_endian);
+			     unsigned int, enum bfd_endian, bool);
 
 extern void print_char_chars (struct ui_file *, struct type *,
 			      const gdb_byte *, unsigned int, enum bfd_endian);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/value.c ./gdb/value.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/value.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/value.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Low level packing and unpacking of values for GDB, the GNU Debugger.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -28,10 +28,9 @@
 #include "target.h"
 #include "language.h"
 #include "demangle.h"
-#include "doublest.h"
 #include "regcache.h"
 #include "block.h"
-#include "dfp.h"
+#include "target-float.h"
 #include "objfiles.h"
 #include "valprint.h"
 #include "cli/cli-decode.h"
@@ -41,10 +40,7 @@
 #include "cp-abi.h"
 #include "user-regs.h"
 #include <algorithm>
-
-/* Prototypes for exported functions.  */
-
-void _initialize_values (void);
+#include "completer.h"
 
 /* Definition of a user function.  */
 struct internal_function
@@ -812,7 +808,7 @@ find_first_range_overlap_and_match (stru
    with LENGTH bits of VAL2's contents starting at OFFSET2 bits.
    Return true if the available bits match.  */
 
-static int
+static bool
 value_contents_bits_eq (const struct value *val1, int offset1,
 			const struct value *val2, int offset2,
 			int length)
@@ -851,7 +847,7 @@ value_contents_bits_eq (const struct val
 	  if (!find_first_range_overlap_and_match (&rp1[i], &rp2[i],
 						   offset1, offset2, length,
 						   &l_tmp, &h_tmp))
-	    return 0;
+	    return false;
 
 	  /* We're interested in the lowest/first range found.  */
 	  if (i == 0 || l_tmp < l)
@@ -864,17 +860,17 @@ value_contents_bits_eq (const struct val
       /* Compare the available/valid contents.  */
       if (memcmp_with_bit_offsets (val1->contents, offset1,
 				   val2->contents, offset2, l) != 0)
-	return 0;
+	return false;
 
       length -= h;
       offset1 += h;
       offset2 += h;
     }
 
-  return 1;
+  return true;
 }
 
-int
+bool
 value_contents_eq (const struct value *val1, LONGEST offset1,
 		   const struct value *val2, LONGEST offset2,
 		   LONGEST length)
@@ -884,12 +880,6 @@ value_contents_eq (const struct value *v
 				 length * TARGET_CHAR_BIT);
 }
 
-/* Prototypes for local functions.  */
-
-static void show_values (char *, int);
-
-static void show_convenience (char *, int);
-
 
 /* The value-history records all the values printed
    by print commands during this session.  Each chunk
@@ -979,7 +969,7 @@ gdb_static_assert (sizeof (LONGEST) <= M
 /* Implement the "set max-value-size" command.  */
 
 static void
-set_max_value_size (char *args, int from_tty,
+set_max_value_size (const char *args, int from_tty,
 		    struct cmd_list_element *c)
 {
   gdb_assert (max_value_size == -1 || max_value_size >= 0);
@@ -1969,7 +1959,7 @@ access_value_history (int num)
 }
 
 static void
-show_values (char *num_exp, int from_tty)
+show_values (const char *num_exp, int from_tty)
 {
   int i;
   struct value *val;
@@ -2009,10 +1999,7 @@ show_values (char *num_exp, int from_tty
      "show values +".  If num_exp is null, this is unnecessary, since
      "show values +" is not useful after "show values".  */
   if (from_tty && num_exp)
-    {
-      num_exp[0] = '+';
-      num_exp[1] = '\0';
-    }
+    set_repeat_arguments ("+");
 }
 
 enum internalvar_kind
@@ -2099,7 +2086,7 @@ static struct internalvar *internalvars;
 /* If the variable does not already exist create it and give it the
    value given.  If no value is given then the default is zero.  */
 static void
-init_if_undefined_command (char* args, int from_tty)
+init_if_undefined_command (const char* args, int from_tty)
 {
   struct internalvar* intvar;
 
@@ -2144,14 +2131,12 @@ lookup_only_internalvar (const char *nam
   return NULL;
 }
 
-/* Complete NAME by comparing it to the names of internal variables.
-   Returns a vector of newly allocated strings, or NULL if no matches
-   were found.  */
+/* Complete NAME by comparing it to the names of internal
+   variables.  */
 
-VEC (char_ptr) *
-complete_internalvar (const char *name)
+void
+complete_internalvar (completion_tracker &tracker, const char *name)
 {
-  VEC (char_ptr) *result = NULL;
   struct internalvar *var;
   int len;
 
@@ -2160,12 +2145,10 @@ complete_internalvar (const char *name)
   for (var = internalvars; var; var = var->next)
     if (strncmp (var->name, name, len) == 0)
       {
-	char *r = xstrdup (var->name);
+	gdb::unique_xmalloc_ptr<char> copy (xstrdup (var->name));
 
-	VEC_safe_push (char_ptr, result, r);
+	tracker.add_completion (std::move (copy));
       }
-
-  return result;
 }
 
 /* Create an internal variable with name NAME and with a void value.
@@ -2566,7 +2549,7 @@ call_internal_function (struct gdbarch *
    the implementation of the sub-command that is created when
    registering an internal function.  */
 static void
-function_command (char *command, int from_tty)
+function_command (const char *command, int from_tty)
 {
   /* Do nothing.  */
 }
@@ -2668,7 +2651,7 @@ preserve_values (struct objfile *objfile
 }
 
 static void
-show_convenience (char *ignore, int from_tty)
+show_convenience (const char *ignore, int from_tty)
 {
   struct gdbarch *gdbarch = get_current_arch ();
   struct internalvar *var;
@@ -2772,18 +2755,6 @@ value_as_long (struct value *val)
   return unpack_long (value_type (val), value_contents (val));
 }
 
-DOUBLEST
-value_as_double (struct value *val)
-{
-  DOUBLEST foo;
-  int inv;
-
-  foo = unpack_double (value_type (val), value_contents (val), &inv);
-  if (inv)
-    error (_("Invalid floating value found in program."));
-  return foo;
-}
-
 /* Extract a value as a C pointer.  Does not deallocate the value.
    Note that val's type may not actually be a pointer; value_as_long
    handles all the cases.  */
@@ -2930,12 +2901,8 @@ unpack_long (struct type *type, const gd
 	return extract_signed_integer (valaddr, len, byte_order);
 
     case TYPE_CODE_FLT:
-      return (LONGEST) extract_typed_floating (valaddr, type);
-
     case TYPE_CODE_DECFLOAT:
-      /* libdecnumber has a function to convert from decimal to integer, but
-	 it doesn't work when the decimal number has a fractional part.  */
-      return (LONGEST) decimal_to_doublest (valaddr, len, byte_order);
+      return target_float_to_longest (valaddr, type);
 
     case TYPE_CODE_PTR:
     case TYPE_CODE_REF:
@@ -2950,66 +2917,6 @@ unpack_long (struct type *type, const gd
   return 0;			/* Placate lint.  */
 }
 
-/* Return a double value from the specified type and address.
-   INVP points to an int which is set to 0 for valid value,
-   1 for invalid value (bad float format).  In either case,
-   the returned double is OK to use.  Argument is in target
-   format, result is in host format.  */
-
-DOUBLEST
-unpack_double (struct type *type, const gdb_byte *valaddr, int *invp)
-{
-  enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
-  enum type_code code;
-  int len;
-  int nosign;
-
-  *invp = 0;			/* Assume valid.  */
-  type = check_typedef (type);
-  code = TYPE_CODE (type);
-  len = TYPE_LENGTH (type);
-  nosign = TYPE_UNSIGNED (type);
-  if (code == TYPE_CODE_FLT)
-    {
-      /* NOTE: cagney/2002-02-19: There was a test here to see if the
-	 floating-point value was valid (using the macro
-	 INVALID_FLOAT).  That test/macro have been removed.
-
-	 It turns out that only the VAX defined this macro and then
-	 only in a non-portable way.  Fixing the portability problem
-	 wouldn't help since the VAX floating-point code is also badly
-	 bit-rotten.  The target needs to add definitions for the
-	 methods gdbarch_float_format and gdbarch_double_format - these
-	 exactly describe the target floating-point format.  The
-	 problem here is that the corresponding floatformat_vax_f and
-	 floatformat_vax_d values these methods should be set to are
-	 also not defined either.  Oops!
-
-         Hopefully someone will add both the missing floatformat
-         definitions and the new cases for floatformat_is_valid ().  */
-
-      if (!floatformat_is_valid (floatformat_from_type (type), valaddr))
-	{
-	  *invp = 1;
-	  return 0.0;
-	}
-
-      return extract_typed_floating (valaddr, type);
-    }
-  else if (code == TYPE_CODE_DECFLOAT)
-    return decimal_to_doublest (valaddr, len, byte_order);
-  else if (nosign)
-    {
-      /* Unsigned -- be sure we compensate for signed LONGEST.  */
-      return (ULONGEST) unpack_long (type, valaddr);
-    }
-  else
-    {
-      /* Signed -- we are OK with unpack_long.  */
-      return unpack_long (type, valaddr);
-    }
-}
-
 /* Unpack raw data (copied from debugee, target byte order) at VALADDR
    as a CORE_ADDR, assuming the raw data is described by type TYPE.
    We don't assume any alignment for the raw data.  Return value is in
@@ -3031,6 +2938,21 @@ unpack_pointer (struct type *type, const
   return unpack_long (type, valaddr);
 }
 
+bool
+is_floating_value (struct value *val)
+{
+  struct type *type = check_typedef (value_type (val));
+
+  if (is_floating_type (type))
+    {
+      if (!target_float_is_valid (value_contents (val), type))
+	error (_("Invalid floating value found in program."));
+      return true;
+    }
+
+  return false;
+}
+
 
 /* Get the value of the FIELDNO'th field (which must be static) of
    TYPE.  */
@@ -3551,6 +3473,11 @@ pack_long (gdb_byte *buf, struct type *t
       store_typed_address (buf, type, (CORE_ADDR) num);
       break;
 
+    case TYPE_CODE_FLT:
+    case TYPE_CODE_DECFLOAT:
+      target_float_from_longest (buf, type, num);
+      break;
+
     default:
       error (_("Unexpected type (%d) encountered for integer constant."),
 	     TYPE_CODE (type));
@@ -3588,6 +3515,11 @@ pack_unsigned_long (gdb_byte *buf, struc
       store_typed_address (buf, type, (CORE_ADDR) num);
       break;
 
+    case TYPE_CODE_FLT:
+    case TYPE_CODE_DECFLOAT:
+      target_float_from_ulongest (buf, type, num);
+      break;
+
     default:
       error (_("Unexpected type (%d) encountered "
 	       "for unsigned integer constant."),
@@ -3697,32 +3629,6 @@ value_from_contents (struct type *type, 
   return result;
 }
 
-struct value *
-value_from_double (struct type *type, DOUBLEST num)
-{
-  struct value *val = allocate_value (type);
-  struct type *base_type = check_typedef (type);
-  enum type_code code = TYPE_CODE (base_type);
-
-  if (code == TYPE_CODE_FLT)
-    {
-      store_typed_floating (value_contents_raw (val), base_type, num);
-    }
-  else
-    error (_("Unexpected type encountered for floating constant."));
-
-  return val;
-}
-
-struct value *
-value_from_decfloat (struct type *type, const gdb_byte *dec)
-{
-  struct value *val = allocate_value (type);
-
-  memcpy (value_contents_raw (val), dec, TYPE_LENGTH (type));
-  return val;
-}
-
 /* Extract a value from the history file.  Input will be of the form
    $digits or $$digits.  See block comment above 'write_dollar_variable'
    for details.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/value.h ./gdb/value.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/value.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/value.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definitions for values of C expressions, for GDB.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,7 +20,6 @@
 #if !defined (VALUE_H)
 #define VALUE_H 1
 
-#include "doublest.h"
 #include "frame.h"		/* For struct frame_id.  */
 
 struct block;
@@ -550,12 +549,12 @@ extern void mark_value_bits_unavailable 
 
    then:
 
-     value_contents_eq(val, 0, val, 8, 6) => 1
-     value_contents_eq(val, 0, val, 4, 4) => 0
-     value_contents_eq(val, 0, val, 8, 8) => 0
-     value_contents_eq(val, 4, val, 12, 2) => 1
-     value_contents_eq(val, 4, val, 12, 4) => 0
-     value_contents_eq(val, 3, val, 4, 4) => 0
+     value_contents_eq(val, 0, val, 8, 6) => true
+     value_contents_eq(val, 0, val, 4, 4) => false
+     value_contents_eq(val, 0, val, 8, 8) => false
+     value_contents_eq(val, 4, val, 12, 2) => true
+     value_contents_eq(val, 4, val, 12, 4) => true
+     value_contents_eq(val, 3, val, 4, 4) => true
 
    If 'x's represent an unavailable byte, 'o' represents an optimized
    out byte, in a value with length 8:
@@ -565,9 +564,9 @@ extern void mark_value_bits_unavailable 
 
    then:
 
-     value_contents_eq(val, 0, val, 2, 2) => 1
-     value_contents_eq(val, 4, val, 6, 2) => 1
-     value_contents_eq(val, 0, val, 4, 4) => 0
+     value_contents_eq(val, 0, val, 2, 2) => true
+     value_contents_eq(val, 4, val, 6, 2) => true
+     value_contents_eq(val, 0, val, 4, 4) => true
 
    We only know whether a value chunk is unavailable or optimized out
    if we've tried to read it.  As this routine is used by printing
@@ -575,18 +574,17 @@ extern void mark_value_bits_unavailable 
    after the inferior is gone, it works with const values.  Therefore,
    this routine must not be called with lazy values.  */
 
-extern int value_contents_eq (const struct value *val1, LONGEST offset1,
-			      const struct value *val2, LONGEST offset2,
-			      LONGEST length);
+extern bool value_contents_eq (const struct value *val1, LONGEST offset1,
+			       const struct value *val2, LONGEST offset2,
+			       LONGEST length);
 
 /* Read LENGTH addressable memory units starting at MEMADDR into BUFFER,
    which is (or will be copied to) VAL's contents buffer offset by
-   EMBEDDED_OFFSET (that is, to &VAL->contents[EMBEDDED_OFFSET]).
-   Marks value contents ranges as unavailable if the corresponding
-   memory is likewise unavailable.  STACK indicates whether the memory
-   is known to be stack memory.  */
+   BIT_OFFSET bits.  Marks value contents ranges as unavailable if
+   the corresponding memory is likewise unavailable.  STACK indicates
+   whether the memory is known to be stack memory.  */
 
-extern void read_value_memory (struct value *val, LONGEST embedded_offset,
+extern void read_value_memory (struct value *val, LONGEST bit_offset,
 			       int stack, CORE_ADDR memaddr,
 			       gdb_byte *buffer, size_t length);
 
@@ -609,13 +607,14 @@ extern int print_address_demangle (const
 				   struct gdbarch *, CORE_ADDR,
 				   struct ui_file *, int);
 
+/* Returns true if VAL is of floating-point type.  In addition,
+   throws an error if the value is an invalid floating-point value.  */
+extern bool is_floating_value (struct value *val);
+
 extern LONGEST value_as_long (struct value *val);
-extern DOUBLEST value_as_double (struct value *val);
 extern CORE_ADDR value_as_address (struct value *val);
 
 extern LONGEST unpack_long (struct type *type, const gdb_byte *valaddr);
-extern DOUBLEST unpack_double (struct type *type, const gdb_byte *valaddr,
-			       int *invp);
 extern CORE_ADDR unpack_pointer (struct type *type, const gdb_byte *valaddr);
 
 extern LONGEST unpack_field_as_long (struct type *type,
@@ -641,9 +640,6 @@ extern void pack_long (gdb_byte *buf, st
 extern struct value *value_from_longest (struct type *type, LONGEST num);
 extern struct value *value_from_ulongest (struct type *type, ULONGEST num);
 extern struct value *value_from_pointer (struct type *type, CORE_ADDR addr);
-extern struct value *value_from_double (struct type *type, DOUBLEST num);
-extern struct value *value_from_decfloat (struct type *type,
-					  const gdb_byte *decbytes);
 extern struct value *value_from_history_ref (const char *, const char **);
 extern struct value *value_from_component (struct value *, struct type *,
 					   LONGEST);
@@ -731,6 +727,10 @@ class scoped_value_mark
     free_to_mark ();
   }
 
+  scoped_value_mark (scoped_value_mark &&other) = default;
+
+  DISABLE_COPY_AND_ASSIGN (scoped_value_mark);
+
   /* Free the values currently on the value stack.  */
   void free_to_mark ()
   {
@@ -875,6 +875,15 @@ extern struct value *evaluate_subexp (st
 extern struct value *evaluate_subexpression_type (struct expression *exp,
 						  int subexp);
 
+extern value *evaluate_var_value (enum noside noside, const block *blk,
+				  symbol *var);
+
+extern value *evaluate_var_msym_value (enum noside noside,
+				       struct objfile *objfile,
+				       minimal_symbol *msymbol);
+
+extern value *eval_skip_value (expression *exp);
+
 extern void fetch_subexp_value (struct expression *exp, int *pc,
 				struct value **valp, struct value **resultp,
 				struct value **val_chain,
@@ -928,7 +937,8 @@ extern struct internalvar *lookup_only_i
 
 extern struct internalvar *create_internalvar (const char *name);
 
-extern VEC (char_ptr) *complete_internalvar (const char *name);
+extern void complete_internalvar (completion_tracker &tracker,
+				  const char *name);
 
 /* An internalvar can be dynamically computed by supplying a vector of
    function pointers to perform various operations.  */
@@ -1018,6 +1028,21 @@ extern void value_incref (struct value *
 
 extern void value_free (struct value *val);
 
+/* A free policy class to interface std::unique_ptr with
+   value_free.  */
+
+struct value_deleter
+{
+  void operator() (struct value *value) const
+  {
+    value_free (value);
+  }
+};
+
+/* A unique pointer to a struct value.  */
+
+typedef std::unique_ptr<struct value, value_deleter> gdb_value_up;
+
 extern void free_all_values (void);
 
 extern void free_value_chain (struct value *v);
@@ -1046,9 +1071,6 @@ extern void print_longest (struct ui_fil
 extern void print_floating (const gdb_byte *valaddr, struct type *type,
 			    struct ui_file *stream);
 
-extern void print_decimal_floating (const gdb_byte *valaddr, struct type *type,
-				    struct ui_file *stream);
-
 extern void value_print (struct value *val, struct ui_file *stream,
 			 const struct value_print_options *options);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/varobj.c ./gdb/varobj.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/varobj.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/varobj.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Implementation of the GDB variable objects API.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 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
@@ -54,12 +54,12 @@ const char *varobj_format_string[] =
   { "natural", "binary", "decimal", "hexadecimal", "octal", "zero-hexadecimal" };
 
 /* True if we want to allow Python-based pretty-printing.  */
-static int pretty_printing = 0;
+static bool pretty_printing = false;
 
 void
 varobj_enable_pretty_printing (void)
 {
-  pretty_printing = 1;
+  pretty_printing = true;
 }
 
 /* Data structures */
@@ -68,42 +68,41 @@ varobj_enable_pretty_printing (void)
    varobj.  */
 struct varobj_root
 {
-
   /* The expression for this parent.  */
   expression_up exp;
 
   /* Block for which this expression is valid.  */
-  const struct block *valid_block;
+  const struct block *valid_block = NULL;
 
   /* The frame for this expression.  This field is set iff valid_block is
      not NULL.  */
-  struct frame_id frame;
+  struct frame_id frame = null_frame_id;
 
   /* The global thread ID that this varobj_root belongs to.  This field
      is only valid if valid_block is not NULL.
      When not 0, indicates which thread 'frame' belongs to.
      When 0, indicates that the thread list was empty when the varobj_root
      was created.  */
-  int thread_id;
+  int thread_id = 0;
 
-  /* If 1, the -var-update always recomputes the value in the
+  /* If true, the -var-update always recomputes the value in the
      current thread and frame.  Otherwise, variable object is
      always updated in the specific scope/thread/frame.  */
-  int floating;
+  bool floating = false;
 
-  /* Flag that indicates validity: set to 0 when this varobj_root refers 
+  /* Flag that indicates validity: set to false when this varobj_root refers
      to symbols that do not exist anymore.  */
-  int is_valid;
+  bool is_valid = true;
 
   /* Language-related operations for this variable and its
      children.  */
-  const struct lang_varobj_ops *lang_ops;
+  const struct lang_varobj_ops *lang_ops = NULL;
 
   /* The varobj for this root node.  */
-  struct varobj *rootvar;
+  struct varobj *rootvar = NULL;
 
   /* Next root variable */
-  struct varobj_root *next;
+  struct varobj_root *next = NULL;
 };
 
 /* Dynamic part of varobj.  */
@@ -114,27 +113,27 @@ struct varobj_dynamic
      used to decide if dynamic varobj should recompute their children.
      In the event that the frontend never asked for the children, we
      can avoid that.  */
-  int children_requested;
+  bool children_requested = false;
 
   /* The pretty-printer constructor.  If NULL, then the default
      pretty-printer will be looked up.  If None, then no
      pretty-printer will be installed.  */
-  PyObject *constructor;
+  PyObject *constructor = NULL;
 
   /* The pretty-printer that has been constructed.  If NULL, then a
      new printer object is needed, and one will be constructed.  */
-  PyObject *pretty_printer;
+  PyObject *pretty_printer = NULL;
 
   /* The iterator returned by the printer's 'children' method, or NULL
      if not available.  */
-  struct varobj_iter *child_iter;
+  struct varobj_iter *child_iter = NULL;
 
   /* We request one extra item from the iterator, so that we can
      report to the caller whether there are more items than we have
      already reported.  However, we don't want to install this value
      when we read it, because that will mess up future updates.  So,
      we stash it here instead.  */
-  varobj_item *saved_item;
+  varobj_item *saved_item = NULL;
 };
 
 /* A list of varobjs */
@@ -149,11 +148,11 @@ struct vlist
 
 /* Helper functions for the above subcommands.  */
 
-static int delete_variable (struct varobj *, int);
+static int delete_variable (struct varobj *, bool);
 
-static void delete_variable_1 (int *, struct varobj *, int, int);
+static void delete_variable_1 (int *, struct varobj *, bool, bool);
 
-static int install_variable (struct varobj *);
+static bool install_variable (struct varobj *);
 
 static void uninstall_variable (struct varobj *);
 
@@ -165,21 +164,13 @@ create_child_with_value (struct varobj *
 
 /* Utility routines */
 
-static struct varobj *new_variable (void);
-
-static struct varobj *new_root_variable (void);
-
-static void free_variable (struct varobj *var);
-
-static struct cleanup *make_cleanup_free_variable (struct varobj *var);
-
 static enum varobj_display_formats variable_default_display (struct varobj *);
 
-static int update_type_if_necessary (struct varobj *var,
-				     struct value *new_value);
+static bool update_type_if_necessary (struct varobj *var,
+				      struct value *new_value);
 
-static int install_new_value (struct varobj *var, struct value *value, 
-			      int initial);
+static bool install_new_value (struct varobj *var, struct value *value,
+			       bool initial);
 
 /* Language-specific routines.  */
 
@@ -189,14 +180,14 @@ static std::string name_of_variable (con
 
 static std::string name_of_child (struct varobj *, int);
 
-static struct value *value_of_root (struct varobj **var_handle, int *);
+static struct value *value_of_root (struct varobj **var_handle, bool *);
 
 static struct value *value_of_child (const struct varobj *parent, int index);
 
 static std::string my_value_of_variable (struct varobj *var,
 					 enum varobj_display_formats format);
 
-static int is_root_p (const struct varobj *var);
+static bool is_root_p (const struct varobj *var);
 
 static struct varobj *varobj_add_child (struct varobj *var,
 					struct varobj_item *item);
@@ -219,7 +210,7 @@ static struct vlist **varobj_table;
 
 
 /* API Implementation */
-static int
+static bool
 is_root_p (const struct varobj *var)
 {
   return (var->root->rootvar == var);
@@ -273,12 +264,8 @@ struct varobj *
 varobj_create (const char *objname,
 	       const char *expression, CORE_ADDR frame, enum varobj_type type)
 {
-  struct varobj *var;
-  struct cleanup *old_chain;
-
   /* Fill out a varobj structure for the (root) variable being constructed.  */
-  var = new_root_variable ();
-  old_chain = make_cleanup_free_variable (var);
+  std::unique_ptr<varobj> var (new varobj (new varobj_root));
 
   if (expression != NULL)
     {
@@ -312,7 +299,7 @@ varobj_create (const char *objname,
 
       /* frame = -2 means always use selected frame.  */
       if (type == USE_SELECTED_FRAME)
-	var->root->floating = 1;
+	var->root->floating = true;
 
       pc = 0;
       block = NULL;
@@ -333,7 +320,6 @@ varobj_create (const char *objname,
 
       CATCH (except, RETURN_MASK_ERROR)
 	{
-	  do_cleanups (old_chain);
 	  return NULL;
 	}
       END_CATCH
@@ -343,13 +329,12 @@ varobj_create (const char *objname,
 	  || var->root->exp->elts[0].opcode == OP_TYPEOF
 	  || var->root->exp->elts[0].opcode == OP_DECLTYPE)
 	{
-	  do_cleanups (old_chain);
 	  fprintf_unfiltered (gdb_stderr, "Attempt to use a type name"
 			      " as an expression.\n");
 	  return NULL;
 	}
 
-      var->format = variable_default_display (var);
+      var->format = variable_default_display (var.get ());
       var->root->valid_block = innermost_block;
       var->name = expression;
       /* For a root var, the name and the expr are the same.  */
@@ -403,10 +388,10 @@ varobj_create (const char *objname,
       /* Set language info */
       var->root->lang_ops = var->root->exp->language_defn->la_varobj_ops;
 
-      install_new_value (var, value, 1 /* Initial assignment */);
+      install_new_value (var.get (), value, 1 /* Initial assignment */);
 
       /* Set ourselves as our root.  */
-      var->root->rootvar = var;
+      var->root->rootvar = var.get ();
 
       /* Reset the selected frame.  */
       if (frame_id_p (old_id))
@@ -422,30 +407,23 @@ varobj_create (const char *objname,
 
       /* If a varobj name is duplicated, the install will fail so
          we must cleanup.  */
-      if (!install_variable (var))
-	{
-	  do_cleanups (old_chain);
-	  return NULL;
-	}
+      if (!install_variable (var.get ()))
+	return NULL;
     }
 
-  discard_cleanups (old_chain);
-  return var;
+  return var.release ();
 }
 
 /* Generates an unique name that can be used for a varobj.  */
 
-char *
+std::string
 varobj_gen_name (void)
 {
   static int id = 0;
-  char *obj_name;
 
   /* Generate a name for this object.  */
   id++;
-  obj_name = xstrprintf ("var%d", id);
-
-  return obj_name;
+  return string_printf ("var%d", id);
 }
 
 /* Given an OBJNAME, returns the pointer to the corresponding varobj.  Call
@@ -494,7 +472,7 @@ varobj_get_expression (const struct varo
 /* See varobj.h.  */
 
 int
-varobj_delete (struct varobj *var, int only_children)
+varobj_delete (struct varobj *var, bool only_children)
 {
   return delete_variable (var, only_children);
 }
@@ -577,12 +555,13 @@ varobj_get_display_hint (const struct va
 
 /* Return true if the varobj has items after TO, false otherwise.  */
 
-int
+bool
 varobj_has_more (const struct varobj *var, int to)
 {
-  if (VEC_length (varobj_p, var->children) > to)
-    return 1;
-  return ((to == -1 || VEC_length (varobj_p, var->children) == to)
+  if (var->children.size () > to)
+    return true;
+
+  return ((to == -1 || var->children.size () == to)
 	  && (var->dynamic->saved_item != NULL));
 }
 
@@ -600,7 +579,7 @@ varobj_get_thread_id (const struct varob
 }
 
 void
-varobj_set_frozen (struct varobj *var, int frozen)
+varobj_set_frozen (struct varobj *var, bool frozen)
 {
   /* When a variable is unfrozen, we don't fetch its value.
      The 'not_fetched' flag remains set, so next -var-update
@@ -612,7 +591,7 @@ varobj_set_frozen (struct varobj *var, i
   var->frozen = frozen;
 }
 
-int
+bool
 varobj_get_frozen (const struct varobj *var)
 {
   return var->frozen;
@@ -624,19 +603,22 @@ varobj_get_frozen (const struct varobj *
    used.  */
 
 void
-varobj_restrict_range (VEC (varobj_p) *children, int *from, int *to)
+varobj_restrict_range (const std::vector<varobj *> &children,
+		       int *from, int *to)
 {
+  int len = children.size ();
+
   if (*from < 0 || *to < 0)
     {
       *from = 0;
-      *to = VEC_length (varobj_p, children);
+      *to = len;
     }
   else
     {
-      if (*from > VEC_length (varobj_p, children))
-	*from = VEC_length (varobj_p, children);
-      if (*to > VEC_length (varobj_p, children))
-	*to = VEC_length (varobj_p, children);
+      if (*from > len)
+	*from = len;
+      if (*to > len)
+	*to = len;
       if (*from > *to)
 	*from = *to;
     }
@@ -647,54 +629,54 @@ varobj_restrict_range (VEC (varobj_p) *c
 
 static void
 install_dynamic_child (struct varobj *var,
-		       VEC (varobj_p) **changed,
-		       VEC (varobj_p) **type_changed,
-		       VEC (varobj_p) **newobj,
-		       VEC (varobj_p) **unchanged,
-		       int *cchanged,
+		       std::vector<varobj *> *changed,
+		       std::vector<varobj *> *type_changed,
+		       std::vector<varobj *> *newobj,
+		       std::vector<varobj *> *unchanged,
+		       bool *cchanged,
 		       int index,
 		       struct varobj_item *item)
 {
-  if (VEC_length (varobj_p, var->children) < index + 1)
+  if (var->children.size () < index + 1)
     {
       /* There's no child yet.  */
       struct varobj *child = varobj_add_child (var, item);
 
-      if (newobj)
+      if (newobj != NULL)
 	{
-	  VEC_safe_push (varobj_p, *newobj, child);
-	  *cchanged = 1;
+	  newobj->push_back (child);
+	  *cchanged = true;
 	}
     }
   else
     {
-      varobj_p existing = VEC_index (varobj_p, var->children, index);
-      int type_updated = update_type_if_necessary (existing, item->value);
+      varobj *existing = var->children[index];
+      bool type_updated = update_type_if_necessary (existing, item->value);
 
       if (type_updated)
 	{
-	  if (type_changed)
-	    VEC_safe_push (varobj_p, *type_changed, existing);
+	  if (type_changed != NULL)
+	    type_changed->push_back (existing);
 	}
       if (install_new_value (existing, item->value, 0))
 	{
-	  if (!type_updated && changed)
-	    VEC_safe_push (varobj_p, *changed, existing);
+	  if (!type_updated && changed != NULL)
+	    changed->push_back (existing);
 	}
-      else if (!type_updated && unchanged)
-	VEC_safe_push (varobj_p, *unchanged, existing);
+      else if (!type_updated && unchanged != NULL)
+	unchanged->push_back (existing);
     }
 }
 
 #if HAVE_PYTHON
 
-static int
+static bool
 dynamic_varobj_has_child_method (const struct varobj *var)
 {
   PyObject *printer = var->dynamic->pretty_printer;
 
   if (!gdb_python_initialized)
-    return 0;
+    return false;
 
   gdbpy_enter_varobj enter_py (var);
   return PyObject_HasAttr (printer, gdbpy_children_cst);
@@ -729,20 +711,20 @@ varobj_clear_saved_item (struct varobj_d
     }
 }
 
-static int
+static bool
 update_dynamic_varobj_children (struct varobj *var,
-				VEC (varobj_p) **changed,
-				VEC (varobj_p) **type_changed,
-				VEC (varobj_p) **newobj,
-				VEC (varobj_p) **unchanged,
-				int *cchanged,
-				int update_children,
+				std::vector<varobj *> *changed,
+				std::vector<varobj *> *type_changed,
+				std::vector<varobj *> *newobj,
+				std::vector<varobj *> *unchanged,
+				bool *cchanged,
+				bool update_children,
 				int from,
 				int to)
 {
   int i;
 
-  *cchanged = 0;
+  *cchanged = false;
 
   if (update_children || var->dynamic->child_iter == NULL)
     {
@@ -754,10 +736,10 @@ update_dynamic_varobj_children (struct v
       i = 0;
 
       if (var->dynamic->child_iter == NULL)
-	return 0;
+	return false;
     }
   else
-    i = VEC_length (varobj_p, var->children);
+    i = var->children.size ();
 
   /* We ask for one extra child, so that MI can report whether there
      are more children.  */
@@ -790,7 +772,7 @@ update_dynamic_varobj_children (struct v
       /* We don't want to push the extra child on any report list.  */
       if (to < 0 || i < to)
 	{
-	  int can_mention = from < 0 || i >= from;
+	  bool can_mention = from < 0 || i >= from;
 
 	  install_dynamic_child (var, can_mention ? changed : NULL,
 				 can_mention ? type_changed : NULL,
@@ -811,24 +793,23 @@ update_dynamic_varobj_children (struct v
 	}
     }
 
-  if (i < VEC_length (varobj_p, var->children))
+  if (i < var->children.size ())
     {
-      int j;
+      *cchanged = true;
+      for (int j = i; j < var->children.size (); ++j)
+	varobj_delete (var->children[j], 0);
 
-      *cchanged = 1;
-      for (j = i; j < VEC_length (varobj_p, var->children); ++j)
-	varobj_delete (VEC_index (varobj_p, var->children, j), 0);
-      VEC_truncate (varobj_p, var->children, i);
+      var->children.resize (i);
     }
 
   /* If there are fewer children than requested, note that the list of
      children changed.  */
-  if (to >= 0 && VEC_length (varobj_p, var->children) < to)
-    *cchanged = 1;
+  if (to >= 0 && var->children.size () < to)
+    *cchanged = true;
 
-  var->num_children = VEC_length (varobj_p, var->children);
+  var->num_children = var->children.size ();
 
-  return 1;
+  return true;
 }
 
 int
@@ -838,12 +819,12 @@ varobj_get_num_children (struct varobj *
     {
       if (varobj_is_dynamic_p (var))
 	{
-	  int dummy;
+	  bool dummy;
 
 	  /* If we have a dynamic varobj, don't report -1 children.
 	     So, try to fetch some children first.  */
 	  update_dynamic_varobj_children (var, NULL, NULL, NULL, NULL, &dummy,
-					  0, 0, 0);
+					  false, 0, 0);
 	}
       else
 	var->num_children = number_of_children (var);
@@ -855,20 +836,20 @@ varobj_get_num_children (struct varobj *
 /* Creates a list of the immediate children of a variable object;
    the return code is the number of such children or -1 on error.  */
 
-VEC (varobj_p)*
+const std::vector<varobj *> &
 varobj_list_children (struct varobj *var, int *from, int *to)
 {
-  int i, children_changed;
-
-  var->dynamic->children_requested = 1;
+  var->dynamic->children_requested = true;
 
   if (varobj_is_dynamic_p (var))
     {
+      bool children_changed;
+
       /* This, in theory, can result in the number of children changing without
 	 frontend noticing.  But well, calling -var-list-children on the same
 	 varobj twice is not something a sane frontend would do.  */
       update_dynamic_varobj_children (var, NULL, NULL, NULL, NULL,
-				      &children_changed, 0, 0, *to);
+				      &children_changed, false, 0, *to);
       varobj_restrict_range (var->children, from, to);
       return var->children;
     }
@@ -882,21 +863,18 @@ varobj_list_children (struct varobj *var
 
   /* If we're called when the list of children is not yet initialized,
      allocate enough elements in it.  */
-  while (VEC_length (varobj_p, var->children) < var->num_children)
-    VEC_safe_push (varobj_p, var->children, NULL);
+  while (var->children.size () < var->num_children)
+    var->children.push_back (NULL);
 
-  for (i = 0; i < var->num_children; i++)
+  for (int i = 0; i < var->num_children; i++)
     {
-      varobj_p existing = VEC_index (varobj_p, var->children, i);
-
-      if (existing == NULL)
+      if (var->children[i] == NULL)
 	{
 	  /* Either it's the first call to varobj_list_children for
 	     this variable object, and the child was never created,
 	     or it was explicitly deleted by the client.  */
 	  std::string name = name_of_child (var, i);
-	  existing = create_child (var, i, name);
-	  VEC_replace (varobj_p, var->children, i, existing);
+	  var->children[i] = create_child (var, i, name);
 	}
     }
 
@@ -907,11 +885,10 @@ varobj_list_children (struct varobj *var
 static struct varobj *
 varobj_add_child (struct varobj *var, struct varobj_item *item)
 {
-  varobj_p v = create_child_with_value (var,
-					VEC_length (varobj_p, var->children), 
-					item);
+  varobj *v = create_child_with_value (var, var->children.size (), item);
+
+  var->children.push_back (v);
 
-  VEC_safe_push (varobj_p, var->children, v);
   return v;
 }
 
@@ -942,7 +919,7 @@ varobj_get_gdb_type (const struct varobj
 /* Is VAR a path expression parent, i.e., can it be used to construct
    a valid path expression?  */
 
-static int
+static bool
 is_path_expr_parent (const struct varobj *var)
 {
   gdb_assert (var->root->lang_ops->is_path_expr_parent != NULL);
@@ -953,10 +930,10 @@ is_path_expr_parent (const struct varobj
    a valid path expression?  By default we assume any VAR can be a path
    parent.  */
 
-int
+bool
 varobj_default_is_path_expr_parent (const struct varobj *var)
 {
-  return 1;
+  return true;
 }
 
 /* Return the path expression parent for VAR.  */
@@ -1012,7 +989,7 @@ varobj_get_attributes (const struct varo
 
 /* Return true if VAR is a dynamic varobj.  */
 
-int
+bool
 varobj_is_dynamic_p (const struct varobj *var)
 {
   return var->dynamic->pretty_printer != NULL;
@@ -1035,7 +1012,7 @@ varobj_get_value (struct varobj *var)
    value of the given expression.  */
 /* Note: Invokes functions that can call error().  */
 
-int
+bool
 varobj_set_value (struct varobj *var, const char *expression)
 {
   struct value *val = NULL; /* Initialize to keep gcc happy.  */
@@ -1058,7 +1035,7 @@ varobj_set_value (struct varobj *var, co
   CATCH (except, RETURN_MASK_ERROR)
     {
       /* We cannot proceed without a valid expression.  */
-      return 0;
+      return false;
     }
   END_CATCH
 
@@ -1086,7 +1063,7 @@ varobj_set_value (struct varobj *var, co
 
   CATCH (except, RETURN_MASK_ERROR)
     {
-      return 0;
+      return false;
     }
   END_CATCH
 
@@ -1096,9 +1073,9 @@ varobj_set_value (struct varobj *var, co
      variable as changed -- because the first assignment has set the
      'updated' flag.  There's no need to optimize that, because return value
      of -var-update should be considered an approximation.  */
-  var->updated = install_new_value (var, val, 0 /* Compare values.  */);
+  var->updated = install_new_value (var, val, false /* Compare values.  */);
   input_radix = saved_input_radix;
-  return 1;
+  return true;
 }
 
 #if HAVE_PYTHON
@@ -1222,7 +1199,7 @@ install_new_value_visualizer (struct var
    VAR will change when a new value NEW_VALUE is assigned and if it is so
    updates the type of VAR.  */
 
-static int
+static bool
 update_type_if_necessary (struct varobj *var, struct value *new_value)
 {
   if (new_value)
@@ -1243,36 +1220,36 @@ update_type_if_necessary (struct varobj 
 
 	      /* This information may be not valid for a new type.  */
 	      varobj_delete (var, 1);
-	      VEC_free (varobj_p, var->children);
+	      var->children.clear ();
 	      var->num_children = -1;
-	      return 1;
+	      return true;
 	    }
 	}
     }
 
-  return 0;
+  return false;
 }
 
-/* Assign a new value to a variable object.  If INITIAL is non-zero,
-   this is the first assignement after the variable object was just
+/* Assign a new value to a variable object.  If INITIAL is true,
+   this is the first assignment after the variable object was just
    created, or changed type.  In that case, just assign the value 
-   and return 0.
-   Otherwise, assign the new value, and return 1 if the value is
-   different from the current one, 0 otherwise.  The comparison is
+   and return false.
+   Otherwise, assign the new value, and return true if the value is
+   different from the current one, false otherwise.  The comparison is
    done on textual representation of value.  Therefore, some types
    need not be compared.  E.g.  for structures the reported value is
    always "{...}", so no comparison is necessary here.  If the old
-   value was NULL and new one is not, or vice versa, we always return 1.
+   value was NULL and new one is not, or vice versa, we always return true.
 
    The VALUE parameter should not be released -- the function will
    take care of releasing it when needed.  */
-static int
-install_new_value (struct varobj *var, struct value *value, int initial)
+static bool
+install_new_value (struct varobj *var, struct value *value, bool initial)
 { 
-  int changeable;
-  int need_to_fetch;
-  int changed = 0;
-  int intentionally_not_fetched = 0;
+  bool changeable;
+  bool need_to_fetch;
+  bool changed = false;
+  bool intentionally_not_fetched = false;
 
   /* We need to know the varobj's type to decide if the value should
      be fetched or not.  C++ fake children (public/protected/private)
@@ -1284,7 +1261,7 @@ install_new_value (struct varobj *var, s
      changeable.  FIXME: need to make sure this behaviour will not
      mess up read-sensitive values.  */
   if (var->dynamic->pretty_printer != NULL)
-    changeable = 1;
+    changeable = true;
 
   need_to_fetch = changeable;
 
@@ -1304,7 +1281,7 @@ install_new_value (struct varobj *var, s
        the data from memory.  For unions, that means we'll read the
        same memory more than once, which is not desirable.  So
        fetch now.  */
-    need_to_fetch = 1;
+    need_to_fetch = true;
 
   /* The new value might be lazy.  If the type is changeable,
      that is we'll be comparing values of this type, fetch the
@@ -1313,7 +1290,7 @@ install_new_value (struct varobj *var, s
   if (need_to_fetch && value && value_lazy (value))
     {
       const struct varobj *parent = var->parent;
-      int frozen = var->frozen;
+      bool frozen = var->frozen;
 
       for (; !frozen && parent; parent = parent->parent)
 	frozen |= parent->frozen;
@@ -1324,7 +1301,7 @@ install_new_value (struct varobj *var, s
 	     variables, we don't do fetch on initial assignment.
 	     For non-initial assignemnt we do the fetch, since it means we're
 	     explicitly asked to compare the new value with the old one.  */
-	  intentionally_not_fetched = 1;
+	  intentionally_not_fetched = true;
 	}
       else
 	{
@@ -1370,9 +1347,7 @@ install_new_value (struct varobj *var, s
 	 varobj had after the previous -var-update.  So need to the
 	 varobj as changed.  */
       if (var->updated)
-	{
-	  changed = 1;
-	}
+	changed = true;
       else if (var->dynamic->pretty_printer == NULL)
 	{
 	  /* Try to compare the values.  That requires that both
@@ -1384,14 +1359,14 @@ install_new_value (struct varobj *var, s
 		 Now that we've fetched the real value, we need to report
 		 this varobj as changed so that UI can show the real
 		 value.  */
-	      changed = 1;
+	      changed = true;
 	    }
           else  if (var->value == NULL && value == NULL)
 	    /* Equal.  */
 	    ;
 	  else if (var->value == NULL || value == NULL)
 	    {
-	      changed = 1;
+	      changed = true;
 	    }
 	  else
 	    {
@@ -1400,7 +1375,7 @@ install_new_value (struct varobj *var, s
 
 	      gdb_assert (!var->print_value.empty () && !print_value.empty ());
 	      if (var->print_value != print_value)
-		changed = 1;
+		changed = true;
 	    }
 	}
     }
@@ -1419,10 +1394,10 @@ install_new_value (struct varobj *var, s
     value_free (var->value);
   var->value = value;
   if (value && value_lazy (value) && intentionally_not_fetched)
-    var->not_fetched = 1;
+    var->not_fetched = true;
   else
-    var->not_fetched = 0;
-  var->updated = 0;
+    var->not_fetched = false;
+  var->updated = false;
 
   install_new_value_visualizer (var);
 
@@ -1436,7 +1411,7 @@ install_new_value (struct varobj *var, s
 	  || (!var->print_value.empty () && print_value.empty ())
 	  || (!var->print_value.empty () && !print_value.empty ()
 	      && var->print_value != print_value))
-	  changed = 1;
+	  changed = true;
     }
   var->print_value = print_value;
 
@@ -1501,13 +1476,13 @@ varobj_set_visualizer (struct varobj *va
 }
 
 /* If NEW_VALUE is the new value of the given varobj (var), return
-   non-zero if var has mutated.  In other words, if the type of
+   true if var has mutated.  In other words, if the type of
    the new value is different from the type of the varobj's old
    value.
 
    NEW_VALUE may be NULL, if the varobj is now out of scope.  */
 
-static int
+static bool
 varobj_value_has_mutated (const struct varobj *var, struct value *new_value,
 			  struct type *new_type)
 {
@@ -1516,9 +1491,9 @@ varobj_value_has_mutated (const struct v
      the type has mutated or not.  For all intents and purposes,
      it has not mutated.  */
   if (var->num_children < 0)
-    return 0;
+    return false;
 
-  if (var->root->lang_ops->value_has_mutated)
+  if (var->root->lang_ops->value_has_mutated != NULL)
     {
       /* The varobj module, when installing new values, explicitly strips
 	 references, saying that we're not interested in those addresses.
@@ -1530,7 +1505,7 @@ varobj_value_has_mutated (const struct v
       return var->root->lang_ops->value_has_mutated (var, new_value, new_type);
     }
   else
-    return 0;
+    return false;
 }
 
 /* Update the values for a variable and its children.  This is a
@@ -1539,7 +1514,7 @@ varobj_value_has_mutated (const struct v
    through its children, reconstructing them and noting if they've
    changed.
 
-   The EXPLICIT parameter specifies if this call is result
+   The IS_EXPLICIT parameter specifies if this call is result
    of MI request to update this specific variable, or 
    result of implicit -var-update *.  For implicit request, we don't
    update frozen variables.
@@ -1548,14 +1523,13 @@ varobj_value_has_mutated (const struct v
    returns TYPE_CHANGED, then it has done this and VARP will be modified
    to point to the new varobj.  */
 
-VEC(varobj_update_result) *
-varobj_update (struct varobj **varp, int is_explicit)
+std::vector<varobj_update_result>
+varobj_update (struct varobj **varp, bool is_explicit)
 {
-  int type_changed = 0;
-  int i;
+  bool type_changed = false;
   struct value *newobj;
-  VEC (varobj_update_result) *stack = NULL;
-  VEC (varobj_update_result) *result = NULL;
+  std::vector<varobj_update_result> stack;
+  std::vector<varobj_update_result> result;
 
   /* Frozen means frozen -- we don't check for any change in
      this varobj, including its going out of scope, or
@@ -1567,20 +1541,13 @@ varobj_update (struct varobj **varp, int
 
   if (!(*varp)->root->is_valid)
     {
-      varobj_update_result r = {0};
-
-      r.varobj = *varp;
-      r.status = VAROBJ_INVALID;
-      VEC_safe_push (varobj_update_result, result, &r);
+      result.emplace_back (*varp, VAROBJ_INVALID);
       return result;
     }
 
   if ((*varp)->root->rootvar == *varp)
     {
-      varobj_update_result r = {0};
-
-      r.varobj = *varp;
-      r.status = VAROBJ_IN_SCOPE;
+      varobj_update_result r (*varp);
 
       /* Update the root variable.  value_of_root can return NULL
 	 if the variable is no longer around, i.e. we stepped out of
@@ -1588,42 +1555,37 @@ varobj_update (struct varobj **varp, int
 	 value_of_root variable dispose of the varobj if the type
 	 has changed.  */
       newobj = value_of_root (varp, &type_changed);
-      if (update_type_if_necessary(*varp, newobj))
-	  type_changed = 1;
+      if (update_type_if_necessary (*varp, newobj))
+	  type_changed = true;
       r.varobj = *varp;
       r.type_changed = type_changed;
       if (install_new_value ((*varp), newobj, type_changed))
-	r.changed = 1;
+	r.changed = true;
       
       if (newobj == NULL)
 	r.status = VAROBJ_NOT_IN_SCOPE;
-      r.value_installed = 1;
+      r.value_installed = true;
 
       if (r.status == VAROBJ_NOT_IN_SCOPE)
 	{
 	  if (r.type_changed || r.changed)
-	    VEC_safe_push (varobj_update_result, result, &r);
+	    result.push_back (std::move (r));
+
 	  return result;
 	}
-            
-      VEC_safe_push (varobj_update_result, stack, &r);
-    }
-  else
-    {
-      varobj_update_result r = {0};
 
-      r.varobj = *varp;
-      VEC_safe_push (varobj_update_result, stack, &r);
+      stack.push_back (std::move (r));
     }
+  else
+    stack.emplace_back (*varp);
 
   /* Walk through the children, reconstructing them all.  */
-  while (!VEC_empty (varobj_update_result, stack))
+  while (!stack.empty ())
     {
-      varobj_update_result r = *(VEC_last (varobj_update_result, stack));
+      varobj_update_result r = std::move (stack.back ());
+      stack.pop_back ();
       struct varobj *v = r.varobj;
 
-      VEC_pop (varobj_update_result, stack);
-
       /* Update this variable, unless it's a root, which is already
 	 updated.  */
       if (!r.value_installed)
@@ -1631,8 +1593,8 @@ varobj_update (struct varobj **varp, int
 	  struct type *new_type;
 
 	  newobj = value_of_child (v->parent, v->index);
-	  if (update_type_if_necessary(v, newobj))
-	    r.type_changed = 1;
+	  if (update_type_if_necessary (v, newobj))
+	    r.type_changed = true;
 	  if (newobj)
 	    new_type = value_type (newobj);
 	  else
@@ -1647,13 +1609,13 @@ varobj_update (struct varobj **varp, int
 	      v->to = -1;
 	      v->from = -1;
 	      v->type = new_type;
-	      r.type_changed = 1;
+	      r.type_changed = true;
 	    }
 
 	  if (install_new_value (v, newobj, r.type_changed))
 	    {
-	      r.changed = 1;
-	      v->updated = 0;
+	      r.changed = true;
+	      v->updated = false;
 	    }
 	}
 
@@ -1661,16 +1623,15 @@ varobj_update (struct varobj **varp, int
 	 for which -var-list-children was never invoked.  */
       if (varobj_is_dynamic_p (v))
 	{
-	  VEC (varobj_p) *changed = 0, *type_changed = 0, *unchanged = 0;
-	  VEC (varobj_p) *newobj = 0;
-	  int i, children_changed = 0;
+	  std::vector<varobj *> changed, type_changed, unchanged, newobj;
+	  bool children_changed = false;
 
 	  if (v->frozen)
 	    continue;
 
 	  if (!v->dynamic->children_requested)
 	    {
-	      int dummy;
+	      bool dummy;
 
 	      /* If we initially did not have potential children, but
 		 now we do, consider the varobj as changed.
@@ -1681,75 +1642,65 @@ varobj_update (struct varobj **varp, int
 	      if (!varobj_has_more (v, 0))
 		{
 		  update_dynamic_varobj_children (v, NULL, NULL, NULL, NULL,
-						  &dummy, 0, 0, 0);
+						  &dummy, false, 0, 0);
 		  if (varobj_has_more (v, 0))
-		    r.changed = 1;
+		    r.changed = true;
 		}
 
 	      if (r.changed)
-		VEC_safe_push (varobj_update_result, result, &r);
+		result.push_back (std::move (r));
 
 	      continue;
 	    }
 
-	  /* If update_dynamic_varobj_children returns 0, then we have
+	  /* If update_dynamic_varobj_children returns false, then we have
 	     a non-conforming pretty-printer, so we skip it.  */
 	  if (update_dynamic_varobj_children (v, &changed, &type_changed, &newobj,
-					      &unchanged, &children_changed, 1,
+					      &unchanged, &children_changed, true,
 					      v->from, v->to))
 	    {
-	      if (children_changed || newobj)
+	      if (children_changed || !newobj.empty ())
 		{
-		  r.children_changed = 1;
-		  r.newobj = newobj;
+		  r.children_changed = true;
+		  r.newobj = std::move (newobj);
 		}
 	      /* Push in reverse order so that the first child is
 		 popped from the work stack first, and so will be
 		 added to result first.  This does not affect
 		 correctness, just "nicer".  */
-	      for (i = VEC_length (varobj_p, type_changed) - 1; i >= 0; --i)
+	      for (int i = type_changed.size () - 1; i >= 0; --i)
 		{
-		  varobj_p tmp = VEC_index (varobj_p, type_changed, i);
-		  varobj_update_result r = {0};
+		  varobj_update_result r (type_changed[i]);
 
 		  /* Type may change only if value was changed.  */
-		  r.varobj = tmp;
-		  r.changed = 1;
-		  r.type_changed = 1;
-		  r.value_installed = 1;
-		  VEC_safe_push (varobj_update_result, stack, &r);
+		  r.changed = true;
+		  r.type_changed = true;
+		  r.value_installed = true;
+
+		  stack.push_back (std::move (r));
 		}
-	      for (i = VEC_length (varobj_p, changed) - 1; i >= 0; --i)
+	      for (int i = changed.size () - 1; i >= 0; --i)
 		{
-		  varobj_p tmp = VEC_index (varobj_p, changed, i);
-		  varobj_update_result r = {0};
+		  varobj_update_result r (changed[i]);
 
-		  r.varobj = tmp;
-		  r.changed = 1;
-		  r.value_installed = 1;
-		  VEC_safe_push (varobj_update_result, stack, &r);
+		  r.changed = true;
+		  r.value_installed = true;
+
+		  stack.push_back (std::move (r));
 		}
-	      for (i = VEC_length (varobj_p, unchanged) - 1; i >= 0; --i)
-	      	{
-		  varobj_p tmp = VEC_index (varobj_p, unchanged, i);
-
-	      	  if (!tmp->frozen)
-	      	    {
-	      	      varobj_update_result r = {0};
-
-		      r.varobj = tmp;
-	      	      r.value_installed = 1;
-	      	      VEC_safe_push (varobj_update_result, stack, &r);
-	      	    }
-	      	}
-	      if (r.changed || r.children_changed)
-		VEC_safe_push (varobj_update_result, result, &r);
+	      for (int i = unchanged.size () - 1; i >= 0; --i)
+		{
+		  if (!unchanged[i]->frozen)
+		    {
+		      varobj_update_result r (unchanged[i]);
 
-	      /* Free CHANGED, TYPE_CHANGED and UNCHANGED, but not NEW,
-		 because NEW has been put into the result vector.  */
-	      VEC_free (varobj_p, changed);
-	      VEC_free (varobj_p, type_changed);
-	      VEC_free (varobj_p, unchanged);
+		      r.value_installed = true;
+
+		      stack.push_back (std::move (r));
+		    }
+		}
+	      if (r.changed || r.children_changed)
+		result.push_back (std::move (r));
 
 	      continue;
 	    }
@@ -1759,29 +1710,21 @@ varobj_update (struct varobj **varp, int
 	 child is popped from the work stack first, and so
 	 will be added to result first.  This does not
 	 affect correctness, just "nicer".  */
-      for (i = VEC_length (varobj_p, v->children)-1; i >= 0; --i)
+      for (int i = v->children.size () - 1; i >= 0; --i)
 	{
-	  varobj_p c = VEC_index (varobj_p, v->children, i);
+	  varobj *c = v->children[i];
 
 	  /* Child may be NULL if explicitly deleted by -var-delete.  */
 	  if (c != NULL && !c->frozen)
-	    {
-	      varobj_update_result r = {0};
-
-	      r.varobj = c;
-	      VEC_safe_push (varobj_update_result, stack, &r);
-	    }
+	    stack.emplace_back (c);
 	}
 
       if (r.changed || r.type_changed)
-	VEC_safe_push (varobj_update_result, result, &r);
+	result.push_back (std::move (r));
     }
 
-  VEC_free (varobj_update_result, stack);
-
   return result;
 }
-
 
 /* Helper functions */
 
@@ -1790,12 +1733,12 @@ varobj_update (struct varobj **varp, int
  */
 
 static int
-delete_variable (struct varobj *var, int only_children_p)
+delete_variable (struct varobj *var, bool only_children_p)
 {
   int delcount = 0;
 
   delete_variable_1 (&delcount, var, only_children_p,
-		     1 /* remove_from_parent_p */ );
+		     true /* remove_from_parent_p */ );
 
   return delcount;
 }
@@ -1805,23 +1748,21 @@ delete_variable (struct varobj *var, int
    and the parent is not removed we dump core.  It must be always
    initially called with remove_from_parent_p set.  */
 static void
-delete_variable_1 (int *delcountp, struct varobj *var, int only_children_p,
-		   int remove_from_parent_p)
+delete_variable_1 (int *delcountp, struct varobj *var, bool only_children_p,
+		   bool remove_from_parent_p)
 {
-  int i;
-
   /* Delete any children of this variable, too.  */
-  for (i = 0; i < VEC_length (varobj_p, var->children); ++i)
+  for (varobj *child : var->children)
     {   
-      varobj_p child = VEC_index (varobj_p, var->children, i);
-
       if (!child)
 	continue;
+
       if (!remove_from_parent_p)
 	child->parent = NULL;
-      delete_variable_1 (delcountp, child, 0, only_children_p);
+
+      delete_variable_1 (delcountp, child, false, only_children_p);
     }
-  VEC_free (varobj_p, var->children);
+  var->children.clear ();
 
   /* if we were called to delete only the children we are done here.  */
   if (only_children_p)
@@ -1841,19 +1782,17 @@ delete_variable_1 (int *delcountp, struc
      expensive list search to find the element to remove when we are
      discarding the list afterwards.  */
   if ((remove_from_parent_p) && (var->parent != NULL))
-    {
-      VEC_replace (varobj_p, var->parent->children, var->index, NULL);
-    }
+    var->parent->children[var->index] = NULL;
 
   if (!var->obj_name.empty ())
     uninstall_variable (var);
 
   /* Free memory associated with this variable.  */
-  free_variable (var);
+  delete var;
 }
 
 /* Install the given variable VAR with the object name VAR->OBJ_NAME.  */
-static int
+static bool
 install_variable (struct varobj *var)
 {
   struct vlist *cv;
@@ -1891,7 +1830,7 @@ install_variable (struct varobj *var)
       rootlist = var->root;
     }
 
-  return 1;			/* OK */
+  return true;			/* OK */
 }
 
 /* Unistall the object VAR.  */
@@ -1988,15 +1927,12 @@ static struct varobj *
 create_child_with_value (struct varobj *parent, int index,
 			 struct varobj_item *item)
 {
-  struct varobj *child;
-
-  child = new_variable ();
+  varobj *child = new varobj (parent->root);
 
   /* NAME is allocated by caller.  */
   std::swap (child->name, item->name);
   child->index = index;
   child->parent = parent;
-  child->root = parent->root;
 
   if (varobj_is_anonymous_child (child))
     child->obj_name = string_printf ("%s.%d_anonymous",
@@ -2029,57 +1965,17 @@ create_child_with_value (struct varobj *
  */
 
 /* Allocate memory and initialize a new variable.  */
-static struct varobj *
-new_variable (void)
-{
-  struct varobj *var;
-
-  var = new varobj ();
-  var->index = -1;
-  var->type = NULL;
-  var->value = NULL;
-  var->num_children = -1;
-  var->parent = NULL;
-  var->children = NULL;
-  var->format = FORMAT_NATURAL;
-  var->root = NULL;
-  var->updated = 0;
-  var->frozen = 0;
-  var->not_fetched = 0;
-  var->dynamic = XNEW (struct varobj_dynamic);
-  var->dynamic->children_requested = 0;
-  var->from = -1;
-  var->to = -1;
-  var->dynamic->constructor = 0;
-  var->dynamic->pretty_printer = 0;
-  var->dynamic->child_iter = 0;
-  var->dynamic->saved_item = 0;
-
-  return var;
-}
-
-/* Allocate memory and initialize a new root variable.  */
-static struct varobj *
-new_root_variable (void)
+varobj::varobj (varobj_root *root_)
+: root (root_), dynamic (new varobj_dynamic)
 {
-  struct varobj *var = new_variable ();
-
-  var->root = new varobj_root ();
-  var->root->lang_ops = NULL;
-  var->root->exp = NULL;
-  var->root->valid_block = NULL;
-  var->root->frame = null_frame_id;
-  var->root->floating = 0;
-  var->root->rootvar = NULL;
-  var->root->is_valid = 1;
-
-  return var;
 }
 
 /* Free any allocated memory associated with VAR.  */
-static void
-free_variable (struct varobj *var)
+
+varobj::~varobj ()
 {
+  varobj *var = this;
+
 #if HAVE_PYTHON
   if (var->dynamic->pretty_printer != NULL)
     {
@@ -2097,20 +1993,7 @@ free_variable (struct varobj *var)
   if (is_root_p (var))
     delete var->root;
 
-  xfree (var->dynamic);
-  delete var;
-}
-
-static void
-do_free_variable_cleanup (void *var)
-{
-  free_variable ((struct varobj *) var);
-}
-
-static struct cleanup *
-make_cleanup_free_variable (struct varobj *var)
-{
-  return make_cleanup (do_free_variable_cleanup, var);
+  delete var->dynamic;
 }
 
 /* Return the type of the value that's stored in VAR,
@@ -2186,13 +2069,13 @@ name_of_child (struct varobj *var, int i
 }
 
 /* If frame associated with VAR can be found, switch
-   to it and return 1.  Otherwise, return 0.  */
+   to it and return true.  Otherwise, return false.  */
 
-static int
+static bool
 check_scope (const struct varobj *var)
 {
   struct frame_info *fi;
-  int scope;
+  bool scope;
 
   fi = frame_find_by_id (var->root->frame);
   scope = fi != NULL;
@@ -2203,7 +2086,7 @@ check_scope (const struct varobj *var)
 
       if (pc <  BLOCK_START (var->root->valid_block) ||
 	  pc >= BLOCK_END (var->root->valid_block))
-	scope = 0;
+	scope = false;
       else
 	select_frame (fi);
     }
@@ -2217,19 +2100,18 @@ value_of_root_1 (struct varobj **var_han
 {
   struct value *new_val = NULL;
   struct varobj *var = *var_handle;
-  int within_scope = 0;
-  struct cleanup *back_to;
+  bool within_scope = false;
 								 
   /*  Only root variables can be updated...  */
   if (!is_root_p (var))
     /* Not a root var.  */
     return NULL;
 
-  back_to = make_cleanup_restore_current_thread ();
+  scoped_restore_current_thread restore_thread;
 
   /* Determine whether the variable is still around.  */
   if (var->root->valid_block == NULL || var->root->floating)
-    within_scope = 1;
+    within_scope = true;
   else if (var->root->thread_id == 0)
     {
       /* The program was single-threaded when the variable object was
@@ -2264,8 +2146,6 @@ value_of_root_1 (struct varobj **var_han
       END_CATCH
     }
 
-  do_cleanups (back_to);
-
   return new_val;
 }
 
@@ -2279,7 +2159,7 @@ value_of_root_1 (struct varobj **var_han
    - *var_handle will be set to the new varobj 
    Otherwise, *type_changed will be set to 0.  */
 static struct value *
-value_of_root (struct varobj **var_handle, int *type_changed)
+value_of_root (struct varobj **var_handle, bool *type_changed)
 {
   struct varobj *var;
 
@@ -2329,7 +2209,7 @@ value_of_root (struct varobj **var_handl
 	  install_variable (tmp_var);
 	  *var_handle = tmp_var;
 	  var = *var_handle;
-	  *type_changed = 1;
+	  *type_changed = true;
 	}
     }
   else
@@ -2355,7 +2235,7 @@ value_of_root (struct varobj **var_handl
 	var->num_children = -1;
 	var->to = -1;
 	var->from = -1;
-	*type_changed = 1;
+	*type_changed = true;
       }
     return value;
   }
@@ -2406,7 +2286,7 @@ varobj_value_get_print_value (struct val
   gdb::unique_xmalloc_ptr<char> encoding;
   /* Initialize it just to avoid a GCC false warning.  */
   CORE_ADDR str_addr = 0;
-  int string_print = 0;
+  bool string_print = false;
 
   if (value == NULL)
     return std::string ();
@@ -2446,7 +2326,7 @@ varobj_value_get_print_value (struct val
 		    {
 		      gdbpy_extract_lazy_string (output.get (), &str_addr,
 						 &type, &len, &encoding);
-		      string_print = 1;
+		      string_print = true;
 		    }
 		  else
 		    {
@@ -2468,7 +2348,7 @@ varobj_value_get_print_value (struct val
 			  if (hint)
 			    {
 			      if (!strcmp (hint.get (), "string"))
-				string_print = 1;
+				string_print = true;
 			    }
 
 			  thevalue = std::string (s.get ());
@@ -2510,13 +2390,13 @@ varobj_value_get_print_value (struct val
   return std::move (stb.string ());
 }
 
-int
+bool
 varobj_editable_p (const struct varobj *var)
 {
   struct type *type;
 
   if (!(var->root->is_valid && var->value && VALUE_LVAL (var->value)))
-    return 0;
+    return false;
 
   type = varobj_get_value_type (var);
 
@@ -2527,27 +2407,27 @@ varobj_editable_p (const struct varobj *
     case TYPE_CODE_ARRAY:
     case TYPE_CODE_FUNC:
     case TYPE_CODE_METHOD:
-      return 0;
+      return false;
       break;
 
     default:
-      return 1;
+      return true;
       break;
     }
 }
 
 /* Call VAR's value_is_changeable_p language-specific callback.  */
 
-int
+bool
 varobj_value_is_changeable_p (const struct varobj *var)
 {
   return var->root->lang_ops->value_is_changeable_p (var);
 }
 
-/* Return 1 if that varobj is floating, that is is always evaluated in the
+/* Return true if that varobj is floating, that is is always evaluated in the
    selected frame, and not bound to thread/frame.  Such variable objects
    are created using '@' as frame specifier to -var-create.  */
-int
+bool
 varobj_floating_p (const struct varobj *var)
 {
   return var->root->floating;
@@ -2556,14 +2436,14 @@ varobj_floating_p (const struct varobj *
 /* Implement the "value_is_changeable_p" varobj callback for most
    languages.  */
 
-int
+bool
 varobj_default_value_is_changeable_p (const struct varobj *var)
 {
-  int r;
+  bool r;
   struct type *type;
 
   if (CPLUS_FAKE_CHILD (var))
-    return 0;
+    return false;
 
   type = varobj_get_value_type (var);
 
@@ -2572,11 +2452,11 @@ varobj_default_value_is_changeable_p (co
     case TYPE_CODE_STRUCT:
     case TYPE_CODE_UNION:
     case TYPE_CODE_ARRAY:
-      r = 0;
+      r = false;
       break;
 
     default:
-      r = 1;
+      r = true;
     }
 
   return r;
@@ -2626,10 +2506,10 @@ varobj_invalidate_iter (struct varobj *v
 	  install_variable (tmp_var);
 	}
       else
-	var->root->is_valid = 0;
+	var->root->is_valid = false;
     }
   else /* locals must be invalidated.  */
-    var->root->is_valid = 0;
+    var->root->is_valid = false;
 }
 
 /* Invalidate the varobjs that are tied to locals and re-create the ones that
@@ -2641,8 +2521,7 @@ varobj_invalidate (void)
 {
   all_root_varobjs (varobj_invalidate_iter, NULL);
 }
-
-extern void _initialize_varobj (void);
+
 void
 _initialize_varobj (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/varobj.h ./gdb/varobj.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/varobj.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/varobj.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* GDB variable objects API.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 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
@@ -57,29 +57,33 @@ extern const char *varobj_format_string[
 
 struct varobj;
 
-typedef struct varobj *varobj_p;
-DEF_VEC_P (varobj_p);
-
-typedef struct varobj_update_result_t
+struct varobj_update_result
 {
+  varobj_update_result (struct varobj *varobj_,
+			varobj_scope_status status_ = VAROBJ_IN_SCOPE)
+  : varobj (varobj_), status (status_)
+  {}
+
+  varobj_update_result (varobj_update_result &&other) = default;
+
+  DISABLE_COPY_AND_ASSIGN (varobj_update_result);
+
   struct varobj *varobj;
-  int type_changed;
-  int children_changed;
-  int changed;
+  bool type_changed = false;
+  bool children_changed = false;
+  bool changed = false;
   enum varobj_scope_status status;
   /* This variable is used internally by varobj_update to indicate if the
      new value of varobj is already computed and installed, or has to
      be yet installed.  Don't use this outside varobj.c.  */
-  int value_installed;  
+  bool value_installed = false;
 
   /* This will be non-NULL when new children were added to the varobj.
      It lists the new children (which must necessarily come at the end
      of the child list) added during an update.  The caller is
      responsible for freeing this vector.  */
-  VEC (varobj_p) *newobj;
-} varobj_update_result;
-
-DEF_VEC_O (varobj_update_result);
+  std::vector<struct varobj *> newobj;
+};
 
 struct varobj_root;
 struct varobj_dynamic;
@@ -89,6 +93,9 @@ struct varobj_dynamic;
    a particular object variable.  */
 struct varobj
 {
+  explicit varobj (varobj_root *root_);
+  ~varobj ();
+
   /* Name of the variable for this object.  If this variable is a
      child, then this name will be the child's source name.
      (bar, not foo.bar).  */
@@ -104,37 +111,37 @@ struct varobj
   std::string obj_name;
 
   /* Index of this variable in its parent or -1.  */
-  int index;
+  int index = -1;
 
   /* The type of this variable.  This can be NULL
      for artificial variable objects -- currently, the "accessibility"
      variable objects in C++.  */
-  struct type *type;
+  struct type *type = NULL;
 
   /* The value of this expression or subexpression.  A NULL value
      indicates there was an error getting this value.
      Invariant: if varobj_value_is_changeable_p (this) is non-zero, 
      the value is either NULL, or not lazy.  */
-  struct value *value;
+  struct value *value = NULL;
 
   /* The number of (immediate) children this variable has.  */
-  int num_children;
+  int num_children = -1;
 
   /* If this object is a child, this points to its immediate parent.  */
-  const struct varobj *parent;
+  struct varobj *parent = NULL;
 
   /* Children of this object.  */
-  VEC (varobj_p) *children;
+  std::vector<varobj *> children;
 
   /* Description of the root variable.  Points to root variable for
      children.  */
   struct varobj_root *root;
 
   /* The format of the output for this object.  */
-  enum varobj_display_formats format;
+  enum varobj_display_formats format = FORMAT_NATURAL;
 
   /* Was this variable updated via a varobj_set_value operation.  */
-  int updated;
+  bool updated = false;
 
   /* Last print value.  */
   std::string print_value;
@@ -142,18 +149,18 @@ struct varobj
   /* Is this variable frozen.  Frozen variables are never implicitly
      updated by -var-update * 
      or -var-update <direct-or-indirect-parent>.  */
-  int frozen;
+  bool frozen = false;
 
   /* Is the value of this variable intentionally not fetched?  It is
      not fetched if either the variable is frozen, or any parents is
      frozen.  */
-  int not_fetched;
+  bool not_fetched = false;
 
   /* Sub-range of children which the MI consumer has requested.  If
      FROM < 0 or TO < 0, means that all children have been
      requested.  */
-  int from;
-  int to;
+  int from = -1;
+  int to = -1;
 
   /* Dynamic part of varobj.  */
   struct varobj_dynamic *dynamic;
@@ -190,17 +197,17 @@ struct lang_varobj_ops
   std::string (*value_of_variable) (const struct varobj *var,
 				    enum varobj_display_formats format);
 
-  /* Return non-zero if changes in value of VAR must be detected and
-     reported by -var-update.  Return zero if -var-update should never
+  /* Return true if changes in value of VAR must be detected and
+     reported by -var-update.  Return false if -var-update should never
      report changes of such values.  This makes sense for structures
      (since the changes in children values will be reported separately),
      or for artificial objects (like 'public' pseudo-field in C++).
 
-     Return value of 0 means that gdb need not call value_fetch_lazy
+     Return value of false means that gdb need not call value_fetch_lazy
      for the value of this variable object.  */
-  int (*value_is_changeable_p) (const struct varobj *var);
+  bool (*value_is_changeable_p) (const struct varobj *var);
 
-  /* Return nonzero if the type of VAR has mutated.
+  /* Return true if the type of VAR has mutated.
 
      VAR's value is still the varobj's previous value, while NEW_VALUE
      is VAR's new value and NEW_TYPE is the var's new type.  NEW_VALUE
@@ -212,14 +219,14 @@ struct lang_varobj_ops
      children is set (not < 0).
 
      Languages where types do not mutate can set this to NULL.  */
-  int (*value_has_mutated) (const struct varobj *var, struct value *new_value,
-			    struct type *new_type);
+  bool (*value_has_mutated) (const struct varobj *var, struct value *new_value,
+			     struct type *new_type);
 
-  /* Return nonzero if VAR is a suitable path expression parent.
+  /* Return true if VAR is a suitable path expression parent.
 
      For C like languages with anonymous structures and unions an anonymous
      structure or union is not a suitable parent.  */
-  int (*is_path_expr_parent) (const struct varobj *var);
+  bool (*is_path_expr_parent) (const struct varobj *var);
 };
 
 extern const struct lang_varobj_ops c_varobj_ops;
@@ -233,7 +240,7 @@ extern struct varobj *varobj_create (con
 				     const char *expression, CORE_ADDR frame,
 				     enum varobj_type type);
 
-extern char *varobj_gen_name (void);
+extern std::string varobj_gen_name (void);
 
 extern struct varobj *varobj_get_handle (const char *name);
 
@@ -241,10 +248,10 @@ extern const char *varobj_get_objname (c
 
 extern std::string varobj_get_expression (const struct varobj *var);
 
-/* Delete a varobj and all its children if only_children == 0, otherwise delete
-   only the children.  Return the number of deleted variables.  */
+/* Delete a varobj and all its children if only_children is false, otherwise
+   delete only the children.  Return the number of deleted variables.  */
 
-extern int varobj_delete (struct varobj *var, int only_children);
+extern int varobj_delete (struct varobj *var, bool only_children);
 
 extern enum varobj_display_formats varobj_set_display_format (
 							 struct varobj *var,
@@ -255,9 +262,9 @@ extern enum varobj_display_formats varob
 
 extern int varobj_get_thread_id (const struct varobj *var);
 
-extern void varobj_set_frozen (struct varobj *var, int frozen);
+extern void varobj_set_frozen (struct varobj *var, bool frozen);
 
-extern int varobj_get_frozen (const struct varobj *var);
+extern bool varobj_get_frozen (const struct varobj *var);
 
 extern void varobj_get_child_range (const struct varobj *var, int *from,
 				    int *to);
@@ -277,8 +284,8 @@ extern int varobj_get_num_children (stru
    that was returned.  The resulting VEC will contain at least the
    children from *FROM to just before *TO; it might contain more
    children, depending on whether any more were available.  */
-extern VEC (varobj_p)* varobj_list_children (struct varobj *var,
-					     int *from, int *to);
+extern const std::vector<varobj *> &
+  varobj_list_children (struct varobj *var, int *from, int *to);
 
 extern std::string varobj_get_type (struct varobj *var);
 
@@ -297,35 +304,35 @@ extern std::string
 
 extern std::string varobj_get_value (struct varobj *var);
 
-extern int varobj_set_value (struct varobj *var, const char *expression);
+extern bool varobj_set_value (struct varobj *var, const char *expression);
 
 extern void all_root_varobjs (void (*func) (struct varobj *var, void *data),
 			      void *data);
 
-extern VEC(varobj_update_result) *varobj_update (struct varobj **varp, 
-						 int is_explicit);
+extern std::vector<varobj_update_result>
+  varobj_update (struct varobj **varp, bool is_explicit);
 
 extern void varobj_invalidate (void);
 
-extern int varobj_editable_p (const struct varobj *var);
+extern bool varobj_editable_p (const struct varobj *var);
 
-extern int varobj_floating_p (const struct varobj *var);
+extern bool varobj_floating_p (const struct varobj *var);
 
 extern void varobj_set_visualizer (struct varobj *var,
 				   const char *visualizer);
 
 extern void varobj_enable_pretty_printing (void);
 
-extern int varobj_has_more (const struct varobj *var, int to);
+extern bool varobj_has_more (const struct varobj *var, int to);
 
-extern int varobj_is_dynamic_p (const struct varobj *var);
+extern bool varobj_is_dynamic_p (const struct varobj *var);
 
-extern int varobj_default_value_is_changeable_p (const struct varobj *var);
-extern int varobj_value_is_changeable_p (const struct varobj *var);
+extern bool varobj_default_value_is_changeable_p (const struct varobj *var);
+extern bool varobj_value_is_changeable_p (const struct varobj *var);
 
 extern struct type *varobj_get_value_type (const struct varobj *var);
 
-extern int varobj_is_anonymous_child (const struct varobj *child);
+extern bool varobj_is_anonymous_child (const struct varobj *child);
 
 extern const struct varobj *
   varobj_get_path_expr_parent (const struct varobj *var);
@@ -338,9 +345,9 @@ extern std::string
 extern void varobj_formatted_print_options (struct value_print_options *opts,
 					    enum varobj_display_formats format);
 
-extern void varobj_restrict_range (VEC (varobj_p) *children, int *from,
-				   int *to);
+extern void varobj_restrict_range (const std::vector<varobj *> &children,
+				   int *from, int *to);
 
-extern int varobj_default_is_path_expr_parent (const struct varobj *var);
+extern bool varobj_default_is_path_expr_parent (const struct varobj *var);
 
 #endif /* VAROBJ_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/varobj-iter.h ./gdb/varobj-iter.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/varobj-iter.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/varobj-iter.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Iterator of varobj.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/vax-bsd-nat.c ./gdb/vax-bsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/vax-bsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/vax-bsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for modern VAX BSD's.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -125,10 +125,6 @@ vaxbsd_supply_pcb (struct regcache *regc
 
   return 1;
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_vaxbsd_nat (void);
 
 void
 _initialize_vaxbsd_nat (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/vax-nbsd-tdep.c ./gdb/vax-nbsd-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/vax-nbsd-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/vax-nbsd-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for NetBSD/vax.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -33,10 +33,6 @@ vaxnbsd_elf_init_abi (struct gdbarch_inf
   set_solib_svr4_fetch_link_map_offsets
     (gdbarch, svr4_ilp32_fetch_link_map_offsets);
 }
-
-
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_vaxnbsd_tdep (void);
 
 void
 _initialize_vaxnbsd_tdep (void)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/vax-tdep.c ./gdb/vax-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/vax-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/vax-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the VAX.
 
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -20,7 +20,6 @@
 #include "defs.h"
 #include "arch-utils.h"
 #include "dis-asm.h"
-#include "floatformat.h"
 #include "frame.h"
 #include "frame-base.h"
 #include "frame-unwind.h"
@@ -108,7 +107,7 @@ static CORE_ADDR
 vax_store_arguments (struct regcache *regcache, int nargs,
 		     struct value **args, CORE_ADDR sp)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
   gdb_byte buf[4];
   int count = 0;
@@ -502,8 +501,6 @@ vax_gdbarch_init (struct gdbarch_info in
   set_gdbarch_deprecated_function_start_offset (gdbarch, 2);
   set_gdbarch_believe_pcc_promotion (gdbarch, 1);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_vax);
-
   set_gdbarch_unwind_pc (gdbarch, vax_unwind_pc);
 
   frame_base_set_default (gdbarch, &vax_frame_base);
@@ -516,9 +513,6 @@ vax_gdbarch_init (struct gdbarch_info in
   return (gdbarch);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-void _initialize_vax_tdep (void);
-
 void
 _initialize_vax_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/vax-tdep.h ./gdb/vax-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/vax-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/vax-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the VAX.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/version.in ./gdb/version.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/version.in	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/version.in	2018-01-09 02:04:57.000000000 +0000
@@ -1 +1 @@
-8.0.1.DATE-git
+8.0.90.DATE-git
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/warning.m4 ./gdb/warning.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/warning.m4	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/warning.m4	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 dnl Autoconf configure script for GDB, the GNU debugger.
-dnl Copyright (C) 1995-2017 Free Software Foundation, Inc.
+dnl Copyright (C) 1995-2018 Free Software Foundation, Inc.
 dnl
 dnl This file is part of GDB.
 dnl
@@ -40,12 +40,20 @@ build_warnings="-Wall -Wpointer-arith \
 -Wno-unused -Wunused-value -Wunused-function \
 -Wno-switch -Wno-char-subscripts \
 -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable \
--Wno-sign-compare -Wno-narrowing"
+-Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized \
+-Wno-mismatched-tags"
 
-# Enable -Wno-format by default when using gcc on mingw since many
-# GCC versions complain about %I64.
 case "${host}" in
-  *-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
+  *-*-mingw32*)
+    # Enable -Wno-format by default when using gcc on mingw since many
+    # GCC versions complain about %I64.
+    build_warnings="$build_warnings -Wno-format" ;;
+  *-*-solaris*)
+    # Solaris 11.4 <python2.7/ceval.h> uses #pragma no_inline that GCC
+    # doesn't understand.
+    build_warnings="$build_warnings -Wno-unknown-pragmas"
+    # Solaris 11 <unistd.h> marks vfork deprecated.
+    build_warnings="$build_warnings -Wno-deprecated-declarations" ;;
   *) build_warnings="$build_warnings -Wformat-nonliteral" ;;
 esac
 
@@ -103,9 +111,9 @@ then
 	*)
 	    # Check whether GCC accepts it.
 	    saved_CFLAGS="$CFLAGS"
-	    CFLAGS="$CFLAGS $wtest"
+	    CFLAGS="$CFLAGS -Werror $wtest"
 	    saved_CXXFLAGS="$CXXFLAGS"
-	    CXXFLAGS="$CXXFLAGS $wtest"
+	    CXXFLAGS="$CXXFLAGS -Werror $wtest"
 	    AC_TRY_COMPILE([],[],WARN_CFLAGS="${WARN_CFLAGS} $w",)
 	    CFLAGS="$saved_CFLAGS"
 	    CXXFLAGS="$saved_CXXFLAGS"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/windows-nat.c ./gdb/windows-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/windows-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/windows-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-vector operations for controlling windows child processes, for GDB.
 
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions, A Red Hat Company.
 
@@ -42,6 +42,7 @@
 #include <sys/cygwin.h>
 #include <cygwin/version.h>
 #endif
+#include <algorithm>
 
 #include "buildsym.h"
 #include "filenames.h"
@@ -66,6 +67,7 @@
 #include "x86-nat.h"
 #include "complaints.h"
 #include "inf-child.h"
+#include "gdb_tilde_expand.h"
 
 #define AdjustTokenPrivileges		dyn_AdjustTokenPrivileges
 #define DebugActiveProcessStop		dyn_DebugActiveProcessStop
@@ -464,7 +466,7 @@ do_windows_fetch_inferior_registers (str
 				     windows_thread_info *th, int r)
 {
   char *context_offset = ((char *) &th->context) + mappings[r];
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   long l;
 
@@ -551,7 +553,7 @@ do_windows_store_inferior_registers (con
 			  ((char *) &th->context) + mappings[r]);
   else
     {
-      for (r = 0; r < gdbarch_num_regs (get_regcache_arch (regcache)); r++)
+      for (r = 0; r < gdbarch_num_regs (regcache->arch ()); r++)
 	do_windows_store_inferior_registers (regcache, th, r);
     }
 }
@@ -585,9 +587,9 @@ struct safe_symbol_file_add_args
 };
 
 /* Maintain a linked list of "so" information.  */
-struct lm_info
+struct lm_info_windows : public lm_info_base
 {
-  LPVOID load_addr;
+  LPVOID load_addr = 0;
 };
 
 static struct so_list solib_start, *solib_end;
@@ -645,8 +647,9 @@ windows_make_so (const char *name, LPVOI
     }
 #endif
   so = XCNEW (struct so_list);
-  so->lm_info = XNEW (struct lm_info);
-  so->lm_info->load_addr = load_addr;
+  lm_info_windows *li = new lm_info_windows;
+  so->lm_info = li;
+  li->load_addr = load_addr;
   strcpy (so->so_original_name, name);
 #ifndef __CYGWIN__
   strcpy (so->so_name, buf);
@@ -753,8 +756,8 @@ get_image_name (HANDLE h, void *address,
    do_initial_windows_stuff and windows_add_all_dlls for more info
    on how we handle DLL loading during that phase).  */
 
-static int
-handle_load_dll (void *dummy)
+static void
+handle_load_dll ()
 {
   LOAD_DLL_DEBUG_INFO *event = &current_event.u.LoadDll;
   char *dll_name;
@@ -767,22 +770,23 @@ handle_load_dll (void *dummy)
   dll_name = get_image_name (current_process_handle,
 			     event->lpImageName, event->fUnicode);
   if (!dll_name)
-    return 1;
+    return;
 
   solib_end->next = windows_make_so (dll_name, event->lpBaseOfDll);
   solib_end = solib_end->next;
 
-  DEBUG_EVENTS (("gdb: Loading dll \"%s\" at %s.\n", solib_end->so_name,
-		 host_address_to_string (solib_end->lm_info->load_addr)));
+  lm_info_windows *li = (lm_info_windows *) solib_end->lm_info;
 
-  return 1;
+  DEBUG_EVENTS (("gdb: Loading dll \"%s\" at %s.\n", solib_end->so_name,
+		 host_address_to_string (li->load_addr)));
 }
 
 static void
 windows_free_so (struct so_list *so)
 {
-  if (so->lm_info)
-    xfree (so->lm_info);
+  lm_info_windows *li = (lm_info_windows *) so->lm_info;
+
+  delete li;
   xfree (so);
 }
 
@@ -794,25 +798,29 @@ windows_free_so (struct so_list *so)
    do_initial_windows_stuff and windows_add_all_dlls for more info
    on how we handle DLL loading during that phase).  */
 
-static int
-handle_unload_dll (void *dummy)
+static void
+handle_unload_dll ()
 {
   LPVOID lpBaseOfDll = current_event.u.UnloadDll.lpBaseOfDll;
   struct so_list *so;
 
   for (so = &solib_start; so->next != NULL; so = so->next)
-    if (so->next->lm_info->load_addr == lpBaseOfDll)
-      {
-	struct so_list *sodel = so->next;
+    {
+      lm_info_windows *li_next = (lm_info_windows *) so->next->lm_info;
 
-	so->next = sodel->next;
-	if (!so->next)
-	  solib_end = so;
-	DEBUG_EVENTS (("gdb: Unloading dll \"%s\".\n", sodel->so_name));
+      if (li_next->load_addr == lpBaseOfDll)
+	{
+	  struct so_list *sodel = so->next;
 
-	windows_free_so (sodel);
-	return 1;
-      }
+	  so->next = sodel->next;
+	  if (!so->next)
+	    solib_end = so;
+	  DEBUG_EVENTS (("gdb: Unloading dll \"%s\".\n", sodel->so_name));
+
+	  windows_free_so (sodel);
+	  return;
+	}
+    }
 
   /* We did not find any DLL that was previously loaded at this address,
      so register a complaint.  We do not report an error, because we have
@@ -823,8 +831,23 @@ handle_unload_dll (void *dummy)
      32bit and 64bit worlds).  */
   complaint (&symfile_complaints, _("dll starting at %s not found."),
 	     host_address_to_string (lpBaseOfDll));
+}
 
-  return 0;
+/* Call FUNC wrapped in a TRY/CATCH that swallows all GDB
+   exceptions.  */
+
+static void
+catch_errors (void (*func) ())
+{
+  TRY
+    {
+      func ();
+    }
+  CATCH (ex, RETURN_MASK_ALL)
+    {
+      exception_print (gdb_stderr, ex);
+    }
+  END_CATCH
 }
 
 /* Clear list of loaded DLLs.  */
@@ -836,7 +859,7 @@ windows_clear_solib (void)
 }
 
 static void
-signal_event_command (char *args, int from_tty)
+signal_event_command (const char *args, int from_tty)
 {
   uintptr_t event_id = 0;
   char *endargs = NULL;
@@ -997,7 +1020,7 @@ display_selector (HANDLE thread, DWORD s
 }
 
 static void
-display_selectors (char * args, int from_tty)
+display_selectors (const char * args, int from_tty)
 {
   if (!current_thread)
     {
@@ -1353,7 +1376,7 @@ windows_resume (struct target_ops *ops,
 	{
 	  /* Single step by setting t bit.  */
 	  struct regcache *regcache = get_current_regcache ();
-	  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+	  struct gdbarch *gdbarch = regcache->arch ();
 	  windows_fetch_inferior_registers (ops, regcache,
 					    gdbarch_ps_regnum (gdbarch));
 	  th->context.EFlags |= FLAG_TRACE_BIT;
@@ -1511,7 +1534,7 @@ get_windows_debug_event (struct target_o
 		     "EXIT_PROCESS_DEBUG_EVENT"));
       if (!windows_initialization_done)
 	{
-	  target_terminal_ours ();
+	  target_terminal::ours ();
 	  target_mourn_inferior (inferior_ptid);
 	  error (_("During startup program exited with code 0x%x."),
 		 (unsigned int) current_event.u.ExitProcess.dwExitCode);
@@ -1532,7 +1555,7 @@ get_windows_debug_event (struct target_o
       CloseHandle (current_event.u.LoadDll.hFile);
       if (saw_create != 1 || ! windows_initialization_done)
 	break;
-      catch_errors (handle_load_dll, NULL, (char *) "", RETURN_MASK_ALL);
+      catch_errors (handle_load_dll);
       ourstatus->kind = TARGET_WAITKIND_LOADED;
       ourstatus->value.integer = 0;
       thread_id = main_thread_id;
@@ -1545,7 +1568,7 @@ get_windows_debug_event (struct target_o
 		     "UNLOAD_DLL_DEBUG_EVENT"));
       if (saw_create != 1 || ! windows_initialization_done)
 	break;
-      catch_errors (handle_unload_dll, NULL, (char *) "", RETURN_MASK_ALL);
+      catch_errors (handle_unload_dll);
       ourstatus->kind = TARGET_WAITKIND_LOADED;
       ourstatus->value.integer = 0;
       thread_id = main_thread_id;
@@ -1618,7 +1641,7 @@ windows_wait (struct target_ops *ops,
 {
   int pid = -1;
 
-  target_terminal_ours ();
+  target_terminal::ours ();
 
   /* We loop when we get a non-standard exception rather than return
      with a SPURIOUS because resume can try and step or modify things,
@@ -1763,8 +1786,8 @@ do_initial_windows_stuff (struct target_
      current thread until we report an event out of windows_wait.  */
   inferior_ptid = pid_to_ptid (pid);
 
-  target_terminal_init ();
-  target_terminal_inferior ();
+  target_terminal::init ();
+  target_terminal::inferior ();
 
   windows_initialization_done = 0;
 
@@ -1904,7 +1927,7 @@ windows_attach (struct target_ops *ops, 
     }
 
   do_initial_windows_stuff (ops, pid, 1);
-  target_terminal_ours ();
+  target_terminal::ours ();
 }
 
 static void
@@ -2420,6 +2443,7 @@ windows_create_inferior (struct target_o
 #ifdef __CYGWIN__
   cygwin_buf_t real_path[__PMAX];
   cygwin_buf_t shell[__PMAX]; /* Path to shell */
+  cygwin_buf_t infcwd[__PMAX];
   const char *sh;
   cygwin_buf_t *toexec;
   cygwin_buf_t *cygallargs;
@@ -2457,6 +2481,17 @@ windows_create_inferior (struct target_o
   if (!exec_file)
     error (_("No executable specified, use `target exec'."));
 
+  const char *inferior_cwd = get_inferior_cwd ();
+  std::string expanded_infcwd;
+  if (inferior_cwd != NULL)
+    {
+      expanded_infcwd = gdb_tilde_expand (inferior_cwd);
+      /* Mirror slashes on inferior's cwd.  */
+      std::replace (expanded_infcwd.begin (), expanded_infcwd.end (),
+		    '/', '\\');
+      inferior_cwd = expanded_infcwd.c_str ();
+    }
+
   memset (&si, 0, sizeof (si));
   si.cb = sizeof (si);
 
@@ -2506,6 +2541,11 @@ windows_create_inferior (struct target_o
       flags |= DEBUG_PROCESS;
     }
 
+  if (inferior_cwd != NULL
+      && cygwin_conv_path (CCP_POSIX_TO_WIN_W, inferior_cwd,
+			   infcwd, strlen (inferior_cwd)) < 0)
+    error (_("Error converting inferior cwd: %d"), errno);
+
 #ifdef __USEWIDE
   args = (cygwin_buf_t *) alloca ((wcslen (toexec) + wcslen (cygallargs) + 2)
 				  * sizeof (wchar_t));
@@ -2566,7 +2606,8 @@ windows_create_inferior (struct target_o
 		       TRUE,	/* inherit handles */
 		       flags,	/* start flags */
 		       w32_env,	/* environment */
-		       NULL,	/* current directory */
+		       inferior_cwd != NULL ? infcwd : NULL, /* current
+								directory */
 		       &si,
 		       &pi);
   if (w32_env)
@@ -2689,7 +2730,7 @@ windows_create_inferior (struct target_o
 			TRUE,	/* inherit handles */
 			flags,	/* start flags */
 			w32env,	/* environment */
-			NULL,	/* current directory */
+			inferior_cwd, /* current directory */
 			&si,
 			&pi);
   if (tty != INVALID_HANDLE_VALUE)
@@ -2842,9 +2883,13 @@ windows_xfer_shared_libraries (struct ta
   obstack_init (&obstack);
   obstack_grow_str (&obstack, "<library-list>\n");
   for (so = solib_start.next; so; so = so->next)
-    windows_xfer_shared_library (so->so_name, (CORE_ADDR)
-				 (uintptr_t) so->lm_info->load_addr,
-				 target_gdbarch (), &obstack);
+    {
+      lm_info_windows *li = (lm_info_windows *) so->lm_info;
+
+      windows_xfer_shared_library (so->so_name, (CORE_ADDR)
+				   (uintptr_t) li->load_addr,
+				   target_gdbarch (), &obstack);
+    }
   obstack_grow_str0 (&obstack, "</library-list>\n");
 
   buf = (const char *) obstack_finish (&obstack);
@@ -2947,9 +2992,6 @@ windows_target (void)
   return t;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_windows_nat;
-
 void
 _initialize_windows_nat (void)
 {
@@ -3118,9 +3160,6 @@ windows_thread_alive (struct target_ops 
     ? FALSE : TRUE;
 }
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_check_for_gdb_ini;
-
 void
 _initialize_check_for_gdb_ini (void)
 {
@@ -3215,9 +3254,6 @@ bad_GetConsoleFontSize (HANDLE w, DWORD 
   return size;
 }
  
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_loadable;
-
 /* Load any functions which may not be available in ancient versions
    of Windows.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/windows-nat.h ./gdb/windows-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/windows-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/windows-nat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/windows-tdep.c ./gdb/windows-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/windows-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/windows-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -143,7 +143,8 @@ windows_get_tlb_type (struct gdbarch *gd
   TYPE_NAME (seh_type) = xstrdup ("seh");
 
   seh_ptr_type = arch_type (gdbarch, TYPE_CODE_PTR,
-			    TYPE_LENGTH (void_ptr_type), NULL);
+			    TYPE_LENGTH (void_ptr_type) * TARGET_CHAR_BIT,
+			    NULL);
   TYPE_TARGET_TYPE (seh_ptr_type) = seh_type;
 
   append_composite_type_field (seh_type, "next_seh", seh_ptr_type);
@@ -163,7 +164,8 @@ windows_get_tlb_type (struct gdbarch *gd
   append_composite_type_field (peb_ldr_type, "entry_in_progress",
 			       void_ptr_type);
   peb_ldr_ptr_type = arch_type (gdbarch, TYPE_CODE_PTR,
-			    TYPE_LENGTH (void_ptr_type), NULL);
+				TYPE_LENGTH (void_ptr_type) * TARGET_CHAR_BIT,
+				NULL);
   TYPE_TARGET_TYPE (peb_ldr_ptr_type) = peb_ldr_type;
 
 
@@ -181,7 +183,8 @@ windows_get_tlb_type (struct gdbarch *gd
   append_composite_type_field (peb_type, "process_heap", void_ptr_type);
   append_composite_type_field (peb_type, "fast_peb_lock", void_ptr_type);
   peb_ptr_type = arch_type (gdbarch, TYPE_CODE_PTR,
-			    TYPE_LENGTH (void_ptr_type), NULL);
+			    TYPE_LENGTH (void_ptr_type) * TARGET_CHAR_BIT,
+			    NULL);
   TYPE_TARGET_TYPE (peb_ptr_type) = peb_type;
 
 
@@ -224,7 +227,8 @@ windows_get_tlb_type (struct gdbarch *gd
   append_composite_type_field (tib_type, "last_error_number", dword_ptr_type);
 
   tib_ptr_type = arch_type (gdbarch, TYPE_CODE_PTR,
-			    TYPE_LENGTH (void_ptr_type), NULL);
+			    TYPE_LENGTH (void_ptr_type) * TARGET_CHAR_BIT,
+			    NULL);
   TYPE_TARGET_TYPE (tib_ptr_type) = tib_type;
 
   last_tlb_type = tib_ptr_type;
@@ -361,7 +365,7 @@ display_one_tib (ptid_t ptid)
 /* Display thread information block of the current thread.  */
 
 static void
-display_tib (char * args, int from_tty)
+display_tib (const char * args, int from_tty)
 {
   if (!ptid_equal (inferior_ptid, null_ptid))
     display_one_tib (inferior_ptid);
@@ -371,13 +375,11 @@ void
 windows_xfer_shared_library (const char* so_name, CORE_ADDR load_addr,
 			     struct gdbarch *gdbarch, struct obstack *obstack)
 {
-  char *p;
   CORE_ADDR text_offset;
 
   obstack_grow_str (obstack, "<library name=\"");
-  p = xml_escape_text (so_name);
-  obstack_grow_str (obstack, p);
-  xfree (p);
+  std::string p = xml_escape_text (so_name);
+  obstack_grow_str (obstack, p.c_str ());
   obstack_grow_str (obstack, "\"><segment address=\"");
   gdb_bfd_ref_ptr dll (gdb_bfd_open (so_name, gnutarget, -1));
   /* The following calls are OK even if dll is NULL.
@@ -442,7 +444,7 @@ show_maint_show_all_tib (struct ui_file 
 }
 
 static void
-info_w32_command (char *args, int from_tty)
+info_w32_command (const char *args, int from_tty)
 {
   help_list (info_w32_cmdlist, "info w32 ", class_info, gdb_stdout);
 }
@@ -479,9 +481,6 @@ windows_init_abi (struct gdbarch_info in
   set_solib_ops (gdbarch, &solib_target_so_ops);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_windows_tdep;
-
 /* Implementation of `tlb' variable.  */
 
 static const struct internalvar_funcs tlb_funcs =
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/windows-tdep.h ./gdb/windows-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/windows-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/windows-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/x86-bsd-nat.c ./gdb/x86-bsd-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/x86-bsd-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/x86-bsd-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for X86 BSD's.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -51,11 +51,16 @@ x86bsd_mourn_inferior (struct target_ops
   super_mourn_inferior (ops);
 }
 
-/* Not all versions of FreeBSD/i386 that support the debug registers
-   have this macro.  */
+/* Helper macro to access debug register X.  FreeBSD/amd64 and modern
+   versions of FreeBSD/i386 provide this macro in system headers.  Define
+   a local version for systems that do not provide it.  */
 #ifndef DBREG_DRX
+#ifdef __NetBSD__
+#define DBREG_DRX(d, x) ((d)->dr[x])
+#else
 #define DBREG_DRX(d, x) ((&d->dr0)[x])
 #endif
+#endif
 
 static unsigned long
 x86bsd_dr_get (ptid_t ptid, int regnum)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/x86-bsd-nat.h ./gdb/x86-bsd-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/x86-bsd-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/x86-bsd-nat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for x86 BSD's.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/x86-linux-nat.c ./gdb/x86-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/x86-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/x86-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for GNU/Linux x86 (i386 and x86-64).
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -43,16 +43,6 @@
 #include "nat/x86-linux-dregs.h"
 #include "nat/linux-ptrace.h"
 
-/* Per-thread arch-specific data we want to keep.  */
-
-struct arch_lwp_info
-{
-  /* Non-zero if our copy differs from what's recorded in the thread.  */
-  int debug_registers_changed;
-};
-
-
-
 /* linux_nat_new_fork hook.   */
 
 static void
@@ -163,7 +153,7 @@ x86_linux_read_description (struct targe
 	{
 	  have_ptrace_getfpxregs = 0;
 	  have_ptrace_getregset = TRIBOOL_FALSE;
-	  return tdesc_i386_mmx_linux;
+	  return i386_linux_read_description (X86_XSTATE_X87_MASK);
 	}
     }
 #endif
@@ -202,59 +192,18 @@ x86_linux_read_description (struct targe
   if (is_64bit)
     {
 #ifdef __x86_64__
-      switch (xcr0_features_bits)
-	{
-	case X86_XSTATE_AVX_MPX_AVX512_PKU_MASK:
-	  if (is_x32)
-	    /* No MPX, PKU on x32, fall back to AVX-AVX512.  */
-	    return tdesc_x32_avx_avx512_linux;
-	  else
-	    return tdesc_amd64_avx_mpx_avx512_pku_linux;
-	case X86_XSTATE_AVX_AVX512_MASK:
-	  if (is_x32)
-	    return tdesc_x32_avx_avx512_linux;
-	  else
-	    return tdesc_amd64_avx_avx512_linux;
-	case X86_XSTATE_MPX_MASK:
-	  if (is_x32)
-	    return tdesc_x32_avx_linux; /* No MPX on x32 using AVX.  */
-	  else
-	    return tdesc_amd64_mpx_linux;
-	case X86_XSTATE_AVX_MPX_MASK:
-	  if (is_x32)
-	    return tdesc_x32_avx_linux; /* No MPX on x32 using AVX.  */
-	  else
-	    return tdesc_amd64_avx_mpx_linux;
-	case X86_XSTATE_AVX_MASK:
-	  if (is_x32)
-	    return tdesc_x32_avx_linux;
-	  else
-	    return tdesc_amd64_avx_linux;
-	default:
-	  if (is_x32)
-	    return tdesc_x32_linux;
-	  else
-	    return tdesc_amd64_linux;
-	}
+      return amd64_linux_read_description (xcr0_features_bits, is_x32);
 #endif
     }
   else
     {
-      switch (xcr0_features_bits)
-	{
-	case X86_XSTATE_AVX_MPX_AVX512_PKU_MASK:
-	  return tdesc_i386_avx_mpx_avx512_pku_linux;
-	case X86_XSTATE_AVX_AVX512_MASK:
-	  return tdesc_i386_avx_avx512_linux;
-	case X86_XSTATE_MPX_MASK:
-	  return tdesc_i386_mpx_linux;
-	case X86_XSTATE_AVX_MPX_MASK:
-	  return tdesc_i386_avx_mpx_linux;
-	case X86_XSTATE_AVX_MASK:
-	  return tdesc_i386_avx_linux;
-	default:
-	  return tdesc_i386_linux;
-	}
+      const struct target_desc * tdesc
+	= i386_linux_read_description (xcr0_features_bits);
+
+      if (tdesc == NULL)
+	tdesc = i386_linux_read_description (X86_XSTATE_SSE_MASK);
+
+      return tdesc;
     }
 
   gdb_assert_not_reached ("failed to return tdesc");
@@ -405,6 +354,7 @@ x86_linux_add_target (struct target_ops 
 {
   linux_nat_add_target (t);
   linux_nat_set_new_thread (t, x86_linux_new_thread);
+  linux_nat_set_delete_thread (t, x86_linux_delete_thread);
   linux_nat_set_new_fork (t, x86_linux_new_fork);
   linux_nat_set_forget_process (t, x86_forget_process);
   linux_nat_set_prepare_to_resume (t, x86_linux_prepare_to_resume);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/x86-linux-nat.h ./gdb/x86-linux-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/x86-linux-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/x86-linux-nat.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for GNU/Linux x86 (i386 and x86-64).
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/x86-nat.c ./gdb/x86-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/x86-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/x86-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Native-dependent code for x86 (i386 and x86-64).
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/x86-nat.h ./gdb/x86-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/x86-nat.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/x86-nat.h	2018-01-09 02:04:57.000000000 +0000
@@ -3,7 +3,7 @@
    Low level functions to implement Oeprating System specific
    code to manipulate x86 debug registers.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xcoffread.c ./gdb/xcoffread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xcoffread.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xcoffread.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Read AIX xcoff symbol tables and convert to internal format, for GDB.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
    Derived from coffread.c, dbxread.c, and a lot of hacking.
    Contributed by IBM Corporation.
 
@@ -174,6 +174,8 @@ static const struct dwarf2_debug_section
   { ".dwframe", NULL },
   { NULL, NULL }, /* eh_frame */
   { NULL, NULL }, /* gdb_index */
+  { NULL, NULL }, /* debug_names */
+  { NULL, NULL }, /* debug_aranges */
   23
 };
 
@@ -1044,7 +1046,8 @@ read_xcoff_symtab (struct objfile *objfi
   last_csect_name = 0;
 
   start_stabs ();
-  start_symtab (objfile, filestring, (char *) NULL, file_start_addr);
+  start_symtab (objfile, filestring, (char *) NULL, file_start_addr,
+		language_unknown);
   record_debugformat (debugfmt);
   symnum = ((struct symloc *) pst->read_symtab_private)->first_symnum;
   max_symnum =
@@ -1137,14 +1140,15 @@ read_xcoff_symtab (struct objfile *objfi
 	    }
 
 	  start_stabs ();
-	  start_symtab (objfile, "_globals_", (char *) NULL, (CORE_ADDR) 0);
+	  start_symtab (objfile, "_globals_", (char *) NULL, (CORE_ADDR) 0,
+			language_unknown);
 	  record_debugformat (debugfmt);
 	  cur_src_end_addr = first_object_file_end;
 	  /* Done with all files, everything from here on is globals.  */
 	}
 
-      if ((cs->c_sclass == C_EXT || cs->c_sclass == C_HIDEXT)
-	  && cs->c_naux == 1)
+      if (cs->c_sclass == C_EXT || cs->c_sclass == C_HIDEXT ||
+	  cs->c_sclass == C_WEAKEXT)
 	{
 	  /* Dealing with a symbol with a csect entry.  */
 
@@ -1154,9 +1158,41 @@ read_xcoff_symtab (struct objfile *objfi
 #define	CSECT_SMTYP(PP) (SMTYP_SMTYP(CSECT(PP).x_smtyp))
 #define	CSECT_SCLAS(PP) (CSECT(PP).x_smclas)
 
-	  /* Convert the auxent to something we can access.  */
-	  bfd_coff_swap_aux_in (abfd, raw_auxptr, cs->c_type, cs->c_sclass,
-				0, cs->c_naux, &main_aux);
+	  /* Convert the auxent to something we can access.
+	     XCOFF can have more than one auxiliary entries.
+
+	     Actual functions will have two auxiliary entries, one to have the
+	     function size and other to have the smtype/smclass (LD/PR).
+
+	     c_type value of main symbol table will be set only in case of
+	     C_EXT/C_HIDEEXT/C_WEAKEXT storage class symbols.
+	     Bit 10 of type is set if symbol is a function, ie the value is set
+	     to 32(0x20). So we need to read the first function auxiliay entry
+	     which contains the size. */
+	  if (cs->c_naux > 1 && ISFCN (cs->c_type))
+	  {
+	    /* a function entry point.  */
+
+	    fcn_start_addr = cs->c_value;
+
+	    /* save the function header info, which will be used
+	       when `.bf' is seen.  */
+	    fcn_cs_saved = *cs;
+
+	    /* Convert the auxent to something we can access.  */
+	    bfd_coff_swap_aux_in (abfd, raw_auxptr, cs->c_type, cs->c_sclass,
+				  0, cs->c_naux, &fcn_aux_saved);
+	    continue;
+	  }
+	  /* Read the csect auxiliary header, which is always the last by
+	     onvention. */
+	  bfd_coff_swap_aux_in (abfd,
+			       raw_auxptr
+			       + ((coff_data (abfd)->local_symesz)
+			       * (cs->c_naux - 1)),
+			       cs->c_type, cs->c_sclass,
+			       cs->c_naux - 1, cs->c_naux,
+			       &main_aux);
 
 	  switch (CSECT_SMTYP (&main_aux))
 	    {
@@ -1195,7 +1231,7 @@ read_xcoff_symtab (struct objfile *objfi
 			  /* Give all csects for this source file the same
 			     name.  */
 			  start_symtab (objfile, filestring, NULL,
-					(CORE_ADDR) 0);
+					(CORE_ADDR) 0, language_unknown);
 			  record_debugformat (debugfmt);
 			}
 
@@ -1241,16 +1277,11 @@ read_xcoff_symtab (struct objfile *objfi
 
 	      switch (CSECT_SCLAS (&main_aux))
 		{
+		/* We never really come to this part as this case has been
+		   handled in ISFCN check above.
+		   This and other cases of XTY_LD are kept just for
+		   reference. */
 		case XMC_PR:
-		  /* a function entry point.  */
-		function_entry_point:
-
-		  fcn_start_addr = cs->c_value;
-
-		  /* save the function header info, which will be used
-		     when `.bf' is seen.  */
-		  fcn_cs_saved = *cs;
-		  fcn_aux_saved = main_aux;
 		  continue;
 
 		case XMC_GL:
@@ -1283,16 +1314,6 @@ read_xcoff_symtab (struct objfile *objfi
 	    }
 	}
 
-      /* If explicitly specified as a function, treat is as one.  This check
-	 evaluates to true for @FIX* bigtoc CSECT symbols, so it must occur
-	 after the above CSECT check.  */
-      if (ISFCN (cs->c_type) && cs->c_sclass != C_TPDEF)
-	{
-	  bfd_coff_swap_aux_in (abfd, raw_auxptr, cs->c_type, cs->c_sclass,
-				0, cs->c_naux, &main_aux);
-	  goto function_entry_point;
-	}
-
       switch (cs->c_sclass)
 	{
 	case C_FILE:
@@ -1330,7 +1351,8 @@ read_xcoff_symtab (struct objfile *objfi
 	    filestring = cs->c_name;
 
 	  start_stabs ();
-	  start_symtab (objfile, filestring, (char *) NULL, (CORE_ADDR) 0);
+	  start_symtab (objfile, filestring, (char *) NULL, (CORE_ADDR) 0,
+			language_unknown);
 	  record_debugformat (debugfmt);
 	  last_csect_name = 0;
 
@@ -1574,7 +1596,7 @@ process_xcoff_symbol (struct coff_symbol
       SYMBOL_ACLASS_INDEX (sym) = LOC_BLOCK;
       SYMBOL_DUP (sym, sym2);
 
-      if (cs->c_sclass == C_EXT)
+      if (cs->c_sclass == C_EXT || C_WEAKEXT)
 	add_symbol_to_list (sym2, &global_symbols);
       else if (cs->c_sclass == C_HIDEXT || cs->c_sclass == C_STAT)
 	add_symbol_to_list (sym2, &file_symbols);
@@ -1816,7 +1838,6 @@ find_linenos (struct bfd *abfd, struct b
 static void
 xcoff_psymtab_to_symtab_1 (struct objfile *objfile, struct partial_symtab *pst)
 {
-  struct cleanup *old_chain;
   int i;
 
   if (!pst)
@@ -1853,11 +1874,9 @@ xcoff_psymtab_to_symtab_1 (struct objfil
       /* Init stuff necessary for reading in symbols.  */
       stabsread_init ();
       buildsym_init ();
-      old_chain = make_cleanup (really_free_pendings, 0);
 
+      scoped_free_pendings free_pending;
       read_xcoff_symtab (objfile, pst);
-
-      do_cleanups (old_chain);
     }
 
   pst->readin = 1;
@@ -2013,15 +2032,15 @@ static unsigned int first_fun_line_offse
 static struct partial_symtab *
 xcoff_start_psymtab (struct objfile *objfile,
 		     const char *filename, int first_symnum,
-		     struct partial_symbol **global_syms,
-		     struct partial_symbol **static_syms)
+		     std::vector<partial_symbol *> &global_psymbols,
+		     std::vector<partial_symbol *> &static_psymbols)
 {
   struct partial_symtab *result =
     start_psymtab_common (objfile,
 			  filename,
 			  /* We fill in textlow later.  */
 			  0,
-			  global_syms, static_syms);
+			  global_psymbols, static_psymbols);
 
   result->read_symtab_private =
     XOBNEW (&objfile->objfile_obstack, struct symloc);
@@ -2250,6 +2269,7 @@ scan_xcoff_symtab (minimal_symbol_reader
 	{
 	case C_EXT:
 	case C_HIDEXT:
+	case C_WEAKEXT:
 	  {
 	    /* The CSECT auxent--always the last auxent.  */
 	    union internal_auxent csect_aux;
@@ -2314,8 +2334,8 @@ scan_xcoff_symtab (minimal_symbol_reader
 			      (objfile,
 			       filestring,
 			       symnum_before,
-			       objfile->global_psymbols.next,
-			       objfile->static_psymbols.next);
+			       objfile->global_psymbols,
+			       objfile->static_psymbols);
 			  }
 		      }
 		    /* Activate the misc_func_recorded mechanism for
@@ -2497,8 +2517,8 @@ scan_xcoff_symtab (minimal_symbol_reader
 	    pst = xcoff_start_psymtab (objfile,
 				       filestring,
 				       symnum_before,
-				       objfile->global_psymbols.next,
-				       objfile->static_psymbols.next);
+				       objfile->global_psymbols,
+				       objfile->static_psymbols);
 	    last_csect_name = NULL;
 	  }
 	  break;
@@ -2932,7 +2952,6 @@ xcoff_initial_scan (struct objfile *objf
 {
   bfd *abfd;
   int val;
-  struct cleanup *back_to;
   int num_symbols;		/* # of symbols */
   file_ptr symtab_offset;	/* symbol table and */
   file_ptr stringtab_offset;	/* string table file offsets */
@@ -2958,31 +2977,33 @@ xcoff_initial_scan (struct objfile *objf
       /* Read the string table.  */
       init_stringtab (abfd, stringtab_offset, objfile);
 
-      /* Read the .debug section, if present.  */
-      {
-	struct bfd_section *secp;
-	bfd_size_type length;
-	bfd_byte *debugsec = NULL;
+      /* Read the .debug section, if present and if we're not ignoring
+	 it.  */
+      if (!(objfile->flags & OBJF_READNEVER))
+	{
+	  struct bfd_section *secp;
+	  bfd_size_type length;
+	  bfd_byte *debugsec = NULL;
 
-	secp = bfd_get_section_by_name (abfd, ".debug");
-	if (secp)
-	  {
-	    length = bfd_section_size (abfd, secp);
-	    if (length)
-	      {
-		debugsec
-		  = (bfd_byte *) obstack_alloc (&objfile->objfile_obstack,
-						length);
+	  secp = bfd_get_section_by_name (abfd, ".debug");
+	  if (secp)
+	    {
+	      length = bfd_section_size (abfd, secp);
+	      if (length)
+		{
+		  debugsec
+		    = (bfd_byte *) obstack_alloc (&objfile->objfile_obstack,
+						  length);
 
-		if (!bfd_get_full_section_contents (abfd, secp, &debugsec))
-		  {
-		    error (_("Error reading .debug section of `%s': %s"),
-			   name, bfd_errmsg (bfd_get_error ()));
-		  }
-	      }
-	  }
-	info->debugsec = (char *) debugsec;
-      }
+		  if (!bfd_get_full_section_contents (abfd, secp, &debugsec))
+		    {
+		      error (_("Error reading .debug section of `%s': %s"),
+			     name, bfd_errmsg (bfd_get_error ()));
+		    }
+		}
+	    }
+	  info->debugsec = (char *) debugsec;
+	}
     }
 
   /* Read the symbols.  We keep them in core because we will want to
@@ -3000,7 +3021,8 @@ xcoff_initial_scan (struct objfile *objf
     perror_with_name (_("reading symbol table"));
 
   /* If we are reinitializing, or if we have never loaded syms yet, init.  */
-  if (objfile->global_psymbols.size == 0 && objfile->static_psymbols.size == 0)
+  if (objfile->global_psymbols.capacity () == 0
+      && objfile->static_psymbols.capacity () == 0)
     /* I'm not sure how how good num_symbols is; the rule of thumb in
        init_psymbol_list was developed for a.out.  On the one hand,
        num_symbols includes auxents.  On the other hand, it doesn't
@@ -3008,8 +3030,8 @@ xcoff_initial_scan (struct objfile *objf
     init_psymbol_list (objfile, num_symbols);
 
   free_pending_blocks ();
-  back_to = make_cleanup (really_free_pendings, 0);
 
+  scoped_free_pendings free_pending;
   minimal_symbol_reader reader (objfile);
 
   /* Now that the symbol table data of the executable file are all in core,
@@ -3028,8 +3050,6 @@ xcoff_initial_scan (struct objfile *objf
     dwarf2_build_psymtabs (objfile);
 
   dwarf2_build_frame_info (objfile);
-
-  do_cleanups (back_to);
 }
 
 static void
@@ -3166,9 +3186,6 @@ xcoff_free_info (struct objfile *objfile
   xfree (arg);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_xcoffread;
-
 void
 _initialize_xcoffread (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xcoffread.h ./gdb/xcoffread.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xcoffread.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xcoffread.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Read AIX xcoff symbol tables and convert to internal format, for GDB.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xml-support.c ./gdb/xml-support.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xml-support.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xml-support.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Helper routines for parsing XML using Expat.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -22,6 +22,8 @@
 #include "xml-support.h"
 #include "filestuff.h"
 #include "safe-ctype.h"
+#include <vector>
+#include <string>
 
 /* Debugging flag.  */
 static int debug_xml;
@@ -42,6 +44,12 @@ static int debug_xml;
    nesting.  */
 struct scope_level
 {
+  explicit scope_level (const gdb_xml_element *elements_ = NULL)
+    : elements (elements_),
+      element (NULL),
+      seen (0)
+  {}
+
   /* Elements we allow at this level.  */
   const struct gdb_xml_element *elements;
 
@@ -53,86 +61,167 @@ struct scope_level
   unsigned int seen;
 
   /* Body text accumulation.  */
-  struct obstack *body;
+  std::string body;
 };
-typedef struct scope_level scope_level_s;
-DEF_VEC_O(scope_level_s);
 
 /* The parser itself, and our additional state.  */
 struct gdb_xml_parser
 {
-  XML_Parser expat_parser;	/* The underlying expat parser.  */
+  gdb_xml_parser (const char *name,
+		  const gdb_xml_element *elements,
+		  void *user_data);
+  ~gdb_xml_parser();
+
+  /* Associate DTD_NAME, which must be the name of a compiled-in DTD,
+     with the parser.  */
+  void use_dtd (const char *dtd_name);
+
+  /* Return the name of the expected / default DTD, if specified.  */
+  const char *dtd_name ()
+  { return m_dtd_name; }
+
+  /* Invoke the parser on BUFFER.  BUFFER is the data to parse, which
+     should be NUL-terminated.
+
+     The return value is 0 for success or -1 for error.  It may throw,
+     but only if something unexpected goes wrong during parsing; parse
+     errors will be caught, warned about, and reported as failure.  */
+  int parse (const char *buffer);
+
+  /* Issue a debugging message.  */
+  void vdebug (const char *format, va_list ap)
+    ATTRIBUTE_PRINTF (2, 0);
+
+  /* Issue an error message, and stop parsing.  */
+  void verror (const char *format, va_list ap)
+    ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 0);
+
+  void body_text (const XML_Char *text, int length);
+  void start_element (const XML_Char *name, const XML_Char **attrs);
+  void end_element (const XML_Char *name);
+
+  /* Return the name of this parser.  */
+  const char *name ()
+  { return m_name; }
+
+  /* Return the user's callback data, for handlers.  */
+  void *user_data ()
+  { return m_user_data; };
+
+  /* Are we the special <xi:include> parser?  */
+  void set_is_xinclude (bool is_xinclude)
+  { m_is_xinclude = is_xinclude; }
+
+  /* A thrown error, if any.  */
+  void set_error (gdb_exception error)
+  {
+    m_error = error;
+#ifdef HAVE_XML_STOPPARSER
+    XML_StopParser (m_expat_parser, XML_FALSE);
+#endif
+  }
+
+  /* Return the underlying expat parser.  */
+  XML_Parser expat_parser ()
+  { return m_expat_parser; }
+
+private:
+  /* The underlying expat parser.  */
+  XML_Parser m_expat_parser;
+
+  /* Name of this parser.  */
+  const char *m_name;
+
+  /* The user's callback data, for handlers.  */
+  void *m_user_data;
+
+  /* Scoping stack.  */
+  std::vector<scope_level> m_scopes;
 
-  const char *name;		/* Name of this parser.  */
-  void *user_data;		/* The user's callback data, for handlers.  */
+/* A thrown error, if any.  */
+  struct gdb_exception m_error;
 
-  VEC(scope_level_s) *scopes;	/* Scoping stack.  */
+  /* The line of the thrown error, or 0.  */
+  int m_last_line;
 
-  struct gdb_exception error;	/* A thrown error, if any.  */
-  int last_line;		/* The line of the thrown error, or 0.  */
+  /* The name of the expected / default DTD, if specified.  */
+  const char *m_dtd_name;
 
-  const char *dtd_name;		/* The name of the expected / default DTD,
-				   if specified.  */
-  int is_xinclude;		/* Are we the special <xi:include> parser?  */
+  /* Are we the special <xi:include> parser?  */
+  bool m_is_xinclude;
 };
 
 /* Process some body text.  We accumulate the text for later use; it's
    wrong to do anything with it immediately, because a single block of
    text might be broken up into multiple calls to this function.  */
 
+void
+gdb_xml_parser::body_text (const XML_Char *text, int length)
+{
+  if (m_error.reason < 0)
+    return;
+
+  scope_level &scope = m_scopes.back ();
+  scope.body.append (text, length);
+}
+
 static void
 gdb_xml_body_text (void *data, const XML_Char *text, int length)
 {
   struct gdb_xml_parser *parser = (struct gdb_xml_parser *) data;
-  struct scope_level *scope = VEC_last (scope_level_s, parser->scopes);
-
-  if (parser->error.reason < 0)
-    return;
 
-  if (scope->body == NULL)
-    {
-      scope->body = XCNEW (struct obstack);
-      obstack_init (scope->body);
-    }
-
-  obstack_grow (scope->body, text, length);
+  parser->body_text (text, length);
 }
 
 /* Issue a debugging message from one of PARSER's handlers.  */
 
 void
-gdb_xml_debug (struct gdb_xml_parser *parser, const char *format, ...)
+gdb_xml_parser::vdebug (const char *format, va_list ap)
 {
-  int line = XML_GetCurrentLineNumber (parser->expat_parser);
-  va_list ap;
+  int line = XML_GetCurrentLineNumber (m_expat_parser);
   char *message;
 
-  if (!debug_xml)
-    return;
-
-  va_start (ap, format);
   message = xstrvprintf (format, ap);
   if (line)
     fprintf_unfiltered (gdb_stderr, "%s (line %d): %s\n",
-			parser->name, line, message);
+			m_name, line, message);
   else
     fprintf_unfiltered (gdb_stderr, "%s: %s\n",
-			parser->name, message);
+			m_name, message);
   xfree (message);
 }
 
+void
+gdb_xml_debug (struct gdb_xml_parser *parser, const char *format, ...)
+{
+  if (!debug_xml)
+    return;
+
+  va_list ap;
+  va_start (ap, format);
+  parser->vdebug (format, ap);
+  va_end (ap);
+}
+
 /* Issue an error message from one of PARSER's handlers, and stop
    parsing.  */
 
 void
+gdb_xml_parser::verror (const char *format, va_list ap)
+{
+  int line = XML_GetCurrentLineNumber (m_expat_parser);
+
+  m_last_line = line;
+  throw_verror (XML_PARSE_ERROR, format, ap);
+}
+
+void
 gdb_xml_error (struct gdb_xml_parser *parser, const char *format, ...)
 {
-  int line = XML_GetCurrentLineNumber (parser->expat_parser);
   va_list ap;
-
-  parser->last_line = line;
   va_start (ap, format);
-  throw_verror (XML_PARSE_ERROR, format, ap);
+  parser->verror (format, ap);
+  va_end (ap);
 }
 
 /* Find the attribute named NAME in the set of parsed attributes
@@ -165,17 +254,16 @@ gdb_xml_values_cleanup (void *data)
   VEC_free (gdb_xml_value_s, *values);
 }
 
-/* Handle the start of an element.  DATA is our local XML parser, NAME
-   is the element, and ATTRS are the names and values of this
-   element's attributes.  */
+/* Handle the start of an element.  NAME is the element, and ATTRS are
+   the names and values of this element's attributes.  */
 
-static void
-gdb_xml_start_element (void *data, const XML_Char *name,
-		       const XML_Char **attrs)
+void
+gdb_xml_parser::start_element (const XML_Char *name,
+			       const XML_Char **attrs)
 {
-  struct gdb_xml_parser *parser = (struct gdb_xml_parser *) data;
-  struct scope_level *scope;
-  struct scope_level new_scope;
+  if (m_error.reason < 0)
+    return;
+
   const struct gdb_xml_element *element;
   const struct gdb_xml_attribute *attribute;
   VEC(gdb_xml_value_s) *attributes = NULL;
@@ -184,19 +272,24 @@ gdb_xml_start_element (void *data, const
 
   /* Push an error scope.  If we return or throw an exception before
      filling this in, it will tell us to ignore children of this
-     element.  */
-  VEC_reserve (scope_level_s, parser->scopes, 1);
-  scope = VEC_last (scope_level_s, parser->scopes);
-  memset (&new_scope, 0, sizeof (new_scope));
-  VEC_quick_push (scope_level_s, parser->scopes, &new_scope);
+     element.  Note we don't take a reference to the element yet
+     because further below we'll process the element which may recurse
+     back here and push more elements to the vector.  When the
+     recursion unrolls all such elements will have been popped back
+     already, but if one of those pushes reallocates the vector,
+     previous element references will be invalidated.  */
+  m_scopes.emplace_back ();
 
-  gdb_xml_debug (parser, _("Entering element <%s>"), name);
+  /* Get a reference to the current scope.  */
+  scope_level &scope = m_scopes[m_scopes.size () - 2];
+
+  gdb_xml_debug (this, _("Entering element <%s>"), name);
 
   /* Find this element in the list of the current scope's allowed
      children.  Record that we've seen it.  */
 
   seen = 1;
-  for (element = scope->elements; element && element->name;
+  for (element = scope.elements; element && element->name;
        element++, seen <<= 1)
     if (strcmp (element->name, name) == 0)
       break;
@@ -206,25 +299,23 @@ gdb_xml_start_element (void *data, const
       /* If we're working on XInclude, <xi:include> can be the child
 	 of absolutely anything.  Copy the previous scope's element
 	 list into the new scope even if there was no match.  */
-      if (parser->is_xinclude)
+      if (m_is_xinclude)
 	{
-	  struct scope_level *unknown_scope;
-
-	  XML_DefaultCurrent (parser->expat_parser);
+	  XML_DefaultCurrent (m_expat_parser);
 
-	  unknown_scope = VEC_last (scope_level_s, parser->scopes);
-	  unknown_scope->elements = scope->elements;
+	  scope_level &unknown_scope = m_scopes.back ();
+	  unknown_scope.elements = scope.elements;
 	  return;
 	}
 
-      gdb_xml_debug (parser, _("Element <%s> unknown"), name);
+      gdb_xml_debug (this, _("Element <%s> unknown"), name);
       return;
     }
 
-  if (!(element->flags & GDB_XML_EF_REPEATABLE) && (seen & scope->seen))
-    gdb_xml_error (parser, _("Element <%s> only expected once"), name);
+  if (!(element->flags & GDB_XML_EF_REPEATABLE) && (seen & scope.seen))
+    gdb_xml_error (this, _("Element <%s> only expected once"), name);
 
-  scope->seen |= seen;
+  scope.seen |= seen;
 
   back_to = make_cleanup (gdb_xml_values_cleanup, &attributes);
 
@@ -246,14 +337,14 @@ gdb_xml_start_element (void *data, const
 
       if (*p != NULL && val == NULL)
 	{
-	  gdb_xml_debug (parser, _("Attribute \"%s\" missing a value"),
+	  gdb_xml_debug (this, _("Attribute \"%s\" missing a value"),
 			 attribute->name);
 	  continue;
 	}
 
       if (*p == NULL && !(attribute->flags & GDB_XML_AF_OPTIONAL))
 	{
-	  gdb_xml_error (parser, _("Required attribute \"%s\" of "
+	  gdb_xml_error (this, _("Required attribute \"%s\" of "
 				   "<%s> not specified"),
 			 attribute->name, element->name);
 	  continue;
@@ -262,11 +353,11 @@ gdb_xml_start_element (void *data, const
       if (*p == NULL)
 	continue;
 
-      gdb_xml_debug (parser, _("Parsing attribute %s=\"%s\""),
+      gdb_xml_debug (this, _("Parsing attribute %s=\"%s\""),
 		     attribute->name, val);
 
       if (attribute->handler)
-	parsed_value = attribute->handler (parser, attribute, val);
+	parsed_value = attribute->handler (this, attribute, val);
       else
 	parsed_value = xstrdup (val);
 
@@ -289,18 +380,21 @@ gdb_xml_start_element (void *data, const
 	      break;
 
 	  if (attribute == NULL || attribute->name == NULL)
-	    gdb_xml_debug (parser, _("Ignoring unknown attribute %s"), *p);
+	    gdb_xml_debug (this, _("Ignoring unknown attribute %s"), *p);
 	}
     }
 
   /* Call the element handler if there is one.  */
   if (element->start_handler)
-    element->start_handler (parser, element, parser->user_data, attributes);
+    element->start_handler (this, element, m_user_data, attributes);
 
-  /* Fill in a new scope level.  */
-  scope = VEC_last (scope_level_s, parser->scopes);
-  scope->element = element;
-  scope->elements = element->children;
+  /* Fill in a new scope level.  Note that we must delay getting a
+     back reference till here because above we might have recursed,
+     which may have reallocated the vector which invalidates
+     iterators/pointers/references.  */
+  scope_level &new_scope = m_scopes.back ();
+  new_scope.element = element;
+  new_scope.elements = element->children;
 
   do_cleanups (back_to);
 }
@@ -314,81 +408,69 @@ gdb_xml_start_element_wrapper (void *dat
 {
   struct gdb_xml_parser *parser = (struct gdb_xml_parser *) data;
 
-  if (parser->error.reason < 0)
-    return;
-
   TRY
     {
-      gdb_xml_start_element (data, name, attrs);
+      parser->start_element (name, attrs);
     }
   CATCH (ex, RETURN_MASK_ALL)
     {
-      parser->error = ex;
-#ifdef HAVE_XML_STOPPARSER
-      XML_StopParser (parser->expat_parser, XML_FALSE);
-#endif
+      parser->set_error (ex);
     }
   END_CATCH
 }
 
-/* Handle the end of an element.  DATA is our local XML parser, and
-   NAME is the current element.  */
+/* Handle the end of an element.  NAME is the current element.  */
 
-static void
-gdb_xml_end_element (void *data, const XML_Char *name)
+void
+gdb_xml_parser::end_element (const XML_Char *name)
 {
-  struct gdb_xml_parser *parser = (struct gdb_xml_parser *) data;
-  struct scope_level *scope = VEC_last (scope_level_s, parser->scopes);
+  if (m_error.reason < 0)
+    return;
+
+  struct scope_level *scope = &m_scopes.back ();
   const struct gdb_xml_element *element;
   unsigned int seen;
 
-  gdb_xml_debug (parser, _("Leaving element <%s>"), name);
+  gdb_xml_debug (this, _("Leaving element <%s>"), name);
 
   for (element = scope->elements, seen = 1;
        element != NULL && element->name != NULL;
        element++, seen <<= 1)
     if ((scope->seen & seen) == 0
 	&& (element->flags & GDB_XML_EF_OPTIONAL) == 0)
-      gdb_xml_error (parser, _("Required element <%s> is missing"),
+      gdb_xml_error (this, _("Required element <%s> is missing"),
 		     element->name);
 
   /* Call the element processor.  */
   if (scope->element != NULL && scope->element->end_handler)
     {
-      const char *scope_body;
+      const char *body;
 
-      if (scope->body == NULL)
-	scope_body = "";
+      if (scope->body.empty ())
+	body = "";
       else
 	{
 	  int length;
 
-	  length = obstack_object_size (scope->body);
-	  obstack_1grow (scope->body, '\0');
-	  char *body = (char *) obstack_finish (scope->body);
+	  length = scope->body.size ();
+	  body = scope->body.c_str ();
 
 	  /* Strip leading and trailing whitespace.  */
-	  while (length > 0 && ISSPACE (body[length-1]))
-	    body[--length] = '\0';
+	  while (length > 0 && ISSPACE (body[length - 1]))
+	    length--;
+	  scope->body.erase (length);
 	  while (*body && ISSPACE (*body))
 	    body++;
-
-	  scope_body = body;
 	}
 
-      scope->element->end_handler (parser, scope->element, parser->user_data,
-				   scope_body);
+      scope->element->end_handler (this, scope->element,
+				   m_user_data, body);
     }
   else if (scope->element == NULL)
-    XML_DefaultCurrent (parser->expat_parser);
+    XML_DefaultCurrent (m_expat_parser);
 
   /* Pop the scope level.  */
-  if (scope->body)
-    {
-      obstack_free (scope->body, NULL);
-      xfree (scope->body);
-    }
-  VEC_pop (scope_level_s, parser->scopes);
+  m_scopes.pop_back ();
 }
 
 /* Wrapper for gdb_xml_end_element, to prevent throwing exceptions
@@ -399,85 +481,49 @@ gdb_xml_end_element_wrapper (void *data,
 {
   struct gdb_xml_parser *parser = (struct gdb_xml_parser *) data;
 
-  if (parser->error.reason < 0)
-    return;
-
   TRY
     {
-      gdb_xml_end_element (data, name);
+      parser->end_element (name);
     }
   CATCH (ex, RETURN_MASK_ALL)
     {
-      parser->error = ex;
-#ifdef HAVE_XML_STOPPARSER
-      XML_StopParser (parser->expat_parser, XML_FALSE);
-#endif
+      parser->set_error (ex);
     }
   END_CATCH
 }
 
 /* Free a parser and all its associated state.  */
 
-static void
-gdb_xml_cleanup (void *arg)
+gdb_xml_parser::~gdb_xml_parser ()
 {
-  struct gdb_xml_parser *parser = (struct gdb_xml_parser *) arg;
-  struct scope_level *scope;
-  int ix;
-
-  XML_ParserFree (parser->expat_parser);
+  XML_ParserFree (m_expat_parser);
+}
 
-  /* Clean up the scopes.  */
-  for (ix = 0; VEC_iterate (scope_level_s, parser->scopes, ix, scope); ix++)
-    if (scope->body)
-      {
-	obstack_free (scope->body, NULL);
-	xfree (scope->body);
-      }
-  VEC_free (scope_level_s, parser->scopes);
-
-  xfree (parser);
-}
-
-/* Initialize a parser and store it to *PARSER_RESULT.  Register a
-   cleanup to destroy the parser.  */
-
-static struct cleanup *
-gdb_xml_create_parser_and_cleanup (const char *name,
-				   const struct gdb_xml_element *elements,
-				   void *user_data,
-				   struct gdb_xml_parser **parser_result)
-{
-  struct gdb_xml_parser *parser;
-  struct scope_level start_scope;
-  struct cleanup *result;
-
-  /* Initialize the parser.  */
-  parser = XCNEW (struct gdb_xml_parser);
-  parser->expat_parser = XML_ParserCreateNS (NULL, '!');
-  if (parser->expat_parser == NULL)
-    {
-      xfree (parser);
-      malloc_failure (0);
-    }
+/* Initialize a parser.  */
 
-  parser->name = name;
+gdb_xml_parser::gdb_xml_parser (const char *name,
+				const gdb_xml_element *elements,
+				void *user_data)
+  : m_name (name),
+    m_user_data (user_data),
+    m_error (exception_none),
+    m_last_line (0),
+    m_dtd_name (NULL),
+    m_is_xinclude (false)
+{
+  m_expat_parser = XML_ParserCreateNS (NULL, '!');
+  if (m_expat_parser == NULL)
+    malloc_failure (0);
 
-  parser->user_data = user_data;
-  XML_SetUserData (parser->expat_parser, parser);
+  XML_SetUserData (m_expat_parser, this);
 
   /* Set the callbacks.  */
-  XML_SetElementHandler (parser->expat_parser, gdb_xml_start_element_wrapper,
+  XML_SetElementHandler (m_expat_parser, gdb_xml_start_element_wrapper,
 			 gdb_xml_end_element_wrapper);
-  XML_SetCharacterDataHandler (parser->expat_parser, gdb_xml_body_text);
+  XML_SetCharacterDataHandler (m_expat_parser, gdb_xml_body_text);
 
   /* Initialize the outer scope.  */
-  memset (&start_scope, 0, sizeof (start_scope));
-  start_scope.elements = elements;
-  VEC_safe_push (scope_level_s, parser->scopes, &start_scope);
-
-  *parser_result = parser;
-  return make_cleanup (gdb_xml_cleanup, parser);
+  m_scopes.emplace_back (elements);
 }
 
 /* External entity handler.  The only external entities we support
@@ -491,19 +537,20 @@ gdb_xml_fetch_external_entity (XML_Parse
 			       const XML_Char *systemId,
 			       const XML_Char *publicId)
 {
-  struct gdb_xml_parser *parser
-    = (struct gdb_xml_parser *) XML_GetUserData (expat_parser);
   XML_Parser entity_parser;
   const char *text;
   enum XML_Status status;
 
   if (systemId == NULL)
     {
-      text = fetch_xml_builtin (parser->dtd_name);
+      gdb_xml_parser *parser
+	= (gdb_xml_parser *) XML_GetUserData (expat_parser);
+
+      text = fetch_xml_builtin (parser->dtd_name ());
       if (text == NULL)
 	internal_error (__FILE__, __LINE__,
 			_("could not locate built-in DTD %s"),
-			parser->dtd_name);
+			parser->dtd_name ());
     }
   else
     {
@@ -512,7 +559,8 @@ gdb_xml_fetch_external_entity (XML_Parse
 	return XML_STATUS_ERROR;
     }
 
-  entity_parser = XML_ExternalEntityParserCreate (expat_parser, context, NULL);
+  entity_parser = XML_ExternalEntityParserCreate (expat_parser,
+						  context, NULL);
 
   /* Don't use our handlers for the contents of the DTD.  Just let expat
      process it.  */
@@ -528,23 +576,20 @@ gdb_xml_fetch_external_entity (XML_Parse
   return status;
 }
 
-/* Associate DTD_NAME, which must be the name of a compiled-in DTD,
-   with PARSER.  */
-
 void
-gdb_xml_use_dtd (struct gdb_xml_parser *parser, const char *dtd_name)
+gdb_xml_parser::use_dtd (const char *dtd_name)
 {
   enum XML_Error err;
 
-  parser->dtd_name = dtd_name;
+  m_dtd_name = dtd_name;
 
-  XML_SetParamEntityParsing (parser->expat_parser,
+  XML_SetParamEntityParsing (m_expat_parser,
 			     XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE);
-  XML_SetExternalEntityRefHandler (parser->expat_parser,
+  XML_SetExternalEntityRefHandler (m_expat_parser,
 				   gdb_xml_fetch_external_entity);
 
   /* Even if no DTD is provided, use the built-in DTD anyway.  */
-  err = XML_UseForeignDTD (parser->expat_parser, XML_TRUE);
+  err = XML_UseForeignDTD (m_expat_parser, XML_TRUE);
   if (err != XML_ERROR_NONE)
     internal_error (__FILE__, __LINE__,
 		    _("XML_UseForeignDTD failed: %s"),
@@ -559,41 +604,41 @@ gdb_xml_use_dtd (struct gdb_xml_parser *
    errors will be caught, warned about, and reported as failure.  */
 
 int
-gdb_xml_parse (struct gdb_xml_parser *parser, const char *buffer)
+gdb_xml_parser::parse (const char *buffer)
 {
   enum XML_Status status;
   const char *error_string;
 
-  gdb_xml_debug (parser, _("Starting:\n%s"), buffer);
+  gdb_xml_debug (this, _("Starting:\n%s"), buffer);
 
-  status = XML_Parse (parser->expat_parser, buffer, strlen (buffer), 1);
+  status = XML_Parse (m_expat_parser, buffer, strlen (buffer), 1);
 
-  if (status == XML_STATUS_OK && parser->error.reason == 0)
+  if (status == XML_STATUS_OK && m_error.reason == 0)
     return 0;
 
-  if (parser->error.reason == RETURN_ERROR
-      && parser->error.error == XML_PARSE_ERROR)
+  if (m_error.reason == RETURN_ERROR
+      && m_error.error == XML_PARSE_ERROR)
     {
-      gdb_assert (parser->error.message != NULL);
-      error_string = parser->error.message;
+      gdb_assert (m_error.message != NULL);
+      error_string = m_error.message;
     }
   else if (status == XML_STATUS_ERROR)
     {
-      enum XML_Error err = XML_GetErrorCode (parser->expat_parser);
+      enum XML_Error err = XML_GetErrorCode (m_expat_parser);
 
       error_string = XML_ErrorString (err);
     }
   else
     {
-      gdb_assert (parser->error.reason < 0);
-      throw_exception (parser->error);
+      gdb_assert (m_error.reason < 0);
+      throw_exception (m_error);
     }
 
-  if (parser->last_line != 0)
-    warning (_("while parsing %s (at line %d): %s"), parser->name,
-	     parser->last_line, error_string);
+  if (m_last_line != 0)
+    warning (_("while parsing %s (at line %d): %s"), m_name,
+	     m_last_line, error_string);
   else
-    warning (_("while parsing %s: %s"), parser->name, error_string);
+    warning (_("while parsing %s: %s"), m_name, error_string);
 
   return -1;
 }
@@ -603,19 +648,10 @@ gdb_xml_parse_quick (const char *name, c
 		     const struct gdb_xml_element *elements,
 		     const char *document, void *user_data)
 {
-  struct gdb_xml_parser *parser;
-  struct cleanup *back_to;
-  int result;
-
-  back_to = gdb_xml_create_parser_and_cleanup (name, elements,
-					       user_data, &parser);
+  gdb_xml_parser parser (name, elements, user_data);
   if (dtd_name != NULL)
-    gdb_xml_use_dtd (parser, dtd_name);
-  result = gdb_xml_parse (parser, document);
-
-  do_cleanups (back_to);
-
-  return result;
+    parser.use_dtd (dtd_name);
+  return parser.parse (document);
 }
 
 /* Parse a field VALSTR that we expect to contain an integer value.
@@ -735,8 +771,18 @@ gdb_xml_parse_attr_enum (struct gdb_xml_
 
 struct xinclude_parsing_data
 {
-  /* The obstack to build the output in.  */
-  struct obstack obstack;
+  xinclude_parsing_data (std::string &output_,
+			 xml_fetch_another fetcher_, void *fetcher_baton_,
+			 int include_depth_)
+    : output (output_),
+      skip_depth (0),
+      include_depth (include_depth_),
+      fetcher (fetcher_),
+      fetcher_baton (fetcher_baton_)
+  {}
+
+  /* Where the output goes.  */
+  std::string &output;
 
   /* A count indicating whether we are in an element whose
      children should not be copied to the output, and if so,
@@ -762,8 +808,6 @@ xinclude_start_include (struct gdb_xml_p
   struct xinclude_parsing_data *data
     = (struct xinclude_parsing_data *) user_data;
   char *href = (char *) xml_find_attribute (attributes, "href")->value;
-  struct cleanup *back_to;
-  char *text, *output;
 
   gdb_xml_debug (parser, _("Processing XInclude of \"%s\""), href);
 
@@ -771,22 +815,17 @@ xinclude_start_include (struct gdb_xml_p
     gdb_xml_error (parser, _("Maximum XInclude depth (%d) exceeded"),
 		   MAX_XINCLUDE_DEPTH);
 
-  text = data->fetcher (href, data->fetcher_baton);
+  gdb::unique_xmalloc_ptr<char> text = data->fetcher (href,
+						      data->fetcher_baton);
   if (text == NULL)
     gdb_xml_error (parser, _("Could not load XML document \"%s\""), href);
-  back_to = make_cleanup (xfree, text);
 
-  output = xml_process_xincludes (parser->name, text, data->fetcher,
-				  data->fetcher_baton,
-				  data->include_depth + 1);
-  if (output == NULL)
+  if (!xml_process_xincludes (data->output, parser->name (),
+			      text.get (), data->fetcher,
+			      data->fetcher_baton,
+			      data->include_depth + 1))
     gdb_xml_error (parser, _("Parsing \"%s\" failed"), href);
 
-  obstack_grow (&data->obstack, output, strlen (output));
-  xfree (output);
-
-  do_cleanups (back_to);
-
   data->skip_depth++;
 }
 
@@ -805,8 +844,7 @@ static void XMLCALL
 xml_xinclude_default (void *data_, const XML_Char *s, int len)
 {
   struct gdb_xml_parser *parser = (struct gdb_xml_parser *) data_;
-  struct xinclude_parsing_data *data
-    = (struct xinclude_parsing_data *) parser->user_data;
+  xinclude_parsing_data *data = (xinclude_parsing_data *) parser->user_data ();
 
   /* If we are inside of e.g. xi:include or the DTD, don't save this
      string.  */
@@ -815,7 +853,7 @@ xml_xinclude_default (void *data_, const
 
   /* Otherwise just add it to the end of the document we're building
      up.  */
-  obstack_grow (&data->obstack, s, len);
+  data->output.append (s, len);
 }
 
 static void XMLCALL
@@ -824,8 +862,7 @@ xml_xinclude_start_doctype (void *data_,
 			    int has_internal_subset)
 {
   struct gdb_xml_parser *parser = (struct gdb_xml_parser *) data_;
-  struct xinclude_parsing_data *data
-    = (struct xinclude_parsing_data *) parser->user_data;
+  xinclude_parsing_data *data = (xinclude_parsing_data *) parser->user_data ();
 
   /* Don't print out the doctype, or the contents of the DTD internal
      subset, if any.  */
@@ -836,8 +873,7 @@ static void XMLCALL
 xml_xinclude_end_doctype (void *data_)
 {
   struct gdb_xml_parser *parser = (struct gdb_xml_parser *) data_;
-  struct xinclude_parsing_data *data
-    = (struct xinclude_parsing_data *) parser->user_data;
+  xinclude_parsing_data *data = (xinclude_parsing_data *) parser->user_data ();
 
   data->skip_depth--;
 }
@@ -851,15 +887,6 @@ xml_xinclude_xml_decl (void *data_, cons
      output.  */
 }
 
-static void
-xml_xinclude_cleanup (void *data_)
-{
-  struct xinclude_parsing_data *data = (struct xinclude_parsing_data *) data_;
-
-  obstack_free (&data->obstack, NULL);
-  xfree (data);
-}
-
 const struct gdb_xml_attribute xinclude_attributes[] = {
   { "href", GDB_XML_AF_NONE, NULL, NULL },
   { NULL, GDB_XML_AF_NONE, NULL, NULL }
@@ -874,57 +901,41 @@ const struct gdb_xml_element xinclude_el
 
 /* The main entry point for <xi:include> processing.  */
 
-char *
-xml_process_xincludes (const char *name, const char *text,
+bool
+xml_process_xincludes (std::string &result,
+		       const char *name, const char *text,
 		       xml_fetch_another fetcher, void *fetcher_baton,
 		       int depth)
 {
-  struct gdb_xml_parser *parser;
-  struct xinclude_parsing_data *data;
-  struct cleanup *back_to;
-  char *result = NULL;
+  xinclude_parsing_data data (result, fetcher, fetcher_baton, depth);
 
-  data = XCNEW (struct xinclude_parsing_data);
-  obstack_init (&data->obstack);
-  back_to = make_cleanup (xml_xinclude_cleanup, data);
-
-  gdb_xml_create_parser_and_cleanup (name, xinclude_elements,
-				     data, &parser);
-  parser->is_xinclude = 1;
-
-  data->include_depth = depth;
-  data->fetcher = fetcher;
-  data->fetcher_baton = fetcher_baton;
+  gdb_xml_parser parser (name, xinclude_elements, &data);
+  parser.set_is_xinclude (true);
 
-  XML_SetCharacterDataHandler (parser->expat_parser, NULL);
-  XML_SetDefaultHandler (parser->expat_parser, xml_xinclude_default);
+  XML_SetCharacterDataHandler (parser.expat_parser (), NULL);
+  XML_SetDefaultHandler (parser.expat_parser (), xml_xinclude_default);
 
   /* Always discard the XML version declarations; the only important
      thing this provides is encoding, and our result will have been
      converted to UTF-8.  */
-  XML_SetXmlDeclHandler (parser->expat_parser, xml_xinclude_xml_decl);
+  XML_SetXmlDeclHandler (parser.expat_parser (), xml_xinclude_xml_decl);
 
   if (depth > 0)
     /* Discard the doctype for included documents.  */
-    XML_SetDoctypeDeclHandler (parser->expat_parser,
+    XML_SetDoctypeDeclHandler (parser.expat_parser (),
 			       xml_xinclude_start_doctype,
 			       xml_xinclude_end_doctype);
 
-  gdb_xml_use_dtd (parser, "xinclude.dtd");
+  parser.use_dtd ("xinclude.dtd");
 
-  if (gdb_xml_parse (parser, text) == 0)
+  if (parser.parse (text) == 0)
     {
-      obstack_1grow (&data->obstack, '\0');
-      result = xstrdup ((const char *) obstack_finish (&data->obstack));
-
       if (depth == 0)
-	gdb_xml_debug (parser, _("XInclude processing succeeded."));
+	gdb_xml_debug (&parser, _("XInclude processing succeeded."));
+      return true;
     }
-  else
-    result = NULL;
 
-  do_cleanups (back_to);
-  return result;
+  return false;
 }
 #endif /* HAVE_LIBEXPAT */
 
@@ -982,54 +993,11 @@ show_debug_xml (struct ui_file *file, in
   fprintf_filtered (file, _("XML debugging is %s.\n"), value);
 }
 
-void
-obstack_xml_printf (struct obstack *obstack, const char *format, ...)
-{
-  va_list ap;
-  const char *f;
-  const char *prev;
-  int percent = 0;
-
-  va_start (ap, format);
-
-  prev = format;
-  for (f = format; *f; f++)
-    {
-      if (percent)
-       {
-         switch (*f)
-           {
-           case 's':
-             {
-               char *p;
-               char *a = va_arg (ap, char *);
-
-               obstack_grow (obstack, prev, f - prev - 1);
-               p = xml_escape_text (a);
-               obstack_grow_str (obstack, p);
-               xfree (p);
-               prev = f + 1;
-             }
-             break;
-           }
-         percent = 0;
-       }
-      else if (*f == '%')
-       percent = 1;
-    }
-
-  obstack_grow_str (obstack, prev);
-  va_end (ap);
-}
-
-char *
+gdb::unique_xmalloc_ptr<char>
 xml_fetch_content_from_file (const char *filename, void *baton)
 {
   const char *dirname = (const char *) baton;
-  FILE *file;
-  struct cleanup *back_to;
-  char *text;
-  size_t len, offset;
+  gdb_file_up file;
 
   if (dirname && *dirname)
     {
@@ -1046,45 +1014,28 @@ xml_fetch_content_from_file (const char 
   if (file == NULL)
     return NULL;
 
-  back_to = make_cleanup_fclose (file);
+  /* Read in the whole file.  */
 
-  /* Read in the whole file, one chunk at a time.  */
-  len = 4096;
-  offset = 0;
-  text = (char *) xmalloc (len);
-  make_cleanup (free_current_contents, &text);
-  while (1)
-    {
-      size_t bytes_read;
-
-      /* Continue reading where the last read left off.  Leave at least
-	 one byte so that we can NUL-terminate the result.  */
-      bytes_read = fread (text + offset, 1, len - offset - 1, file);
-      if (ferror (file))
-	{
-	  warning (_("Read error from \"%s\""), filename);
-	  do_cleanups (back_to);
-	  return NULL;
-	}
+  size_t len;
 
-      offset += bytes_read;
+  if (fseek (file.get (), 0, SEEK_END) == -1)
+    perror_with_name (_("seek to end of file"));
+  len = ftell (file.get ());
+  rewind (file.get ());
 
-      if (feof (file))
-	break;
+  gdb::unique_xmalloc_ptr<char> text ((char *) xmalloc (len + 1));
 
-      len = len * 2;
-      text = (char *) xrealloc (text, len);
+  if (fread (text.get (), 1, len, file.get ()) != len
+      || ferror (file.get ()))
+    {
+      warning (_("Read error from \"%s\""), filename);
+      return NULL;
     }
 
-  fclose (file);
-  discard_cleanups (back_to);
-
-  text[offset] = '\0';
+  text.get ()[len] = '\0';
   return text;
 }
 
-void _initialize_xml_support (void);
-
 void
 _initialize_xml_support (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xml-support.h ./gdb/xml-support.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xml-support.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xml-support.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Helper routines for parsing XML using Expat.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -52,19 +52,21 @@ extern const char *xml_builtin[][2];
 
 /* Callback to fetch a new XML file, based on the provided HREF.  */
 
-typedef char *(*xml_fetch_another) (const char *href, void *baton);
+typedef gdb::unique_xmalloc_ptr<char> (*xml_fetch_another) (const char *href,
+							    void *baton);
 
-/* Return a new string which is the expansion of TEXT after processing
-   <xi:include> tags.  FETCHER will be called (with FETCHER_BATON) to
-   retrieve any new files.  DEPTH should be zero on the initial call.
+/* Append the expansion of TEXT after processing <xi:include> tags in
+   RESULT.  FETCHER will be called (with FETCHER_BATON) to retrieve
+   any new files.  DEPTH should be zero on the initial call.
 
-   On failure, this function uses NAME in a warning and returns NULL.
+   On failure, this function uses NAME in a warning and returns false.
    It may throw an exception, but does not for XML parsing
    problems.  */
 
-char *xml_process_xincludes (const char *name, const char *text,
-			     xml_fetch_another fetcher, void *fetcher_baton,
-			     int depth);
+bool xml_process_xincludes (std::string &result,
+			    const char *name, const char *text,
+			    xml_fetch_another fetcher, void *fetcher_baton,
+			    int depth);
 
 /* Simplified XML parser infrastructure.  */
 
@@ -171,20 +173,6 @@ struct gdb_xml_element
   gdb_xml_element_end_handler *end_handler;
 };
 
-/* Associate DTD_NAME, which must be the name of a compiled-in DTD,
-   with PARSER.  */
-
-void gdb_xml_use_dtd (struct gdb_xml_parser *parser, const char *dtd_name);
-
-/* Invoke PARSER on BUFFER.  BUFFER is the data to parse, which
-   should be NUL-terminated.
-
-   The return value is 0 for success or -1 for error.  It may throw,
-   but only if something unexpected goes wrong during parsing; parse
-   errors will be caught, warned about, and reported as failure.  */
-
-int gdb_xml_parse (struct gdb_xml_parser *parser, const char *buffer);
-
 /* Parse a XML document.  DOCUMENT is the data to parse, which should
    be NUL-terminated. If non-NULL, use the compiled-in DTD named
    DTD_NAME to drive the parsing.
@@ -240,17 +228,10 @@ extern gdb_xml_attribute_handler gdb_xml
 ULONGEST gdb_xml_parse_ulongest (struct gdb_xml_parser *parser,
 				 const char *value);
 
-/* Simple printf to obstack function.  Current implemented formatters:
-   %s - grow an xml escaped text in OBSTACK.  */
-
-extern void obstack_xml_printf (struct obstack *obstack,
-                               const char *format, ...)
-  ATTRIBUTE_PRINTF_2;
-
 /* Open FILENAME, read all its text into memory, close it, and return
    the text.  If something goes wrong, return NULL and warn.  */
 
-extern char *xml_fetch_content_from_file (const char *filename,
-                                          void *baton);
+extern gdb::unique_xmalloc_ptr<char> xml_fetch_content_from_file
+    (const char *filename, void *baton);
 
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xml-syscall.c ./gdb/xml-syscall.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xml-syscall.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xml-syscall.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Functions that provide the mechanism to parse a syscall XML file
    and get its values.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -94,49 +94,62 @@ get_syscall_group_names (struct gdbarch 
 #else /* ! HAVE_LIBEXPAT */
 
 /* Structure which describes a syscall.  */
-typedef struct syscall_desc
+struct syscall_desc
 {
+  syscall_desc (int number_, std::string name_)
+  : number (number_), name (name_)
+  {}
+
   /* The syscall number.  */
 
   int number;
 
   /* The syscall name.  */
 
-  char *name;
-} *syscall_desc_p;
-DEF_VEC_P(syscall_desc_p);
+  std::string name;
+};
+
+typedef std::unique_ptr<syscall_desc> syscall_desc_up;
 
 /* Structure of a syscall group.  */
-typedef struct syscall_group_desc
+struct syscall_group_desc
 {
+  syscall_group_desc (const std::string &name_)
+  : name (name_)
+  {}
+
   /* The group name.  */
 
-  char *name;
+  std::string name;
 
-  /* The syscalls that are part of the group.  */
+  /* The syscalls that are part of the group.  This is a non-owning
+     reference.  */
 
-  VEC(syscall_desc_p) *syscalls;
-} *syscall_group_desc_p;
-DEF_VEC_P(syscall_group_desc_p);
+  std::vector<syscall_desc *> syscalls;
+};
+
+typedef std::unique_ptr<syscall_group_desc> syscall_group_desc_up;
 
 /* Structure that represents syscalls information.  */
 struct syscalls_info
 {
   /* The syscalls.  */
 
-  VEC(syscall_desc_p) *syscalls;
+  std::vector<syscall_desc_up> syscalls;
 
   /* The syscall groups.  */
 
-  VEC(syscall_group_desc_p) *groups;
+  std::vector<syscall_group_desc_up> groups;
 
   /* Variable that will hold the last known data-directory.  This is
      useful to know whether we should re-read the XML info for the
      target.  */
 
-  char *my_gdb_datadir;
+  std::string my_gdb_datadir;
 };
 
+typedef std::unique_ptr<syscalls_info> syscalls_info_up;
+
 /* Callback data for syscall information parsing.  */
 struct syscall_parsing_data
 {
@@ -145,66 +158,6 @@ struct syscall_parsing_data
   struct syscalls_info *syscalls_info;
 };
 
-static struct syscalls_info *
-allocate_syscalls_info (void)
-{
-  return XCNEW (struct syscalls_info);
-}
-
-static void
-syscalls_info_free_syscalls_desc (struct syscall_desc *sd)
-{
-  xfree (sd->name);
-}
-
-/* Free syscall_group_desc members but not the structure itself.  */
-
-static void
-syscalls_info_free_syscall_group_desc (struct syscall_group_desc *sd)
-{
-  VEC_free (syscall_desc_p, sd->syscalls);
-  xfree (sd->name);
-}
-
-static void
-free_syscalls_info (void *arg)
-{
-  struct syscalls_info *syscalls_info = (struct syscalls_info *) arg;
-  struct syscall_desc *sysdesc;
-  struct syscall_group_desc *groupdesc;
-  int i;
-
-  xfree (syscalls_info->my_gdb_datadir);
-
-  if (syscalls_info->syscalls != NULL)
-    {
-      for (i = 0;
-	   VEC_iterate (syscall_desc_p, syscalls_info->syscalls, i, sysdesc);
-	   i++)
-	syscalls_info_free_syscalls_desc (sysdesc);
-      VEC_free (syscall_desc_p, syscalls_info->syscalls);
-    }
-
-  if (syscalls_info->groups != NULL)
-    {
-      for (i = 0;
-	   VEC_iterate (syscall_group_desc_p,
-			syscalls_info->groups, i, groupdesc);
-	   i++)
-	syscalls_info_free_syscall_group_desc (groupdesc);
-
-      VEC_free (syscall_group_desc_p, syscalls_info->groups);
-    }
-
-  xfree (syscalls_info);
-}
-
-static struct cleanup *
-make_cleanup_free_syscalls_info (struct syscalls_info *syscalls_info)
-{
-  return make_cleanup (free_syscalls_info, syscalls_info);
-}
-
 /* Create a new syscall group.  Return pointer to the
    syscall_group_desc structure that represents the new group.  */
 
@@ -212,11 +165,9 @@ static struct syscall_group_desc *
 syscall_group_create_syscall_group_desc (struct syscalls_info *syscalls_info,
 					 const char *group)
 {
-  struct syscall_group_desc *groupdesc = XCNEW (struct syscall_group_desc);
-
-  groupdesc->name = xstrdup (group);
+  syscall_group_desc *groupdesc = new syscall_group_desc (group);
 
-  VEC_safe_push (syscall_group_desc_p, syscalls_info->groups, groupdesc);
+  syscalls_info->groups.emplace_back (groupdesc);
 
   return groupdesc;
 }
@@ -228,19 +179,21 @@ syscall_group_add_syscall (struct syscal
 			   struct syscall_desc *syscall,
 			   const char *group)
 {
-  struct syscall_group_desc *groupdesc = NULL;
-  int i;
-
   /* Search for an existing group.  */
-  for (i = 0;
-       VEC_iterate (syscall_group_desc_p, syscalls_info->groups, i, groupdesc);
-       i++)
+  std::vector<syscall_group_desc_up>::iterator it
+    = syscalls_info->groups.begin ();
+
+  for (; it != syscalls_info->groups.end (); it++)
     {
-      if (strcmp (groupdesc->name, group) == 0)
+      if ((*it)->name == group)
 	break;
     }
 
-  if (groupdesc == NULL)
+  syscall_group_desc *groupdesc;
+
+  if (it != syscalls_info->groups.end ())
+    groupdesc = it->get ();
+  else
     {
       /* No group was found with this name.  We must create a new
 	 one.  */
@@ -248,7 +201,7 @@ syscall_group_add_syscall (struct syscal
 							   group);
     }
 
-  VEC_safe_push (syscall_desc_p, groupdesc->syscalls, syscall);
+  groupdesc->syscalls.push_back (syscall);
 }
 
 static void
@@ -256,18 +209,14 @@ syscall_create_syscall_desc (struct sysc
 			     const char *name, int number,
 			     char *groups)
 {
-  struct syscall_desc *sysdesc = XCNEW (struct syscall_desc);
-  char *group;
+  syscall_desc *sysdesc = new syscall_desc (number, name);
 
-  sysdesc->name = xstrdup (name);
-  sysdesc->number = number;
-
-  VEC_safe_push (syscall_desc_p, syscalls_info->syscalls, sysdesc);
+  syscalls_info->syscalls.emplace_back (sysdesc);
 
   /*  Add syscall to its groups.  */
   if (groups != NULL)
     {
-      for (group = strtok (groups, ",");
+      for (char *group = strtok (groups, ",");
 	   group != NULL;
 	   group = strtok (NULL, ","))
 	syscall_group_add_syscall (syscalls_info, sysdesc, group);
@@ -333,23 +282,20 @@ static struct syscalls_info *
 syscall_parse_xml (const char *document, xml_fetch_another fetcher,
                    void *fetcher_baton)
 {
-  struct cleanup *result_cleanup;
   struct syscall_parsing_data data;
+  syscalls_info_up sysinfo (new syscalls_info ());
 
-  data.syscalls_info = allocate_syscalls_info ();
-  result_cleanup = make_cleanup_free_syscalls_info (data.syscalls_info);
+  data.syscalls_info = sysinfo.get ();
 
   if (gdb_xml_parse_quick (_("syscalls info"), NULL,
 			   syselements, document, &data) == 0)
     {
       /* Parsed successfully.  */
-      discard_cleanups (result_cleanup);
-      return data.syscalls_info;
+      return sysinfo.release ();
     }
   else
     {
       warning (_("Could not load XML syscalls info; ignoring"));
-      do_cleanups (result_cleanup);
       return NULL;
     }
 }
@@ -362,22 +308,14 @@ syscall_parse_xml (const char *document,
 static struct syscalls_info *
 xml_init_syscalls_info (const char *filename)
 {
-  char *full_file;
-  struct syscalls_info *syscalls_info;
-  struct cleanup *back_to;
-
-  full_file = xml_fetch_content_from_file (filename, gdb_datadir);
+  gdb::unique_xmalloc_ptr<char> full_file
+    = xml_fetch_content_from_file (filename, gdb_datadir);
   if (full_file == NULL)
     return NULL;
 
-  back_to = make_cleanup (xfree, full_file);
-
-  syscalls_info = syscall_parse_xml (full_file,
-				     xml_fetch_content_from_file,
-				     (void *) ldirname (filename).c_str ());
-  do_cleanups (back_to);
-
-  return syscalls_info;
+  return syscall_parse_xml (full_file.get (),
+			    xml_fetch_content_from_file,
+			    (void *) ldirname (filename).c_str ());
 }
 
 /* Initializes the syscalls_info structure according to the
@@ -389,12 +327,13 @@ init_syscalls_info (struct gdbarch *gdba
   const char *xml_syscall_file = gdbarch_xml_syscall_file (gdbarch);
 
   /* Should we re-read the XML info for this target?  */
-  if (syscalls_info != NULL && syscalls_info->my_gdb_datadir != NULL
-      && filename_cmp (syscalls_info->my_gdb_datadir, gdb_datadir) != 0)
+  if (syscalls_info != NULL && !syscalls_info->my_gdb_datadir.empty ()
+      && filename_cmp (syscalls_info->my_gdb_datadir.c_str (),
+		       gdb_datadir) != 0)
     {
       /* The data-directory changed from the last time we used it.
 	 It means that we have to re-read the XML info.  */
-      free_syscalls_info (syscalls_info);
+      delete syscalls_info;
       syscalls_info = NULL;
       set_gdbarch_syscalls_info (gdbarch, NULL);
     }
@@ -409,9 +348,9 @@ init_syscalls_info (struct gdbarch *gdba
      gdbarch->syscalls_info anyway, in order to store information
      about our attempt.  */
   if (syscalls_info == NULL)
-    syscalls_info = allocate_syscalls_info ();
+    syscalls_info = new struct syscalls_info ();
 
-  if (syscalls_info->syscalls == NULL)
+  if (syscalls_info->syscalls.empty ())
     {
       if (xml_syscall_file != NULL)
 	warning (_("Could not load the syscall XML file `%s/%s'."),
@@ -425,7 +364,7 @@ init_syscalls_info (struct gdbarch *gdba
     }
 
   /* Saving the data-directory used to read this XML info.  */
-  syscalls_info->my_gdb_datadir = xstrdup (gdb_datadir);
+  syscalls_info->my_gdb_datadir.assign (gdb_datadir);
 
   set_gdbarch_syscalls_info (gdbarch, syscalls_info);
 }
@@ -437,22 +376,17 @@ static struct syscall_group_desc *
 syscall_group_get_group_by_name (const struct syscalls_info *syscalls_info,
 				 const char *group)
 {
-  struct syscall_group_desc *groupdesc;
-  int i;
-
   if (syscalls_info == NULL)
     return NULL;
 
   if (group == NULL)
     return NULL;
 
-   /* Search for existing group.  */
-  for (i = 0;
-       VEC_iterate (syscall_group_desc_p, syscalls_info->groups, i, groupdesc);
-       i++)
+  /* Search for existing group.  */
+  for (const syscall_group_desc_up &groupdesc : syscalls_info->groups)
     {
-      if (strcmp (groupdesc->name, group) == 0)
-	return groupdesc;
+      if (groupdesc->name == group)
+	return groupdesc.get ();
     }
 
   return NULL;
@@ -463,17 +397,13 @@ xml_get_syscall_number (struct gdbarch *
                         const char *syscall_name)
 {
   struct syscalls_info *syscalls_info = gdbarch_syscalls_info (gdbarch);
-  struct syscall_desc *sysdesc;
-  int i;
 
   if (syscalls_info == NULL
       || syscall_name == NULL)
     return UNKNOWN_SYSCALL;
 
-  for (i = 0;
-       VEC_iterate(syscall_desc_p, syscalls_info->syscalls, i, sysdesc);
-       i++)
-    if (strcmp (sysdesc->name, syscall_name) == 0)
+  for (const syscall_desc_up &sysdesc : syscalls_info->syscalls)
+    if (sysdesc->name == syscall_name)
       return sysdesc->number;
 
   return UNKNOWN_SYSCALL;
@@ -484,18 +414,14 @@ xml_get_syscall_name (struct gdbarch *gd
                       int syscall_number)
 {
   struct syscalls_info *syscalls_info = gdbarch_syscalls_info (gdbarch);
-  struct syscall_desc *sysdesc;
-  int i;
 
   if (syscalls_info == NULL
       || syscall_number < 0)
     return NULL;
 
-  for (i = 0;
-       VEC_iterate(syscall_desc_p, syscalls_info->syscalls, i, sysdesc);
-       i++)
+  for (const syscall_desc_up &sysdesc : syscalls_info->syscalls)
     if (sysdesc->number == syscall_number)
-      return sysdesc->name;
+      return sysdesc->name.c_str ();
 
   return NULL;
 }
@@ -504,21 +430,16 @@ static const char **
 xml_list_of_syscalls (struct gdbarch *gdbarch)
 {
   struct syscalls_info *syscalls_info = gdbarch_syscalls_info (gdbarch);
-  struct syscall_desc *sysdesc;
-  const char **names = NULL;
-  int nsyscalls;
-  int i;
 
   if (syscalls_info == NULL)
     return NULL;
 
-  nsyscalls = VEC_length (syscall_desc_p, syscalls_info->syscalls);
-  names = XNEWVEC (const char *, nsyscalls + 1);
+  int nsyscalls = syscalls_info->syscalls.size ();
+  const char **names = XNEWVEC (const char *, nsyscalls + 1);
 
-  for (i = 0;
-       VEC_iterate (syscall_desc_p, syscalls_info->syscalls, i, sysdesc);
-       i++)
-    names[i] = sysdesc->name;
+  int i;
+  for (i = 0; i < syscalls_info->syscalls.size (); i++)
+    names[i] = syscalls_info->syscalls[i]->name.c_str ();
 
   names[i] = NULL;
 
@@ -534,7 +455,6 @@ xml_list_syscalls_by_group (struct gdbar
 {
   struct syscalls_info *syscalls_info = gdbarch_syscalls_info (gdbarch);
   struct syscall_group_desc *groupdesc;
-  struct syscall_desc *sysdesc;
   struct syscall *syscalls = NULL;
   int nsyscalls;
   int i;
@@ -546,16 +466,14 @@ xml_list_syscalls_by_group (struct gdbar
   if (groupdesc == NULL)
     return NULL;
 
-  nsyscalls = VEC_length (syscall_desc_p, groupdesc->syscalls);
+  nsyscalls = groupdesc->syscalls.size ();
   syscalls = (struct syscall*) xmalloc ((nsyscalls + 1)
 					* sizeof (struct syscall));
 
-  for (i = 0;
-       VEC_iterate (syscall_desc_p, groupdesc->syscalls, i, sysdesc);
-       i++)
+  for (i = 0; i < groupdesc->syscalls.size (); i++)
     {
-      syscalls[i].name = sysdesc->name;
-      syscalls[i].number = sysdesc->number;
+      syscalls[i].name = groupdesc->syscalls[i]->name.c_str ();
+      syscalls[i].number = groupdesc->syscalls[i]->number;
     }
 
   /* Add final element marker.  */
@@ -573,21 +491,18 @@ static const char **
 xml_list_of_groups (struct gdbarch *gdbarch)
 {
   struct syscalls_info *syscalls_info = gdbarch_syscalls_info (gdbarch);
-  struct syscall_group_desc *groupdesc;
   const char **names = NULL;
-  int i;
   int ngroups;
+  int i;
 
   if (syscalls_info == NULL)
     return NULL;
 
-  ngroups = VEC_length (syscall_group_desc_p, syscalls_info->groups);
+  ngroups = syscalls_info->groups.size ();
   names = (const char**) xmalloc ((ngroups + 1) * sizeof (char *));
 
-  for (i = 0;
-       VEC_iterate (syscall_group_desc_p, syscalls_info->groups, i, groupdesc);
-       i++)
-    names[i] = groupdesc->name;
+  for (i = 0; i < syscalls_info->groups.size (); i++)
+    names[i] = syscalls_info->groups[i]->name.c_str ();
 
   names[i] = NULL;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xml-syscall.h ./gdb/xml-syscall.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xml-syscall.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xml-syscall.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Functions that provide the mechanism to parse a syscall XML file
    and get its values.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xml-tdesc.c ./gdb/xml-tdesc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xml-tdesc.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xml-tdesc.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* XML target description support for GDB.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    Contributed by CodeSourcery.
 
@@ -26,6 +26,8 @@
 #include "xml-tdesc.h"
 #include "osabi.h"
 #include "filenames.h"
+#include <unordered_map>
+#include <string>
 
 /* Maximum sizes.
    This is just to catch obviously wrong values.  */
@@ -64,15 +66,7 @@ tdesc_parse_xml (const char *document, x
    then we will create unnecessary duplicate gdbarches.  See
    gdbarch_list_lookup_by_info.  */
 
-struct tdesc_xml_cache
-{
-  const char *xml_document;
-  struct target_desc *tdesc;
-};
-typedef struct tdesc_xml_cache tdesc_xml_cache_s;
-DEF_VEC_O(tdesc_xml_cache_s);
-
-static VEC(tdesc_xml_cache_s) *xml_cache;
+static std::unordered_map<std::string, target_desc *> xml_cache;
 
 /* Callback data for target description parsing.  */
 
@@ -89,7 +83,7 @@ struct tdesc_parsing_data
   int next_regnum;
 
   /* The struct or union we are currently parsing, or last parsed.  */
-  struct tdesc_type *current_type;
+  tdesc_type_with_fields *current_type;
 
   /* The byte size of the current struct/flags type, if specified.  Zero
      if not specified.  Flags values must specify a size.  */
@@ -250,11 +244,11 @@ tdesc_start_struct (struct gdb_xml_parse
 {
   struct tdesc_parsing_data *data = (struct tdesc_parsing_data *) user_data;
   char *id = (char *) xml_find_attribute (attributes, "id")->value;
-  struct tdesc_type *type;
   struct gdb_xml_value *attr;
 
-  type = tdesc_create_struct (data->current_feature, id);
-  data->current_type = type;
+  tdesc_type_with_fields *type_with_fields
+    = tdesc_create_struct (data->current_feature, id);
+  data->current_type = type_with_fields;
   data->current_type_size = 0;
 
   attr = xml_find_attribute (attributes, "size");
@@ -268,7 +262,7 @@ tdesc_start_struct (struct gdb_xml_parse
 			 _("Struct size %s is larger than maximum (%d)"),
 			 pulongest (size), MAX_FIELD_SIZE);
 	}
-      tdesc_set_struct_size (type, size);
+      tdesc_set_struct_size (type_with_fields, size);
       data->current_type_size = size;
     }
 }
@@ -282,7 +276,6 @@ tdesc_start_flags (struct gdb_xml_parser
   char *id = (char *) xml_find_attribute (attributes, "id")->value;
   ULONGEST size = * (ULONGEST *)
     xml_find_attribute (attributes, "size")->value;
-  struct tdesc_type *type;
 
   if (size > MAX_FIELD_SIZE)
     {
@@ -290,9 +283,8 @@ tdesc_start_flags (struct gdb_xml_parser
 		     _("Flags size %s is larger than maximum (%d)"),
 		     pulongest (size), MAX_FIELD_SIZE);
     }
-  type = tdesc_create_flags (data->current_feature, id, size);
 
-  data->current_type = type;
+  data->current_type = tdesc_create_flags (data->current_feature, id, size);
   data->current_type_size = size;
 }
 
@@ -305,7 +297,6 @@ tdesc_start_enum (struct gdb_xml_parser 
   char *id = (char *) xml_find_attribute (attributes, "id")->value;
   int size = * (ULONGEST *)
     xml_find_attribute (attributes, "size")->value;
-  struct tdesc_type *type;
 
   if (size > MAX_FIELD_SIZE)
     {
@@ -313,9 +304,8 @@ tdesc_start_enum (struct gdb_xml_parser 
 		     _("Enum size %s is larger than maximum (%d)"),
 		     pulongest (size), MAX_FIELD_SIZE);
     }
-  type = tdesc_create_enum (data->current_feature, id, size);
 
-  data->current_type = type;
+  data->current_type = tdesc_create_enum (data->current_feature, id, size);
   data->current_type_size = 0;
 }
 
@@ -381,7 +371,7 @@ tdesc_start_field (struct gdb_xml_parser
 
   if (start != -1)
     {
-      struct tdesc_type *t = data->current_type;
+      tdesc_type_with_fields *t = data->current_type;
 
       /* Older versions of gdb can't handle elided end values.
          Stick with that for now, to help ensure backward compatibility.
@@ -631,55 +621,42 @@ static struct target_desc *
 tdesc_parse_xml (const char *document, xml_fetch_another fetcher,
 		 void *fetcher_baton)
 {
-  struct cleanup *back_to, *result_cleanup;
   struct tdesc_parsing_data data;
-  struct tdesc_xml_cache *cache;
-  char *expanded_text;
-  int ix;
 
   /* Expand all XInclude directives.  */
-  expanded_text = xml_process_xincludes (_("target description"),
-					 document, fetcher, fetcher_baton, 0);
-  if (expanded_text == NULL)
+  std::string expanded_text;
+
+  if (!xml_process_xincludes (expanded_text,
+			      _("target description"),
+			      document, fetcher, fetcher_baton, 0))
     {
       warning (_("Could not load XML target description; ignoring"));
       return NULL;
     }
 
   /* Check for an exact match in the list of descriptions we have
-     previously parsed.  strcmp is a slightly inefficient way to
-     do this; an SHA-1 checksum would work as well.  */
-  for (ix = 0; VEC_iterate (tdesc_xml_cache_s, xml_cache, ix, cache); ix++)
-    if (strcmp (cache->xml_document, expanded_text) == 0)
-      {
-       xfree (expanded_text);
-       return cache->tdesc;
-      }
-
-  back_to = make_cleanup (null_cleanup, NULL);
+     previously parsed.  */
+  const auto it = xml_cache.find (expanded_text);
+  if (it != xml_cache.end ())
+    return it->second;
 
   memset (&data, 0, sizeof (struct tdesc_parsing_data));
   data.tdesc = allocate_target_description ();
-  result_cleanup = make_cleanup_free_target_description (data.tdesc);
-  make_cleanup (xfree, expanded_text);
+  struct cleanup *result_cleanup
+    = make_cleanup_free_target_description (data.tdesc);
 
   if (gdb_xml_parse_quick (_("target description"), "gdb-target.dtd",
-			   tdesc_elements, expanded_text, &data) == 0)
+			   tdesc_elements, expanded_text.c_str (), &data) == 0)
     {
       /* Parsed successfully.  */
-      struct tdesc_xml_cache new_cache;
-
-      new_cache.xml_document = expanded_text;
-      new_cache.tdesc = data.tdesc;
-      VEC_safe_push (tdesc_xml_cache_s, xml_cache, &new_cache);
+      xml_cache.emplace (std::move (expanded_text), data.tdesc);
       discard_cleanups (result_cleanup);
-      do_cleanups (back_to);
       return data.tdesc;
     }
   else
     {
       warning (_("Could not load XML target description; ignoring"));
-      do_cleanups (back_to);
+      do_cleanups (result_cleanup);
       return NULL;
     }
 }
@@ -692,24 +669,16 @@ tdesc_parse_xml (const char *document, x
 const struct target_desc *
 file_read_description_xml (const char *filename)
 {
-  struct target_desc *tdesc;
-  char *tdesc_str;
-  struct cleanup *back_to;
-
-  tdesc_str = xml_fetch_content_from_file (filename, NULL);
+  gdb::unique_xmalloc_ptr<char> tdesc_str
+    = xml_fetch_content_from_file (filename, NULL);
   if (tdesc_str == NULL)
     {
       warning (_("Could not open \"%s\""), filename);
       return NULL;
     }
 
-  back_to = make_cleanup (xfree, tdesc_str);
-
-  tdesc = tdesc_parse_xml (tdesc_str, xml_fetch_content_from_file,
-			   (void *) ldirname (filename).c_str ());
-  do_cleanups (back_to);
-
-  return tdesc;
+  return tdesc_parse_xml (tdesc_str.get (), xml_fetch_content_from_file,
+			  (void *) ldirname (filename).c_str ());
 }
 
 /* Read a string representation of available features from the target,
@@ -719,7 +688,7 @@ file_read_description_xml (const char *f
    is "target.xml".  Other calls may be performed for the DTD or
    for <xi:include>.  */
 
-static char *
+static gdb::unique_xmalloc_ptr<char>
 fetch_available_features_from_target (const char *name, void *baton_)
 {
   struct target_ops *ops = (struct target_ops *) baton_;
@@ -738,28 +707,21 @@ fetch_available_features_from_target (co
 const struct target_desc *
 target_read_description_xml (struct target_ops *ops)
 {
-  struct target_desc *tdesc;
-  char *tdesc_str;
-  struct cleanup *back_to;
-
-  tdesc_str = fetch_available_features_from_target ("target.xml", ops);
+  gdb::unique_xmalloc_ptr<char> tdesc_str
+    = fetch_available_features_from_target ("target.xml", ops);
   if (tdesc_str == NULL)
     return NULL;
 
-  back_to = make_cleanup (xfree, tdesc_str);
-  tdesc = tdesc_parse_xml (tdesc_str,
-			   fetch_available_features_from_target,
-			   ops);
-  do_cleanups (back_to);
-
-  return tdesc;
+  return tdesc_parse_xml (tdesc_str.get (),
+			  fetch_available_features_from_target,
+			  ops);
 }
 
 /* Fetches an XML target description using OPS,  processing
    includes, but not parsing it.  Used to dump whole tdesc
    as a single XML file.  */
 
-char *
+gdb::optional<std::string>
 target_fetch_description_xml (struct target_ops *ops)
 {
 #if !defined(HAVE_LIBEXPAT)
@@ -772,28 +734,22 @@ target_fetch_description_xml (struct tar
 		 "disabled at compile time"));
     }
 
-  return NULL;
+  return {};
 #else
-  struct target_desc *tdesc;
-  char *tdesc_str;
-  char *expanded_text;
-  struct cleanup *back_to;
-
-  tdesc_str = fetch_available_features_from_target ("target.xml", ops);
+  gdb::unique_xmalloc_ptr<char>
+    tdesc_str = fetch_available_features_from_target ("target.xml", ops);
   if (tdesc_str == NULL)
-    return NULL;
+    return {};
 
-  back_to = make_cleanup (xfree, tdesc_str);
-  expanded_text = xml_process_xincludes (_("target description"),
-					 tdesc_str,
-					 fetch_available_features_from_target, ops, 0);
-  do_cleanups (back_to);
-  if (expanded_text == NULL)
+  std::string output;
+  if (!xml_process_xincludes (output,
+			      _("target description"),
+			      tdesc_str.get (),
+			      fetch_available_features_from_target, ops, 0))
     {
       warning (_("Could not load XML target description; ignoring"));
-      return NULL;
+      return {};
     }
-
-  return expanded_text;
+  return output;
 #endif
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xml-tdesc.h ./gdb/xml-tdesc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xml-tdesc.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xml-tdesc.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* XML target description support for GDB.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    Contributed by CodeSourcery.
 
@@ -19,6 +19,12 @@
    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 XML_TDESC_H
+#define XML_TDESC_H
+
+#include "common/gdb_optional.h"
+#include <string>
+
 struct target_ops;
 struct target_desc;
 
@@ -32,8 +38,11 @@ const struct target_desc *file_read_desc
 
 const struct target_desc *target_read_description_xml (struct target_ops *);
 
-/* Fetches an XML target description using OPS,  processing
-   includes, but not parsing it.  Used to dump whole tdesc
-   as a single XML file.  */
+/* Fetches an XML target description using OPS, processing includes,
+   but not parsing it.  Used to dump whole tdesc as a single XML file.
+   Returns the description on success, and a disengaged optional
+   otherwise.  */
+gdb::optional<std::string> target_fetch_description_xml (target_ops *ops);
+
+#endif /* XML_TDESC_H */
 
-char *target_fetch_description_xml (struct target_ops *ops);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xstormy16-tdep.c ./gdb/xstormy16-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xstormy16-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xstormy16-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Sanyo Xstormy16a (LC590000) processor.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -30,11 +30,10 @@
 #include "dis-asm.h"
 #include "inferior.h"
 #include "arch-utils.h"
-#include "floatformat.h"
 #include "regcache.h"
-#include "doublest.h"
 #include "osabi.h"
 #include "objfiles.h"
+#include "common/byte-vector.h"
 
 enum gdb_regnum
 {
@@ -276,21 +275,17 @@ xstormy16_push_dummy_call (struct gdbarc
      wordaligned.  */
   for (j = nargs - 1; j >= i; j--)
     {
-      gdb_byte *val;
-      struct cleanup *back_to;
       const gdb_byte *bytes = value_contents (args[j]);
 
       typelen = TYPE_LENGTH (value_enclosing_type (args[j]));
       slacklen = typelen & 1;
-      val = (gdb_byte *) xmalloc (typelen + slacklen);
-      back_to = make_cleanup (xfree, val);
-      memcpy (val, bytes, typelen);
-      memset (val + typelen, 0, slacklen);
+      gdb::byte_vector val (typelen + slacklen);
+      memcpy (val.data (), bytes, typelen);
+      memset (val.data () + typelen, 0, slacklen);
 
       /* Now write this data to the stack.  The stack grows upwards.  */
-      write_memory (stack_dest, val, typelen + slacklen);
+      write_memory (stack_dest, val.data (), typelen + slacklen);
       stack_dest += typelen + slacklen;
-      do_cleanups (back_to);
     }
 
   store_unsigned_integer (buf, xstormy16_pc_size, byte_order, bp_addr);
@@ -849,8 +844,6 @@ xstormy16_gdbarch_init (struct gdbarch_i
 
   set_gdbarch_skip_trampoline_code (gdbarch, xstormy16_skip_trampoline_code);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_xstormy16);
-
   gdbarch_init_osabi (info, gdbarch);
 
   dwarf2_append_unwinders (gdbarch);
@@ -863,9 +856,6 @@ xstormy16_gdbarch_init (struct gdbarch_i
    Initializer function for the Sanyo Xstormy16a module.
    Called by gdb at start-up.  */
 
-/* -Wmissing-prototypes */
-extern initialize_file_ftype _initialize_xstormy16_tdep;
-
 void
 _initialize_xstormy16_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xtensa-config.c ./gdb/xtensa-config.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xtensa-config.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xtensa-config.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Configuration for the Xtensa architecture for GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xtensa-linux-nat.c ./gdb/xtensa-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xtensa-linux-nat.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xtensa-linux-nat.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Xtensa GNU/Linux native support.
 
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -51,7 +51,7 @@ fill_gregset (const struct regcache *reg
 {
   int i;
   xtensa_elf_gregset_t *regs = (xtensa_elf_gregset_t *) gregsetp;
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   if (regnum == gdbarch_pc_regnum (gdbarch) || regnum == -1)
     regcache_raw_collect (regcache, gdbarch_pc_regnum (gdbarch), &regs->pc);
@@ -121,7 +121,7 @@ supply_gregset_reg (struct regcache *reg
   int i;
   xtensa_elf_gregset_t *regs = (xtensa_elf_gregset_t *) gregsetp;
 
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
 
   if (regnum == gdbarch_pc_regnum (gdbarch) || regnum == -1)
     regcache_raw_supply (regcache, gdbarch_pc_regnum (gdbarch), &regs->pc);
@@ -338,8 +338,6 @@ ps_get_thread_area (struct ps_prochandle
   return PS_OK;
 }
 
-void _initialize_xtensa_linux_nat (void);
-
 void
 _initialize_xtensa_linux_nat (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xtensa-linux-tdep.c ./gdb/xtensa-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xtensa-linux-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xtensa-linux-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux on Xtensa processors.
 
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -112,9 +112,6 @@ xtensa_linux_init_abi (struct gdbarch_in
                                              svr4_fetch_objfile_link_map);
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_xtensa_linux_tdep;
-
 void
 _initialize_xtensa_linux_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xtensa-tdep.c ./gdb/xtensa-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xtensa-tdep.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xtensa-tdep.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Xtensa port of GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -29,7 +29,6 @@
 #include "dis-asm.h"
 #include "inferior.h"
 #include "osabi.h"
-#include "floatformat.h"
 #include "regcache.h"
 #include "reggroups.h"
 #include "regset.h"
@@ -120,6 +119,9 @@ static unsigned int xtensa_debug_level =
 #define PS_WOE			(1<<18)
 #define PS_EXC			(1<<4)
 
+/* Big enough to hold the size of the largest register in bytes.  */
+#define XTENSA_MAX_REGISTER_SIZE	64
+
 static int
 windowing_enabled (struct gdbarch *gdbarch, unsigned int ps)
 {
@@ -370,7 +372,7 @@ static void
 xtensa_register_write_masked (struct regcache *regcache,
 			      xtensa_register_t *reg, const gdb_byte *buffer)
 {
-  unsigned int value[(MAX_REGISTER_SIZE + 3) / 4];
+  unsigned int value[(XTENSA_MAX_REGISTER_SIZE + 3) / 4];
   const xtensa_mask_t *mask = reg->mask;
 
   int shift = 0;		/* Shift for next mask (mod 32).  */
@@ -386,7 +388,7 @@ xtensa_register_write_masked (struct reg
   DEBUGTRACE ("xtensa_register_write_masked ()\n");
 
   /* Copy the masked register to host byte-order.  */
-  if (gdbarch_byte_order (get_regcache_arch (regcache)) == BFD_ENDIAN_BIG)
+  if (gdbarch_byte_order (regcache->arch ()) == BFD_ENDIAN_BIG)
     for (i = 0; i < bytesize; i++)
       {
 	mem >>= 8;
@@ -454,7 +456,7 @@ static enum register_status
 xtensa_register_read_masked (struct regcache *regcache,
 			     xtensa_register_t *reg, gdb_byte *buffer)
 {
-  unsigned int value[(MAX_REGISTER_SIZE + 3) / 4];
+  unsigned int value[(XTENSA_MAX_REGISTER_SIZE + 3) / 4];
   const xtensa_mask_t *mask = reg->mask;
 
   int shift = 0;
@@ -520,7 +522,7 @@ xtensa_register_read_masked (struct regc
   ptr = value;
   mem = *ptr;
 
-  if (gdbarch_byte_order (get_regcache_arch (regcache)) == BFD_ENDIAN_BIG)
+  if (gdbarch_byte_order (regcache->arch ()) == BFD_ENDIAN_BIG)
     for (i = 0; i < bytesize; i++)
       {
 	if ((i & 3) == 0)
@@ -549,8 +551,6 @@ xtensa_pseudo_register_read (struct gdba
 			     int regnum,
 			     gdb_byte *buffer)
 {
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-
   DEBUGTRACE ("xtensa_pseudo_register_read (... regnum = %d (%s) ...)\n",
 	      regnum, xtensa_register_name (gdbarch, regnum));
 
@@ -559,16 +559,15 @@ xtensa_pseudo_register_read (struct gdba
       && (regnum >= gdbarch_tdep (gdbarch)->a0_base)
       && (regnum <= gdbarch_tdep (gdbarch)->a0_base + 15))
     {
-      gdb_byte *buf = (gdb_byte *) alloca (MAX_REGISTER_SIZE);
+      ULONGEST value;
       enum register_status status;
 
-      status = regcache_raw_read (regcache,
-				  gdbarch_tdep (gdbarch)->wb_regnum,
-				  buf);
+      status = regcache_raw_read_unsigned (regcache,
+					   gdbarch_tdep (gdbarch)->wb_regnum,
+					   &value);
       if (status != REG_VALID)
 	return status;
-      regnum = arreg_number (gdbarch, regnum,
-			     extract_unsigned_integer (buf, 4, byte_order));
+      regnum = arreg_number (gdbarch, regnum, value);
     }
 
   /* We can always read non-pseudo registers.  */
@@ -646,8 +645,6 @@ xtensa_pseudo_register_write (struct gdb
 			      int regnum,
 			      const gdb_byte *buffer)
 {
-  enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
-
   DEBUGTRACE ("xtensa_pseudo_register_write (... regnum = %d (%s) ...)\n",
 	      regnum, xtensa_register_name (gdbarch, regnum));
 
@@ -656,12 +653,10 @@ xtensa_pseudo_register_write (struct gdb
       && (regnum >= gdbarch_tdep (gdbarch)->a0_base)
       && (regnum <= gdbarch_tdep (gdbarch)->a0_base + 15))
     {
-      gdb_byte *buf = (gdb_byte *) alloca (MAX_REGISTER_SIZE);
-
-      regcache_raw_read (regcache,
-			 gdbarch_tdep (gdbarch)->wb_regnum, buf);
-      regnum = arreg_number (gdbarch, regnum,
-			     extract_unsigned_integer (buf, 4, byte_order));
+      ULONGEST value;
+      regcache_raw_read_unsigned (regcache,
+				  gdbarch_tdep (gdbarch)->wb_regnum, &value);
+      regnum = arreg_number (gdbarch, regnum, value);
     }
 
   /* We can always write 'core' registers.
@@ -740,17 +735,13 @@ static void
 xtensa_init_reggroups (void)
 {
   int i;
-  char cpname[] = "cp0";
 
   xtensa_ar_reggroup = reggroup_new ("ar", USER_REGGROUP);
   xtensa_user_reggroup = reggroup_new ("user", USER_REGGROUP);
   xtensa_vectra_reggroup = reggroup_new ("vectra", USER_REGGROUP);
 
   for (i = 0; i < XTENSA_MAX_COPROCESSOR; i++)
-    {
-      cpname[2] = '0' + i;
-      xtensa_cp[i] = reggroup_new (cpname, USER_REGGROUP);
-    }
+    xtensa_cp[i] = reggroup_new (xstrprintf ("cp%d", i), USER_REGGROUP);
 }
 
 static void
@@ -852,7 +843,7 @@ xtensa_supply_gregset (const struct regs
 		       size_t len)
 {
   const xtensa_elf_gregset_t *regs = (const xtensa_elf_gregset_t *) gregs;
-  struct gdbarch *gdbarch = get_regcache_arch (rc);
+  struct gdbarch *gdbarch = rc->arch ();
   int i;
 
   DEBUGTRACE ("xtensa_supply_gregset (..., regnum==%d, ...)\n", regnum);
@@ -1562,7 +1553,7 @@ xtensa_extract_return_value (struct type
 			     struct regcache *regcache,
 			     void *dst)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   bfd_byte *valbuf = (bfd_byte *) dst;
   int len = TYPE_LENGTH (type);
   ULONGEST pc, wb;
@@ -1618,7 +1609,7 @@ xtensa_store_return_value (struct type *
 			   struct regcache *regcache,
 			   const void *dst)
 {
-  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  struct gdbarch *gdbarch = regcache->arch ();
   const bfd_byte *valbuf = (const bfd_byte *) dst;
   unsigned int areg;
   ULONGEST pc, wb;
@@ -3259,8 +3250,6 @@ xtensa_gdbarch_init (struct gdbarch_info
   frame_unwind_append_unwinder (gdbarch, &xtensa_unwind);
   dwarf2_append_unwinders (gdbarch);
 
-  set_gdbarch_print_insn (gdbarch, print_insn_xtensa);
-
   set_gdbarch_have_nonsteppable_watchpoint (gdbarch, 1);
 
   xtensa_add_reggroups (gdbarch);
@@ -3284,9 +3273,6 @@ xtensa_dump_tdep (struct gdbarch *gdbarc
   error (_("xtensa_dump_tdep(): not implemented"));
 }
 
-/* Provide a prototype to silence -Wmissing-prototypes.  */
-extern initialize_file_ftype _initialize_xtensa_tdep;
-
 void
 _initialize_xtensa_tdep (void)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xtensa-tdep.h ./gdb/xtensa-tdep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xtensa-tdep.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xtensa-tdep.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for the Xtensa port of GDB, the GNU debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xtensa-xtregs.c ./gdb/xtensa-xtregs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/xtensa-xtregs.c	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/xtensa-xtregs.c	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Table mapping between kernel xtregset and GDB register cache.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -17,22 +17,23 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
-typedef struct {
-  int   gdb_regnum;
-  int   gdb_offset;
-  int   ptrace_cp_offset;
-  int   ptrace_offset;
-  int   size;
-  int   coproc;
-  int   dbnum;
-  char* name
-;} xtensa_regtable_t;
+typedef struct
+{
+  int gdb_regnum;
+  int gdb_offset;
+  int ptrace_cp_offset;
+  int ptrace_offset;
+  int size;
+  int coproc;
+  int dbnum;
+  const char *name;
+} xtensa_regtable_t;
 
-#define XTENSA_ELF_XTREG_SIZE	4
+#define XTENSA_ELF_XTREG_SIZE 4
 
-const xtensa_regtable_t  xtensa_regmap_table[] = {
+const xtensa_regtable_t xtensa_regmap_table[] =
+{
   /* gnum,gofs,cpofs,ofs,siz,cp, dbnum,  name */
   {   44, 176,   0,   0,  4, -1, 0x020c, "scompare1" },
   { 0 }
 };
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/yy-remap.h ./gdb/yy-remap.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/gdb/yy-remap.h	2018-01-02 02:02:59.000000000 +0000
+++ ./gdb/yy-remap.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1986-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/alloca-conf.h ./include/alloca-conf.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/alloca-conf.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/alloca-conf.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/ansidecl.h ./include/ansidecl.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/ansidecl.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/ansidecl.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* ANSI and traditional C compatability macros
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
 This program is free software; you can redistribute it and/or modify
@@ -252,7 +252,7 @@ So instead we use the macro below and te
 # endif /* GNUC >= 3.0 */
 #endif /* ATTRIBUTE_ALIGNED_ALIGNOF */
 
-/* Useful for structures whose layout must much some binary specification
+/* Useful for structures whose layout must match some binary specification
    regardless of the alignment and padding qualities of the compiler.  */
 #ifndef ATTRIBUTE_PACKED
 # define ATTRIBUTE_PACKED __attribute__ ((packed))
@@ -313,6 +313,12 @@ So instead we use the macro below and te
 #define ENUM_BITFIELD(TYPE) unsigned int
 #endif
 
+#if __cpp_constexpr >= 200704
+#define CONSTEXPR constexpr
+#else
+#define CONSTEXPR
+#endif
+
 /* C++11 adds the ability to add "override" after an implementation of a
    virtual function in a subclass, to:
      (A) document that this is an override of a virtual function
@@ -328,26 +334,58 @@ So instead we use the macro below and te
    For gcc, use "-std=c++11" to enable C++11 support; gcc 6 onwards enables
    this by default (actually GNU++14).  */
 
-#if __cplusplus >= 201103
-/* C++11 claims to be available: use it.  final/override were only
-   implemented in 4.7, though.  */
-# if GCC_VERSION < 4007
+#if defined __cplusplus
+# if __cplusplus >= 201103
+   /* C++11 claims to be available: use it.  Final/override were only
+      implemented in 4.7, though.  */
+#  if GCC_VERSION < 4007
+#   define OVERRIDE
+#   define FINAL
+#  else
+#   define OVERRIDE override
+#   define FINAL final
+#  endif
+# elif GCC_VERSION >= 4007
+   /* G++ 4.7 supports __final in C++98.  */
 #  define OVERRIDE
-#  define FINAL
+#  define FINAL __final
 # else
-#  define OVERRIDE override
-#  define FINAL final
+   /* No C++11 support; leave the macros empty.  */
+#  define OVERRIDE
+#  define FINAL
 # endif
-#elif GCC_VERSION >= 4007
-/* G++ 4.7 supports __final in C++98.  */
-# define OVERRIDE
-# define FINAL __final
 #else
-/* No C++11 support; leave the macros empty: */
+  /* No C++11 support; leave the macros empty.  */
 # define OVERRIDE
 # define FINAL
 #endif
 
+/* A macro to disable the copy constructor and assignment operator.
+   When building with C++11 and above, the methods are explicitly
+   deleted, causing a compile-time error if something tries to copy.
+   For C++03, this just declares the methods, causing a link-time
+   error if the methods end up called (assuming you don't
+   define them).  For C++03, for best results, place the macro
+   under the private: access specifier, like this,
+
+   class name_lookup
+   {
+     private:
+       DISABLE_COPY_AND_ASSIGN (name_lookup);
+   };
+
+   so that most attempts at copy are caught at compile-time.  */
+
+#if __cplusplus >= 201103
+#define DISABLE_COPY_AND_ASSIGN(TYPE)		\
+  TYPE (const TYPE&) = delete;			\
+  void operator= (const TYPE &) = delete
+  #else
+#define DISABLE_COPY_AND_ASSIGN(TYPE)		\
+  TYPE (const TYPE&);				\
+  void operator= (const TYPE &)
+#endif /* __cplusplus >= 201103 */
+
 #ifdef __cplusplus
 }
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/adobe.h ./include/aout/adobe.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/adobe.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/aout/adobe.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* `a.out.adobe' differences from standard a.out files
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 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
@@ -24,23 +24,23 @@
 
 /* Struct external_exec is the same.  */
 
-/* This is the layout on disk of the 32-bit or 64-bit exec header. */
+/* This is the layout on disk of the 32-bit or 64-bit exec header.  */
 
 struct external_exec 
 {
-  bfd_byte e_info[4];		/* magic number and stuff		*/
-  bfd_byte e_text[BYTES_IN_WORD]; /* length of text section in bytes	*/
-  bfd_byte e_data[BYTES_IN_WORD]; /* length of data section in bytes	*/
-  bfd_byte e_bss[BYTES_IN_WORD]; /* length of bss area in bytes 	*/
-  bfd_byte e_syms[BYTES_IN_WORD]; /* length of symbol table in bytes 	*/
-  bfd_byte e_entry[BYTES_IN_WORD]; /* start address 			*/
-  bfd_byte e_trsize[BYTES_IN_WORD]; /* length of text relocation info	*/
-  bfd_byte e_drsize[BYTES_IN_WORD]; /* length of data relocation info 	*/
+  bfd_byte e_info[4];		    /* Magic number and stuff.  */
+  bfd_byte e_text[BYTES_IN_WORD];   /* Length of text section in bytes.  */
+  bfd_byte e_data[BYTES_IN_WORD];   /* Length of data section in bytes.  */
+  bfd_byte e_bss[BYTES_IN_WORD];    /* Length of bss area in bytes.  */
+  bfd_byte e_syms[BYTES_IN_WORD];   /* Length of symbol table in bytes.  */
+  bfd_byte e_entry[BYTES_IN_WORD];  /* Start address.  */
+  bfd_byte e_trsize[BYTES_IN_WORD]; /* Length of text relocation info.  */
+  bfd_byte e_drsize[BYTES_IN_WORD]; /* Length of data relocation info.  */
 };
 
 #define	EXEC_BYTES_SIZE	(4 + BYTES_IN_WORD * 7)
 
-/* Magic numbers for a.out files */
+/* Magic numbers for a.out files.  */
 
 #undef	ZMAGIC
 #define	ZMAGIC	0xAD0BE		/* Cute, eh?  */
@@ -63,18 +63,20 @@ struct external_exec 
    The actual text of the segments starts at N_TXTOFF in the file,
    regardless of how many or how few segment headers there are.  */
 
-struct external_segdesc {
-	unsigned char e_type[1];
-	unsigned char e_size[3];
-	unsigned char e_virtbase[4];
-	unsigned char e_filebase[4];
+struct external_segdesc
+{
+  unsigned char e_type[1];
+  unsigned char e_size[3];
+  unsigned char e_virtbase[4];
+  unsigned char e_filebase[4];
 };
 
-struct internal_segdesc {
-	unsigned int	a_type:8;	/* Segment type N_TEXT, N_DATA, 0 */
-	unsigned int 	a_size:24;	/* Segment size */
-	bfd_vma		a_virtbase;	/* Virtual address */
-	unsigned int	a_filebase;	/* Base address in object file */
+struct internal_segdesc
+{
+  unsigned int	a_type:8;	/* Segment type N_TEXT, N_DATA, 0.  */
+  unsigned int 	a_size:24;	/* Segment size.  */
+  bfd_vma	a_virtbase;	/* Virtual address.  */
+  unsigned int	a_filebase;	/* Base address in object file.  */
 };
 
 #define N_TXTADDR(x) is_this_really_unused?
@@ -97,41 +99,43 @@ struct internal_segdesc {
 #define N_SYMOFF(x)	( N_DRELOFF(x) + (x)->a_drsize )
 #define N_STROFF(x)	( N_SYMOFF(x) + (x)->a_syms )
 
-/* Symbols */
-struct external_nlist {
-  bfd_byte e_strx[BYTES_IN_WORD];	/* index into string table of name */
-  bfd_byte e_type[1];			/* type of symbol */
-  bfd_byte e_other[1];			/* misc info (usually empty) */
-  bfd_byte e_desc[2];			/* description field */
-  bfd_byte e_value[BYTES_IN_WORD];	/* value of symbol */
+/* Symbols.  */
+struct external_nlist
+{
+  bfd_byte e_strx[BYTES_IN_WORD];	/* Index into string table of name.  */
+  bfd_byte e_type[1];			/* Type of symbol.  */
+  bfd_byte e_other[1];			/* Misc info (usually empty).  */
+  bfd_byte e_desc[2];			/* Description field.  */
+  bfd_byte e_value[BYTES_IN_WORD];	/* Value of symbol.  */
 };
 
 #define EXTERNAL_NLIST_SIZE (BYTES_IN_WORD+4+BYTES_IN_WORD)
 
-struct internal_nlist {
-  unsigned long n_strx;			/* index into string table of name */
-  unsigned char n_type;			/* type of symbol */
-  unsigned char n_other;		/* misc info (usually empty) */
-  unsigned short n_desc;		/* description field */
-  bfd_vma n_value;			/* value of symbol */
+struct internal_nlist
+{
+  unsigned long n_strx;			/* Index into string table of name.  */
+  unsigned char n_type;			/* Type of symbol.  */
+  unsigned char n_other;		/* Misc info (usually empty).  */
+  unsigned short n_desc;		/* Description field.  */
+  bfd_vma n_value;			/* Value of symbol.  */
 };
 
 /* The n_type field is the symbol type, containing:  */
 
-#define N_UNDF	0	/* Undefined symbol */
-#define N_ABS 	2	/* Absolute symbol -- defined at particular addr */
-#define N_TEXT 	4	/* Text sym -- defined at offset in text seg */
-#define N_DATA 	6	/* Data sym -- defined at offset in data seg */
-#define N_BSS 	8	/* BSS  sym -- defined at offset in zero'd seg */
-#define	N_COMM	0x12	/* Common symbol (visible after shared lib dynlink) */
-#define N_FN	0x1f	/* File name of .o file */
-#define	N_FN_SEQ 0x0C	/* N_FN from Sequent compilers (sigh) */
+#define N_UNDF	0	/* Undefined symbol.  */
+#define N_ABS 	2	/* Absolute symbol -- defined at particular addr.  */
+#define N_TEXT 	4	/* Text sym -- defined at offset in text seg.  */
+#define N_DATA 	6	/* Data sym -- defined at offset in data seg.  */
+#define N_BSS 	8	/* BSS  sym -- defined at offset in zero'd seg.  */
+#define	N_COMM	0x12	/* Common symbol (visible after shared lib dynlink).  */
+#define N_FN	0x1f	/* File name of .o file.  */
+#define	N_FN_SEQ 0x0C	/* N_FN from Sequent compilers (sigh).  */
 /* Note: N_EXT can only be usefully OR-ed with N_UNDF, N_ABS, N_TEXT,
    N_DATA, or N_BSS.  When the low-order bit of other types is set,
    (e.g. N_WARNING versus N_FN), they are two different types.  */
-#define N_EXT 	1	/* External symbol (as opposed to local-to-this-file) */
+#define N_EXT 	1	/* External symbol (as opposed to local-to-this-file).  */
 #define N_TYPE  0x1e
-#define N_STAB 	0xe0	/* If any of these bits are on, it's a debug symbol */
+#define N_STAB 	0xe0	/* If any of these bits are on, it's a debug symbol.  */
 
 #define N_INDR 0x0a
 
@@ -147,10 +151,10 @@ struct internal_nlist {
    in that it can satisfy undefined external references.  */
 
 /* These appear as input to LD, in a .o file.  */
-#define	N_SETA	0x14		/* Absolute set element symbol */
-#define	N_SETT	0x16		/* Text set element symbol */
-#define	N_SETD	0x18		/* Data set element symbol */
-#define	N_SETB	0x1A		/* Bss set element symbol */
+#define	N_SETA	0x14		/* Absolute set element symbol.  */
+#define	N_SETT	0x16		/* Text set element symbol.  */
+#define	N_SETD	0x18		/* Data set element symbol.  */
+#define	N_SETB	0x1A		/* Bss set element symbol.  */
 
 /* This is output from LD.  */
 #define N_SETV	0x1C		/* Pointer to set vector in data area.  */
@@ -170,25 +174,25 @@ struct internal_nlist {
   instructions. Eg, on the 68k, each move instruction can reference
   the target with a displacement of 16 or 32 bits. On the sparc, move
   instructions use an offset of 14 bits, so the offset is stored in
-  the reloc field, and the data in the section is ignored.
-*/
+  the reloc field, and the data in the section is ignored.  */
 
 /* This structure describes a single relocation to be performed.
    The text-relocation section of the file is a vector of these structures,
    all of which apply to the text section.
    Likewise, the data-relocation section applies to the data section.  */
 
-struct reloc_std_external {
-  bfd_byte r_address[BYTES_IN_WORD];	/* offset of of data to relocate */
-  bfd_byte r_index[3];	/* symbol table index of symbol 	*/
-  bfd_byte r_type[1];	/* relocation type			*/
+struct reloc_std_external
+{
+  bfd_byte r_address[BYTES_IN_WORD];	/* Offset of data to relocate.  */
+  bfd_byte r_index[3];			/* Symbol table index of symbol.  */
+  bfd_byte r_type[1];			/* Relocation type.  */
 };
 
 #define	RELOC_STD_BITS_PCREL_BIG	0x80
 #define	RELOC_STD_BITS_PCREL_LITTLE	0x01
 
 #define	RELOC_STD_BITS_LENGTH_BIG	0x60
-#define	RELOC_STD_BITS_LENGTH_SH_BIG	5	/* To shift to units place */
+#define	RELOC_STD_BITS_LENGTH_SH_BIG	5	/* To shift to units place.  */
 #define	RELOC_STD_BITS_LENGTH_LITTLE	0x06
 #define	RELOC_STD_BITS_LENGTH_SH_LITTLE	1
 
@@ -204,7 +208,7 @@ struct reloc_std_external {
 #define	RELOC_STD_BITS_RELATIVE_BIG	0x02
 #define	RELOC_STD_BITS_RELATIVE_LITTLE	0x02
 
-#define	RELOC_STD_SIZE	(BYTES_IN_WORD + 3 + 1)		/* Bytes per relocation entry */
+#define	RELOC_STD_SIZE	(BYTES_IN_WORD + 3 + 1)		/* Bytes per relocation entry.  */
 
 struct reloc_std_internal
 {
@@ -227,21 +231,22 @@ struct reloc_std_internal
   unsigned int r_extern:1;
   /* The next three bits are for SunOS shared libraries, and seem to
      be undocumented.  */
-  unsigned int r_baserel:1;	/* Linkage table relative */
-  unsigned int r_jmptable:1;	/* pc-relative to jump table */
-  unsigned int r_relative:1;	/* "relative relocation" */
+  unsigned int r_baserel:1;	/* Linkage table relative.  */
+  unsigned int r_jmptable:1;	/* pc-relative to jump table.  */
+  unsigned int r_relative:1;	/* "relative relocation".  */
   /* unused */
-  unsigned int r_pad:1;		/* Padding -- set to zero */
+  unsigned int r_pad:1;		/* Padding -- set to zero.  */
 };
 
 
 /* EXTENDED RELOCS  */
 
-struct reloc_ext_external {
-  bfd_byte r_address[BYTES_IN_WORD];	/* offset of of data to relocate 	*/
-  bfd_byte r_index[3];	/* symbol table index of symbol 	*/
-  bfd_byte r_type[1];	/* relocation type			*/
-  bfd_byte r_addend[BYTES_IN_WORD];	/* datum addend				*/
+struct reloc_ext_external
+{
+  bfd_byte r_address[BYTES_IN_WORD];	/* Offset of data to relocate.  */
+  bfd_byte r_index[3];			/* Symbol table index of symbol.  */
+  bfd_byte r_type[1];			/* Relocation type.  */
+  bfd_byte r_addend[BYTES_IN_WORD];	/* Datum addend.  */
 };
 
 #define	RELOC_EXT_BITS_EXTERN_BIG	0x80
@@ -257,15 +262,15 @@ struct reloc_ext_external {
 
 enum reloc_type
 {
-  /* simple relocations */
+  /* Simple relocations.  */
   RELOC_8,			/* data[0:7] = addend + sv 		*/
   RELOC_16,			/* data[0:15] = addend + sv 		*/
   RELOC_32,			/* data[0:31] = addend + sv 		*/
-  /* pc-rel displacement */
+  /* PC-rel displacement.  */
   RELOC_DISP8,			/* data[0:7] = addend - pc + sv 	*/
   RELOC_DISP16,			/* data[0:15] = addend - pc + sv 	*/
   RELOC_DISP32,			/* data[0:31] = addend - pc + sv 	*/
-  /* Special */
+  /* Special.  */
   RELOC_WDISP30,		/* data[0:29] = (addend + sv - pc)>>2 	*/
   RELOC_WDISP22,		/* data[0:21] = (addend + sv - pc)>>2 	*/
   RELOC_HI22,			/* data[0:21] = (addend + sv)>>10 	*/
@@ -274,16 +279,16 @@ enum reloc_type
   RELOC_LO10,			/* data[0:9] = (addend + sv)		*/
   RELOC_SFA_BASE,		
   RELOC_SFA_OFF13,
-  /* P.I.C. (base-relative) */
-  RELOC_BASE10,  		/* Not sure - maybe we can do this the */
-  RELOC_BASE13,			/* right way now */
+  /* P.I.C. (base-relative).  */
+  RELOC_BASE10,  		/* Not sure - maybe we can do this the  */
+  RELOC_BASE13,			/* right way now.  */
   RELOC_BASE22,
-  /* for some sort of pc-rel P.I.C. (?) */
+  /* For some sort of pc-rel P.I.C. (?)  */
   RELOC_PC10,
   RELOC_PC22,
-  /* P.I.C. jump table */
+  /* P.I.C. jump table.  */
   RELOC_JMP_TBL,
-  /* reputedly for shared libraries somehow */
+  /* Reputedly for shared libraries somehow.  */
   RELOC_SEGOFF16,
   RELOC_GLOB_DAT,
   RELOC_JMP_SLOT,
@@ -301,14 +306,14 @@ enum reloc_type
   RELOC_CONSTH,
   
   NO_RELOC
-  };
-
+};
 
-struct reloc_internal {
-  bfd_vma r_address;		/* offset of of data to relocate 	*/
-  long	r_index;		/* symbol table index of symbol 	*/
-  enum reloc_type r_type;	/* relocation type			*/
-  bfd_vma r_addend;		/* datum addend				*/
+struct reloc_internal
+{
+  bfd_vma r_address;		/* Offset of data to relocate.  */
+  long	r_index;		/* Symbol table index of symbol.  */
+  enum reloc_type r_type;	/* Relocation type.  */
+  bfd_vma r_addend;		/* Datum addend.  */
 };
 
-#endif				/* __A_OUT_ADOBE_H__ */
+#endif	/* __A_OUT_ADOBE_H__ */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/aout64.h ./include/aout/aout64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/aout64.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/aout/aout64.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* `a.out' object-file definitions, including extensions to 64-bit fields
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 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
@@ -346,7 +346,7 @@ struct internal_nlist
 
 struct reloc_std_external
 {
-  bfd_byte r_address[BYTES_IN_WORD];	/* Offset of of data to relocate.  */
+  bfd_byte r_address[BYTES_IN_WORD];	/* Offset of data to relocate.  */
   bfd_byte r_index[3];			/* Symbol table index of symbol.  */
   bfd_byte r_type[1];			/* Relocation type.  */
 };
@@ -406,7 +406,7 @@ struct reloc_std_internal
 
 struct reloc_ext_external
 {
-  bfd_byte r_address[BYTES_IN_WORD];	/* Offset of of data to relocate.  */
+  bfd_byte r_address[BYTES_IN_WORD];	/* Offset of data to relocate.  */
   bfd_byte r_index[3];			/* Symbol table index of symbol.  */
   bfd_byte r_type[1];			/* Relocation type.  */
   bfd_byte r_addend[BYTES_IN_WORD];	/* Datum addend.  */
@@ -501,7 +501,7 @@ enum reloc_type
 
 struct reloc_internal
 {
-  bfd_vma r_address;		/* Offset of of data to relocate.  */
+  bfd_vma r_address;		/* Offset of data to relocate.  */
   long	r_index;		/* Symbol table index of symbol.  */
   enum reloc_type r_type;	/* Relocation type.  */
   bfd_vma r_addend;		/* Datum addend.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/ar.h ./include/aout/ar.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/ar.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/aout/ar.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* archive file definition for GNU software
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/dynix3.h ./include/aout/dynix3.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/dynix3.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/aout/dynix3.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* a.out specifics for Sequent Symmetry running Dynix 3.x
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/encap.h ./include/aout/encap.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/encap.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/aout/encap.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Yet Another Try at encapsulating bfd object files in coff.
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
    Written by Pace Willisson 12/9/88
 
    This file is obsolete.  It needs to be converted to just define a bunch
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/host.h ./include/aout/host.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/host.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/aout/host.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* host.h - Parameters about the a.out format, based on the host system
    on which the program is compiled. 
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/hp300hpux.h ./include/aout/hp300hpux.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/hp300hpux.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/aout/hp300hpux.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Special version of <a.out.h> for use under HP-UX.
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 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
@@ -38,47 +38,47 @@ struct hp300hpux_exec_bytes
 #define	EXEC_BYTES_SIZE	64
 
 struct hp300hpux_nlist_bytes
-  {
-    unsigned char e_value[4];
-    unsigned char e_type[1];
-    unsigned char e_length[1];	/* length of ascii symbol name */
-    unsigned char e_almod[2];	/* alignment mod */
-    unsigned char e_shlib[2];   /* info about dynamic linking */
-  };
+{
+  unsigned char e_value[4];
+  unsigned char e_type[1];
+  unsigned char e_length[1];	/* Length of ascii symbol name.  */
+  unsigned char e_almod[2];	/* Alignment mod.  */
+  unsigned char e_shlib[2];	/* Info about dynamic linking.  */
+};
 #define EXTERNAL_NLIST_SIZE 10
 
 struct hp300hpux_reloc
-  {
-    unsigned char r_address[4];/* offset of of data to relocate */
-    unsigned char r_index[2];  /* symbol table index of symbol         */
-    unsigned char r_type[1];   /* relocation type                      */
-    unsigned char r_length[1]; /* length of item to reloc              */
-  };
+{
+  unsigned char r_address[4];/* offset of data to relocate */
+  unsigned char r_index[2];  /* symbol table index of symbol         */
+  unsigned char r_type[1];   /* relocation type                      */
+  unsigned char r_length[1]; /* length of item to reloc              */
+};
 
 struct hp300hpux_header_extension
 {
-    unsigned char e_syms[4];
-    unsigned char unique_headers[12*4];
-    unsigned char e_header[2];   /* type of header */
-    unsigned char e_version[2];  /* version        */
-    unsigned char e_size[4];     /* bytes following*/
-    unsigned char e_extension[4];/* file offset of next extension */
+  unsigned char e_syms[4];
+  unsigned char unique_headers[12*4];
+  unsigned char e_header[2];   /* Type of header.  */
+  unsigned char e_version[2];  /* Version.  */
+  unsigned char e_size[4];     /* Bytes following.  */
+  unsigned char e_extension[4];/* File offset of next extension.  */
 };
 #define EXTERNAL_EXTENSION_HEADER_SIZE (16*4)
 
-/* hpux separates object files (0x106) and impure executables (0x107)  */
-/* but the bfd code does not distinguish between them. Since we want to*/
-/* read hpux .o files, we add an special define and use it below in    */
-/* offset and address calculations.                                    */
+/* HPUX separates object files (0x106) and impure executables (0x107)
+   but the bfd code does not distinguish between them. Since we want to
+   read hpux .o files, we add an special define and use it below in
+   offset and address calculations.  */
 
 #define HPUX_DOT_O_MAGIC 0x106
-#define OMAGIC 0x107       /* object file or impure executable.  */
+#define OMAGIC 0x107       /* Object file or impure executable.  */
 #define NMAGIC 0x108       /* Code indicating pure executable.   */
-#define ZMAGIC 0x10B       /* demand-paged executable.           */
+#define ZMAGIC 0x10B       /* Demand-paged executable.           */
 
 #define N_HEADER_IN_TEXT(x) 0
 
-#if 0 /* libaout.h only uses the lower 8 bits */
+#if 0 /* libaout.h only uses the lower 8 bits.  */
 #define HP98x6_ID 0x20A
 #define HP9000S200_ID 0x20C
 #endif
@@ -121,7 +121,7 @@ struct hp300hpux_header_extension
 #define N_EXTHOFF(x)    ( N_DRELOFF(x)   /*  + (x)->a_drsize */)
 #define N_STROFF(x)	( 0 /* no string table */ )
 
-/* use these when the file has gnu symbol tables */
+/* Use these when the file has gnu symbol tables.  */
 #define N_GNU_TRELOFF(x) (N_DATOFF(x) + (x)->a_data)
 #define N_GNU_DRELOFF(x) (N_GNU_TRELOFF(x) + (x)->a_trsize)
 #define N_GNU_SYMOFF(x)  (N_GNU_DRELOFF(x) + (x)->a_drsize)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/hp.h ./include/aout/hp.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/hp.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/aout/hp.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Special version of <a.out.h> for use under HP-UX.
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/hppa.h ./include/aout/hppa.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/hppa.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/aout/hppa.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/ranlib.h ./include/aout/ranlib.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/ranlib.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/aout/ranlib.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* ranlib.h -- archive library index member definition for GNU.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/reloc.h ./include/aout/reloc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/reloc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/aout/reloc.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* reloc.h -- Header file for relocation information.
-   Copyright (C) 1989-2017 Free Software Foundation, Inc.
+   Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/stab.def ./include/aout/stab.def
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/stab.def	2018-01-02 02:03:00.000000000 +0000
+++ ./include/aout/stab.def	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Table of DBX symbol codes for the GNU system.
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/stab_gnu.h ./include/aout/stab_gnu.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/stab_gnu.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/aout/stab_gnu.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* gnu_stab.h  Definitions for GNU extensions to STABS
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/sun4.h ./include/aout/sun4.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/aout/sun4.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/aout/sun4.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* SPARC-specific values for a.out files 
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/bfdlink.h ./include/bfdlink.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/bfdlink.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/bfdlink.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* bfdlink.h -- header file for BFD link routines
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -100,9 +100,13 @@ struct bfd_link_hash_entry
   /* Type of this entry.  */
   ENUM_BITFIELD (bfd_link_hash_type) type : 8;
 
-  /* Symbol is referenced in a normal object file, as distict from a LTO
-     IR object file.  */
-  unsigned int non_ir_ref : 1;
+  /* Symbol is referenced in a normal regular object file,
+     as distinct from a LTO IR object file.  */
+  unsigned int non_ir_ref_regular : 1;
+
+  /* Symbol is referenced in a normal dynamic object file,
+     as distinct from a LTO IR object file.  */
+  unsigned int non_ir_ref_dynamic : 1;
 
   /* Symbol is a built-in define.  These will be overridden by PROVIDE
      in a linker script.  */
@@ -140,9 +144,6 @@ struct bfd_link_hash_entry
 	  struct bfd_link_hash_entry *next;
 	  /* BFD symbol was found in.  */
 	  bfd *abfd;
-	  /* For __start_<name> and __stop_<name> symbols, the first
-	     input section matching the name.  */
-	  asection *section;
 	} undef;
       /* bfd_link_hash_defined, bfd_link_hash_defweak.  */
       struct
@@ -344,6 +345,9 @@ struct bfd_link_info
   /* TRUE if all data symbols should be dynamic.  */
   unsigned int dynamic_data: 1;
 
+  /* TRUE if section groups should be resolved.  */
+  unsigned int resolve_section_groups: 1;
+
   /* Which symbols to strip.  */
   ENUM_BITFIELD (bfd_link_strip) strip : 2;
 
@@ -467,6 +471,15 @@ struct bfd_link_info
   /* TRUE if BND prefix in PLT entries is always generated.  */
   unsigned int bndplt: 1;
 
+  /* TRUE if IBT-enabled PLT entries should be generated.  */
+  unsigned int ibtplt: 1;
+
+  /* TRUE if GNU_PROPERTY_X86_FEATURE_1_IBT should be generated.  */
+  unsigned int ibt: 1;
+
+  /* TRUE if GNU_PROPERTY_X86_FEATURE_1_SHSTK should be generated.  */
+  unsigned int shstk: 1;
+
   /* TRUE if generation of .interp/PT_INTERP should be suppressed.  */
   unsigned int nointerp: 1;
 
@@ -476,6 +489,9 @@ struct bfd_link_info
   /* TRUE if generate a 1-byte NOP as suffix for x86 call instruction.  */
   unsigned int call_nop_as_suffix : 1;
 
+  /* TRUE if common symbols should be treated as undefined.  */
+  unsigned int inhibit_common_definition : 1;
+
   /* The 1-byte NOP for x86 call instruction.  */
   char call_nop_byte;
 
@@ -584,8 +600,9 @@ struct bfd_link_info
      backend to decide.  */
   int extern_protected_data;
 
-  /* > 0 to treat undefined weak symbol in the executable as dynamic,
-     requiring dynamic relocation.  */
+  /* 1 to make undefined weak symbols dynamic when building a dynamic
+     object.  0 to resolve undefined weak symbols to zero.  -1 to let
+     the backend decide.  */
   int dynamic_undefined_weak;
 
   /* Non-zero if auto-import thunks for DATA items in pei386 DLLs
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/binary-io.h ./include/binary-io.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/binary-io.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/binary-io.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Binary mode I/O.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/bout.h ./include/bout.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/bout.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/bout.h	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
    GNU tools modified to support the i80960 (or tools that operate on
    object files created by such tools).
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/cgen/basic-modes.h ./include/cgen/basic-modes.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/cgen/basic-modes.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/cgen/basic-modes.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Basic CGEN modes.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
    Contributed by Red Hat.
 
    This file is part of the GNU opcodes library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/cgen/basic-ops.h ./include/cgen/basic-ops.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/cgen/basic-ops.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/cgen/basic-ops.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Basic semantics ops support for CGEN.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
    Contributed by Red Hat.
 
    This file is part of the GNU opcodes library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/cgen/bitset.h ./include/cgen/bitset.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/cgen/bitset.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/cgen/bitset.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Header file the type CGEN_BITSET.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/ChangeLog ./include/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/ChangeLog	2018-01-02 02:03:00.000000000 +0000
+++ ./include/ChangeLog	2018-01-09 02:04:57.000000000 +0000
@@ -1,319 +1,17 @@
-2017-05-31  Eli Zaretskii <eliz@gnu.org>
+2018-01-04  Jim Wilson  <jimw@sifive.com>
 
-	* environ.h: Add #ifndef guard.
+	* opcode/riscv-opc.h (CSR_SBADADDR): Rename to CSR_STVAL.  Rename
+	DECLARE_CSR entry.  Add alias to map sbadaddr to CSR_STVAL.
+	(CSR_MBADADDR): Rename to CSR_MTVAL.  Rename DECLARE_CSR entry.
+	Add alias to map mbadaddr to CSR_MTVAL.
 
-2017-04-11  Alan Modra  <amodra@gmail.com>
-
-	* opcode/ppc.h (PPC_OPCODE_ALTIVEC2): Delete.
-	(PPC_OPCODE_VSX3): Delete.
-	(PPC_OPCODE_HTM): Delete.
-	(PPC_OPCODE_*): Renumber and order chronologically.
-	(PPC_OPCODE_SPE): Comment on this and other bits used for APUinfo.
-
-2017-04-06  Pip Cet  <pipcet@gmail.com>
-
-	* dis-asm.h: Add prototypes for wasm32 disassembler.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* dis-asm.h (disassemble_info) <disassembler_options>: Now a
-	"const char *".
-	(next_disassembler_option): Constify.
-
-2017-04-04  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* elf/common.h (PT_GNU_MBIND_NUM): New.
-	(PT_GNU_MBIND_LO): Likewise.
-	(PT_GNU_MBIND_HI): Likewise.
-	(SHF_GNU_MBIND): Likewise.
-
-2017-04-03  Palmer Dabbelt  <palmer@dabbelt.com>
-
-	* elf/riscv.h (RISCV_GP_SYMBOL): New define.
-
-2017-03-27  Andrew Waterman  <andrew@sifive.com>
-
-	* opcode/riscv-opc.h (CSR_PMPCFG0): New define.
-	(CSR_PMPCFG1): Likewise.
-	(CSR_PMPCFG2): Likewise.
-	(CSR_PMPCFG3): Likewise.
-	(CSR_PMPADDR0): Likewise.
-	(CSR_PMPADDR1): Likewise.
-	(CSR_PMPADDR2): Likewise.
-	(CSR_PMPADDR3): Likewise.
-	(CSR_PMPADDR4): Likewise.
-	(CSR_PMPADDR5): Likewise.
-	(CSR_PMPADDR6): Likewise.
-	(CSR_PMPADDR7): Likewise.
-	(CSR_PMPADDR8): Likewise.
-	(CSR_PMPADDR9): Likewise.
-	(CSR_PMPADDR10): Likewise.
-	(CSR_PMPADDR11): Likewise.
-	(CSR_PMPADDR12): Likewise.
-	(CSR_PMPADDR13): Likewise.
-	(CSR_PMPADDR14): Likewise.
-	(CSR_PMPADDR15): Likewise.
-	(pmpcfg0): Declare register.
-	(pmpcfg1): Likewise.
-	(pmpcfg2): Likewise.
-	(pmpcfg3): Likewise.
-	(pmpaddr0): Likewise.
-	(pmpaddr1): Likewise.
-	(pmpaddr2): Likewise.
-	(pmpaddr3): Likewise.
-	(pmpaddr4): Likewise.
-	(pmpaddr5): Likewise.
-	(pmpaddr6): Likewise.
-	(pmpaddr7): Likewise.
-	(pmpaddr8): Likewise.
-	(pmpaddr9): Likewise.
-	(pmpaddr10): Likewise.
-	(pmpaddr11): Likewise.
-	(pmpaddr12): Likewise.
-	(pmpaddr13): Likewise.
-	(pmpaddr14): Likewise.
-	(pmpaddr15): Likewise.
-
-2017-03-30  Pip Cet  <pipcet@gmail.com>
-
-	* opcode/wasm.h: New file to support wasm32 architecture.
-	* elf/wasm32.h: Add R_WASM32_32 relocation.
-
-2017-03-29  Alan Modra  <amodra@gmail.com>
-
-	* opcode/ppc.h (PPC_OPCODE_RAW): Define.
-	(PPC_OPCODE_*): Make them all unsigned long long constants.
-
-2017-03-27  Pip Cet  <pipcet@gmail.com>
-
-	* elf/wasm32.h: New file to support wasm32 architecture.
-
-2017-03-27  Rinat Zelig  <rinat@mellanox.com>
-
-	* opcode/arc.h (insn_class_t): Add ULTRAIP and MISC class.
-
-2017-03-21  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-
-	* opcode/s390.h (S390_INSTR_FLAG_VX2): Remove.
-	(S390_INSTR_FLAG_FACILITY_MASK): Adjust value.
-
-2017-03-21  Rinat Zelig  <rinat@mellanox.com>
-
-	* opcode/arc.h (insn_class_t): Add DMA class.
-
-2017-03-16  Nick Clifton  <nickc@redhat.com>
-
-	* elf/common.h (GNU_BUILD_ATTRIBUTE_SHORT_ENUM): New GNU BUILD
-	note type.
-
-2017-03-14  Jakub Jelinek  <jakub@redhat.com>
-
-	PR debug/77589
-	* dwarf2.def (DW_OP_GNU_variable_value): New opcode.
-
-2017-03-13  Markus Trippelsdorf  <markus@trippelsdorf.de>
-
-	PR demangler/70909
-	PR demangler/67264
-	* demangle.h (struct demangle_component): Add d_printing field.
-	(cplus_demangle_print): Remove const qualifier from tree
-	parameter.
-	(cplus_demangle_print_callback): Likewise.
-
-2017-03-13  Nick Clifton  <nickc@redhat.com>
-
-	PR binutils/21202
-	* elf/aarch64.h (R_AARCH64_TLSDESC_LD64_LO12_NC): Rename to
-	R_AARCH64_TLSDESC_LD64_LO12.
-	(R_AARCH64_TLSDESC_ADD_LO12_NC): Rename to
-	R_AARCH64_TLSDESC_ADD_LO12_NC.
-
-2017-03-10  Nick Clifton  <nickc@redhat.com>
-
-	* elf/common.h (EM_LANAI): New machine number.
-	(EM_BPF): Likewise.
-	(EM_WEBASSEMBLY): Likewise.
-	Move low value, deprecated, numbers to their numerical
-	equivalents.
-
-2017-03-08  H.J. Lu  <hongjiu.lu@intel.com>
-
-	PR binutils/21231
-	* elf/common.h (GNU_PROPERTY_LOPROC): New.
-	(GNU_PROPERTY_HIPROC): Likewise.
-	(GNU_PROPERTY_LOUSER): Likewise.
-	(GNU_PROPERTY_HIUSER): Likewise.
-
-2017-03-01  Nick Clifton  <nickc@redhat.com>
-
-	* elf/common.h (SHF_GNU_BUILD_NOTE): Define.
-	(NT_GNU_PROPERTY_TYPE_0): Define.
-	(NT_GNU_BUILD_ATTRIBUTE_OPEN): Define.
-	(NT_GNU_BUILD_ATTRIBUTE_FUN): Define.
-	(GNU_BUILD_ATTRIBUTE_TYPE_NUMERIC): Define.
-	(GNU_BUILD_ATTRIBUTE_TYPE_STRING): Define.
-	(GNU_BUILD_ATTRIBUTE_TYPE_BOOL_TRUE): Define.
-	(GNU_BUILD_ATTRIBUTE_TYPE_BOOL_FALSE): Define.
-	(GNU_BUILD_ATTRIBUTE_VERSION): Define.
-	(GNU_BUILD_ATTRIBUTE_STACK_PROT): Define.
-	(GNU_BUILD_ATTRIBUTE_RELRO): Define.
-	(GNU_BUILD_ATTRIBUTE_STACK_SIZE): Define.
-	(GNU_BUILD_ATTRIBUTE_TOOL): Define.
-	(GNU_BUILD_ATTRIBUTE_ABI): Define.
-	(GNU_BUILD_ATTRIBUTE_PIC): Define.
-	(NOTE_GNU_PROPERTY_SECTION_NAME): Define.
-	(GNU_BUILD_ATTRS_SECTION_NAME): Define.
-	(GNU_PROPERTY_STACK_SIZE): Define.
-	(GNU_PROPERTY_NO_COPY_ON_PROTECTED): Define.
-	(GNU_PROPERTY_X86_ISA_1_USED): Define.
-	(GNU_PROPERTY_X86_ISA_1_NEEDED): Define.
-	(GNU_PROPERTY_X86_ISA_1_486): Define.
-	(GNU_PROPERTY_X86_ISA_1_586): Define.
-	(GNU_PROPERTY_X86_ISA_1_686): Define.
-	(GNU_PROPERTY_X86_ISA_1_SSE): Define.
-	(GNU_PROPERTY_X86_ISA_1_SSE2): Define.
-	(GNU_PROPERTY_X86_ISA_1_SSE3): Define.
-	(GNU_PROPERTY_X86_ISA_1_SSSE3): Define.
-	(GNU_PROPERTY_X86_ISA_1_SSE4_1): Define.
-	(GNU_PROPERTY_X86_ISA_1_SSE4_2): Define.
-	(GNU_PROPERTY_X86_ISA_1_AVX): Define.
-	(GNU_PROPERTY_X86_ISA_1_AVX2): Define.
-	(GNU_PROPERTY_X86_ISA_1_AVX512F): Define.
-	(GNU_PROPERTY_X86_ISA_1_AVX512CD): Define.
-	(GNU_PROPERTY_X86_ISA_1_AVX512ER): Define.
-	(GNU_PROPERTY_X86_ISA_1_AVX512PF): Define.
-	(GNU_PROPERTY_X86_ISA_1_AVX512VL): Define.
-	(GNU_PROPERTY_X86_ISA_1_AVX512DQ): Define.
-	(GNU_PROPERTY_X86_ISA_1_AVX512BW): Define.
-
-2017-02-28  Peter Bergner  <bergner@vnet.ibm.com>
-
-	* dis-asm.h (disasm_options_t): New typedef.
-	(parse_arm_disassembler_option): Remove prototype.
-	(set_arm_regname_option): Likewise.
-	(get_arm_regnames): Likewise.
-	(get_arm_regname_num_options): Likewise.
-	(disassemble_init_s390): New prototype.
-	(disassembler_options_powerpc): Likewise.
-	(disassembler_options_arm): Likewise.
-	(disassembler_options_s390): Likewise.
-	(remove_whitespace_and_extra_commas): Likewise.
-	(disassembler_options_cmp): Likewise.
-	(next_disassembler_option): New inline function.
-	(FOR_EACH_DISASSEMBLER_OPTION): New macro.
-
-2017-02-28  Alan Modra  <amodra@gmail.com>
-
-	* elf/ppc64.h (R_PPC64_16DX_HA): New.  Expand fake reloc comment.
-	* elf/ppc.h (R_PPC_16DX_HA): Likewise.
-
-2017-02-24  Richard Sandiford  <richard.sandiford@arm.com>
-
-	* opcode/aarch64.h (AARCH64_OPND_SVE_ADDR_RI_S4x16)
-	(AARCH64_OPND_SVE_IMM_ROT1, AARCH64_OPND_SVE_IMM_ROT2)
-	(AARCH64_OPND_SVE_Zm3_INDEX, AARCH64_OPND_SVE_Zm3_22_INDEX)
-	(AARCH64_OPND_SVE_Zm4_INDEX): New aarch64_opnds.
-
-2017-02-24  Richard Sandiford  <richard.sandiford@arm.com>
-
-	* opcode/aarch64.h (AARCH64_FEATURE_COMPNUM): New macro.
-	(AARCH64_ARCH_V8_3): Include AARCH64_FEATURE_COMPNUM.
-
-2017-02-22  Andrew Waterman  <andrew@sifive.com>
-
-	* opcode/riscv-opc.h (CSR_SCOUNTEREN): New define.
-	(CSR_MCOUNTEREN): Likewise.
-	(scounteren): Declare register.
-	(mcounteren): Likewise.
-
-2017-02-14  Andrew Waterman  <andrew@sifive.com>
-
-	* opcode/riscv-opc.h (MATCH_SFENCE_VMA): New define.
-	(MASK_SFENCE_VMA): Likewise.
-	(sfence_vma): Declare instruction.
-
-2017-02-14  Alan Modra  <amodra@gmail.com>
-
-	PR 21118
-	* opcode/ppc.h (PPC_OPERAND_*): Reassign values, regs first.
-	(PPC_OPERAND_SPR, PPC_OPERAND_GQR): Define.
-
-2017-01-24  Dimitar Dimitrov  <dimitar@dinux.eu>
-
-        * opcode/hppa.h: Clarify that file is part of GNU opcodes.
-        * opcode/i860.h: Ditto.
-        * opcode/nios2.h: Ditto.
-        * opcode/nios2r1.h: Ditto.
-        * opcode/nios2r2.h: Ditto.
-        * opcode/pru.h: Ditto.
-
-2017-01-24  Alan Hayward  <alan.hayward@arm.com>
-
-	* elf/common.h (NT_ARM_SVE): Define.
-
-2017-01-04  Jiong Wang  <jiong.wang@arm.com>
-
-	* dwarf2.def: Sync with mainline gcc sources.
-
-	2017-01-04  Richard Earnshaw  <rearnsha@arm.com>
-		    Jiong Wang  <jiong.wang@arm.com>
-
-	* dwarf2.def (DW_OP_AARCH64_operation): Reserve the number 0xea.
-	(DW_CFA_GNU_window_save): Comments the multiplexing on AArch64.
-
-2017-01-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-
-	* opcode/aarch64.h (AARCH64_FEATURE_RCPC): Define.
-	(AARCH64_ARCH_V8_3): Update.
-
-2017-01-03  Kito Cheng  <kito.cheng@gmail.com>
-
-	* opcode/riscv-opc.h: Add support for the "q" ISA extension.
-
-2017-01-03  Nick Clifton  <nickc@redhat.com>
-
-	* dwarf2.def: Sync with mainline gcc sources
-	* dwarf2.h: Likewise.
-
-	2016-12-21  Jakub Jelinek  <jakub@redhat.com>
-
-	* dwarf2.def (DW_FORM_ref_sup): Renamed to ...
-	(DW_FORM_ref_sup4): ... this.  New form.
-	(DW_FORM_ref_sup8): New form.
-
-	2016-10-17  Jakub Jelinek  <jakub@redhat.com>
-
-	* dwarf2.h (enum dwarf_calling_convention): Add new DWARF5
-	calling convention codes.
-	(enum dwarf_line_number_content_type): New.
-	(enum dwarf_location_list_entry_type): Add DWARF5 DW_LLE_*
-	codes.
-	(enum dwarf_source_language): Add new DWARF5 DW_LANG_* codes.
-	(enum dwarf_macro_record_type): Add DWARF5 DW_MACRO_* codes.
-	(enum dwarf_name_index_attribute): New.
-	(enum dwarf_range_list_entry): New.
-	(enum dwarf_unit_type): New.
-	* dwarf2.def: Add new DWARF5 DW_TAG_*, DW_FORM_*, DW_AT_*,
-	DW_OP_* and DW_ATE_* entries.
-
-	2016-08-15  Jakub Jelinek  <jakub@redhat.com>
-
-	* dwarf2.def (DW_AT_string_length_bit_size,
-	DW_AT_string_length_byte_size): New attributes.
-
-	2016-08-12  Alexandre Oliva <aoliva@redhat.com>
-
-	PR debug/63240
-	* dwarf2.def (DW_AT_deleted, DW_AT_defaulted): New.
-	* dwarf2.h (enum dwarf_defaulted_attribute): New.
-
-2017-01-02  Alan Modra  <amodra@gmail.com>
+2018-01-03  Alan Modra  <amodra@gmail.com>
 
 	Update year range in copyright notice of all files.
 
-For older changes see ChangeLog-2016
+For older changes see ChangeLog-2017
 
-Copyright (C) 2017 Free Software Foundation, Inc.
+Copyright (C) 2018 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/ChangeLog-2017 ./include/ChangeLog-2017
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/ChangeLog-2017	1970-01-01 00:00:00.000000000 +0000
+++ ./include/ChangeLog-2017	2018-01-09 02:04:57.000000000 +0000
@@ -0,0 +1,871 @@
+2017-12-28  Jim Wilson  <jimw@sifive.com>
+
+	* opcode/riscv-opc.h (DECLARE_CSR): Add missing privileged registers.
+	Sort to match privileged spec documentation order.
+	(DECLARE_CSR_ALIAS): Add ubadaddr, and comments.
+
+2017-12-19  Tamar Christina  <tamar.christina@arm.com>
+
+	PR gas/22559
+	* aarch64.h (aarch64_opnd_qualifier): Add AARCH64_OPND_QLF_S_4B.
+
+2017-12-19  Tamar Christina  <tamar.christina@arm.com>
+
+	PR gas/22529
+	* opcode/aarch64.h (aarch64_opnd_qualifier): Add AARCH64_OPND_QLF_V_4B.
+
+2017-12-11  Stephen Crane  <sjc@immunant.com>
+
+	* plugin-api.h: Add new plugin hook to allow processing of input
+	files added by a plugin.
+	(ld_plugin_new_input_handler): New function hook type.
+	(ld_plugin_register_new_input): New interface.
+	(LDPT_REGISTER_NEW_INPUT_HOOK): New enum val.
+	(tv_register_new_input): New member.
+
+2017-12-01  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* opcode/ppc.h (PPC_INT_FMT): Define.
+	(struct powerpc_opcode) <opcode>: Update type.
+	(struct powerpc_opcode) <mask>: Likewise.
+	(struct powerpc_opcode) <bitm>: Likewise.
+	(struct powerpc_opcode) <insert>: Likewise.
+	(struct powerpc_opcode) <extract>: Likewise.
+	(ppc_optional_operand_value): Likewise.
+
+2017-11-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/22444
+	* elf/external.h (ELF_ALIGN_UP): New.
+	(ELF_NOTE_DESC_OFFSET): Likewise.
+	(ELF_NOTE_NEXT_OFFSET): Likewise.
+
+2017-11-16  Tamar Christina  <tamar.christina@arm.com>
+
+	* opcode/aarch64.h: (AARCH64_FEATURE_F16_FML): New.
+	(AARCH64_ARCH_V8_4): Enable AARCH64_FEATURE_F16_FML by default.
+
+2017-11-15  Tamar Christina  <tamar.christina@arm.com>
+
+	* opcode/arm.h: (ARM_EXT2_FP16_FML): New.
+	(ARM_AEXT2_V8_4A): Add ARM_EXT2_FP16_FML.
+
+2017-11-13  Jan Beulich  <jbeulich@suse.com>
+
+	* coff/pe.h (COFF_ENCODE_ALIGNMENT): Cap value to maximum one
+	representable.
+	(COFF_DECODE_ALIGNMENT): Define.
+
+2017-11-09  Tamar Christina  <tamar.christina@arm.com>
+
+	* opcode/aarch64.h (AARCH64_ARCH_V8_4): Enable DOTPROD.
+
+2017-11-09  Tamar Christina  <tamar.christina@arm.com>
+
+	* opcode/aarch64.h:
+	(aarch64_opnd): Add AARCH64_OPND_Va, AARCH64_OPND_MASK,
+	AARCH64_OPND_IMM_2, AARCH64_OPND_ADDR_OFFSET
+	and AARCH64_OPND_SM3_IMM2.
+	(aarch64_insn_class): Add cryptosm3 and cryptosm4.
+	(arch64_feature_set): Make uint64_t.
+
+2017-11-09  Tamar Christina  <tamar.christina@arm.com>
+
+	* opcode/aarch64.h:
+	(AARCH64_FEATURE_V8_4, AARCH64_FEATURE_SM4): New.
+	(AARCH64_ARCH_V8_4, AARCH64_FEATURE_SHA3): New.
+
+2017-11-09  Nick Clifton  <nickc@redhat.com>
+
+	* opcode/aarch64.h (aarch64_feature_set): Change type to unsigned
+	long long.
+
+2017-11-08  Tamar Christina  <tamar.christina@arm.com>
+
+	* opcode/aarch64.h:
+	(AARCH64_FEATURE_SHA2, AARCH64_FEATURE_AES): New.
+
+2017-11-08  Jiong Wang  <jiong.wang@arm.com>
+
+	* opcode/arm.h (ARM_AEXT2_V8_4A): Include Dot Product feature.
+	(ARM_EXT2_V8_4A): New macro.
+	(ARM_AEXT2_V8_4A): Likewise.
+	(ARM_ARCH_V8_4A): Likewise.
+
+2017-11-07  Palmer Dabbelt  <palmer@dabbelt.com>
+
+	* opcode/riscv-opc.h (sptbr): Rename to satp.
+	(CSR_SPTBR): Rename to CSR_SATP.
+	(sptbr): Alias to CSR_SATP.
+
+2017-11-07  Tamar Christina  <tamar.christina@arm.com>
+
+	* opcode/arm.h (FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD):
+	New macro.
+
+2017-11-02  Siddhesh Poyarekar  <siddhesh@sourceware.org>
+
+	* include/opcode/aarch64.h (AARCH64_ARCH_V8_2): Drop
+	AARCH64_FEATURE_F16.
+
+2017-11-01  James Bowman  <james.bowman@ftdichip.com>
+
+	* elf/ft32.h: Add R_FT32_RELAX, SC0, SC1, DIFF32.
+
+2017-10-25  Alan Modra  <amodra@gmail.com>
+
+	PR 22348
+	* opcode/cr16.h (instruction): Delete.
+	(cr16_words, cr16_allWords, cr16_currInsn): Delete.
+	* opcode/crx.h (crx_cst4_map): Rename from cst4_map.
+	(crx_cst4_maps): Rename from cst4_maps.
+	(crx_no_op_insn): Rename from no_op_insn.
+	(instruction): Delete.
+
+2017-10-24  Andrew Waterman  <andrew@sifive.com>
+
+	* opcode/riscv.h (VALID_RVC_LUI_IMM): c.lui can't load the
+	immediate 0.
+
+2017-10-12  James Bowman  <james.bowman@ftdichip.com>
+
+	* elf/ft32.h: Add R_FT32_15.
+	* opcode/ft32.h: Replace FT32_FLD_K8 with K15.
+	(ft32_shortcode, sc_compar, ft32_split_shortcode,
+	ft32_merge_shortcode, ft32_merge_shortcode): New functions.
+
+2017-10-05  John Baldwin  <jhb@FreeBSD.org>
+
+	* elf/common.h (AT_FREEBSD_EHDRFLAGS, AT_FREEBSD_HWCAP): Define.
+
+2017-09-22  Alexandre Oliva <aoliva@redhat.com>
+
+	* dwarf2.def (DW_AT_GNU_locviews): New.
+	* dwarf2.h (enum dwarf_location_list_entry_type): Add
+	DW_LLE_GNU_view_pair.
+	(DW_LLE_view_pair): Define.
+
+2017-09-15  Pedro Alves  <palves@redhat.com>
+
+	Sync with mainline gcc sources (r252823)
+
+	2017-09-15  Yao Qi  <yao.qi@linaro.org>
+		    Pedro Alves  <palves@redhat.com>
+
+	* ansidecl.h (DISABLE_COPY_AND_ASSIGN): New macro.
+
+	2017-09-12  Jiong Wang  <jiong.wang@arm.com>
+
+	* dwarf2.def (DW_CFA_AARCH64_negate_ra_state): New DW_CFA_DUP.
+	* dwarf2.h (DW_CFA_DUP): New define.
+
+	2017-08-21  Richard Biener  <rguenther@suse.de>
+
+	* simple-object.h (simple_object_copy_lto_debug_sections): New
+	function.
+
+	2017-05-18  Martin Liska  <mliska@suse.cz>
+
+	* ansidecl.h: Define CONSTEXPR macro.
+
+	2017-05-24  Nathan Sidwell  <nathan@acm.org>
+
+	* libiberty.h (ASTRDUP): Adjust cast to avoid warning.
+
+	2017-01-30  Alexandre Oliva <aoliva@redhat.com>
+
+	Introduce C++ support in libcc1.
+	* gcc-c-fe.def (int_type_v0): Rename from...
+	(int_type): ... this.  Introduce new version.
+	(float_type_v0): Rename from...
+	(float_type): ... this.  Introduce new version.
+	(char_type): New.
+	* gcc-c-interface.h (gcc_c_api_version): Add GCC_C_FE_VERSION_1.
+	(gcc_type_array): Move...
+	* gcc-interface.h: ... here.
+	* gcc-cp-fe.def: New.
+	* gcc-cp-interface.h: New.
+
+	2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
+
+	* longlong.h (umul_ppmm): Remove SHMEDIA checks.
+	(__umulsidi3, count_leading_zeros): Remove SHMEDIA implementations.
+
+	2017-09-15  Yao Qi  <yao.qi@linaro.org>
+	    Pedro Alves  <palves@redhat.com>
+
+	* ansidecl.h (DISABLE_COPY_AND_ASSIGN): New macro.
+
+	2017-09-12  Jiong Wang  <jiong.wang@arm.com>
+
+	* dwarf2.def (DW_CFA_AARCH64_negate_ra_state): New DW_CFA_DUP.
+	* dwarf2.h (DW_CFA_DUP): New define.
+
+	2017-08-21  Richard Biener  <rguenther@suse.de>
+
+	* simple-object.h (simple_object_copy_lto_debug_sections): New
+	function.
+
+	2017-05-18  Martin Liska  <mliska@suse.cz>
+
+	* ansidecl.h: Define CONSTEXPR macro.
+
+	2017-05-24  Nathan Sidwell  <nathan@acm.org>
+
+	* libiberty.h (ASTRDUP): Adjust cast to avoid warning.
+
+	2017-01-30  Alexandre Oliva <aoliva@redhat.com>
+
+	Introduce C++ support in libcc1.
+	* gcc-c-fe.def (int_type_v0): Rename from...
+	(int_type): ... this.  Introduce new version.
+	(float_type_v0): Rename from...
+	(float_type): ... this.  Introduce new version.
+	(char_type): New.
+	* gcc-c-interface.h (gcc_c_api_version): Add GCC_C_FE_VERSION_1.
+	(gcc_type_array): Move...
+	* gcc-interface.h: ... here.
+	* gcc-cp-fe.def: New.
+	* gcc-cp-interface.h: New.
+
+	2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
+
+	* longlong.h (umul_ppmm): Remove SHMEDIA checks.
+	(__umulsidi3, count_leading_zeros): Remove SHMEDIA implementations.
+
+2017-09-06  Kamil Rytarowski  <n54@gmx.com>
+
+	* opcode/nds32.h: Rename __BIT() to N32_BIT().
+
+2017-09-05  Alexander Fedotov <alexander.fedotov@nxp.com>
+	    Edmar Wienskoski <edmar.wienskoski@nxp.com
+
+	* elf/ppc.h (R_PPC_VLE_ADDR20): New relocation.
+
+2017-08-23  Alexander Fedotov <alexander.fedotov@nxp.com>
+	    Edmar Wienskoski <edmar.wienskoski@nxp.com>
+
+	* opcode/ppc.h:
+	(spe2_opcodes, spe2_num_opcodes): New.
+	(PPC_OPCODE_SPE2): New define.
+	(PPC_OPCODE_EFS2): Likewise.
+	(SPE2_XOP): Likewise.
+	(SPE2_XOP_TO_SEG): Likewise.
+
+2017-08-23  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* gcc-interface.h (enum gcc_base_api_version): Update comment for
+	GCC_FE_VERSION_1.
+	(struct gcc_base_vtable): Rename set_arguments to set_arguments_v0.
+	Add set_arguments, set_triplet_regexp and set_driver_filename.
+
+2017-08-23  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* gcc-interface.h (enum gcc_base_api_version): Add
+	GCC_FE_VERSION_1.
+	(struct gcc_base_vtable): Rename compile to compile_v0.  Update
+	comment for compile.  New methods set_verbose and compile.
+
+2017-08-21  Alexander Fedotov <alexander.fedotov@nxp.com>
+	    Edmar Wienskoski <edmar.wienskoski@nxp.com>
+
+	* opcode/ppc.h (PPC_OPCODE_LSP): New define.
+
+2017-08-14  Gustavo Romero  <gromero@linux.vnet.ibm.com>
+
+	* elf/common.h (NT_PPC_TAR): New macro.
+	(NT_PPC_PPR): Likewise.
+	(NT_PPC_DSCR): Likewise.
+	(NT_PPC_EBB): Likewise.
+	(NT_PPC_PMU): Likewise.
+	(NT_PPC_TM_CGPR): Likewise.
+	(NT_PPC_TM_CFPR): Likewise.
+	(NT_PPC_TM_CVMX): Likewise.
+	(NT_PPC_TM_CVSX): Likewise.
+	(NT_PPC_TM_SPR): Likewise.
+	(NT_PPC_TM_CTAR): Likewise.
+	(NT_PPC_TM_CPPR): Likewise.
+	(NT_PPC_TM_CDSCR): Likewise.
+
+2017-08-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21903:
+	* bfdlink.h (bfd_link_info): Add inhibit_common_definition.
+
+2017-07-31  Nick Clifton  <nickc@redhat.com>
+
+	PR 21850
+	* ansidecl.h (OVERRIDE): Protect check of __cplusplus value with
+	#idef __cplusplus.
+
+2017-07-19  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* opcode/arc.h (SJLI): Add.
+
+2017-07-19  Claudiu Zissulescu  <claziss@synopsys.com>
+	    John Eric Martin  <John.Martin@emmicro-us.com>
+
+	* elf/arc-reloc.def: Add JLI relocs howto.
+	* opcode/arc-func.h (replace_jli): New function.
+
+2017-07-18  Nick Clifton  <nickc@redhat.com>
+
+	PR 21775
+	* aout/adobe.h: Fix spelling typos.
+	* aout/aout64.h: Likewise.
+	* aout/hp300hpux.h: Likewise.
+	* elf/hppa.h: Likewise.
+	* gdb/remote-sim.h: Likewise.
+	* libiberty.h: Likewise.
+	* mach-o/arm.h: Likewise.
+	* opcode/v850.h: Likewise.
+
+2017-07-14  Ravi Bangoria  <ravi.bangoria@linux.vnet.ibm.com>
+
+	* dis-asm.h (struct disassemble_info): Change type of buffer_length
+	field to size_t.
+
+2017-07-07  John Baldwin  <jhb@FreeBSD.org>
+
+	* elf/common.h (NT_FREEBSD_PTLWPINFO): Define.
+
+2017-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* dwarf2.def (DW_IDX_compile_unit, DW_IDX_type_unit, DW_IDX_die_offset)
+	(DW_IDX_parent, DW_IDX_type_hash, DW_IDX_lo_user, DW_IDX_hi_user)
+	(DW_IDX_GNU_internal, DW_IDX_GNU_external): New.
+	* dwarf2.h (DW_IDX, DW_IDX_DUP, DW_FIRST_IDX, DW_END_IDX): New.
+	(enum dwarf_name_index_attribute): Remove.
+	(get_DW_IDX_name): New declaration.
+
+2017-06-30  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR gas/21683
+	* opcode/avr.h (AVR_INSN): Add one for __gcc_isr.
+
+2017-06-30  Maciej W. Rozycki  <macro@imgtec.com>
+	    Andrew Bennett  <andrew.bennett@imgtec.com>
+
+	* opcode/mips.h (ASE_XPA_VIRT): New macro.
+
+2017-06-29  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* elf/common.h (NT_S390_GS_CB): New macro.
+	(NT_S390_GS_BC): Likewise.
+
+2017-06-28  Tamar Christina  <tamar.christina@arm.com>
+
+	* opcode/aarch64.h: (AARCH64_FEATURE_DOTPROD): New.
+	(aarch64_insn_class): Added dotprod.
+
+2017-06-28  Jiong Wang  <jiong.wang@arm.com>
+
+	* opcode/arm.h (FPU_NEON_EXT_DOTPROD): New macro.
+	(FPU_ARCH_DOTPROD_NEON_VFP_ARMV8): New macro.
+
+2017-06-28  Maciej W. Rozycki  <macro@imgtec.com>
+	    Matthew Fortune  <matthew.fortune@imgtec.com>
+
+	* elf/mips.h (E_MIPS_MACH_IAMR2): New macro.
+	(AFL_EXT_INTERAPTIV_MR2): Likewise.
+	* opcode/mips.h: Document new operand codes defined.
+	(INSN_INTERAPTIV_MR2): New macro.
+	(INSN_CHIP_MASK): Adjust accordingly.
+	(CPU_INTERAPTIV_MR2): New macro.
+	(cpu_is_member) <CPU_INTERAPTIV_MR2>: New case.
+	(MIPS16_ALL_ARGS): Rename to...
+	(MIPS_SVRS_ALL_ARGS): ... this.
+	(MIPS16_ALL_STATICS): Rename to...
+	(MIPS_SVRS_ALL_STATICS): ... this.
+
+2017-06-26  Kuan-Lin Chen  <rufus@andestech.com>
+
+	* elf/riscv.h (R_RISCV_32_PCREL): New.
+
+2017-06-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+	* elf/arm.h (TAG_CPU_ARCH_V8R): New macro.
+	* opcode/arm.h (ARM_EXT2_V8A): New macro.
+	(ARM_AEXT2_V8A): Rename into ...
+	(ARM_AEXT2_V8AR): This.
+	(ARM_AEXT2_V8A): New macro.
+	(ARM_AEXT_V8R): New macro.
+	(ARM_AEXT2_V8R): New macro.
+	(ARM_ARCH_V8R): New macro.
+
+2017-06-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+	* opcode/arm.h (ARM_AEXT_V4TxM): Add ARM_EXT_OS bit to the set.
+	(ARM_AEXT_V4T): Likewise.
+	(ARM_AEXT_V5TxM): Likewise.
+	(ARM_AEXT_V5T): Likewise.
+	(ARM_AEXT_V6M): Mask off ARM_EXT_OS bit.
+
+2017-06-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* bfdlink.h (bfd_link_info): Add shstk.
+	* elf/common.h (GNU_PROPERTY_X86_FEATURE_1_SHSTK): New.
+
+2017-06-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* bfdlink.h (bfd_link_info): Add ibtplt and ibt.
+	* elf/common.h (GNU_PROPERTY_X86_FEATURE_1_AND): New.
+	(GNU_PROPERTY_X86_FEATURE_1_IBT): Likewise.
+
+2017-06-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+	* opcode/arm.h (FPU_ANY): New macro.
+
+2017-06-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+	* elf/s390.h (PT_S390_PGSTE): Define macro.
+
+2017-06-16  Alan Modra  <amodra@gmail.com>
+
+	PR ld/20022
+	PR ld/21557
+	PR ld/21562
+	PR ld/21571
+	* bfdlink.h (struct bfd_link_hash_entry): Delete undef.section.
+
+2017-06-14  Yao Qi  <yao.qi@linaro.org>
+
+	* dis-asm.h (print_insn_aarch64): Move it to opcodes/disassemble.h.
+	(print_insn_big_arm, print_insn_big_mips): Likewise.
+	(print_insn_i386, print_insn_ia64): Likewise.
+	(print_insn_little_arm, print_insn_little_mips): Likewise.
+	(print_insn_spu): Likewise.
+
+2017-06-06  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* bfdlink.h (struct bfd_link_info): Add new resolve_section_groups
+	flag.
+
+2017-06-01  Alan Modra  <amodra@gmail.com>
+
+	* elf/ppc64.h (PPC64_OPT_LOCALENTRY): Define.
+
+2017-05-31  Eli Zaretskii <eliz@gnu.org>
+
+	* environ.h: Add #ifndef guard.
+
+2017-05-30  Anton Kolesov  <anton.kolesov@synopsys.com>
+
+	* elf/arc-cpu.def: New file.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* dis-asm.h: Move some function declarations to
+	opcodes/disassemble.h.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* dis-asm.h (disassembler): Update declaration.
+
+2017-05-23  Claudiu Zissulescu <claziss@synopsys.com>
+
+	* opcode/arc.h (MAX_INSN_FLGS): Update to 4.
+
+2017-05-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* include/opcode/i386.h (NOTRACK_PREFIX_OPCODE): New.
+
+2017-05-19  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* elf/sparc.h (ELF_SPARC_HWCAP2_SPARC6): Define.
+	(ELF_SPARC_HWCAP2_ONADDSUB): Likewise.
+	(ELF_SPARC_HWCAP2_ONMUL): Likewise.
+	(ELF_SPARC_HWCAP2_ONDIV): Likewise.
+	(ELF_SPARC_HWCAP2_DICTUNP): Likewise.
+	(ELF_SPARC_HWCAP2_FPCMPSHL): Likewise.
+	(ELF_SPARC_HWCAP2_RLE): Likewise.
+	(ELF_SPARC_HWCAP2_SHA3): Likewise.
+	* opcode/sparc.h (sparc_opcode_arch_val): Add SPARC_OPCODE_ARCH_M8
+	and adjust SPARC_OPCODE_ARCH_MAX.
+	(HWCAP2_SPARC6): Define.
+	(HWCAP2_ONADDSUB): Likewise.
+	(HWCAP2_ONMUL): Likewise.
+	(HWCAP2_ONDIV): Likewise.
+	(HWCAP2_DICTUNP): Likewise.
+	(HWCAP2_FPCMPSHL): Likewise.
+	(HWCAP2_RLE): Likewise.
+	(HWCAP2_SHA3): Likewise.
+	(OPM): Likewise.
+	(OPMI): Likewise.
+	(ONFCN): Likewise.
+	(REVFCN): Likewise.
+	(SIMM10): Likewise.
+
+2017-05-16  Alan Modra  <amodra@gmail.com>
+
+	* bfdlink.h (struct bfd_link_hash_entry <non_ir_ref>): Rename to
+	non_ir_ref_regular.
+
+2017-05-16  Alan Modra  <amodra@gmail.com>
+
+	* bfdlink.h (struct bfd_link_hash_entry): Update non_ir_ref
+	comment.  Rename dynamic_ref_after_ir_def to non_ir_ref_dynamic.
+
+2017-05-15  Maciej W. Rozycki  <macro@imgtec.com>
+	    Matthew Fortune  <matthew.fortune@imgtec.com>
+
+	* elf/mips.h (AFL_ASE_MIPS16E2): New macro.
+	(AFL_ASE_MASK): Adjust accordingly.
+	* opcode/mips.h: Document new operand codes defined.
+	(mips_operand_type): Add OP_REG28 enum value.
+	(INSN2_SHORT_ONLY): Update description.
+	(ASE_MIPS16E2, ASE_MIPS16E2_MT): New macros.
+
+2017-05-14  John David Anglin  <danglin@gcc.gnu.org>
+
+	* opcode/hppa.h: Fix match and mask for 64-bit bb opcode.
+
+2017-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* elf/arc.h (SHT_ARC_ATTRIBUTES): Define.
+	(Tag_ARC_*): Define.
+	(E_ARC_OSABI_V4): Define.
+	(E_ARC_OSABI_CURRENT): Reassign it.
+	(TAG_CPU_*): Define.
+	* opcode/arc-attrs.h: New file.
+	* opcode/arc.h (insn_subclass_t): Assign enum values.
+	(insn_subclass_t): Update enum with QUARKSE1, QUARKSE2, and LL64.
+	(ARC_EA, ARC_CD, ARC_LLOCK, ARC_ATOMIC, ARC_MPY, ARC_MULT)
+	(ARC_NPS400, ARC_DPFP, ARC_SPFP, ARC_FPU, ARC_FPUDA, ARC_SWAP)
+	(ARC_NORM, ARC_BSCAN, ARC_UIX, ARC_TSTAMP, ARC_VBFDW)
+	(ARC_BARREL, ARC_DSPA, ARC_SHIFT, ARC_INTR, ARC_DIV, ARC_XMAC)
+	(ARC_CRC): Delete.
+
+2017-04-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/21382
+	* bfdlink.h (bfd_link_hash_entry): Add dynamic_ref_after_ir_def.
+
+2017-04-19  Alan Modra  <amodra@gmail.com>
+
+	* bfdlink.h (struct bfd_link_info <dynamic_undefined_weak>):
+	Revise comment.
+
+2017-04-11  Alan Modra  <amodra@gmail.com>
+
+	* opcode/ppc.h (PPC_OPCODE_ALTIVEC2): Delete.
+	(PPC_OPCODE_VSX3): Delete.
+	(PPC_OPCODE_HTM): Delete.
+	(PPC_OPCODE_*): Renumber and order chronologically.
+	(PPC_OPCODE_SPE): Comment on this and other bits used for APUinfo.
+
+2017-04-06  Pip Cet  <pipcet@gmail.com>
+
+	* dis-asm.h: Add prototypes for wasm32 disassembler.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* dis-asm.h (disassemble_info) <disassembler_options>: Now a
+	"const char *".
+	(next_disassembler_option): Constify.
+
+2017-04-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf/common.h (PT_GNU_MBIND_NUM): New.
+	(PT_GNU_MBIND_LO): Likewise.
+	(PT_GNU_MBIND_HI): Likewise.
+	(SHF_GNU_MBIND): Likewise.
+
+2017-04-03  Palmer Dabbelt  <palmer@dabbelt.com>
+
+	* elf/riscv.h (RISCV_GP_SYMBOL): New define.
+
+2017-03-27  Andrew Waterman  <andrew@sifive.com>
+
+	* opcode/riscv-opc.h (CSR_PMPCFG0): New define.
+	(CSR_PMPCFG1): Likewise.
+	(CSR_PMPCFG2): Likewise.
+	(CSR_PMPCFG3): Likewise.
+	(CSR_PMPADDR0): Likewise.
+	(CSR_PMPADDR1): Likewise.
+	(CSR_PMPADDR2): Likewise.
+	(CSR_PMPADDR3): Likewise.
+	(CSR_PMPADDR4): Likewise.
+	(CSR_PMPADDR5): Likewise.
+	(CSR_PMPADDR6): Likewise.
+	(CSR_PMPADDR7): Likewise.
+	(CSR_PMPADDR8): Likewise.
+	(CSR_PMPADDR9): Likewise.
+	(CSR_PMPADDR10): Likewise.
+	(CSR_PMPADDR11): Likewise.
+	(CSR_PMPADDR12): Likewise.
+	(CSR_PMPADDR13): Likewise.
+	(CSR_PMPADDR14): Likewise.
+	(CSR_PMPADDR15): Likewise.
+	(pmpcfg0): Declare register.
+	(pmpcfg1): Likewise.
+	(pmpcfg2): Likewise.
+	(pmpcfg3): Likewise.
+	(pmpaddr0): Likewise.
+	(pmpaddr1): Likewise.
+	(pmpaddr2): Likewise.
+	(pmpaddr3): Likewise.
+	(pmpaddr4): Likewise.
+	(pmpaddr5): Likewise.
+	(pmpaddr6): Likewise.
+	(pmpaddr7): Likewise.
+	(pmpaddr8): Likewise.
+	(pmpaddr9): Likewise.
+	(pmpaddr10): Likewise.
+	(pmpaddr11): Likewise.
+	(pmpaddr12): Likewise.
+	(pmpaddr13): Likewise.
+	(pmpaddr14): Likewise.
+	(pmpaddr15): Likewise.
+
+2017-03-30  Pip Cet  <pipcet@gmail.com>
+
+	* opcode/wasm.h: New file to support wasm32 architecture.
+	* elf/wasm32.h: Add R_WASM32_32 relocation.
+
+2017-03-29  Alan Modra  <amodra@gmail.com>
+
+	* opcode/ppc.h (PPC_OPCODE_RAW): Define.
+	(PPC_OPCODE_*): Make them all unsigned long long constants.
+
+2017-03-27  Pip Cet  <pipcet@gmail.com>
+
+	* elf/wasm32.h: New file to support wasm32 architecture.
+
+2017-03-27  Rinat Zelig  <rinat@mellanox.com>
+
+	* opcode/arc.h (insn_class_t): Add ULTRAIP and MISC class.
+
+2017-03-21  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+	* opcode/s390.h (S390_INSTR_FLAG_VX2): Remove.
+	(S390_INSTR_FLAG_FACILITY_MASK): Adjust value.
+
+2017-03-21  Rinat Zelig  <rinat@mellanox.com>
+
+	* opcode/arc.h (insn_class_t): Add DMA class.
+
+2017-03-16  Nick Clifton  <nickc@redhat.com>
+
+	* elf/common.h (GNU_BUILD_ATTRIBUTE_SHORT_ENUM): New GNU BUILD
+	note type.
+
+2017-03-14  Jakub Jelinek  <jakub@redhat.com>
+
+	PR debug/77589
+	* dwarf2.def (DW_OP_GNU_variable_value): New opcode.
+
+2017-03-13  Markus Trippelsdorf  <markus@trippelsdorf.de>
+
+	PR demangler/70909
+	PR demangler/67264
+	* demangle.h (struct demangle_component): Add d_printing field.
+	(cplus_demangle_print): Remove const qualifier from tree
+	parameter.
+	(cplus_demangle_print_callback): Likewise.
+
+2017-03-13  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21202
+	* elf/aarch64.h (R_AARCH64_TLSDESC_LD64_LO12_NC): Rename to
+	R_AARCH64_TLSDESC_LD64_LO12.
+	(R_AARCH64_TLSDESC_ADD_LO12_NC): Rename to
+	R_AARCH64_TLSDESC_ADD_LO12_NC.
+
+2017-03-10  Nick Clifton  <nickc@redhat.com>
+
+	* elf/common.h (EM_LANAI): New machine number.
+	(EM_BPF): Likewise.
+	(EM_WEBASSEMBLY): Likewise.
+	Move low value, deprecated, numbers to their numerical
+	equivalents.
+
+2017-03-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/21231
+	* elf/common.h (GNU_PROPERTY_LOPROC): New.
+	(GNU_PROPERTY_HIPROC): Likewise.
+	(GNU_PROPERTY_LOUSER): Likewise.
+	(GNU_PROPERTY_HIUSER): Likewise.
+
+2017-03-01  Nick Clifton  <nickc@redhat.com>
+
+	* elf/common.h (SHF_GNU_BUILD_NOTE): Define.
+	(NT_GNU_PROPERTY_TYPE_0): Define.
+	(NT_GNU_BUILD_ATTRIBUTE_OPEN): Define.
+	(NT_GNU_BUILD_ATTRIBUTE_FUN): Define.
+	(GNU_BUILD_ATTRIBUTE_TYPE_NUMERIC): Define.
+	(GNU_BUILD_ATTRIBUTE_TYPE_STRING): Define.
+	(GNU_BUILD_ATTRIBUTE_TYPE_BOOL_TRUE): Define.
+	(GNU_BUILD_ATTRIBUTE_TYPE_BOOL_FALSE): Define.
+	(GNU_BUILD_ATTRIBUTE_VERSION): Define.
+	(GNU_BUILD_ATTRIBUTE_STACK_PROT): Define.
+	(GNU_BUILD_ATTRIBUTE_RELRO): Define.
+	(GNU_BUILD_ATTRIBUTE_STACK_SIZE): Define.
+	(GNU_BUILD_ATTRIBUTE_TOOL): Define.
+	(GNU_BUILD_ATTRIBUTE_ABI): Define.
+	(GNU_BUILD_ATTRIBUTE_PIC): Define.
+	(NOTE_GNU_PROPERTY_SECTION_NAME): Define.
+	(GNU_BUILD_ATTRS_SECTION_NAME): Define.
+	(GNU_PROPERTY_STACK_SIZE): Define.
+	(GNU_PROPERTY_NO_COPY_ON_PROTECTED): Define.
+	(GNU_PROPERTY_X86_ISA_1_USED): Define.
+	(GNU_PROPERTY_X86_ISA_1_NEEDED): Define.
+	(GNU_PROPERTY_X86_ISA_1_486): Define.
+	(GNU_PROPERTY_X86_ISA_1_586): Define.
+	(GNU_PROPERTY_X86_ISA_1_686): Define.
+	(GNU_PROPERTY_X86_ISA_1_SSE): Define.
+	(GNU_PROPERTY_X86_ISA_1_SSE2): Define.
+	(GNU_PROPERTY_X86_ISA_1_SSE3): Define.
+	(GNU_PROPERTY_X86_ISA_1_SSSE3): Define.
+	(GNU_PROPERTY_X86_ISA_1_SSE4_1): Define.
+	(GNU_PROPERTY_X86_ISA_1_SSE4_2): Define.
+	(GNU_PROPERTY_X86_ISA_1_AVX): Define.
+	(GNU_PROPERTY_X86_ISA_1_AVX2): Define.
+	(GNU_PROPERTY_X86_ISA_1_AVX512F): Define.
+	(GNU_PROPERTY_X86_ISA_1_AVX512CD): Define.
+	(GNU_PROPERTY_X86_ISA_1_AVX512ER): Define.
+	(GNU_PROPERTY_X86_ISA_1_AVX512PF): Define.
+	(GNU_PROPERTY_X86_ISA_1_AVX512VL): Define.
+	(GNU_PROPERTY_X86_ISA_1_AVX512DQ): Define.
+	(GNU_PROPERTY_X86_ISA_1_AVX512BW): Define.
+
+2017-02-28  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* dis-asm.h (disasm_options_t): New typedef.
+	(parse_arm_disassembler_option): Remove prototype.
+	(set_arm_regname_option): Likewise.
+	(get_arm_regnames): Likewise.
+	(get_arm_regname_num_options): Likewise.
+	(disassemble_init_s390): New prototype.
+	(disassembler_options_powerpc): Likewise.
+	(disassembler_options_arm): Likewise.
+	(disassembler_options_s390): Likewise.
+	(remove_whitespace_and_extra_commas): Likewise.
+	(disassembler_options_cmp): Likewise.
+	(next_disassembler_option): New inline function.
+	(FOR_EACH_DISASSEMBLER_OPTION): New macro.
+
+2017-02-28  Alan Modra  <amodra@gmail.com>
+
+	* elf/ppc64.h (R_PPC64_16DX_HA): New.  Expand fake reloc comment.
+	* elf/ppc.h (R_PPC_16DX_HA): Likewise.
+
+2017-02-24  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* opcode/aarch64.h (AARCH64_OPND_SVE_ADDR_RI_S4x16)
+	(AARCH64_OPND_SVE_IMM_ROT1, AARCH64_OPND_SVE_IMM_ROT2)
+	(AARCH64_OPND_SVE_Zm3_INDEX, AARCH64_OPND_SVE_Zm3_22_INDEX)
+	(AARCH64_OPND_SVE_Zm4_INDEX): New aarch64_opnds.
+
+2017-02-24  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* opcode/aarch64.h (AARCH64_FEATURE_COMPNUM): New macro.
+	(AARCH64_ARCH_V8_3): Include AARCH64_FEATURE_COMPNUM.
+
+2017-02-22  Andrew Waterman  <andrew@sifive.com>
+
+	* opcode/riscv-opc.h (CSR_SCOUNTEREN): New define.
+	(CSR_MCOUNTEREN): Likewise.
+	(scounteren): Declare register.
+	(mcounteren): Likewise.
+
+2017-02-14  Andrew Waterman  <andrew@sifive.com>
+
+	* opcode/riscv-opc.h (MATCH_SFENCE_VMA): New define.
+	(MASK_SFENCE_VMA): Likewise.
+	(sfence_vma): Declare instruction.
+
+2017-02-14  Alan Modra  <amodra@gmail.com>
+
+	PR 21118
+	* opcode/ppc.h (PPC_OPERAND_*): Reassign values, regs first.
+	(PPC_OPERAND_SPR, PPC_OPERAND_GQR): Define.
+
+2017-01-24  Dimitar Dimitrov  <dimitar@dinux.eu>
+
+	* opcode/hppa.h: Clarify that file is part of GNU opcodes.
+	* opcode/i860.h: Ditto.
+	* opcode/nios2.h: Ditto.
+	* opcode/nios2r1.h: Ditto.
+	* opcode/nios2r2.h: Ditto.
+	* opcode/pru.h: Ditto.
+
+2017-01-24  Alan Hayward  <alan.hayward@arm.com>
+
+	* elf/common.h (NT_ARM_SVE): Define.
+
+2017-01-04  Jiong Wang  <jiong.wang@arm.com>
+
+	* dwarf2.def: Sync with mainline gcc sources.
+
+	2017-01-04  Richard Earnshaw  <rearnsha@arm.com>
+		    Jiong Wang  <jiong.wang@arm.com>
+
+	* dwarf2.def (DW_OP_AARCH64_operation): Reserve the number 0xea.
+	(DW_CFA_GNU_window_save): Comments the multiplexing on AArch64.
+
+2017-01-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	* opcode/aarch64.h (AARCH64_FEATURE_RCPC): Define.
+	(AARCH64_ARCH_V8_3): Update.
+
+2017-01-03  Kito Cheng  <kito.cheng@gmail.com>
+
+	* opcode/riscv-opc.h: Add support for the "q" ISA extension.
+
+2017-01-03  Nick Clifton  <nickc@redhat.com>
+
+	* dwarf2.def: Sync with mainline gcc sources
+	* dwarf2.h: Likewise.
+
+	2016-12-21  Jakub Jelinek  <jakub@redhat.com>
+
+	* dwarf2.def (DW_FORM_ref_sup): Renamed to ...
+	(DW_FORM_ref_sup4): ... this.  New form.
+	(DW_FORM_ref_sup8): New form.
+
+	2016-10-17  Jakub Jelinek  <jakub@redhat.com>
+
+	* dwarf2.h (enum dwarf_calling_convention): Add new DWARF5
+	calling convention codes.
+	(enum dwarf_line_number_content_type): New.
+	(enum dwarf_location_list_entry_type): Add DWARF5 DW_LLE_*
+	codes.
+	(enum dwarf_source_language): Add new DWARF5 DW_LANG_* codes.
+	(enum dwarf_macro_record_type): Add DWARF5 DW_MACRO_* codes.
+	(enum dwarf_name_index_attribute): New.
+	(enum dwarf_range_list_entry): New.
+	(enum dwarf_unit_type): New.
+	* dwarf2.def: Add new DWARF5 DW_TAG_*, DW_FORM_*, DW_AT_*,
+	DW_OP_* and DW_ATE_* entries.
+
+	2016-08-15  Jakub Jelinek  <jakub@redhat.com>
+
+	* dwarf2.def (DW_AT_string_length_bit_size,
+	DW_AT_string_length_byte_size): New attributes.
+
+	2016-08-12  Alexandre Oliva <aoliva@redhat.com>
+
+	PR debug/63240
+	* dwarf2.def (DW_AT_deleted, DW_AT_defaulted): New.
+	* dwarf2.h (enum dwarf_defaulted_attribute): New.
+
+2017-01-02  Alan Modra  <amodra@gmail.com>
+
+	Update year range in copyright notice of all files.
+
+For older changes see ChangeLog-2016
+
+Copyright (C) 2017 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+
+Local Variables:
+mode: change-log
+left-margin: 8
+fill-column: 74
+version-control: never
+End:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/alpha.h ./include/coff/alpha.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/alpha.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/alpha.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* ECOFF support on Alpha machines.
    coff/ecoff.h must be included before this file.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/apollo.h ./include/coff/apollo.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/apollo.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/apollo.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for Apollo M68K
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/arm.h ./include/coff/arm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/arm.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/arm.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* ARM COFF support for BFD.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/aux-coff.h ./include/coff/aux-coff.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/aux-coff.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/aux-coff.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Modifications of internal.h and m68k.h needed by A/UX
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/ecoff.h ./include/coff/ecoff.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/ecoff.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/ecoff.h	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
    This does not include symbol information, found in sym.h and
    symconst.h.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/external.h ./include/coff/external.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/external.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/external.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* external.h  -- External COFF structures
    
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/go32exe.h ./include/coff/go32exe.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/go32exe.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/go32exe.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* COFF information for PC running go32.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/h8300.h ./include/coff/h8300.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/h8300.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/h8300.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for Renesas H8/300 and H8/300-H
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/h8500.h ./include/coff/h8500.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/h8500.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/h8500.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for Renesas H8/500
    
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/i386.h ./include/coff/i386.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/i386.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/i386.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for Intel 386/486.
    
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/i860.h ./include/coff/i860.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/i860.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/i860.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* COFF information for the Intel i860.
    
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/i960.h ./include/coff/i960.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/i960.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/i960.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for 80960.  Origins: Intel corp, natch.
    
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/ia64.h ./include/coff/ia64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/ia64.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/ia64.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for HP/Intel IA-64.
    
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/internal.h ./include/coff/internal.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/internal.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/internal.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Internal format of COFF object file data structures, for GNU BFD.
    This file is part of BFD, the Binary File Descriptor library.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/m68k.h ./include/coff/m68k.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/m68k.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/m68k.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for M68K
    
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/m88k.h ./include/coff/m88k.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/m88k.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/m88k.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for 88k bcs
    
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/mcore.h ./include/coff/mcore.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/mcore.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/mcore.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Motorola MCore support for BFD.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/mips.h ./include/coff/mips.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/mips.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/mips.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* ECOFF support on MIPS machines.
    coff/ecoff.h must be included before this file.
    
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/mipspe.h ./include/coff/mipspe.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/mipspe.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/mipspe.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for Windows CE with MIPS VR4111
    
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/pe.h ./include/coff/pe.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/pe.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/pe.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* pe.h  -  PE COFF header information
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -104,7 +104,10 @@
 
 /* Encode alignment power into IMAGE_SCN_ALIGN bits of s_flags.  */
 #define COFF_ENCODE_ALIGNMENT(SECTION, ALIGNMENT_POWER) \
-  ((SECTION).s_flags |= IMAGE_SCN_ALIGN_POWER_CONST ((ALIGNMENT_POWER)))
+  ((SECTION).s_flags |= IMAGE_SCN_ALIGN_POWER_CONST ((ALIGNMENT_POWER) <= 13 \
+						     ? (ALIGNMENT_POWER) : 13))
+#define COFF_DECODE_ALIGNMENT(X)             \
+  IMAGE_SCN_ALIGN_POWER_NUM ((X) & IMAGE_SCN_ALIGN_POWER_BIT_MASK)
 
 #define IMAGE_SCN_LNK_NRELOC_OVFL            0x01000000  /* Section contains extended relocations. */
 #define IMAGE_SCN_MEM_NOT_CACHED             0x04000000  /* Section is not cachable.               */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/powerpc.h ./include/coff/powerpc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/powerpc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/powerpc.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* Basic coff information for the PowerPC
    Based on coff/rs6000.h, coff/i386.h and others.
    
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/rs6000.h ./include/coff/rs6000.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/rs6000.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/rs6000.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* IBM RS/6000 "XCOFF" file definitions for BFD.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
    Written by Mimi Phuong-Thao Vo of IBM
    and John Gilmore of Cygnus Support.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/rs6k64.h ./include/coff/rs6k64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/rs6k64.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/rs6k64.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* IBM RS/6000 "XCOFF64" file definitions for BFD.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/sh.h ./include/coff/sh.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/sh.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/sh.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for Renesas SH
    
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/sparc.h ./include/coff/sparc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/sparc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/sparc.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for Sparc.
    
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/tic30.h ./include/coff/tic30.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/tic30.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/tic30.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for Texas Instruments TMS320C3X
    
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/tic4x.h ./include/coff/tic4x.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/tic4x.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/tic4x.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* TI COFF information for Texas Instruments TMS320C4X/C3X.
    This file customizes the settings in coff/ti.h. 
    
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/tic54x.h ./include/coff/tic54x.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/tic54x.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/tic54x.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* TI COFF information for Texas Instruments TMS320C54X.
    This file customizes the settings in coff/ti.h. 
    
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/tic80.h ./include/coff/tic80.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/tic80.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/tic80.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for TI TMS320C80 (MVP)
    
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/ti.h ./include/coff/ti.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/ti.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/ti.h	2018-01-09 02:04:57.000000000 +0000
@@ -2,7 +2,7 @@
    customized in a target-specific file, and then this file included (see
    tic54x.h for an example).
    
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/w65.h ./include/coff/w65.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/w65.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/w65.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for WDC 65816
    
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/we32k.h ./include/coff/we32k.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/we32k.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/we32k.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for we32k
    
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/x86_64.h ./include/coff/x86_64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/x86_64.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/x86_64.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* COFF information for AMD 64.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/xcoff.h ./include/coff/xcoff.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/xcoff.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/xcoff.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Internal format of XCOFF object file data structures for BFD.
 
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor <ian@cygnus.com>, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/z80.h ./include/coff/z80.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/z80.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/z80.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* coff information for Zilog Z80
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
    Contributed by Arnold Metselaar <arnold_m@operamail.com>
 
    This program is free software; you can redistribute it and/or modify
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/z8k.h ./include/coff/z8k.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/coff/z8k.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/coff/z8k.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* coff information for Zilog Z800N
    
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/demangle.h ./include/demangle.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/demangle.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/demangle.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* Defs for interface to demanglers.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/dis-asm.h ./include/dis-asm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/dis-asm.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/dis-asm.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Interface between the opcode library and its callers.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 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
@@ -158,7 +158,7 @@ typedef struct disassemble_info
   /* These are for buffer_read_memory.  */
   bfd_byte *buffer;
   bfd_vma buffer_vma;
-  unsigned int buffer_length;
+  size_t buffer_length;
 
   /* This variable may be set by the instruction decoder.  It suggests
       the number of bytes objdump should display on a single line.  If
@@ -237,95 +237,12 @@ typedef struct
    target address.  Return number of octets processed.  */
 typedef int (*disassembler_ftype) (bfd_vma, disassemble_info *);
 
-extern int print_insn_aarch64		(bfd_vma, disassemble_info *);
-extern int print_insn_alpha		(bfd_vma, disassemble_info *);
-extern int print_insn_avr		(bfd_vma, disassemble_info *);
-extern int print_insn_bfin		(bfd_vma, disassemble_info *);
-extern int print_insn_big_arm		(bfd_vma, disassemble_info *);
-extern int print_insn_big_mips		(bfd_vma, disassemble_info *);
-extern int print_insn_big_nios2		(bfd_vma, disassemble_info *);
-extern int print_insn_big_powerpc	(bfd_vma, disassemble_info *);
-extern int print_insn_big_score         (bfd_vma, disassemble_info *);
-extern int print_insn_cr16              (bfd_vma, disassemble_info *);
-extern int print_insn_crx               (bfd_vma, disassemble_info *);
-extern int print_insn_d10v		(bfd_vma, disassemble_info *);
-extern int print_insn_d30v		(bfd_vma, disassemble_info *);
-extern int print_insn_dlx 		(bfd_vma, disassemble_info *);
-extern int print_insn_epiphany		(bfd_vma, disassemble_info *);
-extern int print_insn_fr30		(bfd_vma, disassemble_info *);
-extern int print_insn_frv		(bfd_vma, disassemble_info *);
-extern int print_insn_ft32  		(bfd_vma, disassemble_info *);
-extern int print_insn_h8300		(bfd_vma, disassemble_info *);
-extern int print_insn_h8300h		(bfd_vma, disassemble_info *);
-extern int print_insn_h8300s		(bfd_vma, disassemble_info *);
-extern int print_insn_h8500		(bfd_vma, disassemble_info *);
-extern int print_insn_hppa		(bfd_vma, disassemble_info *);
-extern int print_insn_i370		(bfd_vma, disassemble_info *);
-extern int print_insn_i386		(bfd_vma, disassemble_info *);
-extern int print_insn_i386_att		(bfd_vma, disassemble_info *);
-extern int print_insn_i386_intel	(bfd_vma, disassemble_info *);
-extern int print_insn_i860		(bfd_vma, disassemble_info *);
-extern int print_insn_i960		(bfd_vma, disassemble_info *);
-extern int print_insn_ia64		(bfd_vma, disassemble_info *);
-extern int print_insn_ip2k		(bfd_vma, disassemble_info *);
-extern int print_insn_iq2000		(bfd_vma, disassemble_info *);
-extern int print_insn_little_arm	(bfd_vma, disassemble_info *);
-extern int print_insn_little_mips	(bfd_vma, disassemble_info *);
-extern int print_insn_little_nios2	(bfd_vma, disassemble_info *);
-extern int print_insn_little_powerpc	(bfd_vma, disassemble_info *);
-extern int print_insn_riscv		(bfd_vma, disassemble_info *);
-extern int print_insn_little_score      (bfd_vma, disassemble_info *); 
-extern int print_insn_lm32		(bfd_vma, disassemble_info *);
-extern int print_insn_m32c	        (bfd_vma, disassemble_info *);
-extern int print_insn_m32r		(bfd_vma, disassemble_info *);
-extern int print_insn_m68hc11		(bfd_vma, disassemble_info *);
-extern int print_insn_m68hc12		(bfd_vma, disassemble_info *);
-extern int print_insn_m9s12x		(bfd_vma, disassemble_info *);
-extern int print_insn_m9s12xg		(bfd_vma, disassemble_info *);
-extern int print_insn_m68k		(bfd_vma, disassemble_info *);
-extern int print_insn_m88k		(bfd_vma, disassemble_info *);
-extern int print_insn_mcore		(bfd_vma, disassemble_info *);
+/* Disassemblers used out side of opcodes library.  */
+extern int print_insn_m32c		(bfd_vma, disassemble_info *);
 extern int print_insn_mep		(bfd_vma, disassemble_info *);
-extern int print_insn_metag		(bfd_vma, disassemble_info *);
-extern int print_insn_microblaze	(bfd_vma, disassemble_info *);
-extern int print_insn_mmix		(bfd_vma, disassemble_info *);
-extern int print_insn_mn10200		(bfd_vma, disassemble_info *);
-extern int print_insn_mn10300		(bfd_vma, disassemble_info *);
-extern int print_insn_moxie		(bfd_vma, disassemble_info *);
-extern int print_insn_msp430		(bfd_vma, disassemble_info *);
-extern int print_insn_mt                (bfd_vma, disassemble_info *);
-extern int print_insn_nds32		(bfd_vma, disassemble_info *);
-extern int print_insn_ns32k		(bfd_vma, disassemble_info *);
-extern int print_insn_or1k		(bfd_vma, disassemble_info *);
-extern int print_insn_pdp11		(bfd_vma, disassemble_info *);
-extern int print_insn_pj		(bfd_vma, disassemble_info *);
-extern int print_insn_pru		(bfd_vma, disassemble_info *);
-extern int print_insn_rs6000		(bfd_vma, disassemble_info *);
-extern int print_insn_s390		(bfd_vma, disassemble_info *);
 extern int print_insn_sh		(bfd_vma, disassemble_info *);
-extern int print_insn_sh64		(bfd_vma, disassemble_info *);
 extern int print_insn_sh64x_media	(bfd_vma, disassemble_info *);
 extern int print_insn_sparc		(bfd_vma, disassemble_info *);
-extern int print_insn_spu		(bfd_vma, disassemble_info *);
-extern int print_insn_tic30		(bfd_vma, disassemble_info *);
-extern int print_insn_tic4x		(bfd_vma, disassemble_info *);
-extern int print_insn_tic54x		(bfd_vma, disassemble_info *);
-extern int print_insn_tic6x		(bfd_vma, disassemble_info *);
-extern int print_insn_tic80		(bfd_vma, disassemble_info *);
-extern int print_insn_tilegx		(bfd_vma, disassemble_info *);
-extern int print_insn_tilepro		(bfd_vma, disassemble_info *);
-extern int print_insn_v850		(bfd_vma, disassemble_info *);
-extern int print_insn_vax		(bfd_vma, disassemble_info *);
-extern int print_insn_visium		(bfd_vma, disassemble_info *);
-extern int print_insn_w65		(bfd_vma, disassemble_info *);
-extern int print_insn_wasm32		(bfd_vma, disassemble_info *);
-extern int print_insn_xc16x		(bfd_vma, disassemble_info *);
-extern int print_insn_xgate             (bfd_vma, disassemble_info *);
-extern int print_insn_xstormy16		(bfd_vma, disassemble_info *);
-extern int print_insn_xtensa		(bfd_vma, disassemble_info *);
-extern int print_insn_z80		(bfd_vma, disassemble_info *);
-extern int print_insn_z8001		(bfd_vma, disassemble_info *);
-extern int print_insn_z8002		(bfd_vma, disassemble_info *);
 extern int print_insn_rx		(bfd_vma, disassemble_info *);
 extern int print_insn_rl78		(bfd_vma, disassemble_info *);
 extern int print_insn_rl78_g10		(bfd_vma, disassemble_info *);
@@ -334,7 +251,6 @@ extern int print_insn_rl78_g14		(bfd_vma
 
 extern disassembler_ftype arc_get_disassembler (bfd *);
 extern disassembler_ftype cris_get_disassembler (bfd *);
-extern disassembler_ftype rl78_get_disassembler (bfd *);
 
 extern void print_aarch64_disassembler_options (FILE *);
 extern void print_i386_disassembler_options (FILE *);
@@ -354,8 +270,12 @@ extern const disasm_options_t *disassemb
 extern const disasm_options_t *disassembler_options_arm (void);
 extern const disasm_options_t *disassembler_options_s390 (void);
 
-/* Fetch the disassembler for a given BFD, if that support is available.  */
-extern disassembler_ftype disassembler (bfd *);
+/* Fetch the disassembler for a given architecture ARC, endianess (big
+   endian if BIG is true), bfd_mach value MACH, and ABFD, if that support
+   is available.  ABFD may be NULL.  */
+extern disassembler_ftype disassembler (enum bfd_architecture arc,
+					bfd_boolean big, unsigned long mach,
+					bfd *abfd);
 
 /* Amend the disassemble_info structure as necessary for the target architecture.
    Should only be called after initialising the info->arch field.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/dwarf2.def ./include/dwarf2.def
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/dwarf2.def	2018-01-02 02:03:00.000000000 +0000
+++ ./include/dwarf2.def	2018-01-09 02:04:57.000000000 +0000
@@ -1,7 +1,7 @@
 /* -*- c -*-
    Declarations and definitions of codes relating to the DWARF2 and
    DWARF3 symbolic debugging information formats.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
    Office (AJPO), Florida State University and Silicon Graphics Inc.
@@ -443,6 +443,8 @@ DW_AT (DW_AT_GNU_pubtypes, 0x2135)
 /* Attribute for discriminator.
    See http://gcc.gnu.org/wiki/Discriminator  */
 DW_AT (DW_AT_GNU_discriminator, 0x2136)
+DW_AT (DW_AT_GNU_locviews, 0x2137)
+DW_AT (DW_AT_GNU_entry_view, 0x2138)
 /* VMS extensions.  */
 DW_AT (DW_AT_VMS_rtnbeg_pd_address, 0x2201)
 /* GNAT extensions.  */
@@ -778,7 +780,20 @@ DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d)
 /* GNU extensions.
    NOTE: DW_CFA_GNU_window_save is multiplexed on Sparc and AArch64.  */
 DW_CFA (DW_CFA_GNU_window_save, 0x2d)
+DW_CFA_DUP (DW_CFA_AARCH64_negate_ra_state, 0x2d)
 DW_CFA (DW_CFA_GNU_args_size, 0x2e)
 DW_CFA (DW_CFA_GNU_negative_offset_extended, 0x2f)
 
 DW_END_CFA
+
+/* Index attributes in the Abbreviations Table.  */
+DW_FIRST_IDX (DW_IDX_compile_unit, 1)
+DW_IDX (DW_IDX_type_unit, 2)
+DW_IDX (DW_IDX_die_offset, 3)
+DW_IDX (DW_IDX_parent, 4)
+DW_IDX (DW_IDX_type_hash, 5)
+DW_IDX_DUP (DW_IDX_lo_user, 0x2000)
+DW_IDX (DW_IDX_hi_user, 0x3fff)
+DW_IDX (DW_IDX_GNU_internal, 0x2000)
+DW_IDX (DW_IDX_GNU_external, 0x2001)
+DW_END_IDX
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/dwarf2.h ./include/dwarf2.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/dwarf2.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/dwarf2.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 /* Declarations and definitions of codes relating to the DWARF2 and
    DWARF3 symbolic debugging information formats.
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
    Office (AJPO), Florida State University and Silicon Graphics Inc.
@@ -52,6 +52,9 @@
 #define DW_ATE(name, value) , name = value
 #define DW_ATE_DUP(name, value) , name = value
 #define DW_CFA(name, value) , name = value
+#define DW_CFA_DUP(name, value) , name = value
+#define DW_IDX(name, value) , name = value
+#define DW_IDX_DUP(name, value) , name = value
 
 #define DW_FIRST_TAG(name, value) enum dwarf_tag { \
   name = value
@@ -71,6 +74,9 @@
 #define DW_FIRST_CFA(name, value) enum dwarf_call_frame_info { \
   name = value
 #define DW_END_CFA };
+#define DW_FIRST_IDX(name, value) enum dwarf_name_index_attribute { \
+  name = value
+#define DW_END_IDX };
 
 #include "dwarf2.def"
 
@@ -86,6 +92,8 @@
 #undef DW_END_ATE
 #undef DW_FIRST_CFA
 #undef DW_END_CFA
+#undef DW_FIRST_IDX
+#undef DW_END_IDX
 
 #undef DW_TAG
 #undef DW_TAG_DUP
@@ -97,6 +105,9 @@
 #undef DW_ATE
 #undef DW_ATE_DUP
 #undef DW_CFA
+#undef DW_CFA_DUP
+#undef DW_IDX
+#undef DW_IDX_DUP
 
 /* Flag that tells whether entry has a child or not.  */
 #define DW_children_no   0
@@ -287,6 +298,14 @@ enum dwarf_location_list_entry_type
     DW_LLE_start_end = 0x07,
     DW_LLE_start_length = 0x08,
 
+    /* <http://lists.dwarfstd.org/private.cgi/dwarf-discuss-dwarfstd.org/2017-April/004347.html>
+       has the proposal for now; only available to list members.
+
+       A (possibly updated) copy of the proposal is available at
+       <http://people.redhat.com/aoliva/papers/sfn/dwarf6-sfn-lvu.txt>.  */
+    DW_LLE_GNU_view_pair = 0x09,
+#define DW_LLE_view_pair DW_LLE_GNU_view_pair
+
     /* Former extension for Fission.
        See http://gcc.gnu.org/wiki/DebugFission.  */
     DW_LLE_GNU_end_of_list_entry = 0x00,
@@ -420,18 +439,6 @@ enum dwarf_macro_record_type
     DW_MACRO_GNU_hi_user = 0xff
   };
 
-/* Index attributes in the Abbreviations Table.  */
-enum dwarf_name_index_attribute
-  {
-    DW_IDX_compile_unit = 1,
-    DW_IDX_type_unit = 2,
-    DW_IDX_die_offset = 3,
-    DW_IDX_parent = 4,
-    DW_IDX_type_hash = 5,
-    DW_IDX_lo_user = 0x2000,
-    DW_IDX_hi_user = 0x3fff
-  };
-
 /* Range list entry kinds in .debug_rnglists* section.  */
 enum dwarf_range_list_entry
   {
@@ -524,6 +531,10 @@ extern const char *get_DW_ATE_name (unsi
    recognized.  */
 extern const char *get_DW_CFA_name (unsigned int opc);
 
+/* Return the name of a DW_IDX_ constant, or NULL if the value is not
+   recognized.  */
+extern const char *get_DW_IDX_name (unsigned int idx);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/dyn-string.h ./include/dyn-string.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/dyn-string.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/dyn-string.h	2018-01-09 02:04:57.000000000 +0000
@@ -1,5 +1,5 @@
 /* An abstract string datatype.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
    Contributed by Mark Mitchell (mark@markmitchell.com).
 
 This file is part of GCC.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/aarch64.h ./include/elf/aarch64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/aarch64.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/aarch64.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* AArch64 ELF support for BFD.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GNU Binutils.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/alpha.h ./include/elf/alpha.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/alpha.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/alpha.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* ALPHA ELF support for BFD.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    By Eric Youngdale, <eric@aib.com>.  No processor supplement available
    for this platform.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/arc-cpu.def ./include/elf/arc-cpu.def
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/arc-cpu.def	1970-01-01 00:00:00.000000000 +0000
+++ ./include/elf/arc-cpu.def	2018-01-09 02:04:58.000000000 +0000
@@ -0,0 +1,49 @@
+/* ARC processor types
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+
+   This file is part of GAS, the GNU Assembler.
+
+   GAS 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.
+
+   GAS 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 GAS; see the file COPYING.  If not, write to the Free
+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
+
+
+ARC_CPU_TYPE_A7xx (arc700, 0x00),
+ARC_CPU_TYPE_A7xx (nps400, NPS400),
+
+ARC_CPU_TYPE_AV2EM (arcem,	0x00),
+ARC_CPU_TYPE_AV2EM (em,		0x00),
+ARC_CPU_TYPE_AV2EM (em4,	CD),
+ARC_CPU_TYPE_AV2EM (em4_dmips,  CD),
+ARC_CPU_TYPE_AV2EM (em4_fpus,	CD),
+ARC_CPU_TYPE_AV2EM (em4_fpuda,  CD | DPA),
+ARC_CPU_TYPE_AV2EM (quarkse_em, CD | SPX | DPX),
+
+ARC_CPU_TYPE_AV2HS (archs,	CD),
+ARC_CPU_TYPE_AV2HS (hs,		CD),
+ARC_CPU_TYPE_AV2HS (hs34,	CD),
+ARC_CPU_TYPE_AV2HS (hs38,	CD),
+ARC_CPU_TYPE_AV2HS (hs38_linux, CD),
+
+ARC_CPU_TYPE_A6xx (arc600, 0x00),
+ARC_CPU_TYPE_A6xx (arc600_norm,     0x00),
+ARC_CPU_TYPE_A6xx (arc600_mul64,    0x00),
+ARC_CPU_TYPE_A6xx (arc600_mul32x16, 0x00),
+ARC_CPU_TYPE_A6xx (arc601,	    0x00),
+ARC_CPU_TYPE_A6xx (arc601_norm,     0x00),
+ARC_CPU_TYPE_A6xx (arc601_mul64,    0x00),
+ARC_CPU_TYPE_A6xx (arc601_mul32x16, 0x00),
+
+ARC_CPU_TYPE_NONE
+
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/arc.h ./include/elf/arc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/arc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/arc.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* ARC ELF support for BFD.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
    Contributed by Doug Evans, (dje@cygnus.com)
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -55,12 +55,42 @@ END_RELOC_NUMBERS (R_ARC_max)
 #define E_ARC_OSABI_ORIG	0x00000000   /* MUST be 0 for back-compat.  */
 #define E_ARC_OSABI_V2		0x00000200
 #define E_ARC_OSABI_V3		0x00000300
-#define E_ARC_OSABI_CURRENT	E_ARC_OSABI_V3
-
+#define E_ARC_OSABI_V4		0x00000400
+#define E_ARC_OSABI_CURRENT	E_ARC_OSABI_V4
 /* Leave bits 0xf0 alone in case we ever have more than 16 cpu types.  */
 
 /* File contains position independent code.  */
 
 #define EF_ARC_PIC 0x00000100
 
+/* Additional section types.  */
+#define SHT_ARC_ATTRIBUTES     0x70000001	/* Section holds attributes.  */
+
+/* ARC ABI object attributes.  */
+enum {
+  /* 0-3 are generic.  */
+  Tag_ARC_PCS_config = 4,
+  Tag_ARC_CPU_base,
+  Tag_ARC_CPU_variation,
+  Tag_ARC_CPU_name,
+  Tag_ARC_ABI_rf16,
+  Tag_ARC_ABI_osver,
+  Tag_ARC_ABI_sda,
+  Tag_ARC_ABI_pic,
+  Tag_ARC_ABI_tls,
+  Tag_ARC_ABI_enumsize,
+  Tag_ARC_ABI_exceptions,
+  Tag_ARC_ABI_double_size,
+  Tag_ARC_ISA_config,
+  Tag_ARC_ISA_apex,
+  Tag_ARC_ISA_mpy_option
+};
+
+/* Values for the Tag_ARC_cpu_base attribute.  */
+#define TAG_CPU_NONE	  0
+#define TAG_CPU_ARC6xx	  1
+#define TAG_CPU_ARC7xx	  2
+#define TAG_CPU_ARCEM	  3
+#define TAG_CPU_ARCHS	  4
+
 #endif /* _ELF_ARC_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/arc-reloc.def ./include/elf/arc-reloc.def
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/arc-reloc.def	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/arc-reloc.def	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* ARC relocation types
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -414,6 +414,13 @@ ARC_RELOC_HOWTO(ARC_S25H_PCREL_PLT, 61, 
                 signed, \
                 ( ME ( ( ( ( L + A ) - P ) >> 1 ) ) ))
 
+ARC_RELOC_HOWTO(ARC_JLI_SECTOFF, 63, \
+                1, \
+                10, \
+                replace_jli, \
+                bitfield, \
+                ( ( S - JLI ) >> 2))
+
 ARC_RELOC_HOWTO(ARC_TLS_DTPMOD, 66, \
                 2, \
                 32, \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/arm.h ./include/elf/arm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/arm.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/arm.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* ARM ELF support for BFD.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -106,6 +106,7 @@
 #define TAG_CPU_ARCH_V6S_M	12
 #define TAG_CPU_ARCH_V7E_M	13
 #define TAG_CPU_ARCH_V8		14
+#define TAG_CPU_ARCH_V8R	15
 #define TAG_CPU_ARCH_V8M_BASE	16
 #define TAG_CPU_ARCH_V8M_MAIN	17
 #define MAX_TAG_CPU_ARCH	TAG_CPU_ARCH_V8M_MAIN
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/avr.h ./include/elf/avr.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/avr.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/avr.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* AVR ELF support for BFD.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Contributed by Denis Chertykov <denisc@overta.ru>
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/bfin.h ./include/elf/bfin.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/bfin.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/bfin.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Blackfin ELF support for BFD.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/common.h ./include/elf/common.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/common.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/common.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* ELF support for BFD.
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support, from information published
    in "UNIX System V Release 4, Programmers Guide: ANSI C and
@@ -570,6 +570,32 @@
 					/*   note name must be "LINUX".  */
 #define NT_PPC_VSX	0x102		/* PowerPC VSX registers */
 					/*   note name must be "LINUX".  */
+#define NT_PPC_TAR	0x103		/* PowerPC Target Address Register */
+					/*   note name must be "LINUX".  */
+#define NT_PPC_PPR	0x104		/* PowerPC Program Priority Register */
+					/*   note name must be "LINUX".  */
+#define NT_PPC_DSCR	0x105		/* PowerPC Data Stream Control Register */
+					/*   note name must be "LINUX".  */
+#define NT_PPC_EBB	0x106		/* PowerPC Event Based Branch Registers */
+					/*   note name must be "LINUX".  */
+#define NT_PPC_PMU	0x107		/* PowerPC Performance Monitor Registers */
+					/*   note name must be "LINUX".  */
+#define NT_PPC_TM_CGPR	0x108		/* PowerPC TM checkpointed GPR Registers */
+					/*   note name must be "LINUX".  */
+#define NT_PPC_TM_CFPR	0x109		/* PowerPC TM checkpointed FPR Registers */
+					/*   note name must be "LINUX".  */
+#define NT_PPC_TM_CVMX	0x10a		/* PowerPC TM checkpointed VMX Registers */
+					/*   note name must be "LINUX".  */
+#define NT_PPC_TM_CVSX	0x10b		/* PowerPC TM checkpointed VSX Registers */
+					/*   note name must be "LINUX".  */
+#define NT_PPC_TM_SPR	0x10c		/* PowerPC TM Special Purpose Registers */
+					/*   note name must be "LINUX".  */
+#define NT_PPC_TM_CTAR	0x10d		/* PowerPC TM checkpointed TAR */
+					/*   note name must be "LINUX".  */
+#define NT_PPC_TM_CPPR	0x10e		/* PowerPC TM checkpointed PPR */
+					/*   note name must be "LINUX".  */
+#define NT_PPC_TM_CDSCR	0x10f		/* PowerPC TM checkpointed Data SCR */
+					/*   note name must be "LINUX".  */
 #define NT_386_TLS	0x200		/* x86 TLS information */
 					/*   note name must be "LINUX".  */
 #define NT_386_IOPERM	0x201		/* x86 io permissions */
@@ -598,6 +624,10 @@
 					/*   note name must be "LINUX".  */
 #define NT_S390_VXRS_HIGH	0x30a	/* S390 vector registers 16-31 */
 					/*   note name must be "LINUX".  */
+#define NT_S390_GS_CB	0x30b		/* s390 guarded storage registers */
+					/*   note name must be "LINUX".  */
+#define NT_S390_GS_BC	0x30c		/* s390 guarded storage broadcast control block */
+					/*   note name must be "LINUX".  */
 #define NT_ARM_VFP	0x400		/* ARM VFP registers */
 /* The following definitions should really use NT_AARCH_..., but defined
    this way for compatibility with Linux.  */
@@ -637,6 +667,7 @@
 #define	NT_FREEBSD_PROCSTAT_OSREL	14	/* Procstat osreldate data. */
 #define	NT_FREEBSD_PROCSTAT_PSSTRINGS	15	/* Procstat ps_strings data. */
 #define	NT_FREEBSD_PROCSTAT_AUXV	16	/* Procstat auxv data. */
+#define	NT_FREEBSD_PTLWPINFO	17	/* Thread ptrace miscellaneous info. */
 
 /* Note segments for core files on NetBSD systems.  Note name
    must start with "NetBSD-CORE".  */
@@ -709,6 +740,7 @@
 
 #define GNU_PROPERTY_X86_ISA_1_USED		0xc0000000
 #define GNU_PROPERTY_X86_ISA_1_NEEDED		0xc0000001
+#define GNU_PROPERTY_X86_FEATURE_1_AND		0xc0000002
 
 #define GNU_PROPERTY_X86_ISA_1_486           (1U << 0)
 #define GNU_PROPERTY_X86_ISA_1_586           (1U << 1)
@@ -729,6 +761,9 @@
 #define GNU_PROPERTY_X86_ISA_1_AVX512DQ      (1U << 16)
 #define GNU_PROPERTY_X86_ISA_1_AVX512BW      (1U << 17)
 
+#define GNU_PROPERTY_X86_FEATURE_1_IBT       (1U << 0)
+#define GNU_PROPERTY_X86_FEATURE_1_SHSTK     (1U << 1)
+
 /* Values used in GNU .note.ABI-tag notes (NT_GNU_ABI_TAG).  */
 #define GNU_ABI_TAG_LINUX	0
 #define GNU_ABI_TAG_HURD	1
@@ -1109,6 +1144,8 @@
 #define AT_FREEBSD_PAGESIZESLEN 21      /* Number of pagesizes. */
 #define AT_FREEBSD_TIMEKEEP     22      /* Pointer to timehands. */
 #define AT_FREEBSD_STACKPROT    23      /* Initial stack protection. */
+#define AT_FREEBSD_EHDRFLAGS    24      /* e_flags field from ELF header. */
+#define AT_FREEBSD_HWCAP        25      /* CPU feature flags. */
 
 #define AT_SUN_UID      2000    /* Effective user ID.  */
 #define AT_SUN_RUID     2001    /* Real user ID.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/cr16c.h ./include/elf/cr16c.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/cr16c.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/cr16c.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* CR16C ELF support for BFD.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/cr16.h ./include/elf/cr16.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/cr16.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/cr16.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* CR16 ELF support for BFD.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
    Contributed by M R Swami Reddy.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/cris.h ./include/elf/cris.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/cris.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/cris.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* CRIS ELF support for BFD.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Axis Communications AB, Lund, Sweden.
    Written by Hans-Peter Nilsson.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/crx.h ./include/elf/crx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/crx.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/crx.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* CRX ELF support for BFD.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
    Contributed by Tomer Levi, NSC, Israel.
    Originally written for GAS 2.12 by Tomer Levi, NSC, Israel.
    Updates, BFDizing, GNUifying and ELF support by Tomer Levi.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/d10v.h ./include/elf/d10v.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/d10v.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/d10v.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* d10v ELF support for BFD.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/d30v.h ./include/elf/d30v.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/d30v.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/d30v.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* d30v ELF support for BFD.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/dlx.h ./include/elf/dlx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/dlx.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/dlx.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* DLX support for BFD.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/dwarf.h ./include/elf/dwarf.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/dwarf.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/dwarf.h	2018-01-09 02:04:58.000000000 +0000
@@ -3,7 +3,7 @@
 
    Written by Ron Guilmette (rfg@netcom.com)
 
-   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   Copyright (C) 1992-2018 Free Software Foundation, Inc.
 
    This file is part of both GCC and the BFD library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/epiphany.h ./include/elf/epiphany.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/epiphany.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/epiphany.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Adapteva EPIPHANY ELF support for BFD.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by Embecosm on behalf of Adapteva, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/external.h ./include/elf/external.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/external.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/external.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* ELF support for BFD.
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support, from information published
    in "UNIX System V Release 4, Programmers Guide: ANSI C and
@@ -183,6 +183,22 @@ typedef struct {
   char		name[1];		/* Start of the name+desc data */
 } Elf_External_Note;
 
+/* Align an address upward to a boundary, expressed as a number of bytes.
+   E.g. align to an 8-byte boundary with argument of 8.  */
+#define ELF_ALIGN_UP(addr, boundary) \
+  (((bfd_vma) (addr) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary) -1))
+
+/* Compute the offset of the note descriptor from size of note entry's
+   owner string and note alignment.  */
+#define ELF_NOTE_DESC_OFFSET(namesz, align) \
+  ELF_ALIGN_UP (offsetof (Elf_External_Note, name) + (namesz), (align))
+
+/* Compute the offset of the next note entry from size of note entry's
+   owner string, size of the note descriptor and note alignment.  */
+#define ELF_NOTE_NEXT_OFFSET(namesz, descsz, align) \
+  ELF_ALIGN_UP (ELF_NOTE_DESC_OFFSET ((namesz), (align)) + (descsz), \
+		(align))
+
 /* Relocation Entries */
 typedef struct {
   unsigned char r_offset[4];	/* Location at which to apply the action */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/fr30.h ./include/elf/fr30.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/fr30.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/fr30.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* FR30 ELF support for BFD.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/frv.h ./include/elf/frv.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/frv.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/frv.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* FRV ELF support for BFD.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/ft32.h ./include/elf/ft32.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/ft32.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/ft32.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* ft32 ELF support for BFD.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -32,6 +32,11 @@ START_RELOC_NUMBERS (elf_ft32_reloc_type
   RELOC_NUMBER (R_FT32_20, 5)
   RELOC_NUMBER (R_FT32_17, 6)
   RELOC_NUMBER (R_FT32_18, 7)
+  RELOC_NUMBER (R_FT32_RELAX, 8)
+  RELOC_NUMBER (R_FT32_SC0, 9)
+  RELOC_NUMBER (R_FT32_SC1, 10)
+  RELOC_NUMBER (R_FT32_15, 11)
+  RELOC_NUMBER (R_FT32_DIFF32, 12)
 END_RELOC_NUMBERS (R_FT32_max)
 
 #endif /* _ELF_FT32_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/h8.h ./include/elf/h8.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/h8.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/h8.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* H8300/h8500 ELF support for BFD.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/hppa.h ./include/elf/hppa.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/hppa.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/hppa.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* HPPA ELF support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -138,7 +138,7 @@ RELOC_NUMBER (R_PARISC_DIR14F,	   	 7)
    When supporting argument relocations, function calls must be
    accompanied by parameter relocation information.  This information is
    carried in the ten high-order bits of the addend field.  The remaining
-   22 bits of of the addend field are sign-extended to form the Addend.
+   22 bits of the addend field are sign-extended to form the Addend.
 
    Note the code to build argument relocations depends on the
    addend being zero.  A consequence of this limitation is GAS
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/i370.h ./include/elf/i370.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/i370.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/i370.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* i370 ELF support for BFD.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/i386.h ./include/elf/i386.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/i386.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/i386.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* ix86 ELF support for BFD.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/i860.h ./include/elf/i860.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/i860.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/i860.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* i860 ELF support for BFD.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    Contributed by Jason Eckhardt <jle@cygnus.com>.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/i960.h ./include/elf/i960.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/i960.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/i960.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Intel 960 ELF support for BFD.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/ia64.h ./include/elf/ia64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/ia64.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/ia64.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* IA-64 ELF support for BFD.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/internal.h ./include/elf/internal.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/internal.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/internal.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* ELF support for BFD.
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support, from information published
    in "UNIX System V Release 4, Programmers Guide: ANSI C and
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/ip2k.h ./include/elf/ip2k.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/ip2k.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/ip2k.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* IP2xxx ELF support for BFD.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/iq2000.h ./include/elf/iq2000.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/iq2000.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/iq2000.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* IQ2000 ELF support for BFD.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/lm32.h ./include/elf/lm32.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/lm32.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/lm32.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Lattice Mico32 ELF support for BFD.
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
    Contributed by Jon Beniston <jon@beniston.com>
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/m32c.h ./include/elf/m32c.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/m32c.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/m32c.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* M32C ELF support for BFD.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/m32r.h ./include/elf/m32r.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/m32r.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/m32r.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* M32R ELF support for BFD.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/m68hc11.h ./include/elf/m68hc11.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/m68hc11.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/m68hc11.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* m68hc11 & m68hc12 ELF support for BFD.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/m68k.h ./include/elf/m68k.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/m68k.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/m68k.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* MC68k ELF support for BFD.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/mcore.h ./include/elf/mcore.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/mcore.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/mcore.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Motorola MCore support for BFD.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/mep.h ./include/elf/mep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/mep.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/mep.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Toshiba MeP ELF support for BFD.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/metag.h ./include/elf/metag.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/metag.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/metag.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Meta ELF support for BFD.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Contributed by Imagination Technologies Ltd.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/microblaze.h ./include/elf/microblaze.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/microblaze.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/microblaze.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Xilinx MicroBlaze support for BFD.
  
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/mips.h ./include/elf/mips.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/mips.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/mips.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* MIPS ELF support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    By Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>, from
    information in the System V Application Binary Interface, MIPS
@@ -294,6 +294,7 @@ END_RELOC_NUMBERS (R_MIPS_maxext)
 #define E_MIPS_MACH_OCTEON3	0x008e0000
 #define E_MIPS_MACH_5400	0x00910000
 #define E_MIPS_MACH_5900	0x00920000
+#define E_MIPS_MACH_IAMR2	0x00930000
 #define E_MIPS_MACH_5500	0x00980000
 #define E_MIPS_MACH_9000	0x00990000
 #define E_MIPS_MACH_LS2E        0x00A00000
@@ -1233,7 +1234,8 @@ extern void bfd_mips_elf_swap_abiflags_v
 #define AFL_ASE_MICROMIPS    0x00000800 /* MICROMIPS ASE.  */
 #define AFL_ASE_XPA          0x00001000 /* XPA ASE.  */
 #define AFL_ASE_DSPR3        0x00002000 /* DSP R3 ASE.  */
-#define AFL_ASE_MASK         0x00003fff /* All ASEs.  */
+#define AFL_ASE_MIPS16E2     0x00004000 /* MIPS16e2 ASE.  */
+#define AFL_ASE_MASK         0x00007fff /* All ASEs.  */
 
 /* Values for the isa_ext word of an ABI flags structure.  */
 
@@ -1256,6 +1258,7 @@ extern void bfd_mips_elf_swap_abiflags_v
 #define AFL_EXT_LOONGSON_2E  17  /* ST Microelectronics Loongson 2E.  */
 #define AFL_EXT_LOONGSON_2F  18  /* ST Microelectronics Loongson 2F.  */
 #define AFL_EXT_OCTEON3      19  /* Cavium Networks Octeon3.  */
+#define AFL_EXT_INTERAPTIV_MR2 20  /* Imagination interAptiv MR2.  */
 
 /* Masks for the flags1 word of an ABI flags structure.  */
 #define AFL_FLAGS1_ODDSPREG   1	 /* Uses odd single-precision registers.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/mmix.h ./include/elf/mmix.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/mmix.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/mmix.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* MMIX support for BFD.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/mn10200.h ./include/elf/mn10200.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/mn10200.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/mn10200.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* MN10200 ELF support for BFD.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/mn10300.h ./include/elf/mn10300.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/mn10300.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/mn10300.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* MN10300 ELF support for BFD.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/moxie.h ./include/elf/moxie.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/moxie.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/moxie.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* moxie ELF support for BFD.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/msp430.h ./include/elf/msp430.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/msp430.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/msp430.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* MSP430 ELF support for BFD.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by Dmitry Diky <diwil@mail.ru>
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/mt.h ./include/elf/mt.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/mt.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/mt.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* MS1  ELF support for BFD.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/nds32.h ./include/elf/nds32.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/nds32.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/nds32.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* NDS32 ELF support for BFD.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by Andes Technology Corporation.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/nios2.h ./include/elf/nios2.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/nios2.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/nios2.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Altera Nios II ELF support for BFD.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by Nigel Gray (ngray@altera.com).
    Contributed by Mentor Graphics, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/or1k.h ./include/elf/or1k.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/or1k.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/or1k.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Or1k ELF support for BFD.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/pj.h ./include/elf/pj.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/pj.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/pj.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* picoJava ELF support for BFD.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/ppc64.h ./include/elf/ppc64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/ppc64.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/ppc64.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* PPC64 ELF support for BFD.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -251,5 +251,6 @@ ppc64_encode_local_entry(unsigned int va
 #define DT_PPC64_OPT		(DT_LOPROC + 3)
 #define PPC64_OPT_TLS		1
 #define PPC64_OPT_MULTI_TOC	2
+#define PPC64_OPT_LOCALENTRY	4
 
 #endif /* _ELF_PPC64_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/ppc.h ./include/elf/ppc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/ppc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/ppc.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* PPC ELF support for BFD.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    By Michael Meissner, Cygnus Support, <meissner@cygnus.com>,
    from information in the System V Application Binary Interface,
@@ -152,6 +152,7 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
   RELOC_NUMBER (R_PPC_VLE_SDAREL_HI16D,	230)
   RELOC_NUMBER (R_PPC_VLE_SDAREL_HA16A,	231)
   RELOC_NUMBER (R_PPC_VLE_SDAREL_HA16D,	232)
+  RELOC_NUMBER (R_PPC_VLE_ADDR20,	233)
 
 /* Power9 split rel16 for addpcis.  */
   RELOC_NUMBER (R_PPC_REL16DX_HA,	246)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/pru.h ./include/elf/pru.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/pru.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/pru.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* TI PRU ELF support for BFD.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
    Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/reloc-macros.h ./include/elf/reloc-macros.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/reloc-macros.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/reloc-macros.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Generic relocation support for BFD.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/riscv.h ./include/elf/riscv.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/riscv.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/riscv.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* RISC-V ELF support for BFD.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    Contributed by Andrew Waterman (andrew@sifive.com).
    Based on MIPS ELF support for BFD, by Ian Lance Taylor.
@@ -87,6 +87,7 @@ START_RELOC_NUMBERS (elf_riscv_reloc_typ
   RELOC_NUMBER (R_RISCV_SET8, 54)
   RELOC_NUMBER (R_RISCV_SET16, 55)
   RELOC_NUMBER (R_RISCV_SET32, 56)
+  RELOC_NUMBER (R_RISCV_32_PCREL, 57)
 END_RELOC_NUMBERS (R_RISCV_max)
 
 /* Processor specific flags for the ELF header e_flags field.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/rl78.h ./include/elf/rl78.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/rl78.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/rl78.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* RL78 ELF support for BFD.
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/rx.h ./include/elf/rx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/rx.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/rx.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* RX ELF support for BFD.
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/s390.h ./include/elf/s390.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/s390.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/s390.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* 390 ELF support for BFD.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Carl B. Pedersen and Martin Schwidefsky.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -37,6 +37,9 @@
 
 #define EF_S390_HIGH_GPRS        0x00000001
 
+/* Request 4k page table size.  */
+#define PT_S390_PGSTE (PT_LOPROC + 0)
+
 /* Relocation types.  */
 
 START_RELOC_NUMBERS (elf_s390_reloc_type)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/score.h ./include/elf/score.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/score.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/score.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Score ELF support for BFD.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
    Contributed by 
    Brain.lin (brain.lin@sunplusct.com)
    Mei Ligang (ligang@sunnorth.com.cn)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/sh.h ./include/elf/sh.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/sh.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/sh.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* SH ELF support for BFD.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/sparc.h ./include/elf/sparc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/sparc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/sparc.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* SPARC ELF support for BFD.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    By Doug Evans, Cygnus Support, <dje@cygnus.com>.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -249,4 +249,13 @@ enum
 #define ELF_SPARC_HWCAP2_FJDES     0x00002000 /* Fujitsu DES instrs */
 #define ELF_SPARC_HWCAP2_FJAES     0x00010000 /* Fujitsu AES instrs */
 
+#define ELF_SPARC_HWCAP2_SPARC6    0x00020000 /* OSA2017 new instructions */
+#define ELF_SPARC_HWCAP2_ONADDSUB  0x00040000 /* Oracle Number add/subtract */
+#define ELF_SPARC_HWCAP2_ONMUL     0x00080000 /* Oracle Number multiply */
+#define ELF_SPARC_HWCAP2_ONDIV     0x00100000 /* Oracle Number divide */
+#define ELF_SPARC_HWCAP2_DICTUNP   0x00200000 /* Dictionary unpack instruction */
+#define ELF_SPARC_HWCAP2_FPCMPSHL  0x00400000 /* Partition compare with shifted result */
+#define ELF_SPARC_HWCAP2_RLE       0x00800000 /* Run-length encoded burst and length */
+#define ELF_SPARC_HWCAP2_SHA3      0x01000000 /* SHA3 instruction */
+
 #endif /* _ELF_SPARC_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/spu.h ./include/elf/spu.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/spu.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/spu.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* SPU ELF support for BFD.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/tic6x-attrs.h ./include/elf/tic6x-attrs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/tic6x-attrs.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/tic6x-attrs.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* TI C6X ELF attributes.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/tic6x.h ./include/elf/tic6x.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/tic6x.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/tic6x.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* TI C6X ELF support for BFD.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/tilegx.h ./include/elf/tilegx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/tilegx.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/tilegx.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* TILE-Gx ELF support for BFD.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/tilepro.h ./include/elf/tilepro.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/tilepro.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/tilepro.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* TILEPro ELF support for BFD.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/v850.h ./include/elf/v850.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/v850.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/v850.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* V850 ELF support for BFD.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
    Created by Michael Meissner, Cygnus Support <meissner@cygnus.com>
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/vax.h ./include/elf/vax.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/vax.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/vax.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* VAX ELF support for BFD.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by Matt Thomas <matt@3am-software.com>.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/visium.h ./include/elf/visium.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/visium.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/visium.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Visium ELF support for BFD.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/vxworks.h ./include/elf/vxworks.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/vxworks.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/vxworks.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* VxWorks ELF support for BFD.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    Contributed by Nathan Sidwell <nathan@codesourcery.com>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/wasm32.h ./include/elf/wasm32.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/wasm32.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/wasm32.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* ELF support for BFD for the WebAssembly target
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/x86-64.h ./include/elf/x86-64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/x86-64.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/x86-64.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* x86_64 ELF support for BFD.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Jan Hubicka <jh@suse.cz>
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/xc16x.h ./include/elf/xc16x.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/xc16x.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/xc16x.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Infineon XC16X ELF support for BFD.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
    Contributed by KPIT Cummins Infosystems 
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/xgate.h ./include/elf/xgate.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/xgate.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/xgate.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* XGATE ELF support for BFD.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/xstormy16.h ./include/elf/xstormy16.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/xstormy16.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/xstormy16.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* XSTORMY16 ELF support for BFD.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/xtensa.h ./include/elf/xtensa.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/elf/xtensa.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/elf/xtensa.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Xtensa ELF support for BFD.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
    Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/environ.h ./include/environ.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/environ.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/environ.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Declare the environ system variable.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
 This file is part of the libiberty library.
 Libiberty is free software; you can redistribute it and/or
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/fibheap.h ./include/fibheap.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/fibheap.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/fibheap.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* A Fibonacci heap datatype.
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
    Contributed by Daniel Berlin (dan@cgsoftware.com).
 
 This file is part of GCC.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/filenames.h ./include/filenames.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/filenames.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/filenames.h	2018-01-09 02:04:58.000000000 +0000
@@ -5,7 +5,7 @@
    use forward- and back-slash in path names interchangeably, and
    some of them have case-insensitive file names.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/floatformat.h ./include/floatformat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/floatformat.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/floatformat.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* IEEE floating point support declarations, for GDB, the GNU Debugger.
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
 This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/fnmatch.h ./include/fnmatch.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/fnmatch.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/fnmatch.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
 NOTE: The canonical source of this file is maintained with the GNU C Library.
 Bugs can be reported to bug-glibc@prep.ai.mit.edu.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/fopen-bin.h ./include/fopen-bin.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/fopen-bin.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/fopen-bin.h	2018-01-09 02:04:58.000000000 +0000
@@ -7,7 +7,7 @@
    cope with a "b" in the string, indicating binary files, but some reject this
    (and thereby don't conform to ANSI C, but what else is new?).
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/fopen-same.h ./include/fopen-same.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/fopen-same.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/fopen-same.h	2018-01-09 02:04:58.000000000 +0000
@@ -7,7 +7,7 @@
    "b" to the string, indicating binary files, but some reject this
    (and thereby don't conform to ANSI C, but what else is new?).
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/fopen-vms.h ./include/fopen-vms.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/fopen-vms.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/fopen-vms.h	2018-01-09 02:04:58.000000000 +0000
@@ -5,7 +5,7 @@
    This version is for VMS systems, where text and binary files are
    different.
    
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gcc-c-fe.def ./include/gcc-c-fe.def
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gcc-c-fe.def	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gcc-c-fe.def	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Interface between GCC C FE and GDB  -*- c -*-
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GCC.
 
@@ -125,16 +125,18 @@ GCC_METHOD3 (gcc_type, build_function_ty
 	     const struct gcc_type_array *, /* Argument ARGUMENT_TYPES.  */
 	     int /* bool */)               /* Argument IS_VARARGS.  */
 
-/* Return an integer type with the given properties.  */
+/* Return an integer type with the given properties.
+   Deprecated in v1, use int_type instead.  */
 
-GCC_METHOD2 (gcc_type, int_type,
+GCC_METHOD2 (gcc_type, int_type_v0,
 	     int /* bool */,               /* Argument IS_UNSIGNED.  */
 	     unsigned long)                /* Argument SIZE_IN_BYTES.  */
 
-/* Return a floating point type with the given properties.  */
+/* Return a floating point type with the given properties.
+   Deprecated in v1, use float_type instead.  */
 
-GCC_METHOD1 (gcc_type, float_type,
-	     unsigned long)			/* Argument SIZE_IN_BYTES.  */
+GCC_METHOD1 (gcc_type, float_type_v0,
+	     unsigned long)                /* Argument SIZE_IN_BYTES.  */
 
 /* Return the 'void' type.  */
 
@@ -195,3 +197,26 @@ GCC_METHOD5 (int /* bool */, build_const
 
 GCC_METHOD1 (gcc_type, error,
 	     const char *)		 /* Argument MESSAGE.  */
+
+/* Return an integer type with the given properties.  If BUILTIN_NAME
+   is non-NULL, it must name a builtin integral type with the given
+   signedness and size, and that is the type that will be returned.  */
+
+GCC_METHOD3 (gcc_type, int_type,
+	     int /* bool */,               /* Argument IS_UNSIGNED.  */
+	     unsigned long,                /* Argument SIZE_IN_BYTES.  */
+	     const char *)		   /* Argument BUILTIN_NAME.  */
+
+/* Return the 'char' type, a distinct type from both 'signed char' and
+   'unsigned char' returned by int_type.  */
+
+GCC_METHOD0 (gcc_type, char_type)
+
+/* Return a floating point type with the given properties.  If BUILTIN_NAME
+   is non-NULL, it must name a builtin integral type with the given
+   signedness and size, and that is the type that will be returned.  */
+
+GCC_METHOD2 (gcc_type, float_type,
+	     unsigned long,                /* Argument SIZE_IN_BYTES.  */
+	     const char *)		   /* Argument BUILTIN_NAME.  */
+
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gcc-c-interface.h ./include/gcc-c-interface.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gcc-c-interface.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gcc-c-interface.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Interface between GCC C FE and GDB
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GCC.
 
@@ -41,7 +41,11 @@ struct gcc_c_context;
 
 enum gcc_c_api_version
 {
-  GCC_C_FE_VERSION_0 = 0
+  GCC_C_FE_VERSION_0 = 0,
+
+  /* Added char_type.  Added new version of int_type and float_type,
+     deprecated int_type_v0 and float_type_v0.  */
+  GCC_C_FE_VERSION_1 = 1
 };
 
 /* Qualifiers.  */
@@ -111,19 +115,6 @@ typedef gcc_address gcc_c_symbol_address
 						   struct gcc_c_context *ctxt,
 						   const char *identifier);
 
-/* An array of types used for creating a function type.  */
-
-struct gcc_type_array
-{
-  /* Number of elements.  */
-
-  int n_elements;
-
-  /* The elements.  */
-
-  gcc_type *elements;
-};
-
 /* The vtable used by the C front end.  */
 
 struct gcc_c_fe_vtable
@@ -146,7 +137,7 @@ struct gcc_c_fe_vtable
      provides the declaration.
 
      DATUM is an arbitrary piece of data that is passed back verbatim
-     to the callbakcs in requests.  */
+     to the callbacks in requests.  */
 
   void (*set_callbacks) (struct gcc_c_context *self,
 			 gcc_c_oracle_function *binding_oracle,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gcc-cp-fe.def ./include/gcc-cp-fe.def
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gcc-cp-fe.def	1970-01-01 00:00:00.000000000 +0000
+++ ./include/gcc-cp-fe.def	2018-01-09 02:04:58.000000000 +0000
@@ -0,0 +1,1050 @@
+/* Interface between GCC C++ FE and GDB  -*- c -*-
+
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
+
+   This file is part of GCC.
+
+   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/>.  */
+
+
+
+/* Push namespace NAME as the current binding level, to which
+   newly-introduced decls will be bound.  An empty string identifies
+   the global namespace, whereas NULL identifies an anonymous
+   namespace.  A namespace named NAME is created in the current scope,
+   if needed.
+
+   If the newly-created namespace is to be an inline namespace, see
+   make_namespace_inline.  */
+
+GCC_METHOD1 (int /* bool */, push_namespace,
+	     const char *)	      /* Argument NAME.  */
+
+/* Push TYPE as the current binding level, making its members visible
+   for name lookup.  The current scope before the call must be the
+   scope in which the class was declared.  This should be used if the
+   definition of a class is already finished, but one wishes to define
+   a nested class, or to enter the scope of one of its member
+   functions.  */
+
+GCC_METHOD1 (int /* bool */, push_class,
+	     gcc_type)		/* Argument TYPE.  */
+
+/* Push FUNCTION_DECL as the current (empty) binding level (see
+   reactivate_decl).  The current enclosing scope before the call must
+   be the scope in which the function was declared.  */
+
+GCC_METHOD1 (int /* bool */, push_function,
+	     gcc_decl)	     /* Argument FUNCTION_DECL.  */
+
+/* Make DECL visible (again?) within SCOPE.  When SCOPE is NULL, it
+   means the current scope; if it is not NULL, it must name a function
+   that is currently active, even if not at the top of the binding
+   chain.
+
+   This function can be used to make e.g. a global function or
+   variable visible in a namespace or local scope (overriding another
+   enclosing definition of the same name), but its most common
+   expected use of this primitive, that gives it its name, is to make
+   declarations visible again after reentering a function scope,
+   because when a function is entered with push_function, that does
+   NOT make any of the declarations nested in it visible for name
+   lookup.
+
+   There is a reason/excuse for that: unlike namespaces and classes,
+   G++ doesn't ever have to reenter function scopes, so its name
+   resolution infrastructure is not prepared to do that.  But wait,
+   there is also a good use for this apparent limitation: a function
+   may contain multiple scopes (blocks), and the name may be bound to
+   different symbols in each of these scopes.  With this interface, as
+   we reenter a function scope, we may choose which symbols to make
+   visible for the code snippet, or, if there could be template
+   functions in local scopes, for unresolved names in nested template
+   class default arguments, or in nested template function signatures.
+
+   As for making a local declaration visible for the code snippet,
+   there are two possibilities: a) introduce it upfront, while
+   entering the scope for the user expression (see the enter_scope
+   callback, called by g++ when encountering the push_user_expression
+   pragma), which might save some scope switching and reactivate_decl
+   (though this can't be helped if some declarations have to be
+   introduced and discarded, because of multiple definitions of the
+   same name in different scopes within a function: they have to be
+   defined in discriminator order); or b) introduce it when its name
+   is looked up, entering the scope, introducing the declaration,
+   leaving the scope, and then reactivating the declaration in its
+   local scope.
+
+   Here's some more detail on how reactivate_decl works.  Say there's
+   a function foo whose body looks like this:
+
+   {
+     {
+// point 1
+       class c {} o __attribute__ ((__used__)); // c  , o
+     }
+     struct c {
+       void f() {
+// point 2
+       }
+     } o __attribute__ ((__used__));            // c_0, o_0
+     {
+       class c {} p __attribute__ ((__used__)); // c_1, p
+// point 3
+       o.f();
+     }
+   }
+
+   When we are about to define class c at point 1, we enter the
+   function foo scope, and since no symbols are visible at point 1, we
+   proceed to declare class c.  We may then define the class right
+   away, or, if we leave the function scope, and we later wish to
+   define it, or to define object o, we can reenter the scope and just
+   use the previously-obtained gcc_decl to define the class, without
+   having to reactivate the declaration.
+
+   Now, if we are to set up the binding context for point 2, we have
+   to define c_0::f, and in order to do so, we have to declare and
+   define c_0.  Before we can declare c_0, we MUST at least declare c.
+
+     As a general rule, before we can declare or define any local name
+     with a discriminator, we have to at least declare any other
+     occurrences of the same name in the same enclosing entity with
+     lower or absent discriminator.
+
+   So, we declare c, then we leave the function scope and reenter it
+   so as to declare c_0 (also with name "c", which is why we have to
+   leave and reenter the function scope, otherwise we would get an
+   error because of the duplicate definition; g++ will assign a
+   discriminator because it still remembers there was an earlier
+   declaration of c_0 within the function, it's just no longer in
+   scope), then we can define c_0, including its member function f.
+
+   Likewise, if we wish to define o_0, we have to define o first.  If
+   we wish to declare (and maybe then define) c_1, we have to at least
+   declare (c and then) c_0 first.
+
+   Then, as we set up the binding context to compile a code snippet at
+   point 3, we may choose to activate c_1, o_0 and p upfront,
+   declaring and discarding c, c_0 and o, and then reentering the
+   funciton scope to declare c_1, o_0 and p; or we can wait for oracle
+   lookups of c, o or p.  If c is looked up, and the debugger resolves
+   c in the scope to c_1, it is expected to enter the function scope
+   from the top level, declare c, leave it, reenter it, declare c_0,
+   leave it, reenter it, declare c_1, leave it, and then reactivate
+   c_1 in the function scope.  If c_1 is needed as a complete type,
+   the definition may be given right after the declaration, or the
+   scope will have to be reentered in order to define the class.
+
+.  If the code snippet is at point 2, we don't need to (re)activate
+   any declaration: nothing from any local scope is visible.  Just
+   entering the scope of the class containing member function f
+   reactivates the names of its members, including the class name
+   itself.  */
+
+GCC_METHOD2 (int /* bool */, reactivate_decl,
+	     gcc_decl,		/* Argument DECL.  */
+	     gcc_decl)		/* Argument SCOPE.  */
+
+/* Pop the namespace last entered with push_namespace, or class last
+   entered with push_class, or function last entered with
+   push_function, restoring the binding level in effect before the
+   matching push_* call.  */
+
+GCC_METHOD0 (int /* bool */, pop_binding_level)
+
+/* Return the NAMESPACE_DECL, TYPE_DECL or FUNCTION_DECL of the
+   binding level that would be popped by pop_scope.  */
+
+GCC_METHOD0 (gcc_decl, get_current_binding_level_decl)
+
+/* Make the current binding level an inline namespace.  It must be a
+   namespace to begin with.  It is safe to call this more than once
+   for the same namespace, but after the first call, subsequent ones
+   will not return a success status.  */
+
+GCC_METHOD0 (int /* bool */, make_namespace_inline)
+
+/* Add USED_NS to the namespaces used by the current binding level.
+   Use get_current_binding_level_decl to obtain USED_NS's
+   gcc_decl.  */
+
+GCC_METHOD1 (int /* bool */, add_using_namespace,
+	     gcc_decl)			/* Argument USED_NS.  */
+
+/* Introduce a namespace alias declaration, as in:
+
+   namespace foo = [... ::] bar;
+
+   After this call, namespace TARGET will be visible as ALIAS within
+   the current namespace.  Get the declaration for TARGET by calling
+   get_current_binding_level_decl after pushing into it.  */
+
+GCC_METHOD2 (int /* bool */, add_namespace_alias,
+	     const char *,		/* Argument ALIAS.  */
+	     gcc_decl)			/* Argument TARGET.  */
+
+/* Introduce a using declaration, as in:
+
+   using foo::bar;
+
+   The TARGET decl names the qualifying scope (foo:: above) and the
+   identifier (bar), but that does not mean that only TARGET will be
+   brought into the current scope: all bindings of TARGET's identifier
+   in the qualifying scope will be brought in.
+
+   FLAGS should specify GCC_CP_SYMBOL_USING.  If the current scope is
+   a class scope, visibility flags must be supplied.
+
+   Even when TARGET is template dependent, we don't need to specify
+   whether or not it is a typename: the supplied declaration (that
+   could be a template-dependent type converted to declaration by
+   get_type_decl) indicates so.  */
+
+GCC_METHOD2 (int /* bool */, add_using_decl,
+	     enum gcc_cp_symbol_kind, /* Argument FLAGS.  */
+	     gcc_decl)		      /* Argument TARGET.  */
+
+/* Create a new "decl" in GCC, and bind it in the current binding
+   level.  A decl is a declaration, basically a kind of symbol.
+
+   NAME is the name of the new symbol.  SYM_KIND is the kind of
+   symbol being requested.  SYM_TYPE is the new symbol's C++ type;
+   except for labels, where this is not meaningful and should be
+   zero.  If SUBSTITUTION_NAME is not NULL, then a reference to this
+   decl in the source will later be substituted with a dereference
+   of a variable of the given name.  Otherwise, for symbols having
+   an address (e.g., functions), ADDRESS is the address.  FILENAME
+   and LINE_NUMBER refer to the symbol's source location.  If this
+   is not known, FILENAME can be NULL and LINE_NUMBER can be 0.
+   This function returns the new decl.
+
+   Use this function to register typedefs, functions and variables to
+   namespace and local binding levels, and typedefs, member functions
+   (static or not), and static data members to class binding levels.
+   Class members must have their access controls specified with
+   GCC_CP_ACCESS_* flags in SYM_KIND.
+
+   Note that, since access controls are disabled, we have no means to
+   express private, protected and public.
+
+   There are various flags that can be set in SYM_KIND to specify
+   additional semantics.  Look for GCC_CP_FLAGs in the definition of
+   enum gcc_cp_symbol_kind in gcc-cp-interface.h.
+
+   In order to define member functions, pass GCC_CP_SYMBOL_FUNCTION in
+   SYM_KIND, and a function_type for static member functions or a
+   method type for non-static member functions, including constructors
+   and destructors.  Use build_function_type to create a function
+   type; for a method type, start by creating a function type without
+   any compiler-introduced artificial arguments (the implicit this
+   pointer, and the __in_chrg added to constructors and destructors,
+   and __vtt_parm added to the former), and then use build_method_type
+   to create the method type out of the class type and the function
+   type.
+
+   For operator functions, set GCC_CP_FLAG_SPECIAL_FUNCTION in
+   SYM_KIND, in addition to any other applicable flags, and pass as
+   NAME a string starting with the two-character mangling for operator
+   name: "ps" for unary plus, "mL" for multiply and assign, *=; etc.
+   Use "cv" for type converstion operators (the target type portion
+   may be omitted, as it is taken from the return type in SYM_TYPE).
+   For operator"", use "li" followed by the identifier (the mangled
+   name mandates digits specifying the length of the identifier; if
+   present, they determine the end of the identifier, otherwise, the
+   identifier extents to the end of the string, so that "li3_Kme" and
+   "li_Km" are equivalent).
+
+   Constructors and destructors need special care, because for each
+   constructor and destructor there may be multiple clones defined
+   internally by the compiler.  With build_decl, you can introduce the
+   base declaration of a constructor or a destructor, setting
+   GCC_CP_FLAG_SPECIAL_FUNCTION the flag and using names starting with
+   capital "C" or "D", respectively, followed by a digit (see below),
+   a blank, or NUL ('\0').  DO NOT supply an ADDRESS or a
+   SUBSTITUTION_NAME to build_decl, it would be meaningless (and
+   rejected) for the base declaration; use define_cdtor_clone to
+   introduce the address of each clone.  For constructor templates,
+   declare the template with build_decl, and then, for each
+   specialization, introduce it with
+   build_function_template_specialization, and then define the
+   addresses of each of its clones with define_cdtor_clone.
+
+   NAMEs for GCC_CP_FLAG_SPECIAL_FUNCTION:
+
+     NAME    meaning
+     C?      constructor base declaration (? may be 1, 2, 4, blank or NUL)
+     D?      destructor base declaration (? may be 0, 1, 2, 4, blank or NUL)
+     nw      operator new
+     na      operator new[]
+     dl      operator delete
+     da      operator delete[]
+     ps      operator + (unary)
+     ng      operator - (unary)
+     ad      operator & (unary)
+     de      operator * (unary)
+     co      operator ~
+     pl      operator +
+     mi      operator -
+     ml      operator *
+     dv      operator /
+     rm      operator %
+     an      operator &
+     or      operator |
+     eo      operator ^
+     aS      operator =
+     pL      operator +=
+     mI      operator -=
+     mL      operator *=
+     dV      operator /=
+     rM      operator %=
+     aN      operator &=
+     oR      operator |=
+     eO      operator ^=
+     ls      operator <<
+     rs      operator >>
+     lS      operator <<=
+     rS      operator >>=
+     eq      operator ==
+     ne      operator !=
+     lt      operator <
+     gt      operator >
+     le      operator <=
+     ge      operator >=
+     nt      operator !
+     aa      operator &&
+     oo      operator ||
+     pp      operator ++
+     mm      operator --
+     cm      operator ,
+     pm      operator ->*
+     pt      operator ->
+     cl      operator ()
+     ix      operator []
+     qu      operator ?
+     cv      operator <T> (conversion operator)
+     li<id>  operator "" <id>
+
+   FIXME: How about attributes?  */
+
+GCC_METHOD7 (gcc_decl, build_decl,
+	     const char *,	      /* Argument NAME.  */
+	     enum gcc_cp_symbol_kind, /* Argument SYM_KIND.  */
+	     gcc_type,		      /* Argument SYM_TYPE.  */
+	     const char *,	      /* Argument SUBSTITUTION_NAME.  */
+	     gcc_address,	      /* Argument ADDRESS.  */
+	     const char *,	      /* Argument FILENAME.  */
+	     unsigned int)	      /* Argument LINE_NUMBER.  */
+
+/* Supply the ADDRESS of one of the multiple clones of constructor or
+   destructor CDTOR.  The clone is specified by NAME, using the
+   following name mangling conventions:
+
+     C1      in-charge constructor
+     C2      not-in-charge constructor
+     C4      unified constructor
+     D0      deleting destructor
+     D1      in-charge destructor
+     D2      not-in-charge destructor
+     D4      unified destructor
+
+   The following information is not necessary to use the API.
+
+   C1 initializes an instance of the class (rather than of derived
+   classes), including virtual base classes, whereas C2 initializes a
+   sub-object (of the given class type) of an instance of some derived
+   class (or a full object that doesn't have any virtual base
+   classes).
+
+   D0 and D1 destruct an instance of the class, including virtual base
+   classes, but only the former calls operator delete to release the
+   object's storage at the end; D2 destructs a sub-object (of the
+   given class type) of an instance of a derived class (or a full
+   object that doesn't have any virtual base classes).
+
+   The [CD]4 manglings (and symbol definitions) are non-standard, but
+   GCC uses them in some cases: rather than assuming they are
+   in-charge or not-in-charge, they test the implicit argument that
+   the others ignore to tell how to behave.  These are used instead of
+   cloning when we just can't use aliases.  */
+
+GCC_METHOD3 (gcc_decl, define_cdtor_clone,
+	     const char *,	      /* Argument NAME.  */
+	     gcc_decl,		      /* Argument CDTOR.  */
+	     gcc_address)	      /* Argument ADDRESS.  */
+
+/* Return the type associated with the given declaration.  This is
+   most useful to obtain the type associated with a forward-declared
+   class, because it is the gcc_type, rather than the gcc_decl, that
+   has to be used to build other types, but build_decl returns a
+   gcc_decl rather than a gcc_type.  This call can in theory be used
+   to obtain the type from any other declaration; it is supposed to
+   return the same type that was supplied when the declaration was
+   created.  */
+
+GCC_METHOD1 (gcc_type, get_decl_type,
+	     gcc_decl)            /* Argument DECL.  */
+
+/* Return the declaration for a type.  */
+
+GCC_METHOD1 (gcc_decl, get_type_decl,
+	     gcc_type)            /* Argument TYPE.  */
+
+/* Declare DECL as a friend of the current class scope, if TYPE is
+   NULL, or of TYPE itself otherwise.  DECL may be a function or a
+   class, be they template generics, template specializations or not
+   templates.  TYPE must be a class type (not a template generic).
+
+   The add_friend call cannot introduce a declaration; even if the
+   friend is first declared as a friend in the source code, the
+   declaration belongs in the enclosing namespace, so it must be
+   introduced in that namespace, and the resulting declaration can
+   then be made a friend.
+
+   DECL cannot, however, be a member of a template class generic,
+   because we have no means to introduce their declarations.  This
+   interface has no notion of definitions for template generics.  As a
+   consequence, users of this interface must introduce each friend
+   template member specialization separately, i.e., instead of:
+
+     template <typename T> friend struct X<T>::M;
+
+   they must be declared as if they were:
+
+     friend struct X<onetype>::M;
+     friend struct X<anothertype>::M;
+     ... for each specialization of X.
+
+
+   Specializations of a template can have each others' members as
+   friends:
+
+     template <typename T> class foo {
+       int f();
+       template <typename U> friend int foo<U>::f();
+     };
+
+   It wouldn't always be possible to define all specializations of a
+   template class before introducing the friend declarations in their
+   expanded, per-specialization form.
+
+   In order to simplify such friend declarations, and to enable
+   incremental friend declarations as template specializations are
+   introduced, add_friend can be called after the befriending class is
+   fully defined, passing it a non-NULL TYPE argument naming the
+   befriending class type.  */
+
+GCC_METHOD2 (int /* bool */, add_friend,
+	     gcc_decl,		      /* Argument DECL.  */
+	     gcc_type)		      /* Argument TYPE.  */
+
+/* Return the type of a pointer to a given base type.  */
+
+GCC_METHOD1 (gcc_type, build_pointer_type,
+	     gcc_type)			/* Argument BASE_TYPE.  */
+
+/* Return the type of a reference to a given base type.  */
+
+GCC_METHOD2 (gcc_type, build_reference_type,
+	     gcc_type,			/* Argument BASE_TYPE.  */
+	     enum gcc_cp_ref_qualifiers)   /* Argument RQUALS.  */
+
+/* Create a new pointer-to-member type.  MEMBER_TYPE is the data
+   member type, while CLASS_TYPE is the class type containing the data
+   member.  For pointers to member functions, MEMBER_TYPE must be a
+   method type, and CLASS_TYPE must be specified even though it might
+   be possible to extract it from the method type.  */
+
+GCC_METHOD2 (gcc_type, build_pointer_to_member_type,
+	     gcc_type,			   /* Argument CLASS_TYPE.  */
+	     gcc_type) 			   /* Argument MEMBER_TYPE.  */
+
+/* Start a template parameter list scope and enters it, so that
+   subsequent build_type_template_parameter and
+   build_value_template_parameter calls create template parameters in
+   the list.  The list is closed by a build_decl call with
+   GCC_CP_SYMBOL_FUNCTION or GCC_CP_SYMBOL_CLASS, that, when the scope
+   is a template parameter list, declares a template function or a
+   template class with the then-closed parameter list.  The scope in
+   which the new declaration is to be introduced by build_decl must be
+   entered before calling start_template_decl, and build_decl returns
+   to that scope, from the template parameter list scope, before
+   introducing the declaration.  */
+
+GCC_METHOD0 (int /* bool */, start_template_decl)
+
+/* Build a typename template-parameter (e.g., the T in template
+   <typename T = X>).  Either PACK_P should be nonzero, to indicate an
+   argument pack (the last argument in a variadic template argument
+   list, as in template <typename... T>), or DEFAULT_TYPE may be
+   non-NULL to set the default type argument (e.g. X) for the template
+   parameter.  FILENAME and LINE_NUMBER may specify the source
+   location in which the template parameter was declared.  */
+
+GCC_METHOD5 (gcc_type, build_type_template_parameter,
+	     const char *,			      /* Argument ID.  */
+	     int /* bool */,			  /* Argument PACK_P.  */
+	     gcc_type,			    /* Argument DEFAULT_TYPE.  */
+	     const char *,			/* Argument FILENAME.  */
+	     unsigned int)		     /* Argument LINE_NUMBER.  */
+
+/* Build a template template-parameter (e.g., the T in template
+   <template <[...]> class T = X>).  DEFAULT_TEMPL may be non-NULL to
+   set the default type-template argument (e.g. X) for the template
+   template parameter.  FILENAME and LINE_NUMBER may specify the
+   source location in which the template parameter was declared.  */
+
+GCC_METHOD5 (gcc_utempl, build_template_template_parameter,
+	     const char *,			      /* Argument ID.  */
+	     int /* bool */,			  /* Argument PACK_P.  */
+	     gcc_utempl,		   /* Argument DEFAULT_TEMPL.  */
+	     const char *,			/* Argument FILENAME.  */
+	     unsigned int)		     /* Argument LINE_NUMBER.  */
+
+/* Build a value template-parameter (e.g., the V in template <typename
+   T, T V> or in template <int V = X>).  DEFAULT_VALUE may be non-NULL
+   to set the default value argument for the template parameter (e.g.,
+   X).  FILENAME and LINE_NUMBER may specify the source location in
+   which the template parameter was declared.  */
+
+GCC_METHOD5 (gcc_decl, build_value_template_parameter,
+	     gcc_type,			  	    /* Argument TYPE.  */
+	     const char *,			      /* Argument ID.  */
+	     gcc_expr,			   /* Argument DEFAULT_VALUE.  */
+	     const char *,			/* Argument FILENAME.  */
+	     unsigned int)		     /* Argument LINE_NUMBER.  */
+
+/* Build a template-dependent typename (e.g., typename T::bar or
+   typename T::template bart<X>).  ENCLOSING_TYPE should be the
+   template-dependent nested name specifier (e.g., T), ID should be
+   the name of the member of the ENCLOSING_TYPE (e.g., bar or bart),
+   and TARGS should be non-NULL and specify the template arguments
+   (e.g. <X>) iff ID is to name a class template.
+
+   In this and other calls, a template-dependent nested name specifier
+   may be a template class parameter (build_type_template_parameter),
+   a specialization (returned by build_dependent_type_template_id) of
+   a template template parameter (returned by
+   build_template_template_parameter) or a member type thereof
+   (returned by build_dependent_typename itself).  */
+
+GCC_METHOD3 (gcc_type, build_dependent_typename,
+	     gcc_type,			  /* Argument ENCLOSING_TYPE.  */
+	     const char *,			      /* Argument ID.  */
+	     const struct gcc_cp_template_args *)  /* Argument TARGS.  */
+
+/* Build a template-dependent class template (e.g., T::template bart).
+   ENCLOSING_TYPE should be the template-dependent nested name
+   specifier (e.g., T), ID should be the name of the class template
+   member of the ENCLOSING_TYPE (e.g., bart).  */
+
+GCC_METHOD2 (gcc_utempl, build_dependent_class_template,
+	     gcc_type,			  /* Argument ENCLOSING_TYPE.  */
+	     const char *)			      /* Argument ID.  */
+
+/* Build a template-dependent type template-id (e.g., T<A>).
+   TEMPLATE_DECL should be a template template parameter (e.g., the T
+   in template <template <[...]> class T = X>), and TARGS should
+   specify the template arguments (e.g. <A>).  */
+
+GCC_METHOD2 (gcc_type, build_dependent_type_template_id,
+	     gcc_utempl,		   /* Argument TEMPLATE_DECL.  */
+	     const struct gcc_cp_template_args *)  /* Argument TARGS.  */
+
+/* Build a template-dependent expression (e.g., S::val or S::template
+   mtf<X>, or unqualified f or template tf<X>).
+
+   ENCLOSING_SCOPE should be a template-dependent nested name
+   specifier (e.g., T), a resolved namespace or class decl, or NULL
+   for unqualified names; ID should be the name of the member of the
+   ENCLOSING_SCOPE (e.g., val or mtf) or unqualified overloaded
+   function; and TARGS should list template arguments (e.g. <X>) when
+   mtf or tf are to name a template function, or be NULL otherwise.
+
+   Unqualified names and namespace- or class-qualified names can only
+   resolve to overloaded functions, to be used in contexts that
+   involve overload resolution that cannot be resolved because of
+   template-dependent argument or return types, such as call
+   expressions with template-dependent arguments, conversion
+   expressions to function types with template-dependent argument
+   types or the like.  Other cases of unqualified or
+   non-template-dependent-qualified names should NOT use this
+   function, and use decl_expr to convert the appropriate function or
+   object declaration to an expression.
+
+   If ID is the name of a special member function, FLAGS should be
+   GCC_CP_SYMBOL_FUNCTION|GCC_CP_FLAG_SPECIAL_FUNCTION, and ID should
+   be one of the encodings for special member functions documented in
+   build_decl.  Otherwise, FLAGS should be GCC_CP_SYMBOL_MASK, which
+   suggests the symbol kind is not known (though we know it is not a
+   type).
+
+   If ID denotes a conversion operator, CONV_TYPE should name the
+   target type of the conversion.  Otherwise, CONV_TYPE must be
+   NULL.  */
+
+GCC_METHOD5 (gcc_expr, build_dependent_expr,
+	     gcc_decl,			 /* Argument ENCLOSING_SCOPE.  */
+	     enum gcc_cp_symbol_kind,		   /* Argument FLAGS.  */
+	     const char *,			    /* Argument NAME.  */
+	     gcc_type,			       /* Argument CONV_TYPE.  */
+	     const struct gcc_cp_template_args *)  /* Argument TARGS.  */
+
+/* Build a gcc_expr for the value VALUE in type TYPE.  */
+
+GCC_METHOD2 (gcc_expr, build_literal_expr,
+	     gcc_type,		  /* Argument TYPE.  */
+	     unsigned long)	  /* Argument VALUE.  */
+
+/* Build a gcc_expr that denotes DECL, the declaration of a variable
+   or function in namespace scope, or of a static member variable or
+   function.  Use QUALIFIED_P to build the operand of unary & so as to
+   compute a pointer-to-member, rather than a regular pointer.  */
+
+GCC_METHOD2 (gcc_expr, build_decl_expr,
+	     gcc_decl,			/* Argument DECL.  */
+	     int /* bool */)		/* Argument QUALIFIED_P.  */
+
+/* Build a gcc_expr that denotes the unary operation UNARY_OP applied
+   to the gcc_expr OPERAND.  For non-expr operands, see
+   unary_type_expr.  Besides the UNARY_OP encodings used for operator
+   names, we support "pp_" for preincrement, and "mm_" for
+   predecrement, "nx" for noexcept, "tw" for throw, "tr" for rethrow
+   (pass NULL as the operand), "te" for typeid, "sz" for sizeof, "az"
+   for alignof, "dl" for delete, "gsdl" for ::delete, "da" for
+   delete[], "gsda" for ::delete[], "sp" for pack expansion, "sZ" for
+   sizeof...(function argument pack).  */
+
+GCC_METHOD2 (gcc_expr, build_unary_expr,
+	     const char *,	  /* Argument UNARY_OP.  */
+	     gcc_expr)		  /* Argument OPERAND.  */
+
+/* Build a gcc_expr that denotes the binary operation BINARY_OP
+   applied to gcc_exprs OPERAND1 and OPERAND2.  Besides the BINARY_OP
+   encodings used for operator names, we support "ds" for the operator
+   token ".*" and "dt" for the operator token ".".  When using
+   operators that take a name as their second operand ("." and "->")
+   use decl_expr to convert the gcc_decl of the member name to a
+   gcc_expr, if the member name wasn't created with
+   e.g. build_dependent_expr.  */
+
+GCC_METHOD3 (gcc_expr, build_binary_expr,
+	     const char *,	  /* Argument BINARY_OP.  */
+	     gcc_expr,		  /* Argument OPERAND1.  */
+	     gcc_expr)		  /* Argument OPERAND2.  */
+
+/* Build a gcc_expr that denotes the ternary operation TERNARY_OP
+   applied to gcc_exprs OPERAND1, OPERAND2 and OPERAND3.  The only
+   supported TERNARY_OP is "qu", for the "?:" operator.  */
+
+GCC_METHOD4 (gcc_expr, build_ternary_expr,
+	     const char *,	  /* Argument TERNARY_OP.  */
+	     gcc_expr,		  /* Argument OPERAND1.  */
+	     gcc_expr,		  /* Argument OPERAND2.  */
+	     gcc_expr)		  /* Argument OPERAND3.  */
+
+/* Build a gcc_expr that denotes the unary operation UNARY_OP applied
+   to the gcc_type OPERAND.  Supported unary operations taking types
+   are "ti" for typeid, "st" for sizeof, "at" for alignof, and "sZ"
+   for sizeof...(template argument pack).  */
+
+GCC_METHOD2 (gcc_expr, build_unary_type_expr,
+	     const char *,	  /* Argument UNARY_OP.  */
+	     gcc_type)		  /* Argument OPERAND.  */
+
+/* Build a gcc_expr that denotes the binary operation BINARY_OP
+   applied to gcc_type OPERAND1 and gcc_expr OPERAND2.  Use this for
+   all kinds of (single-argument) type casts ("dc", "sc", "cc", "rc"
+   for dynamic, static, const and reinterpret casts, respectively;
+   "cv" for functional or C-style casts).  */
+
+GCC_METHOD3 (gcc_expr, build_cast_expr,
+	     const char *,	  /* Argument BINARY_OP.  */
+	     gcc_type,		  /* Argument OPERAND1.  */
+	     gcc_expr)		  /* Argument OPERAND2.  */
+
+/* Build a gcc_expr that denotes the conversion of an expression list
+   VALUES to TYPE, with ("tl") or without ("cv") braces, or a braced
+   initializer list of unspecified type (e.g., a component of another
+   braced initializer list; pass "il" for CONV_OP, and NULL for
+   TYPE).  */
+
+GCC_METHOD3 (gcc_expr, build_expression_list_expr,
+	     const char *,			 /* Argument CONV_OP.  */
+	     gcc_type,				    /* Argument TYPE.  */
+	     const struct gcc_cp_function_args *) /* Argument VALUES.  */
+
+/* Build a gcc_expr that denotes a new ("nw") or new[] ("na")
+   expression of TYPE, with or without a GLOBAL_NS qualifier (prefix
+   the NEW_OP with "gs"), with or without PLACEMENT, with or without
+   INITIALIZER.  If it's not a placement new, PLACEMENT must be NULL
+   (rather than a zero-length placement arg list).  If there's no
+   specified initializer, INITIALIZER must be NULL; a zero-length arg
+   list stands for a default initializer.  */
+
+GCC_METHOD4 (gcc_expr, build_new_expr,
+	     const char *,			       /* Argument NEW_OP.  */
+	     const struct gcc_cp_function_args *,   /* Argument PLACEMENT.  */
+	     gcc_type,					 /* Argument TYPE.  */
+	     const struct gcc_cp_function_args *) /* Argument INITIALIZER.  */
+
+/* Return a call expression that calls CALLABLE with arguments ARGS.
+   CALLABLE may be a function, a callable object, a pointer to
+   function, an unresolved expression, an unresolved overload set, an
+   object expression combined with a member function overload set or a
+   pointer-to-member.  If QUALIFIED_P, CALLABLE will be interpreted as
+   a qualified name, preventing virtual function dispatch.  */
+
+GCC_METHOD3 (gcc_expr, build_call_expr,
+	     gcc_expr,			      /* Argument CALLABLE.  */
+	     int /* bool */,		   /* Argument QUALIFIED_P.  */
+	     const struct gcc_cp_function_args *) /* Argument ARGS.  */
+
+/* Return the type of the gcc_expr OPERAND.
+   Use this for decltype.
+   For decltype (auto), pass a NULL OPERAND.
+
+   Note: for template-dependent expressions, the result is NULL,
+   because the type is only computed when template argument
+   substitution is performed.  */
+
+GCC_METHOD1 (gcc_type, get_expr_type,
+	     gcc_expr)		  /* Argument OPERAND.  */
+
+/* Introduce a specialization of a template function.
+
+   TEMPLATE_DECL is the template function, and TARGS are the arguments
+   for the specialization.  ADDRESS is the address of the
+   specialization.  FILENAME and LINE_NUMBER specify the source
+   location associated with the template function specialization.  */
+
+GCC_METHOD5 (gcc_decl, build_function_template_specialization,
+	     gcc_decl,			   /* Argument TEMPLATE_DECL.  */
+	     const struct gcc_cp_template_args *,  /* Argument TARGS.  */
+	     gcc_address,			 /* Argument ADDRESS.  */
+	     const char *,	      /* Argument FILENAME.  */
+	     unsigned int)	      /* Argument LINE_NUMBER.  */
+
+/* Specialize a template class as an incomplete type.  A definition
+   can be supplied later, with start_class_type.
+
+   TEMPLATE_DECL is the template class, and TARGS are the arguments
+   for the specialization.  FILENAME and LINE_NUMBER specify the
+   source location associated with the template class
+   specialization.  */
+
+GCC_METHOD4 (gcc_decl, build_class_template_specialization,
+	     gcc_decl,			   /* Argument TEMPLATE_DECL.  */
+	     const struct gcc_cp_template_args *,  /* Argument TARGS.  */
+	     const char *,	      /* Argument FILENAME.  */
+	     unsigned int)	      /* Argument LINE_NUMBER.  */
+
+/* Start defining a 'class', 'struct' or 'union' type, entering its
+   own binding level.  Initially it has no fields.
+
+   TYPEDECL is the forward-declaration of the type, returned by
+   build_decl.  BASE_CLASSES indicate the base classes of class NAME.
+   FILENAME and LINE_NUMBER specify the source location associated
+   with the class definition, should they be different from those of
+   the forward declaration.  */
+
+GCC_METHOD4 (gcc_type, start_class_type,
+	     gcc_decl,		      /* Argument TYPEDECL.  */
+	     const struct gcc_vbase_array *,/* Argument BASE_CLASSES.  */
+	     const char *,	      /* Argument FILENAME.  */
+	     unsigned int)	      /* Argument LINE_NUMBER.  */
+
+/* Create a new closure class type, record it as the
+   DISCRIMINATOR-numbered closure type in the current scope (or
+   associated with EXTRA_SCOPE, if non-NULL), and enter the closure
+   type's own binding level.  This primitive would sort of combine
+   build_decl and start_class_type, if they could be used to introduce
+   a closure type.  Initially it has no fields.
+
+   FILENAME and LINE_NUMBER specify the source location associated
+   with the class.  EXTRA_SCOPE, if non-NULL, must be a PARM_DECL of
+   the current function, or a FIELD_DECL of the current class.  If it
+   is NULL, the current scope must be a function.  */
+
+GCC_METHOD5 (gcc_type, start_closure_class_type,
+	     int,		      /* Argument DISCRIMINATOR.  */
+	     gcc_decl,		      /* Argument EXTRA_SCOPE.  */
+	     enum gcc_cp_symbol_kind, /* Argument FLAGS.  */
+	     const char *,	      /* Argument FILENAME.  */
+	     unsigned int)	      /* Argument LINE_NUMBER.  */
+
+/* Add a non-static data member to the most-recently-started
+   unfinished struct or union type.  FIELD_NAME is the field's name.
+   FIELD_TYPE is the type of the field.  BITSIZE and BITPOS indicate
+   where in the struct the field occurs.  */
+
+GCC_METHOD5 (gcc_decl, build_field,
+	     const char *,		   /* Argument FIELD_NAME.  */
+	     gcc_type,			   /* Argument FIELD_TYPE.  */
+	     enum gcc_cp_symbol_kind,	   /* Argument FIELD_FLAGS.  */
+	     unsigned long,		   /* Argument BITSIZE.  */
+	     unsigned long)		   /* Argument BITPOS.  */
+
+/* After all the fields have been added to a struct, class or union,
+   the struct or union type must be "finished".  This does some final
+   cleanups in GCC, and pops to the binding level that was in effect
+   before the matching start_class_type or
+   start_closure_class_type.  */
+
+GCC_METHOD1 (int /* bool */, finish_class_type,
+	     unsigned long)		   /* Argument SIZE_IN_BYTES.  */
+
+/* Create a new 'enum' type, and record it in the current binding
+   level.  The new type initially has no associated constants.
+
+   NAME is the enum name.  FILENAME and LINE_NUMBER specify its source
+   location.  */
+
+GCC_METHOD5 (gcc_type, start_enum_type,
+	     const char *,	      /* Argument NAME.  */
+	     gcc_type,		      /* Argument UNDERLYING_INT_TYPE. */
+	     enum gcc_cp_symbol_kind, /* Argument FLAGS.  */
+	     const char *,	      /* Argument FILENAME.  */
+	     unsigned int)	      /* Argument LINE_NUMBER.  */
+
+/* Add a new constant to an enum type.  NAME is the constant's name
+   and VALUE is its value.  Returns a gcc_decl for the constant.  */
+
+GCC_METHOD3 (gcc_decl, build_enum_constant,
+	     gcc_type,		       /* Argument ENUM_TYPE.  */
+	     const char *,	       /* Argument NAME.  */
+	     unsigned long)	       /* Argument VALUE.  */
+
+/* After all the constants have been added to an enum, the type must
+   be "finished".  This does some final cleanups in GCC.  */
+
+GCC_METHOD1 (int /* bool */, finish_enum_type,
+	     gcc_type)		       /* Argument ENUM_TYPE.  */
+
+/* Create a new function type.  RETURN_TYPE is the type returned by
+   the function, and ARGUMENT_TYPES is a vector, of length NARGS, of
+   the argument types.  IS_VARARGS is true if the function is
+   varargs.  */
+
+GCC_METHOD3 (gcc_type, build_function_type,
+	     gcc_type,			   /* Argument RETURN_TYPE.  */
+	     const struct gcc_type_array *,/* Argument ARGUMENT_TYPES.  */
+	     int /* bool */)		   /* Argument IS_VARARGS.  */
+
+/* Create a variant of a function type with an exception
+   specification.  FUNCTION_TYPE is a function or method type.
+   EXCEPT_TYPES is an array with the list of exception types.  Zero as
+   the array length implies throw() AKA noexcept(true); NULL as the
+   pointer to gcc_type_array implies noexcept(false), which is almost
+   equivalent (but distinguishable by the compiler) to an unspecified
+   exception list.  */
+
+GCC_METHOD2 (gcc_type, build_exception_spec_variant,
+	     gcc_type,			   /* Argument FUNCTION_TYPE.  */
+	     const struct gcc_type_array *)/* Argument EXCEPT_TYPES.  */
+
+/* Create a new non-static member function type.  FUNC_TYPE is the
+   method prototype, without the implicit THIS pointer, added as a
+   pointer to the QUALS-qualified CLASS_TYPE.  If CLASS_TYPE is NULL,
+   this creates a cv-qualified (member) function type not associated
+   with any specific class, as needed to support "typedef void f(int)
+   const;", which can later be used to declare member functions and
+   pointers to member functions.  */
+
+GCC_METHOD4 (gcc_type, build_method_type,
+	     gcc_type,			   /* Argument CLASS_TYPE.  */
+	     gcc_type, 			   /* Argument FUNC_TYPE.  */
+	     enum gcc_cp_qualifiers,	   /* Argument QUALS.  */
+	     enum gcc_cp_ref_qualifiers)   /* Argument RQUALS.  */
+
+/* Return a declaration for the (INDEX - 1)th argument of
+   FUNCTION_DECL, i.e., for the first argument, use zero as the index.
+   If FUNCTION_DECL is a non-static member function, use -1 to get the
+   implicit THIS parameter.  */
+
+GCC_METHOD2 (gcc_decl, get_function_parameter_decl,
+	     gcc_decl,			     /* Argument FUNCTION_DECL.  */
+	     int)				     /* Argument INDEX.  */
+
+/* Return a lambda expr that constructs an instance of CLOSURE_TYPE.
+   Only lambda exprs without any captures can be correctly created
+   through these mechanisms; that's all we need to support lambdas
+   expressions in default parameters, the only kind that may have to
+   be introduced through this interface.  */
+
+GCC_METHOD1 (gcc_expr, build_lambda_expr,
+	     gcc_type)			      /* Argument CLOSURE_TYPE.  */
+
+/* Return an integer type with the given properties.  If BUILTIN_NAME
+   is non-NULL, it must name a builtin integral type with the given
+   signedness and size, and that is the type that will be returned.  */
+
+GCC_METHOD3 (gcc_type, get_int_type,
+	     int /* bool */,		   /* Argument IS_UNSIGNED.  */
+	     unsigned long,                /* Argument SIZE_IN_BYTES.  */
+	     const char *)		   /* Argument BUILTIN_NAME.  */
+
+/* Return the 'char' type, a distinct type from both 'signed char' and
+   'unsigned char' returned by int_type.  */
+
+GCC_METHOD0 (gcc_type, get_char_type)
+
+/* Return a floating point type with the given properties.  If BUILTIN_NAME
+   is non-NULL, it must name a builtin integral type with the given
+   signedness and size, and that is the type that will be returned.  */
+
+GCC_METHOD2 (gcc_type, get_float_type,
+	     unsigned long,                /* Argument SIZE_IN_BYTES.  */
+	     const char *)		   /* Argument BUILTIN_NAME.  */
+
+/* Return the 'void' type.  */
+
+GCC_METHOD0 (gcc_type, get_void_type)
+
+/* Return the 'bool' type.  */
+
+GCC_METHOD0 (gcc_type, get_bool_type)
+
+/* Return the std::nullptr_t type.  */
+
+GCC_METHOD0 (gcc_type, get_nullptr_type)
+
+/* Return the nullptr constant.  */
+
+GCC_METHOD0 (gcc_expr, get_nullptr_constant)
+
+/* Create a new array type.  If NUM_ELEMENTS is -1, then the array
+   is assumed to have an unknown length.  */
+
+GCC_METHOD2 (gcc_type, build_array_type,
+	     gcc_type,			  /* Argument ELEMENT_TYPE.  */
+	     int)			  /* Argument NUM_ELEMENTS.  */
+
+/* Create a new array type.  NUM_ELEMENTS is a template-dependent
+   expression.  */
+
+GCC_METHOD2 (gcc_type, build_dependent_array_type,
+	     gcc_type,			  /* Argument ELEMENT_TYPE.  */
+	     gcc_expr)			  /* Argument NUM_ELEMENTS.  */
+
+/* Create a new variably-sized array type.  UPPER_BOUND_NAME is the
+   name of a local variable that holds the upper bound of the array;
+   it is one less than the array size.  */
+
+GCC_METHOD2 (gcc_type, build_vla_array_type,
+	     gcc_type,			  /* Argument ELEMENT_TYPE.  */
+	     const char *)		  /* Argument UPPER_BOUND_NAME.  */
+
+/* Return a qualified variant of a given base type.  QUALIFIERS says
+   which qualifiers to use; it is composed of or'd together
+   constants from 'enum gcc_cp_qualifiers'.  */
+
+GCC_METHOD2 (gcc_type, build_qualified_type,
+	     gcc_type,			      /* Argument UNQUALIFIED_TYPE.  */
+	     enum gcc_cp_qualifiers)	      /* Argument QUALIFIERS.  */
+
+/* Build a complex type given its element type.  */
+
+GCC_METHOD1 (gcc_type, build_complex_type,
+	     gcc_type)			  /* Argument ELEMENT_TYPE.  */
+
+/* Build a vector type given its element type and number of
+   elements.  */
+
+GCC_METHOD2 (gcc_type, build_vector_type,
+	     gcc_type,			  /* Argument ELEMENT_TYPE.  */
+	     int)			  /* Argument NUM_ELEMENTS.  */
+
+/* Build a constant.  NAME is the constant's name and VALUE is its
+   value.  FILENAME and LINE_NUMBER refer to the type's source
+   location.  If this is not known, FILENAME can be NULL and
+   LINE_NUMBER can be 0.  */
+
+GCC_METHOD5 (int /* bool */, build_constant,
+	     gcc_type,		  /* Argument TYPE.  */
+	     const char *,	  /* Argument NAME.  */
+	     unsigned long,	  /* Argument VALUE.  */
+	     const char *,	  /* Argument FILENAME.  */
+	     unsigned int)	  /* Argument LINE_NUMBER.  */
+
+/* Emit an error and return an error type object.  */
+
+GCC_METHOD1 (gcc_type, error,
+	     const char *)		 /* Argument MESSAGE.  */
+
+/* Declare a static_assert with the given CONDITION and ERRORMSG at
+   FILENAME:LINE_NUMBER.  */
+
+GCC_METHOD4 (int /* bool */, add_static_assert,
+	     gcc_expr,     /* Argument CONDITION.  */
+	     const char *, /* Argument ERRORMSG.  */
+	     const char *, /* Argument FILENAME.  */
+	     unsigned int) /* Argument LINE_NUMBER.  */
+
+#if 0
+
+/* FIXME: We don't want to expose the internal implementation detail
+   that default parms are stored in function types, and it's not clear
+   how this or other approaches would interact with the type sharing
+   of e.g. ctor clones, so we're leaving this out, since default args
+   are not even present in debug information anyway.  Besides, the set
+   of default args for a function may grow within its scope, and vary
+   independently in other scopes.  */
+
+/* Create a modified version of a function type that has default
+   values for some of its arguments.  The returned type should ONLY be
+   used to define functions or methods, never to declare parameters,
+   variables, types or the like.
+
+   DEFAULTS must have at most as many N_ELEMENTS as there are
+   arguments without default values in FUNCTION_TYPE.  Say, if
+   FUNCTION_TYPE has an argument list such as (T1, T2, T3, T4 = V0)
+   and DEFAULTS has 2 elements (V1, V2), the returned type will have
+   the following argument list: (T1, T2 = V1, T3 = V2, T4 = V0).
+
+   Any NULL expressions in DEFAULTS will be marked as deferred, and
+   they should be filled in with set_deferred_function_default_args.  */
+
+GCC_METHOD2 (gcc_type, add_function_default_args,
+	     gcc_type,			     /* Argument FUNCTION_TYPE.  */
+	     const struct gcc_cp_function_args *) /* Argument DEFAULTS.  */
+
+/* Fill in the first deferred default args in FUNCTION_DECL with the
+   expressions given in DEFAULTS.  This can be used when the
+   declaration of a parameter is needed to create a default
+   expression, such as taking the size of an earlier parameter, or
+   building a lambda expression in the parameter's context.  */
+
+GCC_METHOD2 (int /* bool */, set_deferred_function_default_args,
+	     gcc_decl,			     /* Argument FUNCTION_DECL.  */
+	     const struct gcc_cp_function_args *) /* Argument DEFAULTS.  */
+
+#endif
+
+
+/* When you add entry points, add them at the end, so that the new API
+   version remains compatible with the old version.
+
+   The following conventions have been observed as to naming entry points:
+
+   - build_* creates (and maybe records) something and returns it;
+   - add_* creates and records something, but doesn't return it;
+   - get_* obtains something without creating it;
+   - start_* marks the beginning of a compound (type, list, ...);
+   - finish_* completes the compound when needed.
+
+  Entry points that return an int (bool) and don't have a return value
+  specification return nonzero (true) on success and zero (false) on
+  failure.  This is in line with libcc1's conventions of returning a
+  zero-initialized value in case of e.g. a transport error.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gcc-cp-interface.h ./include/gcc-cp-interface.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gcc-cp-interface.h	1970-01-01 00:00:00.000000000 +0000
+++ ./include/gcc-cp-interface.h	2018-01-09 02:04:58.000000000 +0000
@@ -0,0 +1,496 @@
+/* Interface between GCC C++ FE and GDB
+
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
+
+   This file is part of GCC.
+
+   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 GCC_CP_INTERFACE_H
+#define GCC_CP_INTERFACE_H
+
+#include "gcc-interface.h"
+
+/* This header defines the interface to the GCC API.  It must be both
+   valid C and valid C++, because it is included by both programs.  */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declaration.  */
+
+struct gcc_cp_context;
+
+/*
+ * Definitions and declarations for the C++ front end.
+ */
+
+/* Defined versions of the C++ front-end API.  */
+
+enum gcc_cp_api_version
+{
+  GCC_CP_FE_VERSION_0 = 0
+};
+
+/* Qualifiers.  */
+
+enum gcc_cp_qualifiers
+{
+  GCC_CP_QUALIFIER_CONST = 1,
+  GCC_CP_QUALIFIER_VOLATILE = 2,
+  GCC_CP_QUALIFIER_RESTRICT = 4
+};
+
+/* Ref qualifiers.  */
+
+enum gcc_cp_ref_qualifiers {
+  GCC_CP_REF_QUAL_NONE = 0,
+  GCC_CP_REF_QUAL_LVALUE = 1,
+  GCC_CP_REF_QUAL_RVALUE = 2
+};
+
+/* Opaque typedef for unbound class templates.  They are used for
+   template arguments, and defaults for template template
+   parameters.  */
+
+typedef unsigned long long gcc_utempl;
+
+/* Opaque typedef for expressions.  They are used for template
+   arguments, defaults for non-type template parameters, and defaults
+   for function arguments.  */
+
+typedef unsigned long long gcc_expr;
+
+typedef enum
+  { GCC_CP_TPARG_VALUE, GCC_CP_TPARG_CLASS,
+    GCC_CP_TPARG_TEMPL, GCC_CP_TPARG_PACK }
+gcc_cp_template_arg_kind;
+
+typedef union
+{ gcc_expr value; gcc_type type; gcc_utempl templ; gcc_type pack; }
+gcc_cp_template_arg;
+
+/* An array of template arguments.  */
+
+struct gcc_cp_template_args
+{
+  /* Number of elements.  */
+
+  int n_elements;
+
+  /* kind[i] indicates what kind of template argument type[i] is.  */
+
+  char /* gcc_cp_template_arg_kind */ *kinds;
+
+  /* The template arguments.  */
+
+  gcc_cp_template_arg *elements;
+};
+
+/* An array of (default) function arguments.  */
+
+struct gcc_cp_function_args
+{
+  /* Number of elements.  */
+
+  int n_elements;
+
+  /* The (default) values for each argument.  */
+
+  gcc_expr *elements;
+};
+
+/* This enumerates the kinds of decls that GDB can create.  */
+
+enum gcc_cp_symbol_kind
+{
+  /* A function.  */
+
+  GCC_CP_SYMBOL_FUNCTION,
+
+  /* A variable.  */
+
+  GCC_CP_SYMBOL_VARIABLE,
+
+  /* A typedef, or an alias declaration (including template ones).  */
+
+  GCC_CP_SYMBOL_TYPEDEF,
+
+  /* A label.  */
+
+  GCC_CP_SYMBOL_LABEL,
+
+  /* A class, forward declared in build_decl (to be later defined in
+     start_class_definition), or, in a template parameter list scope,
+     a declaration of a template class, closing the parameter
+     list.  */
+
+  GCC_CP_SYMBOL_CLASS,
+
+  /* A union, forward declared in build_decl (to be later defined in
+     start_class_definition).  */
+
+  GCC_CP_SYMBOL_UNION,
+
+  /* An enumeration type being introduced with start_new_enum_type.  */
+
+  GCC_CP_SYMBOL_ENUM,
+
+  /* A nonstatic data member being introduced with new_field.  */
+
+  GCC_CP_SYMBOL_FIELD,
+
+  /* A base class in a gcc_vbase_array.  */
+
+  GCC_CP_SYMBOL_BASECLASS,
+
+  /* A using declaration in new_using_decl.  */
+
+  GCC_CP_SYMBOL_USING,
+
+  /* A (lambda) closure class type.  In many regards this is just like
+     a regular class, but it's not supposed to have base classes, some
+     of the member functions that are usually implicitly-defined are
+     deleted, and it should have an operator() member function that
+     holds the lambda body.  We can't instantiate objects of lambda
+     types from the snippet, but we can interact with them in such
+     ways as passing them to functions that take their types, and
+     calling their body.  */
+
+  GCC_CP_SYMBOL_LAMBDA_CLOSURE,
+
+  /* Marker to check that we haven't exceeded GCC_CP_SYMBOL_MASK.  */
+  GCC_CP_SYMBOL_END,
+
+  GCC_CP_SYMBOL_MASK = 15,
+
+  /* When defining a class member, at least one of the
+     GCC_CP_ACCESS_MASK bits must be set; when defining a namespace-
+     or union-scoped symbol, none of them must be set.  */
+
+  GCC_CP_ACCESS_PRIVATE,
+  GCC_CP_ACCESS_PUBLIC = GCC_CP_ACCESS_PRIVATE << 1,
+  GCC_CP_ACCESS_MASK = (GCC_CP_ACCESS_PUBLIC
+			       | GCC_CP_ACCESS_PRIVATE),
+  GCC_CP_ACCESS_PROTECTED = GCC_CP_ACCESS_MASK,
+  GCC_CP_ACCESS_NONE = 0,
+
+  GCC_CP_FLAG_BASE = GCC_CP_ACCESS_PRIVATE << 2,
+
+  /* Flags to be used along with GCC_CP_SYMBOL_FUNCTION:  */
+
+  /* This flag should be set for constructors, destructors and
+     operators.  */
+  GCC_CP_FLAG_SPECIAL_FUNCTION = GCC_CP_FLAG_BASE,
+
+  /* We intentionally cannot express inline, constexpr, or virtual
+     override for functions.  We can't inline or constexpr-replace
+     without a source-level body.  The override keyword is only
+     meaningful within the definition of the containing class.  */
+
+  /* This indicates a "virtual" member function, explicitly or
+     implicitly (due to a virtual function with the same name and
+     prototype in a base class) declared as such.  */
+  GCC_CP_FLAG_VIRTUAL_FUNCTION = GCC_CP_FLAG_BASE << 1,
+
+  /* The following two flags should only be set when the flag above is
+     set.  */
+
+  /* This indicates a pure virtual member function, i.e., one that is
+     declared with "= 0", even if a body is provided in the
+     definition.  */
+  GCC_CP_FLAG_PURE_VIRTUAL_FUNCTION = GCC_CP_FLAG_BASE << 2,
+
+  /* This indicates a "final" virtual member function.  */
+  GCC_CP_FLAG_FINAL_VIRTUAL_FUNCTION = GCC_CP_FLAG_BASE << 3,
+
+  /* This indicates a special member function should have its default
+     implementation.  This either means the function declaration
+     contains the "= default" tokens, or that the member function was
+     implicitly generated by the compiler, although the latter use is
+     discouraged: just let the compiler implicitly introduce it.
+
+     A member function defaulted after its first declaration has
+     slightly different ABI implications from one implicitly generated
+     or explicitly defaulted at the declaration (and definition)
+     point.  To avoid silent (possibly harmless) violation of the one
+     definition rule, it is recommended that this flag not be used for
+     such functions, and that the address of the definition be
+     supplied instead.  */
+  GCC_CP_FLAG_DEFAULTED_FUNCTION = GCC_CP_FLAG_BASE << 4,
+
+  /* This indicates a deleted member function, i.e., one that has been
+     defined as "= delete" at its declaration point, or one that has
+     been implicitly defined as deleted (with or without an explicit
+     "= default" definition).
+
+     This should not be used for implicitly-declared member functions
+     that resolve to deleted definitions, as it may affect the
+     implicit declaration of other member functions.  */
+  GCC_CP_FLAG_DELETED_FUNCTION = GCC_CP_FLAG_BASE << 5,
+
+  /* This indicates a constructor or type-conversion operator declared
+     as "explicit".  */
+
+  GCC_CP_FLAG_EXPLICIT_FUNCTION = GCC_CP_FLAG_BASE << 6,
+
+  GCC_CP_FLAG_END_FUNCTION,
+  GCC_CP_FLAG_MASK_FUNCTION = (((GCC_CP_FLAG_END_FUNCTION - 1) << 1)
+			       - GCC_CP_FLAG_BASE),
+
+  /* Flags to be used along with GCC_CP_SYMBOL_VARIABLE:  */
+
+  /* This indicates a variable declared as "constexpr".  */
+
+  GCC_CP_FLAG_CONSTEXPR_VARIABLE = GCC_CP_FLAG_BASE,
+
+  /* This indicates a variable declared as "thread_local".  ??? What
+     should the ADDRESS be?  */
+
+  GCC_CP_FLAG_THREAD_LOCAL_VARIABLE = GCC_CP_FLAG_BASE << 1,
+
+  GCC_CP_FLAG_END_VARIABLE,
+  GCC_CP_FLAG_MASK_VARIABLE = (((GCC_CP_FLAG_END_VARIABLE - 1) << 1)
+			       - GCC_CP_FLAG_BASE),
+
+  /* Flags to be used when defining nonstatic data members of classes
+     with new_field.  */
+
+  /* Use this when no flags are present.  */
+  GCC_CP_FLAG_FIELD_NOFLAG = 0,
+
+  /* This indicates the field is declared as mutable.  */
+  GCC_CP_FLAG_FIELD_MUTABLE = GCC_CP_FLAG_BASE,
+
+  GCC_CP_FLAG_END_FIELD,
+  GCC_CP_FLAG_MASK_FIELD = (((GCC_CP_FLAG_END_FIELD - 1) << 1)
+			    - GCC_CP_FLAG_BASE),
+
+  /* Flags to be used when defining an enum with
+     start_new_enum_type.  */
+
+  /* This indicates an enum type without any flags.  */
+  GCC_CP_FLAG_ENUM_NOFLAG = 0,
+
+  /* This indicates a scoped enum type.  */
+  GCC_CP_FLAG_ENUM_SCOPED = GCC_CP_FLAG_BASE,
+
+  GCC_CP_FLAG_END_ENUM,
+  GCC_CP_FLAG_MASK_ENUM = (((GCC_CP_FLAG_END_ENUM - 1) << 1)
+			       - GCC_CP_FLAG_BASE),
+
+
+  /* Flags to be used when introducing a class or a class template
+     with build_decl.  */
+
+  /* This indicates an enum type without any flags.  */
+  GCC_CP_FLAG_CLASS_NOFLAG = 0,
+
+  /* This indicates the class is actually a struct.  This has no
+     effect whatsoever on access control in this interface, since all
+     class members must have explicit access control bits set, but it
+     may affect error messages.  */
+  GCC_CP_FLAG_CLASS_IS_STRUCT = GCC_CP_FLAG_BASE,
+
+  GCC_CP_FLAG_END_CLASS,
+  GCC_CP_FLAG_MASK_CLASS = (((GCC_CP_FLAG_END_CLASS - 1) << 1)
+			       - GCC_CP_FLAG_BASE),
+
+
+  /* Flags to be used when introducing a virtual base class in a
+     gcc_vbase_array.  */
+
+  /* This indicates an enum type without any flags.  */
+  GCC_CP_FLAG_BASECLASS_NOFLAG = 0,
+
+  /* This indicates the class is actually a struct.  This has no
+     effect whatsoever on access control in this interface, since all
+     class members must have explicit access control bits set, but it
+     may affect error messages.  */
+  GCC_CP_FLAG_BASECLASS_VIRTUAL = GCC_CP_FLAG_BASE,
+
+  GCC_CP_FLAG_END_BASECLASS,
+  GCC_CP_FLAG_MASK_BASECLASS = (((GCC_CP_FLAG_END_BASECLASS - 1) << 1)
+				- GCC_CP_FLAG_BASE),
+
+
+  GCC_CP_FLAG_MASK = (GCC_CP_FLAG_MASK_FUNCTION
+		      | GCC_CP_FLAG_MASK_VARIABLE
+		      | GCC_CP_FLAG_MASK_FIELD
+		      | GCC_CP_FLAG_MASK_ENUM
+		      | GCC_CP_FLAG_MASK_CLASS
+		      | GCC_CP_FLAG_MASK_BASECLASS
+		      )
+};
+
+
+/* An array of types used for creating lists of base classes.  */
+
+struct gcc_vbase_array
+{
+  /* Number of elements.  */
+
+  int n_elements;
+
+  /* The base classes.  */
+
+  gcc_type *elements;
+
+  /* Flags for each base class.  Used to indicate access control and
+     virtualness.  */
+
+  enum gcc_cp_symbol_kind *flags;
+};
+
+
+/* This enumerates the types of symbols that GCC might request from
+   GDB.  */
+
+enum gcc_cp_oracle_request
+{
+  /* An identifier in namespace scope -- type, variable, function,
+     namespace, template.  All namespace-scoped symbols with the
+     requested name, in any namespace (including the global
+     namespace), should be defined in response to this request.  */
+
+  GCC_CP_ORACLE_IDENTIFIER
+};
+
+/* The type of the function called by GCC to ask GDB for a symbol's
+   definition.  DATUM is an arbitrary value supplied when the oracle
+   function is registered.  CONTEXT is the GCC context in which the
+   request is being made.  REQUEST specifies what sort of symbol is
+   being requested, and IDENTIFIER is the name of the symbol.  */
+
+typedef void gcc_cp_oracle_function (void *datum,
+				     struct gcc_cp_context *context,
+				     enum gcc_cp_oracle_request request,
+				     const char *identifier);
+
+/* The type of the function called by GCC to ask GDB for a symbol's
+   address.  This should return 0 if the address is not known.  */
+
+typedef gcc_address gcc_cp_symbol_address_function (void *datum,
+						    struct gcc_cp_context *ctxt,
+						    const char *identifier);
+
+/* The type of the function called by GCC to ask GDB to enter or leave
+   the user expression scope.  */
+
+typedef void gcc_cp_enter_leave_user_expr_scope_function (void *datum,
+							  struct gcc_cp_context
+							  *context);
+
+/* The vtable used by the C front end.  */
+
+struct gcc_cp_fe_vtable
+{
+  /* The version of the C interface.  The value is one of the
+     gcc_cp_api_version constants.  */
+
+  unsigned int cp_version;
+
+  /* Set the callbacks for this context.
+
+     The binding oracle is called whenever the C++ parser needs to
+     look up a symbol.  This gives the caller a chance to lazily
+     instantiate symbols using other parts of the gcc_cp_fe_interface
+     API.  The symbol is looked up without a scope, and the oracle
+     must supply a definition for ALL namespace-scoped definitions
+     bound to the symbol.
+
+     The address oracle is called whenever the C++ parser needs to
+     look up a symbol.  This may be called for symbols not provided by
+     the symbol oracle, such as built-in functions where GCC provides
+     the declaration; other internal symbols, such as those related
+     with thunks, rtti, and virtual tables are likely to be queried
+     through this interface too.  The identifier is a mangled symbol
+     name.
+
+     DATUM is an arbitrary piece of data that is passed back verbatim
+     to the callbacks in requests.  */
+
+  void (*set_callbacks) (struct gcc_cp_context *self,
+			 gcc_cp_oracle_function *binding_oracle,
+			 gcc_cp_symbol_address_function *address_oracle,
+			 gcc_cp_enter_leave_user_expr_scope_function *enter_scope,
+			 gcc_cp_enter_leave_user_expr_scope_function *leave_scope,
+			 void *datum);
+
+#define GCC_METHOD0(R, N) \
+  R (*N) (struct gcc_cp_context *);
+#define GCC_METHOD1(R, N, A) \
+  R (*N) (struct gcc_cp_context *, A);
+#define GCC_METHOD2(R, N, A, B) \
+  R (*N) (struct gcc_cp_context *, A, B);
+#define GCC_METHOD3(R, N, A, B, C) \
+  R (*N) (struct gcc_cp_context *, A, B, C);
+#define GCC_METHOD4(R, N, A, B, C, D) \
+  R (*N) (struct gcc_cp_context *, A, B, C, D);
+#define GCC_METHOD5(R, N, A, B, C, D, E) \
+  R (*N) (struct gcc_cp_context *, A, B, C, D, E);
+#define GCC_METHOD7(R, N, A, B, C, D, E, F, G) \
+  R (*N) (struct gcc_cp_context *, A, B, C, D, E, F, G);
+
+#include "gcc-cp-fe.def"
+
+#undef GCC_METHOD0
+#undef GCC_METHOD1
+#undef GCC_METHOD2
+#undef GCC_METHOD3
+#undef GCC_METHOD4
+#undef GCC_METHOD5
+#undef GCC_METHOD7
+
+};
+
+/* The C front end object.  */
+
+struct gcc_cp_context
+{
+  /* Base class.  */
+
+  struct gcc_base_context base;
+
+  /* Our vtable.  This is a separate field because this is simpler
+     than implementing a vtable inheritance scheme in C.  */
+
+  const struct gcc_cp_fe_vtable *cp_ops;
+};
+
+/* The name of the .so that the compiler builds.  We dlopen this
+   later.  */
+
+#define GCC_CP_FE_LIBCC libcc1.so
+
+/* The compiler exports a single initialization function.  This macro
+   holds its name as a symbol.  */
+
+#define GCC_CP_FE_CONTEXT gcc_cp_fe_context
+
+/* The type of the initialization function.  The caller passes in the
+   desired base version and desired C-specific version.  If the
+   request can be satisfied, a compatible gcc_context object will be
+   returned.  Otherwise, the function returns NULL.  */
+
+typedef struct gcc_cp_context *gcc_cp_fe_context_function
+    (enum gcc_base_api_version,
+     enum gcc_cp_api_version);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GCC_CP_INTERFACE_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gcc-interface.h ./include/gcc-interface.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gcc-interface.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gcc-interface.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Generic interface between GCC and GDB
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GCC.
 
@@ -44,7 +44,12 @@ struct gcc_base_context;
 
 enum gcc_base_api_version
 {
-  GCC_FE_VERSION_0 = 0
+  GCC_FE_VERSION_0 = 0,
+
+  /* Deprecated methods set_arguments_v0 and compile_v0.  Added methods
+     set_arguments, set_triplet_regexp, set_driver_filename, set_verbose and
+     compile.  */
+  GCC_FE_VERSION_1 = 1,
 };
 
 /* The operations defined by the GCC base API.  This is the vtable for
@@ -64,20 +69,12 @@ struct gcc_base_vtable
 
   unsigned int version;
 
-  /* Set the compiler's command-line options for the next compilation.
-     TRIPLET_REGEXP is a regular expression that is used to match the
-     configury triplet prefix to the compiler.
-     The arguments are copied by GCC.  ARGV need not be
-     NULL-terminated.  The arguments must be set separately for each
-     compilation; that is, after a compile is requested, the
-     previously-set arguments cannot be reused.
-
-     This returns NULL on success.  On failure, returns a malloc()d
-     error message.  The caller is responsible for freeing it.  */
+  /* Deprecated GCC_FE_VERSION_0 variant of the GCC_FE_VERSION_1
+     methods set_triplet_regexp and set_arguments.  */
 
-  char *(*set_arguments) (struct gcc_base_context *self,
-			  const char *triplet_regexp,
-			  int argc, char **argv);
+  char *(*set_arguments_v0) (struct gcc_base_context *self,
+			     const char *triplet_regexp,
+			     int argc, char **argv);
 
   /* Set the file name of the program to compile.  The string is
      copied by the method implementation, but the caller must
@@ -93,18 +90,74 @@ struct gcc_base_vtable
 						      const char *message),
 			      void *datum);
 
+  /* Deprecated GCC_FE_VERSION_0 variant of the GCC_FE_VERSION_1
+     compile method.  GCC_FE_VERSION_0 version verbose parameter has
+     been replaced by the set_verbose method.  */
+
+  int /* bool */ (*compile_v0) (struct gcc_base_context *self,
+				const char *filename,
+				int /* bool */ verbose);
+
+  /* Destroy this object.  */
+
+  void (*destroy) (struct gcc_base_context *self);
+
+  /* VERBOSE can be set to non-zero to cause GCC to print some
+     information as it works.  Calling this method overrides its
+     possible previous calls.
+
+     This method is only available since GCC_FE_VERSION_1.  */
+
+  void (*set_verbose) (struct gcc_base_context *self,
+		       int /* bool */ verbose);
+
   /* Perform the compilation.  FILENAME is the name of the resulting
-     object file.  VERBOSE can be set to cause GCC to print some
-     information as it works.  Returns true on success, false on
-     error.  */
+     object file.  Either set_triplet_regexp or set_driver_filename must
+     be called before.  Returns true on success, false on error.
+
+     This method is only available since GCC_FE_VERSION_1.  */
 
   int /* bool */ (*compile) (struct gcc_base_context *self,
-			     const char *filename,
-			     int /* bool */ verbose);
+			     const char *filename);
 
-  /* Destroy this object.  */
+  /* Set the compiler's command-line options for the next compilation.
+     The arguments are copied by GCC.  ARGV need not be
+     NULL-terminated.  The arguments must be set separately for each
+     compilation; that is, after a compile is requested, the
+     previously-set arguments cannot be reused.
 
-  void (*destroy) (struct gcc_base_context *self);
+     This returns NULL on success.  On failure, returns a malloc()d
+     error message.  The caller is responsible for freeing it.
+
+     This method is only available since GCC_FE_VERSION_1.  */
+
+  char *(*set_arguments) (struct gcc_base_context *self,
+			  int argc, char **argv);
+
+  /* Set TRIPLET_REGEXP as a regular expression that is used to match
+     the configury triplet prefix to the compiler.  Calling this method
+     overrides possible previous call of itself or set_driver_filename.
+
+     This returns NULL on success.  On failure, returns a malloc()d
+     error message.  The caller is responsible for freeing it.
+
+     This method is only available since GCC_FE_VERSION_1.  */
+
+  char *(*set_triplet_regexp) (struct gcc_base_context *self,
+			       const char *triplet_regexp);
+
+  /* DRIVER_FILENAME should be filename of the gcc compiler driver
+     program.  It will be searched in PATH components like
+     TRIPLET_REGEXP.  Calling this method overrides possible previous
+     call of itself or set_triplet_regexp.
+
+     This returns NULL on success.  On failure, returns a malloc()d
+     error message.  The caller is responsible for freeing it.
+
+     This method is only available since GCC_FE_VERSION_1.  */
+
+  char *(*set_driver_filename) (struct gcc_base_context *self,
+				const char *driver_filename);
 };
 
 /* The GCC object.  */
@@ -116,6 +169,20 @@ struct gcc_base_context
   const struct gcc_base_vtable *ops;
 };
 
+/* An array of types used for creating function types in multiple
+   languages.  */
+
+struct gcc_type_array
+{
+  /* Number of elements.  */
+
+  int n_elements;
+
+  /* The elements.  */
+
+  gcc_type *elements;
+};
+
 /* The name of the dummy wrapper function generated by gdb.  */
 
 #define GCC_FE_WRAPPER_FUNCTION "_gdb_expr"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/callback.h ./include/gdb/callback.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/callback.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/callback.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Remote target system call callback support.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/ChangeLog ./include/gdb/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/ChangeLog	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/ChangeLog	2018-01-09 02:04:58.000000000 +0000
@@ -340,7 +340,7 @@ Wed Jul 17 19:36:38 2002  J"orn Rennecke
 	* signals.h: New file, from gdb/defs.h.
 
 
-Copyright (C) 2002-2017 Free Software Foundation, Inc.
+Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/fileio.h ./include/gdb/fileio.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/fileio.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/fileio.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Hosted File I/O interface definitions, for GDB, the GNU Debugger.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/gdb-index.h ./include/gdb/gdb-index.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/gdb-index.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/gdb-index.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Public attributes of the .gdb_index section.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/remote-sim.h ./include/gdb/remote-sim.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/remote-sim.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/remote-sim.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file defines the interface between the simulator and gdb.
 
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -261,7 +261,7 @@ int sim_stop (SIM_DESC sd);
    that information is not directly accessable via this interface.
 
    SIM_SIGNALLED: The program has been terminated by a signal. The
-   simulator has encountered target code that causes the the program
+   simulator has encountered target code that causes the program
    to exit with signal SIGRC.
 
    SIM_RUNNING, SIM_POLLING: The return of one of these values
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/section-scripts.h ./include/gdb/section-scripts.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/section-scripts.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/section-scripts.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Definition of kinds of records in section .debug_gdb_scripts.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/signals.def ./include/gdb/signals.def
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/signals.def	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/signals.def	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target signal numbers for GDB and the GDB remote protocol.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/signals.h ./include/gdb/signals.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/signals.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/signals.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Target signal numbers for GDB and the GDB remote protocol.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-aarch64.h ./include/gdb/sim-aarch64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-aarch64.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/sim-aarch64.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* sim-aarch64.h --- interface between AArch64 simulator and GDB.
 
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-arm.h ./include/gdb/sim-arm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-arm.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/sim-arm.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file defines the interface between the Arm simulator and GDB.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-bfin.h ./include/gdb/sim-bfin.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-bfin.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/sim-bfin.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file defines the interface between the Blackfin simulator and GDB.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
    Contributed by Analog Devices.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-cr16.h ./include/gdb/sim-cr16.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-cr16.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/sim-cr16.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file defines the interface between the cr16 simulator and gdb.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-d10v.h ./include/gdb/sim-d10v.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-d10v.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/sim-d10v.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file defines the interface between the d10v simulator and gdb.
 
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-frv.h ./include/gdb/sim-frv.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-frv.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/sim-frv.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file defines the interface between the FR-V simulator and GDB.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-ft32.h ./include/gdb/sim-ft32.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-ft32.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/sim-ft32.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* This file defines the interface between the FT32 simulator and GDB.
 
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
    Contributed by FTDI.
 
    This file is part of GDB.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-h8300.h ./include/gdb/sim-h8300.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-h8300.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/sim-h8300.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* This file defines the interface between the h8300 simulator and gdb.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-lm32.h ./include/gdb/sim-lm32.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-lm32.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/sim-lm32.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,7 +1,7 @@
 /* This file defines the interface between the LM32 simulator and GDB.
    Contributed by Jon Beniston <jon@beniston.com>
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-m32c.h ./include/gdb/sim-m32c.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-m32c.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/sim-m32c.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* This file defines the interface between the m32c simulator and gdb.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-ppc.h ./include/gdb/sim-ppc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-ppc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/sim-ppc.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* sim-ppc.h --- interface between PowerPC simulator and GDB.
 
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-rl78.h ./include/gdb/sim-rl78.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-rl78.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/sim-rl78.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* sim-rx.h --- interface between rl78 simulator and GDB.
 
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-rx.h ./include/gdb/sim-rx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-rx.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/sim-rx.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* sim-rx.h --- interface between RX simulator and GDB.
 
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
 
    Contributed by Red Hat.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-sh.h ./include/gdb/sim-sh.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/gdb/sim-sh.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/gdb/sim-sh.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* This file defines the interface between the sh simulator and gdb.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/getopt.h ./include/getopt.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/getopt.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/getopt.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Declarations for getopt.
-   Copyright (C) 1989-2017 Free Software Foundation, Inc.
+   Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C Library.
    Bugs can be reported to bug-glibc@gnu.org.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/hashtab.h ./include/hashtab.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/hashtab.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/hashtab.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* An expandable hash tables datatype.  
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Contributed by Vladimir Makarov (vmakarov@cygnus.com).
 
 This program is free software; you can redistribute it and/or modify
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/hp-symtab.h ./include/hp-symtab.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/hp-symtab.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/hp-symtab.h	2018-01-09 02:04:58.000000000 +0000
@@ -4,7 +4,7 @@
    Written by the Center for Software Science at the University of Utah
    and by Cygnus Support.
 
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/ieee.h ./include/ieee.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/ieee.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/ieee.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* IEEE Standard 695-1980 "Universal Format for Object Modules" header file
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/leb128.h ./include/leb128.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/leb128.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/leb128.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Utilities for reading leb128 values.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 This file is part of the libiberty library.
 Libiberty is free software; you can redistribute it and/or
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/libiberty.h ./include/libiberty.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/libiberty.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/libiberty.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Function declarations for libiberty.
 
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
    
    Note - certain prototypes declared in this header file are for
    functions whoes implementation copyright does not belong to the
@@ -724,7 +724,7 @@ extern void *C_alloca (size_t) ATTRIBUTE
 # define ASTRDUP(X) \
   (__extension__ ({ const char *const libiberty_optr = (X); \
    const unsigned long libiberty_len = strlen (libiberty_optr) + 1; \
-   char *const libiberty_nptr = (char *const) alloca (libiberty_len); \
+   char *const libiberty_nptr = (char *) alloca (libiberty_len); \
    (char *) memcpy (libiberty_nptr, libiberty_optr, libiberty_len); }))
 #else
 # define alloca(x) C_alloca(x)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/longlong.h ./include/longlong.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/longlong.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/longlong.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* longlong.h -- definitions for mixed size 32/64 bit arithmetic.
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.
 
@@ -197,17 +197,17 @@ extern UDItype __udiv_qrnnd (UDItype *, 
 	   : "=r" ((USItype) (sh)),					\
 	     "=&r" ((USItype) (sl))					\
 	   : "%r" ((USItype) (ah)),					\
-	     "rIJ" ((USItype) (bh)),					\
+	     "rICal" ((USItype) (bh)),					\
 	     "%r" ((USItype) (al)),					\
-	     "rIJ" ((USItype) (bl)))
+	     "rICal" ((USItype) (bl)))
 #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
   __asm__ ("sub.f	%1, %4, %5\n\tsbc	%0, %2, %3"		\
 	   : "=r" ((USItype) (sh)),					\
 	     "=&r" ((USItype) (sl))					\
 	   : "r" ((USItype) (ah)),					\
-	     "rIJ" ((USItype) (bh)),					\
+	     "rICal" ((USItype) (bh)),					\
 	     "r" ((USItype) (al)),					\
-	     "rIJ" ((USItype) (bl)))
+	     "rICal" ((USItype) (bl)))
 
 #define __umulsidi3(u,v) ((UDItype)(USItype)u*(USItype)v)
 #ifdef __ARC_NORM__
@@ -221,8 +221,8 @@ extern UDItype __udiv_qrnnd (UDItype *, 
     }									\
   while (0)
 #define COUNT_LEADING_ZEROS_0 32
-#endif
-#endif
+#endif /* __ARC_NORM__ */
+#endif /* __arc__ */
 
 #if defined (__arm__) && (defined (__thumb2__) || !defined (__thumb__)) \
  && W_TYPE_SIZE == 32
@@ -858,42 +858,6 @@ extern UDItype __umulsidi3 (USItype, USI
 #endif
 #endif /* __mips__ */
 
-#if defined (__ns32000__) && W_TYPE_SIZE == 32
-#define umul_ppmm(w1, w0, u, v) \
-  ({union {UDItype __ll;						\
-	   struct {USItype __l, __h;} __i;				\
-	  } __xx;							\
-  __asm__ ("meid %2,%0"							\
-	   : "=g" (__xx.__ll)						\
-	   : "%0" ((USItype) (u)),					\
-	     "g" ((USItype) (v)));					\
-  (w1) = __xx.__i.__h; (w0) = __xx.__i.__l;})
-#define __umulsidi3(u, v) \
-  ({UDItype __w;							\
-    __asm__ ("meid %2,%0"						\
-	     : "=g" (__w)						\
-	     : "%0" ((USItype) (u)),					\
-	       "g" ((USItype) (v)));					\
-    __w; })
-#define udiv_qrnnd(q, r, n1, n0, d) \
-  ({union {UDItype __ll;						\
-	   struct {USItype __l, __h;} __i;				\
-	  } __xx;							\
-  __xx.__i.__h = (n1); __xx.__i.__l = (n0);				\
-  __asm__ ("deid %2,%0"							\
-	   : "=g" (__xx.__ll)						\
-	   : "0" (__xx.__ll),						\
-	     "g" ((USItype) (d)));					\
-  (r) = __xx.__i.__l; (q) = __xx.__i.__h; })
-#define count_trailing_zeros(count,x) \
-  do {									\
-    __asm__ ("ffsd     %2,%0"						\
-	    : "=r" ((USItype) (count))					\
-	    : "0" ((USItype) 0),					\
-	      "r" ((USItype) (x)));					\
-  } while (0)
-#endif /* __ns32000__ */
-
 /* FIXME: We should test _IBMR2 here when we add assembly support for the
    system vendor compilers.
    FIXME: What's needed for gcc PowerPC VxWorks?  __vxworks__ is not good
@@ -1086,7 +1050,7 @@ extern UDItype __umulsidi3 (USItype, USI
   } while (0)
 #endif
 
-#if defined(__sh__) && (!defined (__SHMEDIA__) || !__SHMEDIA__) && W_TYPE_SIZE == 32
+#if defined(__sh__) && W_TYPE_SIZE == 32
 #ifndef __sh1__
 #define umul_ppmm(w1, w0, u, v) \
   __asm__ (								\
@@ -1159,21 +1123,6 @@ extern UDItype __umulsidi3 (USItype, USI
 
 #endif /* __sh__ */
 
-#if defined (__SH5__) && defined (__SHMEDIA__) && __SHMEDIA__ && W_TYPE_SIZE == 32
-#define __umulsidi3(u,v) ((UDItype)(USItype)u*(USItype)v)
-#define count_leading_zeros(count, x) \
-  do									\
-    {									\
-      UDItype x_ = (USItype)(x);					\
-      SItype c_;							\
-									\
-      __asm__ ("nsb %1, %0" : "=r" (c_) : "r" (x_));			\
-      (count) = c_ - 31;						\
-    }									\
-  while (0)
-#define COUNT_LEADING_ZEROS_0 32
-#endif
-
 #if defined (__sparc__) && !defined (__arch64__) && !defined (__sparcv9) \
     && W_TYPE_SIZE == 32
 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/lto-symtab.h ./include/lto-symtab.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/lto-symtab.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/lto-symtab.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Data types used in the IL symbol table.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by Rafael Espindola <espindola@google.com>
 
 This file is part of GCC.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/arm64.h ./include/mach-o/arm64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/arm64.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/mach-o/arm64.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Mach-O arm declarations for BFD.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/arm.h ./include/mach-o/arm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/arm.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/mach-o/arm.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Mach-O arm declarations for BFD.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -24,7 +24,7 @@
 /* ARM relocations.  */
 #define BFD_MACH_O_ARM_RELOC_VANILLA   0 /* Generic relocation.  */
 #define BFD_MACH_O_ARM_RELOC_PAIR      1 /* Second entry in a pair.  */
-#define BFD_MACH_O_ARM_RELOC_SECTDIFF  2 /* Substract with a PAIR.  */
+#define BFD_MACH_O_ARM_RELOC_SECTDIFF  2 /* Subtract with a PAIR.  */
 #define BFD_MACH_O_ARM_RELOC_LOCAL_SECTDIFF 3 /* Like above, but local ref.  */
 #define BFD_MACH_O_ARM_RELOC_PB_LA_PTR 4 /* Prebound lazy pointer.  */
 #define BFD_MACH_O_ARM_RELOC_BR24      5 /* 24bit branch.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/codesign.h ./include/mach-o/codesign.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/codesign.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/mach-o/codesign.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Mach-O support for BFD.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/external.h ./include/mach-o/external.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/external.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/mach-o/external.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Mach-O support for BFD.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/loader.h ./include/mach-o/loader.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/loader.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/mach-o/loader.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Mach-O support for BFD.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/reloc.h ./include/mach-o/reloc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/reloc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/mach-o/reloc.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Mach-O support for BFD.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/unwind.h ./include/mach-o/unwind.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/unwind.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/mach-o/unwind.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Mach-O compact unwind encoding.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/x86-64.h ./include/mach-o/x86-64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/mach-o/x86-64.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/mach-o/x86-64.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Mach-O support for BFD.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/MAINTAINERS ./include/MAINTAINERS
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/MAINTAINERS	2018-01-02 02:03:00.000000000 +0000
+++ ./include/MAINTAINERS	2018-01-09 02:04:57.000000000 +0000
@@ -1,6 +1,6 @@
 See ../binutils/MAINTAINERS
 
-Copyright (C) 2012-2017 Free Software Foundation, Inc.
+Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/md5.h ./include/md5.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/md5.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/md5.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* md5.h - Declaration of functions and data types used for MD5 sum
    computing library functions.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
    NOTE: The canonical source of this file is maintained with the GNU C
    Library.  Bugs can be reported to bug-glibc@prep.ai.mit.edu.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/nlm/alpha-ext.h ./include/nlm/alpha-ext.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/nlm/alpha-ext.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/nlm/alpha-ext.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Alpha NLM (NetWare Loadable Module) support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    By Ian Lance Taylor, Cygnus Support
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/nlm/common.h ./include/nlm/common.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/nlm/common.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/nlm/common.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* NLM (NetWare Loadable Module) support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/nlm/external.h ./include/nlm/external.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/nlm/external.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/nlm/external.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* NLM (NetWare Loadable Module) support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/nlm/i386-ext.h ./include/nlm/i386-ext.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/nlm/i386-ext.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/nlm/i386-ext.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* i386 NLM (NetWare Loadable Module) support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/nlm/internal.h ./include/nlm/internal.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/nlm/internal.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/nlm/internal.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* NLM (NetWare Loadable Module) support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/nlm/ppc-ext.h ./include/nlm/ppc-ext.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/nlm/ppc-ext.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/nlm/ppc-ext.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* PowerPC NLM (NetWare Loadable Module) support for BFD.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/nlm/sparc32-ext.h ./include/nlm/sparc32-ext.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/nlm/sparc32-ext.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/nlm/sparc32-ext.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* SPARC NLM (NetWare Loadable Module) support for BFD.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/oasys.h ./include/oasys.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/oasys.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/oasys.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Oasys object format header file for BFD.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/objalloc.h ./include/objalloc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/objalloc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/objalloc.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* objalloc.h -- routines to allocate memory for objects
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Solutions.
 
 This program is free software; you can redistribute it and/or modify it
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/obstack.h ./include/obstack.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/obstack.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/obstack.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* obstack.h - object stack macros
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/aarch64.h ./include/opcode/aarch64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/aarch64.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/aarch64.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* AArch64 assembler/disassembler support.
 
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of GNU Binutils.
@@ -37,6 +37,11 @@ extern "C" {
 typedef uint32_t aarch64_insn;
 
 /* The following bitmasks control CPU features.  */
+#define AARCH64_FEATURE_SHA2	0x200000000ULL  /* SHA2 instructions.  */
+#define AARCH64_FEATURE_AES	0x800000000ULL  /* AES instructions.  */
+#define AARCH64_FEATURE_V8_4	0x000000800ULL  /* ARMv8.4 processors.  */
+#define AARCH64_FEATURE_SM4	0x100000000ULL  /* SM3 & SM4 instructions.  */
+#define AARCH64_FEATURE_SHA3	0x400000000ULL  /* SHA3 instructions.  */
 #define AARCH64_FEATURE_V8	0x00000001	/* All processors.  */
 #define AARCH64_FEATURE_V8_2	0x00000020      /* ARMv8.2 processors.  */
 #define AARCH64_FEATURE_V8_3	0x00000040      /* ARMv8.3 processors.  */
@@ -55,6 +60,8 @@ typedef uint32_t aarch64_insn;
 #define AARCH64_FEATURE_SVE	0x10000000	/* SVE instructions.  */
 #define AARCH64_FEATURE_RCPC	0x20000000	/* RCPC instructions.  */
 #define AARCH64_FEATURE_COMPNUM	0x40000000	/* Complex # instructions.  */
+#define AARCH64_FEATURE_DOTPROD 0x080000000     /* Dot Product instructions.  */
+#define AARCH64_FEATURE_F16_FML	0x1000000000ULL	/* v8.2 FP16FML ins.  */
 
 /* Architectures are the sum of the base and extensions.  */
 #define AARCH64_ARCH_V8		AARCH64_FEATURE (AARCH64_FEATURE_V8, \
@@ -69,18 +76,21 @@ typedef uint32_t aarch64_insn;
 						 | AARCH64_FEATURE_RDMA)
 #define AARCH64_ARCH_V8_2	AARCH64_FEATURE (AARCH64_ARCH_V8_1,	\
 						 AARCH64_FEATURE_V8_2	\
-						 | AARCH64_FEATURE_F16	\
 						 | AARCH64_FEATURE_RAS)
 #define AARCH64_ARCH_V8_3	AARCH64_FEATURE (AARCH64_ARCH_V8_2,	\
 						 AARCH64_FEATURE_V8_3	\
 						 | AARCH64_FEATURE_RCPC	\
 						 | AARCH64_FEATURE_COMPNUM)
+#define AARCH64_ARCH_V8_4	AARCH64_FEATURE (AARCH64_ARCH_V8_3,	\
+						 AARCH64_FEATURE_V8_4   \
+						 | AARCH64_FEATURE_DOTPROD \
+						 | AARCH64_FEATURE_F16_FML)
 
 #define AARCH64_ARCH_NONE	AARCH64_FEATURE (0, 0)
 #define AARCH64_ANY		AARCH64_FEATURE (-1, 0)	/* Any basic core.  */
 
 /* CPU-specific features.  */
-typedef unsigned long aarch64_feature_set;
+typedef unsigned long long aarch64_feature_set;
 
 #define AARCH64_CPU_HAS_ALL_FEATURES(CPU,FEAT)	\
   ((~(CPU) & (FEAT)) == 0)
@@ -159,6 +169,7 @@ enum aarch64_opnd
   AARCH64_OPND_Sn,	/* AdvSIMD Scalar Sn.  */
   AARCH64_OPND_Sm,	/* AdvSIMD Scalar Sm.  */
 
+  AARCH64_OPND_Va,	/* AdvSIMD Vector Va.  */
   AARCH64_OPND_Vd,	/* AdvSIMD Vector Vd.  */
   AARCH64_OPND_Vn,	/* AdvSIMD Vector Vn.  */
   AARCH64_OPND_Vm,	/* AdvSIMD Vector Vm.  */
@@ -177,6 +188,7 @@ enum aarch64_opnd
   AARCH64_OPND_CRm,	/* Co-processor register in CRm field.  */
 
   AARCH64_OPND_IDX,	/* AdvSIMD EXT index operand.  */
+  AARCH64_OPND_MASK,	/* AdvSIMD EXT index operand.  */
   AARCH64_OPND_IMM_VLSL,/* Immediate for shifting vector registers left.  */
   AARCH64_OPND_IMM_VLSR,/* Immediate for shifting vector registers right.  */
   AARCH64_OPND_SIMD_IMM,/* AdvSIMD modified immediate without shift.  */
@@ -191,6 +203,7 @@ enum aarch64_opnd
   AARCH64_OPND_IMMS,	/* Immediate #<imms> in e.g. BFM.  */
   AARCH64_OPND_WIDTH,	/* Immediate #<width> in e.g. BFI.  */
   AARCH64_OPND_IMM,	/* Immediate.  */
+  AARCH64_OPND_IMM_2,	/* Immediate.  */
   AARCH64_OPND_UIMM3_OP1,/* Unsigned 3-bit immediate in the op1 field.  */
   AARCH64_OPND_UIMM3_OP2,/* Unsigned 3-bit immediate in the op2 field.  */
   AARCH64_OPND_UIMM4,	/* Unsigned 4-bit immediate in the CRm field.  */
@@ -234,6 +247,7 @@ enum aarch64_opnd
   AARCH64_OPND_ADDR_SIMM10,	/* Address of signed 10-bit immediate.  */
   AARCH64_OPND_ADDR_UIMM12,	/* Address of unsigned 12-bit immediate.  */
   AARCH64_OPND_SIMD_ADDR_SIMPLE,/* Address of ld/st multiple structures.  */
+  AARCH64_OPND_ADDR_OFFSET,     /* Address with an optional 9-bit immediate.  */
   AARCH64_OPND_SIMD_ADDR_POST,	/* Address of ld/st multiple post-indexed.  */
 
   AARCH64_OPND_SYSREG,		/* System register operand.  */
@@ -346,6 +360,7 @@ enum aarch64_opnd
   AARCH64_OPND_SVE_ZnxN,	/* SVE vector register list in Zn.  */
   AARCH64_OPND_SVE_Zt,		/* SVE vector register in Zt.  */
   AARCH64_OPND_SVE_ZtxN,	/* SVE vector register list in Zt.  */
+  AARCH64_OPND_SM3_IMM2,	/* SM3 encodes lane in bits [13, 14].  */
 };
 
 /* Qualifier constrains an operand.  It either specifies a variant of an
@@ -381,6 +396,11 @@ enum aarch64_opnd_qualifier
   AARCH64_OPND_QLF_S_S,
   AARCH64_OPND_QLF_S_D,
   AARCH64_OPND_QLF_S_Q,
+  /* This type qualifier has a special meaning in that it means that 4 x 1 byte
+     are selected by the instruction.  Other than that it has no difference
+     with AARCH64_OPND_QLF_S_B in encoding.  It is here purely for syntactical
+     reasons and is an exception from normal AArch64 disassembly scheme.  */
+  AARCH64_OPND_QLF_S_4B,
 
   /* Qualifying an operand which is a SIMD vector register or a SIMD vector
      register list; indicating register shape.
@@ -388,6 +408,7 @@ enum aarch64_opnd_qualifier
      a use is only for the ease of operand encoding/decoding and qualifier
      sequence matching; such a use should not be applied widely; use the value
      constraint qualifiers for immediate operands wherever possible.  */
+  AARCH64_OPND_QLF_V_4B,
   AARCH64_OPND_QLF_V_8B,
   AARCH64_OPND_QLF_V_16B,
   AARCH64_OPND_QLF_V_2H,
@@ -508,6 +529,9 @@ enum aarch64_insn_class
   sve_size_hsd,
   sve_size_sd,
   testbranch,
+  cryptosm3,
+  cryptosm4,
+  dotproduct,
 };
 
 /* Opcode enumerators.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/alpha.h ./include/opcode/alpha.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/alpha.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/alpha.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* alpha.h -- Header file for Alpha opcode table
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Contributed by Richard Henderson <rth@tamu.edu>,
    patterned after the PPC opcode table written by Ian Lance Taylor.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/arc-attrs.h ./include/opcode/arc-attrs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/arc-attrs.h	1970-01-01 00:00:00.000000000 +0000
+++ ./include/opcode/arc-attrs.h	2018-01-09 02:04:58.000000000 +0000
@@ -0,0 +1,72 @@
+/* Copyright (C) 1994-2018 Free Software Foundation, Inc.
+
+   Contributed by Claudiu Zissulescu (claziss@synopsys.com)
+
+   This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and
+   the GNU Binutils.
+
+   GAS/GDB 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.
+
+   GAS/GDB 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 GAS or GDB; see the file COPYING3.  If not, write to
+   the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+#ifndef ATTRS_ARC_H
+#define ATTRS_ARC_H
+
+#ifndef FEATURE_LIST_NAME
+#define FEATURE_LIST_NAME feature_list
+#endif
+
+/* A table with cpu features.  */
+const struct feature_type
+{
+  unsigned feature;
+  unsigned cpus;
+  const char *attr;
+  const char *name;
+}  FEATURE_LIST_NAME [] =
+  {
+    { BTSCN,    ARC_OPCODE_ARCALL,   "BITSCAN",  "bit-scan" },
+    { CD,       ARC_OPCODE_ARCV2,    "CD",       "code-density" },
+    { DIV,      ARC_OPCODE_ARCV2,    "DIV_REM",  "div/rem" },
+    { DP,       ARC_OPCODE_ARCv2HS,  "FPUD",     "double-precision FPU" },
+    { DPA,      ARC_OPCODE_ARCv2EM,  "FPUDA",    "double assist FP" },
+    { DPX,      ARC_OPCODE_ARCFPX,   "DPFP",     "double-precision FPX" },
+    { LL64,     ARC_OPCODE_ARCv2HS,  "LL64",     "double load/store" },
+    { NPS400,   ARC_OPCODE_ARC700,   "NPS400",   "nps400" },
+    { QUARKSE1, ARC_OPCODE_ARCv2EM,  "QUARKSE1", "QuarkSE-EM" },
+    { QUARKSE2, ARC_OPCODE_ARCv2EM,  "QUARKSE2", "QuarkSE-EM" },
+    { SHFT1,    ARC_OPCODE_ARCALL,   "SA",       "shift assist" },
+    { SHFT2,    ARC_OPCODE_ARCALL,   "BS",       "barrel-shifter" },
+    { SWAP,     ARC_OPCODE_ARCALL,   "SWAP",     "swap" },
+    { SP,       ARC_OPCODE_ARCV2,    "FPUS",     "single-precision FPU" },
+    { SPX,      ARC_OPCODE_ARCFPX,   "SPFP",     "single-precision FPX" }
+  };
+
+#ifndef CONFLICT_LIST
+#define CONFLICT_LIST conflict_list
+#endif
+
+/* A table with conflicting features.  */
+unsigned CONFLICT_LIST [] = {
+  NPS400 | SPX,
+  NPS400 | DPX,
+  DPX | DPA,
+  SP | DPX,
+  SP | SPX,
+  DP | DPX,
+  DP | SPX,
+  QUARKSE1 | DP,
+  QUARKSE1 | SP
+};
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/arc-func.h ./include/opcode/arc-func.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/arc-func.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/arc-func.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Replace functions for the ARC relocs.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and
    the GNU Binutils.
@@ -274,8 +274,21 @@ replace_disp12s (unsigned insn, int valu
   insn = insn & ~0xfff;
   insn |= ((value >> 0) & 0x003f) << 6;
   insn |= ((value >> 6) & 0x003f) << 0;
-
   return insn;
 }
 
 #endif /* REPLACE_disp12s */
+
+/* mask  = 0000001111111111.  */
+#ifndef REPLACE_jli
+#define REPLACE_jli
+ATTRIBUTE_UNUSED static unsigned
+replace_jli (unsigned insn, int value)
+{
+  insn = insn & ~0x3ff;
+  insn |= ((value >> 0) & 0x03ff) << 0;
+
+  return insn;
+}
+
+#endif /* REPLACE_jli */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/arc.h ./include/opcode/arc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/arc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/arc.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Opcode table for the ARC.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    Contributed by Claudiu Zissulescu (claziss@synopsys.com)
 
@@ -33,7 +33,7 @@ extern "C" {
 #endif
 
 #ifndef MAX_INSN_FLGS
-#define MAX_INSN_FLGS	     3
+#define MAX_INSN_FLGS	     4
 #endif
 
 /* Instruction Class.  */
@@ -76,6 +76,7 @@ typedef enum
   PMU,
   POP,
   PUSH,
+  SJLI,
   STORE,
   SUB,
   ULTRAIP,
@@ -85,28 +86,31 @@ typedef enum
 /* Instruction Subclass.  */
 typedef enum
 {
-  NONE,
-  CVT,
-  BTSCN,
-  CD1,
-  CD2,
-  COND,
-  DIV,
-  DP,
-  DPA,
-  DPX,
-  MPY1E,
-  MPY6E,
-  MPY7E,
-  MPY8E,
-  MPY9E,
-  NPS400,
-  QUARKSE,
-  SHFT1,
-  SHFT2,
-  SWAP,
-  SP,
-  SPX
+  NONE     = 0,
+  CVT      = (1U << 1),
+  BTSCN    = (1U << 2),
+  CD       = (1U << 3),
+  CD1      = CD,
+  CD2      = CD,
+  COND     = (1U << 4),
+  DIV      = (1U << 5),
+  DP       = (1U << 6),
+  DPA      = (1U << 7),
+  DPX      = (1U << 8),
+  LL64     = (1U << 9),
+  MPY1E    = (1U << 10),
+  MPY6E    = (1U << 11),
+  MPY7E    = (1U << 12),
+  MPY8E    = (1U << 13),
+  MPY9E    = (1U << 14),
+  NPS400   = (1U << 15),
+  QUARKSE1 = (1U << 16),
+  QUARKSE2 = (1U << 17),
+  SHFT1    = (1U << 18),
+  SHFT2    = (1U << 19),
+  SWAP     = (1U << 20),
+  SP       = (1U << 21),
+  SPX      = (1U << 22)
 } insn_subclass_t;
 
 /* Flags class.  */
@@ -197,46 +201,7 @@ extern int arc_opcode_len (const struct 
 			    | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS)
 #define ARC_OPCODE_ARCFPX  (ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM)
 #define ARC_OPCODE_ARCV2   (ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS)
-
-/* CPU extensions.  */
-#define ARC_EA       0x0001
-#define ARC_CD       0x0001    /* Mutual exclusive with EA.  */
-#define ARC_LLOCK    0x0002
-#define ARC_ATOMIC   0x0002    /* Mutual exclusive with LLOCK.  */
-#define ARC_MPY      0x0004
-#define ARC_MULT     0x0004
-#define ARC_NPS400   0x0008
-
-/* Floating point support.  */
-#define ARC_DPFP     0x0010
-#define ARC_SPFP     0x0020
-#define ARC_FPU      0x0030
-#define ARC_FPUDA    0x0040
-
-/* NORM & SWAP.  */
-#define ARC_SWAP     0x0100
-#define ARC_NORM     0x0200
-#define ARC_BSCAN    0x0200
-
-/* A7 specific.  */
-#define ARC_UIX      0x1000
-#define ARC_TSTAMP   0x1000
-
-/* A6 specific.  */
-#define ARC_VBFDW    0x1000
-#define ARC_BARREL   0x1000
-#define ARC_DSPA     0x1000
-
-/* EM specific.  */
-#define ARC_SHIFT    0x1000
-
-/* V2 specific.  */
-#define ARC_INTR     0x1000
-#define ARC_DIV      0x1000
-
-/* V1 specific.  */
-#define ARC_XMAC     0x1000
-#define ARC_CRC      0x1000
+#define ARC_OPCODE_ARCMPY6E  (ARC_OPCODE_ARC700 | ARC_OPCODE_ARCV2)
 
 /* The operands table is an array of struct arc_operand.  */
 struct arc_operand
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/arm.h ./include/opcode/arm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/arm.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/arm.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* ARM assembler/disassembler support.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
 
    This file is part of GDB and GAS.
 
@@ -65,12 +65,15 @@
 #define ARM_EXT2_V8M_MAIN  0x00000040	/* ARMv8-M Mainline.  */
 #define ARM_EXT2_RAS	 0x00000080	/* RAS extension.  */
 #define ARM_EXT2_V8_3A	 0x00000100	/* ARM V8.3A.  */
+#define ARM_EXT2_V8A	 0x00000200	/* ARMv8-A.  */
+#define ARM_EXT2_V8_4A	 0x00000400	/* ARM V8.4A.  */
+#define ARM_EXT2_FP16_FML 0x00000800	/* ARM V8.2A FP16-FML instructions.  */
 
 /* Co-processor space extensions.  */
 #define ARM_CEXT_XSCALE   0x00000001	/* Allow MIA etc.          */
 #define ARM_CEXT_MAVERICK 0x00000002	/* Use Cirrus/DSP coprocessor.  */
-#define ARM_CEXT_IWMMXT   0x00000004    /* Intel Wireless MMX technology coprocessor.   */
-#define ARM_CEXT_IWMMXT2  0x00000008    /* Intel Wireless MMX technology coprocessor version 2.   */
+#define ARM_CEXT_IWMMXT   0x00000004    /* Intel Wireless MMX technology coprocessor.  */
+#define ARM_CEXT_IWMMXT2  0x00000008    /* Intel Wireless MMX technology coprocessor version 2.  */
 
 #define FPU_ENDIAN_PURE	 0x80000000	/* Pure-endian doubles.	      */
 #define FPU_ENDIAN_BIG	 0		/* Double words-big-endian.   */
@@ -92,7 +95,8 @@
 #define FPU_CRYPTO_EXT_ARMV8 0x00008000	/* Crypto for ARMv8.  */
 #define CRC_EXT_ARMV8	 0x00004000	/* CRC32 for ARMv8.  */
 #define FPU_VFP_EXT_ARMV8xD 0x00002000	/* Single-precision FP for ARMv8.  */
-#define FPU_NEON_EXT_RDMA 0x00001000     /* v8.1 Adv.SIMD extensions.  */
+#define FPU_NEON_EXT_RDMA 0x00001000	/* v8.1 Adv.SIMD extensions.  */
+#define FPU_NEON_EXT_DOTPROD 0x00000800	/* Dot Product extension.  */
 
 /* Architectures are the sum of the base and extensions.  The ARM ARM (rev E)
    defines the following: ARMv3, ARMv3M, ARMv4xM, ARMv4, ARMv4TxM, ARMv4T,
@@ -106,12 +110,14 @@
 #define ARM_AEXT_V3M	(ARM_AEXT_V3	| ARM_EXT_V3M)
 #define ARM_AEXT_V4xM	(ARM_AEXT_V3	| ARM_EXT_V4)
 #define ARM_AEXT_V4	(ARM_AEXT_V3M	| ARM_EXT_V4)
-#define ARM_AEXT_V4TxM	(ARM_AEXT_V4xM	| ARM_EXT_V4T)
-#define ARM_AEXT_V4T	(ARM_AEXT_V4	| ARM_EXT_V4T)
+#define ARM_AEXT_V4TxM	(ARM_AEXT_V4xM	| ARM_EXT_V4T | ARM_EXT_OS)
+#define ARM_AEXT_V4T	(ARM_AEXT_V4	| ARM_EXT_V4T | ARM_EXT_OS)
 #define ARM_AEXT_V5xM	(ARM_AEXT_V4xM	| ARM_EXT_V5)
 #define ARM_AEXT_V5	(ARM_AEXT_V4	| ARM_EXT_V5)
-#define ARM_AEXT_V5TxM	(ARM_AEXT_V5xM	| ARM_EXT_V4T | ARM_EXT_V5T)
-#define ARM_AEXT_V5T	(ARM_AEXT_V5	| ARM_EXT_V4T | ARM_EXT_V5T)
+#define ARM_AEXT_V5TxM	(ARM_AEXT_V5xM	| ARM_EXT_V4T | ARM_EXT_V5T \
+			 | ARM_EXT_OS)
+#define ARM_AEXT_V5T	(ARM_AEXT_V5	| ARM_EXT_V4T | ARM_EXT_V5T \
+			 | ARM_EXT_OS)
 #define ARM_AEXT_V5TExP	(ARM_AEXT_V5T	| ARM_EXT_V5ExP)
 #define ARM_AEXT_V5TE	(ARM_AEXT_V5TExP | ARM_EXT_V5E)
 #define ARM_AEXT_V5TEJ	(ARM_AEXT_V5TE	| ARM_EXT_V5J)
@@ -136,7 +142,7 @@
 #define ARM_AEXT_V6M_ONLY \
   ((ARM_EXT_BARRIER | ARM_EXT_V6M | ARM_EXT_THUMB_MSR) & ~(ARM_AEXT_NOTM))
 #define ARM_AEXT_V6M \
-  ((ARM_AEXT_V6K | ARM_AEXT_V6M_ONLY) & ~(ARM_AEXT_NOTM))
+  ((ARM_AEXT_V6K | ARM_AEXT_V6M_ONLY) & ~(ARM_AEXT_NOTM | ARM_EXT_OS))
 #define ARM_AEXT_V6SM (ARM_AEXT_V6M | ARM_EXT_OS)
 #define ARM_AEXT_V7M \
   ((ARM_AEXT_V7_ARM | ARM_EXT_V6M | ARM_EXT_V7M | ARM_EXT_DIV) \
@@ -147,16 +153,20 @@
 #define ARM_AEXT_V8A \
   (ARM_AEXT_V7A | ARM_EXT_MP | ARM_EXT_SEC | ARM_EXT_DIV | ARM_EXT_ADIV \
    | ARM_EXT_VIRT | ARM_EXT_V8)
-#define ARM_AEXT2_V8A	(ARM_EXT2_V6T2_V8M | ARM_EXT2_ATOMICS)
+#define ARM_AEXT2_V8AR	(ARM_EXT2_V6T2_V8M | ARM_EXT2_ATOMICS)
+#define ARM_AEXT2_V8A	(ARM_AEXT2_V8AR | ARM_EXT2_V8A)
 #define ARM_AEXT2_V8_1A	(ARM_AEXT2_V8A | ARM_EXT2_PAN)
 #define ARM_AEXT2_V8_2A	(ARM_AEXT2_V8_1A | ARM_EXT2_V8_2A | ARM_EXT2_RAS)
 #define ARM_AEXT2_V8_3A	(ARM_AEXT2_V8_2A | ARM_EXT2_V8_3A)
+#define ARM_AEXT2_V8_4A	(ARM_AEXT2_V8_3A | ARM_EXT2_FP16_FML | ARM_EXT2_V8_4A)
 #define ARM_AEXT_V8M_BASE (ARM_AEXT_V6SM | ARM_EXT_DIV)
 #define ARM_AEXT_V8M_MAIN ARM_AEXT_V7M
 #define ARM_AEXT_V8M_MAIN_DSP ARM_AEXT_V7EM
 #define ARM_AEXT2_V8M	(ARM_EXT2_V8M | ARM_EXT2_ATOMICS | ARM_EXT2_V6T2_V8M)
 #define ARM_AEXT2_V8M_MAIN (ARM_AEXT2_V8M | ARM_EXT2_V8M_MAIN)
 #define ARM_AEXT2_V8M_MAIN_DSP ARM_AEXT2_V8M_MAIN
+#define ARM_AEXT_V8R	ARM_AEXT_V8A
+#define ARM_AEXT2_V8R	ARM_AEXT2_V8AR
 
 /* Processors with specific extensions in the co-processor space.  */
 #define ARM_ARCH_XSCALE	ARM_FEATURE_LOW (ARM_AEXT_V5TE, ARM_CEXT_XSCALE)
@@ -220,6 +230,9 @@
 						 | FPU_VFP_ARMV8)
 #define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8 \
   ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 | FPU_NEON_ARMV8 | FPU_VFP_ARMV8)
+#define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_DOTPROD \
+  ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 | FPU_NEON_ARMV8 | FPU_VFP_ARMV8 \
+		      | FPU_NEON_EXT_DOTPROD)
 #define ARCH_CRC_ARMV8 ARM_FEATURE_COPROC (CRC_EXT_ARMV8)
 #define FPU_ARCH_NEON_VFP_ARMV8_1 \
   ARM_FEATURE_COPROC (FPU_NEON_ARMV8				 \
@@ -228,6 +241,8 @@
 #define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1 \
   ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 | FPU_NEON_ARMV8 | FPU_VFP_ARMV8 \
 		      | FPU_NEON_EXT_RDMA)
+#define FPU_ARCH_DOTPROD_NEON_VFP_ARMV8 \
+  ARM_FEATURE_COPROC (FPU_NEON_EXT_DOTPROD | FPU_NEON_ARMV8 | FPU_VFP_ARMV8)
 
 
 #define FPU_ARCH_ENDIAN_PURE ARM_FEATURE_COPROC (FPU_ENDIAN_PURE)
@@ -275,16 +290,21 @@
 				     CRC_EXT_ARMV8 | FPU_NEON_EXT_RDMA)
 #define ARM_ARCH_V8_3A	ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_3A,	\
 				     CRC_EXT_ARMV8 | FPU_NEON_EXT_RDMA)
+#define ARM_ARCH_V8_4A	ARM_FEATURE (ARM_AEXT_V8A, ARM_AEXT2_V8_4A,	\
+				     CRC_EXT_ARMV8 | FPU_NEON_EXT_RDMA \
+				     | FPU_NEON_EXT_DOTPROD)
 #define ARM_ARCH_V8M_BASE ARM_FEATURE_CORE (ARM_AEXT_V8M_BASE, ARM_AEXT2_V8M)
 #define ARM_ARCH_V8M_MAIN ARM_FEATURE_CORE (ARM_AEXT_V8M_MAIN, \
 					    ARM_AEXT2_V8M_MAIN)
 #define ARM_ARCH_V8M_MAIN_DSP ARM_FEATURE_CORE (ARM_AEXT_V8M_MAIN_DSP, \
 						ARM_AEXT2_V8M_MAIN_DSP)
+#define ARM_ARCH_V8R	ARM_FEATURE_CORE (ARM_AEXT_V8R, ARM_AEXT2_V8R)
 
 /* Some useful combinations:  */
 #define ARM_ARCH_NONE	ARM_FEATURE_LOW (0, 0)
 #define FPU_NONE	ARM_FEATURE_LOW (0, 0)
 #define ARM_ANY		ARM_FEATURE (-1, -1, 0)	/* Any basic core.  */
+#define FPU_ANY		ARM_FEATURE_COPROC (-1) /* Any FPU.  */
 #define ARM_FEATURE_ALL	ARM_FEATURE (-1, -1, -1)/* All CPU and FPU features.  */
 #define FPU_ANY_HARD	ARM_FEATURE_COPROC (FPU_FPA | FPU_VFP_HARD | FPU_MAVERICK)
 /* Extensions containing some Thumb-2 instructions.  If any is present, Thumb
@@ -351,31 +371,37 @@ typedef struct
   ((CPU).core[0] == ((arm_feature_set)ARM_ANY).core[0] \
    && (CPU).core[1] == ((arm_feature_set)ARM_ANY).core[1])
 
-#define ARM_MERGE_FEATURE_SETS(TARG,F1,F2)	\
-  do {						\
-    (TARG).core[0] = (F1).core[0] | (F2).core[0];\
-    (TARG).core[1] = (F1).core[1] | (F2).core[1];\
-    (TARG).coproc = (F1).coproc | (F2).coproc;	\
-  } while (0)
-
-#define ARM_CLEAR_FEATURE(TARG,F1,F2)		\
-  do {						\
-    (TARG).core[0] = (F1).core[0] &~ (F2).core[0];\
-    (TARG).core[1] = (F1).core[1] &~ (F2).core[1];\
-    (TARG).coproc = (F1).coproc &~ (F2).coproc;	\
-  } while (0)
+#define ARM_MERGE_FEATURE_SETS(TARG,F1,F2)		\
+  do							\
+    {							\
+      (TARG).core[0] = (F1).core[0] | (F2).core[0];	\
+      (TARG).core[1] = (F1).core[1] | (F2).core[1];	\
+      (TARG).coproc = (F1).coproc | (F2).coproc;	\
+    }							\
+  while (0)
+
+#define ARM_CLEAR_FEATURE(TARG,F1,F2)			\
+  do							\
+    {							\
+      (TARG).core[0] = (F1).core[0] &~ (F2).core[0];	\
+      (TARG).core[1] = (F1).core[1] &~ (F2).core[1];	\
+      (TARG).coproc = (F1).coproc &~ (F2).coproc;	\
+    }							\
+  while (0)
 
 #define ARM_FEATURE_COPY(F1, F2)		\
-  do {						\
+  do						\
+    {						\
       (F1).core[0] = (F2).core[0];		\
       (F1).core[1] = (F2).core[1];		\
       (F1).coproc = (F2).coproc;		\
-  } while (0)
+    }						\
+  while (0)
 
 #define ARM_FEATURE_EQUAL(T1,T2)		\
-  ((T1).core[0] == (T2).core[0]			\
+  (   (T1).core[0] == (T2).core[0]		\
    && (T1).core[1] == (T2).core[1]		\
-   && (T1).coproc == (T2).coproc)
+   && (T1).coproc  == (T2).coproc)
 
 #define ARM_FEATURE_ZERO(T)			\
   ((T).core[0] == 0 && (T).core[1] == 0 && (T).coproc == 0)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/avr.h ./include/opcode/avr.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/avr.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/avr.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Opcode table for the Atmel AVR micro controllers.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Denis Chertykov <denisc@overta.ru>
    
    This program is free software; you can redistribute it and/or modify
@@ -110,6 +110,7 @@
    z - Z pointer register (for [e]lpm Rd,Z[+])
    M - immediate value from 0 to 255
    n - immediate value from 0 to 255 ( n = ~M ). Relocation impossible
+   N - immediate value from 0 to 255. Relocation impossible
    s - immediate value from 0 to 7
    P - Port address value from 0 to 63. (in, out)
    p - Port address value from 0 to 31. (cbi, sbi, sbic, sbis)
@@ -306,3 +307,7 @@ AVR_INSN (eijmp, "",   "1001010000011001
 /* DES instruction for encryption and decryption.  */
 AVR_INSN (des,  "E",   "10010100EEEE1011", 1, AVR_ISA_DES,  0x940B)
 
+/* Operands are evaluated by hand and won't pop new fux-ups.
+   The pseudo-insn is hidden behind NOP so that avr-dis.c don't see it. */
+AVR_INSN (__gcc_isr, "", "0000000000000000", 1, AVR_ISA_1200,  0x0)
+
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/bfin.h ./include/opcode/bfin.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/bfin.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/bfin.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* bfin.h -- Header file for ADI Blackfin opcode table
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of GDB, GAS, and the GNU binutils.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/cgen.h ./include/opcode/cgen.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/cgen.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/cgen.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Header file for targets using CGEN: Cpu tools GENerator.
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of GDB, the GNU debugger, and the GNU Binutils.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/convex.h ./include/opcode/convex.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/convex.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/convex.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Information for instruction disassembly on the Convex.
-   Copyright (C) 1989-2017 Free Software Foundation, Inc.
+   Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/cr16.h ./include/opcode/cr16.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/cr16.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/cr16.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* cr16.h -- Header file for CR16 opcode and register tables.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
    Contributed by M R Swami Reddy
 
    This file is part of GAS, GDB and the GNU binutils.
@@ -404,9 +404,6 @@ extern const unsigned int cr16_num_cc;
 /* Table of instructions with no operands.  */
 extern const char * cr16_no_op_insn[];
 
-/* Current instruction we're assembling.  */
-extern const inst *instruction;
-
 /* A macro for representing the instruction "constant" opcode, that is,
    the FIXED part of the instruction. The "constant" opcode is represented
    as a 32-bit unsigned long, where OPC is expanded (by a left SHIFT)
@@ -439,11 +436,6 @@ typedef unsigned long long ULONGLONG;
 typedef unsigned long dwordU;
 typedef unsigned short wordU;
 
-/* Globals to store opcode data and build the instruction.  */
-extern wordU cr16_words[3];
-extern ULONGLONG cr16_allWords;
-extern ins cr16_currInsn;
-
 /* Prototypes for function in cr16-dis.c.  */
 extern void cr16_make_instruction (void);
 extern int  cr16_match_opcode (void);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/cris.h ./include/opcode/cris.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/cris.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/cris.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* cris.h -- Header file for CRIS opcode and register tables.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Axis Communications AB, Lund, Sweden.
    Originally written for GAS 1.38.1 by Mikael Asker.
    Updated, BFDized and GNUified by Hans-Peter Nilsson.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/crx.h ./include/opcode/crx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/crx.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/crx.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* crx.h -- Header file for CRX opcode and register tables.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
    Contributed by Tomer Levi, NSC, Israel.
    Originally written for GAS 2.12 by Tomer Levi, NSC, Israel.
    Updates, BFDizing, GNUifying and ELF support by Tomer Levi.
@@ -384,14 +384,11 @@ extern const int crx_num_traps;
 #define NUMTRAPS crx_num_traps
 
 /* cst4 operand mapping.  */
-extern const int cst4_map[];
-extern const int cst4_maps;
+extern const int crx_cst4_map[];
+extern const int crx_cst4_maps;
 
 /* Table of instructions with no operands.  */
-extern const char* no_op_insn[];
-
-/* Current instruction we're assembling.  */
-extern const inst *instruction;
+extern const char* crx_no_op_insn[];
 
 /* A macro for representing the instruction "constant" opcode, that is,
    the FIXED part of the instruction. The "constant" opcode is represented
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/d10v.h ./include/opcode/d10v.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/d10v.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/d10v.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* d10v.h -- Header file for D10V opcode table
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Written by Martin Hunt (hunt@cygnus.com), Cygnus Support
 
    This file is part of GDB, GAS, and the GNU binutils.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/d30v.h ./include/opcode/d30v.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/d30v.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/d30v.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* d30v.h -- Header file for D30V opcode table
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
    Written by Martin Hunt (hunt@cygnus.com), Cygnus Solutions
 
    This file is part of GDB, GAS, and the GNU binutils.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/dlx.h ./include/opcode/dlx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/dlx.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/dlx.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Table of opcodes for the DLX microprocess.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of GDB and GAS.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/ft32.h ./include/opcode/ft32.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/ft32.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/ft32.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Definitions for decoding the ft32 opcode table.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Contributed by FTDI (support@ftdichip.com)
 
 This program is free software; you can redistribute it and/or modify
@@ -89,9 +89,9 @@ typedef struct ft32_opc_info_t
 #define FT32_FLD_K16 (1 << 14)
 #define FT32_FLD_K16_BIT 0
 #define FT32_FLD_K16_SIZ 16
-#define FT32_FLD_K8 (1 << 15)
-#define FT32_FLD_K8_BIT 0
-#define FT32_FLD_K8_SIZ 8
+#define FT32_FLD_K15 (1 << 15)
+#define FT32_FLD_K15_BIT 0
+#define FT32_FLD_K15_SIZ 15
 #define FT32_FLD_AL (1 << 16)
 #define FT32_FLD_AL_BIT 0
 #define FT32_FLD_AL_SIZ 4
@@ -104,3 +104,386 @@ typedef struct ft32_opc_info_t
 
 #define FT32_FLD_R_D_POST (1 << 17)
 #define FT32_FLD_R_1_POST (1 << 18)
+
+static const unsigned int sc_form_0[] = {
+0x44000000, 0x44000002, 0x44000004, 0x44000005, 0x4400000b,
+0x44000010, 0x44000012, 0x44000014, 0x44000015, 0x44000018,
+0x4400001b, 0x44000020, 0x44000022, 0x44000024, 0x44000025,
+0x4400002b, 0x44000030, 0x44000032, 0x44000034, 0x44000035,
+0x4400003b, 0x44000040, 0x44000042, 0x44000044, 0x44000045,
+0x4400004b, 0x44000050, 0x44000060, 0x44000062, 0x44000065,
+0x44000070, 0x44000072, 0x44000075, 0x44000080, 0x44000082,
+0x44000090, 0x44000092, 0x440000a0, 0x440000a2, 0x440000b0,
+0x440000d0, 0x440000d2, 0x440000d5, 0x440000e0, 0x440000e2,
+0x440000f0, 0x440000f2, 0x440000f5, 0x44000100, 0x44000102,
+0x44000110, 0x44000120, 0x44000122, 0x44000130, 0x44000140,
+0x44000170, 0x44000180, 0x44000190, 0x440001a0, 0x440001b0,
+0x440001e0, 0x440001f0, 0x44004000, 0x44004003, 0x4400400c,
+0x4400400d, 0x44004010, 0x44004011, 0x44004013, 0x44004014,
+0x44004016, 0x44004019, 0x4400401a, 0x44004020, 0x44004021,
+0x44004028, 0x4400402a, 0x44004034, 0x44004038, 0x44004039,
+0x44004040, 0x44004048, 0x44004058, 0x44004064, 0x44004074,
+0x44004080, 0x44004081, 0x44004088, 0x44004089, 0x44004098,
+0x440040c0, 0x440040ca, 0x440040f4, 0x44004100, 0x44004108,
+0x44004109, 0x4400410a, 0x4400410b, 0x44004180, 0x44004182,
+0x440041c0, 0x440041c2, 0x440041f4, 0x44004200, 0x44004202,
+0x4400420b, 0x4400421b, 0x4400422b, 0x44004240, 0x44004242,
+0x4400424b, 0x4400425b, 0x4400426b, 0x4400427b, 0x44004280,
+0x44004282, 0x440042ab, 0x440042bb, 0x440042c0, 0x440042c2,
+0x44004300, 0x44004340, 0x440043c3, 0x4400440b, 0x44004543,
+0x44004553, 0x440047f4, 0x44004800, 0x44004980, 0x44004a0b,
+0x44004a80, 0x44004dc0, 0x44004ff4, 0x44005003, 0x44005353,
+0x4400537b, 0x440053e3, 0x44005700, 0x4400594b, 0x4400620b,
+0x4400621b, 0x4400622b, 0x4400623b, 0x4400624b, 0x4400625b,
+0x4400626b, 0x4400627b, 0x4400628b, 0x4400629b, 0x440062bb,
+0x440062fb, 0x4400633b, 0x4400637b, 0x44006383, 0x44007f00,
+0x44007f80, 0x44007fc0, 0x44007fe0, 0x44007ff0, 0x44007ff3, 0x44007ff6
+};
+static const unsigned int sc_form_1[] = {
+0x44000002, 0x44008002, 0x44010002, 0x44010008, 0x44018002,
+0x44020002, 0x44030002, 0x44038002
+};
+static const unsigned int sc_form_2[] = {
+0x59e04002, 0x59e04012, 0x59e04022, 0x59e04032, 0x59e04042,
+0x59e04052, 0x59e04072, 0x59e04082, 0x59e07ff2, 0x5de00002,
+0x5de00012, 0x5de00022, 0x5de00032, 0x5de00042, 0x5de00052,
+0x5de00062, 0x5de00072, 0x5de00082, 0x5de000a2, 0x5de000d2,
+0x5de000e2, 0x5de000f2, 0x5de00102, 0x5de00112, 0x5de00122,
+0x5de00132, 0x5de00172, 0x5de04002, 0x5de04012, 0x5de04022,
+0x5de04032, 0x5de04042, 0x5de04052, 0x5de04062, 0x5de04072,
+0x5de04082, 0x5de04092, 0x5de040f2, 0x5de04102, 0x5de04112,
+0x5de04142, 0x5de04162, 0x5de041b2, 0x5de041f2, 0x5de04202,
+0x5de0420c, 0x5de0421c, 0x5de0422c, 0x5de0423c, 0x5de04242,
+0x5de0424c, 0x5de0425c, 0x5de0426c, 0x5de0427c, 0x5de0428c,
+0x5de0429c, 0x5de042ac, 0x5de042cc, 0x5de042dc, 0x5de042ec,
+0x5de042fc, 0x5de0430c, 0x5de0431c, 0x5de0433c, 0x5de0436c,
+0x5de0437c, 0x5de04382, 0x5de043ac, 0x5de043bc, 0x5de043cc,
+0x5de043dc, 0x5de04ff2, 0x5de07ff2, 0x84000000
+};
+static const unsigned int sc_form_3[] = {
+0x44000010, 0x44000024, 0x44000025, 0x44000030, 0x44000034,
+0x44004000, 0x4400400c, 0x4400400d, 0x44004010, 0x44004014,
+0x44004028, 0x44004038, 0x44004040, 0x440040ca, 0x44004109,
+0x44004880, 0x44004ac0, 0x44004e00, 0x44004e80, 0x44004ff4,
+0x4400500c, 0x44005200, 0x44005680, 0x44005700, 0x4400620b,
+0x44007f80, 0x44008020, 0x44008024, 0x4400c000, 0x4400c00c,
+0x4400c00d, 0x4400c010, 0x4400c028, 0x4400c038, 0x4400c1f9,
+0x4400cff4, 0x4400d00c, 0x4400d173, 0x4400ff80, 0x4400fff0,
+0x44010030, 0x44014000, 0x4401400c, 0x4401400d, 0x44014010,
+0x44014028, 0x44014074, 0x44014080, 0x440143f3, 0x44014ff4,
+0x4401500c, 0x44015743, 0x44017ff0, 0x44018030, 0x4401c000,
+0x4401c00c, 0x4401c010, 0x4401cff4, 0x4401d00c, 0x44020100,
+0x44024000, 0x44024014, 0x44027f80, 0x4402c000, 0x44030085,
+0x44034000, 0x44034109, 0x4403c000, 0x44044000, 0x44044109,
+0x4404410b, 0x4404c000, 0x440680e0, 0x4406c000, 0x4406c040,
+0x4406c080, 0x4406c0c0, 0x4406c300, 0x4406c3c0, 0x4406c900,
+0x4406cac0, 0x4406cb40, 0x4406cbc0, 0x4406ce80, 0x4406d5c0,
+0x4406d680, 0x4406d700, 0x4406d740, 0x4406d780, 0x4406dfc0,
+0x44074000, 0x44074010, 0x44074e80, 0x4407c000, 0x4407c00d,
+0x4407c074, 0x44084000, 0x4408c000, 0x44094000, 0x4409c000,
+0x440a4000, 0x440ac000, 0x440b4000, 0x440bc000, 0x440c4000,
+0x440c4040, 0x440cc000, 0x440d4000, 0x440dc000, 0x440ef340,
+0x440ef400, 0x440ef440, 0x440ef4c0, 0x440ef540, 0x440ef5c0,
+0x440ef6b0, 0x440ef700, 0x440ef780, 0x440ef8c0, 0x440f420d,
+0x440f421d, 0x440f426d, 0x440fc180, 0x440fc1a0, 0x440fc1b0,
+0x440fc1c0, 0x440fc200, 0x440fc240, 0x440fc280, 0x440fc380,
+0x440fc840, 0x440fc8c0, 0x440fc900, 0x440fc980, 0x440fcd80,
+0x64000000, 0x64000001, 0x64000002, 0x64000003, 0x64000004,
+0x64000005, 0x64000006, 0x64000007, 0x64000008, 0x64000009,
+0x6400000a, 0x6400000b, 0x6400000c, 0x6400000d, 0x6400000e,
+0x6400000f, 0x64000010, 0x64000011, 0x64000012, 0x64000013,
+0x64000014, 0x64000015, 0x64000017, 0x64000018, 0x64000019,
+0x6400001a, 0x6400001d, 0x64000020, 0x64000023, 0x64000024,
+0x64000027, 0x6400002b, 0x6400002c, 0x6400002d, 0x64000030,
+0x64000035, 0x6400003c, 0x64000040, 0x64000048, 0x64000064,
+0x6400006c, 0x64000080, 0x640000ff, 0x64000100, 0x640001b0,
+0x640001b8, 0x64000200, 0x64000218, 0x64000240, 0x6400024c,
+0x64000250, 0x640003e8, 0x64000400, 0x64000409, 0x64000554,
+0x64000600, 0x64000690, 0x64000730, 0x640007ff, 0x64000800,
+0x64000900, 0x64000fff, 0x64001000, 0x6400182c, 0x64001b70,
+0x64001c1c, 0x64001c24, 0x64001fff, 0x64002000, 0x64003598,
+0x640036ec, 0x64003fff, 0x640052c0, 0x640054e4, 0x64005a3c,
+0x64005fa4, 0x64006468, 0x64006718, 0x64008000, 0x6400c000,
+0x6400ffff, 0x64010000, 0x64010008, 0x640102a0, 0x64014515,
+0x64040000, 0x64050000, 0x6407c000, 0x640ff800, 0x640ffc00,
+0x640ffc01, 0x640ffc02, 0x640fffff, 0x8c000000, 0x94000000,
+0x94000018, 0x9400001c, 0x94000020, 0x98000000, 0xa0000000,
+0xa8000000, 0xa8000001, 0xa8000002, 0xa8000003, 0xa8008000,
+0xa8008002, 0xa8010000, 0xa8018000, 0xa8020000, 0xa8068000,
+0xa8068005, 0xa8068006, 0xa8068007, 0xa806800f, 0xa8068040,
+0xa8068043, 0xa8068054, 0xa8070000, 0xa8078000, 0xa8080000,
+0xa8090000, 0xa80b0000, 0xa80f801b, 0xaa000000, 0xaa008000,
+0xaa008002, 0xaa00800c, 0xaa010000, 0xaa068000, 0xaa068002,
+0xaa068004, 0xaa068006, 0xaa068008, 0xaa06800a, 0xaa06800c,
+0xaa068024, 0xaa070000, 0xaa070002, 0xaa07000c, 0xaa078000,
+0xaa078002, 0xac000000, 0xac000004, 0xac000008, 0xac00000c,
+0xac000010, 0xac000014, 0xac000018, 0xac00001c, 0xac000020,
+0xac000024, 0xac000028, 0xac00002c, 0xac000030, 0xac000038,
+0xac00003c, 0xac000040, 0xac000044, 0xac000058, 0xac00006c,
+0xac008000, 0xac008004, 0xac008008, 0xac00800c, 0xac008010,
+0xac008018, 0xac008020, 0xac008024, 0xac008028, 0xac008030,
+0xac008034, 0xac008038, 0xac00803c, 0xac008044, 0xac008070,
+0xac008078, 0xac010000, 0xac010004, 0xac010008, 0xac01000c,
+0xac010010, 0xac01002c, 0xac018000, 0xac018004, 0xac018008,
+0xac020000, 0xac020004, 0xac020008, 0xac028000, 0xac030000,
+0xac038000, 0xac048000, 0xac050000, 0xac068000, 0xac068004,
+0xac068008, 0xac06800c, 0xac068010, 0xac068014, 0xac068018,
+0xac06801c, 0xac068020, 0xac068024, 0xac068028, 0xac06802c,
+0xac068030, 0xac068034, 0xac068038, 0xac06803c, 0xac068040,
+0xac068044, 0xac068048, 0xac06804c, 0xac068050, 0xac068058,
+0xac070000, 0xac070004, 0xac070008, 0xac07000c, 0xac070010,
+0xac070014, 0xac070018, 0xac07001c, 0xac070024, 0xac070028,
+0xac07002c, 0xac070038, 0xac07003c, 0xac070040, 0xac070044,
+0xac070048, 0xac07004c, 0xac070054, 0xac078000, 0xac078004,
+0xac078008, 0xac07800c, 0xac078024, 0xac07803c, 0xac080000,
+0xac080004, 0xac080008, 0xac08003c, 0xac088000, 0xac088004,
+0xac088008, 0xac08800c, 0xac090000, 0xac098000, 0xac0a0000,
+0xac0a0004, 0xac0a8000, 0xac0b0000, 0xac0c0000, 0xac0d8004,
+0xac0d8008, 0xac0e8090, 0xac0e8094, 0xac0e80fc, 0xac0f8018,
+0xac0f801c, 0xac0f8020, 0xac0f8024, 0xac0f8028, 0xac0f802c,
+0xac0f8030, 0xac0f8034, 0xac0f8038, 0xac0f803c, 0xac0f8040,
+0xac0f8044, 0xac0f8048, 0xac0f804c, 0xac0f8050, 0xac0f8054,
+0xac0f8058, 0xb0000000, 0xb0000006, 0xb0000009, 0xb0000018,
+0xb0000019, 0xb000001b, 0xb0008000, 0xb0010000, 0xb0018000,
+0xb0018087, 0xb0020000, 0xb0030000, 0xb0070000, 0xb0078000,
+0xb0080000, 0xb2000000, 0xb2000006, 0xb200000c, 0xb2008000,
+0xb200800c, 0xb2010000, 0xb2018000, 0xb2020000, 0xb2078000,
+0xb4000000, 0xb4000004, 0xb4000008, 0xb400000c, 0xb4000010,
+0xb4000014, 0xb4000018, 0xb400001c, 0xb4000020, 0xb4000024,
+0xb4000028, 0xb400002c, 0xb4000030, 0xb4000034, 0xb4000038,
+0xb400003c, 0xb4000040, 0xb4000044, 0xb4000048, 0xb4000050,
+0xb4000054, 0xb400006c, 0xb4008000, 0xb4008004, 0xb4008008,
+0xb400800c, 0xb4008010, 0xb4008014, 0xb4008018, 0xb400801c,
+0xb4008020, 0xb4008024, 0xb4008028, 0xb400802c, 0xb4008034,
+0xb4008038, 0xb4008040, 0xb4008044, 0xb400806c, 0xb4008070,
+0xb4010000, 0xb4010004, 0xb4010008, 0xb401000c, 0xb4010010,
+0xb4010018, 0xb401001c, 0xb4010020, 0xb4010024, 0xb4010028,
+0xb401002c, 0xb4018000, 0xb4018004, 0xb4018008, 0xb4018018,
+0xb401801c, 0xb4020000, 0xb4020004, 0xb4020008, 0xb402000c,
+0xb4020018, 0xb4028000, 0xb4028018, 0xb4030000, 0xb4030008,
+0xb4030018, 0xb4038000, 0xb4068000, 0xb4068004, 0xb4068008,
+0xb406800c, 0xb4068018, 0xb406801c, 0xb4068020, 0xb4068024,
+0xb4068028, 0xb4070000, 0xb4070004, 0xb4070008, 0xb4070010,
+0xb4070018, 0xb4070024, 0xb4070028, 0xb4078000, 0xb4078024,
+0xb4080000, 0xb4080004, 0xb4090000, 0xb4098000, 0xb40c8000
+};
+
+#define N_SC_FORM0  (sizeof (sc_form_0) / sizeof (unsigned int))
+#define N_SC_FORM1  (sizeof (sc_form_1) / sizeof (unsigned int))
+#define N_SC_FORM2  (sizeof (sc_form_2) / sizeof (unsigned int))
+#define N_SC_FORM3  (sizeof (sc_form_3) / sizeof (unsigned int))
+
+static int
+sc_compar (const void *va, const void *vb)
+{
+  const unsigned int *a = (unsigned int *) va;
+  const unsigned int *b = (unsigned int *) vb;
+  return (*a - *b);
+}
+
+static int ATTRIBUTE_UNUSED
+ft32_shortcode (unsigned int op32, unsigned int *sc)
+{
+  unsigned int Rd_mask = 31 << 20;
+  unsigned int R1_mask = 31 << 15;
+  unsigned int R2_mask = 2047 << 4;
+  unsigned int Rd = (op32 >> 20) & 31;
+  unsigned int R1 = (op32 >> 15) & 31;
+  unsigned int R2 = (op32 >> 4) & 2047;
+  unsigned int lookup;
+  unsigned int *find = NULL;
+  unsigned int code = 0, r = 0;
+
+  /* Form 0 */
+  if (Rd == R1)
+    {
+      lookup = op32 & ~Rd_mask & ~R1_mask;
+      find = (unsigned int *) bsearch (&lookup, sc_form_0, N_SC_FORM0,
+				       sizeof (unsigned int), sc_compar);
+      code = find - sc_form_0;
+      r = Rd;
+    }
+
+  /* Form 1 */
+  if ((find == NULL) && (Rd == R2))
+    {
+      lookup = op32 & ~Rd_mask & ~R2_mask;
+      find = (unsigned int *) bsearch (&lookup, sc_form_1, N_SC_FORM1,
+				       sizeof (unsigned int), sc_compar);
+      code = find - sc_form_1 + N_SC_FORM0;
+      r = Rd;
+    }
+
+  /* Form 2 */
+  if (find == NULL)
+    {
+      lookup = op32 & ~R1_mask;
+      find = (unsigned int *) bsearch (&lookup, sc_form_2, N_SC_FORM2,
+				       sizeof (unsigned int), sc_compar);
+      code = find - sc_form_2 + (N_SC_FORM0 + N_SC_FORM1);
+      r = R1;
+    }
+
+  /* Form 3 */
+  if (find == NULL)
+    {
+      lookup = op32 & ~Rd_mask;
+      find = (unsigned int *) bsearch (&lookup, sc_form_3, N_SC_FORM3,
+				       sizeof (unsigned int), sc_compar);
+      code = find - sc_form_3 + (N_SC_FORM0 + N_SC_FORM1 + N_SC_FORM2);
+      r = Rd;
+    }
+
+  *sc = (code << 5) | r;
+
+  return (find != NULL);
+}
+
+static int ATTRIBUTE_UNUSED
+ft32_split_shortcode (unsigned int op32, unsigned int code15[2])
+{
+  int code3;
+  unsigned int code30;
+
+  switch (op32 >> 27)
+    {
+    case 2:
+      code3 = 0;
+      break;
+    case 3:
+      code3 = 1;
+      break;
+    case 4:
+      code3 = 2;
+      break;
+    case 5:
+      code3 = 3;
+      break;
+    case 6:
+      code3 = 4;
+      break;
+    case 9:
+      code3 = 5;
+      break;
+    case 10:
+      code3 = 6;
+      break;
+    case 14:
+      code3 = 7;
+      break;
+    default:
+      code3 = -1;
+      break;
+    }
+
+  if (code3 == -1)
+    {
+      code15[0] = 0;
+      code15[1] = 0;
+      return 0;
+    }
+  else
+    {
+      code30 = ((op32 & 0x07ffffff) << 3) | code3;
+      code15[0] = code30 & 0x7fff;
+      code15[1] = (code30 >> 15) & 0x7fff;
+      return 1;
+    }
+}
+
+static unsigned int ATTRIBUTE_UNUSED
+ft32_merge_shortcode (unsigned int code15[2])
+{
+  static const unsigned char pat3[] = { 2, 3, 4, 5, 6, 9, 10, 14 };
+
+  unsigned int code30 = (code15[1] << 15) | code15[0];
+  unsigned int code27 = code30 >> 3;
+  unsigned int code3 = code30 & 7;
+  unsigned int pattern = pat3[code3];
+  return (pattern << 27) | code27;
+}
+
+static int ATTRIBUTE_UNUSED
+ft32_decode_shortcode (unsigned int pc, unsigned int op32, unsigned int *sc)
+{
+  int code3;
+  unsigned int code30;
+  unsigned int code15[2];
+  size_t i;
+
+  switch (op32 >> 27)
+    {
+    case 2:
+      code3 = 0;
+      break;
+    case 3:
+      code3 = 1;
+      break;
+    case 4:
+      code3 = 2;
+      break;
+    case 5:
+      code3 = 3;
+      break;
+    case 6:
+      code3 = 4;
+      break;
+    case 9:
+      code3 = 5;
+      break;
+    case 10:
+      code3 = 6;
+      break;
+    case 14:
+      code3 = 7;
+      break;
+    default:
+      code3 = -1;
+      break;
+    }
+
+  if (code3 == -1)
+    return 0;
+  else
+    {
+      code30 = ((op32 & 0x07ffffff) << 3) | code3;
+      code15[0] = code30 & 0x7fff;
+      code15[1] = (code30 >> 15) & 0x7fff;
+      for (i = 0; i < 2; i++)
+	{
+	  unsigned int code = code15[i] >> 5;
+	  unsigned int r = code15[i] & 0x1f;
+
+	  if (code < 768)
+	    {
+	      if (code < N_SC_FORM0)
+		sc[i] = sc_form_0[code] | (r << 20) | (r << 15);
+	      else if (code < (N_SC_FORM0 + N_SC_FORM1))
+		sc[i] = sc_form_1[code - N_SC_FORM0] | (r << 20) | (r << 4);
+	      else if (code < (N_SC_FORM0 + N_SC_FORM1 + N_SC_FORM2))
+		sc[i] = sc_form_2[code - (N_SC_FORM0 + N_SC_FORM1)]
+		  | (r << 15);
+	      else
+		sc[i] = sc_form_3[code -
+				  (N_SC_FORM0 + N_SC_FORM1 + N_SC_FORM2)]
+		  | (r << 20);
+	    }
+	  else
+	    {
+	      int jtype = (code15[i] >> 9) & 15;
+	      int offset = code15[i] & 511;
+	      if (offset & 256)
+		offset -= 512;
+	      if (jtype < 14)
+		sc[i] =
+		  0x00200000 | ((jtype >> 1) << 22) | ((jtype & 1) << 19);
+	      else if (jtype == 14)
+		sc[i] = 0x00300000;
+	      else
+		sc[i] = 0x00340000;
+	      sc[i] |= ((pc >> 2) + offset);
+	    }
+	}
+      return 1;
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/h8300.h ./include/opcode/h8300.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/h8300.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/h8300.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Opcode table for the H8/300
-   Copyright (C) 1991-2017 Free Software Foundation, Inc.
+   Copyright (C) 1991-2018 Free Software Foundation, Inc.
    Written by Steve Chamberlain <sac@cygnus.com>.
    
    This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/hppa.h ./include/opcode/hppa.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/hppa.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/hppa.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Table of opcodes for the PA-RISC.
-   Copyright (C) 1990-2017 Free Software Foundation, Inc.
+   Copyright (C) 1990-2018 Free Software Foundation, Inc.
 
    Contributed by the Center for Software Science at the
    University of Utah (pa-gdb-bugs@cs.utah.edu).
@@ -594,7 +594,7 @@ static const struct pa_opcode pa_opcodes
 { "addibf",	0xac000000, 0xfc000000, "?dn5,b,w", pa10, 0},
 { "bb",		0xc0006000, 0xffe06000, "?Bnx,!,w", pa20, FLAG_STRICT}, 
 { "bb",		0xc0004000, 0xffe06000, "?bnx,!,w", pa10, FLAG_STRICT}, 
-{ "bb",		0xc4004000, 0xfc004000, "?Bnx,B,w", pa20, FLAG_STRICT}, 
+{ "bb",		0xc4006000, 0xfc006000, "?Bnx,B,w", pa20, FLAG_STRICT}, 
 { "bb",		0xc4004000, 0xfc006000, "?bnx,Q,w", pa10, FLAG_STRICT}, 
 { "bb",		0xc4004000, 0xfc006000, "?bnx,Q,w", pa10, 0}, 
 { "bvb",	0xc0004000, 0xffe04000, "?bnx,w", pa10, 0},
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/i370.h ./include/opcode/i370.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/i370.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/i370.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* i370.h -- Header file for S/390 opcode table
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    PowerPC version written by Ian Lance Taylor, Cygnus Support
    Rewritten for i370 ESA/390 support, Linas Vepstas <linas@linas.org>
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/i386.h ./include/opcode/i386.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/i386.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/i386.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* opcode/i386.h -- Intel 80386 opcode macros
-   Copyright (C) 1989-2017 Free Software Foundation, Inc.
+   Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler, and GDB, the GNU Debugger.
 
@@ -77,6 +77,7 @@
 #define XACQUIRE_PREFIX_OPCODE 0xf2
 #define XRELEASE_PREFIX_OPCODE 0xf3
 #define BND_PREFIX_OPCODE 0xf2
+#define NOTRACK_PREFIX_OPCODE 0x3e
 
 #define TWO_BYTE_OPCODE_ESCAPE 0x0f
 #define NOP_OPCODE (char) 0x90
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/i860.h ./include/opcode/i860.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/i860.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/i860.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Table of opcodes for the i860.
-   Copyright (C) 1989-2017 Free Software Foundation, Inc.
+   Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/i960.h ./include/opcode/i960.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/i960.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/i960.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Basic 80960 instruction formats.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/ia64.h ./include/opcode/ia64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/ia64.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/ia64.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* ia64.h -- Header file for ia64 opcode table
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/m68hc11.h ./include/opcode/m68hc11.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/m68hc11.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/m68hc11.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* m68hc11.h -- Header file for Motorola 68HC11 & 68HC12 opcode table
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Written by Stephane Carrez (stcarrez@nerim.fr)
 
    This file is part of GDB, GAS, and the GNU binutils.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/m68k.h ./include/opcode/m68k.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/m68k.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/m68k.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Opcode table header for m680[01234]0/m6888[12]/m68851.
-   Copyright (C) 1989-2017 Free Software Foundation, Inc.
+   Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This file is part of GDB, GAS, and the GNU binutils.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/m88k.h ./include/opcode/m88k.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/m88k.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/m88k.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Table of opcodes for the Motorola M88k family.
-   Copyright (C) 1989-2017 Free Software Foundation, Inc.
+   Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This file is part of GDB and GAS.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/metag.h ./include/opcode/metag.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/metag.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/metag.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Imagination Technologies Meta opcode table.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Contributed by Imagination Technologies Ltd.
 
    This file is part of GDB and GAS.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/mips.h ./include/opcode/mips.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/mips.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/mips.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* mips.h.  Mips opcode list for GDB, the GNU debugger.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
    Contributed by Ralph Campbell and OSF
    Commented and modified by Ian Lance Taylor, Cygnus Support
 
@@ -409,6 +409,9 @@ enum mips_operand_type {
   /* $pc, which has no encoding in the architectural instruction.  */
   OP_PC,
 
+  /* $28, which has no encoding in the MIPS16e architectural instruction.  */
+  OP_REG28,
+
   /* A 4-bit XYZW channel mask or 2-bit XYZW index; the size determines
      which.  */
   OP_VU0_SUFFIX,
@@ -932,6 +935,9 @@ mips_opcode_32bit_p (const struct mips_o
    "+z" 5-bit rz register (OP_*_RZ)
    "+Z" 5-bit fz register (OP_*_FZ)
 
+   interAptiv MR2:
+   "-m" register list for SAVE/RESTORE instruction
+
    Enhanced VA Scheme:
    "+j" 9-bit signed offset in bit 7 (OP_*_EVAOFFSET)
 
@@ -1004,7 +1010,7 @@ mips_opcode_32bit_p (const struct mips_o
    Extension character sequences used so far ("-" followed by the
    following), for quick reference when adding more:
    "AB"
-   "abdstuvwxy"
+   "abdmstuvwxy"
 */
 
 /* These are the bits which may be set in the pinfo field of an
@@ -1116,7 +1122,12 @@ mips_opcode_32bit_p (const struct mips_o
 #define INSN2_FORBIDDEN_SLOT        0x00008000
 /* Opcode table entry is for a short MIPS16 form only.  An extended
    encoding may still exist, but with a separate opcode table entry
-   required.  */
+   required.  In disassembly the presence of this flag in an otherwise
+   successful match against an extended instruction encoding inhibits
+   matching against any subsequent short table entry even if it does
+   not have this flag set.  A table entry matching the full extended
+   encoding is needed or otherwise the final EXTEND entry will apply,
+   for the disassembly of the prefix only.  */
 #define INSN2_SHORT_ONLY	    0x00010000
 
 /* Masks used to mark instructions to indicate which MIPS ISA level
@@ -1206,7 +1217,7 @@ static const unsigned int mips_isa_table
 #undef ISAF
 
 /* Masks used for Chip specific instructions.  */
-#define INSN_CHIP_MASK		  0xc3ff4f60
+#define INSN_CHIP_MASK		  0xc7ff4f60
 
 /* Cavium Networks Octeon instructions.  */
 #define INSN_OCTEON		  0x00000800
@@ -1246,6 +1257,8 @@ static const unsigned int mips_isa_table
 #define INSN_LOONGSON_3A          0x00000400
 /* RMI Xlr instruction */
 #define INSN_XLR                 0x00000020
+/* Imagination interAptiv MR2.  */
+#define INSN_INTERAPTIV_MR2	  0x04000000
 
 /* DSP ASE */
 #define ASE_DSP			0x00000001
@@ -1274,6 +1287,13 @@ static const unsigned int mips_isa_table
 #define ASE_XPA			0x00002000
 /* DSP R3 Module.  */
 #define ASE_DSPR3		0x00004000
+/* MIPS16e2 ASE.  */
+#define ASE_MIPS16E2		0x00008000
+/* MIPS16e2 MT ASE instructions.  */
+#define ASE_MIPS16E2_MT		0x00010000
+/* The Virtualization ASE has eXtended Physical Addressing (XPA)
+   instructions which are only valid when both ASEs are enabled.  */
+#define ASE_XPA_VIRT		0x00020000
 
 /* MIPS ISA defines, use instead of hardcoding ISA level.  */
 
@@ -1344,6 +1364,7 @@ static const unsigned int mips_isa_table
 #define CPU_OCTEON2	6502
 #define CPU_OCTEON3	6503
 #define CPU_XLR     	887682   	/* decimal 'XLR'   */
+#define CPU_INTERAPTIV_MR2 736550	/* decimal 'IA2'  */
 
 /* Return true if the given CPU is included in INSN_* mask MASK.  */
 
@@ -1414,6 +1435,9 @@ cpu_is_member (int cpu, unsigned int mas
     case CPU_XLR:
       return (mask & INSN_XLR) != 0;
 
+    case CPU_INTERAPTIV_MR2:
+      return (mask & INSN_INTERAPTIV_MR2) != 0;
+
     case CPU_MIPS32R6:
       return (mask & INSN_ISA_MASK) == INSN_ISA32R6;
 
@@ -1820,7 +1844,26 @@ extern int bfd_mips_num_opcodes;
    "e" 11 bit extension value
    "l" register list for entry instruction
    "L" register list for exit instruction
+   ">" 5-bit SYNC code
+   "9" 9-bit signed immediate
+   "G" global pointer ($gp or $28)
+   "N" 5-bit coprocessor register
+   "O" 3-bit sel field for MFC0/MTC0
+   "Q" 5-bit hardware register
+   "T" 5-bit CACHE opcode or PREF hint
+   "b" 5-bit INS/EXT position, which becomes LSB
+       Enforces: 0 <= pos < 32.
+   "c" 5-bit INS size, which becomes MSB
+       Requires that "b" occurs first to set position.
+       Enforces: 0 < (pos+size) <= 32.
+   "d" 5-bit EXT size, which becomes MSBD
+       Requires that "b" occurs first to set position.
+       Enforces: 0 < (pos+size) <= 32.
+   "n" 2-bit immediate (1 .. 4)
+   "o" 5-bit unsigned immediate * 16
+   "r" 3-bit register
    "s" 3-bit ASMACRO select immediate
+   "u" 16-bit unsigned immediate
 
    "I" an immediate value used for macros
 
@@ -1850,16 +1893,16 @@ extern int bfd_mips_num_opcodes;
    "M" 7 bit register list for restore instruction (18 bit extended)
 
    Characters used so far, for quick reference when adding more:
-   "0123456 8 "
-   ".[]<"
-   "ABCDEF HI KLM  P RS UVWXYZ"
-   "a   e   ijklm  pq s  vwxyz"
+   "0123456 89"
+   ".[]<>"
+   "ABCDEFGHI KLMNOPQRSTUVWXYZ"
+   "abcde   ijklmnopqrs uvwxyz"
   */
 
 /* Save/restore encoding for the args field when all 4 registers are
    either saved as arguments or saved/restored as statics.  */
-#define MIPS16_ALL_ARGS    0xe
-#define MIPS16_ALL_STATICS 0xb
+#define MIPS_SVRS_ALL_ARGS    0xe
+#define MIPS_SVRS_ALL_STATICS 0xb
 
 /* The following flags have the same value for the mips16 opcode
    table:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/mmix.h ./include/opcode/mmix.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/mmix.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/mmix.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* mmix.h -- Header file for MMIX opcode table
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    Written by Hans-Peter Nilsson (hp@bitrange.com)
 
    This file is part of GDB, GAS, and the GNU binutils.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/mn10200.h ./include/opcode/mn10200.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/mn10200.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/mn10200.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* mn10200.h -- Header file for Matsushita 10200 opcode table
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Written by Jeff Law, Cygnus Support
 
    This file is part of GDB, GAS, and the GNU binutils.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/mn10300.h ./include/opcode/mn10300.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/mn10300.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/mn10300.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* mn10300.h -- Header file for Matsushita 10300 opcode table
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Written by Jeff Law, Cygnus Support
 
    This file is part of GDB, GAS, and the GNU binutils.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/moxie.h ./include/opcode/moxie.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/moxie.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/moxie.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Definitions for decoding the moxie opcode table.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by Anthony Green (green@moxielogic.com).
 
    This program is free software; you can redistribute it and/or modify
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/msp430-decode.h ./include/opcode/msp430-decode.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/msp430-decode.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/msp430-decode.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Opcode decoder for the TI MSP430
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Written by DJ Delorie <dj@redhat.com>
 
    This file is part of GDB, the GNU Debugger.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/msp430.h ./include/opcode/msp430.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/msp430.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/msp430.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Opcode table for the TI MSP430 microcontrollers
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by Dmitry Diky <diwil@mail.ru>
    
    This program is free software; you can redistribute it and/or modify
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/nds32.h ./include/opcode/nds32.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/nds32.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/nds32.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* nds32.h -- Header file for nds32 opcode table
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by Andes Technology Corporation.
 
    This program is free software; you can redistribute it and/or modify
@@ -50,8 +50,8 @@ static const int nds32_r54map[] ATTRIBUT
   -1, -1, -1, -1, -1, -1, -1, -1
 };
 
-#define __BIT(n)		(1 << (n))
-#define __MASK(n)		(__BIT (n) - 1)
+#define N32_BIT(n)		(1 << (n))
+#define __MASK(n)		(N32_BIT (n) - 1)
 #define __MF(v, off, bs)	(((v) & __MASK (bs)) << (off))
 #define __GF(v, off, bs)	(((v) >> off) & __MASK (bs))
 #define __SEXT(v, bs)		((((v) & ((1 << (bs)) - 1)) ^ (1 << ((bs) - 1))) - (1 << ((bs) - 1)))
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/nios2.h ./include/opcode/nios2.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/nios2.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/nios2.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Nios II opcode list for GAS, the GNU assembler.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by Nigel Gray (ngray@altera.com).
    Contributed by Mentor Graphics, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/nios2r1.h ./include/opcode/nios2r1.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/nios2r1.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/nios2r1.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Nios II R1 opcode list for GAS, the GNU assembler.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Contributed by Mentor Graphics, Inc.
 
    This file is part of the GNU opcodes library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/nios2r2.h ./include/opcode/nios2r2.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/nios2r2.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/nios2r2.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Nios II R2 opcode list for GAS, the GNU assembler.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Contributed by Mentor Graphics, Inc.
 
    This file is part of the GNU opcodes library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/np1.h ./include/opcode/np1.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/np1.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/np1.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Print GOULD NPL instructions for GDB, the GNU debugger.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/ns32k.h ./include/opcode/ns32k.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/ns32k.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/ns32k.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* ns32k-opcode.h -- Opcode table for National Semi 32k processor
-   Copyright (C) 1987-2017 Free Software Foundation, Inc.
+   Copyright (C) 1987-2018 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/pdp11.h ./include/opcode/pdp11.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/pdp11.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/pdp11.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* PDP-11 opcde list.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of GDB and GAS.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/pj.h ./include/opcode/pj.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/pj.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/pj.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Definitions for decoding the picoJava opcode table.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Contributed by Steve Chamberlain of Transmeta (sac@pobox.com).
 
    This program is free software; you can redistribute it and/or modify
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/pn.h ./include/opcode/pn.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/pn.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/pn.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Print GOULD PN (PowerNode) instructions for GDB, the GNU debugger.
-   Copyright (C) 1986-2017 Free Software Foundation, Inc.
+   Copyright (C) 1986-2018 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/ppc.h ./include/opcode/ppc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/ppc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/ppc.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* ppc.h -- Header file for PowerPC opcode table
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support
 
    This file is part of GDB, GAS, and the GNU binutils.
@@ -30,6 +30,14 @@ extern "C" {
 
 typedef uint64_t ppc_cpu_t;
 
+#if BFD_HOST_64BIT_LONG
+# define PPC_INT_FMT "l"
+#elif defined (__MSVCRT__)
+# define PPC_INT_FMT "I64"
+#else
+# define PPC_INT_FMT "ll"
+#endif
+
 /* The opcode table is an array of struct powerpc_opcode.  */
 
 struct powerpc_opcode
@@ -39,13 +47,13 @@ struct powerpc_opcode
 
   /* The opcode itself.  Those bits which will be filled in with
      operands are zeroes.  */
-  unsigned long opcode;
+  uint64_t opcode;
 
   /* The opcode mask.  This is used by the disassembler.  This is a
      mask containing ones indicating those bits which must match the
      opcode field, and zeroes indicating those bits which need not
      match (and are presumably filled in by operands).  */
-  unsigned long mask;
+  uint64_t mask;
 
   /* One bit flags for the opcode.  These are used to indicate which
      specific processors support the instructions.  The defined values
@@ -70,6 +78,8 @@ extern const struct powerpc_opcode power
 extern const int powerpc_num_opcodes;
 extern const struct powerpc_opcode vle_opcodes[];
 extern const int vle_num_opcodes;
+extern const struct powerpc_opcode spe2_opcodes[];
+extern const int spe2_num_opcodes;
 
 /* Values defined for the flags field of a struct powerpc_opcode.  */
 
@@ -215,6 +225,15 @@ extern const int vle_num_opcodes;
    the underlying machine instruction.  */
 #define PPC_OPCODE_RAW	     0x40000000000ull
 
+/* Opcode is supported by PowerPC LSP */
+#define PPC_OPCODE_LSP	     0x80000000000ull
+
+/* Opcode is only supported by Freescale SPE2 APU.  */
+#define PPC_OPCODE_SPE2	    0x100000000000ull
+
+/* Opcode is supported by EFS2.  */
+#define PPC_OPCODE_EFS2	    0x200000000000ull
+
 /* A macro to extract the major opcode from an instruction.  */
 #define PPC_OP(i) (((i) >> 26) & 0x3f)
 
@@ -226,13 +245,19 @@ extern const int vle_num_opcodes;
 
 /* A macro to convert a VLE opcode to a VLE opcode segment.  */
 #define VLE_OP_TO_SEG(i) ((i) >> 1)
+
+/* A macro to extract the extended opcode from a SPE2 instruction.  */
+#define SPE2_XOP(i) ((i) & 0x7ff)
+
+/* A macro to convert a SPE2 extended opcode to a SPE2 xopcode segment.  */
+#define SPE2_XOP_TO_SEG(i) ((i) >> 7)
 
 /* The operands table is an array of struct powerpc_operand.  */
 
 struct powerpc_operand
 {
   /* A bitmask of bits in the operand.  */
-  unsigned int bitm;
+  uint64_t bitm;
 
   /* The shift operation to be applied to the operand.  No shift
      is made if this is zero.  For positive values, the operand
@@ -260,8 +285,8 @@ struct powerpc_operand
      string (the operand will be inserted in any case).  If the
      operand value is legal, *ERRMSG will be unchanged (most operands
      can accept any value).  */
-  unsigned long (*insert)
-    (unsigned long instruction, long op, ppc_cpu_t dialect, const char **errmsg);
+  uint64_t (*insert)
+    (uint64_t instruction, int64_t op, ppc_cpu_t dialect, const char **errmsg);
 
   /* Extraction function.  This is used by the disassembler.  To
      extract this operand type from an instruction, check this field.
@@ -282,7 +307,7 @@ struct powerpc_operand
      non-zero if this operand type can not actually be extracted from
      this operand (i.e., the instruction does not match).  If the
      operand is valid, *INVALID will not be changed.  */
-  long (*extract) (unsigned long instruction, ppc_cpu_t dialect, int *invalid);
+  int64_t (*extract) (uint64_t instruction, ppc_cpu_t dialect, int *invalid);
 
   /* One bit syntax flags.  */
   unsigned long flags;
@@ -446,7 +471,7 @@ extern const int powerpc_num_macros;
 
 extern ppc_cpu_t ppc_parse_cpu (ppc_cpu_t, ppc_cpu_t *, const char *);
 
-static inline long
+static inline int64_t
 ppc_optional_operand_value (const struct powerpc_operand *operand)
 {
   if ((operand->flags & PPC_OPERAND_OPTIONAL_VALUE) != 0)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/pru.h ./include/opcode/pru.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/pru.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/pru.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* TI PRU opcode list for GAS, the GNU assembler.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
    Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
 
    This file is part of the GNU opcodes library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/pyr.h ./include/opcode/pyr.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/pyr.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/pyr.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* pyramid.opcode.h -- gdb initial attempt.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/riscv.h ./include/opcode/riscv.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/riscv.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/riscv.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* riscv.h.  RISC-V opcode list for GDB, the GNU debugger.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
    Contributed by Andrew Waterman
 
    This file is part of GDB, GAS, and the GNU binutils.
@@ -141,7 +141,7 @@ static const char * const riscv_pred_suc
 #define VALID_UTYPE_IMM(x) (EXTRACT_UTYPE_IMM(ENCODE_UTYPE_IMM(x)) == (x))
 #define VALID_UJTYPE_IMM(x) (EXTRACT_UJTYPE_IMM(ENCODE_UJTYPE_IMM(x)) == (x))
 #define VALID_RVC_IMM(x) (EXTRACT_RVC_IMM(ENCODE_RVC_IMM(x)) == (x))
-#define VALID_RVC_LUI_IMM(x) (EXTRACT_RVC_LUI_IMM(ENCODE_RVC_LUI_IMM(x)) == (x))
+#define VALID_RVC_LUI_IMM(x) (ENCODE_RVC_LUI_IMM(x) != 0 && EXTRACT_RVC_LUI_IMM(ENCODE_RVC_LUI_IMM(x)) == (x))
 #define VALID_RVC_SIMM3(x) (EXTRACT_RVC_SIMM3(ENCODE_RVC_SIMM3(x)) == (x))
 #define VALID_RVC_ADDI4SPN_IMM(x) (EXTRACT_RVC_ADDI4SPN_IMM(ENCODE_RVC_ADDI4SPN_IMM(x)) == (x))
 #define VALID_RVC_ADDI16SP_IMM(x) (EXTRACT_RVC_ADDI16SP_IMM(ENCODE_RVC_ADDI16SP_IMM(x)) == (x))
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/riscv-opc.h ./include/opcode/riscv-opc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/riscv-opc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/riscv-opc.h	2018-01-09 02:04:58.000000000 +0000
@@ -567,6 +567,14 @@
 #define MASK_CUSTOM3_RD_RS1  0x707f
 #define MATCH_CUSTOM3_RD_RS1_RS2 0x707b
 #define MASK_CUSTOM3_RD_RS1_RS2  0x707f
+#define CSR_USTATUS 0x0
+#define CSR_UIE 0x4
+#define CSR_UTVEC 0x5
+#define CSR_USCRATCH 0x40
+#define CSR_UEPC 0x41
+#define CSR_UCAUSE 0x42
+#define CSR_UTVAL 0x43
+#define CSR_UIP 0x44
 #define CSR_FFLAGS 0x1
 #define CSR_FRM 0x2
 #define CSR_FCSR 0x3
@@ -602,16 +610,54 @@
 #define CSR_HPMCOUNTER29 0xc1d
 #define CSR_HPMCOUNTER30 0xc1e
 #define CSR_HPMCOUNTER31 0xc1f
+#define CSR_CYCLEH 0xc80
+#define CSR_TIMEH 0xc81
+#define CSR_INSTRETH 0xc82
+#define CSR_HPMCOUNTER3H 0xc83
+#define CSR_HPMCOUNTER4H 0xc84
+#define CSR_HPMCOUNTER5H 0xc85
+#define CSR_HPMCOUNTER6H 0xc86
+#define CSR_HPMCOUNTER7H 0xc87
+#define CSR_HPMCOUNTER8H 0xc88
+#define CSR_HPMCOUNTER9H 0xc89
+#define CSR_HPMCOUNTER10H 0xc8a
+#define CSR_HPMCOUNTER11H 0xc8b
+#define CSR_HPMCOUNTER12H 0xc8c
+#define CSR_HPMCOUNTER13H 0xc8d
+#define CSR_HPMCOUNTER14H 0xc8e
+#define CSR_HPMCOUNTER15H 0xc8f
+#define CSR_HPMCOUNTER16H 0xc90
+#define CSR_HPMCOUNTER17H 0xc91
+#define CSR_HPMCOUNTER18H 0xc92
+#define CSR_HPMCOUNTER19H 0xc93
+#define CSR_HPMCOUNTER20H 0xc94
+#define CSR_HPMCOUNTER21H 0xc95
+#define CSR_HPMCOUNTER22H 0xc96
+#define CSR_HPMCOUNTER23H 0xc97
+#define CSR_HPMCOUNTER24H 0xc98
+#define CSR_HPMCOUNTER25H 0xc99
+#define CSR_HPMCOUNTER26H 0xc9a
+#define CSR_HPMCOUNTER27H 0xc9b
+#define CSR_HPMCOUNTER28H 0xc9c
+#define CSR_HPMCOUNTER29H 0xc9d
+#define CSR_HPMCOUNTER30H 0xc9e
+#define CSR_HPMCOUNTER31H 0xc9f
 #define CSR_SSTATUS 0x100
+#define CSR_SEDELEG 0x102
+#define CSR_SIDELEG 0x103
 #define CSR_SIE 0x104
 #define CSR_STVEC 0x105
 #define CSR_SCOUNTEREN 0x106
 #define CSR_SSCRATCH 0x140
 #define CSR_SEPC 0x141
 #define CSR_SCAUSE 0x142
-#define CSR_SBADADDR 0x143
+#define CSR_STVAL 0x143
 #define CSR_SIP 0x144
-#define CSR_SPTBR 0x180
+#define CSR_SATP 0x180
+#define CSR_MVENDORID 0xf11
+#define CSR_MARCHID 0xf12
+#define CSR_MIMPID 0xf13
+#define CSR_MHARTID 0xf14
 #define CSR_MSTATUS 0x300
 #define CSR_MISA 0x301
 #define CSR_MEDELEG 0x302
@@ -622,7 +668,7 @@
 #define CSR_MSCRATCH 0x340
 #define CSR_MEPC 0x341
 #define CSR_MCAUSE 0x342
-#define CSR_MBADADDR 0x343
+#define CSR_MTVAL 0x343
 #define CSR_MIP 0x344
 #define CSR_PMPCFG0 0x3a0
 #define CSR_PMPCFG1 0x3a1
@@ -644,13 +690,6 @@
 #define CSR_PMPADDR13 0x3bd
 #define CSR_PMPADDR14 0x3be
 #define CSR_PMPADDR15 0x3bf
-#define CSR_TSELECT 0x7a0
-#define CSR_TDATA1 0x7a1
-#define CSR_TDATA2 0x7a2
-#define CSR_TDATA3 0x7a3
-#define CSR_DCSR 0x7b0
-#define CSR_DPC 0x7b1
-#define CSR_DSCRATCH 0x7b2
 #define CSR_MCYCLE 0xb00
 #define CSR_MINSTRET 0xb02
 #define CSR_MHPMCOUNTER3 0xb03
@@ -682,73 +721,6 @@
 #define CSR_MHPMCOUNTER29 0xb1d
 #define CSR_MHPMCOUNTER30 0xb1e
 #define CSR_MHPMCOUNTER31 0xb1f
-#define CSR_MUCOUNTEREN 0x320
-#define CSR_MSCOUNTEREN 0x321
-#define CSR_MHPMEVENT3 0x323
-#define CSR_MHPMEVENT4 0x324
-#define CSR_MHPMEVENT5 0x325
-#define CSR_MHPMEVENT6 0x326
-#define CSR_MHPMEVENT7 0x327
-#define CSR_MHPMEVENT8 0x328
-#define CSR_MHPMEVENT9 0x329
-#define CSR_MHPMEVENT10 0x32a
-#define CSR_MHPMEVENT11 0x32b
-#define CSR_MHPMEVENT12 0x32c
-#define CSR_MHPMEVENT13 0x32d
-#define CSR_MHPMEVENT14 0x32e
-#define CSR_MHPMEVENT15 0x32f
-#define CSR_MHPMEVENT16 0x330
-#define CSR_MHPMEVENT17 0x331
-#define CSR_MHPMEVENT18 0x332
-#define CSR_MHPMEVENT19 0x333
-#define CSR_MHPMEVENT20 0x334
-#define CSR_MHPMEVENT21 0x335
-#define CSR_MHPMEVENT22 0x336
-#define CSR_MHPMEVENT23 0x337
-#define CSR_MHPMEVENT24 0x338
-#define CSR_MHPMEVENT25 0x339
-#define CSR_MHPMEVENT26 0x33a
-#define CSR_MHPMEVENT27 0x33b
-#define CSR_MHPMEVENT28 0x33c
-#define CSR_MHPMEVENT29 0x33d
-#define CSR_MHPMEVENT30 0x33e
-#define CSR_MHPMEVENT31 0x33f
-#define CSR_MVENDORID 0xf11
-#define CSR_MARCHID 0xf12
-#define CSR_MIMPID 0xf13
-#define CSR_MHARTID 0xf14
-#define CSR_CYCLEH 0xc80
-#define CSR_TIMEH 0xc81
-#define CSR_INSTRETH 0xc82
-#define CSR_HPMCOUNTER3H 0xc83
-#define CSR_HPMCOUNTER4H 0xc84
-#define CSR_HPMCOUNTER5H 0xc85
-#define CSR_HPMCOUNTER6H 0xc86
-#define CSR_HPMCOUNTER7H 0xc87
-#define CSR_HPMCOUNTER8H 0xc88
-#define CSR_HPMCOUNTER9H 0xc89
-#define CSR_HPMCOUNTER10H 0xc8a
-#define CSR_HPMCOUNTER11H 0xc8b
-#define CSR_HPMCOUNTER12H 0xc8c
-#define CSR_HPMCOUNTER13H 0xc8d
-#define CSR_HPMCOUNTER14H 0xc8e
-#define CSR_HPMCOUNTER15H 0xc8f
-#define CSR_HPMCOUNTER16H 0xc90
-#define CSR_HPMCOUNTER17H 0xc91
-#define CSR_HPMCOUNTER18H 0xc92
-#define CSR_HPMCOUNTER19H 0xc93
-#define CSR_HPMCOUNTER20H 0xc94
-#define CSR_HPMCOUNTER21H 0xc95
-#define CSR_HPMCOUNTER22H 0xc96
-#define CSR_HPMCOUNTER23H 0xc97
-#define CSR_HPMCOUNTER24H 0xc98
-#define CSR_HPMCOUNTER25H 0xc99
-#define CSR_HPMCOUNTER26H 0xc9a
-#define CSR_HPMCOUNTER27H 0xc9b
-#define CSR_HPMCOUNTER28H 0xc9c
-#define CSR_HPMCOUNTER29H 0xc9d
-#define CSR_HPMCOUNTER30H 0xc9e
-#define CSR_HPMCOUNTER31H 0xc9f
 #define CSR_MCYCLEH 0xb80
 #define CSR_MINSTRETH 0xb82
 #define CSR_MHPMCOUNTER3H 0xb83
@@ -780,6 +752,63 @@
 #define CSR_MHPMCOUNTER29H 0xb9d
 #define CSR_MHPMCOUNTER30H 0xb9e
 #define CSR_MHPMCOUNTER31H 0xb9f
+#define CSR_MHPMEVENT3 0x323
+#define CSR_MHPMEVENT4 0x324
+#define CSR_MHPMEVENT5 0x325
+#define CSR_MHPMEVENT6 0x326
+#define CSR_MHPMEVENT7 0x327
+#define CSR_MHPMEVENT8 0x328
+#define CSR_MHPMEVENT9 0x329
+#define CSR_MHPMEVENT10 0x32a
+#define CSR_MHPMEVENT11 0x32b
+#define CSR_MHPMEVENT12 0x32c
+#define CSR_MHPMEVENT13 0x32d
+#define CSR_MHPMEVENT14 0x32e
+#define CSR_MHPMEVENT15 0x32f
+#define CSR_MHPMEVENT16 0x330
+#define CSR_MHPMEVENT17 0x331
+#define CSR_MHPMEVENT18 0x332
+#define CSR_MHPMEVENT19 0x333
+#define CSR_MHPMEVENT20 0x334
+#define CSR_MHPMEVENT21 0x335
+#define CSR_MHPMEVENT22 0x336
+#define CSR_MHPMEVENT23 0x337
+#define CSR_MHPMEVENT24 0x338
+#define CSR_MHPMEVENT25 0x339
+#define CSR_MHPMEVENT26 0x33a
+#define CSR_MHPMEVENT27 0x33b
+#define CSR_MHPMEVENT28 0x33c
+#define CSR_MHPMEVENT29 0x33d
+#define CSR_MHPMEVENT30 0x33e
+#define CSR_MHPMEVENT31 0x33f
+#define CSR_TSELECT 0x7a0
+#define CSR_TDATA1 0x7a1
+#define CSR_TDATA2 0x7a2
+#define CSR_TDATA3 0x7a3
+#define CSR_DCSR 0x7b0
+#define CSR_DPC 0x7b1
+#define CSR_DSCRATCH 0x7b2
+/* These registers are present in priv spec 1.9.1, dropped in 1.10.  */
+#define CSR_HSTATUS 0x200
+#define CSR_HEDELEG 0x202
+#define CSR_HIDELEG 0x203
+#define CSR_HIE 0x204
+#define CSR_HTVEC 0x205
+#define CSR_HSCRATCH 0x240
+#define CSR_HEPC 0x241
+#define CSR_HCAUSE 0x242
+#define CSR_HBADADDR 0x243
+#define CSR_HIP 0x244
+/* CSR_MISA is 0xf10 in 1.9, but 0x301 in 1.9.1.  */
+#define CSR_MBASE 0x380
+#define CSR_MBOUND 0x381
+#define CSR_MIBASE 0x382
+#define CSR_MIBOUND 0x383
+#define CSR_MDBASE 0x384
+#define CSR_MDBOUND 0x385
+#define CSR_MUCOUNTEREN 0x320
+#define CSR_MSCOUNTEREN 0x321
+#define CSR_MHCOUNTEREN 0x322
 #define CAUSE_MISALIGNED_FETCH 0x0
 #define CAUSE_FAULT_FETCH 0x1
 #define CAUSE_ILLEGAL_INSTRUCTION 0x2
@@ -1079,6 +1108,14 @@ DECLARE_INSN(custom3_rd_rs1, MATCH_CUSTO
 DECLARE_INSN(custom3_rd_rs1_rs2, MATCH_CUSTOM3_RD_RS1_RS2, MASK_CUSTOM3_RD_RS1_RS2)
 #endif
 #ifdef DECLARE_CSR
+DECLARE_CSR(ustatus, CSR_USTATUS)
+DECLARE_CSR(uie, CSR_UIE)
+DECLARE_CSR(utvec, CSR_UTVEC)
+DECLARE_CSR(uscratch, CSR_USCRATCH)
+DECLARE_CSR(uepc, CSR_UEPC)
+DECLARE_CSR(ucause, CSR_UCAUSE)
+DECLARE_CSR(utval, CSR_UTVAL)
+DECLARE_CSR(uip, CSR_UIP)
 DECLARE_CSR(fflags, CSR_FFLAGS)
 DECLARE_CSR(frm, CSR_FRM)
 DECLARE_CSR(fcsr, CSR_FCSR)
@@ -1114,16 +1151,54 @@ DECLARE_CSR(hpmcounter28, CSR_HPMCOUNTER
 DECLARE_CSR(hpmcounter29, CSR_HPMCOUNTER29)
 DECLARE_CSR(hpmcounter30, CSR_HPMCOUNTER30)
 DECLARE_CSR(hpmcounter31, CSR_HPMCOUNTER31)
+DECLARE_CSR(cycleh, CSR_CYCLEH)
+DECLARE_CSR(timeh, CSR_TIMEH)
+DECLARE_CSR(instreth, CSR_INSTRETH)
+DECLARE_CSR(hpmcounter3h, CSR_HPMCOUNTER3H)
+DECLARE_CSR(hpmcounter4h, CSR_HPMCOUNTER4H)
+DECLARE_CSR(hpmcounter5h, CSR_HPMCOUNTER5H)
+DECLARE_CSR(hpmcounter6h, CSR_HPMCOUNTER6H)
+DECLARE_CSR(hpmcounter7h, CSR_HPMCOUNTER7H)
+DECLARE_CSR(hpmcounter8h, CSR_HPMCOUNTER8H)
+DECLARE_CSR(hpmcounter9h, CSR_HPMCOUNTER9H)
+DECLARE_CSR(hpmcounter10h, CSR_HPMCOUNTER10H)
+DECLARE_CSR(hpmcounter11h, CSR_HPMCOUNTER11H)
+DECLARE_CSR(hpmcounter12h, CSR_HPMCOUNTER12H)
+DECLARE_CSR(hpmcounter13h, CSR_HPMCOUNTER13H)
+DECLARE_CSR(hpmcounter14h, CSR_HPMCOUNTER14H)
+DECLARE_CSR(hpmcounter15h, CSR_HPMCOUNTER15H)
+DECLARE_CSR(hpmcounter16h, CSR_HPMCOUNTER16H)
+DECLARE_CSR(hpmcounter17h, CSR_HPMCOUNTER17H)
+DECLARE_CSR(hpmcounter18h, CSR_HPMCOUNTER18H)
+DECLARE_CSR(hpmcounter19h, CSR_HPMCOUNTER19H)
+DECLARE_CSR(hpmcounter20h, CSR_HPMCOUNTER20H)
+DECLARE_CSR(hpmcounter21h, CSR_HPMCOUNTER21H)
+DECLARE_CSR(hpmcounter22h, CSR_HPMCOUNTER22H)
+DECLARE_CSR(hpmcounter23h, CSR_HPMCOUNTER23H)
+DECLARE_CSR(hpmcounter24h, CSR_HPMCOUNTER24H)
+DECLARE_CSR(hpmcounter25h, CSR_HPMCOUNTER25H)
+DECLARE_CSR(hpmcounter26h, CSR_HPMCOUNTER26H)
+DECLARE_CSR(hpmcounter27h, CSR_HPMCOUNTER27H)
+DECLARE_CSR(hpmcounter28h, CSR_HPMCOUNTER28H)
+DECLARE_CSR(hpmcounter29h, CSR_HPMCOUNTER29H)
+DECLARE_CSR(hpmcounter30h, CSR_HPMCOUNTER30H)
+DECLARE_CSR(hpmcounter31h, CSR_HPMCOUNTER31H)
 DECLARE_CSR(sstatus, CSR_SSTATUS)
+DECLARE_CSR(sedeleg, CSR_SEDELEG)
+DECLARE_CSR(sideleg, CSR_SIDELEG)
 DECLARE_CSR(sie, CSR_SIE)
 DECLARE_CSR(stvec, CSR_STVEC)
 DECLARE_CSR(scounteren, CSR_SCOUNTEREN)
 DECLARE_CSR(sscratch, CSR_SSCRATCH)
 DECLARE_CSR(sepc, CSR_SEPC)
 DECLARE_CSR(scause, CSR_SCAUSE)
-DECLARE_CSR(sbadaddr, CSR_SBADADDR)
+DECLARE_CSR(stval, CSR_STVAL)
 DECLARE_CSR(sip, CSR_SIP)
-DECLARE_CSR(sptbr, CSR_SPTBR)
+DECLARE_CSR(satp, CSR_SATP)
+DECLARE_CSR(mvendorid, CSR_MVENDORID)
+DECLARE_CSR(marchid, CSR_MARCHID)
+DECLARE_CSR(mimpid, CSR_MIMPID)
+DECLARE_CSR(mhartid, CSR_MHARTID)
 DECLARE_CSR(mstatus, CSR_MSTATUS)
 DECLARE_CSR(misa, CSR_MISA)
 DECLARE_CSR(medeleg, CSR_MEDELEG)
@@ -1134,7 +1209,7 @@ DECLARE_CSR(mcounteren, CSR_MCOUNTEREN)
 DECLARE_CSR(mscratch, CSR_MSCRATCH)
 DECLARE_CSR(mepc, CSR_MEPC)
 DECLARE_CSR(mcause, CSR_MCAUSE)
-DECLARE_CSR(mbadaddr, CSR_MBADADDR)
+DECLARE_CSR(mtval, CSR_MTVAL)
 DECLARE_CSR(mip, CSR_MIP)
 DECLARE_CSR(pmpcfg0, CSR_PMPCFG0)
 DECLARE_CSR(pmpcfg1, CSR_PMPCFG1)
@@ -1156,13 +1231,6 @@ DECLARE_CSR(pmpaddr12, CSR_PMPADDR12)
 DECLARE_CSR(pmpaddr13, CSR_PMPADDR13)
 DECLARE_CSR(pmpaddr14, CSR_PMPADDR14)
 DECLARE_CSR(pmpaddr15, CSR_PMPADDR15)
-DECLARE_CSR(tselect, CSR_TSELECT)
-DECLARE_CSR(tdata1, CSR_TDATA1)
-DECLARE_CSR(tdata2, CSR_TDATA2)
-DECLARE_CSR(tdata3, CSR_TDATA3)
-DECLARE_CSR(dcsr, CSR_DCSR)
-DECLARE_CSR(dpc, CSR_DPC)
-DECLARE_CSR(dscratch, CSR_DSCRATCH)
 DECLARE_CSR(mcycle, CSR_MCYCLE)
 DECLARE_CSR(minstret, CSR_MINSTRET)
 DECLARE_CSR(mhpmcounter3, CSR_MHPMCOUNTER3)
@@ -1194,73 +1262,6 @@ DECLARE_CSR(mhpmcounter28, CSR_MHPMCOUNT
 DECLARE_CSR(mhpmcounter29, CSR_MHPMCOUNTER29)
 DECLARE_CSR(mhpmcounter30, CSR_MHPMCOUNTER30)
 DECLARE_CSR(mhpmcounter31, CSR_MHPMCOUNTER31)
-DECLARE_CSR(mucounteren, CSR_MUCOUNTEREN)
-DECLARE_CSR(mscounteren, CSR_MSCOUNTEREN)
-DECLARE_CSR(mhpmevent3, CSR_MHPMEVENT3)
-DECLARE_CSR(mhpmevent4, CSR_MHPMEVENT4)
-DECLARE_CSR(mhpmevent5, CSR_MHPMEVENT5)
-DECLARE_CSR(mhpmevent6, CSR_MHPMEVENT6)
-DECLARE_CSR(mhpmevent7, CSR_MHPMEVENT7)
-DECLARE_CSR(mhpmevent8, CSR_MHPMEVENT8)
-DECLARE_CSR(mhpmevent9, CSR_MHPMEVENT9)
-DECLARE_CSR(mhpmevent10, CSR_MHPMEVENT10)
-DECLARE_CSR(mhpmevent11, CSR_MHPMEVENT11)
-DECLARE_CSR(mhpmevent12, CSR_MHPMEVENT12)
-DECLARE_CSR(mhpmevent13, CSR_MHPMEVENT13)
-DECLARE_CSR(mhpmevent14, CSR_MHPMEVENT14)
-DECLARE_CSR(mhpmevent15, CSR_MHPMEVENT15)
-DECLARE_CSR(mhpmevent16, CSR_MHPMEVENT16)
-DECLARE_CSR(mhpmevent17, CSR_MHPMEVENT17)
-DECLARE_CSR(mhpmevent18, CSR_MHPMEVENT18)
-DECLARE_CSR(mhpmevent19, CSR_MHPMEVENT19)
-DECLARE_CSR(mhpmevent20, CSR_MHPMEVENT20)
-DECLARE_CSR(mhpmevent21, CSR_MHPMEVENT21)
-DECLARE_CSR(mhpmevent22, CSR_MHPMEVENT22)
-DECLARE_CSR(mhpmevent23, CSR_MHPMEVENT23)
-DECLARE_CSR(mhpmevent24, CSR_MHPMEVENT24)
-DECLARE_CSR(mhpmevent25, CSR_MHPMEVENT25)
-DECLARE_CSR(mhpmevent26, CSR_MHPMEVENT26)
-DECLARE_CSR(mhpmevent27, CSR_MHPMEVENT27)
-DECLARE_CSR(mhpmevent28, CSR_MHPMEVENT28)
-DECLARE_CSR(mhpmevent29, CSR_MHPMEVENT29)
-DECLARE_CSR(mhpmevent30, CSR_MHPMEVENT30)
-DECLARE_CSR(mhpmevent31, CSR_MHPMEVENT31)
-DECLARE_CSR(mvendorid, CSR_MVENDORID)
-DECLARE_CSR(marchid, CSR_MARCHID)
-DECLARE_CSR(mimpid, CSR_MIMPID)
-DECLARE_CSR(mhartid, CSR_MHARTID)
-DECLARE_CSR(cycleh, CSR_CYCLEH)
-DECLARE_CSR(timeh, CSR_TIMEH)
-DECLARE_CSR(instreth, CSR_INSTRETH)
-DECLARE_CSR(hpmcounter3h, CSR_HPMCOUNTER3H)
-DECLARE_CSR(hpmcounter4h, CSR_HPMCOUNTER4H)
-DECLARE_CSR(hpmcounter5h, CSR_HPMCOUNTER5H)
-DECLARE_CSR(hpmcounter6h, CSR_HPMCOUNTER6H)
-DECLARE_CSR(hpmcounter7h, CSR_HPMCOUNTER7H)
-DECLARE_CSR(hpmcounter8h, CSR_HPMCOUNTER8H)
-DECLARE_CSR(hpmcounter9h, CSR_HPMCOUNTER9H)
-DECLARE_CSR(hpmcounter10h, CSR_HPMCOUNTER10H)
-DECLARE_CSR(hpmcounter11h, CSR_HPMCOUNTER11H)
-DECLARE_CSR(hpmcounter12h, CSR_HPMCOUNTER12H)
-DECLARE_CSR(hpmcounter13h, CSR_HPMCOUNTER13H)
-DECLARE_CSR(hpmcounter14h, CSR_HPMCOUNTER14H)
-DECLARE_CSR(hpmcounter15h, CSR_HPMCOUNTER15H)
-DECLARE_CSR(hpmcounter16h, CSR_HPMCOUNTER16H)
-DECLARE_CSR(hpmcounter17h, CSR_HPMCOUNTER17H)
-DECLARE_CSR(hpmcounter18h, CSR_HPMCOUNTER18H)
-DECLARE_CSR(hpmcounter19h, CSR_HPMCOUNTER19H)
-DECLARE_CSR(hpmcounter20h, CSR_HPMCOUNTER20H)
-DECLARE_CSR(hpmcounter21h, CSR_HPMCOUNTER21H)
-DECLARE_CSR(hpmcounter22h, CSR_HPMCOUNTER22H)
-DECLARE_CSR(hpmcounter23h, CSR_HPMCOUNTER23H)
-DECLARE_CSR(hpmcounter24h, CSR_HPMCOUNTER24H)
-DECLARE_CSR(hpmcounter25h, CSR_HPMCOUNTER25H)
-DECLARE_CSR(hpmcounter26h, CSR_HPMCOUNTER26H)
-DECLARE_CSR(hpmcounter27h, CSR_HPMCOUNTER27H)
-DECLARE_CSR(hpmcounter28h, CSR_HPMCOUNTER28H)
-DECLARE_CSR(hpmcounter29h, CSR_HPMCOUNTER29H)
-DECLARE_CSR(hpmcounter30h, CSR_HPMCOUNTER30H)
-DECLARE_CSR(hpmcounter31h, CSR_HPMCOUNTER31H)
 DECLARE_CSR(mcycleh, CSR_MCYCLEH)
 DECLARE_CSR(minstreth, CSR_MINSTRETH)
 DECLARE_CSR(mhpmcounter3h, CSR_MHPMCOUNTER3H)
@@ -1292,6 +1293,72 @@ DECLARE_CSR(mhpmcounter28h, CSR_MHPMCOUN
 DECLARE_CSR(mhpmcounter29h, CSR_MHPMCOUNTER29H)
 DECLARE_CSR(mhpmcounter30h, CSR_MHPMCOUNTER30H)
 DECLARE_CSR(mhpmcounter31h, CSR_MHPMCOUNTER31H)
+DECLARE_CSR(mhpmevent3, CSR_MHPMEVENT3)
+DECLARE_CSR(mhpmevent4, CSR_MHPMEVENT4)
+DECLARE_CSR(mhpmevent5, CSR_MHPMEVENT5)
+DECLARE_CSR(mhpmevent6, CSR_MHPMEVENT6)
+DECLARE_CSR(mhpmevent7, CSR_MHPMEVENT7)
+DECLARE_CSR(mhpmevent8, CSR_MHPMEVENT8)
+DECLARE_CSR(mhpmevent9, CSR_MHPMEVENT9)
+DECLARE_CSR(mhpmevent10, CSR_MHPMEVENT10)
+DECLARE_CSR(mhpmevent11, CSR_MHPMEVENT11)
+DECLARE_CSR(mhpmevent12, CSR_MHPMEVENT12)
+DECLARE_CSR(mhpmevent13, CSR_MHPMEVENT13)
+DECLARE_CSR(mhpmevent14, CSR_MHPMEVENT14)
+DECLARE_CSR(mhpmevent15, CSR_MHPMEVENT15)
+DECLARE_CSR(mhpmevent16, CSR_MHPMEVENT16)
+DECLARE_CSR(mhpmevent17, CSR_MHPMEVENT17)
+DECLARE_CSR(mhpmevent18, CSR_MHPMEVENT18)
+DECLARE_CSR(mhpmevent19, CSR_MHPMEVENT19)
+DECLARE_CSR(mhpmevent20, CSR_MHPMEVENT20)
+DECLARE_CSR(mhpmevent21, CSR_MHPMEVENT21)
+DECLARE_CSR(mhpmevent22, CSR_MHPMEVENT22)
+DECLARE_CSR(mhpmevent23, CSR_MHPMEVENT23)
+DECLARE_CSR(mhpmevent24, CSR_MHPMEVENT24)
+DECLARE_CSR(mhpmevent25, CSR_MHPMEVENT25)
+DECLARE_CSR(mhpmevent26, CSR_MHPMEVENT26)
+DECLARE_CSR(mhpmevent27, CSR_MHPMEVENT27)
+DECLARE_CSR(mhpmevent28, CSR_MHPMEVENT28)
+DECLARE_CSR(mhpmevent29, CSR_MHPMEVENT29)
+DECLARE_CSR(mhpmevent30, CSR_MHPMEVENT30)
+DECLARE_CSR(mhpmevent31, CSR_MHPMEVENT31)
+DECLARE_CSR(tselect, CSR_TSELECT)
+DECLARE_CSR(tdata1, CSR_TDATA1)
+DECLARE_CSR(tdata2, CSR_TDATA2)
+DECLARE_CSR(tdata3, CSR_TDATA3)
+DECLARE_CSR(dcsr, CSR_DCSR)
+DECLARE_CSR(dpc, CSR_DPC)
+DECLARE_CSR(dscratch, CSR_DSCRATCH)
+/* These registers are present in priv spec 1.9.1, dropped in 1.10.  */
+DECLARE_CSR(hstatus, CSR_HSTATUS)
+DECLARE_CSR(hedeleg, CSR_HEDELEG)
+DECLARE_CSR(hideleg, CSR_HIDELEG)
+DECLARE_CSR(hie, CSR_HIE)
+DECLARE_CSR(htvec, CSR_HTVEC)
+DECLARE_CSR(hscratch, CSR_HSCRATCH)
+DECLARE_CSR(hepc, CSR_HEPC)
+DECLARE_CSR(hcause, CSR_HCAUSE)
+DECLARE_CSR(hbadaddr, CSR_HBADADDR)
+DECLARE_CSR(hip, CSR_HIP)
+DECLARE_CSR(mbase, CSR_MBASE)
+DECLARE_CSR(mbound, CSR_MBOUND)
+DECLARE_CSR(mibase, CSR_MIBASE)
+DECLARE_CSR(mibound, CSR_MIBOUND)
+DECLARE_CSR(mdbase, CSR_MDBASE)
+DECLARE_CSR(mdbound, CSR_MDBOUND)
+DECLARE_CSR(mucounteren, CSR_MUCOUNTEREN)
+DECLARE_CSR(mscounteren, CSR_MSCOUNTEREN)
+DECLARE_CSR(mhcounteren, CSR_MHCOUNTEREN)
+#endif
+#ifdef DECLARE_CSR_ALIAS
+/* Ubadaddr is 0x043 in 1.9.1, but 0x043 is utval in 1.10.  */
+DECLARE_CSR_ALIAS(ubadaddr, CSR_UTVAL)
+/* Sbadaddr is 0x143 in 1.9.1, but 0x143 is stval in 1.10.  */
+DECLARE_CSR_ALIAS(sbadaddr, CSR_STVAL)
+/* Sptbr is 0x180 in 1.9.1, but 0x180 is satp in 1.10.  */
+DECLARE_CSR_ALIAS(sptbr, CSR_SATP)
+/* Mbadaddr is 0x343 in 1.9.1, but 0x343 is mtval in 1.10.  */
+DECLARE_CSR_ALIAS(mbadaddr, CSR_MTVAL)
 #endif
 #ifdef DECLARE_CAUSE
 DECLARE_CAUSE("misaligned fetch", CAUSE_MISALIGNED_FETCH)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/rl78.h ./include/opcode/rl78.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/rl78.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/rl78.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Opcode decoder for the Renesas RL78
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
    Written by DJ Delorie <dj@redhat.com>
 
    This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/rx.h ./include/opcode/rx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/rx.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/rx.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Opcode decoder for the Renesas RX
-   Copyright (C) 2008-2017 Free Software Foundation, Inc.
+   Copyright (C) 2008-2018 Free Software Foundation, Inc.
    Written by DJ Delorie <dj@redhat.com>
 
    This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/s390.h ./include/opcode/s390.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/s390.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/s390.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* s390.h -- Header file for S390 opcode table
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -48,10 +48,11 @@ enum s390_opcode_cpu_val
 
 /* Instruction specific flags.  */
 #define S390_INSTR_FLAG_OPTPARM 0x1
+#define S390_INSTR_FLAG_OPTPARM2 0x2
 
-#define S390_INSTR_FLAG_HTM 0x2
-#define S390_INSTR_FLAG_VX 0x4
-#define S390_INSTR_FLAG_FACILITY_MASK 0x6
+#define S390_INSTR_FLAG_HTM 0x4
+#define S390_INSTR_FLAG_VX 0x8
+#define S390_INSTR_FLAG_FACILITY_MASK 0xc
 
 /* The opcode table is an array of struct s390_opcode.  */
 
@@ -156,21 +157,17 @@ extern const struct s390_operand s390_op
 /* This operand is a length.  */
 #define S390_OPERAND_LENGTH 0x200
 
-/* This operand is optional. Only a single operand at the end of
-   the instruction may be optional.  */
-#define S390_OPERAND_OPTIONAL 0x400
-
 /* The operand needs to be a valid GP or FP register pair.  */
-#define S390_OPERAND_REG_PAIR 0x800
+#define S390_OPERAND_REG_PAIR 0x400
 
 /* 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_VR 0x800
 
-#define S390_OPERAND_CP16 0x2000
+#define S390_OPERAND_CP16 0x1000
 
-#define S390_OPERAND_OR1 0x4000
-#define S390_OPERAND_OR2 0x8000
-#define S390_OPERAND_OR8 0x10000
+#define S390_OPERAND_OR1 0x2000
+#define S390_OPERAND_OR2 0x4000
+#define S390_OPERAND_OR8 0x8000
 
 #endif /* S390_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/score-datadep.h ./include/opcode/score-datadep.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/score-datadep.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/score-datadep.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* score-datadep.h -- Score Instructions data dependency table
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
    Contributed by: 
    Brain.lin (brain.lin@sunplusct.com)
    Mei Ligang (ligang@sunnorth.com.cn)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/score-inst.h ./include/opcode/score-inst.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/score-inst.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/score-inst.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* score-inst.h -- Score Instructions Table
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
    Contributed by: 
    Brain.lin (brain.lin@sunplusct.com)
    Mei Ligang (ligang@sunnorth.com.cn)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/sparc.h ./include/opcode/sparc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/sparc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/sparc.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Definitions for opcode table for the sparc.
-   Copyright (C) 1989-2017 Free Software Foundation, Inc.
+   Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler, GDB, the GNU debugger, and
    the GNU Binutils.
@@ -58,7 +58,8 @@ enum sparc_opcode_arch_val
   SPARC_OPCODE_ARCH_V9V, /* V9 with OSA2011 and T4 additions, integer
                             multiply and Fujitsu fp multiply-add.  */
   SPARC_OPCODE_ARCH_V9M, /* V9 with OSA2015 and M7 additions.  */
-  SPARC_OPCODE_ARCH_MAX = SPARC_OPCODE_ARCH_V9M,
+  SPARC_OPCODE_ARCH_M8,  /* V9 with OSA2017 and M8 additions.  */
+  SPARC_OPCODE_ARCH_MAX = SPARC_OPCODE_ARCH_M8,
   SPARC_OPCODE_ARCH_BAD  /* Error return from sparc_opcode_lookup_arch.  */
 };
 
@@ -184,6 +185,15 @@ typedef struct
 #define HWCAP2_FJDES     0x00002000 /* Fujitsu DES instrs */
 #define HWCAP2_FJAES     0x00010000 /* Fujitsu AES instrs */
 
+#define HWCAP2_SPARC6    0x00020000 /* OSA2017 new instructions */
+#define HWCAP2_ONADDSUB  0x00040000 /* Oracle Number add/subtract */
+#define HWCAP2_ONMUL     0x00080000 /* Oracle Number multiply */
+#define HWCAP2_ONDIV     0x00100000 /* Oracle Number divide */
+#define HWCAP2_DICTUNP   0x00200000 /* Dictionary unpack instruction */
+#define HWCAP2_FPCMPSHL  0x00400000 /* Partition compare with shifted result */
+#define HWCAP2_RLE       0x00800000 /* Run-length encoded burst and length */
+#define HWCAP2_SHA3      0x01000000 /* SHA3 instruction */
+
 
 /* All sparc opcodes are 32 bits, except for the `set' instruction (really a
    macro), which is 64 bits. It is handled as a special case.
@@ -202,15 +212,19 @@ typedef struct
 	e	frs1 floating point register.
 	v	frs1 floating point register (double/even).
 	V	frs1 floating point register (quad/multiple of 4).
+	;	frs1 floating piont register (multiple of 8).
 	f	frs2 floating point register.
 	B	frs2 floating point register (double/even).
 	R	frs2 floating point register (quad/multiple of 4).
+	:	frs2 floating point register (multiple of 8).
+	'	rs2m floating point register (double/even) in FPCMPSHL. (m8)
 	4	frs3 floating point register.
 	5	frs3 floating point register (doube/even).
 	g	frsd floating point register.
 	H	frsd floating point register (double/even).
 	J	frsd floating point register (quad/multiple of 4).
 	}       frsd floating point register (double/even) that is == frs2
+	^	frsd floating piont register in ON instructions.
 	b	crs1 coprocessor register
 	c	crs2 coprocessor register
 	D	crsd coprocessor register
@@ -253,6 +267,7 @@ typedef struct
 	P	%pc.  (v9)
 	W	%tick.	(v9)
 	{	%mcdper. (v9b)
+	&	%entropy.  (m8)
 	o	%asi. (v9)
 	6	%fcc0. (v9)
 	7	%fcc1. (v9)
@@ -269,7 +284,8 @@ typedef struct
 	/	Ancillary state register in rs1 (v9a)
 	(	entire floating point state register (%efsr)
 	)	5 bit immediate placed in RS3 field
-	=	2+8 bit PC relative immediate. (v9)  */
+	=	2+8 bit PC relative immediate. (v9)
+	|	FPCMPSHL 2 bit immediate. (m8)  */
 
 #define OP2(x)		(((x) & 0x7) << 22)  /* Op2 field of format2 insns.  */
 #define OP3(x)		(((x) & 0x3f) << 19) /* Op3 field of format3 insns.  */
@@ -277,6 +293,10 @@ typedef struct
 #define OPF(x)		(((x) & 0x1ff) << 5) /* Opf field of float insns.  */
 #define OPF_LOW5(x)	OPF ((x) & 0x1f)     /* V9.  */
 #define OPF_LOW4(x)	OPF ((x) & 0xf)      /* V9.  */
+#define OPM(x)		(((x) & 0x7) << 10)  /* opm field of misaligned load/store insns.  */
+#define OPMI(x)	(((x) & 0x1) << 9)   /* opm i field of misaligned load/store insns.  */
+#define ONFCN(x)	(((x) & 0x3) << 26)  /* fcn field of Oracle Number insns.  */
+#define REVFCN(x)	(((x) & 0x3) << 0)   /* fcn field of REV* insns.  */
 #define F3F(x, y, z)	(OP (x) | OP3 (y) | OPF (z)) /* Format3 float insns.  */
 #define F3F4(x, y, z)	(OP (x) | OP3 (y) | OPF_LOW4 (z))
 #define F3I(x)		(((x) & 0x1) << 13)  /* Immediate field of format 3 insns.  */
@@ -287,6 +307,7 @@ typedef struct
 #define ASI(x)		(((x) & 0xff) << 5)  /* Asi field of format3 insns.  */
 #define RS2(x)		((x) & 0x1f)         /* Rs2 field.  */
 #define SIMM13(x)	((x) & 0x1fff)       /* Simm13 field.  */
+#define SIMM10(x)	((x) & 0x3ff)	     /* Simm10 field.  */
 #define RD(x)		(((x) & 0x1f) << 25) /* Destination register field.  */
 #define RS1(x)		(((x) & 0x1f) << 14) /* Rs1 field.  */
 #define RS3(x)		(((x) & 0x1f) << 9)  /* Rs3 field.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/spu.h ./include/opcode/spu.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/spu.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/spu.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* SPU ELF support for BFD.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of GDB, GAS, and the GNU binutils.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/spu-insns.h ./include/opcode/spu-insns.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/spu-insns.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/spu-insns.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* SPU ELF support for BFD.
 
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   Copyright (C) 2006-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tahoe.h ./include/opcode/tahoe.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tahoe.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/tahoe.h	2018-01-09 02:04:58.000000000 +0000
@@ -2,7 +2,7 @@
  * Ported by the State University of New York at Buffalo by the Distributed
  * Computer Systems Lab, Department of Computer Science, 1991.
  */
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of GDB and BINUTILS.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic30.h ./include/opcode/tic30.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic30.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/tic30.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* tic30.h -- Header file for TI TMS320C30 opcode table
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
    Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au)
 
    This file is part of GDB, GAS, and the GNU binutils.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic4x.h ./include/opcode/tic4x.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic4x.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/tic4x.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Table of opcodes for the Texas Instruments TMS320C[34]X family.
 
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
   
    Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz)
    
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic54x.h ./include/opcode/tic54x.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic54x.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/tic54x.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* tic54x.h -- Header file for TI TMS320C54X opcode table
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
    Written by Timothy Wall (twall@cygnus.com)
 
    This file is part of GDB, GAS, and the GNU binutils.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic6x-control-registers.h ./include/opcode/tic6x-control-registers.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic6x-control-registers.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/tic6x-control-registers.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* TI C6X control register information.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic6x.h ./include/opcode/tic6x.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic6x.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/tic6x.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* TI C6X opcode information.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic6x-insn-formats.h ./include/opcode/tic6x-insn-formats.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic6x-insn-formats.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/tic6x-insn-formats.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* TI C6X instruction format information.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic6x-opcode-table.h ./include/opcode/tic6x-opcode-table.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic6x-opcode-table.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/tic6x-opcode-table.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* TI C6X opcode table.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic80.h ./include/opcode/tic80.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tic80.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/tic80.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* tic80.h -- Header file for TI TMS320C80 (MV) opcode table
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Written by Fred Fish (fnf@cygnus.com), Cygnus Support
 
    This file is part of GDB, GAS, and the GNU binutils.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tilegx.h ./include/opcode/tilegx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tilegx.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/tilegx.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* TILE-Gx opcode information.
  *
- *    Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ *    Copyright (C) 2011-2018 Free Software Foundation, Inc.
  *
  *    This program is free software; you can redistribute it and/or modify
  *    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tilepro.h ./include/opcode/tilepro.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/tilepro.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/tilepro.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* TILEPro opcode information.
  *
- *    Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ *    Copyright (C) 2011-2018 Free Software Foundation, Inc.
  *
  *    This program is free software; you can redistribute it and/or modify
  *    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/v850.h ./include/opcode/v850.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/v850.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/v850.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* v850.h -- Header file for NEC V850 opcode table
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Written by J.T. Conklin, Cygnus Support
 
    This file is part of GDB, GAS, and the GNU binutils.
@@ -230,10 +230,10 @@ extern const struct v850_operand v850_op
 /* The operand has '%' prefix.  */
 #define V850_OPERAND_PERCENT	0x200000
 
-/* This operand is a cache oparation.  */
+/* This operand is a cache operation.  */
 #define V850_OPERAND_CACHEOP	0x400000
 
-/* This operand is a prefetch oparation.  */
+/* This operand is a prefetch operation.  */
 #define V850_OPERAND_PREFOP	0x800000
 
 /* A PC-relative displacement where a positive value indicates a backwards displacement.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/vax.h ./include/opcode/vax.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/vax.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/vax.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Vax opcde list.
-   Copyright (C) 1989-2017 Free Software Foundation, Inc.
+   Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    This file is part of GDB and GAS.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/visium.h ./include/opcode/visium.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/visium.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/visium.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Opcode table header for Visium.
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of GDB, GAS, and GNU binutils.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/wasm.h ./include/opcode/wasm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/wasm.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/wasm.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* WebAssembly assembler/disassembler support.
-   Copyright (C) 2017 Free Software Foundation, Inc.
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU assembler.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/xgate.h ./include/opcode/xgate.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/opcode/xgate.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/opcode/xgate.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* xgate.h -- Freescale XGATE opcode list
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Sean Keys (skeys@ipdatasys.com)
 
    This file is part of the GNU opcodes library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/os9k.h ./include/os9k.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/os9k.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/os9k.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* os9k.h  -  OS-9000 i386 module header definitions
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
    
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/partition.h ./include/partition.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/partition.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/partition.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* List implementation of a partition of consecutive integers.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by CodeSourcery, LLC.
 
    This file is part of GCC.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/plugin-api.h ./include/plugin-api.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/plugin-api.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/plugin-api.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* plugin-api.h -- External linker plugin API.  */
 
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Written by Cary Coutant <ccoutant@google.com>.
 
    This file is part of binutils.
@@ -365,6 +365,20 @@ enum ld_plugin_status
 (*ld_plugin_get_input_section_size) (const struct ld_plugin_section section,
                                      uint64_t *secsize);
 
+typedef
+enum ld_plugin_status
+(*ld_plugin_new_input_handler) (const struct ld_plugin_input_file *file);
+
+/* The linker's interface for registering the "new_input" handler. This handler
+   will be notified when a new input file has been added after the
+   all_symbols_read event, allowing the plugin to, for example, set a unique
+   segment for sections in plugin-generated input files. */
+
+typedef
+enum ld_plugin_status
+(*ld_plugin_register_new_input) (ld_plugin_new_input_handler handler);
+
+
 enum ld_plugin_level
 {
   LDPL_INFO,
@@ -407,7 +421,8 @@ enum ld_plugin_tag
   LDPT_UNIQUE_SEGMENT_FOR_SECTIONS = 27,
   LDPT_GET_SYMBOLS_V3 = 28,
   LDPT_GET_INPUT_SECTION_ALIGNMENT = 29,
-  LDPT_GET_INPUT_SECTION_SIZE = 30
+  LDPT_GET_INPUT_SECTION_SIZE = 30,
+  LDPT_REGISTER_NEW_INPUT_HOOK = 31
 };
 
 /* The plugin transfer vector.  */
@@ -441,6 +456,7 @@ struct ld_plugin_tv
     ld_plugin_unique_segment_for_sections tv_unique_segment_for_sections;
     ld_plugin_get_input_section_alignment tv_get_input_section_alignment;
     ld_plugin_get_input_section_size tv_get_input_section_size;
+    ld_plugin_register_new_input tv_register_new_input;
   } tv_u;
 };
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/progress.h ./include/progress.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/progress.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/progress.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Default definitions for progress macros.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/safe-ctype.h ./include/safe-ctype.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/safe-ctype.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/safe-ctype.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* <ctype.h> replacement macros.
 
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Zack Weinberg <zackw@stanford.edu>.
 
 This file is part of the libiberty library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/sha1.h ./include/sha1.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/sha1.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/sha1.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Declarations of functions and data types used for SHA1 sum
    library functions.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/simple-object.h ./include/simple-object.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/simple-object.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/simple-object.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* simple-object.h -- simple routines to read and write object files
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Google.
 
 This program is free software; you can redistribute it and/or modify it
@@ -197,6 +197,14 @@ simple_object_write_to_file (simple_obje
 extern void
 simple_object_release_write (simple_object_write *);
 
+/* Copy LTO debug sections from SRC_OBJECT to DEST.
+   If an error occurs, return the errno value in ERR and an error string.  */
+
+extern const char *
+simple_object_copy_lto_debug_sections (simple_object_read *src_object,
+				       const char *dest,
+				       int *err);
+
 #ifdef __cplusplus
 }
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/som/aout.h ./include/som/aout.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/som/aout.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/som/aout.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* SOM a.out definitions for BFD.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Contributed by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/som/clock.h ./include/som/clock.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/som/clock.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/som/clock.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* SOM clock definition for BFD.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Contributed by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/som/internal.h ./include/som/internal.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/som/internal.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/som/internal.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* SOM internal definitions for BFD.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Contributed by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/som/lst.h ./include/som/lst.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/som/lst.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/som/lst.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* SOM lst definitions for BFD.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Contributed by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/som/reloc.h ./include/som/reloc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/som/reloc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/som/reloc.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* SOM relocation definitions for BFD.
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Contributed by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/sort.h ./include/sort.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/sort.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/sort.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Sorting algorithms.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Mark Mitchell <mark@codesourcery.com>.
 
 This file is part of GCC.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/splay-tree.h ./include/splay-tree.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/splay-tree.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/splay-tree.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* A splay-tree datatype.  
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
    Contributed by Mark Mitchell (mark@markmitchell.com).
 
    This file is part of GCC.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/symcat.h ./include/symcat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/symcat.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/symcat.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Symbol concatenation utilities.
 
-   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/timeval-utils.h ./include/timeval-utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/timeval-utils.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/timeval-utils.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Basic struct timeval utilities.
-   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   Copyright (C) 2011-2018 Free Software Foundation, Inc.
 
 This file is part of the libiberty library.
 Libiberty is free software; you can redistribute it and/or
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/dcx.h ./include/vms/dcx.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/dcx.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/dcx.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format for DeCompression.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/dmt.h ./include/vms/dmt.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/dmt.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/dmt.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Debug Module Table.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/dsc.h ./include/vms/dsc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/dsc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/dsc.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Descriptors.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/dst.h ./include/vms/dst.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/dst.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/dst.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Debug Symbol Table.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eeom.h ./include/vms/eeom.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eeom.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/eeom.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended End Of Module.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/egps.h ./include/vms/egps.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/egps.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/egps.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Program Section Definition.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/egsd.h ./include/vms/egsd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/egsd.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/egsd.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Global Symbol Directory.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/egst.h ./include/vms/egst.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/egst.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/egst.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Global Symbol Definition.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/egsy.h ./include/vms/egsy.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/egsy.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/egsy.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Global Symbol.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eiaf.h ./include/vms/eiaf.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eiaf.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/eiaf.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Image Activator Fixup section.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eicp.h ./include/vms/eicp.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eicp.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/eicp.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Image section Change Protection.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eidc.h ./include/vms/eidc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eidc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/eidc.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Ident Consistency check.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eiha.h ./include/vms/eiha.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eiha.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/eiha.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Image Activation.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eihd.h ./include/vms/eihd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eihd.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/eihd.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Image Header.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eihi.h ./include/vms/eihi.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eihi.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/eihi.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Image Identification.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eihs.h ./include/vms/eihs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eihs.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/eihs.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Image Symbols and debug table.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eihvn.h ./include/vms/eihvn.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eihvn.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/eihvn.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Image Header Version.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eisd.h ./include/vms/eisd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eisd.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/eisd.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Image Section Descriptor.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/emh.h ./include/vms/emh.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/emh.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/emh.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Module Header.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eobjrec.h ./include/vms/eobjrec.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/eobjrec.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/eobjrec.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Object Records.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/esdf.h ./include/vms/esdf.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/esdf.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/esdf.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended GSD Global Symbol Definition.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/esdfm.h ./include/vms/esdfm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/esdfm.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/esdfm.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Symbol Definition for version Mask.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/esdfv.h ./include/vms/esdfv.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/esdfv.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/esdfv.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Symbol Def for Vectored symbols.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/esgps.h ./include/vms/esgps.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/esgps.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/esgps.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Shared Program Section Definition.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/esrf.h ./include/vms/esrf.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/esrf.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/esrf.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended GSD Global Symbol Reference.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/etir.h ./include/vms/etir.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/etir.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/etir.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Extended Text Information and Relocation.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/internal.h ./include/vms/internal.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/internal.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/internal.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS internal format.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/lbr.h ./include/vms/lbr.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/lbr.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/lbr.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Libraries.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/prt.h ./include/vms/prt.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/prt.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/prt.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Protection values.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/shl.h ./include/vms/shl.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vms/shl.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vms/shl.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,6 +1,6 @@
 /* Alpha VMS external format of Shareable image List.
 
-   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   Copyright (C) 2010-2018 Free Software Foundation, Inc.
    Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
 
    This file is part of BFD, the Binary File Descriptor library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vtv-change-permission.h ./include/vtv-change-permission.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/vtv-change-permission.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/vtv-change-permission.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2018 Free Software Foundation, Inc.
   
    This file is part of GCC.
   
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/xregex2.h ./include/xregex2.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/xregex2.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/xregex2.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,7 +1,7 @@
 /* Definitions for data structures and routines for the regular
    expression library, version 0.12.
 
-   Copyright (C) 1985-2017 Free Software Foundation, Inc.
+   Copyright (C) 1985-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.  Its master source is NOT part of
    the C library, however.  The master source lives in /gd/gnu/lib.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/xtensa-config.h ./include/xtensa-config.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/xtensa-config.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/xtensa-config.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Xtensa configuration settings.
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
    Contributed by Bob Wilson (bob.wilson@acm.org) at Tensilica.
 
    This program is free software; you can redistribute it and/or modify
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/xtensa-isa.h ./include/xtensa-isa.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/xtensa-isa.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/xtensa-isa.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Interface definition for configurable Xtensa ISA support.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/xtensa-isa-internal.h ./include/xtensa-isa-internal.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/include/xtensa-isa-internal.h	2018-01-02 02:03:00.000000000 +0000
+++ ./include/xtensa-isa-internal.h	2018-01-09 02:04:58.000000000 +0000
@@ -1,5 +1,5 @@
 /* Internal definitions for configurable Xtensa ISA support.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/intl/aclocal.m4 ./intl/aclocal.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/intl/aclocal.m4	2018-01-02 02:03:00.000000000 +0000
+++ ./intl/aclocal.m4	2018-01-09 02:04:58.000000000 +0000
@@ -1,7 +1,8 @@
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
+# Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/intl/ChangeLog ./intl/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/intl/ChangeLog	2018-01-02 02:03:00.000000000 +0000
+++ ./intl/ChangeLog	2018-01-09 02:04:58.000000000 +0000
@@ -1,3 +1,9 @@
+2017-11-07  Alan Modra  <amodra@gmail.com>
+
+	* configure.ac: Invole AM_GNU_GETTEXT with need_ngettext.
+	* configure: Regenerate.
+	* aclocal.m4: Regenerate.
+
 2015-08-31  Alan Modra  <amodra@gmail.com>
 
 	* configure: Regenerate.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/intl/configure ./intl/configure
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/intl/configure	2018-01-02 02:03:00.000000000 +0000
+++ ./intl/configure	2018-01-09 02:04:58.000000000 +0000
@@ -5813,7 +5813,7 @@ fi
 
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
 $as_echo_n "checking for GNU gettext in libc... " >&6; }
-if test "${gt_cv_func_gnugettext1_libc+set}" = set; then :
+if test "${gt_cv_func_gnugettext2_libc+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5825,23 +5825,23 @@ int
 main ()
 {
 bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings
+return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_domain_bindings
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  gt_cv_func_gnugettext1_libc=yes
+  gt_cv_func_gnugettext2_libc=yes
 else
-  gt_cv_func_gnugettext1_libc=no
+  gt_cv_func_gnugettext2_libc=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext1_libc" >&5
-$as_echo "$gt_cv_func_gnugettext1_libc" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext2_libc" >&5
+$as_echo "$gt_cv_func_gnugettext2_libc" >&6; }
 
-        if test "$gt_cv_func_gnugettext1_libc" != "yes"; then
+        if test "$gt_cv_func_gnugettext2_libc" != "yes"; then
 
 
 
@@ -6223,7 +6223,7 @@ fi
 
           { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
 $as_echo_n "checking for GNU gettext in libintl... " >&6; }
-if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then :
+if test "${gt_cv_func_gnugettext2_libintl+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_CPPFLAGS="$CPPFLAGS"
@@ -6243,19 +6243,19 @@ int
 main ()
 {
 bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
+return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_expand_alias (0)
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  gt_cv_func_gnugettext1_libintl=yes
+  gt_cv_func_gnugettext2_libintl=yes
 else
-  gt_cv_func_gnugettext1_libintl=no
+  gt_cv_func_gnugettext2_libintl=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-                        if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then
+                        if test "$gt_cv_func_gnugettext2_libintl" != yes && test -n "$LIBICONV"; then
               LIBS="$LIBS $LIBICONV"
               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -6270,7 +6270,7 @@ int
 main ()
 {
 bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
+return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_expand_alias (0)
   ;
   return 0;
 }
@@ -6278,7 +6278,7 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
   LIBINTL="$LIBINTL $LIBICONV"
                 LTLIBINTL="$LTLIBINTL $LTLIBICONV"
-                gt_cv_func_gnugettext1_libintl=yes
+                gt_cv_func_gnugettext2_libintl=yes
 
 fi
 rm -f core conftest.err conftest.$ac_objext \
@@ -6287,12 +6287,12 @@ rm -f core conftest.err conftest.$ac_obj
             CPPFLAGS="$gt_save_CPPFLAGS"
             LIBS="$gt_save_LIBS"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext1_libintl" >&5
-$as_echo "$gt_cv_func_gnugettext1_libintl" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext2_libintl" >&5
+$as_echo "$gt_cv_func_gnugettext2_libintl" >&6; }
         fi
 
-                                        if test "$gt_cv_func_gnugettext1_libc" = "yes" \
-           || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \
+                                        if test "$gt_cv_func_gnugettext2_libc" = "yes" \
+           || { test "$gt_cv_func_gnugettext2_libintl" = "yes" \
                 && test "$PACKAGE" != gettext-runtime \
                 && test "$PACKAGE" != gettext-tools; }; then
           gt_use_preinstalled_gnugettext=yes
@@ -6340,7 +6340,7 @@ fi
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5
 $as_echo_n "checking where the gettext function comes from... " >&6; }
     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-      if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
+      if test "$gt_cv_func_gnugettext2_libintl" = "yes"; then
         gt_source="external libintl"
       else
         gt_source="libc"
@@ -6355,7 +6355,7 @@ fi
   if test "$USE_NLS" = "yes"; then
 
     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-      if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
+      if test "$gt_cv_func_gnugettext2_libintl" = "yes"; then
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5
 $as_echo_n "checking how to link with libintl... " >&6; }
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/intl/configure.ac ./intl/configure.ac
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/intl/configure.ac	2018-01-02 02:03:00.000000000 +0000
+++ ./intl/configure.ac	2018-01-09 02:04:58.000000000 +0000
@@ -4,7 +4,7 @@ AC_CONFIG_SRCDIR(gettext.c)
 AC_CONFIG_HEADER(config.h)
 AC_CONFIG_MACRO_DIR(../config)
 AM_GNU_GETTEXT_VERSION(0.12.1)
-AM_GNU_GETTEXT
+AM_GNU_GETTEXT([], [need-ngettext])
 
 # This replaces the extensive use of DEFS in the original Makefile.in.
 AC_DEFINE(IN_LIBINTL, 1, [Define because this is libintl.])
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/ChangeLog ./libiberty/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/ChangeLog	2018-01-02 02:03:00.000000000 +0000
+++ ./libiberty/ChangeLog	2018-01-09 02:04:59.000000000 +0000
@@ -1,14 +1,222 @@
+2017-09-15  Nathan Sidwell  <nathan@acm.org>
+
+	PR demangler/82195
+	* cp-demangle.c (d_name): Add 'toplevel' parm.  Pass to	...
+	(d_local_name): ... here.  Parse trailing function args on nested
+	local_name.
+	(d_encoding, d_special_name, d_class_enum_type): Adjust d_name calls.
+	* testsuite/demangle-expected: Add tests.
+
+2017-09-15  Richard Biener  <rguenther@suse.de>
+
+	PR lto/81968
+	* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
+	Iterate marking dependent sections necessary.
+
+2017-09-15  Nathan Sidwell  <nathan@acm.org>
+
+	* cp-demangle.c (is_fnqual_component_type): Reimplement using
+	FNQUAL_COMPONENT_CASE.
+	(d_encoding): Hold bare_function_type in local var.
+	(d_local_name): Build name in both cases and build result once.
+	Collapse switch-if to single conditional.
+	(d_local_name): 
+
+	* testsuite/demangle-expected: Realign blank lines with tests.
+
+2017-09-12  Jiong Wang  <jiong.wang@arm.com>
+
+	* dwarfnames.c (DW_CFA_DUP): New define.
+
+2017-09-01  Martin Liska  <mliska@suse.cz>
+
+	* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
+	Remove duplicite declaration.
+
+2017-08-31  Richard Biener  <rguenther@suse.de>
+
+	PR lto/81968
+	* simple-object-elf.c (simple_object_elf_copy_lto_debug_section):
+	Keep names of removed global symbols.
+
+2017-08-29  Tony Reix  <tony.reix@atos.net>
+
+	* simple-object-xcoff.c (simple_object_xcoff_find_sections):
+	Improve .go_export csect handling.  Don't make assumptions
+	on containing section or number of auxiliary entries.
+
+2017-08-28  Richard Biener  <rguenther@suse.de>
+
+	PR lto/81968
+	* simple-object-elf.c (simple_object_elf_copy_lto_debug_section):
+	Adjust field with for sh_type write, set SHF_EXCLUDE only for
+	removed sections.
+
+2017-08-22  Richard Biener  <rguenther@suse.de>
+
+	PR lto/81925
+	* simple-object-elf.c (simple_object_elf_write_shdr): Adjust
+	type of sh_addralign and sh_entsize and properly write
+	sh_entsize as Elf_Addr.
+	(simple_object_elf_write_to_file): Read sh_entsize as Elf_Addr.
+
+2017-08-21  Richard Biener  <rguenther@suse.de>
+
+	* simple-object-common.h (struct simple_object_functions): Add
+	copy_lto_debug_sections hook.
+	* simple-object.c: Include fcntl.h.
+	(handle_lto_debug_sections): New helper function.
+	(simple_object_copy_lto_debug_sections): New function copying
+	early LTO debug sections to regular debug sections in a new file.
+	(simple_object_start_write): Handle NULL segment_name.
+	* simple-object-coff.c (simple_object_coff_functions): Adjust
+	for not implemented copy_lto_debug_sections hook.
+	* simple-object-mach-o.c (simple_object_mach_o_functions): Likewise.
+	* simple-object-xcoff.c (simple_object_xcoff_functions): Likewise.
+	* simple-object-elf.c (SHT_NULL, SHT_SYMTAB, SHT_RELA, SHT_REL,
+	SHT_GROUP): Add various sectopn header types.
+	(SHF_EXCLUDE): Add flag.
+	(Elf32_External_Sym, Elf64_External_Sym): Add symbol struct.
+	(ELF_ST_BIND, ELF_ST_TYPE, ELF_ST_INFO): Add accessors.
+	(STT_OBJECT, STT_FUNC, STT_TLS, STT_GNU_IFUNC): Add Symbol types.
+	(STV_DEFAULT): Add symbol visibility.
+	(SHN_COMMON): Add special section index name.
+	(struct simple_object_elf_write): New.
+	(simple_object_elf_start_write): Adjust for new private data.
+	(simple_object_elf_write_shdr): Pass in values for all fields
+	we write.
+	(simple_object_elf_write_to_file): Adjust.  Copy from recorded
+	section headers if requested.
+	(simple_object_elf_release_write): Release private data.
+	(simple_object_elf_copy_lto_debug_sections): Copy and rename sections
+	as denoted by PFN and all their dependences, symbols and relocations
+	to the empty destination file.
+	(simple_object_elf_functions): Adjust for copy_lto_debug_sections hook.
+
+2017-07-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* dwarfnames.c (DW_FIRST_IDX, DW_END_IDX, DW_IDX, DW_IDX_DUP): New.
+
+2017-06-07  Tony Reix  <tony.reix@atos.net>
+	    Matthieu Sarter  <matthieu.sarter.external@atos.net>
+	    David Edelsohn  <dje.gcc@gmail.com>
+
+	* simple-object-xcoff.c (simple_object_xcoff_find_sections):
+	Search symbol table for .go_export symbol and apply pfn if found.
+
 2017-05-31  DJ Delorie  <dj@redhat.com>
 
 	* configure.ac (strnlen): Add to AC_CHECK_DECLS.
 	* configure: Likewise.
 	* config.in: Add HACE_DECL_STRNLEN.
 
-2017-05-31  Eli Zaretskii  <eliz@gnu.org>
+2017-05-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-demangle.c (dlang_identifier): Prefix mangled init symbols
+	with `initializer for'.
+	* testsuite/demangle-expected: Update tests.
+
+2017-05-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-demangle.c (dlang_call_convention_p): Move declaration
+	before dlang_type.
+	(dlang_type): Handle function types.
+	* testsuite/d-demangle-expected: Add tests.
+
+2017-05-27  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-demangle.c (dlang_parse_real): Remove stack buffer, write
+	the demangled hexadecimal directly to string.
+	* testsuite/d-demangle-expected: Add tests.
+
+2017-05-24  Eli Zaretskii  <eliz@gnu.org>
 
 	* waitpid.c (wait) [__MINGW32__]: Define as a macro
 	that calls _cwait, so that this function works on MinGW.
 
+2017-05-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-demangle.c (dlang_hexdigit): New function.
+	(ascii2hex): Remove function.
+	(dlang_parse_string): Update to call dlang_hexdigit.
+	* testsuite/d-demangle-expected: Add tests.
+
+2017-05-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-demangle.c (strtol): Remove declaration.
+	Updated all callers to use dlang_number.
+	(dlang_number): New function.
+	(dlang_value): Moved check for ISDIGIT into dlang_parse_integer.
+	* testsuite/d-demangle-expected: Add tests.
+
+2017-05-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-demangle.c (dlang_parse_symbol): Remove function.
+	(dlang_parse_qualified): New function.
+	(dlang_parse_mangle): New function.
+	(dlang_type): Update to call dlang_parse_qualified.
+	(dlang_identifier): Update to call either dlang_parse_qualified or
+	dlang_parse_mangle.
+	(dlang_type_modifier_p): Remove function.
+	(dlang_call_convention_p): Don't allow type modifiers in mangle.
+	(dlang_template_args): Update to call dlang_identifier.
+	(dlang_demangle): Update to call dlang_parse_mangle.
+	* testsuite/d-demangle-expected: Add tests.
+
+2017-05-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-demangle.c (dlang_value): Add comment explaining why cases for
+	digits are required.
+	* testsuite/d-demangle-expected: Update integer value tests.
+
+2017-05-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-demangle.c (dlang_parse_symbol): Skip over anonymous symbols.
+	* testsuite/d-demangle-expected: Add tests.
+
+2017-05-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-demangle.c (dlang_identifier): Handle template constraint symbols.
+	(dlang_parse_template): Only advance if template symbol prefix is
+	followed by a digit.
+	* testsuite/d-demangle-expected: Add tests.
+
+2017-05-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	* d-demangle.c (dlang_attributes): Handle scope attributes.
+	* testsuite/d-demangle-expected: Add tests.
+
+2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR demangler/80513
+	* cp-demangle.c (d_number): Check for overflow.
+	* cplus-dem.c (consume_count): Fix overflow check.
+	(gnu_special): Check for underscore after thunk delta.
+	* testsuite/demangle-expected: Add tests for overflows and invalid
+	characters in thunks.
+
+2017-04-21  Mark Wielaard  <mark@klomp.org>
+
+	* cp-demangle.c (MAX_RECURSION_COUNT): New constant.
+	(struct d_print_info): Add recursion field.
+	(d_print_init): Initialize recursion.
+	(d_print_comp): Check and update d_print_info recursion depth.
+
+2017-04-21  Mark Wielaard  <mark@klomp.org>
+
+	* cp-demangle.c (d_substitution): Return NULL if d_add_substitution
+	fails.
+
+2017-04-21  Mark Wielaard  <mark@klomp.org>
+
+	* cp-demangle.h (struct d_info): Remove did_subs field.
+	* cp-demangle.c (struct d_info_checkpoint): Likewise.
+	(d_template_param): Don't update did_subs.
+	(d_substitution): Likewise.
+	(d_checkpoint): Don't assign did_subs.
+	(d_backtrack): Likewise.
+	(cplus_demangle_init_info): Don't initialize did_subs.
+
 2017-03-27  Pedro Alves  <palves@redhat.com>
 
 	* cp-demint.c (cplus_demangle_fill_component): Handle
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/cp-demangle.c ./libiberty/cp-demangle.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/cp-demangle.c	2018-01-02 02:03:00.000000000 +0000
+++ ./libiberty/cp-demangle.c	2018-01-09 02:04:59.000000000 +0000
@@ -316,10 +316,12 @@ struct d_info_checkpoint
   const char *n;
   int next_comp;
   int next_sub;
-  int did_subs;
   int expansion;
 };
 
+/* Maximum number of times d_print_comp may be called recursively.  */
+#define MAX_RECURSION_COUNT 1024
+
 enum { D_PRINT_BUFFER_LENGTH = 256 };
 struct d_print_info
 {
@@ -342,6 +344,9 @@ struct d_print_info
   struct d_print_mod *modifiers;
   /* Set to 1 if we saw a demangling error.  */
   int demangle_failure;
+  /* Number of times d_print_comp was recursively called.  Should not
+     be bigger than MAX_RECURSION_COUNT.  */
+  int recursion;
   /* Non-zero if we're printing a lambda argument.  A template
      parameter reference actually means 'auto'.  */
   int is_lambda_arg;
@@ -420,7 +425,7 @@ is_ctor_dtor_or_conversion (struct deman
 
 static struct demangle_component *d_encoding (struct d_info *, int);
 
-static struct demangle_component *d_name (struct d_info *);
+static struct demangle_component *d_name (struct d_info *, int);
 
 static struct demangle_component *d_nested_name (struct d_info *);
 
@@ -479,7 +484,7 @@ static struct demangle_component *d_expr
 
 static struct demangle_component *d_expr_primary (struct d_info *);
 
-static struct demangle_component *d_local_name (struct d_info *);
+static struct demangle_component *d_local_name (struct d_info *, int);
 
 static int d_discriminator (struct d_info *);
 
@@ -563,22 +568,6 @@ static int d_demangle_callback (const ch
                                 demangle_callbackref, void *);
 static char *d_demangle (const char *, int, size_t *);
 
-/* True iff TYPE is a demangling component representing a
-   function-type-qualifier.  */
-
-static int
-is_fnqual_component_type (enum demangle_component_type type)
-{
-  return (type == DEMANGLE_COMPONENT_RESTRICT_THIS
-	  || type == DEMANGLE_COMPONENT_VOLATILE_THIS
-	  || type == DEMANGLE_COMPONENT_CONST_THIS
-	  || type == DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS
-	  || type == DEMANGLE_COMPONENT_TRANSACTION_SAFE
-	  || type == DEMANGLE_COMPONENT_NOEXCEPT
-	  || type == DEMANGLE_COMPONENT_THROW_SPEC
-	  || type == DEMANGLE_COMPONENT_REFERENCE_THIS);
-}
-
 #define FNQUAL_COMPONENT_CASE				\
     case DEMANGLE_COMPONENT_RESTRICT_THIS:		\
     case DEMANGLE_COMPONENT_VOLATILE_THIS:		\
@@ -589,6 +578,23 @@ is_fnqual_component_type (enum demangle_
     case DEMANGLE_COMPONENT_NOEXCEPT:			\
     case DEMANGLE_COMPONENT_THROW_SPEC
 
+/* True iff TYPE is a demangling component representing a
+   function-type-qualifier.  */
+
+static int
+is_fnqual_component_type (enum demangle_component_type type)
+{
+  switch (type)
+    {
+    FNQUAL_COMPONENT_CASE:
+      return 1;
+    default:
+      break;
+    }
+  return 0;
+}
+
+
 #ifdef CP_DEMANGLE_DEBUG
 
 static void
@@ -1300,9 +1306,9 @@ d_encoding (struct d_info *di, int top_l
     return d_special_name (di);
   else
     {
-      struct demangle_component *dc;
+      struct demangle_component *dc, *dcr;
 
-      dc = d_name (di);
+      dc = d_name (di, top_level);
 
       if (dc != NULL && top_level && (di->options & DMGL_PARAMS) == 0)
 	{
@@ -1322,8 +1328,6 @@ d_encoding (struct d_info *di, int top_l
 	     which is local to a function.  */
 	  if (dc->type == DEMANGLE_COMPONENT_LOCAL_NAME)
 	    {
-	      struct demangle_component *dcr;
-
 	      dcr = d_right (dc);
 	      while (is_fnqual_component_type (dcr->type))
 		dcr = d_left (dcr);
@@ -1336,8 +1340,8 @@ d_encoding (struct d_info *di, int top_l
       peek = d_peek_char (di);
       if (dc == NULL || peek == '\0' || peek == 'E')
 	return dc;
-      return d_make_comp (di, DEMANGLE_COMPONENT_TYPED_NAME, dc,
-			  d_bare_function_type (di, has_return_type (dc)));
+      dcr = d_bare_function_type (di, has_return_type (dc));
+      return d_make_comp (di, DEMANGLE_COMPONENT_TYPED_NAME, dc, dcr);
     }
 }
 
@@ -1379,7 +1383,7 @@ d_abi_tags (struct d_info *di, struct de
 */
 
 static struct demangle_component *
-d_name (struct d_info *di)
+d_name (struct d_info *di, int top_level)
 {
   char peek = d_peek_char (di);
   struct demangle_component *dc;
@@ -1390,7 +1394,7 @@ d_name (struct d_info *di)
       return d_nested_name (di);
 
     case 'Z':
-      return d_local_name (di);
+      return d_local_name (di, top_level);
 
     case 'U':
       return d_unqualified_name (di);
@@ -1687,6 +1691,8 @@ d_number (struct d_info *di)
 	    ret = - ret;
 	  return ret;
 	}
+      if (ret > ((INT_MAX - (peek - '0')) / 10))
+        return -1;
       ret = ret * 10 + peek - '0';
       d_advance (di, 1);
       peek = d_peek_char (di);
@@ -2073,11 +2079,11 @@ d_special_name (struct d_info *di)
 
 	case 'H':
 	  return d_make_comp (di, DEMANGLE_COMPONENT_TLS_INIT,
-			      d_name (di), NULL);
+			      d_name (di, 0), NULL);
 
 	case 'W':
 	  return d_make_comp (di, DEMANGLE_COMPONENT_TLS_WRAPPER,
-			      d_name (di), NULL);
+			      d_name (di, 0), NULL);
 
 	default:
 	  return NULL;
@@ -2088,11 +2094,12 @@ d_special_name (struct d_info *di)
       switch (d_next_char (di))
 	{
 	case 'V':
-	  return d_make_comp (di, DEMANGLE_COMPONENT_GUARD, d_name (di), NULL);
+	  return d_make_comp (di, DEMANGLE_COMPONENT_GUARD,
+			      d_name (di, 0), NULL);
 
 	case 'R':
 	  {
-	    struct demangle_component *name = d_name (di);
+	    struct demangle_component *name = d_name (di, 0);
 	    return d_make_comp (di, DEMANGLE_COMPONENT_REFTEMP, name,
 				d_number_component (di));
 	  }
@@ -2928,7 +2935,7 @@ d_bare_function_type (struct d_info *di,
 static struct demangle_component *
 d_class_enum_type (struct d_info *di)
 {
-  return d_name (di);
+  return d_name (di, 0);
 }
 
 /* <array-type> ::= A <(positive dimension) number> _ <(element) type>
@@ -3075,8 +3082,6 @@ d_template_param (struct d_info *di)
   if (param < 0)
     return NULL;
 
-  ++di->did_subs;
-
   return d_make_template_param (di, param);
 }
 
@@ -3563,9 +3568,10 @@ d_expr_primary (struct d_info *di)
 */
 
 static struct demangle_component *
-d_local_name (struct d_info *di)
+d_local_name (struct d_info *di, int top_level)
 {
   struct demangle_component *function;
+  struct demangle_component *name;
 
   if (! d_check_char (di, 'Z'))
     return NULL;
@@ -3580,13 +3586,10 @@ d_local_name (struct d_info *di)
       d_advance (di, 1);
       if (! d_discriminator (di))
 	return NULL;
-      return d_make_comp (di, DEMANGLE_COMPONENT_LOCAL_NAME, function,
-			  d_make_name (di, "string literal",
-				       sizeof "string literal" - 1));
+      name = d_make_name (di, "string literal", sizeof "string literal" - 1);
     }
   else
     {
-      struct demangle_component *name;
       int num = -1;
 
       if (d_peek_char (di) == 'd')
@@ -3598,22 +3601,36 @@ d_local_name (struct d_info *di)
 	    return NULL;
 	}
 
-      name = d_name (di);
-      if (name)
-	switch (name->type)
-	  {
-	    /* Lambdas and unnamed types have internal discriminators.  */
-	  case DEMANGLE_COMPONENT_LAMBDA:
-	  case DEMANGLE_COMPONENT_UNNAMED_TYPE:
-	    break;
-	  default:
-	    if (! d_discriminator (di))
-	      return NULL;
-	  }
+      name = d_name (di, 0);
+
+      if (name
+	  /* Lambdas and unnamed types have internal discriminators
+	     and are not functions.  */
+	  && name->type != DEMANGLE_COMPONENT_LAMBDA
+	  && name->type != DEMANGLE_COMPONENT_UNNAMED_TYPE)
+	{
+	  if (!top_level
+	      && d_peek_char (di) != 0 /* Not end of string.  */
+	      && d_peek_char (di) != 'E' /* Not end of nested encoding.  */
+	      && d_peek_char (di) != '_') /* Not discriminator.  */
+	    {
+	      struct demangle_component *args;
+
+	      args = d_bare_function_type (di, has_return_type (name));
+	      name = d_make_comp (di, DEMANGLE_COMPONENT_TYPED_NAME,
+				  name, args);
+	    }
+
+	  /* Read and ignore an optional discriminator.  */
+	  if (! d_discriminator (di))
+	    return NULL;
+	}
+
       if (num >= 0)
 	name = d_make_default_arg (di, num, name);
-      return d_make_comp (di, DEMANGLE_COMPONENT_LOCAL_NAME, function, name);
     }
+
+  return d_make_comp (di, DEMANGLE_COMPONENT_LOCAL_NAME, function, name);
 }
 
 /* <discriminator> ::= _ <number>    # when number < 10
@@ -3846,8 +3863,6 @@ d_substitution (struct d_info *di, int p
       if (id >= (unsigned int) di->next_sub)
 	return NULL;
 
-      ++di->did_subs;
-
       return di->subs[id];
     }
   else
@@ -3896,7 +3911,8 @@ d_substitution (struct d_info *di, int p
 		  /* If there are ABI tags on the abbreviation, it becomes
 		     a substitution candidate.  */
 		  dc = d_abi_tags (di, dc);
-		  d_add_substitution (di, dc);
+		  if (! d_add_substitution (di, dc))
+		    return NULL;
 		}
 	      return dc;
 	    }
@@ -3912,7 +3928,6 @@ d_checkpoint (struct d_info *di, struct 
   checkpoint->n = di->n;
   checkpoint->next_comp = di->next_comp;
   checkpoint->next_sub = di->next_sub;
-  checkpoint->did_subs = di->did_subs;
   checkpoint->expansion = di->expansion;
 }
 
@@ -3922,7 +3937,6 @@ d_backtrack (struct d_info *di, struct d
   di->n = checkpoint->n;
   di->next_comp = checkpoint->next_comp;
   di->next_sub = checkpoint->next_sub;
-  di->did_subs = checkpoint->did_subs;
   di->expansion = checkpoint->expansion;
 }
 
@@ -4157,6 +4171,7 @@ d_print_init (struct d_print_info *dpi, 
   dpi->opaque = opaque;
 
   dpi->demangle_failure = 0;
+  dpi->recursion = 0;
   dpi->is_lambda_arg = 0;
 
   dpi->component_stack = NULL;
@@ -5691,13 +5706,14 @@ d_print_comp (struct d_print_info *dpi, 
 	      struct demangle_component *dc)
 {
   struct d_component_stack self;
-  if (dc == NULL || dc->d_printing > 1)
+  if (dc == NULL || dc->d_printing > 1 || dpi->recursion > MAX_RECURSION_COUNT)
     {
       d_print_error (dpi);
       return;
     }
-  else
-    dc->d_printing++;
+
+  dc->d_printing++;
+  dpi->recursion++;
 
   self.dc = dc;
   self.parent = dpi->component_stack;
@@ -5707,6 +5723,7 @@ d_print_comp (struct d_print_info *dpi, 
 
   dpi->component_stack = self.parent;
   dc->d_printing--;
+  dpi->recursion--;
 }
 
 /* Print a Java dentifier.  For Java we try to handle encoded extended
@@ -6159,7 +6176,6 @@ cplus_demangle_init_info (const char *ma
      chars in the mangled string.  */
   di->num_subs = len;
   di->next_sub = 0;
-  di->did_subs = 0;
 
   di->last_name = NULL;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/cp-demangle.h ./libiberty/cp-demangle.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/cp-demangle.h	2018-01-02 02:03:00.000000000 +0000
+++ ./libiberty/cp-demangle.h	2018-01-09 02:04:59.000000000 +0000
@@ -111,10 +111,6 @@ struct d_info
   int next_sub;
   /* The number of available entries in the subs array.  */
   int num_subs;
-  /* The number of substitutions which we actually made from the subs
-     array, plus the number of template parameter references we
-     saw.  */
-  int did_subs;
   /* The last name we saw, for constructors and destructors.  */
   struct demangle_component *last_name;
   /* A running total of the length of large expansions from the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/cplus-dem.c ./libiberty/cplus-dem.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/cplus-dem.c	2018-01-02 02:03:00.000000000 +0000
+++ ./libiberty/cplus-dem.c	2018-01-09 02:04:59.000000000 +0000
@@ -520,21 +520,17 @@ consume_count (const char **type)
 
   while (ISDIGIT ((unsigned char)**type))
     {
-      count *= 10;
-
-      /* Check for overflow.
-	 We assume that count is represented using two's-complement;
-	 no power of two is divisible by ten, so if an overflow occurs
-	 when multiplying by ten, the result will not be a multiple of
-	 ten.  */
-      if ((count % 10) != 0)
+      const int digit = **type - '0';
+      /* Check for overflow.  */
+      if (count > ((INT_MAX - digit) / 10))
 	{
 	  while (ISDIGIT ((unsigned char) **type))
 	    (*type)++;
 	  return -1;
 	}
 
-      count += **type - '0';
+      count *= 10;
+      count += digit;
       (*type)++;
     }
 
@@ -3173,6 +3169,8 @@ gnu_special (struct work_stuff *work, co
       delta = consume_count (mangled);
       if (delta == -1)
 	success = 0;
+      else if (**mangled != '_')
+        success = 0;
       else
 	{
 	  char *method = internal_cplus_demangle (work, ++*mangled);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/d-demangle.c ./libiberty/d-demangle.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/d-demangle.c	2018-01-02 02:03:00.000000000 +0000
+++ ./libiberty/d-demangle.c	2018-01-09 02:04:59.000000000 +0000
@@ -26,9 +26,7 @@ You should have received a copy of the G
 License along with libiberty; see the file COPYING.LIB.
 If not, see <http://www.gnu.org/licenses/>.  */
 
-/* This file exports one function; dlang_demangle.
-
-   This file imports strtol for decoding mangled literals.  */
+/* This file exports one function; dlang_demangle.  */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -42,8 +40,6 @@ If not, see <http://www.gnu.org/licenses
 
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
-#else
-extern long strtol (const char *nptr, char **endptr, int base);
 #endif
 
 #include <demangle.h>
@@ -186,7 +182,10 @@ static const char *dlang_type (string *,
 
 static const char *dlang_value (string *, const char *, const char *, char);
 
-static const char *dlang_parse_symbol (string *, const char *,
+static const char *dlang_parse_qualified (string *, const char *,
+					  enum dlang_symbol_kinds);
+
+static const char *dlang_parse_mangle (string *, const char *,
 				       enum dlang_symbol_kinds);
 
 static const char *dlang_parse_tuple (string *, const char *);
@@ -194,6 +193,80 @@ static const char *dlang_parse_tuple (st
 static const char *dlang_parse_template (string *, const char *, long);
 
 
+/* Extract the number from MANGLED, and assign the result to RET.
+   Return the remaining string on success or NULL on failure.  */
+static const char *
+dlang_number (const char *mangled, long *ret)
+{
+  /* Return NULL if trying to extract something that isn't a digit.  */
+  if (mangled == NULL || !ISDIGIT (*mangled))
+    return NULL;
+
+  (*ret) = 0;
+
+  while (ISDIGIT (*mangled))
+    {
+      (*ret) *= 10;
+
+      /* If an overflow occured when multiplying by ten, the result
+	 will not be a multiple of ten.  */
+      if ((*ret % 10) != 0)
+	return NULL;
+
+      (*ret) += mangled[0] - '0';
+      mangled++;
+    }
+
+  if (*mangled == '\0' || *ret < 0)
+    return NULL;
+
+  return mangled;
+}
+
+/* Extract the hex-digit from MANGLED, and assign the result to RET.
+   Return the remaining string on success or NULL on failure.  */
+static const char *
+dlang_hexdigit (const char *mangled, char *ret)
+{
+  char c;
+
+  /* Return NULL if trying to extract something that isn't a hexdigit.  */
+  if (mangled == NULL || !ISXDIGIT (mangled[0]) || !ISXDIGIT (mangled[1]))
+    return NULL;
+
+  c = mangled[0];
+  if (!ISDIGIT (c))
+    (*ret) = (c - (ISUPPER (c) ? 'A' : 'a') + 10);
+  else
+    (*ret) = (c - '0');
+
+  c = mangled[1];
+  if (!ISDIGIT (c))
+    (*ret) = (*ret << 4) | (c - (ISUPPER (c) ? 'A' : 'a') + 10);
+  else
+    (*ret) = (*ret << 4) | (c - '0');
+
+  mangled += 2;
+
+  return mangled;
+}
+
+/* Extract the function calling convention from MANGLED and
+   return 1 on success or 0 on failure.  */
+static int
+dlang_call_convention_p (const char *mangled)
+{
+  switch (*mangled)
+    {
+    case 'F': case 'U': case 'V':
+    case 'W': case 'R': case 'Y':
+      return 1;
+
+    default:
+      return 0;
+    }
+}
+
 /* Demangle the calling convention from MANGLED and append it to DECL.
    Return the remaining string on success or NULL on failure.  */
 static const char *
@@ -327,6 +400,10 @@ dlang_attributes (string *decl, const ch
 	  mangled++;
 	  string_append (decl, "return ");
 	  continue;
+	case 'l': /* scope */
+	  mangled++;
+	  string_append (decl, "scope ");
+	  continue;
 
 	default: /* unknown attribute */
 	  return NULL;
@@ -539,17 +616,22 @@ dlang_type (string *decl, const char *ma
     }
     case 'P': /* pointer (T*) */
       mangled++;
-      /* Function pointer types don't include the trailing asterisk.  */
-      switch (*mangled)
+      if (!dlang_call_convention_p (mangled))
 	{
-	case 'F': case 'U': case 'W':
-	case 'V': case 'R': case 'Y':
-	  mangled = dlang_function_type (decl, mangled);
-	  string_append (decl, "function");
+	  mangled = dlang_type (decl, mangled);
+	  string_append (decl, "*");
 	  return mangled;
 	}
-      mangled = dlang_type (decl, mangled);
-      string_append (decl, "*");
+      /* Fall through */
+    case 'F': /* function T (D) */
+    case 'U': /* function T (C) */
+    case 'W': /* function T (Windows) */
+    case 'V': /* function T (Pascal) */
+    case 'R': /* function T (C++) */
+    case 'Y': /* function T (Objective-C) */
+      /* Function pointer types don't include the trailing asterisk.  */
+      mangled = dlang_function_type (decl, mangled);
+      string_append (decl, "function");
       return mangled;
     case 'I': /* ident T */
     case 'C': /* class T */
@@ -557,7 +639,7 @@ dlang_type (string *decl, const char *ma
     case 'E': /* enum T */
     case 'T': /* typedef T */
       mangled++;
-      return dlang_parse_symbol (decl, mangled, dlang_type_name);
+      return dlang_parse_qualified (decl, mangled, dlang_type_name);
     case 'D': /* delegate T */
     {
       string mods;
@@ -702,15 +784,10 @@ static const char *
 dlang_identifier (string *decl, const char *mangled,
 		  enum dlang_symbol_kinds kind)
 {
-  char *endptr;
   long len;
+  const char *endptr = dlang_number (mangled, &len);
 
-  if (mangled == NULL || *mangled == '\0')
-    return NULL;
-
-  len = strtol (mangled, &endptr, 10);
-
-  if (endptr == NULL || len <= 0)
+  if (endptr == NULL || len == 0)
     return NULL;
 
   /* In template parameter symbols, the first character of the mangled
@@ -719,7 +796,7 @@ dlang_identifier (string *decl, const ch
   if (kind == dlang_template_param)
     {
       long psize = len;
-      char *pend;
+      const char *pend;
       int saved = string_length (decl);
 
       /* Work backwards until a match is found.  */
@@ -739,12 +816,10 @@ dlang_identifier (string *decl, const ch
 	  /* Check whether template parameter is a function with a valid
 	     return type or an untyped identifier.  */
 	  if (ISDIGIT (*mangled))
-	    mangled = dlang_parse_symbol (decl, mangled, dlang_template_ident);
+	    mangled = dlang_parse_qualified (decl, mangled,
+					     dlang_template_ident);
 	  else if (strncmp (mangled, "_D", 2) == 0)
-	    {
-	      mangled += 2;
-	      mangled = dlang_parse_symbol (decl, mangled, dlang_function);
-	    }
+	    mangled = dlang_parse_mangle (decl, mangled, dlang_function);
 
 	  /* Check for name length mismatch.  */
 	  if (mangled && (mangled - pend) == psize)
@@ -765,14 +840,9 @@ dlang_identifier (string *decl, const ch
       mangled = endptr;
 
       /* May be a template instance.  */
-      if (len >= 5 && strncmp (mangled, "__T", 3) == 0)
-	{
-	  /* Template symbol.  */
-	  if (ISDIGIT (mangled[3]) && mangled[3] != '0')
-	    return dlang_parse_template (decl, mangled, len);
-
-	  return NULL;
-	}
+      if (len >= 5 && mangled[0] == '_' && mangled[1] == '_'
+	  && (mangled[2] == 'T' || mangled[2] == 'U'))
+	return dlang_parse_template (decl, mangled, len);
 
       switch (len)
 	{
@@ -794,7 +864,8 @@ dlang_identifier (string *decl, const ch
 	  else if (strncmp (mangled, "__initZ", len+1) == 0)
 	    {
 	      /* The static initialiser for a given symbol.  */
-	      string_append (decl, "init$");
+	      string_prepend (decl, "initializer for ");
+	      string_setlength (decl, string_length (decl) - 1);
 	      mangled += len;
 	      return mangled;
 	    }
@@ -871,10 +942,10 @@ dlang_parse_integer (string *decl, const
       char value[10];
       int pos = 10;
       int width = 0;
-      char *endptr;
-      long val = strtol (mangled, &endptr, 10);
+      long val;
 
-      if (endptr == NULL || val < 0)
+      mangled = dlang_number (mangled, &val);
+      if (mangled == NULL)
 	return NULL;
 
       string_append (decl, "'");
@@ -923,19 +994,17 @@ dlang_parse_integer (string *decl, const
 	  string_appendn (decl, &(value[pos]), 10 - pos);
 	}
       string_append (decl, "'");
-      mangled = endptr;
     }
   else if (type == 'b')
     {
       /* Parse boolean value.  */
-      char *endptr;
-      long val = strtol (mangled, &endptr, 10);
+      long val;
 
-      if (endptr == NULL || val < 0)
+      mangled = dlang_number (mangled, &val);
+      if (mangled == NULL)
 	return NULL;
 
       string_append (decl, val ? "true" : "false");
-      mangled = endptr;
     }
   else
     {
@@ -943,6 +1012,9 @@ dlang_parse_integer (string *decl, const
       const char *numptr = mangled;
       size_t num = 0;
 
+      if (! ISDIGIT (*mangled))
+	return NULL;
+
       while (ISDIGIT (*mangled))
 	{
 	  num++;
@@ -975,9 +1047,6 @@ dlang_parse_integer (string *decl, const
 static const char *
 dlang_parse_real (string *decl, const char *mangled)
 {
-  char buffer[64];
-  int len = 0;
-
   /* Handle NAN and +-INF.  */
   if (strncmp (mangled, "NAN", 3) == 0)
     {
@@ -1001,23 +1070,22 @@ dlang_parse_real (string *decl, const ch
   /* Hexadecimal prefix and leading bit.  */
   if (*mangled == 'N')
     {
-      buffer[len++] = '-';
+      string_append (decl, "-");
       mangled++;
     }
 
   if (!ISXDIGIT (*mangled))
     return NULL;
 
-  buffer[len++] = '0';
-  buffer[len++] = 'x';
-  buffer[len++] = *mangled;
-  buffer[len++] = '.';
+  string_append (decl, "0x");
+  string_appendn (decl, mangled, 1);
+  string_append (decl, ".");
   mangled++;
 
   /* Significand.  */
   while (ISXDIGIT (*mangled))
     {
-      buffer[len++] = *mangled;
+      string_appendn (decl, mangled, 1);
       mangled++;
     }
 
@@ -1025,110 +1093,80 @@ dlang_parse_real (string *decl, const ch
   if (*mangled != 'P')
     return NULL;
 
-  buffer[len++] = 'p';
+  string_append (decl, "p");
   mangled++;
 
   if (*mangled == 'N')
     {
-      buffer[len++] = '-';
+      string_append (decl, "-");
       mangled++;
     }
 
   while (ISDIGIT (*mangled))
     {
-      buffer[len++] = *mangled;
+      string_appendn (decl, mangled, 1);
       mangled++;
     }
 
-  /* Write out the demangled hexadecimal, rather than trying to
-     convert the buffer into a floating-point value.  */
-  buffer[len] = '\0';
-  len = strlen (buffer);
-  string_appendn (decl, buffer, len);
   return mangled;
 }
 
-/* Convert VAL from an ascii hexdigit to value.  */
-static char
-ascii2hex (char val)
-{
-  if (val >= 'a' && val <= 'f')
-    return (val - 'a' + 10);
-
-  if (val >= 'A' && val <= 'F')
-    return (val - 'A' + 10);
-
-  if (val >= '0' && val <= '9')
-    return (val - '0');
-
-  return 0;
-}
-
 /* Extract the string value from MANGLED and append it to DECL.
    Return the remaining string on success or NULL on failure.  */
 static const char *
 dlang_parse_string (string *decl, const char *mangled)
 {
   char type = *mangled;
-  char *endptr;
   long len;
 
   mangled++;
-  len = strtol (mangled, &endptr, 10);
-
-  if (endptr == NULL || len < 0)
-    return NULL;
-
-  mangled = endptr;
-  if (*mangled != '_')
+  mangled = dlang_number (mangled, &len);
+  if (mangled == NULL || *mangled != '_')
     return NULL;
 
   mangled++;
   string_append (decl, "\"");
   while (len--)
     {
-      if (ISXDIGIT (mangled[0]) && ISXDIGIT (mangled[1]))
+      char val;
+      const char *endptr = dlang_hexdigit (mangled, &val);
+
+      if (endptr == NULL)
+	return NULL;
+
+      /* Sanitize white and non-printable characters.  */
+      switch (val)
 	{
-	  char a = ascii2hex (mangled[0]);
-	  char b = ascii2hex (mangled[1]);
-	  char val = (a << 4) | b;
+	case ' ':
+	  string_append (decl, " ");
+	  break;
+	case '\t':
+	  string_append (decl, "\\t");
+	  break;
+	case '\n':
+	  string_append (decl, "\\n");
+	  break;
+	case '\r':
+	  string_append (decl, "\\r");
+	  break;
+	case '\f':
+	  string_append (decl, "\\f");
+	  break;
+	case '\v':
+	  string_append (decl, "\\v");
+	  break;
 
-	  /* Sanitize white and non-printable characters.  */
-	  switch (val)
+	default:
+	  if (ISPRINT (val))
+	    string_appendn (decl, &val, 1);
+	  else
 	    {
-	    case ' ':
-	      string_append (decl, " ");
-	      break;
-	    case '\t':
-	      string_append (decl, "\\t");
-	      break;
-	    case '\n':
-	      string_append (decl, "\\n");
-	      break;
-	    case '\r':
-	      string_append (decl, "\\r");
-	      break;
-	    case '\f':
-	      string_append (decl, "\\f");
-	      break;
-	    case '\v':
-	      string_append (decl, "\\v");
-	      break;
-
-	    default:
-	      if (ISPRINT (val))
-		string_appendn (decl, &val, 1);
-	      else
-		{
-		  string_append (decl, "\\x");
-		  string_appendn (decl, mangled, 2);
-		}
+	      string_append (decl, "\\x");
+	      string_appendn (decl, mangled, 2);
 	    }
 	}
-      else
-	return NULL;
 
-      mangled += 2;
+      mangled = endptr;
     }
   string_append (decl, "\"");
 
@@ -1143,13 +1181,12 @@ dlang_parse_string (string *decl, const 
 static const char *
 dlang_parse_arrayliteral (string *decl, const char *mangled)
 {
-  char *endptr;
-  long elements = strtol (mangled, &endptr, 10);
+  long elements;
 
-  if (endptr == NULL || elements < 0)
+  mangled = dlang_number (mangled, &elements);
+  if (mangled == NULL)
     return NULL;
 
-  mangled = endptr;
   string_append (decl, "[");
   while (elements--)
     {
@@ -1167,13 +1204,12 @@ dlang_parse_arrayliteral (string *decl, 
 static const char *
 dlang_parse_assocarray (string *decl, const char *mangled)
 {
-  char *endptr;
-  long elements = strtol (mangled, &endptr, 10);
+  long elements;
 
-  if (endptr == NULL || elements < 0)
+  mangled = dlang_number (mangled, &elements);
+  if (mangled == NULL)
     return NULL;
 
-  mangled = endptr;
   string_append (decl, "[");
   while (elements--)
     {
@@ -1194,13 +1230,12 @@ dlang_parse_assocarray (string *decl, co
 static const char *
 dlang_parse_structlit (string *decl, const char *mangled, const char *name)
 {
-  char *endptr;
-  long args = strtol (mangled, &endptr, 10);
+  long args;
 
-  if (endptr == NULL || args < 0)
+  mangled = dlang_number (mangled, &args);
+  if (mangled == NULL)
     return NULL;
 
-  mangled = endptr;
   if (name != NULL)
     string_append (decl, name);
 
@@ -1241,9 +1276,11 @@ dlang_value (string *decl, const char *m
 
     case 'i':
       mangled++;
-      if (*mangled < '0' || *mangled > '9')
-	return NULL;
       /* Fall through */
+
+      /* There really should always be an `i' before encoded numbers, but there
+	 wasn't in early versions of D2, so this case range must remain for
+	 backwards compatibility.  */
     case '0': case '1': case '2': case '3': case '4':
     case '5': case '6': case '7': case '8': case '9':
       mangled = dlang_parse_integer (decl, mangled, type);
@@ -1296,101 +1333,133 @@ dlang_value (string *decl, const char *m
   return mangled;
 }
 
-/* Extract the type modifiers from MANGLED and return the string
-   length that it consumes in MANGLED on success or 0 on failure.  */
-static int
-dlang_type_modifier_p (const char *mangled)
+/* Extract and demangle the symbol in MANGLED and append it to DECL.
+   Returns the remaining signature on success or NULL on failure.  */
+static const char *
+dlang_parse_mangle (string *decl, const char *mangled,
+		    enum dlang_symbol_kinds kind)
 {
-  int i;
+  /* A D mangled symbol is comprised of both scope and type information.
 
-  switch (*mangled)
-    {
-    case 'x': case 'y':
-      return 1;
+	MangleName:
+	    _D QualifiedName Type
+	    _D QualifiedName M Type
+	    _D QualifiedName Z
+	    ^
+     The caller should have guaranteed that the start pointer is at the
+     above location.
+   */
+  mangled += 2;
 
-    case 'O':
-      mangled++;
-      i = dlang_type_modifier_p (mangled);
-      return i + 1;
+  mangled = dlang_parse_qualified (decl, mangled, dlang_top_level);
 
-    case 'N':
-      mangled++;
-      if (*mangled == 'g')
+  if (mangled != NULL)
+    {
+      /* Artificial symbols end with 'Z' and have no type.  */
+      if (*mangled == 'Z')
+	mangled++;
+      else
 	{
-	  mangled++;
-	  i = dlang_type_modifier_p (mangled);
-	  return i + 2;
-	}
-    }
+	  string mods;
+	  int saved;
 
-  return 0;
-}
+	  /* Skip over 'this' parameter.  */
+	  if (*mangled == 'M')
+	    mangled++;
 
-/* Extract the function calling convention from MANGLED and
-   return 1 on success or 0 on failure.  */
-static int
-dlang_call_convention_p (const char *mangled)
-{
-  /* Prefix for functions needing 'this' */
-  if (*mangled == 'M')
-    {
-      mangled++;
-      /* Also skip over any type modifiers.  */
-      mangled += dlang_type_modifier_p (mangled);
+	  /* Save the type modifiers for appending at the end if needed.  */
+	  string_init (&mods);
+	  mangled = dlang_type_modifiers (&mods, mangled);
+
+	  if (mangled && dlang_call_convention_p (mangled))
+	    {
+	      /* Skip over calling convention and attributes.  */
+	      saved = string_length (decl);
+	      mangled = dlang_call_convention (decl, mangled);
+	      mangled = dlang_attributes (decl, mangled);
+	      string_setlength (decl, saved);
+
+	      string_append (decl, "(");
+	      mangled = dlang_function_args (decl, mangled);
+	      string_append (decl, ")");
+
+	      /* Add any const/immutable/shared modifier. */
+	      string_appendn (decl, mods.b, string_length (&mods));
+	    }
+
+	  /* Consume the decl type of symbol.  */
+	  saved = string_length (decl);
+	  mangled = dlang_type (decl, mangled);
+	  string_setlength (decl, saved);
+
+	  string_delete (&mods);
+	}
     }
 
-  switch (*mangled)
+  /* Check that the entire symbol was successfully demangled.  */
+  if (kind == dlang_top_level)
     {
-    case 'F': case 'U': case 'V':
-    case 'W': case 'R': case 'Y':
-      return 1;
-
-    default:
-      return 0;
+      if (mangled == NULL || *mangled != '\0')
+	return NULL;
     }
+
+  return mangled;
 }
 
-/* Extract and demangle the symbol in MANGLED and append it to DECL.
+/* Extract and demangle the qualified symbol in MANGLED and append it to DECL.
    Returns the remaining signature on success or NULL on failure.  */
 static const char *
-dlang_parse_symbol (string *decl, const char *mangled,
-		    enum dlang_symbol_kinds kind)
+dlang_parse_qualified (string *decl, const char *mangled,
+		       enum dlang_symbol_kinds kind)
 {
-  int saved;
+  /* Qualified names are identifiers separated by their encoded length.
+     Nested functions also encode their argument types without specifying
+     what they return.
+
+	QualifiedName:
+	    SymbolName
+	    SymbolName QualifiedName
+	    SymbolName TypeFunctionNoReturn QualifiedName
+	    SymbolName M TypeModifiers TypeFunctionNoReturn QualifiedName
+	    ^
+     The start pointer should be at the above location.
+   */
   size_t n = 0;
   do
     {
       if (n++)
 	string_append (decl, ".");
 
+      /* Skip over anonymous symbols.  */
+      while (*mangled == '0')
+	mangled++;
+
       mangled = dlang_identifier (decl, mangled, kind);
 
-      if (mangled && dlang_call_convention_p (mangled))
+      /* Consume the encoded arguments.  However if this is not followed by the
+	 next encoded length, then this is not a continuation of a qualified
+	 name, in which case we backtrack and return the current unconsumed
+	 position of the mangled decl.  */
+      if (mangled && (*mangled == 'M' || dlang_call_convention_p (mangled)))
 	{
-	  string mods;
-	  const char *start = NULL;
-	  int checkpoint = 0;
+	  const char *start = mangled;
+	  int saved = string_length (decl);
 
-	  /* Skip over 'this' parameter.  */
+	  /* Skip over 'this' parameter and type modifiers.  */
 	  if (*mangled == 'M')
-	    mangled++;
-
-	  /* We have reached here because we expect an extern(Pascal) function.
-	     However this is so rare, that it is more likely a template value
-	     parameter.  Since this can't be assumed, first attempt parsing
-	     the symbol as a function, and then back out on failure.  */
-	  if (*mangled == 'V')
 	    {
-	      start = mangled;
-	      checkpoint = string_length (decl);
+	      mangled++;
+	      mangled = dlang_type_modifiers (decl, mangled);
+	      string_setlength (decl, saved);
 	    }
 
-	  /* Save the type modifiers for appending at the end.  */
-	  string_init (&mods);
-	  mangled = dlang_type_modifiers (&mods, mangled);
+	  /* The rule we expect to match in the mangled string is:
 
-	  /* Skip over calling convention and attributes in qualified name.  */
-	  saved = string_length (decl);
+		TypeFunctionNoReturn:
+		    CallConvention FuncAttrs Arguments ArgClose
+
+	     The calling convention and function attributes are not included
+	     in the demangled string.  */
 	  mangled = dlang_call_convention (decl, mangled);
 	  mangled = dlang_attributes (decl, mangled);
 	  string_setlength (decl, saved);
@@ -1399,41 +1468,16 @@ dlang_parse_symbol (string *decl, const 
 	  mangled = dlang_function_args (decl, mangled);
 	  string_append (decl, ")");
 
-	  /* Add any const/immutable/shared modifier. */
-	  string_appendn (decl, mods.b, string_length (&mods));
-	  string_delete (&mods);
-
-	  if (mangled == NULL && checkpoint != 0)
+	  if (mangled == NULL || !ISDIGIT (*mangled))
 	    {
+	      /* Did not match the rule we were looking for.  */
 	      mangled = start;
-	      string_setlength (decl, checkpoint);
+	      string_setlength (decl, saved);
 	    }
 	}
     }
   while (mangled && ISDIGIT (*mangled));
 
-  /* Only top-level symbols or function template parameters have
-     a type that needs checking.  */
-  if (kind == dlang_top_level || kind == dlang_function)
-    {
-      /* Artificial symbols end with 'Z' and have no type.  */
-      if (mangled && *mangled == 'Z')
-	mangled++;
-      else
-	{
-	  saved = string_length (decl);
-	  mangled = dlang_type (decl, mangled);
-	  string_setlength (decl, saved);
-	}
-
-      /* Check that the entire symbol was successfully demangled.  */
-      if (kind == dlang_top_level)
-	{
-	  if (mangled == NULL || *mangled != '\0')
-	    return NULL;
-	}
-    }
-
   return mangled;
 }
 
@@ -1442,13 +1486,12 @@ dlang_parse_symbol (string *decl, const 
 static const char *
 dlang_parse_tuple (string *decl, const char *mangled)
 {
-  char *endptr;
-  long elements = strtol (mangled, &endptr, 10);
+  long elements;
 
-  if (endptr == NULL || elements < 0)
+  mangled = dlang_number (mangled, &elements);
+  if (mangled == NULL)
     return NULL;
 
-  mangled = endptr;
   string_append (decl, "Tuple!(");
 
   while (elements--)
@@ -1489,7 +1532,7 @@ dlang_template_args (string *decl, const
 	{
 	case 'S': /* Symbol parameter.  */
 	  mangled++;
-	  mangled = dlang_parse_symbol (decl, mangled, dlang_template_param);
+	  mangled = dlang_identifier (decl, mangled, dlang_template_param);
 	  break;
 	case 'T': /* Type parameter.  */
 	  mangled++;
@@ -1537,11 +1580,14 @@ dlang_parse_template (string *decl, cons
 
 	TemplateInstanceName:
 	    Number __T LName TemplateArgs Z
+	    Number __U LName TemplateArgs Z
 		   ^
      The start pointer should be at the above location, and LEN should be
      the value of the decoded number.
    */
-  if (strncmp (mangled, "__T", 3) != 0)
+
+  /* Template symbol.  */
+  if (!ISDIGIT (mangled[3]) || mangled[3] == '0')
     return NULL;
 
   mangled += 3;
@@ -1584,9 +1630,7 @@ dlang_demangle (const char *mangled, int
     }
   else
     {
-      mangled += 2;
-
-      if (dlang_parse_symbol (&decl, mangled, dlang_top_level) == NULL)
+      if (dlang_parse_mangle (&decl, mangled, dlang_top_level) == NULL)
 	string_delete (&decl);
     }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/dwarfnames.c ./libiberty/dwarfnames.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/dwarfnames.c	2018-01-02 02:03:00.000000000 +0000
+++ ./libiberty/dwarfnames.c	2018-01-09 02:04:59.000000000 +0000
@@ -59,6 +59,11 @@ Boston, MA 02110-1301, USA.  */
   switch (opc) {					\
   DW_CFA (name, value)
 #define DW_END_CFA } return 0; }
+#define DW_FIRST_IDX(name, value) \
+  const char *get_DW_IDX_name (unsigned int idx) {	\
+  switch (idx) {					\
+  DW_IDX (name, value)
+#define DW_END_IDX } return 0; }
 
 #define DW_TAG(name, value) case name: return # name ;
 #define DW_TAG_DUP(name, value)
@@ -70,6 +75,9 @@ Boston, MA 02110-1301, USA.  */
 #define DW_ATE(name, value) case name: return # name ;
 #define DW_ATE_DUP(name, value)
 #define DW_CFA(name, value) case name: return # name ;
+#define DW_CFA_DUP(name, value)
+#define DW_IDX(name, value) case name: return # name ;
+#define DW_IDX_DUP(name, value)
 
 #include "dwarf2.def"
 
@@ -85,6 +93,8 @@ Boston, MA 02110-1301, USA.  */
 #undef DW_END_ATE
 #undef DW_FIRST_CFA
 #undef DW_END_CFA
+#undef DW_FIRST_IDX
+#undef DW_END_IDX
 
 #undef DW_TAG
 #undef DW_TAG_DUP
@@ -96,3 +106,6 @@ Boston, MA 02110-1301, USA.  */
 #undef DW_ATE
 #undef DW_ATE_DUP
 #undef DW_CFA
+#undef DW_CFA_DUP
+#undef DW_IDX
+#undef DW_IDX_DUP
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/simple-object.c ./libiberty/simple-object.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/simple-object.c	2018-01-02 02:03:00.000000000 +0000
+++ ./libiberty/simple-object.c	2018-01-09 02:04:59.000000000 +0000
@@ -22,6 +22,7 @@ Boston, MA 02110-1301, USA.  */
 #include "simple-object.h"
 
 #include <errno.h>
+#include <fcntl.h>
 
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
@@ -249,6 +250,86 @@ simple_object_find_section (simple_objec
   return 1;
 }
 
+/* Callback to identify and rename LTO debug sections by name.
+   Returns 1 if NAME is a LTO debug section, 0 if not.  */
+
+static int
+handle_lto_debug_sections (const char **name)
+{
+  /* ???  So we can't use .gnu.lto_ prefixed sections as the assembler
+     complains about bogus section flags.  Which means we need to arrange
+     for that to be fixed or .gnu.debuglto_ marked as SHF_EXCLUDE (to make
+     fat lto object tooling work for the fat part).  */
+  /* ???  For now this handles both .gnu.lto_ and .gnu.debuglto_ prefixed
+     sections.  */
+  /* Copy LTO debug sections and rename them to their non-LTO name.  */
+  if (strncmp (*name, ".gnu.debuglto_", sizeof (".gnu.debuglto_") - 1) == 0)
+    {
+      *name = *name + sizeof (".gnu.debuglto_") - 1;
+      return 1;
+    }
+  else if (strncmp (*name, ".gnu.lto_.debug_", sizeof (".gnu.lto_.debug_") -1) == 0)
+    {
+      *name = *name + sizeof (".gnu.lto_") - 1;
+      return 1;
+    }
+  return 0;
+}
+
+/* Copy LTO debug sections.  */
+
+const char *
+simple_object_copy_lto_debug_sections (simple_object_read *sobj,
+				       const char *dest, int *err)
+{
+  const char *errmsg;
+  simple_object_write *dest_sobj;
+  simple_object_attributes *attrs;
+  int outfd;
+
+  if (! sobj->functions->copy_lto_debug_sections)
+    {
+      *err = EINVAL;
+      return "simple_object_copy_lto_debug_sections not implemented";
+    }
+
+  attrs = simple_object_fetch_attributes (sobj, &errmsg, err);
+  if (! attrs)
+    return errmsg;
+  dest_sobj = simple_object_start_write (attrs, NULL, &errmsg, err);
+  simple_object_release_attributes (attrs);
+  if (! dest_sobj)
+    return errmsg;
+
+  errmsg = sobj->functions->copy_lto_debug_sections (sobj, dest_sobj,
+						     handle_lto_debug_sections,
+						     err);
+  if (errmsg)
+    {
+      simple_object_release_write (dest_sobj);
+      return errmsg;
+    }
+
+  outfd = creat (dest, 00777);
+  if (outfd == -1)
+    {
+      *err = errno;
+      simple_object_release_write (dest_sobj);
+      return "open failed";
+    }
+
+  errmsg = simple_object_write_to_file (dest_sobj, outfd, err);
+  close (outfd);
+  if (errmsg)
+    {
+      simple_object_release_write (dest_sobj);
+      return errmsg;
+    }
+
+  simple_object_release_write (dest_sobj);
+  return NULL;
+}
+
 /* Fetch attributes.  */
 
 simple_object_attributes *
@@ -315,7 +396,7 @@ simple_object_start_write (simple_object
     return NULL;
   ret = XNEW (simple_object_write);
   ret->functions = attrs->functions;
-  ret->segment_name = xstrdup (segment_name);
+  ret->segment_name = segment_name ? xstrdup (segment_name) : NULL;
   ret->sections = NULL;
   ret->last_section = NULL;
   ret->data = data;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/simple-object-coff.c ./libiberty/simple-object-coff.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/simple-object-coff.c	2018-01-02 02:03:00.000000000 +0000
+++ ./libiberty/simple-object-coff.c	2018-01-09 02:04:59.000000000 +0000
@@ -800,5 +800,6 @@ const struct simple_object_functions sim
   simple_object_coff_release_attributes,
   simple_object_coff_start_write,
   simple_object_coff_write_to_file,
-  simple_object_coff_release_write
+  simple_object_coff_release_write,
+  NULL
 };
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/simple-object-common.h ./libiberty/simple-object-common.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/simple-object-common.h	2018-01-02 02:03:00.000000000 +0000
+++ ./libiberty/simple-object-common.h	2018-01-09 02:04:59.000000000 +0000
@@ -141,6 +141,12 @@ struct simple_object_functions
 
   /* Release the private data for an simple_object_write.  */
   void (*release_write) (void *);
+
+  /* Copy LTO debug sections.  */
+  const char *(*copy_lto_debug_sections) (simple_object_read *sobj,
+					  simple_object_write *dobj,
+					  int (*pfn) (const char **),
+					  int *err);
 };
 
 /* The known object file formats.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/simple-object-elf.c ./libiberty/simple-object-elf.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/simple-object-elf.c	2018-01-02 02:03:00.000000000 +0000
+++ ./libiberty/simple-object-elf.c	2018-01-09 02:04:59.000000000 +0000
@@ -122,9 +122,12 @@ typedef struct {
 
 /* Special section index values.  */
 
+#define SHN_UNDEF	0		/* Undefined section */
 #define SHN_LORESERVE	0xFF00		/* Begin range of reserved indices */
+#define SHN_COMMON	0xFFF2	/* Associated symbol is in common */
 #define SHN_XINDEX	0xFFFF		/* Section index is held elsewhere */
 
+
 /* 32-bit ELF program header.  */
 
 typedef struct {
@@ -183,8 +186,57 @@ typedef struct {
 
 /* Values for sh_type field.  */
 
+#define SHT_NULL	0		/* Section header table entry unused */
 #define SHT_PROGBITS	1		/* Program data */
+#define SHT_SYMTAB	2		/* Link editing symbol table */
 #define SHT_STRTAB	3		/* A string table */
+#define SHT_RELA	4		/* Relocation entries with addends */
+#define SHT_REL		9		/* Relocation entries, no addends */
+#define SHT_GROUP	17		/* Section contains a section group */
+
+/* Values for sh_flags field.  */
+
+#define SHF_EXCLUDE	0x80000000	/* Link editor is to exclude this
+					   section from executable and
+					   shared library that it builds
+					   when those objects are not to be
+					   further relocated.  */
+/* Symbol table entry.  */
+
+typedef struct
+{
+  unsigned char st_name[4];                /* Symbol name (string tbl index) */
+  unsigned char st_value[4];               /* Symbol value */
+  unsigned char st_size[4];                /* Symbol size */
+  unsigned char st_info;                /* Symbol type and binding */
+  unsigned char st_other;               /* Symbol visibility */
+  unsigned char st_shndx[2];               /* Section index */
+} Elf32_External_Sym;
+
+typedef struct
+{
+  unsigned char st_name[4];                /* Symbol name (string tbl index) */
+  unsigned char st_info;                /* Symbol type and binding */
+  unsigned char st_other;               /* Symbol visibility */
+  unsigned char st_shndx[2];               /* Section index */
+  unsigned char st_value[8];               /* Symbol value */
+  unsigned char st_size[8];                /* Symbol size */
+} Elf64_External_Sym;
+
+#define ELF_ST_BIND(val)              (((unsigned char) (val)) >> 4)
+#define ELF_ST_TYPE(val)              ((val) & 0xf)
+#define ELF_ST_INFO(bind, type)       (((bind) << 4) + ((type) & 0xf))
+
+#define STT_NOTYPE	0	/* Symbol type is unspecified */
+#define STT_OBJECT	1	/* Symbol is a data object */
+#define STT_FUNC	2	/* Symbol is a code object */
+#define STT_TLS		6	/* Thread local data object */
+#define STT_GNU_IFUNC	10	/* Symbol is an indirect code object */
+
+#define STB_LOCAL	0	/* Local symbol */
+#define STB_GLOBAL	1	/* Global symbol */
+
+#define STV_DEFAULT	0	/* Visibility is specified by binding type */
 
 /* Functions to fetch and store different ELF types, depending on the
    endianness and size.  */
@@ -348,6 +400,14 @@ struct simple_object_elf_attributes
   unsigned int flags;
 };
 
+/* Private data for an simple_object_write.  */
+
+struct simple_object_elf_write
+{
+  struct simple_object_elf_attributes attrs;
+  unsigned char *shdrs;
+};
+
 /* See if we have an ELF file.  */
 
 static void *
@@ -675,12 +735,13 @@ simple_object_elf_start_write (void *att
 {
   struct simple_object_elf_attributes *attrs =
     (struct simple_object_elf_attributes *) attributes_data;
-  struct simple_object_elf_attributes *ret;
+  struct simple_object_elf_write *ret;
 
   /* We're just going to record the attributes, but we need to make a
      copy because the user may delete them.  */
-  ret = XNEW (struct simple_object_elf_attributes);
-  *ret = *attrs;
+  ret = XNEW (struct simple_object_elf_write);
+  ret->attrs = *attrs;
+  ret->shdrs = NULL;
   return ret;
 }
 
@@ -766,8 +827,11 @@ static int
 simple_object_elf_write_shdr (simple_object_write *sobj, int descriptor,
 			      off_t offset, unsigned int sh_name,
 			      unsigned int sh_type, unsigned int sh_flags,
+			      off_t sh_addr,
 			      unsigned int sh_offset, unsigned int sh_size,
-			      unsigned int sh_link, unsigned int sh_addralign,
+			      unsigned int sh_link, unsigned int sh_info,
+			      size_t sh_addralign,
+			      size_t sh_entsize,
 			      const char **errmsg, int *err)
 {
   struct simple_object_elf_attributes *attrs =
@@ -788,12 +852,13 @@ simple_object_elf_write_shdr (simple_obj
   ELF_SET_FIELD (fns, cl, Shdr, buf, sh_name, Elf_Word, sh_name);
   ELF_SET_FIELD (fns, cl, Shdr, buf, sh_type, Elf_Word, sh_type);
   ELF_SET_FIELD (fns, cl, Shdr, buf, sh_flags, Elf_Addr, sh_flags);
+  ELF_SET_FIELD (fns, cl, Shdr, buf, sh_addr, Elf_Addr, sh_addr);
   ELF_SET_FIELD (fns, cl, Shdr, buf, sh_offset, Elf_Addr, sh_offset);
   ELF_SET_FIELD (fns, cl, Shdr, buf, sh_size, Elf_Addr, sh_size);
   ELF_SET_FIELD (fns, cl, Shdr, buf, sh_link, Elf_Word, sh_link);
-  /* sh_info left as zero.  */
+  ELF_SET_FIELD (fns, cl, Shdr, buf, sh_info, Elf_Word, sh_info);
   ELF_SET_FIELD (fns, cl, Shdr, buf, sh_addralign, Elf_Addr, sh_addralign);
-  /* sh_entsize left as zero.  */
+  ELF_SET_FIELD (fns, cl, Shdr, buf, sh_entsize, Elf_Addr, sh_entsize);
 
   return simple_object_internal_write (descriptor, offset, buf, shdr_size,
 				       errmsg, err);
@@ -811,8 +876,9 @@ static const char *
 simple_object_elf_write_to_file (simple_object_write *sobj, int descriptor,
 				 int *err)
 {
-  struct simple_object_elf_attributes *attrs =
-    (struct simple_object_elf_attributes *) sobj->data;
+  struct simple_object_elf_write *eow =
+    (struct simple_object_elf_write *) sobj->data;
+  struct simple_object_elf_attributes *attrs = &eow->attrs;
   unsigned char cl;
   size_t ehdr_size;
   size_t shdr_size;
@@ -825,6 +891,7 @@ simple_object_elf_write_to_file (simple_
   unsigned int first_sh_link;
   size_t sh_name;
   unsigned char zero;
+  unsigned secnum;
 
   if (!simple_object_elf_write_ehdr (sobj, descriptor, &errmsg, err))
     return errmsg;
@@ -862,21 +929,54 @@ simple_object_elf_write_to_file (simple_
   else
     first_sh_link = shnum - 1;
   if (!simple_object_elf_write_shdr (sobj, descriptor, shdr_offset,
-				     0, 0, 0, 0, first_sh_size, first_sh_link,
-				     0, &errmsg, err))
+				     0, 0, 0, 0, 0, first_sh_size, first_sh_link,
+				     0, 0, 0, &errmsg, err))
     return errmsg;
 
   shdr_offset += shdr_size;
 
   sh_name = 1;
+  secnum = 0;
   for (section = sobj->sections; section != NULL; section = section->next)
     {
       size_t mask;
       size_t new_sh_offset;
       size_t sh_size;
       struct simple_object_write_section_buffer *buffer;
+      unsigned int sh_type = SHT_PROGBITS;
+      unsigned int sh_flags = 0;
+      off_t sh_addr = 0;
+      unsigned int sh_link = 0;
+      unsigned int sh_info = 0;
+      size_t sh_addralign = 1U << section->align;
+      size_t sh_entsize = 0;
+      if (eow->shdrs)
+	{
+	  sh_type = ELF_FETCH_FIELD (attrs->type_functions, attrs->ei_class, Shdr,
+				     eow->shdrs + secnum * shdr_size,
+				     sh_type, Elf_Word);
+	  sh_flags = ELF_FETCH_FIELD (attrs->type_functions, attrs->ei_class, Shdr,
+				      eow->shdrs + secnum * shdr_size,
+				      sh_flags, Elf_Addr);
+	  sh_addr = ELF_FETCH_FIELD (attrs->type_functions, attrs->ei_class, Shdr,
+				     eow->shdrs + secnum * shdr_size,
+				     sh_addr, Elf_Addr);
+	  sh_link = ELF_FETCH_FIELD (attrs->type_functions, attrs->ei_class, Shdr,
+				     eow->shdrs + secnum * shdr_size,
+				     sh_link, Elf_Word);
+	  sh_info = ELF_FETCH_FIELD (attrs->type_functions, attrs->ei_class, Shdr,
+				     eow->shdrs + secnum * shdr_size,
+				     sh_info, Elf_Word);
+	  sh_addralign = ELF_FETCH_FIELD (attrs->type_functions, attrs->ei_class, Shdr,
+					  eow->shdrs + secnum * shdr_size,
+					  sh_addralign, Elf_Addr);
+	  sh_entsize = ELF_FETCH_FIELD (attrs->type_functions, attrs->ei_class, Shdr,
+					eow->shdrs + secnum * shdr_size,
+					sh_entsize, Elf_Addr);
+	  secnum++;
+	}
 
-      mask = (1U << section->align) - 1;
+      mask = sh_addralign - 1;
       new_sh_offset = sh_offset + mask;
       new_sh_offset &= ~ mask;
       while (new_sh_offset > sh_offset)
@@ -906,8 +1006,10 @@ simple_object_elf_write_to_file (simple_
 	}
 
       if (!simple_object_elf_write_shdr (sobj, descriptor, shdr_offset,
-					 sh_name, SHT_PROGBITS, 0, sh_offset,
-					 sh_size, 0, 1U << section->align,
+					 sh_name, sh_type, sh_flags,
+					 sh_addr, sh_offset,
+					 sh_size, sh_link, sh_info,
+					 sh_addralign, sh_entsize,
 					 &errmsg, err))
 	return errmsg;
 
@@ -917,9 +1019,9 @@ simple_object_elf_write_to_file (simple_
     }
 
   if (!simple_object_elf_write_shdr (sobj, descriptor, shdr_offset,
-				     sh_name, SHT_STRTAB, 0, sh_offset,
-				     sh_name + strlen (".shstrtab") + 1, 0,
-				     1, &errmsg, err))
+				     sh_name, SHT_STRTAB, 0, 0, sh_offset,
+				     sh_name + strlen (".shstrtab") + 1, 0, 0,
+				     1, 0, &errmsg, err))
     return errmsg;
 
   /* .shstrtab has a leading zero byte.  */
@@ -954,9 +1056,369 @@ simple_object_elf_write_to_file (simple_
 static void
 simple_object_elf_release_write (void *data)
 {
+  struct simple_object_elf_write *eow = (struct simple_object_elf_write *) data;
+  if (eow->shdrs)
+    XDELETE (eow->shdrs);
   XDELETE (data);
 }
 
+/* Copy all sections in an ELF file.  */
+
+static const char *
+simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
+					   simple_object_write *dobj,
+					   int (*pfn) (const char **),
+					   int *err)
+{
+  struct simple_object_elf_read *eor =
+    (struct simple_object_elf_read *) sobj->data;
+  const struct elf_type_functions *type_functions = eor->type_functions;
+  struct simple_object_elf_write *eow =
+    (struct simple_object_elf_write *) dobj->data;
+  unsigned char ei_class = eor->ei_class;
+  size_t shdr_size;
+  unsigned int shnum;
+  unsigned char *shdrs;
+  const char *errmsg;
+  unsigned char *shstrhdr;
+  size_t name_size;
+  off_t shstroff;
+  unsigned char *names;
+  unsigned int i;
+  int *pfnret;
+  const char **pfnname;
+
+  shdr_size = (ei_class == ELFCLASS32
+	       ? sizeof (Elf32_External_Shdr)
+	       : sizeof (Elf64_External_Shdr));
+
+  /* Read the section headers.  We skip section 0, which is not a
+     useful section.  */
+
+  shnum = eor->shnum;
+  shdrs = XNEWVEC (unsigned char, shdr_size * (shnum - 1));
+
+  if (!simple_object_internal_read (sobj->descriptor,
+				    sobj->offset + eor->shoff + shdr_size,
+				    shdrs,
+				    shdr_size * (shnum - 1),
+				    &errmsg, err))
+    {
+      XDELETEVEC (shdrs);
+      return errmsg;
+    }
+
+  /* Read the section names.  */
+
+  shstrhdr = shdrs + (eor->shstrndx - 1) * shdr_size;
+  name_size = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+			       shstrhdr, sh_size, Elf_Addr);
+  shstroff = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+			      shstrhdr, sh_offset, Elf_Addr);
+  names = XNEWVEC (unsigned char, name_size);
+  if (!simple_object_internal_read (sobj->descriptor,
+				    sobj->offset + shstroff,
+				    names, name_size, &errmsg, err))
+    {
+      XDELETEVEC (names);
+      XDELETEVEC (shdrs);
+      return errmsg;
+    }
+
+  eow->shdrs = XNEWVEC (unsigned char, shdr_size * (shnum - 1));
+  pfnret = XNEWVEC (int, shnum);
+  pfnname = XNEWVEC (const char *, shnum);
+
+  /* First perform the callbacks to know which sections to preserve and
+     what name to use for those.  */
+  for (i = 1; i < shnum; ++i)
+    {
+      unsigned char *shdr;
+      unsigned int sh_name;
+      const char *name;
+      int ret;
+
+      shdr = shdrs + (i - 1) * shdr_size;
+      sh_name = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+				 shdr, sh_name, Elf_Word);
+      if (sh_name >= name_size)
+	{
+	  *err = 0;
+	  XDELETEVEC (names);
+	  XDELETEVEC (shdrs);
+	  return "ELF section name out of range";
+	}
+
+      name = (const char *) names + sh_name;
+
+      ret = (*pfn) (&name);
+      pfnret[i - 1] = ret == 1 ? 0 : -1;
+      pfnname[i - 1] = name;
+    }
+
+  /* Mark sections as preserved that are required by to be preserved
+     sections.  */
+  int changed;
+  do
+    {
+      changed = 0;
+      for (i = 1; i < shnum; ++i)
+	{
+	  unsigned char *shdr;
+	  unsigned int sh_type, sh_info, sh_link;
+	  off_t offset;
+	  off_t length;
+
+	  shdr = shdrs + (i - 1) * shdr_size;
+	  sh_type = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+				     shdr, sh_type, Elf_Word);
+	  sh_info = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+				     shdr, sh_info, Elf_Word);
+	  sh_link = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+				     shdr, sh_link, Elf_Word);
+	  if (sh_type == SHT_GROUP)
+	    {
+	      /* Mark groups containing copied sections.  */
+	      unsigned entsize = ELF_FETCH_FIELD (type_functions, ei_class,
+						  Shdr, shdr, sh_entsize,
+						  Elf_Addr);
+	      unsigned char *ent, *buf;
+	      int keep = 0;
+	      offset = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+					shdr, sh_offset, Elf_Addr);
+	      length = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+					shdr, sh_size, Elf_Addr);
+	      buf = XNEWVEC (unsigned char, length);
+	      if (!simple_object_internal_read (sobj->descriptor,
+						sobj->offset + offset, buf,
+						(size_t) length, &errmsg, err))
+		{
+		  XDELETEVEC (buf);
+		  XDELETEVEC (names);
+		  XDELETEVEC (shdrs);
+		  return errmsg;
+		}
+	      for (ent = buf + entsize; ent < buf + length; ent += entsize)
+		{
+		  unsigned sec = type_functions->fetch_Elf_Word (ent);
+		  if (pfnret[sec - 1] == 0)
+		    keep = 1;
+		}
+	      if (keep)
+		{
+		  changed |= (pfnret[sh_link - 1] == -1
+			      || pfnret[i - 1] == -1);
+		  pfnret[sh_link - 1] = 0;
+		  pfnret[i - 1] = 0;
+		}
+	    }
+	  if (sh_type == SHT_RELA
+	      || sh_type == SHT_REL)
+	    {
+	      /* Mark relocation sections and symtab of copied sections.  */
+	      if (pfnret[sh_info - 1] == 0)
+		{
+		  changed |= (pfnret[sh_link - 1] == -1
+			      || pfnret[i - 1] == -1);
+		  pfnret[sh_link - 1] = 0;
+		  pfnret[i - 1] = 0;
+		}
+	    }
+	  if (sh_type == SHT_SYMTAB)
+	    {
+	      /* Mark strings sections of copied symtabs.  */
+	      if (pfnret[i - 1] == 0)
+		{
+		  changed |= pfnret[sh_link - 1] == -1;
+		  pfnret[sh_link - 1] = 0;
+		}
+	    }
+	}
+    }
+  while (changed);
+
+  /* Then perform the actual copying.  */
+  for (i = 1; i < shnum; ++i)
+    {
+      unsigned char *shdr;
+      unsigned int sh_name, sh_type;
+      const char *name;
+      off_t offset;
+      off_t length;
+      int ret;
+      simple_object_write_section *dest;
+      off_t flags;
+      unsigned char *buf;
+
+      shdr = shdrs + (i - 1) * shdr_size;
+      sh_name = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+				 shdr, sh_name, Elf_Word);
+      if (sh_name >= name_size)
+	{
+	  *err = 0;
+	  XDELETEVEC (names);
+	  XDELETEVEC (shdrs);
+	  return "ELF section name out of range";
+	}
+
+      name = (const char *) names + sh_name;
+      offset = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+				shdr, sh_offset, Elf_Addr);
+      length = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+				shdr, sh_size, Elf_Addr);
+      sh_type = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+				 shdr, sh_type, Elf_Word);
+
+      ret = pfnret[i - 1];
+      name = ret == 0 ? pfnname[i - 1] : "";
+
+      dest = simple_object_write_create_section (dobj, name, 0, &errmsg, err);
+      if (dest == NULL)
+	{
+	  XDELETEVEC (names);
+	  XDELETEVEC (shdrs);
+	  return errmsg;
+	}
+
+      /* Record the SHDR of the source.  */
+      memcpy (eow->shdrs + (i - 1) * shdr_size, shdr, shdr_size);
+      shdr = eow->shdrs + (i - 1) * shdr_size;
+
+      /* Copy the data.
+	 ???  This is quite wasteful and ideally would be delayed until
+	 write_to_file ().  Thus it questions the interfacing
+	 which eventually should contain destination creation plus
+	 writing.  */
+      /* Keep empty sections for sections we should discard.  This avoids
+         the need to rewrite section indices in symtab and relocation
+	 sections.  */
+      if (ret == 0)
+	{
+	  buf = XNEWVEC (unsigned char, length);
+	  if (!simple_object_internal_read (sobj->descriptor,
+					    sobj->offset + offset, buf,
+					    (size_t) length, &errmsg, err))
+	    {
+	      XDELETEVEC (buf);
+	      XDELETEVEC (names);
+	      XDELETEVEC (shdrs);
+	      return errmsg;
+	    }
+
+	  /* If we are processing .symtab purge __gnu_lto_v1 and
+	     __gnu_lto_slim symbols from it.  */
+	  if (sh_type == SHT_SYMTAB)
+	    {
+	      unsigned entsize = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+						  shdr, sh_entsize, Elf_Addr);
+	      unsigned strtab = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+						 shdr, sh_link, Elf_Word);
+	      unsigned char *strshdr = shdrs + (strtab - 1) * shdr_size;
+	      off_t stroff = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+					      strshdr, sh_offset, Elf_Addr);
+	      size_t strsz = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+					      strshdr, sh_size, Elf_Addr);
+	      char *strings = XNEWVEC (char, strsz);
+	      unsigned char *ent;
+	      simple_object_internal_read (sobj->descriptor,
+					   sobj->offset + stroff,
+					   (unsigned char *)strings,
+					   strsz, &errmsg, err);
+	      for (ent = buf; ent < buf + length; ent += entsize)
+		{
+		  unsigned st_shndx = ELF_FETCH_FIELD (type_functions, ei_class,
+						       Sym, ent,
+						       st_shndx, Elf_Half);
+		  unsigned char *st_info;
+		  unsigned char *st_other;
+		  int discard = 0;
+		  if (ei_class == ELFCLASS32)
+		    {
+		      st_info = &((Elf32_External_Sym *)ent)->st_info;
+		      st_other = &((Elf32_External_Sym *)ent)->st_other;
+		    }
+		  else
+		    {
+		      st_info = &((Elf64_External_Sym *)ent)->st_info;
+		      st_other = &((Elf64_External_Sym *)ent)->st_other;
+		    }
+		  /* Eliminate all COMMONs - this includes __gnu_lto_v1
+		     and __gnu_lto_slim which otherwise cause endless
+		     LTO plugin invocation.  */
+		  if (st_shndx == SHN_COMMON)
+		    /* Setting st_name to "" seems to work to purge
+		       COMMON symbols (in addition to setting their
+		       size to zero).  */
+		    discard = 1;
+		  /* We also need to remove symbols refering to sections
+		     we'll eventually remove as with fat LTO objects
+		     we otherwise get duplicate symbols at final link
+		     (with GNU ld, gold is fine and ignores symbols in
+		     sections marked as EXCLUDE).  ld/20513  */
+		  else if (st_shndx != SHN_UNDEF
+			   && st_shndx < shnum
+			   && pfnret[st_shndx - 1] == -1)
+		    discard = 1;
+
+		  if (discard)
+		    {
+		      /* Make discarded symbols undefined and unnamed
+		         in case it is local.  */
+		      if (ELF_ST_BIND (*st_info) == STB_LOCAL)
+			ELF_SET_FIELD (type_functions, ei_class, Sym,
+				       ent, st_name, Elf_Word, 0);
+		      ELF_SET_FIELD (type_functions, ei_class, Sym,
+				     ent, st_value, Elf_Addr, 0);
+		      ELF_SET_FIELD (type_functions, ei_class, Sym,
+				     ent, st_size, Elf_Word, 0);
+		      ELF_SET_FIELD (type_functions, ei_class, Sym,
+				     ent, st_shndx, Elf_Half, SHN_UNDEF);
+		      *st_info = ELF_ST_INFO (ELF_ST_BIND (*st_info),
+					      STT_NOTYPE);
+		      *st_other = STV_DEFAULT;
+		    }
+		}
+	      XDELETEVEC (strings);
+	    }
+
+	  errmsg = simple_object_write_add_data (dobj, dest,
+						 buf, length, 1, err);
+	  XDELETEVEC (buf);
+	  if (errmsg)
+	    {
+	      XDELETEVEC (names);
+	      XDELETEVEC (shdrs);
+	      return errmsg;
+	    }
+	}
+      else
+	{
+	  /* For deleted sections mark the section header table entry as
+	     unused.  That allows the link editor to remove it in a partial
+	     link.  */
+	  ELF_SET_FIELD (type_functions, ei_class, Shdr,
+			 shdr, sh_type, Elf_Word, SHT_NULL);
+	}
+
+      flags = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+			       shdr, sh_flags, Elf_Addr);
+      if (ret == 0)
+	flags &= ~SHF_EXCLUDE;
+      else if (ret == -1)
+	flags = SHF_EXCLUDE;
+      ELF_SET_FIELD (type_functions, ei_class, Shdr,
+		     shdr, sh_flags, Elf_Addr, flags);
+    }
+
+  XDELETEVEC (names);
+  XDELETEVEC (shdrs);
+  XDELETEVEC (pfnret);
+  XDELETEVEC (pfnname);
+
+  return NULL;
+}
+
+
 /* The ELF functions.  */
 
 const struct simple_object_functions simple_object_elf_functions =
@@ -969,5 +1431,6 @@ const struct simple_object_functions sim
   simple_object_elf_release_attributes,
   simple_object_elf_start_write,
   simple_object_elf_write_to_file,
-  simple_object_elf_release_write
+  simple_object_elf_release_write,
+  simple_object_elf_copy_lto_debug_sections
 };
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/simple-object-mach-o.c ./libiberty/simple-object-mach-o.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/simple-object-mach-o.c	2018-01-02 02:03:00.000000000 +0000
+++ ./libiberty/simple-object-mach-o.c	2018-01-09 02:04:59.000000000 +0000
@@ -1374,5 +1374,6 @@ const struct simple_object_functions sim
   simple_object_mach_o_release_attributes,
   simple_object_mach_o_start_write,
   simple_object_mach_o_write_to_file,
-  simple_object_mach_o_release_write
+  simple_object_mach_o_release_write,
+  NULL
 };
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/simple-object-xcoff.c ./libiberty/simple-object-xcoff.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/simple-object-xcoff.c	2018-01-02 02:03:00.000000000 +0000
+++ ./libiberty/simple-object-xcoff.c	2018-01-09 02:04:59.000000000 +0000
@@ -138,15 +138,15 @@ struct external_syment
   union {
     struct {
       union {
-        /* The name of the symbol.  There is an implicit null character
-           after the end of the array.  */
-        char n_name[N_SYMNMLEN];
-        struct {
-          /* If n_zeroes is zero, n_offset is the offset the name from
-             the start of the string table.  */
-          unsigned char n_zeroes[4];
-          unsigned char n_offset[4];
-        } n;
+/* The name of the symbol.  There is an implicit null character
+   after the end of the array.  */
+	char n_name[N_SYMNMLEN];
+	struct {
+	  /* If n_zeroes is zero, n_offset is the offset the name from
+	     the start of the string table.  */
+	  unsigned char n_zeroes[4];
+	  unsigned char n_offset[4];
+	} n;
       } n;
 
       /* The symbol's value.  */
@@ -255,8 +255,14 @@ union external_auxent
 #define IMAGE_SYM_TYPE \
   ((IMAGE_SYM_DTYPE_NULL << 4) | IMAGE_SYM_TYPE_NULL)
 
+#define C_EXT		(2)
 #define C_STAT		(3)
 #define C_FILE		(103)
+#define C_HIDEXT	(107)
+
+#define XTY_SD		(1)	/* section definition */
+
+#define XMC_XO		(7)	/* extended operation */
 
 /* Private data for an simple_object_read.  */
 
@@ -398,11 +404,13 @@ simple_object_xcoff_find_sections (simpl
   size_t scnhdr_size;
   unsigned char *scnbuf;
   const char *errmsg;
+  unsigned short (*fetch_16) (const unsigned char *);
   unsigned int (*fetch_32) (const unsigned char *);
   ulong_type (*fetch_64) (const unsigned char *);
   unsigned int nscns;
   char *strtab;
   size_t strtab_size;
+  struct external_syment *symtab = NULL;
   unsigned int i;
 
   scnhdr_size = u64 ? SCNHSZ64 : SCNHSZ32;
@@ -416,6 +424,7 @@ simple_object_xcoff_find_sections (simpl
       return errmsg;
     }
 
+  fetch_16 = simple_object_fetch_big_16;
   fetch_32 = simple_object_fetch_big_32;
   fetch_64 = simple_object_fetch_big_64;
 
@@ -429,7 +438,7 @@ simple_object_xcoff_find_sections (simpl
       char namebuf[SCNNMLEN + 1];
       char *name;
       off_t scnptr;
-      unsigned int size;
+      off_t size;
 
       scnhdr = scnbuf + i * scnhdr_size;
       scnname = scnhdr + offsetof (struct external_scnhdr, s_name);
@@ -489,6 +498,151 @@ simple_object_xcoff_find_sections (simpl
 	break;
     }
 
+  /* Special handling for .go_export csect.  */
+  if (ocr->nsyms > 0)
+    {
+      unsigned char *sym;
+      const char *n_name;
+      off_t size, n_value;
+      unsigned int n_numaux, n_offset, n_zeroes;
+      short n_scnum;
+
+      /* Read symbol table.  */
+      symtab = XNEWVEC (struct external_syment, ocr->nsyms * SYMESZ);
+      if (!simple_object_internal_read (sobj->descriptor,
+					sobj->offset + ocr->symptr,
+					(unsigned char *) symtab,
+					ocr->nsyms * SYMESZ,
+					&errmsg, err))
+	{
+	  XDELETEVEC (symtab);
+	  XDELETEVEC (scnbuf);
+	  return NULL;
+	}
+
+      /* Search in symbol table if we have a ".go_export" symbol.  */
+      for (i = 0; i < ocr->nsyms; i += n_numaux + 1)
+	{
+	  sym = (unsigned char *) &symtab[i];
+	  n_numaux = symtab[i].n_numaux[0];
+
+	  if (symtab[i].n_sclass[0] != C_EXT
+	      && symtab[i].n_sclass[0] != C_HIDEXT)
+	    continue;
+
+	  /* Must have at least one csect auxiliary entry.  */
+	  if (n_numaux < 1 || i + n_numaux >= ocr->nsyms)
+	    continue;
+
+	  n_scnum = fetch_16 (sym + offsetof (struct external_syment,
+					      n_scnum));
+	  if (n_scnum < 1 || (unsigned int) n_scnum > nscns)
+	    continue;
+
+	  if (u64)
+	    {
+	      n_value = fetch_64 (sym + offsetof (struct external_syment,
+						  u.xcoff64.n_value));
+	      n_offset = fetch_32 (sym + offsetof (struct external_syment,
+						   u.xcoff64.n_offset));
+	    }
+	  else
+	    {
+	      /* ".go_export" is longer than N_SYMNMLEN.  */
+	      n_zeroes = fetch_32 (sym + offsetof (struct external_syment,
+						   u.xcoff32.n.n.n_zeroes));
+	      if (n_zeroes != 0)
+		continue;
+
+	      n_value = fetch_32 (sym + offsetof (struct external_syment,
+						  u.xcoff32.n_value));
+	      n_offset = fetch_32 (sym + offsetof (struct external_syment,
+						   u.xcoff32.n.n.n_offset));
+	    }
+
+	  /* The real symbol name is found in the string table.  */
+	  if (strtab == NULL)
+	    {
+	      strtab = simple_object_xcoff_read_strtab (sobj,
+	  						&strtab_size,
+							&errmsg, err);
+	      if (strtab == NULL)
+		{
+		  XDELETEVEC (symtab);
+		  XDELETEVEC (scnbuf);
+		  return errmsg;
+		}
+	    }
+
+	  if (n_offset >= strtab_size)
+	    {
+	      XDELETEVEC (strtab);
+	      XDELETEVEC (symtab);
+	      XDELETEVEC (scnbuf);
+	      *err = 0;
+	      return "symbol string index out of range";
+	    }
+	  n_name = strtab + n_offset;
+
+	  if (!strcmp (n_name, ".go_export"))
+	    {
+	      union external_auxent *auxent;
+	      unsigned char *aux, *scnhdr;
+	      off_t scnptr, x_scnlen;
+
+	      /* Found .go_export symbol, read its csect auxiliary entry.
+		 By convention, it is the last auxiliary entry.  */
+	      auxent = (union external_auxent *) &symtab[i + n_numaux];
+	      aux = (unsigned char *) auxent;
+	      if (u64)
+		{
+		  if ((auxent->u.xcoff64.x_csect.x_smtyp & 0x7) != XTY_SD
+		      || auxent->u.xcoff64.x_csect.x_smclas != XMC_XO)
+		    continue;
+
+		  x_scnlen = fetch_32 (aux + offsetof (union external_auxent,
+						       u.xcoff64.x_csect.x_scnlen_hi));
+		  x_scnlen = x_scnlen << 32
+			   | fetch_32 (aux + offsetof (union external_auxent,
+						       u.xcoff64.x_csect.x_scnlen_lo));
+		}
+	      else
+		{
+		  if ((auxent->u.xcoff32.x_csect.x_smtyp & 0x7) != XTY_SD
+		      || auxent->u.xcoff32.x_csect.x_smclas != XMC_XO)
+		    continue;
+
+		  x_scnlen = fetch_32 (aux + offsetof (union external_auxent,
+						       u.xcoff32.x_csect.x_scnlen));
+		}
+
+	      /* Get header of containing section.  */
+	      scnhdr = scnbuf + (n_scnum - 1) * scnhdr_size;
+	      if (u64)
+		{
+		  scnptr = fetch_64 (scnhdr + offsetof (struct external_scnhdr,
+							u.xcoff64.s_scnptr));
+		  size = fetch_64 (scnhdr + offsetof (struct external_scnhdr,
+						      u.xcoff64.s_size));
+		}
+	      else
+		{
+		  scnptr = fetch_32 (scnhdr + offsetof (struct external_scnhdr,
+							u.xcoff32.s_scnptr));
+		  size = fetch_32 (scnhdr + offsetof (struct external_scnhdr,
+						      u.xcoff32.s_size));
+		}
+	      if (n_value + x_scnlen > size)
+		break;
+
+	      (*pfn) (data, ".go_export", scnptr + n_value, x_scnlen);
+	      break;
+	    }
+	}
+    }
+
+  if (symtab != NULL)
+    XDELETEVEC (symtab);
   if (strtab != NULL)
     XDELETEVEC (strtab);
   XDELETEVEC (scnbuf);
@@ -894,5 +1048,6 @@ const struct simple_object_functions sim
   simple_object_xcoff_release_attributes,
   simple_object_xcoff_start_write,
   simple_object_xcoff_write_to_file,
-  simple_object_xcoff_release_write
+  simple_object_xcoff_release_write,
+  NULL
 };
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/testsuite/d-demangle-expected ./libiberty/testsuite/d-demangle-expected
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/testsuite/d-demangle-expected	2018-01-02 02:03:00.000000000 +0000
+++ ./libiberty/testsuite/d-demangle-expected	2018-01-09 02:04:59.000000000 +0000
@@ -22,6 +22,14 @@ _D8demangle4testPFLAiYi
 demangle.test
 #
 --format=dlang
+_D8demangle4testFZv
+demangle.test()
+#
+--format=dlang
+_D8demangle4testMFZ2fnMFZv
+demangle.test().fn()
+#
+--format=dlang
 _D8demangle4testFaZv
 demangle.test(char)
 #
@@ -330,6 +338,10 @@ _D8demangle4testFNkaZv
 demangle.test(return char)
 #
 --format=dlang
+_D8demangle4testFNlaZv
+demangle.test(char)
+#
+--format=dlang
 _D8demangle4testFaXv
 demangle.test(char...)
 #
@@ -478,6 +490,26 @@ _D8demangle4testFNjNkDFNjZaZv
 demangle.test(return char() return delegate)
 #
 --format=dlang
+_D8demangle4testFNlDFZaZv
+demangle.test(char() delegate)
+#
+--format=dlang
+_D8demangle4testFMDFZaZv
+demangle.test(scope char() delegate)
+#
+--format=dlang
+_D8demangle4testFDFNlZaZv
+demangle.test(char() scope delegate)
+#
+--format=dlang
+_D8demangle4testFMDFNlZaZv
+demangle.test(scope char() scope delegate)
+#
+--format=dlang
+_D8demangle4testFNlMDFNlZaZv
+demangle.test(scope char() scope delegate)
+#
+--format=dlang
 _D8demangle4testFPFNaZaZv
 demangle.test(char() pure function)
 #
@@ -534,8 +566,28 @@ _D8demangle4testFNjNkPFNjZaZv
 demangle.test(return char() return function)
 #
 --format=dlang
+_D8demangle4testFNlPFZaZv
+demangle.test(char() function)
+#
+--format=dlang
+_D8demangle4testFMPFZaZv
+demangle.test(scope char() function)
+#
+--format=dlang
+_D8demangle4testFPFNlZaZv
+demangle.test(char() scope function)
+#
+--format=dlang
+_D8demangle4testFMPFNlZaZv
+demangle.test(scope char() scope function)
+#
+--format=dlang
+_D8demangle4testFNlMPFNlZaZv
+demangle.test(scope char() scope function)
+#
+--format=dlang
 _D8demangle4test6__initZ
-demangle.test.init$
+initializer for demangle.test
 #
 --format=dlang
 _D8demangle4test6__vtblZ
@@ -606,6 +658,10 @@ _D8demangle9__T4testZv
 demangle.test!()
 #
 --format=dlang
+_D8demangle9__U4testZv
+demangle.test!()
+#
+--format=dlang
 _D8demangle11__T4testTaZv
 demangle.test!(char)
 #
@@ -650,35 +706,35 @@ _D8demangle13__T4testVPinZv
 demangle.test!(null)
 #
 --format=dlang
-_D8demangle14__T4testVg123Zv
+_D8demangle15__T4testVgi123Zv
 demangle.test!(123)
 #
 --format=dlang
-_D8demangle14__T4testVi123Zv
+_D8demangle15__T4testVii123Zv
 demangle.test!(123)
 #
 --format=dlang
-_D8demangle14__T4testVs123Zv
+_D8demangle15__T4testVsi123Zv
 demangle.test!(123)
 #
 --format=dlang
-_D8demangle14__T4testVh123Zv
+_D8demangle15__T4testVhi123Zv
 demangle.test!(123u)
 #
 --format=dlang
-_D8demangle14__T4testVk123Zv
+_D8demangle15__T4testVki123Zv
 demangle.test!(123u)
 #
 --format=dlang
-_D8demangle14__T4testVt123Zv
+_D8demangle15__T4testVti123Zv
 demangle.test!(123u)
 #
 --format=dlang
-_D8demangle14__T4testVl123Zv
+_D8demangle15__T4testVli123Zv
 demangle.test!(123L)
 #
 --format=dlang
-_D8demangle14__T4testVm123Zv
+_D8demangle15__T4testVmi123Zv
 demangle.test!(123uL)
 #
 --format=dlang
@@ -698,35 +754,35 @@ _D8demangle15__T4testVmN123Zv
 demangle.test!(-123uL)
 #
 --format=dlang
-_D8demangle12__T4testVb1Zv
+_D8demangle13__T4testVbi1Zv
 demangle.test!(true)
 #
 --format=dlang
-_D8demangle12__T4testVb0Zv
+_D8demangle13__T4testVbi0Zv
 demangle.test!(false)
 #
 --format=dlang
-_D8demangle13__T4testVa10Zv
+_D8demangle14__T4testVai10Zv
 demangle.test!('\x0a')
 #
 --format=dlang
-_D8demangle13__T4testVa32Zv
+_D8demangle14__T4testVai32Zv
 demangle.test!(' ')
 #
 --format=dlang
-_D8demangle13__T4testVa65Zv
+_D8demangle14__T4testVai65Zv
 demangle.test!('A')
 #
 --format=dlang
-_D8demangle14__T4testVa126Zv
+_D8demangle15__T4testVai126Zv
 demangle.test!('~')
 #
 --format=dlang
-_D8demangle15__T4testVu1000Zv
+_D8demangle16__T4testVui1000Zv
 demangle.test!('\u03e8')
 #
 --format=dlang
-_D8demangle17__T4testVw100000Zv
+_D8demangle18__T4testVwi100000Zv
 demangle.test!('\U000186a0')
 #
 --format=dlang
@@ -782,6 +838,10 @@ _D8demangle52__T4testVrcN0C4CCCCCCCCCCCC
 demangle.test!(-0x0.C4CCCCCCCCCCCCCDp4+0x0.B666666666666666p6i)
 #
 --format=dlang
+_D8demangle91__T4testVde000111222333444555666777888999AAABBBCCCDDDEEEFFFP000111222333444555666777888999Zv
+demangle.test!(0x0.00111222333444555666777888999AAABBBCCCDDDEEEFFFp000111222333444555666777888999)
+#
+--format=dlang
 _D8demangle22__T4testVG3ua3_616263Zv
 demangle.test!("abc")
 #
@@ -794,6 +854,14 @@ _D8demangle22__T4testVG3uw3_616263Zv
 demangle.test!("abc"w)
 #
 --format=dlang
+_D8demangle16__T4testVAyaa0_Zv
+demangle.test!("")
+#
+--format=dlang
+_D8demangle32__T4testVAyaa8_20090a0d0c0b00ffZv
+demangle.test!(" \t\n\r\f\v\x00\xff")
+#
+--format=dlang
 _D8demangle22__T4testVAiA4i1i2i3i4Zv
 demangle.test!([1, 2, 3, 4])
 #
@@ -818,6 +886,10 @@ _D8demangle35__T4testVS8demangle1SS2i1a3
 demangle.test!(demangle.S(1, "abc"))
 #
 --format=dlang
+_D8demangle13__T4testTFZaZ6mangleFZv
+demangle.test!(char() function).mangle()
+#
+--format=dlang
 _D8demangle4testMxFZv
 demangle.test() const
 #
@@ -881,6 +953,14 @@ demangle.test(char() delegate shared ino
 _D8demangle4testFDONgxFZaZv
 demangle.test(char() delegate shared inout const)
 #
+--format=dlang
+_D8demangle004testFaZv
+demangle.test(char)
+#
+--format=dlang
+_D8demangle000000004testFaZv
+demangle.test(char)
+#
 # Unittests
 #
 --format=dlang
@@ -900,6 +980,126 @@ _D5__T1aZv
 _D5__T1aZv
 #
 --format=dlang
+_D00
+_D00
+#
+--format=dlang
+_D9223372036854775817
+_D9223372036854775817
+#
+--format=dlang
+_D1az
+_D1az
+#
+--format=dlang
+_D1aN
+_D1aN
+#
+--format=dlang
+_D1aF
+_D1aF
+#
+--format=dlang
+_D1aM
+_D1aM
+#
+--format=dlang
+_D1aFZNz
+_D1aFZNz
+#
+--format=dlang
+_D1aFNzZv
+_D1aFNzZv
+#
+--format=dlang
+_D4testFDX
+_D4testFDX
+#
+--format=dlang
+_D5__T0aZv
+_D5__T0aZv
+#
+--format=dlang
+_D10__T4testYZv
+_D10__T4testYZv
+#
+--format=dlang
+_D4testFBaZv
+_D4testFBaZv
+#
+--format=dlang
+_D8__T4test
+_D8__T4test
+#
+--format=dlang
+_D10__T4testVi
+_D10__T4testVi
+#
+--format=dlang
+_D10__T4testVai
+_D10__T4testVai
+#
+--format=dlang
+_D10__T4testVbi
+_D10__T4testVbi
+#
+--format=dlang
+_D11__T4testS1a
+_D11__T4testS1a
+#
+--format=dlang
+_D12__T4testViiZv
+_D12__T4testViiZv
+#
+--format=dlang
+_D12__T4testViYZv
+_D12__T4testViYZv
+#
+--format=dlang
+_D12__T4testVrcZv
+_D12__T4testVrcZv
+#
+--format=dlang
+_D13__T4testVdeYZv
+_D13__T4testVdeYZv
+#
+--format=dlang
+_D13__T4testViSiZv
+_D13__T4testViSiZv
+#
+--format=dlang
+_D14__T4testVAiAiZv
+_D14__T4testVAiAiZv
+#
+--format=dlang
+_D14__T4testS123aZv
+_D14__T4testS123aZv
+#
+--format=dlang
+_D15__T4testVHiiAiZv
+_D15__T4testVHiiAiZv
+#
+--format=dlang
+_D15__T4testVfe0p1Zv
+_D15__T4testVfe0p1Zv
+#
+--format=dlang
+_D15__T4testVAyaa1_
+_D15__T4testVAyaa1_
+#
+--format=dlang
+_D16__T4testVAyaa0aZv
+_D16__T4testVAyaa0aZv
+#
+--format=dlang
+_D18__T4testVAyaa1_0GZv
+_D18__T4testVAyaa1_0GZv
+#
+--format=dlang
+_D18__T4testVAyaa1_YYZv
+_D18__T4testVAyaa1_YYZv
+#
+--format=dlang
 _D4test3fooAa
 test.foo
 #
@@ -1020,7 +1220,7 @@ _D8demangle20__T2fnVAiA4i1i2i3i4Z2fnFZv
 demangle.fn!([1, 2, 3, 4]).fn()
 #
 --format=dlang
-_D8demangle10__T2fnVi1Z2fnFZv
+_D8demangle11__T2fnVii1Z2fnFZv
 demangle.fn!(1).fn()
 #
 --format=dlang
@@ -1052,6 +1252,18 @@ _D8demangle29__T2fnVa97Va9Va0Vu257Vw6553
 demangle.fn!('a', '\x09', '\x00', '\u0101', '\U00010001').fn()
 #
 --format=dlang
+_D8demangle32__T2fnTS3symVS3valS1a4_6e756c6cZ3fun13__T8positionZ13__T8confusesZ8demangleFDFxaZvZv
+demangle.fn!(sym, val("null")).fun.position!().confuses!().demangle(void(const(char)) delegate)
+#
+--format=dlang
+_D8demangle39__T2fnVAyaa12_d0bfd180d0b8d0bcd0b5d180Z2fnFZv
+demangle.fn!("\xd0\xbf\xd1\x80\xd0\xb8\xd0\xbc\xd0\xb5\xd1\x80").fn()
+#
+--format=dlang
+_D8demangle26__T2fnVAyaa6_e4b896e7958cZ2fnFZv
+demangle.fn!("\xe4\xb8\x96\xe7\x95\x8c").fn()
+#
+--format=dlang
 _D2gc11gctemplates56__T8mkBitmapTS3std5range13__T4iotaTiTiZ4iotaFiiZ6ResultZ8mkBitmapFNbNiNfPmmZv
 gc.gctemplates.mkBitmap!(std.range.iota!(int, int).iota(int, int).Result).mkBitmap(ulong*, ulong)
 #
@@ -1090,3 +1302,7 @@ std.traits.fqnSym!(std).adjustIdent(immu
 --format=dlang
 _D2rt8lifetime36__T14_d_newarrayOpTS13_d_newarrayiTZ14_d_newarrayOpTFNaNbxC8TypeInfomPmZAv
 rt.lifetime._d_newarrayOpT!(_d_newarrayiT)._d_newarrayOpT(const(TypeInfo), ulong, ulong*)
+#
+--format=dlang
+_D4core8demangle16__T6mangleTFZPvZ6mangleFNaNbNfAxaAaZ11DotSplitter5emptyMxFNaNbNdNiNfZb
+core.demangle.mangle!(void*() function).mangle(const(char)[], char[]).DotSplitter.empty() const
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/testsuite/demangle-expected ./libiberty/testsuite/demangle-expected
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/libiberty/testsuite/demangle-expected	2018-01-02 02:03:00.000000000 +0000
+++ ./libiberty/testsuite/demangle-expected	2018-01-09 02:04:59.000000000 +0000
@@ -4720,3 +4720,33 @@ _ZdvMMMMMMMMMMMMMrrrrA_DTdvfp_fp_Eededil
 
 _Z1MA_aMMMMA_MMA_MMMMMMMMSt1MS_o11T0000000000t2M0oooozoooo
 _Z1MA_aMMMMA_MMA_MMMMMMMMSt1MS_o11T0000000000t2M0oooozoooo
+#
+# demangler/80513 Test for overflow in d_number
+
+_Z4294967297x
+_Z4294967297x
+#
+# demangler/80513 Test for bogus characters after __thunk_
+
+__thunk_16a_$_1x
+__thunk_16a_$_1x
+#
+# demangler/80513 Test for overflow in consume_count
+
+__thunk_4294967297__$_1x
+__thunk_4294967297__$_1x
+#
+# demangler/82195 members of lambdas
+--no-params
+_ZZZ3FoovENKUlT_E_clIiEEfS_EN5Local2fnEv
+Foo()::float {lambda(auto:1)#1}::operator()<int>(int) const::Local::fn()
+Foo()::float {lambda(auto:1)#1}::operator()<int>(int) const::Local::fn
+--no-params
+_Z7CaptureIZZ3FoovENKUlT_E_clIiEEvS0_EUlvE_EvOS0_
+void Capture<Foo()::void {lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>(Foo()::void {lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}&&)
+Capture<Foo()::void {lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>
+--no-params
+_Z4FrobIZZ3FoovENKUlT_E_clIiEEvS0_EUlvE_Evv
+void Frob<Foo()::void {lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>()
+Frob<Foo()::void {lambda(auto:1)#1}::operator()<int>(int) const::{lambda()#1}>
+#
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/md5.sum ./md5.sum
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/md5.sum	2018-01-02 02:07:02.000000000 +0000
+++ ./md5.sum	2018-01-09 02:08:40.000000000 +0000
@@ -1,595 +1,601 @@
-3c7643bb1bdd7d7980cda60532232f54  bfd/cpu-pru.c
-9263a1812d94d364b501ccf13041a92f  bfd/tekhex.c
-47618aa620eb08599d96e26d415c5f28  bfd/reloc.c
-d16169c318946502b86557ff991baa9d  bfd/dwarf2.c
-643f8b680ef4aacd08b80c9da6710bc8  bfd/libbfd.h
-18c2ea842258517b00048f52240e22ff  bfd/cpu-nds32.c
-a9425ba324837d9d222f3ebaa5bfd339  bfd/vaxnetbsd.c
-a16ccab72c60f39d8ff092c021794e10  bfd/elf64-ppc.c
-62902e25e5f4bbe0f87089768f3cd854  bfd/elf32-mcore.c
-d186a06a31a83f1bbedbcd4b278c8be8  bfd/pe-mips.c
-deaa6342210a02e02e5d1bc060b738f3  bfd/archures.c
-55ff551f02d8c40bf9f6154fd4232024  bfd/i386lynx.c
-fe8e515e8d99efe6a40c3b0a1e7e3699  bfd/bfdwin.c
+2d02487a3e195372e7d3ae5533fa9b71  bfd/cpu-pru.c
+68008f8e6004a9132a2d725e2c75a055  bfd/tekhex.c
+d9401510795ed3f7cb720990f2c32472  bfd/reloc.c
+c49b5bbd1f0d681349f5ae91a351a957  bfd/dwarf2.c
+8d5bc804b6ca3e761eaed164d8a3d02d  bfd/libbfd.h
+f1e932eb1c19f2763afafa12ca09e210  bfd/cpu-nds32.c
+69dc19cbef8cc9c9e991c11695a26e5b  bfd/vaxnetbsd.c
+1fa5131c9e51308e23c94897af04f8df  bfd/elf64-ppc.c
+e41e9d59027e87651760db8a67112344  bfd/elf32-mcore.c
+4dda85710094fe1608198980b25a03fc  bfd/pe-mips.c
+3d2995087748120625506dd3d439eba9  bfd/archures.c
+e457dca9153e4353fda68aef59d0a95a  bfd/i386lynx.c
+f9e11089341bcb38290cff4cc0fa2583  bfd/bfdwin.c
 e41bf4306979bec62eb8430fb41df6a5  bfd/ChangeLog-2013
-9cff37639ab0ed5d6e67fb24d5a73477  bfd/aout32.c
-fc65343b0cd0ab27ee3bf872f7d3dc6a  bfd/elf32-xstormy16.c
-fa1d95c0465a73f0fa0aefebbc02a7d2  bfd/elf32-m68hc11.c
-2fca5a768472b3e2ab5180c47d742c19  bfd/elfxx-tilegx.c
-cd4ce122701b34acff811e7c20063383  bfd/epoc-pe-arm.c
-c3b4199a0c33a1c013f134e79a9e75a6  bfd/aout-adobe.c
+17219aee3ee1186bef8c0f3f6c1b956e  bfd/aout32.c
+43a708a75ea74ea73202ccac83c1754f  bfd/elf32-xstormy16.c
+cccc2683ce4d1528099a06b9c66db460  bfd/elf32-m68hc11.c
+5dd9d4a3a3a46b826d8ebdf16310235e  bfd/elfxx-tilegx.c
+cde7275aea09b48aa69c20654b1d36d5  bfd/epoc-pe-arm.c
+99628411aa0490ebb602b390cf2ee999  bfd/aout-adobe.c
 5ddd7325e4cba21950fe2d391072cf87  bfd/ChangeLog-2011
-31523aba884766473f35d412045e45c5  bfd/libcoff.h
-60445e1301d8a2f2cbf5d626e5afedd2  bfd/elf32-cr16c.c
-ddcad719b514a8a5ad83bd4757938474  bfd/cpu-m68hc12.c
-7c04b03a5df69afb84a19b15e8223545  bfd/xsym.h
-1e053739f03837a725e947b1a7f19ca0  bfd/cpu-mcore.c
-46a3134a547f910c06b1faf1c9d969ce  bfd/syms.c
-c01f76e616636d8e707506b514c6e033  bfd/cpu-crx.c
-d566f94f98a00fb4ff06f0f45bcb0a07  bfd/hp300hpux.c
-72fce8b70e98e4d73834e49aaca87b88  bfd/Makefile.in
-9994ee3193d1e52522abd9190ce7096c  bfd/elf32-tilegx.c
-19afde50566ec17ff88e75205e5e763d  bfd/cpu-hppa.c
+626c8473542e7e646ced170351d5f5f3  bfd/libcoff.h
+7df56cc7265b079c29909672be74a064  bfd/elf32-cr16c.c
+d4149e5040406797b7521efa62b15d0f  bfd/cpu-m68hc12.c
+f69ea0550035e00576ad40d673bf046f  bfd/xsym.h
+1925bb1f99a9ae026c8f5379d2d7df6e  bfd/cpu-mcore.c
+f10d2d7868fe269ac30700d4c2280ef4  bfd/syms.c
+575b314e276b4a0b4aa3d2bd2b6b9175  bfd/cpu-crx.c
+1018aab755aabb3d66d9ca0314ef5ec8  bfd/hp300hpux.c
+6a99d819dd260c0baf7d2a8cb59b7cbf  bfd/Makefile.in
+3a5560cea7cf503300086b175f13e8e8  bfd/elf32-tilegx.c
+9ffb3ca4e1355a997f7aabebef7f08ab  bfd/cpu-hppa.c
 dad496c68df8395b3cdb8e3187c37eb1  bfd/dep-in.sed
-a5b48cc740a6ea595365ad43da634d42  bfd/elf32-metag.h
-126fb86a31dbadb03d4d6989f386c7bb  bfd/cpu-cris.c
-d90b7477f0f6405d6b4b01f5ab9182eb  bfd/pei-x86_64.c
-e7d4af415054fce55bfb5cf36fd85050  bfd/cpu-d10v.c
-015d99b635fb6d93ae284cbd7903860c  bfd/xtensa-modules.c
-7e9f627558c13ce9c8f7c6e087ccf2fe  bfd/elfcore.h
-ce83e510c01d5a9c23bc4747b9e94224  bfd/wasm-module.c
-537786e589ab6658c4d472adf784cf35  bfd/elf64-mips.c
-f166d84c263d357d6eadb7a8d861e7a4  bfd/cpu-m9s12x.c
-432788c9d7ef4c491c15ab0edc71aa53  bfd/version.h
-a11a835899b8428781e5df11be161cbf  bfd/cpu-tilegx.c
-62e6228170bb7fe9c2be3e62ef96f7e2  bfd/coff-mcore.c
-fc8ec08340f69ae3a4a2e93a0d5f2960  bfd/cpu-avr.c
-09f5177d350e2d493c7a1dcf6d4b9fc9  bfd/aout64.c
-f50936375a86ec18b74b465033c8903a  bfd/elf32-pru.c
+be844164945e9f930a49c625fca9931e  bfd/elf32-metag.h
+7e5e4b433382308198439840a4e80941  bfd/cpu-cris.c
+1c53745ebe0fc7c2a81575aacd857acd  bfd/pei-x86_64.c
+bb45f17458fbd361569bfb2067575c7f  bfd/cpu-d10v.c
+30b3c2b0347be7d1bd27e6683a86ce5f  bfd/xtensa-modules.c
+1136eb2f4ffc0006c38ae19f90112ad5  bfd/elfcore.h
+f15e31835a8d7272e1acd59dc86ebc2a  bfd/wasm-module.c
+2f1d48da02b5ed6e94cb3beb7dae5d9c  bfd/elf64-mips.c
+32c1c2c183f56bd2b5af2fb9c3ca94af  bfd/cpu-m9s12x.c
+5e6180932c23d8b914a4116515644135  bfd/version.h
+25cd4c1378787d5bb9fa74b13a55098a  bfd/cpu-tilegx.c
+15946361c2ae68e8133d7e10485f7ed4  bfd/coff-mcore.c
+836b9de6d0ea1914f82c0ec0fa0341ef  bfd/cpu-avr.c
+aa2713fe4d188e32746d64e0387de034  bfd/aout64.c
+3070eef0d1328a4514d5c64619122802  bfd/elf32-pru.c
 f5ad372cf681a57b9a43f6975c05e33c  bfd/ChangeLog-2012
-2dee423a27bf05d4ea552f87413c626a  bfd/elf.c
-25704b4a167d076e4d092c9fd8948b17  bfd/hppabsd-core.c
-60756318694b4ee007315828da230dad  bfd/elf32-xgate.c
-44082dc802fa486e7a2f9fb8503125e9  bfd/elf32-nds32.h
-df06c023cad6aec74554eefe30cfaeb5  bfd/coff-bfd.h
-ffaa0d07d45576f1cf95c76087adc80b  bfd/demo64.c
-12a477548a35af56164c0292f7e56ede  bfd/ecoff.c
-b70acb8f3178dbe2ac68cb5835e2d027  bfd/cpu-moxie.c
-6334c4362f14960bc0bca119c8eebe5c  bfd/mach-o.c
-fc98c140e2e5fb394ef24cd779574821  bfd/m68klinux.c
-1d51ebd6d750779a96c60c24192723b2  bfd/elf32-vax.c
-c13d2397d657b1b835cb09aba7c930ad  bfd/pe-arm-wince.c
-9aca068f2779e70963c3d892e4164fb5  bfd/cpu-rx.c
-3106ac0e305662c5f9f6b20bd084a02d  bfd/cpu-ip2k.c
-ae65c2cfa1726da176aa28385ab4ada6  bfd/i386linux.c
-56b96433a37f8e324b4f011331b7e42b  bfd/cpu-h8500.c
-c674c42e6f45ac2adf48a8d7ae8ccffe  bfd/elf32-tilepro.h
-ed892a8e359422a118a1bff2b7737145  bfd/elf32-s390.c
-2c75ab2b56050a7c16f5d6239483d110  bfd/libaout.h
-07256c78b4342d44735c6995c4a0ca15  bfd/elfxx-aarch64.h
-8786a1223e730fd924ca794e420df2e4  bfd/elf-vxworks.c
-43b516d3feca3618e29a196d89da0e8d  bfd/elfxx-mips.c
-bd324b3ef0f850d101f53d8ac4cff637  bfd/archive.c
-7905982e87246df9fa7532f6ab73aa66  bfd/aix5ppc-core.c
-e439f9c709f759847a3db3f6135adcb4  bfd/pei-ppc.c
-e32d47b87079e11ea84bf21b6b5a656b  bfd/elfxx-ia64.c
-07a9c1b9047517b26c862661b4f7818e  bfd/elf32-dlx.c
-8f8510f1cdedfb035b081d22cb90c465  bfd/elf64-tilegx.h
-98bd29c3fcbe5d4345d84fd61ff5783d  bfd/peicode.h
-5ff6274954e3ab2e7748d1323536dbd9  bfd/coff-mips.c
-b03f5e135bf190cbd096378698efbc90  bfd/coff-h8500.c
-00c82873888c91c7980dfcb2de97ad85  bfd/cf-i386lynx.c
-ea91e9b968a604b4b3681745e731ab88  bfd/elf32-mep.c
-82ffb754faec182aa195927a3555ce5d  bfd/elf32-v850.c
-a3740ebb7f2ba3334778459777b67263  bfd/nlm32.c
-bc6489411e2743ec1856a1b71039ddef  bfd/cpu-i860.c
-7274bb1088bdd8eff77c513eb529735c  bfd/coff-m88k.c
-9cb06a4f3ba54f848465510e5e31f4fd  bfd/mach-o.h
-c39b9d18c7b3f3ed17fe2b27c511db04  bfd/elfxx-mips.h
-4a5b880c2def25a42fbeb2ac9713026c  bfd/aout-sparcle.c
-7fa461eb5c0c7d72502c4d822c20b46a  bfd/elfxx-target.h
-c4da4db9e75ec24042393ecc6e61e7e5  bfd/i386os9k.c
-5adbc4d88c745b752e93c63ef80666d5  bfd/m88kmach3.c
-67fc8078df6ce2f66f8a39e30fb9e270  bfd/ecofflink.c
-d6901fc2a2dc6723aa47c6d4ae877c75  bfd/ptrace-core.c
-6e7c25c963ac7864264a4c016ebf4f4e  bfd/cpu-ft32.c
-44b2348b5915bddf8ae7e4e5d0bbbf22  bfd/xcofflink.c
+a24db2f31f9ba02d032d2ed3daf5a9d6  bfd/elf.c
+1cd173ecf143a7d4ebb8cad552b1e995  bfd/hppabsd-core.c
+c16c89ed3d4ff2eabe4b60532b17305f  bfd/elf32-xgate.c
+77b7d7e864c19f6779fd69c24a3c29e8  bfd/elf32-nds32.h
+f00c43a4a52e541de728e1bcc410a246  bfd/coff-bfd.h
+7e76a3f8b4c5daa9e3a06628bf6ec908  bfd/demo64.c
+fbc97cd69ede0c34b5ed6f4d69229b29  bfd/ecoff.c
+41566a7e839f4531bb42eb82a1d48f81  bfd/cpu-moxie.c
+536e66c807b089f4b440a0c53c87b8a4  bfd/mach-o.c
+1ea1e9ac25975b726a3d223e71203df2  bfd/m68klinux.c
+d5b3104782eeeb21f5f57278f15bcf77  bfd/elf32-vax.c
+11cb6591044cc250a9d953cbc698db58  bfd/pe-arm-wince.c
+1235bb127d7ff16d04fc597513e48510  bfd/cpu-rx.c
+28c79dd27ffbff5d8269e1ee81330a39  bfd/cpu-ip2k.c
+f8cc59a987f1c124feb5ac1702afe3f1  bfd/i386linux.c
+6bc93f0c9a22ea03c15c9cc72ff7a133  bfd/cpu-h8500.c
+bf291948e17b61b2c2dc2513dda2a95a  bfd/elf32-tilepro.h
+7651c7e06c214f9b0b5fb0b5bef00d5d  bfd/elf32-s390.c
+bfa43dd989f1e65c7da1cf1110a0182a  bfd/libaout.h
+d5fa630dab70077f7a46c8b7e209b6c4  bfd/elfxx-aarch64.h
+d4f19e72e13657f50aa7d6429711e53d  bfd/elf-vxworks.c
+ab4e2d4b5eb7100f1f4c9221904d9f1c  bfd/elfxx-mips.c
+b4c284495e1ab0a4605e4cee42f52e5e  bfd/archive.c
+c65250570f63c8c3a91088f8fa23f340  bfd/aix5ppc-core.c
+f08f49553df4594e5541c9e1e8c5aa50  bfd/pei-ppc.c
+df40573b6fe1376b421fe4b8d8fa8c70  bfd/elfxx-ia64.c
+057e1abb86f7d603d4dea9e612ef1a4d  bfd/elf32-dlx.c
+252ca37fd7127c742e67cb72207c130b  bfd/elf64-tilegx.h
+f6b5fc0b8a93562b9af1e229d4d78183  bfd/peicode.h
+3e0595a655fb9d9ed8318471af7263d3  bfd/coff-mips.c
+e0d15aea156f7526d9d4518c5100cbc5  bfd/coff-h8500.c
+78d8c516041c3aaf6386d639dac6da61  bfd/cf-i386lynx.c
+52afc0efb86e9107504ebb31ae4e0b3a  bfd/elf32-mep.c
+54e625e8f6428dce4ce1182bdbef622d  bfd/elf32-v850.c
+d2245de27ec486e9dd03ca33f5c046af  bfd/nlm32.c
+65840c9566638068f769168a02b3ab97  bfd/cpu-i860.c
+c97164b6c6c04e4940772190ceba3798  bfd/coff-m88k.c
+4bf4a0b153de737b6997b6f7b40c5410  bfd/mach-o.h
+a689a2277520df87ee1ff85cc8a3df4e  bfd/elfxx-mips.h
+80cf64e055b33edb2c32520d3b193d59  bfd/aout-sparcle.c
+ffa488075d260a25ac2515a19f90d0fc  bfd/elfxx-target.h
+1e4379c4dc9688925141b07fb5867fc6  bfd/i386os9k.c
+ed03f8db1552978f7afa8d3127cccf78  bfd/m88kmach3.c
+fd75b1f09b3ad3c8e9dd747c85a0c4c1  bfd/ecofflink.c
+e0e04c872a2222ff618787c66052652c  bfd/ptrace-core.c
+98020cb257a5833e1288e593764fe63a  bfd/cpu-ft32.c
+97cf90e53b0333648075ed2c580a7c9f  bfd/xcofflink.c
 53357a9b87dd158b90cf790c316fd438  bfd/targmatch.sed
-1b334b2d4987345afe5e0eb3e6dd0bee  bfd/cpu-i960.c
-987b0bdb59eb777685c27fd726b63531  bfd/coff-ppc.c
-a17b20c57985f985c05e85d9a2c53920  bfd/pef-traceback.h
-3725ce6bb9e4afdb88ac4ad2c8199e44  bfd/cpu-m68hc11.c
-dbb444c2d08b2976e90528d305c43c5a  bfd/coff-go32.c
-d6a543d0a57ef347279b0dbc5d8c1bb0  bfd/config.in
-4d32ef9b37498f6dd2319e8d3dc1b397  bfd/hash.c
-49aa2deca7a4795e509b91f7a8ed7d12  bfd/configure.ac
-00f8b21ccf85fcd3713e798457257af8  bfd/compress.c
+01af57a63b732c16f955789fae7074e6  bfd/cpu-i960.c
+f8fac1c5d3e5362995ef363e10b36699  bfd/coff-ppc.c
+94f684bd92b5a4cc1b4fb7700d6c646b  bfd/pef-traceback.h
+5b6b31f90b3697dd106708c09908f5dc  bfd/cpu-m68hc11.c
+0394365446a9eeee92434c3dffda6aea  bfd/coff-go32.c
+63a5bf19b398e27f85c9606d66fa5911  bfd/config.in
+7005cbea77ffb2c56b1f29363aa3a7b1  bfd/hash.c
+d40f722a2404f0de98cee4cf58e6dc50  bfd/configure.ac
+0751fd3fcf71bea06dd7080281538a9c  bfd/compress.c
 d359597f7e027264df0e13ccdd2d4b30  bfd/ChangeLog-2015
-4c9bbb528569eb345e5de5477ccd68e4  bfd/cpu-w65.c
-7694c1cc5f6e5093e3d77d246efdbc47  bfd/README
-4adaa906b0fa1478f70ce1ca1c840a39  bfd/cpu-xstormy16.c
+cf3610fc6c8d3e2cd92d39d8dcac3b1f  bfd/cpu-w65.c
+436cbe536c24bb099cd141e3cf381e86  bfd/README
+db9b34e62a448571fa051e7845349ba8  bfd/cpu-xstormy16.c
 58a3fb1e054b540ef5c1329799b824bb  bfd/ChangeLog-2005
-93700b8d604de92a3ba808be701cf096  bfd/nlm64.c
-3bea0f4eb1759682039aeb42656538d4  bfd/i386netbsd.c
-9ec849eda3aea3570a00623c02ce9178  bfd/coff-aux.c
-7678b3664b9f4fb67c15a9d2b22552e4  bfd/development.sh
-52362502f0c7a64d3fe5fb8b2c08d513  bfd/elf32-tilepro.c
+d0711c779306fde7e0cf82e587b4e331  bfd/nlm64.c
+1d336e75cdf2e054a7ad739f69cbb72a  bfd/i386netbsd.c
+072233db50eed59f4134fbb3abe5ec7a  bfd/coff-aux.c
+6ec123979d27465bf84408a2723d17c5  bfd/development.sh
+e4ab25e76b4f80c9222020d4bf1171bc  bfd/elf32-tilepro.c
 ce363ffcdb2993ee84530554d0fb5a78  bfd/ChangeLog-9697
-e1e53e5fd3e711df6a28feb5caa935cc  bfd/cpu-cr16.c
-2cc4e86dc7bc59c90c927f162ff3890d  bfd/i386msdos.c
-b5ea1a873b91ba11203b310f878dc3cb  bfd/bfd.m4
-f4d0dd274fb945ebe9a8fb3f5e9b7b00  bfd/libxcoff.h
-5be97d4a6e9dae26b53e9e62bb958ee5  bfd/i386bsd.c
-66ad5b72284437e63cc1306878e6247d  bfd/hpux-core.c
-6f3c918235c131dcd19204e2c3c09274  bfd/elf-bfd.h
-aefc7c394a7325319c7ef648b583d063  bfd/m68k4knetbsd.c
-a0c8469ed741eb46c310cec29c9eb612  bfd/mach-o-target.c
-ffe6edc0bdf4bbfcfe24344bf6a9be4b  bfd/elf-strtab.c
-d947ce87bf58f7a2865cdcd0e898883f  bfd/peXXigen.c
-80d90b5b2f7a7383895e9b7ceaad05ce  bfd/simple.c
-eb116a5c506f972877882c76b64af29b  bfd/pe-x86_64.c
-fb1baf6393da024e68f27de0abf48045  bfd/init.c
-fde245cb8c7c4264655b8a72ce433d12  bfd/cpu-bfin.c
-f18700064170a19997eb61156b9f5404  bfd/elf-nacl.h
-74d4a7a9ddce7fcf81defc4476ee473c  bfd/config.bfd
-60a99ddbb099894b72a6b72e56b9431f  bfd/elf32-bfin.c
-367970e111c3bf32eb69ce46c6f682ba  bfd/makefile.vms
-f30a2b62cb2ee0d28c570bc933b19032  bfd/cpu-mips.c
-d7da15e3a90b600e54d5b766c480ce0d  bfd/gen-aout.c
-182c0ae06097622ff0b9db71969eeca2  bfd/elfnn-ia64.c
-86f7f026c3c764304919e393b798e582  bfd/cpu-xtensa.c
-29b66692625c671104a6780b97b3ab3c  bfd/pe-ppc.c
-223e78575324fa4cf21be1790043fe93  bfd/elf-properties.c
-79c59caf0deab3c8e5c4a589a072689b  bfd/opncls.c
-ee7e8aae27e28e3bbc8e2588036ccca4  bfd/elf32-cris.c
-45de6113c5dda849224a8f54f6cd62fa  bfd/cpu-z80.c
-6160ed7df2873b5ebc9e676c78501905  bfd/coff-i386.c
-9a7e626a94278ed4f35670ad77c116e7  bfd/aout-target.h
-70953052b196c305309fde7051ab998c  bfd/elf32-spu.c
-383912c54d9a63e51c0da030f9535027  bfd/elf32-gen.c
-0308bd3efe83c5386e65ad9b3aeb5a7c  bfd/cache.c
-268d18520238566ffa7ecbd67606548a  bfd/cpu-wasm32.c
-828ee08deb9b32e82b168c463363afd8  bfd/coff-tic80.c
-462b026f2390913374367c2b12a7f068  bfd/elf64-s390.c
-7dacb426a557269ae1b3469cb6bb130e  bfd/oasys.c
+45126fdd4312667e4a8555316f1aa101  bfd/cpu-cr16.c
+b722888203ef52f575ac8d16ae95b62b  bfd/i386msdos.c
+c54be8bed640c8d3e2ce1b687cb15e09  bfd/bfd.m4
+c942e6f102dd94d5b000c363e3a37197  bfd/libxcoff.h
+a77895125fc1ed1536526573de0f789c  bfd/i386bsd.c
+5fc269f71a687060ef6fed60482cada7  bfd/hpux-core.c
+9cce5656a6bab2b1b09f498651ebdd5a  bfd/elf-bfd.h
+fbd21ddfd6cfee4b7002b6c858950c20  bfd/m68k4knetbsd.c
+aacfca6fbb2496e5ae842ded2bbbf8a9  bfd/mach-o-target.c
+c55e1a6246ca842951f9dbe45502ca6b  bfd/elf-strtab.c
+a4d88d353efe6ceb497bc72f0911cc14  bfd/peXXigen.c
+74e5f06237d15c18afa24249d81aedb8  bfd/simple.c
+21b54c6348b12a261b1f78a668a34336  bfd/pe-x86_64.c
+5052042732b075dba1c4cacdee10a40b  bfd/init.c
+6e7d252d0ca9275d92a5e3a278a7f882  bfd/cpu-bfin.c
+b1aad04fd8075298393fc44ef505eb2e  bfd/elf-nacl.h
+a7f541692ac0bd742397b76641e8e3e6  bfd/config.bfd
+7f5978ef4b1b403358dd46813afb6eed  bfd/elf32-bfin.c
+6cbe88c9f0c78a4a5ec99cd6e12923bc  bfd/makefile.vms
+fa891d6167452d63b23d7a0539ca31f3  bfd/cpu-mips.c
+5da08ebdf30bf88301da439ce236775b  bfd/gen-aout.c
+6f117d608a663509113d214a71dd7f29  bfd/elfnn-ia64.c
+3e38d95be2e1ef1bbd546a150b87c631  bfd/cpu-xtensa.c
+4cace338b2ff435f2acb5ea3bbbb52f5  bfd/pe-ppc.c
+cfd78054900fd2f9061714467efcb711  bfd/elf-properties.c
+e0ac3bcc2deba3d6d267052328b500c8  bfd/opncls.c
+830aa002e5e8286cfe8c0b1a03ee757a  bfd/elf32-cris.c
+bb80aa55fddf96b378c4a8b4811f0dad  bfd/cpu-z80.c
+aa3808b577dfcd6b0dd6b8e2bf57129d  bfd/coff-i386.c
+073574a1ec0e9d6a50c9b46b834d0efc  bfd/aout-target.h
+5588536f56687ddd03749c5c4ad7a78f  bfd/elf32-spu.c
+a45f58a3ed96ecb1c2bc45b715da3751  bfd/elf32-gen.c
+0463f3ca346cec59d7d0c164087c4f6c  bfd/cache.c
+fd2f709ee318221e7dea29c072e9b7b4  bfd/cpu-wasm32.c
+0dde3cce944083c130de5c338de54e63  bfd/coff-tic80.c
+c1eb25802793933a6f86ae5ad67e2216  bfd/elf64-s390.c
+ca7256bd9dbb16f2bc9c16c3ea2f4505  bfd/oasys.c
 408ef1462276b75d3708877103c85eb8  bfd/.gitignore
-429bfae7e202d4cc1181bebbd4624efb  bfd/elf32-m68hc1x.h
-71f8f862e0a285a5bebeef10c7e1de7e  bfd/cpu-spu.c
-94a8070e663b2f953371eddfca668fff  bfd/bout.c
-886599030ebe602c99615033ab7b7cfb  bfd/warning.m4
-783d87edf90f91a9268ffb367f30a2ee  bfd/elf32-moxie.c
-f5911e37c655ceb8de96b6f2f68d954a  bfd/pc532-mach.c
-e55523b502505be9146c729d778f9344  bfd/configure.host
-d15d022278206add7e19e37f6f18a4c7  bfd/cpu-aarch64.c
-e7e4a989c33f11ea6ef48925726f9a68  bfd/elf32-ft32.c
-54caf2933bd9ff93a832bfdbaf582f56  bfd/bfd-in2.h
-08b0d338e95b0b09f18f6b9f6f7cb641  bfd/cpu-k1om.c
-dbb29b8c0f057658d2e58b5a0c665534  bfd/nlm.c
-e85ef955362f8d5f9ea05c46ca1c374a  bfd/cpu-lm32.c
-6864def57a8b1761db74ca358fa67afe  bfd/sco5-core.c
-167e41a7e2d03014775c5b7010593a1c  bfd/nlm-target.h
-2a8fd01cc3e0b891b08acd314185be8f  bfd/elf32-sh64-com.c
-4e0d07a6a164dbbdaa4413468e176680  bfd/i386mach3.c
-ba67bbef4ce0cff0165b97566ed5b431  bfd/cpu-m32c.c
-5ee4dfe053a28978e80fcf1b372f6bf8  bfd/cpu-pdp11.c
-38efb19062abf4446d76b2125541b564  bfd/coff-tic4x.c
-7c5447b4f839e8b9523c176a85eaa94d  bfd/cpu-m10300.c
-0cebf999f1f74f50c932dd650f4ebe2d  bfd/elf32.c
-f99b67dac8c91bab21e8a0ef16fa965e  bfd/elf-nacl.c
-cf7005bd5687ec6a17c578f779ec69c7  bfd/libbfd.c
-4c2055a57b2368135d789c25ac9f79b3  bfd/elf32-d10v.c
-e2e6af260324794097d6d2e2afbd2490  bfd/coff-arm.c
-33355ee0281ec75de00e247c54844001  bfd/elf32-score.h
-d507d673f6c0d2d4a4dea83e6d77bbcc  bfd/cpu-d30v.c
+737a945de65028256411768daa144415  bfd/elf32-m68hc1x.h
+36253b784f23d9d61ffd4ef0d3116d72  bfd/cpu-spu.c
+b1619f366bea84284e4fcf6a83480064  bfd/bout.c
+3d490a82418291110e1518a76e767877  bfd/warning.m4
+d7b0503f8340a410c38a5815833b641f  bfd/elf32-moxie.c
+13ac51198b743145e948c8d8f2b80442  bfd/pc532-mach.c
+e6f3e668d9cbd6ce01331700ce1c4e75  bfd/configure.host
+01cc63fbebf1a8868f057dc2eb38b909  bfd/cpu-aarch64.c
+8b3079f2cd9001d52772b2ce2ff9747e  bfd/elf32-ft32.c
+ced35a4677de787f262302d64e4efdc2  bfd/bfd-in2.h
+57d5dcb50a5921ea4198d2d218f5e88b  bfd/cpu-k1om.c
+d4b8001c2892cce58a34a44ba7c28373  bfd/nlm.c
+6f46335aa43d4e6293804a34ad7ab22a  bfd/cpu-lm32.c
+9a873fcd7fa9ff416d707f844ae5baba  bfd/sco5-core.c
+62e4c2376013d83eb027ebb309c5aedd  bfd/nlm-target.h
+9fc7eb65ed8eb3d9a2aec6b38ccb691b  bfd/elf32-sh64-com.c
+bae91cc02e8eef36432ca9e1935c6412  bfd/i386mach3.c
+03f7638de62acc476db19bd3c08f8217  bfd/cpu-m32c.c
+f6ee91d099ccb750eb9e5a5a3730b062  bfd/cpu-pdp11.c
+06d2fa353eb27910359721411632faa5  bfd/coff-tic4x.c
+315b2bf3d1f5c8febed4d83006379e4c  bfd/elfxx-x86.c
+27882d370ca1cefe17fc035a9f3aad01  bfd/cpu-m10300.c
+bce8bb42f80f11a18d3f95a2798508e9  bfd/elf32.c
+887d624985b71b121fa07093b838fc78  bfd/elf-nacl.c
+440b435c8b755b6a344c9ed9c3761633  bfd/libbfd.c
+e28919f42d05156160993b591ff090ad  bfd/elf32-d10v.c
+046ae29e9c6e975d08a8ad5e78b89b16  bfd/coff-arm.c
+01765f4d1bfae4f33ba6e42af15d06a2  bfd/elf32-score.h
+671ad779d32ea5493621fdb15215a591  bfd/cpu-d30v.c
 bbf88fdf4e23c9cba924526076284b78  bfd/ChangeLog-2010
-264a7fbc2df985eb4b62993dea02fe6c  bfd/vaxbsd.c
-1dc075df6a4bccb4337ac335e6b708c5  bfd/coffcode.h
-136956955558e42e9cb766acdf76762d  bfd/vms.h
-f9ffbdea6e21bd21b2846ecad52bc1ef  bfd/coff-sh.c
-0fe9ce5be266ab28329e96fab1860efb  bfd/m88kopenbsd.c
-1c45d8b0f8c83e7c7884935cd8b1971f  bfd/cisco-core.c
-28bd68baed8889a17417075bb3e94cdb  bfd/ppcboot.c
-0607c7e256b634214a55296668ab1ece  bfd/elf32-wasm32.c
-3ee4a9dd0dcd5f685a03e638c0dd0391  bfd/cpu-i386.c
-82c9c3e53dd05b7470536b691692c940  bfd/rs6000-core.c
-52d13ac1f6adb0226aeb1e1adee90019  bfd/elf-eh-frame.c
-fc50d490380222e3af296d68b9689898  bfd/cpu-we32k.c
-40248db3456a2261e124e7261d9d1411  bfd/sparclynx.c
-df05f507137dc917e3bddddb336f67b8  bfd/elf32-i860.c
-7a9421f3c334b3770bbf5688332b6587  bfd/netbsd.h
-618df1a0cb9bc5e74a4f5117c05393be  bfd/elf32-hppa.h
-660108c6ebdcb398f7252aac1a4e8228  bfd/elf32-rx.h
-fbabb4d4a809db5dc6475da573db7ceb  bfd/elf32-cr16.c
-c3134b7a2666b8a8f9f10fadc2036b60  bfd/pe-arm.c
-0a23548e28b94d1c8c4da25f6ae0e38b  bfd/elf32-frv.c
-ea5d2f4997e9b0b4e2c5490b627d58f1  bfd/pei-sh.c
-24d58ff302b2a667fb613b1dcfb6ef56  bfd/elf32-arc.c
-37fb04ee23418bd751dace358b84b797  bfd/elfnn-aarch64.c
-5018ce12a055005fe2feeadfab23e812  bfd/mach-o-i386.c
-79a88320f0b5018cc35e832008d412a9  bfd/elf32-am33lin.c
-a247518439f7763a4cd542f817b28e1a  bfd/elf32-mt.c
-d70ee5e6aa367c9cffc1f6b9f5162c23  bfd/elf-ifunc.c
-93187b8041c31850f5d1de7f1195cfa5  bfd/cpu-plugin.c
-f1ad317191eff2ce82e1d336631c379c  bfd/som.h
-e74599083a39835561f87a87acbf275c  bfd/elf32-xgate.h
-f60b93919ae4396a00665ac53367c88a  bfd/aout-ns32k.c
-41814fcd229846c860a1578a2257232c  bfd/host-aout.c
-0fc22c68d543f8dc7cc4548a3fad3557  bfd/doc/libbfd.texi
+a408143c205e367e245efaec26bbe91e  bfd/vaxbsd.c
+6ecd968d764286c115050db2d4f12492  bfd/coffcode.h
+8982f8c9abb736da26454b0110fd6c74  bfd/vms.h
+de28307302c4e53a83bfe71dbb02d1de  bfd/coff-sh.c
+b27dadc9d531d2ea749229fdf3e1e058  bfd/m88kopenbsd.c
+952a73073c7f46bc626dff3f5891cb5f  bfd/cisco-core.c
+2415073c85c3320860179c4e5c8e4f39  bfd/ppcboot.c
+b61e85492dd28cc603b88cea1230575c  bfd/elf32-wasm32.c
+03834ce5652749ddf4269f6201e45b9c  bfd/cpu-i386.c
+533712a57663f78740f6f3b884b35b84  bfd/rs6000-core.c
+285f2c0cb35dae70044e3fc59e2061b7  bfd/elf-eh-frame.c
+8cf2a50e1c3a72796d0bb2ae19ba59e2  bfd/cpu-we32k.c
+d0e2d97d4fbeaa57cbc7a0fe3a44b32e  bfd/sparclynx.c
+1b534da11fa496c7f870b54e5ecf07a0  bfd/elf32-i860.c
+14dd2e588dd25204dc7d2dd285a032e9  bfd/netbsd.h
+8a0aa0bd01ed39c6b46f12ae36e8fd6e  bfd/elf32-hppa.h
+16cc7d18799774cfc06143b7987d14f0  bfd/elf32-rx.h
+9bc3df897f8db29db5d7302a32a8626e  bfd/elf32-cr16.c
+a318e1f28f425d3b6e92a254278e14e8  bfd/pe-arm.c
+7b7b4d379f43b1f6f5c8d33b089f58b8  bfd/elf32-frv.c
+b59f86cebeb2c455a1166f35c8a6d18f  bfd/pei-sh.c
+c0d68dcf69f7a1d34321b97655bd3241  bfd/elf32-arc.c
+d8a49b2017c98bb03a2f04a45e7a583a  bfd/elfnn-aarch64.c
+b15d553b554b86d893a59cd280b95bd7  bfd/mach-o-i386.c
+1554603cb1fa395e17b09e7babc69e08  bfd/elf32-am33lin.c
+598fa2901f32e06d01dc4cb4e5abe7a3  bfd/elf32-mt.c
+99bdce2181c3daee721e677c7dbbf53c  bfd/elf-ifunc.c
+c96f4f847eebbcf201664452af068175  bfd/cpu-plugin.c
+6fa59a6a5cbd0f96644b5c2652cc4226  bfd/som.h
+7e639bef71c4760dbd00749cd37c2f09  bfd/elf32-xgate.h
+5a180bf9387fdeb17fac4c58131a6d9d  bfd/aout-ns32k.c
+8c4b62f21978b834ca0e157a252ca4ca  bfd/host-aout.c
+50af93890fa9dfa6fcc3f7e6ea22d63e  bfd/doc/libbfd.texi
 37ba364fb34b96a1dbb55b0f6f612432  bfd/doc/init.texi
 930173859dab35d4c1c03efd5ddb18e3  bfd/doc/format.texi
-588ee2e2e702df219bd09440a7a68658  bfd/doc/reloc.texi
+9704b0719f70d6a85fb4435101508723  bfd/doc/reloc.texi
 072910d553f79906db69fa7c0e956bba  bfd/doc/fdl.texi
 884c457392e56f773fabfa63ccc2d171  bfd/doc/ChangeLog-0415
-b9e4298639aa37173e99ca61773de295  bfd/doc/section.texi
-afa6e087296ccd84e9a6ea65af9a12b6  bfd/doc/Makefile.in
+b0e5f8bcdd17a2c7788a039e630b422b  bfd/doc/section.texi
+b21052ad06b8794f6700ee0d6b39a2dc  bfd/doc/Makefile.in
 236e856bb13ee47adc5d7d253037640d  bfd/doc/bfdwin.texi
 a11231531c5c3cd6e7babf06426a657e  bfd/doc/ChangeLog-9103
-d2b923f7732c26442570c16fd1dfac5a  bfd/doc/hash.texi
-a367ad28d5f897f76354b6d4a709e5e6  bfd/doc/syms.texi
-2f7aedfb0e8300347cf1639dc6285889  bfd/doc/bfdver.texi
-6831883451fd9eb525653878bcf6580b  bfd/doc/coffcode.texi
-d3185b1aa26e13ef16c1c673b932111a  bfd/doc/makefile.vms
-41bed6e44d152976718c9d1641bc88ec  bfd/doc/bfd.info
-a49e500090d80ecc549ffe25b4751b31  bfd/doc/bfdt.texi
+f32b11f47b666164ab1aa78183a50b1e  bfd/doc/hash.texi
+4635778e69bcb490e44389e420542276  bfd/doc/syms.texi
+0cd1c12e27681b3ad90a4717cf3219d3  bfd/doc/bfdver.texi
+a4c51114e23cf3298c7c2880b21b05ac  bfd/doc/coffcode.texi
+0f03c268d81adcd8078ba07561413b06  bfd/doc/makefile.vms
+48e8d9d71050a09e26b966391e88df3b  bfd/doc/bfd.info
+c255a2069a27ced4481fe25a624e8d86  bfd/doc/bfdt.texi
 e67d8b07516154c4ddbee2e3bab3d75e  bfd/doc/doc.str
-12f4eabeb67131083410124b794fec30  bfd/doc/bfd.texinfo
-39f61ac0fb56eced56e6894e7bc47cef  bfd/doc/header.sed
-6f32bdfe0063cdb0c3aa73cceee3a1e1  bfd/doc/archive.texi
-139df1def65809424cc7298449b79ae6  bfd/doc/bfdint.texi
-205ebace77d96edc5f3fcd2def62ffcc  bfd/doc/archures.texi
+5ba5841c3019687995783d5ee8283780  bfd/doc/bfd.texinfo
+9a6e644c9e94d7b18073f5cc6ef4395a  bfd/doc/header.sed
+fceb179f1a1bc85df44ec0ae3b917c1c  bfd/doc/archive.texi
+be4e7a21ac05184147ee2f4db66e99f6  bfd/doc/bfdint.texi
+5581b9dd217087864fca919551734bc8  bfd/doc/archures.texi
 51139f6af786e74446d01ec49807fc28  bfd/doc/elf.texi
-4fe8ff98ccbb0feca3653f66271e3fee  bfd/doc/Makefile.am
-7edf511939deb638e8291f264c4249e1  bfd/doc/bfdio.texi
+4f196f902a3c2ffdf03a3cf54e072af3  bfd/doc/Makefile.am
+7959e3985ba2a5d92e1da3f7ac85a547  bfd/doc/bfdio.texi
 d9f7fec3dee69a6c3084e6d4cfd88371  bfd/doc/cache.texi
 248e1606b44d11cff23f16fec892e3be  bfd/doc/opncls.texi
-03aaeff4ac311f800c4853856b15178b  bfd/doc/linker.texi
-5310000fb613411ce9ee594110799e57  bfd/doc/chew.c
+aadaf3673141abe847c692cf72664606  bfd/doc/linker.texi
+db9e2773d58e296725715d0e3494d54a  bfd/doc/chew.c
 001da3c839b048ad82102ca4c5598743  bfd/doc/webassembly.texi
-aa8d512cc961fc1409108c7cff99340e  bfd/doc/bfdsumm.texi
+39cc9188e88e8b592d2abbe612ed87db  bfd/doc/bfdsumm.texi
 d41d8cd98f00b204e9800998ecf8427e  bfd/doc/elfcode.texi
 d7a37304ccd7b245f93df4be02797477  bfd/doc/proto.str
 6a15b20bd56486434939c9db8e631728  bfd/doc/aoutx.texi
 84a99eb217f66a88f8897fbca35b0d10  bfd/doc/mmo.texi
 6dd9da257666139a061d6905349d9614  bfd/doc/core.texi
-0d5772b85ca0bf25f135c3e5712f9682  bfd/doc/targets.texi
-07348b884a79407b75c8da8ea69f1924  bfd/elf32-spu.h
-bb88450a7c9cf7763ef979ec7288f955  bfd/elf32-microblaze.c
-b6bd1d460df75fae893c3c91fc975b6c  bfd/sparclinux.c
-fd2f41052d22ffe2e32961512c7f2695  bfd/cpu-sh.c
-9e5a59d71611db6f46e14bf6c8f3d2ea  bfd/osf-core.c
-cbd8abdfee39e78f562bc091a2d6439a  bfd/hp300bsd.c
-00cee5452bfd74a7ca617ae0429061a3  bfd/cpu-ia64-opc.c
-3e24cc0ead010e5ef2289157eebf5486  bfd/cpu-m88k.c
-40798c9559d9c7327d766be9ce0189ee  bfd/cpu-iamcu.c
-c18dd998bb5710aa8b162411bee836c2  bfd/elf32-crx.c
+49b95526202f4798a0b4095e49eb24d4  bfd/doc/targets.texi
+970c596bc3d916b5ec8a5dfffdb999b0  bfd/elf32-spu.h
+b167d1426c8a201c0463a85520e535b8  bfd/elf32-microblaze.c
+5d88e71c430ecd05bd342034b2f9d271  bfd/sparclinux.c
+33f56d1b8b111ac52663e4970222c7a6  bfd/cpu-sh.c
+ebbc619d1b3ce46a77a6d08c677b71d9  bfd/osf-core.c
+5683622c95a1099cf1eb9483efd3e6e2  bfd/hp300bsd.c
+8eb19b0733efd44ab873956fd3eb6a29  bfd/cpu-ia64-opc.c
+3c1dd1fd43c9b11f34d9112513469e8a  bfd/cpu-m88k.c
+501e47b327ad657da4c51f535d9ba1dd  bfd/cpu-iamcu.c
+55353ea90b7a534cdf8545d0819400ad  bfd/elf32-crx.c
 4730a96df3fe1a657289c366a4f39344  bfd/ChangeLog-2006
-55619398e9823c4143d1e6840b7e8714  bfd/pe-mcore.c
-64b1469c1732ac8d53e4cc59050a9c46  bfd/cpu-mmix.c
-4f02b85d27a05e40c2f204cae9587bc8  bfd/coff-x86_64.c
-e3dd5e83d4fa3bb1f4223fe0598192ac  bfd/bfdio.c
-84adf7887bf7a4447d9846803ba00c40  bfd/cpu-s390.c
-3304bf9f4a4eae934a8e3ffff1231772  bfd/pef.h
-63b41ca411c666c32c8d3cd7ef50a4db  bfd/elf32-tic6x.h
-1b9f92e6dc124115e338da158b8cf041  bfd/elf32-sh64.c
-0aee50e77972226de0ab8413de802ef4  bfd/coff-i860.c
-bac614ec875157d708a6d1852f24c552  bfd/coff-alpha.c
-0fdb1fcf7858b57dfe2203cf0cb69ab2  bfd/bfd-in.h
-7a277fa21b5bca0ed457473e152f1189  bfd/elf32-nds32.c
-0249e6b3d6cefb3fa720c613acbc28fc  bfd/elf32-i386.c
-1116bb00ad8d8fb84553b903831544eb  bfd/elf32-ppc.c
+b99584d00ae5ac66c772fa6887fe83c2  bfd/pe-mcore.c
+2def21880d37554458b14a90bf893d50  bfd/cpu-mmix.c
+fa7ab1e9597e4810228a551ccddbcbb3  bfd/coff-x86_64.c
+ce703c5270d8289b73c4bcae25827f06  bfd/bfdio.c
+621977267970a7fce5d9a9682265206b  bfd/cpu-s390.c
+4f96af31851ac36540ff2db83a826c23  bfd/pef.h
+7961c65c046471e22f47312dd7a28ce5  bfd/elf32-tic6x.h
+6c28953fb0ac93b2924e4e1c3f7e8d6f  bfd/elf32-sh64.c
+3f53773f5b50352655b727f53236ec51  bfd/coff-i860.c
+28f41b8719e1d4f671a1ea50c85c5e7b  bfd/coff-alpha.c
+a847498776bfd87d256c2f53b2fc612e  bfd/bfd-in.h
+a791d2d45df3afc85cb0102a754359d3  bfd/elf32-nds32.c
+51230b8b47ef1c8073c5e343abe7c077  bfd/elf32-i386.c
+f688082beec0a7ee327d2f2621d73afa  bfd/elf32-ppc.c
 7d710529ca3fafb2bb57132df24957e3  bfd/ChangeLog-2004
-1474d44e899da64669598501763f5521  bfd/elfxx-sparc.c
-8cf5a2d0ccbc8270fc963d0b2f475323  bfd/cpu-powerpc.c
-38d3e18e115c301b1e3684b9684cb22c  bfd/coff-sparc.c
-f14f660d8cdfb199fd82cf52fa39f96c  bfd/cpu-xgate.c
-21abd7faf118e6b608357ab340692221  bfd/cpu-rs6000.c
-09a47bc1c16370a67ea9b653cb3f294b  bfd/nlmswap.h
-c9070818d87a20988de16ebb355b37cf  bfd/PORTING
-556f3630202405d8912ade944cecfac5  bfd/vms-misc.c
-5e4807f2a6cf023df23f43a258199965  bfd/coff-z80.c
-3090d6b3f1068b6933ce107eb769e0df  bfd/elfnn-riscv.c
-940202e957bee9dbd88df3b73ba1fcd2  bfd/epoc-pei-arm.c
-91339118148fa17ab1f309e96acc7e97  bfd/cpu-epiphany.c
-71b8e21ede12bd5d730677ee78577e3e  bfd/coff-w65.c
-ff4946946d6a97e9a5e878e174af2806  bfd/newsos3.c
-a5ce56d041033deec0a022c41e2dc93b  bfd/ns32knetbsd.c
-9a3ba638ccb68458e727963e6fbb7a2d  bfd/cofflink.c
-383e485e0b86fd84320269f31da5d77f  bfd/dwarf1.c
-7c6b4372d18753115c407044ac88365a  bfd/coff-ia64.c
-bee2c1f8b4d242fe79411e643314c603  bfd/nlm32-sparc.c
-075d69ab58fadbe5c67574264fc40e57  bfd/elf32-pj.c
-3b0158279b034928a8ed1918a80574a3  bfd/elfxx-sparc.h
-9a8145290d81ecadfdca388888667b70  bfd/cpu-pj.c
-8dd0c0e5200c02b0ad0f25cdedf058e8  bfd/elf32-i370.c
-c8e9a4f88da93a043d627ba209148956  bfd/coff-i960.c
-74707fb14f8d1efe1f7cb70acbf43f77  bfd/irix-core.c
-76630be17e0e29222c57a0c6bbac891d  bfd/pei-arm.c
-9acdb37b06fc9b4ba43e4ebebda17688  bfd/elf-m10300.c
-bac51e7ef86e9dbad4e91d28f7d3012f  bfd/configure.com
-a574bf1a83ec33c047fc74f499e70769  bfd/elf32-nios2.h
-e3cbebdfb0493ef3450b0f79cc74d1a3  bfd/elf64-sh64.c
-fbca3b5da1c91ea1e724a7e1875a2657  bfd/trad-core.c
-99be971d0518dabefca0ab0ee2118aaf  bfd/elf64-hppa.c
-d5a1e7c68db1dc7d927062383cde8da3  bfd/pef.c
-b24231d15be793ebee6327c352f30bb3  bfd/aout-cris.c
-f444b6b06cf14aec0026d70cc064bc3c  bfd/cpu-tic6x.c
+de708dac3d691e8e938418d79d95a00d  bfd/elfxx-sparc.c
+9ca91d48029e4a031214ded3771db8ee  bfd/cpu-powerpc.c
+ddaad3969af49017cba19437aea9b9a8  bfd/coff-sparc.c
+e935379eb5723fcd04ab26b5f16518aa  bfd/cpu-xgate.c
+d1a135d238a33af9e42cd6c679294817  bfd/cpu-rs6000.c
+258f58116356a31b31f06527b81c5958  bfd/nlmswap.h
+3d42ce02e6b73bd7d74bad2d30524bf3  bfd/PORTING
+8d32c86d94f2fe73ff86cc8eb8553890  bfd/vms-misc.c
+30aba6146fa40ad808e8ab79e4606c6d  bfd/coff-z80.c
+6f3388c7444e2358b8ab8f0dc2eb825d  bfd/elfnn-riscv.c
+cff89359bdbc326f6569918f2c97146e  bfd/epoc-pei-arm.c
+bd7a87effb031b86ce56f3d06346a627  bfd/cpu-epiphany.c
+c8a4c7d323e006f57aff72516f9400d9  bfd/coff-w65.c
+9309ba43ba8b3162eacfd5c092195245  bfd/newsos3.c
+3ad2da5e89013747b80c598f97f7a485  bfd/ns32knetbsd.c
+cd6164506a123852d108e8c89bc3a7e1  bfd/cofflink.c
+1945d16bd353b75995bb1f8ea5d0df8c  bfd/dwarf1.c
+5796d98f2fd78543e56b659fed7858e7  bfd/coff-ia64.c
+0898ecb9478e8b80d294910dfe1a0b6b  bfd/nlm32-sparc.c
+c3191166e24d136d2df68457059d8dc4  bfd/elf32-pj.c
+86aea1d65c74a30607c7af3744df39ba  bfd/elfxx-sparc.h
+b4c9e8cb18b99a99eac081d3f391a16d  bfd/cpu-pj.c
+0ea73fc289487b586894297ca31f1ee8  bfd/elf32-i370.c
+2ae3c39b1d80f50f0ab20a1e928de850  bfd/coff-i960.c
+0dc8cdd7a80c335f14d9176f344abcc5  bfd/irix-core.c
+95a87210e383b27f6c7edad3a21ad71b  bfd/pei-arm.c
+ad466c37e2a958554a63a9baef89e840  bfd/elf-m10300.c
+b46c407bd5a786dc6b8e49b660fde128  bfd/configure.com
+4bb28018ce9e565fac72dd68ac4266a5  bfd/elf32-nios2.h
+c8b91d665e1685f3c45019c7db1ebdde  bfd/elf64-sh64.c
+9ea0c2343d33e85b350a62eee246fc8f  bfd/trad-core.c
+2e3c7176c2827a9c547e81ffcc526a9c  bfd/elf64-hppa.c
+a60c3bef7fb43a29adf095ac4647c8e6  bfd/pef.c
+1c3b1cdd726dcd5b9d3bff2b941727a7  bfd/aout-cris.c
+9b85ec79181434ec3f9ff61d1c20822b  bfd/cpu-tic6x.c
 1ded054093de910d9786c62bc4fe8cc6  bfd/stamp-h.in
-dbe3981968df99a00cca6b8ae3fc5ac4  bfd/cpu-or1k.c
-7b41e7224c6d81a789843f4368c223c1  bfd/elf32-mips.c
-ce929e2dbcaee57a377f863606c50719  bfd/nlm32-alpha.c
-01c9025bc8d106d0548ec38cb6310ea2  bfd/stab-syms.c
-0f199b3f670bfd456a9c7ba94d895ca7  bfd/elf32-visium.c
-b77d23a633ebb1f6db3e6cb2f96e7c30  bfd/cpu-rl78.c
-0cc33edf9b4b8e440e2660ea6673e7f8  bfd/xsym.c
-8f32ddae5aab4b4cc62893b382ccd3ac  bfd/cpu-mep.c
-772eb23c843b2aadcc6fb2afa29273b1  bfd/i386dynix.c
-0175c8613f3226c87b1d5e5b677ee0ce  bfd/riscix.c
-3a641b5e7602e781d9db03d08fa2ed97  bfd/cpu-m68k.c
-c5ac015c0e3a6b97a32c4a9a252e196b  bfd/liboasys.h
-869bddc5c17ab9768fd8efd967cc4585  bfd/hosts/alphavms.h
-a5cb95b5081c0549cde846451d56fc11  bfd/hosts/alphalinux.h
-07dc05f080fdeb6a1c7c1a73c5134020  bfd/hosts/symmetry.h
-b38a88464042233d2319f1b2899bba39  bfd/hosts/i386sco.h
-71c693ba423d9039e6a50b54d946acfc  bfd/hosts/m68klinux.h
-d4639ed93260cc29c0c2cf2f1ee0e95d  bfd/hosts/news.h
-27500fb90e6016024c4b565fc402f698  bfd/hosts/pc532mach.h
-7a3d9b8d072c7357853a25013bd8aec1  bfd/hosts/m88kmach3.h
-67bcd47ef654e016dfa1e7e77b6a8924  bfd/hosts/mipsmach3.h
-5383d60919ce0d0c1df9de0ed5f4c90b  bfd/hosts/x86-64linux.h
-f1f48ecfc5116372526211f4f97fceff  bfd/hosts/i386linux.h
-d0d36b8fbdf471f7234b2a93000a6cb1  bfd/hosts/hp300bsd.h
-f6349c8e85fad3f5700a99ce0a8b6049  bfd/hosts/i860mach3.h
-2a523d8a74d1b2683a73477db0db55bc  bfd/hosts/dpx2.h
-6b411147e1c7493c8de58c58581e0147  bfd/hosts/m68kaux.h
-24dff157e32ca8b4d824507818a14dd7  bfd/hosts/i386mach3.h
-17e032941f88a2060f0735300f261b27  bfd/hosts/vaxult2.h
-a775c7e92748ae7e34f7cbdebca48bf5  bfd/hosts/i386bsd.h
-c73d4efb35b5ac39db6121ed9e6aa11d  bfd/hosts/news-mips.h
-379d37f1da2ec910582fd5065c35e3f2  bfd/hosts/mipsbsd.h
-823e5c22bbcedd17ffa99154c8731d98  bfd/hosts/tahoe.h
-f8e6146b15b10edbc549d78b7ff9f510  bfd/hosts/vaxlinux.h
-b717f106b0f8d00e92d83b365b026b81  bfd/hosts/riscos.h
-9a9db5da80e10e4431b526308b11a9da  bfd/hosts/vaxbsd.h
-caccdb2bd3c44c56946a975c4811750b  bfd/hosts/decstation.h
-b1091cc0ea3fb48c29ffd2549179cfaa  bfd/hosts/delta68.h
-17e032941f88a2060f0735300f261b27  bfd/hosts/vaxult.h
-0a984678876a479673e3130f34b221b7  bfd/mmo.c
-d5badb308a9ddc7101479c092543b929  bfd/coff-z8k.c
-038175b76a55880a4bd081f3137e7d09  bfd/cpu-alpha.c
-f1d56d9bed0c9398d60b711a315c2710  bfd/elf32-tic6x.c
-67774a3bd52bd85c8fc978447323f50e  bfd/arc-plt.h
-fe327ea5c8fabfbad96a174b47a6dfe2  bfd/stabs.c
-9999aad5a912c5df8cd6dc11bdf75c19  bfd/elf32-m88k.c
-af0803e8046f9338099ad832299f2bbd  bfd/elf64.c
+b0ce23f80d12db3c7139492e669d5ed6  bfd/cpu-or1k.c
+8988abe43405c72f8ee048ff154acb1e  bfd/elf32-mips.c
+d0bc038d48cc29a6b36076b310c3571d  bfd/nlm32-alpha.c
+85d5e785b7adcff10c9833cad0189938  bfd/stab-syms.c
+18bc47d59c133b6882ff6285d129c29c  bfd/elf32-visium.c
+76afe8404518c77c9cacc3e0a3265a6a  bfd/cpu-rl78.c
+6098e49c87551bedc136b4b6788d740c  bfd/xsym.c
+be5144881c626da1faa1d7582ddce2ce  bfd/cpu-mep.c
+ad6e0cd6e11d2f44ce4f273d98b6dc4f  bfd/i386dynix.c
+82619ad2833e3cb2e86247f2ec61dc18  bfd/riscix.c
+a1ee2695b25b382897812c400637f3dd  bfd/cpu-m68k.c
+d416cde59d7191738966b4c71994592a  bfd/liboasys.h
+d48a168cc056b6ec1c5ce1c932c45152  bfd/hosts/alphavms.h
+efc7aedcd76e5b6d849a4c777b0568a4  bfd/hosts/alphalinux.h
+c4862d2caabb342c3f66ac1925973918  bfd/hosts/symmetry.h
+31d0c149241bb652e52e2ac9e5af31e8  bfd/hosts/i386sco.h
+5225af9af22335c0e4995929e2b14a6d  bfd/hosts/m68klinux.h
+f55624f8772549bcc7315a7ef0eea254  bfd/hosts/news.h
+4788cb81f8b3819101c47dbca47199e0  bfd/hosts/pc532mach.h
+af78ff4d4dafd17bb3dd42dfe33fb439  bfd/hosts/m88kmach3.h
+47feefb1171a90bb5ec557ae5685718c  bfd/hosts/mipsmach3.h
+969f807f3333e871a6c0240c05aaaf68  bfd/hosts/x86-64linux.h
+e6be10ef05761d171624764d8946ec82  bfd/hosts/i386linux.h
+c3751e041e0be47449c0764ba90d8c84  bfd/hosts/hp300bsd.h
+dacc27b1ccf38ed494ede4384028b928  bfd/hosts/i860mach3.h
+dd2acf3a522a9edf952f162c50381fe1  bfd/hosts/dpx2.h
+1a57ee52f45ff930f713993bb0ca512e  bfd/hosts/m68kaux.h
+f05b9e2441935a8c82386520fc30ffe3  bfd/hosts/i386mach3.h
+138bcfd6b33119b3d24be7af1dd2bacf  bfd/hosts/vaxult2.h
+6b91ed2ee702246283ae67a16bbd2584  bfd/hosts/i386bsd.h
+70d6cc6ab58603bb1188df015cf0e1b7  bfd/hosts/news-mips.h
+5812a7fa3f24ef965964ec56a917dddc  bfd/hosts/mipsbsd.h
+4665d74a0142ec3db808719a80e33b3b  bfd/hosts/tahoe.h
+5f309d875cef8857fc5db6fc725aaef9  bfd/hosts/vaxlinux.h
+0bf1648a6adac4573e51f420176bc8fc  bfd/hosts/riscos.h
+3258a460c3013357e986b989c234efd1  bfd/hosts/vaxbsd.h
+24f0f93262349a06bacc3a239a0fd779  bfd/hosts/decstation.h
+de5fe5442d51df9b194dc70005cfc593  bfd/hosts/delta68.h
+138bcfd6b33119b3d24be7af1dd2bacf  bfd/hosts/vaxult.h
+2b9ea29665f8e4e2f78b646567059733  bfd/ChangeLog-2017
+dc6bfe8d4d4c9f7c39f483401b1aa853  bfd/mmo.c
+e291c0d76c7ee5a96fa3a63a6acddd35  bfd/coff-z8k.c
+ef87f02315c4ce86cf13c49995839a17  bfd/cpu-alpha.c
+b0b3d0d0ce17ca9fb78969dcb0a1e528  bfd/elf32-tic6x.c
+f9f37904b285ca82c10c6c1dbd41c483  bfd/arc-plt.h
+19b4e85761b36654bf1c7df3d2346c40  bfd/stabs.c
+c88724b133e5373ba5d22cfbfc5a6199  bfd/elf32-m88k.c
+b57bd9723cccbbf150af3d48e4c3dcf8  bfd/elf64.c
 bcf99df76a4837a1b2d0dfea57bbd6db  bfd/ChangeLog-2016
-45addff016d57dcdffb5bbc20616935f  bfd/xtensa-isa.c
-7b18fc67e7af552811db59130e96caae  bfd/elf32-epiphany.c
-4ef07b7c38cd9d85fd660432473951f6  bfd/elf32-m68hc12.c
-6d7ffed3a536006ae8aa24fedd4af790  bfd/elf32-m32c.c
+85541fa570fac79f4c5f104f87c24d62  bfd/xtensa-isa.c
+3acd8e730eaac584bfb34864f3aaebb3  bfd/elf32-epiphany.c
+958e26411c9edb743f136f99ef915fc7  bfd/elf32-m68hc12.c
+77d6dbd0e35a1cdc10aeef84cf65714c  bfd/elf32-m32c.c
 8f7b5397a7bb5d502a9997e19d244cea  bfd/ChangeLog-2014
-d1f7ccf6f5aab47427cb868cf0cb352e  bfd/elflink.c
-1f786923af0e5491c743cb12b2bf8a29  bfd/elf32-iq2000.c
-fd5d2b5afe325195437ef6c171eeed1b  bfd/arc-plt.def
-20b64597014152a3965e59411f598188  bfd/aout0.c
-9dc32632f949e2c917a89bf8f9352373  bfd/elf-hppa.h
-5fd7d8d75bbe52a53c1e99193acf7c9b  bfd/elf32-sh.c
-acf757fac5e1d97f465e8890b36e3bc5  bfd/cpu-xc16x.c
-2a223bf4b9a7fa32c77130e35e527a3e  bfd/elf64-hppa.h
-f82d53ae36a0a2727d108f37d2c12cae  bfd/nlm32-i386.c
-9288f115ec7045703f484720ee7f32a6  bfd/cpu-arc.c
-97e83926521f615540bd340c366a48b4  bfd/acinclude.m4
-b5139d4f05d9ae16e6d6a30bd718f32b  bfd/configure
-6c29aa1227f0bda61cc2782be30f5841  bfd/cpu-arm.c
-d68b7b0829cc3eac3be9190625e41ce9  bfd/elf64-ppc.h
-c5579478d3da1bcd0899ccbb9f4f8b7a  bfd/merge.c
-8e57f0245cbcba9abf4138d8188a7881  bfd/elf32-sparc.c
-b36ebf2f5285874f4ddc3ff36780ade5  bfd/libcoff-in.h
-9fbb75e62d26782c7870a24897179e2e  bfd/elf32-tilegx.h
-1cbe8f4bc2ab9cba8f4a02300127a2bc  bfd/pei-mips.c
-bc0dbca056745f724befae89f5d67e61  bfd/elfxx-aarch64.c
-a44a12afcf4a3bd0ddb2082d73fc7284  bfd/linker.c
+c16a2a5a09be8b12c7fb386963967186  bfd/elflink.c
+3772024ed8fc196acdbb6541281892da  bfd/elf32-iq2000.c
+a939bdd818ca9a692a3ab42a01f0cfde  bfd/arc-plt.def
+d2aa74d856ba822f06a0d2165479fd7f  bfd/aout0.c
+f7a7b223126b0467d1dd8a9ca20c4b05  bfd/elf-hppa.h
+c501d84f0b11d9ac868f686990bdc190  bfd/elf32-sh.c
+2e7281d7dc831bca380c925d5b4d9f88  bfd/cpu-xc16x.c
+6675848c29710c9e1580633b83e76824  bfd/elf64-hppa.h
+3d34d3273cbe5d1952db4d76d6653341  bfd/nlm32-i386.c
+56aba66db3209da983fda2af58bbbe2f  bfd/cpu-arc.c
+3c0a070a98b24ef6248946e499503da9  bfd/acinclude.m4
+8d2c476655bae6dbcb777a98e5965fda  bfd/configure
+75f92d8b655dd60a642dc51107554362  bfd/cpu-arm.c
+8c2c489fdb9a7fed2dfc02cb86a698ce  bfd/elf64-ppc.h
+def066f8c19bdf073bcbf37635a6724c  bfd/merge.c
+c226ff233ad89796f1d25116c45c253f  bfd/elf32-sparc.c
+19e7c04c7bebd87f0386927f67312eb5  bfd/libcoff-in.h
+19aa6701514da6fd244f4536f1facddb  bfd/elf32-tilegx.h
+ad98c372073ad07378d635091604c5a2  bfd/pei-mips.c
+2e9273eba456c6ee3e64b5f4312d4b46  bfd/elfxx-aarch64.c
+4abeb9d05ae73a81e18860a93936a112  bfd/linker.c
 9c8d18dd3baf98cc6f5d734e906328e3  bfd/aclocal.m4
-5d3e39581bc7ccd4516513b94965f3ba  bfd/ihex.c
-acda882847dcae73a6b81c65a6c4da3e  bfd/srec.c
-92eb03949db110c304d05e14153c2293  bfd/elf32-score.c
-11a3d74357baa76da287623bb1c64883  bfd/coff-rs6000.c
-9a8579dba375f40b9a0f5060d62b74da  bfd/nlm32-ppc.c
-14c13627be0585a711708ccf1d32e22a  bfd/po/vi.po
-69e0468c41cb030f9b1885abcdb1064b  bfd/po/ja.gmo
-495dc4f4a2e82ea81d7226370e07294f  bfd/po/tr.gmo
-e8bf8903bacf4b6eda9d7bdf644d42f4  bfd/po/es.gmo
-9d9a38c17b7bd669fdcb1397f842452a  bfd/po/ru.po
+a25fe8b0ead69e0a0efb6f3a79578a51  bfd/ihex.c
+beee4269c8ab61dea80b58753f2ae28c  bfd/srec.c
+7568a7fbf7a82488a3d9bd19fb0cf97d  bfd/elf32-score.c
+6736e9f02d9b24fefd2a65e4edc5a053  bfd/coff-rs6000.c
+c34e3d86db0288e15cbb554e7f319324  bfd/nlm32-ppc.c
+db9dd4a0b20b67e4ef912c9fd4cda91b  bfd/po/vi.po
+c4019a694f03cae81694f9c1c595e750  bfd/po/ja.gmo
+c47c7a53f52ded3368c3bd458b8b7d20  bfd/po/tr.gmo
+00de15b8f4dde270e7a84ff0f98baa7d  bfd/po/es.gmo
+ac60199ef424a8f3ae7b5f14de34430c  bfd/po/ru.po
+b93e7a254347a0c9d0aec92f503f82fe  bfd/po/hr.gmo
 e15c998ffa3537ef5f5c5ed225c18279  bfd/po/rw.gmo
-844c1ea598f9bcc47870ecf122b15e7d  bfd/po/ro.gmo
-f8176ecf7d2b8853ed6e1cb1c8bce08b  bfd/po/uk.gmo
-df2596b7ab9501a10f309c76af288ff2  bfd/po/vi.gmo
-50c59b97c4ca19bef6800bd6686e4bd6  bfd/po/zh_CN.po
+d94efcf27579278ba3dc959774e52b70  bfd/po/ro.gmo
+9b648b06f3bb0c1584c93316fe72b490  bfd/po/uk.gmo
+3df30e1e39753152d11d44cb2c965da7  bfd/po/vi.gmo
+707a2271e7ae77dc322e9f2977002b3e  bfd/po/zh_CN.po
 4314f7dc707bdd16e1a3aa6318d52f8a  bfd/po/rw.po
-8244055a2256d5ea89e37b38e4d2834d  bfd/po/es.po
+f58f748de9ae43277eec125f66c6881e  bfd/po/es.po
 4d37138c8d35849276f5939f27ee211f  bfd/po/BLD-POTFILES.in
-a073d6d789495bfc4d4d4c9cd1fceafc  bfd/po/bfd.pot
-5207e1d0f347e73fc15f1cf1afd833a1  bfd/po/sv.gmo
-1882a68e66b11c3b610bb7ab63b2f84a  bfd/po/fr.gmo
-a8c9d4980451d8a98a3388c3c43e1d29  bfd/po/sv.po
-ac2ec487ecae0b4f6fbccf4fbc8a6b18  bfd/po/Make-in
-4f210a8581385ee78eba59249412e03d  bfd/po/zh_CN.gmo
-95bcedd50b1016d3de8c9f543c6b2bb9  bfd/po/tr.po
-adde21abfb12b19302e8f830a86a3b71  bfd/po/id.gmo
-aca0f97fc4ea7a55d74455823567d36f  bfd/po/fi.po
-a40147b5c774778d63e61e56efc9bd27  bfd/po/ru.gmo
-5295dc9c9f96782047c8465174c65516  bfd/po/SRC-POTFILES.in
+e19bb962d689621ffdc549c064bda359  bfd/po/hr.po
+f4e28eb8599e9f7c8bed03d81d9975c1  bfd/po/bfd.pot
+c4291d2c48fdf616cf5a219bc8dfc79b  bfd/po/sv.gmo
+66863a9b9e062f64b6ed05aca9fa42b4  bfd/po/fr.gmo
+063bd370058e0656621e835f75f8d0af  bfd/po/sv.po
+fc4ade952b8b869e24a5693459c6738a  bfd/po/Make-in
+6640519b8e1477c4c621e3524c8e320e  bfd/po/zh_CN.gmo
+81570d19a349cd683436f77a9c8d13cc  bfd/po/tr.po
+ed0372f4ddff71fb0e948338cc9d8559  bfd/po/id.gmo
+e92e0c0fdb85a3e07602d6d891f3c9f4  bfd/po/fi.po
+ee0c7b2fde1bbf1d05a7af7fedcf51b6  bfd/po/ru.gmo
+a59675d9924cd407367bcfe6983ec2e5  bfd/po/SRC-POTFILES.in
 0df7e50992986ea8a85eb6baa50bd279  bfd/po/da.po
-c4d865669e1bb9105341359e764bde17  bfd/po/id.po
-c0b3a603dd785e51c96d1ffaaf0e282e  bfd/po/fi.gmo
-635b10475c41b93ff6add660bd129419  bfd/po/sr.gmo
-8fc4e95db5a00f800bc30c65a30f8a8a  bfd/po/ro.po
-19b4050d0051a1a11e9af8166290dd7c  bfd/po/fr.po
-cd98ed5b71c024183dd2ccf1abba5f76  bfd/po/sr.po
+c7515f4b454a1fa630412fa279a3164a  bfd/po/id.po
+0ac8b8067067b849aeb810162fa751fa  bfd/po/fi.gmo
+2d5851818601f0c6fac54e6b59482875  bfd/po/sr.gmo
+440d5018fb62b30ff5a819137633e364  bfd/po/ro.po
+ecd205a368a8a9eadd29a2a81cf3216d  bfd/po/fr.po
+2f6a25e42540d4d2dd6d59b12c6bb3bd  bfd/po/sr.po
 b35e9bdbf39377a1385504db7784d3f3  bfd/po/da.gmo
-23451c644231e885672bc0d8b9353aa4  bfd/po/ja.po
-7248079af3c7fba100822353e9d2a4d0  bfd/po/uk.po
+74cb3712e1e8c26eda36a992fefc023f  bfd/po/ja.po
+7e9c84381c401453201ad9e67a1b605f  bfd/po/uk.po
 053e50680ffcbc1e5f6cd139dae37677  bfd/ChangeLog-9495
-a37d8327f7267530a0fac1f774928ff0  bfd/cpu-frv.c
-b7f46bf0c700818e0539e301a4efe75c  bfd/cpu-cr16c.c
-504625f35c2996806a54d047b660b51d  bfd/elf32-dlx.h
-5387b224f0b899694f92cea757f2794a  bfd/elf64-tilegx.c
-9492b8303ae3895b24ab270387ca25bf  bfd/Makefile.am
+0f2b6a31be6a9727c0f62444426a884c  bfd/cpu-frv.c
+0c0cb7e124830f388e0608ac641164f5  bfd/cpu-cr16c.c
+f61aad39890a71ce23a9612d0244b6d8  bfd/elf32-dlx.h
+528fe966c404810102770a31ae145d52  bfd/elf64-tilegx.c
+ca1594510bc1372de225ff7361df7d90  bfd/Makefile.am
 e63f6d01a376008a89e252c7b5cc1f6f  bfd/ChangeLog-9899
-aef43cd2b0ba5eeba46c8bfcb2b69f76  bfd/elf32-score7.c
-067cbbfc59c52c9808b2678646c07997  bfd/binary.c
-e83226771ed1bdd60101cf17ef607909  bfd/libecoff.h
-eaf9d592063f4a8369a72f596157163a  bfd/elf32-avr.c
-8654dba831c43c6adf3b061df362b6aa  bfd/elfxx-tilegx.h
-55bc7336615978e8db1e782119519223  bfd/elf32-h8300.c
-fce4f8ca7f71787bfc1d4649b69bd4ea  bfd/mep-relocs.pl
-f355bd42e881890133910a207f3e0bd3  bfd/coff-h8300.c
-b5712bedf36d3542f47a2508d47e64d2  bfd/elf32-nios2.c
-e3a7bb010c15879058e5e560a051baec  bfd/som.c
-3bba1af4808aec7b1dde688cab48d4d4  bfd/elfxx-ia64.h
-682f61d60ce7b99e2a6b1685adcbdeca  bfd/elf32-or1k.c
-435edba668b2bf4d3116419d844146ab  bfd/targets.c
-d439d244575a0e59dc66532aabc2c058  bfd/ChangeLog
-0d59f279b218214b6731f33d22f64582  bfd/section.c
-4a2ffb703bf9fbfd0ce5453677e3ce38  bfd/elf-s390-common.c
-ac2a2349044ff63f11b13bf3281e6370  bfd/elf32-lm32.c
-38472c42872e35a8c4af7a565cda4824  bfd/elf32-avr.h
-d33da8cf6ccdb5f38137b96c8bc83b2d  bfd/elf64-alpha.c
-8025edcea32cc9dd186ea1b6489ff0ab  bfd/verilog.c
-9965798031a291d66c54eb8ad9dbf0ce  bfd/libhppa.h
-0e0dce02a1bd4bea9426c050c3efbd06  bfd/pei-arm-wince.c
-7c1e629c6bab950f27cbee8522e7a1b1  bfd/arc-got.h
-a27999028ad10781f5e948343e04db25  bfd/coff-tic54x.c
-52220f0c940cfb69531887eb8d919a69  bfd/mach-o-x86-64.c
-fa625fcce72c1f4da41622866ca14e81  bfd/vms-alpha.c
-75edab4897f4585cbc0ede23d5ac74e2  bfd/aout-tic30.c
-52556127623423caa5a9d710b8d13eb1  bfd/elf32-hppa.c
-662e1b126479e63df9552113cb494fdb  bfd/TODO
-a1a9fe8406414faaa44151509eadca07  bfd/vms-lib.c
-efe7fb0484054f860fb233459fa5fb4e  bfd/pei-ia64.c
+75e9d64c7418f89139f0cacb14ff8913  bfd/elf32-score7.c
+c38617ac69a0bd96e6a38db22d8d2504  bfd/binary.c
+b9a87dcc61528f8d867c29011b8a2a87  bfd/libecoff.h
+299cf79e25f4e6f8d32b8d9af946530a  bfd/elf32-avr.c
+179e6d72fe300beab0e77a4f46f2955e  bfd/elfxx-tilegx.h
+c43f93dc0016a25fc83aa54f1c8d800b  bfd/elf32-h8300.c
+3f90315edf64a2fa80c06910077cc71a  bfd/mep-relocs.pl
+126863f576fca9fc8e800bbeeabc2f57  bfd/coff-h8300.c
+2dc9bcefb6bf8e7ac7543cff5e1d1687  bfd/elf32-nios2.c
+626b82708c0a0a4332325cd2dd554723  bfd/som.c
+8d4d744508f1954a1e84207976a9ed1f  bfd/elfxx-ia64.h
+93e21f4eeb78462639fa34fe57a1bc73  bfd/elf32-or1k.c
+4e344b2033bbd5b24d63be5f3d51c125  bfd/targets.c
+e3a52a032780d6e949fcb61407f8fd9b  bfd/ChangeLog
+c8d21465fcfcd80dc40d89d4f957acd7  bfd/section.c
+4e5afa557b9a6ad590d5fb77fbd74370  bfd/elf-s390-common.c
+2d0b151d77edb91f1ec4c062854538ed  bfd/elf32-lm32.c
+2fcc022c7c326e46a5b50329a8698640  bfd/elf32-avr.h
+b0afbb4ea98c395f7e60961a1e799e5a  bfd/elf64-alpha.c
+b60a077ba321e8a91ded15e0b0690e9f  bfd/verilog.c
+124ae54161a76c43c3f1c0384eca5004  bfd/libhppa.h
+f74026ca420c599f42bfa049aef922c3  bfd/pei-arm-wince.c
+d73efe2e4fd9abd0f48d456bc54e1952  bfd/arc-got.h
+dc1d0468b7b64e5a67dfa43b8ccf50fb  bfd/coff-tic54x.c
+d0632d6c54d4bdd814ca042743e45e5c  bfd/mach-o-x86-64.c
+2602258b8f34d67252a2270a184c63da  bfd/vms-alpha.c
+f1f95a7d6674e8b0a660711abcf9eaf8  bfd/aout-tic30.c
+7c2f7fe81a999fa903acdcfc9b58f72a  bfd/elf32-hppa.c
+8f706e609c86bedcabeb40bb598844e7  bfd/TODO
+3dab814e127d302e285d4b7ec291f3bd  bfd/vms-lib.c
+0d219537fa16b8d54bc02d4721f78a55  bfd/pei-ia64.c
 48097790cbee8800147ba96a6dd07fc8  bfd/ChangeLog-0203
-5e55d4c5ccbf8932bca976ea557824b6  bfd/cpu-tic30.c
-f82062ff7088c38d56120f1cf46fec3c  bfd/cpu-m32r.c
-7a3f14c5ff8b49cad4bac2fe94068526  bfd/elf32-sh64.h
-96e3beafca549c51eb84c7c5062c9372  bfd/armnetbsd.c
-d92b9ede1eb9224d168dad154adecd00  bfd/elf32-arm.c
-25014c4161e6a9819021515a67c51ca2  bfd/m68knetbsd.c
-d0dcbba2b5eca7ca00366ffcf74cc27a  bfd/elf32-ppc.h
-0669f9f37b9670cafac9c70ed613680e  bfd/cpu-msp430.c
-793542e93bd596df950b760b17affc3e  bfd/libieee.h
-59619db98d3d7b50c9ab28f44747083a  bfd/cpu-fr30.c
-6652e77eeea619f3c4021e30761efeb1  bfd/corefile.c
-4959d41b5bd5ec36006b4e0c9343bda5  bfd/cpu-vax.c
-f0a467ab0ae925cd6dcc3bc5745d35fa  bfd/elf64-mmix.c
-6c9afb69c789e48dbc1347be71693977  bfd/elf64-gen.c
-79cb61da4c557994f750bdb3c26dcec2  bfd/plugin.h
-d189bc4a462cedb11c7cf45713c386e5  bfd/cpu-score.c
-6ff33d5f0835f1bb5bbda4eb7c293c11  bfd/i386aout.c
-dca05589de8a5caeb592fb35a19d7dc9  bfd/cpu-sparc.c
-aa8fb34f490a5f5fa2cb0fb178c060ae  bfd/elf32-metag.c
-34a631422270d4763d95b6a18a1c9e7a  bfd/elf-vxworks.h
-081a92db5a0f0c6d41eb4b81dcbab8ab  bfd/coff-apollo.c
-238b2c0902678ca4caeb35e76b134095  bfd/sunos.c
+b97f9a1ec3d2381f31403c94e269fc89  bfd/cpu-tic30.c
+ab5581d8ad05ad4b50a8ae717693e30e  bfd/cpu-m32r.c
+0df8746669022359c5c746a7d276e698  bfd/elf32-sh64.h
+b0a704b086ed6f5f5a82fb2d8c4bd057  bfd/armnetbsd.c
+c6de839509aef842da0c4c906d384002  bfd/elf32-arm.c
+774466616e6eb97ca007c474e3016d1f  bfd/m68knetbsd.c
+1a1f625588ab54d6e1cd78691c24593c  bfd/elf32-ppc.h
+2f3717840f1c319ab980200dfc5c4084  bfd/cpu-msp430.c
+22b78a89e60e1cd9b8d0c2d183a04baf  bfd/libieee.h
+f8be9b0bb44bce2fe2c60c0b865b63d1  bfd/cpu-fr30.c
+b8402efc7348e5d71e99497d727cc69b  bfd/corefile.c
+829c3e510bb27a2c386ba23041b49f51  bfd/cpu-vax.c
+06d2c8d313fa21b05166c9362384b3bc  bfd/elf64-mmix.c
+36b6efb2fee7ee87287007ededc02f12  bfd/elfxx-x86.h
+d2f27a2646b223b2fccf38930fa02a14  bfd/elf64-gen.c
+676e87e1557b119b8948e946b621fb7d  bfd/plugin.h
+a11715f8ee4b84e1de3decbbc3228100  bfd/cpu-score.c
+d5134b8c676f93b0941342369ee08ae6  bfd/elf-s390.h
+76c18d761d3930a9f080f7c68c868f75  bfd/i386aout.c
+2caf01e7a3001ad5eb8b36f5a64d3bed  bfd/cpu-sparc.c
+eb8885c4266485dba5b6351e4f14b00f  bfd/elf32-metag.c
+a8f07e2c3d17b39da3bec03cc768b37b  bfd/elf-vxworks.h
+35fdd43299731796d169e827b4a5d8cb  bfd/coff-apollo.c
+116c4ab3c273eb68dba466df1da5e76b  bfd/sunos.c
 502da5f655e885f8085c0794f6f0f3a6  bfd/ChangeLog-9193
-a098f35c4edac7dbc60e19ecdc840c38  bfd/freebsd.h
+4d1e0a92bb594b85c1ff181467d58274  bfd/freebsd.h
 d32239bcb673463ab874e80d47fae504  bfd/COPYING
-00e1019cd51b189b772a433f7c51d402  bfd/sparcnetbsd.c
-a611c656b48ecefc126197db5da67de3  bfd/elf32-xtensa.c
-b11a253595d98e6dffff6a322ae11339  bfd/cpu-riscv.c
-939adccfe5c58c76529020099b8b25ef  bfd/cpu-microblaze.c
-1e0990da40d5a87e8c31f61b2615c26b  bfd/cpu-i370.c
-0704e9b57f5b2365058ab803895b5460  bfd/coff-bfd.c
-88c2a4858d63b3c62d8c90def50fe2ed  bfd/libbfd-in.h
-adfc7effd39a0dfd23a259beb06f21fc  bfd/cpu-m10200.c
-b3c1c63a7b3c52f2da056f074823224f  bfd/cpu-tilepro.c
+f06507c902ef8f002a67ab9b4f797892  bfd/sparcnetbsd.c
+0249300e14b1c86d27824dce662905cc  bfd/elf32-xtensa.c
+669791745e8a64f1a721d0f8837c4e22  bfd/cpu-riscv.c
+153ffbad09abbe9d71f46064ba7b9774  bfd/cpu-microblaze.c
+75374cc5d802ed409f125b95d3949929  bfd/cpu-i370.c
+31b5a14536c0f02552823cc396ffec22  bfd/coff-bfd.c
+9781b9e5815d95f5a9573f9d34e2ab34  bfd/libbfd-in.h
+2fd63da4280736f626869c01f96e7282  bfd/cpu-m10200.c
+62f2a04737d2f229e9bc2b07bcd84ddc  bfd/cpu-tilepro.c
 1616089974633cf0fb24b7e9152a7f47  bfd/ChangeLog-2008
-048e4d83a69b51db509020c310f11cb9  bfd/cpu-mt.c
-03cb4d5333f86767d0cdfaf318edc407  bfd/coff-u68k.c
-018a5b9fa072e13e6dfcccb90615f104  bfd/version.m4
-6cf9cdb5c98939e6bbe0e7d10a984e7f  bfd/cpu-dlx.c
-f60606445f9e22d70b70efd11daab5e2  bfd/elf32-sh-symbian.c
-f8f02f085b368713202ee5fb18c9975b  bfd/elfn32-mips.c
-0c1d64459e6b5d71dab5193522f9e4f9  bfd/cpu-tic4x.c
-8f630be98168dc04ce393fdb4fc03256  bfd/cpu-ia64.c
+3ff9852513b6eb08185c0614170e2a62  bfd/cpu-mt.c
+a9b7ff726164324d55c00d6c1452ed08  bfd/coff-u68k.c
+4ba63e5dfc81e17c1b74365a64721a00  bfd/version.m4
+8f0b819df5c31fe95d83945d4f54c86f  bfd/cpu-dlx.c
+e125055d2b1de5314fc97f5641054cc0  bfd/elf32-sh-symbian.c
+dd1b8500abb7b98310c8cf0c019afe7a  bfd/elfn32-mips.c
+430b1e965b34c857511196434fcb35e8  bfd/cpu-tic4x.c
+918e9e0117dfc570bab13e1ee12bd37a  bfd/cpu-ia64.c
 6474afde93f8e964e3d6dddffde3c41e  bfd/ChangeLog-0001
-a00abe90e94eeff3d6cfdd997999452c  bfd/elf64-ia64-vms.c
-e657684354fe075e59a475cbaa7781e2  bfd/cpu-metag.c
-3c0790be97aefc8d3b8a9b9013e2548c  bfd/coff64-rs6000.c
-f4c44ea2e473f61ee655a3565dcf65ed  bfd/coffgen.c
-311fb36b9735818de63c1f4d349e62bd  bfd/i386freebsd.c
-661f746d17de8ef3d05affac62b77807  bfd/cpu-visium.c
+4e26e966cc57f991c5a9badcfc0ba0af  bfd/elf64-ia64-vms.c
+b870ee991f8a31d58f067be850113687  bfd/cpu-metag.c
+26441bdfe06003b1ef54ccacb6e6d70d  bfd/coff64-rs6000.c
+c75bef239bfd166c4aebf239130d36ec  bfd/coffgen.c
+895e74715a30423d4a927eefde179114  bfd/i386freebsd.c
+c3020c342a9a1c54e02eb651a56b897e  bfd/cpu-visium.c
 15cdfd7b5500a342bb89992c1638f683  bfd/ChangeLog-2007
-2a81b8c204e9f9343eb1a29b1213e322  bfd/netbsd-core.c
-415a0f3658694748d762df4c5610d878  bfd/elf32-m32r.c
-780a38ffb9d43c0428ba8ad94502ff65  bfd/cpu-iq2000.c
-29026da297fb7768883a1f44af3710d5  bfd/coff-stgo32.c
-80ebf13a36e3a1ae2b667df53b1cae2d  bfd/elf32-m68k.c
-45064799afb6a885086cdb5ca6827f23  bfd/ns32k.h
-c201c15b28303f4d86039865618cd74a  bfd/coffswap.h
-16dc53c559a5d78f8cd905117c6eed5c  bfd/aoutf1.h
-9786f82e8110db9f4d70c677ef597907  bfd/pei-mcore.c
+56e9141ca49cdbbf593b36a699eaebd7  bfd/netbsd-core.c
+e1d4a2f757c6657ad72aa462f2d0fc99  bfd/elf32-m32r.c
+3feecfc96e06bf2b297e0ae4b5058306  bfd/cpu-iq2000.c
+c44ea24b14d494c644024a861e3b8072  bfd/coff-stgo32.c
+4a440899196c25b239d22577ce3e406b  bfd/elf32-m68k.c
+bb519b82efbd01b31d1bca79018be727  bfd/ns32k.h
+9ae2d9eef619b9814fc3fe5411c0779e  bfd/coffswap.h
+c1c1b532f8150fc96c268eac448b05cc  bfd/aoutf1.h
+bfb83ac817c26ca4e8245db14f2cf160  bfd/pei-mcore.c
 86f496cd17d52d96424d40874acd6ae4  bfd/ChangeLog-2009
-6237080893ee939e9467c04af1dd92d2  bfd/elf-linux-core.h
-9224ad7562dcd0d4c828187861188c60  bfd/vax1knetbsd.c
-3f32224b60c9d369389003dce680a214  bfd/lynx-core.c
-f8408d9ffcccaa859b44ac9fe6611658  bfd/bfd.c
-9001df5c49c1e5c4848098e490ad50ed  bfd/cf-sparclynx.c
-671afc7869173e58dc851973b8347e1b  bfd/ieee.c
-f8ddf23802cd5d2a140327c2bca64bf2  bfd/wasm-module.h
-5486d22cb5aecac7c6503eaa884d02aa  bfd/elf32-d30v.c
-85e9e1fd631740efcea26588a2b89bc0  bfd/elf32-i960.c
-1f5ac78a902a1f561d9e7ed676274f9c  bfd/elf32-xc16x.c
-685f30a3ea9f4ea8caba25226eb3fd69  bfd/elf32-msp430.c
-15176b2b5f6323d69e491f9ff5dc63da  bfd/elf32-m68hc1x.c
-c35cd41617b30461f97a0693b55de323  bfd/versados.c
-d2cc7887f503603bccae17b794ff9bd4  bfd/coff-svm68k.c
-a68059098bc00666dd3c3dc80bc6f1ac  bfd/coff-we32k.c
-2a9e09bf18c57e5f10c2f8417377f951  bfd/genlink.h
-f7aaf1c9fa49a8b91356b6954b1816ba  bfd/plugin.c
-e3b83463986f0f661413762bd0ba63ee  bfd/mach-o-arm.c
-859d29947d947527df4b21d122e6393e  bfd/elf32-ip2k.c
-0e21e211a05bb6b1b158c73c30b38117  bfd/elf-attrs.c
-1e58c2d4bae44bafe2124c9f935666a9  bfd/elfxx-riscv.h
-8b77916b89df464c6a7a149f2e20a283  bfd/cpu-h8300.c
-9ce3fee72b1d4d85f6593e76ba95d533  bfd/cpu-nios2.c
-6a7eaddb758bdb63aa1ee8a5d3c02dae  bfd/MAINTAINERS
-3bfc712512f899b0329ab625f33dd919  bfd/format.c
-376c6ecb706b9a7ce05770197d22b7bb  bfd/elf32-rl78.c
-fb1e8fdbd346dfb1f1bdef79480086a1  bfd/cpu-tic80.c
-0747e738051b658c5034563c3ebf2c68  bfd/elf64-sparc.c
-fae9a54f7b63d38de91d6cb9c3363e77  bfd/elf32-rx.c
-8746e7b31817c8a7ae344e48edac94ca  bfd/archive64.c
-5e25a64d6e0495c303de25731beb6a0c  bfd/cpu-v850.c
-65074810a0d53f19230ffee2e9afb137  bfd/cpu-l1om.c
-ed029f4a904889366830a4a87b97bdff  bfd/nlmcode.h
-088bffd064cb3a7bc7772cd149d3c96a  bfd/pe-sh.c
-17c03c3d48da5add15417043acdce645  bfd/libpei.h
-9e3ef074fb6aa04fca12ece600fe87b0  bfd/aix386-core.c
-250c77d66d0bcfb8e1d76f5066dc690b  bfd/elf64-x86-64.c
-bb776aae34d1d2f6f2ce8f0bfb086fcd  bfd/cpu-tic54x.c
-70fa6126c14dcf56d4be8007159387a8  bfd/pe-i386.c
-a327dca3331d8312aff039bb28af1d7e  bfd/coff-m68k.c
-6eaa8516942376bf81352cf1871e3251  bfd/cpu-m9s12xg.c
-07a6a7cb3f8b7282788447ef628aaa35  bfd/sysdep.h
-a8d05260303c5ac9c5a5b3fb2a66ac73  bfd/coff-tic30.c
+1967bec0e5045e7ae67cee2608c862f1  bfd/elf-linux-core.h
+44138681201d06f76af693fa55010b4c  bfd/vax1knetbsd.c
+3ff763781076d171b960c9126efaf323  bfd/lynx-core.c
+c92d34744382cfb1cbc55f3f86073941  bfd/bfd.c
+177d7ec6b54a890d1fc916ea19f6f94e  bfd/cf-sparclynx.c
+1c3830d97d9dd28a60987b8c81d334d1  bfd/ieee.c
+e4ed93b0404a8eef17172160d4baf756  bfd/wasm-module.h
+ad746d9dc00bed932ed70e239ca8b45d  bfd/elf32-d30v.c
+2d7594d451e28553c69a5edeb645b2df  bfd/elf32-i960.c
+eef821c19825abf4d4c237ebdb81b673  bfd/elf32-xc16x.c
+9cc322f80ee85469fa486c51cf6c5388  bfd/elf32-msp430.c
+d02e946cc6b3feb1ef533b1f0ecd3c15  bfd/elf32-m68hc1x.c
+ac3083a2d64b32a63efb4f31bd58acc0  bfd/versados.c
+b07457399b5bf975e5bf2f2514495f54  bfd/coff-svm68k.c
+6a5326d3a223888076d5202d392b795e  bfd/coff-we32k.c
+01a40acc26768a2ae9ecb6b1e31dc22a  bfd/genlink.h
+69d75606c8a8350c8145b12d58f69ff0  bfd/plugin.c
+a1b46008b46e53a6c2fe2467cfd35025  bfd/mach-o-arm.c
+1766949f8a9e8ebd049bad6f763b9f52  bfd/elf32-ip2k.c
+7a66188ebcc6565a17105d0ba97287f6  bfd/elf-attrs.c
+316851f7af3f54ce5cff55260b90343a  bfd/elfxx-riscv.h
+9c6a3f81a963315eff53e7beeb6d825e  bfd/cpu-h8300.c
+94ee02b0bb888566d768305271829117  bfd/cpu-nios2.c
+c097198cbe252d43bd0d5b7a0280ee12  bfd/MAINTAINERS
+451fa08fd342f8d7174c547c2b465df4  bfd/format.c
+6713247cbe028db5215a21ca9198ec07  bfd/elf32-rl78.c
+22bded87b47c5c72d63ca55395f37fe4  bfd/cpu-tic80.c
+a3bf455b0df852a5ad20547790583f8b  bfd/elf64-sparc.c
+6b0e052a84434ca6d0da23fab60ee5db  bfd/elf32-rx.c
+92bdca8080479a0c462112e9a81e26c5  bfd/archive64.c
+8ff86ae862fd726bbd037f354495d054  bfd/cpu-v850.c
+deb331f75b126fadfb6d8f2b65a26392  bfd/cpu-l1om.c
+2c6c9ccb932d0dec7ffbecf0e0e06dcb  bfd/nlmcode.h
+1f7185543fd0f32ff265a14bc7bd3277  bfd/pe-sh.c
+014e3529df2456de66491a46d89ec438  bfd/libpei.h
+82ee6599237d34c6b70f7571b34e86d6  bfd/aix386-core.c
+94e8ddb7f0854740abf1e52537379c0f  bfd/elf64-x86-64.c
+27b9737926107462828661b15e4826cd  bfd/cpu-tic54x.c
+98095d09201981dd12e79fc6871de30b  bfd/pe-i386.c
+edeb1254497aed2095b56d1d21028a1b  bfd/coff-m68k.c
+aa6d52e59ff7525011ec7ae374bae793  bfd/cpu-m9s12xg.c
+d917b9d1e31e3ce833fef6ff75103739  bfd/sysdep.h
+d17ae1eb9024b166d75b8666c2904265  bfd/coff-tic30.c
 663a6979bd331c91d1385445edeca7b0  bfd/go32stub.h
-ba023a1526c013ead20c828f65d01d2a  bfd/cpu-z8k.c
-2b41cbfc8f7a3bed35c6b27b892f259e  bfd/reloc16.c
-24fbc5dd24f5a13db113ff123f8e468e  bfd/ecoffswap.h
-68f41873fa1943312dfaac1cdf989223  bfd/elf32-fr30.c
-5c564b92dbe08e45f5875d1bc7515135  bfd/cpu-v850_rh850.c
-8afd19b17f5ed9b18a35828db2ee11cd  bfd/elf-m10200.c
-4fc41541e0ed0c0c09dce897cb91713d  bfd/pdp11.c
-51e5ade7a16c8b3d5e4a28fce9b3f67e  bfd/cpu-ns32k.c
-4484b4cece726472e14250e4912192aa  bfd/pei-i386.c
-e52e3aaccee9c9237f0a2f4e1c6464ac  bfd/elfcode.h
-de6a081544916abdd9f434cc56d1300b  bfd/aoutx.h
-f3f3ac2ccbf079a00b01bfd6cecf36c8  bfd/elf32-sh-relocs.h
-96edc86316a9a53c743e1b393def1eac  bfd/aout-arm.c
-e57181daf834e4987987b65eda44ac1d  bfd/libnlm.h
-82e9b45cd5ab584411f93fea9abbb531  bfd/mipsbsd.c
-edc31a80008c5bc45a60d468d8f20335  bfd/elfxx-riscv.c
-5313abc1e20a5c3b407ee865512d1e11  bfd/mach-o-aarch64.c
-717051988fd364657a32f82f4a83da36  ChangeLog
+8b77b069c7d66b87d00192c6a15f0ef2  bfd/cpu-z8k.c
+2141bb1974b3f56405c9e956759842ef  bfd/reloc16.c
+438967f8a2f74e28e525150a57e07a94  bfd/ecoffswap.h
+7efeb7d8f8a91370d89b85c98d5fe442  bfd/elf32-fr30.c
+26be7254dcf94c154158e75a6e9f810a  bfd/cpu-v850_rh850.c
+3d32373710beeb210faada2c99e1df5a  bfd/elf-m10200.c
+e4a7cacc51a924a7e7f537a2c7f42efe  bfd/pdp11.c
+d369e57a445e6c5a03f36ecd61cd4e49  bfd/cpu-ns32k.c
+5145da11b39d6ed0608b5acc8078f6c0  bfd/pei-i386.c
+59aa67636680ac310109e1cb6b66d89a  bfd/elfcode.h
+bb538b232d099ce4c7416793eadee724  bfd/aoutx.h
+8856134fa41585bf6b2ed8b2cbe748c0  bfd/elf32-sh-relocs.h
+2d5ca6c489de96ba9fd8a4b0ffbfdffa  bfd/aout-arm.c
+a5d7bbc287aed0d3f96ffe0a0e50b059  bfd/libnlm.h
+233ffd56ab1a69546de4ac0e588dea0c  bfd/mipsbsd.c
+bb71805ce866f34546998eb4814b92e3  bfd/elfxx-riscv.c
+9ecb262d9ec6c688e145d9037d4e4df8  bfd/mach-o-aarch64.c
+6d97143ac07bcc853a50aa72d17a2cad  ChangeLog
 500b9244caa7a7ab23ece1db37efa76d  compile
 042203b305962ba9a8f8474ef80edeee  config/enable.m4
 59cd496f4a563976899ad5000e8f7177  config/acx.m4
@@ -683,8 +689,8 @@ cf57356be01ed77a1ab9e251e49bed41  config
 13c05c133b00fcf862ea7d785d44cb4f  config-ml.in
 040359150cf11493f973a46d8a25b06b  config.rpath
 b496872ad09d1c4d105b85497636553e  config.sub
-d65c0eb5fbc1733ee2ed585af6c60356  configure
-6dcb44fa230896845c26fbdc06f1ffbf  configure.ac
+ea92091bbbf4e7d61047cd94bf8c2d19  configure
+f46c2ca0b8d918e9fce55475b1f4ad6f  configure.ac
 59530bdf33659b29e73d4adb9f9f6552  COPYING
 d32239bcb673463ab874e80d47fae504  COPYING3
 6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
@@ -740,3479 +746,3547 @@ e28d4c4ced67f70f91462403eb823e08  cpu/me
 d534cf9b6b4a7e68f003dcf5d9174cb8  cpu/mep.cpu
 8b59f0d0a2dcdced14765c514fbad719  depcomp
 eaac0cdd8ac2b8c31194798a65896321  etc/Makefile.in
-df32ab7c540e0f1586356ee72bbf431f  etc/texi2pod.pl
+4e461d83c2a7ae79bb670e4760c87d03  etc/texi2pod.pl
 3730d24b1dbe4961124dc2288b6997fc  etc/configure
-ff6c3facdd8971a7f9ca86205e9db283  etc/ChangeLog
+0fba3ff1240d2087379465acac4f0bad  etc/ChangeLog
 04c402a3f17c2e0e5d13e424d617e88a  etc/configure.in
-17f5a8a65b46bf60861838fabe037c24  gdb/xtensa-xtregs.c
-83119321f80eb1413ae6dd27494c85fd  gdb/config/ia64/linux.mh
-ee902b4bd2ddf39ab2fce5b78d854483  gdb/config/aarch64/linux.mh
-ea4a082d5c9f24454e769a34a9ccb2c3  gdb/config/sh/nbsd.mh
-3f69abcb2af6f2be91c76dc573dce7e1  gdb/config/m88k/obsd.mh
-a570885697a4b0859c94c02556f0e476  gdb/config/mips/fbsd.mh
-50f4c96d9b267802441ee240b71f3a46  gdb/config/mips/nbsd.mh
-a385ee155848be031aa5889ad8266108  gdb/config/mips/linux.mh
-248c33611533cee0e4b472598dc15cc6  gdb/config/mips/obsd64.mh
-c20cf6efb62c4ddb8f2da375035d258b  gdb/config/s390/linux.mh
-fe6c69c7db4f4ed9c13bb7a65932ce3c  gdb/config/xtensa/linux.mh
-b8a669bc8181f7eaea719fe340de28e4  gdb/config/m68k/obsd.mh
-6bdbc60a7c5d88154b407d9374b75268  gdb/config/m68k/nbsdelf.mh
-ba42b2c28741714f1ea4784d55868a39  gdb/config/m68k/linux.mh
-6475a9db32c352c8a9fa008cf6cc8c08  gdb/config/pa/obsd.mh
-41272f5140219a7e59305e5e8ea7d809  gdb/config/pa/nbsd.mh
-a2ff156ed5f391df4579bf3695066bad  gdb/config/pa/linux.mh
-9156b3a63c6d6939e1e687171964ecf8  gdb/config/tilegx/linux.mh
-aad230257a614ada353f32bc352739a3  gdb/config/nm-nto.h
-01bb35468f1e2fda93bdbdfaadc50f6d  gdb/config/powerpc/obsd.mh
-a7cd77b6bf01b264dbedbb0a79c828bf  gdb/config/powerpc/aix.mh
-57d79961ccc8a46cd8e9ffa3ef7c8ea4  gdb/config/powerpc/fbsd.mh
-cd263141cdaf95619b6e32c5127d6098  gdb/config/powerpc/spu-linux.mh
-a8c63985b49b3e640a7bf60ce56c7f7c  gdb/config/powerpc/nbsd.mh
-cf2faa1be9872cb08830c729598c2e30  gdb/config/powerpc/ppc64-linux.mh
-d9464f9d2a0b8ea972d1b90b5e53ae6b  gdb/config/powerpc/linux.mh
-21bdfdb7f1e803abe94c16d5ecbc4d87  gdb/config/sparc/fbsd.mh
-6b009885d50913edca44d88efe5e85ec  gdb/config/sparc/nbsdelf.mh
-83ff18baecfb6d10b95b6908f3b256af  gdb/config/sparc/nbsd64.mh
-f196ec6095e879012f1526072722f187  gdb/config/sparc/linux64.mh
-4a88884ba2f75bb70ec2883546f25c82  gdb/config/sparc/nm-sol2.h
-7c7dfb79d34a29995e220517aa088358  gdb/config/sparc/linux.mh
-d6a1e73d23eb980a5340fa701fdc1deb  gdb/config/sparc/obsd64.mh
-1c24044c37c365045d35d5ae402d8eb0  gdb/config/sparc/sol2.mh
-f24ea1dc11b831297d3f3fca04d7b5f6  gdb/config/m32r/linux.mh
+81dbb62f1196a729d294804e9b3df585  gdb/xtensa-xtregs.c
+c71a206eaa99bff794d21a09e50d11c6  gdb/config/nm-nto.h
+ed0817fde5a85becf8e6568fc9461b6c  gdb/config/sparc/nm-sol2.h
 6f77e81e9901631d875f51e72983e548  gdb/config/djgpp/README
-c8d5890bf69762b96c506a876a420178  gdb/config/djgpp/langinfo.h
-a6a7d4488346dc99d1b624809c32f406  gdb/config/djgpp/fnchange.lst
+e05cd06d1db0f59edac4a12e7298b51a  gdb/config/djgpp/langinfo.h
+053a919d7e8e538a419b86d4e5f0ccdc  gdb/config/djgpp/fnchange.lst
 cdc11406d9e6e5c91f7643088983ff30  gdb/config/djgpp/config.sed
-058b0c836e22f180a7166e7558b9aa1f  gdb/config/djgpp/nl_types.h
-f501bfbde440d496f960d13547ca1720  gdb/config/djgpp/djcheck.sh
-192837161add4bbafd41529c1109e584  gdb/config/djgpp/djconfig.sh
-689e503fb904695438588b9749fc8b63  gdb/config/alpha/alpha-linux.mh
-1081ead322ab8fb4a5790d18ac9c90e4  gdb/config/alpha/nbsd.mh
-fac928afaa913b51b7c41047ce8a283a  gdb/config/nm-linux.h
-e807c708ca81e37cf2cc810720ed5ebe  gdb/config/arm/nbsdelf.mh
-1afc971699caee7eabc8656e0b572d68  gdb/config/arm/linux.mh
-5e927b3dac5b73e01c7e6dcbaf26aa9e  gdb/config/i386/obsd.mh
-481617b41ab357869b8fc83f5457ec2f  gdb/config/i386/nm-i386gnu.h
-d4bcef71c24f8d26c2362384507c66e2  gdb/config/i386/i386gnu.mh
-768aafd492586f1951ce658073749015  gdb/config/i386/nto.mh
-ab598c6b4b5e2d83a754782e415958d9  gdb/config/i386/mingw.mh
-4bcdac69aa29e1ded51b3f88d52448a5  gdb/config/i386/fbsd.mh
-ab944b1e7cf6235259078e7bd5f85fb1  gdb/config/i386/nbsdelf.mh
-fba29f8eef3f044c3071e47cb6b890b0  gdb/config/i386/cygwin64.mh
-85b80a897b3e092846cf928634166ca1  gdb/config/i386/darwin.mh
-ab598c6b4b5e2d83a754782e415958d9  gdb/config/i386/cygwin.mh
-370215444d1d2bdcfcc691454413d4c0  gdb/config/i386/nm-fbsd.h
-ee742f60cfe73ea0329c48e85768155c  gdb/config/i386/i386sol2.mh
-c76f2a4e228c39b70cf1f9a61401ec84  gdb/config/i386/sol2-64.mh
-b3723902d7458e8fa11b6fb326db27e9  gdb/config/i386/fbsd64.mh
-e1b4317526f6ead6d4d0aed1c7bf4ed6  gdb/config/i386/nbsd64.mh
-765be8f672fc174fa5e42035608eb18b  gdb/config/i386/linux64.mh
-529d4566f7bb09b10f64635e5e50e90c  gdb/config/i386/linux.mh
-f3d81927270e9271ff8559c22d269b2b  gdb/config/i386/go32.mh
-11c5392f8e5a4f6ea98230b2a2b9d00e  gdb/config/i386/obsd64.mh
-8b54be90e421a7e7ed1aff59b0f147f9  gdb/config/i386/mingw64.mh
-32b40798d09340de01b8e7562d83f87c  gdb/config/vax/obsd.mh
-ad38822e882731a7651d0edd3a209db6  gdb/config/vax/nbsdelf.mh
-c38c62976dca829bb1412055efde7b64  gdb/regset.h
-f8e5f02150deac6951e954b459266bf9  gdb/event-loop.c
-b11f48675120cc5c468269a104432742  gdb/solist.h
-f1c6b8b5f7b4fefe8e119ee03f3000dc  gdb/d-exp.y
-a0d5597047ff2bb6f8f881f033294e80  gdb/ada-varobj.c
-15449c68cbf4129b3935d8ef8fd98d3c  gdb/ser-event.h
-b02cd3cebbfade8af3b0a36c8e42dbd9  gdb/i386-nbsd-nat.c
-b0f6655b17434db26a049c3a63aa8b9b  gdb/common/valid-expr.h
-f962bd6f1f03f1706e1fe9776bb2bd59  gdb/common/environ.c
-4afaa68a873acc4341442d77e53df20b  gdb/common/common-debug.h
-5613d8ac0beaa11a56d67ca8c23e8915  gdb/common/common-defs.h
-2c4efdc044021ebed068c6689551a529  gdb/common/buffer.c
-d252554e83a639066a42feea2de29cfc  gdb/common/gdb_locale.h
-4f160924ee48ac93f9d65d22d311e297  gdb/common/filestuff.h
-ca079a9891a0587f7bd4b14a43f3b672  gdb/common/common-regcache.c
-99a42cf638fdeafe977fd00967e5eb8e  gdb/common/agent.c
-9d46440e14ace16e6a03f025c7ae584c  gdb/common/version.h
-cb18d48f74f0460be28f0ccaa0c3ac3b  gdb/common/common-exceptions.c
-52ceafc795eda191daf66bcdbc8a052b  gdb/common/btrace-common.c
-01b7f7dca027934301be144b1018f6cf  gdb/common/gdb_wait.h
-1083c9e3fda3a7f283f903543b05b7ce  gdb/common/cleanups.c
-1ab346b110facaf6ca9b7622d1f6424c  gdb/common/function-view.h
-16226f005663018bd7cd7cef778d5428  gdb/common/signals-state-save-restore.h
-0a00aa8ef377dce483970f816fe1edf6  gdb/common/agent.h
-ceccdd7ee981295ac6fda3ae5de49729  gdb/common/common-utils.h
-9e26a1633e6a0224c5f057e3c0b6e15f  gdb/common/posix-strerror.c
-b892b9b7d812f7dcb83590f24cc6c91c  gdb/common/run-time-clock.h
-b9f39702fa15c0d0597611048e97e246  gdb/common/common.m4
-338495994cc2c4d74f55f9254872fbc1  gdb/common/gdb_unique_ptr.h
-7b47fdda9a5071e506992a1797cac200  gdb/common/signals.c
-556e7c7a2826f57e675fa0728b1b68b1  gdb/common/gdb_optional.h
-dbcb8bb25511b4875af6ea37f3c7a0a9  gdb/common/underlying.h
-16de00b74ba8755156b3dcbb88c6f058  gdb/common/common-debug.c
-0359ce2a76422ca6d9c7799bc5e84bd9  gdb/common/gdb_termios.h
-b286209463eede2e1b6f4bc71e160e96  gdb/common/gdb_sys_time.h
-95a2d1c0918a95ec69586d4991eeb476  gdb/common/gdb_setjmp.h
-307145107ce275629666a4947e71d3ed  gdb/common/host-defs.h
-85a78cee457d01851ce02b6b305ecf46  gdb/common/create-version.sh
-e68820ab1cf811be54e2f8475b61e332  gdb/common/vec.c
-0c49edcbc71f862857be5329bce0dfd7  gdb/common/environ.h
-719bdb8ba3ad3db96bcf3dcd108be6b1  gdb/common/filestuff.c
-02192acd530bf73a3ec3a10524af436a  gdb/common/vec.h
-ea666f388289c218794a5ca45c0f94c7  gdb/common/scoped_restore.h
-20b5567d821ecfe834635037847231b6  gdb/common/rsp-low.h
-1a62de7eb78b0f85d251e70809459ac0  gdb/common/common-utils.c
-7fbc337c2954836f0d81761d3b008b35  gdb/common/gdb_assert.h
-8b19e43da6a65a7c1cd435bc5b9a6a99  gdb/common/cleanups.h
-f91f1488c7a3b7325b4e093b1494a6b6  gdb/common/common-regcache.h
-00966b8a50f775dca30fb16e9742e9e4  gdb/common/queue.h
-f485897d6ec2d6cafbdc2f5a72bc97e4  gdb/common/x86-xstate.h
-57c479d199c3da623d75b949729bbe58  gdb/common/ax.def
-5b136992be38d47b14a166fea6e5805e  gdb/common/enum-flags.h
-41e23366dd7ea81e996b2bd24b420de2  gdb/common/fileio.h
-8656406de57d6737ba6da39f6a2adf80  gdb/common/traits.h
-cbc6b56d3e1b3fc42d8746ddbaa1db62  gdb/common/offset-type.h
-a0176bb61d2b37521e26df5fcc751bb8  gdb/common/ptid.c
-5e185853e3db05be55fa6e4075d6b8d3  gdb/common/gdb_unlinker.h
-efa586fc60eb825e45856850e99649de  gdb/common/new-op.c
-1c7823ade5ae150228ebe6d56e6a4a6d  gdb/common/btrace-common.h
-0d27998d2f034d64f9b19537b54a66cd  gdb/common/gdb_signals.h
-cf0a61475a51204f8e9582982b7fa680  gdb/common/gdb_ref_ptr.h
-9f14919eb0a07e9d4da8746394234a0d  gdb/common/preprocessor.h
-a16cb26d2b069c4c4e1c6adba1311ef5  gdb/common/break-common.h
-26cfe6537ac93630a331837587bc2c61  gdb/common/rsp-low.c
-61e7ef6b3d3f3f89de4905d6060ae620  gdb/common/format.h
-e71e4f122c38ab66079827ec52003ff8  gdb/common/xml-utils.h
-3dd7d4be673e5de406c0161fbd5871cc  gdb/common/buffer.h
-65360549de6aee8e7d58562d2d6cdbec  gdb/common/common-types.h
-00878da80f618767c5a8e2e20c911c06  gdb/common/gdb_vecs.c
-e227f92db22cd47046851c51993dfa45  gdb/common/fileio.c
-a9109e056a33fb27c6c4d4c214ce7a2e  gdb/common/ptid.h
-f8cd7fc9b418f09cf72a1202cd580757  gdb/common/symbol.h
-18e0e44d8f112eb582801b00ded40cde  gdb/common/print-utils.c
-1691e76be4afb81c5e4bbc349fe44961  gdb/common/mingw-strerror.c
-b904b61943b3c489fcb23a2392b3e3ae  gdb/common/common-exceptions.h
-310761d1ddb9d879b2ec755e5843f40a  gdb/common/print-utils.h
-f9a6b218662c3701070972149f808a42  gdb/common/xml-utils.c
-eebd3fcd9c373512517ca80306eaa8e4  gdb/common/errors.h
-dc8ba535da4babe5ad72c96fc5c65b7f  gdb/common/common.host
-d2b8dd4804962a25fddbe8b3f3409bed  gdb/common/format.c
-57848e077b4f622d0dccd2802bd5e356  gdb/common/run-time-clock.c
-f5e6489c9461e386561859a7b8e76375  gdb/common/errors.c
-b7cdce8357981c89d84bafc590028c2d  gdb/common/gdb_vecs.h
-23dbc4290dd43167797d37d536559b7e  gdb/common/signals-state-save-restore.c
-0f8a7a0f6abe16d7a04f83364f11c4c0  gdb/ppc-linux-nat.c
-4d0da385f6108aa464ac4b37e2054a37  gdb/charset-list.h
-427f764108f9ea2eb8baa8f91feba021  gdb/m2-lang.c
-0d812fff85a5c78de7109462feef2877  gdb/corelow.c
-91c5ad0bc6d8ced8e3b65d0ce2ec92f6  gdb/ppc-linux-tdep.h
-00bf9198aebc5e48541d7800cf7fdd99  gdb/dwarf2-frame-tailcall.h
+1e5223e48cc52d5aa19f7d87238df514  gdb/config/djgpp/nl_types.h
+b9aa3ad5d2d99e8b4f83586b5c4af34e  gdb/config/djgpp/djcheck.sh
+688882737377d1fdf068c6915496461f  gdb/config/djgpp/djconfig.sh
+c0fe04a0d1b056f6a725b9bf9da5a4f2  gdb/config/nm-linux.h
+0997eda236348413dba570868b5c83b0  gdb/config/i386/nm-i386gnu.h
+30492c373724f4f08197599268732b67  gdb/config/i386/i386gnu.mn
+11b574f5be5d6756217eb2854c3878c7  gdb/config/i386/nm-fbsd.h
+7183e8083ec0ef90017a39b06ad1e5d9  gdb/regset.h
+f99b3c808ea91b518f946c9896a8c6a6  gdb/event-loop.c
+1dc74a5308259d2139a0f3db3b6a3549  gdb/solist.h
+505bbe70742df104ea0a1e305f0aef0e  gdb/d-exp.y
+0d3636c91d327b2eeced080c60deaa68  gdb/ada-varobj.c
+285060cf0aa5250a2e0ed766765071c7  gdb/ser-event.h
+0ce5bb685fffa4fb7bb3232ce627a952  gdb/i386-nbsd-nat.c
+c43f72b3d8fe6da4f9e2f1d8e7be8473  gdb/common/valid-expr.h
+4bd18623ffc94f43e18bdd4a2d35f04a  gdb/common/environ.c
+d5badca4fff3948a928d5d26a5196276  gdb/common/common-debug.h
+ec21d2322a9699caac9563352cc2c850  gdb/common/common-defs.h
+64859a1a5cce6532c9a88d16bb4d9467  gdb/common/buffer.c
+cbcdad8cda75cf4a96f99dc4b9404817  gdb/common/gdb_locale.h
+a45e1c3baa4adece9d0057c9857426b1  gdb/common/filestuff.h
+b325916e8f00e4b4b7eb018663f74d62  gdb/common/common-regcache.c
+f28d9a39c0d72407b857372ad6691747  gdb/common/agent.c
+f4fb047182b4cd25941288fca512f6fe  gdb/common/version.h
+8b97935a7c43dc5cd0d09f41d3280513  gdb/common/refcounted-object.h
+d4737d2a0d50bce0dc129d9dfa913426  gdb/common/common-exceptions.c
+bd83d41bcc405ababe20621771c09cc8  gdb/common/btrace-common.c
+f9d49e11e186c108d79a057e10f07b03  gdb/common/gdb_wait.h
+418c50a852c136eceac3a3038e408de5  gdb/common/cleanups.c
+aee9f83b8a2dc3fa494a89f2af23eee8  gdb/common/function-view.h
+e7b52ad382aa105baefc6974f823ad17  gdb/common/signals-state-save-restore.h
+cd24a67d77d64d98316b230cf9f9f153  gdb/common/agent.h
+b276d225da7448c5b774feee23c9ba78  gdb/common/common-utils.h
+b04cf368ec6f4f9dcbdeb74343f09520  gdb/common/posix-strerror.c
+d745e5fee16dda24aff8bcc36a52e257  gdb/common/poison.h
+6aef8336c2ee480005ed5adbe91543c1  gdb/common/run-time-clock.h
+1b2f0ca378dafa7f5dd928459378a493  gdb/common/common.m4
+1edbea77b9a568640eeb0d61c89d109d  gdb/common/gdb_unique_ptr.h
+9780f6859261f3b87d63372a4f4a4c1d  gdb/common/signals.c
+aa7cb9bd360404fd88b2dd0b7d25c826  gdb/common/gdb_tilde_expand.h
+1b6fe5c1d4c07040ec8945c0d5dbc35d  gdb/common/gdb_optional.h
+f02cdd42d6b564efa40f0e67d2ed97d5  gdb/common/common-inferior.h
+c8f14b162cf873bee216a4d679b63ded  gdb/common/underlying.h
+2c76184c4a9889f1e8f8927929cf5ace  gdb/common/common-debug.c
+9bfa78b793b65ffea6c4d98194fd695d  gdb/common/selftest.h
+88ebbf5e1a31973595d1c639ce9c3610  gdb/common/common-gdbthread.h
+5d00f7eca48cd68b87bbc51f3b373d3f  gdb/common/gdb_sys_time.h
+99729260c30befe442445e77742947fd  gdb/common/gdb_setjmp.h
+f568c8ca48081040f301136f76acf2c6  gdb/common/host-defs.h
+c9f84fc1a664888f70438ec567a9d31f  gdb/common/create-version.sh
+c76e383f49cb264574f696c47069e939  gdb/common/vec.c
+af634d07fa0d832100db096a3701061e  gdb/common/environ.h
+7027643c5beba73daaa5afbb3a4f76ae  gdb/common/filestuff.c
+110db00ee1ce4f997fe29e37c81f4e12  gdb/common/vec.h
+694b46af700cf52db4b89aa36fdf94c8  gdb/common/job-control.c
+2435955e2c4e26dc3b08ff954409f5c1  gdb/common/scoped_restore.h
+70bf62d70a9f92c549984428486f748d  gdb/common/rsp-low.h
+479257d38bc3c9758a4ebc18d9d34fb7  gdb/common/common-utils.c
+7a1d039c9585de70974eb889050775c0  gdb/common/gdb_assert.h
+b76c4fbbb9164060ac46ff340f66149c  gdb/common/gdb_tilde_expand.c
+9365dde1aca4d2a0d9dfde66b89da81a  gdb/common/cleanups.h
+eda8aa85f60478566588939354abb18d  gdb/common/common-regcache.h
+ae01f0793b5d5d2fcc32b3016de5bdd2  gdb/common/queue.h
+d355aed5636ca8a6f26bde4da3764b1a  gdb/common/x86-xstate.h
+5deecfd64b0c0acfa3aa3b0067ac7345  gdb/common/ax.def
+99523a1721ccc5cf918304401a1d0319  gdb/common/enum-flags.h
+b13824e6454453a0dc8b28e63b3b0306  gdb/common/def-vector.h
+66f474a37c813c57900959544690b528  gdb/common/fileio.h
+09017a9e10f793361affba11fb0fcac5  gdb/common/traits.h
+73d78a383e011eb53e1ee11befd2f1ec  gdb/common/offset-type.h
+e8764d17d2adeae9ed4cfb867637a104  gdb/common/ptid.c
+0547c98d3d549a2a943aec86fe21b215  gdb/common/gdb_unlinker.h
+1f2835c1c824d4af9e1dd492fe59770f  gdb/common/default-init-alloc.h
+a7a74f96d9d2d12adefe114a814c2144  gdb/common/new-op.c
+4096e55c445f919a18ef27d3660d3981  gdb/common/btrace-common.h
+3158f4e17512747e06fe4c9bef66ae1d  gdb/common/gdb_signals.h
+5d461ecbed6a2f627908d494c13a06a3  gdb/common/gdb_ref_ptr.h
+5cf92dc88ba16342f94afc3833ca0cd9  gdb/common/preprocessor.h
+920eb001457d87e80a709dbaafcbe6e6  gdb/common/break-common.h
+b68e6441bd6921dc64d23e736b098695  gdb/common/rsp-low.c
+a3b3ca11f74a78f401cc42bc356ef0fb  gdb/common/format.h
+32149f221b042ea006d36c9ae772cad3  gdb/common/array-view.h
+dabd6cd70191f4a1d4a84c55f02aaff7  gdb/common/selftest.c
+39c619612cf075a4d7c35f25dd825e1a  gdb/common/xml-utils.h
+76c870c1063764494db36489797faa58  gdb/common/buffer.h
+904264441205f6241f4b114376f1704e  gdb/common/common-types.h
+8b12bd6f56ae1cfb4a6c6d6219d51ad9  gdb/common/gdb_vecs.c
+1a0af381b0910049ee1fdbc34a9a7821  gdb/common/gdb_splay_tree.h
+f78406b069054823cc67fe0cac6e4795  gdb/common/fileio.c
+bece24c33cc275d0325fb2c8139fca75  gdb/common/ptid.h
+6b01c7940efce874abf2c4e6eeaa6dab  gdb/common/symbol.h
+b44db4438511706fc14dc9a4dae26a5e  gdb/common/print-utils.c
+f9db0f723f0c967f95f78709b1df21a4  gdb/common/mingw-strerror.c
+c4e37f6334d0e651fc6128275edf04a8  gdb/common/job-control.h
+a4f270384afb32a77bb1727a5f34723b  gdb/common/common-exceptions.h
+9e551d22ad3342cb715b348bd4897b84  gdb/common/print-utils.h
+67f637324674aa672f563e0030e88134  gdb/common/xml-utils.c
+d77e240f62e516e7cac5bdb90f642d64  gdb/common/hash_enum.h
+899fceb5ae6f681517eaf357d58bd4a2  gdb/common/errors.h
+3a6b85c1e1790723d85c8f75050cd9c6  gdb/common/common.host
+de546378ca4e97845a2ec53e2ea97d51  gdb/common/format.c
+b8d10a9679c7547f2209c05048dd9f8c  gdb/common/diagnostics.h
+49205b7d4ffa9c751ad93eeccd761cb9  gdb/common/run-time-clock.c
+378081b744638790d38616fb282d92de  gdb/common/errors.c
+2862ba517d93f4a339e44da0fced2cc9  gdb/common/gdb_vecs.h
+e3f1280dbd10a219bdf3c933c5b28d9b  gdb/common/byte-vector.h
+37dc0c143320e338f3083d5eeac9eecf  gdb/common/signals-state-save-restore.c
+1fa3f757934d802fd6423dec5ed00da5  gdb/ppc-linux-nat.c
+fc013c828e009a1b9fcef0a67b6b1ac6  gdb/charset-list.h
+0b709d2785fb9c5db55f0db939774474  gdb/m2-lang.c
+fbac6bdf96d9d720f0f0660a63ef272e  gdb/target-float.h
+3845451f15f03187faf1829dd22cd390  gdb/corelow.c
+9a4f4ea59cb3104a716148e511c840ce  gdb/ppc-linux-tdep.h
+f1fd2a67bfe8cb48f813d8b7d6d2bcca  gdb/dwarf2-frame-tailcall.h
 349b188907736d3ac349e30e509f4e37  gdb/ChangeLog-1996
-2cb17a2529f0ddd4b328e57e7690e4ab  gdb/dwarf2-frame-tailcall.c
-4a002fdbf53dc2dbbed3d3f47fb2e626  gdb/stub-termcap.c
-f6a1e13dfb7cc40fcdb81d2f01ce5cdc  gdb/mips-nbsd-tdep.c
-80d9038c12eb277312f86c59d56f5103  gdb/ppc-ravenscar-thread.h
-9d427f33214f6c5b5a4449a6724eb07a  gdb/memrange.h
-5c615eea6215930668dd609880519f21  gdb/solib-svr4.c
+f02de2ae610b2fbe79f8dfca1851bb6e  gdb/dwarf2-frame-tailcall.c
+cbc25577aba1ee853c06e99de5129282  gdb/stub-termcap.c
+b1168f43ae74617e89cfc95a12bf972b  gdb/mips-nbsd-tdep.c
+f4a41b8305fa66a8a603f95c24c0cd5e  gdb/ppc-ravenscar-thread.h
+a029d376a5e0903d22341c92472413fc  gdb/memrange.h
+4181cf1df3878bf7411e5f08529d2c7a  gdb/solib-svr4.c
 fd601b5312a3f82c5f513f8788d83e9e  gdb/ChangeLog-2013
-aa0deeebc3e6b8f291d1cd68ea438a00  gdb/f-exp.c
-4749c3228744832c94200a1520562770  gdb/remote.h
-ed6c465ea119f0ae7ce724ecfb87d8e4  gdb/gdb_regex.h
-dbe7b7ba22f67ecbcf07592147830798  gdb/defs.h
+e0f21db4db2eda6b7397a2c96ae6e170  gdb/f-exp.c
+56b3ae01e27305daba36d078d244c46c  gdb/remote.h
+a12ad5a8cda76312f8a49c5144bf29a3  gdb/gdb_regex.h
+7d828e87242c136b423acf932d26cf2d  gdb/defs.h
 e5e589fe4f10abb8957a8c2e4cddb7f8  gdb/ChangeLog-1995
-e35445f3239cdd6f67b567f576fdb09f  gdb/solib-target.h
-328bfaabfeb5bedcda1aed36c1e5bdf6  gdb/mn10300-tdep.c
-8f3270d2aa44c135f96f49d468a43f6d  gdb/alpha-bsd-nat.c
-e99fa27573d70bdbffa64eb788752f27  gdb/cp-name-parser.c
-5274172faacbd8dd4ae3ac3b93d8eb81  gdb/microblaze-tdep.h
-7d7fafd6d3d05fa4687d612eb38ecfaa  gdb/namespace.c
-e70fd2263fab5b94be56066b297bec7d  gdb/exec.c
-9f9c670e96c1cb4b206978dbe4e9742d  gdb/prologue-value.c
+12bfb8b6a396692ddcd83315f57dddc4  gdb/solib-target.h
+b5c780d3affd4c3aa46c4429197fc5a0  gdb/mn10300-tdep.c
+f73b8d3ae5af430719127d604aa27adf  gdb/alpha-bsd-nat.c
+5de2ff99aa3b83471e0e17f8c7c6ecdd  gdb/cp-name-parser.c
+cc2af9f83f2c1147e3afe24fa7113abb  gdb/microblaze-tdep.h
+177db2f42ccf73c277380213a92d80ff  gdb/namespace.c
+4401d33f52ad71f0b018e6057917473b  gdb/exec.c
+040ec314275eb0c501d7e1ad70761bd1  gdb/prologue-value.c
 614ebd7777b2b4b0f4aeda9f4406b1d4  gdb/ChangeLog-2011
 c923fbcaa47240f82d7ef756c59c87ba  gdb/ChangeLog-2001
-8e4af1b87c6d246a2e9a0d4aa7d5f765  gdb/frame.c
-639415864529003b65b8dcb0528d4667  gdb/i386-bsd-nat.h
+5583281d06f2306eb70a010be2699ffb  gdb/frame.c
+0a1eb202a0e2a182afe544343b504a4e  gdb/i386-bsd-nat.h
 872be449ea0ede048ac193747d131870  gdb/ChangeLog-2002
-6a94079d24b249369ce9270fed4c9a85  gdb/maint.h
-b2dca955dbdc24adbbc792f7fda5874b  gdb/microblaze-linux-tdep.c
-cdf286ba6911951b27506974bfda7cd3  gdb/unwind_stop_reasons.def
-065f8aeaa8678ba0d070fff06b99c00f  gdb/bcache.h
-019549986fbd9035d2d6c76e30cc3c48  gdb/objfile-flags.h
-719634565f298357ea510bbbcc5bcacb  gdb/contrib/exsummary.py
-913591eda3dac6de4d6673cabf031362  gdb/contrib/expect-read1.c
-eac5efb914549be3b6051cb16ecfa689  gdb/contrib/ari/gdb_ari.sh
-7b234ceebefe518a9b94ae81c782a834  gdb/contrib/ari/update-web-ari.sh
-ec13b71b6025a6aaeaa5bd8fece913fb  gdb/contrib/ari/gdb_find.sh
-6d36e22619184346927d2d4f6e733bda  gdb/contrib/ari/create-web-ari-in-src.sh
-899a9db5bc843c69095f95f7848a7557  gdb/contrib/expect-read1.sh
-8ecf06b906ca1adf0ba8144b93854f5a  gdb/contrib/gcc-with-excheck
-334d5606096ff8570862310b095dde31  gdb/contrib/cleanup_check.py
-b3ea00697794825a68d060b05e24562c  gdb/contrib/cc-with-tweaks.sh
-b4689c02fd9db9f873f46eb98817636f  gdb/contrib/excheck.py
-2f5c2a2d94fc4070f68efe637135ff52  gdb/contrib/test_pubnames_and_indexes.py
-97f22727c0dafe53d3929b06d85be040  gdb/contrib/gdb-add-index.sh
-d9bcd8b55cdddb7b30b7730e02f6e209  gdb/amd64-obsd-nat.c
-71ca08c0842603aebdb79952000a5e65  gdb/aarch32-linux-nat.c
-2257f39b2cfb9f429e5a939710460a23  gdb/tramp-frame.h
-3fd37f3ecb4ea4e8bfbc679dcaaee0da  gdb/utils-selftests.c
-c71ae899a7ffe832abd1388c71724960  gdb/gdb-demangle.h
-f3171ea1d53584a46e9faac11dea413f  gdb/ravenscar-thread.c
-76a11216ac27a786c200c640bf8967af  gdb/Makefile.in
-6c42eb15f39ae9eed72208ab1d9a5e0b  gdb/btrace.h
-9dbe8040cc2d81aec7c6193913d6e5a2  gdb/x86-bsd-nat.c
-11696c987e8887e60b06bd473a431df0  gdb/windows-nat.h
-7a20b8d157475953c7b6730e3c3b2322  gdb/sparc64-linux-tdep.c
-fc5f987270bf4108d07a4e280f8260ac  gdb/gdbtypes.h
-2179b1e9e53450a1dfb0b4459f95df8b  gdb/sim-regno.h
-239e6f4d29e7c5f032e7d8bee08f5b47  gdb/mips64-obsd-tdep.c
-e6bded19c876b842ceb0b53235e0785c  gdb/ia64-libunwind-tdep.c
-0cc05ced282075a26a110ee6201a3b86  gdb/rs6000-aix-tdep.c
-a5f74d73b3fb7fa96601170edc0274bd  gdb/macrotab.c
-5a6b54ba9052c8fbc2661c020253434c  gdb/rust-lang.h
-c683817901137aaa04cf982f4f7fc194  gdb/agent.c
+51ad127ea731687074fc15bfc2b3681b  gdb/maint.h
+77494abcb5aeeb8d23f81cf24a08403b  gdb/microblaze-linux-tdep.c
+4331c9190156bb0762446474a30a6961  gdb/unwind_stop_reasons.def
+5fabaf0015c3dbdeb35286adc1c26d97  gdb/bcache.h
+951a576fc7881432b047fc128252312d  gdb/objfile-flags.h
+118e1b6702053f692e744188c933f514  gdb/contrib/exsummary.py
+2f4994f4aa9cb4ce17828f0e6b50a804  gdb/contrib/expect-read1.c
+1bfa453d85fec02ee2efea13aa5ef3df  gdb/contrib/ari/gdb_ari.sh
+669166e4bcccda1e834c3838a2594c87  gdb/contrib/ari/update-web-ari.sh
+2cf02385f6239e512395bd478b411927  gdb/contrib/ari/gdb_find.sh
+cf838b7274e45e5ddd061eb5275dfa7d  gdb/contrib/ari/create-web-ari-in-src.sh
+01790fd3cf82e22e5f88b4cd2aafdba6  gdb/contrib/expect-read1.sh
+54c78ff2d7e302ffadbec3b7c85e51dd  gdb/contrib/gcc-with-excheck
+cbe868f98c009a024b0793520e048c19  gdb/contrib/cleanup_check.py
+fe7a265fe1a110a938728406831a11c9  gdb/contrib/cc-with-tweaks.sh
+4db7ea07afc375e9c64384f9de543514  gdb/contrib/excheck.py
+29c0f2d54b3e706d80141c0bb3cb1a04  gdb/contrib/test_pubnames_and_indexes.py
+82a420755eac70e0677295b2cbfc5f02  gdb/contrib/gdb-add-index.sh
+d175076601a0418564cb5421edc63d74  gdb/amd64-obsd-nat.c
+c8634871189f55647270ec7fa4186d33  gdb/aarch32-linux-nat.c
+7a24693a9e70d401363b977bb3aad669  gdb/filename-seen-cache.c
+dfaf3faacb3c08d5b9f075a8c3872332  gdb/tramp-frame.h
+833fae9ee313d70383e54396e0ac13fb  gdb/gdb-demangle.h
+72e714b5460e3305ab9ac696eb8bb9ba  gdb/ravenscar-thread.c
+33b6b2361bf751c1e4e3c0e2bc6feadc  gdb/Makefile.in
+b89adc8c08c6e65037e49d9f607af267  gdb/btrace.h
+efb1172636cf1622432d57f34a222dfd  gdb/x86-bsd-nat.c
+22eabee590bcd5b27bad582b23e713e6  gdb/windows-nat.h
+738c36e8dca443273c627a045b006f61  gdb/sparc64-linux-tdep.c
+7fc994e14a0b1e0e1b735c36ac953f60  gdb/gdbtypes.h
+8f7b6af0bb7ae022306a98cee59bc8df  gdb/sim-regno.h
+cf67b73da2135d04e58d2754fb859bb8  gdb/mips64-obsd-tdep.c
+9e673b7889adfb313cc7e751be6b20dd  gdb/ia64-libunwind-tdep.c
+79b509383a9d56ab4b3293b826fe87c5  gdb/rs6000-aix-tdep.c
+b5fdcd7a2ce4e8efa7c95a8ebc26360e  gdb/macrotab.c
+74f94bd53a3f946f73766edf92201310  gdb/rust-lang.h
+38ed8c7432245d73e84b735e9079e93d  gdb/agent.c
 526536cf30b137dcebfaaa604fa55615  gdb/ChangeLog-1994
-d777bbb1abd010d7d94e28de9efdb554  gdb/d-lang.c
-47fab680cb357a142d4029935e0dc113  gdb/linux-fork.c
-074d44b52176d850b0ed94ad929a96d7  gdb/m2-exp.y
-b9b15b13f9ec2287c1e32b3d3f19e453  gdb/f-lang.h
-47bb41c7eddedddaab1827c95ab638c5  gdb/hppa-obsd-nat.c
-a06a6cfd5c4f0610c01aa085c1ffcf86  gdb/amd64-nbsd-tdep.c
-0aa4ae2374e750b3358bbfd03bd8fc44  gdb/user-regs.c
-6bd14c24b1014a627d17508f32a179be  gdb/record-full.h
-03a2cd5ace99a9c624896055f2d77ae4  gdb/spu-tdep.c
-df12dd6e22bd622f98ca39adfacb0cd0  gdb/gdb.c
-453058915e17add88d8fcee3c0110bc4  gdb/linux-record.h
-0147e30bd6a756130f49062b8c4dadb7  gdb/disasm-selftests.c
-f3f8aec3524c2384cbb0498c6585b38f  gdb/solib.c
+63ddae0bc528344a95863effc9d4e4e9  gdb/d-lang.c
+26d15ea4339e27688ff8d98a6c24401c  gdb/linux-fork.c
+d1aa9d71552623dca494da2a9cb8305b  gdb/m2-exp.y
+6974dd11cefee0e2f063d3a893827df9  gdb/f-lang.h
+471e1dfbc453ca226345276b8ff201a2  gdb/hppa-obsd-nat.c
+174457b56fc072a2b1819b99219ac9a2  gdb/amd64-nbsd-tdep.c
+baa7fed0461e3ab98e53112478f8037d  gdb/user-regs.c
+2d5d2ddd3954c493edc2939a1d82499a  gdb/record-full.h
+c9db31b352139f522e802a4e15a57373  gdb/spu-tdep.c
+d0a0013f22b092ad0d486adf962e8ecb  gdb/gdb.c
+adfcfea54e5c452823da53fbf5a1bc53  gdb/linux-record.h
+328617c6d22146af0f5556af9eef0662  gdb/disasm-selftests.c
+a31854dd1e51719e4c30e5e5fdc38335  gdb/solib.c
 53cf114ff5719cd047da9d38dd318599  gdb/ChangeLog-2012
 42b9f7c51223e595f66c2210064be682  gdb/ChangeLog-1990
-f05bae58f2265375c4d9d4711042cd58  gdb/nto-procfs.c
-cc158f455eaad172c7ba402c8687038b  gdb/d-exp.c
-ec7fde6677cb6fc1c037d66b714c82dc  gdb/infcall.c
-f32bc940fa38ccca1aa053e6d6b32856  gdb/remote-fileio.h
-d7cf4e06bb9d67118fb90b79be2780cd  gdb/ft32-tdep.c
-e403554d66b72e34bb537ed579410b04  gdb/c-typeprint.c
-85e38957f9e51b67d074440d0977ffb4  gdb/xtensa-tdep.c
-13c95005765a3354bd4daa4b64ed88c9  gdb/top.c
-8d6d7ab3c20e3c7746713d8d5839a612  gdb/python/py-record-full.h
-ace2dbd8f22409678dade6e46db18262  gdb/python/py-cmd.c
-75f489991fb3c89455de1af3906725f6  gdb/python/py-infthread.c
-b4d62f78c8a75561931c86f75ad73646  gdb/python/py-continueevent.c
-cef8c6cfe8440c8bb057ac6ffdfb26e7  gdb/python/python-internal.h
-f11a8c261b9289c430b33d4f409eecb6  gdb/python/py-xmethods.c
-335b31712c3d167061385a9f7959bd66  gdb/python/py-objfile.c
-9dfd1afeca534cc041e82cebdd87effc  gdb/python/py-event.h
-a59b2deb2c6e649836eb1ff974d67827  gdb/python/py-frame.c
-eb8b0ddb92193ca8b1a1f86924e83904  gdb/python/py-record-full.c
+4431ce8152a3d10c4f2baec7ce046a19  gdb/nto-procfs.c
+469c8488559757eba4b5b4662a11a984  gdb/d-exp.c
+e0935768b1fb6848cc3369e8ff729ca2  gdb/infcall.c
+f5f54f267718cdc1efc83f9b5a248fff  gdb/remote-fileio.h
+d55d8f5321411df30854c5bdbc5d4347  gdb/ft32-tdep.c
+6df63cd070bafb2a36231b78b798b79d  gdb/c-typeprint.c
+617be5dacfa7667a969c5fda5d66c476  gdb/xtensa-tdep.c
+3de9e3501e76ef630d4111d2d8984c68  gdb/top.c
+922211a8a0648aa42ba42c339447ae32  gdb/python/py-record-full.h
+1965ddddbe137c77fa4b7c122ad2dbd1  gdb/python/py-cmd.c
+2cbab9a29fa43a865c1210161e6cd9fa  gdb/python/py-infthread.c
+76f787a796aadb61e53c24949e85d08b  gdb/python/py-continueevent.c
+bb80d6b9196cb0a22c7f77cddca1448e  gdb/python/py-all-events.def
+28587bdb3dfafc83623f732f7ff735a2  gdb/python/python-internal.h
+e204b74c318f8314ce4017109740b922  gdb/python/py-xmethods.c
+c017217596c0ae9ff3519d75af7b8ef5  gdb/python/py-objfile.c
+89a817f95eb1be8c7c7d8846800bd80b  gdb/python/py-event.h
+bb7e87f53f054ca7f9b6925c5231db33  gdb/python/py-event-types.def
+d7e75de86d964c5d969ce24daf16db4c  gdb/python/py-frame.c
+cd97570e0bc03201d1c30994222f9495  gdb/python/py-record-full.c
 3b23d7e4542a89c8993cfdead0c72ec4  gdb/python/python-config.py
-275ce6d96d0f83769a9059f337fc54a0  gdb/python/py-value.c
-f569c173ce4d0732f2a35a2c31114988  gdb/python/py-unwind.c
-bb7dbcf943bd06755a26e9d8ea6a4f0e  gdb/python/py-instruction.h
-2fc2145a2254a12c167e91f1f6b18a33  gdb/python/py-type.c
-feca7bf16ad10a6af4345854ba0cb930  gdb/python/py-evtregistry.c
-75b2aa5eb45569af557a4a6b5343f823  gdb/python/py-utils.c
-bd0a2f4191d0131c55faa04968f18115  gdb/python/py-linetable.c
-1def65e3f5300d53db4f4806f605aa6d  gdb/python/lib/gdb/prompt.py
-54040c06a4cc9108fb5c57026d884c54  gdb/python/lib/gdb/FrameDecorator.py
-321686b705d2da2d6006ed55e86de799  gdb/python/lib/gdb/command/unwinders.py
-233c165c8f5a2e6d7101512b0ff5dbe1  gdb/python/lib/gdb/command/type_printers.py
-1a6b1e0ccea1fcc326bb96ac79d54363  gdb/python/lib/gdb/command/prompt.py
-b9b57a1e73f3587c4d7fab730b7a00f1  gdb/python/lib/gdb/command/explore.py
-b1f5e4687a60e8f9a42e5629fca9d564  gdb/python/lib/gdb/command/pretty_printers.py
-41090de62890d4322b32d69d76acf3d4  gdb/python/lib/gdb/command/frame_filters.py
-5da4572b6005aac733c1a7332deb43f8  gdb/python/lib/gdb/command/xmethods.py
-449036f777c8ecfa2ba40261b46fb652  gdb/python/lib/gdb/command/__init__.py
-9e1a4f0e9d937203840738816fe6cf5c  gdb/python/lib/gdb/xmethod.py
-b35b582d0bde33d2b0572031a6190006  gdb/python/lib/gdb/FrameIterator.py
-03b12d26cb2810a08a455e3f502accc2  gdb/python/lib/gdb/frames.py
-2eeb1a83848b99bce7327e4025216edf  gdb/python/lib/gdb/types.py
-30eb26bbe188ad5b05fbec14fbde8068  gdb/python/lib/gdb/__init__.py
-1f82e6018f712e0e057324f4689f2e6d  gdb/python/lib/gdb/printer/bound_registers.py
-694a93798dcbe15a57f6d445f95c7605  gdb/python/lib/gdb/printer/__init__.py
-b7aeb59f71e7768b3fb6fe6344c420ec  gdb/python/lib/gdb/unwinder.py
-97ef7782fc471b00222105bf66d700a2  gdb/python/lib/gdb/function/as_string.py
-e92964ad609694e302c580f190720595  gdb/python/lib/gdb/function/caller_is.py
-9370fc5dc52dad9e64b3e784ce6d1a57  gdb/python/lib/gdb/function/__init__.py
-74a602219cf2fd7755f22d43c7439e0d  gdb/python/lib/gdb/function/strfns.py
-f167b6ae7bd5edfbc3af808edc77291b  gdb/python/lib/gdb/printing.py
-7d1b7939a52059b9023435c5ac86ec6d  gdb/python/python.c
-c58ce1ea4d44d071b02ae0fbb17704f1  gdb/python/py-inferior.c
-9e935c521700bd7ac8a40983c1ce8544  gdb/python/py-symbol.c
-a7030299e251929965a3bb3098007938  gdb/python/py-block.c
-131c34b979a160bcde96f8bbc4619dec  gdb/python/py-events.h
-ed9b9a5c2a44f2a855d67acfa0ae9603  gdb/python/py-ref.h
-250490fa8e9e603a0ef2275b2b4025f8  gdb/python/py-function.c
-bea90c5f527f1d43c7f2a2c6f1c3789b  gdb/python/py-record-btrace.h
-8640c20ee811e1676828c9772532731b  gdb/python/py-framefilter.c
-b4b87d11ff7e937b54e9cdaa289125a0  gdb/python/py-gdb-readline.c
-06910c1a3e1d34d3a1a097a56c77e1b6  gdb/python/py-record.c
-d456c99da44dccb4d9001bb7ba4b1860  gdb/python/py-stopevent.h
-8654bc96ee370deb155caeafdca280b9  gdb/python/py-event.c
-cc079b00242ef059ec497b9b0a8c30cd  gdb/python/py-symtab.c
-8379816c4a2d1b218b5306074ea89f7a  gdb/python/py-record-btrace.c
-38908560f8d0f73897d3712fe4f8fe77  gdb/python/py-stopevent.c
-b6807591ca8f78ac83ddff79554db24f  gdb/python/python.h
-6895c7ede316779fe17a1cde121ac99a  gdb/python/py-signalevent.c
-523c51bc7b44b27af8a0a5228c56fe5e  gdb/python/py-breakpoint.c
-6c828b9f4a1f99a3cc332a284215c681  gdb/python/py-newobjfileevent.c
-6519c52e1fe470c72e543d0f2a01008d  gdb/python/py-param.c
-3d8e227bdac9f32e459aaefa9757c62b  gdb/python/py-varobj.c
-3e1bc784a708fe54b2473fd65261f081  gdb/python/py-lazy-string.c
-c0e5fec5dd0a2e57c3ef00c940300aa5  gdb/python/py-record.h
-7bc9f8b499559c0972bdec31fba43992  gdb/python/py-exitedevent.c
-4b61595a0df7ad0c45d1e53c2d67ef9e  gdb/python/py-progspace.c
-46779646eff8bb612c3e361c7023cdee  gdb/python/py-instruction.c
-6ed852e3a4c90cc51912d93048b1c0d5  gdb/python/py-bpevent.c
-a6e76180534392713d7f7309384fd352  gdb/python/py-arch.c
-063afa5089aa6f69c849af10a6a7f123  gdb/python/py-infevents.c
-e0a0eefb2f1a1175a9deae27edbb606e  gdb/python/py-auto-load.c
-0125fdd9b7babd23d5f24c8754d013ea  gdb/python/py-threadevent.c
-a269e1dec4aaf13e1ea096ba8d219f12  gdb/python/py-finishbreakpoint.c
-f08b400f261a50d57cc001995c1fb8b2  gdb/python/py-prettyprint.c
-fbd73e57fe0cd6f25dcb796cb567742f  gdb/python/py-evts.c
-b406b8d4f437058117593b29bb465c14  gdb/target.h
-411866cf38917b81ea27e2134771d450  gdb/obsd-nat.h
-608f9b4e63ea770f769d896bdcd18230  gdb/frame-base.c
-4da29f3ba88dc728c57967330f6471b5  gdb/fork-child.c
-762d1a6f868d7c376f07b3c1ac0f20de  gdb/spu-multiarch.c
-7fbd8fe152d4c3419b108c82afeda7ea  gdb/observer.c
-6de140f1bfda7ed9c8b42b1214a1d1e2  gdb/ax-general.c
-2228882c9bdd0dcfa6c07831813c42b4  gdb/record.c
-f49b1f98a8af6aa3c91c204a8c05e264  gdb/ppc64-tdep.c
-8819ef46ed7d7d98152791d401ebbc7a  gdb/i386-gnu-nat.c
-24c3d0e446db200d422baf3e20f1f525  gdb/iq2000-tdep.c
-a4d781b84bbae84e197a05fff0f19eb5  gdb/ser-base.c
-dc9a1c63a723612babcba88d386a1e16  gdb/version.in
-e0cedbf44e33fb2e2d5c920bc4dcba25  gdb/linux-record.c
-0616d8fd2afb534fdff77949b84c17bf  gdb/sparc64-sol2-tdep.c
-3d5f9f9aaf5f6c9b54c40702a33b0059  gdb/amd64-nat.c
-8925f040f82ec9baa2445b3cf1c8cb96  gdb/ppc-ravenscar-thread.c
-9d31bb360ca26c1161ccd7fd54f991c9  gdb/symfile.c
-89e35aeab04e1869c3382a6038c937de  gdb/auxv.c
-3e4116a05e05500a7b955b6543743800  gdb/bfin-linux-tdep.c
-6160b37f81566b47118d96aa3bfdf4e6  gdb/m2-lang.h
-0456825c01e1747bada0bb69946b714f  gdb/s390-linux-tdep.c
-fc7951f2102d3adc5d8dc023d7e04d64  gdb/auto-load.c
-d970ebff7f1552dcd7481d768b42541a  gdb/interps.h
-f08f6cc3d6726c1118696e2524f748a5  gdb/arm-linux-nat.c
-da1f5dd5c414b397aabf22e0c920c972  gdb/arc-tdep.c
-ca8813bfa0f0c0c75fe7c1da87498a2b  gdb/sh-tdep.c
-63f52e491ea22edae668cc5b778c1880  gdb/linux-tdep.c
-a4473f464fadb8f5b63207671b101fcd  gdb/hppa-nbsd-tdep.c
-04efd8bf6195c3a67c69f42866ea68a7  gdb/thread-fsm.c
-0fdd6e40b1b430e28f7ef0a86c7bfd20  gdb/proc-flags.c
-7d27ea1c3906ad523c4b6904064e0ef8  gdb/copying.c
-0a0b155dccf1e232eaff7efd16459331  gdb/xtensa-config.c
-a5ac053a9a81ad0ac84b9e6427e725dc  gdb/go32-nat.c
-5a0e884f9e00525b838e02aeabf208be  gdb/inline-frame.h
-a315a421e0175c9712d3ee3916a1e13b  gdb/nat/linux-ptrace.h
-bf407f941d07bf48e0d54a001a96dc1e  gdb/nat/linux-waitpid.h
-869d5279ed6076f4a8a8b5653636c6fc  gdb/nat/aarch64-linux-hw-point.c
-9f9d205800c2bfeac8eefcfcac88ca3d  gdb/nat/ppc-linux.c
-8f10eb3a5eb85658baea5b9a01cd2f22  gdb/nat/linux-ptrace.c
-835619aee64d03c25e7e10dda5729bb7  gdb/nat/gdb_thread_db.h
-b61d459584bf0829712f111165490ae6  gdb/nat/ppc-linux.h
-d69f970667665ad3a54cf18737988f06  gdb/nat/linux-namespaces.c
-b1a56ceb36448ca174fa99486680f7cd  gdb/nat/linux-osdata.h
-c56abe9a1f9a12e4bc5bd3bcf8801fb5  gdb/nat/x86-linux-dregs.c
-9507501bc83ce17889ea5bbd1d35fec3  gdb/nat/mips-linux-watch.c
-582c8c457eec5f1ff22484e583fc2862  gdb/nat/x86-cpuid.h
-244f5df7e0511045aaef1573a335a196  gdb/nat/amd64-linux-siginfo.h
-4e09cf0a1fb1b34e2b8d1966582760af  gdb/nat/linux-osdata.c
-510dfd2292fab5bf69828b846a8b5282  gdb/nat/linux-procfs.h
-0d76535d7ac1a89b17d0220f0897dcf5  gdb/nat/linux-nat.h
-ed137e9190dbc0193cffa2a5779bbfa0  gdb/nat/linux-btrace.c
-7f5525fa24a5ee69c3f973450581979e  gdb/nat/x86-dregs.h
-41a0c6fccee22d36cb13c42acc1011f6  gdb/nat/x86-linux-dregs.h
-2c68267c5979af134fc259a38810f236  gdb/nat/linux-procfs.c
-46de5f624d544be73e0138ab3326402b  gdb/nat/x86-gcc-cpuid.h
-ce20bca07430cada9013c21d3b62edf5  gdb/nat/aarch64-linux.c
-b19f6d0500f9ab1063b59c46e1131f1b  gdb/nat/x86-linux.c
-c3e802636d7c1485d3d77cb1f6b6aa70  gdb/nat/mips-linux-watch.h
-cc04289041d2dbb2149afb5df7bcc058  gdb/nat/amd64-linux-siginfo.c
-fdc719d730868a1e2a82b0868b9ccf22  gdb/nat/x86-linux.h
-10324e392a1ba6971fc9cdcd169c1d0b  gdb/nat/aarch64-linux.h
+681d3d033095686617c696bd5c4dcc9c  gdb/python/py-value.c
+8fdd8de26b32939b60468d052765b2c2  gdb/python/py-unwind.c
+77191a9d2d4ab1bdc49a04951ac0254b  gdb/python/py-instruction.h
+bebe109e790bb086dbb9871a35cc9288  gdb/python/py-type.c
+5a72c01c683ad8535a321ba8089e7c52  gdb/python/py-evtregistry.c
+40dd0e5efebf17ca5686d9bdbf64d278  gdb/python/py-utils.c
+a3e025988257335756f9c2173df5386e  gdb/python/py-linetable.c
+6cc5876e0804c27f68668cfbcb33f313  gdb/python/lib/gdb/prompt.py
+01f5ae916336e195ab6033cb65622985  gdb/python/lib/gdb/FrameDecorator.py
+d3dc1de66dfdb1de0345138f98ae242d  gdb/python/lib/gdb/command/unwinders.py
+fab0235416f4debd6ddace9cc78c0c5c  gdb/python/lib/gdb/command/type_printers.py
+0b56fcb69cad511e045a6a677265e306  gdb/python/lib/gdb/command/prompt.py
+10ebfe967bad6bd96cd6db58ae7f48fd  gdb/python/lib/gdb/command/explore.py
+f2a0362fb98cf06f8a58ba396da090a6  gdb/python/lib/gdb/command/pretty_printers.py
+4c2c1b6e696640bf90e2211405934249  gdb/python/lib/gdb/command/frame_filters.py
+0a6399d175114165a1f84c87c9f35821  gdb/python/lib/gdb/command/xmethods.py
+598160ceec350e10d9c08449867593b6  gdb/python/lib/gdb/command/__init__.py
+31d4e09e088ec1996323485dc463dc0d  gdb/python/lib/gdb/xmethod.py
+4a857f18d9ff318fb862a1523e86b7b9  gdb/python/lib/gdb/FrameIterator.py
+83df5726a02acbd7758aa7cb0c5c4178  gdb/python/lib/gdb/frames.py
+01b8edfa8a533989dddb26a74b781740  gdb/python/lib/gdb/types.py
+792945474986fc5f3e0ebc7cfe642de3  gdb/python/lib/gdb/__init__.py
+2ec4ff54bb2a60e3069da3f8d621934c  gdb/python/lib/gdb/printer/bound_registers.py
+1964f75bdcc3a97df05bf12699ed015f  gdb/python/lib/gdb/printer/__init__.py
+08a4eb647955457a73f6f4a1cd8ce3fd  gdb/python/lib/gdb/unwinder.py
+ac2f91881a9ac9ac8b33ab2f8019ac92  gdb/python/lib/gdb/function/as_string.py
+a6ea6dbd68ccbffad3ecec7c838ed936  gdb/python/lib/gdb/function/caller_is.py
+572fa71a06ff67d230e462967bdd6e51  gdb/python/lib/gdb/function/__init__.py
+6a34f2263904415ab14e5751b092cb5b  gdb/python/lib/gdb/function/strfns.py
+ebd44288802d5e6594cb103c7d0abcef  gdb/python/lib/gdb/printing.py
+51e2a720a19f43b250f64c81bac15188  gdb/python/python.c
+ffc7b616664a4ea91bb1e86d5ad45bf7  gdb/python/py-inferior.c
+570cb0a330e531f19e48e69e8fb2db7d  gdb/python/py-symbol.c
+1a21d12f4af16f50caea65b308083dd1  gdb/python/py-block.c
+2fcc0926aa5c04da270d997bbff0d28d  gdb/python/py-events.h
+9b0799d523cf47cb7fa314a6d5f6a57a  gdb/python/py-ref.h
+399fa7067f01ce6b9e57ca99f135a279  gdb/python/py-function.c
+513af517a539ce0b1e61daa4256d3784  gdb/python/py-record-btrace.h
+a4244ee03fd0784330711ee981f033f1  gdb/python/py-framefilter.c
+229bcfcb247342b1aa387ab9d2f171c9  gdb/python/py-gdb-readline.c
+1780fcf77ed05ff4be4dfe29c40a5953  gdb/python/py-record.c
+ee6fbd21646a87f6eb754524f8cb9810  gdb/python/py-stopevent.h
+ef734f1eceac45714ef752aadaf9d996  gdb/python/py-event.c
+2106cae44a6ffbbda4724b107eff7964  gdb/python/py-symtab.c
+2116efbc10b83b2cb64ae09e766f8604  gdb/python/py-record-btrace.c
+b83234eba76090ed11db2f48162c36a0  gdb/python/py-stopevent.c
+d607ff6759c6f69991bdc37bea5818d8  gdb/python/python.h
+7ee9ff85729d9ca5eefdd2688a88c58b  gdb/python/py-signalevent.c
+579b7081b0e78f13ee10723f4e0803f6  gdb/python/py-breakpoint.c
+20357c868513658fec252624d3ca4af6  gdb/python/py-newobjfileevent.c
+a28409cec540de1faf40cdfcfa14ca91  gdb/python/py-param.c
+3bcbeb365675ec38234d6077f256b451  gdb/python/py-varobj.c
+44764a1f70f36148b1b23a1587c94d3e  gdb/python/py-lazy-string.c
+aad0ef2d37981b1deb1392d8d1a68ad8  gdb/python/py-record.h
+e0855030b8184da3b181bedeed6a810e  gdb/python/py-exitedevent.c
+9c599c0e14e99faeb5d30577ede03ce8  gdb/python/py-progspace.c
+31ce55d1397bfa3639ea4a5575eec7f1  gdb/python/py-instruction.c
+fc54b55a377a03b14c7b22647c2a8784  gdb/python/py-bpevent.c
+c601365d4ac0b5a469da071dc5fc3405  gdb/python/py-arch.c
+1f8906696661142ceec61bb63e8bc194  gdb/python/py-infevents.c
+5331944f93c9c8f429e0d1d10fa64e3f  gdb/python/py-auto-load.c
+9bb6e479aebbae4ce5a9225690e6d73d  gdb/python/py-threadevent.c
+028f9328fb82e683ecb5f9f56c284481  gdb/python/py-finishbreakpoint.c
+1eced4c1b6303cc5f07513d355f25831  gdb/python/py-prettyprint.c
+3f03c4d073340838370c8a1c94d5b3e8  gdb/python/py-evts.c
+438cc8726c71a957c5aeba774060d69b  gdb/target.h
+d0b38ba411a6813e53389a5f31e219a8  gdb/obsd-nat.h
+f6fbb67606fbf88afe1e2cbe837f6779  gdb/frame-base.c
+7fa05adbfa4c24cbab8d63bf5cf76f6a  gdb/fork-child.c
+54e814cfbf28204b8ad873db6904673e  gdb/spu-multiarch.c
+b970f26fd4d3e494583c31f4c3aba3be  gdb/observer.c
+5da919ce66c0ef3636a4a43058180cb8  gdb/ax-general.c
+7924b9948c898412ae8a39bdbf8ea5b0  gdb/record.c
+6fe1c517edcd1f3b9e0a57192bb2a0f0  gdb/ppc64-tdep.c
+a0792bdf0324ad049d14ef15f0806114  gdb/i386-gnu-nat.c
+0f237bca131b9ba30a65a45403f84953  gdb/iq2000-tdep.c
+a69b008164bd1c5d3b0be3ff86d49067  gdb/ser-base.c
+a8bcfcc675a439cb2b9c4468562e73eb  gdb/version.in
+e722ee05b136eaacdac37859510cbc17  gdb/linux-record.c
+cf0a31b11efed9f66a51b80cb8c4af16  gdb/sparc64-sol2-tdep.c
+289124cc78fd8c57e688eba9a996db47  gdb/amd64-nat.c
+44dce47b216c4a695c1082e9604261c6  gdb/ppc-ravenscar-thread.c
+97b31d7dc92d325cc360e34272d4ceff  gdb/symfile.c
+f8fc235b540b65c5552d6871d30a1e62  gdb/auxv.c
+e82594d282a277fecc1a5c28fd8b19fb  gdb/bfin-linux-tdep.c
+250e2d93550b4474d03b9d36985d0c42  gdb/m2-lang.h
+f69a6e1a6e3c2e230442bf07ab058a99  gdb/s390-linux-tdep.c
+fd1ed8bc7de65b23eeef684cf38e9791  gdb/auto-load.c
+8354b42bcc4acd701f9258c701eb1eae  gdb/interps.h
+99e655dc35596c023d915e1899deee7f  gdb/arm-linux-nat.c
+3aff5844911be562c95f1797da3bc521  gdb/arc-tdep.c
+2fee956e11ca564aa5e40d2227ec40b5  gdb/sh-tdep.c
+d272691271869ca94edd9277457a009b  gdb/linux-tdep.c
+1dd7350f53ecd8ba83f4f06208d523e3  gdb/hppa-nbsd-tdep.c
+5d73d22134eda5dc750009e5f5f045b2  gdb/thread-fsm.c
+ce76a2f3bd4e3c9a9c2ade3ccfad1a04  gdb/proc-flags.c
+34116c4afa055d95ecadbb10ce09dfd2  gdb/copying.c
+f285104c4ba8f42babd6656165592492  gdb/xtensa-config.c
+e1ef49b099be9eb9230dd25f48ed8a44  gdb/go32-nat.c
+e9210fb30c1c892c22434a279691ed72  gdb/inline-frame.h
+a0f78e3e73b18275265c02449bb83fb0  gdb/nat/fork-inferior.h
+5ec082221fcb89ce7cc67292b1abd1f8  gdb/nat/linux-ptrace.h
+87c01244d65a35214ab93eabbf983aac  gdb/nat/linux-waitpid.h
+6fb93f37124143100fc5941b57fefa92  gdb/nat/aarch64-linux-hw-point.c
+5607a01d38016c69a2b7629983c60e1d  gdb/nat/ppc-linux.c
+f890efcd0da4fda7e0300c854794af92  gdb/nat/linux-ptrace.c
+6fb123e355e1790217381f4e148585a7  gdb/nat/gdb_thread_db.h
+6b17521cfc4d77f1799028a54384ec94  gdb/nat/ppc-linux.h
+a92873a928bcd10a8cd8b23266c287b3  gdb/nat/linux-namespaces.c
+ea1c44fab22a4734aac4206b59011727  gdb/nat/linux-osdata.h
+4300306a3dd6ba7ef84ac741fabc2192  gdb/nat/x86-linux-dregs.c
+823f179ff967317edcf7f761b4a60c6c  gdb/nat/mips-linux-watch.c
+e99d38558b2ae8ddcb625067195a1453  gdb/nat/x86-cpuid.h
+13c12f1735e05dbc56667a935fe22e70  gdb/nat/amd64-linux-siginfo.h
+ec031359d23b6477237dbc660a4a8228  gdb/nat/linux-osdata.c
+a87d447b99c0fab69e9743dbd103548f  gdb/nat/linux-procfs.h
+a2c5e87e66153c7361b8bfcc842ba85e  gdb/nat/linux-nat.h
+12567afa2abb7a435711962e0b8afe33  gdb/nat/linux-btrace.c
+322527028aa51f0d168f01db0e6747d2  gdb/nat/x86-dregs.h
+e648f541d81d07d95b704c2c672d182c  gdb/nat/x86-linux-dregs.h
+ff296b07d3d2c0bbacf23f11bb7e07c3  gdb/nat/linux-procfs.c
+87bb08cc3923d996aefff345ce6be013  gdb/nat/x86-gcc-cpuid.h
+19d7e6fcf07b1ba40c700d863f11edfb  gdb/nat/aarch64-linux.c
+45347e0a4d6ffd771352b6cd297f70dc  gdb/nat/x86-linux.c
+0bb5ea67d0ea39e93724beb29e2a81a2  gdb/nat/mips-linux-watch.h
+3ea671b53bb90c95196e70544ff052e9  gdb/nat/amd64-linux-siginfo.c
+8755152bb1622c226fbf0ee74587d648  gdb/nat/x86-linux.h
+190be645c355a50685f52717588bbb4d  gdb/nat/aarch64-linux.h
 adae21661830cc755ff5274534e762d4  gdb/nat/glibc_thread_db.h
-a5d871009204299e0946e579acc51711  gdb/nat/linux-personality.h
-e648fa5e0c13ec28318d766e9f0d7ba0  gdb/nat/x86-dregs.c
-0326ad6c088b68df0f4fbc5f10a0113b  gdb/nat/linux-btrace.h
-865bfbeb97d88adbef439ebd5dad4ebf  gdb/nat/linux-namespaces.h
-820c14d3031a287aa9788a2b1d62db0d  gdb/nat/gdb_ptrace.h
-974af57fd2bae009ba2f6c39fd405739  gdb/nat/aarch64-linux-hw-point.h
-a1774df315b2dea58eaa1043b764d6e3  gdb/nat/linux-personality.c
-3799383b983997571290d4d75027268d  gdb/nat/linux-waitpid.c
-5e69c725aa18bc2096db4ad08070e172  gdb/go-valprint.c
-feccaa33965bbf2adaf57bf49759291d  gdb/dwarf2loc.c
-54efa3584e985b57aace21958f030b06  gdb/tracepoint.h
-00e1bb3d45f00a32ce39011b7f00e824  gdb/gnu-v3-abi.c
-b28ef2eac83e25b06dc758cd8657d163  gdb/extension.h
-189c8c85c67698c85236a4289f92fa08  gdb/reverse.c
-a7ea1f15e9c05efecd7dc52b8da8db14  gdb/dictionary.h
-a04a83cd92dc18b387ad483e81ca548c  gdb/x86-linux-nat.h
-e6030c0de3fe3f67812c6995c23e0cae  gdb/sol-thread.c
-54338bf61621f1cc97bd22aa13e4168f  gdb/xtensa-linux-tdep.c
-7284013116b55c9d5b9be2dd92419d93  gdb/configure.tgt
-90dc26aef02c6987884a7b537ee8c6cf  gdb/solib-aix.h
-be0a9e77ba5a05387b8b4d0f58f51f31  gdb/event-loop.h
-e4ea60925b7714974ef2b6a20dcdd3b2  gdb/ax.h
-d2f450000fbb069ff4c1d603ec9519d2  gdb/trad-frame.c
-70c0fdc7639551274bf309ad87fbbd43  gdb/mips-fbsd-nat.c
-7374c18ff34b3b5c555fa1c3ed6d441e  gdb/remote-fileio.c
-91d1c7d630bac456808b6a52eb01986d  gdb/complaints.c
-17c6f7889a341e138cb2c9fd8485c70c  gdb/f-typeprint.c
-bd9f729acaece2eb0bdd8030f41865b7  gdb/interps.c
-198979ececa4e669125a43c06ef488de  gdb/skip.c
-c18987e8053a5b98bfd753f4a90e7fba  gdb/i386-gnu-tdep.c
-206e9dc79ae80780a492fb8cff320d59  gdb/ppc-fbsd-tdep.c
-41a3213855967dc4d5de10dd9c3ac15e  gdb/mips-sde-tdep.c
-017078d123bc9696cd731560ec240fa8  gdb/gdb-dlfcn.h
-537760e42cb0339a01ace07a4fdbe9e8  gdb/arm-nbsd-nat.c
-e9d8b84b782ed4d40df8744ee0ed6274  gdb/ser-unix.h
-dbe263bb14db17b5ede50d02d2ff3424  gdb/utils.c
+e6c61da93874efdf28b3d2713e1320a6  gdb/nat/linux-personality.h
+9b6e687f31e863f40c152017886798b8  gdb/nat/x86-dregs.c
+900200cfc65f731fd9761525df54393a  gdb/nat/linux-btrace.h
+ac5c6771217a2ee5f775ae4ee71b50a3  gdb/nat/linux-namespaces.h
+98720799e8591a6be7a7f5f6c996428d  gdb/nat/gdb_ptrace.h
+7267622236025bb166a67fba2751ce39  gdb/nat/aarch64-linux-hw-point.h
+74aa9b3792f48632d3a76d27468b7896  gdb/nat/fork-inferior.c
+c12297b6e66ea50afbba0285d5da69f0  gdb/nat/linux-personality.c
+670f78d2abd3157b11fe7a425a596082  gdb/nat/linux-waitpid.c
+859e6f320dd488dd634e4bd47eb3e378  gdb/go-valprint.c
+878089841808abfa8f128d10d2a044d6  gdb/dwarf2loc.c
+904db701004fd994d4380ce8ca540b11  gdb/tracepoint.h
+995d3e1c966c341b34711d8fb875bc85  gdb/gnu-v3-abi.c
+58b3e899615c15dcd129b4df0762aa77  gdb/extension.h
+3b48118be9ef5674e6e7faf7043170e5  gdb/reverse.c
+c1b8aa801694190a1ca64d22380e6720  gdb/dictionary.h
+9f6350770c689a6d9522f981e698f5e0  gdb/x86-linux-nat.h
+0c3fa272b5e01d59633f0ec83a4ff7a5  gdb/sol-thread.c
+f3efba1aeaf990a698afc4780dc75622  gdb/xtensa-linux-tdep.c
+a6dfa9bb0dc10cae25008159f8296544  gdb/configure.tgt
+81a3ff7590f2273421d3c570635d6a9c  gdb/solib-aix.h
+ea5dfd4982657a302c1626c46157c9c9  gdb/event-loop.h
+1009e6b6fd2a1ce99c86e5b21be183b3  gdb/ax.h
+f0358cb3ada6a134a6cf5c968f39348c  gdb/trad-frame.c
+84f018599892492ae31bdae49e3952c1  gdb/mips-fbsd-nat.c
+ff142e2c2d5c63a4bf5103ac0a32d7fe  gdb/remote-fileio.c
+ec5e41fc71b09b5f3cfa60f6d8520bc4  gdb/complaints.c
+3f203af1884fd78ad684fed2ddd2ffca  gdb/f-typeprint.c
+a29aa25fdbde4c79fef612e877fdfee0  gdb/interps.c
+5606ec8c5bfb803ed33c6f895f9495e2  gdb/skip.c
+34075654f74db3579009f75baa6d8458  gdb/i386-gnu-tdep.c
+876a8b421795550d6b854b1232463595  gdb/ppc-fbsd-tdep.c
+7eaf73bff57fa3535ec9f00fdb1d95a4  gdb/mips-sde-tdep.c
+4b0dadd7fdb8d768a817ee7c13fad3a7  gdb/gdb-dlfcn.h
+9d973106d286a394b227c7769a2e2e62  gdb/arm-nbsd-nat.c
+3d257ab27d049fd07b709cd4bec36559  gdb/ser-unix.h
+a6525ca954d4a60e12c1e101b7005993  gdb/utils.c
 90e56dea65beb67443d6c83cbc5fed7f  gdb/ChangeLog-1997
-68090db5ed0faf725f0c47f1ae2aeb9c  gdb/trad-frame.h
-1df969f821008b44074a68ca87f01584  gdb/arm-tdep.c
-60185a936b72de13bc50fb9343d40c57  gdb/cris-tdep.c
-fb73474f5cb9d9e515205b30d42f56d7  gdb/dictionary.c
-9189cdce5b1cc1ccb82fe003cc455b44  gdb/cli/cli-dump.c
-f90fd347054a3b621461d16af1bdeaf8  gdb/cli/cli-interp.c
-ecb6914b687192101df1d9bf1a012ab5  gdb/cli/cli-script.h
-f608f92d65f2fc158542713e0e6380ac  gdb/cli/cli-cmds.h
-e54c5a876630e606ccbedb7ab285ae5e  gdb/cli/cli-setshow.h
-02d2a119a91d60c454f58760369fa5af  gdb/cli/cli-setshow.c
-b2d9c2c96f567496ee10bf7d4a28c61e  gdb/cli/cli-interp.h
-d99960ee6a4783f8fcfcb67eeb54dc26  gdb/cli/cli-decode.c
-b531fa4102535d49577b9e0243c202d0  gdb/cli/cli-cmds.c
-16141b3e2f713f37a41d8857c45a81ca  gdb/cli/cli-utils.h
-61b99a3fb523ca5b536185748f63cc34  gdb/cli/cli-script.c
-dc1259324e4378c250f9de310a56841d  gdb/cli/cli-logging.c
-9f02a7e5e6dbd2c5e7f553173182afbd  gdb/cli/cli-decode.h
-0acd84c3e99fe5d2c67871adc7890474  gdb/cli/cli-utils.c
-79f57116d64dfb5b4abafe0ccef4303e  gdb/m88k-tdep.c
-666c6fcdfdef272cd00018f51433efdf  gdb/copyright.py
-17c53767136190697b3b9b7b61264c85  gdb/cp-namespace.c
+d9585f56d83238ff517da78a9ec82fbd  gdb/trad-frame.h
+5fe81e81a40cd35bd0b1444169692113  gdb/arm-tdep.c
+4ed7f92eda0e9ddabcc4ff9a5fa525cb  gdb/aarch64-fbsd-tdep.c
+fb6677a89b1ca588921c16f224f12ff9  gdb/cris-tdep.c
+5ba50b1bcaee98e4bca47a74de3de422  gdb/dictionary.c
+f7d00dbc7d06cf8aa638b3c4dfec5cf3  gdb/cli/cli-dump.c
+303cc8ea695af9cdca0a7292ad57417c  gdb/cli/cli-interp.c
+b2f206cb32cafe07ae6db6e28a86b582  gdb/cli/cli-script.h
+4dedbc860e337b8f70b87229f27bc29f  gdb/cli/cli-cmds.h
+a7fe565f6eaaae530ad4c7a7d1ff4471  gdb/cli/cli-setshow.h
+fc5c567155c9ef2388d092d0efe15ae0  gdb/cli/cli-setshow.c
+45622731d9ecdfebd1698345ffe5dd56  gdb/cli/cli-interp.h
+a95175ceaed692c4d0a01f69a831245d  gdb/cli/cli-decode.c
+1463cd454fe54fc819aa04791b61e963  gdb/cli/cli-cmds.c
+846046a4091c747ff77158b8f5a95919  gdb/cli/cli-utils.h
+a166dc0fcb58b451459840887225a602  gdb/cli/cli-script.c
+3b6925bc7211285b555a52c091cc327f  gdb/cli/cli-logging.c
+a929e101e93eeafddd943a4e7cce204f  gdb/cli/cli-decode.h
+efa231ca912122cb0b76afa7b734ea1c  gdb/cli/cli-utils.c
+486465d103e31a0da2068288250b46aa  gdb/m88k-tdep.c
+6b82ba43f68bd801ceefdba6e1f070e7  gdb/copyright.py
+dd2200414f5601f4c8b643791796dd55  gdb/cp-namespace.c
 21b85dc2ed09d1125c8ab4fbdb043c7a  gdb/notify.defs
-f16feb2a2f970462900cca9bf80bf31e  gdb/bsd-uthread.h
-559365e009f230b68276536b1e400b6d  gdb/inferior.h
-3fcf9e70df5e7cba9aa78d569473116d  gdb/reggroups.h
-1bbe8a3e1cdd9840472d5546f85e6b84  gdb/copying.awk
-2cf68c94717856fa24045a692028e8a8  gdb/valprint.h
-5bd64342848898f49157fb899dd718f3  gdb/amd64-fbsd-nat.c
-99ced584489998f0efed94ae3254fe85  gdb/ravenscar-thread.h
-4f3e1b64552fa190bc810bdb01fb4207  gdb/objfiles.h
-8efbed3b82f3b8901b5e214382469332  gdb/reply_mig_hack.awk
-15370e374183b3bab9592cc6ef0d1ba3  gdb/nto-tdep.h
+d94dca23b32a1fc28973a7da62222bc4  gdb/bsd-uthread.h
+6e2fbed0268e244870d13d34d9d5bea6  gdb/inferior.h
+1ffcc2b6ccb4acd07d44c5510a387339  gdb/reggroups.h
+0995979778608fe7203391a85d13e743  gdb/copying.awk
+9adc0abb0a351f573f82df33525a5b27  gdb/valprint.h
+14be6388c7f30c6a7c82ceea7148aed6  gdb/amd64-fbsd-nat.c
+98000ddcc1000738258f5e0bd5376229  gdb/ravenscar-thread.h
+6cf1073395eae7157381add280762de3  gdb/objfiles.h
+6ce600c6dd507e8e286a17d9edabe286  gdb/reply_mig_hack.awk
+813790c99403304f61f4542f5bdfd61b  gdb/nto-tdep.h
 24096aca3294cab3717506c2c69a7272  gdb/msg_reply.defs
 51d2fa6ce8618d5c87150c7c576f1f6d  gdb/ChangeLog-1992
-c1500d5e557d30780bae13e6b1374522  gdb/nds32-tdep.c
-7360ee4c388e80992b08c5b2171530d1  gdb/dfp.c
-081fc66f5334c3cd1b2daa491329ebeb  gdb/inf-loop.c
-071053df5a526b1b55381d0c7abd05db  gdb/ia64-tdep.c
-4ac0a4df161c7e4041e0e1cad8f0f4da  gdb/bfd-target.c
-48ed99883f6119ac346d203477a3fc04  gdb/ada-tasks.c
-43ab7f9153cafadef95e7ddef77bd928  gdb/mips64-obsd-nat.c
-8b810b666543cd13962d46a827ee2d4e  gdb/ser-tcp.h
-c7e3d18839dc206b465b505fa97fb6ef  gdb/ui-file.h
-6c7eb9a476e73c320dfcbd34557c12bf  gdb/user-regs.h
-c5daef99bdd79b1d6c63c64f351f6156  gdb/PROBLEMS
-a96b7ec6ed59f9e2dea99fe3978d8ce4  gdb/config.in
-24dbc0c3c947aab113288374b057d4ee  gdb/configure.ac
+c741f12c33d1a3637dc1f9e76e314842  gdb/nds32-tdep.c
+f034c37665d00f0a758435af9ab08787  gdb/inf-loop.c
+a867576998280dee471ad5c297ad6f6c  gdb/ia64-tdep.c
+54ed994485981030becd0ff7c54420da  gdb/bfd-target.c
+4c88312d8f9b9ebb25e9a6fd7c53b020  gdb/ada-tasks.c
+61c71feb39daf1a526dc353c33b47fb9  gdb/mips64-obsd-nat.c
+4f5cf932b114c38e420a44a052b888d2  gdb/ser-tcp.h
+c924da8407c465c0db47754b07e866a3  gdb/ui-file.h
+da8fe61630bfcd15538771e7933f12be  gdb/user-regs.h
+f98668e6b62ba2b17a25ebb7e9961fc1  gdb/PROBLEMS
+d8b839d3a6e3c69149bcd628b9fc0a69  gdb/config.in
+0c15f53a23d4b18de01ef27812eef6fa  gdb/configure.ac
 752cc726423f319218ee7048b5dc7d38  gdb/ChangeLog-2015
-f00dda40bd2e9cae6bfcc231b23cd22a  gdb/amd64-sol2-tdep.c
-58908e2efd8050b12152ee6312e0da6d  gdb/vax-tdep.c
-87fad83575b10181cb5001655004fece  gdb/sparc-sol2-nat.c
-0bc98cb43aa8bc873e4591b177264c76  gdb/linespec.h
-a1de39c51ce42e7aedebeace0f7e8723  gdb/README
-e4245e26712a14c17d699d2edf4fc64b  gdb/fbsd-nat.h
-313e0fbdf9b6f3ccfd615e580763dabe  gdb/inferior.c
-6bf0d5846d38df76e6683e4ab0d7f295  gdb/mips-tdep.c
-d4ebf08944130e6fcdd86e186fe626f7  gdb/solib-dsbt.c
-cf018b48d872669695d16895ecf59d94  gdb/minsyms.c
-6c98ed89c94f8a30117bf6deb3974e33  gdb/i386-darwin-tdep.c
-b0239b5601ae921802cf88bf84baa0d5  gdb/m68k-bsd-nat.c
+061e4671402dd0e7ded6e2e32902110e  gdb/amd64-sol2-tdep.c
+e6089cd2ed43337dcebc9325ee0d1243  gdb/vax-tdep.c
+86d5f5b63c13de834f9f26d38bf3d4cd  gdb/sparc-sol2-nat.c
+7fa8f2abedbaa2f2fd43daf3d6991965  gdb/linespec.h
+424b4fdaa027f9abf9702c54f517dbf4  gdb/README
+011f8161a6129ed0fdc2369daa0f472c  gdb/fbsd-nat.h
+696a88349ceb3a1fb339c49382530f63  gdb/inferior.c
+b2584f03b290484a58cb5cc5433b3c17  gdb/mips-tdep.c
+d3d8e27067ca5acc49aa2b5cffd93ef9  gdb/solib-dsbt.c
+ec30d4ab802c58f85524fe0084fcdd3d  gdb/minsyms.c
+9ed0f358bae93e6fa580ac9d2201e5e5  gdb/i386-darwin-tdep.c
+42fadb6f318e79fbbcb6124bcceb4318  gdb/m68k-bsd-nat.c
 7b8a5048cfb6f899a8199897f0864c8f  gdb/ChangeLog-2005
-79261b3f0952c823fd217864a8491e5c  gdb/event-top.c
-f06680686381556caa05d3c56c5be2a8  gdb/selftest.h
-bcadf8f0b2a2e121bc077c48822f759d  gdb/mem-break.c
-86b15e80a6fc9be71b7043a11f22fa32  gdb/charset.c
-5064c2567050bb312b6dd83bfbfd6548  gdb/sparc-nat.h
-2c42f5237ac86551a151e57871d58e60  gdb/record-btrace.c
-65d177f580206215b99e8575b87dbdee  gdb/proc-api.c
-d312717419cd64bfb1a5a44f292f2932  gdb/target-memory.c
-577ac3e204cc1a401e68b467480de5b3  gdb/syscalls/ppc-linux.xml
-e722122c121c0bc7eb905c3bb3d9c291  gdb/syscalls/freebsd.xml
-8f422659a7fc366133f86ce8ba3b3b47  gdb/syscalls/sparc64-linux.xml.in
-c596d1f5e39637646676325d24bf6fb7  gdb/syscalls/arm-linux.py
-b8a9b95668e85959a449988e420eb088  gdb/syscalls/mips-o32-linux.xml.in
-020b2a99b140ea22becc3a66f3942a6f  gdb/syscalls/sparc64-linux.xml
-d116ef5798ac60eb26da90030bb3c2a4  gdb/syscalls/s390x-linux.xml
-3d198606a03a1bdf145a95e3dcdec4b6  gdb/syscalls/mips-n64-linux.xml.in
-728cb3667a28a44edc7a99d8fc8d6571  gdb/syscalls/mips-n64-linux.xml
-38fc6ec08930aca5bb99bac5c6e745c1  gdb/syscalls/sparc-linux.xml
-b8d44b5a1cb66b9059c5f4b7ae0f769b  gdb/syscalls/amd64-linux.xml
-27691784ac35322037099b107378e7f1  gdb/syscalls/s390x-linux.xml.in
-ede8782e2ca48d722f1738292a5cefcd  gdb/syscalls/amd64-linux.xml.in
-c4161ca44da4c1fe739c8eee40da159f  gdb/syscalls/s390-linux.xml
-7316ece63eb4f45c72982bd12a1e624f  gdb/syscalls/gdb-syscalls.dtd
-59aee72011fc78ac6e8c06c3025e5560  gdb/syscalls/mips-n32-linux.xml.in
-27b1571a0d57d708300a5112d54903d8  gdb/syscalls/ppc64-linux.xml.in
-e20960fc8d6c5e65cfc864ea4b2aaafd  gdb/syscalls/arm-linux.xml.in
-e449e898f49be4e9d446a774dd10570a  gdb/syscalls/aarch64-linux.xml.in
-a80e643184ea2bb626825c236327b88b  gdb/syscalls/aarch64-linux.xml
-96cbf2797635e4fc88bf2292620c8da6  gdb/syscalls/i386-linux.xml.in
-e3c9f4975623ac9512a5175d05ddebdb  gdb/syscalls/arm-linux.xml
-ebd95ea07a83adff7a10c87cbd48cec0  gdb/syscalls/mips-n32-linux.xml
-e56f30012de1015ac03fd66e4c62103f  gdb/syscalls/sparc-linux.xml.in
-7874efd2aa72a9bc6ac06ff221e2af0f  gdb/syscalls/bfin-linux.xml.in
-be47657811e99c60a1fa5db78468e0fa  gdb/syscalls/linux-defaults.xml.in
-8fe4749bd4a075844382ae81e43c0671  gdb/syscalls/mips-o32-linux.xml
-8ca9a3e28e27d2d66dfde43b7c249ad5  gdb/syscalls/apply-defaults.xsl
-a59e4b960d34f5040d5efa087cd1a318  gdb/syscalls/s390-linux.xml.in
-17d6d05774a7fcf3a41092516e7329df  gdb/syscalls/ppc-linux.xml.in
-9e91c4eb2255700532906dd9c472376e  gdb/syscalls/i386-linux.xml
-887402b2734b2e36bf7ce188d51cee81  gdb/syscalls/ppc64-linux.xml
-c1a6220ac4cdbef80757b2ea1de6e1bc  gdb/probe.c
-d10caf8a9f7d98a6675799895bb2a4ea  gdb/osdata.h
-ba5c05329aebbaab27c5f339f35d2f2c  gdb/posix-hdep.c
-21627ebcd42a18a4b33ea1db4701dbd8  gdb/varobj.h
-b94ad0eb594a8c9b72cf4aaa66a00da1  gdb/tracepoint.c
-a238d399a4e4c6315092bc4be7b8b17a  gdb/selftest-arch.c
-e6c541f0a034e23fbb559b1e42868cd7  gdb/cris-tdep.h
-8f420be7bb0afe0dc688552839d98784  gdb/target-delegates.c
-a18bdeeef0d9ffe0e4f77fbc21a7d4fe  gdb/i386-go32-tdep.c
-d529b6d263abbe37e822228acf57428c  gdb/ax_cxx_compile_stdcxx.m4
-87273481bbf5a4111c49f2e6f67c28b5  gdb/solib-frv.c
-befe94d80641320976733294e9c3dc7f  gdb/amd64-tdep.c
-9045aaf71bf10555f463acd6460ae965  gdb/nbsd-tdep.h
-c2aa42e0094c11a6467f91a86236a98c  gdb/amd64-fbsd-tdep.c
-636fa52fa9fad2e0cb0486eca7244167  gdb/p-lang.c
-f00937cdebbe177364def9faf2575cc0  gdb/ser-event.c
-45cf1f1c56b32c6e4e3104f21d43989b  gdb/aix-thread.c
-9f6e9dd162c14fc75a845a70ac7b96ba  gdb/dummy-frame.h
-dbb7595da975a4a95d3351d7f34e3ec7  gdb/i386-darwin-tdep.h
-1ac49064c153a82206408cf00c0dd07b  gdb/target/target.h
-5575edbc1e459483468c57a7915ba230  gdb/target/wait.h
-5eec80d9a1617120892eeb28ed53e5e7  gdb/target/resume.h
-f0cd9412e7ce962beeb719843bf146b9  gdb/target/waitstatus.h
-015468d563d7cf46a715a091df75c677  gdb/target/waitstatus.c
-d0623000d1aee9efe027973a725235d9  gdb/memrange.c
-e733d083cceb87c89afccc6d8743c3f5  gdb/windows-tdep.c
-60d933241aa0e481cf883bc54d4afc26  gdb/coff-pe-read.h
-0b9a98122924375d8c0afb8a1d42829d  gdb/go-lang.c
-9e575f8d527100f8c114989e35fa8808  gdb/infrun.c
-087138654b01b8692c3d43a2a577e99c  gdb/ppc-fbsd-nat.c
-34b9b1f6699fc65be50cb0b99246b420  gdb/jit-reader.in
-12b87053e26206dc821e7eb4663569ff  gdb/darwin-nat-info.c
-d2e96e2898776816588a99173dc8fabe  gdb/ada-typeprint.c
-c0c437a581f12b59d028cedd4c523a50  gdb/sparc64-nbsd-tdep.c
+5196d1c97d6ea44439f7df81b829c54a  gdb/event-top.c
+241edaafd0b3e9df34721d907da8d01f  gdb/mem-break.c
+b7d7ba04258960a40e3131926c5f807b  gdb/charset.c
+950fd525be0081ace4d9a3c211175c36  gdb/sparc-nat.h
+1859e3a8d7d5087650a0a5c0f5a4ba2b  gdb/record-btrace.c
+ac95bab288c787a3f9cc32e0b8383af0  gdb/proc-api.c
+c5e77bd0cf8b24ee99fea4cd7eaf088b  gdb/target-memory.c
+288ff5b368d278b1a98b74d9d57f521c  gdb/syscalls/ppc-linux.xml
+d4219f5beb470656d75ea17fd80a9c96  gdb/syscalls/freebsd.xml
+b2b6ea5d7a4e8369adc71444a27607ea  gdb/syscalls/sparc64-linux.xml.in
+1bd0f5b85fe378deda9bcf33d8a10dbf  gdb/syscalls/arm-linux.py
+baf88995a7632b2cc0882bf1dd54baf5  gdb/syscalls/mips-o32-linux.xml.in
+720f3274491550b7a27e0c55648eb292  gdb/syscalls/sparc64-linux.xml
+ec6b5ea1dac145d8bd45cc47608bee0a  gdb/syscalls/s390x-linux.xml
+0fff9ecae5e8b47ccf5f3aa948dd23f4  gdb/syscalls/mips-n64-linux.xml.in
+7007d486e78a7c82dd1b8646b3519b40  gdb/syscalls/mips-n64-linux.xml
+c66707ed77c9bf324a077771908dca2f  gdb/syscalls/sparc-linux.xml
+e88990df1b91b5c67b06993445d240a6  gdb/syscalls/amd64-linux.xml
+a48760658280e4913d11f6e61ed19efd  gdb/syscalls/s390x-linux.xml.in
+494dbffcae9b36cd5037088d92eb9767  gdb/syscalls/amd64-linux.xml.in
+44eb245c8341399d7f95fa08f101b792  gdb/syscalls/s390-linux.xml
+501a0a9206dcea2fc366ebb9f3a664ff  gdb/syscalls/gdb-syscalls.dtd
+cab7a670f617677a0f8bacbf842b9945  gdb/syscalls/mips-n32-linux.xml.in
+e8bdbec06dbffbf69d4bed270aa84959  gdb/syscalls/ppc64-linux.xml.in
+24dfb1de8254324c0d89b5410e22d7b5  gdb/syscalls/arm-linux.xml.in
+3c7d1df1f2234cebed7f49de3f67ec9c  gdb/syscalls/aarch64-linux.xml.in
+711c44d84fe06661115ff60314b7ca3f  gdb/syscalls/aarch64-linux.xml
+48ba5b93dbb8d8126568f3b761b8c40d  gdb/syscalls/i386-linux.xml.in
+5df7c9b5ca64ccfaefd00177f11c7108  gdb/syscalls/arm-linux.xml
+89921d15cb2888c92b79e1f3098744e8  gdb/syscalls/mips-n32-linux.xml
+c0d3205cae75655112d868ae49da09f8  gdb/syscalls/sparc-linux.xml.in
+430cfd3241bdb73aab518cf21e268077  gdb/syscalls/bfin-linux.xml.in
+384c30dbfe9cfeb88a944a2b2cd752f3  gdb/syscalls/linux-defaults.xml.in
+bcb778a74fdbddc9d0727d576843dbcb  gdb/syscalls/mips-o32-linux.xml
+e5367331a329af5f76add61d01f2c10e  gdb/syscalls/apply-defaults.xsl
+f48daece847f879834d8a8e232db0076  gdb/syscalls/s390-linux.xml.in
+4fffe5b44fe4828d31929d5f9aefa407  gdb/syscalls/ppc-linux.xml.in
+8cdf82a82216391f56a31cca4099b07a  gdb/syscalls/i386-linux.xml
+0039eb5f792e49fdc70bbe8bbcbabb0b  gdb/syscalls/ppc64-linux.xml
+7e7ea9735196fc793ef9da7ab471cb93  gdb/probe.c
+2aac4380cf43f61707b801935dc3b433  gdb/osdata.h
+88b6b86f79cc95afb43c6b6c0477cd72  gdb/posix-hdep.c
+d34e97161053d3e7631bd73137231798  gdb/filename-seen-cache.h
+83c3153e3b11c091ff4cedbc02b36850  gdb/varobj.h
+e509e5a052d65cb9387119c2126677a7  gdb/tracepoint.c
+3b34365fe29a5be128c71c552d656d4b  gdb/selftest-arch.c
+520c52eabaa42304ffa24ad96e18cf52  gdb/cris-tdep.h
+898907c2fcd488b9263549d886154084  gdb/target-delegates.c
+a288118ed518726fca7cad53daef7eca  gdb/i386-go32-tdep.c
+0fb90b002316682cd573de80e344b775  gdb/ax_cxx_compile_stdcxx.m4
+7f3a6f4b9bdfbb382854a0eae10fb9ed  gdb/solib-frv.c
+dbcf6546f501cb8f765ba756db11ba86  gdb/amd64-tdep.c
+6216d4e506c526a30517dd671d6a3547  gdb/nbsd-tdep.h
+ecfd9b2668c64d934083eed0c1857f7d  gdb/amd64-fbsd-tdep.c
+f4315bd75ab8e050abb63e9bdb280245  gdb/p-lang.c
+85669543ad21bd7d723dc0b9a1838e77  gdb/ser-event.c
+6ffe3ba4f4e95c7872a4a0d6ed1b91a6  gdb/aix-thread.c
+793941eb65e939562e98eec19e4e9b07  gdb/arm-fbsd-nat.c
+9444a2289ac054c1dde25220a03aa2e7  gdb/dummy-frame.h
+b4a82177eb52fb9c11310457fd93d9c0  gdb/i386-darwin-tdep.h
+c7dbe194685d681f32cfea83cd135f4e  gdb/target/target.h
+8b1bcf015fc811971a532bc3de75b1a3  gdb/target/wait.h
+88dc6e046f2eb6d0106719abda8cfad3  gdb/target/resume.h
+847030883dd0dfa116981ee68a2d4139  gdb/target/waitstatus.h
+af9b89c0678f4ec920db78e0e8b20675  gdb/target/waitstatus.c
+c347954d4517f60d1220db4d30f00f92  gdb/memrange.c
+0b7f38ff006c3cde48728d363ce9b9ad  gdb/gdbarch-selftests.c
+e72f95a062dec89349ea26e6c0a1c9db  gdb/windows-tdep.c
+ec376335a92bd9f2ea53ee7c6e2c0e46  gdb/coff-pe-read.h
+441a31b344150e2346e1c037eb914ceb  gdb/go-lang.c
+37706ec6bc6ecccc5b77f680fdbe1243  gdb/infrun.c
+7d51b19cde2dffc8abfcf10325efb630  gdb/ppc-fbsd-nat.c
+9f17d928e1ed3e8a6423ba556d65ed00  gdb/jit-reader.in
+947c0df035fbc979325b15491b3a9109  gdb/darwin-nat-info.c
+3308f992afa12cc88ecabc24b52c1e97  gdb/ada-typeprint.c
+7ad3940afa554b4e849f961a380e5f53  gdb/sparc64-nbsd-tdep.c
 f971d36e35ec0c3fce64b819d7891f15  gdb/ChangeLog-1993
-fc792891aa40a6c94de42fa6d233d8a5  gdb/regcache.c
-bdb043707a8f7e2110e8deda8f7f9968  gdb/thread.c
-eb1d43d072fa7109b36071f373a394a1  gdb/gdb_buildall.sh
-3bfb49bc42ff248e167503a5f6058848  gdb/target-descriptions.c
-d189a88e8cfdf35c2d3958d9bd2073cb  gdb/target.c
-12b52ffe05e484bcbd2d54c767520217  gdb/remote-sim.c
-2c507d763b768a9b2960c49df2f613c4  gdb/rl78-tdep.c
-089186f1bdb27a3870a2d93dd67a05fb  gdb/i386-sol2-tdep.c
-cb1b230b5564a93f75f443278b6ef30b  gdb/frame.h
-da9458a59bba724d46b2564c036d14a4  gdb/spu-tdep.h
-f0877803ad59853784adaa9f6d395f69  gdb/darwin-nat.c
-950ab941f8bd34923d7296d870eb10c8  gdb/symfile-debug.c
-e2aa78c0ba6b110616f9d5fdcc97befb  gdb/stack.c
-96db12fd519ccf845977413529154a4c  gdb/ser-tcp.c
-416adc9ce2cdd36b551109659bcc0b8a  gdb/vax-tdep.h
-ed92a3e21bf9afb932b4ff7bcb16d0e3  gdb/ptrace.m4
-0a0a14943424e5efe60354d41632d4cf  gdb/mips-linux-tdep.h
-1dc3ce96f2bc880500e33b570171287b  gdb/i386-cygwin-tdep.c
-38ba714a60725c8b8d92df1af65e3e03  gdb/mips-linux-nat.c
-62911e70366f5eeb02f644b35fb88926  gdb/s390-linux-nat.c
-e7dd5f344cea2961df03f262ee710dce  gdb/linux-nat.h
-4e212c5fa5853503e0655997bab2ef7f  gdb/sh-linux-tdep.c
-a7be4c1e0959b3643c25ca7a62a4af7c  gdb/go-exp.y
-af79e5204462435426acc7fbc8107802  gdb/dbxread.c
-90d73ceb08fcf78139be0f4e6fa17d99  gdb/remote-notif.c
-a0e084273414d79918bb352ab363f83d  gdb/aarch64-linux-tdep.h
-5aa49d64dd6bd34a66b2b1a992bebb3e  gdb/aarch64-linux-tdep.c
-ebbe9b901007f9fba62302b45e8e95c9  gdb/f-lang.c
-5cbbc096ff2d0834d330a1df4f6fcab4  gdb/break-catch-throw.c
-a8fb3f149642649cf6a6e7f3facbb4a4  gdb/rs6000-aix-tdep.h
-dfc9c9945aa632a0bebb075b49f9f633  gdb/gnu-v2-abi.c
-29baf2cd1971a66707159495d8d3b95a  gdb/block.c
+2ec268ee4ada237e55e50b3e245a1a81  gdb/regcache.c
+694c1df80fe473885ed01e6bdbd7b576  gdb/thread.c
+eec07e94e8ab80e7d783ab1bcb001618  gdb/gdb_buildall.sh
+96b9cf9b15530567f100db1c8bc3ed53  gdb/target-descriptions.c
+081ae556924dcc9116abc850d87636b5  gdb/target.c
+bf78c75199c4568f2b60c4c665440914  gdb/remote-sim.c
+b6027f7095abfb984b654997e8000520  gdb/rl78-tdep.c
+80cc19cca9e481f5cf8a1639150419aa  gdb/i386-sol2-tdep.c
+8303fa48f2e63f05d9d5579bd4d3d58b  gdb/frame.h
+f044417404f6ae0c8dac89b4a1c420bb  gdb/spu-tdep.h
+09f6265c0b9d72d784169ce0cfa94b84  gdb/darwin-nat.c
+8cb8afe0679d953fdc3029ae006d02a6  gdb/symfile-debug.c
+863a4a16ad201479613012b36fc1fcd1  gdb/stack.c
+d86fe1dda238ab5c5048f68c3e77baea  gdb/ser-tcp.c
+4e82906dae65f215ebfb7f9d19dd22a8  gdb/vax-tdep.h
+a1de1ed6c56a3ddf88a67d37e68bed5d  gdb/ptrace.m4
+9936255df466f297cfcd1228d9a2c69c  gdb/mips-linux-tdep.h
+e2bf7c661d3a4b2b2f10e324a0acefe4  gdb/i386-cygwin-tdep.c
+8222e84e049b5a6d848e7e22a227de02  gdb/mips-linux-nat.c
+2e5a63adb381fbcc61b348d9d17fce3d  gdb/s390-linux-nat.c
+ab7b4f155d4f18f36096fad79338fdd8  gdb/linux-nat.h
+485e09b5cde6bb575dd82702c22e7c4c  gdb/sh-linux-tdep.c
+40696a5758ba8777c922e10264552dd2  gdb/go-exp.y
+95747565b38d770f35b7cc5e3a5d6d4b  gdb/dbxread.c
+b79bf0d4df1c24d45695985ecf4d9032  gdb/remote-notif.c
+7fc733857220d977be1753bb536270d8  gdb/aarch64-linux-tdep.h
+d11e260d3bc06436037fb78db1cf39c3  gdb/aarch64-linux-tdep.c
+f9608701da59bffb74a570a334556f4d  gdb/f-lang.c
+92cccfe17e9b06965836d1a0a25ef723  gdb/break-catch-throw.c
+dab68109c15df636e61c7b8177b99c99  gdb/rs6000-aix-tdep.h
+e3a08b131a85b6b1a09122266cb5d5ab  gdb/gnu-v2-abi.c
+ea4dfef6c5e7870c92c37c74d978b27d  gdb/block.c
 797ede9d055ca6583632e7cec7ffdd5e  gdb/.gitignore
-e5d4020f467bc843f6879226cbc81831  gdb/alpha-bsd-tdep.h
-dc0c9cdcb276c7c5d66ec94e5ae7d751  gdb/aarch64-tdep.c
-7b12d6e044ea9b734fc15e065cf7faad  gdb/sparc-ravenscar-thread.h
-0aa63b73492410b94328762b9c965e45  gdb/m68k-tdep.h
-9b20e4eb28db46243bbc79ceb3bf48f4  gdb/typeprint.c
-fa65de2a1ced3c3eae79143e43535769  gdb/solib-aix.c
-1dc9fbe3b79c52b7aecda6abfecec30c  gdb/warning.m4
-97bfd102e6767da2192b163736a24ab9  gdb/ppc-tdep.h
-4b775436ae953ec1948e2c7fa4eefed9  gdb/dtrace-probe.c
-9898ca1b2bb7f5360b12aa85a13c5c60  gdb/configure.host
-06e30e43d1cd3ccb301fceb2835e03a4  gdb/x86-nat.h
-8980f40e0a0724822418fbd4163298f2  gdb/linux-thread-db.c
-a594ff69bb5204b3e1dbfb5ed6ec2b02  gdb/c-exp.c
-95776751416fc8fa360f01855a2b78a5  gdb/alpha-linux-nat.c
-8894be10a05f4410f11b3f7ff02651b5  gdb/ada-exp.c
-6b3a33c3eb0492bdfd1e34cfbc2e034e  gdb/tilegx-linux-tdep.c
-03ba40982b48a111dee6f31776706ddb  gdb/mips-fbsd-tdep.c
-33e7fed38637450996a0da7bab62cd93  gdb/m32r-linux-nat.c
-21ce0215f229524e1d6cbd3e09afa218  gdb/sparc64-nbsd-nat.c
-120a7b9efb8353a81d5f69f41e0aaae2  gdb/gdb_bfd.c
-8542b6e18a0eb924c4d10f4da14722cd  gdb/NEWS
-d71a091fa37a0fd76703d3f81e57fe5f  gdb/x86-nat.c
-7a153f67886d5f2aff5cfd2a7a1d7e6e  gdb/dcache.c
-4a0d90d9450714b60daccc14c9df7f06  gdb/ada-lex.l
-c62ba2033394d4e3f52a17a67ca98ce2  gdb/cp-support.h
-f2b32dfc783f66f2af37a56331f05259  gdb/demangle.c
-6c3105780e3c4469ae7e20ef1ef3ac53  gdb/yy-remap.h
-9a5c4001f48e9a353cba2032b355bcb8  gdb/gdb_expat.h
-04a3f5f98dc9daa7679a4a28702217a5  gdb/aarch64-tdep.h
-505562befd9040e731c78490447ca4f9  gdb/probe.h
-fde1f8d81eb1ae58dccde43e89e432d3  gdb/expprint.c
-5be21da44ec47b3ce3891667434efa6b  gdb/sentinel-frame.h
-3569f8ba0c70b14f66267c40c4496599  gdb/gdb-dlfcn.c
-26e3ff228342e5a539be0194be491a50  gdb/xtensa-tdep.h
-bbcf64ba7cecb11e0c3219131e118acf  gdb/amd64-darwin-tdep.h
-b74e57e5eed221e12de73d08b80313d6  gdb/gdb-code-style.el
-3f0807c7d5de1facd963e631f0dfd1cf  gdb/hppa-linux-offsets.h
-26f1d2c379c6117cc34db87200450c53  gdb/gdb_proc_service.h
-5b5c1931603a50bb20dde06e5e44a014  gdb/dfp.h
-4fd75ed966e81c3b86e027ef918edf8f  gdb/dwarf2loc.h
-be63c9ca6cf98baa722d38269c205a8a  gdb/i386-nto-tdep.c
-e487232ba5f8e86a0e7163e1e4ad75f6  gdb/obsd-tdep.c
+3eb26bb8a5a80ff351f23af72c71faae  gdb/alpha-bsd-tdep.h
+81ca19a0a94a9180c560287797777d6b  gdb/aarch64-tdep.c
+8f07b8c77be423bdb29b2c4a42c87478  gdb/sparc-ravenscar-thread.h
+0f7decb129c084c0d3fb704a564713be  gdb/m68k-tdep.h
+95fe86fc12b0be1023b46ee1b31ccf05  gdb/typeprint.c
+233aabf3ab7d221a0d49ad93eb709091  gdb/solib-aix.c
+a90a12ca7717fddf5de1057e1cdca4c1  gdb/warning.m4
+b5c43ad4aec100d70190078091d9f5b3  gdb/ppc-tdep.h
+7c1837d81b1f5ff75d6fc9b82f82e59e  gdb/dtrace-probe.c
+42b165ec3ece14eee76ad96fa7923ab2  gdb/configure.host
+263e5fce8dcc7e012da1da8af8fd1889  gdb/x86-nat.h
+83e5ab1ffa8cb04c8dfb6fe055796b44  gdb/linux-thread-db.c
+7269a9e48ffdbd93825d0827949c27b5  gdb/c-exp.c
+eba94a120752984051355dbaf3c6ab12  gdb/alpha-linux-nat.c
+74dfdb7c28864e5b5bf9c03fea163eca  gdb/ada-exp.c
+1e538a799e84d9920056dd814728514e  gdb/tilegx-linux-tdep.c
+8e669c0223eff4845c4f818622fe0da4  gdb/mips-fbsd-tdep.c
+195ff9b5cc821b49bef3e0eae7474621  gdb/m32r-linux-nat.c
+d4aa52c6d0057f3096d341f247aa715a  gdb/sparc64-nbsd-nat.c
+755759fa150e374855544a7b9f67f173  gdb/gdb_bfd.c
+10b924a2694ac751ca7da9e164a1b26d  gdb/NEWS
+483b846f169c233e402c7f975e07b031  gdb/x86-nat.c
+865f180239d4c74b54e902db6dd147a0  gdb/dcache.c
+9692b911a1d323ec70bc6e01f1657f03  gdb/ada-lex.l
+01ef630f983b3fd683bf7c5a287f7863  gdb/cp-support.h
+198229bc36fb6b46969e76e330b3c3ee  gdb/demangle.c
+10109597eead442b810e61ff495ea252  gdb/yy-remap.h
+719270c492aec9d583d1453fe9afd080  gdb/gdb_expat.h
+2ee06785de2d7f5e9dc1be60b32fc455  gdb/aarch64-tdep.h
+00fce1d55bea12aaf1fe652e09620d07  gdb/probe.h
+4b139f3d39e6552c316596e9d8d75652  gdb/expprint.c
+fd2e25a96b81abbc51010a9c7a98901a  gdb/sentinel-frame.h
+bd66e88b9288c1e0656aa036dc89a3a5  gdb/gdb-dlfcn.c
+65440bd71df383bce78eb2bd813b6f97  gdb/xtensa-tdep.h
+2cc5ac5c92b38f9737404f1611c8671f  gdb/amd64-darwin-tdep.h
+c3f4393c2413f36b52c7f58844697c59  gdb/gdb-code-style.el
+150cbd889a45bc8bb2ab8de10b0849c4  gdb/hppa-linux-offsets.h
+e15737080e9348be7159a5c40b785ca0  gdb/gdb_proc_service.h
+bcbaaaa5fa741c6accd8360670b59325  gdb/dwarf2loc.h
+05a9b26c0fb711973f9814666277fc43  gdb/i386-nto-tdep.c
+cbf4bb4777413dcfb5bd6d8bee835900  gdb/obsd-tdep.c
 5052b57de2fd8b3515777bb814bcd394  gdb/ChangeLog-1999
-f9dc9d9435a4a8c187aac13343be646e  gdb/f-exp.y
-dd80ffaca27449ca269e0a5b8665e5ce  gdb/jit.h
-844818744076423207e8a1f16b04d6ee  gdb/psymtab.c
-def075d47f3e4cc21c60ce1a893022d9  gdb/stack.h
+cd7b8ba4e18e28ba4ff7e5b524f8b980  gdb/f-exp.y
+54e839f7799f5ab74ff387691d6342e7  gdb/jit.h
+2ab6dc0d2e9f88b70de717b3a312d714  gdb/psymtab.c
+aaaa6f1f7fc6fb08e48575717e97f93c  gdb/stack.h
 da71c479b68a4d95a79d36640b93c9c3  gdb/ChangeLog-2000
-49f6ff728aec88308fa276245e31ff36  gdb/tic6x-linux-tdep.c
-2a8d9a74110e4b670df0b4f1fd672ae0  gdb/gdbarch.c
+23a5c9c3444c28c89aed5d3bab864bba  gdb/tic6x-linux-tdep.c
+1b5fa5eb5bf14e121e264d1ede459b06  gdb/gdbarch.c
 ac3684c4a3658e1fd2ef5be5f457ec12  gdb/CONTRIBUTE
-ff2482cf20e288ce3d5b333345a20e2b  gdb/mep-tdep.c
-cba51ec62a5a3e4b229edad9790046b3  gdb/opencl-lang.c
-f99ee4d5a046cd4905715730a5291e8d  gdb/mn10300-tdep.h
-e1685d41ad2e7266a6be659871df07ba  gdb/thread-fsm.h
-77e3ecec5bf205af5889bb3112996e66  gdb/tramp-frame.c
-272bb6e55216127e30142987bad71209  gdb/arm-wince-tdep.c
-a5f0cf002bfa04efe808de9750af100c  gdb/target-debug.h
-f4f7ae85a213189c0125a73fbdaf828d  gdb/ia64-linux-nat.c
-beaec290855e10eb5f33f7c92355b844  gdb/cli-out.c
-6998d20fae71cd974a1952aa161914d2  gdb/main.c
-ff92c00bea58704c5b9678df84a520b0  gdb/acx_configure_dir.m4
-38aac755f00089ab95645f6c80da2d8c  gdb/proc-service.c
-efa158c51fab9277e5b4bb7653a42361  gdb/inflow.h
+22cf173c084eb35e28345d3512bb3e28  gdb/mep-tdep.c
+583c961f990149c65055f8acde95d973  gdb/opencl-lang.c
+3d027cac6019ae876866bbffc91eb5d2  gdb/mn10300-tdep.h
+adf42b0a0fe79811fe9bad72d26bef49  gdb/thread-fsm.h
+779c2c69ea9b6926780153532951e708  gdb/tramp-frame.c
+dee9938a50ea4d4a2381dd799cf1a159  gdb/arm-wince-tdep.c
+05818181f93b292377b013e7000617ae  gdb/target-debug.h
+f1de5daff68cb58215fe4e3f2781fdbc  gdb/ia64-linux-nat.c
+e5963c4eb5a89dc9ecd1687257249b24  gdb/cli-out.c
+0f257bf2144ccdad0aeb7d3a56173318  gdb/main.c
+f8b3948081308df3a0bfe84dfb932fe1  gdb/acx_configure_dir.m4
+086fc7941ce6090366334a3335fdde2b  gdb/proc-service.c
+ac36bb114421b87c3e87454916701cec  gdb/inflow.h
 16676b9547f9a7ac95c648ec5962cbc5  gdb/ChangeLog-2010
-8d763885b3578c404f5b8d734d12c0a6  gdb/glibc-tdep.c
-5103396bb62ff20e7ec4074d3cf5ac64  gdb/gdbcore.h
-422460c61a6c64ddc74ec3d9dec64ebe  gdb/inf-loop.h
-c42ff85e0bb8ec36e7da9da677211421  gdb/alpha-nbsd-tdep.c
-3bb6981dbe90d79b8b08e45784975273  gdb/ui-out.h
-0a5d450a97d1572701ec90ed4e4b4eb7  gdb/addrmap.c
-e2ac47aebb0eaefb8c9195247a373d42  gdb/sentinel-frame.c
-ddafac86daa9a86d5c21449bc2d0fbb9  gdb/score-tdep.h
-4b016cd9b0a713c1b681fdbd070a66aa  gdb/gdb-gdb.py
-ab150094325d56ae05ba59d84d7f1069  gdb/coff-pe-read.c
-a0bc36a138527c532887a687099a1472  gdb/bcache.c
+964ba69ba72f5606a25e8bd67c42684c  gdb/glibc-tdep.c
+ac09d78ab375c2a820faa30da4165ba1  gdb/gdbcore.h
+f3da64b1677bdff051f6e76ff968fc66  gdb/inf-loop.h
+3af5d1d00b36405302bd30e0a61b189d  gdb/alpha-nbsd-tdep.c
+5d6b8008b10b61427c24a151f9981b6f  gdb/ui-out.h
+68b8a36fde7893e96b239cb9d71405a4  gdb/addrmap.c
+f7d6c2dfef56d4db9a0e93ce2e830900  gdb/sentinel-frame.c
+fa1440bcc011b9fc8a6a501318aeb16d  gdb/score-tdep.h
+e306e8a33e05fb16fe99185ca4a1972d  gdb/gdb-gdb.py
+72569b7402305f0dc04a9b09599a6535  gdb/coff-pe-read.c
+90f0c90b6728b0bad96366815ecf5fc6  gdb/bcache.c
 e82e1a53dbb63d792fc8645192a4b2cb  gdb/gdb-gdb.gdb.in
-2158da0798307bddbc679c0081ea0e61  gdb/rust-exp.c
-a88a4e8def94fab4015861ee4b1d9238  gdb/i386-linux-tdep.h
-f318ddca2db2704f2ee0d8aa7b00067c  gdb/tui/tui-winsource.h
-8429e8ade4274d5d0afc029ab0db3276  gdb/tui/tui-stack.h
-cab0962b1d8c32c25e502b5e57050100  gdb/tui/tui-disasm.h
-ee766119f13b7d004fcc007cff5cb1c0  gdb/tui/tui-command.c
-3ba9eca5ea4b86a0e1c7710117bc75a2  gdb/tui/tui-hooks.h
-6dc20cf840fbe1062fd32dbd1fe7b5c7  gdb/tui/tui-hooks.c
-6ca7de3b75d96e55ac205ce548c8eb34  gdb/tui/tui-out.h
-5effe65a3d18f6e88a876cf08996bd0d  gdb/tui/tui.c
-53da315783a0a0e7b4ec6065fc528bd5  gdb/tui/tui-disasm.c
-041670659afdb0bb3aa37f6ecf3866d8  gdb/tui/tui-io.h
-9597e7806e487425be3d482eda5d710a  gdb/tui/tui-layout.h
-1dfb2fbe80812214a09ec2232c14b029  gdb/tui/tui-command.h
-1807fab6bc2232add4b75901965851aa  gdb/tui/tui-stack.c
-6af3fb1c72f2b3713029e3ac1974615c  gdb/tui/tui-source.c
-950622f45b578a7b4b40ea3f401ddf9d  gdb/tui/tui-io.c
-08874208698b85d5f28ae53369b944b5  gdb/tui/tui-layout.c
-80a031bb0c787dcd229da3c5a4aa15c7  gdb/tui/tui-wingeneral.h
-8575f259838d0b5eabefe4227c15de97  gdb/tui/tui-interp.c
-2fc6c4138a932502c63776d09676f0a7  gdb/tui/tui-windata.c
-c6822d78ec9dfa731ebee21d207932ac  gdb/tui/tui-source.h
-f93b714df6ec1f83542e533f6a414e5c  gdb/tui/tui-winsource.c
-11ab93d875993873138d0ac237c3fefe  gdb/tui/tui-windata.h
-68463cac3b4ac31abb42538d48cc695e  gdb/tui/tui-data.c
-615b65c84c1a19a218c2a43b18ea27c8  gdb/tui/tui-regs.h
-d692cd3559160bf3882db91dc4e96af3  gdb/tui/tui-regs.c
-b0277a839fda9d8bcb1fb5f18a817e3a  gdb/tui/tui-file.c
-00eb53ff8de0baad2a95383b6c1c8e48  gdb/tui/tui-file.h
+d3a5df803e81a1b268adc0acbb921370  gdb/rust-exp.c
+eff0ec95e3c4a239a8367a03d551af76  gdb/i386-linux-tdep.h
+a380b8a6157cbfefdd0a394ae4d5b2b4  gdb/tui/tui-winsource.h
+a3d242c361866800669a06d0ef84c027  gdb/tui/tui-stack.h
+df761f864bb76d720587822654a867e7  gdb/tui/tui-disasm.h
+e58642b387a7e30225cf35c653de1769  gdb/tui/tui-command.c
+657e916c1f89b07d05fa164bcfaf7a63  gdb/tui/tui-hooks.h
+c9eae232ea2ebec6bc8829a5e1612bb6  gdb/tui/tui-hooks.c
+e5483b33d96fd00a0ed72ce0d6887732  gdb/tui/tui-out.h
+7a5ff171f3e4dd06e0c19c8d1fa7599d  gdb/tui/tui.c
+c6bc9d1b76f42f451b44ada95a6880d8  gdb/tui/tui-disasm.c
+45cb9a5ab1cb881484d139afb75af8e5  gdb/tui/tui-io.h
+7bbf9bc6db41596096e56ae2c5e60395  gdb/tui/tui-layout.h
+c3b28a10c8995c690cc40934c1646621  gdb/tui/tui-command.h
+48b31f9ea2d2cb6bcf0cdc15fd4f03e4  gdb/tui/tui-stack.c
+c84df5403fbd5d68fcfdda1020d4dc9f  gdb/tui/tui-source.c
+b91db0d3209d583f9b3753067f226d49  gdb/tui/tui-io.c
+628171a03948b58b88d9488d935472e6  gdb/tui/tui-layout.c
+ef3b95159534b326879eb3d8a4f19ca2  gdb/tui/tui-wingeneral.h
+5a9967119ce5734e2c074504ea729201  gdb/tui/tui-interp.c
+014d88399f57c145e9a13be6f2b39167  gdb/tui/tui-windata.c
+b97166c7107b2170ee5d7a20622e5e1f  gdb/tui/tui-source.h
+c8b347a8edc7e045601a465706469342  gdb/tui/tui-winsource.c
+61bdc31ce0613027c51cc61d195fa99b  gdb/tui/tui-windata.h
+b2c8a569a5904a344f812332b2cddf99  gdb/tui/tui-data.c
+9401c3192f0ab6889e4e741838a11afb  gdb/tui/tui-regs.h
+d108f00dd0b650b065ba0aaaa19989bf  gdb/tui/tui-regs.c
+cae8ae6561ff260d986f6842da5e5afb  gdb/tui/tui-file.c
+d908a58c10c2085f530ceaa6c833b92f  gdb/tui/tui-file.h
 0415f3bd7a379430b752618c1e8c7cd4  gdb/tui/ChangeLog-1998-2003
-ac6a2933d1fb8ce8775e7102ef2996b4  gdb/tui/tui-wingeneral.c
-7d50caf1fa4d88e0c67c21d9ff8f5055  gdb/tui/tui-out.c
-ab0455d59f7a1f47b998da3cc7fbcce9  gdb/tui/tui-win.c
-75217a049e16a8284fae23948195e76b  gdb/tui/tui-data.h
-88c62ab35e13c36a9d486ece6f9ce3fa  gdb/tui/tui-win.h
-0134ea4681812bd95b61a83fddf5f5b9  gdb/tui/tui.h
-789397e65bdc555d564dc9c86887ef8b  gdb/target-dcache.h
-7806f95aaf1c800703665366b3544cf2  gdb/ui-file.c
-bd9fcb728e6e0d937b75a181bb5356a0  gdb/m2-exp.c
-44ac2c4fc839e74e254cae1686c3bda6  gdb/ser-base.h
-d72265d947bf58f82bebf09772d62915  gdb/record-full.c
-faa957b9b53856dcac56c8ce269aa649  gdb/nto-tdep.c
-f31b3af75c44e06f73cd616e812279a6  gdb/m68hc11-tdep.c
-cf03a86d802910a0506c3b4788391417  gdb/registry.c
-1cf82e2573512166c87655a06edbebdb  gdb/d-valprint.c
-b54e46f83a8c280b9d54e1b224d93fd5  gdb/ada-lang.h
-de3ec3e53732e4ea388050e93ed10ab8  gdb/mt-tdep.c
-9fb65bfb7543cb5103302b8a4cd341d6  gdb/gnu-nat.c
+faeb9f0751b7b10bd8a21fbf89f80f7d  gdb/tui/tui-wingeneral.c
+bcfb18437e99eae4539c1584bf7fb169  gdb/tui/tui-out.c
+90475ecd09fb2845c73e7774851210e7  gdb/tui/tui-win.c
+73cafa1632d95d0ca250214ee730441d  gdb/tui/tui-data.h
+b536d7b362aaf500fabed11b5a2f141a  gdb/tui/tui-win.h
+e99a1689b0622fad6abea7ff0d8d4673  gdb/tui/tui.h
+55464ef669b4cad991eb9bb136250f3f  gdb/target-dcache.h
+cd43792df6ffaada80711ef99beac814  gdb/ui-file.c
+6bd4e41403627894be199f31fdd22a3d  gdb/m2-exp.c
+023b3f0ef7c9413d6ae1a03fc4512338  gdb/ser-base.h
+fd4f984f357ac8253a6017e311f7d3d1  gdb/progspace-and-thread.c
+3bc47ef0ca08d09a0234ff5e812363cb  gdb/record-full.c
+f4ecb14a55d9e54c25dd890c5a93983c  gdb/nto-tdep.c
+a9eea99383f13fbda634d1314ad051b6  gdb/m68hc11-tdep.c
+3ff77873f6692944b1c524dbb6f17859  gdb/registry.c
+5943bffab8f0706a4faaa19fe025dad6  gdb/d-valprint.c
+c40c531777ecc845d14dd9b46caa5229  gdb/ada-lang.h
+c899e480dcc4e018e287016f172c29b2  gdb/mt-tdep.c
+13c0d20be7423c190151aa1a8560ad55  gdb/gnu-nat.c
 31c83b4bb1c5c9c771fe8e1ec3f1e9ba  gdb/msg.defs
-361ee3f1c0c49bcbbd2c6cf061dbe392  gdb/arm-linux-tdep.h
-7c3e422b05c3f6770c8b5e60ff02817f  gdb/bsd-uthread.c
-bb24de7cb0316e201fad5fb87be3ceff  gdb/aarch32-linux-nat.h
-31351f1e3c12f1824463291d8ad3d709  gdb/inf-ptrace.h
-430b2c73d9d98ffef076f419781b8da0  gdb/findvar.c
-2114db79d7c253a6983c2471441b73e9  gdb/alpha-tdep.h
-dec2482f87ef17db6ccbbfba164e3797  gdb/ser-pipe.c
-691ed84bafe057fc4c431db2018dc94a  gdb/p-valprint.c
-9d9c714400f568ca50ff5d087dd74ebc  gdb/macrocmd.c
-7c32969bed495e86b7a79347ef52ae0a  gdb/arch-utils.c
-1c8174af0aa38d75fd5ccc7eba4e5470  gdb/cp-valprint.c
-90d58150f320a46e5d9ab6def53cba61  gdb/gdb.h
-41925a15aaee36b9b92d52ae85c4cd4d  gdb/disable-implicit-rules.mk
-14bf41cfbf12f8696ec6508a5049d323  gdb/dwarf2read.c
-da142efbb9dfd46c8a2e80d09b452c5d  gdb/amd64-windows-tdep.c
+c5a6da46b3f28f588924bce923299b95  gdb/arm-linux-tdep.h
+f842cfc88a895b3df049a19bfc8514d5  gdb/bsd-uthread.c
+0e93a6bc18f45c245d71661c27920419  gdb/aarch32-linux-nat.h
+fa7395dff72e1279aca91a8b71d1c1a7  gdb/inf-ptrace.h
+aba012de0b651fe3fcbef41761509072  gdb/findvar.c
+c311d3a15e412d63bc5b150bca5c7a49  gdb/alpha-tdep.h
+83490fbe641715d2bad8f5e2366a0f83  gdb/ser-pipe.c
+f0e544d359bdf9061b63242e2d1c87b8  gdb/p-valprint.c
+2a53c523dcdfe89148f025a641569b17  gdb/producer.c
+d3895a83abd146ed27a0745e3fb61dee  gdb/macrocmd.c
+11afd8bd348b744ff00c9f6296b4cf9e  gdb/arch-utils.c
+1c4b00c32052d767e9a8f3c488394a94  gdb/cp-valprint.c
+66f799c8dd14357e25888b2221b0ea52  gdb/disable-implicit-rules.mk
+dcca461a9ba55f5d64d2b4a8c5eeafac  gdb/dwarf2read.c
+f246f66e91ac6bc86a7849a277b049f2  gdb/or1k-tdep.c
+5ce0b26d5b7cb48ce263dbdcf2f86814  gdb/amd64-windows-tdep.c
 e4708e4b23e4e6ddd07c7245736d37b3  gdb/testsuite/config/cygmon.exp
-a2839f73b79c2e147b1e427b811c67f3  gdb/testsuite/config/default.exp
-0cbcea101daf6a1c921802965ff404c3  gdb/testsuite/config/i960.exp
-38bb193fdb034133c2e6603c2fed1a70  gdb/testsuite/config/sid.exp
-8d4ec325ac2b7b6abad0a65cdcb6a457  gdb/testsuite/config/m32r.exp
-45b1b8b152724ac7b520083bc2054895  gdb/testsuite/config/slite.exp
-0cbcea101daf6a1c921802965ff404c3  gdb/testsuite/config/vr4300.exp
+7947cc334d9e75c1b2fe49d56960dc04  gdb/testsuite/config/default.exp
+7b3184c5804236dd595bc01c0353f430  gdb/testsuite/config/i960.exp
+eb70fa5bd0bc0ed4829ba9853746473a  gdb/testsuite/config/sid.exp
+f9d04de550ae926eb6ccdecd77e65658  gdb/testsuite/config/m32r.exp
+b95227a58f4119cabf50666fed78f609  gdb/testsuite/config/slite.exp
+7b3184c5804236dd595bc01c0353f430  gdb/testsuite/config/vr4300.exp
 e4708e4b23e4e6ddd07c7245736d37b3  gdb/testsuite/config/bfin.exp
-0cbcea101daf6a1c921802965ff404c3  gdb/testsuite/config/rom68k.exp
-f46a250d2f188dca9ffdde4286eeb214  gdb/testsuite/config/mips.exp
-df577e26611626bbf1292370f426d919  gdb/testsuite/config/sim.exp
+7b3184c5804236dd595bc01c0353f430  gdb/testsuite/config/rom68k.exp
+58eab24603f8704b209ac2379df7c467  gdb/testsuite/config/mips.exp
+9f63401e3f56adb8c2a012d31bb7448e  gdb/testsuite/config/sim.exp
 e4708e4b23e4e6ddd07c7245736d37b3  gdb/testsuite/config/arm-ice.exp
-e045f0efdf7901c45fb51a5089405ec1  gdb/testsuite/config/extended-gdbserver.exp
+c2fcf3a93587d9c0ff798bf58cbf3e1c  gdb/testsuite/config/extended-gdbserver.exp
 e4708e4b23e4e6ddd07c7245736d37b3  gdb/testsuite/config/i386-bozo.exp
-3f12a3f5683c9454ada18a598321adb2  gdb/testsuite/config/mn10300-eval.exp
-14682235b419725e6580e25f3c8b957b  gdb/testsuite/config/gdbserver.exp
-0cbcea101daf6a1c921802965ff404c3  gdb/testsuite/config/vr5000.exp
+55445ef070b3f708e26f8e0836948577  gdb/testsuite/config/mn10300-eval.exp
+342ee8338ba0e59e728082d9b9dd47bf  gdb/testsuite/config/gdbserver.exp
+7b3184c5804236dd595bc01c0353f430  gdb/testsuite/config/vr5000.exp
 e4708e4b23e4e6ddd07c7245736d37b3  gdb/testsuite/config/h8300.exp
-0cbcea101daf6a1c921802965ff404c3  gdb/testsuite/config/sh.exp
-408d549c53e856354a147b90df585c78  gdb/testsuite/config/cfdbug.exp
-cdf8a802780e3d7dedd85655574b36e4  gdb/testsuite/config/d10v.exp
-f46a250d2f188dca9ffdde4286eeb214  gdb/testsuite/config/mips-idt.exp
-0cbcea101daf6a1c921802965ff404c3  gdb/testsuite/config/proelf.exp
-3f12a3f5683c9454ada18a598321adb2  gdb/testsuite/config/dve.exp
-88dd559cf80f384f41bf282d48c277f2  gdb/testsuite/config/monitor.exp
-c5b5cf7a4aac934e3f1cd9a0d33f2ce2  gdb/testsuite/config/unix.exp
-17f599290d34961acc812edaa3c88467  gdb/testsuite/gdb.compile/compile.exp
-30c3572bc6605b2fde1aae6da300bd36  gdb/testsuite/gdb.compile/compile-print.exp
-47f18359d097da623239bdc0567d4070  gdb/testsuite/gdb.compile/compile-print.c
-b49d8880c86e16a78b6aac3d9719f644  gdb/testsuite/gdb.compile/compile-setjmp.c
-32872ff5786ad8696c98a09e74dbc458  gdb/testsuite/gdb.compile/compile.c
-7db7f5666d05b9ce2d94741c5b5246d0  gdb/testsuite/gdb.compile/compile-tls.exp
-49321e29372eca8a8643bbfd1efa1f9f  gdb/testsuite/gdb.compile/compile-mod.c
-2515bfcf80bb29390af7f391a6ac6642  gdb/testsuite/gdb.compile/compile-ops.c
-e7fede6ce614d995300b5b4b9164feb7  gdb/testsuite/gdb.compile/compile-shlib.c
-34f8e2dd8db33cf7dd3ab479be57333e  gdb/testsuite/gdb.compile/compile-ifunc.exp
-5e44e104e554a226a9ca4131ecc9b697  gdb/testsuite/gdb.compile/compile-constvar.c
-da8d46ee23c20bc0d3068fcdf4762987  gdb/testsuite/gdb.compile/compile-tls.c
-a9a01ea632aa85bf8a032fa3c5ae2ea4  gdb/testsuite/gdb.compile/compile-setjmp.exp
-32eee25bea188c72804b54d6d7f6c9b3  gdb/testsuite/gdb.compile/compile-ifunc.c
-453225484d8bcb9a161cbb8cb66d7a74  gdb/testsuite/gdb.compile/compile-setjmp-mod.c
-a266cfda86ecec2c054bb6e5961825f9  gdb/testsuite/gdb.compile/compile-nodebug.c
-5cb3587a20aafa3d40095b993b025dea  gdb/testsuite/gdb.compile/compile-constvar.S
-5b654ea368393752dd7ef86f51e9e8b3  gdb/testsuite/gdb.compile/compile-ops.exp
-ab53e9801ecf2e5345d37098f789cf0a  gdb/testsuite/Makefile.in
-33fef7e462da68a4bfbcc188f42d4c36  gdb/testsuite/gdb.cell/data.exp
-a30538337b897b3b86ec7eb3060e947c  gdb/testsuite/gdb.cell/ea-cache.exp
-3fad54290aafb5c05d7062553cb83d4e  gdb/testsuite/gdb.cell/ptype.exp
-56d96aed6e450018a6f88cb8a0853bf0  gdb/testsuite/gdb.cell/fork-spu.c
-9f339dcdba16fcdf98f10423fbc98483  gdb/testsuite/gdb.cell/solib.exp
-093fed229e77339de6d1b43124e945ed  gdb/testsuite/gdb.cell/bt.exp
-88ab9d6e0c76f05cc3440e831353cfc9  gdb/testsuite/gdb.cell/arch.exp
-6b84bd9207619efb311eebdac0d82541  gdb/testsuite/gdb.cell/data-spu.c
-4c3728d76f00978bd07dc760ec292365  gdb/testsuite/gdb.cell/break.c
-d0df92057cff550fda60069b8c39a1f8  gdb/testsuite/gdb.cell/size-spu.c
-52a69be54869823702d401119e845443  gdb/testsuite/gdb.cell/ea-cache-spu.c
-18ab808688e6f94f886634432b19c578  gdb/testsuite/gdb.cell/ea-standalone.exp
-a080014f153bcca4d6d5db964775a583  gdb/testsuite/gdb.cell/ea-cache.c
-a69fe449d5fc68318bfefbc306bf69fc  gdb/testsuite/gdb.cell/fork.c
-57d078f0e2b017aee6d44c11209629c3  gdb/testsuite/gdb.cell/mem-access-spu.c
-a476d698e10e57be04acb328bfbc4626  gdb/testsuite/gdb.cell/registers.exp
-7135bca065a145ddd16c975008a67cd6  gdb/testsuite/gdb.cell/break-spu.c
-33f68562a33638119aab3f031d1c588d  gdb/testsuite/gdb.cell/mem-access.exp
-0842cf61103497247bdc2195f73b4d7b  gdb/testsuite/gdb.cell/dwarfaddr.exp
-11c28433304ed7dcb9d0c6246297db11  gdb/testsuite/gdb.cell/data.c
-f4d5e50d4622bfc97e66f843bfc915df  gdb/testsuite/gdb.cell/bt-spu.c
-b40799c7ce0403f14615b53e14ea18e2  gdb/testsuite/gdb.cell/bt2-spu.c
-6cf41a0457b2a33cb6f58964958a4602  gdb/testsuite/gdb.cell/gcore.exp
-ad6451db9f886369d903654eee6abec5  gdb/testsuite/gdb.cell/dwarfaddr.S
-c412661497685251462e07410d04daa5  gdb/testsuite/gdb.cell/fork.exp
-b6236dcb710fd5fa2757cb4156119179  gdb/testsuite/gdb.cell/solib-symbol.exp
-decc92131d277ac55036b4ad150c24ff  gdb/testsuite/gdb.cell/break.exp
-2c6ed78e4815b286c4f68c50dd6f9cb7  gdb/testsuite/gdb.cell/coremaker.c
-dde95653e3615f36e85f8b255386de7e  gdb/testsuite/gdb.cell/mem-access.c
-027db99b45b93ba627c9e3432a1ce4bb  gdb/testsuite/gdb.cell/ea-test.exp
-5224c9479a8538c0014330f80883c86c  gdb/testsuite/gdb.cell/sizeof.exp
-64174e64bded41c56dbfd53161b89b48  gdb/testsuite/gdb.cell/ea-test.c
-8c97c25414406d290150b3d0d519c719  gdb/testsuite/gdb.cell/core.exp
-1acf6647da363a6596048fe1567459cc  gdb/testsuite/gdb.cell/ea-standalone.c
-2197127c2c3c616e0333fff4ccd51b42  gdb/testsuite/gdb.cell/f-regs.exp
-dd54c38a3a3ee7b06bf2cf7839cdc05a  gdb/testsuite/gdb.cell/bt.c
-4c9fc3b2e9d8645fc98fae3f13bc80f9  gdb/testsuite/gdb.cell/coremaker-spu.c
-ab92ca684d7e61b6b990efbfcac8877b  gdb/testsuite/gdb.cell/size.c
-30548613d11d0b22ee9f8dc684a61eb5  gdb/testsuite/gdb.perf/skip-command.exp
-0ad663ac997fe356bc5ee4dc004aa707  gdb/testsuite/gdb.perf/skip-prologue.c
-387ea0a1ecb48c79642ec8b1785b7696  gdb/testsuite/gdb.perf/gm-std.h
-f9f355993182d66d9e70b8ccb734368b  gdb/testsuite/gdb.perf/single-step.c
-e55db0a8f94900fd35aa8375a3e14d40  gdb/testsuite/gdb.perf/gmonster1.cc
-380ef54bb9f207726ee61699485832b9  gdb/testsuite/gdb.perf/solib.exp
-655b0e5a95e557474af74423e1bf1fb0  gdb/testsuite/gdb.perf/gmonster1-null-lookup.exp
-5143a7524856d23a8d2a7daab49d4f1d  gdb/testsuite/gdb.perf/solib.c
-2cf5e1c2c249c12b97082c1e46d561ef  gdb/testsuite/gdb.perf/solib.py
-1ffa5849a7a2ef3b5d757a4fd00528f6  gdb/testsuite/gdb.perf/gmonster2-runto-main.exp
-c612f893b079da0017d58626422939a1  gdb/testsuite/gdb.perf/disassemble.py
-bb5fec365b292b7e3654f99c203c08f3  gdb/testsuite/gdb.perf/disassemble.exp
-f16dd4a0902710350c4e49001bfbaf58  gdb/testsuite/gdb.perf/gmonster1-select-file.exp
+7b3184c5804236dd595bc01c0353f430  gdb/testsuite/config/sh.exp
+265ecf3c2d9b2240927724a9deac5e28  gdb/testsuite/config/cfdbug.exp
+f8418be53031d55597bb8cbc75ac56f8  gdb/testsuite/config/d10v.exp
+58eab24603f8704b209ac2379df7c467  gdb/testsuite/config/mips-idt.exp
+7b3184c5804236dd595bc01c0353f430  gdb/testsuite/config/proelf.exp
+55445ef070b3f708e26f8e0836948577  gdb/testsuite/config/dve.exp
+8ef3ef72b101fe66bc5a11d18257f77b  gdb/testsuite/config/monitor.exp
+a46c196d5571f9b4b1a2fb781c13dff3  gdb/testsuite/config/unix.exp
+5a6cb7520580670ca6ab82656d2474d6  gdb/testsuite/gdb.compile/compile.exp
+6f14b3f423c82f6f7034adce80923c3f  gdb/testsuite/gdb.compile/compile-print.exp
+ddde74dfa986d7a5431cbfd9b4ecf30d  gdb/testsuite/gdb.compile/compile-print.c
+87314782da00a13b19496e46f23c4c92  gdb/testsuite/gdb.compile/compile-setjmp.c
+29322841151f150529d175b742fdcf34  gdb/testsuite/gdb.compile/compile.c
+482f082c5a990670bf1b67483ce20688  gdb/testsuite/gdb.compile/compile-tls.exp
+00d5fc7027019db0de286538a22156e0  gdb/testsuite/gdb.compile/compile-mod.c
+3ffc89191e23c7bff3ae0776aa91d519  gdb/testsuite/gdb.compile/compile-ops.c
+c821d605e3eced009cc38f0301d53854  gdb/testsuite/gdb.compile/compile-shlib.c
+cea66e647e9bdc685b15b698d1619e47  gdb/testsuite/gdb.compile/compile-ifunc.exp
+bf2716310ae610e2555dda76041fd2e6  gdb/testsuite/gdb.compile/compile-constvar.c
+a3477e47c82031f574b65560623e2eee  gdb/testsuite/gdb.compile/compile-tls.c
+b41275eb84d65fd1d8b621b70edec329  gdb/testsuite/gdb.compile/compile-setjmp.exp
+d67b84c452ea163c8089032b987a162f  gdb/testsuite/gdb.compile/compile-ifunc.c
+d915833852a184b74a8888d919dd6fa7  gdb/testsuite/gdb.compile/compile-setjmp-mod.c
+e8af8a702810679fdb5632c97000feeb  gdb/testsuite/gdb.compile/compile-nodebug.c
+179de42a4fe9e0aaae01341167bc371b  gdb/testsuite/gdb.compile/compile-constvar.S
+06f0b09e230197515e223530b7c59b38  gdb/testsuite/gdb.compile/compile-ops.exp
+679716d0547cd4eedbaf425e5ac459f4  gdb/testsuite/Makefile.in
+459b4f6d733df911700710c5f160e2e7  gdb/testsuite/gdb.cell/data.exp
+e8752ac5c4d1dc462c500edb94257fd5  gdb/testsuite/gdb.cell/ea-cache.exp
+bc6d6fc0041c6aeac0a059f36d7771b6  gdb/testsuite/gdb.cell/ptype.exp
+cd6f761b0389d042dfc69a826dc9910f  gdb/testsuite/gdb.cell/fork-spu.c
+7e7c374964fc9e2d6a5c1ed135511cbe  gdb/testsuite/gdb.cell/solib.exp
+483b988c95bcd9c95340ce45636a579c  gdb/testsuite/gdb.cell/bt.exp
+a8a93c416cbd42508ada8e5ff422affb  gdb/testsuite/gdb.cell/arch.exp
+3197c3db6970db4edfe9988eebba40d4  gdb/testsuite/gdb.cell/data-spu.c
+0275cd2cfbbb83011b599d9395c32a7b  gdb/testsuite/gdb.cell/break.c
+e4d13c1612adb0cb9c47ab78b85dc946  gdb/testsuite/gdb.cell/size-spu.c
+87692c663caf7e734c3df5aa8ea1adbf  gdb/testsuite/gdb.cell/ea-cache-spu.c
+15b918272b7fb0094277d060c5f64bbc  gdb/testsuite/gdb.cell/ea-standalone.exp
+2507972f9c66e744efa867149941e764  gdb/testsuite/gdb.cell/ea-cache.c
+3066e026197b0fe6ffcba57f51eaaf29  gdb/testsuite/gdb.cell/fork.c
+1a3372f1dfb10cca2f7c6b2645819d04  gdb/testsuite/gdb.cell/mem-access-spu.c
+ec1e6079b164d13e9610fe44077a97fc  gdb/testsuite/gdb.cell/registers.exp
+86c9128f2cb4cf05725b559384f17402  gdb/testsuite/gdb.cell/break-spu.c
+eff64665382472477072f27b97873d3f  gdb/testsuite/gdb.cell/mem-access.exp
+93014c0455b44d86d60918b957f850d9  gdb/testsuite/gdb.cell/dwarfaddr.exp
+a32c24a1d87de59813b7181ca1dc2d62  gdb/testsuite/gdb.cell/data.c
+f369e55c3d3d3810a79525352c04fa4e  gdb/testsuite/gdb.cell/bt-spu.c
+51478bb41953ebb25768dc354344d1a6  gdb/testsuite/gdb.cell/bt2-spu.c
+7ecc48965cf4f0c6206803581cbbde88  gdb/testsuite/gdb.cell/gcore.exp
+f6caf993b477693ecdaf4fbd00e86205  gdb/testsuite/gdb.cell/dwarfaddr.S
+2fc35792833249caf9565b8fb4b0a588  gdb/testsuite/gdb.cell/fork.exp
+2128148ea5659c8907c480ce24a19c55  gdb/testsuite/gdb.cell/solib-symbol.exp
+516d26a56fc3ab12cddd9ab07530503d  gdb/testsuite/gdb.cell/break.exp
+b0af6cfe177e36eb3fbe6bdc03940e01  gdb/testsuite/gdb.cell/coremaker.c
+3fd877511eb3fc2731136e5e7eb37f5d  gdb/testsuite/gdb.cell/mem-access.c
+dea4fdc2a47d0dd3e4b2a8042712ef05  gdb/testsuite/gdb.cell/ea-test.exp
+314f9bf9723bd7aa2b59a5349bda751e  gdb/testsuite/gdb.cell/sizeof.exp
+8c0e5e7e7188b0ca802f6db48e704b02  gdb/testsuite/gdb.cell/ea-test.c
+4f6e39803d49ebbb30e097008fb020f0  gdb/testsuite/gdb.cell/core.exp
+3662b1b7ddb8d307785585369165312f  gdb/testsuite/gdb.cell/ea-standalone.c
+33d6e20f97901c399aee2cf87a5ac7b9  gdb/testsuite/gdb.cell/f-regs.exp
+567a2d0665e99bf93c3cbce8d2a5b2e5  gdb/testsuite/gdb.cell/bt.c
+437e77f6b0e45b9fb1d9ebdbbfcd296c  gdb/testsuite/gdb.cell/coremaker-spu.c
+a1817d1209a2bced54c8dd2fbd72798e  gdb/testsuite/gdb.cell/size.c
+7a1ed6960414a114b7082ef9e8b2cedd  gdb/testsuite/gdb.perf/skip-command.exp
+cb0d5fb1cd48705899a877f01d73bc6e  gdb/testsuite/gdb.perf/skip-prologue.c
+dd12cd53cc4ad3e57d294eb1bf8d3c6b  gdb/testsuite/gdb.perf/gm-std.h
+7669abeb91ec99d85bcfaac594861ef1  gdb/testsuite/gdb.perf/single-step.c
+2a529e47f0f664b8182a0042db8f7ee4  gdb/testsuite/gdb.perf/gmonster1.cc
+a57caa5c61e5d36ddd40e942f06a018e  gdb/testsuite/gdb.perf/solib.exp
+b54bc293f8257c9dc8798020484dd6e4  gdb/testsuite/gdb.perf/gmonster1-null-lookup.exp
+4cf4d68c174e97c54987465fd4af6cfb  gdb/testsuite/gdb.perf/solib.c
+c7344580ecd558638f1fdb920ddf8cc9  gdb/testsuite/gdb.perf/solib.py
+1096c513a136d44e78809d417e4998eb  gdb/testsuite/gdb.perf/gmonster2-runto-main.exp
+8eb6b53aecd804cda3ddd9641c22a8e8  gdb/testsuite/gdb.perf/disassemble.py
+801775a39e08d95291db527d730dc474  gdb/testsuite/gdb.perf/disassemble.exp
+cfa97e2b6461035e8a8b0346bbac209b  gdb/testsuite/gdb.perf/gmonster1-select-file.exp
 722d1c525da87cc21e2d3adfc3dc8c1b  gdb/testsuite/gdb.perf/README
-034c9d1c6152d378782b4994ba476fc7  gdb/testsuite/gdb.perf/gmonster-null-lookup.py
-a2eb0066650b3a262c280d383e87adc5  gdb/testsuite/gdb.perf/gm-pervasive-typedef.h
-401d62dc34eb03b529a911f55d01507a  gdb/testsuite/gdb.perf/gmonster2-select-file.exp
-50cfb0abc79f88d945b9e1eda44a4572  gdb/testsuite/gdb.perf/gmonster2-pervasive-typedef.exp
-7c3ab2c28b39005feccbd998ec619ffe  gdb/testsuite/gdb.perf/gmonster-print-cerr.py
-a58a69fd207555c96d860fa02d83d6ab  gdb/testsuite/gdb.perf/gm-use-cerr.cc
-14b6cdab054f34a352fa7d1cab796f6e  gdb/testsuite/gdb.perf/gmonster1.exp
-a5388d2ccd1861c23bed2f1946e14bb9  gdb/testsuite/gdb.perf/gmonster-runto-main.py
-46d4a46fc4c3f46fb8f42ed16ad4eeb9  gdb/testsuite/gdb.perf/skip-command.py
-c63d6fa8130ab90f938aaeaab0449026  gdb/testsuite/gdb.perf/lib/perftest/utils.py
-3aaa581b8e90826ee959026e1feaa50b  gdb/testsuite/gdb.perf/lib/perftest/reporter.py
-f69b23478ef9a5289fb92466d5906698  gdb/testsuite/gdb.perf/lib/perftest/testresult.py
-8d4d8846249bacbc1d4afa204320ad56  gdb/testsuite/gdb.perf/lib/perftest/measure.py
-2442b4e79d605fc350c00d1890001a8c  gdb/testsuite/gdb.perf/lib/perftest/__init__.py
-bbb2ef5bd5eedd0926382ab1261938e4  gdb/testsuite/gdb.perf/lib/perftest/perftest.py
-f016fc377bd1293efa9abeb2f4f089d2  gdb/testsuite/gdb.perf/gmonster2-print-cerr.exp
-c6fb0c02efef183b63aa6b0e84309619  gdb/testsuite/gdb.perf/gm-hello.cc
-cea45e588484d8a1699aae0554aee8b1  gdb/testsuite/gdb.perf/gmonster-pervasive-typedef.py
-6202c0202e5a72b404a54842021bcd35  gdb/testsuite/gdb.perf/skip-prologue.exp
-137ce177e060efa0ec0795c0f8b76326  gdb/testsuite/gdb.perf/backtrace.c
-70e27f5a72ed78c143f9fcb84232b3cb  gdb/testsuite/gdb.perf/single-step.exp
-23f2f7826a2dcc403a8c8be8398a2fa7  gdb/testsuite/gdb.perf/single-step.py
-a111b963fa592ed181acaf86f56e971c  gdb/testsuite/gdb.perf/skip-command.cc
-ffc269edc5bc9f94db9855024d044008  gdb/testsuite/gdb.perf/gmonster1-runto-main.exp
-37cff38efaf393e6cda59f88dd022d6b  gdb/testsuite/gdb.perf/gmonster2-ptype-string.exp
-161f823311fe93e8888b1d1b134b3570  gdb/testsuite/gdb.perf/gm-utils.h
-79c1a5031a013e9146b23957293ee844  gdb/testsuite/gdb.perf/gmonster1-print-cerr.exp
-760283970c897066174aae17bbf67b6c  gdb/testsuite/gdb.perf/gm-pervasive-typedef.cc
-9d4d0f42401d9b84fb820ebdd962b55e  gdb/testsuite/gdb.perf/gmonster-select-file.py
-324ca125f5d4473288b883de20112cab  gdb/testsuite/gdb.perf/skip-prologue.py
-934dc1e4a2999d76086a802d434a4fb9  gdb/testsuite/gdb.perf/gmonster1-pervasive-typedef.exp
-4f75c256ab5233cecae4c3c9b5dd5746  gdb/testsuite/gdb.perf/gmonster-ptype-string.py
-f6916dc2b667cf94c03e3684436bbdf9  gdb/testsuite/gdb.perf/backtrace.py
-272a1df3a2eac440566ff661a47c77cb  gdb/testsuite/gdb.perf/gmonster2.exp
-0280baf1f26a5d151e62dc440e1f4f69  gdb/testsuite/gdb.perf/gmonster2-null-lookup.exp
-e55db0a8f94900fd35aa8375a3e14d40  gdb/testsuite/gdb.perf/gmonster2.cc
-e5f8cf40014ee11340ab53ebab6ecd4d  gdb/testsuite/gdb.perf/gm-std.cc
-3f1ce71de90836f91d3e03ef67ff7963  gdb/testsuite/gdb.perf/backtrace.exp
-fed3cb1bd469d41f7c4e93d5ade7763a  gdb/testsuite/gdb.perf/gmonster1-ptype-string.exp
-be52eed76215dd1af98128556bca2280  gdb/testsuite/gdb.dlang/watch-loc.exp
-1df5a0a0ba572c090faeebe932e946ad  gdb/testsuite/gdb.dlang/properties.exp
-1825796709f31bdde7f6902558fcb7d2  gdb/testsuite/gdb.dlang/circular.c
-e3b01462c1ec196bdb0062483cd7d2b3  gdb/testsuite/gdb.dlang/demangle.exp
-48b0f70501fc8a8f807a857eff228917  gdb/testsuite/gdb.dlang/expression.exp
-e56f8c729cdbb8a72954891cd344d858  gdb/testsuite/gdb.dlang/primitive-types.exp
-cdb1c95516ac1abf90cce1bfd40ccc94  gdb/testsuite/gdb.dlang/debug-expr.exp
-157f1ba8c7f07849a8d3eb09f9c3a52c  gdb/testsuite/gdb.dlang/circular.exp
-d6ef48e03e3cc6d3c8fc947202e0fe75  gdb/testsuite/gdb.dlang/watch-loc.c
-b127100ba3a0975602ebc54ffcce226e  gdb/testsuite/gdb.cp/breakpoint.exp
-c23e73a5fd5aeb308788833bcbfa6efe  gdb/testsuite/gdb.cp/anon-struct.cc
-81fc1a171c26f07f9f50e427fd2b0e01  gdb/testsuite/gdb.cp/pr-574.cc
-3ad17c72013803042e50c781fc732e66  gdb/testsuite/gdb.cp/typeid.cc
+e4fd573252d71560e6e8a42b78fb191e  gdb/testsuite/gdb.perf/gmonster-null-lookup.py
+2efb4e92bbfc04ff70cb32e7cdb1b53c  gdb/testsuite/gdb.perf/gm-pervasive-typedef.h
+82bcb08e508abd92c5a7c2b79c134d2f  gdb/testsuite/gdb.perf/gmonster2-select-file.exp
+d94edc8939495706459a376ea6fcde1a  gdb/testsuite/gdb.perf/gmonster2-pervasive-typedef.exp
+c92bdc8d95f3c242ad68770f9445748a  gdb/testsuite/gdb.perf/gmonster-print-cerr.py
+43016280794803bc6cc3e253aba884b8  gdb/testsuite/gdb.perf/gm-use-cerr.cc
+204f2945a8d5702bc2f222d779335fa1  gdb/testsuite/gdb.perf/gmonster1.exp
+b765df405c15cddc32c8ce4a63e9f5ec  gdb/testsuite/gdb.perf/gmonster-runto-main.py
+9deb7c4eaed7ccee53db89813d59eb86  gdb/testsuite/gdb.perf/skip-command.py
+ea22637c6278bc530d94cc57a79354c5  gdb/testsuite/gdb.perf/lib/perftest/utils.py
+f5ae5ebc4cab21c1e8f62fe0c8e5f384  gdb/testsuite/gdb.perf/lib/perftest/reporter.py
+6ca7419e3e35b56778964eecd6662655  gdb/testsuite/gdb.perf/lib/perftest/testresult.py
+dc3f12067434f6021a281de6010aa72a  gdb/testsuite/gdb.perf/lib/perftest/measure.py
+d396d7fe723023ef9422c843f6573976  gdb/testsuite/gdb.perf/lib/perftest/__init__.py
+12aadcf5de5d6a3d0b8e43a216d1e765  gdb/testsuite/gdb.perf/lib/perftest/perftest.py
+505abac587474779af49e83af3a3ed9a  gdb/testsuite/gdb.perf/gmonster2-print-cerr.exp
+85824d3bb0d27468b0d37bfbe036ddee  gdb/testsuite/gdb.perf/gm-hello.cc
+e8fa241e840469655f5463556a9d9df9  gdb/testsuite/gdb.perf/gmonster-pervasive-typedef.py
+9e52367496eb5a74062291888dc7de9b  gdb/testsuite/gdb.perf/skip-prologue.exp
+85f29379f96e9bf39d4a96b75515a4fa  gdb/testsuite/gdb.perf/backtrace.c
+6655e8ecd138f77a14b9d0d1228c3a72  gdb/testsuite/gdb.perf/single-step.exp
+60d3d612c7f41dce24603186020fdfb5  gdb/testsuite/gdb.perf/single-step.py
+2a99771662b74cf48efdc8f3667fdb99  gdb/testsuite/gdb.perf/skip-command.cc
+7df5a97124b83cb9e571ac9d2a9dca12  gdb/testsuite/gdb.perf/gmonster1-runto-main.exp
+cfa3be3699065cc93eb0d939ef41f86d  gdb/testsuite/gdb.perf/gmonster2-ptype-string.exp
+787a01682818979425deae5b0fa03c5d  gdb/testsuite/gdb.perf/gm-utils.h
+02603e77fea6322135bef79ed2328c1f  gdb/testsuite/gdb.perf/gmonster1-print-cerr.exp
+f70c03d3c1b7a04d66c40ea4994d88cb  gdb/testsuite/gdb.perf/gm-pervasive-typedef.cc
+d2cdfa989d30c664d50a07268540ee45  gdb/testsuite/gdb.perf/gmonster-select-file.py
+d72715f6804865edaf8093f12424ad2e  gdb/testsuite/gdb.perf/skip-prologue.py
+00bf3fb96c84473ddd085d048e2c50a6  gdb/testsuite/gdb.perf/gmonster1-pervasive-typedef.exp
+606f72b21e2b3bd9136c46f9f4204d73  gdb/testsuite/gdb.perf/gmonster-ptype-string.py
+4fd2f68d80617d9da92c919231dae1bc  gdb/testsuite/gdb.perf/backtrace.py
+04c40eac6bee887fefd1431dc71d80d8  gdb/testsuite/gdb.perf/gmonster2.exp
+9abd8a61de0102302c7d460d70f0f4db  gdb/testsuite/gdb.perf/gmonster2-null-lookup.exp
+2a529e47f0f664b8182a0042db8f7ee4  gdb/testsuite/gdb.perf/gmonster2.cc
+39190c29d01deb7b6f469c710543f1de  gdb/testsuite/gdb.perf/gm-std.cc
+c5d929d87d19fb033e78dcdac098b432  gdb/testsuite/gdb.perf/backtrace.exp
+b48fef6caef74d8a7eb0dbd479487f8c  gdb/testsuite/gdb.perf/gmonster1-ptype-string.exp
+8782eee5124306026c24c636a3eda87f  gdb/testsuite/gdb.dlang/watch-loc.exp
+760a018860bf609637ce020087257ea3  gdb/testsuite/gdb.dlang/properties.exp
+ed6a76e94d0a1a272d1b0c6d3ba132e1  gdb/testsuite/gdb.dlang/circular.c
+dec7a044d34a9a480f20ef6f54236dbd  gdb/testsuite/gdb.dlang/demangle.exp
+0e935b0171c1693be34900d14e642063  gdb/testsuite/gdb.dlang/expression.exp
+16420b1881bd8068ea779e04491c4514  gdb/testsuite/gdb.dlang/primitive-types.exp
+3427c9eac701947fa0ef3e742d355b27  gdb/testsuite/gdb.dlang/debug-expr.exp
+5be3bc19f5db6b1c8bf9cc856926dc69  gdb/testsuite/gdb.dlang/circular.exp
+5357c970020271b33d25760e0af84011  gdb/testsuite/gdb.dlang/watch-loc.c
+58dd06777f840eff61ac599b9d22add9  gdb/testsuite/gdb.cp/breakpoint.exp
+5866c56be80486ba73c1cb2d9471edb4  gdb/testsuite/gdb.cp/anon-struct.cc
+c27cf42f8f22e8eae6cbd1f86dcab796  gdb/testsuite/gdb.cp/pr-574.cc
+77abc1e6da5e9c37bf98cd8156777229  gdb/testsuite/gdb.cp/typeid.cc
 29f6b52a4e94c187aaf660090d99bd4f  gdb/testsuite/gdb.cp/nsnested.cc
-b235a556558f10a94293b7a904b3c8f5  gdb/testsuite/gdb.cp/var-tag.exp
-b1c455f739b0cb5998fdb4890bfad06a  gdb/testsuite/gdb.cp/m-static.exp
-a09b68c615311ab7dc0def511d59dc13  gdb/testsuite/gdb.cp/rvalue-ref-types.cc
-6564acc8070056c8c68c38da975cafa8  gdb/testsuite/gdb.cp/cttiadd1.cc
-fbc86f4f736e05adf6ff5c4dc28ef3a4  gdb/testsuite/gdb.cp/overload-const.exp
-ae159aa1d3f5b0ca797503e6f31e12b1  gdb/testsuite/gdb.cp/derivation.exp
-505baa597affa33cbd63b998c8540701  gdb/testsuite/gdb.cp/breakpoint.cc
-e9b08037a89072d173c0e9e3efdaa4ee  gdb/testsuite/gdb.cp/rvalue-ref-types.exp
-2524be59b0abdcec63730b16bf6983ba  gdb/testsuite/gdb.cp/pr17132.exp
-3ba0597fff2876634f89a33e4c4985e9  gdb/testsuite/gdb.cp/ctti.exp
-ece239e7d68998b1b9b237ec1601e82b  gdb/testsuite/gdb.cp/bs15503.cc
-f8c7689b88960fc9537a239f28d0c0fc  gdb/testsuite/gdb.cp/filename.exp
-d13fe6426bede933061a5d3fe839ebb3  gdb/testsuite/gdb.cp/pr9067.exp
-1645e068ba393b5c3a764e58fb65e96c  gdb/testsuite/gdb.cp/meth-typedefs.cc
-d5303abec0354d26cd10925c1459db09  gdb/testsuite/gdb.cp/mb-inline1.cc
+cc3c8dac0cbb3003fd2063c0dea7ca4f  gdb/testsuite/gdb.cp/var-tag.exp
+19c24fa11bc90c71db7cb288571c9f73  gdb/testsuite/gdb.cp/m-static.exp
+4c3939e20f248217e8c2a7312842152b  gdb/testsuite/gdb.cp/rvalue-ref-types.cc
+de0d13d14aa924ed5fa3813903a768d0  gdb/testsuite/gdb.cp/cttiadd1.cc
+8456c1565e726cff37bf62457b590f2b  gdb/testsuite/gdb.cp/overload-const.exp
+46661fcc78922bf709d65ba2bb9fb6bf  gdb/testsuite/gdb.cp/derivation.exp
+9a6a37df72d9aa971f9481c8ea8b1d54  gdb/testsuite/gdb.cp/breakpoint.cc
+26933f24c60ab68b9a97eb73d2f9c9e3  gdb/testsuite/gdb.cp/rvalue-ref-types.exp
+3f2ba0ff46e8c855686f29525c3da3ba  gdb/testsuite/gdb.cp/pr17132.exp
+32fd58cf9ddaadfe4eca1884e705c22b  gdb/testsuite/gdb.cp/ctti.exp
+11aed02cb68fb6b5b0c0ed9a6f04b98a  gdb/testsuite/gdb.cp/bs15503.cc
+5993527b5bd7a36e730b2a73a9f0cf23  gdb/testsuite/gdb.cp/filename.exp
+719fb9f52b6bd3fbb47acdf367ba1d81  gdb/testsuite/gdb.cp/pr9067.exp
+f116759334733070da811ac37d78a072  gdb/testsuite/gdb.cp/meth-typedefs.cc
+daf7e40f88bbe6e82f754436c5defb01  gdb/testsuite/gdb.cp/mb-inline1.cc
 1a12a56eee1d93bdead22c3ca9edd58e  gdb/testsuite/gdb.cp/nsimport.cc
-c9e489d408bed95004f21c4d50594a75  gdb/testsuite/gdb.cp/pr12028.exp
-15a54cdb750c23d976897953e9326736  gdb/testsuite/gdb.cp/ovldbreak.exp
-c66070029e8b8ae135087c22dde8c7bf  gdb/testsuite/gdb.cp/chained-calls.cc
-99e3204363a63047bc81e97059caf194  gdb/testsuite/gdb.cp/ref-types.cc
-c45c7948f7c7bf7ca38d7a167e5bb8d9  gdb/testsuite/gdb.cp/namespace.exp
-dfb045816af04705ed8a1925effb3683  gdb/testsuite/gdb.cp/nsrecurs.exp
-67c3d7c89b0e034bb9f3e67391a22108  gdb/testsuite/gdb.cp/pass-by-ref.cc
-a6b101f640d02c6da4048de677d595d6  gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp
-2451a2f74325d086e38031cb946dad0a  gdb/testsuite/gdb.cp/virtbase.exp
-2ae93e18c5046194b6a25632a2420e22  gdb/testsuite/gdb.cp/psymtab-parameter.exp
-89d8c087f86dbc81add161943c4eacda  gdb/testsuite/gdb.cp/var-tag.cc
-57d5a2e136cff7904546ac0fd52e16cb  gdb/testsuite/gdb.cp/rtti.h
-586e26017c1c7f51083dcb6130446aa4  gdb/testsuite/gdb.cp/annota3.exp
+2d3c60d29833ec42fa31fd15e0559a9d  gdb/testsuite/gdb.cp/pr12028.exp
+de8e91f6f3885c1c95081a7757cf4e90  gdb/testsuite/gdb.cp/ovldbreak.exp
+0691825d568e2b8c8099484f9ac82f09  gdb/testsuite/gdb.cp/chained-calls.cc
+7e04c112ec7d341d23fa88166b0cb311  gdb/testsuite/gdb.cp/ref-types.cc
+2f3d8d926e3f8a3ec01e7c4e52671702  gdb/testsuite/gdb.cp/namespace.exp
+0fae7af04c6348739e734ef7ca958212  gdb/testsuite/gdb.cp/nsrecurs.exp
+dfd599a055525639833fa6cc217db6ee  gdb/testsuite/gdb.cp/pass-by-ref.cc
+7c2c0135b054b70e554485200bae9f51  gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp
+83c881693be618de02b0b2476d2e1326  gdb/testsuite/gdb.cp/virtbase.exp
+6d073a2d34289e2ecdf4fbf545731f8f  gdb/testsuite/gdb.cp/psymtab-parameter.exp
+193f2182bde53a464cae6b177500dfa9  gdb/testsuite/gdb.cp/var-tag.cc
+9895a6632b7721e15106e9cb712ac4e0  gdb/testsuite/gdb.cp/rtti.h
+21cab24043a01ec243f9653cb6a81dd4  gdb/testsuite/gdb.cp/save-bp-qualified.cc
+03670cdb4440ddabcf21a89c6568a9fb  gdb/testsuite/gdb.cp/annota3.exp
 89f70140e72e27531dc4e94ee1e65c3c  gdb/testsuite/gdb.cp/casts.cc
-17378bcd7edc22087b0b9fe03aa77cb7  gdb/testsuite/gdb.cp/impl-this.exp
-4b4f9f337369ccd9bd48c5006f1fb47e  gdb/testsuite/gdb.cp/fpointer.exp
-7bb2930bda5b73b5d9069409bec6fa80  gdb/testsuite/gdb.cp/bs15503.exp
-f30150c70eda5cdf95bed6a66e300ac8  gdb/testsuite/gdb.cp/psmang1.cc
-17143d33022105854b395ad16cb9e45b  gdb/testsuite/gdb.cp/psmang.exp
-3bbf8c5753079aedf089fc9ff080ec37  gdb/testsuite/gdb.cp/try_catch.cc
+8f59c14e4356f15b0f63fb33597dfea3  gdb/testsuite/gdb.cp/impl-this.exp
+68c7fa90be9cfcf54a264012c34daeaf  gdb/testsuite/gdb.cp/fpointer.exp
+8fd47f7a5ee13c97f3b54e913a89df7d  gdb/testsuite/gdb.cp/bs15503.exp
+ff6321be858d28db5ddb88e8550f1e64  gdb/testsuite/gdb.cp/psmang1.cc
+d03d41dc8518122514474ff084aafa83  gdb/testsuite/gdb.cp/psmang.exp
+38c2263e684da777561e5a34382e3c70  gdb/testsuite/gdb.cp/try_catch.cc
 3392b4be32a4c703a94740abf585b834  gdb/testsuite/gdb.cp/cplusfuncs.cc
-cdb1e4199531ea5b5d323bd070925309  gdb/testsuite/gdb.cp/cplabel.exp
-3edbf36ff64fdbae2d3eff98c932619d  gdb/testsuite/gdb.cp/call-c-1.c
-024b20789a597e53880e69466611e1c6  gdb/testsuite/gdb.cp/typedef-operator.exp
+7a03f7844defc712dd7b431b7153707f  gdb/testsuite/gdb.cp/cplabel.exp
+cdedb89c49197a9feba3befa4767722f  gdb/testsuite/gdb.cp/call-c-1.c
+90570185718826df2b49f4bc26bd6d97  gdb/testsuite/gdb.cp/typedef-operator.exp
 4195d3718293b642b8ead0ca9e2e1448  gdb/testsuite/gdb.cp/nsusing.cc
-1046d76c75267d3c8f2adc81775c4a0e  gdb/testsuite/gdb.cp/demangle.exp
-655c380df236f3073584c3163fdafba8  gdb/testsuite/gdb.cp/rvalue-ref-overload.cc
+b53184950de5aeb07ebbf8a03cbfa2c1  gdb/testsuite/gdb.cp/demangle.exp
+9263a7293d75536bf4252d10bd57a3d3  gdb/testsuite/gdb.cp/rvalue-ref-overload.cc
 d6ed226431adc34de1f41f2c2bc2168a  gdb/testsuite/gdb.cp/overload.cc
-bcfaabf911bffc782d5ecea25006af05  gdb/testsuite/gdb.cp/destrprint.exp
-1c8f34b8cf17f9a7dc9f615b0ad1a912  gdb/testsuite/gdb.cp/ref-params.exp
-37b87b1bc0f75adc418fa0ce35eb1170  gdb/testsuite/gdb.cp/pr17132.cc
-cf3fc25d678ac17d8419bb5659b2888c  gdb/testsuite/gdb.cp/derivation2.cc
+1c2539b24b1f9a5a8d88c83350d9435b  gdb/testsuite/gdb.cp/destrprint.exp
+791921f0b6f853b6b383b7e46cf8acce  gdb/testsuite/gdb.cp/ref-params.exp
+6b2f91a12ed8aba24d077075d715beb1  gdb/testsuite/gdb.cp/pr17132.cc
+8ba78f75dc3d348a5a66fd57e6d6d477  gdb/testsuite/gdb.cp/derivation2.cc
 06a4a6cbdd4b8c453468647978aed84c  gdb/testsuite/gdb.cp/pr10728-y.cc
-0568457577da76a33182a490d23e5af2  gdb/testsuite/gdb.cp/namespace-enum.exp
-5c22b9a190216ab6c64c074cd73fd111  gdb/testsuite/gdb.cp/using-crash.cc
-97c0016e49f205c37d182c33c718cdc7  gdb/testsuite/gdb.cp/abstract-origin.exp
-16105f8b9b538cefc628a1291d440d6a  gdb/testsuite/gdb.cp/virtfunc2.cc
-aa60b69500be161117d857de3d03ae38  gdb/testsuite/gdb.cp/cmpd-minsyms.cc
+a0b156638caf6aabb020149728f5a2eb  gdb/testsuite/gdb.cp/namespace-enum.exp
+fe122efcc386b9e28d10097af21d4f62  gdb/testsuite/gdb.cp/using-crash.cc
+2d7ee6764e7e16851d4c14ea8d68fe3d  gdb/testsuite/gdb.cp/abstract-origin.exp
+7d973e839077c7c956e2a065fb881009  gdb/testsuite/gdb.cp/virtfunc2.cc
+5af7086c07d1002b034b4155d23414a5  gdb/testsuite/gdb.cp/cmpd-minsyms.cc
 7e5b18b28a0ca883aa55da93b86082d8  gdb/testsuite/gdb.cp/oranking.cc
-fe3135261bf4ae037b226ab8249dfe9e  gdb/testsuite/gdb.cp/rvalue-ref-casts.exp
-f67fe274d29d2699d24d030d3504ea8c  gdb/testsuite/gdb.cp/casts03.cc
-29537abe7a0cf41a3814fb9d9c93e284  gdb/testsuite/gdb.cp/rvalue-ref-casts.cc
-263e7983c5aae3e9d4f64cb961fb1e50  gdb/testsuite/gdb.cp/bool.exp
-bf08993bfbf34c120feac5eb2b2b4cf8  gdb/testsuite/gdb.cp/maint.exp
-ec0a4d31eb2df096246daed14036af6b  gdb/testsuite/gdb.cp/pr-1023.exp
-8199c75d6f0ede4a92e795f7c491f2e5  gdb/testsuite/gdb.cp/no-dmgl-verbose.exp
-34f8e9c3cfe34687af126188b1515a1a  gdb/testsuite/gdb.cp/virtfunc2.exp
-181daf7e77cef455b7ab18fe573a7001  gdb/testsuite/gdb.cp/ptype-flags.cc
-e3ded7f47d765186d388fd0d2a2b1974  gdb/testsuite/gdb.cp/ovsrch1.cc
-9b0876b4bce298e2d4a5a6550303be9b  gdb/testsuite/gdb.cp/temargs.exp
-bc4480a2ea935028bea45c20f9f4009c  gdb/testsuite/gdb.cp/scope-err.cc
-6eead64a99954b4ee8748ae57c3d2a4d  gdb/testsuite/gdb.cp/converts.exp
-5d998f222a13f2699339566f1b092313  gdb/testsuite/gdb.cp/expand-psymtabs-cxx.cc
-283f015348b53cf7ab7bc8577c1cf9ba  gdb/testsuite/gdb.cp/enum-class.cc
-e0cced7b1c1b79729a92282fd4bc47ba  gdb/testsuite/gdb.cp/expand-psymtabs-cxx.exp
-fca056eb02d3c70313f4e562a8d595f4  gdb/testsuite/gdb.cp/paren-type.cc
+fae510706408c56f8ab5ef32eda6e8c3  gdb/testsuite/gdb.cp/rvalue-ref-casts.exp
+697f1ae1c0f07ba8ea95b53e09f1a0b3  gdb/testsuite/gdb.cp/casts03.cc
+090888a8f4436d5dbd6bd657060329de  gdb/testsuite/gdb.cp/rvalue-ref-casts.cc
+b457c541b52b2860c860c06ee9642428  gdb/testsuite/gdb.cp/bool.exp
+66950da654a1ac7f205285f5696255b6  gdb/testsuite/gdb.cp/maint.exp
+11ed1e4d367897d5d780d23bf876c263  gdb/testsuite/gdb.cp/pr-1023.exp
+49e0e8cd7ca94aa8e68139834c7192ab  gdb/testsuite/gdb.cp/no-dmgl-verbose.exp
+ab37b2b3ef87bdf90cd171d556502e0e  gdb/testsuite/gdb.cp/virtfunc2.exp
+e847cac15ac562916f4b4255c5793eff  gdb/testsuite/gdb.cp/ptype-flags.cc
+d55dec57a1107c8190aa25da5d4c82c7  gdb/testsuite/gdb.cp/ovsrch1.cc
+682f1182120ca0571e72d0adf5267f7e  gdb/testsuite/gdb.cp/temargs.exp
+908335b806460d76392f86c96b2108c1  gdb/testsuite/gdb.cp/scope-err.cc
+d567ad5391f10d7ea952613fc40f5b1a  gdb/testsuite/gdb.cp/converts.exp
+c2ab30049551932138a19ba794e3c83f  gdb/testsuite/gdb.cp/expand-psymtabs-cxx.cc
+e1cc6f7e71ef95b8a97d49fdc365880b  gdb/testsuite/gdb.cp/enum-class.cc
+2f8080ea283d7cb2e48d06bb82d1b2de  gdb/testsuite/gdb.cp/expand-psymtabs-cxx.exp
+4a949ac82869a68bbd1c7fa7da899c83  gdb/testsuite/gdb.cp/paren-type.cc
 53d65c3b49d4d39b7a1c8ff6d68c8a65  gdb/testsuite/gdb.cp/method.cc
-bb36987bc1907a63530f557a9ff47d5e  gdb/testsuite/gdb.cp/ovsrch4.cc
-3f978b5a706dd5b0b9860f95effbf615  gdb/testsuite/gdb.cp/vla-cxx.cc
-be4b81f5df1b3fb949717d125f988985  gdb/testsuite/gdb.cp/cpsizeof.exp
-eaf52b3281bf9496a051049d28e7ed7a  gdb/testsuite/gdb.cp/formatted-ref.exp
-dfd0755149fb19c9531d5ed35bbb516d  gdb/testsuite/gdb.cp/chained-calls.exp
+8565e7e85bcc3a4642a57934defe34ff  gdb/testsuite/gdb.cp/ovsrch4.cc
+d3b57e70f0efc77c6da4cd107baad082  gdb/testsuite/gdb.cp/vla-cxx.cc
+f7821627773de318874d46372124a704  gdb/testsuite/gdb.cp/cpsizeof.exp
+39b8e149659e089f6994a0d5c8ef58b8  gdb/testsuite/gdb.cp/formatted-ref.exp
+9ff272790d5147a2d388b8b8e33999d8  gdb/testsuite/gdb.cp/chained-calls.exp
 2088f98bb23167ea5e0c8b394c560519  gdb/testsuite/gdb.cp/annota3.cc
-14a63cde326bca338c9419f56319ae2b  gdb/testsuite/gdb.cp/nsdecl.exp
-8a96a3cd89d9fd558130e8cdde2d30ef  gdb/testsuite/gdb.cp/cp-relocate.cc
-b713439d5751e6ac15f46a4578843f06  gdb/testsuite/gdb.cp/bool.cc
-1b1e6ee2eee9955acd3c43fe72b042b2  gdb/testsuite/gdb.cp/pr-1210.exp
-8b463c94e5ce9df05776164274466ab3  gdb/testsuite/gdb.cp/non-trivial-retval.cc
-02e0b14166945592a14717de0d17647d  gdb/testsuite/gdb.cp/typedef-operator.cc
-1b5166c54f0a73faa374578c540aa896  gdb/testsuite/gdb.cp/typeid.exp
-cb86eed294afca3c163cabe3b13e7ac5  gdb/testsuite/gdb.cp/ovsrch3.cc
-703482551757814cdf495dc719a7173a  gdb/testsuite/gdb.cp/exceptprint.cc
-27fbfd5d73c1cf8a2016a9705d84e9d3  gdb/testsuite/gdb.cp/classes.cc
-fe61588156833d9883a60286b0819b4d  gdb/testsuite/gdb.cp/pr10728.exp
-71d48d7801b5bccb025b28bc292d1e12  gdb/testsuite/gdb.cp/gdb2495.exp
-b9c9e7392649331cfbb2c5ddb2643f05  gdb/testsuite/gdb.cp/gdb2384.cc
+7cd34e4c0a61b2cdef85d331d59def31  gdb/testsuite/gdb.cp/nsdecl.exp
+6ed776e6676e446164b1a2210a6e4944  gdb/testsuite/gdb.cp/cp-relocate.cc
+e199b291d994dfb2e79bdaa3df5836d0  gdb/testsuite/gdb.cp/bool.cc
+fc070314f3b13324e33246f667566650  gdb/testsuite/gdb.cp/pr-1210.exp
+d303ead03617efcd5440c7a87add591e  gdb/testsuite/gdb.cp/non-trivial-retval.cc
+74a7dbe8616c072646e2411a17ec8f4f  gdb/testsuite/gdb.cp/typedef-operator.cc
+d781b0545f45a0b6a680659cf967b498  gdb/testsuite/gdb.cp/typeid.exp
+4a70f23d59e44703e97d963cc09631c8  gdb/testsuite/gdb.cp/ovsrch3.cc
+ad3049b957e19acaea42210d4133f147  gdb/testsuite/gdb.cp/exceptprint.cc
+4613783001d089b84452162b85d52d1b  gdb/testsuite/gdb.cp/classes.cc
+4160824cac74f57150e9df562c1edc29  gdb/testsuite/gdb.cp/pr10728.exp
+042ba8c3125d27bbaafe663e1a374c6e  gdb/testsuite/gdb.cp/gdb2495.exp
+abd9415e2d51f9367a7e52784724d8d9  gdb/testsuite/gdb.cp/gdb2384.cc
 2073f045c78990789c6ea8e19affaf33  gdb/testsuite/gdb.cp/pr10728-x.h
-e78784fa404b513b9067619322a9f8cb  gdb/testsuite/gdb.cp/nsusing.exp
-2d56bd36aa4edaf8efa4b96d3d672f8d  gdb/testsuite/gdb.cp/gdb2384-base.cc
-7f6f9a7f18d4770ac0bb91af47d63802  gdb/testsuite/gdb.cp/nextoverthrow.cc
-326922f8304a5314b57dafac5ef16da9  gdb/testsuite/gdb.cp/ref-params.cc
-62cba4a33272f6dec896c03147011098  gdb/testsuite/gdb.cp/cmpd-minsyms.exp
-6d14658e01231af7e7a5e88b3bd5658f  gdb/testsuite/gdb.cp/re-set-overloaded.cc
-f3cb6a1a2c1677b88dfb752207dead32  gdb/testsuite/gdb.cp/psmang2.cc
-81de064b93782e55d1bfb7883e12a62e  gdb/testsuite/gdb.cp/misc.cc
-cc110070aad5acd1af4a557f3177cffc  gdb/testsuite/gdb.cp/namespace-nested-import.exp
-866aec5d794a8c47639faa0eadb2621e  gdb/testsuite/gdb.cp/readnow-language.cc
+608797cf4ecf264656466f5b177bde9b  gdb/testsuite/gdb.cp/nsusing.exp
+2e144346bf33f5d306e2a1c3f55f34f7  gdb/testsuite/gdb.cp/gdb2384-base.cc
+132e4e939d0a873292885558fc878050  gdb/testsuite/gdb.cp/nextoverthrow.cc
+b1e8bd4c2a3e6c4456ad1fed7bad2a20  gdb/testsuite/gdb.cp/ref-params.cc
+d66479dd32dc4334b9df3bc66ac0965c  gdb/testsuite/gdb.cp/cmpd-minsyms.exp
+1286d1ba6c0c426e5e20b32324553da1  gdb/testsuite/gdb.cp/re-set-overloaded.cc
+7bca18c6047321920c43527354990f1f  gdb/testsuite/gdb.cp/psmang2.cc
+16ed407cc5b557026bc9352f9daf4c56  gdb/testsuite/gdb.cp/misc.cc
+e49a48d20b16f5371ec7865172998ad0  gdb/testsuite/gdb.cp/namespace-nested-import.exp
+8969e95b1bc201e41c18b42ec43c324c  gdb/testsuite/gdb.cp/readnow-language.cc
 df11cb1835074902da6a4d0ad539ef4a  gdb/testsuite/gdb.cp/namespace-enum.cc
-f656cc12753a9196eeac44bf0405ec8a  gdb/testsuite/gdb.cp/cplusfuncs.exp
+10e48970c927381e5a94b3596b9ab142  gdb/testsuite/gdb.cp/cplusfuncs.exp
 c098e6c182aeec69088189f8640b48e3  gdb/testsuite/gdb.cp/pr10728-x.cc
-293ee7787d50d91b5f2cf9f3a690d438  gdb/testsuite/gdb.cp/printmethod.exp
-a16552684e8a3809814c8a6bfc5fcd61  gdb/testsuite/gdb.cp/expand-sals.cc
-61e62cc46f57ed00fbee9b5ba12222bd  gdb/testsuite/gdb.cp/extern-c.exp
-4e237b996d56f9ce3017bf4140761fdf  gdb/testsuite/gdb.cp/minsym-fallback.h
-72dbf58a25735bd74d5d5aa24189f847  gdb/testsuite/gdb.cp/exception.cc
-7c9f124770c2e608d942337ee988625b  gdb/testsuite/gdb.cp/mb-inline2.cc
-bbd7705a23b47a80b8772af2f332d655  gdb/testsuite/gdb.cp/scope-err.exp
+d995a1cf5b14fc0a3bf8f935ed35dc2f  gdb/testsuite/gdb.cp/printmethod.exp
+723aeaad63e0e4cca111b3e42d90097c  gdb/testsuite/gdb.cp/expand-sals.cc
+2426d2795fbefaf21366e9b4a7aed3ff  gdb/testsuite/gdb.cp/extern-c.exp
+a54c7a01e128551b8d37484a919778cf  gdb/testsuite/gdb.cp/minsym-fallback.h
+727bfa94b7d35086e550e8b4f00ea09c  gdb/testsuite/gdb.cp/ena-dis-br-range.cc
+719f8adf38efd74f1800bf617e2e535b  gdb/testsuite/gdb.cp/exception.cc
+00769b46e1fdf62bbf1860c208c13b03  gdb/testsuite/gdb.cp/mb-inline2.cc
+e818a41d5b51cea79bddb70905b71063  gdb/testsuite/gdb.cp/scope-err.exp
 274142a2ca86ad72d954a56bd01200c2  gdb/testsuite/gdb.cp/nsrecurs.cc
-d88ca3a6b3232e7bb1d0cd68a214b634  gdb/testsuite/gdb.cp/local.exp
+aab6d23425c0991cced38ec947b62534  gdb/testsuite/gdb.cp/local.exp
 61e293cd39db4588035377667c7bedf6  gdb/testsuite/gdb.cp/koenig.cc
-ff4525d538d6c158c4c9bbd618c6b488  gdb/testsuite/gdb.cp/call-c.exp
-8b851ef4fc27a0e4d04c0eb3a37a4a5a  gdb/testsuite/gdb.cp/pass-by-ref.exp
-f82d598382ceb8465d277b905c9902a1  gdb/testsuite/gdb.cp/namelessclass.cc
+1aa95440e5bd0c81214b024c524d54d9  gdb/testsuite/gdb.cp/call-c.exp
+12491c007ea578c9e5a4426c9f37b6d1  gdb/testsuite/gdb.cp/pass-by-ref.exp
+346329448dc04821db9f677d8574ba66  gdb/testsuite/gdb.cp/namelessclass.cc
 a3c80a0b291239bc5f0921f3168bbe8e  gdb/testsuite/gdb.cp/namespace.cc
-478206204c8a0fb5ea9a683d74c9c098  gdb/testsuite/gdb.cp/pr9631.exp
-a46f9acbe7e45d6ddee0209cf3fca353  gdb/testsuite/gdb.cp/no-dmgl-verbose.cc
+bb8bc40af9a3f02147aa0acd66a50296  gdb/testsuite/gdb.cp/pr9631.exp
+273fa8bf2e4a4e8db357e8873a2a838e  gdb/testsuite/gdb.cp/no-dmgl-verbose.cc
 33e6d7afd7c318893a5bbe2335a57cd8  gdb/testsuite/gdb.cp/fpointer.cc
-1ef121de87e5cfe3cfd22bd7bf3677b4  gdb/testsuite/gdb.cp/mb-templates.exp
-8e40700c361b8f3631c8bceb35e20ad0  gdb/testsuite/gdb.cp/anon-ns.cc
-ae3f9c8c3309b9015495dd0a2183c45a  gdb/testsuite/gdb.cp/var-tag-4.cc
-66646ef9bf22aa8de41625bd66d69b01  gdb/testsuite/gdb.cp/minsym-fallback-main.cc
-a6ad50aee89c4a4dc3ef4a00bcdb65ff  gdb/testsuite/gdb.cp/debug-expr.exp
-cc7e96fe34b4d31dae4b812c136a200d  gdb/testsuite/gdb.cp/pr9167.exp
+a8945f44b5f97201211962ef703c7a2d  gdb/testsuite/gdb.cp/mb-templates.exp
+106b1fe26a7da2e246e0dda214d5d3d6  gdb/testsuite/gdb.cp/anon-ns.cc
+afe6bd11e654d20a7911a5ffa7f26c35  gdb/testsuite/gdb.cp/var-tag-4.cc
+2a5917fc45ec90b0c9abf8ba66136051  gdb/testsuite/gdb.cp/minsym-fallback-main.cc
+183afaef735c750a2d6cfd09559e9e55  gdb/testsuite/gdb.cp/ena-dis-br-range.exp
+6109ebec8e3bb8e7b86aa7763797f023  gdb/testsuite/gdb.cp/debug-expr.exp
+429aad796dce23aab68afc3dc890462b  gdb/testsuite/gdb.cp/pr9167.exp
 7356b291b65f3595630313cdf845d8dc  gdb/testsuite/gdb.cp/hang1.cc
-a7236e238f0b2e7384db0d976503bfb1  gdb/testsuite/gdb.cp/baseenum.exp
-fbbb94a7752f72aec3b0d68f1f3472dc  gdb/testsuite/gdb.cp/annota2.exp
+31abf0e343d436230dd13d0c177fa6f4  gdb/testsuite/gdb.cp/baseenum.exp
+ddd4ed2d6a2f07b5a92773ea52264ae7  gdb/testsuite/gdb.cp/annota2.exp
 b469609c1bc8930aede342f8db025267  gdb/testsuite/gdb.cp/m-static.h
-9e8651327245cf223ed2cc1afb071ae5  gdb/testsuite/gdb.cp/classes.exp
-7a0394723b9b9365da18c7791f3d47fc  gdb/testsuite/gdb.cp/namespace1.cc
+8471beeaace8da6b7c6895cc54155227  gdb/testsuite/gdb.cp/classes.exp
+c8531aabd1fd4f5be937a815891f1165  gdb/testsuite/gdb.cp/save-bp-qualified.exp
+97e1c22ea81a4bdc1a0579c06cd3219f  gdb/testsuite/gdb.cp/namespace1.cc
 fa88dcd56730da0447f3d14fe40a5cd0  gdb/testsuite/gdb.cp/ambiguous.cc
-86d267f6cf137bce32e775006293f15f  gdb/testsuite/gdb.cp/paren-type.exp
-8a9b43b5e77f0b6ffb2a212072cdf33d  gdb/testsuite/gdb.cp/printmethod.cc
-ee26d1096c445995682c06169ba5d29e  gdb/testsuite/gdb.cp/nsimport.exp
-65e5e38a7bf9a76735bca925b0a573d5  gdb/testsuite/gdb.cp/using-crash.exp
-5e1d0d693e3ce07dcd74d3374cb4c3db  gdb/testsuite/gdb.cp/overload.exp
+64963c49a7a2cd57230ec97b64103f7d  gdb/testsuite/gdb.cp/paren-type.exp
+9398360e1f50c394a8e80f0b9045cfbb  gdb/testsuite/gdb.cp/printmethod.cc
+7629db4a9d5ecfe3bce282ff2d5205b0  gdb/testsuite/gdb.cp/nsimport.exp
+393e7cc4bc6652efa934981d9fa173cf  gdb/testsuite/gdb.cp/using-crash.exp
+e2621729a15cd1120b93b1610c2f381f  gdb/testsuite/gdb.cp/overload.exp
 2088f98bb23167ea5e0c8b394c560519  gdb/testsuite/gdb.cp/annota2.cc
-90ca4400fc69d2422644a75c2703b40b  gdb/testsuite/gdb.cp/method2.exp
-f59da55d31c257eec8bcd83ddbc9b35f  gdb/testsuite/gdb.cp/dispcxx.cc
-e0791d8b805398c70990eaf8f2f699eb  gdb/testsuite/gdb.cp/infcall-dlopen.exp
-3788dcae3839923b9c9258a517d16826  gdb/testsuite/gdb.cp/hang.exp
-d0582644be0d36c833ee987ed8792f24  gdb/testsuite/gdb.cp/templates.exp
+17fb1915b57e6413c37582b24478e9a1  gdb/testsuite/gdb.cp/method2.exp
+f1ec8b6589fb68f8cff46b6517fd45f7  gdb/testsuite/gdb.cp/dispcxx.cc
+875f423d4f802f38d5cf1a90343c92b8  gdb/testsuite/gdb.cp/infcall-dlopen.exp
+621759375e450439da3543376a864f93  gdb/testsuite/gdb.cp/hang.exp
+48016340b2f75f1006a404a97ec238db  gdb/testsuite/gdb.cp/templates.exp
 77df3107df3b157b84ff642421e15048  gdb/testsuite/gdb.cp/pr10687.cc
-528f5b15408b4e25f823467c7d94cfdd  gdb/testsuite/gdb.cp/vla-cxx.exp
-f75459c68be9808ae940c2fd3709cbeb  gdb/testsuite/gdb.cp/userdef.exp
-af03ab935c813701dd99a15fa0e6dbfc  gdb/testsuite/gdb.cp/operator.exp
-11f3ed2eda647fd9aebd0f8fecd5582c  gdb/testsuite/gdb.cp/pr9631.cc
-9b5b53ab0464bc1b59a1d68f9690243c  gdb/testsuite/gdb.cp/infcall-dlopen.cc
-5a2201b339c4bffe3ecdfc8574f31ce4  gdb/testsuite/gdb.cp/derivation.cc
+c84e4071c1ec7a95df96df5a4e1b31c6  gdb/testsuite/gdb.cp/vla-cxx.exp
+d29ee668ad8f089f28f61e7abcc05e98  gdb/testsuite/gdb.cp/userdef.exp
+685aa758110dfb96d3bd0c7c3ffbc853  gdb/testsuite/gdb.cp/operator.exp
+b4a368d09307cb627ff77ca6798568e3  gdb/testsuite/gdb.cp/pr9631.cc
+26644d1a5e42f1f662b0dfc834a4ccb6  gdb/testsuite/gdb.cp/infcall-dlopen.cc
+8e32e3137d2b90f3194bea9b74065ba3  gdb/testsuite/gdb.cp/derivation.cc
 12ee1b9f2c0f424177624ea104e837d1  gdb/testsuite/gdb.cp/converts.cc
-fc6051eb015071a1c3e04fd6194f0d36  gdb/testsuite/gdb.cp/ovsrch2.cc
-6017435ca6fbad8765546b39e3c711e6  gdb/testsuite/gdb.cp/iostream.exp
-77fedda4177496ae8a16bdfa8680aa7e  gdb/testsuite/gdb.cp/call-c.cc
-965732ac3771dcc604d8c29b2a498a49  gdb/testsuite/gdb.cp/pr9594.cc
-a9ba19bba558ecdfcaa6339aae1af3ee  gdb/testsuite/gdb.cp/pr17494.cc
+c02fd3c7acbe043db41e3f9dda640ce6  gdb/testsuite/gdb.cp/ovsrch2.cc
+ec5da271136c364d56ecd6f899119cd0  gdb/testsuite/gdb.cp/iostream.exp
+326e589025270f034ed0676976b3cf56  gdb/testsuite/gdb.cp/call-c.cc
+0ce32496dc6cd875ca8b8eee51076723  gdb/testsuite/gdb.cp/pr9594.cc
+aba0cd25f0c96cada24ae5de4c2a34be  gdb/testsuite/gdb.cp/pr17494.cc
 f33e9ec9e70b8b99ce29c558637c907e  gdb/testsuite/gdb.cp/namespace-enum-main.cc
-d5be5a0e17dbef6e4fe075a7484fb3e9  gdb/testsuite/gdb.cp/baseenum.cc
-4bc4f5e868f56207badbf91733afd60e  gdb/testsuite/gdb.cp/pr17494.exp
-68dd9e24d11ae05999fa884d8ec6cf3d  gdb/testsuite/gdb.cp/member-ptr.cc
-d62ca4028110b12bbf4327128774f8ad  gdb/testsuite/gdb.cp/noparam.exp
-c8f9cfc603c701d0b56cba834e871334  gdb/testsuite/gdb.cp/readnow-language.exp
-0c8234e488e3a4cde0872f090aa8e142  gdb/testsuite/gdb.cp/cpsizeof.cc
-410d6de07081be5bec82c8e42a0f5d2e  gdb/testsuite/gdb.cp/formatted-ref.cc
-9edf719626605807f738e16fefc01db4  gdb/testsuite/gdb.cp/try_catch.exp
+5f390754c46559806b9e5869e26b0de3  gdb/testsuite/gdb.cp/nested-types.exp
+515a64b5d7e319ded31490ae77e9e585  gdb/testsuite/gdb.cp/baseenum.cc
+c7d3a173279f3127e4c31f03d5afb0ae  gdb/testsuite/gdb.cp/pr17494.exp
+2dc0f65403bce649313dbc43eea41694  gdb/testsuite/gdb.cp/member-ptr.cc
+f6c6b08a4c146a14e7376fbfbfbf8462  gdb/testsuite/gdb.cp/noparam.exp
+9448f2ea5f075c48e7f95315d08d3077  gdb/testsuite/gdb.cp/readnow-language.exp
+55183016eb9373121ab3550e1e3855fb  gdb/testsuite/gdb.cp/cpsizeof.cc
+15ef3b21df097bf2f4d1da662a05b5ff  gdb/testsuite/gdb.cp/formatted-ref.cc
+140b3ad8fad4909f0eae90c6a29eec28  gdb/testsuite/gdb.cp/try_catch.exp
 e748c1a7bcb32dae45925a92fb033b45  gdb/testsuite/gdb.cp/nsdecl.cc
-6a4e9b4471759d20a5966b2864edd19e  gdb/testsuite/gdb.cp/non-trivial-retval.exp
-1acb9d93dbf4adb6b74333f87323695a  gdb/testsuite/gdb.cp/cttiadd2.cc
-2879356b8b4b2e4946ee163eecdb384d  gdb/testsuite/gdb.cp/minsym-fallback.exp
-797a2b14056060458d97d89687698d3d  gdb/testsuite/gdb.cp/member-name.cc
-7fa8c2d18e0e745d7046a1af406ac6ef  gdb/testsuite/gdb.cp/ref-types.exp
-6522e11033c846deaad7718434f64a79  gdb/testsuite/gdb.cp/parse-lang.exp
-8b0399b13ea655c1afa0f20128b725ca  gdb/testsuite/gdb.cp/oranking.exp
-a6f3c70172387ed442d37a4e701c06ac  gdb/testsuite/gdb.cp/cpexprs.cc
-b140eb5bf23e50a06543fefc386c4f19  gdb/testsuite/gdb.cp/inherit.exp
-9da0773b697426ac1b27741850942721  gdb/testsuite/gdb.cp/koenig.exp
-2fdff0a9eace97e43ce36170bd32bbce  gdb/testsuite/gdb.cp/userdef.cc
-9bd12187dcc692621c45a2d310578019  gdb/testsuite/gdb.cp/cpcompletion.exp
-d2355dbcf84c17fbf80c93a79c4f971c  gdb/testsuite/gdb.cp/exception.exp
-f0800cfef325b127f6436d5de8183380  gdb/testsuite/gdb.cp/nsnoimports.exp
-22e5ad86f8c4b796350312e499ce8bd4  gdb/testsuite/gdb.cp/includefile
-2be2ab2cf07ac29d7fe8d7b93eb1d729  gdb/testsuite/gdb.cp/rtti1.cc
+a8634d01568abd755a8547e0bff8f765  gdb/testsuite/gdb.cp/non-trivial-retval.exp
+dcee4257e3dbcccb22d3e96d9040495e  gdb/testsuite/gdb.cp/cttiadd2.cc
+2197411aa3885316160d2c80cd952182  gdb/testsuite/gdb.cp/minsym-fallback.exp
+f584a83a9fdcb9d71dca9b7b7f8ec697  gdb/testsuite/gdb.cp/member-name.cc
+5dbae2761f35d24565fe830b48eb4751  gdb/testsuite/gdb.cp/ref-types.exp
+a8f527f31bb10bc6666ac6a51532955f  gdb/testsuite/gdb.cp/parse-lang.exp
+acef183f1fa6e91a1da9e2c7d277e8d4  gdb/testsuite/gdb.cp/oranking.exp
+09e14657c9c53138be75e8b1a91281d4  gdb/testsuite/gdb.cp/cpexprs.cc
+76d6a3850c19a823d5e7a96a55a9e21b  gdb/testsuite/gdb.cp/inherit.exp
+04f99b65d331647f3e6fc0326bc67d05  gdb/testsuite/gdb.cp/koenig.exp
+ae201909faaee16203258e37e0a991ed  gdb/testsuite/gdb.cp/userdef.cc
+0133ccb9a55f1a34a7f910e1fec75142  gdb/testsuite/gdb.cp/cpcompletion.exp
+f79ad38b1c6e41a1bfacb86e1c87518e  gdb/testsuite/gdb.cp/exception.exp
+1a6b2df5185af056c18906b104a72f7d  gdb/testsuite/gdb.cp/nsnoimports.exp
+d2b7356c796886cfe2fbcd4b952efefa  gdb/testsuite/gdb.cp/includefile
+521470c15371cf32270b035cda05245d  gdb/testsuite/gdb.cp/rtti1.cc
 e6bbc12bae29b83d922b39735265dbfd  gdb/testsuite/gdb.cp/nsnoimports.cc
 2e902d980a259189eabccce1cf8b8fbe  gdb/testsuite/gdb.cp/hang2.cc
-38db30f8f5d350e95085c4797425fc94  gdb/testsuite/gdb.cp/infcall-dlopen-lib.cc
-3ae8bcda0a830d805474480906976652  gdb/testsuite/gdb.cp/mb-inline.h
-815d5a69fb441edc7bdb6339a30d66bd  gdb/testsuite/gdb.cp/pr-574.exp
-c9fb2f217480235020ae9b2215ae25eb  gdb/testsuite/gdb.cp/nsalias.exp
-4fa8958f6b317b695f47ab3a54cb736e  gdb/testsuite/gdb.cp/method.exp
+85e07d8f2a5fab83993ce427f3d93472  gdb/testsuite/gdb.cp/infcall-dlopen-lib.cc
+f3e3510064e96d4db2df2faafac40d4f  gdb/testsuite/gdb.cp/mb-inline.h
+35644f6f7f5a5cfe97e2ae624bd56a2d  gdb/testsuite/gdb.cp/pr-574.exp
+29fb739cef598c36701461c90a02e37f  gdb/testsuite/gdb.cp/nsalias.exp
+1dd672d6c5c1fe2e630eef3106575388  gdb/testsuite/gdb.cp/method.exp
 923e8df050d19e1c25a51df276ffd8ae  gdb/testsuite/gdb.cp/m-data.cc
-9d014fe19e3d86952d5ee17282d3ae10  gdb/testsuite/gdb.cp/noparam.cc
-1c094a086eca9f824bd600392d5e33ee  gdb/testsuite/gdb.cp/arg-reference.cc
-71ef746f0d3056d8ee07bc593fb1b33b  gdb/testsuite/gdb.cp/static-print-quit.cc
+2763f78a7b7c38fd4597c94a8dfb37a2  gdb/testsuite/gdb.cp/noparam.cc
+b83692c68f4a9d9005653e280a3d7607  gdb/testsuite/gdb.cp/arg-reference.cc
+5b70d84175c41b1769ec1cba13dc35d6  gdb/testsuite/gdb.cp/static-print-quit.cc
 d735c2737237aa3cdaf44118af17689e  gdb/testsuite/gdb.cp/ovldbreak.cc
-914669a6a2388168f947623ec227589b  gdb/testsuite/gdb.cp/nsstress.exp
-7b0a377e0620f143c74b5748c23adf7d  gdb/testsuite/gdb.cp/anon-struct.exp
-5bda687ec756bf925ae37a927b7e5efd  gdb/testsuite/gdb.cp/extern-c.cc
+890dd05ebf3c6de6f52c118705bd828f  gdb/testsuite/gdb.cp/nsstress.exp
+552ed18e03f03763fa85b20f69fe8efa  gdb/testsuite/gdb.cp/anon-struct.exp
+6f83498b60ab55ac56d0909986d5c339  gdb/testsuite/gdb.cp/extern-c.cc
 5aa100b253777f14d000cbac2d0a5c31  gdb/testsuite/gdb.cp/namespace-nested-import.cc
 1b230ab8da1b477237f0e769d5bd1af3  gdb/testsuite/gdb.cp/operator.cc
-d33b9299aaa7e11ed0570f2392d26922  gdb/testsuite/gdb.cp/minsym-fallback.cc
-ebc31bee4d72dfe3257c88545c4b1a62  gdb/testsuite/gdb.cp/rvalue-ref-overload.exp
+f897a393f5e00d43aa78b98828bc897d  gdb/testsuite/gdb.cp/minsym-fallback.cc
+af21e4c75480b359add79eea5f6080ce  gdb/testsuite/gdb.cp/rvalue-ref-overload.exp
 b4e27711f6e1b4b16df591b4acd7bdf1  gdb/testsuite/gdb.cp/hang3.cc
 feb819b43dbe4b5c8af03a9f050c6d04  gdb/testsuite/gdb.cp/virtbase.cc
-7c54813c2ea16e3cd5895508e3934c7f  gdb/testsuite/gdb.cp/virtfunc.cc
+bbdf65c62b731c519bc2866caafccc8d  gdb/testsuite/gdb.cp/virtfunc.cc
+42412310dc689b23ad100ef068e41c11  gdb/testsuite/gdb.cp/nested-types.cc
 bec5831953699a0daf2274369c6f1ed1  gdb/testsuite/gdb.cp/hang.H
 2cfb40b86367c5e651147f419c05f8c7  gdb/testsuite/gdb.cp/pr9067.cc
-91aa6a46fe925f629917f1b94f95ca36  gdb/testsuite/gdb.cp/gdb2384.exp
-7f7d3731476b999b8c485530cc1d1490  gdb/testsuite/gdb.cp/member-name.exp
-516a95b38230eb40fb1ca062192b3d9c  gdb/testsuite/gdb.cp/ambiguous.exp
-9435d8acab414b39f755eb53277ae48f  gdb/testsuite/gdb.cp/casts.exp
-f94b813b37eaa39648a4c09860d8d33e  gdb/testsuite/gdb.cp/nsalias.cc
-d56a038b109aba76c00023df84297e36  gdb/testsuite/gdb.cp/static-method.cc
-7b329e21a34b0d213eccc1e30b65e59c  gdb/testsuite/gdb.cp/var-tag-3.cc
-6f3b5f311fab23411932a0cf01d5355f  gdb/testsuite/gdb.cp/cplabel.cc
-bc3c1d3ed0fb0a25825b5b0f4f600e29  gdb/testsuite/gdb.cp/nextoverthrow.exp
+38561dd199b362fc232778c1b1f67f29  gdb/testsuite/gdb.cp/gdb2384.exp
+1d78906d96fcafde2df49b34af7236a1  gdb/testsuite/gdb.cp/member-name.exp
+b84a3979f794b52a9c39550ef52a6759  gdb/testsuite/gdb.cp/ambiguous.exp
+ebf8e065f810df3315998cdf25b54cc8  gdb/testsuite/gdb.cp/casts.exp
+91ef4988c58199286404c719f508c3e6  gdb/testsuite/gdb.cp/nsalias.cc
+d4772a34be9ca7cc1ed8471303ff6f02  gdb/testsuite/gdb.cp/static-method.cc
+aae58b1dd2df671db6392cf918099dc6  gdb/testsuite/gdb.cp/var-tag-3.cc
+eba25ae9051247fe9ab0d48c14afb612  gdb/testsuite/gdb.cp/cplabel.cc
+40c0f3837b90c3dec50462e9ddb89698  gdb/testsuite/gdb.cp/nextoverthrow.exp
 07fa7f618722031893284e4df11fe13e  gdb/testsuite/gdb.cp/pr-1210.cc
-c31c9efa91c5e602705fc37109138191  gdb/testsuite/gdb.cp/anon-ns2.cc
+523ca7abec9db8a032cd8f769390d97c  gdb/testsuite/gdb.cp/anon-ns2.cc
 2d5a3f3b8c870b803e657d40ceae038e  gdb/testsuite/gdb.cp/pr9167.cc
-1f64b017a828e00221de36a93b18a22c  gdb/testsuite/gdb.cp/rvalue-ref-params.exp
-e607e92419bbda1203d9cbe1733e7f1e  gdb/testsuite/gdb.cp/cp-relocate.exp
-d536948750c240173e0faa4088c13a79  gdb/testsuite/gdb.cp/temargs.cc
-83da82af5eb5bb25109c24a7f12d0348  gdb/testsuite/gdb.cp/rvalue-ref-params.cc
-11ea31799ce7d4b8f87f9d194c07dc2c  gdb/testsuite/gdb.cp/anon-union.exp
-f6e7e1323e79728f1bedf219da76ea39  gdb/testsuite/gdb.cp/impl-this.cc
-d9fc5a68abf20922e5110f56c657a845  gdb/testsuite/gdb.cp/pr10687.exp
-ca4cbd1bf474298658725a33b9804909  gdb/testsuite/gdb.cp/wide_char_types.c
+54d6353ac19132227879cd82ef048425  gdb/testsuite/gdb.cp/rvalue-ref-params.exp
+5a9ce60ef5ecc437b62d46143e5e1321  gdb/testsuite/gdb.cp/cp-relocate.exp
+c312af87ed84bfcaa814329636b98c3a  gdb/testsuite/gdb.cp/temargs.cc
+36309bda9c1b96fc830f2183c4d9f3c5  gdb/testsuite/gdb.cp/rvalue-ref-params.cc
+529c45fdf1e28c6868f41e3cfeda4d3a  gdb/testsuite/gdb.cp/anon-union.exp
+dcd9738a90b1dcf395813b67df6fe0ac  gdb/testsuite/gdb.cp/impl-this.cc
+2dd79086f7694ebe083f31b914405d36  gdb/testsuite/gdb.cp/pr10687.exp
+f7b661a51973cab1d33a24a6265126e7  gdb/testsuite/gdb.cp/wide_char_types.c
 d147f29e4035d7ebbaa76dd68918f2dc  gdb/testsuite/gdb.cp/m-static.cc
-c20cd3e1f7eaa4baaa6f796f029bc0c8  gdb/testsuite/gdb.cp/static-print-quit.exp
-cb798d5d3f135af41c30acbeecc3369e  gdb/testsuite/gdb.cp/gdb1355.exp
-cf2da2c0c0a72c29eb27d7bef929802e  gdb/testsuite/gdb.cp/cttiadd.cc
-20e2285bdf97255e0b98bbb9677c57a2  gdb/testsuite/gdb.cp/misc.exp
-caef9cca5319b6dc418036ebdfa59be4  gdb/testsuite/gdb.cp/expand-sals.exp
-72d4d264094f9c937f069807a1072387  gdb/testsuite/gdb.cp/ovsrch.h
+75f347efc1e916dbf3f36b5c57855480  gdb/testsuite/gdb.cp/static-print-quit.exp
+4c596abecc55f72fa649b1a9fc6db580  gdb/testsuite/gdb.cp/gdb1355.exp
+123a0dff68ea69341f2697d03e2e60a0  gdb/testsuite/gdb.cp/cttiadd.cc
+2cbf94bd4795ba76ede2a549a4de3122  gdb/testsuite/gdb.cp/misc.exp
+ed1d421a8f63a4437e10cbaea81f92ca  gdb/testsuite/gdb.cp/expand-sals.exp
+099f7d8f4ab51bfe38243c1ba77e150a  gdb/testsuite/gdb.cp/ovsrch.h
 55268c22c0ae3a64d769ce8101d70f11  gdb/testsuite/gdb.cp/pr12028.cc
-29e0f2499a436f12415a04b1f4da8a6a  gdb/testsuite/gdb.cp/smartp.exp
-a3889a3298752b37dedb1037ab225996  gdb/testsuite/gdb.cp/m-data.exp
+26c0037b90f9dd65e74bfa2ca72ef208  gdb/testsuite/gdb.cp/smartp.exp
+7394387f7e0d0b87a2f039c1a128d3a6  gdb/testsuite/gdb.cp/m-data.exp
+e5b949cf38cb6a762700a38244ff6671  gdb/testsuite/gdb.cp/local-static.cc
 f78534d3f0d2bb593cb77af10363735c  gdb/testsuite/gdb.cp/mb-ctor.cc
-e04e2b0b50db769d9a1485e731c1bef9  gdb/testsuite/gdb.cp/shadow.exp
-63f3b0c1b38af2f1190d2d6d8032ea75  gdb/testsuite/gdb.cp/re-set-overloaded.exp
-9e633fbba046bfb63a63084d63e213d2  gdb/testsuite/gdb.cp/overload-const.cc
-4bee19ab483ad9c91a3c3c0a5f98f08f  gdb/testsuite/gdb.cp/virtfunc.exp
+5a7c186530036fc448e5ab5b633ede22  gdb/testsuite/gdb.cp/shadow.exp
+59ad8ab415eb04d09f2d65b1ea165f87  gdb/testsuite/gdb.cp/re-set-overloaded.exp
+53f60b2354ccd958fb7db6ac5f3b25ad  gdb/testsuite/gdb.cp/overload-const.cc
+017c0978d673ca070bd142816d9b003d  gdb/testsuite/gdb.cp/virtfunc.exp
 0a15a0bc517ee0acca862308c89de14b  gdb/testsuite/gdb.cp/pr-1023.cc
-46ad322745ecbd26f65e93d7e4b50dd0  gdb/testsuite/gdb.cp/ptype-flags.exp
-786dff144402fc3a825003754d2a2bf0  gdb/testsuite/gdb.cp/ovsrch.exp
-77d70620460473d5098368c3419234f7  gdb/testsuite/gdb.cp/anon-ns.exp
+04b10c859e84ce0b5653f3c3457c77a1  gdb/testsuite/gdb.cp/ptype-flags.exp
+08d2276fd8c338d176910b3b9f053307  gdb/testsuite/gdb.cp/ovsrch.exp
+c1a05bb109f726bcfdd50347d2b70b1d  gdb/testsuite/gdb.cp/anon-ns.exp
 aa3b210cfd056b6a8835065c2c6aa791  gdb/testsuite/gdb.cp/destrprint.cc
-b65f31d8e947273031ad00b592a0b5b0  gdb/testsuite/gdb.cp/class2.cc
-1354754fe5ab9497f2d18fe832af503c  gdb/testsuite/gdb.cp/gdb2384-base.h
+f19c38366a13f9901292faccb7f536f1  gdb/testsuite/gdb.cp/class2.cc
+77452a47a289921ac96507ae62c1c942  gdb/testsuite/gdb.cp/gdb2384-base.h
 5221a33cd93ea0eba10ad76e6c55a030  gdb/testsuite/gdb.cp/anon-union.cc
-dd2d8a796d364907bcda1f70eb395c3b  gdb/testsuite/gdb.cp/iostream.cc
-87dfa040ec18c7ff9397349524a277e2  gdb/testsuite/gdb.cp/mb-ctor.exp
-6f19ef5db18f88b53e4cccc8004eca66  gdb/testsuite/gdb.cp/enum-class.exp
-39f1ac52adc39c3fc0b5b21f6d715e3c  gdb/testsuite/gdb.cp/gdb2495.cc
-0460f0e5aca81105408378a7d68c51e7  gdb/testsuite/gdb.cp/smartp.cc
-2ed77ff755e69a1d1e394c32dabca161  gdb/testsuite/gdb.cp/dispcxx.exp
-b089967f5b1a462af0f01e719cfbcba9  gdb/testsuite/gdb.cp/ptype-cv-cp.exp
-05080bbbc79480b37287cc87158f9eff  gdb/testsuite/gdb.cp/punctuator.exp
+fcdec935b1bc37363e807a40ceffc836  gdb/testsuite/gdb.cp/iostream.cc
+fe357dffaa86db2ed3342500046f31a8  gdb/testsuite/gdb.cp/mb-ctor.exp
+c306b3fe88ffb12a68c51faced332629  gdb/testsuite/gdb.cp/enum-class.exp
+34d0ae3a93343af373ada0718c02265b  gdb/testsuite/gdb.cp/gdb2495.cc
+906aadd9ab694e5f644fae1a283ab3b2  gdb/testsuite/gdb.cp/smartp.cc
+2f72469667041d46c1a301132c8fe878  gdb/testsuite/gdb.cp/dispcxx.exp
+25b9fe1d4ef717dfe505e2ac4645ffc3  gdb/testsuite/gdb.cp/ptype-cv-cp.exp
+2847547f18c7adb3b7be9bd945e6c095  gdb/testsuite/gdb.cp/punctuator.exp
 31b4ca24a68ac8ff4bf148d6a8c8c72c  gdb/testsuite/gdb.cp/nsstress.cc
 584a50069ae4ae90c745978c0bb994db  gdb/testsuite/gdb.cp/local.cc
-efd1093877d40a0049a3700eeee99f38  gdb/testsuite/gdb.cp/class2.exp
-9c90aceb87b28b59f5ce237a093405d6  gdb/testsuite/gdb.cp/abstract-origin.cc
-7395c487f6794121382a2454ee520c1c  gdb/testsuite/gdb.cp/rtti.exp
-1de2afb9372163c1dc3ebb5ddc9685e3  gdb/testsuite/gdb.cp/namelessclass.exp
-610103bef67258784e9182bcb40641a8  gdb/testsuite/gdb.cp/parse-lang.cc
-9b95d9961b4b998a9628e060332b9c0f  gdb/testsuite/gdb.cp/ptype-cv-cp.cc
-17c3bf42cf98435203b68465b65d1a20  gdb/testsuite/gdb.cp/rtti2.cc
-1e0ce82100ce337acaad021dfbb9a1d2  gdb/testsuite/gdb.cp/var-tag-2.cc
-00d198ce9f2285b1aaeeca056122db41  gdb/testsuite/gdb.cp/wide_char_types.exp
-3f5ccbac6a24a89ee5902e95f7b52233  gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc
-2b822218272026a7b1cd0aa5c4c54974  gdb/testsuite/gdb.cp/nsnested.exp
-99eedf1581c7d74b79022a81adbff1f3  gdb/testsuite/gdb.cp/shadow.cc
-4b6c5ec2eaf546c53e48bafe7c8858a2  gdb/testsuite/gdb.cp/filename.cc
-088ce275f543b34a86c9577c8820f32c  gdb/testsuite/gdb.cp/psymtab-parameter.cc
-6300b5dcc837de744be8e726066291ee  gdb/testsuite/gdb.cp/namelessclass.S
-d54934977e80fd223a2ec74569712dd9  gdb/testsuite/gdb.cp/meth-typedefs.exp
-15ca41139f0d7576fc0a8f2074efda38  gdb/testsuite/gdb.cp/exceptprint.exp
-8c06c8efe000e60c9cca8f5fb0fd1ef2  gdb/testsuite/gdb.cp/arg-reference.exp
-77aa5b02bcab85aaf59da80b3e2cc615  gdb/testsuite/gdb.cp/cttiadd3.cc
+e27bee1631d58c442dd74830099184bf  gdb/testsuite/gdb.cp/class2.exp
+b25bcb200f846df1b0b2e7a03db37c2e  gdb/testsuite/gdb.cp/abstract-origin.cc
+412ef18b72deac5659402bb92aa40658  gdb/testsuite/gdb.cp/rtti.exp
+a4c6fbd2e53efd7f100d5fb9468e957b  gdb/testsuite/gdb.cp/namelessclass.exp
+ddd73a8ed58a82179d5099b027932013  gdb/testsuite/gdb.cp/parse-lang.cc
+ec3b569a251bd308264acbc6e0359c10  gdb/testsuite/gdb.cp/ptype-cv-cp.cc
+ce39ca0650b72d5c2dbfcc694044442a  gdb/testsuite/gdb.cp/rtti2.cc
+d2ca9912c7225facc2791fa440af3e83  gdb/testsuite/gdb.cp/var-tag-2.cc
+87c658842ae9a73162e616bbe74259da  gdb/testsuite/gdb.cp/wide_char_types.exp
+3c9accc740671720cc675d2de1a09ebd  gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc
+0f6fa9809d7c5177192cd4364a3547de  gdb/testsuite/gdb.cp/nsnested.exp
+670802988499deb05309f8f73e62e0d3  gdb/testsuite/gdb.cp/shadow.cc
+80b38b073235d433e25ef31dabc4fe3e  gdb/testsuite/gdb.cp/filename.cc
+2d29be80ab2e1ab85c5d3a0faffc10bd  gdb/testsuite/gdb.cp/psymtab-parameter.cc
+548d7399a0b0774b61d99d5e07fb17e8  gdb/testsuite/gdb.cp/namelessclass.S
+c5d4c686908a0a30355684d215defdcd  gdb/testsuite/gdb.cp/meth-typedefs.exp
+585ee7e33aa6c61d6eb4ffe6897e78d3  gdb/testsuite/gdb.cp/exceptprint.exp
+58d69e5e19036c0409c229a4e3f11c5e  gdb/testsuite/gdb.cp/arg-reference.exp
+d82b469d890a2446309d03e063e3cad9  gdb/testsuite/gdb.cp/cttiadd3.cc
 7844dbfb63d5ee815db3c14cb769c796  gdb/testsuite/gdb.cp/m-static1.cc
 d35ad7023fbe864b81f9469bbee7c048  gdb/testsuite/gdb.cp/gdb1355.cc
-e2131930c09f0e9eb2eb4e26cdaf023b  gdb/testsuite/gdb.cp/mb-inline.exp
+f05d57cb3044a1fa45926ae9fdd7de45  gdb/testsuite/gdb.cp/mb-inline.exp
+9b9d28bdbc79c8e578a09bf5110aaced  gdb/testsuite/gdb.cp/local-static.c
 4e402d8c3d4006f294952831e26242fa  gdb/testsuite/gdb.cp/method2.cc
-3752b777f729e053d10c67bc1460940d  gdb/testsuite/gdb.cp/static-method.exp
-3dac541089109f0fae3a3f8ae11b1c2b  gdb/testsuite/gdb.cp/cpexprs.exp
+040aa095eff4f0813f7dedf859108328  gdb/testsuite/gdb.cp/local-static.exp
+9711e3c4efa374fa10ef7aa5c59098f3  gdb/testsuite/gdb.cp/static-method.exp
+2a2035ef2f67459b7142ec9bdf6c4116  gdb/testsuite/gdb.cp/cpexprs.exp
 de28a705c2ece829611f015aa519e070  gdb/testsuite/gdb.cp/templates.cc
 4b1557ca2d2d17c8b4a96bf9fd97960a  gdb/testsuite/gdb.cp/mb-templates.cc
-aea9370a04165f6a76bab3b5ddbda80d  gdb/testsuite/gdb.cp/member-ptr.exp
-2f123dd8d615c9cafde367dc2b097b47  gdb/testsuite/configure.ac
-f72c23e0e4ceb030f760ba0570c9dea3  gdb/testsuite/README
+4ee100cafe94e6e0fca137ae067f2139  gdb/testsuite/gdb.cp/member-ptr.exp
+efd244e3169557bbd711d052b598a62d  gdb/testsuite/configure.ac
+81527fa82824fe2728482c07daa8608a  gdb/testsuite/README
 b6356c24ee75e2e014f04332144a1543  gdb/testsuite/gdb.mi/mi-console.c
-3077c639094fe6bbe919ee5a3d66db5a  gdb/testsuite/gdb.mi/mi-catch-load.exp
+457feb8168c1f2f7cdd47fce1c1049a5  gdb/testsuite/gdb.mi/mi-catch-load.exp
 bbff496566f190853c0830bf572d6d95  gdb/testsuite/gdb.mi/gdb701.c
-50fc58eb19fc6ef6da68573a7fcfda75  gdb/testsuite/gdb.mi/mi-pendshr2.c
-1260f56115b4974f53db317944f058a2  gdb/testsuite/gdb.mi/mi-cli.exp
-5e6e1fd73b9aa6e6827e0f8589cff329  gdb/testsuite/gdb.mi/mi-cmd-error.exp
-7e8050d3c8b4ca9f673bbac703667959  gdb/testsuite/gdb.mi/mi-dprintf.exp
-83fa8783a51e6fe4b6f36b7ba4c19eae  gdb/testsuite/gdb.mi/mi-language.exp
-ba16bf6c545c97fe425a2a06c3e98928  gdb/testsuite/gdb.mi/mi-record-changed.exp
-5eacd938fc4a3a34cd0d4e08263809d0  gdb/testsuite/gdb.mi/watch-nonstop.c
-01a20c968acb1b534b20fddd4a956c4b  gdb/testsuite/gdb.mi/pr11022.exp
-36f259aea7c0af99c563e9ec1042d579  gdb/testsuite/gdb.mi/mi-syn-frame.exp
-75def2c83e7097448865c53082f048f1  gdb/testsuite/gdb.mi/mi-var-create-rtti.c
-4cfa6a5d8557a51ca3ed8cf0416f6fd2  gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp
+7491773246b020ceafb414364860760f  gdb/testsuite/gdb.mi/mi-pendshr2.c
+4e029d55e030377a039acad3d032d5ff  gdb/testsuite/gdb.mi/list-thread-groups-available.c
+aa6134b7ea814823645461b6436d18e4  gdb/testsuite/gdb.mi/mi-cli.exp
+5255b7c7feabcf0d7b342e0971c92b62  gdb/testsuite/gdb.mi/mi-cmd-error.exp
+15b35f535a303aa48aa720786de1076f  gdb/testsuite/gdb.mi/mi-dprintf.exp
+cb33d627b8d91152564fba905c865368  gdb/testsuite/gdb.mi/mi-language.exp
+57240009221c5d7dad53ac89ec73cc2d  gdb/testsuite/gdb.mi/mi-record-changed.exp
+d9b6fbd2ec429cbcc59c01757e360926  gdb/testsuite/gdb.mi/watch-nonstop.c
+e0e5ae125344cd9a4cb805aef984db9a  gdb/testsuite/gdb.mi/pr11022.exp
+7f9246489aa95a11433e05b75b22477c  gdb/testsuite/gdb.mi/mi-syn-frame.exp
+8d82e817b3679759d98d8e835e93a63d  gdb/testsuite/gdb.mi/mi-var-create-rtti.c
+ec744f06caa710c5de2d741bb7cf465f  gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp
 d842f3134dbac91b77ca50d320988178  gdb/testsuite/gdb.mi/mi-read-memory.c
-00304958f3c3f39bd7e7fa95d8241b41  gdb/testsuite/gdb.mi/vla.c
-e4798e7e3b29c568ca5fd2ecd9d3a920  gdb/testsuite/gdb.mi/mi-nsintrall.exp
-7fbcceeb5b997048e25b973c47bd7ac2  gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-mt.c
-7afa7865002bd0efe20ff64ee5b59c84  gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp
-93353a0201de6120758972972ec29094  gdb/testsuite/gdb.mi/new-ui-mi-sync.c
-bdb9f56b28789a9e135d60b1263f02b1  gdb/testsuite/gdb.mi/gdb669.exp
-a978877e61e94ca1d82fb495227b957b  gdb/testsuite/gdb.mi/mi-var-child.c
-8f7edd3a0b5d304f12e9d43879d1c590  gdb/testsuite/gdb.mi/mi-return.exp
-100deb7844367fa25f58124f77dd2633  gdb/testsuite/gdb.mi/gdb2549.exp
-c206ccadbba5dc7e4945911d63190957  gdb/testsuite/gdb.mi/nsmoribund.c
-b7e2ae14e6d6de3059e57d8394c716d3  gdb/testsuite/gdb.mi/basics.c
-ce99c45d9a590d3574f84b740e3751f5  gdb/testsuite/gdb.mi/mi-break.exp
-64334b3f33471299f2a288a61b9577da  gdb/testsuite/gdb.mi/nsintrall.c
+e955ec634ef0a18e8c5e1a4efe5c112e  gdb/testsuite/gdb.mi/vla.c
+5697e38965b5cb2b82b3edc3b22ddfdf  gdb/testsuite/gdb.mi/mi-nsintrall.exp
+968da213d7bf98077543747eb1f1444b  gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-mt.c
+6ec9de99087b2bfb5b9a3b474d00f3d5  gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp
+3c5cf9101147bf9e4ce2239df491578f  gdb/testsuite/gdb.mi/new-ui-mi-sync.c
+b862c3ba3f7558563dac636278f84a76  gdb/testsuite/gdb.mi/gdb669.exp
+a8b0a13fcae6a0ccd5ce36e1ef85845c  gdb/testsuite/gdb.mi/mi-var-child.c
+98990f277b6427ff3f56f7c3ec62ce64  gdb/testsuite/gdb.mi/mi-return.exp
+294fb7678b3c92f010ed02a3ab90efeb  gdb/testsuite/gdb.mi/gdb2549.exp
+26d49abdbd3c6ed32d8d240bf28312e3  gdb/testsuite/gdb.mi/nsmoribund.c
+d42da734adc905f913b7dfb645f2cb8e  gdb/testsuite/gdb.mi/basics.c
+db102b42b76b8a054c394486ecf3effd  gdb/testsuite/gdb.mi/mi-break.exp
+6cc764186f9d31e9ecc9d9766ed2ca4e  gdb/testsuite/gdb.mi/nsintrall.c
 f66cbc5e80c1115869bb9a14abdcb49a  gdb/testsuite/gdb.mi/until.c
-97615db765b5eecdd3bc0c4bc792fbb4  gdb/testsuite/gdb.mi/pendshr2.c
-8413bceae59c8fcd3c1e2fad58b6e90e  gdb/testsuite/gdb.mi/mi2-amd64-entry-value.s
-ec1bf193d2ef3282b014b6bad347b0fb  gdb/testsuite/gdb.mi/mi-vla-c99.exp
-6753eb05ce2dc383ab1f03b34261dbcd  gdb/testsuite/gdb.mi/mi-start.exp
-6e707ccfc1ede37fac17e95d0c44b280  gdb/testsuite/gdb.mi/vla.f90
-b3e98c05eaee55c53b8996cdce20ef23  gdb/testsuite/gdb.mi/mi-var-child-f.exp
-ad4eea670944492fd7842a643fe36c71  gdb/testsuite/gdb.mi/mi-stack.exp
-43976daba86aeb403956dd5e53154189  gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.c
-73d14b070c4271a7d5f1029c816878ae  gdb/testsuite/gdb.mi/mi2-prompt.exp
-1345337189965a65c16174450d6e22b4  gdb/testsuite/gdb.mi/mi-dprintf-pending.exp
+f895e545878194cfb0f494c78848be8c  gdb/testsuite/gdb.mi/pendshr2.c
+8d441e5c6d2d8d3b8791c410617b9e76  gdb/testsuite/gdb.mi/mi2-amd64-entry-value.s
+609dcf46ddb88ada6d1e9d333cd6f34c  gdb/testsuite/gdb.mi/mi-vla-c99.exp
+5f55fdfb5176994b309491c85c247311  gdb/testsuite/gdb.mi/mi-start.exp
+54d91b89c6e1956673cb23413a4d873b  gdb/testsuite/gdb.mi/vla.f90
+7b84987c5abb19f04b2539b5dc505429  gdb/testsuite/gdb.mi/mi-var-child-f.exp
+5b82758f8eb209f2fa9a410eaab43c98  gdb/testsuite/gdb.mi/mi-stack.exp
+34bcd858bd492b592ca90a310d09861d  gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.c
+2f0548378009f050eb4c6904ba217300  gdb/testsuite/gdb.mi/mi2-prompt.exp
+a636561b83f5699ffb52c79517fdfa73  gdb/testsuite/gdb.mi/mi-dprintf-pending.exp
 966fb70be9ca0040daab6b55abf50020  gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.cc
-a8d1333038e31bc67840287b3a690c28  gdb/testsuite/gdb.mi/mi-var-rtti.exp
-713c138befe80eb234cea9f100616cff  gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp
-415e872c1ddbdd7a667abcf90e86fcaa  gdb/testsuite/gdb.mi/mi-reverse.exp
-65e475a49ecaeda35e8d7beacbac494b  gdb/testsuite/gdb.mi/mi-memory-changed.exp
-2a702fac69c3daa903f1181db210a819  gdb/testsuite/gdb.mi/mi-dprintf-pending.c
-2c1387ba905dbf09f9be559bbc1dc88a  gdb/testsuite/gdb.mi/pending.c
-1e5869426cff389dbf03544130c5fafa  gdb/testsuite/gdb.mi/mi-watch-nonstop.exp
-ed6a226c15f4817ba316114805eb9cce  gdb/testsuite/gdb.mi/mi-reg-undefined.c
-43e2592f98442f1597f536f286faece0  gdb/testsuite/gdb.mi/mi-var-cp.cc
-7d9d14e786314155746bc47656e4b3cc  gdb/testsuite/gdb.mi/mi-basics.exp
-4d3fd0cf015ae803a07373e7080ae8c1  gdb/testsuite/gdb.mi/mi-nonstop-exit.exp
-5b1c8cf2c78d2b0a0afdd9fb20eaeb90  gdb/testsuite/gdb.mi/pendshr1.c
-1adcacdaeb1f4a7581cde2e748fffe1b  gdb/testsuite/gdb.mi/mi-fill-memory.exp
-06d023e4fdf3f813a47490416ec4139b  gdb/testsuite/gdb.mi/nsthrexec.c
-3eb13b4d0c602091fe350b8c718b0181  gdb/testsuite/gdb.mi/mi-dprintf.c
-88a0c7329320a1336da55552ba4f57f4  gdb/testsuite/gdb.mi/mi-disassemble.exp
-730b92410d3bd935fb7ba6aa334da7e1  gdb/testsuite/gdb.mi/var-cmd.c
-9a7d5527bcac5c54380bd5fa093d73ef  gdb/testsuite/gdb.mi/mi-stepi.exp
-4c583554c29fd5d04ee47b674bd4d877  gdb/testsuite/gdb.mi/mi-nsthrexec.exp
-6ca8c1ce53f0db4c0604981bcff43c6f  gdb/testsuite/gdb.mi/mi-pending.c
-43fa87dcfe9f9e1c78bc161719ffa7e6  gdb/testsuite/gdb.mi/mi-i-cmd.exp
-09d293d5ab026ef3f745d361c4846edc  gdb/testsuite/gdb.mi/mi-fullname-deleted.exp
-a10bb852bd2d1b8556d708dbc5515ebc  gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
-dd0cc233380f738711c08f514bd5edc2  gdb/testsuite/gdb.mi/mi-reg-undefined.S
-7c08f2ebfc3a188a4b0bfcc847c1e331  gdb/testsuite/gdb.mi/mi-async-run.c
-43216a470bdc7eaa1ce8b5e2214227c2  gdb/testsuite/gdb.mi/mi-nsmoribund.exp
-44f0af0e728fca0549503d871bebedf7  gdb/testsuite/gdb.mi/mi-detach.exp
-763095d072c0ecddb7e5ea12295004ca  gdb/testsuite/gdb.mi/mi-dprintf-pendshr.c
-a514c09d0614db0544318f94eb648f19  gdb/testsuite/gdb.mi/mi-file-transfer.exp
-8b30309304eeb4cb3eba86a16d4c6c96  gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp
-30cfe64bbaa456fb1a534f74812b1384  gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-st.c
-73b6100ace09720b44ff3291a7a1a92e  gdb/testsuite/gdb.mi/mi-exec-run.exp
-9dd83d165830fe921c4e432b41b8e603  gdb/testsuite/gdb.mi/mi-solib.exp
+25e7a4c6167cfd1567f32d59e54880cd  gdb/testsuite/gdb.mi/mi-var-rtti.exp
+9100467c53c5b935dbad90e8298e63b6  gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp
+e01683c24942d813a960bb0747f48f2e  gdb/testsuite/gdb.mi/mi-reverse.exp
+73c5c1868b01d921936380994ace4113  gdb/testsuite/gdb.mi/mi-memory-changed.exp
+d9c98b522b93707b4eed78b8d233d298  gdb/testsuite/gdb.mi/mi-dprintf-pending.c
+d87e016f247b7b51f4929fd9b5f92c57  gdb/testsuite/gdb.mi/pending.c
+d2a0e4f99019011243955f3bd7cf4ca2  gdb/testsuite/gdb.mi/mi-watch-nonstop.exp
+3b825a43e7feabae2b8732b4c413734d  gdb/testsuite/gdb.mi/mi-reg-undefined.c
+88d2332785e137f30d0f9d6fdf8210b6  gdb/testsuite/gdb.mi/mi-var-cp.cc
+b54b8965d4b05a4a0df9f196cce18317  gdb/testsuite/gdb.mi/mi-basics.exp
+7a5bd63d13f74ef0f4127e11a8515610  gdb/testsuite/gdb.mi/mi-nonstop-exit.exp
+39f10ae869296794577d4f97b8748efc  gdb/testsuite/gdb.mi/pendshr1.c
+ebb210c6e2e023e8d26e07799981d7e6  gdb/testsuite/gdb.mi/mi-fill-memory.exp
+194215ce7ee871679761f35c67c0dd39  gdb/testsuite/gdb.mi/nsthrexec.c
+9de31767ce384adadb215cef88a04d54  gdb/testsuite/gdb.mi/mi-dprintf.c
+963d390a870428e81549234c0af7c1a3  gdb/testsuite/gdb.mi/mi-disassemble.exp
+0cf98b41ba913048ac1f1a45aa42caa7  gdb/testsuite/gdb.mi/var-cmd.c
+e8f1f8d41b3f4a2f8917dd4649d2031e  gdb/testsuite/gdb.mi/mi-stepi.exp
+a0a8fba1b7670332829f8b894e2e6006  gdb/testsuite/gdb.mi/mi-nsthrexec.exp
+db1a9201f48f8d07e6d6d58d1bff2995  gdb/testsuite/gdb.mi/mi-pending.c
+544170c9ec7613518bbd97e76bb28b66  gdb/testsuite/gdb.mi/mi-i-cmd.exp
+1f2d2fc651c25697f5fe801050c192e7  gdb/testsuite/gdb.mi/mi-fullname-deleted.exp
+705ce27599f846bd65ba8114abfb7460  gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
+a44cb530d8a8d807332c5b22eb570669  gdb/testsuite/gdb.mi/mi-reg-undefined.S
+bb5c0f096c13d451cbcd121d89666bcf  gdb/testsuite/gdb.mi/mi-async-run.c
+687d1707c3d8ec0ccc6ca06d57937a5a  gdb/testsuite/gdb.mi/mi-nsmoribund.exp
+fa229ddf3f487d5acff52f333f55877d  gdb/testsuite/gdb.mi/mi-detach.exp
+32e8a88fb99dc29630ccac0191bec712  gdb/testsuite/gdb.mi/mi-dprintf-pendshr.c
+dfb972c209c8b6e5edcad5606e79e0da  gdb/testsuite/gdb.mi/mi-file-transfer.exp
+6531854deb0f91bd1557ec0550dbeb84  gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp
+d15a3af965ad64b99043505e29cd901c  gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-st.c
+360528c893c68980288e0946d82f3b81  gdb/testsuite/gdb.mi/mi-exec-run.exp
+82ac97c8fbb1761e25dd4350d777eff7  gdb/testsuite/gdb.mi/mi-solib.exp
 1efe6f6402cbf322cd8aa810521f4b17  gdb/testsuite/gdb.mi/ChangeLog-1999-2003
-af98d766a23dce7b168dc638acfb6d2e  gdb/testsuite/gdb.mi/gdb680.exp
-6a24e1a177765a0f10e1859d336ae0c4  gdb/testsuite/gdb.mi/mi-nonstop.exp
-eb1adf63a2bb749aef6616206e7125d1  gdb/testsuite/gdb.mi/mi-var-child.exp
-f82910ec4f81637e675aebfdc8502147  gdb/testsuite/gdb.mi/mi-var-cp.exp
-f46d16206603601337ab08ef36f1d692  gdb/testsuite/gdb.mi/new-ui-mi-sync.exp
-d99da2775d00a7634d5095f06b2d9e1a  gdb/testsuite/gdb.mi/pr11022.c
-c440ce4055b61909fb02449b23fa9901  gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c
-72a50046c302f1d177f9e07a3d9603da  gdb/testsuite/gdb.mi/mi-until.exp
-bc4480a2ea935028bea45c20f9f4009c  gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc
-65f4125ee1ca4773c5ae9af3d811740c  gdb/testsuite/gdb.mi/mi-async-run.exp
-a21432f33bae3c23a0cad1420323f5d1  gdb/testsuite/gdb.mi/mi-console.exp
-f57eb3109a8b5798e9b1b7604653a27c  gdb/testsuite/gdb.mi/mi-stepn.exp
-7769067a7a925f88b147d4e4b3e9e27e  gdb/testsuite/gdb.mi/gdb792.exp
-48d7cb8b4b013cec9b2acfdb1324cc9a  gdb/testsuite/gdb.mi/mi-stack.c
-6c6abf8dac198d27da235403ec0c0b96  gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp
+3c2a165525bb681f0c3226fd39e7db43  gdb/testsuite/gdb.mi/gdb680.exp
+89aceaa8e606881ae494ec0ec9549a75  gdb/testsuite/gdb.mi/mi-nonstop.exp
+9536d39f1c9015267b53b85c3868f9c5  gdb/testsuite/gdb.mi/mi-var-child.exp
+390b71abaadb0bc63494ec8f93b8bada  gdb/testsuite/gdb.mi/mi-var-cp.exp
+f14a3d5abc654aa00f5118ce65c21d86  gdb/testsuite/gdb.mi/new-ui-mi-sync.exp
+d12203e3f6b4b10ddb732cbfc4e88a5d  gdb/testsuite/gdb.mi/pr11022.c
+30356fe19c8ee03d519a5dcfcc84030e  gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c
+77666687c4832eb026f37467622e5228  gdb/testsuite/gdb.mi/mi-until.exp
+908335b806460d76392f86c96b2108c1  gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc
+a115aa597da405ca4b3f48d1723e236e  gdb/testsuite/gdb.mi/mi-async-run.exp
+7764a97135ab1107cf88d607474686d8  gdb/testsuite/gdb.mi/mi-console.exp
+9e689f0ddeecc19ad1b28ce1cc38d746  gdb/testsuite/gdb.mi/mi-stepn.exp
+74e73265c7b4e7dedb6dabe4719975e2  gdb/testsuite/gdb.mi/gdb792.exp
+976d8150672f4bfc4c18c05a6c0e7d60  gdb/testsuite/gdb.mi/mi-stack.c
+f9efbaca6854c09eb7440aeba0e16fbd  gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp
 6b58acbe5f1fe573c27b67f2e2a2fee1  gdb/testsuite/gdb.mi/testcmds
-f3cd4f4741c49a3a9b35a9c42d5fadfe  gdb/testsuite/gdb.mi/mi-read-memory.exp
-3c5b336d46fb9decbba93d32dd26d424  gdb/testsuite/gdb.mi/pthreads.c
-4245e1ac3c4d701ec22c7301e077720f  gdb/testsuite/gdb.mi/mi-threads-interrupt.exp
-efba09ca675ce48d3130dd56902910a2  gdb/testsuite/gdb.mi/non-stop.c
-42f76d05a6f73711b15152d171aa47d1  gdb/testsuite/gdb.mi/mi-var-rtti.cc
-c4684ba764b372686fd4eb1da30876c2  gdb/testsuite/gdb.mi/mi-async.exp
-d4cadf11d1ef258cc8004ce628ec4073  gdb/testsuite/gdb.mi/user-selected-context-sync.c
-fb07443d5e0b2c3c465177a6381b477e  gdb/testsuite/gdb.mi/non-stop-exit.c
-3d37cc3a96f32e0902f7e57128ee7b9b  gdb/testsuite/gdb.mi/mi-start.c
-5aa24f4d1e12f7c35318da8af2b347eb  gdb/testsuite/gdb.mi/mi2-var-child.exp
-2fb5bb8eaf95b71a32aa247b62474663  gdb/testsuite/gdb.mi/dw2-ref-missing-frame-main.c
-0f2ff34ab8eb9f5f11af4b896feaf951  gdb/testsuite/gdb.mi/mi-pending.exp
-fe81ba86bec2db4eb4da4d5cdc388109  gdb/testsuite/gdb.mi/mi-var-invalidate.exp
-2ead630a2d3788ac1e127686170ea15b  gdb/testsuite/gdb.mi/mi-var-create-rtti.exp
-1fee55c0ffabe16a4dba2e7fd3c6ddda  gdb/testsuite/gdb.mi/mi-exit-code.exp
-18f36a3143d2d9b566c40959d15e41d6  gdb/testsuite/gdb.mi/solib-main.c
-1757d1905ff406981e49f262db49217d  gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp
-c090d7900168995575ebe4e4b2ddc435  gdb/testsuite/gdb.mi/mi-regs.exp
-398d6c5af85075964c329e128f5b12bf  gdb/testsuite/gdb.mi/mi2-amd64-entry-value.c
-6d8fb903df8f2daf66fb4dcbf4e9fe7d  gdb/testsuite/gdb.mi/mi-file.exp
-5a3eb076acba95c3c643936a8ecdbb9f  gdb/testsuite/gdb.mi/mi-pthreads.exp
-da5953a7978399e56c8111dfd608233d  gdb/testsuite/gdb.mi/mi-var-cmd.exp
-6e186bddca054da34e571fa6643e57e6  gdb/testsuite/gdb.mi/mi-pendshr.c
-3f48ed71dec63e1692924c01e0ee56dd  gdb/testsuite/gdb.mi/mi-undefined-cmd.exp
+aa3460ae76ac5701e091b98eba22a9b6  gdb/testsuite/gdb.mi/mi-read-memory.exp
+f31455c852551eca5fa77a1433d430e4  gdb/testsuite/gdb.mi/pthreads.c
+f467a1ea928dd1712edadbcdad57148e  gdb/testsuite/gdb.mi/mi-threads-interrupt.exp
+569c68445afcc817d1574b1607c67597  gdb/testsuite/gdb.mi/non-stop.c
+0c22a203901f367568284ba5cfcc1300  gdb/testsuite/gdb.mi/mi-var-rtti.cc
+d43718b865743cb29fcc0c5981b822d7  gdb/testsuite/gdb.mi/mi-async.exp
+94071aeba7b6df8bfb13bf49f501c8c8  gdb/testsuite/gdb.mi/user-selected-context-sync.c
+91e672bef063231809afb3032d2c30f7  gdb/testsuite/gdb.mi/non-stop-exit.c
+6ee4f97cfdc9cee8d3979c8d0436a426  gdb/testsuite/gdb.mi/mi-start.c
+aeb386b22cf2102690c5a7632e4def5e  gdb/testsuite/gdb.mi/mi2-var-child.exp
+3ccae006381fbb801e7bc875482a7e5e  gdb/testsuite/gdb.mi/dw2-ref-missing-frame-main.c
+4d6507a911456fa0873eedbb850ea32b  gdb/testsuite/gdb.mi/mi-pending.exp
+268ad74c53b7703ed2943b3e852845a1  gdb/testsuite/gdb.mi/mi-var-invalidate.exp
+7220e069a5504b69dca3ec6619bf1b5d  gdb/testsuite/gdb.mi/mi-var-create-rtti.exp
+ab18d69051861124533f4dcce1e9d678  gdb/testsuite/gdb.mi/mi-exit-code.exp
+e452124b8859df34196fc42b4a0933f7  gdb/testsuite/gdb.mi/solib-main.c
+d189ab7493051a6c77bab64bf76fad74  gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp
+30878e2a17415ab464ee3c57323f47b6  gdb/testsuite/gdb.mi/mi-regs.exp
+0682f272130d73c7592a85318737bf93  gdb/testsuite/gdb.mi/mi2-amd64-entry-value.c
+26e11a236908c8d7f87c8cd9347f01db  gdb/testsuite/gdb.mi/mi-file.exp
+55c35e1a997a8d83c0b2a4ca6dd24e18  gdb/testsuite/gdb.mi/mi-pthreads.exp
+fd65a099448971f688ed2de419203697  gdb/testsuite/gdb.mi/mi-var-cmd.exp
+baebc20d212d57197409ab85a0551f99  gdb/testsuite/gdb.mi/mi-pendshr.c
+f9515017cb3e70f9a1f4eadca71ad2f1  gdb/testsuite/gdb.mi/mi-undefined-cmd.exp
 ea6919bf74d3a680ef08a09f43f87b44  gdb/testsuite/gdb.mi/mi-syn-frame.c
-a522f80b6ce8252358147516a52c4fd9  gdb/testsuite/gdb.mi/ns-stale-regcache.c
-d5de696674d1c55ce597891ba26da35e  gdb/testsuite/gdb.mi/mi-vla-fortran.exp
-8ad793ee9a1c510c435e3e6b685cda1a  gdb/testsuite/gdb.mi/gdb701.exp
-50410dd08dbb5b8484c0052a80d906ed  gdb/testsuite/gdb.mi/mi-watch.exp
-ef4893736366c4add0c58f3e85195f32  gdb/testsuite/gdb.mi/mi-eval.exp
-af30a566e64e9bb522644f26832e7465  gdb/testsuite/gdb.mi/mi-threads-interrupt.c
-af63186887dd48bec132c8afbd04b141  gdb/testsuite/gdb.mi/mi-logging.exp
+dbbc722d6fc879331f21930eac220996  gdb/testsuite/gdb.mi/ns-stale-regcache.c
+47bb3dcbc5130ce997defd7daa927b12  gdb/testsuite/gdb.mi/mi-vla-fortran.exp
+899639c85173e0ff29fc715c63c53a1c  gdb/testsuite/gdb.mi/gdb701.exp
+5d039a76e33108e4d559cd1f709822b1  gdb/testsuite/gdb.mi/mi-watch.exp
+f3f309f21fefbb81ef2489f1038b2f0f  gdb/testsuite/gdb.mi/mi-eval.exp
+320d038deb8fc922a43dc06b487fd373  gdb/testsuite/gdb.mi/mi-threads-interrupt.c
+c2cdffcb33c1dbb4a80ce8ec77a87041  gdb/testsuite/gdb.mi/mi-logging.exp
 a57794f9629bee4dc7f3868362e8d4ff  gdb/testsuite/gdb.mi/gdb792.cc
-fc3b6a1930fce9881d39bba569003740  gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp
-e2e87d36f37543348b0022b726d11359  gdb/testsuite/gdb.mi/user-selected-context-sync.exp
-ff3860fb532ebc6235f2714fbad41e33  gdb/testsuite/gdb.mi/mi-stepn.c
-36704f112d7a474591a0dfede23c8311  gdb/testsuite/gdb.mi/mi-catch-load-so.c
-d2ed1c4d4d7d98030eea457821e4418f  gdb/testsuite/gdb.mi/mi-var-block.exp
-9dff27e367e26976f5b54123310d0b8b  gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
-cad1d2a566930c3115b7c7c0e2e176b6  gdb/testsuite/gdb.mi/mi-reg-undefined.exp
-a381341481bf9f9349186a9e328745f0  gdb/testsuite/gdb.mi/solib-lib.c
-46388f7ff9d40dadb1a7be3ae62f497a  gdb/testsuite/gdb.mi/mi-catch-load.c
-496f5e4f9346f2bb19087e68a330fc80  gdb/testsuite/gdb.mi/mi-hack-cli.exp
-0e50c3df2f56a319cddd6362ab959ca7  gdb/testsuite/gdb.mi/mi-exit-code.c
-6be280fc1541338fadb7ae6016ff2411  gdb/testsuite/gdb.mi/mi-info-os.exp
-b9d1c450e75288f0df08361663131e51  gdb/testsuite/gdb.mi/mi-editing.exp
-f1bc30dd486f3116e4d8b1327f2b99f9  gdb/testsuite/gdb.mi/array.f
-96c24f136fd3bc40b807c9e0c8e971c0  gdb/testsuite/gdb.mi/mi-var-display.exp
-f8d778664a7efe4ca4067b84ae6caa47  gdb/testsuite/gdb.mi/mi-simplerun.exp
-cb6e531ce861d1e1cf641289db0f4dfb  gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.c
-03a66bebeeda927f518a131328c4d6e6  gdb/testsuite/gdb.mi/dw2-ref-missing-frame.S
-ee356df8012e87a409567bdfd4edf464  gdb/testsuite/gdb.python/py-cmd.exp
-5b2c856cf76a48971f56c44723cb7442  gdb/testsuite/gdb.python/py-events.c
-f9eadec2d1342daba4aa2659fc1c1bed  gdb/testsuite/gdb.python/source2.py
-b6adf8a1bc868b56b0bc5482a85648a6  gdb/testsuite/gdb.python/py-pp-integral.exp
-e9b38e366fad5433be4c10eda773789b  gdb/testsuite/gdb.python/py-frame-args.py
-ba2c31101e70569054ed2317ceb89fb2  gdb/testsuite/gdb.python/py-cmd.c
-a59b1d2deb6d8bef07f10fd8d6ca9939  gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in
+c0877d3985a9db4464a8fac9c0fa3a9a  gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp
+a6825cd34c61af5687a208335dc1ce74  gdb/testsuite/gdb.mi/user-selected-context-sync.exp
+839ff7f4ab85fac96d9b3d76a6219e9a  gdb/testsuite/gdb.mi/list-thread-groups-available.exp
+94d46caa22cb42641cc35a370a5c91b2  gdb/testsuite/gdb.mi/mi-stepn.c
+c617ee6f4dab9890e9703a82022a4a0b  gdb/testsuite/gdb.mi/mi-catch-load-so.c
+0a8a8c322477dfac2c3d5a86c3f89d3d  gdb/testsuite/gdb.mi/mi-var-block.exp
+8bfd8c6f1bb15e5320cea591dbcc2714  gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
+ceabb086440c6158f48f7a4157d70c32  gdb/testsuite/gdb.mi/mi-reg-undefined.exp
+ee4202ab262968c617c69192eb18af55  gdb/testsuite/gdb.mi/solib-lib.c
+4c582586c85697852a7c289eed4a802a  gdb/testsuite/gdb.mi/mi-catch-load.c
+9d26d5d4c708e6ecc67757dcd6a846cf  gdb/testsuite/gdb.mi/mi-hack-cli.exp
+ca648b910af4ddd6aaa5bab8f84a187f  gdb/testsuite/gdb.mi/mi-exit-code.c
+8c7dc0d03866555ca99e1f43cb60f52c  gdb/testsuite/gdb.mi/mi-info-os.exp
+f1fb485a5403bcea5faa4a899aac80fd  gdb/testsuite/gdb.mi/mi-editing.exp
+ad336c01737483e934b09e9e3c4e4f99  gdb/testsuite/gdb.mi/array.f
+70664b233cb9c16fb8322170ef7c9b20  gdb/testsuite/gdb.mi/mi-var-display.exp
+f83adbeadb5031ac14f17f75a436de18  gdb/testsuite/gdb.mi/mi-simplerun.exp
+fa3f625543ff399e8b2f6520a066f4d0  gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.c
+072c62e2a44fcdc8617cd990ad036c5f  gdb/testsuite/gdb.mi/dw2-ref-missing-frame.S
+befba378d762edd2a7c3edb8656ee434  gdb/testsuite/gdb.python/py-cmd.exp
+b4c5899656ec36538e4445fff45260bf  gdb/testsuite/gdb.python/py-rbreak-func2.c
+9f06c3bd46d7b475be0caa87e28cd3f1  gdb/testsuite/gdb.python/py-events.c
+a34e19ab126a26f24385e2537dc44c4d  gdb/testsuite/gdb.python/source2.py
+e2c7b6035e388d2eb837cc374e1afa3d  gdb/testsuite/gdb.python/py-pp-integral.exp
+e95e9e88034558363f4a70cf648898dc  gdb/testsuite/gdb.python/py-frame-args.py
+99c329323d75963a7a0600df6ddef76a  gdb/testsuite/gdb.python/py-cmd.c
+c3682ff346c2a6fc324bbf2c838ae825  gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in
 d33da31e9602c754cd11dcc3f1da1896  gdb/testsuite/gdb.python/py-infthread.c
-301b5f4095ef0f2895e4e56f5782f9c3  gdb/testsuite/gdb.python/py-explore.cc
-a4730d4ba18346fbc2dbb084039d295a  gdb/testsuite/gdb.python/py-xmethods.exp
-7c8ca98d17d453c5f56a1b7b98e8e7f9  gdb/testsuite/gdb.python/py-error.py
-0bcbef00fcd78ffa63710c5c05e7987c  gdb/testsuite/gdb.python/py-mi-objfile.exp
-151f56d3ab544626e8d242e4d865d37c  gdb/testsuite/gdb.python/py-finish-breakpoint.exp
-1cb7b75616f45770164d09d9e02c9ad9  gdb/testsuite/gdb.python/py-objfile-script.c
-aca4c6a4b65f4adf4a0895eba44769de  gdb/testsuite/gdb.python/py-progspace.exp
-3c3fb41f794e3f448ce1a04266fa2ffc  gdb/testsuite/gdb.python/lib-types.exp
-a1e455199ee431d441cbfd12b28ad5f4  gdb/testsuite/gdb.python/py-frame-inline.exp
-97668a89df737dd3993a24bd0b6478a6  gdb/testsuite/gdb.python/py-block.exp
-8ea7b85551ffbcabc5625c3b1b573b40  gdb/testsuite/gdb.python/py-completion.exp
-d6bdd8f91543f5c0f1d2a40bb8c7bfbc  gdb/testsuite/gdb.python/py-pp-maint.exp
-57291b87382e4796f32097804fefe9e2  gdb/testsuite/gdb.python/py-evthreads.c
-0c034e3adc43ea04df09d92b7b51c7af  gdb/testsuite/gdb.python/py-finish-breakpoint2.cc
-ff33df9d3c994a082c34f8793d386360  gdb/testsuite/gdb.python/py-typeprint.py
-96d19876ea361faedf4bbe17bbabfb5a  gdb/testsuite/gdb.python/py-evsignal.exp
-46b9ce44de3cc6b851bd1798e331b9bf  gdb/testsuite/gdb.python/py-bad-printers.exp
-c726d6539012639091d04eb7adba5ace  gdb/testsuite/gdb.python/py-bad-printers.py
-3ca3f837c1cd42f20425bfb529302908  gdb/testsuite/gdb.python/py-symbol.exp
-2a63a2ff595bbd1abb00f0b2d4770756  gdb/testsuite/gdb.python/py-shared.c
-39cd62deb2408cca099ca8bad4a149ef  gdb/testsuite/gdb.python/py-parameter.exp
-f64e1d45a71ac3655a99cef9a88f47a1  gdb/testsuite/gdb.python/py-sync-interp.c
-d4721face6fcfc4d6c78f80ef2c010c4  gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp
-1a1ca88e5acbf1e8ac0ee03962ecc74a  gdb/testsuite/gdb.python/py-recurse-unwind.c
-91b6fb264e8265c589353c89ae1a4660  gdb/testsuite/gdb.python/py-objfile.c
-4766424a0b73292c18bd28ef47ed3f0f  gdb/testsuite/gdb.python/py-unwind-maint.c
-b8d6b184f3d1f71e231ba0c38a947015  gdb/testsuite/gdb.python/py-frame.exp
-85187f18b337df6f10e9f06f549f5f4a  gdb/testsuite/gdb.python/py-framefilter.py
-249a400c162d393bc43089191e8abafa  gdb/testsuite/gdb.python/py-value-cc.exp
-7428cd6eb020996a3d3de0b76aa67067  gdb/testsuite/gdb.python/py-section-script.exp
-8bac30f327d5061f29cf7771006beec7  gdb/testsuite/gdb.python/py-pp-maint.c
-a1fdd3941c56f9aa6163e5f309faa6a8  gdb/testsuite/gdb.python/py-caller-is.c
-25a22468e7c4170ca98d50b84fc56de6  gdb/testsuite/gdb.python/py-objfile-script-gdb.py
-7646cd503c1ac70a6f56457bacd4fec4  gdb/testsuite/gdb.python/py-objfile.exp
-f6a0f525b8fee470022b5b526288e962  gdb/testsuite/gdb.python/py-frame-args.exp
-b6adf8a1bc868b56b0bc5482a85648a6  gdb/testsuite/gdb.python/py-pp-re-notag.exp
-4259a8a60e221dfd4d665716f9fb424e  gdb/testsuite/gdb.python/py-pp-re-notag.py
-ad728df3fd6cb97170f0d741bd551fb9  gdb/testsuite/gdb.python/py-breakpoint.exp
-c5eece5912091879cf297188a4f67860  gdb/testsuite/gdb.python/py-linetable.exp
-085cbc66b509b2eb45ef9127629f7a89  gdb/testsuite/gdb.python/py-bad-printers.c
+cffd7ce071e588d30bb26bf0c29f9a35  gdb/testsuite/gdb.python/py-explore.cc
+e931ca706fd44c4f5fd35a7f6802bbb4  gdb/testsuite/gdb.python/py-xmethods.exp
+15db912daa57587b3300d890c13c04c6  gdb/testsuite/gdb.python/py-error.py
+66979a74c3c06e3ea8dc2de126d746e6  gdb/testsuite/gdb.python/py-mi-objfile.exp
+3d57c425e99b8d1a97a352ed77db3703  gdb/testsuite/gdb.python/py-finish-breakpoint.exp
+dbb9fa07f93f23a9087a8ee5008ea421  gdb/testsuite/gdb.python/py-objfile-script.c
+b88dfdb894cdec4bf86aea7373c50ece  gdb/testsuite/gdb.python/py-progspace.exp
+0f2b7a1c241ca975bde779bac7efc962  gdb/testsuite/gdb.python/lib-types.exp
+68a4c581820f0317d7138b016b101a78  gdb/testsuite/gdb.python/py-frame-inline.exp
+3cc04ce4b781e92fc77f8e922ad29250  gdb/testsuite/gdb.python/py-block.exp
+e272b133c30f8368ae6279724128f972  gdb/testsuite/gdb.python/py-completion.exp
+bed08b0717a2515cb7e4d5cec2f3c899  gdb/testsuite/gdb.python/py-pp-maint.exp
+f90bf0602ab2215c89ed8efb18aece83  gdb/testsuite/gdb.python/py-evthreads.c
+ba7a34951af1853bea7429f90f6f1722  gdb/testsuite/gdb.python/py-finish-breakpoint2.cc
+7a06b839c1105bcd288cef19a7d20b1c  gdb/testsuite/gdb.python/py-typeprint.py
+dc879d53eb9d9935bd5647ea8d5b71cd  gdb/testsuite/gdb.python/py-evsignal.exp
+463ed344dd12639f043fd5663f1a039f  gdb/testsuite/gdb.python/py-bad-printers.exp
+e4c91e53cb722f6fbac153e573e2c63a  gdb/testsuite/gdb.python/py-bad-printers.py
+83ae9d63196d3473b1c74df577a29c3a  gdb/testsuite/gdb.python/py-symbol.exp
+c182777518933a284817ad06b45bd489  gdb/testsuite/gdb.python/py-shared.c
+c4470ba22122de90d0d73415b2a31e44  gdb/testsuite/gdb.python/py-parameter.exp
+37cea66234b91ea503126863df3e3c42  gdb/testsuite/gdb.python/py-sync-interp.c
+64191dd60ea87f77cca82036ae67f419  gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp
+da5803cf1c27cda73e6a4c6c89a71fc8  gdb/testsuite/gdb.python/py-recurse-unwind.c
+4b77b77294166f6cacc70f59bf2b34a9  gdb/testsuite/gdb.python/py-objfile.c
+570cbb920f92295fab4e42e8f8a5c368  gdb/testsuite/gdb.python/py-unwind-maint.c
+707c422ea8564efd49385683f05f1a38  gdb/testsuite/gdb.python/py-frame.exp
+c41c80ce4f34a6eb6c9254d0a7c1b0bb  gdb/testsuite/gdb.python/py-framefilter.py
+3da2788de14c01c0efc79b646abb7179  gdb/testsuite/gdb.python/py-value-cc.exp
+4bb1027a6978f442d74231ae1a73c86c  gdb/testsuite/gdb.python/py-section-script.exp
+baf6970a0a14f2c4afc34c30d59ae7a2  gdb/testsuite/gdb.python/py-pp-maint.c
+568ef99d841effbb61bb317aac6c07a0  gdb/testsuite/gdb.python/py-caller-is.c
+867e638f17d584292a48106426166788  gdb/testsuite/gdb.python/py-objfile-script-gdb.py
+ea9a13fbb993e01086f2d48433974457  gdb/testsuite/gdb.python/py-objfile.exp
+8660776814da525dfea2fb0ad8f27de6  gdb/testsuite/gdb.python/py-frame-args.exp
+e2c7b6035e388d2eb837cc374e1afa3d  gdb/testsuite/gdb.python/py-pp-re-notag.exp
+6a6f70b215f3956421a73e24b502316d  gdb/testsuite/gdb.python/py-pp-re-notag.py
+60588683668b693e1a235adfe285e425  gdb/testsuite/gdb.python/py-breakpoint.exp
+78b2790ff3de4468c161bf0de1398779  gdb/testsuite/gdb.python/py-linetable.exp
+ff9bd6b4fac5ebb6aa137fbba1cfc1ba  gdb/testsuite/gdb.python/py-bad-printers.c
 2201fe232be56f834518596b4f09f9ce  gdb/testsuite/gdb.python/py-frame.c
-2a02e7e6b063ad6f8e4dfb121710834d  gdb/testsuite/gdb.python/py-symtab.exp
-b10e001ac080957f8a6163bb8cc57561  gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S
-9dda0d499b65220e008dea5cb70b1b78  gdb/testsuite/gdb.python/py-xmethods.py
-446b00de73524a0f2ccdde99952d8692  gdb/testsuite/gdb.python/py-error.exp
-5e608a25043acc3cb94991858afa8141  gdb/testsuite/gdb.python/py-pp-registration.c
-3dd87383d5f808b24370b7e435770b64  gdb/testsuite/gdb.python/py-unwind.exp
-faf385bfccf221270d3f677b4e66dbe4  gdb/testsuite/gdb.python/py-record-full.c
-2fe98479f45db906120af1332adb7495  gdb/testsuite/gdb.python/py-strfns.exp
-fb257fad9d50430ad93a20e808e6b2ff  gdb/testsuite/gdb.python/py-xmethods.cc
-474b557f77467afef7d0a2696fd20821  gdb/testsuite/gdb.python/py-explore.c
-8935c171bb7cefa38496c2e7674b70ca  gdb/testsuite/gdb.python/py-explore.exp
-9d62bc8e06072184d601132e549b34ba  gdb/testsuite/gdb.python/py-value.c
-5807261be51cee9c99c15265e53b8b9a  gdb/testsuite/gdb.python/py-prettyprint.exp
-38e5f5583cca49500a68f89118ac8f9a  gdb/testsuite/gdb.python/py-unwind.c
-eb464dbe37d4fc19576c24cea992e99d  gdb/testsuite/gdb.python/py-type.c
-ca51c1ee5533f3f6e297b049e7d319d2  gdb/testsuite/gdb.python/py-shared.exp
-c2c0f040138defbf6a9116483772677c  gdb/testsuite/gdb.python/py-unwind-maint.exp
-debc47a2ffe78d5a6819693ca563169b  gdb/testsuite/gdb.python/py-pp-maint.py
-27bc03a974036e71e0225bf9d23f908c  gdb/testsuite/gdb.python/py-events.py
-9cf2a1b527cd8b48297d9ba42e731585  gdb/testsuite/gdb.python/py-frame-args.c
-14cb18a358df8f94f1285b3f8c64ee33  gdb/testsuite/gdb.python/py-mi-events-gdb.py
-048d9638f597bdbd365adff230738c75  gdb/testsuite/gdb.python/py-mi-objfile.c
-f624ffc3ba72c3129e5f9e45b8ee957c  gdb/testsuite/gdb.python/py-events-shlib.c
-42add2e3bf89d54039da944950fc6d9d  gdb/testsuite/gdb.python/py-prompt.exp
-33101b801faef6e6c348fe36b13cc321  gdb/testsuite/gdb.python/source1
-6e6f9e5f20a4b7ea5f8262a8709eb26d  gdb/testsuite/gdb.python/py-linetable.c
-1d2084a54d7a07d35f515eaea2159120  gdb/testsuite/gdb.python/py-finish-breakpoint2.py
-b36f5ba7c2f29f8bebfde30fe4314e8e  gdb/testsuite/gdb.python/py-lookup-type.exp
-f55bf97e0c8ac00b9b4a8297f8b4c391  gdb/testsuite/gdb.python/python.c
+35d7ea9aa535c44888bee6ad7e1771c8  gdb/testsuite/gdb.python/py-symtab.exp
+e46f645aac168d4c0c891cd6d348f0d2  gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S
+b4e7f6b455d4252fd8e97f948721f578  gdb/testsuite/gdb.python/py-xmethods.py
+593d09339bd25fa00c628e6fe8c6a8f9  gdb/testsuite/gdb.python/py-error.exp
+5e5bf6e8e81a2165b2adb17f7c643354  gdb/testsuite/gdb.python/py-pp-registration.c
+47fbef8b14a7d694e77d352b7d84ae38  gdb/testsuite/gdb.python/py-unwind.exp
+bbcad290856d48c8914c7fac01f8790a  gdb/testsuite/gdb.python/py-record-full.c
+7250262fcdd64c8a49d527b1a4621998  gdb/testsuite/gdb.python/py-strfns.exp
+c8a2face40062f069f943068c3279827  gdb/testsuite/gdb.python/py-xmethods.cc
+7730949336b3f838bb24bd09c6532b1c  gdb/testsuite/gdb.python/py-explore.c
+8bac4bf3df260f255bbcdd01cf58d6a3  gdb/testsuite/gdb.python/py-explore.exp
+5597b0efc2f365690821b7b5665da795  gdb/testsuite/gdb.python/py-value.c
+d9e107b034aaf2a04a1c3f3cd103deb9  gdb/testsuite/gdb.python/py-prettyprint.exp
+167ebf3f175a2b0442a6bc62e9562956  gdb/testsuite/gdb.python/py-unwind.c
+05e6adb95d1e51ffdfa295010d21f435  gdb/testsuite/gdb.python/py-type.c
+05e35dca3fd4bf82413e385f71a56949  gdb/testsuite/gdb.python/py-shared.exp
+967d2d025005f020b29b0461b8f94500  gdb/testsuite/gdb.python/py-unwind-maint.exp
+4b11ddd8a839e3ab347049fc8a3a0768  gdb/testsuite/gdb.python/py-pp-maint.py
+739433f25526e4c2e41d8f4e5857bd76  gdb/testsuite/gdb.python/py-events.py
+f6fbabd880ee195962a12ea5259d074b  gdb/testsuite/gdb.python/py-frame-args.c
+13a1aecb056628771036173b6fa22cb1  gdb/testsuite/gdb.python/py-mi-events-gdb.py
+42e8894b5498f19e6ee79a8d291da48c  gdb/testsuite/gdb.python/py-mi-objfile.c
+92d157182a8a540abb2182f7f9e8dc6c  gdb/testsuite/gdb.python/py-events-shlib.c
+97affa37b31892b8dd5e414a07cc5c48  gdb/testsuite/gdb.python/py-thrhandle.exp
+1d0baf94036da1da4ea05f9ec681ca55  gdb/testsuite/gdb.python/py-prompt.exp
+e91ecc554feb59430c78ca0878fab416  gdb/testsuite/gdb.python/py-rbreak.exp
+3353149012b85cddb764660c76e9632e  gdb/testsuite/gdb.python/source1
+1283c205e0d9e2a005af8b2ec9808083  gdb/testsuite/gdb.python/py-linetable.c
+b00ef158b54f4a358b0647aa74faf895  gdb/testsuite/gdb.python/py-finish-breakpoint2.py
+487c22b60d2bd1a2ad4a65d079b5e5ed  gdb/testsuite/gdb.python/py-lookup-type.exp
+4701a3f9c028ddfefec90a349743c49c  gdb/testsuite/gdb.python/python.c
 5f2a14106984ed919fa12f9d8cd9d4b8  gdb/testsuite/gdb.python/py-inferior.c
-3b3c6fe7481562b423268f3e229be051  gdb/testsuite/gdb.python/python-1.c
-3c3dd144c1c1015aaf143074e678e24b  gdb/testsuite/gdb.python/lib-types.cc
-24f0ed97435997b3a49a5812d647770f  gdb/testsuite/gdb.python/py-symbol.c
-196eb518e580a6af0ccfcc1aa9eaad78  gdb/testsuite/gdb.python/py-finish-breakpoint2.exp
-dd2358dceb2e0e77caa3b94212055737  gdb/testsuite/gdb.python/py-explore-cc.exp
-b04a45ccb133f3b69117df674aafd113  gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc
-562a909995e137c3bd5428dd5eb66916  gdb/testsuite/gdb.python/py-typeprint.cc
-fbcfe4581c06b0ee43e165b0e6f5075a  gdb/testsuite/gdb.python/py-block.c
-60c9429877605d550fdfdfb6a1334474  gdb/testsuite/gdb.python/py-value-cc.cc
-1fd42e4044994410e9a2519f8a3901e2  gdb/testsuite/gdb.python/py-prompt.c
-2f0c9f598c167f970e7ada2e6a143b4a  gdb/testsuite/gdb.python/py-framefilter.c
-d85db8205924dd65387cd6fa392019c6  gdb/testsuite/gdb.python/py-record-btrace-threads.c
-da486da2e42cbe79a8246f3431166e51  gdb/testsuite/gdb.python/py-breakpoint-create-fail.c
-cab989b7b83371cf3a32009bccfee74d  gdb/testsuite/gdb.python/py-events.exp
-e58fd892e37bf3ce09b9c52c7ac1dc0e  gdb/testsuite/gdb.python/py-recurse-unwind.py
-4e0f5887147d89d995be407aa6775d4b  gdb/testsuite/gdb.python/py-caller-is.exp
-58abcb0223de47d4c67dd72f511517f9  gdb/testsuite/gdb.python/py-unwind-maint.py
-def3a2d6ca82a0fdcf96213d8150bb6a  gdb/testsuite/gdb.python/py-frame-inline.c
-baea70cc1674cf0fa15e4a37474b1052  gdb/testsuite/gdb.python/py-linetable.S
-f9c81a23b15cae53b41450a4e96c2790  gdb/testsuite/gdb.python/py-record-btrace-threads.exp
-029d0178268eaaa04096700d80b58a04  gdb/testsuite/gdb.python/py-sync-interp.exp
-e80db23a5b1113092e53c3d9f1ff8757  gdb/testsuite/gdb.python/py-evthreads.exp
-4124ead3cdbcf4f6a679c6d2ef1bbc98  gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.exp
-faf385bfccf221270d3f677b4e66dbe4  gdb/testsuite/gdb.python/py-record-btrace.c
-993ba3cba454e52cedd606b17fa1ab06  gdb/testsuite/gdb.python/py-objfile-script.exp
-1793912cce579fc63fc884f3eb683a3c  gdb/testsuite/gdb.python/py-section-script.py
-5e36fdb455519667ea6c76b547c991a4  gdb/testsuite/gdb.python/py-lazy-string.exp
-fa33170c730a35c21f60815be856395f  gdb/testsuite/gdb.python/py-pp-re-notag.c
-a67f2ac5627214bddd5446c6b91cea3a  gdb/testsuite/gdb.python/py-pp-registration.exp
-e1a7a27e387c4a7f1d3eec93607b0071  gdb/testsuite/gdb.python/py-section-script.c
-4b5beaf4704231e34c59f2e345bbbc5a  gdb/testsuite/gdb.python/py-breakpoint.c
-5f9b2af70e87fd7e3abff5fdf5b7b558  gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp
-b68c1674cc9020de59952c463ea194d8  gdb/testsuite/gdb.python/py-recurse-unwind.exp
-e3dadf4d448f7b5a32e42cf25498f2ce  gdb/testsuite/gdb.python/py-pp-registration.py
-dcbe4f27f03ecfe3e7631abc08a877e2  gdb/testsuite/gdb.python/py-typeprint.exp
-f29240a185620682bc43652d2a3372e0  gdb/testsuite/gdb.python/py-record-btrace.exp
-80253817c39fce84dd87357cb48d6e4f  gdb/testsuite/gdb.python/py-framefilter-invalidarg.py
-eea4f50b1177b4fa1f3b2d1b656da3b1  gdb/testsuite/gdb.python/py-lazy-string.c
-3b3c6fe7481562b423268f3e229be051  gdb/testsuite/gdb.python/py-shared-sl.c
-6a1030ba1ef773dbabbc003d18108383  gdb/testsuite/gdb.python/py-arch.exp
-2c716a26a09351c4fcefa2d63359a63f  gdb/testsuite/gdb.python/py-template.cc
-07da5f97c84eacb9014cc48df94f322c  gdb/testsuite/gdb.python/py-progspace.c
-6eec83b19f86bb756d8ecef20ba6bde4  gdb/testsuite/gdb.python/py-mi-events.c
-defaa8cdc1b871e6507abb70d823840b  gdb/testsuite/gdb.python/py-finish-breakpoint.py
-5c6334d8df2b6e9fd40fc8032f34b95d  gdb/testsuite/gdb.python/py-framefilter-mi.exp
-3abea220c8621ce677f9285da3515cde  gdb/testsuite/gdb.python/py-as-string.exp
-eb5901d3ff2591262a4ead1b2817ecbe  gdb/testsuite/gdb.python/py-mi-events.exp
-fdad1248de5ce38b550e1e18207af568  gdb/testsuite/gdb.python/py-arch.c
-677ebf6821edf48ccd1246342ebc5c1e  gdb/testsuite/gdb.python/py-unwind.py
-9aec981dc6356471488f84b705086f9c  gdb/testsuite/gdb.python/python.exp
-1933f7c7e9dea66f2ae7e242695928a0  gdb/testsuite/gdb.python/py-as-string.c
-8f4ca25b5b3c24f32afadb01c156dc9a  gdb/testsuite/gdb.python/py-framefilter-mi.c
-8fe24332399306c5d2ef196b5bc509b3  gdb/testsuite/gdb.python/py-mi-objfile-gdb.py
-4cfc9f3975e35ed25e717964fb676545  gdb/testsuite/gdb.python/py-framefilter.exp
-6200d7d6fc4cc55da7ddff500f131de3  gdb/testsuite/gdb.python/py-inferior.exp
-b809b7fbbfe132e229af685062863f1e  gdb/testsuite/gdb.python/py-strfns.c
-a4f51ca70d20394a51c63db0c7e8696b  gdb/testsuite/gdb.python/py-template.exp
-3a755fac2b26deeed8a5caed3132acfe  gdb/testsuite/gdb.python/py-prettyprint.c
-7b252290c979ae1ce9be5b1779829b84  gdb/testsuite/gdb.python/py-pp-integral.py
-3804ec0c5c43151e86f886c83ee1a89a  gdb/testsuite/gdb.python/py-completion.py
-fa33170c730a35c21f60815be856395f  gdb/testsuite/gdb.python/py-pp-integral.c
-1f5207ef47a774a4f856f6b554c5b1cf  gdb/testsuite/gdb.python/py-framefilter-gdb.py.in
-3752bb406358104c6b4fb7351bfbb23b  gdb/testsuite/gdb.python/py-breakpoint-create-fail.py
-6b5b405352ff21acd18963c2b977f689  gdb/testsuite/gdb.python/py-mi.exp
-31bc21f84d32cfb5c769dbfe3c2702c0  gdb/testsuite/gdb.python/py-function.exp
-af78e5c970cb00b047f0c3f54200c646  gdb/testsuite/gdb.python/py-finish-breakpoint.c
-47bb72de468cc5174642a37659ee23fa  gdb/testsuite/gdb.python/py-infthread.exp
-af7c43a3ac1704dca4fb21f3ea8f7943  gdb/testsuite/gdb.python/py-type.exp
-ebb4b80195a64876bc1bf59fbf83acce  gdb/testsuite/gdb.python/py-value.exp
-a59d825d5f8f4069ceab67cda081c02a  gdb/testsuite/gdb.python/py-prettyprint.py
-e5a3e9da5298979c45be718af4103739  gdb/testsuite/gdb.python/py-record-full.exp
-6c0baa34eb7d92c786b24fed4e2c9791  gdb/testsuite/gdb.server/server-kill.exp
+149b18f26a74ee52f5617aa21113dca1  gdb/testsuite/gdb.python/python-1.c
+ea0d0ed7f325c91a898d9913b1d9e850  gdb/testsuite/gdb.python/lib-types.cc
+342f28cb786d9d95abe38cf88336a7d9  gdb/testsuite/gdb.python/py-symbol.c
+ea5808f1d431d8648ca2f0aedd8271d5  gdb/testsuite/gdb.python/py-finish-breakpoint2.exp
+09d511eedd7115a66f37d139991a97dd  gdb/testsuite/gdb.python/py-explore-cc.exp
+e9f6dee1d762e5e05ae26cca60948c38  gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc
+ff2556f225a53ea1064f2f6b0813d5e1  gdb/testsuite/gdb.python/py-typeprint.cc
+91b817c72a2d57d80b6d2a30fcea5931  gdb/testsuite/gdb.python/py-block.c
+57c4ad0aa87c5da74ac54ab1a5ab3c42  gdb/testsuite/gdb.python/py-value-cc.cc
+fae95b6039bf715dd93efc5a46fc154c  gdb/testsuite/gdb.python/py-prompt.c
+6a5989644c552c1b164efb679108371e  gdb/testsuite/gdb.python/py-framefilter.c
+a413267e2b9c1d51820eec39a950ea3c  gdb/testsuite/gdb.python/py-record-btrace-threads.c
+480760211ce20612108ccf9e6d49b038  gdb/testsuite/gdb.python/py-breakpoint-create-fail.c
+68769f3e037b9c612d7e556d10d9a551  gdb/testsuite/gdb.python/py-events.exp
+b7c45f99462d25c4e4351d9d241d7195  gdb/testsuite/gdb.python/py-recurse-unwind.py
+8167955ca6eef69b941aef4bf9099abc  gdb/testsuite/gdb.python/py-caller-is.exp
+23962af440bfe39427b5835a28a32ca8  gdb/testsuite/gdb.python/py-unwind-maint.py
+acd778212788a6ecc3e55a068fd92e00  gdb/testsuite/gdb.python/py-frame-inline.c
+8fd3c7f48c8d4e906dca2b57b3da7b2e  gdb/testsuite/gdb.python/py-linetable.S
+77d9290094a75cea82e6926b4cdf0436  gdb/testsuite/gdb.python/py-record-btrace-threads.exp
+1cde5bf89911733678d456822db26878  gdb/testsuite/gdb.python/py-thrhandle.c
+fec7158ace10b1e228d7eba2142394a6  gdb/testsuite/gdb.python/py-sync-interp.exp
+daa7a5ef57fe30525bda9d49b77003d4  gdb/testsuite/gdb.python/py-evthreads.exp
+9ae45d6bdb9480738076befa4abe4c95  gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.exp
+bbcad290856d48c8914c7fac01f8790a  gdb/testsuite/gdb.python/py-record-btrace.c
+c7ea9caaf686164092b9b147d269bd28  gdb/testsuite/gdb.python/py-objfile-script.exp
+60e44a0ee3576741ca6dad9cced84180  gdb/testsuite/gdb.python/py-section-script.py
+0b06f791332773634c2c7e4f1d61c367  gdb/testsuite/gdb.python/py-lazy-string.exp
+36e60154e06fbb428a03e8cd795fc7c4  gdb/testsuite/gdb.python/py-pp-re-notag.c
+6c6f6437780d86e9bc8a9746104b1684  gdb/testsuite/gdb.python/py-pp-registration.exp
+daf1269f629c3d1c4f5f4f37fd0e633e  gdb/testsuite/gdb.python/py-section-script.c
+000026cd587a79b6c63f457118dbbf21  gdb/testsuite/gdb.python/py-breakpoint.c
+79866a0c1db1a84535b13672fdeffabc  gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp
+5648839eb21d19fd6446232d077d2e30  gdb/testsuite/gdb.python/py-recurse-unwind.exp
+18e0d1608d72c17c16716edc376e0660  gdb/testsuite/gdb.python/py-pp-registration.py
+1a8ae64f1da96da5ede60c3229c2a82b  gdb/testsuite/gdb.python/py-typeprint.exp
+6fb641ecbf014307392e86902f121e29  gdb/testsuite/gdb.python/py-record-btrace.exp
+31573f2d894aac36ef3cc551595638eb  gdb/testsuite/gdb.python/py-framefilter-invalidarg.py
+a4b54a8d772cdcc6aa3bac8c36bbcbd7  gdb/testsuite/gdb.python/py-lazy-string.c
+149b18f26a74ee52f5617aa21113dca1  gdb/testsuite/gdb.python/py-shared-sl.c
+8a2872cc135e46018b0cc2a65467e74f  gdb/testsuite/gdb.python/py-arch.exp
+b9a30b3814be01ad683b404c74c46e27  gdb/testsuite/gdb.python/py-template.cc
+88d14f7ff8675114feac4a877dfb1243  gdb/testsuite/gdb.python/py-progspace.c
+bdedcc28b1048e516de9ac81231db19a  gdb/testsuite/gdb.python/py-mi-events.c
+9eff1dfb2c9fb58578c6cfae0c6b0114  gdb/testsuite/gdb.python/py-finish-breakpoint.py
+b79464a6f8e9cb36c3fe44625fe0dba9  gdb/testsuite/gdb.python/py-framefilter-mi.exp
+25322c9cb0cd8f89bd5ce717e2958732  gdb/testsuite/gdb.python/py-as-string.exp
+2f9a93a99014bafedb5a7d09fc9db6f7  gdb/testsuite/gdb.python/py-mi-events.exp
+b2a229ba3275ed2ebd192f2d9fe66142  gdb/testsuite/gdb.python/py-arch.c
+34fba70e99a3f12a430b98a3dfd61c3c  gdb/testsuite/gdb.python/py-unwind.py
+cef43a46aafe8b46fc43304795d339cd  gdb/testsuite/gdb.python/python.exp
+092b721433c9ba5d8e0cc4412510583b  gdb/testsuite/gdb.python/py-as-string.c
+04321243006911c16d21e42b476d67c5  gdb/testsuite/gdb.python/py-framefilter-mi.c
+bab5f7629a7af07b9caf10b8f613b622  gdb/testsuite/gdb.python/py-mi-objfile-gdb.py
+470a14fce43481813fc61def07a3d184  gdb/testsuite/gdb.python/py-framefilter.exp
+89812a7dd920d3d11b9ce5a7059fd12f  gdb/testsuite/gdb.python/py-inferior.exp
+274d37f2fb7d584dbc8db4369a29bc1f  gdb/testsuite/gdb.python/py-strfns.c
+d01addc9be60cf5f5cc3911f9cb1c3dc  gdb/testsuite/gdb.python/py-template.exp
+9a9b5c0a4dd7f22ad257e13ce069acd3  gdb/testsuite/gdb.python/py-prettyprint.c
+909e0b486ef35a95a021350cf4a33ffc  gdb/testsuite/gdb.python/py-pp-integral.py
+6c5cbecd71fb1ed42945737ab66f3b86  gdb/testsuite/gdb.python/py-completion.py
+36e60154e06fbb428a03e8cd795fc7c4  gdb/testsuite/gdb.python/py-pp-integral.c
+5e9582e1d9be662755a97b4c4e218933  gdb/testsuite/gdb.python/py-framefilter-gdb.py.in
+406eeb293a4090dfd848a596ba14b6b6  gdb/testsuite/gdb.python/py-breakpoint-create-fail.py
+8bda41ae54283c4521cb788ae8d4bf0d  gdb/testsuite/gdb.python/py-mi.exp
+e92d3a12cb4c2cca92fe9bc812368e97  gdb/testsuite/gdb.python/py-function.exp
+8c9ba5bea2e81465bc9a71fc7e86f48a  gdb/testsuite/gdb.python/py-finish-breakpoint.c
+eac8839daf2183bb174b45931667392b  gdb/testsuite/gdb.python/py-infthread.exp
+819a97244abd3d9c4c107121c758925d  gdb/testsuite/gdb.python/py-type.exp
+df7de8c90a3946de3d8173f24e83d067  gdb/testsuite/gdb.python/py-value.exp
+816e04420eef9c15abb9a5b64388a60d  gdb/testsuite/gdb.python/py-prettyprint.py
+b08c3606b4c4a6d8c4cebe2ed21ee97b  gdb/testsuite/gdb.python/py-record-full.exp
+17ab441f246e3b4f1bb21670ee5ca4a6  gdb/testsuite/gdb.python/py-rbreak.c
+111798590ba488b22ad4ebcf5f7f6599  gdb/testsuite/gdb.server/server-kill.exp
 b83c8391da68f1e641f679bf1eed5690  gdb/testsuite/gdb.server/transfer.txt
-c742b8808383260f3e9e1b2d23dc415b  gdb/testsuite/gdb.server/file-transfer.exp
-67817f0250dc5cca8fd89634bd0bb9ae  gdb/testsuite/gdb.server/solib-list-main.c
-820c84dedf44469436228cc6686af28c  gdb/testsuite/gdb.server/wrapper.c
-5174ab0e2710984fcd2a62f70043a723  gdb/testsuite/gdb.server/server-run.exp
-5770e18d18a64ad0bc3fa963b3f5927f  gdb/testsuite/gdb.server/no-thread-db.c
-29ce5a1ef47a3f1e150de213c407b88a  gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp
-d13d31f3f89adc20e09595a71638435d  gdb/testsuite/gdb.server/ext-attach.exp
-5728c472be0341f56ca2f8d777815781  gdb/testsuite/gdb.server/ext-restart.exp
-3687c9bd816b5125bf5505119b2d7f56  gdb/testsuite/gdb.server/solib-list-lib.c
-57ee5a42493859d489b63f642af63e7b  gdb/testsuite/gdb.server/connect-without-multi-process.exp
-dc06c85493d55a3c0966fb1d42af04d3  gdb/testsuite/gdb.server/connect-stopped-target.exp
-df641ac0c079682665a655ebc2dcb690  gdb/testsuite/gdb.server/no-thread-db.exp
-0b933c9ab876d2652b5311b64b6437f5  gdb/testsuite/gdb.server/ext-wrapper.exp
-6daeb1261aef6e2d5ccee9769dfdce69  gdb/testsuite/gdb.server/non-existing-program.exp
-1fd42e4044994410e9a2519f8a3901e2  gdb/testsuite/gdb.server/ext-attach.c
-62ab4e5fa70409193a5491b992681608  gdb/testsuite/gdb.server/ext-run.exp
-8ce662925b100f926ee4711d9231ad39  gdb/testsuite/gdb.server/server.c
-49841dc4b77151d4d0bc56e8dd1bcf8f  gdb/testsuite/gdb.server/solib-list.exp
-d13e0d9d30f80328125fd16030cd1cd3  gdb/testsuite/gdb.server/server-exec-info.exp
-f567b169c2a9a2a1c619c527305cd345  gdb/testsuite/gdb.server/server-kill.c
-2fbd8575734ee1051e3713753dbd75f1  gdb/testsuite/gdb.server/connect-with-no-symbol-file.c
-339e831530f9c57185fb4096c15d9b25  gdb/testsuite/gdb.server/server-mon.exp
-938374c110d257755996f24275405215  gdb/testsuite/gdb.server/wrapper.exp
-66f0b911b486e13605ffc5fdbc7d8eac  gdb/testsuite/gdb.server/connect-without-multi-process.c
-66f0b911b486e13605ffc5fdbc7d8eac  gdb/testsuite/gdb.server/connect-stopped-target.c
+22dc50ba02820f0db119da38d8c06793  gdb/testsuite/gdb.server/file-transfer.exp
+8fbb2de5f28e527c1ff627ce35184dff  gdb/testsuite/gdb.server/solib-list-main.c
+2d819443e4c298e7d59488dbc5e4957d  gdb/testsuite/gdb.server/wrapper.c
+4b9536257e547be7f90ff55e90f53ad5  gdb/testsuite/gdb.server/run-without-local-binary.exp
+df3db0925b629e72c1e0741e81315192  gdb/testsuite/gdb.server/server-run.exp
+f35a005d06b4b41305e7bce4f71ee75d  gdb/testsuite/gdb.server/reconnect-ctrl-c.c
+ef1e174a4d22e5cf6cca93991af99845  gdb/testsuite/gdb.server/no-thread-db.c
+46b6bcbfeb1e9bc851538d314b281105  gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp
+1036f141d9130fa93d40fabc46139353  gdb/testsuite/gdb.server/ext-attach.exp
+b98783fce85331c1ca3208822fd6c90d  gdb/testsuite/gdb.server/ext-restart.exp
+fc16572ac3b34605333ade0ddd513eaa  gdb/testsuite/gdb.server/solib-list-lib.c
+21d99de7915d22acbad8f65a855b9d5d  gdb/testsuite/gdb.server/connect-without-multi-process.exp
+96008fc9ad5eb556a14f1e9307a37ac2  gdb/testsuite/gdb.server/connect-stopped-target.exp
+75a7981bca10f0be123217245ce276cb  gdb/testsuite/gdb.server/no-thread-db.exp
+45c269052e8623c4416bcc5405a8446e  gdb/testsuite/gdb.server/ext-wrapper.exp
+538de4c95ee18ed0406d760256a3555c  gdb/testsuite/gdb.server/non-existing-program.exp
+fae95b6039bf715dd93efc5a46fc154c  gdb/testsuite/gdb.server/ext-attach.c
+7db56731911c568fd66e04bcfa3a4e56  gdb/testsuite/gdb.server/ext-run.exp
+c239fff604641c075ffcf4b32838a9ad  gdb/testsuite/gdb.server/normal.c
+c6b8258b531ddeb3300f82ad4355f0a9  gdb/testsuite/gdb.server/server.c
+87fff1b4c33279fcc80a57aa325bb4c0  gdb/testsuite/gdb.server/solib-list.exp
+3817f11d6fd1960669fc65a1c724db2d  gdb/testsuite/gdb.server/server-exec-info.exp
+221c1458bd40b0afcfa3718a4ce72afc  gdb/testsuite/gdb.server/server-kill.c
+0a95cb84b5136f20666dde88d9b24462  gdb/testsuite/gdb.server/connect-with-no-symbol-file.c
+700eac3960f491e9b513d719f87be703  gdb/testsuite/gdb.server/server-mon.exp
+495b4f4525ca130cfdc251c488978b46  gdb/testsuite/gdb.server/wrapper.exp
+cfbadfda4c085ee6de76f93210fb2c5a  gdb/testsuite/gdb.server/reconnect-ctrl-c.exp
+d69aec5a0086e04ccdef3d35b06d1be6  gdb/testsuite/gdb.server/connect-without-multi-process.c
+34a4bf40d1af36d62bab8945353256db  gdb/testsuite/gdb.server/unittest.exp
+d69aec5a0086e04ccdef3d35b06d1be6  gdb/testsuite/gdb.server/connect-stopped-target.c
 9127093957682c4085b241d725cf4e15  gdb/testsuite/.gitignore
-a254c4e4acd1184a61b7ece10d8b3ec7  gdb/testsuite/gdb.base/inferior-died.exp
-5a009fecad35b33f33ceb753c2f475f1  gdb/testsuite/gdb.base/solib-disc.c
-400dfc67f60aaec4f2d1257e38fc412a  gdb/testsuite/gdb.base/longest-types.c
-a5c0df9b4f4a9e7af405d87c98f56db5  gdb/testsuite/gdb.base/solib-display.exp
-e9e4da42c40d4492bea155323c5a562a  gdb/testsuite/gdb.base/hbreak-unmapped.c
-e92ecc80198b87cbfa7c72a1b9df4bef  gdb/testsuite/gdb.base/continue-all-already-running.exp
-6c2787abe98b99d8397c2e06021a1c38  gdb/testsuite/gdb.base/ifelse.exp
+ee6f62a428defd82cdcc4e68932ed7d9  gdb/testsuite/gdb.base/inferior-died.exp
+a6bdd5fc4fc3a315e4e1bf34958c4df5  gdb/testsuite/gdb.base/solib-disc.c
+ae51c2f0577c837bad28d753730a26f8  gdb/testsuite/gdb.base/longest-types.c
+d94cad3fbf51f408c9d7737f8c18d76b  gdb/testsuite/gdb.base/solib-display.exp
+428aafa668d9dfd1f0a9352d112c4a53  gdb/testsuite/gdb.base/hbreak-unmapped.c
+bdbac0bf83616fadaafde16411abecea  gdb/testsuite/gdb.base/continue-all-already-running.exp
+72e24aba9c148eda4aa1fd5d900cc3eb  gdb/testsuite/gdb.base/ifelse.exp
 51c28755e9cd7289437025077044a922  gdb/testsuite/gdb.base/pr10179-b.c
-1ea8aef9640178884f2aa5b2ed13e75b  gdb/testsuite/gdb.base/vla-ptr.exp
-350b9b61c84b4f4ed2acbad9f19e9454  gdb/testsuite/gdb.base/store.exp
-c1d47024a74e380a6c0314f073245e3c  gdb/testsuite/gdb.base/float128.c
-337bd281711a0ee8495baca8180c43ad  gdb/testsuite/gdb.base/exe-lock.exp
-913b0b4cecd57460c155c9f3710160d6  gdb/testsuite/gdb.base/floatn.exp
-e72c24d3c0e2ca3f8bf9be3faed78340  gdb/testsuite/gdb.base/break1.c
-59013947286bbe0b6b98203d5af8caa8  gdb/testsuite/gdb.base/trace-commands.exp
-3cc25be6bd49f23caa9d66c1b6e8ab10  gdb/testsuite/gdb.base/realname-expand-real.c
-446555c96716aa922344094ffe4eb138  gdb/testsuite/gdb.base/range-stepping.c
-1dd0a9cfecbcb5b0819f180f8b3f9ecf  gdb/testsuite/gdb.base/catch-gdb-caused-signals.c
-fef677c842f59e8bf4cff18e06bc788c  gdb/testsuite/gdb.base/unloadshr2.c
-1e39d04c8795e6c1be1e909628e9c193  gdb/testsuite/gdb.base/default.exp
+5dcb2b052e6e5736cfaf0bd6e6da89a6  gdb/testsuite/gdb.base/vla-ptr.exp
+6b80bdf1c02bddd5258a757ab93c78a4  gdb/testsuite/gdb.base/server-del-break.c
+66a97cb30b166007ccb8529f966ba546  gdb/testsuite/gdb.base/store.exp
+9f349d1663b1951e496b6c2ca8d3ec28  gdb/testsuite/gdb.base/float128.c
+8c74db840a38ba37cad223957dd64cd9  gdb/testsuite/gdb.base/exe-lock.exp
+2904135f09276aec391828402b56aec9  gdb/testsuite/gdb.base/floatn.exp
+ca535ea8fdd437c6c199bf558c780b29  gdb/testsuite/gdb.base/break1.c
+14748d8b618d55a38af006f3d6cd0572  gdb/testsuite/gdb.base/trace-commands.exp
+793cd276899fc9cc82c413b9433bc540  gdb/testsuite/gdb.base/realname-expand-real.c
+24043997c822c16a1058c97dff838865  gdb/testsuite/gdb.base/range-stepping.c
+dc9e6c43ef7c3dea1025ad09fa90e993  gdb/testsuite/gdb.base/catch-gdb-caused-signals.c
+fe8747fb3ba9562977957c36b3406621  gdb/testsuite/gdb.base/unloadshr2.c
+4d16fd4729b32b98ba29c940f63270ac  gdb/testsuite/gdb.base/default.exp
+a197a5168166e99ca4cca1b9c767ffd8  gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
 5c59f840fd501691072c20cb47bab686  gdb/testsuite/gdb.base/mips_pro.c
-d1fccc0a36ca9feba685c7142553638d  gdb/testsuite/gdb.base/so-disc-shr.c
-729de31450b9b7e832379c13644c81c0  gdb/testsuite/gdb.base/sigbpt.exp
+e050c6598e440c8ed21e735a6fa1d81f  gdb/testsuite/gdb.base/so-disc-shr.c
+9c2138795e23e7ad0284302d5cda6cd5  gdb/testsuite/gdb.base/sigbpt.exp
 3510a5962c44ec9aeffdf4accdf9a4cb  gdb/testsuite/gdb.base/int-type.c
-f1e3feee8c532e8f1074dd839fea5ceb  gdb/testsuite/gdb.base/sigchld.exp
-7f93e561dbeeb9ef738f0c93f08c7471  gdb/testsuite/gdb.base/gdb1555.c
-d5352c65c5a49d636c61dcc0302913fd  gdb/testsuite/gdb.base/call-sc.exp
-442bc13c01fbae05d2e045cf9b673af9  gdb/testsuite/gdb.base/gnu-ifunc.exp
+f442863cb5c7ac0f13afd82a9ad644f2  gdb/testsuite/gdb.base/sigchld.exp
+a42f249dc006b96cbaea652aafe5447f  gdb/testsuite/gdb.base/gdb1555.c
+cf5efed72254195bb527e46326f55145  gdb/testsuite/gdb.base/call-sc.exp
+0adb24660d3519ce2315c0f29f440f87  gdb/testsuite/gdb.base/gnu-ifunc.exp
 f356ff50643e59000ef3d9f24089698b  gdb/testsuite/gdb.base/psymtab2.c
-137ef779b3fe3996a91b23554ab79330  gdb/testsuite/gdb.base/hbreak2.exp
-fdf601058028cbb3df1fffbb65e3b21b  gdb/testsuite/gdb.base/ctxobj-v.c
-264a44f036b08e9c15180e784f064545  gdb/testsuite/gdb.base/type-opaque-main.c
-290b55640cb8e8e3854a1cb4cdd57adb  gdb/testsuite/gdb.base/annota-input-while-running.c
-b217b59f41fbcb5f49809da5db59b925  gdb/testsuite/gdb.base/paginate-execution-startup.exp
-b7d2cbedaf869f8eab85e948f3dd2588  gdb/testsuite/gdb.base/langs.exp
-7a57617c71d48f26a34758894d5d5ef3  gdb/testsuite/gdb.base/multi-forks.exp
-0cb9e5c3131e13f7dde7fb1f44b2211e  gdb/testsuite/gdb.base/offsets.exp
-8a54ba221dc84389d2f032555a7258cf  gdb/testsuite/gdb.base/siginfo.c
-95144929fe8261bc9247499ca0dcef61  gdb/testsuite/gdb.base/ptype.exp
-03718052e88d8fd42d2cc323d8b9daa5  gdb/testsuite/gdb.base/code_elim2.c
+a6d8db5660813406747018c43dd6037a  gdb/testsuite/gdb.base/hbreak2.exp
+8584c1774140fc816bfaba18d2cdcaa8  gdb/testsuite/gdb.base/ctxobj-v.c
+7111d6592c25b57cf4b84e9795230240  gdb/testsuite/gdb.base/type-opaque-main.c
+d426e820c95bbbd6d843e8e06eefc895  gdb/testsuite/gdb.base/annota-input-while-running.c
+3f9b1536d81aae4cb1f5880432b828f1  gdb/testsuite/gdb.base/paginate-execution-startup.exp
+49f1bbb47cdb6bd4ae402d81250fb94c  gdb/testsuite/gdb.base/langs.exp
+65b7d69105815d921eb6e69eb90f12bc  gdb/testsuite/gdb.base/multi-forks.exp
+9683e876cff5cec2d70b99435a8e72c8  gdb/testsuite/gdb.base/offsets.exp
+419aacbc3f3d1b531d6b6a25199ad7da  gdb/testsuite/gdb.base/siginfo.c
+f16bac855b9a54c780e62e8fa2aa08b4  gdb/testsuite/gdb.base/ptype.exp
+3a160ae31898b67330c76e5f052d99d4  gdb/testsuite/gdb.base/code_elim2.c
 78e5943d56b5a904e2e29e51749312ed  gdb/testsuite/gdb.base/lineinc.c
-c33ceece87926633550b5845adde3c2d  gdb/testsuite/gdb.base/commands.exp
-193637366a915024d91b82df2956d40c  gdb/testsuite/gdb.base/bfp-test.exp
-ec3a7837ae79a88a88c5e7c8400d7366  gdb/testsuite/gdb.base/solib-search.c
-d8d1428366b63f6de6270059ce06c0fa  gdb/testsuite/gdb.base/label.exp
-bd26912867d013f7e6c503b2224ba9a6  gdb/testsuite/gdb.base/dprintf-detach.c
-81a92a235cb4b4fd4483cd41218360c5  gdb/testsuite/gdb.base/break-main-file-remove-fail.exp
-24751d9aa427aa75c0532e95e07ed6f2  gdb/testsuite/gdb.base/catch-fork-static.exp
-61b0a11a8c948bde7a230ccfbde43471  gdb/testsuite/gdb.base/filesym.c
-99766f722dfac101340e727d0ee3f1d9  gdb/testsuite/gdb.base/vla-sideeffect.exp
-8413196d327abfd57c8fd35dee43db5f  gdb/testsuite/gdb.base/watch_thread_num.c
-1d44e45acc27042d7bb26cb7083cad74  gdb/testsuite/gdb.base/hbreak.c
-80c6dea2f4e5bdfc78066527981baebf  gdb/testsuite/gdb.base/callfuncs.c
-3c6a5ac7282811d1c58772aac2d282f6  gdb/testsuite/gdb.base/consecutive-step-over.exp
-52222a4d24c21e0dd7ae6ea6811c9b8e  gdb/testsuite/gdb.base/bg-execution-repeat.c
-415f865475728ba41c19e310d3ecd57d  gdb/testsuite/gdb.base/condbreak-call-false.c
-a13f072f0a881b69e39291e8876977d5  gdb/testsuite/gdb.base/break-caller-line.exp
-960d3ca62b7cb5ad7cd88bb074986042  gdb/testsuite/gdb.base/dfp-exprs.exp
+98cf09ed58979992d8c22c548b0375bc  gdb/testsuite/gdb.base/commands.exp
+269d7c097ad6d870804169818a12ab88  gdb/testsuite/gdb.base/bfp-test.exp
+c8ccdc0bf6c8f55bb342453b5d0848b0  gdb/testsuite/gdb.base/solib-search.c
+40f322e463ff6c7bb13ec4dbed59c1c2  gdb/testsuite/gdb.base/label.exp
+b1b3248b9c8394885f2919d2f03985b4  gdb/testsuite/gdb.base/dprintf-detach.c
+90659a2dd02f83a4244d00122ea64938  gdb/testsuite/gdb.base/break-main-file-remove-fail.exp
+79bc718981eacbe0b0358051659c35b5  gdb/testsuite/gdb.base/catch-fork-static.exp
+a29551366e65cb428c1e5be4789b57fd  gdb/testsuite/gdb.base/filesym.c
+4fdf6098163ed4ca9f4a647c0da58493  gdb/testsuite/gdb.base/vla-sideeffect.exp
+f50f71f0672579413f3ec6b01ff1105c  gdb/testsuite/gdb.base/watch_thread_num.c
+9462e1b4188cde8a2f8d224d847e0c5c  gdb/testsuite/gdb.base/hbreak.c
+ce114321806ebd02ef4ee62fd1240b7f  gdb/testsuite/gdb.base/callfuncs.c
+2274e8bb79578bb198d8dcca4d292e7c  gdb/testsuite/gdb.base/consecutive-step-over.exp
+dd77696827b7ff807cae6f2d264e2f92  gdb/testsuite/gdb.base/bg-execution-repeat.c
+23f6228d8157d5c95f23b5475c3a3245  gdb/testsuite/gdb.base/condbreak-call-false.c
+13b609261a363cbf72042ed9a98ed6a0  gdb/testsuite/gdb.base/break-caller-line.exp
+3fd8d157ac0f54cc9b3394663fbe0360  gdb/testsuite/gdb.base/dfp-exprs.exp
 dfaa3efaa2e465349675b75c85bd7a4d  gdb/testsuite/gdb.base/shmain.c
-b477ee706c38eede92ad7125ea7af45c  gdb/testsuite/gdb.base/dmsym.exp
-57536a337427225f3d92c8f84630b86c  gdb/testsuite/gdb.base/inferior-died.c
-6162114343d7090fca43f288ae954655  gdb/testsuite/gdb.base/info-proc.exp
+0ccf5b14d2eb67e90084f611b5e4e03a  gdb/testsuite/gdb.base/dmsym.exp
+a41e96acb6ee5085446de137e373681c  gdb/testsuite/gdb.base/inferior-died.c
+1ed80e4f14068f58435c04331075bb7c  gdb/testsuite/gdb.base/info-proc.exp
 7917f3d1ef819aadd582ec98629d7563  gdb/testsuite/gdb.base/debug-expr.c
-8f8132bf3be4b940f2fd778c48dd78f5  gdb/testsuite/gdb.base/paginate-inferior-exit.c
+dbe16cde5e4fa2dbf419099683e389a7  gdb/testsuite/gdb.base/paginate-inferior-exit.c
 fadb717d72b9f5ce2c8efd09ea299b3e  gdb/testsuite/gdb.base/skip-solib-main.c
-a3c93e7d870db84adfe125f02a398524  gdb/testsuite/gdb.base/watch-cond-infcall.c
-231ef4bcbb957c4083244ce767f7090d  gdb/testsuite/gdb.base/gdb1090.c
-b5af4b26aaa7ddb855f60c1cfa3d505c  gdb/testsuite/gdb.base/consecutive-step-over.c
-15b0c4fce08309b33685fad014ae3fe1  gdb/testsuite/gdb.base/randomize.c
-bdf27194c7b4787a50200ec3bf25b13f  gdb/testsuite/gdb.base/savedregs.c
-54dea1595d71b3065c21c3dfc7a4ca19  gdb/testsuite/gdb.base/step-break.exp
-7450552c029c5f23d7ea71bba98f2cb2  gdb/testsuite/gdb.base/offsets.c
+770c30637be412da60514dc2bdf866b2  gdb/testsuite/gdb.base/watch-cond-infcall.c
+397c1b9e9a404ac02ca3020e8a3f5bc9  gdb/testsuite/gdb.base/gdb1090.c
+1103e421005514cf458ccd3186de2338  gdb/testsuite/gdb.base/consecutive-step-over.c
+e8ace2049bca6a151c81c982a2541bd6  gdb/testsuite/gdb.base/randomize.c
+cd617587e6c032e2f3af9a1fc8852dca  gdb/testsuite/gdb.base/savedregs.c
+bcccf526415fa7493ef63d0e0679a4bf  gdb/testsuite/gdb.base/step-break.exp
+e0b026c4481cf181892461f2afd9f4ee  gdb/testsuite/gdb.base/offsets.c
 af6f9e427bb3d09aa6033ec64aec8775  gdb/testsuite/gdb.base/jit-dlmain.c
-85bbc075c0427a9a556eacdf4b31f21c  gdb/testsuite/gdb.base/longest-types.exp
-e97f47dd611ec11b24dda89e894f3edf  gdb/testsuite/gdb.base/infnan.exp
-3aac9ce9fa21eff8edbe13460b400b8a  gdb/testsuite/gdb.base/relational.exp
-c33fc5baaf1b6d0e2a4832cc3864efd3  gdb/testsuite/gdb.base/random-signal.exp
-b05eb216f49286c72e98e4ab784a39a4  gdb/testsuite/gdb.base/sepdebug2.c
-57d7f53de398f2979cadb76e748f516a  gdb/testsuite/gdb.base/wrong_frame_bt_full.exp
+795a5d4d2ffc93caf09f5f6c0b0f5611  gdb/testsuite/gdb.base/longest-types.exp
+949d0ec0ce3feec75f191bd184c12693  gdb/testsuite/gdb.base/infnan.exp
+2ea119dea6b7915de5e2942e96db927d  gdb/testsuite/gdb.base/relational.exp
+26bdfe7d84293d3b020d89974107414f  gdb/testsuite/gdb.base/random-signal.exp
+4384323c35a42c2c7af74809b94ff1c9  gdb/testsuite/gdb.base/sepdebug2.c
+0f1b8fd72f692e8a603c66163877fe33  gdb/testsuite/gdb.base/wrong_frame_bt_full.exp
 3764973c71d5aa701031b4e66fd276d3  gdb/testsuite/gdb.base/shreloc.c
-f25011edf4d16a0da99b2094f733739f  gdb/testsuite/gdb.base/solib-weak.exp
-d4138203cad26b17ddf6d773dbf2d927  gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c
+df694aa9bac76d9decd59fd17ee641f3  gdb/testsuite/gdb.base/solib-weak.exp
+ee510b56bcba7db085c1fa3a56f5cb91  gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c
 83b4147d5cfab4b94796513c48e2ce03  gdb/testsuite/gdb.base/watchpoint.c
-464acb3a24d615a9ba63598d3b41125d  gdb/testsuite/gdb.base/all-architectures-0.exp
-74524d41b62a857016df5e0d5161615e  gdb/testsuite/gdb.base/max-value-size.exp
-bcf7259ac7935414b50a23786f46080c  gdb/testsuite/gdb.base/attach-wait-input.exp
-031a496433f31e2502fcc77131049e61  gdb/testsuite/gdb.base/gnu-debugdata.exp
-98ec5b9caa7f95f437a84e2b965dcaff  gdb/testsuite/gdb.base/cond-eval-mode.c
-62340ad311210084c04fbae7da02c8e1  gdb/testsuite/gdb.base/catch-fork-kill.exp
+35537c316760c5f93256640ba8b1dca5  gdb/testsuite/gdb.base/all-architectures-0.exp
+34d68065acea1338769a2e835da830c4  gdb/testsuite/gdb.base/max-value-size.exp
+9c1515948a667a9c3458c11aca886a55  gdb/testsuite/gdb.base/attach-wait-input.exp
+d930d95798ef32da89d7e877db5f8b00  gdb/testsuite/gdb.base/gnu-debugdata.exp
+a81453302d2f7eef365f40c4385d2287  gdb/testsuite/gdb.base/cond-eval-mode.c
+c8a21265f9320574987acb9a0dc40856  gdb/testsuite/gdb.base/catch-fork-kill.exp
 e711a6cfdf17afc08fbd300867145dd6  gdb/testsuite/gdb.base/so-impl-ld.c
-f244680c94d8419adf07b08e52c829c5  gdb/testsuite/gdb.base/recurse.exp
-5d283f38af8a13213a4416018f1ed590  gdb/testsuite/gdb.base/execution-termios.c
-52f88ad31ad1478da10f338e879c10c7  gdb/testsuite/gdb.base/environ.exp
-b1511a5d974f2cb9e13db5ea87eb6823  gdb/testsuite/gdb.base/pr11022.exp
+a284ceb15cfb92a77b0147baf080f8c8  gdb/testsuite/gdb.base/recurse.exp
+9f63975dcda3328929ddbf519dd92665  gdb/testsuite/gdb.base/execution-termios.c
+5449e5b229b04c4061f58be3c7dfc125  gdb/testsuite/gdb.base/environ.exp
+ca1732d73a7fc7ec7b4d71440d3f5ee3  gdb/testsuite/gdb.base/pr11022.exp
 5fd85517a68f7b9882baaae8c10832b3  gdb/testsuite/gdb.base/langs1.c
-84c1fb7036d738278c3135d0726c4d33  gdb/testsuite/gdb.base/attach-pie-noexec.c
-dd9594f80a8c37fd03abc78805be15f2  gdb/testsuite/gdb.base/annota3.exp
-a079a9e7263ba2684c196138b5c8f912  gdb/testsuite/gdb.base/help.exp
-6c53584362581d4f864c1f9114a69b8c  gdb/testsuite/gdb.base/sepdebug.exp
+0c4c9a3a69a552945ba632f2dc2da5a3  gdb/testsuite/gdb.base/attach-pie-noexec.c
+44e1175bcec6d146d58af7f1f7051a53  gdb/testsuite/gdb.base/annota3.exp
+fa05183f7699f3f8560fac2a309f7688  gdb/testsuite/gdb.base/help.exp
+93718c3fc952037c5f8e48a606fb8556  gdb/testsuite/gdb.base/sepdebug.exp
 854f10afe4bd9f8244ceb4d4d86802fa  gdb/testsuite/gdb.base/sigall.c
-c2c0cb58295b414450d18d96d675dcb9  gdb/testsuite/gdb.base/condbreak.exp
-d71b5cd7aa2e699fa734584ab906a111  gdb/testsuite/gdb.base/dso2dso-dso1.h
-442acd4209c903e8f9a08dcad0c6a93f  gdb/testsuite/gdb.base/print-file-var.exp
-1dd17161bff40a00141614bb4a3bab0b  gdb/testsuite/gdb.base/testenv.exp
-44eb3f3284e10cd64950a0d9fba097fe  gdb/testsuite/gdb.base/jit-simple-dl.c
-83a1131f8633a07faaa51d74fda6beff  gdb/testsuite/gdb.base/break-probes-solib.c
+c059c824a5d26df8faf5daed8c86e06e  gdb/testsuite/gdb.base/condbreak.exp
+47f50b6928b5367cf31b78ef786694d9  gdb/testsuite/gdb.base/dso2dso-dso1.h
+4a203b349ff3b5e574f33515601cdd0d  gdb/testsuite/gdb.base/print-file-var.exp
+091bbdbc0ea142c418da7aa53e546f39  gdb/testsuite/gdb.base/testenv.exp
+79b222d4aace51962c4e44c326f85646  gdb/testsuite/gdb.base/jit-simple-dl.c
+b1f393c58c23d9f3de345c561864144e  gdb/testsuite/gdb.base/break-probes-solib.c
 8e730d4cabc338f1f76259d676d7191c  gdb/testsuite/gdb.base/ending-run.c
-21015d50e1362b899c826633acc8d262  gdb/testsuite/gdb.base/floatn.c
-d016f5d02f650e987615a8655af3460d  gdb/testsuite/gdb.base/step-resume-infcall.exp
+3906c1cce2885181df91b1d8af612020  gdb/testsuite/gdb.base/floatn.c
+7935a8dca16ab7df7560f2468602eb1c  gdb/testsuite/gdb.base/step-resume-infcall.exp
 25dd3e940b7f381b4985683b64dff8cf  gdb/testsuite/gdb.base/ss.h
+bc94dc1f1e2f94d887489b70b6deaf10  gdb/testsuite/gdb.base/quit-live.c
 bd0008fe2ef225dda91bf6794ebd8968  gdb/testsuite/gdb.base/printcmds.c
-f273785addc9bdecca2d6c89fab70507  gdb/testsuite/gdb.base/nodebug.exp
+db97f4e676049f55f2cd9f66bd551d23  gdb/testsuite/gdb.base/nodebug.exp
 35ce0d1e8a6cc6a278649ec7464d8a1c  gdb/testsuite/gdb.base/m32rovly.c
-b7184c77818ce699a21af3b562862df3  gdb/testsuite/gdb.base/float128.exp
-94ffdd23187a0ec81f02f70d6966641e  gdb/testsuite/gdb.base/bfp-test.c
-16baefc11a5af4a2e72378877ea96666  gdb/testsuite/gdb.base/value-double-free.c
-7330f9c80fd567b7a8010f0e3c20293a  gdb/testsuite/gdb.base/breakpoint-shadow.c
-3debfdb92166bace74ab8396a5dd3d9a  gdb/testsuite/gdb.base/valgrind-disp-step.exp
+4e9486ea308573f18d9feb816603714a  gdb/testsuite/gdb.base/float128.exp
+a60fa210a0d632e759464de80fb969d2  gdb/testsuite/gdb.base/bfp-test.c
+1ab3f3319b4e70de8f4ea3b7580f59b9  gdb/testsuite/gdb.base/value-double-free.c
+33e437b401037e2ffa3fa8791207d103  gdb/testsuite/gdb.base/breakpoint-shadow.c
+51599852510250cfa87f935998642bf8  gdb/testsuite/gdb.base/list-ambiguous0.c
+bdaa9d7e5f29c3c6537aaff61b40d36c  gdb/testsuite/gdb.base/valgrind-disp-step.exp
 c6a16edc9359f0384e9bb01cc216272c  gdb/testsuite/gdb.base/foo.c
-eae64c2c7bcad318e6addd83ab40e3cb  gdb/testsuite/gdb.base/vla-datatypes.exp
-471adf3b22d2a015dcda6919ddd0953f  gdb/testsuite/gdb.base/setvar.exp
-d662775923a73189214abbfc8722609a  gdb/testsuite/gdb.base/nested-subp1.exp
-b3dec05b2230fe5ef8d2091d799a1856  gdb/testsuite/gdb.base/history-duplicates.exp
-9b625cde4de05b86e653f9165390b6cc  gdb/testsuite/gdb.base/nested-subp3.c
-795255d34aa87694775f9e7ac1004301  gdb/testsuite/gdb.base/fixsection.exp
-38ce0b7b82dca4f9de94eccc2f31becf  gdb/testsuite/gdb.base/sep.c
-8a3b9b45c639452157c274892041fa44  gdb/testsuite/gdb.base/auxv.c
-daab6eeb236447dc2cb51cbe4462e135  gdb/testsuite/gdb.base/watch-non-mem.c
-1403307718a8087823174b0c6723b193  gdb/testsuite/gdb.base/pending.exp
-e9e4da42c40d4492bea155323c5a562a  gdb/testsuite/gdb.base/auto-load.c
-15c9a60fdd53204e9afdd417615835a8  gdb/testsuite/gdb.base/catch-gdb-caused-signals.exp
-e12b44417c990bc5f774849cf21437b6  gdb/testsuite/gdb.base/ctxobj-m.c
-e1d3639c26f28621d5b47ac63050d31a  gdb/testsuite/gdb.base/paginate-inferior-exit.exp
-79cb5897a9a5b2c410d50b4be52b282c  gdb/testsuite/gdb.base/global-var-nested-by-dso.c
-a71ff8bb275e1fbd9a6e323c3a2257e7  gdb/testsuite/gdb.base/catch-load.exp
-713ca4e9f5e0be5811b1adb0eefe1de4  gdb/testsuite/gdb.base/step-over-syscall.exp
-163d659abeb5259cf595613207349dbc  gdb/testsuite/gdb.base/prelink.c
-813148ada5309f554fe98afc5d53aec5  gdb/testsuite/gdb.base/break-caller-line.c
-dd28293225790202422b3115bfc5cd47  gdb/testsuite/gdb.base/watchpoint-solib.exp
-e2c5718bdd63f6ef0247c1b45eb5c147  gdb/testsuite/gdb.base/wrong_frame_bt_full-main.c
-4ef01409758cfa4a85cb869ddeffbbd1  gdb/testsuite/gdb.base/async.exp
+7a55d5274e21adca85066eec7be48c07  gdb/testsuite/gdb.base/vla-datatypes.exp
+a90b9fc757804f8bdcdd9d5286554211  gdb/testsuite/gdb.base/setvar.exp
+25d11caa7977a4e8e859c52dc5d330ad  gdb/testsuite/gdb.base/nested-subp1.exp
+3a9388aeecf01b798c634cffbd6b59d7  gdb/testsuite/gdb.base/history-duplicates.exp
+d6696b2085477e03252df2318025e025  gdb/testsuite/gdb.base/nested-subp3.c
+a99f2c5d27407ec0de60a092e2292733  gdb/testsuite/gdb.base/fixsection.exp
+cff037d374a742e71b134584a6fe87d9  gdb/testsuite/gdb.base/sep.c
+935690121eb652b0433edf05dbf9eabd  gdb/testsuite/gdb.base/auxv.c
+9fd43af5a39e973e7968887afbfd9ece  gdb/testsuite/gdb.base/watch-non-mem.c
+db04f420f045481f86b54f67aaffb4ff  gdb/testsuite/gdb.base/pending.exp
+428aafa668d9dfd1f0a9352d112c4a53  gdb/testsuite/gdb.base/auto-load.c
+fd2b8904657e0efe79a90ad2ae0545c9  gdb/testsuite/gdb.base/catch-gdb-caused-signals.exp
+ea7aa240ba3e0f0b05dc580c1b993834  gdb/testsuite/gdb.base/ctxobj-m.c
+35a9ff3e68fed96c388d2fdea0b89fb9  gdb/testsuite/gdb.base/paginate-inferior-exit.exp
+f2ccb324547161a8fb4c70c8e14212ae  gdb/testsuite/gdb.base/global-var-nested-by-dso.c
+0a36ade7e11ae850968df10abbd6d981  gdb/testsuite/gdb.base/catch-load.exp
+bfc42c74e0d455982274207f9c4396c2  gdb/testsuite/gdb.base/step-over-syscall.exp
+22ae491fbe4d89980f9a96e8ab250a49  gdb/testsuite/gdb.base/prelink.c
+6a760f6d1c7337bb44373067c647dc7c  gdb/testsuite/gdb.base/break-caller-line.c
+d3e164c5201d089158c5201b51881fb1  gdb/testsuite/gdb.base/watchpoint-solib.exp
+792ed147b0f30c0ef162d9aab4c769bd  gdb/testsuite/gdb.base/wrong_frame_bt_full-main.c
+f94b8a5d2a90f549a627dd7e7183c882  gdb/testsuite/gdb.base/async.exp
 a7eec13082c0bf5a6bcf3bea3e8f143c  gdb/testsuite/gdb.base/pointers.c
-f0f464cb87be481c7c44ddea92ad8928  gdb/testsuite/gdb.base/kill-after-signal.c
+2d9c050bbbc6f2008ac46e6e7af6e61a  gdb/testsuite/gdb.base/kill-after-signal.c
 ac0b4b74bdc306ec71b88d83a0cd608a  gdb/testsuite/gdb.base/scope1.c
-8812dd1c0367786ed73a2a3b590a478f  gdb/testsuite/gdb.base/call-sc.c
-6a10a23cbcae8d354bca512fbac84107  gdb/testsuite/gdb.base/nodebug.c
-2ea6b7ceb591d5aa16e7620e9ede6135  gdb/testsuite/gdb.base/callfuncs.exp
-e150765c5dcf0bc319984bb9827f08d7  gdb/testsuite/gdb.base/shreloc.exp
-df7979fdcd48b448cee8be106c2115ce  gdb/testsuite/gdb.base/shell.exp
-29e77934d4fd10f55443f614ab396592  gdb/testsuite/gdb.base/fileio.exp
-ed7df59d67c4f9af2d613e777c4f172c  gdb/testsuite/gdb.base/eval-avoid-side-effects.exp
-fcf1e9c48e00fe11dd24cb50a4335b0b  gdb/testsuite/gdb.base/longjmp.c
-e4d207a5408b939117c292a0c2fb2bc5  gdb/testsuite/gdb.base/break-fun-addr2.c
-24b5fae9030defcb025539c967258174  gdb/testsuite/gdb.base/break.c
-3646392b2b887d33096836ff99c46588  gdb/testsuite/gdb.base/dprintf-bp-same-addr.c
-e28de2c69353b2cd00167f1e99dfe009  gdb/testsuite/gdb.base/freebpcmd.exp
-1a107f26e8515ab2bc91f355d6a4b353  gdb/testsuite/gdb.base/solib-nodir.exp
+559501814763dfbffd0ca16b81f98667  gdb/testsuite/gdb.base/call-sc.c
+a4ee5f8b6f114af4350ab2c4a700ba51  gdb/testsuite/gdb.base/nodebug.c
+28a2ffe5238a01247af4b4476967144e  gdb/testsuite/gdb.base/callfuncs.exp
+19b3eb6d7997cc32a6fea73fb479d097  gdb/testsuite/gdb.base/shreloc.exp
+937f5346b12b1baa61dec5a68c9c0dfd  gdb/testsuite/gdb.base/shell.exp
+1ae32c3808518cdac02dc902ab97e421  gdb/testsuite/gdb.base/fileio.exp
+434ec326279f868212873b903928e33f  gdb/testsuite/gdb.base/eval-avoid-side-effects.exp
+7a2e68e0ae300b722ff1f9182ee9ffa8  gdb/testsuite/gdb.base/libsegfault.exp
+f2bdf62be5bc47ff8e7fb5d62c94d96e  gdb/testsuite/gdb.base/longjmp.c
+734a6b73a489089fedbf7cfdd5918e5f  gdb/testsuite/gdb.base/break-fun-addr2.c
+02d076f2a32831a03ef4718b2a3484d5  gdb/testsuite/gdb.base/break.c
+9dc6d837228f76b47770e2dd33751e79  gdb/testsuite/gdb.base/dprintf-bp-same-addr.c
+279e3c462aa4674da982eb9ffaeae1d4  gdb/testsuite/gdb.base/freebpcmd.exp
+40fb3df64e7110afb0ab1aa3089d4e56  gdb/testsuite/gdb.base/solib-nodir.exp
 18a49ceae996869f718980356f5f6b45  gdb/testsuite/gdb.base/shreloc1.c
-c61190e6b7cd2057e766e789a0a4351a  gdb/testsuite/gdb.base/all-bin.exp
-31920f60113e20b1c51b154e7ffb7243  gdb/testsuite/gdb.base/dprintf-non-stop.exp
+2b5d03f1f35f54fea7ef896b5eda0b62  gdb/testsuite/gdb.base/all-bin.exp
+bbe9e64e1a19ea8dfa7ed573a4ff9fe4  gdb/testsuite/gdb.base/dprintf-non-stop.exp
+ad95e389ef053e223688a960ae1b976e  gdb/testsuite/gdb.base/set-cwd.exp
 91a9797c36773f25d2961a2478d37c89  gdb/testsuite/gdb.base/chng-syms.c
-8d9f14d7290e57a3e1678cc96dcb00e6  gdb/testsuite/gdb.base/arrayidx.exp
-9b7cd75ef0b02f1a206b1067810c7491  gdb/testsuite/gdb.base/exec-invalid-sysroot.exp
-51a8b09dd69fdbb2c6e248b84dde62eb  gdb/testsuite/gdb.base/skip.c
-20bd58b4e7fc1d2c28cb92127cae578b  gdb/testsuite/gdb.base/gnu-ifunc.c
-2f9510ec01bc73a10f58782580c8a73d  gdb/testsuite/gdb.base/step-line.c
-e313a6899e60fd8e5be2c1b3fa509353  gdb/testsuite/gdb.base/eu-strip-infcall.exp
-8d563dbbd06a8292bef99c71a8312f0e  gdb/testsuite/gdb.base/jitreader.c
-28d2c05874bfb791edbc9a075ec0e3a7  gdb/testsuite/gdb.base/gdb1555.exp
+9b5b0515529a1b3564a4d1859ba48fa2  gdb/testsuite/gdb.base/arrayidx.exp
+6329b9e77048df4614a0662256af11bf  gdb/testsuite/gdb.base/exec-invalid-sysroot.exp
+c44ac774ba6450a7a4d5281045237741  gdb/testsuite/gdb.base/skip.c
+5a9d0fd418fa96141b8059846962b069  gdb/testsuite/gdb.base/gnu-ifunc.c
+1ef6d81a5cb325f03a8bc8b9f16aee5c  gdb/testsuite/gdb.base/step-line.c
+1950169ac6656b75c362b92655a94c28  gdb/testsuite/gdb.base/eu-strip-infcall.exp
+0ec0fd38c5738f5f6afd53cf115d80b6  gdb/testsuite/gdb.base/jitreader.c
+34a2962f796dbf4a6dd2f09e9f68e078  gdb/testsuite/gdb.base/gdb1555.exp
 be46c2ce5bb75c1410e6ddd3568603bd  gdb/testsuite/gdb.base/signals.c
-d8baf70baaa2a3765bb777fefb9c9b22  gdb/testsuite/gdb.base/cvexpr.c
-5aaedcc8540e07a43a71ea8864965f96  gdb/testsuite/gdb.base/del.exp
+b4d58c46e895e2d9ca2656e0ea946788  gdb/testsuite/gdb.base/cvexpr.c
+1bd5d1d18a07c3175751fe906969a7e8  gdb/testsuite/gdb.base/del.exp
 94c1f1818c9234b5e8e7669b457865c1  gdb/testsuite/gdb.base/bar.c
-6e13fb7538e91cde8a588255c8501753  gdb/testsuite/gdb.base/condbreak-call-false.exp
-0234390f73b10a32610ae876e577f6ef  gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp
-3c16a3c326f6fc59a8dc7d7f1a0a94d1  gdb/testsuite/gdb.base/info-macros.exp
-720dc46cef476b47a48015c14f2951bc  gdb/testsuite/gdb.base/source-test.gdb
-8d89e88e3a179eb3a7f1aace1ae43c6d  gdb/testsuite/gdb.base/jit.exp
-0657084428f2957ddb510db5135f742d  gdb/testsuite/gdb.base/attach-wait-input.c
-698f55b1d9dfac904a139999cd637393  gdb/testsuite/gdb.base/valgrind-infcall.exp
+3763ed10f78d56270fd9da2d68afae5b  gdb/testsuite/gdb.base/condbreak-call-false.exp
+bcf98ae49666b2491320696f84c08091  gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp
+be61e3b4141cbb9e55ae8024e0ef8c5e  gdb/testsuite/gdb.base/info-macros.exp
+c853a7d1530ae109642070857a342732  gdb/testsuite/gdb.base/source-test.gdb
+d0d1e505656535b56be9bef832b9ae35  gdb/testsuite/gdb.base/jit.exp
+d657b2821cb9c6fa2433b81e4cbc8fec  gdb/testsuite/gdb.base/attach-wait-input.c
+f99cc76d71a134f1728c5424c7e678bf  gdb/testsuite/gdb.base/valgrind-infcall.exp
+2ed70b6a8225fa28f7d7b55325b9f75c  gdb/testsuite/gdb.base/reggroups.exp
 917b1c0d4a61d5f2b7f74cb6ca9e2a59  gdb/testsuite/gdb.base/reread2.c
-f662e6282b879de2b6367ca98dd543af  gdb/testsuite/gdb.base/float.c
+474b73c70091d2f6fbb197fa02b601b0  gdb/testsuite/gdb.base/float.c
 d47cf600366a984537fe500bf1b0e33e  gdb/testsuite/gdb.base/miscexprs.c
-b9f0229e487be90d7d79ee68cac86f94  gdb/testsuite/gdb.base/all-architectures-7.exp
-7d63d208d08381a28357dc373275103f  gdb/testsuite/gdb.base/set-lang-auto.exp
-7b2a6cecb805e9b2041c8e4da9ba9d9c  gdb/testsuite/gdb.base/relocate.c
-232cc3db06720733bced397895302989  gdb/testsuite/gdb.base/ending-run.exp
-676d0635d8f4266e13bb0d266dd1ddc2  gdb/testsuite/gdb.base/bigcore.c
+394d2d80cb1bc3bb200f19af2bd1e786  gdb/testsuite/gdb.base/all-architectures-7.exp
+5cf16d65e567e5c1e49c54ab76b37931  gdb/testsuite/gdb.base/set-lang-auto.exp
+fa46c2035b7f098f667b4193baa06463  gdb/testsuite/gdb.base/relocate.c
+662a2307a93c4e0af5b9f293185a4ff8  gdb/testsuite/gdb.base/ending-run.exp
+87c9f5415fc431df48693b311962f567  gdb/testsuite/gdb.base/bigcore.c
 f7aec7811932b17ea2e12b59c13e377e  gdb/testsuite/gdb.base/ovlymgr.c
-565d07816960cd0b988f015c932e5c3e  gdb/testsuite/gdb.base/maint.exp
+bb68b7a9e2ea86c61b87a23bbbdeecff  gdb/testsuite/gdb.base/maint.exp
 beb7ddd8ac440e541b4ff7458987281f  gdb/testsuite/gdb.base/ovlymgr.h
-47027acbc4a7f83cc55d1e8c052b3135  gdb/testsuite/gdb.base/symtab-search-order.c
-b679bcf74086b449ff4a649abccc9128  gdb/testsuite/gdb.base/dso2dso.c
-fc38836154ffe665e8a7494327fef93f  gdb/testsuite/gdb.base/max-value-size.c
-d9b7202302458c2f3e99f4a8cb95592c  gdb/testsuite/gdb.base/watchpoint-hw.exp
-a042fb197354605ae00095664f6e64f2  gdb/testsuite/gdb.base/nested-subp2.exp
+c8b0f409b3a7713f368e4fc3bb2f4bb3  gdb/testsuite/gdb.base/symtab-search-order.c
+0200e761766b00aa7cdfe37e5f53f7dc  gdb/testsuite/gdb.base/dso2dso.c
+0bdfe1199c6b6261c28ec4b9ef69dd7b  gdb/testsuite/gdb.base/max-value-size.c
+0c5a05e97ec9403c08496f0cc07fcb76  gdb/testsuite/gdb.base/watchpoint-hw.exp
+6783e3945198c4ebcd926daf38bbe03e  gdb/testsuite/gdb.base/nested-subp2.exp
 ba670b72741d901419e15fa374cb813c  gdb/testsuite/gdb.base/setshow.c
 46b4c46217f2fcdabd1bba7e9afaf4bd  gdb/testsuite/gdb.base/ptype1.c
-c24c7655fa576b59e2ec5279f39df089  gdb/testsuite/gdb.base/realname-expand.exp
-636feb697b15e395aea6f4c8b84465bb  gdb/testsuite/gdb.base/disasm-end-cu-1.c
-fa9f5615183aeed1240a6ae5380ca76f  gdb/testsuite/gdb.base/readline-ask.exp
-65aa193c6ce0dc2ce4aecfb882cdadb2  gdb/testsuite/gdb.base/sep.exp
-3fea68b04153e42eae6d4d65139b9b7b  gdb/testsuite/gdb.base/pointers.exp
-4dd79bb4e214d7b0e8838164d4019a1d  gdb/testsuite/gdb.base/solib-overlap-main.c
+42fcb120cfe5e6ecfba9f4b6b65b658c  gdb/testsuite/gdb.base/realname-expand.exp
+0ea36acf8b34b92b1ac42897b8ffc692  gdb/testsuite/gdb.base/disasm-end-cu-1.c
+4c76f01b7d4f504a9bf50d1690a8af56  gdb/testsuite/gdb.base/readline-ask.exp
+1776db550ab69a79eca9055f44d6812a  gdb/testsuite/gdb.base/sep.exp
+c095730cc28faa2fe2eb81c5e0b84e7c  gdb/testsuite/gdb.base/pointers.exp
+58d25e11b2671fbdeb7d2d1c0e8d34c3  gdb/testsuite/gdb.base/solib-overlap-main.c
 6935acb0c5167bd10db1a46bd79398f8  gdb/testsuite/gdb.base/call-strs.c
-8b88bfb4800df7c7f070675ca0758d07  gdb/testsuite/gdb.base/ena-dis-br.exp
-5635cc1a99fc0ced3c402804e8f3517a  gdb/testsuite/gdb.base/noreturn-finish.exp
-6a73c2f9aac5e45d11869635ed958c58  gdb/testsuite/gdb.base/random-signal.c
-8393c0dad7adaccc2db09179df1ca124  gdb/testsuite/gdb.base/disasm-end-cu-2.c
-ae5f5b808f1c0caf99c626ffab48f163  gdb/testsuite/gdb.base/interp.exp
-c7d56fefd4e5eb34e5e8519ab3f1deec  gdb/testsuite/gdb.base/fullname.c
-4abf2af4926faac2eda3ec210c2a4945  gdb/testsuite/gdb.base/break-fun-addr1.c
-abdf460cb10d6f58d622bf77e25805b9  gdb/testsuite/gdb.base/break-fun-addr.exp
-1143179e1495650145f6f14eae190a2a  gdb/testsuite/gdb.base/auto-connect-native-target.c
-ee1061fc66df6675fcd2637a93479db8  gdb/testsuite/gdb.base/nofield.exp
-5cbd01bb5386c6fb0059ebed0e84115a  gdb/testsuite/gdb.base/prologue.c
-2f1b441e18c137c59d43ef929923a3e6  gdb/testsuite/gdb.base/return-nodebug1.c
-17620538bea0ff82d2a3a6ec77e1d280  gdb/testsuite/gdb.base/gcore-buffer-overflow.c
-a1ae48d94d444586f88b8d19a835ca65  gdb/testsuite/gdb.base/dfp-test.c
-eb6a1391fa1848a87265c11cc100da03  gdb/testsuite/gdb.base/complex.exp
-38b10e4d7ce64442dd9d0d03b936e0e4  gdb/testsuite/gdb.base/gdb1056.exp
-d460f33550719691444ca0cad62e53c0  gdb/testsuite/gdb.base/info-fun.exp
-ed265ce7bc74ef1c04275e8ebe6a5ed4  gdb/testsuite/gdb.base/charset.c
-198351b7a903f61455698474fc579680  gdb/testsuite/gdb.base/list.exp
+531a9db5498a725c1adcf4b89c74760b  gdb/testsuite/gdb.base/ena-dis-br.exp
+8c7d006b1eb3821911f82724473729e6  gdb/testsuite/gdb.base/noreturn-finish.exp
+31e5ebe96041d4aaa16e33f9a3f936a7  gdb/testsuite/gdb.base/random-signal.c
+2063a45ce542b2f90434dbb141008a17  gdb/testsuite/gdb.base/disasm-end-cu-2.c
+4e116a5630a5275b45964fb4a17d7a2e  gdb/testsuite/gdb.base/interp.exp
+04f386fd4188df54f0b24a234749747a  gdb/testsuite/gdb.base/fullname.c
+4302f0c9b816ff2fbcf8d95f4f231f34  gdb/testsuite/gdb.base/break-fun-addr1.c
+6b80bdf1c02bddd5258a757ab93c78a4  gdb/testsuite/gdb.base/reread-readsym.c
+09fd594231094f218c0eada077c81212  gdb/testsuite/gdb.base/break-fun-addr.exp
+3534f2d80a780f402dde2d216cb93231  gdb/testsuite/gdb.base/auto-connect-native-target.c
+98c7c21d55acc04685df88fc7c21aa59  gdb/testsuite/gdb.base/nofield.exp
+112e3cf511988cb744a14ed00407ca93  gdb/testsuite/gdb.base/prologue.c
+9ea0256857f4d469bf376492a08bd6f0  gdb/testsuite/gdb.base/return-nodebug1.c
+a3c8f90749ee636396d79c26f2f90832  gdb/testsuite/gdb.base/gcore-buffer-overflow.c
+126901b304b4e488c39c48c8950155e1  gdb/testsuite/gdb.base/whatis-ptype-typedefs.c
+e10013124faa15c2476bcdccf7aebee7  gdb/testsuite/gdb.base/dfp-test.c
+997439d0dfbb867e696ac97b65a5a75e  gdb/testsuite/gdb.base/complex.exp
+626c794974f87d87163c421baa69e795  gdb/testsuite/gdb.base/gdb1056.exp
+d683638671141e5053b86fe3a22ece3d  gdb/testsuite/gdb.base/info-fun.exp
+3c2bb9073c65e020ac9cf1e98d004c2c  gdb/testsuite/gdb.base/charset.c
+e1983f666ea7a57a4baf53dd35d245e4  gdb/testsuite/gdb.base/list.exp
 2beca99741280af8a3855954b4e321f4  gdb/testsuite/gdb.base/dump.c
-23ba8fd6b7f1822df2ae093de352ea49  gdb/testsuite/gdb.base/branch-to-self.exp
-aa17c43ea5ad935951ef095f7962716f  gdb/testsuite/gdb.base/watch-bitfields.exp
-2b1194c00714d425e930d848acbe86e3  gdb/testsuite/gdb.base/bigcore.exp
-68aa8898fcf03171f7bc36f0558d9f8b  gdb/testsuite/gdb.base/dump.exp
+aa942c41b174ac89541461488b0e9c63  gdb/testsuite/gdb.base/readnever.exp
+4bd9d3c1830fb8e5ead6155cfe451abd  gdb/testsuite/gdb.base/branch-to-self.exp
+3435b709533d69293cc2c9c88d771e60  gdb/testsuite/gdb.base/watch-bitfields.exp
+60491123939fde38a9c0c7700729b31d  gdb/testsuite/gdb.base/bigcore.exp
+6611fa9f1e74d82f9e2f55ad448662ee  gdb/testsuite/gdb.base/dump.exp
 e132a0bda6a789c75e20e8d4eb4ebc02  gdb/testsuite/gdb.base/consecutive.c
-815b677870100a1b7cfc03533240e7a8  gdb/testsuite/gdb.base/jit-so.exp
-aab85ca70db091859be2a2a8c91476f3  gdb/testsuite/gdb.base/dfp-test.exp
-bc3b0fb7dd894099d96c572a84f01885  gdb/testsuite/gdb.base/watchpoint-hw.c
-9be2adac06d5606a71c0620c16f2a019  gdb/testsuite/gdb.base/all-architectures-3.exp
-f50e77fa217300857866f4e8fb311797  gdb/testsuite/gdb.base/solib-corrupted.exp
-b8ef5e1b7e879df9d9dde23bb9536347  gdb/testsuite/gdb.base/arrayidx.c
-fe17d5e3625564ac74a55b494844472a  gdb/testsuite/gdb.base/info-target.exp
-da0ef97640cba979e43fe124326a8282  gdb/testsuite/gdb.base/all-architectures-2.exp
+488ec9907a75121996c89bd31c1ed108  gdb/testsuite/gdb.base/jit-so.exp
+fdf2fb59b31db72cc3eec9bc60581683  gdb/testsuite/gdb.base/dfp-test.exp
+1ab676f89720f82fd363860eb9500c54  gdb/testsuite/gdb.base/watchpoint-hw.c
+c70ee96e30791c96d02c4ca232afbaa3  gdb/testsuite/gdb.base/all-architectures-3.exp
+c5e42696a1baa3e9d383feff0eaeb873  gdb/testsuite/gdb.base/solib-corrupted.exp
+6eb06f8d107413d0ea32a45dd07da527  gdb/testsuite/gdb.base/arrayidx.c
+400f2621cab4c2c146e001fea5cca1b0  gdb/testsuite/gdb.base/info-target.exp
+4c3e9a7f530a93b27fc0fe5057253cab  gdb/testsuite/gdb.base/all-architectures-2.exp
 430f9c525889baa2cca88338f57efe84  gdb/testsuite/gdb.base/funcargs.c
-3cb0b9cc0ce06e930b4ec33b788c329a  gdb/testsuite/gdb.base/find-unmapped.c
-774bfa2a12f6819fb414b53bacf217fe  gdb/testsuite/gdb.base/watchpoint-reuse-slot.c
-8f8132bf3be4b940f2fd778c48dd78f5  gdb/testsuite/gdb.base/paginate-bg-execution.c
-623415011325f6feb8a4d8142f6c05ed  gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp
-adb4801942bf1cfd84ae2fa80e855230  gdb/testsuite/gdb.base/print-symbol-loading.exp
+c2a0389ac31fe2129c4363e690bcb092  gdb/testsuite/gdb.base/find-unmapped.c
+55bd6215b67be45ae80b3e252931a01f  gdb/testsuite/gdb.base/watchpoint-reuse-slot.c
+dbe16cde5e4fa2dbf419099683e389a7  gdb/testsuite/gdb.base/paginate-bg-execution.c
+7307c906d56f1f48a1ae728dbddcd506  gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp
+6c255aedcc7f1fa6fd6dfd826f5aff3a  gdb/testsuite/gdb.base/print-symbol-loading.exp
 dc1c7b2d0d97de5e07f0046fca14d586  gdb/testsuite/gdb.base/macscp4.h
-0a224e89e24d5c95c4465f0d72dd09c8  gdb/testsuite/gdb.base/jithost.h
-098bded227c2e91b7a7ee76579b9af31  gdb/testsuite/gdb.base/statistics.exp
-a0b516dee31bb0691c4a587e4b8b5282  gdb/testsuite/gdb.base/bad-file.exp
-613ab6459b15f7bd4aab734f5a4004aa  gdb/testsuite/gdb.base/recpar.exp
-ab89e791ba99a152af9effdf37a70d9d  gdb/testsuite/gdb.base/new-ui-echo.c
-7156cbeae584c309dd180f5fb33599ac  gdb/testsuite/gdb.base/term.c
-5ec2df92ac09c749d1b00c1418868a0d  gdb/testsuite/gdb.base/func-ptr.c
-0da9d8205716c9e6d35fc669f7ae1a47  gdb/testsuite/gdb.base/bang.exp
-3312ae02755a419335222e76191de1c0  gdb/testsuite/gdb.base/duplicate-bp.c
-7f7abb587a8315a1e56638730ed4c35f  gdb/testsuite/gdb.base/break-idempotent.exp
-bd400400ddef2b5b5b86fcf0eb9f4fa0  gdb/testsuite/gdb.base/return-nodebug.exp
-555842750031d9985a9c3d0793647737  gdb/testsuite/gdb.base/start.exp
-946b1b5439d529e2a2695861327b97f6  gdb/testsuite/gdb.base/nested-subp3.exp
-820fc3188e238a212245f13b4ac27ac9  gdb/testsuite/gdb.base/killed-outside.c
-95b5b2e6ce15f0e90bbe1eec20ba06e7  gdb/testsuite/gdb.base/dtrace-probe.d
-3b390e092787af0820cd7fb7b0d517dd  gdb/testsuite/gdb.base/remotetimeout.exp
-696a9b1264475e561582746c5bb85860  gdb/testsuite/gdb.base/infcall-input.exp
-f9eeffc610f503453ee83c2431d757b4  gdb/testsuite/gdb.base/checkpoint.c
-3a3604b1250474322df58e31bffe6786  gdb/testsuite/gdb.base/cond-eval-mode.exp
-6027a5b324daeba7b15fac62c765c763  gdb/testsuite/gdb.base/morestack.exp
-c197d4d374a48bbb6880b955e34743df  gdb/testsuite/gdb.base/until-nodebug.exp
-2c09c97a591897f0ca6d6917b0324efe  gdb/testsuite/gdb.base/jit-attach-pie.exp
-80783451ede152795a78ceaf3fc67c76  gdb/testsuite/gdb.base/filesym.exp
-e79fc1f3adab76189c70d93f0d16e6b6  gdb/testsuite/gdb.base/compare-sections.c
+03cd8a7220c7c731924883551751b711  gdb/testsuite/gdb.base/jithost.h
+5f18a4a079e3d2245c4c55a98a030c14  gdb/testsuite/gdb.base/statistics.exp
+a2677d45b71340a97fc8eed845ff2742  gdb/testsuite/gdb.base/bad-file.exp
+76dce0beef21d3d957880d886b24562c  gdb/testsuite/gdb.base/recpar.exp
+94dfe0ac99a60753659f25d17a7ff61d  gdb/testsuite/gdb.base/new-ui-echo.c
+fecd7b16dd699afa49da41f4300088b0  gdb/testsuite/gdb.base/term.c
+ed1a2a78ce6c9d49a14b278184c5f0f2  gdb/testsuite/gdb.base/func-ptr.c
+8c88a192476dd49762933f8e8fffdb2b  gdb/testsuite/gdb.base/bang.exp
+1552794e5b5032e68f67c1decb4f48f3  gdb/testsuite/gdb.base/server-del-break.exp
+895d32cd2a6eb16f2d23540ad0d63cc7  gdb/testsuite/gdb.base/duplicate-bp.c
+470dabd5a7a383f0054b56e645646db6  gdb/testsuite/gdb.base/break-idempotent.exp
+15b9897fd7223cd965c88cafca491195  gdb/testsuite/gdb.base/return-nodebug.exp
+24687f8449307e1477e04d76485fff09  gdb/testsuite/gdb.base/start.exp
+8284a5a7644b65b04ddafe505e982d1a  gdb/testsuite/gdb.base/nested-subp3.exp
+e8a3f09cde0860ad66db68cee7f5871e  gdb/testsuite/gdb.base/share-env-with-gdbserver.c
+d9e1579edb2aa5fd257ce3cfb984647e  gdb/testsuite/gdb.base/killed-outside.c
+9b134124a6c158788f45cd6a5c8e705d  gdb/testsuite/gdb.base/dtrace-probe.d
+ca0c88e4b712dfbb8bcc4e49bfe287e2  gdb/testsuite/gdb.base/remotetimeout.exp
+6fbfcdf2cd61294c600e00ff2865058c  gdb/testsuite/gdb.base/infcall-input.exp
+6548271b7a0bce9c46b09f08ae56d133  gdb/testsuite/gdb.base/checkpoint.c
+adddb7921788e7856f5dee3b12866321  gdb/testsuite/gdb.base/cond-eval-mode.exp
+5fc125bdbaf4e2d3679faed44268805c  gdb/testsuite/gdb.base/morestack.exp
+e81fe97b2bebf975a997324365481a27  gdb/testsuite/gdb.base/until-nodebug.exp
+4cdfcb8d89d5184501edab3bc70d9b5b  gdb/testsuite/gdb.base/jit-attach-pie.exp
+768de11f942cd3abbf45cc2c951dd71f  gdb/testsuite/gdb.base/filesym.exp
+ce57082c514592635d73756effb5f365  gdb/testsuite/gdb.base/compare-sections.c
 b4816e4b91e99aa3e905b5d44802e907  gdb/testsuite/gdb.base/spu.ld
 93e084ab4c5f0d8e8f208ea6cb98cd56  gdb/testsuite/gdb.base/async.c
-370d596727a4d5555729ae538ffc5652  gdb/testsuite/gdb.base/break-idempotent.c
-a4963a730ee823696a57d0cfd846394b  gdb/testsuite/gdb.base/pc-fp.exp
-d0f4c4abf2a0a9ec3821b2027d1b8bf0  gdb/testsuite/gdb.base/hook-stop.c
-cb490cf5e3c670ac25f5d7bb4f77fac3  gdb/testsuite/gdb.base/dso2dso-dso1.c
-2cd737325e9ea51e6784eed363c30d3c  gdb/testsuite/gdb.base/gdb1250.c
-33b640bbe1d5aefdd092648d962aa8c7  gdb/testsuite/gdb.base/long_long.c
-85a8f4ce0967023fbbffe54842027b12  gdb/testsuite/gdb.base/prelink-lib.c
+c872035cb6bad0569d75a4b1338971e9  gdb/testsuite/gdb.base/break-idempotent.c
+c1fc872954e753947ccf31dc0a0de53d  gdb/testsuite/gdb.base/pc-fp.exp
+58b3c85c04a67e2f591f31d5130284da  gdb/testsuite/gdb.base/hook-stop.c
+324d117ec3fbf473e63824ed32406a6f  gdb/testsuite/gdb.base/dso2dso-dso1.c
+fe71e6fadf6a787230679e13360623ff  gdb/testsuite/gdb.base/gdb1250.c
+8ea82838355805087aa4e0ededcb1d22  gdb/testsuite/gdb.base/long_long.c
+0841491693eb8d49277d368a014cb0c9  gdb/testsuite/gdb.base/prelink-lib.c
+b352c95384ad05cbcbfcc3bae41ebb46  gdb/testsuite/gdb.base/set-cwd.c
 bbd68c316d4ba5e21f8aac02eb605fa4  gdb/testsuite/gdb.base/macscp3.h
-e23638483c2f2e39dd51c12e35e38705  gdb/testsuite/gdb.base/twice.exp
-c8a1fdaeba95b3bbc330f75a79b7f817  gdb/testsuite/gdb.base/call-signals.c
-33eff061f7f6fcbfa37f49195a5ac774  gdb/testsuite/gdb.base/expand-psymtabs.c
-66f0b911b486e13605ffc5fdbc7d8eac  gdb/testsuite/gdb.base/batch-preserve-term-settings.c
-bbd62dbca1db449f90cf67ce181f79b0  gdb/testsuite/gdb.base/vla-datatypes.c
-64102b6109ca51be646f3f5811c76984  gdb/testsuite/gdb.base/ptr-typedef.exp
-696b9ddd2bfa8340d5996029ea4344e3  gdb/testsuite/gdb.base/continue-all-already-running.c
-4d6bc30d162daafd3b845576abbc483f  gdb/testsuite/gdb.base/dprintf-pending.exp
-ae96b8b556c8bfa728862e0a4854ba3b  gdb/testsuite/gdb.base/chng-syms.exp
-269431a243d1952227a91f83d02e8dfb  gdb/testsuite/gdb.base/sigall.exp
-f804b51c137be9c526504e5a32cf264f  gdb/testsuite/gdb.base/catch-load-so.c
-d4138203cad26b17ddf6d773dbf2d927  gdb/testsuite/gdb.base/run-after-attach.c
-0a035d14b7b56e4f18a2c26099cbeedc  gdb/testsuite/gdb.base/line-symtabs.h
+9b0179aa0329c7fb86b41983eaec775a  gdb/testsuite/gdb.base/twice.exp
+5fea0aac30761ec1291284f9aabe4525  gdb/testsuite/gdb.base/call-signals.c
+fc5f5c76316d5b9748675ea6f7e87156  gdb/testsuite/gdb.base/expand-psymtabs.c
+d69aec5a0086e04ccdef3d35b06d1be6  gdb/testsuite/gdb.base/batch-preserve-term-settings.c
+487771b0bc46e10a974aefda4ebffdba  gdb/testsuite/gdb.base/vla-datatypes.c
+ee748ba422f48eeb1d7d79c5a0d65fe6  gdb/testsuite/gdb.base/ptr-typedef.exp
+021232f24987f0bf71356d28a10b07a4  gdb/testsuite/gdb.base/continue-all-already-running.c
+73229beb8bc1dee5a31db54dfd4a1ed3  gdb/testsuite/gdb.base/dprintf-pending.exp
+ed76d360edf7776406d6b7bb8984dce2  gdb/testsuite/gdb.base/chng-syms.exp
+09d77ebe9f60137d90be4eb2c3085a96  gdb/testsuite/gdb.base/sigall.exp
+b3f4226bf88bf2c74b64b955983dfd56  gdb/testsuite/gdb.base/catch-load-so.c
+ee510b56bcba7db085c1fa3a56f5cb91  gdb/testsuite/gdb.base/run-after-attach.c
+0e39ba3b836129e04ae18e3c258e349e  gdb/testsuite/gdb.base/line-symtabs.h
 935668abc5388a1413e121f20c42af33  gdb/testsuite/gdb.base/huge.c
-2eb09389471d80178fda0d1298cc04c8  gdb/testsuite/gdb.base/foll-exec-mode.exp
-66ab479e7497f74894332a60f266e3d4  gdb/testsuite/gdb.base/solib-disc.exp
-aa6525a7ca7595a13ef5f3970a8cdd41  gdb/testsuite/gdb.base/step-over-exit.c
-99192749f1271e5b9143b5bb55865471  gdb/testsuite/gdb.base/page.exp
-52f57bd0ddb93f3f691004f826d0bd44  gdb/testsuite/gdb.base/sep-proc.c
+d25a154d5ca2cae8488866ef816fe006  gdb/testsuite/gdb.base/foll-exec-mode.exp
+b7dca1721507a79d51c1b01fdd75a4b1  gdb/testsuite/gdb.base/solib-disc.exp
+9b4610c716036fb0b14b553e268674f8  gdb/testsuite/gdb.base/step-over-exit.c
+4f3d5f2d58e83404506626f50215d282  gdb/testsuite/gdb.base/page.exp
+763b0decdd76fb60b9fd27c6f5f58cf7  gdb/testsuite/gdb.base/sep-proc.c
 256625bcc48a090ec4e5b85d1affa9bc  gdb/testsuite/gdb.base/macscp2.h
-184b4073692cc0518313d4bc096ba41c  gdb/testsuite/gdb.base/dtrace-probe.c
-d6373c8cc42df955ee56d04cb5110eb9  gdb/testsuite/gdb.base/attach-pie-misread.exp
-74fc5e95ebc54d85e1088c4ce96fc282  gdb/testsuite/gdb.base/gdbindex-stabs.exp
-58e5438d020c77bb269d34f4d8edccc5  gdb/testsuite/gdb.base/readline-ask.c
-007fdbf12b867f51bf1afb0e883c6ff1  gdb/testsuite/gdb.base/sect-cmd.exp
-887504ce6a760170fa2d3240d44f9951  gdb/testsuite/gdb.base/find-unmapped.exp
-1535030e1e295d6ad875ef8fc1225656  gdb/testsuite/gdb.base/dso2dso-dso2.c
+2b49d8ce2aa73864bca09ba0dac729e7  gdb/testsuite/gdb.base/dtrace-probe.c
+0593dbf3c0f2f1dcdf944a34d318a8bf  gdb/testsuite/gdb.base/attach-pie-misread.exp
+a97df7432f663186ac6f11950b41bd91  gdb/testsuite/gdb.base/gdbindex-stabs.exp
+2d9a17f285e724772076fcf4f8f46e1d  gdb/testsuite/gdb.base/readline-ask.c
+58a5b7104159846f0ed42f5c01c807d6  gdb/testsuite/gdb.base/sect-cmd.exp
+8d748a428266a4a00ce4a441eb09f5a7  gdb/testsuite/gdb.base/find-unmapped.exp
+5e05031bde6d6a851d141c8eb844cc67  gdb/testsuite/gdb.base/dso2dso-dso2.c
+0aecf5503c0d75b3000b5d09bffdae0d  gdb/testsuite/gdb.base/reread-readsym.exp
 450a1da41a5c13ed23211a6f1b9a30bd  gdb/testsuite/gdb.base/list0.c
 1d30b0a35d55c8c2c0d1717fbba33216  gdb/testsuite/gdb.base/catch-syscall.c
-2fc38efff5cbd830ddf4328e1a7f07aa  gdb/testsuite/gdb.base/step-over-vfork.c
-f666d1c47ccf4b11ae409441f3423e26  gdb/testsuite/gdb.base/pending.c
-1e2c8899566f616f516fc82b66c8d977  gdb/testsuite/gdb.base/catch-signal-siginfo-cond.exp
-7711e1bbc978e1b051676028a1ab27a7  gdb/testsuite/gdb.base/jithost.c
-40584679ae2339b764f437e61cbfa12b  gdb/testsuite/gdb.base/unload.exp
-54b404060a94d262bf975b3a3b38269a  gdb/testsuite/gdb.base/watch-read.exp
+80cee76b20551684ec12192f76f96573  gdb/testsuite/gdb.base/step-over-vfork.c
+92bfdd08a4d1dc638474400902e27247  gdb/testsuite/gdb.base/pending.c
+2d23f544001243f9b0583fed19038d0d  gdb/testsuite/gdb.base/catch-signal-siginfo-cond.exp
+efe63e43c11b4d570cf018ddf5eaf461  gdb/testsuite/gdb.base/jithost.c
+62413b7308472eaa031ba4f3a71b7728  gdb/testsuite/gdb.base/unload.exp
+816f53d15ae160c12047acdfd4382a3a  gdb/testsuite/gdb.base/watch-read.exp
 a706fe8d6ecb51bd2a3d33a879414445  gdb/testsuite/gdb.base/display.c
-e9e4da42c40d4492bea155323c5a562a  gdb/testsuite/gdb.base/vdso-warning.c
-35f43ae103bbc9a69c8c259a9099dbd6  gdb/testsuite/gdb.base/corefile.exp
-94f79746d7a64656bc682f644e926106  gdb/testsuite/gdb.base/sss-bp-on-user-bp.c
+428aafa668d9dfd1f0a9352d112c4a53  gdb/testsuite/gdb.base/vdso-warning.c
+dc59eb2eae235105ac91f3ab74d9b784  gdb/testsuite/gdb.base/corefile.exp
+b1cb0037bd645fa0c4c18915ad0908c1  gdb/testsuite/gdb.base/sss-bp-on-user-bp.c
 6a12cce54a177a6b40cddded00f1850d  gdb/testsuite/gdb.base/fixsectshr.c
-7e1243e87fde615a254ed4bad68b5332  gdb/testsuite/gdb.base/interrupt-noterm.exp
-a5102d0b3680d38d57edf941b6964c91  gdb/testsuite/gdb.base/sigaltstack.exp
-8afda99c788d0104737ce820a76d8d9d  gdb/testsuite/gdb.base/ldbl_e308.c
-3db791e1decc25799b8cba41b3728938  gdb/testsuite/gdb.base/whatis-exp.exp
-aa2208c8679bf92b9f6cab56cfebfc5f  gdb/testsuite/gdb.base/source.exp
-134d2c0192cf7c667e7b98fb84f0449f  gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc
+9e38cd32f0098dbbd0a49f5b0eadd020  gdb/testsuite/gdb.base/interrupt-noterm.exp
+5c968ffb02643c7c5ef38ab47bc6070a  gdb/testsuite/gdb.base/sigaltstack.exp
+c4b3b2fd611863d49d8ecd2677c70397  gdb/testsuite/gdb.base/ldbl_e308.c
+ec724ccf378cff80cb0890499f772c28  gdb/testsuite/gdb.base/whatis-exp.exp
+34d13e7ef39c8adb3aafead71754ad9e  gdb/testsuite/gdb.base/source.exp
+c2aaa7baad9c0b4f01d6162d969913e5  gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc
 dcb1fb60c149fe711460df1c7af83cb7  gdb/testsuite/gdb.base/scope0.c
-0a3c24e5223ffd4571c9da00f20a29cf  gdb/testsuite/gdb.base/watchpoint-hw-hit-once.exp
-d8133ad6add2111d38c68cff6fbe7326  gdb/testsuite/gdb.base/gcore-relro-pie.exp
-3cd96b7b638631ca780af4b0e261d6fa  gdb/testsuite/gdb.base/catch-syscall.exp
-c708cd7a0b8f2bdaf3b5807721fee0b0  gdb/testsuite/gdb.base/gdb-sigterm.exp
-757da0fdcdb8d5792d8a762db611adb0  gdb/testsuite/gdb.base/ctxobj.exp
-8b95cb4773f6a1fb1462ade538c8e2a4  gdb/testsuite/gdb.base/structs2.exp
-7b978fbd539e5a568a0a9a49e89d1541  gdb/testsuite/gdb.base/frame-args.exp
-fa54af04a5e234213b82910cd6b1c019  gdb/testsuite/gdb.base/call-strs.exp
-2870163cd1453190cde1b6bb60e3a00f  gdb/testsuite/gdb.base/watch-cond-infcall.exp
+517f5cc53dd50ac3059bcb2ba4ba6441  gdb/testsuite/gdb.base/watchpoint-hw-hit-once.exp
+278b715006b5ecb4d04b37e400775d44  gdb/testsuite/gdb.base/gcore-relro-pie.exp
+5111fbe876e49e9b2bc3a35cc99e6010  gdb/testsuite/gdb.base/catch-syscall.exp
+a25301c88ae30eab32003a997677c074  gdb/testsuite/gdb.base/gdb-sigterm.exp
+0362094e9a852e144df75861c45bc834  gdb/testsuite/gdb.base/ctxobj.exp
+41c1e0116b1d4b65962caa42b1572457  gdb/testsuite/gdb.base/structs2.exp
+2506e8ace1d443ce2780fcfa9efd2375  gdb/testsuite/gdb.base/frame-args.exp
+e12b69f99fd2d1dadbadcca16104d658  gdb/testsuite/gdb.base/call-strs.exp
+6c719b05039cd1a58923ca2d0dc58302  gdb/testsuite/gdb.base/watch-cond-infcall.exp
 246912b4a24edf28c2896b2b0581372b  gdb/testsuite/gdb.base/args.c
-fad48755a27cab331241d4f391e95e1e  gdb/testsuite/gdb.base/arithmet.exp
-d7b55e136a0dece167a9dc9166fbbda9  gdb/testsuite/gdb.base/siginfo-addr.exp
-fa31c7c10f9e5c965020493315e175cb  gdb/testsuite/gdb.base/relocate.exp
-9aff6bd48a48eeb2b91092ad5322761c  gdb/testsuite/gdb.base/execution-termios.exp
-54d73438868086e3d99f286ba2bd9f4d  gdb/testsuite/gdb.base/gdb-sigterm.c
-8e93fc0448433eb24444be65427e22f3  gdb/testsuite/gdb.base/sss-bp-on-user-bp.exp
+2ad719ad7030c1259c3a673ce655e0b8  gdb/testsuite/gdb.base/arithmet.exp
+35e1bdbfd4b50a1d534adad4b13f61dc  gdb/testsuite/gdb.base/siginfo-addr.exp
+d3bdc0efc5acba886c500e19de228acb  gdb/testsuite/gdb.base/relocate.exp
+a434ae6a4ef10faad4b0e1f316b74cc1  gdb/testsuite/gdb.base/execution-termios.exp
+2c5d72d6d3e2dc40ce8f4c55e0b9e276  gdb/testsuite/gdb.base/gdb-sigterm.c
+1fb90dab0bcde2cda5abb53bd96726f7  gdb/testsuite/gdb.base/symbol-alias.exp
+b504da044a745f479083a3ea26aa1abf  gdb/testsuite/gdb.base/sss-bp-on-user-bp.exp
 0c30ff904d7950c94f46c998f834d0bd  gdb/testsuite/gdb.base/call-ar-st.c
 35ce0d1e8a6cc6a278649ec7464d8a1c  gdb/testsuite/gdb.base/d10vovly.c
 9ffc2cd8e384888785a57bd5ed8168d2  gdb/testsuite/gdb.base/step-test.c
-3825d0678fa508129556e93a2f58f528  gdb/testsuite/gdb.base/vdso-warning.exp
-0acc69d2120bd0f9071aac4788f54ce3  gdb/testsuite/gdb.base/dprintf-non-stop.c
-8aa7b5aaabacb8f18fa25aac037bf597  gdb/testsuite/gdb.base/code_elim.exp
-b22c3c65171d8d59b775f85b044e77d9  gdb/testsuite/gdb.base/interp.c
-6442573d8f37c6abfa3740f5c0b7a364  gdb/testsuite/gdb.base/source-execution.c
-072346e2dd9ae1d00bcdfb524a03c620  gdb/testsuite/gdb.base/watchpoint-solib.c
-e19621cc9e6105d929f40b6a663c1ee4  gdb/testsuite/gdb.base/jit-protocol.h
-6d571ed140f0e8171d8d0333edc94373  gdb/testsuite/gdb.base/foll-exec-mode.c
-8529e28d146b15e850426930a043863c  gdb/testsuite/gdb.base/prologue-include.h
-7f276cd97fcfdd0cfabd8b1a184a856d  gdb/testsuite/gdb.base/readline.exp
-e89eb7a8b62f9df0d59a8f72ac8f293b  gdb/testsuite/gdb.base/watch-bitfields.c
-ba95cda5cfa323af1c4bdf8a5cded5d7  gdb/testsuite/gdb.base/step-break.c
-ab66a9de8dd13c282b78f639709f00f7  gdb/testsuite/gdb.base/memattr.exp
-26fe025509f9e3b7f29cdbb51902eceb  gdb/testsuite/gdb.base/nested-addr.c
-08f7cefd9a9a53a3ec4a1c3203fd429e  gdb/testsuite/gdb.base/solib-overlap-lib.c
-09bfe24152208f1f234c2f0f287959d8  gdb/testsuite/gdb.base/run-after-attach.exp
-533328e3332e1e4b08db343b7a38eb55  gdb/testsuite/gdb.base/cursal.c
-26e7b484dc6bb5d28378aec7f3f4eb4c  gdb/testsuite/gdb.base/auto-load-script
-5db663d5577f83879124f3e3ece0699d  gdb/testsuite/gdb.base/stale-infcall.exp
-ce80385dbab29eba81622b85d0a19054  gdb/testsuite/gdb.base/eval.exp
+3cfe1044f23949591378bb630da2491b  gdb/testsuite/gdb.base/vdso-warning.exp
+fcf3c02a7f27a433a737195c1edc3ea7  gdb/testsuite/gdb.base/dprintf-non-stop.c
+42aaeff3ea5bc5dbdb4aee95d2b9e115  gdb/testsuite/gdb.base/code_elim.exp
+91f120b464fa386b7c572b50ea493e16  gdb/testsuite/gdb.base/interp.c
+ade150e69f1f5d1c06c88c7a5c7827cf  gdb/testsuite/gdb.base/source-execution.c
+1688b65493ca1d16f41f488d683a0e18  gdb/testsuite/gdb.base/watchpoint-solib.c
+286f9c4d7fa3e14cc019719501401d0d  gdb/testsuite/gdb.base/jit-protocol.h
+df7d735fe79846cb1d43a6aa6bad738e  gdb/testsuite/gdb.base/foll-exec-mode.c
+209c98ca97c6b775f3ab1299acc06f2f  gdb/testsuite/gdb.base/prologue-include.h
+a8d243ad36da3c19d6cc13ffb3659b97  gdb/testsuite/gdb.base/readline.exp
+eb9acfb656e5643c027b4fe79606781b  gdb/testsuite/gdb.base/watch-bitfields.c
+1e543fb7013c32f248eda21e3fdad314  gdb/testsuite/gdb.base/step-break.c
+aad255dd87205292b12e6ee3abbb7e51  gdb/testsuite/gdb.base/memattr.exp
+f07a86fa4b65ee8b9b15c6b75179b85a  gdb/testsuite/gdb.base/nested-addr.c
+91324ebf95a86136c33e5775a290443c  gdb/testsuite/gdb.base/solib-overlap-lib.c
+ae8b1688f702527f33e4b35e5a7a13f7  gdb/testsuite/gdb.base/run-after-attach.exp
+fe256de02ab5d4141c07ed266951de6c  gdb/testsuite/gdb.base/cursal.c
+265521d983fa346e1727a034a5f94e8a  gdb/testsuite/gdb.base/auto-load-script
+f4043dcf417fe5e9305553c031f9ef04  gdb/testsuite/gdb.base/stale-infcall.exp
+f339cc9d0d9d47dd8c6882f58c9903f3  gdb/testsuite/gdb.base/eval.exp
 f442d05372c0edd8adc370395f9bc915  gdb/testsuite/gdb.base/run.c
-b0743be7dc85232b44d7e0d6d365cf9c  gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb
-6aed266a1abac7b76f7f2406ed520316  gdb/testsuite/gdb.base/value-double-free.exp
-019587d3c3d7ea0d775b129f313bb55d  gdb/testsuite/gdb.base/debug-expr.exp
-b9eb2d5ba02846fef8c033500c590c44  gdb/testsuite/gdb.base/sym-file-main.c
-bdda694a98c5f4c2c0d9467f3d680863  gdb/testsuite/gdb.base/fullname.exp
+d284754c7f6ee07d0c230ef52e359ada  gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb
+d70b7be050d1117cb3f27bba4ec0b1ac  gdb/testsuite/gdb.base/value-double-free.exp
+4e623543876362f5f84cd7b6ae2d34fb  gdb/testsuite/gdb.base/debug-expr.exp
+5472cae6a21648d41c6b4fc649cc03e6  gdb/testsuite/gdb.base/sym-file-main.c
+5a25cd541f7b1dd2ed6c529607677119  gdb/testsuite/gdb.base/fullname.exp
 7cd0a5257f956160c9f4aae889328cc2  gdb/testsuite/gdb.base/langs0.c
-2c0715f07bb06ab220d8fe5c048d76ec  gdb/testsuite/gdb.base/attach-pie-misread.c
-434c5cc231936aba08e6d77aed849876  gdb/testsuite/gdb.base/assign.exp
-b20d3506d4af8eecc862fdf599907895  gdb/testsuite/gdb.base/double-prompt-target-event-error.c
-60e686f2a3a179bf08837e17bf6caad2  gdb/testsuite/gdb.base/gnu-ifunc-lib.c
-0348f47b53b600a4cc4be70a43259431  gdb/testsuite/gdb.base/structs.c
-7f053eefb800a2d2f26d84f647231931  gdb/testsuite/gdb.base/watchpoint-delete.c
-f612d405a48847246226ca263ba721bf  gdb/testsuite/gdb.base/breakpoint-in-ro-region.c
-49a1a4126e5ed1d9333eab26978decd2  gdb/testsuite/gdb.base/break-probes.exp
-3236eecbb32c2c0f6fd57c222ad126f5  gdb/testsuite/gdb.base/segv.c
-92af02563f3ee7479c186bba9467b104  gdb/testsuite/gdb.base/scope.exp
-bcc21edf8761544e7bb3a8231361f0f9  gdb/testsuite/gdb.base/symtab-search-order.exp
-a5bfef0283196d2ee7269bc08c79ff2e  gdb/testsuite/gdb.base/hashline3.exp
-4dcef69f5746b2825bc582924f0522c8  gdb/testsuite/gdb.base/breakpoint-shadow.exp
-c62e4ac9d848eedb1f1d46e66af8acc3  gdb/testsuite/gdb.base/sigbpt.c
-9f31714c6df2a5eb5468e9ee58c92882  gdb/testsuite/gdb.base/checkpoint-ns.exp
-cc7d836d6638edbf1be5251e1f279b81  gdb/testsuite/gdb.base/return2.exp
-1e51b7984a035ce34e6d34278068c504  gdb/testsuite/gdb.base/jit-main.c
-3477245e98361ef0ef9879c2585455ba  gdb/testsuite/gdb.base/included.h
-e41b3a85bfda7c2fc5ff25d6e9de22a7  gdb/testsuite/gdb.base/dmsym_main.c
-3e14d909fe6f502755c1b58a57f721d7  gdb/testsuite/gdb.base/interrupt.exp
-d4b962f2fb18da201b1afc2952658079  gdb/testsuite/gdb.base/interact.exp
-5bf74aeb4240e6b1992b18f0e0ae0ed8  gdb/testsuite/gdb.base/sigaltstack.c
-2696f8d07defb336e8d523dfb07aef12  gdb/testsuite/gdb.base/savedregs.exp
-cfe5d36bb644cc40b1271fe226b60686  gdb/testsuite/gdb.base/enumval.c
-86ad0b41c19d21b7ea573729a1079e72  gdb/testsuite/gdb.base/charset.exp
-30172a2652075a1c6d0021eadec2e6a7  gdb/testsuite/gdb.base/printcmds.exp
+dd1be460a7a2f52d0cbfe8096c0f452c  gdb/testsuite/gdb.base/attach-pie-misread.c
+4aba2ad3cd734804d2aacab98692080f  gdb/testsuite/gdb.base/assign.exp
+6527b2cd81d5f01ab4364e541a0165bb  gdb/testsuite/gdb.base/double-prompt-target-event-error.c
+a32a3653e0552f98666d9e1341775c6c  gdb/testsuite/gdb.base/gnu-ifunc-lib.c
+1aa475481a3977d2a2ae9b8c2ac638c6  gdb/testsuite/gdb.base/structs.c
+e931cb549694938c03fe58bf4ce76a02  gdb/testsuite/gdb.base/watchpoint-delete.c
+ed4142ef01b58068112ef00c751e3915  gdb/testsuite/gdb.base/breakpoint-in-ro-region.c
+a7a5f735b9210ef6f79571bd904910b1  gdb/testsuite/gdb.base/break-probes.exp
+8f7460488ecad8ee7bef5fa62d76e11a  gdb/testsuite/gdb.base/segv.c
+7d53d6061215917623e42ecac9d25815  gdb/testsuite/gdb.base/scope.exp
+c92da4ddaf09dad99a2345000bdff2fb  gdb/testsuite/gdb.base/symtab-search-order.exp
+251eee20e4fed171d9f3ebf9e65974eb  gdb/testsuite/gdb.base/hashline3.exp
+da495878075eaff4f08489f40ea05108  gdb/testsuite/gdb.base/breakpoint-shadow.exp
+731fee68284e4a2412e2e8928a754499  gdb/testsuite/gdb.base/sigbpt.c
+ba63e6165ed41f98892fdfd48e29d70d  gdb/testsuite/gdb.base/share-env-with-gdbserver.exp
+068662a17a200155a3aa1dc0a8047be4  gdb/testsuite/gdb.base/checkpoint-ns.exp
+1a16df1958dabe42efdba6a2265a5343  gdb/testsuite/gdb.base/return2.exp
+c6b9ebe980d6d9c3c97735f97edf8d2f  gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp
+61c37ecf1a0d247319b92ea7df7cb2f1  gdb/testsuite/gdb.base/jit-main.c
+e3b70dc9c792e2fd5ac6a0e0dd6188d2  gdb/testsuite/gdb.base/included.h
+3540dcf2c4d19fe0b08df255e6af490f  gdb/testsuite/gdb.base/dmsym_main.c
+1e5db2744d7f65ceb5163f0acbb79ea8  gdb/testsuite/gdb.base/interrupt.exp
+708c8245444f840a51929920bdffc9b5  gdb/testsuite/gdb.base/interact.exp
+11ff0602f10360b176e005931096b5df  gdb/testsuite/gdb.base/sigaltstack.c
+07700364b17bf7a0834c93f78d2376f6  gdb/testsuite/gdb.base/savedregs.exp
+ac5e7a644eae911613d7ee897c8bb9e2  gdb/testsuite/gdb.base/enumval.c
+5dfb9d56fef06bdea0ae48bccf9c9859  gdb/testsuite/gdb.base/charset.exp
+a50fec68f50f1d5a59aed4475717e7bf  gdb/testsuite/gdb.base/printcmds.exp
 dbfcac0e69a636942e22be1a7504cddc  gdb/testsuite/gdb.base/sizeof.c
-17433fc39f4720dcb1c007fbcb5681c6  gdb/testsuite/gdb.base/catch-fork-kill.c
-7998d373bdf0830ea9dc43400e0e5adb  gdb/testsuite/gdb.base/hbreak.exp
-dafad00feb61030893116ebc67990cd8  gdb/testsuite/gdb.base/valgrind-db-attach.exp
+25b56adcf6e30469a373e84ebbb64c15  gdb/testsuite/gdb.base/catch-fork-kill.c
+fbd3bb81803b8b751d3ccb1c7a17776d  gdb/testsuite/gdb.base/hbreak.exp
+f55d61a9472293fe7c0938005ba4d8ff  gdb/testsuite/gdb.base/valgrind-db-attach.exp
 55054b22a6edfb0fc44272fb7f9040f3  gdb/testsuite/gdb.base/list1.c
-b69282fe20e5ee515db12bee32c49cc9  gdb/testsuite/gdb.base/infcall-exec2.c
-10cc8600910c844819cd920b9f92d225  gdb/testsuite/gdb.base/jump.exp
-98ae86fb86fd2f7fba6ce1bfd6fe960d  gdb/testsuite/gdb.base/sigchld.c
-a3452d8e972cb8257cf6c47ada5d78e5  gdb/testsuite/gdb.base/reread.exp
-b4438edfeb48d96060f1c5afc52ebdd8  gdb/testsuite/gdb.base/dprintf-pendshr.c
-d283ff658401b1caf53b9eaacb04b158  gdb/testsuite/gdb.base/exitsignal.exp
-4569e4bd5a86e379371019d7690a336c  gdb/testsuite/gdb.base/nested-subp2.c
+47ce238a224d31a98b0a2c223996103d  gdb/testsuite/gdb.base/infcall-exec2.c
+36dd5f31b4347de127427bb0233b1890  gdb/testsuite/gdb.base/jump.exp
+5e8c7c4038a61a8480632e3d38742223  gdb/testsuite/gdb.base/sigchld.c
+10db20a7c2fc47c7eb2b444171e56faa  gdb/testsuite/gdb.base/reread.exp
+a72e4613d09924582babe4654e8cb0f4  gdb/testsuite/gdb.base/dprintf-pendshr.c
+fc2cf5f360d274d5472153d516f761b3  gdb/testsuite/gdb.base/exitsignal.exp
+756bac734c606da50b9ad066c87e15f4  gdb/testsuite/gdb.base/nested-subp2.c
 cc73eb7951662aabb85954b1f57b055a  gdb/testsuite/gdb.base/solib1.c
-2f942cf5f5f1af57a5d8df14f6bb55ba  gdb/testsuite/gdb.base/volatile.exp
-2c2435a32460a52a9b1416e0eb613f58  gdb/testsuite/gdb.base/jit-simple.exp
-193b08ea757fe1b459aa35457ca219c2  gdb/testsuite/gdb.base/step-over-clone.c
-2ec36e49a1313ac0237cf990c3b60725  gdb/testsuite/gdb.base/watchpoint-cond-gone-stripped.c
-f61e65c0287a833971ea50f6cfaf9e0e  gdb/testsuite/gdb.base/watchpoint.exp
+16aed11c8bab44d30cc605dd4df879f4  gdb/testsuite/gdb.base/volatile.exp
+0435a723907190a8238c3e14107e5fd9  gdb/testsuite/gdb.base/jit-simple.exp
+4318b9774ca781aa13fef6289603b45e  gdb/testsuite/gdb.base/step-over-clone.c
+6d755f8aabe93a3f8951c41d63ede1f9  gdb/testsuite/gdb.base/watchpoint-cond-gone-stripped.c
+478f46527a5c5c05196961003788ee6f  gdb/testsuite/gdb.base/watchpoint.exp
 7795f27d3493b8a545e87cd368380b65  gdb/testsuite/gdb.base/skip-solib-lib.c
-697c3522c9f7bbf2240e2900ae8dc38e  gdb/testsuite/gdb.base/dtrace-probe.exp
-c6ebf082b3630995ab8fd272af9822f2  gdb/testsuite/gdb.base/jit-reader.exp
+ecbf71781f59411b71debb9a18da178e  gdb/testsuite/gdb.base/dtrace-probe.exp
+318bdbff360710e6d6026adcbcdf6b1b  gdb/testsuite/gdb.base/jit-reader.exp
 a3bbbaaebe1bd4168a37b11c401b3109  gdb/testsuite/gdb.base/call-rt-st.c
-84d68897b3977a31bc53c909f8ec19ba  gdb/testsuite/gdb.base/fork-running-state.exp
-d5236efd8aa87daad51575d3484c8824  gdb/testsuite/gdb.base/gdb11531.c
-b0a36eb125d599da870db9164cbda9a1  gdb/testsuite/gdb.base/siginfo.exp
-30247b88c5a9b2a9eb248792d5befe63  gdb/testsuite/gdb.base/source-execution.gdb
-fa7f0adefe546e24e615745be128c5ce  gdb/testsuite/gdb.base/noreturn-finish.c
-b96698f5f02591b21287d207f6da57f9  gdb/testsuite/gdb.base/double-prompt-target-event-error.exp
-198145f8b6690b76f71a56ea5328b7a5  gdb/testsuite/gdb.base/new-ui.c
-ab4e1fb6df111732cc93e653663cc0db  gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp
-7953e8b18f4a708ed3cac0970eb25d77  gdb/testsuite/gdb.base/del.c
+f69cf856ab4dc12a3c7c527158396631  gdb/testsuite/gdb.base/fork-running-state.exp
+db0033eef28ed6cbd84e138e8f69fcbf  gdb/testsuite/gdb.base/gdb11531.c
+99966f0ace976f0526110721baf06163  gdb/testsuite/gdb.base/siginfo.exp
+ae5fe835dcb05c3e3aae72c884942c62  gdb/testsuite/gdb.base/source-execution.gdb
+60ff9e612779de28c159346dd7ae161f  gdb/testsuite/gdb.base/noreturn-finish.c
+6e76135a189f4bfc2539adab87f82cc2  gdb/testsuite/gdb.base/double-prompt-target-event-error.exp
+ad3aa8fac7b6c7ec943411b9ef335680  gdb/testsuite/gdb.base/new-ui.c
+591de289d622c0e25578c270fed06b41  gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp
+9d578b1cbce61f9e8374a8538e3cc4c7  gdb/testsuite/gdb.base/del.c
 5c6c88e6c9bdb68bd97e92571cc1bb1d  gdb/testsuite/gdb.base/varargs.c
-431055b19253e8d0d664cc30b993a157  gdb/testsuite/gdb.base/realname-expand.c
+066591320c6f44612d0f819117e9ef7f  gdb/testsuite/gdb.base/realname-expand.c
 300341fe836af37adf2f3064285022aa  gdb/testsuite/gdb.base/twice.c
-927e73dd75828ab9360a72046b937c69  gdb/testsuite/gdb.base/huge.exp
-b6280fa46336b270c3e5b2a8db7add5c  gdb/testsuite/gdb.base/vforked-prog.c
-205724b5650e0e3ec8193aaad6ec2bdf  gdb/testsuite/gdb.base/echo.exp
+9209ce31764777f38f2bdb92a082c977  gdb/testsuite/gdb.base/huge.exp
+c9070912be787c0196dce29c717dbcb5  gdb/testsuite/gdb.base/vforked-prog.c
+4894c34956fde3b72afb3b80d5824763  gdb/testsuite/gdb.base/echo.exp
+2e9dc2e273b7b2bd6e1b4f34658df1ae  gdb/testsuite/gdb.base/long-inferior-output.c
 c90e022fb5ef3df8a5639df233f9c350  gdb/testsuite/gdb.base/langs2.cxx
-560f31277e5f3a1f71071629a45d23c7  gdb/testsuite/gdb.base/signest.exp
-8d4496bae1cb1f0c5370ae1abcd9926f  gdb/testsuite/gdb.base/info-shared.exp
+b00d72a1028c80c0717cf68982c447e2  gdb/testsuite/gdb.base/signest.exp
+7eaa776a9d0147778faba0a8399c6106  gdb/testsuite/gdb.base/info-shared.exp
 9b249094a36f9f82f60e3dc0a01cb52d  gdb/testsuite/gdb.base/gdbinit-history/zero/.gdbinit
 f2a43a61ad25b5af403705b7001ff2d7  gdb/testsuite/gdb.base/gdbinit-history/unlimited/.gdbinit
-8c71bcf5f0d5f26e1e4c13f418c94781  gdb/testsuite/gdb.base/callexit.c
-cb1096121ad726b0b37cd5ab64e3527c  gdb/testsuite/gdb.base/global-var-nested-by-dso-solib2.c
-98761ed898aaa068afad441f1497e3df  gdb/testsuite/gdb.base/step-symless.exp
-1a4cf5ee3a25548f0d525fd8994fc8f4  gdb/testsuite/gdb.base/duplicate-bp.exp
+934defe30bf1c6d2c7a66e90f7a7c274  gdb/testsuite/gdb.base/callexit.c
+02322522c8d4a66fc3a39b5b477066ff  gdb/testsuite/gdb.base/global-var-nested-by-dso-solib2.c
+044a06654f571e660e1b73c216d84b9b  gdb/testsuite/gdb.base/step-symless.exp
+4b118a3d34863dab3a6d5d3aaba00ad7  gdb/testsuite/gdb.base/duplicate-bp.exp
 e33f3eea7d6105e0265ef823ed34ffc7  gdb/testsuite/gdb.base/all-types.c
-b23567d7f4a76ec0342f8872ca1d4640  gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.c
-dba538ff90e07fb85bc6dc87d27d04da  gdb/testsuite/gdb.base/attach-twice.exp
-da3f879fb74621136dc2f87eb02c0bc8  gdb/testsuite/gdb.base/info-shared-solib1.c
-834fd3860fb86ff03f767f1014c12d1a  gdb/testsuite/gdb.base/find.c
-cd40d9263c3a680ec0dd61179420b722  gdb/testsuite/gdb.base/func-ptrs.c
-76de98fd4fae14ba7811c558ec005245  gdb/testsuite/gdb.base/sigstep.exp
-8193b1f91b465099854d799881f7848a  gdb/testsuite/gdb.base/argv0-symlink.exp
-43e83a12e8857d41fd0499765b41c865  gdb/testsuite/gdb.base/hashline1.exp
-48db02e69bc92f4f370b118ecd292493  gdb/testsuite/gdb.base/setshow.exp
-5f365afbe702bc318eb81fbd57e3e11b  gdb/testsuite/gdb.base/step-resume-infcall.c
-4a8668fe26a9635fa2ce302c1caff605  gdb/testsuite/gdb.base/type-opaque.exp
-e1e927b447b2784d48c626fb801dde72  gdb/testsuite/gdb.base/remote.exp
-9c9f13dd00805023571788893387d587  gdb/testsuite/gdb.base/weaklib1.c
-82fe7cf4f9f4e2ac4f6bb6f7876dc432  gdb/testsuite/gdb.base/watchpoint-hw-hit-once.c
-8b8c35ff57bd1a74b5288325cd81751f  gdb/testsuite/gdb.base/valgrind-db-attach.c
-013e48d678da0a656a3f2c0c6f5de500  gdb/testsuite/gdb.base/gdb11530.c
-fe730442c2dd619478633e8786132e63  gdb/testsuite/gdb.base/break-always.c
-3f764e4fdbc94c83d8b0418f480b0725  gdb/testsuite/gdb.base/checkpoint.exp
-70edde9b6afee2bad036881d052116f0  gdb/testsuite/gdb.base/gdbinit-history.exp
-4e88325e0105ba9f097ad01cb9198f08  gdb/testsuite/gdb.base/subst.exp
-89845f3af5001802cd5f5fd02857845d  gdb/testsuite/gdb.base/dprintf-detach.exp
-63b6914ec89291c612b08ad9bacfff6c  gdb/testsuite/gdb.base/step-test.exp
-e1f058a5fff4916051801c97997ae0d7  gdb/testsuite/gdb.base/relativedebug.c
-bcfb3776d22c4b358d23b53c2b2eb1be  gdb/testsuite/gdb.base/paginate-bg-execution.exp
-0411e888b034bb798c3d74bdf2e6951f  gdb/testsuite/gdb.base/sym-file.exp
-275f6a43088b6a19e3f6fe13ac08036d  gdb/testsuite/gdb.base/step-bt.c
-6fdeb26e4828e6f20504c35db4725f44  gdb/testsuite/gdb.base/all-architectures.exp.in
-c3998ca6af53d06fd60ef75397088dae  gdb/testsuite/gdb.base/unloadshr.c
-1dd59db813509a402dcc1a89e1bad999  gdb/testsuite/gdb.base/valgrind-infcall.c
-69d636705ec5578ae98503eacceb1243  gdb/testsuite/gdb.base/watchpoint-cond-gone.c
-e37efb84de5795fc54bffe0dcd0a0a5f  gdb/testsuite/gdb.base/watch_thread_num.exp
-231e32acb1fff4025e57834a40af9091  gdb/testsuite/gdb.base/solib-display-main.c
-7a88164bd388d229e582a969598fead0  gdb/testsuite/gdb.base/fortran-sym-case.c
+3131cb7e6b94dc7d1851a0b2293ae51f  gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.c
+d04ea6c79b23ff3922f89aef739efe08  gdb/testsuite/gdb.base/attach-twice.exp
+d4db3cd139f1c568faac4de5fdb8915d  gdb/testsuite/gdb.base/info-shared-solib1.c
+5690b9661e53bcf68aa54e5013a309e9  gdb/testsuite/gdb.base/find.c
+8c0c2b81e05d9fff9d4ba72a56ba26d7  gdb/testsuite/gdb.base/func-ptrs.c
+847a48d731c1fe585dfff4261cedacb8  gdb/testsuite/gdb.base/sigstep.exp
+e72eadd76cd212e302f3a3789872146f  gdb/testsuite/gdb.base/argv0-symlink.exp
+cb19ec5bdc77be5e1b3f1add2f865739  gdb/testsuite/gdb.base/hashline1.exp
+cd42ac6bb6925b348a5f54636bc3c154  gdb/testsuite/gdb.base/setshow.exp
+fcb374db8bf1de8c62ba4ec7afdb8034  gdb/testsuite/gdb.base/step-resume-infcall.c
+0c63886d78f5164d10171b7ca56de144  gdb/testsuite/gdb.base/type-opaque.exp
+5d6f67b0f82dfa4647bfe5658d6bcc5b  gdb/testsuite/gdb.base/remote.exp
+234346dc31da72f2b52533bced0c259d  gdb/testsuite/gdb.base/weaklib1.c
+078ac32c41cd97ffb0210b0bd55102d3  gdb/testsuite/gdb.base/watchpoint-hw-hit-once.c
+cba5688fa5abb6816830f96fa5b1a113  gdb/testsuite/gdb.base/valgrind-db-attach.c
+94ddd91a0cde577605aaf714948ba417  gdb/testsuite/gdb.base/gdb11530.c
+e7609b913a871f3271bfc16786160608  gdb/testsuite/gdb.base/break-always.c
+b7a7d6efe6ac1a5274f354a881522a1f  gdb/testsuite/gdb.base/checkpoint.exp
+b662c00fe36022721b4afad52114e0ff  gdb/testsuite/gdb.base/gdbinit-history.exp
+1fd0d67c09017c56ebc9adda3219d355  gdb/testsuite/gdb.base/subst.exp
+5fec562697bf7049e280081687fa80d5  gdb/testsuite/gdb.base/dprintf-detach.exp
+c19b34ef4c2f980e9c6d2e6bb0aab1bc  gdb/testsuite/gdb.base/step-test.exp
+d5637c3572fdc1ab2809d2b659cc2744  gdb/testsuite/gdb.base/relativedebug.c
+ff73e10a86534d1db7e6f372255c8423  gdb/testsuite/gdb.base/paginate-bg-execution.exp
+cdaf5ad60d24ef291f680b34d24f92d0  gdb/testsuite/gdb.base/sym-file.exp
+250ecabf50fd5a622819975f62e5722a  gdb/testsuite/gdb.base/step-bt.c
+e4c47902984dbed52a7e32d8031e8970  gdb/testsuite/gdb.base/all-architectures.exp.in
+bf8eb8d8008bfb9907a5c597fe7c95ca  gdb/testsuite/gdb.base/unloadshr.c
+13bac9884c0599c6e082b3e49416ee3e  gdb/testsuite/gdb.base/valgrind-infcall.c
+5bf5918781fbb5e1d82283df5c514a07  gdb/testsuite/gdb.base/watchpoint-cond-gone.c
+636e4990a92b585dc0dca483a6856f23  gdb/testsuite/gdb.base/watch_thread_num.exp
+5fe9cfd5d351f917cdb8e6441a470edb  gdb/testsuite/gdb.base/solib-display-main.c
+fd6b4c92b3882fe05b105d70b7388690  gdb/testsuite/gdb.base/fortran-sym-case.c
 9cd4ef136dfbee149a4056477283fa41  gdb/testsuite/gdb.base/grbx.c
-3d91c37838cf17dac0ec15023deb090c  gdb/testsuite/gdb.base/break-unload-file.exp
-80574d64b9c7caa1a8fdb5fd894bc296  gdb/testsuite/gdb.base/solib-search-lib2.c
-c6fc9d33b61fbb1ed17db14ce23d660b  gdb/testsuite/gdb.base/foll-exec.exp
-65446aa1767cb4b453f42b3c89b27561  gdb/testsuite/gdb.base/dmsym.c
-aa4748de1f56f6580b3a5556dff1a9c4  gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c
-541eb7b2a9f316389fa37975b470bcd0  gdb/testsuite/gdb.base/alias.exp
-32a5c30a7bee709996815f5a8509c131  gdb/testsuite/gdb.base/gdbvars.exp
-4f2fc018fb32d2f0fca0577b17d70b66  gdb/testsuite/gdb.base/structs3.c
-debcbedc09a7d8f54bb0c105356eaff1  gdb/testsuite/gdb.base/unwindonsignal.exp
-b134f240fe21b7c7de125afa4653ba58  gdb/testsuite/gdb.base/watchpoints.c
-951d1b06a1ec3b483a5526d28098ceec  gdb/testsuite/gdb.base/included.c
+df8510b6abf3cebf81fab55443800955  gdb/testsuite/gdb.base/break-unload-file.exp
+f3970841572cf323b0aff220bcd6c19b  gdb/testsuite/gdb.base/solib-search-lib2.c
+65e6e9fe72b692561a84697f85249b1d  gdb/testsuite/gdb.base/foll-exec.exp
+1458fa38cda3444ba0914e6a793086c6  gdb/testsuite/gdb.base/dmsym.c
+95b5c04d733be06da784ac6310498d2a  gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c
+75bf481272626bbc2cbb7142dcec07cf  gdb/testsuite/gdb.base/alias.exp
+3e924267a5648a5c2705bbd10ac376d5  gdb/testsuite/gdb.base/gdbvars.exp
+addb38bcba741b4abd27011e43843c8c  gdb/testsuite/gdb.base/structs3.c
+6536c704699cc51c85f1fe266ba5b251  gdb/testsuite/gdb.base/unwindonsignal.exp
+7e4bf69f6a982833ce11f14774233d57  gdb/testsuite/gdb.base/watchpoints.c
+d52a306fb571bcb05a6e45e5ef3d102c  gdb/testsuite/gdb.base/included.c
 1bbd5bc32f4f8b1fd1713f542eda08f2  gdb/testsuite/gdb.base/bitfields2.c
-adebbe05da5693c0f3ed4266a78373fc  gdb/testsuite/gdb.base/branch-to-self.c
-48263772c277abd77a7612fe230f24b1  gdb/testsuite/gdb.base/constvars.exp
-938f40410e0c486fa6826b2a13b1d5c9  gdb/testsuite/gdb.base/langs1.f
-21b78b4aceac462c08a8b2c92dc76a0f  gdb/testsuite/gdb.base/watchpoints.exp
-e06d057c7dc066da839bb41bcfd4a786  gdb/testsuite/gdb.base/stap-probe.c
+3f40182f5ba720f983a1fa2a94a60f7b  gdb/testsuite/gdb.base/branch-to-self.c
+8299ed5b75d905be8123291a127c9e07  gdb/testsuite/gdb.base/constvars.exp
+2ab441caf3d1d9f6f6e771296fb0d697  gdb/testsuite/gdb.base/langs1.f
+d182cd2dff2345feb3e364e3cb760957  gdb/testsuite/gdb.base/watchpoints.exp
+eacccee49be69122bda74aaf5426d789  gdb/testsuite/gdb.base/stap-probe.c
 fe5009ce8b19b723e7e6deb3c0ca9a0e  gdb/testsuite/gdb.base/gdb_history
-f215f8b42a203f337ed2798461bc7375  gdb/testsuite/gdb.base/gcore.exp
-8c27273aa365f9eed6f184528f68d918  gdb/testsuite/gdb.base/symbol-without-target_section.c
-0976280eec85a45337375c5aa4f19a76  gdb/testsuite/gdb.base/bitops.exp
-a58a9e6a260e559b45f31db7726fb9a0  gdb/testsuite/gdb.base/gdbindex-stabs-dwarf.c
-e36532caee08f14b82ac5eae56e75ab8  gdb/testsuite/gdb.base/siginfo-infcall.exp
-477f79ee037d7fe107634d4ffd4ac972  gdb/testsuite/gdb.base/execl-update-breakpoints.c
-d2d1069471d700d950188b6f12a68a83  gdb/testsuite/gdb.base/funcargs.exp
+54e3563579a6906275887504832e0847  gdb/testsuite/gdb.base/gcore.exp
+75b198cef5b778a84ef1bfbf14e4809b  gdb/testsuite/gdb.base/readnever.c
+6bcddbdd0fa843802ee9afcbd88bb4f6  gdb/testsuite/gdb.base/list-ambiguous1.c
+622e5be1f47e64787af852e883b07061  gdb/testsuite/gdb.base/symbol-without-target_section.c
+441c26f04ce36b0885bf3402e8bf88cd  gdb/testsuite/gdb.base/bitops.exp
+046629e7404f903fbc8551f5656a1209  gdb/testsuite/gdb.base/list-ambiguous.exp
+66597d3bae2dcbf03212cbc20f8c4251  gdb/testsuite/gdb.base/gdbindex-stabs-dwarf.c
+39c20b11225ed4211e01a06915c7ef9d  gdb/testsuite/gdb.base/siginfo-infcall.exp
+9f306baed82ae55554836a68af5d8c63  gdb/testsuite/gdb.base/execl-update-breakpoints.c
+6b05876c97823f6561de251c31987249  gdb/testsuite/gdb.base/funcargs.exp
 9abbb202693c949e0470656ba553b178  gdb/testsuite/gdb.base/sum.c
-42a4f7b218b55a8860b47c467ef4be0d  gdb/testsuite/gdb.base/new-ui.exp
-d99da2775d00a7634d5095f06b2d9e1a  gdb/testsuite/gdb.base/pr11022.c
+8c39e9033eba9cb1995f4ac247454821  gdb/testsuite/gdb.base/new-ui.exp
+d12203e3f6b4b10ddb732cbfc4e88a5d  gdb/testsuite/gdb.base/pr11022.c
 612e6a39aee238b755c4ef2b41343a67  gdb/testsuite/gdb.base/comp-dir/subdir/dummy.txt
-9624541edff595cb8cf3360e872e3290  gdb/testsuite/gdb.base/step-over-exit.exp
-325ff7206b3a62b749c934aea2944c9a  gdb/testsuite/gdb.base/normal.c
+e5036e055e94036a431e60fdecfb496d  gdb/testsuite/gdb.base/step-over-exit.exp
+c239fff604641c075ffcf4b32838a9ad  gdb/testsuite/gdb.base/normal.c
 0fec50da02e7cd3be0581d9269e8b27b  gdb/testsuite/gdb.base/pc-fp.c
-3474e0bbeb2dee4aa4277d15ead49969  gdb/testsuite/gdb.base/gdb1821.c
-2d520aeb22e3203926a79237369473dd  gdb/testsuite/gdb.base/restore.c
-60210cd9be359c63870e7fde7eafa849  gdb/testsuite/gdb.base/sepsymtab.exp
-fa77a1a3c546c30fbca58adace09ea87  gdb/testsuite/gdb.base/radix.exp
-1d47637788a1481b7dd14b4f829cc2af  gdb/testsuite/gdb.base/interrupt-noterm.c
-12dda11234d87f9d3d56c75e7a1d025f  gdb/testsuite/gdb.base/gdb-sigterm-2.exp
-0643223f03b1a72e23875fc6b9a78a73  gdb/testsuite/gdb.base/break-entry.exp
-aaa3cd3c445b5f4bbb8e3e04d1a52792  gdb/testsuite/gdb.base/step-over-fork.c
+54a2e91af9c8e8aa8b0d4abe30c596ff  gdb/testsuite/gdb.base/gdb1821.c
+fcbe7f580f2c0db803daa0303534b6b9  gdb/testsuite/gdb.base/restore.c
+f2a827abb53fb3654959486e1e604a3f  gdb/testsuite/gdb.base/symbol-alias.c
+4d735d26027475d50396e779e1ad5316  gdb/testsuite/gdb.base/sepsymtab.exp
+f894a7085543148586f5a13bfe40a8eb  gdb/testsuite/gdb.base/radix.exp
+d4eaa9be92175efd9701d26c19cf9d9e  gdb/testsuite/gdb.base/interrupt-noterm.c
+b1622f69f3c1117f9be5c301fd7dbe1b  gdb/testsuite/gdb.base/gdb-sigterm-2.exp
+6a52052f6e9483132edbb5579eb3a38c  gdb/testsuite/gdb.base/break-entry.exp
+0d13ee2e25774ed75713c282e48522a6  gdb/testsuite/gdb.base/step-over-fork.c
 419ed3ef1cdc35f550df83f7dcc77f2f  gdb/testsuite/gdb.base/anon.c
-86feac45b042fbc73f6b2cec15af200c  gdb/testsuite/gdb.base/set-inferior-tty.exp
+0ea31efd1506273506d0189112d685ad  gdb/testsuite/gdb.base/set-inferior-tty.exp
 a77c5f8652a63f6b66afabd7485f475a  gdb/testsuite/gdb.base/foll-fork.c
-c472871cd410a992838baa58100b1f69  gdb/testsuite/gdb.base/argv0-symlink.c
-2fe38ada5c1eed03a2e1258703a1b16a  gdb/testsuite/gdb.base/gcore-relro.exp
-bce959bbd24d3da4d7216928f4c1f27f  gdb/testsuite/gdb.base/gcore-relro-lib.c
-026ed8c640ba20dd92f4f7a9996c4bfb  gdb/testsuite/gdb.base/watch-read.c
-e7462e219dd1daf032bbc0fd3a41fbcf  gdb/testsuite/gdb.base/disasm-optim.c
-2956690d333f513f04ce1c560e79a759  gdb/testsuite/gdb.base/sigstep.c
-02433d8398576229c7e1a205b5fae343  gdb/testsuite/gdb.base/define.exp
-49a5cdad0f49ed4ef1da4ff46fb649df  gdb/testsuite/gdb.base/ptr-typedef.c
-f6797ceaac3473db79bbd84131813661  gdb/testsuite/gdb.base/gcore-relro-main.c
-b57e90e4e485c3a0784932382f1c35f8  gdb/testsuite/gdb.base/start.c
-3cc25be6bd49f23caa9d66c1b6e8ab10  gdb/testsuite/gdb.base/fullpath-expand-func.c
-1bc2978889816cca8fb5472188c16c55  gdb/testsuite/gdb.base/break-always.exp
-6c296a2836c2b66c6d2d4172d2839905  gdb/testsuite/gdb.base/cvexpr.exp
-812cf8d302e660fe6c8d3f7430f16fc0  gdb/testsuite/gdb.base/coredump-filter.exp
-026a8388633c0d007ecc0e01beeb8c1d  gdb/testsuite/gdb.base/source-nofile.gdb
-77a7752553dd4c72b398bb1c8b12b87a  gdb/testsuite/gdb.base/fork-running-state.c
-f6e8c2f408919d67de279910efd5e8a4  gdb/testsuite/gdb.base/gdb1555-main.c
-f23cf493ceffcbd46df064c2d94074a0  gdb/testsuite/gdb.base/pie-execl.exp
-605e55541747c5f79d82290b16efe294  gdb/testsuite/gdb.base/opaque.exp
-2bebc498df5054675a21c96e4bcc7f2a  gdb/testsuite/gdb.base/dup-sect.S
-0ddaca91ec207cc4d965a0b0e736a17d  gdb/testsuite/gdb.base/lineinc.exp
-4d966ea6e8bf5a46307092cff9a60af8  gdb/testsuite/gdb.base/infcall-exec.exp
+377df08b28cb157ad2743cfeb8b1c78c  gdb/testsuite/gdb.base/argv0-symlink.c
+3fc3950e89bfe8f953131d6c421b6a1c  gdb/testsuite/gdb.base/gcore-relro.exp
+56f2f11197cca55874ebbda310e9661d  gdb/testsuite/gdb.base/gcore-relro-lib.c
+2fc0ce21a717a726fc6b4e5de9b682da  gdb/testsuite/gdb.base/watch-read.c
+3d2f0185391512eb43c5e774133d37fc  gdb/testsuite/gdb.base/disasm-optim.c
+0553ec75b946cdd559323ecc43e741b7  gdb/testsuite/gdb.base/sigstep.c
+f628d252ede168fc1e041d078fcd797b  gdb/testsuite/gdb.base/define.exp
+e0bef0feea368c302c3085202d1a00c2  gdb/testsuite/gdb.base/ptr-typedef.c
+15b34ad27eec2a3978e34da49fe53820  gdb/testsuite/gdb.base/gcore-relro-main.c
+b1b598aff94625f6ada3b95d18bd3681  gdb/testsuite/gdb.base/start.c
+793cd276899fc9cc82c413b9433bc540  gdb/testsuite/gdb.base/fullpath-expand-func.c
+e63edef2bc70718ab5517c524db78298  gdb/testsuite/gdb.base/break-always.exp
+202f2a3b26e835f9fa0b705e26ac7759  gdb/testsuite/gdb.base/cvexpr.exp
+c1c565d949980ac94a2ba49c011378d8  gdb/testsuite/gdb.base/coredump-filter.exp
+bb8c7d08b88867eb297cbf528cebfc84  gdb/testsuite/gdb.base/source-nofile.gdb
+ecb7d88da2cfaf5d4c91917a7083ca89  gdb/testsuite/gdb.base/fork-running-state.c
+a803da56f85dd1cf96da5c5a88b7a7de  gdb/testsuite/gdb.base/gdb1555-main.c
+90d1176d29b8e66f819511426e4fe212  gdb/testsuite/gdb.base/pie-execl.exp
+dac64e13291407207000e224951ab29a  gdb/testsuite/gdb.base/opaque.exp
+17d43ea9aeb08902bcc2d36f0b5c82cd  gdb/testsuite/gdb.base/dup-sect.S
+95e4032fec8c1a17226a89468bc1e968  gdb/testsuite/gdb.base/lineinc.exp
+19dd98b1ad0161ca011a679b5b7d9e61  gdb/testsuite/gdb.base/starti.exp
+83f7544b3b0dd8eebc697a1d847f1562  gdb/testsuite/gdb.base/infcall-exec.exp
 2d0d3f1b1029b3b47ec9cb438790fa98  gdb/testsuite/gdb.base/recurse.c
 95c6034d1232aa8f626b5c223ee78549  gdb/testsuite/gdb.base/average.c
-f0dd92a0312156fe683c23cbb588222f  gdb/testsuite/gdb.base/float.exp
-83ae145d7e3f403441862f057c470968  gdb/testsuite/gdb.base/dprintf.exp
-1fe5aa61e7469523967ab297e449ed90  gdb/testsuite/gdb.base/bitfields.exp
-a94365013237e339d83dcd1cf169bc39  gdb/testsuite/gdb.base/pie-execl.c
-3eb9de8dd27fd167c21543808d8eeca6  gdb/testsuite/gdb.base/solib-display-lib.c
-811162fc638d7605b7812c6ddafae984  gdb/testsuite/gdb.base/func-ptrs.exp
-dae8c32aeaf0fd5b17b99764477d3f25  gdb/testsuite/gdb.base/wchar.exp
-5cbffb705fc5ee0bfb301c737fe3c0bb  gdb/testsuite/gdb.base/sigrepeat.exp
-80e86fd40738398decedc07e8e549654  gdb/testsuite/gdb.base/relativedebug.exp
-89b0010c449435618085c1593a1f34d9  gdb/testsuite/gdb.base/bg-execution-repeat.exp
-f679d744d0536c4729459657171c0a1f  gdb/testsuite/gdb.base/moribund-step.exp
-aeee504ccffabdc3cbad450f375b4abe  gdb/testsuite/gdb.base/gdb1821.exp
-b1b23b530e6c5df08ef4709737b71866  gdb/testsuite/gdb.base/infnan.c
-1a79b6de9d0a6f8f4a0fc9d2955cfacf  gdb/testsuite/gdb.base/info-shared.c
-82f570f7eebea8a8d1645c42686116d5  gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp
-6d5f214eabaf35a4807ef824265c6768  gdb/testsuite/gdb.base/structs3.exp
-31d2493ee7f60b7388338bb6e3c4fe48  gdb/testsuite/gdb.base/solib-symbol-main.c
-24aeb3cb4528cc6fe6b24802dce21756  gdb/testsuite/gdb.base/signals.exp
-abb6572e062bb00d6dc54fd72f73a08d  gdb/testsuite/gdb.base/sepdebug.c
-e73b3cd7a4ee959e181a13a1e2b53366  gdb/testsuite/gdb.base/signals-state-child.exp
-6caf16f9cbaa81db68736cad1fa852a2  gdb/testsuite/gdb.base/break-inline.c
-5506f7a752dd401bd0442cb09f595538  gdb/testsuite/gdb.base/solib-symbol.exp
-6ca4ec61ec601b647aa77aa2bc06948f  gdb/testsuite/gdb.base/solib-weak.c
-cfd6300b531c478d71125c64734038c7  gdb/testsuite/gdb.base/varargs.exp
-e458541a916ca63b6eb14617ff6652c3  gdb/testsuite/gdb.base/return-nodebug.c
-4015a7285096cffc5a841a9128615e31  gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.c
-d585beff4eb933a61d65ddb39b1f4834  gdb/testsuite/gdb.base/coredump-filter.c
-a187a59b57a4ad3b754d86d36daacf86  gdb/testsuite/gdb.base/noreturn-return.exp
-6550d28cecae6ad91a50dee950736699  gdb/testsuite/gdb.base/gnu-debugdata.c
-f6d2a4dd904d96e1468a7cf03ddcf906  gdb/testsuite/gdb.base/source-error.gdb
-e079f24c90cb7ab5937cb3c4a39b5f1b  gdb/testsuite/gdb.base/siginfo-obj.c
-d21a36daaf8a482b1fbad6c77435ce46  gdb/testsuite/gdb.base/dup-sect.exp
-0da6ba2f03eaeae085564cd9a67aac2e  gdb/testsuite/gdb.base/dprintf.c
-075c028d470d1001ec39b80a7c58264d  gdb/testsuite/gdb.base/multi-line-starts-subshell.exp
-64a934247da802ca6d2019b091f18234  gdb/testsuite/gdb.base/gcore-buffer-overflow.exp
-731bbde797516ceb2c27b4e987332134  gdb/testsuite/gdb.base/jit-simple.c
-85392f075bcabfc0f75eb6a0623fa2ea  gdb/testsuite/gdb.base/break-interp.exp
-70638aac7bbc1482fe6322e252d8fc29  gdb/testsuite/gdb.base/signest.c
-d54b1a035d56f4aaf17181a3e1967a6c  gdb/testsuite/gdb.base/empty_exe.exp
-f0ed117e9c839a62c295d3fc1568c1a9  gdb/testsuite/gdb.base/catch-load.c
-74da4c6540a7afea8299a27d2b1bc028  gdb/testsuite/gdb.base/call-rt-st.exp
-081028897742b909ffeff73ce60c9e7d  gdb/testsuite/gdb.base/vla-ptr.c
-d16bb234ef93d28423c1535903041411  gdb/testsuite/gdb.base/prelink.exp
-e1849b124e39e5eb418ac5861f221637  gdb/testsuite/gdb.base/skip-solib.exp
-d5358e31aa51812b36b49b4dd0b7e954  gdb/testsuite/gdb.base/step-line.exp
-c7c46c4d56c75822c95e062e3945e692  gdb/testsuite/gdb.base/dprintf-next.exp
-48415c158baddc41feb5c5af3ba2bdbf  gdb/testsuite/gdb.base/break-unload-file.c
+5dae5b91b2f0449912e1bb7b757320bd  gdb/testsuite/gdb.base/long-inferior-output.exp
+8d196466565161a03e84f79798f33f0f  gdb/testsuite/gdb.base/float.exp
+5c337e05e05d5fa3526df016db6ed868  gdb/testsuite/gdb.base/dprintf.exp
+194a2ef33d4c14ed6d64d8492b79e6a9  gdb/testsuite/gdb.base/bitfields.exp
+c94bae732eacc23ed3c2d73bb25cd01b  gdb/testsuite/gdb.base/pie-execl.c
+daa01f5a3a9140b1059d419bf93c768f  gdb/testsuite/gdb.base/solib-display-lib.c
+d449b8a30e78c97511900e0f30264d65  gdb/testsuite/gdb.base/func-ptrs.exp
+e0fbdc6e40c51adf14ac4283b8c95987  gdb/testsuite/gdb.base/wchar.exp
+8a8e380c3084dd392a14dc1922892dcd  gdb/testsuite/gdb.base/sigrepeat.exp
+b7908c4c7fd3f3807f57835afba3e70d  gdb/testsuite/gdb.base/relativedebug.exp
+893c36f844b7e7e8dc281a3f0b4ee960  gdb/testsuite/gdb.base/bg-execution-repeat.exp
+766642ac50842bb64b269f4ba8a9c80c  gdb/testsuite/gdb.base/moribund-step.exp
+e3fc625451d81128086aa736a7bb942e  gdb/testsuite/gdb.base/gdb1821.exp
+373010388336d7dcb3e7ac022fdc2b8f  gdb/testsuite/gdb.base/infnan.c
+0d58cb37f0abaf54722e5fbc8c006e54  gdb/testsuite/gdb.base/info-shared.c
+3c39c77a16b770d0fdb2d8944494adb7  gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp
+ee25639ed0423636dc27afad9f687a0b  gdb/testsuite/gdb.base/structs3.exp
+2fc2f4b7c4a4ab55afa5d25f04e24940  gdb/testsuite/gdb.base/solib-symbol-main.c
+c8cf4abfde2123c781916e293cb7581e  gdb/testsuite/gdb.base/signals.exp
+ab56224406a61be5b7ea570f071dd623  gdb/testsuite/gdb.base/sepdebug.c
+f6feebc1abed4e48d0410785b49426cf  gdb/testsuite/gdb.base/signals-state-child.exp
+97e2fd08c0e79264f4bdaa0d2e6d0df6  gdb/testsuite/gdb.base/break-inline.c
+d4c54fc8145c4c242a19dc2af4957c71  gdb/testsuite/gdb.base/solib-symbol.exp
+2c98912737cc2a8e6571bc4f810103c0  gdb/testsuite/gdb.base/solib-weak.c
+fed717fe4c343240e897a014702fb386  gdb/testsuite/gdb.base/varargs.exp
+2fdee501d795fcb108131c44c8b75b90  gdb/testsuite/gdb.base/return-nodebug.c
+00bb4fe3f117bc138dd821410d1d0815  gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.c
+ab111d692b1b7f1f418c8a425ae8bfe8  gdb/testsuite/gdb.base/coredump-filter.c
+44545781abc057ab81bab672a1d57dba  gdb/testsuite/gdb.base/noreturn-return.exp
+748ef0779da4f08010c9d31c54df8f45  gdb/testsuite/gdb.base/gnu-debugdata.c
+8d3dfd5367429c3cacc008d0e59e6f22  gdb/testsuite/gdb.base/source-error.gdb
+07e8d91e8edb465dde46ede2826b73ff  gdb/testsuite/gdb.base/siginfo-obj.c
+40f35a1e36cddcf68a67be7342cdbc86  gdb/testsuite/gdb.base/dup-sect.exp
+5c0e8f4f4ec9cbbd09f0dd680cce017b  gdb/testsuite/gdb.base/dprintf.c
+29b81900a14bdabeed183bebc27c5212  gdb/testsuite/gdb.base/multi-line-starts-subshell.exp
+284f78241439b58f626ca5ac12426ada  gdb/testsuite/gdb.base/gcore-buffer-overflow.exp
+87fb7eefae86c1a7d1e913ea1f46a9ee  gdb/testsuite/gdb.base/jit-simple.c
+09d5953dfc234d032f762a6b4e40f153  gdb/testsuite/gdb.base/quit-live.exp
+4d043e877f9d5097d88e34e306ff7ac8  gdb/testsuite/gdb.base/break-interp.exp
+b9a08fa7097c4cc391863fd8e37acf25  gdb/testsuite/gdb.base/signest.c
+fd5643f7e1f1cefe53f5401a5d717b19  gdb/testsuite/gdb.base/empty_exe.exp
+2ca6682de4556d3483745305ad66154e  gdb/testsuite/gdb.base/catch-load.c
+e7f13447ca86dec1e40ba7a7bded8537  gdb/testsuite/gdb.base/call-rt-st.exp
+79054bb59626fa0f1acae88fd705a642  gdb/testsuite/gdb.base/vla-ptr.c
+99e149f09f1130487d426eece54a9150  gdb/testsuite/gdb.base/prelink.exp
+bc3cb17c5ed82fd5483e419a89abd155  gdb/testsuite/gdb.base/skip-solib.exp
+47cc844a20a3cba7567888766c4c7162  gdb/testsuite/gdb.base/step-line.exp
+5f0c2f9fdfc8419ffc2ade563a1ff717  gdb/testsuite/gdb.base/dprintf-next.exp
+d7312fdea05faf8785b47bc21248a460  gdb/testsuite/gdb.base/break-unload-file.c
 a27e9c3adf85835fd5ec921e62b1df71  gdb/testsuite/gdb.base/attach.c
-bdff2c20b2e5bb78a9d0ce0edb198c10  gdb/testsuite/gdb.base/nostdlib.c
-17e95bfd18fda92cb845983221750968  gdb/testsuite/gdb.base/hashline2.exp
-65f3f696cb8aec6a5e73aba404e1d649  gdb/testsuite/gdb.base/solib-symbol-lib.c
-75c9c568697e6ae2dfa3619733d870c2  gdb/testsuite/gdb.base/new-ui-echo.exp
-4fa66a4ff26b4c16687576b84d24ec68  gdb/testsuite/gdb.base/foll-vfork.exp
-7d843cfc19d61492dd9d0ecab27bc667  gdb/testsuite/gdb.base/macscp.exp
-edeadaf8609566521f26f1d46c7e7004  gdb/testsuite/gdb.base/multi-forks.c
-b4cb62c5fe3ffab5c6b57948201faaba  gdb/testsuite/gdb.base/all-architectures-1.exp
-63960a9bf0ecf691fd06358b61f5ce5d  gdb/testsuite/gdb.base/prologue.exp
-970f9849ecad238d6939ea7255a70fe4  gdb/testsuite/gdb.base/watchpoint-solib-shr.c
-8aaffee682418a9ff38f368c3bad8fd4  gdb/testsuite/gdb.base/dprintf-pending.c
+2b9b602de7cbf1f3c3a2feb173282563  gdb/testsuite/gdb.base/nostdlib.c
+2985fd40487382a4f1aafbb8802f4eed  gdb/testsuite/gdb.base/hashline2.exp
+28fab1fdd514da6fd333b10756238038  gdb/testsuite/gdb.base/solib-symbol-lib.c
+7745a1ccc2180837e397c4e196c9171a  gdb/testsuite/gdb.base/new-ui-echo.exp
+09161050973797e86199f5dd8bb98f1b  gdb/testsuite/gdb.base/foll-vfork.exp
+94e2be1db32308389ce9c795d36c2bf3  gdb/testsuite/gdb.base/macscp.exp
+da86ea38d13ac3b4ee819f754e68ae6d  gdb/testsuite/gdb.base/multi-forks.c
+635f2ccddb9e687a7104be7b4526d260  gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.c
+73d989f53d62bb63f3b3da2c6f098ca3  gdb/testsuite/gdb.base/all-architectures-1.exp
+a48fe7031236bfd4a2ab7d9ffea023df  gdb/testsuite/gdb.base/prologue.exp
+6a09e020d11da03d827aad7e5552b978  gdb/testsuite/gdb.base/complete-empty.exp
+c6304aac09d602796333499c0384a7b3  gdb/testsuite/gdb.base/watchpoint-solib-shr.c
+a6dea94d571740137e59a86139148dde  gdb/testsuite/gdb.base/dprintf-pending.c
 1ea088b852b87134ad1b9038b0dd2204  gdb/testsuite/gdb.base/store.c
-533796b1540168b15dbaffba425e1b20  gdb/testsuite/gdb.base/disasm-optim.S
-e020033be5522a29023246de65517d9b  gdb/testsuite/gdb.base/symtab-search-order-1.c
-21242a8d4f99a2d2a6e4782719a3613f  gdb/testsuite/gdb.base/longjmp.exp
-496536967387845940e103e98a9267e6  gdb/testsuite/gdb.base/call-signal-resume.exp
-3124506a14804811bee7eaca62d4b34a  gdb/testsuite/gdb.base/solib-overlap.exp
+d69aec5a0086e04ccdef3d35b06d1be6  gdb/testsuite/gdb.base/reggroups.c
+3d4cfc4861cd0d6ba385eb4bd6cfa70c  gdb/testsuite/gdb.base/disasm-optim.S
+ed3a71b613eb18bddf6df9d10d15351d  gdb/testsuite/gdb.base/symtab-search-order-1.c
+9a3b9483e5cdf44ea7361434499f485e  gdb/testsuite/gdb.base/longjmp.exp
+a4730447ab704dfcad144806876e4c3d  gdb/testsuite/gdb.base/call-signal-resume.exp
+59caea6687a933f638bdf1fdd3362ba2  gdb/testsuite/gdb.base/solib-overlap.exp
 b263e085b920ccae2568157fcc33189f  gdb/testsuite/gdb.base/psymtab1.c
-7888eb0df09aeb70589ea862cb8b992e  gdb/testsuite/gdb.base/global-var-nested-by-dso.exp
-431055b19253e8d0d664cc30b993a157  gdb/testsuite/gdb.base/fullpath-expand.c
-7212019f91f242530131adf0a1d4788c  gdb/testsuite/gdb.base/break.exp
-d8c68406f379f25db7fe7e9b6b5935d3  gdb/testsuite/gdb.base/coremaker.c
-b3707580f6f2ca3f9c92f302a29d1351  gdb/testsuite/gdb.base/fortran-sym-case.exp
-a68c75bdca5da49f33e05fbded3ad31b  gdb/testsuite/gdb.base/all-architectures-5.exp
-1df4ae982260147a35fdc3c3ce5f5328  gdb/testsuite/gdb.base/symtab-search-order-shlib-1.c
-818a0927640c9f17206ddd4beac8bdaf  gdb/testsuite/gdb.base/disabled-location.exp
-7443568738d277ac43bc3147b2bb7227  gdb/testsuite/gdb.base/nested-subp1.c
-f4ae8aad55ec52a1eadb1add349ab3fe  gdb/testsuite/gdb.base/jit-solib.c
-2f1be6b92828db4444c795a68b1bab1c  gdb/testsuite/gdb.base/recpar.c
-34a1fb650e525cbd001008a99f995717  gdb/testsuite/gdb.base/execl-update-breakpoints.exp
-1ea467c043ba92254d777e158d881cdc  gdb/testsuite/gdb.base/auto-load.exp
-7eeec7ba5e9ea58389ccf868d6a6a9c1  gdb/testsuite/gdb.base/find.exp
-f4bbbe5cd0515c882f7be20c3521f0dd  gdb/testsuite/gdb.base/catch-signal-siginfo-cond.c
-f51295c9ee8ee2099af83ad1ac515eca  gdb/testsuite/gdb.base/watch-vfork.c
-3dd6caf5c047812789bac40b3de061c3  gdb/testsuite/gdb.base/display.exp
-5cab5354007ea41eb9086b3484258b89  gdb/testsuite/gdb.base/permissions.exp
-039049c6a866705bbecc2e0ceb94cb3b  gdb/testsuite/gdb.base/siginfo-thread.exp
-2b55df3b85067fcab348cdab1a089010  gdb/testsuite/gdb.base/mips_pro.exp
-b08e51ee44377bebfc0cb63c5ce5c6e2  gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp
-5fe4d26f8f37f9897fd6c29592a3aa29  gdb/testsuite/gdb.base/completion.exp
-cb860beb4fbd6c21cffe004e499add6b  gdb/testsuite/gdb.base/batch-preserve-term-settings.exp
-1c9a218bc3d3b486a00ddc863f6d3b84  gdb/testsuite/gdb.base/attach-pie-noexec.exp
-af766ea2b4ee5b8e71be880fc6f134e5  gdb/testsuite/gdb.base/gdbindex-stabs.c
-68be563a0a195baf1e7950d642e0b41d  gdb/testsuite/gdb.base/all-architectures-4.exp
-8ec53af6e6a798cb171ac1554b1342de  gdb/testsuite/gdb.base/func-ptr.exp
+9074dfdeb8c614d63973046bc6b299ce  gdb/testsuite/gdb.base/global-var-nested-by-dso.exp
+066591320c6f44612d0f819117e9ef7f  gdb/testsuite/gdb.base/fullpath-expand.c
+b406032a523a6e5d49076f2c9488ad19  gdb/testsuite/gdb.base/break.exp
+4842ded22c7771020efa44a4261eaff0  gdb/testsuite/gdb.base/coremaker.c
+744f46137175ca567c39a300df37c9f4  gdb/testsuite/gdb.base/fortran-sym-case.exp
+34b860ed9bfdb59006b9cf9c4c2cc7d6  gdb/testsuite/gdb.base/all-architectures-5.exp
+9e56b36d2567c1cd92e9c2b2a265d113  gdb/testsuite/gdb.base/symtab-search-order-shlib-1.c
+1cc1c16d460715b01aeaaf703d7eb12d  gdb/testsuite/gdb.base/disabled-location.exp
+c492284c5c1ae2bc97156875fd3573a4  gdb/testsuite/gdb.base/nested-subp1.c
+ede7ece8460b8101bdb61d1aabd6c8fd  gdb/testsuite/gdb.base/jit-solib.c
+08ac08321a14306ab4e0234fcfa89909  gdb/testsuite/gdb.base/recpar.c
+f27fc387f00661e74ff98cec08a59784  gdb/testsuite/gdb.base/ptype-offsets.cc
+a520d61a33f71f646c7949ee67f636be  gdb/testsuite/gdb.base/execl-update-breakpoints.exp
+b659f78ee654ebb51a02cbfceb871d1f  gdb/testsuite/gdb.base/auto-load.exp
+975a662bb69708e72d5f482c66f4c309  gdb/testsuite/gdb.base/find.exp
+72308f63a6f6d90170bfc3263c98f1ec  gdb/testsuite/gdb.base/catch-signal-siginfo-cond.c
+bb692d3ebf18a6627a5225717d1a03a7  gdb/testsuite/gdb.base/watch-vfork.c
+432502600ccb963e6f4b9c40bbf3d618  gdb/testsuite/gdb.base/display.exp
+f464c3dbfd75bf510907f4ab757b21b3  gdb/testsuite/gdb.base/permissions.exp
+e00019c5fcfa6df744af29f2aa24d9ab  gdb/testsuite/gdb.base/siginfo-thread.exp
+7516a336be5e974dfae9c19355fdd106  gdb/testsuite/gdb.base/mips_pro.exp
+6cb81fdf91010321386861778fd3daf9  gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp
+3f2073e204a4aa22df83ad06f26f792c  gdb/testsuite/gdb.base/completion.exp
+df0eaebcc3eb2a8a6b7560bc15805c14  gdb/testsuite/gdb.base/batch-preserve-term-settings.exp
+8051a7f7f589d88bd6cfff98ed527593  gdb/testsuite/gdb.base/attach-pie-noexec.exp
+2a97c5130a3406a43c7b2abe48b4d5af  gdb/testsuite/gdb.base/gdbindex-stabs.c
+dfa2b0fdea8204284eeb5abcfa275ae0  gdb/testsuite/gdb.base/all-architectures-4.exp
+65c02c7634982b7327e3ade08b9bd0c6  gdb/testsuite/gdb.base/func-ptr.exp
 79696e315e518bcff76ca31d67e55856  gdb/testsuite/gdb.base/remote.c
-cc78be690d47c4cf3b534ed975ad770b  gdb/testsuite/gdb.base/break-probes.c
-205ab8181b1cd27e77dcf992a93e87fe  gdb/testsuite/gdb.base/break-interp-lib.c
-89881ee6c0d9f45ed9f6f446038600fa  gdb/testsuite/gdb.base/fileio.c
-1a2d095b5d27dc9d7a9e243a6e733abe  gdb/testsuite/gdb.base/attach-twice.c
-3f09d1241b2361621df6e52cb6ee3680  gdb/testsuite/gdb.base/enum_cond.c
-9e3f7776acc2f2057fb864cf1cb9663a  gdb/testsuite/gdb.base/line-symtabs.exp
-17d98d7a8ada847dd35d7c4a1ce18d89  gdb/testsuite/gdb.base/unload.c
-88daf20ca8ed7b6be3719d8133591f64  gdb/testsuite/gdb.base/stale-infcall.c
+e7cf6dd2ec7b9c91ea6ee00d6a0640f7  gdb/testsuite/gdb.base/break-probes.c
+73287171c1793e13de213e5f9b3a2d6d  gdb/testsuite/gdb.base/starti.c
+2f744f7cca877fff80094cdc5f57f572  gdb/testsuite/gdb.base/break-interp-lib.c
+0c1576107a61f601774aab1564fb6e6a  gdb/testsuite/gdb.base/fileio.c
+52bc9b2511c756529e1c81ad79bed4f8  gdb/testsuite/gdb.base/attach-twice.c
+883221932febfe0c65ed84486d1b3483  gdb/testsuite/gdb.base/startup-with-shell.exp
+78a8a96496a7cf2b849d0d9f782e6971  gdb/testsuite/gdb.base/enum_cond.c
+35cf96df9bd496b0773fbf36878ae51c  gdb/testsuite/gdb.base/line-symtabs.exp
+c2603a8babf5f4d85bc2e44fbc6d1cc6  gdb/testsuite/gdb.base/unload.c
+e67fa52f942249275cfde0b272fddd80  gdb/testsuite/gdb.base/stale-infcall.c
 49b5960728f7fb97d1d913078cf6c70b  gdb/testsuite/gdb.base/structs2.c
-238ffc878997942434db3bf4760e2555  gdb/testsuite/gdb.base/source-execution.exp
-018a89e6b3b6c84ecb6211294cc5fc42  gdb/testsuite/gdb.base/watchpoint-delete.exp
-8e9b0eefcd027ec66895289980eb5295  gdb/testsuite/gdb.base/set-noassign.exp
-a41a03c3e141e2e26ec5d1df1165c0ea  gdb/testsuite/gdb.base/wrong_frame_bt_full-opaque.c
+2ce117e7e8811a3f273243c361818a21  gdb/testsuite/gdb.base/source-execution.exp
+fa18102249890a7f43d3a09f8d3259a0  gdb/testsuite/gdb.base/watchpoint-delete.exp
+e73cf6eae448f0feccf9a7ad3743de6c  gdb/testsuite/gdb.base/set-noassign.exp
+01a21f71227566e62d366ca2b4eb00bd  gdb/testsuite/gdb.base/wrong_frame_bt_full-opaque.c
 f86ec32b12ddb08ff633b5cdb7ba7054  gdb/testsuite/gdb.base/label.c
-9a30fb2d85e61c1cdaa4ee168a0c2ab2  gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp
-ada302062ab4ae5e0681ab82998906e2  gdb/testsuite/gdb.base/a2-run.exp
-3783152ab7d6dddd9513a8e5ab939c50  gdb/testsuite/gdb.base/morestack.c
-5269bc590815a077fe22dadf5ea30844  gdb/testsuite/gdb.base/signull.c
-c2db9a3f7571fd2f3dc3048a78467574  gdb/testsuite/gdb.base/watch-non-mem.exp
-9728f57e1a5024e6671907e65bcf071b  gdb/testsuite/gdb.base/dbx.exp
-4dadbf57a5ce9ee2b9557e8e84ec47d0  gdb/testsuite/gdb.base/examine-backward.exp
-b26a175fd1be56e7070ddb933fbcb2fa  gdb/testsuite/gdb.base/miscexprs.exp
-28fd5145eae37c610599151b1accdb72  gdb/testsuite/gdb.base/new-ui-pending-input.exp
-9ee45cc416df04e9b4815b2b228b8fdb  gdb/testsuite/gdb.base/annota-input-while-running.exp
-308468fd4de1a1826a47ea6cda4bf4bb  gdb/testsuite/gdb.base/vla-stub-define.c
-ae44c91d2712b4711a7de04aa5ac1b58  gdb/testsuite/gdb.base/hbreak-unmapped.exp
-a4b8f85a94f989f67d8f4afb59f8dc8c  gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp
-77121f0ee799d9caf61e96ccf8856b14  gdb/testsuite/gdb.base/print-file-var-lib1.c
-02ec4da99c44b85577eb747174b88d8b  gdb/testsuite/gdb.base/disabled-location.c
-a895ac47fbfbeeb365e5bb3fe6a63813  gdb/testsuite/gdb.base/pr10179.exp
+d5a8cb98ac9b333a57f5cb15bb0710aa  gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp
+e2dd6d1bb192d4ccec70728be812a572  gdb/testsuite/gdb.base/a2-run.exp
+0b8d472c4e736350ec256adcab7b7c65  gdb/testsuite/gdb.base/morestack.c
+6a3f3af273a7d65fe0e6fc43348ac01d  gdb/testsuite/gdb.base/signull.c
+705e5cfa5cab72ece76291c0978a5629  gdb/testsuite/gdb.base/watch-non-mem.exp
+99a469f57f90734c0bf7324f2ee6829c  gdb/testsuite/gdb.base/dbx.exp
+9fc2357302470a3c58d4edb299b2cb7e  gdb/testsuite/gdb.base/examine-backward.exp
+dda6d25d47b1e4ff32fa7b94715be0aa  gdb/testsuite/gdb.base/miscexprs.exp
+bfcc1cac756ae455d1c5f8e5276561f7  gdb/testsuite/gdb.base/new-ui-pending-input.exp
+542a30b1bb387edc0cb57b3a9b070d10  gdb/testsuite/gdb.base/annota-input-while-running.exp
+5274d86c6b7943d9c6da81e7580647f9  gdb/testsuite/gdb.base/vla-stub-define.c
+1ba5468c1414a6b6e2db4416805f801d  gdb/testsuite/gdb.base/hbreak-unmapped.exp
+cb9a55a30c23dd4a7917d894343fd5f7  gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp
+69136b2033d4f8f327b76bebc586463f  gdb/testsuite/gdb.base/print-file-var-lib1.c
+b7b720bff471deba553e4ee6b2069a8c  gdb/testsuite/gdb.base/disabled-location.c
+3dda9dcc0c8264225af02cafd773074b  gdb/testsuite/gdb.base/pr10179.exp
 17155b728fada832a9acb3d4d25aceec  gdb/testsuite/gdb.base/exprs.c
-1c94fad23d0ebff717eb3b73890ab1ff  gdb/testsuite/gdb.base/gnu_vector.exp
-34afa1e2462b48fca66e56b52456c36f  gdb/testsuite/gdb.base/gdb11530.exp
-212a6bb462a5f8ae1b8912a6a155902b  gdb/testsuite/gdb.base/kill-after-signal.exp
+b2c14206b3ea89fc8389d8f023875091  gdb/testsuite/gdb.base/gnu_vector.exp
+28b9fb96ab42e11f0a91e8f252b9cf79  gdb/testsuite/gdb.base/gdb11530.exp
+ccd7aea61c4e8f3ae8bbe0ed2d39b9ff  gdb/testsuite/gdb.base/kill-after-signal.exp
 2b866eb6e084c3e6e0cf002297b95d85  gdb/testsuite/gdb.base/pr10179-a.c
-a1e0b07c97e9aa86d1069c535136a7a1  gdb/testsuite/gdb.base/line-symtabs.c
-5a8f288afc1d328990386357433514c2  gdb/testsuite/gdb.base/enum_cond.exp
-dfdedd0e9a7109b2d6dea359644429e8  gdb/testsuite/gdb.base/pendshr.c
-6f619865cb4d33103f0031624d566353  gdb/testsuite/gdb.base/exprs.exp
+b38a14b6defd9ac09f5c1aa06e8de7ec  gdb/testsuite/gdb.base/line-symtabs.c
+170a9245e1ed83628b8cdaf92366a323  gdb/testsuite/gdb.base/enum_cond.exp
+91941374cdfb47be955d9e67ab83fbde  gdb/testsuite/gdb.base/pendshr.c
+094448dbf9d9a039f4f747c773ea7c45  gdb/testsuite/gdb.base/exprs.exp
 3b5ff1f729c40d9c4a98118ff08a9e6b  gdb/testsuite/gdb.base/annota1.c
-07ab489abd7e064b04ccbd51e9b1e7e9  gdb/testsuite/gdb.base/sizeof.exp
+b8b0cd1a62c410e7d947231b59b8c74a  gdb/testsuite/gdb.base/sizeof.exp
 4c664aa20a95e6ed9eac3ee8fb8c06d7  gdb/testsuite/gdb.base/gdbvars.c
-81f6eac5f432a788a0ffc8eb0306a4e1  gdb/testsuite/gdb.base/shlib-call.exp
-4bec55c76498b53caf8be79f8a4a4a14  gdb/testsuite/gdb.base/siginfo-obj.exp
+db5f0cfee98d6b00fd4fb7b92a97930a  gdb/testsuite/gdb.base/whatis-ptype-typedefs.exp
+3ce0656db69d3f63c73557847cc3e602  gdb/testsuite/gdb.base/shlib-call.exp
+9928305ee64b9170701fa89300bb1f9e  gdb/testsuite/gdb.base/attach-non-pgrp-leader.c
+082b742fcde351790a011a6d731ae01c  gdb/testsuite/gdb.base/siginfo-obj.exp
 fbbeec2891ea913e85e52602f661a132  gdb/testsuite/gdb.base/bitfields.c
 80fb742c6028f138e4ad580d729b403a  gdb/testsuite/gdb.base/lineinc3.h
-c271c46ebefd8911bad6da899eac246a  gdb/testsuite/gdb.base/fullpath-expand.exp
-ab034348853f9407e9e9195bc153a825  gdb/testsuite/gdb.base/infcall-input.c
-54d35f6690caf23820b4c57ef6c4205c  gdb/testsuite/gdb.base/foll-vfork.c
+a8cc3230b1ba525fd9c9083f4f66e9ad  gdb/testsuite/gdb.base/fullpath-expand.exp
+a4fd486054b8784cbd843e4158e83bc8  gdb/testsuite/gdb.base/ptype-offsets.exp
+3f26924fc251aab63be18694dc7b045b  gdb/testsuite/gdb.base/startup-with-shell.c
+63b498f5a2f3da99e2787b4f251adfd5  gdb/testsuite/gdb.base/infcall-input.c
+4d2978062e3d67a2c6e983bba9c44c36  gdb/testsuite/gdb.base/foll-vfork.c
 d89474265b62f35df0c23a47bf1cc11a  gdb/testsuite/gdb.base/m32r.ld
-7339eeca979713f6b60d5bd09070e8b8  gdb/testsuite/gdb.base/watch-cond.c
-bdfdc204f151711ea70a696f01be4a49  gdb/testsuite/gdb.base/info-fun-solib.c
-8cd0c4e0e075c57f42df2fbe416e11c1  gdb/testsuite/gdb.base/info-fun.c
-12e91ccde8863335ad1a16eead2ff7c4  gdb/testsuite/gdb.base/vla-stub.c
-a1045afb9bf15665a559d243ee549058  gdb/testsuite/gdb.base/nextoverexit.c
-4b842627de8ab423bcc4823796d8f2f5  gdb/testsuite/gdb.base/asmlabel.c
-c57a20b6bb936c3b720a3dfd4f974858  gdb/testsuite/gdb.base/sym-file-loader.c
+309c1919e6ce902b3d59864fb4fa1f55  gdb/testsuite/gdb.base/watch-cond.c
+a513daa21f5280f47dac291d31d3ad42  gdb/testsuite/gdb.base/info-fun-solib.c
+b8e768c72b07aa2def32eb59d8e247eb  gdb/testsuite/gdb.base/info-fun.c
+63d20d3decc0d05e5c8bbd563bda04bb  gdb/testsuite/gdb.base/vla-stub.c
+13c1bd378f13b527f0d68e9481a9972a  gdb/testsuite/gdb.base/nextoverexit.c
+8198ca8600a8a45033b8ec7c6d4ff9f1  gdb/testsuite/gdb.base/asmlabel.c
+70f1eeb3baef458f68c00defce041b86  gdb/testsuite/gdb.base/sym-file-loader.c
 5ba2f3fd778c72a7dbe113e1962b2b6c  gdb/testsuite/gdb.base/langs2.c
-489745655886cb3ef247757fad2be9c4  gdb/testsuite/gdb.base/global-var-nested-by-dso-solib1.c
-49487f7c8f63e0ab7f945a28b092cfb5  gdb/testsuite/gdb.base/included.exp
-8938515810b30885dd5363eb58289146  gdb/testsuite/gdb.base/async-shell.c
-446f75f17865b472593477aafa78e9c9  gdb/testsuite/gdb.base/gdbhistsize-history.exp
+ea2916e458fe3b76606a8b17575faba9  gdb/testsuite/gdb.base/global-var-nested-by-dso-solib1.c
+cbdb1efb952487b68fb7646d431ed042  gdb/testsuite/gdb.base/included.exp
+8c27535a49cec3baabbb649b48ec14fb  gdb/testsuite/gdb.base/async-shell.c
+2b64bd7c2fa79a19e9d1007f04c9153c  gdb/testsuite/gdb.base/gdbhistsize-history.exp
 069f759fe331dff14248a48d8ee66812  gdb/testsuite/gdb.base/ptype.c
 eb1a1ac847358514aaf9455ffd7a30ea  gdb/testsuite/gdb.base/constvars.c
-b5b2f7bc2166e64c8ab06be25a8cef7c  gdb/testsuite/gdb.base/ui-redirect.exp
-eb42dfa6f78cac14c0bfa58988f99772  gdb/testsuite/gdb.base/info-os.c
-67664bd8810313e208de0f90390d3116  gdb/testsuite/gdb.base/code_elim1.c
-f6797ceaac3473db79bbd84131813661  gdb/testsuite/gdb.base/print-symbol-loading-main.c
-250565c9cf6182be41c8e99b423040c8  gdb/testsuite/gdb.base/disasm-end-cu.exp
-9f9ac545ee7a334edefb7ba74cb5a2cf  gdb/testsuite/gdb.base/print-file-var-lib2.c
-b75d820cbd3392054a7d0e0af20524ec  gdb/testsuite/gdb.base/catch-signal.c
-f49a61573a37be91b7e6a3c46602867f  gdb/testsuite/gdb.base/auxv.exp
-d3e2690a94f42ff188317a6a2b5b3910  gdb/testsuite/gdb.base/whatis.c
-773aaec655ed5eec9ac4a56d6c05b9cf  gdb/testsuite/gdb.base/watch-vfork.exp
-fa7f0adefe546e24e615745be128c5ce  gdb/testsuite/gdb.base/noreturn-return.c
+4c9e40b2945390032e08c050579b6368  gdb/testsuite/gdb.base/ui-redirect.exp
+eba32c92fa684d130d4825e4dad0dc27  gdb/testsuite/gdb.base/info-os.c
+c5dcd7a89a50905fc36034440f78f2de  gdb/testsuite/gdb.base/code_elim1.c
+15b34ad27eec2a3978e34da49fe53820  gdb/testsuite/gdb.base/print-symbol-loading-main.c
+57967a09fb806e2f65003d1d0640feff  gdb/testsuite/gdb.base/disasm-end-cu.exp
+347fdabf4694a415307a34fc87a25782  gdb/testsuite/gdb.base/print-file-var-lib2.c
+ebac4cc2cb64c8ace5439a07e5921036  gdb/testsuite/gdb.base/catch-signal.c
+f86ec954f7b47094ae93d353b993acdd  gdb/testsuite/gdb.base/auxv.exp
+5bda1dd133ec6878ddc5c87bf8033edc  gdb/testsuite/gdb.base/whatis.c
+20009d4e0f084fb824d136b7024f7900  gdb/testsuite/gdb.base/watch-vfork.exp
+60ff9e612779de28c159346dd7ae161f  gdb/testsuite/gdb.base/noreturn-return.c
 0b4e499f872cfeaab21e0b173c718ca9  gdb/testsuite/gdb.base/lineinc1.h
-bb1b834a926f103fd332d5c9e7e167a3  gdb/testsuite/gdb.base/dprintf-next.c
+8414a648ef7bdd68c8bd19f4a7f20a11  gdb/testsuite/gdb.base/dprintf-next.c
 e97692b1e8aa59fb622c3636e877c35e  gdb/testsuite/gdb.base/shr1.c
-3d8a906c238d39196c0f6543c18d47cb  gdb/testsuite/gdb.base/step-symless.c
-013d3599dd84acb2aaa71fd825cce093  gdb/testsuite/gdb.base/print-file-var-main.c
+0a5cb63af21f33f657fe4a807446bc1e  gdb/testsuite/gdb.base/step-symless.c
+06569cbbda4ffe9c77dd204c8158360e  gdb/testsuite/gdb.base/print-file-var-main.c
 40ea0b637bee041d22c72ad5ce356d17  gdb/testsuite/gdb.base/attach2.c
-ba4ac9eb51a19f429d6c1301035c480b  gdb/testsuite/gdb.base/solib-search.exp
-e67f1dbb7616e10dbc26ba6b0f2111b5  gdb/testsuite/gdb.base/skip1.c
-698b8a4f8486ff2e402f88351f0aa267  gdb/testsuite/gdb.base/bitfields2.exp
-bce959bbd24d3da4d7216928f4c1f27f  gdb/testsuite/gdb.base/print-symbol-loading-lib.c
-0e2629373cbf00a16b8b91b3fc3171de  gdb/testsuite/gdb.base/logical.exp
-e20953385182f1a2de610b5d6f77750f  gdb/testsuite/gdb.base/watch-cond.exp
-f3bbf9fa66b90c346681c3ee043c3de5  gdb/testsuite/gdb.base/break-interp-main.c
-f7c8e28fcb800acb2ee4a4e9c278f316  gdb/testsuite/gdb.base/randomize.exp
-da49218b65545af54801acecb6c49532  gdb/testsuite/gdb.base/eval-skip.exp
-34fa50e2339b138dbec9dd4f5b1fdcbf  gdb/testsuite/gdb.base/vla-sideeffect.c
+b825839b29325855174000e116bddeca  gdb/testsuite/gdb.base/solib-search.exp
+3bd348e540ed7246cad2c976015dddd6  gdb/testsuite/gdb.base/skip1.c
+cd8776906f37441e233beb9265fbb0d2  gdb/testsuite/gdb.base/bitfields2.exp
+56f2f11197cca55874ebbda310e9661d  gdb/testsuite/gdb.base/print-symbol-loading-lib.c
+45f36137591bad53d8354052ed221536  gdb/testsuite/gdb.base/logical.exp
+697d441021f7be428dc356351d261b0b  gdb/testsuite/gdb.base/watch-cond.exp
+41951454cf6d8029eeb4fdcf8b45a810  gdb/testsuite/gdb.base/break-interp-main.c
+6e337089fec5fd032fedee3edf9ede9b  gdb/testsuite/gdb.base/randomize.exp
+8eff0f0c922904d45e9aaeb4662a9b3e  gdb/testsuite/gdb.base/eval-skip.exp
+d7b9e7db2f1b115c321f2adef29b2c50  gdb/testsuite/gdb.base/vla-sideeffect.c
 a083d8d4881ea947f4ec0a7af80e02e8  gdb/testsuite/gdb.base/return2.c
-444600082e4d2c302487e837c2f44bb9  gdb/testsuite/gdb.base/hook-stop.exp
-8baf212274aa4357ebabe13e42f73e76  gdb/testsuite/gdb.base/gcore-relro-pie.c
-668c48b53b0c9bde103cb240f6481d5b  gdb/testsuite/gdb.base/save-bp.exp
-9430c684555fdefcf501c923ad50331f  gdb/testsuite/gdb.base/siginfo-infcall.c
-35773a75e7181d864cd8929dcd5787d8  gdb/testsuite/gdb.base/anon.exp
-e569de56c90321e1b2dd632806ce2624  gdb/testsuite/gdb.base/gnu_vector.c
-000622d32dcc2c315b357a7d420c9bee  gdb/testsuite/gdb.base/dso2dso.exp
-eb8d644112a537f5e91b0fc3015f178a  gdb/testsuite/gdb.base/nostdlib.exp
-8e241e9b4b08d377035ef1996e546a33  gdb/testsuite/gdb.base/detach.exp
-7a963490f3afa994915ccb02bab05765  gdb/testsuite/gdb.base/return.c
-3599cccbc3d7ea511e55771b149ee1e3  gdb/testsuite/gdb.base/compare-sections.exp
+e040c41144b34c87fe4b70e66679383e  gdb/testsuite/gdb.base/hook-stop.exp
+869936028f426d873aa456aa963531ed  gdb/testsuite/gdb.base/gcore-relro-pie.c
+07abbc1cd78ccf0d7741182f59f02004  gdb/testsuite/gdb.base/save-bp.exp
+6a47df9940e70b379e7e22e631f0a232  gdb/testsuite/gdb.base/siginfo-infcall.c
+8bc5a0431fdc595faa751ef595e0adc3  gdb/testsuite/gdb.base/anon.exp
+a0711ac65a857d83f3e13093afcf8a4a  gdb/testsuite/gdb.base/gnu_vector.c
+ab6afee6e3fc92d678966bc6bd0e4d70  gdb/testsuite/gdb.base/dso2dso.exp
+206b3c2050bf5c3d110374cac2aaa953  gdb/testsuite/gdb.base/nostdlib.exp
+bb8fc0abd7d492ed0c613a0984fc73da  gdb/testsuite/gdb.base/detach.exp
+c42c13f887e0a5bc8abc70f6fca76462  gdb/testsuite/gdb.base/return.c
+739478ddc998f09554c9069ac39ff516  gdb/testsuite/gdb.base/compare-sections.exp
 06a92d148b60fd5c50de17ed658ab73e  gdb/testsuite/gdb.base/shreloc2.c
-53b6025d2f7c636fee4b4bb11c26f43a  gdb/testsuite/gdb.base/hbreak-in-shr-unsupported-shr.c
-d2d2ea662980bb16980ab07d171d48a1  gdb/testsuite/gdb.base/catch-signal-fork.exp
-e3f214cea72e84ad37a8b42186d6524a  gdb/testsuite/gdb.base/step-line.inp
-a1d6e8a0151f66ab2dfc83e8f26f69e1  gdb/testsuite/gdb.base/ldbl_e308.exp
-9f66665796bdb3d18e74b745fbf81d57  gdb/testsuite/gdb.base/nested-addr.exp
-73db4100631cb4a65821f758db616930  gdb/testsuite/gdb.base/fixsection.c
-68722271dcb51c9aa929424311455655  gdb/testsuite/gdb.base/siginfo-thread.c
-8be6784c841eb5d66db1e6639ef55ccc  gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.c
-d4f099732f912951abf77e22a763f95d  gdb/testsuite/gdb.base/structs.exp
+7ce244d9a2a3f312f1b4f8f1772cea46  gdb/testsuite/gdb.base/hbreak-in-shr-unsupported-shr.c
+46f06abe91a21607a1795facadf9dab5  gdb/testsuite/gdb.base/catch-signal-fork.exp
+5c41f9725bb1dceb10670b69ad4f64cf  gdb/testsuite/gdb.base/step-line.inp
+92c01ec0f6e95775c2ccde839a645e4a  gdb/testsuite/gdb.base/ldbl_e308.exp
+c79be5a785cec0c905fe42e6446247fd  gdb/testsuite/gdb.base/nested-addr.exp
+2a082ac9707788eef4b3c936e45c5d85  gdb/testsuite/gdb.base/fixsection.c
+f07290b51379dbcc36ba11a195285389  gdb/testsuite/gdb.base/siginfo-thread.c
+647c2bbc52373473bf37dc224d761f3f  gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.c
+ddb5d94baf4aa709b7a6f6671437d1e3  gdb/testsuite/gdb.base/structs.exp
 e2d1889a1dd2a8a94d9317c1d7a9ecb1  gdb/testsuite/gdb.base/interrupt.c
-7be991b24570d46a463eae2086f60994  gdb/testsuite/gdb.base/stack-checking.exp
-96cbb518f8b2245bc6072a0c902f248f  gdb/testsuite/gdb.base/freebpcmd.c
-46024085461b5d1fee1212ecc12c196a  gdb/testsuite/gdb.base/watchpoint-cond-gone.exp
-7c1c64528e3bacc85876e5c187f7c20b  gdb/testsuite/gdb.base/charset-malloc.c
-8cac3563d6ed03a00bae1c690217d1e8  gdb/testsuite/gdb.base/disasm-optim.exp
-1da1d22e1e8da0de0a190088c23c434a  gdb/testsuite/gdb.base/advance.exp
-a607c78b2382678d435a81425af58b25  gdb/testsuite/gdb.base/stap-probe.exp
-4ee76af9589970e4f7caf41fc48b3895  gdb/testsuite/gdb.base/valgrind-disp-step.c
-378b0df7f6a985620bc7e679311eb06d  gdb/testsuite/gdb.base/finish.exp
-d81dd9ec037cdea469ff659568005710  gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp
-31982d4576f8ad0ef89372cebd5bf7d4  gdb/testsuite/gdb.base/consecutive.exp
-afc1e8bc5c3879994a9af148385f2823  gdb/testsuite/gdb.base/symbol-without-target_section.exp
-13dce83cd1d40d55907b25653221f398  gdb/testsuite/gdb.base/skip.exp
-5d49bc0b7e0cab95debf1430bb3428d4  gdb/testsuite/gdb.base/annota1.exp
-8cdb438082a6a91d5f5f87e8a91a1b49  gdb/testsuite/gdb.base/dcache-line-read-error.c
-eaa28f4c5c467a9a54b577d5f9a291bf  gdb/testsuite/gdb.base/cond-expr.exp
+c27f12510a7a94ebc4cf5772c465dbe9  gdb/testsuite/gdb.base/stack-checking.exp
+5877d7fc9e394d4b3f514f7e4bf33b4b  gdb/testsuite/gdb.base/symbol-alias2.c
+9828b56bb9e273bc35af98aa1c83e854  gdb/testsuite/gdb.base/freebpcmd.c
+cec2219bfbbcd9e363248e87259b830e  gdb/testsuite/gdb.base/watchpoint-cond-gone.exp
+43aa8b51a81f243dc2953819ff7254ed  gdb/testsuite/gdb.base/charset-malloc.c
+6866d2811b6ccddbae4aa9725ed5e2be  gdb/testsuite/gdb.base/disasm-optim.exp
+673b0aca72838674f472b701a77588f6  gdb/testsuite/gdb.base/advance.exp
+42ae1653184a781ffd163dd886cbc1b6  gdb/testsuite/gdb.base/stap-probe.exp
+dfa979acbe1384c0558b2d66b8c1b1a4  gdb/testsuite/gdb.base/valgrind-disp-step.c
+19ee35e53926270f7e139967939168ac  gdb/testsuite/gdb.base/finish.exp
+13f6c60af6ad41c3d6f0983866fa084c  gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp
+0fa06da7c88ec5b57fa138086c0dd686  gdb/testsuite/gdb.base/consecutive.exp
+85b4b0b6924ffc241d4f10e3176b9219  gdb/testsuite/gdb.base/symbol-without-target_section.exp
+1b87a636b513108adfe7f31e3b829940  gdb/testsuite/gdb.base/skip.exp
+1422d1cd727bdc3203d272527ba6550d  gdb/testsuite/gdb.base/annota1.exp
+31c3fbf7520103a82c5f638a509ce7f4  gdb/testsuite/gdb.base/dcache-line-read-error.c
+15af5a38478e79667a42037cff9ce659  gdb/testsuite/gdb.base/cond-expr.exp
 d227cd5acdb0fca7bc3bc43b226fcf96  gdb/testsuite/gdb.base/pi.txt
-9a8299f53862ac06c06965b2c97c8c73  gdb/testsuite/gdb.base/jit-attach-pie.c
-dcf535b98cf0d2c742ad56007766db20  gdb/testsuite/gdb.base/frame-args.c
-b3819f6608f7517d98a3cf47b1c295a4  gdb/testsuite/gdb.base/nextoverexit.exp
+e95d1890434b5c3ba4f9b57e0f748675  gdb/testsuite/gdb.base/jit-attach-pie.c
+04c7a18d4e3409a0c1d290ba35064d8b  gdb/testsuite/gdb.base/frame-args.c
+954b1ce46caf67c10833e8aa42dac33b  gdb/testsuite/gdb.base/nextoverexit.exp
 4ff3418362056aac5f2fd4ab27806fbb  gdb/testsuite/gdb.base/info-macros.c
-1ec503f8285a6da61d7a439ff4cf553e  gdb/testsuite/gdb.base/signals-state-child.c
+a2ca1ac217014413575ac7b402ee3d6c  gdb/testsuite/gdb.base/signals-state-child.c
 fccc00c4f86df8b2422cbc90669f2984  gdb/testsuite/gdb.base/jump.c
-2fc602f21fb1b8f82832077f7d508e7c  gdb/testsuite/gdb.base/long_long.exp
-1e6c22b8a5ab8f53725094099771ea2f  gdb/testsuite/gdb.base/readline-ask.inputrc
-8f8132bf3be4b940f2fd778c48dd78f5  gdb/testsuite/gdb.base/paginate-execution-startup.c
+e9b8be4f5fb35d8751143d960cf41d14  gdb/testsuite/gdb.base/long_long.exp
+8c8e7e70ba07621ccbb4419c0697ff37  gdb/testsuite/gdb.base/readline-ask.inputrc
+dbe16cde5e4fa2dbf419099683e389a7  gdb/testsuite/gdb.base/paginate-execution-startup.c
 f484128bf0e68c27c3fcbf758e60baa5  gdb/testsuite/gdb.base/setvar.c
-c84cd7f72654fb630669dc8ee3a9856c  gdb/testsuite/gdb.base/catch-signal.exp
+52e75e2b103ea5e58c0b0ed828a94d44  gdb/testsuite/gdb.base/catch-signal.exp
 b4fa0e45cf3d0710614ca482c704bb0f  gdb/testsuite/gdb.base/execd-prog.c
-33375a65f96cc16edec76736b4de8f7d  gdb/testsuite/gdb.base/weaklib2.c
-67805f4d9436cb2c2410f3048ac943c2  gdb/testsuite/gdb.base/overlays.exp
-ff06e855428d8e6a84b4ecb50645a7b0  gdb/testsuite/gdb.base/range-stepping.exp
-250449596dd7286169ee29481a1e406e  gdb/testsuite/gdb.base/complex.c
-3c997305e84b3a3a5e7dd03e7788f215  gdb/testsuite/gdb.base/nofield.c
-b81cd1b3ceeb7e6395e19e37154868eb  gdb/testsuite/gdb.base/cursal.exp
-8e690be7d16a1200cba576869ad5e4df  gdb/testsuite/gdb.base/gcore.c
-825e9dd01285112688736e7570fff334  gdb/testsuite/gdb.base/args.exp
-8ac2a8dfbdbf6e0fa13f91f25cb31c1f  gdb/testsuite/gdb.base/sym-file-loader.h
+dd68b1e5dde844487989bd3efc43c9cb  gdb/testsuite/gdb.base/weaklib2.c
+81e18171b99dfb6a5c1b230ebdeb8da8  gdb/testsuite/gdb.base/overlays.exp
+ff0e661fd1f3b9601990770d525ad841  gdb/testsuite/gdb.base/range-stepping.exp
+78776276801e4a79c56bb533aa1e4c9f  gdb/testsuite/gdb.base/complex.c
+ef97ee4287d9e3d34a74287e20aeeb8c  gdb/testsuite/gdb.base/nofield.c
+a3a6224d873627155a02b4dce0564dac  gdb/testsuite/gdb.base/cursal.exp
+3244b027c9f96481213bc96e8170f614  gdb/testsuite/gdb.base/gcore.c
+71afc462af25f2a2eaa5604c381f717f  gdb/testsuite/gdb.base/args.exp
+cd5a8b66cc0eb1b5f4ba793d1804b261  gdb/testsuite/gdb.base/sym-file-loader.h
 6f4837bae4e626ce4566cce03696ae48  gdb/testsuite/gdb.base/reread1.c
-d8e03e65d3f05e80e376c22f2eb1caf3  gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp
-6669e33b0e7beafeb9528fb2df830f62  gdb/testsuite/gdb.base/type-opaque-lib.c
-b946b505047deea50bdf61a1b0e2bb54  gdb/testsuite/gdb.base/quit.exp
+27b9a02c48998c8227908b411b126a02  gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp
+6d129775db5d704c57da4d2371baf46f  gdb/testsuite/gdb.base/type-opaque-lib.c
+338a4a07b1f6294df65eeceeccc0feee  gdb/testsuite/gdb.base/quit.exp
 7370531a02fb52212e3639944b2d4a9d  gdb/testsuite/gdb.base/list0.h
-be704ae1d813e6f5c0a73dd672785fb8  gdb/testsuite/gdb.base/jit-simple-jit.c
-e8afb85bdc1c0657f00f9d8bebd6934b  gdb/testsuite/gdb.base/unwindonsignal.c
-99007b00ed0e5a9b5dd9d1531469bb8a  gdb/testsuite/gdb.base/so-impl-ld.exp
-ff35a59bfb5dcaec54480c296855af59  gdb/testsuite/gdb.base/disasm-optim.h
-edd2488c67eb7936cac1413ddec02381  gdb/testsuite/gdb.base/break-inline.exp
-db091ed0c18e68395c672eda15f56522  gdb/testsuite/gdb.base/dcache-line-read-error.exp
-924f768f27d5da3e5f29c1973c96cbb3  gdb/testsuite/gdb.base/save-bp.c
+65745b5ee56872e20a0b63d4b4cb8f23  gdb/testsuite/gdb.base/jit-simple-jit.c
+78d38092a2844b0dcdf5ae849ffe659e  gdb/testsuite/gdb.base/unwindonsignal.c
+9a7ed8765dde811f914961ba66f86f70  gdb/testsuite/gdb.base/so-impl-ld.exp
+82064bedb225531f9621499147691b85  gdb/testsuite/gdb.base/disasm-optim.h
+397cf55db9e38b1603b8787099e42563  gdb/testsuite/gdb.base/break-inline.exp
+ca6c6c09376fc9c24cdde2b300e97698  gdb/testsuite/gdb.base/dcache-line-read-error.exp
+52d4b7a5e346f8c3fcc68285f1f41438  gdb/testsuite/gdb.base/save-bp.c
 67ceb27bf818d3f6da08eafc5153690d  gdb/testsuite/gdb.base/shr2.c
-113fee89e45ee873a7bb5fc337d1090f  gdb/testsuite/gdb.base/all-architectures-6.exp
-46f61286b94267e62e935bd7f66ed20c  gdb/testsuite/gdb.base/sigrepeat.c
-e331873df201b502fca9dc0a11ffa67d  gdb/testsuite/gdb.base/auto-connect-native-target.exp
-e1b75212c1873904e1234d98d17bb25e  gdb/testsuite/gdb.base/set-inferior-tty.c
-1d75523c7814816e6e611deedd43b743  gdb/testsuite/gdb.base/examine-backward.c
-5ee5266d4e52432e42b97594feb0d284  gdb/testsuite/gdb.base/code-expr.exp
-ca15fee3fddd2b47d04f71e4322f05ac  gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp
-01d6aeec90e613f2ed668d55821f2b20  gdb/testsuite/gdb.base/foll-exec.c
-1d74be4aa1951bbf1a70d6f0b20e65ab  gdb/testsuite/gdb.base/catch-signal-fork.c
-bbe499519e862e6ef0d365cf8f75374c  gdb/testsuite/gdb.base/attach.exp
-66ec74fb1521752c9c32a8e29cfa1f4e  gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c
+1dd902e962d7617a40cf28c6f6d96fb0  gdb/testsuite/gdb.base/all-architectures-6.exp
+239a1620e1b2711845328ede6bb6dc52  gdb/testsuite/gdb.base/sigrepeat.c
+b7611ac92c25130fe02f82de0a65e3fc  gdb/testsuite/gdb.base/auto-connect-native-target.exp
+f9f78f36b7cfdac79e877e9ce0c0a014  gdb/testsuite/gdb.base/set-inferior-tty.c
+47735a1adbc9f42b016aaf9fe0eeda77  gdb/testsuite/gdb.base/examine-backward.c
+aeb5a8626e805e4f8de0bc544e5b4968  gdb/testsuite/gdb.base/code-expr.exp
+c6194771189db0dd06c71dd121f73e31  gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp
+e033fd78e86d98ac92050d4e40486028  gdb/testsuite/gdb.base/foll-exec.c
+d02d02bbf9d4510562ecbf63dd855ee0  gdb/testsuite/gdb.base/catch-signal-fork.c
+dd7c69d58512dea6718c1e45e70e70ce  gdb/testsuite/gdb.base/attach.exp
+b7277ce358f735b9788fec3898e1b4a8  gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c
 875a150f7fd4db096ea08b9acd105dae  gdb/testsuite/gdb.base/baz.c
-acbf7c1269615178eef072f7d5bda33a  gdb/testsuite/gdb.base/comprdebug.exp
-7233a2df5ea2f3c6ca9c8c938d44e1d2  gdb/testsuite/gdb.base/infoline.exp
-f8801d037ef79965e2b4af7eac33423b  gdb/testsuite/gdb.base/call-ar-st.exp
-cb3d868b1a9bdfb73fe6cd7d5eca4feb  gdb/testsuite/gdb.base/foll-fork.exp
-bb50108f592db34ec4108baba0e4e490  gdb/testsuite/gdb.base/siginfo-addr.c
-c275490d3c9c48c18fbc73f7370c994e  gdb/testsuite/gdb.base/dso2dso-dso2.h
-4982cdc8ba3d93208bf8963bf2528b34  gdb/testsuite/gdb.base/infcall-exec.c
-7bfe170ae461c7a31457c6f0b3315cf5  gdb/testsuite/gdb.base/new-ui-pending-input.c
-c709084a907530b4889bbc15c1d081bc  gdb/testsuite/gdb.base/info-shared-solib2.c
-f1699ee02b4313b08a157738ca3af431  gdb/testsuite/gdb.base/async-shell.exp
-6b4d2123a6150a8350bb0989eecfeac2  gdb/testsuite/gdb.base/ctxobj-f.c
-9077c85d611d92c60d3e8961af0b262f  gdb/testsuite/gdb.base/gdb1250.exp
-f5a71571bd62acf4249851cc763e4c56  gdb/testsuite/gdb.base/source-dir.exp
-b2186e2ad84badd91c93d8ec837bea28  gdb/testsuite/gdb.base/return.exp
+9c2fd0ee279ee128db04af79a39490a8  gdb/testsuite/gdb.base/comprdebug.exp
+418ad854be04150da229c23e44e5ea03  gdb/testsuite/gdb.base/infoline.exp
+b242c5c3253e31618cb4ea186428275b  gdb/testsuite/gdb.base/call-ar-st.exp
+cf2c61a36e2633e33855a0c4d359a4be  gdb/testsuite/gdb.base/foll-fork.exp
+0adec2f3ade1a14d612d1e300c3276e5  gdb/testsuite/gdb.base/siginfo-addr.c
+336f22501d13334f7959759ebe873804  gdb/testsuite/gdb.base/dso2dso-dso2.h
+7062b6ef47e03e10116313a97b1b1971  gdb/testsuite/gdb.base/infcall-exec.c
+97d5140e927d425d130ff626ec998d18  gdb/testsuite/gdb.base/new-ui-pending-input.c
+95a224726a88959ab6b34cb85c7227f4  gdb/testsuite/gdb.base/info-program.exp
+645a66083b9a96454a6a29f0f81078c0  gdb/testsuite/gdb.base/info-shared-solib2.c
+f5e6371229530507661c1b19f72f926a  gdb/testsuite/gdb.base/async-shell.exp
+be0769afa1a25ef678eb6652a7135471  gdb/testsuite/gdb.base/ctxobj-f.c
+485afa072521c4cc5af40b33bd877282  gdb/testsuite/gdb.base/gdb1250.exp
+d6c282bca0b1319548d7063060c2d979  gdb/testsuite/gdb.base/source-dir.exp
+bf2af701699c2c9749bf0c76192ef24a  gdb/testsuite/gdb.base/return.exp
 7ea18a24d9d28cbcb1f4c5fe6442697a  gdb/testsuite/gdb.base/macscp1.c
-58b268feda0438db4046e1f5cc4115a7  gdb/testsuite/gdb.base/solib-search-lib1.c
-3b09de14d2fd0d09bb868ec5efd720e3  gdb/testsuite/gdb.base/gdb11531.exp
-51666589832c774c5bcad63fc126a8f8  gdb/testsuite/gdb.base/sym-file-lib.c
-ab16fcf8a6276ea91bfed6de6cba224b  gdb/testsuite/gdb.base/solib-search.h
+78628803d11fec0d62c8ccb8987cd7b0  gdb/testsuite/gdb.base/solib-search-lib1.c
+401aa59e9b09033fa6fdf6e038256f36  gdb/testsuite/gdb.base/gdb11531.exp
+99f69704b817d5ec53d00596b0671025  gdb/testsuite/gdb.base/sym-file-lib.c
+ba7e3a18c9f742f657778d4ae8e82e05  gdb/testsuite/gdb.base/solib-search.h
 1f1baf9250883f5a0b7c0c35dfc8324b  gdb/testsuite/gdb.base/opaque0.c
-b680867d38e90a30a204357ad9f02ba8  gdb/testsuite/gdb.base/step-over-no-symbols.exp
-1f3875e1b059e23ccad48e702819c5a3  gdb/testsuite/gdb.base/wchar.c
-27dcf6e0c3338df80346f69d2868731a  gdb/testsuite/gdb.base/info-os.exp
-a8ed9f0f7ca5adb8d957deec6f7f90d0  gdb/testsuite/gdb.base/bp-permanent.c
+026ed59fd64225483d59bda05aed6ed5  gdb/testsuite/gdb.base/step-over-no-symbols.exp
+6db9b95ee0dbc353bc77165086da53bc  gdb/testsuite/gdb.base/wchar.c
+23a3b0761c4fa5348d3b52f58c79a843  gdb/testsuite/gdb.base/info-os.exp
+dae2f708bcf9fe52fd1e2de78e3ac1da  gdb/testsuite/gdb.base/bp-permanent.c
 9f1eb24c5e6c855fe3d75d75abc46aa1  gdb/testsuite/gdb.base/advance.c
-0fd0f2cbc0d1dae3ff7453cfabe46e1d  gdb/testsuite/gdb.base/testenv.c
-ae81bb03c59f8381e9dda4141f2c77ea  gdb/testsuite/gdb.base/step-bt.exp
-c25a93f72e7d30a6efeb1c2f7f7358fb  gdb/testsuite/gdb.base/eu-strip-infcall.c
-68df581c062d41fc08bf82955747fc39  gdb/testsuite/gdb.base/bp-permanent.exp
-01786811ab0bc728132b3fbecf3236f8  gdb/testsuite/gdb.base/whatis.exp
-b8dc2d53f7f2b4824dec503c9cf0fa87  gdb/testsuite/gdb.base/stack-checking.c
-137c3921e12c88788cccd1d71b127ecf  gdb/testsuite/gdb.base/vla-stub.exp
-9e8d02163cfaebc86bba19be2d7ace94  gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp
-3e0218578ca49f6fb16501808b25f3db  gdb/testsuite/gdb.base/psymtab.exp
-dba7c08ad272f19bffa226cfbe090955  gdb/testsuite/gdb.base/until.exp
-0fb13720f88623924a76dc21691acb2e  gdb/testsuite/gdb.base/prologue-include.exp
-496d9d9e7ea33368326622d621e00031  gdb/testsuite/gdb.base/term.exp
-8164cd1388d283c212330e5eef354aa6  gdb/testsuite/gdb.base/callexit.exp
+ec658acbf0ecd0c2b8a88251cf47838e  gdb/testsuite/gdb.base/testenv.c
+2cf208878558d60d6d9d26d6f5c9842a  gdb/testsuite/gdb.base/step-bt.exp
+fb6e5ff8dc2043bf6cfd0407d5db3aa3  gdb/testsuite/gdb.base/eu-strip-infcall.c
+799cbaa2e6242d0f63a23727222ba352  gdb/testsuite/gdb.base/bp-permanent.exp
+17527e49b803d742c9ffc810b147d742  gdb/testsuite/gdb.base/whatis.exp
+6e8eff05d965ec8b8b75b3011c5b925d  gdb/testsuite/gdb.base/stack-checking.c
+a703638723abd3369a444c51fbd928a9  gdb/testsuite/gdb.base/vla-stub.exp
+b082cf674f2793832976cc451dcc7b50  gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp
+6e6ad79ffa1c7cac0af8fc3e08723307  gdb/testsuite/gdb.base/psymtab.exp
+d7a727dcb51b288756c2a44f08650ea2  gdb/testsuite/gdb.base/until.exp
+d0410f26e7fe065900e6b4c926d0b20c  gdb/testsuite/gdb.base/prologue-include.exp
+5d2c94c74018c3f86e3b691c67424641  gdb/testsuite/gdb.base/term.exp
+85a5b82b5c18f60c456638224463ada6  gdb/testsuite/gdb.base/callexit.exp
 cc19ee1eb79fe010ad5bab989640c407  gdb/testsuite/gdb.base/overlays.c
-980308c11d4dd485f96db2feb832afb1  gdb/testsuite/gdb.base/foll-vfork-exit.c
-018c45fb3edc00881bb7e91aa8277fd4  gdb/testsuite/gdb.base/memattr.c
-a1d532fe7b410f3de81d67ed42bf8989  gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.c
-6cc3867c4a23a04c0d6af6c88054134a  gdb/testsuite/gdb.base/sepsymtab.c
-a99b44b5b69b7c844fdd10ec0d047324  gdb/testsuite/gdb.base/expand-psymtabs.exp
-14ce6304cfd6c3ce83e204168c968b75  gdb/testsuite/gdb.base/restore.exp
-f6acff6aa1b3229d2ecf9a145c2d31fe  gdb/testsuite/gdb.base/enumval.exp
+5a4ab3b4cbdadb45cadc77e1051559c4  gdb/testsuite/gdb.base/foll-vfork-exit.c
+28aeb070c375b502bb63e7934a4d197b  gdb/testsuite/gdb.base/memattr.c
+32bd9605a21a12f85c7902efabd88167  gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.c
+6197ffdcac3d4f754c232c2f278e1242  gdb/testsuite/gdb.base/sepsymtab.c
+ee2d5930e3b8c55f21662670cb161d32  gdb/testsuite/gdb.base/expand-psymtabs.exp
+ae588be25d0b2867164f6696c5faec78  gdb/testsuite/gdb.base/restore.exp
+35f3fcb136cc915a2d2104293d7ca159  gdb/testsuite/gdb.base/enumval.exp
 2a4aa59203d24147b833015285f9e825  gdb/testsuite/gdb.base/opaque1.c
-5bd93c356d52769f31504278f1ac2abd  gdb/testsuite/gdb.base/linespecs.exp
-f0a8d0e18253013719d020f84244e098  gdb/testsuite/gdb.base/signull.exp
+39392fca40c2de2cce98b013cd21ebe2  gdb/testsuite/gdb.base/linespecs.exp
+86e14cbc2c35fa490f3fa4a44215d657  gdb/testsuite/gdb.base/signull.exp
 3b5ff1f729c40d9c4a98118ff08a9e6b  gdb/testsuite/gdb.base/annota3.c
-892aea48ee3d89a5a33b679df40d7e56  gdb/testsuite/gdb.base/break-main-file-remove-fail.c
-4563d28588a4bacd4af2d41c3aae26a9  gdb/testsuite/gdb.base/killed-outside.exp
-5d2127d6c09c42e88fd13260a446e1d4  gdb/testsuite/gdb.base/infoline.c
+1f062686379eda5bf827958a15fbb371  gdb/testsuite/gdb.base/break-main-file-remove-fail.c
+e86e2d403040af5d3af1a5a653ecef8f  gdb/testsuite/gdb.base/killed-outside.exp
+5ab641c9c009e8db64dbccd749135d2e  gdb/testsuite/gdb.base/infoline.c
 f6a96ae4d88de9220856194dacc8c9c8  gdb/testsuite/gdb.base/lineinc2.h
-d4475b67dbdca199450e99b91bc81704  gdb/testsuite/gdb.base/prologue-include.c
-cb32816d134b6928159baab226d488c6  gdb/testsuite/gdb.base/asmlabel.exp
-b1e5e859e766bc64e9353352d6f63a1a  gdb/testsuite/gdb.base/command-line-input.exp
-745f2cf25e403a92deedcba3749126cf  gdb/testsuite/gdb.base/gdb1090.exp
-ff9b6d28163f17cd9e54dc49cdc180d9  gdb/testsuite/boards/local-remote-host.exp
-ae4963ee99dad28dc0ef25f627671e6d  gdb/testsuite/boards/fission.exp
-39b167341f1bff7fbb6a48e2de808470  gdb/testsuite/boards/local-remote-host-notty.exp
-e2789e782d5c62f9fd3c405234920ac9  gdb/testsuite/boards/stabs.exp
-f8d92cc49159a31409ac5712ca7b117d  gdb/testsuite/boards/local-remote-host-native.exp
-6d8441f672b16b1db95ab898f0ab6501  gdb/testsuite/boards/remote-stdio-gdbserver.exp
-5ddf0407fcde2d5a3848b353976c748a  gdb/testsuite/boards/native-stdio-gdbserver.exp
-7e03ea74a751ca4b85f6f476f7b6c7e1  gdb/testsuite/boards/native-extended-gdbserver.exp
-81c3269cd0cfe0ea87abe868a7a9b3a1  gdb/testsuite/boards/remote-gdbserver-on-localhost.exp
-aa86d0d9a33367564ebea0378e3fb348  gdb/testsuite/boards/fission-dwp.exp
-07c07e6196f36ece0f0699c31713bf92  gdb/testsuite/boards/native-gdbserver.exp
-24ddea6516a2d67fb7fe1c284ffd713a  gdb/testsuite/boards/gdbserver-base.exp
-a64bdcf530926f8095b2919bbd5203f1  gdb/testsuite/boards/dwarf4-gdb-index.exp
-8b620b4b0918f1159fcfcc8ce18d1ff7  gdb/testsuite/boards/cc-with-tweaks.exp
-fb8a53c138407430d488fcd1f1b7ae8d  gdb/testsuite/gdb.multi/hello.c
-05e78e4e1760f30e96cea24ac4794c8d  gdb/testsuite/gdb.multi/multi-arch-exec.c
-84a1bdb8d8e2abdcc97ec18bd0a0644f  gdb/testsuite/gdb.multi/tids.exp
-08750f92f8f52555e24a0c08c20efdb1  gdb/testsuite/gdb.multi/bkpt-multi-exec.exp
-717c14d71a30e282d85383db092ea79f  gdb/testsuite/gdb.multi/tids.c
-b9614dfb1e2d54216240d6378750e8e2  gdb/testsuite/gdb.multi/goodbye.c
-d39673886c596facdf2af68c3a8bd228  gdb/testsuite/gdb.multi/watchpoint-multi.exp
-9bed93144bff2963a01fda12a7b2dcc4  gdb/testsuite/gdb.multi/base.exp
-5d6080fbce8c6cfbe3a76926750c9d33  gdb/testsuite/gdb.multi/multi-attach.c
-182586548dae9b2ce1dad875a301a6c0  gdb/testsuite/gdb.multi/watchpoint-multi-exit.c
-ed768a2479df1e265ddeff767451c2d4  gdb/testsuite/gdb.multi/multi-attach.exp
-51414aa61d920dba5812b5f88d2be163  gdb/testsuite/gdb.multi/info-threads.exp
+24da257cc1b230188e5acbc100e031ca  gdb/testsuite/gdb.base/prologue-include.c
+7a8321d71d671a18fe1bd571c609a9ef  gdb/testsuite/gdb.base/asmlabel.exp
+7326a32d65636b20a1250606414d1aa3  gdb/testsuite/gdb.base/command-line-input.exp
+ce0e60204a8929a9e8ce25342c107cb7  gdb/testsuite/gdb.base/gdb1090.exp
+6448e46ca9ae31421b5d71f2f6dae599  gdb/testsuite/boards/stdio-gdbserver-base.exp
+d3b5ca4e8c14946853382d7fdf9ffeb0  gdb/testsuite/boards/local-remote-host.exp
+117429bdfb3feaa4e2cc1bd5cb55d1ca  gdb/testsuite/boards/fission.exp
+53e434473423db05763521854642223f  gdb/testsuite/boards/local-remote-host-notty.exp
+c66c24938be9f5131e522dc94badb256  gdb/testsuite/boards/stabs.exp
+54ce993341933a4c961943df8ccdc056  gdb/testsuite/boards/local-remote-host-native.exp
+48badc551ce1148da0784809772d611a  gdb/testsuite/boards/local-board.exp
+0ad97a8eadbd49961426897f0cb507f3  gdb/testsuite/boards/remote-stdio-gdbserver.exp
+875527a314bd9d260874e9b8e79f131e  gdb/testsuite/boards/native-stdio-gdbserver.exp
+4857606ae2ec7a405b99462710b6dfe7  gdb/testsuite/boards/native-extended-gdbserver.exp
+d0e05dc564d81aaf93ccb0d40630ba2d  gdb/testsuite/boards/remote-gdbserver-on-localhost.exp
+3bb3c6266e9d6b9bce29d9f5c37e88b7  gdb/testsuite/boards/fission-dwp.exp
+235845a71b7130b164b9c6390bbb3832  gdb/testsuite/boards/native-gdbserver.exp
+dfc277b769e22a11db590798d586e2ac  gdb/testsuite/boards/gdbserver-base.exp
+c105fcf021a984d9307a2ca0478f3457  gdb/testsuite/boards/dwarf4-gdb-index.exp
+48194daebd78a38eccef23a5ffaf3e3a  gdb/testsuite/boards/cc-with-tweaks.exp
+89f33ecf641985ae13b2ba360b567511  gdb/testsuite/gdb.multi/hello.c
+79636d12a4a4648c5803211fbabf1107  gdb/testsuite/gdb.multi/multi-arch-exec.c
+f502f481c2104bb42978848a7c9e1233  gdb/testsuite/gdb.multi/tids.exp
+9986b3a8c397519bb3cb9496935a7824  gdb/testsuite/gdb.multi/bkpt-multi-exec.exp
+69192c1c3846d182b531ebe228cfa6e3  gdb/testsuite/gdb.multi/tids.c
+a94355f511ccb6c7894958925346585e  gdb/testsuite/gdb.multi/goodbye.c
+583f6dc7c3fdf246e39c785a061b3bb5  gdb/testsuite/gdb.multi/watchpoint-multi.exp
+744e6e57c365b25881c62b7d73365d3b  gdb/testsuite/gdb.multi/base.exp
+7e2f7e92fc01657e87e03337fee02b7e  gdb/testsuite/gdb.multi/multi-attach.c
+2450ef481370cff61fadb8794df15a7f  gdb/testsuite/gdb.multi/watchpoint-multi-exit.c
+b28080869ef9d47262666fe2f20099dc  gdb/testsuite/gdb.multi/multi-attach.exp
+353c3702b725d5f698ff8b2b6f488fe3  gdb/testsuite/gdb.multi/info-threads.exp
 a678541a68147b25bf4358c1946e5675  gdb/testsuite/gdb.multi/crashme.c
-57076bfce811db82c6191e7cc5a732fc  gdb/testsuite/gdb.multi/hangout.c
-e17423e854dd68784d1aa3a9f4e310a9  gdb/testsuite/gdb.multi/watchpoint-multi.c
-86c681012afad8f1712a34d84c40c7fc  gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp
+4da7cb262630188b13ed54418c27023d  gdb/testsuite/gdb.multi/hangout.c
+1550a606005782815c0d2fece8773bc4  gdb/testsuite/gdb.multi/watchpoint-multi.c
+4deac248b36e1cfce2f089b7826a323a  gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp
 2e8a7b8dd61d723cb22a5c0a921a90c5  gdb/testsuite/gdb.multi/bkpt-multi-exec.c
-d3436828de5ddd7e9d25f4675fe3804f  gdb/testsuite/gdb.multi/remove-inferiors.exp
-105a2a693172e03b98dc867339817ab0  gdb/testsuite/gdb.multi/remove-inferiors.c
-233ff20f2d34f2e83e776d36afba4289  gdb/testsuite/gdb.multi/dummy-frame-restore.exp
-daca91f19cad7d6fd897eb27859b6f7b  gdb/testsuite/gdb.multi/multi-arch.exp
-662c4b2e907d27ab9eb0ebe1ec22d728  gdb/testsuite/gdb.multi/dummy-frame-restore.c
-7b62bf0175a2ffa8d485d2a7477fbdf6  gdb/testsuite/gdb.multi/multi-arch-exec.exp
-0202da1c81e25c2d76e677ebfe18b3f6  gdb/testsuite/gdb.stabs/exclfwd.h
+73c6e208758104d0abdff162648d6eea  gdb/testsuite/gdb.multi/remove-inferiors.exp
+7386b9e34ddb84e71f35cea54a40602a  gdb/testsuite/gdb.multi/remove-inferiors.c
+a178aa68a653fa311a95309065c9effd  gdb/testsuite/gdb.multi/dummy-frame-restore.exp
+a59e2d64ffd61648402b31c1de06ab5e  gdb/testsuite/gdb.multi/multi-arch.exp
+556d00241086d9c757110b83c82e95df  gdb/testsuite/gdb.multi/dummy-frame-restore.c
+9fd077d68d678a779251d11679afc2ce  gdb/testsuite/gdb.multi/multi-arch-exec.exp
+3952c6951322e32c3ce5e2e64b0d1e30  gdb/testsuite/gdb.stabs/exclfwd.h
 4a87d0041963c650cbec0bdd23141931  gdb/testsuite/gdb.stabs/aout.sed
 ef0a0ca194e090e3a942606488625f47  gdb/testsuite/gdb.stabs/xcoff.sed
-9010f721e8cc8f1c84d77a274213c273  gdb/testsuite/gdb.stabs/exclfwd1.c
-022c155259e520b1d9869e3c0a46ed57  gdb/testsuite/gdb.stabs/gdb11479.exp
-b837a609a9dd750f94c8761d22a6930c  gdb/testsuite/gdb.stabs/exclfwd.exp
-2d6e9a4a6eed676eae49fbeff25c697f  gdb/testsuite/gdb.stabs/weird.exp
+b31f119a0da29829e39514c0238e1a9b  gdb/testsuite/gdb.stabs/exclfwd1.c
+cb4d8f65b2d57e76f4f483913ed55e1f  gdb/testsuite/gdb.stabs/gdb11479.exp
+b7a45103bb41ef9a2344b5f9cedfea1d  gdb/testsuite/gdb.stabs/exclfwd.exp
+466b68e012cd7325246440551d5800af  gdb/testsuite/gdb.stabs/weird.exp
 24cd51afd4311a96fd7256d1ebd3a4b1  gdb/testsuite/gdb.stabs/weird.def
 16ebc6e814bd3628cce9049f530a0990  gdb/testsuite/gdb.stabs/hppa.sed
 6fb5c366d78fe2c47f31555c035ddcb3  gdb/testsuite/gdb.stabs/ecoff.sed
-272029271ca7325aa60cb05e9bfbc8df  gdb/testsuite/gdb.stabs/exclfwd2.c
-65d542e2bcede8e861f88ce88451ce85  gdb/testsuite/gdb.stabs/gdb11479.c
-270c8313b95e5bc5793d3429aab27a28  gdb/testsuite/gdb.fortran/derived-type-function.exp
-d88af62165c147a92e8c1c33e75e68bd  gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
-70c15fdb88af3518ffa1c4dc0ee5c930  gdb/testsuite/gdb.fortran/vla-value-sub.exp
-2011f957d122e5132de3aa0ded252c20  gdb/testsuite/gdb.fortran/derived-type.exp
-b8b1d9efae267d68780c77933bd3539a  gdb/testsuite/gdb.fortran/common-block.exp
-d01dcfe9edd2d39b2a445f8553df36c5  gdb/testsuite/gdb.fortran/vla-datatypes.exp
-51cd4aee915bd726b8a96d32a970385d  gdb/testsuite/gdb.fortran/vla-value.exp
-1c64e986cf90de0558a03415ef650f41  gdb/testsuite/gdb.fortran/vla-type.f90
-a43fd4b5dc596dfb15005f90c7db6c7e  gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
-028084b378e515e060449e7b30a0fa99  gdb/testsuite/gdb.fortran/nested-funcs.f90
-2ce9110d1052fea295176c635f0b7c78  gdb/testsuite/gdb.fortran/derived-type.f90
-11653d06cd51bfa9d15e591145c65a10  gdb/testsuite/gdb.fortran/vla.f90
-77ace6f9de5c4a0b5527dfc7b22b0465  gdb/testsuite/gdb.fortran/array-element.f
-06a9a9ba0a4d58efd67fff81e2ac7897  gdb/testsuite/gdb.fortran/complex.exp
-fedfacbbbf31e3afe49e5cde809f171f  gdb/testsuite/gdb.fortran/subarray.exp
-42bd6726c42eab37f61c690b86290e99  gdb/testsuite/gdb.fortran/print-formatted.exp
-9c7d004786471982b35e53e70e44cb87  gdb/testsuite/gdb.fortran/subarray.f
-164c2b9fcf40a5b621fb7f8c176652ae  gdb/testsuite/gdb.fortran/charset.exp
-ba4c43c8515972d581ea056ca2eddda7  gdb/testsuite/gdb.fortran/logical.f90
-c634fde8c4db66d4020e796cbebc1e7c  gdb/testsuite/gdb.fortran/multi-dim.f90
-46dc37e0455fe3c89dc654c444ea1fbb  gdb/testsuite/gdb.fortran/print-formatted.f90
-2b9075b1a4d983b6708d33e24375895b  gdb/testsuite/gdb.fortran/library-module.exp
-9ef27d8b39cc3f01a3d4fdf4f4ab9d78  gdb/testsuite/gdb.fortran/array-element.exp
-8ddc1595d5f525799e36d75dc961c220  gdb/testsuite/gdb.fortran/module.exp
-617881873e644f9686a8ec25b1944bea  gdb/testsuite/gdb.fortran/vla-history.exp
-df29b38cfcd81203ba1db60b9bca7e9f  gdb/testsuite/gdb.fortran/vla-sizeof.exp
-4d0a477f7604fea157541dc9f354c752  gdb/testsuite/gdb.fortran/vla-datatypes.f90
-88501a5c3c319b895934b731b50546f1  gdb/testsuite/gdb.fortran/library-module-lib.f90
+99956285c3be0e17ef947a7c24ba62ae  gdb/testsuite/gdb.stabs/exclfwd2.c
+ff6c26bc163c0de335b244f698ae9c8c  gdb/testsuite/gdb.stabs/gdb11479.c
+266c8e5d7fc424a4338a0718f6638d9d  gdb/testsuite/gdb.fortran/derived-type-function.exp
+2f154a7949579b2f290a401e5e792d81  gdb/testsuite/gdb.fortran/printing-types.f90
+85c3c8c43cc07a692948ea6224c53b94  gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
+988b257ad09817873b84289983b7695d  gdb/testsuite/gdb.fortran/vla-value-sub.exp
+e73ac8cb227d652796144e82a2c4449f  gdb/testsuite/gdb.fortran/derived-type.exp
+04d732327ff6e95035ef8a069b253a96  gdb/testsuite/gdb.fortran/common-block.exp
+68dab10b9c0c2f060012e337a8861a03  gdb/testsuite/gdb.fortran/vla-datatypes.exp
+06ed96a0ccbf7fadce62bace7ad31359  gdb/testsuite/gdb.fortran/vla-value.exp
+909b76c587b61e00a75f07751fe84555  gdb/testsuite/gdb.fortran/vla-type.f90
+f7c65eec8bb30197b27a4005bcfabfd5  gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
+5995903e723f0d21bca105ecf3a87389  gdb/testsuite/gdb.fortran/nested-funcs.f90
+e3e69b664f50bec980af7b4224b77f0a  gdb/testsuite/gdb.fortran/derived-type.f90
+1cd10ed5d5278eea7b6b9a35abf74ad0  gdb/testsuite/gdb.fortran/ptr-indentation.f90
+39434a5f0d44dbee539e5a10f1805f52  gdb/testsuite/gdb.fortran/vla.f90
+7982c6e976aee1bc660c4a93213fcd53  gdb/testsuite/gdb.fortran/array-element.f
+05b8a0174904199abe2e2151a000241b  gdb/testsuite/gdb.fortran/complex.exp
+df144e1d8c23619e982f30b6219372dd  gdb/testsuite/gdb.fortran/subarray.exp
+e878d7f712835997dfc9ae70b169c18f  gdb/testsuite/gdb.fortran/print-formatted.exp
+bcc3730556043bf58b8fec3a70ea9fd2  gdb/testsuite/gdb.fortran/subarray.f
+6fd95bac36471e611455fc7345ea22d1  gdb/testsuite/gdb.fortran/charset.exp
+2de14fd44cc0d2994b5bb14c1001db53  gdb/testsuite/gdb.fortran/logical.f90
+2b12b9094c8203a351d9621c18aa7cf1  gdb/testsuite/gdb.fortran/multi-dim.f90
+ecafcc2752e8636a17afddbed42a5086  gdb/testsuite/gdb.fortran/print-formatted.f90
+df033593c1661e2f723d3e03de492004  gdb/testsuite/gdb.fortran/library-module.exp
+5ee199dfc3cd43b09a51c9f23dda04b1  gdb/testsuite/gdb.fortran/array-element.exp
+055c85a17f74699b03e4b52d15bb2996  gdb/testsuite/gdb.fortran/module.exp
+f24a8d90a679994e982b737b784b89e5  gdb/testsuite/gdb.fortran/vla-history.exp
+e3dec448ae09321e637c78d687fbc004  gdb/testsuite/gdb.fortran/vla-sizeof.exp
+13cf43fbff68721afa852bc9c39a4903  gdb/testsuite/gdb.fortran/vla-datatypes.f90
+5dfe0de120e05fbe76e96da17b26ad21  gdb/testsuite/gdb.fortran/library-module-lib.f90
 95708d64a7ce14d26ec039f9ec0af921  gdb/testsuite/gdb.fortran/charset.f90
-0fa2bdcd517032c714b427719da70daa  gdb/testsuite/gdb.fortran/types.exp
-410f9865783c770a355acd1f30470c2b  gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
-74843249ecdca1886b2abb5c12391a95  gdb/testsuite/gdb.fortran/whatis_type.exp
-a82a31d3bcfe1767762cd0ecf7656259  gdb/testsuite/gdb.fortran/vla-type.exp
-8d9622b83949bf44b017df3e961d6437  gdb/testsuite/gdb.fortran/derived-type-function.f90
-148f777cda5edf2b3f1a0f3994bf1b87  gdb/testsuite/gdb.fortran/vla-sub.f90
-4420dbcbed2997ca1d8adfcb8f685aee  gdb/testsuite/gdb.fortran/common-block.f90
-ac06d83223392e656c0e162e707bfa52  gdb/testsuite/gdb.fortran/exprs.exp
-b4ef1b7e56dd7a395cbc0469e2e4cac5  gdb/testsuite/gdb.fortran/vla-ptype.exp
-d583aabdd32257bb3786cc7500d97570  gdb/testsuite/gdb.fortran/vla-ptr-info.exp
-a965e1807ece7d1052c22f9cdffed292  gdb/testsuite/gdb.fortran/multi-dim.exp
-5e95acb10c416a135939aab9b2af410a  gdb/testsuite/gdb.fortran/logical.exp
-689459bbb389d7421219c54d866e823a  gdb/testsuite/gdb.fortran/nested-funcs.exp
-5ad2defbf7ec1d6bb8a163e17351d4c7  gdb/testsuite/gdb.fortran/type.f90
-7c872a8b12f3e983e913db56a3912d66  gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
-9ff3c05f402195115f8a36efdd4ee578  gdb/testsuite/gdb.fortran/module.f90
-ca7139fef86be2f675651b318314ea0a  gdb/testsuite/gdb.fortran/library-module-main.f90
-bfdfc11acb441a80ec35378944c00544  gdb/testsuite/gdb.fortran/complex.f
-1bf9a1311d3f1928778e897f519ddf88  gdb/testsuite/analyze-racy-logs.py
-35219ebb4198f083425199b048f3a9c4  gdb/testsuite/gdb.btrace/vdso.exp
-7b1a79a299d0c8c4bf0511d67c94ae6f  gdb/testsuite/gdb.btrace/data.exp
-37f613bb4a44d5200298fd327849b17f  gdb/testsuite/gdb.btrace/segv.exp
-8d99381c7b1e3e5914123bd75d719178  gdb/testsuite/gdb.btrace/step.exp
-c67076cb5812254ddb29ef9a14c30ab0  gdb/testsuite/gdb.btrace/reconnect.exp
-e42aa30f3b053536145c74fa5f04f382  gdb/testsuite/gdb.btrace/instruction_history.c
-c2ddbdddf13135c9b755faa8a63f33ee  gdb/testsuite/gdb.btrace/x86_64-tailcall.S
-669f438adb4bae4b447f1990e73f8de5  gdb/testsuite/gdb.btrace/dlopen-dso.c
-72cf5f73b1d8c523d613fca6efa55ad0  gdb/testsuite/gdb.btrace/dlopen.c
-941e1445ead4d3de1e3bd71945178960  gdb/testsuite/gdb.btrace/unknown_functions.c
-5796a826fb261a31cebb6ecdd7d30990  gdb/testsuite/gdb.btrace/tailcall-only.c
-9fdd65035c873d597ea3d9e4610e99b5  gdb/testsuite/gdb.btrace/i686-record_goto.S
-e17db7f4dfd4df3fb5597b92a8eda719  gdb/testsuite/gdb.btrace/tsx.exp
-d817eed6559faad723ca8966dbd46b4d  gdb/testsuite/gdb.btrace/rn-dl-bind.exp
-d09ee909ff6cb28916603850b98f6d73  gdb/testsuite/gdb.btrace/record_goto.c
-2a66df7d39c13e6a11907f44527d9f9b  gdb/testsuite/gdb.btrace/unknown_functions.exp
-f0ed0888720f9846a30e16c556a8548f  gdb/testsuite/gdb.btrace/stepi.exp
-360fb2a9aac2339f1860400127882e0b  gdb/testsuite/gdb.btrace/non-stop.exp
-0dd28a1c7fbad887d3afb38c195d7b1f  gdb/testsuite/gdb.btrace/multi-thread-step.c
-eae0fba0fd7d0a698b266a74de02f115  gdb/testsuite/gdb.btrace/tsx.c
-6d3f0c7724ee5d9c094150e05f10d23f  gdb/testsuite/gdb.btrace/exception.cc
-8b34fe35f3f0e2b7d6b0fd4475579322  gdb/testsuite/gdb.btrace/enable-running.c
-4571f6de4ff0e4e6ccebc4fb6765cbef  gdb/testsuite/gdb.btrace/instruction_history.exp
-23ae89f543ae127ddd4110a841766e28  gdb/testsuite/gdb.btrace/segv.c
-e347a4613d4ec712f47319ba8ebc8b3c  gdb/testsuite/gdb.btrace/nohist.exp
-0012f4cefb0b689876987d42158d0b6c  gdb/testsuite/gdb.btrace/record_goto-step.exp
-9e7d07f5cf01ffbebfe3fd7ef7213433  gdb/testsuite/gdb.btrace/x86_64-tailcall-only.S
-1e296dbcfd99a7f5545398dc14fd5029  gdb/testsuite/gdb.btrace/tailcall.c
-84a0c15e36db18e01f1c7d89cfac6d0e  gdb/testsuite/gdb.btrace/data.c
-0a33e596af5920c16e0a49738979a023  gdb/testsuite/gdb.btrace/enable.c
-f1cc25249259bf4f27777894f0ba3a75  gdb/testsuite/gdb.btrace/gcore.exp
-2b5502a6f077a05168c805d11958a489  gdb/testsuite/gdb.btrace/enable.exp
-7f6fe83bc5b0427f8d148cd66d0b0330  gdb/testsuite/gdb.btrace/reconnect.c
-bdaa639e665bcff876fb3da77c506460  gdb/testsuite/gdb.btrace/multi-thread-step.exp
-236220a6fdf993a9c269edf9d6f2716d  gdb/testsuite/gdb.btrace/exception.exp
-93a6374d9d6bb2ab555f3fd9b7a8839c  gdb/testsuite/gdb.btrace/i686-tailcall.S
-e0b2f22eb6c03d927a5be9d926e421dd  gdb/testsuite/gdb.btrace/non-stop.c
-b4edd9cc5da07c77f8ec595474491694  gdb/testsuite/gdb.btrace/function_call_history.c
-1c23862995b3068eec634dbb2c0ffb4f  gdb/testsuite/gdb.btrace/enable-running.exp
-9dc508b4a8caf2979710f32610cd730c  gdb/testsuite/gdb.btrace/tailcall.exp
-670eedd8042a4507d2fb65e3886d3fb9  gdb/testsuite/gdb.btrace/buffer-size.exp
-44f719429ad27b29406da6694b2ac187  gdb/testsuite/gdb.btrace/function_call_history.exp
-9f3d94877134c251daa77a335c3dc4b9  gdb/testsuite/gdb.btrace/instruction_history.S
-232cb3ef57f49e939c19d102d6b68b45  gdb/testsuite/gdb.btrace/vdso.c
-2ea5d51513fa6e8f9225d001527e7195  gdb/testsuite/gdb.btrace/x86_64-record_goto.S
-2a50c0b8ffd9d6dd7fb5b3e9e293b491  gdb/testsuite/gdb.btrace/tailcall-only.exp
-e4c74c79c2d9d481277a9a32f7672398  gdb/testsuite/gdb.btrace/rn-dl-bind.c
-3109da167c580e2f7bd7a39545072dd3  gdb/testsuite/gdb.btrace/i686-tailcall-only.S
-cbed63e133cb16827c321ef407a9ceef  gdb/testsuite/gdb.btrace/x86-tsx.S
-bdef23aa4541bdd2b83198c8919adcdf  gdb/testsuite/gdb.btrace/record_goto.exp
-caa37cdf13cd866209b522cc5a85d512  gdb/testsuite/gdb.btrace/dlopen.exp
-8aa841594d7c1d7b4f4c26fb8d9b7243  gdb/testsuite/gdb.btrace/delta.exp
-b346ecc325106338818a251b7db79b53  gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.exp
-e2a5a70b9c95e768bdf27eaa50705615  gdb/testsuite/gdb.dwarf2/trace-crash.exp
-5bc0901881a66122ef30797fb0ac637c  gdb/testsuite/gdb.dwarf2/dw2-ranges.exp
-f365be31a87f502d0b2e31b032826fe5  gdb/testsuite/gdb.dwarf2/dw2-const.S
-b454556939d00fed24a47353dab229ff  gdb/testsuite/gdb.dwarf2/corrupt.exp
-77f88523f5ad8507531b887007003a2e  gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.exp
-9e43b11b30dc64aa0319bdd193e00abe  gdb/testsuite/gdb.dwarf2/dw2-op-call.exp
-f0a59f064b35152a724fb261ff0395e8  gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.S
-ec877d59369c858045157b03678e404d  gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.S
-8cf31b792707ba1965690df708e732c3  gdb/testsuite/gdb.dwarf2/fission-mix.exp
-f10fc628983a9412ff74b8675124df90  gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.S
+66779c4e31565769e5ea0658de2675f5  gdb/testsuite/gdb.fortran/types.exp
+56f50ae351d4c904ea06d1784316e402  gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
+340c954663e5eb442459908fef950219  gdb/testsuite/gdb.fortran/printing-types.exp
+be55ae1cb655353b3f79c1f9bc7ea0dc  gdb/testsuite/gdb.fortran/whatis_type.exp
+550c1906b97238ae91174a759b0c43f0  gdb/testsuite/gdb.fortran/vla-type.exp
+8997062e2de284297f7698e2de5d85e5  gdb/testsuite/gdb.fortran/derived-type-function.f90
+0bd87967c9c0700b425b291cc10e2100  gdb/testsuite/gdb.fortran/vla-sub.f90
+05cc6842bfc3cad92158df8bc479731b  gdb/testsuite/gdb.fortran/common-block.f90
+9d6f4b769f01f13493156868683c0250  gdb/testsuite/gdb.fortran/exprs.exp
+c4c394b936da71aaa674e3f15182da63  gdb/testsuite/gdb.fortran/vla-ptype.exp
+9d62722e0fde05f1442acc1099f864c0  gdb/testsuite/gdb.fortran/vla-ptr-info.exp
+637b04c8e0990be553eff4790536faeb  gdb/testsuite/gdb.fortran/multi-dim.exp
+af8050f696ed466fa158e6dfcdd69d99  gdb/testsuite/gdb.fortran/logical.exp
+8af85c87d814d037f894ec9096d17f94  gdb/testsuite/gdb.fortran/nested-funcs.exp
+e5cd00cfae11dfea1fbfb74fb39f227f  gdb/testsuite/gdb.fortran/type.f90
+0598d21d88a7816afece17750b7727cf  gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
+5dd740d204bfdb020e81d9d756db4713  gdb/testsuite/gdb.fortran/module.f90
+f43cacdeaeb3fc4d2157cd26bf68d634  gdb/testsuite/gdb.fortran/library-module-main.f90
+d9f7f332f70a26633d3dfbd2c033b364  gdb/testsuite/gdb.fortran/ptr-indentation.exp
+7113aaa0eec211adec8bf3f46482a3c6  gdb/testsuite/gdb.fortran/complex.f
+28d1396a6d1c1ba319bc995d81011b28  gdb/testsuite/analyze-racy-logs.py
+e98ace6b257d4d4f3c31198ed981a8d9  gdb/testsuite/gdb.btrace/vdso.exp
+f68b38ebab7cc4099c231416cd40803e  gdb/testsuite/gdb.btrace/data.exp
+43595f47cd36a0c4791dec8cd405dec3  gdb/testsuite/gdb.btrace/segv.exp
+594bfc972c40819341a249755d56b8b6  gdb/testsuite/gdb.btrace/step.exp
+9a9519acd290256ef1f401c2c6572c21  gdb/testsuite/gdb.btrace/reconnect.exp
+e6feca30221655b84a4baad91881bf8d  gdb/testsuite/gdb.btrace/instruction_history.c
+efba027d51222f79c0ddc950f83f3bc1  gdb/testsuite/gdb.btrace/x86_64-tailcall.S
+46a23c8cb79f86e83c5198b1a9784b16  gdb/testsuite/gdb.btrace/dlopen-dso.c
+01561e84b288f78a8ebf62d98f184754  gdb/testsuite/gdb.btrace/dlopen.c
+ae13a2beea253d8676f44e21da3ed87e  gdb/testsuite/gdb.btrace/unknown_functions.c
+9b8f76a06b88900ef300445891f9891c  gdb/testsuite/gdb.btrace/tailcall-only.c
+d23fcddcf1e668f45b9e0de2bb449097  gdb/testsuite/gdb.btrace/i686-record_goto.S
+3dd072ee99ff94277ca9989eec1946b7  gdb/testsuite/gdb.btrace/tsx.exp
+7ab5e580b2049ecf42c383b3d5201e6c  gdb/testsuite/gdb.btrace/rn-dl-bind.exp
+fbbd7e6f03ecb28a3edf294bb2c01896  gdb/testsuite/gdb.btrace/record_goto.c
+cb99a959258e9bc9cbca8e12677500fd  gdb/testsuite/gdb.btrace/unknown_functions.exp
+e03bf766a38e37b8ad5225264e4f2e6f  gdb/testsuite/gdb.btrace/stepi.exp
+1fe39cb61f41a0f963005901381dff38  gdb/testsuite/gdb.btrace/non-stop.exp
+def686c08dcbedc025e8b1d3dee907fc  gdb/testsuite/gdb.btrace/multi-thread-step.c
+2cf715390ba7744097d36b64b6980325  gdb/testsuite/gdb.btrace/tsx.c
+09f92c136a449d1d14460d27b962c331  gdb/testsuite/gdb.btrace/exception.cc
+96383edf195e242e964fe057cc837bc0  gdb/testsuite/gdb.btrace/enable-running.c
+ca7197072aee620a49bb6e3dc38574eb  gdb/testsuite/gdb.btrace/instruction_history.exp
+79ae8058ca11dd3e0dce0a3618dc6e70  gdb/testsuite/gdb.btrace/segv.c
+c3291e68db0dcd66ac56e8c8317c413b  gdb/testsuite/gdb.btrace/nohist.exp
+72ce481b122b29655a193d24603b18e0  gdb/testsuite/gdb.btrace/record_goto-step.exp
+b9b3c3f93b723cf0e1adbd2cf5a86a91  gdb/testsuite/gdb.btrace/x86_64-tailcall-only.S
+c1544459e0d9e811712a4ca8d5416b55  gdb/testsuite/gdb.btrace/tailcall.c
+655a43c7cd29b715f7f7eed082c5cd17  gdb/testsuite/gdb.btrace/data.c
+ea7f0c54dad81e0455f1884a86b8b94d  gdb/testsuite/gdb.btrace/enable.c
+b5cf7a2cced0d248402d571236a65793  gdb/testsuite/gdb.btrace/gcore.exp
+dd998b0c72a434ddafa2a6416abc2185  gdb/testsuite/gdb.btrace/enable.exp
+0ad2247ee4a744a6ba0f746a2254668c  gdb/testsuite/gdb.btrace/reconnect.c
+4858d8df0af4a1552750394154c6341d  gdb/testsuite/gdb.btrace/multi-thread-step.exp
+e12ebea72725671dd86cc6d377b865fc  gdb/testsuite/gdb.btrace/exception.exp
+951512f2db52ce5dcf3037f7914e0196  gdb/testsuite/gdb.btrace/i686-tailcall.S
+782474cb385113d329e76b55bf7b379e  gdb/testsuite/gdb.btrace/non-stop.c
+50de5bd9ee14962e5025a268f8f5e091  gdb/testsuite/gdb.btrace/function_call_history.c
+09734c4fc8a1502de5b3ab44281a690d  gdb/testsuite/gdb.btrace/enable-running.exp
+405bf752b0d70052db9c69ba567834b0  gdb/testsuite/gdb.btrace/tailcall.exp
+0adb40032adfd9d359fb5b4add742205  gdb/testsuite/gdb.btrace/buffer-size.exp
+a623eeb1c1d36f117f4e6c2cedc50c41  gdb/testsuite/gdb.btrace/function_call_history.exp
+e490f8506535a043dff7caf936ebb532  gdb/testsuite/gdb.btrace/instruction_history.S
+1b0530abeb26e261e8ce679ead85b3ef  gdb/testsuite/gdb.btrace/vdso.c
+e58af65b62421b0de7a58601907322ca  gdb/testsuite/gdb.btrace/x86_64-record_goto.S
+d66a80accafbdb912a3eb7105d038735  gdb/testsuite/gdb.btrace/tailcall-only.exp
+72198579d0fd5428b6d73d2abb4cadc7  gdb/testsuite/gdb.btrace/rn-dl-bind.c
+3f4b2ce2bc981b3a05fec06f4e4bf648  gdb/testsuite/gdb.btrace/i686-tailcall-only.S
+25fcc71477a6d50eb936bb1317448dea  gdb/testsuite/gdb.btrace/x86-tsx.S
+df00845bc8382d282878810eda090e93  gdb/testsuite/gdb.btrace/record_goto.exp
+d13dba3f9e2019a2418cb539647db145  gdb/testsuite/gdb.btrace/dlopen.exp
+9725d78b4ef8e774ebb583e143330ceb  gdb/testsuite/gdb.btrace/delta.exp
+e2cc5d5e50ff73f1780f1d0e3a3e7f71  gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.exp
+7f69ab7ba1b4ba08f329bb7f4ce1a127  gdb/testsuite/gdb.dwarf2/trace-crash.exp
+6a9db96510ceea93dc20c546524dc997  gdb/testsuite/gdb.dwarf2/dw2-ranges.exp
+99760d2d4de8741bbd872488d8e3c7e3  gdb/testsuite/gdb.dwarf2/dw2-const.S
+72534b1331c47466ab90f16d9fbff46e  gdb/testsuite/gdb.dwarf2/corrupt.exp
+b933189b68085938b526f2a8f560f678  gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.exp
+31d9422e92185820bd1b0cd9e8211529  gdb/testsuite/gdb.dwarf2/dw2-op-call.exp
+47b92ceb711012126a2a96a08d41ca35  gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.S
+de3d52ded2936dfc90db9926a0c068ef  gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.S
+1b280d21ab68cf2a7e1a919e13e10c9e  gdb/testsuite/gdb.dwarf2/fission-mix.exp
+8d9efe51da22e38cf65aa2be2338f00b  gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.S
 4029fe7d12928695058cad252eb8ff56  gdb/testsuite/gdb.dwarf2/trace-crash.S
-00a761e9674f2162d0ef9394e02b286b  gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.S
-45d8af094657da2c2b9798c44042e827  gdb/testsuite/gdb.dwarf2/dw2-common-block.exp
-26ef81937007e9f22e49494ec53f034c  gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.exp
-fdcfa82e12fb28a308dc11c8bd6918bf  gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp
-df1a7480b098f8d7b9f079fb6798c0c7  gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.exp
-be85089805d502182fb9d21bcb78670e  gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.c
-d2ea815a1ec648c15481dedd2dd3d0f8  gdb/testsuite/gdb.dwarf2/subrange.exp
-ef84879e80a423f6ed44d9ff3bbf1935  gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp
-6dacdea0db01128bf5e10c6ac9cb0133  gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp
-cbd175671f1bcaac9beb9842e560e6f7  gdb/testsuite/gdb.dwarf2/fission-base.exp
-c8ea14b7e5de5336193e95125bbc6762  gdb/testsuite/gdb.dwarf2/opaque-type-lookup.c
-14a2f31c1436ef79169e276b736ed558  gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.exp
-fc5e95f62bf092310b139a6794a8ba1b  gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp
-8b8eb70f48cb4cef27d113eb4da4492a  gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp
-98c95f2342b35e7b2202a9aec199f217  gdb/testsuite/gdb.dwarf2/arr-stride.exp
+ec89dbb56b44aacc10c24d46fbe333fd  gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.S
+9ff8b0e007c6ad03dcde209c382d9299  gdb/testsuite/gdb.dwarf2/dw2-common-block.exp
+c08392fe9ed82b2f0eaa9fd52173a37d  gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.exp
+0c1fd4796e79860d17c57f1c103eb6a1  gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp
+a874090c90a1324edbe79a8856d7dd75  gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.exp
+a7fe003698f15f14716e5fd4a1fcce91  gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.c
+0148c7e8683b1982c76ff2ab6910ff15  gdb/testsuite/gdb.dwarf2/subrange.exp
+cbeeb5c532b20d56b26765b1b090118d  gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp
+28bc6dcb44c5c13dcdf92b0cd9872ad1  gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp
+c1a92ab30acd370d01b36e8dae4e6454  gdb/testsuite/gdb.dwarf2/fission-base.exp
+f88183c00acb310b8f5386c7f460e65d  gdb/testsuite/gdb.dwarf2/opaque-type-lookup.c
+d004798752ecf75bf16901604e39778f  gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.exp
+29737a00e3a57809cc0be6973d16f3e5  gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp
+224ca4efaac2de0d960869edb7ccfcac  gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp
+a6c8f306e67f5c1c53ea96e21c01d7e7  gdb/testsuite/gdb.dwarf2/arr-stride.exp
 54b8a6b0ff52958ee33024c56b9bd2bd  gdb/testsuite/gdb.dwarf2/file1.txt
-cbafbb48898cd146a73834fed0b46c71  gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp
-33a5cc06c91ccda65fe7ef01b725d927  gdb/testsuite/gdb.dwarf2/dw2-error.S
-c17e857fede51670fba3d72d49686ba1  gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.exp
-a105d24b6048a1570b7214c04622abd7  gdb/testsuite/gdb.dwarf2/dw2-inheritance.S
-36a0f6060be974c6784b15c8d23861bd  gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp
-9d66dce79d4a41a3b56ac37cadf5558b  gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.c
-d29d246c4886b1ceb2eb478b914934ee  gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp
-6caedcf44bda9ac48bf4d86286d7cec5  gdb/testsuite/gdb.dwarf2/pr13961.S
-d92577c71544b1f3611d7dba0d864d64  gdb/testsuite/gdb.dwarf2/atomic.c
-1b92ac6a41c2bb03167583c006595a31  gdb/testsuite/gdb.dwarf2/dw2-ranges-base.c
-c4260e433b68199bd6dea9c9d313338f  gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.S
-0dbaf3801dda9ef325ed1daa6a073056  gdb/testsuite/gdb.dwarf2/pieces-optimized-out.exp
-87be0a047d546c9b95800575cb703d80  gdb/testsuite/gdb.dwarf2/dw2-inheritance.exp
-03dc5a74004bbad67dd5616db2c3f69e  gdb/testsuite/gdb.dwarf2/valop.S
-6fc22ca8d554beed657d7918aac7f119  gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c
-896352425deb8bfdb7f872fd2ebb35dc  gdb/testsuite/gdb.dwarf2/dw2-ranges2.c
-13e16820e61aba06c0b47291496a8ae5  gdb/testsuite/gdb.dwarf2/dw2-compressed.exp
-12502d038d044f269e39ca698e28c59b  gdb/testsuite/gdb.dwarf2/dup-psym.exp
-10be39ea0bc7aae601499d231e17ed1e  gdb/testsuite/gdb.dwarf2/callframecfa.S
-8ab5182c88c8b95dd4eafa1092015835  gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp
-5352ecfc52c5c958946e9fd99279b24b  gdb/testsuite/gdb.dwarf2/dw2-filename.S
-e7608bac7adf8f3a00eb61238bb7fa0d  gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.S
-11e787622b89ec43358a05a37489c7e9  gdb/testsuite/gdb.dwarf2/dw4-sig-types.exp
-38efe5591c5863832b2cb1f242538d45  gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp
-ae8475782809784ce36fb62c2f447c02  gdb/testsuite/gdb.dwarf2/implptr.c
-4b86f5e6a451c0465174dedd4a04e927  gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp
-449d9b811516ace66e518280fe2e5ccd  gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp
-c1de316130fc70fa3baa5f992f952a33  gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S
-91e96b7afa89c248310975485eecff6f  gdb/testsuite/gdb.dwarf2/fission-loclists.S
-082cb9077a1f4d87190f8ca3227c6354  gdb/testsuite/gdb.dwarf2/implref-array.exp
-06f4356742d48d29bf487e010b479d34  gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp
-f72510e2d91d5bcc807b962e2452a139  gdb/testsuite/gdb.dwarf2/formdata16.exp
-b4b6dc881249a46bc7963f481f0863d7  gdb/testsuite/gdb.dwarf2/symtab-producer.exp
-70c3c6dcbbbde0e1e9498d3957e0b987  gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp
-d265eae172dafe476ec6d3ff4f45f37b  gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S
-0d25422d65a8d58337222972988cada5  gdb/testsuite/gdb.dwarf2/implref-const.exp
-10c72a86d6b9dcd777d2eaaf04feac90  gdb/testsuite/gdb.dwarf2/typeddwarf-amd64.S
-3940f6e7cc73554085cf80fbcd535208  gdb/testsuite/gdb.dwarf2/implref-global.c
-a218d95dde168a3836a0f084c80f88c5  gdb/testsuite/gdb.dwarf2/dw2-producer.exp
-0ea23a046ae5903dfe9932b24d0bf293  gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.exp
-8d603302cd544ed0b158f74d519c740a  gdb/testsuite/gdb.dwarf2/clztest.S
-9e486992ed4b5ed51d820a1081f352fc  gdb/testsuite/gdb.dwarf2/watch-notconst2.c
-a3eb6fbee20b45edcfa48844c1ebdcb5  gdb/testsuite/gdb.dwarf2/dw2-basic.exp
-df616a76e14250d01fec1ff96998f47d  gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.S
-5cc26c987026b14f640d7795a0cf3493  gdb/testsuite/gdb.dwarf2/fission-mix.c
-a351084375b6662ddff70cdedbdaccba  gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp
-69c9c7ae30d5701708adc555b5afb510  gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c
-176a5122a32fae66d5f315c57ad7f977  gdb/testsuite/gdb.dwarf2/implref-global.exp
-8d139e24dd03db896ac478955ffc21e1  gdb/testsuite/gdb.dwarf2/dw2-dup-frame.S
-fd2bc07ac76bebfa36361aec580894ce  gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.c
-4e7313ea7445fa2c982a1d4a22b9db93  gdb/testsuite/gdb.dwarf2/dw2-icycle.exp
-f0c65db46bfeb2462df498a86a9d5a68  gdb/testsuite/gdb.dwarf2/dw2-strp.exp
-f63949ccfa4016594906895d255b1c13  gdb/testsuite/gdb.dwarf2/comp-unit-lang.c
-8953e71b549e807acbb91407a1eaf446  gdb/testsuite/gdb.dwarf2/implptrpiece.exp
-8bc2943310db2feb3577baa71963093b  gdb/testsuite/gdb.dwarf2/nostaticblock.exp
-fa43e91b432cd8a750afec3a12235019  gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.exp
-08a2eddd5bb028806498b2a66bb6001f  gdb/testsuite/gdb.dwarf2/dw2-intercu.S
-702fa4b0dab53fc1a620c5f4507a8c3a  gdb/testsuite/gdb.dwarf2/dw2-noloc-main.c
-ed67ab73184b8fff5eb553b5b4965355  gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.S
-9d60366ca32c2c46bbf31e57f232cc10  gdb/testsuite/gdb.dwarf2/dw2-compressed.S
-654108b1851ed91ccdf949dde449f6ed  gdb/testsuite/gdb.dwarf2/dw2-intercu.exp
-22cf5de4c8d9f9aee802cce731e1771e  gdb/testsuite/gdb.dwarf2/dw2-param-error.exp
-d953e6fc33b5827c124b97e48f1f4fc0  gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S
-1e18f0142ed26aec2ada23d5dd09806f  gdb/testsuite/gdb.dwarf2/method-ptr.exp
-eb17f5f8064fc2c04887ce55a788d4fa  gdb/testsuite/gdb.dwarf2/dw2-icycle.c
-ebd2938602cd6a03355106bd6f007319  gdb/testsuite/gdb.dwarf2/watch-notconst.exp
-842f2ef786e16f27706c2e240fe79f68  gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp
-eb0a29ba4d5fa6e0f322c6f419aa7c6d  gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.S
+af0e712a7de1d49430f1440f479c4930  gdb/testsuite/gdb.dwarf2/shortpiece.exp
+380d3ee3fa588119ea4c8e317af23e56  gdb/testsuite/gdb.dwarf2/fission-multi-cu2.c
+bea8f86b407289c713d74f6ecf6a8880  gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp
+60c0ae0d03faea924b746ec2d0d377c1  gdb/testsuite/gdb.dwarf2/dw2-error.S
+9da261dce709adea795d8e2f638bff3d  gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.exp
+5b3ca29e68e39977a0a8012011aa3ca3  gdb/testsuite/gdb.dwarf2/dw2-inheritance.S
+b6bd0e2e94c366704500a21b40ee50c6  gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp
+521c9870e8761c4ffd2eb4650ea1da8c  gdb/testsuite/gdb.dwarf2/var-access.exp
+f8b8b4bf45e3ce575f7f318df402742a  gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.c
+49fa1a240f06a055d3fc962e75a8f195  gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp
+0f945d03194a64e42dea2b7de0fca935  gdb/testsuite/gdb.dwarf2/pr13961.S
+3b668997af30eba34cb226d54b5446aa  gdb/testsuite/gdb.dwarf2/atomic.c
+99dad67c7a79f8915f24fa605b839257  gdb/testsuite/gdb.dwarf2/dw2-ranges-base.c
+2661f719ba3788e97264a57a88c10c90  gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.S
+1ac893d2150186067a5e5fc7355ec792  gdb/testsuite/gdb.dwarf2/pieces-optimized-out.exp
+e0418ec1413d371ae9706e5b3cb63257  gdb/testsuite/gdb.dwarf2/dw2-inheritance.exp
+1ff708d3c08b3b5b79f21fec618ec879  gdb/testsuite/gdb.dwarf2/valop.S
+64ebdbc8d5941a5ab20028261baa19c4  gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c
+5172c15b626d6c6fe97c85fd6fc75728  gdb/testsuite/gdb.dwarf2/dw2-ranges2.c
+6b4f2e37e2489bfb9e7f822eea9204eb  gdb/testsuite/gdb.dwarf2/dw2-compressed.exp
+ca079e54e5edc7e741acb81bb823d21f  gdb/testsuite/gdb.dwarf2/dup-psym.exp
+befb978088f4ce0e2076b0a7f3949728  gdb/testsuite/gdb.dwarf2/callframecfa.S
+c29d65d93d02cb605f6b8f876c07ad26  gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp
+95e283b2be3822e3788d284249edb95b  gdb/testsuite/gdb.dwarf2/dw2-filename.S
+7658f05bfd505b18fda739fba1bfbaf0  gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.S
+024c43ab96987851afc8af9217f765f8  gdb/testsuite/gdb.dwarf2/dw4-sig-types.exp
+182b07c1474ac5cab0b911603cbdcd4a  gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp
+2ea13073bfbe9380d2860d9977cf1f8e  gdb/testsuite/gdb.dwarf2/implptr.c
+d692cc9130b6577c11c389b5574cba8f  gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp
+d9df09f2e6140247ed917625d0b37910  gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp
+a371c48bc20aee3e2ae4736ba7ab8ce5  gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S
+0ef3571b03d9d62f22e05678fc04e019  gdb/testsuite/gdb.dwarf2/fission-loclists.S
+0c14b412a03dbe28b576c126bd88078a  gdb/testsuite/gdb.dwarf2/implref-array.exp
+bf055de1753a61dde647c951f1cd98e1  gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp
+77428acc2f41dbae13c1ee4befb4f4b6  gdb/testsuite/gdb.dwarf2/formdata16.exp
+5a0d23123fafbe8eea8cd5880d9b74f0  gdb/testsuite/gdb.dwarf2/symtab-producer.exp
+922bc77dd8b2646b32c838958927c705  gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp
+c554f53d82737f5931dec63ac6a6c336  gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S
+9cc77be54eec3861b8d92846e266b616  gdb/testsuite/gdb.dwarf2/implref-const.exp
+ba230a315851d9ad3440a83e6ad457f8  gdb/testsuite/gdb.dwarf2/typeddwarf-amd64.S
+535b3f240d8ff44f86852b80af735e9a  gdb/testsuite/gdb.dwarf2/implref-global.c
+a944852ab31d2c4d87dad51f20ccd503  gdb/testsuite/gdb.dwarf2/dw2-producer.exp
+1de9344bbca5a75a96a5fbf917bd9ed5  gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.exp
+3be0df9d374793ee51bf2491baa740c5  gdb/testsuite/gdb.dwarf2/clztest.S
+ec793c7acf4dde87e012d68093337ef9  gdb/testsuite/gdb.dwarf2/watch-notconst2.c
+e42283daef9034ca3d6cb06d2c36f664  gdb/testsuite/gdb.dwarf2/dw2-basic.exp
+5a69bbe8b58de36a586dc439fb184a79  gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.S
+b212ff7fa017908cd1be65c0a259bf22  gdb/testsuite/gdb.dwarf2/fission-mix.c
+b9722e86188a4d68e5ef3a708620b4d7  gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp
+165002d12a958c31bf18fbc280208055  gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c
+5217af0191a228c19dc88d4bf68507ff  gdb/testsuite/gdb.dwarf2/implref-global.exp
+e9fbf2ee7b52de52bdb6c302798c2da2  gdb/testsuite/gdb.dwarf2/dw2-dup-frame.S
+3785b28ef0859e097ed29987d414dc83  gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.c
+138b018ce78d28054e7033b27a571048  gdb/testsuite/gdb.dwarf2/dw2-icycle.exp
+9057cf361a1bf2126d452ac118690ffd  gdb/testsuite/gdb.dwarf2/dw2-strp.exp
+961b8c2b8fc8f9e4fce84133b413c0b2  gdb/testsuite/gdb.dwarf2/comp-unit-lang.c
+bc6d69385aa3138216134cfed4b03ec7  gdb/testsuite/gdb.dwarf2/implptrpiece.exp
+bc9756d9657102c508d458136a5c0c75  gdb/testsuite/gdb.dwarf2/nostaticblock.exp
+80367910672b91e9368fa0ab706dbe3e  gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.exp
+243758a329d3cf5d9713e0d8637fb586  gdb/testsuite/gdb.dwarf2/dw2-intercu.S
+caa2898dc236497b214b98713b691f2b  gdb/testsuite/gdb.dwarf2/dw2-noloc-main.c
+2e4577acf0a29bb6bd33d6f103a6b687  gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.S
+dfcaed93adaffdd480e1c776869b7caf  gdb/testsuite/gdb.dwarf2/dw2-compressed.S
+f87e42dbae0f4b89c3dd01a57bcfcee0  gdb/testsuite/gdb.dwarf2/dw2-intercu.exp
+0046035c6e9b35cbdf7a396b0e052a03  gdb/testsuite/gdb.dwarf2/dw2-param-error.exp
+a25ef1e41245fa510a06d90dc897beb0  gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S
+3da0cded80f4ae941306c20859fc0bd5  gdb/testsuite/gdb.dwarf2/method-ptr.exp
+1ed89e1f23872b80707f4902e4f5f212  gdb/testsuite/gdb.dwarf2/dw2-icycle.c
+e190b578820836737e157e183ec43d7f  gdb/testsuite/gdb.dwarf2/watch-notconst.exp
+fe1c9cb554dabb89d21d08e83d89cb19  gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp
+065dd9bd1746fd2b327cad242f798fea  gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.S
 84dfdabac6f10bd8e20f5ddf6e5e20a4  gdb/testsuite/gdb.dwarf2/dw4-sig-types-b.cc
-be5ad496f5e57041afbe7bf0e5c3dc78  gdb/testsuite/gdb.dwarf2/typeddwarf.S
-ea431eaee50c6d7ee8581b537234fbd5  gdb/testsuite/gdb.dwarf2/dw2-ranges3.c
-19f2fccef7abfd5c199253bb81551479  gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.S
-c606ab14fc9ea4ec54817a5708f1c858  gdb/testsuite/gdb.dwarf2/pr13961.exp
-92d65765e89afcaf00047f423db1fc82  gdb/testsuite/gdb.dwarf2/fission-reread.S
-128f0afb499e469418487c9a1821d306  gdb/testsuite/gdb.dwarf2/bad-regnum.exp
-6e46a0aadf1830cba7a94fc77bb2a50b  gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp
-7cb64dc8657dcf9b28393b22ae898385  gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.S
-e89e649ba20431fbf7b525233fd3b613  gdb/testsuite/gdb.dwarf2/dw2-common-block.S
-aac5867f3207911cba27779bff40cc76  gdb/testsuite/gdb.dwarf2/dwp-sepdebug.exp
-f1320dff3e079a0f58df828d6a640a1b  gdb/testsuite/gdb.dwarf2/arr-subrange.c
-f9f3415df07101f44d212b9231ce003e  gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.S
-a48467495d842198e5ccc5627133a5f2  gdb/testsuite/gdb.dwarf2/implref-struct.c
-f24daf8a66bdafedfb1b17983067554e  gdb/testsuite/gdb.dwarf2/main.c
-076d6c5113b44386e8563ab8063f226f  gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp
-ca277f43e510dbdd18fb0f91278feae9  gdb/testsuite/gdb.dwarf2/implptrconst.c
-b620f8c4869af27ceb4864a78843a259  gdb/testsuite/gdb.dwarf2/dwp-symlink.exp
-08e4311a30138d26f7b9e6b28c419afb  gdb/testsuite/gdb.dwarf2/dwp-symlink.c
-525015738f359a4c26af8d254984d83b  gdb/testsuite/gdb.dwarf2/implptr-64bit.exp
-b1b12e53e745efa8161bb28f6de1745c  gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.c
-38b85eba760c3d502e13f47fd8cd9dc8  gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
-f2aaf923565fcdf38d02bf6484bda76f  gdb/testsuite/gdb.dwarf2/dw2-op-call.S
-8904e21df3df0f55bc7d0877ac411a50  gdb/testsuite/gdb.dwarf2/pr11465.S
-a5073e2a4b918466bcce718af75d416b  gdb/testsuite/gdb.dwarf2/corrupt.c
-fe5582d79ab58dce569775b818e5c354  gdb/testsuite/gdb.dwarf2/pieces.S
+9b5d2517626c2c6adea426b081c01a00  gdb/testsuite/gdb.dwarf2/typeddwarf.S
+2dbd642b136c14ac31c0b2012946c1d1  gdb/testsuite/gdb.dwarf2/dw2-ranges3.c
+8b3d53476379587d5d2b95e4278ebab3  gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.S
+b6729a7acde63b04c0d2de7d60ad2a47  gdb/testsuite/gdb.dwarf2/pr13961.exp
+19b39aea1af24e63e277a95e3fffa7f3  gdb/testsuite/gdb.dwarf2/fission-reread.S
+abfd8b66e90522d3142da1a5b1250b1d  gdb/testsuite/gdb.dwarf2/bad-regnum.exp
+2521c3e1bdfabf5a9e4a68f9bade5c84  gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp
+7fbb096ac0e8eb86fe129d83b5cf85c7  gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.S
+b97baae963951fe86ee4f03f4fe45cc8  gdb/testsuite/gdb.dwarf2/dw2-common-block.S
+731653f16a2a5ab23b3dea676941ca94  gdb/testsuite/gdb.dwarf2/dwp-sepdebug.exp
+e0eb17d65a5eb750d02a9d306f429d08  gdb/testsuite/gdb.dwarf2/arr-subrange.c
+d7af7db8f3a8d18bc517581f8a8cae49  gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.S
+d878af6944cd4c9e4936ea044b5ac65b  gdb/testsuite/gdb.dwarf2/implref-struct.c
+afce4f9f4036128e013782bb8e8691ce  gdb/testsuite/gdb.dwarf2/main.c
+4fabe5e17a679896f119e95ca8f4e83a  gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp
+0e5fb242836fc3a6f1ff192eececa733  gdb/testsuite/gdb.dwarf2/implptrconst.c
+6e596015aee0bb24ad0da6527f66a11e  gdb/testsuite/gdb.dwarf2/dwp-symlink.exp
+ec8d091c30598e38f81212d13450f132  gdb/testsuite/gdb.dwarf2/dwp-symlink.c
+20288185c5719657a36201e57a5cdf83  gdb/testsuite/gdb.dwarf2/implptr-64bit.exp
+5998a80351ea005731c9745e2f4e063a  gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.c
+d791cad39769974faf1829249e1b34c0  gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
+1dba7cdea2bd197972db952078adf1ec  gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp
+64a02a7174301f0b3f1b18df2e46d7a0  gdb/testsuite/gdb.dwarf2/dw2-op-call.S
+de493f0e1489ecae6df73bf22fa70700  gdb/testsuite/gdb.dwarf2/pr11465.S
+dc114df648de46b628bfe220624172c3  gdb/testsuite/gdb.dwarf2/corrupt.c
+c1448556bb1c9986d466a822f5f82c0e  gdb/testsuite/gdb.dwarf2/pieces.S
 221371fc128c0ff0bd3ab15a074b243e  gdb/testsuite/gdb.dwarf2/typeddwarf.c
-1b2fe81afb56fa512fa11d2cc776ed70  gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.exp
-4d1d46eeeb3768c955387787fe691626  gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S
-4b129d0c8e21055cd6ecf6cd635ebf00  gdb/testsuite/gdb.dwarf2/implptr.exp
-bac4962b1faf3fc40f93b733060e372d  gdb/testsuite/gdb.dwarf2/dw2-param-error-main.c
-9fad3f05cf995699cb725fa6511f0c66  gdb/testsuite/gdb.dwarf2/staticvirtual.exp
-f1a3c48216b8f345df1e2ed381361778  gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp
-df42f7cd456e2f98d1479e13b8dc55e6  gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.S
-eb1ef73e50fc33d4614008ae3290d671  gdb/testsuite/gdb.dwarf2/fission-loclists-pie.S
-5fa9dbdef823d9a2c9ff92821fc76a1c  gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.c
-df48f4370d6c61184e41260c23d48c22  gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp
-35dd568e6aaace18feac8159aee866bc  gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-outer.S
-e6b66245bb896d0f2debf0876543623a  gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.exp
-421de406e0fa6b14637384ac56b1e8ea  gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp
+b0933609b58b777e0059bfd3818be12e  gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.exp
+d488032a75e67a47b250dd1f5be52c97  gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S
+c8ba0d5da606ffcabe8d7f295ccbc57a  gdb/testsuite/gdb.dwarf2/implptr.exp
+00fb31dcd8544db83eef2db5f82ed6e6  gdb/testsuite/gdb.dwarf2/dw2-param-error-main.c
+61e71da691d804e0a86d129b07abfcb2  gdb/testsuite/gdb.dwarf2/staticvirtual.exp
+0a94586ebae5e71d6e4f440712ec58cd  gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp
+2a999421f65549c1791f76e3d17353e7  gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.S
+1fd2cd33c0729b5d78a611f5f4f212a9  gdb/testsuite/gdb.dwarf2/fission-loclists-pie.S
+dfd6cc32af342d6d234768664cbfdccb  gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.c
+3f2f5701bbff959647ab4a0f433f080f  gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp
+9d5b90aed9d25b708f79af5a1229e2f4  gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-outer.S
+e5620ab2138bef60e6cb68b486bd275f  gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.exp
+5d5a0d615b0e6f11d21a84ce58c404d4  gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp
 a9d1814e91b1652544cf87629ae7d948  gdb/testsuite/gdb.dwarf2/clztest.c
-5f7d7938c853780e4ba40df84ca4c319  gdb/testsuite/gdb.dwarf2/implref-array.c
-9b4f4df0dec42db46c662ccbcd44f50a  gdb/testsuite/gdb.dwarf2/dwzbuildid.exp
-816f5e99ea8d9941ea49cbb652fcc662  gdb/testsuite/gdb.dwarf2/opaque-type-lookup-2.c
-9c123d6e8ac1e0bf25ba2ef51988daa6  gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S
-1127b013b79e70147d7d5fd1b4f53212  gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-inner.S
-6decbc37e836686b6eac4c64678dd850  gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.exp
-e53af400fd65275b2a43e7f8fae1a4ec  gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
-08323b7a7817975cffd23af5527d8c11  gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.S
-426978b4321d6647064883cbf25e31d4  gdb/testsuite/gdb.dwarf2/dw2-entry-value.S
-d99408c36d79f045f5f0bd88f66aaf03  gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp
-aee305bb91a016a616dc4b2c31b6350f  gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.c
-51a2fa37d81ecda821f5dafb235bc8ce  gdb/testsuite/gdb.dwarf2/formdata16.c
-18155513daca0ef5793b3b375d237861  gdb/testsuite/gdb.dwarf2/dw2-restrict.S
-91890ba567459a162913a1f952e84888  gdb/testsuite/gdb.dwarf2/fission-mix.h
-c18febf48187e1bcfea8b0cb1f4480fb  gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.S
-d3100ef3bddf983629a77a9f53653b96  gdb/testsuite/gdb.dwarf2/pr11465.exp
-fd6485572941820553454c67af632031  gdb/testsuite/gdb.dwarf2/dw2-inline-param-main.c
-08d8cceeb49a0c2558f12da78a019b8b  gdb/testsuite/gdb.dwarf2/main-subprogram.exp
-bac4962b1faf3fc40f93b733060e372d  gdb/testsuite/gdb.dwarf2/dw2-entry-value-main.c
-6e2d3e5dda1709d1d1bcc52b4c587e83  gdb/testsuite/gdb.dwarf2/dw2-param-error.S
-4dbfed4dc8bc57b55b4992f32739bf06  gdb/testsuite/gdb.dwarf2/bad-regnum.c
-95f8470e8fda40eb729ceced27a8a0c6  gdb/testsuite/gdb.dwarf2/pieces.c
+f807ba1604d70e2f133bbc333191f5a0  gdb/testsuite/gdb.dwarf2/implref-array.c
+a9f68a337865da4cca5a53d55f21b40d  gdb/testsuite/gdb.dwarf2/dwzbuildid.exp
+819c96565e7c88ddb502176e65ddd8b4  gdb/testsuite/gdb.dwarf2/opaque-type-lookup-2.c
+f66a3cb130de9d41230bb59ff3cb8043  gdb/testsuite/gdb.dwarf2/var-access.c
+39c4afe4c6f9e10c9762e9b26f57a0e1  gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S
+3017883be07598a70158883adeaefc02  gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-inner.S
+d8e37e51efbb9d07d4aa558de5edec61  gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.exp
+a51e3535be67c6c7bc3decf80bd184de  gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
+500f3292b3f0363aa06132b0fb50f8e5  gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.S
+255e7a710ea66aae4979b618626e3ce0  gdb/testsuite/gdb.dwarf2/dw2-entry-value.S
+c6796310c02a3f4ac7482f65816aa6c7  gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp
+fe3e05e67f207a6137df1407e997d1b4  gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.c
+48494332d559f04ea089bae276c0c1de  gdb/testsuite/gdb.dwarf2/formdata16.c
+066ecc1d894e425b2dbb63d3a61d20b5  gdb/testsuite/gdb.dwarf2/dw2-restrict.S
+5729ef83fee1b8a44ae889dd16ff670f  gdb/testsuite/gdb.dwarf2/fission-mix.h
+ffe78d17435a42b90e8afa7214315ab1  gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.S
+4fea6988a3185231df106a796c4b92ee  gdb/testsuite/gdb.dwarf2/pr11465.exp
+ce994bb59b08e28b6e4172aece68720c  gdb/testsuite/gdb.dwarf2/dw2-inline-param-main.c
+b02b255f6ef5d51f03dec88cc882edab  gdb/testsuite/gdb.dwarf2/main-subprogram.exp
+00fb31dcd8544db83eef2db5f82ed6e6  gdb/testsuite/gdb.dwarf2/dw2-entry-value-main.c
+4842ca01347818d90ae752d475a2e2e0  gdb/testsuite/gdb.dwarf2/dw2-param-error.S
+f0aee5d06ce4cdc067dc4496fe568f09  gdb/testsuite/gdb.dwarf2/bad-regnum.c
+1b3f0fb3d4abe172d684f6f9c7fa93b5  gdb/testsuite/gdb.dwarf2/pieces.c
 0c1cac296d9825462dfe00fa9ed44889  gdb/testsuite/gdb.dwarf2/implptr.S
-eb808c6f002c4cc5750ee8e44e11c76a  gdb/testsuite/gdb.dwarf2/atomic-type.exp
-28c5958bdc11e8c0010ee5737c8e6b8f  gdb/testsuite/gdb.dwarf2/dw2-ranges.c
-177210c10c4e11d9d27b702df5cc3fe2  gdb/testsuite/gdb.dwarf2/pr10770.exp
-6e14b9b68ba94ce9bd20f1d84374a636  gdb/testsuite/gdb.dwarf2/dw2-strp.S
-7421253fb58b92fab91b7bf56782af3c  gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-func.c
-fbb84c2cf529b54006c365c2a15f9210  gdb/testsuite/gdb.dwarf2/count.exp
-9d0b6837eb9ae40457a767ddee02d58e  gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world.c
+e5a34b8d674c1412cca395f3028a8ef5  gdb/testsuite/gdb.dwarf2/atomic-type.exp
+967bd21b4805aa655f923d2b1ea95e2a  gdb/testsuite/gdb.dwarf2/dw2-ranges.c
+6140a1b5150c7fbe5213692f6c39a86f  gdb/testsuite/gdb.dwarf2/pr10770.exp
+eb42e6e57bb399625a49b2e2f2997042  gdb/testsuite/gdb.dwarf2/dw2-strp.S
+311520eca25b5d6053b498931de66e04  gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-func.c
+8eb4f668a4c0239ab8c7d3049e03125a  gdb/testsuite/gdb.dwarf2/count.exp
+9322962e61883c9a128ecaa0197849a9  gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world.c
 66dff7abb42a5b191f3df1fb1617237c  gdb/testsuite/gdb.dwarf2/dw4-sig-types.h
-ee49e434a0cc923cb32774e6bc9a8ba4  gdb/testsuite/gdb.dwarf2/dw2-dos-drive.exp
-a7c3d3429565d54051e93e6a99e50b68  gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp
-ac1ccf90739e48b598421db83b6dc14d  gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.S
-3ee92bcf9e16aead39b7a123972192f8  gdb/testsuite/gdb.dwarf2/fission-mix2.c
-04bfe293c6e71059cca81882b58a83de  gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.c
-3aa908323446d95dc92ab7a04f0c1830  gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp
-7c5df10bb042dcb6d0949549e842ecce  gdb/testsuite/gdb.dwarf2/clztest.exp
-53f46400fb1daca2c385ca13ad9f89b5  gdb/testsuite/gdb.dwarf2/dw2-basic.S
-9f1263135e6ad4aa2fd02f6b8cb8111e  gdb/testsuite/gdb.dwarf2/nonvar-access.exp
-f9650df7e70b06e9537dc399a722e6ec  gdb/testsuite/gdb.dwarf2/fission-base.S
-8f981383d1ddbaeaaa3dff72970b6624  gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.exp
-7191d6f2d6cfb8f281a873e3878da170  gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust-main.cc
-1ef3bba73b2545bb0a1927c61f3b099b  gdb/testsuite/gdb.dwarf2/dw2-dup-frame.c
-e3ff8bbdadf2f3585ac40fbf3eced5c4  gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c
-f0861abfbcfca968cf8ee75378739736  gdb/testsuite/gdb.dwarf2/data-loc.c
-4abf2d02d53f34bfffec682fd19ddcfe  gdb/testsuite/gdb.dwarf2/dw2-restore.S
-3a51a0070ccea73678e7b2a60f74bcb9  gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S
-c75f186d807d7fca9a0bc63d159b74aa  gdb/testsuite/gdb.dwarf2/mac-fileno.exp
-f33b61fb4d41e148075a9e4bb6aff631  gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S
-bfdaf7482dae14be8547cf591518f578  gdb/testsuite/gdb.dwarf2/dup-psym.S
-0d8b1114369268af5bc3dcd77e65bd70  gdb/testsuite/gdb.dwarf2/dw2-restrict.exp
-6267ccd32532d11fe685a320cd3bfcef  gdb/testsuite/gdb.dwarf2/dw2-error.c
-fcd8d40e003dca935cd2d64e52467d7b  gdb/testsuite/gdb.dwarf2/dw2-producer.S
-3f2ac76dd3d8f3a3f6fbd8f1f8e6d16c  gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp
-bbeaf9b96f21e7adca6c7c42f7a30be4  gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-main.c
-5e65b5ddd80b9ec4adc6ecf8c82597d2  gdb/testsuite/gdb.dwarf2/pieces.exp
-bc9c4df50842f7625790692bb04f861e  gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.c
-07e82e376b7be9dc318ae5780adf53ff  gdb/testsuite/gdb.dwarf2/valop.exp
-4a1950a7443e896249895680e7f464b2  gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp
+b21e1b03586ecad0385c67c0b4dd07e6  gdb/testsuite/gdb.dwarf2/dw2-dos-drive.exp
+f8e33bf171f3204e1ef3400c5916c6ce  gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp
+4ef9df31305d8d695620520561eac984  gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.S
+d6fefde742eb6aae30d0459a54282e98  gdb/testsuite/gdb.dwarf2/fission-mix2.c
+82b435d2b2f0baed9a0f204c4b0cc81b  gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.c
+b6cdd34d2bf4fe549b5458d1e6085407  gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp
+706afb1c45807631d0207d3e566dd3e9  gdb/testsuite/gdb.dwarf2/clztest.exp
+a00097d5872b2019fe61e036d01236ce  gdb/testsuite/gdb.dwarf2/dw2-basic.S
+4ddf80acdf3c70612e51e75792a9ef15  gdb/testsuite/gdb.dwarf2/nonvar-access.exp
+4bb9b1a5d63375128c85461785f9450e  gdb/testsuite/gdb.dwarf2/fission-base.S
+e1e00e01795ea217294a87036f2a1b7e  gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.exp
+5527e944e315739ffb57f76e76fe5060  gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust-main.cc
+64de6737c17fc1866182ef9e1586a78e  gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp
+f083b2cbfd8bf7f45f16761522b59e3d  gdb/testsuite/gdb.dwarf2/dw2-dup-frame.c
+c7b405192701372698f417016d1daeff  gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c
+d0aec9a3d2281ec873ae6e2259547cb1  gdb/testsuite/gdb.dwarf2/data-loc.c
+b32fb9a2f1b8cb1069ee60588727cbc3  gdb/testsuite/gdb.dwarf2/dw2-restore.S
+b94a71077176296c0cd985e6dcbd5e58  gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S
+6e2e5f9613fce92019c9f69eac6ae075  gdb/testsuite/gdb.dwarf2/mac-fileno.exp
+ed1d92047422fed0f703a367b78d01b5  gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S
+f8895fb201cc7571680864363d82c730  gdb/testsuite/gdb.dwarf2/dup-psym.S
+956260ff4f152c2b86a97d9673d51513  gdb/testsuite/gdb.dwarf2/dw2-restrict.exp
+09ec70cb4ee4e89798720fa03c177fd0  gdb/testsuite/gdb.dwarf2/dw2-error.c
+5aa8040df154eb67333eb753f90e42cf  gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp
+36e36cadde15d2d2556bda9be42e407e  gdb/testsuite/gdb.dwarf2/dw2-producer.S
+acd4043c8d57b13f7127982ce0a896d0  gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp
+d7837a3fccb73f007b9a265c042a2f44  gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-main.c
+352ddbbfa88c3e28aad2aa500ffa4acb  gdb/testsuite/gdb.dwarf2/pieces.exp
+6f8ab4804f1fd830bfbb6990bd82819f  gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.c
+1e6f65bffc860cabb5f12bfc7489c8c3  gdb/testsuite/gdb.dwarf2/valop.exp
+fa3f196b43a8b922ea8cb0e477256293  gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp
 075ee4da88be6ff4297e6d6b44b113a1  gdb/testsuite/gdb.dwarf2/pr10770.c
-5ca733a695be8408479cbaade8bb6224  gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp
-c554df4c53f6dfc94b18449ef1cfc9e6  gdb/testsuite/gdb.dwarf2/dw2-restore.exp
-2cb28e686562f74d83e4eee2cdb0d574  gdb/testsuite/gdb.dwarf2/dw2-inline-break.exp
-ebe95c53c108a97ad27dc089ce3be2e8  gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.S
-15ea64594fdfdd9a8892b6eec8665fde  gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.S
-6078c6a446095bf3bce4d6174b18afbd  gdb/testsuite/gdb.dwarf2/enum-type.exp
-50e45b364b3a7c9d7a6a773a8122668e  gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.exp
-a50226db8b7dcc76ad53b365040be81f  gdb/testsuite/gdb.dwarf2/fission-loclists.exp
-41dac7a059ae77ff0941745760783d5a  gdb/testsuite/gdb.dwarf2/dw2-dup-frame.exp
-dff8768e8a5be08be7a6482fe413e262  gdb/testsuite/gdb.dwarf2/dw2-intermix.S
-5f89b2a66c91c92eec9b292bf93f8c7f  gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.exp
-62e7f06d2ed7e5e9ec1e2ab89c053c1c  gdb/testsuite/gdb.dwarf2/fission-reread.exp
-a7ae0d8d548c611200b2877619acc356  gdb/testsuite/gdb.dwarf2/mac-fileno.S
-4072ae6248af202b2e8f48cca4fcc4be  gdb/testsuite/gdb.dwarf2/pieces-optimized-out.S
+a4fb797463ee63933fc18a20e3d1f272  gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp
+46ace8e2655bd8559d967ffb074e4b49  gdb/testsuite/gdb.dwarf2/dw2-restore.exp
+7b576fe336179e9c00ac74e1ad0f7205  gdb/testsuite/gdb.dwarf2/dw2-inline-break.exp
+55f48b6b1bf8cadabb9523af72537b28  gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.S
+02f871a2df3417972a49bb96fccfdb70  gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.S
+4fac269647a5415b4da1ce8f314150dc  gdb/testsuite/gdb.dwarf2/enum-type.exp
+9ad716c97aaf57a9579109f875daebba  gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.exp
+ba9f894e332026ddef9d40895f48fc02  gdb/testsuite/gdb.dwarf2/fission-loclists.exp
+260742abd0b9a1e1551b4f8f7ebe57e2  gdb/testsuite/gdb.dwarf2/ada-valprint-error.c
+87e349125cd39fccb3bb02310dcd2e65  gdb/testsuite/gdb.dwarf2/dw2-dup-frame.exp
+44e3b8b367f5bf6f076b3157416f586a  gdb/testsuite/gdb.dwarf2/dw2-intermix.S
+d528d21accd36d024360dfe99267cf70  gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.exp
+3a994ff74ef7df05ac230a89ddbaa937  gdb/testsuite/gdb.dwarf2/fission-reread.exp
+0eab9478e9d4adea9678c244c7a1e747  gdb/testsuite/gdb.dwarf2/mac-fileno.S
+979ee384c7fbe293b8f23a87fa9812f1  gdb/testsuite/gdb.dwarf2/pieces-optimized-out.S
 daf7275b48424acdfc659414338f304f  gdb/testsuite/gdb.dwarf2/dw4-sig-types.cc
-bc447f4e0ed2f9559ffa283ec364a111  gdb/testsuite/gdb.dwarf2/missing-sig-type.exp
-b6015fc078d350d09b6a0b873206341b  gdb/testsuite/gdb.dwarf2/watch-notconst2.S
-b7053455ce0a645c98c01bdb2e2fcc00  gdb/testsuite/gdb.dwarf2/dw2-error.exp
-f6471dc8d099c231ba67d548ed9d92a1  gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static-main.c
-e62d920b921de8d8240d01c004cb4026  gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.S
-08f580c15bd431e3bbada692bc49bcb0  gdb/testsuite/gdb.dwarf2/watch-notconst.c
-1ac46c774e05d1116bc1fcaabed0f4f9  gdb/testsuite/gdb.dwarf2/dw2-noloc.exp
-be1ad1cedcc999e59708de043082c0e5  gdb/testsuite/gdb.dwarf2/dw2-cu-size.S
-f69e620316b47ce9df15b048e9780374  gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp
-420ccd4aa1e04f4dccab5594d1c5e509  gdb/testsuite/gdb.dwarf2/method-ptr.cc
-22a6177213ba6d301a86b6b7c775ab15  gdb/testsuite/gdb.dwarf2/dw2-filename.exp
-14e14c1bdbb4110dc9b0b0936bc4672a  gdb/testsuite/gdb.dwarf2/dw2-restrict.c
-b994b010f788b065b7d8d353248599c4  gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S
-d5bbff91fad24c2e8a132a7577eaf73a  gdb/testsuite/gdb.dwarf2/dw2-intermix.exp
-ddfd96900cbab6bc28712dd2277275f2  gdb/testsuite/gdb.dwarf2/data-loc.exp
-e788f24c6cd14cdb3957beae23ab5c77  gdb/testsuite/gdb.dwarf2/dw2-noloc.S
-138c217e3cb863590749f9a9d9e5fc5c  gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S
-2fbd8575734ee1051e3713753dbd75f1  gdb/testsuite/gdb.dwarf2/dwp-sepdebug.c
-611158a26d784f6a719c1510dc5907de  gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp
-7866055db3726558a5f6e5460811ad79  gdb/testsuite/gdb.dwarf2/fission-base.c
-505e1bf468f532fd606ba9ce168d5e94  gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S
-f2fc5669fbbc766d23baf227b6bf9c03  gdb/testsuite/gdb.dwarf2/arr-subrange.exp
-c3429181579722eab3b3920892ff361c  gdb/testsuite/gdb.dwarf2/implptrconst.exp
-ede7161e331e190f0f51f8d380130f95  gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.exp
-6eab74875aa071cada18d016a522187f  gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap.exp
-6882c5588baf4bbeb4774debf7b04b32  gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.S
-2717432b698f70ec58fa06a8c1ec8c40  gdb/testsuite/gdb.dwarf2/implref-struct.exp
-820712b763ffa5a949da4577c2c2b4d5  gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S
-543daf7ff3bb3bbce6adb00a2d676d76  gdb/testsuite/gdb.dwarf2/dynarr-ptr.c
-26981b7d34dd33749b1a33d7679ba265  gdb/testsuite/gdb.dwarf2/typeddwarf.exp
-29ffba393416612731ba8f16aef4205c  gdb/testsuite/gdb.dwarf2/main-subprogram.c
-e3490a4ba5fa8d6ff511772e13039302  gdb/testsuite/gdb.dwarf2/gdb-index.exp
-1e3b813b44ce2433b0b3f73d92e5639e  gdb/testsuite/gdb.dwarf2/dw2-inline-break.S
-f1320dff3e079a0f58df828d6a640a1b  gdb/testsuite/gdb.dwarf2/arr-stride.c
-3da39d58800a4b87e31db957baaf07a8  gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp
-e6b37ca7a28630547ab9459ec1b6a177  gdb/testsuite/gdb.dwarf2/dw2-icycle.S
-ad69bcff64a963b7fe082b77a81e0ea1  gdb/testsuite/gdb.dwarf2/pieces-optimized-out.c
-33cdb7c789c082a56bb0318a6a22613c  gdb/testsuite/gdb.dwarf2/dw2-unresolved.S
-fad8a99b0e65d176479524f434c41916  gdb/testsuite/gdb.dwarf2/dw2-inline-param.S
-a460823cd5c6ab1f2f6171783d849030  gdb/testsuite/gdb.dwarf2/dwz.exp
-702748a472f244dc9b39e42656ec8227  gdb/testsuite/gdb.dwarf2/callframecfa.exp
-9dcaf0cb89f560de005b421c132c97eb  gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c
-fb1993a91f6aacd11f911ad5b2a201f5  gdb/testsuite/gdb.dwarf2/dw2-const.exp
-9631bfda3ad4f81cd24702f9a6bfdd68  gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello.c
-6daeccad6ea255933cd5303f89ee61f7  gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp
-5fd34ff7078cde5ba51465ec72adcb2e  gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.S
-c2be4d01dad53ed2eab956cbccdd5d42  gdb/testsuite/gdb.opencl/datatypes.exp
-147e9bde2b0cd6bfe72cb42c7ae04cae  gdb/testsuite/gdb.opencl/callfuncs.exp
-5125da54ec19b3b9e60d063b6d85d053  gdb/testsuite/gdb.opencl/datatypes.cl
-1abe702564bfaad3d74ccdd9c1db141b  gdb/testsuite/gdb.opencl/vec_comps.cl
-20d37d0c40b61f0045ae4bac7af6572d  gdb/testsuite/gdb.opencl/callfuncs.cl
-59c9a841b7bdd3d60b8cddc38c2fe5ca  gdb/testsuite/gdb.opencl/convs_casts.cl
-7478b2a42450c1099c32ad890a056711  gdb/testsuite/gdb.opencl/operators.exp
-2fd314d99fd195cc90ad1d7459e16f27  gdb/testsuite/gdb.opencl/vec_comps.exp
-2e8a39619af5e3b471c505414cc2ac5f  gdb/testsuite/gdb.opencl/convs_casts.exp
-d2731c70e852df4556fcd4945ad34d2f  gdb/testsuite/gdb.opencl/operators.cl
-b134257a90256b9ed4faf08827cd76d2  gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp
-a96762c54594dbf5c5f5377c5361025d  gdb/testsuite/gdb.reverse/machinestate.c
-1803da63cb2e8048b735653d8c069c68  gdb/testsuite/gdb.reverse/singlejmp-reverse.c
-672e5f6c6b5683b975a26ad1091ca1ce  gdb/testsuite/gdb.reverse/readv-reverse.c
-dc4774e62f3e019f03b32772d78f51b9  gdb/testsuite/gdb.reverse/consecutive-reverse.exp
-f7b55a4cb9fc91ad8d8e529b6c2d524a  gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.S
-7969fdc6fcf6f381b1832c930d934386  gdb/testsuite/gdb.reverse/insn-reverse-arm.c
-2b3433dad2e023f8f01181e4196fdde8  gdb/testsuite/gdb.reverse/rerun-prec.c
-6693494651f25d353808dfa8c08ab8f1  gdb/testsuite/gdb.reverse/getresuid-reverse.c
-71a2a845b8806c2fec5d10af4ff82100  gdb/testsuite/gdb.reverse/time-reverse.c
-cb16190f6bb2ff902fd9e6c77cdb6e31  gdb/testsuite/gdb.reverse/sigall-reverse.c
-15413c73d7f076ddc6b60cded334a982  gdb/testsuite/gdb.reverse/fstatat-reverse.c
-77d10a23d9c4312835130e932acabb58  gdb/testsuite/gdb.reverse/i386-sse-reverse.exp
-325a2352ced8e603beec0ac3fd4c1663  gdb/testsuite/gdb.reverse/until-reverse.exp
-f87f23d6818d0c160c87a37815d9f5f8  gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp
-780c9fe3447e9b9130342518d7a0e2f5  gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.c
-b50a3c95b2cb54452fd66d14a951aed2  gdb/testsuite/gdb.reverse/break-reverse.c
-5eb04441838d0708b554e9e94ff5f565  gdb/testsuite/gdb.reverse/sigall-precsave.exp
-5bb6f2514113947a3f47c2dfbdd48385  gdb/testsuite/gdb.reverse/machinestate-precsave.exp
-41f904695c5f0fa077b60df867cfa4d8  gdb/testsuite/gdb.reverse/i387-env-reverse.exp
-ce28ba73d1735cead2e95c9aa223b697  gdb/testsuite/gdb.reverse/waitpid-reverse.exp
-55144305699c8dd803e7f13fcde2ca62  gdb/testsuite/gdb.reverse/break-precsave.exp
-6a8c2024474b54eb7d932706e4341fe3  gdb/testsuite/gdb.reverse/getresuid-reverse.exp
-fc30ff330d0fc4842d02e5057cdfbbae  gdb/testsuite/gdb.reverse/solib-reverse.exp
-dd5818065a284a0a14f164f101b03025  gdb/testsuite/gdb.reverse/shr.h
-dd0f1e7f5c3dc4a46cf1f97d4d0dbeec  gdb/testsuite/gdb.reverse/solib-reverse.c
-f8ee02bef4d7ea5a87fd87bd0e5cdf1a  gdb/testsuite/gdb.reverse/singlejmp-reverse.S
-daef0e5aa6de1ba94ec179d62fdb548f  gdb/testsuite/gdb.reverse/s390-mvcle.exp
-4b86bb66c3eb00954ff9ee9eacb287df  gdb/testsuite/gdb.reverse/until-reverse.c
-12db6c6a1a9f110aca7a40b8bbb7fb32  gdb/testsuite/gdb.reverse/watch-reverse.c
-9f12015fccb99c80851bf29f4952b355  gdb/testsuite/gdb.reverse/time-reverse.exp
-15fe0219c9735144498c7430452000ff  gdb/testsuite/gdb.reverse/machinestate.exp
-955d481f59c6984d5efd5b51ec4ae205  gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp
-fa84ecfbb504f6ef628e6a310dd02e31  gdb/testsuite/gdb.reverse/step-reverse.exp
-843cbbca58136814b35ddcdb7f121832  gdb/testsuite/gdb.reverse/pipe-reverse.exp
-97b5f62b209ffae89a5c3921771039f8  gdb/testsuite/gdb.reverse/finish-precsave.exp
-a0d21303bef830633d5c7ce538d2860c  gdb/testsuite/gdb.reverse/i386-sse-reverse.c
-02ade706b8de5a0b1bbacf4116916110  gdb/testsuite/gdb.reverse/i386-reverse.exp
-cfa63e3cfbff2747d71c6968372b5aad  gdb/testsuite/gdb.reverse/finish-reverse.c
-f06408ec24bb346d1504f63f8b00e89e  gdb/testsuite/gdb.reverse/insn-reverse.exp
-c41e10a8efce859b512d853fceae5a27  gdb/testsuite/gdb.reverse/until-precsave.exp
+4a15f1a5664cfb529ab410c1ae8abfc7  gdb/testsuite/gdb.dwarf2/missing-sig-type.exp
+7e4a954984b1c82faf0b9aa36c086b07  gdb/testsuite/gdb.dwarf2/watch-notconst2.S
+149f89489053e472c1f6e09d33beca9a  gdb/testsuite/gdb.dwarf2/dw2-error.exp
+7cdfcb2e1493f92bfb6a67f8fa01b0c3  gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static-main.c
+1a06ab7ef117c436a37bc83f9f750435  gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.S
+b867675af45ecee268b6b6f38cbd7f04  gdb/testsuite/gdb.dwarf2/watch-notconst.c
+7f2fa1e721a9f168dc3386fae32ae486  gdb/testsuite/gdb.dwarf2/dw2-noloc.exp
+2369e8c6b4a033f6aaa4c68e1b8e5943  gdb/testsuite/gdb.dwarf2/dw2-cu-size.S
+9ee6df8888570d1ec69f438a5908a03d  gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp
+ff2ebb22b99cfe6d62ab0d5d22d1a596  gdb/testsuite/gdb.dwarf2/method-ptr.cc
+9a06e7deead85014b7b3d35ab26595ad  gdb/testsuite/gdb.dwarf2/dw2-filename.exp
+a53dfd9c62cb4d5fded3cdcf517acad0  gdb/testsuite/gdb.dwarf2/dw2-restrict.c
+cd5122b686dc039b780b72b0c22dc1ca  gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S
+c05732c354a27dfe8aa4fbbb4612c84b  gdb/testsuite/gdb.dwarf2/dw2-intermix.exp
+e1c8be1052fb5024555b022db5696dce  gdb/testsuite/gdb.dwarf2/data-loc.exp
+03470993d492c1fa0ef14dfa26605501  gdb/testsuite/gdb.dwarf2/dw2-noloc.S
+a39ca5cac1da717844f18ec2ffca8d3c  gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S
+0a95cb84b5136f20666dde88d9b24462  gdb/testsuite/gdb.dwarf2/dwp-sepdebug.c
+e8dfe6ccea163e190ea3d09819e27f14  gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp
+da4588a83c8c3904985a939bd05f4c72  gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.c
+dd6d7cd6115e08acfcc0a25cb7a41f4a  gdb/testsuite/gdb.dwarf2/fission-base.c
+2e32079b3c34a89e28002ddfaa365fe6  gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S
+04644d3872e60f9de50b25ea8960d945  gdb/testsuite/gdb.dwarf2/arr-subrange.exp
+3677991d334899bfa9060e8871c0fdbb  gdb/testsuite/gdb.dwarf2/implptrconst.exp
+bf7e5d13e1e14c2f505a100b4de9e1b9  gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.exp
+839e5b59c0ef726ea177f3f6eccae32b  gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap.exp
+3bb5fd807fef4bc4556f51f66967162e  gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.S
+bc24f6dc2f80a90720d889c923da1a65  gdb/testsuite/gdb.dwarf2/implref-struct.exp
+92f2d73c3f061a74b9aa39f7260e9f3a  gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S
+60841803e09a8cfd8518830375b700e1  gdb/testsuite/gdb.dwarf2/dynarr-ptr.c
+a3b0eaf83119697f5274d89cea6e212e  gdb/testsuite/gdb.dwarf2/typeddwarf.exp
+caaa599ddfd82546845c034fdf8c6d34  gdb/testsuite/gdb.dwarf2/main-subprogram.c
+82e7c1ef3244455761af29e650277fb6  gdb/testsuite/gdb.dwarf2/gdb-index.exp
+3ac12a16b1bb55ae4f6819cf0828e83c  gdb/testsuite/gdb.dwarf2/dw2-inline-break.S
+e0eb17d65a5eb750d02a9d306f429d08  gdb/testsuite/gdb.dwarf2/arr-stride.c
+05d58b6dfcfa2368c877eac186d8618d  gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp
+e9974ed83f976f81b0ebc37b3739a43f  gdb/testsuite/gdb.dwarf2/dw2-icycle.S
+7251a1224646af2eceb9293d12f88b9f  gdb/testsuite/gdb.dwarf2/pieces-optimized-out.c
+bc09b883c9a74df433494fc92a00e36e  gdb/testsuite/gdb.dwarf2/fission-multi-cu1.c
+fd262e66fa5594397bc0aab9cdb65605  gdb/testsuite/gdb.dwarf2/fission-multi-cu.S
+22b5ae8347c2c610a352377f610939e3  gdb/testsuite/gdb.dwarf2/dw2-unresolved.S
+b7842612dd0e1d31511b37dd64e2405e  gdb/testsuite/gdb.dwarf2/dw2-inline-param.S
+1fe4be7c65922265fb55902485668710  gdb/testsuite/gdb.dwarf2/dwz.exp
+df578bd6d5f7673f6dbfaa062582ddf7  gdb/testsuite/gdb.dwarf2/callframecfa.exp
+f8e9de6e8693d72ab88bda30e09cf26a  gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c
+389dbb345d8c28dd456abac984e9a9a7  gdb/testsuite/gdb.dwarf2/dw2-const.exp
+0466862a1fc9e290ed62c2ca3cd9ef90  gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello.c
+1fc5f15a4465e8584748ecc2c4eb244b  gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp
+e6d5e0178fcc8aff5c5f927403135e4f  gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.S
+49dcac1d3292d56f4d6d4aca018d6cab  gdb/testsuite/gdb.opencl/datatypes.exp
+3d9b258895d2234b6fdf74030368ccb3  gdb/testsuite/gdb.opencl/callfuncs.exp
+e61dc9688abf29f8332f02efb80f5a73  gdb/testsuite/gdb.opencl/datatypes.cl
+ce6991937f60eee03946aaa393c69748  gdb/testsuite/gdb.opencl/vec_comps.cl
+338598cb8e839649377d7636550329ec  gdb/testsuite/gdb.opencl/callfuncs.cl
+626b50f08ff5c8514ad1baf1c747f96d  gdb/testsuite/gdb.opencl/convs_casts.cl
+153bebdd15eeeb85431a4b039ec110af  gdb/testsuite/gdb.opencl/operators.exp
+3b9002ac7a861858019767a63253a795  gdb/testsuite/gdb.opencl/vec_comps.exp
+ce8a300c960443d2f7118a6b67817a70  gdb/testsuite/gdb.opencl/convs_casts.exp
+37a0dde6af2301ce0450818c7b6ed3f5  gdb/testsuite/gdb.opencl/operators.cl
+902a258c9694382694a8769efc4f43fc  gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp
+6bc96538e09c83dfeca5dace32861995  gdb/testsuite/gdb.reverse/machinestate.c
+b75b12568c881eb4593af3122c424214  gdb/testsuite/gdb.reverse/singlejmp-reverse.c
+9b20ffc60b0917d39188abdcf7e93f62  gdb/testsuite/gdb.reverse/readv-reverse.c
+4676f402ca1ad063d73153379a200b40  gdb/testsuite/gdb.reverse/consecutive-reverse.exp
+78aee2a0c28d9d0949facc5cfeedcc61  gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.S
+b67198ee1e99be52399be6a660afe2bf  gdb/testsuite/gdb.reverse/insn-reverse-arm.c
+7854107c7e8bc4ff4aa925832ed38545  gdb/testsuite/gdb.reverse/rerun-prec.c
+f4c415f5cd72df8c14088f5db01ea8d6  gdb/testsuite/gdb.reverse/getresuid-reverse.c
+c23283406add1bd7c2cb11e43179324a  gdb/testsuite/gdb.reverse/time-reverse.c
+e1aec76c63af3c1384c93c0f05c15356  gdb/testsuite/gdb.reverse/sigall-reverse.c
+cd9ba3e6a9915dd3a68e185c8459d509  gdb/testsuite/gdb.reverse/fstatat-reverse.c
+1c9287c36c267d85276bf37be7a9fe35  gdb/testsuite/gdb.reverse/i386-sse-reverse.exp
+5780e72cfd859660789cd125be6d4905  gdb/testsuite/gdb.reverse/until-reverse.exp
+2b09a74446f9d68c146c75304e789666  gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp
+9e978dbe55695606f0c6e27e56c558ba  gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.c
+bfc6b2ee25d613d86b70e722299702df  gdb/testsuite/gdb.reverse/break-reverse.c
+544ac534814155deccafafa3f2412ff7  gdb/testsuite/gdb.reverse/sigall-precsave.exp
+3a02839f08157b3d8084a47738e3c635  gdb/testsuite/gdb.reverse/machinestate-precsave.exp
+8d452642cbc5c57200f55ab00b5231cc  gdb/testsuite/gdb.reverse/i387-env-reverse.exp
+9b9c21737be8e132895bd5baf78ea4ea  gdb/testsuite/gdb.reverse/waitpid-reverse.exp
+3b44b6160b82f073870e7fcbc04f5fc3  gdb/testsuite/gdb.reverse/break-precsave.exp
+5fee14c661135fcf01e4210d7ffa9e15  gdb/testsuite/gdb.reverse/getresuid-reverse.exp
+2f43fbc57f11524f3f789442f08ee1d6  gdb/testsuite/gdb.reverse/solib-reverse.exp
+ede9eb486f421fecca9e31f89e87f66e  gdb/testsuite/gdb.reverse/shr.h
+275b5cb969933a44c2205524a06a452a  gdb/testsuite/gdb.reverse/solib-reverse.c
+799197972dfbc7bf51e8f767961c6f0b  gdb/testsuite/gdb.reverse/singlejmp-reverse.S
+e97a13b016c248522a0abe13bc2e343c  gdb/testsuite/gdb.reverse/s390-mvcle.exp
+e5e85af066110a339bafd93998ed1a5b  gdb/testsuite/gdb.reverse/until-reverse.c
+aa098c5a2da12ac734b2f5c086283f05  gdb/testsuite/gdb.reverse/watch-reverse.c
+0228cc614344c68d31e17656c18ea3fe  gdb/testsuite/gdb.reverse/time-reverse.exp
+bd88878562965bd3416fdb7edb303c3d  gdb/testsuite/gdb.reverse/machinestate.exp
+3f249c4c793fb9add1dda96dfe37e1ae  gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp
+bb56af286a9d11195ceeb2ccd9f455e6  gdb/testsuite/gdb.reverse/step-reverse.exp
+8118f7ba01ceb1134ecef1622533243f  gdb/testsuite/gdb.reverse/pipe-reverse.exp
+9f854fea5f4fb72edd08001ef72f4c11  gdb/testsuite/gdb.reverse/finish-precsave.exp
+974b005f799dcb29a076a15deec076fd  gdb/testsuite/gdb.reverse/i386-sse-reverse.c
+6a9dbee7c0180345debfd580e5d09a28  gdb/testsuite/gdb.reverse/i386-reverse.exp
+baf906bc791c2da396dc522c964bec58  gdb/testsuite/gdb.reverse/finish-reverse.c
+3b650d7664fcb7c69ffed28728b7400b  gdb/testsuite/gdb.reverse/insn-reverse.exp
+1c6ba02676f04060a7db3edd2155ed13  gdb/testsuite/gdb.reverse/until-precsave.exp
 3324e2bb106a9b9279ac3127170de20b  gdb/testsuite/gdb.reverse/i387-env-reverse.c
-a80624f53c360bfc5e3eeda59fb45460  gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.c
-c4773cd5040b145aecdb27d5730131a1  gdb/testsuite/gdb.reverse/consecutive-precsave.exp
-f0ef250a90a5d1eaf0005ac472a2e40a  gdb/testsuite/gdb.reverse/watch-precsave.exp
-31b67ad8c839b6fe1f47bcc53223ab89  gdb/testsuite/gdb.reverse/ms1.c
-092ed4ae26c14148f238f097be34b9bf  gdb/testsuite/gdb.reverse/waitpid-reverse.c
-1bf154765363216370c5ff1892e1e2eb  gdb/testsuite/gdb.reverse/i386-reverse.c
-18018b8e1c2793fa4efb9903edb2353f  gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.S
-fc8d5357f2a4dae594213d1cc1afed4e  gdb/testsuite/gdb.reverse/i387-stack-reverse.exp
-2257e6df25375acd7c2039fb1d6c2099  gdb/testsuite/gdb.reverse/pipe-reverse.c
-3244db6136a1346208004a68250547f0  gdb/testsuite/gdb.reverse/step-precsave.exp
-abaa3f87d00e33ee1d3241ce86a7eeb0  gdb/testsuite/gdb.reverse/break-reverse.exp
-2d7d874b068b5224a52a7bc792f89e26  gdb/testsuite/gdb.reverse/rerun-prec.exp
-8c8148578cd34ff783f9c27d4ab845f3  gdb/testsuite/gdb.reverse/fstatat-reverse.exp
-99f4c3968aa5553f44a5e387b85157bc  gdb/testsuite/gdb.reverse/singlejmp-reverse.exp
-fa2e24dcc247d75565af15d0f93a4512  gdb/testsuite/gdb.reverse/consecutive-reverse.c
-bc572b3b2b82b4711feaa7e882d92a08  gdb/testsuite/gdb.reverse/i386-precsave.exp
-68193b40e0191712aa877e718d7c3fa7  gdb/testsuite/gdb.reverse/finish-reverse.exp
-6e313bfd3e05a66f7cbb9c82e75e3c51  gdb/testsuite/gdb.reverse/insn-reverse.c
-a20073e6dace254ddfcbeeda2925f304  gdb/testsuite/gdb.reverse/insn-reverse-x86.c
-385d1c2ac15c559dc15670ece4e765b9  gdb/testsuite/gdb.reverse/shr1.c
-ca9f66d9d109835e893e99b00b9e5ef8  gdb/testsuite/gdb.reverse/insn-reverse-aarch64.c
-824caca0dd330c7ccb62ea688be2eea2  gdb/testsuite/gdb.reverse/sigall-reverse.exp
-7a2f13e9630eb15256581c2b9038566f  gdb/testsuite/gdb.reverse/recvmsg-reverse.c
-32a557f4481be8e31f393c76510fb55a  gdb/testsuite/gdb.reverse/watch-reverse.exp
-cf4d0d9cb05f146020893e2d50bdd179  gdb/testsuite/gdb.reverse/ur1.c
-24c356d960238a4e3dfd534b4c861041  gdb/testsuite/gdb.reverse/recvmsg-reverse.exp
-60eb6b003c3eadabb7f83f0e4148e035  gdb/testsuite/gdb.reverse/step-reverse.c
-329b4e2636c5d4075fcfef0c2074e507  gdb/testsuite/gdb.reverse/shr2.c
-6b630198264ac20f118e1231d8037673  gdb/testsuite/gdb.reverse/readv-reverse.exp
-2ae89b553903a4c81b30749501568ab7  gdb/testsuite/gdb.reverse/s390-mvcle.c
-40112b6ae6f6a87c9639da3c15d5da54  gdb/testsuite/gdb.reverse/solib-precsave.exp
+f3a9b6da48b1a8827b290be6ba8e29c0  gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.c
+e00547e5432e6f72938334ad6cfb4016  gdb/testsuite/gdb.reverse/consecutive-precsave.exp
+c8098b9357799a56bfe9357c24cdb45b  gdb/testsuite/gdb.reverse/watch-precsave.exp
+95aa6b0005a2b9aabd39b1771d7e200d  gdb/testsuite/gdb.reverse/ms1.c
+b213f98d8a89b8203be71733e9242481  gdb/testsuite/gdb.reverse/waitpid-reverse.c
+20a8523180fd22f40fba9a58205f851b  gdb/testsuite/gdb.reverse/i386-reverse.c
+ca155cc569502ee8c0713fbbb03df5ce  gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.S
+51109acd43ce54ef02c0847d9cfced88  gdb/testsuite/gdb.reverse/i387-stack-reverse.exp
+04f627e50735689726d6574aa184d532  gdb/testsuite/gdb.reverse/pipe-reverse.c
+3f5f03403459a6d339d34d36b38c8d37  gdb/testsuite/gdb.reverse/step-precsave.exp
+5822d6851f7ec93f7db884b5415728b7  gdb/testsuite/gdb.reverse/break-reverse.exp
+4c43a95cc48e1142bcf03555f603959e  gdb/testsuite/gdb.reverse/rerun-prec.exp
+fd246505604fae1914e1a8ee18575a3c  gdb/testsuite/gdb.reverse/fstatat-reverse.exp
+f8402de27ed1c32fdc00cfa40d7ffbc1  gdb/testsuite/gdb.reverse/singlejmp-reverse.exp
+fad9af0b0ae9e72b36201d139d3cd8c2  gdb/testsuite/gdb.reverse/consecutive-reverse.c
+1cf15431b04b5bc05f7a5d39bf4fd5d1  gdb/testsuite/gdb.reverse/i386-precsave.exp
+4c7fcd77ac6a7e29ebfa53e10414bf19  gdb/testsuite/gdb.reverse/finish-reverse.exp
+b21633465bbaf331c721bf493c18a6ec  gdb/testsuite/gdb.reverse/insn-reverse.c
+3305c80a09ba49b3f3d9e7141b0ced32  gdb/testsuite/gdb.reverse/insn-reverse-x86.c
+8c636540c1051e3d645bd0610130f5f9  gdb/testsuite/gdb.reverse/shr1.c
+2c9b743f5c22dd3b0bd4dbb71d65dcf5  gdb/testsuite/gdb.reverse/insn-reverse-aarch64.c
+db6db1988a4000898d348a6b96ab3507  gdb/testsuite/gdb.reverse/sigall-reverse.exp
+b1270b148e3ac8130091868ec5b5449b  gdb/testsuite/gdb.reverse/recvmsg-reverse.c
+679468fddde8aa2b6309d9adca402ce2  gdb/testsuite/gdb.reverse/watch-reverse.exp
+192dff3a3b8208c0b7a3161786e3830d  gdb/testsuite/gdb.reverse/ur1.c
+b6485d2345f5a98de3c796a8e28192ea  gdb/testsuite/gdb.reverse/recvmsg-reverse.exp
+b6145f6e82eab872a3179337c543c180  gdb/testsuite/gdb.reverse/step-reverse.c
+400c0fe32bf7e3f3f599e56e71530aa5  gdb/testsuite/gdb.reverse/shr2.c
+7b289e3543df942ea05700aea471d4fb  gdb/testsuite/gdb.reverse/readv-reverse.exp
+90b29a4cd3a3fe97b31b3115ad15be26  gdb/testsuite/gdb.reverse/s390-mvcle.c
+a11e8e8e01fbc6e11e776e0d49d1ccf6  gdb/testsuite/gdb.reverse/solib-precsave.exp
 7287898ff83b2ad3153f6f7dcdea751e  gdb/testsuite/gdb.reverse/i387-stack-reverse.c
-48581e1c60a8bf1d81308471ca0ee9df  gdb/testsuite/gdb.arch/i386-dr3-watch.exp
-3de845339c50fa2260343567c45ab80b  gdb/testsuite/gdb.arch/amd64-tailcall-cxx.exp
-4a8d7c9c87e9d0f9cb18039d993ed31d  gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
-42c6c64737aca6fb0a67aa84cb199a40  gdb/testsuite/gdb.arch/i386-avx512.exp
-abb6d7802fe7d2b77e43c701745eba68  gdb/testsuite/gdb.arch/gdb1558.exp
-6586f997cca05187a03267df1b88813a  gdb/testsuite/gdb.arch/amd64-tailcall-noret.S
-8168acc7c8452b1e349b45e838287962  gdb/testsuite/gdb.arch/arc-decode-insn.exp
-2d1476f73fbf457df589b80b61f52d07  gdb/testsuite/gdb.arch/i386-float.S
-26d1b9be7d85efbb463c7316ffe12011  gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp
-a9d03c946ec93356929b50d0ac10eca7  gdb/testsuite/gdb.arch/i386-permbkpt.S
-e491ce4d89001572e90e4c667e4af6a7  gdb/testsuite/gdb.arch/i386-permbkpt.exp
-7d150b5a8029506329b7b0ffea206b28  gdb/testsuite/gdb.arch/powerpc-prologue.c
-0446f5cd507f2d4766f2de01beb50d2b  gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.c
-cb1ee20b0d081c50b9ee81a9ea4f49ae  gdb/testsuite/gdb.arch/s390-stackless.S
-7621a01bacac9e747e4d7c27b2166cee  gdb/testsuite/gdb.arch/arm-disp-step.S
+8b462e64f4848cd6861b48a9d27417fd  gdb/testsuite/gdb.arch/i386-dr3-watch.exp
+8d9b90b60550c47ef5b30e391c2ddac7  gdb/testsuite/gdb.arch/amd64-tailcall-cxx.exp
+d373d150d6aa3c78dac8c5691d1ea487  gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
+f1cb2e19690caab837d9e3c128ebbe16  gdb/testsuite/gdb.arch/i386-avx512.exp
+5dca4a57724f94136e3bdb91f97e147b  gdb/testsuite/gdb.arch/gdb1558.exp
+28f4d30212845fee182918caeb04dd49  gdb/testsuite/gdb.arch/amd64-tailcall-noret.S
+8b20e028ec74384a9f73f93d7f33c7e3  gdb/testsuite/gdb.arch/arc-decode-insn.exp
+63d0ecb1b8eb512bbbcc5699515cbfbb  gdb/testsuite/gdb.arch/i386-float.S
+c9296c9f9da2bd9e11d31a4061cb98a2  gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c
+a33dc88a3c9d6324f4aa099154b88953  gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp
+90466b3672211c4b41890e39a50e9a5f  gdb/testsuite/gdb.arch/i386-permbkpt.S
+681070ea54a7cb7c410ed1a5ca17ceb1  gdb/testsuite/gdb.arch/i386-permbkpt.exp
+8372af922aaca9e512c64b879e944208  gdb/testsuite/gdb.arch/powerpc-prologue.c
+c081178e05c22eda925876b90aef7e8f  gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.c
+f952f26dafb791d4505749fdcc33165b  gdb/testsuite/gdb.arch/s390-stackless.S
+10de7f6350130b13db788e7c075fb4da  gdb/testsuite/gdb.arch/arm-disp-step.S
 d839d2710093e744afcac59f950554e9  gdb/testsuite/gdb.arch/i386-biarch-core.core.bz2
-3aa6ac9b62a7b1e40ffc840d74adccd7  gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp
-2242027b55c3876ac1e5d5ceaea49571  gdb/testsuite/gdb.arch/i386-bp_permanent.c
-25337febc3d43621bcbb9b19ae760bc5  gdb/testsuite/gdb.arch/i386-dr3-watch.c
+8458b3865585694dfbeed313c89a2d21  gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp
+8a7a95d1d6bcd5895ee75bc803e7db04  gdb/testsuite/gdb.arch/i386-bp_permanent.c
+307d352ab94bac9d39cc7a4a81771247  gdb/testsuite/gdb.arch/i386-dr3-watch.c
 7e15fe36f59b8e04c5fb0265a6950c3e  gdb/testsuite/gdb.arch/pa-nullify.s
-ba5026744d0b0ebcf3aff1946d34efde  gdb/testsuite/gdb.arch/i386-size-overlap.exp
-c170a89de211b1538eeef312630beba0  gdb/testsuite/gdb.arch/s390-disassembler-options.exp
-ae02850f32762a60975b8e867b79714d  gdb/testsuite/gdb.arch/thumb-bx-pc.exp
-d14bde3fac5a57fdd3ce545c278c3e94  gdb/testsuite/gdb.arch/amd64-entry-value-paramref.S
+0a3d384eab98c07062d247f6a38c4ceb  gdb/testsuite/gdb.arch/i386-size-overlap.exp
+5e486d6dd7a3021b0332994d033ac898  gdb/testsuite/gdb.arch/s390-disassembler-options.exp
+67b975e5f1f971e164d55debee3cdea0  gdb/testsuite/gdb.arch/thumb-bx-pc.exp
+07043738c6238ec0a10d718b3cbd436e  gdb/testsuite/gdb.arch/amd64-entry-value-paramref.S
 a4b44663a9c9d2ac554ea371750489cf  gdb/testsuite/gdb.arch/altivec-regs.c
-753d4b875de8d6edd0ecbbe3d1e332bd  gdb/testsuite/gdb.arch/mips16-thunks-inmain.c
-4dc2ec0fc44d01106aa26b00312e117c  gdb/testsuite/gdb.arch/arc-analyze-prologue.exp
-78125d2c5d788a60719d062383d18cf2  gdb/testsuite/gdb.arch/powerpc-altivec2.s
-d79dcc1cf16534caaf3d0589bcdaae49  gdb/testsuite/gdb.arch/powerpc-vsx.s
-56e692f8386e72a1cb8a6429ea12418b  gdb/testsuite/gdb.arch/powerpc-vsx3.exp
+acba18da831f61ba58b0141f1a1766e8  gdb/testsuite/gdb.arch/mips16-thunks-inmain.c
+e18eee018d92f234dae18ee99902f6a5  gdb/testsuite/gdb.arch/arc-analyze-prologue.exp
+d819604065f25754a39b65347231bea5  gdb/testsuite/gdb.arch/powerpc-altivec2.s
+54318c45fd1f159b317e3004493f7918  gdb/testsuite/gdb.arch/powerpc-vsx.s
+62fb6056a9a66a2e06e32bd4b09f1e76  gdb/testsuite/gdb.arch/powerpc-vsx3.exp
 fcd0dd3432e917999e1b351b9467f52f  gdb/testsuite/gdb.arch/e500-regs.c
-93d048620bb1f14c11e1ad2ca0e7dfd9  gdb/testsuite/gdb.arch/sparc64-regs.S
-563783ada76dd4e47e9816dc0356df94  gdb/testsuite/gdb.arch/amd64-tailcall-noret.c
-cfdf32affe9b9ed43c11832d87718219  gdb/testsuite/gdb.arch/gdb1291.exp
-18680e33edaef1ffa82ebf8a7ce8b971  gdb/testsuite/gdb.arch/amd64-stap-special-operands.exp
-61438b2b03a45d9e28ee59978e4a501d  gdb/testsuite/gdb.arch/gdb1558.c
-f08181a9c9216f01553136589769e49d  gdb/testsuite/gdb.arch/powerpc-stackless.S
-5312307614ae6a1231736671dd748147  gdb/testsuite/gdb.arch/i386-sse-stack-align.S
-d30b61f96ca10570468efbe2865674d7  gdb/testsuite/gdb.arch/i386-avx.c
-165f2d0305794e96f155acc0f8a45517  gdb/testsuite/gdb.arch/spu-info.c
-fafef7855fe3d470113a63718e4aa100  gdb/testsuite/gdb.arch/arm-neon.exp
-b370b201eca590b2c6c4394090ef5f29  gdb/testsuite/gdb.arch/i386-unwind.c
-3b20415e67d00c074f8b808f57ddaacd  gdb/testsuite/gdb.arch/ppc-fp.exp
-a98feb6fddc1e6d1ce193e88142698d9  gdb/testsuite/gdb.arch/gdb1431.s
-b7a433d09cb9a46e2945f967187f2a1e  gdb/testsuite/gdb.arch/amd64-entry-value-param.c
-bdf1fa6da9885e596aead16850addd78  gdb/testsuite/gdb.arch/i386-unwind.exp
-87a89134734be395f6f1ea57bf83ee9f  gdb/testsuite/gdb.arch/amd64-gs_base.exp
-98267795536876dc596cc14ccc0f5882  gdb/testsuite/gdb.arch/mips16-thunks.exp
-a31330f3582f288b1b167100058e96c2  gdb/testsuite/gdb.arch/avr-flash-qualifier.c
-6498897130cc982d9acc2d7919073dee  gdb/testsuite/gdb.arch/i386-mpx-sigsegv.c
-2a07428bd5ee6ff965d526c84c139b21  gdb/testsuite/gdb.arch/thumb-singlestep.S
-33837c162b90f6d860caecde071f7f4b  gdb/testsuite/gdb.arch/gdb1431.exp
-58ecb7028c9feddd212b60856579db48  gdb/testsuite/gdb.arch/gdb1291.s
-e256a54ab20ea11748a89850b05d36ec  gdb/testsuite/gdb.arch/amd64-entry-value-inline.S
-1c5ee798f8216c03cbee7c9880d17a77  gdb/testsuite/gdb.arch/s390-vregs.exp
-79a9db199f93c28d0fd569ad489ed3a3  gdb/testsuite/gdb.arch/altivec-regs.exp
-afb3446d917da844cc64abd1411c6a1f  gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S
+66f6cfa17611d84ab17dcb0f737a14a8  gdb/testsuite/gdb.arch/sparc64-regs.S
+e7ce24af908ff21a6642262e7d0eb28c  gdb/testsuite/gdb.arch/amd64-tailcall-noret.c
+08f2a4cfbab31c22e8b3bb1587d2c46c  gdb/testsuite/gdb.arch/gdb1291.exp
+e062438ab0774c5e96ceca0a0ea01f4b  gdb/testsuite/gdb.arch/amd64-stap-special-operands.exp
+7eaac269e1d0f0d2024c25e4ff29b970  gdb/testsuite/gdb.arch/gdb1558.c
+3af73db33f124dc051397e3135a820da  gdb/testsuite/gdb.arch/powerpc-stackless.S
+d5a9512a1a18e01250e11c9d82da9fef  gdb/testsuite/gdb.arch/i386-sse-stack-align.S
+ae60dedee5e639fb786903a1a889267e  gdb/testsuite/gdb.arch/i386-avx.c
+3c989335ecd94c0194c68cc327a9e794  gdb/testsuite/gdb.arch/spu-info.c
+5cec39b0a4153e75db8217159d87f59f  gdb/testsuite/gdb.arch/arm-neon.exp
+ed9c6d0a3f91a7eb733a811c266b4835  gdb/testsuite/gdb.arch/i386-unwind.c
+4e5aa3c75567b764c03bf7830b62b7fe  gdb/testsuite/gdb.arch/ppc-fp.exp
+4ccba767ff497ff5176a2d75f72073fb  gdb/testsuite/gdb.arch/gdb1431.s
+aa718d7c3e52abf4c1a81d03e6bfae37  gdb/testsuite/gdb.arch/amd64-entry-value-param.c
+105a511fb537bc9b383084fae502c7b7  gdb/testsuite/gdb.arch/i386-unwind.exp
+b11d03fc83dc8e0d588dacb82234bc5d  gdb/testsuite/gdb.arch/amd64-gs_base.exp
+29eda1cd12387721d2d91072f0cf08d1  gdb/testsuite/gdb.arch/mips16-thunks.exp
+eb64e5adff77329677d875b80ba43583  gdb/testsuite/gdb.arch/avr-flash-qualifier.c
+ef0cbb9a5009cc24ca6fc55be9606385  gdb/testsuite/gdb.arch/i386-mpx-sigsegv.c
+58c849db98b070176f849a676b29f1af  gdb/testsuite/gdb.arch/thumb-singlestep.S
+035fda63a860e8239217300f9e54239d  gdb/testsuite/gdb.arch/gdb1431.exp
+d12148680a92e302a46ce4c1371e18ea  gdb/testsuite/gdb.arch/gdb1291.s
+a79b1c13deb00069677595bfd97104ef  gdb/testsuite/gdb.arch/amd64-entry-value-inline.S
+89f1d09d41abcf2420435409eee28eb1  gdb/testsuite/gdb.arch/s390-vregs.exp
+c21ada9ca3946bf4bf115fe05030b180  gdb/testsuite/gdb.arch/altivec-regs.exp
+6e43b10e8ee72c642ac14cb74a9f8490  gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S
 3d59210243b5b8811b386cdba894b522  gdb/testsuite/gdb.arch/vsx-regs.c
-d4bfbb4508fb7feebee4c8300ec84386  gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp
-af0261fc6957ef79413f433a05483703  gdb/testsuite/gdb.arch/powerpc-power9.exp
-f8b11a7257b0e1b6e6d29fa430d5e8e9  gdb/testsuite/gdb.arch/thumb2-it.exp
-c8aa7bdbf85fafb4cf60ef43a2ecf6df  gdb/testsuite/gdb.arch/powerpc-vsx2.exp
-e3c34d6232e93b1ba24fc27b99557bc0  gdb/testsuite/gdb.arch/mips16-thunks-sinfrob.c
-fd166a6f7b4ab795663e19dd538f00c2  gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.exp
-7482ff487493babf0b6cff54f034f52d  gdb/testsuite/gdb.arch/powerpc-aix-prologue.c
-6130d60cceb64e3562e2872cc1c3ddd0  gdb/testsuite/gdb.arch/amd64-optimout-repeat.S
-1432862d7c6bb9e4900d7471224053fa  gdb/testsuite/gdb.arch/sparc64-regs.exp
-48fd3d108bb29f8d96b2cedf3b7577e1  gdb/testsuite/gdb.arch/amd64-stap-triplet.c
-d7e1f9d3b13eeffe0c0e36429bd834a3  gdb/testsuite/gdb.arch/amd64-entry-value.exp
-fe163b34cb2250e62b88f2ae33bcff44  gdb/testsuite/gdb.arch/e500-prologue.exp
-23ee95cfba80697fcb15448f7ffa0215  gdb/testsuite/gdb.arch/amd64-invalid-stack-top.c
-8fde50186a3739da80d251da9fcb14d3  gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.S
+676817aba0706444e4e106a5a4c009bb  gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp
+a350eb281422ac37837d8da1069e6fc5  gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp
+327e9b445ddd8dfb250469f748b8f225  gdb/testsuite/gdb.arch/powerpc-power9.exp
+8403d50fa687047bd9ae71b932b34097  gdb/testsuite/gdb.arch/thumb2-it.exp
+f81cd6820367907bfbfce36f8ea58d48  gdb/testsuite/gdb.arch/powerpc-vsx2.exp
+71bdde2ec2fd3e2c998d9672eefcc508  gdb/testsuite/gdb.arch/mips16-thunks-sinfrob.c
+3f1d0d71a9f1998afb5aecc132f63384  gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.exp
+31523fd6f671b5ef6400b4707328a3c3  gdb/testsuite/gdb.arch/powerpc-aix-prologue.c
+cac2256def4f66bd05b69a1ab5303028  gdb/testsuite/gdb.arch/amd64-optimout-repeat.S
+f077b223d061a4a2e0ea098c3a89291b  gdb/testsuite/gdb.arch/sparc64-regs.exp
+d6891998e093cf6a962a86c1ad970a41  gdb/testsuite/gdb.arch/amd64-stap-triplet.c
+43529c77d2e3237bf44e3e1517179c63  gdb/testsuite/gdb.arch/amd64-entry-value.exp
+dee9a78bf50bfe311c87653baea34cfa  gdb/testsuite/gdb.arch/e500-prologue.exp
+d25a001b906f3243d48b2ecd27e50801  gdb/testsuite/gdb.arch/amd64-invalid-stack-top.c
+7cef6963c991b1ed8cbeec2e72fae33e  gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.S
 bd7cf5e96e9e308cc39648c6ce20d498  gdb/testsuite/gdb.arch/amd64-stap-three-arg-disp.S
-016869cdae4bbdbbd0f19640527d7edd  gdb/testsuite/gdb.arch/arm-neon.c
-3fa333bb3e376796222a649f049f0c55  gdb/testsuite/gdb.arch/ppc64-atomic-inst.S
-0bf4e8cb49de3a30830ddce4febcc1b2  gdb/testsuite/gdb.arch/i386-size-overlap.c
-bc1d327329bae6756c1ac8683939f20c  gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
-ad35e60aa78623cbba92a290eaecac8e  gdb/testsuite/gdb.arch/powerpc-vsx3.s
-b7fb33895888bc9a4c9805492e88605f  gdb/testsuite/gdb.arch/i386-sse-stack-align.c
-c6bc84a20d99d9250e848491d25dff2c  gdb/testsuite/gdb.arch/spu-ls.exp
-30e04eeef7f6aee8220cfffb281fd27a  gdb/testsuite/gdb.arch/i386-sse.exp
+ead5870a5805615a8001df44998bf794  gdb/testsuite/gdb.arch/arm-neon.c
+efe5cd903a6e599248f37e73ea5e3bd7  gdb/testsuite/gdb.arch/ppc64-atomic-inst.S
+ee854293b75948d619800b3e19f296d3  gdb/testsuite/gdb.arch/i386-size-overlap.c
+851886cc138d6078aa8b5760abc172ed  gdb/testsuite/gdb.arch/sparc64-adi.c
+723b87f104bc2dff8b14093eb3c0a783  gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
+a4f0b17ddbbcded06757dc568a773109  gdb/testsuite/gdb.arch/powerpc-vsx3.s
+97b8d1cbedd8ff18450a42631be54fd9  gdb/testsuite/gdb.arch/i386-sse-stack-align.c
+d64a688e25c98573a69830c2c3d27b98  gdb/testsuite/gdb.arch/spu-ls.exp
+279a7e869883b3c68b2b490603d09973  gdb/testsuite/gdb.arch/i386-sse.exp
 19d5d7507bce76e9ca88070248830a61  gdb/testsuite/gdb.arch/altivec-abi.c
-8e1ab53d3faca3df41029fc27de5a314  gdb/testsuite/gdb.arch/amd64-tailcall-ret.c
-08766c5b6a044ba69592e14ce1827535  gdb/testsuite/gdb.arch/powerpc-altivec3.exp
-c3f1f9200acd34d293091891ad70d883  gdb/testsuite/gdb.arch/powerpc-altivec.exp
-51979d19eda281b5ea0356afa8a9319d  gdb/testsuite/gdb.arch/powerpc-vsx2.s
-731404ca26002c6349eb2ba7d60595a3  gdb/testsuite/gdb.arch/i386-mpx-call.c
-eb92266bcb8fdb00b3eb82ce848a9c49  gdb/testsuite/gdb.arch/i386-bp_permanent.exp
-bd278044563c5556afb828758757d9d0  gdb/testsuite/gdb.arch/powerpc-altivec2.exp
-0fab1fbf0adbca9b9f6a6c16b8164998  gdb/testsuite/gdb.arch/amd64-gs_base.c
+21c390674a38330f2dc70b4f406c1836  gdb/testsuite/gdb.arch/amd64-tailcall-ret.c
+7b02525a227cc39784838933e60444f6  gdb/testsuite/gdb.arch/powerpc-altivec3.exp
+ad0129faa15ba9c3ec81642c83f30fb7  gdb/testsuite/gdb.arch/powerpc-altivec.exp
+1c00f4a07bd208dfb6069b98166c10a6  gdb/testsuite/gdb.arch/powerpc-vsx2.s
+2d1d8795a2fa00cf8a9be2700e7d9926  gdb/testsuite/gdb.arch/i386-mpx-call.c
+44666bad05d37669b4c0007c9bb954af  gdb/testsuite/gdb.arch/i386-bp_permanent.exp
+17b2da1d73cd84e854432ec252c03760  gdb/testsuite/gdb.arch/powerpc-altivec2.exp
+58bee324ef879e1854da305f79bf9d82  gdb/testsuite/gdb.arch/amd64-gs_base.c
 11389013dfeba005022a1d910728c9d7  gdb/testsuite/gdb.arch/e500-abi.c
-d6788982ee1a8717a68dc81a1f59d55c  gdb/testsuite/gdb.arch/i386-byte.exp
-ecec52ff4c7ae9b77eb6f8e423141fbc  gdb/testsuite/gdb.arch/powerpc-power7.exp
-6875a559747d3882458a88933a1a69df  gdb/testsuite/gdb.arch/i386-prologue.exp
-842301619ec558b9ea882f1f8f3787dd  gdb/testsuite/gdb.arch/i386-signal.exp
-065ab354b79d32a6ee667aeb9c1b582d  gdb/testsuite/gdb.arch/i386-disp-step.S
-c4ac35cd6b5d85981ae52444bd3fd6ba  gdb/testsuite/gdb.arch/i386-biarch-core.exp
-efdb25c86d92c331591cc17433b7ab78  gdb/testsuite/gdb.arch/powerpc-power9.s
-310f1a9184237161435c944bcf2006e4  gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.S
-3af85c92084c301588ba682432f89de6  gdb/testsuite/gdb.arch/amd64-entry-value-param.S
-1ea5f458774de8c068e3dc052793dcee  gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.exp
-e7b642a5c0d8dc2ea3ada890268c3838  gdb/testsuite/gdb.arch/mips16-thunks-sinfrob16.c
-19fb7aa01de3a2f6439496ab4d4bbc8c  gdb/testsuite/gdb.arch/aarch64-atomic-inst.exp
-c7d13bc42536cab5fb6082a5aa4e7df9  gdb/testsuite/gdb.arch/amd64-entry-value-paramref.cc
-dd7bd6c1918f2c1eb527cf248c53b742  gdb/testsuite/gdb.arch/thumb-singlestep.exp
-ff8533e97fe4ca1085fb6abd030e6bc7  gdb/testsuite/gdb.arch/arc-analyze-prologue.S
-304ca8650226ea6e29ae1ce1943fa98b  gdb/testsuite/gdb.arch/iwmmxt-regs.exp
-6e8f63669acb827d81725a2704fceea2  gdb/testsuite/gdb.arch/powerpc-vsx.exp
-d58eb2383ac0c5f1d6e5505614f31f6e  gdb/testsuite/gdb.arch/i386-avx512.c
-286af98d5c7e37d4fd931a8c80b5a3a6  gdb/testsuite/gdb.arch/i386-mpx-simple_segv.c
-682c022c6f4dc9a3b37387dcb72e005d  gdb/testsuite/gdb.arch/spu-info.exp
-b8aeae033f085ef23e71f88da1796573  gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S
-e1b532afaea18824319b9adcd261f23a  gdb/testsuite/gdb.arch/amd64-pseudo.c
-6ef1baf14807290cdc80de0308013a10  gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.c
-6e6b27751cc3a07d7d698548a5e6b5c8  gdb/testsuite/gdb.arch/thumb2-it.S
-8579aa6e44c2350595c7a1faeb35123a  gdb/testsuite/gdb.arch/i386-cfi-notcurrent.exp
-b7a433d09cb9a46e2945f967187f2a1e  gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c
-38fe548178d697597ac5530b51738224  gdb/testsuite/gdb.arch/thumb-prologue.c
-e5b88482215c4ee3f2ab346089433607  gdb/testsuite/gdb.arch/e500-regs.exp
-bc956e7121fb16f600b6713706dab56d  gdb/testsuite/gdb.arch/amd64-tailcall-self.exp
-e7c555247b2f88d6d65478ac5044ebf3  gdb/testsuite/gdb.arch/powerpc-power8.s
-8930707147eea98d8f43d329561630a8  gdb/testsuite/gdb.arch/ppc-dfp.exp
-0251a154a223b456a3ff31c52346f37c  gdb/testsuite/gdb.arch/s390-tdbregs.c
-5e32f22cde9e5a57dedce8f120efa006  gdb/testsuite/gdb.arch/s390-vregs.S
-0c8e069eb2d43d4b2a6cc4a264520894  gdb/testsuite/gdb.arch/amd64-tailcall-noret.exp
-7a7b1e3fd8e59402be0c5fe274aaf3db  gdb/testsuite/gdb.arch/i386-pkru.c
-40145170e86c85b59409d08a1552669b  gdb/testsuite/gdb.arch/spu-ls.c
-cd81376c6498b7dd4e649b82f2c2bbed  gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp
-5387a95ecd3d0ab704c4af62e7c4964d  gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp
-f6f58fa1d1e87d8cf0b6ce4c1a985476  gdb/testsuite/gdb.arch/amd64-byte.exp
-cbbb5eab90b4d14218984fb9aaf9a9d1  gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp
-9cf4a4d22a2fc6994503463a9bdd9847  gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.c
-8832f7d30dff4a5ca034cc3cc8e5299b  gdb/testsuite/gdb.arch/i386-size.exp
-df7007ed18675998febaedae34f36da0  gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S
-40c1674c2cca608d1bf22683088e753f  gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp
-db1b4f7a0ffae6a24f4965fe43aeb82f  gdb/testsuite/gdb.arch/insn-reloc.c
-09c78add796bf3cefff2aa5d60120f1e  gdb/testsuite/gdb.arch/powerpc-prologue.exp
-c3de4bf835f032dd2b72f846f9987e98  gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.S
-c11b94005e8ed78ae31d0e1556db05f6  gdb/testsuite/gdb.arch/amd64-dword.exp
-3673fc15a812c260e96355aadb18fc77  gdb/testsuite/gdb.arch/avr-flash-qualifier.exp
-1b7dddb17b5601dc1c4eaee2e356186f  gdb/testsuite/gdb.arch/arm-bl-branch-dest.c
-33e705afd75e9a1ddd2b8577cee90319  gdb/testsuite/gdb.arch/i386-cfi-notcurrent.S
-1d23a00e2e780eaa530d5c38cbbf320b  gdb/testsuite/gdb.arch/i386-size.c
-1fe55530b2d619445fb2ea0a31c709b9  gdb/testsuite/gdb.arch/ppc-dfp.c
-256da5df721e6fd29e2c712bd6f1b902  gdb/testsuite/gdb.arch/s390-tdbregs.exp
-fcc5517458e33f28db6392a7b64f6592  gdb/testsuite/gdb.arch/amd64-entry-value-param.exp
-509b45f97e7c80b3f386b3864bc7ecab  gdb/testsuite/gdb.arch/powerpc-disassembler-options.exp
-636299eb3694c4cf89e2e0c6d614fd85  gdb/testsuite/gdb.arch/amd64-prologue-skip.exp
-463b995eaa767c2aac698178755e5c6e  gdb/testsuite/gdb.arch/amd64-word.exp
-949d56012dadd81c998c7e6256f40a89  gdb/testsuite/gdb.arch/amd64-stap-three-arg-disp.c
+b488392ed4f243a6f8044a134a7dd0b5  gdb/testsuite/gdb.arch/i386-byte.exp
+e453068b4dc031620c490d71bf91e01f  gdb/testsuite/gdb.arch/powerpc-power7.exp
+8496e67293249ef51c5c889cfd8b4ce7  gdb/testsuite/gdb.arch/i386-prologue.exp
+b9817e881b15a0fdd18032bbd4f3a37b  gdb/testsuite/gdb.arch/i386-signal.exp
+41b2ac61ba1cc6e88d865adaacf541aa  gdb/testsuite/gdb.arch/i386-disp-step.S
+f048b4cdee1b72b49ad22bcad127e4dc  gdb/testsuite/gdb.arch/i386-biarch-core.exp
+a709d391b0044891494aebbfdaf7e419  gdb/testsuite/gdb.arch/powerpc-power9.s
+290c9ebc93557fabeab6ca96dbc87ad9  gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.S
+f2bd17ae76d98867603c6e4ed68b0e7c  gdb/testsuite/gdb.arch/amd64-entry-value-param.S
+dfe731aff2f36f8fc9c8f5051f02261c  gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.exp
+6d8eef0a7dacaaec44b95243da85673f  gdb/testsuite/gdb.arch/mips16-thunks-sinfrob16.c
+2e4f8f651b23645290f7395b81d54fc4  gdb/testsuite/gdb.arch/aarch64-atomic-inst.exp
+43ff0404dec5c2b46dac3eb5d62de75a  gdb/testsuite/gdb.arch/sparc64-adi.exp
+8c5f56e1494ddc01023094aade2a3eee  gdb/testsuite/gdb.arch/amd64-entry-value-paramref.cc
+527e6f77fcd099379a3bb18eac1111b7  gdb/testsuite/gdb.arch/thumb-singlestep.exp
+51395882523903f61ce32232f97da514  gdb/testsuite/gdb.arch/arc-analyze-prologue.S
+e961d534371ec8af08e82e3bda1d1fb2  gdb/testsuite/gdb.arch/iwmmxt-regs.exp
+7abc6a4809567dc201f86b800420e6c0  gdb/testsuite/gdb.arch/powerpc-vsx.exp
+e8696216f6cf75fe8d8747b2381bde35  gdb/testsuite/gdb.arch/i386-avx512.c
+ada84db15b35e73ad48a14a0cc9b64af  gdb/testsuite/gdb.arch/i386-mpx-simple_segv.c
+2f7812746218262a6c37e0373c5e7ded  gdb/testsuite/gdb.arch/spu-info.exp
+7963f9de6fae6e5d9c71a97dfe721dad  gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S
+8b75801a9c067e518f5e595b32edd31a  gdb/testsuite/gdb.arch/amd64-pseudo.c
+4c1d4d6faa2bf2abdad1d2af54038f40  gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.c
+1bbbd867dfc5fb837c9bf8fc76eef9eb  gdb/testsuite/gdb.arch/thumb2-it.S
+43a046eb31aadd62d9a741d15aac738c  gdb/testsuite/gdb.arch/i386-cfi-notcurrent.exp
+aa718d7c3e52abf4c1a81d03e6bfae37  gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c
+afde38fc7641ebdfbeff371d9179df49  gdb/testsuite/gdb.arch/thumb-prologue.c
+606f837aa31b52cbbcd5ad16c0e22a5e  gdb/testsuite/gdb.arch/e500-regs.exp
+0574e2f71654ffec39cdea67e0d81628  gdb/testsuite/gdb.arch/amd64-tailcall-self.exp
+bd60f56f78e2a5f62c73afc331299c07  gdb/testsuite/gdb.arch/powerpc-power8.s
+ec57c4870bcd6cb64945a3068ed0c4cb  gdb/testsuite/gdb.arch/ppc-dfp.exp
+dfc3eec5177ee1abefdb3c65c5b56e81  gdb/testsuite/gdb.arch/s390-tdbregs.c
+134b79acce9012a4ff03e9e1f2b49496  gdb/testsuite/gdb.arch/s390-vregs.S
+09807e7d23adc45615051b5d806da599  gdb/testsuite/gdb.arch/amd64-tailcall-noret.exp
+f6a5286a3055d9693049ce279db2bc65  gdb/testsuite/gdb.arch/i386-pkru.c
+274b5f4504f7f29b273acee8d939bde0  gdb/testsuite/gdb.arch/spu-ls.c
+05864b19db676745881cd6c1b4c8d264  gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp
+d24f31a8797af8c85c29819b8f250335  gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp
+83c382d6c2d2a2f717ea8b5c8cbea43c  gdb/testsuite/gdb.arch/amd64-byte.exp
+13e329fbf0ad9a28be004753abdd3204  gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp
+b1d714ebde8f5d2c8e0fa6f42a04a5d8  gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.c
+373cde384666285b537437ac19ae48c8  gdb/testsuite/gdb.arch/i386-size.exp
+3218e7b7d94491deeb5798273c30900c  gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S
+069582d199a46310613063e549a66916  gdb/testsuite/gdb.arch/ppc-longdouble.c
+0c3e2b667f01f4ae686ddba73021b60a  gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp
+8c13475f586760fc7e6a2e3c094de6d7  gdb/testsuite/gdb.arch/insn-reloc.c
+4210631e548ab38288476a2706e08b6c  gdb/testsuite/gdb.arch/powerpc-prologue.exp
+8f163121e4c2f7863ecde6fd28a9d9b0  gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.S
+79009727b7ee60c760644f5f78c3634b  gdb/testsuite/gdb.arch/amd64-dword.exp
+6c6663825bbf1edc3849c7eb1cffca85  gdb/testsuite/gdb.arch/avr-flash-qualifier.exp
+e7dbf97bd9ffc0f10ad47f380ded3180  gdb/testsuite/gdb.arch/arm-bl-branch-dest.c
+3e4325e57bdec8bbeb54106b6dc1232a  gdb/testsuite/gdb.arch/i386-cfi-notcurrent.S
+12f0ccc16409e598045cd237fa6b0e8e  gdb/testsuite/gdb.arch/i386-size.c
+ba8bee037f4a5609a4fbd650e2fa15b4  gdb/testsuite/gdb.arch/ppc-longdouble.exp
+000ca6cdd247ef0c95b58948fd779c92  gdb/testsuite/gdb.arch/ppc-dfp.c
+5415aeac3872516cd743541d9062d8ac  gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp
+6b16bb6218da3a187c266aca335b3813  gdb/testsuite/gdb.arch/s390-tdbregs.exp
+dab61a55a7aaa4d4adc33bfe2d91f661  gdb/testsuite/gdb.arch/amd64-entry-value-param.exp
+3bc5567b74cd90c5b64fd7133153c0cd  gdb/testsuite/gdb.arch/powerpc-disassembler-options.exp
+a9e3e69b701e82ef6c1681bb1c853d94  gdb/testsuite/gdb.arch/amd64-prologue-skip.exp
+9b6f9b8b90f705d373bdaf71528067ac  gdb/testsuite/gdb.arch/amd64-word.exp
+a58d0d4acf0c955631af053b9446b923  gdb/testsuite/gdb.arch/amd64-stap-three-arg-disp.c
 5fb2eaef8fa3678d2f93e1b0c7c65be6  gdb/testsuite/gdb.arch/pa64-nullify.s
-c3bca332ca0baae459e9ed9a2a1864ab  gdb/testsuite/gdb.arch/amd64-i386-address.S
-5cd40f40827e2adfd2e0ba0d6901f1f6  gdb/testsuite/gdb.arch/mips16-thunks-sin.c
-eb439d768a4b1d9022f59c3ded8f03c8  gdb/testsuite/gdb.arch/mips16-thunks-sinmain.c
-591049010eec88af920bfb6740ec3580  gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.c
-5368e63f3a36de4b6d942f34d40fb758  gdb/testsuite/gdb.arch/i386-float.exp
-a51d89f6ec9f6e872b3577de2ed9bfba  gdb/testsuite/gdb.arch/aarch64-fp.c
-1cabb81189127855977e1e7dcbd2c325  gdb/testsuite/gdb.arch/i386-gnu-cfi.c
-bece6e96d486de5ae092a583face2c51  gdb/testsuite/gdb.arch/amd64-tailcall-self.c
-c18e9c9562bb2a5435b4678733133320  gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.S
-0e4d7d06e69d2d6373af0d428810289f  gdb/testsuite/gdb.arch/i386-mpx.c
-2358d30ba71f97a1812dcb9711734128  gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp
-371d07421d6b265f339189a57d842330  gdb/testsuite/gdb.arch/amd64-entry-value-inline.c
-62bd613f0ddf8647e3d01336b5573b96  gdb/testsuite/gdb.arch/i386-word.exp
-70d75643573496bc70052d5bcc064083  gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp
-d335a355658c52d2d190ef033b9da5c7  gdb/testsuite/gdb.arch/pa-nullify.exp
-5fe0f8895f373b4bf565c86a21ff81f8  gdb/testsuite/gdb.arch/amd64-disp-step.exp
+8bb0f039597257c7ddd43e0c95bae01c  gdb/testsuite/gdb.arch/amd64-i386-address.S
+5058bb7f753ba89f2d87aae126ffd2c0  gdb/testsuite/gdb.arch/mips16-thunks-sin.c
+204e8d92a6d8d68b33351bd110f60b9e  gdb/testsuite/gdb.arch/mips16-thunks-sinmain.c
+f76c5f03d38cbcdc187cffc24074ec80  gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.c
+31f4f4ab35a9c02e48abf0122ce40d3b  gdb/testsuite/gdb.arch/i386-float.exp
+80c88fdc285b380f21b32752307c32d5  gdb/testsuite/gdb.arch/aarch64-fp.c
+3d3ff0280b149be1cf0dbcd4b75bf8f2  gdb/testsuite/gdb.arch/i386-gnu-cfi.c
+80752f7175f58525ec289f43574e733f  gdb/testsuite/gdb.arch/amd64-tailcall-self.c
+72cc3e87d1b2e8872e287cffffa7782f  gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.S
+4f4ba144c3b1108818b48e46e8949f1a  gdb/testsuite/gdb.arch/i386-mpx.c
+52236496e0cf64b58cde2ea0e053cd93  gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp
+45e94212a5c3af00cd80434f1955883c  gdb/testsuite/gdb.arch/amd64-entry-value-inline.c
+77a537d45909145d493f45e2f8dd1602  gdb/testsuite/gdb.arch/i386-word.exp
+91b4be0288a9dbdcb95dc9791006fb95  gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp
+738360838b40e8f21f1c006b319bf342  gdb/testsuite/gdb.arch/pa-nullify.exp
+005144d707f630abd3abc0c2bce688f2  gdb/testsuite/gdb.arch/amd64-disp-step.exp
 47f14df453e063547c4cf2a4963549e0  gdb/testsuite/gdb.arch/cordic.ko.debug.bz2
-2ca7cf2aed25bf217e3ae4c400168d53  gdb/testsuite/gdb.arch/amd64-tailcall-self.S
-7b6f326e46ef0f366deeb78c51af365d  gdb/testsuite/gdb.arch/arm-bl-branch-dest.exp
-1044c27767aaa23dd545ff28bbe866a1  gdb/testsuite/gdb.arch/powerpc-altivec.s
-3eb9e6477d2cb32dafa0909340918e75  gdb/testsuite/gdb.arch/e500-prologue.c
+2db1c6a9eba120c4915f401a760f30ba  gdb/testsuite/gdb.arch/amd64-tailcall-self.S
+ac42fad2daeb5abce9d3ea4c4847a928  gdb/testsuite/gdb.arch/arm-bl-branch-dest.exp
+378344bac6e6fb1e7a994927b8dcae35  gdb/testsuite/gdb.arch/powerpc-altivec.s
+953c5229b8cd10987f83b5645de45333  gdb/testsuite/gdb.arch/e500-prologue.c
 95994fefa473c3a5f1268727e851739f  gdb/testsuite/gdb.arch/cordic.ko.bz2
-9c18ce862df7976f290942eb12e1fcf8  gdb/testsuite/gdb.arch/i386-avx.exp
-1df5c558c4bd992615eb27788aa12036  gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp
-55d605441a58ae3476b16ac9b1be2b4f  gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp
+bee37d94807fb61ecacdc6fd57ca2886  gdb/testsuite/gdb.arch/i386-avx.exp
+d85b01b668f0c87302503075b7e139cd  gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp
+3697cdc4549c55b87c0f31e5d35908a0  gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp
 278442ba4a9506eea4d650ffb7ce6b4d  gdb/testsuite/gdb.arch/mips-octeon-bbit.c
-5fde1a45b3ed796586f1bea3a52abdb3  gdb/testsuite/gdb.arch/powerpc-d128-regs.c
-4cbf1547606dc8542486c3e4096ea0c6  gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.exp
-f1728f797e992c10e69ad1f25cd8b0bf  gdb/testsuite/gdb.arch/powerpc-altivec3.s
-0171c5ae1102633514aaf0de4e3fa7eb  gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp
-8feab05a13e26e42ef8e2a4e89357720  gdb/testsuite/gdb.arch/alpha-step.exp
-bba8b0cd59053ebec5a4d72ea3e87ecc  gdb/testsuite/gdb.arch/amd64-i386-address.exp
-28f78fe5f0b9836cd0979d4cab86a76d  gdb/testsuite/gdb.arch/powerpc-power8.exp
-4bae284b07f8ad7559a00e545db1c693  gdb/testsuite/gdb.arch/ppc-fp.c
-cb92907c9e371c7aaea1378f93009e35  gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.cc
-4fe1019701e9f3f9da5f4be169866bd4  gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.S
-14d534529bd3277da16cf77e676646e2  gdb/testsuite/gdb.arch/amd64-prologue-xmm.s
-1ff041e416dfcf4e57905aa7b80bd597  gdb/testsuite/gdb.arch/s390-multiarch.exp
-ac781534fa3b03f973383e5b68eb8615  gdb/testsuite/gdb.arch/thumb-prologue.exp
-d8d401378551b95b8a8c8509e1ad042c  gdb/testsuite/gdb.arch/i386-sse.c
-a1fa47106dc3e53a30389d0b70dffb90  gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.S
-077de5d86c8ca2ebc58bd4e7068c93f6  gdb/testsuite/gdb.arch/amd64-tailcall-ret.S
-7424171774a070a38efe8190cb55f87c  gdb/testsuite/gdb.arch/arc-decode-insn.S
-74b0c5647dd3fa0224cae2f4dd7d4943  gdb/testsuite/gdb.arch/amd64-prologue-xmm.c
-ff6a5bacd6e354a4315659960187f6d7  gdb/testsuite/gdb.arch/arm-disp-step.exp
-fb807d246d9e01eb85a0bc3ad779c138  gdb/testsuite/gdb.arch/aarch64-atomic-inst.c
-480ec230b3437f6a20ca65526d0be2e9  gdb/testsuite/gdb.arch/alpha-step.c
-5ffe5d83f1534a7197e62873a422a059  gdb/testsuite/gdb.arch/mips16-thunks-main.c
-107a044278d14d6325559b0dd0494913  gdb/testsuite/gdb.arch/i386-prologue.c
-5062b55d4a2f42e1cfd45c5ecc0e05d1  gdb/testsuite/gdb.arch/sparc-sysstep.exp
-890a3bc53eb3eb3ff16451d7420359d7  gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp
-253fb943e976b51dc8351dc3bf0a4996  gdb/testsuite/gdb.arch/i386-mpx-call.exp
-3111d665652e4bfad65ce7bf1fa3dd1c  gdb/testsuite/gdb.arch/s390-multiarch.c
-8c8cc9a14dc720e8e14a0f2dcf5ccb2f  gdb/testsuite/gdb.arch/s390-stackless.exp
-ca539395aafd4629fdc9843e5bcb6b73  gdb/testsuite/gdb.arch/amd64-prologue-skip.S
-5cd53de6145ee1dff9ea09b8884764f1  gdb/testsuite/gdb.arch/altivec-abi.exp
-acd3f1c67e7944a2da5731aca91922ad  gdb/testsuite/gdb.arch/mips-octeon-bbit.exp
-25d70c6c5dd8549fef2bf8497df6dfec  gdb/testsuite/gdb.arch/amd64-tailcall-ret.exp
-f03abe6ca360930f90e0ed8dd145a187  gdb/testsuite/gdb.arch/i386-pkru.exp
-ffc648b417078b77288c05c7550e2a1c  gdb/testsuite/gdb.arch/i386-mpx-map.exp
-db8617ea553208c9cd0e84e2153c7f04  gdb/testsuite/gdb.arch/i386-disp-step.exp
-6eb78d5926e76d09c4b7990e410f9a9a  gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.exp
-21fac448d6fefe78ca9e4b2aa7fb04c0  gdb/testsuite/gdb.arch/i386-pseudo.c
-bdfd58377826ef3c3fc4e2d05dc8bba5  gdb/testsuite/gdb.arch/sparc-sysstep.c
-32ab16533ece69ac6cdddc04e00a0c7b  gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
-3273326951ea2bc8100df76bd780a88a  gdb/testsuite/gdb.arch/i386-mpx.exp
-0d985a68158a981d2a58afc9f1ab5d93  gdb/testsuite/gdb.arch/amd64-entry-value.cc
-afd6f4df69321a979546dfb3396a87c3  gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp
-14b31a6aa8f5e3469afe8f01329fdfab  gdb/testsuite/gdb.arch/ppc64-atomic-inst.exp
-c32ef260b675f181d022476dc12a3ed6  gdb/testsuite/gdb.arch/e500-abi.exp
-47a77aa4e05d7a7deb267beecd2ae0cb  gdb/testsuite/gdb.arch/mips-fcr.exp
-50c7fba7d65f6dc653d29e2be281fef6  gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.S
-6514336eadd7a88767fd2c1a88d86d78  gdb/testsuite/gdb.arch/aarch64-fp.exp
-5804eb0a26d22c03e4202054d99c5293  gdb/testsuite/gdb.arch/i386-mpx-map.c
-a53c8b676e44881bef1449054df09809  gdb/testsuite/gdb.arch/powerpc-stackless.exp
-18afa2cfb78ce95106a5a763f8bfe5ba  gdb/testsuite/gdb.arch/i386-signal.c
-d2b085b0377b2edf17811d67f89fa30e  gdb/testsuite/gdb.arch/iwmmxt-regs.c
-57b0760b44c0f1c69705554f38e9511e  gdb/testsuite/gdb.arch/amd64-entry-value.s
-45d9e1a014faee6677565d91dc33d28e  gdb/testsuite/gdb.arch/amd64-stap-triplet.S
-db11499314ab7875b73c43787342b6e3  gdb/testsuite/gdb.arch/powerpc-power7.s
-9733668b6ce7f7109686f26db2ef1e87  gdb/testsuite/gdb.arch/amd64-disp-step.S
-4abf2af4926faac2eda3ec210c2a4945  gdb/testsuite/gdb.arch/mips-fcr.c
-17d98c1068f362d6d7770b3d4a9497de  gdb/testsuite/gdb.arch/arm-disassembler-options.exp
-4907bd5db491cb8ba05a4b70481fd900  gdb/testsuite/gdb.arch/thumb-bx-pc.S
-e4f3c0b4f6a83486d94a7d7c1b35a0e5  gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.cc
-4187f1844abe7d05a1d93f96d3644ce8  gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp
-6ff3fe37062365a0e4a73c86cdf787f5  gdb/testsuite/gdb.arch/amd64-optimout-repeat.c
-b5f2a85a57307ce353a4f2dc2c9b5e09  gdb/testsuite/gdb.arch/mips16-thunks-sinmips16.c
-6faccb05485e593a69b21d9ab9681ad0  gdb/testsuite/gdb.arch/vsx-regs.exp
-a6bc0e48e31debff5860390abaa3d202  gdb/testsuite/lib/cl_util.h
-9e249977f196f0d2473846df0e1428ac  gdb/testsuite/lib/fortran.exp
-07064355b6772a87e35ffb1037021741  gdb/testsuite/lib/objc.exp
-bc4c59037bc78c8c78fdb4b75dc5b708  gdb/testsuite/lib/unbuffer_output.c
-5c96907712734dcab40039ba9742f02b  gdb/testsuite/lib/gen-perf-test.exp
-c2816b1b58f872c17dc9636efe81b905  gdb/testsuite/lib/dwarf.exp
-9772d08572f747d5b2abfee728c961cd  gdb/testsuite/lib/gdb-guile.exp
-e4bb72fdd2490b133a4c100317dc2636  gdb/testsuite/lib/memory.exp
-a7f5c48f7868acbaef379fb27a1f3b0d  gdb/testsuite/lib/cache.exp
-bb549b5ac8f63fac2d80a33a9dfa60d8  gdb/testsuite/lib/gdb-utils.exp
-a470e3bedf9a85687e183f02071abac8  gdb/testsuite/lib/dtrace.exp
-b7081d6721b70a0246017e070c758b9d  gdb/testsuite/lib/cp-support.exp
-efae592b1e6e6d8fff7cd1b7041a3956  gdb/testsuite/lib/go.exp
-713afa7c87355d3bd9132b9c8f5097c9  gdb/testsuite/lib/cell.exp
-163e359edb100d58ee22934410aa7bd1  gdb/testsuite/lib/gdb-python.exp
-8c0331fff356bac52ff346227871bfef  gdb/testsuite/lib/gdbserver-support.exp
-3f03fdc293092fbd1b8cc50d56278de9  gdb/testsuite/lib/rust-support.exp
-5367e8a6c402f2dc861078ccec408695  gdb/testsuite/lib/prompt.exp
-d14ccd14e3199d6aae6c334fe27ab598  gdb/testsuite/lib/future.exp
-0aa0f28a855dbedefb194b130cadf461  gdb/testsuite/lib/trace-support.exp
-352fc97a6fceaa505a55bbc4a2aaec55  gdb/testsuite/lib/selftest-support.exp
-8a7ee3c51591a89b3b64bc17944798f7  gdb/testsuite/lib/mi-support.exp
-ed3e70185a2465e1c5d26e76631dc342  gdb/testsuite/lib/ada.exp
+216292630269f1a9f044e29aa6dcea76  gdb/testsuite/gdb.arch/powerpc-d128-regs.c
+0bbe214b9e39355a98e9a7a3359d1c66  gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.exp
+be75229e11c836c5a587fabe3c46d5c5  gdb/testsuite/gdb.arch/powerpc-altivec3.s
+c4b1e9d3c8936c0b8d92d5c31e992c28  gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp
+ec896bffe9402223c6bad5ccc2b22bb7  gdb/testsuite/gdb.arch/alpha-step.exp
+39f417c0a5b2e4efb741d8b0b2fc2763  gdb/testsuite/gdb.arch/amd64-i386-address.exp
+29e2d74eb067edd80bfba28e987c20c1  gdb/testsuite/gdb.arch/powerpc-power8.exp
+ca683972d8f1047d2c4a2fc50ce79286  gdb/testsuite/gdb.arch/ppc-fp.c
+2ff52567aa447dce6ba7b7c35056b619  gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.cc
+a15060608f274e2d0936eb3badff4298  gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.S
+acb510ca1f86a7947e2bfdcd3280d579  gdb/testsuite/gdb.arch/amd64-prologue-xmm.s
+6f2d216b27b5d6e8f5f59ddf881d14e5  gdb/testsuite/gdb.arch/s390-multiarch.exp
+34b83d52eceda19562f604ee0b601b46  gdb/testsuite/gdb.arch/thumb-prologue.exp
+33615af798f50ba1d0461921c6d4a560  gdb/testsuite/gdb.arch/i386-sse.c
+061c82c547db7a6ae81c8f6795f1ba69  gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.S
+f4a12390842509cb9c985238e90c0920  gdb/testsuite/gdb.arch/amd64-tailcall-ret.S
+ad3c3aa417823dde5591e9beff36a6a6  gdb/testsuite/gdb.arch/arc-decode-insn.S
+d8ee432f703a3b7fcd90543906e0c1f5  gdb/testsuite/gdb.arch/amd64-prologue-xmm.c
+4e567d737ce572a15ce77bc4a64ef17b  gdb/testsuite/gdb.arch/arm-disp-step.exp
+33329dd76c3c04d0f3ede1e44b03bb18  gdb/testsuite/gdb.arch/aarch64-atomic-inst.c
+dfeb9a18bb63cda5184145a893a04a9b  gdb/testsuite/gdb.arch/alpha-step.c
+919b2a1c7f5c9d8d3fce720163ebd171  gdb/testsuite/gdb.arch/mips16-thunks-main.c
+e1ad2a55e4a6d243b442c4bd977981d4  gdb/testsuite/gdb.arch/i386-prologue.c
+26a415536f49300e67113826ebed9bb9  gdb/testsuite/gdb.arch/sparc-sysstep.exp
+2ca827af71753e31f4aff599aa610841  gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp
+16e9ce8a78f6b568c14554e7bc444426  gdb/testsuite/gdb.arch/amd64-disp-step-avx.S
+398e7fafcc1a648a92901c661af2f8c8  gdb/testsuite/gdb.arch/i386-mpx-call.exp
+534c79be217bb68cd32d3e457165b030  gdb/testsuite/gdb.arch/s390-multiarch.c
+9c883b1e2dd587785543c3469f3d2e25  gdb/testsuite/gdb.arch/s390-stackless.exp
+7137eb0395e68fe972a151b11ca6ad3d  gdb/testsuite/gdb.arch/amd64-prologue-skip.S
+de9fb21ad60c0a7022d761bed089a05c  gdb/testsuite/gdb.arch/altivec-abi.exp
+4de292cfde9b6a72dca1532b638b6c66  gdb/testsuite/gdb.arch/mips-octeon-bbit.exp
+fe09d8792c42512cf65db1dbddc94573  gdb/testsuite/gdb.arch/amd64-tailcall-ret.exp
+412fcdfa91aae21b7353da734b4a9c44  gdb/testsuite/gdb.arch/i386-pkru.exp
+820d924b2be6616488506c4a70060d7b  gdb/testsuite/gdb.arch/i386-mpx-map.exp
+d03f6ab076afafb0d6a2522d79473070  gdb/testsuite/gdb.arch/i386-disp-step.exp
+7d228ffb9283127e0d7ec4f63bf26953  gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.exp
+08039ce4de51cce5b143dd0d57b13f03  gdb/testsuite/gdb.arch/i386-pseudo.c
+e769ea06c3eb3a43f5d70da0e228d4fb  gdb/testsuite/gdb.arch/sparc-sysstep.c
+052557e7803e29a7b2142f383c477f1c  gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
+78effbe880a0a3dd3b44af7ace26d5ae  gdb/testsuite/gdb.arch/i386-mpx.exp
+ae5ac2d5be2d4dd27cd1f89a65efb09b  gdb/testsuite/gdb.arch/amd64-entry-value.cc
+2eb532d28ea5d568a63c7ca43e7a307d  gdb/testsuite/gdb.arch/i386-mpx-sigsegv.exp
+49bfe930c02f925554652b5b5fa18451  gdb/testsuite/gdb.arch/ppc64-atomic-inst.exp
+acc724293d3da017c152df687c27ab58  gdb/testsuite/gdb.arch/e500-abi.exp
+4f637b2bd25ad89bc7fcfb8e0f991673  gdb/testsuite/gdb.arch/arc-tdesc-cpu.exp
+324f1d3bd2c518a5312577e87363484f  gdb/testsuite/gdb.arch/mips-fcr.exp
+04eab82faa6d63ce34825d79b4c7f584  gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.S
+5e729a4e06284743bdf29e015687dec9  gdb/testsuite/gdb.arch/aarch64-fp.exp
+be5b03f6bd006c2f92bc1ed6399dbaec  gdb/testsuite/gdb.arch/i386-mpx-map.c
+3368a02777d84c6dabe737f347568b3b  gdb/testsuite/gdb.arch/powerpc-stackless.exp
+99e5244e35d0b02a5b725cbe56ca025e  gdb/testsuite/gdb.arch/i386-signal.c
+7340c80079842b9326eb3011ca4ddcd3  gdb/testsuite/gdb.arch/iwmmxt-regs.c
+3a18a0cf12d558661068a13ec0f47032  gdb/testsuite/gdb.arch/arc-tdesc-cpu.xml
+aa3b9db50048d6079165cab8cc3f4f50  gdb/testsuite/gdb.arch/amd64-entry-value.s
+bde6bd7e2c8ce5078f43fff2c9e357e4  gdb/testsuite/gdb.arch/amd64-stap-triplet.S
+1d7018b8adb056e746c615f100fece08  gdb/testsuite/gdb.arch/powerpc-power7.s
+c5189796039f17662d671c9a1e597b74  gdb/testsuite/gdb.arch/amd64-disp-step.S
+4302f0c9b816ff2fbcf8d95f4f231f34  gdb/testsuite/gdb.arch/mips-fcr.c
+7056fd8eff784d44c8b0daea86cacd75  gdb/testsuite/gdb.arch/arm-disassembler-options.exp
+51bcd5a26663cbe3e9cfec5f53c62bd4  gdb/testsuite/gdb.arch/thumb-bx-pc.S
+b1ef1571182e603aaf52acc35493f2e5  gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.cc
+08eb751c64e0ba031b44b62ff1879ec1  gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp
+f57bb0a28cba3cf2c2725aa4f044067e  gdb/testsuite/gdb.arch/amd64-optimout-repeat.c
+7bbffa50d24ebd141a600e46a2f6a83a  gdb/testsuite/gdb.arch/mips16-thunks-sinmips16.c
+dd11d784f0e9d883404b237201525a0c  gdb/testsuite/gdb.arch/vsx-regs.exp
+45ec0c0d787ba825255a82f038513ac2  gdb/testsuite/lib/cl_util.h
+e54bf3e2796781199fe72c967cf4c8e1  gdb/testsuite/lib/fortran.exp
+9ba284a4bc681aba881a5bf40119db3c  gdb/testsuite/lib/objc.exp
+4c670577d4d64bffd5cc8f47fa70944d  gdb/testsuite/lib/unbuffer_output.c
+94b8943228e6d45c94364ba62263f330  gdb/testsuite/lib/gen-perf-test.exp
+313cf4d48325fae8a9b4f359817b4116  gdb/testsuite/lib/dwarf.exp
+705ffa672c004b7267cfdd1da5b7789a  gdb/testsuite/lib/gdb-guile.exp
+0f1e47bf77e449bbe19b8388b296e679  gdb/testsuite/lib/memory.exp
+d9223d6e7546c16f8e68d121fab3c1c7  gdb/testsuite/lib/cache.exp
+733436f34207f3cc5ba2bcf8e6d370ce  gdb/testsuite/lib/gdb-utils.exp
+b3ce085612e387fbd0dfe17bf99ae8e4  gdb/testsuite/lib/dtrace.exp
+606fec6be212b0a942772f6fe6539a39  gdb/testsuite/lib/data-structures.exp
+46e9bbb7ce5dd96b76e180d37c7ebaa8  gdb/testsuite/lib/cp-support.exp
+da2cdb2eeb4cd11fe973220282f7bde8  gdb/testsuite/lib/go.exp
+d0407b115dcbce5288baff4b12ec7157  gdb/testsuite/lib/cell.exp
+12109cdd85c7376a3ff0af63f7275b28  gdb/testsuite/lib/gdb-python.exp
+d7ebed773ab45f0ac636bfd28c4a3f0c  gdb/testsuite/lib/gdbserver-support.exp
+b8028b7ede173dd6a5d1bb059be11fbb  gdb/testsuite/lib/rust-support.exp
+199a36a209e2a76cae60f2808ccbed16  gdb/testsuite/lib/prompt.exp
+0877507e7333bfd373d58a52ada8bd17  gdb/testsuite/lib/future.exp
+60c6874d1ec3b971e3adf6f8732d08aa  gdb/testsuite/lib/trace-support.exp
+9c3943a962729ff496085944498f10aa  gdb/testsuite/lib/selftest-support.exp
+d36767d3205e5f584ea65908e3131606  gdb/testsuite/lib/mi-support.exp
+87fef3b48b51dd414fb21061782da0ba  gdb/testsuite/lib/ada.exp
 b95dc2a351d65373861d5ccbc6f62d5c  gdb/testsuite/lib/opencl_kernel.cl
-0e464037211e80a72846521a2422c594  gdb/testsuite/lib/compiler.c
-8658e9572ac3833626e621809467e149  gdb/testsuite/lib/pascal.exp
-f0f9812544fbf3febf49f63eeb108272  gdb/testsuite/lib/cl_util.c
-4ab3608f2f6f0591d853dca4c11cb2d0  gdb/testsuite/lib/range-stepping-support.exp
-ecda91c23307e69e4eae1c54a26f108a  gdb/testsuite/lib/build-piece.exp
-4810149644812bfaf569f77195c90294  gdb/testsuite/lib/d-support.exp
-434081bdad031d75fadab2b46a27cf3f  gdb/testsuite/lib/pdtrace
-3fc0afaefdd12f214a86c0c4b267b12f  gdb/testsuite/lib/set_unbuffered_mode.c
-cbcfdb6fbe41d3e42b76a091bb670acf  gdb/testsuite/lib/read1.c
-d4bb64dfccab5e10da43c27a734b630b  gdb/testsuite/lib/prelink-support.exp
-62a15492e999d74adfa1080812a66c90  gdb/testsuite/lib/opencl.exp
-804b52af015877c3c5d5c1d40b3c0ccd  gdb/testsuite/lib/perftest.exp
-e5eee39026bbf1e0d9965aa3c2e0e31d  gdb/testsuite/lib/gdb.exp
-744df234382c06b7606fb481bbf609ef  gdb/testsuite/lib/compiler.cc
-c7e6bb4c2c458ffbb0713198539e6f2e  gdb/testsuite/lib/opencl_hostapp.c
-af21f251584233a7dcd1d202966e3576  gdb/testsuite/lib/append_gdb_boards_dir.exp
-3aab9fedde35e080cfcd2e49a3938a84  gdb/testsuite/lib/pdtrace.in
-892cf4b4fdc8679a3d04c3dd84ff524c  gdb/testsuite/dg-extract-results.sh
-9e817944325b59da1635623443a4970d  gdb/testsuite/gdb.linespec/break-ask.exp
-67074fba939de727ce987e4988117bc9  gdb/testsuite/gdb.linespec/ls-dollar.exp
+4785299b89956f4836cedc84d0316217  gdb/testsuite/lib/compiler.c
+560e1dd494ba85febf51f6568d2c90ad  gdb/testsuite/lib/pascal.exp
+8c06251e447bcdba20248e84279f50e3  gdb/testsuite/lib/cl_util.c
+11a7b9fb0dd62b9345b0bc4b1fce7161  gdb/testsuite/lib/range-stepping-support.exp
+ddf66858343e9bf9372463e3fed190f7  gdb/testsuite/lib/build-piece.exp
+60c1f41d307dca15af32a98db6ab1847  gdb/testsuite/lib/d-support.exp
+2c18520a5a683b4850ce96b8ba31ae9a  gdb/testsuite/lib/pdtrace
+b8f67f2c3cc7da275ad2b0894603cc62  gdb/testsuite/lib/set_unbuffered_mode.c
+492d49c88054b1ebf1f3aa83ef40638b  gdb/testsuite/lib/read1.c
+ef3577abb3f3f89af83172cbfadb6136  gdb/testsuite/lib/prelink-support.exp
+4530d0192912185f69096874ba108361  gdb/testsuite/lib/opencl.exp
+8b5c5afb411d05e4db63d7523efe9795  gdb/testsuite/lib/perftest.exp
+d3bf85bd773983a2680ea8e90473b4bf  gdb/testsuite/lib/gdb.exp
+f79bf7d30510d6aff4056c1fd74155b2  gdb/testsuite/lib/compiler.cc
+c9d0956f50332b9716b743f8cee4e81b  gdb/testsuite/lib/opencl_hostapp.c
+381994835e61543d88f690d73cea33cd  gdb/testsuite/lib/append_gdb_boards_dir.exp
+79f6ff1a009188a1151e2bb6b10cde60  gdb/testsuite/lib/completion-support.exp
+0c2300fb348cea6f70839dee140ef31b  gdb/testsuite/lib/pdtrace.in
+0a0bf1da2adebab28c6c23cc18db0588  gdb/testsuite/dg-extract-results.sh
+f235ec3bb7c127ba6189e1b38801839d  gdb/testsuite/gdb.linespec/cpls-ops.cc
+08ae1bc33fd6e971f7db082eccec198a  gdb/testsuite/gdb.linespec/break-ask.exp
+f9777d3ed59d9f9add11c51afaddab19  gdb/testsuite/gdb.linespec/ls-dollar.exp
 76efa0be5b547481043ba197cad7a14e  gdb/testsuite/gdb.linespec/lspec.h
-0f67d3db290971e2c8c64e9801e9bd5d  gdb/testsuite/gdb.linespec/explicit2.c
-66c22307ab746ee15e8352f33ea23e29  gdb/testsuite/gdb.linespec/ls-errs.c
-673f4c0756a3f63ae4e03aa3e3966912  gdb/testsuite/gdb.linespec/macro-relative.c
+5509f7dd4dcaabf0a69a5763646f7945  gdb/testsuite/gdb.linespec/explicit2.c
+8f96ed1b850e2d88d1bc8f9dcce7cbc0  gdb/testsuite/gdb.linespec/ls-errs.c
+23d575c8b122b0561b6e64215268bd41  gdb/testsuite/gdb.linespec/cpls-ops.exp
+b244553988f1903ae994f6455e1f0391  gdb/testsuite/gdb.linespec/macro-relative.c
 8ce9a284b978283fc01c139afe700294  gdb/testsuite/gdb.linespec/body.h
-10776d07b3d3c355cfce996881ae39d3  gdb/testsuite/gdb.linespec/ls-dollar.cc
-7c10e9cd4cba3e82056fa32cd5e7357f  gdb/testsuite/gdb.linespec/thread.c
-57ae1ae8dd7784ab83bf3af887883438  gdb/testsuite/gdb.linespec/linespec.exp
-0f4eb8e2338ea3d24e6257db0d00e2c0  gdb/testsuite/gdb.linespec/ls-errs.exp
-69f1fd20f29aa0fd00b647e7c0745e9d  gdb/testsuite/gdb.linespec/break-asm-file.exp
-fd9f107dfdc2a4b200f131ca2a53e55c  gdb/testsuite/gdb.linespec/break-asm-file1.s
-5d70b53f8d809bcfcbd23095a0cc7918  gdb/testsuite/gdb.linespec/macro-relative.exp
-15d20eab8bab4ac535e2a44fc413400c  gdb/testsuite/gdb.linespec/explicit.exp
-da3ee0bf6cb8d2139877abb5f6b7a652  gdb/testsuite/gdb.linespec/break-asm-file.c
-b2bf6a5675f463cbe982e526bd1cb0be  gdb/testsuite/gdb.linespec/3explicit.c
-679338b584f1d72bd57c218206a6311e  gdb/testsuite/gdb.linespec/explicit.c
-81341a66c86e0f663925f3f5959aaba9  gdb/testsuite/gdb.linespec/cpexplicit.cc
-a5a1d66db1b7dd53f0121051b2c507d3  gdb/testsuite/gdb.linespec/skip-two.exp
-94051d2991a5180a38f0b716f6b67d50  gdb/testsuite/gdb.linespec/keywords.exp
-819e54a96e620af528ae5b89143e716a  gdb/testsuite/gdb.linespec/base/two/header.h
-19ac3aa96cadd1d20732457e0e3053ab  gdb/testsuite/gdb.linespec/base/two/thefile.cc
-903f57f99c8f9d3889d8617da9504aad  gdb/testsuite/gdb.linespec/base/one/header.h
-9e68815869f17594fa674700abc8928b  gdb/testsuite/gdb.linespec/base/one/thefile.cc
+e3ecdee22255803c2abe066c58d58e5c  gdb/testsuite/gdb.linespec/ls-dollar.cc
+4a066085e2dc8ad1176c38b70d2eb70a  gdb/testsuite/gdb.linespec/cpls-abi-tag.exp
+e3fcaf08d80ad8860ed2197c2eb0b3c1  gdb/testsuite/gdb.linespec/thread.c
+ae38a9b679279658a7b36d4f775ef23b  gdb/testsuite/gdb.linespec/linespec.exp
+321471d647fa5b63b49b5c0deb6d0fbd  gdb/testsuite/gdb.linespec/ls-errs.exp
+cb6c1e30a408cffb5a2583e48f2cf41a  gdb/testsuite/gdb.linespec/break-asm-file.exp
+0aee31e742a5837b64890d42a56426b1  gdb/testsuite/gdb.linespec/break-asm-file1.s
+2c6846dd81f76bb88ab9ee5147032c90  gdb/testsuite/gdb.linespec/macro-relative.exp
+62dbe6473039af5175cea902f0605c0d  gdb/testsuite/gdb.linespec/explicit.exp
+3f4a29aefc9d03e56ba3bb338cbd8785  gdb/testsuite/gdb.linespec/break-asm-file.c
+b57ae7894e80c363818bc7049f9e26b3  gdb/testsuite/gdb.linespec/3explicit.c
+bb687b383eb075f8fe7615c63f1e5662  gdb/testsuite/gdb.linespec/explicit.c
+b6688806deaa37bd3e031f4cd23487c0  gdb/testsuite/gdb.linespec/cpexplicit.cc
+e535ff0a869d27f2a058858520807ef8  gdb/testsuite/gdb.linespec/skip-two.exp
+9974433d860ebfd66f9a776dbbca9516  gdb/testsuite/gdb.linespec/keywords.exp
+135b8ae197a98f28f5c8cd547f7d778a  gdb/testsuite/gdb.linespec/cpcompletion.exp
+44de0b38513ed1a92d47e45dcabe578b  gdb/testsuite/gdb.linespec/base/two/header.h
+2353921c5d41b4575547837a65d062c5  gdb/testsuite/gdb.linespec/base/two/thefile.cc
+b9b9a5e4083fb71d3ec7dce530441170  gdb/testsuite/gdb.linespec/base/one/header.h
+ccb4c8a58a1e1984a826873686972178  gdb/testsuite/gdb.linespec/base/one/thefile.cc
 e4ef70c3aaa633b4a8d4dfd5d86fe147  gdb/testsuite/gdb.linespec/lspec.cc
-9716827abe019cc56de37a2006ac257e  gdb/testsuite/gdb.linespec/cpexplicit.exp
-25367170449efddbe98212065b5a7d79  gdb/testsuite/gdb.linespec/keywords.c
-ab9385d57ef9f4d8e9f77fb4600efa0f  gdb/testsuite/gdb.linespec/break-asm-file0.s
-f23c3b8b030293c1bb47e7b5f095fa8c  gdb/testsuite/gdb.linespec/thread.exp
-05e5e0cabd927c291dea3f7b1810881e  gdb/testsuite/gdb.trace/status-stop.exp
-5cac697ce50332733524f9b6c032dad4  gdb/testsuite/gdb.trace/trace-break.exp
-2b454e5a8fad482946251565c2762d7a  gdb/testsuite/gdb.trace/range-stepping.c
-6c9004687e06160874e46d8069e6d1a1  gdb/testsuite/gdb.trace/ax.exp
-f97c9d58c4612f9236de78dea64eee3e  gdb/testsuite/gdb.trace/tfind.exp
-18654f5e6898414ec8968d34e28e2c60  gdb/testsuite/gdb.trace/mi-tsv-changed.exp
-b3713a2e6dcf1ea45197fe86ed67b4c9  gdb/testsuite/gdb.trace/tstatus.exp
-b57b91e94a2939c24f385ed123f9c714  gdb/testsuite/gdb.trace/change-loc-2.c
-07dff8779e1f23a7ec8fd3aeaaa9b711  gdb/testsuite/gdb.trace/deltrace.exp
-0cccdcc7688a9bb1dbd15698c73eac0e  gdb/testsuite/gdb.trace/qtro.exp
-66a604d1c2ab2b064b90b7be89288846  gdb/testsuite/gdb.trace/circ.c
-0c67f51257bf99908ee7c968a83da526  gdb/testsuite/gdb.trace/packetlen.exp
-4bb87f3fed9c62984f84daa4bec98190  gdb/testsuite/gdb.trace/collection.c
-3be128ab247c7b66c47e7f1890ba78d6  gdb/testsuite/gdb.trace/stap-trace.exp
-6962186bdbb0584663e9cbf523128fcb  gdb/testsuite/gdb.trace/ftrace.c
-ce432568806485f8ef9ca70b1ecd6938  gdb/testsuite/gdb.trace/entry-values.exp
-8a653c16145ce7f46a7e4bae8a497237  gdb/testsuite/gdb.trace/mi-traceframe-changed.exp
-b7cc848cff170d71e12f30624e7c3aa0  gdb/testsuite/gdb.trace/pending.exp
-d46afc6761e46aee8fe250c6ec907e9e  gdb/testsuite/gdb.trace/actions.exp
-e96cce0fb2502840cb8b1ac896f92609  gdb/testsuite/gdb.trace/status-stop.c
-9c36d3dbf2b229384742ae67a9f6bc37  gdb/testsuite/gdb.trace/trace-buffer-size.c
-a6fbe0f70047064fa6e782da3a16358a  gdb/testsuite/gdb.trace/collection.exp
-1a877afed3d64c29b947a25e2cbaf89a  gdb/testsuite/gdb.trace/mi-trace-unavailable.exp
-ac3a7a21c7a8cd584ade7509438ebaec  gdb/testsuite/gdb.trace/actions.c
-bb9e4a9c6c10dc546ea8b201a0852090  gdb/testsuite/gdb.trace/while-dyn.exp
-ede3a58a61ff6c5d92ade2a7feb8f545  gdb/testsuite/gdb.trace/actions-changed.c
-1b082330e6eafd86df3d900019cf70c2  gdb/testsuite/gdb.trace/save-trace.exp
-c7921e943738735c5398c5a012c51eac  gdb/testsuite/gdb.trace/trace-common.h
-b1f6ae25d12d6163d23750626c567edc  gdb/testsuite/gdb.trace/trace-break.c
-8e0dfe364eef0b73cbbed8a47f20b2c2  gdb/testsuite/gdb.trace/change-loc.h
-daabc7422f5b9d0d41b38f539533e5d4  gdb/testsuite/gdb.trace/pendshr2.c
-a44b6556cc159599875c066451c391a2  gdb/testsuite/gdb.trace/no-attach-trace.exp
-7d08ab62e8c5ab64762d5c9ca86d9f39  gdb/testsuite/gdb.trace/tracefile-pseudo-reg.c
-f850db34840dbaf5b36d808539eae090  gdb/testsuite/gdb.trace/strace.c
-f302e8c3774ec36d73bfd4674c5e5eab  gdb/testsuite/gdb.trace/ftrace.exp
-81e32b1737e70a8ac82e867f25c033c2  gdb/testsuite/gdb.trace/trace-enable-disable.exp
-4e3629a9d0b052bc681e1fdbcfac53cc  gdb/testsuite/gdb.trace/qtro.c
-1089fc3916e70ed2b448f470ec338220  gdb/testsuite/gdb.trace/disconnected-tracing.c
-4da6d2702f063e59aaad043a2b59ccb4  gdb/testsuite/gdb.trace/tspeed.exp
-ea2aeb0314ff78498a48e88ebdbaedb1  gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp
-39e4f015cbbac292b36c2f22725417f6  gdb/testsuite/gdb.trace/pending.c
-eb526ebfb172a44912f89b7e198cfb12  gdb/testsuite/gdb.trace/pendshr1.c
-fef49b041d04e0b4447239736e3e7419  gdb/testsuite/gdb.trace/tsv.exp
-2243e3fb1e395df48688d09b9ed1a0c6  gdb/testsuite/gdb.trace/infotrace.exp
-e5ff2b4184e75a02b6f6efe29c34a1f3  gdb/testsuite/gdb.trace/read-memory.exp
-9605e9edd3d02eda838ada9d8c75845a  gdb/testsuite/gdb.trace/circ.exp
-44546677a192aa3b23964b56878ca012  gdb/testsuite/gdb.trace/mi-trace-save.exp
-a50ba61fe2bc08fbdb4ad2c7425fd99c  gdb/testsuite/gdb.trace/signal.exp
-c2f62496f3120d94aacb37e80f53d6be  gdb/testsuite/gdb.trace/unavailable.exp
-916e5468fed8a027987eea4d7765a4aa  gdb/testsuite/gdb.trace/trace-buffer-size.exp
-ee29f20026e88960b5daf9ec7772c809  gdb/testsuite/gdb.trace/trace-condition.c
-c0607a2e81f563e8ed87b2e26bfcfd4c  gdb/testsuite/gdb.trace/change-loc.exp
-5e01ea3f71ea4c886d033225bf0be58d  gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp
-655baeb1044d0c6d58bbe2b0fbd55bdc  gdb/testsuite/gdb.trace/trace-enable-disable.c
-2fb75d8c5ecc2f0b720ddedf7c396cf1  gdb/testsuite/gdb.trace/unavailable-dwarf-piece.c
-2010ad8b445780dfa14e61fb46e27274  gdb/testsuite/gdb.trace/stap-trace.c
-4d366bbac1c259920f846f073c09427f  gdb/testsuite/gdb.trace/trace-condition.exp
-6933982a68cc57dfbb8f7f09fcb595c1  gdb/testsuite/gdb.trace/trace-unavailable.c
-40dcc710d3eb6994b9a31c51d9861afd  gdb/testsuite/gdb.trace/disconnected-tracing.exp
-e84ce5d3c7238d4bb5c51d2b1aa95463  gdb/testsuite/gdb.trace/pr16508.exp
-ec976c8709bf352003ff1057f66e507c  gdb/testsuite/gdb.trace/tfile.c
-a572cd505c882b74982770c0a76ba5a3  gdb/testsuite/gdb.trace/ftrace-lock.c
-65f4af80f555deb6c87c4bcaffd153af  gdb/testsuite/gdb.trace/ftrace-lock.exp
-313bcbc572c57d8dfa2b731611ae0f9f  gdb/testsuite/gdb.trace/unavailable.cc
-b3979098c4579f5106bbb957949259c2  gdb/testsuite/gdb.trace/read-memory.c
-5ce275a6d69c8c49085ca252da20a657  gdb/testsuite/gdb.trace/signal.c
-38b9481030f3e61dd2e550e3a3fd68df  gdb/testsuite/gdb.trace/change-loc-1.c
-17067fb8c4c2750ac7f3e8c3dbc74b16  gdb/testsuite/gdb.trace/strace.exp
-18a2dc79e7c7706c047042e5d5d15050  gdb/testsuite/gdb.trace/no-attach-trace.c
-fd3b2b4d8112168b03b1bd739585eb00  gdb/testsuite/gdb.trace/tracefile-pseudo-reg.exp
-7b4d488a8a5649410ba9ab6d0229434c  gdb/testsuite/gdb.trace/while-stepping.exp
-a91077d06eb99bc442216c86a3601c19  gdb/testsuite/gdb.trace/tfile.exp
-dab7e1dc9ab56cfcc5400f973322e118  gdb/testsuite/gdb.trace/passcount.exp
-b5a72f207eba1bc9291750739bce2660  gdb/testsuite/gdb.trace/trace-mt.c
-1fb57308594e4e7ba9d19a00aec415d7  gdb/testsuite/gdb.trace/tspeed.c
-45f51878c4e1b80494e410a893358c26  gdb/testsuite/gdb.trace/entry-values.c
-a3ffd988be7a9cafa0a675b5f9f19832  gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp
-0d806673015bc191e57645106b99f2f4  gdb/testsuite/gdb.trace/change-loc.c
-eaf066f0bcbfb9159c14d6619ba3d696  gdb/testsuite/gdb.trace/actions-changed.exp
-ba22d0137c4c107bb2bed14ef520d3d0  gdb/testsuite/gdb.trace/report.exp
-9e61483c3f54f591295402407ecb9acc  gdb/testsuite/gdb.trace/range-stepping.exp
-09fefbd246cf7d07a4807e0bd059094f  gdb/testsuite/gdb.trace/tracecmd.exp
-587e0fcf5c0a8c78abbe39b5763ea132  gdb/testsuite/gdb.trace/backtrace.exp
-5e74c4083c0d84cb7c4199b3893a30bf  gdb/testsuite/gdb.trace/passc-dyn.exp
-3c9fa09dfa2ea25a20db7a33de60e18a  gdb/testsuite/gdb.trace/trace-mt.exp
+b5ac8582ffca4f5704ef7d8ca0a1bf96  gdb/testsuite/gdb.linespec/cpls.cc
+77d324b280af523c22c3930971537f43  gdb/testsuite/gdb.linespec/cpexplicit.exp
+39a9827ea98ac053598da40759f95a3a  gdb/testsuite/gdb.linespec/cpls2.cc
+6f9ed6b1735cf729bec5b2c7d74f4f99  gdb/testsuite/gdb.linespec/keywords.c
+0b76adbd9048d76682e960b82f6149c2  gdb/testsuite/gdb.linespec/break-asm-file0.s
+46cb4f2f82f349616d1d3085d86fceca  gdb/testsuite/gdb.linespec/thread.exp
+a865f39c13b37a71b11e1b957092b9f2  gdb/testsuite/gdb.linespec/cpls-hyphen.cc
+5e2f47c554d7b6a047901fc2e4d030aa  gdb/testsuite/gdb.linespec/cpls-abi-tag.cc
+2dfee9c9d4c8446f39f33e149f80a6e1  gdb/testsuite/gdb.trace/status-stop.exp
+748ab08340ccda9b621a21eda5ec4e9a  gdb/testsuite/gdb.trace/trace-break.exp
+1b533f28d93518e90abd9cb28ce18ffd  gdb/testsuite/gdb.trace/range-stepping.c
+408d51325510f6057a87c85c74fbc79e  gdb/testsuite/gdb.trace/ax.exp
+02867685f38b2e4147a0c529e5fc14f0  gdb/testsuite/gdb.trace/tfind.exp
+8284a31f4c91aac51e63425f2dc33ec8  gdb/testsuite/gdb.trace/mi-tsv-changed.exp
+42fd15845ecbe7d56ed3261225d36996  gdb/testsuite/gdb.trace/tstatus.exp
+aef6be8b18d95776376b8b4900b86d67  gdb/testsuite/gdb.trace/change-loc-2.c
+4459a9384401058dbe8c2dfc52051900  gdb/testsuite/gdb.trace/deltrace.exp
+bf48643068d70a7c7c0191910eab2f1e  gdb/testsuite/gdb.trace/qtro.exp
+c2d79dbf5548d2bf987e5b3e98aef0d2  gdb/testsuite/gdb.trace/circ.c
+7c8b8c93b68aa320e96806ef9037905a  gdb/testsuite/gdb.trace/packetlen.exp
+2be290ccdae780de600e5a86f1bb60e4  gdb/testsuite/gdb.trace/collection.c
+30006ee6430318df5100eb32e7bcefa5  gdb/testsuite/gdb.trace/stap-trace.exp
+512924bc9305e0bdf36e6d04add718d3  gdb/testsuite/gdb.trace/ftrace.c
+c5b5dd1b2ceb28111aea629d65e5abd6  gdb/testsuite/gdb.trace/entry-values.exp
+7e546022bff83d888896299317449adc  gdb/testsuite/gdb.trace/mi-traceframe-changed.exp
+3a213b50e3fb73f19a965d59c59e9626  gdb/testsuite/gdb.trace/pending.exp
+7393aaaae7380b339b93689df540163a  gdb/testsuite/gdb.trace/actions.exp
+81474738fad69932ba159554ad0bb024  gdb/testsuite/gdb.trace/status-stop.c
+cc45d6cc50f196f5dfd9eb5cf25d1c82  gdb/testsuite/gdb.trace/trace-buffer-size.c
+85369b643dda1b5f88d895acae75da62  gdb/testsuite/gdb.trace/collection.exp
+5717f98af43f3f07f206f9edd1772136  gdb/testsuite/gdb.trace/mi-trace-unavailable.exp
+7a620e7644c7c2f9decd74c8dd72d8d5  gdb/testsuite/gdb.trace/actions.c
+fddbae47a19e52ad9f456fc6881e7161  gdb/testsuite/gdb.trace/while-dyn.exp
+9e811045cfb47c242dd5ae3e9fe02a8c  gdb/testsuite/gdb.trace/actions-changed.c
+f86a137cf6574abdd2f64d39bc24605b  gdb/testsuite/gdb.trace/save-trace.exp
+45683e998f2c8592c2219bf46e37e158  gdb/testsuite/gdb.trace/trace-common.h
+a4dd89fed86e01646a3ef630fa54daef  gdb/testsuite/gdb.trace/trace-break.c
+7f9e4b28113119eb4daeb191b928f1a5  gdb/testsuite/gdb.trace/change-loc.h
+1d5d4fa92e4696acc320b6d07d417a9e  gdb/testsuite/gdb.trace/pendshr2.c
+2bf6176997b8dbcf2c15c107257e38ad  gdb/testsuite/gdb.trace/no-attach-trace.exp
+6634958402dee6d7e8d8aa8f7c42d4b1  gdb/testsuite/gdb.trace/tracefile-pseudo-reg.c
+598f6e9d0456ef53e4ae78b7a406cf2b  gdb/testsuite/gdb.trace/strace.c
+1dd90879cf18cb41d7b6ec0c0314e2a8  gdb/testsuite/gdb.trace/ftrace.exp
+dc377a53d1ba7c9f0772336ee7b93104  gdb/testsuite/gdb.trace/trace-enable-disable.exp
+45e976470eb8737d217e4e73559f7447  gdb/testsuite/gdb.trace/qtro.c
+2d1cdc534fab793fb3b1623a706981b9  gdb/testsuite/gdb.trace/disconnected-tracing.c
+182e914992203dc27810aa7ee218edf3  gdb/testsuite/gdb.trace/tspeed.exp
+1a14cdb3bbf44ef15bad3e7d530e1707  gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp
+0634cdea91ad0c58f84f3750a22ac61b  gdb/testsuite/gdb.trace/pending.c
+9620dfa6e5b19963d9a41ccabff9af0e  gdb/testsuite/gdb.trace/pendshr1.c
+2c6bd9dfcee56d683ab1bec77018776b  gdb/testsuite/gdb.trace/tsv.exp
+2b493519760b5c809d204d49a97f3bbc  gdb/testsuite/gdb.trace/infotrace.exp
+9cebf7e3be59602b063786772fa2db13  gdb/testsuite/gdb.trace/read-memory.exp
+e37b1725f94ba89a031792cc6b7654f6  gdb/testsuite/gdb.trace/circ.exp
+0460badcbce1566e7ee7f498deae34a5  gdb/testsuite/gdb.trace/mi-trace-save.exp
+f65f0644bb3b6a94a3d4b42dc8ff09d4  gdb/testsuite/gdb.trace/signal.exp
+3568901f40acccfa0f76746cadb77311  gdb/testsuite/gdb.trace/unavailable.exp
+fd454d8a644058bda0f9f7309526fae5  gdb/testsuite/gdb.trace/trace-buffer-size.exp
+2720d36bd14950b28e5bc68c44a0dca5  gdb/testsuite/gdb.trace/trace-condition.c
+11bfb504c4145a2c6365b9fb4689b49a  gdb/testsuite/gdb.trace/change-loc.exp
+e276718638e0515a764804804851622e  gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp
+02ab567cdd20f1ba725493c9805307b1  gdb/testsuite/gdb.trace/trace-enable-disable.c
+f587ceece99c14784829023f01136643  gdb/testsuite/gdb.trace/unavailable-dwarf-piece.c
+3bd9cdd6ed4e5d1de39d02075b8d35e9  gdb/testsuite/gdb.trace/stap-trace.c
+869fab72c623336419891f1bb3775bd9  gdb/testsuite/gdb.trace/trace-condition.exp
+68c040de4866c37c9c7dd71da247be3c  gdb/testsuite/gdb.trace/trace-unavailable.c
+61f1320d1a4a1d831673eb327380b8b3  gdb/testsuite/gdb.trace/disconnected-tracing.exp
+0e56e33f083083728e0871854178f8a5  gdb/testsuite/gdb.trace/pr16508.exp
+dcc9516c02fa39f6f929548660e3c8b1  gdb/testsuite/gdb.trace/tfile.c
+608d47db8c1f0f846f195de8d44af037  gdb/testsuite/gdb.trace/ftrace-lock.c
+7e59116329b76365ff5ebdc432fda8ca  gdb/testsuite/gdb.trace/ftrace-lock.exp
+88048b772e55496edc79a10663c8e4a5  gdb/testsuite/gdb.trace/unavailable.cc
+cbe8f94ee4a248bbf41a6132a8baa1de  gdb/testsuite/gdb.trace/read-memory.c
+0a60dc2d4f74e561dc321ed35ab201fd  gdb/testsuite/gdb.trace/signal.c
+e48783000b0f04bfffc724c737ebf9a7  gdb/testsuite/gdb.trace/change-loc-1.c
+66dbaa98bb9bcf4634a55c3d0db0264a  gdb/testsuite/gdb.trace/strace.exp
+13589d57d804a1d145e3d49bfc9fcaf0  gdb/testsuite/gdb.trace/no-attach-trace.c
+6014da0fff3e60371935162eabee8bd9  gdb/testsuite/gdb.trace/tracefile-pseudo-reg.exp
+74fecdbf8a4e9a6584f54e7c393f184a  gdb/testsuite/gdb.trace/while-stepping.exp
+7fc4eb09139dbb569210b19f506d9c97  gdb/testsuite/gdb.trace/tfile.exp
+734cffdde804e8edde06584c995fab59  gdb/testsuite/gdb.trace/passcount.exp
+1dec3af2f7d64d8288187af8158f18e6  gdb/testsuite/gdb.trace/trace-mt.c
+ff1131456443f5069cdb3636de8a5fe2  gdb/testsuite/gdb.trace/tspeed.c
+184fc6a595fbec1caedb9d6a2a38c8f1  gdb/testsuite/gdb.trace/entry-values.c
+2ee730df520834c8c381b350b5201934  gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp
+668cc9198096712fc148014ed0d3313f  gdb/testsuite/gdb.trace/change-loc.c
+7a154857a996b5825a0d7e3331eb62ba  gdb/testsuite/gdb.trace/actions-changed.exp
+254ce9bd2eba5fb065a30fe1695bc84e  gdb/testsuite/gdb.trace/report.exp
+91ac4944f9f59e07463c1d7f79b002ec  gdb/testsuite/gdb.trace/range-stepping.exp
+f1f02d73eb62ed3a2218a6173477be25  gdb/testsuite/gdb.trace/tracecmd.exp
+381ee5db7dd68d4aeab314870766cffe  gdb/testsuite/gdb.trace/backtrace.exp
+08836847df4214f4afb434b86ae98358  gdb/testsuite/gdb.trace/passc-dyn.exp
+ab52552ca58ddfc0cac2fd9696729e67  gdb/testsuite/gdb.trace/trace-mt.exp
 d24fb295e0b5ea16094f540053672a47  gdb/testsuite/configure
 9fbe2b163224a88edcfdc50c8ca21621  gdb/testsuite/aclocal.m4
-e94720b7978de12b279d6bd1fc67e512  gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp
-e62e4dbecb74af98f430981b79de4186  gdb/testsuite/gdb.threads/clone-new-thread-event.exp
-2b276ed722c57b4f5fe293b1e9dd2860  gdb/testsuite/gdb.threads/tls-var.exp
-f3bd9c6e4cdc0e65e0ca1bca9bca4127  gdb/testsuite/gdb.threads/siginfo-threads.c
-2e404d5c6ded4a5a48632a2128eeee9a  gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp
-61f99d86c0d655036d43ca2868563449  gdb/testsuite/gdb.threads/watchpoint-fork-st.c
-7056947f1a1cbf6b8238a4dc6514e6e4  gdb/testsuite/gdb.threads/continue-pending-after-query.c
-bf71534ee7a4258ad50aa76f4bb95fc1  gdb/testsuite/gdb.threads/threxit-hop-specific.c
+b4177a48a1b4ac92a4c8747622e11e03  gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp
+91b6c921d9b6d0943d1ed8e1ae191f02  gdb/testsuite/gdb.threads/clone-new-thread-event.exp
+79c756ad30ad2d6f8af254de9bab572a  gdb/testsuite/gdb.threads/tls-var.exp
+00c1df0d43f34becc0f9b7948d529a76  gdb/testsuite/gdb.threads/siginfo-threads.c
+59a131f26e9bfc0a496a71cad95639da  gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp
+e8d4ffab638f74ce29ee8c2b4faf1941  gdb/testsuite/gdb.threads/watchpoint-fork-st.c
+5bfad7377342fd82786b308134b66ae9  gdb/testsuite/gdb.threads/continue-pending-after-query.c
+7c78a8cab4c7dcff52873faff2481c95  gdb/testsuite/gdb.threads/threxit-hop-specific.c
 0b0761fb016e8bcdfefea3dcb870c6a4  gdb/testsuite/gdb.threads/sigthread.c
 75afefd504e5914e5d1ea42c061cac09  gdb/testsuite/gdb.threads/linux-dp.c
-f1c4be82582a1584fcc2db2759e94d33  gdb/testsuite/gdb.threads/reconnect-signal.c
-215684db91cd65383642a485b1deff97  gdb/testsuite/gdb.threads/stepi-random-signal.exp
-a78c2cc602111f70330a8fb772f0793f  gdb/testsuite/gdb.threads/tls-nodebug.exp
-9e30b69f842258c19d0a6640d6451cb1  gdb/testsuite/gdb.threads/clone-attach-detach.c
-cbf8747aa3b06cb51ab4d8a0b8a27fa9  gdb/testsuite/gdb.threads/queue-signal.exp
-ee18a9e2e573db392a10bd49352c34f5  gdb/testsuite/gdb.threads/names.c
-a84be04083a2c842ba4892794d26de33  gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c
-a90d0dc0424ffd1ce8a259d31809ce87  gdb/testsuite/gdb.threads/staticthreads.c
-7c694f8847dc334ccda57e89546bb55e  gdb/testsuite/gdb.threads/thread-specific-bp.c
-1e94396bd32573906cfe9d0045642bc2  gdb/testsuite/gdb.threads/corethreads.c
-0c7728694b18f86b09b0600c9fa553b9  gdb/testsuite/gdb.threads/non-stop-fair-events.exp
-9295c05ee0ef2d79f5289f07dc93575c  gdb/testsuite/gdb.threads/hand-call-new-thread.c
-cdcb4c3a82c3a97002aac3b156656787  gdb/testsuite/gdb.threads/watchthreads.c
-51437145a244e468d0eb86a7b1f503d6  gdb/testsuite/gdb.threads/execl1.c
-9a6942cd3374d13c5e08fd2066a30990  gdb/testsuite/gdb.threads/thread-unwindonsignal.exp
-4c1c83aa57df3b0a540b966e8a5c0815  gdb/testsuite/gdb.threads/tls-so_extern_main.c
-2e8463f05b0cfad47a9e69da3a3b7d47  gdb/testsuite/gdb.threads/schedlock.c
-026b92fa617131555ba6988fb69d323a  gdb/testsuite/gdb.threads/wp-replication.c
-546b2dda443493d9e6ce38cd697752bb  gdb/testsuite/gdb.threads/threadapply.c
-0c9e0c6f13603ff78446cdfa258fc8b4  gdb/testsuite/gdb.threads/thread_events.c
-47223a93f9f1af03e597881be5d4ecf6  gdb/testsuite/gdb.threads/non-ldr-exc-3.c
-28ae814c56ca74912baf051fd6170fa4  gdb/testsuite/gdb.threads/create-fail.c
+052290a58bdc5856f0437fa332b19404  gdb/testsuite/gdb.threads/reconnect-signal.c
+697cf4a5c631e5753c7b23f2b5487bdc  gdb/testsuite/gdb.threads/stepi-random-signal.exp
+1c80d1df78bf422cc23e0db67ad56e1f  gdb/testsuite/gdb.threads/tls-nodebug.exp
+4a76fa67c7219f92fb4a71c0475afd6e  gdb/testsuite/gdb.threads/clone-attach-detach.c
+64cc4cf4e01d7f4054292c935cb7828b  gdb/testsuite/gdb.threads/queue-signal.exp
+a6550893840c0486a43ec630937e67ad  gdb/testsuite/gdb.threads/names.c
+89e79b86c687769ab73d9b434957b807  gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c
+f8a1e4018353c59bd8fb669780ee546e  gdb/testsuite/gdb.threads/staticthreads.c
+a21da6db0e2c37a1d05324d3e6b82309  gdb/testsuite/gdb.threads/thread-specific-bp.c
+cf14ad7fadad6b4b452c82448fbe0d94  gdb/testsuite/gdb.threads/corethreads.c
+f5a0ef3e63c57452604d4e934d4ad485  gdb/testsuite/gdb.threads/non-stop-fair-events.exp
+f50c0fcbdda78a3c3299764e42214200  gdb/testsuite/gdb.threads/hand-call-new-thread.c
+65209052784bbe9f5215ef541afc8258  gdb/testsuite/gdb.threads/watchthreads.c
+5146c8814b9c30b59abcc19e4b7eeab4  gdb/testsuite/gdb.threads/execl1.c
+abd84d3055b0e01fd2332454f66a43f0  gdb/testsuite/gdb.threads/thread-unwindonsignal.exp
+06b10d6c6bcce58bc4cc43dff62c636c  gdb/testsuite/gdb.threads/tls-so_extern_main.c
+f5a278d76922692e5d437b2871cb8a84  gdb/testsuite/gdb.threads/schedlock.c
+df8791a7454823af1b53cd56e0570469  gdb/testsuite/gdb.threads/wp-replication.c
+d3406c07d3d7bed231a49b34e9497893  gdb/testsuite/gdb.threads/threadapply.c
+6a753592afef1acd657a7971f73c001a  gdb/testsuite/gdb.threads/thread_events.c
+a9abe257cc105c6c9f45235a1b6325db  gdb/testsuite/gdb.threads/tls-nodebug-pie.c
+2e832c00e7cb4c235641d7e6969654a4  gdb/testsuite/gdb.threads/non-ldr-exc-3.c
+5b622bc5f9b5c87ad761ded96f99375a  gdb/testsuite/gdb.threads/create-fail.c
 8b5a2aec5a2b807e33ce1f58b292be05  gdb/testsuite/gdb.threads/tls-main.c
-b0d06c2763a377041fb8b8718fbe8cd3  gdb/testsuite/gdb.threads/reconnect-signal.exp
-67b6c6851b3de72c99d44b1632107074  gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp
-19b414123a81e7bf2d3fec8b502d45c9  gdb/testsuite/gdb.threads/signal-sigtrap.exp
-936819feaec6952f2ccafe771daf6647  gdb/testsuite/gdb.threads/manythreads.exp
+a5e8b1bb2be938a46f4781f880665342  gdb/testsuite/gdb.threads/reconnect-signal.exp
+236415d44efb1396c040f14583890864  gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp
+e898555a7f9a6c89b4e4da25702b32cb  gdb/testsuite/gdb.threads/signal-sigtrap.exp
+f27479c75fdddd685334ace34be57189  gdb/testsuite/gdb.threads/manythreads.exp
 ce228e201a89a5618142777bb2afe980  gdb/testsuite/gdb.threads/tls-shared.c
-76a8b68e7e65424f53948bbc09ad7fa5  gdb/testsuite/gdb.threads/continue-pending-after-query.exp
-32f5602bd8ae7f08251a2730b24c7a2b  gdb/testsuite/gdb.threads/pthread_cond_wait.exp
-08a51579f522bcb983e72421197d8df4  gdb/testsuite/gdb.threads/dlopen-libpthread.c
-6a7e4c027c14ca046d8bb2457af3e12d  gdb/testsuite/gdb.threads/info-threads-cur-sal.exp
-8158dfb6da632817aa88c9dcd9394ac2  gdb/testsuite/gdb.threads/switch-threads.exp
-5c44a68de32344e10f6ac20c52eb0348  gdb/testsuite/gdb.threads/fork-plus-threads.exp
-e4f8b4e4b570f1f384d74ddf79c26cec  gdb/testsuite/gdb.threads/attach-into-signal.exp
-6311fd83a660a75967577e07532e9c89  gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
-2357def297f55c38a8b6170c3f8d2bb5  gdb/testsuite/gdb.threads/interrupted-hand-call.exp
-18c38ee3864b5768fafe722f7e433f2d  gdb/testsuite/gdb.threads/pthreads.exp
-e7b50a6d4bb9a07593b85f5542b24a86  gdb/testsuite/gdb.threads/watchpoint-fork-parent.c
-c5d8d89d6c5dab0e981c74fcf57528b0  gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.c
-548c89c786752a6a3ce1861ec6aa56df  gdb/testsuite/gdb.threads/leader-exit.c
-3ebebec142ffaa45883c8cc791705a49  gdb/testsuite/gdb.threads/staticthreads.exp
-b0cb4aba217ebaff66a29dddd5098965  gdb/testsuite/gdb.threads/watchpoint-fork-child.c
-4771c19be172d3e1ccf4fedf97ea8e6a  gdb/testsuite/gdb.threads/non-ldr-exit.exp
-f07598eb85c45ead7be8b91779a17a30  gdb/testsuite/gdb.threads/fork-plus-threads.c
-53de4e7b45e3368e9143104dfe939505  gdb/testsuite/gdb.threads/watchpoint-fork.exp
-b3b05bb47b0ac753612c7358eab0ca7f  gdb/testsuite/gdb.threads/fork-child-threads.c
-5e53ce28f7c5bde99cc5a1aeb6e7e7f6  gdb/testsuite/gdb.threads/tls.exp
-38a67d47e3b9d26b3188340cc785e9f3  gdb/testsuite/gdb.threads/ia64-sigill.c
-2038d56dde6a01f9e39ac57a1dc0fa30  gdb/testsuite/gdb.threads/bp_in_thread.c
-7cc3f791dd1e531fd7d0b6cd727cc300  gdb/testsuite/gdb.threads/thread-find.exp
-611fcc80055275456a6030b5dc293a55  gdb/testsuite/gdb.threads/siginfo-threads.exp
-46e8ad7e36c82bf0180054a4fa819939  gdb/testsuite/gdb.threads/create-fail.exp
+10f45f23e13802dbbc224cc4df50a1f7  gdb/testsuite/gdb.threads/continue-pending-after-query.exp
+5702d9d540f1551bf80d8e474f01a13e  gdb/testsuite/gdb.threads/pthread_cond_wait.exp
+a2f3715f8058b1391fcf455aec60e742  gdb/testsuite/gdb.threads/dlopen-libpthread.c
+0e2d7a3abb0f8d176ea1588ddfcb6638  gdb/testsuite/gdb.threads/info-threads-cur-sal.exp
+8ddc6a08a3adeb8a3874fe193e72ca1b  gdb/testsuite/gdb.threads/switch-threads.exp
+3021d4e38fd4da3cfd7bf17bb85797be  gdb/testsuite/gdb.threads/fork-plus-threads.exp
+56ea6277dd738062bf71e00bb7909278  gdb/testsuite/gdb.threads/attach-into-signal.exp
+47ec588438f41f06e1e3297e3ea161f7  gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
+b5e21235ba31efb75b93741c3e44fb50  gdb/testsuite/gdb.threads/interrupted-hand-call.exp
+c3d73e0cdb5328555a7710701d4b6ea6  gdb/testsuite/gdb.threads/pthreads.exp
+20c95b210afbcec8a51a2a8ce7d0f200  gdb/testsuite/gdb.threads/watchpoint-fork-parent.c
+86b6bb3f667a039e5324bb291908350f  gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.c
+2fdb7fcbb1f1bc41fb03aecf8d22b7bf  gdb/testsuite/gdb.threads/leader-exit.c
+5544bd54236ed1b7bf37ec7f2391fbaa  gdb/testsuite/gdb.threads/staticthreads.exp
+c02d4c8605cc92101b5f0dcf938464f2  gdb/testsuite/gdb.threads/watchpoint-fork-child.c
+8840bf8183b0beeb7b0f32f71fa2be49  gdb/testsuite/gdb.threads/non-ldr-exit.exp
+c8810b89d1dd2cf9e25ef038289810e5  gdb/testsuite/gdb.threads/fork-plus-threads.c
+06d75e3757e06c9bfddfd2eae4f38a51  gdb/testsuite/gdb.threads/watchpoint-fork.exp
+d6b5b2f94d3f968a6ec35bff831e1dfd  gdb/testsuite/gdb.threads/fork-child-threads.c
+2c7534130ac3851660d058e82059f0e3  gdb/testsuite/gdb.threads/tls.exp
+d0b15bc981c041560d1fa21ba4eacdd5  gdb/testsuite/gdb.threads/ia64-sigill.c
+40e3617d2b013cb1f08e315897d5af50  gdb/testsuite/gdb.threads/bp_in_thread.c
+5a65c2119c4af83fc43622b2c77b4017  gdb/testsuite/gdb.threads/thread-find.exp
+4a36678eef936ec56cb983b77912b631  gdb/testsuite/gdb.threads/siginfo-threads.exp
+ad4d129ef199582213c82ea135a82918  gdb/testsuite/gdb.threads/create-fail.exp
 9eaba0dd2266d7d35941eb49845e6072  gdb/testsuite/gdb.threads/tls.c
-4085db3141b28b6dc998ebde03d0299c  gdb/testsuite/gdb.threads/signal-delivered-right-thread.c
-d730771be289d92e31836e08fdba1000  gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp
-e1ac44a05599807670c251232d2f0029  gdb/testsuite/gdb.threads/attach-into-signal.c
-354c9e092fc31c0fc4a74320b786e7ee  gdb/testsuite/gdb.threads/killed.exp
-7ce1fb68f05b59a6b3f7ea66933c6106  gdb/testsuite/gdb.threads/pending-step.c
-af38d78546bb6035a8c7934e89a04546  gdb/testsuite/gdb.threads/multiple-step-overs.exp
-7ebde32f34caf57c6abe4e6379b9810e  gdb/testsuite/gdb.threads/non-ldr-exc-3.exp
+689256693fd930f12d1f6fe9c74e509b  gdb/testsuite/gdb.threads/signal-delivered-right-thread.c
+3bc443b9307cab95fb697304357daefe  gdb/testsuite/gdb.threads/tls-core.c
+bfe3e7fb71f348daa10eec5b300bf34d  gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp
+fc4dc1e1eba8d555652681fe8e191976  gdb/testsuite/gdb.threads/attach-into-signal.c
+a3ea55405f85d2b0ac4f128170148834  gdb/testsuite/gdb.threads/killed.exp
+0222666892e4f4ac94559955634dc2af  gdb/testsuite/gdb.threads/pending-step.c
+5dc78895491c322681e81a1270ee8b95  gdb/testsuite/gdb.threads/multiple-step-overs.exp
+61efcd3ec11a2e131ca552dfdadacaff  gdb/testsuite/gdb.threads/non-ldr-exc-3.exp
 df82452f754ef15a81d71f46a0892757  gdb/testsuite/gdb.threads/print-threads.c
-e48ab905aabb5e853926313b2327965d  gdb/testsuite/gdb.threads/current-lwp-dead.c
-39168f95b549dc00fcab4ec9d9faa790  gdb/testsuite/gdb.threads/clone-attach-detach.exp
-efc87a401c87b12c6570da4b23842427  gdb/testsuite/gdb.threads/non-ldr-exc-1.c
-3fbc20080bcbba9fbe8ae8714b0c5ae9  gdb/testsuite/gdb.threads/queue-signal.c
-de225ffcaf92cf719ba7772ff5262a13  gdb/testsuite/gdb.threads/fork-child-threads.exp
-b5ff8de01f9a43b57f408f1f6c9a098e  gdb/testsuite/gdb.threads/break-while-running.exp
-2891a0e245d445feeadf717349c04e9f  gdb/testsuite/gdb.threads/non-stop-fair-events.c
-27c96194f5dc90b5d5d123be0ac68041  gdb/testsuite/gdb.threads/pthread_cond_wait.c
-77f9c4cc5355ac4b65dcd93f61063743  gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp
-f8a1c67ab60def1b4f3506d673374561  gdb/testsuite/gdb.threads/current-lwp-dead.exp
-bf11ca9e0c404b8e0ce2301ddde47459  gdb/testsuite/gdb.threads/info-threads-cur-sal-2.c
-407957819a130dc3cefa3e957b2846c5  gdb/testsuite/gdb.threads/tls-so_extern.c
-4b6b164769fa2260039f2f51f3f48844  gdb/testsuite/gdb.threads/pending-step.exp
-c8aa533e2395d8ed9ce43377d701dc2b  gdb/testsuite/gdb.threads/attach-stopped.c
-056d3f0c62204f6d984b59564de236db  gdb/testsuite/gdb.threads/continue-pending-status.exp
-d03027dfbbcaf9fc43ab4979d63b8da2  gdb/testsuite/gdb.threads/interrupted-hand-call.c
-edb1bec0ff4e6465c421c9b94bdccec4  gdb/testsuite/gdb.threads/non-ldr-exc-4.c
+1af6fb7c1b19a12c6922dcd5c06c7282  gdb/testsuite/gdb.threads/current-lwp-dead.c
+89d0c71f837a5e7e8f55155285616fc6  gdb/testsuite/gdb.threads/clone-attach-detach.exp
+a3f6f1ede316d3c02aa88f0e66dfedd8  gdb/testsuite/gdb.threads/non-ldr-exc-1.c
+0e74db2ece8c7ed249bf9cb8386f15c7  gdb/testsuite/gdb.threads/queue-signal.c
+ea46f843e59ed5964f6f90cd9177d6aa  gdb/testsuite/gdb.threads/fork-child-threads.exp
+c2be2a703e173a89f2970edf3a044a81  gdb/testsuite/gdb.threads/break-while-running.exp
+49383ff15f5d720593b645dd5ee21923  gdb/testsuite/gdb.threads/non-stop-fair-events.c
+f375466c75967bd212b21d82cfe9b7d6  gdb/testsuite/gdb.threads/tls-core.exp
+43f14db44e74256a550aa070a43139ee  gdb/testsuite/gdb.threads/pthread_cond_wait.c
+301cbd30b40af9793bcb9a888a665671  gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp
+8b339a934ed529b1ea2e8bde2b40d4e6  gdb/testsuite/gdb.threads/current-lwp-dead.exp
+810810151dccd290979d16f2c7f946a5  gdb/testsuite/gdb.threads/info-threads-cur-sal-2.c
+d5c36c17acbf9845e324fdbe62c2cf82  gdb/testsuite/gdb.threads/tls-so_extern.c
+f7e82b9ee6f278f17468ecbbedf3b521  gdb/testsuite/gdb.threads/pending-step.exp
+ce885e8e714a3cb40380492a425b42b5  gdb/testsuite/gdb.threads/attach-stopped.c
+60ae94520fb1e6e24c0b23bcca17bbaf  gdb/testsuite/gdb.threads/continue-pending-status.exp
+f24872fe96f0facabb525d516d6aa29f  gdb/testsuite/gdb.threads/interrupted-hand-call.c
+9e137ab959c686e94a5a730ecdef92bd  gdb/testsuite/gdb.threads/non-ldr-exc-4.c
 9f1980e50d0b18ecab95050153e4733a  gdb/testsuite/gdb.threads/tls-nodebug.c
-a8fd9b568743ccaaf51c2d626902bbca  gdb/testsuite/gdb.threads/manythreads.c
-710faf470be16e1f35944bdf321331f5  gdb/testsuite/gdb.threads/local-watch-wrong-thread.c
-5519b8de2b9129daae11391975a5dbfc  gdb/testsuite/gdb.threads/thread_events.exp
-4ca783bff348c213817065e547299853  gdb/testsuite/gdb.threads/watchpoint-fork-mt.c
-49857c8d70b351ce0d58fae8bac339a5  gdb/testsuite/gdb.threads/hand-call-in-threads.c
-a591ef24863f0f775c4f6be0464aca2e  gdb/testsuite/gdb.threads/watchpoint-fork.h
-46f4b50ba0057685aae9ac12967f15ff  gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.c
-aa3e3e2ff550db7bffb4dcb68be60c2e  gdb/testsuite/gdb.threads/thread_check.c
-219f0cb67be57ba5b0b4833ffc54f46a  gdb/testsuite/gdb.threads/process-dies-while-detaching.exp
-c343686c1a01d8c58623e076c82b377a  gdb/testsuite/gdb.threads/tid-reuse.c
-c1e6b492549cc1228a22dcf6f25c3c32  gdb/testsuite/gdb.threads/thread-specific.exp
-de922bb9144285b1a3a5dacaef0e61c7  gdb/testsuite/gdb.threads/thread-specific-bp.exp
-8b27ec5bd9551731cb76172ad5c5be79  gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.c
-b78b53eb0da3016e369d6850a7224839  gdb/testsuite/gdb.threads/non-ldr-exc-4.exp
-b69c3f914e81900d1c3ab5e99daa824f  gdb/testsuite/gdb.threads/watchthreads-reorder.c
-52452d09d75e2c3628cca12b0be4114f  gdb/testsuite/gdb.threads/tls-var.c
-b6fd582cc756ae87696d7bae9b0fcf12  gdb/testsuite/gdb.threads/schedlock.exp
-16fc2721da7af98a7805adf8c6d76eed  gdb/testsuite/gdb.threads/pthreads.c
-79bc8f8c16a9944a7f7f763261f14db1  gdb/testsuite/gdb.threads/killed.c
-c66d090f483ab04d78a0b11f0d5e92c6  gdb/testsuite/gdb.threads/clone-thread_db.c
-7a9bea396ee86480601608ba149cce62  gdb/testsuite/gdb.threads/tls-so_extern.exp
-7fb224d747008ceb0d864b39cf35f9bc  gdb/testsuite/gdb.threads/gcore-thread.exp
-1e01230d04cfd56a43dbddb56e20451c  gdb/testsuite/gdb.threads/info-threads-cur-sal.c
-423590ff8b674f80eba4ea57632a0cdd  gdb/testsuite/gdb.threads/watchthreads.exp
-d22ae644a2ad66115da6f075dad2815f  gdb/testsuite/gdb.threads/thread_check.exp
-730aca359b6152f2e0cf3c864532e4e3  gdb/testsuite/gdb.threads/watchthreads2.exp
-096f8bc043a491344c4849a5b747d395  gdb/testsuite/gdb.threads/tid-reuse.exp
-dfe0396c4987ac24355ff470effe2015  gdb/testsuite/gdb.threads/kill.c
-66bb22ede02e2ca7da5eaec2d1c2f772  gdb/testsuite/gdb.threads/hand-call-new-thread.exp
-6757acbcf0a69276e4b803fad3ba8527  gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c
-3f7e8ff576b1c2e56c59c5ede18f8aa2  gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.c
-7acc66383933ed280a8f76a4c5b83326  gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
-be12ccfdc1380467fb6d149c497af8b3  gdb/testsuite/gdb.threads/continue-pending-status.c
-e26add18cd747cd70c1748a204d9a419  gdb/testsuite/gdb.threads/switch-threads.c
-dac3c702cab2ce41f1180395ca2c83b4  gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp
-f7cea578fc16e780781702840cd1f2c7  gdb/testsuite/gdb.threads/sigstep-threads.exp
-bcbfceff46effbc056046e7a79575711  gdb/testsuite/gdb.threads/execl.exp
-06d023e4fdf3f813a47490416ec4139b  gdb/testsuite/gdb.threads/thread-execl.c
-f895b777eff0160779d41b44afe2f43b  gdb/testsuite/gdb.threads/signal-sigtrap.c
-bfca54aa31ab0c59e909bf8b473eaadc  gdb/testsuite/gdb.threads/interrupt-while-step-over.exp
-bab8363e2b76c85b2709513079813de6  gdb/testsuite/gdb.threads/thread-execl.exp
-ce82ac58bb0060d1a6b78de1b032418f  gdb/testsuite/gdb.threads/non-ldr-exc-1.exp
-1f8b0d69a343eb57d7e743d0626ece96  gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c
-5678bee1dca29420b5afe09c92f824e6  gdb/testsuite/gdb.threads/non-ldr-exit.c
-783183d16eca30b9213a0033f29b586d  gdb/testsuite/gdb.threads/multi-create.exp
-44fc698c79c29dabf4901f12809f9145  gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp
-449043f097c192a8ee9a8f292d701a9d  gdb/testsuite/gdb.threads/no-unwaited-for-left.c
-7b3f181b7d075f08ec62b41f7a99e4f7  gdb/testsuite/gdb.threads/non-ldr-exc-2.exp
-8ba809de21772f6f1d73bb0ac0e0d427  gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.exp
-fb48d30751e234010adfd01bc0c9d5c8  gdb/testsuite/gdb.threads/stepi-random-signal.c
-e4594efd9b9424e67d899320420fe355  gdb/testsuite/gdb.threads/gcore-stale-thread.exp
-527f8884b518d5d2636321abfbf8b65b  gdb/testsuite/gdb.threads/hand-call-in-threads.exp
-905b010ab8ba726e5eca11d18c990f43  gdb/testsuite/gdb.threads/tls-var-main.c
-4ef6124379ddd3378c49bbac3ae5850d  gdb/testsuite/gdb.threads/kill.exp
-9bd5dede631c1deba5b33895956922e1  gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.c
-0dfe87ed06a36ac970a8e873a7a2b818  gdb/testsuite/gdb.threads/print-threads.exp
-5b6c1e4e5281e607122964b62f2c8800  gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp
-066dd88ab212f762c260646968c1138d  gdb/testsuite/gdb.threads/multiple-step-overs.c
-8ea2245856a9c9060a24330835c03ae9  gdb/testsuite/gdb.threads/process-dies-while-handling-bp.c
-0f4f39b3dd1e9b0ff5fb5659db6ffd27  gdb/testsuite/gdb.threads/signal-command-handle-nopass.c
-ed0162aea23dd44ed9c8222bb383231f  gdb/testsuite/gdb.threads/next-bp-other-thread.exp
-5e39b37d7ca834131145bdfbd077363e  gdb/testsuite/gdb.threads/corethreads.exp
-afcc4670182877fb21def7ac52be059f  gdb/testsuite/gdb.threads/break-while-running.c
-fb870ebda9e34b4ab3d96ac3bcf64bc0  gdb/testsuite/gdb.threads/wp-replication.exp
-e0e3947e45f4424ccb51d7611e2dc25a  gdb/testsuite/gdb.threads/linux-dp.exp
-fa7fb1c207834f65d22ec387943995f4  gdb/testsuite/gdb.threads/interrupt-while-step-over.c
-4232373eafc72504c92637739b375c41  gdb/testsuite/gdb.threads/watchthreads-reorder.exp
-dd8f606703f84c4b9e78e6231e320af4  gdb/testsuite/gdb.threads/tls2.c
-9de60b0469142297e226bc091a61aa27  gdb/testsuite/gdb.threads/fork-thread-pending.c
-2cab41df62beb586d1ba8aa06dd82837  gdb/testsuite/gdb.threads/fork-thread-pending.exp
-4e918702d6039d73cc8af227d184a76e  gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp
-6f2be59f8b11e307e9dd5aeadb6f6276  gdb/testsuite/gdb.threads/thread-specific.c
-040405b1e1b359f1ff9fb8b198ba50f3  gdb/testsuite/gdb.threads/bp_in_thread.exp
-194e7c5d4bd4da54a4f5bb773252e238  gdb/testsuite/gdb.threads/process-dies-while-detaching.c
-bcfde610a6ee712c3ae6a1c0dd9d1dce  gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp
-8ca139cb09071e5542e7f4a4b242a7e8  gdb/testsuite/gdb.threads/tls-shared.exp
-adfeea17f58e9ca9399ed1900f901ad1  gdb/testsuite/gdb.threads/leader-exit.exp
-f062d73ec3165431353661db88a92385  gdb/testsuite/gdb.threads/names.exp
-8db8de9841ef73b338c953f8fe688f15  gdb/testsuite/gdb.threads/sigthread.exp
-f86fafe756c32bb0d2663f7a61a81b7f  gdb/testsuite/gdb.threads/multi-create.c
-f8cc2707320271c733baf8d28aa86f3e  gdb/testsuite/gdb.threads/attach-stopped.exp
-b321f4456fba38cfe78f510354210d6b  gdb/testsuite/gdb.threads/next-bp-other-thread.c
-982f7c8176bf5213f245325e48cbc5df  gdb/testsuite/gdb.threads/sigstep-threads.c
-0bebdad600399aba416655b318af9d52  gdb/testsuite/gdb.threads/ia64-sigill.exp
-fa7eab5f74d3b500523583c96537e428  gdb/testsuite/gdb.threads/gcore-stale-thread.c
-485626db681b4f8b28faab3414e2c8dc  gdb/testsuite/gdb.threads/no-unwaited-for-left.exp
-30063c60c8785ebb34abf1ef3045e2c2  gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.c
-cbf25111f26d4b9783fcd0ddf9d23e8b  gdb/testsuite/gdb.threads/dlopen-libpthread.exp
-3b6491477405ce8c685118474ba625ed  gdb/testsuite/gdb.threads/clone-new-thread-event.c
-1509a36590045f112e8febed8842a2d5  gdb/testsuite/gdb.threads/clone-thread_db.exp
-48c0704f362d6bd1bbcae9403a58b29b  gdb/testsuite/gdb.threads/non-ldr-exc-2.c
-0128a203eb00721beaa9a7f63840e38e  gdb/testsuite/gdb.threads/execl.c
-0ea7b009a891a39d6d89f79fd66c5e9f  gdb/testsuite/gdb.threads/threxit-hop-specific.exp
-3506547b2d8e6ae1dbe0f128ca15fba3  gdb/testsuite/gdb.threads/threadapply.exp
-02798c7e847922d8259d70aef33f6f65  gdb/testsuite/gdb.threads/watchthreads2.c
-9860db1898ec7569bddd3741fe4a1d69  gdb/testsuite/gdb.go/print.exp
-827c790656f5deabd9931c680a11bf2b  gdb/testsuite/gdb.go/methods.exp
-41f7f0fe8c8fe47b87d5940cad35e3d5  gdb/testsuite/gdb.go/unsafe.exp
+3dc7d316c160194b184b8c08d5b6b256  gdb/testsuite/gdb.threads/manythreads.c
+734fdcfa868c07ff662ddc0fd92d983a  gdb/testsuite/gdb.threads/local-watch-wrong-thread.c
+9b8599bab348044137522c5870c13d4d  gdb/testsuite/gdb.threads/thread_events.exp
+74fd4f42d145f6c6e96baa4f4357c341  gdb/testsuite/gdb.threads/watchpoint-fork-mt.c
+966f42af6cc2d63f0ec40eacbe063176  gdb/testsuite/gdb.threads/hand-call-in-threads.c
+3878220e43fa4bc974a33da99b0c14a7  gdb/testsuite/gdb.threads/watchpoint-fork.h
+1c81e6cce20924955b07e6f047f68e53  gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.c
+bc916f72d4c44e2baea750b48e7bd241  gdb/testsuite/gdb.threads/thread_check.c
+78b69cf36bdbbfd735ebbab8914abbc9  gdb/testsuite/gdb.threads/process-dies-while-detaching.exp
+0471f64566091fbad776fc17a2bb7e0c  gdb/testsuite/gdb.threads/tid-reuse.c
+462bb0e4d739eb39832cb3cd789eb259  gdb/testsuite/gdb.threads/thread-specific.exp
+7c083923fb1371ea636585bf024438b8  gdb/testsuite/gdb.threads/thread-specific-bp.exp
+96e16c65f3a941f2000d54858497d496  gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.c
+112a52c2597415009463ca725dea862b  gdb/testsuite/gdb.threads/non-ldr-exc-4.exp
+087eebbcef912917649f67672be2727c  gdb/testsuite/gdb.threads/watchthreads-reorder.c
+80dc8817deee7548c3a206ce2efee9ec  gdb/testsuite/gdb.threads/tls-var.c
+36cdb2be895b6acc04557d9d600ea452  gdb/testsuite/gdb.threads/schedlock.exp
+c53da1571ad50abc97392a75d64594a4  gdb/testsuite/gdb.threads/pthreads.c
+e547cb1cea41938be5826dee99545945  gdb/testsuite/gdb.threads/killed.c
+11b74c9374f6481cc5aea8ee7d2922bd  gdb/testsuite/gdb.threads/clone-thread_db.c
+c260eb78b7f5d849176c44fad613562a  gdb/testsuite/gdb.threads/tls-so_extern.exp
+b655c47f16186b7fbf364a5501d850e1  gdb/testsuite/gdb.threads/gcore-thread.exp
+f64984e03cd85dfe3e76255a4012d741  gdb/testsuite/gdb.threads/info-threads-cur-sal.c
+1269833e0738a55261c416691acba0f5  gdb/testsuite/gdb.threads/watchthreads.exp
+876550c66864069f861e98610f7bdd2d  gdb/testsuite/gdb.threads/thread_check.exp
+a060b1ebc3d3af2531dc57d89d8e4ed3  gdb/testsuite/gdb.threads/watchthreads2.exp
+bf07dcb9ef80db9a096a50a3c24c19c3  gdb/testsuite/gdb.threads/tid-reuse.exp
+9174b4586b8e7ef5b2be4d5c8d5ec174  gdb/testsuite/gdb.threads/kill.c
+be3de89eb40a3f658fa72515e783859e  gdb/testsuite/gdb.threads/hand-call-new-thread.exp
+44fe2bf91548111b0192c205353cc368  gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c
+3532e789893dbfaf17a5e9b9a4777af5  gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.c
+345eb0d1f13ae6ab017bf621c4533dfa  gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
+54dafcbd1bca0b9f55068708cde8d42a  gdb/testsuite/gdb.threads/continue-pending-status.c
+601dee416fff8cfcb664eacf7e227425  gdb/testsuite/gdb.threads/switch-threads.c
+c499f916c0af2494c27c573bd35d55be  gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp
+8896187c6f4e3571548a4810c9f08312  gdb/testsuite/gdb.threads/sigstep-threads.exp
+88305eb54ca19f68eb09de3e66f74792  gdb/testsuite/gdb.threads/execl.exp
+194215ce7ee871679761f35c67c0dd39  gdb/testsuite/gdb.threads/thread-execl.c
+eaff333d8bd46fca6eba6b698c9b98e7  gdb/testsuite/gdb.threads/signal-sigtrap.c
+7ff631ab1d10e6343afeb8184595d045  gdb/testsuite/gdb.threads/interrupt-while-step-over.exp
+0b2f6767d70800fc6a8a7b8901fe46d3  gdb/testsuite/gdb.threads/thread-execl.exp
+22bedfa49906aac9a525b6d715de192d  gdb/testsuite/gdb.threads/non-ldr-exc-1.exp
+2623644e789e0eac085eb45551044d33  gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c
+fa734a0cc2ef83011bf732932a63ff56  gdb/testsuite/gdb.threads/non-ldr-exit.c
+34d696577c459fe5c69a68213c736b19  gdb/testsuite/gdb.threads/multi-create.exp
+e0fc81324e169dfffcd739c2fae58397  gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp
+c21a02cf8615c3477db2cb0f54437e43  gdb/testsuite/gdb.threads/no-unwaited-for-left.c
+b157c98c12247839eedcc3989bcbbb52  gdb/testsuite/gdb.threads/non-ldr-exc-2.exp
+af4a4b757fa14acc65b41d7e24cfec6b  gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.exp
+f7cb31a167e9edcaee904dcced8d2834  gdb/testsuite/gdb.threads/stepi-random-signal.c
+7977f2f80913113836c8776a079e81f8  gdb/testsuite/gdb.threads/gcore-stale-thread.exp
+020d66fff1816e8a635a942aa51323fd  gdb/testsuite/gdb.threads/hand-call-in-threads.exp
+8a877db08e11df2da68d43e6ff8f25b5  gdb/testsuite/gdb.threads/tls-var-main.c
+2a90e8a68bbcd2140a3e1728ac63a684  gdb/testsuite/gdb.threads/kill.exp
+ba445c53435050ca518072f3ccdeaeb9  gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.c
+3a3c70ce36e1e69c1e6a71a91888e5ee  gdb/testsuite/gdb.threads/print-threads.exp
+07c6a2d811556613d5fb9a5a2f33426b  gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp
+1dff81ae39bb51e65db80e112539c62f  gdb/testsuite/gdb.threads/multiple-step-overs.c
+020b1476374ccc13acb3324bc2047fbf  gdb/testsuite/gdb.threads/process-dies-while-handling-bp.c
+096bcca017e33bad1dca8f676160170e  gdb/testsuite/gdb.threads/signal-command-handle-nopass.c
+fcf4d0cb1c57307a29ff0ee2693c53f1  gdb/testsuite/gdb.threads/next-bp-other-thread.exp
+f1aad3d4a918a626936d94433460d6fa  gdb/testsuite/gdb.threads/corethreads.exp
+94ce1c2898f22a9923556c22d8c3f566  gdb/testsuite/gdb.threads/break-while-running.c
+f50d6f15ead4536c63f21c70481e2126  gdb/testsuite/gdb.threads/wp-replication.exp
+2fb5dca5f789683aff7944dbca40b011  gdb/testsuite/gdb.threads/tls-nodebug-pie.exp
+3e7cb12c9eb25e9771fb84665cdb39d3  gdb/testsuite/gdb.threads/linux-dp.exp
+388fdac983a8207ff42e2fa8cc54a5f0  gdb/testsuite/gdb.threads/interrupt-while-step-over.c
+68e1ab0c9031007623a55c4157f29f3c  gdb/testsuite/gdb.threads/watchthreads-reorder.exp
+9e69da58276e72114a849bda7fd72a84  gdb/testsuite/gdb.threads/tls2.c
+87fd9285dbc2b5121c49916d4d83b8b7  gdb/testsuite/gdb.threads/fork-thread-pending.c
+cf26e095e1bd704e8fa7cb8a7f9de0b4  gdb/testsuite/gdb.threads/fork-thread-pending.exp
+51b609cd538504e36d1046ee5ad54e45  gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp
+71b61f015825f30bc4bfacad412f305f  gdb/testsuite/gdb.threads/thread-specific.c
+0248331cff2a1e11bfe998418c0db476  gdb/testsuite/gdb.threads/bp_in_thread.exp
+122d6874f014d3f5ba3c3b697c142c87  gdb/testsuite/gdb.threads/process-dies-while-detaching.c
+1f49be02d41eb2033ef7fa36813310ca  gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp
+255784395925bb84d463ed8e57e30a84  gdb/testsuite/gdb.threads/tls-shared.exp
+b940501a203cf5b25eb5f0f8c7938c22  gdb/testsuite/gdb.threads/leader-exit.exp
+4e132d8671d799c902eb0d6b7496ceb4  gdb/testsuite/gdb.threads/names.exp
+f5dc318436a20e5608d7b005ff19903e  gdb/testsuite/gdb.threads/sigthread.exp
+3ed9a5f5c4fd825654b70d4fd686391e  gdb/testsuite/gdb.threads/multi-create.c
+5f15c869bbe600ac74dae4dc2f7253d6  gdb/testsuite/gdb.threads/attach-stopped.exp
+69338811b8756acc7ebfa64f666d83ea  gdb/testsuite/gdb.threads/next-bp-other-thread.c
+792d03f95a01d494e326544864c585cb  gdb/testsuite/gdb.threads/sigstep-threads.c
+ac69903dfc0a42597ed5294a8a66cd68  gdb/testsuite/gdb.threads/ia64-sigill.exp
+fd2f507779a57845bf58ec910317cf5f  gdb/testsuite/gdb.threads/gcore-stale-thread.c
+ebba484eda92cb4b891fee45dd2015be  gdb/testsuite/gdb.threads/no-unwaited-for-left.exp
+cc6993b9d35a4c4852c2c1911d434b79  gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.c
+8afd45061c413c8dd96ec4fceb545e74  gdb/testsuite/gdb.threads/dlopen-libpthread.exp
+2c5d4ea94ad703e41655c1b31003b6ec  gdb/testsuite/gdb.threads/clone-new-thread-event.c
+0a3f3995bd2102b602b72bd3fb10e011  gdb/testsuite/gdb.threads/clone-thread_db.exp
+e51b72c6c5aea39c1a9bd48056245c3e  gdb/testsuite/gdb.threads/non-ldr-exc-2.c
+5e4e7ac4f6cdaaca59961dff67a0f96b  gdb/testsuite/gdb.threads/execl.c
+2608839c50ed3f890839bf7ee1f77caa  gdb/testsuite/gdb.threads/threxit-hop-specific.exp
+759d68218df16b3fc7a5a9ad1dc38e36  gdb/testsuite/gdb.threads/threadapply.exp
+ee4b84f65d8038e8dba2f31bbd0889d6  gdb/testsuite/gdb.threads/watchthreads2.c
+ef115239767a7645087ab1a4dcfbf9c0  gdb/testsuite/gdb.go/print.exp
+77e2348f2eca6fb6dfc9f2c4c19fc493  gdb/testsuite/gdb.go/methods.exp
+f916dea7c8e4eefe3e87ce7412fd01d3  gdb/testsuite/gdb.go/unsafe.exp
 3bf59fe4ee125fed62e361a4235f302d  gdb/testsuite/gdb.go/integers.go
-0eb7abf778b1521f0e580412e7aae42b  gdb/testsuite/gdb.go/package.exp
-17434c31fb0a3eb211004c427e1b2644  gdb/testsuite/gdb.go/chan.exp
-cc1501e6e81037c553f6435acda3ed20  gdb/testsuite/gdb.go/hello.exp
-fd288f880e6672762141f673f19aa118  gdb/testsuite/gdb.go/basic-types.exp
+ff099a1ff1367d3c4ebec6573c638725  gdb/testsuite/gdb.go/package.exp
+0755be0583e35a2b36200fd29cdb486f  gdb/testsuite/gdb.go/chan.exp
+5221e13f141e018a20e0ac81f77938f9  gdb/testsuite/gdb.go/hello.exp
+114564fdec6329847d3e9c128f5aa529  gdb/testsuite/gdb.go/basic-types.exp
 f33c953800815094e954fde86536776e  gdb/testsuite/gdb.go/handcall.go
 54037d4dd926eea5d4a2425fa18c0312  gdb/testsuite/gdb.go/package2.go
-20223b066a9ce14420d0dac74bb666e3  gdb/testsuite/gdb.go/strings.exp
+ce614f54e49097baf546a3921b1b0760  gdb/testsuite/gdb.go/strings.exp
 710eb55c40980ff44f412caea4f71ff5  gdb/testsuite/gdb.go/types.go
 113f4cb954c18df6f26abddb56a25eda  gdb/testsuite/gdb.go/chan.go
-398278ccfe62640c35de9b1baded9240  gdb/testsuite/gdb.go/types.exp
+c8f561580db5cefac006981c8d41f3ca  gdb/testsuite/gdb.go/types.exp
 963c02de7da3fe31926fec771633a373  gdb/testsuite/gdb.go/package1.go
 3418aeca3a35216b3a4eeb0e72001570  gdb/testsuite/gdb.go/unsafe.go
-f79791a026889dd2e06055874c75baa7  gdb/testsuite/gdb.go/handcall.exp
+d44d1fe2176806ee76348b558b3a67ab  gdb/testsuite/gdb.go/handcall.exp
 039a453cac3bf6a4748fe2e4bd372dc0  gdb/testsuite/gdb.go/hello.go
-95c177bbeca4dd1ffb229aa2c32c8d5d  gdb/testsuite/gdb.go/integers.exp
+de055987af9fd672f5e6aa5280e504cf  gdb/testsuite/gdb.go/integers.exp
 68d17058fa82304a192749f0eadc138d  gdb/testsuite/gdb.go/strings.go
 81b7ed6cb92c627d245bd2efc4b953b9  gdb/testsuite/gdb.go/methods.go
-ba83b2a7b94209ebc655859bf5fd31fb  gdb/testsuite/ChangeLog
+0cae60b28276edcd31da324b78d474fb  gdb/testsuite/ChangeLog
 b3f11b21e5921c419a43f93720dedf85  gdb/testsuite/gdb.asm/empty.inc
-156e3d7f60e0146a4e53cd66c349d288  gdb/testsuite/gdb.asm/asm-source.exp
+14f9e33160bd01242a862c5c90513000  gdb/testsuite/gdb.asm/asm-source.exp
 f1621bbbb2acbec5adef86d7d9549975  gdb/testsuite/gdb.asm/bfin.inc
 583de4033345bc72fc5e10e2c913c70d  gdb/testsuite/gdb.asm/m68hc11.inc
 7acbc0a93ecaf3183a8c43ccb7af5585  gdb/testsuite/gdb.asm/powerpc64.inc
@@ -4248,1250 +4322,1290 @@ b3bdc251c6b1eaf09953283df330eb9a  gdb/te
 cd196557c0510f072d40271da10c33a6  gdb/testsuite/gdb.asm/sh.inc
 e3c5be9e840a34c66a75b0204fe24a05  gdb/testsuite/gdb.asm/v850.inc
 1b9bb551736dbc95577c91620b81fb6c  gdb/testsuite/TODO
-de82c53cb4e6896e234b0bbfb87789c1  gdb/testsuite/gdb.guile/scm-ports.exp
-56eb9be94a3692d06c67a1f04ab9cc5d  gdb/testsuite/gdb.guile/scm-error-1.scm
-bb8f4f99055b034217be80fd6fc73347  gdb/testsuite/gdb.guile/scm-objfile.exp
-24f0ed97435997b3a49a5812d647770f  gdb/testsuite/gdb.guile/scm-symbol.c
-532903db1fea4b005fd83c12f66770c2  gdb/testsuite/gdb.guile/scm-equal.c
-7100e6a983005de72068b496e2b87555  gdb/testsuite/gdb.guile/scm-parameter.exp
-4b1ff091ee13e8839abadacc3db7a46a  gdb/testsuite/gdb.guile/scm-disasm.exp
-1853ab45d66076c471374965ac08ad51  gdb/testsuite/gdb.guile/scm-gsmob.exp
-bc0913918535d4042b70619d6001fb59  gdb/testsuite/gdb.guile/scm-lazy-string.exp
-e01fd183c59c6142fcab36a7485dce20  gdb/testsuite/gdb.guile/scm-value-cc.exp
-b23c264d3f940b30cb3d5b7b98f5d658  gdb/testsuite/gdb.guile/scm-objfile-script.exp
-237a3c2989e3775fdaa00d72c5db7681  gdb/testsuite/gdb.guile/scm-symbol.exp
-b936a343cb025e6e8e1dd85777812e29  gdb/testsuite/gdb.guile/scm-frame.exp
-ec501a9e9b0044760ef6d5e0db3f9b86  gdb/testsuite/gdb.guile/scm-arch.c
-91b6fb264e8265c589353c89ae1a4660  gdb/testsuite/gdb.guile/scm-objfile.c
-e308d239e241a1959280f7fd4e1285f1  gdb/testsuite/gdb.guile/scm-arch.exp
-55f9ef3c8880b328d80c71100cc86f17  gdb/testsuite/gdb.guile/scm-frame-args.c
+2aed6272222cf8ecedb2cb5a87c5aaf0  gdb/testsuite/gdb.guile/scm-ports.exp
+4caceef0cc254a88e40c8890cdfe9e3a  gdb/testsuite/gdb.guile/scm-error-1.scm
+dbdfd268b5d1f5fea4c73623d2e502aa  gdb/testsuite/gdb.guile/scm-objfile.exp
+342f28cb786d9d95abe38cf88336a7d9  gdb/testsuite/gdb.guile/scm-symbol.c
+03497ce7a4e179203442c4b9833ede41  gdb/testsuite/gdb.guile/scm-equal.c
+41f556e43e1c2ba23a22f15f31f193cf  gdb/testsuite/gdb.guile/scm-parameter.exp
+80f077134f36c12a13bd66c2304d7610  gdb/testsuite/gdb.guile/scm-disasm.exp
+5c2b94aac6584b6928053ead9cec5ff0  gdb/testsuite/gdb.guile/scm-gsmob.exp
+ee110bd01afcdbaab76da0a4b831cd6e  gdb/testsuite/gdb.guile/scm-lazy-string.exp
+5bb93d00f553dda581da4bf6c94db554  gdb/testsuite/gdb.guile/scm-value-cc.exp
+f8fd5c89c0a1acdeda57d7a5f7f0279b  gdb/testsuite/gdb.guile/scm-objfile-script.exp
+f60d0f426e8edd8bfd6e1e4ba3434739  gdb/testsuite/gdb.guile/scm-symbol.exp
+c0cfc0b3c309c429e7ffca3c1bc7a41b  gdb/testsuite/gdb.guile/scm-frame.exp
+a549ff20d5cc6aa88e52ac1e92b1c06c  gdb/testsuite/gdb.guile/scm-arch.c
+4b77b77294166f6cacc70f59bf2b34a9  gdb/testsuite/gdb.guile/scm-objfile.c
+4d11f8d47e9d9bd6944bb93826605a57  gdb/testsuite/gdb.guile/scm-arch.exp
+ebd25fb6444784243574d29ebfc1ebea  gdb/testsuite/gdb.guile/scm-frame-args.c
 2201fe232be56f834518596b4f09f9ce  gdb/testsuite/gdb.guile/scm-frame.c
-fc5a3e81e82b27eacfa5663b5bb328bc  gdb/testsuite/gdb.guile/scm-type.exp
-5c9a3493e75cf5f1e1c1231b19384a42  gdb/testsuite/gdb.guile/scm-type.c
-85af507e752273b3c19db7fe5ad29134  gdb/testsuite/gdb.guile/types-module.exp
-0778af0ab7f5b374456e905842c0b9cc  gdb/testsuite/gdb.guile/scm-section-script.exp
-273eb4c3f780cf21dc7d9526a980fa66  gdb/testsuite/gdb.guile/scm-breakpoint.exp
-60563f5703353748cbbb44630a3a9b3b  gdb/testsuite/gdb.guile/scm-equal.exp
-5d349f3e2ccd7d83d913dfcf2bc49206  gdb/testsuite/gdb.guile/scm-frame-inline.exp
-c4156eb51b95b8e5027d843be25313f8  gdb/testsuite/gdb.guile/scm-pretty-print.scm
-bb7e4d57bff7ac6ef8b46d1120d6f8eb  gdb/testsuite/gdb.guile/scm-value-cc.cc
-8e54705d1033710c0441416ed5fd7f7c  gdb/testsuite/gdb.guile/scm-frame-args.scm
-a567e2aad4761c83f475c1c134a98004  gdb/testsuite/gdb.guile/scm-pretty-print.exp
-6dd8467cff967d6b61665d70608b3981  gdb/testsuite/gdb.guile/scm-iterator.c
-4d796a21961e73adf176b266ec4aebfb  gdb/testsuite/gdb.guile/types-module.cc
-c200fbaf145f7caa04bfc959da20f7b8  gdb/testsuite/gdb.guile/scm-error-2.scm
-10dacba624087c1422898f075f3dd501  gdb/testsuite/gdb.guile/scm-frame-inline.c
-dad49ca8a2a7096e8005f332773d3f84  gdb/testsuite/gdb.guile/scm-progspace.exp
-082439d7486f82ad193b8a3cf148e68b  gdb/testsuite/gdb.guile/scm-objfile-script-gdb.in
-048d9638f597bdbd365adff230738c75  gdb/testsuite/gdb.guile/scm-ports.c
-1cb7b75616f45770164d09d9e02c9ad9  gdb/testsuite/gdb.guile/scm-objfile-script.c
-ccadba00a5fbeb8c0ec99d2c66029bea  gdb/testsuite/gdb.guile/scm-math.exp
-ba2c31101e70569054ed2317ceb89fb2  gdb/testsuite/gdb.guile/scm-cmd.c
-76460c437e1d5f9d6f332faa05f3b4ff  gdb/testsuite/gdb.guile/scm-symtab-2.c
-14ecb937574cf3200e00f52be34b57f6  gdb/testsuite/gdb.guile/scm-section-script.scm
-81f7ae66e4fe640c6ce2d7921cd2b90d  gdb/testsuite/gdb.guile/scm-block.exp
-27343b3d91e35e9a24a563ee221fd5df  gdb/testsuite/gdb.guile/scm-error.exp
-e2157d00a1dfbd62b5de7b46cbe7d72b  gdb/testsuite/gdb.guile/scm-symtab.c
-2d8e96be5aed56dd308d1b70ed98e471  gdb/testsuite/gdb.guile/scm-math.c
-4b5beaf4704231e34c59f2e345bbbc5a  gdb/testsuite/gdb.guile/scm-breakpoint.c
-b8c1afc466cab64eb9d50abd41cd8fc3  gdb/testsuite/gdb.guile/scm-cmd.exp
-ee2ebdab6ce83da8e8b94d4b015209a7  gdb/testsuite/gdb.guile/scm-symtab.exp
-346d7529bfc691bc14be7e7a40dab466  gdb/testsuite/gdb.guile/scm-section-script.c
-a3289b1572fd71959578c6ce37729fdb  gdb/testsuite/gdb.guile/scm-value.c
-5c5557806c577947825d54e4bea3d2a1  gdb/testsuite/gdb.guile/scm-frame-args.exp
-0a5a206590bdbe12b66dd26ad99bcb08  gdb/testsuite/gdb.guile/scm-iterator.exp
-fe830118cc32eed78f2723ddf01de03c  gdb/testsuite/gdb.guile/scm-pretty-print.c
-ec501a9e9b0044760ef6d5e0db3f9b86  gdb/testsuite/gdb.guile/scm-disasm.c
-07da5f97c84eacb9014cc48df94f322c  gdb/testsuite/gdb.guile/scm-progspace.c
-a54d18a2a93a7a214e5f9810de9aceb5  gdb/testsuite/gdb.guile/scm-value.exp
-fbcfe4581c06b0ee43e165b0e6f5075a  gdb/testsuite/gdb.guile/scm-block.c
-afebc42ce8cbcc21955422c606288ee6  gdb/testsuite/gdb.guile/scm-lazy-string.c
-af82a29688670dc518437d623508a9e7  gdb/testsuite/gdb.guile/source2.scm
-94035e278493fa997214ca31c6ca222d  gdb/testsuite/gdb.guile/guile.exp
+aa8081b55ff9f4ab098ba858dd32810e  gdb/testsuite/gdb.guile/scm-type.exp
+d4ca844c969642ca284dba4d694e837b  gdb/testsuite/gdb.guile/scm-type.c
+8e5a15bcd89d52891ac0057ef6a6aca0  gdb/testsuite/gdb.guile/types-module.exp
+932247ab427477369e2f20d07930f80e  gdb/testsuite/gdb.guile/scm-section-script.exp
+0e9b1ecc8d00a18ed3a087cf47c4da4b  gdb/testsuite/gdb.guile/scm-breakpoint.exp
+47acbbfb0b4685031772d8d4eb045161  gdb/testsuite/gdb.guile/scm-equal.exp
+17987186a0985182fc5457373f447801  gdb/testsuite/gdb.guile/scm-frame-inline.exp
+14eb9c1ac44cfd22d502465fdcc5873e  gdb/testsuite/gdb.guile/scm-pretty-print.scm
+edf210a43bbb7be12f12917407ddb552  gdb/testsuite/gdb.guile/scm-value-cc.cc
+ad17120c3a7e742865da1ba09a8c5234  gdb/testsuite/gdb.guile/scm-frame-args.scm
+23be9964f7fa81ed5bbd7c68a5113b7b  gdb/testsuite/gdb.guile/scm-pretty-print.exp
+a312c80adb1be4536dc6e55ee82db17a  gdb/testsuite/gdb.guile/scm-iterator.c
+70a26f35bada3e268340031765fc63e8  gdb/testsuite/gdb.guile/types-module.cc
+748ba081ccbdfe9081e849b41317dc14  gdb/testsuite/gdb.guile/scm-error-2.scm
+43e29d5faf8861ffd4295132e39d3c56  gdb/testsuite/gdb.guile/scm-frame-inline.c
+53c6a692850dc25e1eb0775997ab5827  gdb/testsuite/gdb.guile/scm-progspace.exp
+8ffc15f19a86aa1554bb57140a86716f  gdb/testsuite/gdb.guile/scm-objfile-script-gdb.in
+42e8894b5498f19e6ee79a8d291da48c  gdb/testsuite/gdb.guile/scm-ports.c
+dbb9fa07f93f23a9087a8ee5008ea421  gdb/testsuite/gdb.guile/scm-objfile-script.c
+2bc0af5b40ef5ff6ba6e6678f8fd9d47  gdb/testsuite/gdb.guile/scm-math.exp
+99c329323d75963a7a0600df6ddef76a  gdb/testsuite/gdb.guile/scm-cmd.c
+93f826acdef51acf0f2f446b208880f1  gdb/testsuite/gdb.guile/scm-symtab-2.c
+7d4298f6a9f0cd7e4e27712882e8dd01  gdb/testsuite/gdb.guile/scm-section-script.scm
+177cc72ea8e719b52e151251f3b32478  gdb/testsuite/gdb.guile/scm-block.exp
+5ae8a0454d5b3cfd02afcea75c7ba5ce  gdb/testsuite/gdb.guile/scm-error.exp
+ddff475bb636c4c08ccf383ec6873b67  gdb/testsuite/gdb.guile/scm-symtab.c
+599985a536d60e45453ea5fed13d08c4  gdb/testsuite/gdb.guile/scm-math.c
+7c451e0aa6fb46b14c2cc38a778d0c1c  gdb/testsuite/gdb.guile/scm-breakpoint.c
+197c5b4038d6094dc6927fa7b65fc4f0  gdb/testsuite/gdb.guile/scm-cmd.exp
+d573533f685704faecc5f86c35d22b02  gdb/testsuite/gdb.guile/scm-symtab.exp
+c44ecf74235ece9ec737d0bcc93cf193  gdb/testsuite/gdb.guile/scm-section-script.c
+731cf66b89a0631516a32616d54aa4fa  gdb/testsuite/gdb.guile/scm-value.c
+cc28889e027170152a68a4e54be8cd0e  gdb/testsuite/gdb.guile/scm-frame-args.exp
+7f9d6c27f604ca05b04ba4ab844557f8  gdb/testsuite/gdb.guile/scm-iterator.exp
+759716e19a0efd77e71ae291b42ae7c4  gdb/testsuite/gdb.guile/scm-pretty-print.c
+a549ff20d5cc6aa88e52ac1e92b1c06c  gdb/testsuite/gdb.guile/scm-disasm.c
+88d14f7ff8675114feac4a877dfb1243  gdb/testsuite/gdb.guile/scm-progspace.c
+be8bcffc98f81c0c42b0ca05f2a43699  gdb/testsuite/gdb.guile/scm-value.exp
+91b817c72a2d57d80b6d2a30fcea5931  gdb/testsuite/gdb.guile/scm-block.c
+a763054b91c2e14ed12a1ab7dc83d6de  gdb/testsuite/gdb.guile/scm-lazy-string.c
+ad7d0335fcef6eb7105bf767b8779cbe  gdb/testsuite/gdb.guile/source2.scm
+cf257760be9711d527532cabf7682522  gdb/testsuite/gdb.guile/guile.exp
 f0f471d0b077ed32873ec23acd184ae2  gdb/testsuite/gdb.objc/basicclass.m
-ec7938889a7b4bc8dc4905d5d7fa536d  gdb/testsuite/gdb.objc/print.exp
+ab1ba97552f4601a245d9820dc68ca3d  gdb/testsuite/gdb.objc/print.exp
 5bf9075727dbd558ccbf123d9e11859a  gdb/testsuite/gdb.objc/objcdecode.m
-a0261c41c8340f3dc189fc574cdb8563  gdb/testsuite/gdb.objc/objcdecode.exp
-64eb38fe5c0b496ed4d8c886bf3aaf71  gdb/testsuite/gdb.objc/nondebug.exp
+9ca1c9717a36cfd4ff28097f1337f4e0  gdb/testsuite/gdb.objc/objcdecode.exp
+1c122e2b1528e1514c74fa3bacf2de7b  gdb/testsuite/gdb.objc/nondebug.exp
 680e14fd32f14cd93c56886bcb05f177  gdb/testsuite/gdb.objc/nondebug.m
-260a0f73565ab86e24fa79b856942f57  gdb/testsuite/gdb.objc/basicclass.exp
-26ac294c96520b925a499fe66c9df949  gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp
-7e8c569ad8620cefa8403040b6f50e18  gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp
-51a2fa37d81ecda821f5dafb235bc8ce  gdb/testsuite/gdb.tui/tui-layout.c
-4ed1e37fe2631813c4d794ea98ae79ac  gdb/testsuite/gdb.tui/tui-disasm-long-lines.c
-98fd3c9105a15705c6bdea6986abf20e  gdb/testsuite/gdb.tui/completion.exp
-0500235455d97a38fd1792dd3f5052d0  gdb/testsuite/gdb.tui/tui-layout.exp
-496b78f2be4ccbe3f212339dab50f7d2  gdb/testsuite/gdb.ada/dyn_arrayidx.exp
-ff77a27dbe864418465ecac9b1a5812b  gdb/testsuite/gdb.ada/rdv_wait.exp
-547651669abce18a82db3a528070b764  gdb/testsuite/gdb.ada/null_array/foo.adb
-478c5d0d5c60b23d2608687b796ba1ed  gdb/testsuite/gdb.ada/null_array/pck.ads
-769cfabd60b2e3d87570c100d605e4f4  gdb/testsuite/gdb.ada/null_array/pck.adb
-31afb8ae97a0cedf6c71aeb6d1f193d1  gdb/testsuite/gdb.ada/attr_ref_and_charlit.exp
-22337ee8edf72e187f96bdc011d70dc2  gdb/testsuite/gdb.ada/widewide.exp
-6bd148041a47fa0354a436b088a24afe  gdb/testsuite/gdb.ada/operator_bp/ops.adb
-df7ac2f5edc7ee67526c49c9a659234d  gdb/testsuite/gdb.ada/operator_bp/ops.ads
-b540c589e8e478e6a87fc682f6b5af01  gdb/testsuite/gdb.ada/operator_bp/ops_test.adb
-fce54923eba15946309198967f59279c  gdb/testsuite/gdb.ada/ptype_tagged_param.exp
-7be45014b92daa89edf995168a9e081d  gdb/testsuite/gdb.ada/formatted_ref/defs.adb
-655906a7ecea6b6729ea0aa104d1bebb  gdb/testsuite/gdb.ada/formatted_ref/defs.ads
-e316d5e8e4a6b90dbf6b232bd820f71b  gdb/testsuite/gdb.ada/formatted_ref/formatted_ref.adb
-0c3da2263585dab0e0b6cda3c46bbda8  gdb/testsuite/gdb.ada/rec_comp/pck.ads
-2d6c267ea3b888227b65375a7872ea0c  gdb/testsuite/gdb.ada/rec_comp/bar_o203_012.adb
-27b11241428009c24af7767fc720ecc8  gdb/testsuite/gdb.ada/rec_comp/pck.adb
-bbb005eab7d9c97260ae8bc7b8ada9b8  gdb/testsuite/gdb.ada/int_deref.exp
-fa44b6c4c493e7effe0073757720b41c  gdb/testsuite/gdb.ada/homonym/homonym.adb
-d2f0fe5446708eb0e22dbb361fdeecfb  gdb/testsuite/gdb.ada/homonym/pck.ads
-e2e737872d495981ae6145daa60a34dc  gdb/testsuite/gdb.ada/homonym/pck.adb
-bbf0c0d985efe8aea288b08a02c6fc1b  gdb/testsuite/gdb.ada/homonym/homonym.ads
-3e42bd0b502a7ba4b1c7fc9d52142a34  gdb/testsuite/gdb.ada/homonym/homonym_main.adb
-7908eb545cd0a68b02eca34f9479332c  gdb/testsuite/gdb.ada/optim_drec.exp
-56093b8beef4af18e2790d2861d06195  gdb/testsuite/gdb.ada/expr_delims/foo.adb
-5209eb475f4998a8e83fe4a958802392  gdb/testsuite/gdb.ada/expr_delims/pck.ads
-3db901f1331b1ceb8bed80bffe8dad55  gdb/testsuite/gdb.ada/expr_delims/pck.adb
-e8e69348066b1e73ba669d29c776c828  gdb/testsuite/gdb.ada/aliased_array/foo.adb
-e65b8b4b6f60fcc33a2775dd36faffa2  gdb/testsuite/gdb.ada/aliased_array/pck.ads
-d57d3a967f6122004063c8ad3bf72ffc  gdb/testsuite/gdb.ada/aliased_array/pck.adb
-fe6ebac801e6b295204a9771442924aa  gdb/testsuite/gdb.ada/task_bp.exp
-df4ecf76fe331be5ff4fa44d39981219  gdb/testsuite/gdb.ada/exec_changed/first.adb
-22d7142857001b88e2e2c8d21d1ee339  gdb/testsuite/gdb.ada/exec_changed/second.adb
-692831e585f9af09efe05b7b9128793a  gdb/testsuite/gdb.ada/bp_on_var/foo.adb
-7e0d4b44c7abdfe04b92780491ad21d9  gdb/testsuite/gdb.ada/bp_on_var/pck.ads
-2af5ccc8d8e5b36e4fe44d007957bbb8  gdb/testsuite/gdb.ada/bp_on_var/pck.adb
-e79f508b056f18ed4acb6178d26b70a6  gdb/testsuite/gdb.ada/bp_reset.exp
-cb83a7a6fa167aae9631f7e173ae44dc  gdb/testsuite/gdb.ada/frame_args/foo.adb
-5dc482606b9a02dbe1db87877e70385c  gdb/testsuite/gdb.ada/frame_args/pck.ads
-3ddb5e334d327712473af285fb437b39  gdb/testsuite/gdb.ada/frame_args/pck.adb
-80e6483fb55fd114203cd611de2576f4  gdb/testsuite/gdb.ada/array_bounds/bar.adb
-6b50e355d274a3a47f3d15552b104803  gdb/testsuite/gdb.ada/win_fu_syms.exp
-59bd6bb0286770726f95719c5d29a9ac  gdb/testsuite/gdb.ada/array_ptr_renaming/foo.adb
-a677a1bce364a7d7b0f686f9ad2ace71  gdb/testsuite/gdb.ada/array_ptr_renaming/pack.ads
-ca19548d543bf0d8b8abce4dc8d9fe6f  gdb/testsuite/gdb.ada/tagged_access/p.adb
-9bee9ff6b3cf61ff234b88f184421a87  gdb/testsuite/gdb.ada/tagged_access/pack.ads
-6c1178fcd74c8aa917765890748eabc2  gdb/testsuite/gdb.ada/tagged_access/pack.adb
-e531a75e2b5c52bc20c2319043b8ce65  gdb/testsuite/gdb.ada/pp-rec-component.py
-50ff4ad6a448aacd4a700330cf81a0bb  gdb/testsuite/gdb.ada/pckd_neg.exp
-b3207edd6d9df885c44b420ac30f6446  gdb/testsuite/gdb.ada/mod_from_name.exp
-3937e53f997b83e2e9b9f8bf110354d2  gdb/testsuite/gdb.ada/str_uninit/parse.adb
-91e4981ffca05be2cbbbac573ee1b666  gdb/testsuite/gdb.ada/str_uninit/pck.ads
-ef21855dbd6826a8030927e11f2bb23e  gdb/testsuite/gdb.ada/str_uninit/pck.adb
-5be68f37f604c3247a80ccf3f34fedd9  gdb/testsuite/gdb.ada/tagged_not_init/foo.adb
-1ed2b43871c0ddafe3b01666feee28be  gdb/testsuite/gdb.ada/tagged_not_init/pck.ads
-9fdfb535f7c6669ce82cb59262faa27e  gdb/testsuite/gdb.ada/tagged_not_init/pck.adb
-b5b044e9f04f7fac8c2725c5dbeed172  gdb/testsuite/gdb.ada/fun_in_declare.exp
-1955f3444e2d1a554263cb2409fff041  gdb/testsuite/gdb.ada/expr_delims.exp
-46dd349dbbf12bcdd15848e190089b11  gdb/testsuite/gdb.ada/fixed_cmp/pck.ads
-04e6dc8c131240a67ec270b7d7659b76  gdb/testsuite/gdb.ada/fixed_cmp/pck.adb
-b01062be4953d78c2ed01ffe703644a2  gdb/testsuite/gdb.ada/fixed_cmp/fixed.adb
-4a7ff95ed4048bc5165266093889b176  gdb/testsuite/gdb.ada/arrayparam.exp
-803561a134df622f72921bb01291ce84  gdb/testsuite/gdb.ada/float_param/foo.adb
-de6b09d8a4a54020120c512fa8089b9b  gdb/testsuite/gdb.ada/float_param/pck.ads
-26bf2174020c73717f001c90721f81b9  gdb/testsuite/gdb.ada/float_param/pck.adb
-1d81452b82ac777eb00f31467874ea99  gdb/testsuite/gdb.ada/arraydim/foo.adb
-3d1461994bd4d479d9a3f0373bd3de9b  gdb/testsuite/gdb.ada/arraydim/pck.ads
-1e3c11ae390456fed3a9b9e03bdea870  gdb/testsuite/gdb.ada/arraydim/inc.c
-dbd2d4d4cf0b0ece32de36b1a5b781ad  gdb/testsuite/gdb.ada/arraydim/pck.adb
-94d4bea8d14ad394d4c88a63835d2656  gdb/testsuite/gdb.ada/complete.exp
-8cf155d10685941ffc8b8e969b52503e  gdb/testsuite/gdb.ada/funcall_param.exp
-97714d26e5cf7340ad552ea5f27243a5  gdb/testsuite/gdb.ada/small_reg_param.exp
-a28d454d6d13fe2a0cc6119fc7c13345  gdb/testsuite/gdb.ada/arrayidx.exp
-190ef10b7133031eee6f76dec6046c77  gdb/testsuite/gdb.ada/pckd_neg/foo_o508_021.adb
-707ee0fd4810f46660f45941ac152f7d  gdb/testsuite/gdb.ada/pckd_neg/pck.ads
-24914f9832e266d8a48b28026de8308d  gdb/testsuite/gdb.ada/pckd_neg/pck.adb
-5327b4c728f4e2629f70a8e74a264467  gdb/testsuite/gdb.ada/rdv_wait/foo.adb
-f363801f3e150b72ede93f79c34cb480  gdb/testsuite/gdb.ada/rdv_wait/pck.ads
-add3cf7d11923a8995c883e3f21b3da3  gdb/testsuite/gdb.ada/rdv_wait/pck.adb
-6aee94b542472cd3a6166a3db0f91269  gdb/testsuite/gdb.ada/optim_drec/foo.adb
-cfbb949e9c448c75ec3edda5d202871e  gdb/testsuite/gdb.ada/fun_renaming.exp
-da3e1474053810fe22cd00320696e96b  gdb/testsuite/gdb.ada/dot_all.exp
-d58ef8d0f39f00f251eff491f43c86ed  gdb/testsuite/gdb.ada/fin_fun_out/bar.adb
-e0f3b4847d8e5a686faff5eee996cca9  gdb/testsuite/gdb.ada/fin_fun_out/foo_o525_013.adb
-2a17c8bfb42098ae7ead21ce5eb3da90  gdb/testsuite/gdb.ada/fin_fun_out/bar.ads
-6104e9e631ace52f321c17dd41cb6b9d  gdb/testsuite/gdb.ada/bp_range_type.exp
-e8d028169daeb81efeaef14f93b9e183  gdb/testsuite/gdb.ada/set_wstr/pck.ads
-55f19303868a8adb7d190c68a4a5a516  gdb/testsuite/gdb.ada/set_wstr/pck.adb
-6c612f2a22d1a101763adb09af3b519d  gdb/testsuite/gdb.ada/set_wstr/a.adb
-cf4f76b1822b70a2528735c45a79052d  gdb/testsuite/gdb.ada/arraydim.exp
-8098b6ee9936e99cc56950d8d295dfde  gdb/testsuite/gdb.ada/complete/aux_pck.adb
-02787b38d922bd8d24a93015e71f876d  gdb/testsuite/gdb.ada/complete/foo.adb
-70dba6ea0817f79d7886ff9c7a53124e  gdb/testsuite/gdb.ada/complete/aux_pck.ads
-79e9e6a0479b44e1b69de794a2941453  gdb/testsuite/gdb.ada/complete/pck.ads
-63a8e738ff2db7756d099194f7addeda  gdb/testsuite/gdb.ada/complete/pck.adb
-1e5a82063f158761714e5e3f75af9822  gdb/testsuite/gdb.ada/ptype_field.exp
-51b4b139680bf592ebe1c407473e40f6  gdb/testsuite/gdb.ada/call_pn/foo.adb
-87b4fe646c26acacdcf3c195498512ed  gdb/testsuite/gdb.ada/call_pn/pck.ads
-0b6de6d14c46c06134f6275846990f96  gdb/testsuite/gdb.ada/call_pn/pck.adb
-17f2db4969e762bc911a29225e66d0ad  gdb/testsuite/gdb.ada/mi_catch_ex.exp
-16eb4b8d80078842a11ca2016d5a25d7  gdb/testsuite/gdb.ada/tagged/foo.adb
-6ad66755f9454e8c5dec585ccd14ffe7  gdb/testsuite/gdb.ada/tagged/pck.ads
-4e653340ef25141b75581cf53cbf9859  gdb/testsuite/gdb.ada/tagged/pck.adb
-bd719c87427326397240edf4adeb248f  gdb/testsuite/gdb.ada/array_subscript_addr.exp
-1c1c772e282b9a84c3ccd0d1daa3970f  gdb/testsuite/gdb.ada/exprs/p.adb
-a2b4ed1ebe697978d3ed26c669f80155  gdb/testsuite/gdb.ada/cond_lang/foo.c
-eccefc25f0efb75164a453343cb72133  gdb/testsuite/gdb.ada/cond_lang/mixed.adb
-8593eeeefe91c070c7074e1d14707a81  gdb/testsuite/gdb.ada/cond_lang/pck.ads
-6daf47d2049b2e639e03ebde42c6f4de  gdb/testsuite/gdb.ada/cond_lang/mixed.ads
-e43dfeec7de5fdef3236e7fa9c542cf3  gdb/testsuite/gdb.ada/cond_lang/pck.adb
-6565e92ebf5bc9f6d925eaf70d32ac09  gdb/testsuite/gdb.ada/cond_lang/a.adb
-08aedd869e6605ec90dcbf2b7f001a1f  gdb/testsuite/gdb.ada/lang_switch.exp
-e0582c3ead4d0741d96ee391ac533b24  gdb/testsuite/gdb.ada/watch_arg.exp
-aa67b0e636f263bff223709f1962ea93  gdb/testsuite/gdb.ada/packed_array/pa.adb
-3578707ee50599467c5ccb1b71a49683  gdb/testsuite/gdb.ada/packed_array/pck.ads
-b93167eba32dca793252bff71b0b9e47  gdb/testsuite/gdb.ada/packed_array/pck.adb
-10639b3ddf82919708755548a9aefe8a  gdb/testsuite/gdb.ada/packed_tagged.exp
-b4ca9b896e515d58352b0ed7a678024d  gdb/testsuite/gdb.ada/win_fu_syms/foo.adb
-7cb8f12aac54e2667bd09443249a8776  gdb/testsuite/gdb.ada/win_fu_syms/pck.ads
-8b2bf16c8f4bd00cb0c520c12d11f024  gdb/testsuite/gdb.ada/win_fu_syms/pck.adb
-e36630cd2aab48bd10a44776de49f43e  gdb/testsuite/gdb.ada/funcall_char/foo.adb
-ede71b0bef2c52c0a3b255bc014bc560  gdb/testsuite/gdb.ada/null_record/null_record.adb
-699304f3d4ff5b6bcfd3a92533d1f01d  gdb/testsuite/gdb.ada/null_record/bar.adb
-e39e91badf0c7a0c86f5e7826e20db7a  gdb/testsuite/gdb.ada/null_record/bar.ads
-3133dc254471334e7be5e42a671e969b  gdb/testsuite/gdb.ada/print_chars.exp
-6e82afc4d649b3b97bd7e488be3fccf1  gdb/testsuite/gdb.ada/arrayptr/foo.adb
-ed7e328b30ab35c8e7ead68965f5d26f  gdb/testsuite/gdb.ada/arrayptr/pck.ads
-871f946e1f69907ac04ec509b7896e1e  gdb/testsuite/gdb.ada/arrayptr/pck.adb
-a1c89e30a685e26d3c7f0f5912a279f1  gdb/testsuite/gdb.ada/set_pckd_arr_elt.exp
-20e142a25f739f90e3994fed71aa8516  gdb/testsuite/gdb.ada/fin_fun_out.exp
-2560281b7c99d7e433c06e5d03f2f5cc  gdb/testsuite/gdb.ada/start.exp
-23a1114f93915a1fd004f4eed6aca056  gdb/testsuite/gdb.ada/tasks.exp
-66136fdf220dd06d96f5d14207c9ebc8  gdb/testsuite/gdb.ada/pkd_arr_elem.exp
-c2df643f10284b49e7277c7eee3ae909  gdb/testsuite/gdb.ada/var_rec_arr/pck.ads
-1603c27f20543d86aeee9059a7d00cb4  gdb/testsuite/gdb.ada/var_rec_arr/foo_na09_042.adb
-4fa6fb42b9a68c35cb0ed744d6f88a27  gdb/testsuite/gdb.ada/var_rec_arr/pck.adb
-6626f6844a55f88503de930f4e782a2e  gdb/testsuite/gdb.ada/array_return.exp
-485b1be21397fcecf59a12971b642178  gdb/testsuite/gdb.ada/info_types.exp
-52cb8e7b1c7b32f27c2668c5b71448db  gdb/testsuite/gdb.ada/str_ref_cmp/foo.adb
-02232a92864c3e41fd6b4a1122ec473b  gdb/testsuite/gdb.ada/str_ref_cmp/pck.ads
-3ff4ba6fdfcdaaedb370c3201d6a57e2  gdb/testsuite/gdb.ada/taft_type.exp
-2411e902a46e8a213a6b4ef288339c56  gdb/testsuite/gdb.ada/bp_reset/foo.adb
-9fa70404fcc512de88cbe24e7518b749  gdb/testsuite/gdb.ada/bp_reset/io.adb
-0c6a831778fb6f1ec76c32019f33e0d2  gdb/testsuite/gdb.ada/bp_reset/pck.ads
-20a08bc8890f1a8c6d5fcbb47a7da393  gdb/testsuite/gdb.ada/bp_reset/pck.adb
-8843f8c1fe648a90ce98e6aefd7be8d3  gdb/testsuite/gdb.ada/bp_reset/io.ads
-e6520b47c04488f6fa56973d12ea03ae  gdb/testsuite/gdb.ada/n_arr_bound/foo.adb
-75443486609a45c729f4e847522c14d0  gdb/testsuite/gdb.ada/n_arr_bound/pck.ads
-9675419542fec29e56089249a559d11b  gdb/testsuite/gdb.ada/n_arr_bound/pck.adb
-9941b4f26440869b3bfbc6c157a80281  gdb/testsuite/gdb.ada/arrayidx/p.adb
-f00ce9073a14391bf6c697a06fc76217  gdb/testsuite/gdb.ada/bp_range_type/foo.adb
-e8d028169daeb81efeaef14f93b9e183  gdb/testsuite/gdb.ada/bp_range_type/pck.ads
-55f19303868a8adb7d190c68a4a5a516  gdb/testsuite/gdb.ada/bp_range_type/pck.adb
-e357886d9801d31883c271a26ed6b7a4  gdb/testsuite/gdb.ada/array_char_idx/foo.adb
-02921a8cf35d5a766736fd2fa86d05e9  gdb/testsuite/gdb.ada/array_char_idx/pck.ads
-55f19303868a8adb7d190c68a4a5a516  gdb/testsuite/gdb.ada/array_char_idx/pck.adb
-ad4ebbb64bff7c362c66265054d775b5  gdb/testsuite/gdb.ada/packed_array.exp
-d43457e20fdf708145fb8aaa9ae30880  gdb/testsuite/gdb.ada/homonym.exp
-60ffae6c734704cdf965f53faa72383a  gdb/testsuite/gdb.ada/dot_all/foo.adb
-5a1c8e62e5f3728fe5c3e1f05d6714a8  gdb/testsuite/gdb.ada/dot_all/pck.ads
-4e653340ef25141b75581cf53cbf9859  gdb/testsuite/gdb.ada/dot_all/pck.adb
-ffdbaaeff42162030bbcbf756a6ca516  gdb/testsuite/gdb.ada/funcall_char.exp
-8e83d35c7be61676df0dc5ae171694f6  gdb/testsuite/gdb.ada/watch_arg/watch.adb
-d2f0fe5446708eb0e22dbb361fdeecfb  gdb/testsuite/gdb.ada/watch_arg/pck.ads
-27b11241428009c24af7767fc720ecc8  gdb/testsuite/gdb.ada/watch_arg/pck.adb
-8d29bc08dff6ee142563a8ebc6a427d0  gdb/testsuite/gdb.ada/array_char_idx.exp
-e9bacef3f9f27ba57a979531a0aa6999  gdb/testsuite/gdb.ada/array_ptr_renaming.exp
-9c68c28ab20dd1a6a0841576c8b094a3  gdb/testsuite/gdb.ada/bad-task-bp-keyword/foo.adb
-929da99df21aa3fd3fef602c95d9c357  gdb/testsuite/gdb.ada/rec_comp.exp
-e6d0da97dc692bc4a6bd48380579be24  gdb/testsuite/gdb.ada/type_coercion.exp
-8c42ed1c75006ab0d59766cdfbdba4ab  gdb/testsuite/gdb.ada/char_enum.exp
-72f06e798da7cf7920a6c0249a7ec0d0  gdb/testsuite/gdb.ada/mi_task_arg/task_switch.adb
-fa00726c1e71e1d91b4ee15ff917a212  gdb/testsuite/gdb.ada/iwide.exp
-cf3061afb5efd023266838045ada1f0b  gdb/testsuite/gdb.ada/tick_length_array_enum_idx/foo_n207_004.adb
-5a466b8fac042d91d1871bb6015fcabe  gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.ads
-f79b99955e09240f6fec53c4117c42c3  gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.adb
-ebaaaae3031a2707c6ab6b6b85e607d2  gdb/testsuite/gdb.ada/ptype_field/foo.adb
-3ae0652041b2e22841fcb5a7bed09c39  gdb/testsuite/gdb.ada/ptype_field/pck.ads
-fd186948fc2e9dfc8d18798f7e39d86d  gdb/testsuite/gdb.ada/ptype_field/pck.adb
-1243a44bdf6c5c5a7593afd032c6cefd  gdb/testsuite/gdb.ada/array_bounds.exp
-82e837d30b67090a5075929e3fc8bf3b  gdb/testsuite/gdb.ada/atomic_enum.exp
-69e64537f08cefcd9d9cb93c06f87655  gdb/testsuite/gdb.ada/arrayparam/foo.adb
-9da9e3df33f5b819b91bce4b7d8d4a95  gdb/testsuite/gdb.ada/arrayparam/pck.ads
-7494c41af170cf1765d8aa3f1b7acb46  gdb/testsuite/gdb.ada/arrayparam/pck.adb
-a7959f298b3521a81507d84b568abe47  gdb/testsuite/gdb.ada/tick_last_segv/foo.adb
-7893e6edb91e28b2efda6cccb7573477  gdb/testsuite/gdb.ada/same_enum.exp
-91bd742710bfa8b0f43f0bd8b35d10fe  gdb/testsuite/gdb.ada/py_range/foo.adb
-46dd349dbbf12bcdd15848e190089b11  gdb/testsuite/gdb.ada/py_range/pck.ads
-04e6dc8c131240a67ec270b7d7659b76  gdb/testsuite/gdb.ada/py_range/pck.adb
-cfdaefeca4044b487c00e5c78e0a993c  gdb/testsuite/gdb.ada/tagged_access.exp
-9c68c28ab20dd1a6a0841576c8b094a3  gdb/testsuite/gdb.ada/tasks/foo.adb
-d768ae358f34595b0a7f662b4e4d0fe0  gdb/testsuite/gdb.ada/char_param/foo.adb
-ad948cbc26ec338c159b854e8b72a66f  gdb/testsuite/gdb.ada/char_param/pck.ads
-a7b3cf7f329bbc45c8e58bda0512b9f7  gdb/testsuite/gdb.ada/char_param/pck.adb
-4592b8fafa78061df959e46313343bda  gdb/testsuite/gdb.ada/O2_float_param/foo.adb
-d1a4d102fd2c3c8ffff70ac5e62d9ccc  gdb/testsuite/gdb.ada/O2_float_param/caller.adb
-7728e29d0d84b582c0a6b65da42530aa  gdb/testsuite/gdb.ada/O2_float_param/callee.ads
-1fc250b5ee2b96f43cbae2243137f693  gdb/testsuite/gdb.ada/O2_float_param/io.adb
-0008da57ed48c5baf72a210f02e63394  gdb/testsuite/gdb.ada/O2_float_param/callee.adb
-2a6a152d0394f48ecf18bf4f98e18a1b  gdb/testsuite/gdb.ada/O2_float_param/caller.ads
-1f234886e192cf78d7cc34a975346421  gdb/testsuite/gdb.ada/O2_float_param/io.ads
-5fb675aa2544f13b0e005acce750e2f4  gdb/testsuite/gdb.ada/bp_enum_homonym.exp
-7897b23561df161f67e8b022bcc0d7c7  gdb/testsuite/gdb.ada/sym_print_name/foo.adb
-79eaad8811a8f78925c2be6a25a255d4  gdb/testsuite/gdb.ada/sym_print_name/pck.ads
-fdfb7b2870e808e6c26f9d3daf4ac7bd  gdb/testsuite/gdb.ada/sym_print_name/pck.adb
-a385b5bf8435874c71342c3a0e29709f  gdb/testsuite/gdb.ada/addr_arith.exp
-49ebad7b61af94c6ec13da278d6535ba  gdb/testsuite/gdb.ada/str_uninit.exp
-be813b6e47474ee1bf9dcf52fd8e3f61  gdb/testsuite/gdb.ada/arr_arr.exp
-faf8368a70798894a00a491639c0ec87  gdb/testsuite/gdb.ada/sym_print_name.exp
-5e0351c953941e2a728a77ac22a0d0bb  gdb/testsuite/gdb.ada/pkd_arr_elem/failure.adb
-75443486609a45c729f4e847522c14d0  gdb/testsuite/gdb.ada/pkd_arr_elem/pck.ads
-9675419542fec29e56089249a559d11b  gdb/testsuite/gdb.ada/pkd_arr_elem/pck.adb
-ec1f219323241cc529a6ccc8d69dfb30  gdb/testsuite/gdb.ada/bp_on_var.exp
-bcf5658593e31e3ef1dfa39943dfad57  gdb/testsuite/gdb.ada/fixed_points.exp
-a132a1988eb699311d6bcd898017a08a  gdb/testsuite/gdb.ada/var_rec_arr.exp
-50f8527f54f5189cc2f4f8822e595154  gdb/testsuite/gdb.ada/ptr_typedef.exp
-c957c02d67470d1625d5c24d8cdcff80  gdb/testsuite/gdb.ada/byte_packed_arr/reprod.adb
-cc1b75ae458f2c431d436c00a291d6a7  gdb/testsuite/gdb.ada/byte_packed_arr/reprod_main.adb
-0e552708b9c431cf00770e3de3ed5003  gdb/testsuite/gdb.ada/byte_packed_arr/array_list_g.ads
-11cd8a373e10b6664bd5856325ded242  gdb/testsuite/gdb.ada/byte_packed_arr/reprod.ads
-3c4bdbf34e05486873b1096c2bb74ffb  gdb/testsuite/gdb.ada/array_return/pck.ads
-e22f723af5281314939bcd3a51ceaf8e  gdb/testsuite/gdb.ada/array_return/p.adb
-4380faff72d4f497f4fada5f5db0b085  gdb/testsuite/gdb.ada/array_return/pck.adb
-cea737be2d3db0dfc8f7665237077f0a  gdb/testsuite/gdb.ada/task_bp/foo.adb
-0542b24084d5587e8776450d7b8bb11d  gdb/testsuite/gdb.ada/task_bp/pck.ads
-4ee54b559c353e92bd10743b98ceef45  gdb/testsuite/gdb.ada/task_bp/pck.adb
-cd96d5343ef408581a739841155e24c6  gdb/testsuite/gdb.ada/null_record.exp
-622c79fb99b3e76e0272f6bc1321ae15  gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb
-932d29bac381dc131d2eaab05114155c  gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads
-e3ec6efa731b5fef8b3cbc4d49d1603c  gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb
-9e3db5d490d0cd05fde9a1f6149bf78f  gdb/testsuite/gdb.ada/enum_idx_packed/foo.adb
-88bf8bdcc1a65057bbb45090b66d1f90  gdb/testsuite/gdb.ada/enum_idx_packed/pck.ads
-55f19303868a8adb7d190c68a4a5a516  gdb/testsuite/gdb.ada/enum_idx_packed/pck.adb
-5ce850cc98622cb2af575233fefb03c2  gdb/testsuite/gdb.ada/ptr_typedef/foo.adb
-d2f0fe5446708eb0e22dbb361fdeecfb  gdb/testsuite/gdb.ada/ptr_typedef/pck.ads
-e2e737872d495981ae6145daa60a34dc  gdb/testsuite/gdb.ada/ptr_typedef/pck.adb
-3f04318c8d02e58a3b266a2240779e6e  gdb/testsuite/gdb.ada/access_to_packed_array.exp
-8166eb3e6c07c59cb34de2edf4b02a09  gdb/testsuite/gdb.ada/rec_return.exp
-761d98f5068c6e9876da54adf981b94e  gdb/testsuite/gdb.ada/tagged.exp
-6dc5df84b8eaa6de5d02443754214a24  gdb/testsuite/gdb.ada/uninitialized_vars/parse.adb
-d9401f9b3c979e95ab68dbdfd9b23eab  gdb/testsuite/gdb.ada/uninitialized_vars/parse_controlled.ads
-a8ab2994868f41f5357fbbb35f1759eb  gdb/testsuite/gdb.ada/info_types.c
-ffe4ccff347089a93ef0c30046143208  gdb/testsuite/gdb.ada/whatis_array_val.exp
-fa435447b55ba93bc0625d94af71c994  gdb/testsuite/gdb.ada/out_of_line_in_inlined.exp
-6408e57ced1fcbfbc74c511381c0649a  gdb/testsuite/gdb.ada/n_arr_bound.exp
-e50f394c69a099aa0f8c9a6070614df2  gdb/testsuite/gdb.ada/addr_arith/foo_na07_019.adb
-18d6744f16907f129c44d67890655577  gdb/testsuite/gdb.ada/addr_arith/pck.ads
-4c888badad886a9b9dbd6ecd3d06e6d5  gdb/testsuite/gdb.ada/addr_arith/pck.adb
-e6112ebbd6377df04b3b6e7181a74b23  gdb/testsuite/gdb.ada/whatis_array_val/foo.adb
-d2f0fe5446708eb0e22dbb361fdeecfb  gdb/testsuite/gdb.ada/whatis_array_val/pck.ads
-27b11241428009c24af7767fc720ecc8  gdb/testsuite/gdb.ada/whatis_array_val/pck.adb
-f8f756d23f08bed2170ac82222646ee6  gdb/testsuite/gdb.ada/mi_dyn_arr.exp
-544002dac39c7de9f3219a697e4ed187  gdb/testsuite/gdb.ada/type_coercion/ident.adb
-504672e8a64ce03157a32b5f3aacf407  gdb/testsuite/gdb.ada/type_coercion/assign.adb
-5ab44285886e2be775516c0355e9d621  gdb/testsuite/gdb.ada/py_range.exp
-ad613df77ce94e91ff33080a04b6be2c  gdb/testsuite/gdb.ada/operator_bp.exp
-54e257423e261d846f3b6f1f0526990c  gdb/testsuite/gdb.ada/tagged_not_init.exp
-de336012efae679bcdb9f52c933c4211  gdb/testsuite/gdb.ada/tick_last_segv.exp
-34ed645b881852944d07c24978ecb8d4  gdb/testsuite/gdb.ada/atomic_enum/foo.adb
-7eecb2941444e39dbbdde6759d191509  gdb/testsuite/gdb.ada/atomic_enum/pck.ads
-7ba5556a0920dd76e65ad4562c43c13e  gdb/testsuite/gdb.ada/atomic_enum/pck.adb
-8a8d59d42df5b71aa9392da46eff1660  gdb/testsuite/gdb.ada/disc_arr_bound.exp
-976ffcc12914aeb2b1cb3b57a97b29e8  gdb/testsuite/gdb.ada/int_deref/foo.adb
-4072397e5f09381bd571d6402dc35e97  gdb/testsuite/gdb.ada/int_deref/pck.ads
-fd440afdf5d98d87f6a1265734fd23c4  gdb/testsuite/gdb.ada/fun_overload_menu/foo.adb
-ba75e34fda4366b5600c811a2c62d556  gdb/testsuite/gdb.ada/mi_exc_info/foo.adb
-4a115e8cabc85a10510284d8eb694d4a  gdb/testsuite/gdb.ada/mi_exc_info/const.ads
-ba75e34fda4366b5600c811a2c62d556  gdb/testsuite/gdb.ada/info_exc/foo.adb
-4a115e8cabc85a10510284d8eb694d4a  gdb/testsuite/gdb.ada/info_exc/const.ads
-4846b8ad75e9e0fae6a89377d6c80b3d  gdb/testsuite/gdb.ada/attr_ref_and_charlit/foo.adb
-41de2e114b8262cbcd0eda8ee17984fd  gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp
-8890b31a86bb8b267fbaafc73da4417b  gdb/testsuite/gdb.ada/float_param.exp
-51baed9ee6e9258d69c78287e03de86d  gdb/testsuite/gdb.ada/mi_dyn_arr/foo.adb
-d7650f207de4d0a67ad26401d006b5cf  gdb/testsuite/gdb.ada/mi_dyn_arr/pck.ads
-d4fbbafde4747d9213c8589ccf94f17c  gdb/testsuite/gdb.ada/mi_dyn_arr/pck.adb
-e0cce6308ceba94f7807f58b428dc31d  gdb/testsuite/gdb.ada/widewide/foo.adb
-0c3da2263585dab0e0b6cda3c46bbda8  gdb/testsuite/gdb.ada/widewide/pck.ads
-27b11241428009c24af7767fc720ecc8  gdb/testsuite/gdb.ada/widewide/pck.adb
-5b0b3c8281f26431f3e91cfa10bd2757  gdb/testsuite/gdb.ada/char_enum/foo.adb
-03254af797f807720a29f863be8c544f  gdb/testsuite/gdb.ada/char_enum/pck.ads
-ac135b6d1a5e79449cf6aa76f3995ec7  gdb/testsuite/gdb.ada/char_enum/pck.adb
-06acb6dbe644e4c0491f10c41e8bce39  gdb/testsuite/gdb.ada/mi_interface/foo.adb
-557a0947375615887e0e61f01490f969  gdb/testsuite/gdb.ada/mi_interface/pck.ads
-9675419542fec29e56089249a559d11b  gdb/testsuite/gdb.ada/mi_interface/pck.adb
-6ba3ab0cf77e4910282bd2c3d2585ed2  gdb/testsuite/gdb.ada/lang_switch/foo.c
-7fd83dc68277144e5592a9c21feb9dc2  gdb/testsuite/gdb.ada/lang_switch/lang_switch.adb
-33c40af6667cd437e54df077310aa02f  gdb/testsuite/gdb.ada/arrayptr.exp
-791077cb94f53462a1c1e743004cd6b5  gdb/testsuite/gdb.ada/mi_catch_ex/foo.adb
-4484b79b946cd5451a3ae20c3d1d77e0  gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads
-2c29fe16c9569ea54fcc12ee3a0390a7  gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb
-8879e24f78967110a04ba53eca2c0ef7  gdb/testsuite/gdb.ada/var_arr_attrs/foo_o115_002.adb
-ea7e42327dba481c061f1187f48cd848  gdb/testsuite/gdb.ada/access_to_packed_array/foo.adb
-15626581266f944a63018f74241b1d15  gdb/testsuite/gdb.ada/access_to_packed_array/pack.ads
-79630fc36d3e2532b2585a20af9e88a7  gdb/testsuite/gdb.ada/access_to_packed_array/pack.adb
-b614ff160216641ca4601e0d2cb79345  gdb/testsuite/gdb.ada/mi_exc_info.exp
-791077cb94f53462a1c1e743004cd6b5  gdb/testsuite/gdb.ada/catch_ex/foo.adb
-c268555f0050c8d9b37ad3ccecb62dae  gdb/testsuite/gdb.ada/mi_var_array.exp
-cc3c8da921b07f532d5acaa73b75451b  gdb/testsuite/gdb.ada/mi_interface.exp
-e7e95ed97e77ab61c40115f8c6a317e2  gdb/testsuite/gdb.ada/tick_length_array_enum_idx.exp
-97c71ae746a9cd12e0ee86b329a6d8bb  gdb/testsuite/gdb.ada/taft_type/pck.ads
-035491338c6f0d50302758b114b4f6b9  gdb/testsuite/gdb.ada/taft_type/p.adb
-b856a1d9c3636f4cca1e603eb5d0592a  gdb/testsuite/gdb.ada/taft_type/pck.adb
-72f06e798da7cf7920a6c0249a7ec0d0  gdb/testsuite/gdb.ada/mi_task_info/task_switch.adb
-97871fec468741be301db35d637ecb00  gdb/testsuite/gdb.ada/byte_packed_arr.exp
-8577b1b7b45fee770260f65fb5a4a1d0  gdb/testsuite/gdb.ada/formatted_ref.exp
-e2a0dbfc5dcb1554a8f0689a4880cb70  gdb/testsuite/gdb.ada/var_arr_attrs.exp
-05a0890d4c5fa1ea59be177966ac5e44  gdb/testsuite/gdb.ada/iwide/classes.ads
-83fc7e157e096f4e2978304ed91e78fd  gdb/testsuite/gdb.ada/iwide/p.adb
-2d0914d341dd08e89ffe4e087df124a6  gdb/testsuite/gdb.ada/iwide/classes.adb
-5bc649a67fb0f2a03bbc14aa4b171706  gdb/testsuite/gdb.ada/mi_task_arg.exp
-0e0d48963041d9769e158ae709ceec79  gdb/testsuite/gdb.ada/mi_task_info.exp
-a4103f2074dc02d6b9d1ee5c76feffde  gdb/testsuite/gdb.ada/mi_var_array/bar.adb
-2dd9c6a7bace27f5304a7ffa5f9163c6  gdb/testsuite/gdb.ada/mi_var_array/pck.ads
-2c29fe16c9569ea54fcc12ee3a0390a7  gdb/testsuite/gdb.ada/mi_var_array/pck.adb
-b8531cdbba666418d46805e8b31a50e5  gdb/testsuite/gdb.ada/funcall_ref.exp
-63e91426bc985d318ab84f0c85e99dfc  gdb/testsuite/gdb.ada/funcall_ref/foo.adb
-1428226883667e9bde15bc1274136ab7  gdb/testsuite/gdb.ada/info_locals_renaming/foo.adb
-fcaae12b39bfdc9be620ff01b595f093  gdb/testsuite/gdb.ada/info_locals_renaming/pck.ads
-e263c4a9c2e4059410803e70cfdf0d29  gdb/testsuite/gdb.ada/info_locals_renaming/pck.adb
-cfcaeeb6670f83f2994c70e4d0eb5262  gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb
-18eacbf2028f52deb415558c8008b6ad  gdb/testsuite/gdb.ada/set_pckd_arr_elt/foo.adb
-c6e500e286f8a92eaa443d2471979472  gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.ads
-278b912ffee5058198a297010be16365  gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.adb
-366ae8a9d6c7a54a45c436020211f036  gdb/testsuite/gdb.ada/interface/foo.adb
-c88c555a590862578d4383236aa27f87  gdb/testsuite/gdb.ada/interface/types.ads
-ef561fb1073fd1bfea0d3ec712303f39  gdb/testsuite/gdb.ada/interface/types.adb
-0127b6f7d160215aa05d882172179576  gdb/testsuite/gdb.ada/catch_ex.exp
-496019a320de9f99b785aa7b590431cc  gdb/testsuite/gdb.ada/pp-rec-component/foo.adb
-9e572dc3fa8d77a96e8f7f750651ad2c  gdb/testsuite/gdb.ada/pp-rec-component/pck.ads
-9675419542fec29e56089249a559d11b  gdb/testsuite/gdb.ada/pp-rec-component/pck.adb
-ca64e11486693761c9f8285abb0eec8f  gdb/testsuite/gdb.ada/str_ref_cmp.exp
-4601e48c5525b45c257066bcd047667e  gdb/testsuite/gdb.ada/frame_args.exp
-fd2718d4f10f6ff45b80d8f23e70bf1e  gdb/testsuite/gdb.ada/ptype_arith_binop.exp
-1d31e1ef38df4e6c4401a96413fcf4fd  gdb/testsuite/gdb.ada/ptype_tagged_param/foo.adb
-2e77dbefb657a7f3b7eecf9dc17a498d  gdb/testsuite/gdb.ada/ptype_tagged_param/pck.ads
-3a3e2af35258df2ab96ab09b978cbc10  gdb/testsuite/gdb.ada/ptype_tagged_param/pck.adb
-0e94e346c4712fd7155e22818d7cf7d3  gdb/testsuite/gdb.ada/cond_lang.exp
-70aed8dc2be400fcc0ca5e5438db2478  gdb/testsuite/gdb.ada/fun_in_declare/foo.adb
-375e5ee391aecff3c51b184f6db94e7d  gdb/testsuite/gdb.ada/fun_in_declare/pck.ads
-ef69b9e9cfe8801f029bf04855b369d0  gdb/testsuite/gdb.ada/fun_in_declare/pck.adb
-088e2318aa15b53b1d4a7a0d6597c8a6  gdb/testsuite/gdb.ada/set_wstr.exp
-0b1c51e3ccaba0b592f9ab9562d9d0b0  gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/foo.adb
-e8d028169daeb81efeaef14f93b9e183  gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.ads
-55f19303868a8adb7d190c68a4a5a516  gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.adb
-b340265093afdd79a5e1998dea1b8a82  gdb/testsuite/gdb.ada/fixed_cmp.exp
-ab1af2a37a15f2fc21a2324597f477f1  gdb/testsuite/gdb.ada/exprs.exp
-ff1b458c3941a84d5a24eb4204079f09  gdb/testsuite/gdb.ada/uninitialized_vars.exp
-8d0f567fe6a429109c203c4116808275  gdb/testsuite/gdb.ada/fun_addr.exp
-146848065ce71d9dee24cb127667a475  gdb/testsuite/gdb.ada/pckd_arr_ren/foo.adb
-34eb18a4ac6791d2faca78cd7069d175  gdb/testsuite/gdb.ada/pckd_arr_ren/pck.ads
-ad3c946dfe7a9a6c6aaccb752c2a63e7  gdb/testsuite/gdb.ada/pckd_arr_ren/pck.adb
-124d17884569f51f9d5cd68bdbd9beb7  gdb/testsuite/gdb.ada/print_pc.exp
-7f787da3be602cb6c87e3db542c0b842  gdb/testsuite/gdb.ada/funcall_param/foo.adb
-629764491a7978415eb53fe112b83fdc  gdb/testsuite/gdb.ada/funcall_param/pck.ads
-490013493005d27659accc156b5c26f6  gdb/testsuite/gdb.ada/funcall_param/pck.adb
-a6bec730d39d907866203254e0803c78  gdb/testsuite/gdb.ada/dyn_arrayidx/foo.adb
-e8f337ab9d21d828eaf0767c1b8687ed  gdb/testsuite/gdb.ada/null_array.exp
-394d215ae7e1c68956df7b21edb14a10  gdb/testsuite/gdb.ada/bad-task-bp-keyword.exp
-11a0713d0e8fca9a85def2be0e2f1718  gdb/testsuite/gdb.ada/array_of_variable_length.exp
-c46199322fcf2dd23e7fcd2d07fb7394  gdb/testsuite/gdb.ada/boolean_expr.exp
-e3c0fe872b686f87cf3a72bfae1dd39d  gdb/testsuite/gdb.ada/array_of_variable_length/foo.adb
-c60d4ad8c7a37959f0846de679de718c  gdb/testsuite/gdb.ada/array_of_variable_length/pck.ads
-e33b44dac93bf8f730791b81e0d65936  gdb/testsuite/gdb.ada/array_of_variable_length/pck.adb
-0cebb8c0684c9021dfef0aca9a90c45d  gdb/testsuite/gdb.ada/exec_changed.exp
-7104a2ef5ce58715c72435e7f6624510  gdb/testsuite/gdb.ada/dyn_loc.exp
-f19e56cb932cac491c2a2591df7ed9ac  gdb/testsuite/gdb.ada/rec_return/foo.adb
-bfa5ce7acb35b3df6b93baf8368e0e01  gdb/testsuite/gdb.ada/rec_return/pck.ads
-1f3e918b7ec062175117c1bc0adce2b6  gdb/testsuite/gdb.ada/rec_return/pck.adb
-9944faabc47cb173515f4d4df194e256  gdb/testsuite/gdb.ada/disc_arr_bound/foo_n612_026.adb
-d26e8ec30377bd43c2312edccbe081a5  gdb/testsuite/gdb.ada/disc_arr_bound/pck.ads
-b5bf0b180d2bb3b20f50e7720f7a8be9  gdb/testsuite/gdb.ada/disc_arr_bound/pck.adb
-fa81f01074affe6dcd1b9a5a40b7b7f8  gdb/testsuite/gdb.ada/enum_idx_packed.exp
-d8c9ee882eaf45b3ce0e40ea6e8edf29  gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.adb
-cc569ab6756b76200f928e8325caf7d8  gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.ads
-f26b10706c705728628eddd5adaa30e1  gdb/testsuite/gdb.ada/out_of_line_in_inlined/foo_o224_021.adb
-676eaefdfb1d280cc2b6234bd6416f8a  gdb/testsuite/gdb.ada/same_enum/pck.ads
-ac135b6d1a5e79449cf6aa76f3995ec7  gdb/testsuite/gdb.ada/same_enum/pck.adb
-f17267ec2101569b4a174f9575003722  gdb/testsuite/gdb.ada/same_enum/a.adb
-dffca007459d2f0117747d4b7f0f9998  gdb/testsuite/gdb.ada/ref_param/foo.adb
-c4ab2a016560478fa9f82b4bf535bfc7  gdb/testsuite/gdb.ada/ref_param/pck.ads
-70f0ab8aefc801c6701bc67195e6f556  gdb/testsuite/gdb.ada/ref_param/pck.adb
-816e44c17b9c6daf51cc3ff304d99a0c  gdb/testsuite/gdb.ada/assign_1.exp
-d8c251e1e60090cd96387a81f2f56e2c  gdb/testsuite/gdb.ada/nested.exp
-565ac1040afad69e11ca72c2c63bcb67  gdb/testsuite/gdb.ada/mi_ex_cond.exp
-8b41221a6f6bd8a6325684f7defae4b2  gdb/testsuite/gdb.ada/variant_record_packed_array/foo.adb
-5475774fbd40155fa38292140d90a78f  gdb/testsuite/gdb.ada/variant_record_packed_array/pck.ads
-a00630a53ce07203c5fba7354e32a8b2  gdb/testsuite/gdb.ada/variant_record_packed_array/pck.adb
-fe7e862b98a8ae81fce9c459bc87a0f0  gdb/testsuite/gdb.ada/info_locals_renaming.exp
-178f345e1c48f11f2acd724d5d0dcfdb  gdb/testsuite/gdb.ada/fun_overload_menu.exp
-0f0f768477d110b18c2a0eb6583f5041  gdb/testsuite/gdb.ada/fun_addr/foo.adb
-ae3248ce6768d3abfe3cf373f869aa17  gdb/testsuite/gdb.ada/print_chars/foo.adb
-46dd349dbbf12bcdd15848e190089b11  gdb/testsuite/gdb.ada/print_chars/pck.ads
-04e6dc8c131240a67ec270b7d7659b76  gdb/testsuite/gdb.ada/print_chars/pck.adb
-9735090c7ce9230abba16d3175654235  gdb/testsuite/gdb.ada/variant_record_packed_array.exp
-0a55d94ed84b16d628c05222216d507c  gdb/testsuite/gdb.ada/fun_renaming/fun_renaming.adb
-ba77f7a021911e344090afa21bbe87bf  gdb/testsuite/gdb.ada/fun_renaming/pack.ads
-d25304108629d809d2260a78950e2c5e  gdb/testsuite/gdb.ada/fun_renaming/pack.adb
-7a4438cf8d09150787b1abef5be1b5cf  gdb/testsuite/gdb.ada/arr_arr/foo.adb
-75443486609a45c729f4e847522c14d0  gdb/testsuite/gdb.ada/arr_arr/pck.ads
-9675419542fec29e56089249a559d11b  gdb/testsuite/gdb.ada/arr_arr/pck.adb
-11df28c9353f3e3533cc4ae90e2354bb  gdb/testsuite/gdb.ada/var_arr_typedef.exp
-540b636b75e11487cb7f4584c6573f86  gdb/testsuite/gdb.ada/packed_tagged/comp_bug.adb
-2c44ef956f93929969605dce8d1bf7eb  gdb/testsuite/gdb.ada/O2_float_param.exp
-4061f8d52e46fe6db44046d771db1bd4  gdb/testsuite/gdb.ada/interface.exp
-9acd6db9420c558428b52ec15e0bf5dd  gdb/testsuite/gdb.ada/call_pn.exp
-3b84ff2dde378b5881829592c8c9c4a8  gdb/testsuite/gdb.ada/start/dummy.adb
-06ea6bdbbf0c45bcdda06553d0be5657  gdb/testsuite/gdb.ada/array_subscript_addr/p.adb
-da49c53841b352f54f284fe836ff634c  gdb/testsuite/gdb.ada/mod_from_name/foo.adb
-8d5783ea250776e5aa6b4b89eedd5f64  gdb/testsuite/gdb.ada/small_reg_param/foo.adb
-7026ca307e50d9792b4077203d4b5a12  gdb/testsuite/gdb.ada/small_reg_param/pck.ads
-a11ebe6f6f7339d89ff2ad50c15d4f18  gdb/testsuite/gdb.ada/small_reg_param/pck.adb
-5b66294d148a3bd03d91f917ef4d7bf0  gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads
-ea315c012acf3618e8c5d333adbc46e0  gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb
-1f0818c7404597f479dfc5fc7eff2bca  gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb
-6e9f04998786f1d6bc4b93b2fd2b04a3  gdb/testsuite/gdb.ada/ref_param.exp
-1846986bcb20adf75e58b007c41ef603  gdb/testsuite/gdb.ada/nested/hello.adb
-ed7e328b30ab35c8e7ead68965f5d26f  gdb/testsuite/gdb.ada/ref_tick_size/pck.ads
-14733f3a74aa306b819b1f0ee99e6892  gdb/testsuite/gdb.ada/ref_tick_size/p.adb
-9cbf3c7b35d6bdc10b70da9e90778c1c  gdb/testsuite/gdb.ada/ref_tick_size/pck.adb
-df37bff41f0060471a7a190188a4a5e3  gdb/testsuite/gdb.ada/fullname_bp/dn.ads
-a38513e0c83f40b2281150b9fceb2e8c  gdb/testsuite/gdb.ada/fullname_bp/foo.adb
-46665b7c8257a344db0fbc05d4d9d81b  gdb/testsuite/gdb.ada/fullname_bp/dn.adb
-049ad1968d42ac2468fd9eec3578276e  gdb/testsuite/gdb.ada/fullname_bp/pck.ads
-2516787a476f89db005ebb2bcc5ee7d1  gdb/testsuite/gdb.ada/fullname_bp/pck.adb
-fc9422532f3d33b048268a4db58befb4  gdb/testsuite/gdb.ada/info_exc.exp
-ac5384f6a1c7e83110e2bc7eb7973094  gdb/testsuite/gdb.ada/char_param.exp
-acb45f79bcb5cc05c72885b6744d8cc7  gdb/testsuite/gdb.ada/aliased_array.exp
-5ab666e9c91ad7f4f0f263561ff43b0f  gdb/testsuite/gdb.ada/pckd_arr_ren.exp
-1b3fb0cc4fb5bf39ef737cee9ff3b3f3  gdb/testsuite/gdb.ada/mi_ex_cond/foo.adb
-3112b4753ee2c175a3d06788942561e4  gdb/testsuite/gdb.ada/mi_ex_cond/pck.ads
-28e90e37d7bed30eb52d5c79d1073c11  gdb/testsuite/gdb.ada/dyn_loc/p.adb
-59211f4c3cf5d4514c75b99847cc653f  gdb/testsuite/gdb.ada/dyn_loc/pack.ads
-c34bf4e75430c8abb97fdac1e0bda270  gdb/testsuite/gdb.ada/dyn_loc/pack.adb
-9fde01a869a184d780b32b88befbc831  gdb/testsuite/gdb.ada/fullname_bp.exp
-dcdc1dadc024a96424c9093654c6a024  gdb/testsuite/gdb.ada/ref_tick_size.exp
-a8dc3f1a74cfc7e86056024e655d1f0c  gdb/testsuite/gdb.ada/pp-rec-component.exp
-ff32ef388009d1c925add9d663c757ca  gdb/testsuite/gdb.pascal/print.exp
+7d74132e75cf69a7d20e31a39e22c151  gdb/testsuite/gdb.objc/basicclass.exp
+762feb4e30784c98f0bd22013545b86c  gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp
+8c2fdc480c8157e2335d7fd695f5692f  gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp
+48494332d559f04ea089bae276c0c1de  gdb/testsuite/gdb.tui/tui-layout.c
+1575f43253c5f8a96b9857747c6dec45  gdb/testsuite/gdb.tui/tui-disasm-long-lines.c
+46133fa7692e568062fef3830f058390  gdb/testsuite/gdb.tui/completion.exp
+cba23f2a1b2637fcc58b1711e6eed93d  gdb/testsuite/gdb.tui/tui-layout.exp
+3b85cd8a86ec514d7d1ab7fc333e315a  gdb/testsuite/gdb.ada/dyn_arrayidx.exp
+ab6fb190cb23cf0145eb49cee66d6c08  gdb/testsuite/gdb.ada/rdv_wait.exp
+d42d7f9bb0f97da4fd9ac98e38706e39  gdb/testsuite/gdb.ada/null_array/foo.adb
+37aacb2725ae975bc4b1f91d73c81d11  gdb/testsuite/gdb.ada/null_array/pck.ads
+4ec81b68c6ce6c0de87a3addace613f8  gdb/testsuite/gdb.ada/null_array/pck.adb
+70f30610d7e542799e5b2bf74f980f14  gdb/testsuite/gdb.ada/attr_ref_and_charlit.exp
+6a55396519de360435a2203a1c457aa3  gdb/testsuite/gdb.ada/repeat_dyn/foo_oc22_002.adb
+ef96142b66ef41d37f794d705029c10e  gdb/testsuite/gdb.ada/repeat_dyn/pck.ads
+504325bc177203eacc680176382ac75b  gdb/testsuite/gdb.ada/repeat_dyn/pck.adb
+eb00259ee7824290d9f24880eecf3350  gdb/testsuite/gdb.ada/widewide.exp
+c76200a5728a615af1cbdf56a030beef  gdb/testsuite/gdb.ada/operator_bp/ops.adb
+1f294e01133e8fef8b332c7f3cf678b9  gdb/testsuite/gdb.ada/operator_bp/ops.ads
+6f0be59a55eb677584599c494eda018d  gdb/testsuite/gdb.ada/operator_bp/ops_test.adb
+8f599c71f360cbaf8ad43e7018873da7  gdb/testsuite/gdb.ada/ptype_tagged_param.exp
+99ef03df1cd3c21f1e2432279dbcec79  gdb/testsuite/gdb.ada/formatted_ref/defs.adb
+04f5d611e6d1577ff044960cbdb24cb8  gdb/testsuite/gdb.ada/formatted_ref/defs.ads
+2e768cd6ea9073b607bbe056e825017d  gdb/testsuite/gdb.ada/formatted_ref/formatted_ref.adb
+ec056d17be7fcda0cc88933c8f2c4832  gdb/testsuite/gdb.ada/bp_c_mixed_case.exp
+4174cf52f38a0029798a5fa05adc3e3a  gdb/testsuite/gdb.ada/rec_comp/pck.ads
+bb10df3ae5a8e0c9445a6e4ab0aca307  gdb/testsuite/gdb.ada/rec_comp/bar_o203_012.adb
+5b6576ba90d145426975fe53c434319d  gdb/testsuite/gdb.ada/rec_comp/pck.adb
+23427b44ad10c6aaf672758ecad762fb  gdb/testsuite/gdb.ada/int_deref.exp
+e71171463e5aed26c61a7b60111ed7da  gdb/testsuite/gdb.ada/homonym/homonym.adb
+66abbcd9b7eff11a325bbd33ae2f4a5c  gdb/testsuite/gdb.ada/homonym/pck.ads
+706fb349e49372896529598afea7f49b  gdb/testsuite/gdb.ada/homonym/pck.adb
+4665a14cad3027e0ee25b48515db3d78  gdb/testsuite/gdb.ada/homonym/homonym.ads
+d310b655ef42d6783837cabcf5125ad4  gdb/testsuite/gdb.ada/homonym/homonym_main.adb
+5713c6838c435a49d3368a58518d7c22  gdb/testsuite/gdb.ada/optim_drec.exp
+e4d2e47e124704902b79d852307fe04d  gdb/testsuite/gdb.ada/expr_delims/foo.adb
+2b1d7bc962147185006759a280331aff  gdb/testsuite/gdb.ada/expr_delims/pck.ads
+f194b2fbe5fb922641e6ca60f47a2066  gdb/testsuite/gdb.ada/expr_delims/pck.adb
+65bca50e2f020e5e1b9f3466c4537a57  gdb/testsuite/gdb.ada/aliased_array/foo.adb
+16884a2a445e90db945f466a08f2c7c7  gdb/testsuite/gdb.ada/aliased_array/pck.ads
+f82e58ac962ae2882163c49269d510b8  gdb/testsuite/gdb.ada/aliased_array/pck.adb
+522d32a49936aa56ebfe565f4167f1d6  gdb/testsuite/gdb.ada/task_bp.exp
+10d96fd0a81351462fd2b588b5bc27b9  gdb/testsuite/gdb.ada/exec_changed/first.adb
+8303aa27e900037b89608b7fafbe6a4e  gdb/testsuite/gdb.ada/exec_changed/second.adb
+cc93f5caa464eb7f5a79ea7b072afc64  gdb/testsuite/gdb.ada/bp_on_var/foo.adb
+d82bb537b0a4a9da2c119d2cb98236c0  gdb/testsuite/gdb.ada/bp_on_var/pck.ads
+25abbb967f927a36a07aa903b1512d49  gdb/testsuite/gdb.ada/bp_on_var/pck.adb
+6ebd2e607faa227c74be38da524013fb  gdb/testsuite/gdb.ada/bp_c_mixed_case/bar.c
+12e5efd6b3bf7efe8484c95169e09036  gdb/testsuite/gdb.ada/bp_c_mixed_case/foo_h731_021.adb
+23c12d92f0686d38ab3590044d7a0e34  gdb/testsuite/gdb.ada/bp_reset.exp
+fcefbc970a18796bfea7eaf89db0d593  gdb/testsuite/gdb.ada/frame_args/foo.adb
+3a9528181425a46e5ff2dec937013a63  gdb/testsuite/gdb.ada/frame_args/pck.ads
+51a2d1ad69a3e458f2245467ddb5e960  gdb/testsuite/gdb.ada/frame_args/pck.adb
+b237d3c7fefdf9c1d63785f5b57d5ecc  gdb/testsuite/gdb.ada/array_bounds/bar.adb
+6e31fd1181798c78795080b0c5d5c541  gdb/testsuite/gdb.ada/funcall_ptr/foo.adb
+bea4acf589542d666ec5047f22616873  gdb/testsuite/gdb.ada/funcall_ptr/pck.ads
+52532bf39800c533bc54f80541685a26  gdb/testsuite/gdb.ada/funcall_ptr/pck.adb
+22bb00836805ba993577f48fba76b123  gdb/testsuite/gdb.ada/win_fu_syms.exp
+25048b931b5f6fffca5b1a1b8e4535cf  gdb/testsuite/gdb.ada/array_ptr_renaming/foo.adb
+723c3f02818ff915b9933fa92fe1bd0b  gdb/testsuite/gdb.ada/array_ptr_renaming/pack.ads
+7d8610d288f087a7ee5a4eb676f7307e  gdb/testsuite/gdb.ada/tagged_access/p.adb
+1a86e175c929dbec01b0f6229d037999  gdb/testsuite/gdb.ada/tagged_access/pack.ads
+da3c5f8be6c15ac336026c0eeb1fdc27  gdb/testsuite/gdb.ada/tagged_access/pack.adb
+0b80ce2b8805a9246b4f16e8d17c2cb8  gdb/testsuite/gdb.ada/pp-rec-component.py
+ebe17ae71ebd6a50c23e774989054eea  gdb/testsuite/gdb.ada/pckd_neg.exp
+183fb8a0be36bb33acb1fc37fe9ea9e1  gdb/testsuite/gdb.ada/mod_from_name.exp
+3b405d93860709cea760eb217a34e65e  gdb/testsuite/gdb.ada/str_uninit/parse.adb
+0225a5a85f694dddaf951cf731c8e073  gdb/testsuite/gdb.ada/str_uninit/pck.ads
+4122f71fe00f6ece5c6ab30d3a960493  gdb/testsuite/gdb.ada/str_uninit/pck.adb
+a3430a1f8cd144528416860583b62417  gdb/testsuite/gdb.ada/tagged_not_init/foo.adb
+04ac6aabe7d7f495e57b4ced9dbcb1f7  gdb/testsuite/gdb.ada/tagged_not_init/pck.ads
+9b0733a918f3c55ed7d00265ec31614b  gdb/testsuite/gdb.ada/tagged_not_init/pck.adb
+740156dd47e150368a89e887194aa12a  gdb/testsuite/gdb.ada/fun_in_declare.exp
+ecb3ca497622c0724a2d0bb15e664dca  gdb/testsuite/gdb.ada/expr_delims.exp
+dcbad4726d9e4127315f7ebddd1ebfe3  gdb/testsuite/gdb.ada/excep_handle/foo.adb
+1a1e4e6889be0ff15126280a0bb3b498  gdb/testsuite/gdb.ada/excep_handle/pck.ads
+c310b7636a49286678e0f4dc7f92ad00  gdb/testsuite/gdb.ada/fixed_cmp/pck.ads
+7f28ea3c41161d92e9668191fcf3f1fb  gdb/testsuite/gdb.ada/fixed_cmp/pck.adb
+3650a50b5ee683d59f0ea05e000b70f4  gdb/testsuite/gdb.ada/fixed_cmp/fixed.adb
+1632104d7262f699ed116ac0e9feb616  gdb/testsuite/gdb.ada/arrayparam.exp
+7c947e78caf13476d8195d21fd5d996d  gdb/testsuite/gdb.ada/float_param/foo.adb
+f3c5580cd867710062c933cd4f2b070c  gdb/testsuite/gdb.ada/float_param/pck.ads
+722617d0c8b5bde69ff5a11ea94afb92  gdb/testsuite/gdb.ada/float_param/pck.adb
+1900e71e863f587b80ac9436fb9b7f4a  gdb/testsuite/gdb.ada/arraydim/foo.adb
+cf1677be9634f80b5681883a27897aaa  gdb/testsuite/gdb.ada/arraydim/pck.ads
+aec7f7e44549c26c7853286026a5f0f8  gdb/testsuite/gdb.ada/arraydim/inc.c
+ea96a429277fa23c07de5b2a07794ff5  gdb/testsuite/gdb.ada/arraydim/pck.adb
+bafc110046561cef212dab053d8014b0  gdb/testsuite/gdb.ada/complete.exp
+6b06618af3e7de938e216ceb0ad4ce1e  gdb/testsuite/gdb.ada/funcall_param.exp
+17803008cf0a50b6469371101afd9800  gdb/testsuite/gdb.ada/same_component_name/foo.adb
+d2b021c17e6a193b4b24dacaef6184e4  gdb/testsuite/gdb.ada/same_component_name/pck.ads
+c34a6d51dce74b027d5d7f3b8e903548  gdb/testsuite/gdb.ada/same_component_name/pck.adb
+4388a0f8b870550e9580e4875c051d64  gdb/testsuite/gdb.ada/small_reg_param.exp
+5d8e87c7938af31a33d388d9bfca4efe  gdb/testsuite/gdb.ada/arrayidx.exp
+213dd315b672e2529d9352a320493332  gdb/testsuite/gdb.ada/pckd_neg/foo_o508_021.adb
+f1ac3de5183baa919038459a45fe26ae  gdb/testsuite/gdb.ada/pckd_neg/pck.ads
+f0355592f035d55e9d9250b1a5d2664d  gdb/testsuite/gdb.ada/pckd_neg/pck.adb
+c795875742a1fbf194c90fdeab97b6cc  gdb/testsuite/gdb.ada/rdv_wait/foo.adb
+a5aa7e0b4f6f1ce5f2777d5db4bdf0fb  gdb/testsuite/gdb.ada/rdv_wait/pck.ads
+02140172623d249eddb5daf4293680fb  gdb/testsuite/gdb.ada/rdv_wait/pck.adb
+3e9251886c825db75ac7009cc59af115  gdb/testsuite/gdb.ada/optim_drec/foo.adb
+bc37788adf71f28619a9eddc53a25c24  gdb/testsuite/gdb.ada/fun_renaming.exp
+b9524cf4e535bf8854b11243cbfd1358  gdb/testsuite/gdb.ada/dot_all.exp
+8e5e335398f6bd8d7f45f9969021a665  gdb/testsuite/gdb.ada/fin_fun_out/bar.adb
+95ed747049d86a1b4a7d99d2e365fcc8  gdb/testsuite/gdb.ada/fin_fun_out/foo_o525_013.adb
+83f6004e8701b6122c7a4abd406b1870  gdb/testsuite/gdb.ada/fin_fun_out/bar.ads
+352e2a872aa6d43ef7d9e006cf4aa62e  gdb/testsuite/gdb.ada/bp_range_type.exp
+4fd6c5b6f9c179bb9a79d65718b5a3d1  gdb/testsuite/gdb.ada/set_wstr/pck.ads
+b5954d943a867b08a2b9b7b10f9594f5  gdb/testsuite/gdb.ada/set_wstr/pck.adb
+c0f51b3bb28f03fec86a4b3c42d0900c  gdb/testsuite/gdb.ada/set_wstr/a.adb
+6aa7ce7e6dc7e57a9624cac496d20228  gdb/testsuite/gdb.ada/arraydim.exp
+fb06e8ebc9883b24a6271ca40800698a  gdb/testsuite/gdb.ada/complete/aux_pck.adb
+848d3a13d8dfd7581adde4e3c638b52e  gdb/testsuite/gdb.ada/complete/foo.adb
+67e6329e867576eac27883969910c70f  gdb/testsuite/gdb.ada/complete/aux_pck.ads
+23c37eab17f97701911a12eca56f7811  gdb/testsuite/gdb.ada/complete/pck.ads
+d7d3b9f366639270e0b0044b9d107c17  gdb/testsuite/gdb.ada/complete/pck.adb
+215ded38883704e809b1e0c991de4162  gdb/testsuite/gdb.ada/access_tagged_param.exp
+48e1a73807509cac2b974a9d11b47354  gdb/testsuite/gdb.ada/ptype_field.exp
+702d1345d45814a378ee6f38e27e1609  gdb/testsuite/gdb.ada/call_pn/foo.adb
+7520b458a6932d8c5561049bde6fe368  gdb/testsuite/gdb.ada/call_pn/pck.ads
+6eaca93899c96694eed50a5b3a8a8e3f  gdb/testsuite/gdb.ada/call_pn/pck.adb
+5b959537b4fb7a32f8038018102af94e  gdb/testsuite/gdb.ada/mi_catch_ex.exp
+afa873f0e03fe5a90b07951bb68d3183  gdb/testsuite/gdb.ada/tagged/foo.adb
+8468f1f36948b962d16c58e44b0a4e85  gdb/testsuite/gdb.ada/tagged/pck.ads
+6877095807cdf11037ea533e8b054534  gdb/testsuite/gdb.ada/tagged/pck.adb
+431441346a4136f96dfcc806656bbc38  gdb/testsuite/gdb.ada/array_subscript_addr.exp
+7b809af7068f1e4ddb97f4d0d2bb6dbb  gdb/testsuite/gdb.ada/exprs/p.adb
+f70d4e48b018ae67b7e547e5a9d297c8  gdb/testsuite/gdb.ada/cond_lang/foo.c
+73aad7e011dbf0c9869091f673b555ed  gdb/testsuite/gdb.ada/cond_lang/mixed.adb
+c7a767174e796f4c4ab4af797549609c  gdb/testsuite/gdb.ada/cond_lang/pck.ads
+fa051760680c496fb7645d087ab663a4  gdb/testsuite/gdb.ada/cond_lang/mixed.ads
+192a1f606be5084043c834b5f4ada368  gdb/testsuite/gdb.ada/cond_lang/pck.adb
+0ade2036b84d9fa206041207201ffc9f  gdb/testsuite/gdb.ada/cond_lang/a.adb
+43a131b81ba7c04b95debeff09f4789f  gdb/testsuite/gdb.ada/lang_switch.exp
+09202b73960c3f1986e4c78ab433245c  gdb/testsuite/gdb.ada/watch_arg.exp
+28af7d6c4d50d1550137cd4bc1838188  gdb/testsuite/gdb.ada/packed_array/pa.adb
+fda68c2eb32b73ed360d0e4b32114ee9  gdb/testsuite/gdb.ada/packed_array/pck.ads
+2449bcedcc694354348265facc3a6b4f  gdb/testsuite/gdb.ada/packed_array/pck.adb
+d5f424487f5426616eaefa862e0cb4c2  gdb/testsuite/gdb.ada/packed_tagged.exp
+da2be3e55086e5cbb3b0a5b1b2ebaf2b  gdb/testsuite/gdb.ada/win_fu_syms/foo.adb
+694aed997cad61fbf2d6bc4313ff46fd  gdb/testsuite/gdb.ada/win_fu_syms/pck.ads
+347d203b1e21c3a2d5fc8c8b26aac927  gdb/testsuite/gdb.ada/win_fu_syms/pck.adb
+206d1b37feff1884df17d82ab4ecb120  gdb/testsuite/gdb.ada/minsyms/foo_qb07_057.adb
+79d943b33f413873fa2f429d740450e4  gdb/testsuite/gdb.ada/minsyms/pck.ads
+c3cd2708b49161a9bc77203317e552b3  gdb/testsuite/gdb.ada/minsyms/pck.adb
+b952ba20c90fec7110b13b895cf2c593  gdb/testsuite/gdb.ada/funcall_char/foo.adb
+c59f5dc241bedde69889c3fa31c5c00d  gdb/testsuite/gdb.ada/funcall_ptr.exp
+cdfbe1d682f173fb64afe72b38e57967  gdb/testsuite/gdb.ada/null_record/null_record.adb
+938e6ccccba4d3b0bddd91dd0a09d6ed  gdb/testsuite/gdb.ada/null_record/bar.adb
+562fb69aa7d1eb92992cde9b41d116eb  gdb/testsuite/gdb.ada/null_record/bar.ads
+c23e0effbc978feaae14a8735efcc21a  gdb/testsuite/gdb.ada/print_chars.exp
+31c8de00405de6ee012613b17105ca42  gdb/testsuite/gdb.ada/arrayptr/foo.adb
+ecef315f188c13a86f4f7bfa56d436c3  gdb/testsuite/gdb.ada/arrayptr/pck.ads
+42efac30696162c6248123066841f906  gdb/testsuite/gdb.ada/arrayptr/pck.adb
+ab4e2216f4383e4354f49fdf95a703f7  gdb/testsuite/gdb.ada/set_pckd_arr_elt.exp
+832e89130eb43c1ddb49139336e1488b  gdb/testsuite/gdb.ada/fin_fun_out.exp
+7d5a3ef5c279bcbdcc3da54f91ff5697  gdb/testsuite/gdb.ada/start.exp
+70759e4b43b5653e1b6bc83dabce57f2  gdb/testsuite/gdb.ada/tasks.exp
+c584bd0c11c495a0b809bfe4c2670825  gdb/testsuite/gdb.ada/pkd_arr_elem.exp
+58eca6e219ded883f196c536eade94be  gdb/testsuite/gdb.ada/var_rec_arr/pck.ads
+fdc6dbf158566cc479d08405fb477d15  gdb/testsuite/gdb.ada/var_rec_arr/foo_na09_042.adb
+a4b3591f73c6f45695c406ca3044abe3  gdb/testsuite/gdb.ada/var_rec_arr/pck.adb
+9ab0a4d28f1c0ffbb2e866e6deca1173  gdb/testsuite/gdb.ada/array_return.exp
+dc3a8a890b0ca274324bbfb52cc52d75  gdb/testsuite/gdb.ada/info_types.exp
+3cde6407cc7509b137da1780cf3d92d1  gdb/testsuite/gdb.ada/str_ref_cmp/foo.adb
+de13bb3b2e0e614c60747d7d819feeb0  gdb/testsuite/gdb.ada/str_ref_cmp/pck.ads
+f714167500a97a13f0cab69ae60ce172  gdb/testsuite/gdb.ada/taft_type.exp
+c4737f93919ac087023e5b9785877831  gdb/testsuite/gdb.ada/bp_reset/foo.adb
+ccf11b3cf6c76ad4877966a361b6dbeb  gdb/testsuite/gdb.ada/bp_reset/io.adb
+1e00ff6413174e9d0f818e83fafbae6b  gdb/testsuite/gdb.ada/bp_reset/pck.ads
+86bf7b478c011f274e912a8ca64819ca  gdb/testsuite/gdb.ada/bp_reset/pck.adb
+ffe0e93f2e4957ebc2b6204ad4cf74ac  gdb/testsuite/gdb.ada/bp_reset/io.ads
+0b67d9d1ce6d44be5dc69acef104cd9d  gdb/testsuite/gdb.ada/n_arr_bound/foo.adb
+fab96c5170fb50382c127ffefd148a1a  gdb/testsuite/gdb.ada/n_arr_bound/pck.ads
+eebbd9b321e4866cd52728e94e1b323c  gdb/testsuite/gdb.ada/n_arr_bound/pck.adb
+67071cf88b07ade1690cc8753a83a2e8  gdb/testsuite/gdb.ada/arrayidx/p.adb
+95acf5bb6ac92a8c6e8cbef0a4e72d30  gdb/testsuite/gdb.ada/bp_range_type/foo.adb
+4fd6c5b6f9c179bb9a79d65718b5a3d1  gdb/testsuite/gdb.ada/bp_range_type/pck.ads
+b5954d943a867b08a2b9b7b10f9594f5  gdb/testsuite/gdb.ada/bp_range_type/pck.adb
+a0d319e92f9ce1d57b67980585d12697  gdb/testsuite/gdb.ada/array_char_idx/foo.adb
+d0126deab340015d2d34831699e99114  gdb/testsuite/gdb.ada/array_char_idx/pck.ads
+b5954d943a867b08a2b9b7b10f9594f5  gdb/testsuite/gdb.ada/array_char_idx/pck.adb
+65a3e9791ec5e485a74dbe8fc43d7e99  gdb/testsuite/gdb.ada/packed_array.exp
+e223d6088aa6442c175447b2320afd61  gdb/testsuite/gdb.ada/homonym.exp
+6762dedc679e9fdbcb0540ff9f1586db  gdb/testsuite/gdb.ada/dot_all/foo.adb
+3169def4bf41bc4dd84d01ceec850834  gdb/testsuite/gdb.ada/dot_all/pck.ads
+6877095807cdf11037ea533e8b054534  gdb/testsuite/gdb.ada/dot_all/pck.adb
+e829d72c9264a2d41225144a432ff393  gdb/testsuite/gdb.ada/funcall_char.exp
+c0a0cb04a0ad7fbd57cdfcf7b29cb400  gdb/testsuite/gdb.ada/watch_arg/watch.adb
+66abbcd9b7eff11a325bbd33ae2f4a5c  gdb/testsuite/gdb.ada/watch_arg/pck.ads
+5b6576ba90d145426975fe53c434319d  gdb/testsuite/gdb.ada/watch_arg/pck.adb
+5f2c9d830e773be03ff5bfb661ae29db  gdb/testsuite/gdb.ada/array_char_idx.exp
+ecb4b3235ebfb606540528aa785b2746  gdb/testsuite/gdb.ada/array_ptr_renaming.exp
+2a030ec3e781993b8ed3844ae725a8fc  gdb/testsuite/gdb.ada/bad-task-bp-keyword/foo.adb
+2eb24a2aa26fba3668e58d0ba838cc94  gdb/testsuite/gdb.ada/rec_comp.exp
+9ff80030d821924050f3c8cf901f9104  gdb/testsuite/gdb.ada/type_coercion.exp
+419f6747cb58e9b0163f3f9bac421d89  gdb/testsuite/gdb.ada/char_enum.exp
+10cb3d3e9094e117b927823f1d769a96  gdb/testsuite/gdb.ada/mi_task_arg/task_switch.adb
+d23d5faeaa1ee2b2991ffefa16e66e10  gdb/testsuite/gdb.ada/iwide.exp
+84382abbc8939ac1267e5361bfdf3c81  gdb/testsuite/gdb.ada/tick_length_array_enum_idx/foo_n207_004.adb
+ab8612851d7dc841a399af0de79b6feb  gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.ads
+61ee20ba6cf73c30ccd6bc0ee5ff9c43  gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.adb
+0ce739c2f5f292351458f164d3ecc018  gdb/testsuite/gdb.ada/ptype_field/foo.adb
+fc76375e8a9d340926d85be75dea2429  gdb/testsuite/gdb.ada/ptype_field/pck.ads
+572513d28681a7b0812d653d3622481b  gdb/testsuite/gdb.ada/ptype_field/pck.adb
+5af5da6e4c23ee445084cd0ce178011f  gdb/testsuite/gdb.ada/array_bounds.exp
+be79f38d4855c6ac5fd7f7d2389e123d  gdb/testsuite/gdb.ada/atomic_enum.exp
+6fe9edce9847828b7b51ffeac636b4c9  gdb/testsuite/gdb.ada/assign_arr/main_p324_051.adb
+793cf91842c2e5837bcee36fc6409151  gdb/testsuite/gdb.ada/assign_arr/target_wrapper.ads
+671bca572b65de2d6743961f537015ba  gdb/testsuite/gdb.ada/arrayparam/foo.adb
+0bd2eed4f677eb835aed0a2fc8fae6a1  gdb/testsuite/gdb.ada/arrayparam/pck.ads
+918d0eb687215a3dbbeef9344aa5ce83  gdb/testsuite/gdb.ada/arrayparam/pck.adb
+f3fe31a7d15875a2e44471a05161844a  gdb/testsuite/gdb.ada/tick_last_segv/foo.adb
+b68c269875a7d973a12d62ca635fd663  gdb/testsuite/gdb.ada/same_enum.exp
+3fc43701e0fa34ef807976c6d03b35e3  gdb/testsuite/gdb.ada/py_range/foo.adb
+c310b7636a49286678e0f4dc7f92ad00  gdb/testsuite/gdb.ada/py_range/pck.ads
+7f28ea3c41161d92e9668191fcf3f1fb  gdb/testsuite/gdb.ada/py_range/pck.adb
+ce737918d14d2555e8b452837940d822  gdb/testsuite/gdb.ada/tagged_access.exp
+6484894ba8ac1a6061090caa32178459  gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb
+e9f1afba307735a568d1656e98d7ac93  gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads
+ea7eebe9248785fbec0ae8de23886f71  gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb
+6ddc197af50e18928be64c942b275670  gdb/testsuite/gdb.ada/dyn_stride/foo.adb
+2a030ec3e781993b8ed3844ae725a8fc  gdb/testsuite/gdb.ada/tasks/foo.adb
+888d78ea31193cd1fc63a6df19b8cf99  gdb/testsuite/gdb.ada/char_param/foo.adb
+f4b82f5e1b9dbd4e73a34bc73bbd7b80  gdb/testsuite/gdb.ada/char_param/pck.ads
+569d136ee948080ef45a5f0958899d82  gdb/testsuite/gdb.ada/char_param/pck.adb
+54c7bb8fe5dc688e01fcf7679427dea9  gdb/testsuite/gdb.ada/excep_handle.exp
+730198a3a7ee2da3f66ddc672ba03ee9  gdb/testsuite/gdb.ada/O2_float_param/foo.adb
+6125d1ec09f22df6c96c51a676fff555  gdb/testsuite/gdb.ada/O2_float_param/caller.adb
+8846538a1f45d4b1d32048f73f06def0  gdb/testsuite/gdb.ada/O2_float_param/callee.ads
+e3cbc80d5623f96aec44d0427abf843f  gdb/testsuite/gdb.ada/O2_float_param/io.adb
+7e4b5eb04a02bbccf4051b29f6dd9ec1  gdb/testsuite/gdb.ada/O2_float_param/callee.adb
+456328db802fec96b431f14d1a2e13da  gdb/testsuite/gdb.ada/O2_float_param/caller.ads
+0d49c621e1fc40f3cfc79f7ebc080ddc  gdb/testsuite/gdb.ada/O2_float_param/io.ads
+9ecdef0814253e9ef1e00c10714afff2  gdb/testsuite/gdb.ada/str_binop_equal.exp
+7f2859604c896726eb8ebb85f5546995  gdb/testsuite/gdb.ada/bp_enum_homonym.exp
+8a24de53641f666ae1190bcf1df3e6ee  gdb/testsuite/gdb.ada/sym_print_name/foo.adb
+a73edf1a73e6656c9c8b0b94537dbede  gdb/testsuite/gdb.ada/sym_print_name/pck.ads
+728d16f53f7a5899ae01c25c00151040  gdb/testsuite/gdb.ada/sym_print_name/pck.adb
+2c4a214e0a89af79f482e7e08d4a3b86  gdb/testsuite/gdb.ada/addr_arith.exp
+d6b09cfee2d558df4a6c959c63cf0913  gdb/testsuite/gdb.ada/str_uninit.exp
+5d57e215e78f40ff3794be7f897902f3  gdb/testsuite/gdb.ada/arr_arr.exp
+9ea53b2d0067e580706b26b4337fd1ad  gdb/testsuite/gdb.ada/sym_print_name.exp
+980d951fb4710593be9cbc27c8ff8228  gdb/testsuite/gdb.ada/pkd_arr_elem/failure.adb
+fab96c5170fb50382c127ffefd148a1a  gdb/testsuite/gdb.ada/pkd_arr_elem/pck.ads
+eebbd9b321e4866cd52728e94e1b323c  gdb/testsuite/gdb.ada/pkd_arr_elem/pck.adb
+edf582ec9b680a29790cdc41a95d7780  gdb/testsuite/gdb.ada/bp_on_var.exp
+1bd1c91848901a8ac2511bc31d65ef43  gdb/testsuite/gdb.ada/fixed_points.exp
+74f3f7c94b26afa44bcc6211ea31dce3  gdb/testsuite/gdb.ada/var_rec_arr.exp
+a05d2e9af37b32b245a7ca9beec93311  gdb/testsuite/gdb.ada/ptr_typedef.exp
+d2d1d3b2ec9a5e326bf33ae72d478853  gdb/testsuite/gdb.ada/byte_packed_arr/reprod.adb
+2db3de707d8f266cb7b5370b6dc64f6c  gdb/testsuite/gdb.ada/byte_packed_arr/reprod_main.adb
+471979f802f7808b1e890277ca24eacd  gdb/testsuite/gdb.ada/byte_packed_arr/array_list_g.ads
+7f890c6a213cb4f56613494c4ca7989c  gdb/testsuite/gdb.ada/byte_packed_arr/reprod.ads
+494c0a6eb40659892245adf58192160f  gdb/testsuite/gdb.ada/array_return/pck.ads
+5010081c9d0550a07bb21080d009df8d  gdb/testsuite/gdb.ada/array_return/p.adb
+538062387e8a6733e6aad584dfde7681  gdb/testsuite/gdb.ada/array_return/pck.adb
+9bc530f5d60f497d0d1348da55442206  gdb/testsuite/gdb.ada/task_bp/foo.adb
+9c7bd2959204b20ae9800ba4705b1f8e  gdb/testsuite/gdb.ada/task_bp/pck.ads
+9362e6480aba23d8b71426c51324c180  gdb/testsuite/gdb.ada/task_bp/pck.adb
+e82451425d5fea25beeb4f5787edf031  gdb/testsuite/gdb.ada/null_record.exp
+d4a3bb7985b9e7db27c9ccbae9875897  gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb
+e4506ecf3c5b39596d50f8cdc1cadda9  gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads
+544f49bdd8f3914080135b5975ca4fbd  gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb
+49cbd629fbfa106d80c4640e2e137181  gdb/testsuite/gdb.ada/enum_idx_packed/foo.adb
+e6d26ca60add2f850e761999ac5007a8  gdb/testsuite/gdb.ada/enum_idx_packed/pck.ads
+b5954d943a867b08a2b9b7b10f9594f5  gdb/testsuite/gdb.ada/enum_idx_packed/pck.adb
+92b2e31f1de82b90c6c4f858e919f47d  gdb/testsuite/gdb.ada/ptr_typedef/foo.adb
+66abbcd9b7eff11a325bbd33ae2f4a5c  gdb/testsuite/gdb.ada/ptr_typedef/pck.ads
+706fb349e49372896529598afea7f49b  gdb/testsuite/gdb.ada/ptr_typedef/pck.adb
+ad5d9d1be4c878b025297bb90d561cb4  gdb/testsuite/gdb.ada/access_to_packed_array.exp
+b4b41e7d2680392f702932b5a103a256  gdb/testsuite/gdb.ada/rec_return.exp
+648cd8f92730c78ab4ba7bb6f7e25eba  gdb/testsuite/gdb.ada/tagged.exp
+50d2c93a26c9923942faea844d72fba0  gdb/testsuite/gdb.ada/uninitialized_vars/parse.adb
+f8f2abff0ca7be99a3564a7307188294  gdb/testsuite/gdb.ada/uninitialized_vars/parse_controlled.ads
+024b64494333f9863d3fec045577aca2  gdb/testsuite/gdb.ada/info_types.c
+92814b256917bb65df6f2f922ef2a53a  gdb/testsuite/gdb.ada/whatis_array_val.exp
+cd87d7ad3682375b7f17073ab73ddef0  gdb/testsuite/gdb.ada/out_of_line_in_inlined.exp
+ff68746e549389da5de9c44c0772250e  gdb/testsuite/gdb.ada/n_arr_bound.exp
+37e1e980b5fbf75746d4594d72b70cd1  gdb/testsuite/gdb.ada/addr_arith/foo_na07_019.adb
+6f89753afc67abe54d422f696b52a912  gdb/testsuite/gdb.ada/addr_arith/pck.ads
+0dffaf2b9d3d3f988bbd2e2f2013b9b0  gdb/testsuite/gdb.ada/addr_arith/pck.adb
+660f6139880f700e7cbe4d8bfab0be4a  gdb/testsuite/gdb.ada/whatis_array_val/foo.adb
+66abbcd9b7eff11a325bbd33ae2f4a5c  gdb/testsuite/gdb.ada/whatis_array_val/pck.ads
+5b6576ba90d145426975fe53c434319d  gdb/testsuite/gdb.ada/whatis_array_val/pck.adb
+3bf4c85f81fa3f07fd0250ca085384b3  gdb/testsuite/gdb.ada/mi_dyn_arr.exp
+84970a08dfe06f0de2361861e7242924  gdb/testsuite/gdb.ada/type_coercion/ident.adb
+3d9c2445be7f97a4f483bc7b1cdeeb10  gdb/testsuite/gdb.ada/type_coercion/assign.adb
+d4a25ee06668db421b64f12cb6698200  gdb/testsuite/gdb.ada/py_range.exp
+5e259517059556a59ed95956121d3641  gdb/testsuite/gdb.ada/operator_bp.exp
+91df874f04e71692fab25fa937c019a3  gdb/testsuite/gdb.ada/tagged_not_init.exp
+47a77ebf525a025705af3ceff79b1eb7  gdb/testsuite/gdb.ada/minsyms.exp
+424d309c53df21da4197c8d0214aad2c  gdb/testsuite/gdb.ada/tick_last_segv.exp
+622c79fb99b3e76e0272f6bc1321ae15  gdb/testsuite/gdb.ada/maint_with_ada/var_arr_typedef.adb
+932d29bac381dc131d2eaab05114155c  gdb/testsuite/gdb.ada/maint_with_ada/pack.ads
+e3ec6efa731b5fef8b3cbc4d49d1603c  gdb/testsuite/gdb.ada/maint_with_ada/pack.adb
+3c04d26b59788d20a2e94f7e9f3e7bc5  gdb/testsuite/gdb.ada/atomic_enum/foo.adb
+53947ba4341d47f8e1c20ffa9feddacc  gdb/testsuite/gdb.ada/atomic_enum/pck.ads
+7f7dc3ca39e88e60c1a0cbc9cc0859f3  gdb/testsuite/gdb.ada/atomic_enum/pck.adb
+115af1d7e52afc35df96cce26876462a  gdb/testsuite/gdb.ada/disc_arr_bound.exp
+3fa04fc87ec4d2e3a7314addc99f4b78  gdb/testsuite/gdb.ada/int_deref/foo.adb
+46f66c8155c7ba5874850cb56a83e5a0  gdb/testsuite/gdb.ada/int_deref/pck.ads
+2ab77fbbead4259c7b6b4ad3ede343d4  gdb/testsuite/gdb.ada/task_switch_in_core/crash.adb
+a0fed79432f24286a5b3d1581cc1bf40  gdb/testsuite/gdb.ada/fun_overload_menu/foo.adb
+77e6f259581e0db546d3684d3cf2ab5b  gdb/testsuite/gdb.ada/mi_exc_info/foo.adb
+8d4a168ed87ce64d898ad9002b8f04d7  gdb/testsuite/gdb.ada/mi_exc_info/const.ads
+77e6f259581e0db546d3684d3cf2ab5b  gdb/testsuite/gdb.ada/info_exc/foo.adb
+8d4a168ed87ce64d898ad9002b8f04d7  gdb/testsuite/gdb.ada/info_exc/const.ads
+5793c1322b6879c4bcfd0164e11fcc1f  gdb/testsuite/gdb.ada/attr_ref_and_charlit/foo.adb
+cecb501194f2f699ed1716e8b54f8e1e  gdb/testsuite/gdb.ada/str_binop_equal/foo_p211_061.adb
+e1e4a31dd63c3bad43a73f9eb00b65bf  gdb/testsuite/gdb.ada/str_binop_equal/pck.ads
+cee2a228c9e96753799bf84c88d6d675  gdb/testsuite/gdb.ada/str_binop_equal/pck.adb
+26ff823343ce51f0c447f7750d70def9  gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp
+c0d1e06ba4c7f76ca356192bdf9b2467  gdb/testsuite/gdb.ada/same_component_name.exp
+c40be50243af44a8151a7aa064164412  gdb/testsuite/gdb.ada/scoped_watch.exp
+2a89fcf87fa2baad644e11cf4e86b732  gdb/testsuite/gdb.ada/float_param.exp
+165c6809a0a999fcdf8c4423108c8765  gdb/testsuite/gdb.ada/mi_dyn_arr/foo.adb
+8bd627329d58ac39652e5de66e2ad9bd  gdb/testsuite/gdb.ada/mi_dyn_arr/pck.ads
+df46439ed3c1dd75c85d686ddc9fa31f  gdb/testsuite/gdb.ada/mi_dyn_arr/pck.adb
+5d5d093676cd9d00541e06ee7a9fa49e  gdb/testsuite/gdb.ada/repeat_dyn.exp
+3934dbd6758849902e62ecafe0bcf33a  gdb/testsuite/gdb.ada/widewide/foo.adb
+4174cf52f38a0029798a5fa05adc3e3a  gdb/testsuite/gdb.ada/widewide/pck.ads
+5b6576ba90d145426975fe53c434319d  gdb/testsuite/gdb.ada/widewide/pck.adb
+c5882f8e96ec355d2e4b8857b1c4966f  gdb/testsuite/gdb.ada/maint_with_ada.exp
+e72bf8ed9a1d5e31852424dbf42534c9  gdb/testsuite/gdb.ada/char_enum/foo.adb
+b4f6272d76b88a55fa816ce652374874  gdb/testsuite/gdb.ada/char_enum/pck.ads
+71fc8b4707e792fbfa04393a8c03c2fc  gdb/testsuite/gdb.ada/char_enum/pck.adb
+d5ddae3e42b84a84071d5ab914681c61  gdb/testsuite/gdb.ada/mi_interface/foo.adb
+43a9f6f80f8797f85ee8337791d521b6  gdb/testsuite/gdb.ada/mi_interface/pck.ads
+eebbd9b321e4866cd52728e94e1b323c  gdb/testsuite/gdb.ada/mi_interface/pck.adb
+20c57ddd1be1effd35cd597119cdf3bd  gdb/testsuite/gdb.ada/lang_switch/foo.c
+e657e8f9ef808c6988255f7cf9334f2f  gdb/testsuite/gdb.ada/lang_switch/lang_switch.adb
+78b1fadd406909b702cfd92380d2cd1e  gdb/testsuite/gdb.ada/arrayptr.exp
+fe796b1a72b8208f61abdae09f7c8e0d  gdb/testsuite/gdb.ada/mi_catch_ex/foo.adb
+380967d13fdf07606d44d7a5464208fe  gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads
+c9c00dcfdf5b6fc9f8bf998242364ee1  gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb
+6e996a522d45e89e031ffc3bff8b8fc5  gdb/testsuite/gdb.ada/var_arr_attrs/foo_o115_002.adb
+e49e11e3d4e30b46e00839faac1e10d9  gdb/testsuite/gdb.ada/access_to_packed_array/foo.adb
+0fd9d9bf2ae27a99387cdb3f847208a7  gdb/testsuite/gdb.ada/access_to_packed_array/pack.ads
+dd4f24d80006c3f91ee4521e7a8df1aa  gdb/testsuite/gdb.ada/access_to_packed_array/pack.adb
+d2c5316c90d08194a35eef468139f2a3  gdb/testsuite/gdb.ada/mi_exc_info.exp
+d7897e1e27868c1123efdad3b5508506  gdb/testsuite/gdb.ada/info_addr_mixed_case.exp
+fe796b1a72b8208f61abdae09f7c8e0d  gdb/testsuite/gdb.ada/catch_ex/foo.adb
+bffb96710cc121e21427f1a0a8f0c958  gdb/testsuite/gdb.ada/mi_var_array.exp
+973908792f39bc4b62c21f3c26a893d3  gdb/testsuite/gdb.ada/mi_interface.exp
+fc95723d338e0451193f90bc7cc3382d  gdb/testsuite/gdb.ada/tick_length_array_enum_idx.exp
+a1d24aceb3c788624c907eebd46a40a4  gdb/testsuite/gdb.ada/taft_type/pck.ads
+aed1f9ccf0d9903327c8a37b89ae8abd  gdb/testsuite/gdb.ada/taft_type/p.adb
+9b69efba62be0a715832721cdda6fe57  gdb/testsuite/gdb.ada/taft_type/pck.adb
+30ed9a16a03f756c4a5a3bb063fda715  gdb/testsuite/gdb.ada/access_tagged_param/foo.adb
+5c01e209c1034dd602cb004db2bf5063  gdb/testsuite/gdb.ada/access_tagged_param/pck.ads
+12457ca9824857daf67fb8610e224adf  gdb/testsuite/gdb.ada/access_tagged_param/pck.adb
+10cb3d3e9094e117b927823f1d769a96  gdb/testsuite/gdb.ada/mi_task_info/task_switch.adb
+6ad12bcd2a70670b023e585f8465fa7b  gdb/testsuite/gdb.ada/byte_packed_arr.exp
+ee2153a95bf54ef9cfe70e37957f5a8a  gdb/testsuite/gdb.ada/formatted_ref.exp
+0a7d891e1661b921953c2d123e6a8626  gdb/testsuite/gdb.ada/var_arr_attrs.exp
+5d77cbdca867150010c05387e8e53cc8  gdb/testsuite/gdb.ada/iwide/classes.ads
+d1197b10f88c1c57105f3fdb7e7d46e1  gdb/testsuite/gdb.ada/iwide/p.adb
+5b29061ad10e7d5b857fd54b01c5912e  gdb/testsuite/gdb.ada/iwide/classes.adb
+43059a79a6a14cb510f9d04936520410  gdb/testsuite/gdb.ada/mi_task_arg.exp
+5557c14a5b20844f896e833e031c5ffa  gdb/testsuite/gdb.ada/mi_task_info.exp
+69dc21ad4c9b4b34607827eb8b564577  gdb/testsuite/gdb.ada/scoped_watch/foo_p708_025.adb
+6e9dfed99f96f5ec3c2fd943aaef7947  gdb/testsuite/gdb.ada/scoped_watch/pck.ads
+538363fc3d1d1a761a954f673e01c0b5  gdb/testsuite/gdb.ada/scoped_watch/pck.adb
+d960c96f4b1cc784a8d69c7c44a2cc0f  gdb/testsuite/gdb.ada/mi_var_array/bar.adb
+354921be8d9b384087a1c8b8d726b258  gdb/testsuite/gdb.ada/mi_var_array/pck.ads
+c9c00dcfdf5b6fc9f8bf998242364ee1  gdb/testsuite/gdb.ada/mi_var_array/pck.adb
+051df4ec61d6840503c02335c9d96923  gdb/testsuite/gdb.ada/funcall_ref.exp
+5ab034a510c310e1b40dc6024b619154  gdb/testsuite/gdb.ada/funcall_ref/foo.adb
+b4303b4bf6cdebe30aae385d25e01774  gdb/testsuite/gdb.ada/info_locals_renaming/foo.adb
+eade438f0d8b28dbddb3d7c462e7ee3b  gdb/testsuite/gdb.ada/info_locals_renaming/pck.ads
+640ee5cb06ef8f1d86243b044cc10e2a  gdb/testsuite/gdb.ada/info_locals_renaming/pck.adb
+d8f33569e512b5b9c96f9077fe5fd96a  gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb
+d286e2b77ce81d9ade5cfbe3c361f3a0  gdb/testsuite/gdb.ada/set_pckd_arr_elt/foo.adb
+fc2b4ea24e0652219ca587cae68b754d  gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.ads
+87bbeebd5d88739d13dff24276f757b8  gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.adb
+4826b5e665c8743616eb011a03524eec  gdb/testsuite/gdb.ada/interface/foo.adb
+a87eaac02b306bc19fa2e4669a23175a  gdb/testsuite/gdb.ada/interface/types.ads
+014789f54842c14a611a97e0a7d8ff7c  gdb/testsuite/gdb.ada/interface/types.adb
+e5a636a5747bfc8cfe2a4367e057b582  gdb/testsuite/gdb.ada/catch_ex.exp
+61d71dff6471ee9f65ca8482d65467c8  gdb/testsuite/gdb.ada/pp-rec-component/foo.adb
+d3c7568cedab92b7784e3aa1188c8cb7  gdb/testsuite/gdb.ada/pp-rec-component/pck.ads
+eebbd9b321e4866cd52728e94e1b323c  gdb/testsuite/gdb.ada/pp-rec-component/pck.adb
+f24173967462da3a307877e82dc0b7b9  gdb/testsuite/gdb.ada/str_ref_cmp.exp
+29838f52df1a7ac5f59b172392a3a16c  gdb/testsuite/gdb.ada/frame_args.exp
+3d305b049063115850e83b9ac10db2af  gdb/testsuite/gdb.ada/ptype_arith_binop.exp
+a411cee7ba36bf908c89f29d0a1fee79  gdb/testsuite/gdb.ada/ptype_tagged_param/foo.adb
+b8502894481c9d334c54b9e2c8143bc4  gdb/testsuite/gdb.ada/ptype_tagged_param/pck.ads
+e9550eb50362e4f5f8a19a1d05a1c86a  gdb/testsuite/gdb.ada/ptype_tagged_param/pck.adb
+93ff5f25ac4c4594ae91cc94e4682174  gdb/testsuite/gdb.ada/cond_lang.exp
+3a3f047ddc6c74d577b999fc9761c42f  gdb/testsuite/gdb.ada/fun_in_declare/foo.adb
+63205733f8e089d81639ac99d9e8086f  gdb/testsuite/gdb.ada/fun_in_declare/pck.ads
+5a8596162965502e096256c38f82d723  gdb/testsuite/gdb.ada/fun_in_declare/pck.adb
+840922212e4fb21c1e6ae79590b57639  gdb/testsuite/gdb.ada/set_wstr.exp
+6250c4c68af23e74a42d590e74db0a60  gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/foo.adb
+4fd6c5b6f9c179bb9a79d65718b5a3d1  gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.ads
+b5954d943a867b08a2b9b7b10f9594f5  gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.adb
+0fee4cdfad426dc0397fe265f2a80705  gdb/testsuite/gdb.ada/fixed_cmp.exp
+fd10c9ae3c396ad286a23674d9f04d93  gdb/testsuite/gdb.ada/exprs.exp
+f298d9159fc162459f21b61510e4a3ce  gdb/testsuite/gdb.ada/uninitialized_vars.exp
+bc43acffbbebaf3db669998e6784052c  gdb/testsuite/gdb.ada/fun_addr.exp
+eaad6395a8ee7f2e0ddf0aeda6bd74c1  gdb/testsuite/gdb.ada/pckd_arr_ren/foo.adb
+0b260c1f62f7ad6555a0a221617148cf  gdb/testsuite/gdb.ada/pckd_arr_ren/pck.ads
+83158373b2c84128a4bdde5e2f431641  gdb/testsuite/gdb.ada/pckd_arr_ren/pck.adb
+61fd79f0e60e070c6dda5fe6a57c3578  gdb/testsuite/gdb.ada/print_pc.exp
+2a5fa3bede61cd9ed25481f6ec720698  gdb/testsuite/gdb.ada/funcall_param/foo.adb
+bad8a0aefc9f0b47a99cffe3e9907d5e  gdb/testsuite/gdb.ada/funcall_param/pck.ads
+6c116e1d2bb96597dbde476d24c02338  gdb/testsuite/gdb.ada/funcall_param/pck.adb
+47d25362f9628e6a26f3f1c9beb51234  gdb/testsuite/gdb.ada/dyn_arrayidx/foo.adb
+0f4a9fe62ded42aa013c87a010c25363  gdb/testsuite/gdb.ada/null_array.exp
+08d002758f4c81380598b67d540a505a  gdb/testsuite/gdb.ada/assign_arr.exp
+6c83a28f5871c2c12b8786ca9fa278fe  gdb/testsuite/gdb.ada/bad-task-bp-keyword.exp
+389f1a7a2cb81afe5b707164f0a11491  gdb/testsuite/gdb.ada/array_of_variable_length.exp
+54f178f1a7b8c60dae681f977275bf0d  gdb/testsuite/gdb.ada/boolean_expr.exp
+6c8c25d5b3280fc7b1be62e37a32d3a3  gdb/testsuite/gdb.ada/array_of_variable_length/foo.adb
+dcfea7f8b0fa31fff3deb0d9f0a3429b  gdb/testsuite/gdb.ada/array_of_variable_length/pck.ads
+f28a202da21e9fded085b44bcabe128c  gdb/testsuite/gdb.ada/array_of_variable_length/pck.adb
+236676fa28150be0745b5e9d3a9980ce  gdb/testsuite/gdb.ada/exec_changed.exp
+ce248fc7c2a6693488ac5cd2c166e125  gdb/testsuite/gdb.ada/dyn_loc.exp
+f9be489455a19d6f3e1082a2700f8f39  gdb/testsuite/gdb.ada/rec_return/foo.adb
+f5581d28d4c32acce9c60204f38027f3  gdb/testsuite/gdb.ada/rec_return/pck.ads
+725991e3031b1169f2fd99f8b5cfef92  gdb/testsuite/gdb.ada/rec_return/pck.adb
+79a5b87fc90e61afedd70c79e59ed16d  gdb/testsuite/gdb.ada/disc_arr_bound/foo_n612_026.adb
+6114653b191a36831bf879a8874c9c00  gdb/testsuite/gdb.ada/disc_arr_bound/pck.ads
+b66b29a9e66a4867417119f740e240a6  gdb/testsuite/gdb.ada/disc_arr_bound/pck.adb
+3a1275b7f89637da4806c28c9401db69  gdb/testsuite/gdb.ada/enum_idx_packed.exp
+809e4bfd6bd0652b0a00e98ae97774c5  gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.adb
+2221a822d4e96e0a56d18f904d24525f  gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.ads
+dd4793949372b5f19e22c8e0e84dc2e6  gdb/testsuite/gdb.ada/out_of_line_in_inlined/foo_o224_021.adb
+66f815d5769ffa4d895105a0c1b8f761  gdb/testsuite/gdb.ada/same_enum/pck.ads
+71fc8b4707e792fbfa04393a8c03c2fc  gdb/testsuite/gdb.ada/same_enum/pck.adb
+40df19b5533fdbe0244dc0173e95ca4d  gdb/testsuite/gdb.ada/same_enum/a.adb
+8835fa29f0c57f5f7f53adfe34340e15  gdb/testsuite/gdb.ada/ref_param/foo.adb
+38b687d9b5a93008407646ac02067168  gdb/testsuite/gdb.ada/ref_param/pck.ads
+82c4883da515e68a0b1d81351c1dcda9  gdb/testsuite/gdb.ada/ref_param/pck.adb
+cc2e0ffa1c7e19c635f60060bad0e262  gdb/testsuite/gdb.ada/assign_1.exp
+494269b2cd2e0bf9a340eb113bafefa4  gdb/testsuite/gdb.ada/nested.exp
+82ab0318002183a3169f9cfa0acbe54e  gdb/testsuite/gdb.ada/mi_ex_cond.exp
+761491efa7355c0c355e1b550ebfca89  gdb/testsuite/gdb.ada/variant_record_packed_array/foo.adb
+311a6acca719305ccff05281c08480b4  gdb/testsuite/gdb.ada/variant_record_packed_array/pck.ads
+9f5cd28b632d10af35c2e5309b65cdaf  gdb/testsuite/gdb.ada/variant_record_packed_array/pck.adb
+104e3a9134d3aa28f40b880e90b13fb2  gdb/testsuite/gdb.ada/info_locals_renaming.exp
+5912c5964d1fdf6dedb17f25d20f1b21  gdb/testsuite/gdb.ada/fun_overload_menu.exp
+402d312cd2924330d1a05316c25b855e  gdb/testsuite/gdb.ada/fun_addr/foo.adb
+7f8b0335b4adb2fd85ddd32b135fb8a0  gdb/testsuite/gdb.ada/print_chars/foo.adb
+c310b7636a49286678e0f4dc7f92ad00  gdb/testsuite/gdb.ada/print_chars/pck.ads
+7f28ea3c41161d92e9668191fcf3f1fb  gdb/testsuite/gdb.ada/print_chars/pck.adb
+2e52c2329f7cf594ea7dfa0d71564a0b  gdb/testsuite/gdb.ada/variant_record_packed_array.exp
+844926bdea2a9794db1240878427e95a  gdb/testsuite/gdb.ada/fun_renaming/fun_renaming.adb
+497f051e99e964a2ee7b996cf25fc18c  gdb/testsuite/gdb.ada/fun_renaming/pack.ads
+28246403fa2ae7e8adabf5b394cbc948  gdb/testsuite/gdb.ada/fun_renaming/pack.adb
+58970065d44f8b7aaac33c13db359d7d  gdb/testsuite/gdb.ada/arr_arr/foo.adb
+fab96c5170fb50382c127ffefd148a1a  gdb/testsuite/gdb.ada/arr_arr/pck.ads
+eebbd9b321e4866cd52728e94e1b323c  gdb/testsuite/gdb.ada/arr_arr/pck.adb
+c137d22b36415bed91c3d88ff838fb33  gdb/testsuite/gdb.ada/var_arr_typedef.exp
+cc991b862e54c5c0d2615fc4892b89f9  gdb/testsuite/gdb.ada/packed_tagged/comp_bug.adb
+232c28db3b7e7bfe38a5821c9ebee9ec  gdb/testsuite/gdb.ada/O2_float_param.exp
+cfab09816bf0cf56fcd3f499f2e53a6f  gdb/testsuite/gdb.ada/task_switch_in_core.exp
+ce1a853c49d9eaddb08a567247039047  gdb/testsuite/gdb.ada/interface.exp
+af4f47289fd59a56f87a377b49a81e37  gdb/testsuite/gdb.ada/call_pn.exp
+7761bb538285eaed81df1e7afe615acf  gdb/testsuite/gdb.ada/start/dummy.adb
+3dc7a084e9c53d1d51fdb4a7c99c4f84  gdb/testsuite/gdb.ada/array_subscript_addr/p.adb
+6efad939815441cb0249bae99394c056  gdb/testsuite/gdb.ada/mod_from_name/foo.adb
+9decd3800f6dccd8b476103a4f64a23e  gdb/testsuite/gdb.ada/small_reg_param/foo.adb
+8251f6e915f090fb7be1f641fb99d735  gdb/testsuite/gdb.ada/small_reg_param/pck.ads
+3dafc7be4ac5fe09ea6e951a8751c7d8  gdb/testsuite/gdb.ada/small_reg_param/pck.adb
+fdead8f7e6f12769a325b1e5c0a6271d  gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads
+2c35130f99546198cb3f9b5895cf4109  gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb
+458137c7e4be596b83d4924cfac9183e  gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb
+3a0f5a6e09d43d6f6922480ecaeb45bf  gdb/testsuite/gdb.ada/ref_param.exp
+eb987505b4f6301de127e48f40455631  gdb/testsuite/gdb.ada/nested/hello.adb
+ecef315f188c13a86f4f7bfa56d436c3  gdb/testsuite/gdb.ada/ref_tick_size/pck.ads
+c592b4f978f8a139c9fb8fd29f7086e4  gdb/testsuite/gdb.ada/ref_tick_size/p.adb
+2770cde121342a0f6af19ca8b28c337f  gdb/testsuite/gdb.ada/ref_tick_size/pck.adb
+9ee75d52ec452dc724750c499a9bbe1e  gdb/testsuite/gdb.ada/fullname_bp/dn.ads
+cfe924e4fd3d9d0a44c67b67dd3c70bf  gdb/testsuite/gdb.ada/fullname_bp/foo.adb
+27c8a1e2076937f3e9809338ab49b4ac  gdb/testsuite/gdb.ada/fullname_bp/dn.adb
+695fbf79e2ffe4309d6d196992ff6a93  gdb/testsuite/gdb.ada/fullname_bp/pck.ads
+d5c15b657c2aa468e3c54ddcf1c435ec  gdb/testsuite/gdb.ada/fullname_bp/pck.adb
+7ba1e275e1e4c9fb53ab57c316b25427  gdb/testsuite/gdb.ada/info_exc.exp
+1b941057c43c30564737eb2f8655e7dc  gdb/testsuite/gdb.ada/char_param.exp
+225bf9611dc0adfd9cdcf2923ebdd485  gdb/testsuite/gdb.ada/aliased_array.exp
+d688c51ff0c479d33a6abcf3cef70374  gdb/testsuite/gdb.ada/pckd_arr_ren.exp
+c1c608a6b57cd88db14ea6bbbb939970  gdb/testsuite/gdb.ada/mi_ex_cond/foo.adb
+54688bf49e3825c26fb6de0649c1d318  gdb/testsuite/gdb.ada/mi_ex_cond/pck.ads
+3981f293709a46e2e00ef46abd302d7a  gdb/testsuite/gdb.ada/dyn_stride.exp
+aa08c56ff5b64e084eaff377b57676b5  gdb/testsuite/gdb.ada/dyn_loc/p.adb
+92586eaf454453e5d9391e2057b66897  gdb/testsuite/gdb.ada/dyn_loc/pack.ads
+781dce471b0d0cd930bbb8d015802f3e  gdb/testsuite/gdb.ada/dyn_loc/pack.adb
+12295ce470d9a81be2e2ef108a6b0ed9  gdb/testsuite/gdb.ada/fullname_bp.exp
+3dfbeeaecbfa7dee7b9b2de4c1e6ad48  gdb/testsuite/gdb.ada/ref_tick_size.exp
+92319a9472da68029e5fa9ebef32fe29  gdb/testsuite/gdb.ada/pp-rec-component.exp
+5483e2966904394ba0d0499981d4a769  gdb/testsuite/gdb.pascal/print.exp
 19990cb5b198325b185af673b5ee5b4f  gdb/testsuite/gdb.pascal/hello.pas
-f214aa5cd580390759fa6ad001f0927f  gdb/testsuite/gdb.pascal/integers.pas
-88bc02dd3ce64a82ba9f84100843c36d  gdb/testsuite/gdb.pascal/stub-method.exp
-f93e60cb4c0f146206572126224f2292  gdb/testsuite/gdb.pascal/case-insensitive-symbols.exp
-a7863ca5cbe3582aece422720fefe4a6  gdb/testsuite/gdb.pascal/hello.exp
-c6ec6b37efcf3c4ab1a3ded054c73221  gdb/testsuite/gdb.pascal/floats.pas
-2b422a77fee776f4f4cc89f0df3a20c3  gdb/testsuite/gdb.pascal/stub-method.pas
-6c918eb52c050f6e737c2de00f0afa3f  gdb/testsuite/gdb.pascal/floats.exp
-a3c4db33b1328eda69f2900f611b2716  gdb/testsuite/gdb.pascal/types.exp
-ed5febc6229cfec2c1a08b0b0fdd5807  gdb/testsuite/gdb.pascal/integers.exp
-99c3fe72098564d2dcb2d6d8cf13005e  gdb/testsuite/gdb.pascal/gdb11492.exp
-1434a6d8657b8e513ea695394a2c5adf  gdb/testsuite/gdb.pascal/case-insensitive-symbols.pas
-4b030aa04d9d9d51141ef9d1a219f11b  gdb/testsuite/gdb.pascal/gdb11492.pas
-cfae6ba6056a41d3b5bb92ce5a1d47bc  gdb/testsuite/gdb.opt/clobbered-registers-O2.exp
-ec6ca1e122392a505011685580757570  gdb/testsuite/gdb.opt/inline-break.exp
-eb683491451151673259292aed6ec4f8  gdb/testsuite/gdb.opt/inline-cmds.exp
-eb441024785ab5496377064e6ef3c62f  gdb/testsuite/gdb.opt/solib-intra-step-main.c
-d036767fbef6e3e84c23385277a0f110  gdb/testsuite/gdb.opt/inline-locals.c
-7d7582a73d65d1670ad2ddace58125bb  gdb/testsuite/gdb.opt/solib-intra-step-lib.c
-05d38ab530f8940d58506da9d0e124f4  gdb/testsuite/gdb.opt/solib-intra-step.exp
-6e371636bbb1a9bf0df47eb4ed61384d  gdb/testsuite/gdb.opt/clobbered-registers-O2.c
-f5ac8bbd48fb04936c421ac4dfec8cc3  gdb/testsuite/gdb.opt/inline-cmds.c
-7301b729d33783147c64bb60baf7d0de  gdb/testsuite/gdb.opt/inline-break.c
-7ebcea21519aac5f08135ffe762e2ddc  gdb/testsuite/gdb.opt/inline-markers.c
-0652130108c3b78cb994025dfb4bb12c  gdb/testsuite/gdb.opt/inline-locals.exp
-cac10a8fcfc5f07072717ee70ab2f3c1  gdb/testsuite/gdb.opt/inline-bt.c
-3057a665c0a98ad4c2db3c601ce6e5c7  gdb/testsuite/gdb.opt/inline-bt.exp
-4ae4e11226449a8516845f79afddc158  gdb/testsuite/ChangeLog-1993-2013
-35a37aa0a0b425ee75b63f0ebd2b054a  gdb/testsuite/gdb.rust/methods.exp
-6dac69fab81c12d2a30878d76f792bc5  gdb/testsuite/gdb.rust/expr.exp
-bf5853c40ffd38b1df4c7dc7910097d1  gdb/testsuite/gdb.rust/methods.rs
-9d4b5f4e1e196b1a558226c3291c20ed  gdb/testsuite/gdb.rust/generics.exp
-a5b8116d895d359e42b3e95775b306d6  gdb/testsuite/gdb.rust/modules.exp
-f79be2f67b501ab232155d3a42a21e66  gdb/testsuite/gdb.rust/simple.exp
-c0a0725c139a2a6af7a820a3139b2d7e  gdb/testsuite/gdb.rust/modules.rs
-8279b9aac883859ed158b2b74adb0dfb  gdb/testsuite/gdb.rust/generics.rs
-feb3a9d4584b6d3138715402b6c9c718  gdb/testsuite/gdb.rust/simple.rs
+0f8e92744989baf570ca7b614e390d3d  gdb/testsuite/gdb.pascal/integers.pas
+3bfd3a77631a58913ab24eae3eae10d4  gdb/testsuite/gdb.pascal/stub-method.exp
+b865009c65dbfb9eae02a198354697ba  gdb/testsuite/gdb.pascal/case-insensitive-symbols.exp
+cb11b620689a0e705ea7f99dfa334ea6  gdb/testsuite/gdb.pascal/hello.exp
+9e846c2ab2f298bc0c37c742f015b887  gdb/testsuite/gdb.pascal/floats.pas
+3e0b68224eabeb141b3fec3cf23c301c  gdb/testsuite/gdb.pascal/stub-method.pas
+ba1a955df1132808e09e9f69a9c18278  gdb/testsuite/gdb.pascal/floats.exp
+fbdb1c16886fdaa8e6d6e89cf87d4364  gdb/testsuite/gdb.pascal/types.exp
+8463d7f390ebd275f3f8d4459090d8ab  gdb/testsuite/gdb.pascal/integers.exp
+a4a4d3ba0f9f8e0b375dcfccfde762ea  gdb/testsuite/gdb.pascal/gdb11492.exp
+72c2c81aadb89a1637d843829d050d8b  gdb/testsuite/gdb.pascal/case-insensitive-symbols.pas
+cf7571066fe1862098b06e10f4849c13  gdb/testsuite/gdb.pascal/gdb11492.pas
+f95ee86e2006e7ee78fed71603983b71  gdb/testsuite/gdb.opt/clobbered-registers-O2.exp
+f815044744a57ba8812e6919d5feb71a  gdb/testsuite/gdb.opt/inline-break.exp
+0ec23ea04ae35641cdda0ff20361d868  gdb/testsuite/gdb.opt/inline-cmds.exp
+4ccb0fae40a79b4c6414f47b5c51b3c8  gdb/testsuite/gdb.opt/solib-intra-step-main.c
+3c00ef9235f88602ee995c38256eb424  gdb/testsuite/gdb.opt/inline-locals.c
+06cf77147b73016cd9b442d3583a5dcc  gdb/testsuite/gdb.opt/solib-intra-step-lib.c
+5413248f2b31fac30dc323433809b607  gdb/testsuite/gdb.opt/solib-intra-step.exp
+7d138a6f26acdee7e17feaf5395a09d6  gdb/testsuite/gdb.opt/clobbered-registers-O2.c
+2719f2206e3e3f780cd5b68974cc2b35  gdb/testsuite/gdb.opt/inline-cmds.c
+23a978c9f1c919ed25dc8cdcca404cc5  gdb/testsuite/gdb.opt/inline-break.c
+3e017ac58fe6bea948739193a154c29a  gdb/testsuite/gdb.opt/inline-markers.c
+de9fad62daa9ab8a23c3b95a60b66ca7  gdb/testsuite/gdb.opt/inline-locals.exp
+9184ff76f1e5bc66a13ab3d3b14b5622  gdb/testsuite/gdb.opt/inline-bt.c
+b49f372e1f87fc283111f7e2a3b18236  gdb/testsuite/gdb.opt/inline-bt.exp
+c32119f720d46a84f7c17aaf7183dca4  gdb/testsuite/ChangeLog-1993-2013
+ff21b34b5a54f9e820dd74b9fcd4d1b5  gdb/testsuite/gdb.rust/methods.exp
+20ab3b6efa31f17762237ea8948b21bf  gdb/testsuite/gdb.rust/watch.exp
+898ed1e5f30fe0c540f5b3e57d18c23d  gdb/testsuite/gdb.rust/expr.exp
+489e5ce234b0dda72f4fa24388f57b1d  gdb/testsuite/gdb.rust/methods.rs
+0451f641bb0d1061cab40359f437ce11  gdb/testsuite/gdb.rust/generics.exp
+baa5cd488442619749a1cebecc2e6258  gdb/testsuite/gdb.rust/traits.rs
+5e68c5f5dc05f72a00021769c3706a6b  gdb/testsuite/gdb.rust/modules.exp
+bed9c3dc5ff2eb5bec233c0d1ca075ba  gdb/testsuite/gdb.rust/unsized.rs
+eed310285dfc7ad9e40e3c4c47764705  gdb/testsuite/gdb.rust/simple.exp
+49158854e393e67c6c7d4a193d55b61d  gdb/testsuite/gdb.rust/watch.rs
+6bab71e82f2319be4a678e844d5a1e7a  gdb/testsuite/gdb.rust/traits.exp
+862de2ce58d7633ac5e9daa863eb107c  gdb/testsuite/gdb.rust/modules.rs
+9b67e7c2f2e2d50e279f049f74e7c534  gdb/testsuite/gdb.rust/unsized.exp
+4fc08777e7f9e8d8614a57d88cf1e565  gdb/testsuite/gdb.rust/generics.rs
+a8f1919e8d4b96d56d1b5209db063ae3  gdb/testsuite/gdb.rust/simple.rs
 a36c2e9f8bf7f9d788db20927e18e921  gdb/testsuite/gdb.disasm/t12_bit.s
 70b15852295559a37b00c60d55167563  gdb/testsuite/gdb.disasm/t04_sub.s
-22dfc37f407bf8e57f25086aabb23b74  gdb/testsuite/gdb.disasm/t01_mov.exp
+1cf85e7cd2f59297e0b42d84c5a2f55e  gdb/testsuite/gdb.disasm/t01_mov.exp
 a640da1752a98c70b4dae81fd6dc759b  gdb/testsuite/gdb.disasm/t10_and.s
 b0c212de85c1acb1e14a705f4e40a6e9  gdb/testsuite/gdb.disasm/t01_mov.s
 c02c125e2e5010129e46e393e2cdef81  gdb/testsuite/gdb.disasm/t07_ari3.s
-b16fe2ee64b41abed893a60b6cfbb564  gdb/testsuite/gdb.disasm/am33.exp
+490a07dc306cf579955ca1b9c226b186  gdb/testsuite/gdb.disasm/am33.exp
 9d7ec73ab52e55ec1f83ec9e35523702  gdb/testsuite/gdb.disasm/am33.s
-c45228c21b3f99855a644f34cc7cded9  gdb/testsuite/gdb.disasm/t09_xor.exp
-4a583146067511c82da417819af5fd77  gdb/testsuite/gdb.disasm/mn10300.exp
+2533a6ec60941aa53856cda6c1fa5955  gdb/testsuite/gdb.disasm/t09_xor.exp
+dd94844e30a2d4f2e41e241c8ab198b8  gdb/testsuite/gdb.disasm/mn10300.exp
 cb76fc798d647b1ee8ba82f8ad9a5584  gdb/testsuite/gdb.disasm/h8300s.s
 82c2e284f051cc293b39b6ce0741aa89  gdb/testsuite/gdb.disasm/t09_xor.s
 9f2e1d0972a5fdf62643f281a80de560  gdb/testsuite/gdb.disasm/t06_ari2.s
-5e187bfdd0828802db79c17755a0cd4e  gdb/testsuite/gdb.disasm/t10_and.exp
-116b7fcbd8f7303c8f6b35ad2eb89ae0  gdb/testsuite/gdb.disasm/t02_mova.exp
-10f5cd8beb5b5570de86212c49e920ba  gdb/testsuite/gdb.disasm/t05_cmp.exp
+9aadfecf49be21ceb6f3907d520ebdf0  gdb/testsuite/gdb.disasm/t10_and.exp
+5b3e0f155641d9429fe0eccd61a1fd44  gdb/testsuite/gdb.disasm/t02_mova.exp
+d567d64e536cbe0de94a99dd22480ddb  gdb/testsuite/gdb.disasm/t05_cmp.exp
 e02ce2008b0f7cd2c4bd231e78d46c8c  gdb/testsuite/gdb.disasm/mn10300.s
-a3a8ca5e75cdef523f4ef96af9294a18  gdb/testsuite/gdb.disasm/t12_bit.exp
-ba107f6ed340fdea5466d498ef9ac8d1  gdb/testsuite/gdb.disasm/t07_ari3.exp
-2e8b83348c1e87a559acc4143052479a  gdb/testsuite/gdb.disasm/sh3.exp
+9a448627c15207271e7f9c44923cec13  gdb/testsuite/gdb.disasm/t12_bit.exp
+64fbe4a962162373375ce39f0873ee52  gdb/testsuite/gdb.disasm/t07_ari3.exp
+d482653cfcf674ee64532f4111b58411  gdb/testsuite/gdb.disasm/sh3.exp
 8df48a7abc7ba3009ba5f49d74d3c8f9  gdb/testsuite/gdb.disasm/mn10200.s
-112d73de226f4678b4ed35285d3d0d7a  gdb/testsuite/gdb.disasm/h8300s.exp
-669197f1658141d4cc282eeaa7fd6e81  gdb/testsuite/gdb.disasm/t08_or.exp
+7d11b2614ce69a5969d782b45b19deeb  gdb/testsuite/gdb.disasm/h8300s.exp
+1ac71ba70daa58764d4792b6a08c52ec  gdb/testsuite/gdb.disasm/t08_or.exp
 e546b5aa7eb88708555537439de19900  gdb/testsuite/gdb.disasm/sh3.s
 fa6a2c9c9ae47e840be659d01a4750d8  gdb/testsuite/gdb.disasm/t02_mova.s
-5dd1993e1dd52ea04e3e9a74ebd7e956  gdb/testsuite/gdb.disasm/hppa.exp
+0b274958758df68a7caa5bc80e655054  gdb/testsuite/gdb.disasm/hppa.exp
 d20f8c266b73f0682f9b33a40641f923  gdb/testsuite/gdb.disasm/t03_add.s
 dbbb53f76688f2006bfe0b9c14fd4241  gdb/testsuite/gdb.disasm/t08_or.s
 13d33a0e2d93ee9c30330c55b1f370d1  gdb/testsuite/gdb.disasm/t05_cmp.s
-05a49ad89411364d1271752b623ed994  gdb/testsuite/gdb.disasm/t04_sub.exp
-5617279916767a164c416426379a87dd  gdb/testsuite/gdb.disasm/t11_logs.exp
-d19a493be6679accb4771bc969fdad18  gdb/testsuite/gdb.disasm/disassembler-options.exp
+bef1081d95588a0ab85bf1f781001a3e  gdb/testsuite/gdb.disasm/t04_sub.exp
+d9fda2764303c3f59da04658458501db  gdb/testsuite/gdb.disasm/t11_logs.exp
+f5d5f604cef917dc91c656618b1cade2  gdb/testsuite/gdb.disasm/disassembler-options.exp
 ec9241c34e56cabb8f4eadadad6c69d3  gdb/testsuite/gdb.disasm/t13_otr.s
-4624ea0cbff8b2e7c0c641228fed08df  gdb/testsuite/gdb.disasm/t13_otr.exp
-7f4d45e1d52bd3dc685b0fd7b1a295fc  gdb/testsuite/gdb.disasm/t03_add.exp
+8a1e04baf5d5490ddb9c5653eee25012  gdb/testsuite/gdb.disasm/t13_otr.exp
+bb48a77967e989d0b96c2dd5ac6a33b2  gdb/testsuite/gdb.disasm/t03_add.exp
 e14e8cc3e96d350310aaac726d4ea5e3  gdb/testsuite/gdb.disasm/t11_logs.s
-0c1e3ec24bd2800d158f367cb160a675  gdb/testsuite/gdb.disasm/t06_ari2.exp
+6c409948bdd31d4e847089a3bb37568a  gdb/testsuite/gdb.disasm/t06_ari2.exp
 1531e9f2d8c5fe8c476a72c8621ac6f5  gdb/testsuite/gdb.disasm/hppa.s
-73498423bd63034eebb2c66e5045ea08  gdb/testsuite/gdb.xml/tdesc-regs.exp
-d32b0ca67fe97ec2aad1c7a18a5ee9f7  gdb/testsuite/gdb.xml/maint_print_struct.exp
+03859f494327e691c5196c58a56d7472  gdb/testsuite/gdb.xml/tdesc-regs.exp
+ce2dcb3cd0dd30430a8052740adc04f5  gdb/testsuite/gdb.xml/maint_print_struct.exp
 4f957259a1af66b87b45b94b81dba00d  gdb/testsuite/gdb.xml/loop.xml
-ffb8babb8d3842ce62f7a85d2b21a420  gdb/testsuite/gdb.xml/maint_print_struct.xml
-ba2eed086e27828f8725c6249416b112  gdb/testsuite/gdb.xml/tdesc-xinclude.exp
+f23dbf3ac2ef980b1b5a9d38ef21e94c  gdb/testsuite/gdb.xml/maint_print_struct.xml
+e4b54839cdac8dbfad40c61081c5cc1f  gdb/testsuite/gdb.xml/tdesc-xinclude.exp
 8eb46c680c302af7d9de78ea3edb52fc  gdb/testsuite/gdb.xml/single-reg.xml
 217bac7412f8837f007be696d457b70c  gdb/testsuite/gdb.xml/tdesc-bogus.xml
-2fc93a19167410b9b3a47a67bd323984  gdb/testsuite/gdb.xml/tdesc-arch.exp
-daa7059790c3192e865c449168d6ae6d  gdb/testsuite/gdb.xml/tdesc-errors.exp
+31dabf53ed6ac7925ac98fc4c380edde  gdb/testsuite/gdb.xml/tdesc-arch.exp
+d08350dbdd80c424edb39f451ac678bf  gdb/testsuite/gdb.xml/tdesc-errors.exp
 f8e7043a6ec28fe297b2ed7aacd0501b  gdb/testsuite/gdb.xml/tdesc-unknown.xml
-8855f3b9b8c23f61fed4239c3fcad6d3  gdb/testsuite/gdb.xml/extra-regs.xml
+0708e0dc5f1e3f6ad3f7ec4f52dbc4d5  gdb/testsuite/gdb.xml/extra-regs.xml
 9bbc43406da2744f6c8a7c38b97bb02c  gdb/testsuite/gdb.xml/inc-2.xml
 b17141653a2a7f81010b78ba903cfdec  gdb/testsuite/gdb.xml/includes.xml
 6822163e38e7af33a0d81cdac6768ac9  gdb/testsuite/gdb.xml/core-only.xml
 4f6f7233919a7b5cbebb97e0d9b9fcf6  gdb/testsuite/gdb.xml/bad-include.xml
 0762eff212b3c7e9fe3c7047b5f037d9  gdb/testsuite/gdb.xml/trivial.xml
 db4894f09a7324b25de6b98a23383a5d  gdb/testsuite/gdb.xml/inc-body.xml
-a8307c2c93a8262c75f4705d22e7a3b8  gdb/testsuite/gdb.gdb/complaints.exp
-741d97dd92ccac04cfa7512a0d5172a9  gdb/testsuite/gdb.gdb/xfullpath.exp
-ca8f916c0071c69d33a3db86ed5ab82b  gdb/testsuite/gdb.gdb/selftest.exp
-456a054720cb8e589430c8780db5c011  gdb/testsuite/gdb.gdb/observer.exp
-1a653c38cd766e22ecad9d6103a88b08  gdb/testsuite/gdb.gdb/python-interrupts.exp
-01ec7f5b72603dad14b1d8a883704cf9  gdb/testsuite/gdb.gdb/python-selftest.exp
-8ebb6edb41ebf4c3bc35c82b2a578ade  gdb/testsuite/gdb.gdb/unittest.exp
-01734dc0c2fd9de5ec09c0238a0bf49d  gdb/testsuite/gdb.modula2/unbounded-array.exp
-87b5f61ac77aac83f107ccd963502f6c  gdb/testsuite/gdb.modula2/unbounded1.c
-166ff88d365cc4b89782f73102c36484  gdb/tilegx-tdep.h
-b9f2cba57c8e0b6343e5f9103e2a6e55  gdb/symtab.h
-11eb2baa9f2fbdccdd3266c37f8c4eea  gdb/f-valprint.c
-f5f85e8079fa86e772c5aa368bc2de8a  gdb/gdb_curses.h
+c27b9ae22c4023ba87881ffe9fc4a92b  gdb/testsuite/gdb.gdb/complaints.exp
+47e00686f1065323e8428e3341a86da2  gdb/testsuite/gdb.gdb/selftest.exp
+322c27bf93a47b578f4fd0d2bbf95082  gdb/testsuite/gdb.gdb/observer.exp
+5b4dd3cc78784f908c891c69eec5cfc3  gdb/testsuite/gdb.gdb/python-interrupts.exp
+8059c33797b348cbc3704e56a99a6e1d  gdb/testsuite/gdb.gdb/python-selftest.exp
+51d754d433a751313efc68200a779bfe  gdb/testsuite/gdb.gdb/unittest.exp
+d73a448e50a651ac6171a232b56ba1f1  gdb/testsuite/gdb.modula2/unbounded-array.exp
+2635b1ff15dfd3fa2dc596d43543ff8b  gdb/testsuite/gdb.modula2/unbounded1.c
+189e5da6330dc3a2d44a3205b91ee726  gdb/tilegx-tdep.h
+d7262919da054ada26ef7e5359fafc84  gdb/symtab.h
+29209f0a84f981d84f100e8fc4c3a84b  gdb/f-valprint.c
+b6bbbfc248f90052ce30fda420c5916f  gdb/gdb_curses.h
 8108dd8f906f2654fecc74958cf383db  gdb/doc/psrc.sed
-4cc06d25310edbb837bf3a57732f3afa  gdb/doc/gdb.info-3
-e85bcbea6ca97fa9c54eba2fe3f7a0d0  gdb/doc/gdb.info-4
+46de49eeefc6325ca1866e685b29da22  gdb/doc/gdb.info-3
+444368037c6d1924dd4f277a54734a00  gdb/doc/gdb.info-4
 ab0fe311032294b952da80585b8b90e7  gdb/doc/fdl.texi
-82ff73e69ce7f934c71ca667545d541c  gdb/doc/Makefile.in
-6a5a61dd26bdb71dc9ae80b4ef8d5ab2  gdb/doc/gdb.info-7
-3e88538f371ece70b44cd38bf1a0d646  gdb/doc/observer.texi
-a1118457b4e638ec70fe5f9639f7f9d2  gdb/doc/gdbserver.1
-25d98e4cfdcb50be474c39fe6ee5a92c  gdb/doc/guile.texi
+667bef4de7567c069421a0aa4b2b42ce  gdb/doc/Makefile.in
+c4da41403115d236f279d75054bdbd67  gdb/doc/gdb.info-7
+ce238ebd8ad1da77806acf2ccd2a592e  gdb/doc/observer.texi
+0013682fd7a0a9cbcbecbe31a2367d31  gdb/doc/gdbserver.1
+8a3211e1c1b6c1a9ae823c3c469675e8  gdb/doc/guile.texi
 f81a0e00e0cb9e41b078069fb9bedb07  gdb/doc/stack_frame.txt
-259d4d661f188d2df9adb15f7893bc4c  gdb/doc/stabs.info
-7782b6a67108c1c028b67ef00fd6b6a9  gdb/doc/gdb.info-5
-cfb748e4e7997eb77d81a2d04c17ec75  gdb/doc/agentexpr.texi
+319d74c658533df2b0bedcca97af4d94  gdb/doc/stabs.info
+9f27a55291d7909cd903741a0bf329fa  gdb/doc/gdb.info-5
+19abe6cc6d5cc545f19b7c7703223589  gdb/doc/agentexpr.texi
 66674dc351ba95941f422dc18cae24bb  gdb/doc/.gitignore
-5a1a57c75c56456d606e8773bba3c594  gdb/doc/gdb.info-1
+d719de1fda9ace9707037e45af9b79a6  gdb/doc/gdb.info-1
 d5d06eaf9b4d44aa442a4a281aa9aea4  gdb/doc/a4rc.sed
-069e917fafa9c41a11bf2e2203ca0d72  gdb/doc/gdb.info-6
-fbd9b7de23befc3047963b8df050c811  gdb/doc/gdb.texinfo
+21b95eab9934d431215d111f2a3f0932  gdb/doc/gdb.info-6
+31cbdd8332ee2f91513670303f5c73d0  gdb/doc/gdb.texinfo
 553b7fe1bf4b5d8b96fdb8cd83503de1  gdb/doc/stack_frame.svg
 04c82b1da7e894a6555868e4f86225af  gdb/doc/filter-for-doxygen
-4fc43d6768cf1e2e354f31afd3977e00  gdb/doc/Doxyfile-gdb-api.in
-f7b5e594a1123b60be255ad99e1fa958  gdb/doc/annotate.info
-83cdf64e300cf951ff99d5d98c8483d0  gdb/doc/gdb.info-2
-f4de6bc91bf36f24e3511b52c0cd8257  gdb/doc/refcard.tex
+6eef6173ced7b929f5142c1577f2189a  gdb/doc/Doxyfile-gdb-api.in
+26a572acbe3a2b351c0d3c0a2790b07d  gdb/doc/annotate.info
+21a3c297d9b58fe127f9663a2c4611df  gdb/doc/gdb.info-2
+0e44f6ffe6996c2827630e31909c3e1e  gdb/doc/refcard.tex
 6076d300a46651562d4ecd0604442414  gdb/doc/stack_frame.png
-e99c51f199a0b743d292b3243bea3bce  gdb/doc/gdb.info
-80bb93d40fedd049e5cb1df5f1f38928  gdb/doc/python.texi
-8a4aee08d4127ecb844a633b1f871326  gdb/doc/stabs.texinfo
-2c0fb4cb1ff2e33e19e20230da3b97dd  gdb/doc/ChangeLog
-615e91a91fcf319e9243d49623358f6b  gdb/doc/gdb.1
-47e0c30729391e83f712539cc7af626f  gdb/doc/gcore.1
+20c024d76085f5d5bbe53fe530748a03  gdb/doc/gdb.info
+792ace4c71224d2dab899da2b265c147  gdb/doc/python.texi
+c3feb7ddebdf77fd82e65fc406bc2f23  gdb/doc/stabs.texinfo
+59b9502ecb343b50bcf56cbe20865eb6  gdb/doc/ChangeLog
+f0141058bc596d9ba22ecd8c79badde0  gdb/doc/gdb.1
+6ee7263b6a47e4fb5c078e29e18b1cd1  gdb/doc/gcore.1
 d39233c86ed6a6dc9e853ae6a11fe03e  gdb/doc/stack_frame.pdf
-591694df493e64e682b16ffd8b2083d9  gdb/doc/Doxyfile-base.in
-66028f53511c3cc83819e12b44647ae8  gdb/doc/all-cfg.texi
+2ad37190a4e38a8186d90bc76fc4e551  gdb/doc/Doxyfile-base.in
+3e12b16a85438bdf1fd7355cd397282a  gdb/doc/all-cfg.texi
 bf96494e6e4d346175babd5ef9781882  gdb/doc/gpl.texi
 cd5e3faa9bd1b684a73c7d527cdb4988  gdb/doc/filter-params.pl
 7bfdb0765c5d050d204fbb30aeeba0d8  gdb/doc/stack_frame.eps
-bf509614438f2222952b146cde946284  gdb/doc/gdbinit.5
-1192f4fe7137f234e4e775edad1f6b67  gdb/doc/Doxyfile-gdb-xref.in
-3dbfac6a018cf4a1cdba9576425d37ad  gdb/doc/annotate.texinfo
-ad3c3c9a187c8d44e9afe447d27b59fc  gdb/doc/doxy-index.in
-148ac88916dea8885e5580c7a08ed2e0  gdb/doc/Doxyfile-gdbserver.in
+f06d18c499c5f1d8edb9b08ecc91a9e4  gdb/doc/gdbinit.5
+78d7bd07699d6e1b53e552cc3a1c16ef  gdb/doc/Doxyfile-gdb-xref.in
+d398b8cec3d96f0f3267dac6b8fe64bb  gdb/doc/annotate.texinfo
+5863a78c1571978dc97dccb25e481134  gdb/doc/doxy-index.in
+5fd0b4ab51371cec2c95861526ff4b9e  gdb/doc/Doxyfile-gdbserver.in
 73ec71cd3b2e7f61bc530f19d4b35056  gdb/doc/lpsrc.sed
-be35c67bc2313e5ebf631bfec254fe53  gdb/parse.c
-1aee3fdcd0f992d5e4b910f8ff4f4ea4  gdb/fbsd-nat.c
-b3de3b9ffdd7d7abe59217d2045d0175  gdb/windows-tdep.h
-2dd63e37694a30517c1f35a72d2de7b3  gdb/stap-probe.h
-601336088e724db50f8bc0a7dfae5f8a  gdb/observer.sh
+469d24aa02c051518afd6eca59606412  gdb/parse.c
+ccbe9794aa3ff3f9b78d39d4740bb27d  gdb/fbsd-nat.c
+c6e50b510f5aa2a361a607b7b68e24c2  gdb/windows-tdep.h
+57d3e4e0db70b1c2099ca24edc0efbb5  gdb/stap-probe.h
+75b0e5a72176ed15b70b6de00c4a5aac  gdb/observer.sh
 1f68d3272b33b380724fe731f1716f7b  gdb/ChangeLog-3.x
-563ae2f626dd171522217b0b8153be38  gdb/language.h
-e11a8c6ea38aac02aff1c6690c4edbdd  gdb/tracefile.c
-b0f9af374a407a5c813d16a8ec219498  gdb/arm-bsd-tdep.c
-d8b2a9078d728afd0d8f44c48cc7c40d  gdb/mi/mi-console.c
-3c12f7d82b50946c85535cf203273674  gdb/mi/mi-out.c
-be5db540a125824272223ad0cbca352f  gdb/mi/mi-interp.h
-8dd88a2d1c2ea9277578af0222f474b3  gdb/mi/mi-getopt.c
-505c91852a185fc5bea3d29d13dc56a2  gdb/mi/mi-cmd-info.c
-2a327a7d5ed5af52d33ae82737fd3234  gdb/mi/mi-cmd-env.c
-d59d490077777915435f95807ddda358  gdb/mi/mi-main.h
-f283dc6d43d5acdf86629aaaa5187eaa  gdb/mi/mi-cmd-break.c
-f10734bcb04cb9e539a504b3c48e29b2  gdb/mi/mi-parse.c
-6d34be724e52d269b5537a4f205e7a63  gdb/mi/mi-common.c
-b9a671271ebd4c848735e82e9abb0432  gdb/mi/mi-parse.h
-c0948d8b1111edefb944420dde8b6913  gdb/mi/mi-cmd-stack.c
-f089cc14ddbfe63316cc608baeee2511  gdb/mi/mi-cmd-catch.c
-c7cd277cec4c1df2953c2ee6b79fa28e  gdb/mi/mi-cmd-disas.c
-a2f617a33fcd5b8a44de4df4a0105711  gdb/mi/mi-getopt.h
-70cc9bf15ad6ab33ce7d3fa31f0e40b4  gdb/mi/mi-interp.c
-55076e3611f53c38fd7dea599dee5c03  gdb/mi/mi-symbol-cmds.c
-d26dfa689462686e534f6cbe49928188  gdb/mi/mi-cmd-target.c
-2d5a00edf48d1095c638fd790230d806  gdb/mi/mi-cmd-var.c
-1d03886b52601c9d8118374217ee8aac  gdb/mi/mi-common.h
+cfdb54914aad36fc81b3344b6dde276d  gdb/language.h
+fe79eb3033cc07fed51516367a566d64  gdb/tracefile.c
+69207dbe030639fc721baa54dc565a84  gdb/arm-bsd-tdep.c
+5344a442ec7a5e8bd21225faa7b84fc7  gdb/mi/mi-console.c
+6f8c2811150926b44a717badfbcc8aa7  gdb/mi/mi-out.c
+f2cb9ad9e09c98824a8ae413ae6e7026  gdb/mi/mi-interp.h
+d081a41807db9ec0929c5452b0948bc2  gdb/mi/mi-getopt.c
+ce6e1244202a9c409b1318f04a48f319  gdb/mi/mi-cmd-info.c
+46833e5da228e56d9b0c944a0f591707  gdb/mi/mi-cmd-env.c
+dddfd39577325401cf440047132b8b62  gdb/mi/mi-main.h
+3c6cea64a160bc42448b7bf037d32d85  gdb/mi/mi-cmd-break.c
+356865dddd2a30d1d10a026366915332  gdb/mi/mi-parse.c
+01869ddd27adb755714b8760b519e613  gdb/mi/mi-common.c
+b6c8842ad16c54f7e3830b3455dd9f4f  gdb/mi/mi-parse.h
+7bd00074c3e479f8defefd687c4334a4  gdb/mi/mi-cmd-stack.c
+b0371d2622f29945000cb676dcb52e50  gdb/mi/mi-cmd-catch.c
+dd7a9be87ce97b08f96381c2f17a163c  gdb/mi/mi-cmd-disas.c
+db71ee7126757fed3d5149b19e85475b  gdb/mi/mi-getopt.h
+440bcf0306c035d26d5b51b0b62b06dd  gdb/mi/mi-interp.c
+c4a031a69392f69b941fc42d5b3aad72  gdb/mi/mi-symbol-cmds.c
+148863592e25e21730d5987ec1b7d291  gdb/mi/mi-cmd-target.c
+6a77bfca99f88fbdd0546b138e545dce  gdb/mi/mi-cmd-var.c
+00e14aedab73d46283ca1651a21c951e  gdb/mi/mi-common.h
 90b81f951a2351c88c1b4a1fedbb492f  gdb/mi/ChangeLog-1999-2003
-11e242148ea959acb70a9400556ac1d2  gdb/mi/mi-cmds.c
-f55317dd0b644dd71086546ca5f7908a  gdb/mi/mi-cmds.h
-0e24ae2075714de2150eb25378a0e594  gdb/mi/mi-main.c
-f34c4d70ad37f465aabf9acf258a232a  gdb/mi/mi-cmd-break.h
-738a146bd64ac936f92d3d87cdc0e02d  gdb/mi/mi-out.h
-67ac5ce475c0d516ce0238a2ef7e809d  gdb/mi/mi-console.h
-a8c165a587770544eda847e724fe76a5  gdb/mi/mi-cmd-file.c
-6647af0afb7dfd05b453b4c262605812  gdb/registry.h
-cece977373297e27beed96f377a44b9c  gdb/ctf.h
-a04367a9bd1a2384f1659aed5f4c6c9a  gdb/varobj-iter.h
-8811ce22cf838f456a992677445eea62  gdb/mn10300-linux-tdep.c
-793c2b6da98d34274c78873f6e892b0f  gdb/gdbarch.sh
-dc096fc33c592f0e08f438e2dafc57c7  gdb/skip.h
+7412fa5f33bb5f23c4bb6b00ff8c5e1c  gdb/mi/mi-cmds.c
+582e471d752881bf152ce52f64cef2b9  gdb/mi/mi-cmds.h
+3fbd45e0b8f3b161f0bf926dd06f6b88  gdb/mi/mi-main.c
+5c427ae3a818531d4114b0b07697670f  gdb/mi/mi-cmd-break.h
+369b90c7767db170948a34a75194af96  gdb/mi/mi-out.h
+0df84e9c7fabdddf6d33ff2cae7bc3db  gdb/mi/mi-console.h
+bfd47f8ede612cee378d330d7a05cc7f  gdb/mi/mi-cmd-file.c
+33d16b2e5357341cb4d331fe75718d41  gdb/registry.h
+f938c4acf318107341963ec003678b1a  gdb/ctf.h
+63e4c8e662e1b40c2a4bd525088cf119  gdb/varobj-iter.h
+c7b14c017d7904d31f60a3c3424dca2d  gdb/mn10300-linux-tdep.c
+e04a05f7cc2eca339b6ef47dfff1e916  gdb/gdbarch.sh
+8c54cd86200b7e75829e6f820d5940ae  gdb/skip.h
 d87f8f330dda7f736350ea5dcff5b709  gdb/ChangeLog-2006
-3ecfdffdbdc09b0aa6289a31b2d106e7  gdb/location.c
-f8dcf9b6f075c25b2f376ee8e3216f8c  gdb/minidebug.c
-98e9fc2c48d88234a6059973f983ee5c  gdb/ada-valprint.c
-7d1abcb38cae00d8e31cbfa5b87dc7e2  gdb/ppc-obsd-tdep.h
-e5083eb6bed77cb1e9e8176d11c6644a  gdb/annotate.c
-2ea7dc8159a201e08bca7c21685de2f5  gdb/addrmap.h
-662d4a70dea8b3305d76eadc10ca2999  gdb/valarith.c
-d4f983087f8e3562395d0776df9058c0  gdb/rs6000-tdep.c
-c61380fdad935679b47762ea2e0666d7  gdb/linux-fork.h
-86139b67346ab14b0039c011cb327036  gdb/dwarf2-frame.c
-6a61a7d2123a99c40deb13b9cacd2a82  gdb/mips-tdep.h
-e4bd7c7b2a56df861718401e3c73ea74  gdb/sparc-nbsd-tdep.c
-9ee09529f3c391cd03d49f594b095f68  gdb/mips-fbsd-tdep.h
-cda4104df014b5675a70245b828dbe35  gdb/gdb_select.h
-b6628f47c923e134ea6962a2087eb56f  gdb/dicos-tdep.c
+b5f6fcbd46151cfd186f9b1eb2fdc939  gdb/location.c
+522f2b86f82ac4d228234044d4c6b32b  gdb/minidebug.c
+49026b2ed8f7d142e125a332806f5940  gdb/ada-valprint.c
+63624c62c661817490ac6fa2f0d083ff  gdb/ppc-obsd-tdep.h
+1053abcd3523d28a5fb830f7a58cbef0  gdb/annotate.c
+337d4a2a503dcc1b08658d238f93154e  gdb/addrmap.h
+5f9a959b901fcb8062d6a4dc8ba102dc  gdb/valarith.c
+29d0ae288a68ca2fda681c1af000f850  gdb/rs6000-tdep.c
+d1125167edb8da745cfd44ed52d35e27  gdb/linux-fork.h
+7d7b4add0df31e5c01586fef92ab3041  gdb/dwarf2-frame.c
+3471d1173d31d280aeac5c3c5cb59565  gdb/mips-tdep.h
+1d398fb2efba4853429173affa99498a  gdb/sparc-nbsd-tdep.c
+7896af3720e3ad3e1f51620535beece2  gdb/target-float.c
+07257e146d0c9dcb0d093cf40cd1ffd9  gdb/mips-fbsd-tdep.h
+38b1578991d22f11c0171fdf2e86a170  gdb/gdb_select.h
+704c95954ef5b34bc650e078aedde839  gdb/dicos-tdep.c
 8231b684b7d88405d04d2bef46a24822  gdb/ChangeLog-2004
-12696691f6ae47929bbc3c68411f9587  gdb/record-btrace.h
-ea41a7eaa9f03ec18a17226a058e496e  gdb/machoread.c
-6aadd957c4e517bf823929141b49f640  gdb/printcmd.c
-d3e46fdce973f46d09fb9d3dd97a32c3  gdb/serial.c
-8ef55a32bb85ca7c1f57260c0a3da4f1  gdb/gcore.in
-c0f97fd6e02cf5b06097dc9f7e722665  gdb/ser-go32.c
-b124286c7617be6c4befa4c09d3818b9  gdb/minsyms.h
-ac91a5937e4d768af996dd1832682dec  gdb/source.h
-fb1e1c289ea4d9bbadda67be9be4c72c  gdb/microblaze-tdep.c
-9a3ce6d83336bec8fe427b363d5ee207  gdb/procfs.h
-1aa491f2bc4eee638a8130d76cbae0ca  gdb/sparc-nbsd-nat.c
-a23b36455e1184a218de1e48ff373e94  gdb/tid-parse.c
-baf0f84235e63e7b39f07477b97a0c5d  gdb/objc-lang.c
-e767d5e9026230f6e0a50c7250942e3a  gdb/rs6000-tdep.h
-097475de58ecf01baeaf734f36af8af4  gdb/dwarf2-frame.h
-7652d806fce0435763204cc105c36c08  gdb/ft32-tdep.h
-c3e01b2564cf0dfde8683d9240dab282  gdb/tic6x-tdep.c
-6063ca089a271c2c13d02e3cc2af74da  gdb/gregset.h
-e9b2fbfac70c586ae84e5e19cfe49d07  gdb/infcall.h
-4f54891acb79f5a4f0244de735fb87a2  gdb/source.c
-3528e23128f66c8d00a228b888683467  gdb/sparc64-linux-nat.c
-c513bb1b00b23aa610813a8c8d91977b  gdb/build-id.h
-9f2e967e5b714ad351f9ce3d865e165c  gdb/xcoffread.c
-49d7d04814581a222646b59a1b202486  gdb/valops.c
-352840d9bb13266255f8a8daa4c831ee  gdb/d-namespace.c
-779131c95c9d63b55aacbb8da940ae15  gdb/sparc-nat.c
-51114c7ad63b3da07324a22c2ae4e6f7  gdb/continuations.h
-508df287f44e9f4db77f8016b3fe39e5  gdb/infrun.h
-f9cf6cdc6c8d5fe2043ad331f0e274ad  gdb/jit.c
-fa3c433bc5611173eb32900a5421f580  gdb/rx-tdep.c
-21187127c1eee4cf0378d067f01e929e  gdb/frame-base.h
-481a41f14d094653cb273d4a6edcbb64  gdb/xml-syscall.c
-4bf77b93eaa201abd7d6938ef77aeb57  gdb/symfile-mem.c
-bc196fdb47495db82bfc560ab0a9c102  gdb/c-lang.c
-30ecf9ff401aab3b9baeb846275d4b9c  gdb/hppa-bsd-tdep.c
-ad0eaf380de1ce80f2c3513e2c7028d4  gdb/typeprint.h
-029b3c4331387783171a11d3d85ae793  gdb/osabi.h
-88b48c8ada45cac0f24ae8459bf103f6  gdb/symfile.h
-ce604ff82b209d4169587aaeba467caf  gdb/fbsd-tdep.c
-892347ba1f1ffd6bb2280dc766b31409  gdb/gdb_vfork.h
-cf327d1e0def2b0206cef1fbaa1d14b0  gdb/hppa-linux-nat.c
-f5fc0f7adb17914e4663b42e5be38b5e  gdb/avr-tdep.c
-0f980b073a4aedabfca13e64259ea59d  gdb/obsd-nat.c
-fe471ea9d51384a5a89a36b5bf26d9ce  gdb/gdb_bfd.h
-eddfa8eab217982b8fe0ee5693e19d3f  gdb/v850-tdep.c
-1a86fa5424e5a1cea3e6db86a2239910  gdb/cli-out.h
-5cb533feba90f0f6c9dfa6b455b0a6ec  gdb/build-id.c
-c0a5fe2c667e21f86df95cab58e64276  gdb/ppc64-tdep.h
-5eedc046f2100d6c5c543ed31acf0e5d  gdb/c-valprint.c
-f7f06d0bbc43655b031e020c29316805  gdb/value.c
-a0c404a7efd08eec1f7357bb5540aebf  gdb/dummy-frame.c
-6b507e3f588396c2338c713e70671c09  gdb/ser-mingw.c
-bc8858ef98fc45778c9600c91f61a059  gdb/completer.h
+a972dbbe432c5d7ecbb7a5616e297dae  gdb/record-btrace.h
+ec316376c6e2be62be65ee0fe8decbb5  gdb/machoread.c
+b38242aae9b798e85361c61ddf5e174f  gdb/printcmd.c
+c6b8e951a22dd8027f812552bb2372cc  gdb/serial.c
+10a3d3b7456a69d6d2b3342894d381ab  gdb/gcore.in
+23b6dba6d4c2f87b4f522a47dd854a34  gdb/ser-go32.c
+b578f9092fb794d46f802aac3479301c  gdb/minsyms.h
+9e96375b059c4d405489b6519bfc4467  gdb/source.h
+a455b1600136bf63d34de35c17f4a135  gdb/microblaze-tdep.c
+b1473428c54f60ce35a2eed083a576b7  gdb/procfs.h
+81665e1eabbbe4bdb7f504db4048f4d3  gdb/sparc-nbsd-nat.c
+17cf3395b846f725f8ffd5ee48ba1139  gdb/tid-parse.c
+3c38e480048a403b6d23535e5c98b539  gdb/objc-lang.c
+3b0fd52a0d062b9de16b53a58c15eace  gdb/rs6000-tdep.h
+f50b276090db87139739e36275624248  gdb/dwarf2-frame.h
+698937a77e4a2bc651e2a822e900e65e  gdb/ft32-tdep.h
+0019dc5030e8a27671f625ff546559db  gdb/tic6x-tdep.c
+7f51552d8562e3ec02560da61fbc55f4  gdb/gregset.h
+4b8d17255a08ac831c19a5783611d362  gdb/infcall.h
+07b712a2cd1376875d7659802a9f1bf1  gdb/source.c
+f9aa3e302383cb08240c273302248385  gdb/sparc64-linux-nat.c
+05a2672e58ee89c45e1a73148a306fb1  gdb/build-id.h
+6fe6dcb14334fc6efb2d4ef46c3cfe51  gdb/xcoffread.c
+7eba47d6c57cb4bc554120a1fa795035  gdb/valops.c
+8d1b1519231fb93a4ef4eae406eb1e4f  gdb/d-namespace.c
+0302fc65d1bbb05e49fc8a9f5f818391  gdb/sparc-nat.c
+d0ad98ae7cee62713fe85a4e09ad168e  gdb/continuations.h
+71df178914ce817c4ef52498d3a13494  gdb/infrun.h
+9819701c5fe26104bff31afec4ff925e  gdb/jit.c
+419f04dd4f463db03064fa29934d0899  gdb/rx-tdep.c
+c5e45419503b3c6eb53c1c4f454c600b  gdb/frame-base.h
+f5f244d07b38165438a459ef8ed986f1  gdb/xml-syscall.c
+b63df97954a6215f31a4884c1ed016d4  gdb/symfile-mem.c
+79ac601eba809dfb9e3f762a7dd8408c  gdb/c-lang.c
+aba8d6987911ef805cb23a8d63c0853a  gdb/hppa-bsd-tdep.c
+6206e48e8702010adb6ef3ee5722b6f1  gdb/typeprint.h
+4a1b5a38547eb27355cf3ccbb301e6cd  gdb/osabi.h
+c39125dd4547e3fe73e5183fd0e28d5c  gdb/symfile.h
+2a78858d814a2b9d71dd6aaeb5fd4afe  gdb/fbsd-tdep.c
+1786a988c23b47a4dff1641fbeb70d25  gdb/gdb_vfork.h
+9fc3e20953862a3071eac7eb3f7641cc  gdb/hppa-linux-nat.c
+ba9b0959e89d85d3dd3653e39a42d624  gdb/avr-tdep.c
+77837789e23a81f0b6476f9f02401dfa  gdb/obsd-nat.c
+72a15b19f581f258150db3eb025f4db5  gdb/gdb_bfd.h
+e5adea573bc3640b66296c078e416c30  gdb/v850-tdep.c
+5801cd65de5afd25d26b86f71538ba97  gdb/cli-out.h
+13b55d0a2846faabc782b09250166e72  gdb/build-id.c
+9c2b4a34423c053dbc948a9ad841aaa3  gdb/ppc64-tdep.h
+21192b4878969ebd25eee6347c9bc4e8  gdb/c-valprint.c
+10d84556019acf4f1a0bbc0153ee11db  gdb/value.c
+ef1982a20fd7296e63e402c014e15c8e  gdb/dummy-frame.c
+6c5d86d903a6a1e7884d141ab0ab7858  gdb/ser-mingw.c
+83d3b77c037b132a96c2a296685c74f8  gdb/completer.h
+44fcceea3084dfb5b072649db9ad8d04  gdb/arm-fbsd-tdep.h
 9f5b9f6467a7f9637d414236c566d6bf  gdb/tracefile.h
-ba86bfe03e1d6ed5b51bc372f60d2c23  gdb/sh-nbsd-nat.c
-ebde82d8617a861e38e9b9da9ba098f4  gdb/stap-probe.c
-89fdf22c2df79a9d174a53fd881d7e7c  gdb/make-target-delegates
-ffc3f4d750cbe3e9486638887688537a  gdb/features/s390-linux64v1.xml
+51321ac0568e5c9c5b677a70808ef0f4  gdb/sh-nbsd-nat.c
+f6a7aa23a8adc03bf99d812cb64d33ee  gdb/stap-probe.c
+11d118ad0a23426fa93b3deec8d03d3f  gdb/make-target-delegates
+e659545455c7e337aa9e7c4a992f395b  gdb/features/s390-linux64v1.xml
 69701d0a7c97718d55272ce8c4ed07e3  gdb/features/microblaze-with-stack-protect.c
-e7db184b4ed1f7bbd071ea2bc1c419d9  gdb/features/arc-v2.c
-97f75af3c07eb65a89220162b36d3763  gdb/features/s390-linux64.xml
-fb6f13d331c2fb05fcbd383364d7c2e9  gdb/features/s390-linux64.c
-28322659d17c575dfbcc78a4dd46dd77  gdb/features/traceframe-info.dtd
-516c4efb0fd5b431f9af37121e94decb  gdb/features/microblaze-core.xml
-30e6b5d2b5054f618bf75227a86cb9ed  gdb/features/s390-linux64v1.c
-74ea94a165bdeff73ad23a924deb8d37  gdb/features/tic6x-gp.xml
-4e0ed560ea636f16c2e969fd344649e5  gdb/features/tic6x-c64x.c
+7f786e14ab037194abcc15a81b839212  gdb/features/arc-v2.c
+413326e947d006adeb61a17e4aacd06f  gdb/features/s390-linux64.xml
+14e1401897a6a68135718edfc9b902d4  gdb/features/s390-linux64.c
+c1216b000abc49e87f4166187680ec65  gdb/features/tic6x-gp.c
+381b2d1edee070a1c8e2617c153c06c6  gdb/features/traceframe-info.dtd
+0273d7206ac83a23f5eda06764a8b621  gdb/features/microblaze-core.xml
+e93fb71b675055324eb5188cba6dc506  gdb/features/s390-linux64v1.c
+13d81dbe75afb1bab4a5b8b9fc06bf6f  gdb/features/tic6x-gp.xml
 7f858498e3b882463c1ca8c0ffcc73c6  gdb/features/gdbserver-regs.xsl
-8ce26f99009b74a40276f8a9b1698bb9  gdb/features/s390-fpr.xml
-abe99a50d93074cc67b9fbd6bf9e5edc  gdb/features/microblaze-stack-protect.xml
-55476fcf7a2d07c773785e0f442a7c5f  gdb/features/mips64-linux.xml
-c46b4dab8eea0d22e1ae2f4d3f752df6  gdb/features/s390x-core64.xml
-2a778253d2bb58a408df4fdd8198a1c7  gdb/features/s390x-linux64.xml
-0f1abe2e41190128a9dfffce453fc66f  gdb/features/s390x-linux64v1.c
-88573334d34920941381a4cdd81e384e  gdb/features/tic6x-c64xp.c
-59171c082294b38b9b6a772d5abb353e  gdb/features/nios2.c
-eb4995e9ac8519b2a2bbe679f954daca  gdb/features/s390-core64.xml
-658c4c790ed69c14b071ed655b2b73c2  gdb/features/xinclude.dtd
-d24273a080b4b6f38b463e6b4f88fd45  gdb/features/mips64-cpu.xml
-7102b8a221b47448e1131783bfa7519e  gdb/features/btrace-conf.dtd
-f9ef388e77543e8426b1487c459305aa  gdb/features/s390x-linux64v2.c
-80addb7b6e7c8371fdd793428b0b19e0  gdb/features/tic6x-c62x-linux.c
-58446a3bbb2847254d454b8a2279c05d  gdb/features/s390-core32.xml
-c732cc22527b11cdbae320a775d61864  gdb/features/threads.dtd
-779b74c6dc6250a855a115e6172360af  gdb/features/s390-linux32v2.c
+64592db4df08706835f851f7578a188e  gdb/features/s390-fpr.xml
+be4edbc3e7033803ff50a1f902dc3b1e  gdb/features/microblaze-stack-protect.xml
+a059632d40dc61b9b8c4a46db56605b7  gdb/features/mips64-linux.xml
+a19705861ab9c926099c6293a607f7d0  gdb/features/s390x-core64.xml
+1b43c98da0c84ca58a1cce0bfd09fe16  gdb/features/s390x-linux64.xml
+6e767f37455021cdfdec4d61da40fb1b  gdb/features/s390x-linux64v1.c
+a5c83a69c5d5cb6d672e2447fdee59be  gdb/features/nios2.c
+8d60f2c88dae29373b3fde103dd81720  gdb/features/s390-core64.xml
+08d7870a2d6d7ffaac4bb54560095dab  gdb/features/xinclude.dtd
+08bcad04da653ffcb85a6207a6ae3b1f  gdb/features/mips64-cpu.xml
+251674263a6b30b9292f9cc550fcdd63  gdb/features/btrace-conf.dtd
+22e8c1995c9bbe363eef485c6676b615  gdb/features/s390x-linux64v2.c
+13e94e2449d94b88709ae92e758e2e0d  gdb/features/s390-core32.xml
+df5fbeed2346df95b54160d384863f54  gdb/features/threads.dtd
+f25f22c310f59d182314cad569df02c1  gdb/features/s390-linux32v2.c
 344651c03e3550054486c97346dbe87e  gdb/features/number-regs.xsl
-6e5fa8ae5ccd191eda555def86bdd5a1  gdb/features/tic6x-c62x.xml
-9dcd90789161b16e0379e254053779ad  gdb/features/mips-cpu.xml
-fc2762eb9146a42f6edfbbd065149a00  gdb/features/s390-vx.xml
-2b800a31e3caaaff9cbc518da2b1c6be  gdb/features/aarch64-core.xml
-42f74dfdd03a4edfe10425591f5331b1  gdb/features/arc-v2.xml
-81f66976d0e245c6aaf9df7863caee12  gdb/features/osdata.dtd
-5dd59cfba582a2808a06c45bb380630e  gdb/features/mips-fpu.xml
-2a0d11428cfa6c8dcb768bf5f25032da  gdb/features/btrace.dtd
-2038f2cdf355f7f32d0fe00189631525  gdb/features/nds32-fpu.xml
-98e1c6af89a80d84fc0bbc48c7a4b842  gdb/features/tic6x-c64x-linux.xml
+7854c641f794ac0f56624a214b7d65e6  gdb/features/mips-cpu.xml
+363a4880823f4c069431c4f31a495332  gdb/features/tic6x-core.c
+da5ca05b6582cf74230b32e0103f1b0c  gdb/features/s390-vx.xml
+9dccaa6a1c00a8927b7f201c9309b4a5  gdb/features/aarch64-core.xml
+7de76b4248d436e04d337802b675ab7b  gdb/features/arc-v2.xml
+38c4422113f20d2aa689fb3dac64208e  gdb/features/osdata.dtd
+dedeed194d943cc5e713da104f54e89b  gdb/features/mips-fpu.xml
+41b985c2cb13914d0227c5a91d25c293  gdb/features/btrace.dtd
+02cbe3d2fa94e1e326b80c3281f8ea27  gdb/features/aarch64-fpu.c
+5cb85e1281a8a213fd676f47b764c6b5  gdb/features/nds32-fpu.xml
+c701a08ae1b2c8c2210bd4abb2172a9c  gdb/features/tic6x-c64x-linux.xml
 584b2140cb3a6d21d216ae9144426dc1  gdb/features/microblaze.c
-361286d11b3644e5ec16bc6b881b16c9  gdb/features/mips-dsp.xml
-029d4c180ba1d751ca8dbb06bbbff374  gdb/features/tic6x-c64xp-linux.xml
-6894303e8b125e81cfa117af8dc7e14a  gdb/features/s390-tevx-linux64.xml
-fa91f6108e4dc0256bfa8b6dedacdfcd  gdb/features/tic6x-core.xml
-5e7b45b3644bcb488702d8a3cdb2d373  gdb/features/tic6x-c62x.c
-937e943d5f04b4f4781b8708f6e4dccf  gdb/features/s390-linux64v2.xml
-80e8caad1e94c71009bad6092c431789  gdb/features/nios2-cpu.xml
-6dec5e1f996604773c1b01c4139e06b0  gdb/features/library-list.dtd
-1b3e7c6d28680867b556226d0b2d8a6e  gdb/features/s390-acr.xml
-544269976f07807d3efb8a7906d80b7f  gdb/features/Makefile
-bb44fcf7daa328d4edd2c3ff5f7b9f75  gdb/features/tic6x-c62x-linux.xml
-fc706e5f347383bc2135e7af2e076702  gdb/features/s390x-vx-linux64.c
-ff51d4d77ae503c3c19ba449d978de77  gdb/features/library-list-svr4.dtd
-fab163bf15e38b2cc69b95902cfd9c9d  gdb/features/aarch64.c
-58f0e72ffd5b89cc0b3f7b3172ac80ad  gdb/features/mips-dsp-linux.xml
-7ec2925051e31b8dedf608909b4c1427  gdb/features/s390x-linux64v2.xml
-c8ad675e236fe30e666861cdeccca281  gdb/features/s390x-linux64v1.xml
-fafb5fdac2d9a074dba7b3ccfd2c6d0a  gdb/features/nios2-linux.xml
-3cbf9f9129987029c0ba0c52bafadae5  gdb/features/s390-vx-linux64.xml
-b1bf9f9919874847be9ddce1b84f9ee9  gdb/features/microblaze-with-stack-protect.xml
-fe27ccfb873ea5eda2fe5c13a5c951af  gdb/features/tic6x-c64xp.xml
-a14a48ce3c58aaaea1f93095547ce5d2  gdb/features/library-list-aix.dtd
-0a4dfc7eb2fad5515eb8c0044d72341a  gdb/features/s390-linux64v2.c
-e3d476b4f25f708a9d3645f34065aafa  gdb/features/nios2-linux.c
-566cb6380e98623f18a4451f853245c7  gdb/features/mips64-fpu.xml
-020a3915f6ac21a6a34100600598e07b  gdb/features/s390-linux32.c
-50ca1a135b847b0158ab88d78474f4a5  gdb/features/s390-linux32v1.c
-5c7be189e12d3c38b0e7accddfbff542  gdb/features/tic6x-c6xp.xml
-f306c94f83bdc80757c912602c2f7999  gdb/features/s390x-te-linux64.xml
-942355ab5f446b3b4615291bef9febf0  gdb/features/arc-arcompact.c
-3b6092682721150c3d55506ecaa2c475  gdb/features/arc-arcompact.xml
-6549b8b580584514941913932f2d348e  gdb/features/mips64-dsp.xml
-5cfb1898654b8b5bd2c17de6bbd8f0d3  gdb/features/s390x-tevx-linux64.c
-964d87d69dc1ce7145f70ebe36fbcca6  gdb/features/s390x-tevx-linux64.xml
-a548efa74b806b5059ea20e4dd94645a  gdb/features/gdb-target.dtd
+66ecf7bbe9d3a9be58e132d2750cc529  gdb/features/mips-dsp.xml
+b5197b32c8a82297ed3852fd723091e7  gdb/features/s390-gs.xml
+8994a01fbfef5e339c74fd9628b026a5  gdb/features/tic6x-c64xp-linux.xml
+de5bb90dcafc6bdf124e6fcc8edb0882  gdb/features/s390-tevx-linux64.xml
+f780f47bee67002e238db629f0f34a52  gdb/features/tic6x-core.xml
+75d6362004902c9765a29436b547f8c8  gdb/features/s390-linux64v2.xml
+e868b389039a1b63bf183083568fa664  gdb/features/nios2-cpu.xml
+6e6c9626e06977cd6aa51125e6c8e8c3  gdb/features/library-list.dtd
+7168ebbad73620338e3dbbf3397c82cb  gdb/features/s390-acr.xml
+f317aeadeccdb632cbbb6f75bcc19294  gdb/features/Makefile
+94489d38c2baaf619fed02c95a2d3d51  gdb/features/tic6x-c62x-linux.xml
+69febcba8a169f98cdcf218a5c76d6b9  gdb/features/s390x-vx-linux64.c
+c8c2d8e819c46d315d3f677fab994690  gdb/features/library-list-svr4.dtd
+b8c33b1db644e2e80e97ee96888beadd  gdb/features/mips-dsp-linux.xml
+7a7fba60ba6da6d8be6267d475ed5290  gdb/features/s390x-linux64v2.xml
+574b503b05feeb260ca59b82e5ff3918  gdb/features/s390x-linux64v1.xml
+98a3b80f571bd6def3764a0699ba0c6f  gdb/features/nios2-linux.xml
+916b64b0ffeb3b1f1487e9b10e8501a7  gdb/features/s390-vx-linux64.xml
+219e74ff89381fc5c0120c03830351b6  gdb/features/microblaze-with-stack-protect.xml
+ef57882ccd45c8a9886e53fca26a0670  gdb/features/library-list-aix.dtd
+0ebbdc5c65d018cabea930d28ab4eb6c  gdb/features/s390-linux64v2.c
+451b85739b0d9b23cf0547495f86810e  gdb/features/mips64-fpu.xml
+e8661aae4aaf05f5216c75526cb50822  gdb/features/s390-linux32.c
+8675e544f595132bef3ef1aee76fcea8  gdb/features/s390-linux32v1.c
+690a0ae5de5f278c7eee3dbf36ff0f7e  gdb/features/tic6x-c6xp.xml
+bf5ca68ef0b003608c7d1db48ceb13fc  gdb/features/s390x-te-linux64.xml
+5abc13da94d80c5ed2076a942712880a  gdb/features/arc-arcompact.c
+7e659f6b6a4641989a10929de44719ff  gdb/features/arc-arcompact.xml
+bdb7c5c0f67af3443622c98a38c2b5a6  gdb/features/mips64-dsp.xml
+33ed15958757805e9c9e07b42e6862bd  gdb/features/s390x-tevx-linux64.c
+c57dd8d7eb3e43bf49f5018e7518dd9e  gdb/features/s390x-tevx-linux64.xml
+99c83cca2633d8de842dd27de94f8cd1  gdb/features/gdb-target.dtd
 8b1fb0e674a36bc3fbbffaab65c9a690  gdb/features/sparc/sparc64-solaris.c
-ad37477d94c9e5fc8dd5d6e09428569d  gdb/features/sparc/sparc32-cpu.xml
-e96ceddb37cac5f622411446d351662b  gdb/features/sparc/sparc32-cp0.xml
-6f13049db29aef65f27674e2b85ac05f  gdb/features/sparc/sparc64-fpu.xml
-1c71e0b4f6b149a91b3d72469850a69b  gdb/features/sparc/sparc64-cp0.xml
-47ef664795274728d6cc0027833fecb1  gdb/features/sparc/sparc32-fpu.xml
-41af0a72e10f4468980b6bd978be34c5  gdb/features/sparc/sparc64-cpu.xml
-2d231219a16983a49936effa22ac3244  gdb/features/sparc/sparc32-solaris.xml
-e4fdd731f08883e3ef0d3ec86b69633e  gdb/features/sparc/sparc64-solaris.xml
+bccecbac4388ec0d6559fb92695ea25c  gdb/features/sparc/sparc32-cpu.xml
+a46bf46b7fb3779b107c28d0864d8738  gdb/features/sparc/sparc32-cp0.xml
+97adea6026016ad7cb54dca95b00c176  gdb/features/sparc/sparc64-fpu.xml
+265703d3c1f7ce14316bd1020062df3a  gdb/features/sparc/sparc64-cp0.xml
+17894dc0739a238b26d9ab8cee814a96  gdb/features/sparc/sparc32-fpu.xml
+866b741c8391526d441a7eb34151592a  gdb/features/sparc/sparc64-cpu.xml
+776b7ff8fabf536c6db08b8c0f1319e8  gdb/features/sparc/sparc32-solaris.xml
+c382e750b40f7a86226c8f21f75a140d  gdb/features/sparc/sparc64-solaris.xml
 689b843ed11adb364366da7c7a5772c1  gdb/features/sparc/sparc32-solaris.c
-7ba00e4429487cd7a407041d0dc603c3  gdb/features/nios2.xml
-7ecc1f74f60a2c04e4820bac286954c2  gdb/features/mips-linux.c
+11c09a45ca7ae1f4b59219c69958d679  gdb/features/nios2.xml
+dc3fce89de434534e8b46832ef6d5785  gdb/features/mips-linux.c
 2faa4557586c6ff6015ca31e693b9da5  gdb/features/m68k-core.xml
-ec890d7d0e8888e8baac7f200a28c83c  gdb/features/nds32-core.xml
-1e627cb39bde446ba39b6f55da59bce9  gdb/features/tic6x-c64xp-linux.c
-3f6064311c2bae31d8bb5175edb3c514  gdb/features/tic6x-c64x.xml
-6cada01fa7ab5b9146c792ed5124101b  gdb/features/mips64-dsp-linux.xml
-96d57eb0d0aee0e17abb0a92109e5983  gdb/features/mips64-linux.c
-4a76f2ccac2311e86865601c8c817fe0  gdb/features/s390x-te-linux64.c
-459dcc99695d4b134dc36723246d0a0c  gdb/features/s390-linux32v1.xml
-06d56b61abfe8180349ef1fd79f76789  gdb/features/tic6x-c64x-linux.c
-6cfdba647c94a34da4ea947d9c489a1d  gdb/features/mips-linux.xml
-623f3e4d139ea7a253aec790c0061cd5  gdb/features/mips64-cp0.xml
-e3c92b49c8ce8e51ad54da7c89c8b661  gdb/features/s390-tevx-linux64.c
-f15e21a0158717909ef165d59db2661d  gdb/features/s390-vx-linux64.c
-b971e23ceb41c63d11cf04ae632bc635  gdb/features/s390-te-linux64.c
-fda8c9585de98a74677bb8413ebb6e8e  gdb/features/feature_to_c.sh
-bd9b01fd8e63e71aefa0cdf00d1658ec  gdb/features/s390x-vx-linux64.xml
-7c3d35c3f9ddfd0e46ccfc728fee11e1  gdb/features/mips-cp0.xml
-ea2799ecc74229dddeff537821640c0c  gdb/features/nds32.c
-7c029d3c4f1baac6f1277709f305a256  gdb/features/s390x-linux64.c
-acfe191add0b1d8affe7f075c870c40c  gdb/features/s390-linux32.xml
+9ff1c652a65159efec215934a9d8decc  gdb/features/nds32-core.xml
+4290a68da623c086ef28e51b777b976f  gdb/features/mips64-dsp-linux.xml
+2a062eb69da05c6d35f39eaa40434b36  gdb/features/or1k.xml
+04303ea528fcc57e92172bdffb54db2f  gdb/features/mips64-linux.c
+90dfff393934e84838701c31cfd08782  gdb/features/s390x-te-linux64.c
+6f4dd72f88dc0938536a16bb82c1363e  gdb/features/s390-linux32v1.xml
+82a59e6c519ba682975f90b70e210b36  gdb/features/or1k-core.xml
+203cd4461d585cbd2233ea80c34792fb  gdb/features/mips-linux.xml
+cc1ba7e51a2b6b3edf2d8d6c356e4ad0  gdb/features/or1k.c
+c5080a5f1dff5f55f9e864ada0859a25  gdb/features/mips64-cp0.xml
+f1a24c91ddff1d290ccc2ad940c5ff55  gdb/features/s390-tevx-linux64.c
+b96a8fc159d08f5bb8ae0496e176749d  gdb/features/s390-gs-linux64.c
+62ec120688ea008f3e9837ef8b3360d6  gdb/features/s390-vx-linux64.c
+ac0f32ad7e7965a5ff90ba87f8469bd7  gdb/features/s390-te-linux64.c
+008da9005f8d64842b29218d44fcce5a  gdb/features/feature_to_c.sh
+5c1633494ac7a7b83e544614f600cf07  gdb/features/s390x-gs-linux64.c
+3a55210f693c31cdc8a8c5d3c1358179  gdb/features/s390x-vx-linux64.xml
+62ec574af2bc986d4390f0b683d76d4d  gdb/features/mips-cp0.xml
+8086c125c276185c153a06688ccd71f0  gdb/features/nds32.c
+0a3badabed7e258733913b270b50620c  gdb/features/s390x-linux64.c
+e044681b6d2ba2be049ff61a2b020b2c  gdb/features/s390-linux32.xml
 489546506823db9e7da861401079193c  gdb/features/rs6000/powerpc-860.c
-14bb1e28dadd91026ca26858e81f49c8  gdb/features/rs6000/powerpc-64l.xml
-2a4488247bced87eabd667bf46cc48f6  gdb/features/rs6000/powerpc-isa205-64l.c
-ad5151864acd01de9b5be23cf88f51e4  gdb/features/rs6000/powerpc-isa205-32l.c
-8edbdb796762884f0ecaaa1f5425991c  gdb/features/rs6000/powerpc-e500.xml
-9b2b377f2e6a11f153c0465afe55c1ad  gdb/features/rs6000/powerpc-cell64l.c
-93f1cc3d4919fc9a7132244d73b9a6ae  gdb/features/rs6000/powerpc-e500l.c
-f518478a6cfcd4636666afb53ea72c24  gdb/features/rs6000/powerpc-isa205-vsx32l.c
-927ea85a619fb96777802e72dc4f5e28  gdb/features/rs6000/powerpc-isa205-vsx64l.c
-20761a3f06ada694ad9fc7c3e48482df  gdb/features/rs6000/powerpc-405.xml
-3a3c89d75f9e88bf3d849e50ffe5d74d  gdb/features/rs6000/powerpc-isa205-altivec32l.c
-aafc6363b416129b0d979e33533aecc3  gdb/features/rs6000/powerpc-vsx64.c
+96ff2a84b72c5c9e469ac2ff4d5d9f72  gdb/features/rs6000/powerpc-64l.xml
+18d9026573f79e14e5b727d039665498  gdb/features/rs6000/powerpc-isa205-64l.c
+e7fcfe186aad04edb46a155897d694ac  gdb/features/rs6000/powerpc-isa205-32l.c
+03c10dffeffcd0bd7d8dbaa995e7ecb6  gdb/features/rs6000/powerpc-e500.xml
+980f3c578ff349f4a2410aca8066ec97  gdb/features/rs6000/powerpc-cell64l.c
+0ba581781150c25e0770506f364a3eb7  gdb/features/rs6000/powerpc-e500l.c
+74677c3027fbd89aea1c32060ada5cf1  gdb/features/rs6000/powerpc-isa205-vsx32l.c
+78d0a5031d5e7fe18151395a6eb8838f  gdb/features/rs6000/powerpc-isa205-vsx64l.c
+0add2072ca30ed50200804d7a6bd6c47  gdb/features/rs6000/powerpc-405.xml
+41bedbaeb114aac9f89df1e221335a02  gdb/features/rs6000/powerpc-isa205-altivec32l.c
+96cd445a7a5290975670d909913f61bc  gdb/features/rs6000/powerpc-vsx64.c
 527184503e3102ee93f8d6c93c2121fb  gdb/features/rs6000/powerpc-603.c
 2a6c192d0c833c615bd38b16b779ec29  gdb/features/rs6000/powerpc-602.c
 7ef5e0ad007c62548c651ffe8d100568  gdb/features/rs6000/powerpc-604.c
-6fb409d0cf971ac362b2e2e5674be062  gdb/features/rs6000/powerpc-e500.c
-0d171711c317a3937d10d7e1fdf69009  gdb/features/rs6000/power-vsx.xml
-2b6356780daa05bff35dfba47bed5572  gdb/features/rs6000/powerpc-cell32l.c
-246a52b4ce21d27f241f6801e530131e  gdb/features/rs6000/power-altivec.xml
-037f319b979523bc9ffc2ba9f011afa6  gdb/features/rs6000/powerpc-altivec64.xml
-aa7923b70d15464c3e27f7c093ae6a89  gdb/features/rs6000/powerpc-32.xml
-bac70af7eb047c2241a90bd2e951108e  gdb/features/rs6000/powerpc-403.xml
+356354bfd2f92e2cb90521bfc75e7ecb  gdb/features/rs6000/powerpc-e500.c
+627f48a280ed6f22a26cfa9685188c2e  gdb/features/rs6000/power-vsx.xml
+6802db34b741ed7093f12c40149fed16  gdb/features/rs6000/powerpc-cell32l.c
+7f4c6cfab887f0464aba3e3975beff5a  gdb/features/rs6000/power-altivec.xml
+10c596cf03007e79c2446a1d2d417398  gdb/features/rs6000/powerpc-altivec64.xml
+3bfcd5923bc760bb197d051c11dbc04a  gdb/features/rs6000/powerpc-32.xml
+88ffc55f9442ef125b2f5ed2227963f8  gdb/features/rs6000/powerpc-403.xml
 837f26b35be4ff148223685646c9a443  gdb/features/rs6000/powerpc-403.c
-e1c1c79786d6fc25c8fa7ca63a1697dd  gdb/features/rs6000/powerpc-64.c
-a97a2a03892670fb716dd2e0e6a60cda  gdb/features/rs6000/powerpc-604.xml
+3621fc37f620613eb96a55a639f1042a  gdb/features/rs6000/powerpc-64.c
+fce3b5eaf1c8ecae56e869d6e2dbcc65  gdb/features/rs6000/powerpc-604.xml
 ffe396898dcf30b07e7b257d368ab459  gdb/features/rs6000/powerpc-750.c
 71c4ae000cd6276fd1ea47fa5db29599  gdb/features/rs6000/powerpc-405.c
-7662050b22bc1fb7d479b3715e64ac22  gdb/features/rs6000/power64-core.xml
-fdd547a31ddab7747afdede132cb09ad  gdb/features/rs6000/powerpc-64l.c
-794479ae801340231a0fb9b8f834647a  gdb/features/rs6000/powerpc-vsx64l.c
-6c5bb1fa1f6e58572611a5ba40ea3357  gdb/features/rs6000/powerpc-601.xml
-e33542adea439d4678522b59db680e2e  gdb/features/rs6000/powerpc-isa205-altivec32l.xml
-847f13461f17dd8731dcac00f4b99717  gdb/features/rs6000/power-linux.xml
-c18aece49284fc7ebcef3820d8a3d6c2  gdb/features/rs6000/powerpc-vsx64l.xml
-b3fdad1b4a3531c092442e07c2fb8b97  gdb/features/rs6000/powerpc-860.xml
-5169a8c48bbf05a04e691b0f0ed11d93  gdb/features/rs6000/powerpc-32.c
-d9d8ca42c4aba9325157ba5c49b25dd5  gdb/features/rs6000/powerpc-603.xml
-1b85c6f66e42f44438a1b05772913eb7  gdb/features/rs6000/powerpc-altivec32l.c
-d000ab664fce57ff678dec035750d0f3  gdb/features/rs6000/powerpc-vsx32.xml
-0b461a2ea842d07d7f50e1c95763de7e  gdb/features/rs6000/power64-linux.xml
-08141b030963395931953f07222fab66  gdb/features/rs6000/power-spe.xml
-327fac8f34547b88b9a178551743110d  gdb/features/rs6000/powerpc-vsx32.c
-dad76e6a0d8efce749dd5401fe24f9f3  gdb/features/rs6000/powerpc-vsx32l.xml
-4cb22718c458e2f3400203151ed6c12d  gdb/features/rs6000/powerpc-32l.xml
+032e3029003af2fd1f5d434ab598c45d  gdb/features/rs6000/power64-core.xml
+a3aa570d8f82b8aa965c569a9d0471db  gdb/features/rs6000/powerpc-64l.c
+1346dfdf5ecbaf8f647ad5f180fc0322  gdb/features/rs6000/powerpc-vsx64l.c
+051133991232680b94a123521c171b8f  gdb/features/rs6000/powerpc-601.xml
+14ea744b83e662caacdbb4a05f939200  gdb/features/rs6000/powerpc-isa205-altivec32l.xml
+58f7dc1f4a0f19cc198fe86a56688d6a  gdb/features/rs6000/power-linux.xml
+ce0252cfcf3d69ba2642d33f9cfb3e8f  gdb/features/rs6000/powerpc-vsx64l.xml
+ec2fef69273f0ad11975786fe1da6f6e  gdb/features/rs6000/powerpc-860.xml
+4378a745a706eee69e4848ccb42b1f1d  gdb/features/rs6000/powerpc-32.c
+528d7003822af6e1addbe4b6b7fa150b  gdb/features/rs6000/powerpc-603.xml
+ce92d5b3a3c504017c095c8cf8d7d658  gdb/features/rs6000/powerpc-altivec32l.c
+593147515427492d2582fa450572e42e  gdb/features/rs6000/powerpc-vsx32.xml
+c2f08ad646142b15fcb3b6cbfde43b1f  gdb/features/rs6000/power64-linux.xml
+e99addef0f8ae353bae70670b0d441ff  gdb/features/rs6000/power-spe.xml
+3f7b22919291d5c134c220f0359769b4  gdb/features/rs6000/powerpc-vsx32.c
+1aee8028591d8c3ebf17f79d827824ef  gdb/features/rs6000/powerpc-vsx32l.xml
+4d0d749dd5f95915723ae6b7c93aa54e  gdb/features/rs6000/powerpc-32l.xml
 8f0333b4c07a2caa161fcd0c081e9206  gdb/features/rs6000/powerpc-403gc.c
-73d8b2845c3c0d3d9677641c19972bce  gdb/features/rs6000/powerpc-505.xml
-58f6c094ccadbc110d448cb604489b01  gdb/features/rs6000/powerpc-altivec32.xml
-178608aa0cc48149b36eada20084acb3  gdb/features/rs6000/power-fpu.xml
-44f11f78fdbc412522795dc8ebe9c924  gdb/features/rs6000/powerpc-750.xml
-4729b2e5c3a32b433c21fe082ffe71b7  gdb/features/rs6000/rs6000.c
-2271b63a9e42d9e8f87cba1c75e2449a  gdb/features/rs6000/powerpc-e500l.xml
-1a54727ac5bb85ed34bc8c724521b8be  gdb/features/rs6000/power-oea.xml
-cd4cadda547d5ce2e51f6c48a6b8e644  gdb/features/rs6000/power-fpu-isa205.xml
-26b785cebcd65b56a8b53eefaf46d8bd  gdb/features/rs6000/powerpc-isa205-vsx32l.xml
-87cbf61fa90dc6ea531316e97b61829e  gdb/features/rs6000/powerpc-602.xml
-aacacad0c8b78e90f54cffda755dc0d3  gdb/features/rs6000/powerpc-isa205-vsx64l.xml
-707ae3d428b7d85d94ba28c0cdcfa74f  gdb/features/rs6000/powerpc-altivec64l.c
-09f097b90025e489c5dbcff835020558  gdb/features/rs6000/powerpc-isa205-altivec64l.xml
-f918a1740bb7f3ee024c759825922c27  gdb/features/rs6000/powerpc-7400.xml
-5da434506cd2940e42067879963c35c8  gdb/features/rs6000/powerpc-altivec32.c
-366029f9fe89d9cb758c7e58f3642c51  gdb/features/rs6000/powerpc-vsx64.xml
-6fe483562004928c4d9d631a2103a9bb  gdb/features/rs6000/rs6000.xml
-15845ddeaaba1cc51a3e57f18f865b59  gdb/features/rs6000/powerpc-64.xml
+c4a03b85a3701558d80642892939f8b6  gdb/features/rs6000/powerpc-505.xml
+de44ddaa3187f3e04aff8b7c6e315f38  gdb/features/rs6000/powerpc-altivec32.xml
+1b1c0e7366869430fa6a563dda308c55  gdb/features/rs6000/power-fpu.xml
+437d44862bbb136f72fce3c5b7b0451f  gdb/features/rs6000/powerpc-750.xml
+a2e72422b410fdd978c3d9b71cce2335  gdb/features/rs6000/rs6000.c
+e695824527b6b97fc437575df7e326fa  gdb/features/rs6000/powerpc-e500l.xml
+b6f14306711cd7f1d8039e60eebd439a  gdb/features/rs6000/power-oea.xml
+88c0402d36d6a2ed89311af86d55fd9c  gdb/features/rs6000/power-fpu-isa205.xml
+75b905fb9c6bf2ac26c74a219af2cdbe  gdb/features/rs6000/powerpc-isa205-vsx32l.xml
+eccb64d6c4647216f84081ea80755824  gdb/features/rs6000/powerpc-602.xml
+8c7fd938065cc08583f4013f882fb0d8  gdb/features/rs6000/powerpc-isa205-vsx64l.xml
+a121263e41ae69b99095fef00495d233  gdb/features/rs6000/powerpc-altivec64l.c
+7af26c54c0bc85e654d76742359f9a70  gdb/features/rs6000/powerpc-isa205-altivec64l.xml
+38f896b06291914cc8e5481ce700ff5f  gdb/features/rs6000/powerpc-7400.xml
+966d5df5526968a1c3d39beabf3e2aad  gdb/features/rs6000/powerpc-altivec32.c
+7c0bb3455f6b1ab6981e69865cfb192a  gdb/features/rs6000/powerpc-vsx64.xml
+a8d9e64769e91fcdefd01ee87b665b91  gdb/features/rs6000/rs6000.xml
+f0a802bcc67712c338735e5b54a2ef1a  gdb/features/rs6000/powerpc-64.xml
 bd6e3d285a7ff47662cb057b218411d2  gdb/features/rs6000/powerpc-505.c
-22da695fc397f88a5c983e98e5ebbc6d  gdb/features/rs6000/powerpc-isa205-32l.xml
-d42144a5987686d7ec80db3fb7e61f3c  gdb/features/rs6000/powerpc-vsx32l.c
-23cacba658ca32dd1401dd916e3fe60e  gdb/features/rs6000/powerpc-403gc.xml
-77cc58beab73dbb0a8419d2abb291b30  gdb/features/rs6000/powerpc-cell64l.xml
+ac10be2afc0ea4c5e99c9ee1e04f2f5e  gdb/features/rs6000/powerpc-isa205-32l.xml
+5eb4b85d8597a982f401aca5fa491468  gdb/features/rs6000/powerpc-vsx32l.c
+64639d359f73aa307a062dc021b6a268  gdb/features/rs6000/powerpc-403gc.xml
+4f601eb69e0a3f578b25aece21ebc18b  gdb/features/rs6000/powerpc-cell64l.xml
 d2c5ea8707d6e8a8aad47cdc24952ca0  gdb/features/rs6000/powerpc-601.c
-3a6c5e7ad56f02573495ba2aa2e3d5e9  gdb/features/rs6000/powerpc-altivec64.c
-18e3a70cd370c011b30c3c767ab04f13  gdb/features/rs6000/powerpc-isa205-altivec64l.c
-7add9d5ae8b34f35fb2ce15bb62e0d07  gdb/features/rs6000/powerpc-altivec64l.xml
-05b0486ab80847de0b8f434d9ea3bcbc  gdb/features/rs6000/powerpc-cell32l.xml
-c22eb2bbf41fbc1a6c6434b7a27b8106  gdb/features/rs6000/powerpc-7400.c
-bc27588de604d22152e87d1d4603bc75  gdb/features/rs6000/power-core.xml
-4bfb7d022fa524eaad86a2855b1fbb34  gdb/features/rs6000/powerpc-altivec32l.xml
-3c7db472e3edc63a5fdd57a596041481  gdb/features/rs6000/powerpc-32l.c
-cd29d59830af526f5ae0e969d9bc42c1  gdb/features/rs6000/powerpc-isa205-64l.xml
-e2e9bc66aaf204434b472f0501813af4  gdb/features/arm/arm-with-m.c
-397e1012d10ba2a0589924fcd89dff2d  gdb/features/arm/xscale-iwmmxt.xml
-4cbbc6074ef4e7896b31baddbed61cd4  gdb/features/arm/arm-with-iwmmxt.xml
-d097e0299799b008461129340478d0fc  gdb/features/arm/arm-with-vfpv3.xml
-44fa197f61f0e50fa5d0f4d1671426fe  gdb/features/arm/arm-with-iwmmxt.c
-0b8f47081fd5c54ff061acc46e780a0f  gdb/features/arm/arm-with-neon.c
-6458c16f177c1de39a02e3f61d88eea2  gdb/features/arm/arm-with-vfpv2.xml
-4472686fdd356fed63eb11175c6a8e6e  gdb/features/arm/arm-fpa.xml
-0edd45e6fd49cbd6d7e4b28893b55609  gdb/features/arm/arm-with-m-vfp-d16.c
-d8c20bca82ef27d10c9e581a69341e5a  gdb/features/arm/arm-with-vfpv3.c
-8d0c3c481e630a2fd8e6366d1e90c71a  gdb/features/arm/arm-with-neon.xml
-30b9bffa216d16219468383753d51d8d  gdb/features/arm/arm-core.xml
-dd035b4b782bcfb61102040cc25f240c  gdb/features/arm/arm-with-m-fpa-layout.xml
-0a8b434053b72d7393a7e7ec648f1b9c  gdb/features/arm/arm-with-m-fpa-layout.c
-1a8fec026992e0b5555bb7121d232ba3  gdb/features/arm/arm-vfpv2.xml
-49326c77c77fc2ce313449e00d7e33a9  gdb/features/arm/arm-with-vfpv2.c
-19ee8629b115d6feb9aee881b46adea7  gdb/features/arm/arm-vfpv3.xml
-fe566a668958920f05f2d2b9a43b70f3  gdb/features/arm/arm-m-profile.xml
-55df77ccdc557ae696e112f2e06e35f1  gdb/features/arm/arm-with-m.xml
-aead83bdcd8897370697b01b0bb577b2  gdb/features/arm/arm-with-m-vfp-d16.xml
-f43672c43a47c85adfabd9657ec0a10c  gdb/features/i386/amd64-avx-avx512.c
-14733669aa94379a9fe7a460a2a1b348  gdb/features/i386/32bit-pkeys.xml
-fc2ba8a5fa7c251b9243ee67c336b511  gdb/features/i386/x32-avx-avx512.c
-22e3492e4697208e3d11c0da2de60820  gdb/features/i386/i386-mmx-linux.c
-e55ebd2a32b26b12b370e3bb7019b9b3  gdb/features/i386/i386-avx-mpx-linux.c
-17acc26453549d474dfe24b05f5cccc3  gdb/features/i386/amd64-mpx.c
-5b0cfe645a1bc7208b952d48beab233c  gdb/features/i386/x32-avx-linux.c
-7587c7f562b3dc81bcfec0d3ab750160  gdb/features/i386/x32.c
-02d54238a6fd2b9ec563f6562d6fd32c  gdb/features/i386/x32.xml
-6dcd98b816761d55fdb657f7d890623d  gdb/features/i386/amd64-avx.xml
-4b565501567fc2f7f7ceacd5e5fae91b  gdb/features/i386/i386-avx.c
-e10b8595f300f56b36983803305f1ac7  gdb/features/i386/32bit-avx512.xml
-ca4799c258f2e863e3fb023086475ec2  gdb/features/i386/amd64-mpx.xml
-7d75f446a080aef7944be84f720d8f3d  gdb/features/i386/x32-avx.c
-2032dee1e5b8e316108c8be326ff6b51  gdb/features/i386/amd64-avx-mpx-avx512-pku-linux.c
-6014d598ecaa9cb15b0d23a354d5c957  gdb/features/i386/i386-mmx.c
-fc898f376eca019f9c1c764ad93271bf  gdb/features/i386/i386.xml
-1eae06094cce7ba476f5272c5ad8b19a  gdb/features/i386/x32-avx-avx512-linux.c
-2c4803815be5df24b90f4e61c9af348b  gdb/features/i386/i386-linux.c
-1f5cd19977c91720e0824ef777704649  gdb/features/i386/amd64.c
-4c2fb1e78b455bce3e6f8959ff81eb99  gdb/features/i386/amd64-avx-mpx-linux.xml
-fb7659dffbf434107e6c051444453393  gdb/features/i386/i386.c
-aab8c9741ba14e82bcf8cbfa6d64ee59  gdb/features/i386/amd64-avx-mpx.c
-6abdc82618d54fcc1849401bbfba1a3c  gdb/features/i386/64bit-core.xml
-461d4208343365b18087c2c7fd1f6876  gdb/features/i386/64bit-segments.xml
-8cb5d4d27814835508077fbcf48df74e  gdb/features/i386/i386-avx-avx512.xml
-15a0e55f6b5f05630a281bd79a14b812  gdb/features/i386/amd64-avx-avx512.xml
-62f41e26fe0ec84eb7144402cd387cbc  gdb/features/i386/i386-avx-avx512-linux.c
-e15b04feb36c8497d3eb179b14fa3eaf  gdb/features/i386/amd64-linux.xml
-c13ccee57a2c9c37ac3c985b3454086d  gdb/features/i386/i386-mpx-linux.xml
-086743dc10910a06b0533421a60d8e5b  gdb/features/i386/amd64-avx.c
-ce9a4055e94e15a9dcd3ad3bcdc3c7ec  gdb/features/i386/i386-mmx-linux.xml
-1fa2d3a0fd24e24d29511c3cb022c88f  gdb/features/i386/i386-avx-mpx-avx512-pku-linux.xml
-4719a977ed6d9c97b864d2c4e02ea65c  gdb/features/i386/64bit-linux.xml
-658e151deff0843060eb7e71d560b502  gdb/features/i386/i386-mpx-linux.c
-6b9ccca39c9381db8438dceeeab45017  gdb/features/i386/32bit-sse.xml
-887647a8503c5560408b70efc851c0ce  gdb/features/i386/64bit-mpx.xml
-7994fb9b7d2f96374dc45c8da34e327a  gdb/features/i386/amd64-avx-avx512-linux.c
-606dcd1d0bf04d460756334bad85bda6  gdb/features/i386/i386-avx-avx512.c
-727d0823d693bd78f10fed710f0ba9b8  gdb/features/i386/amd64-avx-mpx-linux.c
-ebf1945e85003edce3a307648e606408  gdb/features/i386/amd64.xml
-030272bb08d40e4e97c1561f3ba55050  gdb/features/i386/x32-avx.xml
-6367de05e6a315f30c0b6b132c67e583  gdb/features/i386/x32-core.xml
-d7e9e9c4e941d7abdddc791a901a7518  gdb/features/i386/i386-avx-avx512-linux.xml
-120c808cabfe0a9e72d1bbae6138be2f  gdb/features/i386/amd64-avx-linux.c
-acccf7fabcd245880f9caa561b3a9e8b  gdb/features/i386/i386-avx-mpx.xml
-44a8ebb8a83deea688727ec6953c3218  gdb/features/i386/amd64-avx-mpx-avx512-pku.c
-0493481aa323243b9e246f750200cd38  gdb/features/i386/i386-avx-mpx-avx512-pku-linux.c
-59c3a6f98d0e8df091b34bf703c57dce  gdb/features/i386/amd64-mpx-linux.c
-f8e2b755d040a01c9fb3c55be88d541c  gdb/features/i386/i386-mmx.xml
-78a1bf576f36678647565d65d87e3ed9  gdb/features/i386/amd64-avx-mpx.xml
-72d2a4f59c1d25889a1ff32987b8a24d  gdb/features/i386/x32-linux.xml
-6d07212fcfc70a7e4221d2a980ad8b35  gdb/features/i386/i386-mpx.c
-0ae9b1fcf4862057cca5ef6bc4529779  gdb/features/i386/amd64-mpx-linux.xml
-993d509f345ea721c202b29efaaba953  gdb/features/i386/i386-avx-mpx-linux.xml
-82ca5d77eee0271442a6e48427cafea3  gdb/features/i386/i386-avx.xml
-4dc6f46c2d3b6de7e81939203891d6d7  gdb/features/i386/i386-avx-mpx.c
-7efa7eec7d276c35459ed82ac31f4fd8  gdb/features/i386/i386-mpx.xml
-14b6d00f63ea308f1330b2d11776b9bf  gdb/features/i386/amd64-avx-mpx-avx512-pku-linux.xml
-fadf4313131223b3c308fff3b15fe841  gdb/features/i386/32bit-core.xml
-80c4038e9684acdccbf930976fbd2092  gdb/features/i386/32bit-avx.xml
-2520fb8c50a2f05aafab54ff2a1fd8b8  gdb/features/i386/x32-avx-avx512.xml
-f8275eca6ad7e41b5cc9fee12c986c09  gdb/features/i386/amd64-avx-linux.xml
-4b7671de63e26e55f2376e41c70d85a9  gdb/features/i386/64bit-sse.xml
-bf61ba8cdcc0cb16265a6cb78b97d82a  gdb/features/i386/i386-avx-linux.xml
-6e0fd4ee5cff7570492adc3e6f8ed2e9  gdb/features/i386/32bit-linux.xml
-b56efe51691472a39a89bb7c0e7e5e0c  gdb/features/i386/x32-avx-linux.xml
-4164ea566580e8e7f610d7a98c5f5363  gdb/features/i386/64bit-avx.xml
-5d7d8ac574a9aa889a9f89206e427a6f  gdb/features/i386/amd64-avx-avx512-linux.xml
-2d8eb118ff10df176885aacda7f7d8ef  gdb/features/i386/i386-avx-mpx-avx512-pku.c
-42e1c3138a38b6dfc3d126cd1ea34287  gdb/features/i386/i386-avx-mpx-avx512-pku.xml
-049b9d45cb3758a776345e35cc8341c0  gdb/features/i386/i386-avx-linux.c
-b998a8f5f5d35befc3bf667f7dde5e34  gdb/features/i386/amd64-linux.c
-74a75ab1c91835b68b97134304ce0c55  gdb/features/i386/32bit-mpx.xml
-81447a1e300d07ae16404d2a710b8e57  gdb/features/i386/i386-linux.xml
-de32669c1f63a0386741695afaee4313  gdb/features/i386/64bit-avx512.xml
-4f8936afffa4a51e0a57316993e6af70  gdb/features/i386/x32-avx-avx512-linux.xml
-e9eebecdcea700ee6486b4bc4fe85968  gdb/features/i386/amd64-avx-mpx-avx512-pku.xml
-fafb68e61eddb3907001e9cd5fbd70b0  gdb/features/i386/x32-linux.c
-14733669aa94379a9fe7a460a2a1b348  gdb/features/i386/64bit-pkeys.xml
-a9133d68af229dba780dfa86099ba240  gdb/features/s390-te-linux64.xml
-c71e87a7a4ba5a42741a55a40d6dd696  gdb/features/s390-linux32v2.xml
-61e1e7da2ad039f1af3895a5d61ef80b  gdb/features/s390-tdb.xml
-41b40b6328a86bf2acc70b3d1a367457  gdb/features/mips64-dsp-linux.c
-417a2d01af365745772452c543bd2d30  gdb/features/mips-dsp-linux.c
-a5163a89cd6efdd3723dac6b8bbaad46  gdb/features/nds32-system.xml
+fd5408b63b9dfcf28cec25cff29615fd  gdb/features/rs6000/powerpc-altivec64.c
+0f8fc527a93c3733755b63a2764fc844  gdb/features/rs6000/powerpc-isa205-altivec64l.c
+1837476389ec759f7f9cf930ef9d90cf  gdb/features/rs6000/powerpc-altivec64l.xml
+9382e8ba9dd040fde2739f3fbacd782b  gdb/features/rs6000/powerpc-cell32l.xml
+9203f1ea7d43f65e52f5ed59e671410f  gdb/features/rs6000/powerpc-7400.c
+62ab4cf3440c696e5d47b3cc54a612f4  gdb/features/rs6000/power-core.xml
+781b02c4cb19c92cec9f3d7880353707  gdb/features/rs6000/powerpc-altivec32l.xml
+9ca55da0d223e5f0fe96f8bba2ecb713  gdb/features/rs6000/powerpc-32l.c
+d40d6be53d479239a638961b7bf41e4b  gdb/features/rs6000/powerpc-isa205-64l.xml
+5ccd353d838eb73f4e2b418a7d197b38  gdb/features/arm/arm-with-m.c
+787bff6201caafff52fe89eee74db508  gdb/features/arm/xscale-iwmmxt.xml
+e25ea25d1ee891972d1b80a7ce8c0162  gdb/features/arm/arm-with-iwmmxt.xml
+6fd2f6f30a7ebe3609545f3b05c7b84b  gdb/features/arm/arm-with-vfpv3.xml
+21dd14cd3cc5b697eaa29f421b56da28  gdb/features/arm/arm-with-iwmmxt.c
+0b93609ce2c871dd1bcf26ca6f5738ce  gdb/features/arm/arm-with-neon.c
+5e7631f4265a3ad65bb834e947b43f4e  gdb/features/arm/arm-with-vfpv2.xml
+b3e6929ae993ebc96a077a48fb1b4909  gdb/features/arm/arm-fpa.xml
+64a20d90214c7aac71edd602d8edce95  gdb/features/arm/arm-with-m-vfp-d16.c
+7330c2972a9b5090f32f8e5db230ba6c  gdb/features/arm/arm-with-vfpv3.c
+dd80f84809a3e3428ff783ab18c2a944  gdb/features/arm/arm-with-neon.xml
+8518ef0886186fa71a4a1145ee1aa7e2  gdb/features/arm/arm-core.xml
+0830bc905205492973b6c47e6dee9c4e  gdb/features/arm/arm-with-m-fpa-layout.xml
+bd75efb432403ff0c9a6bba36d86e54f  gdb/features/arm/arm-with-m-fpa-layout.c
+3229d20efcb507d436862c1397c2550e  gdb/features/arm/arm-vfpv2.xml
+b6a8c9cd9e1f0a37b2f3ca295c938f72  gdb/features/arm/arm-with-vfpv2.c
+b24353f6a9fb67508a7951c316df56f6  gdb/features/arm/arm-vfpv3.xml
+ecff902ba97e9e038ad273e3574eebeb  gdb/features/arm/arm-m-profile.xml
+48c444f2f8544f810b4ad888aa4a7b68  gdb/features/arm/arm-with-m.xml
+52f3d8110a53b4bb14f4f5a8fd390059  gdb/features/arm/arm-with-m-vfp-d16.xml
+09b7932eabc37480fc2e8f9f3a26f539  gdb/features/tic6x-c6xp.c
+24b12df9f8049b2cbdb98b5891de1206  gdb/features/i386/32bit-avx.c
+da526f7b7a4aa7c6b7c659f5b4b9b213  gdb/features/i386/32bit-pkeys.xml
+b1362e7e285d3d6f9536b102c3ac066e  gdb/features/i386/64bit-core.c
+a199f4009e6293270d7e90fc7b83f7e8  gdb/features/i386/amd64-avx.xml
+559df26f5008d2754201d22bc6e998db  gdb/features/i386/x32-core.c
+2aa99faad8895f49c3c78e34dca8cbb0  gdb/features/i386/32bit-avx512.xml
+f485bd65ac820c15d5f857bd29352d57  gdb/features/i386/amd64-mpx.xml
+c08a2d6ce3a07bcf847718d60798c04b  gdb/features/i386/i386.xml
+c62b2dcfd78adce67256bb3e83cc80c4  gdb/features/i386/64bit-avx.c
+1f1dcd054e2da1cfcbd33c74fdd53afe  gdb/features/i386/amd64-avx-mpx-linux.xml
+8faafa40a5aa03bf284f490c55ac83be  gdb/features/i386/32bit-core.c
+93606efab5ec74af14604e45a3c165c6  gdb/features/i386/64bit-core.xml
+ff29ab4e0fec4a4dd371eaf2ec42bd39  gdb/features/i386/64bit-segments.xml
+2cfa6c4567003bbe55daf9fef8bfa3a0  gdb/features/i386/i386-avx-avx512.xml
+d87a24aecea9126f62f7b5e1d5369800  gdb/features/i386/amd64-avx-avx512.xml
+4b7ea874c922fc76ea1087564ac9b01c  gdb/features/i386/amd64-linux.xml
+fb7e72fbf80a89f84523d206004c7037  gdb/features/i386/i386-mpx-linux.xml
+a63813a3ffabd307de6a561362f6e7fa  gdb/features/i386/64bit-segments.c
+3f5a5201e07243c5dcebef8d5512cf2b  gdb/features/i386/i386-mmx-linux.xml
+0aaf4f166dcb3b2aa6448b071886d068  gdb/features/i386/i386-avx-mpx-avx512-pku-linux.xml
+493e9debe1f7ced598c8395e41bf5adb  gdb/features/i386/64bit-linux.xml
+d74ad398fabcbc74130e1cbb6f8800f9  gdb/features/i386/64bit-avx512.c
+582597861b7fc2cb9862a6227e954d40  gdb/features/i386/64bit-mpx.c
+827f49b43267bcd8e697bea7b0e3c5a1  gdb/features/i386/32bit-sse.xml
+685df338d776ad096e6f8dfb409c148e  gdb/features/i386/64bit-mpx.xml
+87c466026a2ab19b01ddbab4c002a893  gdb/features/i386/amd64.xml
+5493793301e38490076c8673ace56af5  gdb/features/i386/x32-core.xml
+1f2cab96d95828dbf9dea47bb6dd1b7d  gdb/features/i386/i386-avx-avx512-linux.xml
+aac7ea609de56fe12c1fee84d24dd19f  gdb/features/i386/i386-avx-mpx.xml
+f721e33b5eabcca87cdabea231bc252a  gdb/features/i386/32bit-avx512.c
+e14948d621818fabaa08551cafe6dfc0  gdb/features/i386/64bit-sse.c
+69e45a06a5a3bd9d6f236362db0f56e3  gdb/features/i386/32bit-mpx.c
+69c6320811399c0607d4fe3c7fd69cf4  gdb/features/i386/i386-mmx.xml
+48ed262431b3096355516033877d1813  gdb/features/i386/amd64-avx-mpx.xml
+35fc5ba5329215f2a2664306f2ccf417  gdb/features/i386/x32-linux.xml
+953f14deda9347d5fd3358b2577b6053  gdb/features/i386/32bit-pkeys.c
+4f01e56fbc33b16cd665645acbdb35ae  gdb/features/i386/32bit-sse.c
+42361e49d80c0bd07e62ca486745cf80  gdb/features/i386/amd64-mpx-linux.xml
+5ef3da6dd0673ff183638a7add041d29  gdb/features/i386/i386-avx-mpx-linux.xml
+867ff723318f9e6926bd4db0a63b941a  gdb/features/i386/i386-avx.xml
+02fba482218b83804a0b93488521b42d  gdb/features/i386/i386-mpx.xml
+b70dc9f7540b5f7bdb963064c97aba28  gdb/features/i386/amd64-avx-mpx-avx512-pku-linux.xml
+4ae6c3eceeb7aabc1a2071f02321e77a  gdb/features/i386/32bit-core.xml
+3119d0f85703d803756796febc9fcac8  gdb/features/i386/32bit-avx.xml
+d8f0629a1539ced6b346542fcdd725c8  gdb/features/i386/32bit-linux.c
+8137ff7cb61e5d6447a5a2381527ed49  gdb/features/i386/amd64-avx-linux.xml
+c0241a8a106ebcd8d165eeace97d85e2  gdb/features/i386/64bit-sse.xml
+98aa37a9bf07bc0f6d1fe3ff60fb1c2b  gdb/features/i386/i386-avx-linux.xml
+f81c956a08a2c4a59a4f1c8eaab3f71a  gdb/features/i386/64bit-pkeys.c
+bbbf2ccaecfc26d34dcb7d62b1370eb3  gdb/features/i386/64bit-linux.c
+45d0153af0b1151cf4d1ec43fee0ae82  gdb/features/i386/32bit-linux.xml
+f49517973974f5f6b7deba1c272494e6  gdb/features/i386/x32-avx-linux.xml
+8bacaaac8b1060945be8c9ff65f04e89  gdb/features/i386/64bit-avx.xml
+a6a2fea733e1b0bab7c8a3ef57920029  gdb/features/i386/amd64-avx-avx512-linux.xml
+b0b1fd6091aea6d282a67bbb20b4180f  gdb/features/i386/i386-avx-mpx-avx512-pku.xml
+5003066550fb03ce64dd0b3aed2efc44  gdb/features/i386/32bit-mpx.xml
+a42391bdd399c041e9585743b01e0c62  gdb/features/i386/i386-linux.xml
+d9542bb652b4f1dec15a977d9e9b5209  gdb/features/i386/64bit-avx512.xml
+ea842e97e6edfbcf0e3a7eed82783089  gdb/features/i386/x32-avx-avx512-linux.xml
+a660a6e6878c65a02ee046ce62ffcf2d  gdb/features/i386/amd64-avx-mpx-avx512-pku.xml
+da526f7b7a4aa7c6b7c659f5b4b9b213  gdb/features/i386/64bit-pkeys.xml
+4e22672526ea2757665d9d28ed24e790  gdb/features/s390-te-linux64.xml
+dd9c1e501987940d66c5ccb9ca89d0df  gdb/features/s390-linux32v2.xml
+e5b6677d548cd5f29e3b680977749ed9  gdb/features/s390-tdb.xml
+84c3314740b4d529b0e61cefb0e594cb  gdb/features/mips64-dsp-linux.c
+6fba4a9f72b41960ca5f9258b38156e5  gdb/features/s390-gsbc.xml
+320892bbd4af6a124f32ef12b8d4e2e6  gdb/features/mips-dsp-linux.c
+b2e46055646e4d5fe71ff223a047db22  gdb/features/s390x-gs-linux64.xml
+5979d69d6a86f748e72c3abe08a229ab  gdb/features/nds32-system.xml
 a74f670e27b892b83c13054809c82473  gdb/features/sort-regs.xsl
-935ce55555e4b423f5d52004a6854ceb  gdb/features/aarch64.xml
-5f04ea42da8c66d8af773c71b5c1161c  gdb/features/microblaze.xml
-d8bcd014db604b2089f82d3e77cb07d8  gdb/features/nds32.xml
-7f829c25b2e6de6eeb024f7d6dc5e78a  gdb/features/aarch64-fpu.xml
+f1caf8ac0e2aa57599bf1b4defc20598  gdb/features/s390-gs-linux64.xml
+095f74d88f176f65867d1ef5594425bb  gdb/features/aarch64.xml
+e66fe88459aaf56adf4a672711545d54  gdb/features/aarch64-core.c
+12c62d948286a2c80d4ce7f494bc71f7  gdb/features/microblaze.xml
+ddb0e6961a8bafbe81ace0ae4c624062  gdb/features/nds32.xml
+6c760553daeaba1494447b8f5f1122ed  gdb/features/aarch64-fpu.xml
 9d9baf6ee79baadc2a660370cb2c1afc  gdb/gdb_indent.sh
-59d817d7ec2142c8b910e4aee9f78705  gdb/infcmd.c
-25cf099cbdb647a5887a414a29b5ae54  gdb/valprint.c
-9ac0bc0948f70f668312ad7de08c23e7  gdb/solib-target.c
-82a179947c4391b4dc5f6a5f194c8f92  gdb/tilegx-tdep.c
-c3e235b0d685e9f002f78b6587525cd6  gdb/c-lang.h
-459a5b7b797c1a2dbfbdb71f6070c30b  gdb/breakpoint.c
-1d2f1bb4f0e8a39b49a8286d25b4c3d7  gdb/block.h
-a1a54888ca06da78af56875d6016478e  gdb/ax-gdb.c
-92ebeb99b04ee7fbb869a6f5bece157d  gdb/i386-obsd-nat.c
-81f7c326b5616bf821a7a59386085c53  gdb/selftest-arch.h
-bd129d331868dcae2c40ac3085365718  gdb/prologue-value.h
-f018bbd6836561b2443238df1599358a  gdb/auto-load.h
-49a009e36c734bbcb7c771e1301cd216  gdb/maint.c
-682115f113a6373a7a5cc2dd4d339284  gdb/x86-bsd-nat.h
-0c837c7c762611867ebe84397010917e  gdb/moxie-tdep.c
-95d874d05946271dd76763419c35e113  gdb/gdbtypes.c
-838baf40bf4188f9ce1211e806afddae  gdb/ppc-obsd-nat.c
-a30bdba2ad0bc85fcfd933b35c77665c  gdb/mips-nbsd-nat.c
-304abba086664b86d899df74efd6e2d7  gdb/elfread.c
-ffbb473d54d1773314c150aab5857768  gdb/aarch64-linux-nat.c
-099fccdeba40ebc4fe822f6c8d80fcda  gdb/gdb_obstack.c
-5d03cd011c89909a8bb75af82bc533a5  gdb/inflow.c
-46b38c6ba0145ede12a83f8e6ca88621  gdb/spu-linux-nat.c
-0f696717c779f6201f1c28faed46545b  gdb/bfin-tdep.c
-5ab07569ab323e8a46ed9d0d353d2560  gdb/linux-tdep.h
-c4225e11ab05a31933cf1d2ba1e8f837  gdb/i387-tdep.h
-35666bb6885e4b6245d3ce632114d6f1  gdb/gcore
-302e56a9406b3e9b37066396d107ab80  gdb/gcore.h
-3b34072be5068cbdd3b5d17a006c0fb5  gdb/arm-linux-tdep.c
-21f1808e066e60823c91d7c5779f2cc0  gdb/gdb_usleep.c
-e8207f42991ff06522fb22be11cee2cd  gdb/hppa-tdep.h
-665c23bf6bf939a321be059f9c1ee6ed  gdb/completer.c
-ab615f98d111f652e80fc6946adaa432  gdb/solib-spu.c
-df366370e852a767f0da5026d3980983  gdb/dwarf2expr.c
-53abd9acaeb9110bec9da5b6e5d159a2  gdb/vax-bsd-nat.c
-9531d18fc8d3c27ac5a94aa09327521a  gdb/cp-name-parser.y
-6fe259fa18ae54633b99bde9efaf2727  gdb/mingw-hdep.c
-adb6071e6b81e04ff7414de2a8ebdbe2  gdb/vax-nbsd-tdep.c
-bef65483f017ec543879bbbaa9517968  gdb/sh64-tdep.c
+11ff769491d33213b5ed1eb9d3ff4906  gdb/infcmd.c
+5854d32b6a4c7d171f4c8cfde63e28b8  gdb/valprint.c
+73d298f6ab015b3839330b59b3bad80d  gdb/solib-target.c
+a143244b01fe5f2fd8a35b7145d92a2b  gdb/tilegx-tdep.c
+4fefb6b1ad9cdf0bbc90ba10daede2ff  gdb/c-lang.h
+9150752eb0cd9e8d7ce49c2b194b75b2  gdb/breakpoint.c
+30e36d0136fd98d8aacfc29e3d11577b  gdb/block.h
+d6366b62963b8bc762f02959f4bbafde  gdb/ax-gdb.c
+06f5d314d21469c070bcbc7db74f468e  gdb/i386-obsd-nat.c
+142653f491ffb49b8e8a205903fc3a11  gdb/selftest-arch.h
+2f3a431ad6de3bffcc67339cc73603c2  gdb/prologue-value.h
+36855099488fa285fa16e3908304f11a  gdb/auto-load.h
+623678e84535132ed4b93d6142a93f49  gdb/maint.c
+2318d021a7a20073dfc3fc0697f52788  gdb/x86-bsd-nat.h
+a45c4d6ff275c639333aafd4d207ba9a  gdb/moxie-tdep.c
+8b6dc3777d51561e85834c1ea83cb1cf  gdb/gdbtypes.c
+25556c977f675bb7650212870e1b5a45  gdb/ppc-obsd-nat.c
+4a5c1c02ed03d03cf71dc2ad24357c0c  gdb/mips-nbsd-nat.c
+6bcde19a402806c7ac139c6a298c3ed9  gdb/elfread.c
+e07e92b949eca957350cf1830080e060  gdb/aarch64-linux-nat.c
+117490adf3ca40285edf884c23cd9590  gdb/gdb_obstack.c
+0c7bc96e7f1b14efdbd05e84ff4f608f  gdb/inflow.c
+ebcb01a5231bb7cdf3d6e8e450ae597c  gdb/spu-linux-nat.c
+09a0ddf97e8fa351d2ad4c7fb79b0857  gdb/bfin-tdep.c
+6c45598e926a24a8e9b0294cdad56b2a  gdb/linux-tdep.h
+41514d53f9e517f308f9cb490e417905  gdb/i387-tdep.h
+0a5612c703ad249deedb7e76a5efc436  gdb/gcore
+0b0cadc8256edb51fcaffab84440a35e  gdb/gcore.h
+820e04e9e162cb03f75770d1c4dc3180  gdb/arm-linux-tdep.c
+ef4a97e4250fa284ff01db90586f3bc4  gdb/gdb_usleep.c
+c34f20e4031305e1e24cf7fca1154f01  gdb/hppa-tdep.h
+be00c97a9c2d442902520830d1e98a1b  gdb/completer.c
+23245425c5aed77b29c71b35b7d8d11d  gdb/solib-spu.c
+c821e29ab79056b33cfdb7261a2d22fa  gdb/dwarf2expr.c
+96ebe364c99d5ea4743d704cc85af11b  gdb/vax-bsd-nat.c
+5cbb1c12b40240095bc81c6975c0a936  gdb/cp-name-parser.y
+d7de69b94b0271e7d0cd1b552630892f  gdb/ChangeLog-2017
+dec6e56825bbce0fe617e1fd3e011a82  gdb/mingw-hdep.c
+9606f194dc537bec1b397a449aec1e65  gdb/vax-nbsd-tdep.c
+0cc8fc41e22a0d8fb8f6441494eedb65  gdb/sh64-tdep.c
 5ec8a13039f178b86804ff04e7cbdf99  gdb/ChangeLog-1998
-d34e3109d455d1b3cd0319aa98696ca4  gdb/doublest.h
-eb86918a7ae11ae51feed876fd3f6824  gdb/nios2-tdep.h
-638481b25a4767f2d3411fd8cc2a9bfd  gdb/i386-linux-tdep.c
-419918a9bbbc277cbeb7787496a440d9  gdb/mips-linux-tdep.c
-9442d3ed08a0a350fda1eff0eb77bac6  gdb/inf-ptrace.c
-4e21e881366a53bcd857aff9810f8411  gdb/amd64-linux-nat.c
-82d7bf9934113eb8fba7a141c499ee30  gdb/hppa-obsd-tdep.c
-482855c1c7558f0a59973263f8515f14  gdb/osdata.c
-a5ba3f81cf4cbef0e16bdc788b58000b  gdb/regcache.h
-b8c09cb075fac401be4e4996cfab114f  gdb/amd64-linux-tdep.h
-61273765fd40faee4dc206b752778625  gdb/sparc-obsd-tdep.c
+067f3eb153a504d0ae81682f586cf3b5  gdb/aarch64-fbsd-tdep.h
+62ca5b5dd24ff3905ed93fb37c29a2e9  gdb/nios2-tdep.h
+6bd939787d852a50f3d949931a190222  gdb/i386-linux-tdep.c
+b6843fd58887f019083c5fb279c1b7ff  gdb/mips-linux-tdep.c
+2acd9b625cb1206adfbddc4cb64cc945  gdb/inf-ptrace.c
+37fbffcb8755e60db870415ec857c901  gdb/amd64-linux-nat.c
+07955883edda991175dd487724684042  gdb/hppa-obsd-tdep.c
+64d7b8d8be5bcb93b2dfd59eca11342b  gdb/osdata.c
+b779c77955d483fabb8b0eb6d26fe08e  gdb/regcache.h
+263e564ee7e8eaf0564120512583bcc2  gdb/amd64-linux-tdep.h
+047a33ce4cc5bca73f1c3a711e657d1c  gdb/sparc-obsd-tdep.c
 c8d711e40ef2ce2adcfc5aa36c327dfd  gdb/ChangeLog-2016
-3a411df5ed8f89b5ab5bb50aef51c677  gdb/tracefile-tfile.c
-644e5466745dfce86357a3ffd63b7d9d  gdb/xml-tdesc.c
-46742a5e03831454edb9e44fa7a5bd76  gdb/solib.h
+ee4e7e2e0a7f267d137cbd50ccabc5a6  gdb/tracefile-tfile.c
+f42da19a7c566701e415488e54cd6427  gdb/xml-tdesc.c
+57a75fcebe3bd9c53abb69c9550caced  gdb/solib.h
 8ed16730ee1ccc0f65140f4b14928d7f  gdb/ChangeLog-2014
-cc07b6adcfb0fe924e2f5c4175605fe8  gdb/m68k-linux-tdep.c
-cebd3d0204da6529d39e63c97a37b65f  gdb/ia64-tdep.h
-6871b72efd30ce9d313c83878af6a74c  gdb/frv-tdep.c
-5b4f25a06e20801d015fe0a8fba7c88a  gdb/c-varobj.c
-f47a1390b8d91ad786d95f4e809c7606  gdb/i386-tdep.c
-b2938c7a8fc3c88e640ac24acaa86a7e  gdb/symtab.c
-8695f273aea4e8e3483eaa5172fcb554  gdb/osabi.c
-b77279b569b81382e2931298fa098155  gdb/m32r-linux-tdep.c
-d6dd441908f07389cfd7cd2392145a2d  gdb/inf-child.c
-d0c170ce01f77ac76186933cf54cd771  gdb/ada-exp.y
-68594c70ad4b259bf727adcca0c3b804  gdb/frame-unwind.c
-afd69caec15c1c7fa5eba9f1cd251b5a  gdb/acinclude.m4
-a1db86b1893675d46e2bb0a0dc371a0b  gdb/arm-tdep.h
-91583073d2921ed70a4357c5c866bfc9  gdb/configure
-3b6b44c8ce775c6ba3ace0d7c2b42bcb  gdb/main.h
-86a6eac4627fbd42da60958a4d72a229  gdb/alpha-tdep.c
-5277b78aff0ac9a2d7a3cfd99699ecbc  gdb/xml-tdesc.h
-22ab200404b7d5871b69c0d7c5ee3df5  gdb/h8300-tdep.c
-efa68cc004ae9863d39b89c709321975  gdb/extension-priv.h
-efddfde208fbb6ec602e0ffb8bb4647c  gdb/s390-linux-tdep.h
-d2e4121c730de0bb9763e77804c13060  gdb/psymtab.h
-dd7a387089387cba1c2473e8ec766030  gdb/varobj.c
-0d985144c71f9a98eff7096868c26cff  gdb/core-regset.c
-a89a3021bca8a241457776eefbcc9f31  gdb/alpha-linux-tdep.c
-15b3ec7139f06cfc1369b0837ec2717a  gdb/aclocal.m4
-d4b51a9ee12e174829c69061daee7fe5  gdb/p-lang.h
-b111794daa7eb645b4756e94632999a2  gdb/solib-darwin.h
-6045815e1ca04fc124fd0e8d5577fab4  gdb/command.h
-eb070d698546d2249970d33257b7fb58  gdb/std-regs.c
-ebf0676f3a704787b0b07d24df62f2f4  gdb/go-lang.h
-00ea9011e2eb40f47643062e25f3257e  gdb/i386-windows-nat.c
-e7f7158af4ffad6f57d23d2e72f51fdc  gdb/po/gdb.pot
+c6fe99c7b3ac71acc0237c7f370b3d85  gdb/m68k-linux-tdep.c
+347ca8d86eb8c6129d064268a4ca4a52  gdb/ia64-tdep.h
+05cd9982ed78eaf31c3857fcf8cbedd2  gdb/frv-tdep.c
+f683d889d6654fdf5403b4df2e0e226f  gdb/c-varobj.c
+c9c5feb59254016bd1e92d838fb999ac  gdb/or1k-tdep.h
+55c135f386e504d992f81e7b4cff3a1f  gdb/i386-tdep.c
+1f36266d2a3b12124d3fb76f388abd49  gdb/symtab.c
+188721b408df10187529cd2c1e04551f  gdb/osabi.c
+edc4a27f2b925daefc04ecb2f8067e66  gdb/m32r-linux-tdep.c
+148f31c9cd7a4816c65b8c1749925ad1  gdb/inf-child.c
+7fddd00db10773206f26c67aa0640e15  gdb/ada-exp.y
+bd2190ae1f21bb6c32bc6c15e75647e8  gdb/frame-unwind.c
+1a4cf2a482540ae09973aab3c000b178  gdb/acinclude.m4
+ab116d0d4c883f3863e1cd60796d6926  gdb/arm-tdep.h
+d8f2be092c58c1c4005b7848427bffe7  gdb/configure
+1b5e1b259305f46dfc332fdcc9d4972f  gdb/main.h
+e25d68df4dd055f4bd6b3b3e0068453c  gdb/alpha-tdep.c
+4aa8e4e40d1e2b12ddf1a2d2b172d84a  gdb/xml-tdesc.h
+c693edc0b9024a3d5bbbb4f10a2657d9  gdb/h8300-tdep.c
+84ab5fd109f6bbf8e9351b0abdfc16ac  gdb/extension-priv.h
+f3286f04be8f65c033f2d2af945c4a7b  gdb/s390-linux-tdep.h
+2c59ca44e18440271257d8d8d76d93b8  gdb/psymtab.h
+c47221584d3bd195f6a9f151dfd2dedf  gdb/varobj.c
+391a90da5a283690403794b3b11c917a  gdb/alpha-linux-tdep.c
+54d62d7e88dfedfdc2cf45e3178f18dc  gdb/aclocal.m4
+b8834c965ffdb58186754848bed23ad0  gdb/p-lang.h
+ed72e5a7e68affef48c995a7c4073492  gdb/solib-darwin.h
+a9395d09415322faea2304f9a1d7d9e2  gdb/command.h
+c8ad35fbed9ae9f7955517bb9dfddaf3  gdb/std-regs.c
+94939358229d338905f052768534159b  gdb/go-lang.h
+08acbfe7a6b5373b372b4cbe252da59c  gdb/i386-windows-nat.c
+cb002f98d006ee6594e822957678b8be  gdb/po/gdb.pot
 1851bff0653201a488dcae18dde7efad  gdb/po/gdbtext
-21867eaf73d1ca153c5d6a17d735f7d3  gdb/break-catch-syscall.c
-707ca95997166afd8eae90a1ad5bb95a  gdb/ada-lang.c
-ad0d2422dd782cdf9b19d56747627d8e  gdb/dcache.h
-fa2ac080cabd59f400eda5c3f85a31ef  gdb/system-gdbinit/elinos.py
-35011d09b0fa3f7d40c5971e32a05c65  gdb/system-gdbinit/wrs-linux.py
-93ae1356fb84ff61885c08a9b56dfde8  gdb/i386-v4-nat.c
-f4134a04a4b34b6cd64c9981765c008e  gdb/m68k-bsd-tdep.c
-592d8435c68658e7026636cdaa4addf2  gdb/reggroups.c
-91d5142a93c8ca1c3a5bda22c91b4d9a  gdb/gdb_wchar.h
-b7cecf7bb51674f5d3f7e504a27454bb  gdb/annotate.h
-3f6a11fb93c617a251d6a4db511bb759  gdb/ppc-fbsd-tdep.h
-96bfde678e9b319119987a9567aa7a3f  gdb/parser-defs.h
-82fffe4104bce24e1e0a41ad5d8faa59  gdb/disasm.c
-37bf8baf72252e55e2560e2ae43566ff  gdb/memattr.h
-ef8408919b14abd7c79719ffc6f67e35  gdb/moxie-tdep.h
-98e52fa2e965945ff5cf4800ddd2b877  gdb/tic6x-tdep.h
-d24372afe665de4e341bd068aaf94309  gdb/sparc64-fbsd-tdep.c
-a1ffd0bc9c41a0048bc55b79477889c5  gdb/location.h
-1452861f776022c526903ee6df4af6ed  gdb/tid-parse.h
-e6f8d1a26bc2bd7014f7e445298fd37f  gdb/record.h
-be6f068cc91c7af1ce65fdfb976040a0  gdb/sol2-tdep.c
-bfda2e34fe1cfe2f9f9e5b78bc0dc2ae  gdb/cris-linux-tdep.c
-c0bea404606d8f752a190c258419b0c2  gdb/arc-newlib-tdep.c
-d52daa0a890503fa5a66f1c190edcc4b  gdb/expression.h
-82872b335a939b5a0b5cbf7dddf59ee5  gdb/nbsd-nat.h
-71a9c0d0b057d71e40ef000d44d9d756  gdb/i386-fbsd-nat.c
-7c6760c76a3ed467e53059ffba288c8e  gdb/mipsread.c
-71bacfa19c404b335f593a8f16ad340f  gdb/selftest.c
-7378b256192666373e30b2fee36a496e  gdb/amd64-darwin-tdep.c
-7523f7b64d87c9024734aaf9b8658e58  gdb/ChangeLog
-e860e6934b52d9ac7114f5ff0e630993  gdb/go-typeprint.c
-b858bfae264eece12de91eefcfb5c18d  gdb/score-tdep.c
-eef5427996b5fb62ff91ac9f54d3a854  gdb/m88k-bsd-nat.c
-6ab5d3e18e4434eb1e0b2109e7ed2992  gdb/xml-support.h
-8f45873aef4e963ca0e0024d36d3a7b3  gdb/sparc-tdep.h
-8360bfbe9ed81cfc7f932afe99b61176  gdb/bsd-kvm.h
-d5e4b2389bc532585edb200799e82832  gdb/cp-abi.h
-3895415779e04443c1bdc7a4f1ceba8c  gdb/i386-sol2-nat.c
-0b2df4161dd7826a41868fb793633526  gdb/sparc64-tdep.h
-3d53f617d7f67ca13d7a1ed49291ca91  gdb/macroscope.c
-542670cb3ad83271e590d656c1bb2f5b  gdb/proc-why.c
-013dade5a896749fb5bffe68c686e7ca  gdb/cp-support.c
+e8b91e30ff3b4173fc9a5cfa9eda097f  gdb/break-catch-syscall.c
+c0a3dac2b3e6bf95d9b658ce36ee03b2  gdb/ada-lang.c
+715d5ca0108a1dcd9f91ec780c74aab0  gdb/dcache.h
+91302ac180cb979c2b2d758ed2edbb01  gdb/system-gdbinit/elinos.py
+ff7f357c1d20a712bf87a00711b2c26a  gdb/system-gdbinit/wrs-linux.py
+0cf765f68a244a0e8dcef18088e75f33  gdb/i386-v4-nat.c
+2c1c6bfbec081e143f214f9ad4dbf942  gdb/m68k-bsd-tdep.c
+eb260a71230b735e18c134468df01e9c  gdb/reggroups.c
+ed568d3dbe515b1e243694d5548a0e48  gdb/gdb_wchar.h
+e5551628e587bd1b05b7e32b07c2890a  gdb/annotate.h
+ef7edcbe999ec6e6cba3c12e8198e630  gdb/ppc-fbsd-tdep.h
+67829ac1a2d3dd064623f01be0ae70a4  gdb/parser-defs.h
+1a0a118d3fee8a66fc8c875493663e04  gdb/disasm.c
+bd0152672997c677164efd55ea54bf13  gdb/memattr.h
+727f14500d8b295f85408c90ac1a1c73  gdb/moxie-tdep.h
+8799c0c6668fbeeb67579e3053b501f3  gdb/tic6x-tdep.h
+efe469566f6598668ac06e6a97285eeb  gdb/sparc64-fbsd-tdep.c
+bd821b37993266dfc74652865f1913b7  gdb/location.h
+f93920cb29cc5a272110e3c90e1e5949  gdb/tid-parse.h
+12064f48c202552032efb8336be6b790  gdb/record.h
+aa540553326367607c43b6d2218b60bb  gdb/sol2-tdep.c
+8a8cd707ac9b83d6d19ac22577c2046f  gdb/cris-linux-tdep.c
+ff1c4ed48c7d2f16438d9d0db42e2b6d  gdb/arc-newlib-tdep.c
+175876d1d952b2508df2d5ad268d28bc  gdb/expression.h
+54dbb6911466ee5e7486f4631fdfceb7  gdb/nbsd-nat.h
+6caec3f4ac5f65674e15355a60e14ecb  gdb/i386-fbsd-nat.c
+d5dd5836266ef25fc2ac5e704c1c0a09  gdb/mipsread.c
+1b4194bf7b4056dfa96ced19566459ad  gdb/amd64-darwin-tdep.c
+93e73ca16678f3e894955499115558e1  gdb/ChangeLog
+59570a0bc164919d36efd6a8d2ef0c89  gdb/go-typeprint.c
+fcd744f8bf7027eeddb24ddf43e290d1  gdb/score-tdep.c
+486e78403fa95b4893d415ec7e70766f  gdb/m88k-bsd-nat.c
+7f13605222862aa35ce0801e04a0a8c6  gdb/xml-support.h
+780e06e1217bffb6274c3583832bb138  gdb/sparc-tdep.h
+fb894bf0788101f36b73678e4c636fbd  gdb/bsd-kvm.h
+7c86160eca88cab93ba903a23017e2af  gdb/cp-abi.h
+bb646298662e4419bf1b9960d9308c00  gdb/i386-sol2-nat.c
+3feafdc7dfdb3512b35ab88d0668810a  gdb/sparc64-tdep.h
+0908f06ebb055fe40015aab08d911434  gdb/macroscope.c
+6b76c9d829d778d9315e55bd4684dabc  gdb/proc-why.c
+ae75737b453c6eeb279973b160f23083  gdb/cp-support.c
 1de2e2c8bd6fc22a95d8484cbf584e4d  gdb/process_reply.defs
-60e76108128aeb2835cfdadbf42bfb5b  gdb/amd64-windows-nat.c
-1cb671381f311bdc1ec0ec021afc960a  gdb/ctf.c
-6dbff867f81c4a219a119acd49c1300a  gdb/remote.c
-833bd620abf42bc1675b5ee0bb37e1f4  gdb/amd64-obsd-tdep.c
-21d6befcb029043488682e70197bff14  gdb/inf-child.h
-3a5ca47d725068df7d09446f60080905  gdb/frame-unwind.h
-6eabcef571133907914446f55213d50e  gdb/ppc-nbsd-tdep.h
-5dd1f0b964d73b276a2ef656206557fe  gdb/mips-nbsd-tdep.h
-93fcacb8bd908ce4f2c7de2fcf67ad57  gdb/fbsd-tdep.h
-75ccdfc7d95d286a33d9a6b6c99e2aa4  gdb/hppa-bsd-tdep.h
-c1d5e2a189559e19e4ffceadcf41afa8  gdb/proc-service.list
-3e0b941f7c2e4ccaa43a6d2c9831800c  gdb/gdb-stabs.h
-fc4c94945c43cab7ffbbf375a879c9fa  gdb/p-exp.c
-70d3833ea21c0d57dd79192a9e80ee68  gdb/btrace.c
-9a15a827895d76e9cc6b076fff0ff4a3  gdb/m68k-tdep.c
-9185df55606bb3bcc78a69403fddf0c3  gdb/coffread.c
-e796d4900c2b815177a0d2cef4881b39  gdb/findcmd.c
-ae34a97c1a03294df8afbd30eec52359  gdb/i386-tdep.h
-5b584428a6537d8d7b0233562c2037eb  gdb/hppa-nbsd-nat.c
-a1f3612ac632f56703e181e65f824b70  gdb/gdb_mbuild.sh
-9783e562bec0e8aaf8de030b610c1cd1  gdb/memory-map.h
-f91e4a267dbe74910c64da3a0f11ed2c  gdb/symfile-add-flags.h
-50639ca0d7ab6bf8892007c0f59e12cb  gdb/nios2-tdep.c
-fba1c095a623822fd1d181c7046d366a  gdb/inline-frame.c
-f3e779937b63bca3f5b6ffdf8f115df3  gdb/p-typeprint.c
-3bb46e188b876703d5ca17fdcdf8838b  gdb/xml-support.c
-7f9d9363d919a93b05b9d66f4d53dce0  gdb/amd64-nbsd-nat.c
-90704c811851f7e71a915eb0f43abe0f  gdb/arch-utils.h
-fa7cc2d4f896a9dd063c1eed928dfe36  gdb/darwin-nat.h
-d27953f527bf60cfcdc21ec15d0a931c  gdb/linespec.c
-3e85efb4adeff4b5d967bcce453c5cb4  gdb/proc-utils.h
-3ce2baedc9a55a9ffce05a4e2a4cf0e4  gdb/frv-linux-tdep.c
-694ce9efc52b8b6680d1db4267912ef0  gdb/ia64-libunwind-tdep.h
-bff00064a518935881345b9fadf381c2  gdb/buildsym.h
-a6124588cf974624a7a0a335a4e8340a  gdb/m88k-tdep.h
-ea4b89706f8659be55ab7b6f6ef035f6  gdb/target-descriptions.h
-03798cb2e94553bf834cbb24c9da6737  gdb/corefile.c
-7f5e687b644e4da6b7f333690144a1d3  gdb/x86-linux-nat.c
-9b4d707fcf7713690eb1f071d931cd34  gdb/macrotab.h
-557b5f329ac4531640e6cd309a287a1d  gdb/progspace.h
+0756c82ea272ca31e4398c77a386ef78  gdb/amd64-windows-nat.c
+08591181ba27b28f2b10a4d0c7c3185b  gdb/ctf.c
+089b65feb155125d07726871df4606c0  gdb/remote.c
+4a374f7ab7e26f11e95ec884a5b31c52  gdb/amd64-obsd-tdep.c
+913e6c459ecdc425d981264a426c4a46  gdb/inf-child.h
+b35f37c594e44a5dc32d477d40c5fd03  gdb/frame-unwind.h
+985bdf1dc233eb3270085165d02cfc7f  gdb/ppc-nbsd-tdep.h
+6296de234c0dd0d2ce9dede8fbdc5733  gdb/mips-nbsd-tdep.h
+c90e68fa3a8d19e62c9f7a4cbc1881d8  gdb/fbsd-tdep.h
+9732a2548d5f50fb696b030fb5cf3a87  gdb/hppa-bsd-tdep.h
+ade9b1c599d88767dbd444ae0c5d0528  gdb/proc-service.list
+11bcf7bbfd870a1e81a3dcbb7503ec66  gdb/gdb-stabs.h
+c42252cdfa18d33f353fc72623131e7f  gdb/p-exp.c
+51c9c9e127ea9d48ffe1705462096dde  gdb/btrace.c
+0d1a8f955a227b1eddb5b8ca585b6efe  gdb/m68k-tdep.c
+94432a0bca2e4172375a72c0168ecfc8  gdb/coffread.c
+bc4c4839d2ec400b820b05b268ef9822  gdb/findcmd.c
+b29d5cf2062e67c984ffc769361f9551  gdb/i386-tdep.h
+d353b045d3c3f65d01a9ba9516a30122  gdb/hppa-nbsd-nat.c
+16fe9851fc48a1be973dfa0e9108963d  gdb/gdb_mbuild.sh
+44926c85efdd8b911b6f6890d36fbee8  gdb/memory-map.h
+d08cf7cc8c3ca8c54492ad461af0dbbc  gdb/symfile-add-flags.h
+ebc0e48c270472451d4b063cf95b180e  gdb/nios2-tdep.c
+b41c9ddbf838fa794161366db02b9912  gdb/inline-frame.c
+9edb8437757536e762fbabeb1f665e8a  gdb/p-typeprint.c
+cbd1070850d9e8df486ed04cf5b70040  gdb/xml-support.c
+79c6f083c94644d116d745067e49d81b  gdb/amd64-nbsd-nat.c
+8833a539d4a0a4894dba25d3a6bd6ec2  gdb/arch-utils.h
+9f69698f417cfcd2bf6d2056e9b346b6  gdb/darwin-nat.h
+7a83e3f892960d30091db5e30b82e1b4  gdb/linespec.c
+02579627c2dda793c2bcab12c4b13533  gdb/proc-utils.h
+d49f80a15cff56e0861997f50769d218  gdb/frv-linux-tdep.c
+b77604ded755c6c937a4f92c33fc1650  gdb/ia64-libunwind-tdep.h
+161e30ee05443ee6d6f40d44043a3f90  gdb/buildsym.h
+f215b816a38b3e464404d5cc1e67d517  gdb/m88k-tdep.h
+e8f442168eefe1a2923e5a9d1a1e521e  gdb/target-descriptions.h
+2d8b94e72d96adba0be68a2d1a9ba7ee  gdb/corefile.c
+0e8d6286862509e3f58f8c91814c7eaa  gdb/x86-linux-nat.c
+6b43c29905d617d7c2b2e07322b48204  gdb/macrotab.h
+db8a70c4b40a154a32c94c82f45c57b7  gdb/progspace.h
 071369803c3aba386e15e14a3328bf55  gdb/regformats/s390-tevx-linux64.dat
 44fa14e15b931dc63422873dc3a5aae1  gdb/regformats/nios2-linux.dat
 c67b2b2b626f63872d35e77d7845e9b6  gdb/regformats/mips64-dsp-linux.dat
@@ -5503,15 +5617,14 @@ d96faffb9bddad65bb6ef42a6e646bab  gdb/re
 bef5bf10bd95f895b4c1417232201779  gdb/regformats/reg-tilegx32.dat
 c7c866286a3245c530d00bdf7b7e3116  gdb/regformats/reg-crisv32.dat
 c650790932c3ce82d781ba6de87a578e  gdb/regformats/reg-sparc64.dat
-671353d166eeaf85662da512630fd488  gdb/regformats/tic6x-c64x.dat
+57281652c787f8c4c6f5e34e2fd64460  gdb/regformats/s390x-gs-linux64.dat
 9762013512fadae6aa4eb1f3a9d25d3d  gdb/regformats/s390x-linux64v2.dat
 856d0743c2c4d22c48c9bfd4bee975a9  gdb/regformats/mips-linux.dat
 72e3d680eb05c6111d3ad8ac29ef52d8  gdb/regformats/s390x-tevx-linux64.dat
-c57396de60b877d00839e7116dde93c1  gdb/regformats/tic6x-c64xp.dat
 19956673829dad7f3294b3ac37d36750  gdb/regformats/tic6x-c64xp-linux.dat
 f548472e3d5eb277710a2e79e6ec84a1  gdb/regformats/reg-cris.dat
-4903f59c1a9203a01dc199239bc44422  gdb/regformats/regdef.h
-b2ec4c57f325e2a9e5adc26b3a6a45b3  gdb/regformats/regdat.sh
+b4637528272ccf23bfdb0074bb15a0a8  gdb/regformats/regdef.h
+49a557990e9ae527bfa0f45c86b41dbd  gdb/regformats/regdat.sh
 de6f8e5928b00473281f5572a3c20d82  gdb/regformats/tic6x-c64x-linux.dat
 a4c831a178c251888eeb8c4ebbc573fe  gdb/regformats/reg-bfin.dat
 d33a71319657eba589e8388250ae68a9  gdb/regformats/s390x-vx-linux64.dat
@@ -5546,27 +5659,16 @@ c016ee34079bfc9541a8b1aeb90092d1  gdb/re
 48e4338e40e3a68993c379264e3f2563  gdb/regformats/arm/arm-with-vfpv3.dat
 75c6e70590ff84e05b7853740f417fef  gdb/regformats/arm/arm-with-neon.dat
 157446984c99867172fcbe0e4b072b36  gdb/regformats/arm/arm-with-vfpv2.dat
-d604d104fc1114f30fac932a0487706f  gdb/regformats/i386/amd64.dat
+af49bc54d30b232ae1d16cb7aa34b41f  gdb/regformats/i386/amd64.dat
 60af9c95af90d6cbcb7cb57f147b3cfc  gdb/regformats/i386/amd64-mpx-linux.dat
-7ecfdcaf413c455d8e90114cb741526d  gdb/regformats/i386/x32-avx-avx512.dat
-74ca5c8e6c71593846516186b5e37666  gdb/regformats/i386/i386-avx-mpx.dat
-9d3a0297d2f3c3d030fe8587a6ee7c36  gdb/regformats/i386/x32.dat
-738b02d99b582e8a6e6131a70d1e07cc  gdb/regformats/i386/amd64-mpx.dat
 b4f029cde0e28984ccf3d170dc3ba239  gdb/regformats/i386/i386-avx-mpx-linux.dat
-4c104ec1f94262c86d6e7cea1da4d00b  gdb/regformats/i386/amd64-avx-mpx.dat
-5942a8ced34d4ace9969a1cfbf330cc0  gdb/regformats/i386/amd64-avx-mpx-avx512-pku.dat
-c91cf96dbe04d9aa05eec804b5109535  gdb/regformats/i386/i386-mmx.dat
 3a49daae24a4a2959b85d15763fa1ff2  gdb/regformats/i386/i386-avx-avx512-linux.dat
 1532074ba4a459d3923f73649d05c85f  gdb/regformats/i386/amd64-avx-mpx-avx512-pku-linux.dat
-b216bc4dbc70bd323fbe0130a0ab729d  gdb/regformats/i386/x32-avx.dat
-eeee6483272994e911c333cb2418370c  gdb/regformats/i386/i386-avx-avx512.dat
-e19a8d97eb77fcd2b461fb0c85ef2267  gdb/regformats/i386/i386-avx-mpx-avx512-pku.dat
 f7d54b0b08f5a853e0f675122a5d9f14  gdb/regformats/i386/i386-avx-mpx-avx512-pku-linux.dat
 34ea302223ded0ba60fc326445eeb3eb  gdb/regformats/i386/amd64-avx-mpx-linux.dat
 2234c850279dc7d694cf06f5c8e98e9e  gdb/regformats/i386/i386-avx.dat
 b7e1621ed4c0ff506a4caf34f0dff77e  gdb/regformats/i386/i386-linux.dat
 25063f89b5ad9a6845a69982f8d8a419  gdb/regformats/i386/i386-avx-linux.dat
-42f17637a31e47e67cefa93a3e6a7aeb  gdb/regformats/i386/amd64-avx-avx512.dat
 0914d14168ceab90edbb96fa2ce18811  gdb/regformats/i386/amd64-linux.dat
 79406a6a1e2a36ad8784d9a6cb1664c3  gdb/regformats/i386/x32-avx-avx512-linux.dat
 35133fe587a30f33047d1c32a43f9951  gdb/regformats/i386/x32-avx-linux.dat
@@ -5574,305 +5676,356 @@ b7e1621ed4c0ff506a4caf34f0dff77e  gdb/re
 18baad3e82ea13ce0a76d505a2448aac  gdb/regformats/i386/i386.dat
 7aed12a4adf6bac37d1a3734e6a3d801  gdb/regformats/i386/amd64-avx-linux.dat
 11d6a8e3822f79b0478c9fc83d0c54f2  gdb/regformats/i386/x32-linux.dat
-a738f4c2921f5d0f0605d9c2a145b602  gdb/regformats/i386/i386-mpx.dat
 5ff40bbc37d217291eeff39338f7f6ec  gdb/regformats/i386/amd64-avx-avx512-linux.dat
 a925e3ae31af6d268e6abb8096181cbb  gdb/regformats/i386/i386-mpx-linux.dat
-e7a5ce95c91062a0eff3c21a02adc494  gdb/regformats/i386/amd64-avx.dat
 a2ee14ef55ab34863e8ac79cf7285e14  gdb/regformats/tic6x-c62x-linux.dat
 649dc3a9cda4e6af78d3841bbd6dd87e  gdb/regformats/mips64-linux.dat
 657ed262c66093acacf0ccf85f97c55c  gdb/regformats/reg-sh.dat
 6c44ad193d2976f1ea8ae411875fdf2d  gdb/regformats/s390-linux64v1.dat
+78f28809cf98268afee34d9075813847  gdb/regformats/s390-gs-linux64.dat
 005b8fb2229cb88ddcc03a5d3fce3ded  gdb/regformats/s390-vx-linux64.dat
-46d660fb981f2aa09a2f9fe7a4a31213  gdb/regformats/tic6x-c62x.dat
 b09b0ee5da44df728eb552f6bf6ed138  gdb/regformats/reg-tilegx.dat
 68c2f73b8122d4023738fe69876efc56  gdb/regformats/s390-linux64v2.dat
 7d521124886bd1a212ec6ac542743020  gdb/regformats/s390x-linux64.dat
 40ba412a0b4d6cebeef61c90e6f6629d  gdb/regformats/s390-linux64.dat
-19fe0efb928ac56f9720cad6a3449903  gdb/arm-obsd-tdep.c
-febdd74fbdeb1f65c831dbbc7eda58eb  gdb/utils.h
-c291712f6a4d011e7f4533e3c570c583  gdb/sparc-sol2-tdep.c
-26aa75ec19979d380c82e028592a254d  gdb/procfs.c
-e1df1416cbd0a3cc3619be04fc17c81d  gdb/solib-svr4.h
-fd54f63c26be11327ef258219c3e14ae  gdb/psympriv.h
-4e3a93693b7d2a20630cfda330ff5584  gdb/rust-lang.c
-99d4fa224906c41b9699748d97f62362  gdb/m32r-tdep.c
-b905bc4332ad58432e45aee9cf9ea84a  gdb/hppa-tdep.c
-c8a0f74109319d5b74ade04a104b0477  gdb/exceptions.h
+1f676d929927876ac99e87b43c7343fe  gdb/arm-obsd-tdep.c
+74b7e7cc73a6ba8196edda8f9d1f5918  gdb/utils.h
+dfff610eb710a6a7232db443997e7d83  gdb/sparc-sol2-tdep.c
+d1791976662ddc82cedc7d9e176662a5  gdb/procfs.c
+b4e966a104efb5131285d0ea2da0c7d5  gdb/solib-svr4.h
+3ce4249f299a24f9b4d55bf48173725a  gdb/psympriv.h
+cb43e6f45218c556d2e4074223d7d322  gdb/rust-lang.c
+55c16baa21a3dd6b7ce35159dc913fc1  gdb/m32r-tdep.c
+b989c8caa85b1dc5b834c908aae4da1e  gdb/hppa-tdep.c
+f2e3059a9390bb03663fa83309362f4c  gdb/exceptions.h
 d32239bcb673463ab874e80d47fae504  gdb/COPYING
-81c3b9f4712efb6643da2ee9404a4187  gdb/arm-symbian-tdep.c
-d00f55b936b3b7337cb9d6b051f7447f  gdb/guile/scm-symbol.c
-61a9587d7715112954f7ae4d5d9aba41  gdb/guile/scm-param.c
-e216ac4c02ec2c6c9988a521df266844  gdb/guile/scm-auto-load.c
-5a6ea9e4ab654814b58d00a93f9e0e58  gdb/guile/scm-arch.c
-6452f7347f52904f3f4d897870519961  gdb/guile/scm-objfile.c
-037626d150a15e20c7a8fa9936ff3fee  gdb/guile/scm-frame.c
+ff2d69169c8ac08ef7b81b059ad5c4a3  gdb/arm-symbian-tdep.c
+3a121443977c37c9c65933d864b614ad  gdb/guile/scm-symbol.c
+0c1402efa12dbe4c4438a152bdfef832  gdb/guile/scm-param.c
+df40325994151c2a5e883b19d3471328  gdb/guile/scm-auto-load.c
+46643cfd6c6d08f51c96b911a94eb749  gdb/guile/scm-arch.c
+10515ffc851a022030d418e69a878558  gdb/guile/scm-objfile.c
+32d923a3622c04a1551d3244c9a7a943  gdb/guile/scm-frame.c
 520658d110ac7bd41fbd26e1ac81efa0  gdb/guile/README
-ca3727f0b1d196ce75e513f1c15ee0eb  gdb/guile/scm-type.c
-7820aec6660aef09e33b833d283a583b  gdb/guile/scm-exception.c
-e055e16dfe833e57c9b1b6b1c78ca60e  gdb/guile/scm-safe-call.c
-30cfec2de9e4f14267338dd7b3b9e872  gdb/guile/scm-gsmob.c
-f8c8554f43b5084272aaa906a435e449  gdb/guile/scm-utils.c
-287d35d020d6e7519c8890c647826d79  gdb/guile/scm-iterator.c
-66cbf881ae2eeb5893a2e42a64cf238e  gdb/guile/guile.c
-32c42215408bcc28750149d16271ccd7  gdb/guile/lib/gdb.scm
-b8959ecb914966bb91609d135dcc2726  gdb/guile/lib/gdb/support.scm
-a271d8f0f4d89a960cb9261571d0cc82  gdb/guile/lib/gdb/printing.scm
-99fcc512d3a65f992ab5ebe38cd59396  gdb/guile/lib/gdb/types.scm
-cd4213b227c5864781f2ba2ecc5bd41a  gdb/guile/lib/gdb/experimental.scm
-e7c13431e12cd1d9b033630c27c497e1  gdb/guile/lib/gdb/boot.scm
-4720b1bf6ba41125979d97ac1d47f49e  gdb/guile/lib/gdb/iterator.scm
-e63151f7c3502b15e21dd69ceda1c912  gdb/guile/lib/gdb/init.scm
-777b6601ab7ad1ffab0e22934a4aa73b  gdb/guile/scm-string.c
-e2ac565e60b14e26c2f06da432d884af  gdb/guile/scm-ports.c
-f41523a9364e93fe6d0826e45a56c1e4  gdb/guile/scm-cmd.c
-5bb3e6f17dbbdb995be8ba37b0443f8f  gdb/guile/scm-symtab.c
-e4180d4a7d9148ddce6da5c58609de97  gdb/guile/scm-math.c
-a1de1767eab712efca9217ea2fe73e34  gdb/guile/guile.h
-5df2b5b423450e92f3c9dba0dd952791  gdb/guile/scm-breakpoint.c
-8c28e76f4ea614ab2067c3b12af85e63  gdb/guile/scm-value.c
-08248f2508ad0d4baf16bd1f594c5907  gdb/guile/scm-pretty-print.c
-d43f59810d1fd59e45b1ab7af19ec93d  gdb/guile/scm-disasm.c
-b1b0bc20c43f519b9f4e06931208cb1a  gdb/guile/scm-progspace.c
-0cc5f1bef8ea075c8b7d56c4dc60d30d  gdb/guile/guile-internal.h
-b9841c7600e3ec75fc250162f87577e2  gdb/guile/scm-block.c
-6feac96847487be4002e9a9230614b3f  gdb/guile/scm-lazy-string.c
-131352e5e7b7cd2886a00959d0df40da  gdb/obsd-tdep.h
-29a1a79400e6090541d521e75ee330a9  gdb/charset.h
-f0ce535461ee42df7f3be23ae8364b73  gdb/memory-map.c
-040d0c3af20fa7a37d28bc4201dffe72  gdb/mdebugread.c
-3a3b06529bbac4a52a2a37d521170134  gdb/progspace.c
-62bc404511766ebe000ca3a6624ec767  gdb/sparc64-fbsd-nat.c
-021ebed0eaddc34a1d4723ccce9e8d74  gdb/nbsd-tdep.c
-339953de6df2b45b377a0a81e9ef4d90  gdb/macroscope.h
-02945b5740c55e052aefeff2622e6461  gdb/ada-lex.c
-93d7cdacbf4ca1c92b626a306e51b615  gdb/solib-darwin.c
-c1e47f4c81fd696102398ef3cf9444b8  gdb/tilegx-linux-nat.c
-1985cdfb3c864c3a382542113e4f3290  gdb/filesystem.c
+c74f126ae3e7cd2d48df9ef269b4697f  gdb/guile/scm-type.c
+6489f18e6212b4d1d1556b1f99935b8e  gdb/guile/scm-exception.c
+396a95b11fbb7c319145d9ede56fd399  gdb/guile/scm-safe-call.c
+dd52c62c15619bf76c86075836093fdf  gdb/guile/scm-gsmob.c
+4179ae8c2caea6938644ade301055b15  gdb/guile/scm-utils.c
+c5595d689e29e6251695159860a88ce0  gdb/guile/scm-iterator.c
+391f9b4d4dbf00009172cbcf440778bc  gdb/guile/guile.c
+1041e003321c69ee765b2054d88bf390  gdb/guile/lib/gdb.scm
+0c14c488c44cf39a918667fd5aac715f  gdb/guile/lib/gdb/support.scm
+29393af4f7be2b4e3509b4a27bd70b2f  gdb/guile/lib/gdb/printing.scm
+2cd2630957150b647e32c71d76f2c18e  gdb/guile/lib/gdb/types.scm
+35646f2b6fefc15691635df007b4c7c9  gdb/guile/lib/gdb/experimental.scm
+128cf1b96bf6a298ee2d46dce92065ec  gdb/guile/lib/gdb/boot.scm
+a8075ac0b12dede9e490bbd8079890bb  gdb/guile/lib/gdb/iterator.scm
+eca0300d48133da5b14520d706191df8  gdb/guile/lib/gdb/init.scm
+e05bfc7f0123afd1b04a8bd49c460467  gdb/guile/scm-string.c
+7bea0aafb3e8a3d2017a107646e819e3  gdb/guile/scm-ports.c
+881d80836f8a1bb83b4081a41d5d216c  gdb/guile/scm-cmd.c
+e9a39af7c9be1b1a8dabdb0820edd071  gdb/guile/scm-symtab.c
+20422374ba9e4bbaf563ddfc7b8f7641  gdb/guile/scm-math.c
+5425886b05697c4eefd02e4691b6cb47  gdb/guile/guile.h
+e536abe064eedbfaaff7ed0957744c31  gdb/guile/scm-breakpoint.c
+afc58451f48a0740361d668227260c4a  gdb/guile/scm-value.c
+10c2e293ce18664326ceb1af4cc73108  gdb/guile/scm-pretty-print.c
+a726510eb7f6c9e5dc39cf6e424de106  gdb/guile/scm-disasm.c
+a97a7f17c996cf406d64da4bed15941f  gdb/guile/scm-progspace.c
+9ae51d1e9cd1ab7d86059e6b75862af1  gdb/guile/guile-internal.h
+65a88b36aa3490348c5a89bbd12dee2d  gdb/guile/scm-block.c
+7d0a4194b0712acf4ae32487db3ee7a7  gdb/guile/scm-lazy-string.c
+f7b99d722f6b9078f437c02817b64dac  gdb/obsd-tdep.h
+5f8a7f14389aedb3c04f987a61c5b79e  gdb/charset.h
+708a37154128641815ec7e089da8e76e  gdb/memory-map.c
+61415f33c8f37542b385b2ca7a8ddb83  gdb/mdebugread.c
+044caad455e4f67f623622e3201cdc9c  gdb/progspace.c
+71f5132d1dcd57dd186cd6baac40ce4d  gdb/sparc64-fbsd-nat.c
+67074d22d1485e8d592c73e37d61cdab  gdb/nbsd-tdep.c
+27e6ff3d68459267c2d290a6c0398b8f  gdb/macroscope.h
+e7cc8ca8b50c79ada60a88cae160ae45  gdb/ada-lex.c
+3ddfe70804e6aa7bcae2821417634b5e  gdb/solib-darwin.c
+69b755abab8efc12196486804e27a91b  gdb/tilegx-linux-nat.c
+a10e5ce959c537aa24c42c56f0161340  gdb/filesystem.c
 70a77fd6898743da19391f432f32be37  gdb/ChangeLog-2008
-7162ca0ee9d2b7326e8bf5bb2c949a8c  gdb/nbsd-nat.c
-4992ed091ad304db0aedc1da51be7f8b  gdb/dicos-tdep.h
-f5036099f1476831ce63ba82f4c105c7  gdb/serial.h
-f2587b78d653ba9125526dd82d3e805c  gdb/d-lang.h
-6a54955ad86fe2523f7c429e22fdb819  gdb/sparc64-tdep.c
-95d09705a10d9437ff40417dae4982f4  gdb/sparc64-obsd-nat.c
-bd405418918d5e6b931a01fe78549330  gdb/rs6000-lynx178-tdep.c
-e33fd7ed7bb6e167b963089d935210f1  gdb/arch/aarch64-insn.h
-b8ab64b2c9e96438bf2d8228a76e3e28  gdb/arch/xtensa.h
-e55d9b89208ca40a4263edef3176131b  gdb/arch/arm.h
-3b84b0b883dfc6f172de7d4688b3b0dd  gdb/arch/arm.c
-e119bca40492d8225904b19fc4347535  gdb/arch/aarch64-insn.c
-4b93ceac61ba958933a42be525809810  gdb/arch/arm-linux.h
-d0343053913b44a71b208f47db1e89a0  gdb/arch/arm-linux.c
-9757aa08b8c3886bd147fd2b7108b5a4  gdb/arch/arm-get-next-pcs.h
-f0e5c3e8f57e8d54c366ac4576262f62  gdb/arch/arm-get-next-pcs.c
-33f0a12f6a7280d0b4363d0a3cedf683  gdb/gdb_obstack.h
-4f6c728389e00abdf87ff67ae972df7e  gdb/gdbserver/xtensa-xtregs.c
-2cc55b938121f989991cd0aa827a8883  gdb/gdbserver/linux-m32r-low.c
-e43aa7fa78fc9588e9b3638bdbb9569b  gdb/gdbserver/event-loop.c
-705396e26d7d53fb2a4f71c1f340c021  gdb/gdbserver/linux-tic6x-low.c
-a30e66b909d9a270e5ffddf67a10a9f3  gdb/gdbserver/inferiors.h
-535b1d19176067ba13643b3bf8b6609f  gdb/gdbserver/win32-arm-low.c
-a5fe2a7b5795d43accf382ed62ca2374  gdb/gdbserver/linux-bfin-low.c
-d6d9d3a0a34be8e93a07396f4ee06bcc  gdb/gdbserver/Makefile.in
-22cff90839aa7561a0e53ac6bbfe7c38  gdb/gdbserver/x86-low.h
-696dfa47d77cf6c555b8093119f2e54b  gdb/gdbserver/linux-ppc-tdesc.h
-0f5ec4921cf4714d878aa1883e57e6cb  gdb/gdbserver/hostio-errno.c
-f83fe324fc21c8cdafb0358574e2cabf  gdb/gdbserver/dll.h
-2de1eb2b02ccf5e61ac4d744a651e993  gdb/gdbserver/nto-x86-low.c
-848a6e69608d27a681c9b439bacd6f2c  gdb/gdbserver/target.h
-0c2e17b0f83e2447148bc97a4b68470c  gdb/gdbserver/linux-low.h
-42b550fecff288ffe1156cfcfe9bbb63  gdb/gdbserver/linux-ia64-low.c
-744ebff9fa964958cf0fc9081cf2f71a  gdb/gdbserver/configure.srv
-038741f967f65288ad5b24bb212a2335  gdb/gdbserver/linux-arm-low.c
-6f9efd7123c75a4ccb965ab21c31f586  gdb/gdbserver/tracepoint.h
-56af939d450a3ba6381b57965d2e8dd4  gdb/gdbserver/linux-aarch64-low.c
-abc334df318eba3e8451a6757e819b41  gdb/gdbserver/event-loop.h
-4c4eaef8bcfd0ed7eac3f216cf634f88  gdb/gdbserver/ax.h
-b9c05aec8eabd775d38f08eac39c997e  gdb/gdbserver/linux-m68k-low.c
-7a7f710c7a3ceb840bed3da7e2cb1e4a  gdb/gdbserver/mem-break.h
-f6faf930815432b3eac53d6684a7a102  gdb/gdbserver/wincecompat.c
-f0d65b1a863322e68d911b5faad40b29  gdb/gdbserver/utils.c
-ca5809079c3b93652ea08295b5dad755  gdb/gdbserver/win32-low.c
-87051ddc9bd2585156db69c77039a043  gdb/gdbserver/lynx-low.h
-35f97130a1a30f7611da7498f88c7692  gdb/gdbserver/tdesc.c
-31ecd7543afa959be728ce78d31dddea  gdb/gdbserver/config.in
-7550f12e00c81e90a453a232f29885a4  gdb/gdbserver/configure.ac
+372d1dd6fce502a0d70e99b2b4c219a9  gdb/nbsd-nat.c
+0af191c82b11678cb68426f5472f7f84  gdb/dicos-tdep.h
+c8b7a7ab4dffef5419e8e6c987b2c3f0  gdb/serial.h
+0191fdc5eadc64f6c7256f5893fb277e  gdb/d-lang.h
+aadd758ebdbf303f0ea0d9136877e5e6  gdb/sparc64-tdep.c
+abc9c50e071e3555dbadf6a32ed34b47  gdb/sparc64-obsd-nat.c
+71b77a1ff0afc7bb2da28fff7e26a264  gdb/rs6000-lynx178-tdep.c
+626fd56e46e49b0431a9c5be2785d74b  gdb/arch/aarch64-insn.h
+3e8db35bff664904e0ddbcbd166c026e  gdb/arch/xtensa.h
+7aec4a27a703657f33e46c9a277b6f83  gdb/arch/tic6x.h
+d9db185275091a20180154008c613689  gdb/arch/arm.h
+f954c2f134b689cc25b863abc251c48b  gdb/arch/arm.c
+5d62dcd037f7d40fa60ca3b0952f73cc  gdb/arch/amd64.c
+059fddd42f372fa565aba47f6059743a  gdb/arch/i386.c
+6b802587ea82785bade2d29ee8427343  gdb/arch/aarch64.c
+a2eb488406a8f19d92095a6196a573d1  gdb/arch/aarch64.h
+0e777f54ba06ef4bc43f82bec99bdcdb  gdb/arch/aarch64-insn.c
+33da6ae5d5e074f7f541877d1d8f911a  gdb/arch/arm-linux.h
+f0cd473ef79fe1a466e33127fca0892b  gdb/arch/arm-linux.c
+82f894e7024b380ccf4c9b6a4472d724  gdb/arch/arm-get-next-pcs.h
+f1e0171e0ed49a8ae91a8c9b0dcbc9e0  gdb/arch/tdesc.h
+9e05875e8eb51e88278b9fefbabd40ca  gdb/arch/tic6x.c
+213d48e7161f7e8a3cec6d609d2b5285  gdb/arch/arm-get-next-pcs.c
+8cd9e1c41339df87028922ffcd5c1a53  gdb/arch/amd64.h
+54555e7664f182e59a9b84646b525e6f  gdb/arch/i386.h
+b41fb7afd91b60702e566f3ca812f57d  gdb/gdb_obstack.h
+eb3c382595de2e131c8d2649f69e3b5e  gdb/gdbserver/xtensa-xtregs.c
+9c02512d41a0da7f4176926d8c47efa2  gdb/gdbserver/linux-m32r-low.c
+a28e2c081269fbf8d740c4be28e6f91f  gdb/gdbserver/event-loop.c
+092fb0788731c86e2fb62e8f117f9582  gdb/gdbserver/linux-tic6x-low.c
+bbb81af88626fe0414a6826fd172f0e5  gdb/gdbserver/inferiors.h
+30b63fe788b3fa9582ba39bc94e8a371  gdb/gdbserver/win32-arm-low.c
+369c14baa6ea408223aa30ee45c15cc1  gdb/gdbserver/linux-bfin-low.c
+d9072cbcc6b1b1af3e9405592408a721  gdb/gdbserver/Makefile.in
+57ae21aa7a8f5e943ac0984e6219bf38  gdb/gdbserver/x86-low.h
+007add9d622dced8430375e326790dfe  gdb/gdbserver/linux-ppc-tdesc.h
+c989e28f14e68f6bd1ba0a838f36ee80  gdb/gdbserver/hostio-errno.c
+deac692c45e7238b0a0bb28d008b6dc8  gdb/gdbserver/dll.h
+2dc860a8f656bca197ec197f5952d7e6  gdb/gdbserver/nto-x86-low.c
+8892816a32856cb5442be4327e3f5dc8  gdb/gdbserver/target.h
+cda5f33d41ade4c904688039c5f8e8fc  gdb/gdbserver/fork-child.c
+4e03dc1bc5942f707e4ec80b07c04903  gdb/gdbserver/linux-low.h
+af90c5585b6059ab98e363eb8700d36f  gdb/gdbserver/linux-aarch64-tdesc.c
+f5b82e276b10a006cdd00aa2a2224be3  gdb/gdbserver/linux-ia64-low.c
+f10924de23483803d6080ed181ce6866  gdb/gdbserver/configure.srv
+cccc03639697cc2a9899765e10e16ce5  gdb/gdbserver/linux-arm-low.c
+538f3315a9d2799755b220871858668b  gdb/gdbserver/tracepoint.h
+572d0ec40e1152f668ea8925d18c6dc2  gdb/gdbserver/linux-aarch64-low.c
+86de296075a1a56f6810d56ce42b922f  gdb/gdbserver/event-loop.h
+768b906bf2ef925490de73ce0780eeb4  gdb/gdbserver/ax.h
+b1bc026b75ed2c8949259c6dcdd3bea3  gdb/gdbserver/linux-m68k-low.c
+b7f45c8fe694ea0901bfdde94b496ecd  gdb/gdbserver/mem-break.h
+1cf034ffa508eff259ba343e0d5f8d01  gdb/gdbserver/wincecompat.c
+014205a50ab69250987607d71ecce8d6  gdb/gdbserver/utils.c
+51895c4f5467b8b856e0e2dfb9baf0ce  gdb/gdbserver/win32-low.c
+ef1f780ebf5dc9aa3fa7325de54787e9  gdb/gdbserver/linux-x86-tdesc.c
+051386225be0bafdbbd83eae5da06132  gdb/gdbserver/lynx-low.h
+69133f2f32d99706fa48de77f6145fa9  gdb/gdbserver/tdesc.c
+b5060875a98573926155a1b87f27e06c  gdb/gdbserver/config.in
+57c7b6dd83efc508de9b53d5f298825b  gdb/gdbserver/configure.ac
 791b58ddf159b59c7d9375e2c2f00a07  gdb/gdbserver/README
-cf035afba95dc90867e5ec95f8b3393e  gdb/gdbserver/mem-break.c
-72f7079f4278e44539667b41528e5967  gdb/gdbserver/linux-mips-low.c
-30a3436e2ab6343ea5fee41ee80349d5  gdb/gdbserver/linux-x86-tdesc.h
-ef3ca9097842852af7d299239b750060  gdb/gdbserver/tracepoint.c
-dfa04edd07eb04b8000bb7274f6a2c4d  gdb/gdbserver/nto-low.h
-9221019c6ec60eed7703c8be7f1efd3b  gdb/gdbserver/win32-i386-low.c
-3bae1eb7855f777d098a2091fe401d88  gdb/gdbserver/linux-nios2-low.c
-72840564e4cce841638670989191a805  gdb/gdbserver/lynx-ppc-low.c
-be6b89acfebe14b1290d649ded65918f  gdb/gdbserver/ax.c
-ace42f19e386d7420605894476ee00e1  gdb/gdbserver/regcache.c
-eb75fb043fae43c038799b6c28a91d59  gdb/gdbserver/target.c
-2d3c7e9c173c718f7eae9f8f92d5261f  gdb/gdbserver/server.h
-db71c211249d09e2d78a282e007ceab8  gdb/gdbserver/linux-i386-ipa.c
+e592ff47af6146259906f9893dcdb8ac  gdb/gdbserver/mem-break.c
+2049cb73a60db99ff0517d0d5fc03e76  gdb/gdbserver/linux-mips-low.c
+1c3c1048050eb7a037569985a4dd4569  gdb/gdbserver/linux-x86-tdesc.h
+a98a61b5eae2fa1e407a4a15fa22ff2a  gdb/gdbserver/tracepoint.c
+89154e30aa6ef65e4c9346b7e2334719  gdb/gdbserver/nto-low.h
+f29375a16ee14adfed502a33f17ae6ea  gdb/gdbserver/win32-i386-low.c
+295113683d1806be1e3b02caf17b5724  gdb/gdbserver/linux-nios2-low.c
+219b5c851ceca8ce2416340087ad2941  gdb/gdbserver/lynx-ppc-low.c
+b0c5156a1d43ec53c5e6d682acc89ef9  gdb/gdbserver/ax.c
+9b2dc333f650f507481781d677601b52  gdb/gdbserver/regcache.c
+a4b7b63587f66d5d249d293122a2273d  gdb/gdbserver/target.c
+358649d623853040ca035e971e718551  gdb/gdbserver/server.h
+00042badf2f58de35cea510ec016e07b  gdb/gdbserver/linux-i386-ipa.c
 117ca7c66926a45a859c23ea406f929d  gdb/gdbserver/.gitignore
-5406562a364b4e2f016724e6ae52bcaa  gdb/gdbserver/lynx-i386-low.c
-3977969678caa2fdc328216c505aaaa6  gdb/gdbserver/lynx-low.c
-ffc5ab869383f0c098544159edc1f269  gdb/gdbserver/linux-s390-tdesc.h
-3df5a743ffbc7da5674f81aa86b3ccc0  gdb/gdbserver/linux-sh-low.c
-ffb310f3203e0ef444d3c036ebe26e5d  gdb/gdbserver/spu-low.c
-9266535b3271a12af9daa5d3c4ca94e5  gdb/gdbserver/symbol.c
-db5cf782100d00b694e7a084f03709e3  gdb/gdbserver/gdb_proc_service.h
-2e202d8715279736383aa6092ede2a88  gdb/gdbserver/linux-crisv32-low.c
-6b7c179aa02bf2ed9b43587d7a5a8ae6  gdb/gdbserver/linux-ppc-ipa.c
-37e2791abcc820e6e205db12685b1485  gdb/gdbserver/proc-service.c
-de858d02986342b36d212cf93a19c76f  gdb/gdbserver/remote-utils.c
-61be7b5f6d48e4998e8ed6b17e6e883c  gdb/gdbserver/hostio.h
-cad75b7d66806cdbc7418db459f91d94  gdb/gdbserver/notif.h
-f944c6d74b9cb4d7d370097705912446  gdb/gdbserver/linux-x86-low.c
-15d17b20c2853f2c7e6d6b39f100c578  gdb/gdbserver/server.c
-082679cf51ecddde269562e6f1c18102  gdb/gdbserver/dll.c
-25a124bcff9fb42e776aeb8d1be25796  gdb/gdbserver/debug.h
-446444b714675f0007a2d3768ebc29bc  gdb/gdbserver/nto-low.c
-162674efc40eda85c5a465f5073f1628  gdb/gdbserver/x86-low.c
-36ee0fe5af2e22099eea7942fb08eb48  gdb/gdbserver/gdbreplay.c
-ac15bd72795dca109d3269b5888ac49c  gdb/gdbserver/regcache.h
+049bf14000cc15c5d29a974b5f04ef95  gdb/gdbserver/lynx-i386-low.c
+06059cc05d0196b564ea83041245da69  gdb/gdbserver/lynx-low.c
+cc73677b2499c4947750b91d808a5793  gdb/gdbserver/linux-s390-tdesc.h
+f395615ffa5b27101bb0fced19eb8cee  gdb/gdbserver/linux-sh-low.c
+fe5ef8f1722fd01a3d9e3cf995a95424  gdb/gdbserver/spu-low.c
+a4f0d06594e475d41bad791ce5be5345  gdb/gdbserver/symbol.c
+6e949f8260d93d18a6a50dd595f08fed  gdb/gdbserver/gdb_proc_service.h
+3f026bc540e8ffeaa2b93dc6a436392a  gdb/gdbserver/linux-crisv32-low.c
+95d11d8b713731c000f7457cdabe6a6a  gdb/gdbserver/linux-ppc-ipa.c
+88c15bcf2483fa23b4bf64496c4c9f0c  gdb/gdbserver/proc-service.c
+0cb39c4fb80d252092c905f0b172c24d  gdb/gdbserver/linux-aarch64-tdesc-selftest.c
+ff437432f571bf3b76e4ffd04459e4e6  gdb/gdbserver/remote-utils.c
+2bebdd4f6d94de41afadf327b5a76250  gdb/gdbserver/hostio.h
+047f626a5cb76fac8a059967b0306cd0  gdb/gdbserver/notif.h
+a3e4e8d8ffa38b8db00d37e7bf7926a4  gdb/gdbserver/linux-x86-low.c
+3b7b2517dca2eef7447db7f743fe2058  gdb/gdbserver/server.c
+d736bb10cb3ddcf52a1644e81620f2cb  gdb/gdbserver/dll.c
+af7835dd683710f8c69e2a8fbfb6eae4  gdb/gdbserver/debug.h
+5465c284467164ac77866d04f40831a4  gdb/gdbserver/nto-low.c
+2106943d3f2091e310a28b1772be6055  gdb/gdbserver/x86-low.c
+b2a7840301f9a756598d35c02fea9c43  gdb/gdbserver/gdbreplay.c
+109d814fe3676a43a3e6203808262540  gdb/gdbserver/regcache.h
 9c1cff98ebfeb6dad31afb0416dae57e  gdb/gdbserver/acinclude.m4
-38b4f97b379dcc24e455015c88086478  gdb/gdbserver/configure
-61e9af4156ae4cd39d0eb857e7497f7e  gdb/gdbserver/notif.c
-20925d21c1f15146691cb40615aa42ff  gdb/gdbserver/linux-cris-low.c
+75740150398ac7e0410a4ff3569fb7b6  gdb/gdbserver/configure
+c3667fdc9cd67df9fe41bd1bd00eb03c  gdb/gdbserver/notif.c
+1bdd837caf5c60cda25f2dd03145b2c7  gdb/gdbserver/linux-cris-low.c
 7f017910fc10864faa3886a248c0de44  gdb/gdbserver/aclocal.m4
-83e73a562e3eb149f1f02a1cf7aff70b  gdb/gdbserver/thread-db.c
-bbf1465b00bd3559450ee55a5cc8cd0f  gdb/gdbserver/linux-s390-ipa.c
-4a710d3853ce926eef4cc1080a68d083  gdb/gdbserver/linux-tile-low.c
-0aded275ea5243608ac46efd4b1af8a6  gdb/gdbserver/ChangeLog
-1421c033a2b003201b48f3166e418caf  gdb/gdbserver/linux-ppc-low.c
-7fb671b2bb66092c488706bf2a326f21  gdb/gdbserver/linux-low.c
-d0b0adf01994cecedbdf100478d5d875  gdb/gdbserver/proc-service.list
-25de3a382db5fef46ea0434f23a7f443  gdb/gdbserver/linux-s390-low.c
-19427a40bd59b3b4c3b41427ca999490  gdb/gdbserver/utils.h
-80ed42f44054361088932b97c26f27f7  gdb/gdbserver/linux-amd64-ipa.c
-e535b7afd1a09092f89c426c5fb26726  gdb/gdbserver/linux-sparc-low.c
-ece20d2e9ea67650416cf628569d64f8  gdb/gdbserver/linux-xtensa-low.c
-80663c989ebdeadb02b0ffe6bf799f62  gdb/gdbserver/wincecompat.h
-0aa4fb1d6f59dc272c6fac4d73fe62a7  gdb/gdbserver/i387-fp.c
-cd50b5a90e62c74ef0a6fecf8a1606c0  gdb/gdbserver/tdesc.h
-c8795a561392373f69f7bc5772d70d89  gdb/gdbserver/debug.c
-2020114c5f694858b2fdce9a7c4acfba  gdb/gdbserver/gdbthread.h
-f8f267dde715a8d3d448d2cc3e6899b7  gdb/gdbserver/linux-aarch32-low.c
-30fb8eeaa605635f67ee6fc8e766b1a7  gdb/gdbserver/win32-low.h
-a38db201f19d870d16492b369a6a0005  gdb/gdbserver/linux-aarch64-ipa.c
-79ad77ba8c354a295e0b950ba3fc6d61  gdb/gdbserver/linux-aarch32-low.h
-8330bb23e03cd9b4ed8b537b46d11145  gdb/gdbserver/remote-utils.h
-d4d7a96f1c9d42d49f6ec2dc5e6fc239  gdb/gdbserver/i387-fp.h
-da6d2bf80528e571f0b3dcc7a99faaa9  gdb/gdbserver/inferiors.c
-a3746c6f244dd262b6aa257accc7ba4e  gdb/gdbserver/hostio.c
-cf12fab456c15ab8cac42e17708d2e0d  gdb/i386-nbsd-tdep.c
-183c43ea184c1d9359649b2b5aa9eebf  gdb/data-directory/Makefile.in
+963b0f62970b9f043f3695f8b572d300  gdb/gdbserver/thread-db.c
+390acc164d76b40e8c627385e289b84b  gdb/gdbserver/linux-s390-ipa.c
+bfa9ceb983ffaf55b4025c073a0e8bbb  gdb/gdbserver/linux-tile-low.c
+1e038e184a62718f3e1bf6b8dfeb5b29  gdb/gdbserver/ChangeLog
+617f7b084f0303a4edd1e990fdfc6f7e  gdb/gdbserver/linux-ppc-low.c
+28c9e80ca53f330cbf01e7bf0d505664  gdb/gdbserver/linux-low.c
+2ce8d0b523754928d0d12157dc96db5d  gdb/gdbserver/proc-service.list
+57d6a3404dc9bdff68f0b5c8a7c7dc9f  gdb/gdbserver/linux-s390-low.c
+894546f398566c9321e54cc5f3d9a228  gdb/gdbserver/utils.h
+a5c83f32100f2716a190653da3bda9a0  gdb/gdbserver/linux-amd64-ipa.c
+5e3b1392cf0ff3f6771312ce599364dd  gdb/gdbserver/linux-sparc-low.c
+cf25c8abcf7717bbf3e4057bd0b0c2ec  gdb/gdbserver/linux-xtensa-low.c
+a4aed30322e23895f9d8f0a28400a513  gdb/gdbserver/wincecompat.h
+e1d6e7c98d063b47b4c6a3d516230332  gdb/gdbserver/i387-fp.c
+9a733f28669eaa44a4c9f9dce9332727  gdb/gdbserver/tdesc.h
+49c6e38e215c24eb9044f98324da2eac  gdb/gdbserver/debug.c
+37e9b589b0ce74e5fef0d5ebea41d74a  gdb/gdbserver/gdbthread.h
+83d7a52b81456f3d8e43f79024b44f08  gdb/gdbserver/linux-aarch32-low.c
+a848c3e746420a45b9449aeeee4a2607  gdb/gdbserver/win32-low.h
+45cd34ce317c07366c103460645714e9  gdb/gdbserver/linux-aarch64-ipa.c
+7a5479c526ff63621995ccfa232e11a0  gdb/gdbserver/linux-aarch32-low.h
+b3a7f91575b3b27368826cc4f9c2cb2b  gdb/gdbserver/remote-utils.h
+1506802368878216c3303b21f75d6d41  gdb/gdbserver/linux-aarch64-tdesc.h
+7bf08a93ea8d7641c22a452b48e3d4cf  gdb/gdbserver/i387-fp.h
+a3707f9f1966145a53025b04d50f07cb  gdb/gdbserver/inferiors.c
+3a6d77c065bc067f71d24a4f417e04e7  gdb/gdbserver/hostio.c
+248248b15af90913ab8d4f8908e37fb6  gdb/gdbserver/linux-x86-tdesc-selftest.c
+ad55b2700c208d452b998cb0042a31ae  gdb/i386-nbsd-tdep.c
+796dd2532d62ef3d8f7325f72733a219  gdb/data-directory/Makefile.in
 e5e48ebe3b4dffb7c59b8b6ccc42d977  gdb/data-directory/.gitignore
-7ef993bd326caac101f2533fe6232e55  gdb/dwarf2expr.h
-516635ae522daa0da5c8800efa27e13a  gdb/extension.c
-81d34545b5f78784da8febfcac180d14  gdb/exec.h
-05bc1e63aa3d08feaef2c9cc24c63883  gdb/transform.m4
-67f644d68ccdf997f22624977a894429  gdb/stubs/ia64vms-stub.c
+90d0164cbe0d1080f605222c12354df1  gdb/dwarf2expr.h
+c86ea4adae09be283326e07ce8020f4f  gdb/extension.c
+2ff1399d0b991c7b9b0def222da9c058  gdb/exec.h
+7d5dacd163890b027c0ac92e778fb1ef  gdb/transform.m4
+3f98cc230b93f0e46c754f64d5913c5a  gdb/stubs/ia64vms-stub.c
 04ef5745a7e6781587638a72b849da35  gdb/stubs/m68k-stub.c
-5be3c84b5b947791b8147bcff69dc9c3  gdb/stubs/buildvms.com
+e6721e582e9fbeb118254a278bbdc088  gdb/stubs/buildvms.com
 0644af48c77adac296d83d3fe9bc65e3  gdb/stubs/i386-stub.c
 a45d74c0301c9dea17f393d3ef6c9372  gdb/stubs/ChangeLog
 ef7f67e5720cf7b193349f8687243947  gdb/stubs/m32r-stub.c
 8edc014e1b5928dd9761408fa7df0d64  gdb/stubs/sparc-stub.c
 ffc93e69a8813484cec63da022b68375  gdb/stubs/sh-stub.c
-afe121e9ce8329e57e83ee227edd7ecf  gdb/buildsym.c
-a2fdc91ef9e59b2e408c7613ef898529  gdb/breakpoint.h
-a06c127b00a34eb0b4931521492aec96  gdb/objfiles.c
-d9a8248ab5511cba965434bb7373dd66  gdb/debug.c
-9f0adcb2af4b1af2648e534aa1266c91  gdb/sol2-tdep.h
-d2b3612fdd808cdcf535ca988d9718c6  gdb/ppc-linux-tdep.c
+d7d253a5c863abe44a501d2f50860f28  gdb/buildsym.c
+7c8809a255731e3db200886fbe29d462  gdb/breakpoint.h
+a28cf9a5696371cfc2fa55beb342f46d  gdb/objfiles.c
+6dc50ee9f50761b994845c93e943ac7d  gdb/debug.c
+754096f3d7e72140a7b0c9af2957d9fd  gdb/sol2-tdep.h
+79ee362bb94b1ff999d3df2e01e9c4b7  gdb/ppc-linux-tdep.c
 33e82795b3de28ec33551530ec362c2c  gdb/ChangeLog-2007
-dd2fea0f0eeaf8797f63b95813f00a6d  gdb/gdbthread.h
-0ddd24ad013cbd566daf54c952126c04  gdb/macroexp.c
-a7e05b0f3ff6d043067199ad6f5662de  gdb/blockframe.c
-51336da300f10128ef6d8e0c9377e7d4  gdb/ia64-vms-tdep.c
-1b76de43044f797c20c7abde33ac0a57  gdb/rs6000-nat.c
-a24f89b118cf136ac9fa2b282535466a  gdb/ppc-sysv-tdep.c
+aea569b07a0839388af6b4cc86d28b5e  gdb/gdbthread.h
+18ebe169154637cf92d7350e6b608099  gdb/macroexp.c
+1db6f163448b2b2abbd2d3df5962aea2  gdb/blockframe.c
+69adf5f08e1c65716b8a28db7e80007b  gdb/ia64-vms-tdep.c
+872c8b20d18a3d297493e565347b9c6c  gdb/rs6000-nat.c
+b120a2c2816a1004635322db9ec079df  gdb/ppc-sysv-tdep.c
 dafe29925d5cc67b50a71bb43b16654f  gdb/ChangeLog-2009
-ade06e13b2691a3e27ab455b8eeff63a  gdb/sparc-tdep.c
-8704c4ea8c132ce24a9388c43ef0c74e  gdb/libmcheck.m4
-a84e3e2416c10beffd68de1acbd33dee  gdb/m2-valprint.c
+442b427314f6574367d3740b216069e4  gdb/sparc-tdep.c
+844200235b6dfcc1ab07522c1aabfc86  gdb/libmcheck.m4
+3e67c38511d3004a4fc665c958658f22  gdb/m2-valprint.c
 5fffd8c47764eda70194c34de6e02f2e  gdb/ChangeLog-2003
-130bb8e25f18c99a00b7fbded1adb981  gdb/sparc64-nat.c
-5c5116eb4a068bebeb0e3b17e2189d1d  gdb/nios2-linux-tdep.c
-ecae089d754bf6f66245bf8928976863  gdb/proc-events.c
-f16e848de47351da7a45ef0d8aea6841  gdb/go-exp.c
-38a3d29080dbe2b47a16e704ed63b460  gdb/glibc-tdep.h
-16f727e9c06aee8d0774f39636060e70  gdb/macroexp.h
-a4ae90efe90c0210b7e13fe40f9f4217  gdb/m68k-linux-nat.c
-30decfc47137e35f23471838da9ea8a0  gdb/arm-nbsd-tdep.c
-b3bbd7b26b2534f80d010336e9d628c0  gdb/rust-exp.y
-aac3af1d0422f41c3a1506a2c549ee2b  gdb/linux-nat.c
-f55456e52866ae19cdac9c455f2ec11a  gdb/nds32-tdep.h
-a564242e1845cbec56dbec8423a8cd56  gdb/sh-tdep.h
-f11235203e3ca94338b05de87b125753  gdb/top.h
-6a116f2cb3c416fb5815acce6bf7de59  gdb/xml-syscall.h
-7f3805ed713d07a7e5b23d40f7b4a9cb  gdb/xtensa-linux-nat.c
+47bd96ab5396b4a38d9790d18e05c453  gdb/sparc64-nat.c
+e74ce9fb9b97713460f86f15abb56368  gdb/nios2-linux-tdep.c
+e61f8d1bb4a0b39e3873494b56feb447  gdb/proc-events.c
+4a579bdbe981beb35d0a19264d413c2b  gdb/go-exp.c
+c63de3b8fe8d1745aa6da23e8b6d7a49  gdb/glibc-tdep.h
+2e91490d5ecc8efe72f30333313308e2  gdb/macroexp.h
+e722726b96ac7e492e7cca51490589a1  gdb/m68k-linux-nat.c
+46c7561fad0bf32939842cca4d794a12  gdb/arm-nbsd-tdep.c
+294bc5d559fe6a8b196af7db3cb80366  gdb/rust-exp.y
+2aeed3066a6ec1554e2a75657e6503ff  gdb/linux-nat.c
+619ef7db8e62a0be1f0b1e5707970dbd  gdb/producer.h
+f44ef527ff311fa0d11539c1d764a819  gdb/nds32-tdep.h
+db39dae4bf92c13f266edc08e08f0a93  gdb/sh-tdep.h
+d0839b701a23175e4d8c170f2aedbf97  gdb/top.h
+e9cd0cce650615a84b93a985211012c4  gdb/xml-syscall.h
+7d81fbdc6ebba8743950a5a7c10dc387  gdb/xtensa-linux-nat.c
 1f6b545be0b6822eca215d0b5f1edfc2  gdb/exc_request.defs
-b36d12dce3773e11ca323dc72c62e785  gdb/c-exp.y
-76cd43eda3636731e5daf1e921c2ddba  gdb/alpha-bsd-tdep.c
+a7905b9497d7a6257303424612e583b5  gdb/c-exp.y
+a89155f1dd915b34a7ac23f5c5189e60  gdb/alpha-bsd-tdep.c
 8f5a03c189727d347a330548f3ea9c98  gdb/ChangeLog-1991
-ff30b803c5829915dc932a00511a6a2a  gdb/amd64-nat.h
-4242fb9f3ff94cb2d0c433e58d764a2b  gdb/windows-nat.c
-bb10a2fcf866a5325f892ffadcce8414  gdb/gnulib/Makefile.in
-f983e4c6740a13b20ef2fb942e777c78  gdb/gnulib/config.in
-8d528013452e89c0aae9c30848ab6f20  gdb/gnulib/configure.ac
+125d5ce2b1bc60687746cbfcc76e23e4  gdb/amd64-nat.h
+e26cf0bb4ff7cb657c0f1a411842edd5  gdb/windows-nat.c
+74e36373111250be3de69a520303ef70  gdb/gnulib/Makefile.in
+64dcb3959fddaadf0f8c840dfc2fff1f  gdb/gnulib/config.in
+af0b527add39ba117bdc5c0f9c112293  gdb/gnulib/configure.ac
 691f64c2b6b6166bb570baddce45cc79  gdb/gnulib/import/errno.in.h
 a80bdc4b90e09496a70a9c94c75f5ef3  gdb/gnulib/import/string.in.h
+3ddfc05c43b02a6da66b6861a898b921  gdb/gnulib/import/filenamecat-lgpl.c
+cc7c8722be81b4b7b560e7c8ed22e3aa  gdb/gnulib/import/realloc.c
+aadf8667b8c883e7e9d069e8fde4752b  gdb/gnulib/import/intprops.h
 ed975673ab32b875815d047101524618  gdb/gnulib/import/stddef.in.h
 c8e03943b65b41846bb6c451b8a63843  gdb/gnulib/import/extra/update-copyright
 e228064a3c2755b1381df29c0f509c4d  gdb/gnulib/import/extra/snippet/_Noreturn.h
 999bcbc13cd7852e6d69f75d87e27eda  gdb/gnulib/import/extra/snippet/c++defs.h
 1ce0842c3f4fae8f5c955acaa6a7bd44  gdb/gnulib/import/extra/snippet/warn-on-use.h
 fa46bc4e77e26c6dc445946182922ac8  gdb/gnulib/import/extra/snippet/arg-nonnull.h
+2eeb3e4f9cb15b608fb9bd9efcd7122e  gdb/gnulib/import/assure.h
+c9803b2587efcd71e6abbd5d1b2f1c38  gdb/gnulib/import/unistd--.h
+3df15df12b015d7ff5c4d0ef3be5fccb  gdb/gnulib/import/pipe-safer.c
 f7665965a9e3509fcc824946d3a7da58  gdb/gnulib/import/fnmatch.c
-b8eee20556d0daac42dd842b2c942420  gdb/gnulib/import/Makefile.in
+f83393cc955f105dcec0ebdafa631940  gdb/gnulib/import/Makefile.in
 4eb1e150d2fc8b8f10431f8b8a0014f7  gdb/gnulib/import/stdint.in.h
 2ff16aad501316e63f0b85cfddfbc95b  gdb/gnulib/import/strchrnul.c
 6111a7b56a5e4cef98e93db80c093e82  gdb/gnulib/import/dirent.in.h
 6772f9233779dc66aa81db77767a5987  gdb/gnulib/import/localcharset.h
+fb0c776de7513cc5597c18eb44ca8ea7  gdb/gnulib/import/openat-priv.h
 8de45428948e1901fc916118cafaf373  gdb/gnulib/import/math.c
+b3c3995c65e3eaa19a995043b7793afb  gdb/gnulib/import/setenv.c
 bb9cbcd114bda8fc81940f765c42806a  gdb/gnulib/import/isnan.c
+b0f954b40497b84615faf9483bad4556  gdb/gnulib/import/strdup.c
+ee2c7c42f943d233eef7250bb7655c0c  gdb/gnulib/import/at-func.c
 d05c0e415291b909107c5719f862cd10  gdb/gnulib/import/itold.c
+ce979e429a781edfa1f37ac092f2b09e  gdb/gnulib/import/fd-hook.h
+1252755afb51f6da2026654534446f1e  gdb/gnulib/import/getlogin_r.c
+7bde6b90768c07eca774586b1b3e5cde  gdb/gnulib/import/getprogname.h
+f6cd10390032401630d230e80c74f06a  gdb/gnulib/import/openat.c
 4d4174974d0b2fe7d1fac3d75420846e  gdb/gnulib/import/float.c
+2c3f9011ecc492007225cae7b8bcd3a5  gdb/gnulib/import/chdir-long.h
+bc2c32ebb6b0b9d1cebc1cf201890cab  gdb/gnulib/import/glob-libc.h
+8bd784ecbd74b6c89e86789884c088ba  gdb/gnulib/import/fdopendir.c
 d3df76784d80a63e24211f73686a3dc9  gdb/gnulib/import/strstr.c
 f176475c82c60cc72f671ee7daeb4e29  gdb/gnulib/import/sys_stat.in.h
 c28f6b23bd66a3b2d60bfa6e58013816  gdb/gnulib/import/mbrtowc.c
 ce9dee9557fd9a4284516ae8a238503a  gdb/gnulib/import/inttypes.in.h
 f62cf24381607f2f5c4e62cbd45104db  gdb/gnulib/import/unistd.in.h
+185e5469d8a0e0743d1b7171efe15527  gdb/gnulib/import/msvc-inval.c
 8a7f374c31d812d63148344d273eba4e  gdb/gnulib/import/streq.h
 fd51dadc8f67a1d41f52327052ecf5e5  gdb/gnulib/import/gettimeofday.c
 ac9e0a7095e71a44c703a5faa466351e  gdb/gnulib/import/hard-locale.c
 eb710ef1390e0cfafb5aa9e99b86152e  gdb/gnulib/import/signal.in.h
+855f540edd4e412caa42b2d89b6252a3  gdb/gnulib/import/openat-die.c
 3443f4dc9dc15c7310fe8abb5fcbda28  gdb/gnulib/import/isnanl-nolibm.h
+bc48b66660f4b5bdaf4d9f27cbd17aa0  gdb/gnulib/import/closedir.c
+c19bd94272c5e31a718033da199c5234  gdb/gnulib/import/msvc-nothrow.h
 469f8a579b9239ed8098c49c5511b67d  gdb/gnulib/import/fpucw.h
 eb48d94e492a40ab051d07d876743ab5  gdb/gnulib/import/float+.h
 ce565caf826854cd78dcdd3dfacbb928  gdb/gnulib/import/unistd.c
 742df2c35947af3f9e33c30af88b9bb5  gdb/gnulib/import/fnmatch.in.h
 0aeff67f939d2ff5ee2ce953863e8f1b  gdb/gnulib/import/frexp.c
+466ccf27add111239de5b4faf1b99d41  gdb/gnulib/import/dup-safer.c
+8724fcd4f64a95fca678f5daa70efebd  gdb/gnulib/import/unsetenv.c
+631c8caef8ae54c28ffbf9fdda6f9293  gdb/gnulib/import/fstatat.c
+e2c48b95def8965575213bd58c5e5673  gdb/gnulib/import/getdtablesize.c
 391c711f4412c21af6eac646224c7b1b  gdb/gnulib/import/alloca.in.h
 e7f9eb12ac2bbe257240afa4a4bed91c  gdb/gnulib/import/isnand-nolibm.h
+0645f370358c4559f6fe74555581535c  gdb/gnulib/import/close.c
+315be7f511121065f502d868cdc2eff6  gdb/gnulib/import/openat-proc.c
 ff87340508c63562abc5b5abfe00c857  gdb/gnulib/import/hard-locale.h
+2e11259966aa3c8bcd39902d09996b7d  gdb/gnulib/import/unistd-safer.h
 b7f661874bacfa66a33c7bf784ffdc8e  gdb/gnulib/import/memmem.c
 7584a85be8746b5912072e494f3707bf  gdb/gnulib/import/m4/time_h.m4
 f56eed0a1b53a3eefbbf10006802d5d1  gdb/gnulib/import/m4/mbrtowc.m4
 3272c133ed6d89896dc8024bbc42b7eb  gdb/gnulib/import/m4/unistd_h.m4
 2d7304478efd29b98f632d4a2d891417  gdb/gnulib/import/m4/rmdir.m4
 798ebdaa936fe374a373a8422b958ef2  gdb/gnulib/import/m4/extensions.m4
+aa053bfb1d4984dae7f04a28b93a30db  gdb/gnulib/import/m4/error.m4
 890a3049622fcf893fea64c61130eedc  gdb/gnulib/import/m4/dirent_h.m4
+d9fdbee92da6936a6f03ebb451b3e9e9  gdb/gnulib/import/m4/readdir.m4
 ba330b6170539c913439bb7c0687b119  gdb/gnulib/import/m4/nocrash.m4
+3b63c2ba7f13988a94592ab4663d4522  gdb/gnulib/import/m4/closedir.m4
+69bf71cc158e53d7c4ade4a78c6623e8  gdb/gnulib/import/m4/strerror.m4
 6c109de510f5f8277c65d5f6fcade63d  gdb/gnulib/import/m4/isnanl.m4
+ae31a77af40929cbfda51299d7d95595  gdb/gnulib/import/m4/fcntl_h.m4
 c5d526869e4bdf5ee8ca1e5ecab4593e  gdb/gnulib/import/m4/wchar_h.m4
+b870ad331b9499f5cdf6cbb765b54548  gdb/gnulib/import/m4/dup.m4
 ae24aff8bb432634230ae052a5d917ff  gdb/gnulib/import/m4/strchrnul.m4
 beb4613a1145f0bf2da48587665683be  gdb/gnulib/import/m4/configmake.m4
+6e5e548294a2700a0c4f0b4ecb37ed63  gdb/gnulib/import/m4/dup2.m4
 eca7f4e30ef1087cda72acc5279e8b51  gdb/gnulib/import/m4/sys_socket_h.m4
+d2626471d2ec9c13282efa0c13b40cb4  gdb/gnulib/import/m4/fstatat.m4
 bc32620a2c5171274f3d6c76dadfb8ba  gdb/gnulib/import/m4/stdint.m4
 661e86f7253a6d4089b805bf046dea92  gdb/gnulib/import/m4/mbsrtowcs.m4
 d1fbae44088c563b30b86f6e6fe6128a  gdb/gnulib/import/m4/alloca.m4
 54dbb9372f71531667058e6cc94b0406  gdb/gnulib/import/m4/malloca.m4
+900729b31616687830e9be5ce61b1b94  gdb/gnulib/import/m4/fcntl.m4
 0cffa8c5e37e9d027edb74185521d877  gdb/gnulib/import/m4/fcntl-o.m4
 f5b1585cddfa4b3176d1d90a264c73ad  gdb/gnulib/import/m4/limits-h.m4
 bf3125da7ed4f91c9343df8eca252e2d  gdb/gnulib/import/m4/fnmatch.m4
@@ -5880,46 +6033,63 @@ bf3125da7ed4f91c9343df8eca252e2d  gdb/gn
 5e3bc820b0ce9ac213f418768a1443f1  gdb/gnulib/import/m4/rawmemchr.m4
 c30262529f4a822e5b0cca6a1d58cc50  gdb/gnulib/import/m4/exponentd.m4
 7cc85e6e5f6fe513c6b5fcb283739ac8  gdb/gnulib/import/m4/inttypes.m4
+7fdf06ebe0a44c64613e54c9c04c1a43  gdb/gnulib/import/m4/unistd-safer.m4
 3cbc6c95b0625b1c77fdab93f4bf7cb4  gdb/gnulib/import/m4/sys_types_h.m4
 75323bceb9792027373742f1b0dddee6  gdb/gnulib/import/m4/memchr.m4
 eab6e51c5bc9bdecd18e5bd062c8f2a8  gdb/gnulib/import/m4/float_h.m4
+d75b4149ba72cb5e64632de009a40b0a  gdb/gnulib/import/m4/d-ino.m4
 00826ede0e3c000e04682e1f7dcc5fce  gdb/gnulib/import/m4/wctype_h.m4
 358a9fe340a0fd24b4458be4b9bcf852  gdb/gnulib/import/m4/locale-ja.m4
-53746adcf10a0b101a4a0d702633cff0  gdb/gnulib/import/m4/gnulib-comp.m4
+e772b481ee402e9b5516dbe35dd60c46  gdb/gnulib/import/m4/gnulib-comp.m4
+1752bb7ebffacf32b01e744df8376dcf  gdb/gnulib/import/m4/getcwd-abort-bug.m4
 7365ab0b7695bacd8e46e8d8ee8f7959  gdb/gnulib/import/m4/signal_h.m4
+a75980da44e6057c33eb3113a355968c  gdb/gnulib/import/m4/rewinddir.m4
 15cb28a4f2b0489b543504588a5e2906  gdb/gnulib/import/m4/sys_time_h.m4
 3e663d41da88c7d3cc6c9a06ddabc13c  gdb/gnulib/import/m4/errno_h.m4
+cc7829fb333fb09b407cd5e2892450cd  gdb/gnulib/import/m4/filenamecat.m4
 cac8201b0ba3b84e923e809e18203778  gdb/gnulib/import/m4/inttypes-pri.m4
 ee6f3ba1af4628dcbf3f447b35066b3a  gdb/gnulib/import/m4/memmem.m4
 b6d562b723773fa1c9a16a3f5f691680  gdb/gnulib/import/m4/wchar_t.m4
 c1df30b8e116310fb6a5a754acd17706  gdb/gnulib/import/m4/stdio_h.m4
 b08762ef5be6bf97bd818c9b74629bf8  gdb/gnulib/import/m4/fpieee.m4
+f3e661195805aa9297b135361eb88b29  gdb/gnulib/import/m4/close.m4
+2398336af45fbab71d9dc088648f1d33  gdb/gnulib/import/m4/fstat.m4
 f468c22d7c0b4db63b6cff9a14659492  gdb/gnulib/import/m4/readlink.m4
 81884105f1839ef6cebef995283ac5d4  gdb/gnulib/import/m4/multiarch.m4
 aea4a6dec3dc2e55e068c9c03db277bc  gdb/gnulib/import/m4/rename.m4
 44531b9f719b4572e7a5cf482e5bccb1  gdb/gnulib/import/m4/localcharset.m4
 40be24f5e4e7ab8bf63f9771bdd45c6d  gdb/gnulib/import/m4/00gnulib.m4
 96e683beae420cc1c8c891264734bea3  gdb/gnulib/import/m4/wint_t.m4
+317492c97965752b33419d042c21965c  gdb/gnulib/import/m4/environ.m4
 6e620783945311041ae584f8c6b36288  gdb/gnulib/import/m4/string_h.m4
+f59829d13c03c8c1132686ba6dddca8e  gdb/gnulib/import/m4/msvc-inval.m4
 3d7e16d512964255854db1ba2cb70e55  gdb/gnulib/import/m4/mbstate_t.m4
 b1ee09676e562c948c905e781ca12530  gdb/gnulib/import/m4/math_h.m4
 c0c75172f42af8dc81ba8f77814b4aa5  gdb/gnulib/import/m4/absolute-header.m4
 1ad9725324f89fe13537d003f406e674  gdb/gnulib/import/m4/gnulib-common.m4
+0c1eb1a8750c84ebd9fba3d454a5c54c  gdb/gnulib/import/m4/mode_t.m4
 10a309d2588c00235156519e522c12d3  gdb/gnulib/import/m4/exponentl.m4
 81bee3c19c0d14fad981216cc244c17c  gdb/gnulib/import/m4/canonicalize.m4
-6aa878b5e14def281f0cc72e5671551e  gdb/gnulib/import/m4/gnulib-cache.m4
+c2cb4a014b84a7cad566cd5d2faaa1f0  gdb/gnulib/import/m4/gnulib-cache.m4
+729ae476cc1267bb23d56266b9010fcd  gdb/gnulib/import/m4/getlogin_r.m4
+4e888ab2578bc219ae2290a9ce5be0ca  gdb/gnulib/import/m4/realloc.m4
 ac8542ecf1de857b71cb11be65c6bd18  gdb/gnulib/import/m4/dirname.m4
+f199f67d5ab359e85b8e0238fff4e976  gdb/gnulib/import/m4/d-type.m4
 e24459aa4ade32d3db2847944f9a2268  gdb/gnulib/import/m4/double-slash-root.m4
 faf050ca7bdb3093e5d94497711656ec  gdb/gnulib/import/m4/pathmax.m4
 bdf4a52b408ba6c22c0645a2a48a211b  gdb/gnulib/import/m4/frexpl.m4
 78113de5440a6e8c5f79cbbb4a7e687d  gdb/gnulib/import/m4/ssize_t.m4
 b7cad800df498737966a3f160432fac0  gdb/gnulib/import/m4/include_next.m4
+84cf685f519b95e5d5227b9d8c600ba9  gdb/gnulib/import/m4/save-cwd.m4
+135e80ce68eb32130640639b14a75a11  gdb/gnulib/import/m4/chdir-long.m4
 0b88252de1b4f3e6346e2185f6122647  gdb/gnulib/import/m4/largefile.m4
 332c6c074d2342b32a0212a5c84b9ca5  gdb/gnulib/import/m4/mbsinit.m4
 9d0cdfaccbbeb24cd5eb1c969f9a15dc  gdb/gnulib/import/m4/dirfd.m4
 0a69313b7e648976057b3f6271ab2263  gdb/gnulib/import/m4/flexmember.m4
 4bb07b6f1bb9aaca526bc68963cccb5c  gdb/gnulib/import/m4/strstr.m4
+13e3572f9b6c56f96a53ef7d8220b251  gdb/gnulib/import/m4/getdtablesize.m4
 294a2e020e5a23fde52d776b5d557290  gdb/gnulib/import/m4/warn-on-use.m4
+dc73ea8ca3764b5e6b24b170df964879  gdb/gnulib/import/m4/fdopendir.m4
 2443c5b052ef5e832ff3b45ee27d6aed  gdb/gnulib/import/m4/malloc.m4
 ceb3ce8eac412f608fa172b0ca473f22  gdb/gnulib/import/m4/mmap-anon.m4
 9b3a19bb712d27e2472eabf56457de7e  gdb/gnulib/import/m4/stddef_h.m4
@@ -5929,514 +6099,598 @@ a32fef5958dca28028b8761b14fe6df9  gdb/gn
 1148b6e9eb369d74c538d5fcad97efb9  gdb/gnulib/import/m4/stdlib_h.m4
 fed1bc663f100dfafaf5edd0f578e095  gdb/gnulib/import/m4/sys_stat_h.m4
 ecb6fb41e3ef19db4967efe742991bf5  gdb/gnulib/import/m4/strtok_r.m4
+0642a4989b01e00052fddd053a45695e  gdb/gnulib/import/m4/memrchr.m4
+de77cdc5745545ccc6e5ca095dfa329a  gdb/gnulib/import/m4/fchdir.m4
+5940a1c6c82040cf0c1724d15c678343  gdb/gnulib/import/m4/getcwd-path-max.m4
+3f735823cdc25810784bea2fda84445f  gdb/gnulib/import/m4/setenv.m4
 9d1f896dabb42379c69affe2f3154d5e  gdb/gnulib/import/m4/stat.m4
+7efc6ddaa5b36d7eedbc503fdc476cf9  gdb/gnulib/import/m4/opendir.m4
 0b6d15dcb9bc7f8ed669f476033adc02  gdb/gnulib/import/m4/longlong.m4
 be2a9984fc055cfe8844f8f0e96b897f  gdb/gnulib/import/m4/lstat.m4
 053542a2ca4acd60603378c03b9433db  gdb/gnulib/import/m4/frexp.m4
+1792355cc8f65a5b9fe0671a7e2518ee  gdb/gnulib/import/m4/msvc-nothrow.m4
+f53a8b427746ab25f1d8aefe17fbfb50  gdb/gnulib/import/m4/strdup.m4
+378c7bf96f74eb580ced60d40da78475  gdb/gnulib/import/m4/getcwd.m4
+d5bfc760545aeef8e41ad3cbb25c7644  gdb/gnulib/import/m4/open.m4
+fba32c6c6262307077ffb2cd762bd041  gdb/gnulib/import/m4/getprogname.m4
 b59a45ab74bfc44ca8743b147db163d9  gdb/gnulib/import/m4/locale-fr.m4
 38e165634f9a8d2df55b5707c1e29ff2  gdb/gnulib/import/m4/hard-locale.m4
 51ed83a1d7d6548b1d32d1dc0067bf7c  gdb/gnulib/import/m4/eealloc.m4
+5ae97a134d9ca6a161e776ab6b064779  gdb/gnulib/import/m4/mempcpy.m4
 844905dee3381bd917ee7949d4f66736  gdb/gnulib/import/m4/gettimeofday.m4
 69b2da2d3a37808ca2e02cc6179212a4  gdb/gnulib/import/m4/off_t.m4
 308ea249d5550e3382631280eeb7266b  gdb/gnulib/import/m4/extern-inline.m4
 fb1971c229fdeddeeae6abd72709c071  gdb/gnulib/import/m4/codeset.m4
+8a0516f5a2d6d19656b371116de611a0  gdb/gnulib/import/m4/openat.m4
+513ba48373e5262d73df4dd2f9890471  gdb/gnulib/import/m4/glob.m4
 16b096286eac2644dafd850b0cc5fa8c  gdb/gnulib/import/m4/locale-zh.m4
+ffa89c2d84116b05c5e3436967791440  gdb/gnulib/import/readdir.c
 b0b5e4290ee701fd98fe97da70541cca  gdb/gnulib/import/memchr.c
+85adfe8316a612246e9b41e71b95d5f3  gdb/gnulib/import/mempcpy.c
 699d064ce2e6a221cbf0e2a8da7d95ce  gdb/gnulib/import/dirfd.c
 4a0d6f48fa64424c9f2b2469b3e7f6aa  gdb/gnulib/import/rename.c
+92c2c27289ecc60b4ead4300dc4bae1d  gdb/gnulib/import/fd-hook.c
 3b8bfe7856bfd6fe45863def4b5b571f  gdb/gnulib/import/flexmember.h
 94ba1e5194088b5946188778e9761445  gdb/gnulib/import/mbsrtowcs-state.c
 62e7238d26f56aa0c3126d0c1140da95  gdb/gnulib/import/sys_types.in.h
+148cdfaea630cc693ae92ed681d3ed82  gdb/gnulib/import/error.h
 9f2f8163fc50f2feffe3174287e2f318  gdb/gnulib/import/fnmatch_loop.c
 ef66e062f6f0c9c86e5a78611b4277ed  gdb/gnulib/import/strchrnul.valgrind
 daac1e945d7c2fb39b588b34852310cd  gdb/gnulib/import/ref-del.sin
 914c81effa476c65fe1cbbf8766a8edc  gdb/gnulib/import/math.in.h
 cf0759e0918601de39f9979cac53e141  gdb/gnulib/import/rmdir.c
+8894d848210f8842976192ba86c2647b  gdb/gnulib/import/fstat.c
+27534336f23d9fc0162c77fb1f40024c  gdb/gnulib/import/fchdir.c
 6965dd02ea27ad51bc2d2658b49d6b56  gdb/gnulib/import/sys_time.in.h
 ce80de59225450e9de1cff046ec2f0a3  gdb/gnulib/import/memchr.valgrind
+e6c94afccf7d6c1db57293ab60c65b0c  gdb/gnulib/import/exitfail.h
 2d2b83bfc21867fb3315bec49f58aa3b  gdb/gnulib/import/mbsrtowcs-impl.h
 ab69f6df5cd8d130602efacda95cac6b  gdb/gnulib/import/rawmemchr.c
+a9cf05943d577406b9028d0676df2ca5  gdb/gnulib/import/chdir-long.c
+1a9ccbca2f1431d6da07ebdc72864537  gdb/gnulib/import/save-cwd.h
 7d8626f86bb6cffc7440e058449030db  gdb/gnulib/import/verify.h
+d0e91be8ff6769f319f2a198c04e6960  gdb/gnulib/import/rewinddir.c
 2b82c91c0aabb9d085d13905522e0b01  gdb/gnulib/import/dirname.h
 11db18fc5a887239766a23c91e32626c  gdb/gnulib/import/readlink.c
 cf42adae4916712ba58941e5ca64e2d3  gdb/gnulib/import/pathmax.h
+17a603a5ee428186d103b0b4d7dd011b  gdb/gnulib/import/fcntl.in.h
 a0eeaafafde7d0f33021762c4e514171  gdb/gnulib/import/dosname.h
 dd1f2c119d494602753afd4bc28ee06c  gdb/gnulib/import/wctype-h.c
 ccdf375afd8f7530ce7c61117f718c22  gdb/gnulib/import/alloca.c
+53edf30adadb6af6715c7353dea3339c  gdb/gnulib/import/cloexec.h
 0e75d4e0e7ec278fb3f877cde3165153  gdb/gnulib/import/stdlib.in.h
 724655479f61a366df0089fdf95a293b  gdb/gnulib/import/strtok_r.c
+312e2794f6e4ae10de3e8b4bce2bd425  gdb/gnulib/import/cloexec.c
 b13efa9ffc70f5692978bd2b5c189b6d  gdb/gnulib/import/stat.c
 8005605e920358d4a9f5c2f2fb8e9bfd  gdb/gnulib/import/canonicalize-lgpl.c
+ee9342fb654a8291808fa9fb66d4f0e3  gdb/gnulib/import/dup.c
+1ff3eb53ed7b0323e3abb34b46d24478  gdb/gnulib/import/fd-safer.c
+2e8c87b190d8a7c186b8660e9769d03e  gdb/gnulib/import/glob.c
 d6b89eb2076e04eb9e9d28cfd74c22bf  gdb/gnulib/import/same-inode.h
+84df66f8129186dc3c2a3aea7e758c05  gdb/gnulib/import/msvc-inval.h
+50a540f76fdff2cc5080a652cd961db7  gdb/gnulib/import/save-cwd.c
+a4141c0e07b8594e25d09145c679b6ce  gdb/gnulib/import/dup2.c
 5f33bf56abc62cbc0beea943a70b1a4d  gdb/gnulib/import/ref-add.sin
 b372652ec42a586101ae09aefe90dec3  gdb/gnulib/import/stdio.in.h
 0c9f0db4c63473c870443f951ab3c403  gdb/gnulib/import/malloca.c
-04e8980320f9077444d9619e40064ed2  gdb/gnulib/import/Makefile.am
+66bf6095c45268b946119ec8218ec824  gdb/gnulib/import/Makefile.am
 4ff9744a8fb0d845d12d69c4fc4d09cd  gdb/gnulib/import/isnand.c
+2ac8512d774af644f1de9ac46c39ac06  gdb/gnulib/import/getcwd-lgpl.c
 6d508ad286f2b7d2e5d78e9d2d5d0372  gdb/gnulib/import/mbsrtowcs.c
+a022cc28f94e398ee7c5c973ac928f37  gdb/gnulib/import/memrchr.c
+8206a5921b4293107cac9292509715a5  gdb/gnulib/import/opendir.c
+4a6fd52abe7760c33f5453778c67e921  gdb/gnulib/import/exitfail.c
 24bee090b4599cd2fa320e890f1359a5  gdb/gnulib/import/malloca.h
 32c73d2073d2806b808f237c88b5ea9c  gdb/gnulib/import/frexpl.c
+a3859868bd7c904f36041e1d8f1c09b2  gdb/gnulib/import/msvc-nothrow.c
 5a104cb427ffd9600c83285558601d73  gdb/gnulib/import/lstat.c
+d8305e2fc9da321a00d452b7a7d2b7ff  gdb/gnulib/import/filenamecat.h
+4bf0ce8031eb10b8fd778b6001bd7c2a  gdb/gnulib/import/openat.h
+9d4f360fac65d89172c2462ed5d111ba  gdb/gnulib/import/glob.in.h
+e52ddad6ffba2ad9414ac7bb5ffca75a  gdb/gnulib/import/strerror-override.c
+f01cda1aa6694ee4f70bf8ddb1b216e4  gdb/gnulib/import/fcntl.c
 4fc9f3da43856c846e5e75ec936ea411  gdb/gnulib/import/strnlen1.c
 727beda78bb22ef06cd7efec7b8a3652  gdb/gnulib/import/str-two-way.h
 9042d9a181733de05f965f9f0b0275f8  gdb/gnulib/import/stdbool.in.h
+4b8d2d5d82097c0ba0e5d14e36e06ecd  gdb/gnulib/import/gettext.h
 d4972b541587c91ca107b5538c1071fc  gdb/gnulib/import/localcharset.c
+90f2d2438efde7a7b51386d8aa62c732  gdb/gnulib/import/getprogname.c
 037eae846c0b4a23a3a01c0d12cdb300  gdb/gnulib/import/isnanl.c
 b5afee178fd87b7c704ffcd035e416f1  gdb/gnulib/import/config.charset
 31ce4705bef8b5927ec869e32578ff6c  gdb/gnulib/import/malloc.c
 149055fc0aaa8d4adacdcb610f07f88d  gdb/gnulib/import/stripslash.c
 f9bc479e2e5639aa330ac767c5afbcc1  gdb/gnulib/import/wctype.in.h
+29afb42d3cb1159935dc370fef259fff  gdb/gnulib/import/getcwd.c
+b6e5a32fbe330e2d5ad3a8c888e12079  gdb/gnulib/import/error.c
+58582b4965faf5f52814645a4055c84b  gdb/gnulib/import/strerror.c
+4eb29d9617668a937f618d5450388aec  gdb/gnulib/import/open.c
 7eeabe7640a7809822b5bbe7bc02ba91  gdb/gnulib/import/rawmemchr.valgrind
 d9e3445d3dff76a7b9c693341e26cbba  gdb/gnulib/import/float.in.h
 bdeaf786800f05321e5ee32b4a0e36b0  gdb/gnulib/import/strnlen1.h
+4944033525be9c2990e631cef3d52520  gdb/gnulib/import/dirent-private.h
 8cc8478ea7f581bf45c4f6e38166c9af  gdb/gnulib/import/basename-lgpl.c
 5edffd432a27b27476bc33ac5b4cdc78  gdb/gnulib/import/time.in.h
 c8b62a8b088f5549f60660250b4d3676  gdb/gnulib/import/mbsinit.c
 ff8b3054a12715e0ce62435a802760d9  gdb/gnulib/import/wchar.in.h
 e6445c7afbb0de9cbd6722962f22476a  gdb/gnulib/import/limits.in.h
+5b896bc830d568b444ab08bce7dd94f7  gdb/gnulib/import/strerror-override.h
 4afc2077562f87bda203559b54de3d23  gdb/gnulib/import/malloca.valgrind
 eba504acf9815f6f21cf19f50d3c0513  gdb/gnulib/import/dirname-lgpl.c
-2cb24bfc041b189fb80d247885c0e069  gdb/gnulib/update-gnulib.sh
-4cc0f2f1b1562b264bf7a92bfe766f30  gdb/gnulib/configure
-7fe8b58c685455e78ae8908b33505cbc  gdb/gnulib/aclocal.m4
-b56ccb161a240a844cd01ca04194185e  gdb/target-dcache.c
-c8027464c82a6240cbc57be8b77f9593  gdb/alpha-mdebug-tdep.c
-f7e6274a68cffc635d050cbbf0587877  gdb/symmisc.c
-eb52d42520a4d5b1c533984eff982f27  gdb/compile/compile-loc2c.c
-a17ab8332c6f635b916ca419d67de318  gdb/compile/compile.c
-9e7f7c1ba741425189f51183acc61af7  gdb/compile/compile.h
-4b2ec55b8c92433b70852a7bc952587f  gdb/compile/compile-c-symbols.c
-66bd93ca15b3f1697bfd5817ae791c42  gdb/compile/compile-object-run.h
-ebeeea658d84607f0184218bd097f455  gdb/compile/compile-object-load.c
-857dbc20ae3682146e6af98743fda938  gdb/compile/compile-c-support.c
-73e9d8c39e4d8b1ea87d558175710973  gdb/compile/compile-object-run.c
-d5c04fffc58d73f46ca147d816301ce6  gdb/compile/compile-internal.h
-68e2be7b047965adef2fb1546cb0ba51  gdb/compile/compile-object-load.h
-e0a6686bdb407c973649f440208deeeb  gdb/compile/compile-c-types.c
-48a8f9fb29a26d5c72124e4804d6f2d8  gdb/value.h
-82dae5bc90e3bc9b2efe5c9210682e74  gdb/ppc-nbsd-nat.c
-68b9ac0402893cdb514a2431f076fb82  gdb/auxv.h
-7f77021e15a20efe0e9425876c04ee69  gdb/i386-dicos-tdep.c
-d1f720011361f45918122595a22f3185  gdb/aarch64-newlib-tdep.c
-c8cf499a1b971d07defd738b6e4d1903  gdb/gdb_usleep.h
-90e02bcd7489ee28c8b10343b8c6a985  gdb/i387-tdep.c
-5e351bbf454bbd31ca3751710537a224  gdb/ada-operator.def
-4555eb2f974390a07b8a49fb48360d6f  gdb/libiberty.m4
-7c06569940fd684e682eb1e37a42270f  gdb/gcore.c
-795c592ee1287974ec5f2e4f30d347a8  gdb/hppa-linux-tdep.c
-15b568e549cec1111d254cefd06bbc6b  gdb/p-exp.y
-958f9e7a24aa9a6bc3dd86faca5fb36f  gdb/ia64-linux-tdep.c
-04ba07dc797c79325fd4ba6412fc3a78  gdb/amd64-tdep.h
-9ef8bf74466eda3cabd320dec6b6fd84  gdb/xstormy16-tdep.c
-188c6e39062ebbbe54769cd0743e231e  gdb/i386-obsd-tdep.c
-c2d1847f8f64ecc611c2af76f9cd4275  gdb/ppc-nbsd-tdep.c
-350d49dabbda1c9289bcb046cc4cea48  gdb/stabsread.c
-75adbfa4e6d62e788e4d4caa62701bc7  gdb/MAINTAINERS
-6903683399939bb6beb415c9abc9db94  gdb/i386-bsd-nat.c
-b1d15549099ae3d6dc073817ab8f0b1a  gdb/terminal.h
-6531babc6e309bf1698c0f77e3a56c67  gdb/filesystem.h
-615f173a42b5d1e972566f7e88dba1a0  gdb/remote-notif.h
-5cbc96c6093773c30c2d07e7167793bd  gdb/i386-bsd-tdep.c
-f3801083149bbd8edf48cdf8676b91b6  gdb/lm32-tdep.c
-889948818c08a29326489a9793ee779e  gdb/continuations.c
-bb0d7c0200af9121421237e33105c51e  gdb/amd64-bsd-nat.c
-4dee628681394a6c831d7fdd07f062a2  gdb/bfin-tdep.h
-799e3795f92f827d2171134077757865  gdb/eval.c
-84632e0e2885991eb4b283c596273f81  gdb/ui-out.c
-8d4a16926b360dd1fbe68a772f3fe1a8  gdb/amd64-dicos-tdep.c
-05426fa237c01f70bac3181314233040  gdb/sh-nbsd-tdep.c
-57c84d57f59a9a87eb5a83e915e84e75  gdb/break-catch-sig.c
-3c1ae6933b1f4dd946df2a86f66242a4  gdb/std-operator.def
-c56abf00d3545069aaa324a95388b7ff  gdb/alpha-obsd-tdep.c
-cc9adfdec0b082428077170b940444b2  gdb/m32r-tdep.h
-bdf4a0646c3a36bea993acb547bb78ff  gdb/i386-darwin-nat.c
-6169bb5d4914ee1dd1f3858932b09e47  gdb/doublest.c
-d800905bc980b9a297fb7d95ae72c7e8  gdb/objc-lang.h
-7af9ba1e2a1278986d40cab73ea09661  gdb/mdebugread.h
-fbdd1ad2d64a1bece01ddd3d3eca424c  gdb/xcoffread.h
-a1225ad1a103ada298af9bd2229a4bbd  gdb/gnu-nat.h
-83b78e29ca1ada2b7af3518f8bd1b346  gdb/bfd-target.h
-71fc3dca214b65b6df7f1db74b2c13cd  gdb/arc-tdep.h
-aaf0d2004823acb977de4b7ecb4a5927  gdb/language.c
-8624c44ecbfac49005c85e9f51bdcfba  gdb/stabsread.h
-9821fbf6d4e2948ffa908317badf5eb1  gdb/sparc-ravenscar-thread.c
-71f85dce185fe3adca5373aec05cadcc  gdb/ser-unix.c
-5c302765db908bb85484700ad4fcf4e0  gdb/m32c-tdep.c
-b20f2bca07fbb0f6c2c6b516ac9140fb  gdb/amd64-linux-tdep.c
-612107351ba203e42a91b13dda3d812e  gdb/sparc-linux-tdep.c
-bba05ed9713ac1f6360976d5bd6efc36  gdb/sparc-linux-nat.c
-ba0248cde4529a10bbc385945b3beedf  gdb/i386-fbsd-tdep.c
-7576c00fc6f4e8476127a7d46d9cbbca  gdb/cp-abi.c
-b6486f161a4eb560d16df88ef30cfac2  gdb/frv-tdep.h
-e0aa3819d754133fd42f44f1e97dbb50  gdb/exceptions.c
-f5f10a04f397bd99699b1322ed9bdce5  gdb/i386-linux-nat.h
-3a43dae413b2f51a823e15507551f6cb  gdb/ppc-obsd-tdep.c
-e1bd2b34afcffce5037218e728c03341  gdb/memattr.c
-feac8099092130ee7d96400d22c78c22  gdb/event-top.h
-38402e0e504ca9c37701022b44c2d75e  gdb/gdbarch.h
+6c22a2c007c6fba48298eabeb157956b  gdb/gnulib/import/filename.h
+725843bd7724ad8611ab0ba8312b2a4c  gdb/gnulib/update-gnulib.sh
+b08eeed7f07be9c9d65203364a4c7a0b  gdb/gnulib/configure
+f4f744f00aa3d1b2ceb5a7fb5bafa725  gdb/gnulib/aclocal.m4
+a205dd1a408fafb7fa5fd3bd59318168  gdb/target-dcache.c
+6e04664fcc821015c33f4c9b04e23ff5  gdb/alpha-mdebug-tdep.c
+f2cbeaffd808115d7cab8322728c536a  gdb/symmisc.c
+acf7e8747a65c0528dfa5f202c5024cd  gdb/compile/compile-loc2c.c
+41bfcad8aad4b86e0583aa5835eb703a  gdb/compile/compile.c
+ce9306fc07761a9dee514d567ca01c7d  gdb/compile/compile.h
+eafcd9c1de6cad329c2a489b86a112ea  gdb/compile/compile-c-symbols.c
+1884269c365b328b46a183a1ef18ed88  gdb/compile/compile-object-run.h
+986bfae28b1ea00c048cdd1b85f02fed  gdb/compile/compile-object-load.c
+e895499bc472c34053a644f4d5fd331c  gdb/compile/compile-c-support.c
+5a775dbab2d0b82a93679dd0aa2f02cd  gdb/compile/compile-object-run.c
+3e4c216cafd445647b0852abf8e212b1  gdb/compile/compile-internal.h
+3e9f4485bdb3a38008f9a74d9e2a4cdc  gdb/compile/compile-object-load.h
+bc80dcc7d87bd5b7245fb7aeec444b5b  gdb/compile/compile-c-types.c
+f903ac360453c328958cbc55e44e0f1a  gdb/value.h
+e6e47047978e56207a23d4a8a691f90f  gdb/ppc-nbsd-nat.c
+f05d8be253bf08beed45811a8ac1fc6b  gdb/auxv.h
+191bb9f550a638b9b8b69714f970c3d2  gdb/i386-dicos-tdep.c
+5fc64167a8f9c019585d9fa51e0fcd52  gdb/aarch64-newlib-tdep.c
+aa79cd7220be521559119ac89da2bd1f  gdb/gdb_usleep.h
+473fcffa1c9ddb733494b25865e8588f  gdb/i387-tdep.c
+17a850f9a32c7703496627a25824b599  gdb/ada-operator.def
+f469eae15fb1c314ea4aefdfecc6d5f0  gdb/libiberty.m4
+c7bf37a5d0559d590ad403338f45e6a4  gdb/gcore.c
+59fb89baacdcd182f8385dc194614499  gdb/hppa-linux-tdep.c
+83e5867c2bde7152a978b0e8d69a39aa  gdb/p-exp.y
+2369e8f38d6a2f86d15f9b3b389562ac  gdb/ia64-linux-tdep.c
+cd249ddad873055a764485405a148fd4  gdb/amd64-tdep.h
+bf8edbc5405da62b99be015d79b063bf  gdb/xstormy16-tdep.c
+c4f8b232eecbe7b5480666d51f4494f1  gdb/i386-obsd-tdep.c
+d48dd8a116922c82604d8169df04ab75  gdb/ppc-nbsd-tdep.c
+8ba72793f00d56122230d68af16678a1  gdb/stabsread.c
+415c1ed97eb3af2098e63318fe30dbe4  gdb/MAINTAINERS
+074caf11d670efb9f23fbcd727b37f0b  gdb/arm-fbsd-tdep.c
+7ab2d3c0feca39d0ec4712ca0c9a5f15  gdb/i386-bsd-nat.c
+feeeb8cba0f46c50b028311ac9b138bc  gdb/terminal.h
+c29497b991d495023c02e296b5e600b9  gdb/filesystem.h
+5b4409835afd10559adb7857a68e541a  gdb/remote-notif.h
+97ce069b261a474d2207b1de48da3ca2  gdb/i386-bsd-tdep.c
+4338ecde2d474597210e1f2f5be2f691  gdb/lm32-tdep.c
+ead92f6e870832e9bfdb7ace397d445c  gdb/continuations.c
+c99d8d6716593065965faa5137335e4e  gdb/amd64-bsd-nat.c
+612f04082aee2121494b47b40a31be6a  gdb/bfin-tdep.h
+636edea50da8c8a4954fd6c5ee3d8bbb  gdb/eval.c
+a7d82cef45e6abf3f3435984ccdd6d52  gdb/ui-out.c
+c825d6d6bd794295cd7cee9f9500364a  gdb/amd64-dicos-tdep.c
+4f25663c32f070e373efc3bf1ac3a3ab  gdb/sh-nbsd-tdep.c
+1b91c55a95269014544e55fcc349bc69  gdb/break-catch-sig.c
+99b17600b8abc819d717ffa563c3acd5  gdb/std-operator.def
+8f78c17beeb5573893561c94391dddfb  gdb/alpha-obsd-tdep.c
+7c8ee4d5c6e427a2a16476e8e88d2f9d  gdb/m32r-tdep.h
+437639fc11aa62b0aad2bd17e2173c41  gdb/progspace-and-thread.h
+b9fb6416ee3c23e2d69115f47cc15e9f  gdb/i386-darwin-nat.c
+7348c42eeed12081e82d8f1b46a62686  gdb/objc-lang.h
+bd9ce820a4e293f51435eb315be04f3f  gdb/mdebugread.h
+5ab3f5ff1537b446a82bc86b50eabac1  gdb/xcoffread.h
+5ba9985a6a83cbb9a4d3584b7f5111cc  gdb/gnu-nat.h
+5cc85659ce552aa463dfc6b0e31d2dea  gdb/bfd-target.h
+3e9f394c4e9ee80c88bbfe5e8a112e64  gdb/arc-tdep.h
+3b926682c24f25a1d9edf472aacb6b4a  gdb/language.c
+d451431fa8dfb66398fb766f376e43b0  gdb/stabsread.h
+5da272acefe41680233f19ce723ebd05  gdb/aarch64-fbsd-nat.c
+68b1e49fd770bcfa29d74fef93e9b246  gdb/sparc-ravenscar-thread.c
+7f965dfab95daf236022eccd7327b250  gdb/ser-unix.c
+2d729111589fff32d512d6bcf259fc38  gdb/m32c-tdep.c
+79eb5e483c37b0982de3a295aa6d5e81  gdb/amd64-linux-tdep.c
+71ee83811f1a536df75cec144e5ea562  gdb/sparc-linux-tdep.c
+7b2dbdae7373dc14a9c98428f57aa5ba  gdb/sparc-linux-nat.c
+aaed4a2b4da7446db37f7613e2211d05  gdb/i386-fbsd-tdep.c
+5c60eb8f061a540f7d4a52a775ea4468  gdb/cp-abi.c
+8126df64aadd56be9420fd4d20f53d06  gdb/frv-tdep.h
+677ede75c9dec5d7841314a993d06eda  gdb/exceptions.c
+8ed78c706bfd13d42665899ae4c42bda  gdb/i386-linux-nat.h
+c31b8e0d4e980aafdddf01e64414d3a0  gdb/ppc-obsd-tdep.c
+8cc6e40aac885f0b3867cd808432b753  gdb/configure.nat
+2464070db86d4588cff54d113c49aad7  gdb/memattr.c
+70d670ddae817062224e4eac1e06c1bf  gdb/event-top.h
+cc0f282c65c2457bc643d50118151b87  gdb/gdbarch.h
 9198f7b1807c968098814aa2a3901aee  gdb/gdb.gdb
-3b3a84cb2e9fc055ab6b8f91d1df1716  gdb/gdbcmd.h
-cf2c0e7152a34361275243d4f1f30d62  gdb/sparc64-obsd-tdep.c
-adc3a191fc20c10afc77baca316e626e  gdb/.dir-locals.el
-2ea6665ba7f636da24db98420c7a950d  gdb/sh64-tdep.h
-141beb736194b67b39d1d6e49fcb8a5e  gdb/namespace.h
-e2aef05d14b9cafc769991d16b298737  gdb/complaints.h
-1c4f6ddb682e121db24c7bd629f24397  gdb/msp430-tdep.c
-f41de7ced17b93ad63f707322171bf3a  gdb/m2-typeprint.c
-8173f6d8952cb202fa6bb14e17f5863b  gdb/ax-gdb.h
-e841b6f7bfa70367822a6ad18833de17  gdb/solib-spu.h
-11c8841fd077c25110043bd6428ee4b1  gdb/bsd-kvm.c
-58319af671d2828f66ef9875770c3ecc  gdb/i386-fbsd-tdep.h
-88658ebdf7a4e6215cc4b146e9cff4e5  gdb/unittests/offset-type-selftests.c
-d637611a3da84ea6d3a8b941187f4359  gdb/unittests/function-view-selftests.c
-b103e062fa4aa267fad5e64daba99fc7  gdb/unittests/ptid-selftests.c
-c832ce2e30498f574acd76a3992bf0ce  gdb/disasm.h
-6c0d5e8bcbd01955faf9e8113136e3d8  gdb/i386-linux-nat.c
-24693bb39ebf16dc766495cf4dd3c1bc  include/safe-ctype.h
+aa0631d6c65d70e8c8b0116be8b285bf  gdb/gdbcmd.h
+00d1a397f23d11820d2d3b5cfb155dfa  gdb/sparc64-obsd-tdep.c
+ac072707d3c9f1586010865c437e8aba  gdb/.dir-locals.el
+c267269e4066cf0ae7ebbf4c5d2d0e9a  gdb/sh64-tdep.h
+bad9794d402029c022451382a5b213e2  gdb/namespace.h
+29cdaebe94604b2299985ce7cf8d9a2f  gdb/complaints.h
+564ff72206ec9be36ff79524cc1f2739  gdb/msp430-tdep.c
+c196aa97749f1b6d6b9138dd41f66b2b  gdb/m2-typeprint.c
+37db09af735501721bcf038f75ccfc99  gdb/ax-gdb.h
+58023947c91ec1a5265144f1002cf2b4  gdb/solib-spu.h
+e18210bec670b9a48129ec9b37c82b5a  gdb/bsd-kvm.c
+48112868b82cecbafff27914e4dcbecc  gdb/gdb_regex.c
+e66b027850ffbaeab672d2452035c024  gdb/i386-fbsd-tdep.h
+73e6ef465ad2a6bf9b67c2d67943f0b4  gdb/unittests/rsp-low-selftests.c
+41b5931cb6f9b1f16f7cb8eae3553d59  gdb/unittests/common-utils-selftests.c
+b85a9d4c40da054103bd72f124b85a27  gdb/unittests/optional/in_place.cc
+cefff013026873973fcadad1b7fe576c  gdb/unittests/optional/observers/1.cc
+9d902f45f99ab7d583627fec77f9b431  gdb/unittests/optional/observers/2.cc
+145260cd964e6d692b733acdf72878af  gdb/unittests/optional/cons/copy.cc
+528b14d0241369746eaeb199e713fc3d  gdb/unittests/optional/cons/default.cc
+d3fb12b72dd67d9df94fd1a0f4111266  gdb/unittests/optional/cons/move.cc
+2846b99dd2d2147cbcd0bfc2bbe2456c  gdb/unittests/optional/cons/value.cc
+84a389a578f81784d8fafaf6022e2bcb  gdb/unittests/optional/assignment/3.cc
+12fe2e276c225ef86605ae9efe616843  gdb/unittests/optional/assignment/1.cc
+5fec92414aea9bc838068333d89a0288  gdb/unittests/optional/assignment/2.cc
+480b1f33654525195084752c011a7eaf  gdb/unittests/optional/assignment/7.cc
+298b4d29c2bbf6d55797764535191b53  gdb/unittests/optional/assignment/4.cc
+d23304c15d970109b49f6c1def1dc99d  gdb/unittests/optional/assignment/6.cc
+b93c0dbec4f05bf46d1f42e98e00afed  gdb/unittests/optional/assignment/5.cc
+9df319e9e4d0367644e84a7d5e77b785  gdb/unittests/environ-selftests.c
+ec465f8bfa09c413f659b5389bb92d62  gdb/unittests/offset-type-selftests.c
+d32ffd72002c818efc548c414cccc0a1  gdb/unittests/scoped_restore-selftests.c
+2b7e560da91bbb438934a0d07cc76401  gdb/unittests/memrange-selftests.c
+1bc23f664bb8babf895da1dab67baca6  gdb/unittests/function-view-selftests.c
+21f983a563f758dc8a76f1e5a59ced08  gdb/unittests/optional-selftests.c
+3caae282b49eda518df0592deb7f9efa  gdb/unittests/ptid-selftests.c
+7aa72fcac3107951eb7c75d9b0e0f1f9  gdb/unittests/memory-map-selftests.c
+2e14744f12640100a8509a7866dff5d1  gdb/unittests/xml-utils-selftests.c
+3b5eeda6e0cdc1734ac9d02b826e85c4  gdb/unittests/array-view-selftests.c
+ff193cc850cefb47da6fd5ebe54ed4cd  gdb/unittests/lookup_name_info-selftests.c
+f092e3b5be79c57d290e77f669acb19b  gdb/disasm.h
+4f5703daabbc93c932d4c2e904347df8  gdb/i386-linux-nat.c
+2473f072b54d2d1dc3e12b495675a2bb  include/safe-ctype.h
 53bdfdb5cd3c0c7831611602041cda52  include/xregex.h
 4881831953711a85f8cc56ce9377d468  include/ChangeLog-0415
-c2cf894f134a86c5ffeffe80c41a6f62  include/objalloc.h
-e3e6e6ad3d21c6cc4953e029394938b8  include/alloca-conf.h
-1fb622dc06c1214f15568652f339f1f8  include/fibheap.h
-b79da93b169045b1286dca4031f60e2a  include/simple-object.h
-2e735e97e623974be730f0e645f3f855  include/os9k.h
-e8eff8bd68d89c32b3bdd02dd51c41b9  include/dyn-string.h
-a2c2be56ed85992d72e0a1e16388ce83  include/timeval-utils.h
+de14c7a5d8d1ce55fda864a08a3d1990  include/objalloc.h
+781f387da8427a8cef273e127e9ffc49  include/alloca-conf.h
+b5e4c5a63f55f91d209087edef1340eb  include/fibheap.h
+cc08cd4cddc61e66bc488bd71ebc3572  include/simple-object.h
+5f7ed1643aa43c1e0044653068c379e4  include/os9k.h
+0109815bce024e5a11a37c6adaec69b1  include/dyn-string.h
+3695f27151c3e8b53ff0a11c93175e8a  include/timeval-utils.h
 41879305404d3b06773b10ab3fa44539  include/ChangeLog-9103
-c1dea1e5fa3f2893be2d423499b8a95d  include/fopen-same.h
-e6709bc4025d2a61913071537bcf9d7b  include/dwarf2.def
-d4a7a22eacb9ce318aa64c76ea468ef5  include/fopen-vms.h
-db10ac323b6ea2775d92496073bfccce  include/mach-o/arm.h
-e87a57b18923d3046a8edfa57023ed3f  include/mach-o/reloc.h
+880588659b5e6c3cc27daf056fd4aa1c  include/fopen-same.h
+7b9b0530aeece7f59114c1099618362d  include/dwarf2.def
+bf9c6a15486db958ec272363c11b7df6  include/fopen-vms.h
+63a7769fe8320ff28c7cd0aede9dd5fc  include/mach-o/arm.h
+eb529504e4971a0cc61b66635219e9fe  include/mach-o/reloc.h
 97d6ac6fcfc48a9468454e047c530c2d  include/mach-o/ChangeLog-1115
-e163d9748f6b14f1dd1f52df26eeedd1  include/mach-o/loader.h
-3eddd5f122225cfc97cbbea2dcc31fb0  include/mach-o/arm64.h
-359f534c6cdd8576ce44f2cab46b9c43  include/mach-o/codesign.h
-3281517a3363a9ab80e8053a4b092ec4  include/mach-o/unwind.h
-3d69561386c6cb6243327f7788ba258a  include/mach-o/x86-64.h
-0afab6debf00d5d858e6875a6f79d6ee  include/mach-o/external.h
-30af01ce4e0195fdbacf983279e07b80  include/dwarf2.h
-1f461c2071158f2a2674cdb8a24430e7  include/oasys.h
-fcbe1219fcac3076ea27790fe20bff1a  include/libiberty.h
-91ee7c4733c9539fd964c2d6a38169eb  include/environ.h
-204b53a854eb7ec57b7e2f87873a1cd9  include/ansidecl.h
-587dd8b93099a84c97343a75fca32219  include/longlong.h
-323e072fba874802e42a3a1a6468b335  include/xtensa-config.h
-93559802cc744f27ea1b5337a8c63e35  include/hp-symtab.h
-cbe589c434fc9622972f701a7879049b  include/coff/sh.h
-e2581d01c988254c5514290df4bcdbe7  include/coff/w65.h
-81f265bb9962a9ad955955d85acc2af7  include/coff/tic4x.h
+9e22298779026798c4418fb2c376a858  include/mach-o/loader.h
+beafc82ad4b3557e2aeb2265726c367c  include/mach-o/arm64.h
+4acc73315adbf247f05070f67f5ccba4  include/mach-o/codesign.h
+4530cd1478e8c0b5f2ed22d8aa985036  include/mach-o/unwind.h
+bdf539895f9bda17a4678e294c1d7f50  include/mach-o/x86-64.h
+b915430b641976bee09b3cebcd9334fd  include/mach-o/external.h
+2e319cf6885cada567a107c7d4edb71b  include/dwarf2.h
+ac55d9b0c3b5cf3e2aa9943facf4bf2c  include/oasys.h
+6265413b4ad7b4acbb600439fc255766  include/libiberty.h
+1b996be692169955139a5a11164368ff  include/environ.h
+f70613c5e950c483a27bfa7eb0402116  include/ansidecl.h
+172bde8591eb83061db13658a1337877  include/longlong.h
+dcaace4a60bd6d7cd29251ac4849575d  include/xtensa-config.h
+5de40aab804e654f1a014b88485f6c14  include/hp-symtab.h
+7b32ab2663a67d005efd2d82c37239dd  include/coff/sh.h
+32f50ac193642e4b6c5519d1176efc2d  include/coff/w65.h
+01edaf4b6ce0d9a3e7a488a5364c67f0  include/coff/tic4x.h
 49952fda1e759e5aa659f8f78d7e0ba0  include/coff/sym.h
 4d7646c4b5475559014c76936e6fdeba  include/coff/ChangeLog-0415
-866d024bb6be9f779c9f1113e90d1a8b  include/coff/arm.h
-ad1bd4747414a4bdbd650b0872282095  include/coff/aux-coff.h
-759a8a140905c1f56bed30ff17583876  include/coff/internal.h
+dda59326ca4a1a065920890fdae2dd49  include/coff/arm.h
+4ac45facb8bf127d015f1c8acf77b35c  include/coff/aux-coff.h
+9486a1f3946245afc1e21241278ca00d  include/coff/internal.h
 593962175d4ca4386cbbb87fb4fe5e09  include/coff/ChangeLog-9103
-661592fcf518b4f391b509ce0bd6d499  include/coff/alpha.h
-1825b55faae8867f25fcb00facff956b  include/coff/powerpc.h
-095362e65ff5af99352267260ea4a4a3  include/coff/ecoff.h
-349d7ee769459b2ef4cc6f95017b035d  include/coff/ia64.h
-f56fb8ce3d97d8678fccc69ce712a967  include/coff/rs6000.h
-1bb99763569d441888981f751a55051b  include/coff/m68k.h
-f5a685eef71c0f3a50a2285e7fe4d072  include/coff/h8500.h
-3f71d3b5f78f8f351b9259a899723baa  include/coff/x86_64.h
-86830bdde12d470310c20276b6789cef  include/coff/z8k.h
-52c7a1bdbe7c23906ad130222bfd272e  include/coff/i860.h
-305221f6447d06fd466012ecb99a7648  include/coff/apollo.h
-efbc2ca8fd9ecaaf7843ffbde3128f19  include/coff/ti.h
-781d0fc0ba3e222a8656fa2843a90844  include/coff/pe.h
-04d0590a16e73bb5d6dfbf54845194b4  include/coff/tic30.h
-d69bfd5d9d758aa10bcf86f35069e3d1  include/coff/mips.h
-f13ec1f605d758389ff9188f68b03735  include/coff/we32k.h
-8ddd6f416bafb40fef5a1cfbfe174475  include/coff/z80.h
+8e90108c7512d80ab336243bf3ea1b79  include/coff/alpha.h
+08896eb32644bd9ae336e20e40612eae  include/coff/powerpc.h
+061103c5060ea27fec3fa07af7a0ef8a  include/coff/ecoff.h
+407e449912b1ca28b9b379b9700a7998  include/coff/ia64.h
+257d4c57e548bef58364fa6f93fd9ff7  include/coff/rs6000.h
+76104aea96832efa03156cd00e92eae8  include/coff/m68k.h
+dcdea10079a6c9b37bae62da47107be8  include/coff/h8500.h
+f33f29d42488a31991a90725aa8038c3  include/coff/x86_64.h
+6e0648a6e75b8fe5dfdbf90ac6a00099  include/coff/z8k.h
+1fba7938666c0b63e8d2a37d50e98255  include/coff/i860.h
+2b90f25ac6353b93b7ea3c8ecf055fe3  include/coff/apollo.h
+5314c4e4c3ae096bb298cff130379856  include/coff/ti.h
+39954e4e8b81fbf80f6803cd76dd808b  include/coff/pe.h
+aee68066cc22e12df0110e1d47927951  include/coff/tic30.h
+ca96ff4d5a9d8020a185478138245188  include/coff/mips.h
+8045f6347bc8ae8b483889ad7a593b5e  include/coff/we32k.h
+05ddb2bd26d4bf7eb75de39b1214c3c2  include/coff/z80.h
 9548a06f2a9fb6be7f272df74ead65b7  include/coff/symconst.h
-3144957becabdcf8a4b30842c4e30758  include/coff/i960.h
-456784f0feb691be2002bdb95bdc8e3f  include/coff/tic54x.h
-0ed19e874a3f3d5542ff3148d157fe3c  include/coff/tic80.h
-ae775f9bdba5a3c8048464ce663ad452  include/coff/m88k.h
-afa0296867be7a76d7714c634f7300b7  include/coff/mcore.h
-7f407c63f5433c317f03cd661beee258  include/coff/sparc.h
-5aa0d6873eb59e0612bbb27f180d5d3e  include/coff/rs6k64.h
-e46ac8163214d10af3fbfd2127f08713  include/coff/h8300.h
-30db6cf8b0afcf2f149ec21b236d6945  include/coff/go32exe.h
-1d17efd6d9b0e8f3041cb0f40591d64f  include/coff/xcoff.h
-668b1414808502ff108cfcd8c05e95a0  include/coff/mipspe.h
-6fd089c4124069e43a864a7b1df08bbd  include/coff/i386.h
-1e09df6e0feed4ec262292a783515f4b  include/coff/external.h
-ebaf91fa0417eb4f8ed6a16ee1e04548  include/sha1.h
-8e1a01711f79ae88c9c42e746406ef34  include/sort.h
-b424c2537e98f13f5109a528d1a6b5eb  include/fopen-bin.h
-d0f487d9ad28936fddef99f252b4c293  include/gcc-c-interface.h
-9487c43b82684414a669f5417e14a500  include/leb128.h
-473745cb85648de4b14aedcc366a80f6  include/opcode/hppa.h
-6869acecc6416d717d1be65c1c3ff083  include/opcode/mmix.h
-571fc5acf072260217bf62a1a37b9efa  include/opcode/cris.h
-12d3881ca97e4918e9e5db980bcb3b63  include/opcode/tic4x.h
+4f6dcc6965ac5329b4bd9d52f172a1ed  include/coff/i960.h
+6d3e5af54e5325f7b660ecd4539cbc40  include/coff/tic54x.h
+07b48d6891acc16c005eb666eb583d40  include/coff/tic80.h
+305c23cd0549620732fcfceff6911cb3  include/coff/m88k.h
+c4f4a09dea353c03a454d3454169f5b3  include/coff/mcore.h
+6888bcea7daf9bed0cf71ae08f8afbb2  include/coff/sparc.h
+a875e8229131115927118f15a3ca8ad4  include/coff/rs6k64.h
+50ed898004d2105a81670341ebcc4199  include/coff/h8300.h
+a2a76cf963d5fd165ef32c1ecc3a0edf  include/coff/go32exe.h
+b7307995fe93ef60bd24e70a538f997b  include/coff/xcoff.h
+865c10996309ee14c555afdf0f945d88  include/coff/mipspe.h
+58e2f9fe995343081fd1bbd2851b1d07  include/coff/i386.h
+fff6db76f61a6cc971d09e46d1d99593  include/coff/external.h
+782fa4a3466cf64a9bc7c19a9390fc73  include/sha1.h
+9813764968d64c4bab37874b2e3b661f  include/sort.h
+048a9c0f165d9c9185b56d6818840f71  include/fopen-bin.h
+ce92221b99f9826ac4855837651c3661  include/gcc-c-interface.h
+b3c5fa00fb401092d926b6443579d686  include/leb128.h
+6847256313c30a507d886cc04255955d  include/opcode/hppa.h
+1583eed15528a7c556ee87812926730a  include/opcode/mmix.h
+539b5bbe9615990882eea609fc97a99e  include/opcode/cris.h
+d466eede3a168a1d1784da97767c8b35  include/opcode/tic4x.h
 ac914ce9ce888eb335489b4ab301a5fe  include/opcode/ChangeLog-0415
-ae3fd2f5c203941ad89f152ccf810f6e  include/opcode/tic6x-control-registers.h
-73f8bf44e87e521336a45349d4e2c115  include/opcode/tic6x.h
-a2c2b107142180cca7cf6300db453782  include/opcode/arm.h
-b89a992d7f2bf2e72375aed605240943  include/opcode/bfin.h
-7e4f1173bde46f8e84058c3341b046a8  include/opcode/nios2.h
-1da1da1839716c239b8af942d3778c34  include/opcode/tilegx.h
+3cf1caa321461a15e9669eb13298cc69  include/opcode/tic6x-control-registers.h
+acc1615ac5c75c1953901790909d117f  include/opcode/tic6x.h
+95a39abca59a7467d8b9fbb1a29fe7ce  include/opcode/arm.h
+20b9dcfabd6eabce88ef2245e8096602  include/opcode/bfin.h
+24b7dd12d4d14fa53a3f60d96f4e163f  include/opcode/nios2.h
+e0d65b5cac7ca6d0188c4631bd157c35  include/opcode/tilegx.h
 a342d85fea1e2696d1608befe2530137  include/opcode/ChangeLog-9103
-1ac7b95fd7777c0b1d3a056bcc236752  include/opcode/rx.h
-b24fa170c43ab0341c1a24db56791dc4  include/opcode/score-inst.h
-5943ead3f74f9aa7988e5509cfe66c1b  include/opcode/i370.h
-ade84972dc1fa8ee3f6c8fee92784658  include/opcode/tic6x-insn-formats.h
-278e18ca9f4f02a6fd39422aae7a5269  include/opcode/alpha.h
-242d2f34a9b9ae54dbed6253fd5756fa  include/opcode/msp430.h
-635c79c49789037bbe5e0732f35f04c4  include/opcode/ft32.h
-36925f6a8de8d866b460c3d838c90aa7  include/opcode/vax.h
-39458d664bfe4c7cdf3641b5b9932190  include/opcode/d30v.h
-8ab0fb62efe3e88042d4fbaa649b1b8a  include/opcode/mn10200.h
-415f3897ce782dafe9a19d8b864f26e1  include/opcode/xgate.h
-8b09398d49cfd159edc33ea0b9c8b7db  include/opcode/ia64.h
-55f9cdbf8057108d9c2cc971b4b7b610  include/opcode/mn10300.h
-4c4d4090a726afc5c7779373b4282ca0  include/opcode/m68k.h
-2f6b03e96520e0f23a374d6476f71a49  include/opcode/pru.h
-f771990b2f0f62026db574295bb684d8  include/opcode/riscv-opc.h
-9dea06de5c306673616d0446e4a9b61c  include/opcode/pyr.h
-626ee91269a3abed8473d8c3fb7e8c9f  include/opcode/i860.h
-4c7eff767e55ceb109a1df6913f0be30  include/opcode/arc.h
-cf8e1e6c3646d434f587ef16563a56fc  include/opcode/tic30.h
-24c8efdff5faae9054d12aa7c83e4165  include/opcode/cr16.h
-61c6417c41b83323db4b9ce7eb90686c  include/opcode/mips.h
-c1a6aeec9429da9913399f7132bd4b3f  include/opcode/np1.h
-7fb47baeb707d98f02f768635d3fa222  include/opcode/aarch64.h
-cf8a385912035176fe03d3b9cefac486  include/opcode/pn.h
-3b5a437ee9439f3f0e2757e31654c9e4  include/opcode/ppc.h
-4ce1eb470a3ccc60db65be213e71d81b  include/opcode/s390.h
-035840a5ef842a7ff3e974633e7c211b  include/opcode/riscv.h
-89d9becebc272a6612b61125cbf31eca  include/opcode/pdp11.h
-8e406a3d32b8240a900b4535353c7dde  include/opcode/avr.h
-12378c46b294053a36cdd963ce546cfe  include/opcode/spu.h
-3e1b62129a0c42ea2513271ef58bcff9  include/opcode/score-datadep.h
-9ed6c3b27f3f9a2997151b8e9cdb2889  include/opcode/crx.h
-cc0f980a7d1cd0c53c1acb3ac227b7a1  include/opcode/tic6x-opcode-table.h
-ab50734d99201ef273b4da5ea22fa0f4  include/opcode/arc-func.h
-0407f1cbc5f11181631143410ab1bc3d  include/opcode/moxie.h
-4d90e244dc70b9923cc18c92c057a516  include/opcode/dlx.h
-f7ba27fe3ff3c3a6807c5e6156e994a4  include/opcode/tilepro.h
-fdb57bc4cbcfa934b2ff3a7572b72e77  include/opcode/rl78.h
-ea958236df355bf5e32bfc92651795ce  include/opcode/tahoe.h
-9e8588109afb63919a9c9ea6d43ef30e  include/opcode/cgen.h
-02be9cb9911734de7e0952823ae1ac08  include/opcode/i960.h
-5009128f2b68e63ca06a32b92851001b  include/opcode/visium.h
-ea06f7bf30a8f7e0db6b785ccb63e8e6  include/opcode/tic54x.h
-f1665f2e5526c2201be6ef1abd4c4733  include/opcode/nios2r1.h
-7927246d8f0b725111f3e00b62dc6cb6  include/opcode/m68hc11.h
-57e7ce44eddb52fe8449db5473aa6183  include/opcode/tic80.h
-8da085e9cf47cb0dad68cbcab42119ce  include/opcode/m88k.h
-8788bc24c14fe5390309115df71f70cb  include/opcode/spu-insns.h
-53b2af502efd47f78d229b51d69ea47e  include/opcode/nds32.h
-079e63dc8bb95f9824e80306fcd97844  include/opcode/sparc.h
-38284c33c7e7a2cc5b0336cdb6442577  include/opcode/ns32k.h
-e11fa154c2eec117e9a28aa1241690a4  include/opcode/h8300.h
-8cd0e8a1f2e35cf48d83004b097317b6  include/opcode/pj.h
-9c49c4b8a80d33bfddaa6081f0af5d16  include/opcode/nios2r2.h
-9399593567a7f43d2949761d0c1d4b0d  include/opcode/d10v.h
-987f5429ddf1d86a339076b64f519bfe  include/opcode/v850.h
-1e888413d73d2c0d61d331915b7a8938  include/opcode/convex.h
-3a605e5ec46de3fa2adcdcafeabbe1a3  include/opcode/msp430-decode.h
-7d848603e23e3cfaedd747fb5ca99aca  include/opcode/wasm.h
-bdeb30e626a14baeb0750724d3436d16  include/opcode/i386.h
-352da43df0aacf8d9326bb8eaf39c632  include/opcode/metag.h
+9359ba0ecf9aca1f734e639ef463b3c6  include/opcode/rx.h
+aa689d675410a6f19578354d2a682501  include/opcode/score-inst.h
+6e4ee05cea4978afb4f62fda8c34a973  include/opcode/i370.h
+d813d8e8d2370f61f45316b61bbf0598  include/opcode/tic6x-insn-formats.h
+71c6c7c76237a096f06b4ef19ae8e259  include/opcode/alpha.h
+4373fc52a1c142fb530cbb05c7f3f6d6  include/opcode/msp430.h
+86de8389f23ac1b4a115d37f2d375f38  include/opcode/ft32.h
+1a364f0ab4385702a05804c198aff808  include/opcode/vax.h
+ecec7c29220f28de146e09ebeff14c9c  include/opcode/d30v.h
+b950dd0b2471ee9a32f716a0dc4a3688  include/opcode/mn10200.h
+c7401f79eefa287ce888db7c98e84ad3  include/opcode/xgate.h
+3eaba2a446c0207081cbe3f96f463570  include/opcode/ia64.h
+2ff90293241e370129bbe97280eef380  include/opcode/mn10300.h
+b78c069157e52028d07ad55b609ff169  include/opcode/m68k.h
+caf421fa76c94c3a01d16089e9a21d66  include/opcode/pru.h
+4c6415c49557b29fcea2c489673991f4  include/opcode/riscv-opc.h
+b0a660620a5b1650aa550e4d49dc0c3e  include/opcode/pyr.h
+3620013fa41b36a2ca991f51d7ebe191  include/opcode/i860.h
+74ddc1dfb6e5cd3da27b4b03abdd66a0  include/opcode/arc.h
+9f7c6c94ee80e3de96af54eb463a4a14  include/opcode/tic30.h
+a424ec71bff901a9109cb4877e93a0c2  include/opcode/cr16.h
+dba33acf46d0eb264e4206afc1fd662a  include/opcode/mips.h
+0e61a510eba5ba164c3ed700efb66537  include/opcode/np1.h
+f2b18613dc34a4d632a4382882dac14a  include/opcode/aarch64.h
+bb647d596a663b4e1c050f3cd24dd79a  include/opcode/pn.h
+28be04e045ed4eb4a6314b22647166ae  include/opcode/ppc.h
+3bba526085dc215663b67a77458d159a  include/opcode/s390.h
+6eed9e636bb8a6626c7c151ebf862a41  include/opcode/riscv.h
+9aefb1072845a173648a4b45d56283d4  include/opcode/pdp11.h
+1106e4e486ed7fb9cba4a45a9dd4dc5f  include/opcode/avr.h
+66034cf29490481394c8c3049d7d8ef4  include/opcode/spu.h
+703ad91b4cffcafd4256801f391481e1  include/opcode/score-datadep.h
+219486ed3cd4ada114066e03c90981ac  include/opcode/crx.h
+7c7f47904d4702e4ec39be72de6fad28  include/opcode/tic6x-opcode-table.h
+2771b872c6558598996a24bc21c0a37b  include/opcode/arc-func.h
+e6e5d5a9cd8d6dcef39180009045d2d4  include/opcode/moxie.h
+c30ae8857e6a6cf2a3f3bbbf4577ea35  include/opcode/dlx.h
+14ed1d8cae8ac249147702662b43ea5f  include/opcode/tilepro.h
+c8d57f0d053c31e67f8564ba0708ad5f  include/opcode/rl78.h
+e3f50789a33744c4bdc9b1a8288fdfdb  include/opcode/tahoe.h
+2403587eb0382643b0d63e3391a14a1b  include/opcode/cgen.h
+e2b9401c9f6609b50f74b27e63d2005f  include/opcode/i960.h
+93f9ce59bc7da8e57dc8f58792aab170  include/opcode/visium.h
+8fdf21fba777286934039744ae4a6921  include/opcode/tic54x.h
+02b6474f65466f81eedf8891b2d93a54  include/opcode/nios2r1.h
+4dbeff7cafafaf0ba433f6df33615b78  include/opcode/m68hc11.h
+6268e17bef5d6059f10f2442d7e0e4ee  include/opcode/tic80.h
+c6e574df3d24fd35f59ad279777bfa95  include/opcode/m88k.h
+f68373cbfd9be006787bcadde245e77c  include/opcode/spu-insns.h
+6c41dbef4c389e67e4261d8783bd67d0  include/opcode/nds32.h
+a4fd5b885cf673c3c564a15ccd2d0e4c  include/opcode/sparc.h
+bcfb49ec3a7d8c1fc5d0f2c48bc5c80c  include/opcode/ns32k.h
+567a5e7a12c5b3abfe78d5894600b2f9  include/opcode/h8300.h
+dfb72cf756fe9ecfddac5219597fe2b4  include/opcode/pj.h
+2e8eee328c15a9276d027f6c7ff426b9  include/opcode/nios2r2.h
+7c6a68f97c7cb9afa61898536d5486f5  include/opcode/arc-attrs.h
+5ea58d9857960ad5fd8b46b678caa01d  include/opcode/d10v.h
+ba474967a3620ea6354edb9b4535cff6  include/opcode/v850.h
+dfef5273e6323f08f846041d9b58b254  include/opcode/convex.h
+b9e05407e549ae8481dc094f899c43a4  include/opcode/msp430-decode.h
+c23b40fcd2a4e59087bb2d2b5ce39682  include/opcode/wasm.h
+5d89bdf953fac8e25935ef8dee13502f  include/opcode/i386.h
+ce55fbece4c0d4bce4d01b344d8a2bf6  include/opcode/metag.h
 d32239bcb673463ab874e80d47fae504  include/COPYING3
-2c9a93ddb0b426cdf615a9f8c63b930d  include/plugin-api.h
-b98b66709b00ab45577ee47d72c6c996  include/progress.h
-eb8388aa550e8719cf6445160071f6c0  include/fnmatch.h
-654fb250fe636bcb3b303a04f8960b7b  include/binary-io.h
-886ca526e06d3ee9171ee559afab581e  include/md5.h
-e657595101fb96caef4c3f216a7d9e0c  include/getopt.h
-a87d20ee15eb2d28ffbd30c8e579d353  include/lto-symtab.h
-b8948975f5d9beb03b8b685c274aabc8  include/floatformat.h
-b1ae6d497f3b04e1b675f1692e37c7a9  include/vms/esgps.h
-a3498ff834595b745a15596e5ee61501  include/vms/shl.h
-36e0ea10ef0aefceb75ce4c69b107680  include/vms/lbr.h
-f5489cfca9f8bba93ec431a46989225e  include/vms/eicp.h
-d68e968d84f4c89f048b6a8c752871fd  include/vms/eisd.h
-90943191358a2bd0f9614cd0a33d0add  include/vms/internal.h
-65e7f4991425469d50be3556d4680115  include/vms/egsd.h
-c6a1a5621837c2bf8188aaa303987b17  include/vms/eihs.h
-e7339ac3e45a7a4f9204b70cd327c541  include/vms/emh.h
-7baf38efcb8b05dcb55114a2229241c2  include/vms/eiha.h
-56e3de381545f3b4749f71cffd7d4e2e  include/vms/eihi.h
+1bd1bbad5babee6aef2ba372bcc92a84  include/plugin-api.h
+00545ab1c2eec1b4a5c47a2387651096  include/progress.h
+8af22d46ec3fffc1bd07722dd54e145f  include/fnmatch.h
+9e2e57b86276ddb315c614cff4e02fd6  include/binary-io.h
+4f03f3474216e21ef5cabd131bd5e78b  include/md5.h
+30766584300fbdc2e992173ff184dc8d  include/getopt.h
+355be0b1dc4559409ec784e971f279a3  include/lto-symtab.h
+71a8377cc3d3defc2979a148c94532c7  include/floatformat.h
+5a5b00d9ca6abe7c37ca16ba6a9ea170  include/vms/esgps.h
+03d54a60fd59fdda53be3355b3397232  include/vms/shl.h
+61480bf11a521c83fbf39640108f1e2f  include/vms/lbr.h
+2be388b5e3a50c75e1c21ce47713280f  include/vms/eicp.h
+846bbb02c9c722552f1a110215efbc32  include/vms/eisd.h
+05e0243daa89a2e909356ef08bf7bf24  include/vms/internal.h
+ee80a120bfa99ee4a661ecc9c2106e49  include/vms/egsd.h
+386cb06886e943e3a01281f9bc29bf37  include/vms/eihs.h
+6203f66c736e9b34981b6f658939e3a6  include/vms/emh.h
+11fb49c74785530f2ce084b5e5e2ce0f  include/vms/eiha.h
+6c82c323a062cc29babd4e10e000bae7  include/vms/eihi.h
 04bd9ef53b8b98edaa12b87afb82ea5a  include/vms/ChangeLog-1015
-90b3ddd8c81f5ee4bddfe941e5d466cd  include/vms/dmt.h
-14ddc3f508fbe204e35ef10b13b70844  include/vms/esdfv.h
-881826c80e5160edf1bfa226d3a9c40b  include/vms/dcx.h
-1a3852e744e899b8e0e37214da53df45  include/vms/eihd.h
-d275696fa8c5f87b101ed1d7c63f9294  include/vms/egps.h
-f46550260c643577b58f1d2d62ccbe41  include/vms/egst.h
-b46276d0c57b302dddeb49e6289c1c56  include/vms/esdf.h
-a1e675047d1e986d81eea1777f75ad21  include/vms/egsy.h
-c1fa66a116bf02b6d325dcf079459373  include/vms/esdfm.h
-7dd1c894878d38e694b659da762c0813  include/vms/eidc.h
-85262dbee7e69a2793d8f8745b018165  include/vms/esrf.h
-6b80e112815d9b7a3ab6da248c059b4b  include/vms/dst.h
-110187e9fe9f24ef5008c720a3f86143  include/vms/eihvn.h
-6318b33cff5c26c098a7a2d2e6a08664  include/vms/eiaf.h
-80d98bdc77236aa723ebdf50293e142c  include/vms/dsc.h
-7c431dbdf3b4c2d2aa4c06ccb03d93b3  include/vms/eobjrec.h
-cb0d78571f166083c39ffd2c9d42387f  include/vms/etir.h
-aca148b343a4c6db967627d8f845cf08  include/vms/prt.h
-1d3bd715478c1fdc7cee098ab73beedb  include/vms/eeom.h
-3c33f6c40bb9e00f9704d37f4cec4fbf  include/gcc-c-fe.def
-6565216d5b2d20e956c0cd86cbe633b2  include/partition.h
+95874dfd6bd84d6e575a53d3c179d969  include/vms/dmt.h
+1b9ca1fa1eb6f384bdbe389356b4ec38  include/vms/esdfv.h
+1f2b44f6ab73acfb2f67c5a1df28976c  include/vms/dcx.h
+52b398d83d9d162b7f916f8cd0b112d1  include/vms/eihd.h
+e9857a0e9b60437b9bed77dafa135a9d  include/vms/egps.h
+77dc8e3ad86753e98f1b2380a77afea6  include/vms/egst.h
+307221ea8ca997d2c82aecac5db99108  include/vms/esdf.h
+30e108bc398822997d84083c057d93fd  include/vms/egsy.h
+3ce5c956dfc98f0cc64a6cb588dcb510  include/vms/esdfm.h
+2c27f9253083a1d16a55b9629df994ea  include/vms/eidc.h
+8e6c5dea1bb78a508e08adf7af8a63a3  include/vms/esrf.h
+2c716075bd0185c318e2444675dcb49a  include/vms/dst.h
+5831a5d2867c795785d5396b5e102cef  include/vms/eihvn.h
+ce52e88e3ffbd5a365f34cbac6aa321a  include/vms/eiaf.h
+081b6d82f3b8bd9a3407a9498e8512f9  include/vms/dsc.h
+d95b86d42061175f9cfbf36aa667a5f5  include/vms/eobjrec.h
+c149415f4ab8c4f61161f78550d21e26  include/vms/etir.h
+afa9de671acf882c0d8e7505b79349b3  include/vms/prt.h
+858f18ad4eb51110a8ea6fc05cb330e1  include/vms/eeom.h
+7c956dbf8c54b3b9c37652cd683b3c91  include/gcc-c-fe.def
+84eb7b0d513927d61ec129266ca1c5a4  include/partition.h
+c650e5a63062d4371d80741048292bda  include/ChangeLog-2017
 be0399077908f086775f1dc9aa63396a  include/ChangeLog-2016
-90d03f7e93ca98c3c7b4f5b868c7de96  include/obstack.h
-194acb1059c1739d48d775619d40c325  include/gdb/sim-frv.h
-61ab6c2c060ce65859786c60e42c1977  include/gdb/sim-lm32.h
-685eb182fc750b6058b91908ca99aead  include/gdb/sim-bfin.h
-186a3b60bb4088c2cfd7e3c892307cca  include/gdb/signals.h
-0e9e7189aedb9f80858477b0fd182be6  include/gdb/sim-rl78.h
-1107266c2521c759c8d831018434911b  include/gdb/sim-m32c.h
-100e3014eff9b6c78ec97bc7b6d2225f  include/gdb/sim-ppc.h
-035468f31f4355c03e11f08e272441a1  include/gdb/sim-ft32.h
-414c36cfc19c396ed5ac56d7d35014c3  include/gdb/gdb-index.h
-56b7f7c2886caab1779b18a18b79cb95  include/gdb/remote-sim.h
-ad9d2412eef3d36eeee05c5fbc06e192  include/gdb/fileio.h
-f3ad5869f1970b8a93feec60fedd93a4  include/gdb/section-scripts.h
-0ae4ef09591a18f90a6698416a834173  include/gdb/sim-d10v.h
-0902a574030ed14ecdd4122a4a0a5e62  include/gdb/sim-rx.h
-2a98ae112c5870d2542d6ce10db71662  include/gdb/sim-cr16.h
-6735dc6bddcfddcfff5f21a1e2cc754f  include/gdb/sim-h8300.h
-df5f2b31cb16706ccacd16b398614faf  include/gdb/ChangeLog
-0ba6bcfd0570efadacd435819c3074e4  include/gdb/sim-aarch64.h
-495bf38edbe05679bef3b62b556d2c33  include/gdb/sim-arm.h
-8c961ecfa857fa446d342175c1723df7  include/gdb/signals.def
-1c434e8885f6f2d16a6c3eb0a6b55987  include/gdb/sim-sh.h
-7be823b47b5d483c876f66824eeba112  include/gdb/callback.h
-919885747a8a8ecc4759413d2fa07987  include/ieee.h
-b485b8eefdc60030d51b61cbbfa0ea89  include/hashtab.h
-4117a6e26a0627999094704b92c347f6  include/gcc-interface.h
-9e549c519a3750dfa4fab12c5d16a333  include/ChangeLog
-45b8d82b223bfbda107517c8601ccd64  include/dis-asm.h
-07ab991f776d5bb981e8cd92e9131670  include/splay-tree.h
-be2a8159cc57ae59dbd6b768803fe27f  include/filenames.h
-b93c2a82c5bace531e0be337e3fd8f28  include/symcat.h
+e5b2d5baa5d942c1eef8155cca8d8795  include/obstack.h
+06da646ae09e558d73d859508beac9b9  include/gdb/sim-frv.h
+49b7ccfcbba3bf2b492d464b8d8c41d3  include/gdb/sim-lm32.h
+662865f321d1548ac42b7559d8fb2422  include/gdb/sim-bfin.h
+b61586b122a00f5e8ec9a389df6d6384  include/gdb/signals.h
+e97184289b2a917724fae7db0bd2cd5d  include/gdb/sim-rl78.h
+6d3784445fb61382863cf72a0bd70271  include/gdb/sim-m32c.h
+c3906ec36cc702aed47e9ed4bf70d294  include/gdb/sim-ppc.h
+23f2d6ecab3add5201a53df9d71cb73a  include/gdb/sim-ft32.h
+d985ab01898df8d0fd88d101cbad7f25  include/gdb/gdb-index.h
+a5badafabacbea5059ea0673532f3d73  include/gdb/remote-sim.h
+fefd82d9ad6d9ed00af66ed947edaee2  include/gdb/fileio.h
+f9d4bcee0a06518603478334402ae7ea  include/gdb/section-scripts.h
+a8e122b666cb551445ba0a09d968ff1c  include/gdb/sim-d10v.h
+4f5a9eecc559f79c7201499dae2082ac  include/gdb/sim-rx.h
+dde5c219d53c17a0af896823e5a2e428  include/gdb/sim-cr16.h
+5815ea1fbd5f3e4620384afebbc558e9  include/gdb/sim-h8300.h
+850835fe18aa129e5bdcdd0dfac03444  include/gdb/ChangeLog
+f950c461eb3a79c1139909292e62ce07  include/gdb/sim-aarch64.h
+274826c32c43f0e4559a937bd1c087a1  include/gdb/sim-arm.h
+ba4ddd4f9ef3c73efb32cc896b63927f  include/gdb/signals.def
+d2ad036f25b58cfe8d97a28e90381e79  include/gdb/sim-sh.h
+ffcfe0cb01c0a38af7417bc9aa775e94  include/gdb/callback.h
+fe6a4b88c4a84f68a1549bd2b64963e9  include/ieee.h
+810af656d62bf4d126e8ac209c33fb19  include/hashtab.h
+e8bf8dd17f26a9cf31a3a56106772180  include/gcc-interface.h
+80ede8216d8ce73cc66bda2c415df12e  include/ChangeLog
+32675f876bdd16bed6ee1af989641429  include/dis-asm.h
+4aeeb52aa52171b54dd3cd19dc28770d  include/splay-tree.h
+1cc64c7ec7b7065e8ae4a879369655e4  include/filenames.h
+853f8c73e25aebb37bee7ecfef2008aa  include/symcat.h
 59530bdf33659b29e73d4adb9f9f6552  include/COPYING
-cba6b45d36aebe01961fe04881a3912e  include/xtensa-isa.h
-0db8e5b98999801bd8c771101e7692ff  include/som/internal.h
-b50650a3f7f2456234d7ca8563e77b3c  include/som/reloc.h
+19d66ec9b89518c9a6d0facb8801347c  include/xtensa-isa.h
+e20766c030b3d594f40f4d65548e4189  include/som/internal.h
+2aa45b722882358f0032767772e9bc84  include/som/reloc.h
 c8de48c3d7a8de69489757d4a947bb9e  include/som/ChangeLog-1015
-40d97cd587a41cd2db3343120626aa3e  include/som/clock.h
-f912a77ab1d4cc90ffd8fe488c145dc7  include/som/lst.h
-5e0719d77c3f3fd2788680f4499be799  include/som/aout.h
-927146323f2e6884a069a743290049f4  include/vtv-change-permission.h
-928fccfd9d0ce125b342304c9cac4dac  include/nlm/common.h
-98e731fc2c86f07ed213cac7aef8d13e  include/nlm/alpha-ext.h
-1903e20b96212de22030a9b655e57508  include/nlm/internal.h
-849e6c5e68a8d7552731b51b7eb5d12f  include/nlm/i386-ext.h
-6ce2fa5dd49e4a3966270f09de54693e  include/nlm/ppc-ext.h
-68a25ad5ee236e75687d86b5e26d812f  include/nlm/sparc32-ext.h
+ad702ff55d97ae29754fd5a0356c336d  include/som/clock.h
+0b7ecb719a3dea0dd13e4512e0d69871  include/som/lst.h
+2fae954cf224555314b270c9fcfa270f  include/som/aout.h
+fc46ef2f51a7805de53ce2f3c391ee1e  include/gcc-cp-fe.def
+23530eb693c7ef001eebab87cd044c43  include/gcc-cp-interface.h
+766ef7dee3446f81f776c6092ad27f8f  include/vtv-change-permission.h
+89f2de095cfb5d64ed28a8b6e5840fd0  include/nlm/common.h
+75a6c17f2bfaa1917c14403232986eee  include/nlm/alpha-ext.h
+0b414c47ca0c6ad79f59286b320e9ab3  include/nlm/internal.h
+12a043d241cc505ed2ec2e7981080db2  include/nlm/i386-ext.h
+da9744476a689e230d4fcdfdb1b2ac46  include/nlm/ppc-ext.h
+a0de9d1cbefbbe7ae266751c6d5c36c4  include/nlm/sparc32-ext.h
 abf560f9d754c0561ef602fe2a6452bf  include/nlm/ChangeLog-9315
-ef99ceebc26ee4a5d0e870b37ed4a135  include/nlm/external.h
-d05684ccf1f058cdc55ea0068cf673b9  include/elf/lm32.h
-fea922b1721b6585bdb247680c2055a8  include/elf/hppa.h
-efdf9fe0c312de2b09443e7a677d439f  include/elf/ppc64.h
-7466ef5af21c0d97be9643c2260f8dab  include/elf/common.h
-976829f0394ce7af25b0da7d56f55ef7  include/elf/sh.h
-fa4a4efe40f8b06c1dd76c8f23e2087e  include/elf/mmix.h
-1cc6e3f761800eb629af7c02fe59269f  include/elf/cris.h
+81643874e7a879a0a5a287a20052dcd4  include/nlm/external.h
+b18dfd31e529e6a07b59747f45193bf3  include/elf/lm32.h
+2e600a16c7021e05ed3dff206a7a1fc9  include/elf/hppa.h
+4c9c286084267b2e786f279279141726  include/elf/ppc64.h
+53cd58fc771133e89d73e577c1160c17  include/elf/common.h
+7d8e451da4c3051513da339a664f8b40  include/elf/sh.h
+f35485b7fab75354fa4109e554d73490  include/elf/mmix.h
+42ff529a680f8972e4feaf1db3c054fd  include/elf/cris.h
+111c36de9f13a59ab5121797c7f16454  include/elf/arc-cpu.def
 78dae0920dbd092662d60ce0260ab14a  include/elf/ChangeLog-0415
-227e741640155bc56b8ba85045d6cc85  include/elf/xtensa.h
-514069ea6060b6c1ad3c35c57551c105  include/elf/tic6x.h
-c55d6a2f4062d67b553517b5047233f7  include/elf/arc-reloc.def
-9cb2989ea0228f0efd7f596981f46524  include/elf/arm.h
-46ada356320676d2ac19f7f563cf1338  include/elf/bfin.h
-a0004b51b5b3119ad155c8f5cbc2ec49  include/elf/nios2.h
-2f3a70005b182fa8896831d81f5fea50  include/elf/epiphany.h
-587313cfb3473e0f831be11617d78fad  include/elf/tilegx.h
-0d1f2ba78f7640930170db51c440aace  include/elf/tic6x-attrs.h
-72c9c61444dc1e9dba1b4b5289b237b4  include/elf/internal.h
+30d89dcfff3ef5850ec0e593c26b0d94  include/elf/xtensa.h
+68f82f6dc2fa49766fee574505af2b59  include/elf/tic6x.h
+7705bdb00e1c2acab59b40b413bb0f21  include/elf/arc-reloc.def
+b6772887b9ba39a719e6efe10f819eec  include/elf/arm.h
+75effae8729bc9bd669e8726823b4e37  include/elf/bfin.h
+d90d9a3432c3882fef767b7b14311d5b  include/elf/nios2.h
+6f1ae653dccba279df073c46430ebcd7  include/elf/epiphany.h
+da60752d54fe05598b564c2eb79e3ffb  include/elf/tilegx.h
+cce4e7c4e19245cbd2748b94d7f71166  include/elf/tic6x-attrs.h
+8d3a4c8ed616ee937f4f260cf23474ce  include/elf/internal.h
 4a26c010ce1159365c425f0df730a09d  include/elf/ChangeLog-9103
-86ab8ef305200ec91087012996d0846a  include/elf/rx.h
-2fbfec377935eb8137aeb3afb7363b2e  include/elf/i370.h
-16445e7e55a3822ea151595e81a23523  include/elf/alpha.h
-00504a472ec117be45ed678a32bcfdb6  include/elf/msp430.h
-34c5ed19aa8e2ec39b4185d108c94dba  include/elf/ft32.h
-78b2d7d5d273295770c15b66c8278470  include/elf/vax.h
-c94d462055083c39fae6c4c2ee75420b  include/elf/microblaze.h
-de4bae1ff935293e439d38cea48596a5  include/elf/d30v.h
-fccd0189b754a7e4b86482dd8b463199  include/elf/mn10200.h
-d1706bcd5e189ccc9cfe495e5ec3f304  include/elf/xgate.h
-c55839c98b23c181e934d58309e00c66  include/elf/ia64.h
-f5a1b388e167e04f7889b21c26251e1c  include/elf/mn10300.h
-1ef67b6bb287ffad5e6d913e082b4175  include/elf/m68k.h
-77b86bd0e4fd384d630387cc2e3eef76  include/elf/or1k.h
-0173263c2b6656612c37d0f66b5c6e41  include/elf/pru.h
-c82456b18233ca1874babe10fd821c66  include/elf/reloc-macros.h
-b790f5ce311a7e36b92f8a19254131d4  include/elf/cr16c.h
-7d2c475b69e6388fe2cff9f1906f7e52  include/elf/h8.h
-697a88487b90aec930ce3e11a713c4c6  include/elf/i860.h
-7127985579b55c407630f84bfcded6b4  include/elf/wasm32.h
-4ca9aa8dcc18265e04c7a381b35e3f38  include/elf/arc.h
-58f2f376e4b29cbcc16c153f383546d9  include/elf/ip2k.h
-752c6f8451b8b6fcfecdc5dcc205c725  include/elf/cr16.h
-1e08b3057f1b352e16ebc1502da725ba  include/elf/mips.h
-a2f3ab11ca3d55214de78e214e9653ae  include/elf/aarch64.h
-94139333c1eca709582fc9a01f1540c6  include/elf/dwarf.h
-7e91768bfd9df59a789fcdb8649f4aa6  include/elf/xc16x.h
-65ed394b2dc975219ff8e6bf459dc843  include/elf/ppc.h
-ca9437e699d3002d2dc0e79146c46122  include/elf/m32c.h
-84343d80c087f48bd57fa30dfe52241d  include/elf/s390.h
-be880592d94b8306408077a22b6b89a1  include/elf/riscv.h
-b7ab81eb21b4fc0741c3e3e04caf23f9  include/elf/vxworks.h
-a6b3abae0cc5a9bf6fece83bd3989837  include/elf/avr.h
-bb35506a370968c8466c3fa836ed00b9  include/elf/spu.h
-73346a833013ada1ca2891a66daa3ce6  include/elf/crx.h
-834bcb921027218d5ffc4bd7b1d64b8b  include/elf/frv.h
-b2060dd2acd5891c0d2d999dab0da840  include/elf/xstormy16.h
-c7c0369f2863c35e0825ddcb94e1eebf  include/elf/moxie.h
-2f23dd9133a0fbf6d4e91a3b81652d10  include/elf/dlx.h
-383c2f5028294d5c85c97aa94ad4d5aa  include/elf/tilepro.h
-4423906306a5518e925e7731f7dea0b2  include/elf/rl78.h
-8f5631cf9cef01809a75418245fcf2b1  include/elf/i960.h
-b12a3466c1b9cda9fee282c1f39cd90d  include/elf/fr30.h
-27a257ca87037d1bbe7286b82fbf7477  include/elf/visium.h
-eea3751565de5f5e8bf22eed58485690  include/elf/m68hc11.h
-8e9fd94e41d0be8a91ee09c69ca5da7c  include/elf/nds32.h
-88402b95d94f0a794fd42c68433cdf96  include/elf/iq2000.h
-301f1ba625518c932dcc295983cedc8a  include/elf/mcore.h
-03a71854f32debf2ec14e335d0d29132  include/elf/sparc.h
-d1067aafc6c1be05d28fb490d098a5c4  include/elf/m32r.h
-49025a98fabd817e6af2256036785fc4  include/elf/pj.h
-c01da564fd0febbb800b03335387179a  include/elf/mep.h
-51cbaf8fdae7e84ea9745d84a294febf  include/elf/x86-64.h
-f247dbf3499c311e589d9a878672b042  include/elf/d10v.h
-bc7e4b756c6e24b90c4d8b5aac899558  include/elf/v850.h
-759187b19217ae4c6a9342de459d52da  include/elf/score.h
-360142aada358453adc51c9d2c607e2d  include/elf/i386.h
-dc42e191b8720cb594dbfa69a4edbf6c  include/elf/metag.h
-5bd02519cbb4f98e0a3b88cfa55bb140  include/elf/external.h
-05080841cf9a66daa861378a1e450358  include/elf/mt.h
-8533af70b715aa5997b2bf6bc3ce3116  include/aout/hppa.h
-f1d27f2482a919d7929d82f7018e687f  include/aout/dynix3.h
-8d5fecacfce6e4146f2044187b17b04e  include/aout/ar.h
-d387f91aa196f53a36144eaaf832742e  include/aout/reloc.h
-d38e4d1cc7bccfcb898e498770671ded  include/aout/hp.h
-2f8eb01b73afd3d2726de8846d3fae99  include/aout/host.h
-4cb11ab63d3f246268239e51ff3dceee  include/aout/aout64.h
-99b92560f26cfd46b1a3fcbce091121c  include/aout/ranlib.h
-d814b89ec74d00dd31624a04869ef2d2  include/aout/sun4.h
-95e124533604f6aff8e233af07531de4  include/aout/adobe.h
-dbff8387e0dae4e9019119d1cbfa9dbb  include/aout/stab.def
-b87b98f57341cdeeedaa65153348dff3  include/aout/stab_gnu.h
-cfb37734aab8a6d7bf23ad19886c662f  include/aout/encap.h
-cd963fd754bda753c44a3fd2b51007f1  include/aout/hp300hpux.h
+01b5db46832fa21591e1cb7c59a835ee  include/elf/rx.h
+b94c345a2a8ba86395fe1a0b8bf93969  include/elf/i370.h
+53b62c19198b43efaf3e3b4c0687eb63  include/elf/alpha.h
+355ff7cd8338eef18019ae073a46327a  include/elf/msp430.h
+9c64cb6ff950ac8e9a670ca442e3ea1b  include/elf/ft32.h
+601f33b48bb0a3c8106d9e6b4f98fc91  include/elf/vax.h
+fc642b2d9f16e09a48d3a20d27101e90  include/elf/microblaze.h
+4d4e0b389dfe725e51e41686afed4fca  include/elf/d30v.h
+c85a7b952792f0329ea474aa90092835  include/elf/mn10200.h
+d8c3be29ab3541dbaeea87040e02ac6a  include/elf/xgate.h
+e7ccd07a1bfc1e1221659f87323e544a  include/elf/ia64.h
+6ac58517861b60f240c241b87f65c307  include/elf/mn10300.h
+71a3a9aa9cbbaf79a4a9ba8c3dff2c09  include/elf/m68k.h
+0dc679da91a20e511ecbb39424c6d73f  include/elf/or1k.h
+c72af3d1583edbe6bee8dd389a4240ee  include/elf/pru.h
+f3b91443ebec32cdcb554dc60c7e2426  include/elf/reloc-macros.h
+437fcae9ed00e4767081f2173820910b  include/elf/cr16c.h
+cb4d7665d8e7e4d91e03261aabe216f3  include/elf/h8.h
+58898541e0f811ea4eb7e2af30f8d974  include/elf/i860.h
+f357599bdc97b50eb84dd136d8bd2aa5  include/elf/wasm32.h
+d93b46e8edd37a417b5f4f921290dd94  include/elf/arc.h
+8bbbb5bf25420b4b7d1e9047003aeedc  include/elf/ip2k.h
+573e7c04cfe7d00a347812d4d0f9f70e  include/elf/cr16.h
+b6c7bb38389df849b456a17c1e9e9c93  include/elf/mips.h
+2f48e166972cf73701d197e8aeec6b48  include/elf/aarch64.h
+7a4de8838a01e46db762ee4ec920e523  include/elf/dwarf.h
+dbd3c1dde9f4f037b16732b26443c579  include/elf/xc16x.h
+5241c06146d7be10377b220cc9580430  include/elf/ppc.h
+8864e9dbdd4de84334f489dc9d70423a  include/elf/m32c.h
+092aa6adfd9ded2b8ddd62a04c881043  include/elf/s390.h
+31511cb23fedd1f4364c83a11aa45d7b  include/elf/riscv.h
+323bf49731f6b32f552e0073811e2bd9  include/elf/vxworks.h
+0616b483ec130ed3be8db0abe5b6da9a  include/elf/avr.h
+29e2371fc47376ab75e407e673a705b6  include/elf/spu.h
+ccf8e1ddbbb029ccf85d7e69fd334c90  include/elf/crx.h
+592c045db40f9f839f750452f3420b5f  include/elf/frv.h
+1fac517c2642d18ab6b773225fe38dc6  include/elf/xstormy16.h
+49237cb04ae25c50ee1eb2e6e9f12e90  include/elf/moxie.h
+9f96198f7be507d8944a87cf4390d8d6  include/elf/dlx.h
+4100f3033333a2765173c354dd87c073  include/elf/tilepro.h
+f672cfc0682b13b7416c0c86e144b446  include/elf/rl78.h
+176c74027faa9948035563ef76de00f6  include/elf/i960.h
+9600530596a6bd98459aa75eeabebf97  include/elf/fr30.h
+1770507ea2429772abeef169c27fe62e  include/elf/visium.h
+5d54e926d042070e1337f8e918ed46a7  include/elf/m68hc11.h
+c6495233aa4af06060a9cac6979a8716  include/elf/nds32.h
+c053493849fdeab813571e01bda40cf4  include/elf/iq2000.h
+aa2870b06ca51476520bebac41e87a50  include/elf/mcore.h
+834ef28eb05ad0a89c9a84b020358b5f  include/elf/sparc.h
+891406bc26d458e7b109809a7a3a2614  include/elf/m32r.h
+4bda3de705d08fbc2ab898820a2b1c70  include/elf/pj.h
+f41bdc3bd92d317a35b5ef6439ab292e  include/elf/mep.h
+21480b87a2c1802966e9f3439e562680  include/elf/x86-64.h
+6659d43481df532aa8378436df33b9e1  include/elf/d10v.h
+db9cd9e44496b3b19efd69c98b0e5643  include/elf/v850.h
+d59d64a991c51c174c4210618600566c  include/elf/score.h
+2bb2f2ca562e2f51613803d5647c0947  include/elf/i386.h
+2951053cee4b1db99051393f9e79bf37  include/elf/metag.h
+78b7ed34f12d55766ea3e21ddd8aeb87  include/elf/external.h
+c7854828673c2871449667b3d96198ea  include/elf/mt.h
+78a0a053580681be3a4a931285c2b1dd  include/aout/hppa.h
+9310aee863a71683e2c72b2a33903d78  include/aout/dynix3.h
+3223fd52802ad726cd4addc69a507d3c  include/aout/ar.h
+998f4fdf2a9f403ed4c6d6b73f4636a5  include/aout/reloc.h
+9b5c5ffc65b8fc6d006bbfa73c487604  include/aout/hp.h
+d98d2d851765bd138fe84aa66d8b5ba0  include/aout/host.h
+10a27d6ab85659506d3f631221512b01  include/aout/aout64.h
+519c8eb910b3696f25d8315937857c7f  include/aout/ranlib.h
+fafa26ab75fac5860663c4b817ba9f2f  include/aout/sun4.h
+8d8a6f3e128fa8c7682735e90c9750fd  include/aout/adobe.h
+d37adb1b17f2b3d65d567905ff703711  include/aout/stab.def
+42194206668b86fa7c21f806f311d3cf  include/aout/stab_gnu.h
+63c526643d6b8d63c9a4a7ab3b1c2d75  include/aout/encap.h
+3b9f2fae4f412ef11dbed59841cb4580  include/aout/hp300hpux.h
 8d8aa9eeec25b25da4bfafcc670162b3  include/aout/ChangeLog-9115
-da559fd8881edc99f8da246d3c753e1b  include/xtensa-isa-internal.h
-fb089409eeda54c7d6594bc4d8e54bff  include/MAINTAINERS
-a43bf315eb59ac19fb32f50183afe218  include/cgen/bitset.h
+aa004fdfff383a4f2bb345ab4407c9eb  include/xtensa-isa-internal.h
+25d1efe456b3a00515f638a6da43faa0  include/MAINTAINERS
+bf3922099d139555287673a9707e90e7  include/cgen/bitset.h
 37785f3eed21fc14cdc3a0b12e8b4406  include/cgen/ChangeLog-0915
-286692a1cc8373f1856b7c4866c9bfbf  include/cgen/basic-modes.h
-50744469cec3b659b9398a2eef539e18  include/cgen/basic-ops.h
-7df1a1aa229d43d5908b8324410f14d6  include/bout.h
-c7e4c5253047a252cb017026d5d2d001  include/demangle.h
-460305bdc9d7e647fcc2afc13399dd20  include/bfdlink.h
-a3809e336de193fa8866271870dd0443  include/xregex2.h
+7772efe8dc8f5322af61bd4464863aa1  include/cgen/basic-modes.h
+c78b5ef62206d689c696657aed751401  include/cgen/basic-ops.h
+ebebe8f68ad7a72b11a37a6ed97b4e94  include/bout.h
+35a9e2ae2c1f5c00c6d7566b20a6d947  include/demangle.h
+54908dc2b8fe71a6121bd474f56ad738  include/bfdlink.h
+14385d807191a7ad0a4a4a103756a3a6  include/xregex2.h
 361482dd6b5b5eb7090fff3986fba68a  install-sh
 12ff40e8c89d99dc7b704bac9434124a  intl/plural-exp.c
 9f41e951f166a5aedcc25268c161d1da  intl/l10nflist.c
@@ -6447,7 +6701,7 @@ d8e3733cf513bbf862ca090cf6403edf  intl/l
 43f287d082528203fc85c1d2d81bf30d  intl/textdomain.c
 8a751062d7db9b6e8163667e5626fcb5  intl/config.intl.in
 81b58accbd88cd8159471d322723c42d  intl/dcigettext.c
-13576a23b957f53b84954feaf7908d49  intl/configure.ac
+6482fe64d6721cf11accf8e30ee72e98  intl/configure.ac
 6ec998bb4716c744bf8185e607f69301  intl/README
 6f008e715086ccfb7e8e44c007fc7bc9  intl/finddomain.c
 45bd4be597b118d4bbbff6c9c6958e87  intl/dngettext.c
@@ -6463,12 +6717,12 @@ c8501675ab40fcf8fe39364ab9de0e42  intl/d
 bedade7bcfc3bc5eb09a2c6844f637f3  intl/relocatable.h
 6e671cf01cbb93dedaf7b3688062d7b8  intl/eval-plural.h
 4109118983200f4aa853bf0cb466c586  intl/plural-exp.h
-258712fb6b4caec5206fbfc6d5c7dff7  intl/configure
-29ff905e8545642c89a94848f0bb8fed  intl/aclocal.m4
+f49d79d0eff337e45e38c7d37f349628  intl/configure
+9377491488e17363a531bdcfdd12a7cd  intl/aclocal.m4
 049ba34a0c8d1fe665e8119e579dce4c  intl/hash-string.h
 c6620ffc92d5853137d3ac11300de38a  intl/gmo.h
 0ad4083e3b5df1f764bb605dcf657b88  intl/loadinfo.h
-df0e720fc2e4d6f9ee771d456bc7d277  intl/ChangeLog
+7736c1c9b3f73afff8c43018a46193de  intl/ChangeLog
 b4758a0194e3e41362b939911472ce62  intl/relocatable.c
 bb9312cab68737125445f5932ae7140a  intl/locale.alias
 0ff7bc241f5ea36688cf8bb6ac801b5d  intl/localcharset.c
@@ -6543,7 +6797,7 @@ a4b73550a11428009bb7a8a4f4f034a6  libdec
 9c3a9e828557622656503a8059646572  libdecnumber/decSingle.h
 828d8b133f28c377d2a2b9ed16a7015e  libdecnumber/decPacked.c
 c040382ca9cb3f01cb0d4d2f9b97a1aa  libdecnumber/decCommon.c
-0546f7eb030a4e020eb090d2654f40d3  libiberty/simple-object-elf.c
+55be94148648fdf64fb5b75dc1fbc1ac  libiberty/simple-object-elf.c
 4004fdcde347fda58406b4b84a995c66  libiberty/config/mh-aix
 904bdcd9daf97fa55a9ca8901ffe7435  libiberty/config/mh-openedition
 044204f5b4bcac5eae2face0602129ae  libiberty/config/mh-fbsd21
@@ -6551,7 +6805,7 @@ c040382ca9cb3f01cb0d4d2f9b97a1aa  libdec
 7b65854f594c84e80295173de277b3dc  libiberty/config/mh-cxux7
 8b54922b04da1288c0d5ba4af4a0ee75  libiberty/vasprintf.c
 6e139464436ac047cce1d1d2faa8d3ea  libiberty/snprintf.c
-139b7ec23e10704151a6e8140bd77e6d  libiberty/cp-demangle.h
+8d0a6f2e0389b45a140a7647c7774a0b  libiberty/cp-demangle.h
 0b27e2c6cf9500f1878ca088c81a508a  libiberty/pex-win32.c
 fd2d265811c4b9df11063b5077f93595  libiberty/stpcpy.c
 13cce636dd9882e42c9fc5d607351f4f  libiberty/strchr.c
@@ -6562,7 +6816,7 @@ fd1435a5be24d2ed84909540998dd5d7  libibe
 116ba5600e20aa887878a5fb8e23b33e  libiberty/md5.c
 26196a9a92fae743a06d65f0e081084b  libiberty/strtoul.c
 b1b130fe4d3f33babb3ac3fc0b44abf8  libiberty/rust-demangle.c
-a3f202602beef853a3137bddf194e3e6  libiberty/dwarfnames.c
+3abf52bb21d8ccb85d9e3d046930098f  libiberty/dwarfnames.c
 e2ba46101e00a8ec0efe347746fb67e4  libiberty/hex.c
 d132d24f15fe05fe3614e69d6dbc65aa  libiberty/strtoull.c
 74ebb922e9178a4a6c746fc4244d4974  libiberty/setenv.c
@@ -6577,9 +6831,9 @@ c7634c63a4c955b11e78d33b6d14879d  libibe
 3b03f409fd38f9d543870f21e6d7f5c8  libiberty/waitpid.c
 24fd8f6498981c1eea47af2bcb1dfa3e  libiberty/configure.ac
 c68dbf7834af4281ebd84caa3fd54680  libiberty/README
-548a3abc3aada0669844c73c5dd81a43  libiberty/simple-object-common.h
+4122e01eef7e9956bc8152869b1b602f  libiberty/simple-object-common.h
 0c2635175b975823b40980974dfc2110  libiberty/ffs.c
-2763235b9bd9c1668e1e0d33aff2a9ad  libiberty/simple-object-coff.c
+3bf81f4f02291ee96b0e9c06a14b156d  libiberty/simple-object-coff.c
 c467af6dc5654bd53bb21db43f010f6b  libiberty/dyn-string.c
 1fba1d2c7e578bb603294d1d38b15e6e  libiberty/xstrndup.c
 0c70ad1e35bb090b52ed593865025741  libiberty/gettimeofday.c
@@ -6599,12 +6853,12 @@ a26fa6d36a2a6c06a8387a3f8ad09e1c  libibe
 848cb13c1fce50e96fc2808183795355  libiberty/strtod.c
 a4f2fc2102958a9e642580a0cd7dc0df  libiberty/libiberty.texi
 25824d923241b7abcf1f790188b316df  libiberty/concat.c
-8aad2cfd0a53549d6278cb6b2ee386b3  libiberty/cp-demangle.c
+ea819f780e94e804742b3148ad31cb86  libiberty/cp-demangle.c
 4b91b1e4f0fd04e66a606c12418f4fac  libiberty/asprintf.c
-7775c4c6cb8717ea02fe1ff30b592efd  libiberty/simple-object.c
+daed0da0e6a2487af9a9ad13b32bd18f  libiberty/simple-object.c
 972222f69e7dcd4186532d73b70944f6  libiberty/memmem.c
 94f22680349b4ae73ad658495d2eb542  libiberty/random.c
-2a16e5c4b0a9c86a7a237a91dadf1786  libiberty/cplus-dem.c
+67c5de8f03f120182b8dc73b0566beec  libiberty/cplus-dem.c
 145debe2f28f470878f95b1255f5537c  libiberty/fnmatch.txh
 de9bd20436bf2cb64d8c374c110ce315  libiberty/memchr.c
 6bde6010eac7daa17f7b7fb9301cb0fb  libiberty/mempcpy.c
@@ -6618,13 +6872,13 @@ c90c2f09bdcbd65b4732a4be25a56d12  libibe
 c545619a42b4f34c57776ecf8d5690bc  libiberty/testsuite/test-strtol.c
 ad3f2fc6ba90397c70fce3b4010cb4df  libiberty/testsuite/test-demangle.c
 e60e531e1c255b20c3f3f69ffb4a3167  libiberty/testsuite/test-expandargv.c
-e4b81282bebe5e27b5577f1c9921845e  libiberty/testsuite/demangle-expected
+fef8c8b02c71f41b29865290fb9e0093  libiberty/testsuite/demangle-expected
 7646b648e377bb32468bcdc9095008f8  libiberty/testsuite/demangler-fuzzer.c
 820a31066f47674317cc9744d413850a  libiberty/testsuite/test-pexecute.c
-69dd92f0372ec3a77e992bb9318dbdac  libiberty/testsuite/d-demangle-expected
+23e6b75e25b9f0a78145bdd1ba619ad4  libiberty/testsuite/d-demangle-expected
 3b244903adc10042e540d053c3585245  libiberty/testsuite/rust-demangle-expected
 53b8c20755ed48867b0b158f2544d119  libiberty/obstack.c
-641fa953d98254c3ce582eb2751c02a9  libiberty/simple-object-xcoff.c
+3591ce1cc661c9f43696fd2928e1e85e  libiberty/simple-object-xcoff.c
 9968bbb75dc08ce768389912954f4348  libiberty/strtoll.c
 cba3a68235b9b0c878c5480b569483cd  libiberty/safe-ctype.c
 7897e43bedd2def4beb6eb73003efa68  libiberty/msdos.c
@@ -6667,7 +6921,7 @@ a8e1b9017094e205d18cdc2d66b4a9d9  libibe
 9d0471286f21d9027bbf1b7c67b87856  libiberty/insque.c
 b2c289eb14e9197dcad172f3acba12b7  libiberty/xmemdup.c
 c9bd3841bbde6d8ae680f62523f00ab0  libiberty/strtol.c
-ec0c2a71d749f399430503a1f0caa895  libiberty/ChangeLog
+3b147a0bcb154e91db8758a68f4e643b  libiberty/ChangeLog
 c34119797a13e71989722851c14b711b  libiberty/atexit.c
 82950002575ceab0b1de6d4504f891f4  libiberty/objalloc.c
 32a0a662a90a3a30b0859538920a77f9  libiberty/argv.c
@@ -6683,7 +6937,7 @@ dcab9ce997b7503cd0ca552c701cd68a  libibe
 a6b1581efa83a4072727b38d6fef4230  libiberty/pexecute.txh
 27dda442f6d4175237264a7a2f948731  libiberty/pex-djgpp.c
 13e1ad9800566642f3738aeaca16fa0e  libiberty/make-relative-prefix.c
-71e5a45dff3b38310e4589e7632e129b  libiberty/simple-object-mach-o.c
+8dc36af61008575e9c2332a91cfe007b  libiberty/simple-object-mach-o.c
 ab8d4cd68aa4892e2318d2c71864cc56  libiberty/basename.c
 8e71982d77e91c0e3c57ca86c8a1b548  libiberty/vfork.c
 754c5ef42440c5d1b62146174a6636e4  libiberty/getcwd.c
@@ -6704,7 +6958,7 @@ f32b581d10bcc500277b6f4b4f923a4e  libibe
 1ce6b9891fb486f2544d21270a195ffe  libiberty/hashtab.c
 a707d2e5daa09d204d4441e8713048ca  libiberty/bcopy.c
 83565a31c7f296b3013daf383cd03ee9  libiberty/config.h-vms
-d0e47f4b03d1ae948aef8f9bf26db8b4  libiberty/d-demangle.c
+616dbe34cf0454fa4f89583d2044fe28  libiberty/d-demangle.c
 4a0acb9356a52f3bcfd67efa26997b58  libiberty/bzero.c
 d86e1ae7310d5aade321dc4a970495eb  libiberty/clock.c
 cecf80a9e15965091c31d26754f8f311  libiberty/xasprintf.c
@@ -6724,347 +6978,349 @@ ee9326b9e9d8bdc23dc2588e981b198d  Makefi
 fbe2467afef81c41c166173adeb0ee20  mkdep
 82b7b70a9845ee61a01f20b29dd2df2c  mkinstalldirs
 21b967372b521f607c0a119f425931ec  move-if-change
-1d2ffa68305750337cb61d48733a7641  opcodes/m32c-ibld.c
-f9e6dea45b44bc13ba1a68797b66c14d  opcodes/alpha-opc.c
-12f322c85e824e8cf6fab924f80e36bc  opcodes/i386-opc.c
-89b6e0fdfe0d1df6602a2d40cb93a8e9  opcodes/fr30-desc.h
-afaed533e83268e3edad03b4895f5196  opcodes/lm32-asm.c
-24d012d2bf9be588ce7f94813cd3f0e3  opcodes/i386-opc.tbl
-ff0057f27ca8ac3333a89d73383bb2fa  opcodes/xstormy16-ibld.c
-1afa2f939dd689c0a92e84d021e75f8a  opcodes/mep-asm.c
-531766a316c8c00e058565d921368174  opcodes/microblaze-dis.h
-dd3d0fb35a2535491d05118c9cd75016  opcodes/rx-decode.c
+bbcc766e435ffde52f5fa5c4cb8e69f8  opcodes/m32c-ibld.c
+d6bd01e30f1dd68dff116626528cc9ea  opcodes/alpha-opc.c
+72943398641675e5198cc313179179d0  opcodes/i386-opc.c
+d4de0193d0c1e93c3bd4bf9c645da15c  opcodes/fr30-desc.h
+59faeef8009b5bbc00168e72ecf6ac1f  opcodes/lm32-asm.c
+4e752a62dcd1a37d498d08ddb5fc4f91  opcodes/i386-opc.tbl
+745a0aa0fe24db53a67e5fbfda568d7a  opcodes/xstormy16-ibld.c
+fcb332d67596022589ff80ffe586a00e  opcodes/mep-asm.c
+9ca7129acf172363269b0edc953f1235  opcodes/microblaze-dis.h
+99408f99901904099520b72bfdb85645  opcodes/rx-decode.c
 b969a750db9679c41a9517973294f8a9  opcodes/ChangeLog-2013
-2f16b7d0dfdfaff719e0542d81e76db2  opcodes/ft32-opc.c
-aa59bab2e5159faddc51d22213f6b5c1  opcodes/sh64-dis.c
-b0b8989d2cb55877f894d50ad775f066  opcodes/ip2k-opc.h
-8c094cee4a4683db2b01f9cf1d2cb81b  opcodes/arc-opc.c
-a3bd331e034a71f1e3adcbbdde37b12e  opcodes/m10300-opc.c
+b15f9fe366bd2db0a283c1c5724e430c  opcodes/ft32-opc.c
+2346d8d6c17349e7b6ca3a0ec440e04c  opcodes/sh64-dis.c
+9b6d8389dd8453023ac77a271dce9037  opcodes/ip2k-opc.h
+104c9754f951cf64020358a93866efbc  opcodes/arc-opc.c
+180f6f084ee326f242b163e47ba23e35  opcodes/m10300-opc.c
 1f5acd3452a0a360529d00ef50d69b58  opcodes/ChangeLog-2011
-b19a6683c082c5800fac1aec7f370575  opcodes/epiphany-ibld.c
-096d91809b6446dd0b5387465df9a959  opcodes/m10200-opc.c
-78a86d555daa6832041390732439c78b  opcodes/arc-ext.c
-a96d767774b9d49d336dea5b08a4cd95  opcodes/or1k-dis.c
-6b8cd57825e2d4ea60f3155c6b72904e  opcodes/m32c-asm.c
-5a5d65fbb2d8443310b925a8b5f94c89  opcodes/mcore-opc.h
-b2c34e02d1f962970347f9684a01b244  opcodes/crx-opc.c
-210171c7c09c5a6cada5bd30155149f3  opcodes/fr30-opc.c
-6f27c0d7c8faba3c2f1374ae070368f3  opcodes/Makefile.in
+6fbfe546ba5c88d3c8312250190ddbcd  opcodes/epiphany-ibld.c
+8ce4f32d15e5197157b3d579f0b8a4f8  opcodes/m10200-opc.c
+3ce196d8f2fc19d964027e8a9e377486  opcodes/arc-ext.c
+ca0b5244435c7b222b5073274c0c24c4  opcodes/or1k-dis.c
+3d071344ba5658798ccefe050b226a0f  opcodes/m32c-asm.c
+8d3736d05cb68657a7fa2aef68ddd4ba  opcodes/mcore-opc.h
+73e8a256943b97e96f867f65df87bfb0  opcodes/crx-opc.c
+352654618d0c3a94618bd5367dc3d7ce  opcodes/fr30-opc.c
+28f681af55bc540d78bae06e99e4f0a7  opcodes/Makefile.in
 574537d9972c9161d297dcfd7eca0282  opcodes/dep-in.sed
-fbe7864bd71492822c523c817d10d661  opcodes/w65-opc.h
-406ab0db706682de7d0d3b53b4d481f1  opcodes/m32r-desc.c
-aa7b6f4164f121d16cd0e9f52367a9ef  opcodes/microblaze-dis.c
-7c3df442c0aea8884e9673bf1c7ee94c  opcodes/nios2-opc.c
-355713abc4e6e8a4720d5aaa4d071cd6  opcodes/xstormy16-desc.h
-0848893bbe4e3323240b23b061f3eea3  opcodes/alpha-dis.c
+1603b094ec72ca656087aa7e137d64f7  opcodes/w65-opc.h
+4fb7e48c67e78d2976efb7a0d9d73b0b  opcodes/m32r-desc.c
+acc6218c5a3e8dfc59c643cfcd7ed516  opcodes/microblaze-dis.c
+5077e1fed3d1a1ea7991f32a424bea3b  opcodes/nios2-opc.c
+f5fbc5c107a1d3d293a9967767e0bec6  opcodes/xstormy16-desc.h
+38a5ce4dbbc447bc9d171dbcb113fbce  opcodes/alpha-dis.c
 8d02c591f7889e4a0d6be47c55d4168a  opcodes/ChangeLog-2012
-ee1d1043456f94e3b810105f06ed7a75  opcodes/ia64-asmtab.h
-a23b5defe6c9dcfbc66d412357620e49  opcodes/fr30-desc.c
-fa141229e33d962e43d7e5b84481420b  opcodes/m10200-dis.c
-a2f1eeea8cc0b75ba9b88f2ea79e62c5  opcodes/fr30-asm.c
-be9ddaaa3c40c1e5a59f9e0273c760df  opcodes/cr16-opc.c
-ecf6122e1e5bf1cc3a1972b28619fc3f  opcodes/m32c-desc.c
-a3d57a97b36851502b358cabc50bd753  opcodes/cgen-opc.c
-eb168c30daf1a872bab94e6a23effacd  opcodes/ip2k-ibld.c
-a9f46e142f53c554cd9f1d0f7210fc9b  opcodes/m68hc11-dis.c
-38974c748b4ab4c1cd5b7e5d081bf200  opcodes/i386-gen.c
-fb50c8960a043639293166f911236f58  opcodes/xc16x-opc.h
-a1deb75a2c3343355eb6be3cf6ec6c68  opcodes/score-dis.c
-6deb645a0c0937cee8edf0d385f759c6  opcodes/m32r-ibld.c
-fad618fc9a6b2135946ab96d9da5c089  opcodes/dis-init.c
-54fe91d2ac135743ee947152cc943dae  opcodes/sh64-opc.h
-7251b9f53abff8dba378e6d4d16c8b5a  opcodes/pru-dis.c
-4c26d82fa8d033bf513553a4644ef186  opcodes/mep-ibld.c
-042d9d1d3135724b717ae73218afd3a0  opcodes/rl78-decode.opc
-9a9f2ba951714cf306808f50f9b828b3  opcodes/m32c-opc.c
-9564424999c5ec7d653e7b2ca14f85f6  opcodes/m32r-opinst.c
-f1e308372eacd4aa07edffde96ff4264  opcodes/fr30-ibld.c
-0c4f7c93dae963e03be8dfd92a4a0588  opcodes/tic6x-dis.c
-23e02b9949b039984723a3bc23f2474c  opcodes/nds32-asm.c
-80ddb533e64f1124c1482d84fe20870b  opcodes/xtensa-dis.c
-18201376912555d8b5d462e9dd65017e  opcodes/sh64-opc.c
-45176ecba116e8bc2e958591773a1392  opcodes/ia64-opc-b.c
-9edf1df80ee5ad264d4e6e88b95ebc21  opcodes/m32r-opc.c
-ea08337ff7c0306cb02ddf81857b757e  opcodes/moxie-dis.c
-d7d18cec1f25ca4cb81aacd24194f688  opcodes/tic80-dis.c
-8fc3e18665a1a52ae568a08d8235cedb  opcodes/mips-opc.c
+df90418e4057ae03818386cf289a99a9  opcodes/ia64-asmtab.h
+b7e1df5bf5684239828dbe96093107a2  opcodes/fr30-desc.c
+a4374f87949d787eab0259f85437e8e3  opcodes/m10200-dis.c
+4a555acff23ff283cbfaaab429ef78d9  opcodes/fr30-asm.c
+3f8c4d17575c4a57c939a1ac9a357de5  opcodes/cr16-opc.c
+b350adafd88ac0bda2d46f091d1428d9  opcodes/m32c-desc.c
+27b3c37ceb97cc6cf89cf0023adad5ba  opcodes/cgen-opc.c
+4dd0e8e22a35f6996f8ac7c2867e0d53  opcodes/ip2k-ibld.c
+149070dce9710fb0a4102607db62a651  opcodes/m68hc11-dis.c
+75d15c684638abc081da48a731569318  opcodes/i386-gen.c
+30108ddfff0d83f6a238ac5459b7ade1  opcodes/xc16x-opc.h
+635e463b591f26a37fc4a42cf39c6767  opcodes/score-dis.c
+f17f27bb1c6ab4993bbe5377ec1ae059  opcodes/m32r-ibld.c
+ec79c3ac774b32c179a2ca87f2a820ee  opcodes/dis-init.c
+8e62eba04f5cd1b899e46a5ed59e7ed6  opcodes/sh64-opc.h
+a89b321dfbd0b3d870e8a2661ce3b6c6  opcodes/pru-dis.c
+12192f14719f65c454949b9d5d54270d  opcodes/mep-ibld.c
+753e04396c4294f1054a41be92422e16  opcodes/rl78-decode.opc
+d05948d1eb7471e9010b28951308250b  opcodes/m32c-opc.c
+e3e18d62da163e1b6c768c48fb8c41d0  opcodes/m32r-opinst.c
+674db1a6e0e7444dc71cf6b149fcee1e  opcodes/fr30-ibld.c
+c2b0a54e0ff88ec8f4bac52b566f4462  opcodes/tic6x-dis.c
+d30f44c3c88a2b95f703d81283d23aeb  opcodes/nds32-asm.c
+e66f5c25fcbfddfbc6192015d101e410  opcodes/xtensa-dis.c
+1d022a9636a602096dc0d77df25c3205  opcodes/sh64-opc.c
+8e770716015a2a9c95ccab0bdcea5291  opcodes/ia64-opc-b.c
+b1603f8211886ad5fcba5b4bac1c9135  opcodes/m32r-opc.c
+94d93eac0cecc62749675bc0a07bb57d  opcodes/moxie-dis.c
+aeb3d6ab693a56fa9ae78af5923ba327  opcodes/tic80-dis.c
+dd4efbbb57c55d76e95d27ed8b82c76e  opcodes/mips-opc.c
 82f85f5946700d6818256ee0b9c5ecc9  opcodes/config.in
-4a84f3b686f1257b4a71a57b28ee0ad1  opcodes/configure.ac
-6fc5421b491ceb3f5c76990dafdff9b3  opcodes/d30v-opc.c
+8e9f273cf596649a4551d0edb095eaf9  opcodes/configure.ac
+77dd557ea90ae23ae6bc66fa8586542b  opcodes/d30v-opc.c
 49b5ff2ba15348adaab7798b44348763  opcodes/ChangeLog-2015
 b3d7452b4310332b7974b34b09f65a6d  opcodes/ia64-war.tbl
-3f41eeaa62d2671ecb1c87742e74f459  opcodes/arc-ext-tbl.h
-eadfdb1a7b5a8bf619e53deddc583fd9  opcodes/mt-opc.h
-17b4fc97591b24218aee6f09a3b07445  opcodes/xc16x-asm.c
+5560e48e6e22b61c8c26cd037ba245a5  opcodes/arc-ext-tbl.h
+98c577af9dcc45157d67548df61219d7  opcodes/mt-opc.h
+2198616bb671dad947ff1f96c879b4cd  opcodes/xc16x-asm.c
 615bf8dc1c70b14d80be2ae6f31feccf  opcodes/ChangeLog-2005
-96429e79711df9b6318a0803f0d78533  opcodes/epiphany-asm.c
-5e6eb6eb18843c744316a62244ee3b0c  opcodes/s390-mkopc.c
-add89000d4c7b8f9cbcb1b108c187401  opcodes/cgen-asm.in
-00a8456b8cd4a1a7c9e3ca1ab5fb41ba  opcodes/riscv-dis.c
-5270991e5c2f1d85f3214d6dd491c0b6  opcodes/moxie-opc.c
-439dcbd9f7e77736f8bdb6bff9c58a10  opcodes/arm-dis.c
-a9824cb78fc6230d21a5e384f664a93a  opcodes/aarch64-opc-2.c
-ddf7bed8cdc580969db877d38df257a0  opcodes/fr30-opc.h
-23ba20920d66e734587a23877413bc79  opcodes/m68k-opc.c
-971cfe3af2f20daea2e50dfeefae761e  opcodes/m32c-dis.c
-56e8ddb9223235b6fe113b7d85b61757  opcodes/lm32-opc.c
-45e34c739e2f61b6eac7d185ebb7f771  opcodes/makefile.vms
-0e5b224e6de0dfefef52b6142e4725c4  opcodes/h8300-dis.c
-d9f994ad578c2f1942990a62244b4fe3  opcodes/tic4x-dis.c
-27a292c3435ce4e480b1f6c4b89f41db  opcodes/cgen-dis.c
-ebad1807a893229e0ec346654025e896  opcodes/m68hc11-opc.c
-4f8426482f58729a0a69cf3f4ec9c283  opcodes/xgate-dis.c
-d9a88ff7e60023c00281bc5ce64674fb  opcodes/msp430-decode.c
-2f4441f4ac9137bd5733815fd3845fff  opcodes/sparc-dis.c
-440f9ba773424d210f925912c380f26a  opcodes/mmix-dis.c
+c94dd6fd1b62208167da8ddb02fdb089  opcodes/epiphany-asm.c
+a93240b751c036e59763e911c8b4eff9  opcodes/s390-mkopc.c
+cfb39cb1b14926c382dc5ea6f035914d  opcodes/cgen-asm.in
+ef658ab6c706e9380bdf8c451e8270d0  opcodes/riscv-dis.c
+8a2797464fdecb8bf95286ccf928cfa2  opcodes/moxie-opc.c
+4b515baab43e22c0e2a57b235493879b  opcodes/arm-dis.c
+136a7f1c980708f5f116ed51f24a26a1  opcodes/aarch64-opc-2.c
+ddabcb5158e34cafcdbcdceae5448923  opcodes/fr30-opc.h
+b816345c4d16a5f1dc433e5be816b401  opcodes/m68k-opc.c
+95d7524a307b001857143b3335b4dd89  opcodes/m32c-dis.c
+3ec36443755ce384d5adfd5f4bcc4810  opcodes/lm32-opc.c
+c115432f02ff86abb9b9a84e47e8e938  opcodes/makefile.vms
+85879714f004daea3cb5e431986bd191  opcodes/h8300-dis.c
+6f6df2231f97ea86e864b9f65e1f3b7e  opcodes/tic4x-dis.c
+538b3871e8d73326c383098ac762000d  opcodes/cgen-dis.c
+a86cc47a28d14bc7d66c09eaaaa28af7  opcodes/m68hc11-opc.c
+a5dae4e8a42ae660f2ab0aed40be2aed  opcodes/xgate-dis.c
+d113e5a29b31f88e5d902376162ae1a0  opcodes/msp430-decode.c
+f9992ac9bbeaf824d36b250d139ce3a4  opcodes/sparc-dis.c
+fcf9a2abb8d86054c2557b1611151771  opcodes/mmix-dis.c
 ef6602b963f2a903ab9c81134c6b8d29  opcodes/.gitignore
 65eb4d967fb92ec8ccadca5b068c4e84  opcodes/ia64-ic.tbl
-ee8042cbda6d28daa10a6cda33c19595  opcodes/opintl.h
-d586b8b1b84e037dc6b62579d87090e5  opcodes/mep-desc.c
-7f9d5457d54e8e84975cf952a118e139  opcodes/v850-opc.c
-594a926bc9dcf8de7830875bfef660d6  opcodes/xstormy16-opc.h
-07ab10286b790ce55ae3dd2db71f935b  opcodes/tilegx-dis.c
-24211ebb630044a0077117349a7a3e37  opcodes/xstormy16-desc.c
-b918045453a79210da0808c5abf609f2  opcodes/rx-dis.c
-c08e084a27f4002c6294408402ed7ead  opcodes/ip2k-desc.h
-c276cc5da58a97336bb8ee5ea823a2f9  opcodes/mt-ibld.c
-56f7d111761fecca6955820638544ecb  opcodes/ns32k-dis.c
-b3e1344ac702a155e0e91453a93a8f1f  opcodes/tic54x-dis.c
-1720a5613772c7d4471e9280d94e8534  opcodes/aarch64-dis.h
-259a33b824ea21115e6188efb9b2ff35  opcodes/msp430-dis.c
-795b1541130b16ad1f19613c96f85ec1  opcodes/or1k-desc.c
-16da3c04eca7416c80e9f0f7525a7df9  opcodes/mep-opc.c
-5624ee1672fc4f48b93170c1f546bfd2  opcodes/or1k-ibld.c
-2e85f92935478c47714409d0357dc0bd  opcodes/aarch64-tbl.h
-eb597c28f78be57e58d35e8149559dcb  opcodes/epiphany-dis.c
-11d4299b9c3c6c9f1c171105f0cc47ef  opcodes/h8500-dis.c
-5f7cde3490789e8a5f50de4373da5fc8  opcodes/pdp11-opc.c
+7ce79d74e7740c1995c2982cf56ce4af  opcodes/opintl.h
+a385d684af871852a0366a0433e2f2b1  opcodes/mep-desc.c
+b4452c3428efa15cb1ffe7e33e1c2113  opcodes/v850-opc.c
+a38dc8343e15ce32fa8fbf40c0587e5a  opcodes/xstormy16-opc.h
+2fd1d2692960cb63b4dceb2acc9ccd65  opcodes/tilegx-dis.c
+bf4b8beff7fe30c09c8c16f97539924f  opcodes/xstormy16-desc.c
+1f01c89a31a016470fc0d2dab93c48d1  opcodes/rx-dis.c
+1111b36f66dc495aa6a7232d18a8ebe7  opcodes/ip2k-desc.h
+799302f790b1082e3871b1eb5c293e53  opcodes/mt-ibld.c
+5e056898439a3913736cb5aebfc44b28  opcodes/ns32k-dis.c
+3968bd65ed0022d508bd1a6a00df8e27  opcodes/tic54x-dis.c
+63ff5b5d29d1e40d576da1c5ac1afeaa  opcodes/aarch64-dis.h
+3319bb4b1b60325e53711ffae8b057fb  opcodes/msp430-dis.c
+8f5edf6648472c956a241cd07a9468dd  opcodes/or1k-desc.c
+e20ba759eb1e66d1daa9082333600144  opcodes/mep-opc.c
+59f0136b8d7350aaed835ef7fe2e9b3d  opcodes/or1k-ibld.c
+de602de9b2c068e945adfd61f1b070d4  opcodes/aarch64-tbl.h
+e8573e635ac49d262e69fd4a05135af9  opcodes/epiphany-dis.c
+c1ed27f3096720189eac806497303752  opcodes/h8500-dis.c
+b7f3461dcea4ed1debf2d063feeb57ef  opcodes/pdp11-opc.c
 a53680ee35ecd26833d0155b16def898  opcodes/ChangeLog-2010
-08afa3b2545531588b40df076373c244  opcodes/lm32-opinst.c
-7cdf91668bbbab0b9984c3c6bd9419cc  opcodes/i386-reg.tbl
-53a837f383b5f2ac1b185a016c90ccf5  opcodes/cgen-asm.c
-7cb4b78ca087553dc166d46ab7645a5a  opcodes/iq2000-desc.c
-b8a55703b14aec2a50d7ac6d1229d0fb  opcodes/aarch64-dis-2.c
-a3166ce69b2188069250b0e82f431985  opcodes/d10v-dis.c
-13cc1b183ee1fe21bffe7e881b0231d1  opcodes/i860-dis.c
-9585cae4898617002b7cf9b1fbc3bfb1  opcodes/w65-dis.c
-ec35816982d777e3fe2d39e43ca4b1b5  opcodes/mt-desc.c
-5ca9d93bafa42b81765a2e05787a93ed  opcodes/mmix-opc.c
-c385b5f0ab7e1114b379f5adff9cdeb2  opcodes/i386-init.h
-fca807f63ba8f474e861eadcc928269f  opcodes/s390-dis.c
-3f4b0b3d12581ab765d92657997eeecc  opcodes/sh-dis.c
-30d0e1c12259447206da6e8037618052  opcodes/i386-dis.c
+7f1ba824d578ba96100f629536987687  opcodes/lm32-opinst.c
+eca1396c97ea15abcb08b01ea5e28b65  opcodes/i386-reg.tbl
+c2c428843f8270d2bc58f5710190ff6a  opcodes/cgen-asm.c
+818196322ce5c503f7cee2b52b645c7d  opcodes/iq2000-desc.c
+baebcf651845bac7d9f16001a83f57b0  opcodes/aarch64-dis-2.c
+92abc944e140834d8a3cd23a2adc8dd0  opcodes/d10v-dis.c
+eb9ba09275e5d960953b3bdc1c1c5e57  opcodes/i860-dis.c
+ed999ae793eec7ca89c0282cd5ad8eed  opcodes/w65-dis.c
+33f2f1ce06769296ba47c570ebb6ccbf  opcodes/mt-desc.c
+8fc82052d6025052b65f72866f4e665a  opcodes/mmix-opc.c
+4115f583417dae94b0660ef60f21e150  opcodes/i386-init.h
+511e6e7bd3ba04a8cd5d955db9a69670  opcodes/s390-dis.c
+4207640476548cc0ebc53ad3a6887d89  opcodes/sh-dis.c
+b7d9eeae57bc2753a3720ed819b005b9  opcodes/i386-dis.c
+37601cc86254a4d9a456208161325ffc  opcodes/disassemble.h
 cb15aa4673f865ca48ac31c38373124e  opcodes/ia64-waw.tbl
-d577f5b82c7e10fa2260fc4ce5efe8a0  opcodes/microblaze-opcm.h
-99c12d9f6913a3c96921a583d9db5e19  opcodes/vax-dis.c
-2da6ea0ec05ef11af4639794b0c2136c  opcodes/iq2000-opc.c
-d63a98972c401308d28f18cdb626f113  opcodes/pru-opc.c
-38a8b4f2b50a3e73a60a2c6c28e3c723  opcodes/xc16x-desc.h
-6a19a1823ba4c88479a441cc9011ea70  opcodes/rl78-dis.c
-94c589252e84c4964d7b5a8146e2438e  opcodes/aarch64-asm.c
-090db4485172dbc6bf984fc660917ae7  opcodes/ia64-opc.h
-54aa53f4f8e376a11ba5ec127cbb1959  opcodes/i386-opc.h
+2e853c754bd517d68051a3d00f07e137  opcodes/microblaze-opcm.h
+e6603190f5ba9d73608148e9e835934b  opcodes/vax-dis.c
+58907e27597a97c7d3f42b2b39babe13  opcodes/iq2000-opc.c
+49ad3eb0c714354af2d29e36caa5761a  opcodes/pru-opc.c
+18bb230c30d5577887d7c2457670e49d  opcodes/xc16x-desc.h
+940ad9e430fa5aec2b4b71673f6a83fe  opcodes/rl78-dis.c
+155a21f5fc6e8e92075c56edab8d5db6  opcodes/aarch64-asm.c
+44c3f5d60c065025741bb7b21621d68e  opcodes/ia64-opc.h
+f176e85add69524f49432480ab3b6878  opcodes/i386-opc.h
 61596d76325239755b5324e3435bae2d  opcodes/ChangeLog-2006
-9609ba6829fe35242521b95789e06dae  opcodes/lm32-opc.h
-976caf8e3f5a98a06a1e77a3947be748  opcodes/m32r-asm.c
-4a15ffa4b8b592f710c9aadd80b06cec  opcodes/z8k-dis.c
-c2d7236190ee0f22df9b3346e2b79d0c  opcodes/frv-desc.h
-61de1660d5e8354681589a041913f2a7  opcodes/spu-dis.c
-06363078a982aff12b247b3bd3508c13  opcodes/z8k-opc.h
+afaa1540da0cbb21813deff70b918c4d  opcodes/lm32-opc.h
+1442221f19cd3677eeb829c26db0e21a  opcodes/m32r-asm.c
+7585c5cb70ac5db2304cc6e24f4bfde8  opcodes/z8k-dis.c
+58082f1b44cfbb4ea66e3da5b8b08f08  opcodes/frv-desc.h
+c37cf96b4b17dd6001a7b91062761c22  opcodes/spu-dis.c
+8c8764d4c94c4104b3155f70b44249c1  opcodes/z8k-opc.h
 1718b45c678a851d089ec7c4edaa9906  opcodes/ChangeLog-2004
-fc4732a34ae513035e64440db2efe6c6  opcodes/arc-nps400-tbl.h
-2aba4bd4a29b1edb86f29eef7c090e47  opcodes/aarch64-gen.c
-6e5cf7779c41adde731c6aa93c13f043  opcodes/arc-fxi.h
-d20ab333c55006ea0b29e65d78a5f341  opcodes/score7-dis.c
-bbfdf36a70a8440f913a5e8cf4f21cfd  opcodes/i386-tbl.h
-1f534d2adde08dfaa1b0334ab04b5602  opcodes/arc-dis.c
-fa82ebe9bc2fa8700a249f2bd198e909  opcodes/ip2k-asm.c
-816f8aad187195ec7fd059f708f46ffd  opcodes/spu-opc.c
-903f05e50e448e3a2046325b030aadff  opcodes/m32r-desc.h
-d62fc08408380e59524d68623f5eb80b  opcodes/xgate-opc.c
-19434a1a41683cdbe831c66947fbd71d  opcodes/ppc-dis.c
-ac0f7c63decc0edc5660364b3484a716  opcodes/ia64-dis.c
-bb0fc173acbaede16d30c985f1c17aa7  opcodes/ft32-dis.c
-e282317c1bb4a1d3f97ce85e1e0b9eac  opcodes/z80-dis.c
-1d0cac2b4ce1f994250aba9cc9d7c64c  opcodes/tilegx-opc.c
-56f646eb24f2551a201336c5d6017157  opcodes/lm32-desc.c
-f80959bf5a0449911d43fe3d11706367  opcodes/xstormy16-dis.c
-ef856bb119bc8dbf6a1cbec8823b1dd7  opcodes/cgen-dis.in
-9fc99d925edd9b69070b5dc8d6d575e1  opcodes/mips-dis.c
-255a79e1ca6de52d28805aad2c3f8c84  opcodes/arc-regs.h
-1e251dcf3052d4d283ed8a56f0e49f4f  opcodes/msp430-decode.opc
-33999b976fe5a2023cd41354ae79dc9f  opcodes/xc16x-desc.c
-318b2f45c09ee3c7656ab3d84a8332b7  opcodes/nios2-dis.c
-19b120670f6400f510a1cfce7ffd5b83  opcodes/configure.com
-0a95aaf1ad1ff775879e3df700ed2c35  opcodes/mcore-dis.c
-a4b9414a1b63104efde488b857af7c5e  opcodes/or1k-opc.h
-23be99852ae51468a9fb00d8bd80a8ea  opcodes/visium-dis.c
+96e1a58a35115875b658ade5951242de  opcodes/arc-nps400-tbl.h
+5f500791e192f13bff339938d106d3e2  opcodes/aarch64-gen.c
+86fa6af40042eb0fa724680941f8ae18  opcodes/arc-fxi.h
+8f442fa6f452f4fa839c67d63c6171e0  opcodes/score7-dis.c
+56821f4734aa07c95a81c2562bce57a3  opcodes/i386-tbl.h
+8ef980148651e23ebd5f3aeb8356a91f  opcodes/arc-dis.c
+8de78b44d935a06740cf9c8ecf694870  opcodes/ip2k-asm.c
+5d59a42c21124038ea803dd5d3d9a9f4  opcodes/spu-opc.c
+ee01fad59f67dea5eab12740108fe62e  opcodes/m32r-desc.h
+9e67198055cfcfb148ddc4c2f12528e5  opcodes/xgate-opc.c
+9f88b2a751bf3972386faf3b3a09ec1c  opcodes/ppc-dis.c
+17b0496e42cf4f1858838775040c23c6  opcodes/ia64-dis.c
+f2616521db4a304874512281de0301da  opcodes/ft32-dis.c
+7b2e4e2d5b9cac852f1830ce6f299ed5  opcodes/z80-dis.c
+55052af70be2e23f7a068c3fddd81baf  opcodes/tilegx-opc.c
+c593fcba12037f6afa5f0803b2d280ed  opcodes/lm32-desc.c
+00308a7ce13ecf4ba8061d566f688c50  opcodes/xstormy16-dis.c
+5902a935d9fe9dbe0ff5d8236a72c6db  opcodes/cgen-dis.in
+3588e5a07ac21c2f6b538b91f4f836db  opcodes/mips-dis.c
+cfaba148fee5c371656a8ec50375d07a  opcodes/arc-regs.h
+784a94f666d3540da173ba7f3b83b91e  opcodes/msp430-decode.opc
+a8b9a45e2fcb9636de71a3092a41bb70  opcodes/xc16x-desc.c
+57c75c0927a6d6108e22aed0eedcccc2  opcodes/nios2-dis.c
+2848c015cd8f087cf0024649346c1b71  opcodes/configure.com
+e4836c583718a836049527a8821827de  opcodes/mcore-dis.c
+e29fcbfedfb57f00c0d1972915545793  opcodes/or1k-opc.h
+789a88cb4c74ecde3a2d1ae6e45a2ac0  opcodes/visium-dis.c
 1ded054093de910d9786c62bc4fe8cc6  opcodes/stamp-h.in
-e8a027ec936740c1f7d27a6f1f6f839a  opcodes/m32r-dis.c
-08c35b19b4c516cbd3c207269a79c485  opcodes/ia64-opc-a.c
-4b9a14e7b2b0b2056c47068493140048  opcodes/score-opc.h
-20415793acbd72b4cbd41335328ca3ca  opcodes/iq2000-desc.h
-fa99c9f935229b197cad19676ea4366b  opcodes/or1k-asm.c
-a7b9ad7fa9f022144f3f54f3acf8760f  opcodes/xc16x-ibld.c
-d5240b64b3952ad6e1ce86736e02572e  opcodes/mep-desc.h
-9f1b2839bdac36fef826bb181aaf39a3  opcodes/epiphany-opc.h
-03e4c95744f8318d22f482052b4e586d  opcodes/dlx-dis.c
-a50636828adddac29a3c029e1840af19  opcodes/m32c-opc.h
-595873c47eb559d1ca72309854d8e99c  opcodes/pj-dis.c
-f47127f6ec47c7eaa51b2c8a2c865b0b  opcodes/ppc-opc.c
-a2574cac8f6514f2ffda06c12499c349  opcodes/d30v-dis.c
-45f3893bea2ea57dc2dd24ae25eef7cf  opcodes/v850-dis.c
-e32bd7b1c84155d883d4d81ae773346a  opcodes/mt-dis.c
+3269a2573d595a77e04199687dabea31  opcodes/m32r-dis.c
+52c05e0e194096d9c88e82c13e630f60  opcodes/ia64-opc-a.c
+09fdd1fa13f04f47af41dc91dc335535  opcodes/score-opc.h
+31e8af4885c1eea9c854099a5aff8910  opcodes/iq2000-desc.h
+7366bcad2c49e9ec37e6787b11a6b69e  opcodes/or1k-asm.c
+a29a72b245cdd58e78838a45e19fa5ed  opcodes/xc16x-ibld.c
+9e57ab5d51eb8d3c1458bec17481c815  opcodes/mep-desc.h
+8720c8381144e91abe3f52cbaa95b58a  opcodes/epiphany-opc.h
+dc7e91a7bd93fc6c52c0df215a5c05fc  opcodes/dlx-dis.c
+d1b5fd3538addf5f4d880afc4cb4d514  opcodes/m32c-opc.h
+20d54844aca06dbf0637ccca248e96e9  opcodes/ChangeLog-2017
+d533c29c2b058c1f6e4e6f92eb3c8153  opcodes/pj-dis.c
+6e1aed7f472ff6b5d13bbf6878afcd22  opcodes/ppc-opc.c
+8d9a4238bd7e5f2ead56efd2b9fcb089  opcodes/d30v-dis.c
+51be4658ec725323c36f792fbfa7fb30  opcodes/v850-dis.c
+e7fb9c8668e6ddfafb727ac28b5d6cbd  opcodes/mt-dis.c
 b5c6b8bd0f1a6dd6ce064e362b47fb49  opcodes/ChangeLog-2016
 c5cefc6c55710567cc64c0a1a1100b9d  opcodes/ChangeLog-2014
-797cc9c4552342ebc818a472f9f604c0  opcodes/xc16x-opc.c
+41458e23256656468b1a27c953d5d345  opcodes/xc16x-opc.c
 2adb7cb7865ac91208f5f94fc4d9f397  opcodes/ChangeLog-9297
-ea776eeb1ad1176dfa880390fff8ef26  opcodes/avr-dis.c
-d6f022de89605679a76a3fa1135b454a  opcodes/ia64-opc-m.c
-cde1a53be62752ae1f110e9309216b2a  opcodes/mt-desc.h
-52da82c7456d1159eaf2a6563120bdf7  opcodes/configure
-411dfabf9c249117342f3e9de309e83d  opcodes/pj-opc.c
-688ee803b634f07ad55c77aee902b3fc  opcodes/mep-opc.h
+a1793c5874848adb64e01d8bdad609ce  opcodes/avr-dis.c
+12804a6c144d7d750a7c9b383fa9cbf6  opcodes/ia64-opc-m.c
+8922986aa2f68646d45afd9cbdd77e6f  opcodes/mt-desc.h
+ac0fc3276a66a816cf044b31d6be1038  opcodes/configure
+3cd24318bb0ed02a4a9a72967ecd8de8  opcodes/pj-opc.c
+665b555ca78aa077ffb845e554bc737e  opcodes/mep-opc.h
 0667bd5279fda9a2475f6be7851a5a58  opcodes/aclocal.m4
-523ae61491791383b5cf35a825c979a6  opcodes/i370-dis.c
-de88cc7c3bb331a955613629a325cbd4  opcodes/ia64-opc-d.c
-88ba6395ff2f997c3e7d82783f95f619  opcodes/ia64-gen.c
-4b0ecd4a33c8158289ffb2296b9ae042  opcodes/ia64-opc-i.c
-c9cccef32687be7638d956b71f9f56e0  opcodes/po/vi.po
-179cd41f0e8af51dd577fd5d7ab36c79  opcodes/po/tr.gmo
-2db527e334054d9ac3761a15967fedf1  opcodes/po/es.gmo
-e216f1583ca03a04f8849dfb96b59c3f  opcodes/po/ro.gmo
-e03231431f375fb35738b672af097e05  opcodes/po/uk.gmo
+6e195c83d61bc7e98a58fcac174d2ec8  opcodes/i370-dis.c
+6e23b315cea3a2381975125cabaa4a9c  opcodes/ia64-opc-d.c
+4142faaad3e6f3efbaf06788b7091b55  opcodes/ia64-gen.c
+eb0c331cf80f11a6575b4008746a254a  opcodes/ia64-opc-i.c
+ac5bcf32b58e34029b5b004d5a8cd2c7  opcodes/po/vi.po
+c7158f697e1199580a8d8946bf8af06d  opcodes/po/tr.gmo
+3fb3472133f8da777f709aac033efbe9  opcodes/po/es.gmo
+4afa0ab75fd7849f29b445d8d8366b2d  opcodes/po/ro.gmo
+426ede510f416589072e90582954e403  opcodes/po/uk.gmo
 9a5e613a9553966167850acd1dbf0f70  opcodes/po/ga.gmo
-73742c012f7d6c981ed483b8b545d84b  opcodes/po/vi.gmo
-30f5fa421474edf39ae99a8985bd42e9  opcodes/po/pt_BR.po
-2ccdb5f626159dedf687e37713dd930c  opcodes/po/zh_CN.po
-32b4c1f9191141b2f28e38d686a21650  opcodes/po/it.gmo
-9af26046274881d75f092fad6d0f8f91  opcodes/po/es.po
-d7c42d78dd00ae4c8b71fecb736fd17c  opcodes/po/sv.gmo
-690ce13f8d96d0ad40d6ad8aa2ff3539  opcodes/po/fr.gmo
-45db317868bfb202300160e0657f06ea  opcodes/po/sv.po
-7de3b13b37315b98a70ce5c5d3382afb  opcodes/po/opcodes.pot
-c4fc190d04e8654bcb264717d04adf5d  opcodes/po/Make-in
-c171fa0116588976056ef26b540eb69c  opcodes/po/zh_CN.gmo
-8ddcec300546b39bc1d9a13098637b64  opcodes/po/tr.po
-bbdc560c49ae729616af290d86d1801a  opcodes/po/id.gmo
-ab3a6f178021b7e3a9d8b45e74f9599f  opcodes/po/fi.po
+93e89a462ca1c5f7ce29038a689f4749  opcodes/po/vi.gmo
+d4f45858a17e0c6a7384d46009ea21ea  opcodes/po/pt_BR.po
+710fefb9bcc070afd48a9cff60521648  opcodes/po/zh_CN.po
+2100353c28cda8ddfc1e90989eabf44a  opcodes/po/it.gmo
+955f484bfbbb54d9df6f26509b59ca6b  opcodes/po/es.po
+a31ddbe796e81d751a25074061739c48  opcodes/po/sv.gmo
+7b4511cb0c4097f0da19cb91ab7b05fb  opcodes/po/fr.gmo
+036114457606659b8beff4ffcaadb00d  opcodes/po/sv.po
+0f0d9b0a3860f6045cd6db917219b7a0  opcodes/po/opcodes.pot
+ca800f35ab335ded708b76417a9145d8  opcodes/po/Make-in
+34919aa02b0513de02789027b2a6a92f  opcodes/po/zh_CN.gmo
+fcb127c8f57c6a38f36fe3eb53fe3d3f  opcodes/po/tr.po
+3dcb77f78dfd98bc8e4d9868b009debe  opcodes/po/id.gmo
+785cbecc7f597c1374b732ed3d23282f  opcodes/po/fi.po
 106e546d1b4b598e14d05b8680cf84ec  opcodes/po/POTFILES.in
-08644663c098c4faa0a75ef257ff85de  opcodes/po/da.po
-1b79e075af1926ef6736fa317f054702  opcodes/po/pt_BR.gmo
-55b6639559777f04aadc075e51744b12  opcodes/po/nl.po
-9b0083cb5b9854569bfd39fb4e432099  opcodes/po/id.po
-f5a6c0cec51948b050115fb54ea65079  opcodes/po/fi.gmo
+c32c7787ad8c899a3af5ec2e47518888  opcodes/po/da.po
+88dac03a4efac97ef70781d6855f3a7b  opcodes/po/pt_BR.gmo
+28fa9a522cdf0eaf64347fa836e25d0c  opcodes/po/nl.po
+eac8a474e91112124bc872824d26de92  opcodes/po/id.po
+4c931b889a393fc12e187bbaf1bd663a  opcodes/po/fi.gmo
 c051f3a56196d61a32b70cdd7b108277  opcodes/po/sr.gmo
-27e9fec6ee5c546b5d5f4afb80b287ed  opcodes/po/ro.po
-0fed52db5d9625b96c6af0dd18f5cdaf  opcodes/po/fr.po
+076be31a66a76e9a13089a58f2629d1f  opcodes/po/ro.po
+a41a837b186842a8f3ff13b2bd8f891b  opcodes/po/fr.po
 76cd70440a4d9af37c4f86509a2448d4  opcodes/po/sr.po
-60b4474e14fc76bec33838142de74541  opcodes/po/de.gmo
-526715710bffaf66a358563775eb0de8  opcodes/po/de.po
+fc1d70474e73af163e7c9703931f26d9  opcodes/po/de.gmo
+4b0647b398946eb024ce35b7d3ca8ddd  opcodes/po/de.po
 64163e7952ced31b2cf20dc47968a84e  opcodes/po/ga.po
-6b7f6db13ec1f340c587ccd58c898e8b  opcodes/po/nl.gmo
-402cb40ed225c3b5395718630db6e10b  opcodes/po/it.po
-40631143014bf28aa6c4c18fb42c7e3f  opcodes/po/da.gmo
-562b31d0eb4b7b707fc4546c06a3e671  opcodes/po/uk.po
-a3fadf89e03c9384b6a846dcd7435773  opcodes/mt-opc.c
-501387673380c1daf0f951f68128f0e1  opcodes/tilepro-dis.c
-962d4bda113aa95b9a622097d4c3cfa2  opcodes/bfin-dis.c
-5655c9296f2f9033a45d9788db1c5303  opcodes/Makefile.am
+b2f69021ea41e08afb81acf033c7edf5  opcodes/po/nl.gmo
+e4444c7716d7f33ae1586f3d19dc5de1  opcodes/po/it.po
+9d1c427a5289a3666564f5409fdf16c9  opcodes/po/da.gmo
+de22401125e39d94dde4ebc409baaf03  opcodes/po/uk.po
+303f9b920a51172983b9a6b021132f88  opcodes/mt-opc.c
+b026c6d8919043061b7b5ea95704fc12  opcodes/tilepro-dis.c
+0a5a9690019e35c2a972f85e9b530790  opcodes/bfin-dis.c
+95774ae8ad02ceac9223e362921f6dae  opcodes/Makefile.am
 b192ee206cc807dd92ffe541cb819d6f  opcodes/ChangeLog-9899
-f87d99bc7770688641d6f34f6a5b0b61  opcodes/or1k-desc.h
-d1b94586ca297bd48f6b82935ad13771  opcodes/m32c-desc.h
-04b766017f9aec963c2b9c8e93acb523  opcodes/xstormy16-opc.c
-b56cd1dff9531d41d0f2929c74739ce8  opcodes/m10300-dis.c
-0045f5245f7a529819d800195723cdec  opcodes/nds32-opc.h
-2b2aaeb3a4e044109013cf476e6fa452  opcodes/aarch64-opc.h
-e53d57ddbaf2be40d2589c6e51b04caf  opcodes/ChangeLog
+b794098718c76a1fcf348fe2412c42c3  opcodes/or1k-desc.h
+63730de6a6120828f8d1b3f210f07803  opcodes/m32c-desc.h
+384833640e99550daab5f6164589ddcb  opcodes/xstormy16-opc.c
+3e1b56af946bc90309b854236c01f6d5  opcodes/m10300-dis.c
+395f7184aa40f80b8a109ee7f116439f  opcodes/nds32-opc.h
+f132e2c172428ed8bdc2d9ff8c9c86a4  opcodes/aarch64-opc.h
+6ece81efec9e2b41bec94b065d4cd0b1  opcodes/ChangeLog
 327cf11f5c08b578f3b0cdb7f3923280  opcodes/ia64-raw.tbl
-145e1d5f459781e0c32a67fc0f6affa0  opcodes/frv-dis.c
-21575d9cc00a9022be7f6f3ecf5df8b3  opcodes/aarch64-opc.c
-3e4b0cd66fabc37c700ecfce8d609b6b  opcodes/iq2000-ibld.c
-49299402ab57d4164cffd665388f0847  opcodes/dis-buf.c
-2d11258306853815946b6d67aecca0ac  opcodes/s390-opc.txt
-b0d6bd03573fdb4986d43cf89c289025  opcodes/metag-dis.c
-806814180863d9aba5d3d6d8813bdf2d  opcodes/m32r-opc.h
-cd73401cca4744f20ae911e9a08f020d  opcodes/i370-opc.c
-67c4e85319c2c888407afe2e44dc19cd  opcodes/mep-dis.c
+7434b66fe1ba1ce8585b7872dcc30261  opcodes/frv-dis.c
+cdb2f73702f4fc69ae0facad10782b4d  opcodes/aarch64-opc.c
+7c2d1bd369ef3e7fed10f611ff276d49  opcodes/iq2000-ibld.c
+9aec9902b0e68e9690806f832e830235  opcodes/dis-buf.c
+b2f0539e3184bfc3a1e26261fa65ec1e  opcodes/s390-opc.txt
+f68e466d34c6a7ee8729fd055335113e  opcodes/metag-dis.c
+ac93f07b31557fba06ecb95c967f475a  opcodes/m32r-opc.h
+4c37dec5b4ecf5d0a99aede0cfb4a941  opcodes/i370-opc.c
+c6bf7768db37d5ade962632e0404d316  opcodes/mep-dis.c
 7d7d28737ff404f709104accbd7b7926  opcodes/ChangeLog-0203
-adc588409bdc4594e656b94d874c11c5  opcodes/ia64-opc-x.c
-bfa27d74508eab35a424aadf3ec627aa  opcodes/mips-formats.h
-d338bd6a9fae74c4bc412e71ed8573e5  opcodes/crx-dis.c
-6f37dcbcd2efe7066627649f1a2c5312  opcodes/cgen-ibld.in
-52988d716b435bf67aee16a82f8fffd0  opcodes/frv-opc.h
-96389ba5e59a21a7cd03f7be60251923  opcodes/mt-asm.c
-f8af8f5fbf9be070eddf7378516e5ff2  opcodes/wasm32-dis.c
-75c5d0b2f8210051bfd5c4ef0d601fd6  opcodes/fr30-dis.c
-61ab49741ca9452e98027bda54880c71  opcodes/i386-dis-evex.h
-ad0b0286faddb0ed82208c131794fd75  opcodes/arc-dis.h
-63f25b6371fac3423190a071dd47c8f0  opcodes/i960-dis.c
-ceb94b3805ce67f9fca6b5f6b70ec95b  opcodes/riscv-opc.c
-77e58df8f6fe7a64892044df5ffb552a  opcodes/xc16x-dis.c
-361d42936e386310b75ffd2d096bc83d  opcodes/epiphany-desc.c
-9d072d7b910fc87ac5c2399e86aff80f  opcodes/ia64-opc-f.c
+74c7517884e1568f3503a4891087402a  opcodes/ia64-opc-x.c
+ff537c967755f6186b92c0221f94c8ce  opcodes/mips-formats.h
+7328214da740148d122de3312c0d5e48  opcodes/crx-dis.c
+b475b7be26b2fdd1cd4df7468b378a1e  opcodes/cgen-ibld.in
+0609b4bd526615a5d21bf6f3cade3287  opcodes/frv-opc.h
+8ec14b0fa6e3cc738f29c105dd430c3c  opcodes/mt-asm.c
+a3ebaa3a62e87a697f19c765af30c6d5  opcodes/wasm32-dis.c
+e17ffeb390dd509ef2bad4a2cfa35f3e  opcodes/fr30-dis.c
+bd4e214762c2665920bb3c69660cd35c  opcodes/i386-dis-evex.h
+ec738abfe9f60690bc96f9a6db2d7095  opcodes/arc-dis.h
+fc252bb23dd679f9cdd66884519da511  opcodes/i960-dis.c
+935c40ccef93c1669ab2dda1eaa652a0  opcodes/riscv-opc.c
+d69c2b6273e071ec341eb3ff663dfe0f  opcodes/xc16x-dis.c
+43eb199b7f447f31c5e2b2e50f0620d3  opcodes/epiphany-desc.c
+04491539bc077fd776cd590bacedf114  opcodes/ia64-opc-f.c
 04f60ce0808d9609bb0bcca4d5d12646  opcodes/ChangeLog-2008
-dfa2862f2e79df00a19dcc1e5eaa7f2a  opcodes/lm32-ibld.c
-be465308ae2f16a514621c07d5d0d69a  opcodes/nds32-dis.c
-3afbd1360b95f78cb392513e6529dbbb  opcodes/cgen.sh
-f825ed471a0826b432c8fc0908e31978  opcodes/aarch64-asm.h
+f8d8039cd43174b385086e705d268dcb  opcodes/lm32-ibld.c
+0352aa0833d654bc1e3e115257132e55  opcodes/nds32-dis.c
+532e07b63d9bf505410e8ea202bd0d95  opcodes/cgen.sh
+7fd5a2bffe9aec85026a1fd1c07b2178  opcodes/aarch64-asm.h
 58e924c52c2bfeef23d22c4f482edcfc  opcodes/ChangeLog-0001
-beff02486f297e445b6a857582a5e0fd  opcodes/h8500-opc.h
-5bff26e63e61396e0a24818fa8b553bd  opcodes/rl78-decode.c
-885ad70cabb062379d3441b6a3b7340a  opcodes/ip2k-dis.c
+deedac8039d3ed982f01572fd81e1a28  opcodes/h8500-opc.h
+35dc36d67fefdc3ff0ac1e6a6d994c9e  opcodes/rl78-decode.c
+a8c4d895d9dddfe86b16f091cce80760  opcodes/ip2k-dis.c
 16f3a170d6b704573bfd0788b4d1061e  opcodes/ChangeLog-2007
 9978b0ffb15f1ad48bc31816517ef965  opcodes/ChangeLog-2009
-1a9f964645f4649ecb0d7459273b994d  opcodes/cris-dis.c
-1304faf46f72696d432eb5e5b377d3f7  opcodes/tic80-opc.c
-125e674932cd10960d9aefdfe9660e02  opcodes/tilepro-opc.c
-696d3c7e9c279ae3ee59682d6526f9c7  opcodes/microblaze-opc.h
-a73d8dab163b80e23f7cf4029563ed8e  opcodes/ia64-opc.c
-350d2ee4ff33f4923a195b0ba3acb545  opcodes/hppa-dis.c
-47b77b5b67bcfc4886a549670e394aa2  opcodes/d10v-opc.c
-9a85d08b1a1e0654adf1a5d3802e4753  opcodes/m68k-dis.c
-ae979a6f79d0c99603f754b1ab3dd77d  opcodes/sparc-opc.c
-8606d3f1c1167c6c9cdb2264e35c4449  opcodes/frv-ibld.c
-58df729760ddb31ea11a8cc3bdc67463  opcodes/or1k-opinst.c
-74e5f8fec5a915203a56cba25d862725  opcodes/mips16-opc.c
-6787cd190b033e6967122057ac6af228  opcodes/opc2c.c
-bd7b1ac82d7752121cf4ee6e37d182f7  opcodes/frv-desc.c
-963a76d8297a1530533f6103ba307e34  opcodes/m88k-dis.c
-79e0d1598930f05f0047769ee7ef9231  opcodes/ia64-asmtab.c
-e29157535e55e226534dfe58c799e6eb  opcodes/lm32-desc.h
-9874707c109341269fa97fb6ab994973  opcodes/iq2000-asm.c
-46a2a97eca7f626633860864dfa503d9  opcodes/aarch64-dis.c
-a24a080c0078349c7b011fe229b302a9  opcodes/epiphany-desc.h
-5b1cc4a7f3bf849007fc3611d20ed6d2  opcodes/disassemble.c
-1bccc8d069bc2b420f202e7ba3308525  opcodes/ip2k-desc.c
-7496a1706c3c6df4838b3bd414c8147e  opcodes/rx-decode.opc
-fb089409eeda54c7d6594bc4d8e54bff  opcodes/MAINTAINERS
-e816be8d37f8a35cdfb8ceecc463074b  opcodes/aarch64-asm-2.c
-26176d2fb1f5bc20fb8ae03bc81457e0  opcodes/frv-opc.c
-1bb3eb09fce934a0650efa5174ee1670  opcodes/pdp11-dis.c
-b2a0eb9d6a9e6b15a7c400d2b2bd9275  opcodes/arc-tbl.h
-8efceab0a928cd863b7936ec7ffb9c2d  opcodes/visium-opc.c
-db071cc392b1f95720ac3b9d09be77bf  opcodes/iq2000-opc.h
-a91393672d5b698c6181807a9edb18dd  opcodes/cr16-dis.c
-704e4158cafe84afa0fadda7362bc108  opcodes/cgen-bitset.c
-13cdfee47ab231b679653df493c60b4c  opcodes/epiphany-opc.c
-a96c9caea082fac2ead2ca29c646881b  opcodes/sh-opc.h
-8661cb9bcfea4cd631cf24406f546989  opcodes/micromips-opc.c
-059f4c301a8df16d25548b019d918e25  opcodes/cris-opc.c
-64988fe192c106dc9c6ef955dc41d59c  opcodes/s390-opc.c
-cd55d11378c4432066d74a67145f87ca  opcodes/ip2k-opc.c
-cfc8b632e8ad980eb3f4d806b30e5811  opcodes/sysdep.h
-00e8a8cb1ac4e3a578f1803352e0de7b  opcodes/tic30-dis.c
-712a874c738376cdd3675f897fa93b7a  opcodes/lm32-dis.c
-3a6245c26b34d59431fb6dd77afff28d  opcodes/nds32-asm.h
-942a056e79e9a046c64b6d40dc6cbf2c  opcodes/xstormy16-asm.c
-6a43fe31d699e2bf08545d7fe618def0  opcodes/or1k-opc.c
-5aa03db41dae8b0ee03ddd0f769152d1  opcodes/arc-ext.h
-ccef255a01200a27ec919222a91399fb  opcodes/tic54x-opc.c
-9885f266eb513d5f6917e63cc59526b3  opcodes/z8kgen.c
-8d48b5d2885712d6087b56fcad5d109d  opcodes/iq2000-dis.c
-894b98b66ce76f2aed1477f5e5d3d6c4  opcodes/frv-asm.c
+c58d5fa08b8a776599ad68e8482e2cf7  opcodes/cris-dis.c
+2607163e2d89059c107456eddd6867e9  opcodes/tic80-opc.c
+a23d2e9724b12819a4ad1b1b1a95feca  opcodes/tilepro-opc.c
+4370a107df092b9133c5dbbe6cd02e17  opcodes/microblaze-opc.h
+a2b5fa3bfc3e6a8f4680d706150e7711  opcodes/ia64-opc.c
+b2809f99e3aac5d1d55f00ba221203dc  opcodes/hppa-dis.c
+1588f6ab883e5de375e9a7f276912be5  opcodes/d10v-opc.c
+448921ffb84854c55a2d753c4c6f84fd  opcodes/m68k-dis.c
+a607bfe6ab73610b7dd4a3355a02f302  opcodes/sparc-opc.c
+c1b9bd5ce1ffbd742b380780e4c29ad6  opcodes/frv-ibld.c
+b88c6887012b63a65dc9de6d48181c14  opcodes/or1k-opinst.c
+d7d248872a26138be9a6c6733570e9a8  opcodes/mips16-opc.c
+6b90415165ba1e7dd63f8ecef47ab8bc  opcodes/opc2c.c
+a843fb2d4afd9c1e6eb9f1894272aec9  opcodes/frv-desc.c
+ce8ebf8a7ca5a9aa036bb28544b0de4d  opcodes/m88k-dis.c
+103ab89859217bbc1d5e1a90cae3900f  opcodes/ia64-asmtab.c
+e1c7e4194483732e906eec20802127bb  opcodes/lm32-desc.h
+e7ddb050ab0306696ab681c5515a1b36  opcodes/iq2000-asm.c
+b18adbb942350086adde873c5093e3df  opcodes/aarch64-dis.c
+8abe23686545a1008777308ca421b02c  opcodes/epiphany-desc.h
+aafa8455b8cce333c3a68142bb801da3  opcodes/disassemble.c
+4cfd5a79a13041d447ed0c5a737b7aff  opcodes/ip2k-desc.c
+77cd7702e119ef7de071c53fb4c4913b  opcodes/rx-decode.opc
+25d1efe456b3a00515f638a6da43faa0  opcodes/MAINTAINERS
+ef6aa7d9d186d51c299f64574f88e95f  opcodes/aarch64-asm-2.c
+8386d58402c37558b64b1ad02feb3ef3  opcodes/frv-opc.c
+c4d8ec1daaeda265e6307f0786acf09e  opcodes/pdp11-dis.c
+aefc0996e1fae7b403f314dab239dd5b  opcodes/arc-tbl.h
+8472109ed297494c38a3a7c17480b36d  opcodes/visium-opc.c
+2fbfa78568c60149f22bb3b20d46d913  opcodes/iq2000-opc.h
+14d2d91bf88e89749a18f4ef01fdf081  opcodes/cr16-dis.c
+5b44dfad24ccccce0a77dd9c309be66f  opcodes/cgen-bitset.c
+4ddf68710c41aad0aad18990702f83ac  opcodes/epiphany-opc.c
+ba15ea4c0fd541112bb268be67cb3b8d  opcodes/sh-opc.h
+c10944b25746556c6d31426034e602bb  opcodes/micromips-opc.c
+f94443284764da4f45ae0b9e875fbd2e  opcodes/cris-opc.c
+1289b3e9bd775eb2dcc2421e2ea27978  opcodes/s390-opc.c
+36851c76aa34e745e535831b6f726e6a  opcodes/ip2k-opc.c
+6dfbd6c17681590f79ed3d526a337bfe  opcodes/sysdep.h
+e07c55bd01045cdced74c65951fa6407  opcodes/tic30-dis.c
+8b44d19ba9a4f80f92258f23791872d9  opcodes/lm32-dis.c
+e1422794524f4588ea54fac89ef7da5f  opcodes/nds32-asm.h
+01932da13020d81c83bf16838a225c3c  opcodes/xstormy16-asm.c
+73265d4015c57e990823fcf3da1e5be3  opcodes/or1k-opc.c
+13b6a5d6876e270def461a9533ad7b46  opcodes/arc-ext.h
+18b9c14eb4a80e3f6522afe50673971f  opcodes/tic54x-opc.c
+52aea44f17bce4fea262cc79432c4835  opcodes/z8kgen.c
+e1213136424e320c383ffaecda0fdcc7  opcodes/iq2000-dis.c
+cbc28e0679aa390ee055a180d3645f39  opcodes/frv-asm.c
 dc1983a2cdbbe9417a0782b17ed0782b  readline/savestring.c
 4471d29e8a541b39059bd96a389e6cca  readline/xfree.c
 a101965beeccedfa39e87b593ecde637  readline/histlib.h
@@ -7197,360 +7453,382 @@ abb50c292da10141146dc24cb9519840  readli
 07c33a285703b40cd6f93a478e97e03b  README
 72b7803505f14cf31e291a59f538c6c8  README-maintainer-mode
 e91eab765c266ff5abf1f36a9c1f1fd6  sim/common/nltvals.def
-efbfb05c805bd6829cc5b0ecee11cbb0  sim/common/sim-endian.h
-3696d7ddb73c6a8c2745f9e3bcbfa716  sim/common/sim-basics.h
-74703053870174107dd5b88a422dcec4  sim/common/sim-io.h
-a259595a2333d0679049fc8da86225dd  sim/common/sim-core.c
-9747514a78489e349a3cdfef63e64c46  sim/common/sim-endian.c
-70009c2f25b07ec1fa748365e8e9a262  sim/common/Makefile.in
-98ab47cdb5879be2ab86734d5f75c58d  sim/common/sim-watch.h
-949dd6834ac8b12029e2cde2be8a95b1  sim/common/cgen-par.h
-71132bf4fd64e25457778ae2b31f5b38  sim/common/version.h
-c50f4b147d7dec2746e632ddc1541764  sim/common/sim-cpu.h
-f72eae34f89105c725edb8f0a520023f  sim/common/cgen-scache.h
-e94e170feb01b646e2803e5f2d1633d9  sim/common/sim-options.c
-d19b765c5bd5d3e975a9044f36a9166d  sim/common/sim-engine.h
-4bb2c1596b64d36dc85105dcedac0e10  sim/common/sim-watch.c
-26ccffb31a9483b8c5c292db24a32f3d  sim/common/sim-info.c
-ec912776a835005a53067261f9ec6283  sim/common/sim-cpu.c
-253c01dbcf165e6b76398baa3e800b22  sim/common/sim-reg.c
-68094f46609658b57b88ca6af196c987  sim/common/sim-bits.h
-2c488e4ba498cf0efea509902340cb64  sim/common/cgen-mem.h
-cc9ba7eef316a8026ff7d255ebbd3b3f  sim/common/cgen-scache.c
-ae19e9daf234d047c3f75ae5daba7830  sim/common/sim-events.h
-71b9280ecac679be949a402bdb3c3585  sim/common/sim-arange.h
-af5df16460021baff9bea9b58c50effa  sim/common/sim-base.h
-1731444139d455d91f5d45dc478676ee  sim/common/sim-bits.c
-d3e6400142cbe0038fc3ae8a1064f970  sim/common/sim-n-endian.h
-09ef47710a851960b10634643fca2c13  sim/common/sim-hrw.c
-b0ae4c33cb5601ec6975861f604e5405  sim/common/hw-base.h
+7e3af38009a5c0f0b89c0387382b54cc  sim/common/sim-endian.h
+22756ba0ec734cab89ac5eaa9c8f7587  sim/common/sim-basics.h
+95b1b66ad6a1cc07b6bd1663eeb3c81e  sim/common/sim-io.h
+20f5dd802c99140d9b50fa9ecf74a326  sim/common/sim-core.c
+3719138b6ef549279c0b43d83a79cbb8  sim/common/sim-endian.c
+5b7755466d7fee63dfe159f68d9581f7  sim/common/Makefile.in
+f0803ebcc4b0efa0481922517a6af19c  sim/common/sim-watch.h
+c7bb42d3a6e9d8b1803c1b3d81e780d1  sim/common/cgen-par.h
+6d46d9835b344a057d55810380ba0add  sim/common/version.h
+74d0a61beb34d51cc4b6eb887967ba3a  sim/common/sim-cpu.h
+5b427be93949fd4540f3fadca81de027  sim/common/cgen-scache.h
+6f92a98569a9f342f14acabf4c5b7133  sim/common/sim-options.c
+b4e7b2eacc529c384b74678cbd5f4980  sim/common/sim-engine.h
+cabc51e09e1adaec353717e671d5b671  sim/common/sim-watch.c
+fac9decbb3aa19321f4d2552ae74647a  sim/common/sim-info.c
+b0c811bc7fec6f009cb1b842a6639759  sim/common/sim-cpu.c
+8e589adc1190c23354a1aac3d87adbdc  sim/common/sim-reg.c
+211d90750ad52592e5a469cf773b629e  sim/common/sim-bits.h
+bb9b34c71bde424a156ff4ab0984fb37  sim/common/cgen-mem.h
+f33b4af67e6b51e493f5c62a4f450e1e  sim/common/cgen-scache.c
+20ffc931c205211de67116f29a0301ae  sim/common/sim-events.h
+2aff92d0dda23cd423e601153c3e332c  sim/common/sim-arange.h
+6b40898d95a80947e2faf777a4ae27b2  sim/common/sim-base.h
+b701cb4a87aa216af712c68ec6b11324  sim/common/sim-bits.c
+cd24267aef69fcb8d7f23135ed3020d6  sim/common/sim-n-endian.h
+d4abb9f7f3abf24aa73f9ae918b747ed  sim/common/sim-hrw.c
+01a3580bb2d84d22640ccbc403708b2f  sim/common/hw-base.h
 0cd5aec0350eb378abd59b9e9c5050e3  sim/common/gentvals.sh
-7a23588fe886797ec37f68b03f3dd23c  sim/common/cgen-trace.h
-85c8180c6cd4e18f2ecacc94edb5717d  sim/common/hw-device.h
-02231e7eae6fb771e7fd1a50f9a51c04  sim/common/hw-instances.h
+d8a9bfcda32c9133c08e5185a2bcfc20  sim/common/cgen-trace.h
+c48af138139e186877b579504afa5989  sim/common/hw-device.h
+0271e190bc680caadfb76550fc8981f0  sim/common/hw-instances.h
 011f2459469cd584822f281cf2b8d456  sim/common/configure.ac
-bd9bd4cfb2d7620a4c87428da68342a5  sim/common/dv-cfi.c
-b99b3e1eb249b7e8ee3ca7c107bda4dc  sim/common/sim-arange.c
-60796cd96cb79cc6a3ebd9177218576d  sim/common/dv-glue.c
-7c3c31fd33c9d5cdc0a250bf03e6801d  sim/common/sim-profile.h
-42705face79cd90ed6f652f8f4a9eb08  sim/common/hw-handles.c
-4a61d37bdd347c7a486b99f5392d1fef  sim/common/sim-assert.h
-fcdda00739fa9e5b16c403cc508ea47f  sim/common/run.1
-3996efe06678c1ff98649a6b44f2ab98  sim/common/sim-io.c
-05f122445a529ded3455e950b31cbe12  sim/common/sim-n-core.h
-91f3a10d0e931c474a1b6f128284e7e5  sim/common/hw-events.c
-39a53718906e21cf5743061a1cce9167  sim/common/dv-pal.c
-7e035bddc89e2cc56330d2c2089cbf90  sim/common/sim-stop.c
-44c73c4e47668b8eb4a21c9594021b4f  sim/common/sim-model.h
-3855baebacad71b6c379756780f9d224  sim/common/sim-hload.c
-572d960ad4997c7243dbc65e5c893516  sim/common/sim-abort.c
-7df4655234848d54b9d19d08e6aca67c  sim/common/hw-tree.c
-ee673a1e3bd3fb01f7bb78460e788024  sim/common/hw-device.c
-84b6142284a5613879c29d0c4113f84f  sim/common/sim-options.h
-ef3d01e9e191d64a264fc7e5806681c6  sim/common/sim-fpu.h
-7f9d5d84908d316c940b87b824d727a2  sim/common/sim-memopt.c
-350c50220c444f12a60f811296acd3d4  sim/common/sim-command.c
-9f3f615a2e2e72e0b5558edb96ef0ac6  sim/common/sim-profile.c
-870e3be820427ad125aaa361ff7981cd  sim/common/cgen-defs.h
-c6111102a7124b809406ac393cd0dd22  sim/common/cgen-run.c
-a71a32badd1efb36493961ae717f27a8  sim/common/sim-types.h
-6d50b3b0843c88d57c0a053c3b1378e3  sim/common/nrun.c
-dd28b6feb6faa0642f66e2f9de22b553  sim/common/dv-cfi.h
-544225aafcc83a2fc74c52b37d99ca96  sim/common/dv-core.c
-db667f3a96e3232ed4128454e38c4e98  sim/common/cgen-ops.h
-1f3194525dc5c04d80f205c1f51028ae  sim/common/hw-ports.c
-517639919da625f33bfe29047ee51011  sim/common/sim-trace.c
-5f6190f624c7b8e15109de0761288e1b  sim/common/hw-properties.c
-07414632367b0982174bb4bd258e11bb  sim/common/sim-signal.c
-e411408b876d3d66730db0ef1041f8ce  sim/common/cgen-accfp.c
-59c068612890ee192b88bc8e21048775  sim/common/hw-alloc.h
-1c1f3e6d269b942e471dc2a2f3568fbe  sim/common/sim-load.c
-950a05ace90615b1da4888134b107f42  sim/common/syscall.c
-b95c6cd9a563479d1067e58ce01e31b7  sim/common/cgen-utils.c
-6641c1e5955b2b88e1a7ca1c10cf059e  sim/common/sim-signal.h
-8f28fcffb9bc2314b963a8ed2f333dfd  sim/common/cgen-fpu.h
-20ab289fe421460b2ed2a977f32dccb4  sim/common/sim-inline.h
-e5252362b8fae1a1804b4a07c60a8658  sim/common/cgen-sim.h
-93d36eea94d0f94f80526cfc090b073e  sim/common/genmloop.sh
-11c26921a81329033b33619e33b6d558  sim/common/hw-alloc.c
-6844739ef6684877c45e05c2f901a00f  sim/common/sim-fpu.c
-583ba5602db3362273ab3629f9fd3f28  sim/common/sim-module.c
-a32f2391c6b0b3184510d291dd1be4b0  sim/common/sim-syscall.c
-4e0fb6a08ff25eec7d9fcf2af4271ef8  sim/common/sim-syscall.h
-d8fb20e229bd1dc4ad33ce1efb55de07  sim/common/hw-instances.c
-c6913da91d44e072cebeb8b1b6e3d7ce  sim/common/acinclude.m4
-1576e1104586555f83d9e7a47f12a79b  sim/common/sim-alu.h
+2c562d4d1a32f04cd078c864ffd5d6a1  sim/common/dv-cfi.c
+400dbfd50e195c13abc165d05fa3120d  sim/common/sim-arange.c
+9217a0897b9205193da5877046934151  sim/common/dv-glue.c
+d38fff9b1e1dfccc7c2995a8e6411f9e  sim/common/sim-profile.h
+b041b409e0f116ffefdcd9519386b474  sim/common/hw-handles.c
+0ca03bfb308b74ae68c0f5c008739215  sim/common/sim-assert.h
+3f1db81e508606a1562f5c7b9afdb7d5  sim/common/run.1
+33f6a57e001536caaf990a037d2a70d4  sim/common/sim-io.c
+3dea029da2bb97fca3f80c096bb2b322  sim/common/sim-n-core.h
+a0c1769c5e800def2aae68c33ff326f9  sim/common/hw-events.c
+4e220db2a9a9c9cef0c21fc5e34aadd8  sim/common/dv-pal.c
+cc2e128db13e2a98de5d18bc2bd4f835  sim/common/sim-stop.c
+4bc57993e7469e1a5c015d9a0b0e1189  sim/common/sim-model.h
+a616bc3bf307c241c311fbe685821dfc  sim/common/sim-hload.c
+19c220199d73a8326d6360b81a56d54a  sim/common/sim-abort.c
+8497efeed1f241a087dbc29152431191  sim/common/hw-tree.c
+54ea1002be6d7d08c7b94516680fd7dd  sim/common/hw-device.c
+68f3a363cbfe971c392259ac25c0cd36  sim/common/sim-options.h
+11e23b53f273ebbaa7411ea6b8a513e5  sim/common/sim-fpu.h
+55648de195f94246cf186d9d2ae4715a  sim/common/sim-memopt.c
+f2d442e978cf93806ba12ed608e38eb2  sim/common/sim-command.c
+107f166f58dc4d38e64e6b5f4b54cf16  sim/common/sim-profile.c
+0ea63463f8c53b39091a5b3c2a1c092c  sim/common/cgen-defs.h
+4eb3bdbc1c1bdcb25efe45450b09cd08  sim/common/cgen-run.c
+396e68fdf22daf2861e8571053a9b579  sim/common/sim-types.h
+709c4305de528cf108819e0935a55ac8  sim/common/nrun.c
+44c5d5ca91998db0212e03be8b94f6fc  sim/common/dv-cfi.h
+10ae063378c29f9534a3d15a01aa5b03  sim/common/dv-core.c
+cf1999cbab123876178e0731c3d3a3b6  sim/common/cgen-ops.h
+ed7ca485d2c51e42c67b9a3f9092b241  sim/common/hw-ports.c
+cbf0f2f487bf3077e71ec8ce635d2ed9  sim/common/sim-trace.c
+fee289e5fcd77e56a81aee36efe6ce4f  sim/common/hw-properties.c
+c9554019763cb9f5294efa75a5f36882  sim/common/sim-signal.c
+bb48a2a0327c7c43e1b1221970dbfb69  sim/common/cgen-accfp.c
+7e47ca85640edb0c8e956da734c1e22a  sim/common/hw-alloc.h
+beb665be06bd43858c07ea9943617d64  sim/common/sim-load.c
+1fe58a472a2a1b36aa6f324a51f3a775  sim/common/syscall.c
+9b7dd04d8b139bf8c4c5e4dc17163c8d  sim/common/cgen-utils.c
+e014f02c92f6605b2e6964f4a248911f  sim/common/sim-signal.h
+fb7bae44dd5f80f3b5e402a5cfdfbcdc  sim/common/cgen-fpu.h
+58abe8dc0681dc703937d24f3178c8e3  sim/common/sim-inline.h
+250111af689f190902f5f52b76f05448  sim/common/cgen-sim.h
+9ffb1b78347aa53206b08b09429630da  sim/common/genmloop.sh
+69a4e22bf0209c0b0aab14f7981c4bd2  sim/common/hw-alloc.c
+7f0796be70ea9539b5fcfcaf4838dc91  sim/common/sim-fpu.c
+9bb0ccd4840f3ca74592c81834f1aa22  sim/common/sim-module.c
+fb709bd997ca60a4a2df2415e5e6eb32  sim/common/sim-syscall.c
+3eb5f5cb456be5409d0eebcefc514c18  sim/common/sim-syscall.h
+721fc570b6cff520caa9a5a109831b81  sim/common/hw-instances.c
+076a5a1b672d5069fa21712eaacb1383  sim/common/acinclude.m4
+b181ca999bff0b554c47214c0604e0c1  sim/common/sim-alu.h
 349b802a9a8d2c2a27ac8b535289fd3f  sim/common/configure
-a9c954021801b3a07268b2031c23f282  sim/common/hw-handles.h
+1fa7ae448bcdbb6475aab342fba099cb  sim/common/hw-handles.h
 5f5b7060fadb3edc42fcde4b2f67da41  sim/common/aclocal.m4
-e1d859e0987ce88904a7ce34f5fbcd37  sim/common/cgen-par.c
-8f159f70497425dd24db45f8ab20122e  sim/common/sim-trace.h
-6b3faba2fd40bdbeacb1feafb9e4acc6  sim/common/sim-n-bits.h
-b680453af6a222b302bebd1e3c6adeb5  sim/common/sim-config.c
-884267bb565d01c0e893c87361cf3f1d  sim/common/sim-hw.h
-000a6bf33e9512779a323e0cbf822432  sim/common/sim-close.c
-21192ff5eb45947807176d9543320b2d  sim/common/cgen-trace.c
-5338e3c1cb7c934153ee4cc465271d61  sim/common/ChangeLog
-5406f16e3e4be4fa237840f2299042a1  sim/common/sim-inline.c
-b1c068f14dc38a0253d59c5e215d0e20  sim/common/sim-hw.c
-b6df49cca2c9f9ea5de3c128b310495c  sim/common/sim-module.h
+2e73a0ccfa979b7fefe82f5c50440399  sim/common/cgen-par.c
+80215d2f98798269764eb098cc979c15  sim/common/sim-trace.h
+28e28b03beb9de16fffbe9636e5b923c  sim/common/sim-n-bits.h
+ef0c6e58b4e9013bebcb6b32aa32333e  sim/common/sim-config.c
+0ed78395a274757421e7948c20f8aafb  sim/common/sim-hw.h
+8b17642b451c8dd0e350ba4c74c9dc18  sim/common/sim-close.c
+05ffc5dc90c55814aef1461535647291  sim/common/cgen-trace.c
+d8f9ebebe2e6e4d007f0cb63dacf21e6  sim/common/ChangeLog
+be7924d6146f7033f27781d2879bd4cc  sim/common/sim-inline.c
+10691b4a6b0cacae8293638b6f1715f7  sim/common/sim-hw.c
+a6d8f2d5b4c80b82c6f3bb7035793f93  sim/common/sim-module.h
 ed8b05c07d34977e0e69ce33032d809f  sim/common/cgen-fpu.c
 4ac4de2f5cbaa78e805d696918722ad1  sim/common/gdbinit.in
-b25808de07f1f59d857eedb301589747  sim/common/sim-events.c
-be34746f9512ea0fcd2f0c2f531ffe6a  sim/common/callback.c
+45e22bb9a6edde4fa9bc709a79921aa7  sim/common/sim-events.c
+7c243124ca343d3637668ed0f84c40a0  sim/common/callback.c
 025dcdf5925933a2d0a1b4e1e1c00ce0  sim/common/cgen.sh
-03fa1203addb733c222631d53eada983  sim/common/sim-utils.h
-813c48d4fd8a41f19551330fd674baad  sim/common/hw-base.c
-48494e45a4e9d38d852f14955eb0f081  sim/common/Make-common.in
-685126a111bd6972abe406bb366b5ebe  sim/common/hw-events.h
-12154caa98665f66268197bec8c7486f  sim/common/sim-config.h
-3a3fe333861ffa69e5d28277b00014c9  sim/common/hw-main.h
-44b0b9f227dabe56dc06d9d775ce909a  sim/common/cgen-engine.h
-d3bee059dc928e9a47ffce6f9153cf74  sim/common/sim-resume.c
-27a2f95d41b7a6cdbd64759eeac98c37  sim/common/sim-engine.c
-c95ea91081032e9d7cdeeb75ee089a2c  sim/common/cgen-types.h
-8e42af7191296dbfc1f0a865075b6206  sim/common/hw-properties.h
-3f78ae59fc85a5573a126d6004b88492  sim/common/dv-sockser.h
-1e0d90c1ba3d1e032291a7cab5b4b628  sim/common/sim-utils.c
-92f2b4166c3ab4aa946a1f37b772f38b  sim/common/sim-reason.c
-357c161444db1e293c0c3b83ed33dbe1  sim/common/sim-core.h
+db8586596eb5daab6a43c7928be01763  sim/common/sim-utils.h
+282c8989a6274fb5f2bf99b2d07da971  sim/common/hw-base.c
+ba920916868b07d95bed96c8c66fe180  sim/common/Make-common.in
+7a2d32b27c2426324e99a00287e1c4f8  sim/common/hw-events.h
+6aa50269dd003b25c446a443b6142c6e  sim/common/sim-config.h
+a9df9d2ea5fde0b71990718fd66776fc  sim/common/hw-main.h
+e5eca20dc01569290fa1de438a427bc6  sim/common/cgen-engine.h
+49b9da91c8c2e96ef901fcc5f2a31d77  sim/common/sim-resume.c
+12852bc83dd5344d264aa88da8741c64  sim/common/sim-engine.c
+4887a99ac15b66398effaa2a39d4bc28  sim/common/cgen-types.h
+262ddc61c5b053b45c06218af08f07d8  sim/common/hw-properties.h
+b8d29765974def9e06c7a249be8d57ec  sim/common/dv-sockser.h
+e1f1d2ab6e7f79fab257c7f95b4a1158  sim/common/sim-utils.c
+536deb5e3bba19a73f0c71155a3bd40c  sim/common/sim-reason.c
+dfd58a15b6f8f9527a30c2023ab0e3bc  sim/common/sim-core.h
 6bc94529e71ae6b6cf4413123d7e9f06  sim/common/gennltvals.sh
-8c9bb4819b3b2bba542fc9e72b143aa0  sim/common/hw-tree.h
-b57c5879d95c926623180d0f69ed0bc1  sim/common/sim-memopt.h
+f69a81e08604073509f48195c772f0c5  sim/common/hw-tree.h
+18bef1a3d6b850f52059ecdc41b736da  sim/common/sim-memopt.h
 60cdec181e481f70ff06c07688b82f53  sim/common/gentmap.c
-b0f0a3dee2cb6e9960f21e25c8bc9bba  sim/common/hw-ports.h
-2098e03d2f5987973e9a6793d4f315be  sim/common/dv-sockser.c
-6e4a7629e23d192afdaa832c3cfbea51  sim/common/cgen-cpu.h
-98b46f89af6687f11b468dd535e2e752  sim/common/sim-model.c
-bc7ec8009070a1617ab31d9ad1c9b869  sim/common/sim-run.c
-9b5529cc1f9ed4ae093858ad5b741f08  sim/moxie/Makefile.in
+8b88771bce94fe8de8ad42e85c6d4cda  sim/common/hw-ports.h
+af3fe366bd16504932c740f6e4f609be  sim/common/dv-sockser.c
+3dafdcc6431e22071568f3ab4da341d1  sim/common/cgen-cpu.h
+31a338f9e551713eeb03aa3359825863  sim/common/sim-model.c
+39a423c1869fe07fef9e695169a848ab  sim/common/sim-run.c
+a44c16d5cf0cef5516bbfab7680abbf8  sim/moxie/Makefile.in
 52a9849a86689a7ee1f88ce34bbd60ac  sim/moxie/moxie-gdb.dts
 964440dbdf931834e8ea8542008fd154  sim/moxie/config.in
 2681d762c5767113cb0971c575c57c9a  sim/moxie/configure.ac
-f024b3d379490c8df12debf32da3c57c  sim/moxie/interp.c
-a471650553546e5f36c5def8a19b1fe1  sim/moxie/configure
+94b1418028e823bd3a589dafcf7afead  sim/moxie/interp.c
+4fc3f18f37622cb23f41df8fbb6fddc8  sim/moxie/configure
 94500e8b65d9332dee333844d5522a02  sim/moxie/aclocal.m4
-b11d3501272873a9cab82fdc86f5c34d  sim/moxie/ChangeLog
-1e1286e0d57a7893c2744fcaef8a8bc7  sim/moxie/sim-main.h
-bb107c577b4af44909855987371651bb  sim/ft32/Makefile.in
-c4fbcc8636cb05f48c8deb2b0c3eb203  sim/ft32/ft32-sim.h
+d919962ef2a2527ac92ceba8b893fb67  sim/moxie/ChangeLog
+f69b1b18130fe959aadcd15ac89c6d7d  sim/moxie/sim-main.h
+efe0100e10bbf933c5a9c82c9fd8c6cf  sim/ft32/Makefile.in
+89192e13de6cb7bc7c49426e74aa84b4  sim/ft32/ft32-sim.h
 964440dbdf931834e8ea8542008fd154  sim/ft32/config.in
 1252c6201b72af1a27cf291337211592  sim/ft32/configure.ac
-a9d3753ed0ca013f66b237eb1b076f4a  sim/ft32/interp.c
-f3cc95a81ac9bfc6f91b4c6089d6c07d  sim/ft32/configure
+b37de40ea4a236da9c84d1bd11ff3b8f  sim/ft32/interp.c
+c4e71e445eed90f968441d012e7dc0da  sim/ft32/configure
 94500e8b65d9332dee333844d5522a02  sim/ft32/aclocal.m4
-6c5f3ec5122cfb6dd5c7ae196d5fbd80  sim/ft32/ChangeLog
-57de42caba275c8769cf48937d558e88  sim/ft32/sim-main.h
-ab4d24862a5987b86956472e0c7810cb  sim/aarch64/simulator.c
-b40579faa9f954026369a07033cd3eff  sim/aarch64/Makefile.in
-b96dd7e6c31ff652977cef9544345b35  sim/aarch64/decode.h
-1be2d68ba381d38b824a3cfcda5cd738  sim/aarch64/simulator.h
+cca394963a06fdeae736e3575103d984  sim/ft32/ChangeLog
+ffb2be9ee0d201f458dcef71ee96edc5  sim/ft32/sim-main.h
+a27f42229c22e3e4a7b76f22194c2fe1  sim/aarch64/simulator.c
+a652fd8ef79ee382733f5653dac54de5  sim/aarch64/Makefile.in
+469c10e0a18452217f14cf52b1eb3796  sim/aarch64/decode.h
+d15177b2bc3b28b0462cf836dae336bf  sim/aarch64/simulator.h
 964440dbdf931834e8ea8542008fd154  sim/aarch64/config.in
-f4182696ee15b8fc71692511e0df94f6  sim/aarch64/configure.ac
-71764ef1d2b9a11a5773558d8f867fc3  sim/aarch64/interp.c
-d8b2a920467c66e0fdafd727aa1ffd53  sim/aarch64/configure
+7eaa254f8014a0bdf46911aa658abd46  sim/aarch64/configure.ac
+75b0905c99cc4fb3dcb285abc2785209  sim/aarch64/interp.c
+4ee37f941fba8a15786706afc8045435  sim/aarch64/configure
 2a4cc676da3431298557cafe209ddd7b  sim/aarch64/aclocal.m4
-4960ada27f612b8df5e756a614a92de6  sim/aarch64/memory.h
-79dcb5045a05271eb3ab57697645da0c  sim/aarch64/ChangeLog
-a495e5c82c032c3fe3bb834ae9e25c90  sim/aarch64/cpustate.h
-8080a659162616ea693a314837ab192f  sim/aarch64/memory.c
-dbdac2eb4fdfdb4a448f3bc7ae7a7b27  sim/aarch64/cpustate.c
-79159043b5af6b715a555eec1e29d193  sim/aarch64/sim-main.h
-e845470dccea95aa396b4aff1ad6456d  sim/Makefile.in
-2af3304f655bd185dd69106d713a6837  sim/msp430/msp430-sim.h
-29d112f14a862a06f78e69e5155506b5  sim/msp430/Makefile.in
+d307b3f44d1a0d0c136bcc50a7b2b907  sim/aarch64/memory.h
+96d8686f3044e15cf4cc811bbd8988c5  sim/aarch64/ChangeLog
+e90301197476a58522f5dd4ea5aeeb1a  sim/aarch64/cpustate.h
+876e56c6ec082b699f013689f3ce16fc  sim/aarch64/memory.c
+443a931b9f70525549075bdd388b28af  sim/aarch64/cpustate.c
+4ded9f00ab46ab1bb6377d275ffe9ecf  sim/aarch64/sim-main.h
+01ab8ef7cf1d908038af5b3cccf44dbc  sim/Makefile.in
+1e79cde06fcf17500ba187fcae6190aa  sim/msp430/msp430-sim.h
+6f1b9aacd8d7e58c7e5c2178d9c71fa9  sim/msp430/Makefile.in
 b42c6e70509d69418cca5e4d03a16f64  sim/msp430/config.in
-41914795cdd569eb54b651ffb56167a3  sim/msp430/configure.ac
-871df9316ec65eda8bde2e929cb8b185  sim/msp430/msp430-sim.c
-f7c2c56aa93aa58f31f16f84ef9ed747  sim/msp430/configure
+69ca7d2c54cb78ff7c39807bb8176e98  sim/msp430/configure.ac
+55db1392d0aeaef81852d75286975771  sim/msp430/msp430-sim.c
+b84f8100a3469a24ce175452fc4acdf5  sim/msp430/configure
 94500e8b65d9332dee333844d5522a02  sim/msp430/aclocal.m4
-67773bc32f52c8a6012b9a1b3591bc01  sim/msp430/ChangeLog
-750bc9e9be37122c14672cd6bf614c16  sim/msp430/sim-main.h
-7eb8b919a15c9748c403f391219002c4  sim/sh/Makefile.in
+a25d80616c54aac2f832b3dfc4b8a37f  sim/msp430/ChangeLog
+60373c89146c9a32ed6d0725a6ac0314  sim/msp430/sim-main.h
+58edfd9eda2b6f5aa43867c08fbfbcdd  sim/sh/Makefile.in
 964440dbdf931834e8ea8542008fd154  sim/sh/config.in
 9aedeeeb3f292ad0e1f72f0a0fde3982  sim/sh/configure.ac
 daa4535a7428b95572256d31c6b7118d  sim/sh/gencode.c
 32f5b8f9788e8786980836aa08f81713  sim/sh/interp.c
 485762a39054bcf5bf3a3ee2a4de586f  sim/sh/syscall.h
-b910e910448fec152700a56fbb1f828f  sim/sh/configure
+b9e9b0bc8d824dce0ccf336f3a024647  sim/sh/configure
 94500e8b65d9332dee333844d5522a02  sim/sh/aclocal.m4
-61226385707b7696cc166ef675efa9ee  sim/sh/ChangeLog
-77821bdd7f709ba0e9a2adad3e45e230  sim/sh/sim-main.h
+a1217029552bf4107c9b439c95bec39b  sim/sh/ChangeLog
+3055de17feccf02c14e43006cd7540f4  sim/sh/sim-main.h
 afd9cbd34a7ea99ba02812493e0d6712  sim/sh64/eng-media.h
-7d4c28316187526b889623cbd687e833  sim/sh64/Makefile.in
+1be6b798275759a228b3e58333c886d7  sim/sh64/Makefile.in
 5d324bee9f66166b122b0864f3a90ff7  sim/sh64/decode.h
-13bf02e3ed2fdf6b6430e05d88286bfe  sim/sh64/sem-compact-switch.c
-6f308d0cfb5bae27c6fa2a155044e626  sim/sh64/sem-media-switch.c
-6c1e2e456c982e3fa284ed399a77fcea  sim/sh64/sh64-sim.h
-54e98a901930ae55a428a4260ccb35ad  sim/sh64/cpu.h
-d13435cef849e175732f7c515b2f83d7  sim/sh64/sem-media.c
+9e886b78f76cdbcd579be1a06e3d0bf7  sim/sh64/sem-compact-switch.c
+15729dea4c1416219dc008c547d3b069  sim/sh64/sem-media-switch.c
+6b44acb58a932c25612a6e49c93fcab0  sim/sh64/sh64-sim.h
+3ba522ad12384eebe749abe235f163ce  sim/sh64/cpu.h
+6bee97677de4f460f1c933ebd896cc97  sim/sh64/sem-media.c
 92a6cb0bac20780f1cbd0c25cc6ca10f  sim/sh64/config.in
 4d192118ba39506f1f97ecbe51d2a4e0  sim/sh64/configure.ac
-e8a3e256f2a9cfbfddacf6f14582b0e8  sim/sh64/defs-compact.h
+207be9d269dea964b563372917e01e02  sim/sh64/defs-compact.h
 ac213d1c73055fd163b9db0c56963dfd  sim/sh64/eng-compact.h
-a68ae868184e0ee6744878c5b27afcff  sim/sh64/sh-desc.c
-3590e94e5ae9631336a09246bb41da44  sim/sh64/decode-compact.h
-ecefc1ff4b598317a9a6f077ea530203  sim/sh64/sh-desc.h
-5cc09dd4a7cbfb943d19f9e61c47b98b  sim/sh64/decode-media.c
+afed545e0e49b2783cf6e388463ddb35  sim/sh64/sh-desc.c
+e99324470f8bc17cc088929f73c88841  sim/sh64/decode-compact.h
+9a7dd4483139cb0215ec281c3353cae0  sim/sh64/sh-desc.h
+ba6e5184c7c5ee2343762d79891c28fb  sim/sh64/decode-media.c
 adbaac5162470002b83025ae45e56bd2  sim/sh64/mloop-media.c
-83ce605df3051dffce292e116c048797  sim/sh64/decode-compact.c
-278cd60cb2f5a304277bec1d8c9ea7ff  sim/sh64/sem-compact.c
-3f6b4cf52da69bc706ea0856aa264627  sim/sh64/configure
+22a150b50364a514163cb7e782684671  sim/sh64/decode-compact.c
+66514e96a6c0ad21c3ff22c305615caa  sim/sh64/sem-compact.c
+b252c61a24ee0cc7273f4c3cdcdda5af  sim/sh64/configure
 94500e8b65d9332dee333844d5522a02  sim/sh64/aclocal.m4
-0bbd012da2a55d31c4933bea0d0eab40  sim/sh64/arch.c
-6ea6c875d46f22d9130a332190e46e91  sim/sh64/arch.h
-5c03e34361864b80fe5b1e41a1c35790  sim/sh64/cpuall.h
-ee382195f7dce54bc58a5a07ce292a96  sim/sh64/ChangeLog
-e91b2a1b290900590b70b526f69826e3  sim/sh64/cpu.c
-0302ec47f2655a161bf948d2f6ce5ea4  sim/sh64/sh64.c
-5c5a0406a8517ef3f70223e276abbc12  sim/sh64/decode-media.h
-a88687194c6d57441678227ccf9c4fd8  sim/sh64/eng.h
+0ff8e7a3afe73037ab85312898b719a5  sim/sh64/arch.c
+0a9b14abb0765f3b3a6b71204354b174  sim/sh64/arch.h
+d64f78e8963091630bb35043ac5118d7  sim/sh64/cpuall.h
+cd7e4b244cccb18e2f1c7a44def64a2a  sim/sh64/ChangeLog
+df76309d49b3aa070b9bcd1af6b4369e  sim/sh64/cpu.c
+481eec5e0c442d1d060226eea9047eec  sim/sh64/sh64.c
+0cc838d3e63f27dc80d63f1f606d6700  sim/sh64/decode-media.h
+48c00abeb295005a5f471597b66b15a1  sim/sh64/eng.h
 6f0d1da9665b40b4e6e19814d8d2d5fd  sim/sh64/sim-main.h
-a25afd6620188bb4f9ee38d8624329f3  sim/sh64/defs-media.h
-13dc51f3dbf7922346ed11baa53fd5ae  sim/sh64/sh-opc.h
+e9028dba77bce5f49927c109c7f6667e  sim/sh64/defs-media.h
+fcc9ed092e2ddedddcd28402a7775414  sim/sh64/sh-opc.h
 71fb49f1b9785b3ace5be10f4aa1e92f  sim/sh64/mloop-compact.c
-1692d32971ae1f0fe45ca8eb5dfa30cd  sim/sh64/sim-if.c
-b6de3e648f8924b309ca94a6557114f2  sim/frv/model.c
-79d2852f2607c4b3997e8308cf6fdadb  sim/frv/cache.h
-035b3d13c7f3c2a3d107da914e1e0c3a  sim/frv/pipeline.c
-60a4645451fefea8660174177985d4ed  sim/frv/Makefile.in
-5d327b7a2b57de0f2ac79a3df462e188  sim/frv/decode.h
-c2ec11f26e994e286dd6acba2001b893  sim/frv/profile-fr400.c
-dac50f9c9b8218d2380aec014e4cbf49  sim/frv/options.c
-8e5e0cc3216cdefc97d2afb85100e4b0  sim/frv/cpu.h
-1ca5fdfb94f5c55c13caec16a323490c  sim/frv/frv.c
+ed0c7961548831bf275447bd64b4707e  sim/sh64/sim-if.c
+9d64c3dd67007c2c8a61ed45b9739bca  sim/frv/model.c
+4754b4bd0a213f038749ed5bb93d9e7b  sim/frv/cache.h
+35615b019a9fb9b989705bd06a05f71b  sim/frv/pipeline.c
+012ff295e7c88ff2a5bbfbce24fa2e5a  sim/frv/Makefile.in
+e75cb3a1f2edeafea864362055fe29a9  sim/frv/decode.h
+0b8ccc2ecd458ffc3cfe4c38e8db6233  sim/frv/profile-fr400.c
+b0f159091b373fb5bef6f31f20c7c0b5  sim/frv/options.c
+798caec788af079a8514066cf895b40e  sim/frv/cpu.h
+378d7eef1acd8c6d640887b47229b707  sim/frv/frv.c
 92a6cb0bac20780f1cbd0c25cc6ca10f  sim/frv/config.in
 eabacfe8e05fd47f550f026eb3ac6602  sim/frv/configure.ac
-45423dd3de5f2c364c0c4d1d18c095b5  sim/frv/profile-fr500.h
+ae081b6a5d660ae4a0b29a58014a0dca  sim/frv/profile-fr500.h
 1dcb16936dd94db21e5b82f208506a6a  sim/frv/README
-679ef7ef2583eb23ba99c9d871e85c24  sim/frv/profile.h
-cc4713c2fb9384f3beca26d9947d24c3  sim/frv/traps.c
-8bcf0bffa59d348a54f9615f15b9b01c  sim/frv/cache.c
-a677e502ee1346f68d0792741120c51c  sim/frv/frv-sim.h
-ac5a248a8e649a03c200b5b888178a1e  sim/frv/mloop.in
-2f027efbcda5ca58b2956b38ce539ca9  sim/frv/registers.c
-5dc0bee66415e52a43d6a68ea8c7ef40  sim/frv/profile-fr450.c
-795ee779b375b38cd45a016d8c8f82f1  sim/frv/registers.h
-a77ee622a855195e7436737be2d1c3c1  sim/frv/profile-fr500.c
-5d8505efbfab89d588ec718054024858  sim/frv/profile.c
-78c92dc57f831e4580461a9b6ba59b00  sim/frv/sem.c
-01fb8d5c10bb2ae682fd99384cbf6364  sim/frv/profile-fr400.h
-42bafcf36d940fd23cc03d272c490b8d  sim/frv/configure
+075090b4ca7b1ce03f78f80018ef7c92  sim/frv/profile.h
+6040f7dd3ef4e6d1b1465e6e23c59ff9  sim/frv/traps.c
+a953f960263dc55895b4a6a78c52470e  sim/frv/cache.c
+8a7ad7333eedc420285e63c231fae718  sim/frv/frv-sim.h
+3e257879a64e72e84b706686e68beda3  sim/frv/mloop.in
+d44b147b876db99acd127bfc40e1f314  sim/frv/registers.c
+c10c0e31ee4e911d3dea47eafe09f097  sim/frv/profile-fr450.c
+2228cfea73c1fa6991cfd43d3b6cc949  sim/frv/registers.h
+d51c2b5201f8e21ff8b6d6b8ae58d4ed  sim/frv/profile-fr500.c
+181aea9cf408de2d47003fb2a819f9bd  sim/frv/profile.c
+1977e6537d6637cde22d7159569df764  sim/frv/sem.c
+6115713946909976a5142ebe0fce3d23  sim/frv/profile-fr400.h
+36566f8de95e0930635aea7bbfb4ea60  sim/frv/configure
 94500e8b65d9332dee333844d5522a02  sim/frv/aclocal.m4
-66b4284688011b7dabaec838f50eae1d  sim/frv/profile-fr550.c
-d3de34c8a6c76c5e3efa91e5d9cb685e  sim/frv/arch.c
-29f2c82525d96b8b05ed3d40bf723903  sim/frv/arch.h
-c6cbda037a085b55ae40cede5d38ba39  sim/frv/cpuall.h
-0aea3412fa92151441a77d835ef074e4  sim/frv/interrupts.c
-e59b2850784506da3b221a4874e521b9  sim/frv/ChangeLog
-759e355828d813c5b86a517bc7d71d5a  sim/frv/memory.c
-17e4938bee45f12d413c34769106231e  sim/frv/cpu.c
-c269ebd4cf0244571e556f48de8769cd  sim/frv/profile-fr550.h
-91e9563d48591ec48ec9968d4bd2d497  sim/frv/decode.c
-abff2d5d40782559db2a7c514fa8c4b4  sim/frv/reset.c
-8ff1cd18f6d95ff8864dcfce944cdd15  sim/frv/sim-main.h
-7e6c766c4ae7bf120ba5cdaf44fd6564  sim/frv/sim-if.c
-494cac10323c0d836b27a183c10e27d2  sim/rl78/Makefile.in
-38d4c157d0b05398f36b755d5b35b0ce  sim/rl78/gdb-if.c
-bde5338dcd61025389b6609f2546c09d  sim/rl78/cpu.h
+55cac7557452c7802e3bb854459f6c6d  sim/frv/profile-fr550.c
+87c86402f320967ec68733d3e9cabea4  sim/frv/arch.c
+41d55efede9ca0eb0d80f5e14d22e7d7  sim/frv/arch.h
+0b32612d9a78d9d0502b3c3ea8d70049  sim/frv/cpuall.h
+3ddb5fbed07a748fbf403d4ab5f28264  sim/frv/interrupts.c
+2c6526691436fb935b9692acf0123625  sim/frv/ChangeLog
+1de600e72d9585596442b29f53aa448d  sim/frv/memory.c
+b00f596ca288a6c33437a884f52493aa  sim/frv/cpu.c
+26c0073da89a87e37834679752dae036  sim/frv/profile-fr550.h
+f7be39cb8eee5a4162ff961f104b5ca5  sim/frv/decode.c
+d26a2190bd88dc183342f80256c71437  sim/frv/reset.c
+6b651b94380b9c50e0511fa63133cd5c  sim/frv/sim-main.h
+095d293b2c923ca386de60ecb24c4b21  sim/frv/sim-if.c
+d52ca075ed1fecc01711cfce125d7da4  sim/rl78/Makefile.in
+5f0bdfa4e3a72ae8037ad5837881a206  sim/rl78/gdb-if.c
+cd0de5e485bb4554aea6b8ba7067813a  sim/rl78/cpu.h
 b42c6e70509d69418cca5e4d03a16f64  sim/rl78/config.in
-f6c731da997405f421d50a7a889c7ead  sim/rl78/configure.ac
-36de8d4cad099f74b71a64c5300fd722  sim/rl78/trace.c
-474bbcd09f850aa5d4a39162a9f1cd8d  sim/rl78/load.h
-0389f6afe4b1cc462425f72df679b5a9  sim/rl78/main.c
-b1835787b257bf9495785ad11ccc7809  sim/rl78/mem.h
-a7798a71ab6e15638e39e7b94eece76a  sim/rl78/rl78.c
-c971ecdd2a4ccb6927441c9ed0b024ce  sim/rl78/configure
+4156c371c2efb7f591967d86d09eb5f2  sim/rl78/configure.ac
+c60fe302433128a04e16dc47a708a02e  sim/rl78/trace.c
+ae12dac7cdf8895146447c34d257ae4d  sim/rl78/load.h
+ad7df04ed013ceba9be9224adabe6cfc  sim/rl78/main.c
+0ff4ff11ea82e47788342ab45dba656a  sim/rl78/mem.h
+1c7a34e498bc38177f0d48eb67d258e8  sim/rl78/rl78.c
+a61b1c11a4108b073f630ff1b179e1e3  sim/rl78/configure
 94500e8b65d9332dee333844d5522a02  sim/rl78/aclocal.m4
-7fb8f33e6e6adc22891fb603bd0e0413  sim/rl78/ChangeLog
-61722bd57d8b33fe2386fd647df59bc5  sim/rl78/trace.h
-7ae790fcb5c664528751d4eb44dc24ab  sim/rl78/cpu.c
-7e09859d900260d36e8295d291db5b0c  sim/rl78/mem.c
-53287f43a12b7ffd28b150e1c15db3a2  sim/rl78/load.c
-f044a6c62dff3fe91df15de091fda74a  sim/configure.tgt
-5a58ac34f1471764a62c1a3f43a066ee  sim/configure.ac
+0f70a274f16673f3c92216579480a7f7  sim/rl78/ChangeLog
+db1894c105a9f4bd4e039de55838eeae  sim/rl78/trace.h
+eb3b5c71910ef8060ded1fef97eb427f  sim/rl78/cpu.c
+377709477a3a4025bd064d5516ba8a21  sim/rl78/mem.c
+96f304ad5d4cf83046a0cc9d1f6f9d35  sim/rl78/load.c
+620b4601dcd506639adac3dfabd7d2c4  sim/configure.tgt
+93e5f34b348d99a268e355035a920873  sim/configure.ac
 071749598bc079bfc57c77b17e484809  sim/v850/v850.igen
 343bbcec33069e5661e14fc16b9adf16  sim/v850/simops.h
-b3877b84e75e5b4741948492846486c5  sim/v850/Makefile.in
+9d4911301f70579c981d5ca2a8c6ed16  sim/v850/Makefile.in
 af2c83244a91504979f6a0b77e9f6219  sim/v850/v850-dc
 665d05b23d15bcf1131f13acc3707dd5  sim/v850/simops.c
 6bdfffbb27c1feff27c2aea306de6c19  sim/v850/config.in
 6e73125e9ecb8a876b27861efcaefe89  sim/v850/configure.ac
 5be894a40ad061ddb10cc74af505e506  sim/v850/v850_sim.h
 f1c7e4031cb70d8722addad1f2ad8612  sim/v850/interp.c
-e93943aec9c3fe0b44498f799941481e  sim/v850/configure
+f5f769f9d56d824011c4448ceaddbe5f  sim/v850/configure
 94500e8b65d9332dee333844d5522a02  sim/v850/aclocal.m4
-871e0bfaf2acff5eae569165e4f74e1a  sim/v850/ChangeLog
+dbfef4c712c7087215cd7f121a3f6fb2  sim/v850/ChangeLog
 26161fca5d747178c7cb1ea21cf3ee39  sim/v850/sim-main.h
 e2b1c770fb0b1bd499fe5e728c279b76  sim/.gitignore
-8b12e36ed741c494107b508aead9c0de  sim/mips/dv-tx3904cpu.c
-a9d434da5878fcfb31440476266ce719  sim/mips/micromipsdsp.igen
+6a78b10c52eea74528a58417be8c764b  sim/mips/dv-tx3904cpu.c
+16342b77f2cfa77e27644f3c54d43ec0  sim/mips/micromipsdsp.igen
 6af8848f609189134d3a5f2b04d2d4a8  sim/mips/Makefile.in
 10f84bde627b5f18455bf28132e4a971  sim/mips/mips.igen
-604623cb3484ae1bafbed9d605236c53  sim/mips/sb1.igen
+37bf7199c4fd78e4cfad6aa54a3a0ead  sim/mips/sb1.igen
 61566dc2819979301d3d92473a37bbc3  sim/mips/m16.dc
-6e623fe2d084eb45419292ae1b22ac52  sim/mips/dv-tx3904tmr.c
+1b07be8e5b18706c0a641a5509a8ef0e  sim/mips/dv-tx3904tmr.c
 22beb802e4aa528563dc0b3ef464dc25  sim/mips/micromips16.dc
-38c35faafbf6161ad4541670764414f1  sim/mips/smartmips.igen
-7a743aeea9c692c9ea1c9452285b481c  sim/mips/micromips.igen
+5012941bb76a8f7b705f0a2632d3aac6  sim/mips/smartmips.igen
+aeaaf667927dc1bfbaa2e28c87eb70ec  sim/mips/micromips.igen
 1e86f8dc5c33a87baa9dd7a90fe149a9  sim/mips/config.in
-c9dda4dad28bc7b79554d87bdac46f3f  sim/mips/configure.ac
-453c3e1c079a98cc7d0d5b79726ee77d  sim/mips/dsp2.igen
-7c842f5ebc26dc2c29cbb8a759bb8186  sim/mips/dv-tx3904irc.c
+99a0dd2bf40a976be052f5982d56eb0c  sim/mips/configure.ac
+fcc94254b3342abb448d52331797d8f6  sim/mips/dsp2.igen
+caebac99979ff2ed7893712e32b3162b  sim/mips/dv-tx3904irc.c
 b35a5093e668223efdc8aa2ef2d27f8b  sim/mips/vr.igen
-cc00a88892d2f2cd5a339eeafa9fa50c  sim/mips/cp1.h
+d4ed79fef99c624259b43f038a6c7be0  sim/mips/cp1.h
 18d62ad72041c55f57026419090d858d  sim/mips/interp.c
-42c0bf6fbd8753ece604dba66521ceed  sim/mips/mdmx.igen
-52be580bc3efbd8f306aefc033aacdf6  sim/mips/mips3264r2.igen
-13556e082d2249f8a50c7f570b11e5b7  sim/mips/mips3d.igen
+3baa501ae6e0f7c513a924d300655f4f  sim/mips/mdmx.igen
+250350053efe60aa6b190aa0226d4777  sim/mips/mips3264r2.igen
+73adadcc5d0fa88e584bb0f3db95f694  sim/mips/mips3d.igen
 ad1dd62bbde38eda63bef32a6b534987  sim/mips/m16run.c
-08dae9f49e720681f7f135232d739d5a  sim/mips/dsp.c
+234fe68587fc61c693d7efeb687e41b6  sim/mips/dsp.c
 0cc85f54d1aaffc21fa0a619b2e23020  sim/mips/mips.dc
 efe0c6cab20f817cc6575b6052a10ec6  sim/mips/micromips.dc
-35e1929a6f51c3a1d04158fa9129ddce  sim/mips/configure
+279708da9fb2f54fe685e189e40c7e60  sim/mips/configure
 94500e8b65d9332dee333844d5522a02  sim/mips/aclocal.m4
-46ea9340912e0d0b7b6ca8bbb7c61301  sim/mips/m16e.igen
-67900cdcc668f11f95ee530825450de8  sim/mips/dv-tx3904sio.c
+3399ae632b9c4e401c15bea178da5767  sim/mips/m16e.igen
+ffa2a2b2d2a5c53d3339ab49adc1ff75  sim/mips/dv-tx3904sio.c
 8e5d00dcf8c3510ef993285006700bf5  sim/mips/m16.igen
-c8ffb636d686155d32edfc050d82af81  sim/mips/cp1.c
-6846f31e285f470e115a6bdf10dfb003  sim/mips/ChangeLog
-3cdd629cc9aff1af8c5d8743f1c7e599  sim/mips/mdmx.c
+bb85f0c57e5f4015f7e8adb2d1e5a882  sim/mips/cp1.c
+f22dbf1bc6bae60d3ad89661bb2d56f8  sim/mips/ChangeLog
+8d76c7d4e8db3a13e21e458651c32fca  sim/mips/mdmx.c
 f7124299dc38e26a5c5b0d6602f42ea5  sim/mips/sim-main.c
-4f6308da5719afc2986c4242f6d8c00e  sim/mips/micromipsrun.c
-20363d10d44c51083c3b8b41f851bd37  sim/mips/dsp.igen
-0e4edcfa95446333333b91b883705b79  sim/mips/sim-main.h
+e441e8496bd6987f68f9e856318e68c0  sim/mips/micromipsrun.c
+af355a966044b15fd3df664cdd8f7a7d  sim/mips/dsp.igen
+c1e8317a1e5e6a7f790c3775b0e9f26c  sim/mips/sim-main.h
 e90e73eee445d44f164749dc8d8c0a4d  sim/mips/tx.igen
-6403755e47f369c1e83643e9248fe06c  sim/microblaze/Makefile.in
+5ae08555655016f7e01961e0072a0776  sim/microblaze/Makefile.in
 964440dbdf931834e8ea8542008fd154  sim/microblaze/config.in
 9aedeeeb3f292ad0e1f72f0a0fde3982  sim/microblaze/configure.ac
-dcbfaa29d121aae789493dbf0d3cce7f  sim/microblaze/microblaze.h
-40bb1abb8d079e2fa5c8d3b44b7bf0cc  sim/microblaze/microblaze.isa
-1d09e9cbb4374494dc1ee07610b19750  sim/microblaze/interp.c
-b910e910448fec152700a56fbb1f828f  sim/microblaze/configure
+56a93c7d96723c8e7fbe33440b8a4baa  sim/microblaze/microblaze.h
+976c97ea83f21c7c6e503690eb58d47c  sim/microblaze/microblaze.isa
+0996e860f6f673405679df899d6cb042  sim/microblaze/interp.c
+b9e9b0bc8d824dce0ccf336f3a024647  sim/microblaze/configure
 94500e8b65d9332dee333844d5522a02  sim/microblaze/aclocal.m4
-2423785d762ad5b29b6ad6ff9ad8c299  sim/microblaze/ChangeLog
-427b696565fad719840d2153b6a3946b  sim/microblaze/sim-main.h
-7fdaadc8f1523a765e299ce6e77ac2da  sim/d10v/Makefile.in
+99e92eed2bc88c43cf09ba8b32a53d06  sim/microblaze/ChangeLog
+4454465c1348f734abeda6ec860b5d37  sim/microblaze/sim-main.h
+a3869b1abe35742852b9f32dc577e22a  sim/d10v/Makefile.in
 2d351f4c1e1ef4458d9303a518f3495d  sim/d10v/simops.c
 964440dbdf931834e8ea8542008fd154  sim/d10v/config.in
 9aedeeeb3f292ad0e1f72f0a0fde3982  sim/d10v/configure.ac
 030a61bc5d67ce1b8a537c7e93b9de11  sim/d10v/gencode.c
 0588da5709059f25ef93487a2068a8e7  sim/d10v/d10v_sim.h
 486ffceb0ca54037eb52857f2c2be17e  sim/d10v/interp.c
-b910e910448fec152700a56fbb1f828f  sim/d10v/configure
+b9e9b0bc8d824dce0ccf336f3a024647  sim/d10v/configure
 94500e8b65d9332dee333844d5522a02  sim/d10v/aclocal.m4
 0151d6f631ef5b3834e7d5a43304b55e  sim/d10v/endian.c
-d8d29e0888a674f6f166c57067c2b8fe  sim/d10v/ChangeLog
-eecf73b10292230f8c1569c702cc30b3  sim/d10v/sim-main.h
+587912cfc56a3ad22382cc8f82d7453f  sim/d10v/ChangeLog
+340aa76f2cd88006e46c54447f1700a3  sim/d10v/sim-main.h
+4a1e4a6b3bc9b5f0ed540aa85d3e162c  sim/or1k/model.c
+fd198405176d92a311a9182f1ff97ad1  sim/or1k/Makefile.in
+b9243c6198ba9303612ee7dd4a6a3971  sim/or1k/decode.h
+c9ca5030b3086bb5c16e45d995b1863c  sim/or1k/cpu.h
+79b3f19a4a961715ed1b3fc266e073d6  sim/or1k/config.in
+f38755e0e89e7eca982988847a176215  sim/or1k/configure.ac
+f4f03b812cdbb239f5a1fd44824e1763  sim/or1k/README
+da96866419ef5db5a90b5bc8a407b9c4  sim/or1k/traps.c
+42461f1fe8dce184c5d033b77ecdcaea  sim/or1k/mloop.in
+551a7419819d000c43081310d0eee201  sim/or1k/or1k-sim.h
+7a0548bb53da2d39213f22f6a69c3c05  sim/or1k/sem.c
+0b0ad1c3e97653ca58dedb5c8a08f6b4  sim/or1k/configure
+5c2b15dd4234b6a4a05a60129bb84cd6  sim/or1k/aclocal.m4
+3fb08eead9fb1496f6802859b2ff4c0f  sim/or1k/arch.c
+80a5c05942a3783359d3b956d5be784d  sim/or1k/arch.h
+045360e647c7a0936eb093dba14904fc  sim/or1k/cpuall.h
+0bdb98c2f8848e179a6467f918e98dcb  sim/or1k/cpu.c
+cda63f8cf3086262acfdb6c35901cafe  sim/or1k/or1k.c
+476460914a6def30cf07d7aa018acb03  sim/or1k/decode.c
+c0caef74c596ecb493a5a76d32a6d411  sim/or1k/sim-main.h
+78a4b02e934d01cf2c906e8cba9a0fba  sim/or1k/sem-switch.c
+2fff21e85a5d6c2c17f32f0e6c88febd  sim/or1k/sim-if.c
 6f85f5b126eda2839d687ef1b5cc9587  sim/testsuite/config/default.exp
 09db0759c17936e2d8cf6dea6eda8fb1  sim/testsuite/common/Makefile.in
 2c97e49ca99e657e07ca12a6fd5d6f69  sim/testsuite/common/bits-tst.c
-2f8ef8f56a53c0ed5858def9826bee46  sim/testsuite/common/bits-gen.c
+b9dfb4486983005fd777c01d359189b7  sim/testsuite/common/bits-gen.c
 56912c8f1ff672daf4dbab4a0fb12a54  sim/testsuite/common/alu-tst.c
 874ac49fc37d49f2822c8b409d285004  sim/testsuite/common/fpu-tst.c
 8b1814b871166305ec8fc7a06cc9a84d  sim/testsuite/common/Make-common.in
 9980219e011c42205bbd14e46d21fc8f  sim/testsuite/common/alu-n-tst.h
-9fe6d21090dc88b28988903c206728de  sim/testsuite/Makefile.in
+e3d2d71cfc0cf9007ecde87ada28009d  sim/testsuite/Makefile.in
 e5a02702276017390ca9c6c115bdb7ce  sim/testsuite/configure.ac
 c3159efacfaf9907b2cd1771fa08d97c  sim/testsuite/.gitignore
 924a8154da0b6d622606be982c2370c0  sim/testsuite/sim/moxie/allinsn.exp
@@ -7562,28 +7840,30 @@ f55f257cf5a6ca86d8027d0a057a4a2e  sim/te
 f6b9347ade994720c41449cd3ba58b38  sim/testsuite/sim/ft32/ChangeLog
 9b05eb7a4d099c690fd3feddc1339a65  sim/testsuite/sim/ft32/testutils.inc
 621f5b3c71738a53ec60c54f5347c2de  sim/testsuite/sim/aarch64/fcmXX.s
+bec396512149783f9d2330395644573c  sim/testsuite/sim/aarch64/stn_multiple.s
 22ce20e8ac1596b43d27566fec1d0df3  sim/testsuite/sim/aarch64/cmtst.s
 c272478e11f857623422c69c32c347e7  sim/testsuite/sim/aarch64/xtl.s
 ec24554d375f8749003d441f17041e04  sim/testsuite/sim/aarch64/fminnm.s
 ddead3f07c4c76c4990369055ef6d480  sim/testsuite/sim/aarch64/xtn.s
 e4bf893b5808655522560a909305f91c  sim/testsuite/sim/aarch64/fcmp.s
-dab6dc380b7f77672c4c4734a89fdad1  sim/testsuite/sim/aarch64/fcvtz.s
+a23328e3a895483960b3e5f646ed3f1d  sim/testsuite/sim/aarch64/fcvtz.s
 4edaabc5a3ba4982ab32bea48d0f464a  sim/testsuite/sim/aarch64/allinsn.exp
-091bdd0334b389398c92d6b50c275e0e  sim/testsuite/sim/aarch64/uzp.s
-a4775df56d0d9cd00209b30754d6700a  sim/testsuite/sim/aarch64/fstur.s
-90f7720cf3b6bd31d13f9c12b454a20c  sim/testsuite/sim/aarch64/ldn_single.s
+d8c2c4227ed84e11b21a51c51ab69190  sim/testsuite/sim/aarch64/uzp.s
+68bbc6b07a27f3b8f9218ef2ec72ed96  sim/testsuite/sim/aarch64/ldn_multiple.s
+cb2b29ddb2fdbbc37686649386f70b38  sim/testsuite/sim/aarch64/fstur.s
+a322bda4b01624fe4727f7e73ec0ab2f  sim/testsuite/sim/aarch64/ldn_single.s
 6c56b6f2a3cd0fd10d27263f129219fc  sim/testsuite/sim/aarch64/cnt.s
 75994af3ed8ae4f86428b1ccb9363b3f  sim/testsuite/sim/aarch64/tbnz.s
 bdb357eabb1f4ec8a0dcf656a57e6f54  sim/testsuite/sim/aarch64/fcvtl.s
 0afd0180ee05670f0859a0cfa85a66f9  sim/testsuite/sim/aarch64/sumov.s
-99a755cf60d0616ad1c456466231f337  sim/testsuite/sim/aarch64/ldnr.s
-c13a5aec033e4a28890ec3111c3f2f3f  sim/testsuite/sim/aarch64/mls.s
+edac53ddf7bbcdb9dce90e3f897880a7  sim/testsuite/sim/aarch64/ldnr.s
+1136807e5852fa056f6807695cc176da  sim/testsuite/sim/aarch64/mls.s
 f1237777b4746501810c730fdf8257a9  sim/testsuite/sim/aarch64/addv.s
-c81bec92452c35e088f361f0e3999c9e  sim/testsuite/sim/aarch64/ChangeLog
-ff12377dd5ec98306c0648fc33cce60f  sim/testsuite/sim/aarch64/sumulh.s
+d35efcec3c41929d568952abf56ca787  sim/testsuite/sim/aarch64/ChangeLog
+5671a78df36d1753f5ce753e0e03ab98  sim/testsuite/sim/aarch64/sumulh.s
 7109e21c036b925dc3d9d822faa6d47d  sim/testsuite/sim/aarch64/bit.s
-f4f60cb48f8e6010364eddbd35d0bc9d  sim/testsuite/sim/aarch64/mla.s
-0694e961d1855f084dd05d84aed7f119  sim/testsuite/sim/aarch64/stn_single.s
+cee852180398487c364c92b459e0c145  sim/testsuite/sim/aarch64/mla.s
+4a952ef725e547b3ceaddfc5a5e4b82f  sim/testsuite/sim/aarch64/stn_single.s
 8d86c2045b41742d36c9f05321d7ee41  sim/testsuite/sim/aarch64/adds.s
 dd93632a4ebde45ccfe85430b63241cd  sim/testsuite/sim/aarch64/mul.s
 30f9aadb38fea9605c7184b0bf1a8486  sim/testsuite/sim/aarch64/pass.s
@@ -8918,11 +9198,11 @@ c5f8f5f2c95cb9061411969f8552bd60  sim/te
 4e33f6ab389381ede55a4ca40ca14064  sim/testsuite/sim/v850/shr.cgs
 c5cadbab939f31f2815550c2e1bc4ff4  sim/testsuite/sim/v850/testutils.inc
 8c015488bd973b121a5372038ddde9da  sim/testsuite/sim/v850/divh_3.cgs
-ecdcd34074d519174231350820ebe92d  sim/testsuite/sim/mips/mips32-dsp.s
+a157a32a35114c1e5396a6f8d4475f8f  sim/testsuite/sim/mips/mips32-dsp.s
 b19e0c53b685c87920887bc87dba4579  sim/testsuite/sim/mips/sanity.s
-d8337ab354803c1d83b1b386d55dd585  sim/testsuite/sim/mips/utils-fpu.inc
-99b53b33bb90e6afbec6b348925f19e8  sim/testsuite/sim/mips/utils-mdmx.inc
-e8e7c81d9aa5eb1b868ab4533d9ec9b4  sim/testsuite/sim/mips/utils-dsp.inc
+afbc0c079f5cf9811fccd425b61276cc  sim/testsuite/sim/mips/utils-fpu.inc
+f56bfd7f28554526ff1ac2b70cf55691  sim/testsuite/sim/mips/utils-mdmx.inc
+57c3faff3153e89fb5d49b236040fc41  sim/testsuite/sim/mips/utils-dsp.inc
 23824f277c77ae50de4132ab689dc997  sim/testsuite/sim/mips/fpu64-ps.s
 644244e2904ebf08a75b5b4807896a64  sim/testsuite/sim/mips/basic.exp
 4a5328391392623d88e0157152bf5cdc  sim/testsuite/sim/mips/hilo-hazard-2.s
@@ -8931,14 +9211,40 @@ f535e37ff22fed8de46db57afce1f650  sim/te
 02725ea588520413b03083318e76a5ba  sim/testsuite/sim/mips/mdmx-ob.s
 010a7642804f84eed2c5d95c2e113505  sim/testsuite/sim/mips/hilo-hazard-1.s
 a7cc9277eb6ba36b256b2c80492d102d  sim/testsuite/sim/mips/hilo-hazard-3.s
-9c77e7684f32acafa8244b37c8ffa61f  sim/testsuite/sim/mips/hilo-hazard-4.s
+5caef182e1ec130ef79469512ecae655  sim/testsuite/sim/mips/hilo-hazard-4.s
 38b28c4bc2a1948a9ca7ba32172f322c  sim/testsuite/sim/mips/ChangeLog
-8cdfafc67877752047bbde6d66caf569  sim/testsuite/sim/mips/testutils.inc
+7e0742d4101463ecf96f787c339af09e  sim/testsuite/sim/mips/testutils.inc
 e0d825bc919d1cecf677c3a680ae289e  sim/testsuite/sim/mips/fpu64-ps-sb1.s
 47554daee3ce73d879f549f3fc8397df  sim/testsuite/sim/microblaze/allinsn.exp
 35474b7bedfc80b13c1b0c8e172de7de  sim/testsuite/sim/microblaze/ChangeLog
 0174e7e6ceb6e4e39aad3572f156a143  sim/testsuite/sim/microblaze/pass.s
 46ad68c64909bc50c10ce61f0d36d668  sim/testsuite/sim/microblaze/testutils.inc
+412825e6f4f8c49acfbbb190f0dcc366  sim/testsuite/sim/or1k/add.S
+4786d0de06cd00528175333e51af888a  sim/testsuite/sim/or1k/mfspr.S
+b12ad6038c4f9a192c63106c1512e116  sim/testsuite/sim/or1k/or1k-asm-test-helpers.h
+bbc63947fe5d3bbad3584a8978b10f4e  sim/testsuite/sim/or1k/or1k-asm-test-env.h
+8f422e892474d4653e169c33418f3f76  sim/testsuite/sim/or1k/or1k-asm.h
+1a34a6c7734eab07607e7f6a302c7a1e  sim/testsuite/sim/or1k/flag.S
+316631ee5bd800d186587e8826778cbb  sim/testsuite/sim/or1k/shift.S
+bb1ff721d7b79f998f568e571b59c3e1  sim/testsuite/sim/or1k/fpu.S
+74fd790c6d1e6dcf8ca433d4de64cd63  sim/testsuite/sim/or1k/load.S
+7fbb7e720eb8a4e81a45c8fc922c270e  sim/testsuite/sim/or1k/mac.S
+e3da61fdc7246f6a18e5813e9f1e1581  sim/testsuite/sim/or1k/xor.S
+9b8641fdeaded26f2f0265a0749f3d68  sim/testsuite/sim/or1k/and.S
+0aef2dd30ebe2327a7eca22a3775ea3b  sim/testsuite/sim/or1k/mul.S
+bb8587f0c3e5c575a90a4b2b5e0b4452  sim/testsuite/sim/or1k/or.S
+b8cc48213c84449999b2a15b93d4dcdb  sim/testsuite/sim/or1k/spr-defs.h
+5cda502aeb99b4b6bfcc10ec4f576f94  sim/testsuite/sim/or1k/ext.S
+05cea00c97c8bc0938bbae4cc6437e75  sim/testsuite/sim/or1k/or1k-asm-test.h
+a6968d95c76c3876dddac2373eee3c50  sim/testsuite/sim/or1k/div.S
+da92abe323fb799cf2732d67009c0abf  sim/testsuite/sim/or1k/or1k-test.ld
+e907b4aaac7939910fdc9881a1dfe80d  sim/testsuite/sim/or1k/sub.S
+49e69beb14335e80727cb920595d7277  sim/testsuite/sim/or1k/basic.S
+235a165dd4f91b82eed42b12dcf2fe7a  sim/testsuite/sim/or1k/ror.S
+242937bb6ab61aeb6c92933f9618029a  sim/testsuite/sim/or1k/ChangeLog
+fbe34d7b0e3d035eb97a9688841c4f6a  sim/testsuite/sim/or1k/jump.S
+cab297342e984efdba11bd9dae1ec15b  sim/testsuite/sim/or1k/alltests.exp
+9a46ee0e5925f4ea5210585d1557d5d7  sim/testsuite/sim/or1k/find.S
 a6b14341bb166125b02d58f2236cc18c  sim/testsuite/sim/avr/allinsn.exp
 90c1608fefd22ad6125d1da24d83e2c7  sim/testsuite/sim/avr/ChangeLog
 36ed650ac92cb0cb94abd553604742e7  sim/testsuite/sim/avr/pass.s
@@ -9274,7 +9580,7 @@ d74cffc2804266c55d97d7b03388e421  sim/te
 ecbeb52370b71fd859dc5f48b2bde71e  sim/testsuite/sim/cris/hw/rv-n-cris/quit.s
 3073a96241c996d1c0c68974914f74bf  sim/testsuite/sim/cris/hw/rv-n-cris/trivial2.ms
 dbe2031bb4db0e18eb8b262a35576545  sim/testsuite/sim/cris/hw/rv-n-cris/irq1.ms
-82ae3aa3814d4640f8ba6b48fc32299d  sim/testsuite/sim/cris/hw/rv-n-cris/rvc.exp
+ac3986646e094751523a96ce4bf4277d  sim/testsuite/sim/cris/hw/rv-n-cris/rvc.exp
 f6d32608623f87d96663d265b179fb6f  sim/testsuite/sim/cris/hw/rv-n-cris/trivial4.r
 c9091f1850cd8db0e2d3f3696e91054a  sim/testsuite/sim/cris/hw/rv-n-cris/testutils.inc
 a2452f548d0fe6d247d6a5b6b4d62721  sim/testsuite/sim/cris/hw/rv-n-cris/wd1.ms
@@ -9391,7 +9697,7 @@ c173fb572b6df495c772e07f5363d46a  sim/te
 bd42a08cc8373b1308928957194e0fec  sim/testsuite/sim/cris/asm/andq.ms
 1cb26c9bde7c3993c284d50c6720f91a  sim/testsuite/sim/cris/asm/movepcb.ms
 4afaec581991cef7a06f93749c270620  sim/testsuite/sim/cris/asm/x7-v10.ms
-7843da9696352313b4b01371bed54617  sim/testsuite/sim/cris/asm/asm.exp
+bc837d8c7b6dc343b22ce24fd1240d74  sim/testsuite/sim/cris/asm/asm.exp
 5697dbd11faf9c4ae8d1ac633b1bf571  sim/testsuite/sim/cris/asm/opterr5.ms
 0789486ef7e7e48f0d011b6753e0a61a  sim/testsuite/sim/cris/asm/raw12.ms
 0324485cfaaf9118b075dfe3c7b1e3db  sim/testsuite/sim/cris/asm/tmvm1.ms
@@ -9530,7 +9836,7 @@ dedbe73fd0801fd79e3926d56d5d3b69  sim/te
 498cda002f91b397e6317146f285ca85  sim/testsuite/sim/cris/c/sig7.c
 749c4a65acd72ed14fa1ac3b2cb21028  sim/testsuite/sim/cris/c/gettod.c
 e91673e9386c7e482814039f1fe08e3a  sim/testsuite/sim/cris/c/uname1.c
-88d5b129caf77b4ab14ce23f09a66ba8  sim/testsuite/sim/cris/c/c.exp
+779ba1cbf054c980179e3d9c4fa3813f  sim/testsuite/sim/cris/c/c.exp
 3b8aa26ae0d326bc2f6c5e7b6b0d97df  sim/testsuite/sim/cris/c/readlink5.c
 8d9ec2d8e98873231644fd2928eedd11  sim/testsuite/sim/cris/c/getcwd1.c
 255e7480e65cb422a35a979131718266  sim/testsuite/sim/cris/c/readlink11.c
@@ -9644,14 +9950,14 @@ e72c1ba5c42bc26baf3997a515d411dc  sim/te
 f6119ae18fa0133c2c9818b18e01ebc6  sim/testsuite/sim/cris/c/kill3.c
 88553eaf83703a59cbc8361643680b59  sim/testsuite/sim/cris/c/setrlimit1.c
 bd5bc121e85df515345f34f12c3c294d  sim/testsuite/sim/cris/c/sjlj.c
-751fc509c858cb8e6d6ad94355d7ed5c  sim/testsuite/sim/m32c/blinky.s
-a924e8a6322dcfd04914dc9336167426  sim/testsuite/sim/m32c/sample.s
+b5c8decc2cde8fccd2d382f027d9f20e  sim/testsuite/sim/m32c/blinky.s
+a4d57765d723bf7f277b71cc6417c776  sim/testsuite/sim/m32c/sample.s
 ee2e2048ad3b20e96eacce714c3eeff8  sim/testsuite/sim/m32c/allinsn.exp
 d789e5d511725b1d26f262bb1e5f84cd  sim/testsuite/sim/m32c/fail.s
-d8e86ae39c960bb8c28915ed251a52a1  sim/testsuite/sim/m32c/sample2.c
+c282d2cb43b9fa397f281738966f14a5  sim/testsuite/sim/m32c/sample2.c
 8462b9b309b80233a69359cd1570f186  sim/testsuite/sim/m32c/ChangeLog
-ef84be05401189d3bc71c934a2729693  sim/testsuite/sim/m32c/sample.ld
-a55d939f2146c1d49ec6b1dbd35ca72b  sim/testsuite/sim/m32c/gloss.s
+67e5fc63da0c92aa7ff88f2ce414201f  sim/testsuite/sim/m32c/sample.ld
+6de579bf75ff58ce0629c7d08de917c9  sim/testsuite/sim/m32c/gloss.s
 20c6539a7e7b89068eaa9b6966db0ca2  sim/testsuite/sim/m32c/pass.s
 b3aa23513fe4ddda7a485917bf44cc88  sim/testsuite/sim/m32c/testutils.inc
 d863c2fc17c8b7509aa0996e8a3f15b4  sim/testsuite/sim/m32r/cmp.cgs
@@ -10792,7 +11098,7 @@ e01849a2a91f6a30da3b9580bd8f40c4  sim/te
 c8756b053a5d9e80829d352796598ea4  sim/testsuite/sim/m68hc11/ChangeLog
 531db82ef6fbeb05b9681fd97cf0adf3  sim/testsuite/sim/m68hc11/pass.s
 d4a4dc202b50cef88186c345fa60f24c  sim/testsuite/sim/m68hc11/testutils.inc
-a0867e9aea69434e7395fc9bcdbb1577  sim/testsuite/m32r-elf/Makefile.in
+b197ad37eff9ed82fb13a3d7dcdcfc5d  sim/testsuite/m32r-elf/Makefile.in
 aeb9f246be0c025b69dcf144b916ce33  sim/testsuite/m32r-elf/configure.ac
 61aac381a61d722e21e84faa6146d7be  sim/testsuite/m32r-elf/loop.s
 fdcd1bf835b2c2a0ce2ec539624e2a6c  sim/testsuite/m32r-elf/exit47.s
@@ -10800,7 +11106,7 @@ d855cd1f7a63aa5913126e4c9cbbdca4  sim/te
 36e51fd3fa445f63573cffef4da15282  sim/testsuite/m32r-elf/configure
 0f367d89ae3bfb9857b54ec9c8d5331f  sim/testsuite/m32r-elf/ChangeLog
 b113c0bd55532c0b2c0000ed9d1ad2e2  sim/testsuite/lib/sim-defs.exp
-2c76de9f42d4db0a433d0c1d9b38b950  sim/testsuite/frv-elf/Makefile.in
+175f91fa099084a872b8e8d81cdbbb3f  sim/testsuite/frv-elf/Makefile.in
 ad3cb74cb4f5e1145c323d436230b3f4  sim/testsuite/frv-elf/cache.s
 aeb9f246be0c025b69dcf144b916ce33  sim/testsuite/frv-elf/configure.ac
 02ebc2d23f1397660d56c21d6a0866c6  sim/testsuite/frv-elf/loop.s
@@ -10809,15 +11115,15 @@ cc16675e19f20d246b81ba1aa64e2c05  sim/te
 36e51fd3fa445f63573cffef4da15282  sim/testsuite/frv-elf/configure
 b03f73b590c393cd710f753106cd5184  sim/testsuite/frv-elf/ChangeLog
 e30b4c8b1165f133ffd45b28034a33a7  sim/testsuite/frv-elf/grloop.s
-a2519c01c6d9de9dbc8e1975d31b898e  sim/testsuite/configure
-833f047dbf822f6fd4a645688aca6c6e  sim/testsuite/ChangeLog
-e04b2f9a0f63b89519dbd888173490a3  sim/testsuite/mips64el-elf/Makefile.in
+9b69bb295d5d4913ead3b07b70838753  sim/testsuite/configure
+8125b34e96a1751a078ecd537b1a6068  sim/testsuite/ChangeLog
+89126451f8ccabf427d2079823869725  sim/testsuite/mips64el-elf/Makefile.in
 aeb9f246be0c025b69dcf144b916ce33  sim/testsuite/mips64el-elf/configure.ac
 36e51fd3fa445f63573cffef4da15282  sim/testsuite/mips64el-elf/configure
 4448a565fade03a70e100fb18519a9bd  sim/testsuite/mips64el-elf/ChangeLog
 266aa2fe095d30aad29b83c25851971e  sim/testsuite/d10v-elf/t-ae-ld-im.s
 ec7bb92d79cec389c2cf4685d0c91150  sim/testsuite/d10v-elf/t-slae.s
-c716edd5f57575e22750968efed2b820  sim/testsuite/d10v-elf/Makefile.in
+b7240c41d1658972bf858968b47e9ea6  sim/testsuite/d10v-elf/Makefile.in
 2c65c61ce821576fd7642ae775e053ee  sim/testsuite/d10v-elf/t-ae-st2w-i.s
 d68929f5405fbc0fa82b417d61e8389c  sim/testsuite/d10v-elf/t-rep.s
 c52f1cfa2ba8e7eb55aa93e564a0164f  sim/testsuite/d10v-elf/t-ae-st-i.s
@@ -10868,60 +11174,60 @@ be230dfdf2fc8a9548a086fd285ea00e  sim/te
 655e71f960343e657e230eba7ecb5f61  sim/testsuite/d10v-elf/t-sp.s
 24adce9358d8640ca6ae226ecbeb41c7  sim/testsuite/d10v-elf/t-mac.s
 744e0ee2abcec900b154f72ccf20434f  sim/testsuite/d10v-elf/t-mvtc.s
-5e5b59b89e8ebc478bed97cc7bdd142e  sim/avr/Makefile.in
+7e846d389d0eeafe17bacfa2b4aea0a7  sim/avr/Makefile.in
 964440dbdf931834e8ea8542008fd154  sim/avr/config.in
 efea71bd9c04da6a2777a1190acbe328  sim/avr/configure.ac
-f034e6d2deda7a041d354f7ab0c04feb  sim/avr/interp.c
-4f66c9b86e3fb13e16f5dc71216b7f68  sim/avr/configure
+2bc7d6a2639e02391422085e1eeaa078  sim/avr/interp.c
+bf1dfc5b21dc70f1aee3e5465f14fee0  sim/avr/configure
 94500e8b65d9332dee333844d5522a02  sim/avr/aclocal.m4
-cddfa75b0b492221e1560031a3c2952d  sim/avr/ChangeLog
-177bd8ad435390dc09e24a2d6b9231cd  sim/avr/sim-main.h
-6e96396af3cfc37575df08d99d0ffdd5  sim/mcore/Makefile.in
+f7fdcd9476a22c222329703588c3fe52  sim/avr/ChangeLog
+ef408ad5cc564dca2884a30a837e310a  sim/avr/sim-main.h
+77960feca8dc7f8100a93d1712402bce  sim/mcore/Makefile.in
 964440dbdf931834e8ea8542008fd154  sim/mcore/config.in
 9aedeeeb3f292ad0e1f72f0a0fde3982  sim/mcore/configure.ac
-a172a7a90515a8c762b12548b406ffc1  sim/mcore/interp.c
-b910e910448fec152700a56fbb1f828f  sim/mcore/configure
+e8ed624504b6deb8b5390fab4f385daf  sim/mcore/interp.c
+b9e9b0bc8d824dce0ccf336f3a024647  sim/mcore/configure
 94500e8b65d9332dee333844d5522a02  sim/mcore/aclocal.m4
-4bb327056e54f00206d9f65232c81786  sim/mcore/ChangeLog
-e2b46cb5d1e707fd0c3fda2d366c27d4  sim/mcore/sim-main.h
-5ac5c455ec2d65acf9132d405eb1502a  sim/lm32/model.c
-fe0540a62a84d95081338adce49b5479  sim/lm32/dv-lm32cpu.c
+199b9d7620fd06d6fdb11531783d8553  sim/mcore/ChangeLog
+e3581c52e5bce87d04f071d8f5b5d730  sim/mcore/sim-main.h
+a597992f5c445869cdff51b2bbd37bb5  sim/lm32/model.c
+18a86ecdd7607522350635c31584de3f  sim/lm32/dv-lm32cpu.c
 902545398d9eb957f15bf82b30b4b50d  sim/lm32/Makefile.in
-6bbc25d366c0b4d27459530e67b962a1  sim/lm32/decode.h
-14f86aaaa2549c0eeba0655e8e6527a6  sim/lm32/lm32-sim.h
-ba5591903df61396d273139f6da50ace  sim/lm32/cpu.h
+4e869adbfd51fc70056854e0f89f05a4  sim/lm32/decode.h
+f575bbe69c2390075ebb1ba592e56dfc  sim/lm32/lm32-sim.h
+9853b22db1a66b37baf7d96dd1a9cf89  sim/lm32/cpu.h
 92a6cb0bac20780f1cbd0c25cc6ca10f  sim/lm32/config.in
 f3d36a1036375501c7926d3742570a72  sim/lm32/configure.ac
-346af4e5a733ebd64ec49f958fc75883  sim/lm32/traps.c
+6a3f94d988ab02769f33c2a60c14af90  sim/lm32/traps.c
 06c872ecef34e2b9db7fe98547b9adff  sim/lm32/mloop.in
-8553a9b6b9754c11dd3124498fbcbe0f  sim/lm32/lm32.c
-a39c877f9647bf5238adb2bc0f15a006  sim/lm32/dv-lm32uart.c
-61790a9d808aeae2468121288ce255c1  sim/lm32/sem.c
-fefb5180631ecdf9801e79f626bda316  sim/lm32/user.c
-1bc0ae9bff6dcd1ae0ee737665f3b7f9  sim/lm32/configure
+de8952792c5beba20c26acf57914a03c  sim/lm32/lm32.c
+1fa624fcac5d6ac1835a0344ddb35bef  sim/lm32/dv-lm32uart.c
+57426bccf9c2596f3134a4d1de436dda  sim/lm32/sem.c
+225cd65fc670986edb16b2b0722c23be  sim/lm32/user.c
+3e8b67604175fc44c4bf51f927220ce2  sim/lm32/configure
 94500e8b65d9332dee333844d5522a02  sim/lm32/aclocal.m4
-9a4002df83a8d7679d892e15c61ec77d  sim/lm32/arch.c
-38c1e7112250c8ebb64a2225ee4be3bd  sim/lm32/arch.h
-beae7b2ac2185d931cf238583eb884fc  sim/lm32/cpuall.h
-b9f3271c96aad88f80a89d08f56a0ac8  sim/lm32/ChangeLog
-2c2a280a4a402dc560be697c01512cfd  sim/lm32/cpu.c
-6d55e2a01c0273cdb6660b850a88bcc0  sim/lm32/decode.c
-97d4def27cb1050bac9a02c44549d284  sim/lm32/dv-lm32timer.c
-1d0a0860f3c4e112b8e7881e57f201ae  sim/lm32/sim-main.h
-7649b5b1954730d14193474e0f2c479a  sim/lm32/sem-switch.c
-7cecdc323e87f0c7551dc282c30a2bf6  sim/lm32/sim-if.c
-d39968f27b144f623a95a1c498ab2510  sim/cr16/Makefile.in
-9959cdc2f7ebdab3bf5a79e60f3c0828  sim/cr16/simops.c
-de31057cfe65c5d83de27c380708aa2d  sim/cr16/cr16_sim.h
+76e8b122e5f8cca3b6832efb091ea3ab  sim/lm32/arch.c
+6d2051697e94ed2827dd095313d8d672  sim/lm32/arch.h
+78091c70d777eaac46be666e43d86a86  sim/lm32/cpuall.h
+d85c8c186dbe1aa356ede332cf9f92fb  sim/lm32/ChangeLog
+92fdd847100ecf748f5aa8a8f6649793  sim/lm32/cpu.c
+4a8787ba2c2b0557ff37453dbbe6056d  sim/lm32/decode.c
+615fe507d68b2ee06602641430b38840  sim/lm32/dv-lm32timer.c
+253cf5ba651a1abe920fa681f63ca605  sim/lm32/sim-main.h
+82cf0284a5e4256e3764e72aa0c35681  sim/lm32/sem-switch.c
+3ce428ac798eb6233c56dc3df6df77a7  sim/lm32/sim-if.c
+9e246cbf11ff1109170024252a026552  sim/cr16/Makefile.in
+e6d095d48ceab6e1663ce6c79fc0beee  sim/cr16/simops.c
+dc52869edda505f625941fb19c1a4f32  sim/cr16/cr16_sim.h
 964440dbdf931834e8ea8542008fd154  sim/cr16/config.in
 21383288c6aaa544783c5b1b8bd62a58  sim/cr16/configure.ac
-57d9133775f997e6dea734ecde20abae  sim/cr16/gencode.c
-850ae1de6638da91abb1cf275acb1e86  sim/cr16/interp.c
-91d1e732d7aa70c802d1b1eaaca96872  sim/cr16/configure
+d47c0b6a843ee19d4518ea7d291a42a8  sim/cr16/gencode.c
+42d196f40d6fa367ff9d7e30d1f55bec  sim/cr16/interp.c
+2f09cfa85c6867ea1342eae2480ca046  sim/cr16/configure
 94500e8b65d9332dee333844d5522a02  sim/cr16/aclocal.m4
-f9af204aff923df9d0d63da04153043a  sim/cr16/ChangeLog
-5bbd01df61ce4569f24e7540169891eb  sim/cr16/sim-main.h
-96e473a12cb10110e94278c1dcf8003e  sim/ppc/e500.igen
+df830fe3c2195af11d2fc229a4116c92  sim/cr16/ChangeLog
+108a0dc61b94bdbdabd56947801ba642  sim/cr16/sim-main.h
+cfbb96f17616168275fbadbc4b057d9a  sim/ppc/e500.igen
 386b3912ba8b7e2502e9b6a3335dab80  sim/ppc/basics.h
 71d98d8e0be2632eb25e79bb4f7982b1  sim/ppc/hw_pal.c
 f1205db25965eed924a06c3a75d48480  sim/ppc/sim-endian.h
@@ -10935,7 +11241,7 @@ b9249eba98032433f10d0f0fb1cbabfa  sim/pp
 35b4efd703cb6ab5cd3fa84f768498ce  sim/ppc/os_emul.h
 29a6c18565b406e370f5d3fce8278714  sim/ppc/ld-cache.h
 82701b2c4f7fc8528a745be30ccabc6c  sim/ppc/gen-idecode.h
-009032900d491282db6e314fb3d99435  sim/ppc/gdb-sim.c
+9561b8941aa369608aaed192104286b9  sim/ppc/gdb-sim.c
 820ecce94ba5cc4b5dedd30bbc07e36b  sim/ppc/sim-endian-n.h
 1128a696383d5f5a536d86720b9e3f21  sim/ppc/table.c
 4950f8682b5dbfeebd61feff873ca2c6  sim/ppc/sim_callbacks.h
@@ -10967,7 +11273,7 @@ cb29959db2f92c8b4323cc8e8d4d53d0  sim/pp
 9386f74bff5fd3a25d4cea3f6cb22bda  sim/ppc/.gdbinit
 2d0f82b823fe273d046cfc337fe7c148  sim/ppc/vm.c
 477642f7d41346704a746fc8c65faa7d  sim/ppc/filter_filename.c
-490a9baed8eb2828a10e5621372a63a1  sim/ppc/psim.texinfo
+60cf9533fd87c8bb8459d19edb47008f  sim/ppc/psim.texinfo
 8e019657ad96f38584486921e012ceee  sim/ppc/events.h
 70f65f76fd8dfe5d4b30379d840ee025  sim/ppc/INSTALL
 ff28ed7f8ae18dca9b6db08f8944d882  sim/ppc/std-config.h
@@ -10979,7 +11285,7 @@ d632a1f4134488cc306b566a3774b068  sim/pp
 bfd43dd96dabce665dfe37a7957fc1a2  sim/ppc/mon.h
 5146ee46bebabf8c97f85f5984cdb349  sim/ppc/bits.h
 d3c236878c5c39d9ea37028e4a51f8ef  sim/ppc/corefile-n.h
-e038c5db2c298fe1a09f07f8ac31ea9f  sim/ppc/e500_registers.h
+e478a32b920c802587733347ce4e59a3  sim/ppc/e500_registers.h
 9acdbec7116b5f3c0f505b021f497efd  sim/ppc/events.c
 cbc18f080cae61f272af1c475bd6e144  sim/ppc/vm_n.h
 8d219ea9c96d9d4baa4329926e2f406e  sim/ppc/sim_calls.c
@@ -11001,7 +11307,7 @@ d853c371650b4299478b6e4dcbc172f6  sim/pp
 bf2c48c3dc4c1fea71ac72aa1dfda43e  sim/ppc/ppc-instructions
 7ef1469cfb0809ffbafba1a6f43cc98b  sim/ppc/ppc.mt
 4888acb242b870aa0e825e9e54aa1298  sim/ppc/idecode_fields.h
-165519d32fe4d1caf02f913a9af69350  sim/ppc/altivec.igen
+0caa780d15d3d407a1065d2b87893110  sim/ppc/altivec.igen
 617c363f63c7bdcfb1a986bad9342b9e  sim/ppc/table.h
 01991a6ffa05c90b7f2695e998a9a4fe  sim/ppc/psim.h
 58dd84b3f0e04bfd136e905198d27bd1  sim/ppc/cap.c
@@ -11018,7 +11324,7 @@ dfbacfc1474588e6305d5f3c016d7f10  sim/pp
 55ca817ccb7d5b5b66355690e9abc605  sim/ppc/COPYING.LIB
 df6ce308b6164a82f216e6dc70667ced  sim/ppc/gen-model.h
 ac8af167df5e2cc9c80ab1bb813764bb  sim/ppc/emul_unix.h
-46b75bc6ac5a4f53f3d758c60cd997f5  sim/ppc/dp-bit.c
+cafa0dabf0d206be630c333994e46bdf  sim/ppc/dp-bit.c
 9a0ecd71253cc8e01812639dcfe6385f  sim/ppc/emul_generic.c
 c810423038f6e18c0b02a82c710b60eb  sim/ppc/configure
 9e8810a61d4a6fa162efcf8c18061f26  sim/ppc/emul_generic.h
@@ -11027,10 +11333,10 @@ d41d8cd98f00b204e9800998ecf8427e  sim/pp
 b8a327a67a1e3f597b26d3e6c23eaa3c  sim/ppc/double.c
 47924a670d88e248786278852e0fdec3  sim/ppc/lf.c
 3177c0ec5341f19e21b76f11cbd5a7bd  sim/ppc/filter_filename.h
-2fd81e7420be6ce3525ae21478db8899  sim/ppc/altivec_expression.h
+772eee493631f36184cfb82b36dedfe0  sim/ppc/altivec_expression.h
 3d1bcfb1e025467f91084fb8c21c08c8  sim/ppc/interrupts.c
 930feb4ba56698d68476e96ad4bd3be1  sim/ppc/ChangeLog
-ed6ed6a265fef66bb4ebd45cfb0697a4  sim/ppc/e500_expression.h
+a7d87b28283aaddaffb673627ee9e49f  sim/ppc/e500_expression.h
 0803bec27a88fc019b6b1bfe8dbf9dd2  sim/ppc/dc-test.01
 cc82ede0335a4e5ed3867e1dd5f9dae2  sim/ppc/emul_netbsd.h
 cc3fca83551bf130b8eb6a464f875b31  sim/ppc/gen-itable.c
@@ -11040,7 +11346,7 @@ cc3fca83551bf130b8eb6a464f875b31  sim/pp
 696656812b714297578ffc761fcc81dd  sim/ppc/ChangeLog.00
 d23b4930c3ef75827e0479c9eb1e3620  sim/ppc/corefile.c
 d245825bb9584ccf2a8300d55d3957a2  sim/ppc/gen-itable.h
-71629683907429fa7e27de7773f62005  sim/ppc/altivec_registers.h
+72ef25c1a0165b2d6ea0268970a6cf6f  sim/ppc/altivec_registers.h
 d32239bcb673463ab874e80d47fae504  sim/ppc/COPYING
 fd5f1a3237245e88494ee13149097c33  sim/ppc/gen-icache.c
 7936772f0485b1d307e5d6a7a43d1afa  sim/ppc/hw_sem.c
@@ -11066,192 +11372,192 @@ c9b315da4a3b61f05e47d495feb68e65  sim/pp
 92d51a0cdcad333fb57f115236e935d7  sim/ppc/emul_bugapi.c
 d83e9281376698706bead364f2bc0c9e  sim/ppc/emul_chirp.h
 7ae2d45d2858087f5f9efc56f6bebca1  sim/ppc/lf.h
-c648a70b40758f70ed9feac8e14c376b  sim/h8300/Makefile.in
+317994613fa8cb9ee99e660b3da65652  sim/h8300/Makefile.in
 a3aaffcc56fa65b1fa1c3ff4e63eaa6a  sim/h8300/compile.c
 e76052c753e5884d28491e61e9d73aea  sim/h8300/config.in
 addd9069b6cc7076e0797d0d755c2b10  sim/h8300/configure.ac
-483057f0eab2f5391dfe933dc05c1db4  sim/h8300/configure
+ecf94e2522d525f47764bb9bfe1a10ef  sim/h8300/configure
 94500e8b65d9332dee333844d5522a02  sim/h8300/aclocal.m4
-8a0b92572ecde444553abbae47a97b2f  sim/h8300/ChangeLog
+e9c6c6b57764d71012fbe0e3d1754589  sim/h8300/ChangeLog
 5a198f6b19aed858570b289330bf44f2  sim/h8300/writecode.c
 cfb96073c298b3ef87108655329547d2  sim/h8300/sim-main.h
-1d8e5223721724dae4c18abfa33962fb  sim/cris/Makefile.in
-87cf4135682909f98bfc76834466843c  sim/cris/crisv10f.c
-93a20f7f2ae47d302f0182256fc24543  sim/cris/cpuv32.h
-933534edf4beeebf304b15e425156b04  sim/cris/decodev10.c
-6ae11eed5979202b284210a8d315aed1  sim/cris/cpuv10.h
-6d6a050d472188e93c8f3fd95fd83e55  sim/cris/cris-desc.c
-7e9663ef35fcf6a2f275d94d8582dd2a  sim/cris/rvdummy.c
+13bc4208c3582b3d1093f783b2355043  sim/cris/Makefile.in
+79b34d595a572d3be7efd7978aef16a3  sim/cris/crisv10f.c
+1ecba42d144c75c742bd7d012f24ed2a  sim/cris/cpuv32.h
+e074b89bced4ab64f62088f54856c67d  sim/cris/decodev10.c
+ac268c077bc7892d6b1b01c73053b8f1  sim/cris/cpuv10.h
+98cc41e7e983235efed63c01c9814bf7  sim/cris/cris-desc.c
+fa98584f403ac16871d08d2fc1b330f9  sim/cris/rvdummy.c
 5c6fec48943dbf99de93c952fb3daa05  sim/cris/config.in
 6e5abb24a703f4d43d35aff01b36bc5c  sim/cris/configure.ac
-6d27005b72c0ad3a57811650c91de658  sim/cris/semcrisv10f-switch.c
-b0adbac53d533993921c9dac7a4531cc  sim/cris/semcrisv32f-switch.c
-1ecc628e9a89da1bf7c3e7d9e67304b2  sim/cris/decodev32.h
-fe54c8da1a803ad6007858f5aefcaa8c  sim/cris/crisv32f.c
-73393b24b216fcd619c38d00019d3831  sim/cris/modelv32.c
-a641d09d2effd5e39d899a74ce5098bb  sim/cris/cpuv32.c
-873629cb0f5d0b698145a8052e7369d9  sim/cris/cris-tmpl.c
-6409c39f8fb57a217c48a101865dc789  sim/cris/traps.c
-c51ad1f6b2a777d2ba61451e53e9e4a4  sim/cris/mloop.in
-44eab5f91353746d5758ba088fd88e8b  sim/cris/decodev10.h
-7f317994868fd304d488f1cedf318f1d  sim/cris/dv-cris.c
-07d5043429ae80147bde40b517c487d2  sim/cris/configure
-24dd5eccf2fec4f45ace21a9736ae3ec  sim/cris/cris-opc.h
+2a106020279d77076a7d5aaa4d4f4a74  sim/cris/semcrisv10f-switch.c
+221d53403cbaecb16fdcd1198cd03d60  sim/cris/semcrisv32f-switch.c
+8521d5934eb86e69156d89bb58534234  sim/cris/decodev32.h
+d27ffd43ba40429bf1f35d60144f7471  sim/cris/crisv32f.c
+8fdd34c9b7d52a4439494cbb1f66b84b  sim/cris/modelv32.c
+949fd91429f89604c4d765ae65f633f5  sim/cris/cpuv32.c
+07444d3f8b1f80c740884d6c4fb5781e  sim/cris/cris-tmpl.c
+07b00839b88ee5f3bf01b7a382461211  sim/cris/traps.c
+b47d40da665317ca835bf51e5f0b574c  sim/cris/mloop.in
+5842e5b89279b1e704cd1c06243c9037  sim/cris/decodev10.h
+03729219114356aea66f75c54b036544  sim/cris/dv-cris.c
+a5a0d95f34edb0dda64543ca03e1cd49  sim/cris/configure
+d014b5cdfd06f4627052c7a22c231a38  sim/cris/cris-opc.h
 94500e8b65d9332dee333844d5522a02  sim/cris/aclocal.m4
-fc6c9294bde25c9679cdc13a73d2773e  sim/cris/arch.c
-32d8675850fe265514d436a6c746d2bf  sim/cris/dv-rv.c
-5ac78fd363446258023c73f6aafce807  sim/cris/arch.h
-f4fcf74b78b02f241788b8468a0ef4de  sim/cris/cpuall.h
-e603a36222372aa8431890235d3eb677  sim/cris/ChangeLog
-f6c0d46a26c0a40bcb8f1be662b0a1e5  sim/cris/cris-desc.h
-8ffd30ff4945387b932ccb00086d11ac  sim/cris/cris-sim.h
-8582381056f651039ef034a6dfdb84dc  sim/cris/cpuv10.c
-7ca25c3beb008753cfc4df90d949e95b  sim/cris/decodev32.c
-55a7cbca71cd8afd8388ef17e02a0c72  sim/cris/modelv10.c
-eb750f94c6dc011e8f7e99855b9d1da0  sim/cris/sim-main.h
-2697ab739dab94fc37f9044f4e801c7c  sim/cris/dv-cris_900000xx.c
-6e11f37af297ab0100e9e7e89f91b3d5  sim/cris/sim-if.c
-ef2588afe138d0c4391c9c11b831498d  sim/configure
-1d431a229686bcee27ae75387ab3a590  sim/m32c/srcdest.c
-b150569413517232882f41a10066c7f1  sim/m32c/m32c.opc
-e60a9a6d8a494dc90702d3a72f20167e  sim/m32c/Makefile.in
-d2440b3bbd9b74926a41f3de86adaab2  sim/m32c/gdb-if.c
-a71b2ec61f2617180facb0be3d109f74  sim/m32c/safe-fgets.c
+e98cb540663b1e0bc5029e4c4ea72439  sim/cris/arch.c
+4c6a652114b12e1da893b0c1d614878a  sim/cris/dv-rv.c
+3cc5c3a61c662fd41ed6a0d2eca9080c  sim/cris/arch.h
+a6a5403c427a7e9cb859e690ee912b0a  sim/cris/cpuall.h
+e4cfa8e9affbfc6faff68de4b371537f  sim/cris/ChangeLog
+6b8c9fe14717d5a05b3d08f8a30e76ad  sim/cris/cris-desc.h
+68c04e2347637a8338564a54720a6979  sim/cris/cris-sim.h
+c730c5c16fcbb6ab0baa2fa910fa39d4  sim/cris/cpuv10.c
+394ff7bdfde43d320807e2f07dc398b7  sim/cris/decodev32.c
+6f4b8938731b0ca7a268dd5bd122d37a  sim/cris/modelv10.c
+97bfa3d2b542d9993c8c2eef26c251c3  sim/cris/sim-main.h
+d867b7b2d30b1ab813ab91d221982d95  sim/cris/dv-cris_900000xx.c
+1b5e154d06f98399ae47cc77a118708c  sim/cris/sim-if.c
+fd528a00caa6fe5f9498cd31e1871b73  sim/configure
+faf3e0477f6e5f6c2a36f9da7608cf97  sim/m32c/srcdest.c
+821c7c6e084f93f7cb7b05ffa66ae8a8  sim/m32c/m32c.opc
+bf15e79e8ebb9d1453453cb9f03eb57a  sim/m32c/Makefile.in
+e4b777707646fdaafdd48f90cb373145  sim/m32c/gdb-if.c
+d74cec3e8201f5b42754d7b02b21908e  sim/m32c/safe-fgets.c
 c511801f9070900f940358970fed1ed6  sim/m32c/timer_a.h
-0f46bdf65bae9a59735124fc5227de47  sim/m32c/cpu.h
-e05ae92a070f16e0458cc8a9a16e729a  sim/m32c/int.h
+fc1e68e74e098a387eff1efc7b202b03  sim/m32c/cpu.h
+05c60db1e448a0428bf7c806bf3ad5f5  sim/m32c/int.h
 1e2c3755673b5210d3a010b27562fa1c  sim/m32c/config.in
-b5024957104221e37526623e310b0588  sim/m32c/configure.ac
-55363dc7d9835a028ac67b107d659370  sim/m32c/trace.c
-4b78e480e66e0b575db23c0ceca1df29  sim/m32c/load.h
-53fe33d97a03a408dbb2af4d3ae1cc13  sim/m32c/r8c.opc
-b2495210a173190892906a9029399b01  sim/m32c/int.c
-b9c556c4e18407ed30b9bfc87b344ad0  sim/m32c/misc.c
-13614f99d3e2cfbcc167eb7792aa02d0  sim/m32c/main.c
-40fea959a6f210ce76be260fd44e9ca5  sim/m32c/mem.h
+acbaa2f422559ea35ff2b3daabb5c017  sim/m32c/configure.ac
+c42f4a4aa5d3fdd9492362279056a95d  sim/m32c/trace.c
+88a0dd5efa37f94f26dd1671990cb6e7  sim/m32c/load.h
+da6f1247240c7e6a9ccc0302bf2c8d05  sim/m32c/r8c.opc
+fcf7cbacd37913de37ff050d285c2999  sim/m32c/int.c
+b5c017a7a9ca7a791a078576e337e48e  sim/m32c/misc.c
+b3e216f12dc79e66d5a7403a283715fa  sim/m32c/main.c
+4b47076f572f6fab8fecba360effb48c  sim/m32c/mem.h
 24e2f861da06951620983b5a9ca6efe2  sim/m32c/syscall.h
-af5a7c22c5bee995463e74de9646c3f0  sim/m32c/syscalls.c
-bd543c75c90146e0d98ccc2bb31991c3  sim/m32c/configure
+8ae457e15e9b68a71213e3a6252cdafc  sim/m32c/syscalls.c
+96a551c86d03c14502b18f95aea05dc3  sim/m32c/configure
 94500e8b65d9332dee333844d5522a02  sim/m32c/aclocal.m4
-0e90ecc0e2531abfb02928d9efe3215b  sim/m32c/syscalls.h
-7ddd03f92d761c754608f193400a17c6  sim/m32c/ChangeLog
-55644809776dbbe5a6dca8609eedc0aa  sim/m32c/trace.h
-9fe57c3c637cf416227847d8777608b1  sim/m32c/reg.c
-dde6f61a20547187c09776d926b5a840  sim/m32c/misc.h
-f7faf6710755a069570a76f6aafc46d1  sim/m32c/opc2c.c
-5291de232ab3e4b6def66581daa640e6  sim/m32c/mem.c
-8e58fb4574b893063304ed7db3f315ef  sim/m32c/load.c
-78fda7dc88944625dc760c4826c53899  sim/m32c/safe-fgets.h
-e82f0128bfa8277702e30d55e7bd0035  sim/ChangeLog
-d32cec7974add87101930019545e9b4a  sim/m32r/mloopx.in
-d4225c85f07a86eaa64ad4f872b7127f  sim/m32r/model.c
-b7ba5fde4a95575c2d0679835019046e  sim/m32r/cpu2.c
-a27bac1963eafd872ac615c548c342fe  sim/m32r/cpux.c
-572d07e08de4a880e0fb6335e32b44f0  sim/m32r/cpu2.h
-d51ddb25f9284d07c1bb71aae6c1a966  sim/m32r/m32r2.c
-99f1d0bb898ef2c8a4849199a03979fb  sim/m32r/semx-switch.c
-d39703955d507d46ea62af5caded7da6  sim/m32r/Makefile.in
-a732e7cc402ce91f95396574095d6867  sim/m32r/decode.h
-ae4b9ed9fe6407c650b01cc8c75c2920  sim/m32r/decodex.c
-2258b06a2c826eed34429f77156254ed  sim/m32r/cpu.h
-2e16ebe933049155054094c56ace9ece  sim/m32r/mloop2.in
-c6c258a99f72f82e6561b26a7529fc67  sim/m32r/dv-m32r_cache.h
+1ba16e636f08f9dc4b0ea52117faec19  sim/m32c/syscalls.h
+29eec8e13a9ab5f77501faa6904d4725  sim/m32c/ChangeLog
+cf347c6b58cf26c8823496ec3f410ea1  sim/m32c/trace.h
+8664b81fa5099140bbc414d395473994  sim/m32c/reg.c
+77e7a1bbadea8da4592b1612ed004d05  sim/m32c/misc.h
+e0f079b68683b42c69d3b6f7155f42ad  sim/m32c/opc2c.c
+34bcb9589fe28755a72677133d0abd3a  sim/m32c/mem.c
+e26a2422f15f9a0c41617ca20cfe6b7a  sim/m32c/load.c
+85c1deb54c06b8ae6729098b6181879d  sim/m32c/safe-fgets.h
+cf10e022e78f2acf39212b778afbddff  sim/ChangeLog
+c6fa511752eae573df303b42a819db2a  sim/m32r/mloopx.in
+1c955c8ca2c9d777e91fb85ae39e1daf  sim/m32r/model.c
+e4e4e9b3b05c4cbaeb76c91be288dd18  sim/m32r/cpu2.c
+cf5ad5354de0605d59a79393ad17a557  sim/m32r/cpux.c
+b6bfc1dd0975b9f3b1e33719096534c5  sim/m32r/cpu2.h
+d4b696c5f2a26fdae6d3688abd259e7d  sim/m32r/m32r2.c
+abbbac21047f502c3428e93175718bb0  sim/m32r/semx-switch.c
+ecf9204907ea9cb4f0fbd12de911d4a2  sim/m32r/Makefile.in
+866fea63e94ec98672bb7a2784e44978  sim/m32r/decode.h
+02dbaec742d675fd74d7fe4bb50547af  sim/m32r/decodex.c
+7980ce341eab47e9c31df15085b5d240  sim/m32r/cpu.h
+07bbd6693ce044805d76a962d1dc4447  sim/m32r/mloop2.in
+a6a7083a2cff116c3b9a2926dc3c4c67  sim/m32r/dv-m32r_cache.h
 92a6cb0bac20780f1cbd0c25cc6ca10f  sim/m32r/config.in
 da67e779bc7957827d8deea4f0212fc4  sim/m32r/configure.ac
 23b6e82d29f42c31a097d431b0f73004  sim/m32r/README
-f1e75e0c8c592693ae108f17d4b20bd2  sim/m32r/model2.c
-70e29b9652526fc444c1b5742350a732  sim/m32r/traps.c
-60fa6f99b1af37786c17485c4ad1efa1  sim/m32r/decodex.h
-cf4bb964af24006c5939f2c9816c11e3  sim/m32r/mloop.in
-4a2207f9b5a1be18743f61178f277130  sim/m32r/modelx.c
+71389981e0c215d56acdaaae098d6ddd  sim/m32r/model2.c
+229178d8b1fb0adbb3023dcdb160e4a7  sim/m32r/traps.c
+f92a8d46534929e5cc997a886664148d  sim/m32r/decodex.h
+78f8d87d33285396749e7112ebb8750b  sim/m32r/mloop.in
+4ead247e3ad069934cc3f251a12cbc48  sim/m32r/modelx.c
 e401ce81778d171f79151b58eeef8bb0  sim/m32r/syscall.h
-421cd29348acafc18f98efd87d3e60b2  sim/m32r/cpux.h
-580324ba9b5e7b1b3fc428ec7e257509  sim/m32r/decode2.c
-36bcae69661231b48f3714a21320137a  sim/m32r/sem.c
-7aac54509dff2b8bc986d02e0f2c6426  sim/m32r/m32r-sim.h
-e5478206ca0778d113d1d8c57209b9f7  sim/m32r/dv-m32r_cache.c
-084c94e0ef033007ecfabb20fc40d269  sim/m32r/configure
+619411838d1f7eab7939b2d65041a7db  sim/m32r/cpux.h
+f4fce44acccb2fd2cb593ae660622bea  sim/m32r/decode2.c
+b77761a7009811c139958f7d13d91aad  sim/m32r/sem.c
+82a529f52526ae716a447086a163c005  sim/m32r/m32r-sim.h
+c72893bd3b859b0aa61698faa65340df  sim/m32r/dv-m32r_cache.c
+94255cd1d552e632fffcff088c3fb59a  sim/m32r/configure
 94500e8b65d9332dee333844d5522a02  sim/m32r/aclocal.m4
-fbf58cef643275c41e55b7725920e211  sim/m32r/dv-m32r_uart.c
-7dab0b01b016749dc42c7d72da034088  sim/m32r/arch.c
-eb109c5c70a3f9e1b0f7994e8264a374  sim/m32r/arch.h
-4ae3ea4394f0f3e3754799b48d438c63  sim/m32r/cpuall.h
-430864c3ebecd3c866ac59853ed9956b  sim/m32r/ChangeLog
-78dec5a9208ec89bf866dbc0f41ad22d  sim/m32r/sem2-switch.c
-6d37c582b08126ab65385136fab57064  sim/m32r/cpu.c
-d00ec5855b2e30c2f97d4b6822b49355  sim/m32r/decode.c
-9c93756a75e4af36c57a14de32136171  sim/m32r/m32r.c
-8f96ee6305a96c75c3018db96ab27c0f  sim/m32r/m32rx.c
-5217799209488ca4b2bfa2948095a659  sim/m32r/dv-m32r_uart.h
-d42dd8ed6401689e89053d424ace9d7b  sim/m32r/traps-linux.c
-c7e7ff2d74bf2d0fda9dcf7b1d8c6148  sim/m32r/decode2.h
+b0bbb075aaaf1ba9186da23a3b3798db  sim/m32r/dv-m32r_uart.c
+df1a42e032e84f4af5b941b9dbbc9751  sim/m32r/arch.c
+c622a9a7a759d2ac6b8e45b0b09562eb  sim/m32r/arch.h
+fa2b81d20a4ccb754fa339cbd37bf27e  sim/m32r/cpuall.h
+2b40ae2b97a48a97ef84375e6fce106d  sim/m32r/ChangeLog
+555b3e08bd02136f333a568ae1bcdd08  sim/m32r/sem2-switch.c
+58e2f9194e14aad700b0786b6f67a95a  sim/m32r/cpu.c
+e568b394362544cb19d4a680747b327b  sim/m32r/decode.c
+b2f4c35212f9637b9194881d9511803c  sim/m32r/m32r.c
+a9daa2a3702a88dc024ceba5e5a8d75a  sim/m32r/m32rx.c
+6bae212781244fb7ad6f4059ed68fc8c  sim/m32r/dv-m32r_uart.h
+f67bc1b4bb5e317e783b337846136da9  sim/m32r/traps-linux.c
+8f5f39393ecdc7e867a7f6fed76f2b4d  sim/m32r/decode2.h
 dc9f5ce67836f277be6d8842dcbe85b7  sim/m32r/sim-main.h
-b867a2d66e274c099e47cdc422c218e1  sim/m32r/sem-switch.c
-634d8cde1297e255fb923fe00dcb901f  sim/m32r/sim-if.c
-4fcf134d5a166e447dfbb0fd226ea8df  sim/mn10300/dv-mn103ser.c
-6ea8dfd213b05aa8e10d62d95dca1c1e  sim/mn10300/Makefile.in
+66c807886d8c59c4a90324fa3dae0a93  sim/m32r/sem-switch.c
+88e2a06b88dfb405584efe0aea3ada39  sim/m32r/sim-if.c
+f2c068b09526b973eca3690bbe9e27ac  sim/mn10300/dv-mn103ser.c
+c31669a528534607df46dc2799dc2882  sim/mn10300/Makefile.in
 c37a8063b25bb881b34e79630d4988b3  sim/mn10300/am33-2.igen
 266ed31907fbff2f9999c79f468512fa  sim/mn10300/config.in
 7f1c3ac5259ef5b9a4f95f5ba6ee6018  sim/mn10300/configure.ac
 bd023d9fab8152922898fdfd7c983e3b  sim/mn10300/interp.c
-f22a3983e51ad51383640ea64e100003  sim/mn10300/dv-mn103tim.c
+fda7fcce98218a9b90089f9910b1d6cb  sim/mn10300/dv-mn103tim.c
 a7335227cef936abda2f0c8402e79570  sim/mn10300/mn10300.igen
 e06d3d5148b90d05798fdeb1671f9b2c  sim/mn10300/mn10300_sim.h
-09cf5f4369ccaab6ae84971b628d41ee  sim/mn10300/dv-mn103cpu.c
-861df0f3b05abd753c3a71a31e4e3ad2  sim/mn10300/configure
+466a3655c14b5c268d44cd0056c223eb  sim/mn10300/dv-mn103cpu.c
+fe6d3b673c921346db09204d9fb5954e  sim/mn10300/configure
 94500e8b65d9332dee333844d5522a02  sim/mn10300/aclocal.m4
-c9cc21f933c4d10b088f2a7875522912  sim/mn10300/dv-mn103int.c
-20fd9e66b65ea10672802ecc6b9e9028  sim/mn10300/ChangeLog
-fe2d9355b8ca338de118123cba2bf861  sim/mn10300/dv-mn103iop.c
+0657f237bd722862fdab342c2ee81685  sim/mn10300/dv-mn103int.c
+4e06f442e7ebb9bdfacba51dd57bebfb  sim/mn10300/ChangeLog
+51642564f8e97f6dabe77bae303d6dad  sim/mn10300/dv-mn103iop.c
 9560a29b6c94d4955a447290ab5d050a  sim/mn10300/sim-main.c
 629e128406ad2397987d1481cf36aacb  sim/mn10300/op_utils.c
 ca37d532ba114a9504ebc9f569417a2b  sim/mn10300/am33.igen
-76f58ce64c3e86b4bd91ba81b412e25b  sim/mn10300/sim-main.h
+914d633f22d7695618c84717bde2fd55  sim/mn10300/sim-main.h
 a02c306411614c8de463bf278aac5d2e  sim/mn10300/mn10300.dc
-f8be8d7bdf584c589d4449db33b41e63  sim/erc32/exec.c
-28f2053116d956ccc02bbdd582814449  sim/erc32/Makefile.in
-a4ec3f2f15c05f0f705cd75b81c64072  sim/erc32/help.c
+6d4669783d059f4af0d2b27e23de8683  sim/erc32/exec.c
+318a826ed05407b58a751b4b18075bd1  sim/erc32/Makefile.in
+c627796e0b9e05474b234feee40d3455  sim/erc32/help.c
 72fececbe452af10d0adb31b037040dc  sim/erc32/README.erc32
 8d0b5212c0ce4ec7e01d67b407af3ba8  sim/erc32/README.sis
-3fc8138781b90d6984fbe9cd7d9c68a2  sim/erc32/func.c
-1c872ee5fe5e7b737ef474c16d45aeb3  sim/erc32/float.c
-59d5804dd4045b168fc16f35e5449c62  sim/erc32/sis.h
+fc24dfb9b52c76e103f621c39453df84  sim/erc32/func.c
+09e093c2773f9016ea174202836147f7  sim/erc32/float.c
+67b5b30039ef14bc0f2e5e15c6414665  sim/erc32/sis.h
 964440dbdf931834e8ea8542008fd154  sim/erc32/config.in
-b0472ad5d64abe9c88334e2749a3cd43  sim/erc32/configure.ac
-7d133ac899c321302871aedb14e44c3e  sim/erc32/startsim
-86652f703400b3ca30716239ccd2bf51  sim/erc32/erc32.c
+cbeb8528f051a7e516c4b3174bc184e0  sim/erc32/configure.ac
+53dea359a216bf32b24da38ceab1ad8e  sim/erc32/startsim
+a317bf293917ac978f81df996ae270f3  sim/erc32/erc32.c
 9f2cbd625dfef51b3d1162ba9dbb8a4f  sim/erc32/NEWS
-7ba899886061dd59da713de7e93fbf55  sim/erc32/sis.c
-79d6a5877aa4fbe13e6606c67ef3b7d8  sim/erc32/configure
-e509dd38cacafa77ed29c7dda3957f64  sim/erc32/interf.c
+188f5f363f4d29ed87d95280f53020c4  sim/erc32/sis.c
+1258b3f717bd77a52a662865246afaae  sim/erc32/configure
+69d18c82b0e82fd6816bb82c7c66321a  sim/erc32/interf.c
 94500e8b65d9332dee333844d5522a02  sim/erc32/aclocal.m4
-d96576cea0f66b49dc6ce923d1c62f12  sim/erc32/ChangeLog
+5bd01b17fd4b51a4a0f097fa09f1c291  sim/erc32/ChangeLog
 ce58de7fe1b8736ff94d663cb47bcf4a  sim/erc32/README.gdb
-9d20f16dd091c91a0453b784664e5232  sim/iq2000/model.c
-54728ea2c19c349e499e2d71e1779068  sim/iq2000/Makefile.in
-bef0b0c4a1cefd7dcb45471cfe65e828  sim/iq2000/decode.h
-2778239cdd62bd44d2f281c2c07daca9  sim/iq2000/iq2000.c
-b13c74c58631ed68a3239bc3f70c340e  sim/iq2000/cpu.h
+ee384f92176f7d3b58d7c93f7ac5b5d5  sim/iq2000/model.c
+52a92e1c917dd4900cf187ed4b4a8f02  sim/iq2000/Makefile.in
+11412844635bd5268141d1f17486bb38  sim/iq2000/decode.h
+32e04cc1097f1b24501b3adec8fdffb9  sim/iq2000/iq2000.c
+20eff73d4326b77bdb26df336aadacb4  sim/iq2000/cpu.h
 92a6cb0bac20780f1cbd0c25cc6ca10f  sim/iq2000/config.in
 737673b35190ff1290e1b77ff3acafda  sim/iq2000/configure.ac
-6da5629fb7916459d75ed88f2a39f8fe  sim/iq2000/mloop.in
-310a44786dc25036dce89ecb9c53d4d2  sim/iq2000/sem.c
-07775d6b35b6a4102d4f856d6d6030bb  sim/iq2000/configure
+4246da8920a54ff1bf690cfe5f565035  sim/iq2000/mloop.in
+bfdb8bdd66315b7f1e03bb8fb7bca6e3  sim/iq2000/sem.c
+c15368237319dbac2233a32e09d7a411  sim/iq2000/configure
 94500e8b65d9332dee333844d5522a02  sim/iq2000/aclocal.m4
-61c924de6bd35e49c6bb87ad35dacfcb  sim/iq2000/arch.c
-5ccef388647ec8370d61b3ed4cf69e05  sim/iq2000/arch.h
-f11febf825ea94d1792b43789698e906  sim/iq2000/cpuall.h
-eb104bea4d97b884d9650d510916874b  sim/iq2000/ChangeLog
-acfed2771815052c35c7629960323fe3  sim/iq2000/cpu.c
-53a0c26a495019f3d3726e8bbaf6eb9d  sim/iq2000/decode.c
+e74abee1ee603b8445438e9a508e7aa7  sim/iq2000/arch.c
+a16159f86261d7f59146a0a4632896b6  sim/iq2000/arch.h
+afcc8b33351203eb85c047b84ba87f15  sim/iq2000/cpuall.h
+4dd935840fe213f3a981b03036c1b94f  sim/iq2000/ChangeLog
+bcf9cc95cdc2401ad829bcd0787eb162  sim/iq2000/cpu.c
+1b63a4a882520369c9f8c405824795ee  sim/iq2000/decode.c
 3d783daedf05371ef79982c3944e2d5b  sim/iq2000/sim-main.h
-28cb97e80d23b052168e3ae252b56cca  sim/iq2000/sem-switch.c
-e09a522189ec3da9976bfd76e8cfd960  sim/iq2000/sim-if.c
+ced0b6d34d5fd16dc4b098dcc295ee45  sim/iq2000/sem-switch.c
+22ba3cfa5b8a29857e20c4d51f350526  sim/iq2000/sim-if.c
 b6e69eedb6360fc61b5d5bb482d202f1  sim/README-HACKING
-ba7c2fc75e85adce17a6195da9d68526  sim/arm/iwmmxt.h
-e389cee60a5e8b9c4b36adff1d4a1eea  sim/arm/Makefile.in
+15f9d1ff35954821b9c83f43608735e6  sim/arm/iwmmxt.h
+6bea3f22c3a07d4a408abe709ab4ca23  sim/arm/Makefile.in
 11df2e587b349a09a16286de5bbe3c56  sim/arm/thumbemu.c
-f92eae44bc757eca8075930cae868b49  sim/arm/wrapper.c
+942e813ae7af06c3a5c3a2f7234a6f26  sim/arm/wrapper.c
 03701bfdfbd35ac30572fb81bc255b2a  sim/arm/armemu.c
 964440dbdf931834e8ea8542008fd154  sim/arm/config.in
 9aedeeeb3f292ad0e1f72f0a0fde3982  sim/arm/configure.ac
@@ -11259,74 +11565,74 @@ a62a77605003de7a8ba75d8247fd77b7  sim/ar
 413128b9e2d0e352cd5fd5d2b01dda89  sim/arm/armcopro.c
 c4ed795d8dc06d6f8eade00f7540db80  sim/arm/armfpe.h
 1962b9f2ca398038033e6e62d5fa0905  sim/arm/armdefs.h
-ef9f5d9d47875d14591e1f2d994cb48c  sim/arm/iwmmxt.c
+99f99d9cab8e2927cc38bd436cfcd96b  sim/arm/iwmmxt.c
 68468963c3ef325838864f7216f70da9  sim/arm/armvirt.c
 46cac1156b87b55c6ac594921dba9f82  sim/arm/armos.h
-b910e910448fec152700a56fbb1f828f  sim/arm/configure
+b9e9b0bc8d824dce0ccf336f3a024647  sim/arm/configure
 94500e8b65d9332dee333844d5522a02  sim/arm/aclocal.m4
 094764c9d200b64d8715f1d3da494b3f  sim/arm/dbg_rdi.h
-0214fc5a0c19f9b68874c9825028bf6b  sim/arm/ChangeLog
+1b74e169746ed00b93ba59f8259cc4a1  sim/arm/ChangeLog
 45f7109e49ca9fbc7ba02c7380552958  sim/arm/armsupp.c
 ba916bda4bab6270d7dbacbee802374b  sim/arm/arminit.c
 d32239bcb673463ab874e80d47fae504  sim/arm/COPYING
-b5b62b795adbc446ada36b6b57cdf78a  sim/arm/maverick.c
+b6b6a3b81de52cef04d02f724fa83886  sim/arm/maverick.c
 843495b2b85c8316a43a2efeeaa3fb29  sim/arm/armos.c
 baea1fbca873f544abe03808cf41ebdf  sim/arm/armemu.h
-f6b42a66844455d6cb35937e67a887fe  sim/arm/sim-main.h
-de7e0a02d41e067545d31c7a5a4a0172  sim/bfin/devices.h
-a83b95d9d71878d34dc26f31efa3a8c0  sim/bfin/dv-bfin_gpio2.c
-cd9ab9e8a2c59219f88b3f5f10dfe07a  sim/bfin/dv-bfin_twi.h
-5c5433eb90f3beca78c5982734140e12  sim/bfin/dv-bfin_spi.c
-a1d13d3eb6a8f80be5b7f6e6ea821828  sim/bfin/Makefile.in
-8563195e897186cc0441079ad939ebad  sim/bfin/dv-bfin_pll.h
-d368acf4a50353759022f15573844877  sim/bfin/gui.h
-dff806bc10583245bcb1d876ea7363cd  sim/bfin/dv-bfin_mmu.h
-3a38ba003430e507b0117b09a373eaf3  sim/bfin/dv-bfin_jtag.c
-a610136bf79adef618517fa388fecae3  sim/bfin/dv-bfin_ebiu_amc.h
-fd2e603766954a99a6274fed024bcfef  sim/bfin/dv-bfin_rtc.c
-c8e52acf6bf44e844959a47874db20a2  sim/bfin/dv-bfin_cec.c
-b20dda0fdb8fde518b04d7ab9b68ddec  sim/bfin/bfin-sim.c
-2039674f742ebde87518a7ee8d70454b  sim/bfin/dv-bfin_nfc.c
+41e491a41654fc2050608927c3020dae  sim/arm/sim-main.h
+edb771a5390caed8ca7546b538c454a0  sim/bfin/devices.h
+7c40a485bf0ada6bbb31ea04c8563384  sim/bfin/dv-bfin_gpio2.c
+2aa4e5a86728607fe4ff946cf4f7e1c1  sim/bfin/dv-bfin_twi.h
+5b3eb47816cc49c760ad05720b9310bb  sim/bfin/dv-bfin_spi.c
+0db65eace5e084428cf883ff4e52904a  sim/bfin/Makefile.in
+be43f1c689dbb7f6e9d41c4599ad1cb2  sim/bfin/dv-bfin_pll.h
+ca9c200e57d29e71cc93cdcbb6ddc81d  sim/bfin/gui.h
+2cc2c0141713868836164ea35fffc330  sim/bfin/dv-bfin_mmu.h
+03bb85cd52f3f0217db8e37940b99262  sim/bfin/dv-bfin_jtag.c
+04c717a26b863dd1577ff07390428297  sim/bfin/dv-bfin_ebiu_amc.h
+1c84f143c6e279d4bf2bbdbbf688feca  sim/bfin/dv-bfin_rtc.c
+bcc6f0b491bd53a25fafc6bc6c5571cb  sim/bfin/dv-bfin_cec.c
+3b1d15c51d4f8fac3975c7e5f485954c  sim/bfin/bfin-sim.c
+06e771fbaa304f9e2b252aad0adc6398  sim/bfin/dv-bfin_nfc.c
 ca76017d507da4d0426138add4e0feab  sim/bfin/linux-targ-map.h
-c7aae6d41fec359d5b94c35b2ee12aac  sim/bfin/dv-bfin_eppi.c
-30fb0f4decb3e6cf8470b7e211fe9365  sim/bfin/dv-bfin_trace.c
+0e79e3f658dca63e6e090988b00dc934  sim/bfin/dv-bfin_eppi.c
+d5778456747669a289706f9858cfa5f1  sim/bfin/dv-bfin_trace.c
 180326797174a68128504945da73ff0d  sim/bfin/config.in
 dcbae4ff8a69f5fdf20094d642edeb99  sim/bfin/configure.ac
-64dbd1f4634b36b5598ecdd121f4659e  sim/bfin/dv-bfin_mmu.c
-25b227bffa1a23c2fa8e0099866cb69b  sim/bfin/dv-bfin_jtag.h
+4f080546018ef7642722239c2b6ac886  sim/bfin/dv-bfin_mmu.c
+4c58865a9eece8fae00b57c49ae18b22  sim/bfin/dv-bfin_jtag.h
 492427fc77b38896d10fe0d402d8033b  sim/bfin/linux-fixed-code.h
-2fd588d972ecdad3ca7a1819f25e1be9  sim/bfin/dv-eth_phy.c
-0941ab71669d34653b40b05503b15992  sim/bfin/dv-bfin_eppi.h
-daf3783278b00a5bc2a62bb3119fa0cc  sim/bfin/proc_list.def
-461d7f78e32830bb6183150b9911660b  sim/bfin/machs.c
-10cf3f24310bfe21e211a68c465b79de  sim/bfin/dv-bfin_wp.c
-b4df837ba6e1a95d98a3b9a657a54ddc  sim/bfin/dv-bfin_ebiu_ddrc.c
-82ff1f9ac05a122e67dd1b5345ad0b70  sim/bfin/dv-bfin_cec.h
-894fa8d757728995d4bcbdde8a786666  sim/bfin/dv-bfin_ppi.c
-70b4b903ef6f411190c4db7d164c7d6c  sim/bfin/dv-bfin_ctimer.h
-bbf8a6a8cc71010c4c962422d9c9bd08  sim/bfin/dv-bfin_gpio.h
-0f1bcd1a68ad3a399e0adce5bcc92ce4  sim/bfin/dv-bfin_ctimer.c
-14ee3168488dd4077106906ea20223dc  sim/bfin/dv-bfin_rtc.h
-3838865c7ff3272699856ab2c0cc471b  sim/bfin/dv-bfin_gpio.c
-b4e8431f88a7a31d85aaa7a34f800151  sim/bfin/gui.c
-2b9fc3bcaa08733ab787a4fe0b176072  sim/bfin/dv-bfin_ebiu_ddrc.h
-a5c66eb4accfe21f7de66add853c3459  sim/bfin/interp.c
-d676cdfb7ad3907aa9b5d4d79efaf60d  sim/bfin/dv-bfin_nfc.h
-dec265cf66d0456aeb78e7e886dbeeb5  sim/bfin/dv-bfin_pint.h
-5289aa932d75295542805e6203fac922  sim/bfin/dv-bfin_ebiu_sdc.h
-d7244b682309bb205c398583c7528378  sim/bfin/dv-bfin_wdog.h
-e2934ce7f4e3492381abaf04d8686abd  sim/bfin/devices.c
-995c3d896a742afc2a6c67ace39d972e  sim/bfin/dv-bfin_pfmon.c
-8b7889f9ff501b292e1409db52b2e45d  sim/bfin/dv-bfin_uart2.h
-a7c41a393fdf5cd3c592578b4c71cf39  sim/bfin/dv-bfin_otp.h
-93c9a389fc9d32bb429d2a3a9224d830  sim/bfin/dv-bfin_spi.h
-a6b433faea035503ea6cc5ab80efefe5  sim/bfin/dv-bfin_trace.h
-dbe4ad31bfeb130a5a1b94202f318655  sim/bfin/dv-bfin_emac.c
-9b67d1e5b8262ac118225d1694e443c0  sim/bfin/dv-bfin_ebiu_amc.c
-11a1cafd6afe90b3ec8aa1fcf8871927  sim/bfin/dv-bfin_twi.c
-c518a19b828ca83934fee37099735f9b  sim/bfin/dv-bfin_ppi.h
-93f42637b7fd5927b03a8bed4ef5d3b3  sim/bfin/dv-bfin_gptimer.h
-a1146ce0d5404a0d87413d6987bafe39  sim/bfin/machs.h
+0208b114d9664a92a0f13c3f1b23e6c2  sim/bfin/dv-eth_phy.c
+d5c3ea9b3de48ee4ce8ed078e6fcdcc1  sim/bfin/dv-bfin_eppi.h
+bb6ebb72ee61e9fb2bc27b769b5dea26  sim/bfin/proc_list.def
+ad0f5d6b45f225b5d0661d5683083b19  sim/bfin/machs.c
+c4bd3d8528eb614b72dfd0b2c573f228  sim/bfin/dv-bfin_wp.c
+11d3cc7a35cc3db4726040de6d93761f  sim/bfin/dv-bfin_ebiu_ddrc.c
+fb166e535ad89e458832ad25ff2a55d4  sim/bfin/dv-bfin_cec.h
+498b2cb2c678c2cd1d5808cc8dfe9010  sim/bfin/dv-bfin_ppi.c
+c53cf4b0e06e7017e18e33bf246819dd  sim/bfin/dv-bfin_ctimer.h
+fe2681a5d3d78589a793964ab5caea24  sim/bfin/dv-bfin_gpio.h
+f32d11ddfcf1f2f3e028be009f586bce  sim/bfin/dv-bfin_ctimer.c
+24d54eafa1ac6a4ff8bf20b5b9d8e452  sim/bfin/dv-bfin_rtc.h
+5da081672510a37284d2879244a4cfe2  sim/bfin/dv-bfin_gpio.c
+22618d44f339d817cd70d69b86031905  sim/bfin/gui.c
+1450b57e75a3ddc3ca3c0f6ec9e11c14  sim/bfin/dv-bfin_ebiu_ddrc.h
+c915726ac65729e20b8ea30b31a1ce1f  sim/bfin/interp.c
+f212b148b99a45f7fa46253b7a6c8532  sim/bfin/dv-bfin_nfc.h
+43ffd13807e0e402ec461b43ad6719cb  sim/bfin/dv-bfin_pint.h
+bc2ac98da690a9cc61d9db6db188c917  sim/bfin/dv-bfin_ebiu_sdc.h
+0a8b065aad662411dd87a77e0a742c9b  sim/bfin/dv-bfin_wdog.h
+d2f4c436315495ed2657c163e021af32  sim/bfin/devices.c
+6418fb322ad20e3404a9196204bbe69d  sim/bfin/dv-bfin_pfmon.c
+ae41c2b9d03f49be92bf74a54ce466af  sim/bfin/dv-bfin_uart2.h
+fda1d7f12a53138fb47bdec8d19816fe  sim/bfin/dv-bfin_otp.h
+974e630100629cb8f0f7d8fbbc0361c5  sim/bfin/dv-bfin_spi.h
+d6f06da4dcf1efbad942d64102693357  sim/bfin/dv-bfin_trace.h
+f88a8359905a6644b336469168f2e0e6  sim/bfin/dv-bfin_emac.c
+dffc3cc543ad24d38d2d2a4cd2cdd7cb  sim/bfin/dv-bfin_ebiu_amc.c
+125f178879515a026c75306cbea6ed95  sim/bfin/dv-bfin_twi.c
+995273acde9900ab9bc64838809f84b8  sim/bfin/dv-bfin_ppi.h
+fea7c040103bcbc469eacb7948944d60  sim/bfin/dv-bfin_gptimer.h
+6a51ffe5ec2eda778555af02827528c0  sim/bfin/machs.h
 073b919a9cf4d7159a3cfce31bd4a4f5  sim/bfin/bfroms/all.h
 4f6b611014655449ae9aa6ff733441be  sim/bfin/bfroms/bf54x_l1-0.0.h
 aabc3164901d534355e6a1d3357dcbd1  sim/bfin/bfroms/bf533-0.2.h
@@ -11356,123 +11662,123 @@ ffb76dbec098de19fa58d330e4499c7d  sim/bf
 c549474a3d8c3650e4125e352a351c74  sim/bfin/bfroms/bf54x_l1-0.2.h
 909ea02ecbce474582595dec30940205  sim/bfin/bfroms/bf537-0.1.h
 c67b2baec67606a371bbe00edcc3dce8  sim/bfin/bfroms/bf537-0.0.h
-febdb84b0f3fb0ddb5df4b85669490cb  sim/bfin/dv-bfin_dma.h
-5fbaa61a6c06a843e2c1e80b5699812a  sim/bfin/dv-bfin_uart.c
-434c9561414f036e17b65fb7a284c1ef  sim/bfin/configure
-28fb64ae067ec27c8c9992797adf03bf  sim/bfin/dv-bfin_uart.h
+3f3dced2009aa58b97aa7068a4b1c5aa  sim/bfin/dv-bfin_dma.h
+d323235922758047eed0f7d8d6e60f93  sim/bfin/dv-bfin_uart.c
+44dfaf7bdc016369ae4b9e1d248476ab  sim/bfin/configure
+4e06e108b72b5c2dffee423c3643f06a  sim/bfin/dv-bfin_uart.h
 15063e900344de2092f3f12fce27f60b  sim/bfin/aclocal.m4
-b94d4e12ba6c40389c15e45576e6c19f  sim/bfin/dv-bfin_pll.c
-fc302d34895ceb67928468fcd1337ae5  sim/bfin/dv-bfin_evt.h
-54ecc0c0f42d8642ca72df80498606cf  sim/bfin/insn_list.def
-341f173a42b27376a368bf1f2fb81371  sim/bfin/arch.h
-a599b8cfaf34150998c38f423b6c06da  sim/bfin/ChangeLog
-a8e78bf77b962879fcde8aec12dac1a1  sim/bfin/dv-bfin_wp.h
-f903e89064947aa53e58973e4afb31c0  sim/bfin/dv-bfin_pint.c
-8457c06fda07dc6ef0cb74df26634f9e  sim/bfin/dv-bfin_gpio2.h
-d966932319cc3284d38136b32fc98a14  sim/bfin/dv-bfin_dmac.c
-fd048d8f40c4e4711f8c95eb302d6c3c  sim/bfin/dv-bfin_ebiu_sdc.c
-49de6aa312d1693b61ca7e8153ebd05c  sim/bfin/dv-bfin_wdog.c
-aed12f5f11dab6de3a8cd4fda76d99f9  sim/bfin/dv-bfin_otp.c
-be399df9ab3aca243bffa7888f28ef52  sim/bfin/dv-bfin_evt.c
-7b897fc06c7f7dadc16cf950d7d96fb8  sim/bfin/dv-bfin_emac.h
-67f497bfcc69b4e4f452090dd9b85c68  sim/bfin/bfin-sim.h
-b7fefffc5c30fedebbe112295fe34eb9  sim/bfin/dv-bfin_dmac.h
-31fbd0631ec0bd37c9c81730d76cdab5  sim/bfin/sim-main.h
-e554cedf823835be91df18ef26aa0338  sim/bfin/dv-bfin_sic.h
-46cea29305edadf079d638f3453e2fb0  sim/bfin/linux-fixed-code.s
-9653caaf30ac404658fa29a4d4c32254  sim/bfin/dv-bfin_pfmon.h
-2d9a021193bf85ba6cac39c6d85e217f  sim/bfin/dv-bfin_dma.c
-ec2e74705081b83f1d385bec587bfec8  sim/bfin/dv-bfin_uart2.c
-654cfc69674cd6b7d838da31c2f506b6  sim/bfin/dv-bfin_sic.c
-0fab175facbe7c9a4050ce26c8b31e67  sim/bfin/dv-bfin_gptimer.c
-d62ba1f068799562d542f86f9959067a  sim/MAINTAINERS
-f3a91f5148438786450c2b539e366e2f  sim/m68hc11/dv-m68hc11.c
-85eb4582a19630bd6f209f41ac9fc68f  sim/m68hc11/Makefile.in
-0496badae9c1e6018de47ba96d51c6d2  sim/m68hc11/dv-m68hc11sio.c
+b0d212309f505b3794650d6d61c8ec21  sim/bfin/dv-bfin_pll.c
+da467201b18990954373c7d0bda09e4d  sim/bfin/dv-bfin_evt.h
+add5bcec07d22021f391295c01e69e68  sim/bfin/insn_list.def
+6c1ff60a4c984afb7d5235ba329b0289  sim/bfin/arch.h
+935081aef36e14d8f4c2da15e0f1ceaa  sim/bfin/ChangeLog
+8b1955cd81be81ee699bad565ee09676  sim/bfin/dv-bfin_wp.h
+dfb9f2f5e8a37c73866043f93101f935  sim/bfin/dv-bfin_pint.c
+4bace235a6999d02c7d303e4c1c8ad24  sim/bfin/dv-bfin_gpio2.h
+3accf7a2be354c73e7e15a29365e853d  sim/bfin/dv-bfin_dmac.c
+80938b50a2544b346df4ba490a4802fc  sim/bfin/dv-bfin_ebiu_sdc.c
+bd8d069c2f6323dca7e0afe45ec6371f  sim/bfin/dv-bfin_wdog.c
+48e141ea3ab33a7ee760bbbfc20b0825  sim/bfin/dv-bfin_otp.c
+d2ef59ba63b7fc51751360b89eb6e087  sim/bfin/dv-bfin_evt.c
+fb57342fe6569ca55bc9ac3a6d4ecdb7  sim/bfin/dv-bfin_emac.h
+1d6516579e7481846122fabbd321120c  sim/bfin/bfin-sim.h
+980535cb30f6ef837548c4844bead6a8  sim/bfin/dv-bfin_dmac.h
+3757c793241b8fdb062246cee0605587  sim/bfin/sim-main.h
+ff5b05d7d785c83b8533168bbe3c6efb  sim/bfin/dv-bfin_sic.h
+f002e285096e5533e4d6d5a5a255884f  sim/bfin/linux-fixed-code.s
+17073e6291eaca57ecba199ebef7bef1  sim/bfin/dv-bfin_pfmon.h
+a54b409822a9f89d4709754a53e81e9f  sim/bfin/dv-bfin_dma.c
+d0d63d88e36d781f5b5f3bdd9a83e758  sim/bfin/dv-bfin_uart2.c
+18078cbbbbb33856b9e93d874c81cf4c  sim/bfin/dv-bfin_sic.c
+e41886ebfd5e7fbf55757257431fa1f0  sim/bfin/dv-bfin_gptimer.c
+083aa03786cbaa65cacf0303ff8fba52  sim/MAINTAINERS
+04883961c382396eea44ba4959ec109d  sim/m68hc11/dv-m68hc11.c
+e9dfa9a1c581691f0160ad8c80ea7cf4  sim/m68hc11/Makefile.in
+aaa0f1a12e4df6712f453e7e85d73f2e  sim/m68hc11/dv-m68hc11sio.c
 92a6cb0bac20780f1cbd0c25cc6ca10f  sim/m68hc11/config.in
 a58aa2b3e9147a6751e908451a438dc0  sim/m68hc11/configure.ac
-02e2174e384789840b96a2e8db3d0039  sim/m68hc11/gencode.c
-0d94c3e35db8117e856fe2f687dc9452  sim/m68hc11/dv-m68hc11spi.c
-af77ab52a853ed68a9b04c460f4e8462  sim/m68hc11/interp.c
-27bc62f54ddd8cd0639ba60975814399  sim/m68hc11/interrupts.h
-b4aaba4ab92b885cdef354955fba57dd  sim/m68hc11/dv-nvram.c
-d3021d1a82a49c5e29d5ba0a24f0682a  sim/m68hc11/configure
-8400414c74ef9acadeac026e1c298fc6  sim/m68hc11/emulos.c
+14ed72051e4b5b9803c0517beb1aed24  sim/m68hc11/gencode.c
+7853b01f72e43b94de154fda7a69b32a  sim/m68hc11/dv-m68hc11spi.c
+6c8285be6bdf0613d9c71b301008d6ae  sim/m68hc11/interp.c
+e5a8df99db1fcac27275a409a57c25e2  sim/m68hc11/interrupts.h
+12a7caba1afbe74da2b95e23b1a09dbd  sim/m68hc11/dv-nvram.c
+faff920760d5dad452ed1e5744af6e30  sim/m68hc11/configure
+53634a2a138f73733b62d051babe99af  sim/m68hc11/emulos.c
 94500e8b65d9332dee333844d5522a02  sim/m68hc11/aclocal.m4
-c9f01f01d1dfd9f7eae8122db2101ecb  sim/m68hc11/interrupts.c
-74186f11042a87d40edcce930f689da1  sim/m68hc11/ChangeLog
-f0809aa481df2e7a0d54caabf09545db  sim/m68hc11/dv-m68hc11eepr.c
-54ce088fc2884e34c10bd9ac37ae6f72  sim/m68hc11/m68hc11_sim.c
-d97404d328d703e3815ea45ca93bd1f6  sim/m68hc11/sim-main.h
-3fa4ea6ec580481b66cd1712e155256e  sim/m68hc11/dv-m68hc11tim.c
+73ce3a8da948162f1780168e7a6f5f7f  sim/m68hc11/interrupts.c
+12aa14bdbd4a70e93577fad3b9f30f31  sim/m68hc11/ChangeLog
+0e6ae9af82880dbd8f530eeb32525758  sim/m68hc11/dv-m68hc11eepr.c
+6fcd3bc6584401c1848d5ca76e753e6e  sim/m68hc11/m68hc11_sim.c
+e195bb140e79ade387893fc1c46c994f  sim/m68hc11/sim-main.h
+a25612372de9d9e48e3a1ef82dc00643  sim/m68hc11/dv-m68hc11tim.c
 c1b2c0b2ffef1ba72a8a6e24677c8653  sim/rx/README.txt
-a510c4406a090b2c77d07f1371d3ea53  sim/rx/Makefile.in
-ffadba5c780db77c5a04a20d8810fdb4  sim/rx/rx.c
-0f4a8a4ed1d498a5634e8911b27dfdf8  sim/rx/gdb-if.c
-1d5736c37417f02719b54280c08d0966  sim/rx/err.h
-8f4c011e1229b6a34f9456f01eed3b31  sim/rx/cpu.h
+d1bbe6608466c1a6feba19b2d341de06  sim/rx/Makefile.in
+72819ebffa0f5ba2c0b6320263af564a  sim/rx/rx.c
+7d5e495b5764ca73972fc98d78cd77b4  sim/rx/gdb-if.c
+3b040a80ac637d6861404d7a6911da86  sim/rx/err.h
+51e41e6bf27b8c41248d222dd358b33d  sim/rx/cpu.h
 e5be1871e3a45de61271fe246440ab6a  sim/rx/config.in
-1b1b5c65fdc55421fd39bfa718b8fc9a  sim/rx/configure.ac
-cc2d246908d4a4f81c1345639f8d3093  sim/rx/trace.c
-fc6b9f3e80c27cb3d1f5d40a0b78ebae  sim/rx/load.h
-39d38774bc8ed75f01a493b3ab6844c3  sim/rx/misc.c
-f76a3934c556ffd229c35b6c5f93f8ce  sim/rx/main.c
-348cc6e8b9147de028dc1b8377eaa907  sim/rx/mem.h
+7525afacbab2ce4e4019bc8380716375  sim/rx/configure.ac
+a79acad86546bdccae01a6f544abab80  sim/rx/trace.c
+3b7cf0f9a5b66c5dc4fbc312da093bbd  sim/rx/load.h
+9348ebfb9561fe681bf3b1b5cb68156b  sim/rx/misc.c
+d64ede94894db11e726d676199c5febe  sim/rx/main.c
+6391da864ecce450ce3c91b5f3b40af3  sim/rx/mem.h
 24e2f861da06951620983b5a9ca6efe2  sim/rx/syscall.h
-14a6604559c227c3e1f641391927ee01  sim/rx/fpu.c
-2a5b457dbf4409650f476153fac1de53  sim/rx/err.c
-b779a7a9d66d08959f784c9603624443  sim/rx/syscalls.c
-8f3a91d00b7a59c4a1b9d0603de8ccf7  sim/rx/configure
+bd4d4bba34146a480bfbb1f5b38d8501  sim/rx/fpu.c
+e11bce9c6b8932ec1cd869a334a87d94  sim/rx/err.c
+aa6be5b9268a6a4a6215f91067ab5f27  sim/rx/syscalls.c
+771b1632c15268e7f2a644c0116d3088  sim/rx/configure
 94500e8b65d9332dee333844d5522a02  sim/rx/aclocal.m4
-507c41cab6da71ef23e27d6b32dd98fb  sim/rx/syscalls.h
-6998f505bd70dc082dc2e59e7c0f19d2  sim/rx/ChangeLog
-2a0c5a7aec6fb57ebdb9446136c93c3f  sim/rx/trace.h
-02ab32ddd9e8e5a22e5506e198859fc4  sim/rx/reg.c
-26e8750bdeed9a22d9a125a3394cacfa  sim/rx/fpu.h
-793d311076837da7fcc47a5dfe23c5d7  sim/rx/misc.h
-2fbdc3f8958f9aa4c17b197400d78243  sim/rx/mem.c
-b9d28ece6a2248562de80bcf6cee157e  sim/rx/load.c
-9b99afd3f876389c18bba26f5a1b33fb  sim/igen/filter.h
-a151b05fd91f6cdd4048d9c0a6b58da1  sim/igen/Makefile.in
-af2ef644f3099aebf475dc403e709a77  sim/igen/ld-cache.h
-8c9a80f0e525d8cfa0c0344a4b6c2602  sim/igen/gen-idecode.h
-92b7ee3777e28c180094bb6d53b208d3  sim/igen/table.c
-2c369d3337f8f9b9d513de38ef188101  sim/igen/gen.c
-0d362e70c754ac15d7e6542cd49d5ae8  sim/igen/gen-support.h
-5cc2417d8b8c2ff301f84ca863d7257c  sim/igen/gen.h
-a8bda16d39ca39d1206754b3e0cc20de  sim/igen/gen-semantics.c
-394b21b8f02b142c9526ba29c8e1fac6  sim/igen/ld-insn.h
-769c4561b553080f838774a4322711be  sim/igen/gen-icache.h
-e27b766ccdc744c0c510e195eae8e5c2  sim/igen/filter_host.c
-8b0d2f85265e450c11b4022425d0d90b  sim/igen/ld-decode.h
+8218219ab221c420502bdd78e2d68936  sim/rx/syscalls.h
+18700e132dcb3783878697607d53c05a  sim/rx/ChangeLog
+c3f77d186b30cb2dfdfaffb79e129e90  sim/rx/trace.h
+f160838388c3d795bce58684ff6ff0a7  sim/rx/reg.c
+ca7da73ab7700da2757879c9d39bde95  sim/rx/fpu.h
+05ccdde853437eb66a769d6a3001768f  sim/rx/misc.h
+20e7c1ffaedc08b40f9315c96b5cf0b2  sim/rx/mem.c
+a478e1f2a22c78a65afe8afc985ffee5  sim/rx/load.c
+2a99104847541ffceb79c00a4ac2e025  sim/igen/filter.h
+d646313fbcef0effaea8670474f1c72e  sim/igen/Makefile.in
+7a60a85f5747ffab95d2715f2b5b31c2  sim/igen/ld-cache.h
+db3071595cae9f2f43589f01ec699085  sim/igen/gen-idecode.h
+2313d71fc37b1cc977fc4b711293ed2e  sim/igen/table.c
+bc050795da4abdeda58696735275b35e  sim/igen/gen.c
+4029042604f0fff182038a13b5f73b0f  sim/igen/gen-support.h
+4e0c97f9d7883a4edd934dfc2690109e  sim/igen/gen.h
+e8fab38fb4a6dbb00e48da5106f1cd7c  sim/igen/gen-semantics.c
+98988113ddc3a3b357b5039bbba0f5cc  sim/igen/ld-insn.h
+1e1733e1ce6b0aae88e0141f65532b68  sim/igen/gen-icache.h
+12060058f609d8d6f135e566d1ef323d  sim/igen/filter_host.c
+88b8509bbe90498c0ff36348a3f2a7db  sim/igen/ld-decode.h
 290d600da66bd2846e6b8130844f4f38  sim/igen/config.in
 cf3879eb2ab97f84b5d4d569139ce418  sim/igen/configure.ac
-813b700a94c8fece4947e0e13c844f33  sim/igen/gen-semantics.h
-be616699b5c036865a54bd566bb355c9  sim/igen/compare_igen_models
-37aa26e570db87ab969c87957c7d8ad1  sim/igen/gen-idecode.c
-22b7bbc22e4b0edab2ac6727e161c10b  sim/igen/misc.c
-09f5be4b2bf47b08806db86ed48f7e63  sim/igen/gen-engine.h
-8ea20b166b960c66ed869076b4a2ba3e  sim/igen/table.h
-f7deddb744efa92087a48b41432375fa  sim/igen/gen-model.c
-89249bbfc573d1af8a02c14b94515eb3  sim/igen/ld-decode.c
-339aff616c85e4a78fff50e74d44d777  sim/igen/filter_host.h
-e8fdb400a8d70cdad168ae569fe92f5f  sim/igen/gen-engine.c
-49937ce69d2915f51b4703f0f4fe5ee3  sim/igen/igen.c
-1df110f14c1797fd963a569851f7e53b  sim/igen/gen-model.h
+579bdac40640f290bd40281090f0e77a  sim/igen/gen-semantics.h
+60d99c1b39dd233a505ac207f588c8f9  sim/igen/compare_igen_models
+4925efcea5084bae6e5c24e03a5dce36  sim/igen/gen-idecode.c
+d2db1fa1aec168c40e5e882c6241b2f5  sim/igen/misc.c
+b723b8ead1888896070014ab982bd4da  sim/igen/gen-engine.h
+c4a3249a7d50a0b497677b0a8ae000f2  sim/igen/table.h
+e23d9b6c803f8cb72432d8657e10a8d6  sim/igen/gen-model.c
+8f0cdadb258d05195066d6e85f43d594  sim/igen/ld-decode.c
+f4da2375638e3bdd1d4bb75da1eb8509  sim/igen/filter_host.h
+3dfe10deaf92eef958b5ad480955093d  sim/igen/gen-engine.c
+9b14b2549d245dcf69fddb58f8a7fb8d  sim/igen/igen.c
+79dfb96944da41656b43b9ae71714ccc  sim/igen/gen-model.h
 2441df1f219d8549e76957057e2c56b6  sim/igen/configure
-6ddd6a04d028d15e02f1d82248a81352  sim/igen/lf.c
+58b74b4cd0a02c5a3c147041d00997dc  sim/igen/lf.c
 a1c25e3c8d3c24df3fe140ed7dffb8fb  sim/igen/ChangeLog
-617bc147ca8f1cabe9718a5df3ee4304  sim/igen/gen-itable.c
-89f8a757724f69b421be0f4daf3dcc17  sim/igen/filter.c
-e32d21e5c7b8fb1569ebd58921a37313  sim/igen/gen-itable.h
-14fa2c527e0212539c2233e086cdd621  sim/igen/gen-icache.c
-63c4d3c08362c4610ee3b5710af5a323  sim/igen/ld-insn.c
-92332378ace9335617bffe03cc88d2a6  sim/igen/misc.h
-0b257169f8c55231e46bad0c21b61002  sim/igen/ld-cache.c
-3b5bdac854102ad952e2129c02b5fda1  sim/igen/igen.h
-a048cf54c6e022ce79dc6d8ddf5798ad  sim/igen/gen-support.c
-084c9aab42be581100dc2f7e36babb5c  sim/igen/lf.h
-07be744bad00e85fd32c0bd2c5efd940  src-release.sh
+81b59ff0c081343fd12932f154ffef9b  sim/igen/gen-itable.c
+3ca356c3c263b8644d4a057f9877d9ad  sim/igen/filter.c
+44b808612e30a27c0c4e6149a1e049fa  sim/igen/gen-itable.h
+bb0de7c53ec957e0e1439acb49070657  sim/igen/gen-icache.c
+b1d358355a3fb8c7992ccaf598f7f5a7  sim/igen/ld-insn.c
+bd2033ea31ab4540adb7dbfa39e40b5c  sim/igen/misc.h
+00bd51870d749593048fd9c5e90f96a3  sim/igen/ld-cache.c
+ae5df76d6015f1235c326936947efad5  sim/igen/igen.h
+1857507d292ffb2fbf13e3be180c1dbd  sim/igen/gen-support.c
+f811076f1d8cf340de362f449e7a05ec  sim/igen/lf.h
+0114748016927b4ca3deadc434ded6fd  src-release.sh
 cf2baa0854f564a7785307e79f155efc  symlink-tree
 6ffd0f415aea2960cac41434e6d904bb  texinfo/texinfo.tex
 cb06c1be6a41d68b0a65e0c1a91752bc  ylwrap
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-asm-2.c ./opcodes/aarch64-asm-2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-asm-2.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/aarch64-asm-2.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* This file is automatically generated by aarch64-gen.  Do not edit!  */
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of the GNU opcodes library.
@@ -611,27 +611,28 @@ aarch64_insert_operand (const aarch64_op
     case 26:
     case 27:
     case 28:
-    case 147:
-    case 148:
-    case 149:
-    case 150:
+    case 29:
     case 151:
     case 152:
     case 153:
     case 154:
     case 155:
     case 156:
-    case 169:
-    case 170:
-    case 171:
-    case 172:
+    case 157:
+    case 158:
+    case 159:
+    case 160:
     case 173:
     case 174:
     case 175:
     case 176:
     case 177:
+    case 178:
+    case 179:
+    case 180:
     case 181:
-    case 184:
+    case 185:
+    case 188:
       return aarch64_ins_regno (self, info, code, inst);
     case 13:
       return aarch64_ins_reg_extended (self, info, code, inst);
@@ -639,23 +640,23 @@ aarch64_insert_operand (const aarch64_op
       return aarch64_ins_reg_shifted (self, info, code, inst);
     case 19:
       return aarch64_ins_ft (self, info, code, inst);
-    case 29:
     case 30:
     case 31:
-      return aarch64_ins_reglane (self, info, code, inst);
     case 32:
-      return aarch64_ins_reglist (self, info, code, inst);
+    case 190:
+      return aarch64_ins_reglane (self, info, code, inst);
     case 33:
-      return aarch64_ins_ldst_reglist (self, info, code, inst);
+      return aarch64_ins_reglist (self, info, code, inst);
     case 34:
-      return aarch64_ins_ldst_reglist_r (self, info, code, inst);
+      return aarch64_ins_ldst_reglist (self, info, code, inst);
     case 35:
-      return aarch64_ins_ldst_elemlist (self, info, code, inst);
+      return aarch64_ins_ldst_reglist_r (self, info, code, inst);
     case 36:
+      return aarch64_ins_ldst_elemlist (self, info, code, inst);
     case 37:
     case 38:
-    case 48:
-    case 49:
+    case 39:
+    case 40:
     case 50:
     case 51:
     case 52:
@@ -667,101 +668,102 @@ aarch64_insert_operand (const aarch64_op
     case 58:
     case 59:
     case 60:
-    case 72:
-    case 73:
-    case 74:
+    case 61:
+    case 62:
+    case 63:
     case 75:
-    case 144:
-    case 146:
-    case 161:
-    case 162:
-    case 163:
-    case 164:
+    case 76:
+    case 77:
+    case 78:
+    case 148:
+    case 150:
     case 165:
     case 166:
     case 167:
     case 168:
+    case 169:
+    case 170:
+    case 171:
+    case 172:
       return aarch64_ins_imm (self, info, code, inst);
-    case 39:
-    case 40:
-      return aarch64_ins_advsimd_imm_shift (self, info, code, inst);
     case 41:
     case 42:
+      return aarch64_ins_advsimd_imm_shift (self, info, code, inst);
     case 43:
+    case 44:
+    case 45:
       return aarch64_ins_advsimd_imm_modified (self, info, code, inst);
-    case 47:
-    case 135:
+    case 49:
+    case 139:
       return aarch64_ins_fpimm (self, info, code, inst);
-    case 61:
-    case 142:
+    case 64:
+    case 146:
       return aarch64_ins_limm (self, info, code, inst);
-    case 62:
+    case 65:
       return aarch64_ins_aimm (self, info, code, inst);
-    case 63:
-      return aarch64_ins_imm_half (self, info, code, inst);
-    case 64:
-      return aarch64_ins_fbits (self, info, code, inst);
     case 66:
+      return aarch64_ins_imm_half (self, info, code, inst);
     case 67:
-    case 140:
-      return aarch64_ins_imm_rotate2 (self, info, code, inst);
-    case 68:
-    case 139:
-      return aarch64_ins_imm_rotate1 (self, info, code, inst);
+      return aarch64_ins_fbits (self, info, code, inst);
     case 69:
     case 70:
+    case 144:
+      return aarch64_ins_imm_rotate2 (self, info, code, inst);
+    case 71:
+    case 143:
+      return aarch64_ins_imm_rotate1 (self, info, code, inst);
+    case 72:
+    case 73:
       return aarch64_ins_cond (self, info, code, inst);
-    case 76:
-    case 83:
-      return aarch64_ins_addr_simple (self, info, code, inst);
-    case 77:
-      return aarch64_ins_addr_regoff (self, info, code, inst);
-    case 78:
     case 79:
+    case 86:
+      return aarch64_ins_addr_simple (self, info, code, inst);
     case 80:
-      return aarch64_ins_addr_simm (self, info, code, inst);
+      return aarch64_ins_addr_regoff (self, info, code, inst);
     case 81:
-      return aarch64_ins_addr_simm10 (self, info, code, inst);
     case 82:
-      return aarch64_ins_addr_uimm12 (self, info, code, inst);
+    case 83:
+      return aarch64_ins_addr_simm (self, info, code, inst);
     case 84:
-      return aarch64_ins_simd_addr_post (self, info, code, inst);
+      return aarch64_ins_addr_simm10 (self, info, code, inst);
     case 85:
-      return aarch64_ins_sysreg (self, info, code, inst);
-    case 86:
-      return aarch64_ins_pstatefield (self, info, code, inst);
+      return aarch64_ins_addr_uimm12 (self, info, code, inst);
     case 87:
+      return aarch64_ins_addr_offset (self, info, code, inst);
     case 88:
+      return aarch64_ins_simd_addr_post (self, info, code, inst);
     case 89:
+      return aarch64_ins_sysreg (self, info, code, inst);
     case 90:
-      return aarch64_ins_sysins_op (self, info, code, inst);
+      return aarch64_ins_pstatefield (self, info, code, inst);
     case 91:
     case 92:
-      return aarch64_ins_barrier (self, info, code, inst);
     case 93:
-      return aarch64_ins_prfop (self, info, code, inst);
     case 94:
-      return aarch64_ins_hint (self, info, code, inst);
+      return aarch64_ins_sysins_op (self, info, code, inst);
     case 95:
-      return aarch64_ins_sve_addr_ri_s4 (self, info, code, inst);
     case 96:
+      return aarch64_ins_barrier (self, info, code, inst);
     case 97:
+      return aarch64_ins_prfop (self, info, code, inst);
     case 98:
+      return aarch64_ins_hint (self, info, code, inst);
     case 99:
-      return aarch64_ins_sve_addr_ri_s4xvl (self, info, code, inst);
+      return aarch64_ins_sve_addr_ri_s4 (self, info, code, inst);
     case 100:
-      return aarch64_ins_sve_addr_ri_s6xvl (self, info, code, inst);
     case 101:
-      return aarch64_ins_sve_addr_ri_s9xvl (self, info, code, inst);
     case 102:
     case 103:
+      return aarch64_ins_sve_addr_ri_s4xvl (self, info, code, inst);
     case 104:
+      return aarch64_ins_sve_addr_ri_s6xvl (self, info, code, inst);
     case 105:
-      return aarch64_ins_sve_addr_ri_u6 (self, info, code, inst);
+      return aarch64_ins_sve_addr_ri_s9xvl (self, info, code, inst);
     case 106:
     case 107:
     case 108:
     case 109:
+      return aarch64_ins_sve_addr_ri_u6 (self, info, code, inst);
     case 110:
     case 111:
     case 112:
@@ -770,57 +772,61 @@ aarch64_insert_operand (const aarch64_op
     case 115:
     case 116:
     case 117:
-      return aarch64_ins_sve_addr_rr_lsl (self, info, code, inst);
     case 118:
     case 119:
     case 120:
     case 121:
+      return aarch64_ins_sve_addr_rr_lsl (self, info, code, inst);
     case 122:
     case 123:
     case 124:
     case 125:
-      return aarch64_ins_sve_addr_rz_xtw (self, info, code, inst);
     case 126:
     case 127:
     case 128:
     case 129:
-      return aarch64_ins_sve_addr_zi_u5 (self, info, code, inst);
+      return aarch64_ins_sve_addr_rz_xtw (self, info, code, inst);
     case 130:
-      return aarch64_ins_sve_addr_zz_lsl (self, info, code, inst);
     case 131:
-      return aarch64_ins_sve_addr_zz_sxtw (self, info, code, inst);
     case 132:
-      return aarch64_ins_sve_addr_zz_uxtw (self, info, code, inst);
     case 133:
-      return aarch64_ins_sve_aimm (self, info, code, inst);
+      return aarch64_ins_sve_addr_zi_u5 (self, info, code, inst);
     case 134:
-      return aarch64_ins_sve_asimm (self, info, code, inst);
+      return aarch64_ins_sve_addr_zz_lsl (self, info, code, inst);
+    case 135:
+      return aarch64_ins_sve_addr_zz_sxtw (self, info, code, inst);
     case 136:
-      return aarch64_ins_sve_float_half_one (self, info, code, inst);
+      return aarch64_ins_sve_addr_zz_uxtw (self, info, code, inst);
     case 137:
-      return aarch64_ins_sve_float_half_two (self, info, code, inst);
+      return aarch64_ins_sve_aimm (self, info, code, inst);
     case 138:
-      return aarch64_ins_sve_float_zero_one (self, info, code, inst);
+      return aarch64_ins_sve_asimm (self, info, code, inst);
+    case 140:
+      return aarch64_ins_sve_float_half_one (self, info, code, inst);
     case 141:
+      return aarch64_ins_sve_float_half_two (self, info, code, inst);
+    case 142:
+      return aarch64_ins_sve_float_zero_one (self, info, code, inst);
+    case 145:
       return aarch64_ins_inv_limm (self, info, code, inst);
-    case 143:
+    case 147:
       return aarch64_ins_sve_limm_mov (self, info, code, inst);
-    case 145:
+    case 149:
       return aarch64_ins_sve_scale (self, info, code, inst);
-    case 157:
-    case 158:
+    case 161:
+    case 162:
       return aarch64_ins_sve_shlimm (self, info, code, inst);
-    case 159:
-    case 160:
+    case 163:
+    case 164:
       return aarch64_ins_sve_shrimm (self, info, code, inst);
-    case 178:
-    case 179:
-    case 180:
-      return aarch64_ins_sve_quad_index (self, info, code, inst);
     case 182:
-      return aarch64_ins_sve_index (self, info, code, inst);
     case 183:
-    case 185:
+    case 184:
+      return aarch64_ins_sve_quad_index (self, info, code, inst);
+    case 186:
+      return aarch64_ins_sve_index (self, info, code, inst);
+    case 187:
+    case 189:
       return aarch64_ins_sve_reglist (self, info, code, inst);
     default: assert (0); abort ();
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-asm.c ./opcodes/aarch64-asm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-asm.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/aarch64-asm.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* aarch64-asm.c -- AArch64 assembler support.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of the GNU opcodes library.
@@ -121,6 +121,27 @@ aarch64_ins_reglane (const aarch64_opera
 	  insert_field (FLD_imm5, code, value, 0);
 	}
     }
+  else if (inst->opcode->iclass == dotproduct)
+    {
+      unsigned reglane_index = info->reglane.index;
+      switch (info->qualifier)
+	{
+	case AARCH64_OPND_QLF_S_4B:
+	  /* L:H */
+	  assert (reglane_index < 4);
+	  insert_fields (code, reglane_index, 0, 2, FLD_L, FLD_H);
+	  break;
+	default:
+	  assert (0);
+	}
+    }
+  else if (inst->opcode->iclass == cryptosm3)
+    {
+      /* index for e.g. SM3TT2A <Vd>.4S, <Vn>.4S, <Vm>S[<imm2>].  */
+      unsigned reglane_index = info->reglane.index;
+      assert (reglane_index < 4);
+      insert_field (FLD_SM3_imm2, code, reglane_index, 0);
+    }
   else
     {
       /* index for e.g. SQDMLAL <Va><d>, <Vb><n>, <Vm>.<Ts>[<index>]
@@ -498,9 +519,8 @@ aarch64_ins_limm_1 (const aarch64_operan
 
   if (invert_p)
     imm = ~imm;
-  if (aarch64_logical_immediate_p (imm, esize, &value) == FALSE)
-    /* The constraint check should have guaranteed this wouldn't happen.  */
-    assert (0);
+  /* The constraint check should have guaranteed this wouldn't happen.  */
+  assert (aarch64_logical_immediate_p (imm, esize, &value));
 
   insert_fields (code, value, 0, 3, self->fields[2], self->fields[1],
 		 self->fields[0]);
@@ -607,6 +627,29 @@ aarch64_ins_addr_regoff (const aarch64_o
   return NULL;
 }
 
+/* Encode the address operand for e.g.
+     stlur <Xt>, [<Xn|SP>{, <amount>}].  */
+const char *
+aarch64_ins_addr_offset (const aarch64_operand *self ATTRIBUTE_UNUSED,
+			 const aarch64_opnd_info *info, aarch64_insn *code,
+			 const aarch64_inst *inst ATTRIBUTE_UNUSED)
+{
+  /* Rn */
+  insert_field (self->fields[0], code, info->addr.base_regno, 0);
+
+  /* simm9 */
+  int imm = info->addr.offset.imm;
+  insert_field (self->fields[1], code, imm, 0);
+
+  /* writeback */
+  if (info->addr.writeback)
+    {
+      assert (info->addr.preind == 1 && info->addr.postind == 0);
+      insert_field (self->fields[2], code, 1, 0);
+    }
+  return NULL;
+}
+
 /* Encode the address operand for e.g. LDRSW <Xt>, [<Xn|SP>, #<simm>]!.  */
 const char *
 aarch64_ins_addr_simm (const aarch64_operand *self,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-asm.h ./opcodes/aarch64-asm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-asm.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/aarch64-asm.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* aarch64-asm.h -- Header file for aarch64-asm.c and aarch64-asm-2.c.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of the GNU opcodes library.
@@ -57,6 +57,7 @@ AARCH64_DECL_OPD_INSERTER (ins_limm);
 AARCH64_DECL_OPD_INSERTER (ins_inv_limm);
 AARCH64_DECL_OPD_INSERTER (ins_ft);
 AARCH64_DECL_OPD_INSERTER (ins_addr_simple);
+AARCH64_DECL_OPD_INSERTER (ins_addr_offset);
 AARCH64_DECL_OPD_INSERTER (ins_addr_regoff);
 AARCH64_DECL_OPD_INSERTER (ins_addr_simm);
 AARCH64_DECL_OPD_INSERTER (ins_addr_simm10);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-dis-2.c ./opcodes/aarch64-dis-2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-dis-2.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/aarch64-dis-2.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* This file is automatically generated by aarch64-gen.  Do not edit!  */
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of the GNU opcodes library.
@@ -38,7 +38,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                     {
                       /* 33222222222211111111110000000000
                          10987654321098765432109876543210
-                         xxxxxxxxxxxxxxxxxxxxxxxx0000xxx0
+                         0xxx0000xxxxxxxxxxxxxxxxxxxxxxxx
                          adr.  */
                       return 1155;
                     }
@@ -46,7 +46,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                     {
                       /* 33222222222211111111110000000000
                          10987654321098765432109876543210
-                         xxxxxxxxxxxxxxxxxxxxxxxx0000xxx1
+                         1xxx0000xxxxxxxxxxxxxxxxxxxxxxxx
                          adrp.  */
                       return 1156;
                     }
@@ -59,7 +59,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx1000x00x
+                             x00x0001xxxxxxxxxxxxxxxxxxxxxxxx
                              add.  */
                           return 12;
                         }
@@ -67,7 +67,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx1000x01x
+                             x10x0001xxxxxxxxxxxxxxxxxxxxxxxx
                              sub.  */
                           return 16;
                         }
@@ -78,7 +78,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx1000x10x
+                             x01x0001xxxxxxxxxxxxxxxxxxxxxxxx
                              adds.  */
                           return 14;
                         }
@@ -86,7 +86,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx1000x11x
+                             x11x0001xxxxxxxxxxxxxxxxxxxxxxxx
                              subs.  */
                           return 17;
                         }
@@ -113,7 +113,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx000x0010000
+                                                 0000100x000xxxxx0xxxxxxxxxxxxxxx
                                                  stxrb.  */
                                               return 910;
                                             }
@@ -121,7 +121,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx000x0010010
+                                                 0100100x000xxxxx0xxxxxxxxxxxxxxx
                                                  stxrh.  */
                                               return 916;
                                             }
@@ -130,7 +130,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx000x00100x1
+                                             1x00100x000xxxxx0xxxxxxxxxxxxxxx
                                              stxr.  */
                                           return 922;
                                         }
@@ -141,7 +141,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx100x00100x0
+                                             0x00100x001xxxxx0xxxxxxxxxxxxxxx
                                              casp.  */
                                           return 990;
                                         }
@@ -149,7 +149,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx100x00100x1
+                                             1x00100x001xxxxx0xxxxxxxxxxxxxxx
                                              stxp.  */
                                           return 924;
                                         }
@@ -165,7 +165,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx000x0010000
+                                                 0000100x000xxxxx1xxxxxxxxxxxxxxx
                                                  stlxrb.  */
                                               return 911;
                                             }
@@ -173,7 +173,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx000x0010010
+                                                 0100100x000xxxxx1xxxxxxxxxxxxxxx
                                                  stlxrh.  */
                                               return 917;
                                             }
@@ -182,7 +182,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx000x00100x1
+                                             1x00100x000xxxxx1xxxxxxxxxxxxxxx
                                              stlxr.  */
                                           return 923;
                                         }
@@ -193,7 +193,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx100x00100x0
+                                             0x00100x001xxxxx1xxxxxxxxxxxxxxx
                                              caspl.  */
                                           return 992;
                                         }
@@ -201,7 +201,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx100x00100x1
+                                             1x00100x001xxxxx1xxxxxxxxxxxxxxx
                                              stlxp.  */
                                           return 925;
                                         }
@@ -212,7 +212,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxx00x00101xx
+                                 xx10100x00xxxxxxxxxxxxxxxxxxxxxx
                                  stnp.  */
                               return 941;
                             }
@@ -229,7 +229,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx001x00100x0
+                                             0x00100x100xxxxx0xxxxxxxxxxxxxxx
                                              stllrb.  */
                                           return 939;
                                         }
@@ -237,7 +237,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx001x00100x1
+                                             1x00100x100xxxxx0xxxxxxxxxxxxxxx
                                              stllr.  */
                                           return 938;
                                         }
@@ -250,7 +250,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx101x0010000
+                                                 0000100x101xxxxx0xxxxxxxxxxxxxxx
                                                  casb.  */
                                               return 978;
                                             }
@@ -258,7 +258,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx101x0010010
+                                                 0100100x101xxxxx0xxxxxxxxxxxxxxx
                                                  cash.  */
                                               return 979;
                                             }
@@ -267,7 +267,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx101x00100x1
+                                             1x00100x101xxxxx0xxxxxxxxxxxxxxx
                                              cas.  */
                                           return 980;
                                         }
@@ -283,7 +283,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx001x0010000
+                                                 0000100x100xxxxx1xxxxxxxxxxxxxxx
                                                  stlrb.  */
                                               return 914;
                                             }
@@ -291,7 +291,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx001x0010010
+                                                 0100100x100xxxxx1xxxxxxxxxxxxxxx
                                                  stlrh.  */
                                               return 920;
                                             }
@@ -300,7 +300,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx001x00100x1
+                                             1x00100x100xxxxx1xxxxxxxxxxxxxxx
                                              stlr.  */
                                           return 930;
                                         }
@@ -313,7 +313,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx101x0010000
+                                                 0000100x101xxxxx1xxxxxxxxxxxxxxx
                                                  caslb.  */
                                               return 982;
                                             }
@@ -321,7 +321,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx101x0010010
+                                                 0100100x101xxxxx1xxxxxxxxxxxxxxx
                                                  caslh.  */
                                               return 985;
                                             }
@@ -330,7 +330,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx101x00100x1
+                                             1x00100x101xxxxx1xxxxxxxxxxxxxxx
                                              casl.  */
                                           return 988;
                                         }
@@ -341,7 +341,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxx01x00101xx
+                                 xx10100x10xxxxxxxxxxxxxxxxxxxxxx
                                  stp.  */
                               return 950;
                             }
@@ -363,7 +363,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx010x0010000
+                                                 0000100x010xxxxx0xxxxxxxxxxxxxxx
                                                  ldxrb.  */
                                               return 912;
                                             }
@@ -371,7 +371,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx010x0010010
+                                                 0100100x010xxxxx0xxxxxxxxxxxxxxx
                                                  ldxrh.  */
                                               return 918;
                                             }
@@ -380,7 +380,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx010x00100x1
+                                             1x00100x010xxxxx0xxxxxxxxxxxxxxx
                                              ldxr.  */
                                           return 926;
                                         }
@@ -391,7 +391,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx110x00100x0
+                                             0x00100x011xxxxx0xxxxxxxxxxxxxxx
                                              caspa.  */
                                           return 991;
                                         }
@@ -399,7 +399,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx110x00100x1
+                                             1x00100x011xxxxx0xxxxxxxxxxxxxxx
                                              ldxp.  */
                                           return 928;
                                         }
@@ -415,7 +415,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx010x0010000
+                                                 0000100x010xxxxx1xxxxxxxxxxxxxxx
                                                  ldaxrb.  */
                                               return 913;
                                             }
@@ -423,7 +423,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx010x0010010
+                                                 0100100x010xxxxx1xxxxxxxxxxxxxxx
                                                  ldaxrh.  */
                                               return 919;
                                             }
@@ -432,7 +432,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx010x00100x1
+                                             1x00100x010xxxxx1xxxxxxxxxxxxxxx
                                              ldaxr.  */
                                           return 927;
                                         }
@@ -443,7 +443,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx110x00100x0
+                                             0x00100x011xxxxx1xxxxxxxxxxxxxxx
                                              caspal.  */
                                           return 993;
                                         }
@@ -451,7 +451,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx110x00100x1
+                                             1x00100x011xxxxx1xxxxxxxxxxxxxxx
                                              ldaxp.  */
                                           return 929;
                                         }
@@ -464,7 +464,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx10x001010x
+                                     x010100x01xxxxxxxxxxxxxxxxxxxxxx
                                      ldnp.  */
                                   return 942;
                                 }
@@ -472,7 +472,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx10x001011x
+                                     x110100x01xxxxxxxxxxxxxxxxxxxxxx
                                      ldpsw.  */
                                   return 949;
                                 }
@@ -492,7 +492,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx011x0010000
+                                                 0000100x110xxxxx0xxxxxxxxxxxxxxx
                                                  ldlarb.  */
                                               return 936;
                                             }
@@ -500,7 +500,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx011x0010010
+                                                 0100100x110xxxxx0xxxxxxxxxxxxxxx
                                                  ldlarh.  */
                                               return 937;
                                             }
@@ -509,7 +509,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx011x00100x1
+                                             1x00100x110xxxxx0xxxxxxxxxxxxxxx
                                              ldlar.  */
                                           return 935;
                                         }
@@ -522,7 +522,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx111x0010000
+                                                 0000100x111xxxxx0xxxxxxxxxxxxxxx
                                                  casab.  */
                                               return 981;
                                             }
@@ -530,7 +530,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx111x0010010
+                                                 0100100x111xxxxx0xxxxxxxxxxxxxxx
                                                  casah.  */
                                               return 984;
                                             }
@@ -539,7 +539,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx111x00100x1
+                                             1x00100x111xxxxx0xxxxxxxxxxxxxxx
                                              casa.  */
                                           return 987;
                                         }
@@ -555,7 +555,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx011x0010000
+                                                 0000100x110xxxxx1xxxxxxxxxxxxxxx
                                                  ldarb.  */
                                               return 915;
                                             }
@@ -563,7 +563,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx011x0010010
+                                                 0100100x110xxxxx1xxxxxxxxxxxxxxx
                                                  ldarh.  */
                                               return 921;
                                             }
@@ -572,7 +572,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx011x00100x1
+                                             1x00100x110xxxxx1xxxxxxxxxxxxxxx
                                              ldar.  */
                                           return 931;
                                         }
@@ -585,7 +585,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx111x0010000
+                                                 0000100x111xxxxx1xxxxxxxxxxxxxxx
                                                  casalb.  */
                                               return 983;
                                             }
@@ -593,7 +593,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx111x0010010
+                                                 0100100x111xxxxx1xxxxxxxxxxxxxxx
                                                  casalh.  */
                                               return 986;
                                             }
@@ -602,7 +602,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx111x00100x1
+                                             1x00100x111xxxxx1xxxxxxxxxxxxxxx
                                              casal.  */
                                           return 989;
                                         }
@@ -615,7 +615,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx11x001010x
+                                     x010100x11xxxxxxxxxxxxxxxxxxxxxx
                                      ldp.  */
                                   return 951;
                                 }
@@ -623,7 +623,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx11x001011x
+                                     x110100x11xxxxxxxxxxxxxxxxxxxxxx
                                      ldpsw.  */
                                   return 954;
                                 }
@@ -641,7 +641,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxxx000110x0
+                                 0x011000xxxxxxxxxxxxxxxxxxxxxxxx
                                  ldr.  */
                               return 955;
                             }
@@ -651,7 +651,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxxxx00011001
+                                     10011000xxxxxxxxxxxxxxxxxxxxxxxx
                                      ldrsw.  */
                                   return 957;
                                 }
@@ -659,7 +659,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxxxx00011011
+                                     11011000xxxxxxxxxxxxxxxxxxxxxxxx
                                      prfm.  */
                                   return 958;
                                 }
@@ -683,7 +683,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00xxxxxxxxx00000011100
+                                                         00111000000xxxxxxxxx00xxxxxxxxxx
                                                          sturb.  */
                                                       return 896;
                                                     }
@@ -691,7 +691,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00xxxxxxxxx00000011110
+                                                         01111000000xxxxxxxxx00xxxxxxxxxx
                                                          sturh.  */
                                                       return 901;
                                                     }
@@ -700,7 +700,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx000000111x1
+                                                     1x111000000xxxxxxxxx00xxxxxxxxxx
                                                      stur.  */
                                                   return 904;
                                                 }
@@ -713,7 +713,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00xxxxxxxxx01000011100
+                                                         00111000010xxxxxxxxx00xxxxxxxxxx
                                                          ldurb.  */
                                                       return 897;
                                                     }
@@ -721,7 +721,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00xxxxxxxxx01000011110
+                                                         01111000010xxxxxxxxx00xxxxxxxxxx
                                                          ldurh.  */
                                                       return 902;
                                                     }
@@ -730,7 +730,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx010000111x1
+                                                     1x111000010xxxxxxxxx00xxxxxxxxxx
                                                      ldur.  */
                                                   return 905;
                                                 }
@@ -744,7 +744,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0x100011100
+                                                     001110001x0xxxxxxxxx00xxxxxxxxxx
                                                      ldursb.  */
                                                   return 898;
                                                 }
@@ -752,7 +752,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0x100011101
+                                                     101110001x0xxxxxxxxx00xxxxxxxxxx
                                                      ldursw.  */
                                                   return 906;
                                                 }
@@ -763,7 +763,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0x100011110
+                                                     011110001x0xxxxxxxxx00xxxxxxxxxx
                                                      ldursh.  */
                                                   return 903;
                                                 }
@@ -771,7 +771,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0x100011111
+                                                     111110001x0xxxxxxxxx00xxxxxxxxxx
                                                      prfum.  */
                                                   return 907;
                                                 }
@@ -798,7 +798,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx10000011100
+                                                                         00111000001xxxxx000000xxxxxxxxxx
                                                                          ldaddb.  */
                                                                       return 1006;
                                                                     }
@@ -806,7 +806,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx10000011110
+                                                                         01111000001xxxxx000000xxxxxxxxxx
                                                                          ldaddh.  */
                                                                       return 1007;
                                                                     }
@@ -815,7 +815,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000000xxxxx100000111x1
+                                                                     1x111000001xxxxx000000xxxxxxxxxx
                                                                      ldadd.  */
                                                                   return 1008;
                                                                 }
@@ -828,7 +828,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx10100011100
+                                                                         00111000101xxxxx000000xxxxxxxxxx
                                                                          ldaddab.  */
                                                                       return 1009;
                                                                     }
@@ -836,7 +836,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx10100011110
+                                                                         01111000101xxxxx000000xxxxxxxxxx
                                                                          ldaddah.  */
                                                                       return 1012;
                                                                     }
@@ -845,7 +845,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000000xxxxx101000111x1
+                                                                     1x111000101xxxxx000000xxxxxxxxxx
                                                                      ldadda.  */
                                                                   return 1015;
                                                                 }
@@ -861,7 +861,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx11000011100
+                                                                         00111000011xxxxx000000xxxxxxxxxx
                                                                          ldaddlb.  */
                                                                       return 1010;
                                                                     }
@@ -869,7 +869,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx11000011110
+                                                                         01111000011xxxxx000000xxxxxxxxxx
                                                                          ldaddlh.  */
                                                                       return 1013;
                                                                     }
@@ -878,7 +878,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000000xxxxx110000111x1
+                                                                     1x111000011xxxxx000000xxxxxxxxxx
                                                                      ldaddl.  */
                                                                   return 1016;
                                                                 }
@@ -891,7 +891,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx11100011100
+                                                                         00111000111xxxxx000000xxxxxxxxxx
                                                                          ldaddalb.  */
                                                                       return 1011;
                                                                     }
@@ -899,7 +899,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx11100011110
+                                                                         01111000111xxxxx000000xxxxxxxxxx
                                                                          ldaddalh.  */
                                                                       return 1014;
                                                                     }
@@ -908,7 +908,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000000xxxxx111000111x1
+                                                                     1x111000111xxxxx000000xxxxxxxxxx
                                                                      ldaddal.  */
                                                                   return 1017;
                                                                 }
@@ -927,7 +927,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx10000011100
+                                                                         00111000001xxxxx100000xxxxxxxxxx
                                                                          swpb.  */
                                                                       return 994;
                                                                     }
@@ -935,7 +935,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx10000011110
+                                                                         01111000001xxxxx100000xxxxxxxxxx
                                                                          swph.  */
                                                                       return 995;
                                                                     }
@@ -944,7 +944,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000001xxxxx100000111x1
+                                                                     1x111000001xxxxx100000xxxxxxxxxx
                                                                      swp.  */
                                                                   return 996;
                                                                 }
@@ -957,7 +957,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx10100011100
+                                                                         00111000101xxxxx100000xxxxxxxxxx
                                                                          swpab.  */
                                                                       return 997;
                                                                     }
@@ -965,7 +965,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx10100011110
+                                                                         01111000101xxxxx100000xxxxxxxxxx
                                                                          swpah.  */
                                                                       return 1000;
                                                                     }
@@ -974,7 +974,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000001xxxxx101000111x1
+                                                                     1x111000101xxxxx100000xxxxxxxxxx
                                                                      swpa.  */
                                                                   return 1003;
                                                                 }
@@ -990,7 +990,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx11000011100
+                                                                         00111000011xxxxx100000xxxxxxxxxx
                                                                          swplb.  */
                                                                       return 998;
                                                                     }
@@ -998,7 +998,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx11000011110
+                                                                         01111000011xxxxx100000xxxxxxxxxx
                                                                          swplh.  */
                                                                       return 1001;
                                                                     }
@@ -1007,7 +1007,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000001xxxxx110000111x1
+                                                                     1x111000011xxxxx100000xxxxxxxxxx
                                                                      swpl.  */
                                                                   return 1004;
                                                                 }
@@ -1020,7 +1020,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx11100011100
+                                                                         00111000111xxxxx100000xxxxxxxxxx
                                                                          swpalb.  */
                                                                       return 999;
                                                                     }
@@ -1028,7 +1028,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx11100011110
+                                                                         01111000111xxxxx100000xxxxxxxxxx
                                                                          swpalh.  */
                                                                       return 1002;
                                                                     }
@@ -1037,7 +1037,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000001xxxxx111000111x1
+                                                                     1x111000111xxxxx100000xxxxxxxxxx
                                                                      swpal.  */
                                                                   return 1005;
                                                                 }
@@ -1059,7 +1059,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000010xxxxx10000011100
+                                                                         00111000001xxxxx010000xxxxxxxxxx
                                                                          ldsmaxb.  */
                                                                       return 1054;
                                                                     }
@@ -1067,7 +1067,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000010xxxxx10000011110
+                                                                         01111000001xxxxx010000xxxxxxxxxx
                                                                          ldsmaxh.  */
                                                                       return 1055;
                                                                     }
@@ -1076,7 +1076,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000010xxxxx100000111x1
+                                                                     1x111000001xxxxx010000xxxxxxxxxx
                                                                      ldsmax.  */
                                                                   return 1056;
                                                                 }
@@ -1089,7 +1089,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000010xxxxx10100011100
+                                                                         00111000101xxxxx010000xxxxxxxxxx
                                                                          ldsmaxab.  */
                                                                       return 1057;
                                                                     }
@@ -1097,7 +1097,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000010xxxxx10100011110
+                                                                         01111000101xxxxx010000xxxxxxxxxx
                                                                          ldsmaxah.  */
                                                                       return 1060;
                                                                     }
@@ -1106,7 +1106,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000010xxxxx101000111x1
+                                                                     1x111000101xxxxx010000xxxxxxxxxx
                                                                      ldsmaxa.  */
                                                                   return 1063;
                                                                 }
@@ -1122,7 +1122,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000010xxxxx11000011100
+                                                                         00111000011xxxxx010000xxxxxxxxxx
                                                                          ldsmaxlb.  */
                                                                       return 1058;
                                                                     }
@@ -1130,7 +1130,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000010xxxxx11000011110
+                                                                         01111000011xxxxx010000xxxxxxxxxx
                                                                          ldsmaxlh.  */
                                                                       return 1061;
                                                                     }
@@ -1139,7 +1139,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000010xxxxx110000111x1
+                                                                     1x111000011xxxxx010000xxxxxxxxxx
                                                                      ldsmaxl.  */
                                                                   return 1064;
                                                                 }
@@ -1152,7 +1152,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000010xxxxx11100011100
+                                                                         00111000111xxxxx010000xxxxxxxxxx
                                                                          ldsmaxalb.  */
                                                                       return 1059;
                                                                     }
@@ -1160,7 +1160,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000010xxxxx11100011110
+                                                                         01111000111xxxxx010000xxxxxxxxxx
                                                                          ldsmaxalh.  */
                                                                       return 1062;
                                                                     }
@@ -1169,7 +1169,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000010xxxxx111000111x1
+                                                                     1x111000111xxxxx010000xxxxxxxxxx
                                                                      ldsmaxal.  */
                                                                   return 1065;
                                                                 }
@@ -1184,7 +1184,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000011xxxxx1xx00011100
+                                                                 00111000xx1xxxxx110000xxxxxxxxxx
                                                                  ldaprb.  */
                                                               return 932;
                                                             }
@@ -1192,7 +1192,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000011xxxxx1xx00011110
+                                                                 01111000xx1xxxxx110000xxxxxxxxxx
                                                                  ldaprh.  */
                                                               return 933;
                                                             }
@@ -1201,7 +1201,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000011xxxxx1xx000111x1
+                                                             1x111000xx1xxxxx110000xxxxxxxxxx
                                                              ldapr.  */
                                                           return 934;
                                                         }
@@ -1222,7 +1222,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx10000011100
+                                                                     00111000001xxxxxx01000xxxxxxxxxx
                                                                      ldeorb.  */
                                                                   return 1030;
                                                                 }
@@ -1230,7 +1230,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx10000011110
+                                                                     01111000001xxxxxx01000xxxxxxxxxx
                                                                      ldeorh.  */
                                                                   return 1031;
                                                                 }
@@ -1239,7 +1239,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00010xxxxxx100000111x1
+                                                                 1x111000001xxxxxx01000xxxxxxxxxx
                                                                  ldeor.  */
                                                               return 1032;
                                                             }
@@ -1252,7 +1252,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx10100011100
+                                                                     00111000101xxxxxx01000xxxxxxxxxx
                                                                      ldeorab.  */
                                                                   return 1033;
                                                                 }
@@ -1260,7 +1260,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx10100011110
+                                                                     01111000101xxxxxx01000xxxxxxxxxx
                                                                      ldeorah.  */
                                                                   return 1036;
                                                                 }
@@ -1269,7 +1269,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00010xxxxxx101000111x1
+                                                                 1x111000101xxxxxx01000xxxxxxxxxx
                                                                  ldeora.  */
                                                               return 1039;
                                                             }
@@ -1285,7 +1285,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx11000011100
+                                                                     00111000011xxxxxx01000xxxxxxxxxx
                                                                      ldeorlb.  */
                                                                   return 1034;
                                                                 }
@@ -1293,7 +1293,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx11000011110
+                                                                     01111000011xxxxxx01000xxxxxxxxxx
                                                                      ldeorlh.  */
                                                                   return 1037;
                                                                 }
@@ -1302,7 +1302,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00010xxxxxx110000111x1
+                                                                 1x111000011xxxxxx01000xxxxxxxxxx
                                                                  ldeorl.  */
                                                               return 1040;
                                                             }
@@ -1315,7 +1315,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx11100011100
+                                                                     00111000111xxxxxx01000xxxxxxxxxx
                                                                      ldeoralb.  */
                                                                   return 1035;
                                                                 }
@@ -1323,7 +1323,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx11100011110
+                                                                     01111000111xxxxxx01000xxxxxxxxxx
                                                                      ldeoralh.  */
                                                                   return 1038;
                                                                 }
@@ -1332,7 +1332,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00010xxxxxx111000111x1
+                                                                 1x111000111xxxxxx01000xxxxxxxxxx
                                                                  ldeoral.  */
                                                               return 1041;
                                                             }
@@ -1351,7 +1351,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx10000011100
+                                                                     00111000001xxxxxx11000xxxxxxxxxx
                                                                      ldumaxb.  */
                                                                   return 1078;
                                                                 }
@@ -1359,7 +1359,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx10000011110
+                                                                     01111000001xxxxxx11000xxxxxxxxxx
                                                                      ldumaxh.  */
                                                                   return 1079;
                                                                 }
@@ -1368,7 +1368,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00011xxxxxx100000111x1
+                                                                 1x111000001xxxxxx11000xxxxxxxxxx
                                                                  ldumax.  */
                                                               return 1080;
                                                             }
@@ -1381,7 +1381,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx10100011100
+                                                                     00111000101xxxxxx11000xxxxxxxxxx
                                                                      ldumaxab.  */
                                                                   return 1081;
                                                                 }
@@ -1389,7 +1389,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx10100011110
+                                                                     01111000101xxxxxx11000xxxxxxxxxx
                                                                      ldumaxah.  */
                                                                   return 1084;
                                                                 }
@@ -1398,7 +1398,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00011xxxxxx101000111x1
+                                                                 1x111000101xxxxxx11000xxxxxxxxxx
                                                                  ldumaxa.  */
                                                               return 1087;
                                                             }
@@ -1414,7 +1414,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx11000011100
+                                                                     00111000011xxxxxx11000xxxxxxxxxx
                                                                      ldumaxlb.  */
                                                                   return 1082;
                                                                 }
@@ -1422,7 +1422,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx11000011110
+                                                                     01111000011xxxxxx11000xxxxxxxxxx
                                                                      ldumaxlh.  */
                                                                   return 1085;
                                                                 }
@@ -1431,7 +1431,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00011xxxxxx110000111x1
+                                                                 1x111000011xxxxxx11000xxxxxxxxxx
                                                                  ldumaxl.  */
                                                               return 1088;
                                                             }
@@ -1444,7 +1444,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx11100011100
+                                                                     00111000111xxxxxx11000xxxxxxxxxx
                                                                      ldumaxalb.  */
                                                                   return 1083;
                                                                 }
@@ -1452,7 +1452,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx11100011110
+                                                                     01111000111xxxxxx11000xxxxxxxxxx
                                                                      ldumaxalh.  */
                                                                   return 1086;
                                                                 }
@@ -1461,7 +1461,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00011xxxxxx111000111x1
+                                                                 1x111000111xxxxxx11000xxxxxxxxxx
                                                                  ldumaxal.  */
                                                               return 1089;
                                                             }
@@ -1486,7 +1486,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx10000011100
+                                                                     00111000001xxxxxx00100xxxxxxxxxx
                                                                      ldclrb.  */
                                                                   return 1018;
                                                                 }
@@ -1494,7 +1494,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx10000011110
+                                                                     01111000001xxxxxx00100xxxxxxxxxx
                                                                      ldclrh.  */
                                                                   return 1019;
                                                                 }
@@ -1503,7 +1503,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00100xxxxxx100000111x1
+                                                                 1x111000001xxxxxx00100xxxxxxxxxx
                                                                  ldclr.  */
                                                               return 1020;
                                                             }
@@ -1516,7 +1516,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx10100011100
+                                                                     00111000101xxxxxx00100xxxxxxxxxx
                                                                      ldclrab.  */
                                                                   return 1021;
                                                                 }
@@ -1524,7 +1524,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx10100011110
+                                                                     01111000101xxxxxx00100xxxxxxxxxx
                                                                      ldclrah.  */
                                                                   return 1024;
                                                                 }
@@ -1533,7 +1533,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00100xxxxxx101000111x1
+                                                                 1x111000101xxxxxx00100xxxxxxxxxx
                                                                  ldclra.  */
                                                               return 1027;
                                                             }
@@ -1549,7 +1549,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx11000011100
+                                                                     00111000011xxxxxx00100xxxxxxxxxx
                                                                      ldclrlb.  */
                                                                   return 1022;
                                                                 }
@@ -1557,7 +1557,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx11000011110
+                                                                     01111000011xxxxxx00100xxxxxxxxxx
                                                                      ldclrlh.  */
                                                                   return 1025;
                                                                 }
@@ -1566,7 +1566,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00100xxxxxx110000111x1
+                                                                 1x111000011xxxxxx00100xxxxxxxxxx
                                                                  ldclrl.  */
                                                               return 1028;
                                                             }
@@ -1579,7 +1579,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx11100011100
+                                                                     00111000111xxxxxx00100xxxxxxxxxx
                                                                      ldclralb.  */
                                                                   return 1023;
                                                                 }
@@ -1587,7 +1587,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx11100011110
+                                                                     01111000111xxxxxx00100xxxxxxxxxx
                                                                      ldclralh.  */
                                                                   return 1026;
                                                                 }
@@ -1596,7 +1596,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00100xxxxxx111000111x1
+                                                                 1x111000111xxxxxx00100xxxxxxxxxx
                                                                  ldclral.  */
                                                               return 1029;
                                                             }
@@ -1615,7 +1615,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx10000011100
+                                                                     00111000001xxxxxx10100xxxxxxxxxx
                                                                      ldsminb.  */
                                                                   return 1066;
                                                                 }
@@ -1623,7 +1623,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx10000011110
+                                                                     01111000001xxxxxx10100xxxxxxxxxx
                                                                      ldsminh.  */
                                                                   return 1067;
                                                                 }
@@ -1632,7 +1632,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00101xxxxxx100000111x1
+                                                                 1x111000001xxxxxx10100xxxxxxxxxx
                                                                  ldsmin.  */
                                                               return 1068;
                                                             }
@@ -1645,7 +1645,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx10100011100
+                                                                     00111000101xxxxxx10100xxxxxxxxxx
                                                                      ldsminab.  */
                                                                   return 1069;
                                                                 }
@@ -1653,7 +1653,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx10100011110
+                                                                     01111000101xxxxxx10100xxxxxxxxxx
                                                                      ldsminah.  */
                                                                   return 1072;
                                                                 }
@@ -1662,7 +1662,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00101xxxxxx101000111x1
+                                                                 1x111000101xxxxxx10100xxxxxxxxxx
                                                                  ldsmina.  */
                                                               return 1075;
                                                             }
@@ -1678,7 +1678,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx11000011100
+                                                                     00111000011xxxxxx10100xxxxxxxxxx
                                                                      ldsminlb.  */
                                                                   return 1070;
                                                                 }
@@ -1686,7 +1686,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx11000011110
+                                                                     01111000011xxxxxx10100xxxxxxxxxx
                                                                      ldsminlh.  */
                                                                   return 1073;
                                                                 }
@@ -1695,7 +1695,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00101xxxxxx110000111x1
+                                                                 1x111000011xxxxxx10100xxxxxxxxxx
                                                                  ldsminl.  */
                                                               return 1076;
                                                             }
@@ -1708,7 +1708,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx11100011100
+                                                                     00111000111xxxxxx10100xxxxxxxxxx
                                                                      ldsminalb.  */
                                                                   return 1071;
                                                                 }
@@ -1716,7 +1716,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx11100011110
+                                                                     01111000111xxxxxx10100xxxxxxxxxx
                                                                      ldsminalh.  */
                                                                   return 1074;
                                                                 }
@@ -1725,7 +1725,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00101xxxxxx111000111x1
+                                                                 1x111000111xxxxxx10100xxxxxxxxxx
                                                                  ldsminal.  */
                                                               return 1077;
                                                             }
@@ -1747,7 +1747,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx10000011100
+                                                                     00111000001xxxxxx01100xxxxxxxxxx
                                                                      ldsetb.  */
                                                                   return 1042;
                                                                 }
@@ -1755,7 +1755,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx10000011110
+                                                                     01111000001xxxxxx01100xxxxxxxxxx
                                                                      ldseth.  */
                                                                   return 1043;
                                                                 }
@@ -1764,7 +1764,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00110xxxxxx100000111x1
+                                                                 1x111000001xxxxxx01100xxxxxxxxxx
                                                                  ldset.  */
                                                               return 1044;
                                                             }
@@ -1777,7 +1777,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx10100011100
+                                                                     00111000101xxxxxx01100xxxxxxxxxx
                                                                      ldsetab.  */
                                                                   return 1045;
                                                                 }
@@ -1785,7 +1785,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx10100011110
+                                                                     01111000101xxxxxx01100xxxxxxxxxx
                                                                      ldsetah.  */
                                                                   return 1048;
                                                                 }
@@ -1794,7 +1794,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00110xxxxxx101000111x1
+                                                                 1x111000101xxxxxx01100xxxxxxxxxx
                                                                  ldseta.  */
                                                               return 1051;
                                                             }
@@ -1810,7 +1810,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx11000011100
+                                                                     00111000011xxxxxx01100xxxxxxxxxx
                                                                      ldsetlb.  */
                                                                   return 1046;
                                                                 }
@@ -1818,7 +1818,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx11000011110
+                                                                     01111000011xxxxxx01100xxxxxxxxxx
                                                                      ldsetlh.  */
                                                                   return 1049;
                                                                 }
@@ -1827,7 +1827,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00110xxxxxx110000111x1
+                                                                 1x111000011xxxxxx01100xxxxxxxxxx
                                                                  ldsetl.  */
                                                               return 1052;
                                                             }
@@ -1840,7 +1840,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx11100011100
+                                                                     00111000111xxxxxx01100xxxxxxxxxx
                                                                      ldsetalb.  */
                                                                   return 1047;
                                                                 }
@@ -1848,7 +1848,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx11100011110
+                                                                     01111000111xxxxxx01100xxxxxxxxxx
                                                                      ldsetalh.  */
                                                                   return 1050;
                                                                 }
@@ -1857,7 +1857,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00110xxxxxx111000111x1
+                                                                 1x111000111xxxxxx01100xxxxxxxxxx
                                                                  ldsetal.  */
                                                               return 1053;
                                                             }
@@ -1876,7 +1876,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx10000011100
+                                                                     00111000001xxxxxx11100xxxxxxxxxx
                                                                      lduminb.  */
                                                                   return 1090;
                                                                 }
@@ -1884,7 +1884,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx10000011110
+                                                                     01111000001xxxxxx11100xxxxxxxxxx
                                                                      lduminh.  */
                                                                   return 1091;
                                                                 }
@@ -1893,7 +1893,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00111xxxxxx100000111x1
+                                                                 1x111000001xxxxxx11100xxxxxxxxxx
                                                                  ldumin.  */
                                                               return 1092;
                                                             }
@@ -1906,7 +1906,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx10100011100
+                                                                     00111000101xxxxxx11100xxxxxxxxxx
                                                                      lduminab.  */
                                                                   return 1093;
                                                                 }
@@ -1914,7 +1914,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx10100011110
+                                                                     01111000101xxxxxx11100xxxxxxxxxx
                                                                      lduminah.  */
                                                                   return 1096;
                                                                 }
@@ -1923,7 +1923,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00111xxxxxx101000111x1
+                                                                 1x111000101xxxxxx11100xxxxxxxxxx
                                                                  ldumina.  */
                                                               return 1099;
                                                             }
@@ -1939,7 +1939,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx11000011100
+                                                                     00111000011xxxxxx11100xxxxxxxxxx
                                                                      lduminlb.  */
                                                                   return 1094;
                                                                 }
@@ -1947,7 +1947,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx11000011110
+                                                                     01111000011xxxxxx11100xxxxxxxxxx
                                                                      lduminlh.  */
                                                                   return 1097;
                                                                 }
@@ -1956,7 +1956,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00111xxxxxx110000111x1
+                                                                 1x111000011xxxxxx11100xxxxxxxxxx
                                                                  lduminl.  */
                                                               return 1100;
                                                             }
@@ -1969,7 +1969,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx11100011100
+                                                                     00111000111xxxxxx11100xxxxxxxxxx
                                                                      lduminalb.  */
                                                                   return 1095;
                                                                 }
@@ -1977,7 +1977,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx11100011110
+                                                                     01111000111xxxxxx11100xxxxxxxxxx
                                                                      lduminalh.  */
                                                                   return 1098;
                                                                 }
@@ -1986,7 +1986,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00111xxxxxx111000111x1
+                                                                 1x111000111xxxxxx11100xxxxxxxxxx
                                                                  lduminal.  */
                                                               return 1101;
                                                             }
@@ -2011,7 +2011,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx00000011100
+                                                         00111000000xxxxxxxxx10xxxxxxxxxx
                                                          sttrb.  */
                                                       return 887;
                                                     }
@@ -2019,7 +2019,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx00000011110
+                                                         01111000000xxxxxxxxx10xxxxxxxxxx
                                                          sttrh.  */
                                                       return 890;
                                                     }
@@ -2028,7 +2028,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx000000111x1
+                                                     1x111000000xxxxxxxxx10xxxxxxxxxx
                                                      sttr.  */
                                                   return 893;
                                                 }
@@ -2041,7 +2041,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx01000011100
+                                                         00111000010xxxxxxxxx10xxxxxxxxxx
                                                          ldtrb.  */
                                                       return 888;
                                                     }
@@ -2049,7 +2049,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx01000011110
+                                                         01111000010xxxxxxxxx10xxxxxxxxxx
                                                          ldtrh.  */
                                                       return 891;
                                                     }
@@ -2058,7 +2058,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx010000111x1
+                                                     1x111000010xxxxxxxxx10xxxxxxxxxx
                                                      ldtr.  */
                                                   return 894;
                                                 }
@@ -2072,7 +2072,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx0x100011100
+                                                     001110001x0xxxxxxxxx10xxxxxxxxxx
                                                      ldtrsb.  */
                                                   return 889;
                                                 }
@@ -2080,7 +2080,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx0x100011101
+                                                     101110001x0xxxxxxxxx10xxxxxxxxxx
                                                      ldtrsw.  */
                                                   return 895;
                                                 }
@@ -2089,7 +2089,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx01xxxxxxxxx0x10001111x
+                                                 x11110001x0xxxxxxxxx10xxxxxxxxxx
                                                  ldtrsh.  */
                                               return 892;
                                             }
@@ -2107,7 +2107,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx10000011100
+                                                         00111000001xxxxxxxxx10xxxxxxxxxx
                                                          strb.  */
                                                       return 875;
                                                     }
@@ -2115,7 +2115,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx10000011110
+                                                         01111000001xxxxxxxxx10xxxxxxxxxx
                                                          strh.  */
                                                       return 880;
                                                     }
@@ -2124,7 +2124,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx100000111x1
+                                                     1x111000001xxxxxxxxx10xxxxxxxxxx
                                                      str.  */
                                                   return 883;
                                                 }
@@ -2137,7 +2137,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx11000011100
+                                                         00111000011xxxxxxxxx10xxxxxxxxxx
                                                          ldrb.  */
                                                       return 876;
                                                     }
@@ -2145,7 +2145,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx11000011110
+                                                         01111000011xxxxxxxxx10xxxxxxxxxx
                                                          ldrh.  */
                                                       return 881;
                                                     }
@@ -2154,7 +2154,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx110000111x1
+                                                     1x111000011xxxxxxxxx10xxxxxxxxxx
                                                      ldr.  */
                                                   return 884;
                                                 }
@@ -2168,7 +2168,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx1x100011100
+                                                     001110001x1xxxxxxxxx10xxxxxxxxxx
                                                      ldrsb.  */
                                                   return 877;
                                                 }
@@ -2176,7 +2176,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx1x100011101
+                                                     101110001x1xxxxxxxxx10xxxxxxxxxx
                                                      ldrsw.  */
                                                   return 885;
                                                 }
@@ -2187,7 +2187,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx1x100011110
+                                                     011110001x1xxxxxxxxx10xxxxxxxxxx
                                                      ldrsh.  */
                                                   return 882;
                                                 }
@@ -2195,7 +2195,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx1x100011111
+                                                     111110001x1xxxxxxxxx10xxxxxxxxxx
                                                      prfm.  */
                                                   return 886;
                                                 }
@@ -2218,7 +2218,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1xxxxxxxxxx00000011100
+                                                     00111000000xxxxxxxxxx1xxxxxxxxxx
                                                      strb.  */
                                                   return 852;
                                                 }
@@ -2226,7 +2226,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1xxxxxxxxxx00000011110
+                                                     01111000000xxxxxxxxxx1xxxxxxxxxx
                                                      strh.  */
                                                   return 857;
                                                 }
@@ -2235,7 +2235,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1xxxxxxxxxx000000111x1
+                                                 1x111000000xxxxxxxxxx1xxxxxxxxxx
                                                  str.  */
                                               return 860;
                                             }
@@ -2248,7 +2248,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1xxxxxxxxxx01000011100
+                                                     00111000010xxxxxxxxxx1xxxxxxxxxx
                                                      ldrb.  */
                                                   return 853;
                                                 }
@@ -2256,7 +2256,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1xxxxxxxxxx01000011110
+                                                     01111000010xxxxxxxxxx1xxxxxxxxxx
                                                      ldrh.  */
                                                   return 858;
                                                 }
@@ -2265,7 +2265,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1xxxxxxxxxx010000111x1
+                                                 1x111000010xxxxxxxxxx1xxxxxxxxxx
                                                  ldr.  */
                                               return 861;
                                             }
@@ -2279,7 +2279,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1xxxxxxxxxx0x100011100
+                                                 001110001x0xxxxxxxxxx1xxxxxxxxxx
                                                  ldrsb.  */
                                               return 854;
                                             }
@@ -2287,7 +2287,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1xxxxxxxxxx0x100011101
+                                                 101110001x0xxxxxxxxxx1xxxxxxxxxx
                                                  ldrsw.  */
                                               return 862;
                                             }
@@ -2296,7 +2296,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx1xxxxxxxxxx0x10001111x
+                                             x11110001x0xxxxxxxxxx1xxxxxxxxxx
                                              ldrsh.  */
                                           return 859;
                                         }
@@ -2308,7 +2308,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx1xxxxxxxxxx1x0000111xx
+                                         xx1110000x1xxxxxxxxxx1xxxxxxxxxx
                                          ldraa.  */
                                       return 908;
                                     }
@@ -2316,7 +2316,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx1xxxxxxxxxx1x1000111xx
+                                         xx1110001x1xxxxxxxxxx1xxxxxxxxxx
                                          ldrab.  */
                                       return 909;
                                     }
@@ -2330,103 +2330,246 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           if (((word >> 22) & 0x1) == 0)
                             {
-                              if (((word >> 31) & 0x1) == 0)
+                              if (((word >> 29) & 0x1) == 0)
                                 {
                                   if (((word >> 30) & 0x1) == 0)
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxxx0010011x00
-                                         strb.  */
-                                      return 863;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0001100100xxxxxxxxxxxxxxxxxxxxxx
+                                             stlurb.  */
+                                          return 2027;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1001100100xxxxxxxxxxxxxxxxxxxxxx
+                                             stlur.  */
+                                          return 2035;
+                                        }
                                     }
                                   else
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxxx0010011x10
-                                         strh.  */
-                                      return 868;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0101100100xxxxxxxxxxxxxxxxxxxxxx
+                                             stlurh.  */
+                                          return 2031;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1101100100xxxxxxxxxxxxxxxxxxxxxx
+                                             stlur.  */
+                                          return 2038;
+                                        }
                                     }
                                 }
                               else
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx0010011xx1
-                                     str.  */
-                                  return 871;
+                                  if (((word >> 31) & 0x1) == 0)
+                                    {
+                                      if (((word >> 30) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0011100100xxxxxxxxxxxxxxxxxxxxxx
+                                             strb.  */
+                                          return 863;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0111100100xxxxxxxxxxxxxxxxxxxxxx
+                                             strh.  */
+                                          return 868;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         1x11100100xxxxxxxxxxxxxxxxxxxxxx
+                                         str.  */
+                                      return 871;
+                                    }
                                 }
                             }
                           else
                             {
-                              if (((word >> 31) & 0x1) == 0)
+                              if (((word >> 29) & 0x1) == 0)
                                 {
                                   if (((word >> 30) & 0x1) == 0)
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxxx1010011x00
-                                         ldrb.  */
-                                      return 864;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0001100101xxxxxxxxxxxxxxxxxxxxxx
+                                             ldapurb.  */
+                                          return 2028;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1001100101xxxxxxxxxxxxxxxxxxxxxx
+                                             ldapur.  */
+                                          return 2036;
+                                        }
                                     }
                                   else
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxxx1010011x10
-                                         ldrh.  */
-                                      return 869;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0101100101xxxxxxxxxxxxxxxxxxxxxx
+                                             ldapurh.  */
+                                          return 2032;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1101100101xxxxxxxxxxxxxxxxxxxxxx
+                                             ldapur.  */
+                                          return 2039;
+                                        }
                                     }
                                 }
                               else
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx1010011xx1
-                                     ldr.  */
-                                  return 872;
+                                  if (((word >> 31) & 0x1) == 0)
+                                    {
+                                      if (((word >> 30) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0011100101xxxxxxxxxxxxxxxxxxxxxx
+                                             ldrb.  */
+                                          return 864;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0111100101xxxxxxxxxxxxxxxxxxxxxx
+                                             ldrh.  */
+                                          return 869;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         1x11100101xxxxxxxxxxxxxxxxxxxxxx
+                                         ldr.  */
+                                      return 872;
+                                    }
                                 }
                             }
                         }
                       else
                         {
-                          if (((word >> 30) & 0x1) == 0)
+                          if (((word >> 29) & 0x1) == 0)
                             {
-                              if (((word >> 31) & 0x1) == 0)
+                              if (((word >> 22) & 0x1) == 0)
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxxx110011x00
-                                     ldrsb.  */
-                                  return 865;
+                                  if (((word >> 30) & 0x1) == 0)
+                                    {
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0001100110xxxxxxxxxxxxxxxxxxxxxx
+                                             ldapursb.  */
+                                          return 2030;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1001100110xxxxxxxxxxxxxxxxxxxxxx
+                                             ldapursw.  */
+                                          return 2037;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         x101100110xxxxxxxxxxxxxxxxxxxxxx
+                                         ldapursh.  */
+                                      return 2034;
+                                    }
                                 }
                               else
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxxx110011x01
-                                     ldrsw.  */
-                                  return 873;
+                                  if (((word >> 30) & 0x1) == 0)
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         x001100111xxxxxxxxxxxxxxxxxxxxxx
+                                         ldapursb.  */
+                                      return 2029;
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         x101100111xxxxxxxxxxxxxxxxxxxxxx
+                                         ldapursh.  */
+                                      return 2033;
+                                    }
                                 }
                             }
                           else
                             {
-                              if (((word >> 31) & 0x1) == 0)
+                              if (((word >> 30) & 0x1) == 0)
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxxx110011x10
-                                     ldrsh.  */
-                                  return 870;
+                                  if (((word >> 31) & 0x1) == 0)
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         001110011xxxxxxxxxxxxxxxxxxxxxxx
+                                         ldrsb.  */
+                                      return 865;
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         101110011xxxxxxxxxxxxxxxxxxxxxxx
+                                         ldrsw.  */
+                                      return 873;
+                                    }
                                 }
                               else
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxxx110011x11
-                                     prfm.  */
-                                  return 874;
+                                  if (((word >> 31) & 0x1) == 0)
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         011110011xxxxxxxxxxxxxxxxxxxxxxx
+                                         ldrsh.  */
+                                      return 870;
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         111110011xxxxxxxxxxxxxxxxxxxxxxx
+                                         prfm.  */
+                                      return 874;
+                                    }
                                 }
                             }
                         }
@@ -2448,7 +2591,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx00100x00x
+                                 x00x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  and.  */
                               return 959;
                             }
@@ -2456,7 +2599,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx00100x01x
+                                 x10x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  eor.  */
                               return 963;
                             }
@@ -2467,7 +2610,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx00100x10x
+                                 x01x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  orr.  */
                               return 961;
                             }
@@ -2475,7 +2618,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx00100x11x
+                                 x11x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  ands.  */
                               return 964;
                             }
@@ -2489,7 +2632,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx10100x00x
+                                 x00x00101xxxxxxxxxxxxxxxxxxxxxxx
                                  movn.  */
                               return 1150;
                             }
@@ -2497,7 +2640,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx10100x01x
+                                 x10x00101xxxxxxxxxxxxxxxxxxxxxxx
                                  movz.  */
                               return 1152;
                             }
@@ -2506,7 +2649,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxx10100x1xx
+                             xx1x00101xxxxxxxxxxxxxxxxxxxxxxx
                              movk.  */
                           return 1154;
                         }
@@ -2524,7 +2667,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx0101000x
+                                     x0001010xx0xxxxxxxxxxxxxxxxxxxxx
                                      and.  */
                                   return 966;
                                 }
@@ -2532,7 +2675,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx0101001x
+                                     x1001010xx0xxxxxxxxxxxxxxxxxxxxx
                                      eor.  */
                                   return 973;
                                 }
@@ -2543,7 +2686,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx0101010x
+                                     x0101010xx0xxxxxxxxxxxxxxxxxxxxx
                                      orr.  */
                                   return 968;
                                 }
@@ -2551,7 +2694,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx0101011x
+                                     x1101010xx0xxxxxxxxxxxxxxxxxxxxx
                                      ands.  */
                                   return 975;
                                 }
@@ -2573,7 +2716,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0000101100x
+                                                     x0011010000xxxxxxxxx00xxxxxxxxxx
                                                      adc.  */
                                                   return 0;
                                                 }
@@ -2581,7 +2724,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0000101101x
+                                                     x1011010000xxxxxxxxx00xxxxxxxxxx
                                                      sbc.  */
                                                   return 2;
                                                 }
@@ -2592,7 +2735,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0000101110x
+                                                     x0111010000xxxxxxxxx00xxxxxxxxxx
                                                      adcs.  */
                                                   return 1;
                                                 }
@@ -2600,7 +2743,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0000101111x
+                                                     x1111010000xxxxxxxxx00xxxxxxxxxx
                                                      sbcs.  */
                                                   return 4;
                                                 }
@@ -2612,7 +2755,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx00xxxxxxxxx00101011x0x
+                                                 x0x11010100xxxxxxxxx00xxxxxxxxxx
                                                  csel.  */
                                               return 656;
                                             }
@@ -2620,7 +2763,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx00xxxxxxxxx00101011x1x
+                                                 x1x11010100xxxxxxxxx00xxxxxxxxxx
                                                  csinv.  */
                                               return 660;
                                             }
@@ -2634,7 +2777,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx00xxxxxxxxx01001011x0x
+                                                 x0x11010010xxxxxxxxx00xxxxxxxxxx
                                                  ccmn.  */
                                               return 654;
                                             }
@@ -2642,7 +2785,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx00xxxxxxxxx01001011x1x
+                                                 x1x11010010xxxxxxxxx00xxxxxxxxxx
                                                  ccmp.  */
                                               return 655;
                                             }
@@ -2659,7 +2802,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx00000x0xxxx01101011xxx
+                                                             xxx11010110xxxx0x00000xxxxxxxxxx
                                                              rbit.  */
                                                           return 679;
                                                         }
@@ -2667,7 +2810,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx00000x1xxxx01101011xxx
+                                                             xxx11010110xxxx1x00000xxxxxxxxxx
                                                              pacia.  */
                                                           return 687;
                                                         }
@@ -2678,7 +2821,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx00001xxxxxx01101011x0x
+                                                             x0x11010110xxxxxx10000xxxxxxxxxx
                                                              crc32b.  */
                                                           return 716;
                                                         }
@@ -2686,7 +2829,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx00001xxxxxx01101011x1x
+                                                             x1x11010110xxxxxx10000xxxxxxxxxx
                                                              xpaci.  */
                                                           return 703;
                                                         }
@@ -2698,7 +2841,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0001xxxxxxx01101011x0x
+                                                         x0x11010110xxxxxxx1000xxxxxxxxxx
                                                          lslv.  */
                                                       return 707;
                                                     }
@@ -2706,7 +2849,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0001xxxxxxx01101011x1x
+                                                         x1x11010110xxxxxxx1000xxxxxxxxxx
                                                          paciza.  */
                                                       return 695;
                                                     }
@@ -2722,7 +2865,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx00100x0xxxx01101011xxx
+                                                             xxx11010110xxxx0x00100xxxxxxxxxx
                                                              clz.  */
                                                           return 684;
                                                         }
@@ -2730,7 +2873,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx00100x1xxxx01101011xxx
+                                                             xxx11010110xxxx1x00100xxxxxxxxxx
                                                              autia.  */
                                                           return 691;
                                                         }
@@ -2739,7 +2882,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00101xxxxxx01101011xxx
+                                                         xxx11010110xxxxxx10100xxxxxxxxxx
                                                          crc32cb.  */
                                                       return 720;
                                                     }
@@ -2750,7 +2893,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0011xxxxxxx01101011x0x
+                                                         x0x11010110xxxxxxx1100xxxxxxxxxx
                                                          pacga.  */
                                                       return 715;
                                                     }
@@ -2758,7 +2901,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0011xxxxxxx01101011x1x
+                                                         x1x11010110xxxxxxx1100xxxxxxxxxx
                                                          autiza.  */
                                                       return 699;
                                                     }
@@ -2769,131 +2912,153 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 }
                               else
                                 {
-                                  if (((word >> 23) & 0x1) == 0)
+                                  if (((word >> 22) & 0x1) == 0)
                                     {
-                                      if (((word >> 30) & 0x1) == 0)
+                                      if (((word >> 14) & 0x1) == 0)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx01xxxxxxxxx0x001011x0x
-                                             ccmn.  */
-                                          return 652;
+                                             xxx11010x00xxxxxx0xx10xxxxxxxxxx
+                                             setf8.  */
+                                          return 2025;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx01xxxxxxxxx0x001011x1x
-                                             ccmp.  */
-                                          return 653;
+                                             xxx11010x00xxxxxx1xx10xxxxxxxxxx
+                                             setf16.  */
+                                          return 2026;
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 12) & 0x1) == 0)
+                                      if (((word >> 23) & 0x1) == 0)
                                         {
-                                          if (((word >> 13) & 0x1) == 0)
+                                          if (((word >> 30) & 0x1) == 0)
                                             {
-                                              if (((word >> 14) & 0x1) == 0)
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x0x11010010xxxxxxxxx10xxxxxxxxxx
+                                                 ccmn.  */
+                                              return 652;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x1x11010010xxxxxxxxx10xxxxxxxxxx
+                                                 ccmp.  */
+                                              return 653;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 12) & 0x1) == 0)
+                                            {
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx01000xxxxxx0x101011x0x
-                                                         udiv.  */
-                                                      return 705;
-                                                    }
-                                                  else
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 16) & 0x1) == 0)
+                                                      if (((word >> 30) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 31) & 0x1) == 0)
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0x11010110xxxxxx00010xxxxxxxxxx
+                                                             udiv.  */
+                                                          return 705;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 16) & 0x1) == 0)
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx01000x0xxxx0x101011x10
-                                                                 rev.  */
-                                                              return 681;
+                                                              if (((word >> 31) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     01x11010110xxxx0x00010xxxxxxxxxx
+                                                                     rev.  */
+                                                                  return 681;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     11x11010110xxxx0x00010xxxxxxxxxx
+                                                                     rev32.  */
+                                                                  return 686;
+                                                                }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx01000x0xxxx0x101011x11
-                                                                 rev32.  */
-                                                              return 686;
+                                                                 x1x11010110xxxx1x00010xxxxxxxxxx
+                                                                 pacda.  */
+                                                              return 689;
                                                             }
                                                         }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx01000x1xxxx0x101011x1x
-                                                             pacda.  */
-                                                          return 689;
-                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxx11010110xxxxxx10010xxxxxxxxxx
+                                                         crc32w.  */
+                                                      return 718;
                                                     }
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx01001xxxxxx0x101011xxx
-                                                     crc32w.  */
-                                                  return 718;
+                                                  if (((word >> 30) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x0x11010110xxxxxxx1010xxxxxxxxxx
+                                                         asrv.  */
+                                                      return 711;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x1x11010110xxxxxxx1010xxxxxxxxxx
+                                                         pacdza.  */
+                                                      return 697;
+                                                    }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 30) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx0101xxxxxxx0x101011x0x
-                                                     asrv.  */
-                                                  return 711;
+                                                  if (((word >> 14) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxx11010110xxxxxx00110xxxxxxxxxx
+                                                         autda.  */
+                                                      return 693;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxx11010110xxxxxx10110xxxxxxxxxx
+                                                         crc32cw.  */
+                                                      return 722;
+                                                    }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0101xxxxxxx0x101011x1x
-                                                     pacdza.  */
-                                                  return 697;
+                                                     xxx11010110xxxxxxx1110xxxxxxxxxx
+                                                     autdza.  */
+                                                  return 701;
                                                 }
                                             }
                                         }
-                                      else
-                                        {
-                                          if (((word >> 13) & 0x1) == 0)
-                                            {
-                                              if (((word >> 14) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx01100xxxxxx0x101011xxx
-                                                     autda.  */
-                                                  return 693;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx01101xxxxxx0x101011xxx
-                                                     crc32cw.  */
-                                                  return 722;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0111xxxxxxx0x101011xxx
-                                                 autdza.  */
-                                              return 701;
-                                            }
-                                        }
                                     }
                                 }
                             }
@@ -2903,21 +3068,32 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   if (((word >> 22) & 0x1) == 0)
                                     {
-                                      if (((word >> 30) & 0x1) == 0)
+                                      if (((word >> 23) & 0x1) == 0)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx10xxxxxxxxx00x01011x0x
-                                             csinc.  */
-                                          return 657;
+                                             xxx11010000xxxxxxxxx01xxxxxxxxxx
+                                             rmif.  */
+                                          return 2024;
                                         }
                                       else
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx10xxxxxxxxx00x01011x1x
-                                             csneg.  */
-                                          return 663;
+                                          if (((word >> 30) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x0x11010100xxxxxxxxx01xxxxxxxxxx
+                                                 csinc.  */
+                                              return 657;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x1x11010100xxxxxxxxx01xxxxxxxxxx
+                                                 csneg.  */
+                                              return 663;
+                                            }
                                         }
                                     }
                                   else
@@ -2932,7 +3108,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10000x0xxxx01x01011xxx
+                                                         xxx11010x10xxxx0x00001xxxxxxxxxx
                                                          rev16.  */
                                                       return 680;
                                                     }
@@ -2940,7 +3116,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10000x1xxxx01x01011xxx
+                                                         xxx11010x10xxxx1x00001xxxxxxxxxx
                                                          pacib.  */
                                                       return 688;
                                                     }
@@ -2951,7 +3127,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10001xxxxxx01x01011x0x
+                                                         x0x11010x10xxxxxx10001xxxxxxxxxx
                                                          crc32h.  */
                                                       return 717;
                                                     }
@@ -2959,7 +3135,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10001xxxxxx01x01011x1x
+                                                         x1x11010x10xxxxxx10001xxxxxxxxxx
                                                          xpacd.  */
                                                       return 704;
                                                     }
@@ -2971,7 +3147,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1001xxxxxxx01x01011x0x
+                                                     x0x11010x10xxxxxxx1001xxxxxxxxxx
                                                      lsrv.  */
                                                   return 709;
                                                 }
@@ -2979,7 +3155,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1001xxxxxxx01x01011x1x
+                                                     x1x11010x10xxxxxxx1001xxxxxxxxxx
                                                      pacizb.  */
                                                   return 696;
                                                 }
@@ -2995,7 +3171,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10100x0xxxx01x01011xxx
+                                                         xxx11010x10xxxx0x00101xxxxxxxxxx
                                                          cls.  */
                                                       return 685;
                                                     }
@@ -3003,7 +3179,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10100x1xxxx01x01011xxx
+                                                         xxx11010x10xxxx1x00101xxxxxxxxxx
                                                          autib.  */
                                                       return 692;
                                                     }
@@ -3012,7 +3188,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx10101xxxxxx01x01011xxx
+                                                     xxx11010x10xxxxxx10101xxxxxxxxxx
                                                      crc32ch.  */
                                                   return 721;
                                                 }
@@ -3021,7 +3197,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1011xxxxxxx01x01011xxx
+                                                 xxx11010x10xxxxxxx1101xxxxxxxxxx
                                                  autizb.  */
                                               return 700;
                                             }
@@ -3040,7 +3216,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx11000xxxxxx0xx01011x0x
+                                                     x0x11010xx0xxxxxx00011xxxxxxxxxx
                                                      sdiv.  */
                                                   return 706;
                                                 }
@@ -3050,7 +3226,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11000x0xxxx0xx01011x1x
+                                                         x1x11010xx0xxxx0x00011xxxxxxxxxx
                                                          rev.  */
                                                       return 682;
                                                     }
@@ -3058,7 +3234,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11000x1xxxx0xx01011x1x
+                                                         x1x11010xx0xxxx1x00011xxxxxxxxxx
                                                          pacdb.  */
                                                       return 690;
                                                     }
@@ -3068,7 +3244,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx11001xxxxxx0xx01011xxx
+                                                 xxx11010xx0xxxxxx10011xxxxxxxxxx
                                                  crc32x.  */
                                               return 719;
                                             }
@@ -3079,7 +3255,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1101xxxxxxx0xx01011x0x
+                                                 x0x11010xx0xxxxxxx1011xxxxxxxxxx
                                                  rorv.  */
                                               return 713;
                                             }
@@ -3087,7 +3263,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1101xxxxxxx0xx01011x1x
+                                                 x1x11010xx0xxxxxxx1011xxxxxxxxxx
                                                  pacdzb.  */
                                               return 698;
                                             }
@@ -3101,7 +3277,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx11100xxxxxx0xx01011xxx
+                                                 xxx11010xx0xxxxxx00111xxxxxxxxxx
                                                  autdb.  */
                                               return 694;
                                             }
@@ -3109,7 +3285,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx11101xxxxxx0xx01011xxx
+                                                 xxx11010xx0xxxxxx10111xxxxxxxxxx
                                                  crc32cx.  */
                                               return 723;
                                             }
@@ -3118,7 +3294,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx1111xxxxxxx0xx01011xxx
+                                             xxx11010xx0xxxxxxx1111xxxxxxxxxx
                                              autdzb.  */
                                           return 702;
                                         }
@@ -3135,7 +3311,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxx1xx0101x00x
+                                 x00x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  bic.  */
                               return 967;
                             }
@@ -3143,7 +3319,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxx1xx0101x01x
+                                 x10x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  eon.  */
                               return 974;
                             }
@@ -3154,7 +3330,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxx1xx0101x10x
+                                 x01x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  orn.  */
                               return 971;
                             }
@@ -3162,7 +3338,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxx1xx0101x11x
+                                 x11x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  bics.  */
                               return 977;
                             }
@@ -3182,7 +3358,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx01100x00x
+                                 x00x00110xxxxxxxxxxxxxxxxxxxxxxx
                                  sbfm.  */
                               return 612;
                             }
@@ -3190,7 +3366,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx01100x01x
+                                 x10x00110xxxxxxxxxxxxxxxxxxxxxxx
                                  ubfm.  */
                               return 623;
                             }
@@ -3199,7 +3375,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxx01100x1xx
+                             xx1x00110xxxxxxxxxxxxxxxxxxxxxxx
                              bfm.  */
                           return 619;
                         }
@@ -3208,7 +3384,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                     {
                       /* 33222222222211111111110000000000
                          10987654321098765432109876543210
-                         xxxxxxxxxxxxxxxxxxxxxxx11100xxxx
+                         xxxx00111xxxxxxxxxxxxxxxxxxxxxxx
                          extr.  */
                       return 746;
                     }
@@ -3225,7 +3401,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx1101000x
+                                     x0001011xx0xxxxxxxxxxxxxxxxxxxxx
                                      add.  */
                                   return 19;
                                 }
@@ -3233,7 +3409,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx1101001x
+                                     x1001011xx0xxxxxxxxxxxxxxxxxxxxx
                                      sub.  */
                                   return 22;
                                 }
@@ -3244,7 +3420,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx1101010x
+                                     x0101011xx0xxxxxxxxxxxxxxxxxxxxx
                                      adds.  */
                                   return 20;
                                 }
@@ -3252,7 +3428,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx1101011x
+                                     x1101011xx0xxxxxxxxxxxxxxxxxxxxx
                                      subs.  */
                                   return 24;
                                 }
@@ -3266,7 +3442,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxx0xxxxx00x11011xxx
+                                     xxx11011x00xxxxx0xxxxxxxxxxxxxxx
                                      madd.  */
                                   return 724;
                                 }
@@ -3276,7 +3452,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx0xxxxx01011011xxx
+                                         xxx11011010xxxxx0xxxxxxxxxxxxxxx
                                          smulh.  */
                                       return 732;
                                     }
@@ -3284,7 +3460,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx0xxxxx01111011xxx
+                                         xxx11011110xxxxx0xxxxxxxxxxxxxxx
                                          umulh.  */
                                       return 737;
                                     }
@@ -3294,7 +3470,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxx1xxxxx0xx11011xxx
+                                 xxx11011xx0xxxxx1xxxxxxxxxxxxxxx
                                  msub.  */
                               return 726;
                             }
@@ -3312,7 +3488,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx1x01101000x
+                                         x00010110x1xxxxxxxxxxxxxxxxxxxxx
                                          add.  */
                                       return 6;
                                     }
@@ -3320,7 +3496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx1x01101001x
+                                         x10010110x1xxxxxxxxxxxxxxxxxxxxx
                                          sub.  */
                                       return 9;
                                     }
@@ -3331,7 +3507,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx1x01101010x
+                                         x01010110x1xxxxxxxxxxxxxxxxxxxxx
                                          adds.  */
                                       return 7;
                                     }
@@ -3339,7 +3515,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx1x01101011x
+                                         x11010110x1xxxxxxxxxxxxxxxxxxxxx
                                          subs.  */
                                       return 10;
                                     }
@@ -3351,7 +3527,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxx0xxxxx1x011011xxx
+                                     xxx110110x1xxxxx0xxxxxxxxxxxxxxx
                                      smaddl.  */
                                   return 728;
                                 }
@@ -3359,7 +3535,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxx1xxxxx1x011011xxx
+                                     xxx110110x1xxxxx1xxxxxxxxxxxxxxx
                                      smsubl.  */
                                   return 730;
                                 }
@@ -3371,7 +3547,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxx0xxxxx1x11101xxxx
+                                 xxxx10111x1xxxxx0xxxxxxxxxxxxxxx
                                  umaddl.  */
                               return 733;
                             }
@@ -3379,7 +3555,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxx1xxxxx1x11101xxxx
+                                 xxxx10111x1xxxxx1xxxxxxxxxxxxxxx
                                  umsubl.  */
                               return 735;
                             }
@@ -3423,7 +3599,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000000000xx0x100000
+                                                                     000001x0xx000000000xxxxxxxxxxxxx
                                                                      add.  */
                                                                   return 1232;
                                                                 }
@@ -3431,7 +3607,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000000010xx0x100000
+                                                                     000001x0xx010000000xxxxxxxxxxxxx
                                                                      mul.  */
                                                                   return 1685;
                                                                 }
@@ -3442,7 +3618,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000000100xx0x100000
+                                                                     000001x0xx001000000xxxxxxxxxxxxx
                                                                      smax.  */
                                                                   return 1764;
                                                                 }
@@ -3450,7 +3626,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000000110xx0x100000
+                                                                     000001x0xx011000000xxxxxxxxxxxxx
                                                                      orr.  */
                                                                   return 1696;
                                                                 }
@@ -3462,7 +3638,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0000010x0xx0x100000
+                                                                 000001x0xx0x0100000xxxxxxxxxxxxx
                                                                  sdiv.  */
                                                               return 1755;
                                                             }
@@ -3470,7 +3646,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0000011x0xx0x100000
+                                                                 000001x0xx0x1100000xxxxxxxxxxxxx
                                                                  sabd.  */
                                                               return 1746;
                                                             }
@@ -3484,7 +3660,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0000100x0xx0x100000
+                                                                 000001x0xx0x0010000xxxxxxxxxxxxx
                                                                  smulh.  */
                                                               return 1769;
                                                             }
@@ -3494,7 +3670,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000010100xx0x100000
+                                                                     000001x0xx001010000xxxxxxxxxxxxx
                                                                      smin.  */
                                                                   return 1767;
                                                                 }
@@ -3502,7 +3678,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000010110xx0x100000
+                                                                     000001x0xx011010000xxxxxxxxxxxxx
                                                                      and.  */
                                                                   return 1240;
                                                                 }
@@ -3512,7 +3688,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx000011xx0xx0x100000
+                                                             000001x0xx0xx110000xxxxxxxxxxxxx
                                                              sdivr.  */
                                                           return 1756;
                                                         }
@@ -3528,7 +3704,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0001000x0xx0x100000
+                                                                 000001x0xx0x0001000xxxxxxxxxxxxx
                                                                  sub.  */
                                                               return 1885;
                                                             }
@@ -3538,7 +3714,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000100100xx0x100000
+                                                                     000001x0xx001001000xxxxxxxxxxxxx
                                                                      umax.  */
                                                                   return 1913;
                                                                 }
@@ -3546,7 +3722,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000100110xx0x100000
+                                                                     000001x0xx011001000xxxxxxxxxxxxx
                                                                      eor.  */
                                                                   return 1327;
                                                                 }
@@ -3558,7 +3734,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0001010x0xx0x100000
+                                                                 000001x0xx0x0101000xxxxxxxxxxxxx
                                                                  udiv.  */
                                                               return 1907;
                                                             }
@@ -3566,7 +3742,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0001011x0xx0x100000
+                                                                 000001x0xx0x1101000xxxxxxxxxxxxx
                                                                  uabd.  */
                                                               return 1898;
                                                             }
@@ -3582,7 +3758,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000110000xx0x100000
+                                                                     000001x0xx000011000xxxxxxxxxxxxx
                                                                      subr.  */
                                                                   return 1887;
                                                                 }
@@ -3590,7 +3766,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000110010xx0x100000
+                                                                     000001x0xx010011000xxxxxxxxxxxxx
                                                                      umulh.  */
                                                                   return 1918;
                                                                 }
@@ -3601,7 +3777,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000110100xx0x100000
+                                                                     000001x0xx001011000xxxxxxxxxxxxx
                                                                      umin.  */
                                                                   return 1916;
                                                                 }
@@ -3609,7 +3785,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000110110xx0x100000
+                                                                     000001x0xx011011000xxxxxxxxxxxxx
                                                                      bic.  */
                                                                   return 1252;
                                                                 }
@@ -3619,7 +3795,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx000111xx0xx0x100000
+                                                             000001x0xx0xx111000xxxxxxxxxxxxx
                                                              udivr.  */
                                                           return 1908;
                                                         }
@@ -3632,7 +3808,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx000xxxxx0x00x100001
+                                                     100001x00x0xxxxx000xxxxxxxxxxxxx
                                                      ld1sb.  */
                                                   return 1514;
                                                 }
@@ -3640,7 +3816,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx000xxxxx0x10x100001
+                                                     100001x01x0xxxxx000xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                   return 1525;
                                                 }
@@ -3652,7 +3828,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx000xxxxx0x00x10001x
+                                                 x10001x00x0xxxxx000xxxxxxxxxxxxx
                                                  ld1sb.  */
                                               return 1518;
                                             }
@@ -3664,7 +3840,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0xx000xxxxx0x10x100010
+                                                         010001x01x0xxxxx000xx0xxxxxxxxxx
                                                          sdot.  */
                                                       return 1757;
                                                     }
@@ -3672,7 +3848,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1xx000xxxxx0x10x100010
+                                                         010001x01x0xxxxx000xx1xxxxxxxxxx
                                                          udot.  */
                                                       return 1909;
                                                     }
@@ -3681,7 +3857,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx000xxxxx0x10x100011
+                                                     110001x01x0xxxxx000xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                   return 1529;
                                                 }
@@ -3702,7 +3878,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000000xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx000000xxxxxxxxxx
                                                              add.  */
                                                           return 1230;
                                                         }
@@ -3710,7 +3886,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001000xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx000100xxxxxxxxxx
                                                              sqadd.  */
                                                           return 1771;
                                                         }
@@ -3719,7 +3895,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01x000xxxxx1xx0x100000
+                                                         000001x0xx1xxxxx000x10xxxxxxxxxx
                                                          sqsub.  */
                                                       return 1801;
                                                     }
@@ -3732,7 +3908,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx100000xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx000001xxxxxxxxxx
                                                              sub.  */
                                                           return 1883;
                                                         }
@@ -3740,7 +3916,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx101000xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx000101xxxxxxxxxx
                                                              uqadd.  */
                                                           return 1919;
                                                         }
@@ -3749,7 +3925,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11x000xxxxx1xx0x100000
+                                                         000001x0xx1xxxxx000x11xxxxxxxxxx
                                                          uqsub.  */
                                                       return 1949;
                                                     }
@@ -3761,7 +3937,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx000xxxxx1x00x100001
+                                                     100001x00x1xxxxx000xxxxxxxxxxxxx
                                                      prfb.  */
                                                   return 1704;
                                                 }
@@ -3769,7 +3945,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx000xxxxx1x10x100001
+                                                     100001x01x1xxxxx000xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                   return 1526;
                                                 }
@@ -3781,7 +3957,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx000xxxxx1x00x10001x
+                                                 x10001x00x1xxxxx000xxxxxxxxxxxxx
                                                  prfb.  */
                                               return 1705;
                                             }
@@ -3795,7 +3971,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0xx000xxxxx1010x100010
+                                                             010001x0101xxxxx000xx0xxxxxxxxxx
                                                              sdot.  */
                                                           return 1758;
                                                         }
@@ -3803,7 +3979,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0xx000xxxxx1110x100010
+                                                             010001x0111xxxxx000xx0xxxxxxxxxx
                                                              sdot.  */
                                                           return 1759;
                                                         }
@@ -3814,7 +3990,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1xx000xxxxx1010x100010
+                                                             010001x0101xxxxx000xx1xxxxxxxxxx
                                                              udot.  */
                                                           return 1910;
                                                         }
@@ -3822,7 +3998,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1xx000xxxxx1110x100010
+                                                             010001x0111xxxxx000xx1xxxxxxxxxx
                                                              udot.  */
                                                           return 1911;
                                                         }
@@ -3832,7 +4008,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx000xxxxx1x10x100011
+                                                     110001x01x1xxxxx000xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                   return 1530;
                                                 }
@@ -3858,7 +4034,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010x0000xx0x100000
+                                                                 000001x0xx0000x0100xxxxxxxxxxxxx
                                                                  asr.  */
                                                               return 1248;
                                                             }
@@ -3866,7 +4042,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010x0010xx0x100000
+                                                                 000001x0xx0100x0100xxxxxxxxxxxxx
                                                                  asr.  */
                                                               return 1246;
                                                             }
@@ -3875,7 +4051,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx0010x01x0xx0x100000
+                                                             000001x0xx0x10x0100xxxxxxxxxxxxx
                                                              asr.  */
                                                           return 1247;
                                                         }
@@ -3886,7 +4062,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx0010x1x00xx0x100000
+                                                             000001x0xx00x1x0100xxxxxxxxxxxxx
                                                              asrd.  */
                                                           return 1249;
                                                         }
@@ -3894,7 +4070,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx0010x1x10xx0x100000
+                                                             000001x0xx01x1x0100xxxxxxxxxxxxx
                                                              asrr.  */
                                                           return 1250;
                                                         }
@@ -3912,7 +4088,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001100000xx0x100000
+                                                                     000001x0xx000001100xxxxxxxxxxxxx
                                                                      lsr.  */
                                                                   return 1676;
                                                                 }
@@ -3920,7 +4096,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001100010xx0x100000
+                                                                     000001x0xx010001100xxxxxxxxxxxxx
                                                                      lsr.  */
                                                                   return 1674;
                                                                 }
@@ -3929,7 +4105,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0011001x0xx0x100000
+                                                                 000001x0xx0x1001100xxxxxxxxxxxxx
                                                                  lsr.  */
                                                               return 1675;
                                                             }
@@ -3938,7 +4114,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx001101xx0xx0x100000
+                                                             000001x0xx0xx101100xxxxxxxxxxxxx
                                                              lsrr.  */
                                                           return 1677;
                                                         }
@@ -3953,7 +4129,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001110000xx0x100000
+                                                                     000001x0xx000011100xxxxxxxxxxxxx
                                                                      lsl.  */
                                                                   return 1670;
                                                                 }
@@ -3961,7 +4137,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001110010xx0x100000
+                                                                     000001x0xx010011100xxxxxxxxxxxxx
                                                                      lsl.  */
                                                                   return 1668;
                                                                 }
@@ -3970,7 +4146,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0011101x0xx0x100000
+                                                                 000001x0xx0x1011100xxxxxxxxxxxxx
                                                                  lsl.  */
                                                               return 1669;
                                                             }
@@ -3979,7 +4155,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx001111xx0xx0x100000
+                                                             000001x0xx0xx111100xxxxxxxxxxxxx
                                                              lslr.  */
                                                           return 1671;
                                                         }
@@ -3994,7 +4170,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0x0001xxxxx1xx0x100000
+                                                         000001x0xx1xxxxx1000x0xxxxxxxxxx
                                                          asr.  */
                                                       return 1244;
                                                     }
@@ -4002,7 +4178,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0x1001xxxxx1xx0x100000
+                                                         000001x0xx1xxxxx1001x0xxxxxxxxxx
                                                          asr.  */
                                                       return 1245;
                                                     }
@@ -4015,7 +4191,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx100001xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx100001xxxxxxxxxx
                                                              lsr.  */
                                                           return 1672;
                                                         }
@@ -4023,7 +4199,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx101001xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx100101xxxxxxxxxx
                                                              lsr.  */
                                                           return 1673;
                                                         }
@@ -4034,7 +4210,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx110001xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx100011xxxxxxxxxx
                                                              lsl.  */
                                                           return 1666;
                                                         }
@@ -4042,7 +4218,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx111001xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx100111xxxxxxxxxx
                                                              lsl.  */
                                                           return 1667;
                                                         }
@@ -4058,7 +4234,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxxx000x100001
+                                                     100001x000xxxxxx100xxxxxxxxxxxxx
                                                      ld1sb.  */
                                                   return 1520;
                                                 }
@@ -4066,7 +4242,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxxx010x100001
+                                                     100001x010xxxxxx100xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                   return 1533;
                                                 }
@@ -4077,7 +4253,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxxx100x100001
+                                                     100001x001xxxxxx100xxxxxxxxxxxxx
                                                      ld1rb.  */
                                                   return 1490;
                                                 }
@@ -4085,7 +4261,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxxx110x100001
+                                                     100001x011xxxxxx100xxxxxxxxxxxxx
                                                      ld1rsw.  */
                                                   return 1511;
                                                 }
@@ -4100,7 +4276,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx001xxxxx0x00x10001x
+                                                 x10001x00x0xxxxx100xxxxxxxxxxxxx
                                                  ld1sb.  */
                                               return 1519;
                                             }
@@ -4108,7 +4284,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx001xxxxx0x10x10001x
+                                                 x10001x01x0xxxxx100xxxxxxxxxxxxx
                                                  ld1sh.  */
                                               return 1531;
                                             }
@@ -4121,7 +4297,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxx1000x10001x
+                                                     x10001x0001xxxxx100xxxxxxxxxxxxx
                                                      ld1sb.  */
                                                   return 1524;
                                                 }
@@ -4129,7 +4305,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxx1010x10001x
+                                                     x10001x0101xxxxx100xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                   return 1536;
                                                 }
@@ -4140,7 +4316,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxx1100x10001x
+                                                     x10001x0011xxxxx100xxxxxxxxxxxxx
                                                      prfb.  */
                                                   return 1706;
                                                 }
@@ -4148,7 +4324,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxx1110x10001x
+                                                     x10001x0111xxxxx100xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                   return 1532;
                                                 }
@@ -4169,7 +4345,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx0xx0x100000
+                                                 000001x0xx0xxxxx010xxxxxxxxxxxxx
                                                  mla.  */
                                               return 1679;
                                             }
@@ -4179,7 +4355,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx0x00x100001
+                                                     100001x00x0xxxxx010xxxxxxxxxxxxx
                                                      ld1b.  */
                                                   return 1456;
                                                 }
@@ -4187,7 +4363,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx0x10x100001
+                                                     100001x01x0xxxxx010xxxxxxxxxxxxx
                                                      ld1h.  */
                                                   return 1476;
                                                 }
@@ -4199,7 +4375,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx0x00x10001x
+                                                 x10001x00x0xxxxx010xxxxxxxxxxxxx
                                                  ld1b.  */
                                               return 1461;
                                             }
@@ -4207,7 +4383,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx0x10x10001x
+                                                 x10001x01x0xxxxx010xxxxxxxxxxxxx
                                                  ld1h.  */
                                               return 1481;
                                             }
@@ -4227,7 +4403,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000010xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx010000xxxxxxxxxx
                                                              index.  */
                                                           return 1447;
                                                         }
@@ -4235,7 +4411,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx100010xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx010001xxxxxxxxxx
                                                              index.  */
                                                           return 1448;
                                                         }
@@ -4248,7 +4424,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxx01010xxxxx1000x100000
+                                                                 000001x0001xxxxx01010xxxxxxxxxxx
                                                                  addvl.  */
                                                               return 1234;
                                                             }
@@ -4256,7 +4432,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxx01010xxxxx1010x100000
+                                                                 000001x0101xxxxx01010xxxxxxxxxxx
                                                                  rdvl.  */
                                                               return 1740;
                                                             }
@@ -4265,7 +4441,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxx01010xxxxx11x0x100000
+                                                             000001x0x11xxxxx01010xxxxxxxxxxx
                                                              addpl.  */
                                                           return 1233;
                                                         }
@@ -4277,7 +4453,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01x010xxxxx1xx0x100000
+                                                         000001x0xx1xxxxx010x10xxxxxxxxxx
                                                          index.  */
                                                       return 1449;
                                                     }
@@ -4285,7 +4461,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11x010xxxxx1xx0x100000
+                                                         000001x0xx1xxxxx010x11xxxxxxxxxx
                                                          index.  */
                                                       return 1446;
                                                     }
@@ -4297,7 +4473,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1x00x100001
+                                                     100001x00x1xxxxx010xxxxxxxxxxxxx
                                                      prfw.  */
                                                   return 1724;
                                                 }
@@ -4305,7 +4481,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1x10x100001
+                                                     100001x01x1xxxxx010xxxxxxxxxxxxx
                                                      ld1h.  */
                                                   return 1477;
                                                 }
@@ -4317,7 +4493,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx1x00x10001x
+                                                 x10001x00x1xxxxx010xxxxxxxxxxxxx
                                                  prfw.  */
                                               return 1726;
                                             }
@@ -4325,7 +4501,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx1x10x10001x
+                                                 x10001x01x1xxxxx010xxxxxxxxxxxxx
                                                  ld1h.  */
                                               return 1482;
                                             }
@@ -4342,7 +4518,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx011xxxxx0xx0x100000
+                                                 000001x0xx0xxxxx110xxxxxxxxxxxxx
                                                  mad.  */
                                               return 1678;
                                             }
@@ -4358,7 +4534,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00x011xxxx010x0x100000
+                                                                 000001x0x010xxxx110x00xxxxxxxxxx
                                                                  sqincw.  */
                                                               return 1798;
                                                             }
@@ -4368,7 +4544,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00x011xxxx01100x100000
+                                                                     000001x00110xxxx110x00xxxxxxxxxx
                                                                      sqinch.  */
                                                                   return 1792;
                                                                 }
@@ -4376,7 +4552,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00x011xxxx01110x100000
+                                                                     000001x01110xxxx110x00xxxxxxxxxx
                                                                      sqincd.  */
                                                                   return 1789;
                                                                 }
@@ -4388,7 +4564,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00x011xxxx110x0x100000
+                                                                 000001x0x011xxxx110x00xxxxxxxxxx
                                                                  incw.  */
                                                               return 1444;
                                                             }
@@ -4398,7 +4574,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00x011xxxx11100x100000
+                                                                     000001x00111xxxx110x00xxxxxxxxxx
                                                                      inch.  */
                                                                   return 1440;
                                                                 }
@@ -4406,7 +4582,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00x011xxxx11110x100000
+                                                                     000001x01111xxxx110x00xxxxxxxxxx
                                                                      incd.  */
                                                                   return 1438;
                                                                 }
@@ -4419,7 +4595,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx01x011xxxxx10x0x100000
+                                                             000001x0x01xxxxx110x10xxxxxxxxxx
                                                              sqdecw.  */
                                                           return 1784;
                                                         }
@@ -4429,7 +4605,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx01x011xxxxx1100x100000
+                                                                 000001x0011xxxxx110x10xxxxxxxxxx
                                                                  sqdech.  */
                                                               return 1778;
                                                             }
@@ -4437,7 +4613,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx01x011xxxxx1110x100000
+                                                                 000001x0111xxxxx110x10xxxxxxxxxx
                                                                  sqdecd.  */
                                                               return 1775;
                                                             }
@@ -4454,7 +4630,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx10x011xxxx010x0x100000
+                                                                 000001x0x010xxxx110x01xxxxxxxxxx
                                                                  uqincw.  */
                                                               return 1946;
                                                             }
@@ -4464,7 +4640,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx10x011xxxx01100x100000
+                                                                     000001x00110xxxx110x01xxxxxxxxxx
                                                                      uqinch.  */
                                                                   return 1940;
                                                                 }
@@ -4472,7 +4648,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx10x011xxxx01110x100000
+                                                                     000001x01110xxxx110x01xxxxxxxxxx
                                                                      uqincd.  */
                                                                   return 1937;
                                                                 }
@@ -4484,7 +4660,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx10x011xxxx110x0x100000
+                                                                 000001x0x011xxxx110x01xxxxxxxxxx
                                                                  decw.  */
                                                               return 1319;
                                                             }
@@ -4494,7 +4670,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx10x011xxxx11100x100000
+                                                                     000001x00111xxxx110x01xxxxxxxxxx
                                                                      dech.  */
                                                                   return 1315;
                                                                 }
@@ -4502,7 +4678,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx10x011xxxx11110x100000
+                                                                     000001x01111xxxx110x01xxxxxxxxxx
                                                                      decd.  */
                                                                   return 1313;
                                                                 }
@@ -4515,7 +4691,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx11x011xxxxx10x0x100000
+                                                             000001x0x01xxxxx110x11xxxxxxxxxx
                                                              uqdecw.  */
                                                           return 1932;
                                                         }
@@ -4525,7 +4701,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx11x011xxxxx1100x100000
+                                                                 000001x0011xxxxx110x11xxxxxxxxxx
                                                                  uqdech.  */
                                                               return 1926;
                                                             }
@@ -4533,7 +4709,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx11x011xxxxx1110x100000
+                                                                 000001x0111xxxxx110x11xxxxxxxxxx
                                                                  uqdecd.  */
                                                               return 1923;
                                                             }
@@ -4552,7 +4728,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0000x100001
+                                                         100001x0000xxxxx110xxxxxxxxxxxxx
                                                          prfb.  */
                                                       return 1703;
                                                     }
@@ -4560,7 +4736,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0010x100001
+                                                         100001x0100xxxxx110xxxxxxxxxxxxx
                                                          prfh.  */
                                                       return 1718;
                                                     }
@@ -4571,7 +4747,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx1000x100001
+                                                         100001x0001xxxxx110xxxxxxxxxxxxx
                                                          ld1b.  */
                                                       return 1463;
                                                     }
@@ -4579,7 +4755,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx1010x100001
+                                                         100001x0101xxxxx110xxxxxxxxxxxxx
                                                          ld1h.  */
                                                       return 1485;
                                                     }
@@ -4591,7 +4767,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxxx100x100001
+                                                     100001x001xxxxxx110xxxxxxxxxxxxx
                                                      ld1rb.  */
                                                   return 1492;
                                                 }
@@ -4599,7 +4775,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxxx110x100001
+                                                     100001x011xxxxxx110xxxxxxxxxxxxx
                                                      ld1rh.  */
                                                   return 1496;
                                                 }
@@ -4614,7 +4790,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx011xxxxx0x00x10001x
+                                                 x10001x00x0xxxxx110xxxxxxxxxxxxx
                                                  ld1b.  */
                                               return 1462;
                                             }
@@ -4622,7 +4798,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx011xxxxx0x10x10001x
+                                                 x10001x01x0xxxxx110xxxxxxxxxxxxx
                                                  ld1h.  */
                                               return 1483;
                                             }
@@ -4635,7 +4811,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1000x10001x
+                                                     x10001x0001xxxxx110xxxxxxxxxxxxx
                                                      ld1b.  */
                                                   return 1468;
                                                 }
@@ -4643,7 +4819,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1010x10001x
+                                                     x10001x0101xxxxx110xxxxxxxxxxxxx
                                                      ld1h.  */
                                                   return 1489;
                                                 }
@@ -4654,7 +4830,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1100x10001x
+                                                     x10001x0011xxxxx110xxxxxxxxxxxxx
                                                      prfw.  */
                                                   return 1727;
                                                 }
@@ -4662,7 +4838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1110x10001x
+                                                     x10001x0111xxxxx110xxxxxxxxxxxxx
                                                      ld1h.  */
                                                   return 1484;
                                                 }
@@ -4694,7 +4870,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx10000x000xx0x100000
+                                                                 000001x0xx000x00001xxxxxxxxxxxxx
                                                                  saddv.  */
                                                               return 1747;
                                                             }
@@ -4702,7 +4878,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx10010x000xx0x100000
+                                                                 000001x0xx000x01001xxxxxxxxxxxxx
                                                                  uaddv.  */
                                                               return 1899;
                                                             }
@@ -4711,7 +4887,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx100x0x010xx0x100000
+                                                             000001x0xx010x0x001xxxxxxxxxxxxx
                                                              movprfx.  */
                                                           return 1682;
                                                         }
@@ -4724,7 +4900,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx10000x100xx0x100000
+                                                                 000001x0xx001x00001xxxxxxxxxxxxx
                                                                  smaxv.  */
                                                               return 1765;
                                                             }
@@ -4732,7 +4908,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx10000x110xx0x100000
+                                                                 000001x0xx011x00001xxxxxxxxxxxxx
                                                                  orv.  */
                                                               return 1699;
                                                             }
@@ -4743,7 +4919,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx10010x100xx0x100000
+                                                                 000001x0xx001x01001xxxxxxxxxxxxx
                                                                  umaxv.  */
                                                               return 1914;
                                                             }
@@ -4751,7 +4927,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx10010x110xx0x100000
+                                                                 000001x0xx011x01001xxxxxxxxxxxxx
                                                                  eorv.  */
                                                               return 1330;
                                                             }
@@ -4766,7 +4942,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx10001xx00xx0x100000
+                                                             000001x0xx00xx10001xxxxxxxxxxxxx
                                                              sminv.  */
                                                           return 1768;
                                                         }
@@ -4774,7 +4950,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx10001xx10xx0x100000
+                                                             000001x0xx01xx10001xxxxxxxxxxxxx
                                                              andv.  */
                                                           return 1243;
                                                         }
@@ -4783,7 +4959,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10011xxx0xx0x100000
+                                                         000001x0xx0xxx11001xxxxxxxxxxxxx
                                                          uminv.  */
                                                       return 1917;
                                                     }
@@ -4795,7 +4971,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx100xxxxx0x00x100001
+                                                     100001x00x0xxxxx001xxxxxxxxxxxxx
                                                      ldff1sb.  */
                                                   return 1606;
                                                 }
@@ -4803,7 +4979,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx100xxxxx0x10x100001
+                                                     100001x01x0xxxxx001xxxxxxxxxxxxx
                                                      ldff1sh.  */
                                                   return 1614;
                                                 }
@@ -4815,7 +4991,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx100xxxxx0x00x10001x
+                                                 x10001x00x0xxxxx001xxxxxxxxxxxxx
                                                  ldff1sb.  */
                                               return 1610;
                                             }
@@ -4823,7 +4999,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx100xxxxx0x10x10001x
+                                                 x10001x01x0xxxxx001xxxxxxxxxxxxx
                                                  ldff1sh.  */
                                               return 1618;
                                             }
@@ -4841,7 +5017,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100xxxxx1000x100000
+                                                         000001x0001xxxxx001xxxxxxxxxxxxx
                                                          and.  */
                                                       return 1238;
                                                     }
@@ -4849,7 +5025,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100xxxxx1100x100000
+                                                         000001x0011xxxxx001xxxxxxxxxxxxx
                                                          orr.  */
                                                       return 1694;
                                                     }
@@ -4858,7 +5034,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx100xxxxx1x00x100001
+                                                     100001x00x1xxxxx001xxxxxxxxxxxxx
                                                      prfh.  */
                                                   return 1717;
                                                 }
@@ -4867,7 +5043,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx100xxxxx1x00x10001x
+                                                 x10001x00x1xxxxx001xxxxxxxxxxxxx
                                                  prfh.  */
                                               return 1719;
                                             }
@@ -4882,7 +5058,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100xxxxx1010x100000
+                                                         000001x0101xxxxx001xxxxxxxxxxxxx
                                                          eor.  */
                                                       return 1325;
                                                     }
@@ -4890,7 +5066,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100xxxxx1110x100000
+                                                         000001x0111xxxxx001xxxxxxxxxxxxx
                                                          bic.  */
                                                       return 1251;
                                                     }
@@ -4899,7 +5075,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx100xxxxx1x10x100001
+                                                     100001x01x1xxxxx001xxxxxxxxxxxxx
                                                      ldff1sh.  */
                                                   return 1615;
                                                 }
@@ -4908,7 +5084,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx100xxxxx1x10x10001x
+                                                 x10001x01x1xxxxx001xxxxxxxxxxxxx
                                                  ldff1sh.  */
                                               return 1619;
                                             }
@@ -4933,7 +5109,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010000x0xx0x100000
+                                                                 000001x0xx0x0000101xxxxxxxxxxxxx
                                                                  sxtb.  */
                                                               return 1890;
                                                             }
@@ -4941,7 +5117,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010001x0xx0x100000
+                                                                 000001x0xx0x1000101xxxxxxxxxxxxx
                                                                  cls.  */
                                                               return 1271;
                                                             }
@@ -4952,7 +5128,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010010x0xx0x100000
+                                                                 000001x0xx0x0100101xxxxxxxxxxxxx
                                                                  sxtw.  */
                                                               return 1892;
                                                             }
@@ -4960,7 +5136,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010011x0xx0x100000
+                                                                 000001x0xx0x1100101xxxxxxxxxxxxx
                                                                  fabs.  */
                                                               return 1333;
                                                             }
@@ -4974,7 +5150,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010100x0xx0x100000
+                                                                 000001x0xx0x0010101xxxxxxxxxxxxx
                                                                  sxth.  */
                                                               return 1891;
                                                             }
@@ -4982,7 +5158,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010101x0xx0x100000
+                                                                 000001x0xx0x1010101xxxxxxxxxxxxx
                                                                  cnt.  */
                                                               return 1300;
                                                             }
@@ -4993,7 +5169,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010110x0xx0x100000
+                                                                 000001x0xx0x0110101xxxxxxxxxxxxx
                                                                  abs.  */
                                                               return 1229;
                                                             }
@@ -5001,7 +5177,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010111x0xx0x100000
+                                                                 000001x0xx0x1110101xxxxxxxxxxxxx
                                                                  not.  */
                                                               return 1691;
                                                             }
@@ -5018,7 +5194,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1011000x0xx0x100000
+                                                                 000001x0xx0x0001101xxxxxxxxxxxxx
                                                                  uxtb.  */
                                                               return 1953;
                                                             }
@@ -5026,7 +5202,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1011001x0xx0x100000
+                                                                 000001x0xx0x1001101xxxxxxxxxxxxx
                                                                  clz.  */
                                                               return 1272;
                                                             }
@@ -5037,7 +5213,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1011010x0xx0x100000
+                                                                 000001x0xx0x0101101xxxxxxxxxxxxx
                                                                  uxtw.  */
                                                               return 1955;
                                                             }
@@ -5045,7 +5221,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1011011x0xx0x100000
+                                                                 000001x0xx0x1101101xxxxxxxxxxxxx
                                                                  fneg.  */
                                                               return 1410;
                                                             }
@@ -5059,7 +5235,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1011100x0xx0x100000
+                                                                 000001x0xx0x0011101xxxxxxxxxxxxx
                                                                  uxth.  */
                                                               return 1954;
                                                             }
@@ -5067,7 +5243,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1011101x0xx0x100000
+                                                                 000001x0xx0x1011101xxxxxxxxxxxxx
                                                                  cnot.  */
                                                               return 1299;
                                                             }
@@ -5076,7 +5252,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101111xx0xx0x100000
+                                                             000001x0xx0xx111101xxxxxxxxxxxxx
                                                              neg.  */
                                                           return 1688;
                                                         }
@@ -5093,7 +5269,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxx0101xxxxx1000x100000
+                                                             000001x0001xxxxx1010xxxxxxxxxxxx
                                                              adr.  */
                                                           return 1235;
                                                         }
@@ -5101,7 +5277,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxx0101xxxxx1100x100000
+                                                             000001x0011xxxxx1010xxxxxxxxxxxx
                                                              adr.  */
                                                           return 1236;
                                                         }
@@ -5110,7 +5286,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxx0101xxxxx1x10x100000
+                                                         000001x01x1xxxxx1010xxxxxxxxxxxx
                                                          adr.  */
                                                       return 1237;
                                                     }
@@ -5123,7 +5299,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001101xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx101100xxxxxxxxxx
                                                              ftssel.  */
                                                           return 1436;
                                                         }
@@ -5131,7 +5307,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx011101xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx101110xxxxxxxxxx
                                                              fexpa.  */
                                                           return 1380;
                                                         }
@@ -5140,7 +5316,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1x1101xxxxx1xx0x100000
+                                                         000001x0xx1xxxxx1011x1xxxxxxxxxx
                                                          movprfx.  */
                                                       return 1681;
                                                     }
@@ -5155,7 +5331,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxxx000x100001
+                                                     100001x000xxxxxx101xxxxxxxxxxxxx
                                                      ldff1sb.  */
                                                   return 1612;
                                                 }
@@ -5163,7 +5339,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxxx010x100001
+                                                     100001x010xxxxxx101xxxxxxxxxxxxx
                                                      ldff1sh.  */
                                                   return 1622;
                                                 }
@@ -5174,7 +5350,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxxx100x100001
+                                                     100001x001xxxxxx101xxxxxxxxxxxxx
                                                      ld1rb.  */
                                                   return 1491;
                                                 }
@@ -5182,7 +5358,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxxx110x100001
+                                                     100001x011xxxxxx101xxxxxxxxxxxxx
                                                      ld1rh.  */
                                                   return 1495;
                                                 }
@@ -5197,7 +5373,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx101xxxxx0x00x10001x
+                                                 x10001x00x0xxxxx101xxxxxxxxxxxxx
                                                  ldff1sb.  */
                                               return 1611;
                                             }
@@ -5205,7 +5381,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx101xxxxx0x10x10001x
+                                                 x10001x01x0xxxxx101xxxxxxxxxxxxx
                                                  ldff1sh.  */
                                               return 1620;
                                             }
@@ -5218,7 +5394,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx1000x10001x
+                                                     x10001x0001xxxxx101xxxxxxxxxxxxx
                                                      ldff1sb.  */
                                                   return 1613;
                                                 }
@@ -5226,7 +5402,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx1010x10001x
+                                                     x10001x0101xxxxx101xxxxxxxxxxxxx
                                                      ldff1sh.  */
                                                   return 1623;
                                                 }
@@ -5237,7 +5413,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx1100x10001x
+                                                     x10001x0011xxxxx101xxxxxxxxxxxxx
                                                      prfh.  */
                                                   return 1720;
                                                 }
@@ -5245,7 +5421,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx1110x10001x
+                                                     x10001x0111xxxxx101xxxxxxxxxxxxx
                                                      ldff1sh.  */
                                                   return 1621;
                                                 }
@@ -5266,7 +5442,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx0xx0x100000
+                                                 000001x0xx0xxxxx011xxxxxxxxxxxxx
                                                  mls.  */
                                               return 1680;
                                             }
@@ -5276,7 +5452,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx0x00x100001
+                                                     100001x00x0xxxxx011xxxxxxxxxxxxx
                                                      ldff1b.  */
                                                   return 1580;
                                                 }
@@ -5284,7 +5460,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx0x10x100001
+                                                     100001x01x0xxxxx011xxxxxxxxxxxxx
                                                      ldff1h.  */
                                                   return 1595;
                                                 }
@@ -5296,7 +5472,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx0x00x10001x
+                                                 x10001x00x0xxxxx011xxxxxxxxxxxxx
                                                  ldff1b.  */
                                               return 1585;
                                             }
@@ -5304,7 +5480,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx0x10x10001x
+                                                 x10001x01x0xxxxx011xxxxxxxxxxxxx
                                                  ldff1h.  */
                                               return 1600;
                                             }
@@ -5318,7 +5494,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx1x00x10000x
+                                                 x00001x00x1xxxxx011xxxxxxxxxxxxx
                                                  prfd.  */
                                               return 1710;
                                             }
@@ -5326,7 +5502,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx1x00x10001x
+                                                 x10001x00x1xxxxx011xxxxxxxxxxxxx
                                                  prfd.  */
                                               return 1712;
                                             }
@@ -5337,7 +5513,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx1x10x10000x
+                                                 x00001x01x1xxxxx011xxxxxxxxxxxxx
                                                  ldff1h.  */
                                               return 1596;
                                             }
@@ -5345,7 +5521,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx1x10x10001x
+                                                 x10001x01x1xxxxx011xxxxxxxxxxxxx
                                                  ldff1h.  */
                                               return 1601;
                                             }
@@ -5362,7 +5538,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx111xxxxx0xx0x100000
+                                                 000001x0xx0xxxxx111xxxxxxxxxxxxx
                                                  msb.  */
                                               return 1683;
                                             }
@@ -5382,7 +5558,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx01000x100000
+                                                                         000001x00010xxxx111000xxxxxxxxxx
                                                                          cntb.  */
                                                                       return 1301;
                                                                     }
@@ -5390,7 +5566,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx01010x100000
+                                                                         000001x01010xxxx111000xxxxxxxxxx
                                                                          cntw.  */
                                                                       return 1305;
                                                                     }
@@ -5401,7 +5577,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx01100x100000
+                                                                         000001x00110xxxx111000xxxxxxxxxx
                                                                          cnth.  */
                                                                       return 1303;
                                                                     }
@@ -5409,7 +5585,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx01110x100000
+                                                                         000001x01110xxxx111000xxxxxxxxxx
                                                                          cntd.  */
                                                                       return 1302;
                                                                     }
@@ -5423,7 +5599,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx11000x100000
+                                                                         000001x00011xxxx111000xxxxxxxxxx
                                                                          incb.  */
                                                                       return 1437;
                                                                     }
@@ -5431,7 +5607,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx11010x100000
+                                                                         000001x01011xxxx111000xxxxxxxxxx
                                                                          incw.  */
                                                                       return 1445;
                                                                     }
@@ -5442,7 +5618,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx11100x100000
+                                                                         000001x00111xxxx111000xxxxxxxxxx
                                                                          inch.  */
                                                                       return 1441;
                                                                     }
@@ -5450,7 +5626,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx11110x100000
+                                                                         000001x01111xxxx111000xxxxxxxxxx
                                                                          incd.  */
                                                                       return 1439;
                                                                     }
@@ -5467,7 +5643,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx01000x100000
+                                                                         000001x00010xxxx111100xxxxxxxxxx
                                                                          sqincb.  */
                                                                       return 1788;
                                                                     }
@@ -5475,7 +5651,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx01010x100000
+                                                                         000001x01010xxxx111100xxxxxxxxxx
                                                                          sqincw.  */
                                                                       return 1800;
                                                                     }
@@ -5486,7 +5662,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx01100x100000
+                                                                         000001x00110xxxx111100xxxxxxxxxx
                                                                          sqinch.  */
                                                                       return 1794;
                                                                     }
@@ -5494,7 +5670,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx01110x100000
+                                                                         000001x01110xxxx111100xxxxxxxxxx
                                                                          sqincd.  */
                                                                       return 1791;
                                                                     }
@@ -5508,7 +5684,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx11000x100000
+                                                                         000001x00011xxxx111100xxxxxxxxxx
                                                                          sqincb.  */
                                                                       return 1787;
                                                                     }
@@ -5516,7 +5692,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx11010x100000
+                                                                         000001x01011xxxx111100xxxxxxxxxx
                                                                          sqincw.  */
                                                                       return 1799;
                                                                     }
@@ -5527,7 +5703,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx11100x100000
+                                                                         000001x00111xxxx111100xxxxxxxxxx
                                                                          sqinch.  */
                                                                       return 1793;
                                                                     }
@@ -5535,7 +5711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx11110x100000
+                                                                         000001x01111xxxx111100xxxxxxxxxx
                                                                          sqincd.  */
                                                                       return 1790;
                                                                     }
@@ -5553,7 +5729,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx01000x100000
+                                                                     000001x00010xxxx111x10xxxxxxxxxx
                                                                      sqdecb.  */
                                                                   return 1774;
                                                                 }
@@ -5561,7 +5737,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx01010x100000
+                                                                     000001x01010xxxx111x10xxxxxxxxxx
                                                                      sqdecw.  */
                                                                   return 1786;
                                                                 }
@@ -5572,7 +5748,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx01100x100000
+                                                                     000001x00110xxxx111x10xxxxxxxxxx
                                                                      sqdech.  */
                                                                   return 1780;
                                                                 }
@@ -5580,7 +5756,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx01110x100000
+                                                                     000001x01110xxxx111x10xxxxxxxxxx
                                                                      sqdecd.  */
                                                                   return 1777;
                                                                 }
@@ -5594,7 +5770,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx11000x100000
+                                                                     000001x00011xxxx111x10xxxxxxxxxx
                                                                      sqdecb.  */
                                                                   return 1773;
                                                                 }
@@ -5602,7 +5778,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx11010x100000
+                                                                     000001x01011xxxx111x10xxxxxxxxxx
                                                                      sqdecw.  */
                                                                   return 1785;
                                                                 }
@@ -5613,7 +5789,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx11100x100000
+                                                                     000001x00111xxxx111x10xxxxxxxxxx
                                                                      sqdech.  */
                                                                   return 1779;
                                                                 }
@@ -5621,7 +5797,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx11110x100000
+                                                                     000001x01111xxxx111x10xxxxxxxxxx
                                                                      sqdecd.  */
                                                                   return 1776;
                                                                 }
@@ -5641,7 +5817,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx100111xxxxx1000x100000
+                                                                     000001x0001xxxxx111001xxxxxxxxxx
                                                                      decb.  */
                                                                   return 1312;
                                                                 }
@@ -5649,7 +5825,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx100111xxxxx1010x100000
+                                                                     000001x0101xxxxx111001xxxxxxxxxx
                                                                      decw.  */
                                                                   return 1320;
                                                                 }
@@ -5660,7 +5836,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx100111xxxxx1100x100000
+                                                                     000001x0011xxxxx111001xxxxxxxxxx
                                                                      dech.  */
                                                                   return 1316;
                                                                 }
@@ -5668,7 +5844,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx100111xxxxx1110x100000
+                                                                     000001x0111xxxxx111001xxxxxxxxxx
                                                                      decd.  */
                                                                   return 1314;
                                                                 }
@@ -5684,7 +5860,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx01000x100000
+                                                                         000001x00010xxxx111101xxxxxxxxxx
                                                                          uqincb.  */
                                                                       return 1935;
                                                                     }
@@ -5692,7 +5868,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx01010x100000
+                                                                         000001x01010xxxx111101xxxxxxxxxx
                                                                          uqincw.  */
                                                                       return 1947;
                                                                     }
@@ -5703,7 +5879,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx01100x100000
+                                                                         000001x00110xxxx111101xxxxxxxxxx
                                                                          uqinch.  */
                                                                       return 1941;
                                                                     }
@@ -5711,7 +5887,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx01110x100000
+                                                                         000001x01110xxxx111101xxxxxxxxxx
                                                                          uqincd.  */
                                                                       return 1938;
                                                                     }
@@ -5725,7 +5901,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx11000x100000
+                                                                         000001x00011xxxx111101xxxxxxxxxx
                                                                          uqincb.  */
                                                                       return 1936;
                                                                     }
@@ -5733,7 +5909,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx11010x100000
+                                                                         000001x01011xxxx111101xxxxxxxxxx
                                                                          uqincw.  */
                                                                       return 1948;
                                                                     }
@@ -5744,7 +5920,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx11100x100000
+                                                                         000001x00111xxxx111101xxxxxxxxxx
                                                                          uqinch.  */
                                                                       return 1942;
                                                                     }
@@ -5752,7 +5928,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx11110x100000
+                                                                         000001x01111xxxx111101xxxxxxxxxx
                                                                          uqincd.  */
                                                                       return 1939;
                                                                     }
@@ -5770,7 +5946,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx01000x100000
+                                                                     000001x00010xxxx111x11xxxxxxxxxx
                                                                      uqdecb.  */
                                                                   return 1921;
                                                                 }
@@ -5778,7 +5954,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx01010x100000
+                                                                     000001x01010xxxx111x11xxxxxxxxxx
                                                                      uqdecw.  */
                                                                   return 1933;
                                                                 }
@@ -5789,7 +5965,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx01100x100000
+                                                                     000001x00110xxxx111x11xxxxxxxxxx
                                                                      uqdech.  */
                                                                   return 1927;
                                                                 }
@@ -5797,7 +5973,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx01110x100000
+                                                                     000001x01110xxxx111x11xxxxxxxxxx
                                                                      uqdecd.  */
                                                                   return 1924;
                                                                 }
@@ -5811,7 +5987,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx11000x100000
+                                                                     000001x00011xxxx111x11xxxxxxxxxx
                                                                      uqdecb.  */
                                                                   return 1922;
                                                                 }
@@ -5819,7 +5995,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx11010x100000
+                                                                     000001x01011xxxx111x11xxxxxxxxxx
                                                                      uqdecw.  */
                                                                   return 1934;
                                                                 }
@@ -5830,7 +6006,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx11100x100000
+                                                                     000001x00111xxxx111x11xxxxxxxxxx
                                                                      uqdech.  */
                                                                   return 1928;
                                                                 }
@@ -5838,7 +6014,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx11110x100000
+                                                                     000001x01111xxxx111x11xxxxxxxxxx
                                                                      uqdecd.  */
                                                                   return 1925;
                                                                 }
@@ -5858,7 +6034,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0000x100001
+                                                         100001x0000xxxxx111xxxxxxxxxxxxx
                                                          prfb.  */
                                                       return 1707;
                                                     }
@@ -5866,7 +6042,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0010x100001
+                                                         100001x0100xxxxx111xxxxxxxxxxxxx
                                                          prfh.  */
                                                       return 1721;
                                                     }
@@ -5877,7 +6053,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1000x100001
+                                                         100001x0001xxxxx111xxxxxxxxxxxxx
                                                          ldff1b.  */
                                                       return 1587;
                                                     }
@@ -5885,7 +6061,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1010x100001
+                                                         100001x0101xxxxx111xxxxxxxxxxxxx
                                                          ldff1h.  */
                                                       return 1604;
                                                     }
@@ -5897,7 +6073,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxxx100x100001
+                                                     100001x001xxxxxx111xxxxxxxxxxxxx
                                                      ld1rb.  */
                                                   return 1493;
                                                 }
@@ -5905,7 +6081,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxxx110x100001
+                                                     100001x011xxxxxx111xxxxxxxxxxxxx
                                                      ld1rh.  */
                                                   return 1497;
                                                 }
@@ -5922,7 +6098,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0000x10001x
+                                                     x10001x0000xxxxx111xxxxxxxxxxxxx
                                                      prfb.  */
                                                   return 1709;
                                                 }
@@ -5930,7 +6106,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0010x10001x
+                                                     x10001x0100xxxxx111xxxxxxxxxxxxx
                                                      prfh.  */
                                                   return 1723;
                                                 }
@@ -5941,7 +6117,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0100x10001x
+                                                     x10001x0010xxxxx111xxxxxxxxxxxxx
                                                      ldff1b.  */
                                                   return 1586;
                                                 }
@@ -5949,7 +6125,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0110x10001x
+                                                     x10001x0110xxxxx111xxxxxxxxxxxxx
                                                      ldff1h.  */
                                                   return 1602;
                                                 }
@@ -5963,7 +6139,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1000x10001x
+                                                     x10001x0001xxxxx111xxxxxxxxxxxxx
                                                      ldff1b.  */
                                                   return 1588;
                                                 }
@@ -5971,7 +6147,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1010x10001x
+                                                     x10001x0101xxxxx111xxxxxxxxxxxxx
                                                      ldff1h.  */
                                                   return 1605;
                                                 }
@@ -5982,7 +6158,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1100x10001x
+                                                     x10001x0011xxxxx111xxxxxxxxxxxxx
                                                      prfd.  */
                                                   return 1713;
                                                 }
@@ -5990,7 +6166,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1110x10001x
+                                                     x10001x0111xxxxx111xxxxxxxxxxxxx
                                                      ldff1h.  */
                                                   return 1603;
                                                 }
@@ -6019,7 +6195,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx000xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx000xxxxxxxx0xxxx
                                                      cmphs.  */
                                                   return 1285;
                                                 }
@@ -6027,7 +6203,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx000xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx000xxxxxxxx1xxxx
                                                      cmphi.  */
                                                   return 1282;
                                                 }
@@ -6038,7 +6214,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx000xxxxx0x00x100101
+                                                     101001x00x0xxxxx000xxxxxxxxxxxxx
                                                      ld1rqb.  */
                                                   return 1499;
                                                 }
@@ -6046,7 +6222,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx000xxxxx0x10x100101
+                                                     101001x01x0xxxxx000xxxxxxxxxxxxx
                                                      ld1rqh.  */
                                                   return 1503;
                                                 }
@@ -6060,7 +6236,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx010xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx010xxxxxxxx0xxxx
                                                      cmpge.  */
                                                   return 1276;
                                                 }
@@ -6068,7 +6244,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx010xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx010xxxxxxxx1xxxx
                                                      cmpgt.  */
                                                   return 1279;
                                                 }
@@ -6081,7 +6257,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0000x100101
+                                                         101001x0000xxxxx010xxxxxxxxxxxxx
                                                          ld1b.  */
                                                       return 1457;
                                                     }
@@ -6089,7 +6265,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0010x100101
+                                                         101001x0100xxxxx010xxxxxxxxxxxxx
                                                          ld1sw.  */
                                                       return 1537;
                                                     }
@@ -6100,7 +6276,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0100x100101
+                                                         101001x0010xxxxx010xxxxxxxxxxxxx
                                                          ld1b.  */
                                                       return 1459;
                                                     }
@@ -6108,7 +6284,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0110x100101
+                                                         101001x0110xxxxx010xxxxxxxxxxxxx
                                                          ld1h.  */
                                                       return 1479;
                                                     }
@@ -6126,7 +6302,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx100xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx001xxxxxxxx0xxxx
                                                      cmpeq.  */
                                                   return 1273;
                                                 }
@@ -6134,7 +6310,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx100xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx001xxxxxxxx1xxxx
                                                      cmpne.  */
                                                   return 1296;
                                                 }
@@ -6145,7 +6321,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx100xxxxx0x00x100101
+                                                     101001x00x0xxxxx001xxxxxxxxxxxxx
                                                      ld1rqb.  */
                                                   return 1498;
                                                 }
@@ -6153,7 +6329,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx100xxxxx0x10x100101
+                                                     101001x01x0xxxxx001xxxxxxxxxxxxx
                                                      ld1rqh.  */
                                                   return 1502;
                                                 }
@@ -6167,7 +6343,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx110xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx011xxxxxxxx0xxxx
                                                      cmplt.  */
                                                   return 1294;
                                                 }
@@ -6175,7 +6351,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx110xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx011xxxxxxxx1xxxx
                                                      cmple.  */
                                                   return 1288;
                                                 }
@@ -6188,7 +6364,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0000x100101
+                                                         101001x0000xxxxx011xxxxxxxxxxxxx
                                                          ldff1b.  */
                                                       return 1581;
                                                     }
@@ -6196,7 +6372,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0010x100101
+                                                         101001x0100xxxxx011xxxxxxxxxxxxx
                                                          ldff1sw.  */
                                                       return 1624;
                                                     }
@@ -6207,7 +6383,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0100x100101
+                                                         101001x0010xxxxx011xxxxxxxxxxxxx
                                                          ldff1b.  */
                                                       return 1583;
                                                     }
@@ -6215,7 +6391,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0110x100101
+                                                         101001x0110xxxxx011xxxxxxxxxxxxx
                                                          ldff1h.  */
                                                       return 1598;
                                                     }
@@ -6230,7 +6406,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx0xxxxx0xx0x100110
+                                         011001x0xx0xxxxx0xxxxxxxxxxxxxxx
                                          fcmla.  */
                                       return 1342;
                                     }
@@ -6242,7 +6418,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x0xxxxx00x0x100111
+                                                 111001x0x00xxxxx0x0xxxxxxxxxxxxx
                                                  st1b.  */
                                               return 1803;
                                             }
@@ -6252,7 +6428,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x0xxxxx0100x100111
+                                                     111001x0010xxxxx0x0xxxxxxxxxxxxx
                                                      st1b.  */
                                                   return 1807;
                                                 }
@@ -6260,7 +6436,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x0xxxxx0110x100111
+                                                     111001x0110xxxxx0x0xxxxxxxxxxxxx
                                                      st1h.  */
                                                   return 1828;
                                                 }
@@ -6274,7 +6450,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx1x0xxxxx0000x100111
+                                                     111001x0000xxxxx0x1xxxxxxxxxxxxx
                                                      stnt1b.  */
                                                   return 1873;
                                                 }
@@ -6282,7 +6458,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx1x0xxxxx0010x100111
+                                                     111001x0100xxxxx0x1xxxxxxxxxxxxx
                                                      stnt1h.  */
                                                   return 1877;
                                                 }
@@ -6293,7 +6469,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx1x0xxxxx0100x100111
+                                                     111001x0010xxxxx0x1xxxxxxxxxxxxx
                                                      st3b.  */
                                                   return 1857;
                                                 }
@@ -6301,7 +6477,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx1x0xxxxx0110x100111
+                                                     111001x0110xxxxx0x1xxxxxxxxxxxxx
                                                      st3h.  */
                                                   return 1861;
                                                 }
@@ -6322,7 +6498,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx0xxxxxxxx001xxxxx0xx0x10010x
+                                                 x01001x0xx0xxxxx100xxxxxxxx0xxxx
                                                  cmpge.  */
                                               return 1277;
                                             }
@@ -6330,7 +6506,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx1xxxxxxxx001xxxxx0xx0x10010x
+                                                 x01001x0xx0xxxxx100xxxxxxxx1xxxx
                                                  cmpgt.  */
                                               return 1280;
                                             }
@@ -6343,7 +6519,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx011xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx110xxxxxxxx0xxxx
                                                      cmphs.  */
                                                   return 1286;
                                                 }
@@ -6351,7 +6527,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx011xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx110xxxxxxxx1xxxx
                                                      cmphi.  */
                                                   return 1283;
                                                 }
@@ -6364,7 +6540,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0000x100101
+                                                         101001x0000xxxxx110xxxxxxxxxxxxx
                                                          ldnt1b.  */
                                                       return 1656;
                                                     }
@@ -6372,7 +6548,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0010x100101
+                                                         101001x0100xxxxx110xxxxxxxxxxxxx
                                                          ldnt1h.  */
                                                       return 1660;
                                                     }
@@ -6383,7 +6559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0100x100101
+                                                         101001x0010xxxxx110xxxxxxxxxxxxx
                                                          ld3b.  */
                                                       return 1564;
                                                     }
@@ -6391,7 +6567,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0110x100101
+                                                         101001x0110xxxxx110xxxxxxxxxxxxx
                                                          ld3h.  */
                                                       return 1568;
                                                     }
@@ -6405,7 +6581,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0x1xxxxx0xx0x100110
+                                             011001x0xx0xxxxx1x0xxxxxxxxxxxxx
                                              fcadd.  */
                                           return 1341;
                                         }
@@ -6417,7 +6593,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx0000x100111
+                                                     111001x0000xxxxx1x0xxxxxxxxxxxxx
                                                      st1b.  */
                                                   return 1804;
                                                 }
@@ -6425,7 +6601,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx0010x100111
+                                                     111001x0100xxxxx1x0xxxxxxxxxxxxx
                                                      st1h.  */
                                                   return 1823;
                                                 }
@@ -6436,7 +6612,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx0100x100111
+                                                     111001x0010xxxxx1x0xxxxxxxxxxxxx
                                                      st1b.  */
                                                   return 1808;
                                                 }
@@ -6444,7 +6620,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx0110x100111
+                                                     111001x0110xxxxx1x0xxxxxxxxxxxxx
                                                      st1h.  */
                                                   return 1829;
                                                 }
@@ -6464,7 +6640,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx101xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx101xxxxxxxx0xxxx
                                                      cmpeq.  */
                                                   return 1274;
                                                 }
@@ -6472,7 +6648,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx101xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx101xxxxxxxx1xxxx
                                                      cmpne.  */
                                                   return 1297;
                                                 }
@@ -6487,7 +6663,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx00000x100101
+                                                             101001x00000xxxx101xxxxxxxxxxxxx
                                                              ld1b.  */
                                                           return 1464;
                                                         }
@@ -6495,7 +6671,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx00010x100101
+                                                             101001x01000xxxx101xxxxxxxxxxxxx
                                                              ld1sw.  */
                                                           return 1542;
                                                         }
@@ -6506,7 +6682,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx00100x100101
+                                                             101001x00100xxxx101xxxxxxxxxxxxx
                                                              ld1b.  */
                                                           return 1466;
                                                         }
@@ -6514,7 +6690,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx00110x100101
+                                                             101001x01100xxxx101xxxxxxxxxxxxx
                                                              ld1h.  */
                                                           return 1487;
                                                         }
@@ -6528,7 +6704,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx10000x100101
+                                                             101001x00001xxxx101xxxxxxxxxxxxx
                                                              ldnf1b.  */
                                                           return 1640;
                                                         }
@@ -6536,7 +6712,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx10010x100101
+                                                             101001x01001xxxx101xxxxxxxxxxxxx
                                                              ldnf1sw.  */
                                                           return 1653;
                                                         }
@@ -6547,7 +6723,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx10100x100101
+                                                             101001x00101xxxx101xxxxxxxxxxxxx
                                                              ldnf1b.  */
                                                           return 1642;
                                                         }
@@ -6555,7 +6731,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx10110x100101
+                                                             101001x01101xxxx101xxxxxxxxxxxxx
                                                              ldnf1h.  */
                                                           return 1646;
                                                         }
@@ -6571,7 +6747,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx0000x10011x
+                                                     x11001x0000xxxxx101xxxxxxxxxxxxx
                                                      st1b.  */
                                                   return 1805;
                                                 }
@@ -6579,7 +6755,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx0010x10011x
+                                                     x11001x0100xxxxx101xxxxxxxxxxxxx
                                                      st1h.  */
                                                   return 1824;
                                                 }
@@ -6590,7 +6766,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx0100x10011x
+                                                     x11001x0010xxxxx101xxxxxxxxxxxxx
                                                      st1b.  */
                                                   return 1812;
                                                 }
@@ -6598,7 +6774,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx0110x10011x
+                                                     x11001x0110xxxxx101xxxxxxxxxxxxx
                                                      st1h.  */
                                                   return 1833;
                                                 }
@@ -6615,7 +6791,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx111xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx111xxxxxxxx0xxxx
                                                      cmplo.  */
                                                   return 1290;
                                                 }
@@ -6623,7 +6799,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx111xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx111xxxxxxxx1xxxx
                                                      cmpls.  */
                                                   return 1292;
                                                 }
@@ -6636,7 +6812,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0000x100101
+                                                         101001x0000xxxxx111xxxxxxxxxxxxx
                                                          ldnt1b.  */
                                                       return 1657;
                                                     }
@@ -6644,7 +6820,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0010x100101
+                                                         101001x0100xxxxx111xxxxxxxxxxxxx
                                                          ldnt1h.  */
                                                       return 1661;
                                                     }
@@ -6655,7 +6831,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0100x100101
+                                                         101001x0010xxxxx111xxxxxxxxxxxxx
                                                          ld3b.  */
                                                       return 1565;
                                                     }
@@ -6663,7 +6839,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0110x100101
+                                                         101001x0110xxxxx111xxxxxxxxxxxxx
                                                          ld3h.  */
                                                       return 1569;
                                                     }
@@ -6678,7 +6854,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxx000x0x10011x
+                                                     x11001x0x000xxxx111xxxxxxxxxxxxx
                                                      st1b.  */
                                                   return 1810;
                                                 }
@@ -6688,7 +6864,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx00100x10011x
+                                                         x11001x00100xxxx111xxxxxxxxxxxxx
                                                          st1b.  */
                                                       return 1813;
                                                     }
@@ -6696,7 +6872,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx00110x10011x
+                                                         x11001x01100xxxx111xxxxxxxxxxxxx
                                                          st1h.  */
                                                       return 1834;
                                                     }
@@ -6710,7 +6886,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx10000x10011x
+                                                         x11001x00001xxxx111xxxxxxxxxxxxx
                                                          stnt1b.  */
                                                       return 1874;
                                                     }
@@ -6718,7 +6894,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx10010x10011x
+                                                         x11001x01001xxxx111xxxxxxxxxxxxx
                                                          stnt1h.  */
                                                       return 1878;
                                                     }
@@ -6729,7 +6905,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx10100x10011x
+                                                         x11001x00101xxxx111xxxxxxxxxxxxx
                                                          st3b.  */
                                                       return 1858;
                                                     }
@@ -6737,7 +6913,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx10110x10011x
+                                                         x11001x01101xxxx111xxxxxxxxxxxxx
                                                          st3h.  */
                                                       return 1862;
                                                     }
@@ -6760,7 +6936,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxx0xxxxxxxx0xxxxxxx1xx0x100100
+                                             001001x0xx1xxxxxxx0xxxxxxxx0xxxx
                                              cmphs.  */
                                           return 1287;
                                         }
@@ -6768,7 +6944,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxx1xxxxxxxx0xxxxxxx1xx0x100100
+                                             001001x0xx1xxxxxxx0xxxxxxxx1xxxx
                                              cmphi.  */
                                           return 1284;
                                         }
@@ -6783,7 +6959,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x0xxxxx1000x100101
+                                                     101001x0001xxxxx0x0xxxxxxxxxxxxx
                                                      ld1b.  */
                                                   return 1458;
                                                 }
@@ -6791,7 +6967,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x0xxxxx1010x100101
+                                                     101001x0101xxxxx0x0xxxxxxxxxxxxx
                                                      ld1h.  */
                                                   return 1478;
                                                 }
@@ -6802,7 +6978,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x0xxxxx1100x100101
+                                                     101001x0011xxxxx0x0xxxxxxxxxxxxx
                                                      ld1b.  */
                                                   return 1460;
                                                 }
@@ -6810,7 +6986,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x0xxxxx1110x100101
+                                                     101001x0111xxxxx0x0xxxxxxxxxxxxx
                                                      ld1h.  */
                                                   return 1480;
                                                 }
@@ -6824,7 +7000,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx1000x100101
+                                                     101001x0001xxxxx1x0xxxxxxxxxxxxx
                                                      ld2b.  */
                                                   return 1556;
                                                 }
@@ -6832,7 +7008,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx1010x100101
+                                                     101001x0101xxxxx1x0xxxxxxxxxxxxx
                                                      ld2h.  */
                                                   return 1560;
                                                 }
@@ -6843,7 +7019,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx1100x100101
+                                                     101001x0011xxxxx1x0xxxxxxxxxxxxx
                                                      ld4b.  */
                                                   return 1572;
                                                 }
@@ -6851,7 +7027,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx1110x100101
+                                                     101001x0111xxxxx1x0xxxxxxxxxxxxx
                                                      ld4h.  */
                                                   return 1576;
                                                 }
@@ -6873,7 +7049,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0x0000xxxxx1x00x10011x
+                                                         x11001x00x1xxxxx0000x0xxxxxxxxxx
                                                          fmla.  */
                                                       return 1395;
                                                     }
@@ -6883,7 +7059,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0x0000xxxxx1010x10011x
+                                                             x11001x0101xxxxx0000x0xxxxxxxxxx
                                                              fmla.  */
                                                           return 1396;
                                                         }
@@ -6891,7 +7067,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0x0000xxxxx1110x10011x
+                                                             x11001x0111xxxxx0000x0xxxxxxxxxx
                                                              fmla.  */
                                                           return 1397;
                                                         }
@@ -6903,7 +7079,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1x0000xxxxx1x00x10011x
+                                                         x11001x00x1xxxxx0000x1xxxxxxxxxx
                                                          fmls.  */
                                                       return 1399;
                                                     }
@@ -6913,7 +7089,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1x0000xxxxx1010x10011x
+                                                             x11001x0101xxxxx0000x1xxxxxxxxxx
                                                              fmls.  */
                                                           return 1400;
                                                         }
@@ -6921,7 +7097,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1x0000xxxxx1110x10011x
+                                                             x11001x0111xxxxx0000x1xxxxxxxxxx
                                                              fmls.  */
                                                           return 1401;
                                                         }
@@ -6934,7 +7110,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxx1000xxxxx10x0x10011x
+                                                     x11001x0x01xxxxx0001xxxxxxxxxxxx
                                                      fcmla.  */
                                                   return 1343;
                                                 }
@@ -6942,7 +7118,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxx1000xxxxx11x0x10011x
+                                                     x11001x0x11xxxxx0001xxxxxxxxxxxx
                                                      fcmla.  */
                                                   return 1344;
                                                 }
@@ -6956,7 +7132,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1000x10011x
+                                                     x11001x0001xxxxx010xxxxxxxxxxxxx
                                                      st1b.  */
                                                   return 1806;
                                                 }
@@ -6964,7 +7140,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1010x10011x
+                                                     x11001x0101xxxxx010xxxxxxxxxxxxx
                                                      st1h.  */
                                                   return 1825;
                                                 }
@@ -6975,7 +7151,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1100x10011x
+                                                     x11001x0011xxxxx010xxxxxxxxxxxxx
                                                      st1b.  */
                                                   return 1809;
                                                 }
@@ -6983,7 +7159,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1110x10011x
+                                                     x11001x0111xxxxx010xxxxxxxxxxxxx
                                                      st1h.  */
                                                   return 1830;
                                                 }
@@ -6996,7 +7172,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0x1xxxxx10x0x10011x
+                                             x11001x0x01xxxxx1x0xxxxxxxxxxxxx
                                              st1h.  */
                                           return 1826;
                                         }
@@ -7004,7 +7180,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0x1xxxxx11x0x10011x
+                                             x11001x0x11xxxxx1x0xxxxxxxxxxxxx
                                              st1h.  */
                                           return 1831;
                                         }
@@ -7021,7 +7197,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxx0xxxxxxxx1xxxxxxx1xx0x100100
+                                             001001x0xx1xxxxxxx1xxxxxxxx0xxxx
                                              cmplo.  */
                                           return 1291;
                                         }
@@ -7029,7 +7205,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxx1xxxxxxxx1xxxxxxx1xx0x100100
+                                             001001x0xx1xxxxxxx1xxxxxxxx1xxxx
                                              cmpls.  */
                                           return 1293;
                                         }
@@ -7046,7 +7222,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx01000x100101
+                                                         101001x00010xxxxx01xxxxxxxxxxxxx
                                                          ld1b.  */
                                                       return 1465;
                                                     }
@@ -7054,7 +7230,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx01010x100101
+                                                         101001x01010xxxxx01xxxxxxxxxxxxx
                                                          ld1h.  */
                                                       return 1486;
                                                     }
@@ -7065,7 +7241,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx01100x100101
+                                                         101001x00110xxxxx01xxxxxxxxxxxxx
                                                          ld1b.  */
                                                       return 1467;
                                                     }
@@ -7073,7 +7249,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx01110x100101
+                                                         101001x01110xxxxx01xxxxxxxxxxxxx
                                                          ld1h.  */
                                                       return 1488;
                                                     }
@@ -7087,7 +7263,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx11000x100101
+                                                         101001x00011xxxxx01xxxxxxxxxxxxx
                                                          ldnf1b.  */
                                                       return 1641;
                                                     }
@@ -7095,7 +7271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx11010x100101
+                                                         101001x01011xxxxx01xxxxxxxxxxxxx
                                                          ldnf1h.  */
                                                       return 1645;
                                                     }
@@ -7106,7 +7282,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx11100x100101
+                                                         101001x00111xxxxx01xxxxxxxxxxxxx
                                                          ldnf1b.  */
                                                       return 1643;
                                                     }
@@ -7114,7 +7290,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx11110x100101
+                                                         101001x01111xxxxx01xxxxxxxxxxxxx
                                                          ldnf1h.  */
                                                       return 1647;
                                                     }
@@ -7131,7 +7307,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx1000x100101
+                                                         101001x0001xxxxx011xxxxxxxxxxxxx
                                                          ldff1b.  */
                                                       return 1582;
                                                     }
@@ -7139,7 +7315,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx1010x100101
+                                                         101001x0101xxxxx011xxxxxxxxxxxxx
                                                          ldff1h.  */
                                                       return 1597;
                                                     }
@@ -7150,7 +7326,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx1100x100101
+                                                         101001x0011xxxxx011xxxxxxxxxxxxx
                                                          ldff1b.  */
                                                       return 1584;
                                                     }
@@ -7158,7 +7334,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx1110x100101
+                                                         101001x0111xxxxx011xxxxxxxxxxxxx
                                                          ldff1h.  */
                                                       return 1599;
                                                     }
@@ -7172,7 +7348,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1000x100101
+                                                         101001x0001xxxxx111xxxxxxxxxxxxx
                                                          ld2b.  */
                                                       return 1557;
                                                     }
@@ -7180,7 +7356,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1010x100101
+                                                         101001x0101xxxxx111xxxxxxxxxxxxx
                                                          ld2h.  */
                                                       return 1561;
                                                     }
@@ -7191,7 +7367,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1100x100101
+                                                         101001x0011xxxxx111xxxxxxxxxxxxx
                                                          ld4b.  */
                                                       return 1573;
                                                     }
@@ -7199,7 +7375,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1110x100101
+                                                         101001x0111xxxxx111xxxxxxxxxxxxx
                                                          ld4h.  */
                                                       return 1577;
                                                     }
@@ -7218,7 +7394,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx100xxxxx1x00x10011x
+                                                 x11001x00x1xxxxx001xxxxxxxxxxxxx
                                                  fmul.  */
                                               return 1406;
                                             }
@@ -7228,7 +7404,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx100xxxxx1010x10011x
+                                                     x11001x0101xxxxx001xxxxxxxxxxxxx
                                                      fmul.  */
                                                   return 1407;
                                                 }
@@ -7236,7 +7412,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx100xxxxx1110x10011x
+                                                     x11001x0111xxxxx001xxxxxxxxxxxxx
                                                      fmul.  */
                                                   return 1408;
                                                 }
@@ -7248,7 +7424,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx101xxxxx10x0x10011x
+                                                 x11001x0x01xxxxx101xxxxxxxxxxxxx
                                                  st1h.  */
                                               return 1827;
                                             }
@@ -7258,7 +7434,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx1100x10011x
+                                                     x11001x0011xxxxx101xxxxxxxxxxxxx
                                                      st1b.  */
                                                   return 1814;
                                                 }
@@ -7266,7 +7442,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx1110x10011x
+                                                     x11001x0111xxxxx101xxxxxxxxxxxxx
                                                      st1h.  */
                                                   return 1835;
                                                 }
@@ -7283,7 +7459,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1000x10011x
+                                                     x11001x0001xxxxx011xxxxxxxxxxxxx
                                                      st2b.  */
                                                   return 1849;
                                                 }
@@ -7291,7 +7467,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1010x10011x
+                                                     x11001x0101xxxxx011xxxxxxxxxxxxx
                                                      st2h.  */
                                                   return 1853;
                                                 }
@@ -7302,7 +7478,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1100x10011x
+                                                     x11001x0011xxxxx011xxxxxxxxxxxxx
                                                      st4b.  */
                                                   return 1865;
                                                 }
@@ -7310,7 +7486,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1110x10011x
+                                                     x11001x0111xxxxx011xxxxxxxxxxxxx
                                                      st4h.  */
                                                   return 1869;
                                                 }
@@ -7326,7 +7502,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx01000x10011x
+                                                         x11001x00010xxxx111xxxxxxxxxxxxx
                                                          st1b.  */
                                                       return 1811;
                                                     }
@@ -7334,7 +7510,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx01010x10011x
+                                                         x11001x01010xxxx111xxxxxxxxxxxxx
                                                          st1h.  */
                                                       return 1832;
                                                     }
@@ -7345,7 +7521,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx01100x10011x
+                                                         x11001x00110xxxx111xxxxxxxxxxxxx
                                                          st1b.  */
                                                       return 1815;
                                                     }
@@ -7353,7 +7529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx01110x10011x
+                                                         x11001x01110xxxx111xxxxxxxxxxxxx
                                                          st1h.  */
                                                       return 1836;
                                                     }
@@ -7367,7 +7543,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx11000x10011x
+                                                         x11001x00011xxxx111xxxxxxxxxxxxx
                                                          st2b.  */
                                                       return 1850;
                                                     }
@@ -7375,7 +7551,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx11010x10011x
+                                                         x11001x01011xxxx111xxxxxxxxxxxxx
                                                          st2h.  */
                                                       return 1854;
                                                     }
@@ -7386,7 +7562,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx11100x10011x
+                                                         x11001x00111xxxx111xxxxxxxxxxxxx
                                                          st4b.  */
                                                       return 1866;
                                                     }
@@ -7394,7 +7570,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx11110x10011x
+                                                         x11001x01111xxxx111xxxxxxxxxxxxx
                                                          st4h.  */
                                                       return 1870;
                                                     }
@@ -7425,7 +7601,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxxxxxxx00001x100000
+                                                 000001x10000xxxxxxxxxxxxxxxxxxxx
                                                  orr.  */
                                               return 1695;
                                             }
@@ -7433,7 +7609,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxxxxxxx00011x100000
+                                                 000001x11000xxxxxxxxxxxxxxxxxxxx
                                                  and.  */
                                               return 1239;
                                             }
@@ -7444,7 +7620,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxxxxxxx00101x100000
+                                                 000001x10100xxxxxxxxxxxxxxxxxxxx
                                                  eor.  */
                                               return 1326;
                                             }
@@ -7452,7 +7628,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxxxxxxx00111x100000
+                                                 000001x11100xxxxxxxxxxxxxxxxxxxx
                                                  dupm.  */
                                               return 1324;
                                             }
@@ -7464,7 +7640,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxx10xx1x100000
+                                             000001x1xx01xxxx0xxxxxxxxxxxxxxx
                                              cpy.  */
                                           return 1309;
                                         }
@@ -7472,7 +7648,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxx10xx1x100000
+                                             000001x1xx01xxxx1xxxxxxxxxxxxxxx
                                              fcpy.  */
                                           return 1356;
                                         }
@@ -7488,7 +7664,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx000xxxxx1xx1x100000
+                                                 000001x1xx1xxxxx000xxxxxxxxxxxxx
                                                  ext.  */
                                               return 1331;
                                             }
@@ -7504,7 +7680,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010000x1xx1x100000
+                                                                 000001x1xx1x0000100xxxxxxxxxxxxx
                                                                  cpy.  */
                                                               return 1307;
                                                             }
@@ -7512,7 +7688,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010001x1xx1x100000
+                                                                 000001x1xx1x1000100xxxxxxxxxxxxx
                                                                  clasta.  */
                                                               return 1265;
                                                             }
@@ -7523,7 +7699,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010010x1xx1x100000
+                                                                 000001x1xx1x0100100xxxxxxxxxxxxx
                                                                  revb.  */
                                                               return 1743;
                                                             }
@@ -7531,7 +7707,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010011x1xx1x100000
+                                                                 000001x1xx1x1100100xxxxxxxxxxxxx
                                                                  splice.  */
                                                               return 1770;
                                                             }
@@ -7545,7 +7721,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010100x1xx1x100000
+                                                                 000001x1xx1x0010100xxxxxxxxxxxxx
                                                                  lasta.  */
                                                               return 1453;
                                                             }
@@ -7553,7 +7729,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010101x1xx1x100000
+                                                                 000001x1xx1x1010100xxxxxxxxxxxxx
                                                                  clasta.  */
                                                               return 1266;
                                                             }
@@ -7562,7 +7738,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx001011xx1xx1x100000
+                                                             000001x1xx1xx110100xxxxxxxxxxxxx
                                                              revw.  */
                                                           return 1745;
                                                         }
@@ -7578,7 +7754,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0011000x1xx1x100000
+                                                                 000001x1xx1x0001100xxxxxxxxxxxxx
                                                                  compact.  */
                                                               return 1306;
                                                             }
@@ -7586,7 +7762,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0011001x1xx1x100000
+                                                                 000001x1xx1x1001100xxxxxxxxxxxxx
                                                                  clastb.  */
                                                               return 1268;
                                                             }
@@ -7595,7 +7771,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx001101xx1xx1x100000
+                                                             000001x1xx1xx101100xxxxxxxxxxxxx
                                                              revh.  */
                                                           return 1744;
                                                         }
@@ -7608,7 +7784,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0011100x1xx1x100000
+                                                                 000001x1xx1x0011100xxxxxxxxxxxxx
                                                                  lastb.  */
                                                               return 1455;
                                                             }
@@ -7616,7 +7792,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0011101x1xx1x100000
+                                                                 000001x1xx1x1011100xxxxxxxxxxxxx
                                                                  clastb.  */
                                                               return 1269;
                                                             }
@@ -7625,7 +7801,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx001111xx1xx1x100000
+                                                             000001x1xx1xx111100xxxxxxxxxxxxx
                                                              rbit.  */
                                                           return 1736;
                                                         }
@@ -7643,7 +7819,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxx00100xxxxx1xx1x100000
+                                                         000001x1xx1xxxxx00100xxxxxxxxxxx
                                                          dup.  */
                                                       return 1322;
                                                     }
@@ -7651,7 +7827,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxx01100xxxxx1xx1x100000
+                                                         000001x1xx1xxxxx00110xxxxxxxxxxx
                                                          tbl.  */
                                                       return 1893;
                                                     }
@@ -7670,7 +7846,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxx1x100000001xx1x100000
+                                                                         000001x1xx100000001x1xxxxxxxxxxx
                                                                          dup.  */
                                                                       return 1321;
                                                                     }
@@ -7678,7 +7854,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxx1x100000011xx1x100000
+                                                                         000001x1xx110000001x1xxxxxxxxxxx
                                                                          sunpklo.  */
                                                                       return 1889;
                                                                     }
@@ -7687,7 +7863,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxx1x1000001x1xx1x100000
+                                                                     000001x1xx1x1000001x1xxxxxxxxxxx
                                                                      rev.  */
                                                                   return 1742;
                                                                 }
@@ -7698,7 +7874,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxx1x100001x01xx1x100000
+                                                                     000001x1xx10x100001x1xxxxxxxxxxx
                                                                      insr.  */
                                                                   return 1450;
                                                                 }
@@ -7706,7 +7882,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxx1x100001x11xx1x100000
+                                                                     000001x1xx11x100001x1xxxxxxxxxxx
                                                                      insr.  */
                                                                   return 1451;
                                                                 }
@@ -7716,7 +7892,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxx1x10001xxx1xx1x100000
+                                                             000001x1xx1xxx10001x1xxxxxxxxxxx
                                                              uunpklo.  */
                                                           return 1952;
                                                         }
@@ -7727,7 +7903,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxx1x10010xxx1xx1x100000
+                                                             000001x1xx1xxx01001x1xxxxxxxxxxx
                                                              sunpkhi.  */
                                                           return 1888;
                                                         }
@@ -7735,7 +7911,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxx1x10011xxx1xx1x100000
+                                                             000001x1xx1xxx11001x1xxxxxxxxxxx
                                                              uunpkhi.  */
                                                           return 1951;
                                                         }
@@ -7752,7 +7928,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx1010xx001xx1x100000
+                                                             000001x1xx100xx0101xxxxxxxxxxxxx
                                                              lasta.  */
                                                           return 1452;
                                                         }
@@ -7760,7 +7936,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx1010xx011xx1x100000
+                                                             000001x1xx110xx0101xxxxxxxxxxxxx
                                                              clasta.  */
                                                           return 1267;
                                                         }
@@ -7769,7 +7945,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx1010xx1x1xx1x100000
+                                                         000001x1xx1x1xx0101xxxxxxxxxxxxx
                                                          cpy.  */
                                                       return 1308;
                                                     }
@@ -7780,7 +7956,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx1011xxx01xx1x100000
+                                                         000001x1xx10xxx1101xxxxxxxxxxxxx
                                                          lastb.  */
                                                       return 1454;
                                                     }
@@ -7788,7 +7964,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx1011xxx11xx1x100000
+                                                         000001x1xx11xxx1101xxxxxxxxxxxxx
                                                          clastb.  */
                                                       return 1270;
                                                     }
@@ -7812,7 +7988,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000010xxxx01xx1x100000
+                                                                 000001x1xx10xxxx010000xxxxxxxxxx
                                                                  zip1.  */
                                                               return 1969;
                                                             }
@@ -7824,7 +8000,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx0000100x0x11xx1x100000
+                                                                         000001x1xx11x0x0010000xxxxxxxxxx
                                                                          punpklo.  */
                                                                       return 1735;
                                                                     }
@@ -7832,7 +8008,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx0000100x1x11xx1x100000
+                                                                         000001x1xx11x1x0010000xxxxxxxxxx
                                                                          rev.  */
                                                                       return 1741;
                                                                     }
@@ -7841,7 +8017,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0000101xxx11xx1x100000
+                                                                     000001x1xx11xxx1010000xxxxxxxxxx
                                                                      punpkhi.  */
                                                                   return 1734;
                                                                 }
@@ -7851,7 +8027,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000110xxxxx1xx1x100000
+                                                             000001x1xx1xxxxx011000xxxxxxxxxx
                                                              zip1.  */
                                                           return 1970;
                                                         }
@@ -7862,7 +8038,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001010xxxxx1xx1x100000
+                                                             000001x1xx1xxxxx010100xxxxxxxxxx
                                                              trn1.  */
                                                           return 1894;
                                                         }
@@ -7870,7 +8046,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001110xxxxx1xx1x100000
+                                                             000001x1xx1xxxxx011100xxxxxxxxxx
                                                              trn1.  */
                                                           return 1895;
                                                         }
@@ -7882,7 +8058,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01x010xxxxx1xx1x100000
+                                                         000001x1xx1xxxxx010x10xxxxxxxxxx
                                                          uzp1.  */
                                                       return 1956;
                                                     }
@@ -7890,7 +8066,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01x110xxxxx1xx1x100000
+                                                         000001x1xx1xxxxx011x10xxxxxxxxxx
                                                          uzp1.  */
                                                       return 1957;
                                                     }
@@ -7906,7 +8082,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx100010xxxxx1xx1x100000
+                                                             000001x1xx1xxxxx010001xxxxxxxxxx
                                                              zip2.  */
                                                           return 1971;
                                                         }
@@ -7914,7 +8090,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx100110xxxxx1xx1x100000
+                                                             000001x1xx1xxxxx011001xxxxxxxxxx
                                                              zip2.  */
                                                           return 1972;
                                                         }
@@ -7925,7 +8101,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx101010xxxxx1xx1x100000
+                                                             000001x1xx1xxxxx010101xxxxxxxxxx
                                                              trn2.  */
                                                           return 1896;
                                                         }
@@ -7933,7 +8109,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx101110xxxxx1xx1x100000
+                                                             000001x1xx1xxxxx011101xxxxxxxxxx
                                                              trn2.  */
                                                           return 1897;
                                                         }
@@ -7945,7 +8121,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11x010xxxxx1xx1x100000
+                                                         000001x1xx1xxxxx010x11xxxxxxxxxx
                                                          uzp2.  */
                                                       return 1958;
                                                     }
@@ -7953,7 +8129,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11x110xxxxx1xx1x100000
+                                                         000001x1xx1xxxxx011x11xxxxxxxxxx
                                                          uzp2.  */
                                                       return 1959;
                                                     }
@@ -7964,7 +8140,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxx11xxxxx1xx1x100000
+                                             000001x1xx1xxxxx11xxxxxxxxxxxxxx
                                              sel.  */
                                           return 1760;
                                         }
@@ -7983,7 +8159,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx000xxxxxx0x1x100001
+                                                 100001x1x0xxxxxx000xxxxxxxxxxxxx
                                                  ldr.  */
                                               return 1664;
                                             }
@@ -7991,7 +8167,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx000xxxxxx1x1x100001
+                                                 100001x1x1xxxxxx000xxxxxxxxxxxxx
                                                  prfb.  */
                                               return 1708;
                                             }
@@ -8002,7 +8178,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx001xxxxxxx01x100001
+                                                 100001x10xxxxxxx100xxxxxxxxxxxxx
                                                  ld1rsh.  */
                                               return 1509;
                                             }
@@ -8010,7 +8186,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx001xxxxxxx11x100001
+                                                 100001x11xxxxxxx100xxxxxxxxxxxxx
                                                  ld1rsb.  */
                                               return 1506;
                                             }
@@ -8026,7 +8202,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx0x01x100001
+                                                     100001x10x0xxxxx010xxxxxxxxxxxxx
                                                      ld1w.  */
                                                   return 1544;
                                                 }
@@ -8034,7 +8210,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1x01x100001
+                                                     100001x10x1xxxxx010xxxxxxxxxxxxx
                                                      ld1w.  */
                                                   return 1545;
                                                 }
@@ -8045,7 +8221,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxxx011x100001
+                                                     100001x110xxxxxx010xxxxxxxxxxxxx
                                                      ldr.  */
                                                   return 1665;
                                                 }
@@ -8053,7 +8229,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxxx111x100001
+                                                     100001x111xxxxxx010xxxxxxxxxxxxx
                                                      prfw.  */
                                                   return 1729;
                                                 }
@@ -8069,7 +8245,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0001x100001
+                                                         100001x1000xxxxx110xxxxxxxxxxxxx
                                                          prfw.  */
                                                       return 1725;
                                                     }
@@ -8077,7 +8253,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0011x100001
+                                                         100001x1100xxxxx110xxxxxxxxxxxxx
                                                          prfd.  */
                                                       return 1711;
                                                     }
@@ -8086,7 +8262,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx10x1x100001
+                                                     100001x1x01xxxxx110xxxxxxxxxxxxx
                                                      ld1w.  */
                                                   return 1552;
                                                 }
@@ -8097,7 +8273,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxxx101x100001
+                                                     100001x101xxxxxx110xxxxxxxxxxxxx
                                                      ld1rw.  */
                                                   return 1512;
                                                 }
@@ -8105,7 +8281,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxxx111x100001
+                                                     100001x111xxxxxx110xxxxxxxxxxxxx
                                                      ld1rsb.  */
                                                   return 1508;
                                                 }
@@ -8121,7 +8297,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx100xxxxxxxx1x100001
+                                             100001x1xxxxxxxx001xxxxxxxxxxxxx
                                              prfh.  */
                                           return 1722;
                                         }
@@ -8131,7 +8307,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx101xxxxxxx01x100001
+                                                 100001x10xxxxxxx101xxxxxxxxxxxxx
                                                  ld1rsh.  */
                                               return 1510;
                                             }
@@ -8139,7 +8315,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx101xxxxxxx11x100001
+                                                 100001x11xxxxxxx101xxxxxxxxxxxxx
                                                  ld1rsb.  */
                                               return 1507;
                                             }
@@ -8155,7 +8331,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx0x01x100001
+                                                     100001x10x0xxxxx011xxxxxxxxxxxxx
                                                      ldff1w.  */
                                                   return 1630;
                                                 }
@@ -8163,7 +8339,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1x01x100001
+                                                     100001x10x1xxxxx011xxxxxxxxxxxxx
                                                      ldff1w.  */
                                                   return 1631;
                                                 }
@@ -8172,7 +8348,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxxxx11x100001
+                                                 100001x11xxxxxxx011xxxxxxxxxxxxx
                                                  prfd.  */
                                               return 1715;
                                             }
@@ -8187,7 +8363,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0001x100001
+                                                         100001x1000xxxxx111xxxxxxxxxxxxx
                                                          prfw.  */
                                                       return 1728;
                                                     }
@@ -8195,7 +8371,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0011x100001
+                                                         100001x1100xxxxx111xxxxxxxxxxxxx
                                                          prfd.  */
                                                       return 1714;
                                                     }
@@ -8204,7 +8380,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx10x1x100001
+                                                     100001x1x01xxxxx111xxxxxxxxxxxxx
                                                      ldff1w.  */
                                                   return 1638;
                                                 }
@@ -8215,7 +8391,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxxx101x100001
+                                                     100001x101xxxxxx111xxxxxxxxxxxxx
                                                      ld1rw.  */
                                                   return 1513;
                                                 }
@@ -8223,7 +8399,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxxx111x100001
+                                                     100001x111xxxxxx111xxxxxxxxxxxxx
                                                      ld1rd.  */
                                                   return 1494;
                                                 }
@@ -8245,7 +8421,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx000xxxxx0xx1x10001x
+                                             x10001x1xx0xxxxx000xxxxxxxxxxxxx
                                              ld1sw.  */
                                           return 1538;
                                         }
@@ -8253,7 +8429,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx000xxxxx1xx1x10001x
+                                             x10001x1xx1xxxxx000xxxxxxxxxxxxx
                                              ld1sw.  */
                                           return 1539;
                                         }
@@ -8264,7 +8440,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx001xxxxx0xx1x10001x
+                                             x10001x1xx0xxxxx100xxxxxxxxxxxxx
                                              ld1sw.  */
                                           return 1540;
                                         }
@@ -8274,7 +8450,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx001xxxxx10x1x10001x
+                                                 x10001x1x01xxxxx100xxxxxxxxxxxxx
                                                  ld1sw.  */
                                               return 1543;
                                             }
@@ -8282,7 +8458,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx001xxxxx11x1x10001x
+                                                 x10001x1x11xxxxx100xxxxxxxxxxxxx
                                                  ld1sw.  */
                                               return 1541;
                                             }
@@ -8299,7 +8475,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx0x01x10001x
+                                                 x10001x10x0xxxxx010xxxxxxxxxxxxx
                                                  ld1w.  */
                                               return 1548;
                                             }
@@ -8307,7 +8483,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx0x11x10001x
+                                                 x10001x11x0xxxxx010xxxxxxxxxxxxx
                                                  ld1d.  */
                                               return 1470;
                                             }
@@ -8318,7 +8494,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx1x01x10001x
+                                                 x10001x10x1xxxxx010xxxxxxxxxxxxx
                                                  ld1w.  */
                                               return 1549;
                                             }
@@ -8326,7 +8502,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx1x11x10001x
+                                                 x10001x11x1xxxxx010xxxxxxxxxxxxx
                                                  ld1d.  */
                                               return 1471;
                                             }
@@ -8340,7 +8516,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx011xxxxx0x01x10001x
+                                                 x10001x10x0xxxxx110xxxxxxxxxxxxx
                                                  ld1w.  */
                                               return 1550;
                                             }
@@ -8348,7 +8524,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx011xxxxx0x11x10001x
+                                                 x10001x11x0xxxxx110xxxxxxxxxxxxx
                                                  ld1d.  */
                                               return 1472;
                                             }
@@ -8361,7 +8537,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1001x10001x
+                                                     x10001x1001xxxxx110xxxxxxxxxxxxx
                                                      ld1w.  */
                                                   return 1555;
                                                 }
@@ -8369,7 +8545,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1011x10001x
+                                                     x10001x1101xxxxx110xxxxxxxxxxxxx
                                                      ld1d.  */
                                                   return 1475;
                                                 }
@@ -8380,7 +8556,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1101x10001x
+                                                     x10001x1011xxxxx110xxxxxxxxxxxxx
                                                      ld1w.  */
                                                   return 1551;
                                                 }
@@ -8388,7 +8564,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1111x10001x
+                                                     x10001x1111xxxxx110xxxxxxxxxxxxx
                                                      ld1d.  */
                                                   return 1473;
                                                 }
@@ -8407,7 +8583,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx100xxxxx0xx1x10001x
+                                             x10001x1xx0xxxxx001xxxxxxxxxxxxx
                                              ldff1sw.  */
                                           return 1625;
                                         }
@@ -8415,7 +8591,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx100xxxxx1xx1x10001x
+                                             x10001x1xx1xxxxx001xxxxxxxxxxxxx
                                              ldff1sw.  */
                                           return 1626;
                                         }
@@ -8426,7 +8602,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx101xxxxx0xx1x10001x
+                                             x10001x1xx0xxxxx101xxxxxxxxxxxxx
                                              ldff1sw.  */
                                           return 1627;
                                         }
@@ -8436,7 +8612,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx101xxxxx10x1x10001x
+                                                 x10001x1x01xxxxx101xxxxxxxxxxxxx
                                                  ldff1sw.  */
                                               return 1629;
                                             }
@@ -8444,7 +8620,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx101xxxxx11x1x10001x
+                                                 x10001x1x11xxxxx101xxxxxxxxxxxxx
                                                  ldff1sw.  */
                                               return 1628;
                                             }
@@ -8461,7 +8637,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx0x01x10001x
+                                                 x10001x10x0xxxxx011xxxxxxxxxxxxx
                                                  ldff1w.  */
                                               return 1634;
                                             }
@@ -8469,7 +8645,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx0x11x10001x
+                                                 x10001x11x0xxxxx011xxxxxxxxxxxxx
                                                  ldff1d.  */
                                               return 1590;
                                             }
@@ -8480,7 +8656,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx1x01x10001x
+                                                 x10001x10x1xxxxx011xxxxxxxxxxxxx
                                                  ldff1w.  */
                                               return 1635;
                                             }
@@ -8488,7 +8664,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx1x11x10001x
+                                                 x10001x11x1xxxxx011xxxxxxxxxxxxx
                                                  ldff1d.  */
                                               return 1591;
                                             }
@@ -8504,7 +8680,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0001x10001x
+                                                     x10001x1000xxxxx111xxxxxxxxxxxxx
                                                      prfw.  */
                                                   return 1730;
                                                 }
@@ -8512,7 +8688,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0011x10001x
+                                                     x10001x1100xxxxx111xxxxxxxxxxxxx
                                                      prfd.  */
                                                   return 1716;
                                                 }
@@ -8523,7 +8699,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0101x10001x
+                                                     x10001x1010xxxxx111xxxxxxxxxxxxx
                                                      ldff1w.  */
                                                   return 1636;
                                                 }
@@ -8531,7 +8707,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0111x10001x
+                                                     x10001x1110xxxxx111xxxxxxxxxxxxx
                                                      ldff1d.  */
                                                   return 1592;
                                                 }
@@ -8545,7 +8721,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1001x10001x
+                                                     x10001x1001xxxxx111xxxxxxxxxxxxx
                                                      ldff1w.  */
                                                   return 1639;
                                                 }
@@ -8553,7 +8729,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1011x10001x
+                                                     x10001x1101xxxxx111xxxxxxxxxxxxx
                                                      ldff1d.  */
                                                   return 1594;
                                                 }
@@ -8564,7 +8740,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1101x10001x
+                                                     x10001x1011xxxxx111xxxxxxxxxxxxx
                                                      ldff1w.  */
                                                   return 1637;
                                                 }
@@ -8572,7 +8748,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1111x10001x
+                                                     x10001x1111xxxxx111xxxxxxxxxxxxx
                                                      ldff1d.  */
                                                   return 1593;
                                                 }
@@ -8601,7 +8777,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx000xxxxx0xx1x100100
+                                                     001001x1xx0xxxxx000xxxxxxxx0xxxx
                                                      cmpge.  */
                                                   return 1278;
                                                 }
@@ -8609,7 +8785,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx000xxxxx0xx1x100100
+                                                     001001x1xx0xxxxx000xxxxxxxx1xxxx
                                                      cmpgt.  */
                                                   return 1281;
                                                 }
@@ -8620,7 +8796,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx000xxxxx0x01x100101
+                                                     101001x10x0xxxxx000xxxxxxxxxxxxx
                                                      ld1rqw.  */
                                                   return 1505;
                                                 }
@@ -8628,7 +8804,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx000xxxxx0x11x100101
+                                                     101001x11x0xxxxx000xxxxxxxxxxxxx
                                                      ld1rqd.  */
                                                   return 1501;
                                                 }
@@ -8644,7 +8820,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx0xxxxxx00000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00000xxxxxx0xxxx
                                                          whilelt.  */
                                                       return 1966;
                                                     }
@@ -8652,7 +8828,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx0xxxxxx01000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00010xxxxxx0xxxx
                                                          whilelt.  */
                                                       return 1967;
                                                     }
@@ -8663,7 +8839,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx0xxxxxx10000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00001xxxxxx0xxxx
                                                          whilelo.  */
                                                       return 1962;
                                                     }
@@ -8671,7 +8847,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx0xxxxxx11000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00011xxxxxx0xxxx
                                                          whilelo.  */
                                                       return 1963;
                                                     }
@@ -8685,7 +8861,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx1xxxxxx00000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00000xxxxxx1xxxx
                                                          whilele.  */
                                                       return 1960;
                                                     }
@@ -8693,7 +8869,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx1xxxxxx01000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00010xxxxxx1xxxx
                                                          whilele.  */
                                                       return 1961;
                                                     }
@@ -8704,7 +8880,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx1xxxxxx10000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00001xxxxxx1xxxx
                                                          whilels.  */
                                                       return 1964;
                                                     }
@@ -8712,7 +8888,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx1xxxxxx11000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00011xxxxxx1xxxx
                                                          whilels.  */
                                                       return 1965;
                                                     }
@@ -8732,7 +8908,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00x000xxxxx0xx1x100110
+                                                         011001x1xx0xxxxx000x00xxxxxxxxxx
                                                          fadd.  */
                                                       return 1336;
                                                     }
@@ -8742,7 +8918,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx010000xxxxx0xx1x100110
+                                                             011001x1xx0xxxxx000010xxxxxxxxxx
                                                              fmul.  */
                                                           return 1403;
                                                         }
@@ -8750,7 +8926,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx011000xxxxx0xx1x100110
+                                                             011001x1xx0xxxxx000110xxxxxxxxxx
                                                              frecps.  */
                                                           return 1416;
                                                         }
@@ -8762,7 +8938,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10x000xxxxx0xx1x100110
+                                                         011001x1xx0xxxxx000x01xxxxxxxxxx
                                                          fsub.  */
                                                       return 1429;
                                                     }
@@ -8772,7 +8948,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx110000xxxxx0xx1x100110
+                                                             011001x1xx0xxxxx000011xxxxxxxxxx
                                                              ftsmul.  */
                                                           return 1435;
                                                         }
@@ -8780,7 +8956,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx111000xxxxx0xx1x100110
+                                                             011001x1xx0xxxxx000111xxxxxxxxxx
                                                              frsqrts.  */
                                                           return 1426;
                                                         }
@@ -8791,7 +8967,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx000xxxxx1xx1x100110
+                                                 011001x1xx1xxxxx000xxxxxxxxxxxxx
                                                  fmla.  */
                                               return 1394;
                                             }
@@ -8800,7 +8976,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx000xxxxxxxx1x100111
+                                             111001x1xxxxxxxx000xxxxxxxxxxxxx
                                              str.  */
                                           return 1881;
                                         }
@@ -8818,7 +8994,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx100xxxxx0xx1x100100
+                                                     001001x1xx0xxxxx001xxxxxxxx0xxxx
                                                      cmplt.  */
                                                   return 1295;
                                                 }
@@ -8826,7 +9002,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx100xxxxx0xx1x100100
+                                                     001001x1xx0xxxxx001xxxxxxxx1xxxx
                                                      cmple.  */
                                                   return 1289;
                                                 }
@@ -8837,7 +9013,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx100xxxxx0x01x100101
+                                                     101001x10x0xxxxx001xxxxxxxxxxxxx
                                                      ld1rqw.  */
                                                   return 1504;
                                                 }
@@ -8845,7 +9021,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx100xxxxx0x11x100101
+                                                     101001x11x0xxxxx001xxxxxxxxxxxxx
                                                      ld1rqd.  */
                                                   return 1500;
                                                 }
@@ -8865,7 +9041,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx100000000xx1x10011x
+                                                                 x11001x1xx000000001xxxxxxxxxxxxx
                                                                  faddv.  */
                                                               return 1340;
                                                             }
@@ -8875,7 +9051,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxx0xxxxxxxx100000010xx1x10011x
+                                                                     x11001x1xx010000001xxxxxxxx0xxxx
                                                                      fcmge.  */
                                                                   return 1347;
                                                                 }
@@ -8883,7 +9059,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxx1xxxxxxxx100000010xx1x10011x
+                                                                     x11001x1xx010000001xxxxxxxx1xxxx
                                                                      fcmgt.  */
                                                                   return 1349;
                                                                 }
@@ -8893,7 +9069,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx1000001x0xx1x10011x
+                                                             x11001x1xx0x1000001xxxxxxxxxxxxx
                                                              fadda.  */
                                                           return 1339;
                                                         }
@@ -8902,7 +9078,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100001xx0xx1x10011x
+                                                         x11001x1xx0xx100001xxxxxxxxxxxxx
                                                          fmaxnmv.  */
                                                       return 1386;
                                                     }
@@ -8913,7 +9089,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100010xx0xx1x10011x
+                                                         x11001x1xx0xx010001xxxxxxxxxxxxx
                                                          fcmeq.  */
                                                       return 1345;
                                                     }
@@ -8923,7 +9099,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx1000110x0xx1x10011x
+                                                             x11001x1xx0x0110001xxxxxxxxxxxxx
                                                              fmaxv.  */
                                                           return 1387;
                                                         }
@@ -8931,7 +9107,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx1000111x0xx1x10011x
+                                                             x11001x1xx0x1110001xxxxxxxxxxxxx
                                                              frecpe.  */
                                                           return 1415;
                                                         }
@@ -8948,7 +9124,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx0xxxxxxxx100100xx0xx1x10011x
+                                                             x11001x1xx0xx001001xxxxxxxx0xxxx
                                                              fcmlt.  */
                                                           return 1352;
                                                         }
@@ -8956,7 +9132,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx1xxxxxxxx100100xx0xx1x10011x
+                                                             x11001x1xx0xx001001xxxxxxxx1xxxx
                                                              fcmle.  */
                                                           return 1351;
                                                         }
@@ -8965,7 +9141,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100101xx0xx1x10011x
+                                                         x11001x1xx0xx101001xxxxxxxxxxxxx
                                                          fminnmv.  */
                                                       return 1392;
                                                     }
@@ -8976,7 +9152,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100110xx0xx1x10011x
+                                                         x11001x1xx0xx011001xxxxxxxxxxxxx
                                                          fcmne.  */
                                                       return 1353;
                                                     }
@@ -8986,7 +9162,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx1001110x0xx1x10011x
+                                                             x11001x1xx0x0111001xxxxxxxxxxxxx
                                                              fminv.  */
                                                           return 1393;
                                                         }
@@ -8994,7 +9170,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx1001111x0xx1x10011x
+                                                             x11001x1xx0x1111001xxxxxxxxxxxxx
                                                              frsqrte.  */
                                                           return 1425;
                                                         }
@@ -9011,7 +9187,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx0xxxxxxxx100xxxxx1xx1x10010x
+                                                 x01001x1xx1xxxxx001xxxxxxxx0xxxx
                                                  ctermeq.  */
                                               return 1310;
                                             }
@@ -9019,7 +9195,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx1xxxxxxxx100xxxxx1xx1x10010x
+                                                 x01001x1xx1xxxxx001xxxxxxxx1xxxx
                                                  ctermne.  */
                                               return 1311;
                                             }
@@ -9028,7 +9204,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx100xxxxx1xx1x10011x
+                                             x11001x1xx1xxxxx001xxxxxxxxxxxxx
                                              fmls.  */
                                           return 1398;
                                         }
@@ -9055,7 +9231,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxx0xxxx10xxxx00001x100100
+                                                                 001001x10000xxxx01xxxx0xxxx0xxxx
                                                                  and.  */
                                                               return 1241;
                                                             }
@@ -9063,7 +9239,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx1xxxx0xxxx10xxxx00001x100100
+                                                                 001001x10000xxxx01xxxx0xxxx1xxxx
                                                                  bic.  */
                                                               return 1253;
                                                             }
@@ -9074,7 +9250,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxx0xxxx10xxx010001x100100
+                                                                 001001x100010xxx01xxxx0xxxxxxxxx
                                                                  brka.  */
                                                               return 1255;
                                                             }
@@ -9082,7 +9258,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxx0xxxx10xxx110001x100100
+                                                                 001001x100011xxx01xxxx0xxxxxxxxx
                                                                  brkn.  */
                                                               return 1259;
                                                             }
@@ -9094,7 +9270,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx0xxxx1xxxx10xxxxx0001x100100
+                                                             001001x1000xxxxx01xxxx1xxxx0xxxx
                                                              eor.  */
                                                           return 1328;
                                                         }
@@ -9102,7 +9278,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx1xxxx1xxxx10xxxxx0001x100100
+                                                             001001x1000xxxxx01xxxx1xxxx1xxxx
                                                              sel.  */
                                                           return 1761;
                                                         }
@@ -9114,7 +9290,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0001x100101
+                                                         101001x1000xxxxx010xxxxxxxxxxxxx
                                                          ld1sh.  */
                                                       return 1527;
                                                     }
@@ -9122,7 +9298,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0001x100101
+                                                         101001x1000xxxxx011xxxxxxxxxxxxx
                                                          ldff1sh.  */
                                                       return 1616;
                                                     }
@@ -9140,7 +9316,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxx0xxxx10xxxx00011x100100
+                                                                 001001x11000xxxx01xxxx0xxxx0xxxx
                                                                  orr.  */
                                                               return 1697;
                                                             }
@@ -9148,7 +9324,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx1xxxx0xxxx10xxxx00011x100100
+                                                                 001001x11000xxxx01xxxx0xxxx1xxxx
                                                                  orn.  */
                                                               return 1692;
                                                             }
@@ -9157,7 +9333,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxx0xxxx10xxxx10011x100100
+                                                             001001x11001xxxx01xxxx0xxxxxxxxx
                                                              brkb.  */
                                                           return 1257;
                                                         }
@@ -9168,7 +9344,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx0xxxx1xxxx10xxxxx0011x100100
+                                                             001001x1100xxxxx01xxxx1xxxx0xxxx
                                                              nor.  */
                                                           return 1689;
                                                         }
@@ -9176,7 +9352,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx1xxxx1xxxx10xxxxx0011x100100
+                                                             001001x1100xxxxx01xxxx1xxxx1xxxx
                                                              nand.  */
                                                           return 1686;
                                                         }
@@ -9188,7 +9364,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0011x100101
+                                                         101001x1100xxxxx010xxxxxxxxxxxxx
                                                          ld1sb.  */
                                                       return 1515;
                                                     }
@@ -9196,7 +9372,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0011x100101
+                                                         101001x1100xxxxx011xxxxxxxxxxxxx
                                                          ldff1sb.  */
                                                       return 1607;
                                                     }
@@ -9217,7 +9393,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxx0xxxx10xxxx00101x100100
+                                                                 001001x10100xxxx01xxxx0xxxx0xxxx
                                                                  ands.  */
                                                               return 1242;
                                                             }
@@ -9227,7 +9403,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxx0xxxx0xxxx10xxx010101x100100
+                                                                     001001x101010xxx01xxxx0xxxx0xxxx
                                                                      brkas.  */
                                                                   return 1256;
                                                                 }
@@ -9235,7 +9411,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxx0xxxx0xxxx10xxx110101x100100
+                                                                     001001x101011xxx01xxxx0xxxx0xxxx
                                                                      brkns.  */
                                                                   return 1260;
                                                                 }
@@ -9245,7 +9421,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx0xxxx1xxxx10xxxxx0101x100100
+                                                             001001x1010xxxxx01xxxx1xxxx0xxxx
                                                              eors.  */
                                                           return 1329;
                                                         }
@@ -9254,7 +9430,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx1xxxxxxxxx10xxxxx0101x100100
+                                                         001001x1010xxxxx01xxxxxxxxx1xxxx
                                                          bics.  */
                                                       return 1254;
                                                     }
@@ -9265,7 +9441,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0101x100101
+                                                         101001x1010xxxxx010xxxxxxxxxxxxx
                                                          ld1w.  */
                                                       return 1546;
                                                     }
@@ -9273,7 +9449,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0101x100101
+                                                         101001x1010xxxxx011xxxxxxxxxxxxx
                                                          ldff1w.  */
                                                       return 1632;
                                                     }
@@ -9291,7 +9467,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxx0xxxx10xxxx00111x100100
+                                                                 001001x11100xxxx01xxxx0xxxx0xxxx
                                                                  orrs.  */
                                                               return 1698;
                                                             }
@@ -9299,7 +9475,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxx0xxxx10xxxx10111x100100
+                                                                 001001x11101xxxx01xxxx0xxxx0xxxx
                                                                  brkbs.  */
                                                               return 1258;
                                                             }
@@ -9308,7 +9484,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx0xxxx1xxxx10xxxxx0111x100100
+                                                             001001x1110xxxxx01xxxx1xxxx0xxxx
                                                              nors.  */
                                                           return 1690;
                                                         }
@@ -9319,7 +9495,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx1xxxx0xxxx10xxxxx0111x100100
+                                                             001001x1110xxxxx01xxxx0xxxx1xxxx
                                                              orns.  */
                                                           return 1693;
                                                         }
@@ -9327,7 +9503,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx1xxxx1xxxx10xxxxx0111x100100
+                                                             001001x1110xxxxx01xxxx1xxxx1xxxx
                                                              nands.  */
                                                           return 1687;
                                                         }
@@ -9339,7 +9515,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0111x100101
+                                                         101001x1110xxxxx010xxxxxxxxxxxxx
                                                          ld1sb.  */
                                                       return 1517;
                                                     }
@@ -9347,7 +9523,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0111x100101
+                                                         101001x1110xxxxx011xxxxxxxxxxxxx
                                                          ldff1sb.  */
                                                       return 1609;
                                                     }
@@ -9365,7 +9541,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1001x10010x
+                                                     x01001x1001xxxxx010xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                   return 1528;
                                                 }
@@ -9373,7 +9549,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1011x10010x
+                                                     x01001x1101xxxxx010xxxxxxxxxxxxx
                                                      ld1sb.  */
                                                   return 1516;
                                                 }
@@ -9384,7 +9560,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1101x10010x
+                                                     x01001x1011xxxxx010xxxxxxxxxxxxx
                                                      ld1w.  */
                                                   return 1547;
                                                 }
@@ -9392,7 +9568,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1111x10010x
+                                                     x01001x1111xxxxx010xxxxxxxxxxxxx
                                                      ld1d.  */
                                                   return 1469;
                                                 }
@@ -9406,7 +9582,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1001x10010x
+                                                     x01001x1001xxxxx011xxxxxxxxxxxxx
                                                      ldff1sh.  */
                                                   return 1617;
                                                 }
@@ -9414,7 +9590,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1011x10010x
+                                                     x01001x1101xxxxx011xxxxxxxxxxxxx
                                                      ldff1sb.  */
                                                   return 1608;
                                                 }
@@ -9425,7 +9601,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1101x10010x
+                                                     x01001x1011xxxxx011xxxxxxxxxxxxx
                                                      ldff1w.  */
                                                   return 1633;
                                                 }
@@ -9433,7 +9609,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1111x10010x
+                                                     x01001x1111xxxxx011xxxxxxxxxxxxx
                                                      ldff1d.  */
                                                   return 1589;
                                                 }
@@ -9453,7 +9629,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx010xxxxx0xx1x100110
+                                                     011001x1xx0xxxxx010xxxxxxxx0xxxx
                                                      fcmge.  */
                                                   return 1348;
                                                 }
@@ -9461,7 +9637,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx010xxxxx0xx1x100110
+                                                     011001x1xx0xxxxx010xxxxxxxx1xxxx
                                                      fcmgt.  */
                                                   return 1350;
                                                 }
@@ -9470,7 +9646,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx1xx1x100110
+                                                 011001x1xx1xxxxx010xxxxxxxxxxxxx
                                                  fnmla.  */
                                               return 1412;
                                             }
@@ -9481,7 +9657,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxxx0x1x100111
+                                                 111001x1x0xxxxxx010xxxxxxxxxxxxx
                                                  str.  */
                                               return 1882;
                                             }
@@ -9491,7 +9667,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx01x1x100111
+                                                     111001x1x10xxxxx010xxxxxxxxxxxxx
                                                      st1w.  */
                                                   return 1841;
                                                 }
@@ -9501,7 +9677,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx1101x100111
+                                                         111001x1011xxxxx010xxxxxxxxxxxxx
                                                          st1w.  */
                                                       return 1843;
                                                     }
@@ -9509,7 +9685,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx1111x100111
+                                                         111001x1111xxxxx010xxxxxxxxxxxxx
                                                          st1d.  */
                                                       return 1820;
                                                     }
@@ -9527,7 +9703,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx110xxxxx0xx1x100110
+                                                     011001x1xx0xxxxx011xxxxxxxx0xxxx
                                                      fcmeq.  */
                                                   return 1346;
                                                 }
@@ -9535,7 +9711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx110xxxxx0xx1x100110
+                                                     011001x1xx0xxxxx011xxxxxxxx1xxxx
                                                      fcmne.  */
                                                   return 1354;
                                                 }
@@ -9548,7 +9724,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0001x100111
+                                                         111001x1000xxxxx011xxxxxxxxxxxxx
                                                          stnt1w.  */
                                                       return 1879;
                                                     }
@@ -9556,7 +9732,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0011x100111
+                                                         111001x1100xxxxx011xxxxxxxxxxxxx
                                                          stnt1d.  */
                                                       return 1875;
                                                     }
@@ -9567,7 +9743,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0101x100111
+                                                         111001x1010xxxxx011xxxxxxxxxxxxx
                                                          st3w.  */
                                                       return 1863;
                                                     }
@@ -9575,7 +9751,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0111x100111
+                                                         111001x1110xxxxx011xxxxxxxxxxxxx
                                                          st3d.  */
                                                       return 1859;
                                                     }
@@ -9588,7 +9764,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx1xx1x100110
+                                                 011001x1xx1xxxxx011xxxxxxxxxxxxx
                                                  fnmls.  */
                                               return 1413;
                                             }
@@ -9600,7 +9776,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx1001x100111
+                                                         111001x1001xxxxx011xxxxxxxxxxxxx
                                                          st2w.  */
                                                       return 1855;
                                                     }
@@ -9608,7 +9784,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx1011x100111
+                                                         111001x1101xxxxx011xxxxxxxxxxxxx
                                                          st2d.  */
                                                       return 1851;
                                                     }
@@ -9619,7 +9795,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx1101x100111
+                                                         111001x1011xxxxx011xxxxxxxxxxxxx
                                                          st4w.  */
                                                       return 1871;
                                                     }
@@ -9627,7 +9803,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx1111x100111
+                                                         111001x1111xxxxx011xxxxxxxxxxxxx
                                                          st4d.  */
                                                       return 1867;
                                                     }
@@ -9652,7 +9828,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx0xxxxxxxx001xxxxx0xx1x10010x
+                                                 x01001x1xx0xxxxx100xxxxxxxx0xxxx
                                                  cmpeq.  */
                                               return 1275;
                                             }
@@ -9660,7 +9836,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx1xxxxxxxx001xxxxx0xx1x10010x
+                                                 x01001x1xx0xxxxx100xxxxxxxx1xxxx
                                                  cmpne.  */
                                               return 1298;
                                             }
@@ -9675,7 +9851,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx00001x10010x
+                                                         x01001x10000xxxx101xxxxxxxxxxxxx
                                                          ld1sh.  */
                                                       return 1534;
                                                     }
@@ -9683,7 +9859,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx00011x10010x
+                                                         x01001x11000xxxx101xxxxxxxxxxxxx
                                                          ld1sb.  */
                                                       return 1521;
                                                     }
@@ -9694,7 +9870,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx00101x10010x
+                                                         x01001x10100xxxx101xxxxxxxxxxxxx
                                                          ld1w.  */
                                                       return 1553;
                                                     }
@@ -9702,7 +9878,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx00111x10010x
+                                                         x01001x11100xxxx101xxxxxxxxxxxxx
                                                          ld1sb.  */
                                                       return 1523;
                                                     }
@@ -9716,7 +9892,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx10001x10010x
+                                                         x01001x10001xxxx101xxxxxxxxxxxxx
                                                          ldnf1sh.  */
                                                       return 1651;
                                                     }
@@ -9724,7 +9900,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx10011x10010x
+                                                         x01001x11001xxxx101xxxxxxxxxxxxx
                                                          ldnf1sb.  */
                                                       return 1648;
                                                     }
@@ -9735,7 +9911,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx10101x10010x
+                                                         x01001x10101xxxx101xxxxxxxxxxxxx
                                                          ldnf1w.  */
                                                       return 1654;
                                                     }
@@ -9743,7 +9919,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx10111x10010x
+                                                         x01001x11101xxxx101xxxxxxxxxxxxx
                                                          ldnf1sb.  */
                                                       return 1650;
                                                     }
@@ -9763,7 +9939,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx0xxxxxxxxx11xxxx000x1x100100
+                                                         001001x1x000xxxx11xxxxxxxxx0xxxx
                                                          brkpa.  */
                                                       return 1261;
                                                     }
@@ -9771,7 +9947,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx0xxxxxxxxx11xxxx001x1x100100
+                                                         001001x1x100xxxx11xxxxxxxxx0xxxx
                                                          brkpas.  */
                                                       return 1262;
                                                     }
@@ -9784,7 +9960,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx0xxxxxxxxx110xx010xx1x100100
+                                                             001001x1xx010xx011xxxxxxxxx0xxxx
                                                              ptest.  */
                                                           return 1731;
                                                         }
@@ -9798,7 +9974,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxx0xxxxx0x00110xx110xx1x100100
+                                                                         001001x1xx011xx01100x0xxxxx0xxxx
                                                                          pfirst.  */
                                                                       return 1701;
                                                                     }
@@ -9806,7 +9982,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxx0xxxxx0x01110xx110xx1x100100
+                                                                         001001x1xx011xx01110x0xxxxx0xxxx
                                                                          ptrue.  */
                                                                       return 1732;
                                                                     }
@@ -9817,7 +9993,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxx0xxxxx0x1x110xx1100x1x100100
+                                                                         001001x1x0011xx011x1x0xxxxx0xxxx
                                                                          rdffr.  */
                                                                       return 1738;
                                                                     }
@@ -9825,7 +10001,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxx0xxxxx0x1x110xx1101x1x100100
+                                                                         001001x1x1011xx011x1x0xxxxx0xxxx
                                                                          rdffrs.  */
                                                                       return 1739;
                                                                     }
@@ -9835,7 +10011,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxxx1xxx110xx110xx1x100100
+                                                                 001001x1xx011xx011xxx1xxxxx0xxxx
                                                                  pfalse.  */
                                                               return 1700;
                                                             }
@@ -9849,7 +10025,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxxx0x0x111xxx10xx1x100100
+                                                                 001001x1xx01xxx111x0x0xxxxx0xxxx
                                                                  ptrues.  */
                                                               return 1733;
                                                             }
@@ -9857,7 +10033,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxxx0x1x111xxx10xx1x100100
+                                                                 001001x1xx01xxx111x1x0xxxxx0xxxx
                                                                  rdffr.  */
                                                               return 1737;
                                                             }
@@ -9866,7 +10042,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx0xxxxx1xxx111xxx10xx1x100100
+                                                             001001x1xx01xxx111xxx1xxxxx0xxxx
                                                              pnext.  */
                                                           return 1702;
                                                         }
@@ -9879,7 +10055,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxxx11xxxxx00x1x100100
+                                                     001001x1x00xxxxx11xxxxxxxxx1xxxx
                                                      brkpb.  */
                                                   return 1263;
                                                 }
@@ -9887,7 +10063,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxxx11xxxxx01x1x100100
+                                                     001001x1x10xxxxx11xxxxxxxxx1xxxx
                                                      brkpbs.  */
                                                   return 1264;
                                                 }
@@ -9903,7 +10079,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0001x100101
+                                                         101001x1000xxxxx110xxxxxxxxxxxxx
                                                          ldnt1w.  */
                                                       return 1662;
                                                     }
@@ -9911,7 +10087,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0011x100101
+                                                         101001x1100xxxxx110xxxxxxxxxxxxx
                                                          ldnt1d.  */
                                                       return 1658;
                                                     }
@@ -9922,7 +10098,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0101x100101
+                                                         101001x1010xxxxx110xxxxxxxxxxxxx
                                                          ld3w.  */
                                                       return 1570;
                                                     }
@@ -9930,7 +10106,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0111x100101
+                                                         101001x1110xxxxx110xxxxxxxxxxxxx
                                                          ld3d.  */
                                                       return 1566;
                                                     }
@@ -9944,7 +10120,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0001x100101
+                                                         101001x1000xxxxx111xxxxxxxxxxxxx
                                                          ldnt1w.  */
                                                       return 1663;
                                                     }
@@ -9952,7 +10128,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0011x100101
+                                                         101001x1100xxxxx111xxxxxxxxxxxxx
                                                          ldnt1d.  */
                                                       return 1659;
                                                     }
@@ -9963,7 +10139,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0101x100101
+                                                         101001x1010xxxxx111xxxxxxxxxxxxx
                                                          ld3w.  */
                                                       return 1571;
                                                     }
@@ -9971,7 +10147,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0111x100101
+                                                         101001x1110xxxxx111xxxxxxxxxxxxx
                                                          ld3d.  */
                                                       return 1567;
                                                     }
@@ -10000,7 +10176,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001000000xx1x100110
+                                                                     011001x1xx000000100xxxxxxxxxxxxx
                                                                      fadd.  */
                                                                   return 1337;
                                                                 }
@@ -10008,7 +10184,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001001000xx1x100110
+                                                                     011001x1xx000100100xxxxxxxxxxxxx
                                                                      fmaxnm.  */
                                                                   return 1384;
                                                                 }
@@ -10019,7 +10195,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001010000xx1x100110
+                                                                     011001x1xx000010100xxxxxxxxxxxxx
                                                                      fmul.  */
                                                                   return 1404;
                                                                 }
@@ -10027,7 +10203,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001011000xx1x100110
+                                                                     011001x1xx000110100xxxxxxxxxxxxx
                                                                      fmax.  */
                                                                   return 1382;
                                                                 }
@@ -10041,7 +10217,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001100000xx1x100110
+                                                                     011001x1xx000001100xxxxxxxxxxxxx
                                                                      fsub.  */
                                                                   return 1430;
                                                                 }
@@ -10049,7 +10225,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001101000xx1x100110
+                                                                     011001x1xx000101100xxxxxxxxxxxxx
                                                                      fminnm.  */
                                                                   return 1390;
                                                                 }
@@ -10060,7 +10236,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001110000xx1x100110
+                                                                     011001x1xx000011100xxxxxxxxxxxxx
                                                                      fsubr.  */
                                                                   return 1432;
                                                                 }
@@ -10068,7 +10244,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001111000xx1x100110
+                                                                     011001x1xx000111100xxxxxxxxxxxxx
                                                                      fmin.  */
                                                                   return 1388;
                                                                 }
@@ -10079,7 +10255,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx001xxx010xx1x100110
+                                                         011001x1xx010xxx100xxxxxxxxxxxxx
                                                          ftmad.  */
                                                       return 1434;
                                                     }
@@ -10096,7 +10272,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001000100xx1x100110
+                                                                     011001x1xx001000100xxxxxxxxxxxxx
                                                                      fabd.  */
                                                                   return 1332;
                                                                 }
@@ -10104,7 +10280,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001000110xx1x100110
+                                                                     011001x1xx011000100xxxxxxxxxxxxx
                                                                      fadd.  */
                                                                   return 1338;
                                                                 }
@@ -10115,7 +10291,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001001100xx1x100110
+                                                                     011001x1xx001100100xxxxxxxxxxxxx
                                                                      fdivr.  */
                                                                   return 1378;
                                                                 }
@@ -10123,7 +10299,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001001110xx1x100110
+                                                                     011001x1xx011100100xxxxxxxxxxxxx
                                                                      fmaxnm.  */
                                                                   return 1385;
                                                                 }
@@ -10137,7 +10313,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001010100xx1x100110
+                                                                     011001x1xx001010100xxxxxxxxxxxxx
                                                                      fmulx.  */
                                                                   return 1409;
                                                                 }
@@ -10145,7 +10321,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001010110xx1x100110
+                                                                     011001x1xx011010100xxxxxxxxxxxxx
                                                                      fmul.  */
                                                                   return 1405;
                                                                 }
@@ -10154,7 +10330,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010111x0xx1x100110
+                                                                 011001x1xx0x1110100xxxxxxxxxxxxx
                                                                  fmax.  */
                                                               return 1383;
                                                             }
@@ -10170,7 +10346,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001100100xx1x100110
+                                                                     011001x1xx001001100xxxxxxxxxxxxx
                                                                      fscale.  */
                                                                   return 1427;
                                                                 }
@@ -10178,7 +10354,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001100110xx1x100110
+                                                                     011001x1xx011001100xxxxxxxxxxxxx
                                                                      fsub.  */
                                                                   return 1431;
                                                                 }
@@ -10189,7 +10365,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001101100xx1x100110
+                                                                     011001x1xx001101100xxxxxxxxxxxxx
                                                                      fdiv.  */
                                                                   return 1377;
                                                                 }
@@ -10197,7 +10373,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001101110xx1x100110
+                                                                     011001x1xx011101100xxxxxxxxxxxxx
                                                                      fminnm.  */
                                                                   return 1391;
                                                                 }
@@ -10209,7 +10385,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0011101x0xx1x100110
+                                                                 011001x1xx0x1011100xxxxxxxxxxxxx
                                                                  fsubr.  */
                                                               return 1433;
                                                             }
@@ -10217,7 +10393,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0011111x0xx1x100110
+                                                                 011001x1xx0x1111100xxxxxxxxxxxxx
                                                                  fmin.  */
                                                               return 1389;
                                                             }
@@ -10231,7 +10407,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx011xxxxx0xx1x100110
+                                                     011001x1xx0xxxxx110xxxxxxxx0xxxx
                                                      fcmuo.  */
                                                   return 1355;
                                                 }
@@ -10239,7 +10415,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx011xxxxx0xx1x100110
+                                                     011001x1xx0xxxxx110xxxxxxxx1xxxx
                                                      facge.  */
                                                   return 1334;
                                                 }
@@ -10253,7 +10429,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx0001x100111
+                                                     111001x1000xxxxx1x0xxxxxxxxxxxxx
                                                      st1w.  */
                                                   return 1837;
                                                 }
@@ -10261,7 +10437,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx0011x100111
+                                                     111001x1100xxxxx1x0xxxxxxxxxxxxx
                                                      st1d.  */
                                                   return 1816;
                                                 }
@@ -10270,7 +10446,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x1xxxxx01x1x100111
+                                                 111001x1x10xxxxx1x0xxxxxxxxxxxxx
                                                  st1w.  */
                                               return 1842;
                                             }
@@ -10294,7 +10470,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101000000xx1x100110
+                                                                     011001x1xx000000101xxxxxxxxxxxxx
                                                                      frintn.  */
                                                                   return 1421;
                                                                 }
@@ -10302,7 +10478,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101000010xx1x100110
+                                                                     011001x1xx010000101xxxxxxxxxxxxx
                                                                      scvtf.  */
                                                                   return 1751;
                                                                 }
@@ -10315,7 +10491,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx1010001000x1x100110
+                                                                         011001x1x0001000101xxxxxxxxxxxxx
                                                                          fcvt.  */
                                                                       return 1357;
                                                                     }
@@ -10323,7 +10499,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx1010001001x1x100110
+                                                                         011001x1x1001000101xxxxxxxxxxxxx
                                                                          fcvt.  */
                                                                       return 1359;
                                                                     }
@@ -10332,7 +10508,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101000110xx1x100110
+                                                                     011001x1xx011000101xxxxxxxxxxxxx
                                                                      fcvtzs.  */
                                                                   return 1367;
                                                                 }
@@ -10346,7 +10522,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101001000xx1x100110
+                                                                     011001x1xx000100101xxxxxxxxxxxxx
                                                                      frinta.  */
                                                                   return 1418;
                                                                 }
@@ -10356,7 +10532,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx1010010100x1x100110
+                                                                         011001x1x0010100101xxxxxxxxxxxxx
                                                                          scvtf.  */
                                                                       return 1750;
                                                                     }
@@ -10366,7 +10542,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101001010101x100110
+                                                                             011001x101010100101xxxxxxxxxxxxx
                                                                              scvtf.  */
                                                                           return 1749;
                                                                         }
@@ -10374,7 +10550,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101001010111x100110
+                                                                             011001x111010100101xxxxxxxxxxxxx
                                                                              scvtf.  */
                                                                           return 1753;
                                                                         }
@@ -10387,7 +10563,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101001100xx1x100110
+                                                                     011001x1xx001100101xxxxxxxxxxxxx
                                                                      frecpx.  */
                                                                   return 1417;
                                                                 }
@@ -10397,7 +10573,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx1010011100x1x100110
+                                                                         011001x1x0011100101xxxxxxxxxxxxx
                                                                          fcvtzs.  */
                                                                       return 1366;
                                                                     }
@@ -10407,7 +10583,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101001110101x100110
+                                                                             011001x101011100101xxxxxxxxxxxxx
                                                                              fcvtzs.  */
                                                                           return 1364;
                                                                         }
@@ -10415,7 +10591,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101001110111x100110
+                                                                             011001x111011100101xxxxxxxxxxxxx
                                                                              fcvtzs.  */
                                                                           return 1368;
                                                                         }
@@ -10434,7 +10610,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101010000xx1x100110
+                                                                     011001x1xx000010101xxxxxxxxxxxxx
                                                                      frintm.  */
                                                                   return 1420;
                                                                 }
@@ -10442,7 +10618,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101010010xx1x100110
+                                                                     011001x1xx010010101xxxxxxxxxxxxx
                                                                      scvtf.  */
                                                                   return 1748;
                                                                 }
@@ -10453,7 +10629,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101010100xx1x100110
+                                                                     011001x1xx001010101xxxxxxxxxxxxx
                                                                      fcvt.  */
                                                                   return 1361;
                                                                 }
@@ -10461,7 +10637,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101010110xx1x100110
+                                                                     011001x1xx011010101xxxxxxxxxxxxx
                                                                      fcvtzs.  */
                                                                   return 1363;
                                                                 }
@@ -10475,7 +10651,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101011000xx1x100110
+                                                                     011001x1xx000110101xxxxxxxxxxxxx
                                                                      frintx.  */
                                                                   return 1423;
                                                                 }
@@ -10485,7 +10661,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101011010x01x100110
+                                                                         011001x10x010110101xxxxxxxxxxxxx
                                                                          scvtf.  */
                                                                       return 1752;
                                                                     }
@@ -10493,7 +10669,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101011010x11x100110
+                                                                         011001x11x010110101xxxxxxxxxxxxx
                                                                          scvtf.  */
                                                                       return 1754;
                                                                     }
@@ -10505,7 +10681,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx1010111x0x01x100110
+                                                                     011001x10x0x1110101xxxxxxxxxxxxx
                                                                      fcvtzs.  */
                                                                   return 1365;
                                                                 }
@@ -10513,7 +10689,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx1010111x0x11x100110
+                                                                     011001x11x0x1110101xxxxxxxxxxxxx
                                                                      fcvtzs.  */
                                                                   return 1369;
                                                                 }
@@ -10533,7 +10709,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101100000xx1x100110
+                                                                     011001x1xx000001101xxxxxxxxxxxxx
                                                                      frintp.  */
                                                                   return 1422;
                                                                 }
@@ -10541,7 +10717,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101100010xx1x100110
+                                                                     011001x1xx010001101xxxxxxxxxxxxx
                                                                      ucvtf.  */
                                                                   return 1903;
                                                                 }
@@ -10554,7 +10730,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx1011001000x1x100110
+                                                                         011001x1x0001001101xxxxxxxxxxxxx
                                                                          fcvt.  */
                                                                       return 1358;
                                                                     }
@@ -10562,7 +10738,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx1011001001x1x100110
+                                                                         011001x1x1001001101xxxxxxxxxxxxx
                                                                          fcvt.  */
                                                                       return 1360;
                                                                     }
@@ -10571,7 +10747,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101100110xx1x100110
+                                                                     011001x1xx011001101xxxxxxxxxxxxx
                                                                      fcvtzu.  */
                                                                   return 1374;
                                                                 }
@@ -10585,7 +10761,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx1011010x00x1x100110
+                                                                     011001x1x00x0101101xxxxxxxxxxxxx
                                                                      ucvtf.  */
                                                                   return 1902;
                                                                 }
@@ -10595,7 +10771,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx1011010x0101x100110
+                                                                         011001x1010x0101101xxxxxxxxxxxxx
                                                                          ucvtf.  */
                                                                       return 1901;
                                                                     }
@@ -10603,7 +10779,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx1011010x0111x100110
+                                                                         011001x1110x0101101xxxxxxxxxxxxx
                                                                          ucvtf.  */
                                                                       return 1905;
                                                                     }
@@ -10615,7 +10791,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101101100xx1x100110
+                                                                     011001x1xx001101101xxxxxxxxxxxxx
                                                                      fsqrt.  */
                                                                   return 1428;
                                                                 }
@@ -10625,7 +10801,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx1011011100x1x100110
+                                                                         011001x1x0011101101xxxxxxxxxxxxx
                                                                          fcvtzu.  */
                                                                       return 1373;
                                                                     }
@@ -10635,7 +10811,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101101110101x100110
+                                                                             011001x101011101101xxxxxxxxxxxxx
                                                                              fcvtzu.  */
                                                                           return 1371;
                                                                         }
@@ -10643,7 +10819,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101101110111x100110
+                                                                             011001x111011101101xxxxxxxxxxxxx
                                                                              fcvtzu.  */
                                                                           return 1375;
                                                                         }
@@ -10662,7 +10838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101110000xx1x100110
+                                                                     011001x1xx000011101xxxxxxxxxxxxx
                                                                      frintz.  */
                                                                   return 1424;
                                                                 }
@@ -10670,7 +10846,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101110010xx1x100110
+                                                                     011001x1xx010011101xxxxxxxxxxxxx
                                                                      ucvtf.  */
                                                                   return 1900;
                                                                 }
@@ -10681,7 +10857,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101110100xx1x100110
+                                                                     011001x1xx001011101xxxxxxxxxxxxx
                                                                      fcvt.  */
                                                                   return 1362;
                                                                 }
@@ -10689,7 +10865,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101110110xx1x100110
+                                                                     011001x1xx011011101xxxxxxxxxxxxx
                                                                      fcvtzu.  */
                                                                   return 1370;
                                                                 }
@@ -10703,7 +10879,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx101111000xx1x100110
+                                                                     011001x1xx000111101xxxxxxxxxxxxx
                                                                      frinti.  */
                                                                   return 1419;
                                                                 }
@@ -10713,7 +10889,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101111010x01x100110
+                                                                         011001x10x010111101xxxxxxxxxxxxx
                                                                          ucvtf.  */
                                                                       return 1904;
                                                                     }
@@ -10721,7 +10897,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101111010x11x100110
+                                                                         011001x11x010111101xxxxxxxxxxxxx
                                                                          ucvtf.  */
                                                                       return 1906;
                                                                     }
@@ -10733,7 +10909,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx1011111x0x01x100110
+                                                                     011001x10x0x1111101xxxxxxxxxxxxx
                                                                      fcvtzu.  */
                                                                   return 1372;
                                                                 }
@@ -10741,7 +10917,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx1011111x0x11x100110
+                                                                     011001x11x0x1111101xxxxxxxxxxxxx
                                                                      fcvtzu.  */
                                                                   return 1376;
                                                                 }
@@ -10758,7 +10934,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxxx0001x100111
+                                                         111001x1000xxxxx101xxxxxxxxxxxxx
                                                          st1w.  */
                                                       return 1838;
                                                     }
@@ -10766,7 +10942,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxxx0011x100111
+                                                         111001x1100xxxxx101xxxxxxxxxxxxx
                                                          st1d.  */
                                                       return 1817;
                                                     }
@@ -10777,7 +10953,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxxx0101x100111
+                                                         111001x1010xxxxx101xxxxxxxxxxxxx
                                                          st1w.  */
                                                       return 1845;
                                                     }
@@ -10785,7 +10961,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxxx0111x100111
+                                                         111001x1110xxxxx101xxxxxxxxxxxxx
                                                          st1d.  */
                                                       return 1821;
                                                     }
@@ -10798,7 +10974,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx111xxxxx0xx1x100110
+                                                 011001x1xx0xxxxx111xxxxxxxxxxxxx
                                                  facgt.  */
                                               return 1335;
                                             }
@@ -10808,7 +10984,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxx00xx1x100111
+                                                     111001x1xx00xxxx111xxxxxxxxxxxxx
                                                      st1w.  */
                                                   return 1846;
                                                 }
@@ -10820,7 +10996,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx111xxxx10001x100111
+                                                             111001x10001xxxx111xxxxxxxxxxxxx
                                                              stnt1w.  */
                                                           return 1880;
                                                         }
@@ -10828,7 +11004,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx111xxxx10011x100111
+                                                             111001x11001xxxx111xxxxxxxxxxxxx
                                                              stnt1d.  */
                                                           return 1876;
                                                         }
@@ -10839,7 +11015,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx111xxxx10101x100111
+                                                             111001x10101xxxx111xxxxxxxxxxxxx
                                                              st3w.  */
                                                           return 1864;
                                                         }
@@ -10847,7 +11023,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx111xxxx10111x100111
+                                                             111001x11101xxxx111xxxxxxxxxxxxx
                                                              st3d.  */
                                                           return 1860;
                                                         }
@@ -10878,7 +11054,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxxx01000001xx1x100100
+                                                                 001001x1xx10000010xxxxxxxxxxxxxx
                                                                  cntp.  */
                                                               return 1304;
                                                             }
@@ -10892,7 +11068,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxx000x01000101xx1x100100
+                                                                             001001x1xx10100010x000xxxxxxxxxx
                                                                              sqincp.  */
                                                                           return 1795;
                                                                         }
@@ -10900,7 +11076,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxx001x01000101xx1x100100
+                                                                             001001x1xx10100010x100xxxxxxxxxx
                                                                              wrffr.  */
                                                                           return 1968;
                                                                         }
@@ -10909,7 +11085,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx01xx01000101xx1x100100
+                                                                         001001x1xx10100010xx10xxxxxxxxxx
                                                                          sqincp.  */
                                                                       return 1797;
                                                                     }
@@ -10918,7 +11094,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx1xxx01000101xx1x100100
+                                                                     001001x1xx10100010xxx1xxxxxxxxxx
                                                                      sqincp.  */
                                                                   return 1796;
                                                                 }
@@ -10932,7 +11108,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxx00x01001x01xx1x100100
+                                                                     001001x1xx10x10010x00xxxxxxxxxxx
                                                                      incp.  */
                                                                   return 1442;
                                                                 }
@@ -10940,7 +11116,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxx01x01001x01xx1x100100
+                                                                     001001x1xx10x10010x10xxxxxxxxxxx
                                                                      setffr.  */
                                                                   return 1762;
                                                                 }
@@ -10949,7 +11125,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxx1xx01001x01xx1x100100
+                                                                 001001x1xx10x10010xx1xxxxxxxxxxx
                                                                  incp.  */
                                                               return 1443;
                                                             }
@@ -10963,7 +11139,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00xx0101xx01xx1x100100
+                                                                 001001x1xx10xx1010xx00xxxxxxxxxx
                                                                  sqdecp.  */
                                                               return 1781;
                                                             }
@@ -10971,7 +11147,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx01xx0101xx01xx1x100100
+                                                                 001001x1xx10xx1010xx10xxxxxxxxxx
                                                                  sqdecp.  */
                                                               return 1783;
                                                             }
@@ -10980,7 +11156,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1xxx0101xx01xx1x100100
+                                                             001001x1xx10xx1010xxx1xxxxxxxxxx
                                                              sqdecp.  */
                                                           return 1782;
                                                         }
@@ -10998,7 +11174,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00xx01100x01xx1x100100
+                                                                     001001x1xx10x00110xx00xxxxxxxxxx
                                                                      uqincp.  */
                                                                   return 1943;
                                                                 }
@@ -11006,7 +11182,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00xx01101x01xx1x100100
+                                                                     001001x1xx10x10110xx00xxxxxxxxxx
                                                                      decp.  */
                                                                   return 1317;
                                                                 }
@@ -11015,7 +11191,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00xx0111xx01xx1x100100
+                                                                 001001x1xx10xx1110xx00xxxxxxxxxx
                                                                  uqdecp.  */
                                                               return 1929;
                                                             }
@@ -11028,7 +11204,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01xx01100x01xx1x100100
+                                                                     001001x1xx10x00110xx10xxxxxxxxxx
                                                                      uqincp.  */
                                                                   return 1944;
                                                                 }
@@ -11036,7 +11212,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01xx01101x01xx1x100100
+                                                                     001001x1xx10x10110xx10xxxxxxxxxx
                                                                      decp.  */
                                                                   return 1318;
                                                                 }
@@ -11045,7 +11221,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx01xx0111xx01xx1x100100
+                                                                 001001x1xx10xx1110xx10xxxxxxxxxx
                                                                  uqdecp.  */
                                                               return 1930;
                                                             }
@@ -11057,7 +11233,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1xxx0110xx01xx1x100100
+                                                             001001x1xx10xx0110xxx1xxxxxxxxxx
                                                              uqincp.  */
                                                           return 1945;
                                                         }
@@ -11065,7 +11241,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1xxx0111xx01xx1x100100
+                                                             001001x1xx10xx1110xxx1xxxxxxxxxx
                                                              uqdecp.  */
                                                           return 1931;
                                                         }
@@ -11080,7 +11256,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx01xxxx01001x100101
+                                                         101001x10010xxxx10xxxxxxxxxxxxxx
                                                          ld1sh.  */
                                                       return 1535;
                                                     }
@@ -11088,7 +11264,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx01xxxx01011x100101
+                                                         101001x11010xxxx10xxxxxxxxxxxxxx
                                                          ld1sb.  */
                                                       return 1522;
                                                     }
@@ -11099,7 +11275,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx01xxxx01101x100101
+                                                         101001x10110xxxx10xxxxxxxxxxxxxx
                                                          ld1w.  */
                                                       return 1554;
                                                     }
@@ -11107,7 +11283,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx01xxxx01111x100101
+                                                         101001x11110xxxx10xxxxxxxxxxxxxx
                                                          ld1d.  */
                                                       return 1474;
                                                     }
@@ -11122,7 +11298,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxxx01xxxx11001x10010x
+                                                     x01001x10011xxxx10xxxxxxxxxxxxxx
                                                      ldnf1sh.  */
                                                   return 1652;
                                                 }
@@ -11130,7 +11306,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxxx01xxxx11011x10010x
+                                                     x01001x11011xxxx10xxxxxxxxxxxxxx
                                                      ldnf1sb.  */
                                                   return 1649;
                                                 }
@@ -11141,7 +11317,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxxx01xxxx11101x10010x
+                                                     x01001x10111xxxx10xxxxxxxxxxxxxx
                                                      ldnf1w.  */
                                                   return 1655;
                                                 }
@@ -11149,7 +11325,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxxx01xxxx11111x10010x
+                                                     x01001x11111xxxx10xxxxxxxxxxxxxx
                                                      ldnf1d.  */
                                                   return 1644;
                                                 }
@@ -11172,7 +11348,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxxx11000001xx1x100100
+                                                                 001001x1xx10000011xxxxxxxxxxxxxx
                                                                  add.  */
                                                               return 1231;
                                                             }
@@ -11180,7 +11356,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxxx11000011xx1x100100
+                                                                 001001x1xx11000011xxxxxxxxxxxxxx
                                                                  mul.  */
                                                               return 1684;
                                                             }
@@ -11191,7 +11367,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxxx11000101xx1x100100
+                                                                 001001x1xx10100011xxxxxxxxxxxxxx
                                                                  smax.  */
                                                               return 1763;
                                                             }
@@ -11199,7 +11375,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxxx11000111xx1x100100
+                                                                 001001x1xx11100011xxxxxxxxxxxxxx
                                                                  dup.  */
                                                               return 1323;
                                                             }
@@ -11209,7 +11385,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx11001xx1xx1x100100
+                                                         001001x1xx1xx10011xxxxxxxxxxxxxx
                                                          sqadd.  */
                                                       return 1772;
                                                     }
@@ -11220,7 +11396,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx11010xx1xx1x100100
+                                                         001001x1xx1xx01011xxxxxxxxxxxxxx
                                                          smin.  */
                                                       return 1766;
                                                     }
@@ -11228,7 +11404,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx11011xx1xx1x100100
+                                                         001001x1xx1xx11011xxxxxxxxxxxxxx
                                                          sqsub.  */
                                                       return 1802;
                                                     }
@@ -11244,7 +11420,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxxx111000x1xx1x100100
+                                                             001001x1xx1x000111xxxxxxxxxxxxxx
                                                              sub.  */
                                                           return 1884;
                                                         }
@@ -11254,7 +11430,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxxx11100101xx1x100100
+                                                                 001001x1xx10100111xxxxxxxxxxxxxx
                                                                  umax.  */
                                                               return 1912;
                                                             }
@@ -11262,7 +11438,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxxx11100111xx1x100100
+                                                                 001001x1xx11100111xxxxxxxxxxxxxx
                                                                  fdup.  */
                                                               return 1379;
                                                             }
@@ -11272,7 +11448,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx11101xx1xx1x100100
+                                                         001001x1xx1xx10111xxxxxxxxxxxxxx
                                                          uqadd.  */
                                                       return 1920;
                                                     }
@@ -11285,7 +11461,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxxx111100x1xx1x100100
+                                                             001001x1xx1x001111xxxxxxxxxxxxxx
                                                              subr.  */
                                                           return 1886;
                                                         }
@@ -11293,7 +11469,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxxx111101x1xx1x100100
+                                                             001001x1xx1x101111xxxxxxxxxxxxxx
                                                              umin.  */
                                                           return 1915;
                                                         }
@@ -11302,7 +11478,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx11111xx1xx1x100100
+                                                         001001x1xx1xx11111xxxxxxxxxxxxxx
                                                          uqsub.  */
                                                       return 1950;
                                                     }
@@ -11319,7 +11495,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx1001x100101
+                                                         101001x1001xxxxx110xxxxxxxxxxxxx
                                                          ld2w.  */
                                                       return 1562;
                                                     }
@@ -11327,7 +11503,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx1011x100101
+                                                         101001x1101xxxxx110xxxxxxxxxxxxx
                                                          ld2d.  */
                                                       return 1558;
                                                     }
@@ -11338,7 +11514,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx1101x100101
+                                                         101001x1011xxxxx110xxxxxxxxxxxxx
                                                          ld4w.  */
                                                       return 1578;
                                                     }
@@ -11346,7 +11522,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx1111x100101
+                                                         101001x1111xxxxx110xxxxxxxxxxxxx
                                                          ld4d.  */
                                                       return 1574;
                                                     }
@@ -11360,7 +11536,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1001x100101
+                                                         101001x1001xxxxx111xxxxxxxxxxxxx
                                                          ld2w.  */
                                                       return 1563;
                                                     }
@@ -11368,7 +11544,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1011x100101
+                                                         101001x1101xxxxx111xxxxxxxxxxxxx
                                                          ld2d.  */
                                                       return 1559;
                                                     }
@@ -11379,7 +11555,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1101x100101
+                                                         101001x1011xxxxx111xxxxxxxxxxxxx
                                                          ld4w.  */
                                                       return 1579;
                                                     }
@@ -11387,7 +11563,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1111x100101
+                                                         101001x1111xxxxx111xxxxxxxxxxxxx
                                                          ld4d.  */
                                                       return 1575;
                                                     }
@@ -11406,7 +11582,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx001xxxxx1xx1x100110
+                                                 011001x1xx1xxxxx100xxxxxxxxxxxxx
                                                  fmad.  */
                                               return 1381;
                                             }
@@ -11414,7 +11590,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx011xxxxx1xx1x100110
+                                                 011001x1xx1xxxxx110xxxxxxxxxxxxx
                                                  fnmad.  */
                                               return 1411;
                                             }
@@ -11427,7 +11603,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx1001x100111
+                                                     111001x1001xxxxx1x0xxxxxxxxxxxxx
                                                      st1w.  */
                                                   return 1839;
                                                 }
@@ -11435,7 +11611,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx1011x100111
+                                                     111001x1101xxxxx1x0xxxxxxxxxxxxx
                                                      st1d.  */
                                                   return 1818;
                                                 }
@@ -11444,7 +11620,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x1xxxxx11x1x100111
+                                                 111001x1x11xxxxx1x0xxxxxxxxxxxxx
                                                  st1w.  */
                                               return 1844;
                                             }
@@ -11458,7 +11634,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx101xxxxx1xx1x100110
+                                                 011001x1xx1xxxxx101xxxxxxxxxxxxx
                                                  fmsb.  */
                                               return 1402;
                                             }
@@ -11470,7 +11646,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxxx1001x100111
+                                                         111001x1001xxxxx101xxxxxxxxxxxxx
                                                          st1w.  */
                                                       return 1840;
                                                     }
@@ -11478,7 +11654,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxxx1011x100111
+                                                         111001x1101xxxxx101xxxxxxxxxxxxx
                                                          st1d.  */
                                                       return 1819;
                                                     }
@@ -11487,7 +11663,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx11x1x100111
+                                                     111001x1x11xxxxx101xxxxxxxxxxxxx
                                                      st1w.  */
                                                   return 1847;
                                                 }
@@ -11499,7 +11675,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx111xxxxx1xx1x100110
+                                                 011001x1xx1xxxxx111xxxxxxxxxxxxx
                                                  fnmsb.  */
                                               return 1414;
                                             }
@@ -11511,7 +11687,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx01x01x100111
+                                                         111001x10x10xxxx111xxxxxxxxxxxxx
                                                          st1w.  */
                                                       return 1848;
                                                     }
@@ -11519,7 +11695,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx01x11x100111
+                                                         111001x11x10xxxx111xxxxxxxxxxxxx
                                                          st1d.  */
                                                       return 1822;
                                                     }
@@ -11532,7 +11708,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx111xxxx11001x100111
+                                                             111001x10011xxxx111xxxxxxxxxxxxx
                                                              st2w.  */
                                                           return 1856;
                                                         }
@@ -11540,7 +11716,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx111xxxx11011x100111
+                                                             111001x11011xxxx111xxxxxxxxxxxxx
                                                              st2d.  */
                                                           return 1852;
                                                         }
@@ -11551,7 +11727,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx111xxxx11101x100111
+                                                             111001x10111xxxx111xxxxxxxxxxxxx
                                                              st4w.  */
                                                           return 1872;
                                                         }
@@ -11559,7 +11735,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx111xxxx11111x100111
+                                                             111001x11111xxxx111xxxxxxxxxxxxx
                                                              st4d.  */
                                                           return 1868;
                                                         }
@@ -11584,7 +11760,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxxxx101000
+                             000101xxxxxxxxxxxxxxxxxxxxxxxxxx
                              b.  */
                           return 630;
                         }
@@ -11592,7 +11768,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxxxx101001
+                             100101xxxxxxxxxxxxxxxxxxxxxxxxxx
                              bl.  */
                           return 631;
                         }
@@ -11609,7 +11785,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxx0xxxxxxxxxxxxxxxxxxx00101010
+                                         01010100xxxxxxxxxxxxxxxxxxx0xxxx
                                          b.c.  */
                                       return 651;
                                     }
@@ -11623,7 +11799,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     00xx0xxxxxxxxxxxxxxxx0xx00101011
+                                                     11010100xx0xxxxxxxxxxxxxxxx0xx00
                                                      hlt.  */
                                                   return 742;
                                                 }
@@ -11631,7 +11807,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     00xx0xxxxxxxxxxxxxxxx1xx00101011
+                                                     11010100xx1xxxxxxxxxxxxxxxx0xx00
                                                      brk.  */
                                                   return 741;
                                                 }
@@ -11642,7 +11818,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     01xx0xxxxxxxxxxxxxxxx0xx00101011
+                                                     11010100xx0xxxxxxxxxxxxxxxx0xx10
                                                      hvc.  */
                                                   return 739;
                                                 }
@@ -11650,7 +11826,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     01xx0xxxxxxxxxxxxxxxx1xx00101011
+                                                     11010100xx1xxxxxxxxxxxxxxxx0xx10
                                                      dcps2.  */
                                                   return 744;
                                                 }
@@ -11664,7 +11840,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     10xx0xxxxxxxxxxxxxxxx0xx00101011
+                                                     11010100xx0xxxxxxxxxxxxxxxx0xx01
                                                      svc.  */
                                                   return 738;
                                                 }
@@ -11672,7 +11848,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     10xx0xxxxxxxxxxxxxxxx1xx00101011
+                                                     11010100xx1xxxxxxxxxxxxxxxx0xx01
                                                      dcps1.  */
                                                   return 743;
                                                 }
@@ -11683,7 +11859,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     11xx0xxxxxxxxxxxxxxxx0xx00101011
+                                                     11010100xx0xxxxxxxxxxxxxxxx0xx11
                                                      smc.  */
                                                   return 740;
                                                 }
@@ -11691,7 +11867,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     11xx0xxxxxxxxxxxxxxxx1xx00101011
+                                                     11010100xx1xxxxxxxxxxxxxxxx0xx11
                                                      dcps3.  */
                                                   return 745;
                                                 }
@@ -11709,7 +11885,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx0xxxxxxxxxxxxxxxx0000110101x
+                                                 x1010110000xxxxxxxxxxxxxxxx0xxxx
                                                  br.  */
                                               return 632;
                                             }
@@ -11717,7 +11893,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx0xxxxxxxxxxxxxxxx0010110101x
+                                                 x1010110100xxxxxxxxxxxxxxxx0xxxx
                                                  eret.  */
                                               return 635;
                                             }
@@ -11726,7 +11902,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxx0xxxxxxxxxxxxxxxx01x0110101x
+                                             x1010110x10xxxxxxxxxxxxxxxx0xxxx
                                              ret.  */
                                           return 634;
                                         }
@@ -11737,7 +11913,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxx0xxxxxxxxxxxxxxxx1x00110101x
+                                             x10101100x1xxxxxxxxxxxxxxxx0xxxx
                                              blr.  */
                                           return 633;
                                         }
@@ -11745,7 +11921,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxx0xxxxxxxxxxxxxxxx1x10110101x
+                                             x10101101x1xxxxxxxxxxxxxxxx0xxxx
                                              drps.  */
                                           return 636;
                                         }
@@ -11764,7 +11940,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx1xxxxx0xxxxxxxxxx0000x10101x
+                                                 x10101x0000xxxxxxxxxx0xxxxx1xxxx
                                                  braaz.  */
                                               return 641;
                                             }
@@ -11772,7 +11948,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx1xxxxx0xxxxxxxxxx0010x10101x
+                                                 x10101x0100xxxxxxxxxx0xxxxx1xxxx
                                                  eretaa.  */
                                               return 647;
                                             }
@@ -11781,7 +11957,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxx1xxxxx0xxxxxxxxxx01x0x10101x
+                                             x10101x0x10xxxxxxxxxx0xxxxx1xxxx
                                              retaa.  */
                                           return 645;
                                         }
@@ -11790,7 +11966,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxx1xxxxx0xxxxxxxxxx1xx0x10101x
+                                         x10101x0xx1xxxxxxxxxx0xxxxx1xxxx
                                          blraaz.  */
                                       return 643;
                                     }
@@ -11805,7 +11981,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx1xxxxx1xxxxxxxxxx0000x10101x
+                                                 x10101x0000xxxxxxxxxx1xxxxx1xxxx
                                                  brabz.  */
                                               return 642;
                                             }
@@ -11813,7 +11989,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx1xxxxx1xxxxxxxxxx0010x10101x
+                                                 x10101x0100xxxxxxxxxx1xxxxx1xxxx
                                                  eretab.  */
                                               return 648;
                                             }
@@ -11822,7 +11998,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxx1xxxxx1xxxxxxxxxx01x0x10101x
+                                             x10101x0x10xxxxxxxxxx1xxxxx1xxxx
                                              retab.  */
                                           return 646;
                                         }
@@ -11831,7 +12007,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxx1xxxxx1xxxxxxxxxx1xx0x10101x
+                                         x10101x0xx1xxxxxxxxxx1xxxxx1xxxx
                                          blrabz.  */
                                       return 644;
                                     }
@@ -11846,7 +12022,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx1010101x
+                                     x1010101xx0xxxxxxxxxxxxxxxxxxxxx
                                      msr.  */
                                   return 1157;
                                 }
@@ -11856,7 +12032,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx0xxxxxxxxxx0xx1110101x
+                                         x1010111xx0xxxxxxxxxx0xxxxxxxxxx
                                          braa.  */
                                       return 637;
                                     }
@@ -11864,7 +12040,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx1xxxxxxxxxx0xx1110101x
+                                         x1010111xx0xxxxxxxxxx1xxxxxxxxxx
                                          brab.  */
                                       return 638;
                                     }
@@ -11876,7 +12052,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx1xx1010101x
+                                     x1010101xx1xxxxxxxxxxxxxxxxxxxxx
                                      sysl.  */
                                   return 1182;
                                 }
@@ -11886,7 +12062,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx0xxxxxxxxxx1xx1110101x
+                                         x1010111xx1xxxxxxxxxx0xxxxxxxxxx
                                          blraa.  */
                                       return 639;
                                     }
@@ -11894,7 +12070,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx1xxxxxxxxxx1xx1110101x
+                                         x1010111xx1xxxxxxxxxx1xxxxxxxxxx
                                          blrab.  */
                                       return 640;
                                     }
@@ -11911,7 +12087,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx001011xx
+                             xx110100xxxxxxxxxxxxxxxxxxxxxxxx
                              cbz.  */
                           return 649;
                         }
@@ -11919,7 +12095,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx011011xx
+                             xx110110xxxxxxxxxxxxxxxxxxxxxxxx
                              tbz.  */
                           return 1192;
                         }
@@ -11930,7 +12106,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx101011xx
+                             xx110101xxxxxxxxxxxxxxxxxxxxxxxx
                              cbnz.  */
                           return 650;
                         }
@@ -11938,7 +12114,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx111011xx
+                             xx110111xxxxxxxxxxxxxxxxxxxxxxxx
                              tbnz.  */
                           return 1193;
                         }
@@ -11962,7 +12138,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx00001100xx
+                                     xx00110000xxxxxxxxxxxxxxxxxxxxxx
                                      st4.  */
                                   return 434;
                                 }
@@ -11970,7 +12146,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx00001101xx
+                                     xx10110000xxxxxxxxxxxxxxxxxxxxxx
                                      stnp.  */
                                   return 943;
                                 }
@@ -11985,7 +12161,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0xxxxxxx000101100xx
+                                             xx001101000xxxxxxx0xxxxxxxxxxxxx
                                              st1.  */
                                           return 450;
                                         }
@@ -11993,7 +12169,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0xxxxxxx100101100xx
+                                             xx001101001xxxxxxx0xxxxxxxxxxxxx
                                              st2.  */
                                           return 452;
                                         }
@@ -12004,7 +12180,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx1xxxxxxx000101100xx
+                                             xx001101000xxxxxxx1xxxxxxxxxxxxx
                                              st3.  */
                                           return 451;
                                         }
@@ -12012,7 +12188,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx1xxxxxxx100101100xx
+                                             xx001101001xxxxxxx1xxxxxxxxxxxxx
                                              st4.  */
                                           return 453;
                                         }
@@ -12022,7 +12198,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx00101101xx
+                                     xx10110100xxxxxxxxxxxxxxxxxxxxxx
                                      stp.  */
                                   return 947;
                                 }
@@ -12038,7 +12214,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx001001100xx
+                                         xx001100100xxxxxxxxxxxxxxxxxxxxx
                                          st4.  */
                                       return 442;
                                     }
@@ -12048,7 +12224,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0xxxxxxx001101100xx
+                                             xx001101100xxxxxxx0xxxxxxxxxxxxx
                                              st1.  */
                                           return 462;
                                         }
@@ -12056,7 +12232,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx1xxxxxxx001101100xx
+                                             xx001101100xxxxxxx1xxxxxxxxxxxxx
                                              st3.  */
                                           return 463;
                                         }
@@ -12068,7 +12244,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxx0xxxxxxx101x01100xx
+                                         xx00110x101xxxxxxx0xxxxxxxxxxxxx
                                          st2.  */
                                       return 464;
                                     }
@@ -12076,7 +12252,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxx1xxxxxxx101x01100xx
+                                         xx00110x101xxxxxxx1xxxxxxxxxxxxx
                                          st4.  */
                                       return 465;
                                     }
@@ -12086,7 +12262,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxx01x01101xx
+                                 xx10110x10xxxxxxxxxxxxxxxxxxxxxx
                                  stp.  */
                               return 952;
                             }
@@ -12102,7 +12278,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx10001100xx
+                                     xx00110001xxxxxxxxxxxxxxxxxxxxxx
                                      ld4.  */
                                   return 438;
                                 }
@@ -12110,7 +12286,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx10001101xx
+                                     xx10110001xxxxxxxxxxxxxxxxxxxxxx
                                      ldnp.  */
                                   return 944;
                                 }
@@ -12125,7 +12301,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0xxxxxxx010101100xx
+                                             xx001101010xxxxxxx0xxxxxxxxxxxxx
                                              ld1.  */
                                           return 454;
                                         }
@@ -12133,7 +12309,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0xxxxxxx110101100xx
+                                             xx001101011xxxxxxx0xxxxxxxxxxxxx
                                              ld2.  */
                                           return 458;
                                         }
@@ -12144,7 +12320,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx1xxxxxxx010101100xx
+                                             xx001101010xxxxxxx1xxxxxxxxxxxxx
                                              ld3.  */
                                           return 455;
                                         }
@@ -12152,7 +12328,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx1xxxxxxx110101100xx
+                                             xx001101011xxxxxxx1xxxxxxxxxxxxx
                                              ld4.  */
                                           return 459;
                                         }
@@ -12162,7 +12338,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx10101101xx
+                                     xx10110101xxxxxxxxxxxxxxxxxxxxxx
                                      ldp.  */
                                   return 948;
                                 }
@@ -12178,7 +12354,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx011001100xx
+                                         xx001100110xxxxxxxxxxxxxxxxxxxxx
                                          ld4.  */
                                       return 446;
                                     }
@@ -12188,7 +12364,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0xxxxxxx011101100xx
+                                             xx001101110xxxxxxx0xxxxxxxxxxxxx
                                              ld1.  */
                                           return 466;
                                         }
@@ -12196,7 +12372,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx1xxxxxxx011101100xx
+                                             xx001101110xxxxxxx1xxxxxxxxxxxxx
                                              ld3.  */
                                           return 467;
                                         }
@@ -12208,7 +12384,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxx0xxxxxxx111x01100xx
+                                         xx00110x111xxxxxxx0xxxxxxxxxxxxx
                                          ld2.  */
                                       return 470;
                                     }
@@ -12216,7 +12392,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxx1xxxxxxx111x01100xx
+                                         xx00110x111xxxxxxx1xxxxxxxxxxxxx
                                          ld4.  */
                                       return 471;
                                     }
@@ -12226,7 +12402,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxx11x01101xx
+                                 xx10110x11xxxxxxxxxxxxxxxxxxxxxx
                                  ldp.  */
                               return 953;
                             }
@@ -12241,7 +12417,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx001110xx
+                             xx011100xxxxxxxxxxxxxxxxxxxxxxxx
                              ldr.  */
                           return 956;
                         }
@@ -12255,7 +12431,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx00xxxxxxxxxx0x001111xx
+                                         xx111100x0xxxxxxxxxx00xxxxxxxxxx
                                          stur.  */
                                       return 899;
                                     }
@@ -12263,7 +12439,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx00xxxxxxxxxx1x001111xx
+                                         xx111100x1xxxxxxxxxx00xxxxxxxxxx
                                          ldur.  */
                                       return 900;
                                     }
@@ -12274,7 +12450,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx01xxxxxxxxxx0x001111xx
+                                         xx111100x0xxxxxxxxxx10xxxxxxxxxx
                                          str.  */
                                       return 878;
                                     }
@@ -12282,7 +12458,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx01xxxxxxxxxx1x001111xx
+                                         xx111100x1xxxxxxxxxx10xxxxxxxxxx
                                          ldr.  */
                                       return 879;
                                     }
@@ -12294,7 +12470,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxx1xxxxxxxxxxx0x001111xx
+                                     xx111100x0xxxxxxxxxxx1xxxxxxxxxx
                                      str.  */
                                   return 855;
                                 }
@@ -12302,7 +12478,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxx1xxxxxxxxxxx1x001111xx
+                                     xx111100x1xxxxxxxxxxx1xxxxxxxxxx
                                      ldr.  */
                                   return 856;
                                 }
@@ -12315,7 +12491,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxx0x10111xxx
+                             xxx11101x0xxxxxxxxxxxxxxxxxxxxxx
                              str.  */
                           return 866;
                         }
@@ -12323,7 +12499,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxx1x10111xxx
+                             xxx11101x1xxxxxxxxxxxxxxxxxxxxxx
                              ldr.  */
                           return 867;
                         }
@@ -12338,168 +12514,94 @@ aarch64_opcode_lookup_1 (uint32_t word)
                     {
                       if (((word >> 28) & 0x1) == 0)
                         {
-                          if (((word >> 10) & 0x1) == 0)
+                          if (((word >> 29) & 0x1) == 0)
                             {
-                              if (((word >> 29) & 0x1) == 0)
+                              if (((word >> 31) & 0x1) == 0)
                                 {
-                                  if (((word >> 11) & 0x1) == 0)
-                                    {
-                                      if (((word >> 12) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx000xxxxxxxx0xx011100xx
-                                             tbl.  */
-                                          return 414;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx001xxxxxxxx0xx011100xx
-                                             tbx.  */
-                                          return 415;
-                                        }
-                                    }
-                                  else
+                                  if (((word >> 10) & 0x1) == 0)
                                     {
-                                      if (((word >> 12) & 0x1) == 0)
+                                      if (((word >> 11) & 0x1) == 0)
                                         {
-                                          if (((word >> 14) & 0x1) == 0)
+                                          if (((word >> 12) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx010x0xxxxxx0xx011100xx
-                                                 trn1.  */
-                                              return 257;
+                                                 0x001110xx0xxxxxxxx000xxxxxxxxxx
+                                                 tbl.  */
+                                              return 414;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx010x1xxxxxx0xx011100xx
-                                                 trn2.  */
-                                              return 260;
+                                                 0x001110xx0xxxxxxxx100xxxxxxxxxx
+                                                 tbx.  */
+                                              return 415;
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 13) & 0x1) == 0)
-                                            {
-                                              if (((word >> 14) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx01100xxxxxx0xx011100xx
-                                                     uzp1.  */
-                                                  return 256;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx01101xxxxxx0xx011100xx
-                                                     uzp2.  */
-                                                  return 259;
-                                                }
-                                            }
-                                          else
+                                          if (((word >> 12) & 0x1) == 0)
                                             {
                                               if (((word >> 14) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01110xxxxxx0xx011100xx
-                                                     zip1.  */
-                                                  return 258;
+                                                     0x001110xx0xxxxxx0x010xxxxxxxxxx
+                                                     trn1.  */
+                                                  return 257;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01111xxxxxx0xx011100xx
-                                                     zip2.  */
-                                                  return 261;
+                                                     0x001110xx0xxxxxx1x010xxxxxxxxxx
+                                                     trn2.  */
+                                                  return 260;
                                                 }
                                             }
-                                        }
-                                    }
-                                }
-                              else
-                                {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxx0xxxxxxxxxx0xx011101xx
-                                     ext.  */
-                                  return 130;
-                                }
-                            }
-                          else
-                            {
-                              if (((word >> 15) & 0x1) == 0)
-                                {
-                                  if (((word >> 22) & 0x1) == 0)
-                                    {
-                                      if (((word >> 29) & 0x1) == 0)
-                                        {
-                                          if (((word >> 11) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx10xxx0xxxxx00x011100xx
-                                                 dup.  */
-                                              return 147;
-                                            }
                                           else
                                             {
-                                              if (((word >> 12) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 13) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1100x0xxxxx00x011100xx
-                                                         dup.  */
-                                                      return 148;
+                                                         0x001110xx0xxxxxx00110xxxxxxxxxx
+                                                         uzp1.  */
+                                                      return 256;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1101x0xxxxx00x011100xx
-                                                         smov.  */
-                                                      return 149;
+                                                         0x001110xx0xxxxxx10110xxxxxxxxxx
+                                                         uzp2.  */
+                                                      return 259;
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 13) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1110x0xxxxx00x011100xx
-                                                         ins.  */
-                                                      return 152;
+                                                         0x001110xx0xxxxxx01110xxxxxxxxxx
+                                                         zip1.  */
+                                                      return 258;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1111x0xxxxx00x011100xx
-                                                         umov.  */
-                                                      return 150;
+                                                         0x001110xx0xxxxxx11110xxxxxxxxxx
+                                                         zip2.  */
+                                                      return 261;
                                                     }
                                                 }
                                             }
                                         }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx1xxxx0xxxxx00x011101xx
-                                             ins.  */
-                                          return 154;
-                                        }
                                     }
                                   else
                                     {
@@ -12509,13 +12611,21 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 22) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x001110x00xxxxxxx0001xxxxxxxxxx
+                                                         dup.  */
+                                                      return 147;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1000x0xxxxx010011100xx
+                                                             0x001110010xxxxxxx0001xxxxxxxxxx
                                                              fmaxnm.  */
                                                           return 286;
                                                         }
@@ -12523,73 +12633,32 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1000x0xxxxx010011101xx
-                                                             fmaxnmp.  */
-                                                          return 337;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx1000x0xxxxx011011100xx
+                                                             0x001110110xxxxxxx0001xxxxxxxxxx
                                                              fminnm.  */
                                                           return 302;
                                                         }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx1000x0xxxxx011011101xx
-                                                             fminnmp.  */
-                                                          return 353;
-                                                        }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx1001x0xxxxx010011100xx
-                                                             fcmeq.  */
-                                                          return 294;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx1001x0xxxxx010011101xx
-                                                             fcmge.  */
-                                                          return 343;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx1001x0xxxxx01101110xxx
-                                                         fcmgt.  */
-                                                      return 357;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     0x001110xx0xxxxxxx1001xxxxxxxxxx
+                                                     fcmeq.  */
+                                                  return 294;
                                                 }
                                             }
                                           else
                                             {
                                               if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 15) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 23) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1010x0xxxxx010011100xx
+                                                             0x0011100x0xxxxx0x0101xxxxxxxxxx
                                                              fadd.  */
                                                           return 290;
                                                         }
@@ -12597,212 +12666,440 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1010x0xxxxx010011101xx
-                                                             faddp.  */
-                                                          return 339;
+                                                             0x0011101x0xxxxx0x0101xxxxxxxxxx
+                                                             fsub.  */
+                                                          return 306;
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx1010x0xxxxx011011100xx
-                                                             fsub.  */
-                                                          return 306;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx1010x0xxxxx011011101xx
-                                                             fabd.  */
-                                                          return 355;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x001110xx0xxxxx1x0101xxxxxxxxxx
+                                                         sdot.  */
+                                                      return 1987;
                                                     }
                                                 }
                                               else
                                                 {
                                                   if (((word >> 23) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx1011x0xxxxx010011100xx
-                                                             fmax.  */
-                                                          return 296;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx1011x0xxxxx010011101xx
-                                                             fmaxp.  */
-                                                          return 347;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x0011100x0xxxxxxx1101xxxxxxxxxx
+                                                         fmax.  */
+                                                      return 296;
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x0011101x0xxxxxxx1101xxxxxxxxxx
+                                                         fmin.  */
+                                                      return 308;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 12) & 0x1) == 0)
+                                            {
+                                              if (((word >> 13) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x001110x00xxxxxxx0011xxxxxxxxxx
+                                                         dup.  */
+                                                      return 148;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1011x0xxxxx011011100xx
-                                                             fmin.  */
-                                                          return 308;
+                                                             0x001110010xxxxxxx0011xxxxxxxxxx
+                                                             fmla.  */
+                                                          return 288;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1011x0xxxxx011011101xx
-                                                             fminp.  */
-                                                          return 361;
+                                                             0x001110110xxxxxxx0011xxxxxxxxxx
+                                                             fmls.  */
+                                                          return 304;
                                                         }
                                                     }
                                                 }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     0x001110xx0xxxxxxx1011xxxxxxxxxx
+                                                     smov.  */
+                                                  return 149;
+                                                }
                                             }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 12) & 0x1) == 0)
+                                          else
                                             {
                                               if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 22) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1100x0xxxxx01001110xxx
-                                                         fmla.  */
-                                                      return 288;
+                                                         0x001110x00xxxxxxx0111xxxxxxxxxx
+                                                         ins.  */
+                                                      return 152;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1100x0xxxxx01101110xxx
-                                                         fmls.  */
-                                                      return 304;
+                                                         0x001110x10xxxxxxx0111xxxxxxxxxx
+                                                         fmulx.  */
+                                                      return 292;
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 22) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1101x0xxxxx01001110xxx
-                                                         facge.  */
-                                                      return 345;
-                                                    }
+                                                         0x001110x00xxxxxxx1111xxxxxxxxxx
+                                                         umov.  */
+                                                      return 150;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110010xxxxxxx1111xxxxxxxxxx
+                                                             frecps.  */
+                                                          return 298;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110110xxxxxxx1111xxxxxxxxxx
+                                                             frsqrts.  */
+                                                          return 310;
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 22) & 0x1) == 0)
+                                    {
+                                      if (((word >> 23) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1x001110000xxxxxxxxxxxxxxxxxxxxx
+                                             eor3.  */
+                                          return 1994;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1x001110100xxxxxxxxxxxxxxxxxxxxx
+                                             xar.  */
+                                          return 1996;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 15) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1x001110x10xxxxx0xxxxxxxxxxxxxxx
+                                             sm3ss1.  */
+                                          return 1998;
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 10) & 0x1) == 0)
+                                            {
+                                              if (((word >> 11) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         1x001110010xxxxx1xxx00xxxxxxxxxx
+                                                         sm3tt1a.  */
+                                                      return 1999;
+                                                    }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1101x0xxxxx01101110xxx
-                                                         facgt.  */
-                                                      return 359;
+                                                         1x001110110xxxxx1xxx00xxxxxxxxxx
+                                                         sha512su0.  */
+                                                      return 1992;
                                                     }
                                                 }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     1x001110x10xxxxx1xxx10xxxxxxxxxx
+                                                     sm3tt2a.  */
+                                                  return 2001;
+                                                }
                                             }
                                           else
                                             {
-                                              if (((word >> 13) & 0x1) == 0)
+                                              if (((word >> 11) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1110x0xxxxx01x011100xx
-                                                         fmulx.  */
-                                                      return 292;
+                                                         1x001110010xxxxx1xxx01xxxxxxxxxx
+                                                         sm3tt1b.  */
+                                                      return 2000;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1110x0xxxxx01x011101xx
-                                                         fmul.  */
-                                                      return 341;
+                                                         1x001110110xxxxx1xxx01xxxxxxxxxx
+                                                         sm4e.  */
+                                                      return 2005;
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     1x001110x10xxxxx1xxx11xxxxxxxxxx
+                                                     sm3tt2b.  */
+                                                  return 2002;
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                          else
+                            {
+                              if (((word >> 10) & 0x1) == 0)
+                                {
+                                  /* 33222222222211111111110000000000
+                                     10987654321098765432109876543210
+                                     xx101110xx0xxxxxxxxxx0xxxxxxxxxx
+                                     ext.  */
+                                  return 130;
+                                }
+                              else
+                                {
+                                  if (((word >> 15) & 0x1) == 0)
+                                    {
+                                      if (((word >> 22) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xx101110x00xxxxx0xxxx1xxxxxxxxxx
+                                             ins.  */
+                                          return 154;
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 11) & 0x1) == 0)
+                                            {
+                                              if (((word >> 12) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 23) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1111x0xxxxx010011100xx
-                                                             frecps.  */
-                                                          return 298;
+                                                             xx101110010xxxxx0x0001xxxxxxxxxx
+                                                             fmaxnmp.  */
+                                                          return 337;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1111x0xxxxx010011101xx
-                                                             fdiv.  */
-                                                          return 349;
+                                                             xx101110110xxxxx0x0001xxxxxxxxxx
+                                                             fminnmp.  */
+                                                          return 353;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110010xxxxx0x1001xxxxxxxxxx
+                                                             fcmge.  */
+                                                          return 343;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110110xxxxx0x1001xxxxxxxxxx
+                                                             fcmgt.  */
+                                                          return 357;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 13) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110010xxxxx0x0101xxxxxxxxxx
+                                                             faddp.  */
+                                                          return 339;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110110xxxxx0x0101xxxxxxxxxx
+                                                             fabd.  */
+                                                          return 355;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110010xxxxx0x1101xxxxxxxxxx
+                                                             fmaxp.  */
+                                                          return 347;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110110xxxxx0x1101xxxxxxxxxx
+                                                             fminp.  */
+                                                          return 361;
                                                         }
                                                     }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 12) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110010xxxxx0xx011xxxxxxxxxx
+                                                         facge.  */
+                                                      return 345;
+                                                    }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1111x0xxxxx01101110xxx
-                                                         frsqrts.  */
-                                                      return 310;
+                                                         xx101110110xxxxx0xx011xxxxxxxxxx
+                                                         facgt.  */
+                                                      return 359;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 13) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110x10xxxxx0x0111xxxxxxxxxx
+                                                         fmul.  */
+                                                      return 341;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110x10xxxxx0x1111xxxxxxxxxx
+                                                         fdiv.  */
+                                                      return 349;
                                                     }
                                                 }
                                             }
                                         }
                                     }
-                                }
-                              else
-                                {
-                                  if (((word >> 13) & 0x1) == 0)
+                                  else
                                     {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      if (((word >> 13) & 0x1) == 0)
                                         {
-                                          if (((word >> 11) & 0x1) == 0)
+                                          if (((word >> 14) & 0x1) == 0)
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx10x001xxxxx0xx01110xxx
-                                                 sqrdmlah.  */
-                                              return 364;
+                                              if (((word >> 11) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 12) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx0xxxxx100001xxxxxxxxxx
+                                                         sqrdmlah.  */
+                                                      return 364;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx0xxxxx100101xxxxxxxxxx
+                                                         udot.  */
+                                                      return 1986;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx101110xx0xxxxx100x11xxxxxxxxxx
+                                                     sqrdmlsh.  */
+                                                  return 365;
+                                                }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx11x001xxxxx0xx01110xxx
-                                                 sqrdmlsh.  */
-                                              return 365;
+                                                 xx101110xx0xxxxx110xx1xxxxxxxxxx
+                                                 fcmla.  */
+                                              return 366;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx1xx011xxxxx0xx01110xxx
-                                             fcmla.  */
-                                          return 366;
+                                             xx101110xx0xxxxx1x1xx1xxxxxxxxxx
+                                             fcadd.  */
+                                          return 367;
                                         }
                                     }
-                                  else
-                                    {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxx1xx1x1xxxxx0xx01110xxx
-                                         fcadd.  */
-                                      return 367;
-                                    }
                                 }
                             }
                         }
@@ -12818,7 +13115,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxxx00xxx0xx0111100x
+                                             x0011110xx0xxx00xxxxxxxxxxxxxxxx
                                              fcvtzs.  */
                                           return 752;
                                         }
@@ -12826,7 +13123,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxxx01xxx0xx0111100x
+                                             x0011110xx0xxx10xxxxxxxxxxxxxxxx
                                              scvtf.  */
                                           return 748;
                                         }
@@ -12837,7 +13134,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxxx10xxx0xx0111100x
+                                             x0011110xx0xxx01xxxxxxxxxxxxxxxx
                                              fcvtzu.  */
                                           return 754;
                                         }
@@ -12845,7 +13142,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxxx11xxx0xx0111100x
+                                             x0011110xx0xxx11xxxxxxxxxxxxxxxx
                                              ucvtf.  */
                                           return 750;
                                         }
@@ -12863,7 +13160,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x000xxxxxx0xx0111101x
+                                                     x1011110xx0xxxxxx000x0xxxxxxxxxx
                                                      sha1c.  */
                                                   return 672;
                                                 }
@@ -12871,7 +13168,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x001xxxxxx0xx0111101x
+                                                     x1011110xx0xxxxxx100x0xxxxxxxxxx
                                                      sha256h.  */
                                                   return 676;
                                                 }
@@ -12882,7 +13179,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x010xxxxxx0xx0111101x
+                                                     x1011110xx0xxxxxx010x0xxxxxxxxxx
                                                      sha1m.  */
                                                   return 674;
                                                 }
@@ -12890,7 +13187,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x011xxxxxx0xx0111101x
+                                                     x1011110xx0xxxxxx110x0xxxxxxxxxx
                                                      sha256su1.  */
                                                   return 678;
                                                 }
@@ -12904,7 +13201,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x100xxxxxx0xx0111101x
+                                                     x1011110xx0xxxxxx001x0xxxxxxxxxx
                                                      sha1p.  */
                                                   return 673;
                                                 }
@@ -12912,7 +13209,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x101xxxxxx0xx0111101x
+                                                     x1011110xx0xxxxxx101x0xxxxxxxxxx
                                                      sha256h2.  */
                                                   return 677;
                                                 }
@@ -12921,7 +13218,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0x11xxxxxxx0xx0111101x
+                                                 x1011110xx0xxxxxxx11x0xxxxxxxxxx
                                                  sha1su0.  */
                                               return 675;
                                             }
@@ -12935,7 +13232,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx10x0xxxxxxx0xx0111101x
+                                                 x1011110xx0xxxxxxx0x01xxxxxxxxxx
                                                  dup.  */
                                               return 529;
                                             }
@@ -12943,7 +13240,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx10x1xxxxxxx0xx0111101x
+                                                 x1011110xx0xxxxxxx1x01xxxxxxxxxx
                                                  fcmeq.  */
                                               return 550;
                                             }
@@ -12954,7 +13251,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx11x0xxxxxxx0xx0111101x
+                                                 x1011110xx0xxxxxxx0x11xxxxxxxxxx
                                                  fmulx.  */
                                               return 548;
                                             }
@@ -12964,7 +13261,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx11x1xxxxxxx0x00111101x
+                                                     x10111100x0xxxxxxx1x11xxxxxxxxxx
                                                      frecps.  */
                                                   return 552;
                                                 }
@@ -12972,7 +13269,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx11x1xxxxxxx0x10111101x
+                                                     x10111101x0xxxxxxx1x11xxxxxxxxxx
                                                      frsqrts.  */
                                                   return 554;
                                                 }
@@ -12991,7 +13288,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxx000xxxxxxx0xx011111xx
+                                             xx111110xx0xxxxxxx000xxxxxxxxxxx
                                              sqrdmlah.  */
                                           return 582;
                                         }
@@ -13001,7 +13298,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxx001xxxxxxx0x0011111xx
+                                                 xx1111100x0xxxxxxx100xxxxxxxxxxx
                                                  fcmge.  */
                                               return 567;
                                             }
@@ -13009,7 +13306,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxx001xxxxxxx0x1011111xx
+                                                 xx1111101x0xxxxxxx100xxxxxxxxxxx
                                                  fcmgt.  */
                                               return 573;
                                             }
@@ -13019,7 +13316,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxx01xxxxxxxx0xx011111xx
+                                         xx111110xx0xxxxxxxx10xxxxxxxxxxx
                                          fabd.  */
                                       return 571;
                                     }
@@ -13030,7 +13327,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxx1x0xxxxxxx0xx011111xx
+                                         xx111110xx0xxxxxxx0x1xxxxxxxxxxx
                                          sqrdmlsh.  */
                                       return 583;
                                     }
@@ -13040,7 +13337,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxx1x1xxxxxxx0x0011111xx
+                                             xx1111100x0xxxxxxx1x1xxxxxxxxxxx
                                              facge.  */
                                           return 569;
                                         }
@@ -13048,7 +13345,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxx1x1xxxxxxx0x1011111xx
+                                             xx1111101x0xxxxxxx1x1xxxxxxxxxxx
                                              facgt.  */
                                           return 575;
                                         }
@@ -13059,239 +13356,184 @@ aarch64_opcode_lookup_1 (uint32_t word)
                     }
                   else
                     {
-                      if (((word >> 10) & 0x1) == 0)
+                      if (((word >> 28) & 0x1) == 0)
                         {
-                          if (((word >> 11) & 0x1) == 0)
+                          if (((word >> 15) & 0x1) == 0)
                             {
-                              if (((word >> 12) & 0x1) == 0)
+                              if (((word >> 29) & 0x1) == 0)
                                 {
-                                  if (((word >> 13) & 0x1) == 0)
+                                  if (((word >> 31) & 0x1) == 0)
                                     {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      if (((word >> 10) & 0x1) == 0)
                                         {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          if (((word >> 11) & 0x1) == 0)
                                             {
-                                              if (((word >> 28) & 0x1) == 0)
+                                              if (((word >> 12) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000000xxxxx1xx0111000x
-                                                             saddl.  */
-                                                          return 42;
-                                                        }
-                                                      else
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000000xxxxx1xx0111001x
-                                                             saddl2.  */
-                                                          return 43;
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00001110xx1xxxxx000000xxxxxxxxxx
+                                                                 saddl.  */
+                                                              return 42;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx000000xxxxxxxxxx
+                                                                 saddl2.  */
+                                                              return 43;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00001110xx1xxxxx010000xxxxxxxxxx
+                                                                 addhn.  */
+                                                              return 50;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx010000xxxxxxxxxx
+                                                                 addhn2.  */
+                                                              return 51;
+                                                            }
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000000xxxxx1xx0111010x
-                                                             uaddl.  */
-                                                          return 74;
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00001110xx1xxxxx001000xxxxxxxxxx
+                                                                 ssubl.  */
+                                                              return 46;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx001000xxxxxxxxxx
+                                                                 ssubl2.  */
+                                                              return 47;
+                                                            }
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000000xxxxx1xx0111011x
-                                                             uaddl2.  */
-                                                          return 75;
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00001110xx1xxxxx011000xxxxxxxxxx
+                                                                 subhn.  */
+                                                              return 54;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx011000xxxxxxxxxx
+                                                                 subhn2.  */
+                                                              return 55;
+                                                            }
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 16) & 0x1) == 0)
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 17) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          if (((word >> 30) & 0x1) == 0)
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000000001xx01111xxx
-                                                                         fcvtns.  */
-                                                                      return 756;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000000011xx01111xxx
-                                                                         fcvtms.  */
-                                                                      return 776;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000000101xx01111xxx
-                                                                         fcvtps.  */
-                                                                      return 772;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000000111xx01111xxx
-                                                                         fcvtzs.  */
-                                                                      return 780;
-                                                                    }
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00001110xx1xxxxx000100xxxxxxxxxx
+                                                                 saddw.  */
+                                                              return 44;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000000001xx1xx01111xxx
-                                                                 fcvtas.  */
-                                                              return 764;
+                                                                 01001110xx1xxxxx000100xxxxxxxxxx
+                                                                 saddw2.  */
+                                                              return 45;
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          if (((word >> 30) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000000010xx1xx01111xxx
-                                                                 scvtf.  */
-                                                              return 760;
+                                                                 00001110xx1xxxxx010100xxxxxxxxxx
+                                                                 sabal.  */
+                                                              return 52;
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0000000110x1xx01111xxx
-                                                                     fmov.  */
-                                                                  return 768;
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000011101xx01111xxx
-                                                                         fmov.  */
-                                                                      return 784;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000011111xx01111xxx
-                                                                         fjcvtzs.  */
-                                                                      return 786;
-                                                                    }
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx010100xxxxxxxxxx
+                                                                 sabal2.  */
+                                                              return 53;
                                                             }
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 17) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          if (((word >> 30) & 0x1) == 0)
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000100001xx01111xxx
-                                                                         fcvtnu.  */
-                                                                      return 758;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000100011xx01111xxx
-                                                                         fcvtmu.  */
-                                                                      return 778;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000100101xx01111xxx
-                                                                         fcvtpu.  */
-                                                                      return 774;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000100111xx01111xxx
-                                                                         fcvtzu.  */
-                                                                      return 782;
-                                                                    }
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00001110xx1xxxxx001100xxxxxxxxxx
+                                                                 ssubw.  */
+                                                              return 48;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000000101xx1xx01111xxx
-                                                                 fcvtau.  */
-                                                              return 766;
+                                                                 01001110xx1xxxxx001100xxxxxxxxxx
+                                                                 ssubw2.  */
+                                                              return 49;
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          if (((word >> 30) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000000110xx1xx01111xxx
-                                                                 ucvtf.  */
-                                                              return 762;
+                                                                 00001110xx1xxxxx011100xxxxxxxxxx
+                                                                 sabdl.  */
+                                                              return 56;
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0000001110x1xx01111xxx
-                                                                     fmov.  */
-                                                                  return 770;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0000001111x1xx01111xxx
-                                                                     fmov.  */
-                                                                  return 785;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx011100xxxxxxxxxx
+                                                                 sabdl2.  */
+                                                              return 57;
                                                             }
                                                         }
                                                     }
@@ -13299,509 +13541,476 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             }
                                           else
                                             {
-                                              if (((word >> 29) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000001xxxxx1xx0111x00x
-                                                         smlal.  */
-                                                      return 58;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000001xxxxx1xx0111x01x
-                                                         smlal2.  */
-                                                      return 59;
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000001xxxxx1xx0111x10x
-                                                         umlal.  */
-                                                      return 90;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000001xxxxx1xx0111x11x
-                                                         umlal2.  */
-                                                      return 91;
-                                                    }
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 28) & 0x1) == 0)
-                                            {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 12) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000010xxxxx1xx0111000x
-                                                             addhn.  */
-                                                          return 50;
+                                                             0x001110xx1xxxxx000010xxxxxxxxxx
+                                                             rev64.  */
+                                                          return 156;
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000010xxxxx1xx0111001x
-                                                             addhn2.  */
-                                                          return 51;
+                                                          if (((word >> 16) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 19) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110xx1x0xx0010010xxxxxxxxxx
+                                                                     cls.  */
+                                                                  return 160;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110xx1x1xx0010010xxxxxxxxxx
+                                                                     aese.  */
+                                                                  return 665;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     00001110xx1xxxx1010010xxxxxxxxxx
+                                                                     sqxtn.  */
+                                                                  return 170;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     01001110xx1xxxx1010010xxxxxxxxxx
+                                                                     sqxtn2.  */
+                                                                  return 171;
+                                                                }
+                                                            }
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000010xxxxx1xx0111010x
-                                                             raddhn.  */
-                                                          return 82;
+                                                          if (((word >> 16) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x001110xx1xxxx0001010xxxxxxxxxx
+                                                                 saddlp.  */
+                                                              return 158;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     00001110xx1xxxx1001010xxxxxxxxxx
+                                                                     xtn.  */
+                                                                  return 168;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     01001110xx1xxxx1001010xxxxxxxxxx
+                                                                     xtn2.  */
+                                                                  return 169;
+                                                                }
+                                                            }
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000010xxxxx1xx0111011x
-                                                             raddhn2.  */
-                                                          return 83;
+                                                          if (((word >> 16) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 19) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110xx1x0xx0011010xxxxxxxxxx
+                                                                     sadalp.  */
+                                                                  return 162;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110xx1x1xx0011010xxxxxxxxxx
+                                                                     aesmc.  */
+                                                                  return 667;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     00001110xx1xxxx1011010xxxxxxxxxx
+                                                                     fcvtn.  */
+                                                                  return 172;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     01001110xx1xxxx1011010xxxxxxxxxx
+                                                                     fcvtn2.  */
+                                                                  return 173;
+                                                                }
+                                                            }
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000011xxxxx1xx0111000x
-                                                             smull.  */
-                                                          return 66;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000011xxxxx1xx0111001x
-                                                             smull2.  */
-                                                          return 67;
-                                                        }
-                                                    }
-                                                  else
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000011xxxxx1xx0111010x
-                                                             umull.  */
-                                                          return 94;
-                                                        }
-                                                      else
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000011xxxxx1xx0111011x
-                                                             umull2.  */
-                                                          return 95;
-                                                        }
-                                                    }
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 17) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 15) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 16) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 18) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx000010000xx1xx01111xxx
-                                                                 fmov.  */
-                                                              return 799;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx000010001xx1xx01111xxx
-                                                                 frintn.  */
-                                                              return 808;
-                                                            }
+                                                             0x001110xx1xxxxx000110xxxxxxxxxx
+                                                             rev16.  */
+                                                          return 157;
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000010100xx1xx01111xxx
-                                                                 fneg.  */
-                                                              return 803;
+                                                                 0x001110xx1x0xxx010110xxxxxxxxxx
+                                                                 cnt.  */
+                                                              return 161;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000010101xx1xx01111xxx
-                                                                 frintm.  */
-                                                              return 812;
+                                                                 0x001110xx1x1xxx010110xxxxxxxxxx
+                                                                 aesd.  */
+                                                              return 666;
                                                             }
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 16) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          if (((word >> 20) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000011000xx1xx01111xxx
-                                                                 fabs.  */
-                                                              return 801;
+                                                                 0x001110xx10xxxx001110xxxxxxxxxx
+                                                                 suqadd.  */
+                                                              return 159;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000011001xx1xx01111xxx
-                                                                 frintp.  */
-                                                              return 810;
+                                                                 0x001110xx11xxxx001110xxxxxxxxxx
+                                                                 saddlv.  */
+                                                              return 27;
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx000011100xx1xx01111xxx
-                                                                 fsqrt.  */
-                                                              return 805;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx000011101xx1xx01111xxx
-                                                                 frintz.  */
-                                                              return 814;
-                                                            }
-                                                        }
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 18) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx00001xx10xx1xx01111xxx
-                                                         fcvt.  */
-                                                      return 807;
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 15) & 0x1) == 0)
-                                                        {
                                                           if (((word >> 16) & 0x1) == 0)
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx000010011xx1xx01111xxx
-                                                                 frinta.  */
-                                                              return 816;
+                                                              if (((word >> 19) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110xx1x0xx0011110xxxxxxxxxx
+                                                                     sqabs.  */
+                                                                  return 163;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110xx1x1xx0011110xxxxxxxxxx
+                                                                     aesimc.  */
+                                                                  return 668;
+                                                                }
                                                             }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx000010111xx1xx01111xxx
-                                                                 frintx.  */
-                                                              return 818;
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     00001110xx1xxxx1011110xxxxxxxxxx
+                                                                     fcvtl.  */
+                                                                  return 174;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     01001110xx1xxxx1011110xxxxxxxxxx
+                                                                     fcvtl2.  */
+                                                                  return 175;
+                                                                }
                                                             }
                                                         }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000011x11xx1xx01111xxx
-                                                             frinti.  */
-                                                          return 820;
-                                                        }
                                                     }
                                                 }
                                             }
                                         }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      else
                                         {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          if (((word >> 11) & 0x1) == 0)
                                             {
-                                              if (((word >> 28) & 0x1) == 0)
+                                              if (((word >> 12) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000100xxxxx1xx0111000x
-                                                             ssubl.  */
-                                                          return 46;
+                                                             0x001110xx1xxxxx000001xxxxxxxxxx
+                                                             shadd.  */
+                                                          return 262;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000100xxxxx1xx0111001x
-                                                             ssubl2.  */
-                                                          return 47;
+                                                             0x001110xx1xxxxx010001xxxxxxxxxx
+                                                             sshl.  */
+                                                          return 269;
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000100xxxxx1xx0111010x
-                                                             usubl.  */
-                                                          return 78;
+                                                             0x001110xx1xxxxx001001xxxxxxxxxx
+                                                             shsub.  */
+                                                          return 265;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000100xxxxx1xx0111011x
-                                                             usubl2.  */
-                                                          return 79;
+                                                             0x001110xx1xxxxx011001xxxxxxxxxx
+                                                             smax.  */
+                                                          return 273;
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 3) & 0x1) == 0)
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 4) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxx00xxxxx000100xxxxx1xx01111xxx
-                                                             fcmp.  */
-                                                          return 791;
+                                                             0x001110xx1xxxxx000101xxxxxxxxxx
+                                                             srhadd.  */
+                                                          return 264;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxx01xxxxx000100xxxxx1xx01111xxx
-                                                             fcmpe.  */
-                                                          return 793;
+                                                             0x001110xx1xxxxx010101xxxxxxxxxx
+                                                             srshl.  */
+                                                          return 271;
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 4) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxx10xxxxx000100xxxxx1xx01111xxx
-                                                             fcmp.  */
-                                                          return 795;
+                                                             0x001110xx1xxxxx001101xxxxxxxxxx
+                                                             cmgt.  */
+                                                          return 267;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxx11xxxxx000100xxxxx1xx01111xxx
-                                                             fcmpe.  */
-                                                          return 797;
+                                                             0x001110xx1xxxxx011101xxxxxxxxxx
+                                                             sabd.  */
+                                                          return 275;
                                                         }
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 29) & 0x1) == 0)
+                                              if (((word >> 12) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000101xxxxx1xx0111x00x
-                                                         smlsl.  */
-                                                      return 62;
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx000011xxxxxxxxxx
+                                                             sqadd.  */
+                                                          return 263;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx010011xxxxxxxxxx
+                                                             sqshl.  */
+                                                          return 270;
+                                                        }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000101xxxxx1xx0111x01x
-                                                         smlsl2.  */
-                                                      return 63;
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx001011xxxxxxxxxx
+                                                             sqsub.  */
+                                                          return 266;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx011011xxxxxxxxxx
+                                                             smin.  */
+                                                          return 274;
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000101xxxxx1xx0111x10x
-                                                         umlsl.  */
-                                                      return 92;
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110001xxxxx000111xxxxxxxxxx
+                                                                     and.  */
+                                                                  return 299;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110101xxxxx000111xxxxxxxxxx
+                                                                     orr.  */
+                                                                  return 311;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110011xxxxx000111xxxxxxxxxx
+                                                                     bic.  */
+                                                                  return 300;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110111xxxxx000111xxxxxxxxxx
+                                                                     orn.  */
+                                                                  return 313;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx010111xxxxxxxxxx
+                                                             sqrshl.  */
+                                                          return 272;
+                                                        }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000101xxxxx1xx0111x11x
-                                                         umlsl2.  */
-                                                      return 93;
-                                                    }
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
-                                            {
-                                              if (((word >> 29) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000110xxxxx1xx0111x00x
-                                                         subhn.  */
-                                                      return 54;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000110xxxxx1xx0111x01x
-                                                         subhn2.  */
-                                                      return 55;
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000110xxxxx1xx0111x10x
-                                                         rsubhn.  */
-                                                      return 86;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000110xxxxx1xx0111x11x
-                                                         rsubhn2.  */
-                                                      return 87;
-                                                    }
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 22) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000111xxxxx10x0111xx0x
-                                                         pmull.  */
-                                                      return 70;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000111xxxxx10x0111xx1x
-                                                         pmull2.  */
-                                                      return 72;
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000111xxxxx11x0111xx0x
-                                                         pmull.  */
-                                                      return 71;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000111xxxxx11x0111xx1x
-                                                         pmull2.  */
-                                                      return 73;
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx001111xxxxxxxxxx
+                                                             cmge.  */
+                                                          return 268;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx011111xxxxxxxxxx
+                                                             saba.  */
+                                                          return 276;
+                                                        }
                                                     }
                                                 }
                                             }
                                         }
                                     }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         1x001110xx1xxxxx0xxxxxxxxxxxxxxx
+                                         bcax.  */
+                                      return 1997;
+                                    }
                                 }
                               else
                                 {
-                                  if (((word >> 28) & 0x1) == 0)
+                                  if (((word >> 10) & 0x1) == 0)
                                     {
-                                      if (((word >> 13) & 0x1) == 0)
+                                      if (((word >> 11) & 0x1) == 0)
                                         {
-                                          if (((word >> 14) & 0x1) == 0)
+                                          if (((word >> 12) & 0x1) == 0)
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       if (((word >> 30) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001000xxxxx1xx0111000x
-                                                             saddw.  */
-                                                          return 44;
+                                                             x0101110xx1xxxxx000000xxxxxxxxxx
+                                                             uaddl.  */
+                                                          return 74;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001000xxxxx1xx0111001x
-                                                             saddw2.  */
-                                                          return 45;
+                                                             x1101110xx1xxxxx000000xxxxxxxxxx
+                                                             uaddl2.  */
+                                                          return 75;
                                                         }
                                                     }
                                                   else
@@ -13810,61 +14019,83 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001000xxxxx1xx0111010x
-                                                             uaddw.  */
-                                                          return 76;
+                                                             x0101110xx1xxxxx010000xxxxxxxxxx
+                                                             raddhn.  */
+                                                          return 82;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001000xxxxx1xx0111011x
-                                                             uaddw2.  */
-                                                          return 77;
+                                                             x1101110xx1xxxxx010000xxxxxxxxxx
+                                                             raddhn2.  */
+                                                          return 83;
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx001001xxxxx1xx01110x0x
-                                                         sqdmlal.  */
-                                                      return 60;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0101110xx1xxxxx001000xxxxxxxxxx
+                                                             usubl.  */
+                                                          return 78;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1101110xx1xxxxx001000xxxxxxxxxx
+                                                             usubl2.  */
+                                                          return 79;
+                                                        }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx001001xxxxx1xx01110x1x
-                                                         sqdmlal2.  */
-                                                      return 61;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0101110xx1xxxxx011000xxxxxxxxxx
+                                                             rsubhn.  */
+                                                          return 86;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1101110xx1xxxxx011000xxxxxxxxxx
+                                                             rsubhn2.  */
+                                                          return 87;
+                                                        }
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       if (((word >> 30) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001010xxxxx1xx0111000x
-                                                             sabal.  */
-                                                          return 52;
+                                                             x0101110xx1xxxxx000100xxxxxxxxxx
+                                                             uaddw.  */
+                                                          return 76;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001010xxxxx1xx0111001x
-                                                             sabal2.  */
-                                                          return 53;
+                                                             x1101110xx1xxxxx000100xxxxxxxxxx
+                                                             uaddw2.  */
+                                                          return 77;
                                                         }
                                                     }
                                                   else
@@ -13873,7 +14104,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001010xxxxx1xx0111010x
+                                                             x0101110xx1xxxxx010100xxxxxxxxxx
                                                              uabal.  */
                                                           return 84;
                                                         }
@@ -13881,7 +14112,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001010xxxxx1xx0111011x
+                                                             x1101110xx1xxxxx010100xxxxxxxxxx
                                                              uabal2.  */
                                                           return 85;
                                                         }
@@ -13889,48 +14120,23 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx001011xxxxx1xx01110x0x
-                                                         sqdmull.  */
-                                                      return 68;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx001011xxxxx1xx01110x1x
-                                                         sqdmull2.  */
-                                                      return 69;
-                                                    }
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 14) & 0x1) == 0)
-                                            {
-                                              if (((word >> 15) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       if (((word >> 30) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001100xxxxx1xx0111000x
-                                                             ssubw.  */
-                                                          return 48;
+                                                             x0101110xx1xxxxx001100xxxxxxxxxx
+                                                             usubw.  */
+                                                          return 80;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001100xxxxx1xx0111001x
-                                                             ssubw2.  */
-                                                          return 49;
+                                                             x1101110xx1xxxxx001100xxxxxxxxxx
+                                                             usubw2.  */
+                                                          return 81;
                                                         }
                                                     }
                                                   else
@@ -13939,349 +14145,173 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001100xxxxx1xx0111010x
-                                                             usubw.  */
-                                                          return 80;
+                                                             x0101110xx1xxxxx011100xxxxxxxxxx
+                                                             uabdl.  */
+                                                          return 88;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001100xxxxx1xx0111011x
-                                                             usubw2.  */
-                                                          return 81;
+                                                             x1101110xx1xxxxx011100xxxxxxxxxx
+                                                             uabdl2.  */
+                                                          return 89;
                                                         }
                                                     }
                                                 }
-                                              else
-                                                {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx001101xxxxx1xx01110x0x
-                                                         sqdmlsl.  */
-                                                      return 64;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx001101xxxxx1xx01110x1x
-                                                         sqdmlsl2.  */
-                                                      return 65;
-                                                    }
-                                                }
                                             }
-                                          else
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 12) & 0x1) == 0)
                                             {
-                                              if (((word >> 29) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00111xxxxxx1xx0111000x
-                                                         sabdl.  */
-                                                      return 56;
+                                                         xx101110xx1xxxxx000010xxxxxxxxxx
+                                                         rev32.  */
+                                                      return 207;
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx00111xxxxxx1xx0111001x
-                                                         sabdl2.  */
-                                                      return 57;
+                                                      if (((word >> 16) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110xx1xxxx0010010xxxxxxxxxx
+                                                             clz.  */
+                                                          return 210;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x0101110xx1xxxx1010010xxxxxxxxxx
+                                                                 uqxtn.  */
+                                                              return 220;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x1101110xx1xxxx1010010xxxxxxxxxx
+                                                                 uqxtn2.  */
+                                                              return 221;
+                                                            }
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx00111xxxxxx1xx0111010x
-                                                         uabdl.  */
-                                                      return 88;
+                                                      if (((word >> 16) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110xx1xxxx0001010xxxxxxxxxx
+                                                             uaddlp.  */
+                                                          return 208;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x0101110xx1xxxx1001010xxxxxxxxxx
+                                                                 sqxtun.  */
+                                                              return 216;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x1101110xx1xxxx1001010xxxxxxxxxx
+                                                                 sqxtun2.  */
+                                                              return 217;
+                                                            }
+                                                        }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx00111xxxxxx1xx0111011x
-                                                         uabdl2.  */
-                                                      return 89;
-                                                    }
-                                                }
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 30) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx001xxxxxxxx1xx01111x0x
-                                             fmov.  */
-                                          return 848;
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 13) & 0x1) == 0)
-                                            {
-                                              if (((word >> 14) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx00100xxxxxx1xx01111x1x
-                                                     sqdmlal.  */
-                                                  return 416;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx00101xxxxxx1xx01111x1x
-                                                     sqdmull.  */
-                                                  return 418;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0011xxxxxxx1xx01111x1x
-                                                 sqdmlsl.  */
-                                              return 417;
-                                            }
-                                        }
-                                    }
-                                }
-                            }
-                          else
-                            {
-                              if (((word >> 12) & 0x1) == 0)
-                                {
-                                  if (((word >> 13) & 0x1) == 0)
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
-                                            {
-                                              if (((word >> 28) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010000xxxxx1xx011100xx
-                                                         rev64.  */
-                                                      return 156;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010000xxxxx1xx011101xx
-                                                         rev32.  */
-                                                      return 207;
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010000xxxxx1xx01111x0x
-                                                         fmul.  */
-                                                      return 822;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010000xxxxx1xx01111x1x
-                                                         sha1h.  */
-                                                      return 669;
-                                                    }
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 28) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 16) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 16) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0100010xxxx1xx011100xx
-                                                             cmgt.  */
-                                                          return 164;
+                                                             xx101110xx1xxxx0011010xxxxxxxxxx
+                                                             uadalp.  */
+                                                          return 211;
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0100010xxxx1xx011101xx
-                                                             cmge.  */
-                                                          return 213;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 19) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 23) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100011xx0x1x0011100xx
-                                                                     frintn.  */
-                                                                  return 176;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100011xx0x1x0011101xx
-                                                                     frinta.  */
-                                                                  return 224;
-                                                                }
-                                                            }
-                                                          else
+                                                          if (((word >> 30) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100011xx0x1x101110xxx
-                                                                 frintp.  */
-                                                              return 196;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 23) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100011xx1x1x0011100xx
-                                                                     frintn.  */
-                                                                  return 177;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100011xx1x1x0011101xx
-                                                                     frinta.  */
-                                                                  return 225;
-                                                                }
+                                                                 x0101110xx1xxxx1011010xxxxxxxxxx
+                                                                 fcvtxn.  */
+                                                              return 222;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100011xx1x1x101110xxx
-                                                                 frintp.  */
-                                                              return 197;
+                                                                 x1101110xx1xxxx1011010xxxxxxxxxx
+                                                                 fcvtxn2.  */
+                                                              return 223;
                                                             }
                                                         }
                                                     }
                                                 }
-                                              else
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 22) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx010001xxxxx1xx0111100x
-                                                             fnmul.  */
-                                                          return 838;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx010001xxxxx1xx0111101x
-                                                             cmgt.  */
-                                                          return 476;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110x01xxxxx0x0110xxxxxxxxxx
+                                                         not.  */
+                                                      return 236;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx010001xxxxx1xx011111xx
-                                                         cmge.  */
-                                                      return 505;
+                                                         xx101110x11xxxxx0x0110xxxxxxxxxx
+                                                         rbit.  */
+                                                      return 238;
                                                     }
                                                 }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
-                                            {
-                                              if (((word >> 28) & 0x1) == 0)
+                                              else
                                                 {
-                                                  if (((word >> 16) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 19) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100100xx0x1xx011100xx
-                                                                 cls.  */
-                                                              return 160;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100100xx0x1xx011101xx
-                                                                 clz.  */
-                                                              return 210;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0100100xx1x1xx01110xxx
-                                                             aese.  */
-                                                          return 665;
-                                                        }
-                                                    }
-                                                  else
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 16) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 30) & 0x1) == 0)
+                                                          if (((word >> 20) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100101xxxx1xx0111000x
-                                                                 sqxtn.  */
-                                                              return 170;
+                                                                 xx101110xx10xxx0001110xxxxxxxxxx
+                                                                 usqadd.  */
+                                                              return 209;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100101xxxx1xx0111001x
-                                                                 sqxtn2.  */
-                                                              return 171;
+                                                                 xx101110xx11xxx0001110xxxxxxxxxx
+                                                                 uaddlv.  */
+                                                              return 31;
                                                             }
                                                         }
                                                       else
@@ -14290,834 +14320,463 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100101xxxx1xx0111010x
-                                                                 uqxtn.  */
-                                                              return 220;
+                                                                 x0101110xx1xxxx1001110xxxxxxxxxx
+                                                                 shll.  */
+                                                              return 218;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100101xxxx1xx0111011x
-                                                                 uqxtn2.  */
-                                                              return 221;
+                                                                 x1101110xx1xxxx1001110xxxxxxxxxx
+                                                                 shll2.  */
+                                                              return 219;
                                                             }
                                                         }
                                                     }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx011110xxxxxxxxxx
+                                                         sqneg.  */
+                                                      return 212;
+                                                    }
                                                 }
-                                              else
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 11) & 0x1) == 0)
+                                        {
+                                          if (((word >> 12) & 0x1) == 0)
+                                            {
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx010010xxxxx1xx0111100x
-                                                             fmax.  */
-                                                          return 830;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx010010xxxxx1xx0111101x
-                                                             sqxtn.  */
-                                                          return 480;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx000001xxxxxxxxxx
+                                                         uhadd.  */
+                                                      return 314;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx010010xxxxx1xx011111xx
-                                                         uqxtn.  */
-                                                      return 509;
+                                                         xx101110xx1xxxxx010001xxxxxxxxxx
+                                                         ushl.  */
+                                                      return 321;
                                                     }
                                                 }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              else
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 28) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100110xx001xx011100xx
-                                                                     fcmgt.  */
-                                                                  return 188;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100110xx001xx011101xx
-                                                                     fcmge.  */
-                                                                  return 239;
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100110xx001xx011110xx
-                                                                     fcmgt.  */
-                                                                  return 489;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100110xx001xx011111xx
-                                                                     fcmge.  */
-                                                                  return 519;
-                                                                }
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 23) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 28) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x0011100xx
-                                                                         fmaxnmv.  */
-                                                                      return 35;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x0011101xx
-                                                                         fmaxnmv.  */
-                                                                      return 34;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x0011110xx
-                                                                         fmaxnmp.  */
-                                                                      return 533;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x0011111xx
-                                                                         fmaxnmp.  */
-                                                                      return 532;
-                                                                    }
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 28) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x1011100xx
-                                                                         fminnmv.  */
-                                                                      return 39;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x1011101xx
-                                                                         fminnmv.  */
-                                                                      return 38;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x1011110xx
-                                                                         fminnmp.  */
-                                                                      return 539;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x1011111xx
-                                                                         fminnmp.  */
-                                                                      return 538;
-                                                                    }
-                                                                }
-                                                            }
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 28) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100110xx1x1xx011100xx
-                                                                 fcmgt.  */
-                                                              return 189;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100110xx1x1xx011101xx
-                                                                 fcmge.  */
-                                                              return 240;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100110xx1x1xx011110xx
-                                                                 fcmgt.  */
-                                                              return 490;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100110xx1x1xx011111xx
-                                                                 fcmge.  */
-                                                              return 520;
-                                                            }
-                                                        }
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 19) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 23) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 28) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100111xx0x1x0011100xx
-                                                                     fcvtas.  */
-                                                                  return 184;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100111xx0x1x0011101xx
-                                                                     fcvtau.  */
-                                                                  return 232;
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100111xx0x1x0011110xx
-                                                                     fcvtas.  */
-                                                                  return 485;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100111xx0x1x0011111xx
-                                                                     fcvtau.  */
-                                                                  return 515;
-                                                                }
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100111xx0x1x10111x0xx
-                                                                 urecpe.  */
-                                                              return 204;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100111xx0x1x10111x1xx
-                                                                 ursqrte.  */
-                                                              return 251;
-                                                            }
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx001001xxxxxxxxxx
+                                                         uhsub.  */
+                                                      return 317;
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 28) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100111xx1x1xx011100xx
-                                                                 fcvtas.  */
-                                                              return 185;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100111xx1x1xx011101xx
-                                                                 fcvtau.  */
-                                                              return 233;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100111xx1x1xx011110xx
-                                                                 fcvtas.  */
-                                                              return 486;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100111xx1x1xx011111xx
-                                                                 fcvtau.  */
-                                                              return 516;
-                                                            }
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx011001xxxxxxxxxx
+                                                         umax.  */
+                                                      return 325;
                                                     }
                                                 }
                                             }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          else
                                             {
-                                              if (((word >> 28) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 16) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0101000xxxx1xx011100xx
-                                                             saddlp.  */
-                                                          return 158;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0101000xxxx1xx011101xx
-                                                             uaddlp.  */
-                                                          return 208;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx000101xxxxxxxxxx
+                                                         urhadd.  */
+                                                      return 316;
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 30) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101001xxxx1xx0111000x
-                                                                 xtn.  */
-                                                              return 168;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101001xxxx1xx0111001x
-                                                                 xtn2.  */
-                                                              return 169;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 30) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101001xxxx1xx0111010x
-                                                                 sqxtun.  */
-                                                              return 216;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101001xxxx1xx0111011x
-                                                                 sqxtun2.  */
-                                                              return 217;
-                                                            }
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx010101xxxxxxxxxx
+                                                         urshl.  */
+                                                      return 323;
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx010100xxxxx1xx0111100x
-                                                             fadd.  */
-                                                          return 826;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx010100xxxxx1xx0111101x
-                                                             sha256su0.  */
-                                                          return 671;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx001101xxxxxxxxxx
+                                                         cmhi.  */
+                                                      return 319;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx010100xxxxx1xx011111xx
-                                                         sqxtun.  */
-                                                      return 508;
+                                                         xx101110xx1xxxxx011101xxxxxxxxxx
+                                                         uabd.  */
+                                                      return 327;
                                                     }
                                                 }
                                             }
-                                          else
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 12) & 0x1) == 0)
                                             {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 20) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 28) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0101010xxx01xx01110xxx
-                                                             cmlt.  */
-                                                          return 166;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0101010xxx01xx01111xxx
-                                                             cmlt.  */
-                                                          return 478;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx000011xxxxxxxxxx
+                                                         uqadd.  */
+                                                      return 315;
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0101010xxx11xx0111x0xx
-                                                             smaxv.  */
-                                                          return 28;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0101010xxx11xx0111x1xx
-                                                             umaxv.  */
-                                                          return 32;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx010011xxxxxxxxxx
+                                                         uqshl.  */
+                                                      return 322;
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 23) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 28) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x0011100xx
-                                                                         fcvtns.  */
-                                                                      return 180;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x0011101xx
-                                                                         fcvtnu.  */
-                                                                      return 228;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x0011110xx
-                                                                         fcvtns.  */
-                                                                      return 481;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x0011111xx
-                                                                         fcvtnu.  */
-                                                                      return 511;
-                                                                    }
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 28) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x1011100xx
-                                                                         fcvtps.  */
-                                                                      return 200;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x1011101xx
-                                                                         fcvtpu.  */
-                                                                      return 247;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x1011110xx
-                                                                         fcvtps.  */
-                                                                      return 495;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x1011111xx
-                                                                         fcvtpu.  */
-                                                                      return 523;
-                                                                    }
-                                                                }
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101011xx011xx0111x0xx
-                                                                 sminv.  */
-                                                              return 29;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101011xx011xx0111x1xx
-                                                                 uminv.  */
-                                                              return 33;
-                                                            }
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx001011xxxxxxxxxx
+                                                         uqsub.  */
+                                                      return 318;
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 28) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x0011100xx
-                                                                     fcvtns.  */
-                                                                  return 181;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x0011101xx
-                                                                     fcvtnu.  */
-                                                                  return 229;
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x0011110xx
-                                                                     fcvtns.  */
-                                                                  return 482;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x0011111xx
-                                                                     fcvtnu.  */
-                                                                  return 512;
-                                                                }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx011011xxxxxxxxxx
+                                                         umin.  */
+                                                      return 326;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 13) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 14) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx101110001xxxxx000111xxxxxxxxxx
+                                                                 eor.  */
+                                                              return 350;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx101110101xxxxx000111xxxxxxxxxx
+                                                                 bit.  */
+                                                              return 362;
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x1011100xx
-                                                                     fcvtps.  */
-                                                                  return 201;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x1011101xx
-                                                                     fcvtpu.  */
-                                                                  return 248;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx101110011xxxxx000111xxxxxxxxxx
+                                                                 bsl.  */
+                                                              return 351;
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x1011110xx
-                                                                     fcvtps.  */
-                                                                  return 496;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x1011111xx
-                                                                     fcvtpu.  */
-                                                                  return 524;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx101110111xxxxx000111xxxxxxxxxx
+                                                                 bif.  */
+                                                              return 363;
                                                             }
                                                         }
                                                     }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx010111xxxxxxxxxx
+                                                         uqrshl.  */
+                                                      return 324;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 14) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx001111xxxxxxxxxx
+                                                         cmhs.  */
+                                                      return 320;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx011111xxxxxxxxxx
+                                                         uaba.  */
+                                                      return 328;
+                                                    }
                                                 }
                                             }
                                         }
-                                      else
+                                    }
+                                }
+                            }
+                          else
+                            {
+                              if (((word >> 10) & 0x1) == 0)
+                                {
+                                  if (((word >> 11) & 0x1) == 0)
+                                    {
+                                      if (((word >> 12) & 0x1) == 0)
                                         {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
-                                              if (((word >> 28) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 16) & 0x1) == 0)
+                                                  if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 19) & 0x1) == 0)
+                                                      if (((word >> 30) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0001110xx1xxxxx100000xxxxxxxxxx
+                                                             smlal.  */
+                                                          return 58;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101100xx0x1xx011100xx
-                                                                 sadalp.  */
-                                                              return 162;
+                                                                 01001110xx1xxxxx100000xxxxxxxxxx
+                                                                 smlal2.  */
+                                                              return 59;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101100xx0x1xx011101xx
-                                                                 uadalp.  */
-                                                              return 211;
+                                                                 11001110xx1xxxxx100000xxxxxxxxxx
+                                                                 sha512h.  */
+                                                              return 1990;
                                                             }
                                                         }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0101110xx1xxxxx100000xxxxxxxxxx
+                                                             umlal.  */
+                                                          return 90;
+                                                        }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0101100xx1x1xx01110xxx
-                                                             aesmc.  */
-                                                          return 667;
+                                                             x1101110xx1xxxxx100000xxxxxxxxxx
+                                                             umlal2.  */
+                                                          return 91;
                                                         }
                                                     }
-                                                  else
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 30) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 30) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101101xxxx1xx0111000x
-                                                                 fcvtn.  */
-                                                              return 172;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101101xxxx1xx0111001x
-                                                                 fcvtn2.  */
-                                                              return 173;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0001110xx1xxxxx110000xxxxxxxxxx
+                                                             smull.  */
+                                                          return 66;
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 30) & 0x1) == 0)
+                                                          if (((word >> 31) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101101xxxx1xx0111010x
-                                                                 fcvtxn.  */
-                                                              return 222;
+                                                                 01001110xx1xxxxx110000xxxxxxxxxx
+                                                                 smull2.  */
+                                                              return 67;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101101xxxx1xx0111011x
-                                                                 fcvtxn2.  */
-                                                              return 223;
+                                                                 11001110xx1xxxxx110000xxxxxxxxxx
+                                                                 sm3partw1.  */
+                                                              return 2003;
                                                             }
                                                         }
                                                     }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010110xxxxx1xx011110xx
-                                                         fmaxnm.  */
-                                                      return 834;
-                                                    }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010110xxxxx1xx011111xx
-                                                         fcvtxn.  */
-                                                      return 510;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0101110xx1xxxxx110000xxxxxxxxxx
+                                                             umull.  */
+                                                          return 94;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1101110xx1xxxxx110000xxxxxxxxxx
+                                                             umull2.  */
+                                                          return 95;
+                                                        }
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 19) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 28) & 0x1) == 0)
+                                                  if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010111xxx0x1xx01110xxx
-                                                         fcmlt.  */
-                                                      return 192;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0001110xx1xxxxx101000xxxxxxxxxx
+                                                             smlsl.  */
+                                                          return 62;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1001110xx1xxxxx101000xxxxxxxxxx
+                                                             smlsl2.  */
+                                                          return 63;
+                                                        }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010111xxx0x1xx01111xxx
-                                                         fcmlt.  */
-                                                      return 493;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0101110xx1xxxxx101000xxxxxxxxxx
+                                                             umlsl.  */
+                                                          return 92;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1101110xx1xxxxx101000xxxxxxxxxx
+                                                             umlsl2.  */
+                                                          return 93;
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 28) & 0x1) == 0)
+                                                  if (((word >> 22) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010111xxx1x1xx01110xxx
-                                                         fcmlt.  */
-                                                      return 193;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0x01110x01xxxxx111000xxxxxxxxxx
+                                                             pmull.  */
+                                                          return 70;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1x01110x01xxxxx111000xxxxxxxxxx
+                                                             pmull2.  */
+                                                          return 72;
+                                                        }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010111xxx1x1xx01111xxx
-                                                         fcmlt.  */
-                                                      return 494;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0x01110x11xxxxx111000xxxxxxxxxx
+                                                             pmull.  */
+                                                          return 71;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1x01110x11xxxxx111000xxxxxxxxxx
+                                                             pmull2.  */
+                                                          return 73;
+                                                        }
                                                     }
                                                 }
                                             }
                                         }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 13) & 0x1) == 0)
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      else
                                         {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
-                                              if (((word >> 28) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx011000xxxxx1xx01110xxx
-                                                     rev16.  */
-                                                  return 157;
+                                                  if (((word >> 30) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x0x01110xx1xxxxx100100xxxxxxxxxx
+                                                         sqdmlal.  */
+                                                      return 60;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x1x01110xx1xxxxx100100xxxxxxxxxx
+                                                         sqdmlal2.  */
+                                                      return 61;
+                                                    }
                                                 }
                                               else
                                                 {
@@ -15125,229 +14784,262 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx011000xxxxx1xx01111x0x
-                                                         fdiv.  */
-                                                      return 824;
+                                                         x0x01110xx1xxxxx110100xxxxxxxxxx
+                                                         sqdmull.  */
+                                                      return 68;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx011000xxxxx1xx01111x1x
-                                                         sha1su1.  */
-                                                      return 670;
+                                                         x1x01110xx1xxxxx110100xxxxxxxxxx
+                                                         sqdmull2.  */
+                                                      return 69;
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              if (((word >> 30) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 28) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0110010xxxx1xx011100xx
-                                                             cmeq.  */
-                                                          return 165;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0110010xxxx1xx011101xx
-                                                             cmle.  */
-                                                          return 214;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0110010xxxx1xx011110xx
-                                                             cmeq.  */
-                                                          return 477;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0110010xxxx1xx011111xx
-                                                             cmle.  */
-                                                          return 506;
-                                                        }
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0x01110xx1xxxxx1x1100xxxxxxxxxx
+                                                     sqdmlsl.  */
+                                                  return 64;
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1x01110xx1xxxxx1x1100xxxxxxxxxx
+                                                     sqdmlsl2.  */
+                                                  return 65;
+                                                }
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 12) & 0x1) == 0)
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
+                                                      if (((word >> 31) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
+                                                          if (((word >> 16) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx0x1x00111x0xx
-                                                                 frintm.  */
-                                                              return 178;
+                                                                 0x001110xx1xxxx0100010xxxxxxxxxx
+                                                                 cmgt.  */
+                                                              return 164;
                                                             }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx0x1x00111x1xx
-                                                                 frintx.  */
-                                                              return 226;
+                                                              if (((word >> 19) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         0x0011100x1x0xx1100010xxxxxxxxxx
+                                                                         frintn.  */
+                                                                      return 176;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         0x0011101x1x0xx1100010xxxxxxxxxx
+                                                                         frintp.  */
+                                                                      return 196;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         0x0011100x1x1xx1100010xxxxxxxxxx
+                                                                         frintn.  */
+                                                                      return 177;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         0x0011101x1x1xx1100010xxxxxxxxxx
+                                                                         frintp.  */
+                                                                      return 197;
+                                                                    }
+                                                                }
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx0x1x10111x0xx
-                                                                 frintz.  */
-                                                              return 198;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx0x1x10111x1xx
-                                                                 frinti.  */
-                                                              return 245;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             1x001110xx1xxxxx100010xxxxxxxxxx
+                                                             sha512su1.  */
+                                                          return 1993;
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
+                                                      if (((word >> 16) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx1x1x00111x0xx
-                                                                 frintm.  */
-                                                              return 179;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx1x1x00111x1xx
-                                                                 frintx.  */
-                                                              return 227;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110xx1xxxx0100010xxxxxxxxxx
+                                                             cmge.  */
+                                                          return 213;
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
+                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx1x1x10111x0xx
-                                                                 frintz.  */
-                                                              return 199;
+                                                                 xx101110xx1x0xx1100010xxxxxxxxxx
+                                                                 frinta.  */
+                                                              return 224;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx1x1x10111x1xx
-                                                                 frinti.  */
-                                                              return 246;
+                                                                 xx101110xx1x1xx1100010xxxxxxxxxx
+                                                                 frinta.  */
+                                                              return 225;
                                                             }
                                                         }
                                                     }
                                                 }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
-                                            {
-                                              if (((word >> 28) & 0x1) == 0)
+                                              else
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       if (((word >> 29) & 0x1) == 0)
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx011010xxx0x1xx011100xx
-                                                             cnt.  */
-                                                          return 161;
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 16) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x0011100x1xxxx0110010xxxxxxxxxx
+                                                                     fmaxnmv.  */
+                                                                  return 35;
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 19) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         0x0011100x1x0xx1110010xxxxxxxxxx
+                                                                         fcvtas.  */
+                                                                      return 184;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         0x0011100x1x1xx1110010xxxxxxxxxx
+                                                                         fcvtas.  */
+                                                                      return 185;
+                                                                    }
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 1x0011100x1xxxxx110010xxxxxxxxxx
+                                                                 sm4ekey.  */
+                                                              return 2006;
+                                                            }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 22) & 0x1) == 0)
+                                                          if (((word >> 16) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx011010xxx0x10x011101xx
-                                                                 not.  */
-                                                              return 236;
+                                                                 xx1011100x1xxxx0110010xxxxxxxxxx
+                                                                 fmaxnmv.  */
+                                                              return 34;
                                                             }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx011010xxx0x11x011101xx
-                                                                 rbit.  */
-                                                              return 238;
+                                                              if (((word >> 19) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1011100x1x0xx1110010xxxxxxxxxx
+                                                                     fcvtau.  */
+                                                                  return 232;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1011100x1x1xx1110010xxxxxxxxxx
+                                                                     fcvtau.  */
+                                                                  return 233;
+                                                                }
                                                             }
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx011010xxx1x1xx01110xxx
-                                                         aesd.  */
-                                                      return 666;
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx011010xxxxx1xx01111xxx
-                                                     fmin.  */
-                                                  return 832;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 16) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 19) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      if (((word >> 16) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
-                                                              if (((word >> 29) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110110xx001xx011100xx
-                                                                     fcmeq.  */
-                                                                  return 190;
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0011101x100xx0110010xxxxxxxxxx
+                                                                         fcmgt.  */
+                                                                      return 188;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1011101x100xx0110010xxxxxxxxxx
+                                                                         fcmge.  */
+                                                                      return 239;
+                                                                    }
                                                                 }
                                                               else
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110110xx001xx011101xx
-                                                                     fcmle.  */
-                                                                  return 241;
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0011101x110xx0110010xxxxxxxxxx
+                                                                         fminnmv.  */
+                                                                      return 39;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1011101x110xx0110010xxxxxxxxxx
+                                                                         fminnmv.  */
+                                                                      return 38;
+                                                                    }
                                                                 }
                                                             }
                                                           else
@@ -15356,105 +15048,119 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110110xx001xx011110xx
-                                                                     fcmeq.  */
-                                                                  return 491;
+                                                                     xx0011101x1x1xx0110010xxxxxxxxxx
+                                                                     fcmgt.  */
+                                                                  return 189;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110110xx001xx011111xx
-                                                                     fcmle.  */
-                                                                  return 521;
+                                                                     xx1011101x1x1xx0110010xxxxxxxxxx
+                                                                     fcmge.  */
+                                                                  return 240;
                                                                 }
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110110xx011xx0111x0xx
-                                                                 faddp.  */
-                                                              return 535;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110110xx011xx0111x1xx
-                                                                 faddp.  */
-                                                              return 534;
-                                                            }
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 28) & 0x1) == 0)
+                                                            }
+                                                        }
+                                                      else
                                                         {
                                                           if (((word >> 29) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110110xx1x1xx011100xx
-                                                                 fcmeq.  */
-                                                              return 191;
+                                                                 xx0011101x1xxxx1110010xxxxxxxxxx
+                                                                 urecpe.  */
+                                                              return 204;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110110xx1x1xx011101xx
-                                                                 fcmle.  */
-                                                              return 242;
+                                                                 xx1011101x1xxxx1110010xxxxxxxxxx
+                                                                 ursqrte.  */
+                                                              return 251;
                                                             }
                                                         }
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 16) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 20) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xxx01110xx10xxx0101010xxxxxxxxxx
+                                                             cmlt.  */
+                                                          return 166;
+                                                        }
                                                       else
                                                         {
                                                           if (((word >> 29) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110110xx1x1xx011110xx
-                                                                 fcmeq.  */
-                                                              return 492;
+                                                                 xx001110xx11xxx0101010xxxxxxxxxx
+                                                                 smaxv.  */
+                                                              return 28;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110110xx1x1xx011111xx
-                                                                 fcmle.  */
-                                                              return 522;
+                                                                 xx101110xx11xxx0101010xxxxxxxxxx
+                                                                 umaxv.  */
+                                                              return 32;
                                                             }
                                                         }
                                                     }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  else
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          if (((word >> 20) & 0x1) == 0)
                                                             {
-                                                              if (((word >> 29) & 0x1) == 0)
+                                                              if (((word >> 23) & 0x1) == 0)
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x0011100xx
-                                                                     scvtf.  */
-                                                                  return 186;
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0011100x100xx1101010xxxxxxxxxx
+                                                                         fcvtns.  */
+                                                                      return 180;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1011100x100xx1101010xxxxxxxxxx
+                                                                         fcvtnu.  */
+                                                                      return 228;
+                                                                    }
                                                                 }
                                                               else
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x0011101xx
-                                                                     ucvtf.  */
-                                                                  return 234;
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0011101x100xx1101010xxxxxxxxxx
+                                                                         fcvtps.  */
+                                                                      return 200;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1011101x100xx1101010xxxxxxxxxx
+                                                                         fcvtpu.  */
+                                                                      return 247;
+                                                                    }
                                                                 }
                                                             }
                                                           else
@@ -15463,39 +15169,39 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x0011110xx
-                                                                     scvtf.  */
-                                                                  return 487;
+                                                                     xx001110xx110xx1101010xxxxxxxxxx
+                                                                     sminv.  */
+                                                                  return 29;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x0011111xx
-                                                                     ucvtf.  */
-                                                                  return 517;
+                                                                     xx101110xx110xx1101010xxxxxxxxxx
+                                                                     uminv.  */
+                                                                  return 33;
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x1011100xx
-                                                                     frecpe.  */
-                                                                  return 205;
+                                                                     xx0011100x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtns.  */
+                                                                  return 181;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x1011101xx
-                                                                     frsqrte.  */
-                                                                  return 252;
+                                                                     xx1011100x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtnu.  */
+                                                                  return 229;
                                                                 }
                                                             }
                                                           else
@@ -15504,42 +15210,89 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x1011110xx
-                                                                     frecpe.  */
-                                                                  return 499;
+                                                                     xx0011101x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtps.  */
+                                                                  return 201;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x1011111xx
-                                                                     frsqrte.  */
-                                                                  return 527;
+                                                                     xx1011101x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtpu.  */
+                                                                  return 248;
                                                                 }
                                                             }
                                                         }
                                                     }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 19) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxx01110xx1x0xxx111010xxxxxxxxxx
+                                                         fcmlt.  */
+                                                      return 192;
+                                                    }
                                                   else
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxx01110xx1x1xxx111010xxxxxxxxxx
+                                                         fcmlt.  */
+                                                      return 193;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 16) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 29) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx001110xx1xxxx0100110xxxxxxxxxx
+                                                             cmeq.  */
+                                                          return 165;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110xx1xxxx0100110xxxxxxxxxx
+                                                             cmle.  */
+                                                          return 214;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 19) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x0011100xx
-                                                                     scvtf.  */
-                                                                  return 187;
+                                                                     xx0011100x1x0xx1100110xxxxxxxxxx
+                                                                     frintm.  */
+                                                                  return 178;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x0011101xx
-                                                                     ucvtf.  */
-                                                                  return 235;
+                                                                     xx1011100x1x0xx1100110xxxxxxxxxx
+                                                                     frintx.  */
+                                                                  return 226;
                                                                 }
                                                             }
                                                           else
@@ -15548,39 +15301,39 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x0011110xx
-                                                                     scvtf.  */
-                                                                  return 488;
+                                                                     xx0011101x1x0xx1100110xxxxxxxxxx
+                                                                     frintz.  */
+                                                                  return 198;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x0011111xx
-                                                                     ucvtf.  */
-                                                                  return 518;
+                                                                     xx1011101x1x0xx1100110xxxxxxxxxx
+                                                                     frinti.  */
+                                                                  return 245;
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x1011100xx
-                                                                     frecpe.  */
-                                                                  return 206;
+                                                                     xx0011100x1x1xx1100110xxxxxxxxxx
+                                                                     frintm.  */
+                                                                  return 179;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x1011101xx
-                                                                     frsqrte.  */
-                                                                  return 253;
+                                                                     xx1011100x1x1xx1100110xxxxxxxxxx
+                                                                     frintx.  */
+                                                                  return 227;
                                                                 }
                                                             }
                                                           else
@@ -15589,52 +15342,43 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x1011110xx
-                                                                     frecpe.  */
-                                                                  return 500;
+                                                                     xx0011101x1x1xx1100110xxxxxxxxxx
+                                                                     frintz.  */
+                                                                  return 199;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x1011111xx
-                                                                     frsqrte.  */
-                                                                  return 528;
+                                                                     xx1011101x1x1xx1100110xxxxxxxxxx
+                                                                     frinti.  */
+                                                                  return 246;
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
-                                            {
-                                              if (((word >> 28) & 0x1) == 0)
+                                              else
                                                 {
                                                   if (((word >> 16) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                           if (((word >> 29) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111000xxx01xx011100xx
-                                                                 suqadd.  */
-                                                              return 159;
+                                                                 xx001110xx1x0xx0110110xxxxxxxxxx
+                                                                 fcmeq.  */
+                                                              return 190;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111000xxx01xx011101xx
-                                                                 usqadd.  */
-                                                              return 209;
+                                                                 xx101110xx1x0xx0110110xxxxxxxxxx
+                                                                 fcmle.  */
+                                                              return 241;
                                                             }
                                                         }
                                                       else
@@ -15643,82 +15387,118 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111000xxx11xx011100xx
-                                                                 saddlv.  */
-                                                              return 27;
+                                                                 xx001110xx1x1xx0110110xxxxxxxxxx
+                                                                 fcmeq.  */
+                                                              return 191;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx101110xx1x1xx0110110xxxxxxxxxx
+                                                                 fcmle.  */
+                                                              return 242;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 19) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0011100x1x0xx1110110xxxxxxxxxx
+                                                                     scvtf.  */
+                                                                  return 186;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1011100x1x0xx1110110xxxxxxxxxx
+                                                                     ucvtf.  */
+                                                                  return 234;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0011101x1x0xx1110110xxxxxxxxxx
+                                                                     frecpe.  */
+                                                                  return 205;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1011101x1x0xx1110110xxxxxxxxxx
+                                                                     frsqrte.  */
+                                                                  return 252;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0011100x1x1xx1110110xxxxxxxxxx
+                                                                     scvtf.  */
+                                                                  return 187;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1011100x1x1xx1110110xxxxxxxxxx
+                                                                     ucvtf.  */
+                                                                  return 235;
+                                                                }
                                                             }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111000xxx11xx011101xx
-                                                                 uaddlv.  */
-                                                              return 31;
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0011101x1x1xx1110110xxxxxxxxxx
+                                                                     frecpe.  */
+                                                                  return 206;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1011101x1x1xx1110110xxxxxxxxxx
+                                                                     frsqrte.  */
+                                                                  return 253;
+                                                                }
                                                             }
                                                         }
                                                     }
-                                                  else
-                                                    {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111001xxxx1xx01110x0x
-                                                             shll.  */
-                                                          return 218;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111001xxxx1xx01110x1x
-                                                             shll2.  */
-                                                          return 219;
-                                                        }
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx011100xxxxx1xx0111100x
-                                                             fsub.  */
-                                                          return 828;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx011100xxxxx1xx0111101x
-                                                             suqadd.  */
-                                                          return 474;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx011100xxxxx1xx011111xx
-                                                         usqadd.  */
-                                                      return 503;
-                                                    }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 28) & 0x1) == 0)
+                                                  if (((word >> 16) & 0x1) == 0)
                                                     {
                                                       if (((word >> 29) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0111010xxxx1xx011100xx
+                                                             xx001110xx1xxxx0101110xxxxxxxxxx
                                                              abs.  */
                                                           return 167;
                                                         }
@@ -15726,46 +15506,24 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0111010xxxx1xx011101xx
+                                                             xx101110xx1xxxx0101110xxxxxxxxxx
                                                              neg.  */
                                                           return 215;
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111010xxxx1xx011110xx
-                                                             abs.  */
-                                                          return 479;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111010xxxx1xx011111xx
-                                                             neg.  */
-                                                          return 507;
-                                                        }
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 19) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 23) & 0x1) == 0)
+                                                          if (((word >> 20) & 0x1) == 0)
                                                             {
-                                                              if (((word >> 28) & 0x1) == 0)
+                                                              if (((word >> 23) & 0x1) == 0)
                                                                 {
                                                                   if (((word >> 29) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x0011100xx
+                                                                         xx0011100x100xx1101110xxxxxxxxxx
                                                                          fcvtms.  */
                                                                       return 182;
                                                                     }
@@ -15773,7 +15531,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x0011101xx
+                                                                         xx1011100x100xx1101110xxxxxxxxxx
                                                                          fcvtmu.  */
                                                                       return 230;
                                                                     }
@@ -15784,29 +15542,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x0011110xx
-                                                                         fcvtms.  */
-                                                                      return 483;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x0011111xx
-                                                                         fcvtmu.  */
-                                                                      return 513;
-                                                                    }
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 28) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x1011100xx
+                                                                         xx0011101x100xx1101110xxxxxxxxxx
                                                                          fcvtzs.  */
                                                                       return 202;
                                                                     }
@@ -15814,63 +15550,30 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x1011101xx
+                                                                         xx1011101x100xx1101110xxxxxxxxxx
                                                                          fcvtzu.  */
                                                                       return 249;
                                                                     }
                                                                 }
-                                                              else
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x1011110xx
-                                                                         fcvtzs.  */
-                                                                      return 497;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x1011111xx
-                                                                         fcvtzu.  */
-                                                                      return 525;
-                                                                    }
-                                                                }
                                                             }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111011xx011xx01110xxx
+                                                                 xxx01110xx110xx1101110xxxxxxxxxx
                                                                  addv.  */
                                                               return 30;
                                                             }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111011xx011xx01111xxx
-                                                                 addp.  */
-                                                              return 531;
-                                                            }
                                                         }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 23) & 0x1) == 0)
+                                                      else
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x0011100xx
+                                                                     xx0011100x1x1xx1101110xxxxxxxxxx
                                                                      fcvtms.  */
                                                                   return 183;
                                                                 }
@@ -15878,7 +15581,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x0011101xx
+                                                                     xx1011100x1x1xx1101110xxxxxxxxxx
                                                                      fcvtmu.  */
                                                                   return 231;
                                                                 }
@@ -15889,260 +15592,472 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x0011110xx
-                                                                     fcvtms.  */
-                                                                  return 484;
+                                                                     xx0011101x1x1xx1101110xxxxxxxxxx
+                                                                     fcvtzs.  */
+                                                                  return 203;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x0011111xx
-                                                                     fcvtmu.  */
-                                                                  return 514;
+                                                                     xx1011101x1x1xx1101110xxxxxxxxxx
+                                                                     fcvtzu.  */
+                                                                  return 250;
                                                                 }
                                                             }
                                                         }
-                                                      else
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 16) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          if (((word >> 20) & 0x1) == 0)
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x1011100xx
-                                                                     fcvtzs.  */
-                                                                  return 203;
+                                                                     xx001110xx100xx0111110xxxxxxxxxx
+                                                                     fabs.  */
+                                                                  return 194;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x1011101xx
-                                                                     fcvtzu.  */
-                                                                  return 250;
+                                                                     xx101110xx100xx0111110xxxxxxxxxx
+                                                                     fneg.  */
+                                                                  return 243;
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 29) & 0x1) == 0)
+                                                              if (((word >> 23) & 0x1) == 0)
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x1011110xx
-                                                                     fcvtzs.  */
-                                                                  return 498;
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0011100x110xx0111110xxxxxxxxxx
+                                                                         fmaxv.  */
+                                                                      return 37;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1011100x110xx0111110xxxxxxxxxx
+                                                                         fmaxv.  */
+                                                                      return 36;
+                                                                    }
                                                                 }
                                                               else
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x1011111xx
-                                                                     fcvtzu.  */
-                                                                  return 526;
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0011101x110xx0111110xxxxxxxxxx
+                                                                         fminv.  */
+                                                                      return 41;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1011101x110xx0111110xxxxxxxxxx
+                                                                         fminv.  */
+                                                                      return 40;
+                                                                    }
                                                                 }
                                                             }
                                                         }
+                                                      else
+                                                        {
+                                                          if (((word >> 29) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx001110xx1x1xx0111110xxxxxxxxxx
+                                                                 fabs.  */
+                                                              return 195;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx101110xx1x1xx0111110xxxxxxxxxx
+                                                                 fneg.  */
+                                                              return 244;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 19) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xxx01110xx1x0xx1111110xxxxxxxxxx
+                                                             fsqrt.  */
+                                                          return 254;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xxx01110xx1x1xx1111110xxxxxxxxxx
+                                                             fsqrt.  */
+                                                          return 255;
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 11) & 0x1) == 0)
+                                    {
+                                      if (((word >> 12) & 0x1) == 0)
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 29) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 31) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx100001xxxxxxxxxx
+                                                             add.  */
+                                                          return 277;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             1x001110xx1xxxxx100001xxxxxxxxxx
+                                                             sha512h2.  */
+                                                          return 1991;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx100001xxxxxxxxxx
+                                                         sub.  */
+                                                      return 329;
                                                     }
                                                 }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
-                                            {
-                                              if (((word >> 28) & 0x1) == 0)
+                                              else
                                                 {
-                                                  if (((word >> 16) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 19) & 0x1) == 0)
+                                                      if (((word >> 29) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
+                                                          if (((word >> 31) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111100xx0x1xx011100xx
-                                                                 sqabs.  */
-                                                              return 163;
+                                                                 0x0011100x1xxxxx110001xxxxxxxxxx
+                                                                 fmaxnm.  */
+                                                              return 285;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111100xx0x1xx011101xx
-                                                                 sqneg.  */
-                                                              return 212;
+                                                                 1x0011100x1xxxxx110001xxxxxxxxxx
+                                                                 sm3partw2.  */
+                                                              return 2004;
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0111100xx1x1xx01110xxx
-                                                             aesimc.  */
-                                                          return 668;
+                                                             xx1011100x1xxxxx110001xxxxxxxxxx
+                                                             fmaxnmp.  */
+                                                          return 336;
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
+                                                      if (((word >> 29) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0111101xxxx1xx01110x0x
-                                                             fcvtl.  */
-                                                          return 174;
+                                                             xx0011101x1xxxxx110001xxxxxxxxxx
+                                                             fminnm.  */
+                                                          return 301;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0111101xxxx1xx01110x1x
-                                                             fcvtl2.  */
-                                                          return 175;
+                                                             xx1011101x1xxxxx110001xxxxxxxxxx
+                                                             fminnmp.  */
+                                                          return 352;
                                                         }
                                                     }
                                                 }
-                                              else
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx001110xx1xxxxx101001xxxxxxxxxx
+                                                         smaxp.  */
+                                                      return 281;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx101001xxxxxxxxxx
+                                                         umaxp.  */
+                                                      return 333;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 29) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx011110xxxxx1xx0111100x
-                                                             fminnm.  */
-                                                          return 836;
+                                                             xx0011100x1xxxxx111001xxxxxxxxxx
+                                                             fcmeq.  */
+                                                          return 293;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx011110xxxxx1xx0111101x
-                                                             sqabs.  */
-                                                          return 475;
+                                                             xx1011100x1xxxxx111001xxxxxxxxxx
+                                                             fcmge.  */
+                                                          return 342;
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx011110xxxxx1xx011111xx
-                                                         sqneg.  */
-                                                      return 504;
+                                                         xxx011101x1xxxxx111001xxxxxxxxxx
+                                                         fcmgt.  */
+                                                      return 356;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 29) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx001110xx1xxxxx100101xxxxxxxxxx
+                                                         mla.  */
+                                                      return 279;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx100101xxxxxxxxxx
+                                                         mls.  */
+                                                      return 331;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 29) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx0011100x1xxxxx110101xxxxxxxxxx
+                                                             fadd.  */
+                                                          return 289;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx1011100x1xxxxx110101xxxxxxxxxx
+                                                             faddp.  */
+                                                          return 338;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 29) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx0011101x1xxxxx110101xxxxxxxxxx
+                                                             fsub.  */
+                                                          return 305;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx1011101x1xxxxx110101xxxxxxxxxx
+                                                             fabd.  */
+                                                          return 354;
+                                                        }
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx001110xx1xxxxx101101xxxxxxxxxx
+                                                         sqdmulh.  */
+                                                      return 283;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx101101xxxxxxxxxx
+                                                         sqrdmulh.  */
+                                                      return 335;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 29) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111110xx001xx0111x0xx
-                                                                 fabs.  */
-                                                              return 194;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111110xx001xx0111x1xx
-                                                                 fneg.  */
-                                                              return 243;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx0011100x1xxxxx111101xxxxxxxxxx
+                                                             fmax.  */
+                                                          return 295;
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 23) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 28) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x0011100xx
-                                                                         fmaxv.  */
-                                                                      return 37;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x0011101xx
-                                                                         fmaxv.  */
-                                                                      return 36;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x0011110xx
-                                                                         fmaxp.  */
-                                                                      return 537;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x0011111xx
-                                                                         fmaxp.  */
-                                                                      return 536;
-                                                                    }
-                                                                }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx1011100x1xxxxx111101xxxxxxxxxx
+                                                             fmaxp.  */
+                                                          return 346;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 29) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx0011101x1xxxxx111101xxxxxxxxxx
+                                                             fmin.  */
+                                                          return 307;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx1011101x1xxxxx111101xxxxxxxxxx
+                                                             fminp.  */
+                                                          return 360;
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 12) & 0x1) == 0)
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 29) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 31) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx100011xxxxxxxxxx
+                                                             cmtst.  */
+                                                          return 278;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             1x001110xx1xxxxx100011xxxxxxxxxx
+                                                             rax1.  */
+                                                          return 1995;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx100011xxxxxxxxxx
+                                                         cmeq.  */
+                                                      return 330;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 29) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx0011100x1xxxxx110011xxxxxxxxxx
+                                                             fmla.  */
+                                                          return 287;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x01011100x1xxxxx110011xxxxxxxxxx
+                                                                 fmlal2.  */
+                                                              return 2009;
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 28) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x1011100xx
-                                                                         fminv.  */
-                                                                      return 41;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x1011101xx
-                                                                         fminv.  */
-                                                                      return 40;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x1011110xx
-                                                                         fminp.  */
-                                                                      return 541;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x1011111xx
-                                                                         fminp.  */
-                                                                      return 540;
-                                                                    }
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x11011100x1xxxxx110011xxxxxxxxxx
+                                                                 fmlal2.  */
+                                                              return 2013;
                                                             }
                                                         }
                                                     }
@@ -16152,96 +16067,139 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0111110xx1x1xx0111x0xx
-                                                             fabs.  */
-                                                          return 195;
+                                                             xx0011101x1xxxxx110011xxxxxxxxxx
+                                                             fmls.  */
+                                                          return 303;
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111110xx1x1xx0111x1xx
-                                                             fneg.  */
-                                                          return 244;
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x01011101x1xxxxx110011xxxxxxxxxx
+                                                                 fmlsl2.  */
+                                                              return 2010;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x11011101x1xxxxx110011xxxxxxxxxx
+                                                                 fmlsl2.  */
+                                                              return 2014;
+                                                            }
                                                         }
                                                     }
                                                 }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 29) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx001110xx1xxxxx101011xxxxxxxxxx
+                                                         sminp.  */
+                                                      return 282;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx101011xxxxxxxxxx
+                                                         uminp.  */
+                                                      return 334;
+                                                    }
+                                                }
                                               else
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 28) & 0x1) == 0)
+                                                      if (((word >> 29) & 0x1) == 0)
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111111xx0x1xx01110xxx
-                                                             fsqrt.  */
-                                                          return 254;
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x00011100x1xxxxx111011xxxxxxxxxx
+                                                                 fmlal.  */
+                                                              return 2007;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x10011100x1xxxxx111011xxxxxxxxxx
+                                                                 fmlal.  */
+                                                              return 2011;
+                                                            }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0111111xx0x1xx01111xxx
-                                                             frecpx.  */
-                                                          return 501;
+                                                             xx1011100x1xxxxx111011xxxxxxxxxx
+                                                             facge.  */
+                                                          return 344;
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 28) & 0x1) == 0)
+                                                      if (((word >> 29) & 0x1) == 0)
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111111xx1x1xx01110xxx
-                                                             fsqrt.  */
-                                                          return 255;
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x00011101x1xxxxx111011xxxxxxxxxx
+                                                                 fmlsl.  */
+                                                              return 2008;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x10011101x1xxxxx111011xxxxxxxxxx
+                                                                 fmlsl.  */
+                                                              return 2012;
+                                                            }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0111111xx1x1xx01111xxx
-                                                             frecpx.  */
-                                                          return 502;
+                                                             xx1011101x1xxxxx111011xxxxxxxxxx
+                                                             facgt.  */
+                                                          return 358;
                                                         }
                                                     }
                                                 }
                                             }
                                         }
-                                    }
-                                }
-                            }
-                        }
-                      else
-                        {
-                          if (((word >> 11) & 0x1) == 0)
-                            {
-                              if (((word >> 28) & 0x1) == 0)
-                                {
-                                  if (((word >> 12) & 0x1) == 0)
-                                    {
-                                      if (((word >> 13) & 0x1) == 0)
+                                      else
                                         {
-                                          if (((word >> 14) & 0x1) == 0)
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx100000xxxxx1xx011100xx
-                                                         shadd.  */
-                                                      return 262;
+                                                         xx001110xx1xxxxx100111xxxxxxxxxx
+                                                         mul.  */
+                                                      return 280;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx100000xxxxx1xx011101xx
-                                                         uhadd.  */
-                                                      return 314;
+                                                         xx101110xx1xxxxx100111xxxxxxxxxx
+                                                         pmul.  */
+                                                      return 332;
                                                     }
                                                 }
                                               else
@@ -16250,182 +16208,477 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx100001xxxxx1xx011100xx
-                                                         add.  */
-                                                      return 277;
+                                                         xx001110xx1xxxxx110111xxxxxxxxxx
+                                                         fmulx.  */
+                                                      return 291;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx100001xxxxx1xx011101xx
-                                                         sub.  */
-                                                      return 329;
+                                                         xx101110xx1xxxxx110111xxxxxxxxxx
+                                                         fmul.  */
+                                                      return 340;
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxx01110xx1xxxxx101111xxxxxxxxxx
+                                                     addp.  */
+                                                  return 284;
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100010xxxxx1xx011100xx
-                                                         sshl.  */
-                                                      return 269;
+                                                      if (((word >> 29) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx0011100x1xxxxx111111xxxxxxxxxx
+                                                             frecps.  */
+                                                          return 297;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx1011100x1xxxxx111111xxxxxxxxxx
+                                                             fdiv.  */
+                                                          return 348;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx100010xxxxx1xx011101xx
-                                                         ushl.  */
-                                                      return 321;
+                                                         xxx011101x1xxxxx111111xxxxxxxxxx
+                                                         frsqrts.  */
+                                                      return 309;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                      else
+                        {
+                          if (((word >> 10) & 0x1) == 0)
+                            {
+                              if (((word >> 11) & 0x1) == 0)
+                                {
+                                  if (((word >> 12) & 0x1) == 0)
+                                    {
+                                      if (((word >> 13) & 0x1) == 0)
+                                        {
+                                          if (((word >> 14) & 0x1) == 0)
+                                            {
+                                              if (((word >> 16) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 17) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx100000x00000xxxxxxxxxx
+                                                                     fcvtns.  */
+                                                                  return 756;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx110000x00000xxxxxxxxxx
+                                                                     fcvtms.  */
+                                                                  return 776;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx101000x00000xxxxxxxxxx
+                                                                     fcvtps.  */
+                                                                  return 772;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx111000x00000xxxxxxxxxx
+                                                                     fcvtzs.  */
+                                                                  return 780;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xxx11110xx1xx100x00000xxxxxxxxxx
+                                                             fcvtas.  */
+                                                          return 764;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xxx11110xx1xx010x00000xxxxxxxxxx
+                                                             scvtf.  */
+                                                          return 760;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1x0110x00000xxxxxxxxxx
+                                                                 fmov.  */
+                                                              return 768;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx101110x00000xxxxxxxxxx
+                                                                     fmov.  */
+                                                                  return 784;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx111110x00000xxxxxxxxxx
+                                                                     fjcvtzs.  */
+                                                                  return 786;
+                                                                }
+                                                            }
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 17) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 18) & 0x1) == 0)
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx100011xxxxx1x0011100xx
-                                                             fmaxnm.  */
-                                                          return 285;
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx100001x00000xxxxxxxxxx
+                                                                     fcvtnu.  */
+                                                                  return 758;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx110001x00000xxxxxxxxxx
+                                                                     fcvtmu.  */
+                                                                  return 778;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx101001x00000xxxxxxxxxx
+                                                                     fcvtpu.  */
+                                                                  return 774;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx111001x00000xxxxxxxxxx
+                                                                     fcvtzu.  */
+                                                                  return 782;
+                                                                }
+                                                            }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx100011xxxxx1x0011101xx
-                                                             fmaxnmp.  */
-                                                          return 336;
+                                                             xxx11110xx1xx101x00000xxxxxxxxxx
+                                                             fcvtau.  */
+                                                          return 766;
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 18) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx100011xxxxx1x1011100xx
-                                                             fminnm.  */
-                                                          return 301;
+                                                             xxx11110xx1xx011x00000xxxxxxxxxx
+                                                             ucvtf.  */
+                                                          return 762;
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx100011xxxxx1x1011101xx
-                                                             fminnmp.  */
-                                                          return 352;
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1x0111x00000xxxxxxxxxx
+                                                                 fmov.  */
+                                                              return 770;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1x1111x00000xxxxxxxxxx
+                                                                 fmov.  */
+                                                              return 785;
+                                                            }
                                                         }
                                                     }
                                                 }
                                             }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 14) & 0x1) == 0)
+                                          else
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 17) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 15) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100100xxxxx1xx011100xx
-                                                         shsub.  */
-                                                      return 265;
+                                                      if (((word >> 16) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 18) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx000010000xxxxxxxxxx
+                                                                 fmov.  */
+                                                              return 799;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx100010000xxxxxxxxxx
+                                                                 frintn.  */
+                                                              return 808;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 18) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx001010000xxxxxxxxxx
+                                                                 fneg.  */
+                                                              return 803;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx101010000xxxxxxxxxx
+                                                                 frintm.  */
+                                                              return 812;
+                                                            }
+                                                        }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100100xxxxx1xx011101xx
-                                                         uhsub.  */
-                                                      return 317;
+                                                      if (((word >> 16) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 18) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx000110000xxxxxxxxxx
+                                                                 fabs.  */
+                                                              return 801;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx100110000xxxxxxxxxx
+                                                                 frintp.  */
+                                                              return 810;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 18) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx001110000xxxxxxxxxx
+                                                                 fsqrt.  */
+                                                              return 805;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx101110000xxxxxxxxxx
+                                                                 frintz.  */
+                                                              return 814;
+                                                            }
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 18) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx100101xxxxx1xx011100xx
-                                                         smaxp.  */
-                                                      return 281;
+                                                         xxx11110xx1xx01xx10000xxxxxxxxxx
+                                                         fcvt.  */
+                                                      return 807;
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100101xxxxx1xx011101xx
-                                                         umaxp.  */
-                                                      return 333;
+                                                      if (((word >> 15) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 16) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx110010000xxxxxxxxxx
+                                                                 frinta.  */
+                                                              return 816;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx111010000xxxxxxxxxx
+                                                                 frintx.  */
+                                                              return 818;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xxx11110xx1xx11x110000xxxxxxxxxx
+                                                             frinti.  */
+                                                          return 820;
+                                                        }
                                                     }
                                                 }
                                             }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 3) & 0x1) == 0)
+                                            {
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxx11110xx1xxxxxxx1000xxxxx00xxx
+                                                     fcmp.  */
+                                                  return 791;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxx11110xx1xxxxxxx1000xxxxx10xxx
+                                                     fcmpe.  */
+                                                  return 793;
+                                                }
+                                            }
                                           else
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 4) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100110xxxxx1xx011100xx
-                                                         smax.  */
-                                                      return 273;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100110xxxxx1xx011101xx
-                                                         umax.  */
-                                                      return 325;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxx11110xx1xxxxxxx1000xxxxx01xxx
+                                                     fcmp.  */
+                                                  return 795;
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx100111xxxxx1x0011100xx
-                                                             fcmeq.  */
-                                                          return 293;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx100111xxxxx1x0011101xx
-                                                             fcmge.  */
-                                                          return 342;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100111xxxxx1x101110xxx
-                                                         fcmgt.  */
-                                                      return 356;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxx11110xx1xxxxxxx1000xxxxx11xxx
+                                                     fcmpe.  */
+                                                  return 797;
+                                                }
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 30) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             x0x11110xx1xxxxxxxx100xxxxxxxxxx
+                                             fmov.  */
+                                          return 848;
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1x11110xx1xxxxxx00100xxxxxxxxxx
+                                                     sqdmlal.  */
+                                                  return 416;
                                                 }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1x11110xx1xxxxxx10100xxxxxxxxxx
+                                                     sqdmull.  */
+                                                  return 418;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x1x11110xx1xxxxxxx1100xxxxxxxxxx
+                                                 sqdmlsl.  */
+                                              return 417;
                                             }
                                         }
                                     }
-                                  else
+                                }
+                              else
+                                {
+                                  if (((word >> 12) & 0x1) == 0)
                                     {
                                       if (((word >> 13) & 0x1) == 0)
                                         {
@@ -16433,40 +16686,51 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 30) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx101000xxxxx1xx011100xx
-                                                         srhadd.  */
-                                                      return 264;
+                                                         x0x11110xx1xxxxx000010xxxxxxxxxx
+                                                         fmul.  */
+                                                      return 822;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx101000xxxxx1xx011101xx
-                                                         urhadd.  */
-                                                      return 316;
+                                                         x1x11110xx1xxxxx000010xxxxxxxxxx
+                                                         sha1h.  */
+                                                      return 669;
                                                     }
                                                 }
                                               else
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101001xxxxx1xx011100xx
-                                                         mla.  */
-                                                      return 279;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0011110xx1xxxxx100010xxxxxxxxxx
+                                                             fnmul.  */
+                                                          return 838;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1011110xx1xxxxx100010xxxxxxxxxx
+                                                             cmgt.  */
+                                                          return 476;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx101001xxxxx1xx011101xx
-                                                         mls.  */
-                                                      return 331;
+                                                         xx111110xx1xxxxx100010xxxxxxxxxx
+                                                         cmge.  */
+                                                      return 505;
                                                     }
                                                 }
                                             }
@@ -16476,255 +16740,332 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101010xxxxx1xx011100xx
-                                                         srshl.  */
-                                                      return 271;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0011110xx1xxxxx010010xxxxxxxxxx
+                                                             fmax.  */
+                                                          return 830;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1011110xx1xxxxx010010xxxxxxxxxx
+                                                             sqxtn.  */
+                                                          return 480;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx101010xxxxx1xx011101xx
-                                                         urshl.  */
-                                                      return 323;
+                                                         xx111110xx1xxxxx010010xxxxxxxxxx
+                                                         uqxtn.  */
+                                                      return 509;
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 16) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101011xxxxx1x0011100xx
-                                                             fadd.  */
-                                                          return 289;
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx011110xx100xx0110010xxxxxxxxxx
+                                                                     fcmgt.  */
+                                                                  return 489;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx111110xx100xx0110010xxxxxxxxxx
+                                                                     fcmge.  */
+                                                                  return 519;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0111100x110xx0110010xxxxxxxxxx
+                                                                         fmaxnmp.  */
+                                                                      return 533;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1111100x110xx0110010xxxxxxxxxx
+                                                                         fmaxnmp.  */
+                                                                      return 532;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0111101x110xx0110010xxxxxxxxxx
+                                                                         fminnmp.  */
+                                                                      return 539;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1111101x110xx0110010xxxxxxxxxx
+                                                                         fminnmp.  */
+                                                                      return 538;
+                                                                    }
+                                                                }
+                                                            }
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101011xxxxx1x0011101xx
-                                                             faddp.  */
-                                                          return 338;
+                                                          if (((word >> 29) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx011110xx1x1xx0110010xxxxxxxxxx
+                                                                 fcmgt.  */
+                                                              return 490;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx111110xx1x1xx0110010xxxxxxxxxx
+                                                                 fcmge.  */
+                                                              return 520;
+                                                            }
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101011xxxxx1x1011100xx
-                                                             fsub.  */
-                                                          return 305;
+                                                          if (((word >> 29) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx011110xx1x0xx1110010xxxxxxxxxx
+                                                                 fcvtas.  */
+                                                              return 485;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx111110xx1x0xx1110010xxxxxxxxxx
+                                                                 fcvtau.  */
+                                                              return 515;
+                                                            }
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101011xxxxx1x1011101xx
-                                                             fabd.  */
-                                                          return 354;
+                                                          if (((word >> 29) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx011110xx1x1xx1110010xxxxxxxxxx
+                                                                 fcvtas.  */
+                                                              return 486;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx111110xx1x1xx1110010xxxxxxxxxx
+                                                                 fcvtau.  */
+                                                              return 516;
+                                                            }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                       else
-                                        {
-                                          if (((word >> 14) & 0x1) == 0)
-                                            {
-                                              if (((word >> 15) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101100xxxxx1xx011100xx
-                                                         cmgt.  */
-                                                      return 267;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101100xxxxx1xx011101xx
-                                                         cmhi.  */
-                                                      return 319;
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101101xxxxx1xx011100xx
-                                                         sqdmulh.  */
-                                                      return 283;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101101xxxxx1xx011101xx
-                                                         sqrdmulh.  */
-                                                      return 335;
-                                                    }
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 15) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101110xxxxx1xx011100xx
-                                                         sabd.  */
-                                                      return 275;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101110xxxxx1xx011101xx
-                                                         uabd.  */
-                                                      return 327;
-                                                    }
-                                                }
-                                              else
+                                        {
+                                          if (((word >> 14) & 0x1) == 0)
+                                            {
+                                              if (((word >> 15) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 30) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx101111xxxxx1x0011100xx
-                                                             fmax.  */
-                                                          return 295;
+                                                             x0011110xx1xxxxx001010xxxxxxxxxx
+                                                             fadd.  */
+                                                          return 826;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx101111xxxxx1x0011101xx
-                                                             fmaxp.  */
-                                                          return 346;
+                                                             x1011110xx1xxxxx001010xxxxxxxxxx
+                                                             sha256su0.  */
+                                                          return 671;
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx111110xx1xxxxx001010xxxxxxxxxx
+                                                         sqxtun.  */
+                                                      return 508;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 16) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxx11110xx1xxxx0101010xxxxxxxxxx
+                                                         cmlt.  */
+                                                      return 478;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101111xxxxx1x1011100xx
-                                                             fmin.  */
-                                                          return 307;
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111100x1x0xx1101010xxxxxxxxxx
+                                                                     fcvtns.  */
+                                                                  return 481;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111100x1x0xx1101010xxxxxxxxxx
+                                                                     fcvtnu.  */
+                                                                  return 511;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111101x1x0xx1101010xxxxxxxxxx
+                                                                     fcvtps.  */
+                                                                  return 495;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111101x1x0xx1101010xxxxxxxxxx
+                                                                     fcvtpu.  */
+                                                                  return 523;
+                                                                }
+                                                            }
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101111xxxxx1x1011101xx
-                                                             fminp.  */
-                                                          return 360;
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111100x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtns.  */
+                                                                  return 482;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111100x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtnu.  */
+                                                                  return 512;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111101x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtps.  */
+                                                                  return 496;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111101x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtpu.  */
+                                                                  return 524;
+                                                                }
+                                                            }
                                                         }
                                                     }
                                                 }
                                             }
-                                        }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 29) & 0x1) == 0)
-                                    {
-                                      if (((word >> 30) & 0x1) == 0)
-                                        {
-                                          if (((word >> 4) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxx0xxxxx10xxxxxxxxx1xx0111100x
-                                                 fccmp.  */
-                                              return 787;
-                                            }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxx1xxxxx10xxxxxxxxx1xx0111100x
-                                                 fccmpe.  */
-                                              return 789;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 12) & 0x1) == 0)
-                                            {
-                                              if (((word >> 13) & 0x1) == 0)
+                                              if (((word >> 15) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 14) & 0x1) == 0)
+                                                  if (((word >> 29) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10000xxxxxx1xx0111101x
-                                                         add.  */
-                                                      return 559;
+                                                         xx011110xx1xxxxx011010xxxxxxxxxx
+                                                         fmaxnm.  */
+                                                      return 834;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10001xxxxxx1xx0111101x
-                                                         sshl.  */
-                                                      return 557;
+                                                         xx111110xx1xxxxx011010xxxxxxxxxx
+                                                         fcvtxn.  */
+                                                      return 510;
                                                     }
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1001xxxxxxx1xx0111101x
-                                                     fcmeq.  */
-                                                  return 549;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 13) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1010xxxxxxx1xx0111101x
-                                                     srshl.  */
-                                                  return 558;
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 15) & 0x1) == 0)
+                                                  if (((word >> 19) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1011x0xxxxx1xx0111101x
-                                                         cmgt.  */
-                                                      return 555;
+                                                         xxx11110xx1x0xxx111010xxxxxxxxxx
+                                                         fcmlt.  */
+                                                      return 493;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1011x1xxxxx1xx0111101x
-                                                         sqdmulh.  */
-                                                      return 546;
+                                                         xxx11110xx1x1xxx111010xxxxxxxxxx
+                                                         fcmlt.  */
+                                                      return 494;
                                                     }
                                                 }
                                             }
@@ -16732,118 +17073,27 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     }
                                   else
                                     {
-                                      if (((word >> 12) & 0x1) == 0)
-                                        {
-                                          if (((word >> 13) & 0x1) == 0)
-                                            {
-                                              if (((word >> 14) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx10000xxxxxx1xx011111xx
-                                                     sub.  */
-                                                  return 580;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx10001xxxxxx1xx011111xx
-                                                     ushl.  */
-                                                  return 578;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1001xxxxxxx1x0011111xx
-                                                     fcmge.  */
-                                                  return 566;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1001xxxxxxx1x1011111xx
-                                                     fcmgt.  */
-                                                  return 572;
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 13) & 0x1) == 0)
-                                            {
-                                              if (((word >> 15) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1010x0xxxxx1xx011111xx
-                                                     urshl.  */
-                                                  return 579;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1010x1xxxxx1xx011111xx
-                                                     fabd.  */
-                                                  return 570;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 15) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1011x0xxxxx1xx011111xx
-                                                     cmhi.  */
-                                                  return 576;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1011x1xxxxx1xx011111xx
-                                                     sqrdmulh.  */
-                                                  return 565;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                            }
-                          else
-                            {
-                              if (((word >> 28) & 0x1) == 0)
-                                {
-                                  if (((word >> 12) & 0x1) == 0)
-                                    {
                                       if (((word >> 13) & 0x1) == 0)
                                         {
                                           if (((word >> 14) & 0x1) == 0)
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 30) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110000xxxxx1xx011100xx
-                                                         sqadd.  */
-                                                      return 263;
+                                                         x0x11110xx1xxxxx000110xxxxxxxxxx
+                                                         fdiv.  */
+                                                      return 824;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110000xxxxx1xx011101xx
-                                                         uqadd.  */
-                                                      return 315;
+                                                         x1x11110xx1xxxxx000110xxxxxxxxxx
+                                                         sha1su1.  */
+                                                      return 670;
                                                     }
                                                 }
                                               else
@@ -16852,17 +17102,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110001xxxxx1xx011100xx
-                                                         cmtst.  */
-                                                      return 278;
+                                                         xx011110xx1xxxxx100110xxxxxxxxxx
+                                                         cmeq.  */
+                                                      return 477;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110001xxxxx1xx011101xx
-                                                         cmeq.  */
-                                                      return 330;
+                                                         xx111110xx1xxxxx100110xxxxxxxxxx
+                                                         cmle.  */
+                                                      return 506;
                                                     }
                                                 }
                                             }
@@ -16870,40 +17120,161 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110010xxxxx1xx011100xx
-                                                         sqshl.  */
-                                                      return 270;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110010xxxxx1xx011101xx
-                                                         uqshl.  */
-                                                      return 322;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxx11110xx1xxxxx010110xxxxxxxxxx
+                                                     fmin.  */
+                                                  return 832;
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 16) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110011xxxxx1x001110xxx
-                                                         fmla.  */
-                                                      return 287;
+                                                      if (((word >> 19) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx011110xx100xx0110110xxxxxxxxxx
+                                                                     fcmeq.  */
+                                                                  return 491;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx111110xx100xx0110110xxxxxxxxxx
+                                                                     fcmle.  */
+                                                                  return 521;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx011110xx110xx0110110xxxxxxxxxx
+                                                                     faddp.  */
+                                                                  return 535;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx111110xx110xx0110110xxxxxxxxxx
+                                                                     faddp.  */
+                                                                  return 534;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 29) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx011110xx1x1xx0110110xxxxxxxxxx
+                                                                 fcmeq.  */
+                                                              return 492;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx111110xx1x1xx0110110xxxxxxxxxx
+                                                                 fcmle.  */
+                                                              return 522;
+                                                            }
+                                                        }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110011xxxxx1x101110xxx
-                                                         fmls.  */
-                                                      return 303;
+                                                      if (((word >> 19) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111100x1x0xx1110110xxxxxxxxxx
+                                                                     scvtf.  */
+                                                                  return 487;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111100x1x0xx1110110xxxxxxxxxx
+                                                                     ucvtf.  */
+                                                                  return 517;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111101x1x0xx1110110xxxxxxxxxx
+                                                                     frecpe.  */
+                                                                  return 499;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111101x1x0xx1110110xxxxxxxxxx
+                                                                     frsqrte.  */
+                                                                  return 527;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111100x1x1xx1110110xxxxxxxxxx
+                                                                     scvtf.  */
+                                                                  return 488;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111100x1x1xx1110110xxxxxxxxxx
+                                                                     ucvtf.  */
+                                                                  return 518;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111101x1x1xx1110110xxxxxxxxxx
+                                                                     frecpe.  */
+                                                                  return 500;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111101x1x1xx1110110xxxxxxxxxx
+                                                                     frsqrte.  */
+                                                                  return 528;
+                                                                }
+                                                            }
+                                                        }
                                                     }
                                                 }
                                             }
@@ -16916,38 +17287,148 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110100xxxxx1xx011100xx
-                                                         sqsub.  */
-                                                      return 266;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0011110xx1xxxxx001110xxxxxxxxxx
+                                                             fsub.  */
+                                                          return 828;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1011110xx1xxxxx001110xxxxxxxxxx
+                                                             suqadd.  */
+                                                          return 474;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110100xxxxx1xx011101xx
-                                                         uqsub.  */
-                                                      return 318;
+                                                         xx111110xx1xxxxx001110xxxxxxxxxx
+                                                         usqadd.  */
+                                                      return 503;
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 16) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110101xxxxx1xx011100xx
-                                                         sminp.  */
-                                                      return 282;
+                                                      if (((word >> 29) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx011110xx1xxxx0101110xxxxxxxxxx
+                                                             abs.  */
+                                                          return 479;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx111110xx1xxxx0101110xxxxxxxxxx
+                                                             neg.  */
+                                                          return 507;
+                                                        }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110101xxxxx1xx011101xx
-                                                         uminp.  */
-                                                      return 334;
+                                                      if (((word >> 19) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0111100x100xx1101110xxxxxxxxxx
+                                                                         fcvtms.  */
+                                                                      return 483;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1111100x100xx1101110xxxxxxxxxx
+                                                                         fcvtmu.  */
+                                                                      return 513;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0111101x100xx1101110xxxxxxxxxx
+                                                                         fcvtzs.  */
+                                                                      return 497;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1111101x100xx1101110xxxxxxxxxx
+                                                                         fcvtzu.  */
+                                                                      return 525;
+                                                                    }
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx110xx1101110xxxxxxxxxx
+                                                                 addp.  */
+                                                              return 531;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111100x1x1xx1101110xxxxxxxxxx
+                                                                     fcvtms.  */
+                                                                  return 484;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111100x1x1xx1101110xxxxxxxxxx
+                                                                     fcvtmu.  */
+                                                                  return 514;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111101x1x1xx1101110xxxxxxxxxx
+                                                                     fcvtzs.  */
+                                                                  return 498;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111101x1x1xx1101110xxxxxxxxxx
+                                                                     fcvtzu.  */
+                                                                  return 526;
+                                                                }
+                                                            }
+                                                        }
                                                     }
                                                 }
                                             }
@@ -16957,52 +17438,35 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110110xxxxx1xx011100xx
-                                                         smin.  */
-                                                      return 274;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0011110xx1xxxxx011110xxxxxxxxxx
+                                                             fminnm.  */
+                                                          return 836;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1011110xx1xxxxx011110xxxxxxxxxx
+                                                             sqabs.  */
+                                                          return 475;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110110xxxxx1xx011101xx
-                                                         umin.  */
-                                                      return 326;
+                                                         xx111110xx1xxxxx011110xxxxxxxxxx
+                                                         sqneg.  */
+                                                      return 504;
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110111xxxxx1x001110xxx
-                                                         facge.  */
-                                                      return 344;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110111xxxxx1x101110xxx
-                                                         facgt.  */
-                                                      return 358;
-                                                    }
-                                                }
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 13) & 0x1) == 0)
-                                        {
-                                          if (((word >> 14) & 0x1) == 0)
-                                            {
-                                              if (((word >> 15) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 22) & 0x1) == 0)
+                                                  if (((word >> 16) & 0x1) == 0)
                                                     {
                                                       if (((word >> 23) & 0x1) == 0)
                                                         {
@@ -17010,17 +17474,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx100011100xx
-                                                                 and.  */
-                                                              return 299;
+                                                                 xx0111100x1xxxx0111110xxxxxxxxxx
+                                                                 fmaxp.  */
+                                                              return 537;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx100011101xx
-                                                                 eor.  */
-                                                              return 350;
+                                                                 xx1111100x1xxxx0111110xxxxxxxxxx
+                                                                 fmaxp.  */
+                                                              return 536;
                                                             }
                                                         }
                                                       else
@@ -17029,206 +17493,215 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx101011100xx
-                                                                 orr.  */
-                                                              return 311;
+                                                                 xx0111101x1xxxx0111110xxxxxxxxxx
+                                                                 fminp.  */
+                                                              return 541;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx101011101xx
-                                                                 bit.  */
-                                                              return 362;
+                                                                 xx1111101x1xxxx0111110xxxxxxxxxx
+                                                                 fminp.  */
+                                                              return 540;
                                                             }
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx110011100xx
-                                                                 bic.  */
-                                                              return 300;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx110011101xx
-                                                                 bsl.  */
-                                                              return 351;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xxx11110xx1x0xx1111110xxxxxxxxxx
+                                                             frecpx.  */
+                                                          return 501;
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx111011100xx
-                                                                 orn.  */
-                                                              return 313;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx111011101xx
-                                                                 bif.  */
-                                                              return 363;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xxx11110xx1x1xx1111110xxxxxxxxxx
+                                                             frecpx.  */
+                                                          return 502;
                                                         }
                                                     }
                                                 }
-                                              else
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                          else
+                            {
+                              if (((word >> 11) & 0x1) == 0)
+                                {
+                                  if (((word >> 29) & 0x1) == 0)
+                                    {
+                                      if (((word >> 30) & 0x1) == 0)
+                                        {
+                                          if (((word >> 4) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x0011110xx1xxxxxxxxx01xxxxx0xxxx
+                                                 fccmp.  */
+                                              return 787;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x0011110xx1xxxxxxxxx01xxxxx1xxxx
+                                                 fccmpe.  */
+                                              return 789;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 12) & 0x1) == 0)
+                                            {
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx111001xxxxx1xx011100xx
-                                                         mul.  */
-                                                      return 280;
+                                                         x1011110xx1xxxxxx00001xxxxxxxxxx
+                                                         add.  */
+                                                      return 559;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx111001xxxxx1xx011101xx
-                                                         pmul.  */
-                                                      return 332;
+                                                         x1011110xx1xxxxxx10001xxxxxxxxxx
+                                                         sshl.  */
+                                                      return 557;
                                                     }
                                                 }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1011110xx1xxxxxxx1001xxxxxxxxxx
+                                                     fcmeq.  */
+                                                  return 549;
+                                                }
                                             }
                                           else
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx111010xxxxx1xx011100xx
-                                                         sqrshl.  */
-                                                      return 272;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx111010xxxxx1xx011101xx
-                                                         uqrshl.  */
-                                                      return 324;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1011110xx1xxxxxxx0101xxxxxxxxxx
+                                                     srshl.  */
+                                                  return 558;
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 15) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx111011xxxxx1xx011100xx
-                                                         fmulx.  */
-                                                      return 291;
+                                                         x1011110xx1xxxxx0x1101xxxxxxxxxx
+                                                         cmgt.  */
+                                                      return 555;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx111011xxxxx1xx011101xx
-                                                         fmul.  */
-                                                      return 340;
+                                                         x1011110xx1xxxxx1x1101xxxxxxxxxx
+                                                         sqdmulh.  */
+                                                      return 546;
                                                     }
                                                 }
                                             }
                                         }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 12) & 0x1) == 0)
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx111110xx1xxxxxx00001xxxxxxxxxx
+                                                     sub.  */
+                                                  return 580;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx111110xx1xxxxxx10001xxxxxxxxxx
+                                                     ushl.  */
+                                                  return 578;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx1111100x1xxxxxxx1001xxxxxxxxxx
+                                                     fcmge.  */
+                                                  return 566;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx1111101x1xxxxxxx1001xxxxxxxxxx
+                                                     fcmgt.  */
+                                                  return 572;
+                                                }
+                                            }
+                                        }
                                       else
                                         {
-                                          if (((word >> 14) & 0x1) == 0)
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx111100xxxxx1xx011100xx
-                                                         cmge.  */
-                                                      return 268;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx111100xxxxx1xx011101xx
-                                                         cmhs.  */
-                                                      return 320;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx111110xx1xxxxx0x0101xxxxxxxxxx
+                                                     urshl.  */
+                                                  return 579;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx111101xxxxx1xx01110xxx
-                                                     addp.  */
-                                                  return 284;
+                                                     xx111110xx1xxxxx1x0101xxxxxxxxxx
+                                                     fabd.  */
+                                                  return 570;
                                                 }
                                             }
                                           else
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx111110xxxxx1xx011100xx
-                                                         saba.  */
-                                                      return 276;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx111110xxxxx1xx011101xx
-                                                         uaba.  */
-                                                      return 328;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx111110xx1xxxxx0x1101xxxxxxxxxx
+                                                     cmhi.  */
+                                                  return 576;
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx111111xxxxx1x0011100xx
-                                                             frecps.  */
-                                                          return 297;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx111111xxxxx1x0011101xx
-                                                             fdiv.  */
-                                                          return 348;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx111111xxxxx1x101110xxx
-                                                         frsqrts.  */
-                                                      return 309;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx111110xx1xxxxx1x1101xxxxxxxxxx
+                                                     sqrdmulh.  */
+                                                  return 565;
                                                 }
                                             }
                                         }
@@ -17242,7 +17715,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx11xxxxxxxxx1xx0111100x
+                                             x0011110xx1xxxxxxxxx11xxxxxxxxxx
                                              fcsel.  */
                                           return 850;
                                         }
@@ -17258,7 +17731,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx110000xxxxx1xx0111101x
+                                                             x1011110xx1xxxxx000011xxxxxxxxxx
                                                              sqadd.  */
                                                           return 542;
                                                         }
@@ -17266,7 +17739,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx110001xxxxx1xx0111101x
+                                                             x1011110xx1xxxxx100011xxxxxxxxxx
                                                              cmtst.  */
                                                           return 560;
                                                         }
@@ -17275,7 +17748,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11001xxxxxx1xx0111101x
+                                                         x1011110xx1xxxxxx10011xxxxxxxxxx
                                                          sqshl.  */
                                                       return 544;
                                                     }
@@ -17284,7 +17757,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1101xxxxxxx1xx0111101x
+                                                     x1011110xx1xxxxxxx1011xxxxxxxxxx
                                                      sqsub.  */
                                                   return 543;
                                                 }
@@ -17297,7 +17770,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1110x0xxxxx1xx0111101x
+                                                         x1011110xx1xxxxx0x0111xxxxxxxxxx
                                                          sqrshl.  */
                                                       return 545;
                                                     }
@@ -17305,7 +17778,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1110x1xxxxx1xx0111101x
+                                                         x1011110xx1xxxxx1x0111xxxxxxxxxx
                                                          fmulx.  */
                                                       return 547;
                                                     }
@@ -17316,7 +17789,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11110xxxxxx1xx0111101x
+                                                         x1011110xx1xxxxxx01111xxxxxxxxxx
                                                          cmge.  */
                                                       return 556;
                                                     }
@@ -17326,7 +17799,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx11111xxxxxx1x00111101x
+                                                             x10111100x1xxxxxx11111xxxxxxxxxx
                                                              frecps.  */
                                                           return 551;
                                                         }
@@ -17334,7 +17807,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx11111xxxxxx1x10111101x
+                                                             x10111101x1xxxxxx11111xxxxxxxxxx
                                                              frsqrts.  */
                                                           return 553;
                                                         }
@@ -17355,7 +17828,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110000xxxxx1xx011111xx
+                                                         xx111110xx1xxxxx000011xxxxxxxxxx
                                                          uqadd.  */
                                                       return 561;
                                                     }
@@ -17363,7 +17836,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110001xxxxx1xx011111xx
+                                                         xx111110xx1xxxxx100011xxxxxxxxxx
                                                          cmeq.  */
                                                       return 581;
                                                     }
@@ -17372,7 +17845,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx11001xxxxxx1xx011111xx
+                                                     xx111110xx1xxxxxx10011xxxxxxxxxx
                                                      uqshl.  */
                                                   return 563;
                                                 }
@@ -17383,7 +17856,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx11010xxxxxx1xx011111xx
+                                                     xx111110xx1xxxxxx01011xxxxxxxxxx
                                                      uqsub.  */
                                                   return 562;
                                                 }
@@ -17393,7 +17866,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11011xxxxxx1x0011111xx
+                                                         xx1111100x1xxxxxx11011xxxxxxxxxx
                                                          facge.  */
                                                       return 568;
                                                     }
@@ -17401,7 +17874,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11011xxxxxx1x1011111xx
+                                                         xx1111101x1xxxxxx11011xxxxxxxxxx
                                                          facgt.  */
                                                       return 574;
                                                     }
@@ -17414,7 +17887,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1110xxxxxxx1xx011111xx
+                                                 xx111110xx1xxxxxxx0111xxxxxxxxxx
                                                  uqrshl.  */
                                               return 564;
                                             }
@@ -17422,7 +17895,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1111xxxxxxx1xx011111xx
+                                                 xx111110xx1xxxxxxx1111xxxxxxxxxx
                                                  cmhs.  */
                                               return 577;
                                             }
@@ -17447,19 +17920,63 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       if (((word >> 14) & 0x1) == 0)
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx0x0000xxxxxxxx11110xxx
-                                             mla.  */
-                                          return 117;
+                                          if (((word >> 29) & 0x1) == 0)
+                                            {
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0001111xxxxxxxx0000x0xxxxxxxxxx
+                                                     fmlal.  */
+                                                  return 2015;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1001111xxxxxxxx0000x0xxxxxxxxxx
+                                                     fmlal.  */
+                                                  return 2019;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xx101111xxxxxxxx0000x0xxxxxxxxxx
+                                                 mla.  */
+                                              return 117;
+                                            }
                                         }
                                       else
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx0x0010xxxxxxxx11110xxx
-                                             mls.  */
-                                          return 120;
+                                          if (((word >> 29) & 0x1) == 0)
+                                            {
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0001111xxxxxxxx0100x0xxxxxxxxxx
+                                                     fmlsl.  */
+                                                  return 2016;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1001111xxxxxxxx0100x0xxxxxxxxxx
+                                                     fmlsl.  */
+                                                  return 2020;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xx101111xxxxxxxx0100x0xxxxxxxxxx
+                                                 mls.  */
+                                              return 120;
+                                            }
                                         }
                                     }
                                   else
@@ -17472,7 +17989,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0100xxxxxxxx1111000x
+                                                     x0001111xxxxxxxx0010x0xxxxxxxxxx
                                                      smlal.  */
                                                   return 96;
                                                 }
@@ -17480,7 +17997,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0100xxxxxxxx1111001x
+                                                     x1001111xxxxxxxx0010x0xxxxxxxxxx
                                                      smlal2.  */
                                                   return 97;
                                                 }
@@ -17491,7 +18008,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0100xxxxxxxx1111010x
+                                                     x0101111xxxxxxxx0010x0xxxxxxxxxx
                                                      umlal.  */
                                                   return 118;
                                                 }
@@ -17499,7 +18016,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0100xxxxxxxx1111011x
+                                                     x1101111xxxxxxxx0010x0xxxxxxxxxx
                                                      umlal2.  */
                                                   return 119;
                                                 }
@@ -17513,7 +18030,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0110xxxxxxxx1111000x
+                                                     x0001111xxxxxxxx0110x0xxxxxxxxxx
                                                      smlsl.  */
                                                   return 100;
                                                 }
@@ -17521,7 +18038,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0110xxxxxxxx1111001x
+                                                     x1001111xxxxxxxx0110x0xxxxxxxxxx
                                                      smlsl2.  */
                                                   return 101;
                                                 }
@@ -17532,7 +18049,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0110xxxxxxxx1111010x
+                                                     x0101111xxxxxxxx0110x0xxxxxxxxxx
                                                      umlsl.  */
                                                   return 121;
                                                 }
@@ -17540,7 +18057,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0110xxxxxxxx1111011x
+                                                     x1101111xxxxxxxx0110x0xxxxxxxxxx
                                                      umlsl2.  */
                                                   return 122;
                                                 }
@@ -17560,7 +18077,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1000xxxxxxx0111100xx
+                                                     xx0011110xxxxxxx0001x0xxxxxxxxxx
                                                      fmla.  */
                                                   return 112;
                                                 }
@@ -17568,7 +18085,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1000xxxxxxx1111100xx
+                                                     xx0011111xxxxxxx0001x0xxxxxxxxxx
                                                      fmla.  */
                                                   return 111;
                                                 }
@@ -17579,7 +18096,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1010xxxxxxx0111100xx
+                                                     xx0011110xxxxxxx0101x0xxxxxxxxxx
                                                      fmls.  */
                                                   return 114;
                                                 }
@@ -17587,7 +18104,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1010xxxxxxx1111100xx
+                                                     xx0011111xxxxxxx0101x0xxxxxxxxxx
                                                      fmls.  */
                                                   return 113;
                                                 }
@@ -17601,7 +18118,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1100xxxxxxxx1111000x
+                                                     x0001111xxxxxxxx0011x0xxxxxxxxxx
                                                      sqdmlal.  */
                                                   return 98;
                                                 }
@@ -17609,7 +18126,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1100xxxxxxxx1111001x
+                                                     x1001111xxxxxxxx0011x0xxxxxxxxxx
                                                      sqdmlal2.  */
                                                   return 99;
                                                 }
@@ -17620,7 +18137,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1110xxxxxxxx1111000x
+                                                     x0001111xxxxxxxx0111x0xxxxxxxxxx
                                                      sqdmlsl.  */
                                                   return 102;
                                                 }
@@ -17628,7 +18145,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1110xxxxxxxx1111001x
+                                                     x1001111xxxxxxxx0111x0xxxxxxxxxx
                                                      sqdmlsl2.  */
                                                   return 103;
                                                 }
@@ -17639,7 +18156,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx0x1xx0xxxxxxxx111101xx
+                                         xx101111xxxxxxxx0xx1x0xxxxxxxxxx
                                          fcmla.  */
                                       return 129;
                                     }
@@ -17653,7 +18170,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx1x0xx0xxxxxxxx111100xx
+                                         xx001111xxxxxxxx0xx0x1xxxxxxxxxx
                                          movi.  */
                                       return 131;
                                     }
@@ -17661,7 +18178,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx1x0xx0xxxxxxxx111101xx
+                                         xx101111xxxxxxxx0xx0x1xxxxxxxxxx
                                          mvni.  */
                                       return 139;
                                     }
@@ -17672,7 +18189,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx1x1xx0xxxxxxxx111100xx
+                                         xx001111xxxxxxxx0xx1x1xxxxxxxxxx
                                          orr.  */
                                       return 132;
                                     }
@@ -17680,7 +18197,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx1x1xx0xxxxxxxx111101xx
+                                         xx101111xxxxxxxx0xx1x1xxxxxxxxxx
                                          bic.  */
                                       return 140;
                                     }
@@ -17697,7 +18214,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx0xxxxx0xx1111100x
+                                         x0011111xx0xxxxx0xxxxxxxxxxxxxxx
                                          fmadd.  */
                                       return 840;
                                     }
@@ -17705,7 +18222,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx0xxxxx1xx1111100x
+                                         x0011111xx1xxxxx0xxxxxxxxxxxxxxx
                                          fnmadd.  */
                                       return 844;
                                     }
@@ -17722,7 +18239,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0xx000xxxxxxx01111101x
+                                                     x10111110xxxxxxx000xx0xxxxxxxxxx
                                                      fmla.  */
                                                   return 425;
                                                 }
@@ -17730,7 +18247,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0xx000xxxxxxx11111101x
+                                                     x10111111xxxxxxx000xx0xxxxxxxxxx
                                                      fmla.  */
                                                   return 424;
                                                 }
@@ -17741,7 +18258,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0xx010xxxxxxx01111101x
+                                                     x10111110xxxxxxx010xx0xxxxxxxxxx
                                                      fmls.  */
                                                   return 427;
                                                 }
@@ -17749,7 +18266,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0xx010xxxxxxx11111101x
+                                                     x10111111xxxxxxx010xx0xxxxxxxxxx
                                                      fmls.  */
                                                   return 426;
                                                 }
@@ -17761,7 +18278,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0xx100xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx001xx0xxxxxxxxxx
                                                  sqdmlal.  */
                                               return 419;
                                             }
@@ -17769,7 +18286,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0xx110xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx011xx0xxxxxxxxxx
                                                  sqdmlsl.  */
                                               return 420;
                                             }
@@ -17783,7 +18300,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1x00x0xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx0x00x1xxxxxxxxxx
                                                  sshr.  */
                                               return 584;
                                             }
@@ -17791,7 +18308,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1x01x0xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx0x10x1xxxxxxxxxx
                                                  srshr.  */
                                               return 586;
                                             }
@@ -17804,7 +18321,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1x1000xxxxxxxx1111101x
+                                                     x1011111xxxxxxxx0001x1xxxxxxxxxx
                                                      ssra.  */
                                                   return 585;
                                                 }
@@ -17812,7 +18329,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1x1010xxxxxxxx1111101x
+                                                     x1011111xxxxxxxx0101x1xxxxxxxxxx
                                                      shl.  */
                                                   return 588;
                                                 }
@@ -17823,7 +18340,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1x1100xxxxxxxx1111101x
+                                                     x1011111xxxxxxxx0011x1xxxxxxxxxx
                                                      srsra.  */
                                                   return 587;
                                                 }
@@ -17831,7 +18348,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1x1110xxxxxxxx1111101x
+                                                     x1011111xxxxxxxx0111x1xxxxxxxxxx
                                                      sqshl.  */
                                                   return 589;
                                                 }
@@ -17850,7 +18367,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx0000xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0000xxxxxxxxxxxx
                                              ushr.  */
                                           return 596;
                                         }
@@ -17858,7 +18375,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx0010xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0100xxxxxxxxxxxx
                                              sri.  */
                                           return 600;
                                         }
@@ -17869,7 +18386,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx0100xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0010xxxxxxxxxxxx
                                              urshr.  */
                                           return 598;
                                         }
@@ -17877,7 +18394,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx0110xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0110xxxxxxxxxxxx
                                              sqshlu.  */
                                           return 602;
                                         }
@@ -17891,7 +18408,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx1000xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0001xxxxxxxxxxxx
                                              usra.  */
                                           return 597;
                                         }
@@ -17899,7 +18416,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx1010xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0101xxxxxxxxxxxx
                                              sli.  */
                                           return 601;
                                         }
@@ -17910,7 +18427,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx1100xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0011xxxxxxxxxxxx
                                              ursra.  */
                                           return 599;
                                         }
@@ -17918,7 +18435,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx1110xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0111xxxxxxxxxxxx
                                              uqshl.  */
                                           return 603;
                                         }
@@ -17931,76 +18448,87 @@ aarch64_opcode_lookup_1 (uint32_t word)
                     {
                       if (((word >> 28) & 0x1) == 0)
                         {
-                          if (((word >> 10) & 0x1) == 0)
+                          if (((word >> 14) & 0x1) == 0)
                             {
-                              if (((word >> 12) & 0x1) == 0)
+                              if (((word >> 10) & 0x1) == 0)
                                 {
-                                  if (((word >> 13) & 0x1) == 0)
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx0x0001xxxxxxxx11110xxx
-                                             mul.  */
-                                          return 104;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx0x0011xxxxxxxx11110xxx
-                                             sqdmulh.  */
-                                          return 109;
-                                        }
-                                    }
-                                  else
+                                  if (((word >> 12) & 0x1) == 0)
                                     {
-                                      if (((word >> 29) & 0x1) == 0)
+                                      if (((word >> 13) & 0x1) == 0)
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
+                                          if (((word >> 29) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0x01x1xxxxxxxx1111000x
-                                                 smull.  */
-                                              return 105;
+                                                 xx001111xxxxxxxx1000x0xxxxxxxxxx
+                                                 mul.  */
+                                              return 104;
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x01x1xxxxxxxx1111001x
-                                                 smull2.  */
-                                              return 106;
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0101111xxxxxxxx1000x0xxxxxxxxxx
+                                                     fmlal2.  */
+                                                  return 2017;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1101111xxxxxxxx1000x0xxxxxxxxxx
+                                                     fmlal2.  */
+                                                  return 2021;
+                                                }
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
+                                          if (((word >> 29) & 0x1) == 0)
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x01x1xxxxxxxx1111010x
-                                                 umull.  */
-                                              return 123;
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0001111xxxxxxxx1010x0xxxxxxxxxx
+                                                     smull.  */
+                                                  return 105;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1001111xxxxxxxx1010x0xxxxxxxxxx
+                                                     smull2.  */
+                                                  return 106;
+                                                }
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x01x1xxxxxxxx1111011x
-                                                 umull2.  */
-                                              return 124;
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0101111xxxxxxxx1010x0xxxxxxxxxx
+                                                     umull.  */
+                                                  return 123;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1101111xxxxxxxx1010x0xxxxxxxxxx
+                                                     umull2.  */
+                                                  return 124;
+                                                }
                                             }
                                         }
                                     }
-                                }
-                              else
-                                {
-                                  if (((word >> 13) & 0x1) == 0)
+                                  else
                                     {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      if (((word >> 13) & 0x1) == 0)
                                         {
                                           if (((word >> 23) & 0x1) == 0)
                                             {
@@ -18008,7 +18536,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1001xxxxxxx0111100xx
+                                                     xx0011110xxxxxxx1001x0xxxxxxxxxx
                                                      fmul.  */
                                                   return 116;
                                                 }
@@ -18016,7 +18544,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1001xxxxxxx0111101xx
+                                                     xx1011110xxxxxxx1001x0xxxxxxxxxx
                                                      fmulx.  */
                                                   return 126;
                                                 }
@@ -18027,7 +18555,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1001xxxxxxx1111100xx
+                                                     xx0011111xxxxxxx1001x0xxxxxxxxxx
                                                      fmul.  */
                                                   return 115;
                                                 }
@@ -18035,7 +18563,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1001xxxxxxx1111101xx
+                                                     xx1011111xxxxxxx1001x0xxxxxxxxxx
                                                      fmulx.  */
                                                   return 125;
                                                 }
@@ -18043,33 +18571,11 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         }
                                       else
                                         {
-                                          if (((word >> 29) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1011xxxxxxxx111100xx
-                                                 sqrdmulh.  */
-                                              return 110;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1011xxxxxxxx111101xx
-                                                 sqrdmlah.  */
-                                              return 127;
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
-                                        {
                                           if (((word >> 30) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1101xxxxxxxx11110x0x
+                                                 x0x01111xxxxxxxx1011x0xxxxxxxxxx
                                                  sqdmull.  */
                                               return 107;
                                             }
@@ -18077,27 +18583,16 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1101xxxxxxxx11110x1x
+                                                 x1x01111xxxxxxxx1011x0xxxxxxxxxx
                                                  sqdmull2.  */
                                               return 108;
                                             }
                                         }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx0x1111xxxxxxxx11110xxx
-                                             sqrdmlsh.  */
-                                          return 128;
-                                        }
                                     }
                                 }
-                            }
-                          else
-                            {
-                              if (((word >> 11) & 0x1) == 0)
+                              else
                                 {
-                                  if (((word >> 14) & 0x1) == 0)
+                                  if (((word >> 11) & 0x1) == 0)
                                     {
                                       if (((word >> 12) & 0x1) == 0)
                                         {
@@ -18105,7 +18600,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx100x01xxxxxxxx111100xx
+                                                 xx001111xxxxxxxx10x001xxxxxxxxxx
                                                  movi.  */
                                               return 133;
                                             }
@@ -18113,7 +18608,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx100x01xxxxxxxx111101xx
+                                                 xx101111xxxxxxxx10x001xxxxxxxxxx
                                                  mvni.  */
                                               return 141;
                                             }
@@ -18124,7 +18619,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx101x01xxxxxxxx111100xx
+                                                 xx001111xxxxxxxx10x101xxxxxxxxxx
                                                  orr.  */
                                               return 134;
                                             }
@@ -18132,7 +18627,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx101x01xxxxxxxx111101xx
+                                                 xx101111xxxxxxxx10x101xxxxxxxxxx
                                                  bic.  */
                                               return 142;
                                             }
@@ -18140,173 +18635,239 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     }
                                   else
                                     {
-                                      if (((word >> 13) & 0x1) == 0)
+                                      if (((word >> 12) & 0x1) == 0)
                                         {
                                           if (((word >> 29) & 0x1) == 0)
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx10x011xxxxxxxx111100xx
-                                                 movi.  */
-                                              return 135;
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0001111xxxxxxxx10x011xxxxxxxxxx
+                                                     rshrn.  */
+                                                  return 376;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1001111xxxxxxxx10x011xxxxxxxxxx
+                                                     rshrn2.  */
+                                                  return 377;
+                                                }
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx10x011xxxxxxxx111101xx
-                                                 mvni.  */
-                                              return 143;
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0101111xxxxxxxx10x011xxxxxxxxxx
+                                                     sqrshrun.  */
+                                                  return 400;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1101111xxxxxxxx10x011xxxxxxxxxx
+                                                     sqrshrun2.  */
+                                                  return 401;
+                                                }
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 12) & 0x1) == 0)
+                                          if (((word >> 29) & 0x1) == 0)
                                             {
-                                              if (((word >> 29) & 0x1) == 0)
+                                              if (((word >> 30) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx100111xxxxxxxx111100xx
-                                                     movi.  */
-                                                  return 136;
+                                                     x0001111xxxxxxxx10x111xxxxxxxxxx
+                                                     sqrshrn.  */
+                                                  return 380;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx100111xxxxxxxx111101xx
-                                                     movi.  */
-                                                  return 144;
+                                                     x1001111xxxxxxxx10x111xxxxxxxxxx
+                                                     sqrshrn2.  */
+                                                  return 381;
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 29) & 0x1) == 0)
+                                              if (((word >> 30) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx101111xxxxxxxx111100xx
-                                                     fmov.  */
-                                                  return 137;
+                                                     x0101111xxxxxxxx10x111xxxxxxxxxx
+                                                     uqrshrn.  */
+                                                  return 404;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx101111xxxxxxxx111101xx
-                                                     fmov.  */
-                                                  return 146;
+                                                     x1101111xxxxxxxx10x111xxxxxxxxxx
+                                                     uqrshrn2.  */
+                                                  return 405;
                                                 }
                                             }
                                         }
                                     }
                                 }
-                              else
+                            }
+                          else
+                            {
+                              if (((word >> 13) & 0x1) == 0)
                                 {
-                                  if (((word >> 12) & 0x1) == 0)
+                                  if (((word >> 10) & 0x1) == 0)
                                     {
-                                      if (((word >> 29) & 0x1) == 0)
+                                      if (((word >> 12) & 0x1) == 0)
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
+                                          if (((word >> 29) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx110xx1xxxxxxxx1111000x
-                                                 rshrn.  */
-                                              return 376;
+                                                 xx001111xxxxxxxx1100x0xxxxxxxxxx
+                                                 sqdmulh.  */
+                                              return 109;
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx110xx1xxxxxxxx1111001x
-                                                 rshrn2.  */
-                                              return 377;
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0101111xxxxxxxx1100x0xxxxxxxxxx
+                                                     fmlsl2.  */
+                                                  return 2018;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1101111xxxxxxxx1100x0xxxxxxxxxx
+                                                     fmlsl2.  */
+                                                  return 2022;
+                                                }
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
+                                          if (((word >> 29) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx110xx1xxxxxxxx1111010x
-                                                 sqrshrun.  */
-                                              return 400;
+                                                 xx001111xxxxxxxx1101x0xxxxxxxxxx
+                                                 sqrdmulh.  */
+                                              return 110;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx110xx1xxxxxxxx1111011x
-                                                 sqrshrun2.  */
-                                              return 401;
+                                                 xx101111xxxxxxxx1101x0xxxxxxxxxx
+                                                 sqrdmlah.  */
+                                              return 127;
                                             }
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 13) & 0x1) == 0)
+                                      if (((word >> 29) & 0x1) == 0)
                                         {
-                                          if (((word >> 29) & 0x1) == 0)
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xx001111xxxxxxxx110xx1xxxxxxxxxx
+                                             movi.  */
+                                          return 135;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xx101111xxxxxxxx110xx1xxxxxxxxxx
+                                             mvni.  */
+                                          return 143;
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 12) & 0x1) == 0)
+                                    {
+                                      if (((word >> 29) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xx001111xxxxxxxx1110xxxxxxxxxxxx
+                                             movi.  */
+                                          return 136;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xx101111xxxxxxxx1110xxxxxxxxxxxx
+                                             movi.  */
+                                          return 144;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 10) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxx01111xxxxxxxx1111x0xxxxxxxxxx
+                                             sqrdmlsh.  */
+                                          return 128;
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 11) & 0x1) == 0)
                                             {
-                                              if (((word >> 30) & 0x1) == 0)
+                                              if (((word >> 29) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1110x1xxxxxxxx1111000x
-                                                     sqrshrn.  */
-                                                  return 380;
+                                                     xx001111xxxxxxxx111101xxxxxxxxxx
+                                                     fmov.  */
+                                                  return 137;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1110x1xxxxxxxx1111001x
-                                                     sqrshrn2.  */
-                                                  return 381;
+                                                     xx101111xxxxxxxx111101xxxxxxxxxx
+                                                     fmov.  */
+                                                  return 146;
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 30) & 0x1) == 0)
+                                              if (((word >> 29) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1110x1xxxxxxxx1111010x
-                                                     uqrshrn.  */
-                                                  return 404;
+                                                     xx001111xxxxxxxx111111xxxxxxxxxx
+                                                     fmov.  */
+                                                  return 138;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1110x1xxxxxxxx1111011x
-                                                     uqrshrn2.  */
-                                                  return 405;
+                                                     xx101111xxxxxxxx111111xxxxxxxxxx
+                                                     fcvtzu.  */
+                                                  return 412;
                                                 }
                                             }
                                         }
-                                      else
-                                        {
-                                          if (((word >> 29) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx1111x1xxxxxxxx111100xx
-                                                 fmov.  */
-                                              return 138;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx1111x1xxxxxxxx111101xx
-                                                 fcvtzu.  */
-                                              return 412;
-                                            }
-                                        }
                                     }
                                 }
                             }
@@ -18321,7 +18882,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx1xxxxx0xx1111100x
+                                         x0011111xx0xxxxx1xxxxxxxxxxxxxxx
                                          fmsub.  */
                                       return 842;
                                     }
@@ -18329,7 +18890,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx1xxxxx1xx1111100x
+                                         x0011111xx1xxxxx1xxxxxxxxxxxxxxx
                                          fnmsub.  */
                                       return 846;
                                     }
@@ -18342,7 +18903,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx0x0xx1xxxxxxxx1111101x
+                                             x1011111xxxxxxxx1xx0x0xxxxxxxxxx
                                              sqdmulh.  */
                                           return 422;
                                         }
@@ -18356,7 +18917,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0x1001xxxxxxx01111101x
+                                                         x10111110xxxxxxx1001x0xxxxxxxxxx
                                                          fmul.  */
                                                       return 429;
                                                     }
@@ -18364,7 +18925,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0x1001xxxxxxx11111101x
+                                                         x10111111xxxxxxx1001x0xxxxxxxxxx
                                                          fmul.  */
                                                       return 428;
                                                     }
@@ -18373,7 +18934,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1011xxxxxxxx1111101x
+                                                     x1011111xxxxxxxx1101x0xxxxxxxxxx
                                                      sqrdmulh.  */
                                                   return 423;
                                                 }
@@ -18382,7 +18943,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0x11x1xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx1x11x0xxxxxxxxxx
                                                  sqdmull.  */
                                               return 421;
                                             }
@@ -18396,7 +18957,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx100xx1xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx1xx001xxxxxxxxxx
                                                  scvtf.  */
                                               return 592;
                                             }
@@ -18404,7 +18965,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx101xx1xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx1xx101xxxxxxxxxx
                                                  sqshrn.  */
                                               return 590;
                                             }
@@ -18415,7 +18976,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx11x0x1xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx1x0x11xxxxxxxxxx
                                                  sqrshrn.  */
                                               return 591;
                                             }
@@ -18423,7 +18984,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx11x1x1xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx1x1x11xxxxxxxxxx
                                                  fcvtzs.  */
                                               return 594;
                                             }
@@ -18443,7 +19004,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0xx001xxxxxxx0111111xx
+                                                 xx1111110xxxxxxx100xx0xxxxxxxxxx
                                                  fmulx.  */
                                               return 431;
                                             }
@@ -18451,7 +19012,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0xx001xxxxxxx1111111xx
+                                                 xx1111111xxxxxxx100xx0xxxxxxxxxx
                                                  fmulx.  */
                                               return 430;
                                             }
@@ -18460,7 +19021,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx0xx011xxxxxxxx111111xx
+                                             xx111111xxxxxxxx110xx0xxxxxxxxxx
                                              sqrdmlah.  */
                                           return 432;
                                         }
@@ -18469,7 +19030,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx0xx1x1xxxxxxxx111111xx
+                                         xx111111xxxxxxxx1x1xx0xxxxxxxxxx
                                          sqrdmlsh.  */
                                       return 433;
                                     }
@@ -18484,7 +19045,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1000x1xxxxxxxx111111xx
+                                                 xx111111xxxxxxxx1x0001xxxxxxxxxx
                                                  sqshrun.  */
                                               return 604;
                                             }
@@ -18492,7 +19053,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1001x1xxxxxxxx111111xx
+                                                 xx111111xxxxxxxx1x1001xxxxxxxxxx
                                                  ucvtf.  */
                                               return 608;
                                             }
@@ -18501,7 +19062,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx101xx1xxxxxxxx111111xx
+                                             xx111111xxxxxxxx1xx101xxxxxxxxxx
                                              uqshrn.  */
                                           return 606;
                                         }
@@ -18512,7 +19073,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx110xx1xxxxxxxx111111xx
+                                             xx111111xxxxxxxx1xx011xxxxxxxxxx
                                              sqrshrun.  */
                                           return 605;
                                         }
@@ -18522,7 +19083,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1110x1xxxxxxxx111111xx
+                                                 xx111111xxxxxxxx1x0111xxxxxxxxxx
                                                  uqrshrn.  */
                                               return 607;
                                             }
@@ -18530,7 +19091,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1111x1xxxxxxxx111111xx
+                                                 xx111111xxxxxxxx1x1111xxxxxxxxxx
                                                  fcvtzu.  */
                                               return 610;
                                             }
@@ -18576,7 +19137,8 @@ aarch64_find_next_opcode (const aarch64_
     case 1174: value = 1175; break;	/* dmb --> isb.  */
     case 1175: value = 1176; break;	/* isb --> sys.  */
     case 1176: value = 1181; break;	/* sys --> msr.  */
-    case 1181: return NULL;		/* msr --> NULL.  */
+    case 1181: value = 2023; break;	/* msr --> cfinv.  */
+    case 2023: return NULL;		/* cfinv --> NULL.  */
     case 1182: value = 1183; break;	/* sysl --> mrs.  */
     case 1183: return NULL;		/* mrs --> NULL.  */
     case 434: value = 435; break;	/* st4 --> st1.  */
@@ -18743,11 +19305,13 @@ aarch64_find_next_opcode (const aarch64_
     case 403: return NULL;		/* uqshrn2 --> NULL.  */
     case 136: value = 386; break;	/* movi --> scvtf.  */
     case 386: value = 387; break;	/* scvtf --> scvtf.  */
-    case 387: return NULL;		/* scvtf --> NULL.  */
+    case 387: value = 1989; break;	/* scvtf --> sdot.  */
+    case 1989: return NULL;		/* sdot --> NULL.  */
     case 144: value = 145; break;	/* movi --> movi.  */
     case 145: value = 410; break;	/* movi --> ucvtf.  */
     case 410: value = 411; break;	/* ucvtf --> ucvtf.  */
-    case 411: return NULL;		/* ucvtf --> NULL.  */
+    case 411: value = 1988; break;	/* ucvtf --> udot.  */
+    case 1988: return NULL;		/* udot --> NULL.  */
     case 138: value = 388; break;	/* fmov --> fcvtzs.  */
     case 388: value = 389; break;	/* fcvtzs --> fcvtzs.  */
     case 389: return NULL;		/* fcvtzs --> NULL.  */
@@ -19123,27 +19687,28 @@ aarch64_extract_operand (const aarch64_o
     case 26:
     case 27:
     case 28:
-    case 147:
-    case 148:
-    case 149:
-    case 150:
+    case 29:
     case 151:
     case 152:
     case 153:
     case 154:
     case 155:
     case 156:
-    case 169:
-    case 170:
-    case 171:
-    case 172:
+    case 157:
+    case 158:
+    case 159:
+    case 160:
     case 173:
     case 174:
     case 175:
     case 176:
     case 177:
+    case 178:
+    case 179:
+    case 180:
     case 181:
-    case 184:
+    case 185:
+    case 188:
       return aarch64_ext_regno (self, info, code, inst);
     case 8:
       return aarch64_ext_regrt_sysins (self, info, code, inst);
@@ -19155,23 +19720,23 @@ aarch64_extract_operand (const aarch64_o
       return aarch64_ext_reg_shifted (self, info, code, inst);
     case 19:
       return aarch64_ext_ft (self, info, code, inst);
-    case 29:
     case 30:
     case 31:
-      return aarch64_ext_reglane (self, info, code, inst);
     case 32:
-      return aarch64_ext_reglist (self, info, code, inst);
+    case 190:
+      return aarch64_ext_reglane (self, info, code, inst);
     case 33:
-      return aarch64_ext_ldst_reglist (self, info, code, inst);
+      return aarch64_ext_reglist (self, info, code, inst);
     case 34:
-      return aarch64_ext_ldst_reglist_r (self, info, code, inst);
+      return aarch64_ext_ldst_reglist (self, info, code, inst);
     case 35:
-      return aarch64_ext_ldst_elemlist (self, info, code, inst);
+      return aarch64_ext_ldst_reglist_r (self, info, code, inst);
     case 36:
+      return aarch64_ext_ldst_elemlist (self, info, code, inst);
     case 37:
     case 38:
-    case 48:
-    case 49:
+    case 39:
+    case 40:
     case 50:
     case 51:
     case 52:
@@ -19183,104 +19748,105 @@ aarch64_extract_operand (const aarch64_o
     case 58:
     case 59:
     case 60:
-    case 71:
-    case 72:
-    case 73:
+    case 61:
+    case 62:
+    case 63:
     case 74:
     case 75:
-    case 144:
-    case 146:
-    case 161:
-    case 162:
-    case 163:
-    case 164:
+    case 76:
+    case 77:
+    case 78:
+    case 148:
+    case 150:
     case 165:
     case 166:
     case 167:
     case 168:
+    case 169:
+    case 170:
+    case 171:
+    case 172:
       return aarch64_ext_imm (self, info, code, inst);
-    case 39:
-    case 40:
-      return aarch64_ext_advsimd_imm_shift (self, info, code, inst);
     case 41:
     case 42:
+      return aarch64_ext_advsimd_imm_shift (self, info, code, inst);
     case 43:
-      return aarch64_ext_advsimd_imm_modified (self, info, code, inst);
     case 44:
+    case 45:
+      return aarch64_ext_advsimd_imm_modified (self, info, code, inst);
+    case 46:
       return aarch64_ext_shll_imm (self, info, code, inst);
-    case 47:
-    case 135:
+    case 49:
+    case 139:
       return aarch64_ext_fpimm (self, info, code, inst);
-    case 61:
-    case 142:
+    case 64:
+    case 146:
       return aarch64_ext_limm (self, info, code, inst);
-    case 62:
+    case 65:
       return aarch64_ext_aimm (self, info, code, inst);
-    case 63:
-      return aarch64_ext_imm_half (self, info, code, inst);
-    case 64:
-      return aarch64_ext_fbits (self, info, code, inst);
     case 66:
+      return aarch64_ext_imm_half (self, info, code, inst);
     case 67:
-    case 140:
-      return aarch64_ext_imm_rotate2 (self, info, code, inst);
-    case 68:
-    case 139:
-      return aarch64_ext_imm_rotate1 (self, info, code, inst);
+      return aarch64_ext_fbits (self, info, code, inst);
     case 69:
     case 70:
+    case 144:
+      return aarch64_ext_imm_rotate2 (self, info, code, inst);
+    case 71:
+    case 143:
+      return aarch64_ext_imm_rotate1 (self, info, code, inst);
+    case 72:
+    case 73:
       return aarch64_ext_cond (self, info, code, inst);
-    case 76:
-    case 83:
-      return aarch64_ext_addr_simple (self, info, code, inst);
-    case 77:
-      return aarch64_ext_addr_regoff (self, info, code, inst);
-    case 78:
     case 79:
+    case 86:
+      return aarch64_ext_addr_simple (self, info, code, inst);
     case 80:
-      return aarch64_ext_addr_simm (self, info, code, inst);
+      return aarch64_ext_addr_regoff (self, info, code, inst);
     case 81:
-      return aarch64_ext_addr_simm10 (self, info, code, inst);
     case 82:
-      return aarch64_ext_addr_uimm12 (self, info, code, inst);
+    case 83:
+      return aarch64_ext_addr_simm (self, info, code, inst);
     case 84:
-      return aarch64_ext_simd_addr_post (self, info, code, inst);
+      return aarch64_ext_addr_simm10 (self, info, code, inst);
     case 85:
-      return aarch64_ext_sysreg (self, info, code, inst);
-    case 86:
-      return aarch64_ext_pstatefield (self, info, code, inst);
+      return aarch64_ext_addr_uimm12 (self, info, code, inst);
     case 87:
+      return aarch64_ext_addr_offset (self, info, code, inst);
     case 88:
+      return aarch64_ext_simd_addr_post (self, info, code, inst);
     case 89:
+      return aarch64_ext_sysreg (self, info, code, inst);
     case 90:
-      return aarch64_ext_sysins_op (self, info, code, inst);
+      return aarch64_ext_pstatefield (self, info, code, inst);
     case 91:
     case 92:
-      return aarch64_ext_barrier (self, info, code, inst);
     case 93:
-      return aarch64_ext_prfop (self, info, code, inst);
     case 94:
-      return aarch64_ext_hint (self, info, code, inst);
+      return aarch64_ext_sysins_op (self, info, code, inst);
     case 95:
-      return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst);
     case 96:
+      return aarch64_ext_barrier (self, info, code, inst);
     case 97:
+      return aarch64_ext_prfop (self, info, code, inst);
     case 98:
+      return aarch64_ext_hint (self, info, code, inst);
     case 99:
-      return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst);
+      return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst);
     case 100:
-      return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst);
     case 101:
-      return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst);
     case 102:
     case 103:
+      return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst);
     case 104:
+      return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst);
     case 105:
-      return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst);
+      return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst);
     case 106:
     case 107:
     case 108:
     case 109:
+      return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst);
     case 110:
     case 111:
     case 112:
@@ -19289,57 +19855,61 @@ aarch64_extract_operand (const aarch64_o
     case 115:
     case 116:
     case 117:
-      return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst);
     case 118:
     case 119:
     case 120:
     case 121:
+      return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst);
     case 122:
     case 123:
     case 124:
     case 125:
-      return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst);
     case 126:
     case 127:
     case 128:
     case 129:
-      return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst);
+      return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst);
     case 130:
-      return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst);
     case 131:
-      return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst);
     case 132:
-      return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst);
     case 133:
-      return aarch64_ext_sve_aimm (self, info, code, inst);
+      return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst);
     case 134:
-      return aarch64_ext_sve_asimm (self, info, code, inst);
+      return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst);
+    case 135:
+      return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst);
     case 136:
-      return aarch64_ext_sve_float_half_one (self, info, code, inst);
+      return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst);
     case 137:
-      return aarch64_ext_sve_float_half_two (self, info, code, inst);
+      return aarch64_ext_sve_aimm (self, info, code, inst);
     case 138:
-      return aarch64_ext_sve_float_zero_one (self, info, code, inst);
+      return aarch64_ext_sve_asimm (self, info, code, inst);
+    case 140:
+      return aarch64_ext_sve_float_half_one (self, info, code, inst);
     case 141:
+      return aarch64_ext_sve_float_half_two (self, info, code, inst);
+    case 142:
+      return aarch64_ext_sve_float_zero_one (self, info, code, inst);
+    case 145:
       return aarch64_ext_inv_limm (self, info, code, inst);
-    case 143:
+    case 147:
       return aarch64_ext_sve_limm_mov (self, info, code, inst);
-    case 145:
+    case 149:
       return aarch64_ext_sve_scale (self, info, code, inst);
-    case 157:
-    case 158:
+    case 161:
+    case 162:
       return aarch64_ext_sve_shlimm (self, info, code, inst);
-    case 159:
-    case 160:
+    case 163:
+    case 164:
       return aarch64_ext_sve_shrimm (self, info, code, inst);
-    case 178:
-    case 179:
-    case 180:
-      return aarch64_ext_sve_quad_index (self, info, code, inst);
     case 182:
-      return aarch64_ext_sve_index (self, info, code, inst);
     case 183:
-    case 185:
+    case 184:
+      return aarch64_ext_sve_quad_index (self, info, code, inst);
+    case 186:
+      return aarch64_ext_sve_index (self, info, code, inst);
+    case 187:
+    case 189:
       return aarch64_ext_sve_reglist (self, info, code, inst);
     default: assert (0); abort ();
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-dis.c ./opcodes/aarch64-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/aarch64-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* aarch64-dis.c -- AArch64 disassembler.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of the GNU opcodes library.
@@ -20,7 +20,7 @@
 
 #include "sysdep.h"
 #include "bfd_stdint.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "libiberty.h"
 #include "opintl.h"
 #include "aarch64-dis.h"
@@ -325,6 +325,26 @@ aarch64_ext_reglane (const aarch64_opera
 	  info->reglane.index = (unsigned) (value >> 1);
 	}
     }
+  else if (inst->opcode->iclass == dotproduct)
+    {
+      /* Need information in other operand(s) to help decoding.  */
+      info->qualifier = get_expected_qualifier (inst, info->idx);
+      switch (info->qualifier)
+	{
+	case AARCH64_OPND_QLF_S_4B:
+	  /* L:H */
+	  info->reglane.index = extract_fields (code, 0, 2, FLD_H, FLD_L);
+	  info->reglane.regno &= 0x1f;
+	  break;
+	default:
+	  return 0;
+	}
+    }
+  else if (inst->opcode->iclass == cryptosm3)
+    {
+      /* index for e.g. SM3TT2A <Vd>.4S, <Vn>.4S, <Vm>S[<imm2>].  */
+      info->reglane.index = extract_field (FLD_SM3_imm2, code, 0);
+    }
   else
     {
       /* Index only for e.g. SQDMLAL <Va><d>, <Vb><n>, <Vm>.<Ts>[<index>]
@@ -409,6 +429,9 @@ aarch64_ext_ldst_reglist (const aarch64_
   info->reglist.first_regno = extract_field (FLD_Rt, code, 0);
   /* opcode */
   value = extract_field (FLD_opcode, code, 0);
+  /* PR 21595: Check for a bogus value.  */
+  if (value >= ARRAY_SIZE (data))
+    return 0;
   if (expected_num != data[value].num_elements || data[value].is_reserved)
     return 0;
   info->reglist.num_regs = data[value].num_regs;
@@ -919,6 +942,28 @@ aarch64_ext_addr_simple (const aarch64_o
 }
 
 /* Decode the address operand for e.g.
+     stlur <Xt>, [<Xn|SP>{, <amount>}].  */
+int
+aarch64_ext_addr_offset (const aarch64_operand *self ATTRIBUTE_UNUSED,
+			 aarch64_opnd_info *info,
+			 aarch64_insn code, const aarch64_inst *inst)
+{
+  info->qualifier = get_expected_qualifier (inst, info->idx);
+
+  /* Rn */
+  info->addr.base_regno = extract_field (self->fields[0], code, 0);
+
+  /* simm9 */
+  aarch64_insn imm = extract_fields (code, 0, 1, self->fields[1]);
+  info->addr.offset.imm = sign_extend (imm, 8);
+  if (extract_field (self->fields[2], code, 0) == 1) {
+    info->addr.writeback = 1;
+    info->addr.preind = 1;
+  }
+  return 1;
+}
+
+/* Decode the address operand for e.g.
      STR <Qt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}].  */
 int
 aarch64_ext_addr_regoff (const aarch64_operand *self ATTRIBUTE_UNUSED,
@@ -2339,7 +2384,7 @@ convert_movewide_to_mov (aarch64_inst *i
       int is32 = inst->operands[0].qualifier == AARCH64_OPND_QLF_W;
       value = ~value;
       /* A MOVN has an immediate that could be encoded by MOVZ.  */
-      if (aarch64_wide_constant_p (value, is32, NULL) == TRUE)
+      if (aarch64_wide_constant_p (value, is32, NULL))
 	return 0;
     }
   inst->operands[1].imm.value = value;
@@ -2372,8 +2417,8 @@ convert_movebitmask_to_mov (aarch64_inst
   /* ORR has an immediate that could be generated by a MOVZ or MOVN
      instruction.  */
   if (inst->operands[0].reg.regno != 0x1f
-      && (aarch64_wide_constant_p (value, is32, NULL) == TRUE
-	  || aarch64_wide_constant_p (~value, is32, NULL) == TRUE))
+      && (aarch64_wide_constant_p (value, is32, NULL)
+	  || aarch64_wide_constant_p (~value, is32, NULL)))
     return 0;
 
   inst->operands[2].type = AARCH64_OPND_NIL;
@@ -2494,7 +2539,7 @@ determine_disassembling_preference (stru
   opcode = inst->opcode;
 
   /* This opcode does not have an alias, so use itself.  */
-  if (opcode_has_alias (opcode) == FALSE)
+  if (!opcode_has_alias (opcode))
     return;
 
   alias = aarch64_find_alias_opcode (opcode);
@@ -3052,6 +3097,10 @@ get_sym_code_type (struct disassemble_in
   unsigned int type;
   const char *name;
 
+  /* If the symbol is in a different section, ignore it.  */
+  if (info->section != NULL && info->section != info->symtab[n]->section)
+    return FALSE;
+
   es = *(elf_symbol_type **)(info->symtab + n);
   type = ELF_ST_TYPE (es->internal_elf_sym.st_info);
 
@@ -3126,9 +3175,7 @@ print_insn_aarch64 (bfd_vma pc,
 	  addr = bfd_asymbol_value (info->symtab[n]);
 	  if (addr > pc)
 	    break;
-	  if ((info->section == NULL
-	       || info->section == info->symtab[n]->section)
-	      && get_sym_code_type (info, n, &type))
+	  if (get_sym_code_type (info, n, &type))
 	    {
 	      last_sym = n;
 	      found = TRUE;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-dis.h ./opcodes/aarch64-dis.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-dis.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/aarch64-dis.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* aarch64-dis.h -- Header file for aarch64-dis.c and aarch64-dis-2.c.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of the GNU opcodes library.
@@ -79,6 +79,7 @@ AARCH64_DECL_OPD_EXTRACTOR (ext_limm);
 AARCH64_DECL_OPD_EXTRACTOR (ext_inv_limm);
 AARCH64_DECL_OPD_EXTRACTOR (ext_ft);
 AARCH64_DECL_OPD_EXTRACTOR (ext_addr_simple);
+AARCH64_DECL_OPD_EXTRACTOR (ext_addr_offset);
 AARCH64_DECL_OPD_EXTRACTOR (ext_addr_regoff);
 AARCH64_DECL_OPD_EXTRACTOR (ext_addr_simm);
 AARCH64_DECL_OPD_EXTRACTOR (ext_addr_simm10);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-gen.c ./opcodes/aarch64-gen.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-gen.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/aarch64-gen.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,6 +1,6 @@
 /* aarch64-gen.c -- Generate tables and routines for opcode lookup and
    instruction encoding and decoding.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of the GNU opcodes library.
@@ -143,9 +143,9 @@ read_table (const struct aarch64_opcode*
       /* F_PSEUDO needs to be used together with F_ALIAS to indicate an alias
 	 opcode is a programmer friendly pseudo instruction available only in
 	 the assembly code (thus will not show up in the disassembly).  */
-      assert (pseudo_opcode_p (ent) == FALSE || alias_opcode_p (ent) == TRUE);
+      assert (!pseudo_opcode_p (ent) || alias_opcode_p (ent));
       /* Skip alias (inc. pseudo) opcode.  */
-      if (alias_opcode_p (ent) == TRUE)
+      if (alias_opcode_p (ent))
 	{
 	  index++;
 	  continue;
@@ -393,6 +393,9 @@ print_decision_tree_1 (unsigned int inde
 {
   /* PATTERN is only used to generate comment in the code.  */
   static char pattern[33] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
+  /* Low bits in PATTERN will be printed first which then look as the high
+     bits in comment.  We need to reverse the index to get correct print.  */
+  unsigned int msb = sizeof (pattern) - 2;
   assert (bittree != NULL);
 
   /* Leaf node located.  */
@@ -412,15 +415,15 @@ print_decision_tree_1 (unsigned int inde
   /* Walk down the decoder tree.  */
   indented_print (indent, "if (((word >> %d) & 0x1) == 0)\n", bittree->bitno);
   indented_print (indent, "  {\n");
-  pattern[bittree->bitno] = '0';
+  pattern[msb - bittree->bitno] = '0';
   print_decision_tree_1 (indent + 4, bittree->bits[0]);
   indented_print (indent, "  }\n");
   indented_print (indent, "else\n");
   indented_print (indent, "  {\n");
-  pattern[bittree->bitno] = '1';
+  pattern[msb - bittree->bitno] = '1';
   print_decision_tree_1 (indent + 4, bittree->bits[1]);
   indented_print (indent, "  }\n");
-  pattern[bittree->bitno] = 'x';
+  pattern[msb - bittree->bitno] = 'x';
 }
 
 /* Generate aarch64_opcode_lookup in C code to the standard output.  */
@@ -704,7 +707,7 @@ find_alias_opcode (const aarch64_opcode 
       /* The mask of an alias opcode must be equal to or a super-set (i.e.
 	 more constrained) of that of the aliased opcode; so is the base
 	 opcode value.  */
-      if (alias_opcode_p (ent) == TRUE
+      if (alias_opcode_p (ent)
 	  && (ent->mask & opcode->mask) == opcode->mask
 	  && (opcode->mask & ent->opcode) == (opcode->mask & opcode->opcode))
 	{
@@ -1241,7 +1244,7 @@ main (int argc, char **argv)
     print_divide_result (decoder_tree);
 
   printf ("/* This file is automatically generated by aarch64-gen.  Do not edit!  */\n");
-  printf ("/* Copyright (C) 2012-2017 Free Software Foundation, Inc.\n\
+  printf ("/* Copyright (C) 2012-2018 Free Software Foundation, Inc.\n\
    Contributed by ARM Ltd.\n\
 \n\
    This file is part of the GNU opcodes library.\n\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-opc-2.c ./opcodes/aarch64-opc-2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-opc-2.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/aarch64-opc-2.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* This file is automatically generated by aarch64-gen.  Do not edit!  */
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of the GNU opcodes library.
@@ -48,6 +48,7 @@ const struct aarch64_operand aarch64_ope
   {AARCH64_OPND_CLASS_SISD_REG, "Sd", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rd}, "a SIMD scalar register"},
   {AARCH64_OPND_CLASS_SISD_REG, "Sn", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn}, "a SIMD scalar register"},
   {AARCH64_OPND_CLASS_SISD_REG, "Sm", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rm}, "a SIMD scalar register"},
+  {AARCH64_OPND_CLASS_SIMD_REG, "Va", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Ra}, "a SIMD vector register"},
   {AARCH64_OPND_CLASS_SIMD_REG, "Vd", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rd}, "a SIMD vector register"},
   {AARCH64_OPND_CLASS_SIMD_REG, "Vn", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn}, "a SIMD vector register"},
   {AARCH64_OPND_CLASS_SIMD_REG, "Vm", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rm}, "a SIMD vector register"},
@@ -63,6 +64,7 @@ const struct aarch64_operand aarch64_ope
   {AARCH64_OPND_CLASS_IMMEDIATE, "CRn", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_CRn}, "a 4-bit opcode field named for historical reasons C0 - C15"},
   {AARCH64_OPND_CLASS_IMMEDIATE, "CRm", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_CRm}, "a 4-bit opcode field named for historical reasons C0 - C15"},
   {AARCH64_OPND_CLASS_IMMEDIATE, "IDX", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm4}, "an immediate as the index of the least significant byte"},
+  {AARCH64_OPND_CLASS_IMMEDIATE, "MASK", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm4_2}, "an immediate as the index of the least significant byte"},
   {AARCH64_OPND_CLASS_IMMEDIATE, "IMM_VLSL", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a left shift amount for an AdvSIMD register"},
   {AARCH64_OPND_CLASS_IMMEDIATE, "IMM_VLSR", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a right shift amount for an AdvSIMD register"},
   {AARCH64_OPND_CLASS_IMMEDIATE, "SIMD_IMM", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "an immediate"},
@@ -76,6 +78,7 @@ const struct aarch64_operand aarch64_ope
   {AARCH64_OPND_CLASS_IMMEDIATE, "IMMS", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm6}, "the leftmost bit number to be moved from the source"},
   {AARCH64_OPND_CLASS_IMMEDIATE, "WIDTH", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm6}, "the width of the bit-field"},
   {AARCH64_OPND_CLASS_IMMEDIATE, "IMM", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm6}, "an immediate"},
+  {AARCH64_OPND_CLASS_IMMEDIATE, "IMM_2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm6_2}, "an immediate"},
   {AARCH64_OPND_CLASS_IMMEDIATE, "UIMM3_OP1", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_op1}, "a 3-bit unsigned immediate"},
   {AARCH64_OPND_CLASS_IMMEDIATE, "UIMM3_OP2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_op2}, "a 3-bit unsigned immediate"},
   {AARCH64_OPND_CLASS_IMMEDIATE, "UIMM4", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_CRm}, "a 4-bit unsigned immediate"},
@@ -108,6 +111,7 @@ const struct aarch64_operand aarch64_ope
   {AARCH64_OPND_CLASS_ADDRESS, "ADDR_SIMM10", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_S_imm10,FLD_imm9,FLD_index}, "an address with 10-bit scaled, signed immediate offset"},
   {AARCH64_OPND_CLASS_ADDRESS, "ADDR_UIMM12", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_imm12}, "an address with scaled, unsigned immediate offset"},
   {AARCH64_OPND_CLASS_ADDRESS, "SIMD_ADDR_SIMPLE", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "an address with base register (no offset)"},
+  {AARCH64_OPND_CLASS_ADDRESS, "ADDR_OFFSET", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_imm9,FLD_index}, "an address with an optional 8-bit signed immediate offset"},
   {AARCH64_OPND_CLASS_ADDRESS, "SIMD_ADDR_POST", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a post-indexed address with immediate or register increment"},
   {AARCH64_OPND_CLASS_SYSTEM, "SYSREG", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a system register"},
   {AARCH64_OPND_CLASS_SYSTEM, "PSTATEFIELD", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a PSTATE field name"},
@@ -210,6 +214,7 @@ const struct aarch64_operand aarch64_ope
   {AARCH64_OPND_CLASS_SVE_REG, "SVE_ZnxN", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn}, "a list of SVE vector registers"},
   {AARCH64_OPND_CLASS_SVE_REG, "SVE_Zt", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zt}, "an SVE vector register"},
   {AARCH64_OPND_CLASS_SVE_REG, "SVE_ZtxN", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zt}, "a list of SVE vector registers"},
+  {AARCH64_OPND_CLASS_SIMD_ELEMENT, "SM3_IMM2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SM3_imm2}, "an indexed SM3 vector immediate"},
   {AARCH64_OPND_CLASS_NIL, "", 0, {0}, "DUMMY"},
 };
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-opc.c ./opcodes/aarch64-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/aarch64-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* aarch64-opc.c -- AArch64 opcode support.
-   Copyright (C) 2009-2017 Free Software Foundation, Inc.
+   Copyright (C) 2009-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of the GNU opcodes library.
@@ -240,7 +240,9 @@ const aarch64_field fields[] =
     { 22,  2 },	/* type: floating point type field in fp data inst.  */
     { 30,  2 },	/* ldst_size: size field in ld/st reg offset inst.  */
     { 10,  6 },	/* imm6: in add/sub reg shifted instructions.  */
+    { 15,  6 },	/* imm6_2: in rmif instructions.  */
     { 11,  4 },	/* imm4: in advsimd ext and advsimd ins instructions.  */
+    {  0,  4 },	/* imm4_2: in rmif instructions.  */
     { 16,  5 },	/* imm5: in conditional compare (immediate) instructions.  */
     { 15,  7 },	/* imm7: in load/store pair pre/post index instructions.  */
     { 13,  8 },	/* imm8: in floating-point scalar move immediate inst.  */
@@ -316,6 +318,7 @@ const aarch64_field fields[] =
     { 11,  2 }, /* rotate1: FCMLA immediate rotate.  */
     { 13,  2 }, /* rotate2: Indexed element FCMLA immediate rotate.  */
     { 12,  1 }, /* rotate3: FCADD immediate rotate.  */
+    { 12,  2 }, /* SM3: Indexed element SM3 2 bits index immediate.  */
 };
 
 enum aarch64_operand_class
@@ -695,7 +698,9 @@ struct operand_qualifier_data aarch64_op
   {4, 1, 0x2, "s", OQK_OPD_VARIANT},
   {8, 1, 0x3, "d", OQK_OPD_VARIANT},
   {16, 1, 0x4, "q", OQK_OPD_VARIANT},
+  {1, 4, 0x0, "4b", OQK_OPD_VARIANT},
 
+  {1, 4, 0x0, "4b", OQK_OPD_VARIANT},
   {1, 8, 0x0, "8b", OQK_OPD_VARIANT},
   {1, 16, 0x1, "16b", OQK_OPD_VARIANT},
   {2, 2, 0x0, "2h", OQK_OPD_VARIANT},
@@ -1204,10 +1209,10 @@ aarch64_logical_immediate_p (uint64_t va
   uint64_t upper;
   int i;
 
-  DEBUG_TRACE ("enter with 0x%" PRIx64 "(%" PRIi64 "), is32: %d", value,
-	       value, is32);
+  DEBUG_TRACE ("enter with 0x%" PRIx64 "(%" PRIi64 "), esize: %d", value,
+	       value, esize);
 
-  if (initialized == FALSE)
+  if (!initialized)
     {
       build_immediate_table ();
       initialized = TRUE;
@@ -1602,6 +1607,7 @@ operand_general_constraint_met_p (const 
 	      return 0;
 	    }
 	  break;
+	case AARCH64_OPND_ADDR_OFFSET:
 	case AARCH64_OPND_ADDR_SIMM9:
 	  /* Unscaled signed 9 bits immediate offset.  */
 	  if (!value_in_range_p (opnd->addr.offset.imm, -256, 255))
@@ -2113,7 +2119,7 @@ operand_general_constraint_met_p (const 
 	    uint64_t uimm = opnd->imm.value;
 	    if (opcode->op == OP_BIC)
 	      uimm = ~uimm;
-	    if (aarch64_logical_immediate_p (uimm, esize, NULL) == FALSE)
+	    if (!aarch64_logical_immediate_p (uimm, esize, NULL))
 	      {
 		set_other_error (mismatch_detail, idx,
 				 _("immediate out of range"));
@@ -2461,7 +2467,8 @@ operand_general_constraint_met_p (const 
 	     MSR PAN, #uimm4
 	     The immediate must be #0 or #1.  */
 	  if ((opnd->pstatefield == 0x03	/* UAO.  */
-	       || opnd->pstatefield == 0x04)	/* PAN.  */
+	       || opnd->pstatefield == 0x04	/* PAN.  */
+	       || opnd->pstatefield == 0x1a)	/* DIT.  */
 	      && opnds[1].imm.value > 1)
 	    {
 	      set_imm_out_of_range_error (mismatch_detail, idx, 0, 1);
@@ -2521,7 +2528,7 @@ operand_general_constraint_met_p (const 
       switch (type)
 	{
 	case AARCH64_OPND_Rm_EXT:
-	  if (aarch64_extend_operator_p (opnd->shifter.kind) == FALSE
+	  if (!aarch64_extend_operator_p (opnd->shifter.kind)
 	      && opnd->shifter.kind != AARCH64_MOD_LSL)
 	    {
 	      set_other_error (mismatch_detail, idx,
@@ -2573,7 +2580,7 @@ operand_general_constraint_met_p (const 
 	case AARCH64_OPND_Rm_SFT:
 	  /* ROR is not available to the shifted register operand in
 	     arithmetic instructions.  */
-	  if (aarch64_shift_operator_p (opnd->shifter.kind) == FALSE)
+	  if (!aarch64_shift_operator_p (opnd->shifter.kind))
 	    {
 	      set_other_error (mismatch_detail, idx,
 			       _("shift operator expected"));
@@ -2847,7 +2854,7 @@ typedef union
 static uint64_t
 expand_fp_imm (int size, uint32_t imm8)
 {
-  uint64_t imm;
+  uint64_t imm = 0;
   uint32_t imm8_7, imm8_6_0, imm8_6, imm8_6_repl4;
 
   imm8_7 = (imm8 >> 7) & 0x01;	/* imm8<7>   */
@@ -3050,7 +3057,7 @@ aarch64_print_operand (char *buf, size_t
     case AARCH64_OPND_PAIRREG:
     case AARCH64_OPND_SVE_Rm:
       /* The optional-ness of <Xt> in e.g. IC <ic_op>{, <Xt>} is determined by
-	 the <ic_op>, therefore we we use opnd->present to override the
+	 the <ic_op>, therefore we use opnd->present to override the
 	 generic optional-ness information.  */
       if (opnd->type == AARCH64_OPND_Rt_SYS)
 	{
@@ -3142,6 +3149,7 @@ aarch64_print_operand (char *buf, size_t
 		opnd->reg.regno);
       break;
 
+    case AARCH64_OPND_Va:
     case AARCH64_OPND_Vd:
     case AARCH64_OPND_Vn:
     case AARCH64_OPND_Vm:
@@ -3152,6 +3160,7 @@ aarch64_print_operand (char *buf, size_t
     case AARCH64_OPND_Ed:
     case AARCH64_OPND_En:
     case AARCH64_OPND_Em:
+    case AARCH64_OPND_SM3_IMM2:
       snprintf (buf, size, "v%d.%s[%" PRIi64 "]", opnd->reglane.regno,
 		aarch64_get_qualifier_name (opnd->qualifier),
 		opnd->reglane.index);
@@ -3222,7 +3231,9 @@ aarch64_print_operand (char *buf, size_t
       break;
 
     case AARCH64_OPND_IDX:
+    case AARCH64_OPND_MASK:
     case AARCH64_OPND_IMM:
+    case AARCH64_OPND_IMM_2:
     case AARCH64_OPND_WIDTH:
     case AARCH64_OPND_UIMM3_OP1:
     case AARCH64_OPND_UIMM3_OP2:
@@ -3499,6 +3510,7 @@ aarch64_print_operand (char *buf, size_t
     case AARCH64_OPND_ADDR_SIMM9:
     case AARCH64_OPND_ADDR_SIMM9_2:
     case AARCH64_OPND_ADDR_SIMM10:
+    case AARCH64_OPND_ADDR_OFFSET:
     case AARCH64_OPND_SVE_ADDR_RI_S4x16:
     case AARCH64_OPND_SVE_ADDR_RI_S4xVL:
     case AARCH64_OPND_SVE_ADDR_RI_S4x2xVL:
@@ -4022,6 +4034,18 @@ const aarch64_sys_reg aarch64_sys_regs [
   { "pmevtyper29_el0",   CPENC(3,3,C14,C15,5),	0 },
   { "pmevtyper30_el0",   CPENC(3,3,C14,C15,6),	0 },
   { "pmccfiltr_el0",     CPENC(3,3,C14,C15,7),	0 },
+
+  { "dit",		 CPEN_ (3, C2, 5), F_ARCHEXT },
+  { "vstcr_el2",	 CPENC(3, 4, C2, C6, 2), F_ARCHEXT },
+  { "vsttbr_el2",	 CPENC(3, 4, C2, C6, 0), F_ARCHEXT },
+  { "cnthvs_tval_el2",	 CPENC(3, 4, C14, C4, 0), F_ARCHEXT },
+  { "cnthvs_cval_el2",	 CPENC(3, 4, C14, C4, 2), F_ARCHEXT },
+  { "cnthvs_ctl_el2",	 CPENC(3, 4, C14, C4, 1), F_ARCHEXT },
+  { "cnthps_tval_el2",	 CPENC(3, 4, C14, C5, 0), F_ARCHEXT },
+  { "cnthps_cval_el2",	 CPENC(3, 4, C14, C5, 2), F_ARCHEXT },
+  { "cnthps_ctl_el2",	 CPENC(3, 4, C14, C5, 1), F_ARCHEXT },
+  { "sder32_el2",	 CPENC(3, 4, C1, C3, 1), F_ARCHEXT },
+  { "vncr_el2",		 CPENC(3, 4, C2, C2, 0), F_ARCHEXT },
   { 0,          CPENC(0,0,0,0,0),	0 },
 };
 
@@ -4159,9 +4183,87 @@ aarch64_sys_reg_supported_p (const aarch
       && !AARCH64_CPU_HAS_FEATURE (features, AARCH64_FEATURE_SVE))
     return FALSE;
 
+  /* ARMv8.4 features.  */
+
+  /* PSTATE.DIT.  */
+  if (reg->value == CPEN_ (3, C2, 5)
+      && !AARCH64_CPU_HAS_FEATURE (features, AARCH64_FEATURE_V8_4))
+    return FALSE;
+
+  /* Virtualization extensions.  */
+  if ((reg->value == CPENC(3, 4, C2, C6, 2)
+       || reg->value == CPENC(3, 4, C2, C6, 0)
+       || reg->value == CPENC(3, 4, C14, C4, 0)
+       || reg->value == CPENC(3, 4, C14, C4, 2)
+       || reg->value == CPENC(3, 4, C14, C4, 1)
+       || reg->value == CPENC(3, 4, C14, C5, 0)
+       || reg->value == CPENC(3, 4, C14, C5, 2)
+       || reg->value == CPENC(3, 4, C14, C5, 1)
+       || reg->value == CPENC(3, 4, C1, C3, 1)
+       || reg->value == CPENC(3, 4, C2, C2, 0))
+      && !AARCH64_CPU_HAS_FEATURE (features, AARCH64_FEATURE_V8_4))
+    return FALSE;
+
+  /* ARMv8.4 TLB instructions.  */
+  if ((reg->value == CPENS (0, C8, C1, 0)
+       || reg->value == CPENS (0, C8, C1, 1)
+       || reg->value == CPENS (0, C8, C1, 2)
+       || reg->value == CPENS (0, C8, C1, 3)
+       || reg->value == CPENS (0, C8, C1, 5)
+       || reg->value == CPENS (0, C8, C1, 7)
+       || reg->value == CPENS (4, C8, C4, 0)
+       || reg->value == CPENS (4, C8, C4, 4)
+       || reg->value == CPENS (4, C8, C1, 1)
+       || reg->value == CPENS (4, C8, C1, 5)
+       || reg->value == CPENS (4, C8, C1, 6)
+       || reg->value == CPENS (6, C8, C1, 1)
+       || reg->value == CPENS (6, C8, C1, 5)
+       || reg->value == CPENS (4, C8, C1, 0)
+       || reg->value == CPENS (4, C8, C1, 4)
+       || reg->value == CPENS (6, C8, C1, 0)
+       || reg->value == CPENS (0, C8, C6, 1)
+       || reg->value == CPENS (0, C8, C6, 3)
+       || reg->value == CPENS (0, C8, C6, 5)
+       || reg->value == CPENS (0, C8, C6, 7)
+       || reg->value == CPENS (0, C8, C2, 1)
+       || reg->value == CPENS (0, C8, C2, 3)
+       || reg->value == CPENS (0, C8, C2, 5)
+       || reg->value == CPENS (0, C8, C2, 7)
+       || reg->value == CPENS (0, C8, C5, 1)
+       || reg->value == CPENS (0, C8, C5, 3)
+       || reg->value == CPENS (0, C8, C5, 5)
+       || reg->value == CPENS (0, C8, C5, 7)
+       || reg->value == CPENS (4, C8, C0, 2)
+       || reg->value == CPENS (4, C8, C0, 6)
+       || reg->value == CPENS (4, C8, C4, 2)
+       || reg->value == CPENS (4, C8, C4, 6)
+       || reg->value == CPENS (4, C8, C4, 3)
+       || reg->value == CPENS (4, C8, C4, 7)
+       || reg->value == CPENS (4, C8, C6, 1)
+       || reg->value == CPENS (4, C8, C6, 5)
+       || reg->value == CPENS (4, C8, C2, 1)
+       || reg->value == CPENS (4, C8, C2, 5)
+       || reg->value == CPENS (4, C8, C5, 1)
+       || reg->value == CPENS (4, C8, C5, 5)
+       || reg->value == CPENS (6, C8, C6, 1)
+       || reg->value == CPENS (6, C8, C6, 5)
+       || reg->value == CPENS (6, C8, C2, 1)
+       || reg->value == CPENS (6, C8, C2, 5)
+       || reg->value == CPENS (6, C8, C5, 1)
+       || reg->value == CPENS (6, C8, C5, 5))
+      && !AARCH64_CPU_HAS_FEATURE (features, AARCH64_FEATURE_V8_4))
+    return FALSE;
+
   return TRUE;
 }
 
+/* The CPENC below is fairly misleading, the fields
+   here are not in CPENC form. They are in op2op1 form. The fields are encoded
+   by ins_pstatefield, which just shifts the value by the width of the fields
+   in a loop. So if you CPENC them only the first value will be set, the rest
+   are masked out to 0. As an example. op2 = 3, op1=2. CPENC would produce a
+   value of 0b110000000001000000 (0x30040) while what you want is
+   0b011010 (0x1a).  */
 const aarch64_sys_reg aarch64_pstatefields [] =
 {
   { "spsel",            0x05,	0 },
@@ -4169,6 +4271,7 @@ const aarch64_sys_reg aarch64_pstatefiel
   { "daifclr",          0x1f,	0 },
   { "pan",		0x04,	F_ARCHEXT },
   { "uao",		0x03,	F_ARCHEXT },
+  { "dit",		0x1a,	F_ARCHEXT },
   { 0,          CPENC(0,0,0,0,0), 0 },
 };
 
@@ -4189,6 +4292,11 @@ aarch64_pstatefield_supported_p (const a
       && !AARCH64_CPU_HAS_FEATURE (features, AARCH64_FEATURE_V8_2))
     return FALSE;
 
+  /* DIT.  Values are from aarch64_pstatefields.  */
+  if (reg->value == 0x1a
+      && !AARCH64_CPU_HAS_FEATURE (features, AARCH64_FEATURE_V8_4))
+    return FALSE;
+
   return TRUE;
 }
 
@@ -4267,6 +4375,55 @@ const aarch64_sys_ins_reg aarch64_sys_re
     { "vale2",     CPENS (4, C8, C7, 5), F_HASXT },
     { "vale3",     CPENS (6, C8, C7, 5), F_HASXT },
     { "vaale1",    CPENS (0, C8, C7, 7), F_HASXT },
+
+    { "vmalle1os",    CPENS (0, C8, C1, 0), F_ARCHEXT },
+    { "vae1os",       CPENS (0, C8, C1, 1), F_HASXT | F_ARCHEXT },
+    { "aside1os",     CPENS (0, C8, C1, 2), F_HASXT | F_ARCHEXT },
+    { "vaae1os",      CPENS (0, C8, C1, 3), F_HASXT | F_ARCHEXT },
+    { "vale1os",      CPENS (0, C8, C1, 5), F_HASXT | F_ARCHEXT },
+    { "vaale1os",     CPENS (0, C8, C1, 7), F_HASXT | F_ARCHEXT },
+    { "ipas2e1os",    CPENS (4, C8, C4, 0), F_HASXT | F_ARCHEXT },
+    { "ipas2le1os",   CPENS (4, C8, C4, 4), F_HASXT | F_ARCHEXT },
+    { "vae2os",       CPENS (4, C8, C1, 1), F_HASXT | F_ARCHEXT },
+    { "vale2os",      CPENS (4, C8, C1, 5), F_HASXT | F_ARCHEXT },
+    { "vmalls12e1os", CPENS (4, C8, C1, 6), F_ARCHEXT },
+    { "vae3os",       CPENS (6, C8, C1, 1), F_HASXT | F_ARCHEXT },
+    { "vale3os",      CPENS (6, C8, C1, 5), F_HASXT | F_ARCHEXT },
+    { "alle2os",      CPENS (4, C8, C1, 0), F_ARCHEXT },
+    { "alle1os",      CPENS (4, C8, C1, 4), F_ARCHEXT },
+    { "alle3os",      CPENS (6, C8, C1, 0), F_ARCHEXT },
+
+    { "rvae1",      CPENS (0, C8, C6, 1), F_HASXT | F_ARCHEXT },
+    { "rvaae1",     CPENS (0, C8, C6, 3), F_HASXT | F_ARCHEXT },
+    { "rvale1",     CPENS (0, C8, C6, 5), F_HASXT | F_ARCHEXT },
+    { "rvaale1",    CPENS (0, C8, C6, 7), F_HASXT | F_ARCHEXT },
+    { "rvae1is",    CPENS (0, C8, C2, 1), F_HASXT | F_ARCHEXT },
+    { "rvaae1is",   CPENS (0, C8, C2, 3), F_HASXT | F_ARCHEXT },
+    { "rvale1is",   CPENS (0, C8, C2, 5), F_HASXT | F_ARCHEXT },
+    { "rvaale1is",  CPENS (0, C8, C2, 7), F_HASXT | F_ARCHEXT },
+    { "rvae1os",    CPENS (0, C8, C5, 1), F_HASXT | F_ARCHEXT },
+    { "rvaae1os",   CPENS (0, C8, C5, 3), F_HASXT | F_ARCHEXT },
+    { "rvale1os",   CPENS (0, C8, C5, 5), F_HASXT | F_ARCHEXT },
+    { "rvaale1os",  CPENS (0, C8, C5, 7), F_HASXT | F_ARCHEXT },
+    { "ripas2e1is", CPENS (4, C8, C0, 2), F_HASXT | F_ARCHEXT },
+    { "ripas2le1is",CPENS (4, C8, C0, 6), F_HASXT | F_ARCHEXT },
+    { "ripas2e1",   CPENS (4, C8, C4, 2), F_HASXT | F_ARCHEXT },
+    { "ripas2le1",  CPENS (4, C8, C4, 6), F_HASXT | F_ARCHEXT },
+    { "ripas2e1os", CPENS (4, C8, C4, 3), F_HASXT | F_ARCHEXT },
+    { "ripas2le1os",CPENS (4, C8, C4, 7), F_HASXT | F_ARCHEXT },
+    { "rvae2",      CPENS (4, C8, C6, 1), F_HASXT | F_ARCHEXT },
+    { "rvale2",     CPENS (4, C8, C6, 5), F_HASXT | F_ARCHEXT },
+    { "rvae2is",    CPENS (4, C8, C2, 1), F_HASXT | F_ARCHEXT },
+    { "rvale2is",   CPENS (4, C8, C2, 5), F_HASXT | F_ARCHEXT },
+    { "rvae2os",    CPENS (4, C8, C5, 1), F_HASXT | F_ARCHEXT },
+    { "rvale2os",   CPENS (4, C8, C5, 5), F_HASXT | F_ARCHEXT },
+    { "rvae3",      CPENS (6, C8, C6, 1), F_HASXT | F_ARCHEXT },
+    { "rvale3",     CPENS (6, C8, C6, 5), F_HASXT | F_ARCHEXT },
+    { "rvae3is",    CPENS (6, C8, C2, 1), F_HASXT | F_ARCHEXT },
+    { "rvale3is",   CPENS (6, C8, C2, 5), F_HASXT | F_ARCHEXT },
+    { "rvae3os",    CPENS (6, C8, C5, 1), F_HASXT | F_ARCHEXT },
+    { "rvale3os",   CPENS (6, C8, C5, 5), F_HASXT | F_ARCHEXT },
+
     { 0,       CPENS(0,0,0,0), 0 }
 };
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-opc.h ./opcodes/aarch64-opc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-opc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/aarch64-opc.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* aarch64-opc.h -- Header file for aarch64-opc.c and aarch64-opc-2.c.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of the GNU opcodes library.
@@ -67,7 +67,9 @@ enum aarch64_field_kind
   FLD_type,
   FLD_ldst_size,
   FLD_imm6,
+  FLD_imm6_2,
   FLD_imm4,
+  FLD_imm4_2,
   FLD_imm5,
   FLD_imm7,
   FLD_imm8,
@@ -143,6 +145,7 @@ enum aarch64_field_kind
   FLD_rotate1,
   FLD_rotate2,
   FLD_rotate3,
+  FLD_SM3_imm2
 };
 
 /* Field description.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-tbl.h ./opcodes/aarch64-tbl.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/aarch64-tbl.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/aarch64-tbl.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,6 +1,6 @@
 /* aarch64-tbl.h -- AArch64 opcode description table and instruction
    operand description table.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -1982,6 +1982,109 @@
 {                                                       \
   QLF3(X,X,NIL),                                        \
 }
+/* e.g. UDOT <Vd>.2S, <Vn>.8B, <Vm>.8B.  */
+#define QL_V3DOT	   \
+{			   \
+  QLF3(V_2S, V_8B,  V_8B), \
+  QLF3(V_4S, V_16B, V_16B),\
+}
+
+/* e.g. UDOT <Vd>.2S, <Vn>.8B, <Vm>.4B[<index>].  */
+#define QL_V2DOT	 \
+{			 \
+  QLF3(V_2S, V_8B,  S_4B),\
+  QLF3(V_4S, V_16B, S_4B),\
+}
+
+/* e.g. SHA512H <Qd>, <Qn>, <Vm>.2D.  */
+#define QL_SHA512UPT			\
+{				\
+  QLF3(S_Q, S_Q, V_2D),		\
+}
+
+/* e.g. SHA512SU0 <Vd.2D>, <Vn>.2D.  */
+#define QL_V2SAME2D		\
+{				\
+  QLF2(V_2D, V_2D),		\
+}
+
+/* e.g. SHA512SU1 <Vd>.2D, <Vn>.2D, <Vm>.2D>.  */
+#define QL_V3SAME2D		\
+{				\
+  QLF3(V_2D, V_2D, V_2D),	\
+}
+
+/* e.g. EOR3 <Vd>.16B, <Vn>.16B, <Vm>.16B, <Va>.16B.  */
+#define QL_V4SAME16B			\
+{					\
+  QLF4(V_16B, V_16B, V_16B, V_16B),	\
+}
+
+/* e.g. SM3SS1 <Vd>.4S, <Vn>.4S, <Vm>.4S, <Va>.4S.  */
+#define QL_V4SAME4S			\
+{					\
+  QLF4(V_4S, V_4S, V_4S, V_4S),		\
+}
+
+/* e.g. XAR <Vd>.2D, <Vn>.2D, <Vm>.2D, #<imm6>.  */
+#define QL_XAR			\
+{				\
+  QLF4(V_2D, V_2D, V_2D, imm_0_63),	\
+}
+
+/* e.g. SM3TT1A <Vd>.4S, <Vn>.4S, <Vm>.S[<imm2>].  */
+#define QL_SM3TT	\
+{			\
+  QLF3(V_4S, V_4S, S_S),\
+}
+
+/* e.g. FMLAL  <Vd>.2S, <Vn>.2H, <Vm>.2H.  */
+#define QL_V3FML2S \
+{		   \
+  QLF3(V_2S, V_2H, V_2H),\
+}
+
+/* e.g. FMLAL  <Vd>.4S, <Vn>.4H, <Vm>.4H.  */
+#define QL_V3FML4S \
+{		   \
+  QLF3(V_4S, V_4H, V_4H),\
+}
+
+/* e.g. FMLAL  <Vd>.2S, <Vn>.2H, <Vm>.H[<index>].  */
+#define QL_V2FML2S \
+{		   \
+  QLF3(V_2S, V_2H, S_H),\
+}
+
+/* e.g. FMLAL  <Vd>.4S, <Vn>.4H, <Vm>.H[<index>].  */
+#define QL_V2FML4S \
+{		   \
+  QLF3(V_4S, V_4H, S_H),\
+}
+
+/* e.g. RMIF <Xn>, #<shift>, #<mask>.  */
+#define QL_RMIF  \
+{		  \
+  QLF3(X, imm_0_63, imm_0_15),\
+}
+
+/* e.g. SETF8 <Wn>.  */
+#define QL_SETF \
+{		\
+  QLF1(W),	\
+}
+
+/* e.g. STLURB <Wt>, [<Xn|SP>{,#<simm>}].  */
+#define QL_STLW \
+{		\
+  QLF2(W, NIL),	\
+}
+
+/* e.g. STLURB <Xt>, [<Xn|SP>{,#<simm>}].  */
+#define QL_STLX \
+{		\
+  QLF2(X, NIL),	\
+}
 
 /* Opcode table.  */
 
@@ -1992,7 +2095,8 @@ static const aarch64_feature_set aarch64
 static const aarch64_feature_set aarch64_feature_simd =
   AARCH64_FEATURE (AARCH64_FEATURE_SIMD, 0);
 static const aarch64_feature_set aarch64_feature_crypto =
-  AARCH64_FEATURE (AARCH64_FEATURE_CRYPTO, 0);
+  AARCH64_FEATURE (AARCH64_FEATURE_CRYPTO | AARCH64_FEATURE_AES
+		   | AARCH64_FEATURE_SHA2 | AARCH64_FEATURE_SIMD | AARCH64_FEATURE_FP, 0);
 static const aarch64_feature_set aarch64_feature_crc =
   AARCH64_FEATURE (AARCH64_FEATURE_CRC, 0);
 static const aarch64_feature_set aarch64_feature_lse =
@@ -2021,6 +2125,26 @@ static const aarch64_feature_set aarch64
   AARCH64_FEATURE (AARCH64_FEATURE_COMPNUM, 0);
 static const aarch64_feature_set aarch64_feature_rcpc =
   AARCH64_FEATURE (AARCH64_FEATURE_RCPC, 0);
+static const aarch64_feature_set aarch64_feature_dotprod =
+  AARCH64_FEATURE (AARCH64_FEATURE_V8_2 | AARCH64_FEATURE_DOTPROD, 0);
+static const aarch64_feature_set aarch64_feature_sha2 =
+  AARCH64_FEATURE (AARCH64_FEATURE_V8 | AARCH64_FEATURE_SHA2, 0);
+static const aarch64_feature_set aarch64_feature_aes =
+  AARCH64_FEATURE (AARCH64_FEATURE_V8 | AARCH64_FEATURE_AES, 0);
+static const aarch64_feature_set aarch64_feature_v8_4 =
+  AARCH64_FEATURE (AARCH64_FEATURE_V8_4, 0);
+static const aarch64_feature_set aarch64_feature_crypto_v8_2 =
+  AARCH64_FEATURE (AARCH64_FEATURE_V8_2 | AARCH64_FEATURE_CRYPTO
+		   | AARCH64_FEATURE_SIMD | AARCH64_FEATURE_FP, 0);
+static const aarch64_feature_set aarch64_feature_sm4 =
+  AARCH64_FEATURE (AARCH64_FEATURE_V8_2 | AARCH64_FEATURE_SM4
+		   | AARCH64_FEATURE_SIMD | AARCH64_FEATURE_FP, 0);
+static const aarch64_feature_set aarch64_feature_sha3 =
+  AARCH64_FEATURE (AARCH64_FEATURE_V8_2 | AARCH64_FEATURE_SHA2
+		   | AARCH64_FEATURE_SHA3 | AARCH64_FEATURE_SIMD | AARCH64_FEATURE_FP, 0);
+static const aarch64_feature_set aarch64_feature_fp_16_v8_2 =
+  AARCH64_FEATURE (AARCH64_FEATURE_V8_2 | AARCH64_FEATURE_F16_FML
+		   | AARCH64_FEATURE_F16 | AARCH64_FEATURE_FP, 0);
 
 #define CORE		&aarch64_feature_v8
 #define FP		&aarch64_feature_fp
@@ -2040,6 +2164,14 @@ static const aarch64_feature_set aarch64
 #define FP_V8_3		&aarch64_feature_fp_v8_3
 #define COMPNUM		&aarch64_feature_compnum
 #define RCPC		&aarch64_feature_rcpc
+#define SHA2		&aarch64_feature_sha2
+#define AES		&aarch64_feature_aes
+#define ARMV8_4		&aarch64_feature_v8_4
+#define SHA3		&aarch64_feature_sha3
+#define SM4		&aarch64_feature_sm4
+#define CRYPTO_V8_2	&aarch64_feature_crypto_v8_2
+#define FP_F16_V8_2	&aarch64_feature_fp_16_v8_2
+#define DOTPROD		&aarch64_feature_dotprod
 
 #define CORE_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
   { NAME, OPCODE, MASK, CLASS, OP, CORE, OPS, QUALS, FLAGS, 0, NULL }
@@ -2072,6 +2204,22 @@ static const aarch64_feature_set aarch64
   { NAME, OPCODE, MASK, CLASS, OP, COMPNUM, OPS, QUALS, FLAGS, 0, NULL }
 #define RCPC_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
   { NAME, OPCODE, MASK, CLASS, 0, RCPC, OPS, QUALS, FLAGS, 0, NULL }
+#define SHA2_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, CLASS, 0, SHA2, OPS, QUALS, FLAGS, 0, NULL }
+#define AES_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, CLASS, 0, AES, OPS, QUALS, FLAGS, 0, NULL }
+#define V8_4_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, CLASS, 0, ARMV8_4, OPS, QUALS, FLAGS, 0, NULL }
+#define CRYPTO_V8_2_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, CLASS, 0, CRYPTO_V8_2, OPS, QUALS, FLAGS, 0, NULL }
+#define SHA3_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, CLASS, 0, SHA3, OPS, QUALS, FLAGS, 0, NULL }
+#define SM4_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, CLASS, 0, SM4, OPS, QUALS, FLAGS, 0, NULL }
+#define FP16_V8_2_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, CLASS, 0, FP_F16_V8_2, OPS, QUALS, FLAGS, 0, NULL }
+#define DOT_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
+  { NAME, OPCODE, MASK, CLASS, 0, DOTPROD, OPS, QUALS, FLAGS, 0, NULL }
 
 struct aarch64_opcode aarch64_opcode_table[] =
 {
@@ -2152,9 +2300,9 @@ struct aarch64_opcode aarch64_opcode_tab
   SIMD_INSN ("sqdmull", 0x0e20d000, 0xff20fc00, asimddiff, 0, OP3 (Vd, Vn, Vm), QL_V3LONGHS,   F_SIZEQ),
   SIMD_INSN ("sqdmull2",0x4e20d000, 0xff20fc00, asimddiff, 0, OP3 (Vd, Vn, Vm), QL_V3LONGHS2,  F_SIZEQ),
   SIMD_INSN ("pmull",   0x0e20e000, 0xffe0fc00, asimddiff, 0, OP3 (Vd, Vn, Vm), QL_V3LONGB,    0),
-  CRYP_INSN ("pmull",   0x0ee0e000, 0xffe0fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGD,    0),
+  AES_INSN ("pmull",   0x0ee0e000, 0xffe0fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGD,    0),
   SIMD_INSN ("pmull2",  0x4e20e000, 0xffe0fc00, asimddiff, 0, OP3 (Vd, Vn, Vm), QL_V3LONGB2,   0),
-  CRYP_INSN ("pmull2",  0x4ee0e000, 0xffe0fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGD2,   0),
+  AES_INSN ("pmull2",  0x4ee0e000, 0xffe0fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGD2,   0),
   SIMD_INSN ("uaddl",   0x2e200000, 0xff20fc00, asimddiff, 0, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   SIMD_INSN ("uaddl2",  0x6e200000, 0xff20fc00, asimddiff, 0, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   SIMD_INSN ("uaddw",   0x2e201000, 0xff20fc00, asimddiff, 0, OP3 (Vd, Vn, Vm), QL_V3WIDEBHS,  F_SIZEQ),
@@ -2552,12 +2700,12 @@ struct aarch64_opcode aarch64_opcode_tab
   SIMD_INSN ("st4", 0xd202000, 0xbfff2000, asisdlso, 0, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_LDSTONE, F_OD(4)),
   SIMD_INSN ("ld1", 0xd400000, 0xbfff2000, asisdlso, 0, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_LDSTONE, F_OD(1)),
   SIMD_INSN ("ld3", 0xd402000, 0xbfff2000, asisdlso, 0, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_LDSTONE, F_OD(3)),
-  SIMD_INSN ("ld1r", 0xd40c000, 0xbfffe000, asisdlso, 0, OP2 (LVt_AL, SIMD_ADDR_SIMPLE), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(1)),
-  SIMD_INSN ("ld3r", 0xd40e000, 0xbfffe000, asisdlso, 0, OP2 (LVt_AL, SIMD_ADDR_SIMPLE), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(3)),
+  SIMD_INSN ("ld1r", 0xd40c000, 0xbffff000, asisdlso, 0, OP2 (LVt_AL, SIMD_ADDR_SIMPLE), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(1)),
+  SIMD_INSN ("ld3r", 0xd40e000, 0xbffff000, asisdlso, 0, OP2 (LVt_AL, SIMD_ADDR_SIMPLE), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(3)),
   SIMD_INSN ("ld2", 0xd600000, 0xbfff2000, asisdlso, 0, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_LDSTONE, F_OD(2)),
   SIMD_INSN ("ld4", 0xd602000, 0xbfff2000, asisdlso, 0, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_LDSTONE, F_OD(4)),
-  SIMD_INSN ("ld2r", 0xd60c000, 0xbfffe000, asisdlso, 0, OP2 (LVt_AL, SIMD_ADDR_SIMPLE), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(2)),
-  SIMD_INSN ("ld4r", 0xd60e000, 0xbfffe000, asisdlso, 0, OP2 (LVt_AL, SIMD_ADDR_SIMPLE), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(4)),
+  SIMD_INSN ("ld2r", 0xd60c000, 0xbffff000, asisdlso, 0, OP2 (LVt_AL, SIMD_ADDR_SIMPLE), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(2)),
+  SIMD_INSN ("ld4r", 0xd60e000, 0xbffff000, asisdlso, 0, OP2 (LVt_AL, SIMD_ADDR_SIMPLE), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(4)),
   /* AdvSIMD load/store single structure (post-indexed).  */
   SIMD_INSN ("st1", 0xd800000, 0xbfe02000, asisdlsop, 0, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(1)),
   SIMD_INSN ("st3", 0xd802000, 0xbfe02000, asisdlsop, 0, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(3)),
@@ -2565,12 +2713,12 @@ struct aarch64_opcode aarch64_opcode_tab
   SIMD_INSN ("st4", 0xda02000, 0xbfe02000, asisdlsop, 0, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(4)),
   SIMD_INSN ("ld1", 0xdc00000, 0xbfe02000, asisdlsop, 0, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(1)),
   SIMD_INSN ("ld3", 0xdc02000, 0xbfe02000, asisdlsop, 0, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(3)),
-  SIMD_INSN ("ld1r", 0xdc0c000, 0xbfe0e000, asisdlsop, 0, OP2 (LVt_AL, SIMD_ADDR_POST), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(1)),
-  SIMD_INSN ("ld3r", 0xdc0e000, 0xbfe0e000, asisdlsop, 0, OP2 (LVt_AL, SIMD_ADDR_POST), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(3)),
+  SIMD_INSN ("ld1r", 0xdc0c000, 0xbfe0f000, asisdlsop, 0, OP2 (LVt_AL, SIMD_ADDR_POST), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(1)),
+  SIMD_INSN ("ld3r", 0xdc0e000, 0xbfe0f000, asisdlsop, 0, OP2 (LVt_AL, SIMD_ADDR_POST), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(3)),
   SIMD_INSN ("ld2", 0xde00000, 0xbfe02000, asisdlsop, 0, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(2)),
   SIMD_INSN ("ld4", 0xde02000, 0xbfe02000, asisdlsop, 0, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(4)),
-  SIMD_INSN ("ld2r", 0xde0c000, 0xbfe0e000, asisdlsop, 0, OP2 (LVt_AL, SIMD_ADDR_POST), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(2)),
-  SIMD_INSN ("ld4r", 0xde0e000, 0xbfe0e000, asisdlsop, 0, OP2 (LVt_AL, SIMD_ADDR_POST), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(4)),
+  SIMD_INSN ("ld2r", 0xde0c000, 0xbfe0f000, asisdlsop, 0, OP2 (LVt_AL, SIMD_ADDR_POST), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(2)),
+  SIMD_INSN ("ld4r", 0xde0e000, 0xbfe0f000, asisdlsop, 0, OP2 (LVt_AL, SIMD_ADDR_POST), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(4)),
   /* AdvSIMD scalar two-reg misc.  */
   SIMD_INSN ("suqadd", 0x5e203800, 0xff3ffc00, asisdmisc, 0, OP2 (Sd, Sn), QL_S_2SAME, F_SSIZE),
   SIMD_INSN ("sqabs", 0x5e207800, 0xff3ffc00, asisdmisc, 0, OP2 (Sd, Sn), QL_S_2SAME, F_SSIZE),
@@ -2777,22 +2925,22 @@ struct aarch64_opcode aarch64_opcode_tab
   CORE_INSN ("csneg", 0x5a800400, 0x7fe00c00, condsel, 0, OP4 (Rd, Rn, Rm, COND), QL_CSEL, F_HAS_ALIAS | F_SF),
   CORE_INSN ("cneg", 0x5a800400, 0x7fe00c00, condsel, OP_CNEG, OP3 (Rd, Rn, COND1), QL_CSEL, F_ALIAS | F_SF | F_CONV),
   /* Crypto AES.  */
-  CRYP_INSN ("aese",     0x4e284800, 0xfffffc00, cryptoaes, OP2 (Vd, Vn), QL_V2SAME16B, 0),
-  CRYP_INSN ("aesd",     0x4e285800, 0xfffffc00, cryptoaes, OP2 (Vd, Vn), QL_V2SAME16B, 0),
-  CRYP_INSN ("aesmc",    0x4e286800, 0xfffffc00, cryptoaes, OP2 (Vd, Vn), QL_V2SAME16B, 0),
-  CRYP_INSN ("aesimc",   0x4e287800, 0xfffffc00, cryptoaes, OP2 (Vd, Vn), QL_V2SAME16B, 0),
+  AES_INSN ("aese",     0x4e284800, 0xfffffc00, cryptoaes, OP2 (Vd, Vn), QL_V2SAME16B, 0),
+  AES_INSN ("aesd",     0x4e285800, 0xfffffc00, cryptoaes, OP2 (Vd, Vn), QL_V2SAME16B, 0),
+  AES_INSN ("aesmc",    0x4e286800, 0xfffffc00, cryptoaes, OP2 (Vd, Vn), QL_V2SAME16B, 0),
+  AES_INSN ("aesimc",   0x4e287800, 0xfffffc00, cryptoaes, OP2 (Vd, Vn), QL_V2SAME16B, 0),
   /* Crypto two-reg SHA.  */
-  CRYP_INSN ("sha1h",    0x5e280800, 0xfffffc00, cryptosha2, OP2 (Fd, Fn), QL_2SAMES, 0),
-  CRYP_INSN ("sha1su1",  0x5e281800, 0xfffffc00, cryptosha2, OP2 (Vd, Vn), QL_V2SAME4S, 0),
-  CRYP_INSN ("sha256su0",0x5e282800, 0xfffffc00, cryptosha2, OP2 (Vd, Vn), QL_V2SAME4S, 0),
+  SHA2_INSN ("sha1h",    0x5e280800, 0xfffffc00, cryptosha2, OP2 (Fd, Fn), QL_2SAMES, 0),
+  SHA2_INSN ("sha1su1",  0x5e281800, 0xfffffc00, cryptosha2, OP2 (Vd, Vn), QL_V2SAME4S, 0),
+  SHA2_INSN ("sha256su0",0x5e282800, 0xfffffc00, cryptosha2, OP2 (Vd, Vn), QL_V2SAME4S, 0),
   /* Crypto three-reg SHA.  */
-  CRYP_INSN ("sha1c",    0x5e000000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHAUPT, 0),
-  CRYP_INSN ("sha1p",    0x5e001000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHAUPT, 0),
-  CRYP_INSN ("sha1m",    0x5e002000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHAUPT, 0),
-  CRYP_INSN ("sha1su0",  0x5e003000, 0xffe0fc00, cryptosha3, OP3 (Vd, Vn, Vm), QL_V3SAME4S, 0),
-  CRYP_INSN ("sha256h",  0x5e004000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHA256UPT, 0),
-  CRYP_INSN ("sha256h2", 0x5e005000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHA256UPT, 0),
-  CRYP_INSN ("sha256su1",0x5e006000, 0xffe0fc00, cryptosha3, OP3 (Vd, Vn, Vm), QL_V3SAME4S, 0),
+  SHA2_INSN ("sha1c",    0x5e000000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHAUPT, 0),
+  SHA2_INSN ("sha1p",    0x5e001000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHAUPT, 0),
+  SHA2_INSN ("sha1m",    0x5e002000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHAUPT, 0),
+  SHA2_INSN ("sha1su0",  0x5e003000, 0xffe0fc00, cryptosha3, OP3 (Vd, Vn, Vm), QL_V3SAME4S, 0),
+  SHA2_INSN ("sha256h",  0x5e004000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHA256UPT, 0),
+  SHA2_INSN ("sha256h2", 0x5e005000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHA256UPT, 0),
+  SHA2_INSN ("sha256su1",0x5e006000, 0xffe0fc00, cryptosha3, OP3 (Vd, Vn, Vm), QL_V3SAME4S, 0),
   /* Data-processing (1 source).  */
   CORE_INSN ("rbit",  0x5ac00000, 0x7ffffc00, dp_1src, 0, OP2 (Rd, Rn), QL_I2SAME, F_SF),
   CORE_INSN ("rev16", 0x5ac00400, 0x7ffffc00, dp_1src, 0, OP2 (Rd, Rn), QL_I2SAME, F_SF),
@@ -4137,6 +4285,71 @@ struct aarch64_opcode aarch64_opcode_tab
   _SVE_INSN ("fmov", 0x05104000, 0xff30ffe0, sve_size_hsd, 0, OP3 (SVE_Zd, SVE_Pg4_16, FPIMM0), OP_SVE_VM_HSD, F_ALIAS | F_PSEUDO, 0),
   _SVE_INSN ("orn", 0x05000000, 0xfffc0000, sve_limm, 0, OP3 (SVE_Zd, SVE_Zd, SVE_INV_LIMM), OP_SVE_VVU_BHSD, F_ALIAS | F_PSEUDO, 1),
 
+  /* SIMD Dot Product (optional in v8.2-A).  */
+  DOT_INSN ("udot", 0x2e009400, 0xbf20fc00, dotproduct, OP3 (Vd, Vn, Vm), QL_V3DOT, F_SIZEQ),
+  DOT_INSN ("sdot", 0xe009400,  0xbf20fc00, dotproduct, OP3 (Vd, Vn, Vm), QL_V3DOT, F_SIZEQ),
+  DOT_INSN ("udot", 0x2f00e000, 0xbf00f000, dotproduct, OP3 (Vd, Vn, Em), QL_V2DOT, F_SIZEQ),
+  DOT_INSN ("sdot", 0xf00e000,  0xbf00f000, dotproduct, OP3 (Vd, Vn, Em), QL_V2DOT, F_SIZEQ),
+/* Crypto SHA2 (optional in ARMv8.2-a).  */
+  SHA2_INSN ("sha512h",   0xce608000, 0xffe0fc00, cryptosha2, OP3 (Fd, Fn, Vm), QL_SHA512UPT, 0),
+  SHA2_INSN ("sha512h2",  0xce608400, 0xffe0fc00, cryptosha2, OP3 (Fd, Fn, Vm), QL_SHA512UPT, 0),
+  SHA2_INSN ("sha512su0", 0xcec08000, 0xfffffc00, cryptosha2, OP2 (Vd, Vn), QL_V2SAME2D, 0),
+  SHA2_INSN ("sha512su1", 0xce608800, 0xffe0fc00, cryptosha2, OP3 (Vd, Vn, Vm), QL_V3SAME2D, 0),
+  /* Crypto SHA3 (optional in ARMv8.2-a).  */
+  SHA3_INSN ("eor3",      0xce000000, 0xffe08000, cryptosha3, OP4 (Vd, Vn, Vm, Va), QL_V4SAME16B, 0),
+  SHA3_INSN ("rax1",      0xce608c00, 0xffe0fc00, cryptosha3, OP3 (Vd, Vn, Vm), QL_V3SAME2D, 0),
+  SHA3_INSN ("xar",       0xce800000, 0xffe00000, cryptosha3, OP4 (Vd, Vn, Vm, IMM), QL_XAR, 0),
+  SHA3_INSN ("bcax",      0xce200000, 0xffe08000, cryptosha3, OP4 (Vd, Vn, Vm, Va), QL_V4SAME16B, 0),
+  /* Crypto SM3 (optional in ARMv8.2-a).  */
+  SM4_INSN ("sm3ss1",    0xce400000, 0xffe08000, cryptosm3, OP4 (Vd, Vn, Vm, Va), QL_V4SAME4S, 0),
+  SM4_INSN ("sm3tt1a",   0xce408000, 0xffe0cc00, cryptosm3, OP3 (Vd, Vn, Em), QL_SM3TT, 0),
+  SM4_INSN ("sm3tt1b",   0xce408400, 0xffe0cc00, cryptosm3, OP3 (Vd, Vn, Em), QL_SM3TT, 0),
+  SM4_INSN ("sm3tt2a",   0xce408800, 0xffe0cc00, cryptosm3, OP3 (Vd, Vn, Em), QL_SM3TT, 0),
+  SM4_INSN ("sm3tt2b",   0xce408c00, 0xffe0cc00, cryptosm3, OP3 (Vd, Vn, Em), QL_SM3TT, 0),
+  SM4_INSN ("sm3partw1", 0xce60c000, 0xffe0fc00, cryptosm3, OP3 (Vd, Vn, Vm), QL_V3SAME4S, 0),
+  SM4_INSN ("sm3partw2", 0xce60c400, 0xffe0fc00, cryptosm3, OP3 (Vd, Vn, Vm), QL_V3SAME4S, 0),
+  /* Crypto SM4 (optional in ARMv8.2-a).  */
+  SM4_INSN ("sm4e",    0xcec08400, 0xfffffc00, cryptosm4, OP2 (Vd, Vn), QL_V2SAME4S, 0),
+  SM4_INSN ("sm4ekey", 0xce60c800, 0xffe0fc00, cryptosm4, OP3 (Vd, Vn, Vm), QL_V3SAME4S, 0),
+  /* Crypto FP16 (optional in ARMv8.2-a).  */
+  FP16_V8_2_INSN ("fmlal",  0xe20ec00,  0xffa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3FML2S, 0),
+  FP16_V8_2_INSN ("fmlsl",  0xea0ec00,  0xffa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3FML2S, 0),
+  FP16_V8_2_INSN ("fmlal2", 0x2e20cc00, 0xffa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3FML2S, 0),
+  FP16_V8_2_INSN ("fmlsl2", 0x2ea0cc00, 0xffa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3FML2S, 0),
+
+  FP16_V8_2_INSN ("fmlal",  0x4e20ec00, 0xffa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3FML4S, 0),
+  FP16_V8_2_INSN ("fmlsl",  0x4ea0ec00, 0xffa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3FML4S, 0),
+  FP16_V8_2_INSN ("fmlal2", 0x6e20cc00, 0xffa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3FML4S, 0),
+  FP16_V8_2_INSN ("fmlsl2", 0x6ea0cc00, 0xffa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3FML4S, 0),
+
+  FP16_V8_2_INSN ("fmlal",  0xf800000, 0xffc0f400, asimdelem, OP3 (Vd, Vn, Em), QL_V2FML2S, 0),
+  FP16_V8_2_INSN ("fmlsl",  0xf804000, 0xffc0f400, asimdelem, OP3 (Vd, Vn, Em), QL_V2FML2S, 0),
+  FP16_V8_2_INSN ("fmlal2", 0x2f808000, 0xffc0f400, asimdelem, OP3 (Vd, Vn, Em), QL_V2FML2S, 0),
+  FP16_V8_2_INSN ("fmlsl2", 0x2f80c000, 0xffc0f400, asimdelem, OP3 (Vd, Vn, Em), QL_V2FML2S, 0),
+
+  FP16_V8_2_INSN ("fmlal",  0x4f800000, 0xffc0f400, asimdelem, OP3 (Vd, Vn, Em), QL_V2FML4S, 0),
+  FP16_V8_2_INSN ("fmlsl",  0x4f804000, 0xffc0f400, asimdelem, OP3 (Vd, Vn, Em), QL_V2FML4S, 0),
+  FP16_V8_2_INSN ("fmlal2", 0x6f808000, 0xffc0f400, asimdelem, OP3 (Vd, Vn, Em), QL_V2FML4S, 0),
+  FP16_V8_2_INSN ("fmlsl2", 0x6f80c000, 0xffc0f400, asimdelem, OP3 (Vd, Vn, Em), QL_V2FML4S, 0),
+  /* System extensions ARMv8.4-a.  */
+  V8_4_INSN ("cfinv",  0xd500401f, 0xffffffff, ic_system, OP0 (), {}, 0),
+  V8_4_INSN ("rmif",   0xba000400, 0xffe07c10, ic_system, OP3 (Rn, IMM_2, MASK), QL_RMIF, 0),
+  V8_4_INSN ("setf8",  0x3a00080d, 0xfffffc1f, ic_system, OP1 (Rn), QL_SETF, 0),
+  V8_4_INSN ("setf16", 0x3a00480d, 0xfffffc1f, ic_system, OP1 (Rn), QL_SETF, 0),
+  /* Memory access instructions ARMv8.4-a.  */
+  V8_4_INSN ("stlurb" ,  0x19000000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLW, 0),
+  V8_4_INSN ("ldapurb",  0x19400000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLW, 0),
+  V8_4_INSN ("ldapursb", 0x19c00000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLW, 0),
+  V8_4_INSN ("ldapursb", 0x19800000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLX, 0),
+  V8_4_INSN ("stlurh",   0x59000000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLW, 0),
+  V8_4_INSN ("ldapurh",  0x59400000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLW, 0),
+  V8_4_INSN ("ldapursh", 0x59c00000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLW, 0),
+  V8_4_INSN ("ldapursh", 0x59800000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLX, 0),
+  V8_4_INSN ("stlur",    0x99000000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLW, 0),
+  V8_4_INSN ("ldapur",   0x99400000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLW, 0),
+  V8_4_INSN ("ldapursw", 0x99800000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLX, 0),
+  V8_4_INSN ("stlur",    0xd9000000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLX, 0),
+  V8_4_INSN ("ldapur",   0xd9400000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLX, 0),
   {0, 0, 0, 0, 0, 0, {}, {}, 0, 0, NULL},
 };
 
@@ -4188,6 +4401,7 @@ struct aarch64_opcode aarch64_opcode_tab
     Y(SISD_REG, regno, "Sd", 0, F(FLD_Rd), "a SIMD scalar register")	\
     Y(SISD_REG, regno, "Sn", 0, F(FLD_Rn), "a SIMD scalar register")	\
     Y(SISD_REG, regno, "Sm", 0, F(FLD_Rm), "a SIMD scalar register")	\
+    Y(SIMD_REG, regno, "Va", 0, F(FLD_Ra), "a SIMD vector register")	\
     Y(SIMD_REG, regno, "Vd", 0, F(FLD_Rd), "a SIMD vector register")	\
     Y(SIMD_REG, regno, "Vn", 0, F(FLD_Rn), "a SIMD vector register")	\
     Y(SIMD_REG, regno, "Vm", 0, F(FLD_Rm), "a SIMD vector register")	\
@@ -4215,6 +4429,8 @@ struct aarch64_opcode aarch64_opcode_tab
       "a 4-bit opcode field named for historical reasons C0 - C15")	\
     Y(IMMEDIATE, imm, "IDX", 0, F(FLD_imm4),				\
       "an immediate as the index of the least significant byte")	\
+    Y(IMMEDIATE, imm, "MASK", 0, F(FLD_imm4_2),				\
+      "an immediate as the index of the least significant byte")	\
     Y(IMMEDIATE, advsimd_imm_shift, "IMM_VLSL", 0, F(),			\
       "a left shift amount for an AdvSIMD register")			\
     Y(IMMEDIATE, advsimd_imm_shift, "IMM_VLSR", 0, F(),			\
@@ -4237,7 +4453,8 @@ struct aarch64_opcode aarch64_opcode_tab
       "the leftmost bit number to be moved from the source")		\
     Y(IMMEDIATE, imm, "WIDTH", 0, F(FLD_imm6),				\
       "the width of the bit-field")					\
-    Y(IMMEDIATE, imm, "IMM", 0, F(FLD_imm6), "an immediate")		\
+    Y(IMMEDIATE, imm, "IMM", 0, F(FLD_imm6), "an immediate")            \
+    Y(IMMEDIATE, imm, "IMM_2", 0, F(FLD_imm6_2), "an immediate")        \
     Y(IMMEDIATE, imm, "UIMM3_OP1", 0, F(FLD_op1),			\
       "a 3-bit unsigned immediate")					\
     Y(IMMEDIATE, imm, "UIMM3_OP2", 0, F(FLD_op2),			\
@@ -4300,6 +4517,8 @@ struct aarch64_opcode aarch64_opcode_tab
       "an address with scaled, unsigned immediate offset")		\
     Y(ADDRESS, addr_simple, "SIMD_ADDR_SIMPLE", 0, F(),			\
       "an address with base register (no offset)")			\
+    Y(ADDRESS, addr_offset, "ADDR_OFFSET", 0, F(FLD_Rn,FLD_imm9,FLD_index),\
+      "an address with an optional 8-bit signed immediate offset")	\
     Y(ADDRESS, simd_addr_post, "SIMD_ADDR_POST", 0, F(),		\
       "a post-indexed address with immediate or register increment")	\
     Y(SYSTEM, sysreg, "SYSREG", 0, F(), "a system register")		\
@@ -4536,4 +4755,6 @@ struct aarch64_opcode aarch64_opcode_tab
     Y(SVE_REG, regno, "SVE_Zt", 0, F(FLD_SVE_Zt),			\
       "an SVE vector register")						\
     Y(SVE_REG, sve_reglist, "SVE_ZtxN", 0, F(FLD_SVE_Zt),		\
-      "a list of SVE vector registers")
+      "a list of SVE vector registers")					\
+    Y(SIMD_ELEMENT, reglane, "SM3_IMM2", 0, F(FLD_SM3_imm2),		\
+      "an indexed SM3 vector immediate")
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/alpha-dis.c ./opcodes/alpha-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/alpha-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/alpha-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* alpha-dis.c -- Disassemble Alpha AXP instructions
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Contributed by Richard Henderson <rth@tamu.edu>,
    patterned after the PPC opcode handling written by Ian Lance Taylor.
 
@@ -22,7 +22,7 @@
 
 #include "sysdep.h"
 #include <stdio.h>
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "opcode/alpha.h"
 
 /* OSF register names.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/alpha-opc.c ./opcodes/alpha-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/alpha-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/alpha-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* alpha-opc.c -- Alpha AXP opcode list
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Contributed by Richard Henderson <rth@cygnus.com>,
    patterned after the PPC opcode handling written by Ian Lance Taylor.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-dis.c ./opcodes/arc-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/arc-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Instruction printing code for the ARC.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    Contributed by Claudiu Zissulescu (claziss@synopsys.com)
 
@@ -117,6 +117,14 @@ typedef struct skipclass
    disassembling.  */
 static linkclass decodelist = NULL;
 
+/* ISA mask value enforced via disassembler info options.  ARC_OPCODE_NONE
+   value means that no CPU is enforced.  */
+
+static unsigned enforced_isa_mask = ARC_OPCODE_NONE;
+
+/* True if we want to print using only hex numbers.  */
+static bfd_boolean print_hex = FALSE;
+
 /* Macros section.  */
 
 #ifdef DEBUG
@@ -181,6 +189,7 @@ skip_this_opcode (const struct arc_opcod
     {
     case FLOAT:
     case DSP:
+    case ARITH:
       break;
     default:
       return FALSE;
@@ -735,61 +744,111 @@ operand_iterator_next (struct arc_operan
 static void
 parse_option (const char *option)
 {
-  if (CONST_STRNEQ (option, "dsp"))
+  if (disassembler_options_cmp (option, "dsp") == 0)
     add_to_decodelist (DSP, NONE);
 
-  else if (CONST_STRNEQ (option, "spfp"))
+  else if (disassembler_options_cmp (option, "spfp") == 0)
     add_to_decodelist (FLOAT, SPX);
 
-  else if (CONST_STRNEQ (option, "dpfp"))
+  else if (disassembler_options_cmp (option, "dpfp") == 0)
     add_to_decodelist (FLOAT, DPX);
 
-  else if (CONST_STRNEQ (option, "quarkse_em"))
+  else if (disassembler_options_cmp (option, "quarkse_em") == 0)
     {
       add_to_decodelist (FLOAT, DPX);
       add_to_decodelist (FLOAT, SPX);
-      add_to_decodelist (FLOAT, QUARKSE);
+      add_to_decodelist (FLOAT, QUARKSE1);
+      add_to_decodelist (FLOAT, QUARKSE2);
     }
 
-  else if (CONST_STRNEQ (option, "fpuda"))
+  else if (disassembler_options_cmp (option, "fpuda") == 0)
     add_to_decodelist (FLOAT, DPA);
 
-  else if (CONST_STRNEQ (option, "fpus"))
+  else if (disassembler_options_cmp (option, "fpus") == 0)
     {
       add_to_decodelist (FLOAT, SP);
       add_to_decodelist (FLOAT, CVT);
     }
 
-  else if (CONST_STRNEQ (option, "fpud"))
+  else if (disassembler_options_cmp (option, "fpud") == 0)
     {
       add_to_decodelist (FLOAT, DP);
       add_to_decodelist (FLOAT, CVT);
     }
+  else if (CONST_STRNEQ (option, "hex"))
+    print_hex = TRUE;
   else
     fprintf (stderr, _("Unrecognised disassembler option: %s\n"), option);
 }
 
-/* Go over the options list and parse it.  */
+#define ARC_CPU_TYPE_A6xx(NAME,EXTRA)			\
+  { #NAME, ARC_OPCODE_ARC600, "ARC600" }
+#define ARC_CPU_TYPE_A7xx(NAME,EXTRA)			\
+  { #NAME, ARC_OPCODE_ARC700, "ARC700" }
+#define ARC_CPU_TYPE_AV2EM(NAME,EXTRA)			\
+  { #NAME,  ARC_OPCODE_ARCv2EM, "ARC EM" }
+#define ARC_CPU_TYPE_AV2HS(NAME,EXTRA)			\
+  { #NAME,  ARC_OPCODE_ARCv2HS, "ARC HS" }
+#define ARC_CPU_TYPE_NONE				\
+  { 0, 0, 0 }
 
-static void
-parse_disassembler_options (const char *options)
+/* A table of CPU names and opcode sets.  */
+static const struct cpu_type
 {
-  if (options == NULL)
-    return;
+  const char *name;
+  unsigned flags;
+  const char *isa;
+}
+  cpu_types[] =
+{
+  #include "elf/arc-cpu.def"
+};
+
+/* Helper for parsing the CPU options.  Accept any of the ARC architectures
+   values.  OPTION should be a value passed to cpu=.  */
+
+static unsigned
+parse_cpu_option (const char *option)
+{
+  int i;
 
-  while (*options)
+  for (i = 0; cpu_types[i].name; ++i)
     {
-      /* Skip empty options.  */
-      if (*options == ',')
+      if (!disassembler_options_cmp (cpu_types[i].name, option))
 	{
-	  ++ options;
-	  continue;
+	  return cpu_types[i].flags;
 	}
+    }
 
-      parse_option (options);
+  fprintf (stderr, _("Unrecognised disassembler CPU option: %s\n"), option);
+  return ARC_OPCODE_NONE;
+}
+
+/* Go over the options list and parse it.  */
 
-      while (*options != ',' && *options != '\0')
-	++ options;
+static void
+parse_disassembler_options (const char *options)
+{
+  const char *option;
+
+  if (options == NULL)
+    return;
+
+  /* Disassembler might be reused for difference CPU's, and cpu option set for
+     the first one shouldn't be applied to second (which might not have
+     explicit cpu in its options.  Therefore it is required to reset enforced
+     CPU when new options are being parsed.  */
+  enforced_isa_mask = ARC_OPCODE_NONE;
+
+  FOR_EACH_DISASSEMBLER_OPTION (option, options)
+    {
+      /* A CPU option?  Cannot use STRING_COMMA_LEN because strncmp is also a
+	 preprocessor macro.  */
+      if (strncmp (option, "cpu=", 4) == 0)
+	/* Strip leading `cpu=`.  */
+	enforced_isa_mask = parse_cpu_option (option + 4);
+      else
+	parse_option (option);
     }
 }
 
@@ -858,16 +917,16 @@ print_insn_arc (bfd_vma memaddr,
   int status;
   unsigned int insn_len;
   unsigned long long insn = 0;
-  unsigned isa_mask;
+  unsigned isa_mask = ARC_OPCODE_NONE;
   const struct arc_opcode *opcode;
   bfd_boolean need_comma;
   bfd_boolean open_braket;
   int size;
   const struct arc_operand *operand;
-  int value;
+  int value, vpcl;
   struct arc_operand_iterator iter;
-  Elf_Internal_Ehdr *header = NULL;
   struct arc_disassemble_info *arc_infop;
+  bfd_boolean rpcl = FALSE, rset = FALSE;
 
   if (info->disassembler_options)
     {
@@ -884,34 +943,44 @@ print_insn_arc (bfd_vma memaddr,
   highbyte  = ((info->endian == BFD_ENDIAN_LITTLE) ? 1 : 0);
   lowbyte = ((info->endian == BFD_ENDIAN_LITTLE) ? 0 : 1);
 
-  if (info->section && info->section->owner)
-    header = elf_elfheader (info->section->owner);
-
-  switch (info->mach)
+  /* Figure out CPU type, unless it was enforced via disassembler options.  */
+  if (enforced_isa_mask == ARC_OPCODE_NONE)
     {
-    case bfd_mach_arc_arc700:
-      isa_mask = ARC_OPCODE_ARC700;
-      break;
+      Elf_Internal_Ehdr *header = NULL;
 
-    case bfd_mach_arc_arc600:
-      isa_mask = ARC_OPCODE_ARC600;
-      break;
+      if (info->section && info->section->owner)
+	header = elf_elfheader (info->section->owner);
 
-    case bfd_mach_arc_arcv2:
-    default:
-      isa_mask = ARC_OPCODE_ARCv2EM;
-      /* TODO: Perhaps remove defitinion of header since it is only used at
-	 this location.  */
-      if (header != NULL
-	  && (header->e_flags & EF_ARC_MACH_MSK) == EF_ARC_CPU_ARCV2HS)
-	{
-	  isa_mask = ARC_OPCODE_ARCv2HS;
-	  /* FPU instructions are not extensions for HS.  */
-	  add_to_decodelist (FLOAT, SP);
-	  add_to_decodelist (FLOAT, DP);
-	  add_to_decodelist (FLOAT, CVT);
+      switch (info->mach)
+	{
+	case bfd_mach_arc_arc700:
+	  isa_mask = ARC_OPCODE_ARC700;
+	  break;
+
+	case bfd_mach_arc_arc600:
+	  isa_mask = ARC_OPCODE_ARC600;
+	  break;
+
+	case bfd_mach_arc_arcv2:
+	default:
+	  isa_mask = ARC_OPCODE_ARCv2EM;
+	  /* TODO: Perhaps remove definition of header since it is only used at
+	     this location.  */
+	  if (header != NULL
+	      && (header->e_flags & EF_ARC_MACH_MSK) == EF_ARC_CPU_ARCV2HS)
+	    isa_mask = ARC_OPCODE_ARCv2HS;
+	  break;
 	}
-      break;
+    }
+  else
+    isa_mask = enforced_isa_mask;
+
+  if (isa_mask == ARC_OPCODE_ARCv2HS)
+    {
+      /* FPU instructions are not extensions for HS.  */
+      add_to_decodelist (FLOAT, SP);
+      add_to_decodelist (FLOAT, DP);
+      add_to_decodelist (FLOAT, CVT);
     }
 
   /* This variable may be set by the instruction decoder.  It suggests
@@ -954,6 +1023,7 @@ print_insn_arc (bfd_vma memaddr,
 
   /* Read the insn into a host word.  */
   status = (*info->read_memory_func) (memaddr, buffer, size, info);
+
   if (status != 0)
     {
       (*info->memory_error_func) (status, memaddr, info);
@@ -1064,23 +1134,23 @@ print_insn_arc (bfd_vma memaddr,
       switch (insn_len)
 	{
 	case 2:
-	  (*info->fprintf_func) (info->stream, ".long %#04llx",
+	  (*info->fprintf_func) (info->stream, ".shor\t%#04llx",
 				 insn & 0xffff);
 	  break;
 	case 4:
-	  (*info->fprintf_func) (info->stream, ".long %#08llx",
+	  (*info->fprintf_func) (info->stream, ".word\t%#08llx",
 				 insn & 0xffffffff);
 	  break;
 	case 6:
-	  (*info->fprintf_func) (info->stream, ".long %#08llx",
+	  (*info->fprintf_func) (info->stream, ".long\t%#08llx",
 				 insn & 0xffffffff);
-	  (*info->fprintf_func) (info->stream, ".long %#04llx",
+	  (*info->fprintf_func) (info->stream, ".long\t%#04llx",
 				 (insn >> 32) & 0xffff);
 	  break;
 	case 8:
-	  (*info->fprintf_func) (info->stream, ".long %#08llx",
+	  (*info->fprintf_func) (info->stream, ".long\t%#08llx",
 				 insn & 0xffffffff);
-	  (*info->fprintf_func) (info->stream, ".long %#08llx",
+	  (*info->fprintf_func) (info->stream, ".long\t%#08llx",
 				 insn >> 32);
 	  break;
 	default:
@@ -1110,6 +1180,7 @@ print_insn_arc (bfd_vma memaddr,
 
   /* Now extract and print the operands.  */
   operand = NULL;
+  vpcl = 0;
   while (operand_iterator_next (&iter, &operand, &value))
     {
       if (open_braket && (operand->flags & ARC_OPERAND_BRAKET))
@@ -1147,6 +1218,20 @@ print_insn_arc (bfd_vma memaddr,
 
       need_comma = TRUE;
 
+      if (operand->flags & ARC_OPERAND_PCREL)
+	{
+	  rpcl = TRUE;
+	  vpcl = value;
+	  rset = TRUE;
+
+	  info->target = (bfd_vma) (memaddr & ~3) + value;
+	}
+      else if (!(operand->flags & ARC_OPERAND_IR))
+	{
+	  vpcl = value;
+	  rset = TRUE;
+	}
+
       /* Print the operand as directed by the flags.  */
       if (operand->flags & ARC_OPERAND_IR)
 	{
@@ -1164,6 +1249,10 @@ print_insn_arc (bfd_vma memaddr,
 		rname = regnames[value + 1];
 	      (*info->fprintf_func) (info->stream, "%s", rname);
 	    }
+	  if (value == 63)
+	    rpcl = TRUE;
+	  else
+	    rpcl = FALSE;
 	}
       else if (operand->flags & ARC_OPERAND_LIMM)
 	{
@@ -1179,22 +1268,18 @@ print_insn_arc (bfd_vma memaddr,
 		info->target = (bfd_vma) value;
 	    }
 	}
-      else if (operand->flags & ARC_OPERAND_PCREL)
-	{
-	   /* PCL relative.  */
-	  if (info->flags & INSN_HAS_RELOC)
-	    memaddr = 0;
-	  (*info->print_address_func) ((memaddr & ~3) + value, info);
-
-	  info->target = (bfd_vma) (memaddr & ~3) + value;
-	}
       else if (operand->flags & ARC_OPERAND_SIGNED)
 	{
 	  const char *rname = get_auxreg (opcode, value, isa_mask);
 	  if (rname && open_braket)
 	    (*info->fprintf_func) (info->stream, "%s", rname);
 	  else
-	    (*info->fprintf_func) (info->stream, "%d", value);
+	    {
+	      if (print_hex)
+		(*info->fprintf_func) (info->stream, "%#x", value);
+	      else
+		(*info->fprintf_func) (info->stream, "%d", value);
+	    }
 	}
       else if (operand->flags & ARC_OPERAND_ADDRTYPE)
 	{
@@ -1208,9 +1293,25 @@ print_insn_arc (bfd_vma memaddr,
 	  if (operand->flags & ARC_OPERAND_TRUNCATE
 	      && !(operand->flags & ARC_OPERAND_ALIGNED32)
 	      && !(operand->flags & ARC_OPERAND_ALIGNED16)
-	      && value > 0 && value <= 14)
-	    (*info->fprintf_func) (info->stream, "r13-%s",
-				   regnames[13 + value - 1]);
+	      && value >= 0 && value <= 14)
+	    {
+	      /* Leave/Enter mnemonics.  */
+	      switch (value)
+		{
+		case 0:
+		  need_comma = FALSE;
+		  break;
+		case 1:
+		  (*info->fprintf_func) (info->stream, "r13");
+		  break;
+		default:
+		  (*info->fprintf_func) (info->stream, "r13-%s",
+					 regnames[13 + value - 1]);
+		  break;
+		}
+	      rpcl = FALSE;
+	      rset = FALSE;
+	    }
 	  else
 	    {
 	      const char *rname = get_auxreg (opcode, value, isa_mask);
@@ -1240,6 +1341,21 @@ print_insn_arc (bfd_vma memaddr,
       arc_infop->operands_count ++;
     }
 
+  /* Pretty print extra info for pc-relative operands.  */
+  if (rpcl && rset)
+    {
+      if (info->flags & INSN_HAS_RELOC)
+	/* If the instruction has a reloc associated with it, then the
+	   offset field in the instruction will actually be the addend
+	   for the reloc.  (We are using REL type relocs).  In such
+	   cases, we can ignore the pc when computing addresses, since
+	   the addend is not currently pc-relative.  */
+	memaddr = 0;
+
+      (*info->fprintf_func) (info->stream, "\t;");
+      (*info->print_address_func) ((memaddr & ~3) + vpcl, info);
+    }
+
   return insn_len;
 }
 
@@ -1264,10 +1380,20 @@ arc_get_disassembler (bfd *abfd)
 void
 print_arc_disassembler_options (FILE *stream)
 {
+  int i;
+
   fprintf (stream, _("\n\
 The following ARC specific disassembler options are supported for use \n\
 with -M switch (multiple options should be separated by commas):\n"));
 
+  /* cpu=... options.  */
+  for (i = 0; cpu_types[i].name; ++i)
+    {
+      /* As of now all value CPU values are less than 16 characters.  */
+      fprintf (stream, "  cpu=%-16s\tEnforce %s ISA.\n",
+	       cpu_types[i].name, cpu_types[i].isa);
+    }
+
   fprintf (stream, _("\
   dsp             Recognize DSP instructions.\n"));
   fprintf (stream, _("\
@@ -1282,6 +1408,8 @@ with -M switch (multiple options should 
   fpus            Recognize single precision FPU instructions.\n"));
   fprintf (stream, _("\
   fpud            Recognize double precision FPU instructions.\n"));
+  fprintf (stream, _("\
+  hex             Use only hexadecimal number to print immediates.\n"));
 }
 
 void arc_insn_decode (bfd_vma addr,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-dis.h ./opcodes/arc-dis.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-dis.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/arc-dis.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Disassembler structures definitions for the ARC.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    Contributed by Claudiu Zissulescu (claziss@synopsys.com)
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-ext.c ./opcodes/arc-ext.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-ext.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/arc-ext.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* ARC target-dependent stuff.  Extension structure access functions
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-ext.h ./opcodes/arc-ext.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-ext.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/arc-ext.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* ARC target-dependent stuff.  Extension data structures.
-   Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   Copyright (C) 1995-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-ext-tbl.h ./opcodes/arc-ext-tbl.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-ext-tbl.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/arc-ext-tbl.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* ARC instruction defintions.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   Copyright (C) 2016-2018 Free Software Foundation, Inc.
 
    Contributed by Claudiu Zissulescu (claziss@synopsys.com)
 
@@ -116,12 +116,12 @@
       ARG_32BIT_ZALIMMLIMM, FLAGS_CCF },
 
 /* Extension instruction declarations.  */
-EXTINSN2OP ("dsp_fp_flt2i",  ARC_OPCODE_ARCv2EM, FLOAT, QUARKSE, 7, 43)
-EXTINSN2OP ("dsp_fp_i2flt",  ARC_OPCODE_ARCv2EM, FLOAT, QUARKSE, 7, 44)
-EXTINSN2OP ("dsp_fp_sqrt",   ARC_OPCODE_ARCv2EM, FLOAT, QUARKSE, 7, 45)
+EXTINSN2OP ("dsp_fp_flt2i",  ARC_OPCODE_ARCv2EM, FLOAT, QUARKSE1, 7, 43)
+EXTINSN2OP ("dsp_fp_i2flt",  ARC_OPCODE_ARCv2EM, FLOAT, QUARKSE1, 7, 44)
+EXTINSN2OP ("dsp_fp_sqrt",   ARC_OPCODE_ARCv2EM, FLOAT, QUARKSE2, 7, 45)
 
-EXTINSN3OP ("dsp_fp_div", ARC_OPCODE_ARCv2EM, FLOAT, QUARKSE, 7, 42)
-EXTINSN3OP ("dsp_fp_cmp", ARC_OPCODE_ARCv2EM, FLOAT, QUARKSE, 7, 43)
+EXTINSN3OP ("dsp_fp_div", ARC_OPCODE_ARCv2EM, FLOAT, QUARKSE2, 7, 42)
+EXTINSN3OP ("dsp_fp_cmp", ARC_OPCODE_ARCv2EM, FLOAT, QUARKSE1, 7, 43)
 
 /* Bitstream extensions.  */
 EXTINSN2OP ("bspeek", ARC_OPCODE_ARCv2EM, BITSTREAM, NONE, 0x05, 0x2E)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-fxi.h ./opcodes/arc-fxi.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-fxi.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/arc-fxi.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Insert/extract functions for the ARC opcodes.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    Contributed by Claudiu Zissulescu (claziss@synopsys.com)
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-nps400-tbl.h ./opcodes/arc-nps400-tbl.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-nps400-tbl.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/arc-nps400-tbl.h	2018-01-09 02:04:59.000000000 +0000
@@ -980,13 +980,13 @@ ASRI_LIKE (0x4, C_NPS_GIC)
 /* Atomic Operations.  */
 
 /* exc<.di><.f> a,a,[xa:b] */
-{ "exc", 0x48060c21, 0xf80fbfff, ARC_OPCODE_ARC700, NONE, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, BRAKET, NPS_XA, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_DI14, C_NPS_F }},
+{ "exc", 0x48060c21, 0xf80fbfff, ARC_OPCODE_ARC700, MISC, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, BRAKET, NPS_XA, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_DI14, C_NPS_F }},
 
 /* exc<.di><.f> a,a,[sd:b] */
-{ "exc", 0x48060c61, 0xf80fbfff, ARC_OPCODE_ARC700, NONE, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, BRAKET, NPS_SD, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_DI14, C_NPS_F }},
+{ "exc", 0x48060c61, 0xf80fbfff, ARC_OPCODE_ARC700, MISC, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, BRAKET, NPS_SD, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_DI14, C_NPS_F }},
 
 /* exc<.di><.f> a,a,[xd:b] */
-{ "exc", 0x48060c81, 0xf80fbfff, ARC_OPCODE_ARC700, NONE, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, BRAKET, NPS_XD, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_DI14, C_NPS_F }},
+{ "exc", 0x48060c81, 0xf80fbfff, ARC_OPCODE_ARC700, MISC, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, BRAKET, NPS_XD, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_DI14, C_NPS_F }},
 
 /* exc<.di><.f> a,a,[b] */
-{ "exc", 0x48060c01, 0xf80fbfff, ARC_OPCODE_ARC700, NONE, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, BRAKET, NPS_R_SRC2_3B, BRAKETdup }, { C_DI14, C_NPS_F }},
+{ "exc", 0x48060c01, 0xf80fbfff, ARC_OPCODE_ARC700, MISC, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, BRAKET, NPS_R_SRC2_3B, BRAKETdup }, { C_DI14, C_NPS_F }},
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-opc.c ./opcodes/arc-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/arc-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Opcode table for the ARC.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    Contributed by Claudiu Zissulescu (claziss@synopsys.com)
 
@@ -170,7 +170,9 @@ insert_rhv2 (unsigned long long  insn,
 	     const char **       errmsg)
 {
   if (value == 0x1E)
-    *errmsg = _("Register R30 is a limm indicator");
+    *errmsg = _("register R30 is a limm indicator");
+  else if (value < 0 || value > 31)
+    *errmsg = _("register out of range");
   return insn |= ((value & 0x07) << 5) | ((value >> 3) & 0x03);
 }
 
@@ -189,7 +191,7 @@ insert_r0 (unsigned long long  insn,
 	   const char **       errmsg)
 {
   if (value != 0)
-    *errmsg = _("Register must be R0");
+    *errmsg = _("register must be R0");
   return insn;
 }
 
@@ -207,7 +209,7 @@ insert_r1 (unsigned long long  insn,
 	   const char **       errmsg)
 {
   if (value != 1)
-    *errmsg = _("Register must be R1");
+    *errmsg = _("register must be R1");
   return insn;
 }
 
@@ -224,7 +226,7 @@ insert_r2 (unsigned long long  insn,
 	   const char **       errmsg)
 {
   if (value != 2)
-    *errmsg = _("Register must be R2");
+    *errmsg = _("register must be R2");
   return insn;
 }
 
@@ -241,7 +243,7 @@ insert_r3 (unsigned long long  insn,
 	   const char **       errmsg)
 {
   if (value != 3)
-    *errmsg = _("Register must be R3");
+    *errmsg = _("register must be R3");
   return insn;
 }
 
@@ -258,7 +260,7 @@ insert_sp (unsigned long long  insn,
 	   const char **       errmsg)
 {
   if (value != 28)
-    *errmsg = _("Register must be SP");
+    *errmsg = _("register must be SP");
   return insn;
 }
 
@@ -275,7 +277,7 @@ insert_gp (unsigned long long  insn,
 	   const char **       errmsg)
 {
   if (value != 26)
-    *errmsg = _("Register must be GP");
+    *errmsg = _("register must be GP");
   return insn;
 }
 
@@ -292,7 +294,7 @@ insert_pcl (unsigned long long  insn,
 	    const char **       errmsg)
 {
   if (value != 63)
-    *errmsg = _("Register must be PCL");
+    *errmsg = _("register must be PCL");
   return insn;
 }
 
@@ -309,7 +311,7 @@ insert_blink (unsigned long long  insn,
 	      const char **       errmsg)
 {
   if (value != 31)
-    *errmsg = _("Register must be BLINK");
+    *errmsg = _("register must be BLINK");
   return insn;
 }
 
@@ -326,7 +328,7 @@ insert_ilink1 (unsigned long long  insn,
 	       const char **       errmsg)
 {
   if (value != 29)
-    *errmsg = _("Register must be ILINK1");
+    *errmsg = _("register must be ILINK1");
   return insn;
 }
 
@@ -343,7 +345,7 @@ insert_ilink2 (unsigned long long  insn,
 	       const char **       errmsg)
 {
   if (value != 30)
-    *errmsg = _("Register must be ILINK2");
+    *errmsg = _("register must be ILINK2");
   return insn;
 }
 
@@ -374,7 +376,7 @@ insert_ras (unsigned long long  insn,
       insn |= (value - 8);
       break;
     default:
-      *errmsg = _("Register must be either r0-r3 or r12-r15");
+      *errmsg = _("register must be either r0-r3 or r12-r15");
       break;
     }
   return insn;
@@ -412,7 +414,7 @@ insert_rbs (unsigned long long  insn,
       insn |= ((value - 8)) << 8;
       break;
     default:
-      *errmsg = _("Register must be either r0-r3 or r12-r15");
+      *errmsg = _("register must be either r0-r3 or r12-r15");
       break;
     }
   return insn;
@@ -450,7 +452,7 @@ insert_rcs (unsigned long long  insn,
       insn |= ((value - 8)) << 5;
       break;
     default:
-      *errmsg = _("Register must be either r0-r3 or r12-r15");
+      *errmsg = _("register must be either r0-r3 or r12-r15");
       break;
     }
   return insn;
@@ -501,7 +503,7 @@ insert_simm3s (unsigned long long  insn,
       tmp = 0x06;
       break;
     default:
-      *errmsg = _("Accepted values are from -1 to 6");
+      *errmsg = _("accepted values are from -1 to 6");
       break;
     }
 
@@ -530,9 +532,9 @@ insert_rrange (unsigned long long  insn,
   int reg2 = value & 0xFFFF;
 
   if (reg1 != 13)
-    *errmsg = _("First register of the range should be r13");
+    *errmsg = _("first register of the range should be r13");
   else if (reg2 < 13 || reg2 > 26)
-    *errmsg = _("Last register of the range doesn't fit");
+    *errmsg = _("last register of the range doesn't fit");
   else
     insn |= ((reg2 - 12) & 0x0F) << 1;
   return insn;
@@ -546,13 +548,28 @@ extract_rrange (unsigned long long  insn
 }
 
 static unsigned long long
+insert_r13el (unsigned long long insn,
+	      long long int value,
+	      const char **errmsg)
+{
+  if (value != 13)
+    {
+      *errmsg = _("invalid register number, should be fp");
+      return insn;
+    }
+
+  insn |= 0x02;
+  return insn;
+}
+
+static unsigned long long
 insert_fpel (unsigned long long  insn,
 	     long long           value,
 	     const char **       errmsg)
 {
   if (value != 27)
     {
-      *errmsg = _("Invalid register number, should be fp");
+      *errmsg = _("invalid register number, should be fp");
       return insn;
     }
 
@@ -574,7 +591,7 @@ insert_blinkel (unsigned long long  insn
 {
   if (value != 31)
     {
-      *errmsg = _("Invalid register number, should be blink");
+      *errmsg = _("invalid register number, should be blink");
       return insn;
     }
 
@@ -596,7 +613,7 @@ insert_pclel (unsigned long long  insn,
 {
   if (value != 63)
     {
-      *errmsg = _("Invalid register number, should be pcl");
+      *errmsg = _("invalid register number, should be pcl");
       return insn;
     }
 
@@ -700,7 +717,7 @@ insert_nps_3bit_reg_at_##OFFSET##_##NAME
       insn |= (value - 8) << (OFFSET);                           \
       break;                                                     \
     default:                                                     \
-      *errmsg = _("Register must be either r0-r3 or r12-r15");   \
+      *errmsg = _("register must be either r0-r3 or r12-r15");   \
       break;                                                     \
     }                                                            \
   return insn;                                                   \
@@ -748,7 +765,7 @@ insert_nps_bitop_size_2b (unsigned long 
       break;
     default:
       value = 0;
-      *errmsg = _("Invalid size, should be 1, 2, 4, or 8");
+      *errmsg = _("invalid size, should be 1, 2, 4, or 8");
       break;
     }
 
@@ -859,7 +876,7 @@ insert_nps_imm_offset (unsigned long lon
       value = value >> 4;
       break;
     default:
-      *errmsg = _("Invalid position, should be 0, 16, 32, 48 or 64.");
+      *errmsg = _("invalid position, should be 0, 16, 32, 48 or 64.");
       value = 0;
     }
   insn |= (value << 10);
@@ -893,7 +910,7 @@ insert_nps_imm_entry (unsigned long long
     value = 3;
     break;
     default:
-      *errmsg = _("Invalid position, should be 16, 32, 64 or 128.");
+      *errmsg = _("invalid position, should be 16, 32, 64 or 128.");
       value = 0;
     }
   insn |= (value << 2);
@@ -915,7 +932,7 @@ insert_nps_size_16bit (unsigned long lon
 {
   if ((value < 1) || (value > 64))
     {
-      *errmsg = _("Invalid size value must be on range 1-64.");
+      *errmsg = _("invalid size value must be on range 1-64.");
       value = 0;
     }
   value = value & 0x3f;
@@ -946,7 +963,7 @@ insert_nps_##NAME##_pos (unsigned long l
      value = value / 8;                                       \
      break;                                                   \
    default:                                                   \
-     *errmsg = _("Invalid position, should be 0, 8, 16, or 24");       \
+     *errmsg = _("invalid position, should be 0, 8, 16, or 24");       \
      value = 0;                                               \
   }                                                           \
   insn |= (value << SHIFT);                                   \
@@ -971,7 +988,7 @@ insert_nps_##NAME (unsigned long long  i
   {                                                                     \
     if (value < LOWER || value > UPPER)                                 \
       {                                                                 \
-        *errmsg = _("Invalid size, value must be "                      \
+        *errmsg = _("invalid size, value must be "                      \
                     #LOWER " to " #UPPER ".");                          \
         return insn;                                                    \
       }                                                                 \
@@ -1107,7 +1124,7 @@ insert_nps_bitop_ins_ext (unsigned long 
                           const char **       errmsg)
 {
   if (value < 0 || value > 28)
-    *errmsg = _("Value must be in the range 0 to 28");
+    *errmsg = _("value must be in the range 0 to 28");
   return insn | (value << 20);
 }
 
@@ -1129,7 +1146,7 @@ insert_nps_##NAME (unsigned long long  i
 		   const char **       errmsg)				\
 {                                                                       \
   if (value < 1 || value > UPPER)                                       \
-    *errmsg = _("Value must be in the range 1 to " #UPPER);             \
+    *errmsg = _("value must be in the range 1 to " #UPPER);             \
   if (value == UPPER)                                                   \
     value = 0;                                                          \
   return insn | (value << SHIFT);                                       \
@@ -1159,9 +1176,9 @@ insert_nps_min_hofs (unsigned long long 
                      const char **       errmsg)
 {
   if (value < 0 || value > 240)
-    *errmsg = _("Value must be in the range 0 to 240");
+    *errmsg = _("value must be in the range 0 to 240");
   if ((value % 16) != 0)
-    *errmsg = _("Value must be a multiple of 16");
+    *errmsg = _("value must be a multiple of 16");
   value = value / 16;
   return insn | (value << 6);
 }
@@ -1181,7 +1198,7 @@ insert_nps_##NAME (unsigned long long  i
                    const char **       errmsg)			       \
 {                                                                      \
   if (value != ARC_NPS400_ADDRTYPE_##VALUE)                            \
-    *errmsg = _("Invalid address type for operand");                   \
+    *errmsg = _("invalid address type for operand");                   \
   return insn;                                                         \
 }                                                                      \
                                                                        \
@@ -1215,7 +1232,7 @@ insert_nps_rbdouble_64 (unsigned long lo
                         const char **       errmsg)
 {
   if (value < 0 || value > 31)
-    *errmsg = _("Value must be in the range 0 to 31");
+    *errmsg = _("value must be in the range 0 to 31");
   return insn | (value << 43) | (value << 48);
 }
 
@@ -1240,7 +1257,7 @@ insert_nps_misc_imm_offset (unsigned lon
 {
   if (value & 0x3)
     {
-      *errmsg = _("Invalid position, should be 0,4, 8,...124.");
+      *errmsg = _("invalid position, should be one of: 0,4,8,...124.");
       value = 0;
     }
   insn |= (value << 6);
@@ -1254,6 +1271,18 @@ extract_nps_misc_imm_offset (unsigned lo
   return ((insn >> 8) & 0x1f) * 4;
 }
 
+static long long int
+extract_uimm12_20 (unsigned long long insn ATTRIBUTE_UNUSED,
+		   bfd_boolean * invalid ATTRIBUTE_UNUSED)
+{
+  int value = 0;
+
+  value |= ((insn >> 6) & 0x003f) << 0;
+  value |= ((insn >> 0) & 0x003f) << 6;
+
+  return value;
+}
+
 /* Include the generic extract/insert functions.  Order is important
    as some of the functions present in the .h may be disabled via
    defines.  */
@@ -1876,7 +1905,10 @@ const struct arc_operand arc_operands[] 
 #define RRANGE_EL	(ZA + 1)
   { 4, 0, 0, ARC_OPERAND_UNSIGNED | ARC_OPERAND_NCHK | ARC_OPERAND_TRUNCATE,
     insert_rrange, extract_rrange},
-#define FP_EL		(RRANGE_EL + 1)
+#define R13_EL		(RRANGE_EL + 1)
+  { 1, 0, 0, ARC_OPERAND_IR | ARC_OPERAND_IGNORE | ARC_OPERAND_NCHK,
+    insert_r13el, extract_rrange },
+#define FP_EL		(R13_EL + 1)
   { 1, 0, 0, ARC_OPERAND_IR | ARC_OPERAND_IGNORE | ARC_OPERAND_NCHK,
     insert_fpel, extract_fpel },
 #define BLINK_EL	(FP_EL + 1)
@@ -1916,8 +1948,12 @@ const struct arc_operand arc_operands[] 
   {12, 0, -SIMM12_20R, ARC_OPERAND_SIGNED | ARC_OPERAND_PCREL,
    insert_simm12_20, extract_simm12_20},
 
+  /* UIMM12_20 mask = 00000000000000000000111111222222.  */
+#define UIMM12_20	(SIMM12_20R + 1)
+  {12, 0, 0, ARC_OPERAND_UNSIGNED, insert_simm12_20, extract_uimm12_20},
+
   /* SIMM3_5_S mask = 0000011100000000.  */
-#define SIMM3_5_S	(SIMM12_20R + 1)
+#define SIMM3_5_S	(UIMM12_20 + 1)
   {3, 0, 0, ARC_OPERAND_SIGNED | ARC_OPERAND_NCHK,
    insert_simm3s, extract_simm3s},
 
@@ -1972,7 +2008,7 @@ const struct arc_operand arc_operands[] 
   /* SIMM21_A16_5 mask = 00000111111111102222222222000000.  */
 #define SIMM21_A16_5	   (UIMM6_8 + 1)
   {21, 0, BFD_RELOC_ARC_S21H_PCREL, ARC_OPERAND_SIGNED
-   | ARC_OPERAND_ALIGNED16 | ARC_OPERAND_TRUNCATE,
+   | ARC_OPERAND_ALIGNED16 | ARC_OPERAND_TRUNCATE | ARC_OPERAND_PCREL,
    insert_simm21_a16_5, extract_simm21_a16_5},
 
   /* SIMM25_A16_5 mask = 00000111111111102222222222003333.  */
@@ -2021,8 +2057,14 @@ const struct arc_operand arc_operands[] 
    | ARC_OPERAND_TRUNCATE | ARC_OPERAND_PCREL, insert_simm8_a16_9_s,
    extract_simm8_a16_9_s},
 
+/* UIMM10_6_S_JLIOFF mask = 0000001111111111.  */
+#define UIMM10_6_S_JLIOFF     (SIMM8_A16_9_S + 1)
+  {12, 0, BFD_RELOC_ARC_JLI_SECTOFF, ARC_OPERAND_UNSIGNED
+   | ARC_OPERAND_ALIGNED32 | ARC_OPERAND_TRUNCATE, insert_uimm10_6_s,
+   extract_uimm10_6_s},
+
   /* UIMM3_23 mask = 00000000000000000000000111000000.  */
-#define UIMM3_23       (SIMM8_A16_9_S + 1)
+#define UIMM3_23       (UIMM10_6_S_JLIOFF + 1)
   {3, 0, 0, ARC_OPERAND_UNSIGNED, insert_uimm3_23, extract_uimm3_23},
 
   /* UIMM10_6_S mask = 0000001111111111.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-regs.h ./opcodes/arc-regs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-regs.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/arc-regs.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* ARC Auxiliary register definitions
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   Copyright (C) 2015-2018 Free Software Foundation, Inc.
 
    Contributed by Claudiu Zissulescu (claziss@synopsys.com)
 
@@ -31,6 +31,7 @@ DEF (0x6,   ARC_OPCODE_ARCALL, NONE, pc)
 DEF (0x7,   ARC_OPCODE_ARCALL, NONE, adcr)
 DEF (0x8,   ARC_OPCODE_ARCALL, NONE, apcr)
 DEF (0x9,   ARC_OPCODE_ARCALL, NONE, acr)
+DEF (0x9,   ARC_OPCODE_ARCv2EM, NONE, sec_stat)
 DEF (0xa,   ARC_OPCODE_ARCALL, NONE, status32)
 DEF (0xb,   ARC_OPCODE_ARC600, NONE, status32_l1)
 DEF (0xb,   ARC_OPCODE_ARC700, NONE, status32_l1)
@@ -69,7 +70,6 @@ DEF (0x23,  ARC_OPCODE_ARCALL, NONE, lim
 DEF (0x24,  ARC_OPCODE_ARCALL, NONE, pcport)
 DEF (0x25,  ARC_OPCODE_ARCALL, NONE, int_vector_base)
 DEF (0x26,  ARC_OPCODE_ARCALL, NONE, aux_vbfdw_mode)
-DEF (0x26,  ARC_OPCODE_ARCALL, NONE, jli_base)
 DEF (0x27,  ARC_OPCODE_ARCALL, NONE, aux_vbfdw_bm0)
 DEF (0x28,  ARC_OPCODE_ARCALL, NONE, aux_vbfdw_bm1)
 DEF (0x29,  ARC_OPCODE_ARCALL, NONE, aux_vbfdw_accu)
@@ -88,9 +88,12 @@ DEF (0x35,  ARC_OPCODE_NONE,   NONE, mx1
 DEF (0x36,  ARC_OPCODE_NONE,   NONE, my0)
 DEF (0x37,  ARC_OPCODE_NONE,   NONE, my1)
 DEF (0x38,  ARC_OPCODE_NONE,   NONE, xyconfig)
+DEF (0x38,  ARC_OPCODE_ARCv2EM, NONE, aux_kernel_sp)
 DEF (0x39,  ARC_OPCODE_NONE,   NONE, scratch_a)
+DEF (0x39,  ARC_OPCODE_ARCv2EM, NONE, aux_sec_u_sp)
 DEF (0x3a,  ARC_OPCODE_NONE,   NONE, burstsys)
 DEF (0x3a,  ARC_OPCODE_NONE,   NONE, tsch)
+DEF (0x3a,  ARC_OPCODE_ARCv2EM, NONE, aux_sec_k_sp)
 DEF (0x3b,  ARC_OPCODE_NONE,   NONE, burstxym)
 DEF (0x3c,  ARC_OPCODE_NONE,   NONE, burstsz)
 DEF (0x3d,  ARC_OPCODE_NONE,   NONE, burstval)
@@ -135,6 +138,7 @@ DEF (0x6d,  ARC_OPCODE_ARCALL, NONE, mpu
 DEF (0x6e,  ARC_OPCODE_ARCALL, NONE, rf_build)
 DEF (0x6f,  ARC_OPCODE_ARCALL, NONE, mmu_build)
 DEF (0x70,  ARC_OPCODE_ARCALL, NONE, aa2_build)
+DEF (0x70,  ARC_OPCODE_ARCv2EM, NONE, sec_vecbase_build)
 DEF (0x71,  ARC_OPCODE_ARCALL, NONE, vecbase_build)
 DEF (0x72,  ARC_OPCODE_ARCALL, NONE, d_cache_build)
 DEF (0x73,  ARC_OPCODE_ARCALL, NONE, madi_build)
@@ -259,8 +263,11 @@ DEF (0x234, ARC_OPCODE_ARCALL, NONE, ap_
 DEF (0x235, ARC_OPCODE_ARCALL, NONE, ap_amv7)
 DEF (0x236, ARC_OPCODE_ARCALL, NONE, ap_amm7)
 DEF (0x237, ARC_OPCODE_ARCALL, NONE, ap_ac7)
+DEF (0x268, ARC_OPCODE_ARCv2EM, NONE, nsc_table_top)
+DEF (0x269, ARC_OPCODE_ARCv2EM, NONE, nsc_table_base)
 DEF (0x278, ARC_OPCODE_ARCALL, NONE, pct_control)
 DEF (0x279, ARC_OPCODE_ARCALL, NONE, pct_bank)
+DEF (0x290, ARC_OPCODE_ARCV2,  NONE, jli_base)
 DEF (0x300, ARC_OPCODE_ARCFPX, DPX,  fp_status)
 DEF (0x301, ARC_OPCODE_ARCFPX, DPX,  aux_dpfp1l)
 DEF (0x301, ARC_OPCODE_ARCFPX, DPX,  d1l)
@@ -283,6 +290,8 @@ DEF (0x403, ARC_OPCODE_ARCALL, NONE, ecr
 DEF (0x404, ARC_OPCODE_ARCALL, NONE, efa)
 DEF (0x405, ARC_OPCODE_ARC700, NONE, tlbpd0)
 DEF (0x406, ARC_OPCODE_ARC700, NONE, tlbpd1)
+DEF (0x406, ARC_OPCODE_ARCv2EM, NONE, ersec_stat)
+DEF (0x407, ARC_OPCODE_ARCv2EM, NONE, aux_sec_except)
 DEF (0x407, ARC_OPCODE_ARC700, NONE, tlbindex)
 DEF (0x408, ARC_OPCODE_ARC700, NONE, tlbcommand)
 DEF (0x409, ARC_OPCODE_ARC700, NONE, pid)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-tbl.h ./opcodes/arc-tbl.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arc-tbl.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/arc-tbl.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* ARC instruction defintions.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    Contributed by Claudiu Zissulescu (claziss@synopsys.com)
 
@@ -38,40 +38,40 @@
 { "abs", 0x262F7F89, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM }, { C_F }},
 
 /* abss<.f> b,c 00101bbb00101111FBBBCCCCCC000101.  */
-{ "abss", 0x282F0005, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RC }, { C_F }},
+{ "abss", 0x282F0005, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RC }, { C_F }},
 
 /* abss<.f> 0,c 0010111000101111F111CCCCCC000101.  */
-{ "abss", 0x2E2F7005, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, RC }, { C_F }},
+{ "abss", 0x2E2F7005, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RC }, { C_F }},
 
 /* abss<.f> b,u6 00101bbb01101111FBBBuuuuuu000101.  */
-{ "abss", 0x286F0005, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, UIMM6_20 }, { C_F }},
+{ "abss", 0x286F0005, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, UIMM6_20 }, { C_F }},
 
 /* abss<.f> 0,u6 0010111001101111F111uuuuuu000101.  */
-{ "abss", 0x2E6F7005, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, UIMM6_20 }, { C_F }},
+{ "abss", 0x2E6F7005, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, UIMM6_20 }, { C_F }},
 
 /* abss<.f> b,limm 00101bbb00101111FBBB111110000101.  */
-{ "abss", 0x282F0F85, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, LIMM }, { C_F }},
+{ "abss", 0x282F0F85, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, LIMM }, { C_F }},
 
 /* abss<.f> 0,limm 0010111000101111F111111110000101.  */
-{ "abss", 0x2E2F7F85, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM }, { C_F }},
+{ "abss", 0x2E2F7F85, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM }, { C_F }},
 
 /* abssh<.f> b,c 00101bbb00101111FBBBCCCCCC000100.  */
-{ "abssh", 0x282F0004, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { C_F }},
+{ "abssh", 0x282F0004, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { C_F }},
 
 /* abssh<.f> 0,c 0010111000101111F111CCCCCC000100.  */
-{ "abssh", 0x2E2F7004, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { C_F }},
+{ "abssh", 0x2E2F7004, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { C_F }},
 
 /* abssh<.f> b,u6 00101bbb01101111FBBBuuuuuu000100.  */
-{ "abssh", 0x286F0004, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { C_F }},
+{ "abssh", 0x286F0004, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { C_F }},
 
 /* abssh<.f> 0,u6 0010111001101111F111uuuuuu000100.  */
-{ "abssh", 0x2E6F7004, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { C_F }},
+{ "abssh", 0x2E6F7004, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { C_F }},
 
 /* abssh<.f> b,limm 00101bbb00101111FBBB111110000100.  */
-{ "abssh", 0x282F0F84, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { C_F }},
+{ "abssh", 0x282F0F84, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { C_F }},
 
 /* abssh<.f> 0,limm 0010111000101111F111111110000100.  */
-{ "abssh", 0x2E2F7F84, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { C_F }},
+{ "abssh", 0x2E2F7F84, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { C_F }},
 
 /* abssw<.f> b,c 00101bbb00101111FBBBCCCCCC000100.  */
 { "abssw", 0x282F0004, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, ARITH, NONE, { RB, RC }, { C_F }},
@@ -178,6 +178,72 @@
 /* adc<.f><.cc> 0,limm,limm 0010011011000001F1111111100QQQQQ.  */
 { "adc", 0x26C17F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
+/* adc<.f><.cc> 0,limm,limm 0010011011000001F1111111100QQQQQ */
+{ "adc", 0x26C17F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* adc<.f> a,limm,limm 0010011000000001F111111110AAAAAA */
+{ "adc", 0x26017F80, 0xFFFF7FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* adcs<.f><.cc> b,b,c 00101bbb11100110FBBBCCCCCC0QQQQQ */
+{ "adcs", 0x28E60000, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* adcs<.f> a,b,c 00101bbb00100110FBBBCCCCCCAAAAAA */
+{ "adcs", 0x28260000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, RC }, { C_F }},
+
+/* adcs<.f> 0,b,c 00101bbb00100110FBBBCCCCCC111110 */
+{ "adcs", 0x2826003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, RC }, { C_F }},
+
+/* adcs<.f> 0,b,u6 00101bbb01100110FBBBuuuuuu111110 */
+{ "adcs", 0x2866003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* adcs<.f> a,b,u6 00101bbb01100110FBBBuuuuuuAAAAAA */
+{ "adcs", 0x28660000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* adcs<.f><.cc> b,b,u6 00101bbb11100110FBBBuuuuuu1QQQQQ */
+{ "adcs", 0x28E60020, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* adcs<.f> b,b,s12 00101bbb10100110FBBBssssssSSSSSS */
+{ "adcs", 0x28A60000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* adcs<.f><.cc> b,b,limm 00101bbb11100110FBBB1111100QQQQQ */
+{ "adcs", 0x28E60F80, 0xF8FF0FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* adcs<.f><.cc> 0,limm,c 0010111011100110F111CCCCCC0QQQQQ */
+{ "adcs", 0x2EE67000, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* adcs<.f> a,b,limm 00101bbb00100110FBBB111110AAAAAA */
+{ "adcs", 0x28260F80, 0xF8FF0FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, LIMM }, { C_F }},
+
+/* adcs<.f> 0,limm,c 0010111001100110F111CCCCCC111110 */
+{ "adcs", 0x2E66703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, RC }, { C_F }},
+
+/* adcs<.f> a,limm,c 0010111000100110F111CCCCCCAAAAAA */
+{ "adcs", 0x2E267000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, RC }, { C_F }},
+
+/* adcs<.f> 0,b,limm 00101bbb00100110FBBB111110111110 */
+{ "adcs", 0x28260FBE, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, LIMM }, { C_F }},
+
+/* adcs<.f><.cc> 0,limm,u6 0010111011100110F111uuuuuu1QQQQQ */
+{ "adcs", 0x2EE67020, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* adcs<.f> 0,limm,u6 0010111001100110F111uuuuuu111110 */
+{ "adcs", 0x2E66703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* adcs<.f> a,limm,u6 0010111001100110F111uuuuuuAAAAAA */
+{ "adcs", 0x2E667000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* adcs<.f> 0,limm,s12 0010111010100110F111ssssssSSSSSS */
+{ "adcs", 0x2EA67000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* adcs<.f> 0,limm,limm 0010111000100110F111111110111110 */
+{ "adcs", 0x2E267FBE, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+
+/* adcs<.f><.cc> 0,limm,limm 0010111011100110F1111111100QQQQQ */
+{ "adcs", 0x2EE67F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* adcs<.f> a,limm,limm 0010111000100110F111111110AAAAAA */
+{ "adcs", 0x2E267F80, 0xFFFF7FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+
 /* add<.f> a,b,c 00100bbb00000000FBBBCCCCCCAAAAAA.  */
 { "add", 0x20000000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, RC }, { C_F }},
 
@@ -452,64 +518,64 @@
 { "addqbs", 0x30E40F80, 0xF8FF0FE0, ARC_OPCODE_ARC700, ARITH, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
 
 /* adds<.f> a,b,c 00101bbb00000110FBBBCCCCCCAAAAAA.  */
-{ "adds", 0x28060000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, RB, RC }, { C_F }},
+{ "adds", 0x28060000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, RC }, { C_F }},
 
 /* adds<.f> 0,b,c 00101bbb00000110FBBBCCCCCC111110.  */
-{ "adds", 0x2806003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, RB, RC }, { C_F }},
+{ "adds", 0x2806003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, RC }, { C_F }},
 
 /* adds<.f><.cc> b,b,c 00101bbb11000110FBBBCCCCCC0QQQQQ.  */
-{ "adds", 0x28C60000, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+{ "adds", 0x28C60000, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
 
 /* adds<.f> a,b,u6 00101bbb01000110FBBBuuuuuuAAAAAA.  */
-{ "adds", 0x28460000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+{ "adds", 0x28460000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, UIMM6_20 }, { C_F }},
 
 /* adds<.f> 0,b,u6 00101bbb01000110FBBBuuuuuu111110.  */
-{ "adds", 0x2846003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "adds", 0x2846003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* adds<.f><.cc> b,b,u6 00101bbb11000110FBBBuuuuuu1QQQQQ.  */
-{ "adds", 0x28C60020, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "adds", 0x28C60020, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* adds<.f> b,b,s12 00101bbb10000110FBBBssssssSSSSSS.  */
-{ "adds", 0x28860000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+{ "adds", 0x28860000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
 
 /* adds<.f> a,limm,c 0010111000000110F111CCCCCCAAAAAA.  */
-{ "adds", 0x2E067000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, LIMM, RC }, { C_F }},
+{ "adds", 0x2E067000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, RC }, { C_F }},
 
 /* adds<.f> a,b,limm 00101bbb00000110FBBB111110AAAAAA.  */
-{ "adds", 0x28060F80, 0xF8FF0FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, RB, LIMM }, { C_F }},
+{ "adds", 0x28060F80, 0xF8FF0FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, LIMM }, { C_F }},
 
 /* adds<.f> 0,limm,c 0010111000000110F111CCCCCC111110.  */
-{ "adds", 0x2E06703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "adds", 0x2E06703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* adds<.f> 0,b,limm 00101bbb00000110FBBB111110111110.  */
-{ "adds", 0x28060FBE, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "adds", 0x28060FBE, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* adds<.f><.cc> b,b,limm 00101bbb11000110FBBB1111100QQQQQ.  */
-{ "adds", 0x28C60F80, 0xF8FF0FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+{ "adds", 0x28C60F80, 0xF8FF0FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
 
 /* adds<.f><.cc> 0,limm,c 0010111011000110F111CCCCCC0QQQQQ.  */
-{ "adds", 0x2EC67000, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "adds", 0x2EC67000, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* adds<.f> a,limm,u6 0010111001000110F111uuuuuuAAAAAA.  */
-{ "adds", 0x2E467000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+{ "adds", 0x2E467000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
 
 /* adds<.f> 0,limm,u6 0010111001000110F111uuuuuu111110.  */
-{ "adds", 0x2E46703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "adds", 0x2E46703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* adds<.f><.cc> 0,limm,u6 0010111011000110F111uuuuuu1QQQQQ.  */
-{ "adds", 0x2EC67020, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "adds", 0x2EC67020, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* adds<.f> 0,limm,s12 0010111010000110F111ssssssSSSSSS.  */
-{ "adds", 0x2E867000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "adds", 0x2E867000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* adds<.f> a,limm,limm 0010111000000110F111111110AAAAAA.  */
-{ "adds", 0x2E067F80, 0xFFFF7FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+{ "adds", 0x2E067F80, 0xFFFF7FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, LIMMdup }, { C_F }},
 
 /* adds<.f> 0,limm,limm 0010111000000110F111111110111110.  */
-{ "adds", 0x2E067FBE, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "adds", 0x2E067FBE, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* adds<.f><.cc> 0,limm,limm 0010111011000110F1111111100QQQQQ.  */
-{ "adds", 0x2EC67F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "adds", 0x2EC67F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* addsdw<.f> a,b,c 00101bbb00101000FBBBCCCCCCAAAAAA.  */
 { "addsdw", 0x28280000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, ARITH, NONE, { RA, RB, RC }, { C_F }},
@@ -797,10 +863,10 @@
 { "asl", 0x2EC07F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, LOGICAL, SHFT2, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* aslacc c 00101000001011110000CCCCCC111111.  */
-{ "aslacc", 0x282F003F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RC }, { 0 }},
+{ "aslacc", 0x282F003F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RC }, { 0 }},
 
 /* aslacc u6 00101000011011110000uuuuuu111111.  */
-{ "aslacc", 0x286F003F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { UIMM6_20 }, { 0 }},
+{ "aslacc", 0x286F003F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { UIMM6_20 }, { 0 }},
 
 /* asldw<.f> a,b,c 00101bbb00100001FBBBCCCCCCAAAAAA.  */
 { "asldw", 0x28210000, 0xF8FF0000, ARC_OPCODE_ARC600, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
@@ -863,70 +929,70 @@
 { "asldw", 0x2EE17F80, 0xFFFF7FE0, ARC_OPCODE_ARC600, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* asls<.f> a,b,c 00101bbb00001010FBBBCCCCCCAAAAAA.  */
-{ "asls", 0x280A0000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, RB, RC }, { C_F }},
+{ "asls", 0x280A0000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, RC }, { C_F }},
 
 /* asls<.f> 0,b,c 00101bbb00001010FBBBCCCCCC111110.  */
-{ "asls", 0x280A003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, RB, RC }, { C_F }},
+{ "asls", 0x280A003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, RC }, { C_F }},
 
 /* asls<.f><.cc> b,b,c 00101bbb11001010FBBBCCCCCC0QQQQQ.  */
-{ "asls", 0x28CA0000, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+{ "asls", 0x28CA0000, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
 
 /* asls<.f> a,b,u6 00101bbb01001010FBBBuuuuuuAAAAAA.  */
-{ "asls", 0x284A0000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+{ "asls", 0x284A0000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, UIMM6_20 }, { C_F }},
 
 /* asls<.f> 0,b,u6 00101bbb01001010FBBBuuuuuu111110.  */
-{ "asls", 0x284A003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "asls", 0x284A003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* asls<.f><.cc> b,b,u6 00101bbb11001010FBBBuuuuuu1QQQQQ.  */
-{ "asls", 0x28CA0020, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "asls", 0x28CA0020, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* asls<.f> b,b,s12 00101bbb10001010FBBBssssssSSSSSS.  */
-{ "asls", 0x288A0000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+{ "asls", 0x288A0000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
 
 /* asls<.f> a,limm,c 0010111000001010F111CCCCCCAAAAAA.  */
-{ "asls", 0x2E0A7000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, LIMM, RC }, { C_F }},
+{ "asls", 0x2E0A7000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, RC }, { C_F }},
 
 /* asls<.f> a,b,limm 00101bbb00001010FBBB111110AAAAAA.  */
-{ "asls", 0x280A0F80, 0xF8FF0FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, RB, LIMM }, { C_F }},
+{ "asls", 0x280A0F80, 0xF8FF0FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, LIMM }, { C_F }},
 
 /* asls<.f> 0,limm,c 0010111000001010F111CCCCCC111110.  */
-{ "asls", 0x2E0A703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "asls", 0x2E0A703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* asls<.f> 0,b,limm 00101bbb00001010FBBB111110111110.  */
-{ "asls", 0x280A0FBE, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "asls", 0x280A0FBE, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* asls<.f><.cc> b,b,limm 00101bbb11001010FBBB1111100QQQQQ.  */
-{ "asls", 0x28CA0F80, 0xF8FF0FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+{ "asls", 0x28CA0F80, 0xF8FF0FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
 
 /* asls<.f><.cc> 0,limm,c 0010111011001010F111CCCCCC0QQQQQ.  */
-{ "asls", 0x2ECA7000, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "asls", 0x2ECA7000, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* asls<.f> a,limm,u6 0010111001001010F111uuuuuuAAAAAA.  */
-{ "asls", 0x2E4A7000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+{ "asls", 0x2E4A7000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
 
 /* asls<.f> 0,limm,u6 0010111001001010F111uuuuuu111110.  */
-{ "asls", 0x2E4A703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "asls", 0x2E4A703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* asls<.f><.cc> 0,limm,u6 0010111011001010F111uuuuuu1QQQQQ.  */
-{ "asls", 0x2ECA7020, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "asls", 0x2ECA7020, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* asls<.f> 0,limm,s12 0010111010001010F111ssssssSSSSSS.  */
-{ "asls", 0x2E8A7000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "asls", 0x2E8A7000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* asls<.f> a,limm,limm 0010111000001010F111111110AAAAAA.  */
-{ "asls", 0x2E0A7F80, 0xFFFF7FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+{ "asls", 0x2E0A7F80, 0xFFFF7FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, LIMMdup }, { C_F }},
 
 /* asls<.f> 0,limm,limm 0010111000001010F111111110111110.  */
-{ "asls", 0x2E0A7FBE, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "asls", 0x2E0A7FBE, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* asls<.f><.cc> 0,limm,limm 0010111011001010F1111111100QQQQQ.  */
-{ "asls", 0x2ECA7F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "asls", 0x2ECA7F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* aslsacc c 00101001001011110000CCCCCC111111.  */
-{ "aslsacc", 0x292F003F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RC }, { 0 }},
+{ "aslsacc", 0x292F003F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RC }, { 0 }},
 
 /* aslsacc u6 00101001011011110000uuuuuu111111.  */
-{ "aslsacc", 0x296F003F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { UIMM6_20 }, { 0 }},
+{ "aslsacc", 0x296F003F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { UIMM6_20 }, { 0 }},
 
 /* aslsdw<.f> a,b,c 00101bbb00100100FBBBCCCCCCAAAAAA.  */
 { "aslsdw", 0x28240000, 0xF8FF0000, ARC_OPCODE_ARC600, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
@@ -1175,64 +1241,64 @@
 { "asrdw", 0x2EE27F80, 0xFFFF7FE0, ARC_OPCODE_ARC600, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* asrs<.f> a,b,c 00101bbb00001011FBBBCCCCCCAAAAAA.  */
-{ "asrs", 0x280B0000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, RB, RC }, { C_F }},
+{ "asrs", 0x280B0000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, RC }, { C_F }},
 
 /* asrs<.f> 0,b,c 00101bbb00001011FBBBCCCCCC111110.  */
-{ "asrs", 0x280B003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, RB, RC }, { C_F }},
+{ "asrs", 0x280B003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, RC }, { C_F }},
 
 /* asrs<.f><.cc> b,b,c 00101bbb11001011FBBBCCCCCC0QQQQQ.  */
-{ "asrs", 0x28CB0000, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+{ "asrs", 0x28CB0000, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
 
 /* asrs<.f> a,b,u6 00101bbb01001011FBBBuuuuuuAAAAAA.  */
-{ "asrs", 0x284B0000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+{ "asrs", 0x284B0000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, UIMM6_20 }, { C_F }},
 
 /* asrs<.f> 0,b,u6 00101bbb01001011FBBBuuuuuu111110.  */
-{ "asrs", 0x284B003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "asrs", 0x284B003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* asrs<.f><.cc> b,b,u6 00101bbb11001011FBBBuuuuuu1QQQQQ.  */
-{ "asrs", 0x28CB0020, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "asrs", 0x28CB0020, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* asrs<.f> b,b,s12 00101bbb10001011FBBBssssssSSSSSS.  */
-{ "asrs", 0x288B0000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+{ "asrs", 0x288B0000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
 
 /* asrs<.f> a,limm,c 0010111000001011F111CCCCCCAAAAAA.  */
-{ "asrs", 0x2E0B7000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, LIMM, RC }, { C_F }},
+{ "asrs", 0x2E0B7000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, RC }, { C_F }},
 
 /* asrs<.f> a,b,limm 00101bbb00001011FBBB111110AAAAAA.  */
-{ "asrs", 0x280B0F80, 0xF8FF0FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, RB, LIMM }, { C_F }},
+{ "asrs", 0x280B0F80, 0xF8FF0FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, LIMM }, { C_F }},
 
 /* asrs<.f> 0,limm,c 0010111000001011F111CCCCCC111110.  */
-{ "asrs", 0x2E0B703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "asrs", 0x2E0B703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* asrs<.f> 0,b,limm 00101bbb00001011FBBB111110111110.  */
-{ "asrs", 0x280B0FBE, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "asrs", 0x280B0FBE, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* asrs<.f><.cc> b,b,limm 00101bbb11001011FBBB1111100QQQQQ.  */
-{ "asrs", 0x28CB0F80, 0xF8FF0FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+{ "asrs", 0x28CB0F80, 0xF8FF0FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
 
 /* asrs<.f><.cc> 0,limm,c 0010111011001011F111CCCCCC0QQQQQ.  */
-{ "asrs", 0x2ECB7000, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "asrs", 0x2ECB7000, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* asrs<.f> a,limm,u6 0010111001001011F111uuuuuuAAAAAA.  */
-{ "asrs", 0x2E4B7000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+{ "asrs", 0x2E4B7000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
 
 /* asrs<.f> 0,limm,u6 0010111001001011F111uuuuuu111110.  */
-{ "asrs", 0x2E4B703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "asrs", 0x2E4B703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* asrs<.f><.cc> 0,limm,u6 0010111011001011F111uuuuuu1QQQQQ.  */
-{ "asrs", 0x2ECB7020, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "asrs", 0x2ECB7020, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* asrs<.f> 0,limm,s12 0010111010001011F111ssssssSSSSSS.  */
-{ "asrs", 0x2E8B7000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "asrs", 0x2E8B7000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* asrs<.f> a,limm,limm 0010111000001011F111111110AAAAAA.  */
-{ "asrs", 0x2E0B7F80, 0xFFFF7FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+{ "asrs", 0x2E0B7F80, 0xFFFF7FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, LIMMdup }, { C_F }},
 
 /* asrs<.f> 0,limm,limm 0010111000001011F111111110111110.  */
-{ "asrs", 0x2E0B7FBE, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "asrs", 0x2E0B7FBE, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* asrs<.f><.cc> 0,limm,limm 0010111011001011F1111111100QQQQQ.  */
-{ "asrs", 0x2ECB7F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "asrs", 0x2ECB7F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* asrsdw<.f> a,b,c 00101bbb00100101FBBBCCCCCCAAAAAA.  */
 { "asrsdw", 0x28250000, 0xF8FF0000, ARC_OPCODE_ARC600, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
@@ -1295,64 +1361,64 @@
 { "asrsdw", 0x2EE57F80, 0xFFFF7FE0, ARC_OPCODE_ARC600, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* asrsr<.f> a,b,c 00101bbb00001100FBBBCCCCCCAAAAAA.  */
-{ "asrsr", 0x280C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "asrsr", 0x280C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* asrsr<.f> 0,b,c 00101bbb00001100FBBBCCCCCC111110.  */
-{ "asrsr", 0x280C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "asrsr", 0x280C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* asrsr<.f><.cc> b,b,c 00101bbb11001100FBBBCCCCCC0QQQQQ.  */
-{ "asrsr", 0x28CC0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "asrsr", 0x28CC0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* asrsr<.f> a,b,u6 00101bbb01001100FBBBuuuuuuAAAAAA.  */
-{ "asrsr", 0x284C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "asrsr", 0x284C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* asrsr<.f> 0,b,u6 00101bbb01001100FBBBuuuuuu111110.  */
-{ "asrsr", 0x284C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "asrsr", 0x284C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* asrsr<.f><.cc> b,b,u6 00101bbb11001100FBBBuuuuuu1QQQQQ.  */
-{ "asrsr", 0x28CC0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "asrsr", 0x28CC0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* asrsr<.f> b,b,s12 00101bbb10001100FBBBssssssSSSSSS.  */
-{ "asrsr", 0x288C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "asrsr", 0x288C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* asrsr<.f> a,limm,c 0010111000001100F111CCCCCCAAAAAA.  */
-{ "asrsr", 0x2E0C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "asrsr", 0x2E0C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* asrsr<.f> a,b,limm 00101bbb00001100FBBB111110AAAAAA.  */
-{ "asrsr", 0x280C0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "asrsr", 0x280C0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* asrsr<.f> 0,limm,c 0010111000001100F111CCCCCC111110.  */
-{ "asrsr", 0x2E0C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "asrsr", 0x2E0C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* asrsr<.f> 0,b,limm 00101bbb00001100FBBB111110111110.  */
-{ "asrsr", 0x280C0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "asrsr", 0x280C0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* asrsr<.f><.cc> b,b,limm 00101bbb11001100FBBB1111100QQQQQ.  */
-{ "asrsr", 0x28CC0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "asrsr", 0x28CC0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* asrsr<.f><.cc> 0,limm,c 0010111011001100F111CCCCCC0QQQQQ.  */
-{ "asrsr", 0x2ECC7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "asrsr", 0x2ECC7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* asrsr<.f> a,limm,u6 0010111001001100F111uuuuuuAAAAAA.  */
-{ "asrsr", 0x2E4C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "asrsr", 0x2E4C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* asrsr<.f> 0,limm,u6 0010111001001100F111uuuuuu111110.  */
-{ "asrsr", 0x2E4C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "asrsr", 0x2E4C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* asrsr<.f><.cc> 0,limm,u6 0010111011001100F111uuuuuu1QQQQQ.  */
-{ "asrsr", 0x2ECC7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "asrsr", 0x2ECC7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* asrsr<.f> 0,limm,s12 0010111010001100F111ssssssSSSSSS.  */
-{ "asrsr", 0x2E8C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "asrsr", 0x2E8C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* asrsr<.f> a,limm,limm 0010111000001100F111111110AAAAAA.  */
-{ "asrsr", 0x2E0C7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "asrsr", 0x2E0C7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* asrsr<.f> 0,limm,limm 0010111000001100F111111110111110.  */
-{ "asrsr", 0x2E0C7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "asrsr", 0x2E0C7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* asrsr<.f><.cc> 0,limm,limm 0010111011001100F1111111100QQQQQ.  */
-{ "asrsr", 0x2ECC7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "asrsr", 0x2ECC7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* asr_s b,c 01111bbbccc11100.  */
 { "asr_s", 0x0000781C, 0x0000F81F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, LOGICAL, NONE, { RB_S, RC_S }, { 0 }},
@@ -2168,82 +2234,82 @@
 { "b_s", 0x0000F000, 0x0000FE00, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, BRANCH, NONE, { SIMM10_A16_7_S }, { 0 }},
 
 /* cbflyhf0r a,b,c 00110bbb000110111BBBCCCCCCAAAAAA.  */
-{ "cbflyhf0r", 0x301B8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "cbflyhf0r", 0x301B8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* cbflyhf0r 0,b,c 00110bbb000110111BBBCCCCCC111110.  */
-{ "cbflyhf0r", 0x301B803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "cbflyhf0r", 0x301B803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* cbflyhf0r<.cc> b,b,c 00110bbb110110111BBBCCCCCC0QQQQQ.  */
-{ "cbflyhf0r", 0x30DB8000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "cbflyhf0r", 0x30DB8000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* cbflyhf0r a,b,u6 00110bbb010110111BBBuuuuuuAAAAAA.  */
-{ "cbflyhf0r", 0x305B8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "cbflyhf0r", 0x305B8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* cbflyhf0r 0,b,u6 00110bbb010110111BBBuuuuuu111110.  */
-{ "cbflyhf0r", 0x305B803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "cbflyhf0r", 0x305B803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* cbflyhf0r<.cc> b,b,u6 00110bbb110110111BBBuuuuuu1QQQQQ.  */
-{ "cbflyhf0r", 0x30DB8020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "cbflyhf0r", 0x30DB8020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* cbflyhf0r b,b,s12 00110bbb100110111BBBssssssSSSSSS.  */
-{ "cbflyhf0r", 0x309B8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "cbflyhf0r", 0x309B8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* cbflyhf0r a,limm,c 00110110000110111111CCCCCCAAAAAA.  */
-{ "cbflyhf0r", 0x361BF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "cbflyhf0r", 0x361BF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* cbflyhf0r a,b,limm 00110bbb000110111BBB111110AAAAAA.  */
-{ "cbflyhf0r", 0x301B8F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "cbflyhf0r", 0x301B8F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* cbflyhf0r 0,limm,c 00110110000110111111CCCCCC111110.  */
-{ "cbflyhf0r", 0x361BF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "cbflyhf0r", 0x361BF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* cbflyhf0r 0,b,limm 00110bbb000110111BBB111110111110.  */
-{ "cbflyhf0r", 0x301B8FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "cbflyhf0r", 0x301B8FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* cbflyhf0r<.cc> b,b,limm 00110bbb110110111BBB1111100QQQQQ.  */
-{ "cbflyhf0r", 0x30DB8F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "cbflyhf0r", 0x30DB8F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* cbflyhf0r<.cc> 0,limm,c 00110110110110111111CCCCCC0QQQQQ.  */
-{ "cbflyhf0r", 0x36DBF000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "cbflyhf0r", 0x36DBF000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* cbflyhf0r a,limm,u6 00110110010110111111uuuuuuAAAAAA.  */
-{ "cbflyhf0r", 0x365BF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "cbflyhf0r", 0x365BF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* cbflyhf0r 0,limm,u6 00110110010110111111uuuuuu111110.  */
-{ "cbflyhf0r", 0x365BF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "cbflyhf0r", 0x365BF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* cbflyhf0r<.cc> 0,limm,u6 00110110110110111111uuuuuu1QQQQQ.  */
-{ "cbflyhf0r", 0x36DBF020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "cbflyhf0r", 0x36DBF020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* cbflyhf0r 0,limm,s12 00110110100110111111ssssssSSSSSS.  */
-{ "cbflyhf0r", 0x369BF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "cbflyhf0r", 0x369BF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* cbflyhf0r a,limm,limm 00110110000110111111111110AAAAAA.  */
-{ "cbflyhf0r", 0x361BFF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "cbflyhf0r", 0x361BFF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* cbflyhf0r 0,limm,limm 00110110000110111111111110111110.  */
-{ "cbflyhf0r", 0x361BFFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "cbflyhf0r", 0x361BFFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* cbflyhf0r<.cc> 0,limm,limm 001101101101101111111111100QQQQQ.  */
-{ "cbflyhf0r", 0x36DBFF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "cbflyhf0r", 0x36DBFF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* cbflyhf1r b,c 00110bbb001011110BBBCCCCCC111001.  */
-{ "cbflyhf1r", 0x302F0039, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { 0 }},
+{ "cbflyhf1r", 0x302F0039, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { 0 }},
 
 /* cbflyhf1r 0,c 00110110001011110111CCCCCC011001.  */
-{ "cbflyhf1r", 0x362F7019, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { 0 }},
+{ "cbflyhf1r", 0x362F7019, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
 
 /* cbflyhf1r b,u6 00110bbb011011110BBBuuuuuu011001.  */
-{ "cbflyhf1r", 0x306F0019, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
+{ "cbflyhf1r", 0x306F0019, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
 
 /* cbflyhf1r 0,u6 00110110011011110111uuuuuu011001.  */
-{ "cbflyhf1r", 0x366F7019, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+{ "cbflyhf1r", 0x366F7019, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
 
 /* cbflyhf1r b,limm 00110bbb001011110BBB111110011001.  */
-{ "cbflyhf1r", 0x302F0F99, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
+{ "cbflyhf1r", 0x302F0F99, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
 
 /* cbflyhf1r 0,limm 00110110001011110111111110011001.  */
-{ "cbflyhf1r", 0x362F7F99, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { 0 }},
+{ "cbflyhf1r", 0x362F7F99, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
 
 /* clamp<.f> a,b,c 00110bbb00101010FBBBCCCCCCAAAAAA.  */
 { "clamp", 0x302A0000, 0xF8FF0000, ARC_OPCODE_ARC700, ARITH, NONE, { RA, RB, RC }, { C_F }},
@@ -2279,244 +2345,244 @@
 { "clri", 0x276F003F, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, CONTROL, NONE, { 0 }, { 0 }},
 
 /* cmacchfr a,b,c 00110bbb000010011BBBCCCCCCAAAAAA.  */
-{ "cmacchfr", 0x30098000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "cmacchfr", 0x30098000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* cmacchfr 0,b,c 00110bbb000010011BBBCCCCCC111110.  */
-{ "cmacchfr", 0x3009803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "cmacchfr", 0x3009803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* cmacchfr<.cc> b,b,c 00110bbb110010011BBBCCCCCC0QQQQQ.  */
-{ "cmacchfr", 0x30C98000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "cmacchfr", 0x30C98000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* cmacchfr a,b,u6 00110bbb010010011BBBuuuuuuAAAAAA.  */
-{ "cmacchfr", 0x30498000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "cmacchfr", 0x30498000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* cmacchfr 0,b,u6 00110bbb010010011BBBuuuuuu111110.  */
-{ "cmacchfr", 0x3049803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "cmacchfr", 0x3049803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* cmacchfr<.cc> b,b,u6 00110bbb110010011BBBuuuuuu1QQQQQ.  */
-{ "cmacchfr", 0x30C98020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "cmacchfr", 0x30C98020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* cmacchfr b,b,s12 00110bbb100010011BBBssssssSSSSSS.  */
-{ "cmacchfr", 0x30898000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "cmacchfr", 0x30898000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* cmacchfr a,limm,c 00110110000010011111CCCCCCAAAAAA.  */
-{ "cmacchfr", 0x3609F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "cmacchfr", 0x3609F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* cmacchfr a,b,limm 00110bbb000010011BBB111110AAAAAA.  */
-{ "cmacchfr", 0x30098F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "cmacchfr", 0x30098F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* cmacchfr 0,limm,c 00110110000010011111CCCCCC111110.  */
-{ "cmacchfr", 0x3609F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "cmacchfr", 0x3609F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* cmacchfr 0,b,limm 00110bbb000010011BBB111110111110.  */
-{ "cmacchfr", 0x30098FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "cmacchfr", 0x30098FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* cmacchfr<.cc> 0,limm,c 00110bbb110010011BBB1111100QQQQQ.  */
-{ "cmacchfr", 0x30C98F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "cmacchfr", 0x30C98F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* cmacchfr<.cc> b,b,limm 00110110110010011111CCCCCC0QQQQQ.  */
-{ "cmacchfr", 0x36C9F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "cmacchfr", 0x36C9F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* cmacchfr a,limm,u6 00110110010010011111uuuuuuAAAAAA.  */
-{ "cmacchfr", 0x3649F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "cmacchfr", 0x3649F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmacchfr 0,limm,u6 00110110010010011111uuuuuu111110.  */
-{ "cmacchfr", 0x3649F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "cmacchfr", 0x3649F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmacchfr<.cc> 0,limm,u6 00110110110010011111uuuuuu1QQQQQ.  */
-{ "cmacchfr", 0x36C9F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "cmacchfr", 0x36C9F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* cmacchfr 0,limm,s12 00110110100010011111ssssssSSSSSS.  */
-{ "cmacchfr", 0x3689F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "cmacchfr", 0x3689F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* cmacchfr a,limm,limm 00110110000010011111111110AAAAAA.  */
-{ "cmacchfr", 0x3609FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "cmacchfr", 0x3609FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* cmacchfr 0,limm,limm 00110110000010011111111110111110.  */
-{ "cmacchfr", 0x3609FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "cmacchfr", 0x3609FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* cmacchfr<.cc> 0,limm,limm 001101101100100111111111100QQQQQ.  */
-{ "cmacchfr", 0x36C9FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "cmacchfr", 0x36C9FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* cmacchnfr a,b,c 00110bbb000010001BBBCCCCCCAAAAAA.  */
-{ "cmacchnfr", 0x30088000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "cmacchnfr", 0x30088000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* cmacchnfr 0,b,c 00110bbb000010001BBBCCCCCC111110.  */
-{ "cmacchnfr", 0x3008803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "cmacchnfr", 0x3008803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* cmacchnfr<.cc> b,b,c 00110bbb110010001BBBCCCCCC0QQQQQ.  */
-{ "cmacchnfr", 0x30C88000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "cmacchnfr", 0x30C88000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* cmacchnfr a,b,u6 00110bbb010010001BBBuuuuuuAAAAAA.  */
-{ "cmacchnfr", 0x30488000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "cmacchnfr", 0x30488000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* cmacchnfr 0,b,u6 00110bbb010010001BBBuuuuuu111110.  */
-{ "cmacchnfr", 0x3048803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "cmacchnfr", 0x3048803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* cmacchnfr<.cc> b,b,u6 00110bbb110010001BBBuuuuuu1QQQQQ.  */
-{ "cmacchnfr", 0x30C88020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "cmacchnfr", 0x30C88020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* cmacchnfr b,b,s12 00110bbb100010001BBBssssssSSSSSS.  */
-{ "cmacchnfr", 0x30888000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "cmacchnfr", 0x30888000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* cmacchnfr a,limm,c 00110110000010001111CCCCCCAAAAAA.  */
-{ "cmacchnfr", 0x3608F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "cmacchnfr", 0x3608F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* cmacchnfr a,b,limm 00110bbb000010001BBB111110AAAAAA.  */
-{ "cmacchnfr", 0x30088F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "cmacchnfr", 0x30088F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* cmacchnfr 0,limm,c 00110110000010001111CCCCCC111110.  */
-{ "cmacchnfr", 0x3608F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "cmacchnfr", 0x3608F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* cmacchnfr 0,b,limm 00110bbb000010001BBB111110111110.  */
-{ "cmacchnfr", 0x30088FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "cmacchnfr", 0x30088FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* cmacchnfr<.cc> 0,limm,c 00110bbb110010001BBB1111100QQQQQ.  */
-{ "cmacchnfr", 0x30C88F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "cmacchnfr", 0x30C88F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* cmacchnfr<.cc> b,b,limm 00110110110010001111CCCCCC0QQQQQ.  */
-{ "cmacchnfr", 0x36C8F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "cmacchnfr", 0x36C8F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* cmacchnfr a,limm,u6 00110110010010001111uuuuuuAAAAAA.  */
-{ "cmacchnfr", 0x3648F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "cmacchnfr", 0x3648F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmacchnfr 0,limm,u6 00110110010010001111uuuuuu111110.  */
-{ "cmacchnfr", 0x3648F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "cmacchnfr", 0x3648F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmacchnfr<.cc> 0,limm,u6 00110110110010001111uuuuuu1QQQQQ.  */
-{ "cmacchnfr", 0x36C8F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "cmacchnfr", 0x36C8F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* cmacchnfr 0,limm,s12 00110110100010001111ssssssSSSSSS.  */
-{ "cmacchnfr", 0x3688F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "cmacchnfr", 0x3688F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* cmacchnfr a,limm,limm 00110110000010001111111110AAAAAA.  */
-{ "cmacchnfr", 0x3608FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "cmacchnfr", 0x3608FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* cmacchnfr 0,limm,limm 00110110000010001111111110111110.  */
-{ "cmacchnfr", 0x3608FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "cmacchnfr", 0x3608FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* cmacchnfr<.cc> 0,limm,limm 001101101100100011111111100QQQQQ.  */
-{ "cmacchnfr", 0x36C8FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "cmacchnfr", 0x36C8FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* cmachfr a,b,c 00110bbb000001111BBBCCCCCCAAAAAA.  */
-{ "cmachfr", 0x30078000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "cmachfr", 0x30078000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* cmachfr 0,b,c 00110bbb000001111BBBCCCCCC111110.  */
-{ "cmachfr", 0x3007803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "cmachfr", 0x3007803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* cmachfr<.cc> b,b,c 00110bbb110001111BBBCCCCCC0QQQQQ.  */
-{ "cmachfr", 0x30C78000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "cmachfr", 0x30C78000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* cmachfr a,b,u6 00110bbb010001111BBBuuuuuuAAAAAA.  */
-{ "cmachfr", 0x30478000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "cmachfr", 0x30478000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* cmachfr 0,b,u6 00110bbb010001111BBBuuuuuu111110.  */
-{ "cmachfr", 0x3047803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "cmachfr", 0x3047803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* cmachfr<.cc> b,b,u6 00110bbb110001111BBBuuuuuu1QQQQQ.  */
-{ "cmachfr", 0x30C78020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "cmachfr", 0x30C78020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* cmachfr b,b,s12 00110bbb100001111BBBssssssSSSSSS.  */
-{ "cmachfr", 0x30878000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "cmachfr", 0x30878000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* cmachfr a,limm,c 00110110000001111111CCCCCCAAAAAA.  */
-{ "cmachfr", 0x3607F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "cmachfr", 0x3607F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* cmachfr a,b,limm 00110bbb000001111BBB111110AAAAAA.  */
-{ "cmachfr", 0x30078F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "cmachfr", 0x30078F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* cmachfr 0,limm,c 00110110000001111111CCCCCC111110.  */
-{ "cmachfr", 0x3607F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "cmachfr", 0x3607F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* cmachfr 0,b,limm 00110bbb000001111BBB111110111110.  */
-{ "cmachfr", 0x30078FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "cmachfr", 0x30078FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* cmachfr<.cc> 0,limm,c 00110bbb110001111BBB1111100QQQQQ.  */
-{ "cmachfr", 0x30C78F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "cmachfr", 0x30C78F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* cmachfr<.cc> b,b,limm 00110110110001111111CCCCCC0QQQQQ.  */
-{ "cmachfr", 0x36C7F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "cmachfr", 0x36C7F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* cmachfr a,limm,u6 00110110010001111111uuuuuuAAAAAA.  */
-{ "cmachfr", 0x3647F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "cmachfr", 0x3647F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmachfr 0,limm,u6 00110110010001111111uuuuuu111110.  */
-{ "cmachfr", 0x3647F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "cmachfr", 0x3647F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmachfr<.cc> 0,limm,u6 00110110110001111111uuuuuu1QQQQQ.  */
-{ "cmachfr", 0x36C7F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "cmachfr", 0x36C7F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* cmachfr 0,limm,s12 00110110100001111111ssssssSSSSSS.  */
-{ "cmachfr", 0x3687F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "cmachfr", 0x3687F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* cmachfr a,limm,limm 00110110000001111111111110AAAAAA.  */
-{ "cmachfr", 0x3607FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "cmachfr", 0x3607FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* cmachfr 0,limm,limm 00110110000001111111111110111110.  */
-{ "cmachfr", 0x3607FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "cmachfr", 0x3607FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* cmachfr<.cc> 0,limm,limm 001101101100011111111111100QQQQQ.  */
-{ "cmachfr", 0x36C7FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "cmachfr", 0x36C7FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* cmachnfr a,b,c 00110bbb000001101BBBCCCCCCAAAAAA.  */
-{ "cmachnfr", 0x30068000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "cmachnfr", 0x30068000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* cmachnfr 0,b,c 00110bbb000001101BBBCCCCCC111110.  */
-{ "cmachnfr", 0x3006803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "cmachnfr", 0x3006803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* cmachnfr<.cc> b,b,c 00110bbb110001101BBBCCCCCC0QQQQQ.  */
-{ "cmachnfr", 0x30C68000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "cmachnfr", 0x30C68000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* cmachnfr a,b,u6 00110bbb010001101BBBuuuuuuAAAAAA.  */
-{ "cmachnfr", 0x30468000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "cmachnfr", 0x30468000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* cmachnfr 0,b,u6 00110bbb010001101BBBuuuuuu111110.  */
-{ "cmachnfr", 0x3046803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "cmachnfr", 0x3046803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* cmachnfr<.cc> b,b,u6 00110bbb110001101BBBuuuuuu1QQQQQ.  */
-{ "cmachnfr", 0x30C68020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "cmachnfr", 0x30C68020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* cmachnfr b,b,s12 00110bbb100001101BBBssssssSSSSSS.  */
-{ "cmachnfr", 0x30868000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "cmachnfr", 0x30868000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* cmachnfr a,limm,c 00110110000001101111CCCCCCAAAAAA.  */
-{ "cmachnfr", 0x3606F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "cmachnfr", 0x3606F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* cmachnfr a,b,limm 00110bbb000001101BBB111110AAAAAA.  */
-{ "cmachnfr", 0x30068F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "cmachnfr", 0x30068F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* cmachnfr 0,limm,c 00110110000001101111CCCCCC111110.  */
-{ "cmachnfr", 0x3606F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "cmachnfr", 0x3606F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* cmachnfr 0,b,limm 00110bbb000001101BBB111110111110.  */
-{ "cmachnfr", 0x30068FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "cmachnfr", 0x30068FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* cmachnfr<.cc> 0,limm,c 00110bbb110001101BBB1111100QQQQQ.  */
-{ "cmachnfr", 0x30C68F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "cmachnfr", 0x30C68F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* cmachnfr<.cc> b,b,limm 00110110110001101111CCCCCC0QQQQQ.  */
-{ "cmachnfr", 0x36C6F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "cmachnfr", 0x36C6F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* cmachnfr a,limm,u6 00110110010001101111uuuuuuAAAAAA.  */
-{ "cmachnfr", 0x3646F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "cmachnfr", 0x3646F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmachnfr 0,limm,u6 00110110010001101111uuuuuu111110.  */
-{ "cmachnfr", 0x3646F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "cmachnfr", 0x3646F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmachnfr<.cc> 0,limm,u6 00110110110001101111uuuuuu1QQQQQ.  */
-{ "cmachnfr", 0x36C6F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "cmachnfr", 0x36C6F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* cmachnfr 0,limm,s12 00110110100001101111ssssssSSSSSS.  */
-{ "cmachnfr", 0x3686F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "cmachnfr", 0x3686F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* cmachnfr a,limm,limm 00110110000001101111111110AAAAAA.  */
-{ "cmachnfr", 0x3606FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "cmachnfr", 0x3606FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* cmachnfr 0,limm,limm 00110110000001101111111110111110.  */
-{ "cmachnfr", 0x3606FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "cmachnfr", 0x3606FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* cmachnfr<.cc> 0,limm,limm 001101101100011011111111100QQQQQ.  */
-{ "cmachnfr", 0x36C6FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "cmachnfr", 0x36C6FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* cmacrdw<.f> a,b,c 00101bbb00100110FBBBCCCCCCAAAAAA.  */
 { "cmacrdw", 0x28260000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
@@ -2639,304 +2705,304 @@
 { "cmp", 0x26CCFF80, 0xFFFFFFE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { LIMM, LIMMdup }, { C_CC }},
 
 /* cmpychfr a,b,c 00110bbb000001011BBBCCCCCCAAAAAA.  */
-{ "cmpychfr", 0x30058000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "cmpychfr", 0x30058000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* cmpychfr 0,b,c 00110bbb000001011BBBCCCCCC111110.  */
-{ "cmpychfr", 0x3005803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "cmpychfr", 0x3005803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* cmpychfr<.cc> b,b,c 00110bbb110001011BBBCCCCCC0QQQQQ.  */
-{ "cmpychfr", 0x30C58000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "cmpychfr", 0x30C58000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* cmpychfr a,b,u6 00110bbb010001011BBBuuuuuuAAAAAA.  */
-{ "cmpychfr", 0x30458000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "cmpychfr", 0x30458000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* cmpychfr 0,b,u6 00110bbb010001011BBBuuuuuu111110.  */
-{ "cmpychfr", 0x3045803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "cmpychfr", 0x3045803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* cmpychfr<.cc> b,b,u6 00110bbb110001011BBBuuuuuu1QQQQQ.  */
-{ "cmpychfr", 0x30C58020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "cmpychfr", 0x30C58020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* cmpychfr b,b,s12 00110bbb100001011BBBssssssSSSSSS.  */
-{ "cmpychfr", 0x30858000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "cmpychfr", 0x30858000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* cmpychfr a,limm,c 00110110000001011111CCCCCCAAAAAA.  */
-{ "cmpychfr", 0x3605F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "cmpychfr", 0x3605F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* cmpychfr a,b,limm 00110bbb000001011BBB111110AAAAAA.  */
-{ "cmpychfr", 0x30058F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "cmpychfr", 0x30058F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* cmpychfr 0,limm,c 00110110000001011111CCCCCC111110.  */
-{ "cmpychfr", 0x3605F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "cmpychfr", 0x3605F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* cmpychfr 0,b,limm 00110bbb000001011BBB111110111110.  */
-{ "cmpychfr", 0x30058FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "cmpychfr", 0x30058FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* cmpychfr<.cc> 0,limm,c 00110bbb110001011BBB1111100QQQQQ.  */
-{ "cmpychfr", 0x30C58F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "cmpychfr", 0x30C58F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* cmpychfr<.cc> b,b,limm 00110110110001011111CCCCCC0QQQQQ.  */
-{ "cmpychfr", 0x36C5F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "cmpychfr", 0x36C5F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* cmpychfr a,limm,u6 00110110010001011111uuuuuuAAAAAA.  */
-{ "cmpychfr", 0x3645F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "cmpychfr", 0x3645F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmpychfr 0,limm,u6 00110110010001011111uuuuuu111110.  */
-{ "cmpychfr", 0x3645F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "cmpychfr", 0x3645F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmpychfr<.cc> 0,limm,u6 00110110110001011111uuuuuu1QQQQQ.  */
-{ "cmpychfr", 0x36C5F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "cmpychfr", 0x36C5F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* cmpychfr 0,limm,s12 00110110100001011111ssssssSSSSSS.  */
-{ "cmpychfr", 0x3685F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "cmpychfr", 0x3685F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* cmpychfr a,limm,limm 00110110000001011111111110AAAAAA.  */
-{ "cmpychfr", 0x3605FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "cmpychfr", 0x3605FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* cmpychfr 0,limm,limm 00110110000001011111111110111110.  */
-{ "cmpychfr", 0x3605FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "cmpychfr", 0x3605FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* cmpychfr<.cc> 0,limm,limm 001101101100010111111111100QQQQQ.  */
-{ "cmpychfr", 0x36C5FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "cmpychfr", 0x36C5FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* cmpychnfr a,b,c 00110bbb000000101BBBCCCCCCAAAAAA.  */
-{ "cmpychnfr", 0x30028000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "cmpychnfr", 0x30028000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* cmpychnfr 0,b,c 00110bbb000000001BBBCCCCCC111110.  */
-{ "cmpychnfr", 0x3000803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "cmpychnfr", 0x3000803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* cmpychnfr<.cc> b,b,c 00110bbb110000001BBBCCCCCC0QQQQQ.  */
-{ "cmpychnfr", 0x30C08000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "cmpychnfr", 0x30C08000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* cmpychnfr a,b,u6 00110bbb010000001BBBuuuuuuAAAAAA.  */
-{ "cmpychnfr", 0x30408000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "cmpychnfr", 0x30408000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* cmpychnfr 0,b,u6 00110bbb010000001BBBuuuuuu111110.  */
-{ "cmpychnfr", 0x3040803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "cmpychnfr", 0x3040803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* cmpychnfr<.cc> b,b,u6 00110bbb110000001BBBuuuuuu1QQQQQ.  */
-{ "cmpychnfr", 0x30C08020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "cmpychnfr", 0x30C08020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* cmpychnfr b,b,s12 00110bbb100000001BBBssssssSSSSSS.  */
-{ "cmpychnfr", 0x30808000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "cmpychnfr", 0x30808000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* cmpychnfr a,limm,c 00110110000000001111CCCCCCAAAAAA.  */
-{ "cmpychnfr", 0x3600F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "cmpychnfr", 0x3600F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* cmpychnfr a,b,limm 00110bbb000000001BBB111110AAAAAA.  */
-{ "cmpychnfr", 0x30008F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "cmpychnfr", 0x30008F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* cmpychnfr 0,limm,c 00110110000000001111CCCCCC111110.  */
-{ "cmpychnfr", 0x3600F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "cmpychnfr", 0x3600F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* cmpychnfr 0,b,limm 00110bbb000000001BBB111110111110.  */
-{ "cmpychnfr", 0x30008FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "cmpychnfr", 0x30008FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* cmpychnfr<.cc> 0,limm,c 00110bbb110000001BBB1111100QQQQQ.  */
-{ "cmpychnfr", 0x30C08F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "cmpychnfr", 0x30C08F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* cmpychnfr<.cc> b,b,limm 00110110110000001111CCCCCC0QQQQQ.  */
-{ "cmpychnfr", 0x36C0F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "cmpychnfr", 0x36C0F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* cmpychnfr a,limm,u6 00110110010000001111uuuuuuAAAAAA.  */
-{ "cmpychnfr", 0x3640F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "cmpychnfr", 0x3640F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmpychnfr 0,limm,u6 00110110010000001111uuuuuu111110.  */
-{ "cmpychnfr", 0x3640F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "cmpychnfr", 0x3640F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmpychnfr<.cc> 0,limm,u6 00110110110000001111uuuuuu1QQQQQ.  */
-{ "cmpychnfr", 0x36C0F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "cmpychnfr", 0x36C0F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* cmpychnfr 0,limm,s12 00110110100000001111ssssssSSSSSS.  */
-{ "cmpychnfr", 0x3680F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "cmpychnfr", 0x3680F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* cmpychnfr a,limm,limm 00110110000000001111111110AAAAAA.  */
-{ "cmpychnfr", 0x3600FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "cmpychnfr", 0x3600FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* cmpychnfr 0,limm,limm 00110110000000001111111110111110.  */
-{ "cmpychnfr", 0x3600FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "cmpychnfr", 0x3600FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* cmpychnfr<.cc> 0,limm,limm 001101101100000011111111100QQQQQ.  */
-{ "cmpychnfr", 0x36C0FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "cmpychnfr", 0x36C0FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* cmpyhfmr a,b,c 00110bbb000110110BBBCCCCCCAAAAAA.  */
-{ "cmpyhfmr", 0x301B0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "cmpyhfmr", 0x301B0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* cmpyhfmr 0,b,c 00110bbb000110110BBBCCCCCC111110.  */
-{ "cmpyhfmr", 0x301B003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "cmpyhfmr", 0x301B003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* cmpyhfmr<.cc> b,b,c 00110bbb110110110BBBCCCCCC0QQQQQ.  */
-{ "cmpyhfmr", 0x30DB0000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "cmpyhfmr", 0x30DB0000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* cmpyhfmr a,b,u6 00110bbb010110110BBBuuuuuuAAAAAA.  */
-{ "cmpyhfmr", 0x305B0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "cmpyhfmr", 0x305B0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* cmpyhfmr 0,b,u6 00110bbb010110110BBBuuuuuu111110.  */
-{ "cmpyhfmr", 0x305B003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "cmpyhfmr", 0x305B003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* cmpyhfmr<.cc> b,b,u6 00110bbb110110110BBBuuuuuu1QQQQQ.  */
-{ "cmpyhfmr", 0x30DB0020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "cmpyhfmr", 0x30DB0020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* cmpyhfmr b,b,s12 00110bbb100110110BBBssssssSSSSSS.  */
-{ "cmpyhfmr", 0x309B0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "cmpyhfmr", 0x309B0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* cmpyhfmr a,limm,c 00110110000110110111CCCCCCAAAAAA.  */
-{ "cmpyhfmr", 0x361B7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "cmpyhfmr", 0x361B7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* cmpyhfmr a,b,limm 00110bbb000110110BBB111110AAAAAA.  */
-{ "cmpyhfmr", 0x301B0F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "cmpyhfmr", 0x301B0F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* cmpyhfmr 0,limm,c 00110110000110110111CCCCCC111110.  */
-{ "cmpyhfmr", 0x361B703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "cmpyhfmr", 0x361B703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* cmpyhfmr 0,b,limm 00110bbb000110110BBB111110111110.  */
-{ "cmpyhfmr", 0x301B0FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "cmpyhfmr", 0x301B0FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* cmpyhfmr<.cc> 0,limm,c 00110bbb110110110BBB1111100QQQQQ.  */
-{ "cmpyhfmr", 0x30DB0F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "cmpyhfmr", 0x30DB0F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* cmpyhfmr<.cc> b,b,limm 00110110110110110111CCCCCC0QQQQQ.  */
-{ "cmpyhfmr", 0x36DB7000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "cmpyhfmr", 0x36DB7000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* cmpyhfmr a,limm,u6 00110110010110110111uuuuuuAAAAAA.  */
-{ "cmpyhfmr", 0x365B7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "cmpyhfmr", 0x365B7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmpyhfmr 0,limm,u6 00110110010110110111uuuuuu111110.  */
-{ "cmpyhfmr", 0x365B703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "cmpyhfmr", 0x365B703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmpyhfmr<.cc> 0,limm,u6 00110110110110110111uuuuuu1QQQQQ.  */
-{ "cmpyhfmr", 0x36DB7020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "cmpyhfmr", 0x36DB7020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* cmpyhfmr 0,limm,s12 00110110100110110111ssssssSSSSSS.  */
-{ "cmpyhfmr", 0x369B7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "cmpyhfmr", 0x369B7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* cmpyhfmr a,limm,limm 00110110000110110111111110AAAAAA.  */
-{ "cmpyhfmr", 0x361B7F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "cmpyhfmr", 0x361B7F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* cmpyhfmr 0,limm,limm 00110110000110110111111110111110.  */
-{ "cmpyhfmr", 0x361B7FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "cmpyhfmr", 0x361B7FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* cmpyhfmr<.cc> 0,limm,limm 001101101101101101111111100QQQQQ.  */
-{ "cmpyhfmr", 0x36DB7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "cmpyhfmr", 0x36DB7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* cmpyhfr a,b,c 00110bbb000000011BBBCCCCCCAAAAAA.  */
-{ "cmpyhfr", 0x30018000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "cmpyhfr", 0x30018000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* cmpyhfr 0,b,c 00110bbb000000011BBBCCCCCC111110.  */
-{ "cmpyhfr", 0x3001803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "cmpyhfr", 0x3001803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* cmpyhfr<.cc> b,b,c 00110bbb110000011BBBCCCCCC0QQQQQ.  */
-{ "cmpyhfr", 0x30C18000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "cmpyhfr", 0x30C18000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* cmpyhfr a,b,u6 00110bbb010000011BBBuuuuuuAAAAAA.  */
-{ "cmpyhfr", 0x30418000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "cmpyhfr", 0x30418000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* cmpyhfr 0,b,u6 00110bbb010000011BBBuuuuuu111110.  */
-{ "cmpyhfr", 0x3041803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "cmpyhfr", 0x3041803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* cmpyhfr<.cc> b,b,u6 00110bbb110000011BBBuuuuuu1QQQQQ.  */
-{ "cmpyhfr", 0x30C18020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "cmpyhfr", 0x30C18020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* cmpyhfr b,b,s12 00110bbb100000011BBBssssssSSSSSS.  */
-{ "cmpyhfr", 0x30818000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "cmpyhfr", 0x30818000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* cmpyhfr a,limm,c 00110110000000011111CCCCCCAAAAAA.  */
-{ "cmpyhfr", 0x3601F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "cmpyhfr", 0x3601F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* cmpyhfr a,b,limm 00110bbb000000011BBB111110AAAAAA.  */
-{ "cmpyhfr", 0x30018F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "cmpyhfr", 0x30018F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* cmpyhfr 0,limm,c 00110110000000011111CCCCCC111110.  */
-{ "cmpyhfr", 0x3601F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "cmpyhfr", 0x3601F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* cmpyhfr 0,b,limm 00110bbb000000011BBB111110111110.  */
-{ "cmpyhfr", 0x30018FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "cmpyhfr", 0x30018FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* cmpyhfr<.cc> 0,limm,c 00110bbb110000011BBB1111100QQQQQ.  */
-{ "cmpyhfr", 0x30C18F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "cmpyhfr", 0x30C18F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* cmpyhfr<.cc> b,b,limm 00110110110000011111CCCCCC0QQQQQ.  */
-{ "cmpyhfr", 0x36C1F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "cmpyhfr", 0x36C1F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* cmpyhfr a,limm,u6 00110110010000011111uuuuuuAAAAAA.  */
-{ "cmpyhfr", 0x3641F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "cmpyhfr", 0x3641F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmpyhfr 0,limm,u6 00110110010000011111uuuuuu111110.  */
-{ "cmpyhfr", 0x3641F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "cmpyhfr", 0x3641F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmpyhfr<.cc> 0,limm,u6 00110110110000011111uuuuuu1QQQQQ.  */
-{ "cmpyhfr", 0x36C1F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "cmpyhfr", 0x36C1F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* cmpyhfr 0,limm,s12 00110110100000011111ssssssSSSSSS.  */
-{ "cmpyhfr", 0x3681F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "cmpyhfr", 0x3681F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* cmpyhfr a,limm,limm 00110110000000011111111110AAAAAA.  */
-{ "cmpyhfr", 0x3601FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "cmpyhfr", 0x3601FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* cmpyhfr 0,limm,limm 00110110000000011111111110111110.  */
-{ "cmpyhfr", 0x3601FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "cmpyhfr", 0x3601FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* cmpyhfr<.cc> 0,limm,limm 001101101100000111111111100QQQQQ.  */
-{ "cmpyhfr", 0x36C1FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "cmpyhfr", 0x36C1FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* cmpyhnfr a,b,c 00110bbb000000001BBBCCCCCCAAAAAA.  */
-{ "cmpyhnfr", 0x30008000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "cmpyhnfr", 0x30008000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* cmpyhnfr 0,b,c 00110bbb000000101BBBCCCCCC111110.  */
-{ "cmpyhnfr", 0x3002803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "cmpyhnfr", 0x3002803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* cmpyhnfr<.cc> b,b,c 00110bbb110000101BBBCCCCCC0QQQQQ.  */
-{ "cmpyhnfr", 0x30C28000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "cmpyhnfr", 0x30C28000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* cmpyhnfr a,b,u6 00110bbb010000101BBBuuuuuuAAAAAA.  */
-{ "cmpyhnfr", 0x30428000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "cmpyhnfr", 0x30428000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* cmpyhnfr 0,b,u6 00110bbb010000101BBBuuuuuu111110.  */
-{ "cmpyhnfr", 0x3042803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "cmpyhnfr", 0x3042803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* cmpyhnfr<.cc> b,b,u6 00110bbb110000101BBBuuuuuu1QQQQQ.  */
-{ "cmpyhnfr", 0x30C28020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "cmpyhnfr", 0x30C28020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* cmpyhnfr b,b,s12 00110bbb100000101BBBssssssSSSSSS.  */
-{ "cmpyhnfr", 0x30828000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "cmpyhnfr", 0x30828000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* cmpyhnfr a,limm,c 00110110000000101111CCCCCCAAAAAA.  */
-{ "cmpyhnfr", 0x3602F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "cmpyhnfr", 0x3602F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* cmpyhnfr a,b,limm 00110bbb000000101BBB111110AAAAAA.  */
-{ "cmpyhnfr", 0x30028F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "cmpyhnfr", 0x30028F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* cmpyhnfr 0,limm,c 00110110000000101111CCCCCC111110.  */
-{ "cmpyhnfr", 0x3602F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "cmpyhnfr", 0x3602F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* cmpyhnfr 0,b,limm 00110bbb000000101BBB111110111110.  */
-{ "cmpyhnfr", 0x30028FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "cmpyhnfr", 0x30028FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* cmpyhnfr<.cc> 0,limm,c 00110bbb110000101BBB1111100QQQQQ.  */
-{ "cmpyhnfr", 0x30C28F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "cmpyhnfr", 0x30C28F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* cmpyhnfr<.cc> b,b,limm 00110110110000101111CCCCCC0QQQQQ.  */
-{ "cmpyhnfr", 0x36C2F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "cmpyhnfr", 0x36C2F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* cmpyhnfr a,limm,u6 00110110010000101111uuuuuuAAAAAA.  */
-{ "cmpyhnfr", 0x3642F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "cmpyhnfr", 0x3642F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmpyhnfr 0,limm,u6 00110110010000101111uuuuuu111110.  */
-{ "cmpyhnfr", 0x3642F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "cmpyhnfr", 0x3642F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* cmpyhnfr<.cc> 0,limm,u6 00110110110000101111uuuuuu1QQQQQ.  */
-{ "cmpyhnfr", 0x36C2F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "cmpyhnfr", 0x36C2F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* cmpyhnfr 0,limm,s12 00110110100000101111ssssssSSSSSS.  */
-{ "cmpyhnfr", 0x3682F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "cmpyhnfr", 0x3682F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* cmpyhnfr a,limm,limm 00110110000000101111111110AAAAAA.  */
-{ "cmpyhnfr", 0x3602FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "cmpyhnfr", 0x3602FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* cmpyhnfr 0,limm,limm 00110110000000101111111110111110.  */
-{ "cmpyhnfr", 0x3602FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "cmpyhnfr", 0x3602FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* cmpyhnfr<.cc> 0,limm,limm 001101101100001011111111100QQQQQ.  */
-{ "cmpyhnfr", 0x36C2FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "cmpyhnfr", 0x36C2FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* cmp_s b,h 01110bbbhhh10HHH.  */
 { "cmp_s", 0x00007010, 0x0000F818, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, ARITH, NONE, { RB_S, R6H }, { 0 }},
@@ -3868,6 +3934,66 @@
 /* divaw<.f><.cc> 0,limm,limm 0010111011001000F1111111100QQQQQ.  */
 { "divaw", 0x2EC87F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
+/* divf<.f><.cc> b,b,c 00110bbb11010000FBBBCCCCCC0QQQQQ */
+{ "divf", 0x30D00000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* divf<.f> a,b,c 00110bbb00010000FBBBCCCCCCAAAAAA */
+{ "divf", 0x30100000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, RC }, { C_F }},
+
+/* divf<.f> 0,b,c 00110bbb00010000FBBBCCCCCC111110 */
+{ "divf", 0x3010003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
+
+/* divf<.f> a,b,u6 00110bbb01010000FBBBuuuuuuAAAAAA */
+{ "divf", 0x30500000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* divf<.f> 0,b,u6 00110bbb01010000FBBBuuuuuu111110 */
+{ "divf", 0x3050003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* divf<.f><.cc> b,b,u6 00110bbb11010000FBBBuuuuuu1QQQQQ */
+{ "divf", 0x30D00020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* divf<.f> b,b,s12 00110bbb10010000FBBBssssssSSSSSS */
+{ "divf", 0x30900000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* divf<.f> a,b,limm 00110bbb00010000FBBB111110AAAAAA */
+{ "divf", 0x30100F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, LIMM }, { C_F }},
+
+/* divf<.f><.cc> b,b,limm 0011011011010000F111CCCCCC0QQQQQ */
+{ "divf", 0x36D07000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* divf<.f><.cc> 0,limm,c 00110bbb11010000FBBB1111100QQQQQ */
+{ "divf", 0x30D00F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* divf<.f> 0,limm,c 0011011000010000F111CCCCCC111110 */
+{ "divf", 0x3610703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+
+/* divf<.f> 0,b,limm 00110bbb00010000FBBB111110111110 */
+{ "divf", 0x30100FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+
+/* divf<.f> a,limm,c 0011011000010000F111CCCCCCAAAAAA */
+{ "divf", 0x36107000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, RC }, { C_F }},
+
+/* divf<.f> 0,limm,u6 0011011001010000F111uuuuuu111110 */
+{ "divf", 0x3650703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* divf<.f> a,limm,u6 0011011001010000F111uuuuuuAAAAAA */
+{ "divf", 0x36507000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* divf<.f><.cc> 0,limm,u6 0011011011010000F111uuuuuu1QQQQQ */
+{ "divf", 0x36D07020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* divf<.f> 0,limm,s12 0011011010010000F111ssssssSSSSSS */
+{ "divf", 0x36907000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* divf<.f> 0,limm,limm 0011011000010000F111111110111110 */
+{ "divf", 0x36107FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+
+/* divf<.f> a,limm,limm 0011011000010000F111111110AAAAAA */
+{ "divf", 0x36107F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* divf<.f><.cc> 0,limm,limm 0011011011010000F1111111100QQQQQ */
+{ "divf", 0x36D07F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
 /* divu<.f> a,b,c 00101bbb00000101FBBBCCCCCCAAAAAA.  */
 { "divu", 0x28050000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DIVREM, DIV, { RA_CHK, RB, RC }, { C_F }},
 
@@ -3989,244 +4115,244 @@
 { "dmach", 0x2ED27F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY7E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* dmachbl<.f> a,b,c 00110bbb00011000FBBBCCCCCCAAAAAA.  */
-{ "dmachbl", 0x30180000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "dmachbl", 0x30180000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* dmachbl<.f> 0,b,c 00110bbb00011000FBBBCCCCCC111110.  */
-{ "dmachbl", 0x3018003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "dmachbl", 0x3018003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* dmachbl<.f><.cc> b,b,c 00110bbb11011000FBBBCCCCCC0QQQQQ.  */
-{ "dmachbl", 0x30D80000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "dmachbl", 0x30D80000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* dmachbl<.f> a,b,u6 00110bbb01011000FBBBuuuuuuAAAAAA.  */
-{ "dmachbl", 0x30580000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "dmachbl", 0x30580000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* dmachbl<.f> 0,b,u6 00110bbb01011000FBBBuuuuuu111110.  */
-{ "dmachbl", 0x3058003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "dmachbl", 0x3058003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* dmachbl<.f><.cc> b,b,u6 00110bbb11011000FBBBuuuuuu1QQQQQ.  */
-{ "dmachbl", 0x30D80020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "dmachbl", 0x30D80020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmachbl<.f> b,b,s12 00110bbb10011000FBBBssssssSSSSSS.  */
-{ "dmachbl", 0x30980000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "dmachbl", 0x30980000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* dmachbl<.f> a,limm,c 0011011000011000F111CCCCCCAAAAAA.  */
-{ "dmachbl", 0x36187000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "dmachbl", 0x36187000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* dmachbl<.f> a,b,limm 00110bbb00011000FBBB111110AAAAAA.  */
-{ "dmachbl", 0x30180F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "dmachbl", 0x30180F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* dmachbl<.f> 0,limm,c 0011011000011000F111CCCCCC111110.  */
-{ "dmachbl", 0x3618703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "dmachbl", 0x3618703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* dmachbl<.f> 0,b,limm 00110bbb00011000FBBB111110111110.  */
-{ "dmachbl", 0x30180FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "dmachbl", 0x30180FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* dmachbl<.f><.cc> b,b,limm 00110bbb11011000FBBB1111100QQQQQ.  */
-{ "dmachbl", 0x30D80F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "dmachbl", 0x30D80F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* dmachbl<.f><.cc> 0,limm,c 0011011011011000F111CCCCCC0QQQQQ.  */
-{ "dmachbl", 0x36D87000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "dmachbl", 0x36D87000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* dmachbl<.f> a,limm,u6 0011011001011000F111uuuuuuAAAAAA.  */
-{ "dmachbl", 0x36587000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "dmachbl", 0x36587000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmachbl<.f> 0,limm,u6 0011011001011000F111uuuuuu111110.  */
-{ "dmachbl", 0x3658703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "dmachbl", 0x3658703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmachbl<.f><.cc> 0,limm,u6 0011011011011000F111uuuuuu1QQQQQ.  */
-{ "dmachbl", 0x36D87020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "dmachbl", 0x36D87020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmachbl<.f> 0,limm,s12 0011011010011000F111ssssssSSSSSS.  */
-{ "dmachbl", 0x36987000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "dmachbl", 0x36987000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* dmachbl<.f> a,limm,limm 0011011000011000F111111110AAAAAA.  */
-{ "dmachbl", 0x36187F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "dmachbl", 0x36187F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* dmachbl<.f> 0,limm,limm 0011011000011000F111111110111110.  */
-{ "dmachbl", 0x36187FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "dmachbl", 0x36187FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* dmachbl<.f><.cc> 0,limm,limm 0011011011011000F1111111100QQQQQ.  */
-{ "dmachbl", 0x36D87F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "dmachbl", 0x36D87F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* dmachbm<.f> a,b,c 00110bbb00011001FBBBCCCCCCAAAAAA.  */
-{ "dmachbm", 0x30190000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "dmachbm", 0x30190000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* dmachbm<.f> 0,b,c 00110bbb00011001FBBBCCCCCC111110.  */
-{ "dmachbm", 0x3019003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "dmachbm", 0x3019003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* dmachbm<.f><.cc> b,b,c 00110bbb11011001FBBBCCCCCC0QQQQQ.  */
-{ "dmachbm", 0x30D90000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "dmachbm", 0x30D90000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* dmachbm<.f> a,b,u6 00110bbb01011001FBBBuuuuuuAAAAAA.  */
-{ "dmachbm", 0x30590000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "dmachbm", 0x30590000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* dmachbm<.f> 0,b,u6 00110bbb01011001FBBBuuuuuu111110.  */
-{ "dmachbm", 0x3059003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "dmachbm", 0x3059003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* dmachbm<.f><.cc> b,b,u6 00110bbb11011001FBBBuuuuuu1QQQQQ.  */
-{ "dmachbm", 0x30D90020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "dmachbm", 0x30D90020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmachbm<.f> b,b,s12 00110bbb10011001FBBBssssssSSSSSS.  */
-{ "dmachbm", 0x30990000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "dmachbm", 0x30990000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* dmachbm<.f> a,limm,c 0011011000011001F111CCCCCCAAAAAA.  */
-{ "dmachbm", 0x36197000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "dmachbm", 0x36197000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* dmachbm<.f> a,b,limm 00110bbb00011001FBBB111110AAAAAA.  */
-{ "dmachbm", 0x30190F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "dmachbm", 0x30190F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* dmachbm<.f> 0,limm,c 0011011000011001F111CCCCCC111110.  */
-{ "dmachbm", 0x3619703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "dmachbm", 0x3619703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* dmachbm<.f> 0,b,limm 00110bbb00011001FBBB111110111110.  */
-{ "dmachbm", 0x30190FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "dmachbm", 0x30190FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* dmachbm<.f><.cc> b,b,limm 00110bbb11011001FBBB1111100QQQQQ.  */
-{ "dmachbm", 0x30D90F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "dmachbm", 0x30D90F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* dmachbm<.f><.cc> 0,limm,c 0011011011011001F111CCCCCC0QQQQQ.  */
-{ "dmachbm", 0x36D97000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "dmachbm", 0x36D97000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* dmachbm<.f> a,limm,u6 0011011001011001F111uuuuuuAAAAAA.  */
-{ "dmachbm", 0x36597000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "dmachbm", 0x36597000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmachbm<.f> 0,limm,u6 0011011001011001F111uuuuuu111110.  */
-{ "dmachbm", 0x3659703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "dmachbm", 0x3659703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmachbm<.f><.cc> 0,limm,u6 0011011011011001F111uuuuuu1QQQQQ.  */
-{ "dmachbm", 0x36D97020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "dmachbm", 0x36D97020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmachbm<.f> 0,limm,s12 0011011010011001F111ssssssSSSSSS.  */
-{ "dmachbm", 0x36997000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "dmachbm", 0x36997000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* dmachbm<.f> a,limm,limm 0011011000011001F111111110AAAAAA.  */
-{ "dmachbm", 0x36197F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "dmachbm", 0x36197F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* dmachbm<.f> 0,limm,limm 0011011000011001F111111110111110.  */
-{ "dmachbm", 0x36197FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "dmachbm", 0x36197FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* dmachbm<.f><.cc> 0,limm,limm 0011011011011001F1111111100QQQQQ.  */
-{ "dmachbm", 0x36D97F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "dmachbm", 0x36D97F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* dmachf<.f> a,b,c 00101bbb00101100FBBBCCCCCCAAAAAA.  */
-{ "dmachf", 0x282C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "dmachf", 0x282C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* dmachf<.f> 0,b,c 00101bbb00101100FBBBCCCCCC111110.  */
-{ "dmachf", 0x282C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "dmachf", 0x282C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* dmachf<.f><.cc> b,b,c 00101bbb11101100FBBBCCCCCC0QQQQQ.  */
-{ "dmachf", 0x28EC0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "dmachf", 0x28EC0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* dmachf<.f> a,b,u6 00101bbb01101100FBBBuuuuuuAAAAAA.  */
-{ "dmachf", 0x286C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "dmachf", 0x286C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* dmachf<.f> 0,b,u6 00101bbb01101100FBBBuuuuuu111110.  */
-{ "dmachf", 0x286C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "dmachf", 0x286C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* dmachf<.f><.cc> b,b,u6 00101bbb11101100FBBBuuuuuu1QQQQQ.  */
-{ "dmachf", 0x28EC0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "dmachf", 0x28EC0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmachf<.f> b,b,s12 00101bbb10101100FBBBssssssSSSSSS.  */
-{ "dmachf", 0x28AC0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "dmachf", 0x28AC0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* dmachf<.f> a,limm,c 0010111000101100F111CCCCCCAAAAAA.  */
-{ "dmachf", 0x2E2C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "dmachf", 0x2E2C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* dmachf<.f> a,b,limm 00101bbb00101100FBBB111110AAAAAA.  */
-{ "dmachf", 0x282C0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "dmachf", 0x282C0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* dmachf<.f> 0,limm,c 0010111001101100F111CCCCCC111110.  */
-{ "dmachf", 0x2E6C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "dmachf", 0x2E6C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* dmachf<.f> 0,b,limm 00101bbb00101100FBBB111110111110.  */
-{ "dmachf", 0x282C0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "dmachf", 0x282C0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* dmachf<.f><.cc> b,b,limm 00101bbb11101100FBBB1111100QQQQQ.  */
-{ "dmachf", 0x28EC0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "dmachf", 0x28EC0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* dmachf<.f><.cc> 0,limm,c 0010111011101100F111CCCCCC0QQQQQ.  */
-{ "dmachf", 0x2EEC7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "dmachf", 0x2EEC7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* dmachf<.f> a,limm,u6 0010111001101100F111uuuuuuAAAAAA.  */
-{ "dmachf", 0x2E6C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "dmachf", 0x2E6C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmachf<.f> 0,limm,u6 0010111001101100F111uuuuuu111110.  */
-{ "dmachf", 0x2E6C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "dmachf", 0x2E6C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmachf<.f><.cc> 0,limm,u6 0010111011101100F111uuuuuu1QQQQQ.  */
-{ "dmachf", 0x2EEC7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "dmachf", 0x2EEC7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmachf<.f> 0,limm,s12 0010111010101100F111ssssssSSSSSS.  */
-{ "dmachf", 0x2EAC7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "dmachf", 0x2EAC7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* dmachf<.f> a,limm,limm 0010111000101100F111111110AAAAAA.  */
-{ "dmachf", 0x2E2C7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "dmachf", 0x2E2C7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* dmachf<.f> 0,limm,limm 0010111000101100F111111110111110.  */
-{ "dmachf", 0x2E2C7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "dmachf", 0x2E2C7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* dmachf<.f><.cc> 0,limm,limm 0010111011101100F1111111100QQQQQ.  */
-{ "dmachf", 0x2EEC7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "dmachf", 0x2EEC7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* dmachfr<.f> a,b,c 00101bbb00101101FBBBCCCCCCAAAAAA.  */
-{ "dmachfr", 0x282D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "dmachfr", 0x282D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* dmachfr<.f> 0,b,c 00101bbb00101101FBBBCCCCCC111110.  */
-{ "dmachfr", 0x282D003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "dmachfr", 0x282D003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* dmachfr<.f><.cc> b,b,c 00101bbb11101101FBBBCCCCCC0QQQQQ.  */
-{ "dmachfr", 0x28ED0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "dmachfr", 0x28ED0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* dmachfr<.f> a,b,u6 00101bbb01101101FBBBuuuuuuAAAAAA.  */
-{ "dmachfr", 0x286D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "dmachfr", 0x286D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* dmachfr<.f> 0,b,u6 00101bbb01101101FBBBuuuuuu111110.  */
-{ "dmachfr", 0x286D003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "dmachfr", 0x286D003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* dmachfr<.f><.cc> b,b,u6 00101bbb11101101FBBBuuuuuu1QQQQQ.  */
-{ "dmachfr", 0x28ED0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "dmachfr", 0x28ED0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmachfr<.f> b,b,s12 00101bbb10101101FBBBssssssSSSSSS.  */
-{ "dmachfr", 0x28AD0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "dmachfr", 0x28AD0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* dmachfr<.f> a,limm,c 0010111000101101F111CCCCCCAAAAAA.  */
-{ "dmachfr", 0x2E2D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "dmachfr", 0x2E2D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* dmachfr<.f> a,b,limm 00101bbb00101101FBBB111110AAAAAA.  */
-{ "dmachfr", 0x282D0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "dmachfr", 0x282D0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* dmachfr<.f> 0,limm,c 0010111001101101F111CCCCCC111110.  */
-{ "dmachfr", 0x2E6D703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "dmachfr", 0x2E6D703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* dmachfr<.f> 0,b,limm 00101bbb00101101FBBB111110111110.  */
-{ "dmachfr", 0x282D0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "dmachfr", 0x282D0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* dmachfr<.f><.cc> b,b,limm 00101bbb11101101FBBB1111100QQQQQ.  */
-{ "dmachfr", 0x28ED0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "dmachfr", 0x28ED0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* dmachfr<.f><.cc> 0,limm,c 0010111011101101F111CCCCCC0QQQQQ.  */
-{ "dmachfr", 0x2EED7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "dmachfr", 0x2EED7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* dmachfr<.f> a,limm,u6 0010111001101101F111uuuuuuAAAAAA.  */
-{ "dmachfr", 0x2E6D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "dmachfr", 0x2E6D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmachfr<.f> 0,limm,u6 0010111001101101F111uuuuuu111110.  */
-{ "dmachfr", 0x2E6D703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "dmachfr", 0x2E6D703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmachfr<.f><.cc> 0,limm,u6 0010111011101101F111uuuuuu1QQQQQ.  */
-{ "dmachfr", 0x2EED7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "dmachfr", 0x2EED7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmachfr<.f> 0,limm,s12 0010111010101101F111ssssssSSSSSS.  */
-{ "dmachfr", 0x2EAD7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "dmachfr", 0x2EAD7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* dmachfr<.f> a,limm,limm 0010111000101101F111111110AAAAAA.  */
-{ "dmachfr", 0x2E2D7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "dmachfr", 0x2E2D7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* dmachfr<.f> 0,limm,limm 0010111000101101F111111110111110.  */
-{ "dmachfr", 0x2E2D7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "dmachfr", 0x2E2D7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* dmachfr<.f><.cc> 0,limm,limm 0010111011101101F1111111100QQQQQ.  */
-{ "dmachfr", 0x2EED7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "dmachfr", 0x2EED7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* dmachu<.f> a,b,c 00101bbb00010011FBBBCCCCCCAAAAAA.  */
 { "dmachu", 0x28130000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY7E, { RA_CHK, RB, RC }, { C_F }},
@@ -4363,6 +4489,66 @@
 /* dmacwh<.f><.cc> 0,limm,limm 0010111011110110F1111111100QQQQQ.  */
 { "dmacwh", 0x2EF67F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
+/* dmacwhf<.f><.cc> b,b,c 00110bbb11110111FBBBCCCCCC0QQQQQ */
+{ "dmacwhf", 0x30F70000, 0xF8FF0020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* dmacwhf<.f> a,b,c 00110bbb00110111FBBBCCCCCCAAAAAA */
+{ "dmacwhf", 0x30370000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, RC }, { C_F }},
+
+/* dmacwhf<.f> 0,b,c 00110bbb00110111FBBBCCCCCC111110 */
+{ "dmacwhf", 0x3037003E, 0xF8FF003F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, RC }, { C_F }},
+
+/* dmacwhf<.f><.cc> b,b,u6 00110bbb11110111FBBBuuuuuu1QQQQQ */
+{ "dmacwhf", 0x30F70020, 0xF8FF0020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* dmacwhf<.f> a,b,u6 00110bbb01110111FBBBuuuuuuAAAAAA */
+{ "dmacwhf", 0x30770000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* dmacwhf<.f> 0,b,u6 00110bbb01110111FBBBuuuuuu111110 */
+{ "dmacwhf", 0x3077003E, 0xF8FF003F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* dmacwhf<.f> b,b,s12 00110bbb10110111FBBBssssssSSSSSS */
+{ "dmacwhf", 0x30B70000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* dmacwhf<.f><.cc> 0,limm,c 0011011011110111F111CCCCCC0QQQQQ */
+{ "dmacwhf", 0x36F77000, 0xFFFF7020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* dmacwhf<.f> 0,b,limm 00110bbb00110111FBBB111110111110 */
+{ "dmacwhf", 0x30370FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, LIMM }, { C_F }},
+
+/* dmacwhf<.f><.cc> b,b,limm 00110bbb11110111FBBB1111100QQQQQ */
+{ "dmacwhf", 0x30F70F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* dmacwhf<.f> a,b,limm 00110bbb00110111FBBB111110AAAAAA */
+{ "dmacwhf", 0x30370F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, LIMM }, { C_F }},
+
+/* dmacwhf<.f> a,limm,c 0011011000110111F111CCCCCCAAAAAA */
+{ "dmacwhf", 0x36377000, 0xFFFF7000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, RC }, { C_F }},
+
+/* dmacwhf<.f> 0,limm,c 0011011000110111F111CCCCCC111110 */
+{ "dmacwhf", 0x3637703E, 0xFFFF703F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_F }},
+
+/* dmacwhf<.f><.cc> 0,limm,u6 0011011011110111F111uuuuuu1QQQQQ */
+{ "dmacwhf", 0x36F77020, 0xFFFF7020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* dmacwhf<.f> a,limm,u6 0011011001110111F111uuuuuuAAAAAA */
+{ "dmacwhf", 0x36777000, 0xFFFF7000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* dmacwhf<.f> 0,limm,u6 0011011001110111F111uuuuuu111110 */
+{ "dmacwhf", 0x3677703E, 0xFFFF703F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* dmacwhf<.f> 0,limm,s12 0011011010110111F111ssssssSSSSSS */
+{ "dmacwhf", 0x36B77000, 0xFFFF7000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* dmacwhf<.f><.cc> 0,limm,limm 0011011011110111F1111111100QQQQQ */
+{ "dmacwhf", 0x36F77F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* dmacwhf<.f> 0,limm,limm 0011011000110111F111111110111110 */
+{ "dmacwhf", 0x36377FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_F }},
+
+/* dmacwhf<.f> a,limm,limm 0011011000110111F111111110AAAAAA */
+{ "dmacwhf", 0x36377F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, LIMMdup }, { C_F }},
+
 /* dmacwhu<.f> a,b,c 00101bbb00110111FBBBCCCCCCAAAAAA.  */
 { "dmacwhu", 0x28370000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { RA_CHK, RB, RC }, { C_F }},
 
@@ -4490,244 +4676,244 @@
 { "dmpyh", 0x2ED07F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY7E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* dmpyhbl<.f> a,b,c 00110bbb00010110FBBBCCCCCCAAAAAA.  */
-{ "dmpyhbl", 0x30160000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "dmpyhbl", 0x30160000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* dmpyhbl<.f> 0,b,c 00110bbb00010110FBBBCCCCCC111110.  */
-{ "dmpyhbl", 0x3016003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "dmpyhbl", 0x3016003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* dmpyhbl<.f><.cc> b,b,c 00110bbb11010110FBBBCCCCCC0QQQQQ.  */
-{ "dmpyhbl", 0x30D60000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "dmpyhbl", 0x30D60000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* dmpyhbl<.f> a,b,u6 00110bbb01010110FBBBuuuuuuAAAAAA.  */
-{ "dmpyhbl", 0x30560000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "dmpyhbl", 0x30560000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* dmpyhbl<.f> 0,b,u6 00110bbb01010110FBBBuuuuuu111110.  */
-{ "dmpyhbl", 0x3056003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "dmpyhbl", 0x3056003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* dmpyhbl<.f><.cc> b,b,u6 00110bbb11010110FBBBuuuuuu1QQQQQ.  */
-{ "dmpyhbl", 0x30D60020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "dmpyhbl", 0x30D60020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmpyhbl<.f> b,b,s12 00110bbb10010110FBBBssssssSSSSSS.  */
-{ "dmpyhbl", 0x30960000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "dmpyhbl", 0x30960000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* dmpyhbl<.f> a,limm,c 0011011000010110F111CCCCCCAAAAAA.  */
-{ "dmpyhbl", 0x36167000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "dmpyhbl", 0x36167000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* dmpyhbl<.f> a,b,limm 00110bbb00010110FBBB111110AAAAAA.  */
-{ "dmpyhbl", 0x30160F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "dmpyhbl", 0x30160F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* dmpyhbl<.f> 0,limm,c 0011011000010110F111CCCCCC111110.  */
-{ "dmpyhbl", 0x3616703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "dmpyhbl", 0x3616703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* dmpyhbl<.f> 0,b,limm 00110bbb00010110FBBB111110111110.  */
-{ "dmpyhbl", 0x30160FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "dmpyhbl", 0x30160FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* dmpyhbl<.f><.cc> b,b,limm 00110bbb11010110FBBB1111100QQQQQ.  */
-{ "dmpyhbl", 0x30D60F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "dmpyhbl", 0x30D60F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* dmpyhbl<.f><.cc> 0,limm,c 0011011011010110F111CCCCCC0QQQQQ.  */
-{ "dmpyhbl", 0x36D67000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "dmpyhbl", 0x36D67000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* dmpyhbl<.f> a,limm,u6 0011011001010110F111uuuuuuAAAAAA.  */
-{ "dmpyhbl", 0x36567000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "dmpyhbl", 0x36567000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmpyhbl<.f> 0,limm,u6 0011011001010110F111uuuuuu111110.  */
-{ "dmpyhbl", 0x3656703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "dmpyhbl", 0x3656703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmpyhbl<.f><.cc> 0,limm,u6 0011011011010110F111uuuuuu1QQQQQ.  */
-{ "dmpyhbl", 0x36D67020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "dmpyhbl", 0x36D67020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmpyhbl<.f> 0,limm,s12 0011011010010110F111ssssssSSSSSS.  */
-{ "dmpyhbl", 0x36967000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "dmpyhbl", 0x36967000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* dmpyhbl<.f> a,limm,limm 0011011000010110F111111110AAAAAA.  */
-{ "dmpyhbl", 0x36167F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "dmpyhbl", 0x36167F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* dmpyhbl<.f> 0,limm,limm 0011011000010110F111111110111110.  */
-{ "dmpyhbl", 0x36167FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "dmpyhbl", 0x36167FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* dmpyhbl<.f><.cc> 0,limm,limm 0011011011010110F1111111100QQQQQ.  */
-{ "dmpyhbl", 0x36D67F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "dmpyhbl", 0x36D67F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* dmpyhbm<.f> a,b,c 00110bbb00010111FBBBCCCCCCAAAAAA.  */
-{ "dmpyhbm", 0x30170000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "dmpyhbm", 0x30170000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* dmpyhbm<.f> 0,b,c 00110bbb00010111FBBBCCCCCC111110.  */
-{ "dmpyhbm", 0x3017003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "dmpyhbm", 0x3017003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* dmpyhbm<.f><.cc> b,b,c 00110bbb11010111FBBBCCCCCC0QQQQQ.  */
-{ "dmpyhbm", 0x30D70000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "dmpyhbm", 0x30D70000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* dmpyhbm<.f> a,b,u6 00110bbb01010111FBBBuuuuuuAAAAAA.  */
-{ "dmpyhbm", 0x30570000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "dmpyhbm", 0x30570000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* dmpyhbm<.f> 0,b,u6 00110bbb01010111FBBBuuuuuu111110.  */
-{ "dmpyhbm", 0x3057003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "dmpyhbm", 0x3057003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* dmpyhbm<.f><.cc> b,b,u6 00110bbb11010111FBBBuuuuuu1QQQQQ.  */
-{ "dmpyhbm", 0x30D70020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "dmpyhbm", 0x30D70020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmpyhbm<.f> b,b,s12 00110bbb10010111FBBBssssssSSSSSS.  */
-{ "dmpyhbm", 0x30970000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "dmpyhbm", 0x30970000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* dmpyhbm<.f> a,limm,c 0011011000010111F111CCCCCCAAAAAA.  */
-{ "dmpyhbm", 0x36177000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "dmpyhbm", 0x36177000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* dmpyhbm<.f> a,b,limm 00110bbb00010111FBBB111110AAAAAA.  */
-{ "dmpyhbm", 0x30170F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "dmpyhbm", 0x30170F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* dmpyhbm<.f> 0,limm,c 0011011000010111F111CCCCCC111110.  */
-{ "dmpyhbm", 0x3617703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "dmpyhbm", 0x3617703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* dmpyhbm<.f> 0,b,limm 00110bbb00010111FBBB111110111110.  */
-{ "dmpyhbm", 0x30170FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "dmpyhbm", 0x30170FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* dmpyhbm<.f><.cc> b,b,limm 00110bbb11010111FBBB1111100QQQQQ.  */
-{ "dmpyhbm", 0x30D70F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "dmpyhbm", 0x30D70F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* dmpyhbm<.f><.cc> 0,limm,c 0011011011010111F111CCCCCC0QQQQQ.  */
-{ "dmpyhbm", 0x36D77000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "dmpyhbm", 0x36D77000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* dmpyhbm<.f> a,limm,u6 0011011001010111F111uuuuuuAAAAAA.  */
-{ "dmpyhbm", 0x36577000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "dmpyhbm", 0x36577000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmpyhbm<.f> 0,limm,u6 0011011001010111F111uuuuuu111110.  */
-{ "dmpyhbm", 0x3657703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "dmpyhbm", 0x3657703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmpyhbm<.f><.cc> 0,limm,u6 0011011011010111F111uuuuuu1QQQQQ.  */
-{ "dmpyhbm", 0x36D77020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "dmpyhbm", 0x36D77020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmpyhbm<.f> 0,limm,s12 0011011010010111F111ssssssSSSSSS.  */
-{ "dmpyhbm", 0x36977000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "dmpyhbm", 0x36977000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* dmpyhbm<.f> a,limm,limm 0011011000010111F111111110AAAAAA.  */
-{ "dmpyhbm", 0x36177F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "dmpyhbm", 0x36177F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* dmpyhbm<.f> 0,limm,limm 0011011000010111F111111110111110.  */
-{ "dmpyhbm", 0x36177FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "dmpyhbm", 0x36177FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* dmpyhbm<.f><.cc> 0,limm,limm 0011011011010111F1111111100QQQQQ.  */
-{ "dmpyhbm", 0x36D77F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "dmpyhbm", 0x36D77F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* dmpyhf<.f> a,b,c 00101bbb00101010FBBBCCCCCCAAAAAA.  */
-{ "dmpyhf", 0x282A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "dmpyhf", 0x282A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* dmpyhf<.f> 0,b,c 00101bbb00101010FBBBCCCCCC111110.  */
-{ "dmpyhf", 0x282A003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "dmpyhf", 0x282A003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* dmpyhf<.f><.cc> b,b,c 00101bbb11101010FBBBCCCCCC0QQQQQ.  */
-{ "dmpyhf", 0x28EA0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "dmpyhf", 0x28EA0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* dmpyhf<.f> a,b,u6 00101bbb01101010FBBBuuuuuuAAAAAA.  */
-{ "dmpyhf", 0x286A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "dmpyhf", 0x286A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* dmpyhf<.f> 0,b,u6 00101bbb01101010FBBBuuuuuu111110.  */
-{ "dmpyhf", 0x286A003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "dmpyhf", 0x286A003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* dmpyhf<.f><.cc> b,b,u6 00101bbb11101010FBBBuuuuuu1QQQQQ.  */
-{ "dmpyhf", 0x28EA0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "dmpyhf", 0x28EA0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmpyhf<.f> b,b,s12 00101bbb10101010FBBBssssssSSSSSS.  */
-{ "dmpyhf", 0x28AA0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "dmpyhf", 0x28AA0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* dmpyhf<.f> a,limm,c 0010111000101010F111CCCCCCAAAAAA.  */
-{ "dmpyhf", 0x2E2A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "dmpyhf", 0x2E2A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* dmpyhf<.f> a,b,limm 00101bbb00101010FBBB111110AAAAAA.  */
-{ "dmpyhf", 0x282A0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "dmpyhf", 0x282A0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* dmpyhf<.f> 0,limm,c 0010111001101010F111CCCCCC111110.  */
-{ "dmpyhf", 0x2E6A703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "dmpyhf", 0x2E6A703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* dmpyhf<.f> 0,b,limm 00101bbb00101010FBBB111110111110.  */
-{ "dmpyhf", 0x282A0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "dmpyhf", 0x282A0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* dmpyhf<.f><.cc> b,b,limm 00101bbb11101010FBBB1111100QQQQQ.  */
-{ "dmpyhf", 0x28EA0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "dmpyhf", 0x28EA0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* dmpyhf<.f><.cc> 0,limm,c 0010111011101010F111CCCCCC0QQQQQ.  */
-{ "dmpyhf", 0x2EEA7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "dmpyhf", 0x2EEA7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* dmpyhf<.f> a,limm,u6 0010111001101010F111uuuuuuAAAAAA.  */
-{ "dmpyhf", 0x2E6A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "dmpyhf", 0x2E6A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmpyhf<.f> 0,limm,u6 0010111001101010F111uuuuuu111110.  */
-{ "dmpyhf", 0x2E6A703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "dmpyhf", 0x2E6A703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmpyhf<.f><.cc> 0,limm,u6 0010111011101010F111uuuuuu1QQQQQ.  */
-{ "dmpyhf", 0x2EEA7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "dmpyhf", 0x2EEA7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmpyhf<.f> 0,limm,s12 0010111010101010F111ssssssSSSSSS.  */
-{ "dmpyhf", 0x2EAA7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "dmpyhf", 0x2EAA7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* dmpyhf<.f> a,limm,limm 0010111000101010F111111110AAAAAA.  */
-{ "dmpyhf", 0x2E2A7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "dmpyhf", 0x2E2A7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* dmpyhf<.f> 0,limm,limm 0010111000101010F111111110111110.  */
-{ "dmpyhf", 0x2E2A7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "dmpyhf", 0x2E2A7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* dmpyhf<.f><.cc> 0,limm,limm 0010111011101010F1111111100QQQQQ.  */
-{ "dmpyhf", 0x2EEA7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "dmpyhf", 0x2EEA7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* dmpyhfr<.f> a,b,c 00101bbb00101011FBBBCCCCCCAAAAAA.  */
-{ "dmpyhfr", 0x282B0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "dmpyhfr", 0x282B0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* dmpyhfr<.f> 0,b,c 00101bbb00101011FBBBCCCCCC111110.  */
-{ "dmpyhfr", 0x282B003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "dmpyhfr", 0x282B003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* dmpyhfr<.f><.cc> b,b,c 00101bbb11101011FBBBCCCCCC0QQQQQ.  */
-{ "dmpyhfr", 0x28EB0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "dmpyhfr", 0x28EB0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* dmpyhfr<.f> a,b,u6 00101bbb01101011FBBBuuuuuuAAAAAA.  */
-{ "dmpyhfr", 0x286B0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "dmpyhfr", 0x286B0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* dmpyhfr<.f> 0,b,u6 00101bbb01101011FBBBuuuuuu111110.  */
-{ "dmpyhfr", 0x286B003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "dmpyhfr", 0x286B003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* dmpyhfr<.f><.cc> b,b,u6 00101bbb11101011FBBBuuuuuu1QQQQQ.  */
-{ "dmpyhfr", 0x28EB0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "dmpyhfr", 0x28EB0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmpyhfr<.f> b,b,s12 00101bbb10101011FBBBssssssSSSSSS.  */
-{ "dmpyhfr", 0x28AB0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "dmpyhfr", 0x28AB0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* dmpyhfr<.f> a,limm,c 0010111000101011F111CCCCCCAAAAAA.  */
-{ "dmpyhfr", 0x2E2B7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "dmpyhfr", 0x2E2B7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* dmpyhfr<.f> a,b,limm 00101bbb00101011FBBB111110AAAAAA.  */
-{ "dmpyhfr", 0x282B0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "dmpyhfr", 0x282B0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* dmpyhfr<.f> 0,limm,c 0010111001101011F111CCCCCC111110.  */
-{ "dmpyhfr", 0x2E6B703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "dmpyhfr", 0x2E6B703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* dmpyhfr<.f> 0,b,limm 00101bbb00101011FBBB111110111110.  */
-{ "dmpyhfr", 0x282B0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "dmpyhfr", 0x282B0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* dmpyhfr<.f><.cc> b,b,limm 00101bbb11101011FBBB1111100QQQQQ.  */
-{ "dmpyhfr", 0x28EB0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "dmpyhfr", 0x28EB0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* dmpyhfr<.f><.cc> 0,limm,c 0010111011101011F111CCCCCC0QQQQQ.  */
-{ "dmpyhfr", 0x2EEB7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "dmpyhfr", 0x2EEB7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* dmpyhfr<.f> a,limm,u6 0010111001101011F111uuuuuuAAAAAA.  */
-{ "dmpyhfr", 0x2E6B7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "dmpyhfr", 0x2E6B7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmpyhfr<.f> 0,limm,u6 0010111001101011F111uuuuuu111110.  */
-{ "dmpyhfr", 0x2E6B703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "dmpyhfr", 0x2E6B703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmpyhfr<.f><.cc> 0,limm,u6 0010111011101011F111uuuuuu1QQQQQ.  */
-{ "dmpyhfr", 0x2EEB7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "dmpyhfr", 0x2EEB7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmpyhfr<.f> 0,limm,s12 0010111010101011F111ssssssSSSSSS.  */
-{ "dmpyhfr", 0x2EAB7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "dmpyhfr", 0x2EAB7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* dmpyhfr<.f> a,limm,limm 0010111000101011F111111110AAAAAA.  */
-{ "dmpyhfr", 0x2E2B7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "dmpyhfr", 0x2E2B7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* dmpyhfr<.f> 0,limm,limm 0010111000101011F111111110111110.  */
-{ "dmpyhfr", 0x2E2B7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "dmpyhfr", 0x2E2B7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* dmpyhfr<.f><.cc> 0,limm,limm 0010111011101011F1111111100QQQQQ.  */
-{ "dmpyhfr", 0x2EEB7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "dmpyhfr", 0x2EEB7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* dmpyhu<.f> a,b,c 00101bbb00010001FBBBCCCCCCAAAAAA.  */
 { "dmpyhu", 0x28110000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY7E, { RA_CHK, RB, RC }, { C_F }},
@@ -4790,64 +4976,64 @@
 { "dmpyhu", 0x2ED17F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY7E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* dmpyhwf<.f> a,b,c 00101bbb00101000FBBBCCCCCCAAAAAA.  */
-{ "dmpyhwf", 0x28280000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "dmpyhwf", 0x28280000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* dmpyhwf<.f> 0,b,c 00101bbb00101000FBBBCCCCCC111110.  */
-{ "dmpyhwf", 0x2828003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "dmpyhwf", 0x2828003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* dmpyhwf<.f><.cc> b,b,c 00101bbb11101000FBBBCCCCCC0QQQQQ.  */
-{ "dmpyhwf", 0x28E80000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "dmpyhwf", 0x28E80000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* dmpyhwf<.f> a,b,u6 00101bbb01101000FBBBuuuuuuAAAAAA.  */
-{ "dmpyhwf", 0x28680000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "dmpyhwf", 0x28680000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* dmpyhwf<.f> 0,b,u6 00101bbb01101000FBBBuuuuuu111110.  */
-{ "dmpyhwf", 0x2868003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "dmpyhwf", 0x2868003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* dmpyhwf<.f><.cc> b,b,u6 00101bbb11101000FBBBuuuuuu1QQQQQ.  */
-{ "dmpyhwf", 0x28E80020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "dmpyhwf", 0x28E80020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmpyhwf<.f> b,b,s12 00101bbb10101000FBBBssssssSSSSSS.  */
-{ "dmpyhwf", 0x28A80000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "dmpyhwf", 0x28A80000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* dmpyhwf<.f> a,limm,c 0010111000101000F111CCCCCCAAAAAA.  */
-{ "dmpyhwf", 0x2E287000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "dmpyhwf", 0x2E287000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* dmpyhwf<.f> a,b,limm 00101bbb00101000FBBB111110AAAAAA.  */
-{ "dmpyhwf", 0x28280F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "dmpyhwf", 0x28280F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* dmpyhwf<.f> 0,limm,c 0010111001101000F111CCCCCC111110.  */
-{ "dmpyhwf", 0x2E68703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "dmpyhwf", 0x2E68703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* dmpyhwf<.f> 0,b,limm 00101bbb00101000FBBB111110111110.  */
-{ "dmpyhwf", 0x28280FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "dmpyhwf", 0x28280FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* dmpyhwf<.f><.cc> b,b,limm 00101bbb11101000FBBB1111100QQQQQ.  */
-{ "dmpyhwf", 0x28E80F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "dmpyhwf", 0x28E80F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* dmpyhwf<.f><.cc> 0,limm,c 0010111011101000F111CCCCCC0QQQQQ.  */
-{ "dmpyhwf", 0x2EE87000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "dmpyhwf", 0x2EE87000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* dmpyhwf<.f> a,limm,u6 0010111001101000F111uuuuuuAAAAAA.  */
-{ "dmpyhwf", 0x2E687000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "dmpyhwf", 0x2E687000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmpyhwf<.f> 0,limm,u6 0010111001101000F111uuuuuu111110.  */
-{ "dmpyhwf", 0x2E68703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "dmpyhwf", 0x2E68703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* dmpyhwf<.f><.cc> 0,limm,u6 0010111011101000F111uuuuuu1QQQQQ.  */
-{ "dmpyhwf", 0x2EE87020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "dmpyhwf", 0x2EE87020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* dmpyhwf<.f> 0,limm,s12 0010111010101000F111ssssssSSSSSS.  */
-{ "dmpyhwf", 0x2EA87000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "dmpyhwf", 0x2EA87000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* dmpyhwf<.f> a,limm,limm 0010111000101000F111111110AAAAAA.  */
-{ "dmpyhwf", 0x2E287F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "dmpyhwf", 0x2E287F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* dmpyhwf<.f> 0,limm,limm 0010111000101000F111111110111110.  */
-{ "dmpyhwf", 0x2E287FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "dmpyhwf", 0x2E287FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* dmpyhwf<.f><.cc> 0,limm,limm 0010111011101000F1111111100QQQQQ.  */
-{ "dmpyhwf", 0x2EE87F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "dmpyhwf", 0x2EE87F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* dmpywh<.f> a,b,c 00101bbb00110010FBBBCCCCCCAAAAAA.  */
 { "dmpywh", 0x28320000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { RA_CHK, RB, RC }, { C_F }},
@@ -4909,6 +5095,66 @@
 /* dmpywh<.f><.cc> 0,limm,limm 0010111011110010F1111111100QQQQQ.  */
 { "dmpywh", 0x2EF27F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
+/* dmpywhf<.f> 0,b,c 00110bbb00110011FBBBCCCCCC111110 */
+{ "dmpywhf", 0x3033003E, 0xF8FF003F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, RC }, { C_F }},
+
+/* dmpywhf<.f><.cc> b,b,c 00110bbb11110011FBBBCCCCCC0QQQQQ */
+{ "dmpywhf", 0x30F30000, 0xF8FF0020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* dmpywhf<.f> a,b,c 00110bbb00110011FBBBCCCCCCAAAAAA */
+{ "dmpywhf", 0x30330000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, RC }, { C_F }},
+
+/* dmpywhf<.f> a,b,u6 00110bbb01110011FBBBuuuuuuAAAAAA */
+{ "dmpywhf", 0x30730000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* dmpywhf<.f><.cc> b,b,u6 00110bbb11110011FBBBuuuuuu1QQQQQ */
+{ "dmpywhf", 0x30F30020, 0xF8FF0020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* dmpywhf<.f> 0,b,u6 00110bbb01110011FBBBuuuuuu111110 */
+{ "dmpywhf", 0x3073003E, 0xF8FF003F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* dmpywhf<.f> b,b,s12 00110bbb10110011FBBBssssssSSSSSS */
+{ "dmpywhf", 0x30B30000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* dmpywhf<.f><.cc> 0,limm,c 0011011011110011F111CCCCCC0QQQQQ */
+{ "dmpywhf", 0x36F37000, 0xFFFF7020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* dmpywhf<.f> a,limm,c 0011011000110011F111CCCCCCAAAAAA */
+{ "dmpywhf", 0x36337000, 0xFFFF7000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, RC }, { C_F }},
+
+/* dmpywhf<.f> a,b,limm 00110bbb00110011FBBB111110AAAAAA */
+{ "dmpywhf", 0x30330F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, LIMM }, { C_F }},
+
+/* dmpywhf<.f> 0,limm,c 0011011000110011F111CCCCCC111110 */
+{ "dmpywhf", 0x3633703E, 0xFFFF703F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_F }},
+
+/* dmpywhf<.f> 0,b,limm 00110bbb00110011FBBB111110111110 */
+{ "dmpywhf", 0x30330FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, LIMM }, { C_F }},
+
+/* dmpywhf<.f><.cc> b,b,limm 00110bbb11110011FBBB1111100QQQQQ */
+{ "dmpywhf", 0x30F30F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* dmpywhf<.f><.cc> 0,limm,u6 0011011011110011F111uuuuuu1QQQQQ */
+{ "dmpywhf", 0x36F37020, 0xFFFF7020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* dmpywhf<.f> a,limm,u6 0011011001110011F111uuuuuuAAAAAA */
+{ "dmpywhf", 0x36737000, 0xFFFF7000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* dmpywhf<.f> 0,limm,u6 0011011001110011F111uuuuuu111110 */
+{ "dmpywhf", 0x3673703E, 0xFFFF703F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* dmpywhf<.f> 0,limm,s12 0011011010110011F111ssssssSSSSSS */
+{ "dmpywhf", 0x36B37000, 0xFFFF7000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* dmpywhf<.f> a,limm,limm 0011011000110011F111111110AAAAAA */
+{ "dmpywhf", 0x36337F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* dmpywhf<.f> 0,limm,limm 0011011000110011F111111110111110 */
+{ "dmpywhf", 0x36337FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_F }},
+
+/* dmpywhf<.f><.cc> 0,limm,limm 0011011011110011F1111111100QQQQQ */
+{ "dmpywhf", 0x36F37F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
 /* dmpywhu<.f> a,b,c 00101bbb00110011FBBBCCCCCCAAAAAA.  */
 { "dmpywhu", 0x28330000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { RA_CHK, RB, RC }, { C_F }},
 
@@ -6185,13 +6431,14 @@
 { "dsubh22", 0x36FB7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, FLOAT, DPA, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* dsync  00100010011011110001RRRRRR111111.  */
-{ "dsync", 0x226F103F, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, CONTROL, NONE, { 0 }, { 0 }},
+{ "dsync", 0x226F103F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, CONTROL, NONE, { 0 }, { 0 }},
 
 /* ei_s u10 010111uuuuuuuuuu.  */
 { "ei_s", 0x00005C00, 0x0000FC00, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, EI, CD2, { UIMM10_6_S }, { 0 }},
 
 /* enter_s u6 110000UU111uuuu0.  */
 { "enter_s", 0x0000C0E0, 0x0000FCE1, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ENTER, CD1, { BRAKET, RRANGE_EL, FP_EL, BLINK_EL, BRAKETdup }, { 0 }},
+{ "enter_s", 0x0000C0E0, 0x0000FCE1, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ENTER, CD1, { BRAKET, R13_EL, FP_EL, BLINK_EL, BRAKETdup }, { 0 }},
 { "enter_s", 0x0000C0E0, 0x0000FCE1, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ENTER, CD1, { UIMM6_11_S }, { 0 }},
 
 /* ex<.di> b,c 00100bbb00101111DBBBCCCCCC001100.  */
@@ -7095,10 +7342,10 @@
 { "flag", 0x20E90F80, 0xF8FF8FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, CONTROL, NONE, { LIMM }, { C_CC }},
 
 /* flagacc c 00101100001011111000CCCCCC111111.  */
-{ "flagacc", 0x2C2F803F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RC }, { 0 }},
+{ "flagacc", 0x2C2F803F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RC }, { 0 }},
 
 /* flagacc u6 00101100011011111000uuuuuu111111.  */
-{ "flagacc", 0x2C6F803F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { UIMM6_20 }, { 0 }},
+{ "flagacc", 0x2C6F803F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { UIMM6_20 }, { 0 }},
 
 /* fls<.f> b,c 00101bbb00101111FBBBCCCCCC010011.  */
 { "fls", 0x282F0013, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, BTSCN, { RB, RC }, { C_F }},
@@ -7725,22 +7972,22 @@
 { "fxtr", 0x30E60F80, 0xF8FF0FE0, ARC_OPCODE_ARC700, ARITH, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
 
 /* getacc b,c 00101bbb001011110BBBCCCCCC011000.  */
-{ "getacc", 0x282F0018, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { 0 }},
+{ "getacc", 0x282F0018, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { 0 }},
 
 /* getacc 0,c 00101110001011110111CCCCCC011000.  */
-{ "getacc", 0x2E2F7018, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { 0 }},
+{ "getacc", 0x2E2F7018, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
 
 /* getacc b,u6 00101bbb011011110BBBuuuuuu011000.  */
-{ "getacc", 0x286F0018, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
+{ "getacc", 0x286F0018, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
 
 /* getacc 0,u6 00101110011011110111uuuuuu011000.  */
-{ "getacc", 0x2E6F7018, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+{ "getacc", 0x2E6F7018, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
 
 /* getacc b,limm 00101bbb001011110BBB111110011000.  */
-{ "getacc", 0x282F0F98, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
+{ "getacc", 0x282F0F98, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
 
 /* getacc 0,limm 00101110001011110111111110011000.  */
-{ "getacc", 0x2E2F7F98, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { 0 }},
+{ "getacc", 0x2E2F7F98, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
 
 /* iaddr<.f> a,b,c 00110bbb00100111FBBBCCCCCCAAAAAA.  */
 { "iaddr", 0x30270000, 0xF8FF0000, ARC_OPCODE_ARC700, ARITH, NONE, { RA, RB, RC }, { C_F }},
@@ -7954,6 +8201,7 @@
 
 /* jli_s u10 010110uuuuuuuuuu.  */
 { "jli_s", 0x00005800, 0x0000FC00, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, JLI, CD1, { UIMM10_6_S }, { 0 }},
+{ "jli_s", 0x00005800, 0x0000FC00, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, JLI, CD1, { UIMM10_6_S_JLIOFF }, { 0 }},
 
 /* jl_s b 01111bbb01000000.  */
 { "jl_s", 0x00007840, 0x0000F8FF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, JUMP, NONE, { BRAKET, RB_S, BRAKETdup }, { 0 }},
@@ -8018,6 +8266,90 @@
 /* kflag<.cc> limm 00100RRR111010011RRR1111100QQQQQ.  */
 { "kflag", 0x20E98F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, CONTROL, NONE, { LIMM }, { C_CC }},
 
+/* prealloc<.aa> b,c 00100bbbaa1100010BBBCCCCCC111110.  */
+{ "prealloc", 0x2031003E, 0xF83F803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, RC, BRAKETdup }, { C_AA8 }},
+
+/* prealloc<.aa> b,s9 00010bbbssssssssSBBB0aa001111110.  */
+{ "prealloc", 0x1000007E, 0xF80009FF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, SIMM9_8, BRAKETdup }, { C_AA21 }},
+
+/* prealloc<.aa> b,limm 00100bbbaa1100010BBB111110111110.  */
+{ "prealloc", 0x20310FBE, 0xF83F8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, LIMM, BRAKETdup }, { C_AA8 }},
+
+/* prealloc limm,c 00100110RR1100010111CCCCCC111110.  */
+{ "prealloc", 0x2631703E, 0xFF3FF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, RC, BRAKETdup }, { 0 }},
+
+/* prealloc limm 000101100000000001110RR001111110.  */
+{ "prealloc", 0x1600707E, 0xFFFFF9FF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, BRAKETdup }, { 0 }},
+
+/* prealloc limm,s9 00010110ssssssssS1110RR001111110.  */
+{ "prealloc", 0x1600707E, 0xFF0079FF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, SIMM9_8, BRAKETdup }, { 0 }},
+
+/* prefetch<.aa> b,c 00100bbbaa1100000BBBCCCCCC111110.  */
+{ "prefetch", 0x2030003E, 0xF83F803F, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, RC, BRAKETdup }, { C_AA8 }},
+
+/* prefetch b 00010bbb000000000BBB0RR000111110.  */
+{ "prefetch", 0x1000003E, 0xF8FF89FF, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, MEMORY, NONE, { BRAKET, RB, BRAKETdup }, { 0 }},
+
+/* prefetch<.aa> b,s9 00010bbbssssssssSBBB0aa000111110.  */
+{ "prefetch", 0x1000003E, 0xF80009FF, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, SIMM9_8, BRAKETdup }, { C_AA21 }},
+
+/* prefetch<.aa> b,limm 00100bbbaa1100000BBB111110111110.  */
+{ "prefetch", 0x20300FBE, 0xF83F8FFF, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, LIMM, BRAKETdup }, { C_AA8 }},
+
+/* prefetch<.aa> limm,c 00100110aa1100000111CCCCCC111110.  */
+{ "prefetch", 0x2630703E, 0xFF3FF03F, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, RC, BRAKETdup }, { C_AA8 }},
+
+/* prefetch limm,c 00100110RR1100000111CCCCCC111110.  */
+{ "prefetch", 0x2630703E, 0xFF3FF03F, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, RC, BRAKETdup }, { 0 }},
+
+/* prefetch limm 000101100000000001110RR000111110.  */
+{ "prefetch", 0x1600703E, 0xFFFFF9FF, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, BRAKETdup }, { 0 }},
+
+/* prefetch<.aa> limm,s9 00010110ssssssssS1110aa000111110.  */
+{ "prefetch", 0x1600703E, 0xFF0079FF, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, MEMORY, NONE, { BRAKET, LIMM, SIMM9_8, BRAKETdup }, { C_AA21 }},
+
+/* prefetch limm,s9 00010110ssssssssS1110RR000111110.  */
+{ "prefetch", 0x1600703E, 0xFF0079FF, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, SIMM9_8, BRAKETdup }, { 0 }},
+
+/* prefetch<.aa> limm,limm 00100110aa1100000111111110111110.  */
+{ "prefetch", 0x26307FBE, 0xFF3FFFFF, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, MEMORY, NONE, { BRAKET, LIMM, LIMMdup, BRAKETdup }, { C_AA8 }},
+
+/* prefetchl2<.aa> b,c 00100bbbaa1100100BBBCCCCCC111110.  */
+{ "prefetchl2", 0x2032003E, 0xF83F803F, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, RC, BRAKETdup }, { C_AA8 }},
+
+/* prefetchl2<.aa> b,s9 00010bbbssssssssSBBB0aa010111110.  */
+{ "prefetchl2", 0x100000BE, 0xF80009FF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, SIMM9_8, BRAKETdup }, { C_AA21 }},
+
+/* prefetchl2<.aa> b,limm 00100bbbaa1100100BBB111110111110.  */
+{ "prefetchl2", 0x20320FBE, 0xF83F8FFF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, LIMM, BRAKETdup }, { C_AA8 }},
+
+/* prefetchl2 limm,c 00100110RR1100100111CCCCCC111110.  */
+{ "prefetchl2", 0x2632703E, 0xFF3FF03F, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, RC, BRAKETdup }, { 0 }},
+
+/* prefetchl2 limm 000101100000000001110RR0s10111110.  */
+{ "prefetchl2", 0x160070BE, 0xFFFFF9FF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, BRAKETdup }, { 0 }},
+
+/* prefetchl2 limm,s9 00010110ssssssssS1110RR010111110.  */
+{ "prefetchl2", 0x160070BE, 0xFF0079FF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, SIMM9_8, BRAKETdup }, { 0 }},
+
+/* prefetchw<.aa> b,c 00100bbbaa1100001BBBCCCCCC111110.  */
+{ "prefetchw", 0x2030803E, 0xF83F803F, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, RC, BRAKETdup }, { C_AA8 }},
+
+/* prefetchw<.aa> b,s9 00010bbbssssssssSBBB1aa000111110.  */
+{ "prefetchw", 0x1000083E, 0xF80009FF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, SIMM9_8, BRAKETdup }, { C_AA21 }},
+
+/* prefetchw<.aa> b,limm 00100bbbaa1100001BBB111110111110.  */
+{ "prefetchw", 0x20308FBE, 0xF83F8FFF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, LIMM, BRAKETdup }, { C_AA8 }},
+
+/* prefetchw limm,c 00100110RR1100001111CCCCCC111110.  */
+{ "prefetchw", 0x2630F03E, 0xFF3FF03F, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, RC, BRAKETdup }, { 0 }},
+
+/* prefetchw limm 000101100000000001111RR000111110.  */
+{ "prefetchw", 0x1600783E, 0xFFFFF9FF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, BRAKETdup }, { 0 }},
+
+/* prefetchw limm,s9 00010110ssssssssS1111RR000111110.  */
+{ "prefetchw", 0x1600783E, 0xFF0079FF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, SIMM9_8, BRAKETdup }, { 0 }},
+
 /* ld<.di><.aa><.x><zz> a,b 00010bbb000000000BBBDaaZZXAAAAAA.  */
 { "ld", 0x10000000, 0xF8FF8000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, LOAD, NONE, { RA_CHK, BRAKET, RB, BRAKETdup }, { C_ZZ23, C_DI20, C_AA21, C_X25 }},
 
@@ -8085,46 +8417,46 @@
 { "ldb_s", 0x0000CA00, 0x0000FE00, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, LOAD, NONE, { R0_S, BRAKET, GP_S, SIMM9_7_S, BRAKETdup }, { C_ZZ_B }},
 
 /* ldd<.di><.aa> a,b 00010bbb000000000BBBDaa110AAAAAA.  */
-{ "ldd", 0x10000180, 0xF8FF81C0, ARC_OPCODE_ARCv2HS, LOAD, NONE, { RAD, BRAKET, RB, BRAKETdup }, { C_DI20, C_AA21, C_ZZ_D }},
+{ "ldd", 0x10000180, 0xF8FF81C0, ARC_OPCODE_ARCv2HS, LOAD, LL64, { RAD, BRAKET, RB, BRAKETdup }, { C_DI20, C_AA21, C_ZZ_D }},
 
 /* ldd<.di><.aa> a,b,c 00100bbbaa110110DBBBCCCCCCAAAAAA.  */
-{ "ldd", 0x20360000, 0xF83F0000, ARC_OPCODE_ARCv2HS, LOAD, NONE, { RAD, BRAKET, RB, RC, BRAKETdup }, { C_DI16, C_AA8, C_ZZ_D }},
+{ "ldd", 0x20360000, 0xF83F0000, ARC_OPCODE_ARCv2HS, LOAD, LL64, { RAD, BRAKET, RB, RC, BRAKETdup }, { C_DI16, C_AA8, C_ZZ_D }},
 
 /* ldd<.di><.aa> 0,b 00010bbb000000000BBBDaa110111110.  */
-{ "ldd", 0x100001BE, 0xF8FF81FF, ARC_OPCODE_ARCv2HS, LOAD, NONE, { ZA, BRAKET, RB, BRAKETdup }, { C_DI20, C_AA21, C_ZZ_D }},
+{ "ldd", 0x100001BE, 0xF8FF81FF, ARC_OPCODE_ARCv2HS, LOAD, LL64, { ZA, BRAKET, RB, BRAKETdup }, { C_DI20, C_AA21, C_ZZ_D }},
 
 /* ldd<.di><.aa> 0,b,c 00100bbbaa110110DBBBCCCCCC111110.  */
-{ "ldd", 0x2036003E, 0xF83F003F, ARC_OPCODE_ARCv2HS, LOAD, NONE, { ZA, BRAKET, RB, RC, BRAKETdup }, { C_DI16, C_AA8, C_ZZ_D }},
+{ "ldd", 0x2036003E, 0xF83F003F, ARC_OPCODE_ARCv2HS, LOAD, LL64, { ZA, BRAKET, RB, RC, BRAKETdup }, { C_DI16, C_AA8, C_ZZ_D }},
 
 /* ldd<.di><.aa> a,b,s9 00010bbbssssssssSBBBDaa110AAAAAA.  */
-{ "ldd", 0x10000180, 0xF80001C0, ARC_OPCODE_ARCv2HS, LOAD, NONE, { RAD, BRAKET, RB, SIMM9_8, BRAKETdup }, { C_DI20, C_AA21, C_ZZ_D }},
+{ "ldd", 0x10000180, 0xF80001C0, ARC_OPCODE_ARCv2HS, LOAD, LL64, { RAD, BRAKET, RB, SIMM9_8, BRAKETdup }, { C_DI20, C_AA21, C_ZZ_D }},
 
 /* ldd<.di><.aa> 0,b,s9 00010bbbssssssssSBBBDaa110111110.  */
-{ "ldd", 0x100001BE, 0xF80001FF, ARC_OPCODE_ARCv2HS, LOAD, NONE, { ZA, BRAKET, RB, SIMM9_8, BRAKETdup }, { C_DI20, C_AA21, C_ZZ_D }},
+{ "ldd", 0x100001BE, 0xF80001FF, ARC_OPCODE_ARCv2HS, LOAD, LL64, { ZA, BRAKET, RB, SIMM9_8, BRAKETdup }, { C_DI20, C_AA21, C_ZZ_D }},
 
 /* ldd<.di> a,limm 00010110000000000111DRR110AAAAAA.  */
-{ "ldd", 0x16007180, 0xFFFFF1C0, ARC_OPCODE_ARCv2HS, LOAD, NONE, { RAD, BRAKET, LIMM, BRAKETdup }, { C_DI20, C_ZZ_D }},
+{ "ldd", 0x16007180, 0xFFFFF1C0, ARC_OPCODE_ARCv2HS, LOAD, LL64, { RAD, BRAKET, LIMM, BRAKETdup }, { C_DI20, C_ZZ_D }},
 
 /* ldd<.di><.aa> a,b,limm 00100bbbaa110110DBBB111110AAAAAA.  */
-{ "ldd", 0x20360F80, 0xF83F0FC0, ARC_OPCODE_ARCv2HS, LOAD, NONE, { RAD, BRAKET, RB, LIMM, BRAKETdup }, { C_DI16, C_AA8, C_ZZ_D }},
+{ "ldd", 0x20360F80, 0xF83F0FC0, ARC_OPCODE_ARCv2HS, LOAD, LL64, { RAD, BRAKET, RB, LIMM, BRAKETdup }, { C_DI16, C_AA8, C_ZZ_D }},
 
 /* ldd<.di> a,limm,c 00100110RR110110D111CCCCCCAAAAAA.  */
-{ "ldd", 0x26367000, 0xFF3F7000, ARC_OPCODE_ARCv2HS, LOAD, NONE, { RAD, BRAKET, LIMM, RC, BRAKETdup }, { C_DI16, C_ZZ_D }},
+{ "ldd", 0x26367000, 0xFF3F7000, ARC_OPCODE_ARCv2HS, LOAD, LL64, { RAD, BRAKET, LIMM, RC, BRAKETdup }, { C_DI16, C_ZZ_D }},
 
 /* ldd<.di> 0,limm 00010110000000000111DRR110111110.  */
-{ "ldd", 0x160071BE, 0xFFFFF1FF, ARC_OPCODE_ARCv2HS, LOAD, NONE, { ZA, BRAKET, LIMM, BRAKETdup }, { C_DI20, C_ZZ_D }},
+{ "ldd", 0x160071BE, 0xFFFFF1FF, ARC_OPCODE_ARCv2HS, LOAD, LL64, { ZA, BRAKET, LIMM, BRAKETdup }, { C_DI20, C_ZZ_D }},
 
 /* ldd<.di><.aa> 0,b,limm 00100bbbaa110110DBBB111110111110.  */
-{ "ldd", 0x20360FBE, 0xF83F0FFF, ARC_OPCODE_ARCv2HS, LOAD, NONE, { ZA, BRAKET, RB, LIMM, BRAKETdup }, { C_DI16, C_AA8, C_ZZ_D }},
+{ "ldd", 0x20360FBE, 0xF83F0FFF, ARC_OPCODE_ARCv2HS, LOAD, LL64, { ZA, BRAKET, RB, LIMM, BRAKETdup }, { C_DI16, C_AA8, C_ZZ_D }},
 
 /* ldd<.di> 0,limm,c 00100110RR110110D111CCCCCC111110.  */
-{ "ldd", 0x2636703E, 0xFF3F703F, ARC_OPCODE_ARCv2HS, LOAD, NONE, { ZA, BRAKET, LIMM, RC, BRAKETdup }, { C_DI16, C_ZZ_D }},
+{ "ldd", 0x2636703E, 0xFF3F703F, ARC_OPCODE_ARCv2HS, LOAD, LL64, { ZA, BRAKET, LIMM, RC, BRAKETdup }, { C_DI16, C_ZZ_D }},
 
 /* ldd<.di><.aa> a,limm,s9 00010110ssssssssS111Daa110AAAAAA.  */
-{ "ldd", 0x16007180, 0xFF0071C0, ARC_OPCODE_ARCv2HS, LOAD, NONE, { RAD, BRAKET, LIMM, SIMM9_8, BRAKETdup }, { C_DI20, C_AA21, C_ZZ_D }},
+{ "ldd", 0x16007180, 0xFF0071C0, ARC_OPCODE_ARCv2HS, LOAD, LL64, { RAD, BRAKET, LIMM, SIMM9_8, BRAKETdup }, { C_DI20, C_AA21, C_ZZ_D }},
 
 /* ldd<.di><.aa> 0,limm,s9 00010110ssssssssS111Daa110111110.  */
-{ "ldd", 0x160071BE, 0xFF0071FF, ARC_OPCODE_ARCv2HS, LOAD, NONE, { ZA, BRAKET, LIMM, SIMM9_8, BRAKETdup }, { C_DI20, C_AA21, C_ZZ_D }},
+{ "ldd", 0x160071BE, 0xFF0071FF, ARC_OPCODE_ARCv2HS, LOAD, LL64, { ZA, BRAKET, LIMM, SIMM9_8, BRAKETdup }, { C_DI20, C_AA21, C_ZZ_D }},
 
 /* ldh_s a,b,c 01100bbbccc10aaa.  */
 { "ldh_s", 0x00006010, 0x0000F818, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, LOAD, NONE, { RA_S, BRAKET, RB_S, RC_S, BRAKETdup }, { C_ZZ_H }},
@@ -8230,6 +8562,7 @@
 
 /* leave_s u7 11000UUU110uuuu0.  */
 { "leave_s", 0x0000C0C0, 0x0000F8E1, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, LEAVE, CD1, { BRAKET, RRANGE_EL, FP_EL, BLINK_EL, PCL_EL, BRAKETdup }, { 0 }},
+{ "leave_s", 0x0000C0C0, 0x0000F8E1, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, LEAVE, CD1, { BRAKET, R13_EL, FP_EL, BLINK_EL, PCL_EL, BRAKETdup }, { 0 }},
 { "leave_s", 0x0000C0C0, 0x0000F8E1, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, LEAVE, CD1, { UIMM7_11_S }, { 0 }},
 
 /* llock<.di> b,c 00100bbb00101111DBBBCCCCCC010000.  */
@@ -8674,64 +9007,64 @@
 { "macd", 0x2EDA7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY8E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* macdf<.f> a,b,c 00110bbb00010011FBBBCCCCCCAAAAAA.  */
-{ "macdf", 0x30130000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, MPY, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "macdf", 0x30130000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* macdf<.f> 0,b,c 00110bbb00010011FBBBCCCCCC111110.  */
-{ "macdf", 0x3013003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, RB, RC }, { C_F }},
+{ "macdf", 0x3013003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, RB, RC }, { C_F }},
 
 /* macdf<.f><.cc> b,b,c 00110bbb11010011FBBBCCCCCC0QQQQQ.  */
-{ "macdf", 0x30D30000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, MPY, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "macdf", 0x30D30000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* macdf<.f> a,b,u6 00110bbb01010011FBBBuuuuuuAAAAAA.  */
-{ "macdf", 0x30530000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, MPY, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "macdf", 0x30530000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* macdf<.f> 0,b,u6 00110bbb01010011FBBBuuuuuu111110.  */
-{ "macdf", 0x3053003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "macdf", 0x3053003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* macdf<.f><.cc> b,b,u6 00110bbb11010011FBBBuuuuuu1QQQQQ.  */
-{ "macdf", 0x30D30020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, MPY, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "macdf", 0x30D30020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* macdf<.f> b,b,s12 00110bbb10010011FBBBssssssSSSSSS.  */
-{ "macdf", 0x30930000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, MPY, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "macdf", 0x30930000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* macdf<.f> a,limm,c 0011011000010011F111CCCCCCAAAAAA.  */
-{ "macdf", 0x36137000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, MPY, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "macdf", 0x36137000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* macdf<.f> a,b,limm 00110bbb00010011FBBB111110AAAAAA.  */
-{ "macdf", 0x30130F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, MPY, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "macdf", 0x30130F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* macdf<.f> 0,limm,c 0011011000010011F111CCCCCC111110.  */
-{ "macdf", 0x3613703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "macdf", 0x3613703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* macdf<.f> 0,b,limm 00110bbb00010011FBBB111110111110.  */
-{ "macdf", 0x30130FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "macdf", 0x30130FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* macdf<.f><.cc> b,b,limm 00110bbb11010011FBBB1111100QQQQQ.  */
-{ "macdf", 0x30D30F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, MPY, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "macdf", 0x30D30F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* macdf<.f><.cc> 0,limm,c 0011011011010011F111CCCCCC0QQQQQ.  */
-{ "macdf", 0x36D37000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "macdf", 0x36D37000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* macdf<.f> a,limm,u6 0011011001010011F111uuuuuuAAAAAA.  */
-{ "macdf", 0x36537000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, MPY, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "macdf", 0x36537000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* macdf<.f> 0,limm,u6 0011011001010011F111uuuuuu111110.  */
-{ "macdf", 0x3653703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "macdf", 0x3653703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* macdf<.f><.cc> 0,limm,u6 0011011011010011F111uuuuuu1QQQQQ.  */
-{ "macdf", 0x36D37020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "macdf", 0x36D37020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* macdf<.f> 0,limm,s12 0011011010010011F111ssssssSSSSSS.  */
-{ "macdf", 0x36937000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "macdf", 0x36937000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* macdf<.f> a,limm,limm 0011011000010011F111111110AAAAAA.  */
-{ "macdf", 0x36137F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, MPY, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "macdf", 0x36137F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* macdf<.f> 0,limm,limm 0011011000010011F111111110111110.  */
-{ "macdf", 0x36137FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "macdf", 0x36137FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* macdf<.f><.cc> 0,limm,limm 0011011011010011F1111111100QQQQQ.  */
-{ "macdf", 0x36D37F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "macdf", 0x36D37F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* macdu<.f> a,b,c 00101bbb00011011FBBBCCCCCCAAAAAA.  */
 { "macdu", 0x281B0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY8E, { RA_CHK, RB, RC }, { C_F }},
@@ -8854,64 +9187,64 @@
 { "macdw", 0x2ED07F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* macf<.f> a,b,c 00110bbb00001100FBBBCCCCCCAAAAAA.  */
-{ "macf", 0x300C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "macf", 0x300C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* macf<.f> 0,b,c 00110bbb00001100FBBBCCCCCC111110.  */
-{ "macf", 0x300C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "macf", 0x300C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* macf<.f><.cc> b,b,c 00110bbb11001100FBBBCCCCCC0QQQQQ.  */
-{ "macf", 0x30CC0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "macf", 0x30CC0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* macf<.f> a,b,u6 00110bbb01001100FBBBuuuuuuAAAAAA.  */
-{ "macf", 0x304C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "macf", 0x304C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* macf<.f> 0,b,u6 00110bbb01001100FBBBuuuuuu111110.  */
-{ "macf", 0x304C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "macf", 0x304C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* macf<.f><.cc> b,b,u6 00110bbb11001100FBBBuuuuuu1QQQQQ.  */
-{ "macf", 0x30CC0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "macf", 0x30CC0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* macf<.f> b,b,s12 00110bbb10001100FBBBssssssSSSSSS.  */
-{ "macf", 0x308C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "macf", 0x308C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* macf<.f> a,limm,c 0011011000001100F111CCCCCCAAAAAA.  */
-{ "macf", 0x360C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "macf", 0x360C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* macf<.f> a,b,limm 00110bbb00001100FBBB111110AAAAAA.  */
-{ "macf", 0x300C0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "macf", 0x300C0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* macf<.f> 0,limm,c 0011011000001100F111CCCCCC111110.  */
-{ "macf", 0x360C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "macf", 0x360C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* macf<.f> 0,b,limm 00110bbb00001100FBBB111110111110.  */
-{ "macf", 0x300C0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "macf", 0x300C0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* macf<.f><.cc> 0,limm,c 00110bbb11001100FBBB1111100QQQQQ.  */
-{ "macf", 0x30CC0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "macf", 0x30CC0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* macf<.f><.cc> b,b,limm 0011011011001100F111CCCCCC0QQQQQ.  */
-{ "macf", 0x36CC7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "macf", 0x36CC7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* macf<.f> a,limm,u6 0011011001001100F111uuuuuuAAAAAA.  */
-{ "macf", 0x364C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "macf", 0x364C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* macf<.f> 0,limm,u6 0011011001001100F111uuuuuu111110.  */
-{ "macf", 0x364C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "macf", 0x364C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* macf<.f><.cc> 0,limm,u6 0011011011001100F111uuuuuu1QQQQQ.  */
-{ "macf", 0x36CC7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "macf", 0x36CC7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* macf<.f> 0,limm,s12 0011011010001100F111ssssssSSSSSS.  */
-{ "macf", 0x368C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "macf", 0x368C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* macf<.f> a,limm,limm 0011011000001100F111111110AAAAAA.  */
-{ "macf", 0x360C7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "macf", 0x360C7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* macf<.f> 0,limm,limm 0011011000001100F111111110111110.  */
-{ "macf", 0x360C7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "macf", 0x360C7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* macf<.f><.cc> 0,limm,limm 0011011011001100F1111111100QQQQQ.  */
-{ "macf", 0x36CC7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "macf", 0x36CC7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* macflw<.f> a,b,c 00101bbb00110100FBBBCCCCCCAAAAAA.  */
 { "macflw", 0x28340000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
@@ -8974,64 +9307,64 @@
 { "macflw", 0x2EF47F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* macfr<.f> a,b,c 00110bbb00001101FBBBCCCCCCAAAAAA.  */
-{ "macfr", 0x300D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "macfr", 0x300D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* macfr<.f> 0,b,c 00110bbb00001101FBBBCCCCCC111110.  */
-{ "macfr", 0x300D003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "macfr", 0x300D003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* macfr<.f><.cc> b,b,c 00110bbb11001101FBBBCCCCCC0QQQQQ.  */
-{ "macfr", 0x30CD0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "macfr", 0x30CD0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* macfr<.f> a,b,u6 00110bbb01001101FBBBuuuuuuAAAAAA.  */
-{ "macfr", 0x304D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "macfr", 0x304D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* macfr<.f> 0,b,u6 00110bbb01001101FBBBuuuuuu111110.  */
-{ "macfr", 0x304D003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "macfr", 0x304D003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* macfr<.f><.cc> b,b,u6 00110bbb11001101FBBBuuuuuu1QQQQQ.  */
-{ "macfr", 0x30CD0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "macfr", 0x30CD0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* macfr<.f> b,b,s12 00110bbb10001101FBBBssssssSSSSSS.  */
-{ "macfr", 0x308D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "macfr", 0x308D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* macfr<.f> a,limm,c 0011011000001101F111CCCCCCAAAAAA.  */
-{ "macfr", 0x360D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "macfr", 0x360D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* macfr<.f> a,b,limm 00110bbb00001101FBBB111110AAAAAA.  */
-{ "macfr", 0x300D0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "macfr", 0x300D0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* macfr<.f> 0,limm,c 0011011000001101F111CCCCCC111110.  */
-{ "macfr", 0x360D703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "macfr", 0x360D703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* macfr<.f> 0,b,limm 00110bbb00001101FBBB111110111110.  */
-{ "macfr", 0x300D0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "macfr", 0x300D0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* macfr<.f><.cc> 0,limm,c 00110bbb11001101FBBB1111100QQQQQ.  */
-{ "macfr", 0x30CD0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "macfr", 0x30CD0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* macfr<.f><.cc> b,b,limm 0011011011001101F111CCCCCC0QQQQQ.  */
-{ "macfr", 0x36CD7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "macfr", 0x36CD7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* macfr<.f> a,limm,u6 0011011001001101F111uuuuuuAAAAAA.  */
-{ "macfr", 0x364D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "macfr", 0x364D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* macfr<.f> 0,limm,u6 0011011001001101F111uuuuuu111110.  */
-{ "macfr", 0x364D703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "macfr", 0x364D703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* macfr<.f><.cc> 0,limm,u6 0011011011001101F111uuuuuu1QQQQQ.  */
-{ "macfr", 0x36CD7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "macfr", 0x36CD7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* macfr<.f> 0,limm,s12 0011011010001101F111ssssssSSSSSS.  */
-{ "macfr", 0x368D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "macfr", 0x368D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* macfr<.f> a,limm,limm 0011011000001101F111111110AAAAAA.  */
-{ "macfr", 0x360D7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "macfr", 0x360D7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* macfr<.f> 0,limm,limm 0011011000001101F111111110111110.  */
-{ "macfr", 0x360D7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "macfr", 0x360D7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* macfr<.f><.cc> 0,limm,limm 0011011011001101F1111111100QQQQQ.  */
-{ "macfr", 0x36CD7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "macfr", 0x36CD7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* machflw<.f> a,b,c 00101bbb00110111FBBBCCCCCCAAAAAA.  */
 { "machflw", 0x28370000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
@@ -9574,244 +9907,484 @@
 { "macudw", 0x2ED17F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* macwhfm<.f> a,b,c 00110bbb00100010FBBBCCCCCCAAAAAA.  */
-{ "macwhfm", 0x30220000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "macwhfm", 0x30220000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* macwhfm<.f> 0,b,c 00110bbb00100010FBBBCCCCCC111110.  */
-{ "macwhfm", 0x3022003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "macwhfm", 0x3022003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
+
+/* macwhfl<.f> a,b,c 00110bbb00100110FBBBCCCCCCAAAAAA */
+{ "macwhfl", 0x30260000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, RC }, { C_F }},
+
+/* macwhfl<.f> 0,b,c 00110bbb00100110FBBBCCCCCC111110 */
+{ "macwhfl", 0x3026003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
+
+/* macwhfl<.f><.cc> b,b,c 00110bbb11100110FBBBCCCCCC0QQQQQ */
+{ "macwhfl", 0x30E60000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* macwhfl<.f> a,b,u6 00110bbb01100110FBBBuuuuuuAAAAAA */
+{ "macwhfl", 0x30660000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* macwhfl<.f><.cc> b,b,u6 00110bbb11100110FBBBuuuuuu1QQQQQ */
+{ "macwhfl", 0x30E60020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* macwhfl<.f> 0,b,u6 00110bbb01100110FBBBuuuuuu111110 */
+{ "macwhfl", 0x3066003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* macwhfl<.f> b,b,s12 00110bbb10100110FBBBssssssSSSSSS */
+{ "macwhfl", 0x30A60000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* macwhfl<.f> 0,limm,c 0011011001100110F111CCCCCC111110 */
+{ "macwhfl", 0x3666703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+
+/* macwhfl<.f> 0,b,limm 00110bbb00100110FBBB111110111110 */
+{ "macwhfl", 0x30260FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+
+/* macwhfl<.f> a,b,limm 00110bbb00100110FBBB111110AAAAAA */
+{ "macwhfl", 0x30260F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, LIMM }, { C_F }},
+
+/* macwhfl<.f><.cc> b,b,limm 0011011011100110F111CCCCCC0QQQQQ */
+{ "macwhfl", 0x36E67000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* macwhfl<.f><.cc> 0,limm,c 00110bbb11100110FBBB1111100QQQQQ */
+{ "macwhfl", 0x30E60F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* macwhfl<.f> a,limm,c 0011011000100110F111CCCCCCAAAAAA */
+{ "macwhfl", 0x36267000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, RC }, { C_F }},
+
+/* macwhfl<.f><.cc> 0,limm,u6 0011011011100110F111uuuuuu1QQQQQ */
+{ "macwhfl", 0x36E67020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* macwhfl<.f> 0,limm,u6 0011011001100110F111uuuuuu111110 */
+{ "macwhfl", 0x3666703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* macwhfl<.f> a,limm,u6 0011011001100110F111uuuuuuAAAAAA */
+{ "macwhfl", 0x36667000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* macwhfl<.f> 0,limm,s12 0011011010100110F111ssssssSSSSSS */
+{ "macwhfl", 0x36A67000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* macwhfl<.f><.cc> 0,limm,limm 0011011011100110F1111111100QQQQQ */
+{ "macwhfl", 0x36E67F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* macwhfl<.f> 0,limm,limm 0011011000100110F111111110111110 */
+{ "macwhfl", 0x36267FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+
+/* macwhfl<.f> a,limm,limm 0011011000100110F111111110AAAAAA */
+{ "macwhfl", 0x36267F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* macwhflr<.f><.cc> b,b,c 00110bbb11100111FBBBCCCCCC0QQQQQ */
+{ "macwhflr", 0x30E70000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* macwhflr<.f> 0,b,c 00110bbb00100111FBBBCCCCCC111110 */
+{ "macwhflr", 0x3027003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
+
+/* macwhflr<.f> a,b,c 00110bbb00100111FBBBCCCCCCAAAAAA */
+{ "macwhflr", 0x30270000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, RC }, { C_F }},
+
+/* macwhflr<.f> 0,b,u6 00110bbb01100111FBBBuuuuuu111110 */
+{ "macwhflr", 0x3067003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* macwhflr<.f> a,b,u6 00110bbb01100111FBBBuuuuuuAAAAAA */
+{ "macwhflr", 0x30670000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* macwhflr<.f><.cc> b,b,u6 00110bbb11100111FBBBuuuuuu1QQQQQ */
+{ "macwhflr", 0x30E70020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* macwhflr<.f> b,b,s12 00110bbb10100111FBBBssssssSSSSSS */
+{ "macwhflr", 0x30A70000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* macwhflr<.f> a,b,limm 00110bbb00100111FBBB111110AAAAAA */
+{ "macwhflr", 0x30270F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, LIMM }, { C_F }},
+
+/* macwhflr<.f><.cc> 0,limm,c 00110bbb11100111FBBB1111100QQQQQ */
+{ "macwhflr", 0x30E70F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* macwhflr<.f><.cc> b,b,limm 0011011011100111F111CCCCCC0QQQQQ */
+{ "macwhflr", 0x36E77000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* macwhflr<.f> 0,b,limm 00110bbb00100111FBBB111110111110 */
+{ "macwhflr", 0x30270FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+
+/* macwhflr<.f> 0,limm,c 0011011001100111F111CCCCCC111110 */
+{ "macwhflr", 0x3667703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+
+/* macwhflr<.f> a,limm,c 0011011000100111F111CCCCCCAAAAAA */
+{ "macwhflr", 0x36277000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, RC }, { C_F }},
+
+/* macwhflr<.f><.cc> 0,limm,u6 0011011011100111F111uuuuuu1QQQQQ */
+{ "macwhflr", 0x36E77020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* macwhflr<.f> 0,limm,u6 0011011001100111F111uuuuuu111110 */
+{ "macwhflr", 0x3667703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* macwhflr<.f> a,limm,u6 0011011001100111F111uuuuuuAAAAAA */
+{ "macwhflr", 0x36677000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* macwhflr<.f> 0,limm,s12 0011011010100111F111ssssssSSSSSS */
+{ "macwhflr", 0x36A77000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* macwhflr<.f><.cc> 0,limm,limm 0011011011100111F1111111100QQQQQ */
+{ "macwhflr", 0x36E77F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* macwhflr<.f> a,limm,limm 0011011000100111F111111110AAAAAA */
+{ "macwhflr", 0x36277F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* macwhflr<.f> 0,limm,limm 0011011000100111F111111110111110 */
+{ "macwhflr", 0x36277FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* macwhfm<.f><.cc> b,b,c 00110bbb11100010FBBBCCCCCC0QQQQQ.  */
-{ "macwhfm", 0x30E20000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "macwhfm", 0x30E20000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* macwhfm<.f> a,b,u6 00110bbb01100010FBBBuuuuuuAAAAAA.  */
-{ "macwhfm", 0x30620000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "macwhfm", 0x30620000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* macwhfm<.f> 0,b,u6 00110bbb01100010FBBBuuuuuu111110.  */
-{ "macwhfm", 0x3062003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "macwhfm", 0x3062003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* macwhfm<.f><.cc> b,b,u6 00110bbb11100010FBBBuuuuuu1QQQQQ.  */
-{ "macwhfm", 0x30E20020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "macwhfm", 0x30E20020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* macwhfm<.f> b,b,s12 00110bbb10100010FBBBssssssSSSSSS.  */
-{ "macwhfm", 0x30A20000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "macwhfm", 0x30A20000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* macwhfm<.f> a,limm,c 0011011000100010F111CCCCCCAAAAAA.  */
-{ "macwhfm", 0x36227000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "macwhfm", 0x36227000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* macwhfm<.f> a,b,limm 00110bbb00100010FBBB111110AAAAAA.  */
-{ "macwhfm", 0x30220F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "macwhfm", 0x30220F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* macwhfm<.f> 0,limm,c 0011011001100010F111CCCCCC111110.  */
-{ "macwhfm", 0x3662703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "macwhfm", 0x3662703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* macwhfm<.f> 0,b,limm 00110bbb00100010FBBB111110111110.  */
-{ "macwhfm", 0x30220FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "macwhfm", 0x30220FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* macwhfm<.f><.cc> 0,limm,c 00110bbb11100010FBBB1111100QQQQQ.  */
-{ "macwhfm", 0x30E20F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "macwhfm", 0x30E20F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* macwhfm<.f><.cc> b,b,limm 0011011011100010F111CCCCCC0QQQQQ.  */
-{ "macwhfm", 0x36E27000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "macwhfm", 0x36E27000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* macwhfm<.f> a,limm,u6 0011011001100010F111uuuuuuAAAAAA.  */
-{ "macwhfm", 0x36627000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "macwhfm", 0x36627000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* macwhfm<.f> 0,limm,u6 0011011001100010F111uuuuuu111110.  */
-{ "macwhfm", 0x3662703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "macwhfm", 0x3662703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* macwhfm<.f><.cc> 0,limm,u6 0011011011100010F111uuuuuu1QQQQQ.  */
-{ "macwhfm", 0x36E27020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "macwhfm", 0x36E27020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* macwhfm<.f> 0,limm,s12 0011011010100010F111ssssssSSSSSS.  */
-{ "macwhfm", 0x36A27000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "macwhfm", 0x36A27000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* macwhfm<.f> a,limm,limm 0011011000100010F111111110AAAAAA.  */
-{ "macwhfm", 0x36227F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "macwhfm", 0x36227F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* macwhfm<.f> 0,limm,limm 0011011000100010F111111110111110.  */
-{ "macwhfm", 0x36227FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "macwhfm", 0x36227FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* macwhfm<.f><.cc> 0,limm,limm 0011011011100010F1111111100QQQQQ.  */
-{ "macwhfm", 0x36E27F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "macwhfm", 0x36E27F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* macwhfmr<.f> a,b,c 00110bbb00100011FBBBCCCCCCAAAAAA.  */
-{ "macwhfmr", 0x30230000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "macwhfmr", 0x30230000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* macwhfmr<.f> 0,b,c 00110bbb00100011FBBBCCCCCC111110.  */
-{ "macwhfmr", 0x3023003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "macwhfmr", 0x3023003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* macwhfmr<.f><.cc> b,b,c 00110bbb11100011FBBBCCCCCC0QQQQQ.  */
-{ "macwhfmr", 0x30E30000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "macwhfmr", 0x30E30000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* macwhfmr<.f> a,b,u6 00110bbb01100011FBBBuuuuuuAAAAAA.  */
-{ "macwhfmr", 0x30630000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "macwhfmr", 0x30630000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* macwhfmr<.f> 0,b,u6 00110bbb01100011FBBBuuuuuu111110.  */
-{ "macwhfmr", 0x3063003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "macwhfmr", 0x3063003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* macwhfmr<.f><.cc> b,b,u6 00110bbb11100011FBBBuuuuuu1QQQQQ.  */
-{ "macwhfmr", 0x30E30020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "macwhfmr", 0x30E30020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* macwhfmr<.f> b,b,s12 00110bbb10100011FBBBssssssSSSSSS.  */
-{ "macwhfmr", 0x30A30000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "macwhfmr", 0x30A30000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* macwhfmr<.f> a,limm,c 0011011000100011F111CCCCCCAAAAAA.  */
-{ "macwhfmr", 0x36237000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "macwhfmr", 0x36237000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* macwhfmr<.f> a,b,limm 00110bbb00100011FBBB111110AAAAAA.  */
-{ "macwhfmr", 0x30230F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "macwhfmr", 0x30230F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* macwhfmr<.f> 0,limm,c 0011011001100011F111CCCCCC111110.  */
-{ "macwhfmr", 0x3663703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "macwhfmr", 0x3663703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* macwhfmr<.f> 0,b,limm 00110bbb00100011FBBB111110111110.  */
-{ "macwhfmr", 0x30230FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "macwhfmr", 0x30230FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* macwhfmr<.f><.cc> 0,limm,c 00110bbb11100011FBBB1111100QQQQQ.  */
-{ "macwhfmr", 0x30E30F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "macwhfmr", 0x30E30F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* macwhfmr<.f><.cc> b,b,limm 0011011011100011F111CCCCCC0QQQQQ.  */
-{ "macwhfmr", 0x36E37000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "macwhfmr", 0x36E37000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* macwhfmr<.f> a,limm,u6 0011011001100011F111uuuuuuAAAAAA.  */
-{ "macwhfmr", 0x36637000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "macwhfmr", 0x36637000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* macwhfmr<.f> 0,limm,u6 0011011001100011F111uuuuuu111110.  */
-{ "macwhfmr", 0x3663703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "macwhfmr", 0x3663703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* macwhfmr<.f><.cc> 0,limm,u6 0011011011100011F111uuuuuu1QQQQQ.  */
-{ "macwhfmr", 0x36E37020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "macwhfmr", 0x36E37020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* macwhfmr<.f> 0,limm,s12 0011011010100011F111ssssssSSSSSS.  */
-{ "macwhfmr", 0x36A37000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "macwhfmr", 0x36A37000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* macwhfmr<.f> a,limm,limm 0011011000100011F111111110AAAAAA.  */
-{ "macwhfmr", 0x36237F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "macwhfmr", 0x36237F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* macwhfmr<.f> 0,limm,limm 0011011000100011F111111110111110.  */
-{ "macwhfmr", 0x36237FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "macwhfmr", 0x36237FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* macwhfmr<.f><.cc> 0,limm,limm 0011011011100011F1111111100QQQQQ.  */
-{ "macwhfmr", 0x36E37F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "macwhfmr", 0x36E37F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* macwhkl<.f> a,b,c 00110bbb00101000FBBBCCCCCCAAAAAA */
+{ "macwhkl", 0x30280000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, RC }, { C_F }},
+
+/* macwhkl<.f> 0,b,c 00110bbb00101000FBBBCCCCCC111110 */
+{ "macwhkl", 0x3028003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
+
+/* macwhkl<.f><.cc> b,b,c 00110bbb11101000FBBBCCCCCC0QQQQQ */
+{ "macwhkl", 0x30E80000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* macwhkl<.f> 0,b,u6 00110bbb01101000FBBBuuuuuu111110 */
+{ "macwhkl", 0x3068003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* macwhkl<.f> a,b,u6 00110bbb01101000FBBBuuuuuuAAAAAA */
+{ "macwhkl", 0x30680000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* macwhkl<.f><.cc> b,b,u6 00110bbb11101000FBBBuuuuuu1QQQQQ */
+{ "macwhkl", 0x30E80020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* macwhkl<.f> b,b,s12 00110bbb10101000FBBBssssssSSSSSS */
+{ "macwhkl", 0x30A80000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* macwhkl<.f> a,b,limm 00110bbb00101000FBBB111110AAAAAA */
+{ "macwhkl", 0x30280F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, LIMM }, { C_F }},
+
+/* macwhkl<.f><.cc> 0,limm,c 00110bbb11101000FBBB1111100QQQQQ */
+{ "macwhkl", 0x30E80F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* macwhkl<.f> 0,limm,c 0011011001101000F111CCCCCC111110 */
+{ "macwhkl", 0x3668703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+
+/* macwhkl<.f> 0,b,limm 00110bbb00101000FBBB111110111110 */
+{ "macwhkl", 0x30280FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+
+/* macwhkl<.f> a,limm,c 0011011000101000F111CCCCCCAAAAAA */
+{ "macwhkl", 0x36287000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, RC }, { C_F }},
+
+/* macwhkl<.f><.cc> b,b,limm 0011011011101000F111CCCCCC0QQQQQ */
+{ "macwhkl", 0x36E87000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* macwhkl<.f> 0,limm,u6 0011011001101000F111uuuuuu111110 */
+{ "macwhkl", 0x3668703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* macwhkl<.f><.cc> 0,limm,u6 0011011011101000F111uuuuuu1QQQQQ */
+{ "macwhkl", 0x36E87020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* macwhkl<.f> a,limm,u6 0011011001101000F111uuuuuuAAAAAA */
+{ "macwhkl", 0x36687000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* macwhkl<.f> 0,limm,s12 0011011010101000F111ssssssSSSSSS */
+{ "macwhkl", 0x36A87000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* macwhkl<.f><.cc> 0,limm,limm 0011011011101000F1111111100QQQQQ */
+{ "macwhkl", 0x36E87F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* macwhkl<.f> 0,limm,limm 0011011000101000F111111110111110 */
+{ "macwhkl", 0x36287FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+
+/* macwhkl<.f> a,limm,limm 0011011000101000F111111110AAAAAA */
+{ "macwhkl", 0x36287F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* macwhkul<.f> a,b,c 00110bbb00101001FBBBCCCCCCAAAAAA */
+{ "macwhkul", 0x30290000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, RC }, { C_F }},
+
+/* macwhkul<.f> 0,b,c 00110bbb00101001FBBBCCCCCC111110 */
+{ "macwhkul", 0x3029003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
+
+/* macwhkul<.f><.cc> b,b,c 00110bbb11101001FBBBCCCCCC0QQQQQ */
+{ "macwhkul", 0x30E90000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* macwhkul<.f> a,b,u6 00110bbb01101001FBBBuuuuuuAAAAAA */
+{ "macwhkul", 0x30690000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* macwhkul<.f> 0,b,u6 00110bbb01101001FBBBuuuuuu111110 */
+{ "macwhkul", 0x3069003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* macwhkul<.f><.cc> b,b,u6 00110bbb11101001FBBBuuuuuu1QQQQQ */
+{ "macwhkul", 0x30E90020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* macwhkul<.f> b,b,s12 00110bbb10101001FBBBssssssSSSSSS */
+{ "macwhkul", 0x30A90000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* macwhkul<.f> a,b,limm 00110bbb00101001FBBB111110AAAAAA */
+{ "macwhkul", 0x30290F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, LIMM }, { C_F }},
+
+/* macwhkul<.f><.cc> 0,limm,c 00110bbb11101001FBBB1111100QQQQQ */
+{ "macwhkul", 0x30E90F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* macwhkul<.f><.cc> b,b,limm 0011011011101001F111CCCCCC0QQQQQ */
+{ "macwhkul", 0x36E97000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* macwhkul<.f> a,limm,c 0011011000101001F111CCCCCCAAAAAA */
+{ "macwhkul", 0x36297000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, RC }, { C_F }},
+
+/* macwhkul<.f> 0,limm,c 0011011001101001F111CCCCCC111110 */
+{ "macwhkul", 0x3669703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+
+/* macwhkul<.f> 0,b,limm 00110bbb00101001FBBB111110111110 */
+{ "macwhkul", 0x30290FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+
+/* macwhkul<.f> a,limm,u6 0011011001101001F111uuuuuuAAAAAA */
+{ "macwhkul", 0x36697000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* macwhkul<.f><.cc> 0,limm,u6 0011011011101001F111uuuuuu1QQQQQ */
+{ "macwhkul", 0x36E97020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* macwhkul<.f> 0,limm,u6 0011011001101001F111uuuuuu111110 */
+{ "macwhkul", 0x3669703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* macwhkul<.f> 0,limm,s12 0011011010101001F111ssssssSSSSSS */
+{ "macwhkul", 0x36A97000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* macwhkul<.f> a,limm,limm 0011011000101001F111111110AAAAAA */
+{ "macwhkul", 0x36297F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* macwhkul<.f> 0,limm,limm 0011011000101001F111111110111110 */
+{ "macwhkul", 0x36297FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+
+/* macwhkul<.f><.cc> 0,limm,limm 0011011011101001F1111111100QQQQQ */
+{ "macwhkul", 0x36E97F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* macwhl<.f> a,b,c 00110bbb00011101FBBBCCCCCCAAAAAA.  */
-{ "macwhl", 0x301D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "macwhl", 0x301D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* macwhl<.f> 0,b,c 00110bbb00011101FBBBCCCCCC111110.  */
-{ "macwhl", 0x301D003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "macwhl", 0x301D003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* macwhl<.f><.cc> b,b,c 00110bbb11011101FBBBCCCCCC0QQQQQ.  */
-{ "macwhl", 0x30DD0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "macwhl", 0x30DD0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* macwhl<.f> a,b,u6 00110bbb01011101FBBBuuuuuuAAAAAA.  */
-{ "macwhl", 0x305D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "macwhl", 0x305D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* macwhl<.f> 0,b,u6 00110bbb01011101FBBBuuuuuu111110.  */
-{ "macwhl", 0x305D003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "macwhl", 0x305D003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* macwhl<.f><.cc> b,b,u6 00110bbb11011101FBBBuuuuuu1QQQQQ.  */
-{ "macwhl", 0x30DD0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "macwhl", 0x30DD0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* macwhl<.f> b,b,s12 00110bbb10011101FBBBssssssSSSSSS.  */
-{ "macwhl", 0x309D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "macwhl", 0x309D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* macwhl<.f> a,limm,c 0011011000011101F111CCCCCCAAAAAA.  */
-{ "macwhl", 0x361D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "macwhl", 0x361D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* macwhl<.f> a,b,limm 00110bbb00011101FBBB111110AAAAAA.  */
-{ "macwhl", 0x301D0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "macwhl", 0x301D0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* macwhl<.f> 0,limm,c 0011011000011101F111CCCCCC111110.  */
-{ "macwhl", 0x361D703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "macwhl", 0x361D703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* macwhl<.f> 0,b,limm 00110bbb00011101FBBB111110111110.  */
-{ "macwhl", 0x301D0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "macwhl", 0x301D0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* macwhl<.f><.cc> 0,limm,c 00110bbb11011101FBBB1111100QQQQQ.  */
-{ "macwhl", 0x30DD0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "macwhl", 0x30DD0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* macwhl<.f><.cc> b,b,limm 0011011011011101F111CCCCCC0QQQQQ.  */
-{ "macwhl", 0x36DD7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "macwhl", 0x36DD7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* macwhl<.f> a,limm,u6 0011011001011101F111uuuuuuAAAAAA.  */
-{ "macwhl", 0x365D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "macwhl", 0x365D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* macwhl<.f> 0,limm,u6 0011011001011101F111uuuuuu111110.  */
-{ "macwhl", 0x365D703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "macwhl", 0x365D703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* macwhl<.f><.cc> 0,limm,u6 0011011011011101F111uuuuuu1QQQQQ.  */
-{ "macwhl", 0x36DD7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "macwhl", 0x36DD7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* macwhl<.f> 0,limm,s12 0011011010011101F111ssssssSSSSSS.  */
-{ "macwhl", 0x369D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "macwhl", 0x369D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* macwhl<.f> a,limm,limm 0011011000011101F111111110AAAAAA.  */
-{ "macwhl", 0x361D7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "macwhl", 0x361D7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* macwhl<.f> 0,limm,limm 0011011000011101F111111110111110.  */
-{ "macwhl", 0x361D7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "macwhl", 0x361D7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* macwhl<.f><.cc> 0,limm,limm 0011011011011101F1111111100QQQQQ.  */
-{ "macwhl", 0x36DD7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "macwhl", 0x36DD7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* macwhul<.f> a,b,c 00110bbb00011111FBBBCCCCCCAAAAAA.  */
-{ "macwhul", 0x301F0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "macwhul", 0x301F0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* macwhul<.f> 0,b,c 00110bbb00011111FBBBCCCCCC111110.  */
-{ "macwhul", 0x301F003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "macwhul", 0x301F003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* macwhul<.f><.cc> b,b,c 00110bbb11011111FBBBCCCCCC0QQQQQ.  */
-{ "macwhul", 0x30DF0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "macwhul", 0x30DF0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* macwhul<.f> a,b,u6 00110bbb01011111FBBBuuuuuuAAAAAA.  */
-{ "macwhul", 0x305F0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "macwhul", 0x305F0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* macwhul<.f> 0,b,u6 00110bbb01011111FBBBuuuuuu111110.  */
-{ "macwhul", 0x305F003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "macwhul", 0x305F003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* macwhul<.f><.cc> b,b,u6 00110bbb11011111FBBBuuuuuu1QQQQQ.  */
-{ "macwhul", 0x30DF0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "macwhul", 0x30DF0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* macwhul<.f> b,b,s12 00110bbb10011111FBBBssssssSSSSSS.  */
-{ "macwhul", 0x309F0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "macwhul", 0x309F0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* macwhul<.f> a,limm,c 0011011000011111F111CCCCCCAAAAAA.  */
-{ "macwhul", 0x361F7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "macwhul", 0x361F7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* macwhul<.f> a,b,limm 00110bbb00011111FBBB111110AAAAAA.  */
-{ "macwhul", 0x301F0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "macwhul", 0x301F0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* macwhul<.f> 0,limm,c 0011011000011111F111CCCCCC111110.  */
-{ "macwhul", 0x361F703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "macwhul", 0x361F703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* macwhul<.f> 0,b,limm 00110bbb00011111FBBB111110111110.  */
-{ "macwhul", 0x301F0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "macwhul", 0x301F0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* macwhul<.f><.cc> 0,limm,c 00110bbb11011111FBBB1111100QQQQQ.  */
-{ "macwhul", 0x30DF0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "macwhul", 0x30DF0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* macwhul<.f><.cc> b,b,limm 0011011011011111F111CCCCCC0QQQQQ.  */
-{ "macwhul", 0x36DF7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "macwhul", 0x36DF7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* macwhul<.f> a,limm,u6 0011011001011111F111uuuuuuAAAAAA.  */
-{ "macwhul", 0x365F7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "macwhul", 0x365F7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* macwhul<.f> 0,limm,u6 0011011001011111F111uuuuuu111110.  */
-{ "macwhul", 0x365F703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "macwhul", 0x365F703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* macwhul<.f><.cc> 0,limm,u6 0011011011011111F111uuuuuu1QQQQQ.  */
-{ "macwhul", 0x36DF7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "macwhul", 0x36DF7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* macwhul<.f> 0,limm,s12 0011011010011111F111ssssssSSSSSS.  */
-{ "macwhul", 0x369F7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "macwhul", 0x369F7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* macwhul<.f> a,limm,limm 0011011000011111F111111110AAAAAA.  */
-{ "macwhul", 0x361F7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "macwhul", 0x361F7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* macwhul<.f> 0,limm,limm 0011011000011111F111111110111110.  */
-{ "macwhul", 0x361F7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "macwhul", 0x361F7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* macwhul<.f><.cc> 0,limm,limm 0011011011011111F1111111100QQQQQ.  */
-{ "macwhul", 0x36DF7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "macwhul", 0x36DF7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* max<.f> a,b,c 00100bbb00001000FBBBCCCCCCAAAAAA.  */
 { "max", 0x20080000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, RC }, { C_F }},
@@ -10113,6 +10686,9 @@
 /* minidl<.f><.cc> 0,limm,limm 0010111011001001F1111111100QQQQQ.  */
 { "minidl", 0x2EC97F80, 0xFFFF7FE0, ARC_OPCODE_ARC600, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
+/* nop  00100110010010100111000000000000.  */
+{ "nop", 0x264A7000, 0xFFFFFFFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, CONTROL, NONE, { 0 }, { 0 }},
+
 /* mov<.f> b,c 00100bbb00001010FBBBCCCCCCRRRRRR.  */
 { "mov", 0x200A0000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MOVE, NONE, { RB, RC }, { C_F }},
 
@@ -10327,64 +10903,64 @@
 { "mpyd", 0x2ED87F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY8E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* mpydf<.f> a,b,c 00110bbb00010010FBBBCCCCCCAAAAAA.  */
-{ "mpydf", 0x30120000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, MPY, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "mpydf", 0x30120000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* mpydf<.f> 0,b,c 00110bbb00010010FBBBCCCCCC111110.  */
-{ "mpydf", 0x3012003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, RB, RC }, { C_F }},
+{ "mpydf", 0x3012003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, RB, RC }, { C_F }},
 
 /* mpydf<.f><.cc> b,b,c 00110bbb11010010FBBBCCCCCC0QQQQQ.  */
-{ "mpydf", 0x30D20000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, MPY, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "mpydf", 0x30D20000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* mpydf<.f> a,b,u6 00110bbb01010010FBBBuuuuuuAAAAAA.  */
-{ "mpydf", 0x30520000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, MPY, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "mpydf", 0x30520000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* mpydf<.f> 0,b,u6 00110bbb01010010FBBBuuuuuu111110.  */
-{ "mpydf", 0x3052003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "mpydf", 0x3052003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* mpydf<.f><.cc> b,b,u6 00110bbb11010010FBBBuuuuuu1QQQQQ.  */
-{ "mpydf", 0x30D20020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, MPY, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "mpydf", 0x30D20020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpydf<.f> b,b,s12 00110bbb10010010FBBBssssssSSSSSS.  */
-{ "mpydf", 0x30920000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, MPY, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "mpydf", 0x30920000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* mpydf<.f> a,limm,c 0011011000010010F111CCCCCCAAAAAA.  */
-{ "mpydf", 0x36127000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, MPY, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "mpydf", 0x36127000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* mpydf<.f> a,b,limm 00110bbb00010010FBBB111110AAAAAA.  */
-{ "mpydf", 0x30120F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, MPY, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "mpydf", 0x30120F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* mpydf<.f> 0,limm,c 0011011000010010F111CCCCCC111110.  */
-{ "mpydf", 0x3612703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "mpydf", 0x3612703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* mpydf<.f> 0,b,limm 00110bbb00010010FBBB111110111110.  */
-{ "mpydf", 0x30120FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "mpydf", 0x30120FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* mpydf<.f><.cc> b,b,limm 00110bbb11010010FBBB1111100QQQQQ.  */
-{ "mpydf", 0x30D20F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, MPY, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "mpydf", 0x30D20F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* mpydf<.f><.cc> 0,limm,c 0011011011010010F111CCCCCC0QQQQQ.  */
-{ "mpydf", 0x36D27000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "mpydf", 0x36D27000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* mpydf<.f> a,limm,u6 0011011001010010F111uuuuuuAAAAAA.  */
-{ "mpydf", 0x36527000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, MPY, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "mpydf", 0x36527000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpydf<.f> 0,limm,u6 0011011001010010F111uuuuuu111110.  */
-{ "mpydf", 0x3652703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "mpydf", 0x3652703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpydf<.f><.cc> 0,limm,u6 0011011011010010F111uuuuuu1QQQQQ.  */
-{ "mpydf", 0x36D27020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "mpydf", 0x36D27020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpydf<.f> 0,limm,s12 0011011010010010F111ssssssSSSSSS.  */
-{ "mpydf", 0x36927000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "mpydf", 0x36927000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* mpydf<.f> a,limm,limm 0011011000010010F111111110AAAAAA.  */
-{ "mpydf", 0x36127F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, MPY, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "mpydf", 0x36127F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* mpydf<.f> 0,limm,limm 0011011000010010F111111110111110.  */
-{ "mpydf", 0x36127FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "mpydf", 0x36127FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* mpydf<.f><.cc> 0,limm,limm 0011011011010010F1111111100QQQQQ.  */
-{ "mpydf", 0x36D27F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, MPY, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "mpydf", 0x36D27F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* mpydu<.f> a,b,c 00101bbb00011001FBBBCCCCCCAAAAAA.  */
 { "mpydu", 0x28190000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY8E, { RA_CHK, RB, RC }, { C_F }},
@@ -10447,124 +11023,124 @@
 { "mpydu", 0x2ED97F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY8E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* mpyf<.f> a,b,c 00110bbb00001010FBBBCCCCCCAAAAAA.  */
-{ "mpyf", 0x300A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "mpyf", 0x300A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* mpyf<.f> 0,b,c 00110bbb00001010FBBBCCCCCC111110.  */
-{ "mpyf", 0x300A003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "mpyf", 0x300A003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* mpyf<.f><.cc> b,b,c 00110bbb11001010FBBBCCCCCC0QQQQQ.  */
-{ "mpyf", 0x30CA0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "mpyf", 0x30CA0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* mpyf<.f> a,b,u6 00110bbb01001010FBBBuuuuuuAAAAAA.  */
-{ "mpyf", 0x304A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "mpyf", 0x304A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* mpyf<.f> 0,b,u6 00110bbb01001010FBBBuuuuuu111110.  */
-{ "mpyf", 0x304A003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "mpyf", 0x304A003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* mpyf<.f><.cc> b,b,u6 00110bbb11001010FBBBuuuuuu1QQQQQ.  */
-{ "mpyf", 0x30CA0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "mpyf", 0x30CA0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpyf<.f> b,b,s12 00110bbb10001010FBBBssssssSSSSSS.  */
-{ "mpyf", 0x308A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "mpyf", 0x308A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* mpyf<.f> a,limm,c 0011011000001010F111CCCCCCAAAAAA.  */
-{ "mpyf", 0x360A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "mpyf", 0x360A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* mpyf<.f> a,b,limm 00110bbb00001010FBBB111110AAAAAA.  */
-{ "mpyf", 0x300A0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "mpyf", 0x300A0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* mpyf<.f> 0,limm,c 0011011000001010F111CCCCCC111110.  */
-{ "mpyf", 0x360A703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "mpyf", 0x360A703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* mpyf<.f> 0,b,limm 00110bbb00001010FBBB111110111110.  */
-{ "mpyf", 0x300A0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "mpyf", 0x300A0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* mpyf<.f><.cc> b,b,limm 00110bbb11001010FBBB1111100QQQQQ.  */
-{ "mpyf", 0x30CA0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "mpyf", 0x30CA0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* mpyf<.f><.cc> 0,limm,c 0011011011001010F111CCCCCC0QQQQQ.  */
-{ "mpyf", 0x36CA7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "mpyf", 0x36CA7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* mpyf<.f> a,limm,u6 0011011001001010F111uuuuuuAAAAAA.  */
-{ "mpyf", 0x364A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "mpyf", 0x364A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpyf<.f> 0,limm,u6 0011011001001010F111uuuuuu111110.  */
-{ "mpyf", 0x364A703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "mpyf", 0x364A703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpyf<.f><.cc> 0,limm,u6 0011011011001010F111uuuuuu1QQQQQ.  */
-{ "mpyf", 0x36CA7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "mpyf", 0x36CA7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpyf<.f> 0,limm,s12 0011011010001010F111ssssssSSSSSS.  */
-{ "mpyf", 0x368A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "mpyf", 0x368A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* mpyf<.f> a,limm,limm 0011011000001010F111111110AAAAAA.  */
-{ "mpyf", 0x360A7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "mpyf", 0x360A7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* mpyf<.f> 0,limm,limm 0011011000001010F111111110111110.  */
-{ "mpyf", 0x360A7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "mpyf", 0x360A7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* mpyf<.f><.cc> 0,limm,limm 0011011011001010F1111111100QQQQQ.  */
-{ "mpyf", 0x36CA7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "mpyf", 0x36CA7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* mpyfr<.f> a,b,c 00110bbb00001011FBBBCCCCCCAAAAAA.  */
-{ "mpyfr", 0x300B0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "mpyfr", 0x300B0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* mpyfr<.f> 0,b,c 00110bbb00001011FBBBCCCCCC111110.  */
-{ "mpyfr", 0x300B003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "mpyfr", 0x300B003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* mpyfr<.f><.cc> b,b,c 00110bbb11001011FBBBCCCCCC0QQQQQ.  */
-{ "mpyfr", 0x30CB0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "mpyfr", 0x30CB0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* mpyfr<.f> a,b,u6 00110bbb01001011FBBBuuuuuuAAAAAA.  */
-{ "mpyfr", 0x304B0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "mpyfr", 0x304B0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* mpyfr<.f> 0,b,u6 00110bbb01001011FBBBuuuuuu111110.  */
-{ "mpyfr", 0x304B003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "mpyfr", 0x304B003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* mpyfr<.f><.cc> b,b,u6 00110bbb11001011FBBBuuuuuu1QQQQQ.  */
-{ "mpyfr", 0x30CB0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "mpyfr", 0x30CB0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpyfr<.f> b,b,s12 00110bbb10001011FBBBssssssSSSSSS.  */
-{ "mpyfr", 0x308B0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "mpyfr", 0x308B0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* mpyfr<.f> a,limm,c 0011011000001011F111CCCCCCAAAAAA.  */
-{ "mpyfr", 0x360B7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "mpyfr", 0x360B7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* mpyfr<.f> a,b,limm 00110bbb00001011FBBB111110AAAAAA.  */
-{ "mpyfr", 0x300B0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "mpyfr", 0x300B0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* mpyfr<.f> 0,limm,c 0011011000001011F111CCCCCC111110.  */
-{ "mpyfr", 0x360B703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "mpyfr", 0x360B703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* mpyfr<.f> 0,b,limm 00110bbb00001011FBBB111110111110.  */
-{ "mpyfr", 0x300B0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "mpyfr", 0x300B0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* mpyfr<.f><.cc> b,b,limm 00110bbb11001011FBBB1111100QQQQQ.  */
-{ "mpyfr", 0x30CB0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "mpyfr", 0x30CB0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* mpyfr<.f><.cc> 0,limm,c 0011011011001011F111CCCCCC0QQQQQ.  */
-{ "mpyfr", 0x36CB7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "mpyfr", 0x36CB7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* mpyfr<.f> a,limm,u6 0011011001001011F111uuuuuuAAAAAA.  */
-{ "mpyfr", 0x364B7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "mpyfr", 0x364B7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpyfr<.f> 0,limm,u6 0011011001001011F111uuuuuu111110.  */
-{ "mpyfr", 0x364B703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "mpyfr", 0x364B703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpyfr<.f><.cc> 0,limm,u6 0011011011001011F111uuuuuu1QQQQQ.  */
-{ "mpyfr", 0x36CB7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "mpyfr", 0x36CB7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpyfr<.f> 0,limm,s12 0011011010001011F111ssssssSSSSSS.  */
-{ "mpyfr", 0x368B7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "mpyfr", 0x368B7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* mpyfr<.f> a,limm,limm 0011011000001011F111111110AAAAAA.  */
-{ "mpyfr", 0x360B7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "mpyfr", 0x360B7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* mpyfr<.f> 0,limm,limm 0011011000001011F111111110111110.  */
-{ "mpyfr", 0x360B7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "mpyfr", 0x360B7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* mpyfr<.f><.cc> 0,limm,limm 0011011011001011F1111111100QQQQQ.  */
-{ "mpyfr", 0x36CB7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "mpyfr", 0x36CB7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* mpyh<.f> a,b,c 00100bbb00011011FBBBCCCCCCAAAAAA.  */
 { "mpyh", 0x201B0000, 0xF8FF0000, ARC_OPCODE_ARC700, MPY, NONE, { RA_CHK, RB, RC }, { C_F }},
@@ -11131,364 +11707,484 @@
 { "mpyw", 0x26DE7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY1E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* mpywhfl<.f> a,b,c 00110bbb00100100FBBBCCCCCCAAAAAA.  */
-{ "mpywhfl", 0x30240000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "mpywhfl", 0x30240000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* mpywhfl<.f> 0,b,c 00110bbb00100100FBBBCCCCCC111110.  */
-{ "mpywhfl", 0x3024003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "mpywhfl", 0x3024003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* mpywhfl<.f><.cc> b,b,c 00110bbb11100100FBBBCCCCCC0QQQQQ.  */
-{ "mpywhfl", 0x30E40000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "mpywhfl", 0x30E40000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* mpywhfl<.f> a,b,u6 00110bbb01100100FBBBuuuuuuAAAAAA.  */
-{ "mpywhfl", 0x30640000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "mpywhfl", 0x30640000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* mpywhfl<.f> 0,b,u6 00110bbb01100100FBBBuuuuuu111110.  */
-{ "mpywhfl", 0x3064003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "mpywhfl", 0x3064003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* mpywhfl<.f><.cc> b,b,u6 00110bbb11100100FBBBuuuuuu1QQQQQ.  */
-{ "mpywhfl", 0x30E40020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "mpywhfl", 0x30E40020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpywhfl<.f> b,b,s12 00110bbb10100100FBBBssssssSSSSSS.  */
-{ "mpywhfl", 0x30A40000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "mpywhfl", 0x30A40000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* mpywhfl<.f> a,limm,c 0011011000100100F111CCCCCCAAAAAA.  */
-{ "mpywhfl", 0x36247000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "mpywhfl", 0x36247000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* mpywhfl<.f> a,b,limm 00110bbb00100100FBBB111110AAAAAA.  */
-{ "mpywhfl", 0x30240F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "mpywhfl", 0x30240F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* mpywhfl<.f> 0,limm,c 0011011001100100F111CCCCCC111110.  */
-{ "mpywhfl", 0x3664703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "mpywhfl", 0x3664703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* mpywhfl<.f> 0,b,limm 00110bbb00100100FBBB111110111110.  */
-{ "mpywhfl", 0x30240FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "mpywhfl", 0x30240FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* mpywhfl<.f><.cc> 0,limm,c 00110bbb11100100FBBB1111100QQQQQ.  */
-{ "mpywhfl", 0x30E40F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "mpywhfl", 0x30E40F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* mpywhfl<.f><.cc> b,b,limm 0011011011100100F111CCCCCC0QQQQQ.  */
-{ "mpywhfl", 0x36E47000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "mpywhfl", 0x36E47000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* mpywhfl<.f> a,limm,u6 0011011001100100F111uuuuuuAAAAAA.  */
-{ "mpywhfl", 0x36647000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "mpywhfl", 0x36647000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpywhfl<.f> 0,limm,u6 0011011001100100F111uuuuuu111110.  */
-{ "mpywhfl", 0x3664703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "mpywhfl", 0x3664703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpywhfl<.f><.cc> 0,limm,u6 0011011011100100F111uuuuuu1QQQQQ.  */
-{ "mpywhfl", 0x36E47020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "mpywhfl", 0x36E47020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpywhfl<.f> 0,limm,s12 0011011010100100F111ssssssSSSSSS.  */
-{ "mpywhfl", 0x36A47000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "mpywhfl", 0x36A47000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* mpywhfl<.f> a,limm,limm 0011011000100100F111111110AAAAAA.  */
-{ "mpywhfl", 0x36247F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "mpywhfl", 0x36247F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* mpywhfl<.f> 0,limm,limm 0011011000100100F111111110111110.  */
-{ "mpywhfl", 0x36247FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "mpywhfl", 0x36247FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* mpywhfl<.f><.cc> 0,limm,limm 0011011011100100F1111111100QQQQQ.  */
-{ "mpywhfl", 0x36E47F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "mpywhfl", 0x36E47F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* mpywhflr<.f> a,b,c 00110bbb00100101FBBBCCCCCCAAAAAA.  */
-{ "mpywhflr", 0x30250000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "mpywhflr", 0x30250000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* mpywhflr<.f> 0,b,c 00110bbb00100101FBBBCCCCCC111110.  */
-{ "mpywhflr", 0x3025003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "mpywhflr", 0x3025003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* mpywhflr<.f><.cc> b,b,c 00110bbb11100101FBBBCCCCCC0QQQQQ.  */
-{ "mpywhflr", 0x30E50000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "mpywhflr", 0x30E50000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* mpywhflr<.f> a,b,u6 00110bbb01100101FBBBuuuuuuAAAAAA.  */
-{ "mpywhflr", 0x30650000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "mpywhflr", 0x30650000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* mpywhflr<.f> 0,b,u6 00110bbb01100101FBBBuuuuuu111110.  */
-{ "mpywhflr", 0x3065003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "mpywhflr", 0x3065003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* mpywhflr<.f><.cc> b,b,u6 00110bbb11100101FBBBuuuuuu1QQQQQ.  */
-{ "mpywhflr", 0x30E50020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "mpywhflr", 0x30E50020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpywhflr<.f> b,b,s12 00110bbb10100101FBBBssssssSSSSSS.  */
-{ "mpywhflr", 0x30A50000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "mpywhflr", 0x30A50000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* mpywhflr<.f> a,limm,c 0011011000100101F111CCCCCCAAAAAA.  */
-{ "mpywhflr", 0x36257000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "mpywhflr", 0x36257000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* mpywhflr<.f> a,b,limm 00110bbb00100101FBBB111110AAAAAA.  */
-{ "mpywhflr", 0x30250F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "mpywhflr", 0x30250F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* mpywhflr<.f> 0,limm,c 0011011001100101F111CCCCCC111110.  */
-{ "mpywhflr", 0x3665703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "mpywhflr", 0x3665703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* mpywhflr<.f> 0,b,limm 00110bbb00100101FBBB111110111110.  */
-{ "mpywhflr", 0x30250FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "mpywhflr", 0x30250FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* mpywhflr<.f><.cc> 0,limm,c 00110bbb11100101FBBB1111100QQQQQ.  */
-{ "mpywhflr", 0x30E50F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "mpywhflr", 0x30E50F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* mpywhflr<.f><.cc> b,b,limm 0011011011100101F111CCCCCC0QQQQQ.  */
-{ "mpywhflr", 0x36E57000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "mpywhflr", 0x36E57000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* mpywhflr<.f> a,limm,u6 0011011001100101F111uuuuuuAAAAAA.  */
-{ "mpywhflr", 0x36657000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "mpywhflr", 0x36657000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpywhflr<.f> 0,limm,u6 0011011001100101F111uuuuuu111110.  */
-{ "mpywhflr", 0x3665703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "mpywhflr", 0x3665703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpywhflr<.f><.cc> 0,limm,u6 0011011011100101F111uuuuuu1QQQQQ.  */
-{ "mpywhflr", 0x36E57020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "mpywhflr", 0x36E57020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpywhflr<.f> 0,limm,s12 0011011010100101F111ssssssSSSSSS.  */
-{ "mpywhflr", 0x36A57000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "mpywhflr", 0x36A57000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* mpywhflr<.f> a,limm,limm 0011011000100101F111111110AAAAAA.  */
-{ "mpywhflr", 0x36257F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "mpywhflr", 0x36257F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* mpywhflr<.f> 0,limm,limm 0011011000100101F111111110111110.  */
-{ "mpywhflr", 0x36257FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "mpywhflr", 0x36257FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* mpywhflr<.f><.cc> 0,limm,limm 0011011011100101F1111111100QQQQQ.  */
-{ "mpywhflr", 0x36E57F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "mpywhflr", 0x36E57F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* mpywhfm<.f> a,b,c 00110bbb00100000FBBBCCCCCCAAAAAA.  */
-{ "mpywhfm", 0x30200000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "mpywhfm", 0x30200000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* mpywhfm<.f> 0,b,c 00110bbb00100000FBBBCCCCCC111110.  */
-{ "mpywhfm", 0x3020003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "mpywhfm", 0x3020003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* mpywhfm<.f><.cc> b,b,c 00110bbb11100000FBBBCCCCCC0QQQQQ.  */
-{ "mpywhfm", 0x30E00000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "mpywhfm", 0x30E00000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* mpywhfm<.f> a,b,u6 00110bbb01100000FBBBuuuuuuAAAAAA.  */
-{ "mpywhfm", 0x30600000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "mpywhfm", 0x30600000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* mpywhfm<.f> 0,b,u6 00110bbb01100000FBBBuuuuuu111110.  */
-{ "mpywhfm", 0x3060003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "mpywhfm", 0x3060003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* mpywhfm<.f><.cc> b,b,u6 00110bbb11100000FBBBuuuuuu1QQQQQ.  */
-{ "mpywhfm", 0x30E00020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "mpywhfm", 0x30E00020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpywhfm<.f> b,b,s12 00110bbb10100000FBBBssssssSSSSSS.  */
-{ "mpywhfm", 0x30A00000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "mpywhfm", 0x30A00000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* mpywhfm<.f> a,limm,c 0011011000100000F111CCCCCCAAAAAA.  */
-{ "mpywhfm", 0x36207000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "mpywhfm", 0x36207000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* mpywhfm<.f> a,b,limm 00110bbb00100000FBBB111110AAAAAA.  */
-{ "mpywhfm", 0x30200F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "mpywhfm", 0x30200F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* mpywhfm<.f> 0,limm,c 0011011001100000F111CCCCCC111110.  */
-{ "mpywhfm", 0x3660703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "mpywhfm", 0x3660703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* mpywhfm<.f> 0,b,limm 00110bbb00100000FBBB111110111110.  */
-{ "mpywhfm", 0x30200FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "mpywhfm", 0x30200FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* mpywhfm<.f><.cc> 0,limm,c 00110bbb11100000FBBB1111100QQQQQ.  */
-{ "mpywhfm", 0x30E00F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "mpywhfm", 0x30E00F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* mpywhfm<.f><.cc> b,b,limm 0011011011100000F111CCCCCC0QQQQQ.  */
-{ "mpywhfm", 0x36E07000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "mpywhfm", 0x36E07000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* mpywhfm<.f> a,limm,u6 0011011001100000F111uuuuuuAAAAAA.  */
-{ "mpywhfm", 0x36607000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "mpywhfm", 0x36607000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpywhfm<.f> 0,limm,u6 0011011001100000F111uuuuuu111110.  */
-{ "mpywhfm", 0x3660703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "mpywhfm", 0x3660703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpywhfm<.f><.cc> 0,limm,u6 0011011011100000F111uuuuuu1QQQQQ.  */
-{ "mpywhfm", 0x36E07020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "mpywhfm", 0x36E07020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpywhfm<.f> 0,limm,s12 0011011010100000F111ssssssSSSSSS.  */
-{ "mpywhfm", 0x36A07000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "mpywhfm", 0x36A07000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* mpywhfm<.f> a,limm,limm 0011011000100000F111111110AAAAAA.  */
-{ "mpywhfm", 0x36207F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "mpywhfm", 0x36207F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* mpywhfm<.f> 0,limm,limm 0011011000100000F111111110111110.  */
-{ "mpywhfm", 0x36207FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "mpywhfm", 0x36207FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* mpywhfm<.f><.cc> 0,limm,limm 0011011011100000F1111111100QQQQQ.  */
-{ "mpywhfm", 0x36E07F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "mpywhfm", 0x36E07F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* mpywhfmr<.f> a,b,c 00110bbb00100001FBBBCCCCCCAAAAAA.  */
-{ "mpywhfmr", 0x30210000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "mpywhfmr", 0x30210000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* mpywhfmr<.f> 0,b,c 00110bbb00100001FBBBCCCCCC111110.  */
-{ "mpywhfmr", 0x3021003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "mpywhfmr", 0x3021003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* mpywhfmr<.f><.cc> b,b,c 00110bbb11100001FBBBCCCCCC0QQQQQ.  */
-{ "mpywhfmr", 0x30E10000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "mpywhfmr", 0x30E10000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* mpywhfmr<.f> a,b,u6 00110bbb01100001FBBBuuuuuuAAAAAA.  */
-{ "mpywhfmr", 0x30610000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "mpywhfmr", 0x30610000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* mpywhfmr<.f> 0,b,u6 00110bbb01100001FBBBuuuuuu111110.  */
-{ "mpywhfmr", 0x3061003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "mpywhfmr", 0x3061003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* mpywhfmr<.f><.cc> b,b,u6 00110bbb11100001FBBBuuuuuu1QQQQQ.  */
-{ "mpywhfmr", 0x30E10020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "mpywhfmr", 0x30E10020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpywhfmr<.f> b,b,s12 00110bbb10100001FBBBssssssSSSSSS.  */
-{ "mpywhfmr", 0x30A10000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "mpywhfmr", 0x30A10000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* mpywhfmr<.f> a,limm,c 0011011000100001F111CCCCCCAAAAAA.  */
-{ "mpywhfmr", 0x36217000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "mpywhfmr", 0x36217000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* mpywhfmr<.f> a,b,limm 00110bbb00100001FBBB111110AAAAAA.  */
-{ "mpywhfmr", 0x30210F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "mpywhfmr", 0x30210F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* mpywhfmr<.f> 0,limm,c 0011011001100001F111CCCCCC111110.  */
-{ "mpywhfmr", 0x3661703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "mpywhfmr", 0x3661703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* mpywhfmr<.f> 0,b,limm 00110bbb00100001FBBB111110111110.  */
-{ "mpywhfmr", 0x30210FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "mpywhfmr", 0x30210FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* mpywhfmr<.f><.cc> 0,limm,c 00110bbb11100001FBBB1111100QQQQQ.  */
-{ "mpywhfmr", 0x30E10F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "mpywhfmr", 0x30E10F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* mpywhfmr<.f><.cc> b,b,limm 0011011011100001F111CCCCCC0QQQQQ.  */
-{ "mpywhfmr", 0x36E17000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "mpywhfmr", 0x36E17000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* mpywhfmr<.f> a,limm,u6 0011011001100001F111uuuuuuAAAAAA.  */
-{ "mpywhfmr", 0x36617000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "mpywhfmr", 0x36617000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpywhfmr<.f> 0,limm,u6 0011011001100001F111uuuuuu111110.  */
-{ "mpywhfmr", 0x3661703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "mpywhfmr", 0x3661703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpywhfmr<.f><.cc> 0,limm,u6 0011011011100001F111uuuuuu1QQQQQ.  */
-{ "mpywhfmr", 0x36E17020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "mpywhfmr", 0x36E17020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpywhfmr<.f> 0,limm,s12 0011011010100001F111ssssssSSSSSS.  */
-{ "mpywhfmr", 0x36A17000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "mpywhfmr", 0x36A17000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* mpywhfmr<.f> a,limm,limm 0011011000100001F111111110AAAAAA.  */
-{ "mpywhfmr", 0x36217F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "mpywhfmr", 0x36217F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* mpywhfmr<.f> 0,limm,limm 0011011000100001F111111110111110.  */
-{ "mpywhfmr", 0x36217FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "mpywhfmr", 0x36217FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* mpywhfmr<.f><.cc> 0,limm,limm 0011011011100001F1111111100QQQQQ.  */
-{ "mpywhfmr", 0x36E17F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "mpywhfmr", 0x36E17F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
-/* mpywhl<.f> a,b,c 00110bbb00011100FBBBCCCCCCAAAAAA.  */
-{ "mpywhl", 0x301C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+/* mpywhkl<.f><.cc> b,b,c 00110bbb11101010FBBBCCCCCC0QQQQQ */
+{ "mpywhkl", 0x30EA0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
 
-/* mpywhl<.f> 0,b,c 00110bbb00011100FBBBCCCCCC111110.  */
-{ "mpywhl", 0x301C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+/* mpywhkl<.f> 0,b,c 00110bbb00101010FBBBCCCCCC111110 */
+{ "mpywhkl", 0x302A003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
-/* mpywhl<.f><.cc> b,b,c 00110bbb11011100FBBBCCCCCC0QQQQQ.  */
-{ "mpywhl", 0x30DC0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+/* mpywhkl<.f> a,b,c 00110bbb00101010FBBBCCCCCCAAAAAA */
+{ "mpywhkl", 0x302A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, RC }, { C_F }},
 
-/* mpywhl<.f> a,b,u6 00110bbb01011100FBBBuuuuuuAAAAAA.  */
-{ "mpywhl", 0x305C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+/* mpywhkl<.f> a,b,u6 00110bbb01101010FBBBuuuuuuAAAAAA */
+{ "mpywhkl", 0x306A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, UIMM6_20 }, { C_F }},
 
-/* mpywhl<.f> 0,b,u6 00110bbb01011100FBBBuuuuuu111110.  */
-{ "mpywhl", 0x305C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+/* mpywhkl<.f><.cc> b,b,u6 00110bbb11101010FBBBuuuuuu1QQQQQ */
+{ "mpywhkl", 0x30EA0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
-/* mpywhl<.f><.cc> b,b,u6 00110bbb11011100FBBBuuuuuu1QQQQQ.  */
-{ "mpywhl", 0x30DC0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+/* mpywhkl<.f> 0,b,u6 00110bbb01101010FBBBuuuuuu111110 */
+{ "mpywhkl", 0x306A003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
-/* mpywhl<.f> b,b,s12 00110bbb10011100FBBBssssssSSSSSS.  */
-{ "mpywhl", 0x309C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+/* mpywhkl<.f> b,b,s12 00110bbb10101010FBBBssssssSSSSSS */
+{ "mpywhkl", 0x30AA0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
 
-/* mpywhl<.f> a,limm,c 0011011000011100F111CCCCCCAAAAAA.  */
-{ "mpywhl", 0x361C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+/* mpywhkl<.f> a,b,limm 00110bbb00101010FBBB111110AAAAAA */
+{ "mpywhkl", 0x302A0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, LIMM }, { C_F }},
 
-/* mpywhl<.f> a,b,limm 00110bbb00011100FBBB111110AAAAAA.  */
-{ "mpywhl", 0x301C0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+/* mpywhkl<.f><.cc> 0,limm,c 00110bbb11101010FBBB1111100QQQQQ */
+{ "mpywhkl", 0x30EA0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
-/* mpywhl<.f> 0,limm,c 0011011000011100F111CCCCCC111110.  */
-{ "mpywhl", 0x361C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+/* mpywhkl<.f><.cc> b,b,limm 0011011011101010F111CCCCCC0QQQQQ */
+{ "mpywhkl", 0x36EA7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
 
-/* mpywhl<.f> 0,b,limm 00110bbb00011100FBBB111110111110.  */
-{ "mpywhl", 0x301C0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+/* mpywhkl<.f> 0,limm,c 0011011001101010F111CCCCCC111110 */
+{ "mpywhkl", 0x366A703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
-/* mpywhl<.f><.cc> 0,limm,c 00110bbb11011100FBBB1111100QQQQQ.  */
-{ "mpywhl", 0x30DC0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+/* mpywhkl<.f> a,limm,c 0011011000101010F111CCCCCCAAAAAA */
+{ "mpywhkl", 0x362A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, RC }, { C_F }},
+
+/* mpywhkl<.f> 0,b,limm 00110bbb00101010FBBB111110111110 */
+{ "mpywhkl", 0x302A0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+
+/* mpywhkl<.f> 0,limm,u6 0011011001101010F111uuuuuu111110 */
+{ "mpywhkl", 0x366A703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* mpywhkl<.f><.cc> 0,limm,u6 0011011011101010F111uuuuuu1QQQQQ */
+{ "mpywhkl", 0x36EA7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* mpywhkl<.f> a,limm,u6 0011011001101010F111uuuuuuAAAAAA */
+{ "mpywhkl", 0x366A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* mpywhkl<.f> 0,limm,s12 0011011010101010F111ssssssSSSSSS */
+{ "mpywhkl", 0x36AA7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* mpywhkl<.f> 0,limm,limm 0011011000101010F111111110111110 */
+{ "mpywhkl", 0x362A7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+
+/* mpywhkl<.f><.cc> 0,limm,limm 0011011011101010F1111111100QQQQQ */
+{ "mpywhkl", 0x36EA7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* mpywhkl<.f> a,limm,limm 0011011000101010F111111110AAAAAA */
+{ "mpywhkl", 0x362A7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* mpywhkul<.f> 0,b,c 00110bbb00101011FBBBCCCCCC111110 */
+{ "mpywhkul", 0x302B003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
+
+/* mpywhkul<.f> a,b,c 00110bbb00101011FBBBCCCCCCAAAAAA */
+{ "mpywhkul", 0x302B0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, RC }, { C_F }},
+
+/* mpywhkul<.f><.cc> b,b,c 00110bbb11101011FBBBCCCCCC0QQQQQ */
+{ "mpywhkul", 0x30EB0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* mpywhkul<.f><.cc> b,b,u6 00110bbb11101011FBBBuuuuuu1QQQQQ */
+{ "mpywhkul", 0x30EB0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* mpywhkul<.f> 0,b,u6 00110bbb01101011FBBBuuuuuu111110 */
+{ "mpywhkul", 0x306B003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* mpywhkul<.f> a,b,u6 00110bbb01101011FBBBuuuuuuAAAAAA */
+{ "mpywhkul", 0x306B0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* mpywhkul<.f> b,b,s12 00110bbb10101011FBBBssssssSSSSSS */
+{ "mpywhkul", 0x30AB0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* mpywhkul<.f> a,b,limm 00110bbb00101011FBBB111110AAAAAA */
+{ "mpywhkul", 0x302B0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, LIMM }, { C_F }},
+
+/* mpywhkul<.f><.cc> b,b,limm 0011011011101011F111CCCCCC0QQQQQ */
+{ "mpywhkul", 0x36EB7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* mpywhkul<.f> 0,b,limm 00110bbb00101011FBBB111110111110 */
+{ "mpywhkul", 0x302B0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+
+/* mpywhkul<.f><.cc> 0,limm,c 00110bbb11101011FBBB1111100QQQQQ */
+{ "mpywhkul", 0x30EB0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* mpywhkul<.f> 0,limm,c 0011011001101011F111CCCCCC111110 */
+{ "mpywhkul", 0x366B703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+
+/* mpywhkul<.f> a,limm,c 0011011000101011F111CCCCCCAAAAAA */
+{ "mpywhkul", 0x362B7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, RC }, { C_F }},
+
+/* mpywhkul<.f> 0,limm,u6 0011011001101011F111uuuuuu111110 */
+{ "mpywhkul", 0x366B703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* mpywhkul<.f> a,limm,u6 0011011001101011F111uuuuuuAAAAAA */
+{ "mpywhkul", 0x366B7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* mpywhkul<.f><.cc> 0,limm,u6 0011011011101011F111uuuuuu1QQQQQ */
+{ "mpywhkul", 0x36EB7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* mpywhkul<.f> 0,limm,s12 0011011010101011F111ssssssSSSSSS */
+{ "mpywhkul", 0x36AB7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* mpywhkul<.f> 0,limm,limm 0011011000101011F111111110111110 */
+{ "mpywhkul", 0x362B7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+
+/* mpywhkul<.f><.cc> 0,limm,limm 0011011011101011F1111111100QQQQQ */
+{ "mpywhkul", 0x36EB7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* mpywhkul<.f> a,limm,limm 0011011000101011F111111110AAAAAA */
+{ "mpywhkul", 0x362B7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* mpywhl<.f> a,b,c 00110bbb00011100FBBBCCCCCCAAAAAA.  */
+{ "mpywhl", 0x301C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+
+/* mpywhl<.f> 0,b,c 00110bbb00011100FBBBCCCCCC111110.  */
+{ "mpywhl", 0x301C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
+
+/* mpywhl<.f><.cc> b,b,c 00110bbb11011100FBBBCCCCCC0QQQQQ.  */
+{ "mpywhl", 0x30DC0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+
+/* mpywhl<.f> a,b,u6 00110bbb01011100FBBBuuuuuuAAAAAA.  */
+{ "mpywhl", 0x305C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+
+/* mpywhl<.f> 0,b,u6 00110bbb01011100FBBBuuuuuu111110.  */
+{ "mpywhl", 0x305C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* mpywhl<.f><.cc> b,b,u6 00110bbb11011100FBBBuuuuuu1QQQQQ.  */
+{ "mpywhl", 0x30DC0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* mpywhl<.f> b,b,s12 00110bbb10011100FBBBssssssSSSSSS.  */
+{ "mpywhl", 0x309C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+
+/* mpywhl<.f> a,limm,c 0011011000011100F111CCCCCCAAAAAA.  */
+{ "mpywhl", 0x361C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+
+/* mpywhl<.f> a,b,limm 00110bbb00011100FBBB111110AAAAAA.  */
+{ "mpywhl", 0x301C0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+
+/* mpywhl<.f> 0,limm,c 0011011000011100F111CCCCCC111110.  */
+{ "mpywhl", 0x361C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+
+/* mpywhl<.f> 0,b,limm 00110bbb00011100FBBB111110111110.  */
+{ "mpywhl", 0x301C0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+
+/* mpywhl<.f><.cc> 0,limm,c 00110bbb11011100FBBB1111100QQQQQ.  */
+{ "mpywhl", 0x30DC0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* mpywhl<.f><.cc> b,b,limm 0011011011011100F111CCCCCC0QQQQQ.  */
-{ "mpywhl", 0x36DC7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "mpywhl", 0x36DC7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* mpywhl<.f> a,limm,u6 0011011001011100F111uuuuuuAAAAAA.  */
-{ "mpywhl", 0x365C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "mpywhl", 0x365C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpywhl<.f> 0,limm,u6 0011011001011100F111uuuuuu111110.  */
-{ "mpywhl", 0x365C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "mpywhl", 0x365C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpywhl<.f><.cc> 0,limm,u6 0011011011011100F111uuuuuu1QQQQQ.  */
-{ "mpywhl", 0x36DC7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "mpywhl", 0x36DC7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpywhl<.f> 0,limm,s12 0011011010011100F111ssssssSSSSSS.  */
-{ "mpywhl", 0x369C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "mpywhl", 0x369C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* mpywhl<.f> a,limm,limm 0011011000011100F111111110AAAAAA.  */
-{ "mpywhl", 0x361C7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "mpywhl", 0x361C7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* mpywhl<.f> 0,limm,limm 0011011000011100F111111110111110.  */
-{ "mpywhl", 0x361C7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "mpywhl", 0x361C7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* mpywhl<.f><.cc> 0,limm,limm 0011011011011100F1111111100QQQQQ.  */
-{ "mpywhl", 0x36DC7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "mpywhl", 0x36DC7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* mpywhul<.f> a,b,c 00110bbb00011110FBBBCCCCCCAAAAAA.  */
-{ "mpywhul", 0x301E0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "mpywhul", 0x301E0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* mpywhul<.f> 0,b,c 00110bbb00011110FBBBCCCCCC111110.  */
-{ "mpywhul", 0x301E003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "mpywhul", 0x301E003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* mpywhul<.f><.cc> b,b,c 00110bbb11011110FBBBCCCCCC0QQQQQ.  */
-{ "mpywhul", 0x30DE0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "mpywhul", 0x30DE0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* mpywhul<.f> a,b,u6 00110bbb01011110FBBBuuuuuuAAAAAA.  */
-{ "mpywhul", 0x305E0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "mpywhul", 0x305E0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* mpywhul<.f> 0,b,u6 00110bbb01011110FBBBuuuuuu111110.  */
-{ "mpywhul", 0x305E003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "mpywhul", 0x305E003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* mpywhul<.f><.cc> b,b,u6 00110bbb11011110FBBBuuuuuu1QQQQQ.  */
-{ "mpywhul", 0x30DE0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "mpywhul", 0x30DE0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpywhul<.f> b,b,s12 00110bbb10011110FBBBssssssSSSSSS.  */
-{ "mpywhul", 0x309E0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "mpywhul", 0x309E0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* mpywhul<.f> a,limm,c 0011011000011110F111CCCCCCAAAAAA.  */
-{ "mpywhul", 0x361E7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "mpywhul", 0x361E7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* mpywhul<.f> a,b,limm 00110bbb00011110FBBB111110AAAAAA.  */
-{ "mpywhul", 0x301E0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "mpywhul", 0x301E0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* mpywhul<.f> 0,limm,c 0011011000011110F111CCCCCC111110.  */
-{ "mpywhul", 0x361E703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "mpywhul", 0x361E703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* mpywhul<.f> 0,b,limm 00110bbb00011110FBBB111110111110.  */
-{ "mpywhul", 0x301E0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "mpywhul", 0x301E0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* mpywhul<.f><.cc> 0,limm,c 00110bbb11011110FBBB1111100QQQQQ.  */
-{ "mpywhul", 0x30DE0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "mpywhul", 0x30DE0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* mpywhul<.f><.cc> b,b,limm 0011011011011110F111CCCCCC0QQQQQ.  */
-{ "mpywhul", 0x36DE7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "mpywhul", 0x36DE7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* mpywhul<.f> a,limm,u6 0011011001011110F111uuuuuuAAAAAA.  */
-{ "mpywhul", 0x365E7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "mpywhul", 0x365E7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpywhul<.f> 0,limm,u6 0011011001011110F111uuuuuu111110.  */
-{ "mpywhul", 0x365E703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "mpywhul", 0x365E703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* mpywhul<.f><.cc> 0,limm,u6 0011011011011110F111uuuuuu1QQQQQ.  */
-{ "mpywhul", 0x36DE7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "mpywhul", 0x36DE7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* mpywhul<.f> 0,limm,s12 0011011010011110F111ssssssSSSSSS.  */
-{ "mpywhul", 0x369E7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "mpywhul", 0x369E7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* mpywhul<.f> a,limm,limm 0011011000011110F111111110AAAAAA.  */
-{ "mpywhul", 0x361E7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "mpywhul", 0x361E7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* mpywhul<.f> 0,limm,limm 0011011000011110F111111110111110.  */
-{ "mpywhul", 0x361E7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "mpywhul", 0x361E7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* mpywhul<.f><.cc> 0,limm,limm 0011011011011110F1111111100QQQQQ.  */
-{ "mpywhul", 0x36DE7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "mpywhul", 0x36DE7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* mpyw_s b,b,c 01111bbbccc01001.  */
 { "mpyw_s", 0x00007809, 0x0000F81F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY1E, { RB_S, RB_Sdup, RC_S }, { 0 }},
@@ -11497,64 +12193,64 @@
 { "mpy_s", 0x0000780C, 0x0000F81F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY6E, { RB_S, RB_Sdup, RC_S }, { 0 }},
 
 /* msubdf<.f> a,b,c 00110bbb00010101FBBBCCCCCCAAAAAA.  */
-{ "msubdf", 0x30150000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "msubdf", 0x30150000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* msubdf<.f> 0,b,c 00110bbb00010101FBBBCCCCCC111110.  */
-{ "msubdf", 0x3015003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "msubdf", 0x3015003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* msubdf<.f><.cc> b,b,c 00110bbb11010101FBBBCCCCCC0QQQQQ.  */
-{ "msubdf", 0x30D50000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "msubdf", 0x30D50000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* msubdf<.f> a,b,u6 00110bbb01010101FBBBuuuuuuAAAAAA.  */
-{ "msubdf", 0x30550000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "msubdf", 0x30550000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* msubdf<.f> 0,b,u6 00110bbb01010101FBBBuuuuuu111110.  */
-{ "msubdf", 0x3055003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "msubdf", 0x3055003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* msubdf<.f><.cc> b,b,u6 00110bbb11010101FBBBuuuuuu1QQQQQ.  */
-{ "msubdf", 0x30D50020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "msubdf", 0x30D50020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* msubdf<.f> b,b,s12 00110bbb10010101FBBBssssssSSSSSS.  */
-{ "msubdf", 0x30950000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "msubdf", 0x30950000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* msubdf<.f> a,limm,c 0011011000010101F111CCCCCCAAAAAA.  */
-{ "msubdf", 0x36157000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "msubdf", 0x36157000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* msubdf<.f> a,b,limm 00110bbb00010101FBBB111110AAAAAA.  */
-{ "msubdf", 0x30150F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "msubdf", 0x30150F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* msubdf<.f> 0,limm,c 0011011000010101F111CCCCCC111110.  */
-{ "msubdf", 0x3615703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "msubdf", 0x3615703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* msubdf<.f> 0,b,limm 00110bbb00010101FBBB111110111110.  */
-{ "msubdf", 0x30150FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "msubdf", 0x30150FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* msubdf<.f><.cc> 0,limm,c 00110bbb11010101FBBB1111100QQQQQ.  */
-{ "msubdf", 0x30D50F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "msubdf", 0x30D50F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* msubdf<.f><.cc> b,b,limm 0011011011010101F111CCCCCC0QQQQQ.  */
-{ "msubdf", 0x36D57000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "msubdf", 0x36D57000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* msubdf<.f> a,limm,u6 0011011001010101F111uuuuuuAAAAAA.  */
-{ "msubdf", 0x36557000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "msubdf", 0x36557000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* msubdf<.f> 0,limm,u6 0011011001010101F111uuuuuu111110.  */
-{ "msubdf", 0x3655703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "msubdf", 0x3655703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* msubdf<.f><.cc> 0,limm,u6 0011011011010101F111uuuuuu1QQQQQ.  */
-{ "msubdf", 0x36D57020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "msubdf", 0x36D57020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* msubdf<.f> 0,limm,s12 0011011010010101F111ssssssSSSSSS.  */
-{ "msubdf", 0x36957000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "msubdf", 0x36957000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* msubdf<.f> a,limm,limm 0011011000010101F111111110AAAAAA.  */
-{ "msubdf", 0x36157F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "msubdf", 0x36157F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* msubdf<.f> 0,limm,limm 0011011000010101F111111110111110.  */
-{ "msubdf", 0x36157FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "msubdf", 0x36157FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* msubdf<.f><.cc> 0,limm,limm 0011011011010101F1111111100QQQQQ.  */
-{ "msubdf", 0x36D57F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "msubdf", 0x36D57F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* msubdw<.f> a,b,c 00101bbb00010100FBBBCCCCCCAAAAAA.  */
 { "msubdw", 0x28140000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
@@ -11617,124 +12313,124 @@
 { "msubdw", 0x2ED47F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* msubf<.f> a,b,c 00110bbb00001110FBBBCCCCCCAAAAAA.  */
-{ "msubf", 0x300E0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "msubf", 0x300E0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* msubf<.f> 0,b,c 00110bbb00001110FBBBCCCCCC111110.  */
-{ "msubf", 0x300E003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "msubf", 0x300E003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* msubf<.f><.cc> b,b,c 00110bbb11001110FBBBCCCCCC0QQQQQ.  */
-{ "msubf", 0x30CE0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "msubf", 0x30CE0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* msubf<.f> a,b,u6 00110bbb01001110FBBBuuuuuuAAAAAA.  */
-{ "msubf", 0x304E0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "msubf", 0x304E0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* msubf<.f> 0,b,u6 00110bbb01001110FBBBuuuuuu111110.  */
-{ "msubf", 0x304E003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "msubf", 0x304E003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* msubf<.f><.cc> b,b,u6 00110bbb11001110FBBBuuuuuu1QQQQQ.  */
-{ "msubf", 0x30CE0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "msubf", 0x30CE0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* msubf<.f> b,b,s12 00110bbb10001110FBBBssssssSSSSSS.  */
-{ "msubf", 0x308E0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "msubf", 0x308E0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* msubf<.f> a,limm,c 0011011000001110F111CCCCCCAAAAAA.  */
-{ "msubf", 0x360E7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "msubf", 0x360E7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* msubf<.f> a,b,limm 00110bbb00001110FBBB111110AAAAAA.  */
-{ "msubf", 0x300E0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "msubf", 0x300E0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* msubf<.f> 0,limm,c 0011011000001110F111CCCCCC111110.  */
-{ "msubf", 0x360E703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "msubf", 0x360E703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* msubf<.f> 0,b,limm 00110bbb00001110FBBB111110111110.  */
-{ "msubf", 0x300E0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "msubf", 0x300E0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* msubf<.f><.cc> 0,limm,c 00110bbb11001110FBBB1111100QQQQQ.  */
-{ "msubf", 0x30CE0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "msubf", 0x30CE0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* msubf<.f><.cc> b,b,limm 0011011011001110F111CCCCCC0QQQQQ.  */
-{ "msubf", 0x36CE7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "msubf", 0x36CE7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* msubf<.f> a,limm,u6 0011011001001110F111uuuuuuAAAAAA.  */
-{ "msubf", 0x364E7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "msubf", 0x364E7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* msubf<.f> 0,limm,u6 0011011001001110F111uuuuuu111110.  */
-{ "msubf", 0x364E703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "msubf", 0x364E703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* msubf<.f><.cc> 0,limm,u6 0011011011001110F111uuuuuu1QQQQQ.  */
-{ "msubf", 0x36CE7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "msubf", 0x36CE7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* msubf<.f> 0,limm,s12 0011011010001110F111ssssssSSSSSS.  */
-{ "msubf", 0x368E7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "msubf", 0x368E7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* msubf<.f> a,limm,limm 0011011000001110F111111110AAAAAA.  */
-{ "msubf", 0x360E7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "msubf", 0x360E7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* msubf<.f> 0,limm,limm 0011011000001110F111111110111110.  */
-{ "msubf", 0x360E7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "msubf", 0x360E7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* msubf<.f><.cc> 0,limm,limm 0011011011001110F1111111100QQQQQ.  */
-{ "msubf", 0x36CE7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "msubf", 0x36CE7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* msubfr<.f> a,b,c 00110bbb00001111FBBBCCCCCCAAAAAA.  */
-{ "msubfr", 0x300F0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
+{ "msubfr", 0x300F0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
 
 /* msubfr<.f> 0,b,c 00110bbb00001111FBBBCCCCCC111110.  */
-{ "msubfr", 0x300F003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { C_F }},
+{ "msubfr", 0x300F003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
 
 /* msubfr<.f><.cc> b,b,c 00110bbb11001111FBBBCCCCCC0QQQQQ.  */
-{ "msubfr", 0x30CF0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
+{ "msubfr", 0x30CF0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_F, C_CC }},
 
 /* msubfr<.f> a,b,u6 00110bbb01001111FBBBuuuuuuAAAAAA.  */
-{ "msubfr", 0x304F0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
+{ "msubfr", 0x304F0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { C_F }},
 
 /* msubfr<.f> 0,b,u6 00110bbb01001111FBBBuuuuuu111110.  */
-{ "msubfr", 0x304F003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "msubfr", 0x304F003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* msubfr<.f><.cc> b,b,u6 00110bbb11001111FBBBuuuuuu1QQQQQ.  */
-{ "msubfr", 0x30CF0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "msubfr", 0x30CF0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* msubfr<.f> b,b,s12 00110bbb10001111FBBBssssssSSSSSS.  */
-{ "msubfr", 0x308F0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
+{ "msubfr", 0x308F0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { C_F }},
 
 /* msubfr<.f> a,limm,c 0011011000001111F111CCCCCCAAAAAA.  */
-{ "msubfr", 0x360F7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
+{ "msubfr", 0x360F7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { C_F }},
 
 /* msubfr<.f> a,b,limm 00110bbb00001111FBBB111110AAAAAA.  */
-{ "msubfr", 0x300F0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
+{ "msubfr", 0x300F0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { C_F }},
 
 /* msubfr<.f> 0,limm,c 0011011000001111F111CCCCCC111110.  */
-{ "msubfr", 0x360F703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "msubfr", 0x360F703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* msubfr<.f> 0,b,limm 00110bbb00001111FBBB111110111110.  */
-{ "msubfr", 0x300F0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "msubfr", 0x300F0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* msubfr<.f><.cc> 0,limm,c 00110bbb11001111FBBB1111100QQQQQ.  */
-{ "msubfr", 0x30CF0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "msubfr", 0x30CF0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* msubfr<.f><.cc> b,b,limm 0011011011001111F111CCCCCC0QQQQQ.  */
-{ "msubfr", 0x36CF7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
+{ "msubfr", 0x36CF7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_F, C_CC }},
 
 /* msubfr<.f> a,limm,u6 0011011001001111F111uuuuuuAAAAAA.  */
-{ "msubfr", 0x364F7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
+{ "msubfr", 0x364F7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { C_F }},
 
 /* msubfr<.f> 0,limm,u6 0011011001001111F111uuuuuu111110.  */
-{ "msubfr", 0x364F703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "msubfr", 0x364F703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* msubfr<.f><.cc> 0,limm,u6 0011011011001111F111uuuuuu1QQQQQ.  */
-{ "msubfr", 0x36CF7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "msubfr", 0x36CF7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* msubfr<.f> 0,limm,s12 0011011010001111F111ssssssSSSSSS.  */
-{ "msubfr", 0x368F7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "msubfr", 0x368F7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* msubfr<.f> a,limm,limm 0011011000001111F111111110AAAAAA.  */
-{ "msubfr", 0x360F7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
+{ "msubfr", 0x360F7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { C_F }},
 
 /* msubfr<.f> 0,limm,limm 0011011000001111F111111110111110.  */
-{ "msubfr", 0x360F7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "msubfr", 0x360F7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* msubfr<.f><.cc> 0,limm,limm 0011011011001111F1111111100QQQQQ.  */
-{ "msubfr", 0x36CF7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "msubfr", 0x36CF7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* msubt<.f> a,b,c 00101bbb00100000FBBBCCCCCCAAAAAA.  */
 { "msubt", 0x28200000, 0xF8FF0000, ARC_OPCODE_ARC600, DSP, NONE, { RA_CHK, RB, RC }, { C_F }},
@@ -11796,6 +12492,243 @@
 /* msubt<.f><.cc> 0,limm,limm 0010111011100000F1111111100QQQQQ.  */
 { "msubt", 0x2EE07F80, 0xFFFF7FE0, ARC_OPCODE_ARC600, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
+/* msubwhfl<.f><.cc> b,b,c 00110bbb11010100FBBBCCCCCC0QQQQQ */
+{ "msubwhfl", 0x30D40000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* msubwhfl<.f> 0,b,c 00110bbb00010100FBBBCCCCCC111110 */
+{ "msubwhfl", 0x3014003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
+
+/* msubwhfl<.f> a,b,u6 00110bbb01010100FBBBuuuuuuAAAAAA */
+{ "msubwhfl", 0x30540000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* msubwhfl<.f><.cc> b,b,u6 00110bbb11010100FBBBuuuuuu1QQQQQ */
+{ "msubwhfl", 0x30D40020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* msubwhfl<.f> 0,b,u6 00110bbb01010100FBBBuuuuuu111110 */
+{ "msubwhfl", 0x3054003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* msubwhfl<.f> b,b,s12 00110bbb10010100FBBBssssssSSSSSS */
+{ "msubwhfl", 0x30940000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* msubwhfl<.f> a,limm,c 0011011000010100F111CCCCCCAAAAAA */
+{ "msubwhfl", 0x36147000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, RC }, { C_F }},
+
+/* msubwhfl<.f><.cc> 0,limm,c 00110bbb11010100FBBB1111100QQQQQ */
+{ "msubwhfl", 0x30D40F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* msubwhfl<.f> a,b,limm 00110bbb00010100FBBB111110AAAAAA */
+{ "msubwhfl", 0x30140F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, LIMM }, { C_F }},
+
+/* msubwhfl<.f> 0,limm,c 0011011000010100F111CCCCCC111110 */
+{ "msubwhfl", 0x3614703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+
+/* msubwhfl<.f><.cc> b,b,limm 0011011011010100F111CCCCCC0QQQQQ */
+{ "msubwhfl", 0x36D47000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* msubwhfl<.f> 0,b,limm 00110bbb00010100FBBB111110111110 */
+{ "msubwhfl", 0x30140FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+
+/* msubwhfl<.f> 0,limm,u6 0011011001010100F111uuuuuu111110 */
+{ "msubwhfl", 0x3654703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* msubwhfl<.f> a,limm,u6 0011011001010100F111uuuuuuAAAAAA */
+{ "msubwhfl", 0x36547000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* msubwhfl<.f><.cc> 0,limm,u6 0011011011010100F111uuuuuu1QQQQQ */
+{ "msubwhfl", 0x36D47020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* msubwhfl<.f> 0,limm,s12 0011011010010100F111ssssssSSSSSS */
+{ "msubwhfl", 0x36947000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* msubwhfl<.f> 0,limm,limm 0011011000010100F111111110111110 */
+{ "msubwhfl", 0x36147FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+
+/* msubwhfl<.f> a,limm,limm 0011011000010100F111111110AAAAAA */
+{ "msubwhfl", 0x36147F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* msubwhfl<.f><.cc> 0,limm,limm 0011011011010100F1111111100QQQQQ */
+{ "msubwhfl", 0x36D47F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* msubwhflr<.f> 0,b,c 00110bbb00011010FBBBCCCCCC111110 */
+{ "msubwhflr", 0x301A003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
+
+/* msubwhflr<.f><.cc> b,b,c 00110bbb11011010FBBBCCCCCC0QQQQQ */
+{ "msubwhflr", 0x30DA0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* msubwhflr<.f> a,b,c 00110bbb00011010FBBBCCCCCCAAAAAA */
+{ "msubwhflr", 0x301A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, RC }, { C_F }},
+
+/* msubwhflr<.f> a,b,u6 00110bbb01011010FBBBuuuuuuAAAAAA */
+{ "msubwhflr", 0x305A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* msubwhflr<.f><.cc> b,b,u6 00110bbb11011010FBBBuuuuuu1QQQQQ */
+{ "msubwhflr", 0x30DA0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* msubwhflr<.f> 0,b,u6 00110bbb01011010FBBBuuuuuu111110 */
+{ "msubwhflr", 0x305A003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* msubwhflr<.f> b,b,s12 00110bbb10011010FBBBssssssSSSSSS */
+{ "msubwhflr", 0x309A0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* msubwhflr<.f><.cc> b,b,limm 0011011011011010F111CCCCCC0QQQQQ */
+{ "msubwhflr", 0x36DA7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* msubwhflr<.f><.cc> 0,limm,c 00110bbb11011010FBBB1111100QQQQQ */
+{ "msubwhflr", 0x30DA0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* msubwhflr<.f> a,b,limm 00110bbb00011010FBBB111110AAAAAA */
+{ "msubwhflr", 0x301A0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, LIMM }, { C_F }},
+
+/* msubwhflr<.f> 0,b,limm 00110bbb00011010FBBB111110111110 */
+{ "msubwhflr", 0x301A0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+
+/* msubwhflr<.f> 0,limm,c 0011011000011010F111CCCCCC111110 */
+{ "msubwhflr", 0x361A703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+
+/* msubwhflr<.f> a,limm,c 0011011000011010F111CCCCCCAAAAAA */
+{ "msubwhflr", 0x361A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, RC }, { C_F }},
+
+/* msubwhflr<.f><.cc> 0,limm,u6 0011011011011010F111uuuuuu1QQQQQ */
+{ "msubwhflr", 0x36DA7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* msubwhflr<.f> 0,limm,u6 0011011001011010F111uuuuuu111110 */
+{ "msubwhflr", 0x365A703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* msubwhflr<.f> a,limm,u6 0011011001011010F111uuuuuuAAAAAA */
+{ "msubwhflr", 0x365A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* msubwhflr<.f> 0,limm,s12 0011011010011010F111ssssssSSSSSS */
+{ "msubwhflr", 0x369A7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* msubwhflr<.f><.cc> 0,limm,limm 0011011011011010F1111111100QQQQQ */
+{ "msubwhflr", 0x36DA7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* msubwhflr<.f> a,limm,limm 0011011000011010F111111110AAAAAA */
+{ "msubwhflr", 0x361A7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* msubwhflr<.f> 0,limm,limm 0011011000011010F111111110111110 */
+{ "msubwhflr", 0x361A7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+
+/* msubwhfm<.f> 0,b,c 00110bbb00101100FBBBCCCCCC111110 */
+{ "msubwhfm", 0x302C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
+
+/* msubwhfm<.f><.cc> b,b,c 00110bbb11101100FBBBCCCCCC0QQQQQ */
+{ "msubwhfm", 0x30EC0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* msubwhfm<.f> a,b,c 00110bbb00101100FBBBCCCCCCAAAAAA */
+{ "msubwhfm", 0x302C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, RC }, { C_F }},
+
+/* msubwhfm<.f><.cc> b,b,u6 00110bbb11101100FBBBuuuuuu1QQQQQ */
+{ "msubwhfm", 0x30EC0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* msubwhfm<.f> a,b,u6 00110bbb01101100FBBBuuuuuuAAAAAA */
+{ "msubwhfm", 0x306C0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* msubwhfm<.f> 0,b,u6 00110bbb01101100FBBBuuuuuu111110 */
+{ "msubwhfm", 0x306C003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* msubwhfm<.f> b,b,s12 00110bbb10101100FBBBssssssSSSSSS */
+{ "msubwhfm", 0x30AC0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* msubwhfm<.f> 0,limm,c 0011011001101100F111CCCCCC111110 */
+{ "msubwhfm", 0x366C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+
+/* msubwhfm<.f><.cc> 0,limm,c 00110bbb11101100FBBB1111100QQQQQ */
+{ "msubwhfm", 0x30EC0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* msubwhfm<.f> a,limm,c 0011011000101100F111CCCCCCAAAAAA */
+{ "msubwhfm", 0x362C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, RC }, { C_F }},
+
+/* msubwhfm<.f><.cc> b,b,limm 0011011011101100F111CCCCCC0QQQQQ */
+{ "msubwhfm", 0x36EC7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* msubwhfm<.f> a,b,limm 00110bbb00101100FBBB111110AAAAAA */
+{ "msubwhfm", 0x302C0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, LIMM }, { C_F }},
+
+/* msubwhfm<.f> 0,b,limm 00110bbb00101100FBBB111110111110 */
+{ "msubwhfm", 0x302C0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+
+/* msubwhfm<.f> 0,limm,u6 0011011001101100F111uuuuuu111110 */
+{ "msubwhfm", 0x366C703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* msubwhfm<.f> a,limm,u6 0011011001101100F111uuuuuuAAAAAA */
+{ "msubwhfm", 0x366C7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* msubwhfm<.f><.cc> 0,limm,u6 0011011011101100F111uuuuuu1QQQQQ */
+{ "msubwhfm", 0x36EC7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* msubwhfm<.f> 0,limm,s12 0011011010101100F111ssssssSSSSSS */
+{ "msubwhfm", 0x36AC7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* msubwhfm<.f> 0,limm,limm 0011011000101100F111111110111110 */
+{ "msubwhfm", 0x362C7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+
+/* msubwhfm<.f> a,limm,limm 0011011000101100F111111110AAAAAA */
+{ "msubwhfm", 0x362C7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* msubwhfm<.f><.cc> 0,limm,limm 0011011011101100F1111111100QQQQQ */
+{ "msubwhfm", 0x36EC7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* msubwhfmr<.f> a,b,c 00110bbb00101101FBBBCCCCCCAAAAAA */
+{ "msubwhfmr", 0x302D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, RC }, { C_F }},
+
+/* msubwhfmr<.f> 0,b,c 00110bbb00101101FBBBCCCCCC111110 */
+{ "msubwhfmr", 0x302D003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { C_F }},
+
+/* msubwhfmr<.f><.cc> b,b,c 00110bbb11101101FBBBCCCCCC0QQQQQ */
+{ "msubwhfmr", 0x30ED0000, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* msubwhfmr<.f> a,b,u6 00110bbb01101101FBBBuuuuuuAAAAAA */
+{ "msubwhfmr", 0x306D0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* msubwhfmr<.f><.cc> b,b,u6 00110bbb11101101FBBBuuuuuu1QQQQQ */
+{ "msubwhfmr", 0x30ED0020, 0xF8FF0020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* msubwhfmr<.f> 0,b,u6 00110bbb01101101FBBBuuuuuu111110 */
+{ "msubwhfmr", 0x306D003E, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* msubwhfmr<.f> b,b,s12 00110bbb10101101FBBBssssssSSSSSS */
+{ "msubwhfmr", 0x30AD0000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* msubwhfmr<.f> a,limm,c 0011011000101101F111CCCCCCAAAAAA */
+{ "msubwhfmr", 0x362D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, RC }, { C_F }},
+
+/* msubwhfmr<.f> 0,b,limm 00110bbb00101101FBBB111110111110 */
+{ "msubwhfmr", 0x302D0FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { C_F }},
+
+/* msubwhfmr<.f> a,b,limm 00110bbb00101101FBBB111110AAAAAA */
+{ "msubwhfmr", 0x302D0F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, LIMM }, { C_F }},
+
+/* msubwhfmr<.f><.cc> b,b,limm 0011011011101101F111CCCCCC0QQQQQ */
+{ "msubwhfmr", 0x36ED7000, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* msubwhfmr<.f><.cc> 0,limm,c 00110bbb11101101FBBB1111100QQQQQ */
+{ "msubwhfmr", 0x30ED0F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* msubwhfmr<.f> 0,limm,c 0011011001101101F111CCCCCC111110 */
+{ "msubwhfmr", 0x366D703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_F }},
+
+/* msubwhfmr<.f><.cc> 0,limm,u6 0011011011101101F111uuuuuu1QQQQQ */
+{ "msubwhfmr", 0x36ED7020, 0xFFFF7020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* msubwhfmr<.f> a,limm,u6 0011011001101101F111uuuuuuAAAAAA */
+{ "msubwhfmr", 0x366D7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* msubwhfmr<.f> 0,limm,u6 0011011001101101F111uuuuuu111110 */
+{ "msubwhfmr", 0x366D703E, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* msubwhfmr<.f> 0,limm,s12 0011011010101101F111ssssssSSSSSS */
+{ "msubwhfmr", 0x36AD7000, 0xFFFF7000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* msubwhfmr<.f><.cc> 0,limm,limm 0011011011101101F1111111100QQQQQ */
+{ "msubwhfmr", 0x36ED7F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* msubwhfmr<.f> 0,limm,limm 0011011000101101F111111110111110 */
+{ "msubwhfmr", 0x362D7FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+
+/* msubwhfmr<.f> a,limm,limm 0011011000101101F111111110AAAAAA */
+{ "msubwhfmr", 0x362D7F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+
 /* mul64 0,b,c 00101bbb000001000BBBCCCCCC111110.  */
 { "mul64", 0x2804003E, 0xF8FF803F, ARC_OPCODE_ARC600, MPY, NONE, { ZA, RB, RC }, { 0 }},
 
@@ -12646,40 +13579,40 @@
 { "neg", 0x26CE7020, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM }, { C_F, C_CC }},
 
 /* negs<.f> b,c 00101bbb00101111FBBBCCCCCC000111.  */
-{ "negs", 0x282F0007, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RC }, { C_F }},
+{ "negs", 0x282F0007, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RC }, { C_F }},
 
 /* negs<.f> 0,c 0010111000101111F111CCCCCC000111.  */
-{ "negs", 0x2E2F7007, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, RC }, { C_F }},
+{ "negs", 0x2E2F7007, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RC }, { C_F }},
 
 /* negs<.f> b,u6 00101bbb01101111FBBBuuuuuu000111.  */
-{ "negs", 0x286F0007, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, UIMM6_20 }, { C_F }},
+{ "negs", 0x286F0007, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, UIMM6_20 }, { C_F }},
 
 /* negs<.f> 0,u6 0010111001101111F111uuuuuu000111.  */
-{ "negs", 0x2E6F7007, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, UIMM6_20 }, { C_F }},
+{ "negs", 0x2E6F7007, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, UIMM6_20 }, { C_F }},
 
 /* negs<.f> b,limm 00101bbb00101111FBBB111110000111.  */
-{ "negs", 0x282F0F87, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, LIMM }, { C_F }},
+{ "negs", 0x282F0F87, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, LIMM }, { C_F }},
 
 /* negs<.f> 0,limm 0010111000101111F111111110000111.  */
-{ "negs", 0x2E2F7F87, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM }, { C_F }},
+{ "negs", 0x2E2F7F87, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM }, { C_F }},
 
 /* negsh<.f> b,c 00101bbb00101111FBBBCCCCCC000110.  */
-{ "negsh", 0x282F0006, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { C_F }},
+{ "negsh", 0x282F0006, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { C_F }},
 
 /* negsh<.f> 0,c 0010111000101111F111CCCCCC000110.  */
-{ "negsh", 0x2E2F7006, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { C_F }},
+{ "negsh", 0x2E2F7006, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { C_F }},
 
 /* negsh<.f> b,u6 00101bbb01101111FBBBuuuuuu000110.  */
-{ "negsh", 0x286F0006, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { C_F }},
+{ "negsh", 0x286F0006, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { C_F }},
 
 /* negsh<.f> 0,u6 0010111001101111F111uuuuuu000110.  */
-{ "negsh", 0x2E6F7006, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { C_F }},
+{ "negsh", 0x2E6F7006, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { C_F }},
 
 /* negsh<.f> b,limm 00101bbb00101111FBBB111110000110.  */
-{ "negsh", 0x282F0F86, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { C_F }},
+{ "negsh", 0x282F0F86, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { C_F }},
 
 /* negsh<.f> 0,limm 0010111000101111F111111110000110.  */
-{ "negsh", 0x2E2F7F86, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { C_F }},
+{ "negsh", 0x2E2F7F86, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { C_F }},
 
 /* negsw<.f> b,c 00101bbb00101111FBBBCCCCCC000110.  */
 { "negsw", 0x282F0006, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, ARITH, NONE, { RB, RC }, { C_F }},
@@ -12702,9 +13635,6 @@
 /* neg_s b,c 01111bbbccc10011.  */
 { "neg_s", 0x00007813, 0x0000F81F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB_S, RC_S }, { 0 }},
 
-/* nop  00100110010010100111000000000000.  */
-{ "nop", 0x264A7000, 0xFFFFFFFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, CONTROL, NONE, { 0 }, { 0 }},
-
 /* nop_s  0111100011100000.  */
 { "nop_s", 0x000078E0, 0x0000FFFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, CONTROL, NONE, { 0 }, { 0 }},
 
@@ -12727,22 +13657,22 @@
 { "norm", 0x2E2F7F81, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, BTSCN, { ZA, LIMM }, { C_F }},
 
 /* normacc b,c 00101bbb001011110BBBCCCCCC011001.  */
-{ "normacc", 0x282F0019, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { 0 }},
+{ "normacc", 0x282F0019, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { 0 }},
 
 /* normacc 0,c 00101110001011110111CCCCCC011001.  */
-{ "normacc", 0x2E2F7019, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { 0 }},
+{ "normacc", 0x2E2F7019, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
 
 /* normacc b,u6 00101bbb011011110BBBuuuuuu011001.  */
-{ "normacc", 0x286F0019, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
+{ "normacc", 0x286F0019, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
 
 /* normacc 0,u6 00101110011011110111uuuuuu011001.  */
-{ "normacc", 0x2E6F7019, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+{ "normacc", 0x2E6F7019, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
 
 /* normacc b,limm 00101bbb001011110BBB111110011001.  */
-{ "normacc", 0x282F0F99, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
+{ "normacc", 0x282F0F99, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
 
 /* normacc 0,limm 00101110001011110111111110011001.  */
-{ "normacc", 0x2E2F7F99, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { 0 }},
+{ "normacc", 0x2E2F7F99, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
 
 /* normh<.f> b,c 00101bbb00101111FBBBCCCCCC001000.  */
 { "normh", 0x282F0008, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, BTSCN, { RB, RC }, { C_F }},
@@ -12894,102 +13824,6 @@
 /* pop_s BLINK 11000RRR11010001.  */
 { "pop_s", 0x0000C0D1, 0x0000F8FF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, POP, NONE, { BLINK_S }, { C_AA_AB }},
 
-/* prealloc<.aa> b,c 00100bbbaa1100010BBBCCCCCC111110.  */
-{ "prealloc", 0x2031003E, 0xF83F803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, RC, BRAKETdup }, { C_AA8 }},
-
-/* prealloc<.aa> b,s9 00010bbbssssssssSBBB0aa001111110.  */
-{ "prealloc", 0x1000007E, 0xF80009FF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, SIMM9_8, BRAKETdup }, { C_AA21 }},
-
-/* prealloc<.aa> b,limm 00100bbbaa1100010BBB111110111110.  */
-{ "prealloc", 0x20310FBE, 0xF83F8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, LIMM, BRAKETdup }, { C_AA8 }},
-
-/* prealloc limm,c 00100110RR1100010111CCCCCC111110.  */
-{ "prealloc", 0x2631703E, 0xFF3FF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, RC, BRAKETdup }, { 0 }},
-
-/* prealloc limm 000101100000000001110RR001111110.  */
-{ "prealloc", 0x1600707E, 0xFFFFF9FF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, BRAKETdup }, { 0 }},
-
-/* prealloc limm,s9 00010110ssssssssS1110RR001111110.  */
-{ "prealloc", 0x1600707E, 0xFF0079FF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, SIMM9_8, BRAKETdup }, { 0 }},
-
-/* prefetch<.aa> b,c 00100bbbaa1100000BBBCCCCCC111110.  */
-{ "prefetch", 0x2030003E, 0xF83F803F, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, RC, BRAKETdup }, { C_AA8 }},
-
-/* prefetch b 00010bbb000000000BBB0RR000111110.  */
-{ "prefetch", 0x1000003E, 0xF8FF89FF, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, MEMORY, NONE, { BRAKET, RB, BRAKETdup }, { 0 }},
-
-/* prefetch<.aa> b,s9 00010bbbssssssssSBBB0aa000111110.  */
-{ "prefetch", 0x1000003E, 0xF80009FF, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, SIMM9_8, BRAKETdup }, { C_AA21 }},
-
-/* prefetch<.aa> b,limm 00100bbbaa1100000BBB111110111110.  */
-{ "prefetch", 0x20300FBE, 0xF83F8FFF, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, LIMM, BRAKETdup }, { C_AA8 }},
-
-/* prefetch<.aa> limm,c 00100110aa1100000111CCCCCC111110.  */
-{ "prefetch", 0x2630703E, 0xFF3FF03F, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, RC, BRAKETdup }, { C_AA8 }},
-
-/* prefetch limm,c 00100110RR1100000111CCCCCC111110.  */
-{ "prefetch", 0x2630703E, 0xFF3FF03F, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, RC, BRAKETdup }, { 0 }},
-
-/* prefetch limm 000101100000000001110RR000111110.  */
-{ "prefetch", 0x1600703E, 0xFFFFF9FF, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, BRAKETdup }, { 0 }},
-
-/* prefetch<.aa> limm,s9 00010110ssssssssS1110aa000111110.  */
-{ "prefetch", 0x1600703E, 0xFF0079FF, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, MEMORY, NONE, { BRAKET, LIMM, SIMM9_8, BRAKETdup }, { C_AA21 }},
-
-/* prefetch limm,s9 00010110ssssssssS1110RR000111110.  */
-{ "prefetch", 0x1600703E, 0xFF0079FF, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, SIMM9_8, BRAKETdup }, { 0 }},
-
-/* prefetch<.aa> limm,limm 00100110aa1100000111111110111110.  */
-{ "prefetch", 0x26307FBE, 0xFF3FFFFF, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, MEMORY, NONE, { BRAKET, LIMM, LIMMdup, BRAKETdup }, { C_AA8 }},
-
-/* prefetchl2<.aa> b,c 00100bbbaa1100100BBBCCCCCC111110.  */
-{ "prefetchl2", 0x2032003E, 0xF83F803F, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { RB, RC }, { C_AA8 }},
-
-/* prefetchl2 b 00010bbb000000000BBB0RR000111110.  */
-{ "prefetchl2", 0x1000003E, 0xF8FF89FF, 0, MEMORY, NONE, { RB }, { 0 }},
-
-/* prefetchl2<.aa> b,s9 00010bbbssssssssSBBB0aa010111110.  */
-{ "prefetchl2", 0x100000BE, 0xF80009FF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { RB, SIMM9_8 }, { C_AA21 }},
-
-/* prefetchl2<.aa> b,limm 00100bbbaa1100100BBB111110111110.  */
-{ "prefetchl2", 0x20320FBE, 0xF83F8FFF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { RB, LIMM }, { C_AA8 }},
-
-/* prefetchl2<.aa> limm,c 00100110aa1100000111CCCCCC111110.  */
-{ "prefetchl2", 0x2630703E, 0xFF3FF03F, 0, MEMORY, NONE, { LIMM, RC }, { C_AA8 }},
-
-/* prefetchl2 limm,c 00100110RR1100100111CCCCCC111110.  */
-{ "prefetchl2", 0x2632703E, 0xFF3FF03F, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { LIMM, RC }, { 0 }},
-
-/* prefetchl2 limm 000101100000000001110RR010111110.  */
-{ "prefetchl2", 0x160070BE, 0xFFFFF9FF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { LIMM }, { 0 }},
-
-/* prefetchl2<.aa> limm,s9 00010110ssssssssS1110aa000111110.  */
-{ "prefetchl2", 0x1600703E, 0xFF0079FF, 0, MEMORY, NONE, { LIMM, SIMM9_8 }, { C_AA21 }},
-
-/* prefetchl2 limm,s9 00010110ssssssssS1110RR010111110.  */
-{ "prefetchl2", 0x160070BE, 0xFF0079FF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { LIMM, SIMM9_8 }, { 0 }},
-
-/* prefetchl2<.aa> limm,limm 00100110aa1100000111111110111110.  */
-{ "prefetchl2", 0x26307FBE, 0xFF3FFFFF, 0, MEMORY, NONE, { LIMM, LIMMdup }, { C_AA8 }},
-
-/* prefetchw<.aa> b,c 00100bbbaa1100001BBBCCCCCC111110.  */
-{ "prefetchw", 0x2030803E, 0xF83F803F, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, RC, BRAKETdup }, { C_AA8 }},
-
-/* prefetchw<.aa> b,s9 00010bbbssssssssSBBB1aa000111110.  */
-{ "prefetchw", 0x1000083E, 0xF80009FF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, SIMM9_8, BRAKETdup }, { C_AA21 }},
-
-/* prefetchw<.aa> b,limm 00100bbbaa1100001BBB111110111110.  */
-{ "prefetchw", 0x20308FBE, 0xF83F8FFF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, RB, LIMM, BRAKETdup }, { C_AA8 }},
-
-/* prefetchw limm,c 00100110RR1100001111CCCCCC111110.  */
-{ "prefetchw", 0x2630F03E, 0xFF3FF03F, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, RC, BRAKETdup }, { 0 }},
-
-/* prefetchw limm 000101100000000001111RR000111110.  */
-{ "prefetchw", 0x1600783E, 0xFFFFF9FF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, BRAKETdup }, { 0 }},
-
-/* prefetchw limm,s9 00010110ssssssssS1111RR000111110.  */
-{ "prefetchw", 0x1600783E, 0xFF0079FF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { BRAKET, LIMM, SIMM9_8, BRAKETdup }, { 0 }},
-
 /* push_s b 11000bbb11100001.  */
 { "push_s", 0x0000C0E1, 0x0000F8FF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, PUSH, NONE, { RB_S }, { C_AA_AW }},
 
@@ -13056,6 +13890,66 @@
 /* qmach<.f><.cc> 0,limm,limm 0010111011110100F1111111100QQQQQ.  */
 { "qmach", 0x2EF47F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
+/* qmachf<.f> 0,b,c 00110bbb00110101FBBBCCCCCC111110 */
+{ "qmachf", 0x3035003E, 0xF8FF003F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, RC }, { C_F }},
+
+/* qmachf<.f> a,b,c 00110bbb00110101FBBBCCCCCCAAAAAA */
+{ "qmachf", 0x30350000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, RC }, { C_F }},
+
+/* qmachf<.f><.cc> b,b,c 00110bbb11110101FBBBCCCCCC0QQQQQ */
+{ "qmachf", 0x30F50000, 0xF8FF0020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* qmachf<.f> 0,b,u6 00110bbb01110101FBBBuuuuuu111110 */
+{ "qmachf", 0x3075003E, 0xF8FF003F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* qmachf<.f> a,b,u6 00110bbb01110101FBBBuuuuuuAAAAAA */
+{ "qmachf", 0x30750000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* qmachf<.f><.cc> b,b,u6 00110bbb11110101FBBBuuuuuu1QQQQQ */
+{ "qmachf", 0x30F50020, 0xF8FF0020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* qmachf<.f> b,b,s12 00110bbb10110101FBBBssssssSSSSSS */
+{ "qmachf", 0x30B50000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* qmachf<.f> 0,b,limm 00110bbb00110101FBBB111110111110 */
+{ "qmachf", 0x30350FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, LIMM }, { C_F }},
+
+/* qmachf<.f><.cc> b,b,limm 00110bbb11110101FBBB1111100QQQQQ */
+{ "qmachf", 0x30F50F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* qmachf<.f> a,limm,c 0011011000110101F111CCCCCCAAAAAA */
+{ "qmachf", 0x36357000, 0xFFFF7000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, RC }, { C_F }},
+
+/* qmachf<.f><.cc> 0,limm,c 0011011011110101F111CCCCCC0QQQQQ */
+{ "qmachf", 0x36F57000, 0xFFFF7020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* qmachf<.f> 0,limm,c 0011011000110101F111CCCCCC111110 */
+{ "qmachf", 0x3635703E, 0xFFFF703F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_F }},
+
+/* qmachf<.f> a,b,limm 00110bbb00110101FBBB111110AAAAAA */
+{ "qmachf", 0x30350F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, LIMM }, { C_F }},
+
+/* qmachf<.f><.cc> 0,limm,u6 0011011011110101F111uuuuuu1QQQQQ */
+{ "qmachf", 0x36F57020, 0xFFFF7020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* qmachf<.f> a,limm,u6 0011011001110101F111uuuuuuAAAAAA */
+{ "qmachf", 0x36757000, 0xFFFF7000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* qmachf<.f> 0,limm,u6 0011011001110101F111uuuuuu111110 */
+{ "qmachf", 0x3675703E, 0xFFFF703F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* qmachf<.f> 0,limm,s12 0011011010110101F111ssssssSSSSSS */
+{ "qmachf", 0x36B57000, 0xFFFF7000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* qmachf<.f> a,limm,limm 0011011000110101F111111110AAAAAA */
+{ "qmachf", 0x36357F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* qmachf<.f><.cc> 0,limm,limm 0011011011110101F1111111100QQQQQ */
+{ "qmachf", 0x36F57F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* qmachf<.f> 0,limm,limm 0011011000110101F111111110111110 */
+{ "qmachf", 0x36357FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_F }},
+
 /* qmachu<.f> a,b,c 00101bbb00110101FBBBCCCCCCAAAAAA.  */
 { "qmachu", 0x28350000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { RA_CHK, RB, RC }, { C_F }},
 
@@ -13176,6 +14070,69 @@
 /* qmpyh<.f><.cc> 0,limm,limm 0010111011110000F1111111100QQQQQ.  */
 { "qmpyh", 0x2EF07F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
+/* qmpyh<.f> a,limm,limm 0010111000110000F111111110AAAAAA */
+{ "qmpyh", 0x2E307F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* qmpyhf<.f><.cc> b,b,c 00110bbb11110001FBBBCCCCCC0QQQQQ */
+{ "qmpyhf", 0x30F10000, 0xF8FF0020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* qmpyhf<.f> a,b,c 00110bbb00110001FBBBCCCCCCAAAAAA */
+{ "qmpyhf", 0x30310000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, RC }, { C_F }},
+
+/* qmpyhf<.f> 0,b,c 00110bbb00110001FBBBCCCCCC111110 */
+{ "qmpyhf", 0x3031003E, 0xF8FF003F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, RC }, { C_F }},
+
+/* qmpyhf<.f><.cc> b,b,u6 00110bbb11110001FBBBuuuuuu1QQQQQ */
+{ "qmpyhf", 0x30F10020, 0xF8FF0020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* qmpyhf<.f> a,b,u6 00110bbb01110001FBBBuuuuuuAAAAAA */
+{ "qmpyhf", 0x30710000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* qmpyhf<.f> 0,b,u6 00110bbb01110001FBBBuuuuuu111110 */
+{ "qmpyhf", 0x3071003E, 0xF8FF003F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* qmpyhf<.f> b,b,s12 00110bbb10110001FBBBssssssSSSSSS */
+{ "qmpyhf", 0x30B10000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* qmpyhf<.f> 0,limm,c 0011011000110001F111CCCCCC111110 */
+{ "qmpyhf", 0x3631703E, 0xFFFF703F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_F }},
+
+/* qmpyhf<.f> a,b,limm 00110bbb00110001FBBB111110AAAAAA */
+{ "qmpyhf", 0x30310F80, 0xF8FF0FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, LIMM }, { C_F }},
+
+/* qmpyhf<.f> a,limm,c 0011011000110001F111CCCCCCAAAAAA */
+{ "qmpyhf", 0x36317000, 0xFFFF7000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, RC }, { C_F }},
+
+/* qmpyhf<.f> 0,b,limm 00110bbb00110001FBBB111110111110 */
+{ "qmpyhf", 0x30310FBE, 0xF8FF0FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, LIMM }, { C_F }},
+
+/* qmpyhf<.f><.cc> b,b,limm 00110bbb11110001FBBB1111100QQQQQ */
+{ "qmpyhf", 0x30F10F80, 0xF8FF0FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* qmpyhf<.f><.cc> 0,limm,c 0011011011110001F111CCCCCC0QQQQQ */
+{ "qmpyhf", 0x36F17000, 0xFFFF7020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* qmpyhf<.f> a,limm,u6 0011011001110001F111uuuuuuAAAAAA */
+{ "qmpyhf", 0x36717000, 0xFFFF7000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* qmpyhf<.f> 0,limm,u6 0011011001110001F111uuuuuu111110 */
+{ "qmpyhf", 0x3671703E, 0xFFFF703F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* qmpyhf<.f><.cc> 0,limm,u6 0011011011110001F111uuuuuu1QQQQQ */
+{ "qmpyhf", 0x36F17020, 0xFFFF7020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* qmpyhf<.f> 0,limm,s12 0011011010110001F111ssssssSSSSSS */
+{ "qmpyhf", 0x36B17000, 0xFFFF7000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* qmpyhf<.f><.cc> 0,limm,limm 0011011011110001F1111111100QQQQQ */
+{ "qmpyhf", 0x36F17F80, 0xFFFF7FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* qmpyhf<.f> a,limm,limm 0011011000110001F111111110AAAAAA */
+{ "qmpyhf", 0x36317F80, 0xFFFF7FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* qmpyhf<.f> 0,limm,limm 0011011000110001F111111110111110 */
+{ "qmpyhf", 0x36317FBE, 0xFFFF7FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_F }},
+
 /* qmpyhu<.f> a,b,c 00101bbb00110001FBBBCCCCCCAAAAAA.  */
 { "qmpyhu", 0x28310000, 0xF8FF0000, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { RA_CHK, RB, RC }, { C_F }},
 
@@ -13453,22 +14410,22 @@
 { "rnd16", 0x2E2F7F83, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, ARITH, NONE, { ZA, LIMM }, { C_F }},
 
 /* rndh<.f> b,c 00101bbb00101111FBBBCCCCCC000011.  */
-{ "rndh", 0x282F0003, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { C_F }},
+{ "rndh", 0x282F0003, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { C_F }},
 
 /* rndh<.f> 0,c 0010111000101111F111CCCCCC000011.  */
-{ "rndh", 0x2E2F7003, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { C_F }},
+{ "rndh", 0x2E2F7003, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { C_F }},
 
 /* rndh<.f> b,u6 00101bbb01101111FBBBuuuuuu000011.  */
-{ "rndh", 0x286F0003, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { C_F }},
+{ "rndh", 0x286F0003, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { C_F }},
 
 /* rndh<.f> 0,u6 0010111001101111F111uuuuuu000011.  */
-{ "rndh", 0x2E6F7003, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { C_F }},
+{ "rndh", 0x2E6F7003, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { C_F }},
 
 /* rndh<.f> b,limm 00101bbb00101111FBBB111110000011.  */
-{ "rndh", 0x282F0F83, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { C_F }},
+{ "rndh", 0x282F0F83, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { C_F }},
 
 /* rndh<.f> 0,limm 0010111000101111F111111110000011.  */
-{ "rndh", 0x2E2F7F83, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { C_F }},
+{ "rndh", 0x2E2F7F83, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { C_F }},
 
 /* rol<.f> b,c 00100bbb00101111FBBBCCCCCC001101.  */
 { "rol", 0x202F000D, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, LOGICAL, NONE, { RB, RC }, { C_F }},
@@ -13728,23 +14685,40 @@
 /* sat16<.f> 0,limm 0010111000101111F111111110000010.  */
 { "sat16", 0x2E2F7F82, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, ARITH, NONE, { ZA, LIMM }, { C_F }},
 
+/* satf<.f> b,c 00101bbb00101111FBBBCCCCCC011010 */
+{ "satf", 0x282F001A, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RC }, { C_F }},
+/* satf<.f> 0,c 0010111000101111F111CCCCCC011010 */
+{ "satf", 0x2E2F701A, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { C_F }},
+
+/* satf<.f> b,u6 00101bbb01101111FBBBuuuuuu011010 */
+{ "satf", 0x286F001A, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, UIMM6_20 }, { C_F }},
+
+/* satf<.f> 0,u6 0010111001101111F111uuuuuu011010 */
+{ "satf", 0x2E6F701A, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { C_F }},
+
+/* satf<.f> 0,limm 0010111000101111F111111110011010 */
+{ "satf", 0x2E2F7F9A, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { C_F }},
+
+/* satf<.f> b,limm 00101bbb00101111FBBB111110011010 */
+{ "satf", 0x282F0F9A, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, LIMM }, { C_F }},
+
 /* sath<.f> b,c 00101bbb00101111FBBBCCCCCC000010.  */
-{ "sath", 0x282F0002, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { C_F }},
+{ "sath", 0x282F0002, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { C_F }},
 
 /* sath<.f> 0,c 0010111000101111F111CCCCCC000010.  */
-{ "sath", 0x2E2F7002, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { C_F }},
+{ "sath", 0x2E2F7002, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { C_F }},
 
 /* sath<.f> b,u6 00101bbb01101111FBBBuuuuuu000010.  */
-{ "sath", 0x286F0002, 0xF8FF003F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { C_F }},
+{ "sath", 0x286F0002, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { C_F }},
 
 /* sath<.f> 0,u6 0010111001101111F111uuuuuu000010.  */
-{ "sath", 0x2E6F7002, 0xFFFF703F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { C_F }},
+{ "sath", 0x2E6F7002, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { C_F }},
 
 /* sath<.f> b,limm 00101bbb00101111FBBB111110000010.  */
-{ "sath", 0x282F0F82, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { C_F }},
+{ "sath", 0x282F0F82, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { C_F }},
 
 /* sath<.f> 0,limm 0010111000101111F111111110000010.  */
-{ "sath", 0x2E2F7F82, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { C_F }},
+{ "sath", 0x2E2F7F82, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { C_F }},
 
 /* sbc<.f> a,b,c 00100bbb00000011FBBBCCCCCCAAAAAA.  */
 { "sbc", 0x20030000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, RC }, { C_F }},
@@ -13806,6 +14780,66 @@
 /* sbc<.f><.cc> 0,limm,limm 0010011011000011F1111111100QQQQQ.  */
 { "sbc", 0x26C37F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
+/* sbcs<.f><.cc> b,b,c 00101bbb11100111FBBBCCCCCC0QQQQQ */
+{ "sbcs", 0x28E70000, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+
+/* sbcs<.f> 0,b,c 00101bbb00100111FBBBCCCCCC111110 */
+{ "sbcs", 0x2827003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, RC }, { C_F }},
+
+/* sbcs<.f> a,b,c 00101bbb00100111FBBBCCCCCCAAAAAA */
+{ "sbcs", 0x28270000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, RC }, { C_F }},
+
+/* sbcs<.f><.cc> b,b,u6 00101bbb11100111FBBBuuuuuu1QQQQQ */
+{ "sbcs", 0x28E70020, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+
+/* sbcs<.f> a,b,u6 00101bbb01100111FBBBuuuuuuAAAAAA */
+{ "sbcs", 0x28670000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+
+/* sbcs<.f> 0,b,u6 00101bbb01100111FBBBuuuuuu111110 */
+{ "sbcs", 0x2867003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+
+/* sbcs<.f> b,b,s12 00101bbb10100111FBBBssssssSSSSSS */
+{ "sbcs", 0x28A70000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+
+/* sbcs<.f><.cc> 0,limm,c 0010111011100111F111CCCCCC0QQQQQ */
+{ "sbcs", 0x2EE77000, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+
+/* sbcs<.f> a,b,limm 00101bbb00100111FBBB111110AAAAAA */
+{ "sbcs", 0x28270F80, 0xF8FF0FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, LIMM }, { C_F }},
+
+/* sbcs<.f> 0,b,limm 00101bbb00100111FBBB111110111110 */
+{ "sbcs", 0x28270FBE, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, LIMM }, { C_F }},
+
+/* sbcs<.f><.cc> b,b,limm 00101bbb11100111FBBB1111100QQQQQ */
+{ "sbcs", 0x28E70F80, 0xF8FF0FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+
+/* sbcs<.f> a,limm,c 0010111000100111F111CCCCCCAAAAAA */
+{ "sbcs", 0x2E277000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, RC }, { C_F }},
+
+/* sbcs<.f> 0,limm,c 0010111001100111F111CCCCCC111110 */
+{ "sbcs", 0x2E67703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, RC }, { C_F }},
+
+/* sbcs<.f><.cc> 0,limm,u6 0010111011100111F111uuuuuu1QQQQQ */
+{ "sbcs", 0x2EE77020, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+
+/* sbcs<.f> 0,limm,u6 0010111001100111F111uuuuuu111110 */
+{ "sbcs", 0x2E67703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+
+/* sbcs<.f> a,limm,u6 0010111001100111F111uuuuuuAAAAAA */
+{ "sbcs", 0x2E677000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+
+/* sbcs<.f> 0,limm,s12 0010111010100111F111ssssssSSSSSS */
+{ "sbcs", 0x2EA77000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+
+/* sbcs<.f><.cc> 0,limm,limm 0010111011100111F1111111100QQQQQ */
+{ "sbcs", 0x2EE77F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+
+/* sbcs<.f> a,limm,limm 0010111000100111F111111110AAAAAA */
+{ "sbcs", 0x2E277F80, 0xFFFF7FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+
+/* sbcs<.f> 0,limm,limm 0010111000100111F111111110111110 */
+{ "sbcs", 0x2E277FBE, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+
 /* scond<.di> b,c 00100bbb00101111DBBBCCCCCC010001.  */
 { "scond", 0x202F0011, 0xF8FF003F, ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MEMORY, NONE, { RB, BRAKET, RC, BRAKETdup }, { C_DI16 }},
 
@@ -13834,64 +14868,64 @@
 { "scondd", 0x202F0F93, 0xF8FF0FFF, ARC_OPCODE_ARCv2HS, MEMORY, NONE, { RB, BRAKET, LIMM, BRAKETdup }, { C_DI16 }},
 
 /* setacc a,b,c 00101bbb000011011BBBCCCCCCAAAAAA.  */
-{ "setacc", 0x280D8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "setacc", 0x280D8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* setacc 0,b,c 00101bbb000011011BBBCCCCCC111110.  */
-{ "setacc", 0x280D803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "setacc", 0x280D803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* setacc<.cc> b,b,c 00101bbb110011011BBBCCCCCC0QQQQQ.  */
-{ "setacc", 0x28CD8000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "setacc", 0x28CD8000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* setacc a,b,u6 00101bbb010011011BBBuuuuuuAAAAAA.  */
-{ "setacc", 0x284D8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "setacc", 0x284D8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* setacc 0,b,u6 00101bbb010011011BBBuuuuuu111110.  */
-{ "setacc", 0x284D803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "setacc", 0x284D803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* setacc<.cc> b,b,u6 00101bbb110011011BBBuuuuuu1QQQQQ.  */
-{ "setacc", 0x28CD8020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "setacc", 0x28CD8020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* setacc b,b,s12 00101bbb100011011BBBssssssSSSSSS.  */
-{ "setacc", 0x288D8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "setacc", 0x288D8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* setacc a,limm,c 00101110000011011111CCCCCCAAAAAA.  */
-{ "setacc", 0x2E0DF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "setacc", 0x2E0DF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* setacc a,b,limm 00101bbb000011011BBB111110AAAAAA.  */
-{ "setacc", 0x280D8F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "setacc", 0x280D8F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* setacc 0,limm,c 00101110000011011111CCCCCC111110.  */
-{ "setacc", 0x2E0DF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "setacc", 0x2E0DF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* setacc 0,b,limm 00101bbb000011011BBB111110111110.  */
-{ "setacc", 0x280D8FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "setacc", 0x280D8FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* setacc<.cc> b,b,limm 00101bbb110011011BBB1111100QQQQQ.  */
-{ "setacc", 0x28CD8F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "setacc", 0x28CD8F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* setacc<.cc> 0,limm,c 00101110110011011111CCCCCC0QQQQQ.  */
-{ "setacc", 0x2ECDF000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "setacc", 0x2ECDF000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* setacc a,limm,u6 00101110010011011111uuuuuuAAAAAA.  */
-{ "setacc", 0x2E4DF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "setacc", 0x2E4DF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* setacc 0,limm,u6 00101110010011011111uuuuuu111110.  */
-{ "setacc", 0x2E4DF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "setacc", 0x2E4DF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* setacc<.cc> 0,limm,u6 00101110110011011111uuuuuu1QQQQQ.  */
-{ "setacc", 0x2ECDF020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "setacc", 0x2ECDF020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* setacc 0,limm,s12 00101110100011011111ssssssSSSSSS.  */
-{ "setacc", 0x2E8DF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "setacc", 0x2E8DF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* setacc a,limm,limm 00101110000011011111111110AAAAAA.  */
-{ "setacc", 0x2E0DFF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "setacc", 0x2E0DFF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* setacc 0,limm,limm 00101110000011011111111110111110.  */
-{ "setacc", 0x2E0DFFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "setacc", 0x2E0DFFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* setacc<.cc> 0,limm,limm 001011101100110111111111100QQQQQ.  */
-{ "setacc", 0x2ECDFF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "setacc", 0x2ECDFF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* seteq<.f> a,b,c 00100bbb00111000FBBBCCCCCCAAAAAA.  */
 { "seteq", 0x20380000, 0xF8FF0000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, LOGICAL, CD1, { RA, RB, RC }, { C_F }},
@@ -14508,6 +15542,15 @@
 /* sexw_s b,c 01111bbbccc01110.  */
 { "sexw_s", 0x0000780E, 0x0000F81F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, ARITH, NONE, { RB_S, RC_S }, { 0 }},
 
+/* sflag c 00110000001011110000CCCCCC111111 */
+{ "sflag", 0x302F003F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, CONTROL, NONE, { RC }, { 0 }},
+
+/* sflag u6 00110000011011110000uuuuuu111111 */
+{ "sflag", 0x306F003F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, CONTROL, NONE, { UIMM6_20 }, { 0 }},
+
+/* sflag limm 00110000001011110000111110111111 */
+{ "sflag", 0x302F0FBF, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, CONTROL, NONE, { LIMM }, { 0 }},
+
 /* sfxtr<.f> a,b,c 00110bbb00101001FBBBCCCCCCAAAAAA.  */
 { "sfxtr", 0x30290000, 0xF8FF0000, ARC_OPCODE_ARC700, ARITH, NONE, { RA, RB, RC }, { C_F }},
 
@@ -14532,6 +15575,9 @@
 /* sfxtr<.f><.cc> b,b,limm 00110bbb11101001FBBB1111100QQQQQ.  */
 { "sfxtr", 0x30E90F80, 0xF8FF0FE0, ARC_OPCODE_ARC700, ARITH, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
 
+/* sjli u12 00101RRR101000001RRRuuuuuuUUUUUU.  */
+{ "sjli", 0x28A08000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, SJLI, CD1, { UIMM12_20 }, { 0 }},
+
 /* sleep c 00100001001011110000CCCCCC111111.  */
 { "sleep", 0x212F003F, 0xFFFFF03F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, KERNEL, NONE, { RC }, { 0 }},
 
@@ -14544,12 +15590,45 @@
 /* sleep 00100001011011110000uuuuuu111111.  */
 { "sleep", 0x216F003F, 0xFFFFFFFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, KERNEL, NONE, { 0 }, { 0 }},
 
+/* sqrt<.f> b,c 00101bbb00101111FBBBCCCCCC110000 */
+{ "sqrt", 0x282F0030, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RC }, { C_F }},
+
+/* sqrt<.f> b,u6 00101bbb01101111FBBBuuuuuu110000 */
+{ "sqrt", 0x286F0030, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, UIMM6_20 }, { C_F }},
+
+/* sqrt<.f> 0,u6 0010111001101111F111uuuuuu110000 */
+{ "sqrt", 0x2E6F7030, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { C_F }},
+
+/* sqrt<.f> 0,limm 0010111000101111F111111110110000 */
+{ "sqrt", 0x2E2F7FB0, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { C_F }},
+
+/* sqrt<.f> b,limm 00101bbb00101111FBBB111110110000 */
+{ "sqrt", 0x282F0FB0, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, LIMM }, { C_F }},
+
 /* sqrtacc c 00101010001011110000CCCCCC111111.  */
 { "sqrtacc", 0x2A2F003F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RC }, { 0 }},
 
 /* sqrtacc u6 00101010011011110000uuuuuu111111.  */
 { "sqrtacc", 0x2A6F003F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { UIMM6_20 }, { 0 }},
 
+/* sqrtf<.f> 0,c 0010111000101111F111CCCCCC110001 */
+{ "sqrtf", 0x2E2F7031, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { C_F }},
+
+/* sqrtf<.f> b,c 00101bbb00101111FBBBCCCCCC110001 */
+{ "sqrtf", 0x282F0031, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RC }, { C_F }},
+
+/* sqrtf<.f> b,u6 00101bbb01101111FBBBuuuuuu110001 */
+{ "sqrtf", 0x286F0031, 0xF8FF003F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, UIMM6_20 }, { C_F }},
+
+/* sqrtf<.f> 0,u6 0010111001101111F111uuuuuu110001 */
+{ "sqrtf", 0x2E6F7031, 0xFFFF703F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { C_F }},
+
+/* sqrtf<.f> b,limm 00101bbb00101111FBBB111110110001 */
+{ "sqrtf", 0x282F0FB1, 0xF8FF0FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, LIMM }, { C_F }},
+
+/* sqrtf<.f> 0,limm 0010111000101111F111111110110001 */
+{ "sqrtf", 0x2E2F7FB1, 0xFFFF7FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { C_F }},
+
 /* sr b,c 00100bbb001010110BBBCCCCCCRRRRRR.  */
 { "sr", 0x202B0000, 0xF8FF8000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, AUXREG, NONE, { RB, BRAKET, RC, BRAKETdup }, { 0 }},
 
@@ -14647,31 +15726,31 @@
 { "stb_s", 0x0000C060, 0x0000F8E0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, STORE, NONE, { RB_S, BRAKET, SP_S, UIMM7_A32_11_S, BRAKETdup }, { C_ZZ_B }},
 
 /* std<.di><.aa> c,b 00011bbb000000000BBBCCCCCCDaa110.  */
-{ "std", 0x18000006, 0xF8FF8007, ARC_OPCODE_ARCv2HS, STORE, NONE, { RCD, BRAKET, RB, BRAKETdup }, { C_DI26, C_AA27, C_ZZ_D }},
+{ "std", 0x18000006, 0xF8FF8007, ARC_OPCODE_ARCv2HS, STORE, LL64, { RCD, BRAKET, RB, BRAKETdup }, { C_DI26, C_AA27, C_ZZ_D }},
 
 /* std<.di><.aa> w6,b 00011bbb000000000BBBwwwwwwDaa111.  */
-{ "std", 0x18000007, 0xF8FF8007, ARC_OPCODE_ARCv2HS, STORE, NONE, { W6, BRAKET, RB, BRAKETdup }, { C_DI26, C_AA27, C_ZZ_D }},
+{ "std", 0x18000007, 0xF8FF8007, ARC_OPCODE_ARCv2HS, STORE, LL64, { W6, BRAKET, RB, BRAKETdup }, { C_DI26, C_AA27, C_ZZ_D }},
 
 /* std<.di><.aa> c,b,s9 00011bbbssssssssSBBBCCCCCCDaa110.  */
-{ "std", 0x18000006, 0xF8000007, ARC_OPCODE_ARCv2HS, STORE, NONE, { RCD, BRAKET, RB, SIMM9_8, BRAKETdup }, { C_DI26, C_AA27, C_ZZ_D }},
+{ "std", 0x18000006, 0xF8000007, ARC_OPCODE_ARCv2HS, STORE, LL64, { RCD, BRAKET, RB, SIMM9_8, BRAKETdup }, { C_DI26, C_AA27, C_ZZ_D }},
 
 /* std<.di><.aa> w6,b,s9 00011bbbssssssssSBBBwwwwwwDaa111.  */
-{ "std", 0x18000007, 0xF8000007, ARC_OPCODE_ARCv2HS, STORE, NONE, { W6, BRAKET, RB, SIMM9_8, BRAKETdup }, { C_DI26, C_AA27, C_ZZ_D }},
+{ "std", 0x18000007, 0xF8000007, ARC_OPCODE_ARCv2HS, STORE, LL64, { W6, BRAKET, RB, SIMM9_8, BRAKETdup }, { C_DI26, C_AA27, C_ZZ_D }},
 
 /* std<.di> c,limm 00011110000000000111CCCCCCDRR110.  */
-{ "std", 0x1E007006, 0xFFFFF007, ARC_OPCODE_ARCv2HS, STORE, NONE, { RCD, BRAKET, LIMM, BRAKETdup }, { C_DI26, C_ZZ_D }},
+{ "std", 0x1E007006, 0xFFFFF007, ARC_OPCODE_ARCv2HS, STORE, LL64, { RCD, BRAKET, LIMM, BRAKETdup }, { C_DI26, C_ZZ_D }},
 
 /* std<.di> w6,limm 00011110000000000111wwwwwwDRR111.  */
-{ "std", 0x1E007007, 0xFFFFF007, ARC_OPCODE_ARCv2HS, STORE, NONE, { W6, BRAKET, LIMM, BRAKETdup }, { C_DI26, C_ZZ_D }},
+{ "std", 0x1E007007, 0xFFFFF007, ARC_OPCODE_ARCv2HS, STORE, LL64, { W6, BRAKET, LIMM, BRAKETdup }, { C_DI26, C_ZZ_D }},
 
 /* std<.di><.aa> limm,b,s9 00011bbbssssssssSBBB111110Daa110.  */
-{ "std", 0x18000F86, 0xF8000FC7, ARC_OPCODE_ARCv2HS, STORE, NONE, { LIMM, BRAKET, RB, SIMM9_8, BRAKETdup }, { C_DI26, C_AA27, C_ZZ_D }},
+{ "std", 0x18000F86, 0xF8000FC7, ARC_OPCODE_ARCv2HS, STORE, LL64, { LIMM, BRAKET, RB, SIMM9_8, BRAKETdup }, { C_DI26, C_AA27, C_ZZ_D }},
 
 /* std<.di><.aa> w6,limm,s9 00011110ssssssssS111wwwwwwDaa111.  */
-{ "std", 0x1E007007, 0xFF007007, ARC_OPCODE_ARCv2HS, STORE, NONE, { W6, BRAKET, LIMM, SIMM9_8, BRAKETdup }, { C_DI26, C_AA27, C_ZZ_D }},
+{ "std", 0x1E007007, 0xFF007007, ARC_OPCODE_ARCv2HS, STORE, LL64, { W6, BRAKET, LIMM, SIMM9_8, BRAKETdup }, { C_DI26, C_AA27, C_ZZ_D }},
 
 /* std<.di><.aa> limm,limm,s9 00011110ssssssssS111111110Daa110.  */
-{ "std", 0x1E007F86, 0xFF007FC7, ARC_OPCODE_ARCv2HS, STORE, NONE, { LIMM, BRAKET, LIMMdup, SIMM9_8, BRAKETdup }, { C_DI26, C_AA27, C_ZZ_D }},
+{ "std", 0x1E007F86, 0xFF007FC7, ARC_OPCODE_ARCv2HS, STORE, LL64, { LIMM, BRAKET, LIMMdup, SIMM9_8, BRAKETdup }, { C_DI26, C_AA27, C_ZZ_D }},
 
 /* sth_s c,b,u6 10110bbbcccuuuuu.  */
 { "sth_s", 0x0000B000, 0x0000F800, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, STORE, NONE, { RC_S, BRAKET, RB_S, UIMM6_A16_11_S, BRAKETdup }, { C_ZZ_H }},
@@ -14941,67 +16020,67 @@
 { "sub3", 0x26D97F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, SUB, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* subs<.f> a,b,c 00101bbb00000111FBBBCCCCCCAAAAAA.  */
-{ "subs", 0x28070000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, RB, RC }, { C_F }},
+{ "subs", 0x28070000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, RC }, { C_F }},
 
 /* subs<.f> 0,b,c 00101bbb00000111FBBBCCCCCC111110.  */
-{ "subs", 0x2807003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, RB, RC }, { C_F }},
+{ "subs", 0x2807003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, RC }, { C_F }},
 
 /* subs<.f><.cc> b,b,c 00101bbb11000111FBBBCCCCCC0QQQQQ.  */
-{ "subs", 0x28C70000, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
+{ "subs", 0x28C70000, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, RC }, { C_F, C_CC }},
 
 /* subs<.f> a,b,u6 00101bbb01000111FBBBuuuuuuAAAAAA.  */
-{ "subs", 0x28470000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, RB, UIMM6_20 }, { C_F }},
+{ "subs", 0x28470000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, UIMM6_20 }, { C_F }},
 
 /* subs<.f> 0,b,u6 00101bbb01000111FBBBuuuuuu111110.  */
-{ "subs", 0x2847003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
+{ "subs", 0x2847003E, 0xF8FF003F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, UIMM6_20 }, { C_F }},
 
 /* subs<.f><.cc> b,b,u6 00101bbb11000111FBBBuuuuuu1QQQQQ.  */
-{ "subs", 0x28C70020, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
+{ "subs", 0x28C70020, 0xF8FF0020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, UIMM6_20 }, { C_F, C_CC }},
 
 /* subs<.f> b,b,s12 00101bbb10000111FBBBssssssSSSSSS.  */
-{ "subs", 0x28870000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
+{ "subs", 0x28870000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, SIMM12_20 }, { C_F }},
 
 /* subs<.f> a,limm,c 0010111000000111F111CCCCCCAAAAAA.  */
-{ "subs", 0x2E077000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, LIMM, RC }, { C_F }},
+{ "subs", 0x2E077000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, RC }, { C_F }},
 
 /* subs<.f> a,b,limm 00101bbb00000111FBBB111110AAAAAA.  */
-{ "subs", 0x28070F80, 0xF8FF0FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, RB, LIMM }, { C_F }},
+{ "subs", 0x28070F80, 0xF8FF0FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, RB, LIMM }, { C_F }},
 
 /* subs<.f> 0,limm,c 0010111000000111F111CCCCCC111110.  */
-{ "subs", 0x2E07703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, RC }, { C_F }},
+{ "subs", 0x2E07703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, RC }, { C_F }},
 
 /* subs<.f> 0,b,limm 00101bbb00000111FBBB111110111110.  */
-{ "subs", 0x28070FBE, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, RB, LIMM }, { C_F }},
+{ "subs", 0x28070FBE, 0xF8FF0FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, RB, LIMM }, { C_F }},
 
 /* subs<.f> a,limm,c 0010111000000111F111CCCCCCAAAAAA.  */
-{ "subs", 0x2E077000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, LIMM, RC }, { C_F }},
+{ "subs", 0x2E077000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, RC }, { C_F }},
 
 /* subs<.f><.cc> b,b,limm 00101bbb11000111FBBB1111100QQQQQ.  */
-{ "subs", 0x28C70F80, 0xF8FF0FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
+{ "subs", 0x28C70F80, 0xF8FF0FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
 
 /* subs<.f><.cc> 0,limm,c 0010111011000111F111CCCCCC0QQQQQ.  */
-{ "subs", 0x2EC77000, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
+{ "subs", 0x2EC77000, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, RC }, { C_F, C_CC }},
 
 /* subs<.f> a,limm,u6 0010111001000111F111uuuuuuAAAAAA.  */
-{ "subs", 0x2E477000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
+{ "subs", 0x2E477000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, UIMM6_20 }, { C_F }},
 
 /* subs<.f> 0,limm,u6 0010111001000111F111uuuuuu111110.  */
-{ "subs", 0x2E47703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
+{ "subs", 0x2E47703E, 0xFFFF703F, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F }},
 
 /* subs<.f><.cc> 0,limm,u6 0010111011000111F111uuuuuu1QQQQQ.  */
-{ "subs", 0x2EC77020, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
+{ "subs", 0x2EC77020, 0xFFFF7020, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, UIMM6_20 }, { C_F, C_CC }},
 
 /* subs<.f> 0,limm,s12 0010111010000111F111ssssssSSSSSS.  */
-{ "subs", 0x2E877000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
+{ "subs", 0x2E877000, 0xFFFF7000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, SIMM12_20 }, { C_F }},
 
 /* subs<.f> a,limm,limm 0010111000000111F111111110AAAAAA.  */
-{ "subs", 0x2E077F80, 0xFFFF7FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { RA, LIMM, LIMMdup }, { C_F }},
+{ "subs", 0x2E077F80, 0xFFFF7FC0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { RA, LIMM, LIMMdup }, { C_F }},
 
 /* subs<.f> 0,limm,limm 0010111000000111F111111110111110.  */
-{ "subs", 0x2E077FBE, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
+{ "subs", 0x2E077FBE, 0xFFFF7FFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F }},
 
 /* subs<.f><.cc> 0,limm,limm 0010111011000111F1111111100QQQQQ.  */
-{ "subs", 0x2EC77F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
+{ "subs", 0x2EC77F80, 0xFFFF7FE0, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, ARITH, NONE, { ZA, LIMM, LIMMdup }, { C_F, C_CC }},
 
 /* subsdw<.f> a,b,c 00101bbb00101001FBBBCCCCCCAAAAAA.  */
 { "subsdw", 0x28290000, 0xF8FF0000, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700, ARITH, NONE, { RA, RB, RC }, { C_F }},
@@ -15124,7 +16203,7 @@
 { "swi_s", 0x00007AE0, 0x0000FFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, KERNEL, NONE, { 0 }, { 0 }},
 
 /* swi_s u6 01111uuuuuu11111.  */
-{ "swi_s", 0x0000781F, 0x0000F81F, ARC_OPCODE_ARCv2HS, KERNEL, NONE, { UIMM6_5_S }, { 0 }},
+{ "swi_s", 0x0000781F, 0x0000F81F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, KERNEL, NONE, { UIMM6_5_S }, { 0 }},
 
 /* sync  00100011011011110000000000111111.  */
 { "sync", 0x236F003F, 0xFFFFFFFF, ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, CONTROL, NONE, { 0 }, { 0 }},
@@ -15223,40 +16302,40 @@
 { "upkqb", 0x30E10F80, 0xF8FF0FE0, ARC_OPCODE_ARC700, ARITH, NONE, { RB, RBdup, LIMM }, { C_F, C_CC }},
 
 /* vabs2h b,c 00101bbb001011110BBBCCCCCC101000.  */
-{ "vabs2h", 0x282F0028, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { 0 }},
+{ "vabs2h", 0x282F0028, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { 0 }},
 
 /* vabs2h 0,c 00101110001011110111CCCCCC101000.  */
-{ "vabs2h", 0x2E2F7028, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { 0 }},
+{ "vabs2h", 0x2E2F7028, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
 
 /* vabs2h b,u6 00101bbb011011110BBBuuuuuu101000.  */
-{ "vabs2h", 0x286F0028, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
+{ "vabs2h", 0x286F0028, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
 
 /* vabs2h 0,u6 00101110011011110111uuuuuu101000.  */
-{ "vabs2h", 0x2E6F7028, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+{ "vabs2h", 0x2E6F7028, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
 
 /* vabs2h b,limm 00101bbb001011110BBB111110101000.  */
-{ "vabs2h", 0x282F0FA8, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
+{ "vabs2h", 0x282F0FA8, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
 
 /* vabs2h 0,limm 00101110001011110111111110101000.  */
-{ "vabs2h", 0x2E2F7FA8, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { 0 }},
+{ "vabs2h", 0x2E2F7FA8, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
 
 /* vabss2h b,c 00101bbb001011110BBBCCCCCC101001.  */
-{ "vabss2h", 0x282F0029, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { 0 }},
+{ "vabss2h", 0x282F0029, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { 0 }},
 
 /* vabss2h 0,c 00101110001011110111CCCCCC101001.  */
-{ "vabss2h", 0x2E2F7029, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { 0 }},
+{ "vabss2h", 0x2E2F7029, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
 
 /* vabss2h b,u6 00101bbb011011110BBBuuuuuu101001.  */
-{ "vabss2h", 0x286F0029, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
+{ "vabss2h", 0x286F0029, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
 
 /* vabss2h 0,u6 00101110011011110111uuuuuu101001.  */
-{ "vabss2h", 0x2E6F7029, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+{ "vabss2h", 0x2E6F7029, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
 
 /* vabss2h b,limm 00101bbb001011110BBB111110101001.  */
-{ "vabss2h", 0x282F0FA9, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
+{ "vabss2h", 0x282F0FA9, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
 
 /* vabss2h 0,limm 00101110001011110111111110101001.  */
-{ "vabss2h", 0x2E2F7FA9, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { 0 }},
+{ "vabss2h", 0x2E2F7FA9, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
 
 /* vadd2 a,b,c 00101bbb001111000BBBCCCCCCAAAAAA.  */
 { "vadd2", 0x283C0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { RA_CHK, RB, RC }, { 0 }},
@@ -15379,64 +16458,64 @@
 { "vadd2h", 0x2ED47F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY7E, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vadd4b a,b,c 00101bbb001001000BBBCCCCCCAAAAAA.  */
-{ "vadd4b", 0x28240000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vadd4b", 0x28240000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vadd4b 0,b,c 00101bbb001001000BBBCCCCCC111110.  */
-{ "vadd4b", 0x2824003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vadd4b", 0x2824003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vadd4b<.cc> b,b,c 00101bbb111001000BBBCCCCCC0QQQQQ.  */
-{ "vadd4b", 0x28E40000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vadd4b", 0x28E40000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vadd4b a,b,u6 00101bbb011001000BBBuuuuuuAAAAAA.  */
-{ "vadd4b", 0x28640000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vadd4b", 0x28640000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vadd4b 0,b,u6 00101bbb011001000BBBuuuuuu111110.  */
-{ "vadd4b", 0x2864003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vadd4b", 0x2864003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vadd4b<.cc> b,b,u6 00101bbb111001000BBBuuuuuu1QQQQQ.  */
-{ "vadd4b", 0x28E40020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vadd4b", 0x28E40020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vadd4b b,b,s12 00101bbb101001000BBBssssssSSSSSS.  */
-{ "vadd4b", 0x28A40000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vadd4b", 0x28A40000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vadd4b a,limm,c 00101110001001000111CCCCCCAAAAAA.  */
-{ "vadd4b", 0x2E247000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vadd4b", 0x2E247000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vadd4b a,b,limm 00101bbb001001000BBB111110AAAAAA.  */
-{ "vadd4b", 0x28240F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vadd4b", 0x28240F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vadd4b 0,limm,c 00101110011001000111CCCCCC111110.  */
-{ "vadd4b", 0x2E64703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vadd4b", 0x2E64703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vadd4b 0,b,limm 00101bbb001001000BBB111110111110.  */
-{ "vadd4b", 0x28240FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vadd4b", 0x28240FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vadd4b<.cc> b,b,limm 00101bbb111001000BBB1111100QQQQQ.  */
-{ "vadd4b", 0x28E40F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vadd4b", 0x28E40F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vadd4b<.cc> 0,limm,c 00101110111001000111CCCCCC0QQQQQ.  */
-{ "vadd4b", 0x2EE47000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vadd4b", 0x2EE47000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vadd4b a,limm,u6 00101110011001000111uuuuuuAAAAAA.  */
-{ "vadd4b", 0x2E647000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vadd4b", 0x2E647000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vadd4b 0,limm,u6 00101110011001000111uuuuuu111110.  */
-{ "vadd4b", 0x2E64703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vadd4b", 0x2E64703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vadd4b<.cc> 0,limm,u6 00101110111001000111uuuuuu1QQQQQ.  */
-{ "vadd4b", 0x2EE47020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vadd4b", 0x2EE47020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vadd4b 0,limm,s12 00101110101001000111ssssssSSSSSS.  */
-{ "vadd4b", 0x2EA47000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vadd4b", 0x2EA47000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vadd4b a,limm,limm 00101110001001000111111110AAAAAA.  */
-{ "vadd4b", 0x2E247F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vadd4b", 0x2E247F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vadd4b 0,limm,limm 00101110001001000111111110111110.  */
-{ "vadd4b", 0x2E247FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vadd4b", 0x2E247FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vadd4b<.cc> 0,limm,limm 001011101110010001111111100QQQQQ.  */
-{ "vadd4b", 0x2EE47F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vadd4b", 0x2EE47F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vadd4h a,b,c 00101bbb001110000BBBCCCCCCAAAAAA.  */
 { "vadd4h", 0x28380000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { RA_CHK, RB, RC }, { 0 }},
@@ -15498,65 +16577,185 @@
 /* vadd4h<.cc> 0,limm,limm 001011101111100001111111100QQQQQ.  */
 { "vadd4h", 0x2EF87F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { ZA, LIMM, LIMMdup }, { C_CC }},
 
+/* vadds2<.cc> b,b,c 00101bbb111111000BBBCCCCCC0QQQQQ */
+{ "vadds2", 0x28FC0000, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, RC }, { C_CC }},
+
+/* vadds2 a,b,c 00101bbb001111000BBBCCCCCCAAAAAA */
+{ "vadds2", 0x283C0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, RC }, { 0 }},
+
+/* vadds2 0,b,c 00101bbb001111000BBBCCCCCC111110 */
+{ "vadds2", 0x283C003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, RC }, { 0 }},
+
+/* vadds2<.cc> b,b,u6 00101bbb111111000BBBuuuuuu1QQQQQ */
+{ "vadds2", 0x28FC0020, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, UIMM6_20 }, { C_CC }},
+
+/* vadds2 a,b,u6 00101bbb011111000BBBuuuuuuAAAAAA */
+{ "vadds2", 0x287C0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, UIMM6_20 }, { 0 }},
+
+/* vadds2 0,b,u6 00101bbb011111000BBBuuuuuu111110 */
+{ "vadds2", 0x287C003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, UIMM6_20 }, { 0 }},
+
+/* vadds2 b,b,s12 00101bbb101111000BBBssssssSSSSSS */
+{ "vadds2", 0x28BC0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, SIMM12_20 }, { 0 }},
+
+/* vadds2 a,b,limm 00101bbb001111000BBB111110AAAAAA */
+{ "vadds2", 0x283C0F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, LIMM }, { 0 }},
+
+/* vadds2<.cc> 0,limm,c 00101110111111000111CCCCCC0QQQQQ */
+{ "vadds2", 0x2EFC7000, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_CC }},
+
+/* vadds2 0,b,limm 00101bbb001111000BBB111110111110 */
+{ "vadds2", 0x283C0FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, LIMM }, { 0 }},
+
+/* vadds2<.cc> b,b,limm 00101bbb111111000BBB1111100QQQQQ */
+{ "vadds2", 0x28FC0F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, LIMM }, { C_CC }},
+
+/* vadds2 a,limm,c 00101110001111000111CCCCCCAAAAAA */
+{ "vadds2", 0x2E3C7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, RC }, { 0 }},
+
+/* vadds2 0,limm,c 00101110001111000111CCCCCC111110 */
+{ "vadds2", 0x2E3C703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { 0 }},
+
+/* vadds2<.cc> 0,limm,u6 00101110111111000111uuuuuu1QQQQQ */
+{ "vadds2", 0x2EFC7020, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+
+/* vadds2 0,limm,u6 00101110011111000111uuuuuu111110 */
+{ "vadds2", 0x2E7C703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vadds2 a,limm,u6 00101110011111000111uuuuuuAAAAAA */
+{ "vadds2", 0x2E7C7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vadds2 0,limm,s12 00101110101111000111ssssssSSSSSS */
+{ "vadds2", 0x2EBC7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, SIMM12_20 }, { 0 }},
+
+/* vadds2 0,limm,limm 00101110001111000111111110111110 */
+{ "vadds2", 0x2E3C7FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { 0 }},
+
+/* vadds2 a,limm,limm 00101110001111000111111110AAAAAA */
+{ "vadds2", 0x2E3C7F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, LIMMdup }, { 0 }},
+
+/* vadds2<.cc> 0,limm,limm 001011101111110001111111100QQQQQ */
+{ "vadds2", 0x2EFC7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_CC }},
+
 /* vadds2h a,b,c 00101bbb000101001BBBCCCCCCAAAAAA.  */
-{ "vadds2h", 0x28148000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vadds2h", 0x28148000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vadds2h 0,b,c 00101bbb000101001BBBCCCCCC111110.  */
-{ "vadds2h", 0x2814803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vadds2h", 0x2814803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vadds2h<.cc> b,b,c 00101bbb110101001BBBCCCCCC0QQQQQ.  */
-{ "vadds2h", 0x28D48000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vadds2h", 0x28D48000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vadds2h a,b,u6 00101bbb010101001BBBuuuuuuAAAAAA.  */
-{ "vadds2h", 0x28548000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vadds2h", 0x28548000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vadds2h 0,b,u6 00101bbb010101001BBBuuuuuu111110.  */
-{ "vadds2h", 0x2854803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vadds2h", 0x2854803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vadds2h<.cc> b,b,u6 00101bbb110101001BBBuuuuuu1QQQQQ.  */
-{ "vadds2h", 0x28D48020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vadds2h", 0x28D48020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vadds2h b,b,s12 00101bbb100101001BBBssssssSSSSSS.  */
-{ "vadds2h", 0x28948000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vadds2h", 0x28948000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vadds2h a,limm,c 00101110000101001111CCCCCCAAAAAA.  */
-{ "vadds2h", 0x2E14F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vadds2h", 0x2E14F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vadds2h a,b,limm 00101bbb000101001BBB111110AAAAAA.  */
-{ "vadds2h", 0x28148F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vadds2h", 0x28148F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vadds2h 0,limm,c 00101110000101001111CCCCCC111110.  */
-{ "vadds2h", 0x2E14F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vadds2h", 0x2E14F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vadds2h 0,b,limm 00101bbb000101001BBB111110111110.  */
-{ "vadds2h", 0x28148FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vadds2h", 0x28148FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vadds2h<.cc> b,b,limm 00101bbb110101001BBB1111100QQQQQ.  */
-{ "vadds2h", 0x28D48F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vadds2h", 0x28D48F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vadds2h<.cc> 0,limm,c 00101110110101001111CCCCCC0QQQQQ.  */
-{ "vadds2h", 0x2ED4F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vadds2h", 0x2ED4F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vadds2h a,limm,u6 00101110010101001111uuuuuuAAAAAA.  */
-{ "vadds2h", 0x2E54F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vadds2h", 0x2E54F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vadds2h 0,limm,u6 00101110010101001111uuuuuu111110.  */
-{ "vadds2h", 0x2E54F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vadds2h", 0x2E54F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vadds2h<.cc> 0,limm,u6 00101110110101001111uuuuuu1QQQQQ.  */
-{ "vadds2h", 0x2ED4F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vadds2h", 0x2ED4F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vadds2h 0,limm,s12 00101110100101001111ssssssSSSSSS.  */
-{ "vadds2h", 0x2E94F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vadds2h", 0x2E94F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vadds2h a,limm,limm 00101110000101001111111110AAAAAA.  */
-{ "vadds2h", 0x2E14FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vadds2h", 0x2E14FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vadds2h 0,limm,limm 00101110000101001111111110111110.  */
-{ "vadds2h", 0x2E14FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vadds2h", 0x2E14FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vadds2h<.cc> 0,limm,limm 001011101101010011111111100QQQQQ.  */
-{ "vadds2h", 0x2ED4FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vadds2h", 0x2ED4FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+
+/* vadds4h a,b,c 00101bbb001110000BBBCCCCCCAAAAAA */
+{ "vadds4h", 0x28380000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, RC }, { 0 }},
+
+/* vadds4h 0,b,c 00101bbb001110000BBBCCCCCC111110 */
+{ "vadds4h", 0x2838003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, RC }, { 0 }},
+
+/* vadds4h<.cc> b,b,c 00101bbb111110000BBBCCCCCC0QQQQQ */
+{ "vadds4h", 0x28F80000, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, RC }, { C_CC }},
+
+/* vadds4h 0,b,u6 00101bbb011110000BBBuuuuuu111110 */
+{ "vadds4h", 0x2878003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, UIMM6_20 }, { 0 }},
+
+/* vadds4h<.cc> b,b,u6 00101bbb111110000BBBuuuuuu1QQQQQ */
+{ "vadds4h", 0x28F80020, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, UIMM6_20 }, { C_CC }},
+
+/* vadds4h a,b,u6 00101bbb011110000BBBuuuuuuAAAAAA */
+{ "vadds4h", 0x28780000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, UIMM6_20 }, { 0 }},
+
+/* vadds4h b,b,s12 00101bbb101110000BBBssssssSSSSSS */
+{ "vadds4h", 0x28B80000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, SIMM12_20 }, { 0 }},
+
+/* vadds4h<.cc> b,b,limm 00101bbb111110000BBB1111100QQQQQ */
+{ "vadds4h", 0x28F80F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, LIMM }, { C_CC }},
+
+/* vadds4h a,b,limm 00101bbb001110000BBB111110AAAAAA */
+{ "vadds4h", 0x28380F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, LIMM }, { 0 }},
+
+/* vadds4h<.cc> 0,limm,c 00101110111110000111CCCCCC0QQQQQ */
+{ "vadds4h", 0x2EF87000, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_CC }},
+
+/* vadds4h a,limm,c 00101110001110000111CCCCCCAAAAAA */
+{ "vadds4h", 0x2E387000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, RC }, { 0 }},
+
+/* vadds4h 0,b,limm 00101bbb001110000BBB111110111110 */
+{ "vadds4h", 0x28380FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, LIMM }, { 0 }},
+
+/* vadds4h 0,limm,c 00101110001110000111CCCCCC111110 */
+{ "vadds4h", 0x2E38703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { 0 }},
+
+/* vadds4h<.cc> 0,limm,u6 00101110111110000111uuuuuu1QQQQQ */
+{ "vadds4h", 0x2EF87020, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+
+/* vadds4h a,limm,u6 00101110011110000111uuuuuuAAAAAA */
+{ "vadds4h", 0x2E787000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vadds4h 0,limm,u6 00101110011110000111uuuuuu111110 */
+{ "vadds4h", 0x2E78703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vadds4h 0,limm,s12 00101110101110000111ssssssSSSSSS */
+{ "vadds4h", 0x2EB87000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, SIMM12_20 }, { 0 }},
+
+/* vadds4h a,limm,limm 00101110001110000111111110AAAAAA */
+{ "vadds4h", 0x2E387F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, LIMMdup }, { 0 }},
+
+/* vadds4h<.cc> 0,limm,limm 001011101111100001111111100QQQQQ */
+{ "vadds4h", 0x2EF87F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_CC }},
+
+/* vadds4h 0,limm,limm 00101110001110000111111110111110 */
+{ "vadds4h", 0x2E387FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vaddsub a,b,c 00101bbb001111100BBBCCCCCCAAAAAA.  */
 { "vaddsub", 0x283E0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { RA_CHK, RB, RC }, { 0 }},
@@ -15738,425 +16937,545 @@
 /* vaddsub4h<.cc> 0,limm,limm 001011101111101001111111100QQQQQ.  */
 { "vaddsub4h", 0x2EFA7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { ZA, LIMM, LIMMdup }, { C_CC }},
 
+/* vaddsubs a,b,c 00101bbb001111100BBBCCCCCCAAAAAA */
+{ "vaddsubs", 0x283E0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, RC }, { 0 }},
+
+/* vaddsubs<.cc> b,b,c 00101bbb111111100BBBCCCCCC0QQQQQ */
+{ "vaddsubs", 0x28FE0000, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, RC }, { C_CC }},
+
+/* vaddsubs 0,b,c 00101bbb001111100BBBCCCCCC111110 */
+{ "vaddsubs", 0x283E003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, RC }, { 0 }},
+
+/* vaddsubs a,b,u6 00101bbb011111100BBBuuuuuuAAAAAA */
+{ "vaddsubs", 0x287E0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, UIMM6_20 }, { 0 }},
+
+/* vaddsubs 0,b,u6 00101bbb011111100BBBuuuuuu111110 */
+{ "vaddsubs", 0x287E003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, UIMM6_20 }, { 0 }},
+
+/* vaddsubs<.cc> b,b,u6 00101bbb111111100BBBuuuuuu1QQQQQ */
+{ "vaddsubs", 0x28FE0020, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, UIMM6_20 }, { C_CC }},
+
+/* vaddsubs b,b,s12 00101bbb101111100BBBssssssSSSSSS */
+{ "vaddsubs", 0x28BE0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, SIMM12_20 }, { 0 }},
+
+/* vaddsubs a,limm,c 00101110001111100111CCCCCCAAAAAA */
+{ "vaddsubs", 0x2E3E7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, RC }, { 0 }},
+
+/* vaddsubs a,b,limm 00101bbb001111100BBB111110AAAAAA */
+{ "vaddsubs", 0x283E0F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, LIMM }, { 0 }},
+
+/* vaddsubs<.cc> 0,limm,c 00101110111111100111CCCCCC0QQQQQ */
+{ "vaddsubs", 0x2EFE7000, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_CC }},
+
+/* vaddsubs 0,limm,c 00101110001111100111CCCCCC111110 */
+{ "vaddsubs", 0x2E3E703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { 0 }},
+
+/* vaddsubs<.cc> b,b,limm 00101bbb111111100BBB1111100QQQQQ */
+{ "vaddsubs", 0x28FE0F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, LIMM }, { C_CC }},
+
+/* vaddsubs 0,b,limm 00101bbb001111100BBB111110111110 */
+{ "vaddsubs", 0x283E0FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, LIMM }, { 0 }},
+
+/* vaddsubs a,limm,u6 00101110011111100111uuuuuuAAAAAA */
+{ "vaddsubs", 0x2E7E7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vaddsubs 0,limm,u6 00101110011111100111uuuuuu111110 */
+{ "vaddsubs", 0x2E7E703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vaddsubs<.cc> 0,limm,u6 00101110111111100111uuuuuu1QQQQQ */
+{ "vaddsubs", 0x2EFE7020, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+
+/* vaddsubs 0,limm,s12 00101110101111100111ssssssSSSSSS */
+{ "vaddsubs", 0x2EBE7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, SIMM12_20 }, { 0 }},
+
+/* vaddsubs 0,limm,limm 00101110001111100111111110111110 */
+{ "vaddsubs", 0x2E3E7FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { 0 }},
+
+/* vaddsubs<.cc> 0,limm,limm 001011101111111001111111100QQQQQ */
+{ "vaddsubs", 0x2EFE7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_CC }},
+
+/* vaddsubs a,limm,limm 00101110001111100111111110AAAAAA */
+{ "vaddsubs", 0x2E3E7F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, LIMMdup }, { 0 }},
+
 /* vaddsubs2h a,b,c 00101bbb000101101BBBCCCCCCAAAAAA.  */
-{ "vaddsubs2h", 0x28168000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vaddsubs2h", 0x28168000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vaddsubs2h 0,b,c 00101bbb000101101BBBCCCCCC111110.  */
-{ "vaddsubs2h", 0x2816803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vaddsubs2h", 0x2816803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vaddsubs2h<.cc> b,b,c 00101bbb110101101BBBCCCCCC0QQQQQ.  */
-{ "vaddsubs2h", 0x28D68000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vaddsubs2h", 0x28D68000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vaddsubs2h a,b,u6 00101bbb010101101BBBuuuuuuAAAAAA.  */
-{ "vaddsubs2h", 0x28568000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vaddsubs2h", 0x28568000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vaddsubs2h 0,b,u6 00101bbb010101101BBBuuuuuu111110.  */
-{ "vaddsubs2h", 0x2856803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vaddsubs2h", 0x2856803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vaddsubs2h<.cc> b,b,u6 00101bbb110101101BBBuuuuuu1QQQQQ.  */
-{ "vaddsubs2h", 0x28D68020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vaddsubs2h", 0x28D68020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vaddsubs2h b,b,s12 00101bbb100101101BBBssssssSSSSSS.  */
-{ "vaddsubs2h", 0x28968000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vaddsubs2h", 0x28968000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vaddsubs2h a,limm,c 00101110000101101111CCCCCCAAAAAA.  */
-{ "vaddsubs2h", 0x2E16F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vaddsubs2h", 0x2E16F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vaddsubs2h a,b,limm 00101bbb000101101BBB111110AAAAAA.  */
-{ "vaddsubs2h", 0x28168F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vaddsubs2h", 0x28168F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vaddsubs2h 0,limm,c 00101110000101101111CCCCCC111110.  */
-{ "vaddsubs2h", 0x2E16F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vaddsubs2h", 0x2E16F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vaddsubs2h 0,b,limm 00101bbb000101101BBB111110111110.  */
-{ "vaddsubs2h", 0x28168FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vaddsubs2h", 0x28168FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vaddsubs2h<.cc> b,b,limm 00101bbb110101101BBB1111100QQQQQ.  */
-{ "vaddsubs2h", 0x28D68F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vaddsubs2h", 0x28D68F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vaddsubs2h<.cc> 0,limm,c 00101110110101101111CCCCCC0QQQQQ.  */
-{ "vaddsubs2h", 0x2ED6F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vaddsubs2h", 0x2ED6F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vaddsubs2h a,limm,u6 00101110010101101111uuuuuuAAAAAA.  */
-{ "vaddsubs2h", 0x2E56F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vaddsubs2h", 0x2E56F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vaddsubs2h 0,limm,u6 00101110010101101111uuuuuu111110.  */
-{ "vaddsubs2h", 0x2E56F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vaddsubs2h", 0x2E56F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vaddsubs2h<.cc> 0,limm,u6 00101110110101101111uuuuuu1QQQQQ.  */
-{ "vaddsubs2h", 0x2ED6F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vaddsubs2h", 0x2ED6F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vaddsubs2h 0,limm,s12 00101110100101101111ssssssSSSSSS.  */
-{ "vaddsubs2h", 0x2E96F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vaddsubs2h", 0x2E96F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vaddsubs2h a,limm,limm 00101110000101101111111110AAAAAA.  */
-{ "vaddsubs2h", 0x2E16FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vaddsubs2h", 0x2E16FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vaddsubs2h 0,limm,limm 00101110000101101111111110111110.  */
-{ "vaddsubs2h", 0x2E16FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vaddsubs2h", 0x2E16FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vaddsubs2h<.cc> 0,limm,limm 001011101101011011111111100QQQQQ.  */
-{ "vaddsubs2h", 0x2ED6FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vaddsubs2h", 0x2ED6FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+
+/* vaddsubs4h a,b,c 00101bbb001110100BBBCCCCCCAAAAAA */
+{ "vaddsubs4h", 0x283A0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, RC }, { 0 }},
+
+/* vaddsubs4h 0,b,c 00101bbb001110100BBBCCCCCC111110 */
+{ "vaddsubs4h", 0x283A003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, RC }, { 0 }},
+
+/* vaddsubs4h<.cc> b,b,c 00101bbb111110100BBBCCCCCC0QQQQQ */
+{ "vaddsubs4h", 0x28FA0000, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, RC }, { C_CC }},
+
+/* vaddsubs4h a,b,u6 00101bbb011110100BBBuuuuuuAAAAAA */
+{ "vaddsubs4h", 0x287A0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, UIMM6_20 }, { 0 }},
+
+/* vaddsubs4h<.cc> b,b,u6 00101bbb111110100BBBuuuuuu1QQQQQ */
+{ "vaddsubs4h", 0x28FA0020, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, UIMM6_20 }, { C_CC }},
+
+/* vaddsubs4h 0,b,u6 00101bbb011110100BBBuuuuuu111110 */
+{ "vaddsubs4h", 0x287A003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, UIMM6_20 }, { 0 }},
+
+/* vaddsubs4h b,b,s12 00101bbb101110100BBBssssssSSSSSS */
+{ "vaddsubs4h", 0x28BA0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, SIMM12_20 }, { 0 }},
+
+/* vaddsubs4h a,limm,c 00101110001110100111CCCCCCAAAAAA */
+{ "vaddsubs4h", 0x2E3A7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, RC }, { 0 }},
+
+/* vaddsubs4h<.cc> 0,limm,c 00101110111110100111CCCCCC0QQQQQ */
+{ "vaddsubs4h", 0x2EFA7000, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_CC }},
+
+/* vaddsubs4h a,b,limm 00101bbb001110100BBB111110AAAAAA */
+{ "vaddsubs4h", 0x283A0F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, LIMM }, { 0 }},
+
+/* vaddsubs4h<.cc> b,b,limm 00101bbb111110100BBB1111100QQQQQ */
+{ "vaddsubs4h", 0x28FA0F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, LIMM }, { C_CC }},
+
+/* vaddsubs4h 0,b,limm 00101bbb001110100BBB111110111110 */
+{ "vaddsubs4h", 0x283A0FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, LIMM }, { 0 }},
+
+/* vaddsubs4h 0,limm,c 00101110001110100111CCCCCC111110 */
+{ "vaddsubs4h", 0x2E3A703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { 0 }},
+
+/* vaddsubs4h 0,limm,u6 00101110011110100111uuuuuu111110 */
+{ "vaddsubs4h", 0x2E7A703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vaddsubs4h a,limm,u6 00101110011110100111uuuuuuAAAAAA */
+{ "vaddsubs4h", 0x2E7A7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vaddsubs4h<.cc> 0,limm,u6 00101110111110100111uuuuuu1QQQQQ */
+{ "vaddsubs4h", 0x2EFA7020, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+
+/* vaddsubs4h 0,limm,s12 00101110101110100111ssssssSSSSSS */
+{ "vaddsubs4h", 0x2EBA7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, SIMM12_20 }, { 0 }},
+
+/* vaddsubs4h<.cc> 0,limm,limm 001011101111101001111111100QQQQQ */
+{ "vaddsubs4h", 0x2EFA7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_CC }},
+
+/* vaddsubs4h 0,limm,limm 00101110001110100111111110111110 */
+{ "vaddsubs4h", 0x2E3A7FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { 0 }},
+
+/* vaddsubs4h a,limm,limm 00101110001110100111111110AAAAAA */
+{ "vaddsubs4h", 0x2E3A7F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, LIMMdup }, { 0 }},
 
 /* valgn2h a,b,c 00101bbb000011010BBBCCCCCCAAAAAA.  */
-{ "valgn2h", 0x280D0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "valgn2h", 0x280D0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* valgn2h 0,b,c 00101bbb000011010BBBCCCCCC111110.  */
-{ "valgn2h", 0x280D003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "valgn2h", 0x280D003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* valgn2h<.cc> b,b,c 00101bbb110011010BBBCCCCCC0QQQQQ.  */
-{ "valgn2h", 0x28CD0000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "valgn2h", 0x28CD0000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* valgn2h a,b,u6 00101bbb010011010BBBuuuuuuAAAAAA.  */
-{ "valgn2h", 0x284D0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "valgn2h", 0x284D0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* valgn2h 0,b,u6 00101bbb010011010BBBuuuuuu111110.  */
-{ "valgn2h", 0x284D003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "valgn2h", 0x284D003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* valgn2h<.cc> b,b,u6 00101bbb110011010BBBuuuuuu1QQQQQ.  */
-{ "valgn2h", 0x28CD0020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "valgn2h", 0x28CD0020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* valgn2h b,b,s12 00101bbb100011010BBBssssssSSSSSS.  */
-{ "valgn2h", 0x288D0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "valgn2h", 0x288D0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* valgn2h a,limm,c 00101110000011010111CCCCCCAAAAAA.  */
-{ "valgn2h", 0x2E0D7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "valgn2h", 0x2E0D7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* valgn2h a,b,limm 00101bbb000011010BBB111110AAAAAA.  */
-{ "valgn2h", 0x280D0F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "valgn2h", 0x280D0F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* valgn2h 0,limm,c 00101110000011010111CCCCCC111110.  */
-{ "valgn2h", 0x2E0D703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "valgn2h", 0x2E0D703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* valgn2h 0,b,limm 00101bbb000011010BBB111110111110.  */
-{ "valgn2h", 0x280D0FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "valgn2h", 0x280D0FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* valgn2h<.cc> b,b,limm 00101bbb110011010BBB1111100QQQQQ.  */
-{ "valgn2h", 0x28CD0F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "valgn2h", 0x28CD0F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* valgn2h<.cc> 0,limm,c 00101110110011010111CCCCCC0QQQQQ.  */
-{ "valgn2h", 0x2ECD7000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "valgn2h", 0x2ECD7000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* valgn2h a,limm,u6 00101110010011010111uuuuuuAAAAAA.  */
-{ "valgn2h", 0x2E4D7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "valgn2h", 0x2E4D7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* valgn2h 0,limm,u6 00101110010011010111uuuuuu111110.  */
-{ "valgn2h", 0x2E4D703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "valgn2h", 0x2E4D703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* valgn2h<.cc> 0,limm,u6 00101110110011010111uuuuuu1QQQQQ.  */
-{ "valgn2h", 0x2ECD7020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "valgn2h", 0x2ECD7020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* valgn2h 0,limm,s12 00101110100011010111ssssssSSSSSS.  */
-{ "valgn2h", 0x2E8D7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "valgn2h", 0x2E8D7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* valgn2h a,limm,limm 00101110000011010111111110AAAAAA.  */
-{ "valgn2h", 0x2E0D7F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "valgn2h", 0x2E0D7F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* valgn2h 0,limm,limm 00101110000011010111111110111110.  */
-{ "valgn2h", 0x2E0D7FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "valgn2h", 0x2E0D7FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* valgn2h<.cc> 0,limm,limm 001011101100110101111111100QQQQQ.  */
-{ "valgn2h", 0x2ECD7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "valgn2h", 0x2ECD7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vasl2h a,b,c 00101bbb001000010BBBCCCCCCAAAAAA.  */
-{ "vasl2h", 0x28210000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vasl2h", 0x28210000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vasl2h 0,b,c 00101bbb001000010BBBCCCCCC111110.  */
-{ "vasl2h", 0x2821003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vasl2h", 0x2821003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vasl2h<.cc> b,b,c 00101bbb111000010BBBCCCCCC0QQQQQ.  */
-{ "vasl2h", 0x28E10000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vasl2h", 0x28E10000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vasl2h a,b,u6 00101bbb011000010BBBuuuuuuAAAAAA.  */
-{ "vasl2h", 0x28610000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vasl2h", 0x28610000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vasl2h 0,b,u6 00101bbb011000010BBBuuuuuu111110.  */
-{ "vasl2h", 0x2861003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vasl2h", 0x2861003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vasl2h<.cc> b,b,u6 00101bbb111000010BBBuuuuuu1QQQQQ.  */
-{ "vasl2h", 0x28E10020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vasl2h", 0x28E10020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vasl2h b,b,s12 00101bbb101000010BBBssssssSSSSSS.  */
-{ "vasl2h", 0x28A10000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vasl2h", 0x28A10000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vasl2h a,limm,c 00101110001000010111CCCCCCAAAAAA.  */
-{ "vasl2h", 0x2E217000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vasl2h", 0x2E217000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vasl2h a,b,limm 00101bbb001000010BBB111110AAAAAA.  */
-{ "vasl2h", 0x28210F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vasl2h", 0x28210F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vasl2h 0,limm,c 00101110011000010111CCCCCC111110.  */
-{ "vasl2h", 0x2E61703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vasl2h", 0x2E61703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vasl2h 0,b,limm 00101bbb001000010BBB111110111110.  */
-{ "vasl2h", 0x28210FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vasl2h", 0x28210FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vasl2h<.cc> b,b,limm 00101bbb111000010BBB1111100QQQQQ.  */
-{ "vasl2h", 0x28E10F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vasl2h", 0x28E10F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vasl2h<.cc> 0,limm,c 00101110111000010111CCCCCC0QQQQQ.  */
-{ "vasl2h", 0x2EE17000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vasl2h", 0x2EE17000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vasl2h a,limm,u6 00101110011000010111uuuuuuAAAAAA.  */
-{ "vasl2h", 0x2E617000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vasl2h", 0x2E617000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vasl2h 0,limm,u6 00101110011000010111uuuuuu111110.  */
-{ "vasl2h", 0x2E61703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vasl2h", 0x2E61703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vasl2h<.cc> 0,limm,u6 00101110111000010111uuuuuu1QQQQQ.  */
-{ "vasl2h", 0x2EE17020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vasl2h", 0x2EE17020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vasl2h 0,limm,s12 00101110101000010111ssssssSSSSSS.  */
-{ "vasl2h", 0x2EA17000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vasl2h", 0x2EA17000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vasl2h a,limm,limm 00101110001000010111111110AAAAAA.  */
-{ "vasl2h", 0x2E217F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vasl2h", 0x2E217F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vasl2h 0,limm,limm 00101110001000010111111110111110.  */
-{ "vasl2h", 0x2E217FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vasl2h", 0x2E217FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vasl2h<.cc> 0,limm,limm 001011101110000101111111100QQQQQ.  */
-{ "vasl2h", 0x2EE17F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vasl2h", 0x2EE17F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vasls2h a,b,c 00101bbb001000011BBBCCCCCCAAAAAA.  */
-{ "vasls2h", 0x28218000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vasls2h", 0x28218000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vasls2h 0,b,c 00101bbb001000010BBBCCCCCC111110.  */
-{ "vasls2h", 0x2821003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vasls2h", 0x2821003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vasls2h<.cc> b,b,c 00101bbb111000011BBBCCCCCC0QQQQQ.  */
-{ "vasls2h", 0x28E18000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vasls2h", 0x28E18000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vasls2h a,b,u6 00101bbb011000011BBBuuuuuuAAAAAA.  */
-{ "vasls2h", 0x28618000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vasls2h", 0x28618000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vasls2h 0,b,u6 00101bbb011000010BBBuuuuuu111110.  */
-{ "vasls2h", 0x2861003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vasls2h", 0x2861003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vasls2h<.cc> b,b,u6 00101bbb111000011BBBuuuuuu1QQQQQ.  */
-{ "vasls2h", 0x28E18020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vasls2h", 0x28E18020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vasls2h b,b,s12 00101bbb101000011BBBssssssSSSSSS.  */
-{ "vasls2h", 0x28A18000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vasls2h", 0x28A18000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vasls2h a,limm,c 00101110001000010111CCCCCCAAAAAA.  */
-{ "vasls2h", 0x2E217000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vasls2h", 0x2E217000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vasls2h a,b,limm 00101bbb001000010BBB111110AAAAAA.  */
-{ "vasls2h", 0x28210F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vasls2h", 0x28210F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vasls2h 0,limm,c 00101110011000010111CCCCCC111110.  */
-{ "vasls2h", 0x2E61703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vasls2h", 0x2E61703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vasls2h 0,b,limm 00101bbb001000010BBB111110111110.  */
-{ "vasls2h", 0x28210FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vasls2h", 0x28210FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vasls2h<.cc> b,b,limm 00101bbb111000010BBB1111100QQQQQ.  */
-{ "vasls2h", 0x28E10F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vasls2h", 0x28E10F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vasls2h<.cc> 0,limm,c 00101110111000010111CCCCCC0QQQQQ.  */
-{ "vasls2h", 0x2EE17000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vasls2h", 0x2EE17000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vasls2h a,limm,u6 00101110011000010111uuuuuuAAAAAA.  */
-{ "vasls2h", 0x2E617000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vasls2h", 0x2E617000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vasls2h 0,limm,u6 00101110011000010111uuuuuu111110.  */
-{ "vasls2h", 0x2E61703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vasls2h", 0x2E61703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vasls2h<.cc> 0,limm,u6 00101110111000010111uuuuuu1QQQQQ.  */
-{ "vasls2h", 0x2EE17020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vasls2h", 0x2EE17020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vasls2h 0,limm,s12 00101110101000010111ssssssSSSSSS.  */
-{ "vasls2h", 0x2EA17000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vasls2h", 0x2EA17000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vasls2h a,limm,limm 00101110001000010111111110AAAAAA.  */
-{ "vasls2h", 0x2E217F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vasls2h", 0x2E217F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vasls2h 0,limm,limm 00101110001000010111111110111110.  */
-{ "vasls2h", 0x2E217FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vasls2h", 0x2E217FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vasls2h<.cc> 0,limm,limm 001011101110000101111111100QQQQQ.  */
-{ "vasls2h", 0x2EE17F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vasls2h", 0x2EE17F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vasr2h a,b,c 00101bbb001000100BBBCCCCCCAAAAAA.  */
-{ "vasr2h", 0x28220000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vasr2h", 0x28220000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vasr2h 0,b,c 00101bbb001000100BBBCCCCCC111110.  */
-{ "vasr2h", 0x2822003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vasr2h", 0x2822003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vasr2h<.cc> b,b,c 00101bbb111000100BBBCCCCCC0QQQQQ.  */
-{ "vasr2h", 0x28E20000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vasr2h", 0x28E20000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vasr2h a,b,u6 00101bbb011000100BBBuuuuuuAAAAAA.  */
-{ "vasr2h", 0x28620000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vasr2h", 0x28620000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vasr2h 0,b,u6 00101bbb011000100BBBuuuuuu111110.  */
-{ "vasr2h", 0x2862003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vasr2h", 0x2862003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vasr2h<.cc> b,b,u6 00101bbb111000100BBBuuuuuu1QQQQQ.  */
-{ "vasr2h", 0x28E20020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vasr2h", 0x28E20020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vasr2h b,b,s12 00101bbb101000100BBBssssssSSSSSS.  */
-{ "vasr2h", 0x28A20000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vasr2h", 0x28A20000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vasr2h a,limm,c 00101110001000100111CCCCCCAAAAAA.  */
-{ "vasr2h", 0x2E227000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vasr2h", 0x2E227000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vasr2h a,b,limm 00101bbb001000100BBB111110AAAAAA.  */
-{ "vasr2h", 0x28220F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vasr2h", 0x28220F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vasr2h 0,limm,c 00101110011000100111CCCCCC111110.  */
-{ "vasr2h", 0x2E62703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vasr2h", 0x2E62703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vasr2h 0,b,limm 00101bbb001000100BBB111110111110.  */
-{ "vasr2h", 0x28220FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vasr2h", 0x28220FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vasr2h<.cc> b,b,limm 00101bbb111000100BBB1111100QQQQQ.  */
-{ "vasr2h", 0x28E20F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vasr2h", 0x28E20F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vasr2h<.cc> 0,limm,c 00101110111000100111CCCCCC0QQQQQ.  */
-{ "vasr2h", 0x2EE27000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vasr2h", 0x2EE27000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vasr2h a,limm,u6 00101110011000100111uuuuuuAAAAAA.  */
-{ "vasr2h", 0x2E627000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vasr2h", 0x2E627000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vasr2h 0,limm,u6 00101110011000100111uuuuuu111110.  */
-{ "vasr2h", 0x2E62703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vasr2h", 0x2E62703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vasr2h<.cc> 0,limm,u6 00101110111000100111uuuuuu1QQQQQ.  */
-{ "vasr2h", 0x2EE27020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vasr2h", 0x2EE27020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vasr2h 0,limm,s12 00101110101000100111ssssssSSSSSS.  */
-{ "vasr2h", 0x2EA27000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vasr2h", 0x2EA27000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vasr2h a,limm,limm 00101110001000100111111110AAAAAA.  */
-{ "vasr2h", 0x2E227F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vasr2h", 0x2E227F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vasr2h 0,limm,limm 00101110001000100111111110111110.  */
-{ "vasr2h", 0x2E227FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vasr2h", 0x2E227FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vasr2h<.cc> 0,limm,limm 001011101110001001111111100QQQQQ.  */
-{ "vasr2h", 0x2EE27F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vasr2h", 0x2EE27F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vasrs2h a,b,c 00101bbb001000101BBBCCCCCCAAAAAA.  */
-{ "vasrs2h", 0x28228000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vasrs2h", 0x28228000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vasrs2h 0,b,c 00101bbb001000101BBBCCCCCC111110.  */
-{ "vasrs2h", 0x2822803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vasrs2h", 0x2822803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vasrs2h<.cc> b,b,c 00101bbb111000101BBBCCCCCC0QQQQQ.  */
-{ "vasrs2h", 0x28E28000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vasrs2h", 0x28E28000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vasrs2h a,b,u6 00101bbb011000101BBBuuuuuuAAAAAA.  */
-{ "vasrs2h", 0x28628000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vasrs2h", 0x28628000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vasrs2h 0,b,u6 00101bbb011000101BBBuuuuuu111110.  */
-{ "vasrs2h", 0x2862803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vasrs2h", 0x2862803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vasrs2h<.cc> b,b,u6 00101bbb111000101BBBuuuuuu1QQQQQ.  */
-{ "vasrs2h", 0x28E28020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vasrs2h", 0x28E28020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vasrs2h b,b,s12 00101bbb101000101BBBssssssSSSSSS.  */
-{ "vasrs2h", 0x28A28000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vasrs2h", 0x28A28000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vasrs2h a,limm,c 00101110001000101111CCCCCCAAAAAA.  */
-{ "vasrs2h", 0x2E22F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vasrs2h", 0x2E22F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vasrs2h a,b,limm 00101bbb001000101BBB111110AAAAAA.  */
-{ "vasrs2h", 0x28228F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vasrs2h", 0x28228F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vasrs2h 0,limm,c 00101110011000101111CCCCCC111110.  */
-{ "vasrs2h", 0x2E62F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vasrs2h", 0x2E62F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vasrs2h 0,b,limm 00101bbb001000101BBB111110111110.  */
-{ "vasrs2h", 0x28228FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vasrs2h", 0x28228FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vasrs2h<.cc> b,b,limm 00101bbb111000101BBB1111100QQQQQ.  */
-{ "vasrs2h", 0x28E28F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vasrs2h", 0x28E28F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vasrs2h<.cc> 0,limm,c 00101110111000101111CCCCCC0QQQQQ.  */
-{ "vasrs2h", 0x2EE2F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vasrs2h", 0x2EE2F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vasrs2h a,limm,u6 00101110011000101111uuuuuuAAAAAA.  */
-{ "vasrs2h", 0x2E62F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vasrs2h", 0x2E62F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vasrs2h 0,limm,u6 00101110011000101111uuuuuu111110.  */
-{ "vasrs2h", 0x2E62F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vasrs2h", 0x2E62F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vasrs2h<.cc> 0,limm,u6 00101110111000101111uuuuuu1QQQQQ.  */
-{ "vasrs2h", 0x2EE2F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vasrs2h", 0x2EE2F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vasrs2h 0,limm,s12 00101110101000101111ssssssSSSSSS.  */
-{ "vasrs2h", 0x2EA2F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vasrs2h", 0x2EA2F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vasrs2h a,limm,limm 00101110001000101111111110AAAAAA.  */
-{ "vasrs2h", 0x2E22FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vasrs2h", 0x2E22FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vasrs2h 0,limm,limm 00101110001000101111111110111110.  */
-{ "vasrs2h", 0x2E22FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vasrs2h", 0x2E22FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vasrs2h<.cc> 0,limm,limm 001011101110001011111111100QQQQQ.  */
-{ "vasrs2h", 0x2EE2FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vasrs2h", 0x2EE2FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vasrsr2h a,b,c 00101bbb001000111BBBCCCCCCAAAAAA.  */
-{ "vasrsr2h", 0x28238000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vasrsr2h", 0x28238000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vasrsr2h 0,b,c 00101bbb001000111BBBCCCCCC111110.  */
-{ "vasrsr2h", 0x2823803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vasrsr2h", 0x2823803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vasrsr2h<.cc> b,b,c 00101bbb111000111BBBCCCCCC0QQQQQ.  */
-{ "vasrsr2h", 0x28E38000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vasrsr2h", 0x28E38000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vasrsr2h a,b,u6 00101bbb011000111BBBuuuuuuAAAAAA.  */
-{ "vasrsr2h", 0x28638000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vasrsr2h", 0x28638000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vasrsr2h 0,b,u6 00101bbb011000111BBBuuuuuu111110.  */
-{ "vasrsr2h", 0x2863803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vasrsr2h", 0x2863803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vasrsr2h<.cc> b,b,u6 00101bbb111000111BBBuuuuuu1QQQQQ.  */
-{ "vasrsr2h", 0x28E38020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vasrsr2h", 0x28E38020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vasrsr2h b,b,s12 00101bbb101000111BBBssssssSSSSSS.  */
-{ "vasrsr2h", 0x28A38000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vasrsr2h", 0x28A38000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vasrsr2h a,limm,c 00101110001000111111CCCCCCAAAAAA.  */
-{ "vasrsr2h", 0x2E23F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vasrsr2h", 0x2E23F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vasrsr2h a,b,limm 00101bbb001000111BBB111110AAAAAA.  */
-{ "vasrsr2h", 0x28238F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vasrsr2h", 0x28238F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vasrsr2h 0,limm,c 00101110011000111111CCCCCC111110.  */
-{ "vasrsr2h", 0x2E63F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vasrsr2h", 0x2E63F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vasrsr2h 0,b,limm 00101bbb001000111BBB111110111110.  */
-{ "vasrsr2h", 0x28238FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vasrsr2h", 0x28238FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vasrsr2h<.cc> b,b,limm 00101bbb111000111BBB1111100QQQQQ.  */
-{ "vasrsr2h", 0x28E38F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vasrsr2h", 0x28E38F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vasrsr2h<.cc> 0,limm,c 00101110111000111111CCCCCC0QQQQQ.  */
-{ "vasrsr2h", 0x2EE3F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vasrsr2h", 0x2EE3F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vasrsr2h a,limm,u6 00101110011000111111uuuuuuAAAAAA.  */
-{ "vasrsr2h", 0x2E63F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vasrsr2h", 0x2E63F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vasrsr2h 0,limm,u6 00101110011000111111uuuuuu111110.  */
-{ "vasrsr2h", 0x2E63F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vasrsr2h", 0x2E63F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vasrsr2h<.cc> 0,limm,u6 00101110111000111111uuuuuu1QQQQQ.  */
-{ "vasrsr2h", 0x2EE3F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vasrsr2h", 0x2EE3F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vasrsr2h 0,limm,s12 00101110101000111111ssssssSSSSSS.  */
-{ "vasrsr2h", 0x2EA3F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vasrsr2h", 0x2EA3F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vasrsr2h a,limm,limm 00101110001000111111111110AAAAAA.  */
-{ "vasrsr2h", 0x2E23FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vasrsr2h", 0x2E23FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vasrsr2h 0,limm,limm 00101110001000111111111110111110.  */
-{ "vasrsr2h", 0x2E23FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vasrsr2h", 0x2E23FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vasrsr2h<.cc> 0,limm,limm 001011101110001111111111100QQQQQ.  */
-{ "vasrsr2h", 0x2EE3FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vasrsr2h", 0x2EE3FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vbfdw<.f> b,c 00101bbb00101111FBBBCCCCCC001010.  */
 { "vbfdw", 0x282F000A, 0xF8FF003F, ARC_OPCODE_ARC600, DSP, NONE, { RB_CHK, RC }, { C_F }},
@@ -16177,100 +17496,136 @@
 { "vbfdw", 0x2E2F7F8A, 0xFFFF7FFF, ARC_OPCODE_ARC600, DSP, NONE, { ZA, LIMM }, { C_F }},
 
 /* vext2bhl b,c 00101bbb001011110BBBCCCCCC100100.  */
-{ "vext2bhl", 0x282F0024, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { 0 }},
+{ "vext2bhl", 0x282F0024, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { 0 }},
 
 /* vext2bhl 0,c 00101110001011110111CCCCCC100100.  */
-{ "vext2bhl", 0x2E2F7024, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { 0 }},
+{ "vext2bhl", 0x2E2F7024, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
 
 /* vext2bhl b,u6 00101bbb011011110BBBuuuuuu100100.  */
-{ "vext2bhl", 0x286F0024, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
+{ "vext2bhl", 0x286F0024, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
 
 /* vext2bhl 0,u6 00101110011011110111uuuuuu100100.  */
-{ "vext2bhl", 0x2E6F7024, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+{ "vext2bhl", 0x2E6F7024, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
 
 /* vext2bhl b,limm 00101bbb001011110BBB111110100100.  */
-{ "vext2bhl", 0x282F0FA4, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
+{ "vext2bhl", 0x282F0FA4, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
 
 /* vext2bhl 0,limm 00101110001011110111111110100100.  */
-{ "vext2bhl", 0x2E2F7FA4, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { 0 }},
+{ "vext2bhl", 0x2E2F7FA4, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
+
+/* vext2bhlf 0,c 00101110001011110111CCCCCC100000 */
+{ "vext2bhlf", 0x2E2F7020, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
+
+/* vext2bhlf b,c 00101bbb001011110BBBCCCCCC100000 */
+{ "vext2bhlf", 0x282F0020, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RC }, { 0 }},
+
+/* vext2bhlf b,u6 00101bbb011011110BBBuuuuuu100000 */
+{ "vext2bhlf", 0x286F0020, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, UIMM6_20 }, { 0 }},
+
+/* vext2bhlf 0,u6 00101110011011110111uuuuuu100000 */
+{ "vext2bhlf", 0x2E6F7020, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+
+/* vext2bhlf b,limm 00101bbb001011110BBB111110100000 */
+{ "vext2bhlf", 0x282F0FA0, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, LIMM }, { 0 }},
+
+/* vext2bhlf 0,limm 00101110001011110111111110100000 */
+{ "vext2bhlf", 0x2E2F7FA0, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
 
 /* vext2bhm b,c 00101bbb001011110BBBCCCCCC100101.  */
-{ "vext2bhm", 0x282F0025, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { 0 }},
+{ "vext2bhm", 0x282F0025, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { 0 }},
 
 /* vext2bhm 0,c 00101110001011110111CCCCCC100101.  */
-{ "vext2bhm", 0x2E2F7025, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { 0 }},
+{ "vext2bhm", 0x2E2F7025, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
 
 /* vext2bhm b,u6 00101bbb011011110BBBuuuuuu100101.  */
-{ "vext2bhm", 0x286F0025, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
+{ "vext2bhm", 0x286F0025, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
 
 /* vext2bhm 0,u6 00101110011011110111uuuuuu100101.  */
-{ "vext2bhm", 0x2E6F7025, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+{ "vext2bhm", 0x2E6F7025, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
 
 /* vext2bhm b,limm 00101bbb001011110BBB111110100101.  */
-{ "vext2bhm", 0x282F0FA5, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
+{ "vext2bhm", 0x282F0FA5, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
 
 /* vext2bhm 0,limm 00101110001011110111111110100101.  */
-{ "vext2bhm", 0x2E2F7FA5, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { 0 }},
+{ "vext2bhm", 0x2E2F7FA5, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
+
+/* vext2bhmf b,c 00101bbb001011110BBBCCCCCC100001 */
+{ "vext2bhmf", 0x282F0021, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RC }, { 0 }},
+
+/* vext2bhmf 0,c 00101110001011110111CCCCCC100001 */
+{ "vext2bhmf", 0x2E2F7021, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
+
+/* vext2bhmf b,u6 00101bbb011011110BBBuuuuuu100001 */
+{ "vext2bhmf", 0x286F0021, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, UIMM6_20 }, { 0 }},
+
+/* vext2bhmf 0,u6 00101110011011110111uuuuuu100001 */
+{ "vext2bhmf", 0x2E6F7021, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+
+/* vext2bhmf 0,limm 00101110001011110111111110100001 */
+{ "vext2bhmf", 0x2E2F7FA1, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
+
+/* vext2bhmf b,limm 00101bbb001011110BBB111110100001 */
+{ "vext2bhmf", 0x282F0FA1, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, LIMM }, { 0 }},
 
 /* vlsr2h a,b,c 00101bbb001000110BBBCCCCCCAAAAAA.  */
-{ "vlsr2h", 0x28230000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vlsr2h", 0x28230000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vlsr2h 0,b,c 00101bbb001000110BBBCCCCCC111110.  */
-{ "vlsr2h", 0x2823003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vlsr2h", 0x2823003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vlsr2h<.cc> b,b,c 00101bbb111000110BBBCCCCCC0QQQQQ.  */
-{ "vlsr2h", 0x28E30000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vlsr2h", 0x28E30000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vlsr2h a,b,u6 00101bbb011000110BBBuuuuuuAAAAAA.  */
-{ "vlsr2h", 0x28630000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vlsr2h", 0x28630000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vlsr2h 0,b,u6 00101bbb011000110BBBuuuuuu111110.  */
-{ "vlsr2h", 0x2863003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vlsr2h", 0x2863003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vlsr2h<.cc> b,b,u6 00101bbb111000110BBBuuuuuu1QQQQQ.  */
-{ "vlsr2h", 0x28E30020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vlsr2h", 0x28E30020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vlsr2h b,b,s12 00101bbb101000110BBBssssssSSSSSS.  */
-{ "vlsr2h", 0x28A30000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vlsr2h", 0x28A30000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vlsr2h a,limm,c 00101110001000110111CCCCCCAAAAAA.  */
-{ "vlsr2h", 0x2E237000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vlsr2h", 0x2E237000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vlsr2h a,b,limm 00101bbb001000110BBB111110AAAAAA.  */
-{ "vlsr2h", 0x28230F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vlsr2h", 0x28230F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vlsr2h 0,limm,c 00101110011000110111CCCCCC111110.  */
-{ "vlsr2h", 0x2E63703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vlsr2h", 0x2E63703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vlsr2h 0,b,limm 00101bbb001000110BBB111110111110.  */
-{ "vlsr2h", 0x28230FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vlsr2h", 0x28230FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vlsr2h<.cc> b,b,limm 00101bbb111000110BBB1111100QQQQQ.  */
-{ "vlsr2h", 0x28E30F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vlsr2h", 0x28E30F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vlsr2h<.cc> 0,limm,c 00101110111000110111CCCCCC0QQQQQ.  */
-{ "vlsr2h", 0x2EE37000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vlsr2h", 0x2EE37000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vlsr2h a,limm,u6 00101110011000110111uuuuuuAAAAAA.  */
-{ "vlsr2h", 0x2E637000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vlsr2h", 0x2E637000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vlsr2h 0,limm,u6 00101110011000110111uuuuuu111110.  */
-{ "vlsr2h", 0x2E63703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vlsr2h", 0x2E63703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vlsr2h<.cc> 0,limm,u6 00101110111000110111uuuuuu1QQQQQ.  */
-{ "vlsr2h", 0x2EE37020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vlsr2h", 0x2EE37020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vlsr2h 0,limm,s12 00101110101000110111ssssssSSSSSS.  */
-{ "vlsr2h", 0x2EA37000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vlsr2h", 0x2EA37000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vlsr2h a,limm,limm 00101110001000110111111110AAAAAA.  */
-{ "vlsr2h", 0x2E237F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vlsr2h", 0x2E237F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vlsr2h 0,limm,limm 00101110001000110111111110111110.  */
-{ "vlsr2h", 0x2E237FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vlsr2h", 0x2E237FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vlsr2h<.cc> 0,limm,limm 001011101110001101111111100QQQQQ.  */
-{ "vlsr2h", 0x2EE37F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vlsr2h", 0x2EE37F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmac2h a,b,c 00101bbb000111100BBBCCCCCCAAAAAA.  */
 { "vmac2h", 0x281E0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
@@ -16333,184 +17688,184 @@
 { "vmac2h", 0x2EDE7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmac2hf a,b,c 00101bbb000111101BBBCCCCCCAAAAAA.  */
-{ "vmac2hf", 0x281E8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vmac2hf", 0x281E8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vmac2hf 0,b,c 00101bbb000111101BBBCCCCCC111110.  */
-{ "vmac2hf", 0x281E803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vmac2hf", 0x281E803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vmac2hf<.cc> b,b,c 00101bbb110111101BBBCCCCCC0QQQQQ.  */
-{ "vmac2hf", 0x28DE8000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vmac2hf", 0x28DE8000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vmac2hf a,b,u6 00101bbb010111101BBBuuuuuuAAAAAA.  */
-{ "vmac2hf", 0x285E8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vmac2hf", 0x285E8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vmac2hf 0,b,u6 00101bbb010111101BBBuuuuuu111110.  */
-{ "vmac2hf", 0x285E803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vmac2hf", 0x285E803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vmac2hf<.cc> b,b,u6 00101bbb110111101BBBuuuuuu1QQQQQ.  */
-{ "vmac2hf", 0x28DE8020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vmac2hf", 0x28DE8020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vmac2hf b,b,s12 00101bbb100111101BBBssssssSSSSSS.  */
-{ "vmac2hf", 0x289E8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vmac2hf", 0x289E8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vmac2hf a,limm,c 00101110000111101111CCCCCCAAAAAA.  */
-{ "vmac2hf", 0x2E1EF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vmac2hf", 0x2E1EF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vmac2hf a,b,limm 00101bbb000111101BBB111110AAAAAA.  */
-{ "vmac2hf", 0x281E8F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vmac2hf", 0x281E8F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vmac2hf 0,limm,c 00101110000111101111CCCCCC111110.  */
-{ "vmac2hf", 0x2E1EF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vmac2hf", 0x2E1EF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vmac2hf 0,b,limm 00101bbb000111101BBB111110111110.  */
-{ "vmac2hf", 0x281E8FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vmac2hf", 0x281E8FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vmac2hf<.cc> b,b,limm 00101bbb110111101BBB1111100QQQQQ.  */
-{ "vmac2hf", 0x28DE8F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vmac2hf", 0x28DE8F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vmac2hf<.cc> 0,limm,c 00101110110111101111CCCCCC0QQQQQ.  */
-{ "vmac2hf", 0x2EDEF000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vmac2hf", 0x2EDEF000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vmac2hf a,limm,u6 00101110010111101111uuuuuuAAAAAA.  */
-{ "vmac2hf", 0x2E5EF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vmac2hf", 0x2E5EF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmac2hf 0,limm,u6 00101110010111101111uuuuuu111110.  */
-{ "vmac2hf", 0x2E5EF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vmac2hf", 0x2E5EF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmac2hf<.cc> 0,limm,u6 00101110110111101111uuuuuu1QQQQQ.  */
-{ "vmac2hf", 0x2EDEF020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vmac2hf", 0x2EDEF020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vmac2hf 0,limm,s12 00101110100111101111ssssssSSSSSS.  */
-{ "vmac2hf", 0x2E9EF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vmac2hf", 0x2E9EF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vmac2hf a,limm,limm 00101110000111101111111110AAAAAA.  */
-{ "vmac2hf", 0x2E1EFF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vmac2hf", 0x2E1EFF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vmac2hf 0,limm,limm 00101110000111101111111110111110.  */
-{ "vmac2hf", 0x2E1EFFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vmac2hf", 0x2E1EFFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vmac2hf<.cc> 0,limm,limm 001011101101111011111111100QQQQQ.  */
-{ "vmac2hf", 0x2EDEFF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vmac2hf", 0x2EDEFF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmac2hfr a,b,c 00101bbb000111111BBBCCCCCCAAAAAA.  */
-{ "vmac2hfr", 0x281F8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vmac2hfr", 0x281F8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vmac2hfr 0,b,c 00101bbb000111111BBBCCCCCC111110.  */
-{ "vmac2hfr", 0x281F803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vmac2hfr", 0x281F803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vmac2hfr<.cc> b,b,c 00101bbb110111111BBBCCCCCC0QQQQQ.  */
-{ "vmac2hfr", 0x28DF8000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vmac2hfr", 0x28DF8000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vmac2hfr a,b,u6 00101bbb010111111BBBuuuuuuAAAAAA.  */
-{ "vmac2hfr", 0x285F8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vmac2hfr", 0x285F8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vmac2hfr 0,b,u6 00101bbb010111111BBBuuuuuu111110.  */
-{ "vmac2hfr", 0x285F803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vmac2hfr", 0x285F803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vmac2hfr<.cc> b,b,u6 00101bbb110111111BBBuuuuuu1QQQQQ.  */
-{ "vmac2hfr", 0x28DF8020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vmac2hfr", 0x28DF8020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vmac2hfr b,b,s12 00101bbb100111111BBBssssssSSSSSS.  */
-{ "vmac2hfr", 0x289F8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vmac2hfr", 0x289F8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vmac2hfr a,limm,c 00101110000111111111CCCCCCAAAAAA.  */
-{ "vmac2hfr", 0x2E1FF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vmac2hfr", 0x2E1FF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vmac2hfr a,b,limm 00101bbb000111111BBB111110AAAAAA.  */
-{ "vmac2hfr", 0x281F8F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vmac2hfr", 0x281F8F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vmac2hfr 0,limm,c 00101110000111111111CCCCCC111110.  */
-{ "vmac2hfr", 0x2E1FF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vmac2hfr", 0x2E1FF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vmac2hfr 0,b,limm 00101bbb000111111BBB111110111110.  */
-{ "vmac2hfr", 0x281F8FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vmac2hfr", 0x281F8FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vmac2hfr<.cc> b,b,limm 00101bbb110111111BBB1111100QQQQQ.  */
-{ "vmac2hfr", 0x28DF8F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vmac2hfr", 0x28DF8F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vmac2hfr<.cc> 0,limm,c 00101110110111111111CCCCCC0QQQQQ.  */
-{ "vmac2hfr", 0x2EDFF000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vmac2hfr", 0x2EDFF000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vmac2hfr a,limm,u6 00101110010111111111uuuuuuAAAAAA.  */
-{ "vmac2hfr", 0x2E5FF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vmac2hfr", 0x2E5FF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmac2hfr 0,limm,u6 00101110010111111111uuuuuu111110.  */
-{ "vmac2hfr", 0x2E5FF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vmac2hfr", 0x2E5FF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmac2hfr<.cc> 0,limm,u6 00101110110111111111uuuuuu1QQQQQ.  */
-{ "vmac2hfr", 0x2EDFF020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vmac2hfr", 0x2EDFF020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vmac2hfr 0,limm,s12 00101110100111111111ssssssSSSSSS.  */
-{ "vmac2hfr", 0x2E9FF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vmac2hfr", 0x2E9FF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vmac2hfr a,limm,limm 00101110000111111111111110AAAAAA.  */
-{ "vmac2hfr", 0x2E1FFF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vmac2hfr", 0x2E1FFF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vmac2hfr 0,limm,limm 00101110000111111111111110111110.  */
-{ "vmac2hfr", 0x2E1FFFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vmac2hfr", 0x2E1FFFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vmac2hfr<.cc> 0,limm,limm 001011101101111111111111100QQQQQ.  */
-{ "vmac2hfr", 0x2EDFFF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vmac2hfr", 0x2EDFFF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmac2hnfr a,b,c 00110bbb000100010BBBCCCCCCAAAAAA.  */
-{ "vmac2hnfr", 0x30110000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vmac2hnfr", 0x30110000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vmac2hnfr 0,b,c 00110bbb000100010BBBCCCCCC111110.  */
-{ "vmac2hnfr", 0x3011003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vmac2hnfr", 0x3011003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vmac2hnfr<.cc> b,b,c 00110bbb110100010BBBCCCCCC0QQQQQ.  */
-{ "vmac2hnfr", 0x30D10000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vmac2hnfr", 0x30D10000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vmac2hnfr a,b,u6 00110bbb010100010BBBuuuuuuAAAAAA.  */
-{ "vmac2hnfr", 0x30510000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vmac2hnfr", 0x30510000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vmac2hnfr 0,b,u6 00110bbb010100010BBBuuuuuu111110.  */
-{ "vmac2hnfr", 0x3051003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vmac2hnfr", 0x3051003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vmac2hnfr<.cc> b,b,u6 00110bbb110100010BBBuuuuuu1QQQQQ.  */
-{ "vmac2hnfr", 0x30D10020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vmac2hnfr", 0x30D10020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vmac2hnfr b,b,s12 00110bbb100100010BBBssssssSSSSSS.  */
-{ "vmac2hnfr", 0x30910000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vmac2hnfr", 0x30910000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vmac2hnfr a,limm,c 00110110000100010111CCCCCCAAAAAA.  */
-{ "vmac2hnfr", 0x36117000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vmac2hnfr", 0x36117000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vmac2hnfr a,b,limm 00110bbb000100010BBB111110AAAAAA.  */
-{ "vmac2hnfr", 0x30110F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vmac2hnfr", 0x30110F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vmac2hnfr 0,limm,c 00110110000100010111CCCCCC111110.  */
-{ "vmac2hnfr", 0x3611703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vmac2hnfr", 0x3611703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vmac2hnfr 0,b,limm 00110bbb000100010BBB111110111110.  */
-{ "vmac2hnfr", 0x30110FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vmac2hnfr", 0x30110FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vmac2hnfr<.cc> b,b,limm 00110bbb110100010BBB1111100QQQQQ.  */
-{ "vmac2hnfr", 0x30D10F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vmac2hnfr", 0x30D10F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vmac2hnfr<.cc> 0,limm,c 00110110110100010111CCCCCC0QQQQQ.  */
-{ "vmac2hnfr", 0x36D17000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vmac2hnfr", 0x36D17000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vmac2hnfr a,limm,u6 00110110010100010111uuuuuuAAAAAA.  */
-{ "vmac2hnfr", 0x36517000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vmac2hnfr", 0x36517000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmac2hnfr 0,limm,u6 00110110010100010111uuuuuu111110.  */
-{ "vmac2hnfr", 0x3651703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vmac2hnfr", 0x3651703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmac2hnfr<.cc> 0,limm,u6 00110110110100010111uuuuuu1QQQQQ.  */
-{ "vmac2hnfr", 0x36D17020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vmac2hnfr", 0x36D17020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vmac2hnfr 0,limm,s12 00110110100100010111ssssssSSSSSS.  */
-{ "vmac2hnfr", 0x36917000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vmac2hnfr", 0x36917000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vmac2hnfr a,limm,limm 00110110000100010111111110AAAAAA.  */
-{ "vmac2hnfr", 0x36117F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vmac2hnfr", 0x36117F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vmac2hnfr 0,limm,limm 00110110000100010111111110111110.  */
-{ "vmac2hnfr", 0x36117FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vmac2hnfr", 0x36117FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vmac2hnfr<.cc> 0,limm,limm 001101101101000101111111100QQQQQ.  */
-{ "vmac2hnfr", 0x36D17F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vmac2hnfr", 0x36D17F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmac2hu a,b,c 00101bbb000111110BBBCCCCCCAAAAAA.  */
 { "vmac2hu", 0x281F0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
@@ -16573,133 +17928,133 @@
 { "vmac2hu", 0x2EDF7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmax2h a,b,c 00101bbb001001001BBBCCCCCCAAAAAA.  */
-{ "vmax2h", 0x28248000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vmax2h", 0x28248000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vmax2h 0,b,c 00101bbb001001001BBBCCCCCC111110.  */
-{ "vmax2h", 0x2824803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vmax2h", 0x2824803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vmax2h<.cc> b,b,c 00101bbb111001001BBBCCCCCC0QQQQQ.  */
-{ "vmax2h", 0x28E48000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vmax2h", 0x28E48000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vmax2h a,b,u6 00101bbb011001001BBBuuuuuuAAAAAA.  */
-{ "vmax2h", 0x28648000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vmax2h", 0x28648000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vmax2h 0,b,u6 00101bbb011001001BBBuuuuuu111110.  */
-{ "vmax2h", 0x2864803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vmax2h", 0x2864803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vmax2h<.cc> b,b,u6 00101bbb111001001BBBuuuuuu1QQQQQ.  */
-{ "vmax2h", 0x28E48020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vmax2h", 0x28E48020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vmax2h b,b,s12 00101bbb101001001BBBssssssSSSSSS.  */
-{ "vmax2h", 0x28A48000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vmax2h", 0x28A48000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vmax2h a,limm,c 00101110001001001111CCCCCCAAAAAA.  */
-{ "vmax2h", 0x2E24F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vmax2h", 0x2E24F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vmax2h a,b,limm 00101bbb001001001BBB111110AAAAAA.  */
-{ "vmax2h", 0x28248F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vmax2h", 0x28248F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vmax2h 0,limm,c 00101110011001001111CCCCCC111110.  */
-{ "vmax2h", 0x2E64F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vmax2h", 0x2E64F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vmax2h 0,b,limm 00101bbb001001001BBB111110111110.  */
-{ "vmax2h", 0x28248FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vmax2h", 0x28248FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vmax2h<.cc> b,b,limm 00101bbb111001001BBB1111100QQQQQ.  */
-{ "vmax2h", 0x28E48F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vmax2h", 0x28E48F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vmax2h<.cc> 0,limm,c 00101110111001001111CCCCCC0QQQQQ.  */
-{ "vmax2h", 0x2EE4F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vmax2h", 0x2EE4F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vmax2h a,limm,u6 00101110011001001111uuuuuuAAAAAA.  */
-{ "vmax2h", 0x2E64F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vmax2h", 0x2E64F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmax2h 0,limm,u6 00101110011001001111uuuuuu111110.  */
-{ "vmax2h", 0x2E64F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vmax2h", 0x2E64F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmax2h<.cc> 0,limm,u6 00101110111001001111uuuuuu1QQQQQ.  */
-{ "vmax2h", 0x2EE4F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vmax2h", 0x2EE4F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vmax2h 0,limm,s12 00101110101001001111ssssssSSSSSS.  */
-{ "vmax2h", 0x2EA4F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vmax2h", 0x2EA4F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vmax2h a,limm,limm 00101110001001001111111110AAAAAA.  */
-{ "vmax2h", 0x2E24FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vmax2h", 0x2E24FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vmax2h 0,limm,limm 00101110001001001111111110111110.  */
-{ "vmax2h", 0x2E24FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vmax2h", 0x2E24FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vmax2h<.cc> 0,limm,limm 001011101110010011111111100QQQQQ.  */
-{ "vmax2h", 0x2EE4FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vmax2h", 0x2EE4FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmin2h a,b,c 00101bbb001001011BBBCCCCCCAAAAAA.  */
-{ "vmin2h", 0x28258000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vmin2h", 0x28258000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vmin2h 0,b,c 00101bbb001001011BBBCCCCCC111110.  */
-{ "vmin2h", 0x2825803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vmin2h", 0x2825803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vmin2h<.cc> b,b,c 00101bbb111001011BBBCCCCCC0QQQQQ.  */
-{ "vmin2h", 0x28E58000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vmin2h", 0x28E58000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vmin2h a,b,u6 00101bbb011001011BBBuuuuuuAAAAAA.  */
-{ "vmin2h", 0x28658000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vmin2h", 0x28658000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vmin2h 0,b,u6 00101bbb011001011BBBuuuuuu111110.  */
-{ "vmin2h", 0x2865803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vmin2h", 0x2865803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vmin2h<.cc> b,b,u6 00101bbb111001011BBBuuuuuu1QQQQQ.  */
-{ "vmin2h", 0x28E58020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vmin2h", 0x28E58020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vmin2h b,b,s12 00101bbb101001011BBBssssssSSSSSS.  */
-{ "vmin2h", 0x28A58000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vmin2h", 0x28A58000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vmin2h a,limm,c 00101110001001011111CCCCCCAAAAAA.  */
-{ "vmin2h", 0x2E25F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vmin2h", 0x2E25F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vmin2h a,b,limm 00101bbb001001011BBB111110AAAAAA.  */
-{ "vmin2h", 0x28258F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vmin2h", 0x28258F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vmin2h 0,limm,c 00101110011001011111CCCCCC111110.  */
-{ "vmin2h", 0x2E65F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vmin2h", 0x2E65F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vmin2h 0,b,limm 00101bbb001001011BBB111110111110.  */
-{ "vmin2h", 0x28258FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vmin2h", 0x28258FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vmin2h<.cc> b,b,limm 00101bbb111001011BBB1111100QQQQQ.  */
-{ "vmin2h", 0x28E58F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vmin2h", 0x28E58F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vmin2h<.cc> 0,limm,c 00101110111001011111CCCCCC0QQQQQ.  */
-{ "vmin2h", 0x2EE5F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vmin2h", 0x2EE5F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vmin2h a,limm,u6 00101110011001011111uuuuuuAAAAAA.  */
-{ "vmin2h", 0x2E65F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vmin2h", 0x2E65F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmin2h 0,limm,u6 00101110011001011111uuuuuu111110.  */
-{ "vmin2h", 0x2E65F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vmin2h", 0x2E65F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmin2h<.cc> 0,limm,u6 00101110111001011111uuuuuu1QQQQQ.  */
-{ "vmin2h", 0x2EE5F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vmin2h", 0x2EE5F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vmin2h 0,limm,s12 00101110101001011111ssssssSSSSSS.  */
-{ "vmin2h", 0x2EA5F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vmin2h", 0x2EA5F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vmin2h a,limm,limm 00101110001001011111111110AAAAAA.  */
-{ "vmin2h", 0x2E25FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vmin2h", 0x2E25FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vmin2h 0,limm,limm 00101110001001011111111110111110.  */
-{ "vmin2h", 0x2E25FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vmin2h", 0x2E25FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vmin2h<.cc> 0,limm,limm 001011101110010111111111100QQQQQ.  */
-{ "vmin2h", 0x2EE5FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vmin2h", 0x2EE5FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmpy2h a,b,c 00101bbb000111000BBBCCCCCCAAAAAA.  */
-{ "vmpy2h", 0x281C0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vmpy2h", 0x281C0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vmpy2h 0,b,c 00101bbb000111000BBBCCCCCC111110.  */
-{ "vmpy2h", 0x281C003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vmpy2h", 0x281C003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vmpy2h<.cc> b,b,c 00101bbb110111000BBBCCCCCC0QQQQQ.  */
-{ "vmpy2h", 0x28DC0000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vmpy2h", 0x28DC0000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vmpy2h a,b,c 00101bbb000111000BBBCCCCCCAAAAAA.  */
 { "vmpy2h", 0x281C0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, MPY, MPY8E, { RA_CHK, RB, RC }, { 0 }},
@@ -16813,124 +18168,124 @@
 { "vmpy2h", 0x2EDC7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2HS, MPY, MPY8E, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmpy2hf a,b,c 00101bbb000111001BBBCCCCCCAAAAAA.  */
-{ "vmpy2hf", 0x281C8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vmpy2hf", 0x281C8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vmpy2hf 0,b,c 00101bbb000111001BBBCCCCCC111110.  */
-{ "vmpy2hf", 0x281C803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vmpy2hf", 0x281C803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vmpy2hf<.cc> b,b,c 00101bbb110111001BBBCCCCCC0QQQQQ.  */
-{ "vmpy2hf", 0x28DC8000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vmpy2hf", 0x28DC8000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vmpy2hf a,b,u6 00101bbb010111001BBBuuuuuuAAAAAA.  */
-{ "vmpy2hf", 0x285C8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vmpy2hf", 0x285C8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vmpy2hf 0,b,u6 00101bbb010111001BBBuuuuuu111110.  */
-{ "vmpy2hf", 0x285C803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vmpy2hf", 0x285C803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vmpy2hf<.cc> b,b,u6 00101bbb110111001BBBuuuuuu1QQQQQ.  */
-{ "vmpy2hf", 0x28DC8020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vmpy2hf", 0x28DC8020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vmpy2hf b,b,s12 00101bbb100111001BBBssssssSSSSSS.  */
-{ "vmpy2hf", 0x289C8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vmpy2hf", 0x289C8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vmpy2hf a,limm,c 00101110000111001111CCCCCCAAAAAA.  */
-{ "vmpy2hf", 0x2E1CF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vmpy2hf", 0x2E1CF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vmpy2hf a,b,limm 00101bbb000111001BBB111110AAAAAA.  */
-{ "vmpy2hf", 0x281C8F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vmpy2hf", 0x281C8F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vmpy2hf 0,limm,c 00101110000111001111CCCCCC111110.  */
-{ "vmpy2hf", 0x2E1CF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vmpy2hf", 0x2E1CF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vmpy2hf 0,b,limm 00101bbb000111001BBB111110111110.  */
-{ "vmpy2hf", 0x281C8FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vmpy2hf", 0x281C8FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vmpy2hf<.cc> b,b,limm 00101bbb110111001BBB1111100QQQQQ.  */
-{ "vmpy2hf", 0x28DC8F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vmpy2hf", 0x28DC8F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vmpy2hf<.cc> 0,limm,c 00101110110111001111CCCCCC0QQQQQ.  */
-{ "vmpy2hf", 0x2EDCF000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vmpy2hf", 0x2EDCF000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vmpy2hf a,limm,u6 00101110010111001111uuuuuuAAAAAA.  */
-{ "vmpy2hf", 0x2E5CF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vmpy2hf", 0x2E5CF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmpy2hf 0,limm,u6 00101110010111001111uuuuuu111110.  */
-{ "vmpy2hf", 0x2E5CF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vmpy2hf", 0x2E5CF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmpy2hf<.cc> 0,limm,u6 00101110110111001111uuuuuu1QQQQQ.  */
-{ "vmpy2hf", 0x2EDCF020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vmpy2hf", 0x2EDCF020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vmpy2hf 0,limm,s12 00101110100111001111ssssssSSSSSS.  */
-{ "vmpy2hf", 0x2E9CF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vmpy2hf", 0x2E9CF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vmpy2hf a,limm,limm 00101110000111001111111110AAAAAA.  */
-{ "vmpy2hf", 0x2E1CFF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vmpy2hf", 0x2E1CFF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vmpy2hf 0,limm,limm 00101110000111001111111110111110.  */
-{ "vmpy2hf", 0x2E1CFFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vmpy2hf", 0x2E1CFFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vmpy2hf<.cc> 0,limm,limm 001011101101110011111111100QQQQQ.  */
-{ "vmpy2hf", 0x2EDCFF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vmpy2hf", 0x2EDCFF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmpy2hfr a,b,c 00101bbb000111011BBBCCCCCCAAAAAA.  */
-{ "vmpy2hfr", 0x281D8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vmpy2hfr", 0x281D8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vmpy2hfr 0,b,c 00101bbb000111011BBBCCCCCC111110.  */
-{ "vmpy2hfr", 0x281D803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vmpy2hfr", 0x281D803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vmpy2hfr<.cc> b,b,c 00101bbb110111011BBBCCCCCC0QQQQQ.  */
-{ "vmpy2hfr", 0x28DD8000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vmpy2hfr", 0x28DD8000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vmpy2hfr a,b,u6 00101bbb010111011BBBuuuuuuAAAAAA.  */
-{ "vmpy2hfr", 0x285D8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vmpy2hfr", 0x285D8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vmpy2hfr 0,b,u6 00101bbb010111011BBBuuuuuu111110.  */
-{ "vmpy2hfr", 0x285D803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vmpy2hfr", 0x285D803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vmpy2hfr<.cc> b,b,u6 00101bbb110111011BBBuuuuuu1QQQQQ.  */
-{ "vmpy2hfr", 0x28DD8020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vmpy2hfr", 0x28DD8020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vmpy2hfr b,b,s12 00101bbb100111011BBBssssssSSSSSS.  */
-{ "vmpy2hfr", 0x289D8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vmpy2hfr", 0x289D8000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vmpy2hfr a,limm,c 00101110000111011111CCCCCCAAAAAA.  */
-{ "vmpy2hfr", 0x2E1DF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vmpy2hfr", 0x2E1DF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vmpy2hfr a,b,limm 00101bbb000111011BBB111110AAAAAA.  */
-{ "vmpy2hfr", 0x281D8F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vmpy2hfr", 0x281D8F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vmpy2hfr 0,limm,c 00101110000111011111CCCCCC111110.  */
-{ "vmpy2hfr", 0x2E1DF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vmpy2hfr", 0x2E1DF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vmpy2hfr 0,b,limm 00101bbb000111011BBB111110111110.  */
-{ "vmpy2hfr", 0x281D8FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vmpy2hfr", 0x281D8FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vmpy2hfr<.cc> b,b,limm 00101bbb110111011BBB1111100QQQQQ.  */
-{ "vmpy2hfr", 0x28DD8F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vmpy2hfr", 0x28DD8F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vmpy2hfr<.cc> 0,limm,c 00101110110111011111CCCCCC0QQQQQ.  */
-{ "vmpy2hfr", 0x2EDDF000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vmpy2hfr", 0x2EDDF000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vmpy2hfr a,limm,u6 00101110010111011111uuuuuuAAAAAA.  */
-{ "vmpy2hfr", 0x2E5DF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vmpy2hfr", 0x2E5DF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmpy2hfr 0,limm,u6 00101110010111011111uuuuuu111110.  */
-{ "vmpy2hfr", 0x2E5DF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vmpy2hfr", 0x2E5DF03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmpy2hfr<.cc> 0,limm,u6 00101110110111011111uuuuuu1QQQQQ.  */
-{ "vmpy2hfr", 0x2EDDF020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vmpy2hfr", 0x2EDDF020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vmpy2hfr 0,limm,s12 00101110100111011111ssssssSSSSSS.  */
-{ "vmpy2hfr", 0x2E9DF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vmpy2hfr", 0x2E9DF000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vmpy2hfr a,limm,limm 00101110000111011111111110AAAAAA.  */
-{ "vmpy2hfr", 0x2E1DFF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vmpy2hfr", 0x2E1DFF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vmpy2hfr 0,limm,limm 00101110000111011111111110111110.  */
-{ "vmpy2hfr", 0x2E1DFFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vmpy2hfr", 0x2E1DFFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vmpy2hfr<.cc> 0,limm,limm 001011101101110111111111100QQQQQ.  */
-{ "vmpy2hfr", 0x2EDDFF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vmpy2hfr", 0x2EDDFF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmpy2hu a,b,c 00101bbb000111010BBBCCCCCCAAAAAA.  */
 { "vmpy2hu", 0x281D0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
@@ -17053,370 +18408,622 @@
 { "vmpy2hu", 0x2EDD7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2HS, MPY, MPY8E, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmpy2hwf a,b,c 00101bbb001000000BBBCCCCCCAAAAAA.  */
-{ "vmpy2hwf", 0x28200000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vmpy2hwf", 0x28200000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vmpy2hwf 0,b,c 00101bbb001000000BBBCCCCCC111110.  */
-{ "vmpy2hwf", 0x2820003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vmpy2hwf", 0x2820003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vmpy2hwf<.cc> b,b,c 00101bbb111000000BBBCCCCCC0QQQQQ.  */
-{ "vmpy2hwf", 0x28E00000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vmpy2hwf", 0x28E00000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vmpy2hwf a,b,u6 00101bbb011000000BBBuuuuuuAAAAAA.  */
-{ "vmpy2hwf", 0x28600000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vmpy2hwf", 0x28600000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vmpy2hwf 0,b,u6 00101bbb011000000BBBuuuuuu111110.  */
-{ "vmpy2hwf", 0x2860003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vmpy2hwf", 0x2860003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vmpy2hwf<.cc> b,b,u6 00101bbb111000000BBBuuuuuu1QQQQQ.  */
-{ "vmpy2hwf", 0x28E00020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vmpy2hwf", 0x28E00020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vmpy2hwf b,b,s12 00101bbb101000000BBBssssssSSSSSS.  */
-{ "vmpy2hwf", 0x28A00000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vmpy2hwf", 0x28A00000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vmpy2hwf a,limm,c 00101110001000000111CCCCCCAAAAAA.  */
-{ "vmpy2hwf", 0x2E207000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vmpy2hwf", 0x2E207000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vmpy2hwf a,b,limm 00101bbb001000000BBB111110AAAAAA.  */
-{ "vmpy2hwf", 0x28200F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vmpy2hwf", 0x28200F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vmpy2hwf 0,limm,c 00101110011000000111CCCCCC111110.  */
-{ "vmpy2hwf", 0x2E60703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vmpy2hwf", 0x2E60703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vmpy2hwf 0,b,limm 00101bbb001000000BBB111110111110.  */
-{ "vmpy2hwf", 0x28200FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vmpy2hwf", 0x28200FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vmpy2hwf<.cc> b,b,limm 00101bbb111000000BBB1111100QQQQQ.  */
-{ "vmpy2hwf", 0x28E00F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vmpy2hwf", 0x28E00F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vmpy2hwf<.cc> 0,limm,c 00101110111000000111CCCCCC0QQQQQ.  */
-{ "vmpy2hwf", 0x2EE07000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vmpy2hwf", 0x2EE07000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vmpy2hwf a,limm,u6 00101110011000000111uuuuuuAAAAAA.  */
-{ "vmpy2hwf", 0x2E607000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vmpy2hwf", 0x2E607000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmpy2hwf 0,limm,u6 00101110011000000111uuuuuu111110.  */
-{ "vmpy2hwf", 0x2E60703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vmpy2hwf", 0x2E60703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmpy2hwf<.cc> 0,limm,u6 00101110111000000111uuuuuu1QQQQQ.  */
-{ "vmpy2hwf", 0x2EE07020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vmpy2hwf", 0x2EE07020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vmpy2hwf 0,limm,s12 00101110101000000111ssssssSSSSSS.  */
-{ "vmpy2hwf", 0x2EA07000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vmpy2hwf", 0x2EA07000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vmpy2hwf a,limm,limm 00101110001000000111111110AAAAAA.  */
-{ "vmpy2hwf", 0x2E207F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vmpy2hwf", 0x2E207F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vmpy2hwf 0,limm,limm 00101110001000000111111110111110.  */
-{ "vmpy2hwf", 0x2E207FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vmpy2hwf", 0x2E207FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vmpy2hwf<.cc> 0,limm,limm 001011101110000001111111100QQQQQ.  */
-{ "vmpy2hwf", 0x2EE07F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vmpy2hwf", 0x2EE07F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmsub2hf a,b,c 00110bbb000001000BBBCCCCCCAAAAAA.  */
-{ "vmsub2hf", 0x30040000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vmsub2hf", 0x30040000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vmsub2hf 0,b,c 00110bbb000001000BBBCCCCCC111110.  */
-{ "vmsub2hf", 0x3004003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vmsub2hf", 0x3004003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vmsub2hf<.cc> b,b,c 00110bbb110001000BBBCCCCCC0QQQQQ.  */
-{ "vmsub2hf", 0x30C40000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vmsub2hf", 0x30C40000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vmsub2hf a,b,u6 00110bbb010001000BBBuuuuuuAAAAAA.  */
-{ "vmsub2hf", 0x30440000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vmsub2hf", 0x30440000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vmsub2hf 0,b,u6 00110bbb010001000BBBuuuuuu111110.  */
-{ "vmsub2hf", 0x3044003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vmsub2hf", 0x3044003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vmsub2hf<.cc> b,b,u6 00110bbb110001000BBBuuuuuu1QQQQQ.  */
-{ "vmsub2hf", 0x30C40020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vmsub2hf", 0x30C40020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vmsub2hf b,b,s12 00110bbb100001000BBBssssssSSSSSS.  */
-{ "vmsub2hf", 0x30840000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vmsub2hf", 0x30840000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vmsub2hf a,limm,c 00110110000001000111CCCCCCAAAAAA.  */
-{ "vmsub2hf", 0x36047000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vmsub2hf", 0x36047000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vmsub2hf a,b,limm 00110bbb000001000BBB111110AAAAAA.  */
-{ "vmsub2hf", 0x30040F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vmsub2hf", 0x30040F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vmsub2hf 0,limm,c 00110110000001000111CCCCCC111110.  */
-{ "vmsub2hf", 0x3604703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vmsub2hf", 0x3604703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vmsub2hf 0,b,limm 00110bbb000001000BBB111110111110.  */
-{ "vmsub2hf", 0x30040FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vmsub2hf", 0x30040FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vmsub2hf<.cc> b,b,limm 00110bbb110001000BBB1111100QQQQQ.  */
-{ "vmsub2hf", 0x30C40F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vmsub2hf", 0x30C40F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vmsub2hf<.cc> 0,limm,c 00110110110001000111CCCCCC0QQQQQ.  */
-{ "vmsub2hf", 0x36C47000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vmsub2hf", 0x36C47000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vmsub2hf a,limm,u6 00110110010001000111uuuuuuAAAAAA.  */
-{ "vmsub2hf", 0x36447000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vmsub2hf", 0x36447000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmsub2hf 0,limm,u6 00110110010001000111uuuuuu111110.  */
-{ "vmsub2hf", 0x3644703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vmsub2hf", 0x3644703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmsub2hf<.cc> 0,limm,u6 00110110110001000111uuuuuu1QQQQQ.  */
-{ "vmsub2hf", 0x36C47020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vmsub2hf", 0x36C47020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vmsub2hf 0,limm,s12 00110110100001000111ssssssSSSSSS.  */
-{ "vmsub2hf", 0x36847000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vmsub2hf", 0x36847000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vmsub2hf a,limm,limm 00110110000001000111111110AAAAAA.  */
-{ "vmsub2hf", 0x36047F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vmsub2hf", 0x36047F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vmsub2hf 0,limm,limm 00110110000001000111111110111110.  */
-{ "vmsub2hf", 0x36047FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vmsub2hf", 0x36047FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vmsub2hf<.cc> 0,limm,limm 001101101100010001111111100QQQQQ.  */
-{ "vmsub2hf", 0x36C47F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vmsub2hf", 0x36C47F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmsub2hfr a,b,c 00110bbb000000110BBBCCCCCCAAAAAA.  */
-{ "vmsub2hfr", 0x30030000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vmsub2hfr", 0x30030000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vmsub2hfr 0,b,c 00110bbb000000110BBBCCCCCC111110.  */
-{ "vmsub2hfr", 0x3003003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vmsub2hfr", 0x3003003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vmsub2hfr<.cc> b,b,c 00110bbb110000110BBBCCCCCC0QQQQQ.  */
-{ "vmsub2hfr", 0x30C30000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vmsub2hfr", 0x30C30000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vmsub2hfr a,b,u6 00110bbb010000110BBBuuuuuuAAAAAA.  */
-{ "vmsub2hfr", 0x30430000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vmsub2hfr", 0x30430000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vmsub2hfr 0,b,u6 00110bbb010000110BBBuuuuuu111110.  */
-{ "vmsub2hfr", 0x3043003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vmsub2hfr", 0x3043003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vmsub2hfr<.cc> b,b,u6 00110bbb110000110BBBuuuuuu1QQQQQ.  */
-{ "vmsub2hfr", 0x30C30020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vmsub2hfr", 0x30C30020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vmsub2hfr b,b,s12 00110bbb100000110BBBssssssSSSSSS.  */
-{ "vmsub2hfr", 0x30830000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vmsub2hfr", 0x30830000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vmsub2hfr a,limm,c 00110110000000110111CCCCCCAAAAAA.  */
-{ "vmsub2hfr", 0x36037000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vmsub2hfr", 0x36037000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vmsub2hfr a,b,limm 00110bbb000000110BBB111110AAAAAA.  */
-{ "vmsub2hfr", 0x30030F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vmsub2hfr", 0x30030F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vmsub2hfr 0,limm,c 00110110000000110111CCCCCC111110.  */
-{ "vmsub2hfr", 0x3603703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vmsub2hfr", 0x3603703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vmsub2hfr 0,b,limm 00110bbb000000110BBB111110111110.  */
-{ "vmsub2hfr", 0x30030FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vmsub2hfr", 0x30030FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vmsub2hfr<.cc> b,b,limm 00110bbb110000110BBB1111100QQQQQ.  */
-{ "vmsub2hfr", 0x30C30F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vmsub2hfr", 0x30C30F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vmsub2hfr<.cc> 0,limm,c 00110110110000110111CCCCCC0QQQQQ.  */
-{ "vmsub2hfr", 0x36C37000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vmsub2hfr", 0x36C37000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vmsub2hfr a,limm,u6 00110110010000110111uuuuuuAAAAAA.  */
-{ "vmsub2hfr", 0x36437000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vmsub2hfr", 0x36437000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmsub2hfr 0,limm,u6 00110110010000110111uuuuuu111110.  */
-{ "vmsub2hfr", 0x3643703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vmsub2hfr", 0x3643703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmsub2hfr<.cc> 0,limm,u6 00110110110000110111uuuuuu1QQQQQ.  */
-{ "vmsub2hfr", 0x36C37020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vmsub2hfr", 0x36C37020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vmsub2hfr 0,limm,s12 00110110100000110111ssssssSSSSSS.  */
-{ "vmsub2hfr", 0x36837000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vmsub2hfr", 0x36837000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vmsub2hfr a,limm,limm 00110110000000110111111110AAAAAA.  */
-{ "vmsub2hfr", 0x36037F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vmsub2hfr", 0x36037F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vmsub2hfr 0,limm,limm 00110110000000110111111110111110.  */
-{ "vmsub2hfr", 0x36037FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vmsub2hfr", 0x36037FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vmsub2hfr<.cc> 0,limm,limm 001101101100001101111111100QQQQQ.  */
-{ "vmsub2hfr", 0x36C37F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vmsub2hfr", 0x36C37F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vmsub2hnfr a,b,c 00110bbb000100011BBBCCCCCCAAAAAA.  */
-{ "vmsub2hnfr", 0x30118000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vmsub2hnfr", 0x30118000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vmsub2hnfr 0,b,c 00110bbb000100011BBBCCCCCC111110.  */
-{ "vmsub2hnfr", 0x3011803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vmsub2hnfr", 0x3011803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vmsub2hnfr<.cc> b,b,c 00110bbb110100011BBBCCCCCC0QQQQQ.  */
-{ "vmsub2hnfr", 0x30D18000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vmsub2hnfr", 0x30D18000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vmsub2hnfr a,b,u6 00110bbb010100011BBBuuuuuuAAAAAA.  */
-{ "vmsub2hnfr", 0x30518000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vmsub2hnfr", 0x30518000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vmsub2hnfr 0,b,u6 00110bbb010100011BBBuuuuuu111110.  */
-{ "vmsub2hnfr", 0x3051803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vmsub2hnfr", 0x3051803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vmsub2hnfr<.cc> b,b,u6 00110bbb110100011BBBuuuuuu1QQQQQ.  */
-{ "vmsub2hnfr", 0x30D18020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vmsub2hnfr", 0x30D18020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vmsub2hnfr b,b,s12 00110bbb100100011BBBssssssSSSSSS.  */
-{ "vmsub2hnfr", 0x30918000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vmsub2hnfr", 0x30918000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vmsub2hnfr a,limm,c 00110110000100011111CCCCCCAAAAAA.  */
-{ "vmsub2hnfr", 0x3611F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vmsub2hnfr", 0x3611F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vmsub2hnfr a,b,limm 00110bbb000100011BBB111110AAAAAA.  */
-{ "vmsub2hnfr", 0x30118F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vmsub2hnfr", 0x30118F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vmsub2hnfr 0,limm,c 00110110000100011111CCCCCC111110.  */
-{ "vmsub2hnfr", 0x3611F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vmsub2hnfr", 0x3611F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vmsub2hnfr 0,b,limm 00110bbb000100011BBB111110111110.  */
-{ "vmsub2hnfr", 0x30118FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vmsub2hnfr", 0x30118FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vmsub2hnfr<.cc> b,b,limm 00110bbb110100011BBB1111100QQQQQ.  */
-{ "vmsub2hnfr", 0x30D18F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vmsub2hnfr", 0x30D18F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vmsub2hnfr<.cc> 0,limm,c 00110110110100011111CCCCCC0QQQQQ.  */
-{ "vmsub2hnfr", 0x36D1F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vmsub2hnfr", 0x36D1F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vmsub2hnfr a,limm,u6 00110110010100011111uuuuuuAAAAAA.  */
-{ "vmsub2hnfr", 0x3651F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vmsub2hnfr", 0x3651F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmsub2hnfr 0,limm,u6 00110110010100011111uuuuuu111110.  */
-{ "vmsub2hnfr", 0x3651F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vmsub2hnfr", 0x3651F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vmsub2hnfr<.cc> 0,limm,u6 00110110110100011111uuuuuu1QQQQQ.  */
-{ "vmsub2hnfr", 0x36D1F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vmsub2hnfr", 0x36D1F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vmsub2hnfr 0,limm,s12 00110110100100011111ssssssSSSSSS.  */
-{ "vmsub2hnfr", 0x3691F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vmsub2hnfr", 0x3691F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vmsub2hnfr a,limm,limm 00110110000100011111111110AAAAAA.  */
-{ "vmsub2hnfr", 0x3611FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vmsub2hnfr", 0x3611FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vmsub2hnfr 0,limm,limm 00110110000100011111111110111110.  */
-{ "vmsub2hnfr", 0x3611FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vmsub2hnfr", 0x3611FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vmsub2hnfr<.cc> 0,limm,limm 001101101101000111111111100QQQQQ.  */
-{ "vmsub2hnfr", 0x36D1FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vmsub2hnfr", 0x36D1FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vneg2h b,c 00101bbb001011110BBBCCCCCC101010.  */
-{ "vneg2h", 0x282F002A, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { 0 }},
+{ "vneg2h", 0x282F002A, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { 0 }},
 
 /* vneg2h 0,c 00101110001011110111CCCCCC101010.  */
-{ "vneg2h", 0x2E2F702A, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { 0 }},
+{ "vneg2h", 0x2E2F702A, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
 
 /* vneg2h b,u6 00101bbb011011110BBBuuuuuu101010.  */
-{ "vneg2h", 0x286F002A, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
+{ "vneg2h", 0x286F002A, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
 
 /* vneg2h 0,u6 00101110011011110111uuuuuu101010.  */
-{ "vneg2h", 0x2E6F702A, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+{ "vneg2h", 0x2E6F702A, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
 
 /* vneg2h b,limm 00101bbb001011110BBB111110101010.  */
-{ "vneg2h", 0x282F0FAA, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
+{ "vneg2h", 0x282F0FAA, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
 
 /* vneg2h 0,limm 00101110001011110111111110101010.  */
-{ "vneg2h", 0x2E2F7FAA, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { 0 }},
+{ "vneg2h", 0x2E2F7FAA, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
 
 /* vnegs2h b,c 00101bbb001011110BBBCCCCCC101011.  */
-{ "vnegs2h", 0x282F002B, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { 0 }},
+{ "vnegs2h", 0x282F002B, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { 0 }},
 
 /* vnegs2h 0,c 00101110001011110111CCCCCC101011.  */
-{ "vnegs2h", 0x2E2F702B, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { 0 }},
+{ "vnegs2h", 0x2E2F702B, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
 
 /* vnegs2h b,u6 00101bbb011011110BBBuuuuuu101011.  */
-{ "vnegs2h", 0x286F002B, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
+{ "vnegs2h", 0x286F002B, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
 
 /* vnegs2h 0,u6 00101110011011110111uuuuuu101011.  */
-{ "vnegs2h", 0x2E6F702B, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+{ "vnegs2h", 0x2E6F702B, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
 
 /* vnegs2h b,limm 00101bbb001011110BBB111110101011.  */
-{ "vnegs2h", 0x282F0FAB, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
+{ "vnegs2h", 0x282F0FAB, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
 
 /* vnegs2h 0,limm 00101110001011110111111110101011.  */
-{ "vnegs2h", 0x2E2F7FAB, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { 0 }},
+{ "vnegs2h", 0x2E2F7FAB, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
 
 /* vnorm2h b,c 00101bbb001011110BBBCCCCCC101100.  */
-{ "vnorm2h", 0x282F002C, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { 0 }},
+{ "vnorm2h", 0x282F002C, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { 0 }},
 
 /* vnorm2h 0,c 00101110001011110111CCCCCC101100.  */
-{ "vnorm2h", 0x2E2F702C, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { 0 }},
+{ "vnorm2h", 0x2E2F702C, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
 
 /* vnorm2h b,u6 00101bbb011011110BBBuuuuuu101100.  */
-{ "vnorm2h", 0x286F002C, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
+{ "vnorm2h", 0x286F002C, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
 
 /* vnorm2h 0,u6 00101110011011110111uuuuuu101100.  */
-{ "vnorm2h", 0x2E6F702C, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+{ "vnorm2h", 0x2E6F702C, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
 
 /* vnorm2h b,limm 00101bbb001011110BBB111110101100.  */
-{ "vnorm2h", 0x282F0FAC, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
+{ "vnorm2h", 0x282F0FAC, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
 
 /* vnorm2h 0,limm 00101110001011110111111110101100.  */
-{ "vnorm2h", 0x2E2F7FAC, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { 0 }},
+{ "vnorm2h", 0x2E2F7FAC, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
+
+/* vpack2hbl b,c 00101bbb001011110BBBCCCCCC011100 */
+{ "vpack2hbl", 0x282F001C, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RC }, { 0 }},
+
+/* vpack2hbl 0,c 00101110001011110111CCCCCC011100 */
+{ "vpack2hbl", 0x2E2F701C, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
+
+/* vpack2hbl 0,u6 00101110011011110111uuuuuu011100 */
+{ "vpack2hbl", 0x2E6F701C, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+
+/* vpack2hbl b,u6 00101bbb011011110BBBuuuuuu011100 */
+{ "vpack2hbl", 0x286F001C, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, UIMM6_20 }, { 0 }},
+
+/* vpack2hbl 0,limm 00101110001011110111111110011100 */
+{ "vpack2hbl", 0x2E2F7F9C, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
+
+/* vpack2hbl b,limm 00101bbb001011110BBB111110011100 */
+{ "vpack2hbl", 0x282F0F9C, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, LIMM }, { 0 }},
+
+/* vpack2hblf b,c 00101bbb001011110BBBCCCCCC011110 */
+{ "vpack2hblf", 0x282F001E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RC }, { 0 }},
+
+/* vpack2hblf 0,c 00101110001011110111CCCCCC011110 */
+{ "vpack2hblf", 0x2E2F701E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
+
+/* vpack2hblf 0,u6 00101110011011110111uuuuuu011110 */
+{ "vpack2hblf", 0x2E6F701E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+
+/* vpack2hblf b,u6 00101bbb011011110BBBuuuuuu011110 */
+{ "vpack2hblf", 0x286F001E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, UIMM6_20 }, { 0 }},
+
+/* vpack2hblf b,limm 00101bbb001011110BBB111110011110 */
+{ "vpack2hblf", 0x282F0F9E, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, LIMM }, { 0 }},
+
+/* vpack2hblf 0,limm 00101110001011110111111110011110 */
+{ "vpack2hblf", 0x2E2F7F9E, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
+
+/* vpack2hbm b,c 00101bbb001011110BBBCCCCCC011101 */
+{ "vpack2hbm", 0x282F001D, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RC }, { 0 }},
+
+/* vpack2hbm 0,c 00101110001011110111CCCCCC011101 */
+{ "vpack2hbm", 0x2E2F701D, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
+
+/* vpack2hbm b,u6 00101bbb011011110BBBuuuuuu011101 */
+{ "vpack2hbm", 0x286F001D, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, UIMM6_20 }, { 0 }},
+
+/* vpack2hbm 0,u6 00101110011011110111uuuuuu011101 */
+{ "vpack2hbm", 0x2E6F701D, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+
+/* vpack2hbm 0,limm 00101110001011110111111110011101 */
+{ "vpack2hbm", 0x2E2F7F9D, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
+
+/* vpack2hbm b,limm 00101bbb001011110BBB111110011101 */
+{ "vpack2hbm", 0x282F0F9D, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, LIMM }, { 0 }},
+
+/* vpack2hbmf 0,c 00101110001011110111CCCCCC011111 */
+{ "vpack2hbmf", 0x2E2F701F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
+
+/* vpack2hbmf b,c 00101bbb001011110BBBCCCCCC011111 */
+{ "vpack2hbmf", 0x282F001F, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RC }, { 0 }},
+
+/* vpack2hbmf b,u6 00101bbb011011110BBBuuuuuu011111 */
+{ "vpack2hbmf", 0x286F001F, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, UIMM6_20 }, { 0 }},
+
+/* vpack2hbmf 0,u6 00101110011011110111uuuuuu011111 */
+{ "vpack2hbmf", 0x2E6F701F, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+
+/* vpack2hbmf 0,limm 00101110001011110111111110011111 */
+{ "vpack2hbmf", 0x2E2F7F9F, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
+
+/* vpack2hbmf b,limm 00101bbb001011110BBB111110011111 */
+{ "vpack2hbmf", 0x282F0F9F, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, LIMM }, { 0 }},
+
+/* vpack2hl 0,b,c 00101bbb001010010BBBCCCCCC111110 */
+{ "vpack2hl", 0x2829003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
+
+/* vpack2hl a,b,c 00101bbb001010010BBBCCCCCCAAAAAA */
+{ "vpack2hl", 0x28290000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, RC }, { 0 }},
+
+/* vpack2hl<.cc> b,b,c 00101bbb111010010BBBCCCCCC0QQQQQ */
+{ "vpack2hl", 0x28E90000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, RC }, { C_CC }},
+
+/* vpack2hl<.cc> b,b,u6 00101bbb111010010BBBuuuuuu1QQQQQ */
+{ "vpack2hl", 0x28E90020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, UIMM6_20 }, { C_CC }},
+
+/* vpack2hl a,b,u6 00101bbb011010010BBBuuuuuuAAAAAA */
+{ "vpack2hl", 0x28690000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, UIMM6_20 }, { 0 }},
+
+/* vpack2hl 0,b,u6 00101bbb011010010BBBuuuuuu111110 */
+{ "vpack2hl", 0x2869003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+
+/* vpack2hl b,b,s12 00101bbb101010010BBBssssssSSSSSS */
+{ "vpack2hl", 0x28A90000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, SIMM12_20 }, { 0 }},
+
+/* vpack2hl<.cc> 0,limm,c 00101110111010010111CCCCCC0QQQQQ */
+{ "vpack2hl", 0x2EE97000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+
+/* vpack2hl 0,limm,c 00101110011010010111CCCCCC111110 */
+{ "vpack2hl", 0x2E69703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+
+/* vpack2hl a,b,limm 00101bbb001010010BBB111110AAAAAA */
+{ "vpack2hl", 0x28290F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, LIMM }, { 0 }},
+
+/* vpack2hl a,limm,c 00101110001010010111CCCCCCAAAAAA */
+{ "vpack2hl", 0x2E297000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, RC }, { 0 }},
+
+/* vpack2hl 0,b,limm 00101bbb001010010BBB111110111110 */
+{ "vpack2hl", 0x28290FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+
+/* vpack2hl<.cc> b,b,limm 00101bbb111010010BBB1111100QQQQQ */
+{ "vpack2hl", 0x28E90F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, LIMM }, { C_CC }},
+
+/* vpack2hl a,limm,u6 00101110011010010111uuuuuuAAAAAA */
+{ "vpack2hl", 0x2E697000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vpack2hl 0,limm,u6 00101110011010010111uuuuuu111110 */
+{ "vpack2hl", 0x2E69703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vpack2hl<.cc> 0,limm,u6 00101110111010010111uuuuuu1QQQQQ */
+{ "vpack2hl", 0x2EE97020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+
+/* vpack2hl 0,limm,s12 00101110101010010111ssssssSSSSSS */
+{ "vpack2hl", 0x2EA97000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+
+/* vpack2hl<.cc> 0,limm,limm 001011101110100101111111100QQQQQ */
+{ "vpack2hl", 0x2EE97F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+
+/* vpack2hl a,limm,limm 00101110001010010111111110AAAAAA */
+{ "vpack2hl", 0x2E297F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, LIMMdup }, { 0 }},
+
+/* vpack2hl 0,limm,limm 00101110001010010111111110111110 */
+{ "vpack2hl", 0x2E297FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+
+/* vpack2hm a,b,c 00101bbb001010011BBBCCCCCCAAAAAA */
+{ "vpack2hm", 0x28298000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, RC }, { 0 }},
+
+/* vpack2hm<.cc> b,b,c 00101bbb111010011BBBCCCCCC0QQQQQ */
+{ "vpack2hm", 0x28E98000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, RC }, { C_CC }},
+
+/* vpack2hm 0,b,c 00101bbb001010011BBBCCCCCC111110 */
+{ "vpack2hm", 0x2829803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
+
+/* vpack2hm a,b,u6 00101bbb011010011BBBuuuuuuAAAAAA */
+{ "vpack2hm", 0x28698000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, UIMM6_20 }, { 0 }},
+
+/* vpack2hm 0,b,u6 00101bbb011010011BBBuuuuuu111110 */
+{ "vpack2hm", 0x2869803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+
+/* vpack2hm<.cc> b,b,u6 00101bbb111010011BBBuuuuuu1QQQQQ */
+{ "vpack2hm", 0x28E98020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, UIMM6_20 }, { C_CC }},
+
+/* vpack2hm b,b,s12 00101bbb101010011BBBssssssSSSSSS */
+{ "vpack2hm", 0x28A98000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, SIMM12_20 }, { 0 }},
+
+/* vpack2hm a,b,limm 00101bbb001010011BBB111110AAAAAA */
+{ "vpack2hm", 0x28298F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, LIMM }, { 0 }},
+
+/* vpack2hm 0,b,limm 00101bbb001010011BBB111110111110 */
+{ "vpack2hm", 0x28298FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+
+/* vpack2hm<.cc> 0,limm,c 00101110111010011111CCCCCC0QQQQQ */
+{ "vpack2hm", 0x2EE9F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+
+/* vpack2hm<.cc> b,b,limm 00101bbb111010011BBB1111100QQQQQ */
+{ "vpack2hm", 0x28E98F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, LIMM }, { C_CC }},
+
+/* vpack2hm a,limm,c 00101110001010011111CCCCCCAAAAAA */
+{ "vpack2hm", 0x2E29F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, RC }, { 0 }},
+
+/* vpack2hm 0,limm,c 00101110011010011111CCCCCC111110 */
+{ "vpack2hm", 0x2E69F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+
+/* vpack2hm a,limm,u6 00101110011010011111uuuuuuAAAAAA */
+{ "vpack2hm", 0x2E69F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vpack2hm 0,limm,u6 00101110011010011111uuuuuu111110 */
+{ "vpack2hm", 0x2E69F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vpack2hm<.cc> 0,limm,u6 00101110111010011111uuuuuu1QQQQQ */
+{ "vpack2hm", 0x2EE9F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+
+/* vpack2hm 0,limm,s12 00101110101010011111ssssssSSSSSS */
+{ "vpack2hm", 0x2EA9F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+
+/* vpack2hm a,limm,limm 00101110001010011111111110AAAAAA */
+{ "vpack2hm", 0x2E29FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, LIMMdup }, { 0 }},
+
+/* vpack2hm 0,limm,limm 00101110001010011111111110111110 */
+{ "vpack2hm", 0x2E29FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+
+/* vpack2hm<.cc> 0,limm,limm 001011101110100111111111100QQQQQ */
+{ "vpack2hm", 0x2EE9FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+
+/* vperm 0,b,c 00101bbb001011100BBBCCCCCC111110 */
+{ "vperm", 0x282E003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
+
+/* vperm a,b,c 00101bbb001011100BBBCCCCCCAAAAAA */
+{ "vperm", 0x282E0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, RC }, { 0 }},
+
+/* vperm<.cc> b,b,c 00101bbb111011100BBBCCCCCC0QQQQQ */
+{ "vperm", 0x28EE0000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, RC }, { C_CC }},
+
+/* vperm 0,b,u6 00101bbb011011100BBBuuuuuu111110 */
+{ "vperm", 0x286E003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+
+/* vperm<.cc> b,b,u6 00101bbb111011100BBBuuuuuu1QQQQQ */
+{ "vperm", 0x28EE0020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, UIMM6_20 }, { C_CC }},
+
+/* vperm a,b,u6 00101bbb011011100BBBuuuuuuAAAAAA */
+{ "vperm", 0x286E0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, UIMM6_20 }, { 0 }},
+
+/* vperm b,b,s12 00101bbb101011100BBBssssssSSSSSS */
+{ "vperm", 0x28AE0000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, SIMM12_20 }, { 0 }},
+
+/* vperm a,b,limm 00101bbb001011100BBB111110AAAAAA */
+{ "vperm", 0x282E0F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, RB, LIMM }, { 0 }},
+
+/* vperm<.cc> b,b,limm 00101bbb111011100BBB1111100QQQQQ */
+{ "vperm", 0x28EE0F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB, RBdup, LIMM }, { C_CC }},
+
+/* vperm<.cc> 0,limm,c 00101110111011100111CCCCCC0QQQQQ */
+{ "vperm", 0x2EEE7000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+
+/* vperm a,limm,c 00101110001011100111CCCCCCAAAAAA */
+{ "vperm", 0x2E2E7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, RC }, { 0 }},
+
+/* vperm 0,b,limm 00101bbb001011100BBB111110111110 */
+{ "vperm", 0x282E0FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+
+/* vperm 0,limm,c 00101110011011100111CCCCCC111110 */
+{ "vperm", 0x2E6E703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+
+/* vperm<.cc> 0,limm,u6 00101110111011100111uuuuuu1QQQQQ */
+{ "vperm", 0x2EEE7020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+
+/* vperm 0,limm,u6 00101110011011100111uuuuuu111110 */
+{ "vperm", 0x2E6E703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vperm a,limm,u6 00101110011011100111uuuuuuAAAAAA */
+{ "vperm", 0x2E6E7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vperm 0,limm,s12 00101110101011100111ssssssSSSSSS */
+{ "vperm", 0x2EAE7000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+
+/* vperm a,limm,limm 00101110001011100111111110AAAAAA */
+{ "vperm", 0x2E2E7F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA, LIMM, LIMMdup }, { 0 }},
+
+/* vperm 0,limm,limm 00101110001011100111111110111110 */
+{ "vperm", 0x2E2E7FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+
+/* vperm<.cc> 0,limm,limm 001011101110111001111111100QQQQQ */
+{ "vperm", 0x2EEE7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vrep2hl b,c 00101bbb001011110BBBCCCCCC100010.  */
-{ "vrep2hl", 0x282F0022, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { 0 }},
+{ "vrep2hl", 0x282F0022, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { 0 }},
 
 /* vrep2hl 0,c 00101110001011110111CCCCCC100010.  */
-{ "vrep2hl", 0x2E2F7022, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { 0 }},
+{ "vrep2hl", 0x2E2F7022, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
 
 /* vrep2hl b,u6 00101bbb011011110BBBuuuuuu100010.  */
-{ "vrep2hl", 0x286F0022, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
+{ "vrep2hl", 0x286F0022, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
 
 /* vrep2hl 0,u6 00101110011011110111uuuuuu100010.  */
-{ "vrep2hl", 0x2E6F7022, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+{ "vrep2hl", 0x2E6F7022, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
 
 /* vrep2hl b,limm 00101bbb001011110BBB111110100010.  */
-{ "vrep2hl", 0x282F0FA2, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
+{ "vrep2hl", 0x282F0FA2, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
 
 /* vrep2hl 0,limm 00101110001011110111111110100010.  */
-{ "vrep2hl", 0x2E2F7FA2, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { 0 }},
+{ "vrep2hl", 0x2E2F7FA2, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
 
 /* vrep2hm b,c 00101bbb001011110BBBCCCCCC100011.  */
-{ "vrep2hm", 0x282F0023, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { 0 }},
+{ "vrep2hm", 0x282F0023, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { 0 }},
 
 /* vrep2hm 0,c 00101110001011110111CCCCCC100011.  */
-{ "vrep2hm", 0x2E2F7023, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { 0 }},
+{ "vrep2hm", 0x2E2F7023, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
 
 /* vrep2hm b,u6 00101bbb011011110BBBuuuuuu100011.  */
-{ "vrep2hm", 0x286F0023, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
+{ "vrep2hm", 0x286F0023, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
 
 /* vrep2hm 0,u6 00101110011011110111uuuuuu100011.  */
-{ "vrep2hm", 0x2E6F7023, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+{ "vrep2hm", 0x2E6F7023, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
 
 /* vrep2hm b,limm 00101bbb001011110BBB111110100011.  */
-{ "vrep2hm", 0x282F0FA3, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
+{ "vrep2hm", 0x282F0FA3, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
 
 /* vrep2hm 0,limm 00101110001011110111111110100011.  */
-{ "vrep2hm", 0x2E2F7FA3, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { 0 }},
+{ "vrep2hm", 0x2E2F7FA3, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
 
 /* vsext2bhl b,c 00101bbb001011110BBBCCCCCC100110.  */
-{ "vsext2bhl", 0x282F0026, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { 0 }},
+{ "vsext2bhl", 0x282F0026, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { 0 }},
 
 /* vsext2bhl 0,c 00101110001011110111CCCCCC100110.  */
-{ "vsext2bhl", 0x2E2F7026, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { 0 }},
+{ "vsext2bhl", 0x2E2F7026, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
 
 /* vsext2bhl b,u6 00101bbb011011110BBBuuuuuu100110.  */
-{ "vsext2bhl", 0x286F0026, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
+{ "vsext2bhl", 0x286F0026, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
 
 /* vsext2bhl 0,u6 00101110011011110111uuuuuu100110.  */
-{ "vsext2bhl", 0x2E6F7026, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+{ "vsext2bhl", 0x2E6F7026, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
 
 /* vsext2bhl b,limm 00101bbb001011110BBB111110100110.  */
-{ "vsext2bhl", 0x282F0FA6, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
+{ "vsext2bhl", 0x282F0FA6, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
 
 /* vsext2bhl 0,limm 00101110001011110111111110100110.  */
-{ "vsext2bhl", 0x2E2F7FA6, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { 0 }},
+{ "vsext2bhl", 0x2E2F7FA6, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
 
 /* vsext2bhm b,c 00101bbb001011110BBBCCCCCC100111.  */
-{ "vsext2bhm", 0x282F0027, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RC }, { 0 }},
+{ "vsext2bhm", 0x282F0027, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RC }, { 0 }},
 
 /* vsext2bhm 0,c 00101110001011110111CCCCCC100111.  */
-{ "vsext2bhm", 0x2E2F7027, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RC }, { 0 }},
+{ "vsext2bhm", 0x2E2F7027, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RC }, { 0 }},
 
 /* vsext2bhm b,u6 00101bbb011011110BBBuuuuuu100111.  */
-{ "vsext2bhm", 0x286F0027, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
+{ "vsext2bhm", 0x286F0027, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, UIMM6_20 }, { 0 }},
 
 /* vsext2bhm 0,u6 00101110011011110111uuuuuu100111.  */
-{ "vsext2bhm", 0x2E6F7027, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
+{ "vsext2bhm", 0x2E6F7027, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, UIMM6_20 }, { 0 }},
 
 /* vsext2bhm b,limm 00101bbb001011110BBB111110100111.  */
-{ "vsext2bhm", 0x282F0FA7, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
+{ "vsext2bhm", 0x282F0FA7, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, LIMM }, { 0 }},
 
 /* vsext2bhm 0,limm 00101110001011110111111110100111.  */
-{ "vsext2bhm", 0x2E2F7FA7, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM }, { 0 }},
+{ "vsext2bhm", 0x2E2F7FA7, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM }, { 0 }},
 
 /* vsub2 a,b,c 00101bbb001111010BBBCCCCCCAAAAAA.  */
 { "vsub2", 0x283D0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { RA_CHK, RB, RC }, { 0 }},
@@ -17539,64 +19146,64 @@
 { "vsub2h", 0x2ED57F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, MPY, MPY7E, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vsub4b a,b,c 00101bbb001001010BBBCCCCCCAAAAAA.  */
-{ "vsub4b", 0x28250000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vsub4b", 0x28250000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vsub4b 0,b,c 00101bbb001001010BBBCCCCCC111110.  */
-{ "vsub4b", 0x2825003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vsub4b", 0x2825003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vsub4b<.cc> b,b,c 00101bbb111001010BBBCCCCCC0QQQQQ.  */
-{ "vsub4b", 0x28E50000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vsub4b", 0x28E50000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vsub4b a,b,u6 00101bbb011001010BBBuuuuuuAAAAAA.  */
-{ "vsub4b", 0x28650000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vsub4b", 0x28650000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vsub4b 0,b,u6 00101bbb011001010BBBuuuuuu111110.  */
-{ "vsub4b", 0x2865003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vsub4b", 0x2865003E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vsub4b<.cc> b,b,u6 00101bbb111001010BBBuuuuuu1QQQQQ.  */
-{ "vsub4b", 0x28E50020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vsub4b", 0x28E50020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vsub4b b,b,s12 00101bbb101001010BBBssssssSSSSSS.  */
-{ "vsub4b", 0x28A50000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vsub4b", 0x28A50000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vsub4b a,limm,c 00101110001001010111CCCCCCAAAAAA.  */
-{ "vsub4b", 0x2E257000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vsub4b", 0x2E257000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vsub4b a,b,limm 00101bbb001001010BBB111110AAAAAA.  */
-{ "vsub4b", 0x28250F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vsub4b", 0x28250F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vsub4b 0,limm,c 00101110011001010111CCCCCC111110.  */
-{ "vsub4b", 0x2E65703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vsub4b", 0x2E65703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vsub4b 0,b,limm 00101bbb001001010BBB111110111110.  */
-{ "vsub4b", 0x28250FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vsub4b", 0x28250FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vsub4b<.cc> b,b,limm 00101bbb111001010BBB1111100QQQQQ.  */
-{ "vsub4b", 0x28E50F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vsub4b", 0x28E50F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vsub4b<.cc> 0,limm,c 00101110111001010111CCCCCC0QQQQQ.  */
-{ "vsub4b", 0x2EE57000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vsub4b", 0x2EE57000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vsub4b a,limm,u6 00101110011001010111uuuuuuAAAAAA.  */
-{ "vsub4b", 0x2E657000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vsub4b", 0x2E657000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vsub4b 0,limm,u6 00101110011001010111uuuuuu111110.  */
-{ "vsub4b", 0x2E65703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vsub4b", 0x2E65703E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vsub4b<.cc> 0,limm,u6 00101110111001010111uuuuuu1QQQQQ.  */
-{ "vsub4b", 0x2EE57020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vsub4b", 0x2EE57020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vsub4b 0,limm,s12 00101110101001010111ssssssSSSSSS.  */
-{ "vsub4b", 0x2EA57000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vsub4b", 0x2EA57000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vsub4b a,limm,limm 00101110001001010111111110AAAAAA.  */
-{ "vsub4b", 0x2E257F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vsub4b", 0x2E257F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vsub4b 0,limm,limm 00101110001001010111111110111110.  */
-{ "vsub4b", 0x2E257FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vsub4b", 0x2E257FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vsub4b<.cc> 0,limm,limm 001011101110010101111111100QQQQQ.  */
-{ "vsub4b", 0x2EE57F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vsub4b", 0x2EE57F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
 
 /* vsub4h a,b,c 00101bbb001110010BBBCCCCCCAAAAAA.  */
 { "vsub4h", 0x28390000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { RA_CHK, RB, RC }, { 0 }},
@@ -17838,125 +19445,365 @@
 /* vsubadd4h<.cc> 0,limm,limm 001011101111101101111111100QQQQQ.  */
 { "vsubadd4h", 0x2EFB7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2HS, MPY, MPY9E, { ZA, LIMM, LIMMdup }, { C_CC }},
 
+/* vsubadds a,b,c 00101bbb001111110BBBCCCCCCAAAAAA */
+{ "vsubadds", 0x283F0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, RC }, { 0 }},
+
+/* vsubadds<.cc> b,b,c 00101bbb111111110BBBCCCCCC0QQQQQ */
+{ "vsubadds", 0x28FF0000, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, RC }, { C_CC }},
+
+/* vsubadds 0,b,c 00101bbb001111110BBBCCCCCC111110 */
+{ "vsubadds", 0x283F003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, RC }, { 0 }},
+
+/* vsubadds 0,b,u6 00101bbb011111110BBBuuuuuu111110 */
+{ "vsubadds", 0x287F003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, UIMM6_20 }, { 0 }},
+
+/* vsubadds a,b,u6 00101bbb011111110BBBuuuuuuAAAAAA */
+{ "vsubadds", 0x287F0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, UIMM6_20 }, { 0 }},
+
+/* vsubadds<.cc> b,b,u6 00101bbb111111110BBBuuuuuu1QQQQQ */
+{ "vsubadds", 0x28FF0020, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, UIMM6_20 }, { C_CC }},
+
+/* vsubadds b,b,s12 00101bbb101111110BBBssssssSSSSSS */
+{ "vsubadds", 0x28BF0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, SIMM12_20 }, { 0 }},
+
+/* vsubadds 0,b,limm 00101bbb001111110BBB111110111110 */
+{ "vsubadds", 0x283F0FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, LIMM }, { 0 }},
+
+/* vsubadds 0,limm,c 00101110001111110111CCCCCC111110 */
+{ "vsubadds", 0x2E3F703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { 0 }},
+
+/* vsubadds<.cc> 0,limm,c 00101110111111110111CCCCCC0QQQQQ */
+{ "vsubadds", 0x2EFF7000, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_CC }},
+
+/* vsubadds a,limm,c 00101110001111110111CCCCCCAAAAAA */
+{ "vsubadds", 0x2E3F7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, RC }, { 0 }},
+
+/* vsubadds<.cc> b,b,limm 00101bbb111111110BBB1111100QQQQQ */
+{ "vsubadds", 0x28FF0F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, LIMM }, { C_CC }},
+
+/* vsubadds a,b,limm 00101bbb001111110BBB111110AAAAAA */
+{ "vsubadds", 0x283F0F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, LIMM }, { 0 }},
+
+/* vsubadds 0,limm,u6 00101110011111110111uuuuuu111110 */
+{ "vsubadds", 0x2E7F703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vsubadds<.cc> 0,limm,u6 00101110111111110111uuuuuu1QQQQQ */
+{ "vsubadds", 0x2EFF7020, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+
+/* vsubadds a,limm,u6 00101110011111110111uuuuuuAAAAAA */
+{ "vsubadds", 0x2E7F7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vsubadds 0,limm,s12 00101110101111110111ssssssSSSSSS */
+{ "vsubadds", 0x2EBF7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, SIMM12_20 }, { 0 }},
+
+/* vsubadds a,limm,limm 00101110001111110111111110AAAAAA */
+{ "vsubadds", 0x2E3F7F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, LIMMdup }, { 0 }},
+
+/* vsubadds 0,limm,limm 00101110001111110111111110111110 */
+{ "vsubadds", 0x2E3F7FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { 0 }},
+
+/* vsubadds<.cc> 0,limm,limm 001011101111111101111111100QQQQQ */
+{ "vsubadds", 0x2EFF7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_CC }},
+
 /* vsubadds2h a,b,c 00101bbb000101111BBBCCCCCCAAAAAA.  */
-{ "vsubadds2h", 0x28178000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vsubadds2h", 0x28178000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vsubadds2h 0,b,c 00101bbb000101111BBBCCCCCC111110.  */
-{ "vsubadds2h", 0x2817803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vsubadds2h", 0x2817803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vsubadds2h<.cc> b,b,c 00101bbb110101111BBBCCCCCC0QQQQQ.  */
-{ "vsubadds2h", 0x28D78000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vsubadds2h", 0x28D78000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vsubadds2h a,b,u6 00101bbb010101111BBBuuuuuuAAAAAA.  */
-{ "vsubadds2h", 0x28578000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vsubadds2h", 0x28578000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vsubadds2h 0,b,u6 00101bbb010101111BBBuuuuuu111110.  */
-{ "vsubadds2h", 0x2857803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vsubadds2h", 0x2857803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vsubadds2h<.cc> b,b,u6 00101bbb110101111BBBuuuuuu1QQQQQ.  */
-{ "vsubadds2h", 0x28D78020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vsubadds2h", 0x28D78020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vsubadds2h b,b,s12 00101bbb100101111BBBssssssSSSSSS.  */
-{ "vsubadds2h", 0x28978000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vsubadds2h", 0x28978000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vsubadds2h a,limm,c 00101110000101111111CCCCCCAAAAAA.  */
-{ "vsubadds2h", 0x2E17F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vsubadds2h", 0x2E17F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vsubadds2h a,b,limm 00101bbb000101111BBB111110AAAAAA.  */
-{ "vsubadds2h", 0x28178F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vsubadds2h", 0x28178F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vsubadds2h 0,limm,c 00101110000101111111CCCCCC111110.  */
-{ "vsubadds2h", 0x2E17F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vsubadds2h", 0x2E17F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vsubadds2h 0,b,limm 00101bbb000101111BBB111110111110.  */
-{ "vsubadds2h", 0x28178FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vsubadds2h", 0x28178FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vsubadds2h<.cc> b,b,limm 00101bbb110101111BBB1111100QQQQQ.  */
-{ "vsubadds2h", 0x28D78F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vsubadds2h", 0x28D78F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vsubadds2h<.cc> 0,limm,c 00101110110101111111CCCCCC0QQQQQ.  */
-{ "vsubadds2h", 0x2ED7F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vsubadds2h", 0x2ED7F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vsubadds2h a,limm,u6 00101110010101111111uuuuuuAAAAAA.  */
-{ "vsubadds2h", 0x2E57F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vsubadds2h", 0x2E57F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vsubadds2h 0,limm,u6 00101110010101111111uuuuuu111110.  */
-{ "vsubadds2h", 0x2E57F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vsubadds2h", 0x2E57F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vsubadds2h<.cc> 0,limm,u6 00101110110101111111uuuuuu1QQQQQ.  */
-{ "vsubadds2h", 0x2ED7F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vsubadds2h", 0x2ED7F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vsubadds2h 0,limm,s12 00101110100101111111ssssssSSSSSS.  */
-{ "vsubadds2h", 0x2E97F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vsubadds2h", 0x2E97F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vsubadds2h a,limm,limm 00101110000101111111111110AAAAAA.  */
-{ "vsubadds2h", 0x2E17FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vsubadds2h", 0x2E17FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vsubadds2h 0,limm,limm 00101110000101111111111110111110.  */
-{ "vsubadds2h", 0x2E17FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vsubadds2h", 0x2E17FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vsubadds2h<.cc> 0,limm,limm 001011101101011111111111100QQQQQ.  */
-{ "vsubadds2h", 0x2ED7FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vsubadds2h", 0x2ED7FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+
+/* vsubadds4h 0,b,c 00101bbb001110110BBBCCCCCC111110 */
+{ "vsubadds4h", 0x283B003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, RC }, { 0 }},
+
+/* vsubadds4h<.cc> b,b,c 00101bbb111110110BBBCCCCCC0QQQQQ */
+{ "vsubadds4h", 0x28FB0000, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, RC }, { C_CC }},
+
+/* vsubadds4h a,b,c 00101bbb001110110BBBCCCCCCAAAAAA */
+{ "vsubadds4h", 0x283B0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, RC }, { 0 }},
+
+/* vsubadds4h 0,b,u6 00101bbb011110110BBBuuuuuu111110 */
+{ "vsubadds4h", 0x287B003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, UIMM6_20 }, { 0 }},
+
+/* vsubadds4h<.cc> b,b,u6 00101bbb111110110BBBuuuuuu1QQQQQ */
+{ "vsubadds4h", 0x28FB0020, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, UIMM6_20 }, { C_CC }},
+
+/* vsubadds4h a,b,u6 00101bbb011110110BBBuuuuuuAAAAAA */
+{ "vsubadds4h", 0x287B0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, UIMM6_20 }, { 0 }},
+
+/* vsubadds4h b,b,s12 00101bbb101110110BBBssssssSSSSSS */
+{ "vsubadds4h", 0x28BB0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, SIMM12_20 }, { 0 }},
+
+/* vsubadds4h a,limm,c 00101110001110110111CCCCCCAAAAAA */
+{ "vsubadds4h", 0x2E3B7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, RC }, { 0 }},
+
+/* vsubadds4h 0,b,limm 00101bbb001110110BBB111110111110 */
+{ "vsubadds4h", 0x283B0FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, LIMM }, { 0 }},
+
+/* vsubadds4h<.cc> 0,limm,c 00101110111110110111CCCCCC0QQQQQ */
+{ "vsubadds4h", 0x2EFB7000, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_CC }},
+
+/* vsubadds4h<.cc> b,b,limm 00101bbb111110110BBB1111100QQQQQ */
+{ "vsubadds4h", 0x28FB0F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, LIMM }, { C_CC }},
+
+/* vsubadds4h a,b,limm 00101bbb001110110BBB111110AAAAAA */
+{ "vsubadds4h", 0x283B0F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, LIMM }, { 0 }},
+
+/* vsubadds4h 0,limm,c 00101110001110110111CCCCCC111110 */
+{ "vsubadds4h", 0x2E3B703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { 0 }},
+
+/* vsubadds4h a,limm,u6 00101110011110110111uuuuuuAAAAAA */
+{ "vsubadds4h", 0x2E7B7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vsubadds4h 0,limm,u6 00101110011110110111uuuuuu111110 */
+{ "vsubadds4h", 0x2E7B703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vsubadds4h<.cc> 0,limm,u6 00101110111110110111uuuuuu1QQQQQ */
+{ "vsubadds4h", 0x2EFB7020, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+
+/* vsubadds4h 0,limm,s12 00101110101110110111ssssssSSSSSS */
+{ "vsubadds4h", 0x2EBB7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, SIMM12_20 }, { 0 }},
+
+/* vsubadds4h a,limm,limm 00101110001110110111111110AAAAAA */
+{ "vsubadds4h", 0x2E3B7F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, LIMMdup }, { 0 }},
+
+/* vsubadds4h<.cc> 0,limm,limm 001011101111101101111111100QQQQQ */
+{ "vsubadds4h", 0x2EFB7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_CC }},
+
+/* vsubadds4h 0,limm,limm 00101110001110110111111110111110 */
+{ "vsubadds4h", 0x2E3B7FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { 0 }},
+
+/* vsubs2 a,b,c 00101bbb001111010BBBCCCCCCAAAAAA */
+{ "vsubs2", 0x283D0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, RC }, { 0 }},
+
+/* vsubs2<.cc> b,b,c 00101bbb111111010BBBCCCCCC0QQQQQ */
+{ "vsubs2", 0x28FD0000, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, RC }, { C_CC }},
+
+/* vsubs2 0,b,c 00101bbb001111010BBBCCCCCC111110 */
+{ "vsubs2", 0x283D003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, RC }, { 0 }},
+
+/* vsubs2<.cc> b,b,u6 00101bbb111111010BBBuuuuuu1QQQQQ */
+{ "vsubs2", 0x28FD0020, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, UIMM6_20 }, { C_CC }},
+
+/* vsubs2 0,b,u6 00101bbb011111010BBBuuuuuu111110 */
+{ "vsubs2", 0x287D003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, UIMM6_20 }, { 0 }},
+
+/* vsubs2 a,b,u6 00101bbb011111010BBBuuuuuuAAAAAA */
+{ "vsubs2", 0x287D0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, UIMM6_20 }, { 0 }},
+
+/* vsubs2 b,b,s12 00101bbb101111010BBBssssssSSSSSS */
+{ "vsubs2", 0x28BD0000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, SIMM12_20 }, { 0 }},
+
+/* vsubs2 0,limm,c 00101110001111010111CCCCCC111110 */
+{ "vsubs2", 0x2E3D703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { 0 }},
+
+/* vsubs2 0,b,limm 00101bbb001111010BBB111110111110 */
+{ "vsubs2", 0x283D0FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, LIMM }, { 0 }},
+
+/* vsubs2 a,b,limm 00101bbb001111010BBB111110AAAAAA */
+{ "vsubs2", 0x283D0F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, LIMM }, { 0 }},
+
+/* vsubs2<.cc> 0,limm,c 00101110111111010111CCCCCC0QQQQQ */
+{ "vsubs2", 0x2EFD7000, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_CC }},
+
+/* vsubs2<.cc> b,b,limm 00101bbb111111010BBB1111100QQQQQ */
+{ "vsubs2", 0x28FD0F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, LIMM }, { C_CC }},
+
+/* vsubs2 a,limm,c 00101110001111010111CCCCCCAAAAAA */
+{ "vsubs2", 0x2E3D7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, RC }, { 0 }},
+
+/* vsubs2 0,limm,u6 00101110011111010111uuuuuu111110 */
+{ "vsubs2", 0x2E7D703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vsubs2<.cc> 0,limm,u6 00101110111111010111uuuuuu1QQQQQ */
+{ "vsubs2", 0x2EFD7020, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+
+/* vsubs2 a,limm,u6 00101110011111010111uuuuuuAAAAAA */
+{ "vsubs2", 0x2E7D7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vsubs2 0,limm,s12 00101110101111010111ssssssSSSSSS */
+{ "vsubs2", 0x2EBD7000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, SIMM12_20 }, { 0 }},
+
+/* vsubs2 0,limm,limm 00101110001111010111111110111110 */
+{ "vsubs2", 0x2E3D7FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { 0 }},
+
+/* vsubs2<.cc> 0,limm,limm 001011101111110101111111100QQQQQ */
+{ "vsubs2", 0x2EFD7F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_CC }},
+
+/* vsubs2 a,limm,limm 00101110001111010111111110AAAAAA */
+{ "vsubs2", 0x2E3D7F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, LIMMdup }, { 0 }},
 
 /* vsubs2h a,b,c 00101bbb000101011BBBCCCCCCAAAAAA.  */
-{ "vsubs2h", 0x28158000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
+{ "vsubs2h", 0x28158000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, RC }, { 0 }},
 
 /* vsubs2h 0,b,c 00101bbb000101011BBBCCCCCC111110.  */
-{ "vsubs2h", 0x2815803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, RC }, { 0 }},
+{ "vsubs2h", 0x2815803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, RC }, { 0 }},
 
 /* vsubs2h<.cc> b,b,c 00101bbb110101011BBBCCCCCC0QQQQQ.  */
-{ "vsubs2h", 0x28D58000, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
+{ "vsubs2h", 0x28D58000, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, RC }, { C_CC }},
 
 /* vsubs2h a,b,u6 00101bbb010101011BBBuuuuuuAAAAAA.  */
-{ "vsubs2h", 0x28558000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
+{ "vsubs2h", 0x28558000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, UIMM6_20 }, { 0 }},
 
 /* vsubs2h 0,b,u6 00101bbb010101011BBBuuuuuu111110.  */
-{ "vsubs2h", 0x2855803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
+{ "vsubs2h", 0x2855803E, 0xF8FF803F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, UIMM6_20 }, { 0 }},
 
 /* vsubs2h<.cc> b,b,u6 00101bbb110101011BBBuuuuuu1QQQQQ.  */
-{ "vsubs2h", 0x28D58020, 0xF8FF8020, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
+{ "vsubs2h", 0x28D58020, 0xF8FF8020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, UIMM6_20 }, { C_CC }},
 
 /* vsubs2h b,b,s12 00101bbb100101011BBBssssssSSSSSS.  */
-{ "vsubs2h", 0x28958000, 0xF8FF8000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
+{ "vsubs2h", 0x28958000, 0xF8FF8000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, SIMM12_20 }, { 0 }},
 
 /* vsubs2h a,limm,c 00101110000101011111CCCCCCAAAAAA.  */
-{ "vsubs2h", 0x2E15F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
+{ "vsubs2h", 0x2E15F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, RC }, { 0 }},
 
 /* vsubs2h a,b,limm 00101bbb000101011BBB111110AAAAAA.  */
-{ "vsubs2h", 0x28158F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
+{ "vsubs2h", 0x28158F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, RB, LIMM }, { 0 }},
 
 /* vsubs2h 0,limm,c 00101110000101011111CCCCCC111110.  */
-{ "vsubs2h", 0x2E15F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
+{ "vsubs2h", 0x2E15F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { 0 }},
 
 /* vsubs2h 0,b,limm 00101bbb000101011BBB111110111110.  */
-{ "vsubs2h", 0x28158FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
+{ "vsubs2h", 0x28158FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, RB, LIMM }, { 0 }},
 
 /* vsubs2h<.cc> b,b,limm 00101bbb110101011BBB1111100QQQQQ.  */
-{ "vsubs2h", 0x28D58F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
+{ "vsubs2h", 0x28D58F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RB_CHK, RBdup, LIMM }, { C_CC }},
 
 /* vsubs2h<.cc> 0,limm,c 00101110110101011111CCCCCC0QQQQQ.  */
-{ "vsubs2h", 0x2ED5F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
+{ "vsubs2h", 0x2ED5F000, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, RC }, { C_CC }},
 
 /* vsubs2h a,limm,u6 00101110010101011111uuuuuuAAAAAA.  */
-{ "vsubs2h", 0x2E55F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
+{ "vsubs2h", 0x2E55F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, UIMM6_20 }, { 0 }},
 
 /* vsubs2h 0,limm,u6 00101110010101011111uuuuuu111110.  */
-{ "vsubs2h", 0x2E55F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
+{ "vsubs2h", 0x2E55F03E, 0xFFFFF03F, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { 0 }},
 
 /* vsubs2h<.cc> 0,limm,u6 00101110110101011111uuuuuu1QQQQQ.  */
-{ "vsubs2h", 0x2ED5F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+{ "vsubs2h", 0x2ED5F020, 0xFFFFF020, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, UIMM6_20 }, { C_CC }},
 
 /* vsubs2h 0,limm,s12 00101110100101011111ssssssSSSSSS.  */
-{ "vsubs2h", 0x2E95F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
+{ "vsubs2h", 0x2E95F000, 0xFFFFF000, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, SIMM12_20 }, { 0 }},
 
 /* vsubs2h a,limm,limm 00101110000101011111111110AAAAAA.  */
-{ "vsubs2h", 0x2E15FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
+{ "vsubs2h", 0x2E15FF80, 0xFFFFFFC0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { RA_CHK, LIMM, LIMMdup }, { 0 }},
 
 /* vsubs2h 0,limm,limm 00101110000101011111111110111110.  */
-{ "vsubs2h", 0x2E15FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
+{ "vsubs2h", 0x2E15FFBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* vsubs2h<.cc> 0,limm,limm 001011101101010111111111100QQQQQ.  */
-{ "vsubs2h", 0x2ED5FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+{ "vsubs2h", 0x2ED5FF80, 0xFFFFFFE0, ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS, DSP, NONE, { ZA, LIMM, LIMMdup }, { C_CC }},
+
+/* vsubs4h a,b,c 00101bbb001110010BBBCCCCCCAAAAAA */
+{ "vsubs4h", 0x28390000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, RC }, { 0 }},
+
+/* vsubs4h<.cc> b,b,c 00101bbb111110010BBBCCCCCC0QQQQQ */
+{ "vsubs4h", 0x28F90000, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, RC }, { C_CC }},
+
+/* vsubs4h 0,b,c 00101bbb001110010BBBCCCCCC111110 */
+{ "vsubs4h", 0x2839003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, RC }, { 0 }},
+
+/* vsubs4h 0,b,u6 00101bbb011110010BBBuuuuuu111110 */
+{ "vsubs4h", 0x2879003E, 0xF8FF803F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, UIMM6_20 }, { 0 }},
+
+/* vsubs4h<.cc> b,b,u6 00101bbb111110010BBBuuuuuu1QQQQQ */
+{ "vsubs4h", 0x28F90020, 0xF8FF8020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, UIMM6_20 }, { C_CC }},
+
+/* vsubs4h a,b,u6 00101bbb011110010BBBuuuuuuAAAAAA */
+{ "vsubs4h", 0x28790000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, UIMM6_20 }, { 0 }},
+
+/* vsubs4h b,b,s12 00101bbb101110010BBBssssssSSSSSS */
+{ "vsubs4h", 0x28B90000, 0xF8FF8000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, SIMM12_20 }, { 0 }},
+
+/* vsubs4h<.cc> 0,limm,c 00101110111110010111CCCCCC0QQQQQ */
+{ "vsubs4h", 0x2EF97000, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { C_CC }},
+
+/* vsubs4h a,b,limm 00101bbb001110010BBB111110AAAAAA */
+{ "vsubs4h", 0x28390F80, 0xF8FF8FC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, RB, LIMM }, { 0 }},
+
+/* vsubs4h 0,limm,c 00101110001110010111CCCCCC111110 */
+{ "vsubs4h", 0x2E39703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, RC }, { 0 }},
+
+/* vsubs4h<.cc> b,b,limm 00101bbb111110010BBB1111100QQQQQ */
+{ "vsubs4h", 0x28F90F80, 0xF8FF8FE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RB, RBdup, LIMM }, { C_CC }},
+
+/* vsubs4h 0,b,limm 00101bbb001110010BBB111110111110 */
+{ "vsubs4h", 0x28390FBE, 0xF8FF8FFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, RB, LIMM }, { 0 }},
+
+/* vsubs4h a,limm,c 00101110001110010111CCCCCCAAAAAA */
+{ "vsubs4h", 0x2E397000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, RC }, { 0 }},
+
+/* vsubs4h<.cc> 0,limm,u6 00101110111110010111uuuuuu1QQQQQ */
+{ "vsubs4h", 0x2EF97020, 0xFFFFF020, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { C_CC }},
+
+/* vsubs4h a,limm,u6 00101110011110010111uuuuuuAAAAAA */
+{ "vsubs4h", 0x2E797000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vsubs4h 0,limm,u6 00101110011110010111uuuuuu111110 */
+{ "vsubs4h", 0x2E79703E, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, UIMM6_20 }, { 0 }},
+
+/* vsubs4h 0,limm,s12 00101110101110010111ssssssSSSSSS */
+{ "vsubs4h", 0x2EB97000, 0xFFFFF000, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, SIMM12_20 }, { 0 }},
+
+/* vsubs4h a,limm,limm 00101110001110010111111110AAAAAA */
+{ "vsubs4h", 0x2E397F80, 0xFFFFFFC0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { RA, LIMM, LIMMdup }, { 0 }},
+
+/* vsubs4h<.cc> 0,limm,limm 001011101111100101111111100QQQQQ */
+{ "vsubs4h", 0x2EF97F80, 0xFFFFFFE0, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { C_CC }},
+
+/* vsubs4h 0,limm,limm 00101110001110010111111110111110 */
+{ "vsubs4h", 0x2E397FBE, 0xFFFFFFFF, ARC_OPCODE_ARCv2HS, ARITH, MPY9E, { ZA, LIMM, LIMMdup }, { 0 }},
 
 /* wevt c 00100000001011110001CCCCCC111111.  */
 { "wevt", 0x202F103F, 0xFFFFF03F, ARC_OPCODE_ARCv2HS, KERNEL, NONE, { RC }, { 0 }},
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arm-dis.c ./opcodes/arm-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/arm-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/arm-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Instruction printing code for the ARM
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
    Modification by James G. Smith (jsmith@cygnus.co.uk)
 
@@ -22,7 +22,7 @@
 
 #include "sysdep.h"
 
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "opcode/arm.h"
 #include "opintl.h"
 #include "safe-ctype.h"
@@ -503,6 +503,8 @@ static const struct opcode32 coprocessor
     0x0ee60a10, 0x0fff0fff, "vmsr%c\tmvfr1, %12-15r"},
   {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ee70a10, 0x0fff0fff, "vmsr%c\tmvfr0, %12-15r"},
+  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+    0x0ee50a10, 0x0fff0fff, "vmsr%c\tmvfr2, %12-15r"},
   {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ee80a10, 0x0fff0fff, "vmsr%c\tfpexc, %12-15r"},
   {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
@@ -515,6 +517,8 @@ static const struct opcode32 coprocessor
     0x0ef1fa10, 0x0fffffff, "vmrs%c\tAPSR_nzcv, fpscr"},
   {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ef10a10, 0x0fff0fff, "vmrs%c\t%12-15r, fpscr"},
+  {ARM_FEATURE_COPROC (FPU_VFP_EXT_ARMV8),
+    0x0ef50a10, 0x0fff0fff, "vmrs%c\t%12-15r, mvfr2"},
   {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
     0x0ef60a10, 0x0fff0fff, "vmrs%c\t%12-15r, mvfr1"},
   {ARM_FEATURE_COPROC (FPU_VFP_EXT_V1xD),
@@ -902,6 +906,30 @@ static const struct opcode32 coprocessor
   {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_3A),
     0xfea00800, 0xffa00f10, "vcmla%c.f32\t%12-15,22V, %16-19,7V, %0-3,5D[0], #%20?21%20?780"},
 
+  /* Dot Product instructions in the space of coprocessor 13.  */
+  {ARM_FEATURE_COPROC (FPU_NEON_EXT_DOTPROD),
+    0xfc200d00, 0xffb00f00, "v%4?usdot.%4?us8\t%12-15,22V, %16-19,7V, %0-3,5V"},
+  {ARM_FEATURE_COPROC (FPU_NEON_EXT_DOTPROD),
+    0xfe000d00, 0xff000f00, "v%4?usdot.%4?us8\t%12-15,22V, %16-19,7V, %0-3D[%5?10]"},
+
+  /* ARMv8.2 FMAC Long instructions in the space of coprocessor 8.  */
+  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+    0xfc200810, 0xffb00f50, "vfmal.f16\t%12-15,22D, s%7,16-19d, s%5,0-3d"},
+  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+    0xfca00810, 0xffb00f50, "vfmsl.f16\t%12-15,22D, s%7,16-19d, s%5,0-3d"},
+  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+    0xfc200850, 0xffb00f50, "vfmal.f16\t%12-15,22Q, d%16-19,7d, d%0-3,5d"},
+  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+    0xfca00850, 0xffb00f50, "vfmsl.f16\t%12-15,22Q, d%16-19,7d, d%0-3,5d"},
+  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+    0xfe000810, 0xffb00f50, "vfmal.f16\t%12-15,22D, s%7,16-19d, s%5,0-2d[%3d]"},
+  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+    0xfe100810, 0xffb00f50, "vfmsl.f16\t%12-15,22D, s%7,16-19d, s%5,0-2d[%3d]"},
+  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+    0xfe000850, 0xffb00f50, "vfmal.f16\t%12-15,22Q, d%16-19,7d, d%0-2d[%3,5d]"},
+  {ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_V8_2A),
+    0xfe100850, 0xffb00f50, "vfmsl.f16\t%12-15,22Q, d%16-19,7d, d%0-2d[%3,5d]"},
+
   /* V5 coprocessor instructions.  */
   {ARM_FEATURE_CORE_LOW (ARM_EXT_V5),
     0xfc100000, 0xfe100000, "ldc2%22'l%c\t%8-11d, cr%12-15d, %A"},
@@ -2310,8 +2338,6 @@ static const struct opcode32 arm_opcodes
     0x01300000, 0x0ff00010, "teq%p%c\t%16-19r, %o"},
   {ARM_FEATURE_CORE_LOW (ARM_EXT_V1),
     0x01300010, 0x0ff00010, "teq%p%c\t%16-19R, %o"},
-  {ARM_FEATURE_CORE_LOW (ARM_EXT_V5),
-    0x0130f000, 0x0ff0f010, "bx%c\t%0-3r"},
 
   {ARM_FEATURE_CORE_LOW (ARM_EXT_V1),
     0x03400000, 0x0fe00000, "cmp%p%c\t%16-19r, %o"},
@@ -2691,7 +2717,6 @@ static const struct opcode16 thumb_opcod
        %<bitfield>W	print bitfield*4 in decimal
        %<bitfield>r	print bitfield as an ARM register
        %<bitfield>R	as %<>r but r15 is UNPREDICTABLE
-       %<bitfield>S	as %<>R but r13 is UNPREDICTABLE
        %<bitfield>c	print bitfield as a condition code
 
        %<bitfield>'c	print specified char iff bitfield is all ones
@@ -2759,17 +2784,17 @@ static const struct opcode32 thumb32_opc
 
   /* CRC32 instructions.  */
   {ARM_FEATURE_COPROC (CRC_EXT_ARMV8),
-    0xfac0f080, 0xfff0f0f0, "crc32b\t%8-11S, %16-19S, %0-3S"},
+    0xfac0f080, 0xfff0f0f0, "crc32b\t%8-11R, %16-19R, %0-3R"},
   {ARM_FEATURE_COPROC (CRC_EXT_ARMV8),
-    0xfac0f090, 0xfff0f0f0, "crc32h\t%9-11S, %16-19S, %0-3S"},
+    0xfac0f090, 0xfff0f0f0, "crc32h\t%9-11R, %16-19R, %0-3R"},
   {ARM_FEATURE_COPROC (CRC_EXT_ARMV8),
-    0xfac0f0a0, 0xfff0f0f0, "crc32w\t%8-11S, %16-19S, %0-3S"},
+    0xfac0f0a0, 0xfff0f0f0, "crc32w\t%8-11R, %16-19R, %0-3R"},
   {ARM_FEATURE_COPROC (CRC_EXT_ARMV8),
-    0xfad0f080, 0xfff0f0f0, "crc32cb\t%8-11S, %16-19S, %0-3S"},
+    0xfad0f080, 0xfff0f0f0, "crc32cb\t%8-11R, %16-19R, %0-3R"},
   {ARM_FEATURE_COPROC (CRC_EXT_ARMV8),
-    0xfad0f090, 0xfff0f0f0, "crc32ch\t%8-11S, %16-19S, %0-3S"},
+    0xfad0f090, 0xfff0f0f0, "crc32ch\t%8-11R, %16-19R, %0-3R"},
   {ARM_FEATURE_COPROC (CRC_EXT_ARMV8),
-    0xfad0f0a0, 0xfff0f0f0, "crc32cw\t%8-11S, %16-19S, %0-3S"},
+    0xfad0f0a0, 0xfff0f0f0, "crc32cw\t%8-11R, %16-19R, %0-3R"},
 
   /* V7 instructions.  */
   {ARM_FEATURE_CORE_LOW (ARM_EXT_V7), 0xf910f000, 0xff70f000, "pli%c\t%a"},
@@ -5733,7 +5758,7 @@ print_insn_thumb32 (bfd_vma pc, struct d
 		      if (off || !U)
 			{
 			  func (stream, ", #%c%u", U ? '+' : '-', off * 4);
-			  value_in_comment = (off && U) ? 1 : -1;
+			  value_in_comment = off * 4 * (U ? 1 : -1);
 			}
 		      func (stream, "]");
 		      if (W)
@@ -5745,7 +5770,7 @@ print_insn_thumb32 (bfd_vma pc, struct d
 		      if (W)
 			{
 			  func (stream, "#%c%u", U ? '+' : '-', off * 4);
-			  value_in_comment = (off && U) ? 1 : -1;
+			  value_in_comment = off * 4 * (U ? 1 : -1);
 			}
 		      else
 			{
@@ -5979,10 +6004,6 @@ print_insn_thumb32 (bfd_vma pc, struct d
 		      value_in_comment = val * 4;
 		      break;
 
-		    case 'S':
-		      if (val == 13)
-			is_unpredictable = TRUE;
-		      /* Fall through.  */
 		    case 'R':
 		      if (val == 15)
 			is_unpredictable = TRUE;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/avr-dis.c ./opcodes/avr-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/avr-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/avr-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Disassemble AVR instructions.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
    Contributed by Denis Chertykov <denisc@overta.ru>
 
@@ -22,7 +22,7 @@
 
 #include "sysdep.h"
 #include <assert.h>
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "opintl.h"
 #include "libiberty.h"
 #include "bfd_stdint.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/bfin-dis.c ./opcodes/bfin-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/bfin-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/bfin-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Disassemble ADI Blackfin Instructions.
-   Copyright (C) 2005-2017 Free Software Foundation, Inc.
+   Copyright (C) 2005-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
@@ -38,7 +38,7 @@ typedef long TIword;
 #define SIGNEXTEND(v, n)    ((v << (HOST_LONG_WORD_SIZE - (n))) >> (HOST_LONG_WORD_SIZE - (n)))
 #define MASKBITS(val, bits) (val & ((1 << bits) - 1))
 
-#include "dis-asm.h"
+#include "disassemble.h"
 
 typedef unsigned int bu32;
 
@@ -350,7 +350,7 @@ static const enum machine_registers deco
   REG_P0, REG_P1, REG_P2, REG_P3, REG_P4, REG_P5, REG_SP, REG_FP,
 };
 
-#define gregs(x, i) REGNAME (decode_gregs[((i) << 3) | (x)])
+#define gregs(x, i) REGNAME (decode_gregs[(((i) << 3) | (x)) & 15])
 
 /* [dregs pregs (iregs mregs) (bregs lregs)].  */
 static const enum machine_registers decode_regs[] =
@@ -361,7 +361,7 @@ static const enum machine_registers deco
   REG_B0, REG_B1, REG_B2, REG_B3, REG_L0, REG_L1, REG_L2, REG_L3,
 };
 
-#define regs(x, i) REGNAME (decode_regs[((i) << 3) | (x)])
+#define regs(x, i) REGNAME (decode_regs[(((i) << 3) | (x)) & 31])
 
 /* [dregs pregs (iregs mregs) (bregs lregs) Low Half].  */
 static const enum machine_registers decode_regs_lo[] =
@@ -372,7 +372,7 @@ static const enum machine_registers deco
   REG_BL0, REG_BL1, REG_BL2, REG_BL3, REG_LL0, REG_LL1, REG_LL2, REG_LL3,
 };
 
-#define regs_lo(x, i) REGNAME (decode_regs_lo[((i) << 3) | (x)])
+#define regs_lo(x, i) REGNAME (decode_regs_lo[(((i) << 3) | (x)) & 31])
 
 /* [dregs pregs (iregs mregs) (bregs lregs) High Half].  */
 static const enum machine_registers decode_regs_hi[] =
@@ -383,7 +383,7 @@ static const enum machine_registers deco
   REG_BH0, REG_BH1, REG_BH2, REG_BH3, REG_LH0, REG_LH1, REG_LH2, REG_LH3,
 };
 
-#define regs_hi(x, i) REGNAME (decode_regs_hi[((i) << 3) | (x)])
+#define regs_hi(x, i) REGNAME (decode_regs_hi[(((i) << 3) | (x)) & 31])
 
 static const enum machine_registers decode_statbits[] =
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen-asm.c ./opcodes/cgen-asm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen-asm.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/cgen-asm.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* CGEN generic assembler support code.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen-asm.in ./opcodes/cgen-asm.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen-asm.in	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/cgen-asm.in	2018-01-09 02:04:59.000000000 +0000
@@ -4,7 +4,7 @@
    THIS FILE IS MACHINE GENERATED WITH CGEN.
    - the resultant file is machine generated, cgen-asm.in isn't
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen-bitset.c ./opcodes/cgen-bitset.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen-bitset.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/cgen-bitset.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* CGEN generic opcode support.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen-dis.c ./opcodes/cgen-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/cgen-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* CGEN generic disassembler support code.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen-dis.in ./opcodes/cgen-dis.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen-dis.in	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/cgen-dis.in	2018-01-09 02:04:59.000000000 +0000
@@ -4,7 +4,7 @@
    THIS FILE IS MACHINE GENERATED WITH CGEN.
    - the resultant file is machine generated, cgen-dis.in isn't
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
@@ -28,7 +28,7 @@
 #include "sysdep.h"
 #include <stdio.h>
 #include "ansidecl.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "bfd.h"
 #include "symcat.h"
 #include "libiberty.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen-ibld.in ./opcodes/cgen-ibld.in
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen-ibld.in	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/cgen-ibld.in	2018-01-09 02:04:59.000000000 +0000
@@ -3,7 +3,7 @@
    THIS FILE IS MACHINE GENERATED WITH CGEN: Cpu tools GENerator.
    - the resultant file is machine generated, cgen-ibld.in isn't
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen-opc.c ./opcodes/cgen-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/cgen-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,6 +1,6 @@
 /* CGEN generic opcode support.
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen.sh ./opcodes/cgen.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cgen.sh	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/cgen.sh	2018-01-09 02:04:59.000000000 +0000
@@ -1,7 +1,7 @@
 #! /bin/sh
 # CGEN generic assembler support code.
 #
-#   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2000-2018 Free Software Foundation, Inc.
 #
 #   This file is part of the GNU opcodes library.
 #
@@ -82,6 +82,8 @@ do
     esac
 done
 
+header="/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */"
+
 case $action in
 opcodes)
 	# Remove residual working files.
@@ -113,27 +115,32 @@ opcodes)
 		${extrafile_args}
 
 	# Customise generated files for the particular architecture.
-	sed -e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
+	sed -e "1i$header" \
+	    -e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
 	    -e 's/[ 	][ 	]*$//' < ${tmp}-desc.h1 > ${tmp}-desc.h
 	${rootdir}/move-if-change ${tmp}-desc.h ${srcdir}/${prefix}-desc.h
 
-	sed -e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
+	sed -e "1i$header" \
+	    -e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
 	    -e "s/@prefix@/${prefix}/" -e 's/[ 	][ 	]*$//' \
 	    < ${tmp}-desc.c1 > ${tmp}-desc.c
 	${rootdir}/move-if-change ${tmp}-desc.c ${srcdir}/${prefix}-desc.c
 
-	sed -e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
+	sed -e "1i$header" \
+	    -e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
 	    -e 's/[ 	][ 	]*$//' < ${tmp}-opc.h1 > ${tmp}-opc.h
 	${rootdir}/move-if-change ${tmp}-opc.h ${srcdir}/${prefix}-opc.h
 
-	sed -e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
+	sed -e "1i$header" \
+	    -e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
 	    -e "s/@prefix@/${prefix}/" -e 's/[ 	][ 	]*$//' \
 	    < ${tmp}-opc.c1 > ${tmp}-opc.c
 	${rootdir}/move-if-change ${tmp}-opc.c ${srcdir}/${prefix}-opc.c
 
 	case $extrafiles in
 	*opinst*)
-	  sed -e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
+	  sed -e "1i$header" \
+	      -e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
 	      -e "s/@prefix@/${prefix}/" -e 's/[ 	][ 	]*$//' \
 	      < ${tmp}-opinst.c1 >${tmp}-opinst.c
 	  ${rootdir}/move-if-change ${tmp}-opinst.c ${srcdir}/${prefix}-opinst.c
@@ -141,18 +148,21 @@ opcodes)
 	esac
 
 	cat ${srcdir}/cgen-ibld.in ${tmp}-ibld.in1 | \
-	  sed -e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
+	  sed -e "1i$header" \
+	    -e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
 	    -e "s/@prefix@/${prefix}/" -e 's/[ 	][ 	]*$//' > ${tmp}-ibld.c
 	${rootdir}/move-if-change ${tmp}-ibld.c ${srcdir}/${prefix}-ibld.c
 
 	sed -e "/ -- assembler routines/ r ${tmp}-asm.in1" ${srcdir}/cgen-asm.in \
-	  | sed -e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
+	  | sed -e "1i$header" \
+		-e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
 		-e "s/@prefix@/${prefix}/" -e 's/[ 	][ 	]*$//' \
 	  > ${tmp}-asm.c
 	${rootdir}/move-if-change ${tmp}-asm.c ${srcdir}/${prefix}-asm.c
 
 	sed -e "/ -- disassembler routines/ r ${tmp}-dis.in1" ${srcdir}/cgen-dis.in \
-	  | sed -e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
+	  | sed -e "1i$header" \
+		-e "s/@ARCH@/${ARCH}/g" -e "s/@arch@/${arch}/g" \
 		-e "s/@prefix@/${prefix}/" -e 's/[ 	][ 	]*$//' \
 	  > ${tmp}-dis.c
 	${rootdir}/move-if-change ${tmp}-dis.c ${srcdir}/${prefix}-dis.c
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/ChangeLog ./opcodes/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/ChangeLog	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/ChangeLog	2018-01-09 02:04:59.000000000 +0000
@@ -1,536 +1,15 @@
-2017-04-13  Alan Modra  <amodra@gmail.com>
+2018-01-03  Alan Modra  <amodra@gmail.com>
 
-	* epiphany-desc.c: Regenerate.
-	* fr30-desc.c: Regenerate.
-	* frv-desc.c: Regenerate.
-	* ip2k-desc.c: Regenerate.
-	* iq2000-desc.c: Regenerate.
-	* lm32-desc.c: Regenerate.
-	* m32c-desc.c: Regenerate.
-	* m32r-desc.c: Regenerate.
-	* mep-desc.c: Regenerate.
-	* mt-desc.c: Regenerate.
-	* or1k-desc.c: Regenerate.
-	* xc16x-desc.c: Regenerate.
-	* xstormy16-desc.c: Regenerate.
-
-2017-04-11  Alan Modra  <amodra@gmail.com>
-
-	* ppc-dis.c (ppc_opts): Remove PPC_OPCODE_ALTIVEC2,
-	PPC_OPCODE_VSX3, PPC_OPCODE_HTM and "htm".  Formatting.  Set
-	PPC_OPCODE_TMR for e6500.
-	* ppc-opc.c (PPCVEC2): Define as PPC_OPCODE_POWER8|PPC_OPCODE_E6500.
-	(PPCVEC3): Define as PPC_OPCODE_POWER9.
-	(PPCVSX2): Define as PPC_OPCODE_POWER8.
-	(PPCVSX3): Define as PPC_OPCODE_POWER9.
-	(PPCHTM): Define as PPC_OPCODE_POWER8.
-	(powerpc_opcodes <mftmr, mttmr>): Remove now unnecessary E6500.
-
-2017-04-10  Alan Modra  <amodra@gmail.com>
-
-	* ppc-dis.c (ppc_opts <476>): Remove PPC_OPCODE_440.
-	* ppc-opc.c (MULHW): Add PPC_OPCODE_476.
-	(powerpc_opcodes): Adjust PPC440, PPC464 and PPC476 insns to suit
-	removal of PPC_OPCODE_440 from ppc476 cpu selection bits.
-
-2017-04-09  Pip Cet  <pipcet@gmail.com>
-
-	* wasm32-dis.c (print_insn_wasm32): Avoid DECIMAL_DIG, specify
-	appropriate floating-point precision directly.
-
-2017-04-07  Alan Modra  <amodra@gmail.com>
-
-	* ppc-opc.c (powerpc_opcodes <mviwsplt, mvidsplt, lvexbx, lvepxl,
-	lvexhx, lvepx, lvexwx, stvexbx, stvexhx, stvexwx, lvtrx, lvtlx,
-	lvswx, stvfrx, stvflx, stvswx, lvsm, stvepxl, lvtrxl, stvepx,
-	lvtlxl, lvswxl, stvfrxl, stvflxl, stvswxl>): Enable E6500 only
-	vector instructions with E6500 not PPCVEC2.
-
-2017-04-06  Pip Cet  <pipcet@gmail.com>
-
-	* Makefile.am: Add wasm32-dis.c.
-	* configure.ac: Add wasm32-dis.c to wasm32 target.
-	* disassemble.c: Add wasm32 disassembler code.
-	* wasm32-dis.c: New file.
-	* Makefile.in: Regenerate.
-	* configure: Regenerate.
-	* po/POTFILES.in: Regenerate.
-	* po/opcodes.pot: Regenerate.
-
-2017-04-05  Pedro Alves  <palves@redhat.com>
-
-	* arc-dis.c (parse_option, parse_disassembler_options): Constify.
-	* arm-dis.c (parse_arm_disassembler_options): Constify.
-	* ppc-dis.c (powerpc_init_dialect): Constify local.
-	* vax-dis.c (parse_disassembler_options): Constify.
-
-2017-04-03  Palmer Dabbelt  <palmer@dabbelt.com>
-
-	* riscv-dis.c (riscv_disassemble_insn): Change "_gp" to
-	RISCV_GP_SYMBOL.
-
-2017-03-30  Pip Cet  <pipcet@gmail.com>
-
-	* configure.ac: Add (empty) bfd_wasm32_arch target.
-	* configure: Regenerate
-	* po/opcodes.pot: Regenerate.
-
-2017-03-29  Sheldon Lobo  <sheldon.lobo@oracle.com>
-
-	Add support for missing SPARC ASIs from UA2005, UA2007, OSA2011, &
-	OSA2015.
-	* opcodes/sparc-opc.c (asi_table): New ASIs.
-
-2017-03-29  Alan Modra  <amodra@gmail.com>
-
-	* ppc-dis.c (ppc_opts): Set PPC_OPCODE_PPC for "any" flags.  Add
-	"raw" option.
-	(lookup_powerpc): Don't special case -1 dialect.  Handle
-	PPC_OPCODE_RAW.
-	(print_insn_powerpc): Mask out PPC_OPCODE_ANY on first
-	lookup_powerpc call, pass it on second.
-
-2017-03-27  Alan Modra  <amodra@gmail.com>
-
-	PR 21303
-	* ppc-dis.c (struct ppc_mopt): Comment.
-	(ppc_opts <e200z4>): Move PPC_OPCODE_VLE from .sticky to .cpu.
-
-2017-03-27  Rinat Zelig  <rinat@mellanox.com>
-
-	* arc-nps400-tbl.h: Add Ultra Ip and Miscellaneous instructions format.
-	* arc-opc.c: Add defines. e.g. F_NJ, F_NM , F_NO_T, F_NPS_SR,
-	F_NPS_M, F_NPS_CORE, F_NPS_ALL.
-	(insert_nps_misc_imm_offset): New function.
-	(extract_nps_misc imm_offset): New function.
-	(arc_num_flag_operands): Add F_NJ, F_NM, F_NO_T.
-	(arc_flag_special_cases): Add F_NJ, F_NM, F_NO_T.
-
-2017-03-21  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
-
-	* s390-mkopc.c (main): Remove vx2 check.
-	* s390-opc.txt: Remove vx2 instruction flags.
-
-2017-03-21  Rinat Zelig  <rinat@mellanox.com>
-
-	* arc-nps400-tbl.h: Add cp32/cp16 instructions format.
-	* arc-opc.c: Add F_NPS_NA, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET.
-	(insert_nps_imm_offset): New function.
-	(extract_nps_imm_offset): New function.
-	(insert_nps_imm_entry): New function.
-	(extract_nps_imm_entry): New function.
-
-2017-03-17  Alan Modra  <amodra@gmail.com>
-
-	PR 21248
-	* ppc-opc.c (powerpc_opcodes): Enable mfivor32, mfivor33,
-	mtivor32, and mtivor33 for e6500.  Move mfibatl and mfibatu after
-	those spr mnemonics they alias.  Similarly for mtibatl, mtibatu.
-
-2017-03-14  Kito Cheng  <kito.cheng@gmail.com>
-
-	* riscv-opc.c (riscv_opcodes> <c.li>: Use the 'o' immediate encoding.
-	<c.andi>: Likewise.
-	<c.addiw> Likewise.
-
-2017-03-14  Kito Cheng  <kito.cheng@gmail.com>
-
-	* riscv-opc.c (riscv_opcodes) <c.addi>: Use match_opcode.
-
-2017-03-13  Andrew Waterman  <andrew@sifive.com>
-
-	* riscv-opc.c (riscv_opcodes) <srli/C>: Use match_opcode.
-	<srl> Likewise.
-	<srai> Likewise.
-	<sra> Likewise.
-
-2017-03-09  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* i386-gen.c (opcode_modifiers): Replace S with Load.
-	* i386-opc.h (S): Removed.
-	(Load): New.
-	(i386_opcode_modifier): Replace s with load.
-	* i386-opc.tbl: Add {disp8}, {disp32}, {swap}, {vex2}, {vex3}
-	and {evex}.  Replace S with Load.
-	* i386-tbl.h: Regenerated.
-
-2017-03-09  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* i386-opc.tbl: Use CpuCET on rdsspq.
-	* i386-tbl.h: Regenerated.
-
-2017-03-08  Peter Bergner  <bergner@vnet.ibm.com>
-
-	* ppc-dis.c (ppc_opts) <altivec>: Do not use PPC_OPCODE_ALTIVEC2;
-	<vsx>: Do not use PPC_OPCODE_VSX3;
-
-2017-03-08  Peter Bergner  <bergner@vnet.ibm.com>
-
-	* ppc-opc.c (powerpc_opcodes) <lnia>: New extended mnemonic.
-
-2017-03-06  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* i386-dis.c (REG_0F1E_MOD_3): New enum.
-	(MOD_0F1E_PREFIX_1): Likewise.
-	(MOD_0F38F5_PREFIX_2): Likewise.
-	(MOD_0F38F6_PREFIX_0): Likewise.
-	(RM_0F1E_MOD_3_REG_7): Likewise.
-	(PREFIX_MOD_0_0F01_REG_5): Likewise.
-	(PREFIX_MOD_3_0F01_REG_5_RM_1): Likewise.
-	(PREFIX_MOD_3_0F01_REG_5_RM_2): Likewise.
-	(PREFIX_0F1E): Likewise.
-	(PREFIX_MOD_0_0FAE_REG_5): Likewise.
-	(PREFIX_0F38F5): Likewise.
-	(dis386_twobyte): Use PREFIX_0F1E.
-	(reg_table): Add REG_0F1E_MOD_3.
-	(prefix_table): Add PREFIX_MOD_0_0F01_REG_5,
-	PREFIX_MOD_3_0F01_REG_5_RM_1, PREFIX_MOD_3_0F01_REG_5_RM_2,
-	PREFIX_0F1E, PREFIX_MOD_0_0FAE_REG_5 and PREFIX_0F38F5.  Update
-	PREFIX_0FAE_REG_6 and PREFIX_0F38F6.
-	(three_byte_table): Use PREFIX_0F38F5.
-	(mod_table): Use PREFIX_MOD_0_0F01_REG_5, PREFIX_MOD_0_0FAE_REG_5.
-	Add MOD_0F1E_PREFIX_1, MOD_0F38F5_PREFIX_2, MOD_0F38F6_PREFIX_0.
-	(rm_table): Add MOD_0F38F5_PREFIX_2, MOD_0F38F6_PREFIX_0,
-	RM_0F1E_MOD_3_REG_7.  Use PREFIX_MOD_3_0F01_REG_5_RM_1 and
-	PREFIX_MOD_3_0F01_REG_5_RM_2.
-	* i386-gen.c (cpu_flag_init): Add CPU_CET_FLAGS.
-	(cpu_flags): Add CpuCET.
-	* i386-opc.h (CpuCET): New enum.
-	(CpuUnused): Commented out.
-	(i386_cpu_flags): Add cpucet.
-	* i386-opc.tbl: Add Intel CET instructions.
-	* i386-init.h: Regenerated.
-	* i386-tbl.h: Likewise.
-
-2017-03-06  Alan Modra  <amodra@gmail.com>
-
-	PR 21124
-	* ppc-opc.c (extract_esync, extract_ls, extract_ral, extract_ram)
-	(extract_raq, extract_ras, extract_rbx): New functions.
-	(powerpc_operands): Use opposite corresponding insert function.
-	(Q_MASK): Define.
-	(powerpc_opcodes): Apply Q_MASK to all quad insns with even
-	register restriction.
-
-2017-02-28  Peter Bergner  <bergner@vnet.ibm.com>
-
-	* disassemble.c Include "safe-ctype.h".
-	(disassemble_init_for_target): Handle s390 init.
-	(remove_whitespace_and_extra_commas): New function.
-	(disassembler_options_cmp): Likewise.
-	* arm-dis.c: Include "libiberty.h".
-	(NUM_ELEM): Delete.
-	(regnames): Use long disassembler style names.
-	Add force-thumb and no-force-thumb options.
-	(NUM_ARM_REGNAMES): Rename from this...
-	(NUM_ARM_OPTIONS): ...to this.  Use ARRAY_SIZE.
-	(get_arm_regname_num_options): Delete.
-	(set_arm_regname_option): Likewise.
-	(get_arm_regnames): Likewise.
-	(parse_disassembler_options): Likewise.
-	(parse_arm_disassembler_option): Rename from this...
-	(parse_arm_disassembler_options): ...to this.  Make static.
-	Use new FOR_EACH_DISASSEMBLER_OPTION macro to scan over options.
-	(print_insn): Use parse_arm_disassembler_options.
-	(disassembler_options_arm): New function.
-	(print_arm_disassembler_options): Handle updated regnames.
-	* ppc-dis.c: Include "libiberty.h".
-	(ppc_opts): Add "32" and "64" entries.
-	(ppc_parse_cpu): Use ARRAY_SIZE and disassembler_options_cmp.
-	(powerpc_init_dialect): Add break to switch statement.
-	Use new FOR_EACH_DISASSEMBLER_OPTION macro.
-	(disassembler_options_powerpc): New function.
-	(print_ppc_disassembler_options): Use ARRAY_SIZE.
-	Remove printing of "32" and "64".
-	* s390-dis.c: Include "libiberty.h".
-	(init_flag): Remove unneeded variable.
-	(struct s390_options_t): New structure type.
-	(options): New structure.
-	(init_disasm): Rename from this...
-	(disassemble_init_s390): ...to this.  Add initializations for
-	current_arch_mask and option_use_insn_len_bits_p.  Remove init_flag.
-	(print_insn_s390): Delete call to init_disasm.
-	(disassembler_options_s390): New function.
-	(print_s390_disassembler_options): Print using information from
-	struct 'options'.
-	* po/opcodes.pot: Regenerate.
-
-2017-02-28  Jan Beulich  <jbeulich@suse.com>
-
-	* i386-dis.c (PCMPESTR_Fixup): New.
-	(VEX_W_0F3A60_P_2, VEX_W_0F3A61_P_2): Delete.
-	(prefix_table): Use PCMPESTR_Fixup.
-	(vex_len_table): Make VPCMPESTR{I,M} entries leaf ones and use
-	PCMPESTR_Fixup.
-	(vex_w_table): Delete VPCMPESTR{I,M} entries.
-	* i386-opc.tbl (pcmpestri, pcmpestrm, vpcmpestri, vpcmpestrm):
-	Split 64-bit and non-64-bit variants.
-	* opcodes/i386-tbl.h: Re-generate.
-
-2017-02-24  Richard Sandiford  <richard.sandiford@arm.com>
-
-	* aarch64-tbl.h (OP_SVE_HMH, OP_SVE_VMU_HSD, OP_SVE_VMVU_HSD)
-	(OP_SVE_VMVV_HSD, OP_SVE_VMVVU_HSD, OP_SVE_VM_HSD, OP_SVE_VUVV_HSD)
-	(OP_SVE_VUV_HSD, OP_SVE_VU_HSD, OP_SVE_VVVU_H, OP_SVE_VVVU_S)
-	(OP_SVE_VVVU_HSD, OP_SVE_VVV_D, OP_SVE_VVV_D_H, OP_SVE_VVV_H)
-	(OP_SVE_VVV_HSD, OP_SVE_VVV_S, OP_SVE_VVV_S_B, OP_SVE_VVV_SD_BH)
-	(OP_SVE_VV_BHSDQ, OP_SVE_VV_HSD, OP_SVE_VZVV_HSD, OP_SVE_VZV_HSD)
-	(OP_SVE_V_HSD): New macros.
-	(OP_SVE_VMU_SD, OP_SVE_VMVU_SD, OP_SVE_VM_SD, OP_SVE_VUVV_SD)
-	(OP_SVE_VU_SD, OP_SVE_VVVU_SD, OP_SVE_VVV_SD, OP_SVE_VZVV_SD)
-	(OP_SVE_VZV_SD, OP_SVE_V_SD): Delete.
-	(aarch64_opcode_table): Add new SVE instructions.
-	(aarch64_opcode_table): Use imm_rotate{1,2} instead of imm_rotate
-	for rotation operands.  Add new SVE operands.
-	* aarch64-asm.h (ins_sve_addr_ri_s4): New inserter.
-	(ins_sve_quad_index): Likewise.
-	(ins_imm_rotate): Split into...
-	(ins_imm_rotate1, ins_imm_rotate2): ...these two inserters.
-	* aarch64-asm.c (aarch64_ins_imm_rotate): Split into...
-	(aarch64_ins_imm_rotate1, aarch64_ins_imm_rotate2): ...these two
-	functions.
-	(aarch64_ins_sve_addr_ri_s4): New function.
-	(aarch64_ins_sve_quad_index): Likewise.
-	(do_misc_encoding): Handle "MOV Zn.Q, Qm".
-	* aarch64-asm-2.c: Regenerate.
-	* aarch64-dis.h (ext_sve_addr_ri_s4): New extractor.
-	(ext_sve_quad_index): Likewise.
-	(ext_imm_rotate): Split into...
-	(ext_imm_rotate1, ext_imm_rotate2): ...these two extractors.
-	* aarch64-dis.c (aarch64_ext_imm_rotate): Split into...
-	(aarch64_ext_imm_rotate1, aarch64_ext_imm_rotate2): ...these two
-	functions.
-	(aarch64_ext_sve_addr_ri_s4): New function.
-	(aarch64_ext_sve_quad_index): Likewise.
-	(aarch64_ext_sve_index): Allow quad indices.
-	(do_misc_decoding): Likewise.
-	* aarch64-dis-2.c: Regenerate.
-	* aarch64-opc.h (FLD_SVE_i3h, FLD_SVE_rot1, FLD_SVE_rot2): New
-	aarch64_field_kinds.
-	(OPD_F_OD_MASK): Widen by one bit.
-	(OPD_F_NO_ZR): Bump accordingly.
-	(get_operand_field_width): New function.
-	* aarch64-opc.c (fields): Add new SVE fields.
-	(operand_general_constraint_met_p): Handle new SVE operands.
-	(aarch64_print_operand): Likewise.
-	* aarch64-opc-2.c: Regenerate.
-
-2017-02-24  Richard Sandiford  <richard.sandiford@arm.com>
-
-	* aarch64-tbl.h (aarch64_feature_simd_v8_3): Replace with...
-	(aarch64_feature_compnum): ...this.
-	(SIMD_V8_3): Replace with...
-	(COMPNUM): ...this.
-	(CNUM_INSN): New macro.
-	(aarch64_opcode_table): Use it for the complex number instructions.
-
-2017-02-24  Jan Beulich  <jbeulich@suse.com>
-
-	* i386-dis.c (reg_table): REG_F6/1 and REG_F7/1 decode as TEST.
-
-2017-02-23  Sheldon Lobo <sheldon.lobo@oracle.com>
-
-	Add support for associating SPARC ASIs with an architecture level.
-	* include/opcode/sparc.h (sparc_asi): New sparc_asi struct.
-	* opcodes/sparc-opc.c (asi_table): Updated asi_table and encoding/
-	decoding of SPARC ASIs.
-
-2017-02-23  Jan Beulich  <jbeulich@suse.com>
-
-	* i386-dis.c (get_valid_dis386): Don't special case VEX opcode
-	82. For 3-byte VEX only special case opcode 77 in VEX_0F space.
-
-2017-02-21  Jan Beulich  <jbeulich@suse.com>
-
-	* aarch64-asm.c (convert_bfc_to_bfm): Copy operand 0 to operand
-	1 (instead of to itself). Correct typo.
-
-2017-02-14  Andrew Waterman  <andrew@sifive.com>
-
-	* riscv-opc.c (riscv_opcodes): Add sfence.vma instruction and
-	pseudoinstructions.
-
-2017-02-15  Richard Sandiford  <richard.sandiford@arm.com>
-
-	* aarch64-opc.c (aarch64_sys_regs): Add SVE registers.
-	(aarch64_sys_reg_supported_p): Handle them.
-
-2017-02-15  Claudiu Zissulescu  <claziss@synopsys.com>
-
-	* arc-opc.c (UIMM6_20R): Define.
-	(SIMM12_20): Use above.
-	(SIMM12_20R): Define.
-	(SIMM3_5_S): Use above.
-	(UIMM7_A32_11R_S): Define.
-	(UIMM7_9_S): Use above.
-	(UIMM3_13R_S): Define.
-	(SIMM11_A32_7_S): Use above.
-	(SIMM9_8R): Define.
-	(UIMM10_A32_8_S): Use above.
-	(UIMM8_8R_S): Define.
-	(W6): Use above.
-	(arc_relax_opcodes): Use all above defines.
-
-2017-02-15  Vineet Gupta <vgupta@synopsys.com>
-
-	* arc-regs.h: Distinguish some of the registers different on
-	ARC700 and HS38 cpus.
-
-2017-02-14  Alan Modra  <amodra@gmail.com>
-
-	PR 21118
-	* ppc-opc.c (powerpc_operands): Flag SPR, SPRG and TBR entries
-	with PPC_OPERAND_SPR.  Flag PSQ and PSQM with PPC_OPERAND_GQR.
-
-2017-02-11  Stafford Horne  <shorne@gmail.com>
-	    Alan Modra  <amodra@gmail.com>
-
-	* cgen-opc.c (cgen_lookup_insn): Delete buf and base_insn temps.
-	Use insn_bytes_value and insn_int_value directly instead.  Don't
-	free allocated memory until function exit.
-
-2017-02-10  Nicholas Piggin  <npiggin@gmail.com>
-
-	* ppc-opc.c (powerpc_opcodes) <scv, rfscv>: New mnemonics.
-
-2017-02-03  Nick Clifton  <nickc@redhat.com>
-
-	PR 21096
-	* aarch64-opc.c (print_register_list): Ensure that the register
-	list index will fir into the tb buffer.
-	(print_register_offset_address): Likewise.
-	* tic6x-dis.c (print_insn_tic6x): Increase size of func_unit_buf.
-
-2017-01-27  Alexis Deruell  <alexis.deruelle@gmail.com>
-
-	PR 21056
-	* tic6x-dis.c (print_insn_tic6x): Correct displaying of parallel
-	instructions when the previous fetch packet ends with a 32-bit
-	instruction.
-
-2017-01-24  Dimitar Dimitrov  <dimitar@dinux.eu>
-
-        * pru-opc.c: Remove vague reference to a future GDB port.
-
-2017-01-20  Nick Clifton  <nickc@redhat.com>
-
-	* po/ga.po: Updated Irish translation.
-
-2017-01-18  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-
-	* arm-dis.c (coprocessor_opcodes): Fix vcmla mask and disassembly.
-
-2017-01-13  Yao Qi  <yao.qi@linaro.org>
-
-	* m68k-dis.c (match_insn_m68k): Extend comments.  Return -1
-	if FETCH_DATA returns 0.
-	(m68k_scan_mask): Likewise.
-	(print_insn_m68k): Update code to handle -1 return value.
-
-2017-01-13  Yao Qi  <yao.qi@linaro.org>
-
-	* m68k-dis.c (enum print_insn_arg_error): New.
-	(NEXTBYTE): Replace -3 with
-	PRINT_INSN_ARG_MEMORY_ERROR.
-	(NEXTULONG): Likewise.
-	(NEXTSINGLE): Likewise.
-	(NEXTDOUBLE): Likewise.
-	(NEXTDOUBLE): Likewise.
-	(NEXTPACKED): Likewise.
-	(FETCH_ARG): Likewise.
-	(FETCH_DATA): Update comments.
-	(print_insn_arg): Update comments. Replace magic numbers with
-	enum.
-	(match_insn_m68k): Likewise.
-
-2017-01-12  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
-
-	* i386-dis.c (enum): Add PREFIX_EVEX_0F3855, EVEX_W_0F3855_P_2.
-	* i386-dis-evex.h (evex_table): Updated.
-	* i386-gen.c (cpu_flag_init): Add CPU_AVX512_VPOPCNTDQ_FLAGS,
-	CPU_ANY_AVX512_VPOPCNTDQ_FLAGS. Update CPU_ANY_AVX512F_FLAGS.
-	(cpu_flags): Add CpuAVX512_VPOPCNTDQ.
-	* i386-opc.h (enum): (AVX512_VPOPCNTDQ): New.
-	(i386_cpu_flags): Add cpuavx512_vpopcntdq.
-	* i386-opc.tbl: Add Intel AVX512_VPOPCNTDQ instructions.
-	* i386-init.h: Regenerate.
-	* i386-tbl.h: Ditto.
-
-2017-01-12  Yao Qi  <yao.qi@linaro.org>
-
-	* msp430-dis.c (msp430_singleoperand): Return -1 if
-	msp430dis_opcode_signed returns false.
-	(msp430_doubleoperand): Likewise.
-	(msp430_branchinstr): Return -1 if
-	msp430dis_opcode_unsigned returns false.
-	(msp430x_calla_instr): Likewise.
-	(print_insn_msp430): Likewise.
-
-2017-01-05  Nick Clifton  <nickc@redhat.com>
-
-	PR 20946
-	* frv-desc.c (lookup_mach_via_bfd_name): Return NULL if the name
-	could not be matched.
-	(frv_cgen_cpu_open): Allow for lookup_mach_via_bfd_name returning
-	NULL.
-
-2017-01-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-
-	* aarch64-tbl.h (RCPC, RCPC_INSN): Define.
-	(aarch64_opcode_table): Use RCPC_INSN.
-
-2017-01-03  Kito Cheng  <kito.cheng@gmail.com>
-
-	* riscv-opc.c (riscv-opcodes): Add support for the "q" ISA
-	extension.
-	* riscv-opcodes/all-opcodes: Likewise.
-
-2017-01-03  Dilyan Palauzov  <dilyan.palauzov@aegee.org>
-
-	* riscv-dis.c (print_insn_args): Add fall through comment.
-
-2017-01-03  Nick Clifton  <nickc@redhat.com>
-
-	* po/sr.po: New Serbian translation.
-	* configure.ac (ALL_LINGUAS): Add sr.
-	* configure: Regenerate.
-
-2017-01-02  Alan Modra  <amodra@gmail.com>
-
-	* epiphany-desc.h: Regenerate.
-	* epiphany-opc.h: Regenerate.
-	* fr30-desc.h: Regenerate.
-	* fr30-opc.h: Regenerate.
-	* frv-desc.h: Regenerate.
-	* frv-opc.h: Regenerate.
-	* ip2k-desc.h: Regenerate.
-	* ip2k-opc.h: Regenerate.
-	* iq2000-desc.h: Regenerate.
-	* iq2000-opc.h: Regenerate.
-	* lm32-desc.h: Regenerate.
-	* lm32-opc.h: Regenerate.
-	* m32c-desc.h: Regenerate.
-	* m32c-opc.h: Regenerate.
-	* m32r-desc.h: Regenerate.
-	* m32r-opc.h: Regenerate.
-	* mep-desc.h: Regenerate.
-	* mep-opc.h: Regenerate.
-	* mt-desc.h: Regenerate.
-	* mt-opc.h: Regenerate.
-	* or1k-desc.h: Regenerate.
-	* or1k-opc.h: Regenerate.
-	* xc16x-desc.h: Regenerate.
-	* xc16x-opc.h: Regenerate.
-	* xstormy16-desc.h: Regenerate.
-	* xstormy16-opc.h: Regenerate.
+	Update year range in copyright notice of all files.
 
-2017-01-02  Alan Modra  <amodra@gmail.com>
+2018-01-02  Jan Beulich  <jbeulich@suse.com>
 
-	Update year range in copyright notice of all files.
+	* i386-gen.c (operand_type_init): Restore OPERAND_TYPE_REGYMM
+	and OPERAND_TYPE_REGZMM entries.
 
-For older changes see ChangeLog-2016
+For older changes see ChangeLog-2017
 
-Copyright (C) 2017 Free Software Foundation, Inc.
+Copyright (C) 2018 Free Software Foundation, Inc.
 
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/ChangeLog-2017 ./opcodes/ChangeLog-2017
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/ChangeLog-2017	1970-01-01 00:00:00.000000000 +0000
+++ ./opcodes/ChangeLog-2017	2018-01-09 02:04:59.000000000 +0000
@@ -0,0 +1,1977 @@
+2017-12-20  Jim Wilson  <jimw@sifive.com>
+
+	* riscv-opc.c (match_c_add_with_hint, match_c_lui_with_hint): New.
+	(riscv_opcodes) <li>: Delete "d,0" line.  Change Cj to Co.
+	<andi, and, add, addiw, addw, c.addi>: Change Cj to Co.
+	<add>: Add explanatory comment for 4-operand add instruction.
+	<c.nop>: Add support for immediate operand.
+	<c.mv, c.add>: Use match_c_add_with_hint instead of match_c_add.
+	<c.lui>: Use match_c_lui_with_hint instead of match_c_lui.
+	<c.li, c.slli>: Use match_opcode instead of match_rd_nonzero.
+
+2017-12-19  Tamar Christina  <tamar.christina@arm.com>
+
+	PR gas/22559
+	* aarch64-asm.c (aarch64_ins_reglane): Change AARCH64_OPND_QLF_S_B to
+	AARCH64_OPND_QLF_S_4B
+	* aarch64-dis.c (aarch64_ext_reglane): Change AARCH64_OPND_QLF_S_B to
+	AARCH64_OPND_QLF_S_4B
+	* aarch64-opc.c (aarch64_opnd_qualifiers): Add 4b variant.
+	* aarch64-tbl.h (QL_V2DOT): Change S_B to S_4B.
+
+2017-12-19  Tamar Christina  <tamar.christina@arm.com>
+
+	PR gas/22529
+	* aarch64-opc.c (aarch64_opnd_qualifiers): Add 4b variant.
+
+2017-12-18  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-gen.c (operand_type_init): Delete OPERAND_TYPE_REGYMM and
+	OPERAND_TYPE_REGZMM entries.
+	* i386-opc.h (enum of opcode modifiers): Extend comment.
+	i386-opc.tbl (vaddpd, vaddps, vaddsubpd, vaddsubps, vandnpd,
+	vandnps, vandpd, vandps, vblendpd, vblendps, vblendvpd,
+	vblendvps, vbroadcastss, vcmpeq_ospd, vcmpeq_osps, vcmpeqpd,
+	vcmpeqps, vcmpeq_uqpd, vcmpeq_uqps, vcmpeq_uspd, vcmpeq_usps,
+	vcmpfalse_ospd, vcmpfalse_osps, vcmpfalsepd, vcmpfalseps,
+	vcmpge_oqpd, vcmpge_oqps, vcmpgepd, vcmpgeps, vcmpgt_oqpd,
+	vcmpgt_oqps, vcmpgtpd, vcmpgtps, vcmple_oqpd, vcmple_oqps,
+	vcmplepd, vcmpleps, vcmplt_oqpd, vcmplt_oqps, vcmpltpd,
+	vcmpltps, vcmpneq_oqpd, vcmpneq_oqps, vcmpneq_ospd,
+	vcmpneq_osps, vcmpneqpd, vcmpneqps, vcmpneq_uspd, vcmpneq_usps,
+	vcmpngepd, vcmpngeps, vcmpnge_uqpd, vcmpnge_uqps, vcmpngtpd,
+	vcmpngtps, vcmpngt_uqpd, vcmpngt_uqps, vcmpnlepd, vcmpnleps,
+	vcmpnle_uqpd, vcmpnle_uqps, vcmpnltpd, vcmpnltps, vcmpnlt_uqpd,
+	vcmpnlt_uqps, vcmpordpd, vcmpordps, vcmpord_spd, vcmpord_sps,
+	vcmppd, vcmpps, vcmptruepd, vcmptrueps, vcmptrue_uspd,
+	vcmptrue_usps, vcmpunordpd, vcmpunordps, vcmpunord_spd,
+	vcmpunord_sps, vcvtdq2ps, vcvtpd2dq, vcvtpd2ps, vcvtps2dq,
+	vcvttpd2dq, vcvttps2dq, vdivpd, vdivps, vdpps, vhaddpd, vhaddps,
+	vhsubpd, vhsubps, vlddqu, vmaskmovpd, vmaskmovps, vmaxpd,
+	vmaxps, vminpd, vminps, vmovapd, vmovaps, vmovdqa, vmovdqu,
+	vmovmskpd, vmovmskps, vmovntdq, vmovntpd, vmovntps, vmovshdup,
+	vmovsldup, vmovupd, vmovups, vmulpd, vmulps, vorpd, vorps,
+	vpermilpd, vpermilps, vptest, vrcpps, vroundpd, vroundps,
+	vrsqrtps, vshufpd, vshufps, vsqrtpd, vsqrtps, vsubpd, vsubps,
+	vtestpd, vtestps, vunpckhpd, vunpckhps, vunpcklpd, vunpcklps,
+	vxorpd, vxorps, vpblendd, vpbroadcastb, vpbroadcastd,
+	vpbroadcastw, vpbroadcastq, vpmaskmovd, vpmaskmovq, vpsllvd,
+	vpsllvq, vpsravd, vpsravq, vpsrlvd, vpsrlvq): Fold 128- and
+	256-bit forms. Use CheckRegSize instead of IgnoreSize where
+	appropriate. Drop Xmmword and Ymmword from the results where
+	possible.
+	* i386-tbl.h: Re-generate.
+
+2017-12-18  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-gen.c (operand_type_shorthands): Add RegXMM, RegYMM, and
+	RegZMM.
+	(opcode_modifiers): Drop FirstXmm0.
+	(operand_types): Replace RegXMM, RegYMM, and RegZMM with just
+	RegSIMD.
+	* i386-opc.h (enum of opcode modifiers): Drop FirstXmm0.
+	(struct i386_opcode_modifier): Drop firstxmm0.
+	(enum of operand types): Replace RegXMM, RegYMM, and RegZMM with
+	just RegSIMD. Extend comment.
+	(union i386_operand_type): Replace regxmm, regymm, and regzmm
+	with just regsimd.
+	* i386-opc.tbl (blendvpd, blendvps, pblendvb, sha256rnds2): Use
+	Acc|Xmmword.
+	* i386-reg.tbl (xmm0): Add Acc.
+	* i386-init.h, i386-tbl.h: Re-generate.
+
+2017-12-18  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-gen.c (operand_type_shorthands): Add FloatAcc and
+	FloatReg.
+	(operand_types): Drop FloatAcc and FloatReg.
+	* i386-opc.h (enum of operand types): Likewise. Extend comment.
+	(union i386_operand_type): Drop floatacc and floatreg.
+	* i386-reg.tbl (st, st(0)): Replace FloatAcc by Acc.
+	* i386-init.h, i386-tbl.h: Re-generate.
+
+2017-12-18  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-gen.c (operand_type_shorthands): New.
+	(opcode_modifiers): Replace Reg<N> with just Reg.
+	(set_bitfield_from_cpu_flag_init): Rename to
+	set_bitfield_from_shorthand. Drop value parameter. Process
+	operand_type_shorthands.
+	(set_bitfield): Adjust call accordingly.
+	* i386-opc.h (enum of operand types): Replace Reg<N> with just
+	Reg.
+	(union i386_operand_type): Replace reg<N> with just reg.
+	* i386-opc.tbl (extractps, pextrb, pextrw, pinsrb, pinsrw,
+	vextractps, vpextrb, vpextrw, vpinsrb, vpinsrw): Split into
+	separate register and memory forms.
+	* i386-reg.tbl (al): Drop Byte.
+	(ax): Drop Word.
+	(eax): Drop Dword.
+	(rax): Drop Qword.
+	* i386-init.h, i386-tbl.h: Re-generate.
+
+2017-12-15  Dimitar Dimitrov  <dimitar@dinux.eu>
+
+	* disassemble.c (disassemble_init_for_target): Don't put PRU
+	between powerpc and rs6000 cases.
+
+2017-12-15  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-opc.tbl (adc, add, and, cmp, cmps, in, ins, lods, mov,
+	movabs, movq, movs, or, out, outs, ptwrite, rcl, rcr, rol, ror,
+	sal, sar, sbb, scas, scmp, shl, shr, slod, smov, ssca, ssto,
+	stos, sub, test, xor): Drop CheckRegSize from variants not
+	allowing for two (or more) register operands.
+	* i386-tbl.h: Re-generate.
+
+2017-12-13  Jim Wilson  <jimw@sifive.com>
+
+	PR 22599
+	* riscv-opc.c (riscv_opcodes) <fsrmi, fsflagsi>: New.
+
+2017-12-13  Dimitar Dimitrov  <dimitar@dinux.eu>
+
+	* disassemble.c: Enable disassembler_needs_relocs for PRU.
+
+2017-12-11  Petr Pavlu  <petr.pavlu@arm.com>
+	    Renlin Li  <renlin.li@arm.com>
+
+	* aarch64-dis.c (print_insn_aarch64): Move symbol section check ...
+	(get_sym_code_type): Here.
+
+2017-12-03  Alan Modra  <amodra@gmail.com>
+
+	* ppc-opc.c (extract_li20): Rewrite.
+
+2017-12-01  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* opcodes/ppc-dis.c (disassemble_init_powerpc): Fix white space.
+	(operand_value_powerpc): Update return and argument type.
+	<value, top>: Update type.
+	(skip_optional_operands): Update argument type.
+	(lookup_powerpc): Likewise.
+	(lookup_vle): Likewise.
+	<table_opcd, table_mask, insn2>: Update type.
+	(lookup_spe2): Update argument type.
+	<table_opcd, table_mask, insn2>: Update type.
+	(print_insn_powerpc) <insn, value>: Update type.
+	Use PPC_INT_FMT for printing instructions and operands.
+	* opcodes/ppc-opc.c (insert_arx, extract_arx, insert_ary, extract_ary,
+	insert_rx, extract_rx, insert_ry, extract_ry, insert_bat, extract_bat,
+	insert_bba, extract_bba, insert_bdm, extract_bdm, insert_bdp,
+	extract_bdp, valid_bo_pre_v2, valid_bo_post_v2, valid_bo, insert_bo,
+	extract_bo, insert_boe, extract_boe, insert_dcmxs, extract_dcmxs,
+	insert_dxd, extract_dxd, insert_dxdn, extract_dxdn, insert_fxm,
+	extract_fxm, insert_li20, extract_li20, insert_ls, extract_ls,
+	insert_esync, extract_esync, insert_mbe, extract_mbe, insert_mb6,
+	extract_mb6, extract_nb, insert_nbi, insert_nsi, extract_nsi,
+	insert_ral, extract_ral, insert_ram, extract_ram, insert_raq,
+	extract_raq, insert_ras, extract_ras, insert_rbs, extract_rbs,
+	insert_rbx, extract_rbx, insert_sci8, extract_sci8, insert_sci8n,
+	extract_sci8n, insert_sd4h, extract_sd4h, insert_sd4w, extract_sd4w,
+	insert_oimm, extract_oimm, insert_sh6, extract_sh6, insert_spr,
+	extract_spr, insert_sprg, extract_sprg, insert_tbr, extract_tbr,
+	insert_xt6, extract_xt6, insert_xtq6, extract_xtq6, insert_xa6,
+	extract_xa6, insert_xb6, extract_xb6, insert_xb6s, extract_xb6s,
+	insert_xc6, extract_xc6, insert_dm, extract_dm, insert_vlesi,
+	extract_vlesi, insert_vlensi, extract_vlensi, insert_vleui,
+	extract_vleui, insert_vleil, extract_vleil, insert_evuimm1_ex0,
+	extract_evuimm1_ex0, insert_evuimm2_ex0, extract_evuimm2_ex0,
+	insert_evuimm4_ex0, extract_evuimm4_ex0, insert_evuimm8_ex0,
+	extract_evuimm8_ex0, insert_evuimm_lt8, extract_evuimm_lt8,
+	insert_evuimm_lt16, extract_evuimm_lt16, insert_rD_rS_even,
+	extract_rD_rS_even, insert_off_lsp, extract_off_lsp, insert_off_spe2,
+	extract_off_spe2, insert_Ddd, extract_Ddd): Update types.
+	(OP, OPTO, OPL, OPVUP, OPVUPRT, A, AFRALFRC_MASK, B, BD8, BD8IO, BD15,
+	BD24, BBO, Y_MASK  , AT1_MASK, AT2_MASK, BBOCB, C_LK, C, CTX, UCTX,
+	DX, EVSEL, IA16, I16A, I16L, IM7, LI20, MME, MD, MDS, SC, SC_MASK,
+	SCI8, SCI8BF, SD4, SE_IM5, SE_R, SE_RR, VX, VX_LSP, VX_RA_CONST,
+	VX_RB_CONST, VX_SPE_CRFD, VX_SPE2_CLR, VX_SPE2_SPLATB, VX_SPE2_OCTET,
+	VX_SPE2_DDHH, VX_SPE2_HH, VX_SPE2_EVMAR, VX_SPE2_EVMAR_MASK, VXA,
+	VXR, VXASH, X, EX, XX2, XX3, XX3RC, XX4, Z, XWRA_MASK, XLRT_MASK,
+	XRLARB_MASK, XLRAND_MASK, XRTLRA_MASK, XRTLRARB_MASK, XRTARARB_MASK,
+	XRTBFRARB_MASK, XOPL, XOPL2, XRCL, XRT, XRTRA, XCMP_MASK, XCMPL_MASK,
+	XTO, XTLB, XSYNC, XEH_MASK, XDSS, XFL, XISEL, XL, XLO, XLYLK, XLOCB,
+	XMBAR, XO, XOPS, XS, XFXM, XSPR, XUC, XW, APU): Update types in casts.
+
+2017-11-29  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-gen.c (active_cpu_flags, active_isstring, enum stage):
+	New.
+	(output_cpu_flags): Update active_cpu_flags.
+	(process_i386_opcode_modifier): Update active_isstring.
+	(output_operand_type): Rename "macro" parameter to "stage",
+	changing its type.
+	(process_i386_operand_type): Likewise. Track presence of
+	BaseIndex and emit DispN accordingly.
+	(output_i386_opcode, process_i386_registers,
+	process_i386_initializers): Adjust calls to
+	process_i386_operand_type() for its changed parameter type.
+	* i386-opc.tbl: Drop Disp8, Disp16, Disp32, and Disp32S from
+	all insns operands having BaseIndex set.
+	* i386-tbl.h: Re-generate.
+
+2017-11-29  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-gen.c (operand_type_init): Remove OPERAND_TYPE_VEC_DISP8
+	entry.
+	(operand_types): Remove Vec_Disp8 entry.
+	* i386-opc.h (Vec_Disp8): Delete.
+	(union i386_operand_type): Remove vec_disp8.
+	(i386-opc.tbl): Remove Vec_Disp8.
+	* i386-init.h, i386-tbl.h: Re-generate.
+
+2017-11-29  Stefan Stroe  <stroestefan@gmail.com>
+
+	* po/Make-in (datadir): Define as @datadir@.
+	(localedir): Define as @localedir@.
+	(gnulocaledir, gettextsrcdir): Use @datarootdir@.
+
+2017-11-27  Nick Clifton  <nickc@redhat.com>
+
+	* po/zh_CN.po: Updated simplified Chinese translation.
+
+2017-11-24  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-dis.c (float_mem): Add suffixes to fi* in the "de" and
+	"df" groups.
+
+2017-11-23  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
+
+	* i386-opc.tbl: Add Disp8MemShift for AVX512 VAES instructions.
+	* i386-tbl.h: Regenerate.
+
+2017-11-23  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-dis.c (OP_E_memory): Also shift the 8-bit immediate in
+	the 16-bit addressing case.
+
+2017-11-23  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-dis.c (dis386_twobyte): Correct ud1. Add ud0.
+	(twobyte_has_modrm): Set flag for index 0xb9 and 0xff.
+	* i386-opc.tbl (ud1, ud2b): Add operands.
+	(ud0): New.
+	* i386-tbl.h: Re-generate.
+
+2017-11-22  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
+
+	* i386-opc.tbl: Remove Vec_Disp8 from vgf2p8mulb.
+	* i386-tbl.h: Regenerate.
+
+2017-11-22  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
+
+	* i386-opc.tbl: Remove Vec_Disp8 from vpcompressb and vpexpandb.
+	* i386-tbl.h: Regenerate.
+
+2017-11-22  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	*arc-opc (insert_rhv2): Check h-regs range.
+
+2017-11-21  Claudiu Zissulescu <claziss@synopsys.com>
+
+	* arc-dis.c (print_insn_arc): Pretty print pc-relative offsets.
+	* arc-opc.c (SIMM21_A16_5): Make it pc-relative.
+
+2017-11-16  Tamar Christina  <tamar.christina@arm.com>
+
+	* aarch64-tbl.h (aarch64_feature_fp_16_v8_2): Require AARCH64_FEATURE_F16_FML
+	and AARCH64_FEATURE_F16.
+
+2017-11-16  Tamar Christina  <tamar.christina@arm.com>
+
+	* aarch64-tbl.h (sha512h, sha512h2, sha512su0, sha512su1, eor3): New.
+	(rax1, xar, bcax, sm3ss1, sm3tt1a, sm3tt1b, sm3tt2a, sm3tt2b): New.
+	(sm3partw1, sm3partw2, sm4e, sm4ekey, fmlal, fmlsl): New.
+	(fmlal2, fmlsl2, cfinv, rmif, setf8, setf16, stlurb): New.
+	(ldapurb, ldapursb, stlurh, ldapurh, ldapursh, stlur): New.
+	(ldapur, ldapursw, stlur): New.
+	* aarch64-dis-2.c: Regenerate.
+
+2017-11-16  Jan Beulich  <jbeulich@suse.com>
+
+	(get_valid_dis386): Never flag bad opcode when
+	vex.register_specifier is beyond 7. Always store all four
+	bits of it. Move 16-/32-bit override in EVEX handling after
+	all to be overridden bits have been set.
+	(OP_VEX): Mask vex.register_specifier outside of 64-bit mode.
+	Use rex to determine GPR register set.
+	(OP_EX_VexReg, OP_Vex_2src_1, OP_Vex_2src_2, OP_REG_VexI4,
+	OP_LWP_E): Mask vex.register_specifier outside of 64-bit mode.
+
+2017-11-15  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-dis.c (OP_VEX, OP_LWPCB_E, OP_LWP_E): Use rex to
+	determine GPR register set.
+
+2017-11-15  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-dis.c (VEXI4_Fixup, VexI4): Delete.
+	(prefix_table, xop_table, vex_len_table): Remove VexI4 uses.
+	(OP_EX_VexW): Move setting of vex_w_done. Update codep on 2nd
+	pass.
+	(OP_REG_VexI4): Drop low 4 bits check.
+
+2017-11-15  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-reg.tbl (axl): Remove Acc and Byte.
+	* i386-tbl.h: Re-generate.
+
+2017-11-14  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-dis.c (VPCOM_Fixup, VPCOM, xop_cmp_op): New.
+	(vex_len_table): Use VPCOM.
+
+2017-11-14  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-dis-evex.h (evex_table[EVEX_W_0F3A3E_P_2]): Use VPCMP.
+	(evex_table[EVEX_W_0F3A3F_P_2]): Likewise.
+	* i386-opc.tbl (vpcmpeqb, vpcmpgtb, vpcmpeqw, vpcmpgtw, vpcmpuw,
+	vpcmpw): Move up.
+	(vpcmpeqb, vpcmpleb, vpcmpltb, vpcmpneqb, vpcmpnleb, vpcmpnltb,
+	vpcmpequb, vpcmpleub, vpcmpltub, vpcmpnequb, vpcmpnleub,
+	vpcmpnltub, vpcmpeqw, vpcmplew, vpcmpltw, vpcmpneqw, vpcmpnlew,
+	vpcmpnltw, vpcmpequw, vpcmpleuw, vpcmpltuw, vpcmpnequw, vpcmpnleuw,
+	vpcmpnltuw): New.
+	* i386-tbl.h: Re-generate.
+
+2017-11-14  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-opc.tbl (cmps, ins, lods, movs, outs, scas, scmp, slod,
+	smov, ssca, stos, ssto, xlat): Drop Disp*.
+	* i386-tbl.h: Re-generate.
+
+2017-11-13  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-opc.tbl (fxsave64, fxrstor64, xsave64, xrstor64,
+	xsaveopt64): Add No_qSuf.
+	* i386-tbl.h: Re-generate.
+
+2017-11-09  Tamar Christina  <tamar.christina@arm.com>
+
+	* aarch64-opc.c (aarch64_sys_regs): Add ARMv8.4-a registers;
+	dit, vstcr_el2, vsttbr_el2, cnthvs_tval_el2, cnthvs_cval_el2,
+	cnthvs_ctl_el2, cnthps_tval_el2, cnthps_cval_el2, cnthps_ctl_el2,
+	sder32_el2, vncr_el2.
+	(aarch64_sys_reg_supported_p): Likewise.
+	(aarch64_pstatefields): Add dit register.
+	(aarch64_pstatefield_supported_p): Likewise.
+	(aarch64_sys_regs_tlbi): Add vmalle1os, vae1os, aside1os, vaae1os,
+	vale1os, vaale1os, ipas2e1os, ipas2le1os, vae2os, vale2os, vmalls12e1os,
+	vae3os, vale3os, alle2os, alle1os, alle3os, rvae1, rvaae1, rvale1,
+	rvaale1, rvae1is, rvaae1is, rvale1is, rvaale1is, rvae1os, rvaae1os,
+	rvale1os, rvaale1os, ripas2e1is, ripas2le1is, ripas2e1, ripas2le1,
+	ripas2e1os, ripas2le1os, rvae2, rvale2, rvae2is, rvale2is, rvae2os,
+	rvale2os, rvae3, rvale3, rvae3is, rvale3is, rvae3os, rvale3os.
+
+2017-11-09  Tamar Christina  <tamar.christina@arm.com>
+
+	* aarch64-tbl.h (QL_SHA512UPT, QL_V2SAME2D, QL_V3SAME2D): New.
+	(QL_V4SAME16B, QL_V4SAME4S, QL_XAR, QL_SM3TT, QL_V3FML2S): New.
+	(QL_V3FML4S, QL_V2FML2S, QL_V2FML4S, QL_RMIF, QL_SETF): New.
+	(QL_STLW, QL_STLX): New.
+
+2017-11-09  Tamar Christina  <tamar.christina@arm.com>
+
+	* aarch64-asm.h (ins_addr_offset): New.
+	* aarch64-asm.c (aarch64_ins_reglane): Add cryptosm3.
+	(aarch64_ins_addr_offset): New.
+	* aarch64-asm-2.c: Regenerate.
+	* aarch64-dis.h (ext_addr_offset): New.
+	* aarch64-dis.c (aarch64_ext_reglane): Add cryptosm3.
+	(aarch64_ext_addr_offset): New.
+	* aarch64-dis-2.c: Regenerate.
+	* aarch64-opc.h (aarch64_field_kind): Add FLD_imm6_2,
+	FLD_imm4_2 and FLD_SM3_imm2.
+	* aarch64-opc.c (fields): Add FLD_imm6_2,
+	FLD_imm4_2 and FLD_SM3_imm2.
+	(operand_general_constraint_met_p): Add AARCH64_OPND_ADDR_OFFSET.
+	(aarch64_print_operand): Add AARCH64_OPND_Va, AARCH64_OPND_SM3_IMM2,
+	AARCH64_OPND_MASK, AARCH64_OPND_IMM_2 and AARCH64_OPND_ADDR_OFFSET.
+	* aarch64-opc-2.c (Va, MASK, IMM_2, ADDR_OFFSET, SM3_IMM2): New.
+	* aarch64-tbl.h
+	(aarch64_opcode_table): Add Va, MASK, IMM_2, ADDR_OFFSET, SM3_IMM2.
+
+2017-11-09 Tamar Christina  <tamar.christina@arm.com>
+
+	* aarch64-tbl.h
+	(aarch64_feature_v8_4, aarch64_feature_crypto_v8_2): New.
+	(aarch64_feature_sm4, aarch64_feature_sha3): New.
+	(aarch64_feature_fp_16_v8_2): New.
+	(ARMV8_4, SHA3, SM4, CRYPTO_V8_2, FP_F16_V8_2): New.
+	(V8_4_INSN, CRYPTO_V8_2_INSN): New.
+	(SHA3_INSN, SM4_INSN, FP16_V8_2_INSN): New.
+
+2017-11-08  Tamar Christina  <tamar.christina@arm.com>
+
+	* aarch64-tbl.h (aarch64_feature_crypto): Add AES and SHA2.
+	(aarch64_feature_sha2, aarch64_feature_aes): New.
+	(SHA2, AES): New.
+	(AES_INSN, SHA2_INSN): New.
+	(pmull, pmull2, aese, aesd, aesmc, aesimc): Change to AES_INS.
+	(sha1h, sha1su1, sha256su0, sha1c, sha1p,
+	 sha1m, sha1su0, sha256h, sha256h2, sha256su1):
+	Change to SHA2_INS.
+
+2017-11-08  Jiong Wang  <jiong.wang@arm.com>
+	    Tamar Christina <tamar.christina@arm.com>
+
+	* arm-dis.c (coprocessor_opcodes): New entries for ARMv8.2-A new
+	FP16 instructions, including vfmal.f16 and vfmsl.f16.
+
+2017-11-07  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* arc-nps400-tbl.h: Change incorrect use of NONE to MISC.
+
+2017-11-07  Alan Modra  <amodra@gmail.com>
+
+	* opintl.h: Formatting, comment fixes.
+	(gettext, ngettext): Redefine when ENABLE_NLS.
+	(ngettext, dngettext, dcngettext): Define when !ENABLE_NLS.
+	(_): Define using gettext.
+	(textdomain, bindtextdomain): Use safer "do nothing".
+
+2017-11-03  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* arc-dis.c (print_hex): New variable.
+	(parse_option): Check for hex option.
+	(print_insn_arc): Use hexadecimal representation for short
+	immediate values when requested.
+	(print_arc_disassembler_options): Add hex option to the list.
+
+2017-11-03  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* arc-tbl.h (abss, abssh, adc, adcs, adds, aslacc, asls, aslsacc)
+	(asrs, asrsr, cbflyhf0r, cbflyhf1r, cmacchfr, cmacchnfr, cmachfr)
+	(cmachnfr, cmpychfr, cmpychnfr, cmpyhfmr, cmpyhfr, cmpyhnfr, divf)
+	(dmachbl, dmachbm, dmachf, dmachfr, dmacwhf, dmpyhbl, dmpyhbm)
+	(dmpyhf, dmpyhfr, dmpyhwf, dmpywhf, dsync, flagacc, getacc, macdf)
+	(macf, macfr, macwhfl, macwhflr, macwhfm, macwhfmr, macwhkl)
+	(macwhkul, macwhl, macwhul, mpydf, mpyf, mpyfr, mpywhfl, mpywhflr)
+	(mpywhfm, mpywhfmr, mpywhkl, mpywhkul, mpywhl, mpywhul, msubdf)
+	(msubf, msubfr, msubwhfl, msubwhflr, msubwhfm, msubwhfmr, mul64)
+	(negs, negsh, normacc, qmachf, qmpyh, qmpyhf, rndh, satf, sath)
+	(sbcs, setacc, sflag, sqrt, sqrtf, subs, swi_s, vabs2h, vabss2h)
+	(vadd4b, vadds2, vadds2h, vadds4h, vaddsubs, vaddsubs2h)
+	(vaddsubs4h, valgn2h, vasl2h, vasls2h, vasr2h, vasrs2h, vasrsr2h)
+	(vext2bhl, vext2bhlf, vext2bhm, vext2bhmf, vlsr2h, vmac2hf)
+	(vmac2hfr, vmac2hnfr, vmax2h, vmin2h, vmpy2h, vmpy2hf, vmpy2hfr)
+	(vmpy2hwf, vmsub2hf, vmsub2hfr, vmsub2hnfr, vneg2h, vnegs2h)
+	(vnorm2h, vpack2hbl, vpack2hblf, vpack2hbm, vpack2hbmf, vpack2hl)
+	(vpack2hm, vperm, vrep2hl, vrep2hm, vsext2bhl, vsext2bhm, vsub4b)
+	(vsubadds, vsubadds2h, vsubadds4h, vsubs2, vsubs2h, vsubs4h):
+	Changed opcodes.
+	(prealloc, prefetch*): Place them before ld instruction.
+	* arc-opc.c (skip_this_opcode): Add ARITH class.
+
+2017-10-25  Alan Modra  <amodra@gmail.com>
+
+	PR 22348
+	* cr16-dis.c (cr16_cinvs, instruction, cr16_currInsn): Make static.
+	(cr16_words, cr16_allWords, processing_argument_number): Likewise.
+	(imm4flag, size_changed): Likewise.
+	* crx-dis.c (crx_cinvs, NUMCINVS, instruction, currInsn): Likewise.
+	(words, allWords, processing_argument_number): Likewise.
+	(cst4flag, size_changed): Likewise.
+	* crx-opc.c (crx_cst4_map): Rename from cst4_map.
+	(crx_cst4_maps): Rename from cst4_maps.
+	(crx_no_op_insn): Rename from no_op_insn.
+
+2017-10-24  Andrew Waterman  <andrew@sifive.com>
+
+	* riscv-opc.c (match_c_addi16sp) : New function.
+	(match_c_addi4spn): New function.
+	(match_c_lui): Don't allow 0-immediate encodings.
+	(riscv_opcodes) <addi>: Use the above functions.
+	<add>: Likewise.
+	<c.addi4spn>: Likewise.
+	<c.addi16sp>: Likewise.
+
+2017-10-23  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
+
+	* i386-init.h: Regenerate
+	* i386-tbl.h: Likewise
+
+2017-10-23  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
+
+	* i386-dis.c (enum): Add PREFIX_EVEX_0F3854, PREFIX_EVEX_0F388F.
+	(enum): Add EVEX_W_0F3854_P_2.
+	* i386-dis-evex.h (evex_table): Updated.
+	* i386-gen.c (cpu_flag_init): Add CPU_AVX512_BITALG,
+	CPU_ANY_AVX512_BITALG_FLAGS. Update CPU_ANY_AVX512F_FLAGS.
+	(cpu_flags): Add CpuAVX512_BITALG.
+	* i386-opc.h (enum): Add CpuAVX512_BITALG.
+	(i386_cpu_flags): Add cpuavx512_bitalg..
+	* i386-opc.tbl: Add Intel AVX512_BITALG instructions.
+	* i386-init.h: Regenerate.
+	* i386-tbl.h: Likewise.
+
+2017-10-23  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
+
+	* i386-dis.c (enum): Add PREFIX_EVEX_0F3850, PREFIX_EVEX_0F3851.
+	* i386-dis-evex.h (evex_table): Updated.
+	* i386-gen.c (cpu_flag_init): Add CPU_AVX512_VNNI,
+	CPU_ANY_AVX512_VNNI_FLAGS. Update CPU_ANY_AVX512F_FLAGS.
+	(cpu_flags): Add CpuAVX512_VNNI.
+	* i386-opc.h (enum): Add CpuAVX512_VNNI.
+	(i386_cpu_flags): Add cpuavx512_vnni.
+	* i386-opc.tbl Add Intel AVX512_VNNI instructions.
+	* i386-init.h: Regenerate.
+	* i386-tbl.h: Likewise.
+
+2017-10-23  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
+
+	* i386-dis.c (enum): Add PREFIX_EVEX_0F3A44.
+	(enum): Remove VEX_LEN_0F3A44_P_2.
+	(vex_len_table): Ditto.
+	(enum): Remove VEX_W_0F3A44_P_2.
+	(vew_w_table): Ditto.
+	(prefix_table): Adjust instructions (see prefixes above).
+	* i386-dis-evex.h (evex_table):
+	Add new instructions (see prefixes above).
+	* i386-gen.c (cpu_flag_init): Add VPCLMULQDQ.
+	(bitfield_cpu_flags): Ditto.
+	* i386-opc.h (enum): Ditto.
+	(i386_cpu_flags): Ditto.
+	(CpuUnused): Comment out to avoid zero-width field problem.
+	* i386-opc.tbl (vpclmulqdq): New instruction.
+	* i386-init.h: Regenerate.
+	* i386-tbl.h: Ditto.
+
+2017-10-23  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
+
+	* i386-dis.c (enum): Add PREFIX_EVEX_0F38DC, PREFIX_EVEX_0F38DD,
+	PREFIX_EVEX_0F38DE, PREFIX_EVEX_0F38DF.
+	(enum): Remove VEX_LEN_0F38DC_P_2, VEX_LEN_0F38DD_P_2,
+	VEX_LEN_0F38DE_P_2, VEX_LEN_0F38DF_P_2.
+	(vex_len_table): Ditto.
+	(enum): Remove VEX_W_0F38DC_P_2, VEX_W_0F38DD_P_2,
+	VEX_W_0F38DE_P_2, VEX_W_0F38DF_P_2.
+	(vew_w_table): Ditto.
+	(prefix_table): Adjust instructions (see prefixes above).
+	* i386-dis-evex.h (evex_table):
+	Add new instructions (see prefixes above).
+	* i386-gen.c (cpu_flag_init): Add VAES.
+	(bitfield_cpu_flags): Ditto.
+	* i386-opc.h (enum): Ditto.
+	(i386_cpu_flags): Ditto.
+	* i386-opc.tbl (vaes{enc,dec}{last,}): New instructions.
+	* i386-init.h: Regenerate.
+	* i386-tbl.h: Ditto.
+
+2017-10-23  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
+
+	* i386-dis.c (enum): Add PREFIX_0F38CF, PREFIX_0F3ACE, PREFIX_0F3ACF,
+	PREFIX_VEX_0F38CF, PREFIX_VEX_0F3ACE, PREFIX_VEX_0F3ACF,
+	PREFIX_EVEX_0F38CF, PREFIX_EVEX_0F3ACE, PREFIX_EVEX_0F3ACF.
+	(enum): Add VEX_W_0F38CF_P_2, VEX_W_0F3ACE_P_2, VEX_W_0F3ACF_P_2,
+	EVEX_W_0F3ACE_P_2, EVEX_W_0F3ACF_P_2.
+	(prefix_table): Updated (see prefixes above).
+	(three_byte_table): Likewise.
+	(vex_w_table): Likewise.
+	* i386-dis-evex.h: Likewise.
+	* i386-gen.c (cpu_flag_init): Add CPU_GFNI_FLAGS, CpuGFNI.
+	(cpu_flags): Add CpuGFNI.
+	* i386-opc.h (enum): Add CpuGFNI.
+	(i386_cpu_flags): Add cpugfni.
+	* i386-opc.tbl: Add Intel GFNI instructions.
+	* i386-init.h: Regenerate.
+	* i386-tbl.h: Likewise.
+
+2017-10-23  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
+
+	* i386-dis.c (enum): Add b_scalar_mode, w_scalar_mode.
+	Define EXbScalar and EXwScalar for OP_EX.
+	(enum): Add PREFIX_EVEX_0F3862, PREFIX_EVEX_0F3863,
+	PREFIX_EVEX_0F3870, PREFIX_EVEX_0F3871, PREFIX_EVEX_0F3872,
+	PREFIX_EVEX_0F3873, PREFIX_EVEX_0F3A70, PREFIX_EVEX_0F3A71,
+	PREFIX_EVEX_0F3A72, PREFIX_EVEX_0F3A73.
+	(enum): Add EVEX_W_0F3862_P_2, EVEX_W_0F3863_P_2,
+	EVEX_W_0F3870_P_2, EVEX_W_0F3871_P_2, EVEX_W_0F3872_P_2,
+	EVEX_W_0F3873_P_2, EVEX_W_0F3A70_P_2, EVEX_W_0F3A71_P_2,
+	EVEX_W_0F3A72_P_2, EVEX_W_0F3A73_P_2.
+	(intel_operand_size): Handle b_scalar_mode and w_scalar_mode.
+	(OP_E_memory): Likewise.
+	* i386-dis-evex.h: Updated.
+	* i386-gen.c (cpu_flag_init): Add CPU_AVX512_VBMI2,
+	CPU_ANY_AVX512_VBMI2_FLAGS. Update CPU_ANY_AVX512F_FLAGS.
+	(cpu_flags): Add CpuAVX512_VBMI2.
+	* i386-opc.h (enum): Add CpuAVX512_VBMI2.
+	(i386_cpu_flags): Add cpuavx512_vbmi2.
+	* i386-opc.tbl: Add Intel AVX512_VBMI2 instructions.
+	* i386-init.h: Regenerate.
+	* i386-tbl.h: Likewise.
+
+2017-10-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* visium-dis.c (disassem_class1) <case 0>: Print the operands.
+
+2017-10-12  James Bowman  <james.bowman@ftdichip.com>
+
+	* ft32-dis.c (print_insn_ft32): Replace FT32_FLD_K8 with K15.
+	* ft32-opc.c (ft32_opc_info): Replace FT32_FLD_K8 with
+	K15. Add jmpix pattern.
+
+2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+	* s390-opc.txt (prno, tpei, irbm): New instructions added.
+
+2017-10-09  Heiko Carstens  <heiko.carstens@de.ibm.com>
+
+	* s390-opc.c (INSTR_SI_RD): New macro.
+	(INSTR_S_RD): Adjust example instruction.
+	* s390-opc.txt (lpsw, ssm, ts): Change S_RD instruction format to
+	SI_RD.
+
+2017-10-01  Alexander Fedotov  <alfedotov@gmail.com>
+
+	* ppc-opc.c (vle_opcodes): Add e_lmvsprw, e_lmvgprw,
+	e_lmvsrrw, e_lmvcsrrw and e_lmvcsrrw as official mnemonics for
+	VLE multimple load/store instructions. Old e_ldm* variants are
+	kept as aliases.
+	Add missing e_lmvmcsrrw and e_stmvmcsrrw.
+
+2017-09-27  Nick Clifton  <nickc@redhat.com>
+
+	PR 22179
+	* riscv-opc.c (riscv_opcodes): Add fmv.x.w and fmv.w.x as the new
+	names for the fmv.x.s and fmv.s.x instructions respectively.
+
+2017-09-26  do  <do@nerilex.org>
+
+	PR 22123
+	* m68k-opc.c (m68k_opcodes): Allow macw and macl instructions to
+	be used on CPUs that have emacs support.
+
+2017-09-21  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* aarch64-opc.c (expand_fp_imm): Initialize 'imm'.
+
+2017-09-09  Kamil Rytarowski  <n54@gmx.com>
+
+	* nds32-asm.c: Rename __BIT() to N32_BIT().
+	* nds32-asm.h: Likewise.
+	* nds32-dis.c: Likewise.
+
+2017-09-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* i386-dis.c (last_active_prefix): Removed.
+	(ckprefix): Don't set last_active_prefix.
+	(NOTRACK_Fixup): Don't check last_active_prefix.
+
+2017-08-31  Nick Clifton  <nickc@redhat.com>
+
+	* po/fr.po: Updated French translation.
+
+2017-08-31  James Bowman  <james.bowman@ftdichip.com>
+
+	* ft32-dis.c (print_insn_ft32): Correct display of non-address
+	fields.
+
+2017-08-23  Alexander Fedotov <alexander.fedotov@nxp.com>
+	    Edmar Wienskoski <edmar.wienskoski@nxp.com>
+
+	* ppc-dis.c (ppc_mopt): Add PPC_OPCODE_SPE2 and
+	PPC_OPCODE_EFS2 flag to "e200z4" entry.
+	New entries efs2 and spe2.
+	Add PPC_OPCODE_SPE2 and PPC_OPCODE_EFS2 flag to "vle" entry.
+	(SPE2_OPCD_SEGS): New macro.
+	(spe2_opcd_indices): New.
+	(disassemble_init_powerpc): Handle SPE2 opcodes.
+	(lookup_spe2): New function.
+	(print_insn_powerpc): call lookup_spe2.
+	* ppc-opc.c (insert_evuimm1_ex0): New function.
+	(extract_evuimm1_ex0): Likewise.
+	(insert_evuimm_lt8): Likewise.
+	(extract_evuimm_lt8): Likewise.
+	(insert_off_spe2): Likewise.
+	(extract_off_spe2): Likewise.
+	(insert_Ddd): Likewise.
+	(extract_Ddd): Likewise.
+	(DD): New operand.
+	(EVUIMM_LT8): Likewise.
+	(EVUIMM_LT16): Adjust.
+	(MMMM): New operand.
+	(EVUIMM_1): Likewise.
+	(EVUIMM_1_EX0): Likewise.
+	(EVUIMM_2): Adjust.
+	(NNN): New operand.
+	(VX_OFF_SPE2): Likewise.
+	(BBB): Likewise.
+	(DDD): Likewise.
+	(VX_MASK_DDD): New mask.
+	(HH): New operand.
+	(VX_RA_CONST): New macro.
+	(VX_RA_CONST_MASK): Likewise.
+	(VX_RB_CONST): Likewise.
+	(VX_RB_CONST_MASK): Likewise.
+	(VX_OFF_SPE2_MASK): Likewise.
+	(VX_SPE_CRFD): Likewise.
+	(VX_SPE_CRFD_MASK VX): Likewise.
+	(VX_SPE2_CLR): Likewise.
+	(VX_SPE2_CLR_MASK): Likewise.
+	(VX_SPE2_SPLATB): Likewise.
+	(VX_SPE2_SPLATB_MASK): Likewise.
+	(VX_SPE2_OCTET): Likewise.
+	(VX_SPE2_OCTET_MASK): Likewise.
+	(VX_SPE2_DDHH): Likewise.
+	(VX_SPE2_DDHH_MASK): Likewise.
+	(VX_SPE2_HH): Likewise.
+	(VX_SPE2_HH_MASK): Likewise.
+	(VX_SPE2_EVMAR): Likewise.
+	(VX_SPE2_EVMAR_MASK): Likewise.
+	(PPCSPE2): Likewise.
+	(PPCEFS2): Likewise.
+	(vle_opcodes): Add EFS2 and some missing SPE opcodes.
+	(powerpc_macros): Map old SPE instructions have new names
+	with the same opcodes. Add SPE2 instructions which just are
+	mapped to SPE2.
+	(spe2_opcodes): Add SPE2 opcodes.
+
+2017-08-23  Alan Modra  <amodra@gmail.com>
+
+	* ppc-opc.c: Formatting and comment fixes.  Move insert and
+	extract functions earlier, deleting forward declarations.
+	(insert_nbi, insert_raq, insert_rbx): Expand use of RT_MASK and
+	RA_MASK.
+
+2017-08-22  Palmer Dabbelt  <palmer@dabbelt.com>
+
+	* riscv-opc.c (riscv_opcodes): Mark "c.nop" as an alias.
+
+2017-08-21  Alexander Fedotov <alexander.fedotov@nxp.com>
+	    Edmar Wienskoski <edmar.wienskoski@nxp.com>
+
+	* ppc-opc.c (insert_evuimm2_ex0): New function.
+	(extract_evuimm2_ex0): Likewise.
+	(insert_evuimm4_ex0): Likewise.
+	(extract_evuimm4_ex0): Likewise.
+	(insert_evuimm8_ex0): Likewise.
+	(extract_evuimm8_ex0): Likewise.
+	(insert_evuimm_lt16): Likewise.
+	(extract_evuimm_lt16): Likewise.
+	(insert_rD_rS_even): Likewise.
+	(extract_rD_rS_even): Likewise.
+	(insert_off_lsp): Likewise.
+	(extract_off_lsp): Likewise.
+	(RD_EVEN): New operand.
+	(RS_EVEN): Likewise.
+	(RSQ): Adjust.
+	(EVUIMM_LT16): New operand.
+	(HTM_SI): Adjust.
+	(EVUIMM_2_EX0): New operand.
+	(EVUIMM_4): Adjust.
+	(EVUIMM_4_EX0): New operand.
+	(EVUIMM_8): Adjust.
+	(EVUIMM_8_EX0): New operand.
+	(WS): Adjust.
+	(VX_OFF): New operand.
+	(VX_LSP): New macro.
+	(VX_LSP_MASK): Likewise.
+	(VX_LSP_OFF_MASK): Likewise.
+	(PPC_OPCODE_LSP): Likewise.
+	(vle_opcodes): Add LSP opcodes.
+	* ppc-dis.c (ppc_mopt): Add PPC_OPCODE_LSP flag to "vle" entry.
+
+2017-08-09  Jiong Wang  <jiong.wang@arm.com>
+
+	* arm-dis.c (thumb32_opcodes): Use format 'R' instead of 'S' for
+	register operands in CRC instructions.
+	(print_insn_thumb32): Remove "<bitfield>S" support.  Updated the
+	comments.
+
+2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* disassemble.c (disassembler): Mark big and mach with
+	ATTRIBUTE_UNUSED.
+
+2017-08-07  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* disassemble.c (disassembler): Remove arch/mach/endian
+	assertions.
+
+2017-07-25  Nick Clifton  <nickc@redhat.com>
+
+	PR 21739
+	* arc-opc.c (insert_rhv2): Use lower case first letter in error
+	message.
+	(insert_r0): Likewise.
+	(insert_r1): Likewise.
+	(insert_r2): Likewise.
+	(insert_r3): Likewise.
+	(insert_sp): Likewise.
+	(insert_gp): Likewise.
+	(insert_pcl): Likewise.
+	(insert_blink): Likewise.
+	(insert_ilink1): Likewise.
+	(insert_ilink2): Likewise.
+	(insert_ras): Likewise.
+	(insert_rbs): Likewise.
+	(insert_rcs): Likewise.
+	(insert_simm3s): Likewise.
+	(insert_rrange): Likewise.
+	(insert_r13el): Likewise.
+	(insert_fpel): Likewise.
+	(insert_blinkel): Likewise.
+	(insert_pclel): Likewise.
+	(insert_nps_bitop_size_2b): Likewise.
+	(insert_nps_imm_offset): Likewise.
+	(insert_nps_imm_entry): Likewise.
+	(insert_nps_size_16bit): Likewise.
+	(insert_nps_##NAME##_pos): Likewise.
+	(insert_nps_##NAME): Likewise.
+	(insert_nps_bitop_ins_ext): Likewise.
+	(insert_nps_##NAME): Likewise.
+	(insert_nps_min_hofs): Likewise.
+	(insert_nps_##NAME): Likewise.
+	(insert_nps_rbdouble_64): Likewise.
+	(insert_nps_misc_imm_offset): Likewise.
+	* riscv-dis.c (print_riscv_disassembler_options): Fix typo in
+	option description.
+
+2017-07-24  Laurent Desnogues  <laurent.desnogues@arm.com>
+	    Jiong Wang  <jiong.wang@arm.com>
+
+	* aarch64-gen.c (print_decision_tree_1): Reverse the index of PATTERN to
+	correct the print.
+	* aarch64-dis-2.c: Regenerated.
+
+2017-07-21  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+	* s390-mkopc.c (main): Enable z14 as CPU string in the opcode
+	table.
+
+2017-07-20  Nick Clifton  <nickc@redhat.com>
+
+	* po/de.po: Updated German translation.
+
+2017-07-19  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* arc-regs.h (sec_stat): New aux register.
+	(aux_kernel_sp): Likewise.
+	(aux_sec_u_sp): Likewise.
+	(aux_sec_k_sp): Likewise.
+	(sec_vecbase_build): Likewise.
+	(nsc_table_top): Likewise.
+	(nsc_table_base): Likewise.
+	(ersec_stat): Likewise.
+	(aux_sec_except): Likewise.
+
+2017-07-19  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* arc-opc.c (extract_uimm12_20): New function.
+	(UIMM12_20): New operand.
+	(SIMM3_5_S): Adjust.
+	* arc-tbl.h (sjli): Add new instruction.
+
+2017-07-19  Claudiu Zissulescu  <claziss@synopsys.com>
+	    John Eric Martin  <John.Martin@emmicro-us.com>
+
+	* arc-opc.c (UIMM10_6_S_JLIOFF): Define.
+	(UIMM3_23): Adjust accordingly.
+	* arc-regs.h: Add/correct jli_base register.
+	* arc-tbl.h (jli_s): Likewise.
+
+2017-07-18  Nick Clifton  <nickc@redhat.com>
+
+	PR 21775
+	* aarch64-opc.c: Fix spelling typos.
+	* i386-dis.c: Likewise.
+
+2017-07-14  Ravi Bangoria  <ravi.bangoria@linux.vnet.ibm.com>
+
+	* dis-buf.c (buffer_read_memory): Change type of end_addr_offset,
+	max_addr_offset and octets variables to size_t.
+
+2017-07-12  Alan Modra  <amodra@gmail.com>
+
+	* po/da.po: Update from translationproject.org/latest/opcodes/.
+	* po/de.po: Likewise.
+	* po/es.po: Likewise.
+	* po/fi.po: Likewise.
+	* po/fr.po: Likewise.
+	* po/id.po: Likewise.
+	* po/it.po: Likewise.
+	* po/nl.po: Likewise.
+	* po/pt_BR.po: Likewise.
+	* po/ro.po: Likewise.
+	* po/sv.po: Likewise.
+	* po/tr.po: Likewise.
+	* po/uk.po: Likewise.
+	* po/vi.po: Likewise.
+	* po/zh_CN.po: Likewise.
+
+2017-07-11  Yao Qi  <yao.qi@linaro.org>
+	    Alan Modra  <amodra@gmail.com>
+
+	* cgen.sh: Mark generated files read-only.
+	* epiphany-asm.c: Regenerate.
+	* epiphany-desc.c: Regenerate.
+	* epiphany-desc.h: Regenerate.
+	* epiphany-dis.c: Regenerate.
+	* epiphany-ibld.c: Regenerate.
+	* epiphany-opc.c: Regenerate.
+	* epiphany-opc.h: Regenerate.
+	* fr30-asm.c: Regenerate.
+	* fr30-desc.c: Regenerate.
+	* fr30-desc.h: Regenerate.
+	* fr30-dis.c: Regenerate.
+	* fr30-ibld.c: Regenerate.
+	* fr30-opc.c: Regenerate.
+	* fr30-opc.h: Regenerate.
+	* frv-asm.c: Regenerate.
+	* frv-desc.c: Regenerate.
+	* frv-desc.h: Regenerate.
+	* frv-dis.c: Regenerate.
+	* frv-ibld.c: Regenerate.
+	* frv-opc.c: Regenerate.
+	* frv-opc.h: Regenerate.
+	* ip2k-asm.c: Regenerate.
+	* ip2k-desc.c: Regenerate.
+	* ip2k-desc.h: Regenerate.
+	* ip2k-dis.c: Regenerate.
+	* ip2k-ibld.c: Regenerate.
+	* ip2k-opc.c: Regenerate.
+	* ip2k-opc.h: Regenerate.
+	* iq2000-asm.c: Regenerate.
+	* iq2000-desc.c: Regenerate.
+	* iq2000-desc.h: Regenerate.
+	* iq2000-dis.c: Regenerate.
+	* iq2000-ibld.c: Regenerate.
+	* iq2000-opc.c: Regenerate.
+	* iq2000-opc.h: Regenerate.
+	* lm32-asm.c: Regenerate.
+	* lm32-desc.c: Regenerate.
+	* lm32-desc.h: Regenerate.
+	* lm32-dis.c: Regenerate.
+	* lm32-ibld.c: Regenerate.
+	* lm32-opc.c: Regenerate.
+	* lm32-opc.h: Regenerate.
+	* lm32-opinst.c: Regenerate.
+	* m32c-asm.c: Regenerate.
+	* m32c-desc.c: Regenerate.
+	* m32c-desc.h: Regenerate.
+	* m32c-dis.c: Regenerate.
+	* m32c-ibld.c: Regenerate.
+	* m32c-opc.c: Regenerate.
+	* m32c-opc.h: Regenerate.
+	* m32r-asm.c: Regenerate.
+	* m32r-desc.c: Regenerate.
+	* m32r-desc.h: Regenerate.
+	* m32r-dis.c: Regenerate.
+	* m32r-ibld.c: Regenerate.
+	* m32r-opc.c: Regenerate.
+	* m32r-opc.h: Regenerate.
+	* m32r-opinst.c: Regenerate.
+	* mep-asm.c: Regenerate.
+	* mep-desc.c: Regenerate.
+	* mep-desc.h: Regenerate.
+	* mep-dis.c: Regenerate.
+	* mep-ibld.c: Regenerate.
+	* mep-opc.c: Regenerate.
+	* mep-opc.h: Regenerate.
+	* mt-asm.c: Regenerate.
+	* mt-desc.c: Regenerate.
+	* mt-desc.h: Regenerate.
+	* mt-dis.c: Regenerate.
+	* mt-ibld.c: Regenerate.
+	* mt-opc.c: Regenerate.
+	* mt-opc.h: Regenerate.
+	* or1k-asm.c: Regenerate.
+	* or1k-desc.c: Regenerate.
+	* or1k-desc.h: Regenerate.
+	* or1k-dis.c: Regenerate.
+	* or1k-ibld.c: Regenerate.
+	* or1k-opc.c: Regenerate.
+	* or1k-opc.h: Regenerate.
+	* or1k-opinst.c: Regenerate.
+	* xc16x-asm.c: Regenerate.
+	* xc16x-desc.c: Regenerate.
+	* xc16x-desc.h: Regenerate.
+	* xc16x-dis.c: Regenerate.
+	* xc16x-ibld.c: Regenerate.
+	* xc16x-opc.c: Regenerate.
+	* xc16x-opc.h: Regenerate.
+	* xstormy16-asm.c: Regenerate.
+	* xstormy16-desc.c: Regenerate.
+	* xstormy16-desc.h: Regenerate.
+	* xstormy16-dis.c: Regenerate.
+	* xstormy16-ibld.c: Regenerate.
+	* xstormy16-opc.c: Regenerate.
+	* xstormy16-opc.h: Regenerate.
+
+2017-07-07  Alan Modra  <amodra@gmail.com>
+
+	* cgen-dis.in: Include disassemble.h, not dis-asm.h.
+	* m32c-dis.c: Regenerate.
+	* mep-dis.c: Regenerate.
+
+2017-07-05  Borislav Petkov  <bp@suse.de>
+
+	* i386-dis.c: Enable ModRM.reg /6 aliases.
+
+2017-07-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+	* opcodes/arm-dis.c: Support MVFR2 in disassembly
+	with vmrs and vmsr.
+
+2017-07-04  Tristan Gingold  <gingold@adacore.com>
+
+	* configure: Regenerate.
+
+2017-07-03  Tristan Gingold  <gingold@adacore.com>
+
+	* po/opcodes.pot: Regenerate.
+
+2017-06-30  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* mips-opc.c (mips_builtin_opcodes): Move "lsa" and "dlsa"
+	entries to the MSA ASE instruction block.
+
+2017-06-30  Andrew Bennett  <andrew.bennett@imgtec.com>
+	    Maciej W. Rozycki  <macro@imgtec.com>
+
+	* micromips-opc.c (XPA, XPAVZ): New macros.
+	(micromips_opcodes): Add "mfhc0", "mfhgc0", "mthc0" and
+	"mthgc0".
+
+2017-06-30  Andrew Bennett  <andrew.bennett@imgtec.com>
+	    Maciej W. Rozycki  <macro@imgtec.com>
+
+	* micromips-opc.c (I36): New macro.
+	(micromips_opcodes): Add "eretnc".
+
+2017-06-30  Maciej W. Rozycki  <macro@imgtec.com>
+	    Andrew Bennett  <andrew.bennett@imgtec.com>
+
+	* mips-dis.c (mips_calculate_combination_ases): Handle the
+	ASE_XPA_VIRT flag.
+	(parse_mips_ase_option): New function.
+	(parse_mips_dis_option): Factor out ASE option handling to the
+	new function.  Call `mips_calculate_combination_ases'.
+	* mips-opc.c (XPAVZ): New macro.
+	(mips_builtin_opcodes): Correct ISA and ASE flags for "mfhc0",
+	"mfhgc0", "mthc0" and "mthgc0".
+
+2017-06-29  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* mips-dis.c (mips_calculate_combination_ases): New function.
+	(mips_convert_abiflags_ases): Factor out ASE_MIPS16E2_MT
+	calculation to the new function.
+	(set_default_mips_dis_options): Call the new function.
+
+2017-06-29  Anton Kolesov  <Anton.Kolesov@synopsys.com>
+
+	* arc-dis.c (parse_disassembler_options): Use
+	FOR_EACH_DISASSEMBLER_OPTION.
+
+2017-06-29  Anton Kolesov  <Anton.Kolesov@synopsys.com>
+
+	* arc-dis.c (parse_option): Use disassembler_options_cmp to compare
+	disassembler option strings.
+	(parse_cpu_option): Likewise.
+
+2017-06-28  Tamar Christina  <tamar.christina@arm.com>
+
+	* aarch64-asm.c (aarch64_ins_reglane): Added 4B dotprod.
+	* aarch64-dis.c (aarch64_ext_reglane): Likewise.
+	* aarch64-tbl.h (QL_V3DOT, QL_V2DOT): New.
+	(aarch64_feature_dotprod, DOT_INSN): New.
+	(udot, sdot): New.
+	* aarch64-dis-2.c: Regenerated.
+
+2017-06-28  Jiong Wang  <jiong.wang@arm.com>
+
+	* arm-dis.c (coprocessor_opcodes): New entries for vsdot and vudot.
+
+2017-06-28  Maciej W. Rozycki  <macro@imgtec.com>
+	    Matthew Fortune  <matthew.fortune@imgtec.com>
+	    Andrew Bennett  <andrew.bennett@imgtec.com>
+
+	* mips-formats.h (INT_BIAS): New macro.
+	(INT_ADJ): Redefine in INT_BIAS terms.
+	* mips-dis.c (mips_arch_choices): Add "interaptiv-mr2" entry.
+	(mips_print_save_restore): New function.
+	(print_insn_arg) <OP_SAVE_RESTORE_LIST>: Update comment.
+	(validate_insn_args) <OP_SAVE_RESTORE_LIST>: Remove `abort'
+	call.
+	(print_insn_args): Handle OP_SAVE_RESTORE_LIST.
+	(print_mips16_insn_arg): Call `mips_print_save_restore' for
+	OP_SAVE_RESTORE_LIST handling, factored out from here.
+	* mips-opc.c (decode_mips_operand) <'-'> <'m'>: New case.
+	(RD_31, RD_SP, WR_SP, MOD_SP, IAMR2): New macros.
+	(mips_builtin_opcodes): Add "restore" and "save" entries.
+	* mips16-opc.c (decode_mips16_operand) <'n', 'o'>: New cases.
+	(IAMR2): New macro.
+	(mips16_opcodes): Add "copyw" and "ucopyw" entries.
+
+2017-06-23  Andrew Waterman  <andrew@sifive.com>
+
+	* riscv-opc.c (riscv_opcodes): Mark I-type SLT instruction as an
+	alias; do not mark SLTI instruction as an alias.
+
+2017-06-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* i386-dis.c (RM_0FAE_REG_5): Removed.
+	(PREFIX_MOD_3_0F01_REG_5_RM_1): Likewise.
+	(PREFIX_MOD_3_0F01_REG_5_RM_0): New.
+	(PREFIX_MOD_3_0FAE_REG_5): Likewise.
+	(prefix_table): Remove PREFIX_MOD_3_0F01_REG_5_RM_1.  Add
+	PREFIX_MOD_3_0F01_REG_5_RM_0.
+	(prefix_table): Update PREFIX_MOD_0_0FAE_REG_5.  Add
+	PREFIX_MOD_3_0FAE_REG_5.
+	(mod_table): Update MOD_0FAE_REG_5.
+	(rm_table): Update RM_0F01_REG_5.  Remove RM_0FAE_REG_5.
+	* i386-opc.tbl: Update incsspd, incsspq and setssbsy.
+	* i386-tbl.h: Regenerated.
+
+2017-06-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* i386-dis.c (prefix_table): Replace savessp with saveprevssp.
+	* i386-opc.tbl: Likewise.
+	* i386-tbl.h: Regenerated.
+
+2017-06-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* i386-dis.c (reg_table): Swap indirEv with NOTRACK on "call{&|}"
+	and "jmp{&|}".
+	(NOTRACK_Fixup): Support memory indirect branch with NOTRACK
+	prefix.
+
+2017-06-19  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21614
+	* score-dis.c (score_opcodes): Add sentinel.
+
+2017-06-16  Alan Modra  <amodra@gmail.com>
+
+	* rx-decode.c: Regenerate.
+
+2017-06-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/21594
+	* i386-dis.c (OP_E_register): Check valid bnd register.
+	(OP_G): Likewise.
+
+2017-06-15  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21595
+	* aarch64-dis.c (aarch64_ext_ldst_reglist): Check for an out of
+	range value.
+
+2017-06-15  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21588
+	* rl78-decode.opc (OP_BUF_LEN): Define.
+	(GETBYTE): Check for the index exceeding OP_BUF_LEN.
+	(rl78_decode_opcode): Use OP_BUF_LEN as the length of the op_buf
+	array.
+	* rl78-decode.c: Regenerate.
+
+2017-06-15  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21586
+	* bfin-dis.c (gregs): Clip index to prevent overflow.
+	(regs): Likewise.
+	(regs_lo): Likewise.
+	(regs_hi): Likewise.
+
+2017-06-14  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21576
+	* score7-dis.c (score_opcodes): Add sentinel.
+
+2017-06-14  Yao Qi  <yao.qi@linaro.org>
+
+	* aarch64-dis.c: Include disassemble.h instead of dis-asm.h.
+	* arm-dis.c: Likewise.
+	* ia64-dis.c: Likewise.
+	* mips-dis.c: Likewise.
+	* spu-dis.c: Likewise.
+	* disassemble.h (print_insn_aarch64): New declaration, moved from
+	include/dis-asm.h.
+	(print_insn_big_arm, print_insn_big_mips): Likewise.
+	(print_insn_i386, print_insn_ia64): Likewise.
+	(print_insn_little_arm, print_insn_little_mips): Likewise.
+
+2017-06-14  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21587
+	* rx-decode.opc: Include libiberty.h
+	(GET_SCALE): New macro - validates access to SCALE array.
+	(GET_PSCALE): New macro - validates access to PSCALE array.
+	(DIs, SIs, S2Is, rx_disp): Use new macros.
+	* rx-decode.c: Regenerate.
+
+2017-07-14  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+	* arm-dis.c (print_insn_arm): Remove bogus entry for bx.
+
+2017-05-30  Anton Kolesov  <anton.kolesov@synopsys.com>
+
+	* arc-dis.c (enforced_isa_mask): Declare.
+	(cpu_types): Likewise.
+	(parse_cpu_option): New function.
+	(parse_disassembler_options): Use it.
+	(print_insn_arc): Use enforced_isa_mask.
+	(print_arc_disassembler_options): Document new options.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* alpha-dis.c: Include disassemble.h, don't include
+	dis-asm.h.
+	* avr-dis.c, bfin-dis.c, cr16-dis.c: Likewise.
+	* crx-dis.c, d10v-dis.c, d30v-dis.c: Likewise.
+	* disassemble.c, dlx-dis.c, epiphany-dis.c: Likewise.
+	* fr30-dis.c, ft32-dis.c, h8300-dis.c, h8500-dis.c: Likewise.
+	* hppa-dis.c, i370-dis.c, i386-dis.c: Likewise.
+	* i860-dis.c, i960-dis.c, ip2k-dis.c: Likewise.
+	* iq2000-dis.c, lm32-dis.c, m10200-dis.c: Likewise.
+	* m10300-dis.c, m32r-dis.c, m68hc11-dis.c: Likewise.
+	* m68k-dis.c, m88k-dis.c, mcore-dis.c: Likewise.
+	* metag-dis.c, microblaze-dis.c, mmix-dis.c: Likewise.
+	* moxie-dis.c, msp430-dis.c, mt-dis.c:
+	* nds32-dis.c, nios2-dis.c, ns32k-dis.c: Likewise.
+	* or1k-dis.c, pdp11-dis.c, pj-dis.c: Likewise.
+	* ppc-dis.c, pru-dis.c, riscv-dis.c: Likewise.
+	* rl78-dis.c, s390-dis.c, score-dis.c: Likewise.
+	* sh-dis.c, sh64-dis.c, tic30-dis.c: Likewise.
+	* tic4x-dis.c, tic54x-dis.c, tic6x-dis.c: Likewise.
+	* tic80-dis.c, tilegx-dis.c, tilepro-dis.c: Likewise.
+	* v850-dis.c, vax-dis.c, visium-dis.c: Likewise.
+	* w65-dis.c, wasm32-dis.c, xc16x-dis.c: Likewise.
+	* xgate-dis.c, xstormy16-dis.c, xtensa-dis.c: Likewise.
+	* z80-dis.c, z8k-dis.c: Likewise.
+	* disassemble.h: New file.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* rl78-dis.c (rl78_get_disassembler): If parameter abfd
+	is NULL, set cpu to E_FLAG_RL78_ANY_CPU.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+	* disassemble.c (disassembler): Add arguments a, big and mach.
+	Use them.
+
+2017-05-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* i386-dis.c (NOTRACK_Fixup): New.
+	(NOTRACK): Likewise.
+	(NOTRACK_PREFIX): Likewise.
+	(last_active_prefix): Likewise.
+	(reg_table): Use NOTRACK on indirect call and jmp.
+	(ckprefix): Set last_active_prefix.
+	(prefix_name): Return "notrack" for NOTRACK_PREFIX.
+	* i386-gen.c (opcode_modifiers): Add NoTrackPrefixOk.
+	* i386-opc.h (NoTrackPrefixOk): New.
+	(i386_opcode_modifier): Add notrackprefixok.
+	* i386-opc.tbl: Add NoTrackPrefixOk to indirect call and jmp.
+	Add notrack.
+	* i386-tbl.h: Regenerated.
+
+2017-05-19  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* sparc-dis.c (MASK_V9): Include SPARC_OPCODE_ARCH_M8.
+	(X_IMM2): Define.
+	(compute_arch_mask): Handle bfd_mach_sparc_v8plusm8 and
+	bfd_mach_sparc_v9m8.
+	(print_insn_sparc): Handle new operand types.
+	* sparc-opc.c (MASK_M8): Define.
+	(v6): Add MASK_M8.
+	(v6notlet): Likewise.
+	(v7): Likewise.
+	(v8): Likewise.
+	(v9): Likewise.
+	(v9a): Likewise.
+	(v9b): Likewise.
+	(v9c): Likewise.
+	(v9d): Likewise.
+	(v9e): Likewise.
+	(v9v): Likewise.
+	(v9m): Likewise.
+	(v9andleon): Likewise.
+	(m8): Define.
+	(HWS_VM8): Define.
+	(HWS2_VM8): Likewise.
+	(sparc_opcode_archs): Add entry for "m8".
+	(sparc_opcodes): Add OSA2017 and M8 instructions
+	dictunpack, fpcmp{ule,ugt,eq,ne,de,ur}{8,16,32}shl,
+	fpx{ll,ra,rl}64x,
+	ldm{sh,uh,sw,uw,x,ux}, ldm{sh,uh,sw,uw,x,ux}a, ldmf{s,d},
+	ldmf{s,d}a, on{add,sub,mul,div}, rdentropy, revbitsb,
+	revbytes{h,w,x}, rle_burst, rle_length, sha3, stm{h,w,x},
+	stm{h,w,x}a, stmf{s,d}, stmf{s,d}a.
+	(asi_table): New M8 ASIs ASI_CORE_COMMIT_COUNT,
+	ASI_CORE_SELECT_COUNT, ASI_ARF_ECC_REG, ASI_ITLB_PROBE, ASI_DSFAR,
+	ASI_DTLB_PROBE_PRIMARY, ASI_DTLB_PROBE_REAL,
+	ASI_CORE_SELECT_COMMIT_NHT.
+
+2017-05-18  Alan Modra  <amodra@gmail.com>
+
+	* aarch64-asm.c: Don't compare boolean values against TRUE or FALSE.
+	* aarch64-dis.c: Likewise.
+	* aarch64-gen.c: Likewise.
+	* aarch64-opc.c: Likewise.
+
+2017-05-15  Maciej W. Rozycki  <macro@imgtec.com>
+	    Matthew Fortune  <matthew.fortune@imgtec.com>
+
+	* mips-dis.c (mips_arch_choices): Add ASE_MIPS16E2 and
+	ASE_MIPS16E2_MT flags to the unnamed MIPS16 entry.
+	(mips_convert_abiflags_ases): Handle the AFL_ASE_MIPS16E2 flag.
+	(print_insn_arg) <OP_REG28>: Add handler.
+	(validate_insn_args) <OP_REG28>: Handle.
+	(print_mips16_insn_arg): Handle MIPS16 instructions that require
+	32-bit encoding and 9-bit immediates.
+	(print_insn_mips16): Handle MIPS16 instructions that require
+	32-bit encoding and MFC0/MTC0 operand decoding.
+	* mips16-opc.c (decode_mips16_operand) <'>', '9', 'G', 'N', 'O'>
+	<'Q', 'T', 'b', 'c', 'd', 'r', 'u'>: Add handlers.
+	(RD_C0, WR_C0, E2, E2MT): New macros.
+	(mips16_opcodes): Add entries for MIPS16e2 instructions:
+	GP-relative "addiu" and its "addu" spelling, "andi", "cache",
+	"di", "ehb", "ei", "ext", "ins", GP-relative "lb", "lbu", "lh",
+	"lhu", and "lw" instructions, "ll", "lui", "lwl", "lwr", "mfc0",
+	"movn", "movtn", "movtz", "movz", "mtc0", "ori", "pause",
+	"pref", "rdhwr", "sc", GP-relative "sb", "sh" and "sw"
+	instructions, "swl", "swr", "sync" and its "sync_acquire",
+	"sync_mb", "sync_release", "sync_rmb" and "sync_wmb" aliases,
+	"xori", "dmt", "dvpe", "emt" and "evpe".  Add split
+	regular/extended entries for original MIPS16 ISA revision
+	instructions whose extended forms are subdecoded in the MIPS16e2
+	ISA revision: "li", "sll" and "srl".
+
+2017-05-15  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* mips-dis.c (print_insn_args) <default>: Remove an MT ASE
+	reference in CP0 move operand decoding.
+
+2017-05-12  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* mips16-opc.c (decode_mips16_operand) <'6'>: Switch the operand
+	type to hexadecimal.
+	(mips16_opcodes): Add operandless "break" and "sdbbp" entries.
+
+2017-05-11  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* mips-opc.c (mips_builtin_opcodes): Mark "synciobdma", "syncs",
+	"syncw", "syncws", "sync_acquire", "sync_mb", "sync_release",
+	"sync_rmb" and "sync_wmb" as aliases.
+	* micromips-opc.c (micromips_opcodes): Mark "sync_acquire",
+	"sync_mb", "sync_release", "sync_rmb" and "sync_wmb" as aliases.
+
+2017-05-10  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* arc-dis.c (parse_option): Update quarkse_em option..
+	* arc-ext-tbl.h (dsp_fp_flt2i, dsp_fp_i2flt): Change subclass to
+	QUARKSE1.
+	(dsp_fp_div, dsp_fp_cmp): Change subclass to QUARKSE2.
+
+2017-05-03  Kito Cheng  <kito.cheng@gmail.com>
+
+	* riscv-dis.c (print_insn_args): Handle 'Co' operands.
+
+2017-05-01  Michael Clark  <michaeljclark@mac.com>
+
+	* riscv-opc.c (riscv_opcodes) <call>: Use RA not T1 as a temporary
+	register.
+
+2017-05-02  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* mips-dis.c (print_insn_arg): Only clear the ISA bit for jumps
+	and branches and not synthetic data instructions.
+
+2017-05-02  Bernd Edlinger   <bernd.edlinger@hotmail.de>
+
+	* arm-dis.c (print_insn_thumb32): Fix value_in_comment.
+
+2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* arc-dis.c (print_insn_arc): Smartly print enter/leave mnemonics.
+	* arc-opc.c (insert_r13el): New function.
+	(R13_EL): Define.
+	* arc-tbl.h: Add new enter/leave variants.
+
+2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* arc-tbl.h: Reorder NOP entry to be before MOV instructions.
+
+2017-04-25  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* mips-dis.c (print_mips_disassembler_options): Add
+	`no-aliases'.
+
+2017-04-25  Maciej W. Rozycki  <macro@imgtec.com>
+
+	* mips16-opc.c (AL): New macro.
+	(mips16_opcodes): Mark "nop", "la", "dla", and synthetic forms
+	of "ld" and "lw" as aliases.
+
+2017-04-24  Tamar Christina  <tamar.christina@arm.com>
+
+	* aarch64-opc.c (aarch64_logical_immediate_p): Update DEBUG_TRACE
+	arguments.
+
+2017-04-22  Alexander Fedotov  <alfedotov@gmail.com>
+	    Alan Modra  <amodra@gmail.com>
+
+	* ppc-opc.c (ELEV): Define.
+	(vle_opcodes): Add se_rfgi and e_sc.
+	(powerpc_opcodes): Enable lbdx, lhdx, lwdx, stbdx, sthdx, stwdx
+	for E200Z4.
+
+2017-04-21  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	* sparc-opc.c (sparc_opcodes): Mark RETT instructions as v6notv9.
+
+2017-04-21  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/21380
+	* aarch64-tbl.h (aarch64_opcode_table): Fix masks for LD1R, LD2R,
+	LD3R and LD4R.
+
+2017-04-13  Alan Modra  <amodra@gmail.com>
+
+	* epiphany-desc.c: Regenerate.
+	* fr30-desc.c: Regenerate.
+	* frv-desc.c: Regenerate.
+	* ip2k-desc.c: Regenerate.
+	* iq2000-desc.c: Regenerate.
+	* lm32-desc.c: Regenerate.
+	* m32c-desc.c: Regenerate.
+	* m32r-desc.c: Regenerate.
+	* mep-desc.c: Regenerate.
+	* mt-desc.c: Regenerate.
+	* or1k-desc.c: Regenerate.
+	* xc16x-desc.c: Regenerate.
+	* xstormy16-desc.c: Regenerate.
+
+2017-04-11  Alan Modra  <amodra@gmail.com>
+
+	* ppc-dis.c (ppc_opts): Remove PPC_OPCODE_ALTIVEC2,
+	PPC_OPCODE_VSX3, PPC_OPCODE_HTM and "htm".  Formatting.  Set
+	PPC_OPCODE_TMR for e6500.
+	* ppc-opc.c (PPCVEC2): Define as PPC_OPCODE_POWER8|PPC_OPCODE_E6500.
+	(PPCVEC3): Define as PPC_OPCODE_POWER9.
+	(PPCVSX2): Define as PPC_OPCODE_POWER8.
+	(PPCVSX3): Define as PPC_OPCODE_POWER9.
+	(PPCHTM): Define as PPC_OPCODE_POWER8.
+	(powerpc_opcodes <mftmr, mttmr>): Remove now unnecessary E6500.
+
+2017-04-10  Alan Modra  <amodra@gmail.com>
+
+	* ppc-dis.c (ppc_opts <476>): Remove PPC_OPCODE_440.
+	* ppc-opc.c (MULHW): Add PPC_OPCODE_476.
+	(powerpc_opcodes): Adjust PPC440, PPC464 and PPC476 insns to suit
+	removal of PPC_OPCODE_440 from ppc476 cpu selection bits.
+
+2017-04-09  Pip Cet  <pipcet@gmail.com>
+
+	* wasm32-dis.c (print_insn_wasm32): Avoid DECIMAL_DIG, specify
+	appropriate floating-point precision directly.
+
+2017-04-07  Alan Modra  <amodra@gmail.com>
+
+	* ppc-opc.c (powerpc_opcodes <mviwsplt, mvidsplt, lvexbx, lvepxl,
+	lvexhx, lvepx, lvexwx, stvexbx, stvexhx, stvexwx, lvtrx, lvtlx,
+	lvswx, stvfrx, stvflx, stvswx, lvsm, stvepxl, lvtrxl, stvepx,
+	lvtlxl, lvswxl, stvfrxl, stvflxl, stvswxl>): Enable E6500 only
+	vector instructions with E6500 not PPCVEC2.
+
+2017-04-06  Pip Cet  <pipcet@gmail.com>
+
+	* Makefile.am: Add wasm32-dis.c.
+	* configure.ac: Add wasm32-dis.c to wasm32 target.
+	* disassemble.c: Add wasm32 disassembler code.
+	* wasm32-dis.c: New file.
+	* Makefile.in: Regenerate.
+	* configure: Regenerate.
+	* po/POTFILES.in: Regenerate.
+	* po/opcodes.pot: Regenerate.
+
+2017-04-05  Pedro Alves  <palves@redhat.com>
+
+	* arc-dis.c (parse_option, parse_disassembler_options): Constify.
+	* arm-dis.c (parse_arm_disassembler_options): Constify.
+	* ppc-dis.c (powerpc_init_dialect): Constify local.
+	* vax-dis.c (parse_disassembler_options): Constify.
+
+2017-04-03  Palmer Dabbelt  <palmer@dabbelt.com>
+
+	* riscv-dis.c (riscv_disassemble_insn): Change "_gp" to
+	RISCV_GP_SYMBOL.
+
+2017-03-30  Pip Cet  <pipcet@gmail.com>
+
+	* configure.ac: Add (empty) bfd_wasm32_arch target.
+	* configure: Regenerate
+	* po/opcodes.pot: Regenerate.
+
+2017-03-29  Sheldon Lobo  <sheldon.lobo@oracle.com>
+
+	Add support for missing SPARC ASIs from UA2005, UA2007, OSA2011, &
+	OSA2015.
+	* opcodes/sparc-opc.c (asi_table): New ASIs.
+
+2017-03-29  Alan Modra  <amodra@gmail.com>
+
+	* ppc-dis.c (ppc_opts): Set PPC_OPCODE_PPC for "any" flags.  Add
+	"raw" option.
+	(lookup_powerpc): Don't special case -1 dialect.  Handle
+	PPC_OPCODE_RAW.
+	(print_insn_powerpc): Mask out PPC_OPCODE_ANY on first
+	lookup_powerpc call, pass it on second.
+
+2017-03-27  Alan Modra  <amodra@gmail.com>
+
+	PR 21303
+	* ppc-dis.c (struct ppc_mopt): Comment.
+	(ppc_opts <e200z4>): Move PPC_OPCODE_VLE from .sticky to .cpu.
+
+2017-03-27  Rinat Zelig  <rinat@mellanox.com>
+
+	* arc-nps400-tbl.h: Add Ultra Ip and Miscellaneous instructions format.
+	* arc-opc.c: Add defines. e.g. F_NJ, F_NM , F_NO_T, F_NPS_SR,
+	F_NPS_M, F_NPS_CORE, F_NPS_ALL.
+	(insert_nps_misc_imm_offset): New function.
+	(extract_nps_misc imm_offset): New function.
+	(arc_num_flag_operands): Add F_NJ, F_NM, F_NO_T.
+	(arc_flag_special_cases): Add F_NJ, F_NM, F_NO_T.
+
+2017-03-21  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+	* s390-mkopc.c (main): Remove vx2 check.
+	* s390-opc.txt: Remove vx2 instruction flags.
+
+2017-03-21  Rinat Zelig  <rinat@mellanox.com>
+
+	* arc-nps400-tbl.h: Add cp32/cp16 instructions format.
+	* arc-opc.c: Add F_NPS_NA, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET.
+	(insert_nps_imm_offset): New function.
+	(extract_nps_imm_offset): New function.
+	(insert_nps_imm_entry): New function.
+	(extract_nps_imm_entry): New function.
+
+2017-03-17  Alan Modra  <amodra@gmail.com>
+
+	PR 21248
+	* ppc-opc.c (powerpc_opcodes): Enable mfivor32, mfivor33,
+	mtivor32, and mtivor33 for e6500.  Move mfibatl and mfibatu after
+	those spr mnemonics they alias.  Similarly for mtibatl, mtibatu.
+
+2017-03-14  Kito Cheng  <kito.cheng@gmail.com>
+
+	* riscv-opc.c (riscv_opcodes> <c.li>: Use the 'o' immediate encoding.
+	<c.andi>: Likewise.
+	<c.addiw> Likewise.
+
+2017-03-14  Kito Cheng  <kito.cheng@gmail.com>
+
+	* riscv-opc.c (riscv_opcodes) <c.addi>: Use match_opcode.
+
+2017-03-13  Andrew Waterman  <andrew@sifive.com>
+
+	* riscv-opc.c (riscv_opcodes) <srli/C>: Use match_opcode.
+	<srl> Likewise.
+	<srai> Likewise.
+	<sra> Likewise.
+
+2017-03-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* i386-gen.c (opcode_modifiers): Replace S with Load.
+	* i386-opc.h (S): Removed.
+	(Load): New.
+	(i386_opcode_modifier): Replace s with load.
+	* i386-opc.tbl: Add {disp8}, {disp32}, {swap}, {vex2}, {vex3}
+	and {evex}.  Replace S with Load.
+	* i386-tbl.h: Regenerated.
+
+2017-03-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* i386-opc.tbl: Use CpuCET on rdsspq.
+	* i386-tbl.h: Regenerated.
+
+2017-03-08  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* ppc-dis.c (ppc_opts) <altivec>: Do not use PPC_OPCODE_ALTIVEC2;
+	<vsx>: Do not use PPC_OPCODE_VSX3;
+
+2017-03-08  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* ppc-opc.c (powerpc_opcodes) <lnia>: New extended mnemonic.
+
+2017-03-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* i386-dis.c (REG_0F1E_MOD_3): New enum.
+	(MOD_0F1E_PREFIX_1): Likewise.
+	(MOD_0F38F5_PREFIX_2): Likewise.
+	(MOD_0F38F6_PREFIX_0): Likewise.
+	(RM_0F1E_MOD_3_REG_7): Likewise.
+	(PREFIX_MOD_0_0F01_REG_5): Likewise.
+	(PREFIX_MOD_3_0F01_REG_5_RM_1): Likewise.
+	(PREFIX_MOD_3_0F01_REG_5_RM_2): Likewise.
+	(PREFIX_0F1E): Likewise.
+	(PREFIX_MOD_0_0FAE_REG_5): Likewise.
+	(PREFIX_0F38F5): Likewise.
+	(dis386_twobyte): Use PREFIX_0F1E.
+	(reg_table): Add REG_0F1E_MOD_3.
+	(prefix_table): Add PREFIX_MOD_0_0F01_REG_5,
+	PREFIX_MOD_3_0F01_REG_5_RM_1, PREFIX_MOD_3_0F01_REG_5_RM_2,
+	PREFIX_0F1E, PREFIX_MOD_0_0FAE_REG_5 and PREFIX_0F38F5.  Update
+	PREFIX_0FAE_REG_6 and PREFIX_0F38F6.
+	(three_byte_table): Use PREFIX_0F38F5.
+	(mod_table): Use PREFIX_MOD_0_0F01_REG_5, PREFIX_MOD_0_0FAE_REG_5.
+	Add MOD_0F1E_PREFIX_1, MOD_0F38F5_PREFIX_2, MOD_0F38F6_PREFIX_0.
+	(rm_table): Add MOD_0F38F5_PREFIX_2, MOD_0F38F6_PREFIX_0,
+	RM_0F1E_MOD_3_REG_7.  Use PREFIX_MOD_3_0F01_REG_5_RM_1 and
+	PREFIX_MOD_3_0F01_REG_5_RM_2.
+	* i386-gen.c (cpu_flag_init): Add CPU_CET_FLAGS.
+	(cpu_flags): Add CpuCET.
+	* i386-opc.h (CpuCET): New enum.
+	(CpuUnused): Commented out.
+	(i386_cpu_flags): Add cpucet.
+	* i386-opc.tbl: Add Intel CET instructions.
+	* i386-init.h: Regenerated.
+	* i386-tbl.h: Likewise.
+
+2017-03-06  Alan Modra  <amodra@gmail.com>
+
+	PR 21124
+	* ppc-opc.c (extract_esync, extract_ls, extract_ral, extract_ram)
+	(extract_raq, extract_ras, extract_rbx): New functions.
+	(powerpc_operands): Use opposite corresponding insert function.
+	(Q_MASK): Define.
+	(powerpc_opcodes): Apply Q_MASK to all quad insns with even
+	register restriction.
+
+2017-02-28  Peter Bergner  <bergner@vnet.ibm.com>
+
+	* disassemble.c Include "safe-ctype.h".
+	(disassemble_init_for_target): Handle s390 init.
+	(remove_whitespace_and_extra_commas): New function.
+	(disassembler_options_cmp): Likewise.
+	* arm-dis.c: Include "libiberty.h".
+	(NUM_ELEM): Delete.
+	(regnames): Use long disassembler style names.
+	Add force-thumb and no-force-thumb options.
+	(NUM_ARM_REGNAMES): Rename from this...
+	(NUM_ARM_OPTIONS): ...to this.  Use ARRAY_SIZE.
+	(get_arm_regname_num_options): Delete.
+	(set_arm_regname_option): Likewise.
+	(get_arm_regnames): Likewise.
+	(parse_disassembler_options): Likewise.
+	(parse_arm_disassembler_option): Rename from this...
+	(parse_arm_disassembler_options): ...to this.  Make static.
+	Use new FOR_EACH_DISASSEMBLER_OPTION macro to scan over options.
+	(print_insn): Use parse_arm_disassembler_options.
+	(disassembler_options_arm): New function.
+	(print_arm_disassembler_options): Handle updated regnames.
+	* ppc-dis.c: Include "libiberty.h".
+	(ppc_opts): Add "32" and "64" entries.
+	(ppc_parse_cpu): Use ARRAY_SIZE and disassembler_options_cmp.
+	(powerpc_init_dialect): Add break to switch statement.
+	Use new FOR_EACH_DISASSEMBLER_OPTION macro.
+	(disassembler_options_powerpc): New function.
+	(print_ppc_disassembler_options): Use ARRAY_SIZE.
+	Remove printing of "32" and "64".
+	* s390-dis.c: Include "libiberty.h".
+	(init_flag): Remove unneeded variable.
+	(struct s390_options_t): New structure type.
+	(options): New structure.
+	(init_disasm): Rename from this...
+	(disassemble_init_s390): ...to this.  Add initializations for
+	current_arch_mask and option_use_insn_len_bits_p.  Remove init_flag.
+	(print_insn_s390): Delete call to init_disasm.
+	(disassembler_options_s390): New function.
+	(print_s390_disassembler_options): Print using information from
+	struct 'options'.
+	* po/opcodes.pot: Regenerate.
+
+2017-02-28  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-dis.c (PCMPESTR_Fixup): New.
+	(VEX_W_0F3A60_P_2, VEX_W_0F3A61_P_2): Delete.
+	(prefix_table): Use PCMPESTR_Fixup.
+	(vex_len_table): Make VPCMPESTR{I,M} entries leaf ones and use
+	PCMPESTR_Fixup.
+	(vex_w_table): Delete VPCMPESTR{I,M} entries.
+	* i386-opc.tbl (pcmpestri, pcmpestrm, vpcmpestri, vpcmpestrm):
+	Split 64-bit and non-64-bit variants.
+	* opcodes/i386-tbl.h: Re-generate.
+
+2017-02-24  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* aarch64-tbl.h (OP_SVE_HMH, OP_SVE_VMU_HSD, OP_SVE_VMVU_HSD)
+	(OP_SVE_VMVV_HSD, OP_SVE_VMVVU_HSD, OP_SVE_VM_HSD, OP_SVE_VUVV_HSD)
+	(OP_SVE_VUV_HSD, OP_SVE_VU_HSD, OP_SVE_VVVU_H, OP_SVE_VVVU_S)
+	(OP_SVE_VVVU_HSD, OP_SVE_VVV_D, OP_SVE_VVV_D_H, OP_SVE_VVV_H)
+	(OP_SVE_VVV_HSD, OP_SVE_VVV_S, OP_SVE_VVV_S_B, OP_SVE_VVV_SD_BH)
+	(OP_SVE_VV_BHSDQ, OP_SVE_VV_HSD, OP_SVE_VZVV_HSD, OP_SVE_VZV_HSD)
+	(OP_SVE_V_HSD): New macros.
+	(OP_SVE_VMU_SD, OP_SVE_VMVU_SD, OP_SVE_VM_SD, OP_SVE_VUVV_SD)
+	(OP_SVE_VU_SD, OP_SVE_VVVU_SD, OP_SVE_VVV_SD, OP_SVE_VZVV_SD)
+	(OP_SVE_VZV_SD, OP_SVE_V_SD): Delete.
+	(aarch64_opcode_table): Add new SVE instructions.
+	(aarch64_opcode_table): Use imm_rotate{1,2} instead of imm_rotate
+	for rotation operands.  Add new SVE operands.
+	* aarch64-asm.h (ins_sve_addr_ri_s4): New inserter.
+	(ins_sve_quad_index): Likewise.
+	(ins_imm_rotate): Split into...
+	(ins_imm_rotate1, ins_imm_rotate2): ...these two inserters.
+	* aarch64-asm.c (aarch64_ins_imm_rotate): Split into...
+	(aarch64_ins_imm_rotate1, aarch64_ins_imm_rotate2): ...these two
+	functions.
+	(aarch64_ins_sve_addr_ri_s4): New function.
+	(aarch64_ins_sve_quad_index): Likewise.
+	(do_misc_encoding): Handle "MOV Zn.Q, Qm".
+	* aarch64-asm-2.c: Regenerate.
+	* aarch64-dis.h (ext_sve_addr_ri_s4): New extractor.
+	(ext_sve_quad_index): Likewise.
+	(ext_imm_rotate): Split into...
+	(ext_imm_rotate1, ext_imm_rotate2): ...these two extractors.
+	* aarch64-dis.c (aarch64_ext_imm_rotate): Split into...
+	(aarch64_ext_imm_rotate1, aarch64_ext_imm_rotate2): ...these two
+	functions.
+	(aarch64_ext_sve_addr_ri_s4): New function.
+	(aarch64_ext_sve_quad_index): Likewise.
+	(aarch64_ext_sve_index): Allow quad indices.
+	(do_misc_decoding): Likewise.
+	* aarch64-dis-2.c: Regenerate.
+	* aarch64-opc.h (FLD_SVE_i3h, FLD_SVE_rot1, FLD_SVE_rot2): New
+	aarch64_field_kinds.
+	(OPD_F_OD_MASK): Widen by one bit.
+	(OPD_F_NO_ZR): Bump accordingly.
+	(get_operand_field_width): New function.
+	* aarch64-opc.c (fields): Add new SVE fields.
+	(operand_general_constraint_met_p): Handle new SVE operands.
+	(aarch64_print_operand): Likewise.
+	* aarch64-opc-2.c: Regenerate.
+
+2017-02-24  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* aarch64-tbl.h (aarch64_feature_simd_v8_3): Replace with...
+	(aarch64_feature_compnum): ...this.
+	(SIMD_V8_3): Replace with...
+	(COMPNUM): ...this.
+	(CNUM_INSN): New macro.
+	(aarch64_opcode_table): Use it for the complex number instructions.
+
+2017-02-24  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-dis.c (reg_table): REG_F6/1 and REG_F7/1 decode as TEST.
+
+2017-02-23  Sheldon Lobo <sheldon.lobo@oracle.com>
+
+	Add support for associating SPARC ASIs with an architecture level.
+	* include/opcode/sparc.h (sparc_asi): New sparc_asi struct.
+	* opcodes/sparc-opc.c (asi_table): Updated asi_table and encoding/
+	decoding of SPARC ASIs.
+
+2017-02-23  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-dis.c (get_valid_dis386): Don't special case VEX opcode
+	82. For 3-byte VEX only special case opcode 77 in VEX_0F space.
+
+2017-02-21  Jan Beulich  <jbeulich@suse.com>
+
+	* aarch64-asm.c (convert_bfc_to_bfm): Copy operand 0 to operand
+	1 (instead of to itself). Correct typo.
+
+2017-02-14  Andrew Waterman  <andrew@sifive.com>
+
+	* riscv-opc.c (riscv_opcodes): Add sfence.vma instruction and
+	pseudoinstructions.
+
+2017-02-15  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* aarch64-opc.c (aarch64_sys_regs): Add SVE registers.
+	(aarch64_sys_reg_supported_p): Handle them.
+
+2017-02-15  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* arc-opc.c (UIMM6_20R): Define.
+	(SIMM12_20): Use above.
+	(SIMM12_20R): Define.
+	(SIMM3_5_S): Use above.
+	(UIMM7_A32_11R_S): Define.
+	(UIMM7_9_S): Use above.
+	(UIMM3_13R_S): Define.
+	(SIMM11_A32_7_S): Use above.
+	(SIMM9_8R): Define.
+	(UIMM10_A32_8_S): Use above.
+	(UIMM8_8R_S): Define.
+	(W6): Use above.
+	(arc_relax_opcodes): Use all above defines.
+
+2017-02-15  Vineet Gupta <vgupta@synopsys.com>
+
+	* arc-regs.h: Distinguish some of the registers different on
+	ARC700 and HS38 cpus.
+
+2017-02-14  Alan Modra  <amodra@gmail.com>
+
+	PR 21118
+	* ppc-opc.c (powerpc_operands): Flag SPR, SPRG and TBR entries
+	with PPC_OPERAND_SPR.  Flag PSQ and PSQM with PPC_OPERAND_GQR.
+
+2017-02-11  Stafford Horne  <shorne@gmail.com>
+	    Alan Modra  <amodra@gmail.com>
+
+	* cgen-opc.c (cgen_lookup_insn): Delete buf and base_insn temps.
+	Use insn_bytes_value and insn_int_value directly instead.  Don't
+	free allocated memory until function exit.
+
+2017-02-10  Nicholas Piggin  <npiggin@gmail.com>
+
+	* ppc-opc.c (powerpc_opcodes) <scv, rfscv>: New mnemonics.
+
+2017-02-03  Nick Clifton  <nickc@redhat.com>
+
+	PR 21096
+	* aarch64-opc.c (print_register_list): Ensure that the register
+	list index will fir into the tb buffer.
+	(print_register_offset_address): Likewise.
+	* tic6x-dis.c (print_insn_tic6x): Increase size of func_unit_buf.
+
+2017-01-27  Alexis Deruell  <alexis.deruelle@gmail.com>
+
+	PR 21056
+	* tic6x-dis.c (print_insn_tic6x): Correct displaying of parallel
+	instructions when the previous fetch packet ends with a 32-bit
+	instruction.
+
+2017-01-24  Dimitar Dimitrov  <dimitar@dinux.eu>
+
+	* pru-opc.c: Remove vague reference to a future GDB port.
+
+2017-01-20  Nick Clifton  <nickc@redhat.com>
+
+	* po/ga.po: Updated Irish translation.
+
+2017-01-18  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	* arm-dis.c (coprocessor_opcodes): Fix vcmla mask and disassembly.
+
+2017-01-13  Yao Qi  <yao.qi@linaro.org>
+
+	* m68k-dis.c (match_insn_m68k): Extend comments.  Return -1
+	if FETCH_DATA returns 0.
+	(m68k_scan_mask): Likewise.
+	(print_insn_m68k): Update code to handle -1 return value.
+
+2017-01-13  Yao Qi  <yao.qi@linaro.org>
+
+	* m68k-dis.c (enum print_insn_arg_error): New.
+	(NEXTBYTE): Replace -3 with
+	PRINT_INSN_ARG_MEMORY_ERROR.
+	(NEXTULONG): Likewise.
+	(NEXTSINGLE): Likewise.
+	(NEXTDOUBLE): Likewise.
+	(NEXTDOUBLE): Likewise.
+	(NEXTPACKED): Likewise.
+	(FETCH_ARG): Likewise.
+	(FETCH_DATA): Update comments.
+	(print_insn_arg): Update comments. Replace magic numbers with
+	enum.
+	(match_insn_m68k): Likewise.
+
+2017-01-12  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
+
+	* i386-dis.c (enum): Add PREFIX_EVEX_0F3855, EVEX_W_0F3855_P_2.
+	* i386-dis-evex.h (evex_table): Updated.
+	* i386-gen.c (cpu_flag_init): Add CPU_AVX512_VPOPCNTDQ_FLAGS,
+	CPU_ANY_AVX512_VPOPCNTDQ_FLAGS. Update CPU_ANY_AVX512F_FLAGS.
+	(cpu_flags): Add CpuAVX512_VPOPCNTDQ.
+	* i386-opc.h (enum): (AVX512_VPOPCNTDQ): New.
+	(i386_cpu_flags): Add cpuavx512_vpopcntdq.
+	* i386-opc.tbl: Add Intel AVX512_VPOPCNTDQ instructions.
+	* i386-init.h: Regenerate.
+	* i386-tbl.h: Ditto.
+
+2017-01-12  Yao Qi  <yao.qi@linaro.org>
+
+	* msp430-dis.c (msp430_singleoperand): Return -1 if
+	msp430dis_opcode_signed returns false.
+	(msp430_doubleoperand): Likewise.
+	(msp430_branchinstr): Return -1 if
+	msp430dis_opcode_unsigned returns false.
+	(msp430x_calla_instr): Likewise.
+	(print_insn_msp430): Likewise.
+
+2017-01-05  Nick Clifton  <nickc@redhat.com>
+
+	PR 20946
+	* frv-desc.c (lookup_mach_via_bfd_name): Return NULL if the name
+	could not be matched.
+	(frv_cgen_cpu_open): Allow for lookup_mach_via_bfd_name returning
+	NULL.
+
+2017-01-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	* aarch64-tbl.h (RCPC, RCPC_INSN): Define.
+	(aarch64_opcode_table): Use RCPC_INSN.
+
+2017-01-03  Kito Cheng  <kito.cheng@gmail.com>
+
+	* riscv-opc.c (riscv-opcodes): Add support for the "q" ISA
+	extension.
+	* riscv-opcodes/all-opcodes: Likewise.
+
+2017-01-03  Dilyan Palauzov  <dilyan.palauzov@aegee.org>
+
+	* riscv-dis.c (print_insn_args): Add fall through comment.
+
+2017-01-03  Nick Clifton  <nickc@redhat.com>
+
+	* po/sr.po: New Serbian translation.
+	* configure.ac (ALL_LINGUAS): Add sr.
+	* configure: Regenerate.
+
+2017-01-02  Alan Modra  <amodra@gmail.com>
+
+	* epiphany-desc.h: Regenerate.
+	* epiphany-opc.h: Regenerate.
+	* fr30-desc.h: Regenerate.
+	* fr30-opc.h: Regenerate.
+	* frv-desc.h: Regenerate.
+	* frv-opc.h: Regenerate.
+	* ip2k-desc.h: Regenerate.
+	* ip2k-opc.h: Regenerate.
+	* iq2000-desc.h: Regenerate.
+	* iq2000-opc.h: Regenerate.
+	* lm32-desc.h: Regenerate.
+	* lm32-opc.h: Regenerate.
+	* m32c-desc.h: Regenerate.
+	* m32c-opc.h: Regenerate.
+	* m32r-desc.h: Regenerate.
+	* m32r-opc.h: Regenerate.
+	* mep-desc.h: Regenerate.
+	* mep-opc.h: Regenerate.
+	* mt-desc.h: Regenerate.
+	* mt-opc.h: Regenerate.
+	* or1k-desc.h: Regenerate.
+	* or1k-opc.h: Regenerate.
+	* xc16x-desc.h: Regenerate.
+	* xc16x-opc.h: Regenerate.
+	* xstormy16-desc.h: Regenerate.
+	* xstormy16-opc.h: Regenerate.
+
+2017-01-02  Alan Modra  <amodra@gmail.com>
+
+	Update year range in copyright notice of all files.
+
+For older changes see ChangeLog-2016
+
+Copyright (C) 2017 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
+
+Local Variables:
+mode: change-log
+left-margin: 8
+fill-column: 74
+version-control: never
+End:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/configure ./opcodes/configure
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/configure	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/configure	2018-01-09 02:04:59.000000000 +0000
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.64 for opcodes 2.28.51.
+# Generated by GNU Autoconf 2.64 for opcodes 2.29.51.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
@@ -556,8 +556,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='opcodes'
 PACKAGE_TARNAME='opcodes'
-PACKAGE_VERSION='2.28.51'
-PACKAGE_STRING='opcodes 2.28.51'
+PACKAGE_VERSION='2.29.51'
+PACKAGE_STRING='opcodes 2.29.51'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1322,7 +1322,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures opcodes 2.28.51 to adapt to many kinds of systems.
+\`configure' configures opcodes 2.29.51 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1393,7 +1393,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of opcodes 2.28.51:";;
+     short | recursive ) echo "Configuration of opcodes 2.29.51:";;
    esac
   cat <<\_ACEOF
 
@@ -1500,7 +1500,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-opcodes configure 2.28.51
+opcodes configure 2.29.51
 generated by GNU Autoconf 2.64
 
 Copyright (C) 2009 Free Software Foundation, Inc.
@@ -1910,7 +1910,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by opcodes $as_me 2.28.51, which was
+It was created by opcodes $as_me 2.29.51, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   $ $0 $@
@@ -3719,7 +3719,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='opcodes'
- VERSION='2.28.51'
+ VERSION='2.29.51'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -13307,7 +13307,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by opcodes $as_me 2.28.51, which was
+This file was extended by opcodes $as_me 2.29.51, which was
 generated by GNU Autoconf 2.64.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13371,7 +13371,7 @@ Report bugs to the package provider."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-opcodes config.status 2.28.51
+opcodes config.status 2.29.51
 configured by $0, generated by GNU Autoconf 2.64,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/configure.ac ./opcodes/configure.ac
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/configure.ac	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/configure.ac	2018-01-09 02:04:59.000000000 +0000
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 dnl
-dnl   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+dnl   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 dnl
 dnl This file is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/configure.com ./opcodes/configure.com
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/configure.com	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/configure.com	2018-01-09 02:04:59.000000000 +0000
@@ -6,7 +6,7 @@
 $!
 $! Written by Tristan Gingold (gingold@adacore.com)
 $!
-$!   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+$!   Copyright (C) 2012-2018 Free Software Foundation, Inc.
 $!
 $! This file is free software; you can redistribute it and/or modify
 $! it under the terms of the GNU General Public License as published by
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cr16-dis.c ./opcodes/cr16-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cr16-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/cr16-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Disassembler code for CR16.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
    Contributed by M R Swami Reddy (MR.Swami.Reddy@nsc.com).
 
    This file is part of GAS, GDB and the GNU binutils.
@@ -19,7 +19,7 @@
    Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 #include "sysdep.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "opcode/cr16.h"
 #include "libiberty.h"
 
@@ -54,7 +54,7 @@ typedef struct
 cinv_entry;
 
 /* CR16 'cinv' options mapping.  */
-const cinv_entry cr16_cinvs[] =
+static const cinv_entry cr16_cinvs[] =
 {
   {"cinv[i]",     "cinv    [i]"},
   {"cinv[i,u]",   "cinv    [i,u]"},
@@ -78,20 +78,20 @@ typedef enum REG_ARG_TYPE
 REG_ARG_TYPE;
 
 /* Current opcode table entry we're disassembling.  */
-const inst *instruction;
+static const inst *instruction;
 /* Current instruction we're disassembling.  */
-ins cr16_currInsn;
+static ins cr16_currInsn;
 /* The current instruction is read into 3 consecutive words.  */
-wordU cr16_words[3];
+static wordU cr16_words[3];
 /* Contains all words in appropriate order.  */
-ULONGLONG cr16_allWords;
+static ULONGLONG cr16_allWords;
 /* Holds the current processed argument number.  */
-int processing_argument_number;
+static int processing_argument_number;
 /* Nonzero means a IMM4 instruction.  */
-int imm4flag;
+static int imm4flag;
 /* Nonzero means the instruction's original size is
    incremented (escape sequence is used).  */
-int size_changed;
+static int size_changed;
 
 
 /* Print the constant expression length.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cr16-opc.c ./opcodes/cr16-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cr16-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/cr16-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* cr16-opc.c -- Table of opcodes for the CR16 processor.
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
    Contributed by M R Swami Reddy (MR.Swami.Reddy@nsc.com)
 
    This file is part of the GNU opcodes library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cris-dis.c ./opcodes/cris-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cris-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/cris-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Disassembler code for CRIS.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Axis Communications AB, Lund, Sweden.
    Written by Hans-Peter Nilsson.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cris-opc.c ./opcodes/cris-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/cris-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/cris-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* cris-opc.c -- Table of opcodes for the CRIS processor.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
+   Copyright (C) 2000-2018 Free Software Foundation, Inc.
    Contributed by Axis Communications AB, Lund, Sweden.
    Originally written for GAS 1.38.1 by Mikael Asker.
    Reorganized by Hans-Peter Nilsson.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/crx-dis.c ./opcodes/crx-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/crx-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/crx-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Disassembler code for CRX.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
    Contributed by Tomer Levi, NSC, Israel.
    Written by Tomer Levi.
 
@@ -21,7 +21,7 @@
    MA 02110-1301, USA.  */
 
 #include "sysdep.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "opcode/crx.h"
 
 /* String to print when opcode was not matched.  */
@@ -58,7 +58,7 @@ typedef struct
 cinv_entry;
 
 /* CRX 'cinv' options.  */
-const cinv_entry crx_cinvs[] =
+static const cinv_entry crx_cinvs[] =
 {
   {"[i]", 2}, {"[i,u]", 3}, {"[d]", 4}, {"[d,u]", 5},
   {"[d,i]", 6}, {"[d,i,u]", 7}, {"[b]", 8},
@@ -81,22 +81,22 @@ typedef enum REG_ARG_TYPE
 REG_ARG_TYPE;
 
 /* Number of valid 'cinv' instruction options.  */
-int NUMCINVS = ((sizeof crx_cinvs)/(sizeof crx_cinvs[0]));
+static int NUMCINVS = ((sizeof crx_cinvs)/(sizeof crx_cinvs[0]));
 /* Current opcode table entry we're disassembling.  */
-const inst *instruction;
+static const inst *instruction;
 /* Current instruction we're disassembling.  */
-ins currInsn;
+static ins currInsn;
 /* The current instruction is read into 3 consecutive words.  */
-wordU words[3];
+static wordU words[3];
 /* Contains all words in appropriate order.  */
-ULONGLONG allWords;
+static ULONGLONG allWords;
 /* Holds the current processed argument number.  */
-int processing_argument_number;
+static int processing_argument_number;
 /* Nonzero means a CST4 instruction.  */
-int cst4flag;
+static int cst4flag;
 /* Nonzero means the instruction's original size is
    incremented (escape sequence is used).  */
-int size_changed;
+static int size_changed;
 
 static int get_number_of_operands (void);
 static argtype getargtype     (operand_type);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/crx-opc.c ./opcodes/crx-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/crx-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/crx-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* crx-opc.c -- Table of opcodes for the CRX processor.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   Copyright (C) 2004-2018 Free Software Foundation, Inc.
    Contributed by Tomer Levi NSC, Israel.
    Originally written for GAS 2.12 by Tomer Levi.
 
@@ -704,15 +704,15 @@ The value in entry <N> is mapped to the 
 Example (for N=5):
 
     cst4_map[5]=-4  -->>	5		*/
-const int cst4_map[] =
+const int crx_cst4_map[] =
 {
   0, 1, 2, 3, 4, -4, -1, 7, 8, 16, 32, 20, 12, 48
 };
 
-const int cst4_maps = ARRAY_SIZE (cst4_map);
+const int crx_cst4_maps = ARRAY_SIZE (crx_cst4_map);
 
 /* CRX instructions that don't have arguments.  */
-const char* no_op_insn[] =
+const char* crx_no_op_insn[] =
 {
   "di", "ei", "eiwait", "nop", "retx", "wait", NULL
 };
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/d10v-dis.c ./opcodes/d10v-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/d10v-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/d10v-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Disassemble D10V instructions.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -21,7 +21,7 @@
 #include "sysdep.h"
 #include <stdio.h>
 #include "opcode/d10v.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 
 /* The PC wraps at 18 bits, except for the segment number,
    so use this mask to keep the parts we want.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/d10v-opc.c ./opcodes/d10v-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/d10v-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/d10v-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* d10v-opc.c -- D10V opcode list
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
    Written by Martin Hunt, Cygnus Support
 
    This file is part of the GNU opcodes library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/d30v-dis.c ./opcodes/d30v-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/d30v-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/d30v-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Disassemble D30V instructions.
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -21,7 +21,7 @@
 #include "sysdep.h"
 #include <stdio.h>
 #include "opcode/d30v.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "opintl.h"
 
 #define PC_MASK 0xFFFFFFFF
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/d30v-opc.c ./opcodes/d30v-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/d30v-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/d30v-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* d30v-opc.c -- D30V opcode list
-   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   Copyright (C) 1997-2018 Free Software Foundation, Inc.
    Written by Martin Hunt, Cygnus Support
 
    This file is part of the GNU opcodes library.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/disassemble.c ./opcodes/disassemble.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/disassemble.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/disassemble.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Select disassembly routine for specified architecture.
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -19,8 +19,9 @@
    MA 02110-1301, USA.  */
 
 #include "sysdep.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "safe-ctype.h"
+#include <assert.h>
 
 #ifdef ARCH_all
 #define ARCH_aarch64
@@ -109,9 +110,11 @@
 #endif
 
 disassembler_ftype
-disassembler (bfd *abfd)
+disassembler (enum bfd_architecture a,
+	      bfd_boolean big ATTRIBUTE_UNUSED,
+	      unsigned long mach ATTRIBUTE_UNUSED,
+	      bfd *abfd ATTRIBUTE_UNUSED)
 {
-  enum bfd_architecture a = bfd_get_arch (abfd);
   disassembler_ftype disassemble;
 
   switch (a)
@@ -135,7 +138,7 @@ disassembler (bfd *abfd)
 #endif
 #ifdef ARCH_arm
     case bfd_arch_arm:
-      if (bfd_big_endian (abfd))
+      if (big)
 	disassemble = print_insn_big_arm;
       else
 	disassemble = print_insn_little_arm;
@@ -184,13 +187,12 @@ disassembler (bfd *abfd)
 #endif
 #ifdef ARCH_h8300
     case bfd_arch_h8300:
-      if (bfd_get_mach (abfd) == bfd_mach_h8300h
-	  || bfd_get_mach (abfd) == bfd_mach_h8300hn)
+      if (mach == bfd_mach_h8300h || mach == bfd_mach_h8300hn)
 	disassemble = print_insn_h8300h;
-      else if (bfd_get_mach (abfd) == bfd_mach_h8300s
-	       || bfd_get_mach (abfd) == bfd_mach_h8300sn
-	       || bfd_get_mach (abfd) == bfd_mach_h8300sx
-	       || bfd_get_mach (abfd) == bfd_mach_h8300sxn)
+      else if (mach == bfd_mach_h8300s
+	       || mach == bfd_mach_h8300sn
+	       || mach == bfd_mach_h8300sx
+	       || mach == bfd_mach_h8300sxn)
 	disassemble = print_insn_h8300s;
       else
 	disassemble = print_insn_h8300;
@@ -326,7 +328,7 @@ disassembler (bfd *abfd)
 #endif
 #ifdef ARCH_mips
     case bfd_arch_mips:
-      if (bfd_big_endian (abfd))
+      if (big)
 	disassemble = print_insn_big_mips;
       else
 	disassemble = print_insn_little_mips;
@@ -349,7 +351,7 @@ disassembler (bfd *abfd)
 #endif
 #ifdef ARCH_nios2
     case bfd_arch_nios2:
-      if (bfd_big_endian (abfd))
+      if (big)
 	disassemble = print_insn_big_nios2;
       else
 	disassemble = print_insn_little_nios2;
@@ -372,7 +374,7 @@ disassembler (bfd *abfd)
 #endif
 #ifdef ARCH_powerpc
     case bfd_arch_powerpc:
-      if (bfd_big_endian (abfd))
+      if (big)
 	disassemble = print_insn_big_powerpc;
       else
 	disassemble = print_insn_little_powerpc;
@@ -390,7 +392,7 @@ disassembler (bfd *abfd)
 #endif
 #ifdef ARCH_rs6000
     case bfd_arch_rs6000:
-      if (bfd_get_mach (abfd) == bfd_mach_ppc_620)
+      if (mach == bfd_mach_ppc_620)
 	disassemble = print_insn_big_powerpc;
       else
 	disassemble = print_insn_rs6000;
@@ -413,7 +415,7 @@ disassembler (bfd *abfd)
 #endif
 #ifdef ARCH_score
     case bfd_arch_score:
-      if (bfd_big_endian (abfd))
+      if (big)
 	disassemble = print_insn_big_score;
       else
 	disassemble = print_insn_little_score;
@@ -507,7 +509,7 @@ disassembler (bfd *abfd)
 #endif
 #ifdef ARCH_z8k
     case bfd_arch_z8k:
-      if (bfd_get_mach(abfd) == bfd_mach_z8001)
+      if (mach == bfd_mach_z8001)
 	disassemble = print_insn_z8001;
       else
 	disassemble = print_insn_z8002;
@@ -649,6 +651,11 @@ disassemble_init_for_target (struct disa
 	}
       break;
 #endif
+#ifdef ARCH_pru
+    case bfd_arch_pru:
+      info->disassembler_needs_relocs = TRUE;
+      break;
+#endif
 #ifdef ARCH_powerpc
     case bfd_arch_powerpc:
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/disassemble.h ./opcodes/disassemble.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/disassemble.h	1970-01-01 00:00:00.000000000 +0000
+++ ./opcodes/disassemble.h	2018-01-09 02:04:59.000000000 +0000
@@ -0,0 +1,110 @@
+/* Header only used inside opcodes library for disassemble.
+
+   Copyright (C) 2017-2018 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, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
+
+#ifndef DISASSEMBLE_H
+#define DISASSEMBLE_H
+#include "dis-asm.h"
+
+extern int print_insn_aarch64		(bfd_vma, disassemble_info *);
+extern int print_insn_alpha		(bfd_vma, disassemble_info *);
+extern int print_insn_avr		(bfd_vma, disassemble_info *);
+extern int print_insn_bfin		(bfd_vma, disassemble_info *);
+extern int print_insn_big_arm		(bfd_vma, disassemble_info *);
+extern int print_insn_big_mips		(bfd_vma, disassemble_info *);
+extern int print_insn_big_nios2	(bfd_vma, disassemble_info *);
+extern int print_insn_big_powerpc	(bfd_vma, disassemble_info *);
+extern int print_insn_big_score         (bfd_vma, disassemble_info *);
+extern int print_insn_cr16              (bfd_vma, disassemble_info *);
+extern int print_insn_crx               (bfd_vma, disassemble_info *);
+extern int print_insn_d10v		(bfd_vma, disassemble_info *);
+extern int print_insn_d30v		(bfd_vma, disassemble_info *);
+extern int print_insn_dlx		(bfd_vma, disassemble_info *);
+extern int print_insn_epiphany		(bfd_vma, disassemble_info *);
+extern int print_insn_fr30		(bfd_vma, disassemble_info *);
+extern int print_insn_frv		(bfd_vma, disassemble_info *);
+extern int print_insn_ft32		(bfd_vma, disassemble_info *);
+extern int print_insn_h8300		(bfd_vma, disassemble_info *);
+extern int print_insn_h8300h		(bfd_vma, disassemble_info *);
+extern int print_insn_h8300s		(bfd_vma, disassemble_info *);
+extern int print_insn_h8500		(bfd_vma, disassemble_info *);
+extern int print_insn_hppa		(bfd_vma, disassemble_info *);
+extern int print_insn_i370		(bfd_vma, disassemble_info *);
+extern int print_insn_i386		(bfd_vma, disassemble_info *);
+extern int print_insn_i386_att		(bfd_vma, disassemble_info *);
+extern int print_insn_i386_intel	(bfd_vma, disassemble_info *);
+extern int print_insn_i860		(bfd_vma, disassemble_info *);
+extern int print_insn_i960		(bfd_vma, disassemble_info *);
+extern int print_insn_ia64		(bfd_vma, disassemble_info *);
+extern int print_insn_ip2k		(bfd_vma, disassemble_info *);
+extern int print_insn_iq2000		(bfd_vma, disassemble_info *);
+extern int print_insn_little_nios2	(bfd_vma, disassemble_info *);
+extern int print_insn_riscv		(bfd_vma, disassemble_info *);
+extern int print_insn_little_arm	(bfd_vma, disassemble_info *);
+extern int print_insn_little_mips	(bfd_vma, disassemble_info *);
+extern int print_insn_little_powerpc	(bfd_vma, disassemble_info *);
+extern int print_insn_little_score      (bfd_vma, disassemble_info *);
+extern int print_insn_lm32		(bfd_vma, disassemble_info *);
+extern int print_insn_m32r		(bfd_vma, disassemble_info *);
+extern int print_insn_m68hc11		(bfd_vma, disassemble_info *);
+extern int print_insn_m68hc12		(bfd_vma, disassemble_info *);
+extern int print_insn_m9s12x		(bfd_vma, disassemble_info *);
+extern int print_insn_m9s12xg		(bfd_vma, disassemble_info *);
+extern int print_insn_m68k		(bfd_vma, disassemble_info *);
+extern int print_insn_m88k		(bfd_vma, disassemble_info *);
+extern int print_insn_mcore		(bfd_vma, disassemble_info *);
+extern int print_insn_metag		(bfd_vma, disassemble_info *);
+extern int print_insn_microblaze	(bfd_vma, disassemble_info *);
+extern int print_insn_mmix		(bfd_vma, disassemble_info *);
+extern int print_insn_mn10200		(bfd_vma, disassemble_info *);
+extern int print_insn_mn10300		(bfd_vma, disassemble_info *);
+extern int print_insn_moxie		(bfd_vma, disassemble_info *);
+extern int print_insn_msp430		(bfd_vma, disassemble_info *);
+extern int print_insn_mt                (bfd_vma, disassemble_info *);
+extern int print_insn_nds32		(bfd_vma, disassemble_info *);
+extern int print_insn_ns32k		(bfd_vma, disassemble_info *);
+extern int print_insn_or1k		(bfd_vma, disassemble_info *);
+extern int print_insn_pdp11		(bfd_vma, disassemble_info *);
+extern int print_insn_pj		(bfd_vma, disassemble_info *);
+extern int print_insn_pru		(bfd_vma, disassemble_info *);
+extern int print_insn_rs6000		(bfd_vma, disassemble_info *);
+extern int print_insn_s390		(bfd_vma, disassemble_info *);
+extern int print_insn_sh64		(bfd_vma, disassemble_info *);
+extern int print_insn_spu		(bfd_vma, disassemble_info *);
+extern int print_insn_tic30		(bfd_vma, disassemble_info *);
+extern int print_insn_tic4x		(bfd_vma, disassemble_info *);
+extern int print_insn_tic54x		(bfd_vma, disassemble_info *);
+extern int print_insn_tic6x		(bfd_vma, disassemble_info *);
+extern int print_insn_tic80		(bfd_vma, disassemble_info *);
+extern int print_insn_tilegx		(bfd_vma, disassemble_info *);
+extern int print_insn_tilepro		(bfd_vma, disassemble_info *);
+extern int print_insn_v850		(bfd_vma, disassemble_info *);
+extern int print_insn_vax		(bfd_vma, disassemble_info *);
+extern int print_insn_visium		(bfd_vma, disassemble_info *);
+extern int print_insn_w65		(bfd_vma, disassemble_info *);
+extern int print_insn_wasm32		(bfd_vma, disassemble_info *);
+extern int print_insn_xc16x		(bfd_vma, disassemble_info *);
+extern int print_insn_xgate             (bfd_vma, disassemble_info *);
+extern int print_insn_xstormy16		(bfd_vma, disassemble_info *);
+extern int print_insn_xtensa		(bfd_vma, disassemble_info *);
+extern int print_insn_z80		(bfd_vma, disassemble_info *);
+extern int print_insn_z8001		(bfd_vma, disassemble_info *);
+extern int print_insn_z8002		(bfd_vma, disassemble_info *);
+
+extern disassembler_ftype rl78_get_disassembler (bfd *);
+#endif /* DISASSEMBLE_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/dis-buf.c ./opcodes/dis-buf.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/dis-buf.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/dis-buf.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Disassemble from a buffer, for GNU.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -32,9 +32,9 @@ buffer_read_memory (bfd_vma memaddr,
 		    struct disassemble_info *info)
 {
   unsigned int opb = info->octets_per_byte;
-  unsigned int end_addr_offset = length / opb;
-  unsigned int max_addr_offset = info->buffer_length / opb;
-  unsigned int octets = (memaddr - info->buffer_vma) * opb;
+  size_t end_addr_offset = length / opb;
+  size_t max_addr_offset = info->buffer_length / opb;
+  size_t octets = (memaddr - info->buffer_vma) * opb;
 
   if (memaddr < info->buffer_vma
       || memaddr - info->buffer_vma > max_addr_offset
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/dis-init.c ./opcodes/dis-init.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/dis-init.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/dis-init.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,6 +1,6 @@
 /* Initialize "struct disassemble_info".
 
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
+   Copyright (C) 2003-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/dlx-dis.c ./opcodes/dlx-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/dlx-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/dlx-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Instruction printing code for the DLX Microprocessor
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
+   Copyright (C) 2002-2018 Free Software Foundation, Inc.
    Contributed by Kuang Hwa Lin.  Written by Kuang Hwa Lin, 03/2002.
 
    This file is part of the GNU opcodes library.
@@ -20,7 +20,7 @@
    MA 02110-1301, USA.  */
 
 #include "sysdep.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "opcode/dlx.h"
 
 #define R_ERROR     0x1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/epiphany-asm.c ./opcodes/epiphany-asm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/epiphany-asm.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/epiphany-asm.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,10 +1,11 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Assembler interface for targets using CGEN. -*- C -*-
    CGEN: Cpu tools GENerator
 
    THIS FILE IS MACHINE GENERATED WITH CGEN.
    - the resultant file is machine generated, cgen-asm.in isn't
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/epiphany-desc.c ./opcodes/epiphany-desc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/epiphany-desc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/epiphany-desc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,8 +1,9 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* CPU data for epiphany.
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 1996-2017 Free Software Foundation, Inc.
+Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/epiphany-desc.h ./opcodes/epiphany-desc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/epiphany-desc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/epiphany-desc.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,8 +1,9 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* CPU data header for epiphany.
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 1996-2017 Free Software Foundation, Inc.
+Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/epiphany-dis.c ./opcodes/epiphany-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/epiphany-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/epiphany-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,10 +1,11 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Disassembler interface for targets using CGEN. -*- C -*-
    CGEN: Cpu tools GENerator
 
    THIS FILE IS MACHINE GENERATED WITH CGEN.
    - the resultant file is machine generated, cgen-dis.in isn't
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
@@ -28,7 +29,7 @@
 #include "sysdep.h"
 #include <stdio.h>
 #include "ansidecl.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "bfd.h"
 #include "symcat.h"
 #include "libiberty.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/epiphany-ibld.c ./opcodes/epiphany-ibld.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/epiphany-ibld.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/epiphany-ibld.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,9 +1,10 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Instruction building/extraction support for epiphany. -*- C -*-
 
    THIS FILE IS MACHINE GENERATED WITH CGEN: Cpu tools GENerator.
    - the resultant file is machine generated, cgen-ibld.in isn't
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/epiphany-opc.c ./opcodes/epiphany-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/epiphany-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/epiphany-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,8 +1,9 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Instruction opcode table for epiphany.
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 1996-2017 Free Software Foundation, Inc.
+Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/epiphany-opc.h ./opcodes/epiphany-opc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/epiphany-opc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/epiphany-opc.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,8 +1,9 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Instruction opcode header for epiphany.
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 1996-2017 Free Software Foundation, Inc.
+Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/fr30-asm.c ./opcodes/fr30-asm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/fr30-asm.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/fr30-asm.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,10 +1,11 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Assembler interface for targets using CGEN. -*- C -*-
    CGEN: Cpu tools GENerator
 
    THIS FILE IS MACHINE GENERATED WITH CGEN.
    - the resultant file is machine generated, cgen-asm.in isn't
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/fr30-desc.c ./opcodes/fr30-desc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/fr30-desc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/fr30-desc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,8 +1,9 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* CPU data for fr30.
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 1996-2017 Free Software Foundation, Inc.
+Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/fr30-desc.h ./opcodes/fr30-desc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/fr30-desc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/fr30-desc.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,8 +1,9 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* CPU data header for fr30.
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 1996-2017 Free Software Foundation, Inc.
+Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/fr30-dis.c ./opcodes/fr30-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/fr30-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/fr30-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,10 +1,11 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Disassembler interface for targets using CGEN. -*- C -*-
    CGEN: Cpu tools GENerator
 
    THIS FILE IS MACHINE GENERATED WITH CGEN.
    - the resultant file is machine generated, cgen-dis.in isn't
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
@@ -28,7 +29,7 @@
 #include "sysdep.h"
 #include <stdio.h>
 #include "ansidecl.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "bfd.h"
 #include "symcat.h"
 #include "libiberty.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/fr30-ibld.c ./opcodes/fr30-ibld.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/fr30-ibld.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/fr30-ibld.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,9 +1,10 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Instruction building/extraction support for fr30. -*- C -*-
 
    THIS FILE IS MACHINE GENERATED WITH CGEN: Cpu tools GENerator.
    - the resultant file is machine generated, cgen-ibld.in isn't
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/fr30-opc.c ./opcodes/fr30-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/fr30-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/fr30-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,8 +1,9 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Instruction opcode table for fr30.
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 1996-2017 Free Software Foundation, Inc.
+Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/fr30-opc.h ./opcodes/fr30-opc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/fr30-opc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/fr30-opc.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,8 +1,9 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Instruction opcode header for fr30.
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 1996-2017 Free Software Foundation, Inc.
+Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/frv-asm.c ./opcodes/frv-asm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/frv-asm.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/frv-asm.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,10 +1,11 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Assembler interface for targets using CGEN. -*- C -*-
    CGEN: Cpu tools GENerator
 
    THIS FILE IS MACHINE GENERATED WITH CGEN.
    - the resultant file is machine generated, cgen-asm.in isn't
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/frv-desc.c ./opcodes/frv-desc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/frv-desc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/frv-desc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,8 +1,9 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* CPU data for frv.
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 1996-2017 Free Software Foundation, Inc.
+Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/frv-desc.h ./opcodes/frv-desc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/frv-desc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/frv-desc.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,8 +1,9 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* CPU data header for frv.
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 1996-2017 Free Software Foundation, Inc.
+Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/frv-dis.c ./opcodes/frv-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/frv-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/frv-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,10 +1,11 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Disassembler interface for targets using CGEN. -*- C -*-
    CGEN: Cpu tools GENerator
 
    THIS FILE IS MACHINE GENERATED WITH CGEN.
    - the resultant file is machine generated, cgen-dis.in isn't
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
@@ -28,7 +29,7 @@
 #include "sysdep.h"
 #include <stdio.h>
 #include "ansidecl.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "bfd.h"
 #include "symcat.h"
 #include "libiberty.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/frv-ibld.c ./opcodes/frv-ibld.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/frv-ibld.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/frv-ibld.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,9 +1,10 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Instruction building/extraction support for frv. -*- C -*-
 
    THIS FILE IS MACHINE GENERATED WITH CGEN: Cpu tools GENerator.
    - the resultant file is machine generated, cgen-ibld.in isn't
 
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
+   Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
    This file is part of libopcodes.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/frv-opc.c ./opcodes/frv-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/frv-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/frv-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,8 +1,9 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Instruction opcode table for frv.
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 1996-2017 Free Software Foundation, Inc.
+Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/frv-opc.h ./opcodes/frv-opc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/frv-opc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/frv-opc.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,8 +1,9 @@
+/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
 /* Instruction opcode header for frv.
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright (C) 1996-2017 Free Software Foundation, Inc.
+Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/ft32-dis.c ./opcodes/ft32-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/ft32-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/ft32-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Disassemble ft32 instructions.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Contributed by FTDI (support@ftdichip.com)
 
    This file is part of the GNU opcodes library.
@@ -25,39 +25,45 @@
 #define DEFINE_TABLE
 
 #include "opcode/ft32.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 
 extern const ft32_opc_info_t ft32_opc_info[128];
 
 static fprintf_ftype fpr;
 static void *stream;
 
-int
-print_insn_ft32 (bfd_vma addr, struct disassemble_info *info)
+static int
+sign_extend(int bit, int value)
 {
-  int status;
-  stream = info->stream;
-  bfd_byte buffer[4];
-  unsigned int iword;
-  const ft32_opc_info_t *oo;
-
-  fpr = info->fprintf_func;
-
-  if ((status = info->read_memory_func (addr, buffer, 4, info)))
-    goto fail;
+  int onebit = (1 << bit);
+  return (value & (onebit - 1)) - (value & onebit);
+}
 
-  iword = bfd_getl32 (buffer);
+static void
+ft32_opcode(bfd_vma addr ATTRIBUTE_UNUSED,
+            unsigned int iword,
+            struct disassemble_info *info)
+{
+  const ft32_opc_info_t *oo;
 
   for (oo = ft32_opc_info; oo->name; oo++)
     if ((iword & oo->mask) == oo->bits)
       break;
 
+  unsigned int sc[2];
+  if (ft32_decode_shortcode((unsigned int)addr, iword, sc))
+    {
+      ft32_opcode(addr, sc[0], info);
+      fpr (stream, " ; ");
+      ft32_opcode(addr, sc[1], info);
+    }
+
   if (oo->name)
     {
       int f = oo->fields;
       int imm;
 
-      fpr (stream, "%08x %s", iword, oo->name);
+      fpr (stream, "%s", oo->name);
       if (oo->dw)
         {
           fpr (stream, ".%c ", "bsl"[(iword >> FT32_FLD_DW_BIT) & 3]);
@@ -118,7 +124,7 @@ print_insn_ft32 (bfd_vma addr, struct di
               case  FT32_FLD_RIMM:
                 imm = (iword >> FT32_FLD_RIMM_BIT) & ((1 << FT32_FLD_RIMM_SIZ) - 1);
                 if (imm & 0x400)
-                  info->print_address_func ((bfd_vma) imm & 0x3ff, info);
+                  fpr(stream, "%d", sign_extend(9, imm));
                 else
                   fpr(stream, "$r%d", imm & 0x1f);
                 break;
@@ -127,7 +133,7 @@ print_insn_ft32 (bfd_vma addr, struct di
                 break;
               case  FT32_FLD_K20:
                 imm = iword & ((1 << FT32_FLD_K20_SIZ) - 1);
-                info->print_address_func ((bfd_vma) imm, info);
+                fpr(stream, "%d", sign_extend(19, imm));
                 break;
               case  FT32_FLD_PA:
                 imm = (iword & ((1 << FT32_FLD_PA_SIZ) - 1)) << 2;
@@ -135,17 +141,15 @@ print_insn_ft32 (bfd_vma addr, struct di
                 break;
               case  FT32_FLD_AA:
                 imm = iword & ((1 << FT32_FLD_AA_SIZ) - 1);
-                info->print_address_func ((bfd_vma) imm, info);
-                break;
+                info->print_address_func ((1 << 23) | (bfd_vma) imm, info);
                 break;
               case  FT32_FLD_K16:
                 imm = iword & ((1 << FT32_FLD_K16_SIZ) - 1);
-                info->print_address_func ((bfd_vma) imm, info);
-                break;
-              case  FT32_FLD_K8:
-                imm = iword & ((1 << FT32_FLD_K8_SIZ) - 1);
-                info->print_address_func ((bfd_vma) imm, info);
+                fpr(stream, "%d", imm);
                 break;
+              case  FT32_FLD_K15:
+                imm = iword & ((1 << FT32_FLD_K15_SIZ) - 1);
+                fpr(stream, "%d", sign_extend(14, imm));
                 break;
               case  FT32_FLD_R_D_POST:
                 fpr(stream, "$r%d", (iword >> FT32_FLD_R_D_BIT) & 0x1f);
@@ -166,8 +170,28 @@ print_insn_ft32 (bfd_vma addr, struct di
     }
     else
     {
-      fpr (stream, "%08x!", iword);
+      fpr (stream, "!");
     }
+}
+
+int
+print_insn_ft32 (bfd_vma addr, struct disassemble_info *info)
+{
+  int status;
+  stream = info->stream;
+  bfd_byte buffer[4];
+  unsigned int iword;
+
+  fpr = info->fprintf_func;
+
+  if ((status = info->read_memory_func (addr, buffer, 4, info)))
+    goto fail;
+
+  iword = bfd_getl32 (buffer);
+
+  fpr (stream, "%08x ", iword);
+
+  ft32_opcode(addr, iword, info);
 
   return 4;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/ft32-opc.c ./opcodes/ft32-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/ft32-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/ft32-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* ft32-opc.c -- Definitions for ft32 opcodes.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   Copyright (C) 2013-2018 Free Software Foundation, Inc.
    Contributed by FTDI (support@ftdichip.com)
 
    This file is part of the GNU opcodes library.
@@ -27,8 +27,8 @@ const ft32_opc_info_t ft32_opc_info[] =
 {       "nop", 0, 0xffffffffU, 0x40004000U, 0},
 {      "move", 1, 0xf8007fffU, 0x40004000U, FT32_FLD_R_D|FT32_FLD_R_1},
 {  "streamin", 1, 0xf800000fU, 0xf000000cU, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_RIMM},
-{       "ldi", 1, 0xf8000000U, 0xa8000000U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_K8},
-{       "exi", 1, 0xf8000000U, 0xe8000000U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_K8},
+{       "ldi", 1, 0xf8000000U, 0xa8000000U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_K15},
+{       "exi", 1, 0xf8000000U, 0xe8000000U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_K15},
 {    "return", 0, 0xfc000000U, 0xa0000000U, 0},
 {        "or", 1, 0xf800000fU, 0x40000005U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_RIMM},
 {       "pop", 1, 0xf8000000U, 0x88000000U, FT32_FLD_R_D},
@@ -52,12 +52,12 @@ const ft32_opc_info_t ft32_opc_info[] =
 {    "strcmp", 1, 0xf800000fU, 0xf0000004U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_RIMM},
 {       "mul", 1, 0xf800000fU, 0xf0000008U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_RIMM},
 {      "push", 1, 0xf8000000U, 0x80000000U, FT32_FLD_R_1},
-{       "sti", 1, 0xf8000000U, 0xb0000000U, FT32_FLD_R_D|FT32_FLD_K8|FT32_FLD_R_1_POST},
+{       "sti", 1, 0xf8000000U, 0xb0000000U, FT32_FLD_R_D|FT32_FLD_K15|FT32_FLD_R_1_POST},
 {       "mod", 1, 0xf800000fU, 0xf0000003U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_RIMM},
 {      "umod", 1, 0xf800000fU, 0xf0000001U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_RIMM},
 {     "addcc", 1, 0xf9f0000fU, 0x59e00000U, FT32_FLD_R_1|FT32_FLD_RIMM},
 { "streamout", 1, 0xf800000fU, 0xf000000eU, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_RIMM},
-{      "lpmi", 1, 0xf8000000U, 0xc8000000U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_K8},
+{      "lpmi", 1, 0xf8000000U, 0xc8000000U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_K15},
 {      "udiv", 1, 0xf800000fU, 0xf0000000U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_RIMM},
 {       "sub", 1, 0xf800000fU, 0x40000002U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_RIMM},
 {      "lshr", 1, 0xf800000fU, 0x40000009U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_RIMM},
@@ -79,10 +79,12 @@ const ft32_opc_info_t ft32_opc_info[] =
 {      "ashr", 1, 0xf800000fU, 0x4000000aU, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_RIMM},
 {      "jmpi", 0, 0xfffc0000U, 0x08300000U, FT32_FLD_R_2},
 {     "jmpic", 0, 0xf8040000U, 0x08000000U, FT32_FLD_CBCRCV|FT32_FLD_R_2},
+{     "jmpix", 0, 0xf8040000U, 0x08000000U, FT32_FLD_CR|FT32_FLD_CB|FT32_FLD_CV|FT32_FLD_R_2},
 {      "ashl", 1, 0xf800000fU, 0x40000008U, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_RIMM},
 {      "jmpc", 0, 0xfe340000U, 0x00200000U, FT32_FLD_CBCRCV|FT32_FLD_PA},
 {      "jmpx", 0, 0xf8040000U, 0x00000000U, FT32_FLD_CR|FT32_FLD_CB|FT32_FLD_CV|FT32_FLD_PA},
 {       "lpm", 1, 0xf8000000U, 0x68000000U, FT32_FLD_R_D|FT32_FLD_PA},
 {"streamouti", 1, 0xf800000fU, 0xf000000fU, FT32_FLD_R_D|FT32_FLD_R_1|FT32_FLD_RIMM},
+{      "halt", 0, 0xf8000000U, 0x78000000U, 0},
 { NULL, 0, 0, 0, 0}
 };
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/h8300-dis.c ./opcodes/h8300-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/h8300-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/h8300-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Disassemble h8300 instructions.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -23,7 +23,7 @@
 #include "sysdep.h"
 #define h8_opcodes h8ops
 #include "opcode/h8300.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "opintl.h"
 #include "libiberty.h"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/h8500-dis.c ./opcodes/h8500-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/h8500-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/h8500-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Disassemble h8500 instructions.
-   Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -25,7 +25,7 @@
 #define DEFINE_TABLE
 
 #include "h8500-opc.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "opintl.h"
 
 /* Maximum length of an instruction.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/h8500-opc.h ./opcodes/h8500-opc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/h8500-opc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/h8500-opc.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,6 +1,6 @@
 /* Instruction opcode header for Renesas 8500.
 
-   Copyright (C) 2001-2017 Free Software Foundation, Inc.
+   Copyright (C) 2001-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/hppa-dis.c ./opcodes/hppa-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/hppa-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/hppa-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Disassembler for the PA-RISC. Somewhat derived from sparc-pinsn.c.
-   Copyright (C) 1989-2017 Free Software Foundation, Inc.
+   Copyright (C) 1989-2018 Free Software Foundation, Inc.
 
    Contributed by the Center for Software Science at the
    University of Utah (pa-gdb-bugs@cs.utah.edu).
@@ -22,7 +22,7 @@
    MA 02110-1301, USA.  */
 
 #include "sysdep.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "libhppa.h"
 #include "opcode/hppa.h"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i370-dis.c ./opcodes/i370-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i370-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/i370-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* i370-dis.c -- Disassemble Instruction 370 (ESA/390) instructions
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    PowerPC version written by Ian Lance Taylor, Cygnus Support
    Rewritten for i370 ESA/390 support by Linas Vepstas <linas@linas.org>
 
@@ -22,7 +22,7 @@
 
 #include "sysdep.h"
 #include <stdio.h>
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "opcode/i370.h"
 
 /* This file provides several disassembler functions, all of which use
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i370-opc.c ./opcodes/i370-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i370-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/i370-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* i370-opc.c -- Instruction 370 (ESA/390) architecture opcode list
-   Copyright (C) 1994-2017 Free Software Foundation, Inc.
+   Copyright (C) 1994-2018 Free Software Foundation, Inc.
    PowerPC version written by Ian Lance Taylor, Cygnus Support
    Rewritten for i370 ESA/390 support by Linas Vepstas <linas@linas.org> 1998, 1999
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-dis.c ./opcodes/i386-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-dis.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/i386-dis.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Print i386 instructions for GDB, the GNU debugger.
-   Copyright (C) 1988-2017 Free Software Foundation, Inc.
+   Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -33,7 +33,7 @@
    the Intel manual for details.  */
 
 #include "sysdep.h"
-#include "dis-asm.h"
+#include "disassemble.h"
 #include "opintl.h"
 #include "opcode/i386.h"
 #include "libiberty.h"
@@ -95,10 +95,10 @@ static void OP_XMM_VexW (int, int);
 static void OP_Rounding (int, int);
 static void OP_REG_VexI4 (int, int);
 static void PCLMUL_Fixup (int, int);
-static void VEXI4_Fixup (int, int);
 static void VZERO_Fixup (int, int);
 static void VCMP_Fixup (int, int);
 static void VPCMP_Fixup (int, int);
+static void VPCOM_Fixup (int, int);
 static void OP_0f07 (int, int);
 static void OP_Monitor (int, int);
 static void OP_Mwait (int, int);
@@ -110,6 +110,7 @@ static void CMP_Fixup (int, int);
 static void BadOp (void);
 static void REP_Fixup (int, int);
 static void BND_Fixup (int, int);
+static void NOTRACK_Fixup (int, int);
 static void HLE_Fixup1 (int, int);
 static void HLE_Fixup2 (int, int);
 static void HLE_Fixup3 (int, int);
@@ -375,7 +376,9 @@ fetch_data (struct disassemble_info *inf
 #define EMS { OP_EM, v_swap_mode }
 #define EMd { OP_EM, d_mode }
 #define EMx { OP_EM, x_mode }
+#define EXbScalar { OP_EX, b_scalar_mode }
 #define EXw { OP_EX, w_mode }
+#define EXwScalar { OP_EX, w_scalar_mode }
 #define EXd { OP_EX, d_mode }
 #define EXdScalar { OP_EX, d_scalar_mode }
 #define EXdS { OP_EX, d_swap_mode }
@@ -419,7 +422,6 @@ fetch_data (struct disassemble_info *inf
 #define Vex128 { OP_VEX, vex128_mode }
 #define Vex256 { OP_VEX, vex256_mode }
 #define VexGdq { OP_VEX, dq_mode }
-#define VexI4 { VEXI4_Fixup, 0}
 #define EXdVex { OP_EX_Vex, d_mode }
 #define EXdVexS { OP_EX_Vex, d_swap_mode }
 #define EXdVexScalarS { OP_EX_Vex, d_scalar_swap_mode }
@@ -438,6 +440,7 @@ fetch_data (struct disassemble_info *inf
 #define VZERO { VZERO_Fixup, 0 }
 #define VCMP { VCMP_Fixup, 0 }
 #define VPCMP { VPCMP_Fixup, 0 }
+#define VPCOM { VPCOM_Fixup, 0 }
 
 #define EXxEVexR { OP_Rounding, evex_rounding_mode }
 #define EXxEVexS { OP_Rounding, evex_sae_mode }
@@ -473,6 +476,7 @@ fetch_data (struct disassemble_info *inf
 #define Evh3 { HLE_Fixup3, v_mode }
 
 #define BND { BND_Fixup, 0 }
+#define NOTRACK { NOTRACK_Fixup, 0 }
 
 #define cond_jump_flag { NULL, cond_jump_mode }
 #define loop_jcxz_flag { NULL, loop_jcxz_mode }
@@ -596,6 +600,10 @@ enum
 
   /* scalar, ignore vector length.  */
   scalar_mode,
+  /* like b_mode, ignore vector length.  */
+  b_scalar_mode,
+  /* like w_mode, ignore vector length.  */
+  w_scalar_mode,
   /* like d_mode, ignore vector length.  */
   d_scalar_mode,
   /* like d_swap_mode, ignore vector length.  */
@@ -938,7 +946,6 @@ enum
   RM_0F01_REG_5,
   RM_0F01_REG_7,
   RM_0F1E_MOD_3_REG_7,
-  RM_0FAE_REG_5,
   RM_0FAE_REG_6,
   RM_0FAE_REG_7
 };
@@ -947,7 +954,7 @@ enum
 {
   PREFIX_90 = 0,
   PREFIX_MOD_0_0F01_REG_5,
-  PREFIX_MOD_3_0F01_REG_5_RM_1,
+  PREFIX_MOD_3_0F01_REG_5_RM_0,
   PREFIX_MOD_3_0F01_REG_5_RM_2,
   PREFIX_0F10,
   PREFIX_0F11,
@@ -995,6 +1002,7 @@ enum
   PREFIX_MOD_0_0FAE_REG_4,
   PREFIX_MOD_3_0FAE_REG_4,
   PREFIX_MOD_0_0FAE_REG_5,
+  PREFIX_MOD_3_0FAE_REG_5,
   PREFIX_0FAE_REG_6,
   PREFIX_0FAE_REG_7,
   PREFIX_0FB8,
@@ -1051,6 +1059,7 @@ enum
   PREFIX_0F38CB,
   PREFIX_0F38CC,
   PREFIX_0F38CD,
+  PREFIX_0F38CF,
   PREFIX_0F38DB,
   PREFIX_0F38DC,
   PREFIX_0F38DD,
@@ -1083,6 +1092,8 @@ enum
   PREFIX_0F3A62,
   PREFIX_0F3A63,
   PREFIX_0F3ACC,
+  PREFIX_0F3ACE,
+  PREFIX_0F3ACF,
   PREFIX_0F3ADF,
   PREFIX_VEX_0F10,
   PREFIX_VEX_0F11,
@@ -1304,6 +1315,7 @@ enum
   PREFIX_VEX_0F38BD,
   PREFIX_VEX_0F38BE,
   PREFIX_VEX_0F38BF,
+  PREFIX_VEX_0F38CF,
   PREFIX_VEX_0F38DB,
   PREFIX_VEX_0F38DC,
   PREFIX_VEX_0F38DD,
@@ -1380,6 +1392,8 @@ enum
   PREFIX_VEX_0F3A7D,
   PREFIX_VEX_0F3A7E,
   PREFIX_VEX_0F3A7F,
+  PREFIX_VEX_0F3ACE,
+  PREFIX_VEX_0F3ACF,
   PREFIX_VEX_0F3ADF,
   PREFIX_VEX_0F3AF0,
 
@@ -1558,16 +1572,25 @@ enum
   PREFIX_EVEX_0F384D,
   PREFIX_EVEX_0F384E,
   PREFIX_EVEX_0F384F,
+  PREFIX_EVEX_0F3850,
+  PREFIX_EVEX_0F3851,
   PREFIX_EVEX_0F3852,
   PREFIX_EVEX_0F3853,
+  PREFIX_EVEX_0F3854,
   PREFIX_EVEX_0F3855,
   PREFIX_EVEX_0F3858,
   PREFIX_EVEX_0F3859,
   PREFIX_EVEX_0F385A,
   PREFIX_EVEX_0F385B,
+  PREFIX_EVEX_0F3862,
+  PREFIX_EVEX_0F3863,
   PREFIX_EVEX_0F3864,
   PREFIX_EVEX_0F3865,
   PREFIX_EVEX_0F3866,
+  PREFIX_EVEX_0F3870,
+  PREFIX_EVEX_0F3871,
+  PREFIX_EVEX_0F3872,
+  PREFIX_EVEX_0F3873,
   PREFIX_EVEX_0F3875,
   PREFIX_EVEX_0F3876,
   PREFIX_EVEX_0F3877,
@@ -1585,6 +1608,7 @@ enum
   PREFIX_EVEX_0F388A,
   PREFIX_EVEX_0F388B,
   PREFIX_EVEX_0F388D,
+  PREFIX_EVEX_0F388F,
   PREFIX_EVEX_0F3890,
   PREFIX_EVEX_0F3891,
   PREFIX_EVEX_0F3892,
@@ -1639,6 +1663,11 @@ enum
   PREFIX_EVEX_0F38CB,
   PREFIX_EVEX_0F38CC,
   PREFIX_EVEX_0F38CD,
+  PREFIX_EVEX_0F38CF,
+  PREFIX_EVEX_0F38DC,
+  PREFIX_EVEX_0F38DD,
+  PREFIX_EVEX_0F38DE,
+  PREFIX_EVEX_0F38DF,
 
   PREFIX_EVEX_0F3A00,
   PREFIX_EVEX_0F3A01,
@@ -1676,6 +1705,7 @@ enum
   PREFIX_EVEX_0F3A3F,
   PREFIX_EVEX_0F3A42,
   PREFIX_EVEX_0F3A43,
+  PREFIX_EVEX_0F3A44,
   PREFIX_EVEX_0F3A50,
   PREFIX_EVEX_0F3A51,
   PREFIX_EVEX_0F3A54,
@@ -1683,7 +1713,13 @@ enum
   PREFIX_EVEX_0F3A56,
   PREFIX_EVEX_0F3A57,
   PREFIX_EVEX_0F3A66,
-  PREFIX_EVEX_0F3A67
+  PREFIX_EVEX_0F3A67,
+  PREFIX_EVEX_0F3A70,
+  PREFIX_EVEX_0F3A71,
+  PREFIX_EVEX_0F3A72,
+  PREFIX_EVEX_0F3A73,
+  PREFIX_EVEX_0F3ACE,
+  PREFIX_EVEX_0F3ACF
 };
 
 enum
@@ -1838,10 +1874,6 @@ enum
   VEX_LEN_0F3841_P_2,
   VEX_LEN_0F385A_P_2_M_0,
   VEX_LEN_0F38DB_P_2,
-  VEX_LEN_0F38DC_P_2,
-  VEX_LEN_0F38DD_P_2,
-  VEX_LEN_0F38DE_P_2,
-  VEX_LEN_0F38DF_P_2,
   VEX_LEN_0F38F2_P_0,
   VEX_LEN_0F38F3_R_1_P_0,
   VEX_LEN_0F38F3_R_2_P_0,
@@ -1875,7 +1907,6 @@ enum
   VEX_LEN_0F3A38_P_2,
   VEX_LEN_0F3A39_P_2,
   VEX_LEN_0F3A41_P_2,
-  VEX_LEN_0F3A44_P_2,
   VEX_LEN_0F3A46_P_2,
   VEX_LEN_0F3A60_P_2,
   VEX_LEN_0F3A61_P_2,
@@ -2162,11 +2193,8 @@ enum
   VEX_W_0F385A_P_2_M_0,
   VEX_W_0F3878_P_2,
   VEX_W_0F3879_P_2,
+  VEX_W_0F38CF_P_2,
   VEX_W_0F38DB_P_2,
-  VEX_W_0F38DC_P_2,
-  VEX_W_0F38DD_P_2,
-  VEX_W_0F38DE_P_2,
-  VEX_W_0F38DF_P_2,
   VEX_W_0F3A00_P_2,
   VEX_W_0F3A01_P_2,
   VEX_W_0F3A02_P_2,
@@ -2196,7 +2224,6 @@ enum
   VEX_W_0F3A40_P_2,
   VEX_W_0F3A41_P_2,
   VEX_W_0F3A42_P_2,
-  VEX_W_0F3A44_P_2,
   VEX_W_0F3A46_P_2,
   VEX_W_0F3A48_P_2,
   VEX_W_0F3A49_P_2,
@@ -2205,6 +2232,8 @@ enum
   VEX_W_0F3A4C_P_2,
   VEX_W_0F3A62_P_2,
   VEX_W_0F3A63_P_2,
+  VEX_W_0F3ACE_P_2,
+  VEX_W_0F3ACF_P_2,
   VEX_W_0F3ADF_P_2,
 
   EVEX_W_0F10_P_0,
@@ -2388,12 +2417,19 @@ enum
   EVEX_W_0F3839_P_1,
   EVEX_W_0F383A_P_1,
   EVEX_W_0F3840_P_2,
+  EVEX_W_0F3854_P_2,
   EVEX_W_0F3855_P_2,
   EVEX_W_0F3858_P_2,
   EVEX_W_0F3859_P_2,
   EVEX_W_0F385A_P_2,
   EVEX_W_0F385B_P_2,
+  EVEX_W_0F3862_P_2,
+  EVEX_W_0F3863_P_2,
   EVEX_W_0F3866_P_2,
+  EVEX_W_0F3870_P_2,
+  EVEX_W_0F3871_P_2,
+  EVEX_W_0F3872_P_2,
+  EVEX_W_0F3873_P_2,
   EVEX_W_0F3875_P_2,
   EVEX_W_0F3878_P_2,
   EVEX_W_0F3879_P_2,
@@ -2441,7 +2477,13 @@ enum
   EVEX_W_0F3A56_P_2,
   EVEX_W_0F3A57_P_2,
   EVEX_W_0F3A66_P_2,
-  EVEX_W_0F3A67_P_2
+  EVEX_W_0F3A67_P_2,
+  EVEX_W_0F3A70_P_2,
+  EVEX_W_0F3A71_P_2,
+  EVEX_W_0F3A72_P_2,
+  EVEX_W_0F3A73_P_2,
+  EVEX_W_0F3ACE_P_2,
+  EVEX_W_0F3ACF_P_2
 };
 
 typedef void (*op_rtn) (int bytemode, int sizeflag);
@@ -3025,7 +3067,7 @@ static const struct dis386 dis386_twobyt
   { "movz{wR|x}",	{ Gv, Ew }, 0 }, /* yes, there really is movzww ! */
   /* b8 */
   { PREFIX_TABLE (PREFIX_0FB8) },
-  { "ud1",		{ XX }, 0 },
+  { "ud1S",		{ Gv, Ev }, 0 },
   { REG_TABLE (REG_0FBA) },
   { "btcS",		{ Evh1, Gv }, 0 },
   { PREFIX_TABLE (PREFIX_0FBC) },
@@ -3103,7 +3145,7 @@ static const struct dis386 dis386_twobyt
   { "paddb",		{ MX, EM }, PREFIX_OPCODE },
   { "paddw",		{ MX, EM }, PREFIX_OPCODE },
   { "paddd",		{ MX, EM }, PREFIX_OPCODE },
-  { Bad_Opcode },
+  { "ud0S",		{ Gv, Ev }, 0 },
 };
 
 static const unsigned char onebyte_has_modrm[256] = {
@@ -3143,11 +3185,11 @@ static const unsigned char twobyte_has_m
   /* 80 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 8f */
   /* 90 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 9f */
   /* a0 */ 0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1, /* af */
-  /* b0 */ 1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1, /* bf */
+  /* b0 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* bf */
   /* c0 */ 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, /* cf */
   /* d0 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* df */
   /* e0 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* ef */
-  /* f0 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0  /* ff */
+  /* f0 */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1  /* ff */
   /*       -------------------------------        */
   /*       0 1 2 3 4 5 6 7 8 9 a b c d e f        */
 };
@@ -3438,7 +3480,7 @@ static const struct dis386 reg_table[][8
     { "rcrA",	{ Eb, Ib }, 0 },
     { "shlA",	{ Eb, Ib }, 0 },
     { "shrA",	{ Eb, Ib }, 0 },
-    { Bad_Opcode },
+    { "shlA",	{ Eb, Ib }, 0 },
     { "sarA",	{ Eb, Ib }, 0 },
   },
   /* REG_C1 */
@@ -3449,7 +3491,7 @@ static const struct dis386 reg_table[][8
     { "rcrQ",	{ Ev, Ib }, 0 },
     { "shlQ",	{ Ev, Ib }, 0 },
     { "shrQ",	{ Ev, Ib }, 0 },
-    { Bad_Opcode },
+    { "shlQ",	{ Ev, Ib }, 0 },
     { "sarQ",	{ Ev, Ib }, 0 },
   },
   /* REG_C6 */
@@ -3482,7 +3524,7 @@ static const struct dis386 reg_table[][8
     { "rcrA",	{ Eb, I1 }, 0 },
     { "shlA",	{ Eb, I1 }, 0 },
     { "shrA",	{ Eb, I1 }, 0 },
-    { Bad_Opcode },
+    { "shlA",	{ Eb, I1 }, 0 },
     { "sarA",	{ Eb, I1 }, 0 },
   },
   /* REG_D1 */
@@ -3493,7 +3535,7 @@ static const struct dis386 reg_table[][8
     { "rcrQ",	{ Ev, I1 }, 0 },
     { "shlQ",	{ Ev, I1 }, 0 },
     { "shrQ",	{ Ev, I1 }, 0 },
-    { Bad_Opcode },
+    { "shlQ",	{ Ev, I1 }, 0 },
     { "sarQ",	{ Ev, I1 }, 0 },
   },
   /* REG_D2 */
@@ -3504,7 +3546,7 @@ static const struct dis386 reg_table[][8
     { "rcrA",	{ Eb, CL }, 0 },
     { "shlA",	{ Eb, CL }, 0 },
     { "shrA",	{ Eb, CL }, 0 },
-    { Bad_Opcode },
+    { "shlA",	{ Eb, CL }, 0 },
     { "sarA",	{ Eb, CL }, 0 },
   },
   /* REG_D3 */
@@ -3515,7 +3557,7 @@ static const struct dis386 reg_table[][8
     { "rcrQ",	{ Ev, CL }, 0 },
     { "shlQ",	{ Ev, CL }, 0 },
     { "shrQ",	{ Ev, CL }, 0 },
-    { Bad_Opcode },
+    { "shlQ",	{ Ev, CL }, 0 },
     { "sarQ",	{ Ev, CL }, 0 },
   },
   /* REG_F6 */
@@ -3549,9 +3591,9 @@ static const struct dis386 reg_table[][8
   {
     { "incQ",	{ Evh1 }, 0 },
     { "decQ",	{ Evh1 }, 0 },
-    { "call{&|}", { indirEv, BND }, 0 },
+    { "call{&|}", { NOTRACK, indirEv, BND }, 0 },
     { MOD_TABLE (MOD_FF_REG_3) },
-    { "jmp{&|}", { indirEv, BND }, 0 },
+    { "jmp{&|}", { NOTRACK, indirEv, BND }, 0 },
     { MOD_TABLE (MOD_FF_REG_5) },
     { "pushU",	{ stackEv }, 0 },
     { Bad_Opcode },
@@ -3786,16 +3828,16 @@ static const struct dis386 prefix_table[
     { "rstorssp",	{ Mq }, PREFIX_OPCODE },
   },
 
-  /* PREFIX_MOD_3_0F01_REG_5_RM_1 */
+  /* PREFIX_MOD_3_0F01_REG_5_RM_0 */
   {
     { Bad_Opcode },
-    { "incsspK",	{ Skip_MODRM }, PREFIX_OPCODE },
+    { "setssbsy",	{ Skip_MODRM }, PREFIX_OPCODE },
   },
 
   /* PREFIX_MOD_3_0F01_REG_5_RM_2 */
   {
     { Bad_Opcode },
-    { "savessp",	{ Skip_MODRM }, PREFIX_OPCODE },
+    { "saveprevssp",	{ Skip_MODRM }, PREFIX_OPCODE },
   },
 
   /* PREFIX_0F10 */
@@ -4131,7 +4173,12 @@ static const struct dis386 prefix_table[
   /* PREFIX_MOD_0_0FAE_REG_5 */
   {
     { "xrstor",		{ FXSAVE }, PREFIX_OPCODE },
-    { "setssbsy",	{ Mq }, PREFIX_OPCODE },
+  },
+
+  /* PREFIX_MOD_3_0FAE_REG_5 */
+  {
+    { "lfence",		{ Skip_MODRM }, 0 },
+    { "incsspK",	{ Rdq }, PREFIX_OPCODE },
   },
 
   /* PREFIX_0FAE_REG_6 */
@@ -4516,6 +4563,13 @@ static const struct dis386 prefix_table[
     { "sha256msg2", { XM, EXxmm }, PREFIX_OPCODE },
   },
 
+  /* PREFIX_0F38CF */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "gf2p8mulb", { XM, EXxmm }, PREFIX_OPCODE },
+  },
+
   /* PREFIX_0F38DB */
   {
     { Bad_Opcode },
@@ -4741,6 +4795,20 @@ static const struct dis386 prefix_table[
     { "sha1rnds4", { XM, EXxmm, Ib }, PREFIX_OPCODE },
   },
 
+  /* PREFIX_0F3ACE */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "gf2p8affineqb", { XM, EXxmm, Ib }, PREFIX_OPCODE },
+  },
+
+  /* PREFIX_0F3ACF */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "gf2p8affineinvqb", { XM, EXxmm, Ib }, PREFIX_OPCODE },
+  },
+
   /* PREFIX_0F3ADF */
   {
     { Bad_Opcode },
@@ -6308,6 +6376,13 @@ static const struct dis386 prefix_table[
     { "vfnmsub231s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 },
   },
 
+  /* PREFIX_VEX_0F38CF */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (VEX_W_0F38CF_P_2) },
+  },
+
   /* PREFIX_VEX_0F38DB */
   {
     { Bad_Opcode },
@@ -6319,28 +6394,28 @@ static const struct dis386 prefix_table[
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0F38DC_P_2) },
+    { "vaesenc",	{ XM, Vex, EXx }, 0 },
   },
 
   /* PREFIX_VEX_0F38DD */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0F38DD_P_2) },
+    { "vaesenclast",	{ XM, Vex, EXx }, 0 },
   },
 
   /* PREFIX_VEX_0F38DE */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0F38DE_P_2) },
+    { "vaesdec",	{ XM, Vex, EXx }, 0 },
   },
 
   /* PREFIX_VEX_0F38DF */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0F38DF_P_2) },
+    { "vaesdeclast",	{ XM, Vex, EXx }, 0 },
   },
 
   /* PREFIX_VEX_0F38F2 */
@@ -6622,7 +6697,7 @@ static const struct dis386 prefix_table[
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { VEX_LEN_TABLE (VEX_LEN_0F3A44_P_2) },
+    { "vpclmulqdq",	{ XM, Vex, EXx, PCLMUL }, 0 },
   },
 
   /* PREFIX_VEX_0F3A46 */
@@ -6671,28 +6746,28 @@ static const struct dis386 prefix_table[
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfmaddsubps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vfmaddsubps", { XMVexW, Vex, EXVexW, EXVexW }, 0 },
   },
 
   /* PREFIX_VEX_0F3A5D */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfmaddsubpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vfmaddsubpd", { XMVexW, Vex, EXVexW, EXVexW }, 0 },
   },
 
   /* PREFIX_VEX_0F3A5E */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfmsubaddps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vfmsubaddps", { XMVexW, Vex, EXVexW, EXVexW }, 0 },
   },
 
   /* PREFIX_VEX_0F3A5F */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfmsubaddpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vfmsubaddpd", { XMVexW, Vex, EXVexW, EXVexW }, 0 },
   },
 
   /* PREFIX_VEX_0F3A60 */
@@ -6728,14 +6803,14 @@ static const struct dis386 prefix_table[
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfmaddps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vfmaddps", { XMVexW, Vex, EXVexW, EXVexW }, 0 },
   },
 
   /* PREFIX_VEX_0F3A69 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfmaddpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vfmaddpd", { XMVexW, Vex, EXVexW, EXVexW }, 0 },
   },
 
   /* PREFIX_VEX_0F3A6A */
@@ -6756,14 +6831,14 @@ static const struct dis386 prefix_table[
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfmsubps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vfmsubps", { XMVexW, Vex, EXVexW, EXVexW }, 0 },
   },
 
   /* PREFIX_VEX_0F3A6D */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfmsubpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vfmsubpd", { XMVexW, Vex, EXVexW, EXVexW }, 0 },
   },
 
   /* PREFIX_VEX_0F3A6E */
@@ -6784,14 +6859,14 @@ static const struct dis386 prefix_table[
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfnmaddps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vfnmaddps", { XMVexW, Vex, EXVexW, EXVexW }, 0 },
   },
 
   /* PREFIX_VEX_0F3A79 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfnmaddpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vfnmaddpd", { XMVexW, Vex, EXVexW, EXVexW }, 0 },
   },
 
   /* PREFIX_VEX_0F3A7A */
@@ -6812,7 +6887,7 @@ static const struct dis386 prefix_table[
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfnmsubps", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vfnmsubps", { XMVexW, Vex, EXVexW, EXVexW }, 0 },
     { Bad_Opcode },
   },
 
@@ -6820,7 +6895,7 @@ static const struct dis386 prefix_table[
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vfnmsubpd", { XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vfnmsubpd", { XMVexW, Vex, EXVexW, EXVexW }, 0 },
   },
 
   /* PREFIX_VEX_0F3A7E */
@@ -6837,6 +6912,20 @@ static const struct dis386 prefix_table[
     { VEX_LEN_TABLE (VEX_LEN_0F3A7F_P_2) },
   },
 
+  /* PREFIX_VEX_0F3ACE */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (VEX_W_0F3ACE_P_2) },
+  },
+
+  /* PREFIX_VEX_0F3ACF */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (VEX_W_0F3ACF_P_2) },
+  },
+
   /* PREFIX_VEX_0F3ADF */
   {
     { Bad_Opcode },
@@ -6949,7 +7038,7 @@ static const struct dis386 x86_64_table[
 
   /* X86_64_82 */
   {
-    /* Opcode 0x82 is an alias of of opcode 0x80 in 32-bit mode.  */
+    /* Opcode 0x82 is an alias of opcode 0x80 in 32-bit mode.  */
     { REG_TABLE (REG_80) },
   },
 
@@ -7264,7 +7353,7 @@ static const struct dis386 three_byte_ta
     { PREFIX_TABLE (PREFIX_0F38CC) },
     { PREFIX_TABLE (PREFIX_0F38CD) },
     { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_0F38CF) },
     /* d0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -7554,8 +7643,8 @@ static const struct dis386 three_byte_ta
     { Bad_Opcode },
     { PREFIX_TABLE (PREFIX_0F3ACC) },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_0F3ACE) },
+    { PREFIX_TABLE (PREFIX_0F3ACF) },
     /* d0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -7766,9 +7855,9 @@ static const struct dis386 xop_table[][2
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vpmacssww", 	{ XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
-    { "vpmacsswd", 	{ XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
-    { "vpmacssdql", 	{ XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vpmacssww", 	{ XMVexW, Vex, EXVexW, EXVexW }, 0 },
+    { "vpmacsswd", 	{ XMVexW, Vex, EXVexW, EXVexW }, 0 },
+    { "vpmacssdql", 	{ XMVexW, Vex, EXVexW, EXVexW }, 0 },
     /* 88 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -7776,17 +7865,17 @@ static const struct dis386 xop_table[][2
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vpmacssdd", 	{ XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
-    { "vpmacssdqh", 	{ XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vpmacssdd", 	{ XMVexW, Vex, EXVexW, EXVexW }, 0 },
+    { "vpmacssdqh", 	{ XMVexW, Vex, EXVexW, EXVexW }, 0 },
     /* 90 */
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vpmacsww", 	{ XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
-    { "vpmacswd", 	{ XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
-    { "vpmacsdql", 	{ XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vpmacsww", 	{ XMVexW, Vex, EXVexW, EXVexW }, 0 },
+    { "vpmacswd", 	{ XMVexW, Vex, EXVexW, EXVexW }, 0 },
+    { "vpmacsdql", 	{ XMVexW, Vex, EXVexW, EXVexW }, 0 },
     /* 98 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -7794,16 +7883,16 @@ static const struct dis386 xop_table[][2
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vpmacsdd", 	{ XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
-    { "vpmacsdqh", 	{ XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vpmacsdd", 	{ XMVexW, Vex, EXVexW, EXVexW }, 0 },
+    { "vpmacsdqh", 	{ XMVexW, Vex, EXVexW, EXVexW }, 0 },
     /* a0 */
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vpcmov", 	{ XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
-    { "vpperm", 	{ XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vpcmov", 	{ XMVexW, Vex, EXVexW, EXVexW }, 0 },
+    { "vpperm", 	{ XMVexW, Vex, EXVexW, EXVexW }, 0 },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vpmadcsswd", 	{ XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vpmadcsswd", 	{ XMVexW, Vex, EXVexW, EXVexW }, 0 },
     { Bad_Opcode },
     /* a8 */
     { Bad_Opcode },
@@ -7821,7 +7910,7 @@ static const struct dis386 xop_table[][2
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { "vpmadcswd", 	{ XMVexW, Vex, EXVexW, EXVexW, VexI4 }, 0 },
+    { "vpmadcswd", 	{ XMVexW, Vex, EXVexW, EXVexW }, 0 },
     { Bad_Opcode },
     /* b8 */
     { Bad_Opcode },
@@ -9016,7 +9105,7 @@ static const struct dis386 vex_table[][2
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_VEX_0F38CF) },
     /* d0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -9306,8 +9395,8 @@ static const struct dis386 vex_table[][2
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE(PREFIX_VEX_0F3ACE) },
+    { PREFIX_TABLE(PREFIX_VEX_0F3ACF) },
     /* d0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -9851,26 +9940,6 @@ static const struct dis386 vex_len_table
     { VEX_W_TABLE (VEX_W_0F38DB_P_2) },
   },
 
-  /* VEX_LEN_0F38DC_P_2 */
-  {
-    { VEX_W_TABLE (VEX_W_0F38DC_P_2) },
-  },
-
-  /* VEX_LEN_0F38DD_P_2 */
-  {
-    { VEX_W_TABLE (VEX_W_0F38DD_P_2) },
-  },
-
-  /* VEX_LEN_0F38DE_P_2 */
-  {
-    { VEX_W_TABLE (VEX_W_0F38DE_P_2) },
-  },
-
-  /* VEX_LEN_0F38DF_P_2 */
-  {
-    { VEX_W_TABLE (VEX_W_0F38DF_P_2) },
-  },
-
   /* VEX_LEN_0F38F2_P_0 */
   {
     { "andnS",		{ Gdq, VexGdq, Edq }, 0 },
@@ -10045,11 +10114,6 @@ static const struct dis386 vex_len_table
     { VEX_W_TABLE (VEX_W_0F3A41_P_2) },
   },
 
-  /* VEX_LEN_0F3A44_P_2 */
-  {
-    { VEX_W_TABLE (VEX_W_0F3A44_P_2) },
-  },
-
   /* VEX_LEN_0F3A46_P_2 */
   {
     { Bad_Opcode },
@@ -10078,42 +10142,42 @@ static const struct dis386 vex_len_table
 
   /* VEX_LEN_0F3A6A_P_2 */
   {
-    { "vfmaddss",	{ XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 }, 0 },
+    { "vfmaddss",	{ XMVexW, Vex128, EXdVexW, EXdVexW }, 0 },
   },
 
   /* VEX_LEN_0F3A6B_P_2 */
   {
-    { "vfmaddsd",	{ XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 }, 0 },
+    { "vfmaddsd",	{ XMVexW, Vex128, EXqVexW, EXqVexW }, 0 },
   },
 
   /* VEX_LEN_0F3A6E_P_2 */
   {
-    { "vfmsubss",	{ XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 }, 0 },
+    { "vfmsubss",	{ XMVexW, Vex128, EXdVexW, EXdVexW }, 0 },
   },
 
   /* VEX_LEN_0F3A6F_P_2 */
   {
-    { "vfmsubsd",	{ XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 }, 0 },
+    { "vfmsubsd",	{ XMVexW, Vex128, EXqVexW, EXqVexW }, 0 },
   },
 
   /* VEX_LEN_0F3A7A_P_2 */
   {
-    { "vfnmaddss",	{ XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 }, 0 },
+    { "vfnmaddss",	{ XMVexW, Vex128, EXdVexW, EXdVexW }, 0 },
   },
 
   /* VEX_LEN_0F3A7B_P_2 */
   {
-    { "vfnmaddsd",	{ XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 }, 0 },
+    { "vfnmaddsd",	{ XMVexW, Vex128, EXqVexW, EXqVexW }, 0 },
   },
 
   /* VEX_LEN_0F3A7E_P_2 */
   {
-    { "vfnmsubss",	{ XMVexW, Vex128, EXdVexW, EXdVexW, VexI4 }, 0 },
+    { "vfnmsubss",	{ XMVexW, Vex128, EXdVexW, EXdVexW }, 0 },
   },
 
   /* VEX_LEN_0F3A7F_P_2 */
   {
-    { "vfnmsubsd",	{ XMVexW, Vex128, EXqVexW, EXqVexW, VexI4 }, 0 },
+    { "vfnmsubsd",	{ XMVexW, Vex128, EXqVexW, EXqVexW }, 0 },
   },
 
   /* VEX_LEN_0F3ADF_P_2 */
@@ -10128,42 +10192,42 @@ static const struct dis386 vex_len_table
 
   /* VEX_LEN_0FXOP_08_CC */
   {
-     { "vpcomb",	{ XM, Vex128, EXx, Ib }, 0 },
+     { "vpcomb",	{ XM, Vex128, EXx, VPCOM }, 0 },
   },
 
   /* VEX_LEN_0FXOP_08_CD */
   {
-     { "vpcomw",	{ XM, Vex128, EXx, Ib }, 0 },
+     { "vpcomw",	{ XM, Vex128, EXx, VPCOM }, 0 },
   },
 
   /* VEX_LEN_0FXOP_08_CE */
   {
-     { "vpcomd",	{ XM, Vex128, EXx, Ib }, 0 },
+     { "vpcomd",	{ XM, Vex128, EXx, VPCOM }, 0 },
   },
 
   /* VEX_LEN_0FXOP_08_CF */
   {
-     { "vpcomq",	{ XM, Vex128, EXx, Ib }, 0 },
+     { "vpcomq",	{ XM, Vex128, EXx, VPCOM }, 0 },
   },
 
   /* VEX_LEN_0FXOP_08_EC */
   {
-     { "vpcomub",	{ XM, Vex128, EXx, Ib }, 0 },
+     { "vpcomub",	{ XM, Vex128, EXx, VPCOM }, 0 },
   },
 
   /* VEX_LEN_0FXOP_08_ED */
   {
-     { "vpcomuw",	{ XM, Vex128, EXx, Ib }, 0 },
+     { "vpcomuw",	{ XM, Vex128, EXx, VPCOM }, 0 },
   },
 
   /* VEX_LEN_0FXOP_08_EE */
   {
-     { "vpcomud",	{ XM, Vex128, EXx, Ib }, 0 },
+     { "vpcomud",	{ XM, Vex128, EXx, VPCOM }, 0 },
   },
 
   /* VEX_LEN_0FXOP_08_EF */
   {
-     { "vpcomuq",	{ XM, Vex128, EXx, Ib }, 0 },
+     { "vpcomuq",	{ XM, Vex128, EXx, VPCOM }, 0 },
   },
 
   /* VEX_LEN_0FXOP_09_80 */
@@ -11234,24 +11298,12 @@ static const struct dis386 vex_w_table[]
     { "vpbroadcastw",	{ XM, EXxmm_mw }, 0 },
   },
   {
-    /* VEX_W_0F38DB_P_2 */
-    { "vaesimc",	{ XM, EXx }, 0 },
-  },
-  {
-    /* VEX_W_0F38DC_P_2 */
-    { "vaesenc",	{ XM, Vex128, EXx }, 0 },
+    /* VEX_W_0F38CF_P_2 */
+    { "vgf2p8mulb", { XM, Vex, EXx }, 0 },
   },
   {
-    /* VEX_W_0F38DD_P_2 */
-    { "vaesenclast",	{ XM, Vex128, EXx }, 0 },
-  },
-  {
-    /* VEX_W_0F38DE_P_2 */
-    { "vaesdec",	{ XM, Vex128, EXx }, 0 },
-  },
-  {
-    /* VEX_W_0F38DF_P_2 */
-    { "vaesdeclast",	{ XM, Vex128, EXx }, 0 },
+    /* VEX_W_0F38DB_P_2 */
+    { "vaesimc",	{ XM, EXx }, 0 },
   },
   {
     /* VEX_W_0F3A00_P_2 */
@@ -11376,10 +11428,6 @@ static const struct dis386 vex_w_table[]
     { "vmpsadbw",	{ XM, Vex, EXx, Ib }, 0 },
   },
   {
-    /* VEX_W_0F3A44_P_2 */
-    { "vpclmulqdq",	{ XM, Vex128, EXx, PCLMUL }, 0 },
-  },
-  {
     /* VEX_W_0F3A46_P_2 */
     { "vperm2i128",	{ XM, Vex256, EXx, Ib }, 0 },
   },
@@ -11414,6 +11462,16 @@ static const struct dis386 vex_w_table[]
     { "vpcmpistri",	{ XM, EXx, Ib }, 0 },
   },
   {
+    /* VEX_W_0F3ACE_P_2 */
+    { Bad_Opcode },
+    { "vgf2p8affineqb", { XM, Vex, EXx, Ib }, 0 },
+  },
+  {
+    /* VEX_W_0F3ACF_P_2 */
+    { Bad_Opcode },
+    { "vgf2p8affineinvqb",  { XM, Vex, EXx, Ib }, 0 },
+  },
+  {
     /* VEX_W_0F3ADF_P_2 */
     { "vaeskeygenassist", { XM, EXx, Ib }, 0 },
   },
@@ -11654,7 +11712,7 @@ static const struct dis386 mod_table[][2
   {
     /* MOD_0FAE_REG_5 */
     { PREFIX_TABLE (PREFIX_MOD_0_0FAE_REG_5) },
-    { RM_TABLE (RM_0FAE_REG_5) },
+    { PREFIX_TABLE (PREFIX_MOD_3_0FAE_REG_5) },
   },
   {
     /* MOD_0FAE_REG_6 */
@@ -12230,8 +12288,8 @@ static const struct dis386 rm_table[][8]
   },
   {
     /* RM_0F01_REG_5 */
+    { PREFIX_TABLE (PREFIX_MOD_3_0F01_REG_5_RM_0) },
     { Bad_Opcode },
-    { PREFIX_TABLE (PREFIX_MOD_3_0F01_REG_5_RM_1) },
     { PREFIX_TABLE (PREFIX_MOD_3_0F01_REG_5_RM_2) },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -12259,10 +12317,6 @@ static const struct dis386 rm_table[][8]
     { "nopQ",		{ Ev }, 0 },
   },
   {
-    /* RM_0FAE_REG_5 */
-    { "lfence",		{ Skip_MODRM }, 0 },
-  },
-  {
     /* RM_0FAE_REG_6 */
     { "mfence",		{ Skip_MODRM }, 0 },
   },
@@ -12281,6 +12335,7 @@ static const struct dis386 rm_table[][8]
 #define XACQUIRE_PREFIX	(0xf2 | 0x200)
 #define XRELEASE_PREFIX	(0xf3 | 0x400)
 #define BND_PREFIX	(0xf2 | 0x400)
+#define NOTRACK_PREFIX	(0x3e | 0x100)
 
 static int
 ckprefix (void)
@@ -12499,6 +12554,8 @@ prefix_name (int pref, int sizeflag)
       return "xrelease";
     case BND_PREFIX:
       return "bnd";
+    case NOTRACK_PREFIX:
+      return "notrack";
     default:
       return NULL;
     }
@@ -12752,11 +12809,6 @@ get_valid_dis386 (const struct dis386 *d
 	{
 	  /* In 16/32-bit mode REX_B is silently ignored.  */
 	  rex &= ~REX_B;
-	  if (vex.register_specifier > 0x7)
-	    {
-	      dp = &bad_opcode;
-	      return dp;
-	    }
 	}
 
       vex.length = (*codep & 0x4) ? 256 : 128;
@@ -12815,16 +12867,15 @@ get_valid_dis386 (const struct dis386 *d
 	{
 	  if (vex.w)
 	    rex |= REX_W;
-	  vex.register_specifier = (~(*codep >> 3)) & 0xf;
 	}
       else
 	{
 	  /* For the 3-byte VEX prefix in 32-bit mode, the REX_B bit
 	     is ignored, other REX bits are 0 and the highest bit in
-	     VEX.vvvv is also ignored.  */
+	     VEX.vvvv is also ignored (but we mustn't clear it here).  */
 	  rex = 0;
-	  vex.register_specifier = (~(*codep >> 3)) & 0x7;
 	}
+      vex.register_specifier = (~(*codep >> 3)) & 0xf;
       vex.length = (*codep & 0x4) ? 256 : 128;
       switch ((*codep & 0x3))
 	{
@@ -12939,14 +12990,6 @@ get_valid_dis386 (const struct dis386 *d
 	rex |= REX_W;
 
       vex.register_specifier = (~(*codep >> 3)) & 0xf;
-      if (address_mode != mode_64bit)
-	{
-	  /* In 16/32-bit mode silently ignore following bits.  */
-	  rex &= ~REX_B;
-	  vex.r = 1;
-	  vex.v = 1;
-	  vex.register_specifier &= 0x7;
-	}
 
       /* The U bit.  */
       if (!(*codep & 0x4))
@@ -12979,6 +13022,14 @@ get_valid_dis386 (const struct dis386 *d
       vex.mask_register_specifier = *codep & 0x7;
       vex.zeroing = *codep & 0x80;
 
+      if (address_mode != mode_64bit)
+	{
+	  /* In 16/32-bit mode silently ignore following bits.  */
+	  rex &= ~REX_B;
+	  vex.r = 1;
+	  vex.v = 1;
+	}
+
       need_vex = 1;
       need_vex_reg = 1;
       codep++;
@@ -13520,19 +13571,19 @@ static const char *float_mem[] = {
   "fNsaveIC",
   "fNstsw",
   /* de */
-  "fiadd",
-  "fimul",
-  "ficom",
-  "ficomp",
-  "fisub",
-  "fisubr",
-  "fidiv",
-  "fidivr",
+  "fiadd{s|}",
+  "fimul{s|}",
+  "ficom{s|}",
+  "ficomp{s|}",
+  "fisub{s|}",
+  "fisubr{s|}",
+  "fidiv{s|}",
+  "fidivr{s|}",
   /* df */
-  "fild",
-  "fisttp",
-  "fist",
-  "fistp",
+  "fild{s|}",
+  "fisttp{s|}",
+  "fist{s|}",
+  "fistp{s|}",
   "fbld",
   "fild{ll|}",
   "fbstp",
@@ -14710,6 +14761,8 @@ intel_operand_size (int bytemode, int si
     case x_swap_mode:
     case evex_x_gscat_mode:
     case evex_x_nobcst_mode:
+    case b_scalar_mode:
+    case w_scalar_mode:
       if (need_vex)
 	{
 	  switch (vex.length)
@@ -15015,6 +15068,11 @@ OP_E_register (int bytemode, int sizefla
       names = address_mode == mode_64bit ? names64 : names32;
       break;
     case bnd_mode:
+      if (reg > 0x3)
+	{
+	  oappend ("(bad)");
+	  return;
+	}
       names = names_bnd;
       break;
     case indir_v_mode:
@@ -15157,9 +15215,11 @@ OP_E_memory (int bytemode, int sizeflag)
 	case d_scalar_swap_mode:
 	  shift = 2;
 	  break;
+    case w_scalar_mode:
 	case xmm_mw_mode:
 	  shift = 1;
 	  break;
+    case b_scalar_mode:
 	case xmm_mb_mode:
 	  shift = 0;
 	  break;
@@ -15421,6 +15481,8 @@ OP_E_memory (int bytemode, int sizeflag)
 	  disp = *codep++;
 	  if ((disp & 0x80) != 0)
 	    disp -= 0x100;
+	  if (vex.evex && shift > 0)
+	    disp <<= shift;
 	  break;
 	case 2:
 	  disp = get16 ();
@@ -15559,6 +15621,11 @@ OP_G (int bytemode, int sizeflag)
       oappend (names64[modrm.reg + add]);
       break;
     case bnd_mode:
+      if (modrm.reg > 0x3)
+	{
+	  oappend ("(bad)");
+	  return;
+	}
       oappend (names_bnd[modrm.reg]);
       break;
     case v_mode:
@@ -16789,6 +16856,23 @@ BND_Fixup (int bytemode ATTRIBUTE_UNUSED
     all_prefixes[last_repnz_prefix] = BND_PREFIX;
 }
 
+/* For NOTRACK-prefixed instructions, 0x3E prefix should be displayed as
+   "notrack".  */
+
+static void
+NOTRACK_Fixup (int bytemode ATTRIBUTE_UNUSED,
+	       int sizeflag ATTRIBUTE_UNUSED)
+{
+  if (active_seg_prefix == PREFIX_DS
+      && (address_mode != mode_64bit || last_data_prefix < 0))
+    {
+      /* NOTRACK prefix is only valid on indirect branch instructions.
+	 NB: DATA prefix is unsupported for Intel64.  */
+      active_seg_prefix = 0;
+      all_prefixes[last_seg_prefix] = NOTRACK_PREFIX;
+    }
+}
+
 /* Similar to OP_E.  But the 0xf2/0xf3 prefixes should be displayed as
    "xacquire"/"xrelease" for memory operand if there is a LOCK prefix.
  */
@@ -17010,11 +17094,10 @@ OP_VEX (int bytemode, int sizeflag ATTRI
     return;
 
   reg = vex.register_specifier;
-  if (vex.evex)
-    {
-      if (!vex.v)
-	reg += 16;
-    }
+  if (address_mode != mode_64bit)
+    reg &= 7;
+  else if (vex.evex && !vex.v)
+    reg += 16;
 
   if (bytemode == vex_scalar_mode)
     {
@@ -17034,7 +17117,7 @@ OP_VEX (int bytemode, int sizeflag ATTRI
 	  names = names_xmm;
 	  break;
 	case dq_mode:
-	  if (vex.w)
+	  if (rex & REX_W)
 	    names = names64;
 	  else
 	    names = names32;
@@ -17199,8 +17282,8 @@ OP_EX_VexReg (int bytemode, int sizeflag
 	  if (rex & REX_B)
 	    reg += 8;
 	}
-      else if (reg > 7 && address_mode != mode_64bit)
-	BadOp ();
+      if (address_mode != mode_64bit)
+	reg &= 7;
     }
 
   switch (vex.length)
@@ -17292,7 +17375,13 @@ OP_Vex_2src_1 (int bytemode, int sizefla
     }
 
   if (vex.w)
-    oappend (names_xmm[vex.register_specifier]);
+    {
+      unsigned int reg = vex.register_specifier;
+
+      if (address_mode != mode_64bit)
+	reg &= 7;
+      oappend (names_xmm[reg]);
+    }
   else
     OP_Vex_2src (bytemode, sizeflag);
 }
@@ -17303,7 +17392,13 @@ OP_Vex_2src_2 (int bytemode, int sizefla
   if (vex.w)
     OP_Vex_2src (bytemode, sizeflag);
   else
-    oappend (names_xmm[vex.register_specifier]);
+    {
+      unsigned int reg = vex.register_specifier;
+
+      if (address_mode != mode_64bit)
+	reg &= 7;
+      oappend (names_xmm[reg]);
+    }
 }
 
 static void
@@ -17313,8 +17408,6 @@ OP_EX_VexW (int bytemode, int sizeflag)
 
   if (!vex_w_done)
     {
-      vex_w_done = 1;
-
       /* Skip mod/rm byte.  */
       MODRM_CHECK;
       codep++;
@@ -17329,16 +17422,10 @@ OP_EX_VexW (int bytemode, int sizeflag)
     }
 
   OP_EX_VexReg (bytemode, sizeflag, reg);
-}
 
-static void
-VEXI4_Fixup (int bytemode ATTRIBUTE_UNUSED,
-	     int sizeflag ATTRIBUTE_UNUSED)
-{
-  /* Skip the immediate byte and check for invalid bits.  */
-  FETCH_DATA (the_info, codep + 1);
-  if (*codep++ & 0xf)
-    BadOp ();
+  if (vex_w_done)
+    codep++;
+  vex_w_done = 1;
 }
 
 static void
@@ -17353,12 +17440,9 @@ OP_REG_VexI4 (int bytemode, int sizeflag
   if (bytemode != x_mode)
     abort ();
 
-  if (reg & 0xf)
-      BadOp ();
-
   reg >>= 4;
-  if (reg > 7 && address_mode != mode_64bit)
-    BadOp ();
+  if (address_mode != mode_64bit)
+    reg &= 7;
 
   switch (vex.length)
     {
@@ -17533,6 +17617,58 @@ VPCMP_Fixup (int bytemode ATTRIBUTE_UNUS
     }
 }
 
+static const struct op xop_cmp_op[] =
+{
+  { STRING_COMMA_LEN ("lt") },
+  { STRING_COMMA_LEN ("le") },
+  { STRING_COMMA_LEN ("gt") },
+  { STRING_COMMA_LEN ("ge") },
+  { STRING_COMMA_LEN ("eq") },
+  { STRING_COMMA_LEN ("neq") },
+  { STRING_COMMA_LEN ("false") },
+  { STRING_COMMA_LEN ("true") }
+};
+
+static void
+VPCOM_Fixup (int bytemode ATTRIBUTE_UNUSED,
+	     int sizeflag ATTRIBUTE_UNUSED)
+{
+  unsigned int cmp_type;
+
+  FETCH_DATA (the_info, codep + 1);
+  cmp_type = *codep++ & 0xff;
+  if (cmp_type < ARRAY_SIZE (xop_cmp_op))
+    {
+      char suffix[3];
+      char *p = mnemonicendp - 2;
+
+      /* vpcom* can have both one- and two-lettered suffix.  */
+      if (p[0] == 'm')
+	{
+	  p++;
+	  suffix[0] = p[0];
+	  suffix[1] = '\0';
+	}
+      else
+	{
+	  suffix[0] = p[0];
+	  suffix[1] = p[1];
+	  suffix[2] = '\0';
+	}
+
+      sprintf (p, "%s%s", xop_cmp_op[cmp_type].name, suffix);
+      mnemonicendp += xop_cmp_op[cmp_type].len;
+    }
+  else
+    {
+      /* We have a reserved extension byte.  Output it directly.  */
+      scratchbuf[0] = '$';
+      print_operand_value (scratchbuf + 1, 1, cmp_type);
+      oappend_maybe_intel (scratchbuf);
+      scratchbuf[0] = '\0';
+    }
+}
+
 static const struct op pclmul_op[] =
 {
   { STRING_COMMA_LEN ("lql") },
@@ -17629,7 +17765,7 @@ OP_LWPCB_E (int bytemode ATTRIBUTE_UNUSE
   MODRM_CHECK;
   codep++;
 
-  if (vex.w)
+  if (rex & REX_W)
     names = names64;
   else
     names = names32;
@@ -17646,13 +17782,16 @@ static void
 OP_LWP_E (int bytemode ATTRIBUTE_UNUSED, int sizeflag ATTRIBUTE_UNUSED)
 {
   const char **names;
+  unsigned int reg = vex.register_specifier;
 
-  if (vex.w)
+  if (rex & REX_W)
     names = names64;
   else
     names = names32;
 
-  oappend (names[vex.register_specifier]);
+  if (address_mode != mode_64bit)
+    reg &= 7;
+  oappend (names[reg]);
 }
 
 static void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-dis-evex.h ./opcodes/i386-dis-evex.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-dis-evex.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/i386-dis-evex.h	2018-01-09 02:04:59.000000000 +0000
@@ -385,11 +385,11 @@ static const struct dis386 evex_table[][
     { PREFIX_TABLE (PREFIX_EVEX_0F384E) },
     { PREFIX_TABLE (PREFIX_EVEX_0F384F) },
     /* 50 */
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3850) },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3851) },
     { PREFIX_TABLE (PREFIX_EVEX_0F3852) },
     { PREFIX_TABLE (PREFIX_EVEX_0F3853) },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3854) },
     { PREFIX_TABLE (PREFIX_EVEX_0F3855) },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -405,8 +405,8 @@ static const struct dis386 evex_table[][
     /* 60 */
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3862) },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3863) },
     { PREFIX_TABLE (PREFIX_EVEX_0F3864) },
     { PREFIX_TABLE (PREFIX_EVEX_0F3865) },
     { PREFIX_TABLE (PREFIX_EVEX_0F3866) },
@@ -421,10 +421,10 @@ static const struct dis386 evex_table[][
     { Bad_Opcode },
     { Bad_Opcode },
     /* 70 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3870) },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3871) },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3872) },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3873) },
     { Bad_Opcode },
     { PREFIX_TABLE (PREFIX_EVEX_0F3875) },
     { PREFIX_TABLE (PREFIX_EVEX_0F3876) },
@@ -455,7 +455,7 @@ static const struct dis386 evex_table[][
     { Bad_Opcode },
     { PREFIX_TABLE (PREFIX_EVEX_0F388D) },
     { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_0F388F) },
     /* 90 */
     { PREFIX_TABLE (PREFIX_EVEX_0F3890) },
     { PREFIX_TABLE (PREFIX_EVEX_0F3891) },
@@ -527,7 +527,7 @@ static const struct dis386 evex_table[][
     { PREFIX_TABLE (PREFIX_EVEX_0F38CC) },
     { PREFIX_TABLE (PREFIX_EVEX_0F38CD) },
     { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_0F38CF) },
     /* D0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -542,10 +542,10 @@ static const struct dis386 evex_table[][
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_0F38DC) },
+    { PREFIX_TABLE (PREFIX_EVEX_0F38DD) },
+    { PREFIX_TABLE (PREFIX_EVEX_0F38DE) },
+    { PREFIX_TABLE (PREFIX_EVEX_0F38DF) },
     /* E0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -662,7 +662,7 @@ static const struct dis386 evex_table[][
     { Bad_Opcode },
     { PREFIX_TABLE (PREFIX_EVEX_0F3A42) },
     { PREFIX_TABLE (PREFIX_EVEX_0F3A43) },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3A44) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -712,10 +712,10 @@ static const struct dis386 evex_table[][
     { Bad_Opcode },
     { Bad_Opcode },
     /* 70 */
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3A70) },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3A71) },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3A72) },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3A73) },
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
@@ -817,8 +817,8 @@ static const struct dis386 evex_table[][
     { Bad_Opcode },
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
-    { Bad_Opcode },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3ACE) },
+    { PREFIX_TABLE (PREFIX_EVEX_0F3ACF) },
     /* D0 */
     { Bad_Opcode },
     { Bad_Opcode },
@@ -2005,20 +2005,38 @@ static const struct dis386 evex_table[][
     { Bad_Opcode },
     { "vrsqrt14s%XW",	{ XMScalar, VexScalar, EXxmm_mdq }, 0 },
   },
-  /* PREFIX_EVEX_0F3852 */
+  /* PREFIX_EVEX_0F3850 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
+    { "vpdpbusd",	{ XM, Vex, EXx }, 0 },
+  },
+  /* PREFIX_EVEX_0F3851 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vpdpbusds",	{ XM, Vex, EXx }, 0 },
+  },
+  /* PREFIX_EVEX_0F3852 */
+  {
+    { Bad_Opcode },
     { Bad_Opcode },
+    { "vpdpwssd",	{ XM, Vex, EXx }, 0 },
     { "vp4dpwssd",	{ XM, Vex, EXxmm }, 0 },
   },
   /* PREFIX_EVEX_0F3853 */
   {
     { Bad_Opcode },
     { Bad_Opcode },
-    { Bad_Opcode },
+    { "vpdpwssds",	{ XM, Vex, EXx }, 0 },
     { "vp4dpwssds",	{ XM, Vex, EXxmm }, 0 },
   },
+  /* PREFIX_EVEX_0F3854 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (EVEX_W_0F3854_P_2) },
+  },
   /* PREFIX_EVEX_0F3855 */
   {
     { Bad_Opcode },
@@ -2049,6 +2067,18 @@ static const struct dis386 evex_table[][
     { Bad_Opcode },
     { VEX_W_TABLE (EVEX_W_0F385B_P_2) },
   },
+  /* PREFIX_EVEX_0F3862 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (EVEX_W_0F3862_P_2) },
+  },
+  /* PREFIX_EVEX_0F3863 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (EVEX_W_0F3863_P_2) },
+  },
   /* PREFIX_EVEX_0F3864 */
   {
     { Bad_Opcode },
@@ -2067,6 +2097,30 @@ static const struct dis386 evex_table[][
     { Bad_Opcode },
     { VEX_W_TABLE (EVEX_W_0F3866_P_2) },
   },
+  /* PREFIX_EVEX_0F3870 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (EVEX_W_0F3870_P_2) },
+  },
+  /* PREFIX_EVEX_0F3871 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (EVEX_W_0F3871_P_2) },
+  },
+  /* PREFIX_EVEX_0F3872 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (EVEX_W_0F3872_P_2) },
+  },
+  /* PREFIX_EVEX_0F3873 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (EVEX_W_0F3873_P_2) },
+  },
   /* PREFIX_EVEX_0F3875 */
   {
     { Bad_Opcode },
@@ -2169,6 +2223,12 @@ static const struct dis386 evex_table[][
     { Bad_Opcode },
     { VEX_W_TABLE (EVEX_W_0F388D_P_2) },
   },
+  /* PREFIX_EVEX_0F388F */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vpshufbitqmb",  { XMask, Vex, EXx }, 0 },
+  },
   /* PREFIX_EVEX_0F3890 */
   {
     { Bad_Opcode },
@@ -2497,6 +2557,36 @@ static const struct dis386 evex_table[][
     { Bad_Opcode },
     { "vrsqrt28s%XW",     { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 },
   },
+  /* PREFIX_EVEX_0F38CF */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vgf2p8mulb",	{ XM, Vex, EXx }, 0 }, 
+  },
+  /* PREFIX_EVEX_0F38DC */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vaesenc",       { XM, Vex, EXx }, 0 },
+  },
+  /* PREFIX_EVEX_0F38DD */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vaesenclast",   { XM, Vex, EXx }, 0 },
+  },
+  /* PREFIX_EVEX_0F38DE */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vaesdec",       { XM, Vex, EXx }, 0 },
+  },
+  /* PREFIX_EVEX_0F38DF */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vaesdeclast",   { XM, Vex, EXx }, 0 },
+  },
   /* PREFIX_EVEX_0F3A00 */
   {
     { Bad_Opcode },
@@ -2713,6 +2803,12 @@ static const struct dis386 evex_table[][
     { Bad_Opcode },
     { VEX_W_TABLE (EVEX_W_0F3A43_P_2) },
   },
+  /* PREFIX_EVEX_0F3A44 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { "vpclmulqdq",	{ XM, Vex, EXx, Ib }, 0 },
+  },
   /* PREFIX_EVEX_0F3A50 */
   {
     { Bad_Opcode },
@@ -2761,6 +2857,42 @@ static const struct dis386 evex_table[][
     { Bad_Opcode },
     { VEX_W_TABLE (EVEX_W_0F3A67_P_2) },
   },
+  /* PREFIX_EVEX_0F3A70 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (EVEX_W_0F3A70_P_2) },
+  },
+  /* PREFIX_EVEX_0F3A71 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (EVEX_W_0F3A71_P_2) },
+  },
+  /* PREFIX_EVEX_0F3A72 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (EVEX_W_0F3A72_P_2) },
+  },
+  /* PREFIX_EVEX_0F3A73 */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (EVEX_W_0F3A73_P_2) },
+  },
+  /* PREFIX_EVEX_0F3ACE */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (EVEX_W_0F3ACE_P_2) },
+  },
+  /* PREFIX_EVEX_0F3ACF */
+  {
+    { Bad_Opcode },
+    { Bad_Opcode },
+    { VEX_W_TABLE (EVEX_W_0F3ACF_P_2) },
+  },
 #endif /* NEED_PREFIX_TABLE */
 
 #ifdef NEED_VEX_W_TABLE
@@ -3583,6 +3715,11 @@ static const struct dis386 evex_table[][
     { "vpmulld",	{ XM, Vex, EXx }, 0 },
     { "vpmullq",	{ XM, Vex, EXx }, 0 },
   },
+  /* EVEX_W_0F3854_P_2 */
+  {
+    { "vpopcntb",	{ XM, EXx }, 0 },
+    { "vpopcntw",	{ XM, EXx }, 0 },
+  },
   /* EVEX_W_0F3855_P_2 */
   {
     { "vpopcntd",	{ XM, EXx }, 0 },
@@ -3607,11 +3744,41 @@ static const struct dis386 evex_table[][
     { "vbroadcasti32x8",	{ XM, EXxmmq }, 0 },
     { "vbroadcasti64x4",	{ XM, EXymm }, 0 },
   },
+  /* EVEX_W_0F3862_P_2 */
+  {
+    { "vpexpandb", { XM, EXbScalar }, 0 },
+    { "vpexpandw", { XM, EXwScalar }, 0 },
+  },
+  /* EVEX_W_0F3863_P_2 */
+  {
+    { "vpcompressb",   { EXbScalar, XM }, 0 },
+    { "vpcompressw",   { EXwScalar, XM }, 0 },
+  },
   /* EVEX_W_0F3866_P_2 */
   {
     { "vpblendmb",	{ XM, Vex, EXx }, 0 },
     { "vpblendmw",	{ XM, Vex, EXx }, 0 },
   },
+  /* EVEX_W_0F3870_P_2 */
+  {
+    { Bad_Opcode },
+    { "vpshldvw",  { XM, Vex, EXx }, 0 },
+  },
+  /* EVEX_W_0F3871_P_2 */
+  {
+    { "vpshldvd",  { XM, Vex, EXx }, 0 },
+    { "vpshldvq",  { XM, Vex, EXx }, 0 },
+  },
+  /* EVEX_W_0F3872_P_2 */
+  {
+    { Bad_Opcode },
+    { "vpshrdvw",  { XM, Vex, EXx }, 0 },
+  },
+  /* EVEX_W_0F3873_P_2 */
+  {
+    { "vpshrdvd",  { XM, Vex, EXx }, 0 },
+    { "vpshrdvq",  { XM, Vex, EXx }, 0 },
+  },
   /* EVEX_W_0F3875_P_2 */
   {
     { "vpermi2b",	{ XM, Vex, EXx }, 0 },
@@ -3790,13 +3957,13 @@ static const struct dis386 evex_table[][
   },
   /* EVEX_W_0F3A3E_P_2 */
   {
-    { "vpcmpub",	{ XMask, Vex, EXx, Ib }, 0 },
-    { "vpcmpuw",	{ XMask, Vex, EXx, Ib }, 0 },
+    { "vpcmpub",	{ XMask, Vex, EXx, VPCMP }, 0 },
+    { "vpcmpuw",	{ XMask, Vex, EXx, VPCMP }, 0 },
   },
   /* EVEX_W_0F3A3F_P_2 */
   {
-    { "vpcmpb",	{ XMask, Vex, EXx, Ib }, 0 },
-    { "vpcmpw",	{ XMask, Vex, EXx, Ib }, 0 },
+    { "vpcmpb",	{ XMask, Vex, EXx, VPCMP }, 0 },
+    { "vpcmpw",	{ XMask, Vex, EXx, VPCMP }, 0 },
   },
   /* EVEX_W_0F3A42_P_2 */
   {
@@ -3837,6 +4004,36 @@ static const struct dis386 evex_table[][
     { "vfpclassss",	{ XMask, EXxmm_md, Ib }, 0 },
     { "vfpclasssd",	{ XMask, EXxmm_mq, Ib }, 0 },
   },
+  /* EVEX_W_0F3A70_P_2 */
+  {
+    { Bad_Opcode },
+    { "vpshldw",   { XM, Vex, EXx, Ib }, 0 },
+  },
+  /* EVEX_W_0F3A71_P_2 */
+  {
+    { "vpshldd",   { XM, Vex, EXx, Ib }, 0 },
+    { "vpshldq",   { XM, Vex, EXx, Ib }, 0 },
+  },
+  /* EVEX_W_0F3A72_P_2 */
+  {
+    { Bad_Opcode },
+    { "vpshrdw",   { XM, Vex, EXx, Ib }, 0 },
+  },
+  /* EVEX_W_0F3A73_P_2 */
+  {
+    { "vpshrdd",   { XM, Vex, EXx, Ib }, 0 },
+    { "vpshrdq",   { XM, Vex, EXx, Ib }, 0 },
+  },
+  /* EVEX_W_0F3ACE_P_2 */
+  {
+    { Bad_Opcode },
+    { "vgf2p8affineqb",    { XM, Vex, EXx, Ib }, 0 },
+  },
+  /* EVEX_W_0F3ACF_P_2 */
+  {
+    { Bad_Opcode },
+    { "vgf2p8affineinvqb", { XM, Vex, EXx, Ib }, 0 },
+  },
 #endif /* NEED_VEX_W_TABLE */
 #ifdef NEED_MOD_TABLE
   {
@@ -3902,3 +4099,4 @@ static const struct dis386 evex_table[][
     { PREFIX_TABLE (PREFIX_EVEX_0F38C7_REG_6) },
   },
 #endif /* NEED_MOD_TABLE */
+
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-gen.c ./opcodes/i386-gen.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-gen.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/i386-gen.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -223,6 +223,12 @@ static initializer cpu_flag_init[] =
     "CPU_AVX512F_FLAGS|CpuAVX512_4VNNIW" },
   { "CPU_AVX512_VPOPCNTDQ_FLAGS",
     "CPU_AVX512F_FLAGS|CpuAVX512_VPOPCNTDQ" },
+  { "CPU_AVX512_VBMI2_FLAGS",
+    "CPU_AVX512F_FLAGS|CpuAVX512_VBMI2" },
+  { "CPU_AVX512_VNNI_FLAGS",
+    "CPU_AVX512F_FLAGS|CpuAVX512_VNNI" },
+  { "CPU_AVX512_BITALG_FLAGS",
+    "CPU_AVX512F_FLAGS|CpuAVX512_BITALG" },
   { "CPU_L1OM_FLAGS",
     "unknown" },
   { "CPU_K1OM_FLAGS",
@@ -265,6 +271,12 @@ static initializer cpu_flag_init[] =
     "CpuPTWRITE" },
   { "CPU_CET_FLAGS",
     "CpuCET" },
+  { "CPU_GFNI_FLAGS",
+    "CpuGFNI" },
+  { "CPU_VAES_FLAGS",
+    "CpuVAES" },
+  { "CPU_VPCLMULQDQ_FLAGS",
+    "CpuVPCLMULQDQ" },
   { "CPU_ANY_X87_FLAGS",
     "CPU_ANY_287_FLAGS|Cpu8087" },
   { "CPU_ANY_287_FLAGS",
@@ -292,7 +304,7 @@ static initializer cpu_flag_init[] =
   { "CPU_ANY_AVX2_FLAGS",
     "CpuAVX2" },
   { "CPU_ANY_AVX512F_FLAGS",
-    "CpuVREX|CpuRegZMM|CpuRegMask|CpuAVX512CD|CpuAVX512ER|CpuAVX512PF|CpuAVX512DQ|CpuAVX512BW|CpuAVX512VL|CpuAVX512IFMA|CpuAVX512VBMI|CpuAVX512_4FMAPS|CpuAVX512_4VNNIW|CpuAVX512_VPOPCNTDQ|CpuAVX512F" },
+    "CpuVREX|CpuRegZMM|CpuRegMask|CpuAVX512CD|CpuAVX512ER|CpuAVX512PF|CpuAVX512DQ|CpuAVX512BW|CpuAVX512VL|CpuAVX512IFMA|CpuAVX512VBMI|CpuAVX512_4FMAPS|CpuAVX512_4VNNIW|CpuAVX512_VPOPCNTDQ|CpuAVX512_VBMI2|CpuAVX512_VNNI|CpuAVX512_BITALG|CpuAVX512F" },
   { "CPU_ANY_AVX512CD_FLAGS",
     "CpuAVX512CD" },
   { "CPU_ANY_AVX512ER_FLAGS",
@@ -315,6 +327,25 @@ static initializer cpu_flag_init[] =
     "CpuAVX512_4VNNIW" },
   { "CPU_ANY_AVX512_VPOPCNTDQ_FLAGS",
     "CpuAVX512_VPOPCNTDQ" },
+  { "CPU_ANY_AVX512_VBMI2_FLAGS",
+    "CpuAVX512_VBMI2" },
+  { "CPU_ANY_AVX512_VNNI_FLAGS",
+    "CpuAVX512_VNNI" },
+  { "CPU_ANY_AVX512_BITALG_FLAGS",
+    "CpuAVX512_BITALG" },
+};
+
+static const initializer operand_type_shorthands[] =
+{
+  { "Reg8",     "Reg|Byte" },
+  { "Reg16",    "Reg|Word" },
+  { "Reg32",    "Reg|Dword" },
+  { "Reg64",    "Reg|Qword" },
+  { "FloatAcc", "Acc|Tbyte" },
+  { "FloatReg", "Reg|Tbyte" },
+  { "RegXMM",   "RegSIMD|Xmmword" },
+  { "RegYMM",   "RegSIMD|Ymmword" },
+  { "RegZMM",   "RegSIMD|Zmmword" },
 };
 
 static initializer operand_type_init[] =
@@ -421,8 +452,6 @@ static initializer operand_type_init[] =
     "Vec_Imm4" },
   { "OPERAND_TYPE_REGBND",
     "RegBND" },
-  { "OPERAND_TYPE_VEC_DISP8",
-    "Vec_Disp8" },
 };
 
 typedef struct bitfield
@@ -521,12 +550,18 @@ static bitfield cpu_flags[] =
   BITFIELD (CpuAVX512_4FMAPS),
   BITFIELD (CpuAVX512_4VNNIW),
   BITFIELD (CpuAVX512_VPOPCNTDQ),
+  BITFIELD (CpuAVX512_VBMI2),
+  BITFIELD (CpuAVX512_VNNI),
+  BITFIELD (CpuAVX512_BITALG),
   BITFIELD (CpuMWAITX),
   BITFIELD (CpuCLZERO),
   BITFIELD (CpuOSPKE),
   BITFIELD (CpuRDPID),
   BITFIELD (CpuPTWRITE),
   BITFIELD (CpuCET),
+  BITFIELD (CpuGFNI),
+  BITFIELD (CpuVAES),
+  BITFIELD (CpuVPCLMULQDQ),
   BITFIELD (CpuRegMMX),
   BITFIELD (CpuRegXMM),
   BITFIELD (CpuRegYMM),
@@ -566,9 +601,9 @@ static bitfield opcode_modifiers[] =
   BITFIELD (FWait),
   BITFIELD (IsString),
   BITFIELD (BNDPrefixOk),
+  BITFIELD (NoTrackPrefixOk),
   BITFIELD (IsLockable),
   BITFIELD (RegKludge),
-  BITFIELD (FirstXmm0),
   BITFIELD (Implicit1stXmm0),
   BITFIELD (RepPrefixOk),
   BITFIELD (HLEPrefixOk),
@@ -608,15 +643,9 @@ static bitfield opcode_modifiers[] =
 
 static bitfield operand_types[] =
 {
-  BITFIELD (Reg8),
-  BITFIELD (Reg16),
-  BITFIELD (Reg32),
-  BITFIELD (Reg64),
-  BITFIELD (FloatReg),
+  BITFIELD (Reg),
   BITFIELD (RegMMX),
-  BITFIELD (RegXMM),
-  BITFIELD (RegYMM),
-  BITFIELD (RegZMM),
+  BITFIELD (RegSIMD),
   BITFIELD (RegMask),
   BITFIELD (Imm1),
   BITFIELD (Imm8),
@@ -639,7 +668,6 @@ static bitfield operand_types[] =
   BITFIELD (SReg2),
   BITFIELD (SReg3),
   BITFIELD (Acc),
-  BITFIELD (FloatAcc),
   BITFIELD (JumpAbsolute),
   BITFIELD (EsSeg),
   BITFIELD (RegMem),
@@ -657,13 +685,14 @@ static bitfield operand_types[] =
   BITFIELD (Anysize),
   BITFIELD (Vec_Imm4),
   BITFIELD (RegBND),
-  BITFIELD (Vec_Disp8),
 #ifdef OTUnused
   BITFIELD (OTUnused),
 #endif
 };
 
 static const char *filename;
+static i386_cpu_flags active_cpu_flags;
+static int active_isstring;
 
 static int
 compare (const void *x, const void *y)
@@ -689,7 +718,7 @@ static void
 process_copyright (FILE *fp)
 {
   fprintf (fp, "/* This file is automatically generated by i386-gen.  Do not edit!  */\n\
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.\n\
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.\n\
 \n\
    This file is part of the GNU opcodes library.\n\
 \n\
@@ -765,9 +794,8 @@ next_field (char *str, char sep, char **
 static void set_bitfield (char *, bitfield *, int, unsigned int, int);
 
 static int
-set_bitfield_from_cpu_flag_init (char *f, bitfield *array,
-				 int value, unsigned int size,
-				 int lineno)
+set_bitfield_from_shorthand (char *f, bitfield *array, unsigned int size,
+			     int lineno)
 {
   char *str, *next, *last;
   unsigned int i;
@@ -788,6 +816,22 @@ set_bitfield_from_cpu_flag_init (char *f
 	return 0;
       }
 
+  for (i = 0; i < ARRAY_SIZE (operand_type_shorthands); i++)
+    if (strcmp (operand_type_shorthands[i].name, f) == 0)
+      {
+	/* Turn on selective bits.  */
+	char *init = xstrdup (operand_type_shorthands[i].init);
+	last = init + strlen (init);
+	for (next = init; next && next < last; )
+	  {
+	    str = next_field (next, '|', &next, last);
+	    if (str)
+	      set_bitfield (str, array, 1, size, lineno);
+	  }
+	free (init);
+	return 0;
+      }
+
   return -1;
 }
 
@@ -838,8 +882,8 @@ set_bitfield (char *f, bitfield *array, 
 	}
     }
 
-  /* Handle CPU_XXX_FLAGS.  */
-  if (!set_bitfield_from_cpu_flag_init (f, array, value, size, lineno))
+  /* Handle shorthands.  */
+  if (value == 1 && !set_bitfield_from_shorthand (f, array, size, lineno))
     return;
 
   if (lineno != -1)
@@ -854,6 +898,8 @@ output_cpu_flags (FILE *table, bitfield 
 {
   unsigned int i;
 
+  memset (&active_cpu_flags, 0, sizeof(active_cpu_flags));
+
   fprintf (table, "%s{ { ", indent);
 
   for (i = 0; i < size - 1; i++)
@@ -870,6 +916,8 @@ output_cpu_flags (FILE *table, bitfield 
 	  else
 	    fprintf (table, "\n    %s", indent);
 	}
+      if (flags[i].value)
+	active_cpu_flags.array[i / 32] |= 1U << (i % 32);
     }
 
   fprintf (table, "%d } }%s\n", flags[i].value, comma);
@@ -966,6 +1014,8 @@ process_i386_opcode_modifier (FILE *tabl
   char *str, *next, *last;
   bitfield modifiers [ARRAY_SIZE (opcode_modifiers)];
 
+  active_isstring = 0;
+
   /* Copy the default opcode modifier.  */
   memcpy (modifiers, opcode_modifiers, sizeof (modifiers));
 
@@ -976,16 +1026,26 @@ process_i386_opcode_modifier (FILE *tabl
 	{
 	  str = next_field (next, '|', &next, last);
 	  if (str)
-	    set_bitfield (str, modifiers, 1, ARRAY_SIZE (modifiers),
+	    {
+	      set_bitfield (str, modifiers, 1, ARRAY_SIZE (modifiers),
 			  lineno);
+	      if (strcasecmp(str, "IsString") == 0)
+		active_isstring = 1;
+	    }
 	}
     }
   output_opcode_modifier (table, modifiers, ARRAY_SIZE (modifiers));
 }
 
+enum stage {
+  stage_macros,
+  stage_opcodes,
+  stage_registers,
+};
+
 static void
 output_operand_type (FILE *table, bitfield *types, unsigned int size,
-		     int macro, const char *indent)
+		     enum stage stage, const char *indent)
 {
   unsigned int i;
 
@@ -1000,7 +1060,7 @@ output_operand_type (FILE *table, bitfie
       if (((i + 1) % 20) == 0)
 	{
 	  /* We need \\ for macro.  */
-	  if (macro)
+	  if (stage == stage_macros)
 	    fprintf (table, " \\\n%s", indent);
 	  else
 	    fprintf (table, "\n%s", indent);
@@ -1011,7 +1071,7 @@ output_operand_type (FILE *table, bitfie
 }
 
 static void
-process_i386_operand_type (FILE *table, char *op, int macro,
+process_i386_operand_type (FILE *table, char *op, enum stage stage,
 			   const char *indent, int lineno)
 {
   char *str, *next, *last;
@@ -1022,15 +1082,32 @@ process_i386_operand_type (FILE *table, 
 
   if (strcmp (op, "0"))
     {
+      int baseindex = 0;
+
       last = op + strlen (op);
       for (next = op; next && next < last; )
 	{
 	  str = next_field (next, '|', &next, last);
 	  if (str)
-	    set_bitfield (str, types, 1, ARRAY_SIZE (types), lineno);
+	    {
+	      set_bitfield (str, types, 1, ARRAY_SIZE (types), lineno);
+	      if (strcasecmp(str, "BaseIndex") == 0)
+		baseindex = 1;
+	    }
+	}
+
+      if (stage == stage_opcodes && baseindex && !active_isstring)
+	{
+	  set_bitfield("Disp8", types, 1, ARRAY_SIZE (types), lineno);
+	  if (!active_cpu_flags.bitfield.cpu64
+	      && !active_cpu_flags.bitfield.cpumpx)
+	    set_bitfield("Disp16", types, 1, ARRAY_SIZE (types), lineno);
+	  set_bitfield("Disp32", types, 1, ARRAY_SIZE (types), lineno);
+	  if (!active_cpu_flags.bitfield.cpuno64)
+	    set_bitfield("Disp32S", types, 1, ARRAY_SIZE (types), lineno);
 	}
     }
-  output_operand_type (table, types, ARRAY_SIZE (types), macro,
+  output_operand_type (table, types, ARRAY_SIZE (types), stage,
 		       indent);
 }
 
@@ -1118,14 +1195,15 @@ output_i386_opcode (FILE *table, const c
       if (operand_types[i] == NULL || *operand_types[i] == '0')
 	{
 	  if (i == 0)
-	    process_i386_operand_type (table, "0", 0, "\t  ", lineno);
+	    process_i386_operand_type (table, "0", stage_opcodes, "\t  ",
+				       lineno);
 	  break;
 	}
 
       if (i != 0)
 	fprintf (table, ",\n      ");
 
-      process_i386_operand_type (table, operand_types[i], 0,
+      process_i386_operand_type (table, operand_types[i], stage_opcodes,
 				 "\t  ", lineno);
     }
   fprintf (table, " } },\n");
@@ -1287,7 +1365,7 @@ process_i386_opcodes (FILE *table)
   process_i386_opcode_modifier (table, "0", -1);
 
   fprintf (table, "    { ");
-  process_i386_operand_type (table, "0", 0, "\t  ", -1);
+  process_i386_operand_type (table, "0", stage_opcodes, "\t  ", -1);
   fprintf (table, " } }\n");
 
   fprintf (table, "};\n");
@@ -1356,7 +1434,8 @@ process_i386_registers (FILE *table)
 
       fprintf (table, "  { \"%s\",\n    ", reg_name);
 
-      process_i386_operand_type (table, reg_type, 0, "\t", lineno);
+      process_i386_operand_type (table, reg_type, stage_registers, "\t",
+				 lineno);
 
       /* Find 32-bit Dwarf2 register number.  */
       dw2_32_num = next_field (str, ',', &str, last);
@@ -1400,7 +1479,7 @@ process_i386_initializers (void)
     {
       fprintf (fp, "\n\n#define %s \\\n  ", operand_type_init[i].name);
       init = xstrdup (operand_type_init[i].init);
-      process_i386_operand_type (fp, init, 1, "      ", -1);
+      process_i386_operand_type (fp, init, stage_macros, "      ", -1);
       free (init);
     }
   fprintf (fp, "\n");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-init.h ./opcodes/i386-init.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-init.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/i386-init.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* This file is automatically generated by i386-gen.  Do not edit!  */
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -23,1203 +23,1405 @@
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, \
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
-      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 } }
+      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
+      0, 1, 1 } }
 
 #define CPU_GENERIC32_FLAGS \
   { { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_GENERIC64_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_NONE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_I186_FLAGS \
   { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_I286_FLAGS \
   { { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_I386_FLAGS \
   { { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_I486_FLAGS \
   { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_I586_FLAGS \
   { { 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_I686_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_PENTIUMPRO_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_P2_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_P3_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_P4_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_NOCONA_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_CORE_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_CORE2_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_COREI7_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_K6_FLAGS \
   { { 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_K6_2_FLAGS \
   { { 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ATHLON_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_K8_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_AMDFAM10_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
       0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_BDVER1_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, \
       0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, \
       0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_BDVER2_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, \
       0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, \
       0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_BDVER3_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, \
       0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, \
       0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_BDVER4_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, \
       0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, \
       0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ZNVER1_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, \
       0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, \
       0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_BTVER1_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, \
       0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, \
       0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_BTVER2_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, \
       0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, \
       0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_8087_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_287_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_387_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_687_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_CLFLUSH_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_NOP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_SYSCALL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_MMX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_SSE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_SSE2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_SSE3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_SSSE3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_SSE4_1_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_SSE4_2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_VMX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_SMX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_XSAVE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_XSAVEOPT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_AES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_PCLMUL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_FMA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_FMA4_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_XOP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_LWP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_BMI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_TBM_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_MOVBE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_CX16_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_RDTSCP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_EPT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_FSGSBASE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_RDRND_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_F16C_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_BMI2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_LZCNT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_HLE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_RTM_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_INVPCID_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_VMFUNC_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_3DNOW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_3DNOWA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_PADLOCK_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_SVME_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_SSE4A_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ABM_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_AVX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_AVX2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_AVX512F_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, \
+      0, 0, 0 } }
 
 #define CPU_AVX512CD_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, \
+      0, 0, 0 } }
 
 #define CPU_AVX512ER_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, \
+      0, 0, 0 } }
 
 #define CPU_AVX512PF_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, \
+      0, 0, 0 } }
 
 #define CPU_AVX512DQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, \
+      0, 0, 0 } }
 
 #define CPU_AVX512BW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, \
+      0, 0, 0 } }
 
 #define CPU_AVX512VL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, \
+      0, 0, 0 } }
 
 #define CPU_AVX512IFMA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, \
+      0, 0, 0 } }
 
 #define CPU_AVX512VBMI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, \
+      0, 0, 0 } }
 
 #define CPU_AVX512_4FMAPS_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } }
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, \
+      0, 0, 0 } }
 
 #define CPU_AVX512_4VNNIW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } }
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, \
+      0, 0, 0 } }
 
 #define CPU_AVX512_VPOPCNTDQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0 } }
+      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, \
+      0, 0, 0 } }
+
+#define CPU_AVX512_VBMI2_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
+      0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, \
+      0, 0, 0 } }
+
+#define CPU_AVX512_VNNI_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
+      0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, \
+      0, 0, 0 } }
+
+#define CPU_AVX512_BITALG_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
+      0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, \
+      0, 0, 0 } }
 
 #define CPU_L1OM_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
-      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 } }
+      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
+      0, 1, 1 } }
 
 #define CPU_K1OM_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
-      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 } }
+      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
+      0, 1, 1 } }
 
 #define CPU_IAMCU_FLAGS \
   { { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ADX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_RDSEED_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_PRFCHW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_SMAP_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_MPX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_SHA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_CLFLUSHOPT_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_XSAVES_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_XSAVEC_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_PREFETCHWT1_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_SE1_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_CLWB_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_CLZERO_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_MWAITX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_OSPKE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_RDPID_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_PTWRITE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_CET_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
+
+#define CPU_GFNI_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
+
+#define CPU_VAES_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
+
+#define CPU_VPCLMULQDQ_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_X87_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_287_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_387_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_687_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_MMX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_SSE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_SSE2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_SSE3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_SSSE3_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_SSE4_1_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_SSE4_2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_AVX_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_AVX2_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_AVX512F_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, \
-      1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 } }
+      1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, \
+      0, 0, 0 } }
 
 #define CPU_ANY_AVX512CD_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_AVX512ER_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_AVX512PF_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_AVX512DQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_AVX512BW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_AVX512VL_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_AVX512IFMA_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_AVX512VBMI_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_AVX512_4FMAPS_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_AVX512_4VNNIW_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define CPU_ANY_AVX512_VPOPCNTDQ_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
+
+#define CPU_ANY_AVX512_VBMI2_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
+
+#define CPU_ANY_AVX512_VNNI_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
+
+#define CPU_ANY_AVX512_BITALG_FLAGS \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 
 #define OPERAND_TYPE_NONE \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_REG8 \
   { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_REG16 \
-  { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_REG32 \
-  { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_REG64 \
-  { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM1 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM8 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM8S \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM16 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM32 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM32S \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM64 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_BASEINDEX \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_DISP8 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_DISP16 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_DISP32 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_DISP32S \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_DISP64 \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_INOUTPORTREG \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_SHIFTCOUNT \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_CONTROL \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+  { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_TEST \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
+  { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_DEBUG \
-  { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_FLOATREG \
-  { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_FLOATACC \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_SREG2 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
+  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_SREG3 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_ACC \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_JUMPABSOLUTE \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_REGMMX \
-  { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+  { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_REGXMM \
-  { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_REGYMM \
-  { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_REGZMM \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_REGMASK \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+  { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_ESSEG \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_ACC32 \
-  { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_ACC64 \
-  { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_INOUTPORTREG \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_REG16_INOUTPORTREG \
-  { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_DISP16_32 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_ANYDISP \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, \
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM16_32 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, \
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM16_32S \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM16_32_32S \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, \
-      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM32_64 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
-      0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM32_32S_DISP32 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
-      1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM64_DISP64 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM32_32S_64_DISP32 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
-      1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, \
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_IMM32_32S_64_DISP32_64 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
-      1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, \
+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+      0, 0, 0 } }
 
 #define OPERAND_TYPE_VEC_IMM4 \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }
+      1, 0, 0 } }
 
 #define OPERAND_TYPE_REGBND \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }
-
-#define OPERAND_TYPE_VEC_DISP8 \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } }
+      0, 1, 0 } }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-opc.c ./opcodes/i386-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-opc.c	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/i386-opc.c	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Intel 80386 opcode table
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-opc.h ./opcodes/i386-opc.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-opc.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/i386-opc.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* Declarations for Intel 80386 opcode table
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -198,6 +198,12 @@ enum
   CpuAVX512_4VNNIW,
   /* Intel AVX-512 VPOPCNTDQ Instructions support required.  */
   CpuAVX512_VPOPCNTDQ,
+  /* Intel AVX-512 VBMI2 Instructions support required.  */
+  CpuAVX512_VBMI2,
+  /* Intel AVX-512 VNNI Instructions support required.  */
+  CpuAVX512_VNNI,
+  /* Intel AVX-512 BITALG Instructions support required.  */
+  CpuAVX512_BITALG,
   /* mwaitx instruction required */
   CpuMWAITX,
   /* Clzero instruction required */
@@ -210,6 +216,12 @@ enum
   CpuPTWRITE,
   /* CET instruction support required */
   CpuCET,
+  /* GFNI instructions required */
+  CpuGFNI,
+  /* VAES instructions required */
+  CpuVAES,
+  /* VPCLMULQDQ instructions required */
+  CpuVPCLMULQDQ,
   /* MMX register support required */
   CpuRegMMX,
   /* XMM register support required */
@@ -235,9 +247,7 @@ enum
 
 /* If you get a compiler error for zero width of the unused field,
    comment it out.  */
-#if 0
 #define CpuUnused	(CpuMax + 1)
-#endif
 
 /* We can check if an instruction is available with array instead
    of bitfield. */
@@ -328,12 +338,18 @@ typedef union i386_cpu_flags
       unsigned int cpuavx512_4fmaps:1;
       unsigned int cpuavx512_4vnniw:1;
       unsigned int cpuavx512_vpopcntdq:1;
+      unsigned int cpuavx512_vbmi2:1;
+      unsigned int cpuavx512_vnni:1;
+      unsigned int cpuavx512_bitalg:1;
       unsigned int cpumwaitx:1;
       unsigned int cpuclzero:1;
       unsigned int cpuospke:1;
       unsigned int cpurdpid:1;
       unsigned int cpuptwrite:1;
       unsigned int cpucet:1;
+      unsigned int cpugfni:1;
+      unsigned int cpuvaes:1;
+      unsigned int cpuvpclmulqdq:1;
       unsigned int cpuregmmx:1;
       unsigned int cpuregxmm:1;
       unsigned int cpuregymm:1;
@@ -407,13 +423,13 @@ enum
   IsString,
   /* quick test if branch instruction is MPX supported */
   BNDPrefixOk,
+  /* quick test if NOTRACK prefix is supported */
+  NoTrackPrefixOk,
   /* quick test for lockable instructions */
   IsLockable,
   /* fake an extra reg operand for clr, imul and special register
      processing for some instructions.  */
   RegKludge,
-  /* The first operand must be xmm0 */
-  FirstXmm0,
   /* An implicit xmm0 as the first operand */
   Implicit1stXmm0,
   /* The HLE prefix is OK:
@@ -445,7 +461,7 @@ enum
   /* deprecated fp insn, gets a warning */
   Ugh,
   /* insn has VEX prefix:
-	1: 128bit VEX prefix.
+	1: 128bit VEX prefix (or operand dependent).
 	2: 256bit VEX prefix.
 	3: Scalar VEX prefix.
    */
@@ -622,9 +638,9 @@ typedef struct i386_opcode_modifier
   unsigned int fwait:1;
   unsigned int isstring:1;
   unsigned int bndprefixok:1;
+  unsigned int notrackprefixok:1;
   unsigned int islockable:1;
   unsigned int regkludge:1;
-  unsigned int firstxmm0:1;
   unsigned int implicit1stxmm0:1;
   unsigned int hleprefixok:2;
   unsigned int repprefixok:1;
@@ -666,24 +682,12 @@ typedef struct i386_opcode_modifier
 
 enum
 {
-  /* 8bit register */
-  Reg8 = 0,
-  /* 16bit register */
-  Reg16,
-  /* 32bit register */
-  Reg32,
-  /* 64bit register */
-  Reg64,
-  /* Floating pointer stack register */
-  FloatReg,
+  /* Register (qualified by Byte, Word, etc) */
+  Reg = 0,
   /* MMX register */
   RegMMX,
-  /* SSE register */
-  RegXMM,
-  /* AVX registers */
-  RegYMM,
-  /* AVX512 registers */
-  RegZMM,
+  /* Vector registers */
+  RegSIMD,
   /* Vector Mask registers */
   RegMask,
   /* Control register */
@@ -727,10 +731,8 @@ enum
   Disp32S,
   /* 64 bit displacement */
   Disp64,
-  /* Accumulator %al/%ax/%eax/%rax */
+  /* Accumulator %al/%ax/%eax/%rax/%st(0)/%xmm0 */
   Acc,
-  /* Floating pointer top stack register %st(0) */
-  FloatAcc,
   /* Register which can be used for base or index in memory operand.  */
   BaseIndex,
   /* Register to hold in/out port addr = dx */
@@ -778,9 +780,6 @@ enum
   /* Bound register.  */
   RegBND,
 
-  /* Vector 8bit displacement */
-  Vec_Disp8,
-
   /* The last bitfield in i386_operand_type.  */
   OTMax
 };
@@ -798,15 +797,9 @@ typedef union i386_operand_type
 {
   struct
     {
-      unsigned int reg8:1;
-      unsigned int reg16:1;
-      unsigned int reg32:1;
-      unsigned int reg64:1;
-      unsigned int floatreg:1;
+      unsigned int reg:1;
       unsigned int regmmx:1;
-      unsigned int regxmm:1;
-      unsigned int regymm:1;
-      unsigned int regzmm:1;
+      unsigned int regsimd:1;
       unsigned int regmask:1;
       unsigned int control:1;
       unsigned int debug:1;
@@ -826,7 +819,6 @@ typedef union i386_operand_type
       unsigned int disp32s:1;
       unsigned int disp64:1;
       unsigned int acc:1;
-      unsigned int floatacc:1;
       unsigned int baseindex:1;
       unsigned int inoutportreg:1;
       unsigned int shiftcount:1;
@@ -847,7 +839,6 @@ typedef union i386_operand_type
       unsigned int anysize:1;
       unsigned int vec_imm4:1;
       unsigned int regbnd:1;
-      unsigned int vec_disp8:1;
 #ifdef OTUnused
       unsigned int unused:(OTNumOfBits - OTUnused);
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-opc.tbl ./opcodes/i386-opc.tbl
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-opc.tbl	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/i386-opc.tbl	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 // i386 opcode table.
-// Copyright (C) 2007-2017 Free Software Foundation, Inc.
+// Copyright (C) 2007-2018 Free Software Foundation, Inc.
 //
 // This file is part of the GNU opcodes library.
 //
@@ -21,13 +21,13 @@
 // Move instructions.
 // We put the 64bit displacement first and we only mark constants
 // larger than 32bit as Disp64.
-mov, 2, 0xa0, None, 1, Cpu64, D|W|CheckRegSize|No_sSuf|No_ldSuf, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword }
-mov, 2, 0xa0, None, 1, CpuNo64, D|W|CheckRegSize|No_sSuf|No_qSuf|No_ldSuf, { Disp16|Disp32|Unspecified|Byte|Word|Dword, Acc|Byte|Word|Dword }
-mov, 2, 0x88, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|HLEPrefixOk=3, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+mov, 2, 0xa0, None, 1, Cpu64, D|W|No_sSuf|No_ldSuf, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword }
+mov, 2, 0xa0, None, 1, CpuNo64, D|W|No_sSuf|No_qSuf|No_ldSuf, { Disp16|Disp32|Unspecified|Byte|Word|Dword, Acc|Byte|Word|Dword }
+mov, 2, 0x88, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|HLEPrefixOk=3, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 // In the 64bit mode the short form mov immediate is redefined to have
 // 64bit value.
-mov, 2, 0xb0, None, 1, 0, W|CheckRegSize|ShortForm|No_sSuf|No_qSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32 }
-mov, 2, 0xc6, 0x0, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|HLEPrefixOk=3, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+mov, 2, 0xb0, None, 1, 0, W|ShortForm|No_sSuf|No_qSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32 }
+mov, 2, 0xc6, 0x0, 1, 0, W|Modrm|No_sSuf|No_ldSuf|HLEPrefixOk=3, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 mov, 2, 0xb0, None, 1, Cpu64, W|ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Imm64, Reg64 }
 // The segment register moves accept WordReg so that a segment register
 // can be copied to a 32 bit register, and vice versa, without using a
@@ -35,13 +35,13 @@ mov, 2, 0xb0, None, 1, Cpu64, W|ShortFor
 // are set to an implementation defined value (on the Pentium Pro, the
 // implementation defined value is zero).
 mov, 2, 0x8c, None, 1, 0, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg2, Reg16|Reg32|Reg64|RegMem }
-mov, 2, 0x8c, None, 1, 0, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg2, Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+mov, 2, 0x8c, None, 1, 0, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg2, Word|Unspecified|BaseIndex }
 mov, 2, 0x8c, None, 1, Cpu386, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg3, Reg16|Reg32|Reg64|RegMem }
-mov, 2, 0x8c, None, 1, Cpu386, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg3, Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+mov, 2, 0x8c, None, 1, Cpu386, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg3, Word|Unspecified|BaseIndex }
 mov, 2, 0x8e, None, 1, 0, Modrm|IgnoreSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32|Reg64, SReg2 }
-mov, 2, 0x8e, None, 1, 0, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, SReg2 }
+mov, 2, 0x8e, None, 1, 0, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex, SReg2 }
 mov, 2, 0x8e, None, 1, Cpu386, Modrm|IgnoreSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32|Reg64, SReg3 }
-mov, 2, 0x8e, None, 1, Cpu386, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, SReg3 }
+mov, 2, 0x8e, None, 1, Cpu386, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex, SReg3 }
 // Move to/from control debug registers.  In the 16 or 32bit modes
 // they are 32bit.  In the 64bit mode they are 64bit.
 mov, 2, 0xf20, None, 2, Cpu386|CpuNo64, D|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Control, Reg32|RegMem }
@@ -49,51 +49,51 @@ mov, 2, 0xf20, None, 2, Cpu64, D|Modrm|I
 mov, 2, 0xf21, None, 2, Cpu386|CpuNo64, D|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Debug, Reg32|RegMem }
 mov, 2, 0xf21, None, 2, Cpu64, D|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Debug, Reg64|RegMem }
 mov, 2, 0xf24, None, 2, Cpu386|CpuNo64, D|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Test, Reg32|RegMem }
-movabs, 2, 0xa0, None, 1, Cpu64, D|W|CheckRegSize|No_sSuf|No_ldSuf, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword }
+movabs, 2, 0xa0, None, 1, Cpu64, D|W|No_sSuf|No_ldSuf, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword }
 movabs, 2, 0xb0, None, 1, Cpu64, W|ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Imm64, Reg64 }
 
 // Move after swapping the bytes
-movbe, 2, 0x0f38f0, None, 3, CpuMovbe, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-movbe, 2, 0x0f38f1, None, 3, CpuMovbe, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64, Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+movbe, 2, 0x0f38f0, None, 3, CpuMovbe, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+movbe, 2, 0x0f38f1, None, 3, CpuMovbe, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64, Word|Dword|Qword|Unspecified|BaseIndex }
 
 // Move with sign extend.
 // "movsbl" & "movsbw" must not be unified into "movsb" to avoid
 // conflict with the "movs" string move instruction.
-movsbl, 2, 0xfbe, None, 2, Cpu386, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32 }
-movsbw, 2, 0xfbe, None, 2, Cpu386, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16 }
-movswl, 2, 0xfbf, None, 2, Cpu386, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32 }
-movsbq, 2, 0xfbe, None, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, Reg64 }
-movswq, 2, 0xfbf, None, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg16|Word|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, Reg64 }
-movslq, 2, 0x63, None, 1, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, Reg64 }
+movsbl, 2, 0xfbe, None, 2, Cpu386, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex, Reg32 }
+movsbw, 2, 0xfbe, None, 2, Cpu386, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex, Reg16 }
+movswl, 2, 0xfbf, None, 2, Cpu386, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex, Reg32 }
+movsbq, 2, 0xfbe, None, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg8|Byte|Unspecified|BaseIndex, Reg64 }
+movswq, 2, 0xfbf, None, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg16|Word|Unspecified|BaseIndex, Reg64 }
+movslq, 2, 0x63, None, 1, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg32|Dword|Unspecified|BaseIndex, Reg64 }
 // Intel Syntax next 3 insns
-movsx, 2, 0xfbe, None, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Reg8|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-movsx, 2, 0xfbf, None, 2, Cpu386, Modrm|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Reg16|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
-movsx, 2, 0x63, None, 1, Cpu64, Modrm|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64|ATTSyntax, { Reg32|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, Reg64 }
-movsx, 2, 0xfbe, None, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Reg8|Byte|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-movsx, 2, 0xfbf, None, 2, Cpu386, Modrm|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Reg16|Word|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
-movsx, 2, 0x63, None, 1, Cpu64, Modrm|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64|IntelSyntax, { Reg32|Dword|BaseIndex|Disp8|Disp32|Disp32S, Reg64 }
-movsxd, 2, 0x63, None, 1, Cpu64, Modrm|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, Reg64 }
+movsx, 2, 0xfbe, None, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Reg8|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+movsx, 2, 0xfbf, None, 2, Cpu386, Modrm|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Reg16|Unspecified|BaseIndex, Reg32|Reg64 }
+movsx, 2, 0x63, None, 1, Cpu64, Modrm|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64|ATTSyntax, { Reg32|Unspecified|BaseIndex, Reg64 }
+movsx, 2, 0xfbe, None, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Reg8|Byte|BaseIndex, Reg16|Reg32|Reg64 }
+movsx, 2, 0xfbf, None, 2, Cpu386, Modrm|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Reg16|Word|BaseIndex, Reg32|Reg64 }
+movsx, 2, 0x63, None, 1, Cpu64, Modrm|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64|IntelSyntax, { Reg32|Dword|BaseIndex, Reg64 }
+movsxd, 2, 0x63, None, 1, Cpu64, Modrm|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg32|Dword|Unspecified|BaseIndex, Reg64 }
 
 // Move with zero extend.
-movzb, 2, 0xfb6, None, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-movzw, 2, 0xfb7, None, 2, Cpu386, Modrm|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
+movzb, 2, 0xfb6, None, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+movzw, 2, 0xfb7, None, 2, Cpu386, Modrm|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex, Reg32|Reg64 }
 // Intel Syntax next 2 insns (the 64-bit variants are not particulary
 // useful since the zero extend 32->64 is implicit, but we can encode them).
-movzx, 2, 0xfb6, None, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Reg8|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-movzx, 2, 0xfb7, None, 2, Cpu386, Modrm|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Reg16|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
-movzx, 2, 0xfb6, None, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Reg8|Byte|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-movzx, 2, 0xfb7, None, 2, Cpu386, Modrm|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Reg16|Word|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
+movzx, 2, 0xfb6, None, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Reg8|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+movzx, 2, 0xfb7, None, 2, Cpu386, Modrm|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Reg16|Unspecified|BaseIndex, Reg32|Reg64 }
+movzx, 2, 0xfb6, None, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Reg8|Byte|BaseIndex, Reg16|Reg32|Reg64 }
+movzx, 2, 0xfb7, None, 2, Cpu386, Modrm|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Reg16|Word|BaseIndex, Reg32|Reg64 }
 
 // Push instructions.
 push, 1, 0x50, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32 }
-push, 1, 0xff, 0x6, 1, CpuNo64, Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32 }
+push, 1, 0xff, 0x6, 1, CpuNo64, Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex }
 push, 1, 0x6a, None, 1, Cpu186|CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8S }
 push, 1, 0x68, None, 1, Cpu186|CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm16|Imm32 }
 push, 1, 0x6, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg2 }
 push, 1, 0xfa0, None, 2, Cpu386|CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg3 }
 // In 64bit mode, the operand size is implicitly 64bit.
 push, 1, 0x50, None, 1, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64 }
-push, 1, 0xff, 0x6, 1, Cpu64, Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
+push, 1, 0xff, 0x6, 1, Cpu64, Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex }
 push, 1, 0x6a, None, 1, Cpu64, DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Imm8S }
 push, 1, 0x68, None, 1, Cpu64, DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Imm16|Imm32S }
 push, 1, 0xfa0, None, 2, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { SReg3 }
@@ -102,12 +102,12 @@ pusha, 0, 0x60, None, 1, Cpu186|CpuNo64,
 
 // Pop instructions.
 pop, 1, 0x58, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32 }
-pop, 1, 0x8f, 0x0, 1, CpuNo64, Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32 }
+pop, 1, 0x8f, 0x0, 1, CpuNo64, Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex }
 pop, 1, 0x7, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg2 }
 pop, 1, 0xfa1, None, 2, Cpu386|CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg3 }
 // In 64bit mode, the operand size is implicitly 64bit.
 pop, 1, 0x58, None, 1, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64 }
-pop, 1, 0x8f, 0x0, 1, Cpu64, Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
+pop, 1, 0x8f, 0x0, 1, Cpu64, Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex }
 pop, 1, 0xfa1, None, 2, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { SReg3 }
 
 popa, 0, 0x61, None, 1, Cpu186|CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
@@ -118,28 +118,28 @@ popa, 0, 0x61, None, 1, Cpu186|CpuNo64, 
 // In the 64bit code, xchg rax, rax is reused for new nop instruction.
 xchg, 2, 0x90, None, 1, 0, ShortForm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64, Acc|Word|Dword|Qword }
 xchg, 2, 0x90, None, 1, 0, ShortForm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Acc|Word|Dword|Qword, Reg16|Reg32|Reg64 }
-xchg, 2, 0x86, None, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk=2, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-xchg, 2, 0x86, None, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk=2, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg8|Reg16|Reg32|Reg64 }
+xchg, 2, 0x86, None, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk=2, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+xchg, 2, 0x86, None, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk=2, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
 
 // In/out from ports.
-in, 2, 0xe4, None, 1, 0, W|CheckRegSize|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Acc|Byte|Word|Dword }
-in, 2, 0xec, None, 1, 0, W|CheckRegSize|No_sSuf|No_qSuf|No_ldSuf, { InOutPortReg, Acc|Byte|Word|Dword }
+in, 2, 0xe4, None, 1, 0, W|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Acc|Byte|Word|Dword }
+in, 2, 0xec, None, 1, 0, W|No_sSuf|No_qSuf|No_ldSuf, { InOutPortReg, Acc|Byte|Word|Dword }
 in, 1, 0xe4, None, 1, 0, W|No_sSuf|No_qSuf|No_ldSuf, { Imm8 }
 in, 1, 0xec, None, 1, 0, W|No_sSuf|No_qSuf|No_ldSuf, { InOutPortReg }
-out, 2, 0xe6, None, 1, 0, W|CheckRegSize|No_sSuf|No_qSuf|No_ldSuf, { Acc|Byte|Word|Dword, Imm8 }
-out, 2, 0xee, None, 1, 0, W|CheckRegSize|No_sSuf|No_qSuf|No_ldSuf, { Acc|Byte|Word|Dword, InOutPortReg }
+out, 2, 0xe6, None, 1, 0, W|No_sSuf|No_qSuf|No_ldSuf, { Acc|Byte|Word|Dword, Imm8 }
+out, 2, 0xee, None, 1, 0, W|No_sSuf|No_qSuf|No_ldSuf, { Acc|Byte|Word|Dword, InOutPortReg }
 out, 1, 0xe6, None, 1, 0, W|No_sSuf|No_qSuf|No_ldSuf, { Imm8 }
 out, 1, 0xee, None, 1, 0, W|No_sSuf|No_qSuf|No_ldSuf, { InOutPortReg }
 
 // Load effective address.
-lea, 2, 0x8d, None, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Anysize|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
+lea, 2, 0x8d, None, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Anysize|BaseIndex, Reg16|Reg32|Reg64 }
 
 // Load segment registers from memory.
-lds, 2, 0xc5, None, 1, CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Unspecified|BaseIndex|Disp8|Disp16|Disp32, Reg16|Reg32 }
-les, 2, 0xc4, None, 1, CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Unspecified|BaseIndex|Disp8|Disp16|Disp32, Reg16|Reg32 }
-lfs, 2, 0xfb4, None, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Tbyte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-lgs, 2, 0xfb5, None, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Tbyte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-lss, 2, 0xfb2, None, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Tbyte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
+lds, 2, 0xc5, None, 1, CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Unspecified|BaseIndex, Reg16|Reg32 }
+les, 2, 0xc4, None, 1, CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Unspecified|BaseIndex, Reg16|Reg32 }
+lfs, 2, 0xfb4, None, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Tbyte|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+lgs, 2, 0xfb5, None, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Tbyte|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+lss, 2, 0xfb2, None, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Tbyte|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 // Flags register instructions.
 clc, 0, 0xf8, None, 1, 0, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
@@ -158,62 +158,62 @@ std, 0, 0xfd, None, 1, 0, No_bSuf|No_wSu
 sti, 0, 0xfb, None, 1, 0, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 
 // Arithmetic.
-add, 2, 0x0, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-add, 2, 0x83, 0x0, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-add, 2, 0x4, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
-add, 2, 0x80, 0x0, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+add, 2, 0x0, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+add, 2, 0x83, 0x0, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+add, 2, 0x4, None, 1, 0, W|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
+add, 2, 0x80, 0x0, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
 inc, 1, 0x40, None, 1, CpuNo64, ShortForm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32 }
-inc, 1, 0xfe, 0x0, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+inc, 1, 0xfe, 0x0, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
-sub, 2, 0x28, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-sub, 2, 0x83, 0x5, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-sub, 2, 0x2c, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
-sub, 2, 0x80, 0x5, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+sub, 2, 0x28, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sub, 2, 0x83, 0x5, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+sub, 2, 0x2c, None, 1, 0, W|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
+sub, 2, 0x80, 0x5, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
 dec, 1, 0x48, None, 1, CpuNo64, ShortForm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32 }
-dec, 1, 0xfe, 0x1, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+dec, 1, 0xfe, 0x1, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
-sbb, 2, 0x18, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-sbb, 2, 0x83, 0x3, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-sbb, 2, 0x1c, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
-sbb, 2, 0x80, 0x3, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-cmp, 2, 0x38, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-cmp, 2, 0x83, 0x7, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-cmp, 2, 0x3c, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
-cmp, 2, 0x80, 0x7, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-test, 2, 0x84, None, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|Byte|Word|Dword|Qword|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-test, 2, 0x84, None, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg8|Reg16|Reg32|Reg64 }
-test, 2, 0xa8, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
-test, 2, 0xf6, 0x0, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-and, 2, 0x20, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-and, 2, 0x83, 0x4, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-and, 2, 0x24, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
-and, 2, 0x80, 0x4, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-or, 2, 0x8, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-or, 2, 0x83, 0x1, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-or, 2, 0xc, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
-or, 2, 0x80, 0x1, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-xor, 2, 0x30, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-xor, 2, 0x83, 0x6, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-xor, 2, 0x34, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
-xor, 2, 0x80, 0x6, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+sbb, 2, 0x18, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sbb, 2, 0x83, 0x3, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+sbb, 2, 0x1c, None, 1, 0, W|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
+sbb, 2, 0x80, 0x3, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+cmp, 2, 0x38, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+cmp, 2, 0x83, 0x7, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+cmp, 2, 0x3c, None, 1, 0, W|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
+cmp, 2, 0x80, 0x7, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+test, 2, 0x84, None, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Unspecified|Byte|Word|Dword|Qword|BaseIndex }
+test, 2, 0x84, None, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Reg8|Reg16|Reg32|Reg64 }
+test, 2, 0xa8, None, 1, 0, W|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
+test, 2, 0xf6, 0x0, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+and, 2, 0x20, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+and, 2, 0x83, 0x4, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+and, 2, 0x24, None, 1, 0, W|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
+and, 2, 0x80, 0x4, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+or, 2, 0x8, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+or, 2, 0x83, 0x1, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+or, 2, 0xc, None, 1, 0, W|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
+or, 2, 0x80, 0x1, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+xor, 2, 0x30, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+xor, 2, 0x83, 0x6, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+xor, 2, 0x34, None, 1, 0, W|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
+xor, 2, 0x80, 0x6, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
 // clr with 1 operand is really xor with 2 operands.
 clr, 1, 0x30, None, 1, 0, W|Modrm|No_sSuf|No_ldSuf|RegKludge, { Reg8|Reg16|Reg32|Reg64 }
 
-adc, 2, 0x10, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-adc, 2, 0x83, 0x2, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-adc, 2, 0x14, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
-adc, 2, 0x80, 0x2, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+adc, 2, 0x10, None, 1, 0, D|W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+adc, 2, 0x83, 0x2, 1, 0, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+adc, 2, 0x14, None, 1, 0, W|No_sSuf|No_ldSuf, { Imm8|Imm16|Imm32|Imm32S, Acc|Byte|Word|Dword|Qword }
+adc, 2, 0x80, 0x2, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8|Imm16|Imm32|Imm32S, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
-neg, 1, 0xf6, 0x3, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-not, 1, 0xf6, 0x2, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+neg, 1, 0xf6, 0x3, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+not, 1, 0xf6, 0x2, 1, 0, W|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 
 aaa, 0, 0x37, None, 1, CpuNo64, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 aas, 0, 0x3f, None, 1, CpuNo64, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
@@ -244,96 +244,96 @@ cqto, 0, 0x99, None, 1, Cpu64, Size64|No
 // expanding 64-bit multiplies, and *cannot* be selected to accomplish
 // 'imul %ebx, %eax' (opcode 0x0faf must be used in this case)
 // These multiplies can only be selected with single operand forms.
-mul, 1, 0xf6, 0x4, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-imul, 1, 0xf6, 0x5, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-imul, 2, 0xfaf, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-imul, 3, 0x6b, None, 1, Cpu186, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-imul, 3, 0x69, None, 1, Cpu186, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Imm16|Imm32|Imm32S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
+mul, 1, 0xf6, 0x4, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+imul, 1, 0xf6, 0x5, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+imul, 2, 0xfaf, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Unspecified|Word|Dword|Qword|BaseIndex, Reg16|Reg32|Reg64 }
+imul, 3, 0x6b, None, 1, Cpu186, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Imm8S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+imul, 3, 0x69, None, 1, Cpu186, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Imm16|Imm32|Imm32S, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 // imul with 2 operands mimics imul with 3 by putting the register in
 // both i.rm.reg & i.rm.regmem fields.  RegKludge enables this
 // transformation.
 imul, 2, 0x6b, None, 1, Cpu186, Modrm|No_bSuf|No_sSuf|No_ldSuf|RegKludge, { Imm8S, Reg16|Reg32|Reg64 }
 imul, 2, 0x69, None, 1, Cpu186, Modrm|No_bSuf|No_sSuf|No_ldSuf|RegKludge, { Imm16|Imm32|Imm32S, Reg16|Reg32|Reg64 }
 
-div, 1, 0xf6, 0x6, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-div, 2, 0xf6, 0x6, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Acc|Byte|Word|Dword|Qword }
-idiv, 1, 0xf6, 0x7, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-idiv, 2, 0xf6, 0x7, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Acc|Byte|Word|Dword|Qword }
-
-rol, 2, 0xd0, 0x0, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-rol, 2, 0xc0, 0x0, 1, Cpu186, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-rol, 2, 0xd2, 0x0, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-rol, 1, 0xd0, 0x0, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-ror, 2, 0xd0, 0x1, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-ror, 2, 0xc0, 0x1, 1, Cpu186, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-ror, 2, 0xd2, 0x1, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-ror, 1, 0xd0, 0x1, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-rcl, 2, 0xd0, 0x2, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-rcl, 2, 0xc0, 0x2, 1, Cpu186, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-rcl, 2, 0xd2, 0x2, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-rcl, 1, 0xd0, 0x2, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-rcr, 2, 0xd0, 0x3, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-rcr, 2, 0xc0, 0x3, 1, Cpu186, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-rcr, 2, 0xd2, 0x3, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-rcr, 1, 0xd0, 0x3, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-sal, 2, 0xd0, 0x4, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-sal, 2, 0xc0, 0x4, 1, Cpu186, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-sal, 2, 0xd2, 0x4, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-sal, 1, 0xd0, 0x4, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-shl, 2, 0xd0, 0x4, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-shl, 2, 0xc0, 0x4, 1, Cpu186, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-shl, 2, 0xd2, 0x4, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-shl, 1, 0xd0, 0x4, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-shr, 2, 0xd0, 0x5, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-shr, 2, 0xc0, 0x5, 1, Cpu186, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-shr, 2, 0xd2, 0x5, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-shr, 1, 0xd0, 0x5, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-sar, 2, 0xd0, 0x7, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-sar, 2, 0xc0, 0x7, 1, Cpu186, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-sar, 2, 0xd2, 0x7, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-sar, 1, 0xd0, 0x7, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-shld, 3, 0xfa4, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-shld, 3, 0xfa5, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-shld, 2, 0xfa5, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-shrd, 3, 0xfac, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-shrd, 3, 0xfad, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-shrd, 2, 0xfad, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+div, 1, 0xf6, 0x6, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+div, 2, 0xf6, 0x6, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
+idiv, 1, 0xf6, 0x7, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+idiv, 2, 0xf6, 0x7, 1, 0, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
+
+rol, 2, 0xd0, 0x0, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rol, 2, 0xc0, 0x0, 1, Cpu186, W|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rol, 2, 0xd2, 0x0, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rol, 1, 0xd0, 0x0, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+ror, 2, 0xd0, 0x1, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+ror, 2, 0xc0, 0x1, 1, Cpu186, W|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+ror, 2, 0xd2, 0x1, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+ror, 1, 0xd0, 0x1, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+rcl, 2, 0xd0, 0x2, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcl, 2, 0xc0, 0x2, 1, Cpu186, W|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcl, 2, 0xd2, 0x2, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcl, 1, 0xd0, 0x2, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+rcr, 2, 0xd0, 0x3, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcr, 2, 0xc0, 0x3, 1, Cpu186, W|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcr, 2, 0xd2, 0x3, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+rcr, 1, 0xd0, 0x3, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+sal, 2, 0xd0, 0x4, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sal, 2, 0xc0, 0x4, 1, Cpu186, W|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sal, 2, 0xd2, 0x4, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sal, 1, 0xd0, 0x4, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+shl, 2, 0xd0, 0x4, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+shl, 2, 0xc0, 0x4, 1, Cpu186, W|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+shl, 2, 0xd2, 0x4, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+shl, 1, 0xd0, 0x4, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+shr, 2, 0xd0, 0x5, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+shr, 2, 0xc0, 0x5, 1, Cpu186, W|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+shr, 2, 0xd2, 0x5, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+shr, 1, 0xd0, 0x5, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+sar, 2, 0xd0, 0x7, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Imm1, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sar, 2, 0xc0, 0x7, 1, Cpu186, W|Modrm|No_sSuf|No_ldSuf, { Imm8, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sar, 2, 0xd2, 0x7, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { ShiftCount, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+sar, 1, 0xd0, 0x7, 1, 0, W|Modrm|No_sSuf|No_ldSuf, { Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+
+shld, 3, 0xfa4, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+shld, 3, 0xfa5, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+shld, 2, 0xfa5, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+
+shrd, 3, 0xfac, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Imm8, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+shrd, 3, 0xfad, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { ShiftCount, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+shrd, 2, 0xfad, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 
 // Control transfer instructions.
 call, 1, 0xe8, None, 1, CpuNo64, JumpDword|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf|BNDPrefixOk, { Disp16|Disp32 }
 call, 1, 0xe8, None, 1, Cpu64, AMD64|JumpDword|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64|BNDPrefixOk, { Disp16|Disp32S }
 call, 1, 0xe8, None, 1, Cpu64, Intel64|JumpDword|DefaultSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64|BNDPrefixOk, { Disp32S }
-call, 1, 0xff, 0x2, 1, CpuNo64, Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf|BNDPrefixOk, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|JumpAbsolute }
-call, 1, 0xff, 0x2, 1, Cpu64, AMD64|Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64|BNDPrefixOk, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|JumpAbsolute }
-call, 1, 0xff, 0x2, 1, Cpu64, Intel64|Modrm|DefaultSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64|BNDPrefixOk, { Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|JumpAbsolute }
+call, 1, 0xff, 0x2, 1, CpuNo64, Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf|BNDPrefixOk|NoTrackPrefixOk, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex|JumpAbsolute }
+call, 1, 0xff, 0x2, 1, Cpu64, AMD64|Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64|BNDPrefixOk|NoTrackPrefixOk, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex|JumpAbsolute }
+call, 1, 0xff, 0x2, 1, Cpu64, Intel64|Modrm|DefaultSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64|BNDPrefixOk|NoTrackPrefixOk, { Reg64|Qword|Unspecified|BaseIndex|JumpAbsolute }
 // Intel Syntax
 call, 2, 0x9a, None, 1, CpuNo64, JumpInterSegment|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm16, Imm16|Imm32 }
 // Intel Syntax
-call, 1, 0xff, 0x3, 1, 0, Modrm|DefaultSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Dword|Fword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|JumpAbsolute }
+call, 1, 0xff, 0x3, 1, 0, Modrm|DefaultSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Dword|Fword|Unspecified|BaseIndex|JumpAbsolute }
 lcall, 2, 0x9a, None, 1, CpuNo64, JumpInterSegment|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm16, Imm16|Imm32 }
-lcall, 1, 0xff, 0x3, 1, 0, Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|JumpAbsolute }
+lcall, 1, 0xff, 0x3, 1, 0, Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|JumpAbsolute }
 
 jmp, 1, 0xeb, None, 1, CpuNo64, Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|BNDPrefixOk, { Disp8|Disp16|Disp32 }
 jmp, 1, 0xeb, None, 1, Cpu64, AMD64|Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|BNDPrefixOk, { Disp8|Disp16|Disp32S }
 jmp, 1, 0xeb, None, 1, Cpu64, Intel64|Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|BNDPrefixOk, { Disp8|Disp32S }
-jmp, 1, 0xff, 0x4, 1, CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf|BNDPrefixOk, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|JumpAbsolute }
-jmp, 1, 0xff, 0x4, 1, Cpu64, AMD64|Modrm|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64|BNDPrefixOk, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|JumpAbsolute }
-jmp, 1, 0xff, 0x4, 1, Cpu64, Intel64|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64|BNDPrefixOk, { Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|JumpAbsolute }
+jmp, 1, 0xff, 0x4, 1, CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf|BNDPrefixOk|NoTrackPrefixOk, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex|JumpAbsolute }
+jmp, 1, 0xff, 0x4, 1, Cpu64, AMD64|Modrm|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64|BNDPrefixOk|NoTrackPrefixOk, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex|JumpAbsolute }
+jmp, 1, 0xff, 0x4, 1, Cpu64, Intel64|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64|BNDPrefixOk|NoTrackPrefixOk, { Reg64|Qword|Unspecified|BaseIndex|JumpAbsolute }
 // Intel Syntax.
 jmp, 2, 0xea, None, 1, CpuNo64, JumpInterSegment|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm16, Imm16|Imm32 }
 // Intel Syntax.
-jmp, 1, 0xff, 0x5, 1, 0, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Dword|Fword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|JumpAbsolute }
+jmp, 1, 0xff, 0x5, 1, 0, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Dword|Fword|Unspecified|BaseIndex|JumpAbsolute }
 ljmp, 2, 0xea, None, 1, CpuNo64, JumpInterSegment|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm16, Imm16|Imm32 }
-ljmp, 1, 0xff, 0x5, 1, 0, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|JumpAbsolute }
+ljmp, 1, 0xff, 0x5, 1, 0, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|JumpAbsolute }
 
 ret, 0, 0xc3, None, 1, CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk|BNDPrefixOk, { 0 }
 ret, 1, 0xc2, None, 1, CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk|BNDPrefixOk, { Imm16 }
@@ -403,82 +403,82 @@ loopne, 1, 0xe0, None, 1, CpuNo64, JumpB
 loopne, 1, 0xe0, None, 1, Cpu64, JumpByte|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { Disp8|Disp32|Disp32S }
 
 // Set byte on flag instructions.
-seto, 1, 0xf90, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setno, 1, 0xf91, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setb, 1, 0xf92, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setc, 1, 0xf92, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setnae, 1, 0xf92, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setnb, 1, 0xf93, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setnc, 1, 0xf93, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setae, 1, 0xf93, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-sete, 1, 0xf94, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setz, 1, 0xf94, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setne, 1, 0xf95, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setnz, 1, 0xf95, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setbe, 1, 0xf96, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setna, 1, 0xf96, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setnbe, 1, 0xf97, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-seta, 1, 0xf97, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-sets, 1, 0xf98, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setns, 1, 0xf99, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setp, 1, 0xf9a, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setpe, 1, 0xf9a, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setnp, 1, 0xf9b, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setpo, 1, 0xf9b, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setl, 1, 0xf9c, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setnge, 1, 0xf9c, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setnl, 1, 0xf9d, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setge, 1, 0xf9d, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setle, 1, 0xf9e, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setng, 1, 0xf9e, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setnle, 1, 0xf9f, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setg, 1, 0xf9f, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+seto, 1, 0xf90, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setno, 1, 0xf91, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setb, 1, 0xf92, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setc, 1, 0xf92, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setnae, 1, 0xf92, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setnb, 1, 0xf93, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setnc, 1, 0xf93, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setae, 1, 0xf93, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+sete, 1, 0xf94, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setz, 1, 0xf94, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setne, 1, 0xf95, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setnz, 1, 0xf95, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setbe, 1, 0xf96, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setna, 1, 0xf96, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setnbe, 1, 0xf97, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+seta, 1, 0xf97, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+sets, 1, 0xf98, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setns, 1, 0xf99, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setp, 1, 0xf9a, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setpe, 1, 0xf9a, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setnp, 1, 0xf9b, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setpo, 1, 0xf9b, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setl, 1, 0xf9c, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setnge, 1, 0xf9c, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setnl, 1, 0xf9d, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setge, 1, 0xf9d, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setle, 1, 0xf9e, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setng, 1, 0xf9e, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setnle, 1, 0xf9f, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
+setg, 1, 0xf9f, 0x0, 2, Cpu386, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg8|Byte|Unspecified|BaseIndex }
 
 // String manipulation.
 cmps, 0, 0xa6, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-cmps, 2, 0xa6, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg, Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+cmps, 2, 0xa6, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|EsSeg, Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 scmp, 0, 0xa6, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-scmp, 2, 0xa6, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg, Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+scmp, 2, 0xa6, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|EsSeg, Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 ins, 0, 0x6c, None, 1, Cpu186, W|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-ins, 2, 0x6c, None, 1, Cpu186, W|CheckRegSize|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { InOutPortReg, Byte|Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg }
+ins, 2, 0x6c, None, 1, Cpu186, W|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { InOutPortReg, Byte|Word|Dword|Unspecified|BaseIndex|EsSeg }
 outs, 0, 0x6e, None, 1, Cpu186, W|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-outs, 2, 0x6e, None, 1, Cpu186, W|CheckRegSize|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, InOutPortReg }
+outs, 2, 0x6e, None, 1, Cpu186, W|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Unspecified|BaseIndex, InOutPortReg }
 lods, 0, 0xac, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-lods, 1, 0xac, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-lods, 2, 0xac, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Acc|Byte|Word|Dword|Qword }
+lods, 1, 0xac, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+lods, 2, 0xac, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
 slod, 0, 0xac, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-slod, 1, 0xac, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-slod, 2, 0xac, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Acc|Byte|Word|Dword|Qword }
+slod, 1, 0xac, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+slod, 2, 0xac, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Acc|Byte|Word|Dword|Qword }
 movs, 0, 0xa4, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-movs, 2, 0xa4, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg }
+movs, 2, 0xa4, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex|EsSeg }
 smov, 0, 0xa4, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-smov, 2, 0xa4, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg }
+smov, 2, 0xa4, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex, Byte|Word|Dword|Qword|Unspecified|BaseIndex|EsSeg }
 scas, 0, 0xae, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-scas, 1, 0xae, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg }
-scas, 2, 0xae, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg, Acc|Byte|Word|Dword|Qword }
+scas, 1, 0xae, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|EsSeg }
+scas, 2, 0xae, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|EsSeg, Acc|Byte|Word|Dword|Qword }
 ssca, 0, 0xae, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-ssca, 1, 0xae, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg }
-ssca, 2, 0xae, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg, Acc|Byte|Word|Dword|Qword }
+ssca, 1, 0xae, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|EsSeg }
+ssca, 2, 0xae, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|EsSeg, Acc|Byte|Word|Dword|Qword }
 stos, 0, 0xaa, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-stos, 1, 0xaa, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg }
-stos, 2, 0xaa, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Acc|Byte|Word|Dword|Qword, Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg }
+stos, 1, 0xaa, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|EsSeg }
+stos, 2, 0xaa, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Acc|Byte|Word|Dword|Qword, Byte|Word|Dword|Qword|Unspecified|BaseIndex|EsSeg }
 ssto, 0, 0xaa, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-ssto, 1, 0xaa, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg }
-ssto, 2, 0xaa, None, 1, 0, W|CheckRegSize|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Acc|Byte|Word|Dword|Qword, Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg }
+ssto, 1, 0xaa, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Byte|Word|Dword|Qword|Unspecified|BaseIndex|EsSeg }
+ssto, 2, 0xaa, None, 1, 0, W|No_sSuf|No_ldSuf|IsString|RepPrefixOk, { Acc|Byte|Word|Dword|Qword, Byte|Word|Dword|Qword|Unspecified|BaseIndex|EsSeg }
 xlat, 0, 0xd7, None, 1, 0, No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString, { 0 }
-xlat, 1, 0xd7, None, 1, 0, No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString, { Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+xlat, 1, 0xd7, None, 1, 0, No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString, { Byte|Unspecified|BaseIndex }
 
 // Bit manipulation.
-bsf, 2, 0xfbc, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf|RepPrefixOk, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-bsr, 2, 0xfbd, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf|RepPrefixOk, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-bt, 2, 0xfa3, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-bt, 2, 0xfba, 0x4, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Imm8, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-btc, 2, 0xfbb, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-btc, 2, 0xfba, 0x7, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-btr, 2, 0xfb3, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-btr, 2, 0xfba, 0x6, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-bts, 2, 0xfab, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-bts, 2, 0xfba, 0x5, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+bsf, 2, 0xfbc, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf|RepPrefixOk, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+bsr, 2, 0xfbd, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf|RepPrefixOk, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+bt, 2, 0xfa3, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+bt, 2, 0xfba, 0x4, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Imm8, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+btc, 2, 0xfbb, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+btc, 2, 0xfba, 0x7, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+btr, 2, 0xfb3, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+btr, 2, 0xfba, 0x6, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+bts, 2, 0xfab, None, 2, Cpu386, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
+bts, 2, 0xfba, 0x5, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Imm8, Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 
 // Interrupts & op. sys insns.
 // See gas/config/tc-i386.c for conversion of 'int $3' into the special
@@ -490,73 +490,73 @@ iret, 0, 0xcf, None, 1, 0, DefaultSize|N
 // i386sl, i486sl, later 486, and Pentium.
 rsm, 0, 0xfaa, None, 2, Cpu386, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 
-bound, 2, 0x62, None, 1, Cpu186|CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32, Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32 }
+bound, 2, 0x62, None, 1, Cpu186|CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32, Dword|Qword|Unspecified|BaseIndex }
 
 hlt, 0, 0xf4, None, 1, 0, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 
-nop, 1, 0xf1f, 0x0, 2, CpuNop, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+nop, 1, 0xf1f, 0x0, 2, CpuNop, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex }
 
 // nop is actually "xchg %ax,%ax" in 16bit mode, "xchg %eax,%eax" in
 // 32bit mode and "xchg %rax,%rax" in 64bit mode.
 nop, 0, 0x90, None, 1, 0, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, { 0 }
 
 // Protection control.
-arpl, 2, 0x63, None, 1, Cpu286|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16, Reg16|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32 }
-lar, 2, 0xf02, None, 2, Cpu286, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-lgdt, 1, 0xf01, 0x2, 2, Cpu286|CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Fword|Unspecified|BaseIndex|Disp8|Disp16|Disp32 }
-lgdt, 1, 0xf01, 0x2, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Tbyte|Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
-lidt, 1, 0xf01, 0x3, 2, Cpu286|CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Fword|Unspecified|BaseIndex|Disp8|Disp16|Disp32 }
-lidt, 1, 0xf01, 0x3, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Tbyte|Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
-lldt, 1, 0xf00, 0x2, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-lmsw, 1, 0xf01, 0x6, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-lsl, 2, 0xf03, None, 2, Cpu286, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-ltr, 1, 0xf00, 0x3, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-
-sgdt, 1, 0xf01, 0x0, 2, Cpu286|CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Fword|Unspecified|BaseIndex|Disp8|Disp16|Disp32 }
-sgdt, 1, 0xf01, 0x0, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Tbyte|Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
-sidt, 1, 0xf01, 0x1, 2, Cpu286|CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Fword|Unspecified|BaseIndex|Disp8|Disp16|Disp32 }
-sidt, 1, 0xf01, 0x1, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Tbyte|Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
+arpl, 2, 0x63, None, 1, Cpu286|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16, Reg16|Word|Unspecified|BaseIndex }
+lar, 2, 0xf02, None, 2, Cpu286, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+lgdt, 1, 0xf01, 0x2, 2, Cpu286|CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Fword|Unspecified|BaseIndex }
+lgdt, 1, 0xf01, 0x2, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Tbyte|Unspecified|BaseIndex }
+lidt, 1, 0xf01, 0x3, 2, Cpu286|CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Fword|Unspecified|BaseIndex }
+lidt, 1, 0xf01, 0x3, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Tbyte|Unspecified|BaseIndex }
+lldt, 1, 0xf00, 0x2, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex }
+lmsw, 1, 0xf01, 0x6, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex }
+lsl, 2, 0xf03, None, 2, Cpu286, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+ltr, 1, 0xf00, 0x3, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex }
+
+sgdt, 1, 0xf01, 0x0, 2, Cpu286|CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Fword|Unspecified|BaseIndex }
+sgdt, 1, 0xf01, 0x0, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Tbyte|Unspecified|BaseIndex }
+sidt, 1, 0xf01, 0x1, 2, Cpu286|CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Fword|Unspecified|BaseIndex }
+sidt, 1, 0xf01, 0x1, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Tbyte|Unspecified|BaseIndex }
 sldt, 1, 0xf00, 0x0, 2, Cpu286, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64 }
-sldt, 1, 0xf00, 0x0, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+sldt, 1, 0xf00, 0x0, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex }
 smsw, 1, 0xf01, 0x4, 2, Cpu286, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64 }
-smsw, 1, 0xf01, 0x4, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+smsw, 1, 0xf01, 0x4, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex }
 str, 1, 0xf00, 0x1, 2, Cpu286, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64 }
-str, 1, 0xf00, 0x1, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+str, 1, 0xf00, 0x1, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex }
 
-verr, 1, 0xf00, 0x4, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-verw, 1, 0xf00, 0x5, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+verr, 1, 0xf00, 0x4, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex }
+verw, 1, 0xf00, 0x5, 2, Cpu286, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Word|Unspecified|BaseIndex }
 
 // Floating point instructions.
 
 // load
 fld, 1, 0xd9c0, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { FloatReg }
-fld, 1, 0xd9, 0x0, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fld, 1, 0xd9, 0x0, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex }
 fld, 1, 0xd9c0, None, 2, CpuFP, ShortForm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh, { FloatReg }
 // Intel Syntax
-fld, 1, 0xdb, 0x5, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Tbyte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fild, 1, 0xdf, 0x0, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fild, 1, 0xdf, 0x5, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fildll, 1, 0xdf, 0x5, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fldt, 1, 0xdb, 0x5, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Tbyte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fbld, 1, 0xdf, 0x4, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Tbyte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fld, 1, 0xdb, 0x5, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Tbyte|Unspecified|BaseIndex }
+fild, 1, 0xdf, 0x0, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex }
+fild, 1, 0xdf, 0x5, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex }
+fildll, 1, 0xdf, 0x5, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex }
+fldt, 1, 0xdb, 0x5, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Tbyte|Unspecified|BaseIndex }
+fbld, 1, 0xdf, 0x4, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Tbyte|Unspecified|BaseIndex }
 
 // store (no pop)
 fst, 1, 0xddd0, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { FloatReg }
-fst, 1, 0xd9, 0x2, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fst, 1, 0xd9, 0x2, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex }
 fst, 1, 0xddd0, None, 2, CpuFP, ShortForm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh, { FloatReg }
-fist, 1, 0xdf, 0x2, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fist, 1, 0xdf, 0x2, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex }
 
 // store (with pop)
 fstp, 1, 0xddd8, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { FloatReg }
-fstp, 1, 0xd9, 0x3, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fstp, 1, 0xd9, 0x3, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex }
 fstp, 1, 0xddd8, None, 2, CpuFP, ShortForm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh, { FloatReg }
 // Intel Syntax
-fstp, 1, 0xdb, 0x7, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Tbyte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fistp, 1, 0xdf, 0x3, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fistp, 1, 0xdf, 0x7, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fistpll, 1, 0xdf, 0x7, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fstpt, 1, 0xdb, 0x7, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Tbyte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fbstp, 1, 0xdf, 0x6, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Tbyte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fstp, 1, 0xdb, 0x7, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Tbyte|Unspecified|BaseIndex }
+fistp, 1, 0xdf, 0x3, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex }
+fistp, 1, 0xdf, 0x7, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex }
+fistpll, 1, 0xdf, 0x7, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex }
+fstpt, 1, 0xdb, 0x7, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Tbyte|Unspecified|BaseIndex }
+fbstp, 1, 0xdf, 0x6, 1, CpuFP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf, { Tbyte|Unspecified|BaseIndex }
 
 // exchange %st<n> with %st0
 fxch, 1, 0xd9c8, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { FloatReg }
@@ -567,17 +567,17 @@ fxch, 0, 0xd9c9, None, 2, CpuFP, No_bSuf
 fcom, 1, 0xd8d0, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { FloatReg }
 // alias for fcom %st(1)
 fcom, 0, 0xd8d1, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
-fcom, 1, 0xd8, 0x2, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fcom, 1, 0xd8, 0x2, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex }
 fcom, 1, 0xd8d0, None, 2, CpuFP, ShortForm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh, { FloatReg }
-ficom, 1, 0xde, 0x2, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+ficom, 1, 0xde, 0x2, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex }
 
 // comparison (with pop)
 fcomp, 1, 0xd8d8, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { FloatReg }
 // alias for fcomp %st(1)
 fcomp, 0, 0xd8d9, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
-fcomp, 1, 0xd8, 0x3, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fcomp, 1, 0xd8, 0x3, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex }
 fcomp, 1, 0xd8d8, None, 2, CpuFP, ShortForm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh, { FloatReg }
-ficomp, 1, 0xde, 0x3, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+ficomp, 1, 0xde, 0x3, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex }
 fcompp, 0, 0xded9, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 
 // unordered comparison (with pop)
@@ -609,8 +609,8 @@ fadd, 2, 0xd8c0, None, 2, CpuFP, ShortFo
 fadd, 1, 0xd8c0, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { FloatReg }
 // alias for faddp
 fadd, 0, 0xdec1, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh|ATTMnemonic, { 0 }
-fadd, 1, 0xd8, 0x0, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fiadd, 1, 0xde, 0x0, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fadd, 1, 0xd8, 0x0, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex }
+fiadd, 1, 0xde, 0x0, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex }
 
 faddp, 2, 0xdec0, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { FloatAcc, FloatReg }
 faddp, 1, 0xdec0, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { FloatReg }
@@ -625,8 +625,8 @@ fsub, 2, 0xd8e0, None, 2, CpuFP, ShortFo
 fsub, 0, 0xdee1, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh|ATTMnemonic|ATTSyntax, { 0 }
 fsub, 0, 0xdee9, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh|ATTMnemonic, { 0 }
 fsub, 2, 0xd8e0, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|No_qSuf|ShortForm|FloatD|FloatR, { FloatReg, FloatAcc }
-fsub, 1, 0xd8, 0x4, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fisub, 1, 0xde, 0x4, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fsub, 1, 0xd8, 0x4, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex }
+fisub, 1, 0xde, 0x4, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex }
 
 fsubp, 2, 0xdee0, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTMnemonic|ATTSyntax, { FloatAcc, FloatReg }
 fsubp, 1, 0xdee0, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTMnemonic|ATTSyntax, { FloatReg }
@@ -644,8 +644,8 @@ fsubr, 2, 0xd8e8, None, 2, CpuFP, ShortF
 fsubr, 0, 0xdee9, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh|ATTMnemonic|ATTSyntax, { 0 }
 fsubr, 0, 0xdee1, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh|ATTMnemonic, { 0 }
 fsubr, 2, 0xd8e8, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|No_qSuf|ShortForm|FloatD|FloatR, { FloatReg, FloatAcc }
-fsubr, 1, 0xd8, 0x5, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fisubr, 1, 0xde, 0x5, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fsubr, 1, 0xd8, 0x5, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex }
+fisubr, 1, 0xde, 0x5, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex }
 
 fsubrp, 2, 0xdee8, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTMnemonic|ATTSyntax, { FloatAcc, FloatReg }
 fsubrp, 1, 0xdee8, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTMnemonic|ATTSyntax, { FloatReg }
@@ -661,8 +661,8 @@ fmul, 2, 0xd8c8, None, 2, CpuFP, ShortFo
 fmul, 1, 0xd8c8, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { FloatReg }
 // alias for fmulp
 fmul, 0, 0xdec9, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh|ATTMnemonic, { 0 }
-fmul, 1, 0xd8, 0x1, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fimul, 1, 0xde, 0x1, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fmul, 1, 0xd8, 0x1, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex }
+fimul, 1, 0xde, 0x1, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex }
 
 fmulp, 2, 0xdec8, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { FloatAcc, FloatReg }
 fmulp, 1, 0xdec8, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { FloatReg }
@@ -676,8 +676,8 @@ fdiv, 2, 0xd8f0, None, 2, CpuFP, ShortFo
 fdiv, 0, 0xdef1, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh|ATTMnemonic|ATTSyntax, { 0 }
 fdiv, 0, 0xdef9, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh|ATTMnemonic, { 0 }
 fdiv, 2, 0xd8f0, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|No_qSuf|ShortForm|FloatD|FloatR, { FloatReg, FloatAcc }
-fdiv, 1, 0xd8, 0x6, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fidiv, 1, 0xde, 0x6, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fdiv, 1, 0xd8, 0x6, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex }
+fidiv, 1, 0xde, 0x6, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex }
 
 fdivp, 2, 0xdef0, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTMnemonic|ATTSyntax, { FloatAcc, FloatReg }
 fdivp, 1, 0xdef0, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTMnemonic|ATTSyntax, { FloatReg }
@@ -695,8 +695,8 @@ fdivr, 2, 0xd8f8, None, 2, CpuFP, ShortF
 fdivr, 0, 0xdef9, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh|ATTMnemonic|ATTSyntax, { 0 }
 fdivr, 0, 0xdef1, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Ugh|ATTMnemonic, { 0 }
 fdivr, 2, 0xd8f8, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|No_qSuf|ShortForm|FloatD|FloatR, { FloatReg, FloatAcc }
-fdivr, 1, 0xd8, 0x7, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fidivr, 1, 0xde, 0x7, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fdivr, 1, 0xd8, 0x7, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex }
+fidivr, 1, 0xde, 0x7, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex }
 
 fdivrp, 2, 0xdef8, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTMnemonic|ATTSyntax, { FloatAcc, FloatReg }
 fdivrp, 1, 0xdef8, None, 2, CpuFP, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTMnemonic|ATTSyntax, { FloatReg }
@@ -729,24 +729,24 @@ fabs, 0, 0xd9e1, None, 2, CpuFP, No_bSuf
 // processor control
 fninit, 0, 0xdbe3, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 finit, 0, 0xdbe3, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FWait, { 0 }
-fldcw, 1, 0xd9, 0x5, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fnstcw, 1, 0xd9, 0x7, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fstcw, 1, 0xd9, 0x7, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FWait, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fldcw, 1, 0xd9, 0x5, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex }
+fnstcw, 1, 0xd9, 0x7, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex }
+fstcw, 1, 0xd9, 0x7, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FWait, { Word|Unspecified|BaseIndex }
 fnstsw, 1, 0xdfe0, None, 2, Cpu287|Cpu387, IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Acc|Word }
-fnstsw, 1, 0xdd, 0x7, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fnstsw, 1, 0xdd, 0x7, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex }
 fnstsw, 0, 0xdfe0, None, 2, Cpu287|Cpu387, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 fstsw, 1, 0xdfe0, None, 2, Cpu287|Cpu387, IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FWait, { Acc|Word }
-fstsw, 1, 0xdd, 0x7, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FWait, { word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fstsw, 1, 0xdd, 0x7, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FWait, { word|Unspecified|BaseIndex }
 fstsw, 0, 0xdfe0, None, 2, Cpu287|Cpu387, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FWait, { 0 }
 fnclex, 0, 0xdbe2, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 fclex, 0, 0xdbe2, None, 2, CpuFP, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FWait, { 0 }
 // Short forms of fldenv, fstenv use data size prefix.
-fnstenv, 1, 0xd9, 0x6, 1, CpuFP, Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fstenv, 1, 0xd9, 0x6, 1, CpuFP, Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_ldSuf|FWait, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fldenv, 1, 0xd9, 0x4, 1, CpuFP, Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fnsave, 1, 0xdd, 0x6, 1, CpuFP, Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fsave, 1, 0xdd, 0x6, 1, CpuFP, Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_ldSuf|FWait, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-frstor, 1, 0xdd, 0x4, 1, CpuFP, Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+fnstenv, 1, 0xd9, 0x6, 1, CpuFP, Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex }
+fstenv, 1, 0xd9, 0x6, 1, CpuFP, Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_ldSuf|FWait, { Unspecified|BaseIndex }
+fldenv, 1, 0xd9, 0x4, 1, CpuFP, Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex }
+fnsave, 1, 0xdd, 0x6, 1, CpuFP, Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex }
+fsave, 1, 0xdd, 0x6, 1, CpuFP, Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_ldSuf|FWait, { Unspecified|BaseIndex }
+frstor, 1, 0xdd, 0x4, 1, CpuFP, Modrm|DefaultSize|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex }
 // 8087 only
 fneni, 0, 0xdbe0, None, 2, Cpu8087, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 feni, 0, 0xdbe0, None, 2, Cpu8087, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FWait, { 0 }
@@ -833,11 +833,11 @@ rex.wrxb, 0, 0x4f, None, 1, Cpu64, No_bS
 // 486 extensions.
 
 bswap, 1, 0xfc8, None, 2, Cpu486, ShortForm|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64 }
-xadd, 2, 0xfc0, None, 2, Cpu486, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-cmpxchg, 2, 0xfb0, None, 2, Cpu486, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+xadd, 2, 0xfc0, None, 2, Cpu486, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
+cmpxchg, 2, 0xfb0, None, 2, Cpu486, W|CheckRegSize|Modrm|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Reg8|Reg16|Reg32|Reg64, Reg8|Reg16|Reg32|Reg64|Byte|Word|Dword|Qword|Unspecified|BaseIndex }
 invd, 0, 0xf08, None, 2, Cpu486, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 wbinvd, 0, 0xf09, None, 2, Cpu486, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
-invlpg, 1, 0xf01, 0x7, 2, Cpu486, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+invlpg, 1, 0xf01, 0x7, 2, Cpu486, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex }
 
 // 586 and late 486 extensions.
 cpuid, 0, 0xfa2, None, 2, Cpu486, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
@@ -846,55 +846,57 @@ cpuid, 0, 0xfa2, None, 2, Cpu486, No_bSu
 wrmsr, 0, 0xf30, None, 2, Cpu586, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 rdtsc, 0, 0xf31, None, 2, Cpu586, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 rdmsr, 0, 0xf32, None, 2, Cpu586, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
-cmpxchg8b, 1, 0xfc7, 0x1, 2, Cpu586, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+cmpxchg8b, 1, 0xfc7, 0x1, 2, Cpu586, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|IsLockable|HLEPrefixOk, { Qword|Unspecified|BaseIndex }
 
 // Pentium II/Pentium Pro extensions.
 sysenter, 0, 0xf34, None, 2, Cpu686, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 sysexit, 0, 0xf35, None, 2, Cpu686, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
-fxsave, 1, 0xfae, 0x0, 2, Cpu686, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fxsave64, 1, 0xfae, 0x0, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
-fxrstor, 1, 0xfae, 0x1, 2, Cpu686, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fxrstor64, 1, 0xfae, 0x1, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
+fxsave, 1, 0xfae, 0x0, 2, Cpu686, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Unspecified|BaseIndex }
+fxsave64, 1, 0xfae, 0x0, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex }
+fxrstor, 1, 0xfae, 0x1, 2, Cpu686, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Unspecified|BaseIndex }
+fxrstor64, 1, 0xfae, 0x1, 2, Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex }
 rdpmc, 0, 0xf33, None, 2, Cpu686, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 // official undefined instr.
 ud2, 0, 0xf0b, None, 2, Cpu186, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 // alias for ud2
 ud2a, 0, 0xf0b, None, 2, Cpu186, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 // 2nd. official undefined instr.
-ud1, 0, 0xfb9, None, 2, Cpu186, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
+ud1, 2, 0xfb9, None, 2, Cpu186, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 // alias for ud1
-ud2b, 0, 0xfb9, None, 2, Cpu186, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
-
-cmovo, 2, 0xf40, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovno, 2, 0xf41, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovb, 2, 0xf42, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovc, 2, 0xf42, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovnae, 2, 0xf42, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovae, 2, 0xf43, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovnc, 2, 0xf43, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovnb, 2, 0xf43, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmove, 2, 0xf44, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovz, 2, 0xf44, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovne, 2, 0xf45, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovnz, 2, 0xf45, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovbe, 2, 0xf46, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovna, 2, 0xf46, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmova, 2, 0xf47, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovnbe, 2, 0xf47, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovs, 2, 0xf48, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovns, 2, 0xf49, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovp, 2, 0xf4a, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovnp, 2, 0xf4b, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovl, 2, 0xf4c, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovnge, 2, 0xf4c, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovge, 2, 0xf4d, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovnl, 2, 0xf4d, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovle, 2, 0xf4e, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovng, 2, 0xf4e, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovg, 2, 0xf4f, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovnle, 2, 0xf4f, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovpe, 2, 0xf4a, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-cmovpo, 2, 0xf4b, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
+ud2b, 2, 0xfb9, None, 2, Cpu186, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+// 3rd official undefined instr (older CPUs don't take a ModR/M byte)
+ud0, 2, 0xfff, None, 2, Cpu186, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+
+cmovo, 2, 0xf40, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovno, 2, 0xf41, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovb, 2, 0xf42, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovc, 2, 0xf42, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovnae, 2, 0xf42, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovae, 2, 0xf43, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovnc, 2, 0xf43, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovnb, 2, 0xf43, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmove, 2, 0xf44, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovz, 2, 0xf44, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovne, 2, 0xf45, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovnz, 2, 0xf45, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovbe, 2, 0xf46, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovna, 2, 0xf46, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmova, 2, 0xf47, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovnbe, 2, 0xf47, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovs, 2, 0xf48, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovns, 2, 0xf49, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovp, 2, 0xf4a, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovnp, 2, 0xf4b, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovl, 2, 0xf4c, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovnge, 2, 0xf4c, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovge, 2, 0xf4d, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovnl, 2, 0xf4d, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovle, 2, 0xf4e, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovng, 2, 0xf4e, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovg, 2, 0xf4f, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovnle, 2, 0xf4f, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovpe, 2, 0xf4a, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cmovpo, 2, 0xf4b, None, 2, Cpu686, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 fcmovb, 2, 0xdac0, None, 2, Cpu687, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { FloatReg, FloatAcc }
 fcmovnae, 2, 0xdac0, None, 2, Cpu687, ShortForm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { FloatReg, FloatAcc }
@@ -930,8 +932,8 @@ fucompi, 1, 0xdfe8, None, 2, Cpu687, Sho
 
 // Pentium4 extensions.
 
-movnti, 2, 0xfc3, None, 2, CpuSSE2, Modrm|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoAVX, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-clflush, 1, 0xfae, 0x7, 2, CpuClflush, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+movnti, 2, 0xfc3, None, 2, CpuSSE2, Modrm|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoAVX, { Reg32|Reg64, Dword|Qword|Unspecified|BaseIndex }
+clflush, 1, 0xfae, 0x7, 2, CpuClflush, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex }
 lfence, 0, 0xfae, 0xe8, 2, CpuSSE2, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|NoAVX, { 0 }
 mfence, 0, 0xfae, 0xf0, 2, CpuSSE2, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|NoAVX, { 0 }
 // Processors that do not support PAUSE treat this opcode as a NOP instruction.
@@ -944,37 +946,37 @@ emms, 0, 0xf77, None, 2, CpuMMX, No_bSuf
 // copying between Reg64/Mem64 and RegXMM/RegMMX, as is mandated by Intel's
 // spec). AMD's spec, having been in existence for much longer, failed to
 // recognize that and specified movd for 32- and 64-bit operations.
-movd, 2, 0x666e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-movd, 2, 0x666e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64|SSE2AVX, { Reg64|Qword|BaseIndex|Disp8|Disp32|Disp32S, RegXMM }
-movd, 2, 0x667e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Dword|Unspecified|Reg32|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movd, 2, 0x667e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64|SSE2AVX, { RegXMM, Qword|Reg64|BaseIndex|Disp8|Disp32|Disp32S }
-movd, 2, 0x660f6e, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Disp32S, RegXMM }
-movd, 2, 0x660f6e, None, 2, CpuSSE2|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg64|Qword|BaseIndex|Disp8|Disp32|Disp32S|Disp32S, RegXMM }
-movd, 2, 0x660f7e, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Disp32S }
-movd, 2, 0x660f7e, None, 2, CpuSSE2|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { RegXMM, Reg64|Qword|BaseIndex|Disp8|Disp32|Disp32S|Disp32S }
-movd, 2, 0xf6e, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegMMX }
-movd, 2, 0xf6e, None, 2, CpuMMX|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg64|Qword|BaseIndex|Disp8|Disp32|Disp32S, RegMMX }
-movd, 2, 0xf7e, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMMX, Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Disp32S }
-movd, 2, 0xf7e, None, 2, CpuMMX|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { RegMMX, Reg64|Qword|BaseIndex|Disp8|Disp32|Disp32S|Disp32S }
+movd, 2, 0x666e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Reg32|Dword|Unspecified|BaseIndex, RegXMM }
+movd, 2, 0x666e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64|SSE2AVX, { Reg64|Qword|BaseIndex, RegXMM }
+movd, 2, 0x667e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Dword|Unspecified|Reg32|BaseIndex }
+movd, 2, 0x667e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64|SSE2AVX, { RegXMM, Qword|Reg64|BaseIndex }
+movd, 2, 0x660f6e, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, RegXMM }
+movd, 2, 0x660f6e, None, 2, CpuSSE2|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg64|Qword|BaseIndex, RegXMM }
+movd, 2, 0x660f7e, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Reg32|Dword|Unspecified|BaseIndex }
+movd, 2, 0x660f7e, None, 2, CpuSSE2|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { RegXMM, Reg64|Qword|BaseIndex }
+movd, 2, 0xf6e, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, RegMMX }
+movd, 2, 0xf6e, None, 2, CpuMMX|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg64|Qword|BaseIndex, RegMMX }
+movd, 2, 0xf7e, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMMX, Reg32|Dword|Unspecified|BaseIndex }
+movd, 2, 0xf7e, None, 2, CpuMMX|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { RegMMX, Reg64|Qword|BaseIndex }
 // In the 64bit mode the short form mov immediate is redefined to have
 // 64bit displacement value.  We put the 64bit displacement first and
 // we only mark constants larger than 32bit as Disp64.
-movq, 2, 0xa0, None, 1, Cpu64, D|W|CheckRegSize|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Disp64|Unspecified|Qword, Acc|Qword }
-movq, 2, 0x88, None, 1, Cpu64, D|W|Modrm|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|HLEPrefixOk=3, { Reg64, Reg64|Unspecified|Qword|BaseIndex|Disp8|Disp32|Disp32S }
-movq, 2, 0xc6, 0x0, 1, Cpu64, W|Modrm|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|HLEPrefixOk=3, { Imm32S, Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
+movq, 2, 0xa0, None, 1, Cpu64, D|W|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Disp64|Unspecified|Qword, Acc|Qword }
+movq, 2, 0x88, None, 1, Cpu64, D|W|Modrm|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|HLEPrefixOk=3, { Reg64, Reg64|Unspecified|Qword|BaseIndex }
+movq, 2, 0xc6, 0x0, 1, Cpu64, W|Modrm|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|HLEPrefixOk=3, { Imm32S, Reg64|Qword|Unspecified|BaseIndex }
 movq, 2, 0xb0, None, 1, Cpu64, W|ShortForm|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm64, Reg64 }
-movq, 2, 0xf37e, None, 1, CpuAVX, Load|Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movq, 2, 0x66d6, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-movq, 2, 0x666e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64|SSE2AVX, { Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, RegXMM }
-movq, 2, 0x667e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64|SSE2AVX, { RegXMM, Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
-movq, 2, 0xf30f7e, None, 2, CpuSSE2, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Unspecified|Qword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movq, 2, 0x660fd6, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { RegXMM, Unspecified|Qword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-movq, 2, 0x660f6e, None, 2, Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { Reg64|Unspecified|Qword|BaseIndex|Disp8|Disp32|Disp32S, RegXMM }
-movq, 2, 0x660f7e, None, 2, Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { RegXMM, Reg64|Unspecified|Qword|BaseIndex|Disp8|Disp32|Disp32S }
-movq, 2, 0xf6f, None, 2, CpuMMX, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Unspecified|Qword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-movq, 2, 0xf7f, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { RegMMX, Unspecified|Qword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX }
-movq, 2, 0xf6e, None, 2, Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { Reg64|Unspecified|Qword|BaseIndex|Disp8|Disp32|Disp32S, RegMMX }
-movq, 2, 0xf7e, None, 2, Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { RegMMX, Reg64|Unspecified|Qword|BaseIndex|Disp8|Disp32|Disp32S }
+movq, 2, 0xf37e, None, 1, CpuAVX, Load|Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movq, 2, 0x66d6, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex|RegXMM }
+movq, 2, 0x666e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64|SSE2AVX, { Reg64|Qword|Unspecified|BaseIndex, RegXMM }
+movq, 2, 0x667e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64|SSE2AVX, { RegXMM, Reg64|Qword|Unspecified|BaseIndex }
+movq, 2, 0xf30f7e, None, 2, CpuSSE2, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Unspecified|Qword|BaseIndex|RegXMM, RegXMM }
+movq, 2, 0x660fd6, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { RegXMM, Unspecified|Qword|BaseIndex|RegXMM }
+movq, 2, 0x660f6e, None, 2, Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { Reg64|Unspecified|Qword|BaseIndex, RegXMM }
+movq, 2, 0x660f7e, None, 2, Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { RegXMM, Reg64|Unspecified|Qword|BaseIndex }
+movq, 2, 0xf6f, None, 2, CpuMMX, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Unspecified|Qword|BaseIndex|RegMMX, RegMMX }
+movq, 2, 0xf7f, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { RegMMX, Unspecified|Qword|BaseIndex|RegMMX }
+movq, 2, 0xf6e, None, 2, Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { Reg64|Unspecified|Qword|BaseIndex, RegMMX }
+movq, 2, 0xf7e, None, 2, Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { RegMMX, Reg64|Unspecified|Qword|BaseIndex }
 // The segment register moves accept Reg64 so that a segment register
 // can be copied to a 64 bit register, and vice versa.
 movq, 2, 0x8c, None, 1, Cpu64, Modrm|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg2|SReg3, Reg64|RegMem }
@@ -984,549 +986,554 @@ movq, 2, 0x8e, None, 1, Cpu64, Modrm|Siz
 movq, 2, 0xf20, None, 2, Cpu64, D|Modrm|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Control, Reg64|RegMem }
 movq, 2, 0xf21, None, 2, Cpu64, D|Modrm|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Debug, Reg64|RegMem }
 // Real MMX/SSE instructions.
-packssdw, 2, 0x666b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-packssdw, 2, 0x660f6b, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-packssdw, 2, 0xf6b, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-packsswb, 2, 0x6663, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-packsswb, 2, 0x660f63, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-packsswb, 2, 0xf63, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-packuswb, 2, 0x6667, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-packuswb, 2, 0x660f67, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-packuswb, 2, 0xf67, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-paddb, 2, 0x66fc, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddb, 2, 0x660ffc, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddb, 2, 0xffc, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-paddw, 2, 0x66fd, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddw, 2, 0x660ffd, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddw, 2, 0xffd, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-paddd, 2, 0x66fe, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddd, 2, 0x660ffe, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddd, 2, 0xffe, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-paddq, 2, 0x66d4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddq, 2, 0x660fd4, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddq, 2, 0xfd4, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-paddsb, 2, 0x66ec, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddsb, 2, 0x660fec, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddsb, 2, 0xfec, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-paddsw, 2, 0x66ed, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddsw, 2, 0x660fed, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddsw, 2, 0xfed, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-paddusb, 2, 0x66dc, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddusb, 2, 0x660fdc, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddusb, 2, 0xfdc, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-paddusw, 2, 0x66dd, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddusw, 2, 0x660fdd, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-paddusw, 2, 0xfdd, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pand, 2, 0x66db, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pand, 2, 0x660fdb, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pand, 2, 0xfdb, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pandn, 2, 0x66df, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pandn, 2, 0x660fdf, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pandn, 2, 0xfdf, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pcmpeqb, 2, 0x6674, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpeqb, 2, 0x660f74, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpeqb, 2, 0xf74, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pcmpeqw, 2, 0x6675, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpeqw, 2, 0x660f75, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpeqw, 2, 0xf75, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pcmpeqd, 2, 0x6676, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpeqd, 2, 0x660f76, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpeqd, 2, 0xf76, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pcmpgtb, 2, 0x6664, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpgtb, 2, 0x660f64, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpgtb, 2, 0xf64, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pcmpgtw, 2, 0x6665, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpgtw, 2, 0x660f65, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpgtw, 2, 0xf65, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pcmpgtd, 2, 0x6666, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpgtd, 2, 0x660f66, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpgtd, 2, 0xf66, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pmaddwd, 2, 0x66f5, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaddwd, 2, 0x660ff5, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaddwd, 2, 0xff5, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pmulhw, 2, 0x66e5, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmulhw, 2, 0x660fe5, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmulhw, 2, 0xfe5, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pmullw, 2, 0x66d5, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmullw, 2, 0x660fd5, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmullw, 2, 0xfd5, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-por, 2, 0x66eb, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-por, 2, 0x660feb, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-por, 2, 0xfeb, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
+packssdw, 2, 0x666b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+packssdw, 2, 0x660f6b, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+packssdw, 2, 0xf6b, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+packsswb, 2, 0x6663, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+packsswb, 2, 0x660f63, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+packsswb, 2, 0xf63, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+packuswb, 2, 0x6667, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+packuswb, 2, 0x660f67, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+packuswb, 2, 0xf67, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+paddb, 2, 0x66fc, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddb, 2, 0x660ffc, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddb, 2, 0xffc, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+paddw, 2, 0x66fd, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddw, 2, 0x660ffd, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddw, 2, 0xffd, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+paddd, 2, 0x66fe, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddd, 2, 0x660ffe, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddd, 2, 0xffe, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+paddq, 2, 0x66d4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddq, 2, 0x660fd4, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddq, 2, 0xfd4, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+paddsb, 2, 0x66ec, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddsb, 2, 0x660fec, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddsb, 2, 0xfec, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+paddsw, 2, 0x66ed, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddsw, 2, 0x660fed, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddsw, 2, 0xfed, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+paddusb, 2, 0x66dc, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddusb, 2, 0x660fdc, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddusb, 2, 0xfdc, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+paddusw, 2, 0x66dd, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddusw, 2, 0x660fdd, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+paddusw, 2, 0xfdd, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pand, 2, 0x66db, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pand, 2, 0x660fdb, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pand, 2, 0xfdb, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pandn, 2, 0x66df, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pandn, 2, 0x660fdf, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pandn, 2, 0xfdf, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pcmpeqb, 2, 0x6674, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpeqb, 2, 0x660f74, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpeqb, 2, 0xf74, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pcmpeqw, 2, 0x6675, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpeqw, 2, 0x660f75, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpeqw, 2, 0xf75, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pcmpeqd, 2, 0x6676, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpeqd, 2, 0x660f76, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpeqd, 2, 0xf76, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pcmpgtb, 2, 0x6664, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpgtb, 2, 0x660f64, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpgtb, 2, 0xf64, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pcmpgtw, 2, 0x6665, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpgtw, 2, 0x660f65, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpgtw, 2, 0xf65, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pcmpgtd, 2, 0x6666, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpgtd, 2, 0x660f66, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpgtd, 2, 0xf66, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pmaddwd, 2, 0x66f5, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaddwd, 2, 0x660ff5, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaddwd, 2, 0xff5, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pmulhw, 2, 0x66e5, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmulhw, 2, 0x660fe5, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmulhw, 2, 0xfe5, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pmullw, 2, 0x66d5, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmullw, 2, 0x660fd5, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmullw, 2, 0xfd5, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+por, 2, 0x66eb, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+por, 2, 0x660feb, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+por, 2, 0xfeb, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
 psllw, 2, 0x6671, 0x6, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM }
-psllw, 2, 0x66f1, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+psllw, 2, 0x66f1, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 psllw, 2, 0x660f71, 0x6, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM }
-psllw, 2, 0x660ff1, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+psllw, 2, 0x660ff1, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 psllw, 2, 0xf71, 0x6, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegMMX }
-psllw, 2, 0xff1, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
+psllw, 2, 0xff1, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
 pslld, 2, 0x6672, 0x6, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM }
-pslld, 2, 0x66f2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+pslld, 2, 0x66f2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 pslld, 2, 0x660f72, 0x6, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM }
-pslld, 2, 0x660ff2, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+pslld, 2, 0x660ff2, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 pslld, 2, 0xf72, 0x6, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegMMX }
-pslld, 2, 0xff2, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
+pslld, 2, 0xff2, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
 psllq, 2, 0x6673, 0x6, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM }
-psllq, 2, 0x66f3, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+psllq, 2, 0x66f3, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 psllq, 2, 0x660f73, 0x6, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM }
-psllq, 2, 0x660ff3, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+psllq, 2, 0x660ff3, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 psllq, 2, 0xf73, 0x6, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegMMX }
-psllq, 2, 0xff3, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
+psllq, 2, 0xff3, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
 psraw, 2, 0x6671, 0x4, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM }
-psraw, 2, 0x66e1, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+psraw, 2, 0x66e1, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 psraw, 2, 0x660f71, 0x4, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM }
-psraw, 2, 0x660fe1, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+psraw, 2, 0x660fe1, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 psraw, 2, 0xf71, 0x4, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegMMX }
-psraw, 2, 0xfe1, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
+psraw, 2, 0xfe1, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
 psrad, 2, 0x6672, 0x4, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM }
-psrad, 2, 0x66e2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+psrad, 2, 0x66e2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 psrad, 2, 0x660f72, 0x4, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM }
-psrad, 2, 0x660fe2, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+psrad, 2, 0x660fe2, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 psrad, 2, 0xf72, 0x4, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegMMX }
-psrad, 2, 0xfe2, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
+psrad, 2, 0xfe2, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
 psrlw, 2, 0x6671, 0x2, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM }
-psrlw, 2, 0x66d1, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+psrlw, 2, 0x66d1, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 psrlw, 2, 0x660f71, 0x2, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM }
-psrlw, 2, 0x660fd1, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+psrlw, 2, 0x660fd1, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 psrlw, 2, 0xf71, 0x2, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegMMX }
-psrlw, 2, 0xfd1, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
+psrlw, 2, 0xfd1, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
 psrld, 2, 0x6672, 0x2, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM }
-psrld, 2, 0x66d2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+psrld, 2, 0x66d2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 psrld, 2, 0x660f72, 0x2, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM }
-psrld, 2, 0x660fd2, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+psrld, 2, 0x660fd2, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 psrld, 2, 0xf72, 0x2, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegMMX }
-psrld, 2, 0xfd2, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
+psrld, 2, 0xfd2, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
 psrlq, 2, 0x6673, 0x2, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM }
-psrlq, 2, 0x66d3, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+psrlq, 2, 0x66d3, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 psrlq, 2, 0x660f73, 0x2, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM }
-psrlq, 2, 0x660fd3, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+psrlq, 2, 0x660fd3, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 psrlq, 2, 0xf73, 0x2, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegMMX }
-psrlq, 2, 0xfd3, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-psubb, 2, 0x66f8, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubb, 2, 0x660ff8, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubb, 2, 0xff8, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-psubw, 2, 0x66f9, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubw, 2, 0x660ff9, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubw, 2, 0xff9, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-psubd, 2, 0x66fa, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubd, 2, 0x660ffa, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubd, 2, 0xffa, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-psubq, 2, 0x66fb, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubq, 2, 0x660ffb, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubq, 2, 0xffb, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-psubsb, 2, 0x66e8, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubsb, 2, 0x660fe8, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubsb, 2, 0xfe8, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-psubsw, 2, 0x66e9, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubsw, 2, 0x660fe9, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubsw, 2, 0xfe9, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-psubusb, 2, 0x66d8, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubusb, 2, 0x660fd8, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubusb, 2, 0xfd8, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-psubusw, 2, 0x66d9, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubusw, 2, 0x660fd9, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psubusw, 2, 0xfd9, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-punpckhbw, 2, 0x6668, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpckhbw, 2, 0x660f68, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpckhbw, 2, 0xf68, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-punpckhwd, 2, 0x6669, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpckhwd, 2, 0x660f69, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpckhwd, 2, 0xf69, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-punpckhdq, 2, 0x666a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpckhdq, 2, 0x660f6a, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpckhdq, 2, 0xf6a, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-punpcklbw, 2, 0x6660, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpcklbw, 2, 0x660f60, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpcklbw, 2, 0xf60, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-punpcklwd, 2, 0x6661, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpcklwd, 2, 0x660f61, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpcklwd, 2, 0xf61, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-punpckldq, 2, 0x6662, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpckldq, 2, 0x660f62, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpckldq, 2, 0xf62, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pxor, 2, 0x66ef, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pxor, 2, 0x660fef, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pxor, 2, 0xfef, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
+psrlq, 2, 0xfd3, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+psubb, 2, 0x66f8, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubb, 2, 0x660ff8, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubb, 2, 0xff8, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+psubw, 2, 0x66f9, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubw, 2, 0x660ff9, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubw, 2, 0xff9, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+psubd, 2, 0x66fa, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubd, 2, 0x660ffa, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubd, 2, 0xffa, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+psubq, 2, 0x66fb, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubq, 2, 0x660ffb, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubq, 2, 0xffb, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+psubsb, 2, 0x66e8, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubsb, 2, 0x660fe8, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubsb, 2, 0xfe8, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+psubsw, 2, 0x66e9, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubsw, 2, 0x660fe9, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubsw, 2, 0xfe9, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+psubusb, 2, 0x66d8, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubusb, 2, 0x660fd8, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubusb, 2, 0xfd8, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+psubusw, 2, 0x66d9, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubusw, 2, 0x660fd9, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psubusw, 2, 0xfd9, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+punpckhbw, 2, 0x6668, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpckhbw, 2, 0x660f68, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpckhbw, 2, 0xf68, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+punpckhwd, 2, 0x6669, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpckhwd, 2, 0x660f69, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpckhwd, 2, 0xf69, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+punpckhdq, 2, 0x666a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpckhdq, 2, 0x660f6a, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpckhdq, 2, 0xf6a, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+punpcklbw, 2, 0x6660, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpcklbw, 2, 0x660f60, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpcklbw, 2, 0xf60, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegMMX, RegMMX }
+punpcklwd, 2, 0x6661, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpcklwd, 2, 0x660f61, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpcklwd, 2, 0xf61, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegMMX, RegMMX }
+punpckldq, 2, 0x6662, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpckldq, 2, 0x660f62, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpckldq, 2, 0xf62, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pxor, 2, 0x66ef, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pxor, 2, 0x660fef, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pxor, 2, 0xfef, None, 2, CpuMMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
 
 // SSE instructions.
 
-addps, 2, 0x58, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-addps, 2, 0xf58, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-addss, 2, 0xf358, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-addss, 2, 0xf30f58, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-andnps, 2, 0x55, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-andnps, 2, 0xf55, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-andps, 2, 0x54, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-andps, 2, 0xf54, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpeqps, 2, 0xc2, 0x0, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpeqps, 2, 0xfc2, 0x0, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpeqss, 2, 0xf3c2, 0x0, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpeqss, 2, 0xf30fc2, 0x0, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpleps, 2, 0xc2, 0x2, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpleps, 2, 0xfc2, 0x2, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpless, 2, 0xf3c2, 0x2, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpless, 2, 0xf30fc2, 0x2, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpltps, 2, 0xc2, 0x1, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpltps, 2, 0xfc2, 0x1, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpltss, 2, 0xf3c2, 0x1, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpltss, 2, 0xf30fc2, 0x1, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpneqps, 2, 0xc2, 0x4, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpneqps, 2, 0xfc2, 0x4, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpneqss, 2, 0xf3c2, 0x4, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpneqss, 2, 0xf30fc2, 0x4, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnleps, 2, 0xc2, 0x6, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnleps, 2, 0xfc2, 0x6, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnless, 2, 0xf3c2, 0x6, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnless, 2, 0xf30fc2, 0x6, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnltps, 2, 0xc2, 0x5, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnltps, 2, 0xfc2, 0x5, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnltss, 2, 0xf3c2, 0x5, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnltss, 2, 0xf30fc2, 0x5, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpordps, 2, 0xc2, 0x7, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpordps, 2, 0xfc2, 0x7, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpordss, 2, 0xf3c2, 0x7, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpordss, 2, 0xf30fc2, 0x7, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpunordps, 2, 0xc2, 0x3, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpunordps, 2, 0xfc2, 0x3, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpunordss, 2, 0xf3c2, 0x3, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpunordss, 2, 0xf30fc2, 0x3, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpps, 3, 0xc2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpps, 3, 0xfc2, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpss, 3, 0xf3c2, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpss, 3, 0xf30fc2, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-comiss, 2, 0x2f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-comiss, 2, 0xf2f, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtpi2ps, 2, 0xf2a, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegXMM }
-cvtps2pi, 2, 0xf2d, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegMMX }
-cvtsi2ss, 2, 0xf32a, None, 1, CpuAVX|CpuNo64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32, RegXMM }
-cvtsi2ss, 2, 0xf32a, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|SSE2AVX, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, RegXMM }
-cvtsi2ss, 2, 0xf30f2a, None, 2, CpuSSE|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32, RegXMM }
-cvtsi2ss, 2, 0xf30f2a, None, 2, CpuSSE|Cpu64, Modrm|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, RegXMM }
-cvtss2si, 2, 0xf32d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, Reg32|Reg64 }
-cvtss2si, 2, 0xf30f2d, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, Reg32|Reg64 }
-cvttps2pi, 2, 0xf2c, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegMMX }
-cvttss2si, 2, 0xf32c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, Reg32|Reg64 }
-cvttss2si, 2, 0xf30f2c, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, Reg32|Reg64 }
-divps, 2, 0x5e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-divps, 2, 0xf5e, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-divss, 2, 0xf35e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-divss, 2, 0xf30f5e, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-ldmxcsr, 1, 0xae, 0x2, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-ldmxcsr, 1, 0xfae, 0x2, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+addps, 2, 0x58, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+addps, 2, 0xf58, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+addss, 2, 0xf358, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+addss, 2, 0xf30f58, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+andnps, 2, 0x55, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+andnps, 2, 0xf55, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+andps, 2, 0x54, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+andps, 2, 0xf54, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpeqps, 2, 0xc2, 0x0, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpeqps, 2, 0xfc2, 0x0, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpeqss, 2, 0xf3c2, 0x0, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpeqss, 2, 0xf30fc2, 0x0, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpleps, 2, 0xc2, 0x2, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpleps, 2, 0xfc2, 0x2, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpless, 2, 0xf3c2, 0x2, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpless, 2, 0xf30fc2, 0x2, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpltps, 2, 0xc2, 0x1, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpltps, 2, 0xfc2, 0x1, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpltss, 2, 0xf3c2, 0x1, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpltss, 2, 0xf30fc2, 0x1, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpneqps, 2, 0xc2, 0x4, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpneqps, 2, 0xfc2, 0x4, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpneqss, 2, 0xf3c2, 0x4, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpneqss, 2, 0xf30fc2, 0x4, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnleps, 2, 0xc2, 0x6, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnleps, 2, 0xfc2, 0x6, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnless, 2, 0xf3c2, 0x6, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnless, 2, 0xf30fc2, 0x6, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnltps, 2, 0xc2, 0x5, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnltps, 2, 0xfc2, 0x5, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnltss, 2, 0xf3c2, 0x5, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnltss, 2, 0xf30fc2, 0x5, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpordps, 2, 0xc2, 0x7, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpordps, 2, 0xfc2, 0x7, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpordss, 2, 0xf3c2, 0x7, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpordss, 2, 0xf30fc2, 0x7, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpunordps, 2, 0xc2, 0x3, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpunordps, 2, 0xfc2, 0x3, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpunordss, 2, 0xf3c2, 0x3, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpunordss, 2, 0xf30fc2, 0x3, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpps, 3, 0xc2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpps, 3, 0xfc2, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpss, 3, 0xf3c2, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpss, 3, 0xf30fc2, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+comiss, 2, 0x2f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+comiss, 2, 0xf2f, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtpi2ps, 2, 0xf2a, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegXMM }
+cvtps2pi, 2, 0xf2d, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegXMM, RegMMX }
+cvtsi2ss, 2, 0xf32a, None, 1, CpuAVX|CpuNo64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Reg32|Dword|Unspecified|BaseIndex, RegXMM }
+cvtsi2ss, 2, 0xf32a, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|SSE2AVX, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, RegXMM }
+cvtsi2ss, 2, 0xf30f2a, None, 2, CpuSSE|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, RegXMM }
+cvtsi2ss, 2, 0xf30f2a, None, 2, CpuSSE|Cpu64, Modrm|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, RegXMM }
+cvtss2si, 2, 0xf32d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 }
+cvtss2si, 2, 0xf30f2d, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword, { Dword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 }
+cvttps2pi, 2, 0xf2c, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegXMM, RegMMX }
+cvttss2si, 2, 0xf32c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 }
+cvttss2si, 2, 0xf30f2c, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword, { Dword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 }
+divps, 2, 0x5e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+divps, 2, 0xf5e, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+divss, 2, 0xf35e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+divss, 2, 0xf30f5e, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+ldmxcsr, 1, 0xae, 0x2, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex }
+ldmxcsr, 1, 0xfae, 0x2, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex }
 maskmovq, 2, 0xff7, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { RegMMX, RegMMX }
-maxps, 2, 0x5f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-maxps, 2, 0xf5f, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-maxss, 2, 0xf35f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-maxss, 2, 0xf30f5f, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-minps, 2, 0x5d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-minps, 2, 0xf5d, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-minss, 2, 0xf35d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-minss, 2, 0xf30f5d, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movaps, 2, 0x28, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movaps, 2, 0x29, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-movaps, 2, 0xf28, None, 2, CpuSSE, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movaps, 2, 0xf29, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
+maxps, 2, 0x5f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+maxps, 2, 0xf5f, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+maxss, 2, 0xf35f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+maxss, 2, 0xf30f5f, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+minps, 2, 0x5d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+minps, 2, 0xf5d, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+minss, 2, 0xf35d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+minss, 2, 0xf30f5d, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movaps, 2, 0x28, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movaps, 2, 0x29, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM }
+movaps, 2, 0xf28, None, 2, CpuSSE, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movaps, 2, 0xf29, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM }
 movhlps, 2, 0x12, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, RegXMM }
 movhlps, 2, 0xf12, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
-movhps, 2, 0x16, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-movhps, 2, 0x17, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movhps, 2, 0xf16, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-movhps, 2, 0xf17, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+movhps, 2, 0x16, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM }
+movhps, 2, 0x17, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex }
+movhps, 2, 0xf16, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM }
+movhps, 2, 0xf17, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
 movlhps, 2, 0x16, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, RegXMM }
 movlhps, 2, 0xf16, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
-movlps, 2, 0x12, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-movlps, 2, 0x13, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movlps, 2, 0xf12, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-movlps, 2, 0xf13, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+movlps, 2, 0x12, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM }
+movlps, 2, 0x13, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex }
+movlps, 2, 0xf12, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM }
+movlps, 2, 0xf13, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
 movmskps, 2, 0x50, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64|SSE2AVX, { RegXMM, Reg32|Reg64 }
 movmskps, 2, 0xf50, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { RegXMM, Reg32|Reg64 }
-movntps, 2, 0x2b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movntps, 2, 0xf2b, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movntq, 2, 0xfe7, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { RegMMX, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movntdq, 2, 0x66e7, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movntdq, 2, 0x660fe7, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movss, 2, 0xf311, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movss, 2, 0xf310, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
+movntps, 2, 0x2b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex }
+movntps, 2, 0xf2b, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex }
+movntq, 2, 0xfe7, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { RegMMX, Qword|Unspecified|BaseIndex }
+movntdq, 2, 0x66e7, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex }
+movntdq, 2, 0x660fe7, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex }
+movss, 2, 0xf311, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Dword|Unspecified|BaseIndex }
+movss, 2, 0xf310, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex, RegXMM }
 movss, 2, 0xf310, None, 1, CpuAVX, Load|Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, RegXMM }
 movss, 2, 0xf311, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, RegXMM|RegMem }
-movss, 2, 0xf30f10, None, 2, CpuSSE, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movss, 2, 0xf30f11, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-movups, 2, 0x10, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movups, 2, 0x11, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-movups, 2, 0xf10, None, 2, CpuSSE, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movups, 2, 0xf11, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-mulps, 2, 0x59, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-mulps, 2, 0xf59, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-mulss, 2, 0xf359, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-mulss, 2, 0xf30f59, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-orps, 2, 0x56, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-orps, 2, 0xf56, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pavgb, 2, 0xfe0, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pavgb, 2, 0x66e0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pavgb, 2, 0x660fe0, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pavgw, 2, 0xfe3, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pavgw, 2, 0x66e3, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pavgw, 2, 0x660fe3, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+movss, 2, 0xf30f10, None, 2, CpuSSE, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movss, 2, 0xf30f11, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex|RegXMM }
+movups, 2, 0x10, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movups, 2, 0x11, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM }
+movups, 2, 0xf10, None, 2, CpuSSE, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movups, 2, 0xf11, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM }
+mulps, 2, 0x59, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+mulps, 2, 0xf59, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+mulss, 2, 0xf359, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+mulss, 2, 0xf30f59, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+orps, 2, 0x56, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+orps, 2, 0xf56, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pavgb, 2, 0xfe0, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pavgb, 2, 0x66e0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pavgb, 2, 0x660fe0, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pavgw, 2, 0xfe3, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pavgw, 2, 0x66e3, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pavgw, 2, 0x660fe3, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 pextrw, 3, 0x66c5, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64|SSE2AVX, { Imm8, RegXMM, Reg32|Reg64 }
-pextrw, 3, 0x6615, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Imm8, RegXMM, Reg32|Reg64|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+pextrw, 3, 0x6615, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Imm8, RegXMM, Reg32|Reg64|RegMem }
+pextrw, 3, 0x6615, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM, Word|Unspecified|BaseIndex }
 pextrw, 3, 0x660fc5, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64 }
-pextrw, 3, 0x660f3a15, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+pextrw, 3, 0x660f3a15, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64|RegMem }
+pextrw, 3, 0x660f3a15, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Word|Unspecified|BaseIndex }
 pextrw, 3, 0xfc5, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64|NoAVX, { Imm8, RegMMX, Reg32|Reg64 }
-pinsrw, 3, 0x66c4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64|SSE2AVX, { Imm8, Reg32|Reg64|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-pinsrw, 3, 0x660fc4, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { Imm8, Reg32|Reg64|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-pinsrw, 3, 0xfc4, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64|NoAVX, { Imm8, Reg32|Reg64|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegMMX }
-pmaxsw, 2, 0x66ee, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaxsw, 2, 0x660fee, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaxsw, 2, 0xfee, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pmaxub, 2, 0x66de, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaxub, 2, 0x660fde, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaxub, 2, 0xfde, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pminsw, 2, 0x66ea, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pminsw, 2, 0x660fea, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pminsw, 2, 0xfea, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pminub, 2, 0x66da, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pminub, 2, 0x660fda, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pminub, 2, 0xfda, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
+pinsrw, 3, 0x66c4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64|SSE2AVX, { Imm8, Reg32|Reg64, RegXMM }
+pinsrw, 3, 0x66c4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|SSE2AVX, { Imm8, Word|Unspecified|BaseIndex, RegXMM }
+pinsrw, 3, 0x660fc4, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { Imm8, Reg32|Reg64, RegXMM }
+pinsrw, 3, 0x660fc4, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Word|Unspecified|BaseIndex, RegXMM }
+pinsrw, 3, 0xfc4, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64|NoAVX, { Imm8, Reg32|Reg64, RegMMX }
+pinsrw, 3, 0xfc4, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoAVX, { Imm8, Word|Unspecified|BaseIndex, RegMMX }
+pmaxsw, 2, 0x66ee, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaxsw, 2, 0x660fee, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaxsw, 2, 0xfee, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pmaxub, 2, 0x66de, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaxub, 2, 0x660fde, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaxub, 2, 0xfde, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pminsw, 2, 0x66ea, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pminsw, 2, 0x660fea, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pminsw, 2, 0xfea, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pminub, 2, 0x66da, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pminub, 2, 0x660fda, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pminub, 2, 0xfda, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
 pmovmskb, 2, 0x66d7, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64|SSE2AVX, { RegXMM, Reg32|Reg64 }
 pmovmskb, 2, 0x660fd7, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { RegXMM, Reg32|Reg64 }
 pmovmskb, 2, 0xfd7, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64|NoAVX, { RegMMX, Reg32|Reg64 }
-pmulhuw, 2, 0x66e4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmulhuw, 2, 0x660fe4, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmulhuw, 2, 0xfe4, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-prefetchnta, 1, 0xf18, 0x0, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Anysize|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-prefetcht0, 1, 0xf18, 0x1, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Anysize|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-prefetcht1, 1, 0xf18, 0x2, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Anysize|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-prefetcht2, 1, 0xf18, 0x3, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Anysize|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-psadbw, 2, 0xff6, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-psadbw, 2, 0x66f6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psadbw, 2, 0x660ff6, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pshufw, 3, 0xf70, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Imm8, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-rcpps, 2, 0x53, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-rcpps, 2, 0xf53, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-rcpss, 2, 0xf353, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-rcpss, 2, 0xf30f53, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-rsqrtps, 2, 0x52, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-rsqrtps, 2, 0xf52, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-rsqrtss, 2, 0xf352, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-rsqrtss, 2, 0xf30f52, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+pmulhuw, 2, 0x66e4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmulhuw, 2, 0x660fe4, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmulhuw, 2, 0xfe4, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+prefetchnta, 1, 0xf18, 0x0, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Anysize|BaseIndex }
+prefetcht0, 1, 0xf18, 0x1, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Anysize|BaseIndex }
+prefetcht1, 1, 0xf18, 0x2, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Anysize|BaseIndex }
+prefetcht2, 1, 0xf18, 0x3, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Anysize|BaseIndex }
+psadbw, 2, 0xff6, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+psadbw, 2, 0x66f6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psadbw, 2, 0x660ff6, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pshufw, 3, 0xf70, None, 2, CpuSSE|Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Imm8, Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+rcpps, 2, 0x53, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+rcpps, 2, 0xf53, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+rcpss, 2, 0xf353, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+rcpss, 2, 0xf30f53, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+rsqrtps, 2, 0x52, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+rsqrtps, 2, 0xf52, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+rsqrtss, 2, 0xf352, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+rsqrtss, 2, 0xf30f52, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
 sfence, 0, 0xfae, 0xf8, 2, CpuSSE|Cpu3dnowA, IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|NoAVX, { 0 }
-shufps, 3, 0xc6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-shufps, 3, 0xfc6, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-sqrtps, 2, 0x51, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-sqrtps, 2, 0xf51, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-sqrtss, 2, 0xf351, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-sqrtss, 2, 0xf30f51, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-stmxcsr, 1, 0xae, 0x3, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-stmxcsr, 1, 0xfae, 0x3, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-subps, 2, 0x5c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-subps, 2, 0xf5c, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-subss, 2, 0xf35c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-subss, 2, 0xf30f5c, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-ucomiss, 2, 0x2e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-ucomiss, 2, 0xf2e, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-unpckhps, 2, 0x15, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-unpckhps, 2, 0xf15, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-unpcklps, 2, 0x14, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-unpcklps, 2, 0xf14, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-xorps, 2, 0x57, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-xorps, 2, 0xf57, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+shufps, 3, 0xc6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+shufps, 3, 0xfc6, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+sqrtps, 2, 0x51, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+sqrtps, 2, 0xf51, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+sqrtss, 2, 0xf351, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+sqrtss, 2, 0xf30f51, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+stmxcsr, 1, 0xae, 0x3, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex }
+stmxcsr, 1, 0xfae, 0x3, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex }
+subps, 2, 0x5c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+subps, 2, 0xf5c, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+subss, 2, 0xf35c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+subss, 2, 0xf30f5c, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+ucomiss, 2, 0x2e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+ucomiss, 2, 0xf2e, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+unpckhps, 2, 0x15, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+unpckhps, 2, 0xf15, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+unpcklps, 2, 0x14, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+unpcklps, 2, 0xf14, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+xorps, 2, 0x57, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+xorps, 2, 0xf57, None, 2, CpuSSE, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 
 // SSE2 instructions.
 
-addpd, 2, 0x6658, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-addpd, 2, 0x660f58, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-addsd, 2, 0xf258, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-addsd, 2, 0xf20f58, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-andnpd, 2, 0x6655, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-andnpd, 2, 0x660f55, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-andpd, 2, 0x6654, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-andpd, 2, 0x660f54, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpeqpd, 2, 0x66c2, 0x0, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpeqpd, 2, 0x660fc2, 0x0, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpeqsd, 2, 0xf2c2, 0x0, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpeqsd, 2, 0xf20fc2, 0x0, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmplepd, 2, 0x66c2, 0x2, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmplepd, 2, 0x660fc2, 0x2, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmplesd, 2, 0xf2c2, 0x2, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmplesd, 2, 0xf20fc2, 0x2, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpltpd, 2, 0x66c2, 0x1, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpltpd, 2, 0x660fc2, 0x1, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpltsd, 2, 0xf2c2, 0x1, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpltsd, 2, 0xf20fc2, 0x1, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpneqpd, 2, 0x66c2, 0x4, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpneqpd, 2, 0x660fc2, 0x4, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpneqsd, 2, 0xf2c2, 0x4, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpneqsd, 2, 0xf20fc2, 0x4, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnlepd, 2, 0x66c2, 0x6, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnlepd, 2, 0x660fc2, 0x6, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnlesd, 2, 0xf2c2, 0x6, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnlesd, 2, 0xf20fc2, 0x6, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnltpd, 2, 0x66c2, 0x5, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnltpd, 2, 0x660fc2, 0x5, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnltsd, 2, 0xf2c2, 0x5, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpnltsd, 2, 0xf20fc2, 0x5, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpordpd, 2, 0x66c2, 0x7, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpordpd, 2, 0x660fc2, 0x7, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpordsd, 2, 0xf2c2, 0x7, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpordsd, 2, 0xf20fc2, 0x7, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpunordpd, 2, 0x66c2, 0x3, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpunordpd, 2, 0x660fc2, 0x3, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpunordsd, 2, 0xf2c2, 0x3, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpunordsd, 2, 0xf20fc2, 0x3, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmppd, 3, 0x66c2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmppd, 3, 0x660fc2, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+addpd, 2, 0x6658, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+addpd, 2, 0x660f58, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+addsd, 2, 0xf258, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+addsd, 2, 0xf20f58, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+andnpd, 2, 0x6655, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+andnpd, 2, 0x660f55, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+andpd, 2, 0x6654, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+andpd, 2, 0x660f54, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpeqpd, 2, 0x66c2, 0x0, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpeqpd, 2, 0x660fc2, 0x0, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpeqsd, 2, 0xf2c2, 0x0, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpeqsd, 2, 0xf20fc2, 0x0, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmplepd, 2, 0x66c2, 0x2, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmplepd, 2, 0x660fc2, 0x2, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmplesd, 2, 0xf2c2, 0x2, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmplesd, 2, 0xf20fc2, 0x2, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpltpd, 2, 0x66c2, 0x1, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpltpd, 2, 0x660fc2, 0x1, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpltsd, 2, 0xf2c2, 0x1, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpltsd, 2, 0xf20fc2, 0x1, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpneqpd, 2, 0x66c2, 0x4, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpneqpd, 2, 0x660fc2, 0x4, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpneqsd, 2, 0xf2c2, 0x4, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpneqsd, 2, 0xf20fc2, 0x4, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnlepd, 2, 0x66c2, 0x6, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnlepd, 2, 0x660fc2, 0x6, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnlesd, 2, 0xf2c2, 0x6, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnlesd, 2, 0xf20fc2, 0x6, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnltpd, 2, 0x66c2, 0x5, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnltpd, 2, 0x660fc2, 0x5, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnltsd, 2, 0xf2c2, 0x5, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpnltsd, 2, 0xf20fc2, 0x5, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpordpd, 2, 0x66c2, 0x7, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpordpd, 2, 0x660fc2, 0x7, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpordsd, 2, 0xf2c2, 0x7, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpordsd, 2, 0xf20fc2, 0x7, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpunordpd, 2, 0x66c2, 0x3, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpunordpd, 2, 0x660fc2, 0x3, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpunordsd, 2, 0xf2c2, 0x3, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpunordsd, 2, 0xf20fc2, 0x3, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmppd, 3, 0x66c2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmppd, 3, 0x660fc2, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 // Intel mode string compare.
 cmpsd, 0, 0xa7, None, 1, 0, Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-cmpsd, 2, 0xa7, None, 1, 0, Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg }
-cmpsd, 3, 0xf2c2, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpsd, 3, 0xf20fc2, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-comisd, 2, 0x662f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-comisd, 2, 0x660f2f, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtpi2pd, 2, 0x660f2a, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegXMM }
-cvtsi2sd, 2, 0xf22a, None, 1, CpuAVX|CpuNo64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32, RegXMM }
-cvtsi2sd, 2, 0xf22a, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|SSE2AVX, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, RegXMM }
-cvtsi2sd, 2, 0xf20f2a, None, 2, CpuSSE2|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32, RegXMM }
-cvtsi2sd, 2, 0xf20f2a, None, 2, CpuSSE2|Cpu64, Modrm|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, RegXMM }
-divpd, 2, 0x665e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-divpd, 2, 0x660f5e, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-divsd, 2, 0xf25e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-divsd, 2, 0xf20f5e, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-maxpd, 2, 0x665f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-maxpd, 2, 0x660f5f, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-maxsd, 2, 0xf25f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-maxsd, 2, 0xf20f5f, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-minpd, 2, 0x665d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-minpd, 2, 0x660f5d, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-minsd, 2, 0xf25d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-minsd, 2, 0xf20f5d, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movapd, 2, 0x6628, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movapd, 2, 0x6629, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-movapd, 2, 0x660f28, None, 2, CpuSSE2, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movapd, 2, 0x660f29, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-movhpd, 2, 0x6616, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-movhpd, 2, 0x6617, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movhpd, 2, 0x660f16, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-movhpd, 2, 0x660f17, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movlpd, 2, 0x6612, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-movlpd, 2, 0x6613, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movlpd, 2, 0x660f12, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-movlpd, 2, 0x660f13, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+cmpsd, 2, 0xa7, None, 1, 0, Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { Unspecified|BaseIndex, Unspecified|BaseIndex|EsSeg }
+cmpsd, 3, 0xf2c2, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpsd, 3, 0xf20fc2, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+comisd, 2, 0x662f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+comisd, 2, 0x660f2f, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtpi2pd, 2, 0x660f2a, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegXMM }
+cvtsi2sd, 2, 0xf22a, None, 1, CpuAVX|CpuNo64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Reg32|Dword|Unspecified|BaseIndex, RegXMM }
+cvtsi2sd, 2, 0xf22a, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|SSE2AVX, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, RegXMM }
+cvtsi2sd, 2, 0xf20f2a, None, 2, CpuSSE2|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, RegXMM }
+cvtsi2sd, 2, 0xf20f2a, None, 2, CpuSSE2|Cpu64, Modrm|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, RegXMM }
+divpd, 2, 0x665e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+divpd, 2, 0x660f5e, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+divsd, 2, 0xf25e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+divsd, 2, 0xf20f5e, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+maxpd, 2, 0x665f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+maxpd, 2, 0x660f5f, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+maxsd, 2, 0xf25f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+maxsd, 2, 0xf20f5f, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+minpd, 2, 0x665d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+minpd, 2, 0x660f5d, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+minsd, 2, 0xf25d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+minsd, 2, 0xf20f5d, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movapd, 2, 0x6628, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movapd, 2, 0x6629, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM }
+movapd, 2, 0x660f28, None, 2, CpuSSE2, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movapd, 2, 0x660f29, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM }
+movhpd, 2, 0x6616, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM }
+movhpd, 2, 0x6617, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex }
+movhpd, 2, 0x660f16, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM }
+movhpd, 2, 0x660f17, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+movlpd, 2, 0x6612, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM }
+movlpd, 2, 0x6613, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex }
+movlpd, 2, 0x660f12, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM }
+movlpd, 2, 0x660f13, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
 movmskpd, 2, 0x6650, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64|SSE2AVX, { RegXMM, Reg32|Reg64 }
 movmskpd, 2, 0x660f50, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { RegXMM, Reg32|Reg64 }
-movntpd, 2, 0x662b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movntpd, 2, 0x660f2b, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+movntpd, 2, 0x662b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex }
+movntpd, 2, 0x660f2b, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex }
 // Intel mode string move.
 movsd, 0, 0xa5, None, 1, 0, Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-movsd, 2, 0xa5, None, 1, 0, Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|EsSeg }
-movsd, 2, 0xf211, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movsd, 2, 0xf210, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
+movsd, 2, 0xa5, None, 1, 0, Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { Unspecified|BaseIndex, Unspecified|BaseIndex|EsSeg }
+movsd, 2, 0xf211, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Qword|Unspecified|BaseIndex }
+movsd, 2, 0xf210, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM }
 movsd, 2, 0xf210, None, 1, CpuAVX, Load|Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, RegXMM }
 movsd, 2, 0xf211, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, RegXMM|Regmem }
-movsd, 2, 0xf20f10, None, 2, CpuSSE2, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movsd, 2, 0xf20f11, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-movupd, 2, 0x6610, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movupd, 2, 0x6611, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-movupd, 2, 0x660f10, None, 2, CpuSSE2, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movupd, 2, 0x660f11, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-mulpd, 2, 0x6659, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-mulpd, 2, 0x660f59, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-mulsd, 2, 0xf259, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-mulsd, 2, 0xf20f59, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-orpd, 2, 0x6656, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-orpd, 2, 0x660f56, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-shufpd, 3, 0x66c6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-shufpd, 3, 0x660fc6, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-sqrtpd, 2, 0x6651, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-sqrtpd, 2, 0x660f51, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-sqrtsd, 2, 0xf251, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-sqrtsd, 2, 0xf20f51, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-subpd, 2, 0x665c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-subpd, 2, 0x660f5c, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-subsd, 2, 0xf25c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-subsd, 2, 0xf20f5c, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-ucomisd, 2, 0x662e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-ucomisd, 2, 0x660f2e, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-unpckhpd, 2, 0x6615, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-unpckhpd, 2, 0x660f15, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-unpcklpd, 2, 0x6614, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-unpcklpd, 2, 0x660f14, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-xorpd, 2, 0x6657, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-xorpd, 2, 0x660f57, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtdq2pd, 2, 0xf3e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtdq2pd, 2, 0xf30fe6, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtpd2dq, 2, 0xf2e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtpd2dq, 2, 0xf20fe6, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtdq2ps, 2, 0x5b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtdq2ps, 2, 0xf5b, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtpd2pi, 2, 0x660f2d, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegMMX }
-cvtpd2ps, 2, 0x665a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtpd2ps, 2, 0x660f5a, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtps2pd, 2, 0x5a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtps2pd, 2, 0xf5a, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtps2dq, 2, 0x665b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtps2dq, 2, 0x660f5b, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtsd2si, 2, 0xf22d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToDword|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, Reg32|Reg64 }
-cvtsd2si, 2, 0xf20f2d, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToDword, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, Reg32|Reg64 }
-cvtsd2ss, 2, 0xf25a, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtsd2ss, 2, 0xf20f5a, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtss2sd, 2, 0xf35a, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvtss2sd, 2, 0xf30f5a, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvttpd2pi, 2, 0x660f2c, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegMMX }
-cvttsd2si, 2, 0xf22c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToDword|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, Reg32|Reg64 }
-cvttsd2si, 2, 0xf20f2c, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToDword, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, Reg32|Reg64 }
-cvttpd2dq, 2, 0x66e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvttpd2dq, 2, 0x660fe6, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvttps2dq, 2, 0xf35b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cvttps2dq, 2, 0xf30f5b, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+movsd, 2, 0xf20f10, None, 2, CpuSSE2, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movsd, 2, 0xf20f11, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|RegXMM }
+movupd, 2, 0x6610, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movupd, 2, 0x6611, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM }
+movupd, 2, 0x660f10, None, 2, CpuSSE2, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movupd, 2, 0x660f11, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM }
+mulpd, 2, 0x6659, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+mulpd, 2, 0x660f59, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+mulsd, 2, 0xf259, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+mulsd, 2, 0xf20f59, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+orpd, 2, 0x6656, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+orpd, 2, 0x660f56, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+shufpd, 3, 0x66c6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+shufpd, 3, 0x660fc6, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+sqrtpd, 2, 0x6651, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+sqrtpd, 2, 0x660f51, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+sqrtsd, 2, 0xf251, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+sqrtsd, 2, 0xf20f51, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+subpd, 2, 0x665c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+subpd, 2, 0x660f5c, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+subsd, 2, 0xf25c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+subsd, 2, 0xf20f5c, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+ucomisd, 2, 0x662e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+ucomisd, 2, 0x660f2e, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+unpckhpd, 2, 0x6615, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+unpckhpd, 2, 0x660f15, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+unpcklpd, 2, 0x6614, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+unpcklpd, 2, 0x660f14, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+xorpd, 2, 0x6657, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+xorpd, 2, 0x660f57, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtdq2pd, 2, 0xf3e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtdq2pd, 2, 0xf30fe6, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtpd2dq, 2, 0xf2e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtpd2dq, 2, 0xf20fe6, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtdq2ps, 2, 0x5b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtdq2ps, 2, 0xf5b, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtpd2pi, 2, 0x660f2d, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegMMX }
+cvtpd2ps, 2, 0x665a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtpd2ps, 2, 0x660f5a, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtps2pd, 2, 0x5a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtps2pd, 2, 0xf5a, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtps2dq, 2, 0x665b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtps2dq, 2, 0x660f5b, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtsd2si, 2, 0xf22d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToDword|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 }
+cvtsd2si, 2, 0xf20f2d, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToDword, { Qword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 }
+cvtsd2ss, 2, 0xf25a, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtsd2ss, 2, 0xf20f5a, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtss2sd, 2, 0xf35a, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvtss2sd, 2, 0xf30f5a, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvttpd2pi, 2, 0x660f2c, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegMMX }
+cvttsd2si, 2, 0xf22c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToDword|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 }
+cvttsd2si, 2, 0xf20f2c, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToDword, { Qword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 }
+cvttpd2dq, 2, 0x66e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvttpd2dq, 2, 0x660fe6, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvttps2dq, 2, 0xf35b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cvttps2dq, 2, 0xf30f5b, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 maskmovdqu, 2, 0x66f7, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, RegXMM }
 maskmovdqu, 2, 0x660ff7, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
-movdqa, 2, 0x666f, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movdqa, 2, 0x667f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-movdqa, 2, 0x660f6f, None, 2, CpuSSE2, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movdqa, 2, 0x660f7f, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-movdqu, 2, 0xf36f, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movdqu, 2, 0xf37f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-movdqu, 2, 0xf30f6f, None, 2, CpuSSE2, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movdqu, 2, 0xf30f7f, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
+movdqa, 2, 0x666f, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movdqa, 2, 0x667f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM }
+movdqa, 2, 0x660f6f, None, 2, CpuSSE2, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movdqa, 2, 0x660f7f, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM }
+movdqu, 2, 0xf36f, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movdqu, 2, 0xf37f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM }
+movdqu, 2, 0xf30f6f, None, 2, CpuSSE2, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movdqu, 2, 0xf30f7f, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM }
 movdq2q, 2, 0xf20fd6, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { RegXMM, RegMMX }
 movq2dq, 2, 0xf30fd6, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { RegMMX, RegXMM }
-pmuludq, 2, 0x66f4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmuludq, 2, 0x660ff4, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmuludq, 2, 0xff4, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pshufd, 3, 0x6670, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pshufd, 3, 0x660f70, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pshufhw, 3, 0xf370, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pshufhw, 3, 0xf30f70, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pshuflw, 3, 0xf270, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pshuflw, 3, 0xf20f70, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+pmuludq, 2, 0x66f4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmuludq, 2, 0x660ff4, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmuludq, 2, 0xff4, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pshufd, 3, 0x6670, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pshufd, 3, 0x660f70, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pshufhw, 3, 0xf370, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pshufhw, 3, 0xf30f70, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pshuflw, 3, 0xf270, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pshuflw, 3, 0xf20f70, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 pslldq, 2, 0x6673, 0x7, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM }
 pslldq, 2, 0x660f73, 0x7, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM }
 psrldq, 2, 0x6673, 0x3, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM }
 psrldq, 2, 0x660f73, 0x3, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM }
-punpckhqdq, 2, 0x666d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpckhqdq, 2, 0x660f6d, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpcklqdq, 2, 0x666c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-punpcklqdq, 2, 0x660f6c, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+punpckhqdq, 2, 0x666d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpckhqdq, 2, 0x660f6d, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpcklqdq, 2, 0x666c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+punpcklqdq, 2, 0x660f6c, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 
 // SSE3 instructions.
 
-addsubpd, 2, 0x66d0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-addsubpd, 2, 0x660fd0, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-addsubps, 2, 0xf2d0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-addsubps, 2, 0xf20fd0, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-cmpxchg16b, 1, 0xfc7, 0x1, 2, CpuCX16|Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64|NoAVX|IsLockable, { Oword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
-fisttp, 1, 0xdf, 0x1, 1, CpuFISTTP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf|NoAVX, { Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fisttp, 1, 0xdd, 0x1, 1, CpuFISTTP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-fisttpll, 1, 0xdd, 0x1, 1, CpuFISTTP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-haddpd, 2, 0x667c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-haddpd, 2, 0x660f7c, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-haddps, 2, 0xf27c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-haddps, 2, 0xf20f7c, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-hsubpd, 2, 0x667d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-hsubpd, 2, 0x660f7d, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-hsubps, 2, 0xf27d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-hsubps, 2, 0xf20f7d, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-lddqu, 2, 0xf2f0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-lddqu, 2, 0xf20ff0, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
+addsubpd, 2, 0x66d0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+addsubpd, 2, 0x660fd0, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+addsubps, 2, 0xf2d0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+addsubps, 2, 0xf20fd0, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+cmpxchg16b, 1, 0xfc7, 0x1, 2, CpuCX16|Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64|NoAVX|IsLockable, { Oword|Unspecified|BaseIndex }
+fisttp, 1, 0xdf, 0x1, 1, CpuFISTTP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf|NoAVX, { Word|Dword|Unspecified|BaseIndex }
+fisttp, 1, 0xdd, 0x1, 1, CpuFISTTP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64|NoAVX, { Qword|Unspecified|BaseIndex }
+fisttpll, 1, 0xdd, 0x1, 1, CpuFISTTP, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex }
+haddpd, 2, 0x667c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+haddpd, 2, 0x660f7c, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+haddps, 2, 0xf27c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+haddps, 2, 0xf20f7c, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+hsubpd, 2, 0x667d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+hsubpd, 2, 0x660f7d, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+hsubps, 2, 0xf27d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+hsubps, 2, 0xf20f7d, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+lddqu, 2, 0xf2f0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex, RegXMM }
+lddqu, 2, 0xf20ff0, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex, RegXMM }
 monitor, 0, 0xf01, 0xc8, 2, CpuSSE3, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|NoAVX, { 0 }
 // monitor is very special. CX and DX are always 64bits with zero upper
 // 32bits in 64bit mode, and 32bits in 16bit and 32bit modes. The
@@ -1536,12 +1543,12 @@ monitor, 0, 0xf01, 0xc8, 2, CpuSSE3, No_
 monitor, 3, 0xf01, 0xc8, 2, CpuSSE3|CpuNo64, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|AddrPrefixOp0|NoAVX, { Reg16|Reg32, Reg32, Reg32 }
 // Need to ensure only "monitor %rax/%eax,%rcx,%rdx" is accepted.
 monitor, 3, 0xf01, 0xc8, 2, CpuSSE3|Cpu64, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|AddrPrefixOp0|NoRex64|NoAVX, { Reg32|Reg64, Reg64, Reg64 }
-movddup, 2, 0xf212, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movddup, 2, 0xf20f12, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movshdup, 2, 0xf316, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movshdup, 2, 0xf30f16, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movsldup, 2, 0xf312, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movsldup, 2, 0xf30f12, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+movddup, 2, 0xf212, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movddup, 2, 0xf20f12, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movshdup, 2, 0xf316, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movshdup, 2, 0xf30f16, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movsldup, 2, 0xf312, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movsldup, 2, 0xf30f12, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 mwait, 0, 0xf01, 0xc9, 2, CpuSSE3, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|NoAVX, { 0 }
 // mwait is very special. AX and CX are always 64bits with zero upper
 // 32bits in 64bit mode, and 32bits in 16bit and 32bit modes.
@@ -1553,17 +1560,17 @@ mwait, 2, 0xf01, 0xc9, 2, CpuSSE3|Cpu64,
 // VMX instructions.
 
 vmcall, 0, 0xf01, 0xc1, 2, CpuVMX, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { 0 }
-vmclear, 1, 0x660fc7, 0x6, 2, CpuVMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+vmclear, 1, 0x660fc7, 0x6, 2, CpuVMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex }
 vmlaunch, 0, 0xf01, 0xc2, 2, CpuVMX, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { 0 }
 vmresume, 0, 0xf01, 0xc3, 2, CpuVMX, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { 0 }
-vmptrld, 1, 0xfc7, 0x6, 2, CpuVMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmptrst, 1, 0xfc7, 0x7, 2, CpuVMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmread, 2, 0xf78, None, 2, CpuVMX|CpuNo64, Modrm|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32, Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32 }
-vmread, 2, 0xf78, None, 2, CpuVMX|Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg64, Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
-vmwrite, 2, 0xf79, None, 2, CpuVMX|CpuNo64, Modrm|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32, Reg32 }
-vmwrite, 2, 0xf79, None, 2, CpuVMX|Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, Reg64 }
+vmptrld, 1, 0xfc7, 0x6, 2, CpuVMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex }
+vmptrst, 1, 0xfc7, 0x7, 2, CpuVMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex }
+vmread, 2, 0xf78, None, 2, CpuVMX|CpuNo64, Modrm|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32, Reg32|Dword|Unspecified|BaseIndex }
+vmread, 2, 0xf78, None, 2, CpuVMX|Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg64, Reg64|Qword|Unspecified|BaseIndex }
+vmwrite, 2, 0xf79, None, 2, CpuVMX|CpuNo64, Modrm|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, Reg32 }
+vmwrite, 2, 0xf79, None, 2, CpuVMX|Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg64|Qword|Unspecified|BaseIndex, Reg64 }
 vmxoff, 0, 0xf01, 0xc4, 2, CpuVMX, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { 0 }
-vmxon, 1, 0xf30fc7, 0x6, 2, CpuVMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+vmxon, 1, 0xf30fc7, 0x6, 2, CpuVMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex }
 
 // VMFUNC instruction
 
@@ -1575,1020 +1582,894 @@ getsec, 0, 0xf37, None, 2, CpuSMX, No_bS
 
 // EPT instructions.
 
-invept, 2, 0x660f3880, None, 3, CpuEPT|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_qSuf|No_sSuf|No_ldSuf, { Oword|Unspecified|BaseIndex|Disp8|Disp16|Disp32, Reg32 }
-invept, 2, 0x660f3880, None, 3, CpuEPT|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_qSuf|No_sSuf|No_ldSuf|NoRex64, { Oword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, Reg64 }
-invvpid, 2, 0x660f3881, None, 3, CpuEPT|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_qSuf|No_sSuf|No_ldSuf, { Oword|Unspecified|BaseIndex|Disp8|Disp16|Disp32, Reg32 }
-invvpid, 2, 0x660f3881, None, 3, CpuEPT|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_qSuf|No_sSuf|No_ldSuf|NoRex64, { Oword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, Reg64 }
+invept, 2, 0x660f3880, None, 3, CpuEPT|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_qSuf|No_sSuf|No_ldSuf, { Oword|Unspecified|BaseIndex, Reg32 }
+invept, 2, 0x660f3880, None, 3, CpuEPT|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_qSuf|No_sSuf|No_ldSuf|NoRex64, { Oword|Unspecified|BaseIndex, Reg64 }
+invvpid, 2, 0x660f3881, None, 3, CpuEPT|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_qSuf|No_sSuf|No_ldSuf, { Oword|Unspecified|BaseIndex, Reg32 }
+invvpid, 2, 0x660f3881, None, 3, CpuEPT|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_qSuf|No_sSuf|No_ldSuf|NoRex64, { Oword|Unspecified|BaseIndex, Reg64 }
 
 // INVPCID instruction
 
-invpcid, 2, 0x660f3882, None, 3, CpuINVPCID|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_qSuf|No_sSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32, Reg32 }
-invpcid, 2, 0x660f3882, None, 3, CpuINVPCID|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_qSuf|No_sSuf|No_ldSuf|NoRex64, { Unspecified|BaseIndex|Disp8|Disp32|Disp32S, Reg64 }
+invpcid, 2, 0x660f3882, None, 3, CpuINVPCID|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_qSuf|No_sSuf|No_ldSuf, { Unspecified|BaseIndex, Reg32 }
+invpcid, 2, 0x660f3882, None, 3, CpuINVPCID|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_qSuf|No_sSuf|No_ldSuf|NoRex64, { Unspecified|BaseIndex, Reg64 }
 
 // SSSE3 instructions.
 
-phaddw, 2, 0x6601, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-phaddw, 2, 0x660f3801, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-phaddw, 2, 0xf3801, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-phaddd, 2, 0x6602, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-phaddd, 2, 0x660f3802, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-phaddd, 2, 0xf3802, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-phaddsw, 2, 0x6603, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-phaddsw, 2, 0x660f3803, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-phaddsw, 2, 0xf3803, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-phsubw, 2, 0x6605, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-phsubw, 2, 0x660f3805, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-phsubw, 2, 0xf3805, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-phsubd, 2, 0x6606, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-phsubd, 2, 0x660f3806, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-phsubd, 2, 0xf3806, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-phsubsw, 2, 0x6607, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-phsubsw, 2, 0x660f3807, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-phsubsw, 2, 0xf3807, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pmaddubsw, 2, 0x6604, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaddubsw, 2, 0x660f3804, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaddubsw, 2, 0xf3804, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pmulhrsw, 2, 0x660b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmulhrsw, 2, 0x660f380b, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmulhrsw, 2, 0xf380b, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pshufb, 2, 0x6600, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pshufb, 2, 0x660f3800, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pshufb, 2, 0xf3800, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-psignb, 2, 0x6608, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psignb, 2, 0x660f3808, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psignb, 2, 0xf3808, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-psignw, 2, 0x6609, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psignw, 2, 0x660f3809, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psignw, 2, 0xf3809, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-psignd, 2, 0x660a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psignd, 2, 0x660f380a, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-psignd, 2, 0xf380a, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-palignr, 3, 0x660f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-palignr, 3, 0x660f3a0f, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-palignr, 3, 0xf3a0f, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Imm8, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pabsb, 2, 0x661c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pabsb, 2, 0x660f381c, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pabsb, 2, 0xf381c, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pabsw, 2, 0x661d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pabsw, 2, 0x660f381d, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pabsw, 2, 0xf381d, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pabsd, 2, 0x661e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pabsd, 2, 0x660f381e, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pabsd, 2, 0xf381e, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
+phaddw, 2, 0x6601, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+phaddw, 2, 0x660f3801, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+phaddw, 2, 0xf3801, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+phaddd, 2, 0x6602, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+phaddd, 2, 0x660f3802, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+phaddd, 2, 0xf3802, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+phaddsw, 2, 0x6603, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+phaddsw, 2, 0x660f3803, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+phaddsw, 2, 0xf3803, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+phsubw, 2, 0x6605, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+phsubw, 2, 0x660f3805, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+phsubw, 2, 0xf3805, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+phsubd, 2, 0x6606, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+phsubd, 2, 0x660f3806, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+phsubd, 2, 0xf3806, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+phsubsw, 2, 0x6607, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+phsubsw, 2, 0x660f3807, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+phsubsw, 2, 0xf3807, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pmaddubsw, 2, 0x6604, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaddubsw, 2, 0x660f3804, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaddubsw, 2, 0xf3804, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pmulhrsw, 2, 0x660b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmulhrsw, 2, 0x660f380b, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmulhrsw, 2, 0xf380b, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pshufb, 2, 0x6600, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pshufb, 2, 0x660f3800, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pshufb, 2, 0xf3800, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+psignb, 2, 0x6608, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psignb, 2, 0x660f3808, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psignb, 2, 0xf3808, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+psignw, 2, 0x6609, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psignw, 2, 0x660f3809, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psignw, 2, 0xf3809, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+psignd, 2, 0x660a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psignd, 2, 0x660f380a, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+psignd, 2, 0xf380a, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+palignr, 3, 0x660f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+palignr, 3, 0x660f3a0f, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+palignr, 3, 0xf3a0f, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Imm8, Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pabsb, 2, 0x661c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pabsb, 2, 0x660f381c, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pabsb, 2, 0xf381c, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pabsw, 2, 0x661d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pabsw, 2, 0x660f381d, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pabsw, 2, 0xf381d, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pabsd, 2, 0x661e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pabsd, 2, 0x660f381e, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pabsd, 2, 0xf381e, None, 3, CpuSSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
 
 // SSE4.1 instructions.
 
-blendpd, 3, 0x660d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-blendpd, 3, 0x660f3a0d, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-blendps, 3, 0x660c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-blendps, 3, 0x660f3a0c, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-blendvpd, 3, 0x664b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FirstXmm0|VexImmExt|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-blendvpd, 2, 0x664b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Implicit1stXmm0|VexImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-blendvpd, 3, 0x660f3815, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FirstXmm0, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-blendvpd, 2, 0x660f3815, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-blendvps, 3, 0x664a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FirstXmm0|VexImmExt|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-blendvps, 2, 0x664a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Implicit1stXmm0|VexImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-blendvps, 3, 0x660f3814, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FirstXmm0, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-blendvps, 2, 0x660f3814, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-dppd, 3, 0x6641, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-dppd, 3, 0x660f3a41, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-dpps, 3, 0x6640, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-dpps, 3, 0x660f3a40, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-extractps, 3, 0x6617, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Imm8, RegXMM, Reg32|Reg64|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-extractps, 3, 0x660f3a17, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-insertps, 3, 0x6621, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-insertps, 3, 0x660f3a21, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-movntdqa, 2, 0x662a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-movntdqa, 2, 0x660f382a, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-mpsadbw, 3, 0x6642, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-mpsadbw, 3, 0x660f3a42, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-packusdw, 2, 0x662b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-packusdw, 2, 0x660f382b, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pblendvb, 3, 0x664c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FirstXmm0|VexImmExt|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pblendvb, 2, 0x664c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Implicit1stXmm0|VexImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pblendvb, 3, 0x660f3810, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FirstXmm0, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pblendvb, 2, 0x660f3810, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pblendw, 3, 0x660e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pblendw, 3, 0x660f3a0e, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpeqq, 2, 0x6629, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpeqq, 2, 0x660f3829, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pextrb, 3, 0x6614, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Imm8, RegXMM, Reg32|Reg64|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-pextrb, 3, 0x660f3a14, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-pextrd, 3, 0x6616, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-pextrd, 3, 0x660f3a16, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-pextrq, 3, 0x6616, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM, Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
-pextrq, 3, 0x660f3a16, None, 3, CpuSSE4_1|Cpu64, Modrm|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
-phminposuw, 2, 0x6641, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-phminposuw, 2, 0x660f3841, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pinsrb, 3, 0x6620, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Imm8, Reg32|Reg64|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-pinsrb, 3, 0x660f3a20, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, Reg32|Reg64|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-pinsrd, 3, 0x6622, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-pinsrd, 3, 0x660f3a22, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-pinsrq, 3, 0x6622, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|Size64|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, RegXMM }
-pinsrq, 3, 0x660f3a22, None, 3, CpuSSE4_1|Cpu64, Modrm|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, RegXMM }
-pmaxsb, 2, 0x663c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaxsb, 2, 0x660f383c, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaxsd, 2, 0x663d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaxsd, 2, 0x660f383d, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaxud, 2, 0x663f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaxud, 2, 0x660f383f, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaxuw, 2, 0x663e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmaxuw, 2, 0x660f383e, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pminsb, 2, 0x6638, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pminsb, 2, 0x660f3838, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pminsd, 2, 0x6639, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pminsd, 2, 0x660f3839, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pminud, 2, 0x663b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pminud, 2, 0x660f383b, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pminuw, 2, 0x663a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pminuw, 2, 0x660f383a, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovsxbw, 2, 0x6620, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovsxbw, 2, 0x660f3820, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { QWord|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovsxbd, 2, 0x6621, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovsxbd, 2, 0x660f3821, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovsxbq, 2, 0x6622, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovsxbq, 2, 0x660f3822, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovsxwd, 2, 0x6623, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovsxwd, 2, 0x660f3823, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovsxwq, 2, 0x6624, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovsxwq, 2, 0x660f3824, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovsxdq, 2, 0x6625, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovsxdq, 2, 0x660f3825, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { QWord|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovzxbw, 2, 0x6630, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovzxbw, 2, 0x660f3830, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovzxbd, 2, 0x6631, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovzxbd, 2, 0x660f3831, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovzxbq, 2, 0x6632, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovzxbq, 2, 0x660f3832, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovzxwd, 2, 0x6633, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovzxwd, 2, 0x660f3833, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovzxwq, 2, 0x6634, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovzxwq, 2, 0x660f3834, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovzxdq, 2, 0x6635, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmovzxdq, 2, 0x660f3835, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { QWord|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmuldq, 2, 0x6628, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmuldq, 2, 0x660f3828, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmulld, 2, 0x6640, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pmulld, 2, 0x660f3840, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-ptest, 2, 0x6617, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-ptest, 2, 0x660f3817, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-roundpd, 3, 0x6609, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-roundpd, 3, 0x660f3a09, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-roundps, 3, 0x6608, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-roundps, 3, 0x660f3a08, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-roundsd, 3, 0x660b, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Imm8, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-roundsd, 3, 0x660f3a0b, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-roundss, 3, 0x660a, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-roundss, 3, 0x660f3a0a, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+blendpd, 3, 0x660d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+blendpd, 3, 0x660f3a0d, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+blendps, 3, 0x660c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+blendps, 3, 0x660f3a0c, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+blendvpd, 3, 0x664b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt|SSE2AVX, { Acc|Xmmword, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+blendvpd, 2, 0x664b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Implicit1stXmm0|VexImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+blendvpd, 3, 0x660f3815, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Acc|Xmmword, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+blendvpd, 2, 0x660f3815, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+blendvps, 3, 0x664a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt|SSE2AVX, { Acc|Xmmword, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+blendvps, 2, 0x664a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Implicit1stXmm0|VexImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+blendvps, 3, 0x660f3814, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Acc|Xmmword, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+blendvps, 2, 0x660f3814, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+dppd, 3, 0x6641, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+dppd, 3, 0x660f3a41, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+dpps, 3, 0x6640, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+dpps, 3, 0x660f3a40, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+extractps, 3, 0x6617, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex }
+extractps, 3, 0x6617, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Imm8, RegXMM, Reg64|RegMem }
+extractps, 3, 0x660f3a17, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex }
+extractps, 3, 0x660f3a17, None, 3, CpuSSE4_1|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg64|RegMem }
+insertps, 3, 0x6621, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+insertps, 3, 0x660f3a21, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+movntdqa, 2, 0x662a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex, RegXMM }
+movntdqa, 2, 0x660f382a, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex, RegXMM }
+mpsadbw, 3, 0x6642, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+mpsadbw, 3, 0x660f3a42, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+packusdw, 2, 0x662b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+packusdw, 2, 0x660f382b, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pblendvb, 3, 0x664c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt|SSE2AVX, { Acc|Xmmword, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pblendvb, 2, 0x664c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Implicit1stXmm0|VexImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pblendvb, 3, 0x660f3810, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Acc|Xmmword, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pblendvb, 2, 0x660f3810, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pblendw, 3, 0x660e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pblendw, 3, 0x660f3a0e, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpeqq, 2, 0x6629, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpeqq, 2, 0x660f3829, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pextrb, 3, 0x6614, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Imm8, RegXMM, Reg32|Reg64|RegMem }
+pextrb, 3, 0x6614, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM, Byte|Unspecified|BaseIndex }
+pextrb, 3, 0x660f3a14, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64|RegMem }
+pextrb, 3, 0x660f3a14, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Byte|Unspecified|BaseIndex }
+pextrd, 3, 0x6616, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex }
+pextrd, 3, 0x660f3a16, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex }
+pextrq, 3, 0x6616, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM, Reg64|Qword|Unspecified|BaseIndex }
+pextrq, 3, 0x660f3a16, None, 3, CpuSSE4_1|Cpu64, Modrm|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg64|Qword|Unspecified|BaseIndex }
+phminposuw, 2, 0x6641, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+phminposuw, 2, 0x660f3841, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pinsrb, 3, 0x6620, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Imm8, Reg32|Reg64, RegXMM }
+pinsrb, 3, 0x6620, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Byte|Unspecified|BaseIndex, RegXMM }
+pinsrb, 3, 0x660f3a20, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, Reg32|Reg64, RegXMM }
+pinsrb, 3, 0x660f3a20, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Byte|Unspecified|BaseIndex, RegXMM }
+pinsrd, 3, 0x6622, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Reg32|Dword|Unspecified|BaseIndex, RegXMM }
+pinsrd, 3, 0x660f3a22, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg32|Dword|Unspecified|BaseIndex, RegXMM }
+pinsrq, 3, 0x6622, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|Size64|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Reg64|Qword|Unspecified|BaseIndex, RegXMM }
+pinsrq, 3, 0x660f3a22, None, 3, CpuSSE4_1|Cpu64, Modrm|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg64|Qword|Unspecified|BaseIndex, RegXMM }
+pmaxsb, 2, 0x663c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaxsb, 2, 0x660f383c, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaxsd, 2, 0x663d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaxsd, 2, 0x660f383d, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaxud, 2, 0x663f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaxud, 2, 0x660f383f, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaxuw, 2, 0x663e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmaxuw, 2, 0x660f383e, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pminsb, 2, 0x6638, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pminsb, 2, 0x660f3838, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pminsd, 2, 0x6639, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pminsd, 2, 0x660f3839, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pminud, 2, 0x663b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pminud, 2, 0x660f383b, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pminuw, 2, 0x663a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pminuw, 2, 0x660f383a, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovsxbw, 2, 0x6620, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovsxbw, 2, 0x660f3820, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { QWord|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovsxbd, 2, 0x6621, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovsxbd, 2, 0x660f3821, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovsxbq, 2, 0x6622, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Word|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovsxbq, 2, 0x660f3822, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovsxwd, 2, 0x6623, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovsxwd, 2, 0x660f3823, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovsxwq, 2, 0x6624, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovsxwq, 2, 0x660f3824, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovsxdq, 2, 0x6625, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovsxdq, 2, 0x660f3825, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { QWord|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovzxbw, 2, 0x6630, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovzxbw, 2, 0x660f3830, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovzxbd, 2, 0x6631, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovzxbd, 2, 0x660f3831, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovzxbq, 2, 0x6632, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Word|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovzxbq, 2, 0x660f3832, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovzxwd, 2, 0x6633, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovzxwd, 2, 0x660f3833, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovzxwq, 2, 0x6634, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovzxwq, 2, 0x660f3834, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovzxdq, 2, 0x6635, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmovzxdq, 2, 0x660f3835, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { QWord|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmuldq, 2, 0x6628, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmuldq, 2, 0x660f3828, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmulld, 2, 0x6640, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pmulld, 2, 0x660f3840, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+ptest, 2, 0x6617, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+ptest, 2, 0x660f3817, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+roundpd, 3, 0x6609, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+roundpd, 3, 0x660f3a09, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+roundps, 3, 0x6608, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+roundps, 3, 0x660f3a08, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+roundsd, 3, 0x660b, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|SSE2AVX, { Imm8, Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+roundsd, 3, 0x660f3a0b, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+roundss, 3, 0x660a, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+roundss, 3, 0x660f3a0a, None, 3, CpuSSE4_1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
 
 // SSE4.2 instructions.
 
-pcmpgtq, 2, 0x6637, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpgtq, 2, 0x660f3837, None, 3, CpuSSE4_2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpestri, 3, 0x6661, None, 1, CpuAVX|CpuNo64, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpestri, 3, 0x6661, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpestri, 3, 0x660f3a61, None, 3, CpuSSE4_2|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpestri, 3, 0x660f3a61, None, 3, CpuSSE4_2|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpestrm, 3, 0x6660, None, 1, CpuAVX|CpuNo64, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpestrm, 3, 0x6660, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpestrm, 3, 0x660f3a60, None, 3, CpuSSE4_2|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpestrm, 3, 0x660f3a60, None, 3, CpuSSE4_2|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpistri, 3, 0x6663, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpistri, 3, 0x660f3a63, None, 3, CpuSSE4_2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpistrm, 3, 0x6662, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pcmpistrm, 3, 0x660f3a62, None, 3, CpuSSE4_2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+pcmpgtq, 2, 0x6637, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpgtq, 2, 0x660f3837, None, 3, CpuSSE4_2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpestri, 3, 0x6661, None, 1, CpuAVX|CpuNo64, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpestri, 3, 0x6661, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpestri, 3, 0x660f3a61, None, 3, CpuSSE4_2|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpestri, 3, 0x660f3a61, None, 3, CpuSSE4_2|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpestrm, 3, 0x6660, None, 1, CpuAVX|CpuNo64, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpestrm, 3, 0x6660, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpestrm, 3, 0x660f3a60, None, 3, CpuSSE4_2|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpestrm, 3, 0x660f3a60, None, 3, CpuSSE4_2|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpistri, 3, 0x6663, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpistri, 3, 0x660f3a63, None, 3, CpuSSE4_2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpistrm, 3, 0x6662, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pcmpistrm, 3, 0x660f3a62, None, 3, CpuSSE4_2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 // We put non-8bit version before 8bit so that crc32 with memory operand
 // defaults to non-8bit.
-crc32, 2, 0xf20f38f1, None, 3, CpuSSE4_2, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32 }
-crc32, 2, 0xf20f38f1, None, 3, CpuSSE4_2|Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|Rex64|NoAVX, { Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, Reg64 }
-crc32, 2, 0xf20f38f0, None, 3, CpuSSE4_2, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32 }
-crc32, 2, 0xf20f38f0, None, 3, CpuSSE4_2|Cpu64, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64|NoAVX, { Reg8|Byte|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, Reg64 }
+crc32, 2, 0xf20f38f1, None, 3, CpuSSE4_2, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex, Reg32 }
+crc32, 2, 0xf20f38f1, None, 3, CpuSSE4_2|Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|Rex64|NoAVX, { Reg64|Qword|Unspecified|BaseIndex, Reg64 }
+crc32, 2, 0xf20f38f0, None, 3, CpuSSE4_2, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Reg8|Byte|Unspecified|BaseIndex, Reg32 }
+crc32, 2, 0xf20f38f0, None, 3, CpuSSE4_2|Cpu64, Modrm|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64|NoAVX, { Reg8|Byte|Unspecified|BaseIndex, Reg64 }
 
 // xsave/xrstor New Instructions.
 
-xsave, 1, 0xfae, 0x4, 2, CpuXsave, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-xsave64, 1, 0xfae, 0x4, 2, CpuXsave|Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
-xrstor, 1, 0xfae, 0x5, 2, CpuXsave, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-xrstor64, 1, 0xfae, 0x5, 2, CpuXsave|Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
+xsave, 1, 0xfae, 0x4, 2, CpuXsave, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Unspecified|BaseIndex }
+xsave64, 1, 0xfae, 0x4, 2, CpuXsave|Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex }
+xrstor, 1, 0xfae, 0x5, 2, CpuXsave, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Unspecified|BaseIndex }
+xrstor64, 1, 0xfae, 0x5, 2, CpuXsave|Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex }
 xgetbv, 0, 0xf01, 0xd0, 2, CpuXsave, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { 0 }
 xsetbv, 0, 0xf01, 0xd1, 2, CpuXsave, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { 0 }
 
 // xsaveopt
-xsaveopt, 1, 0xfae, 0x6, 2, CpuXsaveopt, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-xsaveopt64, 1, 0xfae, 0x6, 2, CpuXsaveopt|Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
+xsaveopt, 1, 0xfae, 0x6, 2, CpuXsaveopt, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Unspecified|BaseIndex }
+xsaveopt64, 1, 0xfae, 0x6, 2, CpuXsaveopt|Cpu64, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex }
 
 // AES instructions.
 
-aesdec, 2, 0x66de, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-aesdec, 2, 0x660f38de, None, 3, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-aesdeclast, 2, 0x66df, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-aesdeclast, 2, 0x660f38df, None, 3, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-aesenc, 2, 0x66dc, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-aesenc, 2, 0x660f38dc, None, 3, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-aesenclast, 2, 0x66dd, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-aesenclast, 2, 0x660f38dd, None, 3, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-aesimc, 2, 0x66db, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-aesimc, 2, 0x660f38db, None, 3, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-aeskeygenassist, 3, 0x66df, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-aeskeygenassist, 3, 0x660f3adf, None, 3, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+aesdec, 2, 0x66de, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+aesdec, 2, 0x660f38de, None, 3, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+aesdeclast, 2, 0x66df, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+aesdeclast, 2, 0x660f38df, None, 3, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+aesenc, 2, 0x66dc, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+aesenc, 2, 0x660f38dc, None, 3, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+aesenclast, 2, 0x66dd, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+aesenclast, 2, 0x660f38dd, None, 3, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+aesimc, 2, 0x66db, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+aesimc, 2, 0x660f38db, None, 3, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+aeskeygenassist, 3, 0x66df, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+aeskeygenassist, 3, 0x660f3adf, None, 3, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+
+// VAES
+
+vaesdec, 3, 0x66de, None, 1, CpuVAES, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vaesdeclast, 3, 0x66df, None, 1, CpuVAES, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vaesenc, 3, 0x66dc, None, 1, CpuVAES, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vaesenclast, 3, 0x66dd, None, 1, CpuVAES, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
 
 // PCLMUL
 
-pclmulqdq, 3, 0x6644, None, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pclmulqdq, 3, 0x660f3a44, None, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pclmullqlqdq, 2, 0x6644, 0x0, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pclmullqlqdq, 2, 0x660f3a44, 0x0, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pclmulhqlqdq, 2, 0x6644, 0x1, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pclmulhqlqdq, 2, 0x660f3a44, 0x1, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pclmullqhqdq, 2, 0x6644, 0x10, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pclmullqhqdq, 2, 0x660f3a44, 0x10, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pclmulhqhqdq, 2, 0x6644, 0x11, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-pclmulhqhqdq, 2, 0x660f3a44, 0x11, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+pclmulqdq, 3, 0x6644, None, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pclmulqdq, 3, 0x660f3a44, None, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pclmullqlqdq, 2, 0x6644, 0x0, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pclmullqlqdq, 2, 0x660f3a44, 0x0, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pclmulhqlqdq, 2, 0x6644, 0x1, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pclmulhqlqdq, 2, 0x660f3a44, 0x1, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pclmullqhqdq, 2, 0x6644, 0x10, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pclmullqhqdq, 2, 0x660f3a44, 0x10, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pclmulhqhqdq, 2, 0x6644, 0x11, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+pclmulhqhqdq, 2, 0x660f3a44, 0x11, 3, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+
+// GFNI
+
+gf2p8affineqb, 3, 0x66ce, None, 1, CpuAVX|CpuGFNI, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+gf2p8affineqb, 3, 0x660f3ace, None, 3, CpuGFNI, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+gf2p8affineinvqb, 3, 0x66cf, None, 1, CpuAVX|CpuGFNI, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+gf2p8affineinvqb, 3, 0x660f3acf, None, 3, CpuGFNI, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+gf2p8mulb, 2, 0x66cf, None, 1, CpuAVX|CpuGFNI, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+gf2p8mulb, 2, 0x660f38cf, None, 3, CpuGFNI, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 
 // AVX instructions.
 
-vaddpd, 3, 0x6658, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vaddpd, 3, 0x6658, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vaddps, 3, 0x58, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vaddps, 3, 0x58, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vaddsd, 3, 0xf258, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vaddss, 3, 0xf358, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vaddsubpd, 3, 0x66d0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vaddsubpd, 3, 0x66d0, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vaddsubps, 3, 0xf2d0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vaddsubps, 3, 0xf2d0, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vandnpd, 3, 0x6655, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vandnpd, 3, 0x6655, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vandnps, 3, 0x55, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vandnps, 3, 0x55, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vandpd, 3, 0x6654, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vandpd, 3, 0x6654, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vandps, 3, 0x54, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vandps, 3, 0x54, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vblendpd, 4, 0x660d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vblendpd, 4, 0x660d, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vblendps, 4, 0x660c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vblendps, 4, 0x660c, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vblendvpd, 4, 0x664b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vblendvpd, 4, 0x664b, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexSources=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vblendvps, 4, 0x664a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vblendvps, 4, 0x664a, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexSources=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vbroadcastf128, 2, 0x661a, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM }
-vbroadcastsd, 2, 0x6619, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM }
-vbroadcastss, 2, 0x6618, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vbroadcastss, 2, 0x6618, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM }
-vcmpeq_ospd, 3, 0x66c2, 0x10, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeq_ospd, 3, 0x66c2, 0x10, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpeq_osps, 3, 0xc2, 0x10, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeq_osps, 3, 0xc2, 0x10, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpeq_ossd, 3, 0xf2c2, 0x10, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeq_osss, 3, 0xf3c2, 0x10, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeqpd, 3, 0x66c2, 0x0, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeqpd, 3, 0x66c2, 0x0, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpeqps, 3, 0xc2, 0x0, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeqps, 3, 0xc2, 0x0, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpeqsd, 3, 0xf2c2, 0x0, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeqss, 3, 0xf3c2, 0x0, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeq_uqpd, 3, 0x66c2, 0x8, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeq_uqpd, 3, 0x66c2, 0x8, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpeq_uqps, 3, 0xc2, 0x8, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeq_uqps, 3, 0xc2, 0x8, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpeq_uqsd, 3, 0xf2c2, 0x8, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeq_uqss, 3, 0xf3c2, 0x8, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeq_uspd, 3, 0x66c2, 0x18, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeq_uspd, 3, 0x66c2, 0x18, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpeq_usps, 3, 0xc2, 0x18, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeq_usps, 3, 0xc2, 0x18, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpeq_ussd, 3, 0xf2c2, 0x18, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpeq_usss, 3, 0xf3c2, 0x18, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpfalse_ospd, 3, 0x66c2, 0x1b, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpfalse_ospd, 3, 0x66c2, 0x1b, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpfalse_osps, 3, 0xc2, 0x1b, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpfalse_osps, 3, 0xc2, 0x1b, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpfalse_ossd, 3, 0xf2c2, 0x1b, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpfalse_osss, 3, 0xf3c2, 0x1b, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpfalsepd, 3, 0x66c2, 0xb, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpfalsepd, 3, 0x66c2, 0xb, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpfalseps, 3, 0xc2, 0xb, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpfalseps, 3, 0xc2, 0xb, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpfalsesd, 3, 0xf2c2, 0xb, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpfalsess, 3, 0xf3c2, 0xb, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpge_oqpd, 3, 0x66c2, 0x1d, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpge_oqpd, 3, 0x66c2, 0x1d, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpge_oqps, 3, 0xc2, 0x1d, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpge_oqps, 3, 0xc2, 0x1d, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpge_oqsd, 3, 0xf2c2, 0x1d, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpge_oqss, 3, 0xf3c2, 0x1d, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpgepd, 3, 0x66c2, 0xd, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpgepd, 3, 0x66c2, 0xd, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpgeps, 3, 0xc2, 0xd, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpgeps, 3, 0xc2, 0xd, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpgesd, 3, 0xf2c2, 0xd, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpgess, 3, 0xf3c2, 0xd, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpgt_oqpd, 3, 0x66c2, 0x1e, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpgt_oqpd, 3, 0x66c2, 0x1e, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpgt_oqps, 3, 0xc2, 0x1e, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpgt_oqps, 3, 0xc2, 0x1e, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpgt_oqsd, 3, 0xf2c2, 0x1e, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpgt_oqss, 3, 0xf3c2, 0x1e, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpgtpd, 3, 0x66c2, 0xe, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpgtpd, 3, 0x66c2, 0xe, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpgtps, 3, 0xc2, 0xe, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpgtps, 3, 0xc2, 0xe, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpgtsd, 3, 0xf2c2, 0xe, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpgtss, 3, 0xf3c2, 0xe, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmple_oqpd, 3, 0x66c2, 0x12, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmple_oqpd, 3, 0x66c2, 0x12, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmple_oqps, 3, 0xc2, 0x12, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmple_oqps, 3, 0xc2, 0x12, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmple_oqsd, 3, 0xf2c2, 0x12, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmple_oqss, 3, 0xf3c2, 0x12, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmplepd, 3, 0x66c2, 0x2, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmplepd, 3, 0x66c2, 0x2, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpleps, 3, 0xc2, 0x2, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpleps, 3, 0xc2, 0x2, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmplesd, 3, 0xf2c2, 0x2, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpless, 3, 0xf3c2, 0x2, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmplt_oqpd, 3, 0x66c2, 0x11, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmplt_oqpd, 3, 0x66c2, 0x11, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmplt_oqps, 3, 0xc2, 0x11, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmplt_oqps, 3, 0xc2, 0x11, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmplt_oqsd, 3, 0xf2c2, 0x11, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmplt_oqss, 3, 0xf3c2, 0x11, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpltpd, 3, 0x66c2, 0x1, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpltpd, 3, 0x66c2, 0x1, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpltps, 3, 0xc2, 0x1, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpltps, 3, 0xc2, 0x1, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpltsd, 3, 0xf2c2, 0x1, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpltss, 3, 0xf3c2, 0x1, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneq_oqpd, 3, 0x66c2, 0xc, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneq_oqpd, 3, 0x66c2, 0xc, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpneq_oqps, 3, 0xc2, 0xc, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneq_oqps, 3, 0xc2, 0xc, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpneq_oqsd, 3, 0xf2c2, 0xc, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneq_oqss, 3, 0xf3c2, 0xc, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneq_ospd, 3, 0x66c2, 0x1c, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneq_ospd, 3, 0x66c2, 0x1c, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpneq_osps, 3, 0xc2, 0x1c, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneq_osps, 3, 0xc2, 0x1c, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpneq_ossd, 3, 0xf2c2, 0x1c, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneq_osss, 3, 0xf3c2, 0x1c, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneqpd, 3, 0x66c2, 0x4, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneqpd, 3, 0x66c2, 0x4, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpneqps, 3, 0xc2, 0x4, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneqps, 3, 0xc2, 0x4, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpneqsd, 3, 0xf2c2, 0x4, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneqss, 3, 0xf3c2, 0x4, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneq_uspd, 3, 0x66c2, 0x14, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneq_uspd, 3, 0x66c2, 0x14, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpneq_usps, 3, 0xc2, 0x14, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneq_usps, 3, 0xc2, 0x14, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpneq_ussd, 3, 0xf2c2, 0x14, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpneq_usss, 3, 0xf3c2, 0x14, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpngepd, 3, 0x66c2, 0x9, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpngepd, 3, 0x66c2, 0x9, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpngeps, 3, 0xc2, 0x9, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpngeps, 3, 0xc2, 0x9, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpngesd, 3, 0xf2c2, 0x9, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpngess, 3, 0xf3c2, 0x9, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnge_uqpd, 3, 0x66c2, 0x19, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnge_uqpd, 3, 0x66c2, 0x19, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpnge_uqps, 3, 0xc2, 0x19, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnge_uqps, 3, 0xc2, 0x19, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpnge_uqsd, 3, 0xf2c2, 0x19, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnge_uqss, 3, 0xf3c2, 0x19, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpngtpd, 3, 0x66c2, 0xa, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpngtpd, 3, 0x66c2, 0xa, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpngtps, 3, 0xc2, 0xa, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpngtps, 3, 0xc2, 0xa, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpngtsd, 3, 0xf2c2, 0xa, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpngtss, 3, 0xf3c2, 0xa, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpngt_uqpd, 3, 0x66c2, 0x1a, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpngt_uqpd, 3, 0x66c2, 0x1a, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpngt_uqps, 3, 0xc2, 0x1a, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpngt_uqps, 3, 0xc2, 0x1a, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpngt_uqsd, 3, 0xf2c2, 0x1a, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpngt_uqss, 3, 0xf3c2, 0x1a, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnlepd, 3, 0x66c2, 0x6, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnlepd, 3, 0x66c2, 0x6, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpnleps, 3, 0xc2, 0x6, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnleps, 3, 0xc2, 0x6, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpnlesd, 3, 0xf2c2, 0x6, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnless, 3, 0xf3c2, 0x6, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnle_uqpd, 3, 0x66c2, 0x16, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnle_uqpd, 3, 0x66c2, 0x16, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpnle_uqps, 3, 0xc2, 0x16, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnle_uqps, 3, 0xc2, 0x16, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpnle_uqsd, 3, 0xf2c2, 0x16, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnle_uqss, 3, 0xf3c2, 0x16, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnltpd, 3, 0x66c2, 0x5, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnltpd, 3, 0x66c2, 0x5, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpnltps, 3, 0xc2, 0x5, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnltps, 3, 0xc2, 0x5, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpnltsd, 3, 0xf2c2, 0x5, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnltss, 3, 0xf3c2, 0x5, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnlt_uqpd, 3, 0x66c2, 0x15, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnlt_uqpd, 3, 0x66c2, 0x15, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpnlt_uqps, 3, 0xc2, 0x15, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnlt_uqps, 3, 0xc2, 0x15, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpnlt_uqsd, 3, 0xf2c2, 0x15, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpnlt_uqss, 3, 0xf3c2, 0x15, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpordpd, 3, 0x66c2, 0x7, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpordpd, 3, 0x66c2, 0x7, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpordps, 3, 0xc2, 0x7, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpordps, 3, 0xc2, 0x7, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpordsd, 3, 0xf2c2, 0x7, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpord_spd, 3, 0x66c2, 0x17, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpord_spd, 3, 0x66c2, 0x17, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpord_sps, 3, 0xc2, 0x17, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpord_sps, 3, 0xc2, 0x17, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpordss, 3, 0xf3c2, 0x7, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpord_ssd, 3, 0xf2c2, 0x17, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpord_sss, 3, 0xf3c2, 0x17, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmppd, 4, 0x66c2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmppd, 4, 0x66c2, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpps, 4, 0xc2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpps, 4, 0xc2, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpsd, 4, 0xf2c2, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpss, 4, 0xf3c2, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmptruepd, 3, 0x66c2, 0xf, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmptruepd, 3, 0x66c2, 0xf, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmptrueps, 3, 0xc2, 0xf, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmptrueps, 3, 0xc2, 0xf, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmptruesd, 3, 0xf2c2, 0xf, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmptruess, 3, 0xf3c2, 0xf, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmptrue_uspd, 3, 0x66c2, 0x1f, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmptrue_uspd, 3, 0x66c2, 0x1f, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmptrue_usps, 3, 0xc2, 0x1f, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmptrue_usps, 3, 0xc2, 0x1f, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmptrue_ussd, 3, 0xf2c2, 0x1f, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmptrue_usss, 3, 0xf3c2, 0x1f, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpunordpd, 3, 0x66c2, 0x3, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpunordpd, 3, 0x66c2, 0x3, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpunordps, 3, 0xc2, 0x3, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpunordps, 3, 0xc2, 0x3, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpunordsd, 3, 0xf2c2, 0x3, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpunord_spd, 3, 0x66c2, 0x13, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpunord_spd, 3, 0x66c2, 0x13, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpunord_sps, 3, 0xc2, 0x13, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpunord_sps, 3, 0xc2, 0x13, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vcmpunordss, 3, 0xf3c2, 0x3, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpunord_ssd, 3, 0xf2c2, 0x13, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcmpunord_sss, 3, 0xf3c2, 0x13, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcomisd, 2, 0x662f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vcomiss, 2, 0x2f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vcvtdq2pd, 2, 0xf3e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vcvtdq2pd, 2, 0xf3e6, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vcvtdq2ps, 2, 0x5b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vcvtdq2ps, 2, 0x5b, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vcvtpd2dq, 2, 0xf2e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
-vcvtpd2dq, 2, 0xf2e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Xmmword|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vcvtpd2dq, 2, 0xf2e6, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegXMM }
-vcvtpd2dq, 2, 0xf2e6, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Ymmword|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vcvtpd2dqx, 2, 0xf2e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vcvtpd2dqy, 2, 0xf2e6, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegXMM }
-vcvtpd2ps, 2, 0x665a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
-vcvtpd2ps, 2, 0x665a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Xmmword|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vcvtpd2ps, 2, 0x665a, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegXMM }
-vcvtpd2ps, 2, 0x665a, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Ymmword|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vcvtpd2psx, 2, 0x665a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vcvtpd2psy, 2, 0x665a, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegXMM }
-vcvtps2dq, 2, 0x665b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vcvtps2dq, 2, 0x665b, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vcvtps2pd, 2, 0x5a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vcvtps2pd, 2, 0x5a, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vcvtsd2si, 2, 0xf22d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToDword, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, Reg32|Reg64 }
-vcvtsd2ss, 3, 0xf25a, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcvtsi2sd, 3, 0xf22a, None, 1, CpuAVX|CpuNo64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32, RegXMM, RegXMM }
-vcvtsi2sd, 3, 0xf22a, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, RegXMM, RegXMM }
-vcvtsi2ss, 3, 0xf32a, None, 1, CpuAVX|CpuNo64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32, RegXMM, RegXMM }
-vcvtsi2ss, 3, 0xf32a, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, RegXMM, RegXMM }
-vcvtss2sd, 3, 0xf35a, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vcvtss2si, 2, 0xf32d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, Reg32|Reg64 }
-vcvttpd2dq, 2, 0x66e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
-vcvttpd2dq, 2, 0x66e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Intelsyntax, { Xmmword|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vcvttpd2dq, 2, 0x66e6, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegXMM }
-vcvttpd2dq, 2, 0x66e6, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Intelsyntax, { Ymmword|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vcvttpd2dqx, 2, 0x66e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTsyntax, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vcvttpd2dqy, 2, 0x66e6, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTsyntax, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegXMM }
-vcvttps2dq, 2, 0xf35b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vcvttps2dq, 2, 0xf35b, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vcvttsd2si, 2, 0xf22c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToDword, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, Reg32|Reg64 }
-vcvttss2si, 2, 0xf32c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, Reg32|Reg64 }
-vdivpd, 3, 0x665e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vdivpd, 3, 0x665e, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vdivps, 3, 0x5e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vdivps, 3, 0x5e, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vdivsd, 3, 0xf25e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vdivss, 3, 0xf35e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vdppd, 4, 0x6641, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vdpps, 4, 0x6640, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vdpps, 4, 0x6640, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vextractf128, 3, 0x6619, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-vextractps, 3, 0x6617, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vhaddpd, 3, 0x667c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vhaddpd, 3, 0x667c, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vhaddps, 3, 0xf27c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vhaddps, 3, 0xf27c, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vhsubpd, 3, 0x667d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vhsubpd, 3, 0x667d, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vhsubps, 3, 0xf27d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vhsubps, 3, 0xf27d, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vinsertf128, 4, 0x6618, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM, RegYMM }
-vinsertps, 4, 0x6621, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vlddqu, 2, 0xf2f0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vlddqu, 2, 0xf2f0, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM }
-vldmxcsr, 1, 0xae, 0x2, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+vaddpd, 3, 0x6658, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vaddps, 3, 0x58, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vaddsd, 3, 0xf258, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vaddss, 3, 0xf358, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vaddsubpd, 3, 0x66d0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vaddsubps, 3, 0xf2d0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vandnpd, 3, 0x6655, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vandnps, 3, 0x55, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vandpd, 3, 0x6654, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vandps, 3, 0x54, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vblendpd, 4, 0x660d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vblendps, 4, 0x660c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vblendvpd, 4, 0x664b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { RegXMM|RegYMM, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vblendvps, 4, 0x664a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { RegXMM|RegYMM, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vbroadcastf128, 2, 0x661a, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex, RegYMM }
+vbroadcastsd, 2, 0x6619, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegYMM }
+vbroadcastss, 2, 0x6618, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex, RegXMM|RegYMM }
+vcmpeq_ospd, 3, 0x66c2, 0x10, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpeq_osps, 3, 0xc2, 0x10, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpeq_ossd, 3, 0xf2c2, 0x10, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpeq_osss, 3, 0xf3c2, 0x10, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpeqpd, 3, 0x66c2, 0x0, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpeqps, 3, 0xc2, 0x0, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpeqsd, 3, 0xf2c2, 0x0, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpeqss, 3, 0xf3c2, 0x0, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpeq_uqpd, 3, 0x66c2, 0x8, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpeq_uqps, 3, 0xc2, 0x8, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpeq_uqsd, 3, 0xf2c2, 0x8, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpeq_uqss, 3, 0xf3c2, 0x8, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpeq_uspd, 3, 0x66c2, 0x18, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpeq_usps, 3, 0xc2, 0x18, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpeq_ussd, 3, 0xf2c2, 0x18, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpeq_usss, 3, 0xf3c2, 0x18, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpfalse_ospd, 3, 0x66c2, 0x1b, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpfalse_osps, 3, 0xc2, 0x1b, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpfalse_ossd, 3, 0xf2c2, 0x1b, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpfalse_osss, 3, 0xf3c2, 0x1b, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpfalsepd, 3, 0x66c2, 0xb, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpfalseps, 3, 0xc2, 0xb, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpfalsesd, 3, 0xf2c2, 0xb, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpfalsess, 3, 0xf3c2, 0xb, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpge_oqpd, 3, 0x66c2, 0x1d, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpge_oqps, 3, 0xc2, 0x1d, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpge_oqsd, 3, 0xf2c2, 0x1d, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpge_oqss, 3, 0xf3c2, 0x1d, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpgepd, 3, 0x66c2, 0xd, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpgeps, 3, 0xc2, 0xd, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpgesd, 3, 0xf2c2, 0xd, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpgess, 3, 0xf3c2, 0xd, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpgt_oqpd, 3, 0x66c2, 0x1e, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpgt_oqps, 3, 0xc2, 0x1e, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpgt_oqsd, 3, 0xf2c2, 0x1e, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpgt_oqss, 3, 0xf3c2, 0x1e, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpgtpd, 3, 0x66c2, 0xe, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpgtps, 3, 0xc2, 0xe, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpgtsd, 3, 0xf2c2, 0xe, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpgtss, 3, 0xf3c2, 0xe, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmple_oqpd, 3, 0x66c2, 0x12, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmple_oqps, 3, 0xc2, 0x12, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmple_oqsd, 3, 0xf2c2, 0x12, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmple_oqss, 3, 0xf3c2, 0x12, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmplepd, 3, 0x66c2, 0x2, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpleps, 3, 0xc2, 0x2, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmplesd, 3, 0xf2c2, 0x2, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpless, 3, 0xf3c2, 0x2, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmplt_oqpd, 3, 0x66c2, 0x11, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmplt_oqps, 3, 0xc2, 0x11, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmplt_oqsd, 3, 0xf2c2, 0x11, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmplt_oqss, 3, 0xf3c2, 0x11, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpltpd, 3, 0x66c2, 0x1, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpltps, 3, 0xc2, 0x1, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpltsd, 3, 0xf2c2, 0x1, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpltss, 3, 0xf3c2, 0x1, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpneq_oqpd, 3, 0x66c2, 0xc, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpneq_oqps, 3, 0xc2, 0xc, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpneq_oqsd, 3, 0xf2c2, 0xc, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpneq_oqss, 3, 0xf3c2, 0xc, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpneq_ospd, 3, 0x66c2, 0x1c, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpneq_osps, 3, 0xc2, 0x1c, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpneq_ossd, 3, 0xf2c2, 0x1c, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpneq_osss, 3, 0xf3c2, 0x1c, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpneqpd, 3, 0x66c2, 0x4, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpneqps, 3, 0xc2, 0x4, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpneqsd, 3, 0xf2c2, 0x4, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpneqss, 3, 0xf3c2, 0x4, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpneq_uspd, 3, 0x66c2, 0x14, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpneq_usps, 3, 0xc2, 0x14, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpneq_ussd, 3, 0xf2c2, 0x14, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpneq_usss, 3, 0xf3c2, 0x14, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpngepd, 3, 0x66c2, 0x9, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpngeps, 3, 0xc2, 0x9, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpngesd, 3, 0xf2c2, 0x9, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpngess, 3, 0xf3c2, 0x9, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpnge_uqpd, 3, 0x66c2, 0x19, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpnge_uqps, 3, 0xc2, 0x19, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpnge_uqsd, 3, 0xf2c2, 0x19, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpnge_uqss, 3, 0xf3c2, 0x19, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpngtpd, 3, 0x66c2, 0xa, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpngtps, 3, 0xc2, 0xa, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpngtsd, 3, 0xf2c2, 0xa, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpngtss, 3, 0xf3c2, 0xa, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpngt_uqpd, 3, 0x66c2, 0x1a, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpngt_uqps, 3, 0xc2, 0x1a, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpngt_uqsd, 3, 0xf2c2, 0x1a, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpngt_uqss, 3, 0xf3c2, 0x1a, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpnlepd, 3, 0x66c2, 0x6, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpnleps, 3, 0xc2, 0x6, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpnlesd, 3, 0xf2c2, 0x6, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpnless, 3, 0xf3c2, 0x6, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpnle_uqpd, 3, 0x66c2, 0x16, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpnle_uqps, 3, 0xc2, 0x16, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpnle_uqsd, 3, 0xf2c2, 0x16, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpnle_uqss, 3, 0xf3c2, 0x16, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpnltpd, 3, 0x66c2, 0x5, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpnltps, 3, 0xc2, 0x5, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpnltsd, 3, 0xf2c2, 0x5, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpnltss, 3, 0xf3c2, 0x5, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpnlt_uqpd, 3, 0x66c2, 0x15, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpnlt_uqps, 3, 0xc2, 0x15, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpnlt_uqsd, 3, 0xf2c2, 0x15, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpnlt_uqss, 3, 0xf3c2, 0x15, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpordpd, 3, 0x66c2, 0x7, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpordps, 3, 0xc2, 0x7, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpordsd, 3, 0xf2c2, 0x7, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpord_spd, 3, 0x66c2, 0x17, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpord_sps, 3, 0xc2, 0x17, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpordss, 3, 0xf3c2, 0x7, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpord_ssd, 3, 0xf2c2, 0x17, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpord_sss, 3, 0xf3c2, 0x17, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmppd, 4, 0x66c2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpps, 4, 0xc2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpsd, 4, 0xf2c2, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpss, 4, 0xf3c2, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmptruepd, 3, 0x66c2, 0xf, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmptrueps, 3, 0xc2, 0xf, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmptruesd, 3, 0xf2c2, 0xf, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmptruess, 3, 0xf3c2, 0xf, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmptrue_uspd, 3, 0x66c2, 0x1f, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmptrue_usps, 3, 0xc2, 0x1f, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmptrue_ussd, 3, 0xf2c2, 0x1f, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmptrue_usss, 3, 0xf3c2, 0x1f, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpunordpd, 3, 0x66c2, 0x3, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpunordps, 3, 0xc2, 0x3, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpunordsd, 3, 0xf2c2, 0x3, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpunord_spd, 3, 0x66c2, 0x13, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpunord_sps, 3, 0xc2, 0x13, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vcmpunordss, 3, 0xf3c2, 0x3, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpunord_ssd, 3, 0xf2c2, 0x13, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcmpunord_sss, 3, 0xf3c2, 0x13, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcomisd, 2, 0x662f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vcomiss, 2, 0x2f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vcvtdq2pd, 2, 0xf3e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vcvtdq2pd, 2, 0xf3e6, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM }
+vcvtdq2ps, 2, 0x5b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vcvtpd2dq, 2, 0xf2e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, RegXMM }
+vcvtpd2dq, 2, 0xf2e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Xmmword|Ymmword|BaseIndex, RegXMM }
+vcvtpd2dqx, 2, 0xf2e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Unspecified|BaseIndex|RegXMM, RegXMM }
+vcvtpd2dqy, 2, 0xf2e6, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Unspecified|BaseIndex|RegYMM, RegXMM }
+vcvtpd2ps, 2, 0x665a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, RegXMM }
+vcvtpd2ps, 2, 0x665a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Xmmword|BaseIndex, RegXMM }
+vcvtpd2ps, 2, 0x665a, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Ymmword|BaseIndex, RegXMM }
+vcvtpd2psx, 2, 0x665a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Unspecified|BaseIndex|RegXMM, RegXMM }
+vcvtpd2psy, 2, 0x665a, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTSyntax, { Unspecified|BaseIndex|RegYMM, RegXMM }
+vcvtps2dq, 2, 0x665b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vcvtps2pd, 2, 0x5a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vcvtps2pd, 2, 0x5a, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM }
+vcvtsd2si, 2, 0xf22d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToDword, { Qword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 }
+vcvtsd2ss, 3, 0xf25a, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcvtsi2sd, 3, 0xf22a, None, 1, CpuAVX|CpuNo64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vcvtsi2sd, 3, 0xf22a, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vcvtsi2ss, 3, 0xf32a, None, 1, CpuAVX|CpuNo64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vcvtsi2ss, 3, 0xf32a, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vcvtss2sd, 3, 0xf35a, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vcvtss2si, 2, 0xf32d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword, { Dword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 }
+vcvttpd2dq, 2, 0x66e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, RegXMM }
+vcvttpd2dq, 2, 0x66e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Intelsyntax, { Xmmword|Ymmword|BaseIndex, RegXMM }
+vcvttpd2dqx, 2, 0x66e6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTsyntax, { Unspecified|BaseIndex|RegXMM, RegXMM }
+vcvttpd2dqy, 2, 0x66e6, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ATTsyntax, { Unspecified|BaseIndex|RegYMM, RegXMM }
+vcvttps2dq, 2, 0xf35b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vcvttsd2si, 2, 0xf22c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToDword, { Qword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 }
+vcvttss2si, 2, 0xf32c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|ToQword, { Dword|Unspecified|BaseIndex|RegXMM, Reg32|Reg64 }
+vdivpd, 3, 0x665e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vdivps, 3, 0x5e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vdivsd, 3, 0xf25e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vdivss, 3, 0xf35e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vdppd, 4, 0x6641, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vdpps, 4, 0x6640, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vextractf128, 3, 0x6619, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, Xmmword|Unspecified|BaseIndex|RegXMM }
+vextractps, 3, 0x6617, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex }
+vextractps, 3, 0x6617, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg64|RegMem }
+vhaddpd, 3, 0x667c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vhaddps, 3, 0xf27c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vhsubpd, 3, 0x667d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vhsubps, 3, 0xf27d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vinsertf128, 4, 0x6618, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM, RegYMM }
+vinsertps, 4, 0x6621, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vlddqu, 2, 0xf2f0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Ymmword|Unspecified|BaseIndex, RegXMM|RegYMM }
+vldmxcsr, 1, 0xae, 0x2, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex }
 vmaskmovdqu, 2, 0x66f7, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
-vmaskmovpd, 3, 0x662f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmaskmovpd, 3, 0x662f, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmaskmovpd, 3, 0x662d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vmaskmovpd, 3, 0x662d, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM, RegYMM }
-vmaskmovps, 3, 0x662e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmaskmovps, 3, 0x662e, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmaskmovps, 3, 0x662c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vmaskmovps, 3, 0x662c, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM, RegYMM }
-vmaxpd, 3, 0x665f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vmaxpd, 3, 0x665f, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vmaxps, 3, 0x5f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vmaxps, 3, 0x5f, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vmaxsd, 3, 0xf25f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vmaxss, 3, 0xf35f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vminpd, 3, 0x665d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vminpd, 3, 0x665d, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vminps, 3, 0x5d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vminps, 3, 0x5d, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vminsd, 3, 0xf25d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vminss, 3, 0xf35d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vmovapd, 2, 0x6628, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vmovapd, 2, 0x6629, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-vmovapd, 2, 0x6628, None, 1, CpuAVX, Load|Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vmovapd, 2, 0x6629, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM }
-vmovaps, 2, 0x28, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vmovaps, 2, 0x29, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-vmovaps, 2, 0x28, None, 1, CpuAVX, Load|Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vmovaps, 2, 0x29, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM }
+vmaskmovpd, 3, 0x662f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, RegXMM|RegYMM, Xmmword|Ymmword|Unspecified|BaseIndex }
+vmaskmovpd, 3, 0x662d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Ymmword|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
+vmaskmovps, 3, 0x662e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, RegXMM|RegYMM, Xmmword|Ymmword|Unspecified|BaseIndex }
+vmaskmovps, 3, 0x662c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Ymmword|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
+vmaxpd, 3, 0x665f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vmaxps, 3, 0x5f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vmaxsd, 3, 0xf25f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vmaxss, 3, 0xf35f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vminpd, 3, 0x665d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vminps, 3, 0x5d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vminsd, 3, 0xf25d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vminss, 3, 0xf35d, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vmovapd, 2, 0x6628, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vmovapd, 2, 0x6629, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, Unspecified|BaseIndex|RegXMM|RegYMM }
+vmovaps, 2, 0x28, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vmovaps, 2, 0x29, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, Unspecified|BaseIndex|RegXMM|RegYMM }
 // vmovd really shouldn't allow for 64bit operand (vmovq is the right
 // mnemonic for copying between Reg64/Mem64 and RegXMM, as is mandated
 // by Intel AVX spec).  To avoid extra template in gcc x86 backend and
 // support assembler for AMD64, we accept 64bit operand on vmovd so
 // that we can use one template for both SSE and AVX instructions.
-vmovd, 2, 0x666e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vmovd, 2, 0x666e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg64|Qword|BaseIndex|Disp8|Disp32|Disp32S, RegXMM }
-vmovd, 2, 0x667e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|Reg32|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmovd, 2, 0x667e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { RegXMM, Qword|Reg64|BaseIndex|Disp8|Disp32|Disp32S }
-vmovddup, 2, 0xf212, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vmovddup, 2, 0xf212, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vmovdqa, 2, 0x666f, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vmovdqa, 2, 0x667f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-vmovdqa, 2, 0x666f, None, 1, CpuAVX, Load|Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vmovdqa, 2, 0x667f, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM }
-vmovdqu, 2, 0xf36f, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vmovdqu, 2, 0xf37f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-vmovdqu, 2, 0xf36f, None, 1, CpuAVX, Load|Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vmovdqu, 2, 0xf37f, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM }
+vmovd, 2, 0x666e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, RegXMM }
+vmovd, 2, 0x666e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg64|Qword|BaseIndex, RegXMM }
+vmovd, 2, 0x667e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|Reg32|BaseIndex }
+vmovd, 2, 0x667e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { RegXMM, Qword|Reg64|BaseIndex }
+vmovddup, 2, 0xf212, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vmovddup, 2, 0xf212, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM }
+vmovdqa, 2, 0x666f, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vmovdqa, 2, 0x667f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, Unspecified|BaseIndex|RegXMM|RegYMM }
+vmovdqu, 2, 0xf36f, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vmovdqu, 2, 0xf37f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, Unspecified|BaseIndex|RegXMM|RegYMM }
 vmovhlps, 3, 0x12, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, RegXMM }
-vmovhpd, 3, 0x6616, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vmovhpd, 2, 0x6617, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmovhps, 3, 0x16, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vmovhps, 2, 0x17, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+vmovhpd, 3, 0x6616, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vmovhpd, 2, 0x6617, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vmovhps, 3, 0x16, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vmovhps, 2, 0x17, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
 vmovlhps, 3, 0x16, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, RegXMM }
-vmovlpd, 3, 0x6612, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vmovlpd, 2, 0x6613, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmovlps, 3, 0x12, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vmovlps, 2, 0x13, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmovmskpd, 2, 0x6650, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { RegXMM, Reg32|Reg64 }
-vmovmskpd, 2, 0x6650, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { RegYMM, Reg32|Reg64 }
-vmovmskps, 2, 0x50, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { RegXMM, Reg32|Reg64 }
-vmovmskps, 2, 0x50, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { RegYMM, Reg32|Reg64 }
-vmovntdq, 2, 0x66e7, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmovntdq, 2, 0x66e7, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmovntdqa, 2, 0x662a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vmovntpd, 2, 0x662b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmovntpd, 2, 0x662b, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmovntps, 2, 0x2b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmovntps, 2, 0x2b, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmovq, 2, 0xf37e, None, 1, CpuAVX, Load|Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vmovq, 2, 0x66d6, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-vmovq, 2, 0x666e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, RegXMM }
-vmovq, 2, 0x667e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { RegXMM, Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
-vmovsd, 2, 0xf211, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmovsd, 2, 0xf210, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
+vmovlpd, 3, 0x6612, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vmovlpd, 2, 0x6613, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vmovlps, 3, 0x12, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vmovlps, 2, 0x13, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vmovmskpd, 2, 0x6650, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { RegXMM|RegYMM, Reg32|Reg64 }
+vmovmskps, 2, 0x50, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { RegXMM|RegYMM, Reg32|Reg64 }
+vmovntdq, 2, 0x66e7, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, Xmmword|Ymmword|Unspecified|BaseIndex }
+vmovntdqa, 2, 0x662a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex, RegXMM }
+vmovntpd, 2, 0x662b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, Xmmword|Ymmword|Unspecified|BaseIndex }
+vmovntps, 2, 0x2b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, Xmmword|Ymmword|Unspecified|BaseIndex }
+vmovq, 2, 0xf37e, None, 1, CpuAVX, Load|Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vmovq, 2, 0x66d6, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { RegXMM, Qword|Unspecified|BaseIndex|RegXMM }
+vmovq, 2, 0x666e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { Reg64|Qword|Unspecified|BaseIndex, RegXMM }
+vmovq, 2, 0x667e, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Size64, { RegXMM, Reg64|Qword|Unspecified|BaseIndex }
+vmovsd, 2, 0xf211, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vmovsd, 2, 0xf210, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM }
 vmovsd, 3, 0xf210, None, 1, CpuAVX, Load|Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, RegXMM }
 vmovsd, 3, 0xf211, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, RegXMM|RegMem }
-vmovshdup, 2, 0xf316, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vmovshdup, 2, 0xf316, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vmovsldup, 2, 0xf312, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vmovsldup, 2, 0xf312, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vmovss, 2, 0xf311, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vmovss, 2, 0xf310, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
+vmovshdup, 2, 0xf316, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vmovsldup, 2, 0xf312, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vmovss, 2, 0xf311, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex }
+vmovss, 2, 0xf310, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex, RegXMM }
 vmovss, 3, 0xf310, None, 1, CpuAVX, Load|Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, RegXMM }
 vmovss, 3, 0xf311, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, RegXMM|RegMem }
-vmovupd, 2, 0x6610, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vmovupd, 2, 0x6611, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-vmovupd, 2, 0x6610, None, 1, CpuAVX, Load|Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vmovupd, 2, 0x6611, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM }
-vmovups, 2, 0x10, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vmovups, 2, 0x11, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-vmovups, 2, 0x10, None, 1, CpuAVX, Load|Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vmovups, 2, 0x11, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM }
-vmpsadbw, 4, 0x6642, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vmulpd, 3, 0x6659, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vmulpd, 3, 0x6659, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vmulps, 3, 0x59, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vmulps, 3, 0x59, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vmulsd, 3, 0xf259, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vmulss, 3, 0xf359, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vorpd, 3, 0x6656, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vorpd, 3, 0x6656, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vorps, 3, 0x56, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vorps, 3, 0x56, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpabsb, 2, 0x661c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpabsd, 2, 0x661e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpabsw, 2, 0x661d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpackssdw, 3, 0x666b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpacksswb, 3, 0x6663, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpackusdw, 3, 0x662b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpackuswb, 3, 0x6667, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpaddsb, 3, 0x66ec, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpaddsw, 3, 0x66ed, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpaddb, 3, 0x66fc, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpaddd, 3, 0x66fe, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpaddq, 3, 0x66d4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpaddw, 3, 0x66fd, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpaddusb, 3, 0x66dc, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpaddusw, 3, 0x66dd, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpalignr, 4, 0x660f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpand, 3, 0x66db, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpandn, 3, 0x66df, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpavgb, 3, 0x66e0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpavgw, 3, 0x66e3, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpblendvb, 4, 0x664c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpblendw, 4, 0x660e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpcmpeqb, 3, 0x6674, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpcmpeqd, 3, 0x6676, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpcmpeqq, 3, 0x6629, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpcmpeqw, 3, 0x6675, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpcmpestri, 3, 0x6661, None, 1, CpuAVX|CpuNo64, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpcmpestri, 3, 0x6661, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpcmpestrm, 3, 0x6660, None, 1, CpuAVX|CpuNo64, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpcmpestrm, 3, 0x6660, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpcmpgtb, 3, 0x6664, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpcmpgtd, 3, 0x6666, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpcmpgtq, 3, 0x6637, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpcmpgtw, 3, 0x6665, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpcmpistri, 3, 0x6663, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpcmpistrm, 3, 0x6662, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vperm2f128, 4, 0x6606, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpermilpd, 3, 0x660d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpermilpd, 3, 0x660d, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpermilpd, 3, 0x6605, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpermilpd, 3, 0x6605, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vpermilps, 3, 0x660c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpermilps, 3, 0x660c, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpermilps, 3, 0x6604, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpermilps, 3, 0x6604, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vpextrb, 3, 0x6614, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vpextrd, 3, 0x6616, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vpextrq, 3, 0x6616, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
+vmovupd, 2, 0x6610, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vmovupd, 2, 0x6611, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, Unspecified|BaseIndex|RegXMM|RegYMM }
+vmovups, 2, 0x10, None, 1, CpuAVX, Load|Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vmovups, 2, 0x11, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, Unspecified|BaseIndex|RegXMM|RegYMM }
+vmpsadbw, 4, 0x6642, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vmulpd, 3, 0x6659, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vmulps, 3, 0x59, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vmulsd, 3, 0xf259, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vmulss, 3, 0xf359, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vorpd, 3, 0x6656, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vorps, 3, 0x56, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vpabsb, 2, 0x661c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpabsd, 2, 0x661e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpabsw, 2, 0x661d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpackssdw, 3, 0x666b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpacksswb, 3, 0x6663, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpackusdw, 3, 0x662b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpackuswb, 3, 0x6667, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpaddsb, 3, 0x66ec, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpaddsw, 3, 0x66ed, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpaddb, 3, 0x66fc, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpaddd, 3, 0x66fe, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpaddq, 3, 0x66d4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpaddw, 3, 0x66fd, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpaddusb, 3, 0x66dc, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpaddusw, 3, 0x66dd, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpalignr, 4, 0x660f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpand, 3, 0x66db, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpandn, 3, 0x66df, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpavgb, 3, 0x66e0, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpavgw, 3, 0x66e3, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpblendvb, 4, 0x664c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpblendw, 4, 0x660e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpcmpeqb, 3, 0x6674, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpcmpeqd, 3, 0x6676, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpcmpeqq, 3, 0x6629, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpcmpeqw, 3, 0x6675, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpcmpestri, 3, 0x6661, None, 1, CpuAVX|CpuNo64, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpcmpestri, 3, 0x6661, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpcmpestrm, 3, 0x6660, None, 1, CpuAVX|CpuNo64, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpcmpestrm, 3, 0x6660, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpcmpgtb, 3, 0x6664, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpcmpgtd, 3, 0x6666, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpcmpgtq, 3, 0x6637, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpcmpgtw, 3, 0x6665, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpcmpistri, 3, 0x6663, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpcmpistrm, 3, 0x6662, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vperm2f128, 4, 0x6606, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpermilpd, 3, 0x660d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vpermilpd, 3, 0x6605, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vpermilps, 3, 0x660c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vpermilps, 3, 0x6604, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vpextrb, 3, 0x6614, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64|RegMem }
+vpextrb, 3, 0x6614, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Byte|Unspecified|BaseIndex }
+vpextrd, 3, 0x6616, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex }
+vpextrq, 3, 0x6616, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|Size64|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg64|Qword|Unspecified|BaseIndex }
 vpextrw, 3, 0x66c5, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64 }
-vpextrw, 3, 0x6615, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vphaddd, 3, 0x6602, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vphaddsw, 3, 0x6603, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vphaddw, 3, 0x6601, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vphminposuw, 2, 0x6641, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vphsubd, 3, 0x6606, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vphsubsw, 3, 0x6607, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vphsubw, 3, 0x6605, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpinsrb, 4, 0x6620, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, Reg32|Reg64|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpinsrd, 4, 0x6622, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpinsrq, 4, 0x6622, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|Size64|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S, RegXMM, RegXMM }
-vpinsrw, 4, 0x66c4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { Imm8, Reg32|Reg64|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpmaddubsw, 3, 0x6604, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpmaddwd, 3, 0x66f5, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpmaxsb, 3, 0x663c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpmaxsd, 3, 0x663d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpmaxsw, 3, 0x66ee, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpmaxub, 3, 0x66de, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpmaxud, 3, 0x663f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpmaxuw, 3, 0x663e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpminsb, 3, 0x6638, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpminsd, 3, 0x6639, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpminsw, 3, 0x66ea, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpminub, 3, 0x66da, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpminud, 3, 0x663b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpminuw, 3, 0x663a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
+vpextrw, 3, 0x6615, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, RegXMM, Reg32|Reg64|RegMem }
+vpextrw, 3, 0x6615, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Word|Unspecified|BaseIndex }
+vphaddd, 3, 0x6602, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vphaddsw, 3, 0x6603, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vphaddw, 3, 0x6601, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vphminposuw, 2, 0x6641, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vphsubd, 3, 0x6606, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vphsubsw, 3, 0x6607, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vphsubw, 3, 0x6605, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpinsrb, 4, 0x6620, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, Reg32|Reg64, RegXMM, RegXMM }
+vpinsrb, 4, 0x6620, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Byte|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpinsrd, 4, 0x6622, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg32|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpinsrq, 4, 0x6622, None, 1, CpuAVX|Cpu64, Modrm|Vex|VexOpcode=2|Size64|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg64|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpinsrw, 4, 0x66c4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { Imm8, Reg32|Reg64, RegXMM, RegXMM }
+vpinsrw, 4, 0x66c4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Word|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmaddubsw, 3, 0x6604, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpmaddwd, 3, 0x66f5, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpmaxsb, 3, 0x663c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpmaxsd, 3, 0x663d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpmaxsw, 3, 0x66ee, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpmaxub, 3, 0x66de, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpmaxud, 3, 0x663f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpmaxuw, 3, 0x663e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpminsb, 3, 0x6638, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpminsd, 3, 0x6639, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpminsw, 3, 0x66ea, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpminub, 3, 0x66da, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpminud, 3, 0x663b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpminuw, 3, 0x663a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vpmovmskb, 2, 0x66d7, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { RegXMM, Reg32|Reg64 }
-vpmovsxbd, 2, 0x6621, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpmovsxbq, 2, 0x6622, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpmovsxbw, 2, 0x6620, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpmovsxdq, 2, 0x6625, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpmovsxwd, 2, 0x6623, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpmovsxwq, 2, 0x6624, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpmovzxbd, 2, 0x6631, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpmovzxbq, 2, 0x6632, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpmovzxbw, 2, 0x6630, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpmovzxdq, 2, 0x6635, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpmovzxwd, 2, 0x6633, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpmovzxwq, 2, 0x6634, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpmuldq, 3, 0x6628, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpmulhrsw, 3, 0x660b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpmulhuw, 3, 0x66e4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpmulhw, 3, 0x66e5, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpmulld, 3, 0x6640, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpmullw, 3, 0x66d5, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpmuludq, 3, 0x66f4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpor, 3, 0x66eb, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsadbw, 3, 0x66f6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpshufb, 3, 0x6600, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpshufd, 3, 0x6670, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpshufhw, 3, 0xf370, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpshuflw, 3, 0xf270, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpsignb, 3, 0x6608, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsignd, 3, 0x660a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsignw, 3, 0x6609, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
+vpmovsxbd, 2, 0x6621, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpmovsxbq, 2, 0x6622, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpmovsxbw, 2, 0x6620, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpmovsxdq, 2, 0x6625, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpmovsxwd, 2, 0x6623, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpmovsxwq, 2, 0x6624, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpmovzxbd, 2, 0x6631, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpmovzxbq, 2, 0x6632, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpmovzxbw, 2, 0x6630, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpmovzxdq, 2, 0x6635, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpmovzxwd, 2, 0x6633, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpmovzxwq, 2, 0x6634, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpmuldq, 3, 0x6628, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpmulhrsw, 3, 0x660b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpmulhuw, 3, 0x66e4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpmulhw, 3, 0x66e5, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpmulld, 3, 0x6640, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpmullw, 3, 0x66d5, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpmuludq, 3, 0x66f4, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpor, 3, 0x66eb, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpsadbw, 3, 0x66f6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpshufb, 3, 0x6600, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpshufd, 3, 0x6670, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpshufhw, 3, 0xf370, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpshuflw, 3, 0xf270, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vpsignb, 3, 0x6608, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpsignd, 3, 0x660a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpsignw, 3, 0x6609, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vpslld, 3, 0x6672, 0x6, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpslld, 3, 0x66f2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
+vpslld, 3, 0x66f2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vpslldq, 3, 0x6673, 0x7, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
 vpsllq, 3, 0x6673, 0x6, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsllq, 3, 0x66f3, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
+vpsllq, 3, 0x66f3, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vpsllw, 3, 0x6671, 0x6, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsllw, 3, 0x66f1, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
+vpsllw, 3, 0x66f1, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vpsrad, 3, 0x6672, 0x4, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsrad, 3, 0x66e2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
+vpsrad, 3, 0x66e2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vpsraw, 3, 0x6671, 0x4, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsraw, 3, 0x66e1, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
+vpsraw, 3, 0x66e1, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vpsrld, 3, 0x6672, 0x2, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsrld, 3, 0x66d2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
+vpsrld, 3, 0x66d2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vpsrldq, 3, 0x6673, 0x3, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
 vpsrlq, 3, 0x6673, 0x2, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsrlq, 3, 0x66d3, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
+vpsrlq, 3, 0x66d3, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 vpsrlw, 3, 0x6671, 0x2, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsrlw, 3, 0x66d1, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsubb, 3, 0x66f8, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsubd, 3, 0x66fa, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsubq, 3, 0x66fb, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsubsb, 3, 0x66e8, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsubsw, 3, 0x66e9, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsubusb, 3, 0x66d8, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsubusw, 3, 0x66d9, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsubw, 3, 0x66f9, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vptest, 2, 0x6617, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vptest, 2, 0x6617, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vpunpckhbw, 3, 0x6668, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpunpckhdq, 3, 0x666a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpunpckhqdq, 3, 0x666d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpunpckhwd, 3, 0x6669, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpunpcklbw, 3, 0x6660, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpunpckldq, 3, 0x6662, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpunpcklqdq, 3, 0x666c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpunpcklwd, 3, 0x6661, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpxor, 3, 0x66ef, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vrcpps, 2, 0x53, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vrcpps, 2, 0x53, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vrcpss, 3, 0xf353, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vroundpd, 3, 0x6609, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vroundpd, 3, 0x6609, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vroundps, 3, 0x6608, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vroundps, 3, 0x6608, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vroundsd, 4, 0x660b, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vroundss, 4, 0x660a, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vrsqrtps, 2, 0x52, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vrsqrtps, 2, 0x52, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vrsqrtss, 3, 0xf352, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vshufpd, 4, 0x66c6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vshufpd, 4, 0x66c6, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vshufps, 4, 0xc6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vshufps, 4, 0xc6, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vsqrtpd, 2, 0x6651, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vsqrtpd, 2, 0x6651, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vsqrtps, 2, 0x51, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vsqrtps, 2, 0x51, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vsqrtsd, 3, 0xf251, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vsqrtss, 3, 0xf351, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vstmxcsr, 1, 0xae, 0x3, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vsubpd, 3, 0x665c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vsubpd, 3, 0x665c, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vsubps, 3, 0x5c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vsubps, 3, 0x5c, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vsubsd, 3, 0xf25c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vsubss, 3, 0xf35c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vtestpd, 2, 0x660f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vtestpd, 2, 0x660f, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vtestps, 2, 0x660e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vtestps, 2, 0x660e, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vucomisd, 2, 0x662e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vucomiss, 2, 0x2e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vunpckhpd, 3, 0x6615, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vunpckhpd, 3, 0x6615, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vunpckhps, 3, 0x15, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vunpckhps, 3, 0x15, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vunpcklpd, 3, 0x6614, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vunpcklpd, 3, 0x6614, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vunpcklps, 3, 0x14, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vunpcklps, 3, 0x14, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vxorpd, 3, 0x6657, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vxorpd, 3, 0x6657, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vxorps, 3, 0x57, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vxorps, 3, 0x57, None, 1, CpuAVX, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
+vpsrlw, 3, 0x66d1, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpsubb, 3, 0x66f8, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpsubd, 3, 0x66fa, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpsubq, 3, 0x66fb, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpsubsb, 3, 0x66e8, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpsubsw, 3, 0x66e9, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpsubusb, 3, 0x66d8, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpsubusw, 3, 0x66d9, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpsubw, 3, 0x66f9, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vptest, 2, 0x6617, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vpunpckhbw, 3, 0x6668, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpunpckhdq, 3, 0x666a, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpunpckhqdq, 3, 0x666d, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpunpckhwd, 3, 0x6669, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpunpcklbw, 3, 0x6660, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpunpckldq, 3, 0x6662, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpunpcklqdq, 3, 0x666c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpunpcklwd, 3, 0x6661, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpxor, 3, 0x66ef, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vrcpps, 2, 0x53, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vrcpss, 3, 0xf353, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vroundpd, 3, 0x6609, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vroundps, 3, 0x6608, None, 1, CpuAVX, Modrm|Vex|VexOpcode=2|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vroundsd, 4, 0x660b, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vroundss, 4, 0x660a, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vrsqrtps, 2, 0x52, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vrsqrtss, 3, 0xf352, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vshufpd, 4, 0x66c6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vshufps, 4, 0xc6, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vsqrtpd, 2, 0x6651, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vsqrtps, 2, 0x51, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vsqrtsd, 3, 0xf251, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vsqrtss, 3, 0xf351, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vstmxcsr, 1, 0xae, 0x3, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex }
+vsubpd, 3, 0x665c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vsubps, 3, 0x5c, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vsubsd, 3, 0xf25c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vsubss, 3, 0xf35c, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vtestpd, 2, 0x660f, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vtestps, 2, 0x660e, None, 1, CpuAVX, Modrm|Vex|VexOpcode=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM }
+vucomisd, 2, 0x662e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vucomiss, 2, 0x2e, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vunpckhpd, 3, 0x6615, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vunpckhps, 3, 0x15, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vunpcklpd, 3, 0x6614, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vunpcklps, 3, 0x14, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vxorpd, 3, 0x6657, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vxorps, 3, 0x57, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
 vzeroall, 0, 0x77, None, 1, CpuAVX, Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 vzeroupper, 0, 0x77, None, 1, CpuAVX, Vex|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 
 // 256bit integer AVX2 instructions.
 
-vmovntdqa, 2, 0x662a, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM }
-vmpsadbw, 4, 0x6642, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpabsb, 2, 0x661c, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vpabsd, 2, 0x661e, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vpabsw, 2, 0x661d, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vpackssdw, 3, 0x666b, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpacksswb, 3, 0x6663, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpackusdw, 3, 0x662b, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpackuswb, 3, 0x6667, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpaddsb, 3, 0x66ec, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpaddsw, 3, 0x66ed, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpaddb, 3, 0x66fc, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpaddd, 3, 0x66fe, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpaddq, 3, 0x66d4, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpaddw, 3, 0x66fd, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpaddusb, 3, 0x66dc, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpaddusw, 3, 0x66dd, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpalignr, 4, 0x660f, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpand, 3, 0x66db, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpandn, 3, 0x66df, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpavgb, 3, 0x66e0, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpavgw, 3, 0x66e3, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpblendvb, 4, 0x664c, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexSources=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpblendw, 4, 0x660e, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpcmpeqb, 3, 0x6674, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpcmpeqd, 3, 0x6676, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpcmpeqq, 3, 0x6629, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpcmpeqw, 3, 0x6675, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpcmpgtb, 3, 0x6664, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpcmpgtd, 3, 0x6666, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpcmpgtq, 3, 0x6637, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpcmpgtw, 3, 0x6665, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vphaddd, 3, 0x6602, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vphaddsw, 3, 0x6603, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vphaddw, 3, 0x6601, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vphsubd, 3, 0x6606, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vphsubsw, 3, 0x6607, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vphsubw, 3, 0x6605, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpmaddubsw, 3, 0x6604, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpmaddwd, 3, 0x66f5, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpmaxsb, 3, 0x663c, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpmaxsd, 3, 0x663d, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpmaxsw, 3, 0x66ee, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpmaxub, 3, 0x66de, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpmaxud, 3, 0x663f, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpmaxuw, 3, 0x663e, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpminsb, 3, 0x6638, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpminsd, 3, 0x6639, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpminsw, 3, 0x66ea, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpminub, 3, 0x66da, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpminud, 3, 0x663b, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpminuw, 3, 0x663a, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
+vmovntdqa, 2, 0x662a, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex, RegYMM }
+vmpsadbw, 4, 0x6642, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpabsb, 2, 0x661c, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM }
+vpabsd, 2, 0x661e, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM }
+vpabsw, 2, 0x661d, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM }
+vpackssdw, 3, 0x666b, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpacksswb, 3, 0x6663, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpackusdw, 3, 0x662b, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpackuswb, 3, 0x6667, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpaddsb, 3, 0x66ec, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpaddsw, 3, 0x66ed, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpaddb, 3, 0x66fc, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpaddd, 3, 0x66fe, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpaddq, 3, 0x66d4, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpaddw, 3, 0x66fd, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpaddusb, 3, 0x66dc, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpaddusw, 3, 0x66dd, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpalignr, 4, 0x660f, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpand, 3, 0x66db, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpandn, 3, 0x66df, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpavgb, 3, 0x66e0, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpavgw, 3, 0x66e3, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpblendvb, 4, 0x664c, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexSources=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpblendw, 4, 0x660e, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpcmpeqb, 3, 0x6674, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpcmpeqd, 3, 0x6676, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpcmpeqq, 3, 0x6629, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpcmpeqw, 3, 0x6675, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpcmpgtb, 3, 0x6664, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpcmpgtd, 3, 0x6666, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpcmpgtq, 3, 0x6637, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpcmpgtw, 3, 0x6665, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vphaddd, 3, 0x6602, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vphaddsw, 3, 0x6603, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vphaddw, 3, 0x6601, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vphsubd, 3, 0x6606, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vphsubsw, 3, 0x6607, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vphsubw, 3, 0x6605, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpmaddubsw, 3, 0x6604, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpmaddwd, 3, 0x66f5, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpmaxsb, 3, 0x663c, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpmaxsd, 3, 0x663d, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpmaxsw, 3, 0x66ee, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpmaxub, 3, 0x66de, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpmaxud, 3, 0x663f, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpmaxuw, 3, 0x663e, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpminsb, 3, 0x6638, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpminsd, 3, 0x6639, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpminsw, 3, 0x66ea, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpminub, 3, 0x66da, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpminud, 3, 0x663b, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpminuw, 3, 0x663a, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
 vpmovmskb, 2, 0x66d7, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|NoRex64, { RegYMM, Reg32|Reg64 }
-vpmovsxbd, 2, 0x6621, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpmovsxbq, 2, 0x6622, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpmovsxbw, 2, 0x6620, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpmovsxdq, 2, 0x6625, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpmovsxwd, 2, 0x6623, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpmovsxwq, 2, 0x6624, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpmovzxbd, 2, 0x6631, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpmovzxbq, 2, 0x6632, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpmovzxbw, 2, 0x6630, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpmovzxdq, 2, 0x6635, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpmovzxwd, 2, 0x6633, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpmovzxwq, 2, 0x6634, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpmuldq, 3, 0x6628, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpmulhrsw, 3, 0x660b, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpmulhuw, 3, 0x66e4, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpmulhw, 3, 0x66e5, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpmulld, 3, 0x6640, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpmullw, 3, 0x66d5, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpmuludq, 3, 0x66f4, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpor, 3, 0x66eb, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpsadbw, 3, 0x66f6, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpshufb, 3, 0x6600, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpshufd, 3, 0x6670, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vpshufhw, 3, 0xf370, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vpshuflw, 3, 0xf270, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vpsignb, 3, 0x6608, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpsignd, 3, 0x660a, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpsignw, 3, 0x6609, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
+vpmovsxbd, 2, 0x6621, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegYMM }
+vpmovsxbq, 2, 0x6622, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Unspecified|BaseIndex|RegXMM, RegYMM }
+vpmovsxbw, 2, 0x6620, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM }
+vpmovsxdq, 2, 0x6625, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM }
+vpmovsxwd, 2, 0x6623, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM }
+vpmovsxwq, 2, 0x6624, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegYMM }
+vpmovzxbd, 2, 0x6631, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegYMM }
+vpmovzxbq, 2, 0x6632, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegYMM }
+vpmovzxbw, 2, 0x6630, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM }
+vpmovzxdq, 2, 0x6635, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM }
+vpmovzxwd, 2, 0x6633, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM }
+vpmovzxwq, 2, 0x6634, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegYMM }
+vpmuldq, 3, 0x6628, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpmulhrsw, 3, 0x660b, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpmulhuw, 3, 0x66e4, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpmulhw, 3, 0x66e5, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpmulld, 3, 0x6640, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpmullw, 3, 0x66d5, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpmuludq, 3, 0x66f4, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpor, 3, 0x66eb, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpsadbw, 3, 0x66f6, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpshufb, 3, 0x6600, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpshufd, 3, 0x6670, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM }
+vpshufhw, 3, 0xf370, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM }
+vpshuflw, 3, 0xf270, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM }
+vpsignb, 3, 0x6608, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpsignd, 3, 0x660a, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpsignw, 3, 0x6609, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
 vpslld, 3, 0x6672, 0x6, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpslld, 3, 0x66f2, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM, RegYMM }
+vpslld, 3, 0x66f2, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM, RegYMM }
 vpslldq, 3, 0x6673, 0x7, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
 vpsllq, 3, 0x6673, 0x6, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsllq, 3, 0x66f3, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM, RegYMM }
+vpsllq, 3, 0x66f3, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM, RegYMM }
 vpsllw, 3, 0x6671, 0x6, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsllw, 3, 0x66f1, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM, RegYMM }
+vpsllw, 3, 0x66f1, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM, RegYMM }
 vpsrad, 3, 0x6672, 0x4, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsrad, 3, 0x66e2, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM, RegYMM }
+vpsrad, 3, 0x66e2, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM, RegYMM }
 vpsraw, 3, 0x6671, 0x4, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsraw, 3, 0x66e1, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM, RegYMM }
+vpsraw, 3, 0x66e1, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM, RegYMM }
 vpsrld, 3, 0x6672, 0x2, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsrld, 3, 0x66d2, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM, RegYMM }
+vpsrld, 3, 0x66d2, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM, RegYMM }
 vpsrldq, 3, 0x6673, 0x3, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
 vpsrlq, 3, 0x6673, 0x2, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsrlq, 3, 0x66d3, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM, RegYMM }
+vpsrlq, 3, 0x66d3, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM, RegYMM }
 vpsrlw, 3, 0x6671, 0x2, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsrlw, 3, 0x66d1, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM, RegYMM }
-vpsubb, 3, 0x66f8, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpsubd, 3, 0x66fa, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpsubq, 3, 0x66fb, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpsubsb, 3, 0x66e8, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpsubsw, 3, 0x66e9, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpsubusb, 3, 0x66d8, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpsubusw, 3, 0x66d9, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpsubw, 3, 0x66f9, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpunpckhbw, 3, 0x6668, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpunpckhdq, 3, 0x666a, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpunpckhqdq, 3, 0x666d, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpunpckhwd, 3, 0x6669, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpunpcklbw, 3, 0x6660, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpunpckldq, 3, 0x6662, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpunpcklqdq, 3, 0x666c, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpunpcklwd, 3, 0x6661, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpxor, 3, 0x66ef, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
+vpsrlw, 3, 0x66d1, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM, RegYMM }
+vpsubb, 3, 0x66f8, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpsubd, 3, 0x66fa, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpsubq, 3, 0x66fb, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpsubsb, 3, 0x66e8, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpsubsw, 3, 0x66e9, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpsubusb, 3, 0x66d8, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpsubusw, 3, 0x66d9, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpsubw, 3, 0x66f9, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpunpckhbw, 3, 0x6668, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpunpckhdq, 3, 0x666a, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpunpckhqdq, 3, 0x666d, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpunpckhwd, 3, 0x6669, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpunpcklbw, 3, 0x6660, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpunpckldq, 3, 0x6662, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpunpcklqdq, 3, 0x666c, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpunpcklwd, 3, 0x6661, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpxor, 3, 0x66ef, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
 
 // New AVX2 instructions.
 
-vbroadcasti128, 2, 0x665A, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM }
+vbroadcasti128, 2, 0x665A, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex, RegYMM }
 vbroadcastsd, 2, 0x6619, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegYMM }
-vbroadcastss, 2, 0x6618, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
-vbroadcastss, 2, 0x6618, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegYMM }
-vpblendd, 4, 0x6602, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpblendd, 4, 0x6602, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpbroadcastb, 2, 0x6678, None, 1, CpuAVX2, Modrm|Vex=1|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpbroadcastb, 2, 0x6678, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpbroadcastd, 2, 0x6658, None, 1, CpuAVX2, Modrm|Vex=1|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpbroadcastd, 2, 0x6658, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpbroadcastq, 2, 0x6659, None, 1, CpuAVX2, Modrm|Vex=1|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { QWord|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpbroadcastq, 2, 0x6659, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { QWord|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vpbroadcastw, 2, 0x6679, None, 1, CpuAVX2, Modrm|Vex=1|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vpbroadcastw, 2, 0x6679, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vperm2i128, 4, 0x6646, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpermd, 3, 0x6636, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpermpd, 3, 0x6601, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vpermps, 3, 0x6616, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpermq, 3, 0x6600, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM }
-vextracti128, 3, 0x6639, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-vinserti128, 4, 0x6638, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM, RegYMM }
-vpmaskmovd, 3, 0x668e, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vpmaskmovd, 3, 0x668e, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vpmaskmovd, 3, 0x668c, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpmaskmovd, 3, 0x668c, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM, RegYMM }
-vpmaskmovq, 3, 0x668e, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vpmaskmovq, 3, 0x668e, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vpmaskmovq, 3, 0x668c, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpmaskmovq, 3, 0x668c, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM, RegYMM }
-vpsllvd, 3, 0x6647, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsllvd, 3, 0x6647, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpsllvq, 3, 0x6647, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsllvq, 3, 0x6647, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpsravd, 3, 0x6646, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsravd, 3, 0x6646, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpsrlvd, 3, 0x6645, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsrlvd, 3, 0x6645, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpsrlvq, 3, 0x6645, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpsrlvq, 3, 0x6645, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
+vbroadcastss, 2, 0x6618, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegYMM }
+vpblendd, 4, 0x6602, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vpbroadcastb, 2, 0x6678, None, 1, CpuAVX2, Modrm|Vex=1|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Byte|Unspecified|BaseIndex|RegXMM, RegXMM|RegYMM }
+vpbroadcastd, 2, 0x6658, None, 1, CpuAVX2, Modrm|Vex=1|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM|RegYMM }
+vpbroadcastq, 2, 0x6659, None, 1, CpuAVX2, Modrm|Vex=1|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { QWord|Unspecified|BaseIndex|RegXMM, RegXMM|RegYMM }
+vpbroadcastw, 2, 0x6679, None, 1, CpuAVX2, Modrm|Vex=1|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Word|Unspecified|BaseIndex|RegXMM, RegXMM|RegYMM }
+vperm2i128, 4, 0x6646, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpermd, 3, 0x6636, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpermpd, 3, 0x6601, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM }
+vpermps, 3, 0x6616, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpermq, 3, 0x6600, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM }
+vextracti128, 3, 0x6639, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, Xmmword|Unspecified|BaseIndex|RegXMM }
+vinserti128, 4, 0x6638, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM, RegYMM }
+vpmaskmovd, 3, 0x668e, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, RegXMM|RegYMM, Xmmword|Ymmword|Unspecified|BaseIndex }
+vpmaskmovd, 3, 0x668c, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Ymmword|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
+vpmaskmovq, 3, 0x668e, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|RegYMM, RegXMM|RegYMM, Xmmword|Ymmword|Unspecified|BaseIndex }
+vpmaskmovq, 3, 0x668c, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Ymmword|Unspecified|BaseIndex, RegXMM|RegYMM, RegXMM|RegYMM }
+vpsllvd, 3, 0x6647, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vpsllvq, 3, 0x6647, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vpsravd, 3, 0x6646, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vpsrlvd, 3, 0x6645, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
+vpsrlvq, 3, 0x6645, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|CheckRegSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|RegXMM|RegYMM, RegXMM|RegYMM, RegXMM|RegYMM }
 
 // AVX gather instructions
-vgatherdpd, 3, 0x6692, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vgatherdpd, 3, 0x6692, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegYMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM }
-vgatherdps, 3, 0x6692, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vgatherdps, 3, 0x6692, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=2, { RegYMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM }
-vgatherqpd, 3, 0x6693, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vgatherqpd, 3, 0x6693, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=2, { RegYMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM }
-vgatherqps, 3, 0x6693, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vgatherqps, 3, 0x6693, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=2, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vpgatherdd, 3, 0x6690, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vpgatherdd, 3, 0x6690, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=2, { RegYMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM }
-vpgatherdq, 3, 0x6690, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vpgatherdq, 3, 0x6690, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegYMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM }
-vpgatherqd, 3, 0x6691, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vpgatherqd, 3, 0x6691, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=2, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vpgatherqq, 3, 0x6691, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vpgatherqq, 3, 0x6691, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=2, { RegYMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM }
+vgatherdpd, 3, 0x6692, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Qword|Unspecified|BaseIndex, RegXMM }
+vgatherdpd, 3, 0x6692, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegYMM, Qword|Unspecified|BaseIndex, RegYMM }
+vgatherdps, 3, 0x6692, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Dword|Unspecified|BaseIndex, RegXMM }
+vgatherdps, 3, 0x6692, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=2, { RegYMM, Dword|Unspecified|BaseIndex, RegYMM }
+vgatherqpd, 3, 0x6693, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Qword|Unspecified|BaseIndex, RegXMM }
+vgatherqpd, 3, 0x6693, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=2, { RegYMM, Qword|Unspecified|BaseIndex, RegYMM }
+vgatherqps, 3, 0x6693, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Dword|Unspecified|BaseIndex, RegXMM }
+vgatherqps, 3, 0x6693, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=2, { RegXMM, Dword|Unspecified|BaseIndex, RegXMM }
+vpgatherdd, 3, 0x6690, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Dword|Unspecified|BaseIndex, RegXMM }
+vpgatherdd, 3, 0x6690, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=2, { RegYMM, Dword|Unspecified|BaseIndex, RegYMM }
+vpgatherdq, 3, 0x6690, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Qword|Unspecified|BaseIndex, RegXMM }
+vpgatherdq, 3, 0x6690, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegYMM, Qword|Unspecified|BaseIndex, RegYMM }
+vpgatherqd, 3, 0x6691, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Dword|Unspecified|BaseIndex, RegXMM }
+vpgatherqd, 3, 0x6691, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=2, { RegXMM, Dword|Unspecified|BaseIndex, RegXMM }
+vpgatherqq, 3, 0x6691, None, 1, CpuAVX2, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=1, { RegXMM, Qword|Unspecified|BaseIndex, RegXMM }
+vpgatherqq, 3, 0x6691, None, 1, CpuAVX2, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VecSIB=2, { RegYMM, Qword|Unspecified|BaseIndex, RegYMM }
 
 // AES + AVX
 
-vaesdec, 3, 0x66de, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vaesdeclast, 3, 0x66df, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vaesenc, 3, 0x66dc, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vaesenclast, 3, 0x66dd, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vaesimc, 2, 0x66db, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vaeskeygenassist, 3, 0x66df, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
+vaesdec, 3, 0x66de, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vaesdeclast, 3, 0x66df, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vaesenc, 3, 0x66dc, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vaesenclast, 3, 0x66dd, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vaesimc, 2, 0x66db, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vaeskeygenassist, 3, 0x66df, None, 1, CpuAVX|CpuAES, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM }
 
 // PCLMUL + AVX
 
-vpclmulqdq, 4, 0x6644, None, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpclmullqlqdq, 3, 0x6644, 0x0, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpclmulhqlqdq, 3, 0x6644, 0x1, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpclmullqhqdq, 3, 0x6644, 0x10, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpclmulhqhqdq, 3, 0x6644, 0x11, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
+vpclmulqdq, 4, 0x6644, None, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpclmullqlqdq, 3, 0x6644, 0x0, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpclmulhqlqdq, 3, 0x6644, 0x1, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpclmullqhqdq, 3, 0x6644, 0x10, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpclmulhqhqdq, 3, 0x6644, 0x11, 1, CpuAVX|CpuPCLMUL, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+
+// GFNI + AVX
+
+vgf2p8affineinvqb, 4, 0x66cf, None, 1, CpuAVX|CpuGFNI, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vgf2p8affineinvqb, 4, 0x66cf, None, 1, CpuAVX|CpuGFNI, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+
+vgf2p8affineqb, 4, 0x66ce, None, 1, CpuAVX|CpuGFNI, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vgf2p8affineqb, 4, 0x66ce, None, 1, CpuAVX|CpuGFNI, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+
+vgf2p8mulb, 3, 0x66cf, None, 1, CpuAVX|CpuGFNI, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vgf2p8mulb, 3, 0x66cf, None, 1, CpuAVX|CpuGFNI, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 
 // FSGSBASE, RDRND and F16C
 
@@ -2597,109 +2478,109 @@ rdgsbase, 1, 0xf30fae, 0x1, 2, CpuFSGSBa
 rdrand, 1, 0xfc7, 0x6, 2, CpuRdRnd, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32|Reg64 }
 wrfsbase, 1, 0xf30fae, 0x2, 2, CpuFSGSBase, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Reg64 }
 wrgsbase, 1, 0xf30fae, 0x3, 2, CpuFSGSBase, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Reg64 }
-vcvtph2ps, 2, 0x6613, None, 1, CpuF16C, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM }
-vcvtph2ps, 2, 0x6613, None, 1, CpuF16C, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegYMM }
-vcvtps2ph, 3, 0x661d, None, 1, CpuF16C, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
-vcvtps2ph, 3, 0x661d, None, 1, CpuF16C, Modrm|Vex=2|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM }
+vcvtph2ps, 2, 0x6613, None, 1, CpuF16C, Modrm|Vex|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vcvtph2ps, 2, 0x6613, None, 1, CpuF16C, Modrm|Vex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegYMM }
+vcvtps2ph, 3, 0x661d, None, 1, CpuF16C, Modrm|Vex|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Qword|Unspecified|BaseIndex|RegXMM }
+vcvtps2ph, 3, 0x661d, None, 1, CpuF16C, Modrm|Vex=2|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, Xmmword|Unspecified|BaseIndex|RegXMM }
 
 // FMA instructions
 
-vfmadd132pd, 3, 0x6698, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmadd132pd, 3, 0x6698, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmadd132ps, 3, 0x6698, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmadd132ps, 3, 0x6698, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmadd213pd, 3, 0x66a8, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmadd213pd, 3, 0x66a8, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmadd213ps, 3, 0x66a8, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmadd213ps, 3, 0x66a8, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmadd231pd, 3, 0x66b8, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmadd231pd, 3, 0x66b8, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmadd231ps, 3, 0x66b8, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmadd231ps, 3, 0x66b8, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmadd132sd, 3, 0x6699, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmadd132ss, 3, 0x6699, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmadd213sd, 3, 0x66a9, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmadd213ss, 3, 0x66a9, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmadd231sd, 3, 0x66b9, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmadd231ss, 3, 0x66b9, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmaddsub132pd, 3, 0x6696, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmaddsub132pd, 3, 0x6696, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmaddsub132ps, 3, 0x6696, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmaddsub132ps, 3, 0x6696, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmaddsub213pd, 3, 0x66a6, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmaddsub213pd, 3, 0x66a6, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmaddsub213ps, 3, 0x66a6, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmaddsub213ps, 3, 0x66a6, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmaddsub231pd, 3, 0x66b6, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmaddsub231pd, 3, 0x66b6, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmaddsub231ps, 3, 0x66b6, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmaddsub231ps, 3, 0x66b6, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsubadd132pd, 3, 0x6697, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsubadd132pd, 3, 0x6697, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsubadd132ps, 3, 0x6697, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsubadd132ps, 3, 0x6697, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsubadd213pd, 3, 0x66a7, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsubadd213pd, 3, 0x66a7, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsubadd213ps, 3, 0x66a7, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsubadd213ps, 3, 0x66a7, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsubadd231pd, 3, 0x66b7, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsubadd231pd, 3, 0x66b7, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsubadd231ps, 3, 0x66b7, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsubadd231ps, 3, 0x66b7, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsub132pd, 3, 0x669a, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsub132pd, 3, 0x669a, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsub132ps, 3, 0x669a, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsub132ps, 3, 0x669a, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsub213pd, 3, 0x66aa, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsub213pd, 3, 0x66aa, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsub213ps, 3, 0x66aa, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsub213ps, 3, 0x66aa, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsub231pd, 3, 0x66ba, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsub231pd, 3, 0x66ba, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsub231ps, 3, 0x66ba, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsub231ps, 3, 0x66ba, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsub132sd, 3, 0x669b, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsub132ss, 3, 0x669b, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsub213sd, 3, 0x66ab, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsub213ss, 3, 0x66ab, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsub231sd, 3, 0x66bb, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsub231ss, 3, 0x66bb, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmadd132pd, 3, 0x669c, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmadd132pd, 3, 0x669c, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmadd132ps, 3, 0x669c, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmadd132ps, 3, 0x669c, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmadd213pd, 3, 0x66ac, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmadd213pd, 3, 0x66ac, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmadd213ps, 3, 0x66ac, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmadd213ps, 3, 0x66ac, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmadd231pd, 3, 0x66bc, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmadd231pd, 3, 0x66bc, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmadd231ps, 3, 0x66bc, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmadd231ps, 3, 0x66bc, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmadd132sd, 3, 0x669d, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmadd132ss, 3, 0x669d, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmadd213sd, 3, 0x66ad, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmadd213ss, 3, 0x66ad, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmadd231sd, 3, 0x66bd, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmadd231ss, 3, 0x66bd, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsub132pd, 3, 0x669e, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsub132pd, 3, 0x669e, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmsub132ps, 3, 0x669e, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsub132ps, 3, 0x669e, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmsub213pd, 3, 0x66ae, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsub213pd, 3, 0x66ae, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmsub213ps, 3, 0x66ae, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsub213ps, 3, 0x66ae, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmsub231pd, 3, 0x66be, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsub231pd, 3, 0x66be, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmsub231ps, 3, 0x66be, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsub231ps, 3, 0x66be, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmsub132sd, 3, 0x669f, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsub132ss, 3, 0x669f, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsub213sd, 3, 0x66af, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsub213ss, 3, 0x66af, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsub231sd, 3, 0x66bf, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsub231ss, 3, 0x66bf, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
+vfmadd132pd, 3, 0x6698, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmadd132pd, 3, 0x6698, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmadd132ps, 3, 0x6698, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmadd132ps, 3, 0x6698, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmadd213pd, 3, 0x66a8, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmadd213pd, 3, 0x66a8, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmadd213ps, 3, 0x66a8, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmadd213ps, 3, 0x66a8, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmadd231pd, 3, 0x66b8, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmadd231pd, 3, 0x66b8, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmadd231ps, 3, 0x66b8, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmadd231ps, 3, 0x66b8, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmadd132sd, 3, 0x6699, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmadd132ss, 3, 0x6699, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmadd213sd, 3, 0x66a9, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmadd213ss, 3, 0x66a9, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmadd231sd, 3, 0x66b9, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmadd231ss, 3, 0x66b9, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmaddsub132pd, 3, 0x6696, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmaddsub132pd, 3, 0x6696, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmaddsub132ps, 3, 0x6696, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmaddsub132ps, 3, 0x6696, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmaddsub213pd, 3, 0x66a6, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmaddsub213pd, 3, 0x66a6, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmaddsub213ps, 3, 0x66a6, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmaddsub213ps, 3, 0x66a6, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmaddsub231pd, 3, 0x66b6, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmaddsub231pd, 3, 0x66b6, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmaddsub231ps, 3, 0x66b6, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmaddsub231ps, 3, 0x66b6, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsubadd132pd, 3, 0x6697, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsubadd132pd, 3, 0x6697, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsubadd132ps, 3, 0x6697, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsubadd132ps, 3, 0x6697, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsubadd213pd, 3, 0x66a7, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsubadd213pd, 3, 0x66a7, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsubadd213ps, 3, 0x66a7, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsubadd213ps, 3, 0x66a7, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsubadd231pd, 3, 0x66b7, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsubadd231pd, 3, 0x66b7, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsubadd231ps, 3, 0x66b7, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsubadd231ps, 3, 0x66b7, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsub132pd, 3, 0x669a, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsub132pd, 3, 0x669a, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsub132ps, 3, 0x669a, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsub132ps, 3, 0x669a, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsub213pd, 3, 0x66aa, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsub213pd, 3, 0x66aa, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsub213ps, 3, 0x66aa, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsub213ps, 3, 0x66aa, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsub231pd, 3, 0x66ba, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsub231pd, 3, 0x66ba, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsub231ps, 3, 0x66ba, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsub231ps, 3, 0x66ba, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsub132sd, 3, 0x669b, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsub132ss, 3, 0x669b, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsub213sd, 3, 0x66ab, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsub213ss, 3, 0x66ab, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsub231sd, 3, 0x66bb, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsub231ss, 3, 0x66bb, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmadd132pd, 3, 0x669c, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmadd132pd, 3, 0x669c, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmadd132ps, 3, 0x669c, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmadd132ps, 3, 0x669c, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmadd213pd, 3, 0x66ac, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmadd213pd, 3, 0x66ac, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmadd213ps, 3, 0x66ac, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmadd213ps, 3, 0x66ac, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmadd231pd, 3, 0x66bc, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmadd231pd, 3, 0x66bc, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmadd231ps, 3, 0x66bc, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmadd231ps, 3, 0x66bc, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmadd132sd, 3, 0x669d, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmadd132ss, 3, 0x669d, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmadd213sd, 3, 0x66ad, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmadd213ss, 3, 0x66ad, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmadd231sd, 3, 0x66bd, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmadd231ss, 3, 0x66bd, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsub132pd, 3, 0x669e, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsub132pd, 3, 0x669e, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmsub132ps, 3, 0x669e, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsub132ps, 3, 0x669e, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmsub213pd, 3, 0x66ae, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsub213pd, 3, 0x66ae, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmsub213ps, 3, 0x66ae, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsub213ps, 3, 0x66ae, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmsub231pd, 3, 0x66be, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsub231pd, 3, 0x66be, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmsub231ps, 3, 0x66be, None, 1, CpuFMA, Modrm|Vex|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsub231ps, 3, 0x66be, None, 1, CpuFMA, Modrm|Vex=2|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmsub132sd, 3, 0x669f, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsub132ss, 3, 0x669f, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsub213sd, 3, 0x66af, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsub213ss, 3, 0x66af, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsub231sd, 3, 0x66bf, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsub231ss, 3, 0x66bf, None, 1, CpuFMA, Modrm|Vex=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 
 // HLE prefixes
 
@@ -2713,81 +2594,81 @@ xend, 0, 0xf01d5, None, 3, CpuRTM, No_bS
 xtest, 0, 0xf01d6, None, 3, CpuHLE|CpuRTM, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 
 // BMI2 instructions.
-bzhi, 3, 0xf5, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64, Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
-mulx, 3, 0xf2f6, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64, Reg32|Reg64 }
-pdep, 3, 0xf2f5, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64, Reg32|Reg64 }
-pext, 3, 0xf3f5, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64, Reg32|Reg64 }
-rorx, 3, 0xf2f0, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=2|VexVVVV=0|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
-sarx, 3, 0xf3f7, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64, Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
-shlx, 3, 0x66f7, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64, Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
-shrx, 3, 0xf2f7, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64, Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
+bzhi, 3, 0xf5, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64, Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64 }
+mulx, 3, 0xf2f6, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
+pdep, 3, 0xf2f5, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
+pext, 3, 0xf3f5, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
+rorx, 3, 0xf2f0, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=2|VexVVVV=0|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm8, Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64 }
+sarx, 3, 0xf3f7, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64, Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64 }
+shlx, 3, 0x66f7, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64, Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64 }
+shrx, 3, 0xf2f7, None, 1, CpuBMI2, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64, Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64 }
 
 // FMA4 instructions
 
-vfmaddpd, 4, 0x6669, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfmaddpd, 4, 0x6669, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmaddpd, 4, 0x6669, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM, RegYMM }
-vfmaddpd, 4, 0x6669, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmaddps, 4, 0x6668, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfmaddps, 4, 0x6668, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmaddps, 4, 0x6668, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM, RegYMM }
-vfmaddps, 4, 0x6668, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmaddsd, 4, 0x666b, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfmaddsd, 4, 0x666b, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmaddss, 4, 0x666a, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfmaddss, 4, 0x666a, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmaddsubpd, 4, 0x665d, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfmaddsubpd, 4, 0x665d, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmaddsubpd, 4, 0x665d, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM, RegYMM }
-vfmaddsubpd, 4, 0x665d, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmaddsubps, 4, 0x665c, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfmaddsubps, 4, 0x665c, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmaddsubps, 4, 0x665c, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM, RegYMM }
-vfmaddsubps, 4, 0x665c, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsubaddpd, 4, 0x665f, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfmsubaddpd, 4, 0x665f, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsubaddpd, 4, 0x665f, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM, RegYMM }
-vfmsubaddpd, 4, 0x665f, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsubaddps, 4, 0x665e, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfmsubaddps, 4, 0x665e, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsubaddps, 4, 0x665e, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM, RegYMM }
-vfmsubaddps, 4, 0x665e, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsubpd, 4, 0x666d, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfmsubpd, 4, 0x666d, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsubpd, 4, 0x666d, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM, RegYMM }
-vfmsubpd, 4, 0x666d, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsubps, 4, 0x666c, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfmsubps, 4, 0x666c, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsubps, 4, 0x666c, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM, RegYMM }
-vfmsubps, 4, 0x666c, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfmsubsd, 4, 0x666f, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfmsubsd, 4, 0x666f, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfmsubss, 4, 0x666e, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfmsubss, 4, 0x666e, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmaddpd, 4, 0x6679, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfnmaddpd, 4, 0x6679, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmaddpd, 4, 0x6679, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM, RegYMM }
-vfnmaddpd, 4, 0x6679, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmaddps, 4, 0x6678, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfnmaddps, 4, 0x6678, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmaddps, 4, 0x6678, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM, RegYMM }
-vfnmaddps, 4, 0x6678, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmaddsd, 4, 0x667b, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfnmaddsd, 4, 0x667b, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmaddss, 4, 0x667a, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfnmaddss, 4, 0x667a, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsubpd, 4, 0x667d, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfnmsubpd, 4, 0x667d, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsubpd, 4, 0x667d, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM, RegYMM }
-vfnmsubpd, 4, 0x667d, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmsubps, 4, 0x667c, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfnmsubps, 4, 0x667c, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsubps, 4, 0x667c, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM, RegYMM }
-vfnmsubps, 4, 0x667c, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vfnmsubsd, 4, 0x667f, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfnmsubsd, 4, 0x667f, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vfnmsubss, 4, 0x667e, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vfnmsubss, 4, 0x667e, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
+vfmaddpd, 4, 0x6669, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfmaddpd, 4, 0x6669, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmaddpd, 4, 0x6669, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM, RegYMM }
+vfmaddpd, 4, 0x6669, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmaddps, 4, 0x6668, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfmaddps, 4, 0x6668, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmaddps, 4, 0x6668, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM, RegYMM }
+vfmaddps, 4, 0x6668, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmaddsd, 4, 0x666b, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfmaddsd, 4, 0x666b, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmaddss, 4, 0x666a, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfmaddss, 4, 0x666a, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmaddsubpd, 4, 0x665d, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfmaddsubpd, 4, 0x665d, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmaddsubpd, 4, 0x665d, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM, RegYMM }
+vfmaddsubpd, 4, 0x665d, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmaddsubps, 4, 0x665c, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfmaddsubps, 4, 0x665c, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmaddsubps, 4, 0x665c, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM, RegYMM }
+vfmaddsubps, 4, 0x665c, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsubaddpd, 4, 0x665f, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfmsubaddpd, 4, 0x665f, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsubaddpd, 4, 0x665f, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM, RegYMM }
+vfmsubaddpd, 4, 0x665f, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsubaddps, 4, 0x665e, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfmsubaddps, 4, 0x665e, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsubaddps, 4, 0x665e, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM, RegYMM }
+vfmsubaddps, 4, 0x665e, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsubpd, 4, 0x666d, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfmsubpd, 4, 0x666d, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsubpd, 4, 0x666d, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM, RegYMM }
+vfmsubpd, 4, 0x666d, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsubps, 4, 0x666c, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfmsubps, 4, 0x666c, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsubps, 4, 0x666c, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM, RegYMM }
+vfmsubps, 4, 0x666c, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfmsubsd, 4, 0x666f, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfmsubsd, 4, 0x666f, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfmsubss, 4, 0x666e, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfmsubss, 4, 0x666e, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmaddpd, 4, 0x6679, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfnmaddpd, 4, 0x6679, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmaddpd, 4, 0x6679, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM, RegYMM }
+vfnmaddpd, 4, 0x6679, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmaddps, 4, 0x6678, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfnmaddps, 4, 0x6678, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmaddps, 4, 0x6678, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM, RegYMM }
+vfnmaddps, 4, 0x6678, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmaddsd, 4, 0x667b, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfnmaddsd, 4, 0x667b, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmaddss, 4, 0x667a, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfnmaddss, 4, 0x667a, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsubpd, 4, 0x667d, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfnmsubpd, 4, 0x667d, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsubpd, 4, 0x667d, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM, RegYMM }
+vfnmsubpd, 4, 0x667d, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmsubps, 4, 0x667c, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfnmsubps, 4, 0x667c, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsubps, 4, 0x667c, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM, RegYMM }
+vfnmsubps, 4, 0x667c, None, 1, CpuFMA4, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vfnmsubsd, 4, 0x667f, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfnmsubsd, 4, 0x667f, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Qword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vfnmsubss, 4, 0x667e, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vfnmsubss, 4, 0x667e, None, 1, CpuFMA4, Modrm|Vex|VexOpcode=2|VexVVVV=1|VexW=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, {RegXMM, Dword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
 
 // XOP instructions
 // We add Imm8 to Vex_Imm4.  We use Imm8 to indicate that the operand
@@ -2803,86 +2684,86 @@ vpcmov,     4, 0xa2, None, 1, CpuXOP, Mo
 vpcmov,     4, 0xa2, None, 1, CpuXOP, Modrm|VexOpcode=3|VexSources=2|VexImmExt|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex=2, { RegYMM, Ymmword|RegYMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegYMM, RegYMM }
 vpcmov,     4, 0xa2, None, 1, CpuXOP, Modrm|VexOpcode=3|VexSources=2|VexImmExt|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex,   { Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM, RegXMM, RegXMM }
 vpcmov,     4, 0xa2, None, 1, CpuXOP, Modrm|VexOpcode=3|VexSources=2|VexImmExt|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex=2, { Ymmword|RegYMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegYMM, RegYMM, RegYMM }
-vpcomb,     4, 0xcc, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomd,     4, 0xce, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomq,     4, 0xcf, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomub,    4, 0xec, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomud,    4, 0xee, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomuq,    4, 0xef, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomuw,    4, 0xed, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomw,     4, 0xcd, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpermil2pd, 5, 0x6649, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=1|Vex=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpermil2pd, 5, 0x6649, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=2|Vex=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vpermil2pd, 5, 0x6649, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=1|Vex=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpermil2pd, 5, 0x6649, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=2|Vex=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM, RegYMM }
-vpermil2ps, 5, 0x6648, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=1|Vex=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, RegXMM, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM }
-vpermil2ps, 5, 0x6648, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=2|Vex=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM, RegXMM, RegXMM }
-vpermil2ps, 5, 0x6648, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=1|Vex=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, RegYMM, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM }
-vpermil2ps, 5, 0x6648, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=2|Vex=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, Ymmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegYMM, RegYMM, RegYMM, RegYMM }
-vpcomltb,   3, 0xcc, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomltd,   3, 0xce, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomltq,   3, 0xcf, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomltub,  3, 0xec, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomltud,  3, 0xee, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomltuq,  3, 0xef, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomltuw,  3, 0xed, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomltw,   3, 0xcd, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomleb,   3, 0xcc, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomled,   3, 0xce, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomleq,   3, 0xcf, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomleub,  3, 0xec, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomleud,  3, 0xee, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomleuq,  3, 0xef, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomleuw,  3, 0xed, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomlew,   3, 0xcd, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgtb,   3, 0xcc, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgtd,   3, 0xce, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgtq,   3, 0xcf, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgtub,  3, 0xec, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgtud,  3, 0xee, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgtuq,  3, 0xef, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgtuw,  3, 0xed, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgtw,   3, 0xcd, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgeb,   3, 0xcc, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomged,   3, 0xce, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgeq,   3, 0xcf, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgeub,  3, 0xec, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgeud,  3, 0xee, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgeuq,  3, 0xef, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgeuw,  3, 0xed, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomgew,   3, 0xcd, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomeqb,   3, 0xcc, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomeqd,   3, 0xce, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomeqq,   3, 0xcf, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomequb,  3, 0xec, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomequd,  3, 0xee, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomequq,  3, 0xef, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomequw,  3, 0xed, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomeqw,   3, 0xcd, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomneqb,   3, 0xcc, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomneqd,   3, 0xce, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomneqq,   3, 0xcf, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomnequb,  3, 0xec, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomnequd,  3, 0xee, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomnequq,  3, 0xef, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomnequw,  3, 0xed, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomneqw,   3, 0xcd, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomfalseb,   3, 0xcc, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomfalsed,   3, 0xce, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomfalseq,   3, 0xcf, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomfalseub,  3, 0xec, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomfalseud,  3, 0xee, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomfalseuq,  3, 0xef, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomfalseuw,  3, 0xed, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomfalsew,   3, 0xcd, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomtrueb,   3, 0xcc, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomtrued,   3, 0xce, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomtrueq,   3, 0xcf, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomtrueub,  3, 0xec, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomtrueud,  3, 0xee, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomtrueuq,  3, 0xef, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomtrueuw,  3, 0xed, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpcomtruew,   3, 0xcd, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
+vpcomb,     4, 0xcc, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomd,     4, 0xce, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomq,     4, 0xcf, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomub,    4, 0xec, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomud,    4, 0xee, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomuq,    4, 0xef, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomuw,    4, 0xed, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomw,     4, 0xcd, None, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Imm8, Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermil2pd, 5, 0x6649, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=1|Vex=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpermil2pd, 5, 0x6649, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=2|Vex=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vpermil2pd, 5, 0x6649, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=1|Vex=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpermil2pd, 5, 0x6649, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=2|Vex=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM, RegYMM }
+vpermil2ps, 5, 0x6648, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=1|Vex=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, RegXMM, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM }
+vpermil2ps, 5, 0x6648, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=2|Vex=1|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, Xmmword|Unspecified|BaseIndex|RegXMM, RegXMM, RegXMM, RegXMM }
+vpermil2ps, 5, 0x6648, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=1|Vex=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, RegYMM, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+vpermil2ps, 5, 0x6648, None, 1, CpuXOP, Modrm|VexOpcode=2|VexVVVV=1|VexW=2|Vex=2|VexSources=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexImmExt, { Imm8|Vec_Imm4, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM, RegYMM }
+vpcomltb,   3, 0xcc, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomltd,   3, 0xce, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomltq,   3, 0xcf, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomltub,  3, 0xec, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomltud,  3, 0xee, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomltuq,  3, 0xef, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomltuw,  3, 0xed, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomltw,   3, 0xcd, 0x0, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomleb,   3, 0xcc, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomled,   3, 0xce, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomleq,   3, 0xcf, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomleub,  3, 0xec, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomleud,  3, 0xee, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomleuq,  3, 0xef, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomleuw,  3, 0xed, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomlew,   3, 0xcd, 0x1, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgtb,   3, 0xcc, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgtd,   3, 0xce, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgtq,   3, 0xcf, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgtub,  3, 0xec, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgtud,  3, 0xee, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgtuq,  3, 0xef, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgtuw,  3, 0xed, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgtw,   3, 0xcd, 0x2, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgeb,   3, 0xcc, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomged,   3, 0xce, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgeq,   3, 0xcf, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgeub,  3, 0xec, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgeud,  3, 0xee, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgeuq,  3, 0xef, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgeuw,  3, 0xed, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomgew,   3, 0xcd, 0x3, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomeqb,   3, 0xcc, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomeqd,   3, 0xce, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomeqq,   3, 0xcf, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomequb,  3, 0xec, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomequd,  3, 0xee, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomequq,  3, 0xef, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomequw,  3, 0xed, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomeqw,   3, 0xcd, 0x4, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomneqb,   3, 0xcc, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomneqd,   3, 0xce, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomneqq,   3, 0xcf, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomnequb,  3, 0xec, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomnequd,  3, 0xee, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomnequq,  3, 0xef, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomnequw,  3, 0xed, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomneqw,   3, 0xcd, 0x5, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomfalseb,   3, 0xcc, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomfalsed,   3, 0xce, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomfalseq,   3, 0xcf, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomfalseub,  3, 0xec, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomfalseud,  3, 0xee, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomfalseuq,  3, 0xef, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomfalseuw,  3, 0xed, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomfalsew,   3, 0xcd, 0x6, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomtrueb,   3, 0xcc, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomtrued,   3, 0xce, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomtrueq,   3, 0xcf, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomtrueub,  3, 0xec, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomtrueud,  3, 0xee, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomtrueuq,  3, 0xef, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomtrueuw,  3, 0xed, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpcomtruew,   3, 0xcd, 0x7, 1, CpuXOP, Modrm|VexOpcode=3|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex|ImmExt, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
 vphaddbd,   2, 0xc2, None, 1, CpuXOP, Modrm|VexOpcode=4|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|No_qSuf|IgnoreSize|Vex, { Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM }
 vphaddbq,   2, 0xc3, None, 1, CpuXOP, Modrm|VexOpcode=4|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|No_qSuf|IgnoreSize|Vex, { Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM }
 vphaddbw,   2, 0xc1, None, 1, CpuXOP, Modrm|VexOpcode=4|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|No_qSuf|IgnoreSize|Vex, { Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM }
@@ -2910,8 +2791,8 @@ vpmacswd,   4, 0x96, None, 1, CpuXOP, Mo
 vpmacsww,   4, 0x95, None, 1, CpuXOP, Modrm|VexOpcode=3|VexSources=2|VexImmExt|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { RegXMM, Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM, RegXMM }
 vpmadcsswd, 4, 0xa6, None, 1, CpuXOP, Modrm|VexOpcode=3|VexSources=2|VexImmExt|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { RegXMM, Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM, RegXMM }
 vpmadcswd,  4, 0xb6, None, 1, CpuXOP, Modrm|VexOpcode=3|VexSources=2|VexImmExt|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { RegXMM, Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM, RegXMM }
-vpperm,     4, 0xa3, None, 1, CpuXOP, Modrm|VexOpcode=3|VexSources=2|VexImmExt|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { RegXMM, Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-vpperm,     4, 0xa3, None, 1, CpuXOP, Modrm|VexOpcode=3|VexSources=2|VexImmExt|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Xmmword|RegXMM|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM, RegXMM }
+vpperm,     4, 0xa3, None, 1, CpuXOP, Modrm|VexOpcode=3|VexSources=2|VexImmExt|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { RegXMM, Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpperm,     4, 0xa3, None, 1, CpuXOP, Modrm|VexOpcode=3|VexSources=2|VexImmExt|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Vex, { Xmmword|RegXMM|Unspecified|BaseIndex, RegXMM, RegXMM, RegXMM }
 vprotb,     3, 0x90, None, 1, CpuXOP, Modrm|VexOpcode=4|VexW=1|VexSources=1|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|No_qSuf|IgnoreSize|Vex, { RegXMM, Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM }
 vprotb,     3, 0x90, None, 1, CpuXOP, Modrm|VexOpcode=4|VexW=2|VexSources=1|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|No_qSuf|IgnoreSize|Vex, { Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM, RegXMM }
 vprotb,     3, 0xc0, None, 1, CpuXOP, Modrm|VexOpcode=3|VexW=1|VexSources=1|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|No_qSuf|IgnoreSize|Vex, { Imm8, Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM }
@@ -2954,12 +2835,12 @@ lwpins, 3, 0x12, 0x0, 1, CpuLWP, Modrm|V
 
 // BMI instructions
 
-andn, 3, 0xf2, None, 1, CpuBMI, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64, Reg32|Reg64 }
-bextr, 3, 0xf7, None, 1, CpuBMI, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64, Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
-blsi, 2, 0xf3, 0x3, 1, CpuBMI, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=2|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
-blsmsk, 2, 0xf3, 0x2, 1, CpuBMI, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=2|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
-blsr, 2, 0xf3, 0x1, 1, CpuBMI, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=2|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
-tzcnt, 2, 0xf30fbc, None, 2, CpuBMI, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
+andn, 3, 0xf2, None, 1, CpuBMI, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
+bextr, 3, 0xf7, None, 1, CpuBMI, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64, Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64 }
+blsi, 2, 0xf3, 0x3, 1, CpuBMI, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=2|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64 }
+blsmsk, 2, 0xf3, 0x2, 1, CpuBMI, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=2|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64 }
+blsr, 2, 0xf3, 0x1, 1, CpuBMI, Modrm|CheckRegSize|Vex=3|VexOpcode=1|VexVVVV=2|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64 }
+tzcnt, 2, 0xf30fbc, None, 2, CpuBMI, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 // TBM instructions
 bextr,  3, 0x10,   None, 1, CpuTBM, Modrm|CheckRegSize|Vex=3|VexOpcode=5|VexVVVV=0|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Imm32|Imm32S, Reg32|Reg64|Dword|Qword|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32|Reg64 }
@@ -2975,33 +2856,33 @@ tzmsk,  2, 0x01,   0x4, 1, CpuTBM, Modrm
 
 // AMD 3DNow! instructions.
 
-prefetch, 1, 0xf0d, 0x0, 2, Cpu3dnow|CpuPRFCHW, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-prefetchw, 1, 0xf0d, 0x1, 2, Cpu3dnow|CpuPRFCHW, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+prefetch, 1, 0xf0d, 0x0, 2, Cpu3dnow|CpuPRFCHW, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex }
+prefetchw, 1, 0xf0d, 0x1, 2, Cpu3dnow|CpuPRFCHW, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex }
 femms, 0, 0xf0e, None, 2, Cpu3dnow, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
-pavgusb, 2, 0xf0f, 0xbf, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pf2id, 2, 0xf0f, 0x1d, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pf2iw, 2, 0xf0f, 0x1c, 2, Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfacc, 2, 0xf0f, 0xae, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfadd, 2, 0xf0f, 0x9e, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfcmpeq, 2, 0xf0f, 0xb0, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfcmpge, 2, 0xf0f, 0x90, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfcmpgt, 2, 0xf0f, 0xa0, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfmax, 2, 0xf0f, 0xa4, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfmin, 2, 0xf0f, 0x94, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfmul, 2, 0xf0f, 0xb4, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfnacc, 2, 0xf0f, 0x8a, 2, Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfpnacc, 2, 0xf0f, 0x8e, 2, Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfrcp, 2, 0xf0f, 0x96, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfrcpit1, 2, 0xf0f, 0xa6, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfrcpit2, 2, 0xf0f, 0xb6, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfrsqit1, 2, 0xf0f, 0xa7, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfrsqrt, 2, 0xf0f, 0x97, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfsub, 2, 0xf0f, 0x9a, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pfsubr, 2, 0xf0f, 0xaa, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pi2fd, 2, 0xf0f, 0xd, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pi2fw, 2, 0xf0f, 0xc, 2, Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pmulhrw, 2, 0xf0f, 0xb7, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
-pswapd, 2, 0xf0f, 0xbb, 2, Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegMMX, RegMMX }
+pavgusb, 2, 0xf0f, 0xbf, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pf2id, 2, 0xf0f, 0x1d, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pf2iw, 2, 0xf0f, 0x1c, 2, Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfacc, 2, 0xf0f, 0xae, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfadd, 2, 0xf0f, 0x9e, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfcmpeq, 2, 0xf0f, 0xb0, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfcmpge, 2, 0xf0f, 0x90, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfcmpgt, 2, 0xf0f, 0xa0, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfmax, 2, 0xf0f, 0xa4, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfmin, 2, 0xf0f, 0x94, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfmul, 2, 0xf0f, 0xb4, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfnacc, 2, 0xf0f, 0x8a, 2, Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfpnacc, 2, 0xf0f, 0x8e, 2, Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfrcp, 2, 0xf0f, 0x96, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfrcpit1, 2, 0xf0f, 0xa6, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfrcpit2, 2, 0xf0f, 0xb6, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfrsqit1, 2, 0xf0f, 0xa7, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfrsqrt, 2, 0xf0f, 0x97, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfsub, 2, 0xf0f, 0x9a, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pfsubr, 2, 0xf0f, 0xaa, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pi2fd, 2, 0xf0f, 0xd, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pi2fw, 2, 0xf0f, 0xc, 2, Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pmulhrw, 2, 0xf0f, 0xb7, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
+pswapd, 2, 0xf0f, 0xbb, 2, Cpu3dnowA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|Unspecified|BaseIndex|RegMMX, RegMMX }
 
 // AMD extensions.
 syscall, 0, 0xf05, None, 2, CpuSYSCALL, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
@@ -3028,16 +2909,16 @@ vmsave, 1, 0xf01, 0xdb, 2, CpuSVME, No_b
 
 
 // SSE4a instructions
-movntsd, 2, 0xf20f2b, None, 2, CpuSSE4a, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-movntss, 2, 0xf30f2b, None, 2, CpuSSE4a, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+movntsd, 2, 0xf20f2b, None, 2, CpuSSE4a, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+movntss, 2, 0xf30f2b, None, 2, CpuSSE4a, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex }
 extrq, 3, 0x660f78, 0x0, 2, CpuSSE4a, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Imm8, RegXMM }
 extrq, 2, 0x660f79, None, 2, CpuSSE4a, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
 insertq, 2, 0xf20f79, None, 2, CpuSSE4a, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
 insertq, 4, 0xf20f78, None, 2, CpuSSE4a, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Imm8, RegXMM, RegXMM }
 
 // ABM instructions
-popcnt, 2, 0xf30fb8, None, 2, CpuABM|CpuSSE4_2, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf|NoAVX, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
-lzcnt, 2, 0xf30fbd, None, 2, CpuABM|CpuLZCNT, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 }
+popcnt, 2, 0xf30fb8, None, 2, CpuABM|CpuSSE4_2, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf|NoAVX, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+lzcnt, 2, 0xf30fbd, None, 2, CpuABM|CpuLZCNT, Modrm|CheckRegSize|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 // VIA PadLock extensions.
 xstore-rng, 0, 0xfa7, 0xc0, 2, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk|ImmExt, { 0 }
@@ -3060,8 +2941,8 @@ xcryptofb, 0, 0xf30fa7, 0xe8, 2, CpuPadL
 xstore, 0, 0xfa7, 0xc0, 2, CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk|ImmExt, { 0 }
 
 // Multy-precision Add Carry, rdseed instructions.
-adcx, 2, 0x660f38f6, None, 3, CpuADX, Modrm|CheckRegSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
-adox, 2, 0xf30f38f6, None, 3, CpuADX, Modrm|CheckRegSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32|Reg64 }
+adcx, 2, 0x660f38f6, None, 3, CpuADX, Modrm|CheckRegSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64 }
+adox, 2, 0xf30f38f6, None, 3, CpuADX, Modrm|CheckRegSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, Reg32|Reg64 }
 rdseed, 1, 0xfc7, 0x7, 2, CpuRdSeed, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32|Reg64 }
 
 // SMAP instructions.
@@ -3072,28 +2953,34 @@ stac, 0, 0xf01, 0xcb, 2, CpuSMAP, No_bSu
 bnd, 0, 0xf2, None, 1, CpuMPX, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsPrefix, { 0 }
 
 // MPX instructions.
-bndmk, 2, 0xf30f1b, None, 2, CpuMPX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex|Disp8|Disp32|Disp32S, RegBND }
-bndmov, 2, 0x660f1a, None, 2, CpuMPX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Xmmword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|RegBND, RegBND }
-bndmov, 2, 0x660f1b, None, 2, CpuMPX, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegBND, Xmmword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|RegBND }
-bndcl, 2, 0xf30f1a, None, 2, CpuMPX|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Anysize|BaseIndex|Disp8|Disp32, RegBND }
-bndcl, 2, 0xf30f1a, None, 2, CpuMPX|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg64|Anysize|BaseIndex|Disp8|Disp32|Disp32S, RegBND }
-bndcu, 2, 0xf20f1a, None, 2, CpuMPX|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Anysize|BaseIndex|Disp8|Disp32, RegBND }
-bndcu, 2, 0xf20f1a, None, 2, CpuMPX|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg64|Anysize|BaseIndex|Disp8|Disp32|Disp32S, RegBND }
-bndcn, 2, 0xf20f1b, None, 2, CpuMPX|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Anysize|BaseIndex|Disp8|Disp32, RegBND }
-bndcn, 2, 0xf20f1b, None, 2, CpuMPX|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg64|Anysize|BaseIndex|Disp8|Disp32|Disp32S, RegBND }
-bndstx, 2, 0x0f1b, None, 2, CpuMPX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegBND, Anysize|BaseIndex|Disp8|Disp32|Disp32S }
-bndldx, 2, 0x0f1a, None, 2, CpuMPX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex|Disp8|Disp32|Disp32S, RegBND }
+bndmk, 2, 0xf30f1b, None, 2, CpuMPX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex, RegBND }
+bndmov, 2, 0x660f1a, None, 2, CpuMPX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoAVX, { Xmmword|Unspecified|BaseIndex|RegBND, RegBND }
+bndmov, 2, 0x660f1b, None, 2, CpuMPX, Load|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegBND, Xmmword|Unspecified|BaseIndex|RegBND }
+bndcl, 2, 0xf30f1a, None, 2, CpuMPX|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Anysize|BaseIndex, RegBND }
+bndcl, 2, 0xf30f1a, None, 2, CpuMPX|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg64|Anysize|BaseIndex, RegBND }
+bndcu, 2, 0xf20f1a, None, 2, CpuMPX|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Anysize|BaseIndex, RegBND }
+bndcu, 2, 0xf20f1a, None, 2, CpuMPX|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg64|Anysize|BaseIndex, RegBND }
+bndcn, 2, 0xf20f1b, None, 2, CpuMPX|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Anysize|BaseIndex, RegBND }
+bndcn, 2, 0xf20f1b, None, 2, CpuMPX|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg64|Anysize|BaseIndex, RegBND }
+bndstx, 2, 0x0f1b, None, 2, CpuMPX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegBND, Anysize|BaseIndex }
+bndldx, 2, 0x0f1a, None, 2, CpuMPX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex, RegBND }
 
 // SHA instructions.
 sha1rnds4, 3, 0xf3acc, None, 3, CpuSHA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM }
 sha1nexte, 2, 0xf38c8, None, 3, CpuSHA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM }
 sha1msg1, 2, 0xf38c9, None, 3, CpuSHA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM }
 sha1msg2, 2, 0xf38ca, None, 3, CpuSHA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM }
-sha256rnds2, 3, 0xf38cb, None, 3, CpuSHA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|FirstXmm0, { RegXMM, Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM }
+sha256rnds2, 3, 0xf38cb, None, 3, CpuSHA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Acc|Xmmword, Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM }
 sha256rnds2, 2, 0xf38cb, None, 3, CpuSHA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM }
 sha256msg1, 2, 0xf38cc, None, 3, CpuSHA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM }
 sha256msg2, 2, 0xf38cd, None, 3, CpuSHA, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|RegXMM|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, RegXMM }
 
+// VPCLMULQDQ instructions
+
+vpclmulqdq, 4, 0x6644, None, 1, CpuVPCLMULQDQ, Modrm|Vex=2|VexOpcode=2|VexVVVV=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Ymmword|Unspecified|BaseIndex|RegYMM, RegYMM, RegYMM }
+
+// VPCLMULQDQ instructions end
+
 // AVX512F instructions.
 
 kandnw, 3, 0x42, None, 1, CpuAVX512F, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
@@ -3102,8 +2989,8 @@ korw, 3, 0x45, None, 1, CpuAVX512F, Modr
 kxnorw, 3, 0x46, None, 1, CpuAVX512F, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
 kxorw, 3, 0x47, None, 1, CpuAVX512F, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
 
-kmovw, 2, 0x90, None, 1, CpuAVX512F, Modrm|Vex=1|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegMask }
-kmovw, 2, 0x91, None, 1, CpuAVX512F, Modrm|Vex=1|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+kmovw, 2, 0x90, None, 1, CpuAVX512F, Modrm|Vex=1|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask|Word|Unspecified|BaseIndex, RegMask }
+kmovw, 2, 0x91, None, 1, CpuAVX512F, Modrm|Vex=1|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, Word|Unspecified|BaseIndex }
 kmovw, 2, 0x92, None, 1, CpuAVX512F, Modrm|Vex=1|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32, RegMask }
 kmovw, 2, 0x93, None, 1, CpuAVX512F, Modrm|Vex=1|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, Reg32 }
 
@@ -3115,1121 +3002,1122 @@ kshiftrw, 3, 0x6630, None, 1, CpuAVX512F
 
 kunpckbw, 3, 0x664B, None, 1, CpuAVX512F, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
 
-vaddpd, 3, 0x6658, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vaddpd, 3, 0x6658, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vaddpd, 4, 0x6658, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vdivpd, 3, 0x665E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vdivpd, 3, 0x665E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vdivpd, 4, 0x665E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vmulpd, 3, 0x6659, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vmulpd, 3, 0x6659, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vmulpd, 4, 0x6659, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vsubpd, 3, 0x665C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vsubpd, 3, 0x665C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vsubpd, 4, 0x665C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
 
-vaddps, 3, 0x58, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vaddps, 3, 0x58, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vaddps, 4, 0x58, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vdivps, 3, 0x5E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vdivps, 3, 0x5E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vdivps, 4, 0x5E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vmulps, 3, 0x59, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vmulps, 3, 0x59, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vmulps, 4, 0x59, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vsubps, 3, 0x5C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vsubps, 3, 0x5C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vsubps, 4, 0x5C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
 
-vaddsd, 3, 0xF258, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vaddsd, 3, 0xF258, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vaddsd, 4, 0xF258, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vdivsd, 3, 0xF25E, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vdivsd, 3, 0xF25E, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vdivsd, 4, 0xF25E, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vmulsd, 3, 0xF259, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vmulsd, 3, 0xF259, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vmulsd, 4, 0xF259, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vsqrtsd, 3, 0xF251, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vsqrtsd, 3, 0xF251, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vsqrtsd, 4, 0xF251, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vsubsd, 3, 0xF25C, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vsubsd, 3, 0xF25C, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vsubsd, 4, 0xF25C, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
 
-vaddss, 3, 0xF358, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vaddss, 3, 0xF358, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vaddss, 4, 0xF358, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vdivss, 3, 0xF35E, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vdivss, 3, 0xF35E, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vdivss, 4, 0xF35E, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vmulss, 3, 0xF359, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vmulss, 3, 0xF359, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vmulss, 4, 0xF359, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vsqrtss, 3, 0xF351, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vsqrtss, 3, 0xF351, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vsqrtss, 4, 0xF351, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vsubss, 3, 0xF35C, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vsubss, 3, 0xF35C, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vsubss, 4, 0xF35C, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
 
-valignd, 4, 0x6603, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpternlogd, 4, 0x6625, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+valignd, 4, 0x6603, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpternlogd, 4, 0x6625, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 
-valignq, 4, 0x6603, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpternlogq, 4, 0x6625, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+valignq, 4, 0x6603, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpternlogq, 4, 0x6625, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 
-vblendmpd, 3, 0x6665, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpblendmq, 3, 0x6664, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermi2pd, 3, 0x6677, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermi2q, 3, 0x6676, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermt2pd, 3, 0x667F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermt2q, 3, 0x667E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmaxsq, 3, 0x663D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmaxuq, 3, 0x663F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpminsq, 3, 0x6639, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpminuq, 3, 0x663B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmuldq, 3, 0x6628, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vprolvq, 3, 0x6615, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vprorvq, 3, 0x6614, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsllvq, 3, 0x6647, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsravq, 3, 0x6646, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsrlvq, 3, 0x6645, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-
-vblendmps, 3, 0x6665, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpblendmd, 3, 0x6664, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermi2d, 3, 0x6676, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermi2ps, 3, 0x6677, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermt2d, 3, 0x667E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermt2ps, 3, 0x667F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmaxsd, 3, 0x663D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmaxud, 3, 0x663F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpminsd, 3, 0x6639, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpminud, 3, 0x663B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmulld, 3, 0x6640, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vprolvd, 3, 0x6615, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vprorvd, 3, 0x6614, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsllvd, 3, 0x6647, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsravd, 3, 0x6646, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsrlvd, 3, 0x6645, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-
-vbroadcastf32x4, 2, 0x661A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vbroadcasti32x4, 2, 0x665A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vblendmpd, 3, 0x6665, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpblendmq, 3, 0x6664, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermi2pd, 3, 0x6677, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermi2q, 3, 0x6676, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermt2pd, 3, 0x667F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermt2q, 3, 0x667E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmaxsq, 3, 0x663D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmaxuq, 3, 0x663F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpminsq, 3, 0x6639, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpminuq, 3, 0x663B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmuldq, 3, 0x6628, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vprolvq, 3, 0x6615, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vprorvq, 3, 0x6614, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsllvq, 3, 0x6647, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsravq, 3, 0x6646, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsrlvq, 3, 0x6645, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+
+vblendmps, 3, 0x6665, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpblendmd, 3, 0x6664, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermi2d, 3, 0x6676, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermi2ps, 3, 0x6677, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermt2d, 3, 0x667E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermt2ps, 3, 0x667F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmaxsd, 3, 0x663D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmaxud, 3, 0x663F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpminsd, 3, 0x6639, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpminud, 3, 0x663B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmulld, 3, 0x6640, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vprolvd, 3, 0x6615, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vprorvd, 3, 0x6614, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsllvd, 3, 0x6647, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsravd, 3, 0x6646, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsrlvd, 3, 0x6645, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+
+vbroadcastf32x4, 2, 0x661A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegZMM }
+vbroadcasti32x4, 2, 0x665A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegZMM }
 
-vbroadcastf64x4, 2, 0x661B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vbroadcasti64x4, 2, 0x665B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vbroadcastf64x4, 2, 0x661B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegZMM }
+vbroadcasti64x4, 2, 0x665B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegZMM }
 
-vbroadcastsd, 2, 0x6619, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vbroadcastsd, 2, 0x6619, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegZMM }
 
-vbroadcastss, 2, 0x6618, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpbroadcastd, 2, 0x6658, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vbroadcastss, 2, 0x6618, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegZMM }
+vpbroadcastd, 2, 0x6658, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegZMM }
 vpbroadcastd, 2, 0x667C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32, RegZMM }
 
-vcmppd, 4, 0x66C2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmppd, 4, 0x66C2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmppd, 5, 0x66C2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegZMM, RegZMM, RegMask }
-vcmpeqpd, 3, 0x66C2, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpeqpd, 3, 0x66C2, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpeqpd, 4, 0x66C2, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpeq_oqpd, 3, 0x66C2, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpeq_oqpd, 3, 0x66C2, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpeq_oqpd, 4, 0x66C2, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpeq_ospd, 3, 0x66C2, 16, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpeq_ospd, 3, 0x66C2, 16, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpeq_ospd, 4, 0x66C2, 16, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpeq_uqpd, 3, 0x66C2, 8, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpeq_uqpd, 3, 0x66C2, 8, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpeq_uqpd, 4, 0x66C2, 8, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpeq_uspd, 3, 0x66C2, 24, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpeq_uspd, 3, 0x66C2, 24, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpeq_uspd, 4, 0x66C2, 24, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpfalsepd, 3, 0x66C2, 11, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpfalsepd, 3, 0x66C2, 11, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpfalsepd, 4, 0x66C2, 11, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpfalse_oqpd, 3, 0x66C2, 11, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpfalse_oqpd, 3, 0x66C2, 11, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpfalse_oqpd, 4, 0x66C2, 11, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpfalse_ospd, 3, 0x66C2, 27, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpfalse_ospd, 3, 0x66C2, 27, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpfalse_ospd, 4, 0x66C2, 27, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpgepd, 3, 0x66C2, 13, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpgepd, 3, 0x66C2, 13, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpgepd, 4, 0x66C2, 13, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpge_oqpd, 3, 0x66C2, 29, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpge_oqpd, 3, 0x66C2, 29, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpge_oqpd, 4, 0x66C2, 29, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpge_ospd, 3, 0x66C2, 13, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpge_ospd, 3, 0x66C2, 13, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpge_ospd, 4, 0x66C2, 13, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpgtpd, 3, 0x66C2, 14, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpgtpd, 3, 0x66C2, 14, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpgtpd, 4, 0x66C2, 14, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpgt_oqpd, 3, 0x66C2, 30, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpgt_oqpd, 3, 0x66C2, 30, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpgt_oqpd, 4, 0x66C2, 30, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpgt_ospd, 3, 0x66C2, 14, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpgt_ospd, 3, 0x66C2, 14, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpgt_ospd, 4, 0x66C2, 14, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmplepd, 3, 0x66C2, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmplepd, 3, 0x66C2, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmplepd, 4, 0x66C2, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmple_oqpd, 3, 0x66C2, 18, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmple_oqpd, 3, 0x66C2, 18, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmple_oqpd, 4, 0x66C2, 18, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmple_ospd, 3, 0x66C2, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmple_ospd, 3, 0x66C2, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmple_ospd, 4, 0x66C2, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpltpd, 3, 0x66C2, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpltpd, 3, 0x66C2, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpltpd, 4, 0x66C2, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmplt_oqpd, 3, 0x66C2, 17, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmplt_oqpd, 3, 0x66C2, 17, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmplt_oqpd, 4, 0x66C2, 17, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmplt_ospd, 3, 0x66C2, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmplt_ospd, 3, 0x66C2, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmplt_ospd, 4, 0x66C2, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpneqpd, 3, 0x66C2, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpneqpd, 3, 0x66C2, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpneqpd, 4, 0x66C2, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpneq_oqpd, 3, 0x66C2, 12, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpneq_oqpd, 3, 0x66C2, 12, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpneq_oqpd, 4, 0x66C2, 12, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpneq_ospd, 3, 0x66C2, 28, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpneq_ospd, 3, 0x66C2, 28, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpneq_ospd, 4, 0x66C2, 28, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpneq_uqpd, 3, 0x66C2, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpneq_uqpd, 3, 0x66C2, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpneq_uqpd, 4, 0x66C2, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpneq_uspd, 3, 0x66C2, 20, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpneq_uspd, 3, 0x66C2, 20, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpneq_uspd, 4, 0x66C2, 20, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpngepd, 3, 0x66C2, 9, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpngepd, 3, 0x66C2, 9, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpngepd, 4, 0x66C2, 9, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnge_uqpd, 3, 0x66C2, 25, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnge_uqpd, 3, 0x66C2, 25, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnge_uqpd, 4, 0x66C2, 25, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnge_uspd, 3, 0x66C2, 9, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnge_uspd, 3, 0x66C2, 9, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnge_uspd, 4, 0x66C2, 9, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpngtpd, 3, 0x66C2, 10, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpngtpd, 3, 0x66C2, 10, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpngtpd, 4, 0x66C2, 10, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpngt_uqpd, 3, 0x66C2, 26, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpngt_uqpd, 3, 0x66C2, 26, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpngt_uqpd, 4, 0x66C2, 26, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpngt_uspd, 3, 0x66C2, 10, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpngt_uspd, 3, 0x66C2, 10, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpngt_uspd, 4, 0x66C2, 10, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnlepd, 3, 0x66C2, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnlepd, 3, 0x66C2, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnlepd, 4, 0x66C2, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnle_uqpd, 3, 0x66C2, 22, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnle_uqpd, 3, 0x66C2, 22, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnle_uqpd, 4, 0x66C2, 22, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnle_uspd, 3, 0x66C2, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnle_uspd, 3, 0x66C2, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnle_uspd, 4, 0x66C2, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnltpd, 3, 0x66C2, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnltpd, 3, 0x66C2, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnltpd, 4, 0x66C2, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnlt_uqpd, 3, 0x66C2, 21, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnlt_uqpd, 3, 0x66C2, 21, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnlt_uqpd, 4, 0x66C2, 21, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnlt_uspd, 3, 0x66C2, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnlt_uspd, 3, 0x66C2, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnlt_uspd, 4, 0x66C2, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpordpd, 3, 0x66C2, 7, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpordpd, 3, 0x66C2, 7, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpordpd, 4, 0x66C2, 7, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpord_qpd, 3, 0x66C2, 7, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpord_qpd, 3, 0x66C2, 7, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpord_qpd, 4, 0x66C2, 7, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpord_spd, 3, 0x66C2, 23, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpord_spd, 3, 0x66C2, 23, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpord_spd, 4, 0x66C2, 23, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmptruepd, 3, 0x66C2, 15, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmptruepd, 3, 0x66C2, 15, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmptruepd, 4, 0x66C2, 15, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmptrue_uqpd, 3, 0x66C2, 15, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmptrue_uqpd, 3, 0x66C2, 15, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmptrue_uqpd, 4, 0x66C2, 15, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmptrue_uspd, 3, 0x66C2, 31, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmptrue_uspd, 3, 0x66C2, 31, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmptrue_uspd, 4, 0x66C2, 31, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpunordpd, 3, 0x66C2, 3, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpunordpd, 3, 0x66C2, 3, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpunordpd, 4, 0x66C2, 3, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpunord_qpd, 3, 0x66C2, 3, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpunord_qpd, 3, 0x66C2, 3, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpunord_qpd, 4, 0x66C2, 3, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpunord_spd, 3, 0x66C2, 19, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpunord_spd, 3, 0x66C2, 19, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpunord_spd, 4, 0x66C2, 19, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
 
-vcmpps, 4, 0xC2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpps, 4, 0xC2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpps, 5, 0xC2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegZMM, RegZMM, RegMask }
-vcmpeqps, 3, 0xC2, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpeqps, 3, 0xC2, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpeqps, 4, 0xC2, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpeq_oqps, 3, 0xC2, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpeq_oqps, 3, 0xC2, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpeq_oqps, 4, 0xC2, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpeq_osps, 3, 0xC2, 16, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpeq_osps, 3, 0xC2, 16, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpeq_osps, 4, 0xC2, 16, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpeq_uqps, 3, 0xC2, 8, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpeq_uqps, 3, 0xC2, 8, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpeq_uqps, 4, 0xC2, 8, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpeq_usps, 3, 0xC2, 24, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpeq_usps, 3, 0xC2, 24, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpeq_usps, 4, 0xC2, 24, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpfalseps, 3, 0xC2, 11, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpfalseps, 3, 0xC2, 11, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpfalseps, 4, 0xC2, 11, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpfalse_oqps, 3, 0xC2, 11, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpfalse_oqps, 3, 0xC2, 11, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpfalse_oqps, 4, 0xC2, 11, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpfalse_osps, 3, 0xC2, 27, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpfalse_osps, 3, 0xC2, 27, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpfalse_osps, 4, 0xC2, 27, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpgeps, 3, 0xC2, 13, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpgeps, 3, 0xC2, 13, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpgeps, 4, 0xC2, 13, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpge_oqps, 3, 0xC2, 29, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpge_oqps, 3, 0xC2, 29, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpge_oqps, 4, 0xC2, 29, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpge_osps, 3, 0xC2, 13, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpge_osps, 3, 0xC2, 13, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpge_osps, 4, 0xC2, 13, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpgtps, 3, 0xC2, 14, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpgtps, 3, 0xC2, 14, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpgtps, 4, 0xC2, 14, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpgt_oqps, 3, 0xC2, 30, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpgt_oqps, 3, 0xC2, 30, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpgt_oqps, 4, 0xC2, 30, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpgt_osps, 3, 0xC2, 14, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpgt_osps, 3, 0xC2, 14, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpgt_osps, 4, 0xC2, 14, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpleps, 3, 0xC2, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpleps, 3, 0xC2, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpleps, 4, 0xC2, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmple_oqps, 3, 0xC2, 18, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmple_oqps, 3, 0xC2, 18, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmple_oqps, 4, 0xC2, 18, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmple_osps, 3, 0xC2, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmple_osps, 3, 0xC2, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmple_osps, 4, 0xC2, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpltps, 3, 0xC2, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpltps, 3, 0xC2, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpltps, 4, 0xC2, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmplt_oqps, 3, 0xC2, 17, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmplt_oqps, 3, 0xC2, 17, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmplt_oqps, 4, 0xC2, 17, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmplt_osps, 3, 0xC2, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmplt_osps, 3, 0xC2, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmplt_osps, 4, 0xC2, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpneqps, 3, 0xC2, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpneqps, 3, 0xC2, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpneqps, 4, 0xC2, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpneq_oqps, 3, 0xC2, 12, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpneq_oqps, 3, 0xC2, 12, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpneq_oqps, 4, 0xC2, 12, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpneq_osps, 3, 0xC2, 28, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpneq_osps, 3, 0xC2, 28, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpneq_osps, 4, 0xC2, 28, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpneq_uqps, 3, 0xC2, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpneq_uqps, 3, 0xC2, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpneq_uqps, 4, 0xC2, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpneq_usps, 3, 0xC2, 20, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpneq_usps, 3, 0xC2, 20, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpneq_usps, 4, 0xC2, 20, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpngeps, 3, 0xC2, 9, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpngeps, 3, 0xC2, 9, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpngeps, 4, 0xC2, 9, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnge_uqps, 3, 0xC2, 25, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnge_uqps, 3, 0xC2, 25, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnge_uqps, 4, 0xC2, 25, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnge_usps, 3, 0xC2, 9, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnge_usps, 3, 0xC2, 9, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnge_usps, 4, 0xC2, 9, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpngtps, 3, 0xC2, 10, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpngtps, 3, 0xC2, 10, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpngtps, 4, 0xC2, 10, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpngt_uqps, 3, 0xC2, 26, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpngt_uqps, 3, 0xC2, 26, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpngt_uqps, 4, 0xC2, 26, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpngt_usps, 3, 0xC2, 10, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpngt_usps, 3, 0xC2, 10, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpngt_usps, 4, 0xC2, 10, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnleps, 3, 0xC2, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnleps, 3, 0xC2, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnleps, 4, 0xC2, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnle_uqps, 3, 0xC2, 22, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnle_uqps, 3, 0xC2, 22, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnle_uqps, 4, 0xC2, 22, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnle_usps, 3, 0xC2, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnle_usps, 3, 0xC2, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnle_usps, 4, 0xC2, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnltps, 3, 0xC2, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnltps, 3, 0xC2, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnltps, 4, 0xC2, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnlt_uqps, 3, 0xC2, 21, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnlt_uqps, 3, 0xC2, 21, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnlt_uqps, 4, 0xC2, 21, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpnlt_usps, 3, 0xC2, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpnlt_usps, 3, 0xC2, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpnlt_usps, 4, 0xC2, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpordps, 3, 0xC2, 7, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpordps, 3, 0xC2, 7, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpordps, 4, 0xC2, 7, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpord_qps, 3, 0xC2, 7, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpord_qps, 3, 0xC2, 7, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpord_qps, 4, 0xC2, 7, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpord_sps, 3, 0xC2, 23, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpord_sps, 3, 0xC2, 23, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpord_sps, 4, 0xC2, 23, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmptrueps, 3, 0xC2, 15, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmptrueps, 3, 0xC2, 15, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmptrueps, 4, 0xC2, 15, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmptrue_uqps, 3, 0xC2, 15, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmptrue_uqps, 3, 0xC2, 15, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmptrue_uqps, 4, 0xC2, 15, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmptrue_usps, 3, 0xC2, 31, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmptrue_usps, 3, 0xC2, 31, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmptrue_usps, 4, 0xC2, 31, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpunordps, 3, 0xC2, 3, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpunordps, 3, 0xC2, 3, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpunordps, 4, 0xC2, 3, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpunord_qps, 3, 0xC2, 3, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpunord_qps, 3, 0xC2, 3, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpunord_qps, 4, 0xC2, 3, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
-vcmpunord_sps, 3, 0xC2, 19, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vcmpunord_sps, 3, 0xC2, 19, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 vcmpunord_sps, 4, 0xC2, 19, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegZMM, RegZMM, RegMask }
 
-vcmpsd, 4, 0xF2C2, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpsd, 4, 0xF2C2, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpsd, 5, 0xF2C2, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegXMM, RegXMM, RegMask }
-vcmpeqsd, 3, 0xF2C2, 0, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpeqsd, 3, 0xF2C2, 0, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpeqsd, 4, 0xF2C2, 0, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpeq_oqsd, 3, 0xF2C2, 0, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpeq_oqsd, 3, 0xF2C2, 0, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpeq_oqsd, 4, 0xF2C2, 0, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpeq_ossd, 3, 0xF2C2, 16, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpeq_ossd, 3, 0xF2C2, 16, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpeq_ossd, 4, 0xF2C2, 16, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpeq_uqsd, 3, 0xF2C2, 8, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpeq_uqsd, 3, 0xF2C2, 8, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpeq_uqsd, 4, 0xF2C2, 8, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpeq_ussd, 3, 0xF2C2, 24, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpeq_ussd, 3, 0xF2C2, 24, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpeq_ussd, 4, 0xF2C2, 24, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpfalsesd, 3, 0xF2C2, 11, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpfalsesd, 3, 0xF2C2, 11, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpfalsesd, 4, 0xF2C2, 11, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpfalse_oqsd, 3, 0xF2C2, 11, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpfalse_oqsd, 3, 0xF2C2, 11, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpfalse_oqsd, 4, 0xF2C2, 11, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpfalse_ossd, 3, 0xF2C2, 27, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpfalse_ossd, 3, 0xF2C2, 27, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpfalse_ossd, 4, 0xF2C2, 27, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpgesd, 3, 0xF2C2, 13, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpgesd, 3, 0xF2C2, 13, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpgesd, 4, 0xF2C2, 13, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpge_oqsd, 3, 0xF2C2, 29, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpge_oqsd, 3, 0xF2C2, 29, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpge_oqsd, 4, 0xF2C2, 29, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpge_ossd, 3, 0xF2C2, 13, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpge_ossd, 3, 0xF2C2, 13, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpge_ossd, 4, 0xF2C2, 13, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpgtsd, 3, 0xF2C2, 14, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpgtsd, 3, 0xF2C2, 14, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpgtsd, 4, 0xF2C2, 14, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpgt_oqsd, 3, 0xF2C2, 30, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpgt_oqsd, 3, 0xF2C2, 30, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpgt_oqsd, 4, 0xF2C2, 30, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpgt_ossd, 3, 0xF2C2, 14, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpgt_ossd, 3, 0xF2C2, 14, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpgt_ossd, 4, 0xF2C2, 14, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmplesd, 3, 0xF2C2, 2, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmplesd, 3, 0xF2C2, 2, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmplesd, 4, 0xF2C2, 2, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmple_oqsd, 3, 0xF2C2, 18, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmple_oqsd, 3, 0xF2C2, 18, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmple_oqsd, 4, 0xF2C2, 18, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmple_ossd, 3, 0xF2C2, 2, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmple_ossd, 3, 0xF2C2, 2, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmple_ossd, 4, 0xF2C2, 2, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpltsd, 3, 0xF2C2, 1, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpltsd, 3, 0xF2C2, 1, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpltsd, 4, 0xF2C2, 1, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmplt_oqsd, 3, 0xF2C2, 17, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmplt_oqsd, 3, 0xF2C2, 17, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmplt_oqsd, 4, 0xF2C2, 17, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmplt_ossd, 3, 0xF2C2, 1, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmplt_ossd, 3, 0xF2C2, 1, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmplt_ossd, 4, 0xF2C2, 1, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpneqsd, 3, 0xF2C2, 4, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpneqsd, 3, 0xF2C2, 4, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpneqsd, 4, 0xF2C2, 4, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpneq_oqsd, 3, 0xF2C2, 12, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpneq_oqsd, 3, 0xF2C2, 12, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpneq_oqsd, 4, 0xF2C2, 12, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpneq_ossd, 3, 0xF2C2, 28, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpneq_ossd, 3, 0xF2C2, 28, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpneq_ossd, 4, 0xF2C2, 28, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpneq_uqsd, 3, 0xF2C2, 4, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpneq_uqsd, 3, 0xF2C2, 4, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpneq_uqsd, 4, 0xF2C2, 4, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpneq_ussd, 3, 0xF2C2, 20, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpneq_ussd, 3, 0xF2C2, 20, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpneq_ussd, 4, 0xF2C2, 20, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpngesd, 3, 0xF2C2, 9, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpngesd, 3, 0xF2C2, 9, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpngesd, 4, 0xF2C2, 9, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnge_uqsd, 3, 0xF2C2, 25, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnge_uqsd, 3, 0xF2C2, 25, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnge_uqsd, 4, 0xF2C2, 25, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnge_ussd, 3, 0xF2C2, 9, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnge_ussd, 3, 0xF2C2, 9, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnge_ussd, 4, 0xF2C2, 9, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpngtsd, 3, 0xF2C2, 10, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpngtsd, 3, 0xF2C2, 10, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpngtsd, 4, 0xF2C2, 10, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpngt_uqsd, 3, 0xF2C2, 26, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpngt_uqsd, 3, 0xF2C2, 26, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpngt_uqsd, 4, 0xF2C2, 26, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpngt_ussd, 3, 0xF2C2, 10, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpngt_ussd, 3, 0xF2C2, 10, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpngt_ussd, 4, 0xF2C2, 10, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnlesd, 3, 0xF2C2, 6, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnlesd, 3, 0xF2C2, 6, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnlesd, 4, 0xF2C2, 6, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnle_uqsd, 3, 0xF2C2, 22, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnle_uqsd, 3, 0xF2C2, 22, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnle_uqsd, 4, 0xF2C2, 22, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnle_ussd, 3, 0xF2C2, 6, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnle_ussd, 3, 0xF2C2, 6, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnle_ussd, 4, 0xF2C2, 6, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnltsd, 3, 0xF2C2, 5, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnltsd, 3, 0xF2C2, 5, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnltsd, 4, 0xF2C2, 5, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnlt_uqsd, 3, 0xF2C2, 21, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnlt_uqsd, 3, 0xF2C2, 21, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnlt_uqsd, 4, 0xF2C2, 21, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnlt_ussd, 3, 0xF2C2, 5, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnlt_ussd, 3, 0xF2C2, 5, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnlt_ussd, 4, 0xF2C2, 5, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpordsd, 3, 0xF2C2, 7, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpordsd, 3, 0xF2C2, 7, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpordsd, 4, 0xF2C2, 7, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpord_qsd, 3, 0xF2C2, 7, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpord_qsd, 3, 0xF2C2, 7, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpord_qsd, 4, 0xF2C2, 7, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpord_ssd, 3, 0xF2C2, 23, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpord_ssd, 3, 0xF2C2, 23, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpord_ssd, 4, 0xF2C2, 23, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmptruesd, 3, 0xF2C2, 15, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmptruesd, 3, 0xF2C2, 15, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmptruesd, 4, 0xF2C2, 15, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmptrue_uqsd, 3, 0xF2C2, 15, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmptrue_uqsd, 3, 0xF2C2, 15, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmptrue_uqsd, 4, 0xF2C2, 15, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmptrue_ussd, 3, 0xF2C2, 31, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmptrue_ussd, 3, 0xF2C2, 31, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmptrue_ussd, 4, 0xF2C2, 31, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpunordsd, 3, 0xF2C2, 3, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpunordsd, 3, 0xF2C2, 3, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpunordsd, 4, 0xF2C2, 3, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpunord_qsd, 3, 0xF2C2, 3, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpunord_qsd, 3, 0xF2C2, 3, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpunord_qsd, 4, 0xF2C2, 3, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpunord_ssd, 3, 0xF2C2, 19, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpunord_ssd, 3, 0xF2C2, 19, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpunord_ssd, 4, 0xF2C2, 19, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
 
-vcmpss, 4, 0xF3C2, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpss, 4, 0xF3C2, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpss, 5, 0xF3C2, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegXMM, RegXMM, RegMask }
-vcmpeqss, 3, 0xF3C2, 0, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpeqss, 3, 0xF3C2, 0, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpeqss, 4, 0xF3C2, 0, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpeq_oqss, 3, 0xF3C2, 0, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpeq_oqss, 3, 0xF3C2, 0, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpeq_oqss, 4, 0xF3C2, 0, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpeq_osss, 3, 0xF3C2, 16, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpeq_osss, 3, 0xF3C2, 16, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpeq_osss, 4, 0xF3C2, 16, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpeq_uqss, 3, 0xF3C2, 8, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpeq_uqss, 3, 0xF3C2, 8, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpeq_uqss, 4, 0xF3C2, 8, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpeq_usss, 3, 0xF3C2, 24, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpeq_usss, 3, 0xF3C2, 24, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpeq_usss, 4, 0xF3C2, 24, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpfalsess, 3, 0xF3C2, 11, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpfalsess, 3, 0xF3C2, 11, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpfalsess, 4, 0xF3C2, 11, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpfalse_oqss, 3, 0xF3C2, 11, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpfalse_oqss, 3, 0xF3C2, 11, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpfalse_oqss, 4, 0xF3C2, 11, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpfalse_osss, 3, 0xF3C2, 27, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpfalse_osss, 3, 0xF3C2, 27, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpfalse_osss, 4, 0xF3C2, 27, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpgess, 3, 0xF3C2, 13, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpgess, 3, 0xF3C2, 13, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpgess, 4, 0xF3C2, 13, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpge_oqss, 3, 0xF3C2, 29, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpge_oqss, 3, 0xF3C2, 29, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpge_oqss, 4, 0xF3C2, 29, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpge_osss, 3, 0xF3C2, 13, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpge_osss, 3, 0xF3C2, 13, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpge_osss, 4, 0xF3C2, 13, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpgtss, 3, 0xF3C2, 14, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpgtss, 3, 0xF3C2, 14, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpgtss, 4, 0xF3C2, 14, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpgt_oqss, 3, 0xF3C2, 30, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpgt_oqss, 3, 0xF3C2, 30, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpgt_oqss, 4, 0xF3C2, 30, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpgt_osss, 3, 0xF3C2, 14, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpgt_osss, 3, 0xF3C2, 14, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpgt_osss, 4, 0xF3C2, 14, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpless, 3, 0xF3C2, 2, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpless, 3, 0xF3C2, 2, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpless, 4, 0xF3C2, 2, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmple_oqss, 3, 0xF3C2, 18, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmple_oqss, 3, 0xF3C2, 18, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmple_oqss, 4, 0xF3C2, 18, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmple_osss, 3, 0xF3C2, 2, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmple_osss, 3, 0xF3C2, 2, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmple_osss, 4, 0xF3C2, 2, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpltss, 3, 0xF3C2, 1, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpltss, 3, 0xF3C2, 1, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpltss, 4, 0xF3C2, 1, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmplt_oqss, 3, 0xF3C2, 17, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmplt_oqss, 3, 0xF3C2, 17, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmplt_oqss, 4, 0xF3C2, 17, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmplt_osss, 3, 0xF3C2, 1, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmplt_osss, 3, 0xF3C2, 1, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmplt_osss, 4, 0xF3C2, 1, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpneqss, 3, 0xF3C2, 4, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpneqss, 3, 0xF3C2, 4, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpneqss, 4, 0xF3C2, 4, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpneq_oqss, 3, 0xF3C2, 12, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpneq_oqss, 3, 0xF3C2, 12, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpneq_oqss, 4, 0xF3C2, 12, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpneq_osss, 3, 0xF3C2, 28, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpneq_osss, 3, 0xF3C2, 28, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpneq_osss, 4, 0xF3C2, 28, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpneq_uqss, 3, 0xF3C2, 4, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpneq_uqss, 3, 0xF3C2, 4, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpneq_uqss, 4, 0xF3C2, 4, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpneq_usss, 3, 0xF3C2, 20, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpneq_usss, 3, 0xF3C2, 20, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpneq_usss, 4, 0xF3C2, 20, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpngess, 3, 0xF3C2, 9, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpngess, 3, 0xF3C2, 9, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpngess, 4, 0xF3C2, 9, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnge_uqss, 3, 0xF3C2, 25, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnge_uqss, 3, 0xF3C2, 25, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnge_uqss, 4, 0xF3C2, 25, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnge_usss, 3, 0xF3C2, 9, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnge_usss, 3, 0xF3C2, 9, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnge_usss, 4, 0xF3C2, 9, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpngtss, 3, 0xF3C2, 10, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpngtss, 3, 0xF3C2, 10, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpngtss, 4, 0xF3C2, 10, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpngt_uqss, 3, 0xF3C2, 26, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpngt_uqss, 3, 0xF3C2, 26, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpngt_uqss, 4, 0xF3C2, 26, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpngt_usss, 3, 0xF3C2, 10, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpngt_usss, 3, 0xF3C2, 10, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpngt_usss, 4, 0xF3C2, 10, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnless, 3, 0xF3C2, 6, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnless, 3, 0xF3C2, 6, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnless, 4, 0xF3C2, 6, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnle_uqss, 3, 0xF3C2, 22, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnle_uqss, 3, 0xF3C2, 22, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnle_uqss, 4, 0xF3C2, 22, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnle_usss, 3, 0xF3C2, 6, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnle_usss, 3, 0xF3C2, 6, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnle_usss, 4, 0xF3C2, 6, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnltss, 3, 0xF3C2, 5, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnltss, 3, 0xF3C2, 5, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnltss, 4, 0xF3C2, 5, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnlt_uqss, 3, 0xF3C2, 21, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnlt_uqss, 3, 0xF3C2, 21, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnlt_uqss, 4, 0xF3C2, 21, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpnlt_usss, 3, 0xF3C2, 5, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpnlt_usss, 3, 0xF3C2, 5, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpnlt_usss, 4, 0xF3C2, 5, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpordss, 3, 0xF3C2, 7, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpordss, 3, 0xF3C2, 7, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpordss, 4, 0xF3C2, 7, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpord_qss, 3, 0xF3C2, 7, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpord_qss, 3, 0xF3C2, 7, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpord_qss, 4, 0xF3C2, 7, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpord_sss, 3, 0xF3C2, 23, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpord_sss, 3, 0xF3C2, 23, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpord_sss, 4, 0xF3C2, 23, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmptruess, 3, 0xF3C2, 15, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmptruess, 3, 0xF3C2, 15, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmptruess, 4, 0xF3C2, 15, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmptrue_uqss, 3, 0xF3C2, 15, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmptrue_uqss, 3, 0xF3C2, 15, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmptrue_uqss, 4, 0xF3C2, 15, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmptrue_usss, 3, 0xF3C2, 31, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmptrue_usss, 3, 0xF3C2, 31, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmptrue_usss, 4, 0xF3C2, 31, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpunordss, 3, 0xF3C2, 3, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpunordss, 3, 0xF3C2, 3, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpunordss, 4, 0xF3C2, 3, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpunord_qss, 3, 0xF3C2, 3, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpunord_qss, 3, 0xF3C2, 3, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpunord_qss, 4, 0xF3C2, 3, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
-vcmpunord_sss, 3, 0xF3C2, 19, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vcmpunord_sss, 3, 0xF3C2, 19, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegMask }
 vcmpunord_sss, 4, 0xF3C2, 19, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|SAE, { Imm8, RegXMM, RegXMM, RegMask }
 
-vcomisd, 2, 0x662F, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vcomisd, 2, 0x662F, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM }
 vcomisd, 3, 0x662F, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM }
-vucomisd, 2, 0x662E, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vucomisd, 2, 0x662E, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM }
 vucomisd, 3, 0x662E, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM }
 
-vcomiss, 2, 0x2F, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vcomiss, 2, 0x2F, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM }
 vcomiss, 3, 0x2F, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM }
-vucomiss, 2, 0x2E, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vucomiss, 2, 0x2E, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM }
 vucomiss, 3, 0x2E, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM }
 
-vcompresspd, 2, 0x668A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vcompresspd, 2, 0x668A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 vcompresspd, 2, 0x668A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
-vpcompressq, 2, 0x668B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpcompressq, 2, 0x668B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 vpcompressq, 2, 0x668B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
-vpscatterdq, 2, 0x66A0, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpscatterqq, 2, 0x66A1, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterdpd, 2, 0x66A2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterqpd, 2, 0x66A3, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpscatterdq, 2, 0x66A0, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
+vpscatterqq, 2, 0x66A1, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
+vscatterdpd, 2, 0x66A2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
+vscatterqpd, 2, 0x66A3, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 
-vcompressps, 2, 0x668A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vcompressps, 2, 0x668A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 vcompressps, 2, 0x668A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
-vpcompressd, 2, 0x668B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpcompressd, 2, 0x668B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 vpcompressd, 2, 0x668B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
-vpscatterdd, 2, 0x66A0, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterdps, 2, 0x66A2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpscatterdd, 2, 0x66A0, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
+vscatterdps, 2, 0x66A2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 
-vcvtdq2pd, 2, 0xF3E6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vcvtudq2pd, 2, 0xF37A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vcvtdq2pd, 2, 0xF3E6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM }
+vcvtudq2pd, 2, 0xF37A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM }
 
-vcvtdq2ps, 2, 0x5B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vcvtdq2ps, 2, 0x5B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vcvtdq2ps, 3, 0x5B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM }
-vcvtps2udq, 2, 0x79, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vcvtps2udq, 2, 0x79, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vcvtps2udq, 3, 0x79, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM }
-vsqrtps, 2, 0x51, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vsqrtps, 2, 0x51, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vsqrtps, 3, 0x51, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM }
 
-vcvtpd2dq, 2, 0xF2E6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvtpd2dq, 2, 0xF2E6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegYMM }
 vcvtpd2dq, 3, 0xF2E6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegYMM }
 
-vcvtpd2ps, 2, 0x665A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvtpd2ps, 2, 0x665A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegYMM }
 vcvtpd2ps, 3, 0x665A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegYMM }
 
-vcvtpd2udq, 2, 0x79, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvtpd2udq, 2, 0x79, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegYMM }
 vcvtpd2udq, 3, 0x79, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegYMM }
 
-vcvtph2ps, 2, 0x6613, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vcvtph2ps, 2, 0x6613, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegZMM }
 vcvtph2ps, 3, 0x6613, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegYMM, RegZMM }
 
-vcvtps2dq, 2, 0x665B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vcvtps2dq, 2, 0x665B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vcvtps2dq, 3, 0x665B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM }
 
-vcvtps2pd, 2, 0x5A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vcvtps2pd, 2, 0x5A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM }
 vcvtps2pd, 3, 0x5A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegYMM, RegZMM }
 
 vcvtps2ph, 3, 0x661D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegYMM|RegMem }
 vcvtps2ph, 4, 0x661D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegZMM, RegYMM|RegMem }
-vcvtps2ph, 3, 0x661D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vcvtps2ph, 3, 0x661D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, YMMword|Unspecified|BaseIndex }
 
-vcvtsd2si, 2, 0xF22D, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, Reg32 }
+vcvtsd2si, 2, 0xF22D, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, Reg32 }
 vcvtsd2si, 3, 0xF22D, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, Reg32 }
-vcvtsd2si, 2, 0xF22D, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8, Reg64 }
+vcvtsd2si, 2, 0xF22D, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, Reg64 }
 vcvtsd2si, 3, 0xF22D, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, Reg64 }
-vcvtsd2usi, 2, 0xF279, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, Reg32 }
+vcvtsd2usi, 2, 0xF279, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, Reg32 }
 vcvtsd2usi, 3, 0xF279, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, Reg32 }
-vcvtsd2usi, 2, 0xF279, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8, Reg64 }
+vcvtsd2usi, 2, 0xF279, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, Reg64 }
 vcvtsd2usi, 3, 0xF279, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, Reg64 }
 
-vcvtsd2ss, 3, 0xF25A, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vcvtsd2ss, 3, 0xF25A, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtsd2ss, 4, 0xF25A, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
 
-vcvtsi2sd, 3, 0xF22A, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vcvtsi2sd, 3, 0xF22A, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vcvtsi2sd, 3, 0xF22A, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vcvtsi2sd, 3, 0xF22A, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Reg64|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtsi2sd, 4, 0xF22A, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|StaticRounding|SAE, { Reg64, Imm8, RegXMM, RegXMM }
 vcvtsi2sd, 4, 0xF22A, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|StaticRounding|SAE|IntelSyntax, { Imm8, Reg64, RegXMM, RegXMM }
-vcvtusi2sd, 3, 0xF27B, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vcvtusi2sd, 3, 0xF27B, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vcvtusi2sd, 3, 0xF27B, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vcvtusi2sd, 3, 0xF27B, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Reg64|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtusi2sd, 4, 0xF27B, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|StaticRounding|SAE, { Reg64, Imm8, RegXMM, RegXMM }
 vcvtusi2sd, 4, 0xF27B, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|StaticRounding|SAE|IntelSyntax, { Imm8, Reg64, RegXMM, RegXMM }
 
-vcvtsi2ss, 3, 0xF32A, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vcvtsi2ss, 3, 0xF32A, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtsi2ss, 4, 0xF32A, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Reg32, Imm8, RegXMM, RegXMM }
 vcvtsi2ss, 4, 0xF32A, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE|IntelSyntax, { Imm8, Reg32, RegXMM, RegXMM }
-vcvtsi2ss, 3, 0xF32A, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vcvtsi2ss, 3, 0xF32A, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Reg64|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtsi2ss, 4, 0xF32A, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|StaticRounding|SAE, { Reg64, Imm8, RegXMM, RegXMM }
 vcvtsi2ss, 4, 0xF32A, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|StaticRounding|SAE|IntelSyntax, { Imm8, Reg64, RegXMM, RegXMM }
-vcvtusi2ss, 3, 0xF37B, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vcvtusi2ss, 3, 0xF37B, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtusi2ss, 4, 0xF37B, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Reg32, Imm8, RegXMM, RegXMM }
 vcvtusi2ss, 4, 0xF37B, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE|IntelSyntax, { Imm8, Reg32, RegXMM, RegXMM }
-vcvtusi2ss, 3, 0xF37B, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vcvtusi2ss, 3, 0xF37B, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { Reg64|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtusi2ss, 4, 0xF37B, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|StaticRounding|SAE, { Reg64, Imm8, RegXMM, RegXMM }
 vcvtusi2ss, 4, 0xF37B, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|StaticRounding|SAE|IntelSyntax, { Imm8, Reg64, RegXMM, RegXMM }
 
-vcvtss2sd, 3, 0xF35A, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vcvtss2sd, 3, 0xF35A, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vcvtss2sd, 4, 0xF35A, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
 
-vcvtss2si, 2, 0xF32D, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, Reg32 }
+vcvtss2si, 2, 0xF32D, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, Reg32 }
 vcvtss2si, 3, 0xF32D, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, Reg32 }
-vcvtss2si, 2, 0xF32D, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8, Reg64 }
+vcvtss2si, 2, 0xF32D, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, Reg64 }
 vcvtss2si, 3, 0xF32D, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, Reg64 }
-vcvtss2usi, 2, 0xF379, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, Reg32 }
+vcvtss2usi, 2, 0xF379, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, Reg32 }
 vcvtss2usi, 3, 0xF379, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, Reg32 }
-vcvtss2usi, 2, 0xF379, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8, Reg64 }
+vcvtss2usi, 2, 0xF379, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, Reg64 }
 vcvtss2usi, 3, 0xF379, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, Reg64 }
 
-vcvttpd2dq, 2, 0x66E6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvttpd2dq, 2, 0x66E6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegYMM }
 vcvttpd2dq, 3, 0x66E6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegYMM }
 
-vcvttpd2udq, 2, 0x78, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvttpd2udq, 2, 0x78, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegYMM }
 vcvttpd2udq, 3, 0x78, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegYMM }
 
-vcvttps2dq, 2, 0xF35B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vcvttps2dq, 2, 0xF35B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vcvttps2dq, 3, 0xF35B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM }
 
-vcvttps2udq, 2, 0x78, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vcvttps2udq, 2, 0x78, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vcvttps2udq, 3, 0x78, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM }
 
-vcvttsd2si, 2, 0xF22C, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, Reg32 }
+vcvttsd2si, 2, 0xF22C, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, Reg32 }
 vcvttsd2si, 3, 0xF22C, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, Reg32 }
-vcvttsd2si, 2, 0xF22C, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8, Reg64 }
+vcvttsd2si, 2, 0xF22C, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, Reg64 }
 vcvttsd2si, 3, 0xF22C, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|SAE, { Imm8, RegXMM, Reg64 }
-vcvttsd2usi, 2, 0xF278, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, Reg32 }
+vcvttsd2usi, 2, 0xF278, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, Reg32 }
 vcvttsd2usi, 3, 0xF278, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, Reg32 }
-vcvttsd2usi, 2, 0xF278, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8, Reg64 }
+vcvttsd2usi, 2, 0xF278, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, Reg64 }
 vcvttsd2usi, 3, 0xF278, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, Reg64 }
 
-vcvttss2si, 2, 0xF32C, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, Reg32 }
+vcvttss2si, 2, 0xF32C, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, Reg32 }
 vcvttss2si, 3, 0xF32C, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, Reg32 }
-vcvttss2si, 2, 0xF32C, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8, Reg64 }
+vcvttss2si, 2, 0xF32C, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, Reg64 }
 vcvttss2si, 3, 0xF32C, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_ldSuf|SAE, { Imm8, RegXMM, Reg64 }
-vcvttss2usi, 2, 0xF378, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, Reg32 }
+vcvttss2usi, 2, 0xF378, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, Reg32 }
 vcvttss2usi, 3, 0xF378, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, Reg32 }
-vcvttss2usi, 2, 0xF378, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8, Reg64 }
+vcvttss2usi, 2, 0xF378, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, Reg64 }
 vcvttss2usi, 3, 0xF378, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, Reg64 }
 
-vcvtudq2ps, 2, 0xF27A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vcvtudq2ps, 2, 0xF27A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vcvtudq2ps, 3, 0xF27A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM }
 
-vexpandpd, 2, 0x6688, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vexpandpd, 2, 0x6688, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 vexpandpd, 2, 0x6688, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM }
-vpexpandq, 2, 0x6689, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpexpandq, 2, 0x6689, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 vpexpandq, 2, 0x6689, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM }
 
-vexpandps, 2, 0x6688, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vexpandps, 2, 0x6688, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 vexpandps, 2, 0x6688, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM }
-vpexpandd, 2, 0x6689, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpexpandd, 2, 0x6689, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 vpexpandd, 2, 0x6689, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM }
 
 vextractf32x4, 3, 0x6619, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegXMM|RegMem }
-vextractf32x4, 3, 0x6619, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vextractf32x4, 3, 0x6619, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, XMMword|Unspecified|BaseIndex }
 vextracti32x4, 3, 0x6639, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegXMM|RegMem }
-vextracti32x4, 3, 0x6639, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vextracti32x4, 3, 0x6639, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, XMMword|Unspecified|BaseIndex }
 
 vextractf64x4, 3, 0x661B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegYMM|RegMem }
-vextractf64x4, 3, 0x661B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vextractf64x4, 3, 0x661B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, YMMword|Unspecified|BaseIndex }
 vextracti64x4, 3, 0x663B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegYMM|RegMem }
-vextracti64x4, 3, 0x663B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vextracti64x4, 3, 0x663B, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, YMMword|Unspecified|BaseIndex }
 
-vextractps, 3, 0x6617, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=2|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg64|Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vextractps, 3, 0x6617, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=2|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex }
+vextractps, 3, 0x6617, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=2|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg64|RegMem }
 
-vfixupimmpd, 4, 0x6654, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfixupimmpd, 4, 0x6654, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfixupimmpd, 5, 0x6654, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegZMM, RegZMM, RegZMM }
 
-vfixupimmps, 4, 0x6654, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfixupimmps, 4, 0x6654, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfixupimmps, 5, 0x6654, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegZMM, RegZMM, RegZMM }
 
-vfixupimmsd, 4, 0x6655, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfixupimmsd, 4, 0x6655, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfixupimmsd, 5, 0x6655, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegXMM, RegXMM, RegXMM }
-vgetmantsd, 4, 0x6627, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vgetmantsd, 4, 0x6627, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vgetmantsd, 5, 0x6627, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegXMM, RegXMM, RegXMM }
-vrndscalesd, 4, 0x660B, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vrndscalesd, 4, 0x660B, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vrndscalesd, 5, 0x660B, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegXMM, RegXMM, RegXMM }
 
-vfixupimmss, 4, 0x6655, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfixupimmss, 4, 0x6655, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfixupimmss, 5, 0x6655, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegXMM, RegXMM, RegXMM }
-vgetmantss, 4, 0x6627, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vgetmantss, 4, 0x6627, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vgetmantss, 5, 0x6627, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegXMM, RegXMM, RegXMM }
-vrndscaless, 4, 0x660A, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vrndscaless, 4, 0x660A, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vrndscaless, 5, 0x660A, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegXMM, RegXMM, RegXMM }
 
-vfmadd132pd, 3, 0x6698, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmadd132pd, 3, 0x6698, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmadd132pd, 4, 0x6698, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmadd213pd, 3, 0x66A8, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmadd213pd, 3, 0x66A8, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmadd213pd, 4, 0x66A8, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmadd231pd, 3, 0x66B8, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmadd231pd, 3, 0x66B8, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmadd231pd, 4, 0x66B8, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmaddsub132pd, 3, 0x6696, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmaddsub132pd, 3, 0x6696, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmaddsub132pd, 4, 0x6696, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmaddsub213pd, 3, 0x66A6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmaddsub213pd, 3, 0x66A6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmaddsub213pd, 4, 0x66A6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmaddsub231pd, 3, 0x66B6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmaddsub231pd, 3, 0x66B6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmaddsub231pd, 4, 0x66B6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmsub132pd, 3, 0x669A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmsub132pd, 3, 0x669A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmsub132pd, 4, 0x669A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmsub213pd, 3, 0x66AA, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmsub213pd, 3, 0x66AA, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmsub213pd, 4, 0x66AA, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmsub231pd, 3, 0x66BA, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmsub231pd, 3, 0x66BA, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmsub231pd, 4, 0x66BA, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmsubadd132pd, 3, 0x6697, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmsubadd132pd, 3, 0x6697, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmsubadd132pd, 4, 0x6697, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmsubadd213pd, 3, 0x66A7, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmsubadd213pd, 3, 0x66A7, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmsubadd213pd, 4, 0x66A7, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmsubadd231pd, 3, 0x66B7, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmsubadd231pd, 3, 0x66B7, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmsubadd231pd, 4, 0x66B7, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfnmadd132pd, 3, 0x669C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfnmadd132pd, 3, 0x669C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfnmadd132pd, 4, 0x669C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfnmadd213pd, 3, 0x66AC, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfnmadd213pd, 3, 0x66AC, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfnmadd213pd, 4, 0x66AC, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfnmadd231pd, 3, 0x66BC, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfnmadd231pd, 3, 0x66BC, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfnmadd231pd, 4, 0x66BC, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfnmsub132pd, 3, 0x669E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfnmsub132pd, 3, 0x669E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfnmsub132pd, 4, 0x669E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfnmsub213pd, 3, 0x66AE, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfnmsub213pd, 3, 0x66AE, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfnmsub213pd, 4, 0x66AE, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfnmsub231pd, 3, 0x66BE, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfnmsub231pd, 3, 0x66BE, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfnmsub231pd, 4, 0x66BE, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vscalefpd, 3, 0x662C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vscalefpd, 3, 0x662C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vscalefpd, 4, 0x662C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
 
-vfmadd132ps, 3, 0x6698, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmadd132ps, 3, 0x6698, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmadd132ps, 4, 0x6698, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmadd213ps, 3, 0x66A8, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmadd213ps, 3, 0x66A8, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmadd213ps, 4, 0x66A8, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmadd231ps, 3, 0x66B8, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmadd231ps, 3, 0x66B8, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmadd231ps, 4, 0x66B8, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmaddsub132ps, 3, 0x6696, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmaddsub132ps, 3, 0x6696, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmaddsub132ps, 4, 0x6696, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmaddsub213ps, 3, 0x66A6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmaddsub213ps, 3, 0x66A6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmaddsub213ps, 4, 0x66A6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmaddsub231ps, 3, 0x66B6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmaddsub231ps, 3, 0x66B6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmaddsub231ps, 4, 0x66B6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmsub132ps, 3, 0x669A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmsub132ps, 3, 0x669A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmsub132ps, 4, 0x669A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmsub213ps, 3, 0x66AA, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmsub213ps, 3, 0x66AA, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmsub213ps, 4, 0x66AA, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmsub231ps, 3, 0x66BA, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmsub231ps, 3, 0x66BA, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmsub231ps, 4, 0x66BA, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmsubadd132ps, 3, 0x6697, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmsubadd132ps, 3, 0x6697, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmsubadd132ps, 4, 0x6697, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmsubadd213ps, 3, 0x66A7, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmsubadd213ps, 3, 0x66A7, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmsubadd213ps, 4, 0x66A7, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfmsubadd231ps, 3, 0x66B7, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfmsubadd231ps, 3, 0x66B7, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfmsubadd231ps, 4, 0x66B7, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfnmadd132ps, 3, 0x669C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfnmadd132ps, 3, 0x669C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfnmadd132ps, 4, 0x669C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfnmadd213ps, 3, 0x66AC, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfnmadd213ps, 3, 0x66AC, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfnmadd213ps, 4, 0x66AC, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfnmadd231ps, 3, 0x66BC, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfnmadd231ps, 3, 0x66BC, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfnmadd231ps, 4, 0x66BC, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfnmsub132ps, 3, 0x669E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfnmsub132ps, 3, 0x669E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfnmsub132ps, 4, 0x669E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfnmsub213ps, 3, 0x66AE, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfnmsub213ps, 3, 0x66AE, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfnmsub213ps, 4, 0x66AE, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vfnmsub231ps, 3, 0x66BE, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vfnmsub231ps, 3, 0x66BE, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vfnmsub231ps, 4, 0x66BE, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vscalefps, 3, 0x662C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vscalefps, 3, 0x662C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vscalefps, 4, 0x662C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
 
-vfmadd132sd, 3, 0x6699, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfmadd132sd, 3, 0x6699, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfmadd132sd, 4, 0x6699, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfmadd213sd, 3, 0x66A9, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfmadd213sd, 3, 0x66A9, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfmadd213sd, 4, 0x66A9, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfmadd231sd, 3, 0x66B9, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfmadd231sd, 3, 0x66B9, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfmadd231sd, 4, 0x66B9, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfmsub132sd, 3, 0x669B, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfmsub132sd, 3, 0x669B, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfmsub132sd, 4, 0x669B, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfmsub213sd, 3, 0x66AB, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfmsub213sd, 3, 0x66AB, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfmsub213sd, 4, 0x66AB, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfmsub231sd, 3, 0x66BB, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfmsub231sd, 3, 0x66BB, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfmsub231sd, 4, 0x66BB, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfnmadd132sd, 3, 0x669D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfnmadd132sd, 3, 0x669D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfnmadd132sd, 4, 0x669D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfnmadd213sd, 3, 0x66AD, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfnmadd213sd, 3, 0x66AD, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfnmadd213sd, 4, 0x66AD, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfnmadd231sd, 3, 0x66BD, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfnmadd231sd, 3, 0x66BD, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfnmadd231sd, 4, 0x66BD, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfnmsub132sd, 3, 0x669F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfnmsub132sd, 3, 0x669F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfnmsub132sd, 4, 0x669F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfnmsub213sd, 3, 0x66AF, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfnmsub213sd, 3, 0x66AF, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfnmsub213sd, 4, 0x66AF, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfnmsub231sd, 3, 0x66BF, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfnmsub231sd, 3, 0x66BF, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfnmsub231sd, 4, 0x66BF, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vscalefsd, 3, 0x662D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vscalefsd, 3, 0x662D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vscalefsd, 4, 0x662D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
 
-vfmadd132ss, 3, 0x6699, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfmadd132ss, 3, 0x6699, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfmadd132ss, 4, 0x6699, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfmadd213ss, 3, 0x66A9, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfmadd213ss, 3, 0x66A9, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfmadd213ss, 4, 0x66A9, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfmadd231ss, 3, 0x66B9, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfmadd231ss, 3, 0x66B9, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfmadd231ss, 4, 0x66B9, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfmsub132ss, 3, 0x669B, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfmsub132ss, 3, 0x669B, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfmsub132ss, 4, 0x669B, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfmsub213ss, 3, 0x66AB, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfmsub213ss, 3, 0x66AB, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfmsub213ss, 4, 0x66AB, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfmsub231ss, 3, 0x66BB, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfmsub231ss, 3, 0x66BB, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfmsub231ss, 4, 0x66BB, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfnmadd132ss, 3, 0x669D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfnmadd132ss, 3, 0x669D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfnmadd132ss, 4, 0x669D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfnmadd213ss, 3, 0x66AD, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfnmadd213ss, 3, 0x66AD, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfnmadd213ss, 4, 0x66AD, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfnmadd231ss, 3, 0x66BD, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfnmadd231ss, 3, 0x66BD, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfnmadd231ss, 4, 0x66BD, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfnmsub132ss, 3, 0x669F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfnmsub132ss, 3, 0x669F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfnmsub132ss, 4, 0x669F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfnmsub213ss, 3, 0x66AF, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfnmsub213ss, 3, 0x66AF, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfnmsub213ss, 4, 0x66AF, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vfnmsub231ss, 3, 0x66BF, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vfnmsub231ss, 3, 0x66BF, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vfnmsub231ss, 4, 0x66BF, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vscalefss, 3, 0x662D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vscalefss, 3, 0x662D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vscalefss, 4, 0x662D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
 
-vgatherdpd, 2, 0x6692, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vgatherqpd, 2, 0x6693, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpgatherdq, 2, 0x6690, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpgatherqq, 2, 0x6691, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-
-vgatherdps, 2, 0x6692, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vmovntdqa, 2, 0x662A, None, 1, CpuAVX512F, Modrm|EVex=1|VexOpcode=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpgatherdd, 2, 0x6690, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vgatherdpd, 2, 0x6692, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
+vgatherqpd, 2, 0x6693, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
+vpgatherdq, 2, 0x6690, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
+vpgatherqq, 2, 0x6691, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
+
+vgatherdps, 2, 0x6692, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
+vmovntdqa, 2, 0x662A, None, 1, CpuAVX512F, Modrm|EVex=1|VexOpcode=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
+vpgatherdd, 2, 0x6690, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 
-vgatherqps, 2, 0x6693, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpgatherqd, 2, 0x6691, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vgatherqps, 2, 0x6693, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
+vpgatherqd, 2, 0x6691, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
 
-vgetexppd, 2, 0x6642, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vgetexppd, 2, 0x6642, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vgetexppd, 3, 0x6642, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM }
 
-vgetexpps, 2, 0x6642, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vgetexpps, 2, 0x6642, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vgetexpps, 3, 0x6642, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM }
 
-vgetexpsd, 3, 0x6643, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vgetexpsd, 3, 0x6643, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vgetexpsd, 4, 0x6643, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
 
-vgetexpss, 3, 0x6643, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vgetexpss, 3, 0x6643, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vgetexpss, 4, 0x6643, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
 
-vgetmantpd, 3, 0x6626, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vgetmantpd, 3, 0x6626, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vgetmantpd, 4, 0x6626, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegZMM, RegZMM }
-vrndscalepd, 3, 0x6609, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vrndscalepd, 3, 0x6609, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vrndscalepd, 4, 0x6609, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegZMM, RegZMM }
 
-vgetmantps, 3, 0x6626, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vgetmantps, 3, 0x6626, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vgetmantps, 4, 0x6626, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegZMM, RegZMM }
-vrndscaleps, 3, 0x6608, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vrndscaleps, 3, 0x6608, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vrndscaleps, 4, 0x6608, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegZMM, RegZMM }
 
-vinsertf32x4, 4, 0x6618, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vinserti32x4, 4, 0x6638, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vinsertf32x4, 4, 0x6618, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vinserti32x4, 4, 0x6638, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 
-vinsertf64x4, 4, 0x661A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vinserti64x4, 4, 0x663A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vinsertf64x4, 4, 0x661A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vinserti64x4, 4, 0x663A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 
-vinsertps, 4, 0x6621, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vinsertps, 4, 0x6621, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 
-vmaxpd, 3, 0x665F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vmaxpd, 3, 0x665F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vmaxpd, 4, 0x665F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vminpd, 3, 0x665D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vminpd, 3, 0x665D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vminpd, 4, 0x665D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
 
-vmaxps, 3, 0x5F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vmaxps, 3, 0x5F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vmaxps, 4, 0x5F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
-vminps, 3, 0x5D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vminps, 3, 0x5D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 vminps, 4, 0x5D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM, RegZMM }
 
-vmaxsd, 3, 0xF25F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vmaxsd, 3, 0xF25F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vmaxsd, 4, 0xF25F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vminsd, 3, 0xF25D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vminsd, 3, 0xF25D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vminsd, 4, 0xF25D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
 
-vmaxss, 3, 0xF35F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vmaxss, 3, 0xF35F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vmaxss, 4, 0xF35F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vminss, 3, 0xF35D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vminss, 3, 0xF35D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vminss, 4, 0xF35D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
 
-vmovapd, 2, 0x6629, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovapd, 2, 0x6629, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 vmovapd, 2, 0x6628, None, 1, CpuAVX512F, Modrm|Load|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM }
-vmovapd, 2, 0x6628, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vmovapd, 2, 0x6628, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 vmovapd, 2, 0x6629, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
-vmovdqa64, 2, 0x667F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovdqa64, 2, 0x667F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 vmovdqa64, 2, 0x666F, None, 1, CpuAVX512F, Modrm|Load|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM }
-vmovdqa64, 2, 0x666F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vmovdqa64, 2, 0x666F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 vmovdqa64, 2, 0x667F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
-vmovntpd, 2, 0x662B, None, 1, CpuAVX512F, Modrm|EVex=1|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovupd, 2, 0x6611, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovntpd, 2, 0x662B, None, 1, CpuAVX512F, Modrm|EVex=1|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
+vmovupd, 2, 0x6611, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 vmovupd, 2, 0x6610, None, 1, CpuAVX512F, Modrm|Load|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM }
-vmovupd, 2, 0x6610, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vmovupd, 2, 0x6610, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 vmovupd, 2, 0x6611, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
 
-vmovaps, 2, 0x29, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovaps, 2, 0x29, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 vmovaps, 2, 0x28, None, 1, CpuAVX512F, Modrm|Load|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM }
-vmovaps, 2, 0x28, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vmovaps, 2, 0x28, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 vmovaps, 2, 0x29, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
-vmovntps, 2, 0x2B, None, 1, CpuAVX512F, Modrm|EVex=1|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovups, 2, 0x11, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovntps, 2, 0x2B, None, 1, CpuAVX512F, Modrm|EVex=1|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
+vmovups, 2, 0x11, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 vmovups, 2, 0x10, None, 1, CpuAVX512F, Modrm|Load|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM }
-vmovups, 2, 0x10, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vmovups, 2, 0x10, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 vmovups, 2, 0x11, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
 
-vmovd, 2, 0x666E, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovd, 2, 0x666E, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovd, 2, 0x667E, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovd, 2, 0x667E, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { RegXMM, Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8 }
+vmovd, 2, 0x666E, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32|Dword|Unspecified|BaseIndex, RegXMM }
+vmovd, 2, 0x666E, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg64|Qword|Unspecified|BaseIndex, RegXMM }
+vmovd, 2, 0x667E, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Reg32|Dword|Unspecified|BaseIndex }
+vmovd, 2, 0x667E, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { RegXMM, Reg64|Qword|Unspecified|BaseIndex }
 
-vmovddup, 2, 0xF212, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vmovddup, 2, 0xF212, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM }
 
-vmovdqa32, 2, 0x667F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovdqa32, 2, 0x667F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 vmovdqa32, 2, 0x666F, None, 1, CpuAVX512F, Modrm|Load|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM }
-vmovdqa32, 2, 0x666F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vmovdqa32, 2, 0x666F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 vmovdqa32, 2, 0x667F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
-vmovntdq, 2, 0x66E7, None, 1, CpuAVX512F, Modrm|EVex=1|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovntdq, 2, 0x66E7, None, 1, CpuAVX512F, Modrm|EVex=1|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 
-vmovdqu32, 2, 0xF37F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovdqu32, 2, 0xF37F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 vmovdqu32, 2, 0xF36F, None, 1, CpuAVX512F, Modrm|Load|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM }
-vmovdqu32, 2, 0xF36F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vmovdqu32, 2, 0xF36F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 vmovdqu32, 2, 0xF37F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
 
-vmovdqu64, 2, 0xF37F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovdqu64, 2, 0xF37F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
 vmovdqu64, 2, 0xF36F, None, 1, CpuAVX512F, Modrm|Load|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM }
-vmovdqu64, 2, 0xF36F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vmovdqu64, 2, 0xF36F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 vmovdqu64, 2, 0xF37F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
 
 vmovhlps, 3, 0x12, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, RegXMM }
 vmovlhps, 3, 0x16, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, RegXMM }
 
-vmovhpd, 3, 0x6616, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vmovhpd, 2, 0x6617, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovlpd, 3, 0x6612, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vmovlpd, 2, 0x6613, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-
-vmovhps, 3, 0x16, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vmovhps, 2, 0x17, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovlps, 3, 0x12, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vmovlps, 2, 0x13, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-
-vmovq, 2, 0x666E, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8|Reg64, RegXMM }
-vmovq, 2, 0x667E, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp32|Disp32S|Vec_Disp8|Reg64 }
-vmovq, 2, 0xF37E, None, 1, CpuAVX512F, Load|Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8|RegXMM, RegXMM }
-vmovq, 2, 0x66D6, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8|RegXMM }
+vmovhpd, 3, 0x6616, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vmovhpd, 2, 0x6617, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vmovlpd, 3, 0x6612, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vmovlpd, 2, 0x6613, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+
+vmovhps, 3, 0x16, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vmovhps, 2, 0x17, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vmovlps, 3, 0x12, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vmovlps, 2, 0x13, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+
+vmovq, 2, 0x666E, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Reg64, RegXMM }
+vmovq, 2, 0x667E, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Reg64 }
+vmovq, 2, 0xF37E, None, 1, CpuAVX512F, Load|Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
+vmovq, 2, 0x66D6, None, 1, CpuAVX512F, Modrm|EVex=4|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|RegXMM }
 
-vmovsd, 2, 0xF211, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovsd, 2, 0xF211, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
 vmovsd, 3, 0xF210, None, 1, CpuAVX512F, Modrm|Load|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, RegXMM }
-vmovsd, 2, 0xF210, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vmovsd, 2, 0xF210, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM }
 vmovsd, 3, 0xF211, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, RegXMM|RegMem }
 
-vmovshdup, 2, 0xF316, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vmovsldup, 2, 0xF312, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vmovshdup, 2, 0xF316, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM }
+vmovsldup, 2, 0xF312, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM }
 
-vmovss, 2, 0xF311, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovss, 2, 0xF311, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex }
 vmovss, 3, 0xF310, None, 1, CpuAVX512F, Modrm|Load|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, RegXMM }
-vmovss, 2, 0xF310, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vmovss, 2, 0xF310, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex, RegXMM }
 vmovss, 3, 0xF311, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, RegXMM|RegMem }
 
-vpabsd, 2, 0x661E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vrcp14ps, 2, 0x664C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vrsqrt14ps, 2, 0x664E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-
-vpabsq, 2, 0x661F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vrcp14pd, 2, 0x664C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vrsqrt14pd, 2, 0x664E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-
-vpaddd, 3, 0x66FE, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpandd, 3, 0x66DB, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpandnd, 3, 0x66DF, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpord, 3, 0x66EB, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsubd, 3, 0x66FA, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpunpckhdq, 3, 0x666A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpunpckldq, 3, 0x6662, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpxord, 3, 0x66EF, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-
-vpaddq, 3, 0x66D4, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpandnq, 3, 0x66DF, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpandq, 3, 0x66DB, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmuludq, 3, 0x66F4, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vporq, 3, 0x66EB, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsubq, 3, 0x66FB, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpunpckhqdq, 3, 0x666D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpunpcklqdq, 3, 0x666C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpxorq, 3, 0x66EF, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vunpckhpd, 3, 0x6615, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vunpcklpd, 3, 0x6614, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vpabsd, 2, 0x661E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vrcp14ps, 2, 0x664C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vrsqrt14ps, 2, 0x664E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
+
+vpabsq, 2, 0x661F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vrcp14pd, 2, 0x664C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vrsqrt14pd, 2, 0x664E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
+
+vpaddd, 3, 0x66FE, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpandd, 3, 0x66DB, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpandnd, 3, 0x66DF, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpord, 3, 0x66EB, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsubd, 3, 0x66FA, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpunpckhdq, 3, 0x666A, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpunpckldq, 3, 0x6662, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpxord, 3, 0x66EF, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+
+vpaddq, 3, 0x66D4, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpandnq, 3, 0x66DF, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpandq, 3, 0x66DB, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmuludq, 3, 0x66F4, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vporq, 3, 0x66EB, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsubq, 3, 0x66FB, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpunpckhqdq, 3, 0x666D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpunpcklqdq, 3, 0x666C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpxorq, 3, 0x66EF, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vunpckhpd, 3, 0x6615, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vunpcklpd, 3, 0x6614, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 
-vpbroadcastq, 2, 0x6659, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpbroadcastq, 2, 0x6659, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegZMM }
 vpbroadcastq, 2, 0x667C, None, 1, CpuAVX512F|Cpu64, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg64, RegZMM }
 
-vpcmpeqd, 3, 0x6676, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpgtd, 3, 0x6666, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpd, 4, 0x661F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpeqd, 3, 0x661F, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpled, 3, 0x661F, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpltd, 3, 0x661F, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpneqd, 3, 0x661F, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpnled, 3, 0x661F, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpnltd, 3, 0x661F, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpud, 4, 0x661E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpequd, 3, 0x661E, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpleud, 3, 0x661E, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpltud, 3, 0x661E, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpnequd, 3, 0x661E, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpnleud, 3, 0x661E, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpnltud, 3, 0x661E, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-
-vpcmpeqq, 3, 0x6629, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpgtq, 3, 0x6637, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpq, 4, 0x661F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpeqq, 3, 0x661F, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpleq, 3, 0x661F, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpltq, 3, 0x661F, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpneqq, 3, 0x661F, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpnleq, 3, 0x661F, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpnltq, 3, 0x661F, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpuq, 4, 0x661E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpequq, 3, 0x661E, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpleuq, 3, 0x661E, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpltuq, 3, 0x661E, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpnequq, 3, 0x661E, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpnleuq, 3, 0x661E, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpnltuq, 3, 0x661E, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vptestmq, 3, 0x6627, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-
-vpermd, 3, 0x6636, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermps, 3, 0x6616, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-
-vpermilpd, 3, 0x6605, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpermilpd, 3, 0x660D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-
-vpermilps, 3, 0x6604, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpermilps, 3, 0x660C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-
-vpermpd, 3, 0x6601, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpermpd, 3, 0x6616, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermq, 3, 0x6600, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpermq, 3, 0x6636, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vpcmpeqd, 3, 0x6676, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpgtd, 3, 0x6666, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpd, 4, 0x661F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpeqd, 3, 0x661F, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpled, 3, 0x661F, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpltd, 3, 0x661F, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpneqd, 3, 0x661F, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnled, 3, 0x661F, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnltd, 3, 0x661F, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpud, 4, 0x661E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpequd, 3, 0x661E, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpleud, 3, 0x661E, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpltud, 3, 0x661E, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnequd, 3, 0x661E, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnleud, 3, 0x661E, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnltud, 3, 0x661E, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+
+vpcmpeqq, 3, 0x6629, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpgtq, 3, 0x6637, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpq, 4, 0x661F, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpeqq, 3, 0x661F, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpleq, 3, 0x661F, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpltq, 3, 0x661F, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpneqq, 3, 0x661F, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnleq, 3, 0x661F, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnltq, 3, 0x661F, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpuq, 4, 0x661E, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpequq, 3, 0x661E, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpleuq, 3, 0x661E, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpltuq, 3, 0x661E, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnequq, 3, 0x661E, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnleuq, 3, 0x661E, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnltuq, 3, 0x661E, 5, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vptestmq, 3, 0x6627, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+
+vpermd, 3, 0x6636, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermps, 3, 0x6616, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+
+vpermilpd, 3, 0x6605, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vpermilpd, 3, 0x660D, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+
+vpermilps, 3, 0x6604, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vpermilps, 3, 0x660C, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+
+vpermpd, 3, 0x6601, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vpermpd, 3, 0x6616, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermq, 3, 0x6600, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vpermq, 3, 0x6636, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 
 vpmovdb, 2, 0xF331, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegXMM|RegMem }
-vpmovdb, 2, 0xF331, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovdb, 2, 0xF331, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, XMMword|Unspecified|BaseIndex }
 vpmovsdb, 2, 0xF321, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegXMM|RegMem }
-vpmovsdb, 2, 0xF321, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovsdb, 2, 0xF321, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, XMMword|Unspecified|BaseIndex }
 vpmovusdb, 2, 0xF311, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegXMM|RegMem }
-vpmovusdb, 2, 0xF311, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovusdb, 2, 0xF311, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, XMMword|Unspecified|BaseIndex }
 
 vpmovdw, 2, 0xF333, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegYMM|RegMem }
-vpmovdw, 2, 0xF333, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovdw, 2, 0xF333, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex }
 vpmovsdw, 2, 0xF323, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegYMM|RegMem }
-vpmovsdw, 2, 0xF323, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovsdw, 2, 0xF323, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex }
 vpmovusdw, 2, 0xF313, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegYMM|RegMem }
-vpmovusdw, 2, 0xF313, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovusdw, 2, 0xF313, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex }
 
 vpmovqb, 2, 0xF332, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegXMM|RegMem }
-vpmovqb, 2, 0xF332, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovqb, 2, 0xF332, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Qword|Unspecified|BaseIndex }
 vpmovsqb, 2, 0xF322, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegXMM|RegMem }
-vpmovsqb, 2, 0xF322, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovsqb, 2, 0xF322, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Qword|Unspecified|BaseIndex }
 vpmovusqb, 2, 0xF312, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegXMM|RegMem }
-vpmovusqb, 2, 0xF312, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovusqb, 2, 0xF312, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, Qword|Unspecified|BaseIndex }
 
 vpmovqd, 2, 0xF335, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegYMM|RegMem }
-vpmovqd, 2, 0xF335, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovqd, 2, 0xF335, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex }
 vpmovsqd, 2, 0xF325, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegYMM|RegMem }
-vpmovsqd, 2, 0xF325, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovsqd, 2, 0xF325, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex }
 vpmovusqd, 2, 0xF315, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegYMM|RegMem }
-vpmovusqd, 2, 0xF315, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovusqd, 2, 0xF315, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex }
 
 vpmovqw, 2, 0xF334, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegXMM|RegMem }
-vpmovqw, 2, 0xF334, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovqw, 2, 0xF334, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, XMMword|Unspecified|BaseIndex }
 vpmovsqw, 2, 0xF324, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegXMM|RegMem }
-vpmovsqw, 2, 0xF324, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovsqw, 2, 0xF324, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, XMMword|Unspecified|BaseIndex }
 vpmovusqw, 2, 0xF314, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegXMM|RegMem }
-vpmovusqw, 2, 0xF314, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovusqw, 2, 0xF314, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, XMMword|Unspecified|BaseIndex }
 
-vpmovsxbd, 2, 0x6621, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpmovzxbd, 2, 0x6631, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpmovsxbd, 2, 0x6621, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegZMM }
+vpmovzxbd, 2, 0x6631, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegZMM }
 
-vpmovsxbq, 2, 0x6622, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpmovzxbq, 2, 0x6632, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpmovsxbq, 2, 0x6622, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegZMM }
+vpmovzxbq, 2, 0x6632, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegZMM }
 
-vpmovsxdq, 2, 0x6625, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpmovzxdq, 2, 0x6635, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpmovsxdq, 2, 0x6625, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegZMM }
+vpmovzxdq, 2, 0x6635, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegZMM }
 
-vpmovsxwd, 2, 0x6623, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpmovzxwd, 2, 0x6633, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpmovsxwd, 2, 0x6623, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegZMM }
+vpmovzxwd, 2, 0x6633, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegZMM }
 
-vpmovsxwq, 2, 0x6624, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpmovzxwq, 2, 0x6634, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpmovsxwq, 2, 0x6624, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegZMM }
+vpmovzxwq, 2, 0x6634, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegZMM }
 
-vprold, 3, 0x6672, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vprold, 3, 0x6672, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vprold, 3, 0x6672, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
-vprord, 3, 0x6672, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vprord, 3, 0x6672, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vprord, 3, 0x6672, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
 
-vprolq, 3, 0x6672, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vprolq, 3, 0x6672, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vprolq, 3, 0x6672, 1, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
-vprorq, 3, 0x6672, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vprorq, 3, 0x6672, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vprorq, 3, 0x6672, 0, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
 
-vpscatterqd, 2, 0x66A1, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterqps, 2, 0x66A3, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpscatterqd, 2, 0x66A1, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vscatterqps, 2, 0x66A3, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
 
-vpshufd, 3, 0x6670, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpshufd, 3, 0x6670, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 
-vpslld, 3, 0x66F2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpslld, 3, 0x6672, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpslld, 3, 0x66F2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpslld, 3, 0x6672, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vpslld, 3, 0x6672, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
-vpsrad, 3, 0x66E2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsrad, 3, 0x6672, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpsrad, 3, 0x66E2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsrad, 3, 0x6672, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vpsrad, 3, 0x6672, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
-vpsrld, 3, 0x66D2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsrld, 3, 0x6672, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpsrld, 3, 0x66D2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsrld, 3, 0x6672, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vpsrld, 3, 0x6672, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
 
-vpsllq, 3, 0x66F3, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsllq, 3, 0x6673, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpsllq, 3, 0x66F3, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsllq, 3, 0x6673, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vpsllq, 3, 0x6673, 6, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
-vpsraq, 3, 0x66E2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsraq, 3, 0x6672, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpsraq, 3, 0x66E2, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsraq, 3, 0x6672, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vpsraq, 3, 0x6672, 4, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
-vpsrlq, 3, 0x66D3, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsrlq, 3, 0x6673, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpsrlq, 3, 0x66D3, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsrlq, 3, 0x6673, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vpsrlq, 3, 0x6673, 2, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
 
-vptestmd, 3, 0x6627, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vptestmd, 3, 0x6627, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 
-vrcp14sd, 3, 0x664D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vrsqrt14sd, 3, 0x664F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vrcp14sd, 3, 0x664D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vrsqrt14sd, 3, 0x664F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 
-vrcp14ss, 3, 0x664D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vrsqrt14ss, 3, 0x664F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vrcp14ss, 3, 0x664D, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vrsqrt14ss, 3, 0x664F, None, 1, CpuAVX512F, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 
-vshuff32x4, 4, 0x6623, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vshufi32x4, 4, 0x6643, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vshuff32x4, 4, 0x6623, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vshufi32x4, 4, 0x6643, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 
-vshuff64x2, 4, 0x6623, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vshufi64x2, 4, 0x6643, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vshuff64x2, 4, 0x6623, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vshufi64x2, 4, 0x6643, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 
-vshufpd, 4, 0x66C6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vshufpd, 4, 0x66C6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 
-vshufps, 4, 0xC6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vshufps, 4, 0xC6, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 
-vsqrtpd, 2, 0x6651, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vsqrtpd, 2, 0x6651, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vsqrtpd, 3, 0x6651, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM }
 
-vunpckhps, 3, 0x15, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vunpcklps, 3, 0x14, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vunpckhps, 3, 0x15, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vunpcklps, 3, 0x14, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 
-vptestnmd, 3, 0xF327, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vptestnmq, 3, 0xF327, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
+vptestnmd, 3, 0xF327, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vptestnmq, 3, 0xF327, None, 1, CpuAVX512F, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
 
 // AVX512F instructions end.
 
@@ -4239,93 +4127,93 @@ vpbroadcastmb2q, 2, 0xF32A, None, 1, Cpu
 
 vpbroadcastmw2d, 2, 0xF33A, None, 1, CpuAVX512CD, Modrm|EVex=1|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegZMM }
 
-vpconflictd, 2, 0x66C4, None, 1, CpuAVX512CD, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpconflictd, 2, 0x66C4, None, 1, CpuAVX512CD, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 
-vpconflictq, 2, 0x66C4, None, 1, CpuAVX512CD, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpconflictq, 2, 0x66C4, None, 1, CpuAVX512CD, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
 
-vplzcntd, 2, 0x6644, None, 1, CpuAVX512CD, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vplzcntd, 2, 0x6644, None, 1, CpuAVX512CD, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 
-vplzcntq, 2, 0x6644, None, 1, CpuAVX512CD, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vplzcntq, 2, 0x6644, None, 1, CpuAVX512CD, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
 
 // AVX512CD instructions end.
 
 // AVX512ER instructions.
 
-vexp2pd, 2, 0x66C8, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vexp2pd, 2, 0x66C8, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vexp2pd, 3, 0x66C8, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM }
 
-vexp2ps, 2, 0x66C8, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vexp2ps, 2, 0x66C8, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vexp2ps, 3, 0x66C8, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM }
 
-vrcp28pd, 2, 0x66CA, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vrcp28pd, 2, 0x66CA, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vrcp28pd, 3, 0x66CA, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM }
-vrsqrt28pd, 2, 0x66CC, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vrsqrt28pd, 2, 0x66CC, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vrsqrt28pd, 3, 0x66CC, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM }
 
-vrcp28ps, 2, 0x66CA, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vrcp28ps, 2, 0x66CA, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vrcp28ps, 3, 0x66CA, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM }
-vrsqrt28ps, 2, 0x66CC, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vrsqrt28ps, 2, 0x66CC, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
 vrsqrt28ps, 3, 0x66CC, None, 1, CpuAVX512ER, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM }
 
-vrcp28sd, 3, 0x66CB, None, 1, CpuAVX512ER, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vrcp28sd, 3, 0x66CB, None, 1, CpuAVX512ER, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vrcp28sd, 4, 0x66CB, None, 1, CpuAVX512ER, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vrsqrt28sd, 3, 0x66CD, None, 1, CpuAVX512ER, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vrsqrt28sd, 3, 0x66CD, None, 1, CpuAVX512ER, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vrsqrt28sd, 4, 0x66CD, None, 1, CpuAVX512ER, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
 
-vrcp28ss, 3, 0x66CB, None, 1, CpuAVX512ER, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vrcp28ss, 3, 0x66CB, None, 1, CpuAVX512ER, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vrcp28ss, 4, 0x66CB, None, 1, CpuAVX512ER, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
-vrsqrt28ss, 3, 0x66CD, None, 1, CpuAVX512ER, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vrsqrt28ss, 3, 0x66CD, None, 1, CpuAVX512ER, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vrsqrt28ss, 4, 0x66CD, None, 1, CpuAVX512ER, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegXMM, RegXMM, RegXMM }
 
 // AVX512ER instructions end.
 
 // AVX512PF instructions.
 
-vgatherpf0dpd, 1, 0x66C6, 1, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vgatherpf0qpd, 1, 0x66C7, 1, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vgatherpf1dpd, 1, 0x66C6, 2, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vgatherpf1qpd, 1, 0x66C7, 2, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterpf0dpd, 1, 0x66C6, 5, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterpf0qpd, 1, 0x66C7, 5, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterpf1dpd, 1, 0x66C6, 6, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterpf1qpd, 1, 0x66C7, 6, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-
-vgatherpf0dps, 1, 0x66C6, 1, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vgatherpf0qps, 1, 0x66C7, 1, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vgatherpf1dps, 1, 0x66C6, 2, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vgatherpf1qps, 1, 0x66C7, 2, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterpf0dps, 1, 0x66C6, 5, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterpf0qps, 1, 0x66C7, 5, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterpf1dps, 1, 0x66C6, 6, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterpf1qps, 1, 0x66C7, 6, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vgatherpf0dpd, 1, 0x66C6, 1, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex }
+vgatherpf0qpd, 1, 0x66C7, 1, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex }
+vgatherpf1dpd, 1, 0x66C6, 2, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex }
+vgatherpf1qpd, 1, 0x66C7, 2, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex }
+vscatterpf0dpd, 1, 0x66C6, 5, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex }
+vscatterpf0qpd, 1, 0x66C7, 5, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex }
+vscatterpf1dpd, 1, 0x66C6, 6, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex }
+vscatterpf1qpd, 1, 0x66C7, 6, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex }
+
+vgatherpf0dps, 1, 0x66C6, 1, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex }
+vgatherpf0qps, 1, 0x66C7, 1, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex }
+vgatherpf1dps, 1, 0x66C6, 2, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex }
+vgatherpf1qps, 1, 0x66C7, 2, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex }
+vscatterpf0dps, 1, 0x66C6, 5, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex }
+vscatterpf0qps, 1, 0x66C7, 5, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex }
+vscatterpf1dps, 1, 0x66C6, 6, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex }
+vscatterpf1qps, 1, 0x66C7, 6, 1, CpuAVX512PF, Modrm|EVex=1|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex }
 
 // AVX512PF instructions end.
 
 // CpuPREFETCHWT1 instructions.
 
-prefetchwt1, 1, 0x0F0D, 2, 2, CpuPREFETCHWT1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+prefetchwt1, 1, 0x0F0D, 2, 2, CpuPREFETCHWT1, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex }
 
 // CpuPREFETCHWT1 instructions end.
 
 // CLFLUSHOPT instructions.
 
-clflushopt, 1, 0x660fae, 0x7, 2, CpuClflushOpt, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+clflushopt, 1, 0x660fae, 0x7, 2, CpuClflushOpt, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex }
 
 // CLFLUSHOPT instructions end.
 
 // XSAVES/XRSTORS instructions.
 
-xrstors, 1, 0xfc7, 0x3, 2, CpuXSAVES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-xrstors64, 1, 0xfc7, 0x3, 2, CpuXSAVES|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
-xsaves, 1, 0xfc7, 0x5, 2, CpuXSAVES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-xsaves64, 1, 0xfc7, 0x5, 2, CpuXSAVES|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
+xrstors, 1, 0xfc7, 0x3, 2, CpuXSAVES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex }
+xrstors64, 1, 0xfc7, 0x3, 2, CpuXSAVES|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex }
+xsaves, 1, 0xfc7, 0x5, 2, CpuXSAVES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex }
+xsaves64, 1, 0xfc7, 0x5, 2, CpuXSAVES|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex }
 
 // XSAVES instructions end.
 
 // XSAVEC instructions.
 
-xsavec, 1, 0xfc7, 0x4, 2, CpuXSAVEC, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-xsavec64, 1, 0xfc7, 0x4, 2, CpuXSAVEC|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex|Disp8|Disp32|Disp32S }
+xsavec, 1, 0xfc7, 0x4, 2, CpuXSAVEC, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Unspecified|BaseIndex }
+xsavec64, 1, 0xfc7, 0x4, 2, CpuXSAVEC|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Unspecified|BaseIndex }
 
 // XSAVEC instructions end.
 
@@ -4338,834 +4226,834 @@ enclu, 0, 0xf01d7, None, 3, CpuSE1, No_b
 
 // AVX512VL instructions.
 
-vaddpd, 3, 0x6658, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vaddpd, 3, 0x6658, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vdivpd, 3, 0x665E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vdivpd, 3, 0x665E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vmulpd, 3, 0x6659, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vmulpd, 3, 0x6659, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vsqrtpd, 2, 0x6651, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vsqrtpd, 2, 0x6651, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vsubpd, 3, 0x665C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vsubpd, 3, 0x665C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vaddps, 3, 0x58, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vaddps, 3, 0x58, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vcvtdq2ps, 2, 0x5B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtdq2ps, 2, 0x5B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vcvtps2udq, 2, 0x79, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtps2udq, 2, 0x79, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vdivps, 3, 0x5E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vdivps, 3, 0x5E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vmulps, 3, 0x59, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vmulps, 3, 0x59, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vsqrtps, 2, 0x51, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vsqrtps, 2, 0x51, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vsubps, 3, 0x5C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vsubps, 3, 0x5C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-valignd, 4, 0x6603, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-valignd, 4, 0x6603, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermilps, 3, 0x6604, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpermilps, 3, 0x6604, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpternlogd, 4, 0x6625, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpternlogd, 4, 0x6625, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vshuff32x4, 4, 0x6623, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vshufi32x4, 4, 0x6643, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-valignq, 4, 0x6603, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-valignq, 4, 0x6603, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermilpd, 3, 0x6605, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpermilpd, 3, 0x6605, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpermpd, 3, 0x6601, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpermq, 3, 0x6600, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpternlogq, 4, 0x6625, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpternlogq, 4, 0x6625, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vshuff64x2, 4, 0x6623, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vshufi64x2, 4, 0x6643, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vblendmpd, 3, 0x6665, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vblendmpd, 3, 0x6665, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpabsq, 2, 0x661F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpabsq, 2, 0x661F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpblendmq, 3, 0x6664, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpblendmq, 3, 0x6664, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermi2pd, 3, 0x6677, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermi2pd, 3, 0x6677, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermi2q, 3, 0x6676, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermi2q, 3, 0x6676, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermilpd, 3, 0x660D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermilpd, 3, 0x660D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermpd, 3, 0x6616, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermq, 3, 0x6636, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermt2pd, 3, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermt2pd, 3, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermt2q, 3, 0x667E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermt2q, 3, 0x667E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmaxsq, 3, 0x663D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmaxsq, 3, 0x663D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmaxuq, 3, 0x663F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmaxuq, 3, 0x663F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpminsq, 3, 0x6639, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpminsq, 3, 0x6639, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpminuq, 3, 0x663B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpminuq, 3, 0x663B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmuldq, 3, 0x6628, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmuldq, 3, 0x6628, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vprolvq, 3, 0x6615, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vprolvq, 3, 0x6615, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vprorvq, 3, 0x6614, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vprorvq, 3, 0x6614, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsllvq, 3, 0x6647, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsllvq, 3, 0x6647, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsravq, 3, 0x6646, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsravq, 3, 0x6646, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsrlvq, 3, 0x6645, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsrlvq, 3, 0x6645, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vrcp14pd, 2, 0x664C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vrcp14pd, 2, 0x664C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vrsqrt14pd, 2, 0x664E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vrsqrt14pd, 2, 0x664E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vblendmps, 3, 0x6665, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vblendmps, 3, 0x6665, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpabsd, 2, 0x661E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpabsd, 2, 0x661E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpblendmd, 3, 0x6664, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpblendmd, 3, 0x6664, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermd, 3, 0x6636, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermi2d, 3, 0x6676, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermi2d, 3, 0x6676, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermi2ps, 3, 0x6677, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermi2ps, 3, 0x6677, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermilps, 3, 0x660C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermilps, 3, 0x660C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermps, 3, 0x6616, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermt2d, 3, 0x667E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermt2d, 3, 0x667E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermt2ps, 3, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermt2ps, 3, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmaxsd, 3, 0x663D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmaxsd, 3, 0x663D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmaxud, 3, 0x663F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmaxud, 3, 0x663F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpminsd, 3, 0x6639, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpminsd, 3, 0x6639, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpminud, 3, 0x663B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpminud, 3, 0x663B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmulld, 3, 0x6640, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmulld, 3, 0x6640, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vprolvd, 3, 0x6615, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vprolvd, 3, 0x6615, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vprorvd, 3, 0x6614, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vprorvd, 3, 0x6614, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsllvd, 3, 0x6647, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsllvd, 3, 0x6647, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsravd, 3, 0x6646, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsravd, 3, 0x6646, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsrlvd, 3, 0x6645, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsrlvd, 3, 0x6645, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vrcp14ps, 2, 0x664C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vrcp14ps, 2, 0x664C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vrsqrt14ps, 2, 0x664E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vrsqrt14ps, 2, 0x664E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vbroadcastf32x4, 2, 0x661A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vbroadcasti32x4, 2, 0x665A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vbroadcastss, 2, 0x6618, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vbroadcastss, 2, 0x6618, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vaddpd, 3, 0x6658, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vaddpd, 3, 0x6658, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vdivpd, 3, 0x665E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vdivpd, 3, 0x665E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vmulpd, 3, 0x6659, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vmulpd, 3, 0x6659, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vsqrtpd, 2, 0x6651, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vsqrtpd, 2, 0x6651, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
+vsubpd, 3, 0x665C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vsubpd, 3, 0x665C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vaddps, 3, 0x58, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vaddps, 3, 0x58, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vcvtdq2ps, 2, 0x5B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvtdq2ps, 2, 0x5B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+vcvtps2udq, 2, 0x79, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvtps2udq, 2, 0x79, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+vdivps, 3, 0x5E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vdivps, 3, 0x5E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vmulps, 3, 0x59, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vmulps, 3, 0x59, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vsqrtps, 2, 0x51, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vsqrtps, 2, 0x51, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+vsubps, 3, 0x5C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vsubps, 3, 0x5C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+valignd, 4, 0x6603, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+valignd, 4, 0x6603, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermilps, 3, 0x6604, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vpermilps, 3, 0x6604, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+vpternlogd, 4, 0x6625, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpternlogd, 4, 0x6625, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vshuff32x4, 4, 0x6623, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vshufi32x4, 4, 0x6643, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+valignq, 4, 0x6603, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+valignq, 4, 0x6603, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermilpd, 3, 0x6605, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vpermilpd, 3, 0x6605, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
+vpermpd, 3, 0x6601, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
+vpermq, 3, 0x6600, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
+vpternlogq, 4, 0x6625, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpternlogq, 4, 0x6625, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vshuff64x2, 4, 0x6623, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vshufi64x2, 4, 0x6643, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vblendmpd, 3, 0x6665, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vblendmpd, 3, 0x6665, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpabsq, 2, 0x661F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vpabsq, 2, 0x661F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
+vpblendmq, 3, 0x6664, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpblendmq, 3, 0x6664, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermi2pd, 3, 0x6677, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermi2pd, 3, 0x6677, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermi2q, 3, 0x6676, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermi2q, 3, 0x6676, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermilpd, 3, 0x660D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermilpd, 3, 0x660D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermpd, 3, 0x6616, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermq, 3, 0x6636, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermt2pd, 3, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermt2pd, 3, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermt2q, 3, 0x667E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermt2q, 3, 0x667E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmaxsq, 3, 0x663D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmaxsq, 3, 0x663D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmaxuq, 3, 0x663F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmaxuq, 3, 0x663F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpminsq, 3, 0x6639, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpminsq, 3, 0x6639, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpminuq, 3, 0x663B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpminuq, 3, 0x663B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmuldq, 3, 0x6628, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmuldq, 3, 0x6628, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vprolvq, 3, 0x6615, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vprolvq, 3, 0x6615, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vprorvq, 3, 0x6614, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vprorvq, 3, 0x6614, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsllvq, 3, 0x6647, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsllvq, 3, 0x6647, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsravq, 3, 0x6646, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsravq, 3, 0x6646, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsrlvq, 3, 0x6645, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsrlvq, 3, 0x6645, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vrcp14pd, 2, 0x664C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vrcp14pd, 2, 0x664C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
+vrsqrt14pd, 2, 0x664E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vrsqrt14pd, 2, 0x664E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vblendmps, 3, 0x6665, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vblendmps, 3, 0x6665, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpabsd, 2, 0x661E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vpabsd, 2, 0x661E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+vpblendmd, 3, 0x6664, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpblendmd, 3, 0x6664, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermd, 3, 0x6636, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermi2d, 3, 0x6676, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermi2d, 3, 0x6676, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermi2ps, 3, 0x6677, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermi2ps, 3, 0x6677, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermilps, 3, 0x660C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermilps, 3, 0x660C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermps, 3, 0x6616, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermt2d, 3, 0x667E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermt2d, 3, 0x667E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermt2ps, 3, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermt2ps, 3, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmaxsd, 3, 0x663D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmaxsd, 3, 0x663D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmaxud, 3, 0x663F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmaxud, 3, 0x663F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpminsd, 3, 0x6639, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpminsd, 3, 0x6639, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpminud, 3, 0x663B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpminud, 3, 0x663B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmulld, 3, 0x6640, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmulld, 3, 0x6640, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vprolvd, 3, 0x6615, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vprolvd, 3, 0x6615, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vprorvd, 3, 0x6614, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vprorvd, 3, 0x6614, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsllvd, 3, 0x6647, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsllvd, 3, 0x6647, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsravd, 3, 0x6646, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsravd, 3, 0x6646, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsrlvd, 3, 0x6645, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsrlvd, 3, 0x6645, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vrcp14ps, 2, 0x664C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vrcp14ps, 2, 0x664C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+vrsqrt14ps, 2, 0x664E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vrsqrt14ps, 2, 0x664E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vbroadcastf32x4, 2, 0x661A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegYMM }
+vbroadcasti32x4, 2, 0x665A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegYMM }
+vbroadcastss, 2, 0x6618, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM }
+vbroadcastss, 2, 0x6618, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
 vcompressps, 2, 0x668A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vcompressps, 2, 0x668A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
-vexpandps, 2, 0x6688, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vexpandps, 2, 0x6688, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpbroadcastd, 2, 0x6658, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vexpandps, 2, 0x6688, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vexpandps, 2, 0x6688, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
+vpbroadcastd, 2, 0x6658, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex, RegXMM }
 vpbroadcastd, 2, 0x6658, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { RegXMM, RegXMM }
-vpbroadcastd, 2, 0x6658, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vpbroadcastd, 2, 0x6658, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Unspecified|BaseIndex, RegYMM }
 vpbroadcastd, 2, 0x6658, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { RegXMM, RegYMM }
 vpbroadcastd, 2, 0x667C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg32, RegXMM }
 vpbroadcastd, 2, 0x667C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg32, RegYMM }
 vpcompressd, 2, 0x668B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vpcompressd, 2, 0x668B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
-vpexpandd, 2, 0x6689, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpexpandd, 2, 0x6689, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vpexpandd, 2, 0x6689, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vpexpandd, 2, 0x6689, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
 
-vbroadcastsd, 2, 0x6619, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vbroadcastsd, 2, 0x6619, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegYMM }
 vcompresspd, 2, 0x668A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vcompresspd, 2, 0x668A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
-vexpandpd, 2, 0x6688, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vexpandpd, 2, 0x6688, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpbroadcastq, 2, 0x6659, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vexpandpd, 2, 0x6688, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vexpandpd, 2, 0x6688, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
+vpbroadcastq, 2, 0x6659, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM }
 vpbroadcastq, 2, 0x6659, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { RegXMM, RegXMM }
-vpbroadcastq, 2, 0x6659, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vpbroadcastq, 2, 0x6659, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegYMM }
 vpbroadcastq, 2, 0x6659, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { RegXMM, RegYMM }
 vpbroadcastq, 2, 0x667C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg64, RegXMM }
 vpbroadcastq, 2, 0x667C, None, 1, CpuAVX512F|CpuAVX512VL|Cpu64, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg64, RegYMM }
 vpcompressq, 2, 0x668B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vpcompressq, 2, 0x668B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
-vpexpandq, 2, 0x6689, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpexpandq, 2, 0x6689, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vpexpandq, 2, 0x6689, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vpexpandq, 2, 0x6689, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
 
-vcmpeq_oqpd, 3, 0x66C2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpeq_oqpd, 3, 0x66C2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpeq_ospd, 3, 0x66C2, 16, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpeq_ospd, 3, 0x66C2, 16, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpeq_uqpd, 3, 0x66C2, 8, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpeq_uqpd, 3, 0x66C2, 8, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpeq_uspd, 3, 0x66C2, 24, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpeq_uspd, 3, 0x66C2, 24, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpeqpd, 3, 0x66C2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpeqpd, 3, 0x66C2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpfalse_oqpd, 3, 0x66C2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpfalse_oqpd, 3, 0x66C2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpfalse_ospd, 3, 0x66C2, 27, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpfalse_ospd, 3, 0x66C2, 27, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpfalsepd, 3, 0x66C2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpfalsepd, 3, 0x66C2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpge_oqpd, 3, 0x66C2, 29, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpge_oqpd, 3, 0x66C2, 29, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpge_ospd, 3, 0x66C2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpge_ospd, 3, 0x66C2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpgepd, 3, 0x66C2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpgepd, 3, 0x66C2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpgt_oqpd, 3, 0x66C2, 30, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpgt_oqpd, 3, 0x66C2, 30, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpgt_ospd, 3, 0x66C2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpgt_ospd, 3, 0x66C2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpgtpd, 3, 0x66C2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpgtpd, 3, 0x66C2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmple_oqpd, 3, 0x66C2, 18, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmple_oqpd, 3, 0x66C2, 18, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmple_ospd, 3, 0x66C2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmple_ospd, 3, 0x66C2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmplepd, 3, 0x66C2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmplepd, 3, 0x66C2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmplt_oqpd, 3, 0x66C2, 17, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmplt_oqpd, 3, 0x66C2, 17, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmplt_ospd, 3, 0x66C2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmplt_ospd, 3, 0x66C2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpltpd, 3, 0x66C2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpltpd, 3, 0x66C2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpneq_oqpd, 3, 0x66C2, 12, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpneq_oqpd, 3, 0x66C2, 12, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpneq_ospd, 3, 0x66C2, 28, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpneq_ospd, 3, 0x66C2, 28, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpneq_uqpd, 3, 0x66C2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpneq_uqpd, 3, 0x66C2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpneq_uspd, 3, 0x66C2, 20, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpneq_uspd, 3, 0x66C2, 20, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpneqpd, 3, 0x66C2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpneqpd, 3, 0x66C2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnge_uqpd, 3, 0x66C2, 25, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnge_uqpd, 3, 0x66C2, 25, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnge_uspd, 3, 0x66C2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnge_uspd, 3, 0x66C2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpngepd, 3, 0x66C2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpngepd, 3, 0x66C2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpngt_uqpd, 3, 0x66C2, 26, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpngt_uqpd, 3, 0x66C2, 26, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpngt_uspd, 3, 0x66C2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpngt_uspd, 3, 0x66C2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpngtpd, 3, 0x66C2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpngtpd, 3, 0x66C2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnle_uqpd, 3, 0x66C2, 22, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnle_uqpd, 3, 0x66C2, 22, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnle_uspd, 3, 0x66C2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnle_uspd, 3, 0x66C2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnlepd, 3, 0x66C2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnlepd, 3, 0x66C2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnlt_uqpd, 3, 0x66C2, 21, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnlt_uqpd, 3, 0x66C2, 21, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnlt_uspd, 3, 0x66C2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnlt_uspd, 3, 0x66C2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnltpd, 3, 0x66C2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnltpd, 3, 0x66C2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpord_qpd, 3, 0x66C2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpord_qpd, 3, 0x66C2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpord_spd, 3, 0x66C2, 23, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpord_spd, 3, 0x66C2, 23, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpordpd, 3, 0x66C2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpordpd, 3, 0x66C2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmppd, 4, 0x66C2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmppd, 4, 0x66C2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmptrue_uqpd, 3, 0x66C2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmptrue_uqpd, 3, 0x66C2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmptrue_uspd, 3, 0x66C2, 31, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmptrue_uspd, 3, 0x66C2, 31, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmptruepd, 3, 0x66C2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmptruepd, 3, 0x66C2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpunord_qpd, 3, 0x66C2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpunord_qpd, 3, 0x66C2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpunord_spd, 3, 0x66C2, 19, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpunord_spd, 3, 0x66C2, 19, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpunordpd, 3, 0x66C2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpunordpd, 3, 0x66C2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-
-vcmpeq_oqps, 3, 0xC2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpeq_oqps, 3, 0xC2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpeq_osps, 3, 0xC2, 16, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpeq_osps, 3, 0xC2, 16, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpeq_uqps, 3, 0xC2, 8, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpeq_uqps, 3, 0xC2, 8, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpeq_usps, 3, 0xC2, 24, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpeq_usps, 3, 0xC2, 24, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpeqps, 3, 0xC2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpeqps, 3, 0xC2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpfalse_oqps, 3, 0xC2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpfalse_oqps, 3, 0xC2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpfalse_osps, 3, 0xC2, 27, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpfalse_osps, 3, 0xC2, 27, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpfalseps, 3, 0xC2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpfalseps, 3, 0xC2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpge_oqps, 3, 0xC2, 29, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpge_oqps, 3, 0xC2, 29, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpge_osps, 3, 0xC2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpge_osps, 3, 0xC2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpgeps, 3, 0xC2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpgeps, 3, 0xC2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpgt_oqps, 3, 0xC2, 30, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpgt_oqps, 3, 0xC2, 30, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpgt_osps, 3, 0xC2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpgt_osps, 3, 0xC2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpgtps, 3, 0xC2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpgtps, 3, 0xC2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmple_oqps, 3, 0xC2, 18, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmple_oqps, 3, 0xC2, 18, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmple_osps, 3, 0xC2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmple_osps, 3, 0xC2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpleps, 3, 0xC2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpleps, 3, 0xC2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmplt_oqps, 3, 0xC2, 17, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmplt_oqps, 3, 0xC2, 17, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmplt_osps, 3, 0xC2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmplt_osps, 3, 0xC2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpltps, 3, 0xC2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpltps, 3, 0xC2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpneq_oqps, 3, 0xC2, 12, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpneq_oqps, 3, 0xC2, 12, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpneq_osps, 3, 0xC2, 28, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpneq_osps, 3, 0xC2, 28, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpneq_uqps, 3, 0xC2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpneq_uqps, 3, 0xC2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpneq_usps, 3, 0xC2, 20, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpneq_usps, 3, 0xC2, 20, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpneqps, 3, 0xC2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpneqps, 3, 0xC2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnge_uqps, 3, 0xC2, 25, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnge_uqps, 3, 0xC2, 25, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnge_usps, 3, 0xC2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnge_usps, 3, 0xC2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpngeps, 3, 0xC2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpngeps, 3, 0xC2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpngt_uqps, 3, 0xC2, 26, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpngt_uqps, 3, 0xC2, 26, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpngt_usps, 3, 0xC2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpngt_usps, 3, 0xC2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpngtps, 3, 0xC2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpngtps, 3, 0xC2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnle_uqps, 3, 0xC2, 22, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnle_uqps, 3, 0xC2, 22, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnle_usps, 3, 0xC2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnle_usps, 3, 0xC2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnleps, 3, 0xC2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnleps, 3, 0xC2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnlt_uqps, 3, 0xC2, 21, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnlt_uqps, 3, 0xC2, 21, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnlt_usps, 3, 0xC2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnlt_usps, 3, 0xC2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpnltps, 3, 0xC2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpnltps, 3, 0xC2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpord_qps, 3, 0xC2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpord_qps, 3, 0xC2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpord_sps, 3, 0xC2, 23, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpord_sps, 3, 0xC2, 23, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpordps, 3, 0xC2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpordps, 3, 0xC2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpps, 4, 0xC2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpps, 4, 0xC2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmptrue_uqps, 3, 0xC2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmptrue_uqps, 3, 0xC2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmptrue_usps, 3, 0xC2, 31, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmptrue_usps, 3, 0xC2, 31, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmptrueps, 3, 0xC2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmptrueps, 3, 0xC2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpunord_qps, 3, 0xC2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpunord_qps, 3, 0xC2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpunord_sps, 3, 0xC2, 19, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpunord_sps, 3, 0xC2, 19, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vcmpunordps, 3, 0xC2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vcmpunordps, 3, 0xC2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-
-vcompresspd, 2, 0x668A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vcompresspd, 2, 0x668A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vgatherdpd, 2, 0x6692, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vgatherdpd, 2, 0x6692, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vgatherqpd, 2, 0x6693, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vgatherqpd, 2, 0x6693, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpcompressq, 2, 0x668B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpcompressq, 2, 0x668B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpgatherdq, 2, 0x6690, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpgatherdq, 2, 0x6690, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpgatherqq, 2, 0x6691, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpgatherqq, 2, 0x6691, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpscatterdq, 2, 0x66A0, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpscatterdq, 2, 0x66A0, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpscatterqq, 2, 0x66A1, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpscatterqq, 2, 0x66A1, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterdpd, 2, 0x66A2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterdpd, 2, 0x66A2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterqpd, 2, 0x66A3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterqpd, 2, 0x66A3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-
-vcompressps, 2, 0x668A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vcompressps, 2, 0x668A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vgatherdps, 2, 0x6692, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vgatherdps, 2, 0x6692, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vgatherqps, 2, 0x6693, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vgatherqps, 2, 0x6693, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovntdqa, 2, 0x662A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovntdqa, 2, 0x662A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpcompressd, 2, 0x668B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpcompressd, 2, 0x668B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpgatherdd, 2, 0x6690, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpgatherdd, 2, 0x6690, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpgatherqd, 2, 0x6691, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpgatherqd, 2, 0x6691, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpscatterdd, 2, 0x66A0, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpscatterdd, 2, 0x66A0, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpscatterqd, 2, 0x66A1, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpscatterqd, 2, 0x66A1, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterdps, 2, 0x66A2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterdps, 2, 0x66A2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterqps, 2, 0x66A3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vscatterqps, 2, 0x66A3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-
-vcvtdq2pd, 2, 0xF3E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=4|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtdq2pd, 2, 0xF3E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vcvtudq2pd, 2, 0xF37A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=4|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtudq2pd, 2, 0xF37A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vcvtpd2dq, 2, 0xF2E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtpd2dqx, 2, 0xF2E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtpd2dq, 2, 0xF2E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtpd2dqy, 2, 0xF2E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtpd2ps, 2, 0x665A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtpd2psx, 2, 0x665A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtpd2ps, 2, 0x665A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtpd2psy, 2, 0x665A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-
-vcvtpd2udq, 2, 0x79, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtpd2udqx, 2, 0x79, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtpd2udq, 2, 0x79, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtpd2udqy, 2, 0x79, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtph2ps, 2, 0x6613, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtph2ps, 2, 0x6613, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcmpeq_oqpd, 3, 0x66C2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpeq_oqpd, 3, 0x66C2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpeq_ospd, 3, 0x66C2, 16, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpeq_ospd, 3, 0x66C2, 16, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpeq_uqpd, 3, 0x66C2, 8, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpeq_uqpd, 3, 0x66C2, 8, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpeq_uspd, 3, 0x66C2, 24, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpeq_uspd, 3, 0x66C2, 24, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpeqpd, 3, 0x66C2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpeqpd, 3, 0x66C2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpfalse_oqpd, 3, 0x66C2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpfalse_oqpd, 3, 0x66C2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpfalse_ospd, 3, 0x66C2, 27, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpfalse_ospd, 3, 0x66C2, 27, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpfalsepd, 3, 0x66C2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpfalsepd, 3, 0x66C2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpge_oqpd, 3, 0x66C2, 29, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpge_oqpd, 3, 0x66C2, 29, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpge_ospd, 3, 0x66C2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpge_ospd, 3, 0x66C2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpgepd, 3, 0x66C2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpgepd, 3, 0x66C2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpgt_oqpd, 3, 0x66C2, 30, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpgt_oqpd, 3, 0x66C2, 30, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpgt_ospd, 3, 0x66C2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpgt_ospd, 3, 0x66C2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpgtpd, 3, 0x66C2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpgtpd, 3, 0x66C2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmple_oqpd, 3, 0x66C2, 18, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmple_oqpd, 3, 0x66C2, 18, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmple_ospd, 3, 0x66C2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmple_ospd, 3, 0x66C2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmplepd, 3, 0x66C2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmplepd, 3, 0x66C2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmplt_oqpd, 3, 0x66C2, 17, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmplt_oqpd, 3, 0x66C2, 17, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmplt_ospd, 3, 0x66C2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmplt_ospd, 3, 0x66C2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpltpd, 3, 0x66C2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpltpd, 3, 0x66C2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpneq_oqpd, 3, 0x66C2, 12, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpneq_oqpd, 3, 0x66C2, 12, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpneq_ospd, 3, 0x66C2, 28, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpneq_ospd, 3, 0x66C2, 28, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpneq_uqpd, 3, 0x66C2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpneq_uqpd, 3, 0x66C2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpneq_uspd, 3, 0x66C2, 20, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpneq_uspd, 3, 0x66C2, 20, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpneqpd, 3, 0x66C2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpneqpd, 3, 0x66C2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnge_uqpd, 3, 0x66C2, 25, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnge_uqpd, 3, 0x66C2, 25, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnge_uspd, 3, 0x66C2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnge_uspd, 3, 0x66C2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpngepd, 3, 0x66C2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpngepd, 3, 0x66C2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpngt_uqpd, 3, 0x66C2, 26, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpngt_uqpd, 3, 0x66C2, 26, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpngt_uspd, 3, 0x66C2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpngt_uspd, 3, 0x66C2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpngtpd, 3, 0x66C2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpngtpd, 3, 0x66C2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnle_uqpd, 3, 0x66C2, 22, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnle_uqpd, 3, 0x66C2, 22, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnle_uspd, 3, 0x66C2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnle_uspd, 3, 0x66C2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnlepd, 3, 0x66C2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnlepd, 3, 0x66C2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnlt_uqpd, 3, 0x66C2, 21, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnlt_uqpd, 3, 0x66C2, 21, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnlt_uspd, 3, 0x66C2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnlt_uspd, 3, 0x66C2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnltpd, 3, 0x66C2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnltpd, 3, 0x66C2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpord_qpd, 3, 0x66C2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpord_qpd, 3, 0x66C2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpord_spd, 3, 0x66C2, 23, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpord_spd, 3, 0x66C2, 23, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpordpd, 3, 0x66C2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpordpd, 3, 0x66C2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmppd, 4, 0x66C2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmppd, 4, 0x66C2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmptrue_uqpd, 3, 0x66C2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmptrue_uqpd, 3, 0x66C2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmptrue_uspd, 3, 0x66C2, 31, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmptrue_uspd, 3, 0x66C2, 31, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmptruepd, 3, 0x66C2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmptruepd, 3, 0x66C2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpunord_qpd, 3, 0x66C2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpunord_qpd, 3, 0x66C2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpunord_spd, 3, 0x66C2, 19, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpunord_spd, 3, 0x66C2, 19, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpunordpd, 3, 0x66C2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpunordpd, 3, 0x66C2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+
+vcmpeq_oqps, 3, 0xC2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpeq_oqps, 3, 0xC2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpeq_osps, 3, 0xC2, 16, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpeq_osps, 3, 0xC2, 16, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpeq_uqps, 3, 0xC2, 8, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpeq_uqps, 3, 0xC2, 8, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpeq_usps, 3, 0xC2, 24, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpeq_usps, 3, 0xC2, 24, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpeqps, 3, 0xC2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpeqps, 3, 0xC2, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpfalse_oqps, 3, 0xC2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpfalse_oqps, 3, 0xC2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpfalse_osps, 3, 0xC2, 27, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpfalse_osps, 3, 0xC2, 27, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpfalseps, 3, 0xC2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpfalseps, 3, 0xC2, 11, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpge_oqps, 3, 0xC2, 29, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpge_oqps, 3, 0xC2, 29, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpge_osps, 3, 0xC2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpge_osps, 3, 0xC2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpgeps, 3, 0xC2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpgeps, 3, 0xC2, 13, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpgt_oqps, 3, 0xC2, 30, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpgt_oqps, 3, 0xC2, 30, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpgt_osps, 3, 0xC2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpgt_osps, 3, 0xC2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpgtps, 3, 0xC2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpgtps, 3, 0xC2, 14, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmple_oqps, 3, 0xC2, 18, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmple_oqps, 3, 0xC2, 18, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmple_osps, 3, 0xC2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmple_osps, 3, 0xC2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpleps, 3, 0xC2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpleps, 3, 0xC2, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmplt_oqps, 3, 0xC2, 17, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmplt_oqps, 3, 0xC2, 17, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmplt_osps, 3, 0xC2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmplt_osps, 3, 0xC2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpltps, 3, 0xC2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpltps, 3, 0xC2, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpneq_oqps, 3, 0xC2, 12, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpneq_oqps, 3, 0xC2, 12, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpneq_osps, 3, 0xC2, 28, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpneq_osps, 3, 0xC2, 28, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpneq_uqps, 3, 0xC2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpneq_uqps, 3, 0xC2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpneq_usps, 3, 0xC2, 20, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpneq_usps, 3, 0xC2, 20, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpneqps, 3, 0xC2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpneqps, 3, 0xC2, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnge_uqps, 3, 0xC2, 25, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnge_uqps, 3, 0xC2, 25, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnge_usps, 3, 0xC2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnge_usps, 3, 0xC2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpngeps, 3, 0xC2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpngeps, 3, 0xC2, 9, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpngt_uqps, 3, 0xC2, 26, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpngt_uqps, 3, 0xC2, 26, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpngt_usps, 3, 0xC2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpngt_usps, 3, 0xC2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpngtps, 3, 0xC2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpngtps, 3, 0xC2, 10, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnle_uqps, 3, 0xC2, 22, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnle_uqps, 3, 0xC2, 22, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnle_usps, 3, 0xC2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnle_usps, 3, 0xC2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnleps, 3, 0xC2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnleps, 3, 0xC2, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnlt_uqps, 3, 0xC2, 21, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnlt_uqps, 3, 0xC2, 21, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnlt_usps, 3, 0xC2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnlt_usps, 3, 0xC2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpnltps, 3, 0xC2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpnltps, 3, 0xC2, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpord_qps, 3, 0xC2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpord_qps, 3, 0xC2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpord_sps, 3, 0xC2, 23, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpord_sps, 3, 0xC2, 23, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpordps, 3, 0xC2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpordps, 3, 0xC2, 7, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpps, 4, 0xC2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpps, 4, 0xC2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmptrue_uqps, 3, 0xC2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmptrue_uqps, 3, 0xC2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmptrue_usps, 3, 0xC2, 31, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmptrue_usps, 3, 0xC2, 31, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmptrueps, 3, 0xC2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmptrueps, 3, 0xC2, 15, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpunord_qps, 3, 0xC2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpunord_qps, 3, 0xC2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpunord_sps, 3, 0xC2, 19, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpunord_sps, 3, 0xC2, 19, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vcmpunordps, 3, 0xC2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vcmpunordps, 3, 0xC2, 3, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+
+vcompresspd, 2, 0x668A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vcompresspd, 2, 0x668A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vgatherdpd, 2, 0x6692, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vgatherdpd, 2, 0x6692, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
+vgatherqpd, 2, 0x6693, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vgatherqpd, 2, 0x6693, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
+vpcompressq, 2, 0x668B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vpcompressq, 2, 0x668B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vpgatherdq, 2, 0x6690, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vpgatherdq, 2, 0x6690, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
+vpgatherqq, 2, 0x6691, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vpgatherqq, 2, 0x6691, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
+vpscatterdq, 2, 0x66A0, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vpscatterdq, 2, 0x66A0, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vpscatterqq, 2, 0x66A1, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vpscatterqq, 2, 0x66A1, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vscatterdpd, 2, 0x66A2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vscatterdpd, 2, 0x66A2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vscatterqpd, 2, 0x66A3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vscatterqpd, 2, 0x66A3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=3|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+
+vcompressps, 2, 0x668A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vcompressps, 2, 0x668A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vgatherdps, 2, 0x6692, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vgatherdps, 2, 0x6692, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
+vgatherqps, 2, 0x6693, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM }
+vgatherqps, 2, 0x6693, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vmovntdqa, 2, 0x662A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vmovntdqa, 2, 0x662A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
+vpcompressd, 2, 0x668B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vpcompressd, 2, 0x668B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vpgatherdd, 2, 0x6690, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vpgatherdd, 2, 0x6690, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
+vpgatherqd, 2, 0x6691, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex, RegXMM }
+vpgatherqd, 2, 0x6691, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vpscatterdd, 2, 0x66A0, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vpscatterdd, 2, 0x66A0, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vpscatterqd, 2, 0x66A1, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vpscatterqd, 2, 0x66A1, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vscatterdps, 2, 0x66A2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vscatterdps, 2, 0x66A2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vscatterqps, 2, 0x66A3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vscatterqps, 2, 0x66A3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|NoDefMask|VexOpcode=1|VexW=1|Disp8MemShift=2|VecSIB=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+
+vcvtdq2pd, 2, 0xF3E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=4|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
+vcvtdq2pd, 2, 0xF3E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM }
+vcvtudq2pd, 2, 0xF37A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=4|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
+vcvtudq2pd, 2, 0xF37A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM }
+
+vcvtpd2dq, 2, 0xF2E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|BaseIndex, RegXMM }
+vcvtpd2dqx, 2, 0xF2E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvtpd2dq, 2, 0xF2E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|BaseIndex, RegXMM }
+vcvtpd2dqy, 2, 0xF2E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegXMM }
+vcvtpd2ps, 2, 0x665A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|BaseIndex, RegXMM }
+vcvtpd2psx, 2, 0x665A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvtpd2ps, 2, 0x665A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|BaseIndex, RegXMM }
+vcvtpd2psy, 2, 0x665A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegXMM }
+
+vcvtpd2udq, 2, 0x79, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|BaseIndex, RegXMM }
+vcvtpd2udqx, 2, 0x79, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvtpd2udq, 2, 0x79, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|BaseIndex, RegXMM }
+vcvtpd2udqy, 2, 0x79, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegXMM }
+vcvtph2ps, 2, 0x6613, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM }
+vcvtph2ps, 2, 0x6613, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM }
 
-vcvtps2dq, 2, 0x665B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtps2dq, 2, 0x665B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvtps2dq, 2, 0x665B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvtps2dq, 2, 0x665B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
 
-vcvtps2pd, 2, 0x5A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=4|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtps2pd, 2, 0x5A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvtps2pd, 2, 0x5A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=4|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
+vcvtps2pd, 2, 0x5A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM }
 
 vcvtps2ph, 3, 0x661D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM|RegMem }
 vcvtps2ph, 3, 0x661D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegXMM|RegMem }
 
-vcvtps2ph, 3, 0x661D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vcvtps2ph, 3, 0x661D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vcvtps2ph, 3, 0x661D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Qword|Unspecified|BaseIndex }
+vcvtps2ph, 3, 0x661D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, XMMword|Unspecified|BaseIndex }
 
-vcvttpd2dq, 2, 0x66E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvttpd2dqx, 2, 0x66E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvttpd2dq, 2, 0x66E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvttpd2dqy, 2, 0x66E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-
-vcvttpd2udq, 2, 0x78, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvttpd2udqx, 2, 0x78, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvttpd2udq, 2, 0x78, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvttpd2udqy, 2, 0x78, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-
-vcvttps2dq, 2, 0xF35B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvttps2dq, 2, 0xF35B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vcvttps2udq, 2, 0x78, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvttps2udq, 2, 0x78, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vmaxps, 3, 0x5F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vmaxps, 3, 0x5F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vminps, 3, 0x5D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vminps, 3, 0x5D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vcvttpd2dq, 2, 0x66E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|BaseIndex, RegXMM }
+vcvttpd2dqx, 2, 0x66E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvttpd2dq, 2, 0x66E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|BaseIndex, RegXMM }
+vcvttpd2dqy, 2, 0x66E6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegXMM }
+
+vcvttpd2udq, 2, 0x78, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|BaseIndex, RegXMM }
+vcvttpd2udqx, 2, 0x78, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvttpd2udq, 2, 0x78, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|BaseIndex, RegXMM }
+vcvttpd2udqy, 2, 0x78, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegXMM }
+
+vcvttps2dq, 2, 0xF35B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvttps2dq, 2, 0xF35B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vcvttps2udq, 2, 0x78, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvttps2udq, 2, 0x78, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+vmaxps, 3, 0x5F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vmaxps, 3, 0x5F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vminps, 3, 0x5D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vminps, 3, 0x5D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 
-vcvtudq2ps, 2, 0xF27A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtudq2ps, 2, 0xF27A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvtudq2ps, 2, 0xF27A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvtudq2ps, 2, 0xF27A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
 
-vextractf32x4, 3, 0x6619, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vextracti32x4, 3, 0x6639, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vextractf32x4, 3, 0x6619, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, XMMword|Unspecified|BaseIndex }
+vextracti32x4, 3, 0x6639, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, XMMword|Unspecified|BaseIndex }
 
 vextractf32x4, 3, 0x6619, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegXMM|RegMem }
 vextracti32x4, 3, 0x6639, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegXMM|RegMem }
-vinsertf32x4, 4, 0x6618, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vinserti32x4, 4, 0x6638, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vinsertf32x4, 4, 0x6618, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vinserti32x4, 4, 0x6638, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 
-vfixupimmpd, 4, 0x6654, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfixupimmpd, 4, 0x6654, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vgetmantpd, 3, 0x6626, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vgetmantpd, 3, 0x6626, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vrndscalepd, 3, 0x6609, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vrndscalepd, 3, 0x6609, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vfixupimmps, 4, 0x6654, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfixupimmps, 4, 0x6654, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vgetmantps, 3, 0x6626, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vgetmantps, 3, 0x6626, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vrndscaleps, 3, 0x6608, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vrndscaleps, 3, 0x6608, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vfmadd132pd, 3, 0x6698, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmadd132pd, 3, 0x6698, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmadd213pd, 3, 0x66A8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmadd213pd, 3, 0x66A8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmadd231pd, 3, 0x66B8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmadd231pd, 3, 0x66B8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmaddsub132pd, 3, 0x6696, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmaddsub132pd, 3, 0x6696, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmaddsub213pd, 3, 0x66A6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmaddsub213pd, 3, 0x66A6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmaddsub231pd, 3, 0x66B6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmaddsub231pd, 3, 0x66B6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmsub132pd, 3, 0x669A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmsub132pd, 3, 0x669A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmsub213pd, 3, 0x66AA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmsub213pd, 3, 0x66AA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmsub231pd, 3, 0x66BA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmsub231pd, 3, 0x66BA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmsubadd132pd, 3, 0x6697, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmsubadd132pd, 3, 0x6697, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmsubadd213pd, 3, 0x66A7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmsubadd213pd, 3, 0x66A7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmsubadd231pd, 3, 0x66B7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmsubadd231pd, 3, 0x66B7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfnmadd132pd, 3, 0x669C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfnmadd132pd, 3, 0x669C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfnmadd213pd, 3, 0x66AC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfnmadd213pd, 3, 0x66AC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfnmadd231pd, 3, 0x66BC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfnmadd231pd, 3, 0x66BC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfnmsub132pd, 3, 0x669E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfnmsub132pd, 3, 0x669E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfnmsub213pd, 3, 0x66AE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfnmsub213pd, 3, 0x66AE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfnmsub231pd, 3, 0x66BE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfnmsub231pd, 3, 0x66BE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vscalefpd, 3, 0x662C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vscalefpd, 3, 0x662C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vfmadd132ps, 3, 0x6698, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmadd132ps, 3, 0x6698, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmadd213ps, 3, 0x66A8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmadd213ps, 3, 0x66A8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmadd231ps, 3, 0x66B8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmadd231ps, 3, 0x66B8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmaddsub132ps, 3, 0x6696, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmaddsub132ps, 3, 0x6696, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmaddsub213ps, 3, 0x66A6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmaddsub213ps, 3, 0x66A6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmaddsub231ps, 3, 0x66B6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmaddsub231ps, 3, 0x66B6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmsub132ps, 3, 0x669A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmsub132ps, 3, 0x669A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmsub213ps, 3, 0x66AA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmsub213ps, 3, 0x66AA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmsub231ps, 3, 0x66BA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmsub231ps, 3, 0x66BA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmsubadd132ps, 3, 0x6697, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmsubadd132ps, 3, 0x6697, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmsubadd213ps, 3, 0x66A7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmsubadd213ps, 3, 0x66A7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfmsubadd231ps, 3, 0x66B7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfmsubadd231ps, 3, 0x66B7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfnmadd132ps, 3, 0x669C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfnmadd132ps, 3, 0x669C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfnmadd213ps, 3, 0x66AC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfnmadd213ps, 3, 0x66AC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfnmadd231ps, 3, 0x66BC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfnmadd231ps, 3, 0x66BC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfnmsub132ps, 3, 0x669E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfnmsub132ps, 3, 0x669E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfnmsub213ps, 3, 0x66AE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfnmsub213ps, 3, 0x66AE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vfnmsub231ps, 3, 0x66BE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vfnmsub231ps, 3, 0x66BE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vscalefps, 3, 0x662C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vscalefps, 3, 0x662C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vgetexppd, 2, 0x6642, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vgetexppd, 2, 0x6642, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vgetexpps, 2, 0x6642, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vgetexpps, 2, 0x6642, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vmaxpd, 3, 0x665F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vmaxpd, 3, 0x665F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vminpd, 3, 0x665D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vminpd, 3, 0x665D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vmovapd, 2, 0x6629, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovapd, 2, 0x6629, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovdqa64, 2, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovdqa64, 2, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovntpd, 2, 0x662B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovntpd, 2, 0x662B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovupd, 2, 0x6611, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovupd, 2, 0x6611, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vfixupimmpd, 4, 0x6654, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfixupimmpd, 4, 0x6654, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vgetmantpd, 3, 0x6626, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vgetmantpd, 3, 0x6626, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
+vrndscalepd, 3, 0x6609, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vrndscalepd, 3, 0x6609, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vfixupimmps, 4, 0x6654, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfixupimmps, 4, 0x6654, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vgetmantps, 3, 0x6626, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vgetmantps, 3, 0x6626, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+vrndscaleps, 3, 0x6608, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vrndscaleps, 3, 0x6608, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vfmadd132pd, 3, 0x6698, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmadd132pd, 3, 0x6698, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmadd213pd, 3, 0x66A8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmadd213pd, 3, 0x66A8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmadd231pd, 3, 0x66B8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmadd231pd, 3, 0x66B8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmaddsub132pd, 3, 0x6696, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmaddsub132pd, 3, 0x6696, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmaddsub213pd, 3, 0x66A6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmaddsub213pd, 3, 0x66A6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmaddsub231pd, 3, 0x66B6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmaddsub231pd, 3, 0x66B6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmsub132pd, 3, 0x669A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmsub132pd, 3, 0x669A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmsub213pd, 3, 0x66AA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmsub213pd, 3, 0x66AA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmsub231pd, 3, 0x66BA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmsub231pd, 3, 0x66BA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmsubadd132pd, 3, 0x6697, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmsubadd132pd, 3, 0x6697, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmsubadd213pd, 3, 0x66A7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmsubadd213pd, 3, 0x66A7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmsubadd231pd, 3, 0x66B7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmsubadd231pd, 3, 0x66B7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfnmadd132pd, 3, 0x669C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfnmadd132pd, 3, 0x669C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfnmadd213pd, 3, 0x66AC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfnmadd213pd, 3, 0x66AC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfnmadd231pd, 3, 0x66BC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfnmadd231pd, 3, 0x66BC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfnmsub132pd, 3, 0x669E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfnmsub132pd, 3, 0x669E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfnmsub213pd, 3, 0x66AE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfnmsub213pd, 3, 0x66AE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfnmsub231pd, 3, 0x66BE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfnmsub231pd, 3, 0x66BE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vscalefpd, 3, 0x662C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vscalefpd, 3, 0x662C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vfmadd132ps, 3, 0x6698, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmadd132ps, 3, 0x6698, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmadd213ps, 3, 0x66A8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmadd213ps, 3, 0x66A8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmadd231ps, 3, 0x66B8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmadd231ps, 3, 0x66B8, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmaddsub132ps, 3, 0x6696, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmaddsub132ps, 3, 0x6696, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmaddsub213ps, 3, 0x66A6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmaddsub213ps, 3, 0x66A6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmaddsub231ps, 3, 0x66B6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmaddsub231ps, 3, 0x66B6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmsub132ps, 3, 0x669A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmsub132ps, 3, 0x669A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmsub213ps, 3, 0x66AA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmsub213ps, 3, 0x66AA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmsub231ps, 3, 0x66BA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmsub231ps, 3, 0x66BA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmsubadd132ps, 3, 0x6697, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmsubadd132ps, 3, 0x6697, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmsubadd213ps, 3, 0x66A7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmsubadd213ps, 3, 0x66A7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfmsubadd231ps, 3, 0x66B7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfmsubadd231ps, 3, 0x66B7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfnmadd132ps, 3, 0x669C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfnmadd132ps, 3, 0x669C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfnmadd213ps, 3, 0x66AC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfnmadd213ps, 3, 0x66AC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfnmadd231ps, 3, 0x66BC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfnmadd231ps, 3, 0x66BC, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfnmsub132ps, 3, 0x669E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfnmsub132ps, 3, 0x669E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfnmsub213ps, 3, 0x66AE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfnmsub213ps, 3, 0x66AE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vfnmsub231ps, 3, 0x66BE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vfnmsub231ps, 3, 0x66BE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vscalefps, 3, 0x662C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vscalefps, 3, 0x662C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vgetexppd, 2, 0x6642, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vgetexppd, 2, 0x6642, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vgetexpps, 2, 0x6642, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vgetexpps, 2, 0x6642, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vmaxpd, 3, 0x665F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vmaxpd, 3, 0x665F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vminpd, 3, 0x665D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vminpd, 3, 0x665D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vmovapd, 2, 0x6629, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vmovapd, 2, 0x6629, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vmovdqa64, 2, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vmovdqa64, 2, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vmovntpd, 2, 0x662B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vmovntpd, 2, 0x662B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vmovupd, 2, 0x6611, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vmovupd, 2, 0x6611, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
 
-vmovapd, 2, 0x6628, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovapd, 2, 0x6628, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vmovapd, 2, 0x6628, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vmovapd, 2, 0x6628, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
 vmovapd, 2, 0x6628, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
 vmovapd, 2, 0x6628, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM }
 vmovapd, 2, 0x6629, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vmovapd, 2, 0x6629, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
-vmovdqa64, 2, 0x666F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovdqa64, 2, 0x666F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vmovdqa64, 2, 0x666F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vmovdqa64, 2, 0x666F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
 vmovdqa64, 2, 0x666F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
 vmovdqa64, 2, 0x666F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM }
 vmovdqa64, 2, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vmovdqa64, 2, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
-vmovupd, 2, 0x6610, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovupd, 2, 0x6610, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vmovupd, 2, 0x6610, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vmovupd, 2, 0x6610, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
 vmovupd, 2, 0x6610, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
 vmovupd, 2, 0x6610, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM }
 vmovupd, 2, 0x6611, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vmovupd, 2, 0x6611, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
-vpsllq, 3, 0x66F3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsllq, 3, 0x66F3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsraq, 3, 0x66E2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsraq, 3, 0x66E2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsrlq, 3, 0x66D3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsrlq, 3, 0x66D3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vpsllq, 3, 0x66F3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsllq, 3, 0x66F3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsraq, 3, 0x66E2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsraq, 3, 0x66E2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsrlq, 3, 0x66D3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsrlq, 3, 0x66D3, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 
-vmovaps, 2, 0x28, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovaps, 2, 0x28, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vmovaps, 2, 0x28, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vmovaps, 2, 0x28, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
 vmovaps, 2, 0x28, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
 vmovaps, 2, 0x28, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=3|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM }
 vmovaps, 2, 0x29, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vmovaps, 2, 0x29, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
-vmovups, 2, 0x10, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovups, 2, 0x10, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vmovups, 2, 0x10, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vmovups, 2, 0x10, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
 vmovups, 2, 0x10, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
 vmovups, 2, 0x10, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=3|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM }
 vmovups, 2, 0x11, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vmovups, 2, 0x11, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
 
-vmovaps, 2, 0x29, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovaps, 2, 0x29, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovntps, 2, 0x2B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovntps, 2, 0x2B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovups, 2, 0x11, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovups, 2, 0x11, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovaps, 2, 0x29, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vmovaps, 2, 0x29, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vmovntps, 2, 0x2B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vmovntps, 2, 0x2B, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vmovups, 2, 0x11, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vmovups, 2, 0x11, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
 
-vmovddup, 2, 0xF212, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovddup, 2, 0xF212, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vmovddup, 2, 0xF212, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM }
+vmovddup, 2, 0xF212, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
 
-vmovdqa32, 2, 0x666F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovdqa32, 2, 0x666F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vmovdqa32, 2, 0x666F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vmovdqa32, 2, 0x666F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
 vmovdqa32, 2, 0x666F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
 vmovdqa32, 2, 0x666F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=3|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM }
 vmovdqa32, 2, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vmovdqa32, 2, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
-vpslld, 3, 0x66F2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpslld, 3, 0x66F2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsrad, 3, 0x66E2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsrad, 3, 0x66E2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsrld, 3, 0x66D2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsrld, 3, 0x66D2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vmovdqa32, 2, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovdqa32, 2, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovntdq, 2, 0x66E7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovntdq, 2, 0x66E7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpslld, 3, 0x66F2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpslld, 3, 0x66F2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsrad, 3, 0x66E2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsrad, 3, 0x66E2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsrld, 3, 0x66D2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsrld, 3, 0x66D2, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vmovdqa32, 2, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vmovdqa32, 2, 0x667F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vmovntdq, 2, 0x66E7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vmovntdq, 2, 0x66E7, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
 
-vmovdqu32, 2, 0xF37F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovdqu32, 2, 0xF37F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovdqu32, 2, 0xF37F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vmovdqu32, 2, 0xF37F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
 
-vmovdqu32, 2, 0xF36F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovdqu32, 2, 0xF36F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vmovdqu32, 2, 0xF36F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vmovdqu32, 2, 0xF36F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
 vmovdqu32, 2, 0xF36F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
 vmovdqu32, 2, 0xF36F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=3|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM }
 vmovdqu32, 2, 0xF37F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vmovdqu32, 2, 0xF37F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
-vmovshdup, 2, 0xF316, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovshdup, 2, 0xF316, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vmovsldup, 2, 0xF312, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovsldup, 2, 0xF312, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vmovshdup, 2, 0xF316, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vmovshdup, 2, 0xF316, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
+vmovsldup, 2, 0xF312, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vmovsldup, 2, 0xF312, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
 
-vmovdqu64, 2, 0xF36F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovdqu64, 2, 0xF36F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vmovdqu64, 2, 0xF36F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vmovdqu64, 2, 0xF36F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
 vmovdqu64, 2, 0xF36F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
 vmovdqu64, 2, 0xF36F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|Load|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM }
 vmovdqu64, 2, 0xF37F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vmovdqu64, 2, 0xF37F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
 
-vmovdqu64, 2, 0xF37F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovdqu64, 2, 0xF37F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovdqu64, 2, 0xF37F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vmovdqu64, 2, 0xF37F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=2|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
 
-vpaddd, 3, 0x66FE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpaddd, 3, 0x66FE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpandd, 3, 0x66DB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpandd, 3, 0x66DB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpandnd, 3, 0x66DF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpandnd, 3, 0x66DF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpord, 3, 0x66EB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpord, 3, 0x66EB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vpaddd, 3, 0x66FE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpaddd, 3, 0x66FE, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpandd, 3, 0x66DB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpandd, 3, 0x66DB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpandnd, 3, 0x66DF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpandnd, 3, 0x66DF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpord, 3, 0x66EB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpord, 3, 0x66EB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 vprold, 3, 0x6672, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vprold, 3, 0x6672, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vprold, 3, 0x6672, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|XMMword|Unspecified|BaseIndex, RegXMM }
 vprold, 3, 0x6672, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vprold, 3, 0x6672, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vprold, 3, 0x6672, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|YMMword|Unspecified|BaseIndex, RegYMM }
 vprord, 3, 0x6672, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vprord, 3, 0x6672, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vprord, 3, 0x6672, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|XMMword|Unspecified|BaseIndex, RegXMM }
 vprord, 3, 0x6672, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vprord, 3, 0x6672, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpshufd, 3, 0x6670, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpshufd, 3, 0x6670, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vprord, 3, 0x6672, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+vpshufd, 3, 0x6670, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vpshufd, 3, 0x6670, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
 vpslld, 3, 0x6672, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpslld, 3, 0x6672, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vpslld, 3, 0x6672, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|XMMword|Unspecified|BaseIndex, RegXMM }
 vpslld, 3, 0x6672, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpslld, 3, 0x6672, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vpslld, 3, 0x6672, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|YMMword|Unspecified|BaseIndex, RegYMM }
 vpsrad, 3, 0x6672, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsrad, 3, 0x6672, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vpsrad, 3, 0x6672, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|XMMword|Unspecified|BaseIndex, RegXMM }
 vpsrad, 3, 0x6672, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsrad, 3, 0x6672, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vpsrad, 3, 0x6672, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|YMMword|Unspecified|BaseIndex, RegYMM }
 vpsrld, 3, 0x6672, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsrld, 3, 0x6672, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vpsrld, 3, 0x6672, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|XMMword|Unspecified|BaseIndex, RegXMM }
 vpsrld, 3, 0x6672, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsrld, 3, 0x6672, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpsubd, 3, 0x66FA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsubd, 3, 0x66FA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpunpckhdq, 3, 0x666A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpunpckhdq, 3, 0x666A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpunpckldq, 3, 0x6662, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpunpckldq, 3, 0x6662, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpxord, 3, 0x66EF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpxord, 3, 0x66EF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vpaddq, 3, 0x66D4, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpaddq, 3, 0x66D4, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpandnq, 3, 0x66DF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpandnq, 3, 0x66DF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpandq, 3, 0x66DB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpandq, 3, 0x66DB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmuludq, 3, 0x66F4, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmuludq, 3, 0x66F4, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vporq, 3, 0x66EB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vporq, 3, 0x66EB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vpsrld, 3, 0x6672, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+vpsubd, 3, 0x66FA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsubd, 3, 0x66FA, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpunpckhdq, 3, 0x666A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpunpckhdq, 3, 0x666A, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpunpckldq, 3, 0x6662, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpunpckldq, 3, 0x6662, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpxord, 3, 0x66EF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpxord, 3, 0x66EF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpaddq, 3, 0x66D4, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpaddq, 3, 0x66D4, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpandnq, 3, 0x66DF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpandnq, 3, 0x66DF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpandq, 3, 0x66DB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpandq, 3, 0x66DB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmuludq, 3, 0x66F4, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmuludq, 3, 0x66F4, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vporq, 3, 0x66EB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vporq, 3, 0x66EB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 vprolq, 3, 0x6672, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vprolq, 3, 0x6672, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vprolq, 3, 0x6672, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|XMMword|Unspecified|BaseIndex, RegXMM }
 vprolq, 3, 0x6672, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vprolq, 3, 0x6672, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vprolq, 3, 0x6672, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|YMMword|Unspecified|BaseIndex, RegYMM }
 vprorq, 3, 0x6672, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vprorq, 3, 0x6672, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vprorq, 3, 0x6672, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|XMMword|Unspecified|BaseIndex, RegXMM }
 vprorq, 3, 0x6672, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vprorq, 3, 0x6672, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vprorq, 3, 0x6672, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|YMMword|Unspecified|BaseIndex, RegYMM }
 vpsllq, 3, 0x6673, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsllq, 3, 0x6673, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vpsllq, 3, 0x6673, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|XMMword|Unspecified|BaseIndex, RegXMM }
 vpsllq, 3, 0x6673, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsllq, 3, 0x6673, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vpsllq, 3, 0x6673, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|YMMword|Unspecified|BaseIndex, RegYMM }
 vpsraq, 3, 0x6672, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsraq, 3, 0x6672, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vpsraq, 3, 0x6672, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|XMMword|Unspecified|BaseIndex, RegXMM }
 vpsraq, 3, 0x6672, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsraq, 3, 0x6672, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vpsraq, 3, 0x6672, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|YMMword|Unspecified|BaseIndex, RegYMM }
 vpsrlq, 3, 0x6673, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsrlq, 3, 0x6673, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vpsrlq, 3, 0x6673, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|XMMword|Unspecified|BaseIndex, RegXMM }
 vpsrlq, 3, 0x6673, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsrlq, 3, 0x6673, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpsubq, 3, 0x66FB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsubq, 3, 0x66FB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpunpckhqdq, 3, 0x666D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpunpckhqdq, 3, 0x666D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpunpcklqdq, 3, 0x666C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpunpcklqdq, 3, 0x666C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpxorq, 3, 0x66EF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpxorq, 3, 0x66EF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vshufpd, 4, 0x66C6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vshufpd, 4, 0x66C6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vunpckhpd, 3, 0x6615, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vunpckhpd, 3, 0x6615, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vunpcklpd, 3, 0x6614, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vunpcklpd, 3, 0x6614, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vpsrlq, 3, 0x6673, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|YMMword|Unspecified|BaseIndex, RegYMM }
+vpsubq, 3, 0x66FB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsubq, 3, 0x66FB, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpunpckhqdq, 3, 0x666D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpunpckhqdq, 3, 0x666D, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpunpcklqdq, 3, 0x666C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpunpcklqdq, 3, 0x666C, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpxorq, 3, 0x66EF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpxorq, 3, 0x66EF, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vshufpd, 4, 0x66C6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vshufpd, 4, 0x66C6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vunpckhpd, 3, 0x6615, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vunpckhpd, 3, 0x6615, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vunpcklpd, 3, 0x6614, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vunpcklpd, 3, 0x6614, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 
-vpcmpeqd, 3, 0x6676, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vpcmpeqd, 3, 0x6676, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
 vpcmpeqd, 3, 0x6676, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, RegMask }
-vpcmpeqd, 3, 0x6676, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
+vpcmpeqd, 3, 0x6676, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
 vpcmpeqd, 3, 0x6676, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM, RegMask }
-vpcmpd, 4, 0x661F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpd, 4, 0x661F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpeqd, 3, 0x661F, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
+vpcmpd, 4, 0x661F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpd, 4, 0x661F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpeqd, 3, 0x661F, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
 vpcmpeqd, 3, 0x661F, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM, RegXMM, RegMask }
-vpcmpeqd, 3, 0x661F, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
+vpcmpeqd, 3, 0x661F, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
 vpcmpeqd, 3, 0x661F, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM, RegYMM, RegMask }
-vpcmpequd, 3, 0x661E, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpequd, 3, 0x661E, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpled, 3, 0x661F, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpled, 3, 0x661F, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpleud, 3, 0x661E, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpleud, 3, 0x661E, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpltd, 3, 0x661F, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpltd, 3, 0x661F, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpltud, 3, 0x661E, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpltud, 3, 0x661E, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpneqd, 3, 0x661F, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpneqd, 3, 0x661F, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpnequd, 3, 0x661E, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpnequd, 3, 0x661E, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpnled, 3, 0x661F, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpnled, 3, 0x661F, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpnleud, 3, 0x661E, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpnleud, 3, 0x661E, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpnltd, 3, 0x661F, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpnltd, 3, 0x661F, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpnltud, 3, 0x661E, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpnltud, 3, 0x661E, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpud, 4, 0x661E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpud, 4, 0x661E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
+vpcmpequd, 3, 0x661E, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpequd, 3, 0x661E, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpled, 3, 0x661F, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpled, 3, 0x661F, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpleud, 3, 0x661E, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpleud, 3, 0x661E, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpltd, 3, 0x661F, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpltd, 3, 0x661F, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpltud, 3, 0x661E, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpltud, 3, 0x661E, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpneqd, 3, 0x661F, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpneqd, 3, 0x661F, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnequd, 3, 0x661E, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnequd, 3, 0x661E, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnled, 3, 0x661F, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnled, 3, 0x661F, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnleud, 3, 0x661E, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnleud, 3, 0x661E, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnltd, 3, 0x661F, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnltd, 3, 0x661F, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnltud, 3, 0x661E, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnltud, 3, 0x661E, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpud, 4, 0x661E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpud, 4, 0x661E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
 
-vpcmpgtd, 3, 0x6666, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpgtd, 3, 0x6666, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
+vpcmpgtd, 3, 0x6666, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpgtd, 3, 0x6666, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
 
 vpcmpeqq, 3, 0x6629, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM, RegMask }
-vpcmpeqq, 3, 0x6629, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpeqq, 3, 0x6629, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
+vpcmpeqq, 3, 0x6629, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpeqq, 3, 0x6629, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
 vpcmpeqq, 3, 0x6629, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM, RegMask }
-vpcmpeqq, 3, 0x661F, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpeqq, 3, 0x661F, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
+vpcmpeqq, 3, 0x661F, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpeqq, 3, 0x661F, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
 vpcmpeqq, 3, 0x661F, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM, RegYMM, RegMask }
 vpcmpeqq, 3, 0x661F, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM, RegXMM, RegMask }
-vpcmpequq, 3, 0x661E, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpequq, 3, 0x661E, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpleq, 3, 0x661F, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpleq, 3, 0x661F, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpleuq, 3, 0x661E, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpleuq, 3, 0x661E, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpltq, 3, 0x661F, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpltq, 3, 0x661F, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpltuq, 3, 0x661E, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpltuq, 3, 0x661E, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpneqq, 3, 0x661F, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpneqq, 3, 0x661F, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpnequq, 3, 0x661E, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpnequq, 3, 0x661E, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpnleq, 3, 0x661F, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpnleq, 3, 0x661F, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpnleuq, 3, 0x661E, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpnleuq, 3, 0x661E, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpnltq, 3, 0x661F, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpnltq, 3, 0x661F, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpnltuq, 3, 0x661E, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpnltuq, 3, 0x661E, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpq, 4, 0x661F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpq, 4, 0x661F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpuq, 4, 0x661E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpuq, 4, 0x661E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-
-vpcmpgtq, 3, 0x6637, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpgtq, 3, 0x6637, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vptestmq, 3, 0x6627, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vptestmq, 3, 0x6627, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
+vpcmpequq, 3, 0x661E, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpequq, 3, 0x661E, 0, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpleq, 3, 0x661F, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpleq, 3, 0x661F, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpleuq, 3, 0x661E, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpleuq, 3, 0x661E, 2, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpltq, 3, 0x661F, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpltq, 3, 0x661F, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpltuq, 3, 0x661E, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpltuq, 3, 0x661E, 1, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpneqq, 3, 0x661F, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpneqq, 3, 0x661F, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnequq, 3, 0x661E, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnequq, 3, 0x661E, 4, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnleq, 3, 0x661F, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnleq, 3, 0x661F, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnleuq, 3, 0x661E, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnleuq, 3, 0x661E, 6, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnltq, 3, 0x661F, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnltq, 3, 0x661F, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnltuq, 3, 0x661E, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnltuq, 3, 0x661E, 5, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpq, 4, 0x661F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpq, 4, 0x661F, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpuq, 4, 0x661E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpuq, 4, 0x661E, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+
+vpcmpgtq, 3, 0x6637, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpgtq, 3, 0x6637, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vptestmq, 3, 0x6627, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vptestmq, 3, 0x6627, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
 
 vpmovdb, 2, 0xF331, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vpmovdb, 2, 0xF331, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegXMM|RegMem }
@@ -5174,12 +5062,12 @@ vpmovsdb, 2, 0xF321, None, 1, CpuAVX512F
 vpmovusdb, 2, 0xF311, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vpmovusdb, 2, 0xF311, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegXMM|RegMem }
 
-vpmovdb, 2, 0xF331, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovdb, 2, 0xF331, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovsdb, 2, 0xF321, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovsdb, 2, 0xF321, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovusdb, 2, 0xF311, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovusdb, 2, 0xF311, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovdb, 2, 0xF331, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex }
+vpmovdb, 2, 0xF331, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Qword|Unspecified|BaseIndex }
+vpmovsdb, 2, 0xF321, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex }
+vpmovsdb, 2, 0xF321, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Qword|Unspecified|BaseIndex }
+vpmovusdb, 2, 0xF311, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex }
+vpmovusdb, 2, 0xF311, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Qword|Unspecified|BaseIndex }
 
 vpmovdw, 2, 0xF333, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vpmovdw, 2, 0xF333, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegXMM|RegMem }
@@ -5188,19 +5076,19 @@ vpmovsdw, 2, 0xF323, None, 1, CpuAVX512F
 vpmovusdw, 2, 0xF313, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vpmovusdw, 2, 0xF313, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegXMM|RegMem }
 
-vpmovdw, 2, 0xF333, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovdw, 2, 0xF333, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovsdw, 2, 0xF323, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovsdw, 2, 0xF323, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovusdw, 2, 0xF313, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovusdw, 2, 0xF313, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-
-vpmovqb, 2, 0xF332, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovqb, 2, 0xF332, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovsqb, 2, 0xF322, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovsqb, 2, 0xF322, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovusqb, 2, 0xF312, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovusqb, 2, 0xF312, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovdw, 2, 0xF333, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vpmovdw, 2, 0xF333, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex }
+vpmovsdw, 2, 0xF323, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vpmovsdw, 2, 0xF323, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex }
+vpmovusdw, 2, 0xF313, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vpmovusdw, 2, 0xF313, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex }
+
+vpmovqb, 2, 0xF332, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Word|Unspecified|BaseIndex }
+vpmovqb, 2, 0xF332, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Dword|Unspecified|BaseIndex }
+vpmovsqb, 2, 0xF322, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Word|Unspecified|BaseIndex }
+vpmovsqb, 2, 0xF322, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Dword|Unspecified|BaseIndex }
+vpmovusqb, 2, 0xF312, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Word|Unspecified|BaseIndex }
+vpmovusqb, 2, 0xF312, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Dword|Unspecified|BaseIndex }
 
 vpmovqb, 2, 0xF332, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vpmovqb, 2, 0xF332, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegXMM|RegMem }
@@ -5216,12 +5104,12 @@ vpmovsqd, 2, 0xF325, None, 1, CpuAVX512F
 vpmovusqd, 2, 0xF315, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vpmovusqd, 2, 0xF315, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegXMM|RegMem }
 
-vpmovqd, 2, 0xF335, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovqd, 2, 0xF335, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovsqd, 2, 0xF325, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovsqd, 2, 0xF325, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovusqd, 2, 0xF315, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovusqd, 2, 0xF315, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vpmovqd, 2, 0xF335, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vpmovqd, 2, 0xF335, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex }
+vpmovsqd, 2, 0xF325, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vpmovsqd, 2, 0xF325, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex }
+vpmovusqd, 2, 0xF315, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vpmovusqd, 2, 0xF315, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex }
 
 vpmovqw, 2, 0xF334, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vpmovqw, 2, 0xF334, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegXMM|RegMem }
@@ -5230,53 +5118,53 @@ vpmovsqw, 2, 0xF324, None, 1, CpuAVX512F
 vpmovusqw, 2, 0xF314, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vpmovusqw, 2, 0xF314, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegXMM|RegMem }
 
-vpmovqw, 2, 0xF334, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovqw, 2, 0xF334, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovsqw, 2, 0xF324, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovsqw, 2, 0xF324, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovusqw, 2, 0xF314, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovusqw, 2, 0xF314, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-
-vpmovsxbd, 2, 0x6621, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpmovsxbd, 2, 0x6621, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpmovzxbd, 2, 0x6631, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpmovzxbd, 2, 0x6631, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vpmovsxbq, 2, 0x6622, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpmovsxbq, 2, 0x6622, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpmovzxbq, 2, 0x6632, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpmovzxbq, 2, 0x6632, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vpmovsxdq, 2, 0x6625, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpmovsxdq, 2, 0x6625, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpmovzxdq, 2, 0x6635, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpmovzxdq, 2, 0x6635, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vpmovsxwd, 2, 0x6623, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpmovsxwd, 2, 0x6623, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpmovzxwd, 2, 0x6633, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpmovzxwd, 2, 0x6633, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vpmovsxwq, 2, 0x6624, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpmovsxwq, 2, 0x6624, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpmovzxwq, 2, 0x6634, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpmovzxwq, 2, 0x6634, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vptestmd, 3, 0x6627, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vptestmd, 3, 0x6627, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-
-vptestnmd, 3, 0xF327, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vptestnmd, 3, 0xF327, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-
-vptestnmq, 3, 0xF327, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vptestnmq, 3, 0xF327, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-
-vshufps, 4, 0xC6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vshufps, 4, 0xC6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vunpckhps, 3, 0x15, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vunpckhps, 3, 0x15, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vunpcklps, 3, 0x14, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vunpcklps, 3, 0x14, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vpmovqw, 2, 0xF334, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex }
+vpmovqw, 2, 0xF334, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Qword|Unspecified|BaseIndex }
+vpmovsqw, 2, 0xF324, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex }
+vpmovsqw, 2, 0xF324, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Qword|Unspecified|BaseIndex }
+vpmovusqw, 2, 0xF314, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Dword|Unspecified|BaseIndex }
+vpmovusqw, 2, 0xF314, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, Qword|Unspecified|BaseIndex }
+
+vpmovsxbd, 2, 0x6621, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM }
+vpmovsxbd, 2, 0x6621, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegYMM }
+vpmovzxbd, 2, 0x6631, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM }
+vpmovzxbd, 2, 0x6631, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegYMM }
+
+vpmovsxbq, 2, 0x6622, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Word|Unspecified|BaseIndex, RegXMM }
+vpmovsxbq, 2, 0x6622, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
+vpmovzxbq, 2, 0x6632, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Word|Unspecified|BaseIndex, RegXMM }
+vpmovzxbq, 2, 0x6632, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
+
+vpmovsxdq, 2, 0x6625, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM }
+vpmovsxdq, 2, 0x6625, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM }
+vpmovzxdq, 2, 0x6635, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM }
+vpmovzxdq, 2, 0x6635, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM }
+
+vpmovsxwd, 2, 0x6623, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM }
+vpmovsxwd, 2, 0x6623, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM }
+vpmovzxwd, 2, 0x6633, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM }
+vpmovzxwd, 2, 0x6633, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM }
+
+vpmovsxwq, 2, 0x6624, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM }
+vpmovsxwq, 2, 0x6624, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegYMM }
+vpmovzxwq, 2, 0x6634, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegXMM }
+vpmovzxwq, 2, 0x6634, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegYMM }
+
+vptestmd, 3, 0x6627, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vptestmd, 3, 0x6627, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+
+vptestnmd, 3, 0xF327, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vptestnmd, 3, 0xF327, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+
+vptestnmq, 3, 0xF327, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vptestnmq, 3, 0xF327, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+
+vshufps, 4, 0xC6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vshufps, 4, 0xC6, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vunpckhps, 3, 0x15, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vunpckhps, 3, 0x15, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vunpcklps, 3, 0x14, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vunpcklps, 3, 0x14, None, 1, CpuAVX512F|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 
 // AVX512VL instructions end.
 
@@ -5288,15 +5176,15 @@ vpbroadcastmb2q, 2, 0xF32A, None, 1, Cpu
 vpbroadcastmw2d, 2, 0xF33A, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegXMM }
 vpbroadcastmw2d, 2, 0xF33A, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegYMM }
 
-vpconflictd, 2, 0x66C4, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpconflictd, 2, 0x66C4, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vplzcntd, 2, 0x6644, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vplzcntd, 2, 0x6644, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vpconflictq, 2, 0x66C4, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpconflictq, 2, 0x66C4, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vplzcntq, 2, 0x6644, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vplzcntq, 2, 0x6644, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vpconflictd, 2, 0x66C4, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vpconflictd, 2, 0x66C4, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+vplzcntd, 2, 0x6644, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vplzcntd, 2, 0x6644, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vpconflictq, 2, 0x66C4, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vpconflictq, 2, 0x66C4, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
+vplzcntq, 2, 0x6644, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vplzcntq, 2, 0x6644, None, 1, CpuAVX512CD|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
 
 // AVX512VL and AVX512CD instructions end.
 
@@ -5305,8 +5193,8 @@ vplzcntq, 2, 0x6644, None, 1, CpuAVX512C
 kaddd, 3, 0x664A, None, 1, CpuAVX512BW, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
 kandd, 3, 0x6641, None, 1, CpuAVX512BW, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
 kandnd, 3, 0x6642, None, 1, CpuAVX512BW, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
-kmovd, 2, 0x6690, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegMask }
-kmovd, 2, 0x6691, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+kmovd, 2, 0x6690, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask|Dword|Unspecified|BaseIndex, RegMask }
+kmovd, 2, 0x6691, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, Dword|Unspecified|BaseIndex }
 knotd, 2, 0x6644, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask }
 kord, 3, 0x6645, None, 1, CpuAVX512BW, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
 kortestd, 2, 0x6698, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask }
@@ -5317,8 +5205,8 @@ kxord, 3, 0x6647, None, 1, CpuAVX512BW, 
 kaddq, 3, 0x4A, None, 1, CpuAVX512BW, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
 kandnq, 3, 0x42, None, 1, CpuAVX512BW, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
 kandq, 3, 0x41, None, 1, CpuAVX512BW, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
-kmovq, 2, 0x90, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegMask }
-kmovq, 2, 0x91, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+kmovq, 2, 0x90, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask|Qword|Unspecified|BaseIndex, RegMask }
+kmovq, 2, 0x91, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, Qword|Unspecified|BaseIndex }
 knotq, 2, 0x44, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask }
 korq, 3, 0x45, None, 1, CpuAVX512BW, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
 kortestq, 2, 0x98, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask }
@@ -5338,279 +5226,355 @@ kshiftlq, 3, 0x6633, None, 1, CpuAVX512B
 kshiftrd, 3, 0x6631, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegMask, RegMask }
 kshiftrq, 3, 0x6631, None, 1, CpuAVX512BW, Modrm|Vex=1|VexOpcode=2|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegMask, RegMask }
 
-vdbpsadbw, 4, 0x6642, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vdbpsadbw, 4, 0x6642, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vdbpsadbw, 4, 0x6642, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vdbpsadbw, 4, 0x6642, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vdbpsadbw, 4, 0x6642, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vdbpsadbw, 4, 0x6642, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 
-vmovdqu16, 2, 0xF26F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vmovdqu16, 2, 0xF26F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 vmovdqu16, 2, 0xF26F, None, 1, CpuAVX512BW, Modrm|Load|EVex=1|Masking=3|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM }
-vmovdqu16, 2, 0xF26F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovdqu16, 2, 0xF26F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vmovdqu16, 2, 0xF26F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vmovdqu16, 2, 0xF26F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
 vmovdqu16, 2, 0xF26F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|Load|EVex=2|Masking=3|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
 vmovdqu16, 2, 0xF26F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|Load|EVex=3|Masking=3|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM }
 vmovdqu16, 2, 0xF27F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
 vmovdqu16, 2, 0xF27F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vmovdqu16, 2, 0xF27F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
 
-vmovdqu16, 2, 0xF27F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovdqu16, 2, 0xF27F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovdqu16, 2, 0xF27F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-
-vmovdqu8, 2, 0xF27F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovdqu8, 2, 0xF27F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vmovdqu8, 2, 0xF27F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
+vmovdqu16, 2, 0xF27F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
+vmovdqu16, 2, 0xF27F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vmovdqu16, 2, 0xF27F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+
+vmovdqu8, 2, 0xF27F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
+vmovdqu8, 2, 0xF27F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vmovdqu8, 2, 0xF27F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
 
-vmovdqu8, 2, 0xF26F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vmovdqu8, 2, 0xF26F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { ZMMword|Unspecified|BaseIndex, RegZMM }
 vmovdqu8, 2, 0xF26F, None, 1, CpuAVX512BW, Modrm|Load|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM }
-vmovdqu8, 2, 0xF26F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vmovdqu8, 2, 0xF26F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vmovdqu8, 2, 0xF26F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegXMM }
+vmovdqu8, 2, 0xF26F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegYMM }
 vmovdqu8, 2, 0xF26F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|Load|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
 vmovdqu8, 2, 0xF26F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|Load|EVex=3|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM }
 vmovdqu8, 2, 0xF27F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
 vmovdqu8, 2, 0xF27F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vmovdqu8, 2, 0xF27F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
 
-vpabsb, 2, 0x661C, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpabsb, 2, 0x661C, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpabsb, 2, 0x661C, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpmaxsb, 3, 0x663C, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmaxsb, 3, 0x663C, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmaxsb, 3, 0x663C, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpminsb, 3, 0x6638, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpminsb, 3, 0x6638, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpminsb, 3, 0x6638, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpshufb, 3, 0x6600, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpshufb, 3, 0x6600, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpshufb, 3, 0x6600, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vpabsw, 2, 0x661D, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpabsw, 2, 0x661D, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpabsw, 2, 0x661D, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpmaddubsw, 3, 0x6604, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmaddubsw, 3, 0x6604, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmaddubsw, 3, 0x6604, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmaxuw, 3, 0x663E, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmaxuw, 3, 0x663E, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmaxuw, 3, 0x663E, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpminuw, 3, 0x663A, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpminuw, 3, 0x663A, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpminuw, 3, 0x663A, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmulhrsw, 3, 0x660B, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmulhrsw, 3, 0x660B, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmulhrsw, 3, 0x660B, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vpackssdw, 3, 0x666B, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpackssdw, 3, 0x666B, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpackssdw, 3, 0x666B, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vpacksswb, 3, 0x6663, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpacksswb, 3, 0x6663, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpacksswb, 3, 0x6663, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpackuswb, 3, 0x6667, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpackuswb, 3, 0x6667, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpackuswb, 3, 0x6667, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vpackusdw, 3, 0x662B, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpackusdw, 3, 0x662B, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpackusdw, 3, 0x662B, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vpaddb, 3, 0x66FC, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpaddb, 3, 0x66FC, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpaddb, 3, 0x66FC, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpaddsb, 3, 0x66EC, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpaddsb, 3, 0x66EC, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpaddsb, 3, 0x66EC, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpaddusb, 3, 0x66DC, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpaddusb, 3, 0x66DC, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpaddusb, 3, 0x66DC, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpavgb, 3, 0x66E0, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpavgb, 3, 0x66E0, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpavgb, 3, 0x66E0, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmaxub, 3, 0x66DE, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmaxub, 3, 0x66DE, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmaxub, 3, 0x66DE, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpminub, 3, 0x66DA, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpminub, 3, 0x66DA, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpminub, 3, 0x66DA, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsubb, 3, 0x66F8, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsubb, 3, 0x66F8, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsubb, 3, 0x66F8, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsubsb, 3, 0x66E8, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsubsb, 3, 0x66E8, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsubsb, 3, 0x66E8, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsubusb, 3, 0x66D8, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsubusb, 3, 0x66D8, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsubusb, 3, 0x66D8, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpunpckhbw, 3, 0x6668, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpunpckhbw, 3, 0x6668, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpunpckhbw, 3, 0x6668, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpunpcklbw, 3, 0x6660, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpunpcklbw, 3, 0x6660, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpunpcklbw, 3, 0x6660, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vpaddsw, 3, 0x66ED, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpaddsw, 3, 0x66ED, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpaddsw, 3, 0x66ED, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpaddusw, 3, 0x66DD, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpaddusw, 3, 0x66DD, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpaddusw, 3, 0x66DD, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpaddw, 3, 0x66FD, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpaddw, 3, 0x66FD, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpaddw, 3, 0x66FD, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpavgw, 3, 0x66E3, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpavgw, 3, 0x66E3, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpavgw, 3, 0x66E3, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmaxsw, 3, 0x66EE, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmaxsw, 3, 0x66EE, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmaxsw, 3, 0x66EE, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpminsw, 3, 0x66EA, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpminsw, 3, 0x66EA, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpminsw, 3, 0x66EA, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmulhuw, 3, 0x66E4, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmulhuw, 3, 0x66E4, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmulhuw, 3, 0x66E4, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmulhw, 3, 0x66E5, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmulhw, 3, 0x66E5, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmulhw, 3, 0x66E5, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmullw, 3, 0x66D5, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmullw, 3, 0x66D5, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmullw, 3, 0x66D5, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vpabsb, 2, 0x661C, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM }
+vpabsb, 2, 0x661C, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vpabsb, 2, 0x661C, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
+vpmaxsb, 3, 0x663C, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmaxsb, 3, 0x663C, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmaxsb, 3, 0x663C, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpminsb, 3, 0x6638, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpminsb, 3, 0x6638, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpminsb, 3, 0x6638, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpshufb, 3, 0x6600, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpshufb, 3, 0x6600, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpshufb, 3, 0x6600, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpabsw, 2, 0x661D, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM }
+vpabsw, 2, 0x661D, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vpabsw, 2, 0x661D, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
+vpmaddubsw, 3, 0x6604, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmaddubsw, 3, 0x6604, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmaddubsw, 3, 0x6604, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmaxuw, 3, 0x663E, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmaxuw, 3, 0x663E, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmaxuw, 3, 0x663E, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpminuw, 3, 0x663A, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpminuw, 3, 0x663A, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpminuw, 3, 0x663A, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmulhrsw, 3, 0x660B, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmulhrsw, 3, 0x660B, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmulhrsw, 3, 0x660B, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpackssdw, 3, 0x666B, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpackssdw, 3, 0x666B, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpackssdw, 3, 0x666B, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpacksswb, 3, 0x6663, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpacksswb, 3, 0x6663, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpacksswb, 3, 0x6663, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpackuswb, 3, 0x6667, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpackuswb, 3, 0x6667, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpackuswb, 3, 0x6667, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpackusdw, 3, 0x662B, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpackusdw, 3, 0x662B, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpackusdw, 3, 0x662B, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpaddb, 3, 0x66FC, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpaddb, 3, 0x66FC, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpaddb, 3, 0x66FC, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpaddsb, 3, 0x66EC, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpaddsb, 3, 0x66EC, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpaddsb, 3, 0x66EC, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpaddusb, 3, 0x66DC, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpaddusb, 3, 0x66DC, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpaddusb, 3, 0x66DC, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpavgb, 3, 0x66E0, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpavgb, 3, 0x66E0, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpavgb, 3, 0x66E0, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmaxub, 3, 0x66DE, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmaxub, 3, 0x66DE, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmaxub, 3, 0x66DE, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpminub, 3, 0x66DA, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpminub, 3, 0x66DA, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpminub, 3, 0x66DA, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsubb, 3, 0x66F8, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsubb, 3, 0x66F8, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsubb, 3, 0x66F8, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsubsb, 3, 0x66E8, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsubsb, 3, 0x66E8, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsubsb, 3, 0x66E8, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsubusb, 3, 0x66D8, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsubusb, 3, 0x66D8, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsubusb, 3, 0x66D8, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpunpckhbw, 3, 0x6668, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpunpckhbw, 3, 0x6668, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpunpckhbw, 3, 0x6668, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpunpcklbw, 3, 0x6660, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpunpcklbw, 3, 0x6660, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpunpcklbw, 3, 0x6660, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpaddsw, 3, 0x66ED, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpaddsw, 3, 0x66ED, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpaddsw, 3, 0x66ED, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpaddusw, 3, 0x66DD, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpaddusw, 3, 0x66DD, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpaddusw, 3, 0x66DD, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpaddw, 3, 0x66FD, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpaddw, 3, 0x66FD, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpaddw, 3, 0x66FD, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpavgw, 3, 0x66E3, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpavgw, 3, 0x66E3, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpavgw, 3, 0x66E3, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmaxsw, 3, 0x66EE, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmaxsw, 3, 0x66EE, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmaxsw, 3, 0x66EE, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpminsw, 3, 0x66EA, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpminsw, 3, 0x66EA, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpminsw, 3, 0x66EA, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmulhuw, 3, 0x66E4, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmulhuw, 3, 0x66E4, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmulhuw, 3, 0x66E4, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmulhw, 3, 0x66E5, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmulhw, 3, 0x66E5, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmulhw, 3, 0x66E5, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmullw, 3, 0x66D5, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmullw, 3, 0x66D5, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmullw, 3, 0x66D5, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 vpsllw, 3, 0x6671, 6, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
-vpsllw, 3, 0x6671, 6, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpsllw, 3, 0x6671, 6, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, ZMMword|Unspecified|BaseIndex, RegZMM }
 vpsllw, 3, 0x6671, 6, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsllw, 3, 0x6671, 6, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vpsllw, 3, 0x6671, 6, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, XMMword|Unspecified|BaseIndex, RegXMM }
 vpsllw, 3, 0x6671, 6, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsllw, 3, 0x6671, 6, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpsllw, 3, 0x66F1, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsllw, 3, 0x66F1, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsllw, 3, 0x66F1, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vpsllw, 3, 0x6671, 6, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, YMMword|Unspecified|BaseIndex, RegYMM }
+vpsllw, 3, 0x66F1, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsllw, 3, 0x66F1, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsllw, 3, 0x66F1, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 vpsraw, 3, 0x6671, 4, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
-vpsraw, 3, 0x6671, 4, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpsraw, 3, 0x6671, 4, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, ZMMword|Unspecified|BaseIndex, RegZMM }
 vpsraw, 3, 0x6671, 4, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsraw, 3, 0x6671, 4, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vpsraw, 3, 0x6671, 4, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, XMMword|Unspecified|BaseIndex, RegXMM }
 vpsraw, 3, 0x6671, 4, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsraw, 3, 0x6671, 4, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpsraw, 3, 0x66E1, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsraw, 3, 0x66E1, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsraw, 3, 0x66E1, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vpsraw, 3, 0x6671, 4, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, YMMword|Unspecified|BaseIndex, RegYMM }
+vpsraw, 3, 0x66E1, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsraw, 3, 0x66E1, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsraw, 3, 0x66E1, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 vpsrlw, 3, 0x6671, 2, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
-vpsrlw, 3, 0x6671, 2, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpsrlw, 3, 0x6671, 2, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, ZMMword|Unspecified|BaseIndex, RegZMM }
 vpsrlw, 3, 0x6671, 2, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsrlw, 3, 0x6671, 2, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vpsrlw, 3, 0x6671, 2, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, XMMword|Unspecified|BaseIndex, RegXMM }
 vpsrlw, 3, 0x6671, 2, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsrlw, 3, 0x6671, 2, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpsrlw, 3, 0x66D1, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsrlw, 3, 0x66D1, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsrlw, 3, 0x66D1, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsubsw, 3, 0x66E9, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsubsw, 3, 0x66E9, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsubsw, 3, 0x66E9, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsubusw, 3, 0x66D9, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsubusw, 3, 0x66D9, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsubusw, 3, 0x66D9, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsubw, 3, 0x66F9, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsubw, 3, 0x66F9, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsubw, 3, 0x66F9, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpunpckhwd, 3, 0x6669, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpunpckhwd, 3, 0x6669, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpunpckhwd, 3, 0x6669, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpunpcklwd, 3, 0x6661, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpunpcklwd, 3, 0x6661, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpunpcklwd, 3, 0x6661, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vpalignr, 4, 0x660F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpalignr, 4, 0x660F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpalignr, 4, 0x660F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vpblendmb, 3, 0x6666, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpblendmb, 3, 0x6666, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpblendmb, 3, 0x6666, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpbroadcastb, 2, 0x6678, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegZMM }
-vpbroadcastb, 2, 0x6678, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM }
-vpbroadcastb, 2, 0x6678, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegYMM }
+vpsrlw, 3, 0x6671, 2, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, YMMword|Unspecified|BaseIndex, RegYMM }
+vpsrlw, 3, 0x66D1, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsrlw, 3, 0x66D1, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsrlw, 3, 0x66D1, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsubsw, 3, 0x66E9, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsubsw, 3, 0x66E9, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsubsw, 3, 0x66E9, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsubusw, 3, 0x66D9, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsubusw, 3, 0x66D9, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsubusw, 3, 0x66D9, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsubw, 3, 0x66F9, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsubw, 3, 0x66F9, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsubw, 3, 0x66F9, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpunpckhwd, 3, 0x6669, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpunpckhwd, 3, 0x6669, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpunpckhwd, 3, 0x6669, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpunpcklwd, 3, 0x6661, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpunpcklwd, 3, 0x6661, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpunpcklwd, 3, 0x6661, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpalignr, 4, 0x660F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpalignr, 4, 0x660F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpalignr, 4, 0x660F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpblendmb, 3, 0x6666, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpblendmb, 3, 0x6666, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpblendmb, 3, 0x6666, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpbroadcastb, 2, 0x6678, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Byte|Unspecified|BaseIndex, RegZMM }
+vpbroadcastb, 2, 0x6678, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Byte|Unspecified|BaseIndex, RegXMM }
+vpbroadcastb, 2, 0x6678, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Byte|Unspecified|BaseIndex, RegYMM }
 vpbroadcastb, 2, 0x667A, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg32, RegZMM }
 vpbroadcastb, 2, 0x667A, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg32, RegXMM }
 vpbroadcastb, 2, 0x667A, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg32, RegYMM }
 
-vpblendmw, 3, 0x6666, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpblendmw, 3, 0x6666, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpblendmw, 3, 0x6666, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermi2w, 3, 0x6675, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermi2w, 3, 0x6675, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermi2w, 3, 0x6675, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermt2w, 3, 0x667D, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermt2w, 3, 0x667D, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermt2w, 3, 0x667D, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermw, 3, 0x668D, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermw, 3, 0x668D, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermw, 3, 0x668D, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsllvw, 3, 0x6612, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsllvw, 3, 0x6612, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsllvw, 3, 0x6612, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsravw, 3, 0x6611, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsravw, 3, 0x6611, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsravw, 3, 0x6611, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpsrlvw, 3, 0x6610, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsrlvw, 3, 0x6610, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsrlvw, 3, 0x6610, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vpbroadcastw, 2, 0x6679, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpbroadcastw, 2, 0x6679, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpbroadcastw, 2, 0x6679, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vpblendmw, 3, 0x6666, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpblendmw, 3, 0x6666, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpblendmw, 3, 0x6666, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermi2w, 3, 0x6675, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermi2w, 3, 0x6675, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermi2w, 3, 0x6675, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermt2w, 3, 0x667D, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermt2w, 3, 0x667D, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermt2w, 3, 0x667D, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermw, 3, 0x668D, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermw, 3, 0x668D, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermw, 3, 0x668D, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsllvw, 3, 0x6612, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsllvw, 3, 0x6612, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsllvw, 3, 0x6612, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsravw, 3, 0x6611, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsravw, 3, 0x6611, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsravw, 3, 0x6611, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpsrlvw, 3, 0x6610, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsrlvw, 3, 0x6610, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsrlvw, 3, 0x6610, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpbroadcastw, 2, 0x6679, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Word|Unspecified|BaseIndex, RegZMM }
+vpbroadcastw, 2, 0x6679, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Word|Unspecified|BaseIndex, RegXMM }
+vpbroadcastw, 2, 0x6679, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Word|Unspecified|BaseIndex, RegYMM }
 vpbroadcastw, 2, 0x667B, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg32, RegZMM }
 vpbroadcastw, 2, 0x667B, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg32, RegXMM }
 vpbroadcastw, 2, 0x667B, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg32, RegYMM }
 
-vpcmpb, 4, 0x663F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpb, 4, 0x663F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpb, 4, 0x663F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpub, 4, 0x663E, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpub, 4, 0x663E, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpub, 4, 0x663E, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-
-vpcmpeqb, 3, 0x6674, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpeqb, 3, 0x6674, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpeqb, 3, 0x6674, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpgtb, 3, 0x6664, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpgtb, 3, 0x6664, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpgtb, 3, 0x6664, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
+vpcmpeqb, 3, 0x6674, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpeqb, 3, 0x6674, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpeqb, 3, 0x6674, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpgtb, 3, 0x6664, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpgtb, 3, 0x6664, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpgtb, 3, 0x6664, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpb, 4, 0x663F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpb, 4, 0x663F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpb, 4, 0x663F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpeqb, 3, 0x663F, 0, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpeqb, 3, 0x663F, 0, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpeqb, 3, 0x663F, 0, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpleb, 3, 0x663F, 2, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpleb, 3, 0x663F, 2, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpleb, 3, 0x663F, 2, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpltb, 3, 0x663F, 1, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpltb, 3, 0x663F, 1, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpltb, 3, 0x663F, 1, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpneqb, 3, 0x663F, 4, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpneqb, 3, 0x663F, 4, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpneqb, 3, 0x663F, 4, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnleb, 3, 0x663F, 6, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnleb, 3, 0x663F, 6, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnleb, 3, 0x663F, 6, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnltb, 3, 0x663F, 5, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnltb, 3, 0x663F, 5, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnltb, 3, 0x663F, 5, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpub, 4, 0x663E, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpub, 4, 0x663E, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpub, 4, 0x663E, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpequb, 3, 0x663E, 0, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpequb, 3, 0x663E, 0, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpequb, 3, 0x663E, 0, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpleub, 3, 0x663E, 2, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpleub, 3, 0x663E, 2, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpleub, 3, 0x663E, 2, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpltub, 3, 0x663E, 1, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpltub, 3, 0x663E, 1, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpltub, 3, 0x663E, 1, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnequb, 3, 0x663E, 4, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnequb, 3, 0x663E, 4, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnequb, 3, 0x663E, 4, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnleub, 3, 0x663E, 6, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnleub, 3, 0x663E, 6, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnleub, 3, 0x663E, 6, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnltub, 3, 0x663E, 5, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnltub, 3, 0x663E, 5, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnltub, 3, 0x663E, 5, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+
+vpcmpeqw, 3, 0x6675, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpeqw, 3, 0x6675, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpeqw, 3, 0x6675, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpgtw, 3, 0x6665, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpgtw, 3, 0x6665, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpgtw, 3, 0x6665, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpw, 4, 0x663F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpw, 4, 0x663F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpw, 4, 0x663F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpeqw, 3, 0x663F, 0, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpeqw, 3, 0x663F, 0, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpeqw, 3, 0x663F, 0, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmplew, 3, 0x663F, 2, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmplew, 3, 0x663F, 2, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmplew, 3, 0x663F, 2, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpltw, 3, 0x663F, 1, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpltw, 3, 0x663F, 1, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpltw, 3, 0x663F, 1, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpneqw, 3, 0x663F, 4, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpneqw, 3, 0x663F, 4, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpneqw, 3, 0x663F, 4, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnlew, 3, 0x663F, 6, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnlew, 3, 0x663F, 6, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnlew, 3, 0x663F, 6, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnltw, 3, 0x663F, 5, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnltw, 3, 0x663F, 5, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnltw, 3, 0x663F, 5, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpuw, 4, 0x663E, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpuw, 4, 0x663E, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpuw, 4, 0x663E, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpequw, 3, 0x663E, 0, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpequw, 3, 0x663E, 0, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpequw, 3, 0x663E, 0, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpleuw, 3, 0x663E, 2, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpleuw, 3, 0x663E, 2, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpleuw, 3, 0x663E, 2, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpltuw, 3, 0x663E, 1, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpltuw, 3, 0x663E, 1, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpltuw, 3, 0x663E, 1, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnequw, 3, 0x663E, 4, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnequw, 3, 0x663E, 4, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnequw, 3, 0x663E, 4, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnleuw, 3, 0x663E, 6, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnleuw, 3, 0x663E, 6, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnleuw, 3, 0x663E, 6, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+vpcmpnltuw, 3, 0x663E, 5, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpcmpnltuw, 3, 0x663E, 5, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpcmpnltuw, 3, 0x663E, 5, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+
 vpslldq, 3, 0x6673, 7, 1, CpuAVX512BW, Modrm|EVex=1|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
-vpslldq, 3, 0x6673, 7, 1, CpuAVX512BW, Modrm|EVex=1|VexOpcode=0|VexVVVV=3|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpslldq, 3, 0x6673, 7, 1, CpuAVX512BW, Modrm|EVex=1|VexOpcode=0|VexVVVV=3|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, ZMMword|Unspecified|BaseIndex, RegZMM }
 vpslldq, 3, 0x6673, 7, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpslldq, 3, 0x6673, 7, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|VexOpcode=0|VexVVVV=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vpslldq, 3, 0x6673, 7, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|VexOpcode=0|VexVVVV=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, XMMword|Unspecified|BaseIndex, RegXMM }
 vpslldq, 3, 0x6673, 7, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpslldq, 3, 0x6673, 7, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vpslldq, 3, 0x6673, 7, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, YMMword|Unspecified|BaseIndex, RegYMM }
 vpsrldq, 3, 0x6673, 3, 1, CpuAVX512BW, Modrm|EVex=1|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegZMM }
-vpsrldq, 3, 0x6673, 3, 1, CpuAVX512BW, Modrm|EVex=1|VexOpcode=0|VexVVVV=3|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpsrldq, 3, 0x6673, 3, 1, CpuAVX512BW, Modrm|EVex=1|VexOpcode=0|VexVVVV=3|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, ZMMword|Unspecified|BaseIndex, RegZMM }
 vpsrldq, 3, 0x6673, 3, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, RegXMM }
-vpsrldq, 3, 0x6673, 3, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|VexOpcode=0|VexVVVV=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vpsrldq, 3, 0x6673, 3, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|VexOpcode=0|VexVVVV=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, XMMword|Unspecified|BaseIndex, RegXMM }
 vpsrldq, 3, 0x6673, 3, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|VexOpcode=0|VexVVVV=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegYMM }
-vpsrldq, 3, 0x6673, 3, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vpsrldq, 3, 0x6673, 3, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|VexOpcode=0|VexVVVV=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, YMMword|Unspecified|BaseIndex, RegYMM }
 
-vpcmpeqw, 3, 0x6675, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpeqw, 3, 0x6675, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpeqw, 3, 0x6675, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpgtw, 3, 0x6665, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpgtw, 3, 0x6665, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpgtw, 3, 0x6665, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
 vpextrw, 3, 0x66C5, None, 1, CpuAVX512BW, Modrm|EVex=4|VexOpcode=0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Reg64 }
-vpinsrw, 4, 0x66C4, None, 1, CpuAVX512BW, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg32|Reg64|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vpinsrw, 4, 0x66C4, None, 1, CpuAVX512BW, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg32|Reg64, RegXMM, RegXMM }
+vpinsrw, 4, 0x66C4, None, 1, CpuAVX512BW, Modrm|EVex=4|VexOpcode=0|VexVVVV=1|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Word|Unspecified|BaseIndex, RegXMM, RegXMM }
 
-vpcmpuw, 4, 0x663E, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpuw, 4, 0x663E, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpuw, 4, 0x663E, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-vpcmpw, 4, 0x663F, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vpcmpw, 4, 0x663F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vpcmpw, 4, 0x663F, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-
-vpextrb, 3, 0x6614, None, 1, CpuAVX512BW, Modrm|EVex=4|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Reg64|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-vpinsrb, 4, 0x6620, None, 1, CpuAVX512BW, Modrm|EVex=4|VexOpcode=2|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg32|Reg64|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegXMM, RegXMM }
-
-vpextrw, 3, 0x6615, None, 1, CpuAVX512BW, Modrm|EVex=4|VexOpcode=2|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Reg64|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-
-vpmaddwd, 3, 0x66F5, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmaddwd, 3, 0x66F5, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmaddwd, 3, 0x66F5, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vpextrb, 3, 0x6614, None, 1, CpuAVX512BW, Modrm|EVex=4|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Reg64|RegMem }
+vpextrb, 3, 0x6614, None, 1, CpuAVX512BW, Modrm|EVex=4|VexOpcode=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Byte|Unspecified|BaseIndex }
+vpinsrb, 4, 0x6620, None, 1, CpuAVX512BW, Modrm|EVex=4|VexOpcode=2|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg32|Reg64, RegXMM, RegXMM }
+vpinsrb, 4, 0x6620, None, 1, CpuAVX512BW, Modrm|EVex=4|VexOpcode=2|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Byte|Unspecified|BaseIndex, RegXMM, RegXMM }
+
+vpextrw, 3, 0x6615, None, 1, CpuAVX512BW, Modrm|EVex=4|VexOpcode=2|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Reg64|RegMem }
+vpextrw, 3, 0x6615, None, 1, CpuAVX512BW, Modrm|EVex=4|VexOpcode=2|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Word|Unspecified|BaseIndex }
+
+vpmaddwd, 3, 0x66F5, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmaddwd, 3, 0x66F5, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmaddwd, 3, 0x66F5, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 
 vpmovb2m, 2, 0xF329, None, 1, CpuAVX512BW, Modrm|EVex=1|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegMask }
 vpmovb2m, 2, 0xF329, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegMask }
@@ -5634,54 +5598,54 @@ vpmovwb, 2, 0xF330, None, 1, CpuAVX512BW
 vpmovwb, 2, 0xF330, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
 vpmovwb, 2, 0xF330, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegXMM|RegMem }
 
-vpmovswb, 2, 0xF320, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovswb, 2, 0xF320, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovswb, 2, 0xF320, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovuswb, 2, 0xF310, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovuswb, 2, 0xF310, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovuswb, 2, 0xF310, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovwb, 2, 0xF330, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovwb, 2, 0xF330, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpmovwb, 2, 0xF330, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-
-vpmovsxbw, 2, 0x6620, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpmovsxbw, 2, 0x6620, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpmovsxbw, 2, 0x6620, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vpmovzxbw, 2, 0x6630, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpmovzxbw, 2, 0x6630, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpmovzxbw, 2, 0x6630, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vpmovswb, 2, 0xF320, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex }
+vpmovswb, 2, 0xF320, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vpmovswb, 2, 0xF320, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex }
+vpmovuswb, 2, 0xF310, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex }
+vpmovuswb, 2, 0xF310, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vpmovuswb, 2, 0xF310, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex }
+vpmovwb, 2, 0xF330, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, YMMword|Unspecified|BaseIndex }
+vpmovwb, 2, 0xF330, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Qword|Unspecified|BaseIndex }
+vpmovwb, 2, 0xF330, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, XMMword|Unspecified|BaseIndex }
+
+vpmovsxbw, 2, 0x6620, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegZMM }
+vpmovsxbw, 2, 0x6620, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM }
+vpmovsxbw, 2, 0x6620, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM }
+vpmovzxbw, 2, 0x6630, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegZMM }
+vpmovzxbw, 2, 0x6630, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM }
+vpmovzxbw, 2, 0x6630, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegYMM }
 
 vpmovw2m, 2, 0xF329, None, 1, CpuAVX512BW, Modrm|EVex=1|VexOpcode=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegMask }
 vpmovw2m, 2, 0xF329, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|VexOpcode=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegMask }
 vpmovw2m, 2, 0xF329, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|VexOpcode=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegMask }
 
-vpsadbw, 3, 0x66F6, None, 1, CpuAVX512BW, Modrm|EVex=1|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpsadbw, 3, 0x66F6, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpsadbw, 3, 0x66F6, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vpshufhw, 3, 0xF370, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpshufhw, 3, 0xF370, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpshufhw, 3, 0xF370, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vpshuflw, 3, 0xF270, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vpshuflw, 3, 0xF270, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vpshuflw, 3, 0xF270, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vptestmb, 3, 0x6626, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vptestmb, 3, 0x6626, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vptestmb, 3, 0x6626, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-
-vptestmw, 3, 0x6626, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vptestmw, 3, 0x6626, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vptestmw, 3, 0x6626, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-
-vptestnmb, 3, 0xF326, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vptestnmb, 3, 0xF326, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vptestnmb, 3, 0xF326, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
-
-vptestnmw, 3, 0xF326, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegMask }
-vptestnmw, 3, 0xF326, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegMask }
-vptestnmw, 3, 0xF326, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegMask }
+vpsadbw, 3, 0x66F6, None, 1, CpuAVX512BW, Modrm|EVex=1|VexOpcode=0|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpsadbw, 3, 0x66F6, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|VexOpcode=0|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpsadbw, 3, 0x66F6, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|VexOpcode=0|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpshufhw, 3, 0xF370, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM }
+vpshufhw, 3, 0xF370, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vpshufhw, 3, 0xF370, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vpshuflw, 3, 0xF270, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=3|VexOpcode=0|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM }
+vpshuflw, 3, 0xF270, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vpshuflw, 3, 0xF270, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vptestmb, 3, 0x6626, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vptestmb, 3, 0x6626, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vptestmb, 3, 0x6626, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+
+vptestmw, 3, 0x6626, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vptestmw, 3, 0x6626, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vptestmw, 3, 0x6626, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+
+vptestnmb, 3, 0xF326, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vptestnmb, 3, 0xF326, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vptestnmb, 3, 0xF326, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+
+vptestnmw, 3, 0xF326, None, 1, CpuAVX512BW, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vptestnmw, 3, 0xF326, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vptestnmw, 3, 0xF326, None, 1, CpuAVX512BW|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
 
 // AVX512BW instructions end.
 
@@ -5690,8 +5654,8 @@ vptestnmw, 3, 0xF326, None, 1, CpuAVX512
 kaddb, 3, 0x664A, None, 1, CpuAVX512DQ, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
 kandb, 3, 0x6641, None, 1, CpuAVX512DQ, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
 kandnb, 3, 0x6642, None, 1, CpuAVX512DQ, Modrm|Vex=2|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask, RegMask }
-kmovb, 2, 0x6690, None, 1, CpuAVX512DQ, Modrm|Vex=1|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask|Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, RegMask }
-kmovb, 2, 0x6691, None, 1, CpuAVX512DQ, Modrm|Vex=1|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+kmovb, 2, 0x6690, None, 1, CpuAVX512DQ, Modrm|Vex=1|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask|Byte|Unspecified|BaseIndex, RegMask }
+kmovb, 2, 0x6691, None, 1, CpuAVX512DQ, Modrm|Vex=1|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, Byte|Unspecified|BaseIndex }
 kmovb, 2, 0x6692, None, 1, CpuAVX512DQ, Modrm|Vex=1|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32, RegMask }
 kmovb, 2, 0x6693, None, 1, CpuAVX512DQ, Modrm|Vex=1|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, Reg32 }
 knotb, 2, 0x6644, None, 1, CpuAVX512DQ, Modrm|Vex=1|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegMask, RegMask }
@@ -5707,145 +5671,145 @@ ktestw, 2, 0x99, None, 1, CpuAVX512DQ, M
 kshiftlb, 3, 0x6632, None, 1, CpuAVX512DQ, Modrm|Vex=1|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegMask, RegMask }
 kshiftrb, 3, 0x6630, None, 1, CpuAVX512DQ, Modrm|Vex=1|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegMask, RegMask }
 
-vandnpd, 3, 0x6655, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vandnpd, 3, 0x6655, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vandnpd, 3, 0x6655, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vandpd, 3, 0x6654, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vandpd, 3, 0x6654, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vandpd, 3, 0x6654, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vorpd, 3, 0x6656, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vorpd, 3, 0x6656, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vorpd, 3, 0x6656, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vxorpd, 3, 0x6657, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vxorpd, 3, 0x6657, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vxorpd, 3, 0x6657, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vandnps, 3, 0x55, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vandnps, 3, 0x55, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vandnps, 3, 0x55, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vandps, 3, 0x54, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vandps, 3, 0x54, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vandps, 3, 0x54, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vorps, 3, 0x56, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vorps, 3, 0x56, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vorps, 3, 0x56, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vxorps, 3, 0x57, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vxorps, 3, 0x57, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vxorps, 3, 0x57, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vbroadcastf32x2, 2, 0x6619, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vbroadcastf32x2, 2, 0x6619, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vbroadcastf32x8, 2, 0x661B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vbroadcasti32x2, 2, 0x6659, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vbroadcasti32x2, 2, 0x6659, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vbroadcasti32x2, 2, 0x6659, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vbroadcasti32x8, 2, 0x665B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-
-vbroadcastf64x2, 2, 0x661A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vbroadcastf64x2, 2, 0x661A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vbroadcasti64x2, 2, 0x665A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vbroadcasti64x2, 2, 0x665A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-
-vcvtpd2qq, 2, 0x667B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vcvtpd2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtpd2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vandnpd, 3, 0x6655, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vandnpd, 3, 0x6655, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vandnpd, 3, 0x6655, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vandpd, 3, 0x6654, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vandpd, 3, 0x6654, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vandpd, 3, 0x6654, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vorpd, 3, 0x6656, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vorpd, 3, 0x6656, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vorpd, 3, 0x6656, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vxorpd, 3, 0x6657, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vxorpd, 3, 0x6657, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vxorpd, 3, 0x6657, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vandnps, 3, 0x55, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vandnps, 3, 0x55, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vandnps, 3, 0x55, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vandps, 3, 0x54, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vandps, 3, 0x54, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vandps, 3, 0x54, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vorps, 3, 0x56, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vorps, 3, 0x56, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vorps, 3, 0x56, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vxorps, 3, 0x57, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vxorps, 3, 0x57, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vxorps, 3, 0x57, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vbroadcastf32x2, 2, 0x6619, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegZMM }
+vbroadcastf32x2, 2, 0x6619, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegYMM }
+vbroadcastf32x8, 2, 0x661B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegZMM }
+vbroadcasti32x2, 2, 0x6659, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegZMM }
+vbroadcasti32x2, 2, 0x6659, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM }
+vbroadcasti32x2, 2, 0x6659, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegYMM }
+vbroadcasti32x8, 2, 0x665B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { YMMword|Unspecified|BaseIndex, RegZMM }
+
+vbroadcastf64x2, 2, 0x661A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegZMM }
+vbroadcastf64x2, 2, 0x661A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegYMM }
+vbroadcasti64x2, 2, 0x665A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegZMM }
+vbroadcasti64x2, 2, 0x665A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { XMMword|Unspecified|BaseIndex, RegYMM }
+
+vcvtpd2qq, 2, 0x667B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vcvtpd2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvtpd2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
 vcvtpd2qq, 3, 0x667B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM }
-vcvtpd2uqq, 2, 0x6679, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vcvtpd2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtpd2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvtpd2uqq, 2, 0x6679, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vcvtpd2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvtpd2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
 vcvtpd2uqq, 3, 0x6679, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM }
 
-vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=4|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM }
+vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=4|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
+vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM }
 vcvtps2qq, 3, 0x667B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegYMM, RegZMM }
-vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=4|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM }
+vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=4|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
+vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM }
 vcvtps2uqq, 3, 0x6679, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegYMM, RegZMM }
 
-vcvtqq2pd, 2, 0xF3E6, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vcvtqq2pd, 2, 0xF3E6, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtqq2pd, 2, 0xF3E6, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvtqq2pd, 2, 0xF3E6, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vcvtqq2pd, 2, 0xF3E6, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvtqq2pd, 2, 0xF3E6, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
 vcvtqq2pd, 3, 0xF3E6, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM }
-vcvtuqq2pd, 2, 0xF37A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vcvtuqq2pd, 2, 0xF37A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtuqq2pd, 2, 0xF37A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvtuqq2pd, 2, 0xF37A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vcvtuqq2pd, 2, 0xF37A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvtuqq2pd, 2, 0xF37A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
 vcvtuqq2pd, 3, 0xF37A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM }
 
-vcvtqq2ps, 2, 0x5B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vcvtqq2ps, 2, 0x5B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtqq2psx, 2, 0x5B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtqq2ps, 2, 0x5B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtqq2psy, 2, 0x5B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vcvtqq2ps, 2, 0x5B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegYMM }
+vcvtqq2ps, 2, 0x5B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|BaseIndex, RegXMM }
+vcvtqq2psx, 2, 0x5B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvtqq2ps, 2, 0x5B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|BaseIndex, RegXMM }
+vcvtqq2psy, 2, 0x5B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegXMM }
 vcvtqq2ps, 3, 0x5B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegYMM }
 
-vcvttpd2qq, 2, 0x667A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vcvttpd2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvttpd2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvttpd2qq, 2, 0x667A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vcvttpd2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvttpd2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
 vcvttpd2qq, 3, 0x667A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM }
-vcvttpd2uqq, 2, 0x6678, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vcvttpd2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvttpd2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvttpd2uqq, 2, 0x6678, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vcvttpd2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvttpd2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
 vcvttpd2uqq, 3, 0x6678, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM }
 
-vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=4|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM }
+vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=4|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
+vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM }
 vcvttps2qq, 3, 0x667A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegYMM, RegZMM }
-vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=4|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM }
+vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast=4|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
+vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM }
 vcvttps2uqq, 3, 0x6678, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegYMM, RegZMM }
 
-vcvtuqq2ps, 2, 0xF27A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
-vcvtuqq2ps, 2, 0xF27A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtuqq2psx, 2, 0xF27A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtuqq2ps, 2, 0xF27A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vcvtuqq2psy, 2, 0xF27A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
+vcvtuqq2ps, 2, 0xF27A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegYMM }
+vcvtuqq2ps, 2, 0xF27A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|BaseIndex, RegXMM }
+vcvtuqq2psx, 2, 0xF27A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vcvtuqq2ps, 2, 0xF27A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|BaseIndex, RegXMM }
+vcvtuqq2psy, 2, 0xF27A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegXMM }
 vcvtuqq2ps, 3, 0xF27A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegYMM }
 
 vextractf32x8, 3, 0x661B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegYMM|RegMem }
 vextracti32x8, 3, 0x663B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegYMM|RegMem }
-vinsertf32x8, 4, 0x661A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vinserti32x8, 4, 0x663A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
+vinsertf32x8, 4, 0x661A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vinserti32x8, 4, 0x663A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
 
-vextractf32x8, 3, 0x661B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vextracti32x8, 3, 0x663B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vfpclassss, 3, 0x6667, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegMask }
-vpextrd, 3, 0x6616, None, 1, CpuAVX512DQ, Modrm|EVex=4|VexOpcode=2|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpinsrd, 4, 0x6622, None, 1, CpuAVX512DQ, Modrm|EVex=4|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg32|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-
-vextractf64x2, 3, 0x6619, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vextractf64x2, 3, 0x6619, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vextracti64x2, 3, 0x6639, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vextracti64x2, 3, 0x6639, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vfpclasssd, 3, 0x6667, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegMask }
-vpextrq, 3, 0x6616, None, 1, CpuAVX512DQ, Modrm|EVex=4|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8 }
-vpinsrq, 4, 0x6622, None, 1, CpuAVX512DQ, Modrm|EVex=4|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg64|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vextractf32x8, 3, 0x661B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, YMMword|Unspecified|BaseIndex }
+vextracti32x8, 3, 0x663B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, YMMword|Unspecified|BaseIndex }
+vfpclassss, 3, 0x6667, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=2|VexOpcode=2|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex, RegMask }
+vpextrd, 3, 0x6616, None, 1, CpuAVX512DQ, Modrm|EVex=4|VexOpcode=2|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg32|Dword|Unspecified|BaseIndex }
+vpinsrd, 4, 0x6622, None, 1, CpuAVX512DQ, Modrm|EVex=4|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg32|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
+
+vextractf64x2, 3, 0x6619, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, XMMword|Unspecified|BaseIndex }
+vextractf64x2, 3, 0x6619, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, XMMword|Unspecified|BaseIndex }
+vextracti64x2, 3, 0x6639, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, XMMword|Unspecified|BaseIndex }
+vextracti64x2, 3, 0x6639, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, XMMword|Unspecified|BaseIndex }
+vfpclasssd, 3, 0x6667, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex, RegMask }
+vpextrq, 3, 0x6616, None, 1, CpuAVX512DQ, Modrm|EVex=4|VexOpcode=2|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM, Reg64|Qword|Unspecified|BaseIndex }
+vpinsrq, 4, 0x6622, None, 1, CpuAVX512DQ, Modrm|EVex=4|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Reg64|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 
 vextractf64x2, 3, 0x6619, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegXMM|RegMem }
 vextractf64x2, 3, 0x6619, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegXMM|RegMem }
 vextracti64x2, 3, 0x6639, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM, RegXMM|RegMem }
 vextracti64x2, 3, 0x6639, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM, RegXMM|RegMem }
-vinsertf64x2, 4, 0x6618, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vinsertf64x2, 4, 0x6618, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vinserti64x2, 4, 0x6638, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vinserti64x2, 4, 0x6638, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vfpclasspd, 3, 0x6666, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegMask }
-vfpclasspdz, 3, 0x6666, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegMask }
-vfpclasspd, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegMask }
-vfpclasspdx, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegMask }
-vfpclasspd, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegMask }
-vfpclasspdy, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegMask }
-
-vfpclassps, 3, 0x6666, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegMask }
-vfpclasspsz, 3, 0x6666, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegMask }
-vfpclassps, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegMask }
-vfpclasspsx, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegMask }
-vfpclassps, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegMask }
-vfpclasspsy, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegMask }
+vinsertf64x2, 4, 0x6618, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vinsertf64x2, 4, 0x6618, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vinserti64x2, 4, 0x6638, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vinserti64x2, 4, 0x6638, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vfpclasspd, 3, 0x6666, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|BaseIndex, RegMask }
+vfpclasspdz, 3, 0x6666, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegMask }
+vfpclasspd, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|BaseIndex, RegMask }
+vfpclasspdx, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegMask }
+vfpclasspd, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|BaseIndex, RegMask }
+vfpclasspdy, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegMask }
+
+vfpclassps, 3, 0x6666, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|BaseIndex, RegMask }
+vfpclasspsz, 3, 0x6666, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=2|VexOpcode=2|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegMask }
+vfpclassps, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|BaseIndex, RegMask }
+vfpclasspsx, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=2|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegMask }
+vfpclassps, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|BaseIndex, RegMask }
+vfpclasspsy, 3, 0x6666, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=2|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegMask }
 
 vpmovd2m, 2, 0xF339, None, 1, CpuAVX512DQ, Modrm|EVex=1|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegMask }
 vpmovd2m, 2, 0xF339, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegMask }
@@ -5863,110 +5827,265 @@ vpmovq2m, 2, 0xF339, None, 1, CpuAVX512D
 vpmovq2m, 2, 0xF339, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegMask }
 vpmovq2m, 2, 0xF339, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|VexOpcode=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegMask }
 
-vpmullq, 3, 0x6640, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmullq, 3, 0x6640, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmullq, 3, 0x6640, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vrangepd, 4, 0x6650, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vrangepd, 4, 0x6650, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vrangepd, 4, 0x6650, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vpmullq, 3, 0x6640, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmullq, 3, 0x6640, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmullq, 3, 0x6640, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vrangepd, 4, 0x6650, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vrangepd, 4, 0x6650, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vrangepd, 4, 0x6650, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 vrangepd, 5, 0x6650, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegZMM, RegZMM, RegZMM }
-vreducepd, 3, 0x6656, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vreducepd, 3, 0x6656, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vreducepd, 3, 0x6656, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vreducepd, 3, 0x6656, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vreducepd, 3, 0x6656, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vreducepd, 3, 0x6656, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
 vreducepd, 4, 0x6656, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegZMM, RegZMM }
 
-vrangeps, 4, 0x6650, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vrangeps, 4, 0x6650, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vrangeps, 4, 0x6650, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vrangeps, 4, 0x6650, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vrangeps, 4, 0x6650, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vrangeps, 4, 0x6650, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 vrangeps, 5, 0x6650, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegZMM, RegZMM, RegZMM }
-vreduceps, 3, 0x6656, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-vreduceps, 3, 0x6656, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM }
-vreduceps, 3, 0x6656, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM }
+vreduceps, 3, 0x6656, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vreduceps, 3, 0x6656, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM }
+vreduceps, 3, 0x6656, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM }
 vreduceps, 4, 0x6656, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=2|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegZMM, RegZMM }
 
-vrangesd, 4, 0x6651, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vrangesd, 4, 0x6651, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vrangesd, 5, 0x6651, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegXMM, RegXMM, RegXMM }
-vreducesd, 4, 0x6657, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vreducesd, 4, 0x6657, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vreducesd, 5, 0x6657, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegXMM, RegXMM, RegXMM }
 
-vrangess, 4, 0x6651, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vrangess, 4, 0x6651, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vrangess, 5, 0x6651, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegXMM, RegXMM, RegXMM }
-vreducess, 4, 0x6657, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+vreducess, 4, 0x6657, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|Unspecified|BaseIndex, RegXMM, RegXMM }
 vreducess, 5, 0x6657, None, 1, CpuAVX512DQ, Modrm|EVex=4|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, Imm8, RegXMM, RegXMM, RegXMM }
 
 // AVX512DQ instructions end.
 
 // CLWB instructions.
 
-clwb, 1, 0x660fae, 0x6, 2, CpuCLWB, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+clwb, 1, 0x660fae, 0x6, 2, CpuCLWB, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Anysize|BaseIndex }
 
 // CLWB instructions end.
 
 // AVX512IFMA instructions
 
-vpmadd52huq, 3, 0x66B5, None, 1, CpuAVX512IFMA, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmadd52huq, 3, 0x66B5, None, 1, CpuAVX512IFMA|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmadd52huq, 3, 0x66B5, None, 1, CpuAVX512IFMA|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpmadd52luq, 3, 0x66B4, None, 1, CpuAVX512IFMA, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmadd52luq, 3, 0x66B4, None, 1, CpuAVX512IFMA|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmadd52luq, 3, 0x66B4, None, 1, CpuAVX512IFMA|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vpmadd52huq, 3, 0x66B5, None, 1, CpuAVX512IFMA, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmadd52huq, 3, 0x66B5, None, 1, CpuAVX512IFMA|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmadd52huq, 3, 0x66B5, None, 1, CpuAVX512IFMA|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpmadd52luq, 3, 0x66B4, None, 1, CpuAVX512IFMA, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmadd52luq, 3, 0x66B4, None, 1, CpuAVX512IFMA|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmadd52luq, 3, 0x66B4, None, 1, CpuAVX512IFMA|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 
 // AVX512IFMA instructions end
 
 // AVX512VBMI instructions
 
-vpmultishiftqb, 3, 0x6683, None, 1, CpuAVX512VBMI, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpmultishiftqb, 3, 0x6683, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpmultishiftqb, 3, 0x6683, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermb, 3, 0x668D, None, 1, CpuAVX512VBMI, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermb, 3, 0x668D, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermb, 3, 0x668D, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermi2b, 3, 0x6675, None, 1, CpuAVX512VBMI, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermi2b, 3, 0x6675, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermi2b, 3, 0x6675, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-vpermt2b, 3, 0x667D, None, 1, CpuAVX512VBMI, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vpermt2b, 3, 0x667D, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vpermt2b, 3, 0x667D, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vpmultishiftqb, 3, 0x6683, None, 1, CpuAVX512VBMI, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpmultishiftqb, 3, 0x6683, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpmultishiftqb, 3, 0x6683, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermb, 3, 0x668D, None, 1, CpuAVX512VBMI, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermb, 3, 0x668D, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermb, 3, 0x668D, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermi2b, 3, 0x6675, None, 1, CpuAVX512VBMI, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermi2b, 3, 0x6675, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermi2b, 3, 0x6675, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vpermt2b, 3, 0x667D, None, 1, CpuAVX512VBMI, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpermt2b, 3, 0x667D, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpermt2b, 3, 0x667D, None, 1, CpuAVX512VBMI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 
 // AVX512VBMI instructions end
 
 // AVX512_4FMAPS instructions
 
-v4fmaddps, 3, 0xf29a, None, 1, CpuAVX512_4FMAPS, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-v4fmaddps, 3, 0xf29a, None, 1, CpuAVX512_4FMAPS|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-v4fmaddps, 3, 0xf29a, None, 1, CpuAVX512_4FMAPS|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+v4fmaddps, 3, 0xf29a, None, 1, CpuAVX512_4FMAPS, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+v4fmaddps, 3, 0xf29a, None, 1, CpuAVX512_4FMAPS|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+v4fmaddps, 3, 0xf29a, None, 1, CpuAVX512_4FMAPS|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 
-v4fnmaddps, 3, 0xf2aa, None, 1, CpuAVX512_4FMAPS, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-v4fnmaddps, 3, 0xf2aa, None, 1, CpuAVX512_4FMAPS|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-v4fnmaddps, 3, 0xf2aa, None, 1, CpuAVX512_4FMAPS|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+v4fnmaddps, 3, 0xf2aa, None, 1, CpuAVX512_4FMAPS, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+v4fnmaddps, 3, 0xf2aa, None, 1, CpuAVX512_4FMAPS|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+v4fnmaddps, 3, 0xf2aa, None, 1, CpuAVX512_4FMAPS|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 
-v4fmaddss, 3, 0xf29b, None, 1, CpuAVX512_4FMAPS, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+v4fmaddss, 3, 0xf29b, None, 1, CpuAVX512_4FMAPS, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
 
-v4fnmaddss, 3, 0xf2ab, None, 1, CpuAVX512_4FMAPS, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
+v4fnmaddss, 3, 0xf2ab, None, 1, CpuAVX512_4FMAPS, Modrm|EVex=4|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
 
 // AVX512_4FMAPS instructions end
 
 // AVX512_4VNNIW instructions
 
-vp4dpwssd, 3, 0xf252, None, 1, CpuAVX512_4VNNIW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vp4dpwssd, 3, 0xf252, None, 1, CpuAVX512_4VNNIW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vp4dpwssd, 3, 0xf252, None, 1, CpuAVX512_4VNNIW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
-
-vp4dpwssds, 3, 0xf253, None, 1, CpuAVX512_4VNNIW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }
-vp4dpwssds, 3, 0xf253, None, 1, CpuAVX512_4VNNIW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegXMM, RegXMM }
-vp4dpwssds, 3, 0xf253, None, 1, CpuAVX512_4VNNIW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegYMM, RegYMM }
+vp4dpwssd, 3, 0xf252, None, 1, CpuAVX512_4VNNIW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vp4dpwssd, 3, 0xf252, None, 1, CpuAVX512_4VNNIW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vp4dpwssd, 3, 0xf252, None, 1, CpuAVX512_4VNNIW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vp4dpwssds, 3, 0xf253, None, 1, CpuAVX512_4VNNIW, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vp4dpwssds, 3, 0xf253, None, 1, CpuAVX512_4VNNIW|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vp4dpwssds, 3, 0xf253, None, 1, CpuAVX512_4VNNIW|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImplicitQuadGroup, { XMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
 
 // AVX512_4VNNIW instructions end
 
 // AVX512_VPOPCNTDQ instructions
 
-vpopcntd, 2, 0x6655, None, 1, CpuAVX512_VPOPCNTDQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
-
-vpopcntq, 2, 0x6655, None, 1, CpuAVX512_VPOPCNTDQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM }
+vpopcntd, 2, 0x6655, None, 1, CpuAVX512_VPOPCNTDQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM }
+vpopcntd, 2, 0x6655, None, 1, CpuAVX512_VPOPCNTDQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vpopcntd, 2, 0x6655, None, 1, CpuAVX512_VPOPCNTDQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vpopcntq, 2, 0x6655, None, 1, CpuAVX512_VPOPCNTDQ, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM }
+vpopcntq, 2, 0x6655, None, 1, CpuAVX512_VPOPCNTDQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM }
+vpopcntq, 2, 0x6655, None, 1, CpuAVX512_VPOPCNTDQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM }
 
 // AVX512_VPOPCNTDQ instructions end
 
+// AVX512_VBMI2 instructions
+
+vpcompressb, 2, 0x6663, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
+vpcompressb, 2, 0x6663, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vpcompressb, 2, 0x6663, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vpcompressb, 2, 0x6663, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
+vpcompressb, 2, 0x6663, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
+vpcompressb, 2, 0x6663, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
+
+vpcompressw, 2, 0x6663, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=2|VexOpcode=1|VexW=2|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, ZMMword|Unspecified|BaseIndex }
+vpcompressw, 2, 0x6663, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexW=2|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, XMMword|Unspecified|BaseIndex }
+vpcompressw, 2, 0x6663, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexW=2|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, YMMword|Unspecified|BaseIndex }
+vpcompressw, 2, 0x6663, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM, RegZMM|RegMem }
+vpcompressw, 2, 0x6663, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM|RegMem }
+vpcompressw, 2, 0x6663, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM, RegYMM|RegMem }
+
+vpexpandb, 2, 0x6662, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM }
+vpexpandb, 2, 0x6662, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vpexpandb, 2, 0x6662, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vpexpandw, 2, 0x6662, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM }
+vpexpandw, 2, 0x6662, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vpexpandw, 2, 0x6662, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|Disp8MemShift=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vpshldvd, 3, 0x6671, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpshldvd, 3, 0x6671, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpshldvd, 3, 0x6671, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpshrdvd, 3, 0x6673, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpshrdvd, 3, 0x6673, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpshrdvd, 3, 0x6673, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpshldvq, 3, 0x6671, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpshldvq, 3, 0x6671, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpshldvq, 3, 0x6671, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpshrdvq, 3, 0x6673, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpshrdvq, 3, 0x6673, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpshrdvq, 3, 0x6673, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpshldd, 4, 0x6671, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpshldd, 4, 0x6671, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpshldd, 4, 0x6671, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpshrdd, 4, 0x6673, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpshrdd, 4, 0x6673, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpshrdd, 4, 0x6673, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpshldq, 4, 0x6671, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpshldq, 4, 0x6671, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpshldq, 4, 0x6671, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpshrdq, 4, 0x6673, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpshrdq, 4, 0x6673, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpshrdq, 4, 0x6673, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpshldvw, 3, 0x6670, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpshldvw, 3, 0x6670, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpshldvw, 3, 0x6670, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpshrdvw, 3, 0x6672, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpshrdvw, 3, 0x6672, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpshrdvw, 3, 0x6672, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpshldw, 4, 0x6670, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpshldw, 4, 0x6670, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpshldw, 4, 0x6670, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpshrdw, 4, 0x6672, None, 1, CpuAVX512_VBMI2, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpshrdw, 4, 0x6672, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpshrdw, 4, 0x6672, None, 1, CpuAVX512_VBMI2|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+// AVX512_VBMI2 instructions end
+
+// AVX512_VNNI instructions
+
+vpdpbusd, 3, 0x6650, None, 1, CpuAVX512_VNNI, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpdpbusd, 3, 0x6650, None, 1, CpuAVX512_VNNI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpdpbusd, 3, 0x6650, None, 1, CpuAVX512_VNNI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpdpbusds, 3, 0x6651, None, 1, CpuAVX512_VNNI, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpdpbusds, 3, 0x6651, None, 1, CpuAVX512_VNNI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpdpbusds, 3, 0x6651, None, 1, CpuAVX512_VNNI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpdpwssd, 3, 0x6652, None, 1, CpuAVX512_VNNI, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpdpwssd, 3, 0x6652, None, 1, CpuAVX512_VNNI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpdpwssd, 3, 0x6652, None, 1, CpuAVX512_VNNI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vpdpwssds, 3, 0x6653, None, 1, CpuAVX512_VNNI, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Dword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpdpwssds, 3, 0x6653, None, 1, CpuAVX512_VNNI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=3|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpdpwssds, 3, 0x6653, None, 1, CpuAVX512_VNNI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Broadcast=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+// AVX512_VNNI instructions end
+
+// AVX512_BITALG instructions
+
+vpopcntb, 2, 0x6654, None, 1, CpuAVX512_BITALG, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM }
+vpopcntb, 2, 0x6654, None, 1, CpuAVX512_BITALG|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vpopcntb, 2, 0x6654, None, 1, CpuAVX512_BITALG|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vpopcntw, 2, 0x6654, None, 1, CpuAVX512_BITALG, Modrm|EVex=1|Masking=3|VexOpcode=1|VexW=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM }
+vpopcntw, 2, 0x6654, None, 1, CpuAVX512_BITALG|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexW=2|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM }
+vpopcntw, 2, 0x6654, None, 1, CpuAVX512_BITALG|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexW=2|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM }
+
+vpshufbitqmb, 3, 0x668f, None, 1, CpuAVX512_BITALG, Modrm|EVex=1|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegMask }
+vpshufbitqmb, 3, 0x668f, None, 1, CpuAVX512_BITALG|CpuAVX512VL, Modrm|EVex=2|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegMask }
+vpshufbitqmb, 3, 0x668f, None, 1, CpuAVX512_BITALG|CpuAVX512VL, Modrm|EVex=3|Masking=2|VexOpcode=1|VexVVVV=1|VexW=1|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegMask }
+
+// AVX512_BITALG instructions end
+
+// AVX512 + GFNI instructions
+
+vgf2p8affineinvqb, 4, 0x66cf, None, 1, CpuAVX512F|CpuGFNI, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vgf2p8affineinvqb, 4, 0x66cf, None, 1, CpuGFNI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vgf2p8affineinvqb, 4, 0x66cf, None, 1, CpuGFNI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vgf2p8affineqb, 4, 0x66ce, None, 1, CpuAVX512F|CpuGFNI, Modrm|EVex=1|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|Qword|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vgf2p8affineqb, 4, 0x66ce, None, 1, CpuGFNI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=4|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Qword|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vgf2p8affineqb, 4, 0x66ce, None, 1, CpuGFNI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=2|VexVVVV=1|VexW=2|VecESize=1|Broadcast=3|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|Qword|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+vgf2p8mulb, 3, 0x66cf, None, 1, CpuAVX512F|CpuGFNI, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vgf2p8mulb, 3, 0x66cf, None, 1, CpuGFNI|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vgf2p8mulb, 3, 0x66cf, None, 1, CpuGFNI|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=1|VexVVVV=1|VexW=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+// AVX512 + GFNI instructions end
+
+// AVX512 + VAES instructions
+
+vaesdec, 3, 0x66de, None, 1, CpuAVX512F|CpuVAES, Modrm|EVex=1|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vaesdec, 3, 0x66de, None, 1, CpuVAES|CpuAVX512VL, Modrm|EVex=2|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vaesdec, 3, 0x66de, None, 1, CpuVAES|CpuAVX512VL, Modrm|EVex=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vaesdeclast, 3, 0x66df, None, 1, CpuAVX512F|CpuVAES, Modrm|EVex=1|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vaesdeclast, 3, 0x66df, None, 1, CpuVAES|CpuAVX512VL, Modrm|EVex=2|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vaesdeclast, 3, 0x66df, None, 1, CpuVAES|CpuAVX512VL, Modrm|EVex=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vaesenc, 3, 0x66dc, None, 1, CpuAVX512F|CpuVAES, Modrm|EVex=1|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vaesenc, 3, 0x66dc, None, 1, CpuVAES|CpuAVX512VL, Modrm|EVex=2|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vaesenc, 3, 0x66dc, None, 1, CpuVAES|CpuAVX512VL, Modrm|EVex=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+vaesenclast, 3, 0x66dd, None, 1, CpuAVX512F|CpuVAES, Modrm|EVex=1|VexOpcode=1|VexVVVV=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vaesenclast, 3, 0x66dd, None, 1, CpuVAES|CpuAVX512VL, Modrm|EVex=2|VexOpcode=1|VexVVVV=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vaesenclast, 3, 0x66dd, None, 1, CpuVAES|CpuAVX512VL, Modrm|EVex=3|VexOpcode=1|VexVVVV=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+// AVX512 + VAES instructions end
+
+// AVX512 + VPCLMULQDQ instructions
+
+vpclmulqdq, 4, 0x6644, None, 1, CpuVPCLMULQDQ|CpuAVX512F, Modrm|EVex=1|VexOpcode=2|VexVVVV=1|VecESize=1|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegZMM|ZMMword|Unspecified|BaseIndex, RegZMM, RegZMM }
+vpclmulqdq, 4, 0x6644, None, 1, CpuVPCLMULQDQ|CpuAVX512VL, Modrm|EVex=2|VexOpcode=2|VexVVVV=1|VecESize=1|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|XMMword|Unspecified|BaseIndex, RegXMM, RegXMM }
+vpclmulqdq, 4, 0x6644, None, 1, CpuVPCLMULQDQ|CpuAVX512VL, Modrm|EVex=3|VexOpcode=2|VexVVVV=1|VecESize=1|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegYMM|YMMword|Unspecified|BaseIndex, RegYMM, RegYMM }
+
+// AVX512 + VPCLMULQDQ instructions end
+
 // CLZERO instructions
 
 clzero, 0, 0xf01fc, None, 3, CpuCLZERO, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
@@ -6003,25 +6122,28 @@ rdpid, 1, 0xf30fc7, 0x7, 2, CpuRDPID|Cpu
 
 // PTWRITE instructions.
 
-ptwrite, 1, 0xf30fae, 0x4, 2, CpuPTWRITE, Modrm|CheckRegSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+ptwrite, 1, 0xf30fae, 0x4, 2, CpuPTWRITE, Modrm|No_bSuf|No_wSuf|No_sSuf|No_ldSuf, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex }
 
 // PTWRITE instructions end.
 
 // CET instructions.
 
-incsspd, 0, 0xf30f01e9, None, 3, CpuCET, IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
-incsspq, 0, 0xf30f01e9, None, 3, CpuCET|Cpu64, IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { 0 }
+incsspd, 1, 0xf30fae, 0x5, 2, CpuCET, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32 }
+incsspq, 1, 0xf30fae, 0x5, 2, CpuCET|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg64 }
 rdsspd, 1, 0xf30f1e, 0x1, 2, CpuCET, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32 }
 rdsspq, 1, 0xf30f1e, 0x1, 2, CpuCET|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg64 }
-savessp, 0, 0xf30f01ea, None, 3, CpuCET, IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
-rstorssp, 1, 0xf30f01, 0x5, 2, CpuCET, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-wrssd, 2, 0x0f38f6, None, 3, CpuCET, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32, Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-wrssq, 2, 0x0f38f6, None, 3, CpuCET|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg64, Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-wrussd, 2, 0x660f38f5, None, 3, CpuCET, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32, Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-wrussq, 2, 0x660f38f5, None, 3, CpuCET|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg64, Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-setssbsy, 1, 0xf30fae, 0x5, 2, CpuCET, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
-clrssbsy, 1, 0xf30fae, 0x6, 2, CpuCET, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+saveprevssp, 0, 0xf30f01ea, None, 3, CpuCET, IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
+rstorssp, 1, 0xf30f01, 0x5, 2, CpuCET, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex }
+wrssd, 2, 0x0f38f6, None, 3, CpuCET, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32, Unspecified|BaseIndex }
+wrssq, 2, 0x0f38f6, None, 3, CpuCET|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg64, Unspecified|BaseIndex }
+wrussd, 2, 0x660f38f5, None, 3, CpuCET, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32, Unspecified|BaseIndex }
+wrussq, 2, 0x660f38f5, None, 3, CpuCET|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|Rex64, { Reg64, Unspecified|BaseIndex }
+setssbsy, 0, 0xf30f01e8, None, 3, CpuCET, IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
+clrssbsy, 1, 0xf30fae, 0x6, 2, CpuCET, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex }
 endbr64, 0, 0xf30f1efa, None, 3, CpuCET, IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 endbr32, 0, 0xf30f1efb, None, 3, CpuCET, IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 
+// notrack prefix
+notrack, 0, 0x3e, None, 1, CpuCET, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsPrefix, { 0 }
+
 // CET instructions end.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-reg.tbl ./opcodes/i386-reg.tbl
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-reg.tbl	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/i386-reg.tbl	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 // i386 register table.
-// Copyright (C) 2007-2017 Free Software Foundation, Inc.
+// Copyright (C) 2007-2018 Free Software Foundation, Inc.
 //
 // This file is part of the GNU opcodes library.
 //
@@ -19,9 +19,9 @@
 // 02110-1301, USA.
 
 // Make %st first as we test for it.
-st, FloatReg|FloatAcc, 0, 0, 11, 33
+st, FloatReg|Acc, 0, 0, 11, 33
 // 8 bit regs
-al, Reg8|Acc|Byte, 0, 0, Dw2Inval, Dw2Inval
+al, Reg8|Acc, 0, 0, Dw2Inval, Dw2Inval
 cl, Reg8|ShiftCount, 0, 1, Dw2Inval, Dw2Inval
 dl, Reg8, 0, 2, Dw2Inval, Dw2Inval
 bl, Reg8, 0, 3, Dw2Inval, Dw2Inval
@@ -29,7 +29,7 @@ ah, Reg8, 0, 4, Dw2Inval, Dw2Inval
 ch, Reg8, 0, 5, Dw2Inval, Dw2Inval
 dh, Reg8, 0, 6, Dw2Inval, Dw2Inval
 bh, Reg8, 0, 7, Dw2Inval, Dw2Inval
-axl, Reg8|Acc|Byte, RegRex64, 0, Dw2Inval, Dw2Inval
+axl, Reg8, RegRex64, 0, Dw2Inval, Dw2Inval
 cxl, Reg8, RegRex64, 1, Dw2Inval, Dw2Inval
 dxl, Reg8, RegRex64, 2, Dw2Inval, Dw2Inval
 bxl, Reg8, RegRex64, 3, Dw2Inval, Dw2Inval
@@ -46,7 +46,7 @@ r13b, Reg8, RegRex|RegRex64, 5, Dw2Inval
 r14b, Reg8, RegRex|RegRex64, 6, Dw2Inval, Dw2Inval
 r15b, Reg8, RegRex|RegRex64, 7, Dw2Inval, Dw2Inval
 // 16 bit regs
-ax, Reg16|Acc|Word, 0, 0, Dw2Inval, Dw2Inval
+ax, Reg16|Acc, 0, 0, Dw2Inval, Dw2Inval
 cx, Reg16, 0, 1, Dw2Inval, Dw2Inval
 dx, Reg16|InOutPortReg, 0, 2, Dw2Inval, Dw2Inval
 bx, Reg16|BaseIndex, 0, 3, Dw2Inval, Dw2Inval
@@ -63,7 +63,7 @@ r13w, Reg16, RegRex, 5, Dw2Inval, Dw2Inv
 r14w, Reg16, RegRex, 6, Dw2Inval, Dw2Inval
 r15w, Reg16, RegRex, 7, Dw2Inval, Dw2Inval
 // 32 bit regs
-eax, Reg32|BaseIndex|Acc|Dword, 0, 0, 0, Dw2Inval
+eax, Reg32|BaseIndex|Acc, 0, 0, 0, Dw2Inval
 ecx, Reg32|BaseIndex, 0, 1, 1, Dw2Inval
 edx, Reg32|BaseIndex, 0, 2, 2, Dw2Inval
 ebx, Reg32|BaseIndex, 0, 3, 3, Dw2Inval
@@ -79,7 +79,7 @@ r12d, Reg32|BaseIndex, RegRex, 4, Dw2Inv
 r13d, Reg32|BaseIndex, RegRex, 5, Dw2Inval, Dw2Inval
 r14d, Reg32|BaseIndex, RegRex, 6, Dw2Inval, Dw2Inval
 r15d, Reg32|BaseIndex, RegRex, 7, Dw2Inval, Dw2Inval
-rax, Reg64|BaseIndex|Acc|Qword, 0, 0, Dw2Inval, 0
+rax, Reg64|BaseIndex|Acc, 0, 0, Dw2Inval, 0
 rcx, Reg64|BaseIndex, 0, 1, Dw2Inval, 2
 rdx, Reg64|BaseIndex, 0, 2, Dw2Inval, 1
 rbx, Reg64|BaseIndex, 0, 3, Dw2Inval, 3
@@ -180,7 +180,7 @@ mm4, RegMMX, 0, 4, 33, 45
 mm5, RegMMX, 0, 5, 34, 46
 mm6, RegMMX, 0, 6, 35, 47
 mm7, RegMMX, 0, 7, 36, 48
-xmm0, RegXMM, 0, 0, 21, 17
+xmm0, RegXMM|Acc, 0, 0, 21, 17
 xmm1, RegXMM, 0, 1, 22, 18
 xmm2, RegXMM, 0, 2, 23, 19
 xmm3, RegXMM, 0, 3, 24, 20
@@ -292,7 +292,7 @@ eip, BaseIndex, RegRex64, RegEip, 8, Dw2
 riz, BaseIndex, RegRex64, RegRiz, Dw2Inval, Dw2Inval
 eiz, BaseIndex, 0, RegEiz, Dw2Inval, Dw2Inval
 // fp regs.
-st(0), FloatReg|FloatAcc, 0, 0, 11, 33
+st(0), FloatReg|Acc, 0, 0, 11, 33
 st(1), FloatReg, 0, 1, 12, 34
 st(2), FloatReg, 0, 2, 13, 35
 st(3), FloatReg, 0, 3, 14, 36
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-tbl.h ./opcodes/i386-tbl.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-8.0.1.20180102/opcodes/i386-tbl.h	2018-01-02 02:03:00.000000000 +0000
+++ ./opcodes/i386-tbl.h	2018-01-09 02:04:59.000000000 +0000
@@ -1,5 +1,5 @@
 /* This file is automatically generated by i386-gen.  Do not edit!  */
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
 
@@ -27,92179 +27,98545 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
-    { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
+    { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+	  1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mov", 2, 0xa0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
-    { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
+    { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mov", 2, 0x88, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "mov", 2, 0xb0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mov", 2, 0xc6, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "mov", 2, 0xb0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mov", 2, 0x8c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mov", 2, 0x8c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "mov", 2, 0x8c, None, 1,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mov", 2, 0x8c, None, 1,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "mov", 2, 0x8e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "mov", 2, 0x8e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "mov", 2, 0x8e, None, 1,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "mov", 2, 0x8e, None, 1,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "mov", 2, 0xf20, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mov", 2, 0xf20, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mov", 2, 0xf21, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mov", 2, 0xf21, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mov", 2, 0xf24, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movabs", 2, 0xa0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
-    { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
+    { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+	  1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movabs", 2, 0xb0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movbe", 2, 0x0f38f0, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movbe", 2, 0x0f38f1, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movsbl", 2, 0xfbe, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movsbw", 2, 0xfbe, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movswl", 2, 0xfbf, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movsbq", 2, 0xfbe, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movswq", 2, 0xfbf, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movslq", 2, 0x63, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movsx", 2, 0xfbe, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movsx", 2, 0xfbf, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0 },
-    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movsx", 2, 0x63, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movsx", 2, 0xfbe, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movsx", 2, 0xfbf, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0 },
-    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movsx", 2, 0x63, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movsxd", 2, 0x63, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movzb", 2, 0xfb6, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movzw", 2, 0xfb7, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movzx", 2, 0xfb6, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movzx", 2, 0xfb7, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0 },
-    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movzx", 2, 0xfb6, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movzx", 2, 0xfb7, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0 },
-    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "push", 1, 0x50, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "push", 1, 0xff, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "push", 1, 0x6a, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "push", 1, 0x68, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "push", 1, 0x6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "push", 1, 0xfa0, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "push", 1, 0x50, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "push", 1, 0xff, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "push", 1, 0x6a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "push", 1, 0x68, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "push", 1, 0xfa0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pusha", 0, 0x60, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pop", 1, 0x58, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pop", 1, 0x8f, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "pop", 1, 0x7, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pop", 1, 0xfa1, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pop", 1, 0x58, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pop", 1, 0x8f, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "pop", 1, 0xfa1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "popa", 0, 0x61, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "xchg", 2, 0x90, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "xchg", 2, 0x90, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "xchg", 2, 0x86, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "xchg", 2, 0x86, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "in", 2, 0xe4, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "in", 2, 0xec, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "in", 1, 0xe4, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "in", 1, 0xec, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "out", 2, 0xe6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "out", 2, 0xee, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "out", 1, 0xe6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "out", 1, 0xee, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "lea", 2, 0x8d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "lds", 2, 0xc5, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "les", 2, 0xc4, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "lfs", 2, 0xfb4, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "lgs", 2, 0xfb5, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "lss", 2, 0xfb2, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "clc", 0, 0xf8, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cld", 0, 0xfc, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cli", 0, 0xfa, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "clts", 0, 0xf06, None, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cmc", 0, 0xf5, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "lahf", 0, 0x9f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "sahf", 0, 0x9e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pushf", 0, 0x9c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pushf", 0, 0x9c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "popf", 0, 0x9d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "popf", 0, 0x9d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "stc", 0, 0xf9, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "std", 0, 0xfd, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "sti", 0, 0xfb, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "add", 2, 0x0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "add", 2, 0x83, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "add", 2, 0x4, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "add", 2, 0x80, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "inc", 1, 0x40, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "inc", 1, 0xfe, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sub", 2, 0x28, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sub", 2, 0x83, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sub", 2, 0x2c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "sub", 2, 0x80, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "dec", 1, 0x48, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "dec", 1, 0xfe, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sbb", 2, 0x18, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sbb", 2, 0x83, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sbb", 2, 0x1c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "sbb", 2, 0x80, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "cmp", 2, 0x38, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "cmp", 2, 0x83, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "cmp", 2, 0x3c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmp", 2, 0x80, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "test", 2, 0x84, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "test", 2, 0x84, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "test", 2, 0xa8, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "test", 2, 0xf6, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "and", 2, 0x20, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "and", 2, 0x83, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "and", 2, 0x24, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "and", 2, 0x80, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "or", 2, 0x8, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "or", 2, 0x83, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "or", 2, 0xc, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "or", 2, 0x80, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "xor", 2, 0x30, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "xor", 2, 0x83, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "xor", 2, 0x34, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "xor", 2, 0x80, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "clr", 1, 0x30, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "adc", 2, 0x10, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "adc", 2, 0x83, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "adc", 2, 0x14, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "adc", 2, 0x80, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "neg", 1, 0xf6, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "not", 1, 0xf6, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "aaa", 0, 0x37, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "aas", 0, 0x3f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "daa", 0, 0x27, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "das", 0, 0x2f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "aad", 0, 0xd50a, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "aad", 1, 0xd5, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "aam", 0, 0xd40a, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "aam", 1, 0xd4, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cbw", 0, 0x98, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cdqe", 0, 0x98, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cwde", 0, 0x98, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cwd", 0, 0x99, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cdq", 0, 0x99, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cqo", 0, 0x99, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cbtw", 0, 0x98, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cltq", 0, 0x98, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cwtl", 0, 0x98, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cwtd", 0, 0x99, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cltd", 0, 0x99, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cqto", 0, 0x99, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "mul", 1, 0xf6, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "imul", 1, 0xf6, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "imul", 2, 0xfaf, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "imul", 3, 0x6b, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "imul", 3, 0x69, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "imul", 2, 0x6b, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "imul", 2, 0x69, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "div", 1, 0xf6, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "div", 2, 0xf6, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "idiv", 1, 0xf6, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "idiv", 2, 0xf6, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "rol", 2, 0xd0, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "rol", 2, 0xc0, 0x0, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "rol", 2, 0xd2, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "rol", 1, 0xd0, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "ror", 2, 0xd0, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "ror", 2, 0xc0, 0x1, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "ror", 2, 0xd2, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "ror", 1, 0xd0, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "rcl", 2, 0xd0, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "rcl", 2, 0xc0, 0x2, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "rcl", 2, 0xd2, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "rcl", 1, 0xd0, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "rcr", 2, 0xd0, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "rcr", 2, 0xc0, 0x3, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "rcr", 2, 0xd2, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "rcr", 1, 0xd0, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sal", 2, 0xd0, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sal", 2, 0xc0, 0x4, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sal", 2, 0xd2, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sal", 1, 0xd0, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "shl", 2, 0xd0, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "shl", 2, 0xc0, 0x4, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "shl", 2, 0xd2, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "shl", 1, 0xd0, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "shr", 2, 0xd0, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "shr", 2, 0xc0, 0x5, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "shr", 2, 0xd2, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "shr", 1, 0xd0, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sar", 2, 0xd0, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sar", 2, 0xc0, 0x7, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sar", 2, 0xd2, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sar", 1, 0xd0, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "shld", 3, 0xfa4, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "shld", 3, 0xfa5, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "shld", 2, 0xfa5, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "shrd", 3, 0xfac, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "shrd", 3, 0xfad, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "shrd", 2, 0xfad, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "call", 1, 0xe8, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "call", 1, 0xe8, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "call", 1, 0xe8, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
       1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "call", 1, 0xff, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "call", 1, 0xff, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-      1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+      1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0 },
-    { { { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "call", 1, 0xff, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
-      1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+      1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "call", 2, 0x9a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "call", 1, 0xff, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
       1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "lcall", 2, 0x9a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "lcall", 1, 0xff, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "jmp", 1, 0xeb, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jmp", 1, 0xeb, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jmp", 1, 0xeb, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jmp", 1, 0xff, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "jmp", 1, 0xff, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+      1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0 },
-    { { { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "jmp", 1, 0xff, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-      1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+      1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 1 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "jmp", 2, 0xea, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "jmp", 1, 0xff, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "ljmp", 2, 0xea, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "ljmp", 1, 0xff, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "ret", 0, 0xc3, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "ret", 1, 0xc2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "ret", 0, 0xc3, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "ret", 1, 0xc2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "lret", 0, 0xcb, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "lret", 1, 0xca, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "retf", 0, 0xcb, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "retf", 1, 0xca, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "enter", 2, 0xc8, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "enter", 2, 0xc8, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "leave", 0, 0xc9, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "leave", 0, 0xc9, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "jo", 1, 0x70, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jno", 1, 0x71, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jb", 1, 0x72, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jc", 1, 0x72, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jnae", 1, 0x72, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jnb", 1, 0x73, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jnc", 1, 0x73, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jae", 1, 0x73, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "je", 1, 0x74, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jz", 1, 0x74, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jne", 1, 0x75, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jnz", 1, 0x75, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jbe", 1, 0x76, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jna", 1, 0x76, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jnbe", 1, 0x77, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "ja", 1, 0x77, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "js", 1, 0x78, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jns", 1, 0x79, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jp", 1, 0x7a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jpe", 1, 0x7a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jnp", 1, 0x7b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jpo", 1, 0x7b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jl", 1, 0x7c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jnge", 1, 0x7c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jnl", 1, 0x7d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jge", 1, 0x7d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jle", 1, 0x7e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jng", 1, 0x7e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jnle", 1, 0x7f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jg", 1, 0x7f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jcxz", 1, 0xe3, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jecxz", 1, 0xe3, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "jrcxz", 1, 0xe3, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "loop", 1, 0xe2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "loop", 1, 0xe2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "loopz", 1, 0xe1, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "loopz", 1, 0xe1, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "loope", 1, 0xe1, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "loope", 1, 0xe1, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "loopnz", 1, 0xe0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "loopnz", 1, 0xe0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "loopne", 1, 0xe0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "loopne", 1, 0xe0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "seto", 1, 0xf90, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setno", 1, 0xf91, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setb", 1, 0xf92, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setc", 1, 0xf92, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setnae", 1, 0xf92, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setnb", 1, 0xf93, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setnc", 1, 0xf93, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setae", 1, 0xf93, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sete", 1, 0xf94, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setz", 1, 0xf94, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setne", 1, 0xf95, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setnz", 1, 0xf95, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setbe", 1, 0xf96, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setna", 1, 0xf96, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setnbe", 1, 0xf97, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "seta", 1, 0xf97, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sets", 1, 0xf98, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setns", 1, 0xf99, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setp", 1, 0xf9a, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setpe", 1, 0xf9a, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setnp", 1, 0xf9b, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setpo", 1, 0xf9b, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setl", 1, 0xf9c, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setnge", 1, 0xf9c, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setnl", 1, 0xf9d, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setge", 1, 0xf9d, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setle", 1, 0xf9e, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setng", 1, 0xf9e, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setnle", 1, 0xf9f, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "setg", 1, 0xf9f, 0x0, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "cmps", 0, 0xa6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cmps", 2, 0xa6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "scmp", 0, 0xa6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "scmp", 2, 0xa6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "ins", 0, 0x6c, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "ins", 2, 0x6c, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "outs", 0, 0x6e, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "outs", 2, 0x6e, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "lods", 0, 0xac, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "lods", 1, 0xac, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "lods", 2, 0xac, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "slod", 0, 0xac, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "slod", 1, 0xac, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "slod", 2, 0xac, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movs", 0, 0xa4, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "movs", 2, 0xa4, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "smov", 0, 0xa4, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "smov", 2, 0xa4, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "scas", 0, 0xae, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "scas", 1, 0xae, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "scas", 2, 0xae, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "ssca", 0, 0xae, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "ssca", 1, 0xae, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "ssca", 2, 0xae, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "stos", 0, 0xaa, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "stos", 1, 0xaa, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "stos", 2, 0xaa, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "ssto", 0, 0xaa, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "ssto", 1, 0xaa, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "ssto", 2, 0xaa, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "xlat", 0, 0xd7, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "xlat", 1, 0xd7, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "bsf", 2, 0xfbc, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "bsr", 2, 0xfbd, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "bt", 2, 0xfa3, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "bt", 2, 0xfba, 0x4, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "btc", 2, 0xfbb, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "btc", 2, 0xfba, 0x7, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "btr", 2, 0xfb3, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "btr", 2, 0xfba, 0x6, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "bts", 2, 0xfab, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "bts", 2, 0xfba, 0x5, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "int", 1, 0xcd, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "int3", 0, 0xcc, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "into", 0, 0xce, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "iret", 0, 0xcf, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rsm", 0, 0xfaa, None, 2,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "bound", 2, 0x62, None, 1,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "hlt", 0, 0xf4, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "nop", 1, 0xf1f, 0x0, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "nop", 0, 0x90, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "arpl", 2, 0x63, None, 1,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "lar", 2, 0xf02, None, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "lgdt", 1, 0xf01, 0x2, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "lgdt", 1, 0xf01, 0x2, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "lidt", 1, 0xf01, 0x3, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "lidt", 1, 0xf01, 0x3, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "lldt", 1, 0xf00, 0x2, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "lmsw", 1, 0xf01, 0x6, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "lsl", 2, 0xf03, None, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "ltr", 1, 0xf00, 0x3, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sgdt", 1, 0xf01, 0x0, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sgdt", 1, 0xf01, 0x0, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sidt", 1, 0xf01, 0x1, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sidt", 1, 0xf01, 0x1, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sldt", 1, 0xf00, 0x0, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "sldt", 1, 0xf00, 0x0, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "smsw", 1, 0xf01, 0x4, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "smsw", 1, 0xf01, 0x4, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "str", 1, 0xf00, 0x1, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "str", 1, 0xf00, 0x1, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "verr", 1, 0xf00, 0x4, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "verw", 1, 0xf00, 0x5, 2,
     { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fld", 1, 0xd9c0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fld", 1, 0xd9, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fld", 1, 0xd9c0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fld", 1, 0xdb, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fild", 1, 0xdf, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fild", 1, 0xdf, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fildll", 1, 0xdf, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fldt", 1, 0xdb, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fbld", 1, 0xdf, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fst", 1, 0xddd0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fst", 1, 0xd9, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fst", 1, 0xddd0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fist", 1, 0xdf, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fstp", 1, 0xddd8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "fstp", 1, 0xd9, 0x3, 1,
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "fstp", 1, 0xd9, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fstp", 1, 0xddd8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fstp", 1, 0xdb, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fistp", 1, 0xdf, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fistp", 1, 0xdf, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fistpll", 1, 0xdf, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fstpt", 1, 0xdb, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fbstp", 1, 0xdf, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fxch", 1, 0xd9c8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fxch", 0, 0xd9c9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fcom", 1, 0xd8d0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcom", 0, 0xd8d1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fcom", 1, 0xd8, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fcom", 1, 0xd8d0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "ficom", 1, 0xde, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fcomp", 1, 0xd8d8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcomp", 0, 0xd8d9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fcomp", 1, 0xd8, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fcomp", 1, 0xd8d8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "ficomp", 1, 0xde, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fcompp", 0, 0xded9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fucom", 1, 0xdde0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fucom", 0, 0xdde1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fucomp", 1, 0xdde8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fucomp", 0, 0xdde9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fucompp", 0, 0xdae9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "ftst", 0, 0xd9e4, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fxam", 0, 0xd9e5, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fld1", 0, 0xd9e8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fldl2t", 0, 0xd9e9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fldl2e", 0, 0xd9ea, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fldpi", 0, 0xd9eb, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fldlg2", 0, 0xd9ec, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fldln2", 0, 0xd9ed, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fldz", 0, 0xd9ee, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fadd", 2, 0xd8c0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fadd", 1, 0xd8c0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fadd", 0, 0xdec1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fadd", 1, 0xd8, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fiadd", 1, 0xde, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "faddp", 2, 0xdec0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "faddp", 1, 0xdec0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "faddp", 0, 0xdec1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "faddp", 2, 0xdec0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsub", 1, 0xd8e0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsub", 2, 0xd8e0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsub", 0, 0xdee1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fsub", 0, 0xdee9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fsub", 2, 0xd8e0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsub", 1, 0xd8, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fisub", 1, 0xde, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fsubp", 2, 0xdee0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubp", 1, 0xdee0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubp", 0, 0xdee1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fsubp", 2, 0xdee0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubp", 2, 0xdee9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubp", 2, 0xdee8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubp", 1, 0xdee8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubp", 0, 0xdee9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fsubr", 1, 0xd8e8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubr", 2, 0xd8e8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubr", 0, 0xdee9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fsubr", 0, 0xdee1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fsubr", 2, 0xd8e8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubr", 1, 0xd8, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fisubr", 1, 0xde, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fsubrp", 2, 0xdee8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubrp", 1, 0xdee8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubrp", 0, 0xdee9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fsubrp", 2, 0xdee8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubrp", 2, 0xdee0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubrp", 2, 0xdee0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubrp", 1, 0xdee0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fsubrp", 0, 0xdee1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fmul", 2, 0xd8c8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fmul", 1, 0xd8c8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fmul", 0, 0xdec9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fmul", 1, 0xd8, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fimul", 1, 0xde, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fmulp", 2, 0xdec8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fmulp", 1, 0xdec8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fmulp", 0, 0xdec9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fmulp", 2, 0xdec8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdiv", 1, 0xd8f0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdiv", 2, 0xd8f0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdiv", 0, 0xdef1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fdiv", 0, 0xdef9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fdiv", 2, 0xd8f0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdiv", 1, 0xd8, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fidiv", 1, 0xde, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fdivp", 2, 0xdef0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivp", 1, 0xdef0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivp", 0, 0xdef1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fdivp", 2, 0xdef0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivp", 2, 0xdef8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivp", 2, 0xdef8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivp", 1, 0xdef8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivp", 0, 0xdef9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fdivr", 1, 0xd8f8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivr", 2, 0xd8f8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivr", 0, 0xdef9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fdivr", 0, 0xdef1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fdivr", 2, 0xd8f8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivr", 1, 0xd8, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fidivr", 1, 0xde, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fdivrp", 2, 0xdef8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivrp", 1, 0xdef8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivrp", 0, 0xdef9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 1, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fdivrp", 2, 0xdef8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivrp", 2, 0xdef0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivrp", 2, 0xdef0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivrp", 1, 0xdef0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fdivrp", 0, 0xdef1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "f2xm1", 0, 0xd9f0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fyl2x", 0, 0xd9f1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fptan", 0, 0xd9f2, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fpatan", 0, 0xd9f3, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fxtract", 0, 0xd9f4, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fprem1", 0, 0xd9f5, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fdecstp", 0, 0xd9f6, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fincstp", 0, 0xd9f7, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fprem", 0, 0xd9f8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fyl2xp1", 0, 0xd9f9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fsqrt", 0, 0xd9fa, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fsincos", 0, 0xd9fb, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "frndint", 0, 0xd9fc, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fscale", 0, 0xd9fd, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fsin", 0, 0xd9fe, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fcos", 0, 0xd9ff, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fchs", 0, 0xd9e0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fabs", 0, 0xd9e1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fninit", 0, 0xdbe3, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "finit", 0, 0xdbe3, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fldcw", 1, 0xd9, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fnstcw", 1, 0xd9, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fstcw", 1, 0xd9, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fnstsw", 1, 0xdfe0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fnstsw", 1, 0xdd, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fnstsw", 0, 0xdfe0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fstsw", 1, 0xdfe0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fstsw", 1, 0xdd, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fstsw", 0, 0xdfe0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fnclex", 0, 0xdbe2, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fclex", 0, 0xdbe2, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fnstenv", 1, 0xd9, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fstenv", 1, 0xd9, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
       0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fldenv", 1, 0xd9, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fnsave", 1, 0xdd, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fsave", 1, 0xdd, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
       0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "frstor", 1, 0xdd, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fneni", 0, 0xdbe0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "feni", 0, 0xdbe0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fndisi", 0, 0xdbe1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fdisi", 0, 0xdbe1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fnsetpm", 0, 0xdbe4, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fsetpm", 0, 0xdbe4, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "frstpm", 0, 0xdbe5, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "ffree", 1, 0xddc0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "ffreep", 1, 0xdfc0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fnop", 0, 0xd9d0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fwait", 0, 0x9b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "addr16", 0, 0x67, None, 1,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "addr32", 0, 0x67, None, 1,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "aword", 0, 0x67, None, 1,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "adword", 0, 0x67, None, 1,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "data16", 0, 0x66, None, 1,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "data32", 0, 0x66, None, 1,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "word", 0, 0x66, None, 1,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "dword", 0, 0x66, None, 1,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "lock", 0, 0xf0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "wait", 0, 0x9b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cs", 0, 0x2e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "ds", 0, 0x3e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "es", 0, 0x26, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fs", 0, 0x64, None, 1,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "gs", 0, 0x65, None, 1,
     { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "ss", 0, 0x36, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rep", 0, 0xf3, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "repe", 0, 0xf3, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "repz", 0, 0xf3, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "repne", 0, 0xf2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "repnz", 0, 0xf2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "ht", 0, 0x3e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "hnt", 0, 0x2e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex", 0, 0x40, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rexz", 0, 0x41, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rexy", 0, 0x42, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rexyz", 0, 0x43, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rexx", 0, 0x44, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rexxz", 0, 0x45, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rexxy", 0, 0x46, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rexxyz", 0, 0x47, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex64", 0, 0x48, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex64z", 0, 0x49, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex64y", 0, 0x4a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex64yz", 0, 0x4b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex64x", 0, 0x4c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex64xz", 0, 0x4d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex64xy", 0, 0x4e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex64xyz", 0, 0x4f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.b", 0, 0x41, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.x", 0, 0x42, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.xb", 0, 0x43, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.r", 0, 0x44, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.rb", 0, 0x45, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.rx", 0, 0x46, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.rxb", 0, 0x47, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.w", 0, 0x48, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.wb", 0, 0x49, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.wx", 0, 0x4a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.wxb", 0, 0x4b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.wr", 0, 0x4c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.wrb", 0, 0x4d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.wrx", 0, 0x4e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rex.wrxb", 0, 0x4f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "{disp8}", 0, 0x0, None, 0,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "{disp32}", 0, 0x1, None, 0,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "{load}", 0, 0x2, None, 0,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "{store}", 0, 0x3, None, 0,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "{vex2}", 0, 0x4, None, 0,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "{vex3}", 0, 0x5, None, 0,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "{evex}", 0, 0x6, None, 0,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "bswap", 1, 0xfc8, None, 2,
     { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "xadd", 2, 0xfc0, None, 2,
     { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "cmpxchg", 2, 0xfb0, None, 2,
     { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "invd", 0, 0xf08, None, 2,
     { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "wbinvd", 0, 0xf09, None, 2,
     { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "invlpg", 1, 0xf01, 0x7, 2,
     { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+	  0, 0, 0 } } } },
   { "cpuid", 0, 0xfa2, None, 2,
     { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "wrmsr", 0, 0xf30, None, 2,
     { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rdtsc", 0, 0xf31, None, 2,
     { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rdmsr", 0, 0xf32, None, 2,
     { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cmpxchg8b", 1, 0xfc7, 0x1, 2,
     { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-      1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "sysenter", 0, 0xf34, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "sysexit", 0, 0xf35, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fxsave", 1, 0xfae, 0x0, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fxsave64", 1, 0xfae, 0x0, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-      1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fxrstor", 1, 0xfae, 0x1, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fxrstor64", 1, 0xfae, 0x1, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-      1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "rdpmc", 0, 0xf33, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "ud2", 0, 0xf0b, None, 2,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "ud2a", 0, 0xf0b, None, 2,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "ud1", 0, 0xfb9, None, 2,
+	  0, 0, 0 } } } },
+  { "ud1", 2, 0xfb9, None, 2,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "ud2b", 0, 0xfb9, None, 2,
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "ud2b", 2, 0xfb9, None, 2,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "ud0", 2, 0xfff, None, 2,
+    { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovo", 2, 0xf40, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovno", 2, 0xf41, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovb", 2, 0xf42, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovc", 2, 0xf42, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovnae", 2, 0xf42, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovae", 2, 0xf43, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovnc", 2, 0xf43, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovnb", 2, 0xf43, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmove", 2, 0xf44, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovz", 2, 0xf44, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovne", 2, 0xf45, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovnz", 2, 0xf45, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovbe", 2, 0xf46, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovna", 2, 0xf46, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmova", 2, 0xf47, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovnbe", 2, 0xf47, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovs", 2, 0xf48, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovns", 2, 0xf49, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovp", 2, 0xf4a, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovnp", 2, 0xf4b, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovl", 2, 0xf4c, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovnge", 2, 0xf4c, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovge", 2, 0xf4d, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovnl", 2, 0xf4d, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovle", 2, 0xf4e, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovng", 2, 0xf4e, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovg", 2, 0xf4f, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovnle", 2, 0xf4f, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovpe", 2, 0xf4a, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmovpo", 2, 0xf4b, None, 2,
     { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcmovb", 2, 0xdac0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcmovnae", 2, 0xdac0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcmove", 2, 0xdac8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcmovbe", 2, 0xdad0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcmovna", 2, 0xdad0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcmovu", 2, 0xdad8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcmovae", 2, 0xdbc0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcmovnb", 2, 0xdbc0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcmovne", 2, 0xdbc8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcmova", 2, 0xdbd0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcmovnbe", 2, 0xdbd0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcmovnu", 2, 0xdbd8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcomi", 2, 0xdbf0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcomi", 0, 0xdbf1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fcomi", 1, 0xdbf0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fucomi", 2, 0xdbe8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fucomi", 0, 0xdbe9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fucomi", 1, 0xdbe8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcomip", 2, 0xdff0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcomip", 0, 0xdff1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fcomip", 1, 0xdff0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcompi", 2, 0xdff0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fcompi", 0, 0xdff1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fcompi", 1, 0xdff0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fucomip", 2, 0xdfe8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fucomip", 0, 0xdfe9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fucomip", 1, 0xdfe8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fucompi", 2, 0xdfe8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "fucompi", 0, 0xdfe9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "fucompi", 1, 0xdfe8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movnti", 2, 0xfc3, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "clflush", 1, 0xfae, 0x7, 2,
     { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+	  0, 0, 0 } } } },
   { "lfence", 0, 0xfae, 0xe8, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "mfence", 0, 0xfae, 0xf0, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pause", 0, 0xf390, None, 2,
     { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "emms", 0, 0xf77, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "movd", 2, 0x666e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movd", 2, 0x666e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movd", 2, 0x667e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movd", 2, 0x667e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movd", 2, 0x660f6e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movd", 2, 0x660f6e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movd", 2, 0x660f7e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movd", 2, 0x660f7e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movd", 2, 0xf6e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "movd", 2, 0xf6e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "movd", 2, 0xf7e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movd", 2, 0xf7e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0xa0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
-    { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
+    { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0x88, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0xc6, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0xb0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0xf37e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0x66d6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0x666e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0x667e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0xf30f7e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0x660fd6, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0x660f6e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0x660f7e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0xf6f, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "movq", 2, 0xf7f, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0xf6e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "movq", 2, 0xf7e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0x8c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0x8e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "movq", 2, 0xf20, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movq", 2, 0xf21, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "packssdw", 2, 0x666b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "packssdw", 2, 0x660f6b, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "packssdw", 2, 0xf6b, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "packsswb", 2, 0x6663, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "packsswb", 2, 0x660f63, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "packsswb", 2, 0xf63, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "packuswb", 2, 0x6667, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "packuswb", 2, 0x660f67, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "packuswb", 2, 0xf67, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "paddb", 2, 0x66fc, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddb", 2, 0x660ffc, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddb", 2, 0xffc, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "paddw", 2, 0x66fd, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddw", 2, 0x660ffd, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddw", 2, 0xffd, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "paddd", 2, 0x66fe, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddd", 2, 0x660ffe, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddd", 2, 0xffe, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "paddq", 2, 0x66d4, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddq", 2, 0x660fd4, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddq", 2, 0xfd4, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "paddsb", 2, 0x66ec, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddsb", 2, 0x660fec, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddsb", 2, 0xfec, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "paddsw", 2, 0x66ed, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddsw", 2, 0x660fed, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddsw", 2, 0xfed, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "paddusb", 2, 0x66dc, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddusb", 2, 0x660fdc, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddusb", 2, 0xfdc, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "paddusw", 2, 0x66dd, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddusw", 2, 0x660fdd, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "paddusw", 2, 0xfdd, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pand", 2, 0x66db, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pand", 2, 0x660fdb, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pand", 2, 0xfdb, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pandn", 2, 0x66df, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pandn", 2, 0x660fdf, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pandn", 2, 0xfdf, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pcmpeqb", 2, 0x6674, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpeqb", 2, 0x660f74, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpeqb", 2, 0xf74, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pcmpeqw", 2, 0x6675, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpeqw", 2, 0x660f75, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpeqw", 2, 0xf75, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pcmpeqd", 2, 0x6676, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpeqd", 2, 0x660f76, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpeqd", 2, 0xf76, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pcmpgtb", 2, 0x6664, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpgtb", 2, 0x660f64, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpgtb", 2, 0xf64, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pcmpgtw", 2, 0x6665, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpgtw", 2, 0x660f65, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpgtw", 2, 0xf65, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pcmpgtd", 2, 0x6666, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpgtd", 2, 0x660f66, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpgtd", 2, 0xf66, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pmaddwd", 2, 0x66f5, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaddwd", 2, 0x660ff5, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaddwd", 2, 0xff5, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pmulhw", 2, 0x66e5, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmulhw", 2, 0x660fe5, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmulhw", 2, 0xfe5, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pmullw", 2, 0x66d5, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmullw", 2, 0x660fd5, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmullw", 2, 0xfd5, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "por", 2, 0x66eb, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "por", 2, 0x660feb, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "por", 2, 0xfeb, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psllw", 2, 0x6671, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 2, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psllw", 2, 0x66f1, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psllw", 2, 0x660f71, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psllw", 2, 0x660ff1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psllw", 2, 0xf71, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psllw", 2, 0xff1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pslld", 2, 0x6672, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 2, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pslld", 2, 0x66f2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pslld", 2, 0x660f72, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pslld", 2, 0x660ff2, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pslld", 2, 0xf72, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pslld", 2, 0xff2, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psllq", 2, 0x6673, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 2, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psllq", 2, 0x66f3, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psllq", 2, 0x660f73, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psllq", 2, 0x660ff3, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psllq", 2, 0xf73, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psllq", 2, 0xff3, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psraw", 2, 0x6671, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 2, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psraw", 2, 0x66e1, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psraw", 2, 0x660f71, 0x4, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psraw", 2, 0x660fe1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psraw", 2, 0xf71, 0x4, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psraw", 2, 0xfe1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psrad", 2, 0x6672, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 2, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrad", 2, 0x66e2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrad", 2, 0x660f72, 0x4, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrad", 2, 0x660fe2, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrad", 2, 0xf72, 0x4, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psrad", 2, 0xfe2, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psrlw", 2, 0x6671, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 2, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrlw", 2, 0x66d1, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrlw", 2, 0x660f71, 0x2, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrlw", 2, 0x660fd1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrlw", 2, 0xf71, 0x2, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psrlw", 2, 0xfd1, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psrld", 2, 0x6672, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 2, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrld", 2, 0x66d2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrld", 2, 0x660f72, 0x2, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrld", 2, 0x660fd2, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrld", 2, 0xf72, 0x2, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psrld", 2, 0xfd2, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psrlq", 2, 0x6673, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 2, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrlq", 2, 0x66d3, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrlq", 2, 0x660f73, 0x2, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrlq", 2, 0x660fd3, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrlq", 2, 0xf73, 0x2, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psrlq", 2, 0xfd3, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psubb", 2, 0x66f8, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubb", 2, 0x660ff8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubb", 2, 0xff8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psubw", 2, 0x66f9, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubw", 2, 0x660ff9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubw", 2, 0xff9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psubd", 2, 0x66fa, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubd", 2, 0x660ffa, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubd", 2, 0xffa, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psubq", 2, 0x66fb, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubq", 2, 0x660ffb, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubq", 2, 0xffb, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psubsb", 2, 0x66e8, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubsb", 2, 0x660fe8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubsb", 2, 0xfe8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psubsw", 2, 0x66e9, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubsw", 2, 0x660fe9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubsw", 2, 0xfe9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psubusb", 2, 0x66d8, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubusb", 2, 0x660fd8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubusb", 2, 0xfd8, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psubusw", 2, 0x66d9, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubusw", 2, 0x660fd9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psubusw", 2, 0xfd9, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "punpckhbw", 2, 0x6668, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpckhbw", 2, 0x660f68, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpckhbw", 2, 0xf68, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "punpckhwd", 2, 0x6669, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpckhwd", 2, 0x660f69, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpckhwd", 2, 0xf69, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "punpckhdq", 2, 0x666a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpckhdq", 2, 0x660f6a, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpckhdq", 2, 0xf6a, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "punpcklbw", 2, 0x6660, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpcklbw", 2, 0x660f60, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpcklbw", 2, 0xf60, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "punpcklwd", 2, 0x6661, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpcklwd", 2, 0x660f61, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpcklwd", 2, 0xf61, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "punpckldq", 2, 0x6662, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpckldq", 2, 0x660f62, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpckldq", 2, 0xf62, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pxor", 2, 0x66ef, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pxor", 2, 0x660fef, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pxor", 2, 0xfef, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "addps", 2, 0x58, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "addps", 2, 0xf58, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "addss", 2, 0xf358, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "addss", 2, 0xf30f58, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "andnps", 2, 0x55, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "andnps", 2, 0xf55, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "andps", 2, 0x54, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "andps", 2, 0xf54, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpeqps", 2, 0xc2, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpeqps", 2, 0xfc2, 0x0, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpeqss", 2, 0xf3c2, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpeqss", 2, 0xf30fc2, 0x0, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpleps", 2, 0xc2, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpleps", 2, 0xfc2, 0x2, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpless", 2, 0xf3c2, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpless", 2, 0xf30fc2, 0x2, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpltps", 2, 0xc2, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpltps", 2, 0xfc2, 0x1, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpltss", 2, 0xf3c2, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpltss", 2, 0xf30fc2, 0x1, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpneqps", 2, 0xc2, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpneqps", 2, 0xfc2, 0x4, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpneqss", 2, 0xf3c2, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpneqss", 2, 0xf30fc2, 0x4, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnleps", 2, 0xc2, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnleps", 2, 0xfc2, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnless", 2, 0xf3c2, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnless", 2, 0xf30fc2, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnltps", 2, 0xc2, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnltps", 2, 0xfc2, 0x5, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnltss", 2, 0xf3c2, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnltss", 2, 0xf30fc2, 0x5, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpordps", 2, 0xc2, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpordps", 2, 0xfc2, 0x7, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpordss", 2, 0xf3c2, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpordss", 2, 0xf30fc2, 0x7, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpunordps", 2, 0xc2, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpunordps", 2, 0xfc2, 0x3, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpunordss", 2, 0xf3c2, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpunordss", 2, 0xf30fc2, 0x3, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpps", 3, 0xc2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpps", 3, 0xfc2, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpss", 3, 0xf3c2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpss", 3, 0xf30fc2, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "comiss", 2, 0x2f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "comiss", 2, 0xf2f, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtpi2ps", 2, 0xf2a, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtps2pi", 2, 0xf2d, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cvtsi2ss", 2, 0xf32a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtsi2ss", 2, 0xf32a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtsi2ss", 2, 0xf30f2a, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtsi2ss", 2, 0xf30f2a, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtss2si", 2, 0xf32d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtss2si", 2, 0xf30f2d, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvttps2pi", 2, 0xf2c, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cvttss2si", 2, 0xf32c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvttss2si", 2, 0xf30f2c, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "divps", 2, 0x5e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "divps", 2, 0xf5e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "divss", 2, 0xf35e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "divss", 2, 0xf30f5e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "ldmxcsr", 1, 0xae, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "ldmxcsr", 1, 0xfae, 0x2, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "maskmovq", 2, 0xff7, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "maxps", 2, 0x5f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "maxps", 2, 0xf5f, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "maxss", 2, 0xf35f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "maxss", 2, 0xf30f5f, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "minps", 2, 0x5d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "minps", 2, 0xf5d, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "minss", 2, 0xf35d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "minss", 2, 0xf30f5d, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movaps", 2, 0x28, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movaps", 2, 0x29, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movaps", 2, 0xf28, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movaps", 2, 0xf29, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movhlps", 2, 0x12, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movhlps", 2, 0xf12, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movhps", 2, 0x16, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movhps", 2, 0x17, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movhps", 2, 0xf16, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movhps", 2, 0xf17, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movlhps", 2, 0x16, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movlhps", 2, 0xf16, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movlps", 2, 0x12, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movlps", 2, 0x13, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movlps", 2, 0xf12, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movlps", 2, 0xf13, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movmskps", 2, 0x50, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movmskps", 2, 0xf50, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movntps", 2, 0x2b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movntps", 2, 0xf2b, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movntq", 2, 0xfe7, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movntdq", 2, 0x66e7, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movntdq", 2, 0x660fe7, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movss", 2, 0xf311, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movss", 2, 0xf310, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movss", 2, 0xf310, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movss", 2, 0xf311, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movss", 2, 0xf30f10, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movss", 2, 0xf30f11, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movups", 2, 0x10, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movups", 2, 0x11, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movups", 2, 0xf10, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movups", 2, 0xf11, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "mulps", 2, 0x59, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mulps", 2, 0xf59, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mulss", 2, 0xf359, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mulss", 2, 0xf30f59, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "orps", 2, 0x56, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "orps", 2, 0xf56, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pavgb", 2, 0xfe0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pavgb", 2, 0x66e0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pavgb", 2, 0x660fe0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pavgw", 2, 0xfe3, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pavgw", 2, 0x66e3, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pavgw", 2, 0x660fe3, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pextrw", 3, 0x66c5, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pextrw", 3, 0x6615, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pextrw", 3, 0x6615, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "pextrw", 3, 0x660fc5, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pextrw", 3, 0x660f3a15, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pextrw", 3, 0x660f3a15, None, 3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "pextrw", 3, 0xfc5, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pinsrw", 3, 0x66c4, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pinsrw", 3, 0x66c4, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pinsrw", 3, 0x660fc4, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pinsrw", 3, 0x660fc4, None, 2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pinsrw", 3, 0xfc4, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pinsrw", 3, 0xfc4, None, 2,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pmaxsw", 2, 0x66ee, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaxsw", 2, 0x660fee, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaxsw", 2, 0xfee, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pmaxub", 2, 0x66de, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaxub", 2, 0x660fde, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaxub", 2, 0xfde, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pminsw", 2, 0x66ea, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pminsw", 2, 0x660fea, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pminsw", 2, 0xfea, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pminub", 2, 0x66da, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pminub", 2, 0x660fda, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pminub", 2, 0xfda, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pmovmskb", 2, 0x66d7, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovmskb", 2, 0x660fd7, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovmskb", 2, 0xfd7, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmulhuw", 2, 0x66e4, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmulhuw", 2, 0x660fe4, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmulhuw", 2, 0xfe4, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "prefetchnta", 1, 0xf18, 0x0, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+	  0, 0, 0 } } } },
   { "prefetcht0", 1, 0xf18, 0x1, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+	  0, 0, 0 } } } },
   { "prefetcht1", 1, 0xf18, 0x2, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+	  0, 0, 0 } } } },
   { "prefetcht2", 1, 0xf18, 0x3, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+	  0, 0, 0 } } } },
   { "psadbw", 2, 0xff6, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psadbw", 2, 0x66f6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psadbw", 2, 0x660ff6, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pshufw", 3, 0xf70, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "rcpps", 2, 0x53, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "rcpps", 2, 0xf53, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "rcpss", 2, 0xf353, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "rcpss", 2, 0xf30f53, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "rsqrtps", 2, 0x52, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "rsqrtps", 2, 0xf52, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "rsqrtss", 2, 0xf352, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "rsqrtss", 2, 0xf30f52, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "sfence", 0, 0xfae, 0xf8, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "shufps", 3, 0xc6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "shufps", 3, 0xfc6, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "sqrtps", 2, 0x51, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "sqrtps", 2, 0xf51, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "sqrtss", 2, 0xf351, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "sqrtss", 2, 0xf30f51, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "stmxcsr", 1, 0xae, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "stmxcsr", 1, 0xfae, 0x3, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "subps", 2, 0x5c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "subps", 2, 0xf5c, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "subss", 2, 0xf35c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "subss", 2, 0xf30f5c, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "ucomiss", 2, 0x2e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "ucomiss", 2, 0xf2e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "unpckhps", 2, 0x15, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "unpckhps", 2, 0xf15, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "unpcklps", 2, 0x14, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "unpcklps", 2, 0xf14, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "xorps", 2, 0x57, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "xorps", 2, 0xf57, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "addpd", 2, 0x6658, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "addpd", 2, 0x660f58, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "addsd", 2, 0xf258, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "addsd", 2, 0xf20f58, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "andnpd", 2, 0x6655, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "andnpd", 2, 0x660f55, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "andpd", 2, 0x6654, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "andpd", 2, 0x660f54, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpeqpd", 2, 0x66c2, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpeqpd", 2, 0x660fc2, 0x0, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpeqsd", 2, 0xf2c2, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpeqsd", 2, 0xf20fc2, 0x0, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmplepd", 2, 0x66c2, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmplepd", 2, 0x660fc2, 0x2, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmplesd", 2, 0xf2c2, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmplesd", 2, 0xf20fc2, 0x2, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpltpd", 2, 0x66c2, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpltpd", 2, 0x660fc2, 0x1, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpltsd", 2, 0xf2c2, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpltsd", 2, 0xf20fc2, 0x1, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpneqpd", 2, 0x66c2, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpneqpd", 2, 0x660fc2, 0x4, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpneqsd", 2, 0xf2c2, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpneqsd", 2, 0xf20fc2, 0x4, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnlepd", 2, 0x66c2, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnlepd", 2, 0x660fc2, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnlesd", 2, 0xf2c2, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnlesd", 2, 0xf20fc2, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnltpd", 2, 0x66c2, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnltpd", 2, 0x660fc2, 0x5, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnltsd", 2, 0xf2c2, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpnltsd", 2, 0xf20fc2, 0x5, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpordpd", 2, 0x66c2, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpordpd", 2, 0x660fc2, 0x7, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpordsd", 2, 0xf2c2, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpordsd", 2, 0xf20fc2, 0x7, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpunordpd", 2, 0x66c2, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpunordpd", 2, 0x660fc2, 0x3, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpunordsd", 2, 0xf2c2, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpunordsd", 2, 0xf20fc2, 0x3, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmppd", 3, 0x66c2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmppd", 3, 0x660fc2, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpsd", 0, 0xa7, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cmpsd", 2, 0xa7, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "cmpsd", 3, 0xf2c2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpsd", 3, 0xf20fc2, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "comisd", 2, 0x662f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "comisd", 2, 0x660f2f, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtpi2pd", 2, 0x660f2a, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtsi2sd", 2, 0xf22a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtsi2sd", 2, 0xf22a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtsi2sd", 2, 0xf20f2a, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtsi2sd", 2, 0xf20f2a, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "divpd", 2, 0x665e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "divpd", 2, 0x660f5e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "divsd", 2, 0xf25e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "divsd", 2, 0xf20f5e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "maxpd", 2, 0x665f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "maxpd", 2, 0x660f5f, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "maxsd", 2, 0xf25f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "maxsd", 2, 0xf20f5f, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "minpd", 2, 0x665d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "minpd", 2, 0x660f5d, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "minsd", 2, 0xf25d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "minsd", 2, 0xf20f5d, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movapd", 2, 0x6628, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movapd", 2, 0x6629, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movapd", 2, 0x660f28, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movapd", 2, 0x660f29, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movhpd", 2, 0x6616, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movhpd", 2, 0x6617, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movhpd", 2, 0x660f16, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movhpd", 2, 0x660f17, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movlpd", 2, 0x6612, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movlpd", 2, 0x6613, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movlpd", 2, 0x660f12, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movlpd", 2, 0x660f13, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movmskpd", 2, 0x6650, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movmskpd", 2, 0x660f50, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movntpd", 2, 0x662b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movntpd", 2, 0x660f2b, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movsd", 0, 0xa5, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "movsd", 2, 0xa5, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movsd", 2, 0xf211, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movsd", 2, 0xf210, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movsd", 2, 0xf210, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movsd", 2, 0xf211, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "movsd", 2, 0xf20f10, None, 2,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "movsd", 2, 0xf20f10, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movsd", 2, 0xf20f11, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movupd", 2, 0x6610, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movupd", 2, 0x6611, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movupd", 2, 0x660f10, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movupd", 2, 0x660f11, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "mulpd", 2, 0x6659, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mulpd", 2, 0x660f59, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mulsd", 2, 0xf259, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mulsd", 2, 0xf20f59, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "orpd", 2, 0x6656, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "orpd", 2, 0x660f56, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "shufpd", 3, 0x66c6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "shufpd", 3, 0x660fc6, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "sqrtpd", 2, 0x6651, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "sqrtpd", 2, 0x660f51, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "sqrtsd", 2, 0xf251, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "sqrtsd", 2, 0xf20f51, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "subpd", 2, 0x665c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "subpd", 2, 0x660f5c, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "subsd", 2, 0xf25c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "subsd", 2, 0xf20f5c, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "ucomisd", 2, 0x662e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "ucomisd", 2, 0x660f2e, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "unpckhpd", 2, 0x6615, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "unpckhpd", 2, 0x660f15, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "unpcklpd", 2, 0x6614, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "unpcklpd", 2, 0x660f14, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "xorpd", 2, 0x6657, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "xorpd", 2, 0x660f57, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtdq2pd", 2, 0xf3e6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtdq2pd", 2, 0xf30fe6, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtpd2dq", 2, 0xf2e6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtpd2dq", 2, 0xf20fe6, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtdq2ps", 2, 0x5b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtdq2ps", 2, 0xf5b, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtpd2pi", 2, 0x660f2d, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cvtpd2ps", 2, 0x665a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtpd2ps", 2, 0x660f5a, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtps2pd", 2, 0x5a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtps2pd", 2, 0xf5a, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtps2dq", 2, 0x665b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtps2dq", 2, 0x660f5b, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtsd2si", 2, 0xf22d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtsd2si", 2, 0xf20f2d, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtsd2ss", 2, 0xf25a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtsd2ss", 2, 0xf20f5a, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtss2sd", 2, 0xf35a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvtss2sd", 2, 0xf30f5a, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvttpd2pi", 2, 0x660f2c, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "cvttsd2si", 2, 0xf22c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvttsd2si", 2, 0xf20f2c, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvttpd2dq", 2, 0x66e6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvttpd2dq", 2, 0x660fe6, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvttps2dq", 2, 0xf35b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cvttps2dq", 2, 0xf30f5b, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "maskmovdqu", 2, 0x66f7, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "maskmovdqu", 2, 0x660ff7, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movdqa", 2, 0x666f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movdqa", 2, 0x667f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movdqa", 2, 0x660f6f, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movdqa", 2, 0x660f7f, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movdqu", 2, 0xf36f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movdqu", 2, 0xf37f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movdqu", 2, 0xf30f6f, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movdqu", 2, 0xf30f7f, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "movdq2q", 2, 0xf20fd6, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "movq2dq", 2, 0xf30fd6, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmuludq", 2, 0x66f4, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmuludq", 2, 0x660ff4, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmuludq", 2, 0xff4, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pshufd", 3, 0x6670, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pshufd", 3, 0x660f70, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pshufhw", 3, 0xf370, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pshufhw", 3, 0xf30f70, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pshuflw", 3, 0xf270, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pshuflw", 3, 0xf20f70, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pslldq", 2, 0x6673, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 2, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pslldq", 2, 0x660f73, 0x7, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrldq", 2, 0x6673, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 2, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psrldq", 2, 0x660f73, 0x3, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpckhqdq", 2, 0x666d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpckhqdq", 2, 0x660f6d, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpcklqdq", 2, 0x666c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "punpcklqdq", 2, 0x660f6c, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "addsubpd", 2, 0x66d0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "addsubpd", 2, 0x660fd0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "addsubps", 2, 0xf2d0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "addsubps", 2, 0xf20fd0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "cmpxchg16b", 1, 0xfc7, 0x1, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fisttp", 1, 0xdf, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fisttp", 1, 0xdd, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "fisttpll", 1, 0xdd, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "haddpd", 2, 0x667c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "haddpd", 2, 0x660f7c, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "haddps", 2, 0xf27c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "haddps", 2, 0xf20f7c, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "hsubpd", 2, 0x667d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "hsubpd", 2, 0x660f7d, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "hsubps", 2, 0xf27d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "hsubps", 2, 0xf20f7d, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "lddqu", 2, 0xf2f0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "lddqu", 2, 0xf20ff0, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "monitor", 0, 0xf01, 0xc8, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "monitor", 3, 0xf01, 0xc8, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "monitor", 3, 0xf01, 0xc8, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movddup", 2, 0xf212, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movddup", 2, 0xf20f12, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movshdup", 2, 0xf316, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movshdup", 2, 0xf30f16, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movsldup", 2, 0xf312, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movsldup", 2, 0xf30f12, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mwait", 0, 0xf01, 0xc9, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "mwait", 2, 0xf01, 0xc9, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mwait", 2, 0xf01, 0xc9, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vmcall", 0, 0xf01, 0xc1, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vmclear", 1, 0x660fc7, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "vmlaunch", 0, 0xf01, 0xc2, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vmresume", 0, 0xf01, 0xc3, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vmptrld", 1, 0xfc7, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "vmptrst", 1, 0xfc7, 0x7, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "vmread", 2, 0xf78, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "vmread", 2, 0xf78, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "vmwrite", 2, 0xf79, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vmwrite", 2, 0xf79, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vmxoff", 0, 0xf01, 0xc4, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vmxon", 1, 0xf30fc7, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "vmfunc", 0, 0xf01, 0xd4, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "getsec", 0, 0xf37, None, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "invept", 2, 0x660f3880, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "invept", 2, 0x660f3880, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "invvpid", 2, 0x660f3881, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "invvpid", 2, 0x660f3881, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "invpcid", 2, 0x660f3882, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "invpcid", 2, 0x660f3882, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "phaddw", 2, 0x6601, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "phaddw", 2, 0x660f3801, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "phaddw", 2, 0xf3801, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "phaddd", 2, 0x6602, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "phaddd", 2, 0x660f3802, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "phaddd", 2, 0xf3802, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "phaddsw", 2, 0x6603, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "phaddsw", 2, 0x660f3803, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "phaddsw", 2, 0xf3803, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "phsubw", 2, 0x6605, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "phsubw", 2, 0x660f3805, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "phsubw", 2, 0xf3805, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "phsubd", 2, 0x6606, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "phsubd", 2, 0x660f3806, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "phsubd", 2, 0xf3806, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "phsubsw", 2, 0x6607, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "phsubsw", 2, 0x660f3807, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "phsubsw", 2, 0xf3807, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pmaddubsw", 2, 0x6604, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaddubsw", 2, 0x660f3804, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaddubsw", 2, 0xf3804, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pmulhrsw", 2, 0x660b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmulhrsw", 2, 0x660f380b, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmulhrsw", 2, 0xf380b, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pshufb", 2, 0x6600, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pshufb", 2, 0x660f3800, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pshufb", 2, 0xf3800, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psignb", 2, 0x6608, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psignb", 2, 0x660f3808, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psignb", 2, 0xf3808, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psignw", 2, 0x6609, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psignw", 2, 0x660f3809, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psignw", 2, 0xf3809, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "psignd", 2, 0x660a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psignd", 2, 0x660f380a, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "psignd", 2, 0xf380a, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "palignr", 3, 0x660f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "palignr", 3, 0x660f3a0f, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "palignr", 3, 0xf3a0f, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pabsb", 2, 0x661c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pabsb", 2, 0x660f381c, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pabsb", 2, 0xf381c, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pabsw", 2, 0x661d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pabsw", 2, 0x660f381d, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pabsw", 2, 0xf381d, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "pabsd", 2, 0x661e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pabsd", 2, 0x660f381e, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pabsd", 2, 0xf381e, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "blendpd", 3, 0x660d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "blendpd", 3, 0x660f3a0d, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "blendps", 3, 0x660c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "blendps", 3, 0x660f3a0c, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "blendvpd", 3, 0x664b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "blendvpd", 2, 0x664b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "blendvpd", 3, 0x660f3815, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "blendvpd", 2, 0x660f3815, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "blendvps", 3, 0x664a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "blendvps", 2, 0x664a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "blendvps", 3, 0x660f3814, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "blendvps", 2, 0x660f3814, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "dppd", 3, 0x6641, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "dppd", 3, 0x660f3a41, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "dpps", 3, 0x6640, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "dpps", 3, 0x660f3a40, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "extractps", 3, 0x6617, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "extractps", 3, 0x6617, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "extractps", 3, 0x660f3a17, None, 3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "extractps", 3, 0x660f3a17, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "insertps", 3, 0x6621, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "insertps", 3, 0x660f3a21, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movntdqa", 2, 0x662a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "movntdqa", 2, 0x660f382a, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mpsadbw", 3, 0x6642, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "mpsadbw", 3, 0x660f3a42, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "packusdw", 2, 0x662b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "packusdw", 2, 0x660f382b, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pblendvb", 3, 0x664c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pblendvb", 2, 0x664c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pblendvb", 3, 0x660f3810, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pblendvb", 2, 0x660f3810, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pblendw", 3, 0x660e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pblendw", 3, 0x660f3a0e, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpeqq", 2, 0x6629, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpeqq", 2, 0x660f3829, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pextrb", 3, 0x6614, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pextrb", 3, 0x6614, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "pextrb", 3, 0x660f3a14, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pextrb", 3, 0x660f3a14, None, 3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "pextrd", 3, 0x6616, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 0, 0 } },
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "pextrd", 3, 0x660f3a16, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 0, 0 } },
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "pextrq", 3, 0x6616, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "pextrq", 3, 0x660f3a16, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "phminposuw", 2, 0x6641, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "phminposuw", 2, 0x660f3841, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pinsrb", 3, 0x6620, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pinsrb", 3, 0x6620, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pinsrb", 3, 0x660f3a20, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pinsrb", 3, 0x660f3a20, None, 3,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pinsrd", 3, 0x6622, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pinsrd", 3, 0x660f3a22, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pinsrq", 3, 0x6622, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pinsrq", 3, 0x660f3a22, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaxsb", 2, 0x663c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaxsb", 2, 0x660f383c, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaxsd", 2, 0x663d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaxsd", 2, 0x660f383d, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaxud", 2, 0x663f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaxud", 2, 0x660f383f, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaxuw", 2, 0x663e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmaxuw", 2, 0x660f383e, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pminsb", 2, 0x6638, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pminsb", 2, 0x660f3838, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pminsd", 2, 0x6639, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pminsd", 2, 0x660f3839, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pminud", 2, 0x663b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pminud", 2, 0x660f383b, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pminuw", 2, 0x663a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pminuw", 2, 0x660f383a, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovsxbw", 2, 0x6620, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovsxbw", 2, 0x660f3820, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovsxbd", 2, 0x6621, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovsxbd", 2, 0x660f3821, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovsxbq", 2, 0x6622, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovsxbq", 2, 0x660f3822, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovsxwd", 2, 0x6623, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovsxwd", 2, 0x660f3823, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovsxwq", 2, 0x6624, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovsxwq", 2, 0x660f3824, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovsxdq", 2, 0x6625, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovsxdq", 2, 0x660f3825, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovzxbw", 2, 0x6630, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovzxbw", 2, 0x660f3830, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovzxbd", 2, 0x6631, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovzxbd", 2, 0x660f3831, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovzxbq", 2, 0x6632, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovzxbq", 2, 0x660f3832, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovzxwd", 2, 0x6633, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovzxwd", 2, 0x660f3833, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovzxwq", 2, 0x6634, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovzxwq", 2, 0x660f3834, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovzxdq", 2, 0x6635, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmovzxdq", 2, 0x660f3835, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmuldq", 2, 0x6628, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmuldq", 2, 0x660f3828, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmulld", 2, 0x6640, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pmulld", 2, 0x660f3840, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "ptest", 2, 0x6617, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "ptest", 2, 0x660f3817, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "roundpd", 3, 0x6609, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "roundpd", 3, 0x660f3a09, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "roundps", 3, 0x6608, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "roundps", 3, 0x660f3a08, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "roundsd", 3, 0x660b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 3, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "roundsd", 3, 0x660f3a0b, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "roundss", 3, 0x660a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "roundss", 3, 0x660f3a0a, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpgtq", 2, 0x6637, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpgtq", 2, 0x660f3837, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpestri", 3, 0x6661, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpestri", 3, 0x6661, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpestri", 3, 0x660f3a61, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpestri", 3, 0x660f3a61, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpestrm", 3, 0x6660, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpestrm", 3, 0x6660, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpestrm", 3, 0x660f3a60, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpestrm", 3, 0x660f3a60, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpistri", 3, 0x6663, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpistri", 3, 0x660f3a63, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpistrm", 3, 0x6662, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "pcmpistrm", 3, 0x660f3a62, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "crc32", 2, 0xf20f38f1, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "crc32", 2, 0xf20f38f1, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "crc32", 2, 0xf20f38f0, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "crc32", 2, 0xf20f38f0, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "xsave", 1, 0xfae, 0x4, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "xsave64", 1, 0xfae, 0x4, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-      1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "xrstor", 1, 0xfae, 0x5, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "xrstor64", 1, 0xfae, 0x5, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-      1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "xgetbv", 0, 0xf01, 0xd0, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "xsetbv", 0, 0xf01, 0xd1, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "xsaveopt", 1, 0xfae, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "xsaveopt64", 1, 0xfae, 0x6, 2,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-      1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "aesdec", 2, 0x66de, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "aesdec", 2, 0x660f38de, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "aesdeclast", 2, 0x66df, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "aesdeclast", 2, 0x660f38df, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "aesenc", 2, 0x66dc, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "aesenc", 2, 0x660f38dc, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "aesenclast", 2, 0x66dd, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "aesenclast", 2, 0x660f38dd, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "aesimc", 2, 0x66db, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "aesimc", 2, 0x660f38db, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "aeskeygenassist", 3, 0x66df, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "aeskeygenassist", 3, 0x660f3adf, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "pclmulqdq", 3, 0x6644, None, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesdec", 3, 0x66de, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "pclmulqdq", 3, 0x660f3a44, None, 3,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesdec", 3, 0x66de, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "pclmullqlqdq", 2, 0x6644, 0x0, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesdec", 3, 0x66de, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "pclmullqlqdq", 2, 0x660f3a44, 0x0, 3,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesdec", 3, 0x66de, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "pclmulhqlqdq", 2, 0x6644, 0x1, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesdec", 3, 0x66de, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "pclmulhqlqdq", 2, 0x660f3a44, 0x1, 3,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesdeclast", 3, 0x66df, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "pclmullqhqdq", 2, 0x6644, 0x10, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesdeclast", 3, 0x66df, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "pclmullqhqdq", 2, 0x660f3a44, 0x10, 3,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesdeclast", 3, 0x66df, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "pclmulhqhqdq", 2, 0x6644, 0x11, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesdeclast", 3, 0x66df, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "pclmulhqhqdq", 2, 0x660f3a44, 0x11, 3,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesdeclast", 3, 0x66df, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddpd", 3, 0x6658, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesenc", 3, 0x66dc, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddpd", 3, 0x6658, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesenc", 3, 0x66dc, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddpd", 3, 0x6658, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesenc", 3, 0x66dc, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 2, 0, 0, 6, 0, 0, 0,
+      0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddpd", 4, 0x6658, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesenc", 3, 0x66dc, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 0, 1, 1, 0, 0, 0, 0,
+      0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddpd", 3, 0x6658, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesenc", 3, 0x66dc, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 3, 1, 4, 0, 0, 4, 0, 0, 0,
+      0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddpd", 3, 0x6658, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesenclast", 3, 0x66dd, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 0, 5, 0, 0, 0,
+      0, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddps", 3, 0x58, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesenclast", 3, 0x66dd, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddps", 3, 0x58, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesenclast", 3, 0x66dd, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddps", 3, 0x58, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesenclast", 3, 0x66dd, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 1, 0, 0, 6, 0, 0, 0,
+      0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddps", 4, 0x58, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaesenclast", 3, 0x66dd, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 1, 1, 0, 0, 0, 0,
+      0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddps", 3, 0x58, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pclmulqdq", 3, 0x6644, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 3, 0, 3, 0, 0, 4, 0, 0, 0,
+      0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddps", 3, 0x58, None, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pclmulqdq", 3, 0x660f3a44, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 0, 2, 0, 0, 5, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddsd", 3, 0xf258, None, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pclmullqlqdq", 2, 0x6644, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+      0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddsd", 3, 0xF258, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pclmullqlqdq", 2, 0x660f3a44, 0x0, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 3, 1, 0, 0, 0, 3, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddsd", 4, 0xF258, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 3, 1, 0, 1, 1, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddss", 3, 0xf358, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pclmulhqlqdq", 2, 0x6644, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+      0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddss", 3, 0xF358, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pclmulhqlqdq", 2, 0x660f3a44, 0x1, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 2, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddss", 4, 0xF358, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pclmullqhqdq", 2, 0x6644, 0x10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 1, 1, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+      0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddsubpd", 3, 0x66d0, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pclmullqhqdq", 2, 0x660f3a44, 0x10, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddsubpd", 3, 0x66d0, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pclmulhqhqdq", 2, 0x6644, 0x11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+      0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddsubps", 3, 0xf2d0, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "pclmulhqhqdq", 2, 0x660f3a44, 0x11, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vaddsubps", 3, 0xf2d0, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "gf2p8affineqb", 3, 0x66ce, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 2, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandnpd", 3, 0x6655, None, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "gf2p8affineqb", 3, 0x660f3ace, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandnpd", 3, 0x6655, None, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "gf2p8affineinvqb", 3, 0x66cf, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 2, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandnpd", 3, 0x6655, None, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "gf2p8affineinvqb", 3, 0x660f3acf, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 2, 0, 0, 6, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandnpd", 3, 0x6655, None, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "gf2p8mulb", 2, 0x66cf, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 3, 1, 4, 0, 0, 4, 0, 0, 0,
+      0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandnpd", 3, 0x6655, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "gf2p8mulb", 2, 0x660f38cf, None, 3,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 0, 5, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandnps", 3, 0x55, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddpd", 3, 0x6658, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandnps", 3, 0x55, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddpd", 3, 0x6658, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandnps", 3, 0x55, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddpd", 4, 0x6658, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 1, 0, 0, 6, 0, 0, 0,
+      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandnps", 3, 0x55, None, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddpd", 3, 0x6658, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 3, 0, 3, 0, 0, 4, 0, 0, 0,
+      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 3, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandnps", 3, 0x55, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddpd", 3, 0x6658, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 0, 2, 0, 0, 5, 0, 0, 0,
+      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandpd", 3, 0x6654, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddps", 3, 0x58, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandpd", 3, 0x6654, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddps", 3, 0x58, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandpd", 3, 0x6654, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddps", 4, 0x58, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 2, 0, 0, 6, 0, 0, 0,
+      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandpd", 3, 0x6654, None, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddps", 3, 0x58, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 3, 1, 4, 0, 0, 4, 0, 0, 0,
+      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 3, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandpd", 3, 0x6654, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddps", 3, 0x58, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 0, 5, 0, 0, 0,
+      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandps", 3, 0x54, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddsd", 3, 0xf258, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandps", 3, 0x54, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddsd", 3, 0xF258, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 3, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandps", 3, 0x54, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddsd", 4, 0xF258, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 1, 0, 0, 6, 0, 0, 0,
+      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 3, 1, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandps", 3, 0x54, None, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddss", 3, 0xf358, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 3, 0, 3, 0, 0, 4, 0, 0, 0,
+      0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vandps", 3, 0x54, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddss", 3, 0xF358, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 0, 2, 0, 0, 5, 0, 0, 0,
+      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vblendpd", 4, 0x660d, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddss", 4, 0xF358, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vblendpd", 4, 0x660d, None, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddsubpd", 3, 0x66d0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vblendps", 4, 0x660c, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vaddsubps", 3, 0xf2d0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vblendps", 4, 0x660c, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandnpd", 3, 0x6655, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vblendvpd", 4, 0x664b, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandnpd", 3, 0x6655, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vblendvpd", 4, 0x664b, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandnpd", 3, 0x6655, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 3, 1, 4, 0, 0, 4, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandnpd", 3, 0x6655, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 0, 5, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandnps", 3, 0x55, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandnps", 3, 0x55, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vblendvps", 4, 0x664a, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandnps", 3, 0x55, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 3, 0, 3, 0, 0, 4, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandnps", 3, 0x55, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 0, 2, 0, 0, 5, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandpd", 3, 0x6654, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandpd", 3, 0x6654, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vblendvps", 4, 0x664a, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandpd", 3, 0x6654, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 3, 1, 4, 0, 0, 4, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandpd", 3, 0x6654, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 0, 5, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandps", 3, 0x54, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandps", 3, 0x54, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandps", 3, 0x54, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 3, 0, 3, 0, 0, 4, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vandps", 3, 0x54, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 0, 2, 0, 0, 5, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vblendpd", 4, 0x660d, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vblendps", 4, 0x660c, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vblendvpd", 4, 0x664b, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vblendvps", 4, 0x664a, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
+      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0 },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vbroadcastf128", 2, 0x661a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vbroadcastsd", 2, 0x6619, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vbroadcastsd", 2, 0x6619, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vbroadcastsd", 2, 0x6619, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vbroadcastsd", 2, 0x6619, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 3, 3, 1, 0, 0, 0, 3, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vbroadcastss", 2, 0x6618, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 3, 3, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vbroadcastss", 2, 0x6618, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vbroadcastss", 2, 0x6618, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vbroadcastss", 2, 0x6618, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vbroadcastss", 2, 0x6618, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vbroadcastss", 2, 0x6618, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vbroadcastss", 2, 0x6618, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeq_ospd", 3, 0x66c2, 0x10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpeq_ospd", 3, 0x66c2, 0x10, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeq_ospd", 3, 0x66C2, 16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_ospd", 4, 0x66C2, 16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_ospd", 3, 0x66C2, 16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_ospd", 3, 0x66C2, 16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_osps", 3, 0xc2, 0x10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpeq_osps", 3, 0xc2, 0x10, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeq_osps", 3, 0xC2, 16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_osps", 4, 0xC2, 16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_osps", 3, 0xC2, 16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_osps", 3, 0xC2, 16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_ossd", 3, 0xf2c2, 0x10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeq_ossd", 3, 0xF2C2, 16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_ossd", 4, 0xF2C2, 16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_osss", 3, 0xf3c2, 0x10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeq_osss", 3, 0xF3C2, 16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_osss", 4, 0xF3C2, 16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeqpd", 3, 0x66c2, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpeqpd", 3, 0x66c2, 0x0, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeqpd", 3, 0x66C2, 0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeqpd", 4, 0x66C2, 0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeqpd", 3, 0x66C2, 0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeqpd", 3, 0x66C2, 0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeqps", 3, 0xc2, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpeqps", 3, 0xc2, 0x0, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeqps", 3, 0xC2, 0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeqps", 4, 0xC2, 0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeqps", 3, 0xC2, 0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeqps", 3, 0xC2, 0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeqsd", 3, 0xf2c2, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeqsd", 3, 0xF2C2, 0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeqsd", 4, 0xF2C2, 0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeqss", 3, 0xf3c2, 0x0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeqss", 3, 0xF3C2, 0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeqss", 4, 0xF3C2, 0, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uqpd", 3, 0x66c2, 0x8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpeq_uqpd", 3, 0x66c2, 0x8, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeq_uqpd", 3, 0x66C2, 8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uqpd", 4, 0x66C2, 8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uqpd", 3, 0x66C2, 8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uqpd", 3, 0x66C2, 8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uqps", 3, 0xc2, 0x8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpeq_uqps", 3, 0xc2, 0x8, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeq_uqps", 3, 0xC2, 8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uqps", 4, 0xC2, 8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uqps", 3, 0xC2, 8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uqps", 3, 0xC2, 8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uqsd", 3, 0xf2c2, 0x8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeq_uqsd", 3, 0xF2C2, 8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uqsd", 4, 0xF2C2, 8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uqss", 3, 0xf3c2, 0x8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeq_uqss", 3, 0xF3C2, 8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uqss", 4, 0xF3C2, 8, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uspd", 3, 0x66c2, 0x18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpeq_uspd", 3, 0x66c2, 0x18, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeq_uspd", 3, 0x66C2, 24, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uspd", 4, 0x66C2, 24, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uspd", 3, 0x66C2, 24, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_uspd", 3, 0x66C2, 24, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_usps", 3, 0xc2, 0x18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpeq_usps", 3, 0xc2, 0x18, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeq_usps", 3, 0xC2, 24, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_usps", 4, 0xC2, 24, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_usps", 3, 0xC2, 24, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_usps", 3, 0xC2, 24, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_ussd", 3, 0xf2c2, 0x18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeq_ussd", 3, 0xF2C2, 24, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_ussd", 4, 0xF2C2, 24, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_usss", 3, 0xf3c2, 0x18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpeq_usss", 3, 0xF3C2, 24, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpeq_usss", 4, 0xF3C2, 24, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalse_ospd", 3, 0x66c2, 0x1b, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpfalse_ospd", 3, 0x66c2, 0x1b, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpfalse_ospd", 3, 0x66C2, 27, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalse_ospd", 4, 0x66C2, 27, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalse_ospd", 3, 0x66C2, 27, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalse_ospd", 3, 0x66C2, 27, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalse_osps", 3, 0xc2, 0x1b, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpfalse_osps", 3, 0xc2, 0x1b, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpfalse_osps", 3, 0xC2, 27, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalse_osps", 4, 0xC2, 27, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalse_osps", 3, 0xC2, 27, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalse_osps", 3, 0xC2, 27, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalse_ossd", 3, 0xf2c2, 0x1b, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpfalse_ossd", 3, 0xF2C2, 27, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalse_ossd", 4, 0xF2C2, 27, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalse_osss", 3, 0xf3c2, 0x1b, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpfalse_osss", 3, 0xF3C2, 27, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalse_osss", 4, 0xF3C2, 27, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalsepd", 3, 0x66c2, 0xb, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpfalsepd", 3, 0x66c2, 0xb, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpfalsepd", 3, 0x66C2, 11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalsepd", 4, 0x66C2, 11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalsepd", 3, 0x66C2, 11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalsepd", 3, 0x66C2, 11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalseps", 3, 0xc2, 0xb, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpfalseps", 3, 0xc2, 0xb, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vcmpfalseps", 3, 0xC2, 11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpfalseps", 3, 0xC2, 11, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalseps", 4, 0xC2, 11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalseps", 3, 0xC2, 11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalseps", 3, 0xC2, 11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalsesd", 3, 0xf2c2, 0xb, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpfalsesd", 3, 0xF2C2, 11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalsesd", 4, 0xF2C2, 11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalsess", 3, 0xf3c2, 0xb, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpfalsess", 3, 0xF3C2, 11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpfalsess", 4, 0xF3C2, 11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpge_oqpd", 3, 0x66c2, 0x1d, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpge_oqpd", 3, 0x66c2, 0x1d, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpge_oqpd", 3, 0x66C2, 29, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpge_oqpd", 4, 0x66C2, 29, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpge_oqpd", 3, 0x66C2, 29, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpge_oqpd", 3, 0x66C2, 29, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpge_oqps", 3, 0xc2, 0x1d, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpge_oqps", 3, 0xc2, 0x1d, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpge_oqps", 3, 0xC2, 29, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpge_oqps", 4, 0xC2, 29, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpge_oqps", 3, 0xC2, 29, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpge_oqps", 3, 0xC2, 29, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpge_oqsd", 3, 0xf2c2, 0x1d, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpge_oqsd", 3, 0xF2C2, 29, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpge_oqsd", 4, 0xF2C2, 29, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpge_oqss", 3, 0xf3c2, 0x1d, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpge_oqss", 3, 0xF3C2, 29, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpge_oqss", 4, 0xF3C2, 29, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgepd", 3, 0x66c2, 0xd, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpgepd", 3, 0x66c2, 0xd, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpgepd", 3, 0x66C2, 13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgepd", 4, 0x66C2, 13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgepd", 3, 0x66C2, 13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgepd", 3, 0x66C2, 13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgeps", 3, 0xc2, 0xd, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpgeps", 3, 0xc2, 0xd, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpgeps", 3, 0xC2, 13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgeps", 4, 0xC2, 13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgeps", 3, 0xC2, 13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgeps", 3, 0xC2, 13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgesd", 3, 0xf2c2, 0xd, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpgesd", 3, 0xF2C2, 13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgesd", 4, 0xF2C2, 13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgess", 3, 0xf3c2, 0xd, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpgess", 3, 0xF3C2, 13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgess", 4, 0xF3C2, 13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgt_oqpd", 3, 0x66c2, 0x1e, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpgt_oqpd", 3, 0x66c2, 0x1e, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpgt_oqpd", 3, 0x66C2, 30, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgt_oqpd", 4, 0x66C2, 30, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgt_oqpd", 3, 0x66C2, 30, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgt_oqpd", 3, 0x66C2, 30, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgt_oqps", 3, 0xc2, 0x1e, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpgt_oqps", 3, 0xc2, 0x1e, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpgt_oqps", 3, 0xC2, 30, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgt_oqps", 4, 0xC2, 30, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgt_oqps", 3, 0xC2, 30, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgt_oqps", 3, 0xC2, 30, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgt_oqsd", 3, 0xf2c2, 0x1e, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpgt_oqsd", 3, 0xF2C2, 30, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgt_oqsd", 4, 0xF2C2, 30, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgt_oqss", 3, 0xf3c2, 0x1e, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpgt_oqss", 3, 0xF3C2, 30, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgt_oqss", 4, 0xF3C2, 30, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgtpd", 3, 0x66c2, 0xe, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpgtpd", 3, 0x66c2, 0xe, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpgtpd", 3, 0x66C2, 14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgtpd", 4, 0x66C2, 14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgtpd", 3, 0x66C2, 14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgtpd", 3, 0x66C2, 14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgtps", 3, 0xc2, 0xe, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpgtps", 3, 0xc2, 0xe, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpgtps", 3, 0xC2, 14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgtps", 4, 0xC2, 14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgtps", 3, 0xC2, 14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgtps", 3, 0xC2, 14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgtsd", 3, 0xf2c2, 0xe, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpgtsd", 3, 0xF2C2, 14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgtsd", 4, 0xF2C2, 14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgtss", 3, 0xf3c2, 0xe, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpgtss", 3, 0xF3C2, 14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpgtss", 4, 0xF3C2, 14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmple_oqpd", 3, 0x66c2, 0x12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmple_oqpd", 3, 0x66c2, 0x12, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmple_oqpd", 3, 0x66C2, 18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmple_oqpd", 4, 0x66C2, 18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmple_oqpd", 3, 0x66C2, 18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmple_oqpd", 3, 0x66C2, 18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmple_oqps", 3, 0xc2, 0x12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmple_oqps", 3, 0xc2, 0x12, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmple_oqps", 3, 0xC2, 18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmple_oqps", 4, 0xC2, 18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmple_oqps", 3, 0xC2, 18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmple_oqps", 3, 0xC2, 18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmple_oqsd", 3, 0xf2c2, 0x12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmple_oqsd", 3, 0xF2C2, 18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmple_oqsd", 4, 0xF2C2, 18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmple_oqss", 3, 0xf3c2, 0x12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmple_oqss", 3, 0xF3C2, 18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmple_oqss", 4, 0xF3C2, 18, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplepd", 3, 0x66c2, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmplepd", 3, 0x66c2, 0x2, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmplepd", 3, 0x66C2, 2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplepd", 4, 0x66C2, 2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplepd", 3, 0x66C2, 2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplepd", 3, 0x66C2, 2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpleps", 3, 0xc2, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpleps", 3, 0xc2, 0x2, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpleps", 3, 0xC2, 2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpleps", 4, 0xC2, 2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpleps", 3, 0xC2, 2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpleps", 3, 0xC2, 2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplesd", 3, 0xf2c2, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmplesd", 3, 0xF2C2, 2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplesd", 4, 0xF2C2, 2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpless", 3, 0xf3c2, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpless", 3, 0xF3C2, 2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpless", 4, 0xF3C2, 2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplt_oqpd", 3, 0x66c2, 0x11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmplt_oqpd", 3, 0x66c2, 0x11, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmplt_oqpd", 3, 0x66C2, 17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplt_oqpd", 4, 0x66C2, 17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplt_oqpd", 3, 0x66C2, 17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplt_oqpd", 3, 0x66C2, 17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplt_oqps", 3, 0xc2, 0x11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmplt_oqps", 3, 0xc2, 0x11, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmplt_oqps", 3, 0xC2, 17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplt_oqps", 4, 0xC2, 17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplt_oqps", 3, 0xC2, 17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplt_oqps", 3, 0xC2, 17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplt_oqsd", 3, 0xf2c2, 0x11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmplt_oqsd", 3, 0xF2C2, 17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplt_oqsd", 4, 0xF2C2, 17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplt_oqss", 3, 0xf3c2, 0x11, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmplt_oqss", 3, 0xF3C2, 17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmplt_oqss", 4, 0xF3C2, 17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpltpd", 3, 0x66c2, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpltpd", 3, 0x66c2, 0x1, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vcmpltpd", 3, 0x66C2, 1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpltpd", 3, 0x66C2, 1, 1,
+	  0, 0, 0 } } } },
+  { "vcmpltpd", 4, 0x66C2, 1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpltpd", 4, 0x66C2, 1, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpltpd", 3, 0x66C2, 1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpltpd", 3, 0x66C2, 1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpltps", 3, 0xc2, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpltps", 3, 0xc2, 0x1, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpltps", 3, 0xC2, 1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpltps", 4, 0xC2, 1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpltps", 3, 0xC2, 1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpltps", 3, 0xC2, 1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpltsd", 3, 0xf2c2, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpltsd", 3, 0xF2C2, 1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpltsd", 4, 0xF2C2, 1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpltss", 3, 0xf3c2, 0x1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpltss", 3, 0xF3C2, 1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpltss", 4, 0xF3C2, 1, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_oqpd", 3, 0x66c2, 0xc, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpneq_oqpd", 3, 0x66c2, 0xc, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneq_oqpd", 3, 0x66C2, 12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_oqpd", 4, 0x66C2, 12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_oqpd", 3, 0x66C2, 12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_oqpd", 3, 0x66C2, 12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_oqps", 3, 0xc2, 0xc, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpneq_oqps", 3, 0xc2, 0xc, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneq_oqps", 3, 0xC2, 12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_oqps", 4, 0xC2, 12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_oqps", 3, 0xC2, 12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_oqps", 3, 0xC2, 12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_oqsd", 3, 0xf2c2, 0xc, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneq_oqsd", 3, 0xF2C2, 12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_oqsd", 4, 0xF2C2, 12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_oqss", 3, 0xf3c2, 0xc, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneq_oqss", 3, 0xF3C2, 12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_oqss", 4, 0xF3C2, 12, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_ospd", 3, 0x66c2, 0x1c, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpneq_ospd", 3, 0x66c2, 0x1c, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneq_ospd", 3, 0x66C2, 28, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_ospd", 4, 0x66C2, 28, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_ospd", 3, 0x66C2, 28, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_ospd", 3, 0x66C2, 28, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_osps", 3, 0xc2, 0x1c, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpneq_osps", 3, 0xc2, 0x1c, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneq_osps", 3, 0xC2, 28, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_osps", 4, 0xC2, 28, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_osps", 3, 0xC2, 28, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_osps", 3, 0xC2, 28, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_ossd", 3, 0xf2c2, 0x1c, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneq_ossd", 3, 0xF2C2, 28, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_ossd", 4, 0xF2C2, 28, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_osss", 3, 0xf3c2, 0x1c, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneq_osss", 3, 0xF3C2, 28, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_osss", 4, 0xF3C2, 28, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneqpd", 3, 0x66c2, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpneqpd", 3, 0x66c2, 0x4, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneqpd", 3, 0x66C2, 4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneqpd", 4, 0x66C2, 4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneqpd", 3, 0x66C2, 4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneqpd", 3, 0x66C2, 4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneqps", 3, 0xc2, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpneqps", 3, 0xc2, 0x4, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneqps", 3, 0xC2, 4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneqps", 4, 0xC2, 4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneqps", 3, 0xC2, 4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneqps", 3, 0xC2, 4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneqsd", 3, 0xf2c2, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneqsd", 3, 0xF2C2, 4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneqsd", 4, 0xF2C2, 4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneqss", 3, 0xf3c2, 0x4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneqss", 3, 0xF3C2, 4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneqss", 4, 0xF3C2, 4, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_uspd", 3, 0x66c2, 0x14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpneq_uspd", 3, 0x66c2, 0x14, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneq_uspd", 3, 0x66C2, 20, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_uspd", 4, 0x66C2, 20, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_uspd", 3, 0x66C2, 20, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_uspd", 3, 0x66C2, 20, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_usps", 3, 0xc2, 0x14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpneq_usps", 3, 0xc2, 0x14, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneq_usps", 3, 0xC2, 20, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_usps", 4, 0xC2, 20, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_usps", 3, 0xC2, 20, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_usps", 3, 0xC2, 20, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_ussd", 3, 0xf2c2, 0x14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneq_ussd", 3, 0xF2C2, 20, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_ussd", 4, 0xF2C2, 20, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_usss", 3, 0xf3c2, 0x14, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpneq_usss", 3, 0xF3C2, 20, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpneq_usss", 4, 0xF3C2, 20, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngepd", 3, 0x66c2, 0x9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpngepd", 3, 0x66c2, 0x9, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpngepd", 3, 0x66C2, 9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngepd", 4, 0x66C2, 9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngepd", 3, 0x66C2, 9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngepd", 3, 0x66C2, 9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngeps", 3, 0xc2, 0x9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpngeps", 3, 0xc2, 0x9, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpngeps", 3, 0xC2, 9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngeps", 4, 0xC2, 9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngeps", 3, 0xC2, 9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngeps", 3, 0xC2, 9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngesd", 3, 0xf2c2, 0x9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpngesd", 3, 0xF2C2, 9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngesd", 4, 0xF2C2, 9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngess", 3, 0xf3c2, 0x9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpngess", 3, 0xF3C2, 9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngess", 4, 0xF3C2, 9, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnge_uqpd", 3, 0x66c2, 0x19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpnge_uqpd", 3, 0x66c2, 0x19, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnge_uqpd", 3, 0x66C2, 25, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnge_uqpd", 4, 0x66C2, 25, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnge_uqpd", 3, 0x66C2, 25, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnge_uqpd", 3, 0x66C2, 25, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnge_uqps", 3, 0xc2, 0x19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpnge_uqps", 3, 0xc2, 0x19, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnge_uqps", 3, 0xC2, 25, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnge_uqps", 4, 0xC2, 25, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnge_uqps", 3, 0xC2, 25, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnge_uqps", 3, 0xC2, 25, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnge_uqsd", 3, 0xf2c2, 0x19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnge_uqsd", 3, 0xF2C2, 25, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnge_uqsd", 4, 0xF2C2, 25, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnge_uqss", 3, 0xf3c2, 0x19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnge_uqss", 3, 0xF3C2, 25, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnge_uqss", 4, 0xF3C2, 25, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngtpd", 3, 0x66c2, 0xa, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpngtpd", 3, 0x66c2, 0xa, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpngtpd", 3, 0x66C2, 10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngtpd", 4, 0x66C2, 10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngtpd", 3, 0x66C2, 10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngtpd", 3, 0x66C2, 10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngtps", 3, 0xc2, 0xa, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpngtps", 3, 0xc2, 0xa, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpngtps", 3, 0xC2, 10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngtps", 4, 0xC2, 10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngtps", 3, 0xC2, 10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngtps", 3, 0xC2, 10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngtsd", 3, 0xf2c2, 0xa, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpngtsd", 3, 0xF2C2, 10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngtsd", 4, 0xF2C2, 10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngtss", 3, 0xf3c2, 0xa, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpngtss", 3, 0xF3C2, 10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngtss", 4, 0xF3C2, 10, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngt_uqpd", 3, 0x66c2, 0x1a, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpngt_uqpd", 3, 0x66c2, 0x1a, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpngt_uqpd", 3, 0x66C2, 26, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngt_uqpd", 4, 0x66C2, 26, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngt_uqpd", 3, 0x66C2, 26, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngt_uqpd", 3, 0x66C2, 26, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngt_uqps", 3, 0xc2, 0x1a, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpngt_uqps", 3, 0xc2, 0x1a, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpngt_uqps", 3, 0xC2, 26, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngt_uqps", 4, 0xC2, 26, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngt_uqps", 3, 0xC2, 26, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngt_uqps", 3, 0xC2, 26, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngt_uqsd", 3, 0xf2c2, 0x1a, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpngt_uqsd", 3, 0xF2C2, 26, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngt_uqsd", 4, 0xF2C2, 26, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngt_uqss", 3, 0xf3c2, 0x1a, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpngt_uqss", 3, 0xF3C2, 26, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpngt_uqss", 4, 0xF3C2, 26, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlepd", 3, 0x66c2, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpnlepd", 3, 0x66c2, 0x6, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnlepd", 3, 0x66C2, 6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlepd", 4, 0x66C2, 6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlepd", 3, 0x66C2, 6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlepd", 3, 0x66C2, 6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnleps", 3, 0xc2, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpnleps", 3, 0xc2, 0x6, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnleps", 3, 0xC2, 6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnleps", 4, 0xC2, 6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnleps", 3, 0xC2, 6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnleps", 3, 0xC2, 6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlesd", 3, 0xf2c2, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnlesd", 3, 0xF2C2, 6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlesd", 4, 0xF2C2, 6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnless", 3, 0xf3c2, 0x6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnless", 3, 0xF3C2, 6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnless", 4, 0xF3C2, 6, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnle_uqpd", 3, 0x66c2, 0x16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpnle_uqpd", 3, 0x66c2, 0x16, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnle_uqpd", 3, 0x66C2, 22, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnle_uqpd", 4, 0x66C2, 22, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnle_uqpd", 3, 0x66C2, 22, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnle_uqpd", 3, 0x66C2, 22, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnle_uqps", 3, 0xc2, 0x16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpnle_uqps", 3, 0xc2, 0x16, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnle_uqps", 3, 0xC2, 22, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnle_uqps", 4, 0xC2, 22, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnle_uqps", 3, 0xC2, 22, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnle_uqps", 3, 0xC2, 22, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnle_uqsd", 3, 0xf2c2, 0x16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnle_uqsd", 3, 0xF2C2, 22, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnle_uqsd", 4, 0xF2C2, 22, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnle_uqss", 3, 0xf3c2, 0x16, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnle_uqss", 3, 0xF3C2, 22, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnle_uqss", 4, 0xF3C2, 22, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnltpd", 3, 0x66c2, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpnltpd", 3, 0x66c2, 0x5, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnltpd", 3, 0x66C2, 5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnltpd", 4, 0x66C2, 5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnltpd", 3, 0x66C2, 5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnltpd", 3, 0x66C2, 5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnltps", 3, 0xc2, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpnltps", 3, 0xc2, 0x5, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnltps", 3, 0xC2, 5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnltps", 4, 0xC2, 5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnltps", 3, 0xC2, 5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnltps", 3, 0xC2, 5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnltsd", 3, 0xf2c2, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpnltsd", 3, 0xF2C2, 5, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vcmpnltsd", 3, 0xF2C2, 5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnltsd", 4, 0xF2C2, 5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnltss", 3, 0xf3c2, 0x5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnltss", 3, 0xF3C2, 5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnltss", 4, 0xF3C2, 5, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqpd", 3, 0x66c2, 0x15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpnlt_uqpd", 3, 0x66c2, 0x15, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqpd", 3, 0x66C2, 21, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqpd", 4, 0x66C2, 21, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqpd", 3, 0x66C2, 21, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqpd", 3, 0x66C2, 21, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqps", 3, 0xc2, 0x15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpnlt_uqps", 3, 0xc2, 0x15, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqps", 3, 0xC2, 21, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqps", 4, 0xC2, 21, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqps", 3, 0xC2, 21, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqps", 3, 0xC2, 21, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqsd", 3, 0xf2c2, 0x15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqsd", 3, 0xF2C2, 21, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqsd", 4, 0xF2C2, 21, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqss", 3, 0xf3c2, 0x15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqss", 3, 0xF3C2, 21, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpnlt_uqss", 4, 0xF3C2, 21, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpordpd", 3, 0x66c2, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpordpd", 3, 0x66c2, 0x7, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpordpd", 3, 0x66C2, 7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpordpd", 4, 0x66C2, 7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpordpd", 3, 0x66C2, 7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpordpd", 3, 0x66C2, 7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpordps", 3, 0xc2, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpordps", 3, 0xc2, 0x7, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpordps", 3, 0xC2, 7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpordps", 4, 0xC2, 7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpordps", 3, 0xC2, 7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpordps", 3, 0xC2, 7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpordsd", 3, 0xf2c2, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpordsd", 3, 0xF2C2, 7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpordsd", 4, 0xF2C2, 7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpord_spd", 3, 0x66c2, 0x17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpord_spd", 3, 0x66c2, 0x17, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpord_spd", 3, 0x66C2, 23, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpord_spd", 4, 0x66C2, 23, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpord_spd", 3, 0x66C2, 23, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpord_spd", 3, 0x66C2, 23, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpord_sps", 3, 0xc2, 0x17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpord_sps", 3, 0xc2, 0x17, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpord_sps", 3, 0xC2, 23, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpord_sps", 4, 0xC2, 23, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpord_sps", 3, 0xC2, 23, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpord_sps", 3, 0xC2, 23, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpordss", 3, 0xf3c2, 0x7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpordss", 3, 0xF3C2, 7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpordss", 4, 0xF3C2, 7, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpord_ssd", 3, 0xf2c2, 0x17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpord_ssd", 3, 0xF2C2, 23, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpord_ssd", 4, 0xF2C2, 23, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpord_sss", 3, 0xf3c2, 0x17, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpord_sss", 3, 0xF3C2, 23, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpord_sss", 4, 0xF3C2, 23, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmppd", 4, 0x66c2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmppd", 4, 0x66c2, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmppd", 4, 0x66C2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmppd", 5, 0x66C2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmppd", 4, 0x66C2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmppd", 4, 0x66C2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpps", 4, 0xc2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpps", 4, 0xc2, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpps", 4, 0xC2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpps", 5, 0xC2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpps", 4, 0xC2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpps", 4, 0xC2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpsd", 4, 0xf2c2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpsd", 4, 0xF2C2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpsd", 5, 0xF2C2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpss", 4, 0xf3c2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpss", 4, 0xF3C2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpss", 5, 0xF3C2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptruepd", 3, 0x66c2, 0xf, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmptruepd", 3, 0x66c2, 0xf, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmptruepd", 3, 0x66C2, 15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptruepd", 4, 0x66C2, 15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptruepd", 3, 0x66C2, 15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptruepd", 3, 0x66C2, 15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrueps", 3, 0xc2, 0xf, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmptrueps", 3, 0xc2, 0xf, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmptrueps", 3, 0xC2, 15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrueps", 4, 0xC2, 15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrueps", 3, 0xC2, 15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrueps", 3, 0xC2, 15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptruesd", 3, 0xf2c2, 0xf, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmptruesd", 3, 0xF2C2, 15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptruesd", 4, 0xF2C2, 15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptruess", 3, 0xf3c2, 0xf, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmptruess", 3, 0xF3C2, 15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptruess", 4, 0xF3C2, 15, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrue_uspd", 3, 0x66c2, 0x1f, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmptrue_uspd", 3, 0x66c2, 0x1f, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmptrue_uspd", 3, 0x66C2, 31, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrue_uspd", 4, 0x66C2, 31, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrue_uspd", 3, 0x66C2, 31, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrue_uspd", 3, 0x66C2, 31, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrue_usps", 3, 0xc2, 0x1f, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmptrue_usps", 3, 0xc2, 0x1f, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmptrue_usps", 3, 0xC2, 31, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrue_usps", 4, 0xC2, 31, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrue_usps", 3, 0xC2, 31, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrue_usps", 3, 0xC2, 31, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrue_ussd", 3, 0xf2c2, 0x1f, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmptrue_ussd", 3, 0xF2C2, 31, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrue_ussd", 4, 0xF2C2, 31, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrue_usss", 3, 0xf3c2, 0x1f, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmptrue_usss", 3, 0xF3C2, 31, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmptrue_usss", 4, 0xF3C2, 31, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunordpd", 3, 0x66c2, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpunordpd", 3, 0x66c2, 0x3, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpunordpd", 3, 0x66C2, 3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunordpd", 4, 0x66C2, 3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunordpd", 3, 0x66C2, 3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunordpd", 3, 0x66C2, 3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunordps", 3, 0xc2, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpunordps", 3, 0xc2, 0x3, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpunordps", 3, 0xC2, 3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunordps", 4, 0xC2, 3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunordps", 3, 0xC2, 3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunordps", 3, 0xC2, 3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunordsd", 3, 0xf2c2, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpunordsd", 3, 0xF2C2, 3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunordsd", 4, 0xF2C2, 3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunord_spd", 3, 0x66c2, 0x13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpunord_spd", 3, 0x66c2, 0x13, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpunord_spd", 3, 0x66C2, 19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunord_spd", 4, 0x66C2, 19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunord_spd", 3, 0x66C2, 19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 2, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunord_spd", 3, 0x66C2, 19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunord_sps", 3, 0xc2, 0x13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcmpunord_sps", 3, 0xc2, 0x13, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpunord_sps", 3, 0xC2, 19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunord_sps", 4, 0xC2, 19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunord_sps", 3, 0xC2, 19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunord_sps", 3, 0xC2, 19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 2, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunordss", 3, 0xf3c2, 0x3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpunordss", 3, 0xF3C2, 3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunordss", 4, 0xF3C2, 3, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunord_ssd", 3, 0xf2c2, 0x13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpunord_ssd", 3, 0xF2C2, 19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunord_ssd", 4, 0xF2C2, 19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 2, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunord_sss", 3, 0xf3c2, 0x13, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcmpunord_sss", 3, 0xF3C2, 19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcmpunord_sss", 4, 0xF3C2, 19, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 2, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } } } },
   { "vcomisd", 2, 0x662f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcomisd", 2, 0x662F, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcomisd", 3, 0x662F, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcomiss", 2, 0x2f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcomiss", 2, 0x2F, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcomiss", 3, 0x2F, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtdq2pd", 2, 0xf3e6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtdq2pd", 2, 0xf3e6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtdq2pd", 2, 0xF3E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtdq2pd", 2, 0xF3E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 3, 0, 4, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtdq2pd", 2, 0xF3E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 3, 3, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtdq2ps", 2, 0x5b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcvtdq2ps", 2, 0x5b, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtdq2ps", 2, 0x5B, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtdq2ps", 3, 0x5B, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtdq2ps", 2, 0x5B, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 3, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtdq2ps", 2, 0x5B, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 3, 3, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2dq", 2, 0xf2e6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcvtpd2dq", 2, 0xf2e6, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2dq", 2, 0xf2e6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcvtpd2dq", 2, 0xf2e6, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2dq", 2, 0xF2E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2dq", 3, 0xF2E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2dq", 2, 0xF2E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 3, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2dq", 2, 0xF2E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2dqx", 2, 0xf2e6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2dqx", 2, 0xF2E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 3, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2dqy", 2, 0xf2e6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2dqy", 2, 0xF2E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2ps", 2, 0x665a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2ps", 2, 0x665a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2ps", 2, 0x665a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcvtpd2ps", 2, 0x665a, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2ps", 2, 0x665A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2ps", 3, 0x665A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2ps", 2, 0x665A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 3, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2ps", 2, 0x665A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2psx", 2, 0x665a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2psx", 2, 0x665A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 3, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2psy", 2, 0x665a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtpd2psy", 2, 0x665A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtps2dq", 2, 0x665b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcvtps2dq", 2, 0x665b, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtps2dq", 2, 0x665B, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtps2dq", 3, 0x665B, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtps2dq", 2, 0x665B, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 3, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtps2dq", 2, 0x665B, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 3, 3, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtps2pd", 2, 0x5a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtps2pd", 2, 0x5a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtps2pd", 2, 0x5A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtps2pd", 3, 0x5A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtps2pd", 2, 0x5A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 3, 0, 4, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtps2pd", 2, 0x5A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 3, 3, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsd2si", 2, 0xf22d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsd2si", 2, 0xF22D, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsd2si", 3, 0xF22D, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 0, 0 } },
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsd2si", 2, 0xF22D, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsd2si", 3, 0xF22D, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsd2ss", 3, 0xf25a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsd2ss", 3, 0xF25A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 3, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsd2ss", 4, 0xF25A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 3, 1, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsi2sd", 3, 0xf22a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsi2sd", 3, 0xf22a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsi2sd", 3, 0xF22A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsi2sd", 3, 0xF22A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsi2sd", 4, 0xF22A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsi2sd", 4, 0xF22A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 1, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsi2ss", 3, 0xf32a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsi2ss", 3, 0xf32a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsi2ss", 3, 0xF32A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsi2ss", 4, 0xF32A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsi2ss", 4, 0xF32A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 1, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsi2ss", 3, 0xF32A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsi2ss", 4, 0xF32A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtsi2ss", 4, 0xF32A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 1, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtss2sd", 3, 0xf35a, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtss2sd", 3, 0xF35A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcvtss2sd", 4, 0xF35A, None, 1,
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vcvtss2sd", 4, 0xF35A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtss2si", 2, 0xf32d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtss2si", 2, 0xF32D, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtss2si", 3, 0xF32D, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 0, 0 } },
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtss2si", 2, 0xF32D, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvtss2si", 3, 0xF32D, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttpd2dq", 2, 0x66e6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcvttpd2dq", 2, 0x66e6, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 1, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttpd2dq", 2, 0x66e6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcvttpd2dq", 2, 0x66e6, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttpd2dq", 2, 0x66E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttpd2dq", 3, 0x66E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttpd2dq", 2, 0x66E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 3, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttpd2dq", 2, 0x66E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttpd2dqx", 2, 0x66e6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttpd2dqx", 2, 0x66E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 3, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttpd2dqy", 2, 0x66e6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttpd2dqy", 2, 0x66E6, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttps2dq", 2, 0xf35b, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vcvttps2dq", 2, 0xf35b, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttps2dq", 2, 0xF35B, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttps2dq", 3, 0xF35B, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttps2dq", 2, 0xF35B, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 3, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttps2dq", 2, 0xF35B, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 3, 3, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttsd2si", 2, 0xf22c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttsd2si", 2, 0xF22C, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttsd2si", 3, 0xF22C, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 0, 0 } },
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttsd2si", 2, 0xF22C, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttsd2si", 3, 0xF22C, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttss2si", 2, 0xf32c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttss2si", 2, 0xF32C, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttss2si", 3, 0xF32C, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+	  0, 0, 0 } },
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttss2si", 2, 0xF32C, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vcvttss2si", 3, 0xF32C, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivpd", 3, 0x665e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vdivpd", 3, 0x665e, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivpd", 3, 0x665E, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 2, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivpd", 4, 0x665E, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 3, 1, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivpd", 3, 0x665E, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 3, 1, 4, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivpd", 3, 0x665E, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 3, 1, 3, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivps", 3, 0x5e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vdivps", 3, 0x5e, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivps", 3, 0x5E, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 1, 0, 0, 6, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivps", 4, 0x5E, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivps", 3, 0x5E, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 2, 3, 0, 3, 0, 0, 4, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivps", 3, 0x5E, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 3, 3, 0, 2, 0, 0, 5, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivsd", 3, 0xf25e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivsd", 3, 0xF25E, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 3, 1, 0, 0, 0, 3, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivsd", 4, 0xF25E, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 4, 3, 1, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivss", 3, 0xf35e, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivss", 3, 0xF35E, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vdivss", 4, 0xF35E, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vdppd", 4, 0x6641, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vdpps", 4, 0x6640, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vdpps", 4, 0x6640, None, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
+  { "vextractf128", 3, 0x6619, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 2, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vextractf128", 3, 0x6619, None, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
+  { "vextractps", 3, 0x6617, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "vextractps", 3, 0x6617, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
       0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vextractps", 3, 0x6617, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } } } },
-  { "vhaddpd", 3, 0x667c, None, 1,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
+  { "vextractps", 3, 0x6617, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        1, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vhaddpd", 3, 0x667c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vhaddps", 3, 0xf27c, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vhaddps", 3, 0xf27c, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vhsubpd", 3, 0x667d, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vhsubpd", 3, 0x667d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vhsubps", 3, 0xf27d, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vhsubps", 3, 0xf27d, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vinsertf128", 4, 0x6618, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vinsertps", 4, 0x6621, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vinsertps", 4, 0x6621, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vlddqu", 2, 0xf2f0, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
-  { "vlddqu", 2, 0xf2f0, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
+        0, 0, 0 } },
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vldmxcsr", 1, 0xae, 0x2, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-	  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
+	  0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
+	  0, 0, 0 } } } },
   { "vmaskmovdqu", 2, 0x66f7, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0 } },
     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1,
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-      { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } } },
+    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+	  0, 0, 0 } } } },
   { "vmaskmovpd", 3, 0x662f, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,